<?xml version="1.0" encoding="utf-8" ?>
<otrs_package version="1.1">
    <Name>WebService-OpenAPI</Name>
    <Version>11.1.1</Version>
    <Vendor>Rother OSS GmbH</Vendor>
    <URL>https://otobo.io/</URL>
    <License>GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007</License>
    <ChangeLog Date="2026-10-26 13:02:55" Version="11.1.1">Initial release for OTOBO 11.1.</ChangeLog>
    <Description Lang="en">OpenAPI (a.k.a. Swagger) Support for Otobo. </Description>
    <Framework>11.1.x</Framework>
    <IntroInstall Lang="en" Title="Thank you!" Type="post">
        To use the Otobo OpenAPI spec and the builtin Swagger UI, it is necessary to configure at least one Provider Webservice in Otobo.
        &lt;br&gt;
        &lt;br&gt;
        Go to Admin UI -&gt; &lt;a href=&quot;/otobo/index.pl?Action=AdminGenericInterfaceWebservice&quot;&gt;Webservices&lt;/a&gt; and click 'Add New'. Next either configure a Provider Webservice on your own or choose one or more of the provided example Provider Webservices.
        &lt;br&gt;
        &lt;br&gt;
        The basic example Provider Webservices that come with this module are 'Session' and 'Ticket'. 
        &lt;br&gt;
        &lt;br&gt;
        If you have the FAQ or ITSMConfigurationManagement
        extension packages installed, you can also import the FAQ und CMDB example webservices.
        &lt;br&gt;
        &lt;br&gt;
        Once you have at least one Provider Webservice configured, you can use the autogenerated Otobo OpenAPI spec via the builtin Swagger UI.
        &lt;br&gt;
        &lt;br&gt;
        Open the Swagger UI by navigating to Admin UI -&amp;gt; Web Services -&amp;gt; Open Swagger UI.
        
    .</IntroInstall>
    <BuildCommitID>22caa1559a6acbdef7e000dec36f0b7aee47772a</BuildCommitID>
    <BuildDate>2026-10-26 13:02:59</BuildDate>
    <BuildHost>opms.rother-oss.com</BuildHost>
    <Filelist>
        <File Location="Custom/Kernel/Modules/AdminGenericInterfaceWebservice.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSBhOTJjNzNmYWIxNGEzNjI0NzhhOTYyMzQwNjAyMzBjNDEzZGQzMDQzIC0gS2VybmVsL01vZHVsZXMvQWRtaW5HZW5lcmljSW50ZXJmYWNlV2Vic2VydmljZS5wbQojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWRtaW5HZW5lcmljSW50ZXJmYWNlV2Vic2VydmljZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgICAgICAgICAgICAgIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIHNldCBwcmVmIGZvciBjb2x1bW5zIGtleQogICAgJFNlbGYtPntQcmVmS2V5SW5jbHVkZUludmFsaWR9ID0gJ0luY2x1ZGVJbnZhbGlkJyAuICctJyAuICRTZWxmLT57QWN0aW9ufTsKCiAgICBteSAlUHJlZmVyZW5jZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRQcmVmZXJlbmNlcygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSA9ICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmS2V5SW5jbHVkZUludmFsaWR9IH07CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgIG15ICRXZWJzZXJ2aWNlSUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnV2Vic2VydmljZUlEJyApIHx8ICcnOwoKICAgIG15ICRMYXlvdXRPYmplY3QgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFdlYnNlcnZpY2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJpY0ludGVyZmFjZTo6V2Vic2VydmljZScpOwogICAgbXkgJFlBTUxPYmplY3QgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6WUFNTCcpOwoKICAgICRQYXJhbXtJbmNsdWRlSW52YWxpZH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSW5jbHVkZUludmFsaWQnICk7CgogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtJbmNsdWRlSW52YWxpZH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+U2V0UHJlZmVyZW5jZXMoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIEtleSAgICA9PiAkU2VsZi0+e1ByZWZLZXlJbmNsdWRlSW52YWxpZH0sCiAgICAgICAgICAgIFZhbHVlICA9PiAkUGFyYW17SW5jbHVkZUludmFsaWR9LAogICAgICAgICk7CgogICAgICAgICRTZWxmLT57SW5jbHVkZUludmFsaWR9ID0gJFBhcmFte0luY2x1ZGVJbnZhbGlkfTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHN1Yi1hY3Rpb24gQ2hhbmdlOiBsb2FkIHdlYiBzZXJ2aWNlIGFuZCBzaG93IGVkaXQgc2NyZWVuCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQ2hhbmdlJyApIHsKCiAgICAgICAgIyBDaGVjayBmb3IgV2Vic2VydmljZUlELgogICAgICAgIGlmICggISRXZWJzZXJ2aWNlSUQgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdOZWVkIFdlYnNlcnZpY2VJRCEnKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgR2V0IHdlYiBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24uCiAgICAgICAgbXkgJFdlYnNlcnZpY2VEYXRhID0gJFdlYnNlcnZpY2VPYmplY3QtPldlYnNlcnZpY2VHZXQoCiAgICAgICAgICAgIElEID0+ICRXZWJzZXJ2aWNlSUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBDaGVjayBmb3IgdmFsaWQgd2ViIHNlcnZpY2UgY29uZmlndXJhdGlvbi4KICAgICAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkV2Vic2VydmljZURhdGEpICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnQ291bGQgbm90IGdldCBkYXRhIGZvciBXZWJzZXJ2aWNlSUQgJXMnLCAkV2Vic2VydmljZUlEICksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJFNlbGYtPl9TaG93RWRpdCgKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBXZWJzZXJ2aWNlSUQgICA9PiAkV2Vic2VydmljZUlELAogICAgICAgICAgICBXZWJzZXJ2aWNlRGF0YSA9PiAkV2Vic2VydmljZURhdGEsCiAgICAgICAgICAgIEFjdGlvbiAgICAgICAgID0+ICdDaGFuZ2UnLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBzdWItYWN0aW9uIENoYW5nZUFjdGlvbjogd3JpdGUgYmFzaWMgY29uZmlnIGFuZCByZXR1cm4gdG8gZWRpdAogICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyZWVuIHRvIGNvbnRpbnVlIHdpdGggdGhlIHJlc3Qgb2YKICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBjb25maWd1cmF0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQ2hhbmdlQWN0aW9uJyApIHsKCiAgICAgICAgIyBDaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbi4KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgICMgQ2hlY2sgZm9yIFdlYnNlcnZpY2VJRC4KICAgICAgICBpZiAoICEkV2Vic2VydmljZUlEICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTmVlZCBXZWJzZXJ2aWNlSUQhJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIEdldCB3ZWIgc2VydmljZSBjb25maWd1cmF0aW9uLgogICAgICAgIG15ICRXZWJzZXJ2aWNlRGF0YSA9ICRXZWJzZXJ2aWNlT2JqZWN0LT5XZWJzZXJ2aWNlR2V0KAogICAgICAgICAgICBJRCA9PiAkV2Vic2VydmljZUlELAogICAgICAgICk7CgogICAgICAgICMgQ2hlY2sgZm9yIHZhbGlkIHdlYiBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24uCiAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJFdlYnNlcnZpY2VEYXRhKSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ0NvdWxkIG5vdCBnZXQgZGF0YSBmb3IgV2Vic2VydmljZUlEICVzJywgJFdlYnNlcnZpY2VJRCApLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBHZXQgcGFyYW1ldGVyIGZyb20gd2ViIGJyb3dzZXIuCiAgICAgICAgbXkgJEdldFBhcmFtID0gJFNlbGYtPl9HZXRQYXJhbXMoKTsKCiAgICAgICAgIyBTZXQgbmV3IGNvbmZpZ3VyYXRpb24uCiAgICAgICAgJFdlYnNlcnZpY2VEYXRhLT57TmFtZX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRHZXRQYXJhbS0+e05hbWV9OwogICAgICAgICRXZWJzZXJ2aWNlRGF0YS0+e0NvbmZpZ30tPntEZXNjcmlwdGlvbn0gICAgICAgICAgICAgICAgPSAkR2V0UGFyYW0tPntEZXNjcmlwdGlvbn07CiAgICAgICAgJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfS0+e1JlbW90ZVN5c3RlbX0gICAgICAgICAgICAgICA9ICRHZXRQYXJhbS0+e1JlbW90ZVN5c3RlbX07CiAgICAgICAgJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfS0+e0RlYnVnZ2VyfS0+e0RlYnVnVGhyZXNob2xkfSA9ICRHZXRQYXJhbS0+e0RlYnVnVGhyZXNob2xkfTsKICAgICAgICAkV2Vic2VydmljZURhdGEtPntDb25maWd9LT57RGVidWdnZXJ9LT57VGVzdE1vZGV9ICAgICAgID0gMDsKICAgICAgICAkV2Vic2VydmljZURhdGEtPntWYWxpZElEfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJEdldFBhcmFtLT57VmFsaWRJRH07CgogICAgICAgIGZvciBteSAkQ29tbXVuaWNhdGlvblR5cGUgKHF3KCBQcm92aWRlciBSZXF1ZXN0ZXIgKSkgewoKICAgICAgICAgICAgIyBDaGVjayBpZiBzZWxlY3RlZCB0eXBlIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBvbmUgb24gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi4KICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfS0+eyRDb21tdW5pY2F0aW9uVHlwZX0tPntUcmFuc3BvcnR9LT57VHlwZX0gbmUKICAgICAgICAgICAgICAgICRHZXRQYXJhbS0+eyAkQ29tbXVuaWNhdGlvblR5cGUgLiAnVHJhbnNwb3J0JyB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAjIERlbGV0ZSBjdXJyZW50IGNvbW11bmljYXRpb24gdHlwZSB0cmFuc3BvcnQuCiAgICAgICAgICAgICAgICBkZWxldGUgJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfS0+eyRDb21tdW5pY2F0aW9uVHlwZX0tPntUcmFuc3BvcnR9OwoKICAgICAgICAgICAgICAgICMgUmVwbGFjZSB0aGUgY3VycmVudCB0cmFuc3BvcnQgdHlwZSB3aXRoIHRoZSBuZXcgc2VsZWN0ZWQgb25lCiAgICAgICAgICAgICAgICAjICAgdGhlIHJlc3Qgb2YgdGhlIGNvbmZpZ3VyYXRpb24gd2lsbCBiZSBlbXB0eQogICAgICAgICAgICAgICAgIyAgIHRoZSB0cmFuc3BvcnQgbmVlZCB0byBiZSBjb25maWd1cmVkIGluZGVwZW5kZW50bHkuCiAgICAgICAgICAgICAgICAkV2Vic2VydmljZURhdGEtPntDb25maWd9LT57JENvbW11bmljYXRpb25UeXBlfS0+e1RyYW5zcG9ydH0tPntUeXBlfSA9ICRHZXRQYXJhbS0+eyAkQ29tbXVuaWNhdGlvblR5cGUgLiAnVHJhbnNwb3J0JyB9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIENoZWNrIHJlcXVpcmVkIHBhcmFtZXRlcnMuCiAgICAgICAgbXkgJUVycm9yOwogICAgICAgIGlmICggISRHZXRQYXJhbS0+e05hbWV9ICkgewoKICAgICAgICAgICAgIyBBZGQgc2VydmVyIGVycm9yIGVycm9yIGNsYXNzLgogICAgICAgICAgICAkRXJyb3J7TmFtZVNlcnZlckVycm9yfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3J7TmFtZVNlcnZlckVycm9yTWVzc2FnZX0gPSBUcmFuc2xhdGFibGUoJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnKTsKICAgICAgICB9CgogICAgICAgICMgQ2hlY2sgaWYgbmFtZSBpcyBkdXBsaWNhdGVkLgogICAgICAgIG15ICVXZWJzZXJ2aWNlTGlzdCA9ICV7ICRXZWJzZXJ2aWNlT2JqZWN0LT5XZWJzZXJ2aWNlTGlzdCgpIH07CgogICAgICAgICVXZWJzZXJ2aWNlTGlzdCA9IHJldmVyc2UgJVdlYnNlcnZpY2VMaXN0OwoKICAgICAgICBpZiAoCiAgICAgICAgICAgICRXZWJzZXJ2aWNlTGlzdHsgJEdldFBhcmFtLT57TmFtZX0gfSAmJgogICAgICAgICAgICAkV2Vic2VydmljZUxpc3R7ICRHZXRQYXJhbS0+e05hbWV9IH0gbmUgJFdlYnNlcnZpY2VJRAogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBBZGQgc2VydmVyIGVycm9yIGVycm9yIGNsYXNzLgogICAgICAgICAgICAkRXJyb3J7TmFtZVNlcnZlckVycm9yfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3J7TmFtZVNlcnZlckVycm9yTWVzc2FnZX0gPSBUcmFuc2xhdGFibGUoJ1RoZXJlIGlzIGFub3RoZXIgd2ViIHNlcnZpY2Ugd2l0aCB0aGUgc2FtZSBuYW1lLicpOwogICAgICAgIH0KCiAgICAgICAgIyBJZiB0aGVyZSBpcyBhbiBlcnJvciByZXR1cm4gdG8gZWRpdCBzY3JlZW4uCiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggXCVFcnJvciApICkgewogICAgICAgICAgICByZXR1cm4gJFNlbGYtPl9TaG93RWRpdCgKICAgICAgICAgICAgICAgICVFcnJvciwKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgIFdlYnNlcnZpY2VJRCAgID0+ICRXZWJzZXJ2aWNlSUQsCiAgICAgICAgICAgICAgICBXZWJzZXJ2aWNlRGF0YSA9PiAkV2Vic2VydmljZURhdGEsCiAgICAgICAgICAgICAgICBBY3Rpb24gICAgICAgICA9PiAnQ2hhbmdlJywKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgT3RoZXJ3aXNlIHNhdmUgY29uZmlndXJhdGlvbiBhbmQgcmV0dXJuIHRvIG92ZXJ2aWV3IHNjcmVlbi4KICAgICAgICBteSAkU3VjY2VzcyA9ICRXZWJzZXJ2aWNlT2JqZWN0LT5XZWJzZXJ2aWNlVXBkYXRlKAogICAgICAgICAgICBJRCAgICAgID0+ICRXZWJzZXJ2aWNlSUQsCiAgICAgICAgICAgIE5hbWUgICAgPT4gJFdlYnNlcnZpY2VEYXRhLT57TmFtZX0sCiAgICAgICAgICAgIENvbmZpZyAgPT4gJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfSwKICAgICAgICAgICAgVmFsaWRJRCA9PiAkV2Vic2VydmljZURhdGEtPntWYWxpZElEfSwKICAgICAgICAgICAgVXNlcklEICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBTaG93IGVycm9yIGlmIGNhbnQgdXBkYXRlLgogICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnVGhlcmUgd2FzIGFuIGVycm9yIHVwZGF0aW5nIHRoZSB3ZWIgc2VydmljZS4nKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgSWYgdGhlIHVzZXIgd291bGQgbGlrZSB0byBjb250aW51ZSBlZGl0aW5nIHRoZSBpbnZva2VyIGNvbmZpZywganVzdCByZWRpcmVjdCB0byB0aGUgZWRpdCBzY3JlZW4uCiAgICAgICAgbXkgJFJlZGlyZWN0VVJMOwogICAgICAgIGlmICgKICAgICAgICAgICAgZGVmaW5lZCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQ29udGludWVBZnRlclNhdmUnICkKICAgICAgICAgICAgJiYgKCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQ29udGludWVBZnRlclNhdmUnICkgZXEgJzEnICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFJlZGlyZWN0VVJMID0KICAgICAgICAgICAgICAgICdBY3Rpb249JwogICAgICAgICAgICAgICAgLiAkU2VsZi0+e0FjdGlvbn0KICAgICAgICAgICAgICAgIC4gJztTdWJhY3Rpb249Q2hhbmdlO1dlYnNlcnZpY2VJRD0nCiAgICAgICAgICAgICAgICAuICRXZWJzZXJ2aWNlSUQKICAgICAgICAgICAgICAgIC4gJzsnOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgT3RoZXJ3aXNlIHJldHVybiB0byBvdmVydmlldy4KICAgICAgICAgICAgJFJlZGlyZWN0VVJMID0KICAgICAgICAgICAgICAgICdBY3Rpb249QWRtaW5HZW5lcmljSW50ZXJmYWNlV2Vic2VydmljZScKICAgICAgICAgICAgICAgIC4gJzsnOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KCBPUCA9PiAkUmVkaXJlY3RVUkwgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHN1Yi1hY3Rpb24gQWRkOiBzaG93IGVkaXQgc2NyZWVuIChlbXB0eSkKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGQnICkgewoKICAgICAgICByZXR1cm4gJFNlbGYtPl9TaG93RWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdBZGQnLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBzdWItYWN0aW9uIEFkZEFjdGlvbjogY3JlYXRlIGEgd2ViIHNlcnZpY2UgYW5kIHJldHVybiB0byBlZGl0CiAgICAjICAgICAgICAgICAgICAgICAgICAgICBzY3JlZW4gdG8gY29udGludWUgd2l0aCB0aGUgcmVzdCBvZgogICAgIyAgICAgICAgICAgICAgICAgICAgICAgdGhlIGNvbmZpZ3VyYXRpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGRBY3Rpb24nICkgewoKICAgICAgICAjIENoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uLgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgIyBHZXQgd2ViIHNlcnZpY2UgY29uZmlndXJhdGlvbi4KICAgICAgICBteSAkV2Vic2VydmljZURhdGE7CgogICAgICAgICMgR2V0IHBhcmFtZXRlciBmcm9tIHdlYiBicm93c2VyLgogICAgICAgIG15ICRHZXRQYXJhbSA9ICRTZWxmLT5fR2V0UGFyYW1zKCk7CgogICAgICAgICMgU2V0IG5ldyBjb25maWd1cmF0aW9uLgogICAgICAgICRXZWJzZXJ2aWNlRGF0YS0+e05hbWV9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkR2V0UGFyYW0tPntOYW1lfTsKICAgICAgICAkV2Vic2VydmljZURhdGEtPntDb25maWd9LT57RGVzY3JpcHRpb259ICAgICAgICAgICAgICAgID0gJEdldFBhcmFtLT57RGVzY3JpcHRpb259OwogICAgICAgICRXZWJzZXJ2aWNlRGF0YS0+e0NvbmZpZ30tPntSZW1vdGVTeXN0ZW19ICAgICAgICAgICAgICAgPSAkR2V0UGFyYW0tPntSZW1vdGVTeXN0ZW19OwogICAgICAgICRXZWJzZXJ2aWNlRGF0YS0+e0NvbmZpZ30tPntEZWJ1Z2dlcn0tPntEZWJ1Z1RocmVzaG9sZH0gPSAkR2V0UGFyYW0tPntEZWJ1Z1RocmVzaG9sZH07CiAgICAgICAgJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfS0+e0RlYnVnZ2VyfS0+e1Rlc3RNb2RlfSAgICAgICA9IDA7CiAgICAgICAgJFdlYnNlcnZpY2VEYXRhLT57VmFsaWRJRH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRHZXRQYXJhbS0+e1ZhbGlkSUR9OwoKICAgICAgICBmb3IgbXkgJENvbW11bmljYXRpb25UeXBlIChxdyggUHJvdmlkZXIgUmVxdWVzdGVyICkpIHsKCiAgICAgICAgICAgICRXZWJzZXJ2aWNlRGF0YS0+e0NvbmZpZ30tPnskQ29tbXVuaWNhdGlvblR5cGV9LT57VHJhbnNwb3J0fS0+e1R5cGV9ID0KICAgICAgICAgICAgICAgICRHZXRQYXJhbS0+eyAkQ29tbXVuaWNhdGlvblR5cGUgLiAnVHJhbnNwb3J0JyB9OwogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayByZXF1aXJlZCBwYXJhbWV0ZXJzLgogICAgICAgIG15ICVFcnJvcjsKICAgICAgICBpZiAoICEkR2V0UGFyYW0tPntOYW1lfSApIHsKCiAgICAgICAgICAgICMgQWRkIHNlcnZlciBlcnJvciBlcnJvciBjbGFzcy4KICAgICAgICAgICAgJEVycm9ye05hbWVTZXJ2ZXJFcnJvcn0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9ye05hbWVTZXJ2ZXJFcnJvck1lc3NhZ2V9ID0gVHJhbnNsYXRhYmxlKCdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJyk7CiAgICAgICAgfQoKICAgICAgICAjIENoZWNrIGlmIG5hbWUgaXMgZHVwbGljYXRlZC4KICAgICAgICBteSAlV2Vic2VydmljZUxpc3QgPSAleyAkV2Vic2VydmljZU9iamVjdC0+V2Vic2VydmljZUxpc3QoKSB9OwoKICAgICAgICAlV2Vic2VydmljZUxpc3QgPSByZXZlcnNlICVXZWJzZXJ2aWNlTGlzdDsKCiAgICAgICAgaWYgKAogICAgICAgICAgICAkV2Vic2VydmljZUxpc3R7ICRHZXRQYXJhbS0+e05hbWV9IH0gJiYKICAgICAgICAgICAgJFdlYnNlcnZpY2VMaXN0eyAkR2V0UGFyYW0tPntOYW1lfSB9IG5lICRXZWJzZXJ2aWNlSUQKICAgICAgICAgICAgKQogICAgICAgIHsKCiAgICAgICAgICAgICMgQWRkIHNlcnZlciBlcnJvciBlcnJvciBjbGFzcy4KICAgICAgICAgICAgJEVycm9ye05hbWVTZXJ2ZXJFcnJvcn0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9ye05hbWVTZXJ2ZXJFcnJvck1lc3NhZ2V9ID0gVHJhbnNsYXRhYmxlKCdUaGVyZSBpcyBhbm90aGVyIHdlYiBzZXJ2aWNlIHdpdGggdGhlIHNhbWUgbmFtZS4nKTsKICAgICAgICB9CgogICAgICAgICMgSWYgdGhlcmUgaXMgYW4gZXJyb3IgcmV0dXJuIHRvIGVkaXQgc2NyZWVuLgogICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoIFwlRXJyb3IgKSApIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5fU2hvd0VkaXQoCiAgICAgICAgICAgICAgICAlRXJyb3IsCiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICBXZWJzZXJ2aWNlSUQgICA9PiAkV2Vic2VydmljZUlELAogICAgICAgICAgICAgICAgV2Vic2VydmljZURhdGEgPT4gJFdlYnNlcnZpY2VEYXRhLAogICAgICAgICAgICAgICAgQWN0aW9uICAgICAgICAgPT4gJ0FkZCcsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIE90aGVyd2lzZSBzYXZlIGNvbmZpZ3VyYXRpb24gYW5kIHJldHVybiB0byBvdmVydmlldyBzY3JlZW4uCiAgICAgICAgbXkgJElEID0gJFdlYnNlcnZpY2VPYmplY3QtPldlYnNlcnZpY2VBZGQoCiAgICAgICAgICAgIE5hbWUgICAgPT4gJFdlYnNlcnZpY2VEYXRhLT57TmFtZX0sCiAgICAgICAgICAgIENvbmZpZyAgPT4gJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfSwKICAgICAgICAgICAgVmFsaWRJRCA9PiAkV2Vic2VydmljZURhdGEtPntWYWxpZElEfSwKICAgICAgICAgICAgVXNlcklEICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBTaG93IGVycm9yIGlmIGNhbnQgY3JlYXRlLgogICAgICAgIGlmICggISRJRCApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1RoZXJlIHdhcyBhbiBlcnJvciBjcmVhdGluZyB0aGUgd2ViIHNlcnZpY2UuJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIFNldCBXZWJzZXJ2aWNlSUQgdG8gdGhlIG5ldyBjcmVhdGVkIHdlYiBzZXJ2aWNlLgogICAgICAgICRXZWJzZXJ2aWNlSUQgPSAkSUQ7CgogICAgICAgICMgRGVmaW5lIG5vdGlmaWNhdGlvbi4KICAgICAgICBteSAkTm90aWZ5ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAnV2ViIHNlcnZpY2UgIiVzIiBjcmVhdGVkIScsCiAgICAgICAgICAgICRXZWJzZXJ2aWNlRGF0YS0+e05hbWV9LAogICAgICAgICk7CgogICAgICAgICMgUmV0dXJuIHRvIGVkaXQgdG8gY29udGludWUgY2hhbmdpbmcgdGhlIGNvbmZpZ3VyYXRpb24uCiAgICAgICAgcmV0dXJuICRTZWxmLT5fU2hvd0VkaXQoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgTm90aWZ5ICAgICAgICAgPT4gJE5vdGlmeSwKICAgICAgICAgICAgV2Vic2VydmljZUlEICAgPT4gJFdlYnNlcnZpY2VJRCwKICAgICAgICAgICAgV2Vic2VydmljZURhdGEgPT4gJFdlYnNlcnZpY2VEYXRhLAogICAgICAgICAgICBBY3Rpb24gICAgICAgICA9PiAnQ2hhbmdlJywKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgc3ViIGFjdGlvbiBFeHBvcnQ6IGNyZWF0ZSBhIFlBTUwgZmlsZSB3aXRoIHRoZSBjb25maWd1cmF0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRXhwb3J0JyApIHsKCiAgICAgICAgIyBDaGVjayBmb3IgV2Vic2VydmljZUlELgogICAgICAgIGlmICggISRXZWJzZXJ2aWNlSUQgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdOZWVkIFdlYnNlcnZpY2VJRCEnKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgR2V0IHdlYiBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24uCiAgICAgICAgbXkgJFdlYnNlcnZpY2VEYXRhID0gJFdlYnNlcnZpY2VPYmplY3QtPldlYnNlcnZpY2VHZXQoCiAgICAgICAgICAgIElEID0+ICRXZWJzZXJ2aWNlSUQKICAgICAgICApOwoKICAgICAgICAjIFNldCBGcmFtZXdvcmsgVmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgaW1wb3J0IHB1cnBvc2VzLgogICAgICAgICRXZWJzZXJ2aWNlRGF0YS0+e0NvbmZpZ30tPntGcmFtZXdvcmtWZXJzaW9ufSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnVmVyc2lvbicpOwoKICAgICAgICAjIENoZWNrIGZvciB2YWxpZCB3ZWIgc2VydmljZSBjb25maWd1cmF0aW9uLgogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCRXZWJzZXJ2aWNlRGF0YSkgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdDb3VsZCBub3QgZ2V0IGRhdGEgZm9yIFdlYnNlcnZpY2VJRCAlcycsICRXZWJzZXJ2aWNlSUQgKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgRHVtcCBjb25maWd1cmF0aW9uIGludG8gYSBZQU1MIHN0cnVjdHVyZS4KICAgICAgICAjIGV4cG9ydCB3ZWJzZXJ2aWNlIG5hbWUgdG8gYmUgZmxleGlibGUgcmVnYXJkaW5nIGZpbGVuYW1lCiAgICAgICAgbXkgJFlBTUxDb250ZW50ID0gJFlBTUxPYmplY3QtPkR1bXAoCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfS0+JSosCiAgICAgICAgICAgICAgICBOYW1lID0+ICRXZWJzZXJ2aWNlRGF0YS0+e05hbWV9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgUmV0dXJuIFlBTUwgdG8gZG93bmxvYWQuCiAgICAgICAgbXkgJFlBTUxGaWxlID0gJFdlYnNlcnZpY2VEYXRhLT57TmFtZX07CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgIEZpbGVuYW1lICAgID0+ICRZQU1MRmlsZSAuICcueW1sJywKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gInRleHQvcGxhaW47IGNoYXJzZXQ9IiAuICRMYXlvdXRPYmplY3QtPntVc2VyQ2hhcnNldH0sCiAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRZQU1MQ29udGVudCwKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBzdWItYWN0aW9uIERlbGV0ZTogZGVsZXRlIHdlYiBzZXJ2aWNlIGFuZCByZXR1cm4gdmFsdWUgdG8gZGlhbG9nCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdEZWxldGUnICkgewoKICAgICAgICAjIENoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uLgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgIyBnZXQgd2ViIHNlcnZpY2UgY29uZmlndXJhdGlvbgogICAgICAgIG15ICRXZWJzZXJ2aWNlRGF0YSA9ICRXZWJzZXJ2aWNlT2JqZWN0LT5XZWJzZXJ2aWNlR2V0KAogICAgICAgICAgICBJRCA9PiAkV2Vic2VydmljZUlELAogICAgICAgICk7CgogICAgICAgIG15ICRTdWNjZXNzID0gJFdlYnNlcnZpY2VPYmplY3QtPldlYnNlcnZpY2VEZWxldGUoCiAgICAgICAgICAgIElEICAgICA9PiAkV2Vic2VydmljZUlELAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgQnVpbGQgSlNPTiBvdXRwdXQuCiAgICAgICAgbXkgJEpTT04gPSAkTGF5b3V0T2JqZWN0LT5KU09ORW5jb2RlKAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICAgICAgID0+ICRTdWNjZXNzLAogICAgICAgICAgICAgICAgRGVsZXRlZFdlYnNlcnZpY2UgPT4gJFdlYnNlcnZpY2VEYXRhLT57TmFtZX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBTZW5kIEpTT04gcmVzcG9uc2UuCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICdhcHBsaWNhdGlvbi9qc29uJywKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJEpTT04sCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHN1Yi1hY3Rpb24gQ2xvbmU6IGNsb25lIHdlYiBzZXJ2aWNlIGFuZCByZXR1cm4gdmFsdWUgdG8gZGlhbG9nCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdDbG9uZScgKSB7CgogICAgICAgICMgQ2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICAjIENoZWNrIGZvciBXZWJzZXJ2aWNlSUQuCiAgICAgICAgaWYgKCAhJFdlYnNlcnZpY2VJRCApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ05lZWQgV2Vic2VydmljZUlEIScpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBHZXQgd2ViIHNlcnZpY2UgY29uZmlndXJhdGlvbi4KICAgICAgICBteSAkV2Vic2VydmljZURhdGEgPSAkV2Vic2VydmljZU9iamVjdC0+V2Vic2VydmljZUdldCgKICAgICAgICAgICAgSUQgPT4gJFdlYnNlcnZpY2VJRCwKICAgICAgICApOwoKICAgICAgICAjIENoZWNrIGZvciB2YWxpZCB3ZWIgc2VydmljZSBjb25maWd1cmF0aW9uLgogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCRXZWJzZXJ2aWNlRGF0YSkgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnQ291bGQgbm90IGdldCBkYXRhIGZvciBXZWJzZXJ2aWNlSUQgJXMnLCAkV2Vic2VydmljZUlEICksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAkQ2xvbmVOYW1lID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0Nsb25lTmFtZScgKSB8fCAnJzsKCiAgICAgICAgaWYgKCAhJENsb25lTmFtZSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ05lZWQgTmFtZSEnKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgU2V0IG5ldyBjb25maWd1cmF0aW9uLgogICAgICAgICRXZWJzZXJ2aWNlRGF0YS0+e05hbWV9ID0gJENsb25lTmFtZTsKCiAgICAgICAgIyBDaGVjayBpZiBuYW1lIGlzIGR1cGxpY2F0ZWQuCiAgICAgICAgbXkgJVdlYnNlcnZpY2VMaXN0ID0gJXsgJFdlYnNlcnZpY2VPYmplY3QtPldlYnNlcnZpY2VMaXN0KCkgfTsKCiAgICAgICAgJVdlYnNlcnZpY2VMaXN0ID0gcmV2ZXJzZSAlV2Vic2VydmljZUxpc3Q7CgogICAgICAgIGlmICggJFdlYnNlcnZpY2VMaXN0eyRDbG9uZU5hbWV9ICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnVGhlcmUgaXMgYW5vdGhlciB3ZWIgc2VydmljZSB3aXRoIHRoZSBzYW1lIG5hbWUuJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIE90aGVyd2lzZSBzYXZlIGNvbmZpZ3VyYXRpb24gYW5kIHJldHVybiB0byBvdmVydmlldyBzY3JlZW4uCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkV2Vic2VydmljZU9iamVjdC0+V2Vic2VydmljZUFkZCgKICAgICAgICAgICAgTmFtZSAgICA9PiAkV2Vic2VydmljZURhdGEtPntOYW1lfSwKICAgICAgICAgICAgQ29uZmlnICA9PiAkV2Vic2VydmljZURhdGEtPntDb25maWd9LAogICAgICAgICAgICBWYWxpZElEID0+ICRXZWJzZXJ2aWNlRGF0YS0+e1ZhbGlkSUR9LAogICAgICAgICAgICBVc2VySUQgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1RoZXJlIHdhcyBhbiBlcnJvciBjcmVhdGluZyB0aGUgd2ViIHNlcnZpY2UuJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIERlZmluZSBub3RpZmljYXRpb24uCiAgICAgICAgbXkgJE5vdGlmeSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgJ1dlYiBzZXJ2aWNlICIlcyIgY3JlYXRlZCEnLAogICAgICAgICAgICAkV2Vic2VydmljZURhdGEtPntOYW1lfSwKICAgICAgICApOwoKICAgICAgICAjIFJldHVybiB0byBvdmVydmlldy4KICAgICAgICByZXR1cm4gJFNlbGYtPl9TaG93T3ZlcnZpZXcoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgTm90aWZ5ID0+ICROb3RpZnksCiAgICAgICAgICAgIEFjdGlvbiA9PiAnT3ZlcnZpZXcnLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBzdWItYWN0aW9uIEltcG9ydDogcGFyc2UgdGhlIGZpbGUgYW5kIHJldHVybiB0byBvdmVydmlldwogICAgIyAgICAgICAgICAgICAgICAgICAgaWYgbmFtZSBlcnJvcnMgcmV0dXJuIHRvIGFkZCBzY3JlZW4KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdJbXBvcnQnICkgewoKICAgICAgICAjIENoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uLgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgbXkgJEltcG9ydGVkQ29uZmlnOwoKICAgICAgICBteSAkSG9tZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnSG9tZScpOwoKICAgICAgICBteSAkTWFpbk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyk7CgogICAgICAgICMgR2V0IHdlYiBzZXJ2aWNlIG5hbWUuCiAgICAgICAgbXkgJFdlYnNlcnZpY2VOYW1lOwogICAgICAgIG15ICRFeGFtcGxlV2ViU2VydmljZUZpbGVuYW1lID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0V4YW1wbGVXZWJTZXJ2aWNlJyApIHx8ICcnOwogICAgICAgIG15ICRGaWxlV2l0aG91dEV4dGVuc2lvbjsKCiAgICAgICAgaWYgKCRFeGFtcGxlV2ViU2VydmljZUZpbGVuYW1lKSB7CiAgICAgICAgICAgICRFeGFtcGxlV2ViU2VydmljZUZpbGVuYW1lID1+IHN7Lyt8XC57Mix9fXt9c214OyAgICAjIHJlbW92ZSBzbGFzaGVzIGFuZCAuLgoKICAgICAgICAgICAgaWYgKCAhJEV4YW1wbGVXZWJTZXJ2aWNlRmlsZW5hbWUgKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpLT5GYXRhbEVycm9yKAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdOZWVkIEV4YW1wbGVXZWJTZXJ2aWNlIScpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBFeHRyYWN0IGZpbGUgbmFtZS4KICAgICAgICAgICAgKCRGaWxlV2l0aG91dEV4dGVuc2lvbikgPSAkRXhhbXBsZVdlYlNlcnZpY2VGaWxlbmFtZSA9fiBteyguKj8pXC55bWwkfXNteDsKCiAgICAgICAgICAgICMgUnVuIF9wcmUucG0gaWYgYXZhaWxhYmxlLgogICAgICAgICAgICBpZiAoIC1lICIkSG9tZS92YXIvd2Vic2VydmljZXMvZXhhbXBsZXMvIiAuICRGaWxlV2l0aG91dEV4dGVuc2lvbiAuICJfcHJlLnBtIiApIHsKCiAgICAgICAgICAgICAgICBteSAkQmFja2VuZE5hbWUgPSAndmFyOjp3ZWJzZXJ2aWNlczo6ZXhhbXBsZXM6OicgLiAkRmlsZVdpdGhvdXRFeHRlbnNpb24gLiAnX3ByZSc7CgogICAgICAgICAgICAgICAgbXkgJExvYWRlZCA9ICRNYWluT2JqZWN0LT5SZXF1aXJlKAogICAgICAgICAgICAgICAgICAgICRCYWNrZW5kTmFtZSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgaWYgKCAhJExvYWRlZCApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnQ291bGQgbm90IGxvYWQgJXMuJywgJEJhY2tlbmROYW1lICksCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgbXkgJEJhY2tlbmRQcmUgPSAkS2VybmVsOjpPTS0+R2V0KAogICAgICAgICAgICAgICAgICAgICRCYWNrZW5kTmFtZSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgJVN0YXR1cyA9ICRCYWNrZW5kUHJlLT5SdW4oKTsKICAgICAgICAgICAgICAgIGlmICggISRTdGF0dXN7U3VjY2Vzc30gKSB7CgogICAgICAgICAgICAgICAgICAgICMgU2hvdyB0aGUgZXJyb3Igc2NyZWVuLgogICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkU3RhdHVze0Vycm9yfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkQ29udGVudCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPkZpbGVSZWFkKAogICAgICAgICAgICAgICAgTG9jYXRpb24gPT4gIiRIb21lL3Zhci93ZWJzZXJ2aWNlcy9leGFtcGxlcy8kRXhhbXBsZVdlYlNlcnZpY2VGaWxlbmFtZSIsCiAgICAgICAgICAgICAgICBNb2RlICAgICA9PiAndXRmOCcsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICEkQ29udGVudCApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JyktPkZhdGFsRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdDb3VsZCBub3QgcmVhZCAlcyEnLCAkRXhhbXBsZVdlYlNlcnZpY2VGaWxlbmFtZSApLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJENvbnRlbnQgPSAkeyAkQ29udGVudCB8fCBcJycgfTsKCiAgICAgICAgICAgICMgUmVhZCBjb25maWd1cmF0aW9uIGZyb20gYSBZQU1MIHN0cnVjdHVyZS4KICAgICAgICAgICAgJEltcG9ydGVkQ29uZmlnID0gJFlBTUxPYmplY3QtPkxvYWQoIERhdGEgPT4gJENvbnRlbnQgKTsKICAgICAgICAgICAgJFdlYnNlcnZpY2VOYW1lID0gJEV4YW1wbGVXZWJTZXJ2aWNlRmlsZW5hbWU7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBHZXQgdGhlIHdlYiBzZXJ2aWNlIGNvbmZpZyBmaWxlIGZyb20gdGhlIGh0dHAgcmVxdWVzdC4KICAgICAgICAgICAgbXkgJUNvbmZpZ0ZpbGUgPSAkUGFyYW1PYmplY3QtPkdldFVwbG9hZEFsbCgKICAgICAgICAgICAgICAgIFBhcmFtID0+ICdDb25maWdGaWxlJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgQ2hlY2sgZm9yIGZpbGUuCiAgICAgICAgICAgIGlmICggISVDb25maWdGaWxlICkgewogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdOZWVkIGEgZmlsZSB0byBpbXBvcnQhJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIFJlYWQgY29uZmlndXJhdGlvbiBmcm9tIGEgWUFNTCBzdHJ1Y3R1cmUuCiAgICAgICAgICAgICRJbXBvcnRlZENvbmZpZyA9ICRZQU1MT2JqZWN0LT5Mb2FkKCBEYXRhID0+ICRDb25maWdGaWxle0NvbnRlbnR9ICk7CgogICAgICAgICAgICAjIEdldCB3ZWIgc2VydmljZSBuYW1lIChvcHRpb25hbCksIG90aGVyd2lzZSB1c2UgZmlsZW5hbWUgb2YgY29uZmlnIGZpbGUuCiAgICAgICAgICAgICRXZWJzZXJ2aWNlTmFtZSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdXZWJzZXJ2aWNlTmFtZScgKSB8fCAnJzsKICAgICAgICAgICAgaWYgKCAhSXNTdHJpbmdXaXRoRGF0YSgkV2Vic2VydmljZU5hbWUpICkgewoKICAgICAgICAgICAgICAgICRXZWJzZXJ2aWNlTmFtZSA9ICRDb25maWdGaWxle0ZpbGVuYW1lfTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBEaXNwbGF5IGFueSBZQU1MIGVycm9yIG1lc3NhZ2UgYXMgYSBub3JtYWwgb3RvYm8gZXJyb3IgbWVzc2FnZS4KICAgICAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkSW1wb3J0ZWRDb25maWcpICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAgICAgVHJhbnNsYXRhYmxlKCdUaGUgaW1wb3J0ZWQgZmlsZSBoYXMgbm90IHZhbGlkIFlBTUwgY29udGVudCEgUGxlYXNlIGNoZWNrIE9UT0JPIGxvZyBmb3IgZGV0YWlscycpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayBpZiBpbXBvcnRlZCBjb25maWd1cmF0aW9uIGhhcyBjdXJyZW50IGZyYW1ld29yayB2ZXJzaW9uIG90aGVyd2lzZSB1cGRhdGUgaXQuCiAgICAgICAgaWYgKAogICAgICAgICAgICAhJEltcG9ydGVkQ29uZmlnLT57RnJhbWV3b3JrVmVyc2lvbn0KICAgICAgICAgICAgfHwgJEltcG9ydGVkQ29uZmlnLT57RnJhbWV3b3JrVmVyc2lvbn0gbmUgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdWZXJzaW9uJykKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJEltcG9ydGVkQ29uZmlnID0gJFNlbGYtPl9VcGRhdGVDb25maWd1cmF0aW9uKCBDb25maWd1cmF0aW9uID0+ICRJbXBvcnRlZENvbmZpZyApOwogICAgICAgIH0KCiAgICAgICAgIyBSZW1vdmUgZnJhbWV3b3JrIGluZm9ybWF0aW9uIHNpbmNlIGlzIG5vdCBuZWVkZWQgYW55bW9yZS4KICAgICAgICBkZWxldGUgJEltcG9ydGVkQ29uZmlnLT57RnJhbWV3b3JrVmVyc2lvbn07CgogICAgICAgICMgUmVtb3ZlIGZpbGUgZXh0ZW5zaW9uLgogICAgICAgICRXZWJzZXJ2aWNlTmFtZSA9fiBze1wuW14uXSskfXt9ZzsKCiAgICAgICAgIyBDaGVjayByZXF1aXJlZCBwYXJhbWV0ZXJzLgogICAgICAgIG15ICVFcnJvcjsKICAgICAgICBpZiAoICEkV2Vic2VydmljZU5hbWUgKSB7CgogICAgICAgICAgICAjIEFkZCBzZXJ2ZXIgZXJyb3IgZXJyb3IgY2xhc3MuCiAgICAgICAgICAgICRFcnJvcntOYW1lU2VydmVyRXJyb3J9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcntOYW1lU2VydmVyRXJyb3JNZXNzYWdlfSA9IFRyYW5zbGF0YWJsZSgnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcpOwogICAgICAgIH0KCiAgICAgICAgbXkgJFdlYnNlcnZpY2VEYXRhOwoKICAgICAgICAjIFNldCBXZWJzZXJ2aWNlRGF0YS4KICAgICAgICAkV2Vic2VydmljZURhdGEtPntOYW1lfSAgICA9ICRXZWJzZXJ2aWNlTmFtZTsKICAgICAgICAkV2Vic2VydmljZURhdGEtPntDb25maWd9ICA9ICRJbXBvcnRlZENvbmZpZzsKICAgICAgICAkV2Vic2VydmljZURhdGEtPntWYWxpZElEfSA9IDE7CgogICAgICAgICMgQ2hlY2sgaWYgbmFtZSBpcyBkdXBsaWNhdGVkLgogICAgICAgIG15ICVXZWJzZXJ2aWNlTGlzdCA9ICV7ICRXZWJzZXJ2aWNlT2JqZWN0LT5XZWJzZXJ2aWNlTGlzdCgpIH07CgogICAgICAgICVXZWJzZXJ2aWNlTGlzdCA9IHJldmVyc2UgJVdlYnNlcnZpY2VMaXN0OwoKICAgICAgICBpZiAoCiAgICAgICAgICAgICRXZWJzZXJ2aWNlTGlzdHskV2Vic2VydmljZU5hbWV9ICYmCiAgICAgICAgICAgICRXZWJzZXJ2aWNlTGlzdHskV2Vic2VydmljZU5hbWV9IG5lICRXZWJzZXJ2aWNlSUQKICAgICAgICAgICAgKQogICAgICAgIHsKCiAgICAgICAgICAgICMgQWRkIHNlcnZlciBlcnJvciBlcnJvciBjbGFzcy4KICAgICAgICAgICAgJEVycm9ye05hbWVTZXJ2ZXJFcnJvcn0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9ye05hbWVTZXJ2ZXJFcnJvck1lc3NhZ2V9ID0gVHJhbnNsYXRhYmxlKCdUaGVyZSBpcyBhbm90aGVyIHdlYiBzZXJ2aWNlIHdpdGggdGhlIHNhbWUgbmFtZS4nKTsKICAgICAgICB9CgogICAgICAgICMgSWYgdGhlcmUgaXMgYW4gZXJyb3IgcmV0dXJuIHRvIGVkaXQgc2NyZWVuLgogICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoIFwlRXJyb3IgKSApIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5fU2hvd0VkaXQoCiAgICAgICAgICAgICAgICAlRXJyb3IsCiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICBXZWJzZXJ2aWNlSUQgICA9PiAkV2Vic2VydmljZUlELAogICAgICAgICAgICAgICAgV2Vic2VydmljZURhdGEgPT4gJFdlYnNlcnZpY2VEYXRhLAogICAgICAgICAgICAgICAgQWN0aW9uICAgICAgICAgPT4gJ0FkZCcsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIE90aGVyd2lzZSBzYXZlIGNvbmZpZ3VyYXRpb24gYW5kIHJldHVybiB0byBvdmVydmlldyBzY3JlZW4uCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkV2Vic2VydmljZU9iamVjdC0+V2Vic2VydmljZUFkZCgKICAgICAgICAgICAgTmFtZSAgICA9PiAkV2Vic2VydmljZURhdGEtPntOYW1lfSwKICAgICAgICAgICAgQ29uZmlnICA9PiAkV2Vic2VydmljZURhdGEtPntDb25maWd9LAogICAgICAgICAgICBWYWxpZElEID0+ICRXZWJzZXJ2aWNlRGF0YS0+e1ZhbGlkSUR9LAogICAgICAgICAgICBVc2VySUQgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoCiAgICAgICAgICAgICRGaWxlV2l0aG91dEV4dGVuc2lvbgogICAgICAgICAgICAmJiAtZSAiJEhvbWUvdmFyL3dlYnNlcnZpY2VzL2V4YW1wbGVzLyIgLiAkRmlsZVdpdGhvdXRFeHRlbnNpb24gLiAiX3Bvc3QucG0iCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRCYWNrZW5kTmFtZSA9ICd2YXI6OndlYnNlcnZpY2VzOjpleGFtcGxlczo6JyAuICRGaWxlV2l0aG91dEV4dGVuc2lvbiAuICdfcG9zdCc7CgogICAgICAgICAgICBteSAkTG9hZGVkID0gJE1haW5PYmplY3QtPlJlcXVpcmUoCiAgICAgICAgICAgICAgICAkQmFja2VuZE5hbWUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoJExvYWRlZCkgewogICAgICAgICAgICAgICAgbXkgJEJhY2tlbmRQb3N0ID0gJEtlcm5lbDo6T00tPkdldCgKICAgICAgICAgICAgICAgICAgICAkQmFja2VuZE5hbWUsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG15ICVTdGF0dXMgPSAkQmFja2VuZFBvc3QtPlJ1bigpOwogICAgICAgICAgICAgICAgaWYgKCAhJFN0YXR1c3tTdWNjZXNzfSApIHsKCiAgICAgICAgICAgICAgICAgICAgIyBTaG93IHRoZSBlcnJvciBzY3JlZW4uCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRTdGF0dXN7RXJyb3J9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgRGVmaW5lIG5vdGlmaWNhdGlvbi4KICAgICAgICBteSAkTm90aWZ5ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAnV2ViIHNlcnZpY2UgIiVzIiBjcmVhdGVkIScsCiAgICAgICAgICAgICRXZWJzZXJ2aWNlRGF0YS0+e05hbWV9LAogICAgICAgICk7CgogICAgICAgIHJldHVybiAkU2VsZi0+X1Nob3dPdmVydmlldygKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBOb3RpZnkgPT4gJE5vdGlmeSwKICAgICAgICAgICAgQWN0aW9uID0+ICdPdmVydmlldycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHN1Yi1hY3Rpb24gRGVsZXRlQWN0aW9uOiBkZWxldGUgYW4gb3BlcmF0aW9uIG9yIGludm9rZXIKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdEZWxldGVBY3Rpb24nICkgewoKICAgICAgICAjIENoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uLgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgcmV0dXJuICRTZWxmLT5fRGVsZXRlQWN0aW9uKAogICAgICAgICAgICBXZWJzZXJ2aWNlSUQgPT4gJFdlYnNlcnZpY2VJRCwKICAgICAgICApOwogICAgfQojIFJvdGhlciBPU1MgLyB3ZWJzZXJ2aWNlLW9wZW5hcGkKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgc3ViLWFjdGlvbiBTd2FnZ2VyOiBzaG93IE9wZW5BUEkgU3dhZ2dlciBVSQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1N3YWdnZXInICkgewoKICAgICAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgIEV4dFVSTCA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0h0dHBUeXBlJykgLiAiOi8vIiAuICRDb25maWdPYmplY3QtPkdldCgnRlFETicpIC4gJy9vdG9iby13ZWIvanMvdGhpcmRwYXJ0eS9zd2FnZ2VyL2luZGV4Lmh0bWwnCiAgICAgICAgKTsKICAgIH0KIyBFTyB3ZWJzZXJ2aWNlLW9wZW5hcGkKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZGVmYXVsdDogc2hvdyBzdGFydCBzY3JlZW4KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiAgICAjIEdldCBEZWxldGVkIHdlYiBzZXJ2aWNlIGlmIGFueS4KICAgIG15ICREZWxldGVkV2Vic2VydmljZSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdEZWxldGVkV2Vic2VydmljZScgKSB8fCAnJzsKCiAgICBteSAkTm90aWZ5OwoKICAgIGlmICgkRGVsZXRlZFdlYnNlcnZpY2UpIHsKCiAgICAgICAgIyBkZWZpbmUgbm90aWZpY2F0aW9uCiAgICAgICAgJE5vdGlmeSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgJ1dlYiBzZXJ2aWNlICIlcyIgZGVsZXRlZCEnLAogICAgICAgICAgICAkRGVsZXRlZFdlYnNlcnZpY2UsCiAgICAgICAgKTsKCiAgICB9CgogICAgcmV0dXJuICRTZWxmLT5fU2hvd092ZXJ2aWV3KAogICAgICAgICVQYXJhbSwKICAgICAgICBOb3RpZnkgPT4gJE5vdGlmeSwKICAgICAgICBBY3Rpb24gPT4gJ092ZXJ2aWV3JywKICAgICk7Cn0KCnN1YiBfU2hvd092ZXJ2aWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKCiAgICAjIHNob3cgbm90aWZpY2F0aW9ucyBpZiBhbnkKICAgIGlmICggJFBhcmFte05vdGlmeX0gKSB7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIEluZm8gPT4gJFBhcmFte05vdGlmeX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIENhbGwgYWxsIG5lZWRlZCB0dCBibG9ja3MuCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdNYWluJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0luY2x1ZGVJbnZhbGlkJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgSW5jbHVkZUludmFsaWQgICAgICAgID0+ICRTZWxmLT57SW5jbHVkZUludmFsaWR9LAogICAgICAgICAgICBJbmNsdWRlSW52YWxpZENoZWNrZWQgPT4gJFNlbGYtPntJbmNsdWRlSW52YWxpZH0gPyAnY2hlY2tlZCcgOiAnJywKICAgICAgICB9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25MaXN0JyApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0FjdGlvbkFkZCcgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdPdmVydmlld0hlYWRlcicgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdPdmVydmlld1Jlc3VsdCcgKTsKCiAgICBteSAkV2Vic2VydmljZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmljSW50ZXJmYWNlOjpXZWJzZXJ2aWNlJyk7CgogICAgIyBHZXQgd2ViIHNlcnZpY2VzIGxpc3QuCiAgICBteSAkV2Vic2VydmljZUxpc3QgPSAkV2Vic2VydmljZU9iamVjdC0+V2Vic2VydmljZUxpc3QoCiAgICAgICAgVmFsaWQgPT4gJFNlbGYtPntJbmNsdWRlSW52YWxpZH0gPyAwIDogMSwKICAgICk7CgogICAgIyBDaGVjayBpZiBubyB3ZWIgc2VydmljZXMgYXJlIHJlZ2lzdGVyZWQuCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkV2Vic2VydmljZUxpc3QpICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdOb0RhdGFGb3VuZE1zZycgKTsKICAgIH0KCiAgICAjIE90aGVyd2lzZSBzaG93IGFsbCB3ZWIgc2VydmljZXMuCiAgICBlbHNlIHsKCiMgUm90aGVyIE9TUyAvIHdlYnNlcnZpY2Utb3BlYW5waQogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25Td2FnZ2VyJyApOwojIEVPIHdlYnNlcnZpY2Utb3BlbmFwaQogICAgICAgIFdFQlNFUlZJQ0VJRDoKICAgICAgICBmb3IgbXkgJFdlYnNlcnZpY2VJRCAoCiAgICAgICAgICAgIHNvcnQgeyAkV2Vic2VydmljZUxpc3QtPnskYX0gY21wICRXZWJzZXJ2aWNlTGlzdC0+eyRifSB9CiAgICAgICAgICAgIGtleXMgJXskV2Vic2VydmljZUxpc3R9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG5leHQgV0VCU0VSVklDRUlEIGlmICEkV2Vic2VydmljZUlEOwoKICAgICAgICAgICAgIyBHZXQgd2ViIHNlcnZpY2UgZGF0YS4KICAgICAgICAgICAgbXkgJFdlYnNlcnZpY2UgPSAkV2Vic2VydmljZU9iamVjdC0+V2Vic2VydmljZUdldCggSUQgPT4gJFdlYnNlcnZpY2VJRCApOwogICAgICAgICAgICBuZXh0IFdFQlNFUlZJQ0VJRCBpZiAhJFdlYnNlcnZpY2U7CgogICAgICAgICAgICAjIENvbnZlcnQgVmFsaWRJRCB0byB0ZXh0LgogICAgICAgICAgICBteSAkVmFsaWRTdHJnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkTG9va3VwKAogICAgICAgICAgICAgICAgVmFsaWRJRCA9PiAkV2Vic2VydmljZS0+e1ZhbGlkSUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAhJFdlYnNlcnZpY2UtPntDb25maWd9IHx8ICFJc0hhc2hSZWZXaXRoRGF0YSggJFdlYnNlcnZpY2UtPntDb25maWd9ICkgKSB7CgogICAgICAgICAgICAgICAgIyBXcml0ZSBhbiBlcnJvciBtZXNzYWdlIHRvIHRoZSBPVE9CTyBsb2cuCiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDb25maWd1cmF0aW9uIG9mIFdlYnNlcnZpY2VJRCAkV2Vic2VydmljZUlEIGlzIGludmFsaWQhIiwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBOb3RpZnkgdGhlIHVzZXIgb2YgcHJvYmxlbXMgbG9hZGluZyB0aGlzIHdlYiBzZXJ2aWNlLgogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBDb250aW51ZSBsb2FkaW5nIHRoZSBsaXN0IG9mIHdlYiBzZXJ2aWNlcy4KICAgICAgICAgICAgICAgIG5leHQgV0VCU0VSVklDRUlEOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIFByZXBhcmUgZGF0YSB0byBvdXRwdXQuCiAgICAgICAgICAgIG15ICREYXRhID0gewogICAgICAgICAgICAgICAgSUQgICAgICAgICAgICAgICAgID0+ICRXZWJzZXJ2aWNlSUQsCiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgICAgPT4gJFdlYnNlcnZpY2UtPntOYW1lfSwKICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uICAgICAgICA9PiAkV2Vic2VydmljZS0+e0NvbmZpZ30tPntEZXNjcmlwdGlvbn0gICAgICAgICAgICAgICAgICAgIHx8ICctJywKICAgICAgICAgICAgICAgIFJlbW90ZVN5c3RlbSAgICAgICA9PiAkV2Vic2VydmljZS0+e0NvbmZpZ30tPntSZW1vdGVTeXN0ZW19ICAgICAgICAgICAgICAgICAgIHx8ICctJywKICAgICAgICAgICAgICAgIFByb3ZpZGVyVHJhbnNwb3J0ICA9PiAkV2Vic2VydmljZS0+e0NvbmZpZ30tPntQcm92aWRlcn0tPntUcmFuc3BvcnR9LT57VHlwZX0gIHx8ICctJywKICAgICAgICAgICAgICAgIFJlcXVlc3RlclRyYW5zcG9ydCA9PiAkV2Vic2VydmljZS0+e0NvbmZpZ30tPntSZXF1ZXN0ZXJ9LT57VHJhbnNwb3J0fS0+e1R5cGV9IHx8ICctJywKICAgICAgICAgICAgICAgIFZhbGlkICAgICAgICAgICAgICA9PiAkVmFsaWRTdHJnLAogICAgICAgICAgICB9OwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFJvdycsCiAgICAgICAgICAgICAgICBEYXRhID0+ICREYXRhLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluR2VuZXJpY0ludGVyZmFjZVdlYnNlcnZpY2UnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgKTsKCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCnN1YiBfU2hvd0VkaXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkV2Vic2VydmljZURhdGEgPSAkUGFyYW17V2Vic2VydmljZURhdGF9OwoKICAgIG15ICREZWJ1Z2dlckRhdGEgPSAkV2Vic2VydmljZURhdGEtPntDb25maWd9LT57RGVidWdnZXJ9IHx8IHt9OwoKICAgIG15ICRQcm92aWRlckRhdGEgPSAkV2Vic2VydmljZURhdGEtPntDb25maWd9LT57UHJvdmlkZXJ9IHx8IHt9OwoKICAgIG15ICRSZXF1ZXN0ZXJEYXRhID0gJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfS0+e1JlcXVlc3Rlcn0gfHwge307CgogICAgbXkgJEVycm9ySGFuZGxpbmdQcm92aWRlciAgICAgICAgID0gJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfS0+e1Byb3ZpZGVyfS0+e0Vycm9ySGFuZGxpbmd9ICAgICAgICAgfHwge307CiAgICBteSAkRXJyb3JIYW5kbGluZ1ByaW9yaXR5UHJvdmlkZXIgPSAkV2Vic2VydmljZURhdGEtPntDb25maWd9LT57UHJvdmlkZXJ9LT57RXJyb3JIYW5kbGluZ1ByaW9yaXR5fSB8fCBbXTsKCiAgICBteSAkRXJyb3JIYW5kbGluZ1JlcXVlc3RlciAgICAgICAgID0gJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfS0+e1JlcXVlc3Rlcn0tPntFcnJvckhhbmRsaW5nfSAgICAgICAgIHx8IHt9OwogICAgbXkgJEVycm9ySGFuZGxpbmdQcmlvcml0eVJlcXVlc3RlciA9ICRXZWJzZXJ2aWNlRGF0YS0+e0NvbmZpZ30tPntSZXF1ZXN0ZXJ9LT57RXJyb3JIYW5kbGluZ1ByaW9yaXR5fSB8fCBbXTsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgIGlmICggJFBhcmFte0RlcGVuZGVuY3lFcnJvck1lc3NhZ2V9ICkgewogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBQcmlvcml0eSA9PiAnTm90aWNlJywKICAgICAgICAgICAgRGF0YSAgICAgPT4gJFBhcmFte0RlcGVuZGVuY3lFcnJvck1lc3NhZ2V9LAoKICAgICAgICApOwogICAgfQoKICAgICMgU2hvdyBub3RpZmljYXRpb25zIGlmIGFueS4KICAgIGlmICggJFBhcmFte05vdGlmeX0gKSB7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIEluZm8gPT4gJFBhcmFte05vdGlmeX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdNYWluJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgIGlmICggJFBhcmFte0FjdGlvbn0gZXEgJ0FkZCcgKSB7CgogICAgICAgIG15IEBFeGFtcGxlV2ViU2VydmljZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpLT5EaXJlY3RvcnlSZWFkKAogICAgICAgICAgICBEaXJlY3RvcnkgPT4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdIb21lJykgLiAnL3Zhci93ZWJzZXJ2aWNlcy9leGFtcGxlcycsCiAgICAgICAgICAgIEZpbHRlciAgICA9PiAnKi55bWwnLAogICAgICAgICAgICBTaWxlbnQgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICBteSAlRXhhbXBsZVdlYlNlcnZpY2VzRGF0YTsKCiAgICAgICAgZm9yIG15ICRFeGFtcGxlV2ViU2VydmljZUZpbGVuYW1lIChARXhhbXBsZVdlYlNlcnZpY2VzKSB7CiAgICAgICAgICAgIG15ICRLZXkgPSAkRXhhbXBsZVdlYlNlcnZpY2VGaWxlbmFtZTsKICAgICAgICAgICAgJEtleSA9fiBze14uKi8oW14vXSspJH17JDF9c214OwogICAgICAgICAgICBteSAkVmFsdWUgPSAkS2V5OwogICAgICAgICAgICAkVmFsdWUgPX4gc3teKC4rKS55bWx9eyQxfXNteDsKICAgICAgICAgICAgJFZhbHVlID1+IHN7X317IH1zbXhnOwogICAgICAgICAgICAkRXhhbXBsZVdlYlNlcnZpY2VzRGF0YXskS2V5fSA9ICRWYWx1ZTsKICAgICAgICB9CgogICAgICAgIG15ICVGcm9udGVuZDsKCiAgICAgICAgaWYgKCVFeGFtcGxlV2ViU2VydmljZXNEYXRhKSB7CiAgICAgICAgICAgICRGcm9udGVuZHtFeGFtcGxlV2ViU2VydmljZUxpc3R9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpLT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnRXhhbXBsZVdlYlNlcnZpY2UnLAogICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlRXhhbXBsZVdlYlNlcnZpY2VzRGF0YSwKICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+IDAsCiAgICAgICAgICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZSBWYWxpZGF0ZV9SZXF1aXJlZCcsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIEVuYWJsZSBFeGFtcGxlIHdlYiBzZXJ2aWNlcy4KICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnRXhhbXBsZVdlYlNlcnZpY2VzJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlRnJvbnRlbmQsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnQWN0aW9uTGlzdCcgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25PdmVydmlldycgKTsKCiAgICBpZiAoICRQYXJhbXtBY3Rpb259IGVxICdDaGFuZ2UnICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25DbG9uZScsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25FeHBvcnQnLAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uSGlzdG9yeScsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25EZWxldGUnLAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uRGVidWdnZXInLAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2lmICggJFBhcmFte0FjdGlvbn0gZXEgJ0FkZCcgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0FjdGlvbkltcG9ydCcsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgfQogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0hpbnQnICk7CgogICAgbXkgJUdlbmVyYWxEYXRhID0gKAogICAgICAgIE5hbWUgICAgICAgICA9PiAkV2Vic2VydmljZURhdGEtPntOYW1lfSwKICAgICAgICBEZXNjcmlwdGlvbiAgPT4gJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfS0+e0Rlc2NyaXB0aW9ufSwKICAgICAgICBSZW1vdGVTeXN0ZW0gPT4gJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfS0+e1JlbW90ZVN5c3RlbX0sCiAgICApOwoKICAgICMgRGVmaW5lIHRoZSBkZWJ1ZyBUaHJlc2hvbGRzICh0aGlzIG5lZWRzIHRvIGJlIGhhcmQtY29kZWQpLgogICAgbXkgJURlYnVnVGhyZXNob2xkID0gKAogICAgICAgIGRlYnVnICA9PiBUcmFuc2xhdGFibGUoJ0RlYnVnJyksCiAgICAgICAgaW5mbyAgID0+IFRyYW5zbGF0YWJsZSgnSW5mbycpLAogICAgICAgIG5vdGljZSA9PiBUcmFuc2xhdGFibGUoJ05vdGljZScpLAogICAgICAgIGVycm9yICA9PiBUcmFuc2xhdGFibGUoJ0Vycm9yJyksCiAgICApOwoKICAgICMgQ3JlYXRlIHRoZSBEZWJ1Z1RocmVzaG9sZCBzZWxlY3QuCiAgICBteSAkRGVidWdUaHJlc2hvbGRTdHJnID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgICAgPT4gXCVEZWJ1Z1RocmVzaG9sZCwKICAgICAgICBOYW1lICAgICAgICAgICA9PiAnRGVidWdUaHJlc2hvbGQnLAogICAgICAgIFNlbGVjdGVkSUQgICAgID0+ICREZWJ1Z2dlckRhdGEtPntEZWJ1Z1RocmVzaG9sZH0gfHwgJycsCiAgICAgICAgUG9zc2libGVOb25lICAgPT4gMCwKICAgICAgICBUcmFuc2xhdGUgICAgICA9PiAxLAogICAgICAgIENsYXNzICAgICAgICAgID0+ICdNb2Rlcm5pemUgSGlkZVRyaWdnZXInLAogICAgICAgIFNvcnQgICAgICAgICAgID0+ICdJbmRpdmlkdWFsS2V5JywKICAgICAgICBTb3J0SW5kaXZpZHVhbCA9PiBbICdkZWJ1ZycsICdpbmZvJywgJ25vdGljZScsICdlcnJvcicgXSwKCiAgICApOwoKICAgIG15ICVWYWxpZExpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRMaXN0KCk7CgogICAgIyBDcmVhdGUgdGhlIHZhbGlkaXR5IHNlbGVjdC4KICAgIG15ICRWYWxpZHR5U3RyZyA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVZhbGlkTGlzdCwKICAgICAgICBOYW1lICAgICAgICAgPT4gJ1ZhbGlkSUQnLAogICAgICAgIFNlbGVjdGVkSUQgICA9PiAkV2Vic2VydmljZURhdGEtPntWYWxpZElEfSB8fCAxLAogICAgICAgIFBvc3NpYmxlTm9uZSA9PiAwLAogICAgICAgIFRyYW5zbGF0ZSAgICA9PiAxLAogICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplIEhpZGVUcmlnZ2VyJywKICAgICk7CgogICAgIyBQcmV2ZW50IEhUTUwgdmFsaWRhdGlvbiB3YXJpbmcuCiAgICBpZiAoICEkUGFyYW17TmFtZVNlcnZlckVycm9yTWVzc2FnZX0gKSB7CiAgICAgICAgJFBhcmFte05hbWVTZXJ2ZXJFcnJvck1lc3NhZ2V9ID0gJy0nOwogICAgfQoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0RldGFpbHMnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICVHZW5lcmFsRGF0YSwKICAgICAgICAgICAgRGVidWdUaHJlc2hvbGRTdHJnID0+ICREZWJ1Z1RocmVzaG9sZFN0cmcsCiAgICAgICAgICAgIFZhbGlkdHlTdHJnICAgICAgICA9PiAkVmFsaWR0eVN0cmcsCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBTZXQgdHJhbnNwb3J0cyBkYXRhLgogICAgbXkgJUdJVHJhbnNwb3J0czsKICAgIG15ICRHSVRyYW5zcG9ydENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgnR2VuZXJpY0ludGVyZmFjZTo6VHJhbnNwb3J0OjpNb2R1bGUnKTsKICAgIFRSQU5TUE9SVDoKICAgIGZvciBteSAkVHJhbnNwb3J0ICggc29ydCBrZXlzICV7JEdJVHJhbnNwb3J0Q29uZmlnfSApIHsKICAgICAgICBuZXh0IFRSQU5TUE9SVCBpZiAhJFRyYW5zcG9ydDsKICAgICAgICAkR0lUcmFuc3BvcnRzeyRUcmFuc3BvcnR9ID0gJEdJVHJhbnNwb3J0Q29uZmlnLT57JFRyYW5zcG9ydH0tPntDb25maWdEaWFsb2d9OwogICAgfQoKICAgICMgR2V0IG9wZXJhdGlvbiBkYXRhLgogICAgbXkgJUdJT3BlcmF0aW9uczsKICAgIG15ICRHSU9wZXJhdGlvbkNvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgnR2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpNb2R1bGUnKTsKICAgIE9QRVJBVElPTjoKICAgIGZvciBteSAkT3BlcmF0aW9uICggc29ydCBrZXlzICV7JEdJT3BlcmF0aW9uQ29uZmlnfSApIHsKICAgICAgICBuZXh0IE9QRVJBVElPTiBpZiAhJE9wZXJhdGlvbjsKICAgICAgICAkR0lPcGVyYXRpb25zeyRPcGVyYXRpb259ID0gJEdJT3BlcmF0aW9uQ29uZmlnLT57JE9wZXJhdGlvbn0tPntDb25maWdEaWFsb2d9OwogICAgfQoKICAgICMgR2V0IGludm9rZXIgZGF0YS4KICAgIG15ICVHSUludm9rZXJzOwogICAgbXkgJEdJSW52b2tlckNvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgnR2VuZXJpY0ludGVyZmFjZTo6SW52b2tlcjo6TW9kdWxlJyk7CiAgICBJTlZPS0VSOgogICAgZm9yIG15ICRJbnZva2VyICggc29ydCBrZXlzICV7JEdJSW52b2tlckNvbmZpZ30gKSB7CiAgICAgICAgbmV4dCBJTlZPS0VSIGlmICEkSW52b2tlcjsKICAgICAgICAkR0lJbnZva2Vyc3skSW52b2tlcn0gPSAkR0lJbnZva2VyQ29uZmlnLT57JEludm9rZXJ9LT57Q29uZmlnRGlhbG9nfTsKICAgIH0KCiAgICAjIEdldCBlcnJvciBoYW5kbGluZyBtb2R1bGVzIGRhdGEgZm9yIHRoZSBjb25maWd1cmF0aW9uIGRpYWxvZy4KICAgIHsKICAgICAgICBteSAlR0lFcnJvckhhbmRsaW5nTW9kdWxlczsKICAgICAgICBteSAkR0lFcnJvckhhbmRsaW5nTW9kdWxlQ29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCdHZW5lcmljSW50ZXJmYWNlOjpFcnJvckhhbmRsaW5nOjpNb2R1bGUnKTsKICAgICAgICBFUlJPUkhBTkRMSU5HTU9EVUxFOgogICAgICAgIGZvciBteSAkRXJyb3JIYW5kbGluZ01vZHVsZSAoIHNvcnQga2V5cyAkR0lFcnJvckhhbmRsaW5nTW9kdWxlQ29uZmlnLT4lKiApIHsKICAgICAgICAgICAgbmV4dCBFUlJPUkhBTkRMSU5HTU9EVUxFIHVubGVzcyAkRXJyb3JIYW5kbGluZ01vZHVsZTsKCiAgICAgICAgICAgICRHSUVycm9ySGFuZGxpbmdNb2R1bGVzeyRFcnJvckhhbmRsaW5nTW9kdWxlfSA9ICRHSUVycm9ySGFuZGxpbmdNb2R1bGVDb25maWctPnskRXJyb3JIYW5kbGluZ01vZHVsZX0tPntDb25maWdEaWFsb2d9OwogICAgICAgIH0KCiAgICAgICAgIyByZWdpc3RlciB0aGUgcmVsZXZhbnQgZGF0YSBhcyBKUyBkYXRhCiAgICAgICAgJFNlbGYtPl9PdXRwdXRHSUNvbmZpZygKICAgICAgICAgICAgR0lUcmFuc3BvcnRzICAgICAgICAgICA9PiBcJUdJVHJhbnNwb3J0cywKICAgICAgICAgICAgR0lPcGVyYXRpb25zICAgICAgICAgICA9PiBcJUdJT3BlcmF0aW9ucywKICAgICAgICAgICAgR0lJbnZva2VycyAgICAgICAgICAgICA9PiBcJUdJSW52b2tlcnMsCiAgICAgICAgICAgIEdJRXJyb3JIYW5kbGluZ01vZHVsZXMgPT4gXCVHSUVycm9ySGFuZGxpbmdNb2R1bGVzLAogICAgICAgICk7CiAgICB9CgogICAgIyBNZXRhIGNvbmZpZ3VyYXRpb24gZm9yIG91dHB1dCBibG9ja3MuCiAgICBteSAlQ29tbVR5cGVDb25maWcgPSAoCiAgICAgICAgUHJvdmlkZXIgPT4gewogICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdPVE9CTyBhcyBwcm92aWRlcicpLAogICAgICAgICAgICBTZWxlY3RlZFRyYW5zcG9ydCAgICAgPT4gJFByb3ZpZGVyRGF0YS0+e1RyYW5zcG9ydH0tPntUeXBlfSwKICAgICAgICAgICAgQWN0aW9uVHlwZSAgICAgICAgICAgID0+ICdPcGVyYXRpb24nLAogICAgICAgICAgICBBY3Rpb25zVGl0bGUgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdPcGVyYXRpb25zJyksCiAgICAgICAgICAgIEFjdGlvbnNDb25maWcgICAgICAgICA9PiAkUHJvdmlkZXJEYXRhLT57T3BlcmF0aW9ufSwKICAgICAgICAgICAgQ29udHJvbGxlckRhdGEgICAgICAgID0+IFwlR0lPcGVyYXRpb25zLAogICAgICAgICAgICBFcnJvckhhbmRsaW5nICAgICAgICAgPT4gJEVycm9ySGFuZGxpbmdQcm92aWRlciwKICAgICAgICAgICAgRXJyb3JIYW5kbGluZ1ByaW9yaXR5ID0+ICRFcnJvckhhbmRsaW5nUHJpb3JpdHlQcm92aWRlciwKICAgICAgICB9LAogICAgICAgIFJlcXVlc3RlciA9PiB7CiAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ09UT0JPIGFzIHJlcXVlc3RlcicpLAogICAgICAgICAgICBTZWxlY3RlZFRyYW5zcG9ydCAgICAgPT4gJFJlcXVlc3RlckRhdGEtPntUcmFuc3BvcnR9LT57VHlwZX0sCiAgICAgICAgICAgIEFjdGlvblR5cGUgICAgICAgICAgICA9PiAnSW52b2tlcicsCiAgICAgICAgICAgIEFjdGlvbnNUaXRsZSAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ0ludm9rZXJzJyksCiAgICAgICAgICAgIEFjdGlvbnNDb25maWcgICAgICAgICA9PiAkUmVxdWVzdGVyRGF0YS0+e0ludm9rZXJ9LAogICAgICAgICAgICBDb250cm9sbGVyRGF0YSAgICAgICAgPT4gXCVHSUludm9rZXJzLAogICAgICAgICAgICBFcnJvckhhbmRsaW5nICAgICAgICAgPT4gJEVycm9ySGFuZGxpbmdSZXF1ZXN0ZXIsCiAgICAgICAgICAgIEVycm9ySGFuZGxpbmdQcmlvcml0eSA9PiAkRXJyb3JIYW5kbGluZ1ByaW9yaXR5UmVxdWVzdGVyLAogICAgICAgIH0sCgogICAgKTsKCiAgICBmb3IgbXkgJENvbW11bmljYXRpb25UeXBlIChxdyhQcm92aWRlciBSZXF1ZXN0ZXIpKSB7CgogICAgICAgIG15IEBUcmFuc3BvcnRMaXN0OwoKICAgICAgICBmb3IgbXkgJFRyYW5zcG9ydCAoIHNvcnQga2V5cyAlR0lUcmFuc3BvcnRzICkgewogICAgICAgICAgICBwdXNoIEBUcmFuc3BvcnRMaXN0LCAkVHJhbnNwb3J0OwogICAgICAgIH0KCiAgICAgICAgIyBDcmVhdGUgdGhlIGxpc3Qgb2YgdHJhbnNwb3J0cy4KICAgICAgICBteSAkVHJhbnNwb3J0c1N0cmcgPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICAgICA9PiBcQFRyYW5zcG9ydExpc3QsCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgPT4gJENvbW11bmljYXRpb25UeXBlIC4gJ1RyYW5zcG9ydExpc3QnLAogICAgICAgICAgICBTZWxlY3RlZFZhbHVlID0+ICRDb21tVHlwZUNvbmZpZ3skQ29tbXVuaWNhdGlvblR5cGV9LT57U2VsZWN0ZWRUcmFuc3BvcnR9LAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgID0+IDEsCiAgICAgICAgICAgIFNvcnQgICAgICAgICAgPT4gJ0FscGhhbnVtZXJpY1ZhbHVlJywKICAgICAgICAgICAgQ2xhc3MgICAgICAgICA9PiAnTW9kZXJuaXplIEhpZGVUcmlnZ2VyJywKICAgICAgICApOwoKICAgICAgICBteSAkRXJyb3JNb2R1bGVDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0dlbmVyaWNJbnRlcmZhY2U6OkVycm9ySGFuZGxpbmc6Ok1vZHVsZScpOwoKICAgICAgICBteSBARXJyb3JNb2R1bGVzOwoKICAgICAgICBFUlJPUk1PRFVMRUtFWToKICAgICAgICBmb3IgbXkgJEVycm9yTW9kdWxlS2V5ICggc29ydCBrZXlzICRFcnJvck1vZHVsZUNvbmZpZy0+JSogKSB7CgogICAgICAgICAgICBuZXh0IEVSUk9STU9EVUxFS0VZIHVubGVzcyAkRXJyb3JNb2R1bGVLZXk7CiAgICAgICAgICAgIG5leHQgRVJST1JNT0RVTEVLRVkgdW5sZXNzIElzSGFzaFJlZldpdGhEYXRhKCAkRXJyb3JNb2R1bGVDb25maWctPnskRXJyb3JNb2R1bGVLZXl9ICk7CiAgICAgICAgICAgIG5leHQgRVJST1JNT0RVTEVLRVkgdW5sZXNzIElzU3RyaW5nV2l0aERhdGEoICRFcnJvck1vZHVsZUNvbmZpZy0+eyRFcnJvck1vZHVsZUtleX0tPntOYW1lfSApOwogICAgICAgICAgICBuZXh0IEVSUk9STU9EVUxFS0VZIHVubGVzcyBJc1N0cmluZ1dpdGhEYXRhKCAkRXJyb3JNb2R1bGVDb25maWctPnskRXJyb3JNb2R1bGVLZXl9LT57Q29uZmlnRGlhbG9nfSApOwoKICAgICAgICAgICAgIyBDaGVjayBmb3IgYWN0aXZlIGNvbW11bmljYXRpb24gdHlwZSBmaWx0ZXIuCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgIElzU3RyaW5nV2l0aERhdGEoICRFcnJvck1vZHVsZUNvbmZpZy0+eyRFcnJvck1vZHVsZUtleX0tPntDb21tdW5pY2F0aW9uVHlwZUZpbHRlcn0gKQogICAgICAgICAgICAgICAgJiYgJEVycm9yTW9kdWxlQ29uZmlnLT57JEVycm9yTW9kdWxlS2V5fS0+e0NvbW11bmljYXRpb25UeXBlRmlsdGVyfSBuZSAkQ29tbXVuaWNhdGlvblR5cGUKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbmV4dCBFUlJPUk1PRFVMRUtFWTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcHVzaCBARXJyb3JNb2R1bGVzLCB7CiAgICAgICAgICAgICAgICBLZXkgICA9PiAkRXJyb3JNb2R1bGVLZXksCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkRXJyb3JNb2R1bGVDb25maWctPnskRXJyb3JNb2R1bGVLZXl9LT57TmFtZX0sCiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICAjIENyZWF0ZSB0aGUgbGlzdCBvZiBlcnJvciBoYW5kbGluZyBtb2R1bGVzLgogICAgICAgICRQYXJhbXtFcnJvckhhbmRsaW5nU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFxARXJyb3JNb2R1bGVzLAogICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJENvbW11bmljYXRpb25UeXBlIC4gJ0Vycm9ySGFuZGxpbmcnLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgU29ydCAgICAgICAgID0+ICdBbHBoYW51bWVyaWNWYWx1ZScsCiAgICAgICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplIENvbmZpZ3VyZUVycm9ySGFuZGxpbmcnLAogICAgICAgICk7CgogICAgICAgICMgR2V0IHRoZSBjb250cm9sbGVycyBjb25maWcgZm9yIFJlcXVlc3RlcnMgb3IgUHJvdmlkZXJzLgoKICAgICAgICBteSAlR0lDb250cm9sbGVycyA9ICV7ICRDb21tVHlwZUNvbmZpZ3skQ29tbXVuaWNhdGlvblR5cGV9LT57Q29udHJvbGxlckRhdGF9IH07CgogICAgICAgIG15IEBDb250cm9sbGVyTGlzdDsKCiAgICAgICAgZm9yIG15ICRBY3Rpb24gKCBzb3J0IGtleXMgJUdJQ29udHJvbGxlcnMgKSB7CiAgICAgICAgICAgIHB1c2ggQENvbnRyb2xsZXJMaXN0LCAkQWN0aW9uOwogICAgICAgIH0KCiAgICAgICAgIyBDcmVhdGUgdGhlIGxpc3Qgb2YgY29udHJvbGxlcnMuCiAgICAgICAgbXkgJENvbnRyb2xsZXJzU3RyZyA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXEBDb250cm9sbGVyTGlzdCwKICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICRDb21tVHlwZUNvbmZpZ3skQ29tbXVuaWNhdGlvblR5cGV9LT57QWN0aW9uVHlwZX0gLiAnTGlzdCcsCiAgICAgICAgICAgIFNvcnQgICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICk7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdEZXRhaWxzQ29tbXVuaWNhdGlvblR5cGUnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgIENvbW11bmljYXRpb25UeXBlID0+ICRDb21tdW5pY2F0aW9uVHlwZSwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgID0+ICRDb21tVHlwZUNvbmZpZ3skQ29tbXVuaWNhdGlvblR5cGV9LT57VGl0bGV9LAogICAgICAgICAgICAgICAgVHJhbnNwb3J0c1N0cmcgICAgPT4gJFRyYW5zcG9ydHNTdHJnLAogICAgICAgICAgICAgICAgQWN0aW9uVHlwZSAgICAgICAgPT4gJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntBY3Rpb25UeXBlfSwKICAgICAgICAgICAgICAgIENvbnRyb2xsZXJzU3RyZyAgID0+ICRDb250cm9sbGVyc1N0cmcsCiAgICAgICAgICAgICAgICBBY3Rpb25zVGl0bGUgICAgICA9PiAkQ29tbVR5cGVDb25maWd7JENvbW11bmljYXRpb25UeXBlfS0+e0FjdGlvbnNUaXRsZX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0RldGFpbHNDb21tdW5pY2F0aW9uVHlwZUV4cGxhbmF0aW9uJyAuICRDb21tdW5pY2F0aW9uVHlwZSwKICAgICAgICApOwoKICAgICAgICAjIENoZWNrIGlmIHNlbGVjdGVkIHRyYW5zcG9ydCBjYW4gYmUgY29uZmlndXJlZCBhbmQgc2hvdyB0aGUgImNvbmZpZ3VyZSBidXR0b24iLgogICAgICAgIGlmICgKICAgICAgICAgICAgJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntTZWxlY3RlZFRyYW5zcG9ydH0gJiYKICAgICAgICAgICAgJEdJVHJhbnNwb3J0c3sgJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntTZWxlY3RlZFRyYW5zcG9ydH0gfQogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdEZXRhaWxzVHJhbnNwb3J0UHJvcGVydGllc0J1dHRvbicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBDb21tdW5pY2F0aW9uVHlwZSA9PiAkQ29tbXVuaWNhdGlvblR5cGUsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0RldGFpbHNDb21tdW5pY2F0aW9uVHlwZUFjdGlvbnNFeHBsYW5hdGlvbicgLiAkQ29tbXVuaWNhdGlvblR5cGUsCiAgICAgICAgKTsKCiAgICAgICAgIyBGbGFnIHRvIGRpc3BsYXkgYSBtZXNzYWdlIGlmIGF0IGxlYXN0IG9uZSBjb250cm9sbGVyIHdhcyBub3QgZm91bmQuCiAgICAgICAgbXkgJE5vQ29udHJvbGxlckZvdW5kOwoKICAgICAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntBY3Rpb25zQ29uZmlnfSApICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0RldGFpbHNBY3Rpb25zTm9EYXRhRm91bmRNc2cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIE91dHB1dCBvcGVyYXRpb24gYW5kIGludm9rZXIgdGFibGVzLgogICAgICAgICAgICBmb3IgbXkgJEFjdGlvbk5hbWUgKAogICAgICAgICAgICAgICAgc29ydCBrZXlzICV7ICRDb21tVHlwZUNvbmZpZ3skQ29tbXVuaWNhdGlvblR5cGV9LT57QWN0aW9uc0NvbmZpZ30gfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgIyBHZXQgY29udHJvbCBpbmZvcm1hdGlvbi4KICAgICAgICAgICAgICAgIG15ICRBY3Rpb25EZXRhaWxzID0gJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntBY3Rpb25zQ29uZmlnfS0+eyRBY3Rpb25OYW1lfTsKCiAgICAgICAgICAgICAgICAjIENyZWF0ZSBvdXRwdXQgZGF0YS4KICAgICAgICAgICAgICAgIG15ICVBY3Rpb25EYXRhID0gKAogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICA9PiAkQWN0aW9uTmFtZSwKICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgICAgPT4gJEFjdGlvbkRldGFpbHMtPntEZXNjcmlwdGlvbn0gfHwgJy0nLAogICAgICAgICAgICAgICAgICAgIENvbnRyb2xsZXIgICAgICA9PiAkQWN0aW9uRGV0YWlscy0+e1R5cGV9LAogICAgICAgICAgICAgICAgICAgIE1hcHBpbmdJbmJvdW5kICA9PiAkQWN0aW9uRGV0YWlscy0+e01hcHBpbmdJbmJvdW5kfS0+e1R5cGV9ICB8fCAnLScsCiAgICAgICAgICAgICAgICAgICAgTWFwcGluZ091dGJvdW5kID0+ICRBY3Rpb25EZXRhaWxzLT57TWFwcGluZ091dGJvdW5kfS0+e1R5cGV9IHx8ICctJywKICAgICAgICAgICAgICAgICAgICBNb2R1bGUgICAgICAgICAgPT4gJEdJQ29udHJvbGxlcnN7ICRBY3Rpb25EZXRhaWxzLT57VHlwZX0gfSwKICAgICAgICAgICAgICAgICAgICBBY3Rpb25UeXBlICAgICAgPT4gJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntBY3Rpb25UeXBlfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgJENvbnRyb2xsZXJDbGFzcyA9ICcnOwogICAgICAgICAgICAgICAgaWYgKCAhJEdJQ29udHJvbGxlcnN7ICRBY3Rpb25EYXRhe0NvbnRyb2xsZXJ9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJE5vQ29udHJvbGxlckZvdW5kID0gMTsKICAgICAgICAgICAgICAgICAgICAkQ29udHJvbGxlckNsYXNzICAgPSAnRXJyb3InOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0RldGFpbHNBY3Rpb25zUm93JywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICAlQWN0aW9uRGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbGxlckNsYXNzID0+ICRDb250cm9sbGVyQ2xhc3MsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgaWYgKCAhJEdJQ29udHJvbGxlcnN7ICRBY3Rpb25EYXRhe0NvbnRyb2xsZXJ9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0RldGFpbHNBY3Rpb25zUm93RGVsZXRlJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAlQWN0aW9uRGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0RldGFpbHNBY3Rpb25zUm93TGluaycsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJUFjdGlvbkRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCROb0NvbnRyb2xsZXJGb3VuZCkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0RldGFpbHNBY3Rpb25zTm9Db250cm9sbGVyRm91bmRNc2cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgIEFjdGlvblR5cGUgPT4gbGMgJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntBY3Rpb25UeXBlfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIENoZWNrIGVycm9yIGhhbmRsaW5nIG1vZHVsZXMgYW5kIHByaW9yaXR5IGZvciBjb25zaXN0ZW5jeSwKICAgICAgICAjICAgY29ycmVjdCBwb3NzaWJsZSBpbmNvbnNpc3RlbmNpZXMgYW5kIHNhdmUgdGhlIHdlYiBzZXJ2aWNlLgogICAgICAgIG15ICRFcnJvckNvbmZpZ1VwZGF0ZWQgPSAwOwoKICAgICAgICBteSAkRXJyb3JIYW5kbGluZ01vZHVsZXNDaGVjayA9IGpvaW4gJycsCiAgICAgICAgICAgIHNvcnQgQHsgJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntFcnJvckhhbmRsaW5nUHJpb3JpdHl9IHx8IFtdIH07CgogICAgICAgIG15ICRFcnJvckhhbmRsaW5nUHJpb3JpdHlDaGVjayA9IGpvaW4gJycsCiAgICAgICAgICAgIHNvcnQga2V5cyAleyAkQ29tbVR5cGVDb25maWd7JENvbW11bmljYXRpb25UeXBlfS0+e0Vycm9ySGFuZGxpbmd9IHx8IHt9IH07CgogICAgICAgIGlmICggJEVycm9ySGFuZGxpbmdNb2R1bGVzQ2hlY2sgbmUgJEVycm9ySGFuZGxpbmdQcmlvcml0eUNoZWNrICkgewoKICAgICAgICAgICAgbXkgQENvcnJlY3RlZEVycm9ySGFuZGxpbmdNb2R1bGVzID0gc29ydCBrZXlzICV7ICRDb21tVHlwZUNvbmZpZ3skQ29tbXVuaWNhdGlvblR5cGV9LT57RXJyb3JIYW5kbGluZ30gfHwgW10gfTsKCiAgICAgICAgICAgICRDb21tVHlwZUNvbmZpZ3skQ29tbXVuaWNhdGlvblR5cGV9LT57RXJyb3JIYW5kbGluZ1ByaW9yaXR5fSA9IFxAQ29ycmVjdGVkRXJyb3JIYW5kbGluZ01vZHVsZXM7CgogICAgICAgICAgICAkRXJyb3JDb25maWdVcGRhdGVkID0gMTsKICAgICAgICB9CgogICAgICAgICMgQ2hlY2sgZm9yIHR5cGUgYW5kIHNldCBSZXF1ZXN0UmV0cnkgYXMgZGVmYXVsdC4KICAgICAgICBmb3IgbXkgJEN1cnJlbnRFcnJvckhhbmRsaW5nTW9kdWxlICggc29ydCBrZXlzICV7ICRDb21tVHlwZUNvbmZpZ3skQ29tbXVuaWNhdGlvblR5cGV9LT57RXJyb3JIYW5kbGluZ30gfHwge30gfSApCiAgICAgICAgewoKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgIWRlZmluZWQgJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntFcnJvckhhbmRsaW5nfS0+eyRDdXJyZW50RXJyb3JIYW5kbGluZ01vZHVsZX0tPntUeXBlfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkQ29tbVR5cGVDb25maWd7JENvbW11bmljYXRpb25UeXBlfS0+e0Vycm9ySGFuZGxpbmd9LT57JEN1cnJlbnRFcnJvckhhbmRsaW5nTW9kdWxlfS0+e1R5cGV9ID0gJ1JlcXVlc3RSZXRyeSc7CgogICAgICAgICAgICAgICAgJEVycm9yQ29uZmlnVXBkYXRlZCA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgVXBkYXRlIGNvbmZpZyBpZiBuZWVkZWQuCiAgICAgICAgaWYgKCRFcnJvckNvbmZpZ1VwZGF0ZWQpIHsKCiAgICAgICAgICAgICRXZWJzZXJ2aWNlRGF0YS0+e0NvbmZpZ30tPnskQ29tbXVuaWNhdGlvblR5cGV9LT57RXJyb3JIYW5kbGluZ30gICAgICAgICA9ICRDb21tVHlwZUNvbmZpZ3skQ29tbXVuaWNhdGlvblR5cGV9LT57RXJyb3JIYW5kbGluZ307CiAgICAgICAgICAgICRXZWJzZXJ2aWNlRGF0YS0+e0NvbmZpZ30tPnskQ29tbXVuaWNhdGlvblR5cGV9LT57RXJyb3JIYW5kbGluZ1ByaW9yaXR5fSA9ICRDb21tVHlwZUNvbmZpZ3skQ29tbXVuaWNhdGlvblR5cGV9LT57RXJyb3JIYW5kbGluZ1ByaW9yaXR5fTsKCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmljSW50ZXJmYWNlOjpXZWJzZXJ2aWNlJyktPldlYnNlcnZpY2VVcGRhdGUoCiAgICAgICAgICAgICAgICAleyRXZWJzZXJ2aWNlRGF0YX0sCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBObyBlcnJvciBoYW5kbGluZyBtb2R1bGVzIGRlZmluZWQuCiAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoICRDb21tVHlwZUNvbmZpZ3skQ29tbXVuaWNhdGlvblR5cGV9LT57RXJyb3JIYW5kbGluZ30gKSApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdFcnJvckhhbmRsaW5nUm93Tm9EYXRhRm91bmRNc2cnLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBMaXN0IGF2YWlsYWJsZSBlcnJvciBoYW5kbGluZyBtb2R1bGVzLgogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgRVJST1JIQU5ETElOR01PRFVMRToKICAgICAgICAgICAgZm9yIG15ICRFcnJvckhhbmRsaW5nTW9kdWxlICggQHsgJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntFcnJvckhhbmRsaW5nUHJpb3JpdHl9IHx8IFtdIH0gKSB7CgogICAgICAgICAgICAgICAgbmV4dCBFUlJPUkhBTkRMSU5HTU9EVUxFIGlmICEkRXJyb3JIYW5kbGluZ01vZHVsZTsKICAgICAgICAgICAgICAgIG5leHQgRVJST1JIQU5ETElOR01PRFVMRQogICAgICAgICAgICAgICAgICAgIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntFcnJvckhhbmRsaW5nfS0+eyRFcnJvckhhbmRsaW5nTW9kdWxlfQogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbmV4dCBFUlJPUkhBTkRMSU5HTU9EVUxFCiAgICAgICAgICAgICAgICAgICAgaWYgISRDb21tVHlwZUNvbmZpZ3skQ29tbXVuaWNhdGlvblR5cGV9LT57RXJyb3JIYW5kbGluZ30tPnskRXJyb3JIYW5kbGluZ01vZHVsZX0tPntUeXBlfTsKCiAgICAgICAgICAgICAgICBteSAkRXJyb3JNb2R1bGVBY3Rpb24gPSAkRXJyb3JNb2R1bGVDb25maWctPnsKICAgICAgICAgICAgICAgICAgICAkQ29tbVR5cGVDb25maWd7JENvbW11bmljYXRpb25UeXBlfS0+e0Vycm9ySGFuZGxpbmd9CiAgICAgICAgICAgICAgICAgICAgICAgIC0+eyRFcnJvckhhbmRsaW5nTW9kdWxlfS0+e1R5cGV9CiAgICAgICAgICAgICAgICB9LT57Q29uZmlnRGlhbG9nfTsKCiAgICAgICAgICAgICAgICBuZXh0IEVSUk9SSEFORExJTkdNT0RVTEUgaWYgISRFcnJvck1vZHVsZUFjdGlvbjsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdFcnJvckhhbmRsaW5nUm93JywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3JIYW5kbGluZyA9PiAkRXJyb3JIYW5kbGluZ01vZHVsZSwKICAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntFcnJvckhhbmRsaW5nfS0+eyRFcnJvckhhbmRsaW5nTW9kdWxlfS0+e0Rlc2NyaXB0aW9ufSwKICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3JIYW5kbGluZ1R5cGUgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDb21tVHlwZUNvbmZpZ3skQ29tbXVuaWNhdGlvblR5cGV9LT57RXJyb3JIYW5kbGluZ30tPnskRXJyb3JIYW5kbGluZ01vZHVsZX0tPntUeXBlfSwKICAgICAgICAgICAgICAgICAgICAgICAgRGlhbG9nICAgICAgICAgICAgPT4gJEVycm9yTW9kdWxlQWN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICBDb21tdW5pY2F0aW9uVHlwZSA9PiAkQ29tbXVuaWNhdGlvblR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgIFdlYnNlcnZpY2VJRCAgICAgID0+ICRQYXJhbXtXZWJzZXJ2aWNlSUR9LAoKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5HZW5lcmljSW50ZXJmYWNlV2Vic2VydmljZScsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICApOwoKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCnN1YiBfT3V0cHV0R0lDb25maWcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgU2VuZCBkYXRhIHRvIEpTLgogICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgIEtleSAgID0+ICdXZWJzZXJ2aWNlJywKICAgICAgICBWYWx1ZSA9PiB7CiAgICAgICAgICAgIFRyYW5zcG9ydCAgICAgPT4gJFBhcmFte0dJVHJhbnNwb3J0c30sCiAgICAgICAgICAgIE9wZXJhdGlvbiAgICAgPT4gJFBhcmFte0dJT3BlcmF0aW9uc30sCiAgICAgICAgICAgIEludm9rZXIgICAgICAgPT4gJFBhcmFte0dJSW52b2tlcnN9LAogICAgICAgICAgICBFcnJvckhhbmRsaW5nID0+ICRQYXJhbXtHSUVycm9ySGFuZGxpbmdNb2R1bGVzfSwKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKc3ViIF9HZXRQYXJhbXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkR2V0UGFyYW07CiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgIyBHZXQgcGFyYW1ldGVycyBmcm9tIHdlYiBicm93c2VyLgogICAgZm9yIG15ICRQYXJhbU5hbWUgKAogICAgICAgIHF3KCBOYW1lIERlc2NyaXB0aW9uIFJlbW90ZVN5c3RlbSBEZWJ1Z1RocmVzaG9sZCBWYWxpZElEICkKICAgICAgICApCiAgICB7CiAgICAgICAgJEdldFBhcmFtLT57JFBhcmFtTmFtZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1OYW1lICkgfHwgJyc7CiAgICB9CgogICAgJEdldFBhcmFtLT57UHJvdmlkZXJUcmFuc3BvcnR9ID0KICAgICAgICAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnUHJvdmlkZXJUcmFuc3BvcnRMaXN0JyApIHx8ICcnOwoKICAgICRHZXRQYXJhbS0+e1JlcXVlc3RlclRyYW5zcG9ydH0gPQogICAgICAgICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdSZXF1ZXN0ZXJUcmFuc3BvcnRMaXN0JyApIHx8ICcnOwoKICAgIHJldHVybiAkR2V0UGFyYW07Cn0KCnN1YiBfVXBkYXRlQ29uZmlndXJhdGlvbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRDb25maWd1cmF0aW9uID0gJFBhcmFte0NvbmZpZ3VyYXRpb259OwoKICAgICMgVGhpcyBmdW5jdGlvbiBuZWVkcyB0byBiZSBleHRlbmRlZCBmb3IgZnVydGhlciBvdG9ibyB2ZXJzaW9ucwogICAgIyAgIGl0IGNvdWxkIGJlIHRoYXQgbmV3ZXIgb3RvYm8gdmVyc2lvbnMgaGFzIGRpZmZlcmVudCBjb25maWd1cmF0aW9uIG9wdGlvbnMKICAgICMgICBtaWdyYXRpb24gZnJvbSBwcmV2aW91cyB2ZXJzaW9uIHNob3VsZCBiZSBhdXRvbWF0aWMgYW5kIG5lZWRzIHRvIGJlIGRvbmUgaGVyZQogICAgcmV0dXJuICRDb25maWd1cmF0aW9uOwp9CgpzdWIgX0RlbGV0ZUFjdGlvbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRXZWJzZXJ2aWNlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyaWNJbnRlcmZhY2U6OldlYnNlcnZpY2UnKTsKCiAgICAjIEdldCB3ZWIgc2VydmljZSBjb25maWd1cmF0aW9uLgogICAgbXkgJFdlYnNlcnZpY2VEYXRhID0gJFdlYnNlcnZpY2VPYmplY3QtPldlYnNlcnZpY2VHZXQoCiAgICAgICAgSUQgPT4gJFBhcmFte1dlYnNlcnZpY2VJRH0sCiAgICApOwoKICAgICMgR2V0IG5lZWRlZCBwYXJhbXMuCiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CiAgICBteSAkQWN0aW9uVHlwZSAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQWN0aW9uVHlwZScgKTsKICAgIG15ICRBY3Rpb25OYW1lICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdBY3Rpb25OYW1lJyApOwoKICAgICMgU2V0IHRoZSBjb21tdW5pY2F0aW9uIHR5cGUgdG8gUHJvdmlkZXIgb3IgUmVxdWVzdGVyLgogICAgbXkgJENvbW11bmljYXRpb25UeXBlID0gJEFjdGlvblR5cGUgZXEgJ09wZXJhdGlvbicgPyAnUHJvdmlkZXInIDogJ1JlcXVlc3Rlcic7CgogICAgcmV0dXJuIGlmICEkV2Vic2VydmljZURhdGEtPntDb25maWd9LT57JENvbW11bmljYXRpb25UeXBlfS0+eyRBY3Rpb25UeXBlfTsKCiAgICAjIEdldCB0aGUgY29uZmlndXJhdGlvbiBjb25maWcgZm9yIHRoZSBjb21tdW5pY2F0aW9uIHR5cGUgKGFsbCBvcGVyYXRpb25zIG9yIGFsbCBpbnZva2VycykuCiAgICBteSAlQWN0aW9uVHlwZUNvbmZpZyA9ICV7ICRXZWJzZXJ2aWNlRGF0YS0+e0NvbmZpZ30tPnskQ29tbXVuaWNhdGlvblR5cGV9LT57JEFjdGlvblR5cGV9IH07CgogICAgbXkgJFN1Y2Nlc3M7CgogICAgIyBEZWxldGUgY29tbXVuaWNhdGlvbiB0eXBlLgogICAgaWYgKCAkQWN0aW9uVHlwZUNvbmZpZ3skQWN0aW9uTmFtZX0gKSB7CiAgICAgICAgZGVsZXRlICRBY3Rpb25UeXBlQ29uZmlneyRBY3Rpb25OYW1lfTsKCiAgICAgICAgIyBVcGRhdGUgd2ViIHNlcnZpY2UgY29uZmlndXJhdGlvbi4KICAgICAgICBteSAlQ29uZmlnID0gJXsgJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfSB9OwogICAgICAgICRDb25maWd7JENvbW11bmljYXRpb25UeXBlfS0+eyRBY3Rpb25UeXBlfSA9IFwlQWN0aW9uVHlwZUNvbmZpZzsKCiAgICAgICAgIyBVcGRhdGUgd2ViIHNlcnZpY2UuCiAgICAgICAgJFN1Y2Nlc3MgPSAkV2Vic2VydmljZU9iamVjdC0+V2Vic2VydmljZVVwZGF0ZSgKICAgICAgICAgICAgJXskV2Vic2VydmljZURhdGF9LAogICAgICAgICAgICBDb25maWcgPT4gXCVDb25maWcsCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBCdWlsZCBKU09OIG91dHB1dC4KICAgIG15ICRKU09OID0gJExheW91dE9iamVjdC0+SlNPTkVuY29kZSgKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAkU3VjY2VzcywKICAgICAgICB9LAogICAgKTsKCiAgICAjIFNlbmQgSlNPTiByZXNwb25zZS4KICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgIENvbnRlbnRUeXBlID0+ICdhcHBsaWNhdGlvbi9qc29uJywKICAgICAgICBDb250ZW50ICAgICA9PiAkSlNPTiwKICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgKTsKfQoKMTsK</File>
        <File Location="Custom/Kernel/Output/HTML/Templates/Standard/AdminGenericInterfaceWebservice.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbkdlbmVyaWNJbnRlcmZhY2VXZWJzZXJ2aWNlLnR0CiMgLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgojIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKIyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwojIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiMgLS0KClslIFJlbmRlckJsb2NrU3RhcnQoIk1haW4iKSAlXQo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJXZWIgU2VydmljZSBNYW5hZ2VtZW50IikgfCBodG1sICVdPC9oMT4KCiAgICBbJSBCcmVhZGNydW1iUGF0aCA9IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSA9PiBUcmFuc2xhdGUoJ1dlYiBTZXJ2aWNlIE1hbmFnZW1lbnQnKSwKICAgICAgICAgICAgICAgIExpbmsgPT4gRW52KCJBY3Rpb24iKSwKICAgICAgICAgICAgfSwKICAgICAgICBdCiAgICAlXQoKICAgIFslIFNXSVRDSCBEYXRhLkFjdGlvbiAlXQogICAgICAgIFslIENBU0UgJ0FkZCcgJV0KICAgICAgICAgICAgWyUgQnJlYWRjcnVtYlBhdGgucHVzaCh7IE5hbWUgPT4gVHJhbnNsYXRlKCJBZGQgV2ViIFNlcnZpY2UiKSx9KSAlXQogICAgICAgIFslIENBU0UgJ0NoYW5nZScgJV0KICAgICAgICAgICAgWyUgVVNFIEVkaXRUaXRsZSA9IFN0cmluZyhUcmFuc2xhdGUoIkVkaXQgV2ViIFNlcnZpY2UiKSkgJV0KICAgICAgICAgICAgWyUgQnJlYWRjcnVtYlBhdGgucHVzaCh7IE5hbWUgPT4gRWRpdFRpdGxlLmFwcGVuZCggJzogJywgRGF0YS5XZWJzZXJ2aWNlRGF0YS5OYW1lICksIH0pICVdCiAgICBbJSBFTkQgJV0KCiAgICBbJSBJTkNMVURFICJCcmVhZGNydW1iLnR0IiBQYXRoID0gQnJlYWRjcnVtYlBhdGggJV0KCiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiSW5jbHVkZUludmFsaWQiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJGaWx0ZXIgYnkgdmFsaWQgc3RhdGUiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJJbmNsdWRlSW52YWxpZCIgbmFtZT0iSW5jbHVkZUludmFsaWQiIHZhbHVlPSIxIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJJbmNsdWRlIGludmFsaWQgd2Vic2VydmljZXMiKSB8IGh0bWwgJV0iIFslIERhdGEuSW5jbHVkZUludmFsaWRDaGVja2VkIHwgaHRtbCAlXS8+CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJJbmNsdWRlSW52YWxpZCI+WyUgVHJhbnNsYXRlKCJJbmNsdWRlIGludmFsaWQgd2Vic2VydmljZXMiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkluY2x1ZGVJbnZhbGlkIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uTGlzdCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25PdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtOYXY9WyUgRGF0YS5OYXYgfCB1cmkgJV0iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIG92ZXJ2aWV3IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uT3ZlcnZpZXciKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25BZGQiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iQWRkIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJOYXYiIHZhbHVlPSJbJSBEYXRhLk5hdiB8IGh0bWwgJV0iLz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciIgdHlwZT0ic3VibWl0Ij48c3Bhbj48aSBjbGFzcz0iZmEgZmEtcGx1cy1zcXVhcmUiPjwvaT5bJSBUcmFuc2xhdGUoIkFkZCBXZWIgU2VydmljZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25BZGQiKSAlXQojIFJvdGhlciBPU1MgLyB3ZWJzZXJ2aWNlLW9wZW5hcGkKWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uU3dhZ2dlciIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJTd2FnZ2VyIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJOYXYiIHZhbHVlPSJbJSBEYXRhLk5hdiB8IGh0bWwgJV0iLz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciIgdHlwZT0ic3VibWl0Ij48c3Bhbj48aSBjbGFzcz0iZmEgZmEtcGx1cy1zcXVhcmUiPjwvaT5bJSBUcmFuc2xhdGUoIk9wZW4gU3dhZ2dlciBVSSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25Td2FnZ2VyIikgJV0KIyBFTyB3ZWJzZXJ2aWNlLW9wZW5hcGkKWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uQ2xvbmUiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iQ2xvbmVCdXR0b24iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciBIaWRlQWN0aW9uT25DaGFuZ2UiIHR5cGU9InN1Ym1pdCI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNvcHkiPjwvaT4gWyUgVHJhbnNsYXRlKCJDbG9uZSBXZWIgU2VydmljZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGlkZGVuIiBpZD0iQ2xvbmVEaWFsb2dDb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQ2xvbmVEaWFsb2ciIGNsYXNzPSJJbm5lckNvbnRlbnQgR2VuZXJpY0ludGVyZmFjZURpYWxvZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gaWQ9IkNsb25lRm9ybSIgYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9IkNsb25lRm9ybSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkNsb25lIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IldlYnNlcnZpY2VJRCIgdmFsdWU9IlslIERhdGEuV2Vic2VydmljZUlEIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTcGFjaW5nVG9wIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IkNsb25lTmFtZSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj5bJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IkNsb25lTmFtZSIgY2xhc3M9IkNsb25lTmFtZSBXNzVwYyBWYWxpZGF0ZV9SZXF1aXJlZCIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyNTAiIHZhbHVlPSIiIG5hbWU9IkNsb25lTmFtZSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNsb25lTmFtZUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj5bJSBUcmFuc2xhdGUoIlRoZSBuYW1lIG11c3QgYmUgdW5pcXVlLiIpIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Rm9vdGVyIENlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiB0eXBlPSJidXR0b24iIGlkPSJDbG9uZUJ1dHRvbkFjdGlvbiIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiQ2xvbmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiQ2xvbmUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiIgdHlwZT0iYnV0dG9uIiBpZD0iQ2FuY2VsQ2xvbmVCdXR0b25BY3Rpb24iIHZhbHVlPSJbJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXSI+PHNwYW4+WyUgVHJhbnNsYXRlKCJDYW5jZWwiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkNsb25lIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uRXhwb3J0IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkV4cG9ydCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iV2Vic2VydmljZUlEIiB2YWx1ZT0iWyUgRGF0YS5XZWJzZXJ2aWNlSUQgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJOYXYiIHZhbHVlPSJbJSBEYXRhLk5hdiB8IGh0bWwgJV0iLz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciBIaWRlQWN0aW9uT25DaGFuZ2UiIHR5cGU9InN1Ym1pdCI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWRvd25sb2FkIj48L2k+IFslIFRyYW5zbGF0ZSgiRXhwb3J0IFdlYiBTZXJ2aWNlIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkV4cG9ydCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkltcG9ydCIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJJbXBvcnRCdXR0b24iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciIgdHlwZT0iYnV0dG9uIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtdXBsb2FkIj48L2k+IFslIFRyYW5zbGF0ZSgiSW1wb3J0IHdlYiBzZXJ2aWNlIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIaWRkZW4iIGlkPSJJbXBvcnREaWFsb2dDb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iSW1wb3J0RGlhbG9nIiBjbGFzcz0iSW5uZXJDb250ZW50IEdlbmVyaWNJbnRlcmZhY2VEaWFsb2ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGlkPSJJbXBvcnRGb3JtIiBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbmFtZT0iSW1wb3J0Rm9ybSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkltcG9ydCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTcGFjaW5nVG9wIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IkNvbmZpZ0ZpbGUiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJDb25maWd1cmF0aW9uIEZpbGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IkNvbmZpZ0ZpbGUiIGNsYXNzPSJWYWxpZGF0ZV9SZXF1aXJlZCIgdHlwZT0iZmlsZSIgbWF4bGVuZ3RoPSIyNTAiIHZhbHVlPSIiIG5hbWU9IkNvbmZpZ0ZpbGUiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJDb25maWdGaWxlRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPlslIFRyYW5zbGF0ZSgiVGhlIGZpbGUgbXVzdCBiZSBhIHZhbGlkIHdlYiBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24gWUFNTCBmaWxlLiIpIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iV2Vic2VydmljZU5hbWUiPlslIFRyYW5zbGF0ZSgiTmFtZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iV2Vic2VydmljZU5hbWUiIGNsYXNzPSJXMTAwcGMiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMjUwIiB2YWx1ZT0iIiBuYW1lPSJXZWJzZXJ2aWNlTmFtZSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj5bJSBUcmFuc2xhdGUoIkhlcmUgeW91IGNhbiBzcGVjaWZ5IGEgbmFtZSBmb3IgdGhlIHdlYnNlcnZpY2UuIElmIHRoaXMgZmllbGQgaXMgZW1wdHksIHRoZSBuYW1lIG9mIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgaXMgdXNlZCBhcyBuYW1lLiIpIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Rm9vdGVyIENlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiB0eXBlPSJzdWJtaXQiIGlkPSJJbXBvcnRCdXR0b25BY3Rpb24iIHZhbHVlPSJbJSBUcmFuc2xhdGUoIkltcG9ydCIpIHwgaHRtbCAlXSI+PHNwYW4+WyUgVHJhbnNsYXRlKCJJbXBvcnQiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiIgdHlwZT0iYnV0dG9uIiBpZD0iQ2FuY2VsSW1wb3J0QnV0dG9uQWN0aW9uIiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJDYW5jZWwiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25JbXBvcnQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25IaXN0b3J5IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IkFkbWluR2VuZXJpY0ludGVyZmFjZVdlYnNlcnZpY2VIaXN0b3J5Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJXZWJzZXJ2aWNlSUQiIHZhbHVlPSJbJSBEYXRhLldlYnNlcnZpY2VJRCB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik5hdiIgdmFsdWU9IlslIERhdGEuTmF2IHwgaHRtbCAlXSIvPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIEhpZGVBY3Rpb25PbkNoYW5nZSIgdHlwZT0ic3VibWl0Ij48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2xvY2stbyI+PC9pPiBbJSBUcmFuc2xhdGUoIkNvbmZpZ3VyYXRpb24gSGlzdG9yeSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25IaXN0b3J5IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uRGVsZXRlIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9IkRlbGV0ZUJ1dHRvbiIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIiB0eXBlPSJidXR0b24iPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS10cmFzaC1vIj48L2k+IFslIFRyYW5zbGF0ZSgiRGVsZXRlIHdlYiBzZXJ2aWNlIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIaWRkZW4iIGlkPSJEZWxldGVEaWFsb2dDb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZCA9IkRlbGV0ZURpYWxvZyIgY2xhc3M9IklubmVyQ29udGVudCBHZW5lcmljSW50ZXJmYWNlRGlhbG9nIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iV2FybmluZ0RpYWxvZyAiPiZuYnNwOzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iQ2VudGVyIFdhcm5pbmciPlslIFRyYW5zbGF0ZSgiRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIHdlYiBzZXJ2aWNlPyIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTcGFjaW5nVG9wIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uRGVsZXRlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uRGVidWdnZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iQWRtaW5HZW5lcmljSW50ZXJmYWNlRGVidWdnZXIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IldlYnNlcnZpY2VJRCIgdmFsdWU9IlslIERhdGEuV2Vic2VydmljZUlEIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iTmF2IiB2YWx1ZT0iWyUgRGF0YS5OYXYgfCBodG1sICVdIi8+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIgSGlkZUFjdGlvbk9uQ2hhbmdlIiB0eXBlPSJzdWJtaXQiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1idWciPjwvaT4gWyUgVHJhbnNsYXRlKCJEZWJ1Z2dlciIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25EZWJ1Z2dlciIpICVdCiAgICAgICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25MaXN0IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRXhhbXBsZVdlYlNlcnZpY2VzIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiIGlkPSJFeGFtcGxlV2ViU2VydmljZXMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiUmVhZHkyQWRvcHQgV2ViIFNlcnZpY2VzIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiSGVyZSB5b3UgY2FuIGFjdGl2YXRlIFJlYWR5MkFkb3B0IHdlYiBzZXJ2aWNlcyBzaG93Y2FzaW5nIG91ciBiZXN0IHByYWN0aWNlcy4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJJbXBvcnQiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuRXhhbXBsZVdlYlNlcnZpY2VMaXN0ICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJFeGFtcGxlV2ViU2VydmljZUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkV4YW1wbGVXZWJTZXJ2aWNlU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIFNwYWNpbmdUb3AiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiSW1wb3J0IFJlYWR5MkFkb3B0IHdlYiBzZXJ2aWNlIikgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz0iZmEgZmEtdXBsb2FkIj48L2k+WyUgVHJhbnNsYXRlKCJJbXBvcnQgUmVhZHkyQWRvcHQgd2ViIHNlcnZpY2UiKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkV4YW1wbGVXZWJTZXJ2aWNlcyIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkhpbnQiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJIaW50IikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQWZ0ZXIgeW91IHNhdmUgdGhlIGNvbmZpZ3VyYXRpb24geW91IHdpbGwgYmUgcmVkaXJlY3RlZCBhZ2FpbiB0byB0aGUgZWRpdCBzY3JlZW4uIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJJZiB5b3Ugd2FudCB0byByZXR1cm4gdG8gb3ZlcnZpZXcgcGxlYXNlIGNsaWNrIHRoZSBcIkdvIHRvIG92ZXJ2aWV3XCIgYnV0dG9uLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkhpbnQiKSAlXQogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdIZWFkZXIiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJMaXN0IikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld0hlYWRlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0IikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCAiPgogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiIGlkPSJXZWJzZXJ2aWNlVGFibGUiIHN1bW1hcnk9Ikxpc3Qgb2YgYWxsIHJlZ2lzdGVyZWQgV2Vic2VydmljZXMiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiTmFtZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJEZXNjcmlwdGlvbiIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJSZW1vdGUgc3lzdGVtIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlByb3ZpZGVyIHRyYW5zcG9ydCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJSZXF1ZXN0ZXIgdHJhbnNwb3J0IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlZhbGlkaXR5IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9EYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vRGF0YUZvdW5kTXNnIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0Um93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIFslIElGIERhdGEuVmFsaWQgIT0gInZhbGlkIiVdY2xhc3M9IkludmFsaWQiWyUgRU5EICVdPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBc0Jsb2NrIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249Q2hhbmdlO1dlYnNlcnZpY2VJRD1bJSBEYXRhLklEIHwgdXJpICVdO05hdj1bJSBEYXRhLk5hdiB8IHVyaSAlXSI+WyUgRGF0YS5OYW1lIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKERhdGEuRGVzY3JpcHRpb24pIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKERhdGEuUmVtb3RlU3lzdGVtKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZShEYXRhLlByb3ZpZGVyVHJhbnNwb3J0KSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZShEYXRhLlJlcXVlc3RlclRyYW5zcG9ydCkgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBUcmFuc2xhdGUoRGF0YS5WYWxpZCkgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0Um93IikgJV0KCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEZXRhaWxzIikgJV0KICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXUFjdGlvbiIvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJXZWJzZXJ2aWNlSUQiIHZhbHVlPSJbJSBEYXRhLldlYnNlcnZpY2VJRCB8IGh0bWwgJV0iIGlkPSJXZWJzZXJ2aWNlSUQiLz4KICAgICAgICAgICAgWyUgSUYgRGF0YS5BY3Rpb24gPT0gJ0NoYW5nZScgJV0KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNvbnRpbnVlQWZ0ZXJTYXZlIiBpZD0iQ29udGludWVBZnRlclNhdmUiIHZhbHVlPSIiLz4KICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkdlbmVyYWwiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJMYXlvdXRHcmlkIENvbHVtbnNXaXRoU3BhY2luZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNpemUxb2YyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJOYW1lIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iTmFtZSIgY2xhc3M9Ilc1MHBjIFslIERhdGEuTmFtZVNlcnZlckVycm9yIHwgaHRtbCAlXSBWYWxpZGF0ZV9SZXF1aXJlZCBIaWRlVHJpZ2dlciIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyNTAiIHZhbHVlPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBuYW1lPSJOYW1lIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik5hbWVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik5hbWVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLk5hbWVTZXJ2ZXJFcnJvck1lc3NhZ2UpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkRlc2NyaXB0aW9uIj5bJSBUcmFuc2xhdGUoIkRlc2NyaXB0aW9uIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IkRlc2NyaXB0aW9uIiBjbGFzcz0iVzUwcGMgSGlkZVRyaWdnZXIiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMjUwIiB2YWx1ZT0iWyUgRGF0YS5EZXNjcmlwdGlvbiB8IGh0bWwgJV0iIG5hbWU9IkRlc2NyaXB0aW9uIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJSZW1vdGVTeXN0ZW0iPlslIFRyYW5zbGF0ZSgiUmVtb3RlIHN5c3RlbSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJSZW1vdGVTeXN0ZW0iIGNsYXNzPSJXNTBwYyBIaWRlVHJpZ2dlciIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyNTAiIHZhbHVlPSJbJSBEYXRhLlJlbW90ZVN5c3RlbSB8IGh0bWwgJV0iIG5hbWU9IlJlbW90ZVN5c3RlbSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTaXplMW9mMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iRGVidWdUaHJlc2hvbGQiPlslIFRyYW5zbGF0ZSgiRGVidWcgdGhyZXNob2xkIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkRlYnVnVGhyZXNob2xkU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVmFsaWRJRCI+WyUgVHJhbnNsYXRlKCJWYWxpZGl0eSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5WYWxpZHR5U3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEZXRhaWxzQ29tbXVuaWNhdGlvblR5cGUiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgRXhwYW5kZWQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRBY3Rpb24gVG9nZ2xlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU2hvdyBvciBoaWRlIHRoZSBjb250ZW50IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8aDM+WyUgVHJhbnNsYXRlKERhdGEuVGl0bGUpIHwgaHRtbCAlXTwvaDM+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEZXRhaWxzQ29tbXVuaWNhdGlvblR5cGVFeHBsYW5hdGlvblByb3ZpZGVyIikgJV0KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJJbiBwcm92aWRlciBtb2RlLCBPVE9CTyBvZmZlcnMgd2ViIHNlcnZpY2VzIHdoaWNoIGFyZSB1c2VkIGJ5IHJlbW90ZSBzeXN0ZW1zLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkRldGFpbHNDb21tdW5pY2F0aW9uVHlwZUV4cGxhbmF0aW9uUHJvdmlkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEZXRhaWxzQ29tbXVuaWNhdGlvblR5cGVFeHBsYW5hdGlvblJlcXVlc3RlciIpICVdCiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiSW4gcmVxdWVzdGVyIG1vZGUsIE9UT0JPIHVzZXMgd2ViIHNlcnZpY2VzIG9mIHJlbW90ZSBzeXN0ZW1zLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkRldGFpbHNDb21tdW5pY2F0aW9uVHlwZUV4cGxhbmF0aW9uUmVxdWVzdGVyIikgJV0KICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9IlNwYWNpbmdUb3AgU3BhY2luZ0JvdHRvbSI+WyUgVHJhbnNsYXRlKCJTZXR0aW5ncyIpIHwgaHRtbCAlXTwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJbJSBEYXRhLkNvbW11bmljYXRpb25UeXBlIHwgaHRtbCAlXVRyYW5zcG9ydExpc3QiPlslIFRyYW5zbGF0ZSgiTmV0d29yayB0cmFuc3BvcnQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlRyYW5zcG9ydHNTdHJnICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkRldGFpbHNUcmFuc3BvcnRQcm9wZXJ0aWVzQnV0dG9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iWyUgRGF0YS5Db21tdW5pY2F0aW9uVHlwZSB8IGh0bWwgJV1UcmFuc3BvcnRQcm9wZXJ0aWVzIiBjbGFzcz0iSGlkZU9uQ2hhbmdlIENhbGxGb3JBY3Rpb24gSW5saW5lIiB2YWx1ZT0iQ29uZmlndXJlIj48c3Bhbj5bJSBUcmFuc2xhdGUoIkNvbmZpZ3VyZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KWyUgUmVuZGVyQmxvY2tFbmQoIkRldGFpbHNUcmFuc3BvcnRQcm9wZXJ0aWVzQnV0dG9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KCiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPSJTcGFjaW5nVG9wIFNwYWNpbmdCb3R0b20iPlslIFRyYW5zbGF0ZSgiRXJyb3IgSGFuZGxpbmcgTW9kdWxlcyIpIHwgaHRtbCAlXTwvaDQ+CgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkVycm9yIGhhbmRsaW5nIG1vZHVsZXMgYXJlIHVzZWQgdG8gcmVhY3QgaW4gY2FzZSBvZiBlcnJvcnMgZHVyaW5nIHRoZSBjb21tdW5pY2F0aW9uLiBUaG9zZSBtb2R1bGVzIGFyZSBleGVjdXRlZCBpbiBhIHNwZWNpZmljIG9yZGVyLCB3aGljaCBjYW4gYmUgY2hhbmdlZCBieSBkcmFnIGFuZCBkcm9wLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUgRXJyb3JIYW5kbGluZ1ByaW9yaXR5IiBpZD0iWyUgRGF0YS5BY3Rpb25zVGl0bGUgfCBodG1sICVdVGFibGUiIGRhdGEtcXVlcnktc3RyaW5nPSJBY3Rpb249QWRtaW5HZW5lcmljSW50ZXJmYWNlRXJyb3JIYW5kbGluZ0RlZmF1bHQ7U3ViYWN0aW9uPVByaW9yaXR5QWN0aW9uO0NvbW11bmljYXRpb25UeXBlPVslIERhdGEuQ29tbXVuaWNhdGlvblR5cGUgfCB1cmkgJV07V2Vic2VydmljZUlEPVslIERhdGEuV2Vic2VydmljZUlEIHwgdXJpICVdO1slIEVudignQ2hhbGxlbmdlVG9rZW5QYXJhbScpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggd2lkdGg9IjEwcHgiPlslIFRyYW5zbGF0ZSgiIyIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiTmFtZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiRGVzY3JpcHRpb24iKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkJhY2tlbmQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFcnJvckhhbmRsaW5nUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBpZD0iWyUgRGF0YS5FcnJvckhhbmRsaW5nIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXNCbG9jayIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIERhdGEuRGlhbG9nIHwgdXJpICVdO0NvbW11bmljYXRpb25UeXBlPVslIERhdGEuQ29tbXVuaWNhdGlvblR5cGUgfCB1cmkgJV07RXJyb3JIYW5kbGluZz1bJSBEYXRhLkVycm9ySGFuZGxpbmcgfCB1cmkgJV07U3ViYWN0aW9uPUNoYW5nZTtXZWJzZXJ2aWNlSUQ9WyUgRGF0YS5XZWJzZXJ2aWNlSUQgfCB1cmkgJV07RXJyb3JIYW5kbGluZ1R5cGU9WyUgRGF0YS5FcnJvckhhbmRsaW5nVHlwZSB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkVycm9ySGFuZGxpbmcgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLkRlc2NyaXB0aW9uIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuRXJyb3JIYW5kbGluZ1R5cGUgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJFcnJvckhhbmRsaW5nUm93IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRXJyb3JIYW5kbGluZ1Jvd05vRGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiRXJyb3JIYW5kbGluZ1Jvd05vRGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgoKICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBIaWRlT25DaGFuZ2UgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlslIERhdGEuQ29tbXVuaWNhdGlvblR5cGUgfCBodG1sICVdRXJyb3JIYW5kbGluZyI+WyUgVHJhbnNsYXRlKCJBZGQgZXJyb3IgaGFuZGxpbmcgbW9kdWxlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5FcnJvckhhbmRsaW5nU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CgogICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz0iU3BhY2luZ1RvcCBTcGFjaW5nQm90dG9tIj5bJSBUcmFuc2xhdGUoRGF0YS5BY3Rpb25zVGl0bGUpIHwgaHRtbCAlXTwvaDQ+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEZXRhaWxzQ29tbXVuaWNhdGlvblR5cGVBY3Rpb25zRXhwbGFuYXRpb25Qcm92aWRlciIpICVdCiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiT3BlcmF0aW9ucyBhcmUgaW5kaXZpZHVhbCBzeXN0ZW0gZnVuY3Rpb25zIHdoaWNoIHJlbW90ZSBzeXN0ZW1zIGNhbiByZXF1ZXN0LiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkRldGFpbHNDb21tdW5pY2F0aW9uVHlwZUFjdGlvbnNFeHBsYW5hdGlvblByb3ZpZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRGV0YWlsc0NvbW11bmljYXRpb25UeXBlQWN0aW9uc0V4cGxhbmF0aW9uUmVxdWVzdGVyIikgJV0KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJJbnZva2VycyBwcmVwYXJlIGRhdGEgZm9yIGEgcmVxdWVzdCB0byBhIHJlbW90ZSB3ZWIgc2VydmljZSwgYW5kIHByb2Nlc3MgaXRzIHJlc3BvbnNlIGRhdGEuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRGV0YWlsc0NvbW11bmljYXRpb25UeXBlQWN0aW9uc0V4cGxhbmF0aW9uUmVxdWVzdGVyIikgJV0KCiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiIGlkPSJbJSBEYXRhLkFjdGlvbnNUaXRsZSB8IGh0bWwgJV1UYWJsZSIgc3VtbWFyeT0ibGlzdCBvZiBbJSBEYXRhLkFjdGlvbnNUaXRsZSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiTmFtZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiRGVzY3JpcHRpb24iKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkNvbnRyb2xsZXIiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkluYm91bmQgbWFwcGluZyIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiT3V0Ym91bmQgbWFwcGluZyIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIkRldGFpbHNBY3Rpb25zUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ClslIFJlbmRlckJsb2NrU3RhcnQoIkRldGFpbHNBY3Rpb25zUm93TGluayIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBc0Jsb2NrIEhpZGVMaW5rT25DaGFuZ2UiIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBEYXRhLk1vZHVsZSB8IHVyaSAlXTtbJSBEYXRhLkFjdGlvblR5cGUgfCB1cmkgJV09WyUgRGF0YS5OYW1lIHwgdXJpICVdO1N1YmFjdGlvbj1DaGFuZ2U7V2Vic2VydmljZUlEPVslIERhdGEuV2Vic2VydmljZUlEIHwgdXJpICVdO05hdj1bJSBEYXRhLk5hdiB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTmFtZSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiRGV0YWlsc0FjdGlvbnNSb3dMaW5rIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRGV0YWlsc0FjdGlvbnNSb3dEZWxldGUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBpZD0iRGVsZXRlWyUgRGF0YS5BY3Rpb25UeXBlIHwgaHRtbCAlXVslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGNsYXNzPSJUcmFzaENhbiBEZWxldGVbJSBEYXRhLkFjdGlvblR5cGUgfCBodG1sICVdIiBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJEZWxldGUgdGhpcyBhY3Rpb24iKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkRlbGV0ZSB0aGlzIGFjdGlvbiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRyYXNoLW8iPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5OYW1lIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+ClslIFJlbmRlckJsb2NrRW5kKCJEZXRhaWxzQWN0aW9uc1Jvd0RlbGV0ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKERhdGEuRGVzY3JpcHRpb24pIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJbJSBEYXRhLkNvbnRyb2xsZXJDbGFzcyB8IGh0bWwgJV0iPlslIERhdGEuQ29udHJvbGxlciB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBUcmFuc2xhdGUoRGF0YS5NYXBwaW5nSW5ib3VuZCkgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKERhdGEuTWFwcGluZ091dGJvdW5kKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIkRldGFpbHNBY3Rpb25zUm93IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRGV0YWlsc0FjdGlvbnNOb0RhdGFGb3VuZE1zZyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIkRldGFpbHNBY3Rpb25zTm9EYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+ClslIFJlbmRlckJsb2NrU3RhcnQoIkRldGFpbHNBY3Rpb25zTm9Db250cm9sbGVyRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3AiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJFcnJvciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJBdCBsZWFzdCBvbmUgJXMgaGFzIGEgY29udHJvbGxlciB0aGF0IGlzIGVpdGhlciBub3QgYWN0aXZlIG9yIG5vdCBwcmVzZW50LCBwbGVhc2UgY2hlY2sgdGhlIGNvbnRyb2xsZXIgcmVnaXN0cmF0aW9uIG9yIGRlbGV0ZSB0aGUgJXMiLCBEYXRhLkFjdGlvblR5cGUsIERhdGEuQWN0aW9uVHlwZSkgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRGV0YWlsc0FjdGlvbnNOb0NvbnRyb2xsZXJGb3VuZE1zZyIpICVdCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgSGlkZU9uQ2hhbmdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iWyUgRGF0YS5BY3Rpb25UeXBlIHwgaHRtbCAlXUxpc3QiPlslIFRyYW5zbGF0ZSgiQWRkIikgfCBodG1sICVdIFslIFRyYW5zbGF0ZShEYXRhLkFjdGlvblR5cGUpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ29udHJvbGxlcnNTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KClslIFJlbmRlckJsb2NrRW5kKCJEZXRhaWxzQ29tbXVuaWNhdGlvblR5cGUiKSAlXQoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLkFjdGlvbiA9PSAnQ2hhbmdlJyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdEFuZENvbnRpbnVlIiB0eXBlPSJidXR0b24iIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQcmltYXJ5IiBpZD0iU3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSBhbmQgZmluaXNoIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRUxTRSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Zvcm0+CgogICAgICAgIDxkaXYgY2xhc3M9IkhpZGRlbiIgaWQ9IkRlbGV0ZU9wZXJhdGlvbkRpYWxvZ0NvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgaWQgPSJEZWxldGVPcGVyYXRpb25EaWFsb2ciIGNsYXNzPSJJbm5lckNvbnRlbnQgR2VuZXJpY0ludGVyZmFjZURpYWxvZyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iV2FybmluZ0RpYWxvZyAiPiZuYnNwOzwvc3Bhbj4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJDZW50ZXIgV2FybmluZyI+WyUgVHJhbnNsYXRlKCJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgb3BlcmF0aW9uPyIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3AiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iSGlkZGVuIiBpZD0iRGVsZXRlSW52b2tlckRpYWxvZ0NvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgaWQgPSJEZWxldGVJbnZva2VyRGlhbG9nIiBjbGFzcz0iSW5uZXJDb250ZW50IEdlbmVyaWNJbnRlcmZhY2VEaWFsb2ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Ildhcm5pbmdEaWFsb2cgIj4mbmJzcDs8L3NwYW4+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iQ2VudGVyIFdhcm5pbmciPlslIFRyYW5zbGF0ZSgiRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGludm9rZXI/IikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tFbmQoIkRldGFpbHMiKSAlXQogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiTWFpbiIpICVdCg==</File>
        <File Location="Kernel/Config/Files/XML/WebServiceOpenAPI.xml" Permission="660" Encode="Base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiID8+CjxvdG9ib19jb25maWcgdmVyc2lvbj0iMi4wIiBpbml0PSJBcHBsaWNhdGlvbiI+CiAgICA8U2V0dGluZyBOYW1lPSJQdWJsaWNGcm9udGVuZDo6TW9kdWxlIyMjU3dhZ2dlciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OlB1YmxpYzo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPk9wZW5BUEkgV2Vic2VydmljZSBTcGVjaWZpY2F0aW9uPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiPk9wZW5BUElTcGVjPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KPC9vdG9ib19jb25maWc+</File>
        <File Location="Kernel/Modules/Swagger.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6U3dhZ2dlcjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIEpTT047CnVzZSBTdG9yYWJsZSAgICAgICAgICBxdyhkY2xvbmUpOwp1c2UgVVJJOjpFc2NhcGUgICAgICAgcXcodXJpX2VzY2FwZV91dGY4KTsKdXNlIFR5cGVzOjpTZXJpYWxpc2VyICgpOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwp1c2UgS2VybmVsOjpMYW5ndWFnZSAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgJFNlbGYtPntDb250ZW50bGVzc01ldGhvZHN9ID0gewogICAgICAgIEdFVCAgICAgPT4gMSwKICAgICAgICBIRUFEICAgID0+IDEsCiAgICAgICAgREVMRVRFICA9PiAxLAogICAgICAgIE9QVElPTlMgPT4gMSwKICAgICAgICBDT05ORUNUID0+IDEsCiAgICAgICAgVFJBQ0UgICA9PiAxLAogICAgfTsKCiAgICAkU2VsZi0+e0NvbnRlbnRNZXRob2RzfSA9IHsKICAgICAgICBQT1NUICA9PiAxLAogICAgICAgIFBVVCAgID0+IDEsCiAgICAgICAgUEFUQ0ggPT4gMSwKICAgIH07CgogICAgIyBzdGF0aWMgbWV0YSBkYXRhIGZvciBvdG9ibyB3ZWJzZXJ2aWNlcwoKICAgICRTZWxmLT57Q29tcG9uZW50c30gPSB7CiAgICAgICAgInNlY3VyaXR5U2NoZW1lcyIgPT4gewogICAgICAgICAgICAiU2Vzc2lvbklEIiA9PiB7CiAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iID0+ICJTZXNzaW9uSUQgcmVxdWVzdGVkIHdpdGggVXNlckxvZ2luIGFuZCBQYXNzd29yZCB2aWEgQ3JlYXRlU2Vzc2lvbiBlbmRwb2ludCIsCiAgICAgICAgICAgICAgICAidHlwZSIgICAgICAgID0+ICJhcGlLZXkiLAogICAgICAgICAgICAgICAgIm5hbWUiICAgICAgICA9PiAiU2Vzc2lvbklEIiwKICAgICAgICAgICAgICAgICJpbiIgICAgICAgICAgPT4gInF1ZXJ5IiwKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgInNjaGVtYXMiICAgID0+IHt9LAogICAgICAgICJwYXJhbWV0ZXJzIiA9PiB7fSwKICAgIH07CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkWUFNTE9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OllBTUwnKTsKICAgIG15ICRNYWluT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpOwoKICAgIG15ICRIb21lID0gJENvbmZpZ09iamVjdC0+R2V0KCdIb21lJyk7CgogICAgJFNlbGYtPntNZXRhRGF0YX0gPSB7fTsKCiAgICBteSBAV2Vic2VydmljZU1ldGFEZXNjcyA9IGdsb2IoIiRIb21lL3Zhci93ZWJzZXJ2aWNlcy9tZXRhZGF0YS8qLnltbCIpOwogICAgZm9yIG15ICRNZXRhRGF0YSAoQFdlYnNlcnZpY2VNZXRhRGVzY3MpIHsKCiAgICAgICAgbXkgJFdlYlNlcnZpY2VEZXNjID0gJE1haW5PYmplY3QtPkZpbGVSZWFkKCBMb2NhdGlvbiA9PiAkTWV0YURhdGEgKTsKCiAgICAgICAgbG9jYWwgJFlBTUw6OlhTOjpCb29sZWFuID0gIkpTT046OlBQIjsKICAgICAgICBteSAkV2ViU2VydmljZU1ldGFEYXRhID0gJFlBTUxPYmplY3QtPkxvYWQoCiAgICAgICAgICAgIERhdGEgPT4gJFdlYlNlcnZpY2VEZXNjLT4kKiwKICAgICAgICApOwoKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRXZWJTZXJ2aWNlTWV0YURhdGEpICkgewoKICAgICAgICAgICAgaWYgKCBleGlzdHMgJFdlYlNlcnZpY2VNZXRhRGF0YS0+e2NvbXBvbmVudHN9ICkgewoKICAgICAgICAgICAgICAgIG15ICRTY2hlbWFzICAgID0gJFdlYlNlcnZpY2VNZXRhRGF0YS0+e2NvbXBvbmVudHN9LT57c2NoZW1hc307CiAgICAgICAgICAgICAgICBteSAkUGFyYW1ldGVycyA9ICRXZWJTZXJ2aWNlTWV0YURhdGEtPntjb21wb25lbnRzfS0+e3BhcmFtZXRlcnN9OwoKICAgICAgICAgICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoJFNjaGVtYXMpICkgewogICAgICAgICAgICAgICAgICAgICRTZWxmLT57Q29tcG9uZW50c30tPntzY2hlbWFzfSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgJFNlbGYtPntDb21wb25lbnRzfS0+e3NjaGVtYXN9LT4lKiwKICAgICAgICAgICAgICAgICAgICAgICAgJFNjaGVtYXMtPiUqLAogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSgkUGFyYW1ldGVycykgKSB7CiAgICAgICAgICAgICAgICAgICAgJFNlbGYtPntDb21wb25lbnRzfS0+e3BhcmFtZXRlcnN9ID0gewogICAgICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e0NvbXBvbmVudHN9LT57cGFyYW1ldGVyc30tPiUqLAogICAgICAgICAgICAgICAgICAgICAgICAkUGFyYW1ldGVycy0+JSosCiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRlbGV0ZSAkV2ViU2VydmljZU1ldGFEYXRhLT57Y29tcG9uZW50c307CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRTZWxmLT57TWV0YURhdGF9ID0gewogICAgICAgICAgICAgICAgJFNlbGYtPntNZXRhRGF0YX0tPiUqLAogICAgICAgICAgICAgICAgJFdlYlNlcnZpY2VNZXRhRGF0YS0+JSosCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgIG15ICREeW5hbWljRmllbGRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyk7CgogICAgaWYgKCAkU2VsZi0+e0NvbXBvbmVudHN9LT57c2NoZW1hc30tPntUaWNrZXRRdWVyeX0gKSB7CgogICAgICAgIG15ICREeW5hbWljRmllbGRMaXN0ID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICAgICAgUmVzdWx0VHlwZSA9PiAnSEFTSCcsCiAgICAgICAgICAgIE9iamVjdFR5cGUgPT4gWydUaWNrZXQnXSwKICAgICAgICApOwoKICAgICAgICBmb3IgbXkgJERGICggJER5bmFtaWNGaWVsZExpc3QtPkAqICkgewoKICAgICAgICAgICAgbXkgJERGTmFtZSA9ICJEeW5hbWljRmllbGRfIiAuICRERi0+e05hbWV9OwoKICAgICAgICAgICAgJFNlbGYtPntDb21wb25lbnRzfS0+e3NjaGVtYXN9LT57VGlja2V0UXVlcnl9LT57cHJvcGVydGllc30tPnskREZOYW1lfSA9IHsKCiAgICAgICAgICAgICAgICB0eXBlICAgICAgID0+ICdvYmplY3QnLAogICAgICAgICAgICAgICAgcHJvcGVydGllcyA9PiB7CiAgICAgICAgICAgICAgICAgICAgRW1wdHkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBlbnVtID0+IFsgMCwgMSBdLAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0+ICdpbnRlZ2VyJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIEVxdWFscyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gJ3N0cmluZycsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBHcmVhdGVyVGhhbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gJ3N0cmluZycsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBHcmVhdGVyVGhhbkVxdWFscyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gJ3N0cmluZycsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBMaWtlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiAnc3RyaW5nJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIFNtYWxsZXJUaGFuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiAnc3RyaW5nJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIFNtYWxsZXJUaGFuRXF1YWxzID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiAnc3RyaW5nJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCAkU2VsZi0+e0NvbXBvbmVudHN9LT57c2NoZW1hc30tPntDb25maWdJdGVtUXVlcnl9ICkgewoKICAgICAgICBteSAkRHluYW1pY0ZpZWxkTGlzdCA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgICAgIFJlc3VsdFR5cGUgPT4gJ0hBU0gnLAogICAgICAgICAgICBPYmplY3RUeXBlID0+IFsnSVRTTUNvbmZpZ0l0ZW0nXSwKICAgICAgICApOwoKICAgICAgICBmb3IgbXkgJERGICggJER5bmFtaWNGaWVsZExpc3QtPkAqICkgewoKICAgICAgICAgICAgbXkgJERGTmFtZSA9ICJEeW5hbWljRmllbGRfIiAuICRERi0+e05hbWV9OwoKICAgICAgICAgICAgJFNlbGYtPntDb21wb25lbnRzfS0+e3NjaGVtYXN9LT57Q29uZmlnSXRlbVF1ZXJ5fS0+e3Byb3BlcnRpZXN9LT57JERGTmFtZX0gPSB7CgogICAgICAgICAgICAgICAgdHlwZSAgICAgICA9PiAnb2JqZWN0JywKICAgICAgICAgICAgICAgIHByb3BlcnRpZXMgPT4gewoKICAgICAgICAgICAgICAgICAgICBFbXB0eSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gPT4gWyAwLCAxIF0sCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gJ2ludGVnZXInLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgRXF1YWxzID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiAnc3RyaW5nJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIEdyZWF0ZXJUaGFuID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiAnc3RyaW5nJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIEdyZWF0ZXJUaGFuRXF1YWxzID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiAnc3RyaW5nJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIExpa2UgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0+ICdzdHJpbmcnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgU21hbGxlclRoYW4gPT4gewogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0+ICdzdHJpbmcnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgU21hbGxlclRoYW5FcXVhbHMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0+ICdzdHJpbmcnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkQ29uZmlnT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkUGFyYW1PYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRTZXNzaW9uT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkF1dGhTZXNzaW9uJyk7CgogICAgbXkgJFNlc3Npb25OYW1lID0gJENvbmZpZ09iamVjdC0+R2V0KCdTZXNzaW9uTmFtZScpIHx8ICdTZXNzaW9uSUQnOwogICAgbXkgJFNlc3Npb25JRCAgID0gJFBhcmFtT2JqZWN0LT5HZXRDb29raWUoIEtleSA9PiAkU2Vzc2lvbk5hbWUgKTsKCiAgICBpZiAoICEkU2Vzc2lvbklEIHx8ICEkU2Vzc2lvbk9iamVjdC0+Q2hlY2tTZXNzaW9uSUQoIFNlc3Npb25JRCA9PiAkU2Vzc2lvbklEICkgKSB7CgogICAgICAgIHJldHVybiAkU2VsZi0+VW5BdXRob3JpemVkKCk7CiAgICB9CgogICAgbXkgJEJhc2VVUkwgPSAiL290b2JvL25waC1nZW5lcmljaW50ZXJmYWNlLnBsL1dlYnNlcnZpY2UvIjsKCiAgICBteSAkTGF5b3V0T2JqZWN0ICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRXZWJzZXJ2aWNlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyaWNJbnRlcmZhY2U6OldlYnNlcnZpY2UnKTsKICAgIG15ICRKU09OT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkpTT04nKTsKCiAgICBteSAkV2Vic2VydmljZUlEcyA9ICRXZWJzZXJ2aWNlT2JqZWN0LT5XZWJzZXJ2aWNlTGlzdCgpOwoKICAgIG15IEBXZWJzZXJ2aWNlczsKICAgIFdTOgogICAgZm9yIG15ICRXZWJzZXJ2aWNlSUQgKCBrZXlzICUkV2Vic2VydmljZUlEcyApIHsKCiAgICAgICAgbXkgJFdlYnNlcnZpY2UgPSAkV2Vic2VydmljZU9iamVjdC0+V2Vic2VydmljZUdldCggSUQgPT4gJFdlYnNlcnZpY2VJRCApOwoKICAgICAgICAjIG9ubHkgYWRkIHZhbGlkIHdlYnNlcnZpY2VzIHRvIE9wZW5BUEkgc3BlYwogICAgICAgIGlmICggISRXZWJzZXJ2aWNlLT57VmFsaWRJRH0gPT0gMSApIHsKICAgICAgICAgICAgbmV4dCBXUzsKICAgICAgICB9CgogICAgICAgIG15ICRQcm92aWRlciAgPSAkV2Vic2VydmljZS0+e0NvbmZpZ30tPntQcm92aWRlcn07CiAgICAgICAgbXkgJFRyYW5zcG9ydCA9ICRQcm92aWRlci0+e1RyYW5zcG9ydH07CgogICAgICAgICMgc2tpcCBTT0FQIHdlYnNlcnZpY2VzCiAgICAgICAgaWYgKCAkVHJhbnNwb3J0LT57VHlwZX0gbmUgJ0hUVFA6OlJFU1QnICkgewogICAgICAgICAgICBuZXh0IFdTOwogICAgICAgIH0KCiAgICAgICAgbXkgJFJvdXRlT3BlcmF0aW9uTWFwcGluZyA9ICRUcmFuc3BvcnQtPntDb25maWd9LT57Um91dGVPcGVyYXRpb25NYXBwaW5nfTsKICAgICAgICBteSAkT3BlcmF0aW9ucyAgICAgICAgICAgID0gJFByb3ZpZGVyLT57T3BlcmF0aW9ufTsKCiAgICAgICAgZm9yIG15ICRPcGVyYXRpb24gKCBrZXlzICUkT3BlcmF0aW9ucyApIHsKCiAgICAgICAgICAgIG15ICRPcGVyYXRpb25UeXBlICAgPSAkT3BlcmF0aW9ucy0+eyRPcGVyYXRpb259LT57VHlwZX07CiAgICAgICAgICAgIG15ICREZXNjcmlwdGlvbiAgICAgPSAkT3BlcmF0aW9ucy0+eyRPcGVyYXRpb259LT57RGVzY3JpcHRpb259OwogICAgICAgICAgICBteSAkTWFwcGluZ0luYm91bmQgID0gJE9wZXJhdGlvbnMtPnskT3BlcmF0aW9ufS0+e01hcHBpbmdJbmJvdW5kfTsKICAgICAgICAgICAgbXkgJE1hcHBpbmdPdXRib3VuZCA9ICRPcGVyYXRpb25zLT57JE9wZXJhdGlvbn0tPntNYXBwaW5nT3V0Ym91bmR9OwogICAgICAgICAgICBteSAkTWFwcGluZyAgICAgICAgID0gJFJvdXRlT3BlcmF0aW9uTWFwcGluZy0+eyRPcGVyYXRpb259OwogICAgICAgICAgICBteSAkUm91dGUgICAgICAgICAgID0gJE1hcHBpbmctPntSb3V0ZX07CiAgICAgICAgICAgIG15ICRNZXRob2RzICAgICAgICAgPSAkTWFwcGluZy0+e1JlcXVlc3RNZXRob2R9OwoKICAgICAgICAgICAgbXkgJFBhdGhQYXJhbXMgPSAkU2VsZi0+UGF0aFBhcmFtcyggUm91dGUgPT4gJFJvdXRlICk7CgogICAgICAgICAgICBteSAkUGF0aCA9ICRSb3V0ZTsKCiAgICAgICAgICAgICMgcmVwbGFjZSB0aGUgT3RvYm8gcGF0aCBwYXJhbXMgcGxhY2Vob2xkZXJzICgnOlBhcmFtJyApCiAgICAgICAgICAgICMgd2l0aCBzd2FnZXIgcGF0aCBwYXJhbSBwbGFjZWhvbGRlcyAoJ3tQYXJhbX0nKQogICAgICAgICAgICAkUGF0aCA9fiBzLzooW146XC9dKykveyQxfS9nOwoKICAgICAgICAgICAgTUVUSE9EOgogICAgICAgICAgICBmb3IgbXkgJE1ldGhvZCAoQCRNZXRob2RzKSB7CgogICAgICAgICAgICAgICAgIyBpZiB0aGVyZSBpcyBpbmJvdW5kIG1hcHBpbmcgY29uZmlndXJlZCwgdGhlIGVuZHBvaW50IHdpbGwKICAgICAgICAgICAgICAgICMgYmUgbGlzdGVkLCBidXQgbm90IHVzYWJsZSB2aWEgU3dhZ2dlciBVSQogICAgICAgICAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSgkTWFwcGluZ0luYm91bmQpICkgewogICAgICAgICAgICAgICAgICAgIG15ICRFbmRwb2ludCA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgPT4gJFdlYnNlcnZpY2UtPntDb25maWd9LT57RGVzY3JpcHRpb259LAogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgICAgICA9PiAkTWV0aG9kLAogICAgICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgICA9PiAkT3BlcmF0aW9uVHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgUm91dGUgICAgICAgPT4gJFJvdXRlLAogICAgICAgICAgICAgICAgICAgICAgICBQYXRoICAgICAgICA9PiAkQmFzZVVSTCAuICRXZWJzZXJ2aWNlLT57TmFtZX0gLiAkUGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgUGF0aFBhcmFtcyAgPT4gJFBhdGhQYXJhbXMsCiAgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uID0+ICJUaGlzIGVuZHBvaW50IGhhcyBhZHZhbmNlZCBJbmJvdW5kIG1hcHBpbmcgYXBwbGllZC4gVW5hYmxlIHRvIGdlbmVyYXRlIHByb3BlciBPcGVuQVBJIHNwZWMuICIgLiAkRGVzY3JpcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXJ5UGFyYW1zID0+IFtdLAogICAgICAgICAgICAgICAgICAgICAgICBNYXBwaW5nICAgICA9PiAxLAogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgcHVzaCBAV2Vic2VydmljZXMsICRFbmRwb2ludDsKICAgICAgICAgICAgICAgICAgICBuZXh0IE1FVEhPRDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGFkZCBhbGwgUXVlcnlQYXJhbXMgZnJvbSBzdGF0aWMgbWV0YWRhdGEsCiAgICAgICAgICAgICAgICAjIGJ1dCBza2lwIGFueSBwYXJhbWV0ZXJzIHRoYXQgYXJlIGNvbmZpZ3VyZWQgYXMgUGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgICAgICAgICBteSBAUXVlcnlQYXJhbXM7CgogICAgICAgICAgICAgICAgIyB0cnkgdG8gZmFsbCBiYWNrIHRvICdHRVQnIGlmIHRoZXJlIGlzIG5vIFF1ZXJ5UGFyYW0gaW5mbyBmb3IKICAgICAgICAgICAgICAgICMgdGhpcyBtZXRob2QsIGJ1dCB0aGUgbWV0aG9kIGlzIG9uZSBvZiAnSEVBRCcsICdERUxFVEUnLCBvciAnT1BUSU9OUycKICAgICAgICAgICAgICAgIG15ICRNZXRob2RUb1VzZUZvclN3YWdnZXJTcGVjID0gJE1ldGhvZDsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e1F1ZXJ5UGFyYW1zfS0+eyRPcGVyYXRpb25UeXBlfQogICAgICAgICAgICAgICAgICAgICYmCiAgICAgICAgICAgICAgICAgICAgISRTZWxmLT57UXVlcnlQYXJhbXN9LT57JE9wZXJhdGlvblR5cGV9LT57JE1ldGhvZH0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCBleGlzdHMgJFNlbGYtPntDb250ZW50bGVzc01ldGhvZHN9LT57JE1ldGhvZH0gKSB7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoICRTZWxmLT57UXVlcnlQYXJhbXN9LT57JE9wZXJhdGlvblR5cGV9LT57J0dFVCd9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJE1ldGhvZFRvVXNlRm9yU3dhZ2dlclNwZWMgPSAnR0VUJzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJFNlbGYtPntNZXRhRGF0YX0tPnskT3BlcmF0aW9uVHlwZX0tPntRdWVyeVBhcmFtc30KICAgICAgICAgICAgICAgICAgICAmJgogICAgICAgICAgICAgICAgICAgICRTZWxmLT57TWV0YURhdGF9LT57JE9wZXJhdGlvblR5cGV9LT57UXVlcnlQYXJhbXN9LT57JE1ldGhvZFRvVXNlRm9yU3dhZ2dlclNwZWN9CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICAgICBteSAkUGFyYW1zID0gJFNlbGYtPntNZXRhRGF0YX0tPnskT3BlcmF0aW9uVHlwZX0tPntRdWVyeVBhcmFtc30tPnskTWV0aG9kVG9Vc2VGb3JTd2FnZ2VyU3BlY307CiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRQYXJhbSAoQCRQYXJhbXMpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIG15ICROYW1lID0gJFBhcmFtLT57bmFtZX07CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggISROYW1lICYmICRQYXJhbS0+eyckcmVmJ30gKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFJlZiA9ICRQYXJhbS0+eyckcmVmJ307CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUmVmID1+IHMvI1wvY29tcG9uZW50c1wvcGFyYW1ldGVyc1wvLy87CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTmFtZSA9ICRTZWxmLT57Q29tcG9uZW50c30tPntwYXJhbWV0ZXJzfS0+eyRSZWZ9LT57bmFtZX07CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggJE5hbWUgJiYgIXNjYWxhciBncmVwIHsvXiROYW1lJC99IEAkUGF0aFBhcmFtcyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQFF1ZXJ5UGFyYW1zLCAkUGFyYW07CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBhZGQgcmVxdWVzdCBib2R5IGlmIG1ldGhvZCBpcyBub3Qgb2YgR0VUfERFTEVURXxIRUFEfE9QVElPTlN8Q09OTkVDVHxUUkFDRQogICAgICAgICAgICAgICAgbXkgJFJlcXVlc3RCb2R5ID0gdW5kZWY7CgogICAgICAgICAgICAgICAgaWYgKCBleGlzdHMgJFNlbGYtPntDb250ZW50TWV0aG9kc30tPnskTWV0aG9kfSApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIyBvbmx5IGlmIHdlIGhhdmUgc3RhdGljIG1ldGEgZGF0YQogICAgICAgICAgICAgICAgICAgIGlmICggJFNlbGYtPntNZXRhRGF0YX0tPnskT3BlcmF0aW9uVHlwZX0tPntSZXF1ZXN0Qm9keX0gKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAkUmVxdWVzdEJvZHkgPSAkU2VsZi0+e01ldGFEYXRhfS0+eyRPcGVyYXRpb25UeXBlfS0+e1JlcXVlc3RCb2R5fTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBhZGQgd3MgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICMgaWYgdGhlcmUgaXMgYW4gb3V0Ym91bmQgbWFwcGluZywgYWRkIGEgbm90ZSB0aGF0CiAgICAgICAgICAgICAgICAjIGV4YW1wbGUgcmVzcG9uc2VzIHdpbGwgbm90IG1hdGNoIGFjdHVhbCBvdXRwdXQKICAgICAgICAgICAgICAgIG15ICRBcGlEZXNjcmlwdGlvbiA9ICREZXNjcmlwdGlvbjsKICAgICAgICAgICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoJE1hcHBpbmdPdXRib3VuZCkgKSB7CiAgICAgICAgICAgICAgICAgICAgJEFwaURlc2NyaXB0aW9uIC49ICIgVGhpcyBlbmRwb2ludCBoYXMgYWRkaXRpb25hbCBvdXRib3VuZCBtYXBwaW5nIGFwcGxpZWQsIHBsZWFzZSBub3RlIGFjdHVhbCBPdXRwdXQgbWlnaHQgZGlmZmVyIGZyb20gZXhhbXBsZSByZXNwb25zZXMuIjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBteSAkRW5kcG9pbnQgPSB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgPT4gJFdlYnNlcnZpY2UtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICBNZXRob2QgICAgICA9PiAkTWV0aG9kLAogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICRPcGVyYXRpb25UeXBlLAogICAgICAgICAgICAgICAgICAgIFJvdXRlICAgICAgID0+ICRSb3V0ZSwKICAgICAgICAgICAgICAgICAgICBQYXRoICAgICAgICA9PiAkQmFzZVVSTCAuIHVyaV9lc2NhcGVfdXRmOCggJFdlYnNlcnZpY2UtPntOYW1lfSApIC4gJFBhdGgsCiAgICAgICAgICAgICAgICAgICAgUGF0aFBhcmFtcyAgPT4gJFBhdGhQYXJhbXMsCiAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJEFwaURlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgICAgIFF1ZXJ5UGFyYW1zID0+IFxAUXVlcnlQYXJhbXMsCiAgICAgICAgICAgICAgICAgICAgUmVxdWVzdEJvZHkgPT4gJFJlcXVlc3RCb2R5LAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIHB1c2ggQFdlYnNlcnZpY2VzLCAkRW5kcG9pbnQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBnZW5lcmF0ZSBvcGVuQVBJIHNwZWMgZnJvbSBsaXN0IG9mIGVuZHBvaW50cwogICAgbXkgJE91dHB1dCA9ICRTZWxmLT5HZW5lcmF0ZVN3YWdnZXIoCiAgICAgICAgU2VydmljZXMgPT4gXEBXZWJzZXJ2aWNlcywKICAgICk7CgogICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvamF2YXNjcmlwdCcsCiAgICAgICAgQ29udGVudCAgICAgPT4gJEpTT05PYmplY3QtPkVuY29kZSgKICAgICAgICAgICAgRGF0YSAgICAgPT4gJE91dHB1dCwKICAgICAgICAgICAgU29ydEtleXMgPT4gMQogICAgICAgICksCiAgICAgICAgVHlwZSAgICA9PiAnaW5saW5lJywKICAgICAgICBOb0NhY2hlID0+IDEsCiAgICApOwoKfQoKIyBoZWxwZXIgdG8gZXh0cmFjdCBQYXRoIFBhcmFtZXRlcnMgZnJvbSBFbmRwb2ludCBSb3V0ZQpzdWIgUGF0aFBhcmFtcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwogICAgbXkgJFJvdXRlID0gJFBhcmFte1JvdXRlfTsKCiAgICBteSBAUGF0aFBhcmFtczsKCiAgICBteSBAUGFydHMgPSBzcGxpdCAvXC8vLCAkUm91dGU7CiAgICBmb3IgbXkgJFBhcnQgKEBQYXJ0cykgewoKICAgICAgICBpZiAoICRQYXJ0ID1+IC9eOlteOl0rJC8gKSB7CgogICAgICAgICAgICBteSAkUGFyYW0gPSBzdWJzdHIgJFBhcnQsIDE7CiAgICAgICAgICAgIHB1c2ggQFBhdGhQYXJhbXMsICRQYXJhbTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gXEBQYXRoUGFyYW1zOwp9CgojIGFjdHVhbGx5IGdlbmVyYXRlIGFuIE9wZW5BUEkgc3BlYyBkb2N1bWVudApzdWIgR2VuZXJhdGVTd2FnZ2VyIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFNlcnZpY2VzID0gJFBhcmFte1NlcnZpY2VzfTsKCiAgICBteSAkSlNPTk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpKU09OJyk7CgogICAgIyBzdGF0aWMgcGFydCBvZiBkb2N1bWVudAogICAgbXkgJE9wZW5BUEkgPSB7CgogICAgICAgICJvcGVuYXBpIiA9PiAiMy4wLjAiLAogICAgICAgICJpbmZvIiAgICA9PiB7CiAgICAgICAgICAgICJ0aXRsZSIgICAgICAgPT4gIk90b2JvIFByb3ZpZGVyIFJFU1QgQVBJIiwKICAgICAgICAgICAgInZlcnNpb24iICAgICA9PiAiMTEuMS4wIiwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA9PgogICAgICAgICAgICAgICAgIioqQ29udGFjdCoqOiBDdXN0b21lcnMgd2l0aCBhIHN1cHBvcnQgY29udHJhY3QgY2FuIGdldCBzdXBwb3J0IGF0IDxhIGhyZWY9J21haWx0bzpzdXBwb3J0XEBvdG9iby5pbyc+c3VwcG9ydFxAb3RvYm8uaW88L2E+LCBvdGhlcndpc2UgcGxlYXNlIGNvbnRhY3QgPGEgaHJlZj0nbWFpbHRvOmhhbGxvXEBvdG9iby5pbyc+aGFsbG9cQG90b2JvLmlvPC9hPi4KCioqTm90ZSBvbiBBdXRoZW50aWNhdGlvbioqOgogLSBZb3UgY2FuIGF1dGhlbnRpY2F0ZSBieSBhZGRpbmcgVXNlckxvZ2luL1Bhc3N3b3JkIGZvciBldmVyeSByZXF1ZXN0LiBvciBpZiB5b3UgaGF2ZSBhIENyZWF0ZVNlc3Npb24gZW5kcG9pbnQgY29uZmlndXJlZCwKIC0gY2FsbCBTZXNzaW9uQ3JlYXRlIG9uY2Ugd2l0aCBVc2VyTG9naW4vUGFzc3dvcmQgdG8gZ2V0IGEgU2Vzc2lvbklELCBhbmQgdGhlbiBzcGVjaWZ5IHRoZSBTZXNzaW9uSUQgd2l0aCBldmVyeSByZXF1ZXN0LCBvcgogLSBzZXQgdGhlIFNlc3Npb25JRCBmb3IgYWxsIHJlcXVlc3RzIHZpYSB0aGUgJ0F1dGhvcml6ZScgYnV0dG9uLgoKIE5vdGUgb24gRGF0ZSBGb3JtYXQ6CiAtIHNwZWNpZnkgZGF0ZSBmb3JtYXRzIGxpa2UgJzIwMjUtMDgtMjcgMTA6MDA6MDAnCgoiIC4gJFNlbGYtPkdlbmVyYXRlRHluYW1pY0ZpZWxkSW5mbygpLAogICAgICAgICAgICAiY29udGFjdCIgPT4gewogICAgICAgICAgICAgICAgIm5hbWUiID0+ICJPdG9ibyBBUEkgU3VwcG9ydCIsCiAgICAgICAgICAgICAgICAidXJsIiAgPT4gImh0dHBzOi8vZG9jLm90b2JvLm9yZy9tYW51YWwvYWRtaW4vMTEuMC9lbi9jb250ZW50L2FkbWluaXN0cmF0aW9uLWFyZWEvcHJvY2Vzc2VzLWF1dG9tYXRpb24vd2ViLXNlcnZpY2VzLmh0bWwiLAoKICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgImVtYWlsIiA9PiAiaW5mb1xAb3RvYm8uaW8iCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJ2ZXJzaW9uIiA9PiAiMTEuMS4wIiwKICAgICAgICB9LAogICAgICAgICJwYXRocyIgPT4ge30sCgogICAgICAgICJjb21wb25lbnRzIiA9PiAkU2VsZi0+e0NvbXBvbmVudHN9LAogICAgICAgICJzZWN1cml0eSIgICA9PiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJTZXNzaW9uSUQiID0+IFtdLAogICAgICAgICAgICB9CiAgICAgICAgXQogICAgfTsKCiAgICAjIGFkZCBlYWNoIGNvbmZpZ3VyZWQgd2Vic2VydmljZSB0byBzcGVjIGRvY3VtZW50CiAgICBmb3IgbXkgJFNlcnZpY2UgKEAkU2VydmljZXMpIHsKCiAgICAgICAgIyBwYXJhbXMgdG8gc2hvdyBpbiBVSQogICAgICAgIG15ICRQYXJhbXMgPSBbXTsKCiAgICAgICAgIyBhZGQgYWxsIHBhdGggcGFyYW1ldGVycwogICAgICAgIGZvciBteSAkUGF0aFBhcmFtICggJFNlcnZpY2UtPntQYXRoUGFyYW1zfS0+QCogKSB7CgogICAgICAgICAgICBwdXNoIEAkUGFyYW1zLCB7CgogICAgICAgICAgICAgICAgIm5hbWUiICAgICAgICA9PiAkUGF0aFBhcmFtLAogICAgICAgICAgICAgICAgImluIiAgICAgICAgICA9PiAicGF0aCIsCiAgICAgICAgICAgICAgICAicmVxdWlyZWQiICAgID0+ICRKU09OT2JqZWN0LT5UcnVlKCksCiAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iID0+ICRQYXRoUGFyYW0sCiAgICAgICAgICAgICAgICAic2NoZW1hIiAgICAgID0+IHsKICAgICAgICAgICAgICAgICAgICAidHlwZSIgPT4gInN0cmluZyIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICAjIGFkZCB0aGUgcXVlcnkgcGFyYW1ldGVycywgaWYgYW55CiAgICAgICAgZm9yIG15ICRRdWVyeVBhcmFtICggJFNlcnZpY2UtPntRdWVyeVBhcmFtc30tPkAqICkgewoKICAgICAgICAgICAgcHVzaCBAJFBhcmFtcywgJFF1ZXJ5UGFyYW07CiAgICAgICAgfQoKICAgICAgICAjIGFkZCBleGFtcGxlIHJlc3BvbnNlcywgdW5sZXNzIGFuIGluYm91bmQgbWFwcGluZyB3YXMgZGV0ZWN0ZWQKICAgICAgICBteSAkUmVzcG9uc2VzID0ge307CgogICAgICAgICMgICAgICAgIGlmKCAhICRTZXJ2aWNlLT57TWFwcGluZ30pIHsKICAgICAgICBpZiAoICRTZXJ2aWNlLT57TWV0aG9kfSBuZSAnSEVBRCcgKSB7CiAgICAgICAgICAgICRSZXNwb25zZXMgPSAkU2VsZi0+e01ldGFEYXRhfS0+eyAkU2VydmljZS0+e1R5cGV9IH0tPntSZXNwb25zZXN9OwogICAgICAgIH0KCiAgICAgICAgIyAgICAgICB9CgogICAgICAgICMgbWFrZSBzdXJlIHRoZSBwYXRoIGhhc2ggZXhpc3RzIGluIGRvY3VtZW50CiAgICAgICAgaWYgKCAhZXhpc3RzICRPcGVuQVBJLT57cGF0aHN9LT57ICRTZXJ2aWNlLT57UGF0aH0gfSApIHsKICAgICAgICAgICAgJE9wZW5BUEktPntwYXRoc30tPnsgJFNlcnZpY2UtPntQYXRofSB9ID0ge307CiAgICAgICAgfQoKICAgICAgICAkT3BlbkFQSS0+e3BhdGhzfS0+eyAkU2VydmljZS0+e1BhdGh9IH0tPnsgbGMgJFNlcnZpY2UtPntNZXRob2R9IH0gPSB7CgogICAgICAgICAgICAib3BlcmF0aW9uSWQiID0+ICRTZXJ2aWNlLT57UGF0aH0gLiAiICgiIC4gJFNlcnZpY2UtPntNZXRob2R9IC4gIikiLAogICAgICAgICAgICAic3VtbWFyeSIgICAgID0+ICRTZXJ2aWNlLT57RGVzY3JpcHRpb259LAogICAgICAgICAgICAicGFyYW1ldGVycyIgID0+ICRQYXJhbXMsCiAgICAgICAgICAgICJyZXNwb25zZXMiICAgPT4gJFJlc3BvbnNlcywKICAgICAgICAgICAgInRhZ3MiICAgICAgICA9PiBbICRTZXJ2aWNlLT57TmFtZX0gXSwKICAgICAgICB9OwoKICAgICAgICBpZiAoICRTZXJ2aWNlLT57UmVxdWVzdEJvZHl9ICkgewoKICAgICAgICAgICAgJE9wZW5BUEktPntwYXRoc30tPnsgJFNlcnZpY2UtPntQYXRofSB9LT57IGxjICRTZXJ2aWNlLT57TWV0aG9kfSB9LT57InJlcXVlc3RCb2R5In0gPSAkU2VydmljZS0+e1JlcXVlc3RCb2R5fTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICRPcGVuQVBJOwp9CgpzdWIgR2VuZXJhdGVEeW5hbWljRmllbGRJbmZvIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJER5bmFtaWNGaWVsZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKTsKICAgIG15ICRCYWNrZW5kT2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIG15ICREeW5hbWljRmllbGRMaXN0ID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBSZXN1bHRUeXBlID0+ICdIQVNIJywKICAgICAgICBPYmplY3RUeXBlID0+IFsgJ1RpY2tldCcsICdBcnRpY2xlJyBdLAogICAgKTsKCiAgICBteSAkREZzID0ge307CgogICAgZm9yIG15ICRERiAoICREeW5hbWljRmllbGRMaXN0LT5AKiApIHsKCiAgICAgICAgbXkgJERGTmFtZSA9ICRERi0+e05hbWV9OwoKICAgICAgICBteSAkVmFsdWVzID0gJEJhY2tlbmRPYmplY3QtPlBvc3NpYmxlVmFsdWVzR2V0KAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJERGLAogICAgICAgICk7CgogICAgICAgICRERnMtPnskREZOYW1lfSA9IHsKICAgICAgICAgICAgJSRERiwKICAgICAgICAgICAgVmFsdWVzID0+IFsgdmFsdWVzICUkVmFsdWVzIF0sCiAgICAgICAgfTsKICAgIH0KCiAgICBteSAkREZDb3VudCA9IHNjYWxhciBrZXlzICRERnMtPiUqOwoKICAgIGlmICggISRERkNvdW50ICkgewogICAgICAgIHJldHVybiAnJzsKICAgIH0KCiAgICBteSAkSHRtbCA9ICc8ZGV0YWlscz4KICAgICAgICAgIDxzdW1tYXJ5PkR5bmFtaWMgRmllbGRzPC9zdW1tYXJ5PgogICAgICAgIDxoNT5BdmFpbGFibGUgRHluYW1pYyBGaWVsZHMgZm9yIFRpY2tldHMgYW5kIEFydGljbGVzPC9oNT4KICAgICAgICA8dGFibGUgYm9yZGVyPSIxIj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0aD5OYW1lPC90aD4KICAgICAgICAgICAgPHRoPlR5cGU8L3RoPgogICAgICAgICAgICA8dGg+TXVsdGlwbGUgVmFsdWVzPzwvdGg+CiAgICAgICAgICAgIDx0aD5FbXB0eSBWYWx1ZT88L3RoPgogICAgICAgICAgICA8dGg+UG9zc2libGUgVmFsdWVzPC90aD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICc7CgogICAgTkVYVERGOgogICAgZm9yIG15ICRERiAoIGtleXMgJSRERnMgKSB7CgogICAgICAgIG15ICRERkNvbmZpZyA9ICRERnMtPnskREZ9OwogICAgICAgIGlmICggJERGQ29uZmlnLT57SW50ZXJuYWxGaWVsZH0gKSB7CgogICAgICAgICAgICAjICAgICAgICAgICAgbmV4dCBORVhUREY7CiAgICAgICAgfQogICAgICAgIG15ICRWYWx1ZXMgPSAkREZDb25maWctPntWYWx1ZXN9OwogICAgICAgICRIdG1sIC49ICI8dHI+PHRkPiZuYnNwOyI7CiAgICAgICAgJEh0bWwgLj0gJERGOwogICAgICAgICRIdG1sIC49ICI8L3RkPjx0ZD4mbmJzcDsiOwogICAgICAgICRIdG1sIC49ICRERkNvbmZpZy0+e09iamVjdFR5cGV9OwogICAgICAgICRIdG1sIC49ICI8L3RkPjx0ZD4mbmJzcDsiOwogICAgICAgICRIdG1sIC49ICggKCBleGlzdHMgJERGQ29uZmlnLT57Q29uZmlnfS0+e011bHRpVmFsdWV9ICkgJiYgJERGQ29uZmlnLT57Q29uZmlnfS0+e011bHRpVmFsdWV9ICkgPyAnWWVzJyA6ICdObyc7CiAgICAgICAgJEh0bWwgLj0gIjwvdGQ+PHRkPiZuYnNwOyI7CiAgICAgICAgJEh0bWwgLj0gKCAoIGV4aXN0cyAkREZDb25maWctPntDb25maWd9LT57UG9zc2libGVOb25lfSApICYmICRERkNvbmZpZy0+e0NvbmZpZ30tPntQb3NzaWJsZU5vbmV9ICkgPyAnWWVzJyA6ICdObyc7CiAgICAgICAgJEh0bWwgLj0gIjwvdGQ+PHRkPiZuYnNwOyI7CgogICAgICAgIGlmICgkVmFsdWVzKSB7CgogICAgICAgICAgICBteSAkUG9zc2libGVWYWx1ZXMgPSBqb2luICcsICcsICRWYWx1ZXMtPkAqOwogICAgICAgICAgICAkUG9zc2libGVWYWx1ZXMgPSAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKAogICAgICAgICAgICAgICAgVGV4dCAgICAgICAgICAgPT4gJFBvc3NpYmxlVmFsdWVzLAogICAgICAgICAgICAgICAgSFRNTFJlc3VsdE1vZGUgPT4gMQogICAgICAgICAgICApOwogICAgICAgICAgICAkSHRtbCAuPSAkUG9zc2libGVWYWx1ZXM7CiAgICAgICAgfQogICAgICAgICRIdG1sIC49ICI8L3RkPjwvdHI+IjsKICAgIH0KCiAgICAkSHRtbCAuPSAnPC90YWJsZT48L2RldGFpbHM+JzsKCiAgICByZXR1cm4gJEh0bWw7Cn0KCnN1YiBVbkF1dGhvcml6ZWQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJEpTT05PYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpKU09OJyk7CgogICAgbXkgJE9wZW5BUEkgPSB7CgogICAgICAgICJvcGVuYXBpIiA9PiAiMy4wLjAiLAogICAgICAgICJpbmZvIiAgICA9PiB7CiAgICAgICAgICAgICJ0aXRsZSIgICAgICAgPT4gIk90b2JvIFByb3ZpZGVyIFJFU1QgQVBJIiwKICAgICAgICAgICAgInZlcnNpb24iICAgICA9PiAiMTEuMS4wIiwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIiA9PiAiUGxlYXNlIGxvZ2luIGludG8gT3RvYm8gdG8gdmlldyB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uISIsCiAgICAgICAgICAgICJjb250YWN0IiAgICAgPT4gewogICAgICAgICAgICAgICAgIm5hbWUiICA9PiAiT3RvYm8gQVBJIFN1cHBvcnQiLAogICAgICAgICAgICAgICAgInVybCIgICA9PiAiaHR0cHM6Ly9vdG9iby5pbyIsCiAgICAgICAgICAgICAgICAiZW1haWwiID0+ICJpbmZvXEBvdG9iby5pbyIKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgICJwYXRocyIgICAgICA9PiB7fSwKICAgICAgICAiY29tcG9uZW50cyIgPT4ge30sCiAgICAgICAgInNlY3VyaXR5IiAgID0+IFtdLAogICAgfTsKCiAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9qYXZhc2NyaXB0JywKICAgICAgICBDb250ZW50ICAgICA9PiAkSlNPTk9iamVjdC0+RW5jb2RlKAogICAgICAgICAgICBEYXRhICAgICA9PiAkT3BlbkFQSSwKICAgICAgICAgICAgU29ydEtleXMgPT4gMQogICAgICAgICksCiAgICAgICAgVHlwZSAgICA9PiAnaW5saW5lJywKICAgICAgICBOb0NhY2hlID0+IDEsCiAgICApOwp9CgoxOwo=</File>
        <File Location="var/httpd/htdocs/js/thirdparty/swagger/favicon-16x16.png" Permission="660" Encode="Base64">iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABNVBMVEVisTRhsTReqzVbpTVXoDdVnTdSlzhRljgvXkAuXUAtWkErV0EzZj40Zj85bz0lTkMkTUMkT0MmTUIkS0IjTEIhSUMkS0IkTEIkTUIlTUIkTkMlTkMcQUQcP0UfQ0QdQ0QfREQgRUMiSUMiSUMjSkInU0EkTEMmUEEiR0IiSEMpVkErWT8kTUElTUIUNkYVNEQVMkcRM0QSNUYQMUIMMUkVK0AAJEkAM00AMzMAAAAAAACF6i2E6SyD6CyC5i2B5Sx/4i6A4S593S583S520jB00DByyjFxyTFwyDFvxjJtxTFtxDFswzJrwDJqvzJpvjNouzNoujNnuDNLjTlKijpKiTpEfztDfzxAeT0+dz05bj44bT44bj82aj81aD8zZT8bPUUbPkUcP0UcPUUeQ0UfREQgRkRgJREvAAAAO3RSTlP09PX19vX39u7u7/Dq6ufh4eDg4+Pf3Nvb2tnY2NvPv7y6rKupqaGZlpSOiYWETDEkHh0fFQwHCgUBAAcHrskAAADYSURBVHjaPc/ZLkNRGIbhz26KjVJpqSKGtjHPc9a7W7OEEhtBjDWUO3XghqQSwVrNTp+j///OXhlrLpdJdg9MLblbxqwPd5RLUDpOjK66YWMwTqRpaM0OhZbo3dskljea9+HyAevxHtoWVAjhfQtr5w3CSfUE8BrgvEDQpxRc3eyfH5wenlQuIO39Sb9x/8uv+bXvmPSjbABPRZznIkGvxkOo7mJtV+FsQsutcFvBuruG9kWZMY+G5pzxlMp/KPKZSUs2cLrzyMWVEyP1OGtlNpvs6p+p5/8DzUo5hMDku9EAAAAASUVORK5CYII=</File>
        <File Location="var/httpd/htdocs/js/thirdparty/swagger/favicon-32x32.png" Permission="660" Encode="Base64">iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAkFBMVEUAAAAQM0QWNUYWNkYXNkYALjoWNUYYOEUXN0YaPEUPMUAUM0QVNUYWNkYWNUYWNUUWNUYVNEYWNkYWNUYWM0eF6i0XNkchR0OB5SwzZj9wyTEvXkA3az5apTZ+4C5DgDt31C9frjU5bz5uxTI/eDxzzjAmT0IsWUEeQkVltzR62S6D6CxIhzpKijpJiDpOkDl4b43lAAAAFXRSTlMAFc304QeZ/vj+ECB3xKlGilPXvS2Ka/h0AAABfklEQVR42oVT2XaCMBAdJRAi7pYJa2QHxbb//3ctSSAUPfa+THLmzj4DBvZpvyauS9b7kw3PWDkWsrD6fFQhQ9dZLfVbC5M88CWCPERr+8fLZodJ5M8QJbjbGL1H2M1fIGfEm+wJN+bGCSc6EXtNS/8FSrq2VX6YDv++XLpJ8SgDWMnwqznGo6alcTbIxB2CHKn8VFikk2mMV2lEnV+CJd9+jJlxXmMr5dW14YCqwgbFpO8FNvJxwwM4TPWPo5QalEsRMAcusXpi58/QUEWPL0AK1ThM5oQCUyXPoPINkdd922VBw4XgTV9zDGWWFrgjIQs4vwvOg6xr+6gbCTqE+DYhlMGX0CF2OknK5gQ2JrkDh/W6TOEbYDeVecKbJtyNXiCfGmW7V93J2hDus1bDfhxWbIZVYDXITA7Lo6E0Ktgg9eB4KWuR44aj7ppBVPazhQH7/M/KgWe9X1qAg8XypT6nxIMJH+T94QCsLvj29IYwZxyO9/F8vCbO9tX5/wDGjEZ7vrgFZwAAAABJRU5ErkJggg==</File>
        <File Location="var/httpd/htdocs/js/thirdparty/swagger/index.css" Permission="660" Encode="Base64">aHRtbCB7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgb3ZlcmZsb3c6IC1tb3otc2Nyb2xsYmFycy12ZXJ0aWNhbDsKICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKfQoKKiwKKjpiZWZvcmUsCio6YWZ0ZXIgewogICAgYm94LXNpemluZzogaW5oZXJpdDsKfQoKYm9keSB7CiAgICBtYXJnaW46IDA7CiAgICBiYWNrZ3JvdW5kOiAjZmFmYWZhOwp9Cg==</File>
        <File Location="var/httpd/htdocs/js/thirdparty/swagger/index.html" Permission="660" Encode="Base64">PCEtLSBIVE1MIGZvciBzdGF0aWMgZGlzdHJpYnV0aW9uIGJ1bmRsZSBidWlsZCAtLT4KPCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KICA8aGVhZD4KICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KICAgIDx0aXRsZT5Td2FnZ2VyIFVJPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4vc3dhZ2dlci11aS5jc3MiIC8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJpbmRleC5jc3MiIC8+CiAgICA8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3BuZyIgaHJlZj0iLi9mYXZpY29uLTMyeDMyLnBuZyIgc2l6ZXM9IjMyeDMyIiAvPgogICAgPGxpbmsgcmVsPSJpY29uIiB0eXBlPSJpbWFnZS9wbmciIGhyZWY9Ii4vZmF2aWNvbi0xNngxNi5wbmciIHNpemVzPSIxNngxNiIgLz4KICA8L2hlYWQ+CgogIDxib2R5PgogICAgPGRpdiBpZD0ic3dhZ2dlci11aSI+PC9kaXY+CiAgICA8c2NyaXB0IHNyYz0iLi9zd2FnZ2VyLXVpLWJ1bmRsZS5qcyIgY2hhcnNldD0iVVRGLTgiPiA8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuL3N3YWdnZXItdWktc3RhbmRhbG9uZS1wcmVzZXQuanMiIGNoYXJzZXQ9IlVURi04Ij4gPC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLi9zd2FnZ2VyLWluaXRpYWxpemVyLmpzIiBjaGFyc2V0PSJVVEYtOCI+IDwvc2NyaXB0PgogIDwvYm9keT4KPC9odG1sPgo=</File>
        <File Location="var/httpd/htdocs/js/thirdparty/swagger/oauth2-redirect.html" Permission="660" Encode="Base64">PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImVuLVVTIj4KPGhlYWQ+CiAgICA8dGl0bGU+U3dhZ2dlciBVSTogT0F1dGgyIFJlZGlyZWN0PC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KPHNjcmlwdD4KICAgICd1c2Ugc3RyaWN0JzsKICAgIGZ1bmN0aW9uIHJ1biAoKSB7CiAgICAgICAgdmFyIG9hdXRoMiA9IHdpbmRvdy5vcGVuZXIuc3dhZ2dlclVJUmVkaXJlY3RPYXV0aDI7CiAgICAgICAgdmFyIHNlbnRTdGF0ZSA9IG9hdXRoMi5zdGF0ZTsKICAgICAgICB2YXIgcmVkaXJlY3RVcmwgPSBvYXV0aDIucmVkaXJlY3RVcmw7CiAgICAgICAgdmFyIGlzVmFsaWQsIHFwLCBhcnI7CgogICAgICAgIGlmICgvY29kZXx0b2tlbnxlcnJvci8udGVzdCh3aW5kb3cubG9jYXRpb24uaGFzaCkpIHsKICAgICAgICAgICAgcXAgPSB3aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSkucmVwbGFjZSgnPycsICcmJyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcXAgPSBsb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpOwogICAgICAgIH0KCiAgICAgICAgYXJyID0gcXAuc3BsaXQoIiYiKTsKICAgICAgICBhcnIuZm9yRWFjaChmdW5jdGlvbiAodixpLF9hcnIpIHsgX2FycltpXSA9ICciJyArIHYucmVwbGFjZSgnPScsICciOiInKSArICciJzt9KTsKICAgICAgICBxcCA9IHFwID8gSlNPTi5wYXJzZSgneycgKyBhcnIuam9pbigpICsgJ30nLAogICAgICAgICAgICAgICAgZnVuY3Rpb24gKGtleSwgdmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4ga2V5ID09PSAiIiA/IHZhbHVlIDogZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICApIDoge307CgogICAgICAgIGlzVmFsaWQgPSBxcC5zdGF0ZSA9PT0gc2VudFN0YXRlOwoKICAgICAgICBpZiAoKAogICAgICAgICAgb2F1dGgyLmF1dGguc2NoZW1hLmdldCgiZmxvdyIpID09PSAiYWNjZXNzQ29kZSIgfHwKICAgICAgICAgIG9hdXRoMi5hdXRoLnNjaGVtYS5nZXQoImZsb3ciKSA9PT0gImF1dGhvcml6YXRpb25Db2RlIiB8fAogICAgICAgICAgb2F1dGgyLmF1dGguc2NoZW1hLmdldCgiZmxvdyIpID09PSAiYXV0aG9yaXphdGlvbl9jb2RlIgogICAgICAgICkgJiYgIW9hdXRoMi5hdXRoLmNvZGUpIHsKICAgICAgICAgICAgaWYgKCFpc1ZhbGlkKSB7CiAgICAgICAgICAgICAgICBvYXV0aDIuZXJyQ2IoewogICAgICAgICAgICAgICAgICAgIGF1dGhJZDogb2F1dGgyLmF1dGgubmFtZSwKICAgICAgICAgICAgICAgICAgICBzb3VyY2U6ICJhdXRoIiwKICAgICAgICAgICAgICAgICAgICBsZXZlbDogIndhcm5pbmciLAogICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICJBdXRob3JpemF0aW9uIG1heSBiZSB1bnNhZmUsIHBhc3NlZCBzdGF0ZSB3YXMgY2hhbmdlZCBpbiBzZXJ2ZXIuIFRoZSBwYXNzZWQgc3RhdGUgd2Fzbid0IHJldHVybmVkIGZyb20gYXV0aCBzZXJ2ZXIuIgogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChxcC5jb2RlKSB7CiAgICAgICAgICAgICAgICBkZWxldGUgb2F1dGgyLnN0YXRlOwogICAgICAgICAgICAgICAgb2F1dGgyLmF1dGguY29kZSA9IHFwLmNvZGU7CiAgICAgICAgICAgICAgICBvYXV0aDIuY2FsbGJhY2soe2F1dGg6IG9hdXRoMi5hdXRoLCByZWRpcmVjdFVybDogcmVkaXJlY3RVcmx9KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGxldCBvYXV0aEVycm9yTXNnOwogICAgICAgICAgICAgICAgaWYgKHFwLmVycm9yKSB7CiAgICAgICAgICAgICAgICAgICAgb2F1dGhFcnJvck1zZyA9ICJbIitxcC5lcnJvcisiXTogIiArCiAgICAgICAgICAgICAgICAgICAgICAgIChxcC5lcnJvcl9kZXNjcmlwdGlvbiA/IHFwLmVycm9yX2Rlc2NyaXB0aW9uKyAiLiAiIDogIm5vIGFjY2Vzc0NvZGUgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyLiAiKSArCiAgICAgICAgICAgICAgICAgICAgICAgIChxcC5lcnJvcl91cmkgPyAiTW9yZSBpbmZvOiAiK3FwLmVycm9yX3VyaSA6ICIiKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBvYXV0aDIuZXJyQ2IoewogICAgICAgICAgICAgICAgICAgIGF1dGhJZDogb2F1dGgyLmF1dGgubmFtZSwKICAgICAgICAgICAgICAgICAgICBzb3VyY2U6ICJhdXRoIiwKICAgICAgICAgICAgICAgICAgICBsZXZlbDogImVycm9yIiwKICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBvYXV0aEVycm9yTXNnIHx8ICJbQXV0aG9yaXphdGlvbiBmYWlsZWRdOiBubyBhY2Nlc3NDb2RlIHJlY2VpdmVkIGZyb20gdGhlIHNlcnZlci4iCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG9hdXRoMi5jYWxsYmFjayh7YXV0aDogb2F1dGgyLmF1dGgsIHRva2VuOiBxcCwgaXNWYWxpZDogaXNWYWxpZCwgcmVkaXJlY3RVcmw6IHJlZGlyZWN0VXJsfSk7CiAgICAgICAgfQogICAgICAgIHdpbmRvdy5jbG9zZSgpOwogICAgfQoKICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlICE9PSAnbG9hZGluZycpIHsKICAgICAgICBydW4oKTsKICAgIH0gZWxzZSB7CiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcnVuKCk7CiAgICAgICAgfSk7CiAgICB9Cjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K</File>
        <File Location="var/httpd/htdocs/js/thirdparty/swagger/swagger-initializer.js" Permission="660" Encode="Base64">d2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogIC8vPGVkaXRvci1mb2xkIGRlc2M9IkNoYW5nZWFibGUgQ29uZmlndXJhdGlvbiBCbG9jayI+CgogIC8vIHRoZSBmb2xsb3dpbmcgbGluZXMgd2lsbCBiZSByZXBsYWNlZCBieSBkb2NrZXIvY29uZmlndXJhdG9yLCB3aGVuIGl0IHJ1bnMgaW4gYSBkb2NrZXItY29udGFpbmVyCiAgd2luZG93LnVpID0gU3dhZ2dlclVJQnVuZGxlKHsKCXVybCA6ICcvb3RvYm8vcHVibGljLnBsP0FjdGlvbj1Td2FnZ2VyJywKICAgIGRvbV9pZDogJyNzd2FnZ2VyLXVpJywKICAgIGRlZXBMaW5raW5nOiB0cnVlLAogICAgcHJlc2V0czogWwogICAgICBTd2FnZ2VyVUlCdW5kbGUucHJlc2V0cy5hcGlzLAogICAgICBTd2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0CiAgICBdLAogICAgcGx1Z2luczogWwogICAgICBTd2FnZ2VyVUlCdW5kbGUucGx1Z2lucy5Eb3dubG9hZFVybAogICAgXSwKICAgIGxheW91dDogIlN0YW5kYWxvbmVMYXlvdXQiCiAgfSk7CgogIC8vPC9lZGl0b3ItZm9sZD4KfTsK</File>
        <File Location="var/httpd/htdocs/js/thirdparty/swagger/swagger-ui-bundle.js" Permission="660" Encode="Base64">LyohIEZvciBsaWNlbnNlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgc3dhZ2dlci11aS1idW5kbGUuanMuTElDRU5TRS50eHQgKi8KIWZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHMsbyl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz1vKCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10sbyk6Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHMuU3dhZ2dlclVJQnVuZGxlPW8oKTpzLlN3YWdnZXJVSUJ1bmRsZT1vKCl9KHRoaXMsKCgpPT4oKCk9Pnt2YXIgcz17MjUxOihzLG8pPT57by5yZWFkPWZ1bmN0aW9uKHMsbyxpLGEsdSl7dmFyIF8sdyx4PTgqdS1hLTEsQz0oMTw8eCktMSxqPUM+PjEsTD0tNyxCPWk/dS0xOjAsJD1pPy0xOjEsVj1zW28rQl07Zm9yKEIrPSQsXz1WJigxPDwtTCktMSxWPj49LUwsTCs9eDtMPjA7Xz0yNTYqXytzW28rQl0sQis9JCxMLT04KTtmb3Iodz1fJigxPDwtTCktMSxfPj49LUwsTCs9YTtMPjA7dz0yNTYqdytzW28rQl0sQis9JCxMLT04KTtpZigwPT09XylfPTEtajtlbHNle2lmKF89PT1DKXJldHVybiB3P05hTjoxLzAqKFY/LTE6MSk7dys9TWF0aC5wb3coMixhKSxfLT1qfXJldHVybihWPy0xOjEpKncqTWF0aC5wb3coMixfLWEpfSxvLndyaXRlPWZ1bmN0aW9uKHMsbyxpLGEsdSxfKXt2YXIgdyx4LEMsaj04Kl8tdS0xLEw9KDE8PGopLTEsQj1MPj4xLCQ9MjM9PT11P01hdGgucG93KDIsLTI0KS1NYXRoLnBvdygyLC03Nyk6MCxWPWE/MDpfLTEsVT1hPzE6LTEsej1vPDB8fDA9PT1vJiYxL288MD8xOjA7Zm9yKG89TWF0aC5hYnMobyksaXNOYU4obyl8fG89PT0xLzA/KHg9aXNOYU4obyk/MTowLHc9TCk6KHc9TWF0aC5mbG9vcihNYXRoLmxvZyhvKS9NYXRoLkxOMiksbyooQz1NYXRoLnBvdygyLC13KSk8MSYmKHctLSxDKj0yKSwobys9dytCPj0xPyQvQzokKk1hdGgucG93KDIsMS1CKSkqQz49MiYmKHcrKyxDLz0yKSx3K0I+PUw/KHg9MCx3PUwpOncrQj49MT8oeD0obypDLTEpKk1hdGgucG93KDIsdSksdys9Qik6KHg9bypNYXRoLnBvdygyLEItMSkqTWF0aC5wb3coMix1KSx3PTApKTt1Pj04O3NbaStWXT0yNTUmeCxWKz1VLHgvPTI1Nix1LT04KTtmb3Iodz13PDx1fHgsais9dTtqPjA7c1tpK1ZdPTI1NSZ3LFYrPVUsdy89MjU2LGotPTgpO3NbaStWLVVdfD0xMjgqen19LDQ2MjoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNDA5NzUpO3MuZXhwb3J0cz1hfSw2NTk6KHMsbyxpKT0+e3ZhciBhPWkoNTE4NzMpLHU9T2JqZWN0LnByb3RvdHlwZSxfPXUuaGFzT3duUHJvcGVydHksdz11LnRvU3RyaW5nLHg9YT9hLnRvU3RyaW5nVGFnOnZvaWQgMDtzLmV4cG9ydHM9ZnVuY3Rpb24gZ2V0UmF3VGFnKHMpe3ZhciBvPV8uY2FsbChzLHgpLGk9c1t4XTt0cnl7c1t4XT12b2lkIDA7dmFyIGE9ITB9Y2F0Y2gocyl7fXZhciB1PXcuY2FsbChzKTtyZXR1cm4gYSYmKG8/c1t4XT1pOmRlbGV0ZSBzW3hdKSx1fX0sNjk0OihzLG8saSk9PnsidXNlIHN0cmljdCI7aSg5MTU5OSk7dmFyIGE9aSgzNzI1Nyk7aSgxMjU2MCkscy5leHBvcnRzPWF9LDk1MzoocyxvLGkpPT57InVzZSBzdHJpY3QiO3MuZXhwb3J0cz1pKDUzMzc1KX0sMTczMzpzPT57dmFyIG89L1teXHgwMC1ceDJmXHgzYS1ceDQwXHg1Yi1ceDYwXHg3Yi1ceDdmXSsvZztzLmV4cG9ydHM9ZnVuY3Rpb24gYXNjaWlXb3JkcyhzKXtyZXR1cm4gcy5tYXRjaChvKXx8W119fSwxODgyOihzLG8saSk9Pnt2YXIgYT1pKDcyNTUyKSx1PWkoMjM4MDUpO3MuZXhwb3J0cz1mdW5jdGlvbiBpc0Z1bmN0aW9uKHMpe2lmKCF1KHMpKXJldHVybiExO3ZhciBvPWEocyk7cmV0dXJuIltvYmplY3QgRnVuY3Rpb25dIj09b3x8IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIj09b3x8IltvYmplY3QgQXN5bmNGdW5jdGlvbl0iPT1vfHwiW29iamVjdCBQcm94eV0iPT1vfX0sMTkwNzoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNDE1MDUpLHU9RnVuY3Rpb24ucHJvdG90eXBlLF89dS5jYWxsLHc9YSYmdS5iaW5kLmJpbmQoXyxfKTtzLmV4cG9ydHM9YT93OmZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBfLmFwcGx5KHMsYXJndW1lbnRzKX19fSwyMjA1OmZ1bmN0aW9uKHMsbyxpKXt2YXIgYTthPXZvaWQgMCE9PWkuZz9pLmc6dGhpcyxzLmV4cG9ydHM9ZnVuY3Rpb24ocyl7aWYocy5DU1MmJnMuQ1NTLmVzY2FwZSlyZXR1cm4gcy5DU1MuZXNjYXBlO3ZhciBjc3NFc2NhcGU9ZnVuY3Rpb24ocyl7aWYoMD09YXJndW1lbnRzLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKCJgQ1NTLmVzY2FwZWAgcmVxdWlyZXMgYW4gYXJndW1lbnQuIik7Zm9yKHZhciBvLGk9U3RyaW5nKHMpLGE9aS5sZW5ndGgsdT0tMSxfPSIiLHc9aS5jaGFyQ29kZUF0KDApOysrdTxhOykwIT0obz1pLmNoYXJDb2RlQXQodSkpP18rPW8+PTEmJm88PTMxfHwxMjc9PW98fDA9PXUmJm8+PTQ4JiZvPD01N3x8MT09dSYmbz49NDgmJm88PTU3JiY0NT09dz8iXFwiK28udG9TdHJpbmcoMTYpKyIgIjowPT11JiYxPT1hJiY0NT09b3x8IShvPj0xMjh8fDQ1PT1vfHw5NT09b3x8bz49NDgmJm88PTU3fHxvPj02NSYmbzw9OTB8fG8+PTk3JiZvPD0xMjIpPyJcXCIraS5jaGFyQXQodSk6aS5jaGFyQXQodSk6Xys9Iu+/vSI7cmV0dXJuIF99O3JldHVybiBzLkNTU3x8KHMuQ1NTPXt9KSxzLkNTUy5lc2NhcGU9Y3NzRXNjYXBlLGNzc0VzY2FwZX0oYSl9LDIyMDk6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYSx1PWkoOTQwNCksXz1mdW5jdGlvbiBwcm9kdWN0aW9uVHlwZUNoZWNrZXIoKXtpbnZhcmlhbnQoITEsIkltbXV0YWJsZVByb3BUeXBlcyB0eXBlIGNoZWNraW5nIGNvZGUgaXMgc3RyaXBwZWQgaW4gcHJvZHVjdGlvbi4iKX07Xy5pc1JlcXVpcmVkPV87dmFyIHc9ZnVuY3Rpb24gZ2V0UHJvZHVjdGlvblR5cGVDaGVja2VyKCl7cmV0dXJuIF99O2Z1bmN0aW9uIGdldFByb3BUeXBlKHMpe3ZhciBvPXR5cGVvZiBzO3JldHVybiBBcnJheS5pc0FycmF5KHMpPyJhcnJheSI6cyBpbnN0YW5jZW9mIFJlZ0V4cD8ib2JqZWN0IjpzIGluc3RhbmNlb2YgdS5JdGVyYWJsZT8iSW1tdXRhYmxlLiIrcy50b1NvdXJjZSgpLnNwbGl0KCIgIilbMF06b31mdW5jdGlvbiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcihzKXtmdW5jdGlvbiBjaGVja1R5cGUobyxpLGEsdSxfLHcpe2Zvcih2YXIgeD1hcmd1bWVudHMubGVuZ3RoLEM9QXJyYXkoeD42P3gtNjowKSxqPTY7ajx4O2orKylDW2otNl09YXJndW1lbnRzW2pdO3JldHVybiB3PXd8fGEsdT11fHwiPDxhbm9ueW1vdXM+PiIsbnVsbCE9aVthXT9zLmFwcGx5KHZvaWQgMCxbaSxhLHUsXyx3XS5jb25jYXQoQykpOm8/bmV3IEVycm9yKCJSZXF1aXJlZCAiK18rIiBgIit3KyJgIHdhcyBub3Qgc3BlY2lmaWVkIGluIGAiK3UrImAuIik6dm9pZCAwfXZhciBvPWNoZWNrVHlwZS5iaW5kKG51bGwsITEpO3JldHVybiBvLmlzUmVxdWlyZWQ9Y2hlY2tUeXBlLmJpbmQobnVsbCwhMCksb31mdW5jdGlvbiBjcmVhdGVJdGVyYWJsZVN1YmNsYXNzVHlwZUNoZWNrZXIocyxvKXtyZXR1cm4gZnVuY3Rpb24gY3JlYXRlSW1tdXRhYmxlVHlwZUNoZWNrZXIocyxvKXtyZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIoKGZ1bmN0aW9uIHZhbGlkYXRlKGksYSx1LF8sdyl7dmFyIHg9aVthXTtpZighbyh4KSl7dmFyIEM9Z2V0UHJvcFR5cGUoeCk7cmV0dXJuIG5ldyBFcnJvcigiSW52YWxpZCAiK18rIiBgIit3KyJgIG9mIHR5cGUgYCIrQysiYCBzdXBwbGllZCB0byBgIit1KyJgLCBleHBlY3RlZCBgIitzKyJgLiIpfXJldHVybiBudWxsfSkpfSgiSXRlcmFibGUuIitzLChmdW5jdGlvbihzKXtyZXR1cm4gdS5JdGVyYWJsZS5pc0l0ZXJhYmxlKHMpJiZvKHMpfSkpfShhPXtsaXN0T2Y6dyxtYXBPZjp3LG9yZGVyZWRNYXBPZjp3LHNldE9mOncsb3JkZXJlZFNldE9mOncsc3RhY2tPZjp3LGl0ZXJhYmxlT2Y6dyxyZWNvcmRPZjp3LHNoYXBlOncsY29udGFpbnM6dyxtYXBDb250YWluczp3LG9yZGVyZWRNYXBDb250YWluczp3LGxpc3Q6XyxtYXA6XyxvcmRlcmVkTWFwOl8sc2V0Ol8sb3JkZXJlZFNldDpfLHN0YWNrOl8sc2VxOl8scmVjb3JkOl8saXRlcmFibGU6X30pLml0ZXJhYmxlLmluZGV4ZWQ9Y3JlYXRlSXRlcmFibGVTdWJjbGFzc1R5cGVDaGVja2VyKCJJbmRleGVkIix1Lkl0ZXJhYmxlLmlzSW5kZXhlZCksYS5pdGVyYWJsZS5rZXllZD1jcmVhdGVJdGVyYWJsZVN1YmNsYXNzVHlwZUNoZWNrZXIoIktleWVkIix1Lkl0ZXJhYmxlLmlzS2V5ZWQpLHMuZXhwb3J0cz1hfSwyNDA0OihzLG8saSk9Pnt2YXIgYT1pKDYwMjcwKTtzLmV4cG9ydHM9ZnVuY3Rpb24gaXNFcXVhbChzLG8pe3JldHVybiBhKHMsbyl9fSwyNTIzOnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZUZpbmRJbmRleChzLG8saSxhKXtmb3IodmFyIHU9cy5sZW5ndGgsXz1pKyhhPzE6LTEpO2E/Xy0tOisrXzx1OylpZihvKHNbX10sXyxzKSlyZXR1cm4gXztyZXR1cm4tMX19LDI1MzI6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDQ1OTUxKSx1PU9iamVjdC5kZWZpbmVQcm9wZXJ0eTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvKXt0cnl7dShhLHMse3ZhbHVlOm8sY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSl9Y2F0Y2goaSl7YVtzXT1vfXJldHVybiBvfX0sMjY5NDoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNjkyNSk7ZnVuY3Rpb24gZW1wdHlGdW5jdGlvbigpe31mdW5jdGlvbiBlbXB0eUZ1bmN0aW9uV2l0aFJlc2V0KCl7fWVtcHR5RnVuY3Rpb25XaXRoUmVzZXQucmVzZXRXYXJuaW5nQ2FjaGU9ZW1wdHlGdW5jdGlvbixzLmV4cG9ydHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBzaGltKHMsbyxpLHUsXyx3KXtpZih3IT09YSl7dmFyIHg9bmV3IEVycm9yKCJDYWxsaW5nIFByb3BUeXBlcyB2YWxpZGF0b3JzIGRpcmVjdGx5IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGBwcm9wLXR5cGVzYCBwYWNrYWdlLiBVc2UgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKCkgdG8gY2FsbCB0aGVtLiBSZWFkIG1vcmUgYXQgaHR0cDovL2ZiLm1lL3VzZS1jaGVjay1wcm9wLXR5cGVzIik7dGhyb3cgeC5uYW1lPSJJbnZhcmlhbnQgVmlvbGF0aW9uIix4fX1mdW5jdGlvbiBnZXRTaGltKCl7cmV0dXJuIHNoaW19c2hpbS5pc1JlcXVpcmVkPXNoaW07dmFyIHM9e2FycmF5OnNoaW0sYmlnaW50OnNoaW0sYm9vbDpzaGltLGZ1bmM6c2hpbSxudW1iZXI6c2hpbSxvYmplY3Q6c2hpbSxzdHJpbmc6c2hpbSxzeW1ib2w6c2hpbSxhbnk6c2hpbSxhcnJheU9mOmdldFNoaW0sZWxlbWVudDpzaGltLGVsZW1lbnRUeXBlOnNoaW0saW5zdGFuY2VPZjpnZXRTaGltLG5vZGU6c2hpbSxvYmplY3RPZjpnZXRTaGltLG9uZU9mOmdldFNoaW0sb25lT2ZUeXBlOmdldFNoaW0sc2hhcGU6Z2V0U2hpbSxleGFjdDpnZXRTaGltLGNoZWNrUHJvcFR5cGVzOmVtcHR5RnVuY3Rpb25XaXRoUmVzZXQscmVzZXRXYXJuaW5nQ2FjaGU6ZW1wdHlGdW5jdGlvbn07cmV0dXJuIHMuUHJvcFR5cGVzPXMsc319LDI4NzQ6cz0+e3MuZXhwb3J0cz17fX0sMjg3NToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMjMwNDUpLHU9aSg4MDM3Nik7cy5leHBvcnRzPU9iamVjdC5rZXlzfHxmdW5jdGlvbiBrZXlzKHMpe3JldHVybiBhKHMsdSl9fSwyOTU1OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGEsdT1pKDY1NjA2KTtmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkocyxvLGkpe3JldHVybihvPWZ1bmN0aW9uIF90b1Byb3BlcnR5S2V5KHMpe3ZhciBvPWZ1bmN0aW9uIF90b1ByaW1pdGl2ZShzLG8pe2lmKCJvYmplY3QiIT10eXBlb2Ygc3x8bnVsbD09PXMpcmV0dXJuIHM7dmFyIGk9c1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWkpe3ZhciBhPWkuY2FsbChzLG98fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBhKXJldHVybiBhO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bz9TdHJpbmc6TnVtYmVyKShzKX0ocywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBvP286U3RyaW5nKG8pfShvKSlpbiBzP09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLG8se3ZhbHVlOmksZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpzW29dPWksc312YXIgXz1pKDg2MjM4KSx3PVN5bWJvbCgibGFzdFJlc29sdmUiKSx4PVN5bWJvbCgibGFzdFJlamVjdCIpLEM9U3ltYm9sKCJlcnJvciIpLGo9U3ltYm9sKCJlbmRlZCIpLEw9U3ltYm9sKCJsYXN0UHJvbWlzZSIpLEI9U3ltYm9sKCJoYW5kbGVQcm9taXNlIiksJD1TeW1ib2woInN0cmVhbSIpO2Z1bmN0aW9uIGNyZWF0ZUl0ZXJSZXN1bHQocyxvKXtyZXR1cm57dmFsdWU6cyxkb25lOm99fWZ1bmN0aW9uIHJlYWRBbmRSZXNvbHZlKHMpe3ZhciBvPXNbd107aWYobnVsbCE9PW8pe3ZhciBpPXNbJF0ucmVhZCgpO251bGwhPT1pJiYoc1tMXT1udWxsLHNbd109bnVsbCxzW3hdPW51bGwsbyhjcmVhdGVJdGVyUmVzdWx0KGksITEpKSl9fWZ1bmN0aW9uIG9uUmVhZGFibGUocyl7dS5uZXh0VGljayhyZWFkQW5kUmVzb2x2ZSxzKX12YXIgVj1PYmplY3QuZ2V0UHJvdG90eXBlT2YoKGZ1bmN0aW9uKCl7fSkpLFU9T2JqZWN0LnNldFByb3RvdHlwZU9mKChfZGVmaW5lUHJvcGVydHkoYT17Z2V0IHN0cmVhbSgpe3JldHVybiB0aGlzWyRdfSxuZXh0OmZ1bmN0aW9uIG5leHQoKXt2YXIgcz10aGlzLG89dGhpc1tDXTtpZihudWxsIT09bylyZXR1cm4gUHJvbWlzZS5yZWplY3Qobyk7aWYodGhpc1tqXSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGNyZWF0ZUl0ZXJSZXN1bHQodm9pZCAwLCEwKSk7aWYodGhpc1skXS5kZXN0cm95ZWQpcmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihvLGkpe3UubmV4dFRpY2soKGZ1bmN0aW9uKCl7c1tDXT9pKHNbQ10pOm8oY3JlYXRlSXRlclJlc3VsdCh2b2lkIDAsITApKX0pKX0pKTt2YXIgaSxhPXRoaXNbTF07aWYoYSlpPW5ldyBQcm9taXNlKGZ1bmN0aW9uIHdyYXBGb3JOZXh0KHMsbyl7cmV0dXJuIGZ1bmN0aW9uKGksYSl7cy50aGVuKChmdW5jdGlvbigpe29bal0/aShjcmVhdGVJdGVyUmVzdWx0KHZvaWQgMCwhMCkpOm9bQl0oaSxhKX0pLGEpfX0oYSx0aGlzKSk7ZWxzZXt2YXIgXz10aGlzWyRdLnJlYWQoKTtpZihudWxsIT09XylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGNyZWF0ZUl0ZXJSZXN1bHQoXywhMSkpO2k9bmV3IFByb21pc2UodGhpc1tCXSl9cmV0dXJuIHRoaXNbTF09aSxpfX0sU3ltYm9sLmFzeW5jSXRlcmF0b3IsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksX2RlZmluZVByb3BlcnR5KGEsInJldHVybiIsKGZ1bmN0aW9uIF9yZXR1cm4oKXt2YXIgcz10aGlzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24obyxpKXtzWyRdLmRlc3Ryb3kobnVsbCwoZnVuY3Rpb24ocyl7cz9pKHMpOm8oY3JlYXRlSXRlclJlc3VsdCh2b2lkIDAsITApKX0pKX0pKX0pKSxhKSxWKTtzLmV4cG9ydHM9ZnVuY3Rpb24gY3JlYXRlUmVhZGFibGVTdHJlYW1Bc3luY0l0ZXJhdG9yKHMpe3ZhciBvLGk9T2JqZWN0LmNyZWF0ZShVLChfZGVmaW5lUHJvcGVydHkobz17fSwkLHt2YWx1ZTpzLHdyaXRhYmxlOiEwfSksX2RlZmluZVByb3BlcnR5KG8sdyx7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0pLF9kZWZpbmVQcm9wZXJ0eShvLHgse3ZhbHVlOm51bGwsd3JpdGFibGU6ITB9KSxfZGVmaW5lUHJvcGVydHkobyxDLHt2YWx1ZTpudWxsLHdyaXRhYmxlOiEwfSksX2RlZmluZVByb3BlcnR5KG8saix7dmFsdWU6cy5fcmVhZGFibGVTdGF0ZS5lbmRFbWl0dGVkLHdyaXRhYmxlOiEwfSksX2RlZmluZVByb3BlcnR5KG8sQix7dmFsdWU6ZnVuY3Rpb24gdmFsdWUocyxvKXt2YXIgYT1pWyRdLnJlYWQoKTthPyhpW0xdPW51bGwsaVt3XT1udWxsLGlbeF09bnVsbCxzKGNyZWF0ZUl0ZXJSZXN1bHQoYSwhMSkpKTooaVt3XT1zLGlbeF09byl9LHdyaXRhYmxlOiEwfSksbykpO3JldHVybiBpW0xdPW51bGwsXyhzLChmdW5jdGlvbihzKXtpZihzJiYiRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0UiIT09cy5jb2RlKXt2YXIgbz1pW3hdO3JldHVybiBudWxsIT09byYmKGlbTF09bnVsbCxpW3ddPW51bGwsaVt4XT1udWxsLG8ocykpLHZvaWQoaVtDXT1zKX12YXIgYT1pW3ddO251bGwhPT1hJiYoaVtMXT1udWxsLGlbd109bnVsbCxpW3hdPW51bGwsYShjcmVhdGVJdGVyUmVzdWx0KHZvaWQgMCwhMCkpKSxpW2pdPSEwfSkpLHMub24oInJlYWRhYmxlIixvblJlYWRhYmxlLmJpbmQobnVsbCxpKSksaX19LDMxMTA6KHMsbyxpKT0+e2NvbnN0IGE9aSg1MTg3KSx1PWkoODUwMTUpLF89aSg5ODAyMyksdz1pKDUzODEyKSx4PWkoMjM4MDUpLEM9aSg4NTEwNSksaj1pKDg2ODA0KTtjbGFzcyBOYW1lc3BhY2V7Y29uc3RydWN0b3Iocyl7dGhpcy5lbGVtZW50TWFwPXt9LHRoaXMuZWxlbWVudERldGVjdGlvbj1bXSx0aGlzLkVsZW1lbnQ9ai5FbGVtZW50LHRoaXMuS2V5VmFsdWVQYWlyPWouS2V5VmFsdWVQYWlyLHMmJnMubm9EZWZhdWx0fHx0aGlzLnVzZURlZmF1bHQoKSx0aGlzLl9hdHRyaWJ1dGVFbGVtZW50S2V5cz1bXSx0aGlzLl9hdHRyaWJ1dGVFbGVtZW50QXJyYXlLZXlzPVtdfXVzZShzKXtyZXR1cm4gcy5uYW1lc3BhY2UmJnMubmFtZXNwYWNlKHtiYXNlOnRoaXN9KSxzLmxvYWQmJnMubG9hZCh7YmFzZTp0aGlzfSksdGhpc311c2VEZWZhdWx0KCl7cmV0dXJuIHRoaXMucmVnaXN0ZXIoIm51bGwiLGouTnVsbEVsZW1lbnQpLnJlZ2lzdGVyKCJzdHJpbmciLGouU3RyaW5nRWxlbWVudCkucmVnaXN0ZXIoIm51bWJlciIsai5OdW1iZXJFbGVtZW50KS5yZWdpc3RlcigiYm9vbGVhbiIsai5Cb29sZWFuRWxlbWVudCkucmVnaXN0ZXIoImFycmF5IixqLkFycmF5RWxlbWVudCkucmVnaXN0ZXIoIm9iamVjdCIsai5PYmplY3RFbGVtZW50KS5yZWdpc3RlcigibWVtYmVyIixqLk1lbWJlckVsZW1lbnQpLnJlZ2lzdGVyKCJyZWYiLGouUmVmRWxlbWVudCkucmVnaXN0ZXIoImxpbmsiLGouTGlua0VsZW1lbnQpLHRoaXMuZGV0ZWN0KGEsai5OdWxsRWxlbWVudCwhMSkuZGV0ZWN0KHUsai5TdHJpbmdFbGVtZW50LCExKS5kZXRlY3QoXyxqLk51bWJlckVsZW1lbnQsITEpLmRldGVjdCh3LGouQm9vbGVhbkVsZW1lbnQsITEpLmRldGVjdChBcnJheS5pc0FycmF5LGouQXJyYXlFbGVtZW50LCExKS5kZXRlY3QoeCxqLk9iamVjdEVsZW1lbnQsITEpLHRoaXN9cmVnaXN0ZXIocyxvKXtyZXR1cm4gdGhpcy5fZWxlbWVudHM9dm9pZCAwLHRoaXMuZWxlbWVudE1hcFtzXT1vLHRoaXN9dW5yZWdpc3RlcihzKXtyZXR1cm4gdGhpcy5fZWxlbWVudHM9dm9pZCAwLGRlbGV0ZSB0aGlzLmVsZW1lbnRNYXBbc10sdGhpc31kZXRlY3QocyxvLGkpe3JldHVybiB2b2lkIDA9PT1pfHxpP3RoaXMuZWxlbWVudERldGVjdGlvbi51bnNoaWZ0KFtzLG9dKTp0aGlzLmVsZW1lbnREZXRlY3Rpb24ucHVzaChbcyxvXSksdGhpc310b0VsZW1lbnQocyl7aWYocyBpbnN0YW5jZW9mIHRoaXMuRWxlbWVudClyZXR1cm4gcztsZXQgbztmb3IobGV0IGk9MDtpPHRoaXMuZWxlbWVudERldGVjdGlvbi5sZW5ndGg7aSs9MSl7Y29uc3QgYT10aGlzLmVsZW1lbnREZXRlY3Rpb25baV1bMF0sdT10aGlzLmVsZW1lbnREZXRlY3Rpb25baV1bMV07aWYoYShzKSl7bz1uZXcgdShzKTticmVha319cmV0dXJuIG99Z2V0RWxlbWVudENsYXNzKHMpe2NvbnN0IG89dGhpcy5lbGVtZW50TWFwW3NdO3JldHVybiB2b2lkIDA9PT1vP3RoaXMuRWxlbWVudDpvfWZyb21SZWZyYWN0KHMpe3JldHVybiB0aGlzLnNlcmlhbGlzZXIuZGVzZXJpYWxpc2Uocyl9dG9SZWZyYWN0KHMpe3JldHVybiB0aGlzLnNlcmlhbGlzZXIuc2VyaWFsaXNlKHMpfWdldCBlbGVtZW50cygpe3JldHVybiB2b2lkIDA9PT10aGlzLl9lbGVtZW50cyYmKHRoaXMuX2VsZW1lbnRzPXtFbGVtZW50OnRoaXMuRWxlbWVudH0sT2JqZWN0LmtleXModGhpcy5lbGVtZW50TWFwKS5mb3JFYWNoKChzPT57Y29uc3Qgbz1zWzBdLnRvVXBwZXJDYXNlKCkrcy5zdWJzdHIoMSk7dGhpcy5fZWxlbWVudHNbb109dGhpcy5lbGVtZW50TWFwW3NdfSkpKSx0aGlzLl9lbGVtZW50c31nZXQgc2VyaWFsaXNlcigpe3JldHVybiBuZXcgQyh0aGlzKX19Qy5wcm90b3R5cGUuTmFtZXNwYWNlPU5hbWVzcGFjZSxzLmV4cG9ydHM9TmFtZXNwYWNlfSwzMTIxOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg2NTQ4MiksdT1NYXRoLm1pbjtzLmV4cG9ydHM9ZnVuY3Rpb24ocyl7dmFyIG89YShzKTtyZXR1cm4gbz4wP3Uobyw5MDA3MTk5MjU0NzQwOTkxKTowfX0sMzIwOToocyxvLGkpPT57dmFyIGE9aSg5MTU5NiksdT1pKDUzMzIwKSxfPWkoMzYzMDYpLHc9Il9fbG9kYXNoX3BsYWNlaG9sZGVyX18iLHg9MTI4LEM9TWF0aC5taW47cy5leHBvcnRzPWZ1bmN0aW9uIG1lcmdlRGF0YShzLG8pe3ZhciBpPXNbMV0saj1vWzFdLEw9aXxqLEI9TDwxMzEsJD1qPT14JiY4PT1pfHxqPT14JiYyNTY9PWkmJnNbN10ubGVuZ3RoPD1vWzhdfHwzODQ9PWomJm9bN10ubGVuZ3RoPD1vWzhdJiY4PT1pO2lmKCFCJiYhJClyZXR1cm4gczsxJmomJihzWzJdPW9bMl0sTHw9MSZpPzA6NCk7dmFyIFY9b1szXTtpZihWKXt2YXIgVT1zWzNdO3NbM109VT9hKFUsVixvWzRdKTpWLHNbNF09VT9fKHNbM10sdyk6b1s0XX1yZXR1cm4oVj1vWzVdKSYmKFU9c1s1XSxzWzVdPVU/dShVLFYsb1s2XSk6VixzWzZdPVU/XyhzWzVdLHcpOm9bNl0pLChWPW9bN10pJiYoc1s3XT1WKSxqJngmJihzWzhdPW51bGw9PXNbOF0/b1s4XTpDKHNbOF0sb1s4XSkpLG51bGw9PXNbOV0mJihzWzldPW9bOV0pLHNbMF09b1swXSxzWzFdPUwsc319LDM2NTA6KHMsbyxpKT0+e3ZhciBhPWkoNzQzMzUpKE9iamVjdC5rZXlzLE9iamVjdCk7cy5leHBvcnRzPWF9LDM2NTY6KHMsbyxpKT0+e3M9aS5ubWQocyk7dmFyIGE9aSg5MzI1KSx1PWkoODk5MzUpLF89byYmIW8ubm9kZVR5cGUmJm8sdz1fJiZzJiYhcy5ub2RlVHlwZSYmcyx4PXcmJncuZXhwb3J0cz09PV8/YS5CdWZmZXI6dm9pZCAwLEM9KHg/eC5pc0J1ZmZlcjp2b2lkIDApfHx1O3MuZXhwb3J0cz1DfSw0NTA5OihzLG8saSk9Pnt2YXIgYT1pKDEyNjUxKTtzLmV4cG9ydHM9ZnVuY3Rpb24gbWFwQ2FjaGVIYXMocyl7cmV0dXJuIGEodGhpcyxzKS5oYXMocyl9fSw0NjQwOnM9PnsidXNlIHN0cmljdCI7dmFyIG89U3RyaW5nO3MuZXhwb3J0cz1mdW5jdGlvbihzKXt0cnl7cmV0dXJuIG8ocyl9Y2F0Y2gocyl7cmV0dXJuIk9iamVjdCJ9fX0sNDY2NDoocyxvLGkpPT57dmFyIGE9aSg3OTc3MCksdT1pKDYzMzQ1KSxfPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUsdz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLHg9dz9mdW5jdGlvbihzKXtyZXR1cm4gbnVsbD09cz9bXToocz1PYmplY3QocyksYSh3KHMpLChmdW5jdGlvbihvKXtyZXR1cm4gXy5jYWxsKHMsbyl9KSkpfTp1O3MuZXhwb3J0cz14fSw0OTAxOihzLG8saSk9Pnt2YXIgYT1pKDcyNTUyKSx1PWkoMzAyOTQpLF89aSg0MDM0Niksdz17fTt3WyJbb2JqZWN0IEZsb2F0MzJBcnJheV0iXT13WyJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXT13WyJbb2JqZWN0IEludDhBcnJheV0iXT13WyJbb2JqZWN0IEludDE2QXJyYXldIl09d1siW29iamVjdCBJbnQzMkFycmF5XSJdPXdbIltvYmplY3QgVWludDhBcnJheV0iXT13WyJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSJdPXdbIltvYmplY3QgVWludDE2QXJyYXldIl09d1siW29iamVjdCBVaW50MzJBcnJheV0iXT0hMCx3WyJbb2JqZWN0IEFyZ3VtZW50c10iXT13WyJbb2JqZWN0IEFycmF5XSJdPXdbIltvYmplY3QgQXJyYXlCdWZmZXJdIl09d1siW29iamVjdCBCb29sZWFuXSJdPXdbIltvYmplY3QgRGF0YVZpZXddIl09d1siW29iamVjdCBEYXRlXSJdPXdbIltvYmplY3QgRXJyb3JdIl09d1siW29iamVjdCBGdW5jdGlvbl0iXT13WyJbb2JqZWN0IE1hcF0iXT13WyJbb2JqZWN0IE51bWJlcl0iXT13WyJbb2JqZWN0IE9iamVjdF0iXT13WyJbb2JqZWN0IFJlZ0V4cF0iXT13WyJbb2JqZWN0IFNldF0iXT13WyJbb2JqZWN0IFN0cmluZ10iXT13WyJbb2JqZWN0IFdlYWtNYXBdIl09ITEscy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VJc1R5cGVkQXJyYXkocyl7cmV0dXJuIF8ocykmJnUocy5sZW5ndGgpJiYhIXdbYShzKV19fSw0OTkzOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgxNjk0NiksdT1pKDc0MjM5KTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyl7cmV0dXJuIGEodShzKSl9fSw1MTg3OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gaXNOdWxsKHMpe3JldHVybiBudWxsPT09c319LDU0MTk6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbihzLG8saSxhKXt2YXIgdT1uZXcgQmxvYih2b2lkIDAhPT1hP1thLHNdOltzXSx7dHlwZTppfHwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIn0pO2lmKHZvaWQgMCE9PXdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlQmxvYil3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZUJsb2IodSxvKTtlbHNle3ZhciBfPXdpbmRvdy5VUkwmJndpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMP3dpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKHUpOndpbmRvdy53ZWJraXRVUkwuY3JlYXRlT2JqZWN0VVJMKHUpLHc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO3cuc3R5bGUuZGlzcGxheT0ibm9uZSIsdy5ocmVmPV8sdy5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIixvKSx2b2lkIDA9PT13LmRvd25sb2FkJiZ3LnNldEF0dHJpYnV0ZSgidGFyZ2V0IiwiX2JsYW5rIiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh3KSx3LmNsaWNrKCksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHcpLHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKF8pfSksMjAwKX19fSw1NTU2OihzLG8saSk9PntzLmV4cG9ydHM9aSgyNjk0KSgpfSw1ODYxOihzLG8saSk9Pnt2YXIgYT1pKDU1NTgwKSx1PWkoNjgyMjMpLF89aSgzMjgwNCksdz1pKDc2NTQ1KSx4PWkoMjgzMDMpLEM9aSg3MjU1Miksaj1pKDQ3NDczKSxMPSJbb2JqZWN0IE1hcF0iLEI9IltvYmplY3QgUHJvbWlzZV0iLCQ9IltvYmplY3QgU2V0XSIsVj0iW29iamVjdCBXZWFrTWFwXSIsVT0iW29iamVjdCBEYXRhVmlld10iLHo9aihhKSxZPWoodSksWj1qKF8pLGVlPWoodyksaWU9aih4KSxhZT1DOyhhJiZhZShuZXcgYShuZXcgQXJyYXlCdWZmZXIoMSkpKSE9VXx8dSYmYWUobmV3IHUpIT1MfHxfJiZhZShfLnJlc29sdmUoKSkhPUJ8fHcmJmFlKG5ldyB3KSE9JHx8eCYmYWUobmV3IHgpIT1WKSYmKGFlPWZ1bmN0aW9uKHMpe3ZhciBvPUMocyksaT0iW29iamVjdCBPYmplY3RdIj09bz9zLmNvbnN0cnVjdG9yOnZvaWQgMCxhPWk/aihpKToiIjtpZihhKXN3aXRjaChhKXtjYXNlIHo6cmV0dXJuIFU7Y2FzZSBZOnJldHVybiBMO2Nhc2UgWjpyZXR1cm4gQjtjYXNlIGVlOnJldHVybiAkO2Nhc2UgaWU6cmV0dXJuIFZ9cmV0dXJuIG99KSxzLmV4cG9ydHM9YWV9LDYwNDg6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBuZWdhdGUocyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHMpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBmdW5jdGlvbiIpO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPWFyZ3VtZW50cztzd2l0Y2goby5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4hcy5jYWxsKHRoaXMpO2Nhc2UgMTpyZXR1cm4hcy5jYWxsKHRoaXMsb1swXSk7Y2FzZSAyOnJldHVybiFzLmNhbGwodGhpcyxvWzBdLG9bMV0pO2Nhc2UgMzpyZXR1cm4hcy5jYWxsKHRoaXMsb1swXSxvWzFdLG9bMl0pfXJldHVybiFzLmFwcGx5KHRoaXMsbyl9fX0sNjIwNTpzPT57cy5leHBvcnRzPXtST09UOjAsR1JPVVA6MSxQT1NJVElPTjoyLFNFVDozLFJBTkdFOjQsUkVQRVRJVElPTjo1LFJFRkVSRU5DRTo2LENIQVI6N319LDYyMzM6KHMsbyxpKT0+e2NvbnN0IGE9aSg2MDQ4KSx1PWkoMTAzMTYpLF89aSg5MjM0MCk7Y2xhc3MgQXJyYXlFbGVtZW50IGV4dGVuZHMgdXtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIoc3x8W10sbyxpKSx0aGlzLmVsZW1lbnQ9ImFycmF5In1wcmltaXRpdmUoKXtyZXR1cm4iYXJyYXkifWdldChzKXtyZXR1cm4gdGhpcy5jb250ZW50W3NdfWdldFZhbHVlKHMpe2NvbnN0IG89dGhpcy5nZXQocyk7aWYobylyZXR1cm4gby50b1ZhbHVlKCl9Z2V0SW5kZXgocyl7cmV0dXJuIHRoaXMuY29udGVudFtzXX1zZXQocyxvKXtyZXR1cm4gdGhpcy5jb250ZW50W3NdPXRoaXMucmVmcmFjdChvKSx0aGlzfXJlbW92ZShzKXtjb25zdCBvPXRoaXMuY29udGVudC5zcGxpY2UocywxKTtyZXR1cm4gby5sZW5ndGg/b1swXTpudWxsfW1hcChzLG8pe3JldHVybiB0aGlzLmNvbnRlbnQubWFwKHMsbyl9ZmxhdE1hcChzLG8pe3JldHVybiB0aGlzLm1hcChzLG8pLnJlZHVjZSgoKHMsbyk9PnMuY29uY2F0KG8pKSxbXSl9Y29tcGFjdE1hcChzLG8pe2NvbnN0IGk9W107cmV0dXJuIHRoaXMuZm9yRWFjaCgoYT0+e2NvbnN0IHU9cy5iaW5kKG8pKGEpO3UmJmkucHVzaCh1KX0pKSxpfWZpbHRlcihzLG8pe3JldHVybiBuZXcgXyh0aGlzLmNvbnRlbnQuZmlsdGVyKHMsbykpfXJlamVjdChzLG8pe3JldHVybiB0aGlzLmZpbHRlcihhKHMpLG8pfXJlZHVjZShzLG8pe2xldCBpLGE7dm9pZCAwIT09bz8oaT0wLGE9dGhpcy5yZWZyYWN0KG8pKTooaT0xLGE9Im9iamVjdCI9PT10aGlzLnByaW1pdGl2ZSgpP3RoaXMuZmlyc3QudmFsdWU6dGhpcy5maXJzdCk7Zm9yKGxldCBvPWk7bzx0aGlzLmxlbmd0aDtvKz0xKXtjb25zdCBpPXRoaXMuY29udGVudFtvXTthPSJvYmplY3QiPT09dGhpcy5wcmltaXRpdmUoKT90aGlzLnJlZnJhY3QocyhhLGkudmFsdWUsaS5rZXksaSx0aGlzKSk6dGhpcy5yZWZyYWN0KHMoYSxpLG8sdGhpcykpfXJldHVybiBhfWZvckVhY2gocyxvKXt0aGlzLmNvbnRlbnQuZm9yRWFjaCgoKGksYSk9PntzLmJpbmQobykoaSx0aGlzLnJlZnJhY3QoYSkpfSkpfXNoaWZ0KCl7cmV0dXJuIHRoaXMuY29udGVudC5zaGlmdCgpfXVuc2hpZnQocyl7dGhpcy5jb250ZW50LnVuc2hpZnQodGhpcy5yZWZyYWN0KHMpKX1wdXNoKHMpe3JldHVybiB0aGlzLmNvbnRlbnQucHVzaCh0aGlzLnJlZnJhY3QocykpLHRoaXN9YWRkKHMpe3RoaXMucHVzaChzKX1maW5kRWxlbWVudHMocyxvKXtjb25zdCBpPW98fHt9LGE9ISFpLnJlY3Vyc2l2ZSx1PXZvaWQgMD09PWkucmVzdWx0cz9bXTppLnJlc3VsdHM7cmV0dXJuIHRoaXMuZm9yRWFjaCgoKG8saSxfKT0+e2EmJnZvaWQgMCE9PW8uZmluZEVsZW1lbnRzJiZvLmZpbmRFbGVtZW50cyhzLHtyZXN1bHRzOnUscmVjdXJzaXZlOmF9KSxzKG8saSxfKSYmdS5wdXNoKG8pfSkpLHV9ZmluZChzKXtyZXR1cm4gbmV3IF8odGhpcy5maW5kRWxlbWVudHMocyx7cmVjdXJzaXZlOiEwfSkpfWZpbmRCeUVsZW1lbnQocyl7cmV0dXJuIHRoaXMuZmluZCgobz0+by5lbGVtZW50PT09cykpfWZpbmRCeUNsYXNzKHMpe3JldHVybiB0aGlzLmZpbmQoKG89Pm8uY2xhc3Nlcy5pbmNsdWRlcyhzKSkpfWdldEJ5SWQocyl7cmV0dXJuIHRoaXMuZmluZCgobz0+by5pZC50b1ZhbHVlKCk9PT1zKSkuZmlyc3R9aW5jbHVkZXMocyl7cmV0dXJuIHRoaXMuY29udGVudC5zb21lKChvPT5vLmVxdWFscyhzKSkpfWNvbnRhaW5zKHMpe3JldHVybiB0aGlzLmluY2x1ZGVzKHMpfWVtcHR5KCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKFtdKX0iZmFudGFzeS1sYW5kL2VtcHR5Iigpe3JldHVybiB0aGlzLmVtcHR5KCl9Y29uY2F0KHMpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLmNvbnRlbnQuY29uY2F0KHMuY29udGVudCkpfSJmYW50YXN5LWxhbmQvY29uY2F0IihzKXtyZXR1cm4gdGhpcy5jb25jYXQocyl9ImZhbnRhc3ktbGFuZC9tYXAiKHMpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLm1hcChzKSl9ImZhbnRhc3ktbGFuZC9jaGFpbiIocyl7cmV0dXJuIHRoaXMubWFwKChvPT5zKG8pKSx0aGlzKS5yZWR1Y2UoKChzLG8pPT5zLmNvbmNhdChvKSksdGhpcy5lbXB0eSgpKX0iZmFudGFzeS1sYW5kL2ZpbHRlciIocyl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMuY29udGVudC5maWx0ZXIocykpfSJmYW50YXN5LWxhbmQvcmVkdWNlIihzLG8pe3JldHVybiB0aGlzLmNvbnRlbnQucmVkdWNlKHMsbyl9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmNvbnRlbnQubGVuZ3RofWdldCBpc0VtcHR5KCl7cmV0dXJuIDA9PT10aGlzLmNvbnRlbnQubGVuZ3RofWdldCBmaXJzdCgpe3JldHVybiB0aGlzLmdldEluZGV4KDApfWdldCBzZWNvbmQoKXtyZXR1cm4gdGhpcy5nZXRJbmRleCgxKX1nZXQgbGFzdCgpe3JldHVybiB0aGlzLmdldEluZGV4KHRoaXMubGVuZ3RoLTEpfX1BcnJheUVsZW1lbnQuZW1wdHk9ZnVuY3Rpb24gZW1wdHkoKXtyZXR1cm4gbmV3IHRoaXN9LEFycmF5RWxlbWVudFsiZmFudGFzeS1sYW5kL2VtcHR5Il09QXJyYXlFbGVtZW50LmVtcHR5LCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiYoQXJyYXlFbGVtZW50LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uIHN5bWJvbCgpe3JldHVybiB0aGlzLmNvbnRlbnRbU3ltYm9sLml0ZXJhdG9yXSgpfSkscy5leHBvcnRzPUFycmF5RWxlbWVudH0sNjQ5OToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMTkwNyksdT0wLF89TWF0aC5yYW5kb20oKSx3PWEoMS4udG9TdHJpbmcpO3MuZXhwb3J0cz1mdW5jdGlvbihzKXtyZXR1cm4iU3ltYm9sKCIrKHZvaWQgMD09PXM/IiI6cykrIilfIit3KCsrdStfLDM2KX19LDY5MjU6cz0+eyJ1c2Ugc3RyaWN0IjtzLmV4cG9ydHM9IlNFQ1JFVF9ET19OT1RfUEFTU19USElTX09SX1lPVV9XSUxMX0JFX0ZJUkVEIn0sNzA1NzoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMTE0NzApLmNoYXJBdCx1PWkoOTAxNjApLF89aSg2NDkzMiksdz1pKDYwMTgzKSx4PWkoNTk1NTApLEM9IlN0cmluZyBJdGVyYXRvciIsaj1fLnNldCxMPV8uZ2V0dGVyRm9yKEMpO3coU3RyaW5nLCJTdHJpbmciLChmdW5jdGlvbihzKXtqKHRoaXMse3R5cGU6QyxzdHJpbmc6dShzKSxpbmRleDowfSl9KSwoZnVuY3Rpb24gbmV4dCgpe3ZhciBzLG89TCh0aGlzKSxpPW8uc3RyaW5nLHU9by5pbmRleDtyZXR1cm4gdT49aS5sZW5ndGg/eCh2b2lkIDAsITApOihzPWEoaSx1KSxvLmluZGV4Kz1zLmxlbmd0aCx4KHMsITEpKX0pKX0sNzMwOToocyxvLGkpPT57dmFyIGE9aSg2MjAwNikoaSgyNDcxMykpO3MuZXhwb3J0cz1hfSw3Mzc2OnM9PnsidXNlIHN0cmljdCI7cy5leHBvcnRzPSEwfSw3NDYzOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg5ODgyOCksdT1pKDYyMjUwKSxfPS8jfFwucHJvdG90eXBlXC4vLGlzRm9yY2VkPWZ1bmN0aW9uKHMsbyl7dmFyIGk9eFt3KHMpXTtyZXR1cm4gaT09PWp8fGkhPT1DJiYodShvKT9hKG8pOiEhbyl9LHc9aXNGb3JjZWQubm9ybWFsaXplPWZ1bmN0aW9uKHMpe3JldHVybiBTdHJpbmcocykucmVwbGFjZShfLCIuIikudG9Mb3dlckNhc2UoKX0seD1pc0ZvcmNlZC5kYXRhPXt9LEM9aXNGb3JjZWQuTkFUSVZFPSJOIixqPWlzRm9yY2VkLlBPTFlGSUxMPSJQIjtzLmV4cG9ydHM9aXNGb3JjZWR9LDc2NjY6KHMsbyxpKT0+e3ZhciBhPWkoODQ4NTEpLHU9aSg5NTMpO2Z1bmN0aW9uIF9leHRlbmRzKCl7dmFyIG87cmV0dXJuIHMuZXhwb3J0cz1fZXh0ZW5kcz1hP3Uobz1hKS5jYWxsKG8pOmZ1bmN0aW9uKHMpe2Zvcih2YXIgbz0xO288YXJndW1lbnRzLmxlbmd0aDtvKyspe3ZhciBpPWFyZ3VtZW50c1tvXTtmb3IodmFyIGEgaW4gaSkoe30pLmhhc093blByb3BlcnR5LmNhbGwoaSxhKSYmKHNbYV09aVthXSl9cmV0dXJuIHN9LHMuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHMuZXhwb3J0cy5kZWZhdWx0PXMuZXhwb3J0cyxfZXh0ZW5kcy5hcHBseShudWxsLGFyZ3VtZW50cyl9cy5leHBvcnRzPV9leHRlbmRzLHMuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHMuZXhwb3J0cy5kZWZhdWx0PXMuZXhwb3J0c30sODA0ODoocyxvLGkpPT57Y29uc3QgYT1pKDYyMDUpO28ud29yZEJvdW5kYXJ5PSgpPT4oe3R5cGU6YS5QT1NJVElPTix2YWx1ZToiYiJ9KSxvLm5vbldvcmRCb3VuZGFyeT0oKT0+KHt0eXBlOmEuUE9TSVRJT04sdmFsdWU6IkIifSksby5iZWdpbj0oKT0+KHt0eXBlOmEuUE9TSVRJT04sdmFsdWU6Il4ifSksby5lbmQ9KCk9Pih7dHlwZTphLlBPU0lUSU9OLHZhbHVlOiIkIn0pfSw4MDY4OnM9PnsidXNlIHN0cmljdCI7dmFyIG89KCgpPT57dmFyIHM9T2JqZWN0LmRlZmluZVByb3BlcnR5LG89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzLGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyx1PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksXz1PYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLF9fZGVmTm9ybWFsUHJvcD0obyxpLGEpPT5pIGluIG8/cyhvLGkse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmF9KTpvW2ldPWEsX19zcHJlYWRWYWx1ZXM9KHMsbyk9Pntmb3IodmFyIGkgaW4gb3x8KG89e30pKXUuY2FsbChvLGkpJiZfX2RlZk5vcm1hbFByb3AocyxpLG9baV0pO2lmKGEpZm9yKHZhciBpIG9mIGEobykpXy5jYWxsKG8saSkmJl9fZGVmTm9ybWFsUHJvcChzLGksb1tpXSk7cmV0dXJuIHN9LF9fcHVibGljRmllbGQ9KHMsbyxpKT0+X19kZWZOb3JtYWxQcm9wKHMsInN5bWJvbCIhPXR5cGVvZiBvP28rIiI6byxpKSx3PXt9OygobyxpKT0+e2Zvcih2YXIgYSBpbiBpKXMobyxhLHtnZXQ6aVthXSxlbnVtZXJhYmxlOiEwfSl9KSh3LHtERUZBVUxUX09QVElPTlM6KCk9PkMsREVGQVVMVF9VVUlEX0xFTkdUSDooKT0+eCxkZWZhdWx0OigpPT5CfSk7dmFyIHg9NixDPXtkaWN0aW9uYXJ5OiJhbHBoYW51bSIsc2h1ZmZsZTohMCxkZWJ1ZzohMSxsZW5ndGg6eCxjb3VudGVyOjB9LGo9Y2xhc3MgX1Nob3J0VW5pcXVlSWR7Y29uc3RydWN0b3Iocz17fSl7X19wdWJsaWNGaWVsZCh0aGlzLCJjb3VudGVyIiksX19wdWJsaWNGaWVsZCh0aGlzLCJkZWJ1ZyIpLF9fcHVibGljRmllbGQodGhpcywiZGljdCIpLF9fcHVibGljRmllbGQodGhpcywidmVyc2lvbiIpLF9fcHVibGljRmllbGQodGhpcywiZGljdEluZGV4IiwwKSxfX3B1YmxpY0ZpZWxkKHRoaXMsImRpY3RSYW5nZSIsW10pLF9fcHVibGljRmllbGQodGhpcywibG93ZXJCb3VuZCIsMCksX19wdWJsaWNGaWVsZCh0aGlzLCJ1cHBlckJvdW5kIiwwKSxfX3B1YmxpY0ZpZWxkKHRoaXMsImRpY3RMZW5ndGgiLDApLF9fcHVibGljRmllbGQodGhpcywidXVpZExlbmd0aCIpLF9fcHVibGljRmllbGQodGhpcywiX2RpZ2l0X2ZpcnN0X2FzY2lpIiw0OCksX19wdWJsaWNGaWVsZCh0aGlzLCJfZGlnaXRfbGFzdF9hc2NpaSIsNTgpLF9fcHVibGljRmllbGQodGhpcywiX2FscGhhX2xvd2VyX2ZpcnN0X2FzY2lpIiw5NyksX19wdWJsaWNGaWVsZCh0aGlzLCJfYWxwaGFfbG93ZXJfbGFzdF9hc2NpaSIsMTIzKSxfX3B1YmxpY0ZpZWxkKHRoaXMsIl9oZXhfbGFzdF9hc2NpaSIsMTAzKSxfX3B1YmxpY0ZpZWxkKHRoaXMsIl9hbHBoYV91cHBlcl9maXJzdF9hc2NpaSIsNjUpLF9fcHVibGljRmllbGQodGhpcywiX2FscGhhX3VwcGVyX2xhc3RfYXNjaWkiLDkxKSxfX3B1YmxpY0ZpZWxkKHRoaXMsIl9udW1iZXJfZGljdF9yYW5nZXMiLHtkaWdpdHM6W3RoaXMuX2RpZ2l0X2ZpcnN0X2FzY2lpLHRoaXMuX2RpZ2l0X2xhc3RfYXNjaWldfSksX19wdWJsaWNGaWVsZCh0aGlzLCJfYWxwaGFfZGljdF9yYW5nZXMiLHtsb3dlckNhc2U6W3RoaXMuX2FscGhhX2xvd2VyX2ZpcnN0X2FzY2lpLHRoaXMuX2FscGhhX2xvd2VyX2xhc3RfYXNjaWldLHVwcGVyQ2FzZTpbdGhpcy5fYWxwaGFfdXBwZXJfZmlyc3RfYXNjaWksdGhpcy5fYWxwaGFfdXBwZXJfbGFzdF9hc2NpaV19KSxfX3B1YmxpY0ZpZWxkKHRoaXMsIl9hbHBoYV9sb3dlcl9kaWN0X3JhbmdlcyIse2xvd2VyQ2FzZTpbdGhpcy5fYWxwaGFfbG93ZXJfZmlyc3RfYXNjaWksdGhpcy5fYWxwaGFfbG93ZXJfbGFzdF9hc2NpaV19KSxfX3B1YmxpY0ZpZWxkKHRoaXMsIl9hbHBoYV91cHBlcl9kaWN0X3JhbmdlcyIse3VwcGVyQ2FzZTpbdGhpcy5fYWxwaGFfdXBwZXJfZmlyc3RfYXNjaWksdGhpcy5fYWxwaGFfdXBwZXJfbGFzdF9hc2NpaV19KSxfX3B1YmxpY0ZpZWxkKHRoaXMsIl9hbHBoYW51bV9kaWN0X3JhbmdlcyIse2RpZ2l0czpbdGhpcy5fZGlnaXRfZmlyc3RfYXNjaWksdGhpcy5fZGlnaXRfbGFzdF9hc2NpaV0sbG93ZXJDYXNlOlt0aGlzLl9hbHBoYV9sb3dlcl9maXJzdF9hc2NpaSx0aGlzLl9hbHBoYV9sb3dlcl9sYXN0X2FzY2lpXSx1cHBlckNhc2U6W3RoaXMuX2FscGhhX3VwcGVyX2ZpcnN0X2FzY2lpLHRoaXMuX2FscGhhX3VwcGVyX2xhc3RfYXNjaWldfSksX19wdWJsaWNGaWVsZCh0aGlzLCJfYWxwaGFudW1fbG93ZXJfZGljdF9yYW5nZXMiLHtkaWdpdHM6W3RoaXMuX2RpZ2l0X2ZpcnN0X2FzY2lpLHRoaXMuX2RpZ2l0X2xhc3RfYXNjaWldLGxvd2VyQ2FzZTpbdGhpcy5fYWxwaGFfbG93ZXJfZmlyc3RfYXNjaWksdGhpcy5fYWxwaGFfbG93ZXJfbGFzdF9hc2NpaV19KSxfX3B1YmxpY0ZpZWxkKHRoaXMsIl9hbHBoYW51bV91cHBlcl9kaWN0X3JhbmdlcyIse2RpZ2l0czpbdGhpcy5fZGlnaXRfZmlyc3RfYXNjaWksdGhpcy5fZGlnaXRfbGFzdF9hc2NpaV0sdXBwZXJDYXNlOlt0aGlzLl9hbHBoYV91cHBlcl9maXJzdF9hc2NpaSx0aGlzLl9hbHBoYV91cHBlcl9sYXN0X2FzY2lpXX0pLF9fcHVibGljRmllbGQodGhpcywiX2hleF9kaWN0X3JhbmdlcyIse2RlY0RpZ2l0czpbdGhpcy5fZGlnaXRfZmlyc3RfYXNjaWksdGhpcy5fZGlnaXRfbGFzdF9hc2NpaV0sYWxwaGFEaWdpdHM6W3RoaXMuX2FscGhhX2xvd2VyX2ZpcnN0X2FzY2lpLHRoaXMuX2hleF9sYXN0X2FzY2lpXX0pLF9fcHVibGljRmllbGQodGhpcywiX2RpY3RfcmFuZ2VzIix7X251bWJlcl9kaWN0X3Jhbmdlczp0aGlzLl9udW1iZXJfZGljdF9yYW5nZXMsX2FscGhhX2RpY3RfcmFuZ2VzOnRoaXMuX2FscGhhX2RpY3RfcmFuZ2VzLF9hbHBoYV9sb3dlcl9kaWN0X3Jhbmdlczp0aGlzLl9hbHBoYV9sb3dlcl9kaWN0X3JhbmdlcyxfYWxwaGFfdXBwZXJfZGljdF9yYW5nZXM6dGhpcy5fYWxwaGFfdXBwZXJfZGljdF9yYW5nZXMsX2FscGhhbnVtX2RpY3RfcmFuZ2VzOnRoaXMuX2FscGhhbnVtX2RpY3RfcmFuZ2VzLF9hbHBoYW51bV9sb3dlcl9kaWN0X3Jhbmdlczp0aGlzLl9hbHBoYW51bV9sb3dlcl9kaWN0X3JhbmdlcyxfYWxwaGFudW1fdXBwZXJfZGljdF9yYW5nZXM6dGhpcy5fYWxwaGFudW1fdXBwZXJfZGljdF9yYW5nZXMsX2hleF9kaWN0X3Jhbmdlczp0aGlzLl9oZXhfZGljdF9yYW5nZXN9KSxfX3B1YmxpY0ZpZWxkKHRoaXMsImxvZyIsKCguLi5zKT0+e2NvbnN0IG89Wy4uLnNdO29bMF09IltzaG9ydC11bmlxdWUtaWRdICIuY29uY2F0KHNbMF0pLCEwIT09dGhpcy5kZWJ1Z3x8InVuZGVmaW5lZCI9PXR5cGVvZiBjb25zb2xlfHxudWxsPT09Y29uc29sZXx8Y29uc29sZS5sb2coLi4ubyl9KSksX19wdWJsaWNGaWVsZCh0aGlzLCJfbm9ybWFsaXplRGljdGlvbmFyeSIsKChzLG8pPT57bGV0IGk7aWYocyYmQXJyYXkuaXNBcnJheShzKSYmcy5sZW5ndGg+MSlpPXM7ZWxzZXtpPVtdLHRoaXMuZGljdEluZGV4PTA7Y29uc3Qgbz0iXyIuY29uY2F0KHMsIl9kaWN0X3JhbmdlcyIpLGE9dGhpcy5fZGljdF9yYW5nZXNbb107bGV0IHU9MDtmb3IoY29uc3RbLHNdb2YgT2JqZWN0LmVudHJpZXMoYSkpe2NvbnN0W28saV09czt1Kz1NYXRoLmFicyhpLW8pfWk9bmV3IEFycmF5KHUpO2xldCBfPTA7Zm9yKGNvbnN0WyxzXW9mIE9iamVjdC5lbnRyaWVzKGEpKXt0aGlzLmRpY3RSYW5nZT1zLHRoaXMubG93ZXJCb3VuZD10aGlzLmRpY3RSYW5nZVswXSx0aGlzLnVwcGVyQm91bmQ9dGhpcy5kaWN0UmFuZ2VbMV07Y29uc3Qgbz10aGlzLmxvd2VyQm91bmQ8PXRoaXMudXBwZXJCb3VuZCxhPXRoaXMubG93ZXJCb3VuZCx1PXRoaXMudXBwZXJCb3VuZDtpZihvKWZvcihsZXQgcz1hO3M8dTtzKyspaVtfKytdPVN0cmluZy5mcm9tQ2hhckNvZGUocyksdGhpcy5kaWN0SW5kZXg9cztlbHNlIGZvcihsZXQgcz1hO3M+dTtzLS0paVtfKytdPVN0cmluZy5mcm9tQ2hhckNvZGUocyksdGhpcy5kaWN0SW5kZXg9c31pLmxlbmd0aD1ffWlmKG8pe2ZvcihsZXQgcz1pLmxlbmd0aC0xO3M+MDtzLS0pe2NvbnN0IG89TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKihzKzEpKTtbaVtzXSxpW29dXT1baVtvXSxpW3NdXX19cmV0dXJuIGl9KSksX19wdWJsaWNGaWVsZCh0aGlzLCJzZXREaWN0aW9uYXJ5IiwoKHMsbyk9Pnt0aGlzLmRpY3Q9dGhpcy5fbm9ybWFsaXplRGljdGlvbmFyeShzLG8pLHRoaXMuZGljdExlbmd0aD10aGlzLmRpY3QubGVuZ3RoLHRoaXMuc2V0Q291bnRlcigwKX0pKSxfX3B1YmxpY0ZpZWxkKHRoaXMsInNlcSIsKCgpPT50aGlzLnNlcXVlbnRpYWxVVUlEKCkpKSxfX3B1YmxpY0ZpZWxkKHRoaXMsInNlcXVlbnRpYWxVVUlEIiwoKCk9Pntjb25zdCBzPXRoaXMuZGljdExlbmd0aCxvPXRoaXMuZGljdDtsZXQgaT10aGlzLmNvdW50ZXI7Y29uc3QgYT1bXTtkb3tjb25zdCB1PWklcztpPU1hdGgudHJ1bmMoaS9zKSxhLnB1c2gob1t1XSl9d2hpbGUoMCE9PWkpO2NvbnN0IHU9YS5qb2luKCIiKTtyZXR1cm4gdGhpcy5jb3VudGVyKz0xLHV9KSksX19wdWJsaWNGaWVsZCh0aGlzLCJybmQiLCgocz10aGlzLnV1aWRMZW5ndGh8fHgpPT50aGlzLnJhbmRvbVVVSUQocykpKSxfX3B1YmxpY0ZpZWxkKHRoaXMsInJhbmRvbVVVSUQiLCgocz10aGlzLnV1aWRMZW5ndGh8fHgpPT57aWYobnVsbD09c3x8czwxKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBVVUlEIExlbmd0aCBQcm92aWRlZCIpO2NvbnN0IG89bmV3IEFycmF5KHMpLGk9dGhpcy5kaWN0TGVuZ3RoLGE9dGhpcy5kaWN0O2ZvcihsZXQgdT0wO3U8czt1Kyspe2NvbnN0IHM9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKmkpO29bdV09YVtzXX1yZXR1cm4gby5qb2luKCIiKX0pKSxfX3B1YmxpY0ZpZWxkKHRoaXMsImZtdCIsKChzLG8pPT50aGlzLmZvcm1hdHRlZFVVSUQocyxvKSkpLF9fcHVibGljRmllbGQodGhpcywiZm9ybWF0dGVkVVVJRCIsKChzLG8pPT57Y29uc3QgaT17JHI6dGhpcy5yYW5kb21VVUlELCRzOnRoaXMuc2VxdWVudGlhbFVVSUQsJHQ6dGhpcy5zdGFtcH07cmV0dXJuIHMucmVwbGFjZSgvXCRbcnNdXGR7MCx9fFwkdDB8XCR0WzEtOV1cZHsxLH0vZywocz0+e2NvbnN0IGE9cy5zbGljZSgwLDIpLHU9TnVtYmVyLnBhcnNlSW50KHMuc2xpY2UoMiksMTApO3JldHVybiIkcyI9PT1hP2lbYV0oKS5wYWRTdGFydCh1LCIwIik6IiR0Ij09PWEmJm8/aVthXSh1LG8pOmlbYV0odSl9KSl9KSksX19wdWJsaWNGaWVsZCh0aGlzLCJhdmFpbGFibGVVVUlEcyIsKChzPXRoaXMudXVpZExlbmd0aCk9Pk51bWJlci5wYXJzZUZsb2F0KChbLi4ubmV3IFNldCh0aGlzLmRpY3QpXS5sZW5ndGgqKnMpLnRvRml4ZWQoMCkpKSksX19wdWJsaWNGaWVsZCh0aGlzLCJfY29sbGlzaW9uQ2FjaGUiLG5ldyBNYXApLF9fcHVibGljRmllbGQodGhpcywiYXBwcm94TWF4QmVmb3JlQ29sbGlzaW9uIiwoKHM9dGhpcy5hdmFpbGFibGVVVUlEcyh0aGlzLnV1aWRMZW5ndGgpKT0+e2NvbnN0IG89cyxpPXRoaXMuX2NvbGxpc2lvbkNhY2hlLmdldChvKTtpZih2b2lkIDAhPT1pKXJldHVybiBpO2NvbnN0IGE9TnVtYmVyLnBhcnNlRmxvYXQoTWF0aC5zcXJ0KE1hdGguUEkvMipzKS50b0ZpeGVkKDIwKSk7cmV0dXJuIHRoaXMuX2NvbGxpc2lvbkNhY2hlLnNldChvLGEpLGF9KSksX19wdWJsaWNGaWVsZCh0aGlzLCJjb2xsaXNpb25Qcm9iYWJpbGl0eSIsKChzPXRoaXMuYXZhaWxhYmxlVVVJRHModGhpcy51dWlkTGVuZ3RoKSxvPXRoaXMudXVpZExlbmd0aCk9Pk51bWJlci5wYXJzZUZsb2F0KCh0aGlzLmFwcHJveE1heEJlZm9yZUNvbGxpc2lvbihzKS90aGlzLmF2YWlsYWJsZVVVSURzKG8pKS50b0ZpeGVkKDIwKSkpKSxfX3B1YmxpY0ZpZWxkKHRoaXMsInVuaXF1ZW5lc3MiLCgocz10aGlzLmF2YWlsYWJsZVVVSURzKHRoaXMudXVpZExlbmd0aCkpPT57Y29uc3Qgbz1OdW1iZXIucGFyc2VGbG9hdCgoMS10aGlzLmFwcHJveE1heEJlZm9yZUNvbGxpc2lvbihzKS9zKS50b0ZpeGVkKDIwKSk7cmV0dXJuIG8+MT8xOm88MD8wOm99KSksX19wdWJsaWNGaWVsZCh0aGlzLCJnZXRWZXJzaW9uIiwoKCk9PnRoaXMudmVyc2lvbikpLF9fcHVibGljRmllbGQodGhpcywic3RhbXAiLCgocyxvKT0+e2NvbnN0IGk9TWF0aC5mbG9vcigrKG98fG5ldyBEYXRlKS8xZTMpLnRvU3RyaW5nKDE2KTtpZigibnVtYmVyIj09dHlwZW9mIHMmJjA9PT1zKXJldHVybiBpO2lmKCJudW1iZXIiIT10eXBlb2Ygc3x8czwxMCl0aHJvdyBuZXcgRXJyb3IoWyJQYXJhbSBmaW5hbExlbmd0aCBtdXN0IGJlIGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAxMCwiLCJvciAwIGlmIHlvdSB3YW50IHRoZSByYXcgaGV4YWRlY2ltYWwgdGltZXN0YW1wIl0uam9pbigiXG4iKSk7Y29uc3QgYT1zLTksdT1NYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqKGE+MTU/MTU6YSkpLF89dGhpcy5yYW5kb21VVUlEKGEpO3JldHVybiIiLmNvbmNhdChfLnN1YnN0cmluZygwLHUpKS5jb25jYXQoaSkuY29uY2F0KF8uc3Vic3RyaW5nKHUpKS5jb25jYXQodS50b1N0cmluZygxNikpfSkpLF9fcHVibGljRmllbGQodGhpcywicGFyc2VTdGFtcCIsKChzLG8pPT57aWYobyYmIS90MHx0WzEtOV1cZHsxLH0vLnRlc3QobykpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZXh0cmFjdCBkYXRlIGZyb20gYSBmb3JtYXRlZCBVVUlEIHdpdGggbm8gdGltZXN0YW1wIGluIHRoZSBmb3JtYXQiKTtjb25zdCBpPW8/by5yZXBsYWNlKC9cJFtyc11cZHswLH18XCR0MHxcJHRbMS05XVxkezEsfS9nLChzPT57Y29uc3Qgbz17JHI6cz0+Wy4uLkFycmF5KHMpXS5tYXAoKCgpPT4iciIpKS5qb2luKCIiKSwkczpzPT5bLi4uQXJyYXkocyldLm1hcCgoKCk9PiJzIikpLmpvaW4oIiIpLCR0OnM9PlsuLi5BcnJheShzKV0ubWFwKCgoKT0+InQiKSkuam9pbigiIil9LGk9cy5zbGljZSgwLDIpLGE9TnVtYmVyLnBhcnNlSW50KHMuc2xpY2UoMiksMTApO3JldHVybiBvW2ldKGEpfSkpLnJlcGxhY2UoL14oLio/KSh0ezgsfSkoLiopJC9nLCgobyxpLGEpPT5zLnN1YnN0cmluZyhpLmxlbmd0aCxpLmxlbmd0aCthLmxlbmd0aCkpKTpzO2lmKDg9PT1pLmxlbmd0aClyZXR1cm4gbmV3IERhdGUoMWUzKk51bWJlci5wYXJzZUludChpLDE2KSk7aWYoaS5sZW5ndGg8MTApdGhyb3cgbmV3IEVycm9yKCJTdGFtcCBsZW5ndGggaW52YWxpZCIpO2NvbnN0IGE9TnVtYmVyLnBhcnNlSW50KGkuc3Vic3RyaW5nKGkubGVuZ3RoLTEpLDE2KTtyZXR1cm4gbmV3IERhdGUoMWUzKk51bWJlci5wYXJzZUludChpLnN1YnN0cmluZyhhLGErOCksMTYpKX0pKSxfX3B1YmxpY0ZpZWxkKHRoaXMsInNldENvdW50ZXIiLChzPT57dGhpcy5jb3VudGVyPXN9KSksX19wdWJsaWNGaWVsZCh0aGlzLCJ2YWxpZGF0ZSIsKChzLG8pPT57Y29uc3QgaT1vP3RoaXMuX25vcm1hbGl6ZURpY3Rpb25hcnkobyk6dGhpcy5kaWN0O3JldHVybiBzLnNwbGl0KCIiKS5ldmVyeSgocz0+aS5pbmNsdWRlcyhzKSkpfSkpO2NvbnN0IG89X19zcHJlYWRWYWx1ZXMoX19zcHJlYWRWYWx1ZXMoe30sQykscyk7dGhpcy5jb3VudGVyPTAsdGhpcy5kZWJ1Zz0hMSx0aGlzLmRpY3Q9W10sdGhpcy52ZXJzaW9uPSI1LjMuMiI7Y29uc3R7ZGljdGlvbmFyeTppLHNodWZmbGU6YSxsZW5ndGg6dSxjb3VudGVyOl99PW87dGhpcy51dWlkTGVuZ3RoPXUsdGhpcy5zZXREaWN0aW9uYXJ5KGksYSksdGhpcy5zZXRDb3VudGVyKF8pLHRoaXMuZGVidWc9by5kZWJ1Zyx0aGlzLmxvZyh0aGlzLmRpY3QpLHRoaXMubG9nKCJHZW5lcmF0b3IgaW5zdGFudGlhdGVkIHdpdGggRGljdGlvbmFyeSBTaXplICIuY29uY2F0KHRoaXMuZGljdExlbmd0aCwiIGFuZCBjb3VudGVyIHNldCB0byAiKS5jb25jYXQodGhpcy5jb3VudGVyKSksdGhpcy5sb2c9dGhpcy5sb2cuYmluZCh0aGlzKSx0aGlzLnNldERpY3Rpb25hcnk9dGhpcy5zZXREaWN0aW9uYXJ5LmJpbmQodGhpcyksdGhpcy5zZXRDb3VudGVyPXRoaXMuc2V0Q291bnRlci5iaW5kKHRoaXMpLHRoaXMuc2VxPXRoaXMuc2VxLmJpbmQodGhpcyksdGhpcy5zZXF1ZW50aWFsVVVJRD10aGlzLnNlcXVlbnRpYWxVVUlELmJpbmQodGhpcyksdGhpcy5ybmQ9dGhpcy5ybmQuYmluZCh0aGlzKSx0aGlzLnJhbmRvbVVVSUQ9dGhpcy5yYW5kb21VVUlELmJpbmQodGhpcyksdGhpcy5mbXQ9dGhpcy5mbXQuYmluZCh0aGlzKSx0aGlzLmZvcm1hdHRlZFVVSUQ9dGhpcy5mb3JtYXR0ZWRVVUlELmJpbmQodGhpcyksdGhpcy5hdmFpbGFibGVVVUlEcz10aGlzLmF2YWlsYWJsZVVVSURzLmJpbmQodGhpcyksdGhpcy5hcHByb3hNYXhCZWZvcmVDb2xsaXNpb249dGhpcy5hcHByb3hNYXhCZWZvcmVDb2xsaXNpb24uYmluZCh0aGlzKSx0aGlzLmNvbGxpc2lvblByb2JhYmlsaXR5PXRoaXMuY29sbGlzaW9uUHJvYmFiaWxpdHkuYmluZCh0aGlzKSx0aGlzLnVuaXF1ZW5lc3M9dGhpcy51bmlxdWVuZXNzLmJpbmQodGhpcyksdGhpcy5nZXRWZXJzaW9uPXRoaXMuZ2V0VmVyc2lvbi5iaW5kKHRoaXMpLHRoaXMuc3RhbXA9dGhpcy5zdGFtcC5iaW5kKHRoaXMpLHRoaXMucGFyc2VTdGFtcD10aGlzLnBhcnNlU3RhbXAuYmluZCh0aGlzKX19O19fcHVibGljRmllbGQoaiwiZGVmYXVsdCIsaik7dmFyIEwsQj1qO3JldHVybiBMPXcsKChhLF8sdyx4KT0+e2lmKF8mJiJvYmplY3QiPT10eXBlb2YgX3x8ImZ1bmN0aW9uIj09dHlwZW9mIF8pZm9yKGxldCBDIG9mIGkoXykpdS5jYWxsKGEsQyl8fEM9PT13fHxzKGEsQyx7Z2V0OigpPT5fW0NdLGVudW1lcmFibGU6ISh4PW8oXyxDKSl8fHguZW51bWVyYWJsZX0pO3JldHVybiBhfSkocyh7fSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTCl9KSgpO3MuZXhwb3J0cz1vLmRlZmF1bHQsInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJihvPW8uZGVmYXVsdCl9LDkzMjU6KHMsbyxpKT0+e3ZhciBhPWkoMzQ4NDApLHU9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixfPWF8fHV8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCk7cy5leHBvcnRzPV99LDk0MDQ6ZnVuY3Rpb24ocyl7cy5leHBvcnRzPWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBzPUFycmF5LnByb3RvdHlwZS5zbGljZTtmdW5jdGlvbiBjcmVhdGVDbGFzcyhzLG8pe28mJihzLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG8ucHJvdG90eXBlKSkscy5wcm90b3R5cGUuY29uc3RydWN0b3I9c31mdW5jdGlvbiBJdGVyYWJsZShzKXtyZXR1cm4gaXNJdGVyYWJsZShzKT9zOlNlcShzKX1mdW5jdGlvbiBLZXllZEl0ZXJhYmxlKHMpe3JldHVybiBpc0tleWVkKHMpP3M6S2V5ZWRTZXEocyl9ZnVuY3Rpb24gSW5kZXhlZEl0ZXJhYmxlKHMpe3JldHVybiBpc0luZGV4ZWQocyk/czpJbmRleGVkU2VxKHMpfWZ1bmN0aW9uIFNldEl0ZXJhYmxlKHMpe3JldHVybiBpc0l0ZXJhYmxlKHMpJiYhaXNBc3NvY2lhdGl2ZShzKT9zOlNldFNlcShzKX1mdW5jdGlvbiBpc0l0ZXJhYmxlKHMpe3JldHVybiEoIXN8fCFzW29dKX1mdW5jdGlvbiBpc0tleWVkKHMpe3JldHVybiEoIXN8fCFzW2ldKX1mdW5jdGlvbiBpc0luZGV4ZWQocyl7cmV0dXJuISghc3x8IXNbYV0pfWZ1bmN0aW9uIGlzQXNzb2NpYXRpdmUocyl7cmV0dXJuIGlzS2V5ZWQocyl8fGlzSW5kZXhlZChzKX1mdW5jdGlvbiBpc09yZGVyZWQocyl7cmV0dXJuISghc3x8IXNbdV0pfWNyZWF0ZUNsYXNzKEtleWVkSXRlcmFibGUsSXRlcmFibGUpLGNyZWF0ZUNsYXNzKEluZGV4ZWRJdGVyYWJsZSxJdGVyYWJsZSksY3JlYXRlQ2xhc3MoU2V0SXRlcmFibGUsSXRlcmFibGUpLEl0ZXJhYmxlLmlzSXRlcmFibGU9aXNJdGVyYWJsZSxJdGVyYWJsZS5pc0tleWVkPWlzS2V5ZWQsSXRlcmFibGUuaXNJbmRleGVkPWlzSW5kZXhlZCxJdGVyYWJsZS5pc0Fzc29jaWF0aXZlPWlzQXNzb2NpYXRpdmUsSXRlcmFibGUuaXNPcmRlcmVkPWlzT3JkZXJlZCxJdGVyYWJsZS5LZXllZD1LZXllZEl0ZXJhYmxlLEl0ZXJhYmxlLkluZGV4ZWQ9SW5kZXhlZEl0ZXJhYmxlLEl0ZXJhYmxlLlNldD1TZXRJdGVyYWJsZTt2YXIgbz0iQEBfX0lNTVVUQUJMRV9JVEVSQUJMRV9fQEAiLGk9IkBAX19JTU1VVEFCTEVfS0VZRURfX0BAIixhPSJAQF9fSU1NVVRBQkxFX0lOREVYRURfX0BAIix1PSJAQF9fSU1NVVRBQkxFX09SREVSRURfX0BAIixfPSJkZWxldGUiLHc9NSx4PTE8PHcsQz14LTEsaj17fSxMPXt2YWx1ZTohMX0sQj17dmFsdWU6ITF9O2Z1bmN0aW9uIE1ha2VSZWYocyl7cmV0dXJuIHMudmFsdWU9ITEsc31mdW5jdGlvbiBTZXRSZWYocyl7cyYmKHMudmFsdWU9ITApfWZ1bmN0aW9uIE93bmVySUQoKXt9ZnVuY3Rpb24gYXJyQ29weShzLG8pe289b3x8MDtmb3IodmFyIGk9TWF0aC5tYXgoMCxzLmxlbmd0aC1vKSxhPW5ldyBBcnJheShpKSx1PTA7dTxpO3UrKylhW3VdPXNbdStvXTtyZXR1cm4gYX1mdW5jdGlvbiBlbnN1cmVTaXplKHMpe3JldHVybiB2b2lkIDA9PT1zLnNpemUmJihzLnNpemU9cy5fX2l0ZXJhdGUocmV0dXJuVHJ1ZSkpLHMuc2l6ZX1mdW5jdGlvbiB3cmFwSW5kZXgocyxvKXtpZigibnVtYmVyIiE9dHlwZW9mIG8pe3ZhciBpPW8+Pj4wO2lmKCIiK2khPT1vfHw0Mjk0OTY3Mjk1PT09aSlyZXR1cm4gTmFOO289aX1yZXR1cm4gbzwwP2Vuc3VyZVNpemUocykrbzpvfWZ1bmN0aW9uIHJldHVyblRydWUoKXtyZXR1cm4hMH1mdW5jdGlvbiB3aG9sZVNsaWNlKHMsbyxpKXtyZXR1cm4oMD09PXN8fHZvaWQgMCE9PWkmJnM8PS1pKSYmKHZvaWQgMD09PW98fHZvaWQgMCE9PWkmJm8+PWkpfWZ1bmN0aW9uIHJlc29sdmVCZWdpbihzLG8pe3JldHVybiByZXNvbHZlSW5kZXgocyxvLDApfWZ1bmN0aW9uIHJlc29sdmVFbmQocyxvKXtyZXR1cm4gcmVzb2x2ZUluZGV4KHMsbyxvKX1mdW5jdGlvbiByZXNvbHZlSW5kZXgocyxvLGkpe3JldHVybiB2b2lkIDA9PT1zP2k6czwwP01hdGgubWF4KDAsbytzKTp2b2lkIDA9PT1vP3M6TWF0aC5taW4obyxzKX12YXIgJD0wLFY9MSxVPTIsej0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3IsWT0iQEBpdGVyYXRvciIsWj16fHxZO2Z1bmN0aW9uIEl0ZXJhdG9yKHMpe3RoaXMubmV4dD1zfWZ1bmN0aW9uIGl0ZXJhdG9yVmFsdWUocyxvLGksYSl7dmFyIHU9MD09PXM/bzoxPT09cz9pOltvLGldO3JldHVybiBhP2EudmFsdWU9dTphPXt2YWx1ZTp1LGRvbmU6ITF9LGF9ZnVuY3Rpb24gaXRlcmF0b3JEb25lKCl7cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX1mdW5jdGlvbiBoYXNJdGVyYXRvcihzKXtyZXR1cm4hIWdldEl0ZXJhdG9yRm4ocyl9ZnVuY3Rpb24gaXNJdGVyYXRvcihzKXtyZXR1cm4gcyYmImZ1bmN0aW9uIj09dHlwZW9mIHMubmV4dH1mdW5jdGlvbiBnZXRJdGVyYXRvcihzKXt2YXIgbz1nZXRJdGVyYXRvckZuKHMpO3JldHVybiBvJiZvLmNhbGwocyl9ZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihzKXt2YXIgbz1zJiYoeiYmc1t6XXx8c1tZXSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG8pcmV0dXJuIG99ZnVuY3Rpb24gaXNBcnJheUxpa2Uocyl7cmV0dXJuIHMmJiJudW1iZXIiPT10eXBlb2Ygcy5sZW5ndGh9ZnVuY3Rpb24gU2VxKHMpe3JldHVybiBudWxsPT1zP2VtcHR5U2VxdWVuY2UoKTppc0l0ZXJhYmxlKHMpP3MudG9TZXEoKTpzZXFGcm9tVmFsdWUocyl9ZnVuY3Rpb24gS2V5ZWRTZXEocyl7cmV0dXJuIG51bGw9PXM/ZW1wdHlTZXF1ZW5jZSgpLnRvS2V5ZWRTZXEoKTppc0l0ZXJhYmxlKHMpP2lzS2V5ZWQocyk/cy50b1NlcSgpOnMuZnJvbUVudHJ5U2VxKCk6a2V5ZWRTZXFGcm9tVmFsdWUocyl9ZnVuY3Rpb24gSW5kZXhlZFNlcShzKXtyZXR1cm4gbnVsbD09cz9lbXB0eVNlcXVlbmNlKCk6aXNJdGVyYWJsZShzKT9pc0tleWVkKHMpP3MuZW50cnlTZXEoKTpzLnRvSW5kZXhlZFNlcSgpOmluZGV4ZWRTZXFGcm9tVmFsdWUocyl9ZnVuY3Rpb24gU2V0U2VxKHMpe3JldHVybihudWxsPT1zP2VtcHR5U2VxdWVuY2UoKTppc0l0ZXJhYmxlKHMpP2lzS2V5ZWQocyk/cy5lbnRyeVNlcSgpOnM6aW5kZXhlZFNlcUZyb21WYWx1ZShzKSkudG9TZXRTZXEoKX1JdGVyYXRvci5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iW0l0ZXJhdG9yXSJ9LEl0ZXJhdG9yLktFWVM9JCxJdGVyYXRvci5WQUxVRVM9VixJdGVyYXRvci5FTlRSSUVTPVUsSXRlcmF0b3IucHJvdG90eXBlLmluc3BlY3Q9SXRlcmF0b3IucHJvdG90eXBlLnRvU291cmNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoKX0sSXRlcmF0b3IucHJvdG90eXBlW1pdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGNyZWF0ZUNsYXNzKFNlcSxJdGVyYWJsZSksU2VxLm9mPWZ1bmN0aW9uKCl7cmV0dXJuIFNlcShhcmd1bWVudHMpfSxTZXEucHJvdG90eXBlLnRvU2VxPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LFNlcS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX3RvU3RyaW5nKCJTZXEgeyIsIn0iKX0sU2VxLnByb3RvdHlwZS5jYWNoZVJlc3VsdD1mdW5jdGlvbigpe3JldHVybiF0aGlzLl9jYWNoZSYmdGhpcy5fX2l0ZXJhdGVVbmNhY2hlZCYmKHRoaXMuX2NhY2hlPXRoaXMuZW50cnlTZXEoKS50b0FycmF5KCksdGhpcy5zaXplPXRoaXMuX2NhY2hlLmxlbmd0aCksdGhpc30sU2VxLnByb3RvdHlwZS5fX2l0ZXJhdGU9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gc2VxSXRlcmF0ZSh0aGlzLHMsbywhMCl9LFNlcS5wcm90b3R5cGUuX19pdGVyYXRvcj1mdW5jdGlvbihzLG8pe3JldHVybiBzZXFJdGVyYXRvcih0aGlzLHMsbywhMCl9LGNyZWF0ZUNsYXNzKEtleWVkU2VxLFNlcSksS2V5ZWRTZXEucHJvdG90eXBlLnRvS2V5ZWRTZXE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sY3JlYXRlQ2xhc3MoSW5kZXhlZFNlcSxTZXEpLEluZGV4ZWRTZXEub2Y9ZnVuY3Rpb24oKXtyZXR1cm4gSW5kZXhlZFNlcShhcmd1bWVudHMpfSxJbmRleGVkU2VxLnByb3RvdHlwZS50b0luZGV4ZWRTZXE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sSW5kZXhlZFNlcS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX3RvU3RyaW5nKCJTZXEgWyIsIl0iKX0sSW5kZXhlZFNlcS5wcm90b3R5cGUuX19pdGVyYXRlPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHNlcUl0ZXJhdGUodGhpcyxzLG8sITEpfSxJbmRleGVkU2VxLnByb3RvdHlwZS5fX2l0ZXJhdG9yPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHNlcUl0ZXJhdG9yKHRoaXMscyxvLCExKX0sY3JlYXRlQ2xhc3MoU2V0U2VxLFNlcSksU2V0U2VxLm9mPWZ1bmN0aW9uKCl7cmV0dXJuIFNldFNlcShhcmd1bWVudHMpfSxTZXRTZXEucHJvdG90eXBlLnRvU2V0U2VxPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LFNlcS5pc1NlcT1pc1NlcSxTZXEuS2V5ZWQ9S2V5ZWRTZXEsU2VxLlNldD1TZXRTZXEsU2VxLkluZGV4ZWQ9SW5kZXhlZFNlcTt2YXIgZWUsaWUsYWUsY2U9IkBAX19JTU1VVEFCTEVfU0VRX19AQCI7ZnVuY3Rpb24gQXJyYXlTZXEocyl7dGhpcy5fYXJyYXk9cyx0aGlzLnNpemU9cy5sZW5ndGh9ZnVuY3Rpb24gT2JqZWN0U2VxKHMpe3ZhciBvPU9iamVjdC5rZXlzKHMpO3RoaXMuX29iamVjdD1zLHRoaXMuX2tleXM9byx0aGlzLnNpemU9by5sZW5ndGh9ZnVuY3Rpb24gSXRlcmFibGVTZXEocyl7dGhpcy5faXRlcmFibGU9cyx0aGlzLnNpemU9cy5sZW5ndGh8fHMuc2l6ZX1mdW5jdGlvbiBJdGVyYXRvclNlcShzKXt0aGlzLl9pdGVyYXRvcj1zLHRoaXMuX2l0ZXJhdG9yQ2FjaGU9W119ZnVuY3Rpb24gaXNTZXEocyl7cmV0dXJuISghc3x8IXNbY2VdKX1mdW5jdGlvbiBlbXB0eVNlcXVlbmNlKCl7cmV0dXJuIGVlfHwoZWU9bmV3IEFycmF5U2VxKFtdKSl9ZnVuY3Rpb24ga2V5ZWRTZXFGcm9tVmFsdWUocyl7dmFyIG89QXJyYXkuaXNBcnJheShzKT9uZXcgQXJyYXlTZXEocykuZnJvbUVudHJ5U2VxKCk6aXNJdGVyYXRvcihzKT9uZXcgSXRlcmF0b3JTZXEocykuZnJvbUVudHJ5U2VxKCk6aGFzSXRlcmF0b3Iocyk/bmV3IEl0ZXJhYmxlU2VxKHMpLmZyb21FbnRyeVNlcSgpOiJvYmplY3QiPT10eXBlb2Ygcz9uZXcgT2JqZWN0U2VxKHMpOnZvaWQgMDtpZighbyl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBBcnJheSBvciBpdGVyYWJsZSBvYmplY3Qgb2YgW2ssIHZdIGVudHJpZXMsIG9yIGtleWVkIG9iamVjdDogIitzKTtyZXR1cm4gb31mdW5jdGlvbiBpbmRleGVkU2VxRnJvbVZhbHVlKHMpe3ZhciBvPW1heWJlSW5kZXhlZFNlcUZyb21WYWx1ZShzKTtpZighbyl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBBcnJheSBvciBpdGVyYWJsZSBvYmplY3Qgb2YgdmFsdWVzOiAiK3MpO3JldHVybiBvfWZ1bmN0aW9uIHNlcUZyb21WYWx1ZShzKXt2YXIgbz1tYXliZUluZGV4ZWRTZXFGcm9tVmFsdWUocyl8fCJvYmplY3QiPT10eXBlb2YgcyYmbmV3IE9iamVjdFNlcShzKTtpZighbyl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBBcnJheSBvciBpdGVyYWJsZSBvYmplY3Qgb2YgdmFsdWVzLCBvciBrZXllZCBvYmplY3Q6ICIrcyk7cmV0dXJuIG99ZnVuY3Rpb24gbWF5YmVJbmRleGVkU2VxRnJvbVZhbHVlKHMpe3JldHVybiBpc0FycmF5TGlrZShzKT9uZXcgQXJyYXlTZXEocyk6aXNJdGVyYXRvcihzKT9uZXcgSXRlcmF0b3JTZXEocyk6aGFzSXRlcmF0b3Iocyk/bmV3IEl0ZXJhYmxlU2VxKHMpOnZvaWQgMH1mdW5jdGlvbiBzZXFJdGVyYXRlKHMsbyxpLGEpe3ZhciB1PXMuX2NhY2hlO2lmKHUpe2Zvcih2YXIgXz11Lmxlbmd0aC0xLHc9MDt3PD1fO3crKyl7dmFyIHg9dVtpP18tdzp3XTtpZighMT09PW8oeFsxXSxhP3hbMF06dyxzKSlyZXR1cm4gdysxfXJldHVybiB3fXJldHVybiBzLl9faXRlcmF0ZVVuY2FjaGVkKG8saSl9ZnVuY3Rpb24gc2VxSXRlcmF0b3IocyxvLGksYSl7dmFyIHU9cy5fY2FjaGU7aWYodSl7dmFyIF89dS5sZW5ndGgtMSx3PTA7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXt2YXIgcz11W2k/Xy13OnddO3JldHVybiB3Kys+Xz9pdGVyYXRvckRvbmUoKTppdGVyYXRvclZhbHVlKG8sYT9zWzBdOnctMSxzWzFdKX0pKX1yZXR1cm4gcy5fX2l0ZXJhdG9yVW5jYWNoZWQobyxpKX1mdW5jdGlvbiBmcm9tSlMocyxvKXtyZXR1cm4gbz9mcm9tSlNXaXRoKG8scywiIix7IiI6c30pOmZyb21KU0RlZmF1bHQocyl9ZnVuY3Rpb24gZnJvbUpTV2l0aChzLG8saSxhKXtyZXR1cm4gQXJyYXkuaXNBcnJheShvKT9zLmNhbGwoYSxpLEluZGV4ZWRTZXEobykubWFwKChmdW5jdGlvbihpLGEpe3JldHVybiBmcm9tSlNXaXRoKHMsaSxhLG8pfSkpKTppc1BsYWluT2JqKG8pP3MuY2FsbChhLGksS2V5ZWRTZXEobykubWFwKChmdW5jdGlvbihpLGEpe3JldHVybiBmcm9tSlNXaXRoKHMsaSxhLG8pfSkpKTpvfWZ1bmN0aW9uIGZyb21KU0RlZmF1bHQocyl7cmV0dXJuIEFycmF5LmlzQXJyYXkocyk/SW5kZXhlZFNlcShzKS5tYXAoZnJvbUpTRGVmYXVsdCkudG9MaXN0KCk6aXNQbGFpbk9iaihzKT9LZXllZFNlcShzKS5tYXAoZnJvbUpTRGVmYXVsdCkudG9NYXAoKTpzfWZ1bmN0aW9uIGlzUGxhaW5PYmoocyl7cmV0dXJuIHMmJihzLmNvbnN0cnVjdG9yPT09T2JqZWN0fHx2b2lkIDA9PT1zLmNvbnN0cnVjdG9yKX1mdW5jdGlvbiBpcyhzLG8pe2lmKHM9PT1vfHxzIT1zJiZvIT1vKXJldHVybiEwO2lmKCFzfHwhbylyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygcy52YWx1ZU9mJiYiZnVuY3Rpb24iPT10eXBlb2Ygby52YWx1ZU9mKXtpZigocz1zLnZhbHVlT2YoKSk9PT0obz1vLnZhbHVlT2YoKSl8fHMhPXMmJm8hPW8pcmV0dXJuITA7aWYoIXN8fCFvKXJldHVybiExfXJldHVybiEoImZ1bmN0aW9uIiE9dHlwZW9mIHMuZXF1YWxzfHwiZnVuY3Rpb24iIT10eXBlb2Ygby5lcXVhbHN8fCFzLmVxdWFscyhvKSl9ZnVuY3Rpb24gZGVlcEVxdWFsKHMsbyl7aWYocz09PW8pcmV0dXJuITA7aWYoIWlzSXRlcmFibGUobyl8fHZvaWQgMCE9PXMuc2l6ZSYmdm9pZCAwIT09by5zaXplJiZzLnNpemUhPT1vLnNpemV8fHZvaWQgMCE9PXMuX19oYXNoJiZ2b2lkIDAhPT1vLl9faGFzaCYmcy5fX2hhc2ghPT1vLl9faGFzaHx8aXNLZXllZChzKSE9PWlzS2V5ZWQobyl8fGlzSW5kZXhlZChzKSE9PWlzSW5kZXhlZChvKXx8aXNPcmRlcmVkKHMpIT09aXNPcmRlcmVkKG8pKXJldHVybiExO2lmKDA9PT1zLnNpemUmJjA9PT1vLnNpemUpcmV0dXJuITA7dmFyIGk9IWlzQXNzb2NpYXRpdmUocyk7aWYoaXNPcmRlcmVkKHMpKXt2YXIgYT1zLmVudHJpZXMoKTtyZXR1cm4gby5ldmVyeSgoZnVuY3Rpb24ocyxvKXt2YXIgdT1hLm5leHQoKS52YWx1ZTtyZXR1cm4gdSYmaXModVsxXSxzKSYmKGl8fGlzKHVbMF0sbykpfSkpJiZhLm5leHQoKS5kb25lfXZhciB1PSExO2lmKHZvaWQgMD09PXMuc2l6ZSlpZih2b2lkIDA9PT1vLnNpemUpImZ1bmN0aW9uIj09dHlwZW9mIHMuY2FjaGVSZXN1bHQmJnMuY2FjaGVSZXN1bHQoKTtlbHNle3U9ITA7dmFyIF89cztzPW8sbz1ffXZhciB3PSEwLHg9by5fX2l0ZXJhdGUoKGZ1bmN0aW9uKG8sYSl7aWYoaT8hcy5oYXMobyk6dT8haXMobyxzLmdldChhLGopKTohaXMocy5nZXQoYSxqKSxvKSlyZXR1cm4gdz0hMSwhMX0pKTtyZXR1cm4gdyYmcy5zaXplPT09eH1mdW5jdGlvbiBSZXBlYXQocyxvKXtpZighKHRoaXMgaW5zdGFuY2VvZiBSZXBlYXQpKXJldHVybiBuZXcgUmVwZWF0KHMsbyk7aWYodGhpcy5fdmFsdWU9cyx0aGlzLnNpemU9dm9pZCAwPT09bz8xLzA6TWF0aC5tYXgoMCxvKSwwPT09dGhpcy5zaXplKXtpZihpZSlyZXR1cm4gaWU7aWU9dGhpc319ZnVuY3Rpb24gaW52YXJpYW50KHMsbyl7aWYoIXMpdGhyb3cgbmV3IEVycm9yKG8pfWZ1bmN0aW9uIFJhbmdlKHMsbyxpKXtpZighKHRoaXMgaW5zdGFuY2VvZiBSYW5nZSkpcmV0dXJuIG5ldyBSYW5nZShzLG8saSk7aWYoaW52YXJpYW50KDAhPT1pLCJDYW5ub3Qgc3RlcCBhIFJhbmdlIGJ5IDAiKSxzPXN8fDAsdm9pZCAwPT09byYmKG89MS8wKSxpPXZvaWQgMD09PWk/MTpNYXRoLmFicyhpKSxvPHMmJihpPS1pKSx0aGlzLl9zdGFydD1zLHRoaXMuX2VuZD1vLHRoaXMuX3N0ZXA9aSx0aGlzLnNpemU9TWF0aC5tYXgoMCxNYXRoLmNlaWwoKG8tcykvaS0xKSsxKSwwPT09dGhpcy5zaXplKXtpZihhZSlyZXR1cm4gYWU7YWU9dGhpc319ZnVuY3Rpb24gQ29sbGVjdGlvbigpe3Rocm93IFR5cGVFcnJvcigiQWJzdHJhY3QiKX1mdW5jdGlvbiBLZXllZENvbGxlY3Rpb24oKXt9ZnVuY3Rpb24gSW5kZXhlZENvbGxlY3Rpb24oKXt9ZnVuY3Rpb24gU2V0Q29sbGVjdGlvbigpe31TZXEucHJvdG90eXBlW2NlXT0hMCxjcmVhdGVDbGFzcyhBcnJheVNlcSxJbmRleGVkU2VxKSxBcnJheVNlcS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHRoaXMuaGFzKHMpP3RoaXMuX2FycmF5W3dyYXBJbmRleCh0aGlzLHMpXTpvfSxBcnJheVNlcS5wcm90b3R5cGUuX19pdGVyYXRlPWZ1bmN0aW9uKHMsbyl7Zm9yKHZhciBpPXRoaXMuX2FycmF5LGE9aS5sZW5ndGgtMSx1PTA7dTw9YTt1KyspaWYoITE9PT1zKGlbbz9hLXU6dV0sdSx0aGlzKSlyZXR1cm4gdSsxO3JldHVybiB1fSxBcnJheVNlcS5wcm90b3R5cGUuX19pdGVyYXRvcj1mdW5jdGlvbihzLG8pe3ZhciBpPXRoaXMuX2FycmF5LGE9aS5sZW5ndGgtMSx1PTA7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXtyZXR1cm4gdT5hP2l0ZXJhdG9yRG9uZSgpOml0ZXJhdG9yVmFsdWUocyx1LGlbbz9hLXUrKzp1KytdKX0pKX0sY3JlYXRlQ2xhc3MoT2JqZWN0U2VxLEtleWVkU2VxKSxPYmplY3RTZXEucHJvdG90eXBlLmdldD1mdW5jdGlvbihzLG8pe3JldHVybiB2b2lkIDA9PT1vfHx0aGlzLmhhcyhzKT90aGlzLl9vYmplY3Rbc106b30sT2JqZWN0U2VxLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMuX29iamVjdC5oYXNPd25Qcm9wZXJ0eShzKX0sT2JqZWN0U2VxLnByb3RvdHlwZS5fX2l0ZXJhdGU9ZnVuY3Rpb24ocyxvKXtmb3IodmFyIGk9dGhpcy5fb2JqZWN0LGE9dGhpcy5fa2V5cyx1PWEubGVuZ3RoLTEsXz0wO188PXU7XysrKXt2YXIgdz1hW28/dS1fOl9dO2lmKCExPT09cyhpW3ddLHcsdGhpcykpcmV0dXJuIF8rMX1yZXR1cm4gX30sT2JqZWN0U2VxLnByb3RvdHlwZS5fX2l0ZXJhdG9yPWZ1bmN0aW9uKHMsbyl7dmFyIGk9dGhpcy5fb2JqZWN0LGE9dGhpcy5fa2V5cyx1PWEubGVuZ3RoLTEsXz0wO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7dmFyIHc9YVtvP3UtXzpfXTtyZXR1cm4gXysrPnU/aXRlcmF0b3JEb25lKCk6aXRlcmF0b3JWYWx1ZShzLHcsaVt3XSl9KSl9LE9iamVjdFNlcS5wcm90b3R5cGVbdV09ITAsY3JlYXRlQ2xhc3MoSXRlcmFibGVTZXEsSW5kZXhlZFNlcSksSXRlcmFibGVTZXEucHJvdG90eXBlLl9faXRlcmF0ZVVuY2FjaGVkPWZ1bmN0aW9uKHMsbyl7aWYobylyZXR1cm4gdGhpcy5jYWNoZVJlc3VsdCgpLl9faXRlcmF0ZShzLG8pO3ZhciBpPWdldEl0ZXJhdG9yKHRoaXMuX2l0ZXJhYmxlKSxhPTA7aWYoaXNJdGVyYXRvcihpKSlmb3IodmFyIHU7ISh1PWkubmV4dCgpKS5kb25lJiYhMSE9PXModS52YWx1ZSxhKyssdGhpcyk7KTtyZXR1cm4gYX0sSXRlcmFibGVTZXEucHJvdG90eXBlLl9faXRlcmF0b3JVbmNhY2hlZD1mdW5jdGlvbihzLG8pe2lmKG8pcmV0dXJuIHRoaXMuY2FjaGVSZXN1bHQoKS5fX2l0ZXJhdG9yKHMsbyk7dmFyIGk9Z2V0SXRlcmF0b3IodGhpcy5faXRlcmFibGUpO2lmKCFpc0l0ZXJhdG9yKGkpKXJldHVybiBuZXcgSXRlcmF0b3IoaXRlcmF0b3JEb25lKTt2YXIgYT0wO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7dmFyIG89aS5uZXh0KCk7cmV0dXJuIG8uZG9uZT9vOml0ZXJhdG9yVmFsdWUocyxhKyssby52YWx1ZSl9KSl9LGNyZWF0ZUNsYXNzKEl0ZXJhdG9yU2VxLEluZGV4ZWRTZXEpLEl0ZXJhdG9yU2VxLnByb3RvdHlwZS5fX2l0ZXJhdGVVbmNhY2hlZD1mdW5jdGlvbihzLG8pe2lmKG8pcmV0dXJuIHRoaXMuY2FjaGVSZXN1bHQoKS5fX2l0ZXJhdGUocyxvKTtmb3IodmFyIGksYT10aGlzLl9pdGVyYXRvcix1PXRoaXMuX2l0ZXJhdG9yQ2FjaGUsXz0wO188dS5sZW5ndGg7KWlmKCExPT09cyh1W19dLF8rKyx0aGlzKSlyZXR1cm4gXztmb3IoOyEoaT1hLm5leHQoKSkuZG9uZTspe3ZhciB3PWkudmFsdWU7aWYodVtfXT13LCExPT09cyh3LF8rKyx0aGlzKSlicmVha31yZXR1cm4gX30sSXRlcmF0b3JTZXEucHJvdG90eXBlLl9faXRlcmF0b3JVbmNhY2hlZD1mdW5jdGlvbihzLG8pe2lmKG8pcmV0dXJuIHRoaXMuY2FjaGVSZXN1bHQoKS5fX2l0ZXJhdG9yKHMsbyk7dmFyIGk9dGhpcy5faXRlcmF0b3IsYT10aGlzLl9pdGVyYXRvckNhY2hlLHU9MDtyZXR1cm4gbmV3IEl0ZXJhdG9yKChmdW5jdGlvbigpe2lmKHU+PWEubGVuZ3RoKXt2YXIgbz1pLm5leHQoKTtpZihvLmRvbmUpcmV0dXJuIG87YVt1XT1vLnZhbHVlfXJldHVybiBpdGVyYXRvclZhbHVlKHMsdSxhW3UrK10pfSkpfSxjcmVhdGVDbGFzcyhSZXBlYXQsSW5kZXhlZFNlcSksUmVwZWF0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5zaXplPyJSZXBlYXQgW10iOiJSZXBlYXQgWyAiK3RoaXMuX3ZhbHVlKyIgIit0aGlzLnNpemUrIiB0aW1lcyBdIn0sUmVwZWF0LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdGhpcy5oYXMocyk/dGhpcy5fdmFsdWU6b30sUmVwZWF0LnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbihzKXtyZXR1cm4gaXModGhpcy5fdmFsdWUscyl9LFJlcGVhdC5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24ocyxvKXt2YXIgaT10aGlzLnNpemU7cmV0dXJuIHdob2xlU2xpY2UocyxvLGkpP3RoaXM6bmV3IFJlcGVhdCh0aGlzLl92YWx1ZSxyZXNvbHZlRW5kKG8saSktcmVzb2x2ZUJlZ2luKHMsaSkpfSxSZXBlYXQucHJvdG90eXBlLnJldmVyc2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sUmVwZWF0LnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKHMpe3JldHVybiBpcyh0aGlzLl92YWx1ZSxzKT8wOi0xfSxSZXBlYXQucHJvdG90eXBlLmxhc3RJbmRleE9mPWZ1bmN0aW9uKHMpe3JldHVybiBpcyh0aGlzLl92YWx1ZSxzKT90aGlzLnNpemU6LTF9LFJlcGVhdC5wcm90b3R5cGUuX19pdGVyYXRlPWZ1bmN0aW9uKHMsbyl7Zm9yKHZhciBpPTA7aTx0aGlzLnNpemU7aSsrKWlmKCExPT09cyh0aGlzLl92YWx1ZSxpLHRoaXMpKXJldHVybiBpKzE7cmV0dXJuIGl9LFJlcGVhdC5wcm90b3R5cGUuX19pdGVyYXRvcj1mdW5jdGlvbihzLG8pe3ZhciBpPXRoaXMsYT0wO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7cmV0dXJuIGE8aS5zaXplP2l0ZXJhdG9yVmFsdWUocyxhKyssaS5fdmFsdWUpOml0ZXJhdG9yRG9uZSgpfSkpfSxSZXBlYXQucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihzKXtyZXR1cm4gcyBpbnN0YW5jZW9mIFJlcGVhdD9pcyh0aGlzLl92YWx1ZSxzLl92YWx1ZSk6ZGVlcEVxdWFsKHMpfSxjcmVhdGVDbGFzcyhSYW5nZSxJbmRleGVkU2VxKSxSYW5nZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuc2l6ZT8iUmFuZ2UgW10iOiJSYW5nZSBbICIrdGhpcy5fc3RhcnQrIi4uLiIrdGhpcy5fZW5kKygxIT09dGhpcy5fc3RlcD8iIGJ5ICIrdGhpcy5fc3RlcDoiIikrIiBdIn0sUmFuZ2UucHJvdG90eXBlLmdldD1mdW5jdGlvbihzLG8pe3JldHVybiB0aGlzLmhhcyhzKT90aGlzLl9zdGFydCt3cmFwSW5kZXgodGhpcyxzKSp0aGlzLl9zdGVwOm99LFJhbmdlLnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbihzKXt2YXIgbz0ocy10aGlzLl9zdGFydCkvdGhpcy5fc3RlcDtyZXR1cm4gbz49MCYmbzx0aGlzLnNpemUmJm89PT1NYXRoLmZsb29yKG8pfSxSYW5nZS5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gd2hvbGVTbGljZShzLG8sdGhpcy5zaXplKT90aGlzOihzPXJlc29sdmVCZWdpbihzLHRoaXMuc2l6ZSksKG89cmVzb2x2ZUVuZChvLHRoaXMuc2l6ZSkpPD1zP25ldyBSYW5nZSgwLDApOm5ldyBSYW5nZSh0aGlzLmdldChzLHRoaXMuX2VuZCksdGhpcy5nZXQobyx0aGlzLl9lbmQpLHRoaXMuX3N0ZXApKX0sUmFuZ2UucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24ocyl7dmFyIG89cy10aGlzLl9zdGFydDtpZihvJXRoaXMuX3N0ZXA9PTApe3ZhciBpPW8vdGhpcy5fc3RlcDtpZihpPj0wJiZpPHRoaXMuc2l6ZSlyZXR1cm4gaX1yZXR1cm4tMX0sUmFuZ2UucHJvdG90eXBlLmxhc3RJbmRleE9mPWZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLmluZGV4T2Yocyl9LFJhbmdlLnByb3RvdHlwZS5fX2l0ZXJhdGU9ZnVuY3Rpb24ocyxvKXtmb3IodmFyIGk9dGhpcy5zaXplLTEsYT10aGlzLl9zdGVwLHU9bz90aGlzLl9zdGFydCtpKmE6dGhpcy5fc3RhcnQsXz0wO188PWk7XysrKXtpZighMT09PXModSxfLHRoaXMpKXJldHVybiBfKzE7dSs9bz8tYTphfXJldHVybiBffSxSYW5nZS5wcm90b3R5cGUuX19pdGVyYXRvcj1mdW5jdGlvbihzLG8pe3ZhciBpPXRoaXMuc2l6ZS0xLGE9dGhpcy5fc3RlcCx1PW8/dGhpcy5fc3RhcnQraSphOnRoaXMuX3N0YXJ0LF89MDtyZXR1cm4gbmV3IEl0ZXJhdG9yKChmdW5jdGlvbigpe3ZhciB3PXU7cmV0dXJuIHUrPW8/LWE6YSxfPmk/aXRlcmF0b3JEb25lKCk6aXRlcmF0b3JWYWx1ZShzLF8rKyx3KX0pKX0sUmFuZ2UucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihzKXtyZXR1cm4gcyBpbnN0YW5jZW9mIFJhbmdlP3RoaXMuX3N0YXJ0PT09cy5fc3RhcnQmJnRoaXMuX2VuZD09PXMuX2VuZCYmdGhpcy5fc3RlcD09PXMuX3N0ZXA6ZGVlcEVxdWFsKHRoaXMscyl9LGNyZWF0ZUNsYXNzKENvbGxlY3Rpb24sSXRlcmFibGUpLGNyZWF0ZUNsYXNzKEtleWVkQ29sbGVjdGlvbixDb2xsZWN0aW9uKSxjcmVhdGVDbGFzcyhJbmRleGVkQ29sbGVjdGlvbixDb2xsZWN0aW9uKSxjcmVhdGVDbGFzcyhTZXRDb2xsZWN0aW9uLENvbGxlY3Rpb24pLENvbGxlY3Rpb24uS2V5ZWQ9S2V5ZWRDb2xsZWN0aW9uLENvbGxlY3Rpb24uSW5kZXhlZD1JbmRleGVkQ29sbGVjdGlvbixDb2xsZWN0aW9uLlNldD1TZXRDb2xsZWN0aW9uO3ZhciBsZT0iZnVuY3Rpb24iPT10eXBlb2YgTWF0aC5pbXVsJiYtMj09PU1hdGguaW11bCg0Mjk0OTY3Mjk1LDIpP01hdGguaW11bDpmdW5jdGlvbiBpbXVsKHMsbyl7dmFyIGk9NjU1MzUmKHN8PTApLGE9NjU1MzUmKG98PTApO3JldHVybiBpKmErKChzPj4+MTYpKmEraSoobz4+PjE2KTw8MTY+Pj4wKXwwfTtmdW5jdGlvbiBzbWkocyl7cmV0dXJuIHM+Pj4xJjEwNzM3NDE4MjR8MzIyMTIyNTQ3MSZzfWZ1bmN0aW9uIGhhc2gocyl7aWYoITE9PT1zfHxudWxsPT1zKXJldHVybiAwO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBzLnZhbHVlT2YmJighMT09PShzPXMudmFsdWVPZigpKXx8bnVsbD09cykpcmV0dXJuIDA7aWYoITA9PT1zKXJldHVybiAxO3ZhciBvPXR5cGVvZiBzO2lmKCJudW1iZXIiPT09byl7aWYocyE9c3x8cz09PTEvMClyZXR1cm4gMDt2YXIgaT0wfHM7Zm9yKGkhPT1zJiYoaV49NDI5NDk2NzI5NSpzKTtzPjQyOTQ5NjcyOTU7KWlePXMvPTQyOTQ5NjcyOTU7cmV0dXJuIHNtaShpKX1pZigic3RyaW5nIj09PW8pcmV0dXJuIHMubGVuZ3RoPlNlP2NhY2hlZEhhc2hTdHJpbmcocyk6aGFzaFN0cmluZyhzKTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygcy5oYXNoQ29kZSlyZXR1cm4gcy5oYXNoQ29kZSgpO2lmKCJvYmplY3QiPT09bylyZXR1cm4gaGFzaEpTT2JqKHMpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBzLnRvU3RyaW5nKXJldHVybiBoYXNoU3RyaW5nKHMudG9TdHJpbmcoKSk7dGhyb3cgbmV3IEVycm9yKCJWYWx1ZSB0eXBlICIrbysiIGNhbm5vdCBiZSBoYXNoZWQuIil9ZnVuY3Rpb24gY2FjaGVkSGFzaFN0cmluZyhzKXt2YXIgbz1QZVtzXTtyZXR1cm4gdm9pZCAwPT09byYmKG89aGFzaFN0cmluZyhzKSx4ZT09PXdlJiYoeGU9MCxQZT17fSkseGUrKyxQZVtzXT1vKSxvfWZ1bmN0aW9uIGhhc2hTdHJpbmcocyl7Zm9yKHZhciBvPTAsaT0wO2k8cy5sZW5ndGg7aSsrKW89MzEqbytzLmNoYXJDb2RlQXQoaSl8MDtyZXR1cm4gc21pKG8pfWZ1bmN0aW9uIGhhc2hKU09iaihzKXt2YXIgbztpZih5ZSYmdm9pZCAwIT09KG89ZmUuZ2V0KHMpKSlyZXR1cm4gbztpZih2b2lkIDAhPT0obz1zW19lXSkpcmV0dXJuIG87aWYoIWRlKXtpZih2b2lkIDAhPT0obz1zLnByb3BlcnR5SXNFbnVtZXJhYmxlJiZzLnByb3BlcnR5SXNFbnVtZXJhYmxlW19lXSkpcmV0dXJuIG87aWYodm9pZCAwIT09KG89Z2V0SUVOb2RlSGFzaChzKSkpcmV0dXJuIG99aWYobz0rK2JlLDEwNzM3NDE4MjQmYmUmJihiZT0wKSx5ZSlmZS5zZXQocyxvKTtlbHNle2lmKHZvaWQgMCE9PXBlJiYhMT09PXBlKHMpKXRocm93IG5ldyBFcnJvcigiTm9uLWV4dGVuc2libGUgb2JqZWN0cyBhcmUgbm90IGFsbG93ZWQgYXMga2V5cy4iKTtpZihkZSlPYmplY3QuZGVmaW5lUHJvcGVydHkocyxfZSx7ZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITEsd3JpdGFibGU6ITEsdmFsdWU6b30pO2Vsc2UgaWYodm9pZCAwIT09cy5wcm9wZXJ0eUlzRW51bWVyYWJsZSYmcy5wcm9wZXJ0eUlzRW51bWVyYWJsZT09PXMuY29uc3RydWN0b3IucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlKXMucHJvcGVydHlJc0VudW1lcmFibGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxzLnByb3BlcnR5SXNFbnVtZXJhYmxlW19lXT1vO2Vsc2V7aWYodm9pZCAwPT09cy5ub2RlVHlwZSl0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBzZXQgYSBub24tZW51bWVyYWJsZSBwcm9wZXJ0eSBvbiBvYmplY3QuIik7c1tfZV09b319cmV0dXJuIG99dmFyIHBlPU9iamVjdC5pc0V4dGVuc2libGUsZGU9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwiQCIse30pLCEwfWNhdGNoKHMpe3JldHVybiExfX0oKTtmdW5jdGlvbiBnZXRJRU5vZGVIYXNoKHMpe2lmKHMmJnMubm9kZVR5cGU+MClzd2l0Y2gocy5ub2RlVHlwZSl7Y2FzZSAxOnJldHVybiBzLnVuaXF1ZUlEO2Nhc2UgOTpyZXR1cm4gcy5kb2N1bWVudEVsZW1lbnQmJnMuZG9jdW1lbnRFbGVtZW50LnVuaXF1ZUlEfX12YXIgZmUseWU9ImZ1bmN0aW9uIj09dHlwZW9mIFdlYWtNYXA7eWUmJihmZT1uZXcgV2Vha01hcCk7dmFyIGJlPTAsX2U9Il9faW1tdXRhYmxlaGFzaF9fIjsiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoX2U9U3ltYm9sKF9lKSk7dmFyIFNlPTE2LHdlPTI1NSx4ZT0wLFBlPXt9O2Z1bmN0aW9uIGFzc2VydE5vdEluZmluaXRlKHMpe2ludmFyaWFudChzIT09MS8wLCJDYW5ub3QgcGVyZm9ybSB0aGlzIGFjdGlvbiB3aXRoIGFuIGluZmluaXRlIHNpemUuIil9ZnVuY3Rpb24gTWFwKHMpe3JldHVybiBudWxsPT1zP2VtcHR5TWFwKCk6aXNNYXAocykmJiFpc09yZGVyZWQocyk/czplbXB0eU1hcCgpLndpdGhNdXRhdGlvbnMoKGZ1bmN0aW9uKG8pe3ZhciBpPUtleWVkSXRlcmFibGUocyk7YXNzZXJ0Tm90SW5maW5pdGUoaS5zaXplKSxpLmZvckVhY2goKGZ1bmN0aW9uKHMsaSl7cmV0dXJuIG8uc2V0KGkscyl9KSl9KSl9ZnVuY3Rpb24gaXNNYXAocyl7cmV0dXJuISghc3x8IXNbUmVdKX1jcmVhdGVDbGFzcyhNYXAsS2V5ZWRDb2xsZWN0aW9uKSxNYXAub2Y9ZnVuY3Rpb24oKXt2YXIgbz1zLmNhbGwoYXJndW1lbnRzLDApO3JldHVybiBlbXB0eU1hcCgpLndpdGhNdXRhdGlvbnMoKGZ1bmN0aW9uKHMpe2Zvcih2YXIgaT0wO2k8by5sZW5ndGg7aSs9Mil7aWYoaSsxPj1vLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIk1pc3NpbmcgdmFsdWUgZm9yIGtleTogIitvW2ldKTtzLnNldChvW2ldLG9baSsxXSl9fSkpfSxNYXAucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX190b1N0cmluZygiTWFwIHsiLCJ9Iil9LE1hcC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHRoaXMuX3Jvb3Q/dGhpcy5fcm9vdC5nZXQoMCx2b2lkIDAscyxvKTpvfSxNYXAucHJvdG90eXBlLnNldD1mdW5jdGlvbihzLG8pe3JldHVybiB1cGRhdGVNYXAodGhpcyxzLG8pfSxNYXAucHJvdG90eXBlLnNldEluPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHRoaXMudXBkYXRlSW4ocyxqLChmdW5jdGlvbigpe3JldHVybiBvfSkpfSxNYXAucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihzKXtyZXR1cm4gdXBkYXRlTWFwKHRoaXMscyxqKX0sTWFwLnByb3RvdHlwZS5kZWxldGVJbj1mdW5jdGlvbihzKXtyZXR1cm4gdGhpcy51cGRhdGVJbihzLChmdW5jdGlvbigpe3JldHVybiBqfSkpfSxNYXAucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihzLG8saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3ModGhpcyk6dGhpcy51cGRhdGVJbihbc10sbyxpKX0sTWFwLnByb3RvdHlwZS51cGRhdGVJbj1mdW5jdGlvbihzLG8saSl7aXx8KGk9byxvPXZvaWQgMCk7dmFyIGE9dXBkYXRlSW5EZWVwTWFwKHRoaXMsZm9yY2VJdGVyYXRvcihzKSxvLGkpO3JldHVybiBhPT09aj92b2lkIDA6YX0sTWFwLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5zaXplP3RoaXM6dGhpcy5fX293bmVySUQ/KHRoaXMuc2l6ZT0wLHRoaXMuX3Jvb3Q9bnVsbCx0aGlzLl9faGFzaD12b2lkIDAsdGhpcy5fX2FsdGVyZWQ9ITAsdGhpcyk6ZW1wdHlNYXAoKX0sTWFwLnByb3RvdHlwZS5tZXJnZT1mdW5jdGlvbigpe3JldHVybiBtZXJnZUludG9NYXBXaXRoKHRoaXMsdm9pZCAwLGFyZ3VtZW50cyl9LE1hcC5wcm90b3R5cGUubWVyZ2VXaXRoPWZ1bmN0aW9uKG8pe3JldHVybiBtZXJnZUludG9NYXBXaXRoKHRoaXMsbyxzLmNhbGwoYXJndW1lbnRzLDEpKX0sTWFwLnByb3RvdHlwZS5tZXJnZUluPWZ1bmN0aW9uKG8pe3ZhciBpPXMuY2FsbChhcmd1bWVudHMsMSk7cmV0dXJuIHRoaXMudXBkYXRlSW4obyxlbXB0eU1hcCgpLChmdW5jdGlvbihzKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygcy5tZXJnZT9zLm1lcmdlLmFwcGx5KHMsaSk6aVtpLmxlbmd0aC0xXX0pKX0sTWFwLnByb3RvdHlwZS5tZXJnZURlZXA9ZnVuY3Rpb24oKXtyZXR1cm4gbWVyZ2VJbnRvTWFwV2l0aCh0aGlzLGRlZXBNZXJnZXIsYXJndW1lbnRzKX0sTWFwLnByb3RvdHlwZS5tZXJnZURlZXBXaXRoPWZ1bmN0aW9uKG8pe3ZhciBpPXMuY2FsbChhcmd1bWVudHMsMSk7cmV0dXJuIG1lcmdlSW50b01hcFdpdGgodGhpcyxkZWVwTWVyZ2VyV2l0aChvKSxpKX0sTWFwLnByb3RvdHlwZS5tZXJnZURlZXBJbj1mdW5jdGlvbihvKXt2YXIgaT1zLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiB0aGlzLnVwZGF0ZUluKG8sZW1wdHlNYXAoKSwoZnVuY3Rpb24ocyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHMubWVyZ2VEZWVwP3MubWVyZ2VEZWVwLmFwcGx5KHMsaSk6aVtpLmxlbmd0aC0xXX0pKX0sTWFwLnByb3RvdHlwZS5zb3J0PWZ1bmN0aW9uKHMpe3JldHVybiBPcmRlcmVkTWFwKHNvcnRGYWN0b3J5KHRoaXMscykpfSxNYXAucHJvdG90eXBlLnNvcnRCeT1mdW5jdGlvbihzLG8pe3JldHVybiBPcmRlcmVkTWFwKHNvcnRGYWN0b3J5KHRoaXMsbyxzKSl9LE1hcC5wcm90b3R5cGUud2l0aE11dGF0aW9ucz1mdW5jdGlvbihzKXt2YXIgbz10aGlzLmFzTXV0YWJsZSgpO3JldHVybiBzKG8pLG8ud2FzQWx0ZXJlZCgpP28uX19lbnN1cmVPd25lcih0aGlzLl9fb3duZXJJRCk6dGhpc30sTWFwLnByb3RvdHlwZS5hc011dGFibGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX293bmVySUQ/dGhpczp0aGlzLl9fZW5zdXJlT3duZXIobmV3IE93bmVySUQpfSxNYXAucHJvdG90eXBlLmFzSW1tdXRhYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19lbnN1cmVPd25lcigpfSxNYXAucHJvdG90eXBlLndhc0FsdGVyZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX2FsdGVyZWR9LE1hcC5wcm90b3R5cGUuX19pdGVyYXRvcj1mdW5jdGlvbihzLG8pe3JldHVybiBuZXcgTWFwSXRlcmF0b3IodGhpcyxzLG8pfSxNYXAucHJvdG90eXBlLl9faXRlcmF0ZT1mdW5jdGlvbihzLG8pe3ZhciBpPXRoaXMsYT0wO3JldHVybiB0aGlzLl9yb290JiZ0aGlzLl9yb290Lml0ZXJhdGUoKGZ1bmN0aW9uKG8pe3JldHVybiBhKysscyhvWzFdLG9bMF0saSl9KSxvKSxhfSxNYXAucHJvdG90eXBlLl9fZW5zdXJlT3duZXI9ZnVuY3Rpb24ocyl7cmV0dXJuIHM9PT10aGlzLl9fb3duZXJJRD90aGlzOnM/bWFrZU1hcCh0aGlzLnNpemUsdGhpcy5fcm9vdCxzLHRoaXMuX19oYXNoKToodGhpcy5fX293bmVySUQ9cyx0aGlzLl9fYWx0ZXJlZD0hMSx0aGlzKX0sTWFwLmlzTWFwPWlzTWFwO3ZhciBUZSxSZT0iQEBfX0lNTVVUQUJMRV9NQVBfX0BAIiwkZT1NYXAucHJvdG90eXBlO2Z1bmN0aW9uIEFycmF5TWFwTm9kZShzLG8pe3RoaXMub3duZXJJRD1zLHRoaXMuZW50cmllcz1vfWZ1bmN0aW9uIEJpdG1hcEluZGV4ZWROb2RlKHMsbyxpKXt0aGlzLm93bmVySUQ9cyx0aGlzLmJpdG1hcD1vLHRoaXMubm9kZXM9aX1mdW5jdGlvbiBIYXNoQXJyYXlNYXBOb2RlKHMsbyxpKXt0aGlzLm93bmVySUQ9cyx0aGlzLmNvdW50PW8sdGhpcy5ub2Rlcz1pfWZ1bmN0aW9uIEhhc2hDb2xsaXNpb25Ob2RlKHMsbyxpKXt0aGlzLm93bmVySUQ9cyx0aGlzLmtleUhhc2g9byx0aGlzLmVudHJpZXM9aX1mdW5jdGlvbiBWYWx1ZU5vZGUocyxvLGkpe3RoaXMub3duZXJJRD1zLHRoaXMua2V5SGFzaD1vLHRoaXMuZW50cnk9aX1mdW5jdGlvbiBNYXBJdGVyYXRvcihzLG8saSl7dGhpcy5fdHlwZT1vLHRoaXMuX3JldmVyc2U9aSx0aGlzLl9zdGFjaz1zLl9yb290JiZtYXBJdGVyYXRvckZyYW1lKHMuX3Jvb3QpfWZ1bmN0aW9uIG1hcEl0ZXJhdG9yVmFsdWUocyxvKXtyZXR1cm4gaXRlcmF0b3JWYWx1ZShzLG9bMF0sb1sxXSl9ZnVuY3Rpb24gbWFwSXRlcmF0b3JGcmFtZShzLG8pe3JldHVybntub2RlOnMsaW5kZXg6MCxfX3ByZXY6b319ZnVuY3Rpb24gbWFrZU1hcChzLG8saSxhKXt2YXIgdT1PYmplY3QuY3JlYXRlKCRlKTtyZXR1cm4gdS5zaXplPXMsdS5fcm9vdD1vLHUuX19vd25lcklEPWksdS5fX2hhc2g9YSx1Ll9fYWx0ZXJlZD0hMSx1fWZ1bmN0aW9uIGVtcHR5TWFwKCl7cmV0dXJuIFRlfHwoVGU9bWFrZU1hcCgwKSl9ZnVuY3Rpb24gdXBkYXRlTWFwKHMsbyxpKXt2YXIgYSx1O2lmKHMuX3Jvb3Qpe3ZhciBfPU1ha2VSZWYoTCksdz1NYWtlUmVmKEIpO2lmKGE9dXBkYXRlTm9kZShzLl9yb290LHMuX19vd25lcklELDAsdm9pZCAwLG8saSxfLHcpLCF3LnZhbHVlKXJldHVybiBzO3U9cy5zaXplKyhfLnZhbHVlP2k9PT1qPy0xOjE6MCl9ZWxzZXtpZihpPT09ailyZXR1cm4gczt1PTEsYT1uZXcgQXJyYXlNYXBOb2RlKHMuX19vd25lcklELFtbbyxpXV0pfXJldHVybiBzLl9fb3duZXJJRD8ocy5zaXplPXUscy5fcm9vdD1hLHMuX19oYXNoPXZvaWQgMCxzLl9fYWx0ZXJlZD0hMCxzKTphP21ha2VNYXAodSxhKTplbXB0eU1hcCgpfWZ1bmN0aW9uIHVwZGF0ZU5vZGUocyxvLGksYSx1LF8sdyx4KXtyZXR1cm4gcz9zLnVwZGF0ZShvLGksYSx1LF8sdyx4KTpfPT09aj9zOihTZXRSZWYoeCksU2V0UmVmKHcpLG5ldyBWYWx1ZU5vZGUobyxhLFt1LF9dKSl9ZnVuY3Rpb24gaXNMZWFmTm9kZShzKXtyZXR1cm4gcy5jb25zdHJ1Y3Rvcj09PVZhbHVlTm9kZXx8cy5jb25zdHJ1Y3Rvcj09PUhhc2hDb2xsaXNpb25Ob2RlfWZ1bmN0aW9uIG1lcmdlSW50b05vZGUocyxvLGksYSx1KXtpZihzLmtleUhhc2g9PT1hKXJldHVybiBuZXcgSGFzaENvbGxpc2lvbk5vZGUobyxhLFtzLmVudHJ5LHVdKTt2YXIgXyx4PSgwPT09aT9zLmtleUhhc2g6cy5rZXlIYXNoPj4+aSkmQyxqPSgwPT09aT9hOmE+Pj5pKSZDO3JldHVybiBuZXcgQml0bWFwSW5kZXhlZE5vZGUobywxPDx4fDE8PGoseD09PWo/W21lcmdlSW50b05vZGUocyxvLGkrdyxhLHUpXTooXz1uZXcgVmFsdWVOb2RlKG8sYSx1KSx4PGo/W3MsX106W18sc10pKX1mdW5jdGlvbiBjcmVhdGVOb2RlcyhzLG8saSxhKXtzfHwocz1uZXcgT3duZXJJRCk7Zm9yKHZhciB1PW5ldyBWYWx1ZU5vZGUocyxoYXNoKGkpLFtpLGFdKSxfPTA7XzxvLmxlbmd0aDtfKyspe3ZhciB3PW9bX107dT11LnVwZGF0ZShzLDAsdm9pZCAwLHdbMF0sd1sxXSl9cmV0dXJuIHV9ZnVuY3Rpb24gcGFja05vZGVzKHMsbyxpLGEpe2Zvcih2YXIgdT0wLF89MCx3PW5ldyBBcnJheShpKSx4PTAsQz0xLGo9by5sZW5ndGg7eDxqO3grKyxDPDw9MSl7dmFyIEw9b1t4XTt2b2lkIDAhPT1MJiZ4IT09YSYmKHV8PUMsd1tfKytdPUwpfXJldHVybiBuZXcgQml0bWFwSW5kZXhlZE5vZGUocyx1LHcpfWZ1bmN0aW9uIGV4cGFuZE5vZGVzKHMsbyxpLGEsdSl7Zm9yKHZhciBfPTAsdz1uZXcgQXJyYXkoeCksQz0wOzAhPT1pO0MrKyxpPj4+PTEpd1tDXT0xJmk/b1tfKytdOnZvaWQgMDtyZXR1cm4gd1thXT11LG5ldyBIYXNoQXJyYXlNYXBOb2RlKHMsXysxLHcpfWZ1bmN0aW9uIG1lcmdlSW50b01hcFdpdGgocyxvLGkpe2Zvcih2YXIgYT1bXSx1PTA7dTxpLmxlbmd0aDt1Kyspe3ZhciBfPWlbdV0sdz1LZXllZEl0ZXJhYmxlKF8pO2lzSXRlcmFibGUoXyl8fCh3PXcubWFwKChmdW5jdGlvbihzKXtyZXR1cm4gZnJvbUpTKHMpfSkpKSxhLnB1c2godyl9cmV0dXJuIG1lcmdlSW50b0NvbGxlY3Rpb25XaXRoKHMsbyxhKX1mdW5jdGlvbiBkZWVwTWVyZ2VyKHMsbyxpKXtyZXR1cm4gcyYmcy5tZXJnZURlZXAmJmlzSXRlcmFibGUobyk/cy5tZXJnZURlZXAobyk6aXMocyxvKT9zOm99ZnVuY3Rpb24gZGVlcE1lcmdlcldpdGgocyl7cmV0dXJuIGZ1bmN0aW9uKG8saSxhKXtpZihvJiZvLm1lcmdlRGVlcFdpdGgmJmlzSXRlcmFibGUoaSkpcmV0dXJuIG8ubWVyZ2VEZWVwV2l0aChzLGkpO3ZhciB1PXMobyxpLGEpO3JldHVybiBpcyhvLHUpP286dX19ZnVuY3Rpb24gbWVyZ2VJbnRvQ29sbGVjdGlvbldpdGgocyxvLGkpe3JldHVybiAwPT09KGk9aS5maWx0ZXIoKGZ1bmN0aW9uKHMpe3JldHVybiAwIT09cy5zaXplfSkpKS5sZW5ndGg/czowIT09cy5zaXplfHxzLl9fb3duZXJJRHx8MSE9PWkubGVuZ3RoP3Mud2l0aE11dGF0aW9ucygoZnVuY3Rpb24ocyl7Zm9yKHZhciBhPW8/ZnVuY3Rpb24oaSxhKXtzLnVwZGF0ZShhLGosKGZ1bmN0aW9uKHMpe3JldHVybiBzPT09aj9pOm8ocyxpLGEpfSkpfTpmdW5jdGlvbihvLGkpe3Muc2V0KGksbyl9LHU9MDt1PGkubGVuZ3RoO3UrKylpW3VdLmZvckVhY2goYSl9KSk6cy5jb25zdHJ1Y3RvcihpWzBdKX1mdW5jdGlvbiB1cGRhdGVJbkRlZXBNYXAocyxvLGksYSl7dmFyIHU9cz09PWosXz1vLm5leHQoKTtpZihfLmRvbmUpe3ZhciB3PXU/aTpzLHg9YSh3KTtyZXR1cm4geD09PXc/czp4fWludmFyaWFudCh1fHxzJiZzLnNldCwiaW52YWxpZCBrZXlQYXRoIik7dmFyIEM9Xy52YWx1ZSxMPXU/ajpzLmdldChDLGopLEI9dXBkYXRlSW5EZWVwTWFwKEwsbyxpLGEpO3JldHVybiBCPT09TD9zOkI9PT1qP3MucmVtb3ZlKEMpOih1P2VtcHR5TWFwKCk6cykuc2V0KEMsQil9ZnVuY3Rpb24gcG9wQ291bnQocyl7cmV0dXJuIHM9KHM9KDg1ODk5MzQ1OSYocy09cz4+MSYxNDMxNjU1NzY1KSkrKHM+PjImODU4OTkzNDU5KSkrKHM+PjQpJjI1MjY0NTEzNSxzKz1zPj44LDEyNyYocys9cz4+MTYpfWZ1bmN0aW9uIHNldEluKHMsbyxpLGEpe3ZhciB1PWE/czphcnJDb3B5KHMpO3JldHVybiB1W29dPWksdX1mdW5jdGlvbiBzcGxpY2VJbihzLG8saSxhKXt2YXIgdT1zLmxlbmd0aCsxO2lmKGEmJm8rMT09PXUpcmV0dXJuIHNbb109aSxzO2Zvcih2YXIgXz1uZXcgQXJyYXkodSksdz0wLHg9MDt4PHU7eCsrKXg9PT1vPyhfW3hdPWksdz0tMSk6X1t4XT1zW3grd107cmV0dXJuIF99ZnVuY3Rpb24gc3BsaWNlT3V0KHMsbyxpKXt2YXIgYT1zLmxlbmd0aC0xO2lmKGkmJm89PT1hKXJldHVybiBzLnBvcCgpLHM7Zm9yKHZhciB1PW5ldyBBcnJheShhKSxfPTAsdz0wO3c8YTt3Kyspdz09PW8mJihfPTEpLHVbd109c1t3K19dO3JldHVybiB1fSRlW1JlXT0hMCwkZVtfXT0kZS5yZW1vdmUsJGUucmVtb3ZlSW49JGUuZGVsZXRlSW4sQXJyYXlNYXBOb2RlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24ocyxvLGksYSl7Zm9yKHZhciB1PXRoaXMuZW50cmllcyxfPTAsdz11Lmxlbmd0aDtfPHc7XysrKWlmKGlzKGksdVtfXVswXSkpcmV0dXJuIHVbX11bMV07cmV0dXJuIGF9LEFycmF5TWFwTm9kZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHMsbyxpLGEsdSxfLHcpe2Zvcih2YXIgeD11PT09aixDPXRoaXMuZW50cmllcyxMPTAsQj1DLmxlbmd0aDtMPEImJiFpcyhhLENbTF1bMF0pO0wrKyk7dmFyICQ9TDxCO2lmKCQ/Q1tMXVsxXT09PXU6eClyZXR1cm4gdGhpcztpZihTZXRSZWYodyksKHh8fCEkKSYmU2V0UmVmKF8pLCF4fHwxIT09Qy5sZW5ndGgpe2lmKCEkJiYheCYmQy5sZW5ndGg+PXFlKXJldHVybiBjcmVhdGVOb2RlcyhzLEMsYSx1KTt2YXIgVj1zJiZzPT09dGhpcy5vd25lcklELFU9Vj9DOmFyckNvcHkoQyk7cmV0dXJuICQ/eD9MPT09Qi0xP1UucG9wKCk6VVtMXT1VLnBvcCgpOlVbTF09W2EsdV06VS5wdXNoKFthLHVdKSxWPyh0aGlzLmVudHJpZXM9VSx0aGlzKTpuZXcgQXJyYXlNYXBOb2RlKHMsVSl9fSxCaXRtYXBJbmRleGVkTm9kZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHMsbyxpLGEpe3ZvaWQgMD09PW8mJihvPWhhc2goaSkpO3ZhciB1PTE8PCgoMD09PXM/bzpvPj4+cykmQyksXz10aGlzLmJpdG1hcDtyZXR1cm4gXyZ1P3RoaXMubm9kZXNbcG9wQ291bnQoXyZ1LTEpXS5nZXQocyt3LG8saSxhKTphfSxCaXRtYXBJbmRleGVkTm9kZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHMsbyxpLGEsdSxfLHgpe3ZvaWQgMD09PWkmJihpPWhhc2goYSkpO3ZhciBMPSgwPT09bz9pOmk+Pj5vKSZDLEI9MTw8TCwkPXRoaXMuYml0bWFwLFY9ISEoJCZCKTtpZighViYmdT09PWopcmV0dXJuIHRoaXM7dmFyIFU9cG9wQ291bnQoJCZCLTEpLHo9dGhpcy5ub2RlcyxZPVY/eltVXTp2b2lkIDAsWj11cGRhdGVOb2RlKFkscyxvK3csaSxhLHUsXyx4KTtpZihaPT09WSlyZXR1cm4gdGhpcztpZighViYmWiYmei5sZW5ndGg+PXplKXJldHVybiBleHBhbmROb2RlcyhzLHosJCxMLFopO2lmKFYmJiFaJiYyPT09ei5sZW5ndGgmJmlzTGVhZk5vZGUoelsxXlVdKSlyZXR1cm4gelsxXlVdO2lmKFYmJlomJjE9PT16Lmxlbmd0aCYmaXNMZWFmTm9kZShaKSlyZXR1cm4gWjt2YXIgZWU9cyYmcz09PXRoaXMub3duZXJJRCxpZT1WP1o/JDokXkI6JHxCLGFlPVY/Wj9zZXRJbih6LFUsWixlZSk6c3BsaWNlT3V0KHosVSxlZSk6c3BsaWNlSW4oeixVLFosZWUpO3JldHVybiBlZT8odGhpcy5iaXRtYXA9aWUsdGhpcy5ub2Rlcz1hZSx0aGlzKTpuZXcgQml0bWFwSW5kZXhlZE5vZGUocyxpZSxhZSl9LEhhc2hBcnJheU1hcE5vZGUucHJvdG90eXBlLmdldD1mdW5jdGlvbihzLG8saSxhKXt2b2lkIDA9PT1vJiYobz1oYXNoKGkpKTt2YXIgdT0oMD09PXM/bzpvPj4+cykmQyxfPXRoaXMubm9kZXNbdV07cmV0dXJuIF8/Xy5nZXQocyt3LG8saSxhKTphfSxIYXNoQXJyYXlNYXBOb2RlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24ocyxvLGksYSx1LF8seCl7dm9pZCAwPT09aSYmKGk9aGFzaChhKSk7dmFyIEw9KDA9PT1vP2k6aT4+Pm8pJkMsQj11PT09aiwkPXRoaXMubm9kZXMsVj0kW0xdO2lmKEImJiFWKXJldHVybiB0aGlzO3ZhciBVPXVwZGF0ZU5vZGUoVixzLG8rdyxpLGEsdSxfLHgpO2lmKFU9PT1WKXJldHVybiB0aGlzO3ZhciB6PXRoaXMuY291bnQ7aWYoVil7aWYoIVUmJi0tejxXZSlyZXR1cm4gcGFja05vZGVzKHMsJCx6LEwpfWVsc2UgeisrO3ZhciBZPXMmJnM9PT10aGlzLm93bmVySUQsWj1zZXRJbigkLEwsVSxZKTtyZXR1cm4gWT8odGhpcy5jb3VudD16LHRoaXMubm9kZXM9Wix0aGlzKTpuZXcgSGFzaEFycmF5TWFwTm9kZShzLHosWil9LEhhc2hDb2xsaXNpb25Ob2RlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24ocyxvLGksYSl7Zm9yKHZhciB1PXRoaXMuZW50cmllcyxfPTAsdz11Lmxlbmd0aDtfPHc7XysrKWlmKGlzKGksdVtfXVswXSkpcmV0dXJuIHVbX11bMV07cmV0dXJuIGF9LEhhc2hDb2xsaXNpb25Ob2RlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24ocyxvLGksYSx1LF8sdyl7dm9pZCAwPT09aSYmKGk9aGFzaChhKSk7dmFyIHg9dT09PWo7aWYoaSE9PXRoaXMua2V5SGFzaClyZXR1cm4geD90aGlzOihTZXRSZWYodyksU2V0UmVmKF8pLG1lcmdlSW50b05vZGUodGhpcyxzLG8saSxbYSx1XSkpO2Zvcih2YXIgQz10aGlzLmVudHJpZXMsTD0wLEI9Qy5sZW5ndGg7TDxCJiYhaXMoYSxDW0xdWzBdKTtMKyspO3ZhciAkPUw8QjtpZigkP0NbTF1bMV09PT11OngpcmV0dXJuIHRoaXM7aWYoU2V0UmVmKHcpLCh4fHwhJCkmJlNldFJlZihfKSx4JiYyPT09QilyZXR1cm4gbmV3IFZhbHVlTm9kZShzLHRoaXMua2V5SGFzaCxDWzFeTF0pO3ZhciBWPXMmJnM9PT10aGlzLm93bmVySUQsVT1WP0M6YXJyQ29weShDKTtyZXR1cm4gJD94P0w9PT1CLTE/VS5wb3AoKTpVW0xdPVUucG9wKCk6VVtMXT1bYSx1XTpVLnB1c2goW2EsdV0pLFY/KHRoaXMuZW50cmllcz1VLHRoaXMpOm5ldyBIYXNoQ29sbGlzaW9uTm9kZShzLHRoaXMua2V5SGFzaCxVKX0sVmFsdWVOb2RlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24ocyxvLGksYSl7cmV0dXJuIGlzKGksdGhpcy5lbnRyeVswXSk/dGhpcy5lbnRyeVsxXTphfSxWYWx1ZU5vZGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihzLG8saSxhLHUsXyx3KXt2YXIgeD11PT09aixDPWlzKGEsdGhpcy5lbnRyeVswXSk7cmV0dXJuKEM/dT09PXRoaXMuZW50cnlbMV06eCk/dGhpczooU2V0UmVmKHcpLHg/dm9pZCBTZXRSZWYoXyk6Qz9zJiZzPT09dGhpcy5vd25lcklEPyh0aGlzLmVudHJ5WzFdPXUsdGhpcyk6bmV3IFZhbHVlTm9kZShzLHRoaXMua2V5SGFzaCxbYSx1XSk6KFNldFJlZihfKSxtZXJnZUludG9Ob2RlKHRoaXMscyxvLGhhc2goYSksW2EsdV0pKSl9LEFycmF5TWFwTm9kZS5wcm90b3R5cGUuaXRlcmF0ZT1IYXNoQ29sbGlzaW9uTm9kZS5wcm90b3R5cGUuaXRlcmF0ZT1mdW5jdGlvbihzLG8pe2Zvcih2YXIgaT10aGlzLmVudHJpZXMsYT0wLHU9aS5sZW5ndGgtMTthPD11O2ErKylpZighMT09PXMoaVtvP3UtYTphXSkpcmV0dXJuITF9LEJpdG1hcEluZGV4ZWROb2RlLnByb3RvdHlwZS5pdGVyYXRlPUhhc2hBcnJheU1hcE5vZGUucHJvdG90eXBlLml0ZXJhdGU9ZnVuY3Rpb24ocyxvKXtmb3IodmFyIGk9dGhpcy5ub2RlcyxhPTAsdT1pLmxlbmd0aC0xO2E8PXU7YSsrKXt2YXIgXz1pW28/dS1hOmFdO2lmKF8mJiExPT09Xy5pdGVyYXRlKHMsbykpcmV0dXJuITF9fSxWYWx1ZU5vZGUucHJvdG90eXBlLml0ZXJhdGU9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gcyh0aGlzLmVudHJ5KX0sY3JlYXRlQ2xhc3MoTWFwSXRlcmF0b3IsSXRlcmF0b3IpLE1hcEl0ZXJhdG9yLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7Zm9yKHZhciBzPXRoaXMuX3R5cGUsbz10aGlzLl9zdGFjaztvOyl7dmFyIGksYT1vLm5vZGUsdT1vLmluZGV4Kys7aWYoYS5lbnRyeSl7aWYoMD09PXUpcmV0dXJuIG1hcEl0ZXJhdG9yVmFsdWUocyxhLmVudHJ5KX1lbHNlIGlmKGEuZW50cmllcyl7aWYodTw9KGk9YS5lbnRyaWVzLmxlbmd0aC0xKSlyZXR1cm4gbWFwSXRlcmF0b3JWYWx1ZShzLGEuZW50cmllc1t0aGlzLl9yZXZlcnNlP2ktdTp1XSl9ZWxzZSBpZih1PD0oaT1hLm5vZGVzLmxlbmd0aC0xKSl7dmFyIF89YS5ub2Rlc1t0aGlzLl9yZXZlcnNlP2ktdTp1XTtpZihfKXtpZihfLmVudHJ5KXJldHVybiBtYXBJdGVyYXRvclZhbHVlKHMsXy5lbnRyeSk7bz10aGlzLl9zdGFjaz1tYXBJdGVyYXRvckZyYW1lKF8sbyl9Y29udGludWV9bz10aGlzLl9zdGFjaz10aGlzLl9zdGFjay5fX3ByZXZ9cmV0dXJuIGl0ZXJhdG9yRG9uZSgpfTt2YXIgcWU9eC80LHplPXgvMixXZT14LzQ7ZnVuY3Rpb24gTGlzdChzKXt2YXIgbz1lbXB0eUxpc3QoKTtpZihudWxsPT1zKXJldHVybiBvO2lmKGlzTGlzdChzKSlyZXR1cm4gczt2YXIgaT1JbmRleGVkSXRlcmFibGUocyksYT1pLnNpemU7cmV0dXJuIDA9PT1hP286KGFzc2VydE5vdEluZmluaXRlKGEpLGE+MCYmYTx4P21ha2VMaXN0KDAsYSx3LG51bGwsbmV3IFZOb2RlKGkudG9BcnJheSgpKSk6by53aXRoTXV0YXRpb25zKChmdW5jdGlvbihzKXtzLnNldFNpemUoYSksaS5mb3JFYWNoKChmdW5jdGlvbihvLGkpe3JldHVybiBzLnNldChpLG8pfSkpfSkpKX1mdW5jdGlvbiBpc0xpc3Qocyl7cmV0dXJuISghc3x8IXNbSGVdKX1jcmVhdGVDbGFzcyhMaXN0LEluZGV4ZWRDb2xsZWN0aW9uKSxMaXN0Lm9mPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMoYXJndW1lbnRzKX0sTGlzdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX3RvU3RyaW5nKCJMaXN0IFsiLCJdIil9LExpc3QucHJvdG90eXBlLmdldD1mdW5jdGlvbihzLG8pe2lmKChzPXdyYXBJbmRleCh0aGlzLHMpKT49MCYmczx0aGlzLnNpemUpe3ZhciBpPWxpc3ROb2RlRm9yKHRoaXMscys9dGhpcy5fb3JpZ2luKTtyZXR1cm4gaSYmaS5hcnJheVtzJkNdfXJldHVybiBvfSxMaXN0LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdXBkYXRlTGlzdCh0aGlzLHMsbyl9LExpc3QucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihzKXtyZXR1cm4gdGhpcy5oYXMocyk/MD09PXM/dGhpcy5zaGlmdCgpOnM9PT10aGlzLnNpemUtMT90aGlzLnBvcCgpOnRoaXMuc3BsaWNlKHMsMSk6dGhpc30sTGlzdC5wcm90b3R5cGUuaW5zZXJ0PWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHRoaXMuc3BsaWNlKHMsMCxvKX0sTGlzdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuc2l6ZT90aGlzOnRoaXMuX19vd25lcklEPyh0aGlzLnNpemU9dGhpcy5fb3JpZ2luPXRoaXMuX2NhcGFjaXR5PTAsdGhpcy5fbGV2ZWw9dyx0aGlzLl9yb290PXRoaXMuX3RhaWw9bnVsbCx0aGlzLl9faGFzaD12b2lkIDAsdGhpcy5fX2FsdGVyZWQ9ITAsdGhpcyk6ZW1wdHlMaXN0KCl9LExpc3QucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oKXt2YXIgcz1hcmd1bWVudHMsbz10aGlzLnNpemU7cmV0dXJuIHRoaXMud2l0aE11dGF0aW9ucygoZnVuY3Rpb24oaSl7c2V0TGlzdEJvdW5kcyhpLDAsbytzLmxlbmd0aCk7Zm9yKHZhciBhPTA7YTxzLmxlbmd0aDthKyspaS5zZXQobythLHNbYV0pfSkpfSxMaXN0LnByb3RvdHlwZS5wb3A9ZnVuY3Rpb24oKXtyZXR1cm4gc2V0TGlzdEJvdW5kcyh0aGlzLDAsLTEpfSxMaXN0LnByb3RvdHlwZS51bnNoaWZ0PWZ1bmN0aW9uKCl7dmFyIHM9YXJndW1lbnRzO3JldHVybiB0aGlzLndpdGhNdXRhdGlvbnMoKGZ1bmN0aW9uKG8pe3NldExpc3RCb3VuZHMobywtcy5sZW5ndGgpO2Zvcih2YXIgaT0wO2k8cy5sZW5ndGg7aSsrKW8uc2V0KGksc1tpXSl9KSl9LExpc3QucHJvdG90eXBlLnNoaWZ0PWZ1bmN0aW9uKCl7cmV0dXJuIHNldExpc3RCb3VuZHModGhpcywxKX0sTGlzdC5wcm90b3R5cGUubWVyZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gbWVyZ2VJbnRvTGlzdFdpdGgodGhpcyx2b2lkIDAsYXJndW1lbnRzKX0sTGlzdC5wcm90b3R5cGUubWVyZ2VXaXRoPWZ1bmN0aW9uKG8pe3JldHVybiBtZXJnZUludG9MaXN0V2l0aCh0aGlzLG8scy5jYWxsKGFyZ3VtZW50cywxKSl9LExpc3QucHJvdG90eXBlLm1lcmdlRGVlcD1mdW5jdGlvbigpe3JldHVybiBtZXJnZUludG9MaXN0V2l0aCh0aGlzLGRlZXBNZXJnZXIsYXJndW1lbnRzKX0sTGlzdC5wcm90b3R5cGUubWVyZ2VEZWVwV2l0aD1mdW5jdGlvbihvKXt2YXIgaT1zLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBtZXJnZUludG9MaXN0V2l0aCh0aGlzLGRlZXBNZXJnZXJXaXRoKG8pLGkpfSxMaXN0LnByb3RvdHlwZS5zZXRTaXplPWZ1bmN0aW9uKHMpe3JldHVybiBzZXRMaXN0Qm91bmRzKHRoaXMsMCxzKX0sTGlzdC5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24ocyxvKXt2YXIgaT10aGlzLnNpemU7cmV0dXJuIHdob2xlU2xpY2UocyxvLGkpP3RoaXM6c2V0TGlzdEJvdW5kcyh0aGlzLHJlc29sdmVCZWdpbihzLGkpLHJlc29sdmVFbmQobyxpKSl9LExpc3QucHJvdG90eXBlLl9faXRlcmF0b3I9ZnVuY3Rpb24ocyxvKXt2YXIgaT0wLGE9aXRlcmF0ZUxpc3QodGhpcyxvKTtyZXR1cm4gbmV3IEl0ZXJhdG9yKChmdW5jdGlvbigpe3ZhciBvPWEoKTtyZXR1cm4gbz09PWV0P2l0ZXJhdG9yRG9uZSgpOml0ZXJhdG9yVmFsdWUocyxpKyssbyl9KSl9LExpc3QucHJvdG90eXBlLl9faXRlcmF0ZT1mdW5jdGlvbihzLG8pe2Zvcih2YXIgaSxhPTAsdT1pdGVyYXRlTGlzdCh0aGlzLG8pOyhpPXUoKSkhPT1ldCYmITEhPT1zKGksYSsrLHRoaXMpOyk7cmV0dXJuIGF9LExpc3QucHJvdG90eXBlLl9fZW5zdXJlT3duZXI9ZnVuY3Rpb24ocyl7cmV0dXJuIHM9PT10aGlzLl9fb3duZXJJRD90aGlzOnM/bWFrZUxpc3QodGhpcy5fb3JpZ2luLHRoaXMuX2NhcGFjaXR5LHRoaXMuX2xldmVsLHRoaXMuX3Jvb3QsdGhpcy5fdGFpbCxzLHRoaXMuX19oYXNoKToodGhpcy5fX293bmVySUQ9cyx0aGlzKX0sTGlzdC5pc0xpc3Q9aXNMaXN0O3ZhciBIZT0iQEBfX0lNTVVUQUJMRV9MSVNUX19AQCIsWWU9TGlzdC5wcm90b3R5cGU7ZnVuY3Rpb24gVk5vZGUocyxvKXt0aGlzLmFycmF5PXMsdGhpcy5vd25lcklEPW99WWVbSGVdPSEwLFllW19dPVllLnJlbW92ZSxZZS5zZXRJbj0kZS5zZXRJbixZZS5kZWxldGVJbj1ZZS5yZW1vdmVJbj0kZS5yZW1vdmVJbixZZS51cGRhdGU9JGUudXBkYXRlLFllLnVwZGF0ZUluPSRlLnVwZGF0ZUluLFllLm1lcmdlSW49JGUubWVyZ2VJbixZZS5tZXJnZURlZXBJbj0kZS5tZXJnZURlZXBJbixZZS53aXRoTXV0YXRpb25zPSRlLndpdGhNdXRhdGlvbnMsWWUuYXNNdXRhYmxlPSRlLmFzTXV0YWJsZSxZZS5hc0ltbXV0YWJsZT0kZS5hc0ltbXV0YWJsZSxZZS53YXNBbHRlcmVkPSRlLndhc0FsdGVyZWQsVk5vZGUucHJvdG90eXBlLnJlbW92ZUJlZm9yZT1mdW5jdGlvbihzLG8saSl7aWYoaT09PW8/MTw8bzowPT09dGhpcy5hcnJheS5sZW5ndGgpcmV0dXJuIHRoaXM7dmFyIGE9aT4+Pm8mQztpZihhPj10aGlzLmFycmF5Lmxlbmd0aClyZXR1cm4gbmV3IFZOb2RlKFtdLHMpO3ZhciB1LF89MD09PWE7aWYobz4wKXt2YXIgeD10aGlzLmFycmF5W2FdO2lmKCh1PXgmJngucmVtb3ZlQmVmb3JlKHMsby13LGkpKT09PXgmJl8pcmV0dXJuIHRoaXN9aWYoXyYmIXUpcmV0dXJuIHRoaXM7dmFyIGo9ZWRpdGFibGVWTm9kZSh0aGlzLHMpO2lmKCFfKWZvcih2YXIgTD0wO0w8YTtMKyspai5hcnJheVtMXT12b2lkIDA7cmV0dXJuIHUmJihqLmFycmF5W2FdPXUpLGp9LFZOb2RlLnByb3RvdHlwZS5yZW1vdmVBZnRlcj1mdW5jdGlvbihzLG8saSl7aWYoaT09PShvPzE8PG86MCl8fDA9PT10aGlzLmFycmF5Lmxlbmd0aClyZXR1cm4gdGhpczt2YXIgYSx1PWktMT4+Pm8mQztpZih1Pj10aGlzLmFycmF5Lmxlbmd0aClyZXR1cm4gdGhpcztpZihvPjApe3ZhciBfPXRoaXMuYXJyYXlbdV07aWYoKGE9XyYmXy5yZW1vdmVBZnRlcihzLG8tdyxpKSk9PT1fJiZ1PT09dGhpcy5hcnJheS5sZW5ndGgtMSlyZXR1cm4gdGhpc312YXIgeD1lZGl0YWJsZVZOb2RlKHRoaXMscyk7cmV0dXJuIHguYXJyYXkuc3BsaWNlKHUrMSksYSYmKHguYXJyYXlbdV09YSkseH07dmFyIFhlLFFlLGV0PXt9O2Z1bmN0aW9uIGl0ZXJhdGVMaXN0KHMsbyl7dmFyIGk9cy5fb3JpZ2luLGE9cy5fY2FwYWNpdHksdT1nZXRUYWlsT2Zmc2V0KGEpLF89cy5fdGFpbDtyZXR1cm4gaXRlcmF0ZU5vZGVPckxlYWYocy5fcm9vdCxzLl9sZXZlbCwwKTtmdW5jdGlvbiBpdGVyYXRlTm9kZU9yTGVhZihzLG8saSl7cmV0dXJuIDA9PT1vP2l0ZXJhdGVMZWFmKHMsaSk6aXRlcmF0ZU5vZGUocyxvLGkpfWZ1bmN0aW9uIGl0ZXJhdGVMZWFmKHMsdyl7dmFyIEM9dz09PXU/XyYmXy5hcnJheTpzJiZzLmFycmF5LGo9dz5pPzA6aS13LEw9YS13O3JldHVybiBMPngmJihMPXgpLGZ1bmN0aW9uKCl7aWYoaj09PUwpcmV0dXJuIGV0O3ZhciBzPW8/LS1MOmorKztyZXR1cm4gQyYmQ1tzXX19ZnVuY3Rpb24gaXRlcmF0ZU5vZGUocyx1LF8pe3ZhciBDLGo9cyYmcy5hcnJheSxMPV8+aT8wOmktXz4+dSxCPTErKGEtXz4+dSk7cmV0dXJuIEI+eCYmKEI9eCksZnVuY3Rpb24oKXtmb3IoOzspe2lmKEMpe3ZhciBzPUMoKTtpZihzIT09ZXQpcmV0dXJuIHM7Qz1udWxsfWlmKEw9PT1CKXJldHVybiBldDt2YXIgaT1vPy0tQjpMKys7Qz1pdGVyYXRlTm9kZU9yTGVhZihqJiZqW2ldLHUtdyxfKyhpPDx1KSl9fX19ZnVuY3Rpb24gbWFrZUxpc3QocyxvLGksYSx1LF8sdyl7dmFyIHg9T2JqZWN0LmNyZWF0ZShZZSk7cmV0dXJuIHguc2l6ZT1vLXMseC5fb3JpZ2luPXMseC5fY2FwYWNpdHk9byx4Ll9sZXZlbD1pLHguX3Jvb3Q9YSx4Ll90YWlsPXUseC5fX293bmVySUQ9Xyx4Ll9faGFzaD13LHguX19hbHRlcmVkPSExLHh9ZnVuY3Rpb24gZW1wdHlMaXN0KCl7cmV0dXJuIFhlfHwoWGU9bWFrZUxpc3QoMCwwLHcpKX1mdW5jdGlvbiB1cGRhdGVMaXN0KHMsbyxpKXtpZigobz13cmFwSW5kZXgocyxvKSkhPW8pcmV0dXJuIHM7aWYobz49cy5zaXplfHxvPDApcmV0dXJuIHMud2l0aE11dGF0aW9ucygoZnVuY3Rpb24ocyl7bzwwP3NldExpc3RCb3VuZHMocyxvKS5zZXQoMCxpKTpzZXRMaXN0Qm91bmRzKHMsMCxvKzEpLnNldChvLGkpfSkpO28rPXMuX29yaWdpbjt2YXIgYT1zLl90YWlsLHU9cy5fcm9vdCxfPU1ha2VSZWYoQik7cmV0dXJuIG8+PWdldFRhaWxPZmZzZXQocy5fY2FwYWNpdHkpP2E9dXBkYXRlVk5vZGUoYSxzLl9fb3duZXJJRCwwLG8saSxfKTp1PXVwZGF0ZVZOb2RlKHUscy5fX293bmVySUQscy5fbGV2ZWwsbyxpLF8pLF8udmFsdWU/cy5fX293bmVySUQ/KHMuX3Jvb3Q9dSxzLl90YWlsPWEscy5fX2hhc2g9dm9pZCAwLHMuX19hbHRlcmVkPSEwLHMpOm1ha2VMaXN0KHMuX29yaWdpbixzLl9jYXBhY2l0eSxzLl9sZXZlbCx1LGEpOnN9ZnVuY3Rpb24gdXBkYXRlVk5vZGUocyxvLGksYSx1LF8pe3ZhciB4LGo9YT4+PmkmQyxMPXMmJmo8cy5hcnJheS5sZW5ndGg7aWYoIUwmJnZvaWQgMD09PXUpcmV0dXJuIHM7aWYoaT4wKXt2YXIgQj1zJiZzLmFycmF5W2pdLCQ9dXBkYXRlVk5vZGUoQixvLGktdyxhLHUsXyk7cmV0dXJuICQ9PT1CP3M6KCh4PWVkaXRhYmxlVk5vZGUocyxvKSkuYXJyYXlbal09JCx4KX1yZXR1cm4gTCYmcy5hcnJheVtqXT09PXU/czooU2V0UmVmKF8pLHg9ZWRpdGFibGVWTm9kZShzLG8pLHZvaWQgMD09PXUmJmo9PT14LmFycmF5Lmxlbmd0aC0xP3guYXJyYXkucG9wKCk6eC5hcnJheVtqXT11LHgpfWZ1bmN0aW9uIGVkaXRhYmxlVk5vZGUocyxvKXtyZXR1cm4gbyYmcyYmbz09PXMub3duZXJJRD9zOm5ldyBWTm9kZShzP3MuYXJyYXkuc2xpY2UoKTpbXSxvKX1mdW5jdGlvbiBsaXN0Tm9kZUZvcihzLG8pe2lmKG8+PWdldFRhaWxPZmZzZXQocy5fY2FwYWNpdHkpKXJldHVybiBzLl90YWlsO2lmKG88MTw8cy5fbGV2ZWwrdyl7Zm9yKHZhciBpPXMuX3Jvb3QsYT1zLl9sZXZlbDtpJiZhPjA7KWk9aS5hcnJheVtvPj4+YSZDXSxhLT13O3JldHVybiBpfX1mdW5jdGlvbiBzZXRMaXN0Qm91bmRzKHMsbyxpKXt2b2lkIDAhPT1vJiYob3w9MCksdm9pZCAwIT09aSYmKGl8PTApO3ZhciBhPXMuX19vd25lcklEfHxuZXcgT3duZXJJRCx1PXMuX29yaWdpbixfPXMuX2NhcGFjaXR5LHg9dStvLGo9dm9pZCAwPT09aT9fOmk8MD9fK2k6dStpO2lmKHg9PT11JiZqPT09XylyZXR1cm4gcztpZih4Pj1qKXJldHVybiBzLmNsZWFyKCk7Zm9yKHZhciBMPXMuX2xldmVsLEI9cy5fcm9vdCwkPTA7eCskPDA7KUI9bmV3IFZOb2RlKEImJkIuYXJyYXkubGVuZ3RoP1t2b2lkIDAsQl06W10sYSksJCs9MTw8KEwrPXcpOyQmJih4Kz0kLHUrPSQsais9JCxfKz0kKTtmb3IodmFyIFY9Z2V0VGFpbE9mZnNldChfKSxVPWdldFRhaWxPZmZzZXQoaik7VT49MTw8TCt3OylCPW5ldyBWTm9kZShCJiZCLmFycmF5Lmxlbmd0aD9bQl06W10sYSksTCs9dzt2YXIgej1zLl90YWlsLFk9VTxWP2xpc3ROb2RlRm9yKHMsai0xKTpVPlY/bmV3IFZOb2RlKFtdLGEpOno7aWYoeiYmVT5WJiZ4PF8mJnouYXJyYXkubGVuZ3RoKXtmb3IodmFyIFo9Qj1lZGl0YWJsZVZOb2RlKEIsYSksZWU9TDtlZT53O2VlLT13KXt2YXIgaWU9Vj4+PmVlJkM7Wj1aLmFycmF5W2llXT1lZGl0YWJsZVZOb2RlKFouYXJyYXlbaWVdLGEpfVouYXJyYXlbVj4+PncmQ109en1pZihqPF8mJihZPVkmJlkucmVtb3ZlQWZ0ZXIoYSwwLGopKSx4Pj1VKXgtPVUsai09VSxMPXcsQj1udWxsLFk9WSYmWS5yZW1vdmVCZWZvcmUoYSwwLHgpO2Vsc2UgaWYoeD51fHxVPFYpe2ZvcigkPTA7Qjspe3ZhciBhZT14Pj4+TCZDO2lmKGFlIT09VT4+PkwmQylicmVhazthZSYmKCQrPSgxPDxMKSphZSksTC09dyxCPUIuYXJyYXlbYWVdfUImJng+dSYmKEI9Qi5yZW1vdmVCZWZvcmUoYSxMLHgtJCkpLEImJlU8ViYmKEI9Qi5yZW1vdmVBZnRlcihhLEwsVS0kKSksJCYmKHgtPSQsai09JCl9cmV0dXJuIHMuX19vd25lcklEPyhzLnNpemU9ai14LHMuX29yaWdpbj14LHMuX2NhcGFjaXR5PWoscy5fbGV2ZWw9TCxzLl9yb290PUIscy5fdGFpbD1ZLHMuX19oYXNoPXZvaWQgMCxzLl9fYWx0ZXJlZD0hMCxzKTptYWtlTGlzdCh4LGosTCxCLFkpfWZ1bmN0aW9uIG1lcmdlSW50b0xpc3RXaXRoKHMsbyxpKXtmb3IodmFyIGE9W10sdT0wLF89MDtfPGkubGVuZ3RoO18rKyl7dmFyIHc9aVtfXSx4PUluZGV4ZWRJdGVyYWJsZSh3KTt4LnNpemU+dSYmKHU9eC5zaXplKSxpc0l0ZXJhYmxlKHcpfHwoeD14Lm1hcCgoZnVuY3Rpb24ocyl7cmV0dXJuIGZyb21KUyhzKX0pKSksYS5wdXNoKHgpfXJldHVybiB1PnMuc2l6ZSYmKHM9cy5zZXRTaXplKHUpKSxtZXJnZUludG9Db2xsZWN0aW9uV2l0aChzLG8sYSl9ZnVuY3Rpb24gZ2V0VGFpbE9mZnNldChzKXtyZXR1cm4gczx4PzA6cy0xPj4+dzw8d31mdW5jdGlvbiBPcmRlcmVkTWFwKHMpe3JldHVybiBudWxsPT1zP2VtcHR5T3JkZXJlZE1hcCgpOmlzT3JkZXJlZE1hcChzKT9zOmVtcHR5T3JkZXJlZE1hcCgpLndpdGhNdXRhdGlvbnMoKGZ1bmN0aW9uKG8pe3ZhciBpPUtleWVkSXRlcmFibGUocyk7YXNzZXJ0Tm90SW5maW5pdGUoaS5zaXplKSxpLmZvckVhY2goKGZ1bmN0aW9uKHMsaSl7cmV0dXJuIG8uc2V0KGkscyl9KSl9KSl9ZnVuY3Rpb24gaXNPcmRlcmVkTWFwKHMpe3JldHVybiBpc01hcChzKSYmaXNPcmRlcmVkKHMpfWZ1bmN0aW9uIG1ha2VPcmRlcmVkTWFwKHMsbyxpLGEpe3ZhciB1PU9iamVjdC5jcmVhdGUoT3JkZXJlZE1hcC5wcm90b3R5cGUpO3JldHVybiB1LnNpemU9cz9zLnNpemU6MCx1Ll9tYXA9cyx1Ll9saXN0PW8sdS5fX293bmVySUQ9aSx1Ll9faGFzaD1hLHV9ZnVuY3Rpb24gZW1wdHlPcmRlcmVkTWFwKCl7cmV0dXJuIFFlfHwoUWU9bWFrZU9yZGVyZWRNYXAoZW1wdHlNYXAoKSxlbXB0eUxpc3QoKSkpfWZ1bmN0aW9uIHVwZGF0ZU9yZGVyZWRNYXAocyxvLGkpe3ZhciBhLHUsXz1zLl9tYXAsdz1zLl9saXN0LEM9Xy5nZXQobyksTD12b2lkIDAhPT1DO2lmKGk9PT1qKXtpZighTClyZXR1cm4gczt3LnNpemU+PXgmJncuc2l6ZT49MipfLnNpemU/KGE9KHU9dy5maWx0ZXIoKGZ1bmN0aW9uKHMsbyl7cmV0dXJuIHZvaWQgMCE9PXMmJkMhPT1vfSkpKS50b0tleWVkU2VxKCkubWFwKChmdW5jdGlvbihzKXtyZXR1cm4gc1swXX0pKS5mbGlwKCkudG9NYXAoKSxzLl9fb3duZXJJRCYmKGEuX19vd25lcklEPXUuX19vd25lcklEPXMuX19vd25lcklEKSk6KGE9Xy5yZW1vdmUobyksdT1DPT09dy5zaXplLTE/dy5wb3AoKTp3LnNldChDLHZvaWQgMCkpfWVsc2UgaWYoTCl7aWYoaT09PXcuZ2V0KEMpWzFdKXJldHVybiBzO2E9Xyx1PXcuc2V0KEMsW28saV0pfWVsc2UgYT1fLnNldChvLHcuc2l6ZSksdT13LnNldCh3LnNpemUsW28saV0pO3JldHVybiBzLl9fb3duZXJJRD8ocy5zaXplPWEuc2l6ZSxzLl9tYXA9YSxzLl9saXN0PXUscy5fX2hhc2g9dm9pZCAwLHMpOm1ha2VPcmRlcmVkTWFwKGEsdSl9ZnVuY3Rpb24gVG9LZXllZFNlcXVlbmNlKHMsbyl7dGhpcy5faXRlcj1zLHRoaXMuX3VzZUtleXM9byx0aGlzLnNpemU9cy5zaXplfWZ1bmN0aW9uIFRvSW5kZXhlZFNlcXVlbmNlKHMpe3RoaXMuX2l0ZXI9cyx0aGlzLnNpemU9cy5zaXplfWZ1bmN0aW9uIFRvU2V0U2VxdWVuY2Uocyl7dGhpcy5faXRlcj1zLHRoaXMuc2l6ZT1zLnNpemV9ZnVuY3Rpb24gRnJvbUVudHJpZXNTZXF1ZW5jZShzKXt0aGlzLl9pdGVyPXMsdGhpcy5zaXplPXMuc2l6ZX1mdW5jdGlvbiBmbGlwRmFjdG9yeShzKXt2YXIgbz1tYWtlU2VxdWVuY2Uocyk7cmV0dXJuIG8uX2l0ZXI9cyxvLnNpemU9cy5zaXplLG8uZmxpcD1mdW5jdGlvbigpe3JldHVybiBzfSxvLnJldmVyc2U9ZnVuY3Rpb24oKXt2YXIgbz1zLnJldmVyc2UuYXBwbHkodGhpcyk7cmV0dXJuIG8uZmxpcD1mdW5jdGlvbigpe3JldHVybiBzLnJldmVyc2UoKX0sb30sby5oYXM9ZnVuY3Rpb24obyl7cmV0dXJuIHMuaW5jbHVkZXMobyl9LG8uaW5jbHVkZXM9ZnVuY3Rpb24obyl7cmV0dXJuIHMuaGFzKG8pfSxvLmNhY2hlUmVzdWx0PWNhY2hlUmVzdWx0VGhyb3VnaCxvLl9faXRlcmF0ZVVuY2FjaGVkPWZ1bmN0aW9uKG8saSl7dmFyIGE9dGhpcztyZXR1cm4gcy5fX2l0ZXJhdGUoKGZ1bmN0aW9uKHMsaSl7cmV0dXJuITEhPT1vKGkscyxhKX0pLGkpfSxvLl9faXRlcmF0b3JVbmNhY2hlZD1mdW5jdGlvbihvLGkpe2lmKG89PT1VKXt2YXIgYT1zLl9faXRlcmF0b3IobyxpKTtyZXR1cm4gbmV3IEl0ZXJhdG9yKChmdW5jdGlvbigpe3ZhciBzPWEubmV4dCgpO2lmKCFzLmRvbmUpe3ZhciBvPXMudmFsdWVbMF07cy52YWx1ZVswXT1zLnZhbHVlWzFdLHMudmFsdWVbMV09b31yZXR1cm4gc30pKX1yZXR1cm4gcy5fX2l0ZXJhdG9yKG89PT1WPyQ6VixpKX0sb31mdW5jdGlvbiBtYXBGYWN0b3J5KHMsbyxpKXt2YXIgYT1tYWtlU2VxdWVuY2Uocyk7cmV0dXJuIGEuc2l6ZT1zLnNpemUsYS5oYXM9ZnVuY3Rpb24obyl7cmV0dXJuIHMuaGFzKG8pfSxhLmdldD1mdW5jdGlvbihhLHUpe3ZhciBfPXMuZ2V0KGEsaik7cmV0dXJuIF89PT1qP3U6by5jYWxsKGksXyxhLHMpfSxhLl9faXRlcmF0ZVVuY2FjaGVkPWZ1bmN0aW9uKGEsdSl7dmFyIF89dGhpcztyZXR1cm4gcy5fX2l0ZXJhdGUoKGZ1bmN0aW9uKHMsdSx3KXtyZXR1cm4hMSE9PWEoby5jYWxsKGkscyx1LHcpLHUsXyl9KSx1KX0sYS5fX2l0ZXJhdG9yVW5jYWNoZWQ9ZnVuY3Rpb24oYSx1KXt2YXIgXz1zLl9faXRlcmF0b3IoVSx1KTtyZXR1cm4gbmV3IEl0ZXJhdG9yKChmdW5jdGlvbigpe3ZhciB1PV8ubmV4dCgpO2lmKHUuZG9uZSlyZXR1cm4gdTt2YXIgdz11LnZhbHVlLHg9d1swXTtyZXR1cm4gaXRlcmF0b3JWYWx1ZShhLHgsby5jYWxsKGksd1sxXSx4LHMpLHUpfSkpfSxhfWZ1bmN0aW9uIHJldmVyc2VGYWN0b3J5KHMsbyl7dmFyIGk9bWFrZVNlcXVlbmNlKHMpO3JldHVybiBpLl9pdGVyPXMsaS5zaXplPXMuc2l6ZSxpLnJldmVyc2U9ZnVuY3Rpb24oKXtyZXR1cm4gc30scy5mbGlwJiYoaS5mbGlwPWZ1bmN0aW9uKCl7dmFyIG89ZmxpcEZhY3Rvcnkocyk7cmV0dXJuIG8ucmV2ZXJzZT1mdW5jdGlvbigpe3JldHVybiBzLmZsaXAoKX0sb30pLGkuZ2V0PWZ1bmN0aW9uKGksYSl7cmV0dXJuIHMuZ2V0KG8/aTotMS1pLGEpfSxpLmhhcz1mdW5jdGlvbihpKXtyZXR1cm4gcy5oYXMobz9pOi0xLWkpfSxpLmluY2x1ZGVzPWZ1bmN0aW9uKG8pe3JldHVybiBzLmluY2x1ZGVzKG8pfSxpLmNhY2hlUmVzdWx0PWNhY2hlUmVzdWx0VGhyb3VnaCxpLl9faXRlcmF0ZT1mdW5jdGlvbihvLGkpe3ZhciBhPXRoaXM7cmV0dXJuIHMuX19pdGVyYXRlKChmdW5jdGlvbihzLGkpe3JldHVybiBvKHMsaSxhKX0pLCFpKX0saS5fX2l0ZXJhdG9yPWZ1bmN0aW9uKG8saSl7cmV0dXJuIHMuX19pdGVyYXRvcihvLCFpKX0saX1mdW5jdGlvbiBmaWx0ZXJGYWN0b3J5KHMsbyxpLGEpe3ZhciB1PW1ha2VTZXF1ZW5jZShzKTtyZXR1cm4gYSYmKHUuaGFzPWZ1bmN0aW9uKGEpe3ZhciB1PXMuZ2V0KGEsaik7cmV0dXJuIHUhPT1qJiYhIW8uY2FsbChpLHUsYSxzKX0sdS5nZXQ9ZnVuY3Rpb24oYSx1KXt2YXIgXz1zLmdldChhLGopO3JldHVybiBfIT09aiYmby5jYWxsKGksXyxhLHMpP186dX0pLHUuX19pdGVyYXRlVW5jYWNoZWQ9ZnVuY3Rpb24odSxfKXt2YXIgdz10aGlzLHg9MDtyZXR1cm4gcy5fX2l0ZXJhdGUoKGZ1bmN0aW9uKHMsXyxDKXtpZihvLmNhbGwoaSxzLF8sQykpcmV0dXJuIHgrKyx1KHMsYT9fOngtMSx3KX0pLF8pLHh9LHUuX19pdGVyYXRvclVuY2FjaGVkPWZ1bmN0aW9uKHUsXyl7dmFyIHc9cy5fX2l0ZXJhdG9yKFUsXykseD0wO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7Zm9yKDs7KXt2YXIgXz13Lm5leHQoKTtpZihfLmRvbmUpcmV0dXJuIF87dmFyIEM9Xy52YWx1ZSxqPUNbMF0sTD1DWzFdO2lmKG8uY2FsbChpLEwsaixzKSlyZXR1cm4gaXRlcmF0b3JWYWx1ZSh1LGE/ajp4KyssTCxfKX19KSl9LHV9ZnVuY3Rpb24gY291bnRCeUZhY3RvcnkocyxvLGkpe3ZhciBhPU1hcCgpLmFzTXV0YWJsZSgpO3JldHVybiBzLl9faXRlcmF0ZSgoZnVuY3Rpb24odSxfKXthLnVwZGF0ZShvLmNhbGwoaSx1LF8scyksMCwoZnVuY3Rpb24ocyl7cmV0dXJuIHMrMX0pKX0pKSxhLmFzSW1tdXRhYmxlKCl9ZnVuY3Rpb24gZ3JvdXBCeUZhY3RvcnkocyxvLGkpe3ZhciBhPWlzS2V5ZWQocyksdT0oaXNPcmRlcmVkKHMpP09yZGVyZWRNYXAoKTpNYXAoKSkuYXNNdXRhYmxlKCk7cy5fX2l0ZXJhdGUoKGZ1bmN0aW9uKF8sdyl7dS51cGRhdGUoby5jYWxsKGksXyx3LHMpLChmdW5jdGlvbihzKXtyZXR1cm4ocz1zfHxbXSkucHVzaChhP1t3LF9dOl8pLHN9KSl9KSk7dmFyIF89aXRlcmFibGVDbGFzcyhzKTtyZXR1cm4gdS5tYXAoKGZ1bmN0aW9uKG8pe3JldHVybiByZWlmeShzLF8obykpfSkpfWZ1bmN0aW9uIHNsaWNlRmFjdG9yeShzLG8saSxhKXt2YXIgdT1zLnNpemU7aWYodm9pZCAwIT09byYmKG98PTApLHZvaWQgMCE9PWkmJihpPT09MS8wP2k9dTppfD0wKSx3aG9sZVNsaWNlKG8saSx1KSlyZXR1cm4gczt2YXIgXz1yZXNvbHZlQmVnaW4obyx1KSx3PXJlc29sdmVFbmQoaSx1KTtpZihfIT1ffHx3IT13KXJldHVybiBzbGljZUZhY3Rvcnkocy50b1NlcSgpLmNhY2hlUmVzdWx0KCksbyxpLGEpO3ZhciB4LEM9dy1fO0M9PUMmJih4PUM8MD8wOkMpO3ZhciBqPW1ha2VTZXF1ZW5jZShzKTtyZXR1cm4gai5zaXplPTA9PT14P3g6cy5zaXplJiZ4fHx2b2lkIDAsIWEmJmlzU2VxKHMpJiZ4Pj0wJiYoai5nZXQ9ZnVuY3Rpb24obyxpKXtyZXR1cm4obz13cmFwSW5kZXgodGhpcyxvKSk+PTAmJm88eD9zLmdldChvK18saSk6aX0pLGouX19pdGVyYXRlVW5jYWNoZWQ9ZnVuY3Rpb24obyxpKXt2YXIgdT10aGlzO2lmKDA9PT14KXJldHVybiAwO2lmKGkpcmV0dXJuIHRoaXMuY2FjaGVSZXN1bHQoKS5fX2l0ZXJhdGUobyxpKTt2YXIgdz0wLEM9ITAsaj0wO3JldHVybiBzLl9faXRlcmF0ZSgoZnVuY3Rpb24ocyxpKXtpZighQ3x8IShDPXcrKzxfKSlyZXR1cm4gaisrLCExIT09byhzLGE/aTpqLTEsdSkmJmohPT14fSkpLGp9LGouX19pdGVyYXRvclVuY2FjaGVkPWZ1bmN0aW9uKG8saSl7aWYoMCE9PXgmJmkpcmV0dXJuIHRoaXMuY2FjaGVSZXN1bHQoKS5fX2l0ZXJhdG9yKG8saSk7dmFyIHU9MCE9PXgmJnMuX19pdGVyYXRvcihvLGkpLHc9MCxDPTA7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXtmb3IoO3crKzxfOyl1Lm5leHQoKTtpZigrK0M+eClyZXR1cm4gaXRlcmF0b3JEb25lKCk7dmFyIHM9dS5uZXh0KCk7cmV0dXJuIGF8fG89PT1WP3M6aXRlcmF0b3JWYWx1ZShvLEMtMSxvPT09JD92b2lkIDA6cy52YWx1ZVsxXSxzKX0pKX0san1mdW5jdGlvbiB0YWtlV2hpbGVGYWN0b3J5KHMsbyxpKXt2YXIgYT1tYWtlU2VxdWVuY2Uocyk7cmV0dXJuIGEuX19pdGVyYXRlVW5jYWNoZWQ9ZnVuY3Rpb24oYSx1KXt2YXIgXz10aGlzO2lmKHUpcmV0dXJuIHRoaXMuY2FjaGVSZXN1bHQoKS5fX2l0ZXJhdGUoYSx1KTt2YXIgdz0wO3JldHVybiBzLl9faXRlcmF0ZSgoZnVuY3Rpb24ocyx1LHgpe3JldHVybiBvLmNhbGwoaSxzLHUseCkmJisrdyYmYShzLHUsXyl9KSksd30sYS5fX2l0ZXJhdG9yVW5jYWNoZWQ9ZnVuY3Rpb24oYSx1KXt2YXIgXz10aGlzO2lmKHUpcmV0dXJuIHRoaXMuY2FjaGVSZXN1bHQoKS5fX2l0ZXJhdG9yKGEsdSk7dmFyIHc9cy5fX2l0ZXJhdG9yKFUsdSkseD0hMDtyZXR1cm4gbmV3IEl0ZXJhdG9yKChmdW5jdGlvbigpe2lmKCF4KXJldHVybiBpdGVyYXRvckRvbmUoKTt2YXIgcz13Lm5leHQoKTtpZihzLmRvbmUpcmV0dXJuIHM7dmFyIHU9cy52YWx1ZSxDPXVbMF0saj11WzFdO3JldHVybiBvLmNhbGwoaSxqLEMsXyk/YT09PVU/czppdGVyYXRvclZhbHVlKGEsQyxqLHMpOih4PSExLGl0ZXJhdG9yRG9uZSgpKX0pKX0sYX1mdW5jdGlvbiBza2lwV2hpbGVGYWN0b3J5KHMsbyxpLGEpe3ZhciB1PW1ha2VTZXF1ZW5jZShzKTtyZXR1cm4gdS5fX2l0ZXJhdGVVbmNhY2hlZD1mdW5jdGlvbih1LF8pe3ZhciB3PXRoaXM7aWYoXylyZXR1cm4gdGhpcy5jYWNoZVJlc3VsdCgpLl9faXRlcmF0ZSh1LF8pO3ZhciB4PSEwLEM9MDtyZXR1cm4gcy5fX2l0ZXJhdGUoKGZ1bmN0aW9uKHMsXyxqKXtpZigheHx8ISh4PW8uY2FsbChpLHMsXyxqKSkpcmV0dXJuIEMrKyx1KHMsYT9fOkMtMSx3KX0pKSxDfSx1Ll9faXRlcmF0b3JVbmNhY2hlZD1mdW5jdGlvbih1LF8pe3ZhciB3PXRoaXM7aWYoXylyZXR1cm4gdGhpcy5jYWNoZVJlc3VsdCgpLl9faXRlcmF0b3IodSxfKTt2YXIgeD1zLl9faXRlcmF0b3IoVSxfKSxDPSEwLGo9MDtyZXR1cm4gbmV3IEl0ZXJhdG9yKChmdW5jdGlvbigpe3ZhciBzLF8sTDtkb3tpZigocz14Lm5leHQoKSkuZG9uZSlyZXR1cm4gYXx8dT09PVY/czppdGVyYXRvclZhbHVlKHUsaisrLHU9PT0kP3ZvaWQgMDpzLnZhbHVlWzFdLHMpO3ZhciBCPXMudmFsdWU7Xz1CWzBdLEw9QlsxXSxDJiYoQz1vLmNhbGwoaSxMLF8sdykpfXdoaWxlKEMpO3JldHVybiB1PT09VT9zOml0ZXJhdG9yVmFsdWUodSxfLEwscyl9KSl9LHV9ZnVuY3Rpb24gY29uY2F0RmFjdG9yeShzLG8pe3ZhciBpPWlzS2V5ZWQocyksYT1bc10uY29uY2F0KG8pLm1hcCgoZnVuY3Rpb24ocyl7cmV0dXJuIGlzSXRlcmFibGUocyk/aSYmKHM9S2V5ZWRJdGVyYWJsZShzKSk6cz1pP2tleWVkU2VxRnJvbVZhbHVlKHMpOmluZGV4ZWRTZXFGcm9tVmFsdWUoQXJyYXkuaXNBcnJheShzKT9zOltzXSksc30pKS5maWx0ZXIoKGZ1bmN0aW9uKHMpe3JldHVybiAwIT09cy5zaXplfSkpO2lmKDA9PT1hLmxlbmd0aClyZXR1cm4gcztpZigxPT09YS5sZW5ndGgpe3ZhciB1PWFbMF07aWYodT09PXN8fGkmJmlzS2V5ZWQodSl8fGlzSW5kZXhlZChzKSYmaXNJbmRleGVkKHUpKXJldHVybiB1fXZhciBfPW5ldyBBcnJheVNlcShhKTtyZXR1cm4gaT9fPV8udG9LZXllZFNlcSgpOmlzSW5kZXhlZChzKXx8KF89Xy50b1NldFNlcSgpKSwoXz1fLmZsYXR0ZW4oITApKS5zaXplPWEucmVkdWNlKChmdW5jdGlvbihzLG8pe2lmKHZvaWQgMCE9PXMpe3ZhciBpPW8uc2l6ZTtpZih2b2lkIDAhPT1pKXJldHVybiBzK2l9fSksMCksX31mdW5jdGlvbiBmbGF0dGVuRmFjdG9yeShzLG8saSl7dmFyIGE9bWFrZVNlcXVlbmNlKHMpO3JldHVybiBhLl9faXRlcmF0ZVVuY2FjaGVkPWZ1bmN0aW9uKGEsdSl7dmFyIF89MCx3PSExO2Z1bmN0aW9uIGZsYXREZWVwKHMseCl7dmFyIEM9dGhpcztzLl9faXRlcmF0ZSgoZnVuY3Rpb24ocyx1KXtyZXR1cm4oIW98fHg8bykmJmlzSXRlcmFibGUocyk/ZmxhdERlZXAocyx4KzEpOiExPT09YShzLGk/dTpfKyssQykmJih3PSEwKSwhd30pLHUpfXJldHVybiBmbGF0RGVlcChzLDApLF99LGEuX19pdGVyYXRvclVuY2FjaGVkPWZ1bmN0aW9uKGEsdSl7dmFyIF89cy5fX2l0ZXJhdG9yKGEsdSksdz1bXSx4PTA7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXtmb3IoO187KXt2YXIgcz1fLm5leHQoKTtpZighMT09PXMuZG9uZSl7dmFyIEM9cy52YWx1ZTtpZihhPT09VSYmKEM9Q1sxXSksbyYmISh3Lmxlbmd0aDxvKXx8IWlzSXRlcmFibGUoQykpcmV0dXJuIGk/czppdGVyYXRvclZhbHVlKGEseCsrLEMscyk7dy5wdXNoKF8pLF89Qy5fX2l0ZXJhdG9yKGEsdSl9ZWxzZSBfPXcucG9wKCl9cmV0dXJuIGl0ZXJhdG9yRG9uZSgpfSkpfSxhfWZ1bmN0aW9uIGZsYXRNYXBGYWN0b3J5KHMsbyxpKXt2YXIgYT1pdGVyYWJsZUNsYXNzKHMpO3JldHVybiBzLnRvU2VxKCkubWFwKChmdW5jdGlvbih1LF8pe3JldHVybiBhKG8uY2FsbChpLHUsXyxzKSl9KSkuZmxhdHRlbighMCl9ZnVuY3Rpb24gaW50ZXJwb3NlRmFjdG9yeShzLG8pe3ZhciBpPW1ha2VTZXF1ZW5jZShzKTtyZXR1cm4gaS5zaXplPXMuc2l6ZSYmMipzLnNpemUtMSxpLl9faXRlcmF0ZVVuY2FjaGVkPWZ1bmN0aW9uKGksYSl7dmFyIHU9dGhpcyxfPTA7cmV0dXJuIHMuX19pdGVyYXRlKChmdW5jdGlvbihzLGEpe3JldHVybighX3x8ITEhPT1pKG8sXysrLHUpKSYmITEhPT1pKHMsXysrLHUpfSksYSksX30saS5fX2l0ZXJhdG9yVW5jYWNoZWQ9ZnVuY3Rpb24oaSxhKXt2YXIgdSxfPXMuX19pdGVyYXRvcihWLGEpLHc9MDtyZXR1cm4gbmV3IEl0ZXJhdG9yKChmdW5jdGlvbigpe3JldHVybighdXx8dyUyKSYmKHU9Xy5uZXh0KCkpLmRvbmU/dTp3JTI/aXRlcmF0b3JWYWx1ZShpLHcrKyxvKTppdGVyYXRvclZhbHVlKGksdysrLHUudmFsdWUsdSl9KSl9LGl9ZnVuY3Rpb24gc29ydEZhY3RvcnkocyxvLGkpe298fChvPWRlZmF1bHRDb21wYXJhdG9yKTt2YXIgYT1pc0tleWVkKHMpLHU9MCxfPXMudG9TZXEoKS5tYXAoKGZ1bmN0aW9uKG8sYSl7cmV0dXJuW2Esbyx1KyssaT9pKG8sYSxzKTpvXX0pKS50b0FycmF5KCk7cmV0dXJuIF8uc29ydCgoZnVuY3Rpb24ocyxpKXtyZXR1cm4gbyhzWzNdLGlbM10pfHxzWzJdLWlbMl19KSkuZm9yRWFjaChhP2Z1bmN0aW9uKHMsbyl7X1tvXS5sZW5ndGg9Mn06ZnVuY3Rpb24ocyxvKXtfW29dPXNbMV19KSxhP0tleWVkU2VxKF8pOmlzSW5kZXhlZChzKT9JbmRleGVkU2VxKF8pOlNldFNlcShfKX1mdW5jdGlvbiBtYXhGYWN0b3J5KHMsbyxpKXtpZihvfHwobz1kZWZhdWx0Q29tcGFyYXRvciksaSl7dmFyIGE9cy50b1NlcSgpLm1hcCgoZnVuY3Rpb24obyxhKXtyZXR1cm5bbyxpKG8sYSxzKV19KSkucmVkdWNlKChmdW5jdGlvbihzLGkpe3JldHVybiBtYXhDb21wYXJlKG8sc1sxXSxpWzFdKT9pOnN9KSk7cmV0dXJuIGEmJmFbMF19cmV0dXJuIHMucmVkdWNlKChmdW5jdGlvbihzLGkpe3JldHVybiBtYXhDb21wYXJlKG8scyxpKT9pOnN9KSl9ZnVuY3Rpb24gbWF4Q29tcGFyZShzLG8saSl7dmFyIGE9cyhpLG8pO3JldHVybiAwPT09YSYmaSE9PW8mJihudWxsPT1pfHxpIT1pKXx8YT4wfWZ1bmN0aW9uIHppcFdpdGhGYWN0b3J5KHMsbyxpKXt2YXIgYT1tYWtlU2VxdWVuY2Uocyk7cmV0dXJuIGEuc2l6ZT1uZXcgQXJyYXlTZXEoaSkubWFwKChmdW5jdGlvbihzKXtyZXR1cm4gcy5zaXplfSkpLm1pbigpLGEuX19pdGVyYXRlPWZ1bmN0aW9uKHMsbyl7Zm9yKHZhciBpLGE9dGhpcy5fX2l0ZXJhdG9yKFYsbyksdT0wOyEoaT1hLm5leHQoKSkuZG9uZSYmITEhPT1zKGkudmFsdWUsdSsrLHRoaXMpOyk7cmV0dXJuIHV9LGEuX19pdGVyYXRvclVuY2FjaGVkPWZ1bmN0aW9uKHMsYSl7dmFyIHU9aS5tYXAoKGZ1bmN0aW9uKHMpe3JldHVybiBzPUl0ZXJhYmxlKHMpLGdldEl0ZXJhdG9yKGE/cy5yZXZlcnNlKCk6cyl9KSksXz0wLHc9ITE7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXt2YXIgaTtyZXR1cm4gd3x8KGk9dS5tYXAoKGZ1bmN0aW9uKHMpe3JldHVybiBzLm5leHQoKX0pKSx3PWkuc29tZSgoZnVuY3Rpb24ocyl7cmV0dXJuIHMuZG9uZX0pKSksdz9pdGVyYXRvckRvbmUoKTppdGVyYXRvclZhbHVlKHMsXysrLG8uYXBwbHkobnVsbCxpLm1hcCgoZnVuY3Rpb24ocyl7cmV0dXJuIHMudmFsdWV9KSkpKX0pKX0sYX1mdW5jdGlvbiByZWlmeShzLG8pe3JldHVybiBpc1NlcShzKT9vOnMuY29uc3RydWN0b3Iobyl9ZnVuY3Rpb24gdmFsaWRhdGVFbnRyeShzKXtpZihzIT09T2JqZWN0KHMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIFtLLCBWXSB0dXBsZTogIitzKX1mdW5jdGlvbiByZXNvbHZlU2l6ZShzKXtyZXR1cm4gYXNzZXJ0Tm90SW5maW5pdGUocy5zaXplKSxlbnN1cmVTaXplKHMpfWZ1bmN0aW9uIGl0ZXJhYmxlQ2xhc3Mocyl7cmV0dXJuIGlzS2V5ZWQocyk/S2V5ZWRJdGVyYWJsZTppc0luZGV4ZWQocyk/SW5kZXhlZEl0ZXJhYmxlOlNldEl0ZXJhYmxlfWZ1bmN0aW9uIG1ha2VTZXF1ZW5jZShzKXtyZXR1cm4gT2JqZWN0LmNyZWF0ZSgoaXNLZXllZChzKT9LZXllZFNlcTppc0luZGV4ZWQocyk/SW5kZXhlZFNlcTpTZXRTZXEpLnByb3RvdHlwZSl9ZnVuY3Rpb24gY2FjaGVSZXN1bHRUaHJvdWdoKCl7cmV0dXJuIHRoaXMuX2l0ZXIuY2FjaGVSZXN1bHQ/KHRoaXMuX2l0ZXIuY2FjaGVSZXN1bHQoKSx0aGlzLnNpemU9dGhpcy5faXRlci5zaXplLHRoaXMpOlNlcS5wcm90b3R5cGUuY2FjaGVSZXN1bHQuY2FsbCh0aGlzKX1mdW5jdGlvbiBkZWZhdWx0Q29tcGFyYXRvcihzLG8pe3JldHVybiBzPm8/MTpzPG8/LTE6MH1mdW5jdGlvbiBmb3JjZUl0ZXJhdG9yKHMpe3ZhciBvPWdldEl0ZXJhdG9yKHMpO2lmKCFvKXtpZighaXNBcnJheUxpa2UocykpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgaXRlcmFibGUgb3IgYXJyYXktbGlrZTogIitzKTtvPWdldEl0ZXJhdG9yKEl0ZXJhYmxlKHMpKX1yZXR1cm4gb31mdW5jdGlvbiBSZWNvcmQocyxvKXt2YXIgaSxhPWZ1bmN0aW9uIFJlY29yZChfKXtpZihfIGluc3RhbmNlb2YgYSlyZXR1cm4gXztpZighKHRoaXMgaW5zdGFuY2VvZiBhKSlyZXR1cm4gbmV3IGEoXyk7aWYoIWkpe2k9ITA7dmFyIHc9T2JqZWN0LmtleXMocyk7c2V0UHJvcHModSx3KSx1LnNpemU9dy5sZW5ndGgsdS5fbmFtZT1vLHUuX2tleXM9dyx1Ll9kZWZhdWx0VmFsdWVzPXN9dGhpcy5fbWFwPU1hcChfKX0sdT1hLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHR0KTtyZXR1cm4gdS5jb25zdHJ1Y3Rvcj1hLGF9Y3JlYXRlQ2xhc3MoT3JkZXJlZE1hcCxNYXApLE9yZGVyZWRNYXAub2Y9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcyhhcmd1bWVudHMpfSxPcmRlcmVkTWFwLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9fdG9TdHJpbmcoIk9yZGVyZWRNYXAgeyIsIn0iKX0sT3JkZXJlZE1hcC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHMsbyl7dmFyIGk9dGhpcy5fbWFwLmdldChzKTtyZXR1cm4gdm9pZCAwIT09aT90aGlzLl9saXN0LmdldChpKVsxXTpvfSxPcmRlcmVkTWFwLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5zaXplP3RoaXM6dGhpcy5fX293bmVySUQ/KHRoaXMuc2l6ZT0wLHRoaXMuX21hcC5jbGVhcigpLHRoaXMuX2xpc3QuY2xlYXIoKSx0aGlzKTplbXB0eU9yZGVyZWRNYXAoKX0sT3JkZXJlZE1hcC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHVwZGF0ZU9yZGVyZWRNYXAodGhpcyxzLG8pfSxPcmRlcmVkTWFwLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24ocyl7cmV0dXJuIHVwZGF0ZU9yZGVyZWRNYXAodGhpcyxzLGopfSxPcmRlcmVkTWFwLnByb3RvdHlwZS53YXNBbHRlcmVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21hcC53YXNBbHRlcmVkKCl8fHRoaXMuX2xpc3Qud2FzQWx0ZXJlZCgpfSxPcmRlcmVkTWFwLnByb3RvdHlwZS5fX2l0ZXJhdGU9ZnVuY3Rpb24ocyxvKXt2YXIgaT10aGlzO3JldHVybiB0aGlzLl9saXN0Ll9faXRlcmF0ZSgoZnVuY3Rpb24obyl7cmV0dXJuIG8mJnMob1sxXSxvWzBdLGkpfSksbyl9LE9yZGVyZWRNYXAucHJvdG90eXBlLl9faXRlcmF0b3I9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdGhpcy5fbGlzdC5mcm9tRW50cnlTZXEoKS5fX2l0ZXJhdG9yKHMsbyl9LE9yZGVyZWRNYXAucHJvdG90eXBlLl9fZW5zdXJlT3duZXI9ZnVuY3Rpb24ocyl7aWYocz09PXRoaXMuX19vd25lcklEKXJldHVybiB0aGlzO3ZhciBvPXRoaXMuX21hcC5fX2Vuc3VyZU93bmVyKHMpLGk9dGhpcy5fbGlzdC5fX2Vuc3VyZU93bmVyKHMpO3JldHVybiBzP21ha2VPcmRlcmVkTWFwKG8saSxzLHRoaXMuX19oYXNoKToodGhpcy5fX293bmVySUQ9cyx0aGlzLl9tYXA9byx0aGlzLl9saXN0PWksdGhpcyl9LE9yZGVyZWRNYXAuaXNPcmRlcmVkTWFwPWlzT3JkZXJlZE1hcCxPcmRlcmVkTWFwLnByb3RvdHlwZVt1XT0hMCxPcmRlcmVkTWFwLnByb3RvdHlwZVtfXT1PcmRlcmVkTWFwLnByb3RvdHlwZS5yZW1vdmUsY3JlYXRlQ2xhc3MoVG9LZXllZFNlcXVlbmNlLEtleWVkU2VxKSxUb0tleWVkU2VxdWVuY2UucHJvdG90eXBlLmdldD1mdW5jdGlvbihzLG8pe3JldHVybiB0aGlzLl9pdGVyLmdldChzLG8pfSxUb0tleWVkU2VxdWVuY2UucHJvdG90eXBlLmhhcz1mdW5jdGlvbihzKXtyZXR1cm4gdGhpcy5faXRlci5oYXMocyl9LFRvS2V5ZWRTZXF1ZW5jZS5wcm90b3R5cGUudmFsdWVTZXE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXRlci52YWx1ZVNlcSgpfSxUb0tleWVkU2VxdWVuY2UucHJvdG90eXBlLnJldmVyc2U9ZnVuY3Rpb24oKXt2YXIgcz10aGlzLG89cmV2ZXJzZUZhY3RvcnkodGhpcywhMCk7cmV0dXJuIHRoaXMuX3VzZUtleXN8fChvLnZhbHVlU2VxPWZ1bmN0aW9uKCl7cmV0dXJuIHMuX2l0ZXIudG9TZXEoKS5yZXZlcnNlKCl9KSxvfSxUb0tleWVkU2VxdWVuY2UucHJvdG90eXBlLm1hcD1mdW5jdGlvbihzLG8pe3ZhciBpPXRoaXMsYT1tYXBGYWN0b3J5KHRoaXMscyxvKTtyZXR1cm4gdGhpcy5fdXNlS2V5c3x8KGEudmFsdWVTZXE9ZnVuY3Rpb24oKXtyZXR1cm4gaS5faXRlci50b1NlcSgpLm1hcChzLG8pfSksYX0sVG9LZXllZFNlcXVlbmNlLnByb3RvdHlwZS5fX2l0ZXJhdGU9ZnVuY3Rpb24ocyxvKXt2YXIgaSxhPXRoaXM7cmV0dXJuIHRoaXMuX2l0ZXIuX19pdGVyYXRlKHRoaXMuX3VzZUtleXM/ZnVuY3Rpb24obyxpKXtyZXR1cm4gcyhvLGksYSl9OihpPW8/cmVzb2x2ZVNpemUodGhpcyk6MCxmdW5jdGlvbih1KXtyZXR1cm4gcyh1LG8/LS1pOmkrKyxhKX0pLG8pfSxUb0tleWVkU2VxdWVuY2UucHJvdG90eXBlLl9faXRlcmF0b3I9ZnVuY3Rpb24ocyxvKXtpZih0aGlzLl91c2VLZXlzKXJldHVybiB0aGlzLl9pdGVyLl9faXRlcmF0b3IocyxvKTt2YXIgaT10aGlzLl9pdGVyLl9faXRlcmF0b3IoVixvKSxhPW8/cmVzb2x2ZVNpemUodGhpcyk6MDtyZXR1cm4gbmV3IEl0ZXJhdG9yKChmdW5jdGlvbigpe3ZhciB1PWkubmV4dCgpO3JldHVybiB1LmRvbmU/dTppdGVyYXRvclZhbHVlKHMsbz8tLWE6YSsrLHUudmFsdWUsdSl9KSl9LFRvS2V5ZWRTZXF1ZW5jZS5wcm90b3R5cGVbdV09ITAsY3JlYXRlQ2xhc3MoVG9JbmRleGVkU2VxdWVuY2UsSW5kZXhlZFNlcSksVG9JbmRleGVkU2VxdWVuY2UucHJvdG90eXBlLmluY2x1ZGVzPWZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLl9pdGVyLmluY2x1ZGVzKHMpfSxUb0luZGV4ZWRTZXF1ZW5jZS5wcm90b3R5cGUuX19pdGVyYXRlPWZ1bmN0aW9uKHMsbyl7dmFyIGk9dGhpcyxhPTA7cmV0dXJuIHRoaXMuX2l0ZXIuX19pdGVyYXRlKChmdW5jdGlvbihvKXtyZXR1cm4gcyhvLGErKyxpKX0pLG8pfSxUb0luZGV4ZWRTZXF1ZW5jZS5wcm90b3R5cGUuX19pdGVyYXRvcj1mdW5jdGlvbihzLG8pe3ZhciBpPXRoaXMuX2l0ZXIuX19pdGVyYXRvcihWLG8pLGE9MDtyZXR1cm4gbmV3IEl0ZXJhdG9yKChmdW5jdGlvbigpe3ZhciBvPWkubmV4dCgpO3JldHVybiBvLmRvbmU/bzppdGVyYXRvclZhbHVlKHMsYSsrLG8udmFsdWUsbyl9KSl9LGNyZWF0ZUNsYXNzKFRvU2V0U2VxdWVuY2UsU2V0U2VxKSxUb1NldFNlcXVlbmNlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMuX2l0ZXIuaW5jbHVkZXMocyl9LFRvU2V0U2VxdWVuY2UucHJvdG90eXBlLl9faXRlcmF0ZT1mdW5jdGlvbihzLG8pe3ZhciBpPXRoaXM7cmV0dXJuIHRoaXMuX2l0ZXIuX19pdGVyYXRlKChmdW5jdGlvbihvKXtyZXR1cm4gcyhvLG8saSl9KSxvKX0sVG9TZXRTZXF1ZW5jZS5wcm90b3R5cGUuX19pdGVyYXRvcj1mdW5jdGlvbihzLG8pe3ZhciBpPXRoaXMuX2l0ZXIuX19pdGVyYXRvcihWLG8pO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7dmFyIG89aS5uZXh0KCk7cmV0dXJuIG8uZG9uZT9vOml0ZXJhdG9yVmFsdWUocyxvLnZhbHVlLG8udmFsdWUsbyl9KSl9LGNyZWF0ZUNsYXNzKEZyb21FbnRyaWVzU2VxdWVuY2UsS2V5ZWRTZXEpLEZyb21FbnRyaWVzU2VxdWVuY2UucHJvdG90eXBlLmVudHJ5U2VxPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2l0ZXIudG9TZXEoKX0sRnJvbUVudHJpZXNTZXF1ZW5jZS5wcm90b3R5cGUuX19pdGVyYXRlPWZ1bmN0aW9uKHMsbyl7dmFyIGk9dGhpcztyZXR1cm4gdGhpcy5faXRlci5fX2l0ZXJhdGUoKGZ1bmN0aW9uKG8pe2lmKG8pe3ZhbGlkYXRlRW50cnkobyk7dmFyIGE9aXNJdGVyYWJsZShvKTtyZXR1cm4gcyhhP28uZ2V0KDEpOm9bMV0sYT9vLmdldCgwKTpvWzBdLGkpfX0pLG8pfSxGcm9tRW50cmllc1NlcXVlbmNlLnByb3RvdHlwZS5fX2l0ZXJhdG9yPWZ1bmN0aW9uKHMsbyl7dmFyIGk9dGhpcy5faXRlci5fX2l0ZXJhdG9yKFYsbyk7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXtmb3IoOzspe3ZhciBvPWkubmV4dCgpO2lmKG8uZG9uZSlyZXR1cm4gbzt2YXIgYT1vLnZhbHVlO2lmKGEpe3ZhbGlkYXRlRW50cnkoYSk7dmFyIHU9aXNJdGVyYWJsZShhKTtyZXR1cm4gaXRlcmF0b3JWYWx1ZShzLHU/YS5nZXQoMCk6YVswXSx1P2EuZ2V0KDEpOmFbMV0sbyl9fX0pKX0sVG9JbmRleGVkU2VxdWVuY2UucHJvdG90eXBlLmNhY2hlUmVzdWx0PVRvS2V5ZWRTZXF1ZW5jZS5wcm90b3R5cGUuY2FjaGVSZXN1bHQ9VG9TZXRTZXF1ZW5jZS5wcm90b3R5cGUuY2FjaGVSZXN1bHQ9RnJvbUVudHJpZXNTZXF1ZW5jZS5wcm90b3R5cGUuY2FjaGVSZXN1bHQ9Y2FjaGVSZXN1bHRUaHJvdWdoLGNyZWF0ZUNsYXNzKFJlY29yZCxLZXllZENvbGxlY3Rpb24pLFJlY29yZC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX3RvU3RyaW5nKHJlY29yZE5hbWUodGhpcykrIiB7IiwifSIpfSxSZWNvcmQucHJvdG90eXBlLmhhcz1mdW5jdGlvbihzKXtyZXR1cm4gdGhpcy5fZGVmYXVsdFZhbHVlcy5oYXNPd25Qcm9wZXJ0eShzKX0sUmVjb3JkLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24ocyxvKXtpZighdGhpcy5oYXMocykpcmV0dXJuIG87dmFyIGk9dGhpcy5fZGVmYXVsdFZhbHVlc1tzXTtyZXR1cm4gdGhpcy5fbWFwP3RoaXMuX21hcC5nZXQocyxpKTppfSxSZWNvcmQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7aWYodGhpcy5fX293bmVySUQpcmV0dXJuIHRoaXMuX21hcCYmdGhpcy5fbWFwLmNsZWFyKCksdGhpczt2YXIgcz10aGlzLmNvbnN0cnVjdG9yO3JldHVybiBzLl9lbXB0eXx8KHMuX2VtcHR5PW1ha2VSZWNvcmQodGhpcyxlbXB0eU1hcCgpKSl9LFJlY29yZC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHMsbyl7aWYoIXRoaXMuaGFzKHMpKXRocm93IG5ldyBFcnJvcignQ2Fubm90IHNldCB1bmtub3duIGtleSAiJytzKyciIG9uICcrcmVjb3JkTmFtZSh0aGlzKSk7aWYodGhpcy5fbWFwJiYhdGhpcy5fbWFwLmhhcyhzKSYmbz09PXRoaXMuX2RlZmF1bHRWYWx1ZXNbc10pcmV0dXJuIHRoaXM7dmFyIGk9dGhpcy5fbWFwJiZ0aGlzLl9tYXAuc2V0KHMsbyk7cmV0dXJuIHRoaXMuX19vd25lcklEfHxpPT09dGhpcy5fbWFwP3RoaXM6bWFrZVJlY29yZCh0aGlzLGkpfSxSZWNvcmQucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihzKXtpZighdGhpcy5oYXMocykpcmV0dXJuIHRoaXM7dmFyIG89dGhpcy5fbWFwJiZ0aGlzLl9tYXAucmVtb3ZlKHMpO3JldHVybiB0aGlzLl9fb3duZXJJRHx8bz09PXRoaXMuX21hcD90aGlzOm1ha2VSZWNvcmQodGhpcyxvKX0sUmVjb3JkLnByb3RvdHlwZS53YXNBbHRlcmVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21hcC53YXNBbHRlcmVkKCl9LFJlY29yZC5wcm90b3R5cGUuX19pdGVyYXRvcj1mdW5jdGlvbihzLG8pe3ZhciBpPXRoaXM7cmV0dXJuIEtleWVkSXRlcmFibGUodGhpcy5fZGVmYXVsdFZhbHVlcykubWFwKChmdW5jdGlvbihzLG8pe3JldHVybiBpLmdldChvKX0pKS5fX2l0ZXJhdG9yKHMsbyl9LFJlY29yZC5wcm90b3R5cGUuX19pdGVyYXRlPWZ1bmN0aW9uKHMsbyl7dmFyIGk9dGhpcztyZXR1cm4gS2V5ZWRJdGVyYWJsZSh0aGlzLl9kZWZhdWx0VmFsdWVzKS5tYXAoKGZ1bmN0aW9uKHMsbyl7cmV0dXJuIGkuZ2V0KG8pfSkpLl9faXRlcmF0ZShzLG8pfSxSZWNvcmQucHJvdG90eXBlLl9fZW5zdXJlT3duZXI9ZnVuY3Rpb24ocyl7aWYocz09PXRoaXMuX19vd25lcklEKXJldHVybiB0aGlzO3ZhciBvPXRoaXMuX21hcCYmdGhpcy5fbWFwLl9fZW5zdXJlT3duZXIocyk7cmV0dXJuIHM/bWFrZVJlY29yZCh0aGlzLG8scyk6KHRoaXMuX19vd25lcklEPXMsdGhpcy5fbWFwPW8sdGhpcyl9O3ZhciB0dD1SZWNvcmQucHJvdG90eXBlO2Z1bmN0aW9uIG1ha2VSZWNvcmQocyxvLGkpe3ZhciBhPU9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKHMpKTtyZXR1cm4gYS5fbWFwPW8sYS5fX293bmVySUQ9aSxhfWZ1bmN0aW9uIHJlY29yZE5hbWUocyl7cmV0dXJuIHMuX25hbWV8fHMuY29uc3RydWN0b3IubmFtZXx8IlJlY29yZCJ9ZnVuY3Rpb24gc2V0UHJvcHMocyxvKXt0cnl7by5mb3JFYWNoKHNldFByb3AuYmluZCh2b2lkIDAscykpfWNhdGNoKHMpe319ZnVuY3Rpb24gc2V0UHJvcChzLG8pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLG8se2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldChvKX0sc2V0OmZ1bmN0aW9uKHMpe2ludmFyaWFudCh0aGlzLl9fb3duZXJJRCwiQ2Fubm90IHNldCBvbiBhbiBpbW11dGFibGUgcmVjb3JkLiIpLHRoaXMuc2V0KG8scyl9fSl9ZnVuY3Rpb24gU2V0KHMpe3JldHVybiBudWxsPT1zP2VtcHR5U2V0KCk6aXNTZXQocykmJiFpc09yZGVyZWQocyk/czplbXB0eVNldCgpLndpdGhNdXRhdGlvbnMoKGZ1bmN0aW9uKG8pe3ZhciBpPVNldEl0ZXJhYmxlKHMpO2Fzc2VydE5vdEluZmluaXRlKGkuc2l6ZSksaS5mb3JFYWNoKChmdW5jdGlvbihzKXtyZXR1cm4gby5hZGQocyl9KSl9KSl9ZnVuY3Rpb24gaXNTZXQocyl7cmV0dXJuISghc3x8IXNbbnRdKX10dFtfXT10dC5yZW1vdmUsdHQuZGVsZXRlSW49dHQucmVtb3ZlSW49JGUucmVtb3ZlSW4sdHQubWVyZ2U9JGUubWVyZ2UsdHQubWVyZ2VXaXRoPSRlLm1lcmdlV2l0aCx0dC5tZXJnZUluPSRlLm1lcmdlSW4sdHQubWVyZ2VEZWVwPSRlLm1lcmdlRGVlcCx0dC5tZXJnZURlZXBXaXRoPSRlLm1lcmdlRGVlcFdpdGgsdHQubWVyZ2VEZWVwSW49JGUubWVyZ2VEZWVwSW4sdHQuc2V0SW49JGUuc2V0SW4sdHQudXBkYXRlPSRlLnVwZGF0ZSx0dC51cGRhdGVJbj0kZS51cGRhdGVJbix0dC53aXRoTXV0YXRpb25zPSRlLndpdGhNdXRhdGlvbnMsdHQuYXNNdXRhYmxlPSRlLmFzTXV0YWJsZSx0dC5hc0ltbXV0YWJsZT0kZS5hc0ltbXV0YWJsZSxjcmVhdGVDbGFzcyhTZXQsU2V0Q29sbGVjdGlvbiksU2V0Lm9mPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMoYXJndW1lbnRzKX0sU2V0LmZyb21LZXlzPWZ1bmN0aW9uKHMpe3JldHVybiB0aGlzKEtleWVkSXRlcmFibGUocykua2V5U2VxKCkpfSxTZXQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX190b1N0cmluZygiU2V0IHsiLCJ9Iil9LFNldC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLl9tYXAuaGFzKHMpfSxTZXQucHJvdG90eXBlLmFkZD1mdW5jdGlvbihzKXtyZXR1cm4gdXBkYXRlU2V0KHRoaXMsdGhpcy5fbWFwLnNldChzLCEwKSl9LFNldC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHMpe3JldHVybiB1cGRhdGVTZXQodGhpcyx0aGlzLl9tYXAucmVtb3ZlKHMpKX0sU2V0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3JldHVybiB1cGRhdGVTZXQodGhpcyx0aGlzLl9tYXAuY2xlYXIoKSl9LFNldC5wcm90b3R5cGUudW5pb249ZnVuY3Rpb24oKXt2YXIgbz1zLmNhbGwoYXJndW1lbnRzLDApO3JldHVybiAwPT09KG89by5maWx0ZXIoKGZ1bmN0aW9uKHMpe3JldHVybiAwIT09cy5zaXplfSkpKS5sZW5ndGg/dGhpczowIT09dGhpcy5zaXplfHx0aGlzLl9fb3duZXJJRHx8MSE9PW8ubGVuZ3RoP3RoaXMud2l0aE11dGF0aW9ucygoZnVuY3Rpb24ocyl7Zm9yKHZhciBpPTA7aTxvLmxlbmd0aDtpKyspU2V0SXRlcmFibGUob1tpXSkuZm9yRWFjaCgoZnVuY3Rpb24obyl7cmV0dXJuIHMuYWRkKG8pfSkpfSkpOnRoaXMuY29uc3RydWN0b3Iob1swXSl9LFNldC5wcm90b3R5cGUuaW50ZXJzZWN0PWZ1bmN0aW9uKCl7dmFyIG89cy5jYWxsKGFyZ3VtZW50cywwKTtpZigwPT09by5sZW5ndGgpcmV0dXJuIHRoaXM7bz1vLm1hcCgoZnVuY3Rpb24ocyl7cmV0dXJuIFNldEl0ZXJhYmxlKHMpfSkpO3ZhciBpPXRoaXM7cmV0dXJuIHRoaXMud2l0aE11dGF0aW9ucygoZnVuY3Rpb24ocyl7aS5mb3JFYWNoKChmdW5jdGlvbihpKXtvLmV2ZXJ5KChmdW5jdGlvbihzKXtyZXR1cm4gcy5pbmNsdWRlcyhpKX0pKXx8cy5yZW1vdmUoaSl9KSl9KSl9LFNldC5wcm90b3R5cGUuc3VidHJhY3Q9ZnVuY3Rpb24oKXt2YXIgbz1zLmNhbGwoYXJndW1lbnRzLDApO2lmKDA9PT1vLmxlbmd0aClyZXR1cm4gdGhpcztvPW8ubWFwKChmdW5jdGlvbihzKXtyZXR1cm4gU2V0SXRlcmFibGUocyl9KSk7dmFyIGk9dGhpcztyZXR1cm4gdGhpcy53aXRoTXV0YXRpb25zKChmdW5jdGlvbihzKXtpLmZvckVhY2goKGZ1bmN0aW9uKGkpe28uc29tZSgoZnVuY3Rpb24ocyl7cmV0dXJuIHMuaW5jbHVkZXMoaSl9KSkmJnMucmVtb3ZlKGkpfSkpfSkpfSxTZXQucHJvdG90eXBlLm1lcmdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudW5pb24uYXBwbHkodGhpcyxhcmd1bWVudHMpfSxTZXQucHJvdG90eXBlLm1lcmdlV2l0aD1mdW5jdGlvbihvKXt2YXIgaT1zLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiB0aGlzLnVuaW9uLmFwcGx5KHRoaXMsaSl9LFNldC5wcm90b3R5cGUuc29ydD1mdW5jdGlvbihzKXtyZXR1cm4gT3JkZXJlZFNldChzb3J0RmFjdG9yeSh0aGlzLHMpKX0sU2V0LnByb3RvdHlwZS5zb3J0Qnk9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gT3JkZXJlZFNldChzb3J0RmFjdG9yeSh0aGlzLG8scykpfSxTZXQucHJvdG90eXBlLndhc0FsdGVyZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWFwLndhc0FsdGVyZWQoKX0sU2V0LnByb3RvdHlwZS5fX2l0ZXJhdGU9ZnVuY3Rpb24ocyxvKXt2YXIgaT10aGlzO3JldHVybiB0aGlzLl9tYXAuX19pdGVyYXRlKChmdW5jdGlvbihvLGEpe3JldHVybiBzKGEsYSxpKX0pLG8pfSxTZXQucHJvdG90eXBlLl9faXRlcmF0b3I9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdGhpcy5fbWFwLm1hcCgoZnVuY3Rpb24ocyxvKXtyZXR1cm4gb30pKS5fX2l0ZXJhdG9yKHMsbyl9LFNldC5wcm90b3R5cGUuX19lbnN1cmVPd25lcj1mdW5jdGlvbihzKXtpZihzPT09dGhpcy5fX293bmVySUQpcmV0dXJuIHRoaXM7dmFyIG89dGhpcy5fbWFwLl9fZW5zdXJlT3duZXIocyk7cmV0dXJuIHM/dGhpcy5fX21ha2UobyxzKToodGhpcy5fX293bmVySUQ9cyx0aGlzLl9tYXA9byx0aGlzKX0sU2V0LmlzU2V0PWlzU2V0O3ZhciBydCxudD0iQEBfX0lNTVVUQUJMRV9TRVRfX0BAIixzdD1TZXQucHJvdG90eXBlO2Z1bmN0aW9uIHVwZGF0ZVNldChzLG8pe3JldHVybiBzLl9fb3duZXJJRD8ocy5zaXplPW8uc2l6ZSxzLl9tYXA9byxzKTpvPT09cy5fbWFwP3M6MD09PW8uc2l6ZT9zLl9fZW1wdHkoKTpzLl9fbWFrZShvKX1mdW5jdGlvbiBtYWtlU2V0KHMsbyl7dmFyIGk9T2JqZWN0LmNyZWF0ZShzdCk7cmV0dXJuIGkuc2l6ZT1zP3Muc2l6ZTowLGkuX21hcD1zLGkuX19vd25lcklEPW8saX1mdW5jdGlvbiBlbXB0eVNldCgpe3JldHVybiBydHx8KHJ0PW1ha2VTZXQoZW1wdHlNYXAoKSkpfWZ1bmN0aW9uIE9yZGVyZWRTZXQocyl7cmV0dXJuIG51bGw9PXM/ZW1wdHlPcmRlcmVkU2V0KCk6aXNPcmRlcmVkU2V0KHMpP3M6ZW1wdHlPcmRlcmVkU2V0KCkud2l0aE11dGF0aW9ucygoZnVuY3Rpb24obyl7dmFyIGk9U2V0SXRlcmFibGUocyk7YXNzZXJ0Tm90SW5maW5pdGUoaS5zaXplKSxpLmZvckVhY2goKGZ1bmN0aW9uKHMpe3JldHVybiBvLmFkZChzKX0pKX0pKX1mdW5jdGlvbiBpc09yZGVyZWRTZXQocyl7cmV0dXJuIGlzU2V0KHMpJiZpc09yZGVyZWQocyl9c3RbbnRdPSEwLHN0W19dPXN0LnJlbW92ZSxzdC5tZXJnZURlZXA9c3QubWVyZ2Usc3QubWVyZ2VEZWVwV2l0aD1zdC5tZXJnZVdpdGgsc3Qud2l0aE11dGF0aW9ucz0kZS53aXRoTXV0YXRpb25zLHN0LmFzTXV0YWJsZT0kZS5hc011dGFibGUsc3QuYXNJbW11dGFibGU9JGUuYXNJbW11dGFibGUsc3QuX19lbXB0eT1lbXB0eVNldCxzdC5fX21ha2U9bWFrZVNldCxjcmVhdGVDbGFzcyhPcmRlcmVkU2V0LFNldCksT3JkZXJlZFNldC5vZj1mdW5jdGlvbigpe3JldHVybiB0aGlzKGFyZ3VtZW50cyl9LE9yZGVyZWRTZXQuZnJvbUtleXM9ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMoS2V5ZWRJdGVyYWJsZShzKS5rZXlTZXEoKSl9LE9yZGVyZWRTZXQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX190b1N0cmluZygiT3JkZXJlZFNldCB7IiwifSIpfSxPcmRlcmVkU2V0LmlzT3JkZXJlZFNldD1pc09yZGVyZWRTZXQ7dmFyIG90LGl0PU9yZGVyZWRTZXQucHJvdG90eXBlO2Z1bmN0aW9uIG1ha2VPcmRlcmVkU2V0KHMsbyl7dmFyIGk9T2JqZWN0LmNyZWF0ZShpdCk7cmV0dXJuIGkuc2l6ZT1zP3Muc2l6ZTowLGkuX21hcD1zLGkuX19vd25lcklEPW8saX1mdW5jdGlvbiBlbXB0eU9yZGVyZWRTZXQoKXtyZXR1cm4gb3R8fChvdD1tYWtlT3JkZXJlZFNldChlbXB0eU9yZGVyZWRNYXAoKSkpfWZ1bmN0aW9uIFN0YWNrKHMpe3JldHVybiBudWxsPT1zP2VtcHR5U3RhY2soKTppc1N0YWNrKHMpP3M6ZW1wdHlTdGFjaygpLnVuc2hpZnRBbGwocyl9ZnVuY3Rpb24gaXNTdGFjayhzKXtyZXR1cm4hKCFzfHwhc1tjdF0pfWl0W3VdPSEwLGl0Ll9fZW1wdHk9ZW1wdHlPcmRlcmVkU2V0LGl0Ll9fbWFrZT1tYWtlT3JkZXJlZFNldCxjcmVhdGVDbGFzcyhTdGFjayxJbmRleGVkQ29sbGVjdGlvbiksU3RhY2sub2Y9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcyhhcmd1bWVudHMpfSxTdGFjay5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX3RvU3RyaW5nKCJTdGFjayBbIiwiXSIpfSxTdGFjay5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHMsbyl7dmFyIGk9dGhpcy5faGVhZDtmb3Iocz13cmFwSW5kZXgodGhpcyxzKTtpJiZzLS07KWk9aS5uZXh0O3JldHVybiBpP2kudmFsdWU6b30sU3RhY2sucHJvdG90eXBlLnBlZWs9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faGVhZCYmdGhpcy5faGVhZC52YWx1ZX0sU3RhY2sucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oKXtpZigwPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdGhpcztmb3IodmFyIHM9dGhpcy5zaXplK2FyZ3VtZW50cy5sZW5ndGgsbz10aGlzLl9oZWFkLGk9YXJndW1lbnRzLmxlbmd0aC0xO2k+PTA7aS0tKW89e3ZhbHVlOmFyZ3VtZW50c1tpXSxuZXh0Om99O3JldHVybiB0aGlzLl9fb3duZXJJRD8odGhpcy5zaXplPXMsdGhpcy5faGVhZD1vLHRoaXMuX19oYXNoPXZvaWQgMCx0aGlzLl9fYWx0ZXJlZD0hMCx0aGlzKTptYWtlU3RhY2socyxvKX0sU3RhY2sucHJvdG90eXBlLnB1c2hBbGw9ZnVuY3Rpb24ocyl7aWYoMD09PShzPUluZGV4ZWRJdGVyYWJsZShzKSkuc2l6ZSlyZXR1cm4gdGhpczthc3NlcnROb3RJbmZpbml0ZShzLnNpemUpO3ZhciBvPXRoaXMuc2l6ZSxpPXRoaXMuX2hlYWQ7cmV0dXJuIHMucmV2ZXJzZSgpLmZvckVhY2goKGZ1bmN0aW9uKHMpe28rKyxpPXt2YWx1ZTpzLG5leHQ6aX19KSksdGhpcy5fX293bmVySUQ/KHRoaXMuc2l6ZT1vLHRoaXMuX2hlYWQ9aSx0aGlzLl9faGFzaD12b2lkIDAsdGhpcy5fX2FsdGVyZWQ9ITAsdGhpcyk6bWFrZVN0YWNrKG8saSl9LFN0YWNrLnByb3RvdHlwZS5wb3A9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zbGljZSgxKX0sU3RhY2sucHJvdG90eXBlLnVuc2hpZnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sU3RhY2sucHJvdG90eXBlLnVuc2hpZnRBbGw9ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMucHVzaEFsbChzKX0sU3RhY2sucHJvdG90eXBlLnNoaWZ0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucG9wLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sU3RhY2sucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnNpemU/dGhpczp0aGlzLl9fb3duZXJJRD8odGhpcy5zaXplPTAsdGhpcy5faGVhZD12b2lkIDAsdGhpcy5fX2hhc2g9dm9pZCAwLHRoaXMuX19hbHRlcmVkPSEwLHRoaXMpOmVtcHR5U3RhY2soKX0sU3RhY2sucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uKHMsbyl7aWYod2hvbGVTbGljZShzLG8sdGhpcy5zaXplKSlyZXR1cm4gdGhpczt2YXIgaT1yZXNvbHZlQmVnaW4ocyx0aGlzLnNpemUpO2lmKHJlc29sdmVFbmQobyx0aGlzLnNpemUpIT09dGhpcy5zaXplKXJldHVybiBJbmRleGVkQ29sbGVjdGlvbi5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLHMsbyk7Zm9yKHZhciBhPXRoaXMuc2l6ZS1pLHU9dGhpcy5faGVhZDtpLS07KXU9dS5uZXh0O3JldHVybiB0aGlzLl9fb3duZXJJRD8odGhpcy5zaXplPWEsdGhpcy5faGVhZD11LHRoaXMuX19oYXNoPXZvaWQgMCx0aGlzLl9fYWx0ZXJlZD0hMCx0aGlzKTptYWtlU3RhY2soYSx1KX0sU3RhY2sucHJvdG90eXBlLl9fZW5zdXJlT3duZXI9ZnVuY3Rpb24ocyl7cmV0dXJuIHM9PT10aGlzLl9fb3duZXJJRD90aGlzOnM/bWFrZVN0YWNrKHRoaXMuc2l6ZSx0aGlzLl9oZWFkLHMsdGhpcy5fX2hhc2gpOih0aGlzLl9fb3duZXJJRD1zLHRoaXMuX19hbHRlcmVkPSExLHRoaXMpfSxTdGFjay5wcm90b3R5cGUuX19pdGVyYXRlPWZ1bmN0aW9uKHMsbyl7aWYobylyZXR1cm4gdGhpcy5yZXZlcnNlKCkuX19pdGVyYXRlKHMpO2Zvcih2YXIgaT0wLGE9dGhpcy5faGVhZDthJiYhMSE9PXMoYS52YWx1ZSxpKyssdGhpcyk7KWE9YS5uZXh0O3JldHVybiBpfSxTdGFjay5wcm90b3R5cGUuX19pdGVyYXRvcj1mdW5jdGlvbihzLG8pe2lmKG8pcmV0dXJuIHRoaXMucmV2ZXJzZSgpLl9faXRlcmF0b3Iocyk7dmFyIGk9MCxhPXRoaXMuX2hlYWQ7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXtpZihhKXt2YXIgbz1hLnZhbHVlO3JldHVybiBhPWEubmV4dCxpdGVyYXRvclZhbHVlKHMsaSsrLG8pfXJldHVybiBpdGVyYXRvckRvbmUoKX0pKX0sU3RhY2suaXNTdGFjaz1pc1N0YWNrO3ZhciBhdCxjdD0iQEBfX0lNTVVUQUJMRV9TVEFDS19fQEAiLGx0PVN0YWNrLnByb3RvdHlwZTtmdW5jdGlvbiBtYWtlU3RhY2socyxvLGksYSl7dmFyIHU9T2JqZWN0LmNyZWF0ZShsdCk7cmV0dXJuIHUuc2l6ZT1zLHUuX2hlYWQ9byx1Ll9fb3duZXJJRD1pLHUuX19oYXNoPWEsdS5fX2FsdGVyZWQ9ITEsdX1mdW5jdGlvbiBlbXB0eVN0YWNrKCl7cmV0dXJuIGF0fHwoYXQ9bWFrZVN0YWNrKDApKX1mdW5jdGlvbiBtaXhpbihzLG8pe3ZhciBrZXlDb3BpZXI9ZnVuY3Rpb24oaSl7cy5wcm90b3R5cGVbaV09b1tpXX07cmV0dXJuIE9iamVjdC5rZXlzKG8pLmZvckVhY2goa2V5Q29waWVyKSxPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiZPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG8pLmZvckVhY2goa2V5Q29waWVyKSxzfWx0W2N0XT0hMCxsdC53aXRoTXV0YXRpb25zPSRlLndpdGhNdXRhdGlvbnMsbHQuYXNNdXRhYmxlPSRlLmFzTXV0YWJsZSxsdC5hc0ltbXV0YWJsZT0kZS5hc0ltbXV0YWJsZSxsdC53YXNBbHRlcmVkPSRlLndhc0FsdGVyZWQsSXRlcmFibGUuSXRlcmF0b3I9SXRlcmF0b3IsbWl4aW4oSXRlcmFibGUse3RvQXJyYXk6ZnVuY3Rpb24oKXthc3NlcnROb3RJbmZpbml0ZSh0aGlzLnNpemUpO3ZhciBzPW5ldyBBcnJheSh0aGlzLnNpemV8fDApO3JldHVybiB0aGlzLnZhbHVlU2VxKCkuX19pdGVyYXRlKChmdW5jdGlvbihvLGkpe3NbaV09b30pKSxzfSx0b0luZGV4ZWRTZXE6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFRvSW5kZXhlZFNlcXVlbmNlKHRoaXMpfSx0b0pTOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TZXEoKS5tYXAoKGZ1bmN0aW9uKHMpe3JldHVybiBzJiYiZnVuY3Rpb24iPT10eXBlb2Ygcy50b0pTP3MudG9KUygpOnN9KSkuX190b0pTKCl9LHRvSlNPTjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU2VxKCkubWFwKChmdW5jdGlvbihzKXtyZXR1cm4gcyYmImZ1bmN0aW9uIj09dHlwZW9mIHMudG9KU09OP3MudG9KU09OKCk6c30pKS5fX3RvSlMoKX0sdG9LZXllZFNlcTpmdW5jdGlvbigpe3JldHVybiBuZXcgVG9LZXllZFNlcXVlbmNlKHRoaXMsITApfSx0b01hcDpmdW5jdGlvbigpe3JldHVybiBNYXAodGhpcy50b0tleWVkU2VxKCkpfSx0b09iamVjdDpmdW5jdGlvbigpe2Fzc2VydE5vdEluZmluaXRlKHRoaXMuc2l6ZSk7dmFyIHM9e307cmV0dXJuIHRoaXMuX19pdGVyYXRlKChmdW5jdGlvbihvLGkpe3NbaV09b30pKSxzfSx0b09yZGVyZWRNYXA6ZnVuY3Rpb24oKXtyZXR1cm4gT3JkZXJlZE1hcCh0aGlzLnRvS2V5ZWRTZXEoKSl9LHRvT3JkZXJlZFNldDpmdW5jdGlvbigpe3JldHVybiBPcmRlcmVkU2V0KGlzS2V5ZWQodGhpcyk/dGhpcy52YWx1ZVNlcSgpOnRoaXMpfSx0b1NldDpmdW5jdGlvbigpe3JldHVybiBTZXQoaXNLZXllZCh0aGlzKT90aGlzLnZhbHVlU2VxKCk6dGhpcyl9LHRvU2V0U2VxOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBUb1NldFNlcXVlbmNlKHRoaXMpfSx0b1NlcTpmdW5jdGlvbigpe3JldHVybiBpc0luZGV4ZWQodGhpcyk/dGhpcy50b0luZGV4ZWRTZXEoKTppc0tleWVkKHRoaXMpP3RoaXMudG9LZXllZFNlcSgpOnRoaXMudG9TZXRTZXEoKX0sdG9TdGFjazpmdW5jdGlvbigpe3JldHVybiBTdGFjayhpc0tleWVkKHRoaXMpP3RoaXMudmFsdWVTZXEoKTp0aGlzKX0sdG9MaXN0OmZ1bmN0aW9uKCl7cmV0dXJuIExpc3QoaXNLZXllZCh0aGlzKT90aGlzLnZhbHVlU2VxKCk6dGhpcyl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIltJdGVyYWJsZV0ifSxfX3RvU3RyaW5nOmZ1bmN0aW9uKHMsbyl7cmV0dXJuIDA9PT10aGlzLnNpemU/cytvOnMrIiAiK3RoaXMudG9TZXEoKS5tYXAodGhpcy5fX3RvU3RyaW5nTWFwcGVyKS5qb2luKCIsICIpKyIgIitvfSxjb25jYXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcmVpZnkodGhpcyxjb25jYXRGYWN0b3J5KHRoaXMscy5jYWxsKGFyZ3VtZW50cywwKSkpfSxpbmNsdWRlczpmdW5jdGlvbihzKXtyZXR1cm4gdGhpcy5zb21lKChmdW5jdGlvbihvKXtyZXR1cm4gaXMobyxzKX0pKX0sZW50cmllczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9faXRlcmF0b3IoVSl9LGV2ZXJ5OmZ1bmN0aW9uKHMsbyl7YXNzZXJ0Tm90SW5maW5pdGUodGhpcy5zaXplKTt2YXIgaT0hMDtyZXR1cm4gdGhpcy5fX2l0ZXJhdGUoKGZ1bmN0aW9uKGEsdSxfKXtpZighcy5jYWxsKG8sYSx1LF8pKXJldHVybiBpPSExLCExfSkpLGl9LGZpbHRlcjpmdW5jdGlvbihzLG8pe3JldHVybiByZWlmeSh0aGlzLGZpbHRlckZhY3RvcnkodGhpcyxzLG8sITApKX0sZmluZDpmdW5jdGlvbihzLG8saSl7dmFyIGE9dGhpcy5maW5kRW50cnkocyxvKTtyZXR1cm4gYT9hWzFdOml9LGZvckVhY2g6ZnVuY3Rpb24ocyxvKXtyZXR1cm4gYXNzZXJ0Tm90SW5maW5pdGUodGhpcy5zaXplKSx0aGlzLl9faXRlcmF0ZShvP3MuYmluZChvKTpzKX0sam9pbjpmdW5jdGlvbihzKXthc3NlcnROb3RJbmZpbml0ZSh0aGlzLnNpemUpLHM9dm9pZCAwIT09cz8iIitzOiIsIjt2YXIgbz0iIixpPSEwO3JldHVybiB0aGlzLl9faXRlcmF0ZSgoZnVuY3Rpb24oYSl7aT9pPSExOm8rPXMsbys9bnVsbCE9YT9hLnRvU3RyaW5nKCk6IiJ9KSksb30sa2V5czpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9faXRlcmF0b3IoJCl9LG1hcDpmdW5jdGlvbihzLG8pe3JldHVybiByZWlmeSh0aGlzLG1hcEZhY3RvcnkodGhpcyxzLG8pKX0scmVkdWNlOmZ1bmN0aW9uKHMsbyxpKXt2YXIgYSx1O3JldHVybiBhc3NlcnROb3RJbmZpbml0ZSh0aGlzLnNpemUpLGFyZ3VtZW50cy5sZW5ndGg8Mj91PSEwOmE9byx0aGlzLl9faXRlcmF0ZSgoZnVuY3Rpb24obyxfLHcpe3U/KHU9ITEsYT1vKTphPXMuY2FsbChpLGEsbyxfLHcpfSkpLGF9LHJlZHVjZVJpZ2h0OmZ1bmN0aW9uKHMsbyxpKXt2YXIgYT10aGlzLnRvS2V5ZWRTZXEoKS5yZXZlcnNlKCk7cmV0dXJuIGEucmVkdWNlLmFwcGx5KGEsYXJndW1lbnRzKX0scmV2ZXJzZTpmdW5jdGlvbigpe3JldHVybiByZWlmeSh0aGlzLHJldmVyc2VGYWN0b3J5KHRoaXMsITApKX0sc2xpY2U6ZnVuY3Rpb24ocyxvKXtyZXR1cm4gcmVpZnkodGhpcyxzbGljZUZhY3RvcnkodGhpcyxzLG8sITApKX0sc29tZTpmdW5jdGlvbihzLG8pe3JldHVybiF0aGlzLmV2ZXJ5KG5vdChzKSxvKX0sc29ydDpmdW5jdGlvbihzKXtyZXR1cm4gcmVpZnkodGhpcyxzb3J0RmFjdG9yeSh0aGlzLHMpKX0sdmFsdWVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19pdGVyYXRvcihWKX0sYnV0TGFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNsaWNlKDAsLTEpfSxpc0VtcHR5OmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuc2l6ZT8wPT09dGhpcy5zaXplOiF0aGlzLnNvbWUoKGZ1bmN0aW9uKCl7cmV0dXJuITB9KSl9LGNvdW50OmZ1bmN0aW9uKHMsbyl7cmV0dXJuIGVuc3VyZVNpemUocz90aGlzLnRvU2VxKCkuZmlsdGVyKHMsbyk6dGhpcyl9LGNvdW50Qnk6ZnVuY3Rpb24ocyxvKXtyZXR1cm4gY291bnRCeUZhY3RvcnkodGhpcyxzLG8pfSxlcXVhbHM6ZnVuY3Rpb24ocyl7cmV0dXJuIGRlZXBFcXVhbCh0aGlzLHMpfSxlbnRyeVNlcTpmdW5jdGlvbigpe3ZhciBzPXRoaXM7aWYocy5fY2FjaGUpcmV0dXJuIG5ldyBBcnJheVNlcShzLl9jYWNoZSk7dmFyIG89cy50b1NlcSgpLm1hcChlbnRyeU1hcHBlcikudG9JbmRleGVkU2VxKCk7cmV0dXJuIG8uZnJvbUVudHJ5U2VxPWZ1bmN0aW9uKCl7cmV0dXJuIHMudG9TZXEoKX0sb30sZmlsdGVyTm90OmZ1bmN0aW9uKHMsbyl7cmV0dXJuIHRoaXMuZmlsdGVyKG5vdChzKSxvKX0sZmluZEVudHJ5OmZ1bmN0aW9uKHMsbyxpKXt2YXIgYT1pO3JldHVybiB0aGlzLl9faXRlcmF0ZSgoZnVuY3Rpb24oaSx1LF8pe2lmKHMuY2FsbChvLGksdSxfKSlyZXR1cm4gYT1bdSxpXSwhMX0pKSxhfSxmaW5kS2V5OmZ1bmN0aW9uKHMsbyl7dmFyIGk9dGhpcy5maW5kRW50cnkocyxvKTtyZXR1cm4gaSYmaVswXX0sZmluZExhc3Q6ZnVuY3Rpb24ocyxvLGkpe3JldHVybiB0aGlzLnRvS2V5ZWRTZXEoKS5yZXZlcnNlKCkuZmluZChzLG8saSl9LGZpbmRMYXN0RW50cnk6ZnVuY3Rpb24ocyxvLGkpe3JldHVybiB0aGlzLnRvS2V5ZWRTZXEoKS5yZXZlcnNlKCkuZmluZEVudHJ5KHMsbyxpKX0sZmluZExhc3RLZXk6ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdGhpcy50b0tleWVkU2VxKCkucmV2ZXJzZSgpLmZpbmRLZXkocyxvKX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maW5kKHJldHVyblRydWUpfSxmbGF0TWFwOmZ1bmN0aW9uKHMsbyl7cmV0dXJuIHJlaWZ5KHRoaXMsZmxhdE1hcEZhY3RvcnkodGhpcyxzLG8pKX0sZmxhdHRlbjpmdW5jdGlvbihzKXtyZXR1cm4gcmVpZnkodGhpcyxmbGF0dGVuRmFjdG9yeSh0aGlzLHMsITApKX0sZnJvbUVudHJ5U2VxOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBGcm9tRW50cmllc1NlcXVlbmNlKHRoaXMpfSxnZXQ6ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdGhpcy5maW5kKChmdW5jdGlvbihvLGkpe3JldHVybiBpcyhpLHMpfSksdm9pZCAwLG8pfSxnZXRJbjpmdW5jdGlvbihzLG8pe2Zvcih2YXIgaSxhPXRoaXMsdT1mb3JjZUl0ZXJhdG9yKHMpOyEoaT11Lm5leHQoKSkuZG9uZTspe3ZhciBfPWkudmFsdWU7aWYoKGE9YSYmYS5nZXQ/YS5nZXQoXyxqKTpqKT09PWopcmV0dXJuIG99cmV0dXJuIGF9LGdyb3VwQnk6ZnVuY3Rpb24ocyxvKXtyZXR1cm4gZ3JvdXBCeUZhY3RvcnkodGhpcyxzLG8pfSxoYXM6ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMuZ2V0KHMsaikhPT1qfSxoYXNJbjpmdW5jdGlvbihzKXtyZXR1cm4gdGhpcy5nZXRJbihzLGopIT09an0saXNTdWJzZXQ6ZnVuY3Rpb24ocyl7cmV0dXJuIHM9ImZ1bmN0aW9uIj09dHlwZW9mIHMuaW5jbHVkZXM/czpJdGVyYWJsZShzKSx0aGlzLmV2ZXJ5KChmdW5jdGlvbihvKXtyZXR1cm4gcy5pbmNsdWRlcyhvKX0pKX0saXNTdXBlcnNldDpmdW5jdGlvbihzKXtyZXR1cm4ocz0iZnVuY3Rpb24iPT10eXBlb2Ygcy5pc1N1YnNldD9zOkl0ZXJhYmxlKHMpKS5pc1N1YnNldCh0aGlzKX0sa2V5T2Y6ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMuZmluZEtleSgoZnVuY3Rpb24obyl7cmV0dXJuIGlzKG8scyl9KSl9LGtleVNlcTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU2VxKCkubWFwKGtleU1hcHBlcikudG9JbmRleGVkU2VxKCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1NlcSgpLnJldmVyc2UoKS5maXJzdCgpfSxsYXN0S2V5T2Y6ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMudG9LZXllZFNlcSgpLnJldmVyc2UoKS5rZXlPZihzKX0sbWF4OmZ1bmN0aW9uKHMpe3JldHVybiBtYXhGYWN0b3J5KHRoaXMscyl9LG1heEJ5OmZ1bmN0aW9uKHMsbyl7cmV0dXJuIG1heEZhY3RvcnkodGhpcyxvLHMpfSxtaW46ZnVuY3Rpb24ocyl7cmV0dXJuIG1heEZhY3RvcnkodGhpcyxzP25lZyhzKTpkZWZhdWx0TmVnQ29tcGFyYXRvcil9LG1pbkJ5OmZ1bmN0aW9uKHMsbyl7cmV0dXJuIG1heEZhY3RvcnkodGhpcyxvP25lZyhvKTpkZWZhdWx0TmVnQ29tcGFyYXRvcixzKX0scmVzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNsaWNlKDEpfSxza2lwOmZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLnNsaWNlKE1hdGgubWF4KDAscykpfSxza2lwTGFzdDpmdW5jdGlvbihzKXtyZXR1cm4gcmVpZnkodGhpcyx0aGlzLnRvU2VxKCkucmV2ZXJzZSgpLnNraXAocykucmV2ZXJzZSgpKX0sc2tpcFdoaWxlOmZ1bmN0aW9uKHMsbyl7cmV0dXJuIHJlaWZ5KHRoaXMsc2tpcFdoaWxlRmFjdG9yeSh0aGlzLHMsbywhMCkpfSxza2lwVW50aWw6ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdGhpcy5za2lwV2hpbGUobm90KHMpLG8pfSxzb3J0Qnk6ZnVuY3Rpb24ocyxvKXtyZXR1cm4gcmVpZnkodGhpcyxzb3J0RmFjdG9yeSh0aGlzLG8scykpfSx0YWtlOmZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLnNsaWNlKDAsTWF0aC5tYXgoMCxzKSl9LHRha2VMYXN0OmZ1bmN0aW9uKHMpe3JldHVybiByZWlmeSh0aGlzLHRoaXMudG9TZXEoKS5yZXZlcnNlKCkudGFrZShzKS5yZXZlcnNlKCkpfSx0YWtlV2hpbGU6ZnVuY3Rpb24ocyxvKXtyZXR1cm4gcmVpZnkodGhpcyx0YWtlV2hpbGVGYWN0b3J5KHRoaXMscyxvKSl9LHRha2VVbnRpbDpmdW5jdGlvbihzLG8pe3JldHVybiB0aGlzLnRha2VXaGlsZShub3Qocyksbyl9LHZhbHVlU2VxOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9JbmRleGVkU2VxKCl9LGhhc2hDb2RlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19oYXNofHwodGhpcy5fX2hhc2g9aGFzaEl0ZXJhYmxlKHRoaXMpKX19KTt2YXIgdXQ9SXRlcmFibGUucHJvdG90eXBlO3V0W29dPSEwLHV0W1pdPXV0LnZhbHVlcyx1dC5fX3RvSlM9dXQudG9BcnJheSx1dC5fX3RvU3RyaW5nTWFwcGVyPXF1b3RlU3RyaW5nLHV0Lmluc3BlY3Q9dXQudG9Tb3VyY2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygpfSx1dC5jaGFpbj11dC5mbGF0TWFwLHV0LmNvbnRhaW5zPXV0LmluY2x1ZGVzLG1peGluKEtleWVkSXRlcmFibGUse2ZsaXA6ZnVuY3Rpb24oKXtyZXR1cm4gcmVpZnkodGhpcyxmbGlwRmFjdG9yeSh0aGlzKSl9LG1hcEVudHJpZXM6ZnVuY3Rpb24ocyxvKXt2YXIgaT10aGlzLGE9MDtyZXR1cm4gcmVpZnkodGhpcyx0aGlzLnRvU2VxKCkubWFwKChmdW5jdGlvbih1LF8pe3JldHVybiBzLmNhbGwobyxbXyx1XSxhKyssaSl9KSkuZnJvbUVudHJ5U2VxKCkpfSxtYXBLZXlzOmZ1bmN0aW9uKHMsbyl7dmFyIGk9dGhpcztyZXR1cm4gcmVpZnkodGhpcyx0aGlzLnRvU2VxKCkuZmxpcCgpLm1hcCgoZnVuY3Rpb24oYSx1KXtyZXR1cm4gcy5jYWxsKG8sYSx1LGkpfSkpLmZsaXAoKSl9fSk7dmFyIHB0PUtleWVkSXRlcmFibGUucHJvdG90eXBlO2Z1bmN0aW9uIGtleU1hcHBlcihzLG8pe3JldHVybiBvfWZ1bmN0aW9uIGVudHJ5TWFwcGVyKHMsbyl7cmV0dXJuW28sc119ZnVuY3Rpb24gbm90KHMpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiFzLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gbmVnKHMpe3JldHVybiBmdW5jdGlvbigpe3JldHVybi1zLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gcXVvdGVTdHJpbmcocyl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBzP0pTT04uc3RyaW5naWZ5KHMpOlN0cmluZyhzKX1mdW5jdGlvbiBkZWZhdWx0WmlwcGVyKCl7cmV0dXJuIGFyckNvcHkoYXJndW1lbnRzKX1mdW5jdGlvbiBkZWZhdWx0TmVnQ29tcGFyYXRvcihzLG8pe3JldHVybiBzPG8/MTpzPm8/LTE6MH1mdW5jdGlvbiBoYXNoSXRlcmFibGUocyl7aWYocy5zaXplPT09MS8wKXJldHVybiAwO3ZhciBvPWlzT3JkZXJlZChzKSxpPWlzS2V5ZWQocyksYT1vPzE6MDtyZXR1cm4gbXVybXVySGFzaE9mU2l6ZShzLl9faXRlcmF0ZShpP28/ZnVuY3Rpb24ocyxvKXthPTMxKmEraGFzaE1lcmdlKGhhc2gocyksaGFzaChvKSl8MH06ZnVuY3Rpb24ocyxvKXthPWEraGFzaE1lcmdlKGhhc2gocyksaGFzaChvKSl8MH06bz9mdW5jdGlvbihzKXthPTMxKmEraGFzaChzKXwwfTpmdW5jdGlvbihzKXthPWEraGFzaChzKXwwfSksYSl9ZnVuY3Rpb24gbXVybXVySGFzaE9mU2l6ZShzLG8pe3JldHVybiBvPWxlKG8sMzQzMjkxODM1Myksbz1sZShvPDwxNXxvPj4+LTE1LDQ2MTg0NTkwNyksbz1sZShvPDwxM3xvPj4+LTEzLDUpLG89bGUoKG89byszODY0MjkyMTk2XnMpXm8+Pj4xNiwyMjQ2ODIyNTA3KSxvPXNtaSgobz1sZShvXm8+Pj4xMywzMjY2NDg5OTA5KSlebz4+PjE2KX1mdW5jdGlvbiBoYXNoTWVyZ2UocyxvKXtyZXR1cm4gc15vKzI2NTQ0MzU3NjkrKHM8PDYpKyhzPj4yKX1yZXR1cm4gcHRbaV09ITAscHRbWl09dXQuZW50cmllcyxwdC5fX3RvSlM9dXQudG9PYmplY3QscHQuX190b1N0cmluZ01hcHBlcj1mdW5jdGlvbihzLG8pe3JldHVybiBKU09OLnN0cmluZ2lmeShvKSsiOiAiK3F1b3RlU3RyaW5nKHMpfSxtaXhpbihJbmRleGVkSXRlcmFibGUse3RvS2V5ZWRTZXE6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFRvS2V5ZWRTZXF1ZW5jZSh0aGlzLCExKX0sZmlsdGVyOmZ1bmN0aW9uKHMsbyl7cmV0dXJuIHJlaWZ5KHRoaXMsZmlsdGVyRmFjdG9yeSh0aGlzLHMsbywhMSkpfSxmaW5kSW5kZXg6ZnVuY3Rpb24ocyxvKXt2YXIgaT10aGlzLmZpbmRFbnRyeShzLG8pO3JldHVybiBpP2lbMF06LTF9LGluZGV4T2Y6ZnVuY3Rpb24ocyl7dmFyIG89dGhpcy5rZXlPZihzKTtyZXR1cm4gdm9pZCAwPT09bz8tMTpvfSxsYXN0SW5kZXhPZjpmdW5jdGlvbihzKXt2YXIgbz10aGlzLmxhc3RLZXlPZihzKTtyZXR1cm4gdm9pZCAwPT09bz8tMTpvfSxyZXZlcnNlOmZ1bmN0aW9uKCl7cmV0dXJuIHJlaWZ5KHRoaXMscmV2ZXJzZUZhY3RvcnkodGhpcywhMSkpfSxzbGljZTpmdW5jdGlvbihzLG8pe3JldHVybiByZWlmeSh0aGlzLHNsaWNlRmFjdG9yeSh0aGlzLHMsbywhMSkpfSxzcGxpY2U6ZnVuY3Rpb24ocyxvKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoO2lmKG89TWF0aC5tYXgoMHxvLDApLDA9PT1pfHwyPT09aSYmIW8pcmV0dXJuIHRoaXM7cz1yZXNvbHZlQmVnaW4ocyxzPDA/dGhpcy5jb3VudCgpOnRoaXMuc2l6ZSk7dmFyIGE9dGhpcy5zbGljZSgwLHMpO3JldHVybiByZWlmeSh0aGlzLDE9PT1pP2E6YS5jb25jYXQoYXJyQ29weShhcmd1bWVudHMsMiksdGhpcy5zbGljZShzK28pKSl9LGZpbmRMYXN0SW5kZXg6ZnVuY3Rpb24ocyxvKXt2YXIgaT10aGlzLmZpbmRMYXN0RW50cnkocyxvKTtyZXR1cm4gaT9pWzBdOi0xfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldCgwKX0sZmxhdHRlbjpmdW5jdGlvbihzKXtyZXR1cm4gcmVpZnkodGhpcyxmbGF0dGVuRmFjdG9yeSh0aGlzLHMsITEpKX0sZ2V0OmZ1bmN0aW9uKHMsbyl7cmV0dXJuKHM9d3JhcEluZGV4KHRoaXMscykpPDB8fHRoaXMuc2l6ZT09PTEvMHx8dm9pZCAwIT09dGhpcy5zaXplJiZzPnRoaXMuc2l6ZT9vOnRoaXMuZmluZCgoZnVuY3Rpb24obyxpKXtyZXR1cm4gaT09PXN9KSx2b2lkIDAsbyl9LGhhczpmdW5jdGlvbihzKXtyZXR1cm4ocz13cmFwSW5kZXgodGhpcyxzKSk+PTAmJih2b2lkIDAhPT10aGlzLnNpemU/dGhpcy5zaXplPT09MS8wfHxzPHRoaXMuc2l6ZTotMSE9PXRoaXMuaW5kZXhPZihzKSl9LGludGVycG9zZTpmdW5jdGlvbihzKXtyZXR1cm4gcmVpZnkodGhpcyxpbnRlcnBvc2VGYWN0b3J5KHRoaXMscykpfSxpbnRlcmxlYXZlOmZ1bmN0aW9uKCl7dmFyIHM9W3RoaXNdLmNvbmNhdChhcnJDb3B5KGFyZ3VtZW50cykpLG89emlwV2l0aEZhY3RvcnkodGhpcy50b1NlcSgpLEluZGV4ZWRTZXEub2YscyksaT1vLmZsYXR0ZW4oITApO3JldHVybiBvLnNpemUmJihpLnNpemU9by5zaXplKnMubGVuZ3RoKSxyZWlmeSh0aGlzLGkpfSxrZXlTZXE6ZnVuY3Rpb24oKXtyZXR1cm4gUmFuZ2UoMCx0aGlzLnNpemUpfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KC0xKX0sc2tpcFdoaWxlOmZ1bmN0aW9uKHMsbyl7cmV0dXJuIHJlaWZ5KHRoaXMsc2tpcFdoaWxlRmFjdG9yeSh0aGlzLHMsbywhMSkpfSx6aXA6ZnVuY3Rpb24oKXtyZXR1cm4gcmVpZnkodGhpcyx6aXBXaXRoRmFjdG9yeSh0aGlzLGRlZmF1bHRaaXBwZXIsW3RoaXNdLmNvbmNhdChhcnJDb3B5KGFyZ3VtZW50cykpKSl9LHppcFdpdGg6ZnVuY3Rpb24ocyl7dmFyIG89YXJyQ29weShhcmd1bWVudHMpO3JldHVybiBvWzBdPXRoaXMscmVpZnkodGhpcyx6aXBXaXRoRmFjdG9yeSh0aGlzLHMsbykpfX0pLEluZGV4ZWRJdGVyYWJsZS5wcm90b3R5cGVbYV09ITAsSW5kZXhlZEl0ZXJhYmxlLnByb3RvdHlwZVt1XT0hMCxtaXhpbihTZXRJdGVyYWJsZSx7Z2V0OmZ1bmN0aW9uKHMsbyl7cmV0dXJuIHRoaXMuaGFzKHMpP3M6b30saW5jbHVkZXM6ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMuaGFzKHMpfSxrZXlTZXE6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZVNlcSgpfX0pLFNldEl0ZXJhYmxlLnByb3RvdHlwZS5oYXM9dXQuaW5jbHVkZXMsU2V0SXRlcmFibGUucHJvdG90eXBlLmNvbnRhaW5zPVNldEl0ZXJhYmxlLnByb3RvdHlwZS5pbmNsdWRlcyxtaXhpbihLZXllZFNlcSxLZXllZEl0ZXJhYmxlLnByb3RvdHlwZSksbWl4aW4oSW5kZXhlZFNlcSxJbmRleGVkSXRlcmFibGUucHJvdG90eXBlKSxtaXhpbihTZXRTZXEsU2V0SXRlcmFibGUucHJvdG90eXBlKSxtaXhpbihLZXllZENvbGxlY3Rpb24sS2V5ZWRJdGVyYWJsZS5wcm90b3R5cGUpLG1peGluKEluZGV4ZWRDb2xsZWN0aW9uLEluZGV4ZWRJdGVyYWJsZS5wcm90b3R5cGUpLG1peGluKFNldENvbGxlY3Rpb24sU2V0SXRlcmFibGUucHJvdG90eXBlKSx7SXRlcmFibGUsU2VxLENvbGxlY3Rpb24sTWFwLE9yZGVyZWRNYXAsTGlzdCxTdGFjayxTZXQsT3JkZXJlZFNldCxSZWNvcmQsUmFuZ2UsUmVwZWF0LGlzLGZyb21KU319KCl9LDk3NDg6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0IjtpKDcxMzQwKTt2YXIgYT1pKDkyMDQ2KTtzLmV4cG9ydHM9YS5PYmplY3QuYXNzaWdufSw5OTk5OihzLG8saSk9Pnt2YXIgYT1pKDM3MjE3KSx1PWkoODM3MjkpLF89aSgxNjU0Nyksdz1pKDc0NzMzKSx4PWkoNDM4MzgpLEM9aSg5MzI5MCksaj1pKDIzMDA3KSxMPWkoOTIyNzEpLEI9aSg0ODk0OCksJD1pKDUwMDAyKSxWPWkoODMzNDkpLFU9aSg1ODYxKSx6PWkoNzYxODkpLFk9aSg3NzE5OSksWj1pKDM1NTI5KSxlZT1pKDU2NDQ5KSxpZT1pKDM2NTYpLGFlPWkoODc3MzApLGNlPWkoMjM4MDUpLGxlPWkoMzg0NDApLHBlPWkoOTU5NTApLGRlPWkoMzcyNDEpLGZlPSJbb2JqZWN0IEFyZ3VtZW50c10iLHllPSJbb2JqZWN0IEZ1bmN0aW9uXSIsYmU9IltvYmplY3QgT2JqZWN0XSIsX2U9e307X2VbZmVdPV9lWyJbb2JqZWN0IEFycmF5XSJdPV9lWyJbb2JqZWN0IEFycmF5QnVmZmVyXSJdPV9lWyJbb2JqZWN0IERhdGFWaWV3XSJdPV9lWyJbb2JqZWN0IEJvb2xlYW5dIl09X2VbIltvYmplY3QgRGF0ZV0iXT1fZVsiW29iamVjdCBGbG9hdDMyQXJyYXldIl09X2VbIltvYmplY3QgRmxvYXQ2NEFycmF5XSJdPV9lWyJbb2JqZWN0IEludDhBcnJheV0iXT1fZVsiW29iamVjdCBJbnQxNkFycmF5XSJdPV9lWyJbb2JqZWN0IEludDMyQXJyYXldIl09X2VbIltvYmplY3QgTWFwXSJdPV9lWyJbb2JqZWN0IE51bWJlcl0iXT1fZVtiZV09X2VbIltvYmplY3QgUmVnRXhwXSJdPV9lWyJbb2JqZWN0IFNldF0iXT1fZVsiW29iamVjdCBTdHJpbmddIl09X2VbIltvYmplY3QgU3ltYm9sXSJdPV9lWyJbb2JqZWN0IFVpbnQ4QXJyYXldIl09X2VbIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIl09X2VbIltvYmplY3QgVWludDE2QXJyYXldIl09X2VbIltvYmplY3QgVWludDMyQXJyYXldIl09ITAsX2VbIltvYmplY3QgRXJyb3JdIl09X2VbeWVdPV9lWyJbb2JqZWN0IFdlYWtNYXBdIl09ITEscy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VDbG9uZShzLG8saSxTZSx3ZSx4ZSl7dmFyIFBlLFRlPTEmbyxSZT0yJm8sJGU9NCZvO2lmKGkmJihQZT13ZT9pKHMsU2Usd2UseGUpOmkocykpLHZvaWQgMCE9PVBlKXJldHVybiBQZTtpZighY2UocykpcmV0dXJuIHM7dmFyIHFlPWVlKHMpO2lmKHFlKXtpZihQZT16KHMpLCFUZSlyZXR1cm4gaihzLFBlKX1lbHNle3ZhciB6ZT1VKHMpLFdlPXplPT15ZXx8IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIj09emU7aWYoaWUocykpcmV0dXJuIEMocyxUZSk7aWYoemU9PWJlfHx6ZT09ZmV8fFdlJiYhd2Upe2lmKFBlPVJlfHxXZT97fTpaKHMpLCFUZSlyZXR1cm4gUmU/QihzLHgoUGUscykpOkwocyx3KFBlLHMpKX1lbHNle2lmKCFfZVt6ZV0pcmV0dXJuIHdlP3M6e307UGU9WShzLHplLFRlKX19eGV8fCh4ZT1uZXcgYSk7dmFyIEhlPXhlLmdldChzKTtpZihIZSlyZXR1cm4gSGU7eGUuc2V0KHMsUGUpLGxlKHMpP3MuZm9yRWFjaCgoZnVuY3Rpb24oYSl7UGUuYWRkKGJhc2VDbG9uZShhLG8saSxhLHMseGUpKX0pKTphZShzKSYmcy5mb3JFYWNoKChmdW5jdGlvbihhLHUpe1BlLnNldCh1LGJhc2VDbG9uZShhLG8saSx1LHMseGUpKX0pKTt2YXIgWWU9cWU/dm9pZCAwOigkZT9SZT9WOiQ6UmU/ZGU6cGUpKHMpO3JldHVybiB1KFllfHxzLChmdW5jdGlvbihhLHUpe1llJiYoYT1zW3U9YV0pLF8oUGUsdSxiYXNlQ2xvbmUoYSxvLGksdSxzLHhlKSl9KSksUGV9fSwxMDAyMzoocyxvLGkpPT57Y29uc3QgYT1pKDYyMDUpLElOVFM9KCk9Plt7dHlwZTphLlJBTkdFLGZyb206NDgsdG86NTd9XSxXT1JEUz0oKT0+W3t0eXBlOmEuQ0hBUix2YWx1ZTo5NX0se3R5cGU6YS5SQU5HRSxmcm9tOjk3LHRvOjEyMn0se3R5cGU6YS5SQU5HRSxmcm9tOjY1LHRvOjkwfV0uY29uY2F0KElOVFMoKSksV0hJVEVTUEFDRT0oKT0+W3t0eXBlOmEuQ0hBUix2YWx1ZTo5fSx7dHlwZTphLkNIQVIsdmFsdWU6MTB9LHt0eXBlOmEuQ0hBUix2YWx1ZToxMX0se3R5cGU6YS5DSEFSLHZhbHVlOjEyfSx7dHlwZTphLkNIQVIsdmFsdWU6MTN9LHt0eXBlOmEuQ0hBUix2YWx1ZTozMn0se3R5cGU6YS5DSEFSLHZhbHVlOjE2MH0se3R5cGU6YS5DSEFSLHZhbHVlOjU3NjB9LHt0eXBlOmEuUkFOR0UsZnJvbTo4MTkyLHRvOjgyMDJ9LHt0eXBlOmEuQ0hBUix2YWx1ZTo4MjMyfSx7dHlwZTphLkNIQVIsdmFsdWU6ODIzM30se3R5cGU6YS5DSEFSLHZhbHVlOjgyMzl9LHt0eXBlOmEuQ0hBUix2YWx1ZTo4Mjg3fSx7dHlwZTphLkNIQVIsdmFsdWU6MTIyODh9LHt0eXBlOmEuQ0hBUix2YWx1ZTo2NTI3OX1dO28ud29yZHM9KCk9Pih7dHlwZTphLlNFVCxzZXQ6V09SRFMoKSxub3Q6ITF9KSxvLm5vdFdvcmRzPSgpPT4oe3R5cGU6YS5TRVQsc2V0OldPUkRTKCksbm90OiEwfSksby5pbnRzPSgpPT4oe3R5cGU6YS5TRVQsc2V0OklOVFMoKSxub3Q6ITF9KSxvLm5vdEludHM9KCk9Pih7dHlwZTphLlNFVCxzZXQ6SU5UUygpLG5vdDohMH0pLG8ud2hpdGVzcGFjZT0oKT0+KHt0eXBlOmEuU0VULHNldDpXSElURVNQQUNFKCksbm90OiExfSksby5ub3RXaGl0ZXNwYWNlPSgpPT4oe3R5cGU6YS5TRVQsc2V0OldISVRFU1BBQ0UoKSxub3Q6ITB9KSxvLmFueUNoYXI9KCk9Pih7dHlwZTphLlNFVCxzZXQ6W3t0eXBlOmEuQ0hBUix2YWx1ZToxMH0se3R5cGU6YS5DSEFSLHZhbHVlOjEzfSx7dHlwZTphLkNIQVIsdmFsdWU6ODIzMn0se3R5cGU6YS5DSEFSLHZhbHVlOjgyMzN9XSxub3Q6ITB9KX0sMTAwNDM6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDU0MDE4KSx1PVN0cmluZyxfPVR5cGVFcnJvcjtzLmV4cG9ydHM9ZnVuY3Rpb24ocyl7aWYoYShzKSlyZXR1cm4gczt0aHJvdyBuZXcgXygiQ2FuJ3Qgc2V0ICIrdShzKSsiIGFzIGEgcHJvdG90eXBlIil9fSwxMDEyNDoocyxvLGkpPT57dmFyIGE9aSg5MzI1KTtzLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gYS5EYXRlLm5vdygpfX0sMTAzMDA6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDEzOTMwKSx1PWkoODIxNTkpLF89aSgzNjYyNCksdz1pKDQ2NDApLHg9aSg3MzQ0OCksQz1UeXBlRXJyb3I7cy5leHBvcnRzPWZ1bmN0aW9uKHMsbyl7dmFyIGk9YXJndW1lbnRzLmxlbmd0aDwyP3gocyk6bztpZih1KGkpKXJldHVybiBfKGEoaSxzKSk7dGhyb3cgbmV3IEModyhzKSsiIGlzIG5vdCBpdGVyYWJsZSIpfX0sMTAzMTY6KHMsbyxpKT0+e2NvbnN0IGE9aSgyNDA0KSx1PWkoNTU5NzMpLF89aSg5MjM0MCk7Y2xhc3MgRWxlbWVudHtjb25zdHJ1Y3RvcihzLG8saSl7byYmKHRoaXMubWV0YT1vKSxpJiYodGhpcy5hdHRyaWJ1dGVzPWkpLHRoaXMuY29udGVudD1zfWZyZWV6ZSgpe09iamVjdC5pc0Zyb3plbih0aGlzKXx8KHRoaXMuX21ldGEmJih0aGlzLm1ldGEucGFyZW50PXRoaXMsdGhpcy5tZXRhLmZyZWV6ZSgpKSx0aGlzLl9hdHRyaWJ1dGVzJiYodGhpcy5hdHRyaWJ1dGVzLnBhcmVudD10aGlzLHRoaXMuYXR0cmlidXRlcy5mcmVlemUoKSksdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChzPT57cy5wYXJlbnQ9dGhpcyxzLmZyZWV6ZSgpfSksdGhpcyksdGhpcy5jb250ZW50JiZBcnJheS5pc0FycmF5KHRoaXMuY29udGVudCkmJk9iamVjdC5mcmVlemUodGhpcy5jb250ZW50KSxPYmplY3QuZnJlZXplKHRoaXMpKX1wcmltaXRpdmUoKXt9Y2xvbmUoKXtjb25zdCBzPW5ldyB0aGlzLmNvbnN0cnVjdG9yO3JldHVybiBzLmVsZW1lbnQ9dGhpcy5lbGVtZW50LHRoaXMubWV0YS5sZW5ndGgmJihzLl9tZXRhPXRoaXMubWV0YS5jbG9uZSgpKSx0aGlzLmF0dHJpYnV0ZXMubGVuZ3RoJiYocy5fYXR0cmlidXRlcz10aGlzLmF0dHJpYnV0ZXMuY2xvbmUoKSksdGhpcy5jb250ZW50P3RoaXMuY29udGVudC5jbG9uZT9zLmNvbnRlbnQ9dGhpcy5jb250ZW50LmNsb25lKCk6QXJyYXkuaXNBcnJheSh0aGlzLmNvbnRlbnQpP3MuY29udGVudD10aGlzLmNvbnRlbnQubWFwKChzPT5zLmNsb25lKCkpKTpzLmNvbnRlbnQ9dGhpcy5jb250ZW50OnMuY29udGVudD10aGlzLmNvbnRlbnQsc310b1ZhbHVlKCl7cmV0dXJuIHRoaXMuY29udGVudCBpbnN0YW5jZW9mIEVsZW1lbnQ/dGhpcy5jb250ZW50LnRvVmFsdWUoKTp0aGlzLmNvbnRlbnQgaW5zdGFuY2VvZiB1P3trZXk6dGhpcy5jb250ZW50LmtleS50b1ZhbHVlKCksdmFsdWU6dGhpcy5jb250ZW50LnZhbHVlP3RoaXMuY29udGVudC52YWx1ZS50b1ZhbHVlKCk6dm9pZCAwfTp0aGlzLmNvbnRlbnQmJnRoaXMuY29udGVudC5tYXA/dGhpcy5jb250ZW50Lm1hcCgocz0+cy50b1ZhbHVlKCkpLHRoaXMpOnRoaXMuY29udGVudH10b1JlZihzKXtpZigiIj09PXRoaXMuaWQudG9WYWx1ZSgpKXRocm93IEVycm9yKCJDYW5ub3QgY3JlYXRlIHJlZmVyZW5jZSB0byBhbiBlbGVtZW50IHRoYXQgZG9lcyBub3QgY29udGFpbiBhbiBJRCIpO2NvbnN0IG89bmV3IHRoaXMuUmVmRWxlbWVudCh0aGlzLmlkLnRvVmFsdWUoKSk7cmV0dXJuIHMmJihvLnBhdGg9cyksb31maW5kUmVjdXJzaXZlKC4uLnMpe2lmKGFyZ3VtZW50cy5sZW5ndGg+MSYmIXRoaXMuaXNGcm96ZW4pdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZmluZCByZWN1cnNpdmUgd2l0aCBtdWx0aXBsZSBlbGVtZW50IG5hbWVzIHdpdGhvdXQgZmlyc3QgZnJlZXppbmcgdGhlIGVsZW1lbnQuIENhbGwgYGVsZW1lbnQuZnJlZXplKClgIik7Y29uc3Qgbz1zLnBvcCgpO2xldCBpPW5ldyBfO2NvbnN0IGFwcGVuZD0ocyxvKT0+KHMucHVzaChvKSxzKSxjaGVja0VsZW1lbnQ9KHMsaSk9PntpLmVsZW1lbnQ9PT1vJiZzLnB1c2goaSk7Y29uc3QgYT1pLmZpbmRSZWN1cnNpdmUobyk7cmV0dXJuIGEmJmEucmVkdWNlKGFwcGVuZCxzKSxpLmNvbnRlbnQgaW5zdGFuY2VvZiB1JiYoaS5jb250ZW50LmtleSYmY2hlY2tFbGVtZW50KHMsaS5jb250ZW50LmtleSksaS5jb250ZW50LnZhbHVlJiZjaGVja0VsZW1lbnQocyxpLmNvbnRlbnQudmFsdWUpKSxzfTtyZXR1cm4gdGhpcy5jb250ZW50JiYodGhpcy5jb250ZW50LmVsZW1lbnQmJmNoZWNrRWxlbWVudChpLHRoaXMuY29udGVudCksQXJyYXkuaXNBcnJheSh0aGlzLmNvbnRlbnQpJiZ0aGlzLmNvbnRlbnQucmVkdWNlKGNoZWNrRWxlbWVudCxpKSkscy5pc0VtcHR5fHwoaT1pLmZpbHRlcigobz0+e2xldCBpPW8ucGFyZW50cy5tYXAoKHM9PnMuZWxlbWVudCkpO2Zvcihjb25zdCBvIGluIHMpe2NvbnN0IGE9c1tvXSx1PWkuaW5kZXhPZihhKTtpZigtMT09PXUpcmV0dXJuITE7aT1pLnNwbGljZSgwLHUpfXJldHVybiEwfSkpKSxpfXNldChzKXtyZXR1cm4gdGhpcy5jb250ZW50PXMsdGhpc31lcXVhbHMocyl7cmV0dXJuIGEodGhpcy50b1ZhbHVlKCkscyl9Z2V0TWV0YVByb3BlcnR5KHMsbyl7aWYoIXRoaXMubWV0YS5oYXNLZXkocykpe2lmKHRoaXMuaXNGcm96ZW4pe2NvbnN0IHM9dGhpcy5yZWZyYWN0KG8pO3JldHVybiBzLmZyZWV6ZSgpLHN9dGhpcy5tZXRhLnNldChzLG8pfXJldHVybiB0aGlzLm1ldGEuZ2V0KHMpfXNldE1ldGFQcm9wZXJ0eShzLG8pe3RoaXMubWV0YS5zZXQocyxvKX1nZXQgZWxlbWVudCgpe3JldHVybiB0aGlzLl9zdG9yZWRFbGVtZW50fHwiZWxlbWVudCJ9c2V0IGVsZW1lbnQocyl7dGhpcy5fc3RvcmVkRWxlbWVudD1zfWdldCBjb250ZW50KCl7cmV0dXJuIHRoaXMuX2NvbnRlbnR9c2V0IGNvbnRlbnQocyl7aWYocyBpbnN0YW5jZW9mIEVsZW1lbnQpdGhpcy5fY29udGVudD1zO2Vsc2UgaWYocyBpbnN0YW5jZW9mIF8pdGhpcy5jb250ZW50PXMuZWxlbWVudHM7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIHN8fCJudW1iZXIiPT10eXBlb2Ygc3x8ImJvb2xlYW4iPT10eXBlb2Ygc3x8Im51bGwiPT09c3x8bnVsbD09cyl0aGlzLl9jb250ZW50PXM7ZWxzZSBpZihzIGluc3RhbmNlb2YgdSl0aGlzLl9jb250ZW50PXM7ZWxzZSBpZihBcnJheS5pc0FycmF5KHMpKXRoaXMuX2NvbnRlbnQ9cy5tYXAodGhpcy5yZWZyYWN0KTtlbHNle2lmKCJvYmplY3QiIT10eXBlb2Ygcyl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXQgY29udGVudCB0byBnaXZlbiB2YWx1ZSIpO3RoaXMuX2NvbnRlbnQ9T2JqZWN0LmtleXMocykubWFwKChvPT5uZXcgdGhpcy5NZW1iZXJFbGVtZW50KG8sc1tvXSkpKX19Z2V0IG1ldGEoKXtpZighdGhpcy5fbWV0YSl7aWYodGhpcy5pc0Zyb3plbil7Y29uc3Qgcz1uZXcgdGhpcy5PYmplY3RFbGVtZW50O3JldHVybiBzLmZyZWV6ZSgpLHN9dGhpcy5fbWV0YT1uZXcgdGhpcy5PYmplY3RFbGVtZW50fXJldHVybiB0aGlzLl9tZXRhfXNldCBtZXRhKHMpe3MgaW5zdGFuY2VvZiB0aGlzLk9iamVjdEVsZW1lbnQ/dGhpcy5fbWV0YT1zOnRoaXMubWV0YS5zZXQoc3x8e30pfWdldCBhdHRyaWJ1dGVzKCl7aWYoIXRoaXMuX2F0dHJpYnV0ZXMpe2lmKHRoaXMuaXNGcm96ZW4pe2NvbnN0IHM9bmV3IHRoaXMuT2JqZWN0RWxlbWVudDtyZXR1cm4gcy5mcmVlemUoKSxzfXRoaXMuX2F0dHJpYnV0ZXM9bmV3IHRoaXMuT2JqZWN0RWxlbWVudH1yZXR1cm4gdGhpcy5fYXR0cmlidXRlc31zZXQgYXR0cmlidXRlcyhzKXtzIGluc3RhbmNlb2YgdGhpcy5PYmplY3RFbGVtZW50P3RoaXMuX2F0dHJpYnV0ZXM9czp0aGlzLmF0dHJpYnV0ZXMuc2V0KHN8fHt9KX1nZXQgaWQoKXtyZXR1cm4gdGhpcy5nZXRNZXRhUHJvcGVydHkoImlkIiwiIil9c2V0IGlkKHMpe3RoaXMuc2V0TWV0YVByb3BlcnR5KCJpZCIscyl9Z2V0IGNsYXNzZXMoKXtyZXR1cm4gdGhpcy5nZXRNZXRhUHJvcGVydHkoImNsYXNzZXMiLFtdKX1zZXQgY2xhc3NlcyhzKXt0aGlzLnNldE1ldGFQcm9wZXJ0eSgiY2xhc3NlcyIscyl9Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMuZ2V0TWV0YVByb3BlcnR5KCJ0aXRsZSIsIiIpfXNldCB0aXRsZShzKXt0aGlzLnNldE1ldGFQcm9wZXJ0eSgidGl0bGUiLHMpfWdldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLmdldE1ldGFQcm9wZXJ0eSgiZGVzY3JpcHRpb24iLCIiKX1zZXQgZGVzY3JpcHRpb24ocyl7dGhpcy5zZXRNZXRhUHJvcGVydHkoImRlc2NyaXB0aW9uIixzKX1nZXQgbGlua3MoKXtyZXR1cm4gdGhpcy5nZXRNZXRhUHJvcGVydHkoImxpbmtzIixbXSl9c2V0IGxpbmtzKHMpe3RoaXMuc2V0TWV0YVByb3BlcnR5KCJsaW5rcyIscyl9Z2V0IGlzRnJvemVuKCl7cmV0dXJuIE9iamVjdC5pc0Zyb3plbih0aGlzKX1nZXQgcGFyZW50cygpe2xldHtwYXJlbnQ6c309dGhpcztjb25zdCBvPW5ldyBfO2Zvcig7czspby5wdXNoKHMpLHM9cy5wYXJlbnQ7cmV0dXJuIG99Z2V0IGNoaWxkcmVuKCl7aWYoQXJyYXkuaXNBcnJheSh0aGlzLmNvbnRlbnQpKXJldHVybiBuZXcgXyh0aGlzLmNvbnRlbnQpO2lmKHRoaXMuY29udGVudCBpbnN0YW5jZW9mIHUpe2NvbnN0IHM9bmV3IF8oW3RoaXMuY29udGVudC5rZXldKTtyZXR1cm4gdGhpcy5jb250ZW50LnZhbHVlJiZzLnB1c2godGhpcy5jb250ZW50LnZhbHVlKSxzfXJldHVybiB0aGlzLmNvbnRlbnQgaW5zdGFuY2VvZiBFbGVtZW50P25ldyBfKFt0aGlzLmNvbnRlbnRdKTpuZXcgX31nZXQgcmVjdXJzaXZlQ2hpbGRyZW4oKXtjb25zdCBzPW5ldyBfO3JldHVybiB0aGlzLmNoaWxkcmVuLmZvckVhY2goKG89PntzLnB1c2gobyksby5yZWN1cnNpdmVDaGlsZHJlbi5mb3JFYWNoKChvPT57cy5wdXNoKG8pfSkpfSkpLHN9fXMuZXhwb3J0cz1FbGVtZW50fSwxMDM5MjpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIGdldFZhbHVlKHMsbyl7cmV0dXJuIG51bGw9PXM/dm9pZCAwOnNbb119fSwxMDc3NjoocyxvLGkpPT57dmFyIGE9aSgzMDc1NiksdT1pKDk1OTUwKTtzLmV4cG9ydHM9ZnVuY3Rpb24gZ2V0TWF0Y2hEYXRhKHMpe2Zvcih2YXIgbz11KHMpLGk9by5sZW5ndGg7aS0tOyl7dmFyIF89b1tpXSx3PXNbX107b1tpXT1bXyx3LGEodyldfXJldHVybiBvfX0sMTA4NjY6KHMsbyxpKT0+e2NvbnN0IGE9aSg2MDQ4KSx1PWkoOTIzNDApO2NsYXNzIE9iamVjdFNsaWNlIGV4dGVuZHMgdXttYXAocyxvKXtyZXR1cm4gdGhpcy5lbGVtZW50cy5tYXAoKGk9PnMuYmluZChvKShpLnZhbHVlLGkua2V5LGkpKSl9ZmlsdGVyKHMsbyl7cmV0dXJuIG5ldyBPYmplY3RTbGljZSh0aGlzLmVsZW1lbnRzLmZpbHRlcigoaT0+cy5iaW5kKG8pKGkudmFsdWUsaS5rZXksaSkpKSl9cmVqZWN0KHMsbyl7cmV0dXJuIHRoaXMuZmlsdGVyKGEocy5iaW5kKG8pKSl9Zm9yRWFjaChzLG8pe3JldHVybiB0aGlzLmVsZW1lbnRzLmZvckVhY2goKChpLGEpPT57cy5iaW5kKG8pKGkudmFsdWUsaS5rZXksaSxhKX0pKX1rZXlzKCl7cmV0dXJuIHRoaXMubWFwKCgocyxvKT0+by50b1ZhbHVlKCkpKX12YWx1ZXMoKXtyZXR1cm4gdGhpcy5tYXAoKHM9PnMudG9WYWx1ZSgpKSl9fXMuZXhwb3J0cz1PYmplY3RTbGljZX0sMTEwNDI6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDg1NTgyKSx1PWkoMTkwNyksXz1pKDI0NDQzKSx3PWkoODcxNzApLHg9aSgzNjYyNCksQz11KFtdLmNvbmNhdCk7cy5leHBvcnRzPWEoIlJlZmxlY3QiLCJvd25LZXlzIil8fGZ1bmN0aW9uIG93bktleXMocyl7dmFyIG89Xy5mKHgocykpLGk9dy5mO3JldHVybiBpP0MobyxpKHMpKTpvfX0sMTEwOTE6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDQ1OTUxKSx1PWkoNzYwMjQpLF89aSg5MjM2MSksdz1pKDYyMjUwKSx4PWkoMTM4NDYpLmYsQz1pKDc0NjMpLGo9aSg5MjA0NiksTD1pKDI4MzExKSxCPWkoNjE2MjYpLCQ9aSg0OTcyNCk7aSgzNjEyOCk7dmFyIHdyYXBDb25zdHJ1Y3Rvcj1mdW5jdGlvbihzKXt2YXIgV3JhcHBlcj1mdW5jdGlvbihvLGksYSl7aWYodGhpcyBpbnN0YW5jZW9mIFdyYXBwZXIpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIG5ldyBzO2Nhc2UgMTpyZXR1cm4gbmV3IHMobyk7Y2FzZSAyOnJldHVybiBuZXcgcyhvLGkpfXJldHVybiBuZXcgcyhvLGksYSl9cmV0dXJuIHUocyx0aGlzLGFyZ3VtZW50cyl9O3JldHVybiBXcmFwcGVyLnByb3RvdHlwZT1zLnByb3RvdHlwZSxXcmFwcGVyfTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvKXt2YXIgaSx1LFYsVSx6LFksWixlZSxpZSxhZT1zLnRhcmdldCxjZT1zLmdsb2JhbCxsZT1zLnN0YXQscGU9cy5wcm90byxkZT1jZT9hOmxlP2FbYWVdOmFbYWVdJiZhW2FlXS5wcm90b3R5cGUsZmU9Y2U/ajpqW2FlXXx8QihqLGFlLHt9KVthZV0seWU9ZmUucHJvdG90eXBlO2ZvcihVIGluIG8pdT0hKGk9QyhjZT9VOmFlKyhsZT8iLiI6IiMiKStVLHMuZm9yY2VkKSkmJmRlJiYkKGRlLFUpLFk9ZmVbVV0sdSYmKFo9cy5kb250Q2FsbEdldFNldD8oaWU9eChkZSxVKSkmJmllLnZhbHVlOmRlW1VdKSx6PXUmJlo/WjpvW1VdLChpfHxwZXx8dHlwZW9mIFkhPXR5cGVvZiB6KSYmKGVlPXMuYmluZCYmdT9MKHosYSk6cy53cmFwJiZ1P3dyYXBDb25zdHJ1Y3Rvcih6KTpwZSYmdyh6KT9fKHopOnosKHMuc2hhbXx8eiYmei5zaGFtfHxZJiZZLnNoYW0pJiZCKGVlLCJzaGFtIiwhMCksQihmZSxVLGVlKSxwZSYmKCQoaixWPWFlKyJQcm90b3R5cGUiKXx8QihqLFYse30pLEIoaltWXSxVLHopLHMucmVhbCYmeWUmJihpfHwheWVbVV0pJiZCKHllLFUseikpKX19LDExMjg3OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gZ2V0SG9sZGVyKHMpe3JldHVybiBzLnBsYWNlaG9sZGVyfX0sMTEzMzE6KHMsbyxpKT0+e3ZhciBhPWkoNzI1NTIpLHU9aSgyODg3OSksXz1pKDQwMzQ2KSx3PUZ1bmN0aW9uLnByb3RvdHlwZSx4PU9iamVjdC5wcm90b3R5cGUsQz13LnRvU3RyaW5nLGo9eC5oYXNPd25Qcm9wZXJ0eSxMPUMuY2FsbChPYmplY3QpO3MuZXhwb3J0cz1mdW5jdGlvbiBpc1BsYWluT2JqZWN0KHMpe2lmKCFfKHMpfHwiW29iamVjdCBPYmplY3RdIiE9YShzKSlyZXR1cm4hMTt2YXIgbz11KHMpO2lmKG51bGw9PT1vKXJldHVybiEwO3ZhciBpPWouY2FsbChvLCJjb25zdHJ1Y3RvciIpJiZvLmNvbnN0cnVjdG9yO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBpJiZpIGluc3RhbmNlb2YgaSYmQy5jYWxsKGkpPT1MfX0sMTE0NzA6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDE5MDcpLHU9aSg2NTQ4MiksXz1pKDkwMTYwKSx3PWkoNzQyMzkpLHg9YSgiIi5jaGFyQXQpLEM9YSgiIi5jaGFyQ29kZUF0KSxqPWEoIiIuc2xpY2UpLGNyZWF0ZU1ldGhvZD1mdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24obyxpKXt2YXIgYSxMLEI9Xyh3KG8pKSwkPXUoaSksVj1CLmxlbmd0aDtyZXR1cm4gJDwwfHwkPj1WP3M/IiI6dm9pZCAwOihhPUMoQiwkKSk8NTUyOTZ8fGE+NTYzMTl8fCQrMT09PVZ8fChMPUMoQiwkKzEpKTw1NjMyMHx8TD41NzM0Mz9zP3goQiwkKTphOnM/aihCLCQsJCsyKTpMLTU2MzIwKyhhLTU1Mjk2PDwxMCkrNjU1MzZ9fTtzLmV4cG9ydHM9e2NvZGVBdDpjcmVhdGVNZXRob2QoITEpLGNoYXJBdDpjcmVhdGVNZXRob2QoITApfX0sMTE4NDI6KHMsbyxpKT0+e3ZhciBhPWkoODI4MTkpLHU9aSg5MzI1KTtzLmV4cG9ydHM9ZnVuY3Rpb24gY3JlYXRlQmluZChzLG8saSl7dmFyIF89MSZvLHc9YShzKTtyZXR1cm4gZnVuY3Rpb24gd3JhcHBlcigpe3JldHVybih0aGlzJiZ0aGlzIT09dSYmdGhpcyBpbnN0YW5jZW9mIHdyYXBwZXI/dzpzKS5hcHBseShfP2k6dGhpcyxhcmd1bWVudHMpfX19LDEyMjQyOihzLG8saSk9Pntjb25zdCBhPWkoMTAzMTYpO3MuZXhwb3J0cz1jbGFzcyBCb29sZWFuRWxlbWVudCBleHRlbmRzIGF7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9ImJvb2xlYW4ifXByaW1pdGl2ZSgpe3JldHVybiJib29sZWFuIn19fSwxMjUwNzoocyxvLGkpPT57dmFyIGE9aSgyODc1NCksdT1pKDQ5Njk4KSxfPWkoNjM5MTIpLHc9aSgxMzIyMik7cy5leHBvcnRzPWZ1bmN0aW9uIGNyZWF0ZUNhc2VGaXJzdChzKXtyZXR1cm4gZnVuY3Rpb24obyl7bz13KG8pO3ZhciBpPXUobyk/XyhvKTp2b2lkIDAseD1pP2lbMF06by5jaGFyQXQoMCksQz1pP2EoaSwxKS5qb2luKCIiKTpvLnNsaWNlKDEpO3JldHVybiB4W3NdKCkrQ319fSwxMjU2MDoocyxvLGkpPT57InVzZSBzdHJpY3QiO2koOTkzNjMpO3ZhciBhPWkoMTkyODcpLHU9aSg0NTk1MSksXz1pKDE0ODQwKSx3PWkoOTM3NDIpO2Zvcih2YXIgeCBpbiBhKV8odVt4XSx4KSx3W3hdPXcuQXJyYXl9LDEyNjUxOihzLG8saSk9Pnt2YXIgYT1pKDc0MjE4KTtzLmV4cG9ydHM9ZnVuY3Rpb24gZ2V0TWFwRGF0YShzLG8pe3ZhciBpPXMuX19kYXRhX187cmV0dXJuIGEobyk/aVsic3RyaW5nIj09dHlwZW9mIG8/InN0cmluZyI6Imhhc2giXTppLm1hcH19LDEyNzQ5OihzLG8saSk9Pnt2YXIgYT1pKDgxMDQyKSx1PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7cy5leHBvcnRzPWZ1bmN0aW9uIGhhc2hIYXMocyl7dmFyIG89dGhpcy5fX2RhdGFfXztyZXR1cm4gYT92b2lkIDAhPT1vW3NdOnUuY2FsbChvLHMpfX0sMTMyMjI6KHMsbyxpKT0+e3ZhciBhPWkoNzc1NTYpO3MuZXhwb3J0cz1mdW5jdGlvbiB0b1N0cmluZyhzKXtyZXR1cm4gbnVsbD09cz8iIjphKHMpfX0sMTM4NDY6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDM5NDQ3KSx1PWkoMTM5MzApLF89aSgyMjU3NCksdz1pKDc1ODE3KSx4PWkoNDk5MyksQz1pKDcwNDcwKSxqPWkoNDk3MjQpLEw9aSg3MzY0OCksQj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO28uZj1hP0I6ZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsbyl7aWYocz14KHMpLG89QyhvKSxMKXRyeXtyZXR1cm4gQihzLG8pfWNhdGNoKHMpe31pZihqKHMsbykpcmV0dXJuIHcoIXUoXy5mLHMsbyksc1tvXSl9fSwxMzkzMDoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNDE1MDUpLHU9RnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7cy5leHBvcnRzPWE/dS5iaW5kKHUpOmZ1bmN0aW9uKCl7cmV0dXJuIHUuYXBwbHkodSxhcmd1bWVudHMpfX0sMTQyNDg6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBhcnJheVNvbWUocyxvKXtmb3IodmFyIGk9LTEsYT1udWxsPT1zPzA6cy5sZW5ndGg7KytpPGE7KWlmKG8oc1tpXSxpLHMpKXJldHVybiEwO3JldHVybiExfX0sMTQ1Mjg6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBhcnJheVB1c2gocyxvKXtmb3IodmFyIGk9LTEsYT1vLmxlbmd0aCx1PXMubGVuZ3RoOysraTxhOylzW3UraV09b1tpXTtyZXR1cm4gc319LDE0NTQwOihzLG8saSk9Pntjb25zdCBhPWkoMTAzMTYpO3MuZXhwb3J0cz1jbGFzcyBSZWZFbGVtZW50IGV4dGVuZHMgYXtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIoc3x8W10sbyxpKSx0aGlzLmVsZW1lbnQ9InJlZiIsdGhpcy5wYXRofHwodGhpcy5wYXRoPSJlbGVtZW50Iil9Z2V0IHBhdGgoKXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzLmdldCgicGF0aCIpfXNldCBwYXRoKHMpe3RoaXMuYXR0cmlidXRlcy5zZXQoInBhdGgiLHMpfX19LDE0NzQ0OnM9PnsidXNlIHN0cmljdCI7dmFyIG89ZnVuY3Rpb24gaXNNZXJnZWFibGVPYmplY3Qocyl7cmV0dXJuIGZ1bmN0aW9uIGlzTm9uTnVsbE9iamVjdChzKXtyZXR1cm4hIXMmJiJvYmplY3QiPT10eXBlb2Ygc30ocykmJiFmdW5jdGlvbiBpc1NwZWNpYWwocyl7dmFyIG89T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHMpO3JldHVybiJbb2JqZWN0IFJlZ0V4cF0iPT09b3x8IltvYmplY3QgRGF0ZV0iPT09b3x8ZnVuY3Rpb24gaXNSZWFjdEVsZW1lbnQocyl7cmV0dXJuIHMuJCR0eXBlb2Y9PT1pfShzKX0ocyl9O3ZhciBpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3I/U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpOjYwMTAzO2Z1bmN0aW9uIGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKHMsbyl7cmV0dXJuITEhPT1vLmNsb25lJiZvLmlzTWVyZ2VhYmxlT2JqZWN0KHMpP2RlZXBtZXJnZShmdW5jdGlvbiBlbXB0eVRhcmdldChzKXtyZXR1cm4gQXJyYXkuaXNBcnJheShzKT9bXTp7fX0ocykscyxvKTpzfWZ1bmN0aW9uIGRlZmF1bHRBcnJheU1lcmdlKHMsbyxpKXtyZXR1cm4gcy5jb25jYXQobykubWFwKChmdW5jdGlvbihzKXtyZXR1cm4gY2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQocyxpKX0pKX1mdW5jdGlvbiBnZXRLZXlzKHMpe3JldHVybiBPYmplY3Qua2V5cyhzKS5jb25jYXQoZnVuY3Rpb24gZ2V0RW51bWVyYWJsZU93blByb3BlcnR5U3ltYm9scyhzKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz9PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpLmZpbHRlcigoZnVuY3Rpb24obyl7cmV0dXJuIE9iamVjdC5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsbyl9KSk6W119KHMpKX1mdW5jdGlvbiBwcm9wZXJ0eUlzT25PYmplY3QocyxvKXt0cnl7cmV0dXJuIG8gaW4gc31jYXRjaChzKXtyZXR1cm4hMX19ZnVuY3Rpb24gbWVyZ2VPYmplY3QocyxvLGkpe3ZhciBhPXt9O3JldHVybiBpLmlzTWVyZ2VhYmxlT2JqZWN0KHMpJiZnZXRLZXlzKHMpLmZvckVhY2goKGZ1bmN0aW9uKG8pe2Fbb109Y2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQoc1tvXSxpKX0pKSxnZXRLZXlzKG8pLmZvckVhY2goKGZ1bmN0aW9uKHUpeyhmdW5jdGlvbiBwcm9wZXJ0eUlzVW5zYWZlKHMsbyl7cmV0dXJuIHByb3BlcnR5SXNPbk9iamVjdChzLG8pJiYhKE9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsbykmJk9iamVjdC5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsbykpfSkocyx1KXx8KHByb3BlcnR5SXNPbk9iamVjdChzLHUpJiZpLmlzTWVyZ2VhYmxlT2JqZWN0KG9bdV0pP2FbdV09ZnVuY3Rpb24gZ2V0TWVyZ2VGdW5jdGlvbihzLG8pe2lmKCFvLmN1c3RvbU1lcmdlKXJldHVybiBkZWVwbWVyZ2U7dmFyIGk9by5jdXN0b21NZXJnZShzKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgaT9pOmRlZXBtZXJnZX0odSxpKShzW3VdLG9bdV0saSk6YVt1XT1jbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZChvW3VdLGkpKX0pKSxhfWZ1bmN0aW9uIGRlZXBtZXJnZShzLGksYSl7KGE9YXx8e30pLmFycmF5TWVyZ2U9YS5hcnJheU1lcmdlfHxkZWZhdWx0QXJyYXlNZXJnZSxhLmlzTWVyZ2VhYmxlT2JqZWN0PWEuaXNNZXJnZWFibGVPYmplY3R8fG8sYS5jbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZD1jbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZDt2YXIgdT1BcnJheS5pc0FycmF5KGkpO3JldHVybiB1PT09QXJyYXkuaXNBcnJheShzKT91P2EuYXJyYXlNZXJnZShzLGksYSk6bWVyZ2VPYmplY3QocyxpLGEpOmNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKGksYSl9ZGVlcG1lcmdlLmFsbD1mdW5jdGlvbiBkZWVwbWVyZ2VBbGwocyxvKXtpZighQXJyYXkuaXNBcnJheShzKSl0aHJvdyBuZXcgRXJyb3IoImZpcnN0IGFyZ3VtZW50IHNob3VsZCBiZSBhbiBhcnJheSIpO3JldHVybiBzLnJlZHVjZSgoZnVuY3Rpb24ocyxpKXtyZXR1cm4gZGVlcG1lcmdlKHMsaSxvKX0pLHt9KX07dmFyIGE9ZGVlcG1lcmdlO3MuZXhwb3J0cz1hfSwxNDc5MjoocyxvLGkpPT57dmFyIGE9aSgxMzIyMiksdT1pKDU1ODA4KTtzLmV4cG9ydHM9ZnVuY3Rpb24gY2FwaXRhbGl6ZShzKXtyZXR1cm4gdShhKHMpLnRvTG93ZXJDYXNlKCkpfX0sMTQ4NDA6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDUyNjIzKSx1PWkoNzQyODQpLmYsXz1pKDYxNjI2KSx3PWkoNDk3MjQpLHg9aSg1NDg3OCksQz1pKDc2MjY0KSgidG9TdHJpbmdUYWciKTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvLGksail7dmFyIEw9aT9zOnMmJnMucHJvdG90eXBlO0wmJih3KEwsQyl8fHUoTCxDLHtjb25maWd1cmFibGU6ITAsdmFsdWU6b30pLGomJiFhJiZfKEwsInRvU3RyaW5nIix4KSl9fSwxNDk3NDpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIHNhZmVHZXQocyxvKXtpZigoImNvbnN0cnVjdG9yIiE9PW98fCJmdW5jdGlvbiIhPXR5cGVvZiBzW29dKSYmIl9fcHJvdG9fXyIhPW8pcmV0dXJuIHNbb119fSwxNTI4NzoocyxvKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaT1TeW1ib2wuZm9yKCJyZWFjdC5lbGVtZW50IiksYT1TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKSx1PVN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50IiksXz1TeW1ib2wuZm9yKCJyZWFjdC5zdHJpY3RfbW9kZSIpLHc9U3ltYm9sLmZvcigicmVhY3QucHJvZmlsZXIiKSx4PVN5bWJvbC5mb3IoInJlYWN0LnByb3ZpZGVyIiksQz1TeW1ib2wuZm9yKCJyZWFjdC5jb250ZXh0Iiksaj1TeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIpLEw9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKSxCPVN5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKSwkPVN5bWJvbC5mb3IoInJlYWN0LmxhenkiKSxWPVN5bWJvbC5pdGVyYXRvcjt2YXIgVT17aXNNb3VudGVkOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVNldFN0YXRlOmZ1bmN0aW9uKCl7fX0sej1PYmplY3QuYXNzaWduLFk9e307ZnVuY3Rpb24gRShzLG8saSl7dGhpcy5wcm9wcz1zLHRoaXMuY29udGV4dD1vLHRoaXMucmVmcz1ZLHRoaXMudXBkYXRlcj1pfHxVfWZ1bmN0aW9uIEYoKXt9ZnVuY3Rpb24gRyhzLG8saSl7dGhpcy5wcm9wcz1zLHRoaXMuY29udGV4dD1vLHRoaXMucmVmcz1ZLHRoaXMudXBkYXRlcj1pfHxVfUUucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9e30sRS5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24ocyxvKXtpZigib2JqZWN0IiE9dHlwZW9mIHMmJiJmdW5jdGlvbiIhPXR5cGVvZiBzJiZudWxsIT1zKXRocm93IEVycm9yKCJzZXRTdGF0ZSguLi4pOiB0YWtlcyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzIHRvIHVwZGF0ZSBvciBhIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcy4iKTt0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMscyxvLCJzZXRTdGF0ZSIpfSxFLnByb3RvdHlwZS5mb3JjZVVwZGF0ZT1mdW5jdGlvbihzKXt0aGlzLnVwZGF0ZXIuZW5xdWV1ZUZvcmNlVXBkYXRlKHRoaXMscywiZm9yY2VVcGRhdGUiKX0sRi5wcm90b3R5cGU9RS5wcm90b3R5cGU7dmFyIFo9Ry5wcm90b3R5cGU9bmV3IEY7Wi5jb25zdHJ1Y3Rvcj1HLHooWixFLnByb3RvdHlwZSksWi5pc1B1cmVSZWFjdENvbXBvbmVudD0hMDt2YXIgZWU9QXJyYXkuaXNBcnJheSxpZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGFlPXtjdXJyZW50Om51bGx9LGNlPXtrZXk6ITAscmVmOiEwLF9fc2VsZjohMCxfX3NvdXJjZTohMH07ZnVuY3Rpb24gTShzLG8sYSl7dmFyIHUsXz17fSx3PW51bGwseD1udWxsO2lmKG51bGwhPW8pZm9yKHUgaW4gdm9pZCAwIT09by5yZWYmJih4PW8ucmVmKSx2b2lkIDAhPT1vLmtleSYmKHc9IiIrby5rZXkpLG8paWUuY2FsbChvLHUpJiYhY2UuaGFzT3duUHJvcGVydHkodSkmJihfW3VdPW9bdV0pO3ZhciBDPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09QylfLmNoaWxkcmVuPWE7ZWxzZSBpZigxPEMpe2Zvcih2YXIgaj1BcnJheShDKSxMPTA7TDxDO0wrKylqW0xdPWFyZ3VtZW50c1tMKzJdO18uY2hpbGRyZW49an1pZihzJiZzLmRlZmF1bHRQcm9wcylmb3IodSBpbiBDPXMuZGVmYXVsdFByb3BzKXZvaWQgMD09PV9bdV0mJihfW3VdPUNbdV0pO3JldHVybnskJHR5cGVvZjppLHR5cGU6cyxrZXk6dyxyZWY6eCxwcm9wczpfLF9vd25lcjphZS5jdXJyZW50fX1mdW5jdGlvbiBPKHMpe3JldHVybiJvYmplY3QiPT10eXBlb2YgcyYmbnVsbCE9PXMmJnMuJCR0eXBlb2Y9PT1pfXZhciBsZT0vXC8rL2c7ZnVuY3Rpb24gUShzLG8pe3JldHVybiJvYmplY3QiPT10eXBlb2YgcyYmbnVsbCE9PXMmJm51bGwhPXMua2V5P2Z1bmN0aW9uIGVzY2FwZShzKXt2YXIgbz17Ij0iOiI9MCIsIjoiOiI9MiJ9O3JldHVybiIkIitzLnJlcGxhY2UoL1s9Ol0vZywoZnVuY3Rpb24ocyl7cmV0dXJuIG9bc119KSl9KCIiK3Mua2V5KTpvLnRvU3RyaW5nKDM2KX1mdW5jdGlvbiBSKHMsbyx1LF8sdyl7dmFyIHg9dHlwZW9mIHM7InVuZGVmaW5lZCIhPT14JiYiYm9vbGVhbiIhPT14fHwocz1udWxsKTt2YXIgQz0hMTtpZihudWxsPT09cylDPSEwO2Vsc2Ugc3dpdGNoKHgpe2Nhc2Uic3RyaW5nIjpjYXNlIm51bWJlciI6Qz0hMDticmVhaztjYXNlIm9iamVjdCI6c3dpdGNoKHMuJCR0eXBlb2Ype2Nhc2UgaTpjYXNlIGE6Qz0hMH19aWYoQylyZXR1cm4gdz13KEM9cykscz0iIj09PV8/Ii4iK1EoQywwKTpfLGVlKHcpPyh1PSIiLG51bGwhPXMmJih1PXMucmVwbGFjZShsZSwiJCYvIikrIi8iKSxSKHcsbyx1LCIiLChmdW5jdGlvbihzKXtyZXR1cm4gc30pKSk6bnVsbCE9dyYmKE8odykmJih3PWZ1bmN0aW9uIE4ocyxvKXtyZXR1cm57JCR0eXBlb2Y6aSx0eXBlOnMudHlwZSxrZXk6byxyZWY6cy5yZWYscHJvcHM6cy5wcm9wcyxfb3duZXI6cy5fb3duZXJ9fSh3LHUrKCF3LmtleXx8QyYmQy5rZXk9PT13LmtleT8iIjooIiIrdy5rZXkpLnJlcGxhY2UobGUsIiQmLyIpKyIvIikrcykpLG8ucHVzaCh3KSksMTtpZihDPTAsXz0iIj09PV8/Ii4iOl8rIjoiLGVlKHMpKWZvcih2YXIgaj0wO2o8cy5sZW5ndGg7aisrKXt2YXIgTD1fK1EoeD1zW2pdLGopO0MrPVIoeCxvLHUsTCx3KX1lbHNlIGlmKEw9ZnVuY3Rpb24gQShzKXtyZXR1cm4gbnVsbD09PXN8fCJvYmplY3QiIT10eXBlb2Ygcz9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZihzPVYmJnNbVl18fHNbIkBAaXRlcmF0b3IiXSk/czpudWxsfShzKSwiZnVuY3Rpb24iPT10eXBlb2YgTClmb3Iocz1MLmNhbGwocyksaj0wOyEoeD1zLm5leHQoKSkuZG9uZTspQys9Uih4PXgudmFsdWUsbyx1LEw9XytRKHgsaisrKSx3KTtlbHNlIGlmKCJvYmplY3QiPT09eCl0aHJvdyBvPVN0cmluZyhzKSxFcnJvcigiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiAiKygiW29iamVjdCBPYmplY3RdIj09PW8/Im9iamVjdCB3aXRoIGtleXMgeyIrT2JqZWN0LmtleXMocykuam9pbigiLCAiKSsifSI6bykrIikuIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgaW5zdGVhZC4iKTtyZXR1cm4gQ31mdW5jdGlvbiBTKHMsbyxpKXtpZihudWxsPT1zKXJldHVybiBzO3ZhciBhPVtdLHU9MDtyZXR1cm4gUihzLGEsIiIsIiIsKGZ1bmN0aW9uKHMpe3JldHVybiBvLmNhbGwoaSxzLHUrKyl9KSksYX1mdW5jdGlvbiBUKHMpe2lmKC0xPT09cy5fc3RhdHVzKXt2YXIgbz1zLl9yZXN1bHQ7KG89bygpKS50aGVuKChmdW5jdGlvbihvKXswIT09cy5fc3RhdHVzJiYtMSE9PXMuX3N0YXR1c3x8KHMuX3N0YXR1cz0xLHMuX3Jlc3VsdD1vKX0pLChmdW5jdGlvbihvKXswIT09cy5fc3RhdHVzJiYtMSE9PXMuX3N0YXR1c3x8KHMuX3N0YXR1cz0yLHMuX3Jlc3VsdD1vKX0pKSwtMT09PXMuX3N0YXR1cyYmKHMuX3N0YXR1cz0wLHMuX3Jlc3VsdD1vKX1pZigxPT09cy5fc3RhdHVzKXJldHVybiBzLl9yZXN1bHQuZGVmYXVsdDt0aHJvdyBzLl9yZXN1bHR9dmFyIHBlPXtjdXJyZW50Om51bGx9LGRlPXt0cmFuc2l0aW9uOm51bGx9LGZlPXtSZWFjdEN1cnJlbnREaXNwYXRjaGVyOnBlLFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnOmRlLFJlYWN0Q3VycmVudE93bmVyOmFlfTtmdW5jdGlvbiBYKCl7dGhyb3cgRXJyb3IoImFjdCguLi4pIGlzIG5vdCBzdXBwb3J0ZWQgaW4gcHJvZHVjdGlvbiBidWlsZHMgb2YgUmVhY3QuIil9by5DaGlsZHJlbj17bWFwOlMsZm9yRWFjaDpmdW5jdGlvbihzLG8saSl7UyhzLChmdW5jdGlvbigpe28uYXBwbHkodGhpcyxhcmd1bWVudHMpfSksaSl9LGNvdW50OmZ1bmN0aW9uKHMpe3ZhciBvPTA7cmV0dXJuIFMocywoZnVuY3Rpb24oKXtvKyt9KSksb30sdG9BcnJheTpmdW5jdGlvbihzKXtyZXR1cm4gUyhzLChmdW5jdGlvbihzKXtyZXR1cm4gc30pKXx8W119LG9ubHk6ZnVuY3Rpb24ocyl7aWYoIU8ocykpdGhyb3cgRXJyb3IoIlJlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLiIpO3JldHVybiBzfX0sby5Db21wb25lbnQ9RSxvLkZyYWdtZW50PXUsby5Qcm9maWxlcj13LG8uUHVyZUNvbXBvbmVudD1HLG8uU3RyaWN0TW9kZT1fLG8uU3VzcGVuc2U9TCxvLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEPWZlLG8uYWN0PVgsby5jbG9uZUVsZW1lbnQ9ZnVuY3Rpb24ocyxvLGEpe2lmKG51bGw9PXMpdGhyb3cgRXJyb3IoIlJlYWN0LmNsb25lRWxlbWVudCguLi4pOiBUaGUgYXJndW1lbnQgbXVzdCBiZSBhIFJlYWN0IGVsZW1lbnQsIGJ1dCB5b3UgcGFzc2VkICIrcysiLiIpO3ZhciB1PXooe30scy5wcm9wcyksXz1zLmtleSx3PXMucmVmLHg9cy5fb3duZXI7aWYobnVsbCE9byl7aWYodm9pZCAwIT09by5yZWYmJih3PW8ucmVmLHg9YWUuY3VycmVudCksdm9pZCAwIT09by5rZXkmJihfPSIiK28ua2V5KSxzLnR5cGUmJnMudHlwZS5kZWZhdWx0UHJvcHMpdmFyIEM9cy50eXBlLmRlZmF1bHRQcm9wcztmb3IoaiBpbiBvKWllLmNhbGwobyxqKSYmIWNlLmhhc093blByb3BlcnR5KGopJiYodVtqXT12b2lkIDA9PT1vW2pdJiZ2b2lkIDAhPT1DP0Nbal06b1tqXSl9dmFyIGo9YXJndW1lbnRzLmxlbmd0aC0yO2lmKDE9PT1qKXUuY2hpbGRyZW49YTtlbHNlIGlmKDE8ail7Qz1BcnJheShqKTtmb3IodmFyIEw9MDtMPGo7TCsrKUNbTF09YXJndW1lbnRzW0wrMl07dS5jaGlsZHJlbj1DfXJldHVybnskJHR5cGVvZjppLHR5cGU6cy50eXBlLGtleTpfLHJlZjp3LHByb3BzOnUsX293bmVyOnh9fSxvLmNyZWF0ZUNvbnRleHQ9ZnVuY3Rpb24ocyl7cmV0dXJuKHM9eyQkdHlwZW9mOkMsX2N1cnJlbnRWYWx1ZTpzLF9jdXJyZW50VmFsdWUyOnMsX3RocmVhZENvdW50OjAsUHJvdmlkZXI6bnVsbCxDb25zdW1lcjpudWxsLF9kZWZhdWx0VmFsdWU6bnVsbCxfZ2xvYmFsTmFtZTpudWxsfSkuUHJvdmlkZXI9eyQkdHlwZW9mOngsX2NvbnRleHQ6c30scy5Db25zdW1lcj1zfSxvLmNyZWF0ZUVsZW1lbnQ9TSxvLmNyZWF0ZUZhY3Rvcnk9ZnVuY3Rpb24ocyl7dmFyIG89TS5iaW5kKG51bGwscyk7cmV0dXJuIG8udHlwZT1zLG99LG8uY3JlYXRlUmVmPWZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnQ6bnVsbH19LG8uZm9yd2FyZFJlZj1mdW5jdGlvbihzKXtyZXR1cm57JCR0eXBlb2Y6aixyZW5kZXI6c319LG8uaXNWYWxpZEVsZW1lbnQ9TyxvLmxhenk9ZnVuY3Rpb24ocyl7cmV0dXJueyQkdHlwZW9mOiQsX3BheWxvYWQ6e19zdGF0dXM6LTEsX3Jlc3VsdDpzfSxfaW5pdDpUfX0sby5tZW1vPWZ1bmN0aW9uKHMsbyl7cmV0dXJueyQkdHlwZW9mOkIsdHlwZTpzLGNvbXBhcmU6dm9pZCAwPT09bz9udWxsOm99fSxvLnN0YXJ0VHJhbnNpdGlvbj1mdW5jdGlvbihzKXt2YXIgbz1kZS50cmFuc2l0aW9uO2RlLnRyYW5zaXRpb249e307dHJ5e3MoKX1maW5hbGx5e2RlLnRyYW5zaXRpb249b319LG8udW5zdGFibGVfYWN0PVgsby51c2VDYWxsYmFjaz1mdW5jdGlvbihzLG8pe3JldHVybiBwZS5jdXJyZW50LnVzZUNhbGxiYWNrKHMsbyl9LG8udXNlQ29udGV4dD1mdW5jdGlvbihzKXtyZXR1cm4gcGUuY3VycmVudC51c2VDb250ZXh0KHMpfSxvLnVzZURlYnVnVmFsdWU9ZnVuY3Rpb24oKXt9LG8udXNlRGVmZXJyZWRWYWx1ZT1mdW5jdGlvbihzKXtyZXR1cm4gcGUuY3VycmVudC51c2VEZWZlcnJlZFZhbHVlKHMpfSxvLnVzZUVmZmVjdD1mdW5jdGlvbihzLG8pe3JldHVybiBwZS5jdXJyZW50LnVzZUVmZmVjdChzLG8pfSxvLnVzZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIHBlLmN1cnJlbnQudXNlSWQoKX0sby51c2VJbXBlcmF0aXZlSGFuZGxlPWZ1bmN0aW9uKHMsbyxpKXtyZXR1cm4gcGUuY3VycmVudC51c2VJbXBlcmF0aXZlSGFuZGxlKHMsbyxpKX0sby51c2VJbnNlcnRpb25FZmZlY3Q9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gcGUuY3VycmVudC51c2VJbnNlcnRpb25FZmZlY3QocyxvKX0sby51c2VMYXlvdXRFZmZlY3Q9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gcGUuY3VycmVudC51c2VMYXlvdXRFZmZlY3QocyxvKX0sby51c2VNZW1vPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHBlLmN1cnJlbnQudXNlTWVtbyhzLG8pfSxvLnVzZVJlZHVjZXI9ZnVuY3Rpb24ocyxvLGkpe3JldHVybiBwZS5jdXJyZW50LnVzZVJlZHVjZXIocyxvLGkpfSxvLnVzZVJlZj1mdW5jdGlvbihzKXtyZXR1cm4gcGUuY3VycmVudC51c2VSZWYocyl9LG8udXNlU3RhdGU9ZnVuY3Rpb24ocyl7cmV0dXJuIHBlLmN1cnJlbnQudXNlU3RhdGUocyl9LG8udXNlU3luY0V4dGVybmFsU3RvcmU9ZnVuY3Rpb24ocyxvLGkpe3JldHVybiBwZS5jdXJyZW50LnVzZVN5bmNFeHRlcm5hbFN0b3JlKHMsbyxpKX0sby51c2VUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHBlLmN1cnJlbnQudXNlVHJhbnNpdGlvbigpfSxvLnZlcnNpb249IjE4LjMuMSJ9LDE1MzI1OihzLG8saSk9Pnt2YXIgYT1pKDk2MTMxKTtzLmV4cG9ydHM9ZnVuY3Rpb24gYXJyYXlJbmNsdWRlcyhzLG8pe3JldHVybiEhKG51bGw9PXM/MDpzLmxlbmd0aCkmJmEocyxvLDApPi0xfX0sMTUzNDA6KCk9Pnt9LDE1Mzg5OihzLG8saSk9Pnt2YXIgYT1pKDkzNjYzKSx1PWkoODc5NzgpLF89aSg4MzQ4OCksdz1pKDU2NDQ5KSx4PWkoNTA1ODMpO3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlSXRlcmF0ZWUocyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHM/czpudWxsPT1zP186Im9iamVjdCI9PXR5cGVvZiBzP3cocyk/dShzWzBdLHNbMV0pOmEocyk6eChzKX19LDE1OTcyOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg0OTcyNCksdT1pKDYyMjUwKSxfPWkoMzkyOTgpLHc9aSg5MjUyMikseD1pKDU3MzgyKSxDPXcoIklFX1BST1RPIiksaj1PYmplY3QsTD1qLnByb3RvdHlwZTtzLmV4cG9ydHM9eD9qLmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKHMpe3ZhciBvPV8ocyk7aWYoYShvLEMpKXJldHVybiBvW0NdO3ZhciBpPW8uY29uc3RydWN0b3I7cmV0dXJuIHUoaSkmJm8gaW5zdGFuY2VvZiBpP2kucHJvdG90eXBlOm8gaW5zdGFuY2VvZiBqP0w6bnVsbH19LDE2MDM4OihzLG8saSk9Pnt2YXIgYT1pKDU4NjEpLHU9aSg0MDM0Nik7cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VJc1NldChzKXtyZXR1cm4gdShzKSYmIltvYmplY3QgU2V0XSI9PWEocyl9fSwxNjQyNjpzPT57cy5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIHM9ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7aWYoIXMucmFuZ2VDb3VudClyZXR1cm4gZnVuY3Rpb24oKXt9O2Zvcih2YXIgbz1kb2N1bWVudC5hY3RpdmVFbGVtZW50LGk9W10sYT0wO2E8cy5yYW5nZUNvdW50O2ErKylpLnB1c2gocy5nZXRSYW5nZUF0KGEpKTtzd2l0Y2goby50YWdOYW1lLnRvVXBwZXJDYXNlKCkpe2Nhc2UiSU5QVVQiOmNhc2UiVEVYVEFSRUEiOm8uYmx1cigpO2JyZWFrO2RlZmF1bHQ6bz1udWxsfXJldHVybiBzLnJlbW92ZUFsbFJhbmdlcygpLGZ1bmN0aW9uKCl7IkNhcmV0Ij09PXMudHlwZSYmcy5yZW1vdmVBbGxSYW5nZXMoKSxzLnJhbmdlQ291bnR8fGkuZm9yRWFjaCgoZnVuY3Rpb24obyl7cy5hZGRSYW5nZShvKX0pKSxvJiZvLmZvY3VzKCl9fX0sMTY1NDc6KHMsbyxpKT0+e3ZhciBhPWkoNDMzNjApLHU9aSg3NTI4OCksXz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3MuZXhwb3J0cz1mdW5jdGlvbiBhc3NpZ25WYWx1ZShzLG8saSl7dmFyIHc9c1tvXTtfLmNhbGwocyxvKSYmdSh3LGkpJiYodm9pZCAwIT09aXx8byBpbiBzKXx8YShzLG8saSl9fSwxNjcwODoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhLHU9aSg2NTYwNik7ZnVuY3Rpb24gQ29ya2VkUmVxdWVzdChzKXt2YXIgbz10aGlzO3RoaXMubmV4dD1udWxsLHRoaXMuZW50cnk9bnVsbCx0aGlzLmZpbmlzaD1mdW5jdGlvbigpeyFmdW5jdGlvbiBvbkNvcmtlZEZpbmlzaChzLG8saSl7dmFyIGE9cy5lbnRyeTtzLmVudHJ5PW51bGw7Zm9yKDthOyl7dmFyIHU9YS5jYWxsYmFjaztvLnBlbmRpbmdjYi0tLHUoaSksYT1hLm5leHR9by5jb3JrZWRSZXF1ZXN0c0ZyZWUubmV4dD1zfShvLHMpfX1zLmV4cG9ydHM9V3JpdGFibGUsV3JpdGFibGUuV3JpdGFibGVTdGF0ZT1Xcml0YWJsZVN0YXRlO3ZhciBfPXtkZXByZWNhdGU6aSg5NDY0Myl9LHc9aSg0MDM0NSkseD1pKDQ4Mjg3KS5CdWZmZXIsQz0odm9pZCAwIT09aS5nP2kuZzoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30pLlVpbnQ4QXJyYXl8fGZ1bmN0aW9uKCl7fTt2YXIgaixMPWkoNzU4OTYpLEI9aSg2NTI5MSkuZ2V0SGlnaFdhdGVyTWFyaywkPWkoODYwNDgpLkYsVj0kLkVSUl9JTlZBTElEX0FSR19UWVBFLFU9JC5FUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCx6PSQuRVJSX01VTFRJUExFX0NBTExCQUNLLFk9JC5FUlJfU1RSRUFNX0NBTk5PVF9QSVBFLFo9JC5FUlJfU1RSRUFNX0RFU1RST1lFRCxlZT0kLkVSUl9TVFJFQU1fTlVMTF9WQUxVRVMsaWU9JC5FUlJfU1RSRUFNX1dSSVRFX0FGVEVSX0VORCxhZT0kLkVSUl9VTktOT1dOX0VOQ09ESU5HLGNlPUwuZXJyb3JPckRlc3Ryb3k7ZnVuY3Rpb24gbm9wKCl7fWZ1bmN0aW9uIFdyaXRhYmxlU3RhdGUocyxvLF8pe2E9YXx8aSgyNTM4Mikscz1zfHx7fSwiYm9vbGVhbiIhPXR5cGVvZiBfJiYoXz1vIGluc3RhbmNlb2YgYSksdGhpcy5vYmplY3RNb2RlPSEhcy5vYmplY3RNb2RlLF8mJih0aGlzLm9iamVjdE1vZGU9dGhpcy5vYmplY3RNb2RlfHwhIXMud3JpdGFibGVPYmplY3RNb2RlKSx0aGlzLmhpZ2hXYXRlck1hcms9Qih0aGlzLHMsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIsXyksdGhpcy5maW5hbENhbGxlZD0hMSx0aGlzLm5lZWREcmFpbj0hMSx0aGlzLmVuZGluZz0hMSx0aGlzLmVuZGVkPSExLHRoaXMuZmluaXNoZWQ9ITEsdGhpcy5kZXN0cm95ZWQ9ITE7dmFyIHc9ITE9PT1zLmRlY29kZVN0cmluZ3M7dGhpcy5kZWNvZGVTdHJpbmdzPSF3LHRoaXMuZGVmYXVsdEVuY29kaW5nPXMuZGVmYXVsdEVuY29kaW5nfHwidXRmOCIsdGhpcy5sZW5ndGg9MCx0aGlzLndyaXRpbmc9ITEsdGhpcy5jb3JrZWQ9MCx0aGlzLnN5bmM9ITAsdGhpcy5idWZmZXJQcm9jZXNzaW5nPSExLHRoaXMub253cml0ZT1mdW5jdGlvbihzKXshZnVuY3Rpb24gb253cml0ZShzLG8pe3ZhciBpPXMuX3dyaXRhYmxlU3RhdGUsYT1pLnN5bmMsXz1pLndyaXRlY2I7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIF8pdGhyb3cgbmV3IHo7aWYoZnVuY3Rpb24gb253cml0ZVN0YXRlVXBkYXRlKHMpe3Mud3JpdGluZz0hMSxzLndyaXRlY2I9bnVsbCxzLmxlbmd0aC09cy53cml0ZWxlbixzLndyaXRlbGVuPTB9KGkpLG8pIWZ1bmN0aW9uIG9ud3JpdGVFcnJvcihzLG8saSxhLF8pey0tby5wZW5kaW5nY2IsaT8odS5uZXh0VGljayhfLGEpLHUubmV4dFRpY2soZmluaXNoTWF5YmUscyxvKSxzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxjZShzLGEpKTooXyhhKSxzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxjZShzLGEpLGZpbmlzaE1heWJlKHMsbykpfShzLGksYSxvLF8pO2Vsc2V7dmFyIHc9bmVlZEZpbmlzaChpKXx8cy5kZXN0cm95ZWQ7d3x8aS5jb3JrZWR8fGkuYnVmZmVyUHJvY2Vzc2luZ3x8IWkuYnVmZmVyZWRSZXF1ZXN0fHxjbGVhckJ1ZmZlcihzLGkpLGE/dS5uZXh0VGljayhhZnRlcldyaXRlLHMsaSx3LF8pOmFmdGVyV3JpdGUocyxpLHcsXyl9fShvLHMpfSx0aGlzLndyaXRlY2I9bnVsbCx0aGlzLndyaXRlbGVuPTAsdGhpcy5idWZmZXJlZFJlcXVlc3Q9bnVsbCx0aGlzLmxhc3RCdWZmZXJlZFJlcXVlc3Q9bnVsbCx0aGlzLnBlbmRpbmdjYj0wLHRoaXMucHJlZmluaXNoZWQ9ITEsdGhpcy5lcnJvckVtaXR0ZWQ9ITEsdGhpcy5lbWl0Q2xvc2U9ITEhPT1zLmVtaXRDbG9zZSx0aGlzLmF1dG9EZXN0cm95PSEhcy5hdXRvRGVzdHJveSx0aGlzLmJ1ZmZlcmVkUmVxdWVzdENvdW50PTAsdGhpcy5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IENvcmtlZFJlcXVlc3QodGhpcyl9ZnVuY3Rpb24gV3JpdGFibGUocyl7dmFyIG89dGhpcyBpbnN0YW5jZW9mKGE9YXx8aSgyNTM4MikpO2lmKCFvJiYhai5jYWxsKFdyaXRhYmxlLHRoaXMpKXJldHVybiBuZXcgV3JpdGFibGUocyk7dGhpcy5fd3JpdGFibGVTdGF0ZT1uZXcgV3JpdGFibGVTdGF0ZShzLHRoaXMsbyksdGhpcy53cml0YWJsZT0hMCxzJiYoImZ1bmN0aW9uIj09dHlwZW9mIHMud3JpdGUmJih0aGlzLl93cml0ZT1zLndyaXRlKSwiZnVuY3Rpb24iPT10eXBlb2Ygcy53cml0ZXYmJih0aGlzLl93cml0ZXY9cy53cml0ZXYpLCJmdW5jdGlvbiI9PXR5cGVvZiBzLmRlc3Ryb3kmJih0aGlzLl9kZXN0cm95PXMuZGVzdHJveSksImZ1bmN0aW9uIj09dHlwZW9mIHMuZmluYWwmJih0aGlzLl9maW5hbD1zLmZpbmFsKSksdy5jYWxsKHRoaXMpfWZ1bmN0aW9uIGRvV3JpdGUocyxvLGksYSx1LF8sdyl7by53cml0ZWxlbj1hLG8ud3JpdGVjYj13LG8ud3JpdGluZz0hMCxvLnN5bmM9ITAsby5kZXN0cm95ZWQ/by5vbndyaXRlKG5ldyBaKCJ3cml0ZSIpKTppP3MuX3dyaXRldih1LG8ub253cml0ZSk6cy5fd3JpdGUodSxfLG8ub253cml0ZSksby5zeW5jPSExfWZ1bmN0aW9uIGFmdGVyV3JpdGUocyxvLGksYSl7aXx8ZnVuY3Rpb24gb253cml0ZURyYWluKHMsbyl7MD09PW8ubGVuZ3RoJiZvLm5lZWREcmFpbiYmKG8ubmVlZERyYWluPSExLHMuZW1pdCgiZHJhaW4iKSl9KHMsbyksby5wZW5kaW5nY2ItLSxhKCksZmluaXNoTWF5YmUocyxvKX1mdW5jdGlvbiBjbGVhckJ1ZmZlcihzLG8pe28uYnVmZmVyUHJvY2Vzc2luZz0hMDt2YXIgaT1vLmJ1ZmZlcmVkUmVxdWVzdDtpZihzLl93cml0ZXYmJmkmJmkubmV4dCl7dmFyIGE9by5idWZmZXJlZFJlcXVlc3RDb3VudCx1PW5ldyBBcnJheShhKSxfPW8uY29ya2VkUmVxdWVzdHNGcmVlO18uZW50cnk9aTtmb3IodmFyIHc9MCx4PSEwO2k7KXVbd109aSxpLmlzQnVmfHwoeD0hMSksaT1pLm5leHQsdys9MTt1LmFsbEJ1ZmZlcnM9eCxkb1dyaXRlKHMsbywhMCxvLmxlbmd0aCx1LCIiLF8uZmluaXNoKSxvLnBlbmRpbmdjYisrLG8ubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsLF8ubmV4dD8oby5jb3JrZWRSZXF1ZXN0c0ZyZWU9Xy5uZXh0LF8ubmV4dD1udWxsKTpvLmNvcmtlZFJlcXVlc3RzRnJlZT1uZXcgQ29ya2VkUmVxdWVzdChvKSxvLmJ1ZmZlcmVkUmVxdWVzdENvdW50PTB9ZWxzZXtmb3IoO2k7KXt2YXIgQz1pLmNodW5rLGo9aS5lbmNvZGluZyxMPWkuY2FsbGJhY2s7aWYoZG9Xcml0ZShzLG8sITEsby5vYmplY3RNb2RlPzE6Qy5sZW5ndGgsQyxqLEwpLGk9aS5uZXh0LG8uYnVmZmVyZWRSZXF1ZXN0Q291bnQtLSxvLndyaXRpbmcpYnJlYWt9bnVsbD09PWkmJihvLmxhc3RCdWZmZXJlZFJlcXVlc3Q9bnVsbCl9by5idWZmZXJlZFJlcXVlc3Q9aSxvLmJ1ZmZlclByb2Nlc3Npbmc9ITF9ZnVuY3Rpb24gbmVlZEZpbmlzaChzKXtyZXR1cm4gcy5lbmRpbmcmJjA9PT1zLmxlbmd0aCYmbnVsbD09PXMuYnVmZmVyZWRSZXF1ZXN0JiYhcy5maW5pc2hlZCYmIXMud3JpdGluZ31mdW5jdGlvbiBjYWxsRmluYWwocyxvKXtzLl9maW5hbCgoZnVuY3Rpb24oaSl7by5wZW5kaW5nY2ItLSxpJiZjZShzLGkpLG8ucHJlZmluaXNoZWQ9ITAscy5lbWl0KCJwcmVmaW5pc2giKSxmaW5pc2hNYXliZShzLG8pfSkpfWZ1bmN0aW9uIGZpbmlzaE1heWJlKHMsbyl7dmFyIGk9bmVlZEZpbmlzaChvKTtpZihpJiYoZnVuY3Rpb24gcHJlZmluaXNoKHMsbyl7by5wcmVmaW5pc2hlZHx8by5maW5hbENhbGxlZHx8KCJmdW5jdGlvbiIhPXR5cGVvZiBzLl9maW5hbHx8by5kZXN0cm95ZWQ/KG8ucHJlZmluaXNoZWQ9ITAscy5lbWl0KCJwcmVmaW5pc2giKSk6KG8ucGVuZGluZ2NiKyssby5maW5hbENhbGxlZD0hMCx1Lm5leHRUaWNrKGNhbGxGaW5hbCxzLG8pKSl9KHMsbyksMD09PW8ucGVuZGluZ2NiJiYoby5maW5pc2hlZD0hMCxzLmVtaXQoImZpbmlzaCIpLG8uYXV0b0Rlc3Ryb3kpKSl7dmFyIGE9cy5fcmVhZGFibGVTdGF0ZTsoIWF8fGEuYXV0b0Rlc3Ryb3kmJmEuZW5kRW1pdHRlZCkmJnMuZGVzdHJveSgpfXJldHVybiBpfWkoNTY2OTgpKFdyaXRhYmxlLHcpLFdyaXRhYmxlU3RhdGUucHJvdG90eXBlLmdldEJ1ZmZlcj1mdW5jdGlvbiBnZXRCdWZmZXIoKXtmb3IodmFyIHM9dGhpcy5idWZmZXJlZFJlcXVlc3Qsbz1bXTtzOylvLnB1c2gocykscz1zLm5leHQ7cmV0dXJuIG99LGZ1bmN0aW9uKCl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShXcml0YWJsZVN0YXRlLnByb3RvdHlwZSwiYnVmZmVyIix7Z2V0Ol8uZGVwcmVjYXRlKChmdW5jdGlvbiB3cml0YWJsZVN0YXRlQnVmZmVyR2V0dGVyKCl7cmV0dXJuIHRoaXMuZ2V0QnVmZmVyKCl9KSwiX3dyaXRhYmxlU3RhdGUuYnVmZmVyIGlzIGRlcHJlY2F0ZWQuIFVzZSBfd3JpdGFibGVTdGF0ZS5nZXRCdWZmZXIgaW5zdGVhZC4iLCJERVAwMDAzIil9KX1jYXRjaChzKXt9fSgpLCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5oYXNJbnN0YW5jZSYmImZ1bmN0aW9uIj09dHlwZW9mIEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdPyhqPUZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXcml0YWJsZSxTeW1ib2wuaGFzSW5zdGFuY2Use3ZhbHVlOmZ1bmN0aW9uIHZhbHVlKHMpe3JldHVybiEhai5jYWxsKHRoaXMscyl8fHRoaXM9PT1Xcml0YWJsZSYmKHMmJnMuX3dyaXRhYmxlU3RhdGUgaW5zdGFuY2VvZiBXcml0YWJsZVN0YXRlKX19KSk6aj1mdW5jdGlvbiByZWFsSGFzSW5zdGFuY2Uocyl7cmV0dXJuIHMgaW5zdGFuY2VvZiB0aGlzfSxXcml0YWJsZS5wcm90b3R5cGUucGlwZT1mdW5jdGlvbigpe2NlKHRoaXMsbmV3IFkpfSxXcml0YWJsZS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24ocyxvLGkpe3ZhciBhPXRoaXMuX3dyaXRhYmxlU3RhdGUsXz0hMSx3PSFhLm9iamVjdE1vZGUmJmZ1bmN0aW9uIF9pc1VpbnQ4QXJyYXkocyl7cmV0dXJuIHguaXNCdWZmZXIocyl8fHMgaW5zdGFuY2VvZiBDfShzKTtyZXR1cm4gdyYmIXguaXNCdWZmZXIocykmJihzPWZ1bmN0aW9uIF91aW50OEFycmF5VG9CdWZmZXIocyl7cmV0dXJuIHguZnJvbShzKX0ocykpLCJmdW5jdGlvbiI9PXR5cGVvZiBvJiYoaT1vLG89bnVsbCksdz9vPSJidWZmZXIiOm98fChvPWEuZGVmYXVsdEVuY29kaW5nKSwiZnVuY3Rpb24iIT10eXBlb2YgaSYmKGk9bm9wKSxhLmVuZGluZz9mdW5jdGlvbiB3cml0ZUFmdGVyRW5kKHMsbyl7dmFyIGk9bmV3IGllO2NlKHMsaSksdS5uZXh0VGljayhvLGkpfSh0aGlzLGkpOih3fHxmdW5jdGlvbiB2YWxpZENodW5rKHMsbyxpLGEpe3ZhciBfO3JldHVybiBudWxsPT09aT9fPW5ldyBlZToic3RyaW5nIj09dHlwZW9mIGl8fG8ub2JqZWN0TW9kZXx8KF89bmV3IFYoImNodW5rIixbInN0cmluZyIsIkJ1ZmZlciJdLGkpKSwhX3x8KGNlKHMsXyksdS5uZXh0VGljayhhLF8pLCExKX0odGhpcyxhLHMsaSkpJiYoYS5wZW5kaW5nY2IrKyxfPWZ1bmN0aW9uIHdyaXRlT3JCdWZmZXIocyxvLGksYSx1LF8pe2lmKCFpKXt2YXIgdz1mdW5jdGlvbiBkZWNvZGVDaHVuayhzLG8saSl7cy5vYmplY3RNb2RlfHwhMT09PXMuZGVjb2RlU3RyaW5nc3x8InN0cmluZyIhPXR5cGVvZiBvfHwobz14LmZyb20obyxpKSk7cmV0dXJuIG99KG8sYSx1KTthIT09dyYmKGk9ITAsdT0iYnVmZmVyIixhPXcpfXZhciBDPW8ub2JqZWN0TW9kZT8xOmEubGVuZ3RoO28ubGVuZ3RoKz1DO3ZhciBqPW8ubGVuZ3RoPG8uaGlnaFdhdGVyTWFyaztqfHwoby5uZWVkRHJhaW49ITApO2lmKG8ud3JpdGluZ3x8by5jb3JrZWQpe3ZhciBMPW8ubGFzdEJ1ZmZlcmVkUmVxdWVzdDtvLmxhc3RCdWZmZXJlZFJlcXVlc3Q9e2NodW5rOmEsZW5jb2Rpbmc6dSxpc0J1ZjppLGNhbGxiYWNrOl8sbmV4dDpudWxsfSxMP0wubmV4dD1vLmxhc3RCdWZmZXJlZFJlcXVlc3Q6by5idWZmZXJlZFJlcXVlc3Q9by5sYXN0QnVmZmVyZWRSZXF1ZXN0LG8uYnVmZmVyZWRSZXF1ZXN0Q291bnQrPTF9ZWxzZSBkb1dyaXRlKHMsbywhMSxDLGEsdSxfKTtyZXR1cm4gan0odGhpcyxhLHcscyxvLGkpKSxffSxXcml0YWJsZS5wcm90b3R5cGUuY29yaz1mdW5jdGlvbigpe3RoaXMuX3dyaXRhYmxlU3RhdGUuY29ya2VkKyt9LFdyaXRhYmxlLnByb3RvdHlwZS51bmNvcms9ZnVuY3Rpb24oKXt2YXIgcz10aGlzLl93cml0YWJsZVN0YXRlO3MuY29ya2VkJiYocy5jb3JrZWQtLSxzLndyaXRpbmd8fHMuY29ya2VkfHxzLmJ1ZmZlclByb2Nlc3Npbmd8fCFzLmJ1ZmZlcmVkUmVxdWVzdHx8Y2xlYXJCdWZmZXIodGhpcyxzKSl9LFdyaXRhYmxlLnByb3RvdHlwZS5zZXREZWZhdWx0RW5jb2Rpbmc9ZnVuY3Rpb24gc2V0RGVmYXVsdEVuY29kaW5nKHMpe2lmKCJzdHJpbmciPT10eXBlb2YgcyYmKHM9cy50b0xvd2VyQ2FzZSgpKSwhKFsiaGV4IiwidXRmOCIsInV0Zi04IiwiYXNjaWkiLCJiaW5hcnkiLCJiYXNlNjQiLCJ1Y3MyIiwidWNzLTIiLCJ1dGYxNmxlIiwidXRmLTE2bGUiLCJyYXciXS5pbmRleE9mKChzKyIiKS50b0xvd2VyQ2FzZSgpKT4tMSkpdGhyb3cgbmV3IGFlKHMpO3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmRlZmF1bHRFbmNvZGluZz1zLHRoaXN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXcml0YWJsZS5wcm90b3R5cGUsIndyaXRhYmxlQnVmZmVyIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyKCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFdyaXRhYmxlLnByb3RvdHlwZSwid3JpdGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuaGlnaFdhdGVyTWFya319KSxXcml0YWJsZS5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKHMsbyxpKXtpKG5ldyBVKCJfd3JpdGUoKSIpKX0sV3JpdGFibGUucHJvdG90eXBlLl93cml0ZXY9bnVsbCxXcml0YWJsZS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKHMsbyxpKXt2YXIgYT10aGlzLl93cml0YWJsZVN0YXRlO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBzPyhpPXMscz1udWxsLG89bnVsbCk6ImZ1bmN0aW9uIj09dHlwZW9mIG8mJihpPW8sbz1udWxsKSxudWxsIT1zJiZ0aGlzLndyaXRlKHMsbyksYS5jb3JrZWQmJihhLmNvcmtlZD0xLHRoaXMudW5jb3JrKCkpLGEuZW5kaW5nfHxmdW5jdGlvbiBlbmRXcml0YWJsZShzLG8saSl7by5lbmRpbmc9ITAsZmluaXNoTWF5YmUocyxvKSxpJiYoby5maW5pc2hlZD91Lm5leHRUaWNrKGkpOnMub25jZSgiZmluaXNoIixpKSk7by5lbmRlZD0hMCxzLndyaXRhYmxlPSExfSh0aGlzLGEsaSksdGhpc30sT2JqZWN0LmRlZmluZVByb3BlcnR5KFdyaXRhYmxlLnByb3RvdHlwZSwid3JpdGFibGVMZW5ndGgiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbiBnZXQoKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5sZW5ndGh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFdyaXRhYmxlLnByb3RvdHlwZSwiZGVzdHJveWVkIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkfSxzZXQ6ZnVuY3Rpb24gc2V0KHMpe3RoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD1zKX19KSxXcml0YWJsZS5wcm90b3R5cGUuZGVzdHJveT1MLmRlc3Ryb3ksV3JpdGFibGUucHJvdG90eXBlLl91bmRlc3Ryb3k9TC51bmRlc3Ryb3ksV3JpdGFibGUucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0aW9uKHMsbyl7byhzKX19LDE2OTQ2OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgxOTA3KSx1PWkoOTg4MjgpLF89aSg0NTgwNyksdz1PYmplY3QseD1hKCIiLnNwbGl0KTtzLmV4cG9ydHM9dSgoZnVuY3Rpb24oKXtyZXR1cm4hdygieiIpLnByb3BlcnR5SXNFbnVtZXJhYmxlKDApfSkpP2Z1bmN0aW9uKHMpe3JldHVybiJTdHJpbmciPT09XyhzKT94KHMsIiIpOncocyl9Ond9LDE2OTYyOihzLG8pPT57by5hbGlhc1RvUmVhbD17ZWFjaDoiZm9yRWFjaCIsZWFjaFJpZ2h0OiJmb3JFYWNoUmlnaHQiLGVudHJpZXM6InRvUGFpcnMiLGVudHJpZXNJbjoidG9QYWlyc0luIixleHRlbmQ6ImFzc2lnbkluIixleHRlbmRBbGw6ImFzc2lnbkluQWxsIixleHRlbmRBbGxXaXRoOiJhc3NpZ25JbkFsbFdpdGgiLGV4dGVuZFdpdGg6ImFzc2lnbkluV2l0aCIsZmlyc3Q6ImhlYWQiLGNvbmZvcm1zOiJjb25mb3Jtc1RvIixtYXRjaGVzOiJpc01hdGNoIixwcm9wZXJ0eToiZ2V0IixfXzoicGxhY2Vob2xkZXIiLEY6InN0dWJGYWxzZSIsVDoic3R1YlRydWUiLGFsbDoiZXZlcnkiLGFsbFBhc3M6Im92ZXJFdmVyeSIsYWx3YXlzOiJjb25zdGFudCIsYW55OiJzb21lIixhbnlQYXNzOiJvdmVyU29tZSIsYXBwbHk6InNwcmVhZCIsYXNzb2M6InNldCIsYXNzb2NQYXRoOiJzZXQiLGNvbXBsZW1lbnQ6Im5lZ2F0ZSIsY29tcG9zZToiZmxvd1JpZ2h0Iixjb250YWluczoiaW5jbHVkZXMiLGRpc3NvYzoidW5zZXQiLGRpc3NvY1BhdGg6InVuc2V0Iixkcm9wTGFzdDoiZHJvcFJpZ2h0Iixkcm9wTGFzdFdoaWxlOiJkcm9wUmlnaHRXaGlsZSIsZXF1YWxzOiJpc0VxdWFsIixpZGVudGljYWw6ImVxIixpbmRleEJ5OiJrZXlCeSIsaW5pdDoiaW5pdGlhbCIsaW52ZXJ0T2JqOiJpbnZlcnQiLGp1eHQ6Im92ZXIiLG9taXRBbGw6Im9taXQiLG5Bcnk6ImFyeSIscGF0aDoiZ2V0IixwYXRoRXE6Im1hdGNoZXNQcm9wZXJ0eSIscGF0aE9yOiJnZXRPciIscGF0aHM6ImF0IixwaWNrQWxsOiJwaWNrIixwaXBlOiJmbG93IixwbHVjazoibWFwIixwcm9wOiJnZXQiLHByb3BFcToibWF0Y2hlc1Byb3BlcnR5Iixwcm9wT3I6ImdldE9yIixwcm9wczoiYXQiLHN5bW1ldHJpY0RpZmZlcmVuY2U6InhvciIsc3ltbWV0cmljRGlmZmVyZW5jZUJ5OiJ4b3JCeSIsc3ltbWV0cmljRGlmZmVyZW5jZVdpdGg6InhvcldpdGgiLHRha2VMYXN0OiJ0YWtlUmlnaHQiLHRha2VMYXN0V2hpbGU6InRha2VSaWdodFdoaWxlIix1bmFwcGx5OiJyZXN0Iix1bm5lc3Q6ImZsYXR0ZW4iLHVzZVdpdGg6Im92ZXJBcmdzIix3aGVyZToiY29uZm9ybXNUbyIsd2hlcmVFcToiaXNNYXRjaCIsemlwT2JqOiJ6aXBPYmplY3QifSxvLmFyeU1ldGhvZD17MTpbImFzc2lnbkFsbCIsImFzc2lnbkluQWxsIiwiYXR0ZW1wdCIsImNhc3RBcnJheSIsImNlaWwiLCJjcmVhdGUiLCJjdXJyeSIsImN1cnJ5UmlnaHQiLCJkZWZhdWx0c0FsbCIsImRlZmF1bHRzRGVlcEFsbCIsImZsb29yIiwiZmxvdyIsImZsb3dSaWdodCIsImZyb21QYWlycyIsImludmVydCIsIml0ZXJhdGVlIiwibWVtb2l6ZSIsIm1ldGhvZCIsIm1lcmdlQWxsIiwibWV0aG9kT2YiLCJtaXhpbiIsIm50aEFyZyIsIm92ZXIiLCJvdmVyRXZlcnkiLCJvdmVyU29tZSIsInJlc3QiLCJyZXZlcnNlIiwicm91bmQiLCJydW5JbkNvbnRleHQiLCJzcHJlYWQiLCJ0ZW1wbGF0ZSIsInRyaW0iLCJ0cmltRW5kIiwidHJpbVN0YXJ0IiwidW5pcXVlSWQiLCJ3b3JkcyIsInppcEFsbCJdLDI6WyJhZGQiLCJhZnRlciIsImFyeSIsImFzc2lnbiIsImFzc2lnbkFsbFdpdGgiLCJhc3NpZ25JbiIsImFzc2lnbkluQWxsV2l0aCIsImF0IiwiYmVmb3JlIiwiYmluZCIsImJpbmRBbGwiLCJiaW5kS2V5IiwiY2h1bmsiLCJjbG9uZURlZXBXaXRoIiwiY2xvbmVXaXRoIiwiY29uY2F0IiwiY29uZm9ybXNUbyIsImNvdW50QnkiLCJjdXJyeU4iLCJjdXJyeVJpZ2h0TiIsImRlYm91bmNlIiwiZGVmYXVsdHMiLCJkZWZhdWx0c0RlZXAiLCJkZWZhdWx0VG8iLCJkZWxheSIsImRpZmZlcmVuY2UiLCJkaXZpZGUiLCJkcm9wIiwiZHJvcFJpZ2h0IiwiZHJvcFJpZ2h0V2hpbGUiLCJkcm9wV2hpbGUiLCJlbmRzV2l0aCIsImVxIiwiZXZlcnkiLCJmaWx0ZXIiLCJmaW5kIiwiZmluZEluZGV4IiwiZmluZEtleSIsImZpbmRMYXN0IiwiZmluZExhc3RJbmRleCIsImZpbmRMYXN0S2V5IiwiZmxhdE1hcCIsImZsYXRNYXBEZWVwIiwiZmxhdHRlbkRlcHRoIiwiZm9yRWFjaCIsImZvckVhY2hSaWdodCIsImZvckluIiwiZm9ySW5SaWdodCIsImZvck93biIsImZvck93blJpZ2h0IiwiZ2V0IiwiZ3JvdXBCeSIsImd0IiwiZ3RlIiwiaGFzIiwiaGFzSW4iLCJpbmNsdWRlcyIsImluZGV4T2YiLCJpbnRlcnNlY3Rpb24iLCJpbnZlcnRCeSIsImludm9rZSIsImludm9rZU1hcCIsImlzRXF1YWwiLCJpc01hdGNoIiwiam9pbiIsImtleUJ5IiwibGFzdEluZGV4T2YiLCJsdCIsImx0ZSIsIm1hcCIsIm1hcEtleXMiLCJtYXBWYWx1ZXMiLCJtYXRjaGVzUHJvcGVydHkiLCJtYXhCeSIsIm1lYW5CeSIsIm1lcmdlIiwibWVyZ2VBbGxXaXRoIiwibWluQnkiLCJtdWx0aXBseSIsIm50aCIsIm9taXQiLCJvbWl0QnkiLCJvdmVyQXJncyIsInBhZCIsInBhZEVuZCIsInBhZFN0YXJ0IiwicGFyc2VJbnQiLCJwYXJ0aWFsIiwicGFydGlhbFJpZ2h0IiwicGFydGl0aW9uIiwicGljayIsInBpY2tCeSIsInByb3BlcnR5T2YiLCJwdWxsIiwicHVsbEFsbCIsInB1bGxBdCIsInJhbmRvbSIsInJhbmdlIiwicmFuZ2VSaWdodCIsInJlYXJnIiwicmVqZWN0IiwicmVtb3ZlIiwicmVwZWF0IiwicmVzdEZyb20iLCJyZXN1bHQiLCJzYW1wbGVTaXplIiwic29tZSIsInNvcnRCeSIsInNvcnRlZEluZGV4Iiwic29ydGVkSW5kZXhPZiIsInNvcnRlZExhc3RJbmRleCIsInNvcnRlZExhc3RJbmRleE9mIiwic29ydGVkVW5pcUJ5Iiwic3BsaXQiLCJzcHJlYWRGcm9tIiwic3RhcnRzV2l0aCIsInN1YnRyYWN0Iiwic3VtQnkiLCJ0YWtlIiwidGFrZVJpZ2h0IiwidGFrZVJpZ2h0V2hpbGUiLCJ0YWtlV2hpbGUiLCJ0YXAiLCJ0aHJvdHRsZSIsInRocnUiLCJ0aW1lcyIsInRyaW1DaGFycyIsInRyaW1DaGFyc0VuZCIsInRyaW1DaGFyc1N0YXJ0IiwidHJ1bmNhdGUiLCJ1bmlvbiIsInVuaXFCeSIsInVuaXFXaXRoIiwidW5zZXQiLCJ1bnppcFdpdGgiLCJ3aXRob3V0Iiwid3JhcCIsInhvciIsInppcCIsInppcE9iamVjdCIsInppcE9iamVjdERlZXAiXSwzOlsiYXNzaWduSW5XaXRoIiwiYXNzaWduV2l0aCIsImNsYW1wIiwiZGlmZmVyZW5jZUJ5IiwiZGlmZmVyZW5jZVdpdGgiLCJmaW5kRnJvbSIsImZpbmRJbmRleEZyb20iLCJmaW5kTGFzdEZyb20iLCJmaW5kTGFzdEluZGV4RnJvbSIsImdldE9yIiwiaW5jbHVkZXNGcm9tIiwiaW5kZXhPZkZyb20iLCJpblJhbmdlIiwiaW50ZXJzZWN0aW9uQnkiLCJpbnRlcnNlY3Rpb25XaXRoIiwiaW52b2tlQXJncyIsImludm9rZUFyZ3NNYXAiLCJpc0VxdWFsV2l0aCIsImlzTWF0Y2hXaXRoIiwiZmxhdE1hcERlcHRoIiwibGFzdEluZGV4T2ZGcm9tIiwibWVyZ2VXaXRoIiwib3JkZXJCeSIsInBhZENoYXJzIiwicGFkQ2hhcnNFbmQiLCJwYWRDaGFyc1N0YXJ0IiwicHVsbEFsbEJ5IiwicHVsbEFsbFdpdGgiLCJyYW5nZVN0ZXAiLCJyYW5nZVN0ZXBSaWdodCIsInJlZHVjZSIsInJlZHVjZVJpZ2h0IiwicmVwbGFjZSIsInNldCIsInNsaWNlIiwic29ydGVkSW5kZXhCeSIsInNvcnRlZExhc3RJbmRleEJ5IiwidHJhbnNmb3JtIiwidW5pb25CeSIsInVuaW9uV2l0aCIsInVwZGF0ZSIsInhvckJ5IiwieG9yV2l0aCIsInppcFdpdGgiXSw0OlsiZmlsbCIsInNldFdpdGgiLCJ1cGRhdGVXaXRoIl19LG8uYXJ5UmVhcmc9ezI6WzEsMF0sMzpbMiwwLDFdLDQ6WzMsMiwwLDFdfSxvLml0ZXJhdGVlQXJ5PXtkcm9wUmlnaHRXaGlsZToxLGRyb3BXaGlsZToxLGV2ZXJ5OjEsZmlsdGVyOjEsZmluZDoxLGZpbmRGcm9tOjEsZmluZEluZGV4OjEsZmluZEluZGV4RnJvbToxLGZpbmRLZXk6MSxmaW5kTGFzdDoxLGZpbmRMYXN0RnJvbToxLGZpbmRMYXN0SW5kZXg6MSxmaW5kTGFzdEluZGV4RnJvbToxLGZpbmRMYXN0S2V5OjEsZmxhdE1hcDoxLGZsYXRNYXBEZWVwOjEsZmxhdE1hcERlcHRoOjEsZm9yRWFjaDoxLGZvckVhY2hSaWdodDoxLGZvckluOjEsZm9ySW5SaWdodDoxLGZvck93bjoxLGZvck93blJpZ2h0OjEsbWFwOjEsbWFwS2V5czoxLG1hcFZhbHVlczoxLHBhcnRpdGlvbjoxLHJlZHVjZToyLHJlZHVjZVJpZ2h0OjIscmVqZWN0OjEscmVtb3ZlOjEsc29tZToxLHRha2VSaWdodFdoaWxlOjEsdGFrZVdoaWxlOjEsdGltZXM6MSx0cmFuc2Zvcm06Mn0sby5pdGVyYXRlZVJlYXJnPXttYXBLZXlzOlsxXSxyZWR1Y2VSaWdodDpbMSwwXX0sby5tZXRob2RSZWFyZz17YXNzaWduSW5BbGxXaXRoOlsxLDBdLGFzc2lnbkluV2l0aDpbMSwyLDBdLGFzc2lnbkFsbFdpdGg6WzEsMF0sYXNzaWduV2l0aDpbMSwyLDBdLGRpZmZlcmVuY2VCeTpbMSwyLDBdLGRpZmZlcmVuY2VXaXRoOlsxLDIsMF0sZ2V0T3I6WzIsMSwwXSxpbnRlcnNlY3Rpb25CeTpbMSwyLDBdLGludGVyc2VjdGlvbldpdGg6WzEsMiwwXSxpc0VxdWFsV2l0aDpbMSwyLDBdLGlzTWF0Y2hXaXRoOlsyLDEsMF0sbWVyZ2VBbGxXaXRoOlsxLDBdLG1lcmdlV2l0aDpbMSwyLDBdLHBhZENoYXJzOlsyLDEsMF0scGFkQ2hhcnNFbmQ6WzIsMSwwXSxwYWRDaGFyc1N0YXJ0OlsyLDEsMF0scHVsbEFsbEJ5OlsyLDEsMF0scHVsbEFsbFdpdGg6WzIsMSwwXSxyYW5nZVN0ZXA6WzEsMiwwXSxyYW5nZVN0ZXBSaWdodDpbMSwyLDBdLHNldFdpdGg6WzMsMSwyLDBdLHNvcnRlZEluZGV4Qnk6WzIsMSwwXSxzb3J0ZWRMYXN0SW5kZXhCeTpbMiwxLDBdLHVuaW9uQnk6WzEsMiwwXSx1bmlvbldpdGg6WzEsMiwwXSx1cGRhdGVXaXRoOlszLDEsMiwwXSx4b3JCeTpbMSwyLDBdLHhvcldpdGg6WzEsMiwwXSx6aXBXaXRoOlsxLDIsMF19LG8ubWV0aG9kU3ByZWFkPXthc3NpZ25BbGw6e3N0YXJ0OjB9LGFzc2lnbkFsbFdpdGg6e3N0YXJ0OjB9LGFzc2lnbkluQWxsOntzdGFydDowfSxhc3NpZ25JbkFsbFdpdGg6e3N0YXJ0OjB9LGRlZmF1bHRzQWxsOntzdGFydDowfSxkZWZhdWx0c0RlZXBBbGw6e3N0YXJ0OjB9LGludm9rZUFyZ3M6e3N0YXJ0OjJ9LGludm9rZUFyZ3NNYXA6e3N0YXJ0OjJ9LG1lcmdlQWxsOntzdGFydDowfSxtZXJnZUFsbFdpdGg6e3N0YXJ0OjB9LHBhcnRpYWw6e3N0YXJ0OjF9LHBhcnRpYWxSaWdodDp7c3RhcnQ6MX0sd2l0aG91dDp7c3RhcnQ6MX0semlwQWxsOntzdGFydDowfX0sby5tdXRhdGU9e2FycmF5OntmaWxsOiEwLHB1bGw6ITAscHVsbEFsbDohMCxwdWxsQWxsQnk6ITAscHVsbEFsbFdpdGg6ITAscHVsbEF0OiEwLHJlbW92ZTohMCxyZXZlcnNlOiEwfSxvYmplY3Q6e2Fzc2lnbjohMCxhc3NpZ25BbGw6ITAsYXNzaWduQWxsV2l0aDohMCxhc3NpZ25JbjohMCxhc3NpZ25JbkFsbDohMCxhc3NpZ25JbkFsbFdpdGg6ITAsYXNzaWduSW5XaXRoOiEwLGFzc2lnbldpdGg6ITAsZGVmYXVsdHM6ITAsZGVmYXVsdHNBbGw6ITAsZGVmYXVsdHNEZWVwOiEwLGRlZmF1bHRzRGVlcEFsbDohMCxtZXJnZTohMCxtZXJnZUFsbDohMCxtZXJnZUFsbFdpdGg6ITAsbWVyZ2VXaXRoOiEwfSxzZXQ6e3NldDohMCxzZXRXaXRoOiEwLHVuc2V0OiEwLHVwZGF0ZTohMCx1cGRhdGVXaXRoOiEwfX0sby5yZWFsVG9BbGlhcz1mdW5jdGlvbigpe3ZhciBzPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksaT1vLmFsaWFzVG9SZWFsLGE9e307Zm9yKHZhciB1IGluIGkpe3ZhciBfPWlbdV07cy5jYWxsKGEsXyk/YVtfXS5wdXNoKHUpOmFbX109W3VdfXJldHVybiBhfSgpLG8ucmVtYXA9e2Fzc2lnbkFsbDoiYXNzaWduIixhc3NpZ25BbGxXaXRoOiJhc3NpZ25XaXRoIixhc3NpZ25JbkFsbDoiYXNzaWduSW4iLGFzc2lnbkluQWxsV2l0aDoiYXNzaWduSW5XaXRoIixjdXJyeU46ImN1cnJ5IixjdXJyeVJpZ2h0TjoiY3VycnlSaWdodCIsZGVmYXVsdHNBbGw6ImRlZmF1bHRzIixkZWZhdWx0c0RlZXBBbGw6ImRlZmF1bHRzRGVlcCIsZmluZEZyb206ImZpbmQiLGZpbmRJbmRleEZyb206ImZpbmRJbmRleCIsZmluZExhc3RGcm9tOiJmaW5kTGFzdCIsZmluZExhc3RJbmRleEZyb206ImZpbmRMYXN0SW5kZXgiLGdldE9yOiJnZXQiLGluY2x1ZGVzRnJvbToiaW5jbHVkZXMiLGluZGV4T2ZGcm9tOiJpbmRleE9mIixpbnZva2VBcmdzOiJpbnZva2UiLGludm9rZUFyZ3NNYXA6Imludm9rZU1hcCIsbGFzdEluZGV4T2ZGcm9tOiJsYXN0SW5kZXhPZiIsbWVyZ2VBbGw6Im1lcmdlIixtZXJnZUFsbFdpdGg6Im1lcmdlV2l0aCIscGFkQ2hhcnM6InBhZCIscGFkQ2hhcnNFbmQ6InBhZEVuZCIscGFkQ2hhcnNTdGFydDoicGFkU3RhcnQiLHByb3BlcnR5T2Y6ImdldCIscmFuZ2VTdGVwOiJyYW5nZSIscmFuZ2VTdGVwUmlnaHQ6InJhbmdlUmlnaHQiLHJlc3RGcm9tOiJyZXN0IixzcHJlYWRGcm9tOiJzcHJlYWQiLHRyaW1DaGFyczoidHJpbSIsdHJpbUNoYXJzRW5kOiJ0cmltRW5kIix0cmltQ2hhcnNTdGFydDoidHJpbVN0YXJ0Iix6aXBBbGw6InppcCJ9LG8uc2tpcEZpeGVkPXtjYXN0QXJyYXk6ITAsZmxvdzohMCxmbG93UmlnaHQ6ITAsaXRlcmF0ZWU6ITAsbWl4aW46ITAscmVhcmc6ITAscnVuSW5Db250ZXh0OiEwfSxvLnNraXBSZWFyZz17YWRkOiEwLGFzc2lnbjohMCxhc3NpZ25JbjohMCxiaW5kOiEwLGJpbmRLZXk6ITAsY29uY2F0OiEwLGRpZmZlcmVuY2U6ITAsZGl2aWRlOiEwLGVxOiEwLGd0OiEwLGd0ZTohMCxpc0VxdWFsOiEwLGx0OiEwLGx0ZTohMCxtYXRjaGVzUHJvcGVydHk6ITAsbWVyZ2U6ITAsbXVsdGlwbHk6ITAsb3ZlckFyZ3M6ITAscGFydGlhbDohMCxwYXJ0aWFsUmlnaHQ6ITAscHJvcGVydHlPZjohMCxyYW5kb206ITAscmFuZ2U6ITAscmFuZ2VSaWdodDohMCxzdWJ0cmFjdDohMCx6aXA6ITAsemlwT2JqZWN0OiEwLHppcE9iamVjdERlZXA6ITB9fSwxNzI1NToocyxvLGkpPT57dmFyIGE9aSg0NzQyMik7cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VQcm9wZXJ0eURlZXAocyl7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBhKG8scyl9fX0sMTcyODU6cz0+e2Z1bmN0aW9uIHNvdXJjZShzKXtyZXR1cm4gcz8ic3RyaW5nIj09dHlwZW9mIHM/czpzLnNvdXJjZTpudWxsfWZ1bmN0aW9uIGxvb2thaGVhZChzKXtyZXR1cm4gY29uY2F0KCIoPz0iLHMsIikiKX1mdW5jdGlvbiBjb25jYXQoLi4ucyl7cmV0dXJuIHMubWFwKChzPT5zb3VyY2UocykpKS5qb2luKCIiKX1mdW5jdGlvbiBlaXRoZXIoLi4ucyl7cmV0dXJuIigiK3MubWFwKChzPT5zb3VyY2UocykpKS5qb2luKCJ8IikrIikifXMuZXhwb3J0cz1mdW5jdGlvbiB4bWwocyl7Y29uc3Qgbz1jb25jYXQoL1tBLVpfXS8sZnVuY3Rpb24gb3B0aW9uYWwocyl7cmV0dXJuIGNvbmNhdCgiKCIscywiKT8iKX0oL1tBLVowLTlfLi1dKjovKSwvW0EtWjAtOV8uLV0qLyksaT17Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOi8mW2Etel0rO3wmI1swLTldKzt8JiN4W2EtZjAtOV0rOy99LGE9e2JlZ2luOi9ccy8sY29udGFpbnM6W3tjbGFzc05hbWU6Im1ldGEta2V5d29yZCIsYmVnaW46LyM/W2Etel9dW2EtejEtOV8tXSsvLGlsbGVnYWw6L1xuL31dfSx1PXMuaW5oZXJpdChhLHtiZWdpbjovXCgvLGVuZDovXCkvfSksXz1zLmluaGVyaXQocy5BUE9TX1NUUklOR19NT0RFLHtjbGFzc05hbWU6Im1ldGEtc3RyaW5nIn0pLHc9cy5pbmhlcml0KHMuUVVPVEVfU1RSSU5HX01PREUse2NsYXNzTmFtZToibWV0YS1zdHJpbmcifSkseD17ZW5kc1dpdGhQYXJlbnQ6ITAsaWxsZWdhbDovPC8scmVsZXZhbmNlOjAsY29udGFpbnM6W3tjbGFzc05hbWU6ImF0dHIiLGJlZ2luOi9bQS1aYS16MC05Ll86LV0rLyxyZWxldmFuY2U6MH0se2JlZ2luOi89XHMqLyxyZWxldmFuY2U6MCxjb250YWluczpbe2NsYXNzTmFtZToic3RyaW5nIixlbmRzUGFyZW50OiEwLHZhcmlhbnRzOlt7YmVnaW46LyIvLGVuZDovIi8sY29udGFpbnM6W2ldfSx7YmVnaW46LycvLGVuZDovJy8sY29udGFpbnM6W2ldfSx7YmVnaW46L1teXHMiJz08PmBdKy99XX1dfV19O3JldHVybntuYW1lOiJIVE1MLCBYTUwiLGFsaWFzZXM6WyJodG1sIiwieGh0bWwiLCJyc3MiLCJhdG9tIiwieGpiIiwieHNkIiwieHNsIiwicGxpc3QiLCJ3c2YiLCJzdmciXSxjYXNlX2luc2Vuc2l0aXZlOiEwLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjovPCFbYS16XS8sZW5kOi8+LyxyZWxldmFuY2U6MTAsY29udGFpbnM6W2EsdyxfLHUse2JlZ2luOi9cWy8sZW5kOi9cXS8sY29udGFpbnM6W3tjbGFzc05hbWU6Im1ldGEiLGJlZ2luOi88IVthLXpdLyxlbmQ6Lz4vLGNvbnRhaW5zOlthLHUsdyxfXX1dfV19LHMuQ09NTUVOVCgvPCEtLS8sLy0tPi8se3JlbGV2YW5jZToxMH0pLHtiZWdpbjovPCFcW0NEQVRBXFsvLGVuZDovXF1cXT4vLHJlbGV2YW5jZToxMH0saSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjovPFw/eG1sLyxlbmQ6L1w/Pi8scmVsZXZhbmNlOjEwfSx7Y2xhc3NOYW1lOiJ0YWciLGJlZ2luOi88c3R5bGUoPz1cc3w+KS8sZW5kOi8+LyxrZXl3b3Jkczp7bmFtZToic3R5bGUifSxjb250YWluczpbeF0sc3RhcnRzOntlbmQ6LzxcL3N0eWxlPi8scmV0dXJuRW5kOiEwLHN1Ykxhbmd1YWdlOlsiY3NzIiwieG1sIl19fSx7Y2xhc3NOYW1lOiJ0YWciLGJlZ2luOi88c2NyaXB0KD89XHN8PikvLGVuZDovPi8sa2V5d29yZHM6e25hbWU6InNjcmlwdCJ9LGNvbnRhaW5zOlt4XSxzdGFydHM6e2VuZDovPFwvc2NyaXB0Pi8scmV0dXJuRW5kOiEwLHN1Ykxhbmd1YWdlOlsiamF2YXNjcmlwdCIsImhhbmRsZWJhcnMiLCJ4bWwiXX19LHtjbGFzc05hbWU6InRhZyIsYmVnaW46Lzw+fDxcLz4vfSx7Y2xhc3NOYW1lOiJ0YWciLGJlZ2luOmNvbmNhdCgvPC8sbG9va2FoZWFkKGNvbmNhdChvLGVpdGhlcigvXC8+LywvPi8sL1xzLykpKSksZW5kOi9cLz8+Lyxjb250YWluczpbe2NsYXNzTmFtZToibmFtZSIsYmVnaW46byxyZWxldmFuY2U6MCxzdGFydHM6eH1dfSx7Y2xhc3NOYW1lOiJ0YWciLGJlZ2luOmNvbmNhdCgvPFwvLyxsb29rYWhlYWQoY29uY2F0KG8sLz4vKSkpLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJuYW1lIixiZWdpbjpvLHJlbGV2YW5jZTowfSx7YmVnaW46Lz4vLHJlbGV2YW5jZTowLGVuZHNQYXJlbnQ6ITB9XX1dfX19LDE3NDAwOihzLG8saSk9Pnt2YXIgYT1pKDk5Mzc0KSx1PTEvMDtzLmV4cG9ydHM9ZnVuY3Rpb24gdG9GaW5pdGUocyl7cmV0dXJuIHM/KHM9YShzKSk9PT11fHxzPT09LTEvMD8xNzk3NjkzMTM0ODYyMzE1N2UyOTIqKHM8MD8tMToxKTpzPT1zP3M6MDowPT09cz9zOjB9fSwxNzUzMzpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIHlhbWwocyl7dmFyIG89InRydWUgZmFsc2UgeWVzIG5vIG51bGwiLGk9IltcXHcjOy8/OkAmPSskLC5+KicoKVtcXF1dKyIsYT17Y2xhc3NOYW1lOiJzdHJpbmciLHJlbGV2YW5jZTowLHZhcmlhbnRzOlt7YmVnaW46LycvLGVuZDovJy99LHtiZWdpbjovIi8sZW5kOi8iL30se2JlZ2luOi9cUysvfV0sY29udGFpbnM6W3MuQkFDS1NMQVNIX0VTQ0FQRSx7Y2xhc3NOYW1lOiJ0ZW1wbGF0ZS12YXJpYWJsZSIsdmFyaWFudHM6W3tiZWdpbjovXHtcey8sZW5kOi9cfVx9L30se2JlZ2luOi8lXHsvLGVuZDovXH0vfV19XX0sdT1zLmluaGVyaXQoYSx7dmFyaWFudHM6W3tiZWdpbjovJy8sZW5kOi8nL30se2JlZ2luOi8iLyxlbmQ6LyIvfSx7YmVnaW46L1teXHMse31bXF1dKy99XX0pLF89e2NsYXNzTmFtZToibnVtYmVyIixiZWdpbjoiXFxiWzAtOV17NH0oLVswLTldWzAtOV0pezAsMn0oW1R0IFxcdF1bMC05XVswLTldPyg6WzAtOV1bMC05XSl7Mn0pPyhcXC5bMC05XSopPyhbIFxcdF0pKihafFstK11bMC05XVswLTldPyg6WzAtOV1bMC05XSk/KT9cXGIifSx3PXtlbmQ6IiwiLGVuZHNXaXRoUGFyZW50OiEwLGV4Y2x1ZGVFbmQ6ITAsa2V5d29yZHM6byxyZWxldmFuY2U6MH0seD17YmVnaW46L1x7LyxlbmQ6L1x9Lyxjb250YWluczpbd10saWxsZWdhbDoiXFxuIixyZWxldmFuY2U6MH0sQz17YmVnaW46IlxcWyIsZW5kOiJcXF0iLGNvbnRhaW5zOlt3XSxpbGxlZ2FsOiJcXG4iLHJlbGV2YW5jZTowfSxqPVt7Y2xhc3NOYW1lOiJhdHRyIix2YXJpYW50czpbe2JlZ2luOiJcXHdbXFx3IDpcXC8uLV0qOig/PVsgXHRdfCQpIn0se2JlZ2luOiciXFx3W1xcdyA6XFwvLi1dKiI6KD89WyBcdF18JCknfSx7YmVnaW46IidcXHdbXFx3IDpcXC8uLV0qJzooPz1bIFx0XXwkKSJ9XX0se2NsYXNzTmFtZToibWV0YSIsYmVnaW46Il4tLS1cXHMqJCIscmVsZXZhbmNlOjEwfSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiJbXFx8Pl0oWzEtOV0/WystXSk/WyBdKlxcbiggKylbXiBdW15cXG5dKlxcbihcXDJbXlxcbl0rXFxuPykqIn0se2JlZ2luOiI8JVslPS1dPyIsZW5kOiJbJS1dPyU+IixzdWJMYW5ndWFnZToicnVieSIsZXhjbHVkZUJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITAscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOiIhXFx3KyEiK2l9LHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOiIhPCIraSsiPiJ9LHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOiIhIitpfSx7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoiISEiK2l9LHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiImIitzLlVOREVSU0NPUkVfSURFTlRfUkUrIiQifSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiXFwqIitzLlVOREVSU0NPUkVfSURFTlRfUkUrIiQifSx7Y2xhc3NOYW1lOiJidWxsZXQiLGJlZ2luOiItKD89WyBdfCQpIixyZWxldmFuY2U6MH0scy5IQVNIX0NPTU1FTlRfTU9ERSx7YmVnaW5LZXl3b3JkczpvLGtleXdvcmRzOntsaXRlcmFsOm99fSxfLHtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46cy5DX05VTUJFUl9SRSsiXFxiIixyZWxldmFuY2U6MH0seCxDLGFdLEw9Wy4uLmpdO3JldHVybiBMLnBvcCgpLEwucHVzaCh1KSx3LmNvbnRhaW5zPUwse25hbWU6IllBTUwiLGNhc2VfaW5zZW5zaXRpdmU6ITAsYWxpYXNlczpbInltbCJdLGNvbnRhaW5zOmp9fX0sMTc2NzA6KHMsbyxpKT0+e3ZhciBhPWkoMTI2NTEpO3MuZXhwb3J0cz1mdW5jdGlvbiBtYXBDYWNoZURlbGV0ZShzKXt2YXIgbz1hKHRoaXMscykuZGVsZXRlKHMpO3JldHVybiB0aGlzLnNpemUtPW8/MTowLG99fSwxNzk2NToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMTY0MjYpLHU9eyJ0ZXh0L3BsYWluIjoiVGV4dCIsInRleHQvaHRtbCI6IlVybCIsZGVmYXVsdDoiVGV4dCJ9O3MuZXhwb3J0cz1mdW5jdGlvbiBjb3B5KHMsbyl7dmFyIGksXyx3LHgsQyxqLEw9ITE7b3x8KG89e30pLGk9by5kZWJ1Z3x8ITE7dHJ5e2lmKHc9YSgpLHg9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxDPWRvY3VtZW50LmdldFNlbGVjdGlvbigpLChqPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSkudGV4dENvbnRlbnQ9cyxqLmFyaWFIaWRkZW49InRydWUiLGouc3R5bGUuYWxsPSJ1bnNldCIsai5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLGouc3R5bGUudG9wPTAsai5zdHlsZS5jbGlwPSJyZWN0KDAsIDAsIDAsIDApIixqLnN0eWxlLndoaXRlU3BhY2U9InByZSIsai5zdHlsZS53ZWJraXRVc2VyU2VsZWN0PSJ0ZXh0IixqLnN0eWxlLk1velVzZXJTZWxlY3Q9InRleHQiLGouc3R5bGUubXNVc2VyU2VsZWN0PSJ0ZXh0IixqLnN0eWxlLnVzZXJTZWxlY3Q9InRleHQiLGouYWRkRXZlbnRMaXN0ZW5lcigiY29weSIsKGZ1bmN0aW9uKGEpe2lmKGEuc3RvcFByb3BhZ2F0aW9uKCksby5mb3JtYXQpaWYoYS5wcmV2ZW50RGVmYXVsdCgpLHZvaWQgMD09PWEuY2xpcGJvYXJkRGF0YSl7aSYmY29uc29sZS53YXJuKCJ1bmFibGUgdG8gdXNlIGUuY2xpcGJvYXJkRGF0YSIpLGkmJmNvbnNvbGUud2FybigidHJ5aW5nIElFIHNwZWNpZmljIHN0dWZmIiksd2luZG93LmNsaXBib2FyZERhdGEuY2xlYXJEYXRhKCk7dmFyIF89dVtvLmZvcm1hdF18fHUuZGVmYXVsdDt3aW5kb3cuY2xpcGJvYXJkRGF0YS5zZXREYXRhKF8scyl9ZWxzZSBhLmNsaXBib2FyZERhdGEuY2xlYXJEYXRhKCksYS5jbGlwYm9hcmREYXRhLnNldERhdGEoby5mb3JtYXQscyk7by5vbkNvcHkmJihhLnByZXZlbnREZWZhdWx0KCksby5vbkNvcHkoYS5jbGlwYm9hcmREYXRhKSl9KSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChqKSx4LnNlbGVjdE5vZGVDb250ZW50cyhqKSxDLmFkZFJhbmdlKHgpLCFkb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpKXRocm93IG5ldyBFcnJvcigiY29weSBjb21tYW5kIHdhcyB1bnN1Y2Nlc3NmdWwiKTtMPSEwfWNhdGNoKGEpe2kmJmNvbnNvbGUuZXJyb3IoInVuYWJsZSB0byBjb3B5IHVzaW5nIGV4ZWNDb21tYW5kOiAiLGEpLGkmJmNvbnNvbGUud2FybigidHJ5aW5nIElFIHNwZWNpZmljIHN0dWZmIik7dHJ5e3dpbmRvdy5jbGlwYm9hcmREYXRhLnNldERhdGEoby5mb3JtYXR8fCJ0ZXh0IixzKSxvLm9uQ29weSYmby5vbkNvcHkod2luZG93LmNsaXBib2FyZERhdGEpLEw9ITB9Y2F0Y2goYSl7aSYmY29uc29sZS5lcnJvcigidW5hYmxlIHRvIGNvcHkgdXNpbmcgY2xpcGJvYXJkRGF0YTogIixhKSxpJiZjb25zb2xlLmVycm9yKCJmYWxsaW5nIGJhY2sgdG8gcHJvbXB0IiksXz1mdW5jdGlvbiBmb3JtYXQocyl7dmFyIG89KC9tYWMgb3MgeC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk/IuKMmCI6IkN0cmwiKSsiK0MiO3JldHVybiBzLnJlcGxhY2UoLyN7XHMqa2V5XHMqfS9nLG8pfSgibWVzc2FnZSJpbiBvP28ubWVzc2FnZToiQ29weSB0byBjbGlwYm9hcmQ6ICN7a2V5fSwgRW50ZXIiKSx3aW5kb3cucHJvbXB0KF8scyl9fWZpbmFsbHl7QyYmKCJmdW5jdGlvbiI9PXR5cGVvZiBDLnJlbW92ZVJhbmdlP0MucmVtb3ZlUmFuZ2UoeCk6Qy5yZW1vdmVBbGxSYW5nZXMoKSksaiYmZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChqKSx3KCl9cmV0dXJuIEx9fSwxODA3MzoocyxvLGkpPT57dmFyIGE9aSg4NTA4NyksdT1pKDU0NjQxKSxfPWkoNzA5ODEpO3MuZXhwb3J0cz1mdW5jdGlvbiBjcmVhdGVSZWN1cnJ5KHMsbyxpLHcseCxDLGosTCxCLCQpe3ZhciBWPTgmbztvfD1WPzMyOjY0LDQmKG8mPX4oVj82NDozMikpfHwobyY9LTQpO3ZhciBVPVtzLG8seCxWP0M6dm9pZCAwLFY/ajp2b2lkIDAsVj92b2lkIDA6QyxWP3ZvaWQgMDpqLEwsQiwkXSx6PWkuYXBwbHkodm9pZCAwLFUpO3JldHVybiBhKHMpJiZ1KHosVSksei5wbGFjZWhvbGRlcj13LF8oeixzLG8pfX0sMTkxMjM6KHMsbyxpKT0+e3ZhciBhPWkoNjU2MDYpLHU9aSgzMTQ5OSksXz1pKDg4MzEwKS5TdHJlYW07ZnVuY3Rpb24gcmVzb2x2ZShzLG8saSl7dmFyIGEsXz1mdW5jdGlvbiBjcmVhdGVfaW5kZW50KHMsbyl7cmV0dXJuIG5ldyBBcnJheShvfHwwKS5qb2luKHN8fCIiKX0obyxpPWl8fDApLHc9cztpZigib2JqZWN0Ij09dHlwZW9mIHMmJigodz1zW2E9T2JqZWN0LmtleXMocylbMF1dKSYmdy5fZWxlbSkpcmV0dXJuIHcuX2VsZW0ubmFtZT1hLHcuX2VsZW0uaWNvdW50PWksdy5fZWxlbS5pbmRlbnQ9byx3Ll9lbGVtLmluZGVudHM9Xyx3Ll9lbGVtLmludGVycnVwdD13LHcuX2VsZW07dmFyIHgsQz1bXSxqPVtdO2Z1bmN0aW9uIGdldF9hdHRyaWJ1dGVzKHMpe09iamVjdC5rZXlzKHMpLmZvckVhY2goKGZ1bmN0aW9uKG8pe0MucHVzaChmdW5jdGlvbiBhdHRyaWJ1dGUocyxvKXtyZXR1cm4gcysnPSInK3UobykrJyInfShvLHNbb10pKX0pKX1zd2l0Y2godHlwZW9mIHcpe2Nhc2Uib2JqZWN0IjppZihudWxsPT09dylicmVhazt3Ll9hdHRyJiZnZXRfYXR0cmlidXRlcyh3Ll9hdHRyKSx3Ll9jZGF0YSYmai5wdXNoKCgiPCFbQ0RBVEFbIit3Ll9jZGF0YSkucmVwbGFjZSgvXF1cXT4vZywiXV1dXT48IVtDREFUQVs+IikrIl1dPiIpLHcuZm9yRWFjaCYmKHg9ITEsai5wdXNoKCIiKSx3LmZvckVhY2goKGZ1bmN0aW9uKHMpeyJvYmplY3QiPT10eXBlb2Ygcz8iX2F0dHIiPT1PYmplY3Qua2V5cyhzKVswXT9nZXRfYXR0cmlidXRlcyhzLl9hdHRyKTpqLnB1c2gocmVzb2x2ZShzLG8saSsxKSk6KGoucG9wKCkseD0hMCxqLnB1c2godShzKSkpfSkpLHh8fGoucHVzaCgiIikpO2JyZWFrO2RlZmF1bHQ6ai5wdXNoKHUodykpfXJldHVybntuYW1lOmEsaW50ZXJydXB0OiExLGF0dHJpYnV0ZXM6Qyxjb250ZW50OmosaWNvdW50OmksaW5kZW50czpfLGluZGVudDpvfX1mdW5jdGlvbiBmb3JtYXQocyxvLGkpe2lmKCJvYmplY3QiIT10eXBlb2YgbylyZXR1cm4gcyghMSxvKTt2YXIgYT1vLmludGVycnVwdD8xOm8uY29udGVudC5sZW5ndGg7ZnVuY3Rpb24gcHJvY2VlZCgpe2Zvcig7by5jb250ZW50Lmxlbmd0aDspe3ZhciB1PW8uY29udGVudC5zaGlmdCgpO2lmKHZvaWQgMCE9PXUpe2lmKGludGVycnVwdCh1KSlyZXR1cm47Zm9ybWF0KHMsdSl9fXMoITEsKGE+MT9vLmluZGVudHM6IiIpKyhvLm5hbWU/IjwvIitvLm5hbWUrIj4iOiIiKSsoby5pbmRlbnQmJiFpPyJcbiI6IiIpKSxpJiZpKCl9ZnVuY3Rpb24gaW50ZXJydXB0KG8pe3JldHVybiEhby5pbnRlcnJ1cHQmJihvLmludGVycnVwdC5hcHBlbmQ9cyxvLmludGVycnVwdC5lbmQ9cHJvY2VlZCxvLmludGVycnVwdD0hMSxzKCEwKSwhMCl9aWYocyghMSxvLmluZGVudHMrKG8ubmFtZT8iPCIrby5uYW1lOiIiKSsoby5hdHRyaWJ1dGVzLmxlbmd0aD8iICIrby5hdHRyaWJ1dGVzLmpvaW4oIiAiKToiIikrKGE/by5uYW1lPyI+IjoiIjpvLm5hbWU/Ii8+IjoiIikrKG8uaW5kZW50JiZhPjE/IlxuIjoiIikpLCFhKXJldHVybiBzKCExLG8uaW5kZW50PyJcbiI6IiIpO2ludGVycnVwdChvKXx8cHJvY2VlZCgpfXMuZXhwb3J0cz1mdW5jdGlvbiB4bWwocyxvKXsib2JqZWN0IiE9dHlwZW9mIG8mJihvPXtpbmRlbnQ6b30pO3ZhciBpPW8uc3RyZWFtP25ldyBfOm51bGwsdT0iIix3PSExLHg9by5pbmRlbnQ/ITA9PT1vLmluZGVudD8iICAgICI6by5pbmRlbnQ6IiIsQz0hMDtmdW5jdGlvbiBkZWxheShzKXtDP2EubmV4dFRpY2socyk6cygpfWZ1bmN0aW9uIGFwcGVuZChzLG8pe2lmKHZvaWQgMCE9PW8mJih1Kz1vKSxzJiYhdyYmKGk9aXx8bmV3IF8sdz0hMCkscyYmdyl7dmFyIGE9dTtkZWxheSgoZnVuY3Rpb24oKXtpLmVtaXQoImRhdGEiLGEpfSkpLHU9IiJ9fWZ1bmN0aW9uIGFkZChzLG8pe2Zvcm1hdChhcHBlbmQscmVzb2x2ZShzLHgseD8xOjApLG8pfWZ1bmN0aW9uIGVuZCgpe2lmKGkpe3ZhciBzPXU7ZGVsYXkoKGZ1bmN0aW9uKCl7aS5lbWl0KCJkYXRhIixzKSxpLmVtaXQoImVuZCIpLGkucmVhZGFibGU9ITEsaS5lbWl0KCJjbG9zZSIpfSkpfX1yZXR1cm4gZGVsYXkoKGZ1bmN0aW9uKCl7Qz0hMX0pKSxvLmRlY2xhcmF0aW9uJiZmdW5jdGlvbiBhZGRYbWxEZWNsYXJhdGlvbihzKXt2YXIgbz17dmVyc2lvbjoiMS4wIixlbmNvZGluZzpzLmVuY29kaW5nfHwiVVRGLTgifTtzLnN0YW5kYWxvbmUmJihvLnN0YW5kYWxvbmU9cy5zdGFuZGFsb25lKSxhZGQoeyI/eG1sIjp7X2F0dHI6b319KSx1PXUucmVwbGFjZSgiLz4iLCI/PiIpfShvLmRlY2xhcmF0aW9uKSxzJiZzLmZvckVhY2g/cy5mb3JFYWNoKChmdW5jdGlvbihvLGkpe3ZhciBhO2krMT09PXMubGVuZ3RoJiYoYT1lbmQpLGFkZChvLGEpfSkpOmFkZChzLGVuZCksaT8oaS5yZWFkYWJsZT0hMCxpKTp1fSxzLmV4cG9ydHMuZWxlbWVudD1zLmV4cG9ydHMuRWxlbWVudD1mdW5jdGlvbiBlbGVtZW50KCl7dmFyIHM9e19lbGVtOnJlc29sdmUoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSkscHVzaDpmdW5jdGlvbihzKXtpZighdGhpcy5hcHBlbmQpdGhyb3cgbmV3IEVycm9yKCJub3QgYXNzaWduZWQgdG8gYSBwYXJlbnQhIik7dmFyIG89dGhpcyxpPXRoaXMuX2VsZW0uaW5kZW50O2Zvcm1hdCh0aGlzLmFwcGVuZCxyZXNvbHZlKHMsaSx0aGlzLl9lbGVtLmljb3VudCsoaT8xOjApKSwoZnVuY3Rpb24oKXtvLmFwcGVuZCghMCl9KSl9LGNsb3NlOmZ1bmN0aW9uKHMpe3ZvaWQgMCE9PXMmJnRoaXMucHVzaChzKSx0aGlzLmVuZCYmdGhpcy5lbmQoKX19O3JldHVybiBzfX0sMTkyMTk6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBjYWNoZUhhcyhzLG8pe3JldHVybiBzLmhhcyhvKX19LDE5Mjg3OnM9PnsidXNlIHN0cmljdCI7cy5leHBvcnRzPXtDU1NSdWxlTGlzdDowLENTU1N0eWxlRGVjbGFyYXRpb246MCxDU1NWYWx1ZUxpc3Q6MCxDbGllbnRSZWN0TGlzdDowLERPTVJlY3RMaXN0OjAsRE9NU3RyaW5nTGlzdDowLERPTVRva2VuTGlzdDoxLERhdGFUcmFuc2Zlckl0ZW1MaXN0OjAsRmlsZUxpc3Q6MCxIVE1MQWxsQ29sbGVjdGlvbjowLEhUTUxDb2xsZWN0aW9uOjAsSFRNTEZvcm1FbGVtZW50OjAsSFRNTFNlbGVjdEVsZW1lbnQ6MCxNZWRpYUxpc3Q6MCxNaW1lVHlwZUFycmF5OjAsTmFtZWROb2RlTWFwOjAsTm9kZUxpc3Q6MSxQYWludFJlcXVlc3RMaXN0OjAsUGx1Z2luOjAsUGx1Z2luQXJyYXk6MCxTVkdMZW5ndGhMaXN0OjAsU1ZHTnVtYmVyTGlzdDowLFNWR1BhdGhTZWdMaXN0OjAsU1ZHUG9pbnRMaXN0OjAsU1ZHU3RyaW5nTGlzdDowLFNWR1RyYW5zZm9ybUxpc3Q6MCxTb3VyY2VCdWZmZXJMaXN0OjAsU3R5bGVTaGVldExpc3Q6MCxUZXh0VHJhY2tDdWVMaXN0OjAsVGV4dFRyYWNrTGlzdDowLFRvdWNoTGlzdDowfX0sMTkzNTg6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDg1NTgyKSx1PWkoNDk3MjQpLF89aSg2MTYyNiksdz1pKDg4MjgwKSx4PWkoNzkxOTIpLEM9aSgxOTU5NSksaj1pKDU0ODI5KSxMPWkoMzQwODQpLEI9aSgzMjA5NiksJD1pKDM5MjU5KSxWPWkoODU4ODQpLFU9aSgzOTQ0Nyksej1pKDczNzYpO3MuZXhwb3J0cz1mdW5jdGlvbihzLG8saSxZKXt2YXIgWj0ic3RhY2tUcmFjZUxpbWl0IixlZT1ZPzI6MSxpZT1zLnNwbGl0KCIuIiksYWU9aWVbaWUubGVuZ3RoLTFdLGNlPWEuYXBwbHkobnVsbCxpZSk7aWYoY2Upe3ZhciBsZT1jZS5wcm90b3R5cGU7aWYoIXomJnUobGUsImNhdXNlIikmJmRlbGV0ZSBsZS5jYXVzZSwhaSlyZXR1cm4gY2U7dmFyIHBlPWEoIkVycm9yIiksZGU9bygoZnVuY3Rpb24ocyxvKXt2YXIgaT1CKFk/bzpzLHZvaWQgMCksYT1ZP25ldyBjZShzKTpuZXcgY2U7cmV0dXJuIHZvaWQgMCE9PWkmJl8oYSwibWVzc2FnZSIsaSksVihhLGRlLGEuc3RhY2ssMiksdGhpcyYmdyhsZSx0aGlzKSYmTChhLHRoaXMsZGUpLGFyZ3VtZW50cy5sZW5ndGg+ZWUmJiQoYSxhcmd1bWVudHNbZWVdKSxhfSkpO2lmKGRlLnByb3RvdHlwZT1sZSwiRXJyb3IiIT09YWU/eD94KGRlLHBlKTpDKGRlLHBlLHtuYW1lOiEwfSk6VSYmWiBpbiBjZSYmKGooZGUsY2UsWiksaihkZSxjZSwicHJlcGFyZVN0YWNrVHJhY2UiKSksQyhkZSxjZSksIXopdHJ5e2xlLm5hbWUhPT1hZSYmXyhsZSwibmFtZSIsYWUpLGxlLmNvbnN0cnVjdG9yPWRlfWNhdGNoKHMpe31yZXR1cm4gZGV9fX0sMTk1NzA6KHMsbyxpKT0+e3ZhciBhPWkoMzczMzQpLHU9aSg5MzI0MyksXz1pKDgzNDg4KSx3PXU/ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdShzLCJ0b1N0cmluZyIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHZhbHVlOmEobyksd3JpdGFibGU6ITB9KX06XztzLmV4cG9ydHM9d30sMTk1OTU6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDQ5NzI0KSx1PWkoMTEwNDIpLF89aSgxMzg0Niksdz1pKDc0Mjg0KTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvLGkpe2Zvcih2YXIgeD11KG8pLEM9dy5mLGo9Xy5mLEw9MDtMPHgubGVuZ3RoO0wrKyl7dmFyIEI9eFtMXTthKHMsQil8fGkmJmEoaSxCKXx8QyhzLEIsaihvLEIpKX19fSwxOTcwOToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMjMwMzQpO3MuZXhwb3J0cz1hfSwxOTg0NjoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMjA3OTgpLHU9aSg5ODgyOCksXz1pKDQ1OTUxKS5TdHJpbmc7cy5leHBvcnRzPSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIXUoKGZ1bmN0aW9uKCl7dmFyIHM9U3ltYm9sKCJzeW1ib2wgZGV0ZWN0aW9uIik7cmV0dXJuIV8ocyl8fCEoT2JqZWN0KHMpaW5zdGFuY2VvZiBTeW1ib2wpfHwhU3ltYm9sLnNoYW0mJmEmJmE8NDF9KSl9LDE5OTMxOihzLG8saSk9Pnt2YXIgYT1pKDMxNzY5KSx1PWkoNjgwOTApLF89aSg2ODk2OSksdz1pKDc3Nzk3KTtzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZVVuc2V0KHMsbyl7cmV0dXJuIG89YShvLHMpLG51bGw9PShzPV8ocyxvKSl8fGRlbGV0ZSBzW3codShvKSldfX0sMjAxODE6KHMsbyxpKT0+e3ZhciBhPS9eXHMrfFxzKyQvZyx1PS9eWy0rXTB4WzAtOWEtZl0rJC9pLF89L14wYlswMV0rJC9pLHc9L14wb1swLTddKyQvaSx4PXBhcnNlSW50LEM9Im9iamVjdCI9PXR5cGVvZiBpLmcmJmkuZyYmaS5nLk9iamVjdD09PU9iamVjdCYmaS5nLGo9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixMPUN8fGp8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksQj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLCQ9TWF0aC5tYXgsVj1NYXRoLm1pbixub3c9ZnVuY3Rpb24oKXtyZXR1cm4gTC5EYXRlLm5vdygpfTtmdW5jdGlvbiBpc09iamVjdChzKXt2YXIgbz10eXBlb2YgcztyZXR1cm4hIXMmJigib2JqZWN0Ij09b3x8ImZ1bmN0aW9uIj09byl9ZnVuY3Rpb24gdG9OdW1iZXIocyl7aWYoIm51bWJlciI9PXR5cGVvZiBzKXJldHVybiBzO2lmKGZ1bmN0aW9uIGlzU3ltYm9sKHMpe3JldHVybiJzeW1ib2wiPT10eXBlb2Ygc3x8ZnVuY3Rpb24gaXNPYmplY3RMaWtlKHMpe3JldHVybiEhcyYmIm9iamVjdCI9PXR5cGVvZiBzfShzKSYmIltvYmplY3QgU3ltYm9sXSI9PUIuY2FsbChzKX0ocykpcmV0dXJuIE5hTjtpZihpc09iamVjdChzKSl7dmFyIG89ImZ1bmN0aW9uIj09dHlwZW9mIHMudmFsdWVPZj9zLnZhbHVlT2YoKTpzO3M9aXNPYmplY3Qobyk/bysiIjpvfWlmKCJzdHJpbmciIT10eXBlb2YgcylyZXR1cm4gMD09PXM/czorcztzPXMucmVwbGFjZShhLCIiKTt2YXIgaT1fLnRlc3Qocyk7cmV0dXJuIGl8fHcudGVzdChzKT94KHMuc2xpY2UoMiksaT8yOjgpOnUudGVzdChzKT9OYU46K3N9cy5leHBvcnRzPWZ1bmN0aW9uIGRlYm91bmNlKHMsbyxpKXt2YXIgYSx1LF8sdyx4LEMsaj0wLEw9ITEsQj0hMSxVPSEwO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBzKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBpbnZva2VGdW5jKG8pe3ZhciBpPWEsXz11O3JldHVybiBhPXU9dm9pZCAwLGo9byx3PXMuYXBwbHkoXyxpKX1mdW5jdGlvbiBzaG91bGRJbnZva2Uocyl7dmFyIGk9cy1DO3JldHVybiB2b2lkIDA9PT1DfHxpPj1vfHxpPDB8fEImJnMtaj49X31mdW5jdGlvbiB0aW1lckV4cGlyZWQoKXt2YXIgcz1ub3coKTtpZihzaG91bGRJbnZva2UocykpcmV0dXJuIHRyYWlsaW5nRWRnZShzKTt4PXNldFRpbWVvdXQodGltZXJFeHBpcmVkLGZ1bmN0aW9uIHJlbWFpbmluZ1dhaXQocyl7dmFyIGk9by0ocy1DKTtyZXR1cm4gQj9WKGksXy0ocy1qKSk6aX0ocykpfWZ1bmN0aW9uIHRyYWlsaW5nRWRnZShzKXtyZXR1cm4geD12b2lkIDAsVSYmYT9pbnZva2VGdW5jKHMpOihhPXU9dm9pZCAwLHcpfWZ1bmN0aW9uIGRlYm91bmNlZCgpe3ZhciBzPW5vdygpLGk9c2hvdWxkSW52b2tlKHMpO2lmKGE9YXJndW1lbnRzLHU9dGhpcyxDPXMsaSl7aWYodm9pZCAwPT09eClyZXR1cm4gZnVuY3Rpb24gbGVhZGluZ0VkZ2Uocyl7cmV0dXJuIGo9cyx4PXNldFRpbWVvdXQodGltZXJFeHBpcmVkLG8pLEw/aW52b2tlRnVuYyhzKTp3fShDKTtpZihCKXJldHVybiB4PXNldFRpbWVvdXQodGltZXJFeHBpcmVkLG8pLGludm9rZUZ1bmMoQyl9cmV0dXJuIHZvaWQgMD09PXgmJih4PXNldFRpbWVvdXQodGltZXJFeHBpcmVkLG8pKSx3fXJldHVybiBvPXRvTnVtYmVyKG8pfHwwLGlzT2JqZWN0KGkpJiYoTD0hIWkubGVhZGluZyxfPShCPSJtYXhXYWl0ImluIGkpPyQodG9OdW1iZXIoaS5tYXhXYWl0KXx8MCxvKTpfLFU9InRyYWlsaW5nImluIGk/ISFpLnRyYWlsaW5nOlUpLGRlYm91bmNlZC5jYW5jZWw9ZnVuY3Rpb24gY2FuY2VsKCl7dm9pZCAwIT09eCYmY2xlYXJUaW1lb3V0KHgpLGo9MCxhPUM9dT14PXZvaWQgMH0sZGVib3VuY2VkLmZsdXNoPWZ1bmN0aW9uIGZsdXNoKCl7cmV0dXJuIHZvaWQgMD09PXg/dzp0cmFpbGluZ0VkZ2Uobm93KCkpfSxkZWJvdW5jZWR9fSwyMDMxNzpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIG1hcFRvQXJyYXkocyl7dmFyIG89LTEsaT1BcnJheShzLnNpemUpO3JldHVybiBzLmZvckVhY2goKGZ1bmN0aW9uKHMsYSl7aVsrK29dPVthLHNdfSkpLGl9fSwyMDMzNDoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNDgyODcpLkJ1ZmZlcjtjbGFzcyBOb25FcnJvciBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHMpe3N1cGVyKE5vbkVycm9yLl9wcmVwYXJlU3VwZXJNZXNzYWdlKHMpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywibmFtZSIse3ZhbHVlOiJOb25FcnJvciIsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsTm9uRXJyb3IpfXN0YXRpYyBfcHJlcGFyZVN1cGVyTWVzc2FnZShzKXt0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHMpfWNhdGNoe3JldHVybiBTdHJpbmcocyl9fX1jb25zdCB1PVt7cHJvcGVydHk6Im5hbWUiLGVudW1lcmFibGU6ITF9LHtwcm9wZXJ0eToibWVzc2FnZSIsZW51bWVyYWJsZTohMX0se3Byb3BlcnR5OiJzdGFjayIsZW51bWVyYWJsZTohMX0se3Byb3BlcnR5OiJjb2RlIixlbnVtZXJhYmxlOiEwfV0sXz1TeW1ib2woIi50b0pTT04gY2FsbGVkIiksZGVzdHJveUNpcmN1bGFyPSh7ZnJvbTpzLHNlZW46byx0b186aSxmb3JjZUVudW1lcmFibGU6dyxtYXhEZXB0aDp4LGRlcHRoOkN9KT0+e2NvbnN0IGo9aXx8KEFycmF5LmlzQXJyYXkocyk/W106e30pO2lmKG8ucHVzaChzKSxDPj14KXJldHVybiBqO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBzLnRvSlNPTiYmITAhPT1zW19dKXJldHVybihzPT57c1tfXT0hMDtjb25zdCBvPXMudG9KU09OKCk7cmV0dXJuIGRlbGV0ZSBzW19dLG99KShzKTtmb3IoY29uc3RbaSx1XW9mIE9iamVjdC5lbnRyaWVzKHMpKSJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhLmlzQnVmZmVyKHUpP2pbaV09IltvYmplY3QgQnVmZmVyXSI6ImZ1bmN0aW9uIiE9dHlwZW9mIHUmJih1JiYib2JqZWN0Ij09dHlwZW9mIHU/by5pbmNsdWRlcyhzW2ldKT9qW2ldPSJbQ2lyY3VsYXJdIjooQysrLGpbaV09ZGVzdHJveUNpcmN1bGFyKHtmcm9tOnNbaV0sc2VlbjpvLnNsaWNlKCksZm9yY2VFbnVtZXJhYmxlOncsbWF4RGVwdGg6eCxkZXB0aDpDfSkpOmpbaV09dSk7Zm9yKGNvbnN0e3Byb3BlcnR5Om8sZW51bWVyYWJsZTppfW9mIHUpInN0cmluZyI9PXR5cGVvZiBzW29dJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaixvLHt2YWx1ZTpzW29dLGVudW1lcmFibGU6ISF3fHxpLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pO3JldHVybiBqfTtzLmV4cG9ydHM9e3NlcmlhbGl6ZUVycm9yOihzLG89e30pPT57Y29uc3R7bWF4RGVwdGg6aT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFl9PW87cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBzJiZudWxsIT09cz9kZXN0cm95Q2lyY3VsYXIoe2Zyb206cyxzZWVuOltdLGZvcmNlRW51bWVyYWJsZTohMCxtYXhEZXB0aDppLGRlcHRoOjB9KToiZnVuY3Rpb24iPT10eXBlb2Ygcz9gW0Z1bmN0aW9uOiAke3MubmFtZXx8ImFub255bW91cyJ9XWA6c30sZGVzZXJpYWxpemVFcnJvcjoocyxvPXt9KT0+e2NvbnN0e21heERlcHRoOmk9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZfT1vO2lmKHMgaW5zdGFuY2VvZiBFcnJvcilyZXR1cm4gcztpZigib2JqZWN0Ij09dHlwZW9mIHMmJm51bGwhPT1zJiYhQXJyYXkuaXNBcnJheShzKSl7Y29uc3Qgbz1uZXcgRXJyb3I7cmV0dXJuIGRlc3Ryb3lDaXJjdWxhcih7ZnJvbTpzLHNlZW46W10sdG9fOm8sbWF4RGVwdGg6aSxkZXB0aDowfSksb31yZXR1cm4gbmV3IE5vbkVycm9yKHMpfX19LDIwNDI2OnM9Pnt2YXIgbz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlSGFzKHMsaSl7cmV0dXJuIG51bGwhPXMmJm8uY2FsbChzLGkpfX0sMjA1NzU6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDMxMjEpO3MuZXhwb3J0cz1mdW5jdGlvbihzKXtyZXR1cm4gYShzLmxlbmd0aCl9fSwyMDc5ODoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhLHUsXz1pKDQ1OTUxKSx3PWkoOTY3OTQpLHg9Xy5wcm9jZXNzLEM9Xy5EZW5vLGo9eCYmeC52ZXJzaW9uc3x8QyYmQy52ZXJzaW9uLEw9aiYmai52ODtMJiYodT0oYT1MLnNwbGl0KCIuIikpWzBdPjAmJmFbMF08ND8xOisoYVswXSthWzFdKSksIXUmJncmJighKGE9dy5tYXRjaCgvRWRnZVwvKFxkKykvKSl8fGFbMV0+PTc0KSYmKGE9dy5tYXRjaCgvQ2hyb21lXC8oXGQrKS8pKSYmKHU9K2FbMV0pLHMuZXhwb3J0cz11fSwyMDg1MDoocyxvLGkpPT57InVzZSBzdHJpY3QiO3MuZXhwb3J0cz1pKDQ2MDc2KX0sMjA5OTk6KHMsbyxpKT0+e3ZhciBhPWkoNjkzMDIpLHU9aSgzNjgwMCk7cy5leHBvcnRzPWZ1bmN0aW9uIGNyZWF0ZUFzc2lnbmVyKHMpe3JldHVybiBhKChmdW5jdGlvbihvLGkpe3ZhciBhPS0xLF89aS5sZW5ndGgsdz1fPjE/aVtfLTFdOnZvaWQgMCx4PV8+Mj9pWzJdOnZvaWQgMDtmb3Iodz1zLmxlbmd0aD4zJiYiZnVuY3Rpb24iPT10eXBlb2Ygdz8oXy0tLHcpOnZvaWQgMCx4JiZ1KGlbMF0saVsxXSx4KSYmKHc9XzwzP3ZvaWQgMDp3LF89MSksbz1PYmplY3Qobyk7KythPF87KXt2YXIgQz1pW2FdO0MmJnMobyxDLGEsdyl9cmV0dXJuIG99KSl9fSwyMTU0OToocyxvLGkpPT57dmFyIGE9aSgyMjAzMiksdT1pKDYzODYyKSxfPWkoNjY3MjEpLHc9aSgxMjc0OSkseD1pKDM1NzQ5KTtmdW5jdGlvbiBIYXNoKHMpe3ZhciBvPS0xLGk9bnVsbD09cz8wOnMubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytvPGk7KXt2YXIgYT1zW29dO3RoaXMuc2V0KGFbMF0sYVsxXSl9fUhhc2gucHJvdG90eXBlLmNsZWFyPWEsSGFzaC5wcm90b3R5cGUuZGVsZXRlPXUsSGFzaC5wcm90b3R5cGUuZ2V0PV8sSGFzaC5wcm90b3R5cGUuaGFzPXcsSGFzaC5wcm90b3R5cGUuc2V0PXgscy5leHBvcnRzPUhhc2h9LDIxNzkxOihzLG8saSk9Pnt2YXIgYT1pKDE2NTQ3KSx1PWkoNDMzNjApO3MuZXhwb3J0cz1mdW5jdGlvbiBjb3B5T2JqZWN0KHMsbyxpLF8pe3ZhciB3PSFpO2l8fChpPXt9KTtmb3IodmFyIHg9LTEsQz1vLmxlbmd0aDsrK3g8Qzspe3ZhciBqPW9beF0sTD1fP18oaVtqXSxzW2pdLGosaSxzKTp2b2lkIDA7dm9pZCAwPT09TCYmKEw9c1tqXSksdz91KGksaixMKTphKGksaixMKX1yZXR1cm4gaX19LDIxOTg2OihzLG8saSk9Pnt2YXIgYT1pKDUxODczKSx1PWkoMzc4MjgpLF89aSg3NTI4OCksdz1pKDI1OTExKSx4PWkoMjAzMTcpLEM9aSg4NDI0Nyksaj1hP2EucHJvdG90eXBlOnZvaWQgMCxMPWo/ai52YWx1ZU9mOnZvaWQgMDtzLmV4cG9ydHM9ZnVuY3Rpb24gZXF1YWxCeVRhZyhzLG8saSxhLGosQiwkKXtzd2l0Y2goaSl7Y2FzZSJbb2JqZWN0IERhdGFWaWV3XSI6aWYocy5ieXRlTGVuZ3RoIT1vLmJ5dGVMZW5ndGh8fHMuYnl0ZU9mZnNldCE9by5ieXRlT2Zmc2V0KXJldHVybiExO3M9cy5idWZmZXIsbz1vLmJ1ZmZlcjtjYXNlIltvYmplY3QgQXJyYXlCdWZmZXJdIjpyZXR1cm4hKHMuYnl0ZUxlbmd0aCE9by5ieXRlTGVuZ3RofHwhQihuZXcgdShzKSxuZXcgdShvKSkpO2Nhc2UiW29iamVjdCBCb29sZWFuXSI6Y2FzZSJbb2JqZWN0IERhdGVdIjpjYXNlIltvYmplY3QgTnVtYmVyXSI6cmV0dXJuIF8oK3MsK28pO2Nhc2UiW29iamVjdCBFcnJvcl0iOnJldHVybiBzLm5hbWU9PW8ubmFtZSYmcy5tZXNzYWdlPT1vLm1lc3NhZ2U7Y2FzZSJbb2JqZWN0IFJlZ0V4cF0iOmNhc2UiW29iamVjdCBTdHJpbmddIjpyZXR1cm4gcz09bysiIjtjYXNlIltvYmplY3QgTWFwXSI6dmFyIFY9eDtjYXNlIltvYmplY3QgU2V0XSI6dmFyIFU9MSZhO2lmKFZ8fChWPUMpLHMuc2l6ZSE9by5zaXplJiYhVSlyZXR1cm4hMTt2YXIgej0kLmdldChzKTtpZih6KXJldHVybiB6PT1vO2F8PTIsJC5zZXQocyxvKTt2YXIgWT13KFYocyksVihvKSxhLGosQiwkKTtyZXR1cm4gJC5kZWxldGUocyksWTtjYXNlIltvYmplY3QgU3ltYm9sXSI6aWYoTClyZXR1cm4gTC5jYWxsKHMpPT1MLmNhbGwobyl9cmV0dXJuITF9fSwyMjAzMjoocyxvLGkpPT57dmFyIGE9aSg4MTA0Mik7cy5leHBvcnRzPWZ1bmN0aW9uIGhhc2hDbGVhcigpe3RoaXMuX19kYXRhX189YT9hKG51bGwpOnt9LHRoaXMuc2l6ZT0wfX0sMjIyMjU6cz0+e3ZhciBvPSJcXHVkODAwLVxcdWRmZmYiLGk9IlxcdTI3MDAtXFx1MjdiZiIsYT0iYS16XFx4ZGYtXFx4ZjZcXHhmOC1cXHhmZiIsdT0iQS1aXFx4YzAtXFx4ZDZcXHhkOC1cXHhkZSIsXz0iXFx4YWNcXHhiMVxceGQ3XFx4ZjdcXHgwMC1cXHgyZlxceDNhLVxceDQwXFx4NWItXFx4NjBcXHg3Yi1cXHhiZlxcdTIwMDAtXFx1MjA2ZiBcXHRcXHgwYlxcZlxceGEwXFx1ZmVmZlxcblxcclxcdTIwMjhcXHUyMDI5XFx1MTY4MFxcdTE4MGVcXHUyMDAwXFx1MjAwMVxcdTIwMDJcXHUyMDAzXFx1MjAwNFxcdTIwMDVcXHUyMDA2XFx1MjAwN1xcdTIwMDhcXHUyMDA5XFx1MjAwYVxcdTIwMmZcXHUyMDVmXFx1MzAwMCIsdz0iWyIrXysiXSIseD0iXFxkKyIsQz0iWyIraSsiXSIsaj0iWyIrYSsiXSIsTD0iW14iK28rXyt4K2krYSt1KyJdIixCPSIoPzpcXHVkODNjW1xcdWRkZTYtXFx1ZGRmZl0pezJ9IiwkPSJbXFx1ZDgwMC1cXHVkYmZmXVtcXHVkYzAwLVxcdWRmZmZdIixWPSJbIit1KyJdIixVPSIoPzoiK2orInwiK0wrIikiLHo9Iig/OiIrVisifCIrTCsiKSIsWT0iKD86WyfigJldKD86ZHxsbHxtfHJlfHN8dHx2ZSkpPyIsWj0iKD86WyfigJldKD86RHxMTHxNfFJFfFN8VHxWRSkpPyIsZWU9Iig/OltcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZdfFxcdWQ4M2NbXFx1ZGZmYi1cXHVkZmZmXSk/IixpZT0iW1xcdWZlMGVcXHVmZTBmXT8iLGFlPWllK2VlKygiKD86XFx1MjAwZCg/OiIrWyJbXiIrbysiXSIsQiwkXS5qb2luKCJ8IikrIikiK2llK2VlKyIpKiIpLGNlPSIoPzoiK1tDLEIsJF0uam9pbigifCIpKyIpIithZSxsZT1SZWdFeHAoW1YrIj8iK2orIisiK1krIig/PSIrW3csViwiJCJdLmpvaW4oInwiKSsiKSIseisiKyIrWisiKD89IitbdyxWK1UsIiQiXS5qb2luKCJ8IikrIikiLFYrIj8iK1UrIisiK1ksVisiKyIrWiwiXFxkKig/OjFTVHwyTkR8M1JEfCg/IVsxMjNdKVxcZFRIKSg/PVxcYnxbYS16X10pIiwiXFxkKig/OjFzdHwybmR8M3JkfCg/IVsxMjNdKVxcZHRoKSg/PVxcYnxbQS1aX10pIix4LGNlXS5qb2luKCJ8IiksImciKTtzLmV4cG9ydHM9ZnVuY3Rpb24gdW5pY29kZVdvcmRzKHMpe3JldHVybiBzLm1hdGNoKGxlKXx8W119fSwyMjU1MToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoOTY1NDApLHU9aSg2OTk4Mik7ZnVuY3Rpb24gcChzKXtmb3IodmFyIG89Imh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9lcnJvci1kZWNvZGVyLmh0bWw/aW52YXJpYW50PSIrcyxpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKylvKz0iJmFyZ3NbXT0iK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbaV0pO3JldHVybiJNaW5pZmllZCBSZWFjdCBlcnJvciAjIitzKyI7IHZpc2l0ICIrbysiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4ifXZhciBfPW5ldyBTZXQsdz17fTtmdW5jdGlvbiBmYShzLG8pe2hhKHMsbyksaGEocysiQ2FwdHVyZSIsbyl9ZnVuY3Rpb24gaGEocyxvKXtmb3Iod1tzXT1vLHM9MDtzPG8ubGVuZ3RoO3MrKylfLmFkZChvW3NdKX12YXIgeD0hKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93fHx2b2lkIDA9PT13aW5kb3cuZG9jdW1lbnR8fHZvaWQgMD09PXdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KSxDPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksaj0vXls6QS1aX2Etelx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDJGRlx1MDM3MC1cdTAzN0RcdTAzN0YtXHUxRkZGXHUyMDBDLVx1MjAwRFx1MjA3MC1cdTIxOEZcdTJDMDAtXHUyRkVGXHUzMDAxLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkZEXVs6QS1aX2Etelx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDJGRlx1MDM3MC1cdTAzN0RcdTAzN0YtXHUxRkZGXHUyMDBDLVx1MjAwRFx1MjA3MC1cdTIxOEZcdTJDMDAtXHUyRkVGXHUzMDAxLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkZEXC0uMC05XHUwMEI3XHUwMzAwLVx1MDM2Rlx1MjAzRi1cdTIwNDBdKiQvLEw9e30sQj17fTtmdW5jdGlvbiB2KHMsbyxpLGEsdSxfLHcpe3RoaXMuYWNjZXB0c0Jvb2xlYW5zPTI9PT1vfHwzPT09b3x8ND09PW8sdGhpcy5hdHRyaWJ1dGVOYW1lPWEsdGhpcy5hdHRyaWJ1dGVOYW1lc3BhY2U9dSx0aGlzLm11c3RVc2VQcm9wZXJ0eT1pLHRoaXMucHJvcGVydHlOYW1lPXMsdGhpcy50eXBlPW8sdGhpcy5zYW5pdGl6ZVVSTD1fLHRoaXMucmVtb3ZlRW1wdHlTdHJpbmc9d312YXIgJD17fTsiY2hpbGRyZW4gZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgZGVmYXVsdFZhbHVlIGRlZmF1bHRDaGVja2VkIGlubmVySFRNTCBzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmcgc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIHN0eWxlIi5zcGxpdCgiICIpLmZvckVhY2goKGZ1bmN0aW9uKHMpeyRbc109bmV3IHYocywwLCExLHMsbnVsbCwhMSwhMSl9KSksW1siYWNjZXB0Q2hhcnNldCIsImFjY2VwdC1jaGFyc2V0Il0sWyJjbGFzc05hbWUiLCJjbGFzcyJdLFsiaHRtbEZvciIsImZvciJdLFsiaHR0cEVxdWl2IiwiaHR0cC1lcXVpdiJdXS5mb3JFYWNoKChmdW5jdGlvbihzKXt2YXIgbz1zWzBdOyRbb109bmV3IHYobywxLCExLHNbMV0sbnVsbCwhMSwhMSl9KSksWyJjb250ZW50RWRpdGFibGUiLCJkcmFnZ2FibGUiLCJzcGVsbENoZWNrIiwidmFsdWUiXS5mb3JFYWNoKChmdW5jdGlvbihzKXskW3NdPW5ldyB2KHMsMiwhMSxzLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KSksWyJhdXRvUmV2ZXJzZSIsImV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQiLCJmb2N1c2FibGUiLCJwcmVzZXJ2ZUFscGhhIl0uZm9yRWFjaCgoZnVuY3Rpb24ocyl7JFtzXT1uZXcgdihzLDIsITEscyxudWxsLCExLCExKX0pKSwiYWxsb3dGdWxsU2NyZWVuIGFzeW5jIGF1dG9Gb2N1cyBhdXRvUGxheSBjb250cm9scyBkZWZhdWx0IGRlZmVyIGRpc2FibGVkIGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlIGRpc2FibGVSZW1vdGVQbGF5YmFjayBmb3JtTm9WYWxpZGF0ZSBoaWRkZW4gbG9vcCBub01vZHVsZSBub1ZhbGlkYXRlIG9wZW4gcGxheXNJbmxpbmUgcmVhZE9ubHkgcmVxdWlyZWQgcmV2ZXJzZWQgc2NvcGVkIHNlYW1sZXNzIGl0ZW1TY29wZSIuc3BsaXQoIiAiKS5mb3JFYWNoKChmdW5jdGlvbihzKXskW3NdPW5ldyB2KHMsMywhMSxzLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KSksWyJjaGVja2VkIiwibXVsdGlwbGUiLCJtdXRlZCIsInNlbGVjdGVkIl0uZm9yRWFjaCgoZnVuY3Rpb24ocyl7JFtzXT1uZXcgdihzLDMsITAscyxudWxsLCExLCExKX0pKSxbImNhcHR1cmUiLCJkb3dubG9hZCJdLmZvckVhY2goKGZ1bmN0aW9uKHMpeyRbc109bmV3IHYocyw0LCExLHMsbnVsbCwhMSwhMSl9KSksWyJjb2xzIiwicm93cyIsInNpemUiLCJzcGFuIl0uZm9yRWFjaCgoZnVuY3Rpb24ocyl7JFtzXT1uZXcgdihzLDYsITEscyxudWxsLCExLCExKX0pKSxbInJvd1NwYW4iLCJzdGFydCJdLmZvckVhY2goKGZ1bmN0aW9uKHMpeyRbc109bmV3IHYocyw1LCExLHMudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pKTt2YXIgVj0vW1wtOl0oW2Etel0pL2c7ZnVuY3Rpb24gc2Eocyl7cmV0dXJuIHNbMV0udG9VcHBlckNhc2UoKX1mdW5jdGlvbiB0YShzLG8saSxhKXt2YXIgdT0kLmhhc093blByb3BlcnR5KG8pPyRbb106bnVsbDsobnVsbCE9PXU/MCE9PXUudHlwZTphfHwhKDI8by5sZW5ndGgpfHwibyIhPT1vWzBdJiYiTyIhPT1vWzBdfHwibiIhPT1vWzFdJiYiTiIhPT1vWzFdKSYmKGZ1bmN0aW9uIHFhKHMsbyxpLGEpe2lmKG51bGw9PW98fGZ1bmN0aW9uIHBhKHMsbyxpLGEpe2lmKG51bGwhPT1pJiYwPT09aS50eXBlKXJldHVybiExO3N3aXRjaCh0eXBlb2Ygbyl7Y2FzZSJmdW5jdGlvbiI6Y2FzZSJzeW1ib2wiOnJldHVybiEwO2Nhc2UiYm9vbGVhbiI6cmV0dXJuIWEmJihudWxsIT09aT8haS5hY2NlcHRzQm9vbGVhbnM6ImRhdGEtIiE9PShzPXMudG9Mb3dlckNhc2UoKS5zbGljZSgwLDUpKSYmImFyaWEtIiE9PXMpO2RlZmF1bHQ6cmV0dXJuITF9fShzLG8saSxhKSlyZXR1cm4hMDtpZihhKXJldHVybiExO2lmKG51bGwhPT1pKXN3aXRjaChpLnR5cGUpe2Nhc2UgMzpyZXR1cm4hbztjYXNlIDQ6cmV0dXJuITE9PT1vO2Nhc2UgNTpyZXR1cm4gaXNOYU4obyk7Y2FzZSA2OnJldHVybiBpc05hTihvKXx8MT5vfXJldHVybiExfShvLGksdSxhKSYmKGk9bnVsbCksYXx8bnVsbD09PXU/ZnVuY3Rpb24gb2Eocyl7cmV0dXJuISFDLmNhbGwoQixzKXx8IUMuY2FsbChMLHMpJiYoai50ZXN0KHMpP0Jbc109ITA6KExbc109ITAsITEpKX0obykmJihudWxsPT09aT9zLnJlbW92ZUF0dHJpYnV0ZShvKTpzLnNldEF0dHJpYnV0ZShvLCIiK2kpKTp1Lm11c3RVc2VQcm9wZXJ0eT9zW3UucHJvcGVydHlOYW1lXT1udWxsPT09aT8zIT09dS50eXBlJiYiIjppOihvPXUuYXR0cmlidXRlTmFtZSxhPXUuYXR0cmlidXRlTmFtZXNwYWNlLG51bGw9PT1pP3MucmVtb3ZlQXR0cmlidXRlKG8pOihpPTM9PT0odT11LnR5cGUpfHw0PT09dSYmITA9PT1pPyIiOiIiK2ksYT9zLnNldEF0dHJpYnV0ZU5TKGEsbyxpKTpzLnNldEF0dHJpYnV0ZShvLGkpKSkpfSJhY2NlbnQtaGVpZ2h0IGFsaWdubWVudC1iYXNlbGluZSBhcmFiaWMtZm9ybSBiYXNlbGluZS1zaGlmdCBjYXAtaGVpZ2h0IGNsaXAtcGF0aCBjbGlwLXJ1bGUgY29sb3ItaW50ZXJwb2xhdGlvbiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMgY29sb3ItcHJvZmlsZSBjb2xvci1yZW5kZXJpbmcgZG9taW5hbnQtYmFzZWxpbmUgZW5hYmxlLWJhY2tncm91bmQgZmlsbC1vcGFjaXR5IGZpbGwtcnVsZSBmbG9vZC1jb2xvciBmbG9vZC1vcGFjaXR5IGZvbnQtZmFtaWx5IGZvbnQtc2l6ZSBmb250LXNpemUtYWRqdXN0IGZvbnQtc3RyZXRjaCBmb250LXN0eWxlIGZvbnQtdmFyaWFudCBmb250LXdlaWdodCBnbHlwaC1uYW1lIGdseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwgZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwgaG9yaXotYWR2LXggaG9yaXotb3JpZ2luLXggaW1hZ2UtcmVuZGVyaW5nIGxldHRlci1zcGFjaW5nIGxpZ2h0aW5nLWNvbG9yIG1hcmtlci1lbmQgbWFya2VyLW1pZCBtYXJrZXItc3RhcnQgb3ZlcmxpbmUtcG9zaXRpb24gb3ZlcmxpbmUtdGhpY2tuZXNzIHBhaW50LW9yZGVyIHBhbm9zZS0xIHBvaW50ZXItZXZlbnRzIHJlbmRlcmluZy1pbnRlbnQgc2hhcGUtcmVuZGVyaW5nIHN0b3AtY29sb3Igc3RvcC1vcGFjaXR5IHN0cmlrZXRocm91Z2gtcG9zaXRpb24gc3RyaWtldGhyb3VnaC10aGlja25lc3Mgc3Ryb2tlLWRhc2hhcnJheSBzdHJva2UtZGFzaG9mZnNldCBzdHJva2UtbGluZWNhcCBzdHJva2UtbGluZWpvaW4gc3Ryb2tlLW1pdGVybGltaXQgc3Ryb2tlLW9wYWNpdHkgc3Ryb2tlLXdpZHRoIHRleHQtYW5jaG9yIHRleHQtZGVjb3JhdGlvbiB0ZXh0LXJlbmRlcmluZyB1bmRlcmxpbmUtcG9zaXRpb24gdW5kZXJsaW5lLXRoaWNrbmVzcyB1bmljb2RlLWJpZGkgdW5pY29kZS1yYW5nZSB1bml0cy1wZXItZW0gdi1hbHBoYWJldGljIHYtaGFuZ2luZyB2LWlkZW9ncmFwaGljIHYtbWF0aGVtYXRpY2FsIHZlY3Rvci1lZmZlY3QgdmVydC1hZHYteSB2ZXJ0LW9yaWdpbi14IHZlcnQtb3JpZ2luLXkgd29yZC1zcGFjaW5nIHdyaXRpbmctbW9kZSB4bWxuczp4bGluayB4LWhlaWdodCIuc3BsaXQoIiAiKS5mb3JFYWNoKChmdW5jdGlvbihzKXt2YXIgbz1zLnJlcGxhY2UoVixzYSk7JFtvXT1uZXcgdihvLDEsITEscyxudWxsLCExLCExKX0pKSwieGxpbms6YWN0dWF0ZSB4bGluazphcmNyb2xlIHhsaW5rOnJvbGUgeGxpbms6c2hvdyB4bGluazp0aXRsZSB4bGluazp0eXBlIi5zcGxpdCgiICIpLmZvckVhY2goKGZ1bmN0aW9uKHMpe3ZhciBvPXMucmVwbGFjZShWLHNhKTskW29dPW5ldyB2KG8sMSwhMSxzLCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwhMSwhMSl9KSksWyJ4bWw6YmFzZSIsInhtbDpsYW5nIiwieG1sOnNwYWNlIl0uZm9yRWFjaCgoZnVuY3Rpb24ocyl7dmFyIG89cy5yZXBsYWNlKFYsc2EpOyRbb109bmV3IHYobywxLCExLHMsImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsITEsITEpfSkpLFsidGFiSW5kZXgiLCJjcm9zc09yaWdpbiJdLmZvckVhY2goKGZ1bmN0aW9uKHMpeyRbc109bmV3IHYocywxLCExLHMudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pKSwkLnhsaW5rSHJlZj1uZXcgdigieGxpbmtIcmVmIiwxLCExLCJ4bGluazpocmVmIiwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsITAsITEpLFsic3JjIiwiaHJlZiIsImFjdGlvbiIsImZvcm1BY3Rpb24iXS5mb3JFYWNoKChmdW5jdGlvbihzKXskW3NdPW5ldyB2KHMsMSwhMSxzLnRvTG93ZXJDYXNlKCksbnVsbCwhMCwhMCl9KSk7dmFyIFU9YS5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCx6PVN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKSxZPVN5bWJvbC5mb3IoInJlYWN0LnBvcnRhbCIpLFo9U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKSxlZT1TeW1ib2wuZm9yKCJyZWFjdC5zdHJpY3RfbW9kZSIpLGllPVN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIiksYWU9U3ltYm9sLmZvcigicmVhY3QucHJvdmlkZXIiKSxjZT1TeW1ib2wuZm9yKCJyZWFjdC5jb250ZXh0IiksbGU9U3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKSxwZT1TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZSIpLGRlPVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlX2xpc3QiKSxmZT1TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIikseWU9U3ltYm9sLmZvcigicmVhY3QubGF6eSIpO1N5bWJvbC5mb3IoInJlYWN0LnNjb3BlIiksU3ltYm9sLmZvcigicmVhY3QuZGVidWdfdHJhY2VfbW9kZSIpO3ZhciBiZT1TeW1ib2wuZm9yKCJyZWFjdC5vZmZzY3JlZW4iKTtTeW1ib2wuZm9yKCJyZWFjdC5sZWdhY3lfaGlkZGVuIiksU3ltYm9sLmZvcigicmVhY3QuY2FjaGUiKSxTeW1ib2wuZm9yKCJyZWFjdC50cmFjaW5nX21hcmtlciIpO3ZhciBfZT1TeW1ib2wuaXRlcmF0b3I7ZnVuY3Rpb24gS2Eocyl7cmV0dXJuIG51bGw9PT1zfHwib2JqZWN0IiE9dHlwZW9mIHM/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2Yocz1fZSYmc1tfZV18fHNbIkBAaXRlcmF0b3IiXSk/czpudWxsfXZhciBTZSx3ZT1PYmplY3QuYXNzaWduO2Z1bmN0aW9uIE1hKHMpe2lmKHZvaWQgMD09PVNlKXRyeXt0aHJvdyBFcnJvcigpfWNhdGNoKHMpe3ZhciBvPXMuc3RhY2sudHJpbSgpLm1hdGNoKC9cbiggKihhdCApPykvKTtTZT1vJiZvWzFdfHwiIn1yZXR1cm4iXG4iK1NlK3N9dmFyIHhlPSExO2Z1bmN0aW9uIE9hKHMsbyl7aWYoIXN8fHhlKXJldHVybiIiO3hlPSEwO3ZhciBpPUVycm9yLnByZXBhcmVTdGFja1RyYWNlO0Vycm9yLnByZXBhcmVTdGFja1RyYWNlPXZvaWQgMDt0cnl7aWYobylpZihvPWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KG8ucHJvdG90eXBlLCJwcm9wcyIse3NldDpmdW5jdGlvbigpe3Rocm93IEVycm9yKCl9fSksIm9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmNvbnN0cnVjdCl7dHJ5e1JlZmxlY3QuY29uc3RydWN0KG8sW10pfWNhdGNoKHMpe3ZhciBhPXN9UmVmbGVjdC5jb25zdHJ1Y3QocyxbXSxvKX1lbHNle3RyeXtvLmNhbGwoKX1jYXRjaChzKXthPXN9cy5jYWxsKG8ucHJvdG90eXBlKX1lbHNle3RyeXt0aHJvdyBFcnJvcigpfWNhdGNoKHMpe2E9c31zKCl9fWNhdGNoKG8pe2lmKG8mJmEmJiJzdHJpbmciPT10eXBlb2Ygby5zdGFjayl7Zm9yKHZhciB1PW8uc3RhY2suc3BsaXQoIlxuIiksXz1hLnN0YWNrLnNwbGl0KCJcbiIpLHc9dS5sZW5ndGgtMSx4PV8ubGVuZ3RoLTE7MTw9dyYmMDw9eCYmdVt3XSE9PV9beF07KXgtLTtmb3IoOzE8PXcmJjA8PXg7dy0tLHgtLSlpZih1W3ddIT09X1t4XSl7aWYoMSE9PXd8fDEhPT14KWRve2lmKHctLSwwPi0teHx8dVt3XSE9PV9beF0pe3ZhciBDPSJcbiIrdVt3XS5yZXBsYWNlKCIgYXQgbmV3ICIsIiBhdCAiKTtyZXR1cm4gcy5kaXNwbGF5TmFtZSYmQy5pbmNsdWRlcygiPGFub255bW91cz4iKSYmKEM9Qy5yZXBsYWNlKCI8YW5vbnltb3VzPiIscy5kaXNwbGF5TmFtZSkpLEN9fXdoaWxlKDE8PXcmJjA8PXgpO2JyZWFrfX19ZmluYWxseXt4ZT0hMSxFcnJvci5wcmVwYXJlU3RhY2tUcmFjZT1pfXJldHVybihzPXM/cy5kaXNwbGF5TmFtZXx8cy5uYW1lOiIiKT9NYShzKToiIn1mdW5jdGlvbiBQYShzKXtzd2l0Y2gocy50YWcpe2Nhc2UgNTpyZXR1cm4gTWEocy50eXBlKTtjYXNlIDE2OnJldHVybiBNYSgiTGF6eSIpO2Nhc2UgMTM6cmV0dXJuIE1hKCJTdXNwZW5zZSIpO2Nhc2UgMTk6cmV0dXJuIE1hKCJTdXNwZW5zZUxpc3QiKTtjYXNlIDA6Y2FzZSAyOmNhc2UgMTU6cmV0dXJuIHM9T2Eocy50eXBlLCExKTtjYXNlIDExOnJldHVybiBzPU9hKHMudHlwZS5yZW5kZXIsITEpO2Nhc2UgMTpyZXR1cm4gcz1PYShzLnR5cGUsITApO2RlZmF1bHQ6cmV0dXJuIiJ9fWZ1bmN0aW9uIFFhKHMpe2lmKG51bGw9PXMpcmV0dXJuIG51bGw7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHMpcmV0dXJuIHMuZGlzcGxheU5hbWV8fHMubmFtZXx8bnVsbDtpZigic3RyaW5nIj09dHlwZW9mIHMpcmV0dXJuIHM7c3dpdGNoKHMpe2Nhc2UgWjpyZXR1cm4iRnJhZ21lbnQiO2Nhc2UgWTpyZXR1cm4iUG9ydGFsIjtjYXNlIGllOnJldHVybiJQcm9maWxlciI7Y2FzZSBlZTpyZXR1cm4iU3RyaWN0TW9kZSI7Y2FzZSBwZTpyZXR1cm4iU3VzcGVuc2UiO2Nhc2UgZGU6cmV0dXJuIlN1c3BlbnNlTGlzdCJ9aWYoIm9iamVjdCI9PXR5cGVvZiBzKXN3aXRjaChzLiQkdHlwZW9mKXtjYXNlIGNlOnJldHVybihzLmRpc3BsYXlOYW1lfHwiQ29udGV4dCIpKyIuQ29uc3VtZXIiO2Nhc2UgYWU6cmV0dXJuKHMuX2NvbnRleHQuZGlzcGxheU5hbWV8fCJDb250ZXh0IikrIi5Qcm92aWRlciI7Y2FzZSBsZTp2YXIgbz1zLnJlbmRlcjtyZXR1cm4ocz1zLmRpc3BsYXlOYW1lKXx8KHM9IiIhPT0ocz1vLmRpc3BsYXlOYW1lfHxvLm5hbWV8fCIiKT8iRm9yd2FyZFJlZigiK3MrIikiOiJGb3J3YXJkUmVmIikscztjYXNlIGZlOnJldHVybiBudWxsIT09KG89cy5kaXNwbGF5TmFtZXx8bnVsbCk/bzpRYShzLnR5cGUpfHwiTWVtbyI7Y2FzZSB5ZTpvPXMuX3BheWxvYWQscz1zLl9pbml0O3RyeXtyZXR1cm4gUWEocyhvKSl9Y2F0Y2gocyl7fX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBSYShzKXt2YXIgbz1zLnR5cGU7c3dpdGNoKHMudGFnKXtjYXNlIDI0OnJldHVybiJDYWNoZSI7Y2FzZSA5OnJldHVybihvLmRpc3BsYXlOYW1lfHwiQ29udGV4dCIpKyIuQ29uc3VtZXIiO2Nhc2UgMTA6cmV0dXJuKG8uX2NvbnRleHQuZGlzcGxheU5hbWV8fCJDb250ZXh0IikrIi5Qcm92aWRlciI7Y2FzZSAxODpyZXR1cm4iRGVoeWRyYXRlZEZyYWdtZW50IjtjYXNlIDExOnJldHVybiBzPShzPW8ucmVuZGVyKS5kaXNwbGF5TmFtZXx8cy5uYW1lfHwiIixvLmRpc3BsYXlOYW1lfHwoIiIhPT1zPyJGb3J3YXJkUmVmKCIrcysiKSI6IkZvcndhcmRSZWYiKTtjYXNlIDc6cmV0dXJuIkZyYWdtZW50IjtjYXNlIDU6cmV0dXJuIG87Y2FzZSA0OnJldHVybiJQb3J0YWwiO2Nhc2UgMzpyZXR1cm4iUm9vdCI7Y2FzZSA2OnJldHVybiJUZXh0IjtjYXNlIDE2OnJldHVybiBRYShvKTtjYXNlIDg6cmV0dXJuIG89PT1lZT8iU3RyaWN0TW9kZSI6Ik1vZGUiO2Nhc2UgMjI6cmV0dXJuIk9mZnNjcmVlbiI7Y2FzZSAxMjpyZXR1cm4iUHJvZmlsZXIiO2Nhc2UgMjE6cmV0dXJuIlNjb3BlIjtjYXNlIDEzOnJldHVybiJTdXNwZW5zZSI7Y2FzZSAxOTpyZXR1cm4iU3VzcGVuc2VMaXN0IjtjYXNlIDI1OnJldHVybiJUcmFjaW5nTWFya2VyIjtjYXNlIDE6Y2FzZSAwOmNhc2UgMTc6Y2FzZSAyOmNhc2UgMTQ6Y2FzZSAxNTppZigiZnVuY3Rpb24iPT10eXBlb2YgbylyZXR1cm4gby5kaXNwbGF5TmFtZXx8by5uYW1lfHxudWxsO2lmKCJzdHJpbmciPT10eXBlb2YgbylyZXR1cm4gb31yZXR1cm4gbnVsbH1mdW5jdGlvbiBTYShzKXtzd2l0Y2godHlwZW9mIHMpe2Nhc2UiYm9vbGVhbiI6Y2FzZSJudW1iZXIiOmNhc2Uic3RyaW5nIjpjYXNlInVuZGVmaW5lZCI6Y2FzZSJvYmplY3QiOnJldHVybiBzO2RlZmF1bHQ6cmV0dXJuIiJ9fWZ1bmN0aW9uIFRhKHMpe3ZhciBvPXMudHlwZTtyZXR1cm4ocz1zLm5vZGVOYW1lKSYmImlucHV0Ij09PXMudG9Mb3dlckNhc2UoKSYmKCJjaGVja2JveCI9PT1vfHwicmFkaW8iPT09byl9ZnVuY3Rpb24gVmEocyl7cy5fdmFsdWVUcmFja2VyfHwocy5fdmFsdWVUcmFja2VyPWZ1bmN0aW9uIFVhKHMpe3ZhciBvPVRhKHMpPyJjaGVja2VkIjoidmFsdWUiLGk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLmNvbnN0cnVjdG9yLnByb3RvdHlwZSxvKSxhPSIiK3Nbb107aWYoIXMuaGFzT3duUHJvcGVydHkobykmJnZvaWQgMCE9PWkmJiJmdW5jdGlvbiI9PXR5cGVvZiBpLmdldCYmImZ1bmN0aW9uIj09dHlwZW9mIGkuc2V0KXt2YXIgdT1pLmdldCxfPWkuc2V0O3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocyxvLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHUuY2FsbCh0aGlzKX0sc2V0OmZ1bmN0aW9uKHMpe2E9IiIrcyxfLmNhbGwodGhpcyxzKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkocyxvLHtlbnVtZXJhYmxlOmkuZW51bWVyYWJsZX0pLHtnZXRWYWx1ZTpmdW5jdGlvbigpe3JldHVybiBhfSxzZXRWYWx1ZTpmdW5jdGlvbihzKXthPSIiK3N9LHN0b3BUcmFja2luZzpmdW5jdGlvbigpe3MuX3ZhbHVlVHJhY2tlcj1udWxsLGRlbGV0ZSBzW29dfX19fShzKSl9ZnVuY3Rpb24gV2Eocyl7aWYoIXMpcmV0dXJuITE7dmFyIG89cy5fdmFsdWVUcmFja2VyO2lmKCFvKXJldHVybiEwO3ZhciBpPW8uZ2V0VmFsdWUoKSxhPSIiO3JldHVybiBzJiYoYT1UYShzKT9zLmNoZWNrZWQ/InRydWUiOiJmYWxzZSI6cy52YWx1ZSksKHM9YSkhPT1pJiYoby5zZXRWYWx1ZShzKSwhMCl9ZnVuY3Rpb24gWGEocyl7aWYodm9pZCAwPT09KHM9c3x8KCJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQ6dm9pZCAwKSkpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBzLmFjdGl2ZUVsZW1lbnR8fHMuYm9keX1jYXRjaChvKXtyZXR1cm4gcy5ib2R5fX1mdW5jdGlvbiBZYShzLG8pe3ZhciBpPW8uY2hlY2tlZDtyZXR1cm4gd2Uoe30sbyx7ZGVmYXVsdENoZWNrZWQ6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsdmFsdWU6dm9pZCAwLGNoZWNrZWQ6bnVsbCE9aT9pOnMuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZH0pfWZ1bmN0aW9uIFphKHMsbyl7dmFyIGk9bnVsbD09by5kZWZhdWx0VmFsdWU/IiI6by5kZWZhdWx0VmFsdWUsYT1udWxsIT1vLmNoZWNrZWQ/by5jaGVja2VkOm8uZGVmYXVsdENoZWNrZWQ7aT1TYShudWxsIT1vLnZhbHVlP28udmFsdWU6aSkscy5fd3JhcHBlclN0YXRlPXtpbml0aWFsQ2hlY2tlZDphLGluaXRpYWxWYWx1ZTppLGNvbnRyb2xsZWQ6ImNoZWNrYm94Ij09PW8udHlwZXx8InJhZGlvIj09PW8udHlwZT9udWxsIT1vLmNoZWNrZWQ6bnVsbCE9by52YWx1ZX19ZnVuY3Rpb24gYWIocyxvKXtudWxsIT0obz1vLmNoZWNrZWQpJiZ0YShzLCJjaGVja2VkIixvLCExKX1mdW5jdGlvbiBiYihzLG8pe2FiKHMsbyk7dmFyIGk9U2Eoby52YWx1ZSksYT1vLnR5cGU7aWYobnVsbCE9aSkibnVtYmVyIj09PWE/KDA9PT1pJiYiIj09PXMudmFsdWV8fHMudmFsdWUhPWkpJiYocy52YWx1ZT0iIitpKTpzLnZhbHVlIT09IiIraSYmKHMudmFsdWU9IiIraSk7ZWxzZSBpZigic3VibWl0Ij09PWF8fCJyZXNldCI9PT1hKXJldHVybiB2b2lkIHMucmVtb3ZlQXR0cmlidXRlKCJ2YWx1ZSIpO28uaGFzT3duUHJvcGVydHkoInZhbHVlIik/Y2IocyxvLnR5cGUsaSk6by5oYXNPd25Qcm9wZXJ0eSgiZGVmYXVsdFZhbHVlIikmJmNiKHMsby50eXBlLFNhKG8uZGVmYXVsdFZhbHVlKSksbnVsbD09by5jaGVja2VkJiZudWxsIT1vLmRlZmF1bHRDaGVja2VkJiYocy5kZWZhdWx0Q2hlY2tlZD0hIW8uZGVmYXVsdENoZWNrZWQpfWZ1bmN0aW9uIGRiKHMsbyxpKXtpZihvLmhhc093blByb3BlcnR5KCJ2YWx1ZSIpfHxvLmhhc093blByb3BlcnR5KCJkZWZhdWx0VmFsdWUiKSl7dmFyIGE9by50eXBlO2lmKCEoInN1Ym1pdCIhPT1hJiYicmVzZXQiIT09YXx8dm9pZCAwIT09by52YWx1ZSYmbnVsbCE9PW8udmFsdWUpKXJldHVybjtvPSIiK3MuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUsaXx8bz09PXMudmFsdWV8fChzLnZhbHVlPW8pLHMuZGVmYXVsdFZhbHVlPW99IiIhPT0oaT1zLm5hbWUpJiYocy5uYW1lPSIiKSxzLmRlZmF1bHRDaGVja2VkPSEhcy5fd3JhcHBlclN0YXRlLmluaXRpYWxDaGVja2VkLCIiIT09aSYmKHMubmFtZT1pKX1mdW5jdGlvbiBjYihzLG8saSl7Im51bWJlciI9PT1vJiZYYShzLm93bmVyRG9jdW1lbnQpPT09c3x8KG51bGw9PWk/cy5kZWZhdWx0VmFsdWU9IiIrcy5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZTpzLmRlZmF1bHRWYWx1ZSE9PSIiK2kmJihzLmRlZmF1bHRWYWx1ZT0iIitpKSl9dmFyIFBlPUFycmF5LmlzQXJyYXk7ZnVuY3Rpb24gZmIocyxvLGksYSl7aWYocz1zLm9wdGlvbnMsbyl7bz17fTtmb3IodmFyIHU9MDt1PGkubGVuZ3RoO3UrKylvWyIkIitpW3VdXT0hMDtmb3IoaT0wO2k8cy5sZW5ndGg7aSsrKXU9by5oYXNPd25Qcm9wZXJ0eSgiJCIrc1tpXS52YWx1ZSksc1tpXS5zZWxlY3RlZCE9PXUmJihzW2ldLnNlbGVjdGVkPXUpLHUmJmEmJihzW2ldLmRlZmF1bHRTZWxlY3RlZD0hMCl9ZWxzZXtmb3IoaT0iIitTYShpKSxvPW51bGwsdT0wO3U8cy5sZW5ndGg7dSsrKXtpZihzW3VdLnZhbHVlPT09aSlyZXR1cm4gc1t1XS5zZWxlY3RlZD0hMCx2b2lkKGEmJihzW3VdLmRlZmF1bHRTZWxlY3RlZD0hMCkpO251bGwhPT1vfHxzW3VdLmRpc2FibGVkfHwobz1zW3VdKX1udWxsIT09byYmKG8uc2VsZWN0ZWQ9ITApfX1mdW5jdGlvbiBnYihzLG8pe2lmKG51bGwhPW8uZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpdGhyb3cgRXJyb3IocCg5MSkpO3JldHVybiB3ZSh7fSxvLHt2YWx1ZTp2b2lkIDAsZGVmYXVsdFZhbHVlOnZvaWQgMCxjaGlsZHJlbjoiIitzLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlfSl9ZnVuY3Rpb24gaGIocyxvKXt2YXIgaT1vLnZhbHVlO2lmKG51bGw9PWkpe2lmKGk9by5jaGlsZHJlbixvPW8uZGVmYXVsdFZhbHVlLG51bGwhPWkpe2lmKG51bGwhPW8pdGhyb3cgRXJyb3IocCg5MikpO2lmKFBlKGkpKXtpZigxPGkubGVuZ3RoKXRocm93IEVycm9yKHAoOTMpKTtpPWlbMF19bz1pfW51bGw9PW8mJihvPSIiKSxpPW99cy5fd3JhcHBlclN0YXRlPXtpbml0aWFsVmFsdWU6U2EoaSl9fWZ1bmN0aW9uIGliKHMsbyl7dmFyIGk9U2Eoby52YWx1ZSksYT1TYShvLmRlZmF1bHRWYWx1ZSk7bnVsbCE9aSYmKChpPSIiK2kpIT09cy52YWx1ZSYmKHMudmFsdWU9aSksbnVsbD09by5kZWZhdWx0VmFsdWUmJnMuZGVmYXVsdFZhbHVlIT09aSYmKHMuZGVmYXVsdFZhbHVlPWkpKSxudWxsIT1hJiYocy5kZWZhdWx0VmFsdWU9IiIrYSl9ZnVuY3Rpb24gamIocyl7dmFyIG89cy50ZXh0Q29udGVudDtvPT09cy5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSYmIiIhPT1vJiZudWxsIT09byYmKHMudmFsdWU9byl9ZnVuY3Rpb24ga2Iocyl7c3dpdGNoKHMpe2Nhc2Uic3ZnIjpyZXR1cm4iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciO2Nhc2UibWF0aCI6cmV0dXJuImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiO2RlZmF1bHQ6cmV0dXJuImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwifX1mdW5jdGlvbiBsYihzLG8pe3JldHVybiBudWxsPT1zfHwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI9PT1zP2tiKG8pOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI9PT1zJiYiZm9yZWlnbk9iamVjdCI9PT1vPyJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIjpzfXZhciBUZSxSZSwkZT0oUmU9ZnVuY3Rpb24ocyxvKXtpZigiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIT09cy5uYW1lc3BhY2VVUkl8fCJpbm5lckhUTUwiaW4gcylzLmlubmVySFRNTD1vO2Vsc2V7Zm9yKChUZT1UZXx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmlubmVySFRNTD0iPHN2Zz4iK28udmFsdWVPZigpLnRvU3RyaW5nKCkrIjwvc3ZnPiIsbz1UZS5maXJzdENoaWxkO3MuZmlyc3RDaGlsZDspcy5yZW1vdmVDaGlsZChzLmZpcnN0Q2hpbGQpO2Zvcig7by5maXJzdENoaWxkOylzLmFwcGVuZENoaWxkKG8uZmlyc3RDaGlsZCl9fSwidW5kZWZpbmVkIiE9dHlwZW9mIE1TQXBwJiZNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbj9mdW5jdGlvbihzLG8saSxhKXtNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbigoZnVuY3Rpb24oKXtyZXR1cm4gUmUocyxvKX0pKX06UmUpO2Z1bmN0aW9uIG9iKHMsbyl7aWYobyl7dmFyIGk9cy5maXJzdENoaWxkO2lmKGkmJmk9PT1zLmxhc3RDaGlsZCYmMz09PWkubm9kZVR5cGUpcmV0dXJuIHZvaWQoaS5ub2RlVmFsdWU9byl9cy50ZXh0Q29udGVudD1vfXZhciBxZT17YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsYXNwZWN0UmF0aW86ITAsYm9yZGVySW1hZ2VPdXRzZXQ6ITAsYm9yZGVySW1hZ2VTbGljZTohMCxib3JkZXJJbWFnZVdpZHRoOiEwLGJveEZsZXg6ITAsYm94RmxleEdyb3VwOiEwLGJveE9yZGluYWxHcm91cDohMCxjb2x1bW5Db3VudDohMCxjb2x1bW5zOiEwLGZsZXg6ITAsZmxleEdyb3c6ITAsZmxleFBvc2l0aXZlOiEwLGZsZXhTaHJpbms6ITAsZmxleE5lZ2F0aXZlOiEwLGZsZXhPcmRlcjohMCxncmlkQXJlYTohMCxncmlkUm93OiEwLGdyaWRSb3dFbmQ6ITAsZ3JpZFJvd1NwYW46ITAsZ3JpZFJvd1N0YXJ0OiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3BhbjohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZm9udFdlaWdodDohMCxsaW5lQ2xhbXA6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsdGFiU2l6ZTohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITAsZmlsbE9wYWNpdHk6ITAsZmxvb2RPcGFjaXR5OiEwLHN0b3BPcGFjaXR5OiEwLHN0cm9rZURhc2hhcnJheTohMCxzdHJva2VEYXNob2Zmc2V0OiEwLHN0cm9rZU1pdGVybGltaXQ6ITAsc3Ryb2tlT3BhY2l0eTohMCxzdHJva2VXaWR0aDohMH0semU9WyJXZWJraXQiLCJtcyIsIk1veiIsIk8iXTtmdW5jdGlvbiByYihzLG8saSl7cmV0dXJuIG51bGw9PW98fCJib29sZWFuIj09dHlwZW9mIG98fCIiPT09bz8iIjppfHwibnVtYmVyIiE9dHlwZW9mIG98fDA9PT1vfHxxZS5oYXNPd25Qcm9wZXJ0eShzKSYmcWVbc10/KCIiK28pLnRyaW0oKTpvKyJweCJ9ZnVuY3Rpb24gc2IocyxvKXtmb3IodmFyIGkgaW4gcz1zLnN0eWxlLG8paWYoby5oYXNPd25Qcm9wZXJ0eShpKSl7dmFyIGE9MD09PWkuaW5kZXhPZigiLS0iKSx1PXJiKGksb1tpXSxhKTsiZmxvYXQiPT09aSYmKGk9ImNzc0Zsb2F0IiksYT9zLnNldFByb3BlcnR5KGksdSk6c1tpXT11fX1PYmplY3Qua2V5cyhxZSkuZm9yRWFjaCgoZnVuY3Rpb24ocyl7emUuZm9yRWFjaCgoZnVuY3Rpb24obyl7bz1vK3MuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrcy5zdWJzdHJpbmcoMSkscWVbb109cWVbc119KSl9KSk7dmFyIFdlPXdlKHttZW51aXRlbTohMH0se2FyZWE6ITAsYmFzZTohMCxicjohMCxjb2w6ITAsZW1iZWQ6ITAsaHI6ITAsaW1nOiEwLGlucHV0OiEwLGtleWdlbjohMCxsaW5rOiEwLG1ldGE6ITAscGFyYW06ITAsc291cmNlOiEwLHRyYWNrOiEwLHdicjohMH0pO2Z1bmN0aW9uIHViKHMsbyl7aWYobyl7aWYoV2Vbc10mJihudWxsIT1vLmNoaWxkcmVufHxudWxsIT1vLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSl0aHJvdyBFcnJvcihwKDEzNyxzKSk7aWYobnVsbCE9by5kYW5nZXJvdXNseVNldElubmVySFRNTCl7aWYobnVsbCE9by5jaGlsZHJlbil0aHJvdyBFcnJvcihwKDYwKSk7aWYoIm9iamVjdCIhPXR5cGVvZiBvLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MfHwhKCJfX2h0bWwiaW4gby5kYW5nZXJvdXNseVNldElubmVySFRNTCkpdGhyb3cgRXJyb3IocCg2MSkpfWlmKG51bGwhPW8uc3R5bGUmJiJvYmplY3QiIT10eXBlb2Ygby5zdHlsZSl0aHJvdyBFcnJvcihwKDYyKSl9fWZ1bmN0aW9uIHZiKHMsbyl7aWYoLTE9PT1zLmluZGV4T2YoIi0iKSlyZXR1cm4ic3RyaW5nIj09dHlwZW9mIG8uaXM7c3dpdGNoKHMpe2Nhc2UiYW5ub3RhdGlvbi14bWwiOmNhc2UiY29sb3ItcHJvZmlsZSI6Y2FzZSJmb250LWZhY2UiOmNhc2UiZm9udC1mYWNlLXNyYyI6Y2FzZSJmb250LWZhY2UtdXJpIjpjYXNlImZvbnQtZmFjZS1mb3JtYXQiOmNhc2UiZm9udC1mYWNlLW5hbWUiOmNhc2UibWlzc2luZy1nbHlwaCI6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19dmFyIEhlPW51bGw7ZnVuY3Rpb24geGIocyl7cmV0dXJuKHM9cy50YXJnZXR8fHMuc3JjRWxlbWVudHx8d2luZG93KS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCYmKHM9cy5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCksMz09PXMubm9kZVR5cGU/cy5wYXJlbnROb2RlOnN9dmFyIFllPW51bGwsWGU9bnVsbCxRZT1udWxsO2Z1bmN0aW9uIEJiKHMpe2lmKHM9Q2Iocykpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBZZSl0aHJvdyBFcnJvcihwKDI4MCkpO3ZhciBvPXMuc3RhdGVOb2RlO28mJihvPURiKG8pLFllKHMuc3RhdGVOb2RlLHMudHlwZSxvKSl9fWZ1bmN0aW9uIEViKHMpe1hlP1FlP1FlLnB1c2gocyk6UWU9W3NdOlhlPXN9ZnVuY3Rpb24gRmIoKXtpZihYZSl7dmFyIHM9WGUsbz1RZTtpZihRZT1YZT1udWxsLEJiKHMpLG8pZm9yKHM9MDtzPG8ubGVuZ3RoO3MrKylCYihvW3NdKX19ZnVuY3Rpb24gR2IocyxvKXtyZXR1cm4gcyhvKX1mdW5jdGlvbiBIYigpe312YXIgZXQ9ITE7ZnVuY3Rpb24gSmIocyxvLGkpe2lmKGV0KXJldHVybiBzKG8saSk7ZXQ9ITA7dHJ5e3JldHVybiBHYihzLG8saSl9ZmluYWxseXtldD0hMSwobnVsbCE9PVhlfHxudWxsIT09UWUpJiYoSGIoKSxGYigpKX19ZnVuY3Rpb24gS2IocyxvKXt2YXIgaT1zLnN0YXRlTm9kZTtpZihudWxsPT09aSlyZXR1cm4gbnVsbDt2YXIgYT1EYihpKTtpZihudWxsPT09YSlyZXR1cm4gbnVsbDtpPWFbb107ZTpzd2l0Y2gobyl7Y2FzZSJvbkNsaWNrIjpjYXNlIm9uQ2xpY2tDYXB0dXJlIjpjYXNlIm9uRG91YmxlQ2xpY2siOmNhc2Uib25Eb3VibGVDbGlja0NhcHR1cmUiOmNhc2Uib25Nb3VzZURvd24iOmNhc2Uib25Nb3VzZURvd25DYXB0dXJlIjpjYXNlIm9uTW91c2VNb3ZlIjpjYXNlIm9uTW91c2VNb3ZlQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlVXAiOmNhc2Uib25Nb3VzZVVwQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlRW50ZXIiOihhPSFhLmRpc2FibGVkKXx8KGE9ISgiYnV0dG9uIj09PShzPXMudHlwZSl8fCJpbnB1dCI9PT1zfHwic2VsZWN0Ij09PXN8fCJ0ZXh0YXJlYSI9PT1zKSkscz0hYTticmVhayBlO2RlZmF1bHQ6cz0hMX1pZihzKXJldHVybiBudWxsO2lmKGkmJiJmdW5jdGlvbiIhPXR5cGVvZiBpKXRocm93IEVycm9yKHAoMjMxLG8sdHlwZW9mIGkpKTtyZXR1cm4gaX12YXIgdHQ9ITE7aWYoeCl0cnl7dmFyIHJ0PXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShydCwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe3R0PSEwfX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixydCxydCksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLHJ0LHJ0KX1jYXRjaChSZSl7dHQ9ITF9ZnVuY3Rpb24gTmIocyxvLGksYSx1LF8sdyx4LEMpe3ZhciBqPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywzKTt0cnl7by5hcHBseShpLGopfWNhdGNoKHMpe3RoaXMub25FcnJvcihzKX19dmFyIG50PSExLHN0PW51bGwsb3Q9ITEsaXQ9bnVsbCxhdD17b25FcnJvcjpmdW5jdGlvbihzKXtudD0hMCxzdD1zfX07ZnVuY3Rpb24gVGIocyxvLGksYSx1LF8sdyx4LEMpe250PSExLHN0PW51bGwsTmIuYXBwbHkoYXQsYXJndW1lbnRzKX1mdW5jdGlvbiBWYihzKXt2YXIgbz1zLGk9cztpZihzLmFsdGVybmF0ZSlmb3IoO28ucmV0dXJuOylvPW8ucmV0dXJuO2Vsc2V7cz1vO2RveyEhKDQwOTgmKG89cykuZmxhZ3MpJiYoaT1vLnJldHVybikscz1vLnJldHVybn13aGlsZShzKX1yZXR1cm4gMz09PW8udGFnP2k6bnVsbH1mdW5jdGlvbiBXYihzKXtpZigxMz09PXMudGFnKXt2YXIgbz1zLm1lbW9pemVkU3RhdGU7aWYobnVsbD09PW8mJihudWxsIT09KHM9cy5hbHRlcm5hdGUpJiYobz1zLm1lbW9pemVkU3RhdGUpKSxudWxsIT09bylyZXR1cm4gby5kZWh5ZHJhdGVkfXJldHVybiBudWxsfWZ1bmN0aW9uIFhiKHMpe2lmKFZiKHMpIT09cyl0aHJvdyBFcnJvcihwKDE4OCkpfWZ1bmN0aW9uIFpiKHMpe3JldHVybiBudWxsIT09KHM9ZnVuY3Rpb24gWWIocyl7dmFyIG89cy5hbHRlcm5hdGU7aWYoIW8pe2lmKG51bGw9PT0obz1WYihzKSkpdGhyb3cgRXJyb3IocCgxODgpKTtyZXR1cm4gbyE9PXM/bnVsbDpzfWZvcih2YXIgaT1zLGE9bzs7KXt2YXIgdT1pLnJldHVybjtpZihudWxsPT09dSlicmVhazt2YXIgXz11LmFsdGVybmF0ZTtpZihudWxsPT09Xyl7aWYobnVsbCE9PShhPXUucmV0dXJuKSl7aT1hO2NvbnRpbnVlfWJyZWFrfWlmKHUuY2hpbGQ9PT1fLmNoaWxkKXtmb3IoXz11LmNoaWxkO187KXtpZihfPT09aSlyZXR1cm4gWGIodSkscztpZihfPT09YSlyZXR1cm4gWGIodSksbztfPV8uc2libGluZ310aHJvdyBFcnJvcihwKDE4OCkpfWlmKGkucmV0dXJuIT09YS5yZXR1cm4paT11LGE9XztlbHNle2Zvcih2YXIgdz0hMSx4PXUuY2hpbGQ7eDspe2lmKHg9PT1pKXt3PSEwLGk9dSxhPV87YnJlYWt9aWYoeD09PWEpe3c9ITAsYT11LGk9XzticmVha314PXguc2libGluZ31pZighdyl7Zm9yKHg9Xy5jaGlsZDt4Oyl7aWYoeD09PWkpe3c9ITAsaT1fLGE9dTticmVha31pZih4PT09YSl7dz0hMCxhPV8saT11O2JyZWFrfXg9eC5zaWJsaW5nfWlmKCF3KXRocm93IEVycm9yKHAoMTg5KSl9fWlmKGkuYWx0ZXJuYXRlIT09YSl0aHJvdyBFcnJvcihwKDE5MCkpfWlmKDMhPT1pLnRhZyl0aHJvdyBFcnJvcihwKDE4OCkpO3JldHVybiBpLnN0YXRlTm9kZS5jdXJyZW50PT09aT9zOm99KHMpKT8kYihzKTpudWxsfWZ1bmN0aW9uICRiKHMpe2lmKDU9PT1zLnRhZ3x8Nj09PXMudGFnKXJldHVybiBzO2ZvcihzPXMuY2hpbGQ7bnVsbCE9PXM7KXt2YXIgbz0kYihzKTtpZihudWxsIT09bylyZXR1cm4gbztzPXMuc2libGluZ31yZXR1cm4gbnVsbH12YXIgY3Q9dS51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrLGx0PXUudW5zdGFibGVfY2FuY2VsQ2FsbGJhY2ssdXQ9dS51bnN0YWJsZV9zaG91bGRZaWVsZCxwdD11LnVuc3RhYmxlX3JlcXVlc3RQYWludCxodD11LnVuc3RhYmxlX25vdyxkdD11LnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsLG10PXUudW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHksZ3Q9dS51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eSx5dD11LnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LHZ0PXUudW5zdGFibGVfTG93UHJpb3JpdHksYnQ9dS51bnN0YWJsZV9JZGxlUHJpb3JpdHksX3Q9bnVsbCxTdD1udWxsO3ZhciBFdD1NYXRoLmNsejMyP01hdGguY2x6MzI6ZnVuY3Rpb24gbmMocyl7cmV0dXJuIHM+Pj49MCwwPT09cz8zMjozMS0od3QocykveHR8MCl8MH0sd3Q9TWF0aC5sb2cseHQ9TWF0aC5MTjI7dmFyIGt0PTY0LE90PTQxOTQzMDQ7ZnVuY3Rpb24gdGMocyl7c3dpdGNoKHMmLXMpe2Nhc2UgMTpyZXR1cm4gMTtjYXNlIDI6cmV0dXJuIDI7Y2FzZSA0OnJldHVybiA0O2Nhc2UgODpyZXR1cm4gODtjYXNlIDE2OnJldHVybiAxNjtjYXNlIDMyOnJldHVybiAzMjtjYXNlIDY0OmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOnJldHVybiA0MTk0MjQwJnM7Y2FzZSA0MTk0MzA0OmNhc2UgODM4ODYwODpjYXNlIDE2Nzc3MjE2OmNhc2UgMzM1NTQ0MzI6Y2FzZSA2NzEwODg2NDpyZXR1cm4gMTMwMDIzNDI0JnM7Y2FzZSAxMzQyMTc3Mjg6cmV0dXJuIDEzNDIxNzcyODtjYXNlIDI2ODQzNTQ1NjpyZXR1cm4gMjY4NDM1NDU2O2Nhc2UgNTM2ODcwOTEyOnJldHVybiA1MzY4NzA5MTI7Y2FzZSAxMDczNzQxODI0OnJldHVybiAxMDczNzQxODI0O2RlZmF1bHQ6cmV0dXJuIHN9fWZ1bmN0aW9uIHVjKHMsbyl7dmFyIGk9cy5wZW5kaW5nTGFuZXM7aWYoMD09PWkpcmV0dXJuIDA7dmFyIGE9MCx1PXMuc3VzcGVuZGVkTGFuZXMsXz1zLnBpbmdlZExhbmVzLHc9MjY4NDM1NDU1Jmk7aWYoMCE9PXcpe3ZhciB4PXcmfnU7MCE9PXg/YT10Yyh4KTowIT09KF8mPXcpJiYoYT10YyhfKSl9ZWxzZSAwIT09KHc9aSZ+dSk/YT10Yyh3KTowIT09XyYmKGE9dGMoXykpO2lmKDA9PT1hKXJldHVybiAwO2lmKDAhPT1vJiZvIT09YSYmIShvJnUpJiYoKHU9YSYtYSk+PShfPW8mLW8pfHwxNj09PXUmJjQxOTQyNDAmXykpcmV0dXJuIG87aWYoNCZhJiYoYXw9MTYmaSksMCE9PShvPXMuZW50YW5nbGVkTGFuZXMpKWZvcihzPXMuZW50YW5nbGVtZW50cyxvJj1hOzA8bzspdT0xPDwoaT0zMS1FdChvKSksYXw9c1tpXSxvJj1+dTtyZXR1cm4gYX1mdW5jdGlvbiB2YyhzLG8pe3N3aXRjaChzKXtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpyZXR1cm4gbysyNTA7Y2FzZSA4OmNhc2UgMTY6Y2FzZSAzMjpjYXNlIDY0OmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOnJldHVybiBvKzVlMztkZWZhdWx0OnJldHVybi0xfX1mdW5jdGlvbiB4YyhzKXtyZXR1cm4gMCE9PShzPS0xMDczNzQxODI1JnMucGVuZGluZ0xhbmVzKT9zOjEwNzM3NDE4MjQmcz8xMDczNzQxODI0OjB9ZnVuY3Rpb24geWMoKXt2YXIgcz1rdDtyZXR1cm4hKDQxOTQyNDAmKGt0PDw9MSkpJiYoa3Q9NjQpLHN9ZnVuY3Rpb24gemMocyl7Zm9yKHZhciBvPVtdLGk9MDszMT5pO2krKylvLnB1c2gocyk7cmV0dXJuIG99ZnVuY3Rpb24gQWMocyxvLGkpe3MucGVuZGluZ0xhbmVzfD1vLDUzNjg3MDkxMiE9PW8mJihzLnN1c3BlbmRlZExhbmVzPTAscy5waW5nZWRMYW5lcz0wKSwocz1zLmV2ZW50VGltZXMpW289MzEtRXQobyldPWl9ZnVuY3Rpb24gQ2MocyxvKXt2YXIgaT1zLmVudGFuZ2xlZExhbmVzfD1vO2ZvcihzPXMuZW50YW5nbGVtZW50cztpOyl7dmFyIGE9MzEtRXQoaSksdT0xPDxhO3Umb3xzW2FdJm8mJihzW2FdfD1vKSxpJj1+dX19dmFyIEN0PTA7ZnVuY3Rpb24gRGMocyl7cmV0dXJuIDE8KHMmPS1zKT80PHM/MjY4NDM1NDU1JnM/MTY6NTM2ODcwOTEyOjQ6MX12YXIgQXQsanQsSXQsUHQsVHQsTnQ9ITEsTXQ9W10sUnQ9bnVsbCxEdD1udWxsLEx0PW51bGwsRnQ9bmV3IE1hcCxCdD1uZXcgTWFwLCR0PVtdLHF0PSJtb3VzZWRvd24gbW91c2V1cCB0b3VjaGNhbmNlbCB0b3VjaGVuZCB0b3VjaHN0YXJ0IGF1eGNsaWNrIGRibGNsaWNrIHBvaW50ZXJjYW5jZWwgcG9pbnRlcmRvd24gcG9pbnRlcnVwIGRyYWdlbmQgZHJhZ3N0YXJ0IGRyb3AgY29tcG9zaXRpb25lbmQgY29tcG9zaXRpb25zdGFydCBrZXlkb3duIGtleXByZXNzIGtleXVwIGlucHV0IHRleHRJbnB1dCBjb3B5IGN1dCBwYXN0ZSBjbGljayBjaGFuZ2UgY29udGV4dG1lbnUgcmVzZXQgc3VibWl0Ii5zcGxpdCgiICIpO2Z1bmN0aW9uIFNjKHMsbyl7c3dpdGNoKHMpe2Nhc2UiZm9jdXNpbiI6Y2FzZSJmb2N1c291dCI6UnQ9bnVsbDticmVhaztjYXNlImRyYWdlbnRlciI6Y2FzZSJkcmFnbGVhdmUiOkR0PW51bGw7YnJlYWs7Y2FzZSJtb3VzZW92ZXIiOmNhc2UibW91c2VvdXQiOkx0PW51bGw7YnJlYWs7Y2FzZSJwb2ludGVyb3ZlciI6Y2FzZSJwb2ludGVyb3V0IjpGdC5kZWxldGUoby5wb2ludGVySWQpO2JyZWFrO2Nhc2UiZ290cG9pbnRlcmNhcHR1cmUiOmNhc2UibG9zdHBvaW50ZXJjYXB0dXJlIjpCdC5kZWxldGUoby5wb2ludGVySWQpfX1mdW5jdGlvbiBUYyhzLG8saSxhLHUsXyl7cmV0dXJuIG51bGw9PT1zfHxzLm5hdGl2ZUV2ZW50IT09Xz8ocz17YmxvY2tlZE9uOm8sZG9tRXZlbnROYW1lOmksZXZlbnRTeXN0ZW1GbGFnczphLG5hdGl2ZUV2ZW50Ol8sdGFyZ2V0Q29udGFpbmVyczpbdV19LG51bGwhPT1vJiYobnVsbCE9PShvPUNiKG8pKSYmanQobykpLHMpOihzLmV2ZW50U3lzdGVtRmxhZ3N8PWEsbz1zLnRhcmdldENvbnRhaW5lcnMsbnVsbCE9PXUmJi0xPT09by5pbmRleE9mKHUpJiZvLnB1c2godSkscyl9ZnVuY3Rpb24gVmMocyl7dmFyIG89V2Mocy50YXJnZXQpO2lmKG51bGwhPT1vKXt2YXIgaT1WYihvKTtpZihudWxsIT09aSlpZigxMz09PShvPWkudGFnKSl7aWYobnVsbCE9PShvPVdiKGkpKSlyZXR1cm4gcy5ibG9ja2VkT249byx2b2lkIFR0KHMucHJpb3JpdHksKGZ1bmN0aW9uKCl7SXQoaSl9KSl9ZWxzZSBpZigzPT09byYmaS5zdGF0ZU5vZGUuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZClyZXR1cm4gdm9pZChzLmJsb2NrZWRPbj0zPT09aS50YWc/aS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsKX1zLmJsb2NrZWRPbj1udWxsfWZ1bmN0aW9uIFhjKHMpe2lmKG51bGwhPT1zLmJsb2NrZWRPbilyZXR1cm4hMTtmb3IodmFyIG89cy50YXJnZXRDb250YWluZXJzOzA8by5sZW5ndGg7KXt2YXIgaT1ZYyhzLmRvbUV2ZW50TmFtZSxzLmV2ZW50U3lzdGVtRmxhZ3Msb1swXSxzLm5hdGl2ZUV2ZW50KTtpZihudWxsIT09aSlyZXR1cm4gbnVsbCE9PShvPUNiKGkpKSYmanQobykscy5ibG9ja2VkT249aSwhMTt2YXIgYT1uZXcoaT1zLm5hdGl2ZUV2ZW50KS5jb25zdHJ1Y3RvcihpLnR5cGUsaSk7SGU9YSxpLnRhcmdldC5kaXNwYXRjaEV2ZW50KGEpLEhlPW51bGwsby5zaGlmdCgpfXJldHVybiEwfWZ1bmN0aW9uIFpjKHMsbyxpKXtYYyhzKSYmaS5kZWxldGUobyl9ZnVuY3Rpb24gJGMoKXtOdD0hMSxudWxsIT09UnQmJlhjKFJ0KSYmKFJ0PW51bGwpLG51bGwhPT1EdCYmWGMoRHQpJiYoRHQ9bnVsbCksbnVsbCE9PUx0JiZYYyhMdCkmJihMdD1udWxsKSxGdC5mb3JFYWNoKFpjKSxCdC5mb3JFYWNoKFpjKX1mdW5jdGlvbiBhZChzLG8pe3MuYmxvY2tlZE9uPT09byYmKHMuYmxvY2tlZE9uPW51bGwsTnR8fChOdD0hMCx1LnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2sodS51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSwkYykpKX1mdW5jdGlvbiBiZChzKXtmdW5jdGlvbiBiKG8pe3JldHVybiBhZChvLHMpfWlmKDA8TXQubGVuZ3RoKXthZChNdFswXSxzKTtmb3IodmFyIG89MTtvPE10Lmxlbmd0aDtvKyspe3ZhciBpPU10W29dO2kuYmxvY2tlZE9uPT09cyYmKGkuYmxvY2tlZE9uPW51bGwpfX1mb3IobnVsbCE9PVJ0JiZhZChSdCxzKSxudWxsIT09RHQmJmFkKER0LHMpLG51bGwhPT1MdCYmYWQoTHQscyksRnQuZm9yRWFjaChiKSxCdC5mb3JFYWNoKGIpLG89MDtvPCR0Lmxlbmd0aDtvKyspKGk9JHRbb10pLmJsb2NrZWRPbj09PXMmJihpLmJsb2NrZWRPbj1udWxsKTtmb3IoOzA8JHQubGVuZ3RoJiZudWxsPT09KG89JHRbMF0pLmJsb2NrZWRPbjspVmMobyksbnVsbD09PW8uYmxvY2tlZE9uJiYkdC5zaGlmdCgpfXZhciBWdD1VLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLFV0PSEwO2Z1bmN0aW9uIGVkKHMsbyxpLGEpe3ZhciB1PUN0LF89VnQudHJhbnNpdGlvbjtWdC50cmFuc2l0aW9uPW51bGw7dHJ5e0N0PTEsZmQocyxvLGksYSl9ZmluYWxseXtDdD11LFZ0LnRyYW5zaXRpb249X319ZnVuY3Rpb24gZ2QocyxvLGksYSl7dmFyIHU9Q3QsXz1WdC50cmFuc2l0aW9uO1Z0LnRyYW5zaXRpb249bnVsbDt0cnl7Q3Q9NCxmZChzLG8saSxhKX1maW5hbGx5e0N0PXUsVnQudHJhbnNpdGlvbj1ffX1mdW5jdGlvbiBmZChzLG8saSxhKXtpZihVdCl7dmFyIHU9WWMocyxvLGksYSk7aWYobnVsbD09PXUpaGQocyxvLGEsenQsaSksU2MocyxhKTtlbHNlIGlmKGZ1bmN0aW9uIFVjKHMsbyxpLGEsdSl7c3dpdGNoKG8pe2Nhc2UiZm9jdXNpbiI6cmV0dXJuIFJ0PVRjKFJ0LHMsbyxpLGEsdSksITA7Y2FzZSJkcmFnZW50ZXIiOnJldHVybiBEdD1UYyhEdCxzLG8saSxhLHUpLCEwO2Nhc2UibW91c2VvdmVyIjpyZXR1cm4gTHQ9VGMoTHQscyxvLGksYSx1KSwhMDtjYXNlInBvaW50ZXJvdmVyIjp2YXIgXz11LnBvaW50ZXJJZDtyZXR1cm4gRnQuc2V0KF8sVGMoRnQuZ2V0KF8pfHxudWxsLHMsbyxpLGEsdSkpLCEwO2Nhc2UiZ290cG9pbnRlcmNhcHR1cmUiOnJldHVybiBfPXUucG9pbnRlcklkLEJ0LnNldChfLFRjKEJ0LmdldChfKXx8bnVsbCxzLG8saSxhLHUpKSwhMH1yZXR1cm4hMX0odSxzLG8saSxhKSlhLnN0b3BQcm9wYWdhdGlvbigpO2Vsc2UgaWYoU2MocyxhKSw0Jm8mJi0xPHF0LmluZGV4T2Yocykpe2Zvcig7bnVsbCE9PXU7KXt2YXIgXz1DYih1KTtpZihudWxsIT09XyYmQXQoXyksbnVsbD09PShfPVljKHMsbyxpLGEpKSYmaGQocyxvLGEsenQsaSksXz09PXUpYnJlYWs7dT1ffW51bGwhPT11JiZhLnN0b3BQcm9wYWdhdGlvbigpfWVsc2UgaGQocyxvLGEsbnVsbCxpKX19dmFyIHp0PW51bGw7ZnVuY3Rpb24gWWMocyxvLGksYSl7aWYoenQ9bnVsbCxudWxsIT09KHM9V2Mocz14YihhKSkpKWlmKG51bGw9PT0obz1WYihzKSkpcz1udWxsO2Vsc2UgaWYoMTM9PT0oaT1vLnRhZykpe2lmKG51bGwhPT0ocz1XYihvKSkpcmV0dXJuIHM7cz1udWxsfWVsc2UgaWYoMz09PWkpe2lmKG8uc3RhdGVOb2RlLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpcmV0dXJuIDM9PT1vLnRhZz9vLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOm51bGw7cz1udWxsfWVsc2UgbyE9PXMmJihzPW51bGwpO3JldHVybiB6dD1zLG51bGx9ZnVuY3Rpb24gamQocyl7c3dpdGNoKHMpe2Nhc2UiY2FuY2VsIjpjYXNlImNsaWNrIjpjYXNlImNsb3NlIjpjYXNlImNvbnRleHRtZW51IjpjYXNlImNvcHkiOmNhc2UiY3V0IjpjYXNlImF1eGNsaWNrIjpjYXNlImRibGNsaWNrIjpjYXNlImRyYWdlbmQiOmNhc2UiZHJhZ3N0YXJ0IjpjYXNlImRyb3AiOmNhc2UiZm9jdXNpbiI6Y2FzZSJmb2N1c291dCI6Y2FzZSJpbnB1dCI6Y2FzZSJpbnZhbGlkIjpjYXNlImtleWRvd24iOmNhc2Uia2V5cHJlc3MiOmNhc2Uia2V5dXAiOmNhc2UibW91c2Vkb3duIjpjYXNlIm1vdXNldXAiOmNhc2UicGFzdGUiOmNhc2UicGF1c2UiOmNhc2UicGxheSI6Y2FzZSJwb2ludGVyY2FuY2VsIjpjYXNlInBvaW50ZXJkb3duIjpjYXNlInBvaW50ZXJ1cCI6Y2FzZSJyYXRlY2hhbmdlIjpjYXNlInJlc2V0IjpjYXNlInJlc2l6ZSI6Y2FzZSJzZWVrZWQiOmNhc2Uic3VibWl0IjpjYXNlInRvdWNoY2FuY2VsIjpjYXNlInRvdWNoZW5kIjpjYXNlInRvdWNoc3RhcnQiOmNhc2Uidm9sdW1lY2hhbmdlIjpjYXNlImNoYW5nZSI6Y2FzZSJzZWxlY3Rpb25jaGFuZ2UiOmNhc2UidGV4dElucHV0IjpjYXNlImNvbXBvc2l0aW9uc3RhcnQiOmNhc2UiY29tcG9zaXRpb25lbmQiOmNhc2UiY29tcG9zaXRpb251cGRhdGUiOmNhc2UiYmVmb3JlYmx1ciI6Y2FzZSJhZnRlcmJsdXIiOmNhc2UiYmVmb3JlaW5wdXQiOmNhc2UiYmx1ciI6Y2FzZSJmdWxsc2NyZWVuY2hhbmdlIjpjYXNlImZvY3VzIjpjYXNlImhhc2hjaGFuZ2UiOmNhc2UicG9wc3RhdGUiOmNhc2Uic2VsZWN0IjpjYXNlInNlbGVjdHN0YXJ0IjpyZXR1cm4gMTtjYXNlImRyYWciOmNhc2UiZHJhZ2VudGVyIjpjYXNlImRyYWdleGl0IjpjYXNlImRyYWdsZWF2ZSI6Y2FzZSJkcmFnb3ZlciI6Y2FzZSJtb3VzZW1vdmUiOmNhc2UibW91c2VvdXQiOmNhc2UibW91c2VvdmVyIjpjYXNlInBvaW50ZXJtb3ZlIjpjYXNlInBvaW50ZXJvdXQiOmNhc2UicG9pbnRlcm92ZXIiOmNhc2Uic2Nyb2xsIjpjYXNlInRvZ2dsZSI6Y2FzZSJ0b3VjaG1vdmUiOmNhc2Uid2hlZWwiOmNhc2UibW91c2VlbnRlciI6Y2FzZSJtb3VzZWxlYXZlIjpjYXNlInBvaW50ZXJlbnRlciI6Y2FzZSJwb2ludGVybGVhdmUiOnJldHVybiA0O2Nhc2UibWVzc2FnZSI6c3dpdGNoKGR0KCkpe2Nhc2UgbXQ6cmV0dXJuIDE7Y2FzZSBndDpyZXR1cm4gNDtjYXNlIHl0OmNhc2UgdnQ6cmV0dXJuIDE2O2Nhc2UgYnQ6cmV0dXJuIDUzNjg3MDkxMjtkZWZhdWx0OnJldHVybiAxNn1kZWZhdWx0OnJldHVybiAxNn19dmFyIFd0PW51bGwsSnQ9bnVsbCxIdD1udWxsO2Z1bmN0aW9uIG5kKCl7aWYoSHQpcmV0dXJuIEh0O3ZhciBzLG8saT1KdCxhPWkubGVuZ3RoLHU9InZhbHVlImluIFd0P1d0LnZhbHVlOld0LnRleHRDb250ZW50LF89dS5sZW5ndGg7Zm9yKHM9MDtzPGEmJmlbc109PT11W3NdO3MrKyk7dmFyIHc9YS1zO2ZvcihvPTE7bzw9dyYmaVthLW9dPT09dVtfLW9dO28rKyk7cmV0dXJuIEh0PXUuc2xpY2UocywxPG8/MS1vOnZvaWQgMCl9ZnVuY3Rpb24gb2Qocyl7dmFyIG89cy5rZXlDb2RlO3JldHVybiJjaGFyQ29kZSJpbiBzPzA9PT0ocz1zLmNoYXJDb2RlKSYmMTM9PT1vJiYocz0xMyk6cz1vLDEwPT09cyYmKHM9MTMpLDMyPD1zfHwxMz09PXM/czowfWZ1bmN0aW9uIHBkKCl7cmV0dXJuITB9ZnVuY3Rpb24gcWQoKXtyZXR1cm4hMX1mdW5jdGlvbiByZChzKXtmdW5jdGlvbiBiKG8saSxhLHUsXyl7Zm9yKHZhciB3IGluIHRoaXMuX3JlYWN0TmFtZT1vLHRoaXMuX3RhcmdldEluc3Q9YSx0aGlzLnR5cGU9aSx0aGlzLm5hdGl2ZUV2ZW50PXUsdGhpcy50YXJnZXQ9Xyx0aGlzLmN1cnJlbnRUYXJnZXQ9bnVsbCxzKXMuaGFzT3duUHJvcGVydHkodykmJihvPXNbd10sdGhpc1t3XT1vP28odSk6dVt3XSk7cmV0dXJuIHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPShudWxsIT11LmRlZmF1bHRQcmV2ZW50ZWQ/dS5kZWZhdWx0UHJldmVudGVkOiExPT09dS5yZXR1cm5WYWx1ZSk/cGQ6cWQsdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1xZCx0aGlzfXJldHVybiB3ZShiLnByb3RvdHlwZSx7cHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITA7dmFyIHM9dGhpcy5uYXRpdmVFdmVudDtzJiYocy5wcmV2ZW50RGVmYXVsdD9zLnByZXZlbnREZWZhdWx0KCk6InVua25vd24iIT10eXBlb2Ygcy5yZXR1cm5WYWx1ZSYmKHMucmV0dXJuVmFsdWU9ITEpLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPXBkKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIHM9dGhpcy5uYXRpdmVFdmVudDtzJiYocy5zdG9wUHJvcGFnYXRpb24/cy5zdG9wUHJvcGFnYXRpb24oKToidW5rbm93biIhPXR5cGVvZiBzLmNhbmNlbEJ1YmJsZSYmKHMuY2FuY2VsQnViYmxlPSEwKSx0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXBkKX0scGVyc2lzdDpmdW5jdGlvbigpe30saXNQZXJzaXN0ZW50OnBkfSksYn12YXIgS3QsR3QsWXQsWHQ9e2V2ZW50UGhhc2U6MCxidWJibGVzOjAsY2FuY2VsYWJsZTowLHRpbWVTdGFtcDpmdW5jdGlvbihzKXtyZXR1cm4gcy50aW1lU3RhbXB8fERhdGUubm93KCl9LGRlZmF1bHRQcmV2ZW50ZWQ6MCxpc1RydXN0ZWQ6MH0sUXQ9cmQoWHQpLFp0PXdlKHt9LFh0LHt2aWV3OjAsZGV0YWlsOjB9KSxlcj1yZChadCksdHI9d2Uoe30sWnQse3NjcmVlblg6MCxzY3JlZW5ZOjAsY2xpZW50WDowLGNsaWVudFk6MCxwYWdlWDowLHBhZ2VZOjAsY3RybEtleTowLHNoaWZ0S2V5OjAsYWx0S2V5OjAsbWV0YUtleTowLGdldE1vZGlmaWVyU3RhdGU6emQsYnV0dG9uOjAsYnV0dG9uczowLHJlbGF0ZWRUYXJnZXQ6ZnVuY3Rpb24ocyl7cmV0dXJuIHZvaWQgMD09PXMucmVsYXRlZFRhcmdldD9zLmZyb21FbGVtZW50PT09cy5zcmNFbGVtZW50P3MudG9FbGVtZW50OnMuZnJvbUVsZW1lbnQ6cy5yZWxhdGVkVGFyZ2V0fSxtb3ZlbWVudFg6ZnVuY3Rpb24ocyl7cmV0dXJuIm1vdmVtZW50WCJpbiBzP3MubW92ZW1lbnRYOihzIT09WXQmJihZdCYmIm1vdXNlbW92ZSI9PT1zLnR5cGU/KEt0PXMuc2NyZWVuWC1ZdC5zY3JlZW5YLEd0PXMuc2NyZWVuWS1ZdC5zY3JlZW5ZKTpHdD1LdD0wLFl0PXMpLEt0KX0sbW92ZW1lbnRZOmZ1bmN0aW9uKHMpe3JldHVybiJtb3ZlbWVudFkiaW4gcz9zLm1vdmVtZW50WTpHdH19KSxycj1yZCh0ciksbnI9cmQod2Uoe30sdHIse2RhdGFUcmFuc2ZlcjowfSkpLHNyPXJkKHdlKHt9LFp0LHtyZWxhdGVkVGFyZ2V0OjB9KSksaXI9cmQod2Uoe30sWHQse2FuaW1hdGlvbk5hbWU6MCxlbGFwc2VkVGltZTowLHBzZXVkb0VsZW1lbnQ6MH0pKSxhcj13ZSh7fSxYdCx7Y2xpcGJvYXJkRGF0YTpmdW5jdGlvbihzKXtyZXR1cm4iY2xpcGJvYXJkRGF0YSJpbiBzP3MuY2xpcGJvYXJkRGF0YTp3aW5kb3cuY2xpcGJvYXJkRGF0YX19KSxjcj1yZChhciksbHI9cmQod2Uoe30sWHQse2RhdGE6MH0pKSx1cj17RXNjOiJFc2NhcGUiLFNwYWNlYmFyOiIgIixMZWZ0OiJBcnJvd0xlZnQiLFVwOiJBcnJvd1VwIixSaWdodDoiQXJyb3dSaWdodCIsRG93bjoiQXJyb3dEb3duIixEZWw6IkRlbGV0ZSIsV2luOiJPUyIsTWVudToiQ29udGV4dE1lbnUiLEFwcHM6IkNvbnRleHRNZW51IixTY3JvbGw6IlNjcm9sbExvY2siLE1velByaW50YWJsZUtleToiVW5pZGVudGlmaWVkIn0scHI9ezg6IkJhY2tzcGFjZSIsOToiVGFiIiwxMjoiQ2xlYXIiLDEzOiJFbnRlciIsMTY6IlNoaWZ0IiwxNzoiQ29udHJvbCIsMTg6IkFsdCIsMTk6IlBhdXNlIiwyMDoiQ2Fwc0xvY2siLDI3OiJFc2NhcGUiLDMyOiIgIiwzMzoiUGFnZVVwIiwzNDoiUGFnZURvd24iLDM1OiJFbmQiLDM2OiJIb21lIiwzNzoiQXJyb3dMZWZ0IiwzODoiQXJyb3dVcCIsMzk6IkFycm93UmlnaHQiLDQwOiJBcnJvd0Rvd24iLDQ1OiJJbnNlcnQiLDQ2OiJEZWxldGUiLDExMjoiRjEiLDExMzoiRjIiLDExNDoiRjMiLDExNToiRjQiLDExNjoiRjUiLDExNzoiRjYiLDExODoiRjciLDExOToiRjgiLDEyMDoiRjkiLDEyMToiRjEwIiwxMjI6IkYxMSIsMTIzOiJGMTIiLDE0NDoiTnVtTG9jayIsMTQ1OiJTY3JvbGxMb2NrIiwyMjQ6Ik1ldGEifSxkcj17QWx0OiJhbHRLZXkiLENvbnRyb2w6ImN0cmxLZXkiLE1ldGE6Im1ldGFLZXkiLFNoaWZ0OiJzaGlmdEtleSJ9O2Z1bmN0aW9uIFBkKHMpe3ZhciBvPXRoaXMubmF0aXZlRXZlbnQ7cmV0dXJuIG8uZ2V0TW9kaWZpZXJTdGF0ZT9vLmdldE1vZGlmaWVyU3RhdGUocyk6ISEocz1kcltzXSkmJiEhb1tzXX1mdW5jdGlvbiB6ZCgpe3JldHVybiBQZH12YXIgZnI9d2Uoe30sWnQse2tleTpmdW5jdGlvbihzKXtpZihzLmtleSl7dmFyIG89dXJbcy5rZXldfHxzLmtleTtpZigiVW5pZGVudGlmaWVkIiE9PW8pcmV0dXJuIG99cmV0dXJuImtleXByZXNzIj09PXMudHlwZT8xMz09PShzPW9kKHMpKT8iRW50ZXIiOlN0cmluZy5mcm9tQ2hhckNvZGUocyk6ImtleWRvd24iPT09cy50eXBlfHwia2V5dXAiPT09cy50eXBlP3ByW3Mua2V5Q29kZV18fCJVbmlkZW50aWZpZWQiOiIifSxjb2RlOjAsbG9jYXRpb246MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAscmVwZWF0OjAsbG9jYWxlOjAsZ2V0TW9kaWZpZXJTdGF0ZTp6ZCxjaGFyQ29kZTpmdW5jdGlvbihzKXtyZXR1cm4ia2V5cHJlc3MiPT09cy50eXBlP29kKHMpOjB9LGtleUNvZGU6ZnVuY3Rpb24ocyl7cmV0dXJuImtleWRvd24iPT09cy50eXBlfHwia2V5dXAiPT09cy50eXBlP3Mua2V5Q29kZTowfSx3aGljaDpmdW5jdGlvbihzKXtyZXR1cm4ia2V5cHJlc3MiPT09cy50eXBlP29kKHMpOiJrZXlkb3duIj09PXMudHlwZXx8ImtleXVwIj09PXMudHlwZT9zLmtleUNvZGU6MH19KSxtcj1yZChmciksZ3I9cmQod2Uoe30sdHIse3BvaW50ZXJJZDowLHdpZHRoOjAsaGVpZ2h0OjAscHJlc3N1cmU6MCx0YW5nZW50aWFsUHJlc3N1cmU6MCx0aWx0WDowLHRpbHRZOjAsdHdpc3Q6MCxwb2ludGVyVHlwZTowLGlzUHJpbWFyeTowfSkpLHlyPXJkKHdlKHt9LFp0LHt0b3VjaGVzOjAsdGFyZ2V0VG91Y2hlczowLGNoYW5nZWRUb3VjaGVzOjAsYWx0S2V5OjAsbWV0YUtleTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGdldE1vZGlmaWVyU3RhdGU6emR9KSksdnI9cmQod2Uoe30sWHQse3Byb3BlcnR5TmFtZTowLGVsYXBzZWRUaW1lOjAscHNldWRvRWxlbWVudDowfSkpLGJyPXdlKHt9LHRyLHtkZWx0YVg6ZnVuY3Rpb24ocyl7cmV0dXJuImRlbHRhWCJpbiBzP3MuZGVsdGFYOiJ3aGVlbERlbHRhWCJpbiBzPy1zLndoZWVsRGVsdGFYOjB9LGRlbHRhWTpmdW5jdGlvbihzKXtyZXR1cm4iZGVsdGFZImluIHM/cy5kZWx0YVk6IndoZWVsRGVsdGFZImluIHM/LXMud2hlZWxEZWx0YVk6IndoZWVsRGVsdGEiaW4gcz8tcy53aGVlbERlbHRhOjB9LGRlbHRhWjowLGRlbHRhTW9kZTowfSksX3I9cmQoYnIpLFNyPVs5LDEzLDI3LDMyXSxFcj14JiYiQ29tcG9zaXRpb25FdmVudCJpbiB3aW5kb3csd3I9bnVsbDt4JiYiZG9jdW1lbnRNb2RlImluIGRvY3VtZW50JiYod3I9ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKTt2YXIgeHI9eCYmIlRleHRFdmVudCJpbiB3aW5kb3cmJiF3cixrcj14JiYoIUVyfHx3ciYmODx3ciYmMTE+PXdyKSxPcj1TdHJpbmcuZnJvbUNoYXJDb2RlKDMyKSxDcj0hMTtmdW5jdGlvbiBnZShzLG8pe3N3aXRjaChzKXtjYXNlImtleXVwIjpyZXR1cm4tMSE9PVNyLmluZGV4T2Yoby5rZXlDb2RlKTtjYXNlImtleWRvd24iOnJldHVybiAyMjkhPT1vLmtleUNvZGU7Y2FzZSJrZXlwcmVzcyI6Y2FzZSJtb3VzZWRvd24iOmNhc2UiZm9jdXNvdXQiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIGhlKHMpe3JldHVybiJvYmplY3QiPT10eXBlb2Yocz1zLmRldGFpbCkmJiJkYXRhImluIHM/cy5kYXRhOm51bGx9dmFyIEFyPSExO3ZhciBqcj17Y29sb3I6ITAsZGF0ZTohMCxkYXRldGltZTohMCwiZGF0ZXRpbWUtbG9jYWwiOiEwLGVtYWlsOiEwLG1vbnRoOiEwLG51bWJlcjohMCxwYXNzd29yZDohMCxyYW5nZTohMCxzZWFyY2g6ITAsdGVsOiEwLHRleHQ6ITAsdGltZTohMCx1cmw6ITAsd2VlazohMH07ZnVuY3Rpb24gbWUocyl7dmFyIG89cyYmcy5ub2RlTmFtZSYmcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT1vPyEhanJbcy50eXBlXToidGV4dGFyZWEiPT09b31mdW5jdGlvbiBuZShzLG8saSxhKXtFYihhKSwwPChvPW9lKG8sIm9uQ2hhbmdlIikpLmxlbmd0aCYmKGk9bmV3IFF0KCJvbkNoYW5nZSIsImNoYW5nZSIsbnVsbCxpLGEpLHMucHVzaCh7ZXZlbnQ6aSxsaXN0ZW5lcnM6b30pKX12YXIgSXI9bnVsbCxQcj1udWxsO2Z1bmN0aW9uIHJlKHMpe3NlKHMsMCl9ZnVuY3Rpb24gdGUocyl7aWYoV2EodWUocykpKXJldHVybiBzfWZ1bmN0aW9uIHZlKHMsbyl7aWYoImNoYW5nZSI9PT1zKXJldHVybiBvfXZhciBUcj0hMTtpZih4KXt2YXIgTnI7aWYoeCl7dmFyIE1yPSJvbmlucHV0ImluIGRvY3VtZW50O2lmKCFNcil7dmFyIFJyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO1JyLnNldEF0dHJpYnV0ZSgib25pbnB1dCIsInJldHVybjsiKSxNcj0iZnVuY3Rpb24iPT10eXBlb2YgUnIub25pbnB1dH1Ocj1Ncn1lbHNlIE5yPSExO1RyPU5yJiYoIWRvY3VtZW50LmRvY3VtZW50TW9kZXx8OTxkb2N1bWVudC5kb2N1bWVudE1vZGUpfWZ1bmN0aW9uIEFlKCl7SXImJihJci5kZXRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIsQmUpLFByPUlyPW51bGwpfWZ1bmN0aW9uIEJlKHMpe2lmKCJ2YWx1ZSI9PT1zLnByb3BlcnR5TmFtZSYmdGUoUHIpKXt2YXIgbz1bXTtuZShvLFByLHMseGIocykpLEpiKHJlLG8pfX1mdW5jdGlvbiBDZShzLG8saSl7ImZvY3VzaW4iPT09cz8oQWUoKSxQcj1pLChJcj1vKS5hdHRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIsQmUpKToiZm9jdXNvdXQiPT09cyYmQWUoKX1mdW5jdGlvbiBEZShzKXtpZigic2VsZWN0aW9uY2hhbmdlIj09PXN8fCJrZXl1cCI9PT1zfHwia2V5ZG93biI9PT1zKXJldHVybiB0ZShQcil9ZnVuY3Rpb24gRWUocyxvKXtpZigiY2xpY2siPT09cylyZXR1cm4gdGUobyl9ZnVuY3Rpb24gRmUocyxvKXtpZigiaW5wdXQiPT09c3x8ImNoYW5nZSI9PT1zKXJldHVybiB0ZShvKX12YXIgRHI9ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5pcz9PYmplY3QuaXM6ZnVuY3Rpb24gR2UocyxvKXtyZXR1cm4gcz09PW8mJigwIT09c3x8MS9zPT0xL28pfHxzIT1zJiZvIT1vfTtmdW5jdGlvbiBJZShzLG8pe2lmKERyKHMsbykpcmV0dXJuITA7aWYoIm9iamVjdCIhPXR5cGVvZiBzfHxudWxsPT09c3x8Im9iamVjdCIhPXR5cGVvZiBvfHxudWxsPT09bylyZXR1cm4hMTt2YXIgaT1PYmplY3Qua2V5cyhzKSxhPU9iamVjdC5rZXlzKG8pO2lmKGkubGVuZ3RoIT09YS5sZW5ndGgpcmV0dXJuITE7Zm9yKGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIHU9aVthXTtpZighQy5jYWxsKG8sdSl8fCFEcihzW3VdLG9bdV0pKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIEplKHMpe2Zvcig7cyYmcy5maXJzdENoaWxkOylzPXMuZmlyc3RDaGlsZDtyZXR1cm4gc31mdW5jdGlvbiBLZShzLG8pe3ZhciBpLGE9SmUocyk7Zm9yKHM9MDthOyl7aWYoMz09PWEubm9kZVR5cGUpe2lmKGk9cythLnRleHRDb250ZW50Lmxlbmd0aCxzPD1vJiZpPj1vKXJldHVybntub2RlOmEsb2Zmc2V0Om8tc307cz1pfWU6e2Zvcig7YTspe2lmKGEubmV4dFNpYmxpbmcpe2E9YS5uZXh0U2libGluZzticmVhayBlfWE9YS5wYXJlbnROb2RlfWE9dm9pZCAwfWE9SmUoYSl9fWZ1bmN0aW9uIExlKHMsbyl7cmV0dXJuISghc3x8IW8pJiYocz09PW98fCghc3x8MyE9PXMubm9kZVR5cGUpJiYobyYmMz09PW8ubm9kZVR5cGU/TGUocyxvLnBhcmVudE5vZGUpOiJjb250YWlucyJpbiBzP3MuY29udGFpbnMobyk6ISFzLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYhISgxNiZzLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKG8pKSkpfWZ1bmN0aW9uIE1lKCl7Zm9yKHZhciBzPXdpbmRvdyxvPVhhKCk7byBpbnN0YW5jZW9mIHMuSFRNTElGcmFtZUVsZW1lbnQ7KXt0cnl7dmFyIGk9InN0cmluZyI9PXR5cGVvZiBvLmNvbnRlbnRXaW5kb3cubG9jYXRpb24uaHJlZn1jYXRjaChzKXtpPSExfWlmKCFpKWJyZWFrO289WGEoKHM9by5jb250ZW50V2luZG93KS5kb2N1bWVudCl9cmV0dXJuIG99ZnVuY3Rpb24gTmUocyl7dmFyIG89cyYmcy5ub2RlTmFtZSYmcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiBvJiYoImlucHV0Ij09PW8mJigidGV4dCI9PT1zLnR5cGV8fCJzZWFyY2giPT09cy50eXBlfHwidGVsIj09PXMudHlwZXx8InVybCI9PT1zLnR5cGV8fCJwYXNzd29yZCI9PT1zLnR5cGUpfHwidGV4dGFyZWEiPT09b3x8InRydWUiPT09cy5jb250ZW50RWRpdGFibGUpfWZ1bmN0aW9uIE9lKHMpe3ZhciBvPU1lKCksaT1zLmZvY3VzZWRFbGVtLGE9cy5zZWxlY3Rpb25SYW5nZTtpZihvIT09aSYmaSYmaS5vd25lckRvY3VtZW50JiZMZShpLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGkpKXtpZihudWxsIT09YSYmTmUoaSkpaWYobz1hLnN0YXJ0LHZvaWQgMD09PShzPWEuZW5kKSYmKHM9byksInNlbGVjdGlvblN0YXJ0ImluIGkpaS5zZWxlY3Rpb25TdGFydD1vLGkuc2VsZWN0aW9uRW5kPU1hdGgubWluKHMsaS52YWx1ZS5sZW5ndGgpO2Vsc2UgaWYoKHM9KG89aS5vd25lckRvY3VtZW50fHxkb2N1bWVudCkmJm8uZGVmYXVsdFZpZXd8fHdpbmRvdykuZ2V0U2VsZWN0aW9uKXtzPXMuZ2V0U2VsZWN0aW9uKCk7dmFyIHU9aS50ZXh0Q29udGVudC5sZW5ndGgsXz1NYXRoLm1pbihhLnN0YXJ0LHUpO2E9dm9pZCAwPT09YS5lbmQ/XzpNYXRoLm1pbihhLmVuZCx1KSwhcy5leHRlbmQmJl8+YSYmKHU9YSxhPV8sXz11KSx1PUtlKGksXyk7dmFyIHc9S2UoaSxhKTt1JiZ3JiYoMSE9PXMucmFuZ2VDb3VudHx8cy5hbmNob3JOb2RlIT09dS5ub2RlfHxzLmFuY2hvck9mZnNldCE9PXUub2Zmc2V0fHxzLmZvY3VzTm9kZSE9PXcubm9kZXx8cy5mb2N1c09mZnNldCE9PXcub2Zmc2V0KSYmKChvPW8uY3JlYXRlUmFuZ2UoKSkuc2V0U3RhcnQodS5ub2RlLHUub2Zmc2V0KSxzLnJlbW92ZUFsbFJhbmdlcygpLF8+YT8ocy5hZGRSYW5nZShvKSxzLmV4dGVuZCh3Lm5vZGUsdy5vZmZzZXQpKTooby5zZXRFbmQody5ub2RlLHcub2Zmc2V0KSxzLmFkZFJhbmdlKG8pKSl9Zm9yKG89W10scz1pO3M9cy5wYXJlbnROb2RlOykxPT09cy5ub2RlVHlwZSYmby5wdXNoKHtlbGVtZW50OnMsbGVmdDpzLnNjcm9sbExlZnQsdG9wOnMuc2Nyb2xsVG9wfSk7Zm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBpLmZvY3VzJiZpLmZvY3VzKCksaT0wO2k8by5sZW5ndGg7aSsrKShzPW9baV0pLmVsZW1lbnQuc2Nyb2xsTGVmdD1zLmxlZnQscy5lbGVtZW50LnNjcm9sbFRvcD1zLnRvcH19dmFyIExyPXgmJiJkb2N1bWVudE1vZGUiaW4gZG9jdW1lbnQmJjExPj1kb2N1bWVudC5kb2N1bWVudE1vZGUsRnI9bnVsbCxCcj1udWxsLCRyPW51bGwscXI9ITE7ZnVuY3Rpb24gVWUocyxvLGkpe3ZhciBhPWkud2luZG93PT09aT9pLmRvY3VtZW50Ojk9PT1pLm5vZGVUeXBlP2k6aS5vd25lckRvY3VtZW50O3FyfHxudWxsPT1Gcnx8RnIhPT1YYShhKXx8KCJzZWxlY3Rpb25TdGFydCJpbihhPUZyKSYmTmUoYSk/YT17c3RhcnQ6YS5zZWxlY3Rpb25TdGFydCxlbmQ6YS5zZWxlY3Rpb25FbmR9OmE9e2FuY2hvck5vZGU6KGE9KGEub3duZXJEb2N1bWVudCYmYS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbigpKS5hbmNob3JOb2RlLGFuY2hvck9mZnNldDphLmFuY2hvck9mZnNldCxmb2N1c05vZGU6YS5mb2N1c05vZGUsZm9jdXNPZmZzZXQ6YS5mb2N1c09mZnNldH0sJHImJkllKCRyLGEpfHwoJHI9YSwwPChhPW9lKEJyLCJvblNlbGVjdCIpKS5sZW5ndGgmJihvPW5ldyBRdCgib25TZWxlY3QiLCJzZWxlY3QiLG51bGwsbyxpKSxzLnB1c2goe2V2ZW50Om8sbGlzdGVuZXJzOmF9KSxvLnRhcmdldD1GcikpKX1mdW5jdGlvbiBWZShzLG8pe3ZhciBpPXt9O3JldHVybiBpW3MudG9Mb3dlckNhc2UoKV09by50b0xvd2VyQ2FzZSgpLGlbIldlYmtpdCIrc109IndlYmtpdCIrbyxpWyJNb3oiK3NdPSJtb3oiK28saX12YXIgVnI9e2FuaW1hdGlvbmVuZDpWZSgiQW5pbWF0aW9uIiwiQW5pbWF0aW9uRW5kIiksYW5pbWF0aW9uaXRlcmF0aW9uOlZlKCJBbmltYXRpb24iLCJBbmltYXRpb25JdGVyYXRpb24iKSxhbmltYXRpb25zdGFydDpWZSgiQW5pbWF0aW9uIiwiQW5pbWF0aW9uU3RhcnQiKSx0cmFuc2l0aW9uZW5kOlZlKCJUcmFuc2l0aW9uIiwiVHJhbnNpdGlvbkVuZCIpfSxVcj17fSx6cj17fTtmdW5jdGlvbiBaZShzKXtpZihVcltzXSlyZXR1cm4gVXJbc107aWYoIVZyW3NdKXJldHVybiBzO3ZhciBvLGk9VnJbc107Zm9yKG8gaW4gaSlpZihpLmhhc093blByb3BlcnR5KG8pJiZvIGluIHpyKXJldHVybiBVcltzXT1pW29dO3JldHVybiBzfXgmJih6cj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZSwiQW5pbWF0aW9uRXZlbnQiaW4gd2luZG93fHwoZGVsZXRlIFZyLmFuaW1hdGlvbmVuZC5hbmltYXRpb24sZGVsZXRlIFZyLmFuaW1hdGlvbml0ZXJhdGlvbi5hbmltYXRpb24sZGVsZXRlIFZyLmFuaW1hdGlvbnN0YXJ0LmFuaW1hdGlvbiksIlRyYW5zaXRpb25FdmVudCJpbiB3aW5kb3d8fGRlbGV0ZSBWci50cmFuc2l0aW9uZW5kLnRyYW5zaXRpb24pO3ZhciBXcj1aZSgiYW5pbWF0aW9uZW5kIiksSnI9WmUoImFuaW1hdGlvbml0ZXJhdGlvbiIpLEhyPVplKCJhbmltYXRpb25zdGFydCIpLEtyPVplKCJ0cmFuc2l0aW9uZW5kIiksR3I9bmV3IE1hcCxZcj0iYWJvcnQgYXV4Q2xpY2sgY2FuY2VsIGNhblBsYXkgY2FuUGxheVRocm91Z2ggY2xpY2sgY2xvc2UgY29udGV4dE1lbnUgY29weSBjdXQgZHJhZyBkcmFnRW5kIGRyYWdFbnRlciBkcmFnRXhpdCBkcmFnTGVhdmUgZHJhZ092ZXIgZHJhZ1N0YXJ0IGRyb3AgZHVyYXRpb25DaGFuZ2UgZW1wdGllZCBlbmNyeXB0ZWQgZW5kZWQgZXJyb3IgZ290UG9pbnRlckNhcHR1cmUgaW5wdXQgaW52YWxpZCBrZXlEb3duIGtleVByZXNzIGtleVVwIGxvYWQgbG9hZGVkRGF0YSBsb2FkZWRNZXRhZGF0YSBsb2FkU3RhcnQgbG9zdFBvaW50ZXJDYXB0dXJlIG1vdXNlRG93biBtb3VzZU1vdmUgbW91c2VPdXQgbW91c2VPdmVyIG1vdXNlVXAgcGFzdGUgcGF1c2UgcGxheSBwbGF5aW5nIHBvaW50ZXJDYW5jZWwgcG9pbnRlckRvd24gcG9pbnRlck1vdmUgcG9pbnRlck91dCBwb2ludGVyT3ZlciBwb2ludGVyVXAgcHJvZ3Jlc3MgcmF0ZUNoYW5nZSByZXNldCByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdWJtaXQgc3VzcGVuZCB0aW1lVXBkYXRlIHRvdWNoQ2FuY2VsIHRvdWNoRW5kIHRvdWNoU3RhcnQgdm9sdW1lQ2hhbmdlIHNjcm9sbCB0b2dnbGUgdG91Y2hNb3ZlIHdhaXRpbmcgd2hlZWwiLnNwbGl0KCIgIik7ZnVuY3Rpb24gZmYocyxvKXtHci5zZXQocyxvKSxmYShvLFtzXSl9Zm9yKHZhciBYcj0wO1hyPFlyLmxlbmd0aDtYcisrKXt2YXIgUXI9WXJbWHJdO2ZmKFFyLnRvTG93ZXJDYXNlKCksIm9uIisoUXJbMF0udG9VcHBlckNhc2UoKStRci5zbGljZSgxKSkpfWZmKFdyLCJvbkFuaW1hdGlvbkVuZCIpLGZmKEpyLCJvbkFuaW1hdGlvbkl0ZXJhdGlvbiIpLGZmKEhyLCJvbkFuaW1hdGlvblN0YXJ0IiksZmYoImRibGNsaWNrIiwib25Eb3VibGVDbGljayIpLGZmKCJmb2N1c2luIiwib25Gb2N1cyIpLGZmKCJmb2N1c291dCIsIm9uQmx1ciIpLGZmKEtyLCJvblRyYW5zaXRpb25FbmQiKSxoYSgib25Nb3VzZUVudGVyIixbIm1vdXNlb3V0IiwibW91c2VvdmVyIl0pLGhhKCJvbk1vdXNlTGVhdmUiLFsibW91c2VvdXQiLCJtb3VzZW92ZXIiXSksaGEoIm9uUG9pbnRlckVudGVyIixbInBvaW50ZXJvdXQiLCJwb2ludGVyb3ZlciJdKSxoYSgib25Qb2ludGVyTGVhdmUiLFsicG9pbnRlcm91dCIsInBvaW50ZXJvdmVyIl0pLGZhKCJvbkNoYW5nZSIsImNoYW5nZSBjbGljayBmb2N1c2luIGZvY3Vzb3V0IGlucHV0IGtleWRvd24ga2V5dXAgc2VsZWN0aW9uY2hhbmdlIi5zcGxpdCgiICIpKSxmYSgib25TZWxlY3QiLCJmb2N1c291dCBjb250ZXh0bWVudSBkcmFnZW5kIGZvY3VzaW4ga2V5ZG93biBrZXl1cCBtb3VzZWRvd24gbW91c2V1cCBzZWxlY3Rpb25jaGFuZ2UiLnNwbGl0KCIgIikpLGZhKCJvbkJlZm9yZUlucHV0IixbImNvbXBvc2l0aW9uZW5kIiwia2V5cHJlc3MiLCJ0ZXh0SW5wdXQiLCJwYXN0ZSJdKSxmYSgib25Db21wb3NpdGlvbkVuZCIsImNvbXBvc2l0aW9uZW5kIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duIi5zcGxpdCgiICIpKSxmYSgib25Db21wb3NpdGlvblN0YXJ0IiwiY29tcG9zaXRpb25zdGFydCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93biIuc3BsaXQoIiAiKSksZmEoIm9uQ29tcG9zaXRpb25VcGRhdGUiLCJjb21wb3NpdGlvbnVwZGF0ZSBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93biIuc3BsaXQoIiAiKSk7dmFyIFpyPSJhYm9ydCBjYW5wbGF5IGNhbnBsYXl0aHJvdWdoIGR1cmF0aW9uY2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGxvYWRlZGRhdGEgbG9hZGVkbWV0YWRhdGEgbG9hZHN0YXJ0IHBhdXNlIHBsYXkgcGxheWluZyBwcm9ncmVzcyByYXRlY2hhbmdlIHJlc2l6ZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1c3BlbmQgdGltZXVwZGF0ZSB2b2x1bWVjaGFuZ2Ugd2FpdGluZyIuc3BsaXQoIiAiKSxlbj1uZXcgU2V0KCJjYW5jZWwgY2xvc2UgaW52YWxpZCBsb2FkIHNjcm9sbCB0b2dnbGUiLnNwbGl0KCIgIikuY29uY2F0KFpyKSk7ZnVuY3Rpb24gbmYocyxvLGkpe3ZhciBhPXMudHlwZXx8InVua25vd24tZXZlbnQiO3MuY3VycmVudFRhcmdldD1pLGZ1bmN0aW9uIFViKHMsbyxpLGEsdSxfLHcseCxDKXtpZihUYi5hcHBseSh0aGlzLGFyZ3VtZW50cyksbnQpe2lmKCFudCl0aHJvdyBFcnJvcihwKDE5OCkpO3ZhciBqPXN0O250PSExLHN0PW51bGwsb3R8fChvdD0hMCxpdD1qKX19KGEsbyx2b2lkIDAscykscy5jdXJyZW50VGFyZ2V0PW51bGx9ZnVuY3Rpb24gc2UocyxvKXtvPSEhKDQmbyk7Zm9yKHZhciBpPTA7aTxzLmxlbmd0aDtpKyspe3ZhciBhPXNbaV0sdT1hLmV2ZW50O2E9YS5saXN0ZW5lcnM7ZTp7dmFyIF89dm9pZCAwO2lmKG8pZm9yKHZhciB3PWEubGVuZ3RoLTE7MDw9dzt3LS0pe3ZhciB4PWFbd10sQz14Lmluc3RhbmNlLGo9eC5jdXJyZW50VGFyZ2V0O2lmKHg9eC5saXN0ZW5lcixDIT09XyYmdS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWJyZWFrIGU7bmYodSx4LGopLF89Q31lbHNlIGZvcih3PTA7dzxhLmxlbmd0aDt3Kyspe2lmKEM9KHg9YVt3XSkuaW5zdGFuY2Usaj14LmN1cnJlbnRUYXJnZXQseD14Lmxpc3RlbmVyLEMhPT1fJiZ1LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgZTtuZih1LHgsaiksXz1DfX19aWYob3QpdGhyb3cgcz1pdCxvdD0hMSxpdD1udWxsLHN9ZnVuY3Rpb24gRChzLG8pe3ZhciBpPW9bbW5dO3ZvaWQgMD09PWkmJihpPW9bbW5dPW5ldyBTZXQpO3ZhciBhPXMrIl9fYnViYmxlIjtpLmhhcyhhKXx8KHBmKG8scywyLCExKSxpLmFkZChhKSl9ZnVuY3Rpb24gcWYocyxvLGkpe3ZhciBhPTA7byYmKGF8PTQpLHBmKGkscyxhLG8pfXZhciB0bj0iX3JlYWN0TGlzdGVuaW5nIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKTtmdW5jdGlvbiBzZihzKXtpZighc1t0bl0pe3NbdG5dPSEwLF8uZm9yRWFjaCgoZnVuY3Rpb24obyl7InNlbGVjdGlvbmNoYW5nZSIhPT1vJiYoZW4uaGFzKG8pfHxxZihvLCExLHMpLHFmKG8sITAscykpfSkpO3ZhciBvPTk9PT1zLm5vZGVUeXBlP3M6cy5vd25lckRvY3VtZW50O251bGw9PT1vfHxvW3RuXXx8KG9bdG5dPSEwLHFmKCJzZWxlY3Rpb25jaGFuZ2UiLCExLG8pKX19ZnVuY3Rpb24gcGYocyxvLGksYSl7c3dpdGNoKGpkKG8pKXtjYXNlIDE6dmFyIHU9ZWQ7YnJlYWs7Y2FzZSA0OnU9Z2Q7YnJlYWs7ZGVmYXVsdDp1PWZkfWk9dS5iaW5kKG51bGwsbyxpLHMpLHU9dm9pZCAwLCF0dHx8InRvdWNoc3RhcnQiIT09byYmInRvdWNobW92ZSIhPT1vJiYid2hlZWwiIT09b3x8KHU9ITApLGE/dm9pZCAwIT09dT9zLmFkZEV2ZW50TGlzdGVuZXIobyxpLHtjYXB0dXJlOiEwLHBhc3NpdmU6dX0pOnMuYWRkRXZlbnRMaXN0ZW5lcihvLGksITApOnZvaWQgMCE9PXU/cy5hZGRFdmVudExpc3RlbmVyKG8saSx7cGFzc2l2ZTp1fSk6cy5hZGRFdmVudExpc3RlbmVyKG8saSwhMSl9ZnVuY3Rpb24gaGQocyxvLGksYSx1KXt2YXIgXz1hO2lmKCEoMSZvfHwyJm98fG51bGw9PT1hKSllOmZvcig7Oyl7aWYobnVsbD09PWEpcmV0dXJuO3ZhciB3PWEudGFnO2lmKDM9PT13fHw0PT09dyl7dmFyIHg9YS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztpZih4PT09dXx8OD09PXgubm9kZVR5cGUmJngucGFyZW50Tm9kZT09PXUpYnJlYWs7aWYoND09PXcpZm9yKHc9YS5yZXR1cm47bnVsbCE9PXc7KXt2YXIgQz13LnRhZztpZigoMz09PUN8fDQ9PT1DKSYmKChDPXcuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pPT09dXx8OD09PUMubm9kZVR5cGUmJkMucGFyZW50Tm9kZT09PXUpKXJldHVybjt3PXcucmV0dXJufWZvcig7bnVsbCE9PXg7KXtpZihudWxsPT09KHc9V2MoeCkpKXJldHVybjtpZig1PT09KEM9dy50YWcpfHw2PT09Qyl7YT1fPXc7Y29udGludWUgZX14PXgucGFyZW50Tm9kZX19YT1hLnJldHVybn1KYigoZnVuY3Rpb24oKXt2YXIgYT1fLHU9eGIoaSksdz1bXTtlOnt2YXIgeD1Hci5nZXQocyk7aWYodm9pZCAwIT09eCl7dmFyIEM9UXQsaj1zO3N3aXRjaChzKXtjYXNlImtleXByZXNzIjppZigwPT09b2QoaSkpYnJlYWsgZTtjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOkM9bXI7YnJlYWs7Y2FzZSJmb2N1c2luIjpqPSJmb2N1cyIsQz1zcjticmVhaztjYXNlImZvY3Vzb3V0IjpqPSJibHVyIixDPXNyO2JyZWFrO2Nhc2UiYmVmb3JlYmx1ciI6Y2FzZSJhZnRlcmJsdXIiOkM9c3I7YnJlYWs7Y2FzZSJjbGljayI6aWYoMj09PWkuYnV0dG9uKWJyZWFrIGU7Y2FzZSJhdXhjbGljayI6Y2FzZSJkYmxjbGljayI6Y2FzZSJtb3VzZWRvd24iOmNhc2UibW91c2Vtb3ZlIjpjYXNlIm1vdXNldXAiOmNhc2UibW91c2VvdXQiOmNhc2UibW91c2VvdmVyIjpjYXNlImNvbnRleHRtZW51IjpDPXJyO2JyZWFrO2Nhc2UiZHJhZyI6Y2FzZSJkcmFnZW5kIjpjYXNlImRyYWdlbnRlciI6Y2FzZSJkcmFnZXhpdCI6Y2FzZSJkcmFnbGVhdmUiOmNhc2UiZHJhZ292ZXIiOmNhc2UiZHJhZ3N0YXJ0IjpjYXNlImRyb3AiOkM9bnI7YnJlYWs7Y2FzZSJ0b3VjaGNhbmNlbCI6Y2FzZSJ0b3VjaGVuZCI6Y2FzZSJ0b3VjaG1vdmUiOmNhc2UidG91Y2hzdGFydCI6Qz15cjticmVhaztjYXNlIFdyOmNhc2UgSnI6Y2FzZSBIcjpDPWlyO2JyZWFrO2Nhc2UgS3I6Qz12cjticmVhaztjYXNlInNjcm9sbCI6Qz1lcjticmVhaztjYXNlIndoZWVsIjpDPV9yO2JyZWFrO2Nhc2UiY29weSI6Y2FzZSJjdXQiOmNhc2UicGFzdGUiOkM9Y3I7YnJlYWs7Y2FzZSJnb3Rwb2ludGVyY2FwdHVyZSI6Y2FzZSJsb3N0cG9pbnRlcmNhcHR1cmUiOmNhc2UicG9pbnRlcmNhbmNlbCI6Y2FzZSJwb2ludGVyZG93biI6Y2FzZSJwb2ludGVybW92ZSI6Y2FzZSJwb2ludGVyb3V0IjpjYXNlInBvaW50ZXJvdmVyIjpjYXNlInBvaW50ZXJ1cCI6Qz1ncn12YXIgTD0hISg0Jm8pLEI9IUwmJiJzY3JvbGwiPT09cywkPUw/bnVsbCE9PXg/eCsiQ2FwdHVyZSI6bnVsbDp4O0w9W107Zm9yKHZhciBWLFU9YTtudWxsIT09VTspe3ZhciB6PShWPVUpLnN0YXRlTm9kZTtpZig1PT09Vi50YWcmJm51bGwhPT16JiYoVj16LG51bGwhPT0kJiYobnVsbCE9KHo9S2IoVSwkKSkmJkwucHVzaCh0ZihVLHosVikpKSksQilicmVhaztVPVUucmV0dXJufTA8TC5sZW5ndGgmJih4PW5ldyBDKHgsaixudWxsLGksdSksdy5wdXNoKHtldmVudDp4LGxpc3RlbmVyczpMfSkpfX1pZighKDcmbykpe2lmKEM9Im1vdXNlb3V0Ij09PXN8fCJwb2ludGVyb3V0Ij09PXMsKCEoeD0ibW91c2VvdmVyIj09PXN8fCJwb2ludGVyb3ZlciI9PT1zKXx8aT09PUhlfHwhKGo9aS5yZWxhdGVkVGFyZ2V0fHxpLmZyb21FbGVtZW50KXx8IVdjKGopJiYhaltmbl0pJiYoQ3x8eCkmJih4PXUud2luZG93PT09dT91Oih4PXUub3duZXJEb2N1bWVudCk/eC5kZWZhdWx0Vmlld3x8eC5wYXJlbnRXaW5kb3c6d2luZG93LEM/KEM9YSxudWxsIT09KGo9KGo9aS5yZWxhdGVkVGFyZ2V0fHxpLnRvRWxlbWVudCk/V2Moaik6bnVsbCkmJihqIT09KEI9VmIoaikpfHw1IT09ai50YWcmJjYhPT1qLnRhZykmJihqPW51bGwpKTooQz1udWxsLGo9YSksQyE9PWopKXtpZihMPXJyLHo9Im9uTW91c2VMZWF2ZSIsJD0ib25Nb3VzZUVudGVyIixVPSJtb3VzZSIsInBvaW50ZXJvdXQiIT09cyYmInBvaW50ZXJvdmVyIiE9PXN8fChMPWdyLHo9Im9uUG9pbnRlckxlYXZlIiwkPSJvblBvaW50ZXJFbnRlciIsVT0icG9pbnRlciIpLEI9bnVsbD09Qz94OnVlKEMpLFY9bnVsbD09aj94OnVlKGopLCh4PW5ldyBMKHosVSsibGVhdmUiLEMsaSx1KSkudGFyZ2V0PUIseC5yZWxhdGVkVGFyZ2V0PVYsej1udWxsLFdjKHUpPT09YSYmKChMPW5ldyBMKCQsVSsiZW50ZXIiLGosaSx1KSkudGFyZ2V0PVYsTC5yZWxhdGVkVGFyZ2V0PUIsej1MKSxCPXosQyYmaillOntmb3IoJD1qLFU9MCxWPUw9QztWO1Y9dmYoVikpVSsrO2ZvcihWPTAsej0kO3o7ej12Zih6KSlWKys7Zm9yKDswPFUtVjspTD12ZihMKSxVLS07Zm9yKDswPFYtVTspJD12ZigkKSxWLS07Zm9yKDtVLS07KXtpZihMPT09JHx8bnVsbCE9PSQmJkw9PT0kLmFsdGVybmF0ZSlicmVhayBlO0w9dmYoTCksJD12ZigkKX1MPW51bGx9ZWxzZSBMPW51bGw7bnVsbCE9PUMmJndmKHcseCxDLEwsITEpLG51bGwhPT1qJiZudWxsIT09QiYmd2YodyxCLGosTCwhMCl9aWYoInNlbGVjdCI9PT0oQz0oeD1hP3VlKGEpOndpbmRvdykubm9kZU5hbWUmJngubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl8fCJpbnB1dCI9PT1DJiYiZmlsZSI9PT14LnR5cGUpdmFyIFk9dmU7ZWxzZSBpZihtZSh4KSlpZihUcilZPUZlO2Vsc2V7WT1EZTt2YXIgWj1DZX1lbHNlKEM9eC5ub2RlTmFtZSkmJiJpbnB1dCI9PT1DLnRvTG93ZXJDYXNlKCkmJigiY2hlY2tib3giPT09eC50eXBlfHwicmFkaW8iPT09eC50eXBlKSYmKFk9RWUpO3N3aXRjaChZJiYoWT1ZKHMsYSkpP25lKHcsWSxpLHUpOihaJiZaKHMseCxhKSwiZm9jdXNvdXQiPT09cyYmKFo9eC5fd3JhcHBlclN0YXRlKSYmWi5jb250cm9sbGVkJiYibnVtYmVyIj09PXgudHlwZSYmY2IoeCwibnVtYmVyIix4LnZhbHVlKSksWj1hP3VlKGEpOndpbmRvdyxzKXtjYXNlImZvY3VzaW4iOihtZShaKXx8InRydWUiPT09Wi5jb250ZW50RWRpdGFibGUpJiYoRnI9WixCcj1hLCRyPW51bGwpO2JyZWFrO2Nhc2UiZm9jdXNvdXQiOiRyPUJyPUZyPW51bGw7YnJlYWs7Y2FzZSJtb3VzZWRvd24iOnFyPSEwO2JyZWFrO2Nhc2UiY29udGV4dG1lbnUiOmNhc2UibW91c2V1cCI6Y2FzZSJkcmFnZW5kIjpxcj0hMSxVZSh3LGksdSk7YnJlYWs7Y2FzZSJzZWxlY3Rpb25jaGFuZ2UiOmlmKExyKWJyZWFrO2Nhc2Uia2V5ZG93biI6Y2FzZSJrZXl1cCI6VWUodyxpLHUpfXZhciBlZTtpZihFcillOntzd2l0Y2gocyl7Y2FzZSJjb21wb3NpdGlvbnN0YXJ0Ijp2YXIgaWU9Im9uQ29tcG9zaXRpb25TdGFydCI7YnJlYWsgZTtjYXNlImNvbXBvc2l0aW9uZW5kIjppZT0ib25Db21wb3NpdGlvbkVuZCI7YnJlYWsgZTtjYXNlImNvbXBvc2l0aW9udXBkYXRlIjppZT0ib25Db21wb3NpdGlvblVwZGF0ZSI7YnJlYWsgZX1pZT12b2lkIDB9ZWxzZSBBcj9nZShzLGkpJiYoaWU9Im9uQ29tcG9zaXRpb25FbmQiKToia2V5ZG93biI9PT1zJiYyMjk9PT1pLmtleUNvZGUmJihpZT0ib25Db21wb3NpdGlvblN0YXJ0Iik7aWUmJihrciYmImtvIiE9PWkubG9jYWxlJiYoQXJ8fCJvbkNvbXBvc2l0aW9uU3RhcnQiIT09aWU/Im9uQ29tcG9zaXRpb25FbmQiPT09aWUmJkFyJiYoZWU9bmQoKSk6KEp0PSJ2YWx1ZSJpbihXdD11KT9XdC52YWx1ZTpXdC50ZXh0Q29udGVudCxBcj0hMCkpLDA8KFo9b2UoYSxpZSkpLmxlbmd0aCYmKGllPW5ldyBscihpZSxzLG51bGwsaSx1KSx3LnB1c2goe2V2ZW50OmllLGxpc3RlbmVyczpafSksZWU/aWUuZGF0YT1lZTpudWxsIT09KGVlPWhlKGkpKSYmKGllLmRhdGE9ZWUpKSksKGVlPXhyP2Z1bmN0aW9uIGplKHMsbyl7c3dpdGNoKHMpe2Nhc2UiY29tcG9zaXRpb25lbmQiOnJldHVybiBoZShvKTtjYXNlImtleXByZXNzIjpyZXR1cm4gMzIhPT1vLndoaWNoP251bGw6KENyPSEwLE9yKTtjYXNlInRleHRJbnB1dCI6cmV0dXJuKHM9by5kYXRhKT09PU9yJiZDcj9udWxsOnM7ZGVmYXVsdDpyZXR1cm4gbnVsbH19KHMsaSk6ZnVuY3Rpb24ga2UocyxvKXtpZihBcilyZXR1cm4iY29tcG9zaXRpb25lbmQiPT09c3x8IUVyJiZnZShzLG8pPyhzPW5kKCksSHQ9SnQ9V3Q9bnVsbCxBcj0hMSxzKTpudWxsO3N3aXRjaChzKXtjYXNlInBhc3RlIjpkZWZhdWx0OnJldHVybiBudWxsO2Nhc2Uia2V5cHJlc3MiOmlmKCEoby5jdHJsS2V5fHxvLmFsdEtleXx8by5tZXRhS2V5KXx8by5jdHJsS2V5JiZvLmFsdEtleSl7aWYoby5jaGFyJiYxPG8uY2hhci5sZW5ndGgpcmV0dXJuIG8uY2hhcjtpZihvLndoaWNoKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKG8ud2hpY2gpfXJldHVybiBudWxsO2Nhc2UiY29tcG9zaXRpb25lbmQiOnJldHVybiBrciYmImtvIiE9PW8ubG9jYWxlP251bGw6by5kYXRhfX0ocyxpKSkmJigwPChhPW9lKGEsIm9uQmVmb3JlSW5wdXQiKSkubGVuZ3RoJiYodT1uZXcgbHIoIm9uQmVmb3JlSW5wdXQiLCJiZWZvcmVpbnB1dCIsbnVsbCxpLHUpLHcucHVzaCh7ZXZlbnQ6dSxsaXN0ZW5lcnM6YX0pLHUuZGF0YT1lZSkpfXNlKHcsbyl9KSl9ZnVuY3Rpb24gdGYocyxvLGkpe3JldHVybntpbnN0YW5jZTpzLGxpc3RlbmVyOm8sY3VycmVudFRhcmdldDppfX1mdW5jdGlvbiBvZShzLG8pe2Zvcih2YXIgaT1vKyJDYXB0dXJlIixhPVtdO251bGwhPT1zOyl7dmFyIHU9cyxfPXUuc3RhdGVOb2RlOzU9PT11LnRhZyYmbnVsbCE9PV8mJih1PV8sbnVsbCE9KF89S2IocyxpKSkmJmEudW5zaGlmdCh0ZihzLF8sdSkpLG51bGwhPShfPUtiKHMsbykpJiZhLnB1c2godGYocyxfLHUpKSkscz1zLnJldHVybn1yZXR1cm4gYX1mdW5jdGlvbiB2ZihzKXtpZihudWxsPT09cylyZXR1cm4gbnVsbDtkb3tzPXMucmV0dXJufXdoaWxlKHMmJjUhPT1zLnRhZyk7cmV0dXJuIHN8fG51bGx9ZnVuY3Rpb24gd2YocyxvLGksYSx1KXtmb3IodmFyIF89by5fcmVhY3ROYW1lLHc9W107bnVsbCE9PWkmJmkhPT1hOyl7dmFyIHg9aSxDPXguYWx0ZXJuYXRlLGo9eC5zdGF0ZU5vZGU7aWYobnVsbCE9PUMmJkM9PT1hKWJyZWFrOzU9PT14LnRhZyYmbnVsbCE9PWomJih4PWosdT9udWxsIT0oQz1LYihpLF8pKSYmdy51bnNoaWZ0KHRmKGksQyx4KSk6dXx8bnVsbCE9KEM9S2IoaSxfKSkmJncucHVzaCh0ZihpLEMseCkpKSxpPWkucmV0dXJufTAhPT13Lmxlbmd0aCYmcy5wdXNoKHtldmVudDpvLGxpc3RlbmVyczp3fSl9dmFyIHJuPS9cclxuPy9nLG5uPS9cdTAwMDB8XHVGRkZEL2c7ZnVuY3Rpb24gemYocyl7cmV0dXJuKCJzdHJpbmciPT10eXBlb2Ygcz9zOiIiK3MpLnJlcGxhY2Uocm4sIlxuIikucmVwbGFjZShubiwiIil9ZnVuY3Rpb24gQWYocyxvLGkpe2lmKG89emYobyksemYocykhPT1vJiZpKXRocm93IEVycm9yKHAoNDI1KSl9ZnVuY3Rpb24gQmYoKXt9dmFyIHNuPW51bGwsb249bnVsbDtmdW5jdGlvbiBFZihzLG8pe3JldHVybiJ0ZXh0YXJlYSI9PT1zfHwibm9zY3JpcHQiPT09c3x8InN0cmluZyI9PXR5cGVvZiBvLmNoaWxkcmVufHwibnVtYmVyIj09dHlwZW9mIG8uY2hpbGRyZW58fCJvYmplY3QiPT10eXBlb2Ygby5kYW5nZXJvdXNseVNldElubmVySFRNTCYmbnVsbCE9PW8uZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJm51bGwhPW8uZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sfXZhciBhbj0iZnVuY3Rpb24iPT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0OnZvaWQgMCxjbj0iZnVuY3Rpb24iPT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDp2b2lkIDAsbG49ImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2U/UHJvbWlzZTp2b2lkIDAsdW49ImZ1bmN0aW9uIj09dHlwZW9mIHF1ZXVlTWljcm90YXNrP3F1ZXVlTWljcm90YXNrOnZvaWQgMCE9PWxuP2Z1bmN0aW9uKHMpe3JldHVybiBsbi5yZXNvbHZlKG51bGwpLnRoZW4ocykuY2F0Y2goSWYpfTphbjtmdW5jdGlvbiBJZihzKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe3Rocm93IHN9KSl9ZnVuY3Rpb24gS2YocyxvKXt2YXIgaT1vLGE9MDtkb3t2YXIgdT1pLm5leHRTaWJsaW5nO2lmKHMucmVtb3ZlQ2hpbGQoaSksdSYmOD09PXUubm9kZVR5cGUpaWYoIi8kIj09PShpPXUuZGF0YSkpe2lmKDA9PT1hKXJldHVybiBzLnJlbW92ZUNoaWxkKHUpLHZvaWQgYmQobyk7YS0tfWVsc2UiJCIhPT1pJiYiJD8iIT09aSYmIiQhIiE9PWl8fGErKztpPXV9d2hpbGUoaSk7YmQobyl9ZnVuY3Rpb24gTGYocyl7Zm9yKDtudWxsIT1zO3M9cy5uZXh0U2libGluZyl7dmFyIG89cy5ub2RlVHlwZTtpZigxPT09b3x8Mz09PW8pYnJlYWs7aWYoOD09PW8pe2lmKCIkIj09PShvPXMuZGF0YSl8fCIkISI9PT1vfHwiJD8iPT09bylicmVhaztpZigiLyQiPT09bylyZXR1cm4gbnVsbH19cmV0dXJuIHN9ZnVuY3Rpb24gTWYocyl7cz1zLnByZXZpb3VzU2libGluZztmb3IodmFyIG89MDtzOyl7aWYoOD09PXMubm9kZVR5cGUpe3ZhciBpPXMuZGF0YTtpZigiJCI9PT1pfHwiJCEiPT09aXx8IiQ/Ij09PWkpe2lmKDA9PT1vKXJldHVybiBzO28tLX1lbHNlIi8kIj09PWkmJm8rK31zPXMucHJldmlvdXNTaWJsaW5nfXJldHVybiBudWxsfXZhciBwbj1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKSxobj0iX19yZWFjdEZpYmVyJCIrcG4sZG49Il9fcmVhY3RQcm9wcyQiK3BuLGZuPSJfX3JlYWN0Q29udGFpbmVyJCIrcG4sbW49Il9fcmVhY3RFdmVudHMkIitwbixnbj0iX19yZWFjdExpc3RlbmVycyQiK3BuLHluPSJfX3JlYWN0SGFuZGxlcyQiK3BuO2Z1bmN0aW9uIFdjKHMpe3ZhciBvPXNbaG5dO2lmKG8pcmV0dXJuIG87Zm9yKHZhciBpPXMucGFyZW50Tm9kZTtpOyl7aWYobz1pW2ZuXXx8aVtobl0pe2lmKGk9by5hbHRlcm5hdGUsbnVsbCE9PW8uY2hpbGR8fG51bGwhPT1pJiZudWxsIT09aS5jaGlsZClmb3Iocz1NZihzKTtudWxsIT09czspe2lmKGk9c1tobl0pcmV0dXJuIGk7cz1NZihzKX1yZXR1cm4gb31pPShzPWkpLnBhcmVudE5vZGV9cmV0dXJuIG51bGx9ZnVuY3Rpb24gQ2Iocyl7cmV0dXJuIShzPXNbaG5dfHxzW2ZuXSl8fDUhPT1zLnRhZyYmNiE9PXMudGFnJiYxMyE9PXMudGFnJiYzIT09cy50YWc/bnVsbDpzfWZ1bmN0aW9uIHVlKHMpe2lmKDU9PT1zLnRhZ3x8Nj09PXMudGFnKXJldHVybiBzLnN0YXRlTm9kZTt0aHJvdyBFcnJvcihwKDMzKSl9ZnVuY3Rpb24gRGIocyl7cmV0dXJuIHNbZG5dfHxudWxsfXZhciB2bj1bXSxibj0tMTtmdW5jdGlvbiBVZihzKXtyZXR1cm57Y3VycmVudDpzfX1mdW5jdGlvbiBFKHMpezA+Ym58fChzLmN1cnJlbnQ9dm5bYm5dLHZuW2JuXT1udWxsLGJuLS0pfWZ1bmN0aW9uIEcocyxvKXtibisrLHZuW2JuXT1zLmN1cnJlbnQscy5jdXJyZW50PW99dmFyIF9uPXt9LFNuPVVmKF9uKSxFbj1VZighMSksd249X247ZnVuY3Rpb24gWWYocyxvKXt2YXIgaT1zLnR5cGUuY29udGV4dFR5cGVzO2lmKCFpKXJldHVybiBfbjt2YXIgYT1zLnN0YXRlTm9kZTtpZihhJiZhLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQ9PT1vKXJldHVybiBhLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0O3ZhciB1LF89e307Zm9yKHUgaW4gaSlfW3VdPW9bdV07cmV0dXJuIGEmJigocz1zLnN0YXRlTm9kZSkuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD1vLHMuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ9XyksX31mdW5jdGlvbiBaZihzKXtyZXR1cm4gbnVsbCE9KHM9cy5jaGlsZENvbnRleHRUeXBlcyl9ZnVuY3Rpb24gJGYoKXtFKEVuKSxFKFNuKX1mdW5jdGlvbiBhZyhzLG8saSl7aWYoU24uY3VycmVudCE9PV9uKXRocm93IEVycm9yKHAoMTY4KSk7RyhTbixvKSxHKEVuLGkpfWZ1bmN0aW9uIGJnKHMsbyxpKXt2YXIgYT1zLnN0YXRlTm9kZTtpZihvPW8uY2hpbGRDb250ZXh0VHlwZXMsImZ1bmN0aW9uIiE9dHlwZW9mIGEuZ2V0Q2hpbGRDb250ZXh0KXJldHVybiBpO2Zvcih2YXIgdSBpbiBhPWEuZ2V0Q2hpbGRDb250ZXh0KCkpaWYoISh1IGluIG8pKXRocm93IEVycm9yKHAoMTA4LFJhKHMpfHwiVW5rbm93biIsdSkpO3JldHVybiB3ZSh7fSxpLGEpfWZ1bmN0aW9uIGNnKHMpe3JldHVybiBzPShzPXMuc3RhdGVOb2RlKSYmcy5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1lcmdlZENoaWxkQ29udGV4dHx8X24sd249U24uY3VycmVudCxHKFNuLHMpLEcoRW4sRW4uY3VycmVudCksITB9ZnVuY3Rpb24gZGcocyxvLGkpe3ZhciBhPXMuc3RhdGVOb2RlO2lmKCFhKXRocm93IEVycm9yKHAoMTY5KSk7aT8ocz1iZyhzLG8sd24pLGEuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQ9cyxFKEVuKSxFKFNuKSxHKFNuLHMpKTpFKEVuKSxHKEVuLGkpfXZhciB4bj1udWxsLGtuPSExLE9uPSExO2Z1bmN0aW9uIGhnKHMpe251bGw9PT14bj94bj1bc106eG4ucHVzaChzKX1mdW5jdGlvbiBqZygpe2lmKCFPbiYmbnVsbCE9PXhuKXtPbj0hMDt2YXIgcz0wLG89Q3Q7dHJ5e3ZhciBpPXhuO2ZvcihDdD0xO3M8aS5sZW5ndGg7cysrKXt2YXIgYT1pW3NdO2Rve2E9YSghMCl9d2hpbGUobnVsbCE9PWEpfXhuPW51bGwsa249ITF9Y2F0Y2gobyl7dGhyb3cgbnVsbCE9PXhuJiYoeG49eG4uc2xpY2UocysxKSksY3QobXQsamcpLG99ZmluYWxseXtDdD1vLE9uPSExfX1yZXR1cm4gbnVsbH12YXIgQ249W10sQW49MCxqbj1udWxsLEluPTAsUG49W10sVG49MCxObj1udWxsLE1uPTEsUm49IiI7ZnVuY3Rpb24gdGcocyxvKXtDbltBbisrXT1JbixDbltBbisrXT1qbixqbj1zLEluPW99ZnVuY3Rpb24gdWcocyxvLGkpe1BuW1RuKytdPU1uLFBuW1RuKytdPVJuLFBuW1RuKytdPU5uLE5uPXM7dmFyIGE9TW47cz1Sbjt2YXIgdT0zMi1FdChhKS0xO2EmPX4oMTw8dSksaSs9MTt2YXIgXz0zMi1FdChvKSt1O2lmKDMwPF8pe3ZhciB3PXUtdSU1O189KGEmKDE8PHcpLTEpLnRvU3RyaW5nKDMyKSxhPj49dyx1LT13LE1uPTE8PDMyLUV0KG8pK3V8aTw8dXxhLFJuPV8rc31lbHNlIE1uPTE8PF98aTw8dXxhLFJuPXN9ZnVuY3Rpb24gdmcocyl7bnVsbCE9PXMucmV0dXJuJiYodGcocywxKSx1ZyhzLDEsMCkpfWZ1bmN0aW9uIHdnKHMpe2Zvcig7cz09PWpuOylqbj1DblstLUFuXSxDbltBbl09bnVsbCxJbj1DblstLUFuXSxDbltBbl09bnVsbDtmb3IoO3M9PT1ObjspTm49UG5bLS1Ubl0sUG5bVG5dPW51bGwsUm49UG5bLS1Ubl0sUG5bVG5dPW51bGwsTW49UG5bLS1Ubl0sUG5bVG5dPW51bGx9dmFyIERuPW51bGwsTG49bnVsbCxGbj0hMSxCbj1udWxsO2Z1bmN0aW9uIEFnKHMsbyl7dmFyIGk9QmcoNSxudWxsLG51bGwsMCk7aS5lbGVtZW50VHlwZT0iREVMRVRFRCIsaS5zdGF0ZU5vZGU9byxpLnJldHVybj1zLG51bGw9PT0obz1zLmRlbGV0aW9ucyk/KHMuZGVsZXRpb25zPVtpXSxzLmZsYWdzfD0xNik6by5wdXNoKGkpfWZ1bmN0aW9uIENnKHMsbyl7c3dpdGNoKHMudGFnKXtjYXNlIDU6dmFyIGk9cy50eXBlO3JldHVybiBudWxsIT09KG89MSE9PW8ubm9kZVR5cGV8fGkudG9Mb3dlckNhc2UoKSE9PW8ubm9kZU5hbWUudG9Mb3dlckNhc2UoKT9udWxsOm8pJiYocy5zdGF0ZU5vZGU9byxEbj1zLExuPUxmKG8uZmlyc3RDaGlsZCksITApO2Nhc2UgNjpyZXR1cm4gbnVsbCE9PShvPSIiPT09cy5wZW5kaW5nUHJvcHN8fDMhPT1vLm5vZGVUeXBlP251bGw6bykmJihzLnN0YXRlTm9kZT1vLERuPXMsTG49bnVsbCwhMCk7Y2FzZSAxMzpyZXR1cm4gbnVsbCE9PShvPTghPT1vLm5vZGVUeXBlP251bGw6bykmJihpPW51bGwhPT1Obj97aWQ6TW4sb3ZlcmZsb3c6Um59Om51bGwscy5tZW1vaXplZFN0YXRlPXtkZWh5ZHJhdGVkOm8sdHJlZUNvbnRleHQ6aSxyZXRyeUxhbmU6MTA3Mzc0MTgyNH0sKGk9QmcoMTgsbnVsbCxudWxsLDApKS5zdGF0ZU5vZGU9byxpLnJldHVybj1zLHMuY2hpbGQ9aSxEbj1zLExuPW51bGwsITApO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIERnKHMpe3JldHVybiEoISgxJnMubW9kZSl8fDEyOCZzLmZsYWdzKX1mdW5jdGlvbiBFZyhzKXtpZihGbil7dmFyIG89TG47aWYobyl7dmFyIGk9bztpZighQ2cocyxvKSl7aWYoRGcocykpdGhyb3cgRXJyb3IocCg0MTgpKTtvPUxmKGkubmV4dFNpYmxpbmcpO3ZhciBhPURuO28mJkNnKHMsbyk/QWcoYSxpKToocy5mbGFncz0tNDA5NyZzLmZsYWdzfDIsRm49ITEsRG49cyl9fWVsc2V7aWYoRGcocykpdGhyb3cgRXJyb3IocCg0MTgpKTtzLmZsYWdzPS00MDk3JnMuZmxhZ3N8MixGbj0hMSxEbj1zfX19ZnVuY3Rpb24gRmcocyl7Zm9yKHM9cy5yZXR1cm47bnVsbCE9PXMmJjUhPT1zLnRhZyYmMyE9PXMudGFnJiYxMyE9PXMudGFnOylzPXMucmV0dXJuO0RuPXN9ZnVuY3Rpb24gR2cocyl7aWYocyE9PURuKXJldHVybiExO2lmKCFGbilyZXR1cm4gRmcocyksRm49ITAsITE7dmFyIG87aWYoKG89MyE9PXMudGFnKSYmIShvPTUhPT1zLnRhZykmJihvPSJoZWFkIiE9PShvPXMudHlwZSkmJiJib2R5IiE9PW8mJiFFZihzLnR5cGUscy5tZW1vaXplZFByb3BzKSksbyYmKG89TG4pKXtpZihEZyhzKSl0aHJvdyBIZygpLEVycm9yKHAoNDE4KSk7Zm9yKDtvOylBZyhzLG8pLG89TGYoby5uZXh0U2libGluZyl9aWYoRmcocyksMTM9PT1zLnRhZyl7aWYoIShzPW51bGwhPT0ocz1zLm1lbW9pemVkU3RhdGUpP3MuZGVoeWRyYXRlZDpudWxsKSl0aHJvdyBFcnJvcihwKDMxNykpO2U6e2ZvcihzPXMubmV4dFNpYmxpbmcsbz0wO3M7KXtpZig4PT09cy5ub2RlVHlwZSl7dmFyIGk9cy5kYXRhO2lmKCIvJCI9PT1pKXtpZigwPT09byl7TG49TGYocy5uZXh0U2libGluZyk7YnJlYWsgZX1vLS19ZWxzZSIkIiE9PWkmJiIkISIhPT1pJiYiJD8iIT09aXx8bysrfXM9cy5uZXh0U2libGluZ31Mbj1udWxsfX1lbHNlIExuPURuP0xmKHMuc3RhdGVOb2RlLm5leHRTaWJsaW5nKTpudWxsO3JldHVybiEwfWZ1bmN0aW9uIEhnKCl7Zm9yKHZhciBzPUxuO3M7KXM9TGYocy5uZXh0U2libGluZyl9ZnVuY3Rpb24gSWcoKXtMbj1Ebj1udWxsLEZuPSExfWZ1bmN0aW9uIEpnKHMpe251bGw9PT1Cbj9Cbj1bc106Qm4ucHVzaChzKX12YXIgJG49VS5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZztmdW5jdGlvbiBMZyhzLG8saSl7aWYobnVsbCE9PShzPWkucmVmKSYmImZ1bmN0aW9uIiE9dHlwZW9mIHMmJiJvYmplY3QiIT10eXBlb2Ygcyl7aWYoaS5fb3duZXIpe2lmKGk9aS5fb3duZXIpe2lmKDEhPT1pLnRhZyl0aHJvdyBFcnJvcihwKDMwOSkpO3ZhciBhPWkuc3RhdGVOb2RlfWlmKCFhKXRocm93IEVycm9yKHAoMTQ3LHMpKTt2YXIgdT1hLF89IiIrcztyZXR1cm4gbnVsbCE9PW8mJm51bGwhPT1vLnJlZiYmImZ1bmN0aW9uIj09dHlwZW9mIG8ucmVmJiZvLnJlZi5fc3RyaW5nUmVmPT09Xz9vLnJlZjoobz1mdW5jdGlvbihzKXt2YXIgbz11LnJlZnM7bnVsbD09PXM/ZGVsZXRlIG9bX106b1tfXT1zfSxvLl9zdHJpbmdSZWY9XyxvKX1pZigic3RyaW5nIiE9dHlwZW9mIHMpdGhyb3cgRXJyb3IocCgyODQpKTtpZighaS5fb3duZXIpdGhyb3cgRXJyb3IocCgyOTAscykpfXJldHVybiBzfWZ1bmN0aW9uIE1nKHMsbyl7dGhyb3cgcz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobyksRXJyb3IocCgzMSwiW29iamVjdCBPYmplY3RdIj09PXM/Im9iamVjdCB3aXRoIGtleXMgeyIrT2JqZWN0LmtleXMobykuam9pbigiLCAiKSsifSI6cykpfWZ1bmN0aW9uIE5nKHMpe3JldHVybigwLHMuX2luaXQpKHMuX3BheWxvYWQpfWZ1bmN0aW9uIE9nKHMpe2Z1bmN0aW9uIGIobyxpKXtpZihzKXt2YXIgYT1vLmRlbGV0aW9ucztudWxsPT09YT8oby5kZWxldGlvbnM9W2ldLG8uZmxhZ3N8PTE2KTphLnB1c2goaSl9fWZ1bmN0aW9uIGMobyxpKXtpZighcylyZXR1cm4gbnVsbDtmb3IoO251bGwhPT1pOyliKG8saSksaT1pLnNpYmxpbmc7cmV0dXJuIG51bGx9ZnVuY3Rpb24gZChzLG8pe2ZvcihzPW5ldyBNYXA7bnVsbCE9PW87KW51bGwhPT1vLmtleT9zLnNldChvLmtleSxvKTpzLnNldChvLmluZGV4LG8pLG89by5zaWJsaW5nO3JldHVybiBzfWZ1bmN0aW9uIGUocyxvKXtyZXR1cm4ocz1QZyhzLG8pKS5pbmRleD0wLHMuc2libGluZz1udWxsLHN9ZnVuY3Rpb24gZihvLGksYSl7cmV0dXJuIG8uaW5kZXg9YSxzP251bGwhPT0oYT1vLmFsdGVybmF0ZSk/KGE9YS5pbmRleCk8aT8oby5mbGFnc3w9MixpKTphOihvLmZsYWdzfD0yLGkpOihvLmZsYWdzfD0xMDQ4NTc2LGkpfWZ1bmN0aW9uIGcobyl7cmV0dXJuIHMmJm51bGw9PT1vLmFsdGVybmF0ZSYmKG8uZmxhZ3N8PTIpLG99ZnVuY3Rpb24gaChzLG8saSxhKXtyZXR1cm4gbnVsbD09PW98fDYhPT1vLnRhZz8oKG89UWcoaSxzLm1vZGUsYSkpLnJldHVybj1zLG8pOigobz1lKG8saSkpLnJldHVybj1zLG8pfWZ1bmN0aW9uIGsocyxvLGksYSl7dmFyIHU9aS50eXBlO3JldHVybiB1PT09Wj9tKHMsbyxpLnByb3BzLmNoaWxkcmVuLGEsaS5rZXkpOm51bGwhPT1vJiYoby5lbGVtZW50VHlwZT09PXV8fCJvYmplY3QiPT10eXBlb2YgdSYmbnVsbCE9PXUmJnUuJCR0eXBlb2Y9PT15ZSYmTmcodSk9PT1vLnR5cGUpPygoYT1lKG8saS5wcm9wcykpLnJlZj1MZyhzLG8saSksYS5yZXR1cm49cyxhKTooKGE9UmcoaS50eXBlLGkua2V5LGkucHJvcHMsbnVsbCxzLm1vZGUsYSkpLnJlZj1MZyhzLG8saSksYS5yZXR1cm49cyxhKX1mdW5jdGlvbiBsKHMsbyxpLGEpe3JldHVybiBudWxsPT09b3x8NCE9PW8udGFnfHxvLnN0YXRlTm9kZS5jb250YWluZXJJbmZvIT09aS5jb250YWluZXJJbmZvfHxvLnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiE9PWkuaW1wbGVtZW50YXRpb24/KChvPVNnKGkscy5tb2RlLGEpKS5yZXR1cm49cyxvKTooKG89ZShvLGkuY2hpbGRyZW58fFtdKSkucmV0dXJuPXMsbyl9ZnVuY3Rpb24gbShzLG8saSxhLHUpe3JldHVybiBudWxsPT09b3x8NyE9PW8udGFnPygobz1UZyhpLHMubW9kZSxhLHUpKS5yZXR1cm49cyxvKTooKG89ZShvLGkpKS5yZXR1cm49cyxvKX1mdW5jdGlvbiBxKHMsbyxpKXtpZigic3RyaW5nIj09dHlwZW9mIG8mJiIiIT09b3x8Im51bWJlciI9PXR5cGVvZiBvKXJldHVybihvPVFnKCIiK28scy5tb2RlLGkpKS5yZXR1cm49cyxvO2lmKCJvYmplY3QiPT10eXBlb2YgbyYmbnVsbCE9PW8pe3N3aXRjaChvLiQkdHlwZW9mKXtjYXNlIHo6cmV0dXJuKGk9Umcoby50eXBlLG8ua2V5LG8ucHJvcHMsbnVsbCxzLm1vZGUsaSkpLnJlZj1MZyhzLG51bGwsbyksaS5yZXR1cm49cyxpO2Nhc2UgWTpyZXR1cm4obz1TZyhvLHMubW9kZSxpKSkucmV0dXJuPXMsbztjYXNlIHllOnJldHVybiBxKHMsKDAsby5faW5pdCkoby5fcGF5bG9hZCksaSl9aWYoUGUobyl8fEthKG8pKXJldHVybihvPVRnKG8scy5tb2RlLGksbnVsbCkpLnJldHVybj1zLG87TWcocyxvKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiByKHMsbyxpLGEpe3ZhciB1PW51bGwhPT1vP28ua2V5Om51bGw7aWYoInN0cmluZyI9PXR5cGVvZiBpJiYiIiE9PWl8fCJudW1iZXIiPT10eXBlb2YgaSlyZXR1cm4gbnVsbCE9PXU/bnVsbDpoKHMsbywiIitpLGEpO2lmKCJvYmplY3QiPT10eXBlb2YgaSYmbnVsbCE9PWkpe3N3aXRjaChpLiQkdHlwZW9mKXtjYXNlIHo6cmV0dXJuIGkua2V5PT09dT9rKHMsbyxpLGEpOm51bGw7Y2FzZSBZOnJldHVybiBpLmtleT09PXU/bChzLG8saSxhKTpudWxsO2Nhc2UgeWU6cmV0dXJuIHIocyxvLCh1PWkuX2luaXQpKGkuX3BheWxvYWQpLGEpfWlmKFBlKGkpfHxLYShpKSlyZXR1cm4gbnVsbCE9PXU/bnVsbDptKHMsbyxpLGEsbnVsbCk7TWcocyxpKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiB5KHMsbyxpLGEsdSl7aWYoInN0cmluZyI9PXR5cGVvZiBhJiYiIiE9PWF8fCJudW1iZXIiPT10eXBlb2YgYSlyZXR1cm4gaChvLHM9cy5nZXQoaSl8fG51bGwsIiIrYSx1KTtpZigib2JqZWN0Ij09dHlwZW9mIGEmJm51bGwhPT1hKXtzd2l0Y2goYS4kJHR5cGVvZil7Y2FzZSB6OnJldHVybiBrKG8scz1zLmdldChudWxsPT09YS5rZXk/aTphLmtleSl8fG51bGwsYSx1KTtjYXNlIFk6cmV0dXJuIGwobyxzPXMuZ2V0KG51bGw9PT1hLmtleT9pOmEua2V5KXx8bnVsbCxhLHUpO2Nhc2UgeWU6cmV0dXJuIHkocyxvLGksKDAsYS5faW5pdCkoYS5fcGF5bG9hZCksdSl9aWYoUGUoYSl8fEthKGEpKXJldHVybiBtKG8scz1zLmdldChpKXx8bnVsbCxhLHUsbnVsbCk7TWcobyxhKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBuKG8saSxhLHUpe2Zvcih2YXIgXz1udWxsLHc9bnVsbCx4PWksQz1pPTAsaj1udWxsO251bGwhPT14JiZDPGEubGVuZ3RoO0MrKyl7eC5pbmRleD5DPyhqPXgseD1udWxsKTpqPXguc2libGluZzt2YXIgTD1yKG8seCxhW0NdLHUpO2lmKG51bGw9PT1MKXtudWxsPT09eCYmKHg9aik7YnJlYWt9cyYmeCYmbnVsbD09PUwuYWx0ZXJuYXRlJiZiKG8seCksaT1mKEwsaSxDKSxudWxsPT09dz9fPUw6dy5zaWJsaW5nPUwsdz1MLHg9an1pZihDPT09YS5sZW5ndGgpcmV0dXJuIGMobyx4KSxGbiYmdGcobyxDKSxfO2lmKG51bGw9PT14KXtmb3IoO0M8YS5sZW5ndGg7QysrKW51bGwhPT0oeD1xKG8sYVtDXSx1KSkmJihpPWYoeCxpLEMpLG51bGw9PT13P189eDp3LnNpYmxpbmc9eCx3PXgpO3JldHVybiBGbiYmdGcobyxDKSxffWZvcih4PWQobyx4KTtDPGEubGVuZ3RoO0MrKyludWxsIT09KGo9eSh4LG8sQyxhW0NdLHUpKSYmKHMmJm51bGwhPT1qLmFsdGVybmF0ZSYmeC5kZWxldGUobnVsbD09PWoua2V5P0M6ai5rZXkpLGk9ZihqLGksQyksbnVsbD09PXc/Xz1qOncuc2libGluZz1qLHc9aik7cmV0dXJuIHMmJnguZm9yRWFjaCgoZnVuY3Rpb24ocyl7cmV0dXJuIGIobyxzKX0pKSxGbiYmdGcobyxDKSxffWZ1bmN0aW9uIHQobyxpLGEsdSl7dmFyIF89S2EoYSk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIF8pdGhyb3cgRXJyb3IocCgxNTApKTtpZihudWxsPT0oYT1fLmNhbGwoYSkpKXRocm93IEVycm9yKHAoMTUxKSk7Zm9yKHZhciB3PV89bnVsbCx4PWksQz1pPTAsaj1udWxsLEw9YS5uZXh0KCk7bnVsbCE9PXgmJiFMLmRvbmU7QysrLEw9YS5uZXh0KCkpe3guaW5kZXg+Qz8oaj14LHg9bnVsbCk6aj14LnNpYmxpbmc7dmFyIEI9cihvLHgsTC52YWx1ZSx1KTtpZihudWxsPT09Qil7bnVsbD09PXgmJih4PWopO2JyZWFrfXMmJngmJm51bGw9PT1CLmFsdGVybmF0ZSYmYihvLHgpLGk9ZihCLGksQyksbnVsbD09PXc/Xz1COncuc2libGluZz1CLHc9Qix4PWp9aWYoTC5kb25lKXJldHVybiBjKG8seCksRm4mJnRnKG8sQyksXztpZihudWxsPT09eCl7Zm9yKDshTC5kb25lO0MrKyxMPWEubmV4dCgpKW51bGwhPT0oTD1xKG8sTC52YWx1ZSx1KSkmJihpPWYoTCxpLEMpLG51bGw9PT13P189TDp3LnNpYmxpbmc9TCx3PUwpO3JldHVybiBGbiYmdGcobyxDKSxffWZvcih4PWQobyx4KTshTC5kb25lO0MrKyxMPWEubmV4dCgpKW51bGwhPT0oTD15KHgsbyxDLEwudmFsdWUsdSkpJiYocyYmbnVsbCE9PUwuYWx0ZXJuYXRlJiZ4LmRlbGV0ZShudWxsPT09TC5rZXk/QzpMLmtleSksaT1mKEwsaSxDKSxudWxsPT09dz9fPUw6dy5zaWJsaW5nPUwsdz1MKTtyZXR1cm4gcyYmeC5mb3JFYWNoKChmdW5jdGlvbihzKXtyZXR1cm4gYihvLHMpfSkpLEZuJiZ0ZyhvLEMpLF99cmV0dXJuIGZ1bmN0aW9uIEoocyxvLGksYSl7aWYoIm9iamVjdCI9PXR5cGVvZiBpJiZudWxsIT09aSYmaS50eXBlPT09WiYmbnVsbD09PWkua2V5JiYoaT1pLnByb3BzLmNoaWxkcmVuKSwib2JqZWN0Ij09dHlwZW9mIGkmJm51bGwhPT1pKXtzd2l0Y2goaS4kJHR5cGVvZil7Y2FzZSB6OmU6e2Zvcih2YXIgdT1pLmtleSxfPW87bnVsbCE9PV87KXtpZihfLmtleT09PXUpe2lmKCh1PWkudHlwZSk9PT1aKXtpZig3PT09Xy50YWcpe2MocyxfLnNpYmxpbmcpLChvPWUoXyxpLnByb3BzLmNoaWxkcmVuKSkucmV0dXJuPXMscz1vO2JyZWFrIGV9fWVsc2UgaWYoXy5lbGVtZW50VHlwZT09PXV8fCJvYmplY3QiPT10eXBlb2YgdSYmbnVsbCE9PXUmJnUuJCR0eXBlb2Y9PT15ZSYmTmcodSk9PT1fLnR5cGUpe2MocyxfLnNpYmxpbmcpLChvPWUoXyxpLnByb3BzKSkucmVmPUxnKHMsXyxpKSxvLnJldHVybj1zLHM9bzticmVhayBlfWMocyxfKTticmVha31iKHMsXyksXz1fLnNpYmxpbmd9aS50eXBlPT09Wj8oKG89VGcoaS5wcm9wcy5jaGlsZHJlbixzLm1vZGUsYSxpLmtleSkpLnJldHVybj1zLHM9byk6KChhPVJnKGkudHlwZSxpLmtleSxpLnByb3BzLG51bGwscy5tb2RlLGEpKS5yZWY9TGcocyxvLGkpLGEucmV0dXJuPXMscz1hKX1yZXR1cm4gZyhzKTtjYXNlIFk6ZTp7Zm9yKF89aS5rZXk7bnVsbCE9PW87KXtpZihvLmtleT09PV8pe2lmKDQ9PT1vLnRhZyYmby5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PWkuY29udGFpbmVySW5mbyYmby5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb249PT1pLmltcGxlbWVudGF0aW9uKXtjKHMsby5zaWJsaW5nKSwobz1lKG8saS5jaGlsZHJlbnx8W10pKS5yZXR1cm49cyxzPW87YnJlYWsgZX1jKHMsbyk7YnJlYWt9YihzLG8pLG89by5zaWJsaW5nfShvPVNnKGkscy5tb2RlLGEpKS5yZXR1cm49cyxzPW99cmV0dXJuIGcocyk7Y2FzZSB5ZTpyZXR1cm4gSihzLG8sKF89aS5faW5pdCkoaS5fcGF5bG9hZCksYSl9aWYoUGUoaSkpcmV0dXJuIG4ocyxvLGksYSk7aWYoS2EoaSkpcmV0dXJuIHQocyxvLGksYSk7TWcocyxpKX1yZXR1cm4ic3RyaW5nIj09dHlwZW9mIGkmJiIiIT09aXx8Im51bWJlciI9PXR5cGVvZiBpPyhpPSIiK2ksbnVsbCE9PW8mJjY9PT1vLnRhZz8oYyhzLG8uc2libGluZyksKG89ZShvLGkpKS5yZXR1cm49cyxzPW8pOihjKHMsbyksKG89UWcoaSxzLm1vZGUsYSkpLnJldHVybj1zLHM9byksZyhzKSk6YyhzLG8pfX12YXIgcW49T2coITApLFZuPU9nKCExKSxVbj1VZihudWxsKSx6bj1udWxsLFduPW51bGwsSm49bnVsbDtmdW5jdGlvbiAkZygpe0puPVduPXpuPW51bGx9ZnVuY3Rpb24gYWgocyl7dmFyIG89VW4uY3VycmVudDtFKFVuKSxzLl9jdXJyZW50VmFsdWU9b31mdW5jdGlvbiBiaChzLG8saSl7Zm9yKDtudWxsIT09czspe3ZhciBhPXMuYWx0ZXJuYXRlO2lmKChzLmNoaWxkTGFuZXMmbykhPT1vPyhzLmNoaWxkTGFuZXN8PW8sbnVsbCE9PWEmJihhLmNoaWxkTGFuZXN8PW8pKTpudWxsIT09YSYmKGEuY2hpbGRMYW5lcyZvKSE9PW8mJihhLmNoaWxkTGFuZXN8PW8pLHM9PT1pKWJyZWFrO3M9cy5yZXR1cm59fWZ1bmN0aW9uIGNoKHMsbyl7em49cyxKbj1Xbj1udWxsLG51bGwhPT0ocz1zLmRlcGVuZGVuY2llcykmJm51bGwhPT1zLmZpcnN0Q29udGV4dCYmKCEhKHMubGFuZXMmbykmJihicz0hMCkscy5maXJzdENvbnRleHQ9bnVsbCl9ZnVuY3Rpb24gZWgocyl7dmFyIG89cy5fY3VycmVudFZhbHVlO2lmKEpuIT09cylpZihzPXtjb250ZXh0OnMsbWVtb2l6ZWRWYWx1ZTpvLG5leHQ6bnVsbH0sbnVsbD09PVduKXtpZihudWxsPT09em4pdGhyb3cgRXJyb3IocCgzMDgpKTtXbj1zLHpuLmRlcGVuZGVuY2llcz17bGFuZXM6MCxmaXJzdENvbnRleHQ6c319ZWxzZSBXbj1Xbi5uZXh0PXM7cmV0dXJuIG99dmFyIEhuPW51bGw7ZnVuY3Rpb24gZ2gocyl7bnVsbD09PUhuP0huPVtzXTpIbi5wdXNoKHMpfWZ1bmN0aW9uIGhoKHMsbyxpLGEpe3ZhciB1PW8uaW50ZXJsZWF2ZWQ7cmV0dXJuIG51bGw9PT11PyhpLm5leHQ9aSxnaChvKSk6KGkubmV4dD11Lm5leHQsdS5uZXh0PWkpLG8uaW50ZXJsZWF2ZWQ9aSxpaChzLGEpfWZ1bmN0aW9uIGloKHMsbyl7cy5sYW5lc3w9bzt2YXIgaT1zLmFsdGVybmF0ZTtmb3IobnVsbCE9PWkmJihpLmxhbmVzfD1vKSxpPXMscz1zLnJldHVybjtudWxsIT09czspcy5jaGlsZExhbmVzfD1vLG51bGwhPT0oaT1zLmFsdGVybmF0ZSkmJihpLmNoaWxkTGFuZXN8PW8pLGk9cyxzPXMucmV0dXJuO3JldHVybiAzPT09aS50YWc/aS5zdGF0ZU5vZGU6bnVsbH12YXIgS249ITE7ZnVuY3Rpb24ga2gocyl7cy51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOnMubWVtb2l6ZWRTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6bnVsbCxsYXN0QmFzZVVwZGF0ZTpudWxsLHNoYXJlZDp7cGVuZGluZzpudWxsLGludGVybGVhdmVkOm51bGwsbGFuZXM6MH0sZWZmZWN0czpudWxsfX1mdW5jdGlvbiBsaChzLG8pe3M9cy51cGRhdGVRdWV1ZSxvLnVwZGF0ZVF1ZXVlPT09cyYmKG8udXBkYXRlUXVldWU9e2Jhc2VTdGF0ZTpzLmJhc2VTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6cy5maXJzdEJhc2VVcGRhdGUsbGFzdEJhc2VVcGRhdGU6cy5sYXN0QmFzZVVwZGF0ZSxzaGFyZWQ6cy5zaGFyZWQsZWZmZWN0czpzLmVmZmVjdHN9KX1mdW5jdGlvbiBtaChzLG8pe3JldHVybntldmVudFRpbWU6cyxsYW5lOm8sdGFnOjAscGF5bG9hZDpudWxsLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfX1mdW5jdGlvbiBuaChzLG8saSl7dmFyIGE9cy51cGRhdGVRdWV1ZTtpZihudWxsPT09YSlyZXR1cm4gbnVsbDtpZihhPWEuc2hhcmVkLDImTHMpe3ZhciB1PWEucGVuZGluZztyZXR1cm4gbnVsbD09PXU/by5uZXh0PW86KG8ubmV4dD11Lm5leHQsdS5uZXh0PW8pLGEucGVuZGluZz1vLGloKHMsaSl9cmV0dXJuIG51bGw9PT0odT1hLmludGVybGVhdmVkKT8oby5uZXh0PW8sZ2goYSkpOihvLm5leHQ9dS5uZXh0LHUubmV4dD1vKSxhLmludGVybGVhdmVkPW8saWgocyxpKX1mdW5jdGlvbiBvaChzLG8saSl7aWYobnVsbCE9PShvPW8udXBkYXRlUXVldWUpJiYobz1vLnNoYXJlZCw0MTk0MjQwJmkpKXt2YXIgYT1vLmxhbmVzO2l8PWEmPXMucGVuZGluZ0xhbmVzLG8ubGFuZXM9aSxDYyhzLGkpfX1mdW5jdGlvbiBwaChzLG8pe3ZhciBpPXMudXBkYXRlUXVldWUsYT1zLmFsdGVybmF0ZTtpZihudWxsIT09YSYmaT09PShhPWEudXBkYXRlUXVldWUpKXt2YXIgdT1udWxsLF89bnVsbDtpZihudWxsIT09KGk9aS5maXJzdEJhc2VVcGRhdGUpKXtkb3t2YXIgdz17ZXZlbnRUaW1lOmkuZXZlbnRUaW1lLGxhbmU6aS5sYW5lLHRhZzppLnRhZyxwYXlsb2FkOmkucGF5bG9hZCxjYWxsYmFjazppLmNhbGxiYWNrLG5leHQ6bnVsbH07bnVsbD09PV8/dT1fPXc6Xz1fLm5leHQ9dyxpPWkubmV4dH13aGlsZShudWxsIT09aSk7bnVsbD09PV8/dT1fPW86Xz1fLm5leHQ9b31lbHNlIHU9Xz1vO3JldHVybiBpPXtiYXNlU3RhdGU6YS5iYXNlU3RhdGUsZmlyc3RCYXNlVXBkYXRlOnUsbGFzdEJhc2VVcGRhdGU6XyxzaGFyZWQ6YS5zaGFyZWQsZWZmZWN0czphLmVmZmVjdHN9LHZvaWQocy51cGRhdGVRdWV1ZT1pKX1udWxsPT09KHM9aS5sYXN0QmFzZVVwZGF0ZSk/aS5maXJzdEJhc2VVcGRhdGU9bzpzLm5leHQ9byxpLmxhc3RCYXNlVXBkYXRlPW99ZnVuY3Rpb24gcWgocyxvLGksYSl7dmFyIHU9cy51cGRhdGVRdWV1ZTtLbj0hMTt2YXIgXz11LmZpcnN0QmFzZVVwZGF0ZSx3PXUubGFzdEJhc2VVcGRhdGUseD11LnNoYXJlZC5wZW5kaW5nO2lmKG51bGwhPT14KXt1LnNoYXJlZC5wZW5kaW5nPW51bGw7dmFyIEM9eCxqPUMubmV4dDtDLm5leHQ9bnVsbCxudWxsPT09dz9fPWo6dy5uZXh0PWosdz1DO3ZhciBMPXMuYWx0ZXJuYXRlO251bGwhPT1MJiYoKHg9KEw9TC51cGRhdGVRdWV1ZSkubGFzdEJhc2VVcGRhdGUpIT09dyYmKG51bGw9PT14P0wuZmlyc3RCYXNlVXBkYXRlPWo6eC5uZXh0PWosTC5sYXN0QmFzZVVwZGF0ZT1DKSl9aWYobnVsbCE9PV8pe3ZhciBCPXUuYmFzZVN0YXRlO2Zvcih3PTAsTD1qPUM9bnVsbCx4PV87Oyl7dmFyICQ9eC5sYW5lLFY9eC5ldmVudFRpbWU7aWYoKGEmJCk9PT0kKXtudWxsIT09TCYmKEw9TC5uZXh0PXtldmVudFRpbWU6VixsYW5lOjAsdGFnOngudGFnLHBheWxvYWQ6eC5wYXlsb2FkLGNhbGxiYWNrOnguY2FsbGJhY2ssbmV4dDpudWxsfSk7ZTp7dmFyIFU9cyx6PXg7c3dpdGNoKCQ9byxWPWksei50YWcpe2Nhc2UgMTppZigiZnVuY3Rpb24iPT10eXBlb2YoVT16LnBheWxvYWQpKXtCPVUuY2FsbChWLEIsJCk7YnJlYWsgZX1CPVU7YnJlYWsgZTtjYXNlIDM6VS5mbGFncz0tNjU1MzcmVS5mbGFnc3wxMjg7Y2FzZSAwOmlmKG51bGw9PSgkPSJmdW5jdGlvbiI9PXR5cGVvZihVPXoucGF5bG9hZCk/VS5jYWxsKFYsQiwkKTpVKSlicmVhayBlO0I9d2Uoe30sQiwkKTticmVhayBlO2Nhc2UgMjpLbj0hMH19bnVsbCE9PXguY2FsbGJhY2smJjAhPT14LmxhbmUmJihzLmZsYWdzfD02NCxudWxsPT09KCQ9dS5lZmZlY3RzKT91LmVmZmVjdHM9W3hdOiQucHVzaCh4KSl9ZWxzZSBWPXtldmVudFRpbWU6VixsYW5lOiQsdGFnOngudGFnLHBheWxvYWQ6eC5wYXlsb2FkLGNhbGxiYWNrOnguY2FsbGJhY2ssbmV4dDpudWxsfSxudWxsPT09TD8oaj1MPVYsQz1CKTpMPUwubmV4dD1WLHd8PSQ7aWYobnVsbD09PSh4PXgubmV4dCkpe2lmKG51bGw9PT0oeD11LnNoYXJlZC5wZW5kaW5nKSlicmVhazt4PSgkPXgpLm5leHQsJC5uZXh0PW51bGwsdS5sYXN0QmFzZVVwZGF0ZT0kLHUuc2hhcmVkLnBlbmRpbmc9bnVsbH19aWYobnVsbD09PUwmJihDPUIpLHUuYmFzZVN0YXRlPUMsdS5maXJzdEJhc2VVcGRhdGU9aix1Lmxhc3RCYXNlVXBkYXRlPUwsbnVsbCE9PShvPXUuc2hhcmVkLmludGVybGVhdmVkKSl7dT1vO2Rve3d8PXUubGFuZSx1PXUubmV4dH13aGlsZSh1IT09byl9ZWxzZSBudWxsPT09XyYmKHUuc2hhcmVkLmxhbmVzPTApO1dzfD13LHMubGFuZXM9dyxzLm1lbW9pemVkU3RhdGU9Qn19ZnVuY3Rpb24gc2gocyxvLGkpe2lmKHM9by5lZmZlY3RzLG8uZWZmZWN0cz1udWxsLG51bGwhPT1zKWZvcihvPTA7bzxzLmxlbmd0aDtvKyspe3ZhciBhPXNbb10sdT1hLmNhbGxiYWNrO2lmKG51bGwhPT11KXtpZihhLmNhbGxiYWNrPW51bGwsYT1pLCJmdW5jdGlvbiIhPXR5cGVvZiB1KXRocm93IEVycm9yKHAoMTkxLHUpKTt1LmNhbGwoYSl9fX12YXIgR249e30sWW49VWYoR24pLFhuPVVmKEduKSxRbj1VZihHbik7ZnVuY3Rpb24geGgocyl7aWYocz09PUduKXRocm93IEVycm9yKHAoMTc0KSk7cmV0dXJuIHN9ZnVuY3Rpb24geWgocyxvKXtzd2l0Y2goRyhRbixvKSxHKFhuLHMpLEcoWW4sR24pLHM9by5ub2RlVHlwZSl7Y2FzZSA5OmNhc2UgMTE6bz0obz1vLmRvY3VtZW50RWxlbWVudCk/by5uYW1lc3BhY2VVUkk6bGIobnVsbCwiIik7YnJlYWs7ZGVmYXVsdDpvPWxiKG89KHM9OD09PXM/by5wYXJlbnROb2RlOm8pLm5hbWVzcGFjZVVSSXx8bnVsbCxzPXMudGFnTmFtZSl9RShZbiksRyhZbixvKX1mdW5jdGlvbiB6aCgpe0UoWW4pLEUoWG4pLEUoUW4pfWZ1bmN0aW9uIEFoKHMpe3hoKFFuLmN1cnJlbnQpO3ZhciBvPXhoKFluLmN1cnJlbnQpLGk9bGIobyxzLnR5cGUpO28hPT1pJiYoRyhYbixzKSxHKFluLGkpKX1mdW5jdGlvbiBCaChzKXtYbi5jdXJyZW50PT09cyYmKEUoWW4pLEUoWG4pKX12YXIgWm49VWYoMCk7ZnVuY3Rpb24gQ2gocyl7Zm9yKHZhciBvPXM7bnVsbCE9PW87KXtpZigxMz09PW8udGFnKXt2YXIgaT1vLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWkmJihudWxsPT09KGk9aS5kZWh5ZHJhdGVkKXx8IiQ/Ij09PWkuZGF0YXx8IiQhIj09PWkuZGF0YSkpcmV0dXJuIG99ZWxzZSBpZigxOT09PW8udGFnJiZ2b2lkIDAhPT1vLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXIpe2lmKDEyOCZvLmZsYWdzKXJldHVybiBvfWVsc2UgaWYobnVsbCE9PW8uY2hpbGQpe28uY2hpbGQucmV0dXJuPW8sbz1vLmNoaWxkO2NvbnRpbnVlfWlmKG89PT1zKWJyZWFrO2Zvcig7bnVsbD09PW8uc2libGluZzspe2lmKG51bGw9PT1vLnJldHVybnx8by5yZXR1cm49PT1zKXJldHVybiBudWxsO289by5yZXR1cm59by5zaWJsaW5nLnJldHVybj1vLnJldHVybixvPW8uc2libGluZ31yZXR1cm4gbnVsbH12YXIgZXM9W107ZnVuY3Rpb24gRWgoKXtmb3IodmFyIHM9MDtzPGVzLmxlbmd0aDtzKyspZXNbc10uX3dvcmtJblByb2dyZXNzVmVyc2lvblByaW1hcnk9bnVsbDtlcy5sZW5ndGg9MH12YXIgdHM9VS5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLHJzPVUuUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsbnM9MCxzcz1udWxsLG9zPW51bGwsYXM9bnVsbCxjcz0hMSxscz0hMSx1cz0wLHBzPTA7ZnVuY3Rpb24gUCgpe3Rocm93IEVycm9yKHAoMzIxKSl9ZnVuY3Rpb24gTWgocyxvKXtpZihudWxsPT09bylyZXR1cm4hMTtmb3IodmFyIGk9MDtpPG8ubGVuZ3RoJiZpPHMubGVuZ3RoO2krKylpZighRHIoc1tpXSxvW2ldKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBOaChzLG8saSxhLHUsXyl7aWYobnM9Xyxzcz1vLG8ubWVtb2l6ZWRTdGF0ZT1udWxsLG8udXBkYXRlUXVldWU9bnVsbCxvLmxhbmVzPTAsdHMuY3VycmVudD1udWxsPT09c3x8bnVsbD09PXMubWVtb2l6ZWRTdGF0ZT9kczpmcyxzPWkoYSx1KSxscyl7Xz0wO2Rve2lmKGxzPSExLHVzPTAsMjU8PV8pdGhyb3cgRXJyb3IocCgzMDEpKTtfKz0xLGFzPW9zPW51bGwsby51cGRhdGVRdWV1ZT1udWxsLHRzLmN1cnJlbnQ9bXMscz1pKGEsdSl9d2hpbGUobHMpfWlmKHRzLmN1cnJlbnQ9aHMsbz1udWxsIT09b3MmJm51bGwhPT1vcy5uZXh0LG5zPTAsYXM9b3M9c3M9bnVsbCxjcz0hMSxvKXRocm93IEVycm9yKHAoMzAwKSk7cmV0dXJuIHN9ZnVuY3Rpb24gU2goKXt2YXIgcz0wIT09dXM7cmV0dXJuIHVzPTAsc31mdW5jdGlvbiBUaCgpe3ZhciBzPXttZW1vaXplZFN0YXRlOm51bGwsYmFzZVN0YXRlOm51bGwsYmFzZVF1ZXVlOm51bGwscXVldWU6bnVsbCxuZXh0Om51bGx9O3JldHVybiBudWxsPT09YXM/c3MubWVtb2l6ZWRTdGF0ZT1hcz1zOmFzPWFzLm5leHQ9cyxhc31mdW5jdGlvbiBVaCgpe2lmKG51bGw9PT1vcyl7dmFyIHM9c3MuYWx0ZXJuYXRlO3M9bnVsbCE9PXM/cy5tZW1vaXplZFN0YXRlOm51bGx9ZWxzZSBzPW9zLm5leHQ7dmFyIG89bnVsbD09PWFzP3NzLm1lbW9pemVkU3RhdGU6YXMubmV4dDtpZihudWxsIT09bylhcz1vLG9zPXM7ZWxzZXtpZihudWxsPT09cyl0aHJvdyBFcnJvcihwKDMxMCkpO3M9e21lbW9pemVkU3RhdGU6KG9zPXMpLm1lbW9pemVkU3RhdGUsYmFzZVN0YXRlOm9zLmJhc2VTdGF0ZSxiYXNlUXVldWU6b3MuYmFzZVF1ZXVlLHF1ZXVlOm9zLnF1ZXVlLG5leHQ6bnVsbH0sbnVsbD09PWFzP3NzLm1lbW9pemVkU3RhdGU9YXM9czphcz1hcy5uZXh0PXN9cmV0dXJuIGFzfWZ1bmN0aW9uIFZoKHMsbyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG8/byhzKTpvfWZ1bmN0aW9uIFdoKHMpe3ZhciBvPVVoKCksaT1vLnF1ZXVlO2lmKG51bGw9PT1pKXRocm93IEVycm9yKHAoMzExKSk7aS5sYXN0UmVuZGVyZWRSZWR1Y2VyPXM7dmFyIGE9b3MsdT1hLmJhc2VRdWV1ZSxfPWkucGVuZGluZztpZihudWxsIT09Xyl7aWYobnVsbCE9PXUpe3ZhciB3PXUubmV4dDt1Lm5leHQ9Xy5uZXh0LF8ubmV4dD13fWEuYmFzZVF1ZXVlPXU9XyxpLnBlbmRpbmc9bnVsbH1pZihudWxsIT09dSl7Xz11Lm5leHQsYT1hLmJhc2VTdGF0ZTt2YXIgeD13PW51bGwsQz1udWxsLGo9Xztkb3t2YXIgTD1qLmxhbmU7aWYoKG5zJkwpPT09TCludWxsIT09QyYmKEM9Qy5uZXh0PXtsYW5lOjAsYWN0aW9uOmouYWN0aW9uLGhhc0VhZ2VyU3RhdGU6ai5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6ai5lYWdlclN0YXRlLG5leHQ6bnVsbH0pLGE9ai5oYXNFYWdlclN0YXRlP2ouZWFnZXJTdGF0ZTpzKGEsai5hY3Rpb24pO2Vsc2V7dmFyIEI9e2xhbmU6TCxhY3Rpb246ai5hY3Rpb24saGFzRWFnZXJTdGF0ZTpqLmhhc0VhZ2VyU3RhdGUsZWFnZXJTdGF0ZTpqLmVhZ2VyU3RhdGUsbmV4dDpudWxsfTtudWxsPT09Qz8oeD1DPUIsdz1hKTpDPUMubmV4dD1CLHNzLmxhbmVzfD1MLFdzfD1MfWo9ai5uZXh0fXdoaWxlKG51bGwhPT1qJiZqIT09Xyk7bnVsbD09PUM/dz1hOkMubmV4dD14LERyKGEsby5tZW1vaXplZFN0YXRlKXx8KGJzPSEwKSxvLm1lbW9pemVkU3RhdGU9YSxvLmJhc2VTdGF0ZT13LG8uYmFzZVF1ZXVlPUMsaS5sYXN0UmVuZGVyZWRTdGF0ZT1hfWlmKG51bGwhPT0ocz1pLmludGVybGVhdmVkKSl7dT1zO2Rve189dS5sYW5lLHNzLmxhbmVzfD1fLFdzfD1fLHU9dS5uZXh0fXdoaWxlKHUhPT1zKX1lbHNlIG51bGw9PT11JiYoaS5sYW5lcz0wKTtyZXR1cm5bby5tZW1vaXplZFN0YXRlLGkuZGlzcGF0Y2hdfWZ1bmN0aW9uIFhoKHMpe3ZhciBvPVVoKCksaT1vLnF1ZXVlO2lmKG51bGw9PT1pKXRocm93IEVycm9yKHAoMzExKSk7aS5sYXN0UmVuZGVyZWRSZWR1Y2VyPXM7dmFyIGE9aS5kaXNwYXRjaCx1PWkucGVuZGluZyxfPW8ubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09dSl7aS5wZW5kaW5nPW51bGw7dmFyIHc9dT11Lm5leHQ7ZG97Xz1zKF8sdy5hY3Rpb24pLHc9dy5uZXh0fXdoaWxlKHchPT11KTtEcihfLG8ubWVtb2l6ZWRTdGF0ZSl8fChicz0hMCksby5tZW1vaXplZFN0YXRlPV8sbnVsbD09PW8uYmFzZVF1ZXVlJiYoby5iYXNlU3RhdGU9XyksaS5sYXN0UmVuZGVyZWRTdGF0ZT1ffXJldHVybltfLGFdfWZ1bmN0aW9uIFloKCl7fWZ1bmN0aW9uIFpoKHMsbyl7dmFyIGk9c3MsYT1VaCgpLHU9bygpLF89IURyKGEubWVtb2l6ZWRTdGF0ZSx1KTtpZihfJiYoYS5tZW1vaXplZFN0YXRlPXUsYnM9ITApLGE9YS5xdWV1ZSwkaChhaS5iaW5kKG51bGwsaSxhLHMpLFtzXSksYS5nZXRTbmFwc2hvdCE9PW98fF98fG51bGwhPT1hcyYmMSZhcy5tZW1vaXplZFN0YXRlLnRhZyl7aWYoaS5mbGFnc3w9MjA0OCxiaSg5LGNpLmJpbmQobnVsbCxpLGEsdSxvKSx2b2lkIDAsbnVsbCksbnVsbD09PUZzKXRocm93IEVycm9yKHAoMzQ5KSk7MzAmbnN8fGRpKGksbyx1KX1yZXR1cm4gdX1mdW5jdGlvbiBkaShzLG8saSl7cy5mbGFnc3w9MTYzODQscz17Z2V0U25hcHNob3Q6byx2YWx1ZTppfSxudWxsPT09KG89c3MudXBkYXRlUXVldWUpPyhvPXtsYXN0RWZmZWN0Om51bGwsc3RvcmVzOm51bGx9LHNzLnVwZGF0ZVF1ZXVlPW8sby5zdG9yZXM9W3NdKTpudWxsPT09KGk9by5zdG9yZXMpP28uc3RvcmVzPVtzXTppLnB1c2gocyl9ZnVuY3Rpb24gY2kocyxvLGksYSl7by52YWx1ZT1pLG8uZ2V0U25hcHNob3Q9YSxlaShvKSYmZmkocyl9ZnVuY3Rpb24gYWkocyxvLGkpe3JldHVybiBpKChmdW5jdGlvbigpe2VpKG8pJiZmaShzKX0pKX1mdW5jdGlvbiBlaShzKXt2YXIgbz1zLmdldFNuYXBzaG90O3M9cy52YWx1ZTt0cnl7dmFyIGk9bygpO3JldHVybiFEcihzLGkpfWNhdGNoKHMpe3JldHVybiEwfX1mdW5jdGlvbiBmaShzKXt2YXIgbz1paChzLDEpO251bGwhPT1vJiZnaShvLHMsMSwtMSl9ZnVuY3Rpb24gaGkocyl7dmFyIG89VGgoKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgcyYmKHM9cygpKSxvLm1lbW9pemVkU3RhdGU9by5iYXNlU3RhdGU9cyxzPXtwZW5kaW5nOm51bGwsaW50ZXJsZWF2ZWQ6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjpWaCxsYXN0UmVuZGVyZWRTdGF0ZTpzfSxvLnF1ZXVlPXMscz1zLmRpc3BhdGNoPWlpLmJpbmQobnVsbCxzcyxzKSxbby5tZW1vaXplZFN0YXRlLHNdfWZ1bmN0aW9uIGJpKHMsbyxpLGEpe3JldHVybiBzPXt0YWc6cyxjcmVhdGU6byxkZXN0cm95OmksZGVwczphLG5leHQ6bnVsbH0sbnVsbD09PShvPXNzLnVwZGF0ZVF1ZXVlKT8obz17bGFzdEVmZmVjdDpudWxsLHN0b3JlczpudWxsfSxzcy51cGRhdGVRdWV1ZT1vLG8ubGFzdEVmZmVjdD1zLm5leHQ9cyk6bnVsbD09PShpPW8ubGFzdEVmZmVjdCk/by5sYXN0RWZmZWN0PXMubmV4dD1zOihhPWkubmV4dCxpLm5leHQ9cyxzLm5leHQ9YSxvLmxhc3RFZmZlY3Q9cyksc31mdW5jdGlvbiBqaSgpe3JldHVybiBVaCgpLm1lbW9pemVkU3RhdGV9ZnVuY3Rpb24ga2kocyxvLGksYSl7dmFyIHU9VGgoKTtzcy5mbGFnc3w9cyx1Lm1lbW9pemVkU3RhdGU9YmkoMXxvLGksdm9pZCAwLHZvaWQgMD09PWE/bnVsbDphKX1mdW5jdGlvbiBsaShzLG8saSxhKXt2YXIgdT1VaCgpO2E9dm9pZCAwPT09YT9udWxsOmE7dmFyIF89dm9pZCAwO2lmKG51bGwhPT1vcyl7dmFyIHc9b3MubWVtb2l6ZWRTdGF0ZTtpZihfPXcuZGVzdHJveSxudWxsIT09YSYmTWgoYSx3LmRlcHMpKXJldHVybiB2b2lkKHUubWVtb2l6ZWRTdGF0ZT1iaShvLGksXyxhKSl9c3MuZmxhZ3N8PXMsdS5tZW1vaXplZFN0YXRlPWJpKDF8byxpLF8sYSl9ZnVuY3Rpb24gbWkocyxvKXtyZXR1cm4ga2koODM5MDY1Niw4LHMsbyl9ZnVuY3Rpb24gJGgocyxvKXtyZXR1cm4gbGkoMjA0OCw4LHMsbyl9ZnVuY3Rpb24gbmkocyxvKXtyZXR1cm4gbGkoNCwyLHMsbyl9ZnVuY3Rpb24gb2kocyxvKXtyZXR1cm4gbGkoNCw0LHMsbyl9ZnVuY3Rpb24gcGkocyxvKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygbz8ocz1zKCksbyhzKSxmdW5jdGlvbigpe28obnVsbCl9KTpudWxsIT1vPyhzPXMoKSxvLmN1cnJlbnQ9cyxmdW5jdGlvbigpe28uY3VycmVudD1udWxsfSk6dm9pZCAwfWZ1bmN0aW9uIHFpKHMsbyxpKXtyZXR1cm4gaT1udWxsIT1pP2kuY29uY2F0KFtzXSk6bnVsbCxsaSg0LDQscGkuYmluZChudWxsLG8scyksaSl9ZnVuY3Rpb24gcmkoKXt9ZnVuY3Rpb24gc2kocyxvKXt2YXIgaT1VaCgpO289dm9pZCAwPT09bz9udWxsOm87dmFyIGE9aS5tZW1vaXplZFN0YXRlO3JldHVybiBudWxsIT09YSYmbnVsbCE9PW8mJk1oKG8sYVsxXSk/YVswXTooaS5tZW1vaXplZFN0YXRlPVtzLG9dLHMpfWZ1bmN0aW9uIHRpKHMsbyl7dmFyIGk9VWgoKTtvPXZvaWQgMD09PW8/bnVsbDpvO3ZhciBhPWkubWVtb2l6ZWRTdGF0ZTtyZXR1cm4gbnVsbCE9PWEmJm51bGwhPT1vJiZNaChvLGFbMV0pP2FbMF06KHM9cygpLGkubWVtb2l6ZWRTdGF0ZT1bcyxvXSxzKX1mdW5jdGlvbiB1aShzLG8saSl7cmV0dXJuIDIxJm5zPyhEcihpLG8pfHwoaT15YygpLHNzLmxhbmVzfD1pLFdzfD1pLHMuYmFzZVN0YXRlPSEwKSxvKToocy5iYXNlU3RhdGUmJihzLmJhc2VTdGF0ZT0hMSxicz0hMCkscy5tZW1vaXplZFN0YXRlPWkpfWZ1bmN0aW9uIHZpKHMsbyl7dmFyIGk9Q3Q7Q3Q9MCE9PWkmJjQ+aT9pOjQscyghMCk7dmFyIGE9cnMudHJhbnNpdGlvbjtycy50cmFuc2l0aW9uPXt9O3RyeXtzKCExKSxvKCl9ZmluYWxseXtDdD1pLHJzLnRyYW5zaXRpb249YX19ZnVuY3Rpb24gd2koKXtyZXR1cm4gVWgoKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIHhpKHMsbyxpKXt2YXIgYT15aShzKTtpZihpPXtsYW5lOmEsYWN0aW9uOmksaGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfSx6aShzKSlBaShvLGkpO2Vsc2UgaWYobnVsbCE9PShpPWhoKHMsbyxpLGEpKSl7Z2koaSxzLGEsUigpKSxCaShpLG8sYSl9fWZ1bmN0aW9uIGlpKHMsbyxpKXt2YXIgYT15aShzKSx1PXtsYW5lOmEsYWN0aW9uOmksaGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfTtpZih6aShzKSlBaShvLHUpO2Vsc2V7dmFyIF89cy5hbHRlcm5hdGU7aWYoMD09PXMubGFuZXMmJihudWxsPT09X3x8MD09PV8ubGFuZXMpJiZudWxsIT09KF89by5sYXN0UmVuZGVyZWRSZWR1Y2VyKSl0cnl7dmFyIHc9by5sYXN0UmVuZGVyZWRTdGF0ZSx4PV8odyxpKTtpZih1Lmhhc0VhZ2VyU3RhdGU9ITAsdS5lYWdlclN0YXRlPXgsRHIoeCx3KSl7dmFyIEM9by5pbnRlcmxlYXZlZDtyZXR1cm4gbnVsbD09PUM/KHUubmV4dD11LGdoKG8pKToodS5uZXh0PUMubmV4dCxDLm5leHQ9dSksdm9pZChvLmludGVybGVhdmVkPXUpfX1jYXRjaChzKXt9bnVsbCE9PShpPWhoKHMsbyx1LGEpKSYmKGdpKGkscyxhLHU9UigpKSxCaShpLG8sYSkpfX1mdW5jdGlvbiB6aShzKXt2YXIgbz1zLmFsdGVybmF0ZTtyZXR1cm4gcz09PXNzfHxudWxsIT09byYmbz09PXNzfWZ1bmN0aW9uIEFpKHMsbyl7bHM9Y3M9ITA7dmFyIGk9cy5wZW5kaW5nO251bGw9PT1pP28ubmV4dD1vOihvLm5leHQ9aS5uZXh0LGkubmV4dD1vKSxzLnBlbmRpbmc9b31mdW5jdGlvbiBCaShzLG8saSl7aWYoNDE5NDI0MCZpKXt2YXIgYT1vLmxhbmVzO2l8PWEmPXMucGVuZGluZ0xhbmVzLG8ubGFuZXM9aSxDYyhzLGkpfX12YXIgaHM9e3JlYWRDb250ZXh0OmVoLHVzZUNhbGxiYWNrOlAsdXNlQ29udGV4dDpQLHVzZUVmZmVjdDpQLHVzZUltcGVyYXRpdmVIYW5kbGU6UCx1c2VJbnNlcnRpb25FZmZlY3Q6UCx1c2VMYXlvdXRFZmZlY3Q6UCx1c2VNZW1vOlAsdXNlUmVkdWNlcjpQLHVzZVJlZjpQLHVzZVN0YXRlOlAsdXNlRGVidWdWYWx1ZTpQLHVzZURlZmVycmVkVmFsdWU6UCx1c2VUcmFuc2l0aW9uOlAsdXNlTXV0YWJsZVNvdXJjZTpQLHVzZVN5bmNFeHRlcm5hbFN0b3JlOlAsdXNlSWQ6UCx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9LGRzPXtyZWFkQ29udGV4dDplaCx1c2VDYWxsYmFjazpmdW5jdGlvbihzLG8pe3JldHVybiBUaCgpLm1lbW9pemVkU3RhdGU9W3Msdm9pZCAwPT09bz9udWxsOm9dLHN9LHVzZUNvbnRleHQ6ZWgsdXNlRWZmZWN0Om1pLHVzZUltcGVyYXRpdmVIYW5kbGU6ZnVuY3Rpb24ocyxvLGkpe3JldHVybiBpPW51bGwhPWk/aS5jb25jYXQoW3NdKTpudWxsLGtpKDQxOTQzMDgsNCxwaS5iaW5kKG51bGwsbyxzKSxpKX0sdXNlTGF5b3V0RWZmZWN0OmZ1bmN0aW9uKHMsbyl7cmV0dXJuIGtpKDQxOTQzMDgsNCxzLG8pfSx1c2VJbnNlcnRpb25FZmZlY3Q6ZnVuY3Rpb24ocyxvKXtyZXR1cm4ga2koNCwyLHMsbyl9LHVzZU1lbW86ZnVuY3Rpb24ocyxvKXt2YXIgaT1UaCgpO3JldHVybiBvPXZvaWQgMD09PW8/bnVsbDpvLHM9cygpLGkubWVtb2l6ZWRTdGF0ZT1bcyxvXSxzfSx1c2VSZWR1Y2VyOmZ1bmN0aW9uKHMsbyxpKXt2YXIgYT1UaCgpO3JldHVybiBvPXZvaWQgMCE9PWk/aShvKTpvLGEubWVtb2l6ZWRTdGF0ZT1hLmJhc2VTdGF0ZT1vLHM9e3BlbmRpbmc6bnVsbCxpbnRlcmxlYXZlZDpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOnMsbGFzdFJlbmRlcmVkU3RhdGU6b30sYS5xdWV1ZT1zLHM9cy5kaXNwYXRjaD14aS5iaW5kKG51bGwsc3MscyksW2EubWVtb2l6ZWRTdGF0ZSxzXX0sdXNlUmVmOmZ1bmN0aW9uKHMpe3JldHVybiBzPXtjdXJyZW50OnN9LFRoKCkubWVtb2l6ZWRTdGF0ZT1zfSx1c2VTdGF0ZTpoaSx1c2VEZWJ1Z1ZhbHVlOnJpLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24ocyl7cmV0dXJuIFRoKCkubWVtb2l6ZWRTdGF0ZT1zfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIHM9aGkoITEpLG89c1swXTtyZXR1cm4gcz12aS5iaW5kKG51bGwsc1sxXSksVGgoKS5tZW1vaXplZFN0YXRlPXMsW28sc119LHVzZU11dGFibGVTb3VyY2U6ZnVuY3Rpb24oKXt9LHVzZVN5bmNFeHRlcm5hbFN0b3JlOmZ1bmN0aW9uKHMsbyxpKXt2YXIgYT1zcyx1PVRoKCk7aWYoRm4pe2lmKHZvaWQgMD09PWkpdGhyb3cgRXJyb3IocCg0MDcpKTtpPWkoKX1lbHNle2lmKGk9bygpLG51bGw9PT1Gcyl0aHJvdyBFcnJvcihwKDM0OSkpOzMwJm5zfHxkaShhLG8saSl9dS5tZW1vaXplZFN0YXRlPWk7dmFyIF89e3ZhbHVlOmksZ2V0U25hcHNob3Q6b307cmV0dXJuIHUucXVldWU9XyxtaShhaS5iaW5kKG51bGwsYSxfLHMpLFtzXSksYS5mbGFnc3w9MjA0OCxiaSg5LGNpLmJpbmQobnVsbCxhLF8saSxvKSx2b2lkIDAsbnVsbCksaX0sdXNlSWQ6ZnVuY3Rpb24oKXt2YXIgcz1UaCgpLG89RnMuaWRlbnRpZmllclByZWZpeDtpZihGbil7dmFyIGk9Um47bz0iOiIrbysiUiIrKGk9KE1uJn4oMTw8MzItRXQoTW4pLTEpKS50b1N0cmluZygzMikraSksMDwoaT11cysrKSYmKG8rPSJIIitpLnRvU3RyaW5nKDMyKSksbys9IjoifWVsc2Ugbz0iOiIrbysiciIrKGk9cHMrKykudG9TdHJpbmcoMzIpKyI6IjtyZXR1cm4gcy5tZW1vaXplZFN0YXRlPW99LHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0sZnM9e3JlYWRDb250ZXh0OmVoLHVzZUNhbGxiYWNrOnNpLHVzZUNvbnRleHQ6ZWgsdXNlRWZmZWN0OiRoLHVzZUltcGVyYXRpdmVIYW5kbGU6cWksdXNlSW5zZXJ0aW9uRWZmZWN0Om5pLHVzZUxheW91dEVmZmVjdDpvaSx1c2VNZW1vOnRpLHVzZVJlZHVjZXI6V2gsdXNlUmVmOmppLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIFdoKFZoKX0sdXNlRGVidWdWYWx1ZTpyaSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKHMpe3JldHVybiB1aShVaCgpLG9zLm1lbW9pemVkU3RhdGUscyl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm5bV2goVmgpWzBdLFVoKCkubWVtb2l6ZWRTdGF0ZV19LHVzZU11dGFibGVTb3VyY2U6WWgsdXNlU3luY0V4dGVybmFsU3RvcmU6WmgsdXNlSWQ6d2ksdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfSxtcz17cmVhZENvbnRleHQ6ZWgsdXNlQ2FsbGJhY2s6c2ksdXNlQ29udGV4dDplaCx1c2VFZmZlY3Q6JGgsdXNlSW1wZXJhdGl2ZUhhbmRsZTpxaSx1c2VJbnNlcnRpb25FZmZlY3Q6bmksdXNlTGF5b3V0RWZmZWN0Om9pLHVzZU1lbW86dGksdXNlUmVkdWNlcjpYaCx1c2VSZWY6amksdXNlU3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gWGgoVmgpfSx1c2VEZWJ1Z1ZhbHVlOnJpLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24ocyl7dmFyIG89VWgoKTtyZXR1cm4gbnVsbD09PW9zP28ubWVtb2l6ZWRTdGF0ZT1zOnVpKG8sb3MubWVtb2l6ZWRTdGF0ZSxzKX0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3JldHVybltYaChWaClbMF0sVWgoKS5tZW1vaXplZFN0YXRlXX0sdXNlTXV0YWJsZVNvdXJjZTpZaCx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpaaCx1c2VJZDp3aSx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9O2Z1bmN0aW9uIENpKHMsbyl7aWYocyYmcy5kZWZhdWx0UHJvcHMpe2Zvcih2YXIgaSBpbiBvPXdlKHt9LG8pLHM9cy5kZWZhdWx0UHJvcHMpdm9pZCAwPT09b1tpXSYmKG9baV09c1tpXSk7cmV0dXJuIG99cmV0dXJuIG99ZnVuY3Rpb24gRGkocyxvLGksYSl7aT1udWxsPT0oaT1pKGEsbz1zLm1lbW9pemVkU3RhdGUpKT9vOndlKHt9LG8saSkscy5tZW1vaXplZFN0YXRlPWksMD09PXMubGFuZXMmJihzLnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZT1pKX12YXIgZ3M9e2lzTW91bnRlZDpmdW5jdGlvbihzKXtyZXR1cm4hIShzPXMuX3JlYWN0SW50ZXJuYWxzKSYmVmIocyk9PT1zfSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24ocyxvLGkpe3M9cy5fcmVhY3RJbnRlcm5hbHM7dmFyIGE9UigpLHU9eWkocyksXz1taChhLHUpO18ucGF5bG9hZD1vLG51bGwhPWkmJihfLmNhbGxiYWNrPWkpLG51bGwhPT0obz1uaChzLF8sdSkpJiYoZ2kobyxzLHUsYSksb2gobyxzLHUpKX0sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbihzLG8saSl7cz1zLl9yZWFjdEludGVybmFsczt2YXIgYT1SKCksdT15aShzKSxfPW1oKGEsdSk7Xy50YWc9MSxfLnBheWxvYWQ9byxudWxsIT1pJiYoXy5jYWxsYmFjaz1pKSxudWxsIT09KG89bmgocyxfLHUpKSYmKGdpKG8scyx1LGEpLG9oKG8scyx1KSl9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbihzLG8pe3M9cy5fcmVhY3RJbnRlcm5hbHM7dmFyIGk9UigpLGE9eWkocyksdT1taChpLGEpO3UudGFnPTIsbnVsbCE9byYmKHUuY2FsbGJhY2s9byksbnVsbCE9PShvPW5oKHMsdSxhKSkmJihnaShvLHMsYSxpKSxvaChvLHMsYSkpfX07ZnVuY3Rpb24gRmkocyxvLGksYSx1LF8sdyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mKHM9cy5zdGF0ZU5vZGUpLnNob3VsZENvbXBvbmVudFVwZGF0ZT9zLnNob3VsZENvbXBvbmVudFVwZGF0ZShhLF8sdyk6IW8ucHJvdG90eXBlfHwhby5wcm90b3R5cGUuaXNQdXJlUmVhY3RDb21wb25lbnR8fCghSWUoaSxhKXx8IUllKHUsXykpfWZ1bmN0aW9uIEdpKHMsbyxpKXt2YXIgYT0hMSx1PV9uLF89by5jb250ZXh0VHlwZTtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIF8mJm51bGwhPT1fP189ZWgoXyk6KHU9WmYobyk/d246U24uY3VycmVudCxfPShhPW51bGwhPShhPW8uY29udGV4dFR5cGVzKSk/WWYocyx1KTpfbiksbz1uZXcgbyhpLF8pLHMubWVtb2l6ZWRTdGF0ZT1udWxsIT09by5zdGF0ZSYmdm9pZCAwIT09by5zdGF0ZT9vLnN0YXRlOm51bGwsby51cGRhdGVyPWdzLHMuc3RhdGVOb2RlPW8sby5fcmVhY3RJbnRlcm5hbHM9cyxhJiYoKHM9cy5zdGF0ZU5vZGUpLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQ9dSxzLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0PV8pLG99ZnVuY3Rpb24gSGkocyxvLGksYSl7cz1vLnN0YXRlLCJmdW5jdGlvbiI9PXR5cGVvZiBvLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJm8uY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhpLGEpLCJmdW5jdGlvbiI9PXR5cGVvZiBvLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZvLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKGksYSksby5zdGF0ZSE9PXMmJmdzLmVucXVldWVSZXBsYWNlU3RhdGUobyxvLnN0YXRlLG51bGwpfWZ1bmN0aW9uIElpKHMsbyxpLGEpe3ZhciB1PXMuc3RhdGVOb2RlO3UucHJvcHM9aSx1LnN0YXRlPXMubWVtb2l6ZWRTdGF0ZSx1LnJlZnM9e30sa2gocyk7dmFyIF89by5jb250ZXh0VHlwZTsib2JqZWN0Ij09dHlwZW9mIF8mJm51bGwhPT1fP3UuY29udGV4dD1laChfKTooXz1aZihvKT93bjpTbi5jdXJyZW50LHUuY29udGV4dD1ZZihzLF8pKSx1LnN0YXRlPXMubWVtb2l6ZWRTdGF0ZSwiZnVuY3Rpb24iPT10eXBlb2YoXz1vLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcykmJihEaShzLG8sXyxpKSx1LnN0YXRlPXMubWVtb2l6ZWRTdGF0ZSksImZ1bmN0aW9uIj09dHlwZW9mIG8uZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzfHwiZnVuY3Rpb24iPT10eXBlb2YgdS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIHUuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmImZ1bmN0aW9uIiE9dHlwZW9mIHUuY29tcG9uZW50V2lsbE1vdW50fHwobz11LnN0YXRlLCJmdW5jdGlvbiI9PXR5cGVvZiB1LmNvbXBvbmVudFdpbGxNb3VudCYmdS5jb21wb25lbnRXaWxsTW91bnQoKSwiZnVuY3Rpb24iPT10eXBlb2YgdS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZ1LlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSxvIT09dS5zdGF0ZSYmZ3MuZW5xdWV1ZVJlcGxhY2VTdGF0ZSh1LHUuc3RhdGUsbnVsbCkscWgocyxpLHUsYSksdS5zdGF0ZT1zLm1lbW9pemVkU3RhdGUpLCJmdW5jdGlvbiI9PXR5cGVvZiB1LmNvbXBvbmVudERpZE1vdW50JiYocy5mbGFnc3w9NDE5NDMwOCl9ZnVuY3Rpb24gSmkocyxvKXt0cnl7dmFyIGk9IiIsYT1vO2Rve2krPVBhKGEpLGE9YS5yZXR1cm59d2hpbGUoYSk7dmFyIHU9aX1jYXRjaChzKXt1PSJcbkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6ICIrcy5tZXNzYWdlKyJcbiIrcy5zdGFja31yZXR1cm57dmFsdWU6cyxzb3VyY2U6byxzdGFjazp1LGRpZ2VzdDpudWxsfX1mdW5jdGlvbiBLaShzLG8saSl7cmV0dXJue3ZhbHVlOnMsc291cmNlOm51bGwsc3RhY2s6bnVsbCE9aT9pOm51bGwsZGlnZXN0Om51bGwhPW8/bzpudWxsfX1mdW5jdGlvbiBMaShzLG8pe3RyeXtjb25zb2xlLmVycm9yKG8udmFsdWUpfWNhdGNoKHMpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dGhyb3cgc30pKX19dmFyIHlzPSJmdW5jdGlvbiI9PXR5cGVvZiBXZWFrTWFwP1dlYWtNYXA6TWFwO2Z1bmN0aW9uIE5pKHMsbyxpKXsoaT1taCgtMSxpKSkudGFnPTMsaS5wYXlsb2FkPXtlbGVtZW50Om51bGx9O3ZhciBhPW8udmFsdWU7cmV0dXJuIGkuY2FsbGJhY2s9ZnVuY3Rpb24oKXtac3x8KFpzPSEwLGVvPWEpLExpKDAsbyl9LGl9ZnVuY3Rpb24gUWkocyxvLGkpeyhpPW1oKC0xLGkpKS50YWc9Mzt2YXIgYT1zLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhKXt2YXIgdT1vLnZhbHVlO2kucGF5bG9hZD1mdW5jdGlvbigpe3JldHVybiBhKHUpfSxpLmNhbGxiYWNrPWZ1bmN0aW9uKCl7TGkoMCxvKX19dmFyIF89cy5zdGF0ZU5vZGU7cmV0dXJuIG51bGwhPT1fJiYiZnVuY3Rpb24iPT10eXBlb2YgXy5jb21wb25lbnREaWRDYXRjaCYmKGkuY2FsbGJhY2s9ZnVuY3Rpb24oKXtMaSgwLG8pLCJmdW5jdGlvbiIhPXR5cGVvZiBhJiYobnVsbD09PXRvP3RvPW5ldyBTZXQoW3RoaXNdKTp0by5hZGQodGhpcykpO3ZhciBzPW8uc3RhY2s7dGhpcy5jb21wb25lbnREaWRDYXRjaChvLnZhbHVlLHtjb21wb25lbnRTdGFjazpudWxsIT09cz9zOiIifSl9KSxpfWZ1bmN0aW9uIFNpKHMsbyxpKXt2YXIgYT1zLnBpbmdDYWNoZTtpZihudWxsPT09YSl7YT1zLnBpbmdDYWNoZT1uZXcgeXM7dmFyIHU9bmV3IFNldDthLnNldChvLHUpfWVsc2Ugdm9pZCAwPT09KHU9YS5nZXQobykpJiYodT1uZXcgU2V0LGEuc2V0KG8sdSkpO3UuaGFzKGkpfHwodS5hZGQoaSkscz1UaS5iaW5kKG51bGwscyxvLGkpLG8udGhlbihzLHMpKX1mdW5jdGlvbiBVaShzKXtkb3t2YXIgbztpZigobz0xMz09PXMudGFnKSYmKG89bnVsbD09PShvPXMubWVtb2l6ZWRTdGF0ZSl8fG51bGwhPT1vLmRlaHlkcmF0ZWQpLG8pcmV0dXJuIHM7cz1zLnJldHVybn13aGlsZShudWxsIT09cyk7cmV0dXJuIG51bGx9ZnVuY3Rpb24gVmkocyxvLGksYSx1KXtyZXR1cm4gMSZzLm1vZGU/KHMuZmxhZ3N8PTY1NTM2LHMubGFuZXM9dSxzKToocz09PW8/cy5mbGFnc3w9NjU1MzY6KHMuZmxhZ3N8PTEyOCxpLmZsYWdzfD0xMzEwNzIsaS5mbGFncyY9LTUyODA1LDE9PT1pLnRhZyYmKG51bGw9PT1pLmFsdGVybmF0ZT9pLnRhZz0xNzooKG89bWgoLTEsMSkpLnRhZz0yLG5oKGksbywxKSkpLGkubGFuZXN8PTEpLHMpfXZhciB2cz1VLlJlYWN0Q3VycmVudE93bmVyLGJzPSExO2Z1bmN0aW9uIFhpKHMsbyxpLGEpe28uY2hpbGQ9bnVsbD09PXM/Vm4obyxudWxsLGksYSk6cW4obyxzLmNoaWxkLGksYSl9ZnVuY3Rpb24gWWkocyxvLGksYSx1KXtpPWkucmVuZGVyO3ZhciBfPW8ucmVmO3JldHVybiBjaChvLHUpLGE9TmgocyxvLGksYSxfLHUpLGk9U2goKSxudWxsPT09c3x8YnM/KEZuJiZpJiZ2ZyhvKSxvLmZsYWdzfD0xLFhpKHMsbyxhLHUpLG8uY2hpbGQpOihvLnVwZGF0ZVF1ZXVlPXMudXBkYXRlUXVldWUsby5mbGFncyY9LTIwNTMscy5sYW5lcyY9fnUsWmkocyxvLHUpKX1mdW5jdGlvbiAkaShzLG8saSxhLHUpe2lmKG51bGw9PT1zKXt2YXIgXz1pLnR5cGU7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIF98fGFqKF8pfHx2b2lkIDAhPT1fLmRlZmF1bHRQcm9wc3x8bnVsbCE9PWkuY29tcGFyZXx8dm9pZCAwIT09aS5kZWZhdWx0UHJvcHM/KChzPVJnKGkudHlwZSxudWxsLGEsbyxvLm1vZGUsdSkpLnJlZj1vLnJlZixzLnJldHVybj1vLG8uY2hpbGQ9cyk6KG8udGFnPTE1LG8udHlwZT1fLGJqKHMsbyxfLGEsdSkpfWlmKF89cy5jaGlsZCwhKHMubGFuZXMmdSkpe3ZhciB3PV8ubWVtb2l6ZWRQcm9wcztpZigoaT1udWxsIT09KGk9aS5jb21wYXJlKT9pOkllKSh3LGEpJiZzLnJlZj09PW8ucmVmKXJldHVybiBaaShzLG8sdSl9cmV0dXJuIG8uZmxhZ3N8PTEsKHM9UGcoXyxhKSkucmVmPW8ucmVmLHMucmV0dXJuPW8sby5jaGlsZD1zfWZ1bmN0aW9uIGJqKHMsbyxpLGEsdSl7aWYobnVsbCE9PXMpe3ZhciBfPXMubWVtb2l6ZWRQcm9wcztpZihJZShfLGEpJiZzLnJlZj09PW8ucmVmKXtpZihicz0hMSxvLnBlbmRpbmdQcm9wcz1hPV8sIShzLmxhbmVzJnUpKXJldHVybiBvLmxhbmVzPXMubGFuZXMsWmkocyxvLHUpOzEzMTA3MiZzLmZsYWdzJiYoYnM9ITApfX1yZXR1cm4gY2oocyxvLGksYSx1KX1mdW5jdGlvbiBkaihzLG8saSl7dmFyIGE9by5wZW5kaW5nUHJvcHMsdT1hLmNoaWxkcmVuLF89bnVsbCE9PXM/cy5tZW1vaXplZFN0YXRlOm51bGw7aWYoImhpZGRlbiI9PT1hLm1vZGUpaWYoMSZvLm1vZGUpe2lmKCEoMTA3Mzc0MTgyNCZpKSlyZXR1cm4gcz1udWxsIT09Xz9fLmJhc2VMYW5lc3xpOmksby5sYW5lcz1vLmNoaWxkTGFuZXM9MTA3Mzc0MTgyNCxvLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczpzLGNhY2hlUG9vbDpudWxsLHRyYW5zaXRpb25zOm51bGx9LG8udXBkYXRlUXVldWU9bnVsbCxHKFZzLHFzKSxxc3w9cyxudWxsO28ubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOjAsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH0sYT1udWxsIT09Xz9fLmJhc2VMYW5lczppLEcoVnMscXMpLHFzfD1hfWVsc2Ugby5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6MCxjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczpudWxsfSxHKFZzLHFzKSxxc3w9aTtlbHNlIG51bGwhPT1fPyhhPV8uYmFzZUxhbmVzfGksby5tZW1vaXplZFN0YXRlPW51bGwpOmE9aSxHKFZzLHFzKSxxc3w9YTtyZXR1cm4gWGkocyxvLHUsaSksby5jaGlsZH1mdW5jdGlvbiBnaihzLG8pe3ZhciBpPW8ucmVmOyhudWxsPT09cyYmbnVsbCE9PWl8fG51bGwhPT1zJiZzLnJlZiE9PWkpJiYoby5mbGFnc3w9NTEyLG8uZmxhZ3N8PTIwOTcxNTIpfWZ1bmN0aW9uIGNqKHMsbyxpLGEsdSl7dmFyIF89WmYoaSk/d246U24uY3VycmVudDtyZXR1cm4gXz1ZZihvLF8pLGNoKG8sdSksaT1OaChzLG8saSxhLF8sdSksYT1TaCgpLG51bGw9PT1zfHxicz8oRm4mJmEmJnZnKG8pLG8uZmxhZ3N8PTEsWGkocyxvLGksdSksby5jaGlsZCk6KG8udXBkYXRlUXVldWU9cy51cGRhdGVRdWV1ZSxvLmZsYWdzJj0tMjA1MyxzLmxhbmVzJj1+dSxaaShzLG8sdSkpfWZ1bmN0aW9uIGhqKHMsbyxpLGEsdSl7aWYoWmYoaSkpe3ZhciBfPSEwO2NnKG8pfWVsc2UgXz0hMTtpZihjaChvLHUpLG51bGw9PT1vLnN0YXRlTm9kZSlpaihzLG8pLEdpKG8saSxhKSxJaShvLGksYSx1KSxhPSEwO2Vsc2UgaWYobnVsbD09PXMpe3ZhciB3PW8uc3RhdGVOb2RlLHg9by5tZW1vaXplZFByb3BzO3cucHJvcHM9eDt2YXIgQz13LmNvbnRleHQsaj1pLmNvbnRleHRUeXBlOyJvYmplY3QiPT10eXBlb2YgaiYmbnVsbCE9PWo/aj1laChqKTpqPVlmKG8saj1aZihpKT93bjpTbi5jdXJyZW50KTt2YXIgTD1pLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyxCPSJmdW5jdGlvbiI9PXR5cGVvZiBMfHwiZnVuY3Rpb24iPT10eXBlb2Ygdy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZTtCfHwiZnVuY3Rpb24iIT10eXBlb2Ygdy5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmImZ1bmN0aW9uIiE9dHlwZW9mIHcuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc3x8KHghPT1hfHxDIT09aikmJkhpKG8sdyxhLGopLEtuPSExO3ZhciAkPW8ubWVtb2l6ZWRTdGF0ZTt3LnN0YXRlPSQscWgobyxhLHcsdSksQz1vLm1lbW9pemVkU3RhdGUseCE9PWF8fCQhPT1DfHxFbi5jdXJyZW50fHxLbj8oImZ1bmN0aW9uIj09dHlwZW9mIEwmJihEaShvLGksTCxhKSxDPW8ubWVtb2l6ZWRTdGF0ZSksKHg9S258fEZpKG8saSx4LGEsJCxDLGopKT8oQnx8ImZ1bmN0aW9uIiE9dHlwZW9mIHcuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmImZ1bmN0aW9uIiE9dHlwZW9mIHcuY29tcG9uZW50V2lsbE1vdW50fHwoImZ1bmN0aW9uIj09dHlwZW9mIHcuY29tcG9uZW50V2lsbE1vdW50JiZ3LmNvbXBvbmVudFdpbGxNb3VudCgpLCJmdW5jdGlvbiI9PXR5cGVvZiB3LlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJncuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpKSwiZnVuY3Rpb24iPT10eXBlb2Ygdy5jb21wb25lbnREaWRNb3VudCYmKG8uZmxhZ3N8PTQxOTQzMDgpKTooImZ1bmN0aW9uIj09dHlwZW9mIHcuY29tcG9uZW50RGlkTW91bnQmJihvLmZsYWdzfD00MTk0MzA4KSxvLm1lbW9pemVkUHJvcHM9YSxvLm1lbW9pemVkU3RhdGU9Qyksdy5wcm9wcz1hLHcuc3RhdGU9Qyx3LmNvbnRleHQ9aixhPXgpOigiZnVuY3Rpb24iPT10eXBlb2Ygdy5jb21wb25lbnREaWRNb3VudCYmKG8uZmxhZ3N8PTQxOTQzMDgpLGE9ITEpfWVsc2V7dz1vLnN0YXRlTm9kZSxsaChzLG8pLHg9by5tZW1vaXplZFByb3BzLGo9by50eXBlPT09by5lbGVtZW50VHlwZT94OkNpKG8udHlwZSx4KSx3LnByb3BzPWosQj1vLnBlbmRpbmdQcm9wcywkPXcuY29udGV4dCwib2JqZWN0Ij09dHlwZW9mKEM9aS5jb250ZXh0VHlwZSkmJm51bGwhPT1DP0M9ZWgoQyk6Qz1ZZihvLEM9WmYoaSk/d246U24uY3VycmVudCk7dmFyIFY9aS5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7KEw9ImZ1bmN0aW9uIj09dHlwZW9mIFZ8fCJmdW5jdGlvbiI9PXR5cGVvZiB3LmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKXx8ImZ1bmN0aW9uIiE9dHlwZW9mIHcuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJiJmdW5jdGlvbiIhPXR5cGVvZiB3LmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHN8fCh4IT09Qnx8JCE9PUMpJiZIaShvLHcsYSxDKSxLbj0hMSwkPW8ubWVtb2l6ZWRTdGF0ZSx3LnN0YXRlPSQscWgobyxhLHcsdSk7dmFyIFU9by5tZW1vaXplZFN0YXRlO3ghPT1CfHwkIT09VXx8RW4uY3VycmVudHx8S24/KCJmdW5jdGlvbiI9PXR5cGVvZiBWJiYoRGkobyxpLFYsYSksVT1vLm1lbW9pemVkU3RhdGUpLChqPUtufHxGaShvLGksaixhLCQsVSxDKXx8ITEpPyhMfHwiZnVuY3Rpb24iIT10eXBlb2Ygdy5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSYmImZ1bmN0aW9uIiE9dHlwZW9mIHcuY29tcG9uZW50V2lsbFVwZGF0ZXx8KCJmdW5jdGlvbiI9PXR5cGVvZiB3LmNvbXBvbmVudFdpbGxVcGRhdGUmJncuY29tcG9uZW50V2lsbFVwZGF0ZShhLFUsQyksImZ1bmN0aW9uIj09dHlwZW9mIHcuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUmJncuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUoYSxVLEMpKSwiZnVuY3Rpb24iPT10eXBlb2Ygdy5jb21wb25lbnREaWRVcGRhdGUmJihvLmZsYWdzfD00KSwiZnVuY3Rpb24iPT10eXBlb2Ygdy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSYmKG8uZmxhZ3N8PTEwMjQpKTooImZ1bmN0aW9uIiE9dHlwZW9mIHcuY29tcG9uZW50RGlkVXBkYXRlfHx4PT09cy5tZW1vaXplZFByb3BzJiYkPT09cy5tZW1vaXplZFN0YXRlfHwoby5mbGFnc3w9NCksImZ1bmN0aW9uIiE9dHlwZW9mIHcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fHg9PT1zLm1lbW9pemVkUHJvcHMmJiQ9PT1zLm1lbW9pemVkU3RhdGV8fChvLmZsYWdzfD0xMDI0KSxvLm1lbW9pemVkUHJvcHM9YSxvLm1lbW9pemVkU3RhdGU9VSksdy5wcm9wcz1hLHcuc3RhdGU9VSx3LmNvbnRleHQ9QyxhPWopOigiZnVuY3Rpb24iIT10eXBlb2Ygdy5jb21wb25lbnREaWRVcGRhdGV8fHg9PT1zLm1lbW9pemVkUHJvcHMmJiQ9PT1zLm1lbW9pemVkU3RhdGV8fChvLmZsYWdzfD00KSwiZnVuY3Rpb24iIT10eXBlb2Ygdy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8eD09PXMubWVtb2l6ZWRQcm9wcyYmJD09PXMubWVtb2l6ZWRTdGF0ZXx8KG8uZmxhZ3N8PTEwMjQpLGE9ITEpfXJldHVybiBqaihzLG8saSxhLF8sdSl9ZnVuY3Rpb24gamoocyxvLGksYSx1LF8pe2dqKHMsbyk7dmFyIHc9ISEoMTI4Jm8uZmxhZ3MpO2lmKCFhJiYhdylyZXR1cm4gdSYmZGcobyxpLCExKSxaaShzLG8sXyk7YT1vLnN0YXRlTm9kZSx2cy5jdXJyZW50PW87dmFyIHg9dyYmImZ1bmN0aW9uIiE9dHlwZW9mIGkuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yP251bGw6YS5yZW5kZXIoKTtyZXR1cm4gby5mbGFnc3w9MSxudWxsIT09cyYmdz8oby5jaGlsZD1xbihvLHMuY2hpbGQsbnVsbCxfKSxvLmNoaWxkPXFuKG8sbnVsbCx4LF8pKTpYaShzLG8seCxfKSxvLm1lbW9pemVkU3RhdGU9YS5zdGF0ZSx1JiZkZyhvLGksITApLG8uY2hpbGR9ZnVuY3Rpb24ga2oocyl7dmFyIG89cy5zdGF0ZU5vZGU7by5wZW5kaW5nQ29udGV4dD9hZygwLG8ucGVuZGluZ0NvbnRleHQsby5wZW5kaW5nQ29udGV4dCE9PW8uY29udGV4dCk6by5jb250ZXh0JiZhZygwLG8uY29udGV4dCwhMSkseWgocyxvLmNvbnRhaW5lckluZm8pfWZ1bmN0aW9uIGxqKHMsbyxpLGEsdSl7cmV0dXJuIElnKCksSmcodSksby5mbGFnc3w9MjU2LFhpKHMsbyxpLGEpLG8uY2hpbGR9dmFyIF9zLFNzLEVzLHdzLHhzPXtkZWh5ZHJhdGVkOm51bGwsdHJlZUNvbnRleHQ6bnVsbCxyZXRyeUxhbmU6MH07ZnVuY3Rpb24gbmoocyl7cmV0dXJue2Jhc2VMYW5lczpzLGNhY2hlUG9vbDpudWxsLHRyYW5zaXRpb25zOm51bGx9fWZ1bmN0aW9uIG9qKHMsbyxpKXt2YXIgYSx1PW8ucGVuZGluZ1Byb3BzLF89Wm4uY3VycmVudCx3PSExLHg9ISEoMTI4Jm8uZmxhZ3MpO2lmKChhPXgpfHwoYT0obnVsbD09PXN8fG51bGwhPT1zLm1lbW9pemVkU3RhdGUpJiYhISgyJl8pKSxhPyh3PSEwLG8uZmxhZ3MmPS0xMjkpOm51bGwhPT1zJiZudWxsPT09cy5tZW1vaXplZFN0YXRlfHwoX3w9MSksRyhabiwxJl8pLG51bGw9PT1zKXJldHVybiBFZyhvKSxudWxsIT09KHM9by5tZW1vaXplZFN0YXRlKSYmbnVsbCE9PShzPXMuZGVoeWRyYXRlZCk/KDEmby5tb2RlPyIkISI9PT1zLmRhdGE/by5sYW5lcz04Om8ubGFuZXM9MTA3Mzc0MTgyNDpvLmxhbmVzPTEsbnVsbCk6KHg9dS5jaGlsZHJlbixzPXUuZmFsbGJhY2ssdz8odT1vLm1vZGUsdz1vLmNoaWxkLHg9e21vZGU6ImhpZGRlbiIsY2hpbGRyZW46eH0sMSZ1fHxudWxsPT09dz93PXBqKHgsdSwwLG51bGwpOih3LmNoaWxkTGFuZXM9MCx3LnBlbmRpbmdQcm9wcz14KSxzPVRnKHMsdSxpLG51bGwpLHcucmV0dXJuPW8scy5yZXR1cm49byx3LnNpYmxpbmc9cyxvLmNoaWxkPXcsby5jaGlsZC5tZW1vaXplZFN0YXRlPW5qKGkpLG8ubWVtb2l6ZWRTdGF0ZT14cyxzKTpxaihvLHgpKTtpZihudWxsIT09KF89cy5tZW1vaXplZFN0YXRlKSYmbnVsbCE9PShhPV8uZGVoeWRyYXRlZCkpcmV0dXJuIGZ1bmN0aW9uIHJqKHMsbyxpLGEsdSxfLHcpe2lmKGkpcmV0dXJuIDI1NiZvLmZsYWdzPyhvLmZsYWdzJj0tMjU3LHNqKHMsbyx3LGE9S2koRXJyb3IocCg0MjIpKSkpKTpudWxsIT09by5tZW1vaXplZFN0YXRlPyhvLmNoaWxkPXMuY2hpbGQsby5mbGFnc3w9MTI4LG51bGwpOihfPWEuZmFsbGJhY2ssdT1vLm1vZGUsYT1waih7bW9kZToidmlzaWJsZSIsY2hpbGRyZW46YS5jaGlsZHJlbn0sdSwwLG51bGwpLChfPVRnKF8sdSx3LG51bGwpKS5mbGFnc3w9MixhLnJldHVybj1vLF8ucmV0dXJuPW8sYS5zaWJsaW5nPV8sby5jaGlsZD1hLDEmby5tb2RlJiZxbihvLHMuY2hpbGQsbnVsbCx3KSxvLmNoaWxkLm1lbW9pemVkU3RhdGU9bmoodyksby5tZW1vaXplZFN0YXRlPXhzLF8pO2lmKCEoMSZvLm1vZGUpKXJldHVybiBzaihzLG8sdyxudWxsKTtpZigiJCEiPT09dS5kYXRhKXtpZihhPXUubmV4dFNpYmxpbmcmJnUubmV4dFNpYmxpbmcuZGF0YXNldCl2YXIgeD1hLmRnc3Q7cmV0dXJuIGE9eCxzaihzLG8sdyxhPUtpKF89RXJyb3IocCg0MTkpKSxhLHZvaWQgMCkpfWlmKHg9ISEodyZzLmNoaWxkTGFuZXMpLGJzfHx4KXtpZihudWxsIT09KGE9RnMpKXtzd2l0Y2godyYtdyl7Y2FzZSA0OnU9MjticmVhaztjYXNlIDE2OnU9ODticmVhaztjYXNlIDY0OmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOmNhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAxNjc3NzIxNjpjYXNlIDMzNTU0NDMyOmNhc2UgNjcxMDg4NjQ6dT0zMjticmVhaztjYXNlIDUzNjg3MDkxMjp1PTI2ODQzNTQ1NjticmVhaztkZWZhdWx0OnU9MH0wIT09KHU9dSYoYS5zdXNwZW5kZWRMYW5lc3x3KT8wOnUpJiZ1IT09Xy5yZXRyeUxhbmUmJihfLnJldHJ5TGFuZT11LGloKHMsdSksZ2koYSxzLHUsLTEpKX1yZXR1cm4gdGooKSxzaihzLG8sdyxhPUtpKEVycm9yKHAoNDIxKSkpKX1yZXR1cm4iJD8iPT09dS5kYXRhPyhvLmZsYWdzfD0xMjgsby5jaGlsZD1zLmNoaWxkLG89dWouYmluZChudWxsLHMpLHUuX3JlYWN0UmV0cnk9byxudWxsKToocz1fLnRyZWVDb250ZXh0LExuPUxmKHUubmV4dFNpYmxpbmcpLERuPW8sRm49ITAsQm49bnVsbCxudWxsIT09cyYmKFBuW1RuKytdPU1uLFBuW1RuKytdPVJuLFBuW1RuKytdPU5uLE1uPXMuaWQsUm49cy5vdmVyZmxvdyxObj1vKSxvPXFqKG8sYS5jaGlsZHJlbiksby5mbGFnc3w9NDA5NixvKX0ocyxvLHgsdSxhLF8saSk7aWYodyl7dz11LmZhbGxiYWNrLHg9by5tb2RlLGE9KF89cy5jaGlsZCkuc2libGluZzt2YXIgQz17bW9kZToiaGlkZGVuIixjaGlsZHJlbjp1LmNoaWxkcmVufTtyZXR1cm4gMSZ4fHxvLmNoaWxkPT09Xz8odT1QZyhfLEMpKS5zdWJ0cmVlRmxhZ3M9MTQ2ODAwNjQmXy5zdWJ0cmVlRmxhZ3M6KCh1PW8uY2hpbGQpLmNoaWxkTGFuZXM9MCx1LnBlbmRpbmdQcm9wcz1DLG8uZGVsZXRpb25zPW51bGwpLG51bGwhPT1hP3c9UGcoYSx3KToodz1UZyh3LHgsaSxudWxsKSkuZmxhZ3N8PTIsdy5yZXR1cm49byx1LnJldHVybj1vLHUuc2libGluZz13LG8uY2hpbGQ9dSx1PXcsdz1vLmNoaWxkLHg9bnVsbD09PSh4PXMuY2hpbGQubWVtb2l6ZWRTdGF0ZSk/bmooaSk6e2Jhc2VMYW5lczp4LmJhc2VMYW5lc3xpLGNhY2hlUG9vbDpudWxsLHRyYW5zaXRpb25zOngudHJhbnNpdGlvbnN9LHcubWVtb2l6ZWRTdGF0ZT14LHcuY2hpbGRMYW5lcz1zLmNoaWxkTGFuZXMmfmksby5tZW1vaXplZFN0YXRlPXhzLHV9cmV0dXJuIHM9KHc9cy5jaGlsZCkuc2libGluZyx1PVBnKHcse21vZGU6InZpc2libGUiLGNoaWxkcmVuOnUuY2hpbGRyZW59KSwhKDEmby5tb2RlKSYmKHUubGFuZXM9aSksdS5yZXR1cm49byx1LnNpYmxpbmc9bnVsbCxudWxsIT09cyYmKG51bGw9PT0oaT1vLmRlbGV0aW9ucyk/KG8uZGVsZXRpb25zPVtzXSxvLmZsYWdzfD0xNik6aS5wdXNoKHMpKSxvLmNoaWxkPXUsby5tZW1vaXplZFN0YXRlPW51bGwsdX1mdW5jdGlvbiBxaihzLG8pe3JldHVybihvPXBqKHttb2RlOiJ2aXNpYmxlIixjaGlsZHJlbjpvfSxzLm1vZGUsMCxudWxsKSkucmV0dXJuPXMscy5jaGlsZD1vfWZ1bmN0aW9uIHNqKHMsbyxpLGEpe3JldHVybiBudWxsIT09YSYmSmcoYSkscW4obyxzLmNoaWxkLG51bGwsaSksKHM9cWoobyxvLnBlbmRpbmdQcm9wcy5jaGlsZHJlbikpLmZsYWdzfD0yLG8ubWVtb2l6ZWRTdGF0ZT1udWxsLHN9ZnVuY3Rpb24gdmoocyxvLGkpe3MubGFuZXN8PW87dmFyIGE9cy5hbHRlcm5hdGU7bnVsbCE9PWEmJihhLmxhbmVzfD1vKSxiaChzLnJldHVybixvLGkpfWZ1bmN0aW9uIHdqKHMsbyxpLGEsdSl7dmFyIF89cy5tZW1vaXplZFN0YXRlO251bGw9PT1fP3MubWVtb2l6ZWRTdGF0ZT17aXNCYWNrd2FyZHM6byxyZW5kZXJpbmc6bnVsbCxyZW5kZXJpbmdTdGFydFRpbWU6MCxsYXN0OmEsdGFpbDppLHRhaWxNb2RlOnV9OihfLmlzQmFja3dhcmRzPW8sXy5yZW5kZXJpbmc9bnVsbCxfLnJlbmRlcmluZ1N0YXJ0VGltZT0wLF8ubGFzdD1hLF8udGFpbD1pLF8udGFpbE1vZGU9dSl9ZnVuY3Rpb24geGoocyxvLGkpe3ZhciBhPW8ucGVuZGluZ1Byb3BzLHU9YS5yZXZlYWxPcmRlcixfPWEudGFpbDtpZihYaShzLG8sYS5jaGlsZHJlbixpKSwyJihhPVpuLmN1cnJlbnQpKWE9MSZhfDIsby5mbGFnc3w9MTI4O2Vsc2V7aWYobnVsbCE9PXMmJjEyOCZzLmZsYWdzKWU6Zm9yKHM9by5jaGlsZDtudWxsIT09czspe2lmKDEzPT09cy50YWcpbnVsbCE9PXMubWVtb2l6ZWRTdGF0ZSYmdmoocyxpLG8pO2Vsc2UgaWYoMTk9PT1zLnRhZyl2aihzLGksbyk7ZWxzZSBpZihudWxsIT09cy5jaGlsZCl7cy5jaGlsZC5yZXR1cm49cyxzPXMuY2hpbGQ7Y29udGludWV9aWYocz09PW8pYnJlYWsgZTtmb3IoO251bGw9PT1zLnNpYmxpbmc7KXtpZihudWxsPT09cy5yZXR1cm58fHMucmV0dXJuPT09bylicmVhayBlO3M9cy5yZXR1cm59cy5zaWJsaW5nLnJldHVybj1zLnJldHVybixzPXMuc2libGluZ31hJj0xfWlmKEcoWm4sYSksMSZvLm1vZGUpc3dpdGNoKHUpe2Nhc2UiZm9yd2FyZHMiOmZvcihpPW8uY2hpbGQsdT1udWxsO251bGwhPT1pOyludWxsIT09KHM9aS5hbHRlcm5hdGUpJiZudWxsPT09Q2gocykmJih1PWkpLGk9aS5zaWJsaW5nO251bGw9PT0oaT11KT8odT1vLmNoaWxkLG8uY2hpbGQ9bnVsbCk6KHU9aS5zaWJsaW5nLGkuc2libGluZz1udWxsKSx3aihvLCExLHUsaSxfKTticmVhaztjYXNlImJhY2t3YXJkcyI6Zm9yKGk9bnVsbCx1PW8uY2hpbGQsby5jaGlsZD1udWxsO251bGwhPT11Oyl7aWYobnVsbCE9PShzPXUuYWx0ZXJuYXRlKSYmbnVsbD09PUNoKHMpKXtvLmNoaWxkPXU7YnJlYWt9cz11LnNpYmxpbmcsdS5zaWJsaW5nPWksaT11LHU9c313aihvLCEwLGksbnVsbCxfKTticmVhaztjYXNlInRvZ2V0aGVyIjp3aihvLCExLG51bGwsbnVsbCx2b2lkIDApO2JyZWFrO2RlZmF1bHQ6by5tZW1vaXplZFN0YXRlPW51bGx9ZWxzZSBvLm1lbW9pemVkU3RhdGU9bnVsbDtyZXR1cm4gby5jaGlsZH1mdW5jdGlvbiBpaihzLG8peyEoMSZvLm1vZGUpJiZudWxsIT09cyYmKHMuYWx0ZXJuYXRlPW51bGwsby5hbHRlcm5hdGU9bnVsbCxvLmZsYWdzfD0yKX1mdW5jdGlvbiBaaShzLG8saSl7aWYobnVsbCE9PXMmJihvLmRlcGVuZGVuY2llcz1zLmRlcGVuZGVuY2llcyksV3N8PW8ubGFuZXMsIShpJm8uY2hpbGRMYW5lcykpcmV0dXJuIG51bGw7aWYobnVsbCE9PXMmJm8uY2hpbGQhPT1zLmNoaWxkKXRocm93IEVycm9yKHAoMTUzKSk7aWYobnVsbCE9PW8uY2hpbGQpe2ZvcihpPVBnKHM9by5jaGlsZCxzLnBlbmRpbmdQcm9wcyksby5jaGlsZD1pLGkucmV0dXJuPW87bnVsbCE9PXMuc2libGluZzspcz1zLnNpYmxpbmcsKGk9aS5zaWJsaW5nPVBnKHMscy5wZW5kaW5nUHJvcHMpKS5yZXR1cm49bztpLnNpYmxpbmc9bnVsbH1yZXR1cm4gby5jaGlsZH1mdW5jdGlvbiBEaihzLG8pe2lmKCFGbilzd2l0Y2gocy50YWlsTW9kZSl7Y2FzZSJoaWRkZW4iOm89cy50YWlsO2Zvcih2YXIgaT1udWxsO251bGwhPT1vOyludWxsIT09by5hbHRlcm5hdGUmJihpPW8pLG89by5zaWJsaW5nO251bGw9PT1pP3MudGFpbD1udWxsOmkuc2libGluZz1udWxsO2JyZWFrO2Nhc2UiY29sbGFwc2VkIjppPXMudGFpbDtmb3IodmFyIGE9bnVsbDtudWxsIT09aTspbnVsbCE9PWkuYWx0ZXJuYXRlJiYoYT1pKSxpPWkuc2libGluZztudWxsPT09YT9vfHxudWxsPT09cy50YWlsP3MudGFpbD1udWxsOnMudGFpbC5zaWJsaW5nPW51bGw6YS5zaWJsaW5nPW51bGx9fWZ1bmN0aW9uIFMocyl7dmFyIG89bnVsbCE9PXMuYWx0ZXJuYXRlJiZzLmFsdGVybmF0ZS5jaGlsZD09PXMuY2hpbGQsaT0wLGE9MDtpZihvKWZvcih2YXIgdT1zLmNoaWxkO251bGwhPT11OylpfD11LmxhbmVzfHUuY2hpbGRMYW5lcyxhfD0xNDY4MDA2NCZ1LnN1YnRyZWVGbGFncyxhfD0xNDY4MDA2NCZ1LmZsYWdzLHUucmV0dXJuPXMsdT11LnNpYmxpbmc7ZWxzZSBmb3IodT1zLmNoaWxkO251bGwhPT11OylpfD11LmxhbmVzfHUuY2hpbGRMYW5lcyxhfD11LnN1YnRyZWVGbGFncyxhfD11LmZsYWdzLHUucmV0dXJuPXMsdT11LnNpYmxpbmc7cmV0dXJuIHMuc3VidHJlZUZsYWdzfD1hLHMuY2hpbGRMYW5lcz1pLG99ZnVuY3Rpb24gRWoocyxvLGkpe3ZhciBhPW8ucGVuZGluZ1Byb3BzO3N3aXRjaCh3ZyhvKSxvLnRhZyl7Y2FzZSAyOmNhc2UgMTY6Y2FzZSAxNTpjYXNlIDA6Y2FzZSAxMTpjYXNlIDc6Y2FzZSA4OmNhc2UgMTI6Y2FzZSA5OmNhc2UgMTQ6cmV0dXJuIFMobyksbnVsbDtjYXNlIDE6Y2FzZSAxNzpyZXR1cm4gWmYoby50eXBlKSYmJGYoKSxTKG8pLG51bGw7Y2FzZSAzOnJldHVybiBhPW8uc3RhdGVOb2RlLHpoKCksRShFbiksRShTbiksRWgoKSxhLnBlbmRpbmdDb250ZXh0JiYoYS5jb250ZXh0PWEucGVuZGluZ0NvbnRleHQsYS5wZW5kaW5nQ29udGV4dD1udWxsKSxudWxsIT09cyYmbnVsbCE9PXMuY2hpbGR8fChHZyhvKT9vLmZsYWdzfD00Om51bGw9PT1zfHxzLm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkJiYhKDI1NiZvLmZsYWdzKXx8KG8uZmxhZ3N8PTEwMjQsbnVsbCE9PUJuJiYoRmooQm4pLEJuPW51bGwpKSksU3MocyxvKSxTKG8pLG51bGw7Y2FzZSA1OkJoKG8pO3ZhciB1PXhoKFFuLmN1cnJlbnQpO2lmKGk9by50eXBlLG51bGwhPT1zJiZudWxsIT1vLnN0YXRlTm9kZSlFcyhzLG8saSxhLHUpLHMucmVmIT09by5yZWYmJihvLmZsYWdzfD01MTIsby5mbGFnc3w9MjA5NzE1Mik7ZWxzZXtpZighYSl7aWYobnVsbD09PW8uc3RhdGVOb2RlKXRocm93IEVycm9yKHAoMTY2KSk7cmV0dXJuIFMobyksbnVsbH1pZihzPXhoKFluLmN1cnJlbnQpLEdnKG8pKXthPW8uc3RhdGVOb2RlLGk9by50eXBlO3ZhciBfPW8ubWVtb2l6ZWRQcm9wcztzd2l0Y2goYVtobl09byxhW2RuXT1fLHM9ISEoMSZvLm1vZGUpLGkpe2Nhc2UiZGlhbG9nIjpEKCJjYW5jZWwiLGEpLEQoImNsb3NlIixhKTticmVhaztjYXNlImlmcmFtZSI6Y2FzZSJvYmplY3QiOmNhc2UiZW1iZWQiOkQoImxvYWQiLGEpO2JyZWFrO2Nhc2UidmlkZW8iOmNhc2UiYXVkaW8iOmZvcih1PTA7dTxaci5sZW5ndGg7dSsrKUQoWnJbdV0sYSk7YnJlYWs7Y2FzZSJzb3VyY2UiOkQoImVycm9yIixhKTticmVhaztjYXNlImltZyI6Y2FzZSJpbWFnZSI6Y2FzZSJsaW5rIjpEKCJlcnJvciIsYSksRCgibG9hZCIsYSk7YnJlYWs7Y2FzZSJkZXRhaWxzIjpEKCJ0b2dnbGUiLGEpO2JyZWFrO2Nhc2UiaW5wdXQiOlphKGEsXyksRCgiaW52YWxpZCIsYSk7YnJlYWs7Y2FzZSJzZWxlY3QiOmEuX3dyYXBwZXJTdGF0ZT17d2FzTXVsdGlwbGU6ISFfLm11bHRpcGxlfSxEKCJpbnZhbGlkIixhKTticmVhaztjYXNlInRleHRhcmVhIjpoYihhLF8pLEQoImludmFsaWQiLGEpfWZvcih2YXIgeCBpbiB1YihpLF8pLHU9bnVsbCxfKWlmKF8uaGFzT3duUHJvcGVydHkoeCkpe3ZhciBDPV9beF07ImNoaWxkcmVuIj09PXg/InN0cmluZyI9PXR5cGVvZiBDP2EudGV4dENvbnRlbnQhPT1DJiYoITAhPT1fLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyYmQWYoYS50ZXh0Q29udGVudCxDLHMpLHU9WyJjaGlsZHJlbiIsQ10pOiJudW1iZXIiPT10eXBlb2YgQyYmYS50ZXh0Q29udGVudCE9PSIiK0MmJighMCE9PV8uc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nJiZBZihhLnRleHRDb250ZW50LEMscyksdT1bImNoaWxkcmVuIiwiIitDXSk6dy5oYXNPd25Qcm9wZXJ0eSh4KSYmbnVsbCE9QyYmIm9uU2Nyb2xsIj09PXgmJkQoInNjcm9sbCIsYSl9c3dpdGNoKGkpe2Nhc2UiaW5wdXQiOlZhKGEpLGRiKGEsXywhMCk7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6VmEoYSksamIoYSk7YnJlYWs7Y2FzZSJzZWxlY3QiOmNhc2Uib3B0aW9uIjpicmVhaztkZWZhdWx0OiJmdW5jdGlvbiI9PXR5cGVvZiBfLm9uQ2xpY2smJihhLm9uY2xpY2s9QmYpfWE9dSxvLnVwZGF0ZVF1ZXVlPWEsbnVsbCE9PWEmJihvLmZsYWdzfD00KX1lbHNle3g9OT09PXUubm9kZVR5cGU/dTp1Lm93bmVyRG9jdW1lbnQsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPT09cyYmKHM9a2IoaSkpLCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj09PXM/InNjcmlwdCI9PT1pPygocz14LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5pbm5lckhUTUw9IjxzY3JpcHQ+PFwvc2NyaXB0PiIscz1zLnJlbW92ZUNoaWxkKHMuZmlyc3RDaGlsZCkpOiJzdHJpbmciPT10eXBlb2YgYS5pcz9zPXguY3JlYXRlRWxlbWVudChpLHtpczphLmlzfSk6KHM9eC5jcmVhdGVFbGVtZW50KGkpLCJzZWxlY3QiPT09aSYmKHg9cyxhLm11bHRpcGxlP3gubXVsdGlwbGU9ITA6YS5zaXplJiYoeC5zaXplPWEuc2l6ZSkpKTpzPXguY3JlYXRlRWxlbWVudE5TKHMsaSksc1tobl09byxzW2RuXT1hLF9zKHMsbywhMSwhMSksby5zdGF0ZU5vZGU9cztlOntzd2l0Y2goeD12YihpLGEpLGkpe2Nhc2UiZGlhbG9nIjpEKCJjYW5jZWwiLHMpLEQoImNsb3NlIixzKSx1PWE7YnJlYWs7Y2FzZSJpZnJhbWUiOmNhc2Uib2JqZWN0IjpjYXNlImVtYmVkIjpEKCJsb2FkIixzKSx1PWE7YnJlYWs7Y2FzZSJ2aWRlbyI6Y2FzZSJhdWRpbyI6Zm9yKHU9MDt1PFpyLmxlbmd0aDt1KyspRChaclt1XSxzKTt1PWE7YnJlYWs7Y2FzZSJzb3VyY2UiOkQoImVycm9yIixzKSx1PWE7YnJlYWs7Y2FzZSJpbWciOmNhc2UiaW1hZ2UiOmNhc2UibGluayI6RCgiZXJyb3IiLHMpLEQoImxvYWQiLHMpLHU9YTticmVhaztjYXNlImRldGFpbHMiOkQoInRvZ2dsZSIscyksdT1hO2JyZWFrO2Nhc2UiaW5wdXQiOlphKHMsYSksdT1ZYShzLGEpLEQoImludmFsaWQiLHMpO2JyZWFrO2Nhc2Uib3B0aW9uIjpkZWZhdWx0OnU9YTticmVhaztjYXNlInNlbGVjdCI6cy5fd3JhcHBlclN0YXRlPXt3YXNNdWx0aXBsZTohIWEubXVsdGlwbGV9LHU9d2Uoe30sYSx7dmFsdWU6dm9pZCAwfSksRCgiaW52YWxpZCIscyk7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6aGIocyxhKSx1PWdiKHMsYSksRCgiaW52YWxpZCIscyl9Zm9yKF8gaW4gdWIoaSx1KSxDPXUpaWYoQy5oYXNPd25Qcm9wZXJ0eShfKSl7dmFyIGo9Q1tfXTsic3R5bGUiPT09Xz9zYihzLGopOiJkYW5nZXJvdXNseVNldElubmVySFRNTCI9PT1fP251bGwhPShqPWo/ai5fX2h0bWw6dm9pZCAwKSYmJGUocyxqKToiY2hpbGRyZW4iPT09Xz8ic3RyaW5nIj09dHlwZW9mIGo/KCJ0ZXh0YXJlYSIhPT1pfHwiIiE9PWopJiZvYihzLGopOiJudW1iZXIiPT10eXBlb2YgaiYmb2IocywiIitqKToic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIiE9PV8mJiJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmciIT09XyYmImF1dG9Gb2N1cyIhPT1fJiYody5oYXNPd25Qcm9wZXJ0eShfKT9udWxsIT1qJiYib25TY3JvbGwiPT09XyYmRCgic2Nyb2xsIixzKTpudWxsIT1qJiZ0YShzLF8saix4KSl9c3dpdGNoKGkpe2Nhc2UiaW5wdXQiOlZhKHMpLGRiKHMsYSwhMSk7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6VmEocyksamIocyk7YnJlYWs7Y2FzZSJvcHRpb24iOm51bGwhPWEudmFsdWUmJnMuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIiIrU2EoYS52YWx1ZSkpO2JyZWFrO2Nhc2Uic2VsZWN0IjpzLm11bHRpcGxlPSEhYS5tdWx0aXBsZSxudWxsIT0oXz1hLnZhbHVlKT9mYihzLCEhYS5tdWx0aXBsZSxfLCExKTpudWxsIT1hLmRlZmF1bHRWYWx1ZSYmZmIocywhIWEubXVsdGlwbGUsYS5kZWZhdWx0VmFsdWUsITApO2JyZWFrO2RlZmF1bHQ6ImZ1bmN0aW9uIj09dHlwZW9mIHUub25DbGljayYmKHMub25jbGljaz1CZil9c3dpdGNoKGkpe2Nhc2UiYnV0dG9uIjpjYXNlImlucHV0IjpjYXNlInNlbGVjdCI6Y2FzZSJ0ZXh0YXJlYSI6YT0hIWEuYXV0b0ZvY3VzO2JyZWFrIGU7Y2FzZSJpbWciOmE9ITA7YnJlYWsgZTtkZWZhdWx0OmE9ITF9fWEmJihvLmZsYWdzfD00KX1udWxsIT09by5yZWYmJihvLmZsYWdzfD01MTIsby5mbGFnc3w9MjA5NzE1Mil9cmV0dXJuIFMobyksbnVsbDtjYXNlIDY6aWYocyYmbnVsbCE9by5zdGF0ZU5vZGUpd3MocyxvLHMubWVtb2l6ZWRQcm9wcyxhKTtlbHNle2lmKCJzdHJpbmciIT10eXBlb2YgYSYmbnVsbD09PW8uc3RhdGVOb2RlKXRocm93IEVycm9yKHAoMTY2KSk7aWYoaT14aChRbi5jdXJyZW50KSx4aChZbi5jdXJyZW50KSxHZyhvKSl7aWYoYT1vLnN0YXRlTm9kZSxpPW8ubWVtb2l6ZWRQcm9wcyxhW2huXT1vLChfPWEubm9kZVZhbHVlIT09aSkmJm51bGwhPT0ocz1Ebikpc3dpdGNoKHMudGFnKXtjYXNlIDM6QWYoYS5ub2RlVmFsdWUsaSwhISgxJnMubW9kZSkpO2JyZWFrO2Nhc2UgNTohMCE9PXMubWVtb2l6ZWRQcm9wcy5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcmJkFmKGEubm9kZVZhbHVlLGksISEoMSZzLm1vZGUpKX1fJiYoby5mbGFnc3w9NCl9ZWxzZShhPSg5PT09aS5ub2RlVHlwZT9pOmkub3duZXJEb2N1bWVudCkuY3JlYXRlVGV4dE5vZGUoYSkpW2huXT1vLG8uc3RhdGVOb2RlPWF9cmV0dXJuIFMobyksbnVsbDtjYXNlIDEzOmlmKEUoWm4pLGE9by5tZW1vaXplZFN0YXRlLG51bGw9PT1zfHxudWxsIT09cy5tZW1vaXplZFN0YXRlJiZudWxsIT09cy5tZW1vaXplZFN0YXRlLmRlaHlkcmF0ZWQpe2lmKEZuJiZudWxsIT09TG4mJjEmby5tb2RlJiYhKDEyOCZvLmZsYWdzKSlIZygpLElnKCksby5mbGFnc3w9OTg1NjAsXz0hMTtlbHNlIGlmKF89R2cobyksbnVsbCE9PWEmJm51bGwhPT1hLmRlaHlkcmF0ZWQpe2lmKG51bGw9PT1zKXtpZighXyl0aHJvdyBFcnJvcihwKDMxOCkpO2lmKCEoXz1udWxsIT09KF89by5tZW1vaXplZFN0YXRlKT9fLmRlaHlkcmF0ZWQ6bnVsbCkpdGhyb3cgRXJyb3IocCgzMTcpKTtfW2huXT1vfWVsc2UgSWcoKSwhKDEyOCZvLmZsYWdzKSYmKG8ubWVtb2l6ZWRTdGF0ZT1udWxsKSxvLmZsYWdzfD00O1MobyksXz0hMX1lbHNlIG51bGwhPT1CbiYmKEZqKEJuKSxCbj1udWxsKSxfPSEwO2lmKCFfKXJldHVybiA2NTUzNiZvLmZsYWdzP286bnVsbH1yZXR1cm4gMTI4Jm8uZmxhZ3M/KG8ubGFuZXM9aSxvKTooKGE9bnVsbCE9PWEpIT09KG51bGwhPT1zJiZudWxsIT09cy5tZW1vaXplZFN0YXRlKSYmYSYmKG8uY2hpbGQuZmxhZ3N8PTgxOTIsMSZvLm1vZGUmJihudWxsPT09c3x8MSZabi5jdXJyZW50PzA9PT1VcyYmKFVzPTMpOnRqKCkpKSxudWxsIT09by51cGRhdGVRdWV1ZSYmKG8uZmxhZ3N8PTQpLFMobyksbnVsbCk7Y2FzZSA0OnJldHVybiB6aCgpLFNzKHMsbyksbnVsbD09PXMmJnNmKG8uc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLFMobyksbnVsbDtjYXNlIDEwOnJldHVybiBhaChvLnR5cGUuX2NvbnRleHQpLFMobyksbnVsbDtjYXNlIDE5OmlmKEUoWm4pLG51bGw9PT0oXz1vLm1lbW9pemVkU3RhdGUpKXJldHVybiBTKG8pLG51bGw7aWYoYT0hISgxMjgmby5mbGFncyksbnVsbD09PSh4PV8ucmVuZGVyaW5nKSlpZihhKURqKF8sITEpO2Vsc2V7aWYoMCE9PVVzfHxudWxsIT09cyYmMTI4JnMuZmxhZ3MpZm9yKHM9by5jaGlsZDtudWxsIT09czspe2lmKG51bGwhPT0oeD1DaChzKSkpe2ZvcihvLmZsYWdzfD0xMjgsRGooXywhMSksbnVsbCE9PShhPXgudXBkYXRlUXVldWUpJiYoby51cGRhdGVRdWV1ZT1hLG8uZmxhZ3N8PTQpLG8uc3VidHJlZUZsYWdzPTAsYT1pLGk9by5jaGlsZDtudWxsIT09aTspcz1hLChfPWkpLmZsYWdzJj0xNDY4MDA2NixudWxsPT09KHg9Xy5hbHRlcm5hdGUpPyhfLmNoaWxkTGFuZXM9MCxfLmxhbmVzPXMsXy5jaGlsZD1udWxsLF8uc3VidHJlZUZsYWdzPTAsXy5tZW1vaXplZFByb3BzPW51bGwsXy5tZW1vaXplZFN0YXRlPW51bGwsXy51cGRhdGVRdWV1ZT1udWxsLF8uZGVwZW5kZW5jaWVzPW51bGwsXy5zdGF0ZU5vZGU9bnVsbCk6KF8uY2hpbGRMYW5lcz14LmNoaWxkTGFuZXMsXy5sYW5lcz14LmxhbmVzLF8uY2hpbGQ9eC5jaGlsZCxfLnN1YnRyZWVGbGFncz0wLF8uZGVsZXRpb25zPW51bGwsXy5tZW1vaXplZFByb3BzPXgubWVtb2l6ZWRQcm9wcyxfLm1lbW9pemVkU3RhdGU9eC5tZW1vaXplZFN0YXRlLF8udXBkYXRlUXVldWU9eC51cGRhdGVRdWV1ZSxfLnR5cGU9eC50eXBlLHM9eC5kZXBlbmRlbmNpZXMsXy5kZXBlbmRlbmNpZXM9bnVsbD09PXM/bnVsbDp7bGFuZXM6cy5sYW5lcyxmaXJzdENvbnRleHQ6cy5maXJzdENvbnRleHR9KSxpPWkuc2libGluZztyZXR1cm4gRyhabiwxJlpuLmN1cnJlbnR8Miksby5jaGlsZH1zPXMuc2libGluZ31udWxsIT09Xy50YWlsJiZodCgpPlhzJiYoby5mbGFnc3w9MTI4LGE9ITAsRGooXywhMSksby5sYW5lcz00MTk0MzA0KX1lbHNle2lmKCFhKWlmKG51bGwhPT0ocz1DaCh4KSkpe2lmKG8uZmxhZ3N8PTEyOCxhPSEwLG51bGwhPT0oaT1zLnVwZGF0ZVF1ZXVlKSYmKG8udXBkYXRlUXVldWU9aSxvLmZsYWdzfD00KSxEaihfLCEwKSxudWxsPT09Xy50YWlsJiYiaGlkZGVuIj09PV8udGFpbE1vZGUmJiF4LmFsdGVybmF0ZSYmIUZuKXJldHVybiBTKG8pLG51bGx9ZWxzZSAyKmh0KCktXy5yZW5kZXJpbmdTdGFydFRpbWU+WHMmJjEwNzM3NDE4MjQhPT1pJiYoby5mbGFnc3w9MTI4LGE9ITAsRGooXywhMSksby5sYW5lcz00MTk0MzA0KTtfLmlzQmFja3dhcmRzPyh4LnNpYmxpbmc9by5jaGlsZCxvLmNoaWxkPXgpOihudWxsIT09KGk9Xy5sYXN0KT9pLnNpYmxpbmc9eDpvLmNoaWxkPXgsXy5sYXN0PXgpfXJldHVybiBudWxsIT09Xy50YWlsPyhvPV8udGFpbCxfLnJlbmRlcmluZz1vLF8udGFpbD1vLnNpYmxpbmcsXy5yZW5kZXJpbmdTdGFydFRpbWU9aHQoKSxvLnNpYmxpbmc9bnVsbCxpPVpuLmN1cnJlbnQsRyhabixhPzEmaXwyOjEmaSksbyk6KFMobyksbnVsbCk7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBIaigpLGE9bnVsbCE9PW8ubWVtb2l6ZWRTdGF0ZSxudWxsIT09cyYmbnVsbCE9PXMubWVtb2l6ZWRTdGF0ZSE9PWEmJihvLmZsYWdzfD04MTkyKSxhJiYxJm8ubW9kZT8hISgxMDczNzQxODI0JnFzKSYmKFMobyksNiZvLnN1YnRyZWVGbGFncyYmKG8uZmxhZ3N8PTgxOTIpKTpTKG8pLG51bGw7Y2FzZSAyNDpjYXNlIDI1OnJldHVybiBudWxsfXRocm93IEVycm9yKHAoMTU2LG8udGFnKSl9ZnVuY3Rpb24gSWoocyxvKXtzd2l0Y2god2cobyksby50YWcpe2Nhc2UgMTpyZXR1cm4gWmYoby50eXBlKSYmJGYoKSw2NTUzNiYocz1vLmZsYWdzKT8oby5mbGFncz0tNjU1Mzcmc3wxMjgsbyk6bnVsbDtjYXNlIDM6cmV0dXJuIHpoKCksRShFbiksRShTbiksRWgoKSw2NTUzNiYocz1vLmZsYWdzKSYmISgxMjgmcyk/KG8uZmxhZ3M9LTY1NTM3JnN8MTI4LG8pOm51bGw7Y2FzZSA1OnJldHVybiBCaChvKSxudWxsO2Nhc2UgMTM6aWYoRShabiksbnVsbCE9PShzPW8ubWVtb2l6ZWRTdGF0ZSkmJm51bGwhPT1zLmRlaHlkcmF0ZWQpe2lmKG51bGw9PT1vLmFsdGVybmF0ZSl0aHJvdyBFcnJvcihwKDM0MCkpO0lnKCl9cmV0dXJuIDY1NTM2JihzPW8uZmxhZ3MpPyhvLmZsYWdzPS02NTUzNyZzfDEyOCxvKTpudWxsO2Nhc2UgMTk6cmV0dXJuIEUoWm4pLG51bGw7Y2FzZSA0OnJldHVybiB6aCgpLG51bGw7Y2FzZSAxMDpyZXR1cm4gYWgoby50eXBlLl9jb250ZXh0KSxudWxsO2Nhc2UgMjI6Y2FzZSAyMzpyZXR1cm4gSGooKSxudWxsO2RlZmF1bHQ6cmV0dXJuIG51bGx9fV9zPWZ1bmN0aW9uKHMsbyl7Zm9yKHZhciBpPW8uY2hpbGQ7bnVsbCE9PWk7KXtpZig1PT09aS50YWd8fDY9PT1pLnRhZylzLmFwcGVuZENoaWxkKGkuc3RhdGVOb2RlKTtlbHNlIGlmKDQhPT1pLnRhZyYmbnVsbCE9PWkuY2hpbGQpe2kuY2hpbGQucmV0dXJuPWksaT1pLmNoaWxkO2NvbnRpbnVlfWlmKGk9PT1vKWJyZWFrO2Zvcig7bnVsbD09PWkuc2libGluZzspe2lmKG51bGw9PT1pLnJldHVybnx8aS5yZXR1cm49PT1vKXJldHVybjtpPWkucmV0dXJufWkuc2libGluZy5yZXR1cm49aS5yZXR1cm4saT1pLnNpYmxpbmd9fSxTcz1mdW5jdGlvbigpe30sRXM9ZnVuY3Rpb24ocyxvLGksYSl7dmFyIHU9cy5tZW1vaXplZFByb3BzO2lmKHUhPT1hKXtzPW8uc3RhdGVOb2RlLHhoKFluLmN1cnJlbnQpO3ZhciBfLHg9bnVsbDtzd2l0Y2goaSl7Y2FzZSJpbnB1dCI6dT1ZYShzLHUpLGE9WWEocyxhKSx4PVtdO2JyZWFrO2Nhc2Uic2VsZWN0Ijp1PXdlKHt9LHUse3ZhbHVlOnZvaWQgMH0pLGE9d2Uoe30sYSx7dmFsdWU6dm9pZCAwfSkseD1bXTticmVhaztjYXNlInRleHRhcmVhIjp1PWdiKHMsdSksYT1nYihzLGEpLHg9W107YnJlYWs7ZGVmYXVsdDoiZnVuY3Rpb24iIT10eXBlb2YgdS5vbkNsaWNrJiYiZnVuY3Rpb24iPT10eXBlb2YgYS5vbkNsaWNrJiYocy5vbmNsaWNrPUJmKX1mb3IoTCBpbiB1YihpLGEpLGk9bnVsbCx1KWlmKCFhLmhhc093blByb3BlcnR5KEwpJiZ1Lmhhc093blByb3BlcnR5KEwpJiZudWxsIT11W0xdKWlmKCJzdHlsZSI9PT1MKXt2YXIgQz11W0xdO2ZvcihfIGluIEMpQy5oYXNPd25Qcm9wZXJ0eShfKSYmKGl8fChpPXt9KSxpW19dPSIiKX1lbHNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiE9PUwmJiJjaGlsZHJlbiIhPT1MJiYic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIiE9PUwmJiJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmciIT09TCYmImF1dG9Gb2N1cyIhPT1MJiYody5oYXNPd25Qcm9wZXJ0eShMKT94fHwoeD1bXSk6KHg9eHx8W10pLnB1c2goTCxudWxsKSk7Zm9yKEwgaW4gYSl7dmFyIGo9YVtMXTtpZihDPW51bGwhPXU/dVtMXTp2b2lkIDAsYS5oYXNPd25Qcm9wZXJ0eShMKSYmaiE9PUMmJihudWxsIT1qfHxudWxsIT1DKSlpZigic3R5bGUiPT09TClpZihDKXtmb3IoXyBpbiBDKSFDLmhhc093blByb3BlcnR5KF8pfHxqJiZqLmhhc093blByb3BlcnR5KF8pfHwoaXx8KGk9e30pLGlbX109IiIpO2ZvcihfIGluIGopai5oYXNPd25Qcm9wZXJ0eShfKSYmQ1tfXSE9PWpbX10mJihpfHwoaT17fSksaVtfXT1qW19dKX1lbHNlIGl8fCh4fHwoeD1bXSkseC5wdXNoKEwsaSkpLGk9ajtlbHNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIj09PUw/KGo9aj9qLl9faHRtbDp2b2lkIDAsQz1DP0MuX19odG1sOnZvaWQgMCxudWxsIT1qJiZDIT09aiYmKHg9eHx8W10pLnB1c2goTCxqKSk6ImNoaWxkcmVuIj09PUw/InN0cmluZyIhPXR5cGVvZiBqJiYibnVtYmVyIiE9dHlwZW9mIGp8fCh4PXh8fFtdKS5wdXNoKEwsIiIraik6InN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyIhPT1MJiYic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIiE9PUwmJih3Lmhhc093blByb3BlcnR5KEwpPyhudWxsIT1qJiYib25TY3JvbGwiPT09TCYmRCgic2Nyb2xsIixzKSx4fHxDPT09anx8KHg9W10pKTooeD14fHxbXSkucHVzaChMLGopKX1pJiYoeD14fHxbXSkucHVzaCgic3R5bGUiLGkpO3ZhciBMPXg7KG8udXBkYXRlUXVldWU9TCkmJihvLmZsYWdzfD00KX19LHdzPWZ1bmN0aW9uKHMsbyxpLGEpe2khPT1hJiYoby5mbGFnc3w9NCl9O3ZhciBrcz0hMSxPcz0hMSxDcz0iZnVuY3Rpb24iPT10eXBlb2YgV2Vha1NldD9XZWFrU2V0OlNldCxBcz1udWxsO2Z1bmN0aW9uIExqKHMsbyl7dmFyIGk9cy5yZWY7aWYobnVsbCE9PWkpaWYoImZ1bmN0aW9uIj09dHlwZW9mIGkpdHJ5e2kobnVsbCl9Y2F0Y2goaSl7VyhzLG8saSl9ZWxzZSBpLmN1cnJlbnQ9bnVsbH1mdW5jdGlvbiBNaihzLG8saSl7dHJ5e2koKX1jYXRjaChpKXtXKHMsbyxpKX19dmFyIGpzPSExO2Z1bmN0aW9uIFBqKHMsbyxpKXt2YXIgYT1vLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT0oYT1udWxsIT09YT9hLmxhc3RFZmZlY3Q6bnVsbCkpe3ZhciB1PWE9YS5uZXh0O2Rve2lmKCh1LnRhZyZzKT09PXMpe3ZhciBfPXUuZGVzdHJveTt1LmRlc3Ryb3k9dm9pZCAwLHZvaWQgMCE9PV8mJk1qKG8saSxfKX11PXUubmV4dH13aGlsZSh1IT09YSl9fWZ1bmN0aW9uIFFqKHMsbyl7aWYobnVsbCE9PShvPW51bGwhPT0obz1vLnVwZGF0ZVF1ZXVlKT9vLmxhc3RFZmZlY3Q6bnVsbCkpe3ZhciBpPW89by5uZXh0O2Rve2lmKChpLnRhZyZzKT09PXMpe3ZhciBhPWkuY3JlYXRlO2kuZGVzdHJveT1hKCl9aT1pLm5leHR9d2hpbGUoaSE9PW8pfX1mdW5jdGlvbiBSaihzKXt2YXIgbz1zLnJlZjtpZihudWxsIT09byl7dmFyIGk9cy5zdGF0ZU5vZGU7cy50YWcscz1pLCJmdW5jdGlvbiI9PXR5cGVvZiBvP28ocyk6by5jdXJyZW50PXN9fWZ1bmN0aW9uIFNqKHMpe3ZhciBvPXMuYWx0ZXJuYXRlO251bGwhPT1vJiYocy5hbHRlcm5hdGU9bnVsbCxTaihvKSkscy5jaGlsZD1udWxsLHMuZGVsZXRpb25zPW51bGwscy5zaWJsaW5nPW51bGwsNT09PXMudGFnJiYobnVsbCE9PShvPXMuc3RhdGVOb2RlKSYmKGRlbGV0ZSBvW2huXSxkZWxldGUgb1tkbl0sZGVsZXRlIG9bbW5dLGRlbGV0ZSBvW2duXSxkZWxldGUgb1t5bl0pKSxzLnN0YXRlTm9kZT1udWxsLHMucmV0dXJuPW51bGwscy5kZXBlbmRlbmNpZXM9bnVsbCxzLm1lbW9pemVkUHJvcHM9bnVsbCxzLm1lbW9pemVkU3RhdGU9bnVsbCxzLnBlbmRpbmdQcm9wcz1udWxsLHMuc3RhdGVOb2RlPW51bGwscy51cGRhdGVRdWV1ZT1udWxsfWZ1bmN0aW9uIFRqKHMpe3JldHVybiA1PT09cy50YWd8fDM9PT1zLnRhZ3x8ND09PXMudGFnfWZ1bmN0aW9uIFVqKHMpe2U6Zm9yKDs7KXtmb3IoO251bGw9PT1zLnNpYmxpbmc7KXtpZihudWxsPT09cy5yZXR1cm58fFRqKHMucmV0dXJuKSlyZXR1cm4gbnVsbDtzPXMucmV0dXJufWZvcihzLnNpYmxpbmcucmV0dXJuPXMucmV0dXJuLHM9cy5zaWJsaW5nOzUhPT1zLnRhZyYmNiE9PXMudGFnJiYxOCE9PXMudGFnOyl7aWYoMiZzLmZsYWdzKWNvbnRpbnVlIGU7aWYobnVsbD09PXMuY2hpbGR8fDQ9PT1zLnRhZyljb250aW51ZSBlO3MuY2hpbGQucmV0dXJuPXMscz1zLmNoaWxkfWlmKCEoMiZzLmZsYWdzKSlyZXR1cm4gcy5zdGF0ZU5vZGV9fWZ1bmN0aW9uIFZqKHMsbyxpKXt2YXIgYT1zLnRhZztpZig1PT09YXx8Nj09PWEpcz1zLnN0YXRlTm9kZSxvPzg9PT1pLm5vZGVUeXBlP2kucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocyxvKTppLmluc2VydEJlZm9yZShzLG8pOig4PT09aS5ub2RlVHlwZT8obz1pLnBhcmVudE5vZGUpLmluc2VydEJlZm9yZShzLGkpOihvPWkpLmFwcGVuZENoaWxkKHMpLG51bGwhPShpPWkuX3JlYWN0Um9vdENvbnRhaW5lcil8fG51bGwhPT1vLm9uY2xpY2t8fChvLm9uY2xpY2s9QmYpKTtlbHNlIGlmKDQhPT1hJiZudWxsIT09KHM9cy5jaGlsZCkpZm9yKFZqKHMsbyxpKSxzPXMuc2libGluZztudWxsIT09czspVmoocyxvLGkpLHM9cy5zaWJsaW5nfWZ1bmN0aW9uIFdqKHMsbyxpKXt2YXIgYT1zLnRhZztpZig1PT09YXx8Nj09PWEpcz1zLnN0YXRlTm9kZSxvP2kuaW5zZXJ0QmVmb3JlKHMsbyk6aS5hcHBlbmRDaGlsZChzKTtlbHNlIGlmKDQhPT1hJiZudWxsIT09KHM9cy5jaGlsZCkpZm9yKFdqKHMsbyxpKSxzPXMuc2libGluZztudWxsIT09czspV2oocyxvLGkpLHM9cy5zaWJsaW5nfXZhciBJcz1udWxsLFBzPSExO2Z1bmN0aW9uIFlqKHMsbyxpKXtmb3IoaT1pLmNoaWxkO251bGwhPT1pOylaaihzLG8saSksaT1pLnNpYmxpbmd9ZnVuY3Rpb24gWmoocyxvLGkpe2lmKFN0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3Qub25Db21taXRGaWJlclVubW91bnQpdHJ5e1N0Lm9uQ29tbWl0RmliZXJVbm1vdW50KF90LGkpfWNhdGNoKHMpe31zd2l0Y2goaS50YWcpe2Nhc2UgNTpPc3x8TGooaSxvKTtjYXNlIDY6dmFyIGE9SXMsdT1QcztJcz1udWxsLFlqKHMsbyxpKSxQcz11LG51bGwhPT0oSXM9YSkmJihQcz8ocz1JcyxpPWkuc3RhdGVOb2RlLDg9PT1zLm5vZGVUeXBlP3MucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChpKTpzLnJlbW92ZUNoaWxkKGkpKTpJcy5yZW1vdmVDaGlsZChpLnN0YXRlTm9kZSkpO2JyZWFrO2Nhc2UgMTg6bnVsbCE9PUlzJiYoUHM/KHM9SXMsaT1pLnN0YXRlTm9kZSw4PT09cy5ub2RlVHlwZT9LZihzLnBhcmVudE5vZGUsaSk6MT09PXMubm9kZVR5cGUmJktmKHMsaSksYmQocykpOktmKElzLGkuc3RhdGVOb2RlKSk7YnJlYWs7Y2FzZSA0OmE9SXMsdT1QcyxJcz1pLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLFBzPSEwLFlqKHMsbyxpKSxJcz1hLFBzPXU7YnJlYWs7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmlmKCFPcyYmKG51bGwhPT0oYT1pLnVwZGF0ZVF1ZXVlKSYmbnVsbCE9PShhPWEubGFzdEVmZmVjdCkpKXt1PWE9YS5uZXh0O2Rve3ZhciBfPXUsdz1fLmRlc3Ryb3k7Xz1fLnRhZyx2b2lkIDAhPT13JiYoMiZffHw0Jl8pJiZNaihpLG8sdyksdT11Lm5leHR9d2hpbGUodSE9PWEpfVlqKHMsbyxpKTticmVhaztjYXNlIDE6aWYoIU9zJiYoTGooaSxvKSwiZnVuY3Rpb24iPT10eXBlb2YoYT1pLnN0YXRlTm9kZSkuY29tcG9uZW50V2lsbFVubW91bnQpKXRyeXthLnByb3BzPWkubWVtb2l6ZWRQcm9wcyxhLnN0YXRlPWkubWVtb2l6ZWRTdGF0ZSxhLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2gocyl7VyhpLG8scyl9WWoocyxvLGkpO2JyZWFrO2Nhc2UgMjE6WWoocyxvLGkpO2JyZWFrO2Nhc2UgMjI6MSZpLm1vZGU/KE9zPShhPU9zKXx8bnVsbCE9PWkubWVtb2l6ZWRTdGF0ZSxZaihzLG8saSksT3M9YSk6WWoocyxvLGkpO2JyZWFrO2RlZmF1bHQ6WWoocyxvLGkpfX1mdW5jdGlvbiBhayhzKXt2YXIgbz1zLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1vKXtzLnVwZGF0ZVF1ZXVlPW51bGw7dmFyIGk9cy5zdGF0ZU5vZGU7bnVsbD09PWkmJihpPXMuc3RhdGVOb2RlPW5ldyBDcyksby5mb3JFYWNoKChmdW5jdGlvbihvKXt2YXIgYT1iay5iaW5kKG51bGwscyxvKTtpLmhhcyhvKXx8KGkuYWRkKG8pLG8udGhlbihhLGEpKX0pKX19ZnVuY3Rpb24gY2socyxvKXt2YXIgaT1vLmRlbGV0aW9ucztpZihudWxsIT09aSlmb3IodmFyIGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIHU9aVthXTt0cnl7dmFyIF89cyx3PW8seD13O2U6Zm9yKDtudWxsIT09eDspe3N3aXRjaCh4LnRhZyl7Y2FzZSA1OklzPXguc3RhdGVOb2RlLFBzPSExO2JyZWFrIGU7Y2FzZSAzOmNhc2UgNDpJcz14LnN0YXRlTm9kZS5jb250YWluZXJJbmZvLFBzPSEwO2JyZWFrIGV9eD14LnJldHVybn1pZihudWxsPT09SXMpdGhyb3cgRXJyb3IocCgxNjApKTtaaihfLHcsdSksSXM9bnVsbCxQcz0hMTt2YXIgQz11LmFsdGVybmF0ZTtudWxsIT09QyYmKEMucmV0dXJuPW51bGwpLHUucmV0dXJuPW51bGx9Y2F0Y2gocyl7Vyh1LG8scyl9fWlmKDEyODU0Jm8uc3VidHJlZUZsYWdzKWZvcihvPW8uY2hpbGQ7bnVsbCE9PW87KWRrKG8scyksbz1vLnNpYmxpbmd9ZnVuY3Rpb24gZGsocyxvKXt2YXIgaT1zLmFsdGVybmF0ZSxhPXMuZmxhZ3M7c3dpdGNoKHMudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6aWYoY2sobyxzKSxlayhzKSw0JmEpe3RyeXtQaigzLHMscy5yZXR1cm4pLFFqKDMscyl9Y2F0Y2gobyl7VyhzLHMucmV0dXJuLG8pfXRyeXtQaig1LHMscy5yZXR1cm4pfWNhdGNoKG8pe1cocyxzLnJldHVybixvKX19YnJlYWs7Y2FzZSAxOmNrKG8scyksZWsocyksNTEyJmEmJm51bGwhPT1pJiZMaihpLGkucmV0dXJuKTticmVhaztjYXNlIDU6aWYoY2sobyxzKSxlayhzKSw1MTImYSYmbnVsbCE9PWkmJkxqKGksaS5yZXR1cm4pLDMyJnMuZmxhZ3Mpe3ZhciB1PXMuc3RhdGVOb2RlO3RyeXtvYih1LCIiKX1jYXRjaChvKXtXKHMscy5yZXR1cm4sbyl9fWlmKDQmYSYmbnVsbCE9KHU9cy5zdGF0ZU5vZGUpKXt2YXIgXz1zLm1lbW9pemVkUHJvcHMsdz1udWxsIT09aT9pLm1lbW9pemVkUHJvcHM6Xyx4PXMudHlwZSxDPXMudXBkYXRlUXVldWU7aWYocy51cGRhdGVRdWV1ZT1udWxsLG51bGwhPT1DKXRyeXsiaW5wdXQiPT09eCYmInJhZGlvIj09PV8udHlwZSYmbnVsbCE9Xy5uYW1lJiZhYih1LF8pLHZiKHgsdyk7dmFyIGo9dmIoeCxfKTtmb3Iodz0wO3c8Qy5sZW5ndGg7dys9Mil7dmFyIEw9Q1t3XSxCPUNbdysxXTsic3R5bGUiPT09TD9zYih1LEIpOiJkYW5nZXJvdXNseVNldElubmVySFRNTCI9PT1MPyRlKHUsQik6ImNoaWxkcmVuIj09PUw/b2IodSxCKTp0YSh1LEwsQixqKX1zd2l0Y2goeCl7Y2FzZSJpbnB1dCI6YmIodSxfKTticmVhaztjYXNlInRleHRhcmVhIjppYih1LF8pO2JyZWFrO2Nhc2Uic2VsZWN0Ijp2YXIgJD11Ll93cmFwcGVyU3RhdGUud2FzTXVsdGlwbGU7dS5fd3JhcHBlclN0YXRlLndhc011bHRpcGxlPSEhXy5tdWx0aXBsZTt2YXIgVj1fLnZhbHVlO251bGwhPVY/ZmIodSwhIV8ubXVsdGlwbGUsViwhMSk6JCE9PSEhXy5tdWx0aXBsZSYmKG51bGwhPV8uZGVmYXVsdFZhbHVlP2ZiKHUsISFfLm11bHRpcGxlLF8uZGVmYXVsdFZhbHVlLCEwKTpmYih1LCEhXy5tdWx0aXBsZSxfLm11bHRpcGxlP1tdOiIiLCExKSl9dVtkbl09X31jYXRjaChvKXtXKHMscy5yZXR1cm4sbyl9fWJyZWFrO2Nhc2UgNjppZihjayhvLHMpLGVrKHMpLDQmYSl7aWYobnVsbD09PXMuc3RhdGVOb2RlKXRocm93IEVycm9yKHAoMTYyKSk7dT1zLnN0YXRlTm9kZSxfPXMubWVtb2l6ZWRQcm9wczt0cnl7dS5ub2RlVmFsdWU9X31jYXRjaChvKXtXKHMscy5yZXR1cm4sbyl9fWJyZWFrO2Nhc2UgMzppZihjayhvLHMpLGVrKHMpLDQmYSYmbnVsbCE9PWkmJmkubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpdHJ5e2JkKG8uY29udGFpbmVySW5mbyl9Y2F0Y2gobyl7VyhzLHMucmV0dXJuLG8pfWJyZWFrO2Nhc2UgNDpkZWZhdWx0OmNrKG8scyksZWsocyk7YnJlYWs7Y2FzZSAxMzpjayhvLHMpLGVrKHMpLDgxOTImKHU9cy5jaGlsZCkuZmxhZ3MmJihfPW51bGwhPT11Lm1lbW9pemVkU3RhdGUsdS5zdGF0ZU5vZGUuaXNIaWRkZW49XywhX3x8bnVsbCE9PXUuYWx0ZXJuYXRlJiZudWxsIT09dS5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZXx8KFlzPWh0KCkpKSw0JmEmJmFrKHMpO2JyZWFrO2Nhc2UgMjI6aWYoTD1udWxsIT09aSYmbnVsbCE9PWkubWVtb2l6ZWRTdGF0ZSwxJnMubW9kZT8oT3M9KGo9T3MpfHxMLGNrKG8scyksT3M9aik6Y2sobyxzKSxlayhzKSw4MTkyJmEpe2lmKGo9bnVsbCE9PXMubWVtb2l6ZWRTdGF0ZSwocy5zdGF0ZU5vZGUuaXNIaWRkZW49aikmJiFMJiYxJnMubW9kZSlmb3IoQXM9cyxMPXMuY2hpbGQ7bnVsbCE9PUw7KXtmb3IoQj1Bcz1MO251bGwhPT1Bczspe3N3aXRjaChWPSgkPUFzKS5jaGlsZCwkLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OlBqKDQsJCwkLnJldHVybik7YnJlYWs7Y2FzZSAxOkxqKCQsJC5yZXR1cm4pO3ZhciBVPSQuc3RhdGVOb2RlO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBVLmNvbXBvbmVudFdpbGxVbm1vdW50KXthPSQsaT0kLnJldHVybjt0cnl7bz1hLFUucHJvcHM9by5tZW1vaXplZFByb3BzLFUuc3RhdGU9by5tZW1vaXplZFN0YXRlLFUuY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaChzKXtXKGEsaSxzKX19YnJlYWs7Y2FzZSA1OkxqKCQsJC5yZXR1cm4pO2JyZWFrO2Nhc2UgMjI6aWYobnVsbCE9PSQubWVtb2l6ZWRTdGF0ZSl7Z2soQik7Y29udGludWV9fW51bGwhPT1WPyhWLnJldHVybj0kLEFzPVYpOmdrKEIpfUw9TC5zaWJsaW5nfWU6Zm9yKEw9bnVsbCxCPXM7Oyl7aWYoNT09PUIudGFnKXtpZihudWxsPT09TCl7TD1CO3RyeXt1PUIuc3RhdGVOb2RlLGo/ImZ1bmN0aW9uIj09dHlwZW9mKF89dS5zdHlsZSkuc2V0UHJvcGVydHk/Xy5zZXRQcm9wZXJ0eSgiZGlzcGxheSIsIm5vbmUiLCJpbXBvcnRhbnQiKTpfLmRpc3BsYXk9Im5vbmUiOih4PUIuc3RhdGVOb2RlLHc9bnVsbCE9KEM9Qi5tZW1vaXplZFByb3BzLnN0eWxlKSYmQy5oYXNPd25Qcm9wZXJ0eSgiZGlzcGxheSIpP0MuZGlzcGxheTpudWxsLHguc3R5bGUuZGlzcGxheT1yYigiZGlzcGxheSIsdykpfWNhdGNoKG8pe1cocyxzLnJldHVybixvKX19fWVsc2UgaWYoNj09PUIudGFnKXtpZihudWxsPT09TCl0cnl7Qi5zdGF0ZU5vZGUubm9kZVZhbHVlPWo/IiI6Qi5tZW1vaXplZFByb3BzfWNhdGNoKG8pe1cocyxzLnJldHVybixvKX19ZWxzZSBpZigoMjIhPT1CLnRhZyYmMjMhPT1CLnRhZ3x8bnVsbD09PUIubWVtb2l6ZWRTdGF0ZXx8Qj09PXMpJiZudWxsIT09Qi5jaGlsZCl7Qi5jaGlsZC5yZXR1cm49QixCPUIuY2hpbGQ7Y29udGludWV9aWYoQj09PXMpYnJlYWsgZTtmb3IoO251bGw9PT1CLnNpYmxpbmc7KXtpZihudWxsPT09Qi5yZXR1cm58fEIucmV0dXJuPT09cylicmVhayBlO0w9PT1CJiYoTD1udWxsKSxCPUIucmV0dXJufUw9PT1CJiYoTD1udWxsKSxCLnNpYmxpbmcucmV0dXJuPUIucmV0dXJuLEI9Qi5zaWJsaW5nfX1icmVhaztjYXNlIDE5OmNrKG8scyksZWsocyksNCZhJiZhayhzKTtjYXNlIDIxOn19ZnVuY3Rpb24gZWsocyl7dmFyIG89cy5mbGFncztpZigyJm8pe3RyeXtlOntmb3IodmFyIGk9cy5yZXR1cm47bnVsbCE9PWk7KXtpZihUaihpKSl7dmFyIGE9aTticmVhayBlfWk9aS5yZXR1cm59dGhyb3cgRXJyb3IocCgxNjApKX1zd2l0Y2goYS50YWcpe2Nhc2UgNTp2YXIgdT1hLnN0YXRlTm9kZTszMiZhLmZsYWdzJiYob2IodSwiIiksYS5mbGFncyY9LTMzKSxXaihzLFVqKHMpLHUpO2JyZWFrO2Nhc2UgMzpjYXNlIDQ6dmFyIF89YS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztWaihzLFVqKHMpLF8pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IocCgxNjEpKX19Y2F0Y2gobyl7VyhzLHMucmV0dXJuLG8pfXMuZmxhZ3MmPS0zfTQwOTYmbyYmKHMuZmxhZ3MmPS00MDk3KX1mdW5jdGlvbiBoayhzLG8saSl7QXM9cyxpayhzLG8saSl9ZnVuY3Rpb24gaWsocyxvLGkpe2Zvcih2YXIgYT0hISgxJnMubW9kZSk7bnVsbCE9PUFzOyl7dmFyIHU9QXMsXz11LmNoaWxkO2lmKDIyPT09dS50YWcmJmEpe3ZhciB3PW51bGwhPT11Lm1lbW9pemVkU3RhdGV8fGtzO2lmKCF3KXt2YXIgeD11LmFsdGVybmF0ZSxDPW51bGwhPT14JiZudWxsIT09eC5tZW1vaXplZFN0YXRlfHxPczt4PWtzO3ZhciBqPU9zO2lmKGtzPXcsKE9zPUMpJiYhailmb3IoQXM9dTtudWxsIT09QXM7KUM9KHc9QXMpLmNoaWxkLDIyPT09dy50YWcmJm51bGwhPT13Lm1lbW9pemVkU3RhdGU/amsodSk6bnVsbCE9PUM/KEMucmV0dXJuPXcsQXM9Qyk6amsodSk7Zm9yKDtudWxsIT09XzspQXM9XyxpayhfLG8saSksXz1fLnNpYmxpbmc7QXM9dSxrcz14LE9zPWp9a2socyl9ZWxzZSA4NzcyJnUuc3VidHJlZUZsYWdzJiZudWxsIT09Xz8oXy5yZXR1cm49dSxBcz1fKTprayhzKX19ZnVuY3Rpb24ga2socyl7Zm9yKDtudWxsIT09QXM7KXt2YXIgbz1BcztpZig4NzcyJm8uZmxhZ3Mpe3ZhciBpPW8uYWx0ZXJuYXRlO3RyeXtpZig4NzcyJm8uZmxhZ3Mpc3dpdGNoKG8udGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1Ok9zfHxRaig1LG8pO2JyZWFrO2Nhc2UgMTp2YXIgYT1vLnN0YXRlTm9kZTtpZig0Jm8uZmxhZ3MmJiFPcylpZihudWxsPT09aSlhLmNvbXBvbmVudERpZE1vdW50KCk7ZWxzZXt2YXIgdT1vLmVsZW1lbnRUeXBlPT09by50eXBlP2kubWVtb2l6ZWRQcm9wczpDaShvLnR5cGUsaS5tZW1vaXplZFByb3BzKTthLmNvbXBvbmVudERpZFVwZGF0ZSh1LGkubWVtb2l6ZWRTdGF0ZSxhLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKX12YXIgXz1vLnVwZGF0ZVF1ZXVlO251bGwhPT1fJiZzaChvLF8sYSk7YnJlYWs7Y2FzZSAzOnZhciB3PW8udXBkYXRlUXVldWU7aWYobnVsbCE9PXcpe2lmKGk9bnVsbCxudWxsIT09by5jaGlsZClzd2l0Y2goby5jaGlsZC50YWcpe2Nhc2UgNTpjYXNlIDE6aT1vLmNoaWxkLnN0YXRlTm9kZX1zaChvLHcsaSl9YnJlYWs7Y2FzZSA1OnZhciB4PW8uc3RhdGVOb2RlO2lmKG51bGw9PT1pJiY0Jm8uZmxhZ3Mpe2k9eDt2YXIgQz1vLm1lbW9pemVkUHJvcHM7c3dpdGNoKG8udHlwZSl7Y2FzZSJidXR0b24iOmNhc2UiaW5wdXQiOmNhc2Uic2VsZWN0IjpjYXNlInRleHRhcmVhIjpDLmF1dG9Gb2N1cyYmaS5mb2N1cygpO2JyZWFrO2Nhc2UiaW1nIjpDLnNyYyYmKGkuc3JjPUMuc3JjKX19YnJlYWs7Y2FzZSA2OmNhc2UgNDpjYXNlIDEyOmNhc2UgMTk6Y2FzZSAxNzpjYXNlIDIxOmNhc2UgMjI6Y2FzZSAyMzpjYXNlIDI1OmJyZWFrO2Nhc2UgMTM6aWYobnVsbD09PW8ubWVtb2l6ZWRTdGF0ZSl7dmFyIGo9by5hbHRlcm5hdGU7aWYobnVsbCE9PWope3ZhciBMPWoubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09TCl7dmFyIEI9TC5kZWh5ZHJhdGVkO251bGwhPT1CJiZiZChCKX19fWJyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IocCgxNjMpKX1Pc3x8NTEyJm8uZmxhZ3MmJlJqKG8pfWNhdGNoKHMpe1cobyxvLnJldHVybixzKX19aWYobz09PXMpe0FzPW51bGw7YnJlYWt9aWYobnVsbCE9PShpPW8uc2libGluZykpe2kucmV0dXJuPW8ucmV0dXJuLEFzPWk7YnJlYWt9QXM9by5yZXR1cm59fWZ1bmN0aW9uIGdrKHMpe2Zvcig7bnVsbCE9PUFzOyl7dmFyIG89QXM7aWYobz09PXMpe0FzPW51bGw7YnJlYWt9dmFyIGk9by5zaWJsaW5nO2lmKG51bGwhPT1pKXtpLnJldHVybj1vLnJldHVybixBcz1pO2JyZWFrfUFzPW8ucmV0dXJufX1mdW5jdGlvbiBqayhzKXtmb3IoO251bGwhPT1Bczspe3ZhciBvPUFzO3RyeXtzd2l0Y2goby50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6dmFyIGk9by5yZXR1cm47dHJ5e1FqKDQsbyl9Y2F0Y2gocyl7VyhvLGkscyl9YnJlYWs7Y2FzZSAxOnZhciBhPW8uc3RhdGVOb2RlO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLmNvbXBvbmVudERpZE1vdW50KXt2YXIgdT1vLnJldHVybjt0cnl7YS5jb21wb25lbnREaWRNb3VudCgpfWNhdGNoKHMpe1cobyx1LHMpfX12YXIgXz1vLnJldHVybjt0cnl7Umoobyl9Y2F0Y2gocyl7VyhvLF8scyl9YnJlYWs7Y2FzZSA1OnZhciB3PW8ucmV0dXJuO3RyeXtSaihvKX1jYXRjaChzKXtXKG8sdyxzKX19fWNhdGNoKHMpe1cobyxvLnJldHVybixzKX1pZihvPT09cyl7QXM9bnVsbDticmVha312YXIgeD1vLnNpYmxpbmc7aWYobnVsbCE9PXgpe3gucmV0dXJuPW8ucmV0dXJuLEFzPXg7YnJlYWt9QXM9by5yZXR1cm59fXZhciBUcyxOcz1NYXRoLmNlaWwsTXM9VS5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLFJzPVUuUmVhY3RDdXJyZW50T3duZXIsRHM9VS5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZyxMcz0wLEZzPW51bGwsQnM9bnVsbCwkcz0wLHFzPTAsVnM9VWYoMCksVXM9MCx6cz1udWxsLFdzPTAsSnM9MCxIcz0wLEtzPW51bGwsR3M9bnVsbCxZcz0wLFhzPTEvMCxRcz1udWxsLFpzPSExLGVvPW51bGwsdG89bnVsbCxybz0hMSxubz1udWxsLHNvPTAsb289MCxpbz1udWxsLGFvPS0xLGNvPTA7ZnVuY3Rpb24gUigpe3JldHVybiA2JkxzP2h0KCk6LTEhPT1hbz9hbzphbz1odCgpfWZ1bmN0aW9uIHlpKHMpe3JldHVybiAxJnMubW9kZT8yJkxzJiYwIT09JHM/JHMmLSRzOm51bGwhPT0kbi50cmFuc2l0aW9uPygwPT09Y28mJihjbz15YygpKSxjbyk6MCE9PShzPUN0KT9zOnM9dm9pZCAwPT09KHM9d2luZG93LmV2ZW50KT8xNjpqZChzLnR5cGUpOjF9ZnVuY3Rpb24gZ2kocyxvLGksYSl7aWYoNTA8b28pdGhyb3cgb289MCxpbz1udWxsLEVycm9yKHAoMTg1KSk7QWMocyxpLGEpLDImTHMmJnM9PT1Gc3x8KHM9PT1GcyYmKCEoMiZMcykmJihKc3w9aSksND09PVVzJiZDayhzLCRzKSksRGsocyxhKSwxPT09aSYmMD09PUxzJiYhKDEmby5tb2RlKSYmKFhzPWh0KCkrNTAwLGtuJiZqZygpKSl9ZnVuY3Rpb24gRGsocyxvKXt2YXIgaT1zLmNhbGxiYWNrTm9kZTshZnVuY3Rpb24gd2MocyxvKXtmb3IodmFyIGk9cy5zdXNwZW5kZWRMYW5lcyxhPXMucGluZ2VkTGFuZXMsdT1zLmV4cGlyYXRpb25UaW1lcyxfPXMucGVuZGluZ0xhbmVzOzA8Xzspe3ZhciB3PTMxLUV0KF8pLHg9MTw8dyxDPXVbd107LTE9PT1DP3gmaSYmISh4JmEpfHwodVt3XT12Yyh4LG8pKTpDPD1vJiYocy5leHBpcmVkTGFuZXN8PXgpLF8mPX54fX0ocyxvKTt2YXIgYT11YyhzLHM9PT1Gcz8kczowKTtpZigwPT09YSludWxsIT09aSYmbHQoaSkscy5jYWxsYmFja05vZGU9bnVsbCxzLmNhbGxiYWNrUHJpb3JpdHk9MDtlbHNlIGlmKG89YSYtYSxzLmNhbGxiYWNrUHJpb3JpdHkhPT1vKXtpZihudWxsIT1pJiZsdChpKSwxPT09bykwPT09cy50YWc/ZnVuY3Rpb24gaWcocyl7a249ITAsaGcocyl9KEVrLmJpbmQobnVsbCxzKSk6aGcoRWsuYmluZChudWxsLHMpKSx1bigoZnVuY3Rpb24oKXshKDYmTHMpJiZqZygpfSkpLGk9bnVsbDtlbHNle3N3aXRjaChEYyhhKSl7Y2FzZSAxOmk9bXQ7YnJlYWs7Y2FzZSA0Omk9Z3Q7YnJlYWs7Y2FzZSAxNjpkZWZhdWx0Omk9eXQ7YnJlYWs7Y2FzZSA1MzY4NzA5MTI6aT1idH1pPUZrKGksR2suYmluZChudWxsLHMpKX1zLmNhbGxiYWNrUHJpb3JpdHk9byxzLmNhbGxiYWNrTm9kZT1pfX1mdW5jdGlvbiBHayhzLG8pe2lmKGFvPS0xLGNvPTAsNiZMcyl0aHJvdyBFcnJvcihwKDMyNykpO3ZhciBpPXMuY2FsbGJhY2tOb2RlO2lmKEhrKCkmJnMuY2FsbGJhY2tOb2RlIT09aSlyZXR1cm4gbnVsbDt2YXIgYT11YyhzLHM9PT1Gcz8kczowKTtpZigwPT09YSlyZXR1cm4gbnVsbDtpZigzMCZhfHxhJnMuZXhwaXJlZExhbmVzfHxvKW89SWsocyxhKTtlbHNle289YTt2YXIgdT1McztMc3w9Mjt2YXIgXz1KaygpO2ZvcihGcz09PXMmJiRzPT09b3x8KFFzPW51bGwsWHM9aHQoKSs1MDAsS2socyxvKSk7Oyl0cnl7TGsoKTticmVha31jYXRjaChvKXtNayhzLG8pfSRnKCksTXMuY3VycmVudD1fLExzPXUsbnVsbCE9PUJzP289MDooRnM9bnVsbCwkcz0wLG89VXMpfWlmKDAhPT1vKXtpZigyPT09byYmKDAhPT0odT14YyhzKSkmJihhPXUsbz1OayhzLHUpKSksMT09PW8pdGhyb3cgaT16cyxLayhzLDApLENrKHMsYSksRGsocyxodCgpKSxpO2lmKDY9PT1vKUNrKHMsYSk7ZWxzZXtpZih1PXMuY3VycmVudC5hbHRlcm5hdGUsISgzMCZhfHxmdW5jdGlvbiBPayhzKXtmb3IodmFyIG89czs7KXtpZigxNjM4NCZvLmZsYWdzKXt2YXIgaT1vLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1pJiZudWxsIT09KGk9aS5zdG9yZXMpKWZvcih2YXIgYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgdT1pW2FdLF89dS5nZXRTbmFwc2hvdDt1PXUudmFsdWU7dHJ5e2lmKCFEcihfKCksdSkpcmV0dXJuITF9Y2F0Y2gocyl7cmV0dXJuITF9fX1pZihpPW8uY2hpbGQsMTYzODQmby5zdWJ0cmVlRmxhZ3MmJm51bGwhPT1pKWkucmV0dXJuPW8sbz1pO2Vsc2V7aWYobz09PXMpYnJlYWs7Zm9yKDtudWxsPT09by5zaWJsaW5nOyl7aWYobnVsbD09PW8ucmV0dXJufHxvLnJldHVybj09PXMpcmV0dXJuITA7bz1vLnJldHVybn1vLnNpYmxpbmcucmV0dXJuPW8ucmV0dXJuLG89by5zaWJsaW5nfX1yZXR1cm4hMH0odSl8fChvPUlrKHMsYSksMj09PW8mJihfPXhjKHMpLDAhPT1fJiYoYT1fLG89TmsocyxfKSkpLDEhPT1vKSkpdGhyb3cgaT16cyxLayhzLDApLENrKHMsYSksRGsocyxodCgpKSxpO3N3aXRjaChzLmZpbmlzaGVkV29yaz11LHMuZmluaXNoZWRMYW5lcz1hLG8pe2Nhc2UgMDpjYXNlIDE6dGhyb3cgRXJyb3IocCgzNDUpKTtjYXNlIDI6Y2FzZSA1OlBrKHMsR3MsUXMpO2JyZWFrO2Nhc2UgMzppZihDayhzLGEpLCgxMzAwMjM0MjQmYSk9PT1hJiYxMDwobz1Zcys1MDAtaHQoKSkpe2lmKDAhPT11YyhzLDApKWJyZWFrO2lmKCgodT1zLnN1c3BlbmRlZExhbmVzKSZhKSE9PWEpe1IoKSxzLnBpbmdlZExhbmVzfD1zLnN1c3BlbmRlZExhbmVzJnU7YnJlYWt9cy50aW1lb3V0SGFuZGxlPWFuKFBrLmJpbmQobnVsbCxzLEdzLFFzKSxvKTticmVha31QayhzLEdzLFFzKTticmVhaztjYXNlIDQ6aWYoQ2socyxhKSwoNDE5NDI0MCZhKT09PWEpYnJlYWs7Zm9yKG89cy5ldmVudFRpbWVzLHU9LTE7MDxhOyl7dmFyIHc9MzEtRXQoYSk7Xz0xPDx3LCh3PW9bd10pPnUmJih1PXcpLGEmPX5ffWlmKGE9dSwxMDwoYT0oMTIwPihhPWh0KCktYSk/MTIwOjQ4MD5hPzQ4MDoxMDgwPmE/MTA4MDoxOTIwPmE/MTkyMDozZTM+YT8zZTM6NDMyMD5hPzQzMjA6MTk2MCpOcyhhLzE5NjApKS1hKSl7cy50aW1lb3V0SGFuZGxlPWFuKFBrLmJpbmQobnVsbCxzLEdzLFFzKSxhKTticmVha31QayhzLEdzLFFzKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKHAoMzI5KSl9fX1yZXR1cm4gRGsocyxodCgpKSxzLmNhbGxiYWNrTm9kZT09PWk/R2suYmluZChudWxsLHMpOm51bGx9ZnVuY3Rpb24gTmsocyxvKXt2YXIgaT1LcztyZXR1cm4gcy5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkJiYoS2socyxvKS5mbGFnc3w9MjU2KSwyIT09KHM9SWsocyxvKSkmJihvPUdzLEdzPWksbnVsbCE9PW8mJkZqKG8pKSxzfWZ1bmN0aW9uIEZqKHMpe251bGw9PT1Hcz9Hcz1zOkdzLnB1c2guYXBwbHkoR3Mscyl9ZnVuY3Rpb24gQ2socyxvKXtmb3IobyY9fkhzLG8mPX5KcyxzLnN1c3BlbmRlZExhbmVzfD1vLHMucGluZ2VkTGFuZXMmPX5vLHM9cy5leHBpcmF0aW9uVGltZXM7MDxvOyl7dmFyIGk9MzEtRXQobyksYT0xPDxpO3NbaV09LTEsbyY9fmF9fWZ1bmN0aW9uIEVrKHMpe2lmKDYmTHMpdGhyb3cgRXJyb3IocCgzMjcpKTtIaygpO3ZhciBvPXVjKHMsMCk7aWYoISgxJm8pKXJldHVybiBEayhzLGh0KCkpLG51bGw7dmFyIGk9SWsocyxvKTtpZigwIT09cy50YWcmJjI9PT1pKXt2YXIgYT14YyhzKTswIT09YSYmKG89YSxpPU5rKHMsYSkpfWlmKDE9PT1pKXRocm93IGk9enMsS2socywwKSxDayhzLG8pLERrKHMsaHQoKSksaTtpZig2PT09aSl0aHJvdyBFcnJvcihwKDM0NSkpO3JldHVybiBzLmZpbmlzaGVkV29yaz1zLmN1cnJlbnQuYWx0ZXJuYXRlLHMuZmluaXNoZWRMYW5lcz1vLFBrKHMsR3MsUXMpLERrKHMsaHQoKSksbnVsbH1mdW5jdGlvbiBRayhzLG8pe3ZhciBpPUxzO0xzfD0xO3RyeXtyZXR1cm4gcyhvKX1maW5hbGx5ezA9PT0oTHM9aSkmJihYcz1odCgpKzUwMCxrbiYmamcoKSl9fWZ1bmN0aW9uIFJrKHMpe251bGwhPT1ubyYmMD09PW5vLnRhZyYmISg2JkxzKSYmSGsoKTt2YXIgbz1McztMc3w9MTt2YXIgaT1Ecy50cmFuc2l0aW9uLGE9Q3Q7dHJ5e2lmKERzLnRyYW5zaXRpb249bnVsbCxDdD0xLHMpcmV0dXJuIHMoKX1maW5hbGx5e0N0PWEsRHMudHJhbnNpdGlvbj1pLCEoNiYoTHM9bykpJiZqZygpfX1mdW5jdGlvbiBIaigpe3FzPVZzLmN1cnJlbnQsRShWcyl9ZnVuY3Rpb24gS2socyxvKXtzLmZpbmlzaGVkV29yaz1udWxsLHMuZmluaXNoZWRMYW5lcz0wO3ZhciBpPXMudGltZW91dEhhbmRsZTtpZigtMSE9PWkmJihzLnRpbWVvdXRIYW5kbGU9LTEsY24oaSkpLG51bGwhPT1Ccylmb3IoaT1Ccy5yZXR1cm47bnVsbCE9PWk7KXt2YXIgYT1pO3N3aXRjaCh3ZyhhKSxhLnRhZyl7Y2FzZSAxOm51bGwhPShhPWEudHlwZS5jaGlsZENvbnRleHRUeXBlcykmJiRmKCk7YnJlYWs7Y2FzZSAzOnpoKCksRShFbiksRShTbiksRWgoKTticmVhaztjYXNlIDU6QmgoYSk7YnJlYWs7Y2FzZSA0OnpoKCk7YnJlYWs7Y2FzZSAxMzpjYXNlIDE5OkUoWm4pO2JyZWFrO2Nhc2UgMTA6YWgoYS50eXBlLl9jb250ZXh0KTticmVhaztjYXNlIDIyOmNhc2UgMjM6SGooKX1pPWkucmV0dXJufWlmKEZzPXMsQnM9cz1QZyhzLmN1cnJlbnQsbnVsbCksJHM9cXM9byxVcz0wLHpzPW51bGwsSHM9SnM9V3M9MCxHcz1Lcz1udWxsLG51bGwhPT1Ibil7Zm9yKG89MDtvPEhuLmxlbmd0aDtvKyspaWYobnVsbCE9PShhPShpPUhuW29dKS5pbnRlcmxlYXZlZCkpe2kuaW50ZXJsZWF2ZWQ9bnVsbDt2YXIgdT1hLm5leHQsXz1pLnBlbmRpbmc7aWYobnVsbCE9PV8pe3ZhciB3PV8ubmV4dDtfLm5leHQ9dSxhLm5leHQ9d31pLnBlbmRpbmc9YX1Ibj1udWxsfXJldHVybiBzfWZ1bmN0aW9uIE1rKHMsbyl7Zm9yKDs7KXt2YXIgaT1Cczt0cnl7aWYoJGcoKSx0cy5jdXJyZW50PWhzLGNzKXtmb3IodmFyIGE9c3MubWVtb2l6ZWRTdGF0ZTtudWxsIT09YTspe3ZhciB1PWEucXVldWU7bnVsbCE9PXUmJih1LnBlbmRpbmc9bnVsbCksYT1hLm5leHR9Y3M9ITF9aWYobnM9MCxhcz1vcz1zcz1udWxsLGxzPSExLHVzPTAsUnMuY3VycmVudD1udWxsLG51bGw9PT1pfHxudWxsPT09aS5yZXR1cm4pe1VzPTEsenM9byxCcz1udWxsO2JyZWFrfWU6e3ZhciBfPXMsdz1pLnJldHVybix4PWksQz1vO2lmKG89JHMseC5mbGFnc3w9MzI3NjgsbnVsbCE9PUMmJiJvYmplY3QiPT10eXBlb2YgQyYmImZ1bmN0aW9uIj09dHlwZW9mIEMudGhlbil7dmFyIGo9QyxMPXgsQj1MLnRhZztpZighKDEmTC5tb2RlfHwwIT09QiYmMTEhPT1CJiYxNSE9PUIpKXt2YXIgJD1MLmFsdGVybmF0ZTskPyhMLnVwZGF0ZVF1ZXVlPSQudXBkYXRlUXVldWUsTC5tZW1vaXplZFN0YXRlPSQubWVtb2l6ZWRTdGF0ZSxMLmxhbmVzPSQubGFuZXMpOihMLnVwZGF0ZVF1ZXVlPW51bGwsTC5tZW1vaXplZFN0YXRlPW51bGwpfXZhciBWPVVpKHcpO2lmKG51bGwhPT1WKXtWLmZsYWdzJj0tMjU3LFZpKFYsdyx4LDAsbyksMSZWLm1vZGUmJlNpKF8saixvKSxDPWo7dmFyIFU9KG89VikudXBkYXRlUXVldWU7aWYobnVsbD09PVUpe3ZhciB6PW5ldyBTZXQ7ei5hZGQoQyksby51cGRhdGVRdWV1ZT16fWVsc2UgVS5hZGQoQyk7YnJlYWsgZX1pZighKDEmbykpe1NpKF8saixvKSx0aigpO2JyZWFrIGV9Qz1FcnJvcihwKDQyNikpfWVsc2UgaWYoRm4mJjEmeC5tb2RlKXt2YXIgWT1VaSh3KTtpZihudWxsIT09WSl7ISg2NTUzNiZZLmZsYWdzKSYmKFkuZmxhZ3N8PTI1NiksVmkoWSx3LHgsMCxvKSxKZyhKaShDLHgpKTticmVhayBlfX1fPUM9SmkoQyx4KSw0IT09VXMmJihVcz0yKSxudWxsPT09S3M/S3M9W19dOktzLnB1c2goXyksXz13O2Rve3N3aXRjaChfLnRhZyl7Y2FzZSAzOl8uZmxhZ3N8PTY1NTM2LG8mPS1vLF8ubGFuZXN8PW8scGgoXyxOaSgwLEMsbykpO2JyZWFrIGU7Y2FzZSAxOng9Qzt2YXIgWj1fLnR5cGUsZWU9Xy5zdGF0ZU5vZGU7aWYoISgxMjgmXy5mbGFnc3x8ImZ1bmN0aW9uIiE9dHlwZW9mIFouZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yJiYobnVsbD09PWVlfHwiZnVuY3Rpb24iIT10eXBlb2YgZWUuY29tcG9uZW50RGlkQ2F0Y2h8fG51bGwhPT10byYmdG8uaGFzKGVlKSkpKXtfLmZsYWdzfD02NTUzNixvJj0tbyxfLmxhbmVzfD1vLHBoKF8sUWkoXyx4LG8pKTticmVhayBlfX1fPV8ucmV0dXJufXdoaWxlKG51bGwhPT1fKX1TayhpKX1jYXRjaChzKXtvPXMsQnM9PT1pJiZudWxsIT09aSYmKEJzPWk9aS5yZXR1cm4pO2NvbnRpbnVlfWJyZWFrfX1mdW5jdGlvbiBKaygpe3ZhciBzPU1zLmN1cnJlbnQ7cmV0dXJuIE1zLmN1cnJlbnQ9aHMsbnVsbD09PXM/aHM6c31mdW5jdGlvbiB0aigpezAhPT1VcyYmMyE9PVVzJiYyIT09VXN8fChVcz00KSxudWxsPT09RnN8fCEoMjY4NDM1NDU1JldzKSYmISgyNjg0MzU0NTUmSnMpfHxDayhGcywkcyl9ZnVuY3Rpb24gSWsocyxvKXt2YXIgaT1McztMc3w9Mjt2YXIgYT1KaygpO2ZvcihGcz09PXMmJiRzPT09b3x8KFFzPW51bGwsS2socyxvKSk7Oyl0cnl7VGsoKTticmVha31jYXRjaChvKXtNayhzLG8pfWlmKCRnKCksTHM9aSxNcy5jdXJyZW50PWEsbnVsbCE9PUJzKXRocm93IEVycm9yKHAoMjYxKSk7cmV0dXJuIEZzPW51bGwsJHM9MCxVc31mdW5jdGlvbiBUaygpe2Zvcig7bnVsbCE9PUJzOylVayhCcyl9ZnVuY3Rpb24gTGsoKXtmb3IoO251bGwhPT1CcyYmIXV0KCk7KVVrKEJzKX1mdW5jdGlvbiBVayhzKXt2YXIgbz1UcyhzLmFsdGVybmF0ZSxzLHFzKTtzLm1lbW9pemVkUHJvcHM9cy5wZW5kaW5nUHJvcHMsbnVsbD09PW8/U2socyk6QnM9byxScy5jdXJyZW50PW51bGx9ZnVuY3Rpb24gU2socyl7dmFyIG89cztkb3t2YXIgaT1vLmFsdGVybmF0ZTtpZihzPW8ucmV0dXJuLDMyNzY4Jm8uZmxhZ3Mpe2lmKG51bGwhPT0oaT1JaihpLG8pKSlyZXR1cm4gaS5mbGFncyY9MzI3Njcsdm9pZChCcz1pKTtpZihudWxsPT09cylyZXR1cm4gVXM9Nix2b2lkKEJzPW51bGwpO3MuZmxhZ3N8PTMyNzY4LHMuc3VidHJlZUZsYWdzPTAscy5kZWxldGlvbnM9bnVsbH1lbHNlIGlmKG51bGwhPT0oaT1FaihpLG8scXMpKSlyZXR1cm4gdm9pZChCcz1pKTtpZihudWxsIT09KG89by5zaWJsaW5nKSlyZXR1cm4gdm9pZChCcz1vKTtCcz1vPXN9d2hpbGUobnVsbCE9PW8pOzA9PT1VcyYmKFVzPTUpfWZ1bmN0aW9uIFBrKHMsbyxpKXt2YXIgYT1DdCx1PURzLnRyYW5zaXRpb247dHJ5e0RzLnRyYW5zaXRpb249bnVsbCxDdD0xLGZ1bmN0aW9uIFdrKHMsbyxpLGEpe2Rve0hrKCl9d2hpbGUobnVsbCE9PW5vKTtpZig2JkxzKXRocm93IEVycm9yKHAoMzI3KSk7aT1zLmZpbmlzaGVkV29yazt2YXIgdT1zLmZpbmlzaGVkTGFuZXM7aWYobnVsbD09PWkpcmV0dXJuIG51bGw7aWYocy5maW5pc2hlZFdvcms9bnVsbCxzLmZpbmlzaGVkTGFuZXM9MCxpPT09cy5jdXJyZW50KXRocm93IEVycm9yKHAoMTc3KSk7cy5jYWxsYmFja05vZGU9bnVsbCxzLmNhbGxiYWNrUHJpb3JpdHk9MDt2YXIgXz1pLmxhbmVzfGkuY2hpbGRMYW5lcztpZihmdW5jdGlvbiBCYyhzLG8pe3ZhciBpPXMucGVuZGluZ0xhbmVzJn5vO3MucGVuZGluZ0xhbmVzPW8scy5zdXNwZW5kZWRMYW5lcz0wLHMucGluZ2VkTGFuZXM9MCxzLmV4cGlyZWRMYW5lcyY9byxzLm11dGFibGVSZWFkTGFuZXMmPW8scy5lbnRhbmdsZWRMYW5lcyY9byxvPXMuZW50YW5nbGVtZW50czt2YXIgYT1zLmV2ZW50VGltZXM7Zm9yKHM9cy5leHBpcmF0aW9uVGltZXM7MDxpOyl7dmFyIHU9MzEtRXQoaSksXz0xPDx1O29bdV09MCxhW3VdPS0xLHNbdV09LTEsaSY9fl99fShzLF8pLHM9PT1GcyYmKEJzPUZzPW51bGwsJHM9MCksISgyMDY0Jmkuc3VidHJlZUZsYWdzKSYmISgyMDY0JmkuZmxhZ3MpfHxyb3x8KHJvPSEwLEZrKHl0LChmdW5jdGlvbigpe3JldHVybiBIaygpLG51bGx9KSkpLF89ISEoMTU5OTAmaS5mbGFncyksISEoMTU5OTAmaS5zdWJ0cmVlRmxhZ3MpfHxfKXtfPURzLnRyYW5zaXRpb24sRHMudHJhbnNpdGlvbj1udWxsO3ZhciB3PUN0O0N0PTE7dmFyIHg9THM7THN8PTQsUnMuY3VycmVudD1udWxsLGZ1bmN0aW9uIE9qKHMsbyl7aWYoc249VXQsTmUocz1NZSgpKSl7aWYoInNlbGVjdGlvblN0YXJ0ImluIHMpdmFyIGk9e3N0YXJ0OnMuc2VsZWN0aW9uU3RhcnQsZW5kOnMuc2VsZWN0aW9uRW5kfTtlbHNlIGU6e3ZhciBhPShpPShpPXMub3duZXJEb2N1bWVudCkmJmkuZGVmYXVsdFZpZXd8fHdpbmRvdykuZ2V0U2VsZWN0aW9uJiZpLmdldFNlbGVjdGlvbigpO2lmKGEmJjAhPT1hLnJhbmdlQ291bnQpe2k9YS5hbmNob3JOb2RlO3ZhciB1PWEuYW5jaG9yT2Zmc2V0LF89YS5mb2N1c05vZGU7YT1hLmZvY3VzT2Zmc2V0O3RyeXtpLm5vZGVUeXBlLF8ubm9kZVR5cGV9Y2F0Y2gocyl7aT1udWxsO2JyZWFrIGV9dmFyIHc9MCx4PS0xLEM9LTEsaj0wLEw9MCxCPXMsJD1udWxsO3Q6Zm9yKDs7KXtmb3IodmFyIFY7QiE9PWl8fDAhPT11JiYzIT09Qi5ub2RlVHlwZXx8KHg9dyt1KSxCIT09X3x8MCE9PWEmJjMhPT1CLm5vZGVUeXBlfHwoQz13K2EpLDM9PT1CLm5vZGVUeXBlJiYodys9Qi5ub2RlVmFsdWUubGVuZ3RoKSxudWxsIT09KFY9Qi5maXJzdENoaWxkKTspJD1CLEI9Vjtmb3IoOzspe2lmKEI9PT1zKWJyZWFrIHQ7aWYoJD09PWkmJisraj09PXUmJih4PXcpLCQ9PT1fJiYrK0w9PT1hJiYoQz13KSxudWxsIT09KFY9Qi5uZXh0U2libGluZykpYnJlYWs7JD0oQj0kKS5wYXJlbnROb2RlfUI9Vn1pPS0xPT09eHx8LTE9PT1DP251bGw6e3N0YXJ0OngsZW5kOkN9fWVsc2UgaT1udWxsfWk9aXx8e3N0YXJ0OjAsZW5kOjB9fWVsc2UgaT1udWxsO2Zvcihvbj17Zm9jdXNlZEVsZW06cyxzZWxlY3Rpb25SYW5nZTppfSxVdD0hMSxBcz1vO251bGwhPT1BczspaWYocz0obz1BcykuY2hpbGQsMTAyOCZvLnN1YnRyZWVGbGFncyYmbnVsbCE9PXMpcy5yZXR1cm49byxBcz1zO2Vsc2UgZm9yKDtudWxsIT09QXM7KXtvPUFzO3RyeXt2YXIgVT1vLmFsdGVybmF0ZTtpZigxMDI0Jm8uZmxhZ3Mpc3dpdGNoKG8udGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmNhc2UgNTpjYXNlIDY6Y2FzZSA0OmNhc2UgMTc6YnJlYWs7Y2FzZSAxOmlmKG51bGwhPT1VKXt2YXIgej1VLm1lbW9pemVkUHJvcHMsWT1VLm1lbW9pemVkU3RhdGUsWj1vLnN0YXRlTm9kZSxlZT1aLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKG8uZWxlbWVudFR5cGU9PT1vLnR5cGU/ejpDaShvLnR5cGUseiksWSk7Wi5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZT1lZX1icmVhaztjYXNlIDM6dmFyIGllPW8uc3RhdGVOb2RlLmNvbnRhaW5lckluZm87MT09PWllLm5vZGVUeXBlP2llLnRleHRDb250ZW50PSIiOjk9PT1pZS5ub2RlVHlwZSYmaWUuZG9jdW1lbnRFbGVtZW50JiZpZS5yZW1vdmVDaGlsZChpZS5kb2N1bWVudEVsZW1lbnQpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IocCgxNjMpKX19Y2F0Y2gocyl7VyhvLG8ucmV0dXJuLHMpfWlmKG51bGwhPT0ocz1vLnNpYmxpbmcpKXtzLnJldHVybj1vLnJldHVybixBcz1zO2JyZWFrfUFzPW8ucmV0dXJufXJldHVybiBVPWpzLGpzPSExLFV9KHMsaSksZGsoaSxzKSxPZShvbiksVXQ9ISFzbixvbj1zbj1udWxsLHMuY3VycmVudD1pLGhrKGkscyx1KSxwdCgpLExzPXgsQ3Q9dyxEcy50cmFuc2l0aW9uPV99ZWxzZSBzLmN1cnJlbnQ9aTtpZihybyYmKHJvPSExLG5vPXMsc289dSksXz1zLnBlbmRpbmdMYW5lcywwPT09XyYmKHRvPW51bGwpLGZ1bmN0aW9uIG1jKHMpe2lmKFN0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3Qub25Db21taXRGaWJlclJvb3QpdHJ5e1N0Lm9uQ29tbWl0RmliZXJSb290KF90LHMsdm9pZCAwLCEoMTI4Jn5zLmN1cnJlbnQuZmxhZ3MpKX1jYXRjaChzKXt9fShpLnN0YXRlTm9kZSksRGsocyxodCgpKSxudWxsIT09bylmb3IoYT1zLm9uUmVjb3ZlcmFibGVFcnJvcixpPTA7aTxvLmxlbmd0aDtpKyspdT1vW2ldLGEodS52YWx1ZSx7Y29tcG9uZW50U3RhY2s6dS5zdGFjayxkaWdlc3Q6dS5kaWdlc3R9KTtpZihacyl0aHJvdyBacz0hMSxzPWVvLGVvPW51bGwscztyZXR1cm4hISgxJnNvKSYmMCE9PXMudGFnJiZIaygpLF89cy5wZW5kaW5nTGFuZXMsMSZfP3M9PT1pbz9vbysrOihvbz0wLGlvPXMpOm9vPTAsamcoKSxudWxsfShzLG8saSxhKX1maW5hbGx5e0RzLnRyYW5zaXRpb249dSxDdD1hfXJldHVybiBudWxsfWZ1bmN0aW9uIEhrKCl7aWYobnVsbCE9PW5vKXt2YXIgcz1EYyhzbyksbz1Ecy50cmFuc2l0aW9uLGk9Q3Q7dHJ5e2lmKERzLnRyYW5zaXRpb249bnVsbCxDdD0xNj5zPzE2OnMsbnVsbD09PW5vKXZhciBhPSExO2Vsc2V7aWYocz1ubyxubz1udWxsLHNvPTAsNiZMcyl0aHJvdyBFcnJvcihwKDMzMSkpO3ZhciB1PUxzO2ZvcihMc3w9NCxBcz1zLmN1cnJlbnQ7bnVsbCE9PUFzOyl7dmFyIF89QXMsdz1fLmNoaWxkO2lmKDE2JkFzLmZsYWdzKXt2YXIgeD1fLmRlbGV0aW9ucztpZihudWxsIT09eCl7Zm9yKHZhciBDPTA7Qzx4Lmxlbmd0aDtDKyspe3ZhciBqPXhbQ107Zm9yKEFzPWo7bnVsbCE9PUFzOyl7dmFyIEw9QXM7c3dpdGNoKEwudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OlBqKDgsTCxfKX12YXIgQj1MLmNoaWxkO2lmKG51bGwhPT1CKUIucmV0dXJuPUwsQXM9QjtlbHNlIGZvcig7bnVsbCE9PUFzOyl7dmFyICQ9KEw9QXMpLnNpYmxpbmcsVj1MLnJldHVybjtpZihTaihMKSxMPT09ail7QXM9bnVsbDticmVha31pZihudWxsIT09JCl7JC5yZXR1cm49VixBcz0kO2JyZWFrfUFzPVZ9fX12YXIgVT1fLmFsdGVybmF0ZTtpZihudWxsIT09VSl7dmFyIHo9VS5jaGlsZDtpZihudWxsIT09eil7VS5jaGlsZD1udWxsO2Rve3ZhciBZPXouc2libGluZzt6LnNpYmxpbmc9bnVsbCx6PVl9d2hpbGUobnVsbCE9PXopfX1Bcz1ffX1pZigyMDY0Jl8uc3VidHJlZUZsYWdzJiZudWxsIT09dyl3LnJldHVybj1fLEFzPXc7ZWxzZSBlOmZvcig7bnVsbCE9PUFzOyl7aWYoMjA0OCYoXz1BcykuZmxhZ3Mpc3dpdGNoKF8udGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OlBqKDksXyxfLnJldHVybil9dmFyIFo9Xy5zaWJsaW5nO2lmKG51bGwhPT1aKXtaLnJldHVybj1fLnJldHVybixBcz1aO2JyZWFrIGV9QXM9Xy5yZXR1cm59fXZhciBlZT1zLmN1cnJlbnQ7Zm9yKEFzPWVlO251bGwhPT1Bczspe3ZhciBpZT0odz1BcykuY2hpbGQ7aWYoMjA2NCZ3LnN1YnRyZWVGbGFncyYmbnVsbCE9PWllKWllLnJldHVybj13LEFzPWllO2Vsc2UgZTpmb3Iodz1lZTtudWxsIT09QXM7KXtpZigyMDQ4Jih4PUFzKS5mbGFncyl0cnl7c3dpdGNoKHgudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OlFqKDkseCl9fWNhdGNoKHMpe1coeCx4LnJldHVybixzKX1pZih4PT09dyl7QXM9bnVsbDticmVhayBlfXZhciBhZT14LnNpYmxpbmc7aWYobnVsbCE9PWFlKXthZS5yZXR1cm49eC5yZXR1cm4sQXM9YWU7YnJlYWsgZX1Bcz14LnJldHVybn19aWYoTHM9dSxqZygpLFN0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3Qub25Qb3N0Q29tbWl0RmliZXJSb290KXRyeXtTdC5vblBvc3RDb21taXRGaWJlclJvb3QoX3Qscyl9Y2F0Y2gocyl7fWE9ITB9cmV0dXJuIGF9ZmluYWxseXtDdD1pLERzLnRyYW5zaXRpb249b319cmV0dXJuITF9ZnVuY3Rpb24gWGsocyxvLGkpe3M9bmgocyxvPU5pKDAsbz1KaShpLG8pLDEpLDEpLG89UigpLG51bGwhPT1zJiYoQWMocywxLG8pLERrKHMsbykpfWZ1bmN0aW9uIFcocyxvLGkpe2lmKDM9PT1zLnRhZylYayhzLHMsaSk7ZWxzZSBmb3IoO251bGwhPT1vOyl7aWYoMz09PW8udGFnKXtYayhvLHMsaSk7YnJlYWt9aWYoMT09PW8udGFnKXt2YXIgYT1vLnN0YXRlTm9kZTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygby50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8ImZ1bmN0aW9uIj09dHlwZW9mIGEuY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09dG98fCF0by5oYXMoYSkpKXtvPW5oKG8scz1RaShvLHM9SmkoaSxzKSwxKSwxKSxzPVIoKSxudWxsIT09byYmKEFjKG8sMSxzKSxEayhvLHMpKTticmVha319bz1vLnJldHVybn19ZnVuY3Rpb24gVGkocyxvLGkpe3ZhciBhPXMucGluZ0NhY2hlO251bGwhPT1hJiZhLmRlbGV0ZShvKSxvPVIoKSxzLnBpbmdlZExhbmVzfD1zLnN1c3BlbmRlZExhbmVzJmksRnM9PT1zJiYoJHMmaSk9PT1pJiYoND09PVVzfHwzPT09VXMmJigxMzAwMjM0MjQmJHMpPT09JHMmJjUwMD5odCgpLVlzP0trKHMsMCk6SHN8PWkpLERrKHMsbyl9ZnVuY3Rpb24gWWsocyxvKXswPT09byYmKDEmcy5tb2RlPyhvPU90LCEoMTMwMDIzNDI0JihPdDw8PTEpKSYmKE90PTQxOTQzMDQpKTpvPTEpO3ZhciBpPVIoKTtudWxsIT09KHM9aWgocyxvKSkmJihBYyhzLG8saSksRGsocyxpKSl9ZnVuY3Rpb24gdWoocyl7dmFyIG89cy5tZW1vaXplZFN0YXRlLGk9MDtudWxsIT09byYmKGk9by5yZXRyeUxhbmUpLFlrKHMsaSl9ZnVuY3Rpb24gYmsocyxvKXt2YXIgaT0wO3N3aXRjaChzLnRhZyl7Y2FzZSAxMzp2YXIgYT1zLnN0YXRlTm9kZSx1PXMubWVtb2l6ZWRTdGF0ZTtudWxsIT09dSYmKGk9dS5yZXRyeUxhbmUpO2JyZWFrO2Nhc2UgMTk6YT1zLnN0YXRlTm9kZTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKHAoMzE0KSl9bnVsbCE9PWEmJmEuZGVsZXRlKG8pLFlrKHMsaSl9ZnVuY3Rpb24gRmsocyxvKXtyZXR1cm4gY3QocyxvKX1mdW5jdGlvbiAkayhzLG8saSxhKXt0aGlzLnRhZz1zLHRoaXMua2V5PWksdGhpcy5zaWJsaW5nPXRoaXMuY2hpbGQ9dGhpcy5yZXR1cm49dGhpcy5zdGF0ZU5vZGU9dGhpcy50eXBlPXRoaXMuZWxlbWVudFR5cGU9bnVsbCx0aGlzLmluZGV4PTAsdGhpcy5yZWY9bnVsbCx0aGlzLnBlbmRpbmdQcm9wcz1vLHRoaXMuZGVwZW5kZW5jaWVzPXRoaXMubWVtb2l6ZWRTdGF0ZT10aGlzLnVwZGF0ZVF1ZXVlPXRoaXMubWVtb2l6ZWRQcm9wcz1udWxsLHRoaXMubW9kZT1hLHRoaXMuc3VidHJlZUZsYWdzPXRoaXMuZmxhZ3M9MCx0aGlzLmRlbGV0aW9ucz1udWxsLHRoaXMuY2hpbGRMYW5lcz10aGlzLmxhbmVzPTAsdGhpcy5hbHRlcm5hdGU9bnVsbH1mdW5jdGlvbiBCZyhzLG8saSxhKXtyZXR1cm4gbmV3ICRrKHMsbyxpLGEpfWZ1bmN0aW9uIGFqKHMpe3JldHVybiEoIShzPXMucHJvdG90eXBlKXx8IXMuaXNSZWFjdENvbXBvbmVudCl9ZnVuY3Rpb24gUGcocyxvKXt2YXIgaT1zLmFsdGVybmF0ZTtyZXR1cm4gbnVsbD09PWk/KChpPUJnKHMudGFnLG8scy5rZXkscy5tb2RlKSkuZWxlbWVudFR5cGU9cy5lbGVtZW50VHlwZSxpLnR5cGU9cy50eXBlLGkuc3RhdGVOb2RlPXMuc3RhdGVOb2RlLGkuYWx0ZXJuYXRlPXMscy5hbHRlcm5hdGU9aSk6KGkucGVuZGluZ1Byb3BzPW8saS50eXBlPXMudHlwZSxpLmZsYWdzPTAsaS5zdWJ0cmVlRmxhZ3M9MCxpLmRlbGV0aW9ucz1udWxsKSxpLmZsYWdzPTE0NjgwMDY0JnMuZmxhZ3MsaS5jaGlsZExhbmVzPXMuY2hpbGRMYW5lcyxpLmxhbmVzPXMubGFuZXMsaS5jaGlsZD1zLmNoaWxkLGkubWVtb2l6ZWRQcm9wcz1zLm1lbW9pemVkUHJvcHMsaS5tZW1vaXplZFN0YXRlPXMubWVtb2l6ZWRTdGF0ZSxpLnVwZGF0ZVF1ZXVlPXMudXBkYXRlUXVldWUsbz1zLmRlcGVuZGVuY2llcyxpLmRlcGVuZGVuY2llcz1udWxsPT09bz9udWxsOntsYW5lczpvLmxhbmVzLGZpcnN0Q29udGV4dDpvLmZpcnN0Q29udGV4dH0saS5zaWJsaW5nPXMuc2libGluZyxpLmluZGV4PXMuaW5kZXgsaS5yZWY9cy5yZWYsaX1mdW5jdGlvbiBSZyhzLG8saSxhLHUsXyl7dmFyIHc9MjtpZihhPXMsImZ1bmN0aW9uIj09dHlwZW9mIHMpYWoocykmJih3PTEpO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBzKXc9NTtlbHNlIGU6c3dpdGNoKHMpe2Nhc2UgWjpyZXR1cm4gVGcoaS5jaGlsZHJlbix1LF8sbyk7Y2FzZSBlZTp3PTgsdXw9ODticmVhaztjYXNlIGllOnJldHVybihzPUJnKDEyLGksbywyfHUpKS5lbGVtZW50VHlwZT1pZSxzLmxhbmVzPV8scztjYXNlIHBlOnJldHVybihzPUJnKDEzLGksbyx1KSkuZWxlbWVudFR5cGU9cGUscy5sYW5lcz1fLHM7Y2FzZSBkZTpyZXR1cm4ocz1CZygxOSxpLG8sdSkpLmVsZW1lbnRUeXBlPWRlLHMubGFuZXM9XyxzO2Nhc2UgYmU6cmV0dXJuIHBqKGksdSxfLG8pO2RlZmF1bHQ6aWYoIm9iamVjdCI9PXR5cGVvZiBzJiZudWxsIT09cylzd2l0Y2gocy4kJHR5cGVvZil7Y2FzZSBhZTp3PTEwO2JyZWFrIGU7Y2FzZSBjZTp3PTk7YnJlYWsgZTtjYXNlIGxlOnc9MTE7YnJlYWsgZTtjYXNlIGZlOnc9MTQ7YnJlYWsgZTtjYXNlIHllOnc9MTYsYT1udWxsO2JyZWFrIGV9dGhyb3cgRXJyb3IocCgxMzAsbnVsbD09cz9zOnR5cGVvZiBzLCIiKSl9cmV0dXJuKG89QmcodyxpLG8sdSkpLmVsZW1lbnRUeXBlPXMsby50eXBlPWEsby5sYW5lcz1fLG99ZnVuY3Rpb24gVGcocyxvLGksYSl7cmV0dXJuKHM9QmcoNyxzLGEsbykpLmxhbmVzPWksc31mdW5jdGlvbiBwaihzLG8saSxhKXtyZXR1cm4ocz1CZygyMixzLGEsbykpLmVsZW1lbnRUeXBlPWJlLHMubGFuZXM9aSxzLnN0YXRlTm9kZT17aXNIaWRkZW46ITF9LHN9ZnVuY3Rpb24gUWcocyxvLGkpe3JldHVybihzPUJnKDYscyxudWxsLG8pKS5sYW5lcz1pLHN9ZnVuY3Rpb24gU2cocyxvLGkpe3JldHVybihvPUJnKDQsbnVsbCE9PXMuY2hpbGRyZW4/cy5jaGlsZHJlbjpbXSxzLmtleSxvKSkubGFuZXM9aSxvLnN0YXRlTm9kZT17Y29udGFpbmVySW5mbzpzLmNvbnRhaW5lckluZm8scGVuZGluZ0NoaWxkcmVuOm51bGwsaW1wbGVtZW50YXRpb246cy5pbXBsZW1lbnRhdGlvbn0sb31mdW5jdGlvbiBhbChzLG8saSxhLHUpe3RoaXMudGFnPW8sdGhpcy5jb250YWluZXJJbmZvPXMsdGhpcy5maW5pc2hlZFdvcms9dGhpcy5waW5nQ2FjaGU9dGhpcy5jdXJyZW50PXRoaXMucGVuZGluZ0NoaWxkcmVuPW51bGwsdGhpcy50aW1lb3V0SGFuZGxlPS0xLHRoaXMuY2FsbGJhY2tOb2RlPXRoaXMucGVuZGluZ0NvbnRleHQ9dGhpcy5jb250ZXh0PW51bGwsdGhpcy5jYWxsYmFja1ByaW9yaXR5PTAsdGhpcy5ldmVudFRpbWVzPXpjKDApLHRoaXMuZXhwaXJhdGlvblRpbWVzPXpjKC0xKSx0aGlzLmVudGFuZ2xlZExhbmVzPXRoaXMuZmluaXNoZWRMYW5lcz10aGlzLm11dGFibGVSZWFkTGFuZXM9dGhpcy5leHBpcmVkTGFuZXM9dGhpcy5waW5nZWRMYW5lcz10aGlzLnN1c3BlbmRlZExhbmVzPXRoaXMucGVuZGluZ0xhbmVzPTAsdGhpcy5lbnRhbmdsZW1lbnRzPXpjKDApLHRoaXMuaWRlbnRpZmllclByZWZpeD1hLHRoaXMub25SZWNvdmVyYWJsZUVycm9yPXUsdGhpcy5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhPW51bGx9ZnVuY3Rpb24gYmwocyxvLGksYSx1LF8sdyx4LEMpe3JldHVybiBzPW5ldyBhbChzLG8saSx4LEMpLDE9PT1vPyhvPTEsITA9PT1fJiYob3w9OCkpOm89MCxfPUJnKDMsbnVsbCxudWxsLG8pLHMuY3VycmVudD1fLF8uc3RhdGVOb2RlPXMsXy5tZW1vaXplZFN0YXRlPXtlbGVtZW50OmEsaXNEZWh5ZHJhdGVkOmksY2FjaGU6bnVsbCx0cmFuc2l0aW9uczpudWxsLHBlbmRpbmdTdXNwZW5zZUJvdW5kYXJpZXM6bnVsbH0sa2goXyksc31mdW5jdGlvbiBkbChzKXtpZighcylyZXR1cm4gX247ZTp7aWYoVmIocz1zLl9yZWFjdEludGVybmFscykhPT1zfHwxIT09cy50YWcpdGhyb3cgRXJyb3IocCgxNzApKTt2YXIgbz1zO2Rve3N3aXRjaChvLnRhZyl7Y2FzZSAzOm89by5zdGF0ZU5vZGUuY29udGV4dDticmVhayBlO2Nhc2UgMTppZihaZihvLnR5cGUpKXtvPW8uc3RhdGVOb2RlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0O2JyZWFrIGV9fW89by5yZXR1cm59d2hpbGUobnVsbCE9PW8pO3Rocm93IEVycm9yKHAoMTcxKSl9aWYoMT09PXMudGFnKXt2YXIgaT1zLnR5cGU7aWYoWmYoaSkpcmV0dXJuIGJnKHMsaSxvKX1yZXR1cm4gb31mdW5jdGlvbiBlbChzLG8saSxhLHUsXyx3LHgsQyl7cmV0dXJuKHM9YmwoaSxhLCEwLHMsMCxfLDAseCxDKSkuY29udGV4dD1kbChudWxsKSxpPXMuY3VycmVudCwoXz1taChhPVIoKSx1PXlpKGkpKSkuY2FsbGJhY2s9bnVsbCE9bz9vOm51bGwsbmgoaSxfLHUpLHMuY3VycmVudC5sYW5lcz11LEFjKHMsdSxhKSxEayhzLGEpLHN9ZnVuY3Rpb24gZmwocyxvLGksYSl7dmFyIHU9by5jdXJyZW50LF89UigpLHc9eWkodSk7cmV0dXJuIGk9ZGwoaSksbnVsbD09PW8uY29udGV4dD9vLmNvbnRleHQ9aTpvLnBlbmRpbmdDb250ZXh0PWksKG89bWgoXyx3KSkucGF5bG9hZD17ZWxlbWVudDpzfSxudWxsIT09KGE9dm9pZCAwPT09YT9udWxsOmEpJiYoby5jYWxsYmFjaz1hKSxudWxsIT09KHM9bmgodSxvLHcpKSYmKGdpKHMsdSx3LF8pLG9oKHMsdSx3KSksd31mdW5jdGlvbiBnbChzKXtyZXR1cm4ocz1zLmN1cnJlbnQpLmNoaWxkPyhzLmNoaWxkLnRhZyxzLmNoaWxkLnN0YXRlTm9kZSk6bnVsbH1mdW5jdGlvbiBobChzLG8pe2lmKG51bGwhPT0ocz1zLm1lbW9pemVkU3RhdGUpJiZudWxsIT09cy5kZWh5ZHJhdGVkKXt2YXIgaT1zLnJldHJ5TGFuZTtzLnJldHJ5TGFuZT0wIT09aSYmaTxvP2k6b319ZnVuY3Rpb24gaWwocyxvKXtobChzLG8pLChzPXMuYWx0ZXJuYXRlKSYmaGwocyxvKX1Ucz1mdW5jdGlvbihzLG8saSl7aWYobnVsbCE9PXMpaWYocy5tZW1vaXplZFByb3BzIT09by5wZW5kaW5nUHJvcHN8fEVuLmN1cnJlbnQpYnM9ITA7ZWxzZXtpZighKHMubGFuZXMmaXx8MTI4Jm8uZmxhZ3MpKXJldHVybiBicz0hMSxmdW5jdGlvbiB5aihzLG8saSl7c3dpdGNoKG8udGFnKXtjYXNlIDM6a2oobyksSWcoKTticmVhaztjYXNlIDU6QWgobyk7YnJlYWs7Y2FzZSAxOlpmKG8udHlwZSkmJmNnKG8pO2JyZWFrO2Nhc2UgNDp5aChvLG8uc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pO2JyZWFrO2Nhc2UgMTA6dmFyIGE9by50eXBlLl9jb250ZXh0LHU9by5tZW1vaXplZFByb3BzLnZhbHVlO0coVW4sYS5fY3VycmVudFZhbHVlKSxhLl9jdXJyZW50VmFsdWU9dTticmVhaztjYXNlIDEzOmlmKG51bGwhPT0oYT1vLm1lbW9pemVkU3RhdGUpKXJldHVybiBudWxsIT09YS5kZWh5ZHJhdGVkPyhHKFpuLDEmWm4uY3VycmVudCksby5mbGFnc3w9MTI4LG51bGwpOmkmby5jaGlsZC5jaGlsZExhbmVzP29qKHMsbyxpKTooRyhabiwxJlpuLmN1cnJlbnQpLG51bGwhPT0ocz1aaShzLG8saSkpP3Muc2libGluZzpudWxsKTtHKFpuLDEmWm4uY3VycmVudCk7YnJlYWs7Y2FzZSAxOTppZihhPSEhKGkmby5jaGlsZExhbmVzKSwxMjgmcy5mbGFncyl7aWYoYSlyZXR1cm4geGoocyxvLGkpO28uZmxhZ3N8PTEyOH1pZihudWxsIT09KHU9by5tZW1vaXplZFN0YXRlKSYmKHUucmVuZGVyaW5nPW51bGwsdS50YWlsPW51bGwsdS5sYXN0RWZmZWN0PW51bGwpLEcoWm4sWm4uY3VycmVudCksYSlicmVhaztyZXR1cm4gbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIG8ubGFuZXM9MCxkaihzLG8saSl9cmV0dXJuIFppKHMsbyxpKX0ocyxvLGkpO2JzPSEhKDEzMTA3MiZzLmZsYWdzKX1lbHNlIGJzPSExLEZuJiYxMDQ4NTc2Jm8uZmxhZ3MmJnVnKG8sSW4sby5pbmRleCk7c3dpdGNoKG8ubGFuZXM9MCxvLnRhZyl7Y2FzZSAyOnZhciBhPW8udHlwZTtpaihzLG8pLHM9by5wZW5kaW5nUHJvcHM7dmFyIHU9WWYobyxTbi5jdXJyZW50KTtjaChvLGkpLHU9TmgobnVsbCxvLGEscyx1LGkpO3ZhciBfPVNoKCk7cmV0dXJuIG8uZmxhZ3N8PTEsIm9iamVjdCI9PXR5cGVvZiB1JiZudWxsIT09dSYmImZ1bmN0aW9uIj09dHlwZW9mIHUucmVuZGVyJiZ2b2lkIDA9PT11LiQkdHlwZW9mPyhvLnRhZz0xLG8ubWVtb2l6ZWRTdGF0ZT1udWxsLG8udXBkYXRlUXVldWU9bnVsbCxaZihhKT8oXz0hMCxjZyhvKSk6Xz0hMSxvLm1lbW9pemVkU3RhdGU9bnVsbCE9PXUuc3RhdGUmJnZvaWQgMCE9PXUuc3RhdGU/dS5zdGF0ZTpudWxsLGtoKG8pLHUudXBkYXRlcj1ncyxvLnN0YXRlTm9kZT11LHUuX3JlYWN0SW50ZXJuYWxzPW8sSWkobyxhLHMsaSksbz1qaihudWxsLG8sYSwhMCxfLGkpKTooby50YWc9MCxGbiYmXyYmdmcobyksWGkobnVsbCxvLHUsaSksbz1vLmNoaWxkKSxvO2Nhc2UgMTY6YT1vLmVsZW1lbnRUeXBlO2U6e3N3aXRjaChpaihzLG8pLHM9by5wZW5kaW5nUHJvcHMsYT0odT1hLl9pbml0KShhLl9wYXlsb2FkKSxvLnR5cGU9YSx1PW8udGFnPWZ1bmN0aW9uIFprKHMpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBzKXJldHVybiBhaihzKT8xOjA7aWYobnVsbCE9cyl7aWYoKHM9cy4kJHR5cGVvZik9PT1sZSlyZXR1cm4gMTE7aWYocz09PWZlKXJldHVybiAxNH1yZXR1cm4gMn0oYSkscz1DaShhLHMpLHUpe2Nhc2UgMDpvPWNqKG51bGwsbyxhLHMsaSk7YnJlYWsgZTtjYXNlIDE6bz1oaihudWxsLG8sYSxzLGkpO2JyZWFrIGU7Y2FzZSAxMTpvPVlpKG51bGwsbyxhLHMsaSk7YnJlYWsgZTtjYXNlIDE0Om89JGkobnVsbCxvLGEsQ2koYS50eXBlLHMpLGkpO2JyZWFrIGV9dGhyb3cgRXJyb3IocCgzMDYsYSwiIikpfXJldHVybiBvO2Nhc2UgMDpyZXR1cm4gYT1vLnR5cGUsdT1vLnBlbmRpbmdQcm9wcyxjaihzLG8sYSx1PW8uZWxlbWVudFR5cGU9PT1hP3U6Q2koYSx1KSxpKTtjYXNlIDE6cmV0dXJuIGE9by50eXBlLHU9by5wZW5kaW5nUHJvcHMsaGoocyxvLGEsdT1vLmVsZW1lbnRUeXBlPT09YT91OkNpKGEsdSksaSk7Y2FzZSAzOmU6e2lmKGtqKG8pLG51bGw9PT1zKXRocm93IEVycm9yKHAoMzg3KSk7YT1vLnBlbmRpbmdQcm9wcyx1PShfPW8ubWVtb2l6ZWRTdGF0ZSkuZWxlbWVudCxsaChzLG8pLHFoKG8sYSxudWxsLGkpO3ZhciB3PW8ubWVtb2l6ZWRTdGF0ZTtpZihhPXcuZWxlbWVudCxfLmlzRGVoeWRyYXRlZCl7aWYoXz17ZWxlbWVudDphLGlzRGVoeWRyYXRlZDohMSxjYWNoZTp3LmNhY2hlLHBlbmRpbmdTdXNwZW5zZUJvdW5kYXJpZXM6dy5wZW5kaW5nU3VzcGVuc2VCb3VuZGFyaWVzLHRyYW5zaXRpb25zOncudHJhbnNpdGlvbnN9LG8udXBkYXRlUXVldWUuYmFzZVN0YXRlPV8sby5tZW1vaXplZFN0YXRlPV8sMjU2Jm8uZmxhZ3Mpe289bGoocyxvLGEsaSx1PUppKEVycm9yKHAoNDIzKSksbykpO2JyZWFrIGV9aWYoYSE9PXUpe289bGoocyxvLGEsaSx1PUppKEVycm9yKHAoNDI0KSksbykpO2JyZWFrIGV9Zm9yKExuPUxmKG8uc3RhdGVOb2RlLmNvbnRhaW5lckluZm8uZmlyc3RDaGlsZCksRG49byxGbj0hMCxCbj1udWxsLGk9Vm4obyxudWxsLGEsaSksby5jaGlsZD1pO2k7KWkuZmxhZ3M9LTMmaS5mbGFnc3w0MDk2LGk9aS5zaWJsaW5nfWVsc2V7aWYoSWcoKSxhPT09dSl7bz1aaShzLG8saSk7YnJlYWsgZX1YaShzLG8sYSxpKX1vPW8uY2hpbGR9cmV0dXJuIG87Y2FzZSA1OnJldHVybiBBaChvKSxudWxsPT09cyYmRWcobyksYT1vLnR5cGUsdT1vLnBlbmRpbmdQcm9wcyxfPW51bGwhPT1zP3MubWVtb2l6ZWRQcm9wczpudWxsLHc9dS5jaGlsZHJlbixFZihhLHUpP3c9bnVsbDpudWxsIT09XyYmRWYoYSxfKSYmKG8uZmxhZ3N8PTMyKSxnaihzLG8pLFhpKHMsbyx3LGkpLG8uY2hpbGQ7Y2FzZSA2OnJldHVybiBudWxsPT09cyYmRWcobyksbnVsbDtjYXNlIDEzOnJldHVybiBvaihzLG8saSk7Y2FzZSA0OnJldHVybiB5aChvLG8uc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLGE9by5wZW5kaW5nUHJvcHMsbnVsbD09PXM/by5jaGlsZD1xbihvLG51bGwsYSxpKTpYaShzLG8sYSxpKSxvLmNoaWxkO2Nhc2UgMTE6cmV0dXJuIGE9by50eXBlLHU9by5wZW5kaW5nUHJvcHMsWWkocyxvLGEsdT1vLmVsZW1lbnRUeXBlPT09YT91OkNpKGEsdSksaSk7Y2FzZSA3OnJldHVybiBYaShzLG8sby5wZW5kaW5nUHJvcHMsaSksby5jaGlsZDtjYXNlIDg6Y2FzZSAxMjpyZXR1cm4gWGkocyxvLG8ucGVuZGluZ1Byb3BzLmNoaWxkcmVuLGkpLG8uY2hpbGQ7Y2FzZSAxMDplOntpZihhPW8udHlwZS5fY29udGV4dCx1PW8ucGVuZGluZ1Byb3BzLF89by5tZW1vaXplZFByb3BzLHc9dS52YWx1ZSxHKFVuLGEuX2N1cnJlbnRWYWx1ZSksYS5fY3VycmVudFZhbHVlPXcsbnVsbCE9PV8paWYoRHIoXy52YWx1ZSx3KSl7aWYoXy5jaGlsZHJlbj09PXUuY2hpbGRyZW4mJiFFbi5jdXJyZW50KXtvPVppKHMsbyxpKTticmVhayBlfX1lbHNlIGZvcihudWxsIT09KF89by5jaGlsZCkmJihfLnJldHVybj1vKTtudWxsIT09Xzspe3ZhciB4PV8uZGVwZW5kZW5jaWVzO2lmKG51bGwhPT14KXt3PV8uY2hpbGQ7Zm9yKHZhciBDPXguZmlyc3RDb250ZXh0O251bGwhPT1DOyl7aWYoQy5jb250ZXh0PT09YSl7aWYoMT09PV8udGFnKXsoQz1taCgtMSxpJi1pKSkudGFnPTI7dmFyIGo9Xy51cGRhdGVRdWV1ZTtpZihudWxsIT09ail7dmFyIEw9KGo9ai5zaGFyZWQpLnBlbmRpbmc7bnVsbD09PUw/Qy5uZXh0PUM6KEMubmV4dD1MLm5leHQsTC5uZXh0PUMpLGoucGVuZGluZz1DfX1fLmxhbmVzfD1pLG51bGwhPT0oQz1fLmFsdGVybmF0ZSkmJihDLmxhbmVzfD1pKSxiaChfLnJldHVybixpLG8pLHgubGFuZXN8PWk7YnJlYWt9Qz1DLm5leHR9fWVsc2UgaWYoMTA9PT1fLnRhZyl3PV8udHlwZT09PW8udHlwZT9udWxsOl8uY2hpbGQ7ZWxzZSBpZigxOD09PV8udGFnKXtpZihudWxsPT09KHc9Xy5yZXR1cm4pKXRocm93IEVycm9yKHAoMzQxKSk7dy5sYW5lc3w9aSxudWxsIT09KHg9dy5hbHRlcm5hdGUpJiYoeC5sYW5lc3w9aSksYmgodyxpLG8pLHc9Xy5zaWJsaW5nfWVsc2Ugdz1fLmNoaWxkO2lmKG51bGwhPT13KXcucmV0dXJuPV87ZWxzZSBmb3Iodz1fO251bGwhPT13Oyl7aWYodz09PW8pe3c9bnVsbDticmVha31pZihudWxsIT09KF89dy5zaWJsaW5nKSl7Xy5yZXR1cm49dy5yZXR1cm4sdz1fO2JyZWFrfXc9dy5yZXR1cm59Xz13fVhpKHMsbyx1LmNoaWxkcmVuLGkpLG89by5jaGlsZH1yZXR1cm4gbztjYXNlIDk6cmV0dXJuIHU9by50eXBlLGE9by5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sY2gobyxpKSxhPWEodT1laCh1KSksby5mbGFnc3w9MSxYaShzLG8sYSxpKSxvLmNoaWxkO2Nhc2UgMTQ6cmV0dXJuIHU9Q2koYT1vLnR5cGUsby5wZW5kaW5nUHJvcHMpLCRpKHMsbyxhLHU9Q2koYS50eXBlLHUpLGkpO2Nhc2UgMTU6cmV0dXJuIGJqKHMsbyxvLnR5cGUsby5wZW5kaW5nUHJvcHMsaSk7Y2FzZSAxNzpyZXR1cm4gYT1vLnR5cGUsdT1vLnBlbmRpbmdQcm9wcyx1PW8uZWxlbWVudFR5cGU9PT1hP3U6Q2koYSx1KSxpaihzLG8pLG8udGFnPTEsWmYoYSk/KHM9ITAsY2cobykpOnM9ITEsY2gobyxpKSxHaShvLGEsdSksSWkobyxhLHUsaSksamoobnVsbCxvLGEsITAscyxpKTtjYXNlIDE5OnJldHVybiB4aihzLG8saSk7Y2FzZSAyMjpyZXR1cm4gZGoocyxvLGkpfXRocm93IEVycm9yKHAoMTU2LG8udGFnKSl9O3ZhciBsbz0iZnVuY3Rpb24iPT10eXBlb2YgcmVwb3J0RXJyb3I/cmVwb3J0RXJyb3I6ZnVuY3Rpb24ocyl7Y29uc29sZS5lcnJvcihzKX07ZnVuY3Rpb24gbGwocyl7dGhpcy5faW50ZXJuYWxSb290PXN9ZnVuY3Rpb24gbWwocyl7dGhpcy5faW50ZXJuYWxSb290PXN9ZnVuY3Rpb24gbmwocyl7cmV0dXJuISghc3x8MSE9PXMubm9kZVR5cGUmJjkhPT1zLm5vZGVUeXBlJiYxMSE9PXMubm9kZVR5cGUpfWZ1bmN0aW9uIG9sKHMpe3JldHVybiEoIXN8fDEhPT1zLm5vZGVUeXBlJiY5IT09cy5ub2RlVHlwZSYmMTEhPT1zLm5vZGVUeXBlJiYoOCE9PXMubm9kZVR5cGV8fCIgcmVhY3QtbW91bnQtcG9pbnQtdW5zdGFibGUgIiE9PXMubm9kZVZhbHVlKSl9ZnVuY3Rpb24gcGwoKXt9ZnVuY3Rpb24gcmwocyxvLGksYSx1KXt2YXIgXz1pLl9yZWFjdFJvb3RDb250YWluZXI7aWYoXyl7dmFyIHc9XztpZigiZnVuY3Rpb24iPT10eXBlb2YgdSl7dmFyIHg9dTt1PWZ1bmN0aW9uKCl7dmFyIHM9Z2wodyk7eC5jYWxsKHMpfX1mbChvLHcscyx1KX1lbHNlIHc9ZnVuY3Rpb24gcWwocyxvLGksYSx1KXtpZih1KXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYSl7dmFyIF89YTthPWZ1bmN0aW9uKCl7dmFyIHM9Z2wodyk7Xy5jYWxsKHMpfX12YXIgdz1lbChvLGEscywwLG51bGwsITEsMCwiIixwbCk7cmV0dXJuIHMuX3JlYWN0Um9vdENvbnRhaW5lcj13LHNbZm5dPXcuY3VycmVudCxzZig4PT09cy5ub2RlVHlwZT9zLnBhcmVudE5vZGU6cyksUmsoKSx3fWZvcig7dT1zLmxhc3RDaGlsZDspcy5yZW1vdmVDaGlsZCh1KTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYSl7dmFyIHg9YTthPWZ1bmN0aW9uKCl7dmFyIHM9Z2woQyk7eC5jYWxsKHMpfX12YXIgQz1ibChzLDAsITEsbnVsbCwwLCExLDAsIiIscGwpO3JldHVybiBzLl9yZWFjdFJvb3RDb250YWluZXI9QyxzW2ZuXT1DLmN1cnJlbnQsc2YoOD09PXMubm9kZVR5cGU/cy5wYXJlbnROb2RlOnMpLFJrKChmdW5jdGlvbigpe2ZsKG8sQyxpLGEpfSkpLEN9KGksbyxzLHUsYSk7cmV0dXJuIGdsKHcpfW1sLnByb3RvdHlwZS5yZW5kZXI9bGwucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihzKXt2YXIgbz10aGlzLl9pbnRlcm5hbFJvb3Q7aWYobnVsbD09PW8pdGhyb3cgRXJyb3IocCg0MDkpKTtmbChzLG8sbnVsbCxudWxsKX0sbWwucHJvdG90eXBlLnVubW91bnQ9bGwucHJvdG90eXBlLnVubW91bnQ9ZnVuY3Rpb24oKXt2YXIgcz10aGlzLl9pbnRlcm5hbFJvb3Q7aWYobnVsbCE9PXMpe3RoaXMuX2ludGVybmFsUm9vdD1udWxsO3ZhciBvPXMuY29udGFpbmVySW5mbztSaygoZnVuY3Rpb24oKXtmbChudWxsLHMsbnVsbCxudWxsKX0pKSxvW2ZuXT1udWxsfX0sbWwucHJvdG90eXBlLnVuc3RhYmxlX3NjaGVkdWxlSHlkcmF0aW9uPWZ1bmN0aW9uKHMpe2lmKHMpe3ZhciBvPVB0KCk7cz17YmxvY2tlZE9uOm51bGwsdGFyZ2V0OnMscHJpb3JpdHk6b307Zm9yKHZhciBpPTA7aTwkdC5sZW5ndGgmJjAhPT1vJiZvPCR0W2ldLnByaW9yaXR5O2krKyk7JHQuc3BsaWNlKGksMCxzKSwwPT09aSYmVmMocyl9fSxBdD1mdW5jdGlvbihzKXtzd2l0Y2gocy50YWcpe2Nhc2UgMzp2YXIgbz1zLnN0YXRlTm9kZTtpZihvLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpe3ZhciBpPXRjKG8ucGVuZGluZ0xhbmVzKTswIT09aSYmKENjKG8sMXxpKSxEayhvLGh0KCkpLCEoNiZMcykmJihYcz1odCgpKzUwMCxqZygpKSl9YnJlYWs7Y2FzZSAxMzpSaygoZnVuY3Rpb24oKXt2YXIgbz1paChzLDEpO2lmKG51bGwhPT1vKXt2YXIgaT1SKCk7Z2kobyxzLDEsaSl9fSkpLGlsKHMsMSl9fSxqdD1mdW5jdGlvbihzKXtpZigxMz09PXMudGFnKXt2YXIgbz1paChzLDEzNDIxNzcyOCk7aWYobnVsbCE9PW8pZ2kobyxzLDEzNDIxNzcyOCxSKCkpO2lsKHMsMTM0MjE3NzI4KX19LEl0PWZ1bmN0aW9uKHMpe2lmKDEzPT09cy50YWcpe3ZhciBvPXlpKHMpLGk9aWgocyxvKTtpZihudWxsIT09aSlnaShpLHMsbyxSKCkpO2lsKHMsbyl9fSxQdD1mdW5jdGlvbigpe3JldHVybiBDdH0sVHQ9ZnVuY3Rpb24ocyxvKXt2YXIgaT1DdDt0cnl7cmV0dXJuIEN0PXMsbygpfWZpbmFsbHl7Q3Q9aX19LFllPWZ1bmN0aW9uKHMsbyxpKXtzd2l0Y2gobyl7Y2FzZSJpbnB1dCI6aWYoYmIocyxpKSxvPWkubmFtZSwicmFkaW8iPT09aS50eXBlJiZudWxsIT1vKXtmb3IoaT1zO2kucGFyZW50Tm9kZTspaT1pLnBhcmVudE5vZGU7Zm9yKGk9aS5xdWVyeVNlbGVjdG9yQWxsKCJpbnB1dFtuYW1lPSIrSlNPTi5zdHJpbmdpZnkoIiIrbykrJ11bdHlwZT0icmFkaW8iXScpLG89MDtvPGkubGVuZ3RoO28rKyl7dmFyIGE9aVtvXTtpZihhIT09cyYmYS5mb3JtPT09cy5mb3JtKXt2YXIgdT1EYihhKTtpZighdSl0aHJvdyBFcnJvcihwKDkwKSk7V2EoYSksYmIoYSx1KX19fWJyZWFrO2Nhc2UidGV4dGFyZWEiOmliKHMsaSk7YnJlYWs7Y2FzZSJzZWxlY3QiOm51bGwhPShvPWkudmFsdWUpJiZmYihzLCEhaS5tdWx0aXBsZSxvLCExKX19LEdiPVFrLEhiPVJrO3ZhciB1bz17dXNpbmdDbGllbnRFbnRyeVBvaW50OiExLEV2ZW50czpbQ2IsdWUsRGIsRWIsRmIsUWtdfSxwbz17ZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6V2MsYnVuZGxlVHlwZTowLHZlcnNpb246IjE4LjMuMSIscmVuZGVyZXJQYWNrYWdlTmFtZToicmVhY3QtZG9tIn0saG89e2J1bmRsZVR5cGU6cG8uYnVuZGxlVHlwZSx2ZXJzaW9uOnBvLnZlcnNpb24scmVuZGVyZXJQYWNrYWdlTmFtZTpwby5yZW5kZXJlclBhY2thZ2VOYW1lLHJlbmRlcmVyQ29uZmlnOnBvLnJlbmRlcmVyQ29uZmlnLG92ZXJyaWRlSG9va1N0YXRlOm51bGwsb3ZlcnJpZGVIb29rU3RhdGVEZWxldGVQYXRoOm51bGwsb3ZlcnJpZGVIb29rU3RhdGVSZW5hbWVQYXRoOm51bGwsb3ZlcnJpZGVQcm9wczpudWxsLG92ZXJyaWRlUHJvcHNEZWxldGVQYXRoOm51bGwsb3ZlcnJpZGVQcm9wc1JlbmFtZVBhdGg6bnVsbCxzZXRFcnJvckhhbmRsZXI6bnVsbCxzZXRTdXNwZW5zZUhhbmRsZXI6bnVsbCxzY2hlZHVsZVVwZGF0ZTpudWxsLGN1cnJlbnREaXNwYXRjaGVyUmVmOlUuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixmaW5kSG9zdEluc3RhbmNlQnlGaWJlcjpmdW5jdGlvbihzKXtyZXR1cm4gbnVsbD09PShzPVpiKHMpKT9udWxsOnMuc3RhdGVOb2RlfSxmaW5kRmliZXJCeUhvc3RJbnN0YW5jZTpwby5maW5kRmliZXJCeUhvc3RJbnN0YW5jZXx8ZnVuY3Rpb24gamwoKXtyZXR1cm4gbnVsbH0sZmluZEhvc3RJbnN0YW5jZXNGb3JSZWZyZXNoOm51bGwsc2NoZWR1bGVSZWZyZXNoOm51bGwsc2NoZWR1bGVSb290Om51bGwsc2V0UmVmcmVzaEhhbmRsZXI6bnVsbCxnZXRDdXJyZW50RmliZXI6bnVsbCxyZWNvbmNpbGVyVmVyc2lvbjoiMTguMy4xLW5leHQtZjEzMzhmODA4MC0yMDI0MDQyNiJ9O2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fKXt2YXIgZm89X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fO2lmKCFmby5pc0Rpc2FibGVkJiZmby5zdXBwb3J0c0ZpYmVyKXRyeXtfdD1mby5pbmplY3QoaG8pLFN0PWZvfWNhdGNoKFJlKXt9fW8uX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ9dW8sby5jcmVhdGVQb3J0YWw9ZnVuY3Rpb24ocyxvKXt2YXIgaT0yPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVsbDtpZighbmwobykpdGhyb3cgRXJyb3IocCgyMDApKTtyZXR1cm4gZnVuY3Rpb24gY2wocyxvLGkpe3ZhciBhPTM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpudWxsO3JldHVybnskJHR5cGVvZjpZLGtleTpudWxsPT1hP251bGw6IiIrYSxjaGlsZHJlbjpzLGNvbnRhaW5lckluZm86byxpbXBsZW1lbnRhdGlvbjppfX0ocyxvLG51bGwsaSl9LG8uY3JlYXRlUm9vdD1mdW5jdGlvbihzLG8pe2lmKCFubChzKSl0aHJvdyBFcnJvcihwKDI5OSkpO3ZhciBpPSExLGE9IiIsdT1sbztyZXR1cm4gbnVsbCE9byYmKCEwPT09by51bnN0YWJsZV9zdHJpY3RNb2RlJiYoaT0hMCksdm9pZCAwIT09by5pZGVudGlmaWVyUHJlZml4JiYoYT1vLmlkZW50aWZpZXJQcmVmaXgpLHZvaWQgMCE9PW8ub25SZWNvdmVyYWJsZUVycm9yJiYodT1vLm9uUmVjb3ZlcmFibGVFcnJvcikpLG89YmwocywxLCExLG51bGwsMCxpLDAsYSx1KSxzW2ZuXT1vLmN1cnJlbnQsc2YoOD09PXMubm9kZVR5cGU/cy5wYXJlbnROb2RlOnMpLG5ldyBsbChvKX0sby5maW5kRE9NTm9kZT1mdW5jdGlvbihzKXtpZihudWxsPT1zKXJldHVybiBudWxsO2lmKDE9PT1zLm5vZGVUeXBlKXJldHVybiBzO3ZhciBvPXMuX3JlYWN0SW50ZXJuYWxzO2lmKHZvaWQgMD09PW8pe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBzLnJlbmRlcil0aHJvdyBFcnJvcihwKDE4OCkpO3Rocm93IHM9T2JqZWN0LmtleXMocykuam9pbigiLCIpLEVycm9yKHAoMjY4LHMpKX1yZXR1cm4gcz1udWxsPT09KHM9WmIobykpP251bGw6cy5zdGF0ZU5vZGV9LG8uZmx1c2hTeW5jPWZ1bmN0aW9uKHMpe3JldHVybiBSayhzKX0sby5oeWRyYXRlPWZ1bmN0aW9uKHMsbyxpKXtpZighb2wobykpdGhyb3cgRXJyb3IocCgyMDApKTtyZXR1cm4gcmwobnVsbCxzLG8sITAsaSl9LG8uaHlkcmF0ZVJvb3Q9ZnVuY3Rpb24ocyxvLGkpe2lmKCFubChzKSl0aHJvdyBFcnJvcihwKDQwNSkpO3ZhciBhPW51bGwhPWkmJmkuaHlkcmF0ZWRTb3VyY2VzfHxudWxsLHU9ITEsXz0iIix3PWxvO2lmKG51bGwhPWkmJighMD09PWkudW5zdGFibGVfc3RyaWN0TW9kZSYmKHU9ITApLHZvaWQgMCE9PWkuaWRlbnRpZmllclByZWZpeCYmKF89aS5pZGVudGlmaWVyUHJlZml4KSx2b2lkIDAhPT1pLm9uUmVjb3ZlcmFibGVFcnJvciYmKHc9aS5vblJlY292ZXJhYmxlRXJyb3IpKSxvPWVsKG8sbnVsbCxzLDEsbnVsbCE9aT9pOm51bGwsdSwwLF8sdyksc1tmbl09by5jdXJyZW50LHNmKHMpLGEpZm9yKHM9MDtzPGEubGVuZ3RoO3MrKyl1PSh1PShpPWFbc10pLl9nZXRWZXJzaW9uKShpLl9zb3VyY2UpLG51bGw9PW8ubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YT9vLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGE9W2ksdV06by5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhLnB1c2goaSx1KTtyZXR1cm4gbmV3IG1sKG8pfSxvLnJlbmRlcj1mdW5jdGlvbihzLG8saSl7aWYoIW9sKG8pKXRocm93IEVycm9yKHAoMjAwKSk7cmV0dXJuIHJsKG51bGwscyxvLCExLGkpfSxvLnVubW91bnRDb21wb25lbnRBdE5vZGU9ZnVuY3Rpb24ocyl7aWYoIW9sKHMpKXRocm93IEVycm9yKHAoNDApKTtyZXR1cm4hIXMuX3JlYWN0Um9vdENvbnRhaW5lciYmKFJrKChmdW5jdGlvbigpe3JsKG51bGwsbnVsbCxzLCExLChmdW5jdGlvbigpe3MuX3JlYWN0Um9vdENvbnRhaW5lcj1udWxsLHNbZm5dPW51bGx9KSl9KSksITApfSxvLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzPVFrLG8udW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXI9ZnVuY3Rpb24ocyxvLGksYSl7aWYoIW9sKGkpKXRocm93IEVycm9yKHAoMjAwKSk7aWYobnVsbD09c3x8dm9pZCAwPT09cy5fcmVhY3RJbnRlcm5hbHMpdGhyb3cgRXJyb3IocCgzOCkpO3JldHVybiBybChzLG8saSwhMSxhKX0sby52ZXJzaW9uPSIxOC4zLjEtbmV4dC1mMTMzOGY4MDgwLTIwMjQwNDI2In0sMjI1NzQ6KHMsbyk9PnsidXNlIHN0cmljdCI7dmFyIGk9e30ucHJvcGVydHlJc0VudW1lcmFibGUsYT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLHU9YSYmIWkuY2FsbCh7MToyfSwxKTtvLmY9dT9mdW5jdGlvbiBwcm9wZXJ0eUlzRW51bWVyYWJsZShzKXt2YXIgbz1hKHRoaXMscyk7cmV0dXJuISFvJiZvLmVudW1lcmFibGV9Oml9LDIzMDA3OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gY29weUFycmF5KHMsbyl7dmFyIGk9LTEsYT1zLmxlbmd0aDtmb3Iob3x8KG89QXJyYXkoYSkpOysraTxhOylvW2ldPXNbaV07cmV0dXJuIG99fSwyMzAzNDoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoODgyODApLHU9aSgzMjU2NyksXz1GdW5jdGlvbi5wcm90b3R5cGU7cy5leHBvcnRzPWZ1bmN0aW9uKHMpe3ZhciBvPXMuYmluZDtyZXR1cm4gcz09PV98fGEoXyxzKSYmbz09PV8uYmluZD91Om99fSwyMzA0NToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMTkwNyksdT1pKDQ5NzI0KSxfPWkoNDk5Myksdz1pKDc0NDM2KS5pbmRleE9mLHg9aSgzODUzMCksQz1hKFtdLnB1c2gpO3MuZXhwb3J0cz1mdW5jdGlvbihzLG8pe3ZhciBpLGE9XyhzKSxqPTAsTD1bXTtmb3IoaSBpbiBhKSF1KHgsaSkmJnUoYSxpKSYmQyhMLGkpO2Zvcig7by5sZW5ndGg+ajspdShhLGk9b1tqKytdKSYmKH53KEwsaSl8fEMoTCxpKSk7cmV0dXJuIEx9fSwyMzU0NjoocyxvLGkpPT57dmFyIGE9aSg3MjU1MiksdT1pKDQwMzQ2KSxfPWkoMTEzMzEpO3MuZXhwb3J0cz1mdW5jdGlvbiBpc0Vycm9yKHMpe2lmKCF1KHMpKXJldHVybiExO3ZhciBvPWEocyk7cmV0dXJuIltvYmplY3QgRXJyb3JdIj09b3x8IltvYmplY3QgRE9NRXhjZXB0aW9uXSI9PW98fCJzdHJpbmciPT10eXBlb2Ygcy5tZXNzYWdlJiYic3RyaW5nIj09dHlwZW9mIHMubmFtZSYmIV8ocyl9fSwyMzgwNTpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIGlzT2JqZWN0KHMpe3ZhciBvPXR5cGVvZiBzO3JldHVybiBudWxsIT1zJiYoIm9iamVjdCI9PW98fCJmdW5jdGlvbiI9PW8pfX0sMjM4ODg6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDk4ODI4KSx1PWkoNzU4MTcpO3MuZXhwb3J0cz0hYSgoZnVuY3Rpb24oKXt2YXIgcz1uZXcgRXJyb3IoImEiKTtyZXR1cm4hKCJzdGFjayJpbiBzKXx8KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJzdGFjayIsdSgxLDcpKSw3IT09cy5zdGFjayl9KSl9LDI0MTA3OihzLG8saSk9Pnt2YXIgYT1pKDU2Njk4KSx1PWkoOTAzOTIpLF89aSg5Mjg2MSkuQnVmZmVyLHc9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF0seD1uZXcgQXJyYXkoNjQpO2Z1bmN0aW9uIFNoYTI1Nigpe3RoaXMuaW5pdCgpLHRoaXMuX3c9eCx1LmNhbGwodGhpcyw2NCw1Nil9ZnVuY3Rpb24gY2gocyxvLGkpe3JldHVybiBpXnMmKG9eaSl9ZnVuY3Rpb24gbWFqKHMsbyxpKXtyZXR1cm4gcyZvfGkmKHN8byl9ZnVuY3Rpb24gc2lnbWEwKHMpe3JldHVybihzPj4+MnxzPDwzMCleKHM+Pj4xM3xzPDwxOSleKHM+Pj4yMnxzPDwxMCl9ZnVuY3Rpb24gc2lnbWExKHMpe3JldHVybihzPj4+NnxzPDwyNileKHM+Pj4xMXxzPDwyMSleKHM+Pj4yNXxzPDw3KX1mdW5jdGlvbiBnYW1tYTAocyl7cmV0dXJuKHM+Pj43fHM8PDI1KV4ocz4+PjE4fHM8PDE0KV5zPj4+M31hKFNoYTI1Nix1KSxTaGEyNTYucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzc5MDMzNzAzLHRoaXMuX2I9MzE0NDEzNDI3Nyx0aGlzLl9jPTEwMTM5MDQyNDIsdGhpcy5fZD0yNzczNDgwNzYyLHRoaXMuX2U9MTM1OTg5MzExOSx0aGlzLl9mPTI2MDA4MjI5MjQsdGhpcy5fZz01Mjg3MzQ2MzUsdGhpcy5faD0xNTQxNDU5MjI1LHRoaXN9LFNoYTI1Ni5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihzKXtmb3IodmFyIG8saT10aGlzLl93LGE9MHx0aGlzLl9hLHU9MHx0aGlzLl9iLF89MHx0aGlzLl9jLHg9MHx0aGlzLl9kLEM9MHx0aGlzLl9lLGo9MHx0aGlzLl9mLEw9MHx0aGlzLl9nLEI9MHx0aGlzLl9oLCQ9MDskPDE2OysrJClpWyRdPXMucmVhZEludDMyQkUoNCokKTtmb3IoOyQ8NjQ7KyskKWlbJF09MHwoKChvPWlbJC0yXSk+Pj4xN3xvPDwxNSleKG8+Pj4xOXxvPDwxMylebz4+PjEwKStpWyQtN10rZ2FtbWEwKGlbJC0xNV0pK2lbJC0xNl07Zm9yKHZhciBWPTA7Vjw2NDsrK1Ype3ZhciBVPUIrc2lnbWExKEMpK2NoKEMsaixMKSt3W1ZdK2lbVl18MCx6PXNpZ21hMChhKSttYWooYSx1LF8pfDA7Qj1MLEw9aixqPUMsQz14K1V8MCx4PV8sXz11LHU9YSxhPVUrenwwfXRoaXMuX2E9YSt0aGlzLl9hfDAsdGhpcy5fYj11K3RoaXMuX2J8MCx0aGlzLl9jPV8rdGhpcy5fY3wwLHRoaXMuX2Q9eCt0aGlzLl9kfDAsdGhpcy5fZT1DK3RoaXMuX2V8MCx0aGlzLl9mPWordGhpcy5fZnwwLHRoaXMuX2c9TCt0aGlzLl9nfDAsdGhpcy5faD1CK3RoaXMuX2h8MH0sU2hhMjU2LnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBzPV8uYWxsb2NVbnNhZmUoMzIpO3JldHVybiBzLndyaXRlSW50MzJCRSh0aGlzLl9hLDApLHMud3JpdGVJbnQzMkJFKHRoaXMuX2IsNCkscy53cml0ZUludDMyQkUodGhpcy5fYyw4KSxzLndyaXRlSW50MzJCRSh0aGlzLl9kLDEyKSxzLndyaXRlSW50MzJCRSh0aGlzLl9lLDE2KSxzLndyaXRlSW50MzJCRSh0aGlzLl9mLDIwKSxzLndyaXRlSW50MzJCRSh0aGlzLl9nLDI0KSxzLndyaXRlSW50MzJCRSh0aGlzLl9oLDI4KSxzfSxzLmV4cG9ydHM9U2hhMjU2fSwyNDE2ODoocyxvLGkpPT57dmFyIGE9aSg5MTAzMyksdT1pKDgyODE5KSxfPWkoOTMyNSk7cy5leHBvcnRzPWZ1bmN0aW9uIGNyZWF0ZVBhcnRpYWwocyxvLGksdyl7dmFyIHg9MSZvLEM9dShzKTtyZXR1cm4gZnVuY3Rpb24gd3JhcHBlcigpe2Zvcih2YXIgbz0tMSx1PWFyZ3VtZW50cy5sZW5ndGgsaj0tMSxMPXcubGVuZ3RoLEI9QXJyYXkoTCt1KSwkPXRoaXMmJnRoaXMhPT1fJiZ0aGlzIGluc3RhbmNlb2Ygd3JhcHBlcj9DOnM7KytqPEw7KUJbal09d1tqXTtmb3IoO3UtLTspQltqKytdPWFyZ3VtZW50c1srK29dO3JldHVybiBhKCQseD9pOnRoaXMsQil9fX0sMjQ0NDM6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDIzMDQ1KSx1PWkoODAzNzYpLmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIik7by5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eU5hbWVzKHMpe3JldHVybiBhKHMsdSl9fSwyNDY0NzoocyxvLGkpPT57dmFyIGE9aSg1NDU1Mikoe8OAOiJBIizDgToiQSIsw4I6IkEiLMODOiJBIizDhDoiQSIsw4U6IkEiLMOgOiJhIizDoToiYSIsw6I6ImEiLMOjOiJhIizDpDoiYSIsw6U6ImEiLMOHOiJDIizDpzoiYyIsw5A6IkQiLMOwOiJkIizDiDoiRSIsw4k6IkUiLMOKOiJFIizDizoiRSIsw6g6ImUiLMOpOiJlIizDqjoiZSIsw6s6ImUiLMOMOiJJIizDjToiSSIsw446IkkiLMOPOiJJIizDrDoiaSIsw606ImkiLMOuOiJpIizDrzoiaSIsw5E6Ik4iLMOxOiJuIizDkjoiTyIsw5M6Ik8iLMOUOiJPIizDlToiTyIsw5Y6Ik8iLMOYOiJPIizDsjoibyIsw7M6Im8iLMO0OiJvIizDtToibyIsw7Y6Im8iLMO4OiJvIizDmToiVSIsw5o6IlUiLMObOiJVIizDnDoiVSIsw7k6InUiLMO6OiJ1IizDuzoidSIsw7w6InUiLMOdOiJZIizDvToieSIsw786InkiLMOGOiJBZSIsw6Y6ImFlIizDnjoiVGgiLMO+OiJ0aCIsw586InNzIizEgDoiQSIsxII6IkEiLMSEOiJBIizEgToiYSIsxIM6ImEiLMSFOiJhIizEhjoiQyIsxIg6IkMiLMSKOiJDIizEjDoiQyIsxIc6ImMiLMSJOiJjIizEizoiYyIsxI06ImMiLMSOOiJEIizEkDoiRCIsxI86ImQiLMSROiJkIizEkjoiRSIsxJQ6IkUiLMSWOiJFIizEmDoiRSIsxJo6IkUiLMSTOiJlIizElToiZSIsxJc6ImUiLMSZOiJlIizEmzoiZSIsxJw6IkciLMSeOiJHIizEoDoiRyIsxKI6IkciLMSdOiJnIizEnzoiZyIsxKE6ImciLMSjOiJnIizEpDoiSCIsxKY6IkgiLMSlOiJoIizEpzoiaCIsxKg6IkkiLMSqOiJJIizErDoiSSIsxK46IkkiLMSwOiJJIizEqToiaSIsxKs6ImkiLMStOiJpIizErzoiaSIsxLE6ImkiLMS0OiJKIizEtToiaiIsxLY6IksiLMS3OiJrIizEuDoiayIsxLk6IkwiLMS7OiJMIizEvToiTCIsxL86IkwiLMWBOiJMIizEujoibCIsxLw6ImwiLMS+OiJsIizFgDoibCIsxYI6ImwiLMWDOiJOIizFhToiTiIsxYc6Ik4iLMWKOiJOIizFhDoibiIsxYY6Im4iLMWIOiJuIizFizoibiIsxYw6Ik8iLMWOOiJPIizFkDoiTyIsxY06Im8iLMWPOiJvIizFkToibyIsxZQ6IlIiLMWWOiJSIizFmDoiUiIsxZU6InIiLMWXOiJyIizFmToiciIsxZo6IlMiLMWcOiJTIizFnjoiUyIsxaA6IlMiLMWbOiJzIizFnToicyIsxZ86InMiLMWhOiJzIizFojoiVCIsxaQ6IlQiLMWmOiJUIizFozoidCIsxaU6InQiLMWnOiJ0IizFqDoiVSIsxao6IlUiLMWsOiJVIizFrjoiVSIsxbA6IlUiLMWyOiJVIizFqToidSIsxas6InUiLMWtOiJ1IizFrzoidSIsxbE6InUiLMWzOiJ1IizFtDoiVyIsxbU6InciLMW2OiJZIizFtzoieSIsxbg6IlkiLMW5OiJaIizFuzoiWiIsxb06IloiLMW6OiJ6IizFvDoieiIsxb46InoiLMSyOiJJSiIsxLM6ImlqIizFkjoiT2UiLMWTOiJvZSIsxYk6IiduIizFvzoicyJ9KTtzLmV4cG9ydHM9YX0sMjQ2Nzc6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDgxMjE0KS5EZWJvdW5jZUlucHV0O2EuRGVib3VuY2VJbnB1dD1hLHMuZXhwb3J0cz1hfSwyNDcxMzoocyxvLGkpPT57dmFyIGE9aSgyNTIzKSx1PWkoMTUzODkpLF89aSg2MTQ4OSksdz1NYXRoLm1heDtzLmV4cG9ydHM9ZnVuY3Rpb24gZmluZEluZGV4KHMsbyxpKXt2YXIgeD1udWxsPT1zPzA6cy5sZW5ndGg7aWYoIXgpcmV0dXJuLTE7dmFyIEM9bnVsbD09aT8wOl8oaSk7cmV0dXJuIEM8MCYmKEM9dyh4K0MsMCkpLGEocyx1KG8sMyksQyl9fSwyNDczOToocyxvLGkpPT57dmFyIGE9aSgyNjAyNSk7cy5leHBvcnRzPWZ1bmN0aW9uIGxpc3RDYWNoZUdldChzKXt2YXIgbz10aGlzLl9fZGF0YV9fLGk9YShvLHMpO3JldHVybiBpPDA/dm9pZCAwOm9baV1bMV19fSwyNDgyMzoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMjgzMTEpLHU9aSgxMzkzMCksXz1pKDM2NjI0KSx3PWkoNDY0MCkseD1pKDM3ODEyKSxDPWkoMjA1NzUpLGo9aSg4ODI4MCksTD1pKDEwMzAwKSxCPWkoNzM0NDgpLCQ9aSg0MDE1NCksVj1UeXBlRXJyb3IsUmVzdWx0PWZ1bmN0aW9uKHMsbyl7dGhpcy5zdG9wcGVkPXMsdGhpcy5yZXN1bHQ9b30sVT1SZXN1bHQucHJvdG90eXBlO3MuZXhwb3J0cz1mdW5jdGlvbihzLG8saSl7dmFyIHosWSxaLGVlLGllLGFlLGNlLGxlPWkmJmkudGhhdCxwZT0hKCFpfHwhaS5BU19FTlRSSUVTKSxkZT0hKCFpfHwhaS5JU19SRUNPUkQpLGZlPSEoIWl8fCFpLklTX0lURVJBVE9SKSx5ZT0hKCFpfHwhaS5JTlRFUlJVUFRFRCksYmU9YShvLGxlKSxzdG9wPWZ1bmN0aW9uKHMpe3JldHVybiB6JiYkKHosIm5vcm1hbCIscyksbmV3IFJlc3VsdCghMCxzKX0sY2FsbEZuPWZ1bmN0aW9uKHMpe3JldHVybiBwZT8oXyhzKSx5ZT9iZShzWzBdLHNbMV0sc3RvcCk6YmUoc1swXSxzWzFdKSk6eWU/YmUocyxzdG9wKTpiZShzKX07aWYoZGUpej1zLml0ZXJhdG9yO2Vsc2UgaWYoZmUpej1zO2Vsc2V7aWYoIShZPUIocykpKXRocm93IG5ldyBWKHcocykrIiBpcyBub3QgaXRlcmFibGUiKTtpZih4KFkpKXtmb3IoWj0wLGVlPUMocyk7ZWU+WjtaKyspaWYoKGllPWNhbGxGbihzW1pdKSkmJmooVSxpZSkpcmV0dXJuIGllO3JldHVybiBuZXcgUmVzdWx0KCExKX16PUwocyxZKX1mb3IoYWU9ZGU/cy5uZXh0OnoubmV4dDshKGNlPXUoYWUseikpLmRvbmU7KXt0cnl7aWU9Y2FsbEZuKGNlLnZhbHVlKX1jYXRjaChzKXskKHosInRocm93IixzKX1pZigib2JqZWN0Ij09dHlwZW9mIGllJiZpZSYmaihVLGllKSlyZXR1cm4gaWV9cmV0dXJuIG5ldyBSZXN1bHQoITEpfX0sMjUxNjA6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlU2xpY2UocyxvLGkpe3ZhciBhPS0xLHU9cy5sZW5ndGg7bzwwJiYobz0tbz51PzA6dStvKSwoaT1pPnU/dTppKTwwJiYoaSs9dSksdT1vPmk/MDppLW8+Pj4wLG8+Pj49MDtmb3IodmFyIF89QXJyYXkodSk7KythPHU7KV9bYV09c1thK29dO3JldHVybiBffX0sMjUyNjQ6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfdHlwZW9mKHMpe3JldHVybiBfdHlwZW9mPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHMpe3JldHVybiB0eXBlb2Ygc306ZnVuY3Rpb24ocyl7cmV0dXJuIHMmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnMuY29uc3RydWN0b3I9PT1TeW1ib2wmJnMhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBzfSxfdHlwZW9mKHMpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxvLkNvcHlUb0NsaXBib2FyZD12b2lkIDA7dmFyIGE9X2ludGVyb3BSZXF1aXJlRGVmYXVsdChpKDk2NTQwKSksdT1faW50ZXJvcFJlcXVpcmVEZWZhdWx0KGkoMTc5NjUpKSxfPVsidGV4dCIsIm9uQ29weSIsIm9wdGlvbnMiLCJjaGlsZHJlbiJdO2Z1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocyl7cmV0dXJuIHMmJnMuX19lc01vZHVsZT9zOntkZWZhdWx0OnN9fWZ1bmN0aW9uIG93bktleXMocyxvKXt2YXIgaT1PYmplY3Qua2V5cyhzKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpO28mJihhPWEuZmlsdGVyKChmdW5jdGlvbihvKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLG8pLmVudW1lcmFibGV9KSkpLGkucHVzaC5hcHBseShpLGEpfXJldHVybiBpfWZ1bmN0aW9uIF9vYmplY3RTcHJlYWQocyl7Zm9yKHZhciBvPTE7bzxhcmd1bWVudHMubGVuZ3RoO28rKyl7dmFyIGk9bnVsbCE9YXJndW1lbnRzW29dP2FyZ3VtZW50c1tvXTp7fTtvJTI/b3duS2V5cyhPYmplY3QoaSksITApLmZvckVhY2goKGZ1bmN0aW9uKG8pe19kZWZpbmVQcm9wZXJ0eShzLG8saVtvXSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMocyxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhpKSk6b3duS2V5cyhPYmplY3QoaSkpLmZvckVhY2goKGZ1bmN0aW9uKG8pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLG8sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLG8pKX0pKX1yZXR1cm4gc31mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMocyxvKXtpZihudWxsPT1zKXJldHVybnt9O3ZhciBpLGEsdT1mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzLG8pe2lmKG51bGw9PXMpcmV0dXJue307dmFyIGksYSx1PXt9LF89T2JqZWN0LmtleXMocyk7Zm9yKGE9MDthPF8ubGVuZ3RoO2ErKylpPV9bYV0sby5pbmRleE9mKGkpPj0wfHwodVtpXT1zW2ldKTtyZXR1cm4gdX0ocyxvKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgXz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpO2ZvcihhPTA7YTxfLmxlbmd0aDthKyspaT1fW2FdLG8uaW5kZXhPZihpKT49MHx8T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsaSkmJih1W2ldPXNbaV0pfXJldHVybiB1fWZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHMsbyl7Zm9yKHZhciBpPTA7aTxvLmxlbmd0aDtpKyspe3ZhciBhPW9baV07YS5lbnVtZXJhYmxlPWEuZW51bWVyYWJsZXx8ITEsYS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGEmJihhLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocyxhLmtleSxhKX19ZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKHMsbyl7cmV0dXJuIF9zZXRQcm90b3R5cGVPZj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihzLG8pe3JldHVybiBzLl9fcHJvdG9fXz1vLHN9LF9zZXRQcm90b3R5cGVPZihzLG8pfWZ1bmN0aW9uIF9jcmVhdGVTdXBlcihzKXt2YXIgbz1mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKHMpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKXt2YXIgaSxhPV9nZXRQcm90b3R5cGVPZihzKTtpZihvKXt2YXIgdT1fZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7aT1SZWZsZWN0LmNvbnN0cnVjdChhLGFyZ3VtZW50cyx1KX1lbHNlIGk9YS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHMsbyl7aWYobyYmKCJvYmplY3QiPT09X3R5cGVvZihvKXx8ImZ1bmN0aW9uIj09dHlwZW9mIG8pKXJldHVybiBvO2lmKHZvaWQgMCE9PW8pdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzKX0odGhpcyxpKX19ZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzKXtpZih2b2lkIDA9PT1zKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIHN9ZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKHMpe3JldHVybiBfZ2V0UHJvdG90eXBlT2Y9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yocyl7cmV0dXJuIHMuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2Yocyl9LF9nZXRQcm90b3R5cGVPZihzKX1mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkocyxvLGkpe3JldHVybiBvIGluIHM/T2JqZWN0LmRlZmluZVByb3BlcnR5KHMsbyx7dmFsdWU6aSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnNbb109aSxzfXZhciB3PWZ1bmN0aW9uKHMpeyFmdW5jdGlvbiBfaW5oZXJpdHMocyxvKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgbyYmbnVsbCE9PW8pdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtzLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG8mJm8ucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6cyx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksbyYmX3NldFByb3RvdHlwZU9mKHMsbyl9KENvcHlUb0NsaXBib2FyZCxzKTt2YXIgbz1fY3JlYXRlU3VwZXIoQ29weVRvQ2xpcGJvYXJkKTtmdW5jdGlvbiBDb3B5VG9DbGlwYm9hcmQoKXt2YXIgczshZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKHMsbyl7aWYoIShzIGluc3RhbmNlb2YgbykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsQ29weVRvQ2xpcGJvYXJkKTtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aCxfPW5ldyBBcnJheShpKSx3PTA7dzxpO3crKylfW3ddPWFyZ3VtZW50c1t3XTtyZXR1cm4gX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQocz1vLmNhbGwuYXBwbHkobyxbdGhpc10uY29uY2F0KF8pKSksIm9uQ2xpY2siLChmdW5jdGlvbihvKXt2YXIgaT1zLnByb3BzLF89aS50ZXh0LHc9aS5vbkNvcHkseD1pLmNoaWxkcmVuLEM9aS5vcHRpb25zLGo9YS5kZWZhdWx0LkNoaWxkcmVuLm9ubHkoeCksTD0oMCx1LmRlZmF1bHQpKF8sQyk7dyYmdyhfLEwpLGomJmoucHJvcHMmJiJmdW5jdGlvbiI9PXR5cGVvZiBqLnByb3BzLm9uQ2xpY2smJmoucHJvcHMub25DbGljayhvKX0pKSxzfXJldHVybiBmdW5jdGlvbiBfY3JlYXRlQ2xhc3MocyxvLGkpe3JldHVybiBvJiZfZGVmaW5lUHJvcGVydGllcyhzLnByb3RvdHlwZSxvKSxpJiZfZGVmaW5lUHJvcGVydGllcyhzLGkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHN9KENvcHlUb0NsaXBib2FyZCxbe2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbiByZW5kZXIoKXt2YXIgcz10aGlzLnByb3BzLG89KHMudGV4dCxzLm9uQ29weSxzLm9wdGlvbnMscy5jaGlsZHJlbiksaT1fb2JqZWN0V2l0aG91dFByb3BlcnRpZXMocyxfKSx1PWEuZGVmYXVsdC5DaGlsZHJlbi5vbmx5KG8pO3JldHVybiBhLmRlZmF1bHQuY2xvbmVFbGVtZW50KHUsX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LGkpLHt9LHtvbkNsaWNrOnRoaXMub25DbGlja30pKX19XSksQ29weVRvQ2xpcGJvYXJkfShhLmRlZmF1bHQuUHVyZUNvbXBvbmVudCk7by5Db3B5VG9DbGlwYm9hcmQ9dyxfZGVmaW5lUHJvcGVydHkodywiZGVmYXVsdFByb3BzIix7b25Db3B5OnZvaWQgMCxvcHRpb25zOnZvaWQgMH0pfSwyNTM4MjoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNjU2MDYpLHU9T2JqZWN0LmtleXN8fGZ1bmN0aW9uKHMpe3ZhciBvPVtdO2Zvcih2YXIgaSBpbiBzKW8ucHVzaChpKTtyZXR1cm4gb307cy5leHBvcnRzPUR1cGxleDt2YXIgXz1pKDQ1NDEyKSx3PWkoMTY3MDgpO2koNTY2OTgpKER1cGxleCxfKTtmb3IodmFyIHg9dSh3LnByb3RvdHlwZSksQz0wO0M8eC5sZW5ndGg7QysrKXt2YXIgaj14W0NdO0R1cGxleC5wcm90b3R5cGVbal18fChEdXBsZXgucHJvdG90eXBlW2pdPXcucHJvdG90eXBlW2pdKX1mdW5jdGlvbiBEdXBsZXgocyl7aWYoISh0aGlzIGluc3RhbmNlb2YgRHVwbGV4KSlyZXR1cm4gbmV3IER1cGxleChzKTtfLmNhbGwodGhpcyxzKSx3LmNhbGwodGhpcyxzKSx0aGlzLmFsbG93SGFsZk9wZW49ITAscyYmKCExPT09cy5yZWFkYWJsZSYmKHRoaXMucmVhZGFibGU9ITEpLCExPT09cy53cml0YWJsZSYmKHRoaXMud3JpdGFibGU9ITEpLCExPT09cy5hbGxvd0hhbGZPcGVuJiYodGhpcy5hbGxvd0hhbGZPcGVuPSExLHRoaXMub25jZSgiZW5kIixvbmVuZCkpKX1mdW5jdGlvbiBvbmVuZCgpe3RoaXMuX3dyaXRhYmxlU3RhdGUuZW5kZWR8fGEubmV4dFRpY2sob25FbmROVCx0aGlzKX1mdW5jdGlvbiBvbkVuZE5UKHMpe3MuZW5kKCl9T2JqZWN0LmRlZmluZVByb3BlcnR5KER1cGxleC5wcm90b3R5cGUsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uIGdldCgpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KER1cGxleC5wcm90b3R5cGUsIndyaXRhYmxlQnVmZmVyIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyKCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KER1cGxleC5wcm90b3R5cGUsIndyaXRhYmxlTGVuZ3RoIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUubGVuZ3RofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEdXBsZXgucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbiBnZXQoKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdm9pZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkJiZ0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZCl9LHNldDpmdW5jdGlvbiBzZXQocyl7dm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdm9pZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPXMsdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9cyl9fSl9LDI1NTk0OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg4NTU4MiksdT1pKDYyMjUwKSxfPWkoODgyODApLHc9aSg1MTE3NSkseD1PYmplY3Q7cy5leHBvcnRzPXc/ZnVuY3Rpb24ocyl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBzfTpmdW5jdGlvbihzKXt2YXIgbz1hKCJTeW1ib2wiKTtyZXR1cm4gdShvKSYmXyhvLnByb3RvdHlwZSx4KHMpKX19LDI1OTExOihzLG8saSk9Pnt2YXIgYT1pKDM4ODU5KSx1PWkoMTQyNDgpLF89aSgxOTIxOSk7cy5leHBvcnRzPWZ1bmN0aW9uIGVxdWFsQXJyYXlzKHMsbyxpLHcseCxDKXt2YXIgaj0xJmksTD1zLmxlbmd0aCxCPW8ubGVuZ3RoO2lmKEwhPUImJiEoaiYmQj5MKSlyZXR1cm4hMTt2YXIgJD1DLmdldChzKSxWPUMuZ2V0KG8pO2lmKCQmJlYpcmV0dXJuICQ9PW8mJlY9PXM7dmFyIFU9LTEsej0hMCxZPTImaT9uZXcgYTp2b2lkIDA7Zm9yKEMuc2V0KHMsbyksQy5zZXQobyxzKTsrK1U8TDspe3ZhciBaPXNbVV0sZWU9b1tVXTtpZih3KXZhciBpZT1qP3coZWUsWixVLG8scyxDKTp3KFosZWUsVSxzLG8sQyk7aWYodm9pZCAwIT09aWUpe2lmKGllKWNvbnRpbnVlO3o9ITE7YnJlYWt9aWYoWSl7aWYoIXUobywoZnVuY3Rpb24ocyxvKXtpZighXyhZLG8pJiYoWj09PXN8fHgoWixzLGksdyxDKSkpcmV0dXJuIFkucHVzaChvKX0pKSl7ej0hMTticmVha319ZWxzZSBpZihaIT09ZWUmJiF4KFosZWUsaSx3LEMpKXt6PSExO2JyZWFrfX1yZXR1cm4gQy5kZWxldGUocyksQy5kZWxldGUobyksen19LDI2MDI1OihzLG8saSk9Pnt2YXIgYT1pKDc1Mjg4KTtzLmV4cG9ydHM9ZnVuY3Rpb24gYXNzb2NJbmRleE9mKHMsbyl7Zm9yKHZhciBpPXMubGVuZ3RoO2ktLTspaWYoYShzW2ldWzBdLG8pKXJldHVybiBpO3JldHVybi0xfX0sMjYzMTE6cz0+eyFmdW5jdGlvbigpe3ZhciBvO2Z1bmN0aW9uIGZvcm1hdChzKXtmb3IodmFyIG8saSxhLHUsXz0xLHc9W10uc2xpY2UuY2FsbChhcmd1bWVudHMpLHg9MCxDPXMubGVuZ3RoLGo9IiIsTD0hMSxCPSExLG5leHRBcmc9ZnVuY3Rpb24oKXtyZXR1cm4gd1tfKytdfSxzbHVycE51bWJlcj1mdW5jdGlvbigpe2Zvcih2YXIgaT0iIjsvXGQvLnRlc3Qoc1t4XSk7KWkrPXNbeCsrXSxvPXNbeF07cmV0dXJuIGkubGVuZ3RoPjA/cGFyc2VJbnQoaSk6bnVsbH07eDxDOysreClpZihvPXNbeF0sTClzd2l0Y2goTD0hMSwiLiI9PW8/KEI9ITEsbz1zWysreF0pOiIwIj09byYmIi4iPT1zW3grMV0/KEI9ITAsbz1zW3grPTJdKTpCPSEwLHU9c2x1cnBOdW1iZXIoKSxvKXtjYXNlImIiOmorPXBhcnNlSW50KG5leHRBcmcoKSwxMCkudG9TdHJpbmcoMik7YnJlYWs7Y2FzZSJjIjpqKz0ic3RyaW5nIj09dHlwZW9mKGk9bmV4dEFyZygpKXx8aSBpbnN0YW5jZW9mIFN0cmluZz9pOlN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoaSwxMCkpO2JyZWFrO2Nhc2UiZCI6ais9cGFyc2VJbnQobmV4dEFyZygpLDEwKTticmVhaztjYXNlImYiOmE9U3RyaW5nKHBhcnNlRmxvYXQobmV4dEFyZygpKS50b0ZpeGVkKHV8fDYpKSxqKz1CP2E6YS5yZXBsYWNlKC9eMC8sIiIpO2JyZWFrO2Nhc2UiaiI6ais9SlNPTi5zdHJpbmdpZnkobmV4dEFyZygpKTticmVhaztjYXNlIm8iOmorPSIwIitwYXJzZUludChuZXh0QXJnKCksMTApLnRvU3RyaW5nKDgpO2JyZWFrO2Nhc2UicyI6ais9bmV4dEFyZygpO2JyZWFrO2Nhc2UieCI6ais9IjB4IitwYXJzZUludChuZXh0QXJnKCksMTApLnRvU3RyaW5nKDE2KTticmVhaztjYXNlIlgiOmorPSIweCIrcGFyc2VJbnQobmV4dEFyZygpLDEwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTticmVhaztkZWZhdWx0OmorPW99ZWxzZSIlIj09PW8/TD0hMDpqKz1vO3JldHVybiBqfShvPXMuZXhwb3J0cz1mb3JtYXQpLmZvcm1hdD1mb3JtYXQsby52c3ByaW50Zj1mdW5jdGlvbiB2c3ByaW50ZihzLG8pe3JldHVybiBmb3JtYXQuYXBwbHkobnVsbCxbc10uY29uY2F0KG8pKX0sInVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiYiZnVuY3Rpb24iPT10eXBlb2YgY29uc29sZS5sb2cmJihvLnByaW50Zj1mdW5jdGlvbiBwcmludGYoKXtjb25zb2xlLmxvZyhmb3JtYXQuYXBwbHkobnVsbCxhcmd1bWVudHMpKX0pfSgpfSwyNjU3MTpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIHBvd2Vyc2hlbGwocyl7Y29uc3Qgbz17JHBhdHRlcm46Ly0/W0EtelwuXC1dK1xiLyxrZXl3b3JkOiJpZiBlbHNlIGZvcmVhY2ggcmV0dXJuIGRvIHdoaWxlIHVudGlsIGVsc2VpZiBiZWdpbiBmb3IgdHJhcCBkYXRhIGR5bmFtaWNwYXJhbSBlbmQgYnJlYWsgdGhyb3cgcGFyYW0gY29udGludWUgZmluYWxseSBpbiBzd2l0Y2ggZXhpdCBmaWx0ZXIgdHJ5IHByb2Nlc3MgY2F0Y2ggaGlkZGVuIHN0YXRpYyBwYXJhbWV0ZXIiLGJ1aWx0X2luOiJhYyBhc25wIGNhdCBjZCBDRlMgY2hkaXIgY2xjIGNsZWFyIGNsaHkgY2xpIGNscCBjbHMgY2x2IGNuc24gY29tcGFyZSBjb3B5IGNwIGNwaSBjcHAgY3VybCBjdnBhIGRicCBkZWwgZGlmZiBkaXIgZG5zbiBlYnAgZWNob3wwIGVwYWwgZXBjc3YgZXBzbiBlcmFzZSBldHNuIGV4c24gZmMgZmh4IGZsIGZ0IGZ3IGdhbCBnYnAgZ2MgZ2NiIGdjaSBnY20gZ2NzIGdkciBnZXJyIGdoeSBnaSBnaW4gZ2piIGdsIGdtIGdtbyBncCBncHMgZ3B2IGdyb3VwIGdzbiBnc25wIGdzdiBndHogZ3UgZ3YgZ3dtaSBoIGhpc3RvcnkgaWNtIGlleCBpaHkgaWkgaXBhbCBpcGNzdiBpcG1vIGlwc24gaXJtIGlzZSBpd21pIGl3ciBraWxsIGxwIGxzIG1hbiBtZCBtZWFzdXJlIG1pIG1vdW50IG1vdmUgbXAgbXYgbmFsIG5kciBuaSBubW8gbnBzc2MgbnNuIG52IG9ndiBvaCBwb3BkIHBzIHB1c2hkIHB3ZCByIHJicCByY2piIHJjc24gcmQgcmRyIHJlbiByaSByamIgcm0gcm1kaXIgcm1vIHJuaSBybnAgcnAgcnNuIHJzbnAgcnVqYiBydiBydnBhIHJ3bWkgc2FqYiBzYWwgc2FwcyBzYXN2IHNicCBzYyBzY2Igc2VsZWN0IHNldCBzaGNtIHNpIHNsIHNsZWVwIHNscyBzb3J0IHNwIHNwamIgc3BwcyBzcHN2IHN0YXJ0IHN0eiBzdWpiIHN2IHN3bWkgdGVlIHRyY20gdHlwZSB3Z2V0IHdoZXJlIHdqYiB3cml0ZSJ9LGk9e2JlZ2luOiJgW1xcc1xcU10iLHJlbGV2YW5jZTowfSxhPXtjbGFzc05hbWU6InZhcmlhYmxlIix2YXJpYW50czpbe2JlZ2luOi9cJFxCL30se2NsYXNzTmFtZToia2V5d29yZCIsYmVnaW46L1wkdGhpcy99LHtiZWdpbjovXCRbXHdcZF1bXHdcZF86XSovfV19LHU9e2NsYXNzTmFtZToic3RyaW5nIix2YXJpYW50czpbe2JlZ2luOi8iLyxlbmQ6LyIvfSx7YmVnaW46L0AiLyxlbmQ6L14iQC99XSxjb250YWluczpbaSxhLHtjbGFzc05hbWU6InZhcmlhYmxlIixiZWdpbjovXCRbQS16XS8sZW5kOi9bXkEtel0vfV19LF89e2NsYXNzTmFtZToic3RyaW5nIix2YXJpYW50czpbe2JlZ2luOi8nLyxlbmQ6LycvfSx7YmVnaW46L0AnLyxlbmQ6L14nQC99XX0sdz1zLmluaGVyaXQocy5DT01NRU5UKG51bGwsbnVsbCkse3ZhcmlhbnRzOlt7YmVnaW46LyMvLGVuZDovJC99LHtiZWdpbjovPCMvLGVuZDovIz4vfV0sY29udGFpbnM6W3tjbGFzc05hbWU6ImRvY3RhZyIsdmFyaWFudHM6W3tiZWdpbjovXC4oc3lub3BzaXN8ZGVzY3JpcHRpb258ZXhhbXBsZXxpbnB1dHN8b3V0cHV0c3xub3Rlc3xsaW5rfGNvbXBvbmVudHxyb2xlfGZ1bmN0aW9uYWxpdHkpL30se2JlZ2luOi9cLihwYXJhbWV0ZXJ8Zm9yd2FyZGhlbHB0YXJnZXRuYW1lfGZvcndhcmRoZWxwY2F0ZWdvcnl8cmVtb3RlaGVscHJ1bnNwYWNlfGV4dGVybmFsaGVscClccytcUysvfV19XX0pLHg9e2NsYXNzTmFtZToiYnVpbHRfaW4iLHZhcmlhbnRzOlt7YmVnaW46IigiLmNvbmNhdCgiQWRkfENsZWFyfENsb3NlfENvcHl8RW50ZXJ8RXhpdHxGaW5kfEZvcm1hdHxHZXR8SGlkZXxKb2lufExvY2t8TW92ZXxOZXd8T3BlbnxPcHRpbWl6ZXxQb3B8UHVzaHxSZWRvfFJlbW92ZXxSZW5hbWV8UmVzZXR8UmVzaXplfFNlYXJjaHxTZWxlY3R8U2V0fFNob3d8U2tpcHxTcGxpdHxTdGVwfFN3aXRjaHxVbmRvfFVubG9ja3xXYXRjaHxCYWNrdXB8Q2hlY2twb2ludHxDb21wYXJlfENvbXByZXNzfENvbnZlcnR8Q29udmVydEZyb218Q29udmVydFRvfERpc21vdW50fEVkaXR8RXhwYW5kfEV4cG9ydHxHcm91cHxJbXBvcnR8SW5pdGlhbGl6ZXxMaW1pdHxNZXJnZXxNb3VudHxPdXR8UHVibGlzaHxSZXN0b3JlfFNhdmV8U3luY3xVbnB1Ymxpc2h8VXBkYXRlfEFwcHJvdmV8QXNzZXJ0fEJ1aWxkfENvbXBsZXRlfENvbmZpcm18RGVueXxEZXBsb3l8RGlzYWJsZXxFbmFibGV8SW5zdGFsbHxJbnZva2V8UmVnaXN0ZXJ8UmVxdWVzdHxSZXN0YXJ0fFJlc3VtZXxTdGFydHxTdG9wfFN1Ym1pdHxTdXNwZW5kfFVuaW5zdGFsbHxVbnJlZ2lzdGVyfFdhaXR8RGVidWd8TWVhc3VyZXxQaW5nfFJlcGFpcnxSZXNvbHZlfFRlc3R8VHJhY2V8Q29ubmVjdHxEaXNjb25uZWN0fFJlYWR8UmVjZWl2ZXxTZW5kfFdyaXRlfEJsb2NrfEdyYW50fFByb3RlY3R8UmV2b2tlfFVuYmxvY2t8VW5wcm90ZWN0fFVzZXxGb3JFYWNofFNvcnR8VGVlfFdoZXJlIiwiKSsoLSlbXFx3XFxkXSsiKX1dfSxDPXtjbGFzc05hbWU6ImNsYXNzIixiZWdpbktleXdvcmRzOiJjbGFzcyBlbnVtIixlbmQ6L1xzKlt7XS8sZXhjbHVkZUVuZDohMCxyZWxldmFuY2U6MCxjb250YWluczpbcy5USVRMRV9NT0RFXX0saj17Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW46L2Z1bmN0aW9uXHMrLyxlbmQ6L1xzKlx7fCQvLGV4Y2x1ZGVFbmQ6ITAscmV0dXJuQmVnaW46ITAscmVsZXZhbmNlOjAsY29udGFpbnM6W3tiZWdpbjoiZnVuY3Rpb24iLHJlbGV2YW5jZTowLGNsYXNzTmFtZToia2V5d29yZCJ9LHtjbGFzc05hbWU6InRpdGxlIixiZWdpbjovXHdbXHdcZF0qKCgtKVtcd1xkXSspKi8scmVsZXZhbmNlOjB9LHtiZWdpbjovXCgvLGVuZDovXCkvLGNsYXNzTmFtZToicGFyYW1zIixyZWxldmFuY2U6MCxjb250YWluczpbYV19XX0sTD17YmVnaW46L3VzaW5nXHMvLGVuZDovJC8scmV0dXJuQmVnaW46ITAsY29udGFpbnM6W3UsXyx7Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjovKHVzaW5nfGFzc2VtYmx5fGNvbW1hbmR8bW9kdWxlfG5hbWVzcGFjZXx0eXBlKS99XX0sQj17dmFyaWFudHM6W3tjbGFzc05hbWU6Im9wZXJhdG9yIixiZWdpbjoiKCIuY29uY2F0KCItYW5kfC1hc3wtYmFuZHwtYm5vdHwtYm9yfC1ieG9yfC1jYXNlc2Vuc2l0aXZlfC1jY29udGFpbnN8LWNlcXwtY2dlfC1jZ3R8LWNsZXwtY2xpa2V8LWNsdHwtY21hdGNofC1jbmV8LWNub3Rjb250YWluc3wtY25vdGxpa2V8LWNub3RtYXRjaHwtY29udGFpbnN8LWNyZXBsYWNlfC1jc3BsaXR8LWVxfC1leGFjdHwtZnwtZmlsZXwtZ2V8LWd0fC1pY29udGFpbnN8LWllcXwtaWdlfC1pZ3R8LWlsZXwtaWxpa2V8LWlsdHwtaW1hdGNofC1pbnwtaW5lfC1pbm90Y29udGFpbnN8LWlub3RsaWtlfC1pbm90bWF0Y2h8LWlyZXBsYWNlfC1pc3wtaXNub3R8LWlzcGxpdHwtam9pbnwtbGV8LWxpa2V8LWx0fC1tYXRjaHwtbmV8LW5vdHwtbm90Y29udGFpbnN8LW5vdGlufC1ub3RsaWtlfC1ub3RtYXRjaHwtb3J8LXJlZ2V4fC1yZXBsYWNlfC1zaGx8LXNocnwtc3BsaXR8LXdpbGRjYXJkfC14b3IiLCIpXFxiIil9LHtjbGFzc05hbWU6ImxpdGVyYWwiLGJlZ2luOi8oLSlbXHdcZF0rLyxyZWxldmFuY2U6MH1dfSwkPXtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbjovXFsuKlxdXHMqW1x3XStbIF0/P1woLyxlbmQ6LyQvLHJldHVybkJlZ2luOiEwLHJlbGV2YW5jZTowLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjoiKCIuY29uY2F0KG8ua2V5d29yZC50b1N0cmluZygpLnJlcGxhY2UoL1xzL2csInwiKSwiKVxcYiIpLGVuZHNQYXJlbnQ6ITAscmVsZXZhbmNlOjB9LHMuaW5oZXJpdChzLlRJVExFX01PREUse2VuZHNQYXJlbnQ6ITB9KV19LFY9WyQsdyxpLHMuTlVNQkVSX01PREUsdSxfLHgsYSx7Y2xhc3NOYW1lOiJsaXRlcmFsIixiZWdpbjovXCQobnVsbHx0cnVlfGZhbHNlKVxiL30se2NsYXNzTmFtZToic2VsZWN0b3ItdGFnIixiZWdpbjovQFxCLyxyZWxldmFuY2U6MH1dLFU9e2JlZ2luOi9cWy8sZW5kOi9cXS8sZXhjbHVkZUJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITAscmVsZXZhbmNlOjAsY29udGFpbnM6W10uY29uY2F0KCJzZWxmIixWLHtiZWdpbjoiKCIrWyJzdHJpbmciLCJjaGFyIiwiYnl0ZSIsImludCIsImxvbmciLCJib29sIiwiZGVjaW1hbCIsInNpbmdsZSIsImRvdWJsZSIsIkRhdGVUaW1lIiwieG1sIiwiYXJyYXkiLCJoYXNodGFibGUiLCJ2b2lkIl0uam9pbigifCIpKyIpIixjbGFzc05hbWU6ImJ1aWx0X2luIixyZWxldmFuY2U6MH0se2NsYXNzTmFtZToidHlwZSIsYmVnaW46L1tcLlx3XGRdKy8scmVsZXZhbmNlOjB9KX07cmV0dXJuICQuY29udGFpbnMudW5zaGlmdChVKSx7bmFtZToiUG93ZXJTaGVsbCIsYWxpYXNlczpbInBzIiwicHMxIl0sY2FzZV9pbnNlbnNpdGl2ZTohMCxrZXl3b3JkczpvLGNvbnRhaW5zOlYuY29uY2F0KEMsaixMLEIsVSl9fX0sMjY2NTc6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDc1MjA4KSx1PWZ1bmN0aW9uIGlzQ2xvc2luZ1RhZyhzKXtyZXR1cm4vPFwvK1tePl0rPi8udGVzdChzKX0sXz1mdW5jdGlvbiBpc1NlbGZDbG9zaW5nVGFnKHMpe3JldHVybi88W14+XStcLz4vLnRlc3Qocyl9O2Z1bmN0aW9uIGdldFR5cGUocyl7cmV0dXJuIHUocyk/IkNsb3NpbmdUYWciOmZ1bmN0aW9uIGlzT3BlbmluZ1RhZyhzKXtyZXR1cm4gZnVuY3Rpb24gaXNUYWcocyl7cmV0dXJuLzxbXj4hXSs+Ly50ZXN0KHMpfShzKSYmIXUocykmJiFfKHMpfShzKT8iT3BlbmluZ1RhZyI6XyhzKT8iU2VsZkNsb3NpbmdUYWciOiJUZXh0In1zLmV4cG9ydHM9ZnVuY3Rpb24ocyl7dmFyIG89YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LGk9by5pbmRlbnRvcix1PW8udGV4dE5vZGVzT25TYW1lTGluZSxfPTAsdz1bXTtpPWl8fCIgICAgIjt2YXIgeD1mdW5jdGlvbiBsZXhlcihzKXtyZXR1cm4gZnVuY3Rpb24gc3BsaXRPblRhZ3Mocyl7cmV0dXJuIHMuc3BsaXQoLyg8XC8/W14+XSs+KS9nKS5maWx0ZXIoKGZ1bmN0aW9uKHMpe3JldHVybiIiIT09cy50cmltKCl9KSl9KHMpLm1hcCgoZnVuY3Rpb24ocyl7cmV0dXJue3ZhbHVlOnMsdHlwZTpnZXRUeXBlKHMpfX0pKX0ocykubWFwKChmdW5jdGlvbihzLG8seCl7dmFyIEM9cy52YWx1ZSxqPXMudHlwZTsiQ2xvc2luZ1RhZyI9PT1qJiZfLS07dmFyIEw9YShpLF8pLEI9TCtDO2lmKCJPcGVuaW5nVGFnIj09PWomJl8rKyx1KXt2YXIgJD14W28tMV0sVj14W28tMl07IkNsb3NpbmdUYWciPT09aiYmIlRleHQiPT09JC50eXBlJiYiT3BlbmluZ1RhZyI9PT1WLnR5cGUmJihCPSIiK0wrVi52YWx1ZSskLnZhbHVlK0Msdy5wdXNoKG8tMixvLTEpKX1yZXR1cm4gQn0pKTtyZXR1cm4gdy5mb3JFYWNoKChmdW5jdGlvbihzKXtyZXR1cm4geFtzXT1udWxsfSkpLHguZmlsdGVyKChmdW5jdGlvbihzKXtyZXR1cm4hIXN9KSkuam9pbigiXG4iKX19LDI2NzEwOihzLG8saSk9Pnt2YXIgYT1pKDU2Njk4KSx1PWkoMjQxMDcpLF89aSg5MDM5Miksdz1pKDkyODYxKS5CdWZmZXIseD1uZXcgQXJyYXkoNjQpO2Z1bmN0aW9uIFNoYTIyNCgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9eCxfLmNhbGwodGhpcyw2NCw1Nil9YShTaGEyMjQsdSksU2hhMjI0LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2E9MzIzODM3MTAzMix0aGlzLl9iPTkxNDE1MDY2Myx0aGlzLl9jPTgxMjcwMjk5OSx0aGlzLl9kPTQxNDQ5MTI2OTcsdGhpcy5fZT00MjkwNzc1ODU3LHRoaXMuX2Y9MTc1MDYwMzAyNSx0aGlzLl9nPTE2OTQwNzY4MzksdGhpcy5faD0zMjA0MDc1NDI4LHRoaXN9LFNoYTIyNC5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgcz13LmFsbG9jVW5zYWZlKDI4KTtyZXR1cm4gcy53cml0ZUludDMyQkUodGhpcy5fYSwwKSxzLndyaXRlSW50MzJCRSh0aGlzLl9iLDQpLHMud3JpdGVJbnQzMkJFKHRoaXMuX2MsOCkscy53cml0ZUludDMyQkUodGhpcy5fZCwxMikscy53cml0ZUludDMyQkUodGhpcy5fZSwxNikscy53cml0ZUludDMyQkUodGhpcy5fZiwyMCkscy53cml0ZUludDMyQkUodGhpcy5fZywyNCksc30scy5leHBvcnRzPVNoYTIyNH0sMjcwOTY6KHMsbyxpKT0+e2NvbnN0IGE9aSg4NzU4NiksdT1pKDYyMDUpLF89aSgxMDAyMyksdz1pKDgwNDgpO3MuZXhwb3J0cz1zPT57dmFyIG8saSx4PTAsQz17dHlwZTp1LlJPT1Qsc3RhY2s6W119LGo9QyxMPUMuc3RhY2ssQj1bXSxyZXBlYXRFcnI9bz0+e2EuZXJyb3IocywiTm90aGluZyB0byByZXBlYXQgYXQgY29sdW1uICIrKG8tMSkpfSwkPWEuc3RyVG9DaGFycyhzKTtmb3Iobz0kLmxlbmd0aDt4PG87KXN3aXRjaChpPSRbeCsrXSl7Y2FzZSJcXCI6c3dpdGNoKGk9JFt4KytdKXtjYXNlImIiOkwucHVzaCh3LndvcmRCb3VuZGFyeSgpKTticmVhaztjYXNlIkIiOkwucHVzaCh3Lm5vbldvcmRCb3VuZGFyeSgpKTticmVhaztjYXNlInciOkwucHVzaChfLndvcmRzKCkpO2JyZWFrO2Nhc2UiVyI6TC5wdXNoKF8ubm90V29yZHMoKSk7YnJlYWs7Y2FzZSJkIjpMLnB1c2goXy5pbnRzKCkpO2JyZWFrO2Nhc2UiRCI6TC5wdXNoKF8ubm90SW50cygpKTticmVhaztjYXNlInMiOkwucHVzaChfLndoaXRlc3BhY2UoKSk7YnJlYWs7Y2FzZSJTIjpMLnB1c2goXy5ub3RXaGl0ZXNwYWNlKCkpO2JyZWFrO2RlZmF1bHQ6L1xkLy50ZXN0KGkpP0wucHVzaCh7dHlwZTp1LlJFRkVSRU5DRSx2YWx1ZTpwYXJzZUludChpLDEwKX0pOkwucHVzaCh7dHlwZTp1LkNIQVIsdmFsdWU6aS5jaGFyQ29kZUF0KDApfSl9YnJlYWs7Y2FzZSJeIjpMLnB1c2gody5iZWdpbigpKTticmVhaztjYXNlIiQiOkwucHVzaCh3LmVuZCgpKTticmVhaztjYXNlIlsiOnZhciBWOyJeIj09PSRbeF0/KFY9ITAseCsrKTpWPSExO3ZhciBVPWEudG9rZW5pemVDbGFzcygkLnNsaWNlKHgpLHMpO3grPVVbMV0sTC5wdXNoKHt0eXBlOnUuU0VULHNldDpVWzBdLG5vdDpWfSk7YnJlYWs7Y2FzZSIuIjpMLnB1c2goXy5hbnlDaGFyKCkpO2JyZWFrO2Nhc2UiKCI6dmFyIHo9e3R5cGU6dS5HUk9VUCxzdGFjazpbXSxyZW1lbWJlcjohMH07Ij8iPT09KGk9JFt4XSkmJihpPSRbeCsxXSx4Kz0yLCI9Ij09PWk/ei5mb2xsb3dlZEJ5PSEwOiIhIj09PWk/ei5ub3RGb2xsb3dlZEJ5PSEwOiI6IiE9PWkmJmEuZXJyb3IocyxgSW52YWxpZCBncm91cCwgY2hhcmFjdGVyICcke2l9JyBhZnRlciAnPycgYXQgY29sdW1uIGArKHgtMSkpLHoucmVtZW1iZXI9ITEpLEwucHVzaCh6KSxCLnB1c2goaiksaj16LEw9ei5zdGFjazticmVhaztjYXNlIikiOjA9PT1CLmxlbmd0aCYmYS5lcnJvcihzLCJVbm1hdGNoZWQgKSBhdCBjb2x1bW4gIisoeC0xKSksTD0oaj1CLnBvcCgpKS5vcHRpb25zP2oub3B0aW9uc1tqLm9wdGlvbnMubGVuZ3RoLTFdOmouc3RhY2s7YnJlYWs7Y2FzZSJ8IjpqLm9wdGlvbnN8fChqLm9wdGlvbnM9W2ouc3RhY2tdLGRlbGV0ZSBqLnN0YWNrKTt2YXIgWT1bXTtqLm9wdGlvbnMucHVzaChZKSxMPVk7YnJlYWs7Y2FzZSJ7Ijp2YXIgWixlZSxpZT0vXihcZCspKCwoXGQrKT8pP1x9Ly5leGVjKCQuc2xpY2UoeCkpO251bGwhPT1pZT8oMD09PUwubGVuZ3RoJiZyZXBlYXRFcnIoeCksWj1wYXJzZUludChpZVsxXSwxMCksZWU9aWVbMl0/aWVbM10/cGFyc2VJbnQoaWVbM10sMTApOjEvMDpaLHgrPWllWzBdLmxlbmd0aCxMLnB1c2goe3R5cGU6dS5SRVBFVElUSU9OLG1pbjpaLG1heDplZSx2YWx1ZTpMLnBvcCgpfSkpOkwucHVzaCh7dHlwZTp1LkNIQVIsdmFsdWU6MTIzfSk7YnJlYWs7Y2FzZSI/IjowPT09TC5sZW5ndGgmJnJlcGVhdEVycih4KSxMLnB1c2goe3R5cGU6dS5SRVBFVElUSU9OLG1pbjowLG1heDoxLHZhbHVlOkwucG9wKCl9KTticmVhaztjYXNlIisiOjA9PT1MLmxlbmd0aCYmcmVwZWF0RXJyKHgpLEwucHVzaCh7dHlwZTp1LlJFUEVUSVRJT04sbWluOjEsbWF4OjEvMCx2YWx1ZTpMLnBvcCgpfSk7YnJlYWs7Y2FzZSIqIjowPT09TC5sZW5ndGgmJnJlcGVhdEVycih4KSxMLnB1c2goe3R5cGU6dS5SRVBFVElUSU9OLG1pbjowLG1heDoxLzAsdmFsdWU6TC5wb3AoKX0pO2JyZWFrO2RlZmF1bHQ6TC5wdXNoKHt0eXBlOnUuQ0hBUix2YWx1ZTppLmNoYXJDb2RlQXQoMCl9KX1yZXR1cm4gMCE9PUIubGVuZ3RoJiZhLmVycm9yKHMsIlVudGVybWluYXRlZCBncm91cCIpLEN9LHMuZXhwb3J0cy50eXBlcz11fSwyNzMwMTpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VVbmFyeShzKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIHMobyl9fX0sMjczNzQ6KHMsbyk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG8uZGVmYXVsdD1mdW5jdGlvbihzLG8saSl7aWYodm9pZCAwPT09cyl0aHJvdyBuZXcgRXJyb3IoJ1JlZHVjZXIgIicrbysnIiByZXR1cm5lZCB1bmRlZmluZWQgd2hlbiBoYW5kbGluZyAiJytpLnR5cGUrJyIgYWN0aW9uLiBUbyBpZ25vcmUgYW4gYWN0aW9uLCB5b3UgbXVzdCBleHBsaWNpdGx5IHJldHVybiB0aGUgcHJldmlvdXMgc3RhdGUuJyl9LHMuZXhwb3J0cz1vLmRlZmF1bHR9LDI3NTM0OihzLG8saSk9Pnt2YXIgYT1pKDcyNTUyKSx1PWkoNDAzNDYpO3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlSXNBcmd1bWVudHMocyl7cmV0dXJuIHUocykmJiJbb2JqZWN0IEFyZ3VtZW50c10iPT1hKHMpfX0sMjc4MTY6KHMsbyxpKT0+e3ZhciBhPWkoNTY2OTgpLHU9aSg5MDM5MiksXz1pKDkyODYxKS5CdWZmZXIsdz1bMTUxODUwMDI0OSwxODU5Nzc1MzkzLC0xODk0MDA3NTg4LC04OTk0OTc1MTRdLHg9bmV3IEFycmF5KDgwKTtmdW5jdGlvbiBTaGEoKXt0aGlzLmluaXQoKSx0aGlzLl93PXgsdS5jYWxsKHRoaXMsNjQsNTYpfWZ1bmN0aW9uIHJvdGwzMChzKXtyZXR1cm4gczw8MzB8cz4+PjJ9ZnVuY3Rpb24gZnQocyxvLGksYSl7cmV0dXJuIDA9PT1zP28maXx+byZhOjI9PT1zP28maXxvJmF8aSZhOm9eaV5hfWEoU2hhLHUpLFNoYS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OCx0aGlzLl9lPTMyODUzNzc1MjAsdGhpc30sU2hhLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHMpe2Zvcih2YXIgbyxpPXRoaXMuX3csYT0wfHRoaXMuX2EsdT0wfHRoaXMuX2IsXz0wfHRoaXMuX2MseD0wfHRoaXMuX2QsQz0wfHRoaXMuX2Usaj0wO2o8MTY7KytqKWlbal09cy5yZWFkSW50MzJCRSg0KmopO2Zvcig7ajw4MDsrK2opaVtqXT1pW2otM11eaVtqLThdXmlbai0xNF1eaVtqLTE2XTtmb3IodmFyIEw9MDtMPDgwOysrTCl7dmFyIEI9fn4oTC8yMCksJD0wfCgobz1hKTw8NXxvPj4+MjcpK2Z0KEIsdSxfLHgpK0MraVtMXSt3W0JdO0M9eCx4PV8sXz1yb3RsMzAodSksdT1hLGE9JH10aGlzLl9hPWErdGhpcy5fYXwwLHRoaXMuX2I9dSt0aGlzLl9ifDAsdGhpcy5fYz1fK3RoaXMuX2N8MCx0aGlzLl9kPXgrdGhpcy5fZHwwLHRoaXMuX2U9Qyt0aGlzLl9lfDB9LFNoYS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgcz1fLmFsbG9jVW5zYWZlKDIwKTtyZXR1cm4gcy53cml0ZUludDMyQkUoMHx0aGlzLl9hLDApLHMud3JpdGVJbnQzMkJFKDB8dGhpcy5fYiw0KSxzLndyaXRlSW50MzJCRSgwfHRoaXMuX2MsOCkscy53cml0ZUludDMyQkUoMHx0aGlzLl9kLDEyKSxzLndyaXRlSW50MzJCRSgwfHRoaXMuX2UsMTYpLHN9LHMuZXhwb3J0cz1TaGF9LDI4MDc3OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZUhhc0luKHMsbyl7cmV0dXJuIG51bGwhPXMmJm8gaW4gT2JqZWN0KHMpfX0sMjgzMDM6KHMsbyxpKT0+e3ZhciBhPWkoNTYxMTApKGkoOTMyNSksIldlYWtNYXAiKTtzLmV4cG9ydHM9YX0sMjgzMTE6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDkyMzYxKSx1PWkoODIxNTkpLF89aSg0MTUwNSksdz1hKGEuYmluZCk7cy5leHBvcnRzPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHUocyksdm9pZCAwPT09bz9zOl8/dyhzLG8pOmZ1bmN0aW9uKCl7cmV0dXJuIHMuYXBwbHkobyxhcmd1bWVudHMpfX19LDI4NTg2OihzLG8saSk9Pnt2YXIgYT1pKDU2NDQ5KSx1PWkoNDQzOTQpLF89L1wufFxbKD86W15bXF1dKnwoWyInXSkoPzooPyFcMSlbXlxcXXxcXC4pKj9cMSlcXS8sdz0vXlx3KiQvO3MuZXhwb3J0cz1mdW5jdGlvbiBpc0tleShzLG8pe2lmKGEocykpcmV0dXJuITE7dmFyIGk9dHlwZW9mIHM7cmV0dXJuISgibnVtYmVyIiE9aSYmInN5bWJvbCIhPWkmJiJib29sZWFuIiE9aSYmbnVsbCE9cyYmIXUocykpfHwody50ZXN0KHMpfHwhXy50ZXN0KHMpfHxudWxsIT1vJiZzIGluIE9iamVjdChvKSl9fSwyODc1NDoocyxvLGkpPT57dmFyIGE9aSgyNTE2MCk7cy5leHBvcnRzPWZ1bmN0aW9uIGNhc3RTbGljZShzLG8saSl7dmFyIHU9cy5sZW5ndGg7cmV0dXJuIGk9dm9pZCAwPT09aT91OmksIW8mJmk+PXU/czphKHMsbyxpKX19LDI4ODc5OihzLG8saSk9Pnt2YXIgYT1pKDc0MzM1KShPYmplY3QuZ2V0UHJvdG90eXBlT2YsT2JqZWN0KTtzLmV4cG9ydHM9YX0sMjkxNzI6KHMsbyxpKT0+e3ZhciBhPWkoNTg2MSksdT1pKDQwMzQ2KTtzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZUlzTWFwKHMpe3JldHVybiB1KHMpJiYiW29iamVjdCBNYXBdIj09YShzKX19LDI5MzY3OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg4MjE1OSksdT1pKDg3MTM2KTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvKXt2YXIgaT1zW29dO3JldHVybiB1KGkpP3ZvaWQgMDphKGkpfX0sMjk1Mzg6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDM5NDQ3KSx1PWkoMTkwNyksXz1pKDEzOTMwKSx3PWkoOTg4MjgpLHg9aSgyODc1KSxDPWkoODcxNzApLGo9aSgyMjU3NCksTD1pKDM5Mjk4KSxCPWkoMTY5NDYpLCQ9T2JqZWN0LmFzc2lnbixWPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxVPXUoW10uY29uY2F0KTtzLmV4cG9ydHM9ISR8fHcoKGZ1bmN0aW9uKCl7aWYoYSYmMSE9PSQoe2I6MX0sJChWKHt9LCJhIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtWKHRoaXMsImIiLHt2YWx1ZTozLGVudW1lcmFibGU6ITF9KX19KSx7YjoyfSkpLmIpcmV0dXJuITA7dmFyIHM9e30sbz17fSxpPVN5bWJvbCgiYXNzaWduIGRldGVjdGlvbiIpLHU9ImFiY2RlZmdoaWprbG1ub3BxcnN0IjtyZXR1cm4gc1tpXT03LHUuc3BsaXQoIiIpLmZvckVhY2goKGZ1bmN0aW9uKHMpe29bc109c30pKSw3IT09JCh7fSxzKVtpXXx8eCgkKHt9LG8pKS5qb2luKCIiKSE9PXV9KSk/ZnVuY3Rpb24gYXNzaWduKHMsbyl7Zm9yKHZhciBpPUwocyksdT1hcmd1bWVudHMubGVuZ3RoLHc9MSwkPUMuZixWPWouZjt1Pnc7KWZvcih2YXIgeixZPUIoYXJndW1lbnRzW3crK10pLFo9JD9VKHgoWSksJChZKSk6eChZKSxlZT1aLmxlbmd0aCxpZT0wO2VlPmllOyl6PVpbaWUrK10sYSYmIV8oVixZLHopfHwoaVt6XT1ZW3pdKTtyZXR1cm4gaX06JH0sMjk4MTc6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBzdGFja0hhcyhzKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMocyl9fSwyOTg0NDoocyxvKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBmKHMsbyl7dmFyIGk9cy5sZW5ndGg7cy5wdXNoKG8pO2U6Zm9yKDswPGk7KXt2YXIgYT1pLTE+Pj4xLHU9c1thXTtpZighKDA8Zyh1LG8pKSlicmVhayBlO3NbYV09byxzW2ldPXUsaT1hfX1mdW5jdGlvbiBoKHMpe3JldHVybiAwPT09cy5sZW5ndGg/bnVsbDpzWzBdfWZ1bmN0aW9uIGsocyl7aWYoMD09PXMubGVuZ3RoKXJldHVybiBudWxsO3ZhciBvPXNbMF0saT1zLnBvcCgpO2lmKGkhPT1vKXtzWzBdPWk7ZTpmb3IodmFyIGE9MCx1PXMubGVuZ3RoLF89dT4+PjE7YTxfOyl7dmFyIHc9MiooYSsxKS0xLHg9c1t3XSxDPXcrMSxqPXNbQ107aWYoMD5nKHgsaSkpQzx1JiYwPmcoaix4KT8oc1thXT1qLHNbQ109aSxhPUMpOihzW2FdPXgsc1t3XT1pLGE9dyk7ZWxzZXtpZighKEM8dSYmMD5nKGosaSkpKWJyZWFrIGU7c1thXT1qLHNbQ109aSxhPUN9fX1yZXR1cm4gb31mdW5jdGlvbiBnKHMsbyl7dmFyIGk9cy5zb3J0SW5kZXgtby5zb3J0SW5kZXg7cmV0dXJuIDAhPT1pP2k6cy5pZC1vLmlkfWlmKCJvYmplY3QiPT10eXBlb2YgcGVyZm9ybWFuY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBwZXJmb3JtYW5jZS5ub3cpe3ZhciBpPXBlcmZvcm1hbmNlO28udW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIGkubm93KCl9fWVsc2V7dmFyIGE9RGF0ZSx1PWEubm93KCk7by51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gYS5ub3coKS11fX12YXIgXz1bXSx3PVtdLHg9MSxDPW51bGwsaj0zLEw9ITEsQj0hMSwkPSExLFY9ImZ1bmN0aW9uIj09dHlwZW9mIHNldFRpbWVvdXQ/c2V0VGltZW91dDpudWxsLFU9ImZ1bmN0aW9uIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6bnVsbCx6PSJ1bmRlZmluZWQiIT10eXBlb2Ygc2V0SW1tZWRpYXRlP3NldEltbWVkaWF0ZTpudWxsO2Z1bmN0aW9uIEcocyl7Zm9yKHZhciBvPWgodyk7bnVsbCE9PW87KXtpZihudWxsPT09by5jYWxsYmFjaylrKHcpO2Vsc2V7aWYoIShvLnN0YXJ0VGltZTw9cykpYnJlYWs7ayh3KSxvLnNvcnRJbmRleD1vLmV4cGlyYXRpb25UaW1lLGYoXyxvKX1vPWgodyl9fWZ1bmN0aW9uIEgocyl7aWYoJD0hMSxHKHMpLCFCKWlmKG51bGwhPT1oKF8pKUI9ITAsSShKKTtlbHNle3ZhciBvPWgodyk7bnVsbCE9PW8mJksoSCxvLnN0YXJ0VGltZS1zKX19ZnVuY3Rpb24gSihzLGkpe0I9ITEsJCYmKCQ9ITEsVShpZSksaWU9LTEpLEw9ITA7dmFyIGE9ajt0cnl7Zm9yKEcoaSksQz1oKF8pO251bGwhPT1DJiYoIShDLmV4cGlyYXRpb25UaW1lPmkpfHxzJiYhTSgpKTspe3ZhciB1PUMuY2FsbGJhY2s7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHUpe0MuY2FsbGJhY2s9bnVsbCxqPUMucHJpb3JpdHlMZXZlbDt2YXIgeD11KEMuZXhwaXJhdGlvblRpbWU8PWkpO2k9by51bnN0YWJsZV9ub3coKSwiZnVuY3Rpb24iPT10eXBlb2YgeD9DLmNhbGxiYWNrPXg6Qz09PWgoXykmJmsoXyksRyhpKX1lbHNlIGsoXyk7Qz1oKF8pfWlmKG51bGwhPT1DKXZhciBWPSEwO2Vsc2V7dmFyIHo9aCh3KTtudWxsIT09eiYmSyhILHouc3RhcnRUaW1lLWkpLFY9ITF9cmV0dXJuIFZ9ZmluYWxseXtDPW51bGwsaj1hLEw9ITF9fSJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yJiZ2b2lkIDAhPT1uYXZpZ2F0b3Iuc2NoZWR1bGluZyYmdm9pZCAwIT09bmF2aWdhdG9yLnNjaGVkdWxpbmcuaXNJbnB1dFBlbmRpbmcmJm5hdmlnYXRvci5zY2hlZHVsaW5nLmlzSW5wdXRQZW5kaW5nLmJpbmQobmF2aWdhdG9yLnNjaGVkdWxpbmcpO3ZhciBZLFo9ITEsZWU9bnVsbCxpZT0tMSxhZT01LGNlPS0xO2Z1bmN0aW9uIE0oKXtyZXR1cm4hKG8udW5zdGFibGVfbm93KCktY2U8YWUpfWZ1bmN0aW9uIFIoKXtpZihudWxsIT09ZWUpe3ZhciBzPW8udW5zdGFibGVfbm93KCk7Y2U9czt2YXIgaT0hMDt0cnl7aT1lZSghMCxzKX1maW5hbGx5e2k/WSgpOihaPSExLGVlPW51bGwpfX1lbHNlIFo9ITF9aWYoImZ1bmN0aW9uIj09dHlwZW9mIHopWT1mdW5jdGlvbigpe3ooUil9O2Vsc2UgaWYoInVuZGVmaW5lZCIhPXR5cGVvZiBNZXNzYWdlQ2hhbm5lbCl7dmFyIGxlPW5ldyBNZXNzYWdlQ2hhbm5lbCxwZT1sZS5wb3J0MjtsZS5wb3J0MS5vbm1lc3NhZ2U9UixZPWZ1bmN0aW9uKCl7cGUucG9zdE1lc3NhZ2UobnVsbCl9fWVsc2UgWT1mdW5jdGlvbigpe1YoUiwwKX07ZnVuY3Rpb24gSShzKXtlZT1zLFp8fChaPSEwLFkoKSl9ZnVuY3Rpb24gSyhzLGkpe2llPVYoKGZ1bmN0aW9uKCl7cyhvLnVuc3RhYmxlX25vdygpKX0pLGkpfW8udW5zdGFibGVfSWRsZVByaW9yaXR5PTUsby51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eT0xLG8udW5zdGFibGVfTG93UHJpb3JpdHk9NCxvLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5PTMsby51bnN0YWJsZV9Qcm9maWxpbmc9bnVsbCxvLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5PTIsby51bnN0YWJsZV9jYW5jZWxDYWxsYmFjaz1mdW5jdGlvbihzKXtzLmNhbGxiYWNrPW51bGx9LG8udW5zdGFibGVfY29udGludWVFeGVjdXRpb249ZnVuY3Rpb24oKXtCfHxMfHwoQj0hMCxJKEopKX0sby51bnN0YWJsZV9mb3JjZUZyYW1lUmF0ZT1mdW5jdGlvbihzKXswPnN8fDEyNTxzP2NvbnNvbGUuZXJyb3IoImZvcmNlRnJhbWVSYXRlIHRha2VzIGEgcG9zaXRpdmUgaW50IGJldHdlZW4gMCBhbmQgMTI1LCBmb3JjaW5nIGZyYW1lIHJhdGVzIGhpZ2hlciB0aGFuIDEyNSBmcHMgaXMgbm90IHN1cHBvcnRlZCIpOmFlPTA8cz9NYXRoLmZsb29yKDFlMy9zKTo1fSxvLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsPWZ1bmN0aW9uKCl7cmV0dXJuIGp9LG8udW5zdGFibGVfZ2V0Rmlyc3RDYWxsYmFja05vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gaChfKX0sby51bnN0YWJsZV9uZXh0PWZ1bmN0aW9uKHMpe3N3aXRjaChqKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzp2YXIgbz0zO2JyZWFrO2RlZmF1bHQ6bz1qfXZhciBpPWo7aj1vO3RyeXtyZXR1cm4gcygpfWZpbmFsbHl7aj1pfX0sby51bnN0YWJsZV9wYXVzZUV4ZWN1dGlvbj1mdW5jdGlvbigpe30sby51bnN0YWJsZV9yZXF1ZXN0UGFpbnQ9ZnVuY3Rpb24oKXt9LG8udW5zdGFibGVfcnVuV2l0aFByaW9yaXR5PWZ1bmN0aW9uKHMsbyl7c3dpdGNoKHMpe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOmNhc2UgNDpjYXNlIDU6YnJlYWs7ZGVmYXVsdDpzPTN9dmFyIGk9ajtqPXM7dHJ5e3JldHVybiBvKCl9ZmluYWxseXtqPWl9fSxvLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2s9ZnVuY3Rpb24ocyxpLGEpe3ZhciB1PW8udW5zdGFibGVfbm93KCk7c3dpdGNoKCJvYmplY3QiPT10eXBlb2YgYSYmbnVsbCE9PWE/YT0ibnVtYmVyIj09dHlwZW9mKGE9YS5kZWxheSkmJjA8YT91K2E6dTphPXUscyl7Y2FzZSAxOnZhciBDPS0xO2JyZWFrO2Nhc2UgMjpDPTI1MDticmVhaztjYXNlIDU6Qz0xMDczNzQxODIzO2JyZWFrO2Nhc2UgNDpDPTFlNDticmVhaztkZWZhdWx0OkM9NWUzfXJldHVybiBzPXtpZDp4KyssY2FsbGJhY2s6aSxwcmlvcml0eUxldmVsOnMsc3RhcnRUaW1lOmEsZXhwaXJhdGlvblRpbWU6Qz1hK0Msc29ydEluZGV4Oi0xfSxhPnU/KHMuc29ydEluZGV4PWEsZih3LHMpLG51bGw9PT1oKF8pJiZzPT09aCh3KSYmKCQ/KFUoaWUpLGllPS0xKTokPSEwLEsoSCxhLXUpKSk6KHMuc29ydEluZGV4PUMsZihfLHMpLEJ8fEx8fChCPSEwLEkoSikpKSxzfSxvLnVuc3RhYmxlX3Nob3VsZFlpZWxkPU0sby51bnN0YWJsZV93cmFwQ2FsbGJhY2s9ZnVuY3Rpb24ocyl7dmFyIG89ajtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgaT1qO2o9bzt0cnl7cmV0dXJuIHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZpbmFsbHl7aj1pfX19fSwzMDI5NDpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIGlzTGVuZ3RoKHMpe3JldHVybiJudW1iZXIiPT10eXBlb2YgcyYmcz4tMSYmcyUxPT0wJiZzPD05MDA3MTk5MjU0NzQwOTkxfX0sMzAzNjE6cz0+e3ZhciBvPS9eKD86MHxbMS05XVxkKikkLztzLmV4cG9ydHM9ZnVuY3Rpb24gaXNJbmRleChzLGkpe3ZhciBhPXR5cGVvZiBzO3JldHVybiEhKGk9bnVsbD09aT85MDA3MTk5MjU0NzQwOTkxOmkpJiYoIm51bWJlciI9PWF8fCJzeW1ib2wiIT1hJiZvLnRlc3QocykpJiZzPi0xJiZzJTE9PTAmJnM8aX19LDMwNjQxOihzLG8saSk9Pnt2YXIgYT1pKDg2NjQ5KSx1PWkoOTU5NTApO3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlRm9yT3duKHMsbyl7cmV0dXJuIHMmJmEocyxvLHUpfX0sMzA3NTY6KHMsbyxpKT0+e3ZhciBhPWkoMjM4MDUpO3MuZXhwb3J0cz1mdW5jdGlvbiBpc1N0cmljdENvbXBhcmFibGUocyl7cmV0dXJuIHM9PXMmJiFhKHMpfX0sMzA5ODA6KHMsbyxpKT0+e3ZhciBhPWkoMzkzNDQpLHU9aSg5NDAzMyk7ZnVuY3Rpb24gTGF6eVdyYXBwZXIocyl7dGhpcy5fX3dyYXBwZWRfXz1zLHRoaXMuX19hY3Rpb25zX189W10sdGhpcy5fX2Rpcl9fPTEsdGhpcy5fX2ZpbHRlcmVkX189ITEsdGhpcy5fX2l0ZXJhdGVlc19fPVtdLHRoaXMuX190YWtlQ291bnRfXz00Mjk0OTY3Mjk1LHRoaXMuX192aWV3c19fPVtdfUxhenlXcmFwcGVyLnByb3RvdHlwZT1hKHUucHJvdG90eXBlKSxMYXp5V3JhcHBlci5wcm90b3R5cGUuY29uc3RydWN0b3I9TGF6eVdyYXBwZXIscy5leHBvcnRzPUxhenlXcmFwcGVyfSwzMTE3NToocyxvLGkpPT57dmFyIGE9aSgyNjAyNSk7cy5leHBvcnRzPWZ1bmN0aW9uIGxpc3RDYWNoZVNldChzLG8pe3ZhciBpPXRoaXMuX19kYXRhX18sdT1hKGkscyk7cmV0dXJuIHU8MD8oKyt0aGlzLnNpemUsaS5wdXNoKFtzLG9dKSk6aVt1XVsxXT1vLHRoaXN9fSwzMTM4MDpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIHNldENhY2hlQWRkKHMpe3JldHVybiB0aGlzLl9fZGF0YV9fLnNldChzLCJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIiksdGhpc319LDMxNDk5OnM9Pnt2YXIgbz17IiYiOiImYW1wOyIsJyInOiImcXVvdDsiLCInIjoiJmFwb3M7IiwiPCI6IiZsdDsiLCI+IjoiJmd0OyJ9O3MuZXhwb3J0cz1mdW5jdGlvbiBlc2NhcGVGb3JYTUwocyl7cmV0dXJuIHMmJnMucmVwbGFjZT9zLnJlcGxhY2UoLyhbJiI8PiddKS9nLChmdW5jdGlvbihzLGkpe3JldHVybiBvW2ldfSkpOnN9fSwzMTc2OToocyxvLGkpPT57dmFyIGE9aSg1NjQ0OSksdT1pKDI4NTg2KSxfPWkoNjE4MDIpLHc9aSgxMzIyMik7cy5leHBvcnRzPWZ1bmN0aW9uIGNhc3RQYXRoKHMsbyl7cmV0dXJuIGEocyk/czp1KHMsbyk/W3NdOl8odyhzKSl9fSwzMTgwMDpzPT57dmFyIG89L1xzLztzLmV4cG9ydHM9ZnVuY3Rpb24gdHJpbW1lZEVuZEluZGV4KHMpe2Zvcih2YXIgaT1zLmxlbmd0aDtpLS0mJm8udGVzdChzLmNoYXJBdChpKSk7KTtyZXR1cm4gaX19LDMyMDk2OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg5MDE2MCk7cy5leHBvcnRzPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHZvaWQgMD09PXM/YXJndW1lbnRzLmxlbmd0aDwyPyIiOm86YShzKX19LDMyNTY3OihzLG8saSk9PnsidXNlIHN0cmljdCI7aSg3OTMwNyk7dmFyIGE9aSg2MTc0Nyk7cy5leHBvcnRzPWEoIkZ1bmN0aW9uIiwiYmluZCIpfSwzMjYyOToocyxvLGkpPT57dmFyIGE9aSg5OTk5KTtzLmV4cG9ydHM9ZnVuY3Rpb24gY2xvbmUocyl7cmV0dXJuIGEocyw0KX19LDMyODA0OihzLG8saSk9Pnt2YXIgYT1pKDU2MTEwKShpKDkzMjUpLCJQcm9taXNlIik7cy5leHBvcnRzPWF9LDMyODI3OihzLG8saSk9Pnt2YXIgYT1pKDU2Njk4KSx1PWkoODI4OTApLF89aSg5MDM5Miksdz1pKDkyODYxKS5CdWZmZXIseD1uZXcgQXJyYXkoMTYwKTtmdW5jdGlvbiBTaGEzODQoKXt0aGlzLmluaXQoKSx0aGlzLl93PXgsXy5jYWxsKHRoaXMsMTI4LDExMil9YShTaGEzODQsdSksU2hhMzg0LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FoPTM0MTgwNzAzNjUsdGhpcy5fYmg9MTY1NDI3MDI1MCx0aGlzLl9jaD0yNDM4NTI5MzcwLHRoaXMuX2RoPTM1NTQ2MjM2MCx0aGlzLl9laD0xNzMxNDA1NDE1LHRoaXMuX2ZoPTIzOTQxODAyMzEsdGhpcy5fZ2g9MzY3NTAwODUyNSx0aGlzLl9oaD0xMjAzMDYyODEzLHRoaXMuX2FsPTMyMzgzNzEwMzIsdGhpcy5fYmw9OTE0MTUwNjYzLHRoaXMuX2NsPTgxMjcwMjk5OSx0aGlzLl9kbD00MTQ0OTEyNjk3LHRoaXMuX2VsPTQyOTA3NzU4NTcsdGhpcy5fZmw9MTc1MDYwMzAyNSx0aGlzLl9nbD0xNjk0MDc2ODM5LHRoaXMuX2hsPTMyMDQwNzU0MjgsdGhpc30sU2hhMzg0LnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBzPXcuYWxsb2NVbnNhZmUoNDgpO2Z1bmN0aW9uIHdyaXRlSW50NjRCRShvLGksYSl7cy53cml0ZUludDMyQkUobyxhKSxzLndyaXRlSW50MzJCRShpLGErNCl9cmV0dXJuIHdyaXRlSW50NjRCRSh0aGlzLl9haCx0aGlzLl9hbCwwKSx3cml0ZUludDY0QkUodGhpcy5fYmgsdGhpcy5fYmwsOCksd3JpdGVJbnQ2NEJFKHRoaXMuX2NoLHRoaXMuX2NsLDE2KSx3cml0ZUludDY0QkUodGhpcy5fZGgsdGhpcy5fZGwsMjQpLHdyaXRlSW50NjRCRSh0aGlzLl9laCx0aGlzLl9lbCwzMiksd3JpdGVJbnQ2NEJFKHRoaXMuX2ZoLHRoaXMuX2ZsLDQwKSxzfSxzLmV4cG9ydHM9U2hhMzg0fSwzMjg2NToocyxvLGkpPT57dmFyIGE9aSgxOTU3MCksdT1pKDUxODExKShhKTtzLmV4cG9ydHM9dX0sMzM4NTU6KHMsbyxpKT0+e3ZhciBhPWkoOTk5OSksdT1pKDE1Mzg5KTtzLmV4cG9ydHM9ZnVuY3Rpb24gaXRlcmF0ZWUocyl7cmV0dXJuIHUoImZ1bmN0aW9uIj09dHlwZW9mIHM/czphKHMsMSkpfX0sMzQwMzU6KHMsbyxpKT0+e2NvbnN0IGE9aSgzMTEwKSx1PWkoODY4MDQpO28uZyQ9YSxvLktleVZhbHVlUGFpcj1pKDU1OTczKSxvLkc2PXUuQXJyYXlTbGljZSxvLm90PXUuT2JqZWN0U2xpY2Usby5IZz11LkVsZW1lbnQsby5PbT11LlN0cmluZ0VsZW1lbnQsby5rVD11Lk51bWJlckVsZW1lbnQsby5iZD11LkJvb2xlYW5FbGVtZW50LG8uT3M9dS5OdWxsRWxlbWVudCxvLndFPXUuQXJyYXlFbGVtZW50LG8uU2g9dS5PYmplY3RFbGVtZW50LG8uUHI9dS5NZW1iZXJFbGVtZW50LG8uc0k9dS5SZWZFbGVtZW50LG8uRnQ9dS5MaW5rRWxlbWVudCxvLmU9dS5yZWZyYWN0LGkoODUxMDUpLGkoNzUxNDcpfSwzNDA4NDoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNjIyNTApLHU9aSg0NjI4NSksXz1pKDc5MTkyKTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvLGkpe3ZhciB3LHg7cmV0dXJuIF8mJmEodz1vLmNvbnN0cnVjdG9yKSYmdyE9PWkmJnUoeD13LnByb3RvdHlwZSkmJnghPT1pLnByb3RvdHlwZSYmXyhzLHgpLHN9fSwzNDg0MDoocyxvLGkpPT57dmFyIGE9Im9iamVjdCI9PXR5cGVvZiBpLmcmJmkuZyYmaS5nLk9iamVjdD09PU9iamVjdCYmaS5nO3MuZXhwb3J0cz1hfSwzNDg0OToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNjU0ODIpLHU9TWF0aC5tYXgsXz1NYXRoLm1pbjtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvKXt2YXIgaT1hKHMpO3JldHVybiBpPDA/dShpK28sMCk6XyhpLG8pfX0sMzQ5MzI6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBhcnJheU1hcChzLG8pe2Zvcih2YXIgaT0tMSxhPW51bGw9PXM/MDpzLmxlbmd0aCx1PUFycmF5KGEpOysraTxhOyl1W2ldPW8oc1tpXSxpLHMpO3JldHVybiB1fX0sMzUzNDQ6cz0+e2Z1bmN0aW9uIGNvbmNhdCguLi5zKXtyZXR1cm4gcy5tYXAoKHM9PmZ1bmN0aW9uIHNvdXJjZShzKXtyZXR1cm4gcz8ic3RyaW5nIj09dHlwZW9mIHM/czpzLnNvdXJjZTpudWxsfShzKSkpLmpvaW4oIiIpfXMuZXhwb3J0cz1mdW5jdGlvbiBiYXNoKHMpe2NvbnN0IG89e30saT17YmVnaW46L1wkXHsvLGVuZDovXH0vLGNvbnRhaW5zOlsic2VsZiIse2JlZ2luOi86LS8sY29udGFpbnM6W29dfV19O09iamVjdC5hc3NpZ24obyx7Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsdmFyaWFudHM6W3tiZWdpbjpjb25jYXQoL1wkW1x3XGQjQF1bXHdcZF9dKi8sIig/IVtcXHdcXGRdKSg/IVskXSkiKX0saV19KTtjb25zdCBhPXtjbGFzc05hbWU6InN1YnN0IixiZWdpbjovXCRcKC8sZW5kOi9cKS8sY29udGFpbnM6W3MuQkFDS1NMQVNIX0VTQ0FQRV19LHU9e2JlZ2luOi88PC0/XHMqKD89XHcrKS8sc3RhcnRzOntjb250YWluczpbcy5FTkRfU0FNRV9BU19CRUdJTih7YmVnaW46LyhcdyspLyxlbmQ6LyhcdyspLyxjbGFzc05hbWU6InN0cmluZyJ9KV19fSxfPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46LyIvLGVuZDovIi8sY29udGFpbnM6W3MuQkFDS1NMQVNIX0VTQ0FQRSxvLGFdfTthLmNvbnRhaW5zLnB1c2goXyk7Y29uc3Qgdz17YmVnaW46L1wkXChcKC8sZW5kOi9cKVwpLyxjb250YWluczpbe2JlZ2luOi9cZCsjWzAtOWEtZl0rLyxjbGFzc05hbWU6Im51bWJlciJ9LHMuTlVNQkVSX01PREUsb119LHg9cy5TSEVCQU5HKHtiaW5hcnk6YCgke1siZmlzaCIsImJhc2giLCJ6c2giLCJzaCIsImNzaCIsImtzaCIsInRjc2giLCJkYXNoIiwic2NzaCJdLmpvaW4oInwiKX0pYCxyZWxldmFuY2U6MTB9KSxDPXtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbjovXHdbXHdcZF9dKlxzKlwoXHMqXClccypcey8scmV0dXJuQmVnaW46ITAsY29udGFpbnM6W3MuaW5oZXJpdChzLlRJVExFX01PREUse2JlZ2luOi9cd1tcd1xkX10qL30pXSxyZWxldmFuY2U6MH07cmV0dXJue25hbWU6IkJhc2giLGFsaWFzZXM6WyJzaCIsInpzaCJdLGtleXdvcmRzOnskcGF0dGVybjovXGJbYS16Ll8tXStcYi8sa2V5d29yZDoiaWYgdGhlbiBlbHNlIGVsaWYgZmkgZm9yIHdoaWxlIGluIGRvIGRvbmUgY2FzZSBlc2FjIGZ1bmN0aW9uIixsaXRlcmFsOiJ0cnVlIGZhbHNlIixidWlsdF9pbjoiYnJlYWsgY2QgY29udGludWUgZXZhbCBleGVjIGV4aXQgZXhwb3J0IGdldG9wdHMgaGFzaCBwd2QgcmVhZG9ubHkgcmV0dXJuIHNoaWZ0IHRlc3QgdGltZXMgdHJhcCB1bWFzayB1bnNldCBhbGlhcyBiaW5kIGJ1aWx0aW4gY2FsbGVyIGNvbW1hbmQgZGVjbGFyZSBlY2hvIGVuYWJsZSBoZWxwIGxldCBsb2NhbCBsb2dvdXQgbWFwZmlsZSBwcmludGYgcmVhZCByZWFkYXJyYXkgc291cmNlIHR5cGUgdHlwZXNldCB1bGltaXQgdW5hbGlhcyBzZXQgc2hvcHQgYXV0b2xvYWQgYmcgYmluZGtleSBieWUgY2FwIGNoZGlyIGNsb25lIGNvbXBhcmd1bWVudHMgY29tcGNhbGwgY29tcGN0bCBjb21wZGVzY3JpYmUgY29tcGZpbGVzIGNvbXBncm91cHMgY29tcHF1b3RlIGNvbXB0YWdzIGNvbXB0cnkgY29tcHZhbHVlcyBkaXJzIGRpc2FibGUgZGlzb3duIGVjaG90YyBlY2hvdGkgZW11bGF0ZSBmYyBmZyBmbG9hdCBmdW5jdGlvbnMgZ2V0Y2FwIGdldGxuIGhpc3RvcnkgaW50ZWdlciBqb2JzIGtpbGwgbGltaXQgbG9nIG5vZ2xvYiBwb3BkIHByaW50IHB1c2hkIHB1c2hsbiByZWhhc2ggc2NoZWQgc2V0Y2FwIHNldG9wdCBzdGF0IHN1c3BlbmQgdHR5Y3RsIHVuZnVuY3Rpb24gdW5oYXNoIHVubGltaXQgdW5zZXRvcHQgdmFyZWQgd2FpdCB3aGVuY2Ugd2hlcmUgd2hpY2ggemNvbXBpbGUgemZvcm1hdCB6ZnRwIHpsZSB6bW9kbG9hZCB6cGFyc2VvcHRzIHpwcm9mIHpwdHkgenJlZ2V4cGFyc2UgenNvY2tldCB6c3R5bGUgenRjcCJ9LGNvbnRhaW5zOlt4LHMuU0hFQkFORygpLEMsdyxzLkhBU0hfQ09NTUVOVF9NT0RFLHUsXyx7Y2xhc3NOYW1lOiIiLGJlZ2luOi9cXCIvfSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi8nLyxlbmQ6LycvfSxvXX19fSwzNTUyOToocyxvLGkpPT57dmFyIGE9aSgzOTM0NCksdT1pKDI4ODc5KSxfPWkoNTU1MjcpO3MuZXhwb3J0cz1mdW5jdGlvbiBpbml0Q2xvbmVPYmplY3Qocyl7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHMuY29uc3RydWN0b3J8fF8ocyk/e306YSh1KHMpKX19LDM1NzQ5OihzLG8saSk9Pnt2YXIgYT1pKDgxMDQyKTtzLmV4cG9ydHM9ZnVuY3Rpb24gaGFzaFNldChzLG8pe3ZhciBpPXRoaXMuX19kYXRhX187cmV0dXJuIHRoaXMuc2l6ZSs9dGhpcy5oYXMocyk/MDoxLGlbc109YSYmdm9pZCAwPT09bz8iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI6byx0aGlzfX0sMzU5NzA6KHMsbyxpKT0+e3ZhciBhPWkoODMxMjApO3MuZXhwb3J0cz1mdW5jdGlvbiBmbGF0dGVuKHMpe3JldHVybihudWxsPT1zPzA6cy5sZW5ndGgpP2EocywxKTpbXX19LDM2MTI4OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg3Mzc2KSx1PWkoNDU5NTEpLF89aSgyNTMyKSx3PSJfX2NvcmUtanNfc2hhcmVkX18iLHg9cy5leHBvcnRzPXVbd118fF8odyx7fSk7KHgudmVyc2lvbnN8fCh4LnZlcnNpb25zPVtdKSkucHVzaCh7dmVyc2lvbjoiMy40MC4wIixtb2RlOmE/InB1cmUiOiJnbG9iYWwiLGNvcHlyaWdodDoiwqkgMjAxNC0yMDI1IERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpIixsaWNlbnNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9ibG9iL3YzLjQwLjAvTElDRU5TRSIsc291cmNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcyJ9KX0sMzYzMDY6cz0+e3ZhciBvPSJfX2xvZGFzaF9wbGFjZWhvbGRlcl9fIjtzLmV4cG9ydHM9ZnVuY3Rpb24gcmVwbGFjZUhvbGRlcnMocyxpKXtmb3IodmFyIGE9LTEsdT1zLmxlbmd0aCxfPTAsdz1bXTsrK2E8dTspe3ZhciB4PXNbYV07eCE9PWkmJnghPT1vfHwoc1thXT1vLHdbXysrXT1hKX1yZXR1cm4gd319LDM2MzcxOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgxMTA5MSksdT1pKDg1NTgyKSxfPWkoNzYwMjQpLHc9aSg5ODgyOCkseD1pKDE5MzU4KSxDPSJBZ2dyZWdhdGVFcnJvciIsaj11KEMpLEw9IXcoKGZ1bmN0aW9uKCl7cmV0dXJuIDEhPT1qKFsxXSkuZXJyb3JzWzBdfSkpJiZ3KChmdW5jdGlvbigpe3JldHVybiA3IT09aihbMV0sQyx7Y2F1c2U6N30pLmNhdXNlfSkpO2Eoe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxhcml0eToyLGZvcmNlZDpMfSx7QWdncmVnYXRlRXJyb3I6eChDLChmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24gQWdncmVnYXRlRXJyb3IobyxpKXtyZXR1cm4gXyhzLHRoaXMsYXJndW1lbnRzKX19KSxMLCEwKX0pfSwzNjYyNDoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNDYyODUpLHU9U3RyaW5nLF89VHlwZUVycm9yO3MuZXhwb3J0cz1mdW5jdGlvbihzKXtpZihhKHMpKXJldHVybiBzO3Rocm93IG5ldyBfKHUocykrIiBpcyBub3QgYW4gb2JqZWN0Iil9fSwzNjgwMDoocyxvLGkpPT57dmFyIGE9aSg3NTI4OCksdT1pKDY0ODk0KSxfPWkoMzAzNjEpLHc9aSgyMzgwNSk7cy5leHBvcnRzPWZ1bmN0aW9uIGlzSXRlcmF0ZWVDYWxsKHMsbyxpKXtpZighdyhpKSlyZXR1cm4hMTt2YXIgeD10eXBlb2YgbztyZXR1cm4hISgibnVtYmVyIj09eD91KGkpJiZfKG8saS5sZW5ndGgpOiJzdHJpbmciPT14JiZvIGluIGkpJiZhKGlbb10scyl9fSwzNjgzMzoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMzk0NDcpLHU9aSg0OTcyNCksXz1GdW5jdGlvbi5wcm90b3R5cGUsdz1hJiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLHg9dShfLCJuYW1lIiksQz14JiYic29tZXRoaW5nIj09PWZ1bmN0aW9uIHNvbWV0aGluZygpe30ubmFtZSxqPXgmJighYXx8YSYmdyhfLCJuYW1lIikuY29uZmlndXJhYmxlKTtzLmV4cG9ydHM9e0VYSVNUUzp4LFBST1BFUjpDLENPTkZJR1VSQUJMRTpqfX0sMzcwMDc6cz0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbyxpPSJvYmplY3QiPT10eXBlb2YgUmVmbGVjdD9SZWZsZWN0Om51bGwsYT1pJiYiZnVuY3Rpb24iPT10eXBlb2YgaS5hcHBseT9pLmFwcGx5OmZ1bmN0aW9uIFJlZmxlY3RBcHBseShzLG8saSl7cmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKHMsbyxpKX07bz1pJiYiZnVuY3Rpb24iPT10eXBlb2YgaS5vd25LZXlzP2kub3duS2V5czpPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2Z1bmN0aW9uIFJlZmxlY3RPd25LZXlzKHMpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhzKS5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKSl9OmZ1bmN0aW9uIFJlZmxlY3RPd25LZXlzKHMpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhzKX07dmFyIHU9TnVtYmVyLmlzTmFOfHxmdW5jdGlvbiBOdW1iZXJJc05hTihzKXtyZXR1cm4gcyE9c307ZnVuY3Rpb24gRXZlbnRFbWl0dGVyKCl7RXZlbnRFbWl0dGVyLmluaXQuY2FsbCh0aGlzKX1zLmV4cG9ydHM9RXZlbnRFbWl0dGVyLHMuZXhwb3J0cy5vbmNlPWZ1bmN0aW9uIG9uY2UocyxvKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKGksYSl7ZnVuY3Rpb24gZXJyb3JMaXN0ZW5lcihpKXtzLnJlbW92ZUxpc3RlbmVyKG8scmVzb2x2ZXIpLGEoaSl9ZnVuY3Rpb24gcmVzb2x2ZXIoKXsiZnVuY3Rpb24iPT10eXBlb2Ygcy5yZW1vdmVMaXN0ZW5lciYmcy5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLGVycm9yTGlzdGVuZXIpLGkoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKX1ldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIocyxvLHJlc29sdmVyLHtvbmNlOiEwfSksImVycm9yIiE9PW8mJmZ1bmN0aW9uIGFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyKHMsbyxpKXsiZnVuY3Rpb24iPT10eXBlb2Ygcy5vbiYmZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKHMsImVycm9yIixvLGkpfShzLGVycm9yTGlzdGVuZXIse29uY2U6ITB9KX0pKX0sRXZlbnRFbWl0dGVyLkV2ZW50RW1pdHRlcj1FdmVudEVtaXR0ZXIsRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fZXZlbnRzPXZvaWQgMCxFdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHNDb3VudD0wLEV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycz12b2lkIDA7dmFyIF89MTA7ZnVuY3Rpb24gY2hlY2tMaXN0ZW5lcihzKXtpZigiZnVuY3Rpb24iIT10eXBlb2Ygcyl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgImxpc3RlbmVyIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24uIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2Ygcyl9ZnVuY3Rpb24gX2dldE1heExpc3RlbmVycyhzKXtyZXR1cm4gdm9pZCAwPT09cy5fbWF4TGlzdGVuZXJzP0V2ZW50RW1pdHRlci5kZWZhdWx0TWF4TGlzdGVuZXJzOnMuX21heExpc3RlbmVyc31mdW5jdGlvbiBfYWRkTGlzdGVuZXIocyxvLGksYSl7dmFyIHUsXyx3O2lmKGNoZWNrTGlzdGVuZXIoaSksdm9pZCAwPT09KF89cy5fZXZlbnRzKT8oXz1zLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSxzLl9ldmVudHNDb3VudD0wKToodm9pZCAwIT09Xy5uZXdMaXN0ZW5lciYmKHMuZW1pdCgibmV3TGlzdGVuZXIiLG8saS5saXN0ZW5lcj9pLmxpc3RlbmVyOmkpLF89cy5fZXZlbnRzKSx3PV9bb10pLHZvaWQgMD09PXcpdz1fW29dPWksKytzLl9ldmVudHNDb3VudDtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiB3P3c9X1tvXT1hP1tpLHddOlt3LGldOmE/dy51bnNoaWZ0KGkpOncucHVzaChpKSwodT1fZ2V0TWF4TGlzdGVuZXJzKHMpKT4wJiZ3Lmxlbmd0aD51JiYhdy53YXJuZWQpe3cud2FybmVkPSEwO3ZhciB4PW5ldyBFcnJvcigiUG9zc2libGUgRXZlbnRFbWl0dGVyIG1lbW9yeSBsZWFrIGRldGVjdGVkLiAiK3cubGVuZ3RoKyIgIitTdHJpbmcobykrIiBsaXN0ZW5lcnMgYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvIGluY3JlYXNlIGxpbWl0Iik7eC5uYW1lPSJNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmciLHguZW1pdHRlcj1zLHgudHlwZT1vLHguY291bnQ9dy5sZW5ndGgsZnVuY3Rpb24gUHJvY2Vzc0VtaXRXYXJuaW5nKHMpe2NvbnNvbGUmJmNvbnNvbGUud2FybiYmY29uc29sZS53YXJuKHMpfSh4KX1yZXR1cm4gc31mdW5jdGlvbiBvbmNlV3JhcHBlcigpe2lmKCF0aGlzLmZpcmVkKXJldHVybiB0aGlzLnRhcmdldC5yZW1vdmVMaXN0ZW5lcih0aGlzLnR5cGUsdGhpcy53cmFwRm4pLHRoaXMuZmlyZWQ9ITAsMD09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5saXN0ZW5lci5jYWxsKHRoaXMudGFyZ2V0KTp0aGlzLmxpc3RlbmVyLmFwcGx5KHRoaXMudGFyZ2V0LGFyZ3VtZW50cyl9ZnVuY3Rpb24gX29uY2VXcmFwKHMsbyxpKXt2YXIgYT17ZmlyZWQ6ITEsd3JhcEZuOnZvaWQgMCx0YXJnZXQ6cyx0eXBlOm8sbGlzdGVuZXI6aX0sdT1vbmNlV3JhcHBlci5iaW5kKGEpO3JldHVybiB1Lmxpc3RlbmVyPWksYS53cmFwRm49dSx1fWZ1bmN0aW9uIF9saXN0ZW5lcnMocyxvLGkpe3ZhciBhPXMuX2V2ZW50cztpZih2b2lkIDA9PT1hKXJldHVybltdO3ZhciB1PWFbb107cmV0dXJuIHZvaWQgMD09PXU/W106ImZ1bmN0aW9uIj09dHlwZW9mIHU/aT9bdS5saXN0ZW5lcnx8dV06W3VdOmk/ZnVuY3Rpb24gdW53cmFwTGlzdGVuZXJzKHMpe2Zvcih2YXIgbz1uZXcgQXJyYXkocy5sZW5ndGgpLGk9MDtpPG8ubGVuZ3RoOysraSlvW2ldPXNbaV0ubGlzdGVuZXJ8fHNbaV07cmV0dXJuIG99KHUpOmFycmF5Q2xvbmUodSx1Lmxlbmd0aCl9ZnVuY3Rpb24gbGlzdGVuZXJDb3VudChzKXt2YXIgbz10aGlzLl9ldmVudHM7aWYodm9pZCAwIT09byl7dmFyIGk9b1tzXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgaSlyZXR1cm4gMTtpZih2b2lkIDAhPT1pKXJldHVybiBpLmxlbmd0aH1yZXR1cm4gMH1mdW5jdGlvbiBhcnJheUNsb25lKHMsbyl7Zm9yKHZhciBpPW5ldyBBcnJheShvKSxhPTA7YTxvOysrYSlpW2FdPXNbYV07cmV0dXJuIGl9ZnVuY3Rpb24gZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKHMsbyxpLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBzLm9uKWEub25jZT9zLm9uY2UobyxpKTpzLm9uKG8saSk7ZWxzZXtpZigiZnVuY3Rpb24iIT10eXBlb2Ygcy5hZGRFdmVudExpc3RlbmVyKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAiZW1pdHRlciIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEV2ZW50RW1pdHRlci4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBzKTtzLmFkZEV2ZW50TGlzdGVuZXIobywoZnVuY3Rpb24gd3JhcExpc3RlbmVyKHUpe2Eub25jZSYmcy5yZW1vdmVFdmVudExpc3RlbmVyKG8sd3JhcExpc3RlbmVyKSxpKHUpfSkpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoRXZlbnRFbWl0dGVyLCJkZWZhdWx0TWF4TGlzdGVuZXJzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gX30sc2V0OmZ1bmN0aW9uKHMpe2lmKCJudW1iZXIiIT10eXBlb2Ygc3x8czwwfHx1KHMpKXRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgImRlZmF1bHRNYXhMaXN0ZW5lcnMiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcrcysiLiIpO189c319KSxFdmVudEVtaXR0ZXIuaW5pdD1mdW5jdGlvbigpe3ZvaWQgMCE9PXRoaXMuX2V2ZW50cyYmdGhpcy5fZXZlbnRzIT09T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLl9ldmVudHN8fCh0aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9ldmVudHNDb3VudD0wKSx0aGlzLl9tYXhMaXN0ZW5lcnM9dGhpcy5fbWF4TGlzdGVuZXJzfHx2b2lkIDB9LEV2ZW50RW1pdHRlci5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzPWZ1bmN0aW9uIHNldE1heExpc3RlbmVycyhzKXtpZigibnVtYmVyIiE9dHlwZW9mIHN8fHM8MHx8dShzKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mICJuIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnK3MrIi4iKTtyZXR1cm4gdGhpcy5fbWF4TGlzdGVuZXJzPXMsdGhpc30sRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5nZXRNYXhMaXN0ZW5lcnM9ZnVuY3Rpb24gZ2V0TWF4TGlzdGVuZXJzKCl7cmV0dXJuIF9nZXRNYXhMaXN0ZW5lcnModGhpcyl9LEV2ZW50RW1pdHRlci5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbiBlbWl0KHMpe2Zvcih2YXIgbz1bXSxpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKylvLnB1c2goYXJndW1lbnRzW2ldKTt2YXIgdT0iZXJyb3IiPT09cyxfPXRoaXMuX2V2ZW50cztpZih2b2lkIDAhPT1fKXU9dSYmdm9pZCAwPT09Xy5lcnJvcjtlbHNlIGlmKCF1KXJldHVybiExO2lmKHUpe3ZhciB3O2lmKG8ubGVuZ3RoPjAmJih3PW9bMF0pLHcgaW5zdGFuY2VvZiBFcnJvcil0aHJvdyB3O3ZhciB4PW5ldyBFcnJvcigiVW5oYW5kbGVkIGVycm9yLiIrKHc/IiAoIit3Lm1lc3NhZ2UrIikiOiIiKSk7dGhyb3cgeC5jb250ZXh0PXcseH12YXIgQz1fW3NdO2lmKHZvaWQgMD09PUMpcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIEMpYShDLHRoaXMsbyk7ZWxzZXt2YXIgaj1DLmxlbmd0aCxMPWFycmF5Q2xvbmUoQyxqKTtmb3IoaT0wO2k8ajsrK2kpYShMW2ldLHRoaXMsbyl9cmV0dXJuITB9LEV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXI9ZnVuY3Rpb24gYWRkTGlzdGVuZXIocyxvKXtyZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMscyxvLCExKX0sRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbj1FdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyLEV2ZW50RW1pdHRlci5wcm90b3R5cGUucHJlcGVuZExpc3RlbmVyPWZ1bmN0aW9uIHByZXBlbmRMaXN0ZW5lcihzLG8pe3JldHVybiBfYWRkTGlzdGVuZXIodGhpcyxzLG8sITApfSxFdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24gb25jZShzLG8pe3JldHVybiBjaGVja0xpc3RlbmVyKG8pLHRoaXMub24ocyxfb25jZVdyYXAodGhpcyxzLG8pKSx0aGlzfSxFdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRPbmNlTGlzdGVuZXI9ZnVuY3Rpb24gcHJlcGVuZE9uY2VMaXN0ZW5lcihzLG8pe3JldHVybiBjaGVja0xpc3RlbmVyKG8pLHRoaXMucHJlcGVuZExpc3RlbmVyKHMsX29uY2VXcmFwKHRoaXMscyxvKSksdGhpc30sRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj1mdW5jdGlvbiByZW1vdmVMaXN0ZW5lcihzLG8pe3ZhciBpLGEsdSxfLHc7aWYoY2hlY2tMaXN0ZW5lcihvKSx2b2lkIDA9PT0oYT10aGlzLl9ldmVudHMpKXJldHVybiB0aGlzO2lmKHZvaWQgMD09PShpPWFbc10pKXJldHVybiB0aGlzO2lmKGk9PT1vfHxpLmxpc3RlbmVyPT09bykwPT0tLXRoaXMuX2V2ZW50c0NvdW50P3RoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpOihkZWxldGUgYVtzXSxhLnJlbW92ZUxpc3RlbmVyJiZ0aGlzLmVtaXQoInJlbW92ZUxpc3RlbmVyIixzLGkubGlzdGVuZXJ8fG8pKTtlbHNlIGlmKCJmdW5jdGlvbiIhPXR5cGVvZiBpKXtmb3IodT0tMSxfPWkubGVuZ3RoLTE7Xz49MDtfLS0paWYoaVtfXT09PW98fGlbX10ubGlzdGVuZXI9PT1vKXt3PWlbX10ubGlzdGVuZXIsdT1fO2JyZWFrfWlmKHU8MClyZXR1cm4gdGhpczswPT09dT9pLnNoaWZ0KCk6ZnVuY3Rpb24gc3BsaWNlT25lKHMsbyl7Zm9yKDtvKzE8cy5sZW5ndGg7bysrKXNbb109c1tvKzFdO3MucG9wKCl9KGksdSksMT09PWkubGVuZ3RoJiYoYVtzXT1pWzBdKSx2b2lkIDAhPT1hLnJlbW92ZUxpc3RlbmVyJiZ0aGlzLmVtaXQoInJlbW92ZUxpc3RlbmVyIixzLHd8fG8pfXJldHVybiB0aGlzfSxFdmVudEVtaXR0ZXIucHJvdG90eXBlLm9mZj1FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyLEV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uIHJlbW92ZUFsbExpc3RlbmVycyhzKXt2YXIgbyxpLGE7aWYodm9pZCAwPT09KGk9dGhpcy5fZXZlbnRzKSlyZXR1cm4gdGhpcztpZih2b2lkIDA9PT1pLnJlbW92ZUxpc3RlbmVyKXJldHVybiAwPT09YXJndW1lbnRzLmxlbmd0aD8odGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5fZXZlbnRzQ291bnQ9MCk6dm9pZCAwIT09aVtzXSYmKDA9PS0tdGhpcy5fZXZlbnRzQ291bnQ/dGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCk6ZGVsZXRlIGlbc10pLHRoaXM7aWYoMD09PWFyZ3VtZW50cy5sZW5ndGgpe3ZhciB1LF89T2JqZWN0LmtleXMoaSk7Zm9yKGE9MDthPF8ubGVuZ3RoOysrYSkicmVtb3ZlTGlzdGVuZXIiIT09KHU9X1thXSkmJnRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKHUpO3JldHVybiB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygicmVtb3ZlTGlzdGVuZXIiKSx0aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9ldmVudHNDb3VudD0wLHRoaXN9aWYoImZ1bmN0aW9uIj09dHlwZW9mKG89aVtzXSkpdGhpcy5yZW1vdmVMaXN0ZW5lcihzLG8pO2Vsc2UgaWYodm9pZCAwIT09bylmb3IoYT1vLmxlbmd0aC0xO2E+PTA7YS0tKXRoaXMucmVtb3ZlTGlzdGVuZXIocyxvW2FdKTtyZXR1cm4gdGhpc30sRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lcnM9ZnVuY3Rpb24gbGlzdGVuZXJzKHMpe3JldHVybiBfbGlzdGVuZXJzKHRoaXMscywhMCl9LEV2ZW50RW1pdHRlci5wcm90b3R5cGUucmF3TGlzdGVuZXJzPWZ1bmN0aW9uIHJhd0xpc3RlbmVycyhzKXtyZXR1cm4gX2xpc3RlbmVycyh0aGlzLHMsITEpfSxFdmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudD1mdW5jdGlvbihzLG8pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBzLmxpc3RlbmVyQ291bnQ/cy5saXN0ZW5lckNvdW50KG8pOmxpc3RlbmVyQ291bnQuY2FsbChzLG8pfSxFdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVyQ291bnQ9bGlzdGVuZXJDb3VudCxFdmVudEVtaXR0ZXIucHJvdG90eXBlLmV2ZW50TmFtZXM9ZnVuY3Rpb24gZXZlbnROYW1lcygpe3JldHVybiB0aGlzLl9ldmVudHNDb3VudD4wP28odGhpcy5fZXZlbnRzKTpbXX19LDM3MTY3OihzLG8saSk9Pnt2YXIgYT1pKDQ5MDEpLHU9aSgyNzMwMSksXz1pKDg2MDA5KSx3PV8mJl8uaXNUeXBlZEFycmF5LHg9dz91KHcpOmE7cy5leHBvcnRzPXh9LDM3MjE3OihzLG8saSk9Pnt2YXIgYT1pKDgwMDc5KSx1PWkoNTE0MjApLF89aSg5MDkzOCksdz1pKDYzNjA1KSx4PWkoMjk4MTcpLEM9aSg4MDk0NSk7ZnVuY3Rpb24gU3RhY2socyl7dmFyIG89dGhpcy5fX2RhdGFfXz1uZXcgYShzKTt0aGlzLnNpemU9by5zaXplfVN0YWNrLnByb3RvdHlwZS5jbGVhcj11LFN0YWNrLnByb3RvdHlwZS5kZWxldGU9XyxTdGFjay5wcm90b3R5cGUuZ2V0PXcsU3RhY2sucHJvdG90eXBlLmhhcz14LFN0YWNrLnByb3RvdHlwZS5zZXQ9QyxzLmV4cG9ydHM9U3RhY2t9LDM3MjQxOihzLG8saSk9Pnt2YXIgYT1pKDcwNjk1KSx1PWkoNzI5MDMpLF89aSg2NDg5NCk7cy5leHBvcnRzPWZ1bmN0aW9uIGtleXNJbihzKXtyZXR1cm4gXyhzKT9hKHMsITApOnUocyl9fSwzNzI1NzoocyxvLGkpPT57InVzZSBzdHJpY3QiO2koOTY2MDUpLGkoNjQ1MDIpLGkoMzYzNzEpLGkoOTkzNjMpLGkoNzA1Nyk7dmFyIGE9aSg5MjA0Nik7cy5leHBvcnRzPWEuQWdncmVnYXRlRXJyb3J9LDM3MzM0OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gY29uc3RhbnQocyl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHN9fX0sMzczODE6KHMsbyxpKT0+e3ZhciBhPWkoNDgxNTIpLHU9aSg2Mzk1MCksXz1hP2Z1bmN0aW9uKHMpe3JldHVybiBhLmdldChzKX06dTtzLmV4cG9ydHM9X30sMzc0NzE6KHMsbyxpKT0+e3ZhciBhPWkoOTE1OTYpLHU9aSg1MzMyMCksXz1pKDU4NTIzKSx3PWkoODI4MTkpLHg9aSgxODA3MyksQz1pKDExMjg3KSxqPWkoNjgyOTQpLEw9aSgzNjMwNiksQj1pKDkzMjUpO3MuZXhwb3J0cz1mdW5jdGlvbiBjcmVhdGVIeWJyaWQocyxvLGksJCxWLFUseixZLFosZWUpe3ZhciBpZT0xMjgmbyxhZT0xJm8sY2U9MiZvLGxlPTI0Jm8scGU9NTEyJm8sZGU9Y2U/dm9pZCAwOncocyk7cmV0dXJuIGZ1bmN0aW9uIHdyYXBwZXIoKXtmb3IodmFyIGZlPWFyZ3VtZW50cy5sZW5ndGgseWU9QXJyYXkoZmUpLGJlPWZlO2JlLS07KXllW2JlXT1hcmd1bWVudHNbYmVdO2lmKGxlKXZhciBfZT1DKHdyYXBwZXIpLFNlPV8oeWUsX2UpO2lmKCQmJih5ZT1hKHllLCQsVixsZSkpLFUmJih5ZT11KHllLFUseixsZSkpLGZlLT1TZSxsZSYmZmU8ZWUpe3ZhciB3ZT1MKHllLF9lKTtyZXR1cm4geChzLG8sY3JlYXRlSHlicmlkLHdyYXBwZXIucGxhY2Vob2xkZXIsaSx5ZSx3ZSxZLFosZWUtZmUpfXZhciB4ZT1hZT9pOnRoaXMsUGU9Y2U/eGVbc106cztyZXR1cm4gZmU9eWUubGVuZ3RoLFk/eWU9aih5ZSxZKTpwZSYmZmU+MSYmeWUucmV2ZXJzZSgpLGllJiZaPGZlJiYoeWUubGVuZ3RoPVopLHRoaXMmJnRoaXMhPT1CJiZ0aGlzIGluc3RhbmNlb2Ygd3JhcHBlciYmKFBlPWRlfHx3KFBlKSksUGUuYXBwbHkoeGUseWUpfX19LDM3ODEyOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg3NjI2NCksdT1pKDkzNzQyKSxfPWEoIml0ZXJhdG9yIiksdz1BcnJheS5wcm90b3R5cGU7cy5leHBvcnRzPWZ1bmN0aW9uKHMpe3JldHVybiB2b2lkIDAhPT1zJiYodS5BcnJheT09PXN8fHdbX109PT1zKX19LDM3ODI4OihzLG8saSk9Pnt2YXIgYT1pKDkzMjUpLlVpbnQ4QXJyYXk7cy5leHBvcnRzPWF9LDM4MjIxOihzLG8saSk9Pnt2YXIgYT1pKDIzODA1KSx1PWkoMTAxMjQpLF89aSg5OTM3NCksdz1NYXRoLm1heCx4PU1hdGgubWluO3MuZXhwb3J0cz1mdW5jdGlvbiBkZWJvdW5jZShzLG8saSl7dmFyIEMsaixMLEIsJCxWLFU9MCx6PSExLFk9ITEsWj0hMDtpZigiZnVuY3Rpb24iIT10eXBlb2Ygcyl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGZ1bmN0aW9uIik7ZnVuY3Rpb24gaW52b2tlRnVuYyhvKXt2YXIgaT1DLGE9ajtyZXR1cm4gQz1qPXZvaWQgMCxVPW8sQj1zLmFwcGx5KGEsaSl9ZnVuY3Rpb24gc2hvdWxkSW52b2tlKHMpe3ZhciBpPXMtVjtyZXR1cm4gdm9pZCAwPT09Vnx8aT49b3x8aTwwfHxZJiZzLVU+PUx9ZnVuY3Rpb24gdGltZXJFeHBpcmVkKCl7dmFyIHM9dSgpO2lmKHNob3VsZEludm9rZShzKSlyZXR1cm4gdHJhaWxpbmdFZGdlKHMpOyQ9c2V0VGltZW91dCh0aW1lckV4cGlyZWQsZnVuY3Rpb24gcmVtYWluaW5nV2FpdChzKXt2YXIgaT1vLShzLVYpO3JldHVybiBZP3goaSxMLShzLVUpKTppfShzKSl9ZnVuY3Rpb24gdHJhaWxpbmdFZGdlKHMpe3JldHVybiAkPXZvaWQgMCxaJiZDP2ludm9rZUZ1bmMocyk6KEM9aj12b2lkIDAsQil9ZnVuY3Rpb24gZGVib3VuY2VkKCl7dmFyIHM9dSgpLGk9c2hvdWxkSW52b2tlKHMpO2lmKEM9YXJndW1lbnRzLGo9dGhpcyxWPXMsaSl7aWYodm9pZCAwPT09JClyZXR1cm4gZnVuY3Rpb24gbGVhZGluZ0VkZ2Uocyl7cmV0dXJuIFU9cywkPXNldFRpbWVvdXQodGltZXJFeHBpcmVkLG8pLHo/aW52b2tlRnVuYyhzKTpCfShWKTtpZihZKXJldHVybiBjbGVhclRpbWVvdXQoJCksJD1zZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCxvKSxpbnZva2VGdW5jKFYpfXJldHVybiB2b2lkIDA9PT0kJiYoJD1zZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCxvKSksQn1yZXR1cm4gbz1fKG8pfHwwLGEoaSkmJih6PSEhaS5sZWFkaW5nLEw9KFk9Im1heFdhaXQiaW4gaSk/dyhfKGkubWF4V2FpdCl8fDAsbyk6TCxaPSJ0cmFpbGluZyJpbiBpPyEhaS50cmFpbGluZzpaKSxkZWJvdW5jZWQuY2FuY2VsPWZ1bmN0aW9uIGNhbmNlbCgpe3ZvaWQgMCE9PSQmJmNsZWFyVGltZW91dCgkKSxVPTAsQz1WPWo9JD12b2lkIDB9LGRlYm91bmNlZC5mbHVzaD1mdW5jdGlvbiBmbHVzaCgpe3JldHVybiB2b2lkIDA9PT0kP0I6dHJhaWxpbmdFZGdlKHUoKSl9LGRlYm91bmNlZH19LDM4MzI5OihzLG8saSk9Pnt2YXIgYT1pKDY0ODk0KTtzLmV4cG9ydHM9ZnVuY3Rpb24gY3JlYXRlQmFzZUVhY2gocyxvKXtyZXR1cm4gZnVuY3Rpb24oaSx1KXtpZihudWxsPT1pKXJldHVybiBpO2lmKCFhKGkpKXJldHVybiBzKGksdSk7Zm9yKHZhciBfPWkubGVuZ3RoLHc9bz9fOi0xLHg9T2JqZWN0KGkpOyhvP3ctLTorK3c8XykmJiExIT09dSh4W3ddLHcseCk7KTtyZXR1cm4gaX19fSwzODQ0MDoocyxvLGkpPT57dmFyIGE9aSgxNjAzOCksdT1pKDI3MzAxKSxfPWkoODYwMDkpLHc9XyYmXy5pc1NldCx4PXc/dSh3KTphO3MuZXhwb3J0cz14fSwzODUzMDpzPT57InVzZSBzdHJpY3QiO3MuZXhwb3J0cz17fX0sMzg4MTY6KHMsbyxpKT0+e3ZhciBhPWkoMzU5NzApLHU9aSg1Njc1NyksXz1pKDMyODY1KTtzLmV4cG9ydHM9ZnVuY3Rpb24gZmxhdFJlc3Qocyl7cmV0dXJuIF8odShzLHZvaWQgMCxhKSxzKyIiKX19LDM4ODU5OihzLG8saSk9Pnt2YXIgYT1pKDUzNjYxKSx1PWkoMzEzODApLF89aSg1MTQ1OSk7ZnVuY3Rpb24gU2V0Q2FjaGUocyl7dmFyIG89LTEsaT1udWxsPT1zPzA6cy5sZW5ndGg7Zm9yKHRoaXMuX19kYXRhX189bmV3IGE7KytvPGk7KXRoaXMuYWRkKHNbb10pfVNldENhY2hlLnByb3RvdHlwZS5hZGQ9U2V0Q2FjaGUucHJvdG90eXBlLnB1c2g9dSxTZXRDYWNoZS5wcm90b3R5cGUuaGFzPV8scy5leHBvcnRzPVNldENhY2hlfSwzOTI1OToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNDYyODUpLHU9aSg2MTYyNik7cy5leHBvcnRzPWZ1bmN0aW9uKHMsbyl7YShvKSYmImNhdXNlImluIG8mJnUocywiY2F1c2UiLG8uY2F1c2UpfX0sMzkyOTg6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDc0MjM5KSx1PU9iamVjdDtzLmV4cG9ydHM9ZnVuY3Rpb24ocyl7cmV0dXJuIHUoYShzKSl9fSwzOTM0NDoocyxvLGkpPT57dmFyIGE9aSgyMzgwNSksdT1PYmplY3QuY3JlYXRlLF89ZnVuY3Rpb24oKXtmdW5jdGlvbiBvYmplY3QoKXt9cmV0dXJuIGZ1bmN0aW9uKHMpe2lmKCFhKHMpKXJldHVybnt9O2lmKHUpcmV0dXJuIHUocyk7b2JqZWN0LnByb3RvdHlwZT1zO3ZhciBvPW5ldyBvYmplY3Q7cmV0dXJuIG9iamVjdC5wcm90b3R5cGU9dm9pZCAwLG99fSgpO3MuZXhwb3J0cz1ffSwzOTQ0NzoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoOTg4MjgpO3MuZXhwb3J0cz0hYSgoZnVuY3Rpb24oKXtyZXR1cm4gNyE9PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwxLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KVsxXX0pKX0sNDAxNTQ6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDEzOTMwKSx1PWkoMzY2MjQpLF89aSgyOTM2Nyk7cy5leHBvcnRzPWZ1bmN0aW9uKHMsbyxpKXt2YXIgdyx4O3Uocyk7dHJ5e2lmKCEodz1fKHMsInJldHVybiIpKSl7aWYoInRocm93Ij09PW8pdGhyb3cgaTtyZXR1cm4gaX13PWEodyxzKX1jYXRjaChzKXt4PSEwLHc9c31pZigidGhyb3ciPT09byl0aHJvdyBpO2lmKHgpdGhyb3cgdztyZXR1cm4gdSh3KSxpfX0sNDAyMzk6KHMsbyxpKT0+e2NvbnN0IGE9aSgxMDMxNik7cy5leHBvcnRzPWNsYXNzIE51bWJlckVsZW1lbnQgZXh0ZW5kcyBhe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJudW1iZXIifXByaW1pdGl2ZSgpe3JldHVybiJudW1iZXIifX19LDQwMzQ1OihzLG8saSk9PntzLmV4cG9ydHM9aSgzNzAwNykuRXZlbnRFbWl0dGVyfSw0MDM0NjpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIGlzT2JqZWN0TGlrZShzKXtyZXR1cm4gbnVsbCE9cyYmIm9iamVjdCI9PXR5cGVvZiBzfX0sNDA1NTE6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDQ1OTUxKSx1PWkoNjIyNTApLF89YS5XZWFrTWFwO3MuZXhwb3J0cz11KF8pJiYvbmF0aXZlIGNvZGUvLnRlc3QoU3RyaW5nKF8pKX0sNDA4NjA6KHMsbyxpKT0+e3ZhciBhPWkoNDA4ODIpLHU9aSg4MDkwOSksXz1pKDE1Mzg5KSx3PWkoODU1NTgpLHg9aSg1NjQ0OSk7cy5leHBvcnRzPWZ1bmN0aW9uIHJlZHVjZShzLG8saSl7dmFyIEM9eChzKT9hOncsaj1hcmd1bWVudHMubGVuZ3RoPDM7cmV0dXJuIEMocyxfKG8sNCksaSxqLHUpfX0sNDA4ODI6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBhcnJheVJlZHVjZShzLG8saSxhKXt2YXIgdT0tMSxfPW51bGw9PXM/MDpzLmxlbmd0aDtmb3IoYSYmXyYmKGk9c1srK3VdKTsrK3U8XzspaT1vKGksc1t1XSx1LHMpO3JldHVybiBpfX0sNDA5NjE6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0IjshZnVuY3Rpb24gY2hlY2tEQ0UoKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyYmImZ1bmN0aW9uIj09dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSl0cnl7X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKGNoZWNrRENFKX1jYXRjaChzKXtjb25zb2xlLmVycm9yKHMpfX0oKSxzLmV4cG9ydHM9aSgyMjU1MSl9LDQwOTc1OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg5NzQ4KTtzLmV4cG9ydHM9YX0sNDEwNjc6KHMsbyxpKT0+e2NvbnN0IGE9aSgxMDMxNik7cy5leHBvcnRzPWNsYXNzIE51bGxFbGVtZW50IGV4dGVuZHMgYXtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIoc3x8bnVsbCxvLGkpLHRoaXMuZWxlbWVudD0ibnVsbCJ9cHJpbWl0aXZlKCl7cmV0dXJuIm51bGwifXNldCgpe3JldHVybiBuZXcgRXJyb3IoIkNhbm5vdCBzZXQgdGhlIHZhbHVlIG9mIG51bGwiKX19fSw0MTE3NjpzPT57InVzZSBzdHJpY3QiO3ZhciBvPU1hdGguY2VpbCxpPU1hdGguZmxvb3I7cy5leHBvcnRzPU1hdGgudHJ1bmN8fGZ1bmN0aW9uIHRydW5jKHMpe3ZhciBhPStzO3JldHVybihhPjA/aTpvKShhKX19LDQxNTA1OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg5ODgyOCk7cy5leHBvcnRzPSFhKChmdW5jdGlvbigpe3ZhciBzPWZ1bmN0aW9uKCl7fS5iaW5kKCk7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHN8fHMuaGFzT3duUHJvcGVydHkoInByb3RvdHlwZSIpfSkpfSw0MTc5OToocyxvLGkpPT57dmFyIGE9aSgzNzIxNyksdT1pKDYwMjcwKTtzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZUlzTWF0Y2gocyxvLGksXyl7dmFyIHc9aS5sZW5ndGgseD13LEM9IV87aWYobnVsbD09cylyZXR1cm4heDtmb3Iocz1PYmplY3Qocyk7dy0tOyl7dmFyIGo9aVt3XTtpZihDJiZqWzJdP2pbMV0hPT1zW2pbMF1dOiEoalswXWluIHMpKXJldHVybiExfWZvcig7Kyt3PHg7KXt2YXIgTD0oaj1pW3ddKVswXSxCPXNbTF0sJD1qWzFdO2lmKEMmJmpbMl0pe2lmKHZvaWQgMD09PUImJiEoTCBpbiBzKSlyZXR1cm4hMX1lbHNle3ZhciBWPW5ldyBhO2lmKF8pdmFyIFU9XyhCLCQsTCxzLG8sVik7aWYoISh2b2lkIDA9PT1VP3UoJCxCLDMsXyxWKTpVKSlyZXR1cm4hMX19cmV0dXJuITB9fSw0MTg1OToocyxvLGkpPT57Y29uc3QgYT1pKDI3MDk2KSx1PWkoNzgwMDQpLF89YS50eXBlcztzLmV4cG9ydHM9Y2xhc3MgUmFuZEV4cHtjb25zdHJ1Y3RvcihzLG8pe2lmKHRoaXMuX3NldERlZmF1bHRzKHMpLHMgaW5zdGFuY2VvZiBSZWdFeHApdGhpcy5pZ25vcmVDYXNlPXMuaWdub3JlQ2FzZSx0aGlzLm11bHRpbGluZT1zLm11bHRpbGluZSxzPXMuc291cmNlO2Vsc2V7aWYoInN0cmluZyIhPXR5cGVvZiBzKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgYSByZWdleHAgb3Igc3RyaW5nIik7dGhpcy5pZ25vcmVDYXNlPW8mJi0xIT09by5pbmRleE9mKCJpIiksdGhpcy5tdWx0aWxpbmU9byYmLTEhPT1vLmluZGV4T2YoIm0iKX10aGlzLnRva2Vucz1hKHMpfV9zZXREZWZhdWx0cyhzKXt0aGlzLm1heD1udWxsIT1zLm1heD9zLm1heDpudWxsIT1SYW5kRXhwLnByb3RvdHlwZS5tYXg/UmFuZEV4cC5wcm90b3R5cGUubWF4OjEwMCx0aGlzLmRlZmF1bHRSYW5nZT1zLmRlZmF1bHRSYW5nZT9zLmRlZmF1bHRSYW5nZTp0aGlzLmRlZmF1bHRSYW5nZS5jbG9uZSgpLHMucmFuZEludCYmKHRoaXMucmFuZEludD1zLnJhbmRJbnQpfWdlbigpe3JldHVybiB0aGlzLl9nZW4odGhpcy50b2tlbnMsW10pfV9nZW4ocyxvKXt2YXIgaSxhLHUsdyx4O3N3aXRjaChzLnR5cGUpe2Nhc2UgXy5ST09UOmNhc2UgXy5HUk9VUDppZihzLmZvbGxvd2VkQnl8fHMubm90Rm9sbG93ZWRCeSlyZXR1cm4iIjtmb3Iocy5yZW1lbWJlciYmdm9pZCAwPT09cy5ncm91cE51bWJlciYmKHMuZ3JvdXBOdW1iZXI9by5wdXNoKG51bGwpLTEpLGE9IiIsdz0wLHg9KGk9cy5vcHRpb25zP3RoaXMuX3JhbmRTZWxlY3Qocy5vcHRpb25zKTpzLnN0YWNrKS5sZW5ndGg7dzx4O3crKylhKz10aGlzLl9nZW4oaVt3XSxvKTtyZXR1cm4gcy5yZW1lbWJlciYmKG9bcy5ncm91cE51bWJlcl09YSksYTtjYXNlIF8uUE9TSVRJT046cmV0dXJuIiI7Y2FzZSBfLlNFVDp2YXIgQz10aGlzLl9leHBhbmQocyk7cmV0dXJuIEMubGVuZ3RoP1N0cmluZy5mcm9tQ2hhckNvZGUodGhpcy5fcmFuZFNlbGVjdChDKSk6IiI7Y2FzZSBfLlJFUEVUSVRJT046Zm9yKHU9dGhpcy5yYW5kSW50KHMubWluLHMubWF4PT09MS8wP3MubWluK3RoaXMubWF4OnMubWF4KSxhPSIiLHc9MDt3PHU7dysrKWErPXRoaXMuX2dlbihzLnZhbHVlLG8pO3JldHVybiBhO2Nhc2UgXy5SRUZFUkVOQ0U6cmV0dXJuIG9bcy52YWx1ZS0xXXx8IiI7Y2FzZSBfLkNIQVI6dmFyIGo9dGhpcy5pZ25vcmVDYXNlJiZ0aGlzLl9yYW5kQm9vbCgpP3RoaXMuX3RvT3RoZXJDYXNlKHMudmFsdWUpOnMudmFsdWU7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoail9fV90b090aGVyQ2FzZShzKXtyZXR1cm4gcysoOTc8PXMmJnM8PTEyMj8tMzI6NjU8PXMmJnM8PTkwPzMyOjApfV9yYW5kQm9vbCgpe3JldHVybiF0aGlzLnJhbmRJbnQoMCwxKX1fcmFuZFNlbGVjdChzKXtyZXR1cm4gcyBpbnN0YW5jZW9mIHU/cy5pbmRleCh0aGlzLnJhbmRJbnQoMCxzLmxlbmd0aC0xKSk6c1t0aGlzLnJhbmRJbnQoMCxzLmxlbmd0aC0xKV19X2V4cGFuZChzKXtpZihzLnR5cGU9PT1hLnR5cGVzLkNIQVIpcmV0dXJuIG5ldyB1KHMudmFsdWUpO2lmKHMudHlwZT09PWEudHlwZXMuUkFOR0UpcmV0dXJuIG5ldyB1KHMuZnJvbSxzLnRvKTt7bGV0IG89bmV3IHU7Zm9yKGxldCBpPTA7aTxzLnNldC5sZW5ndGg7aSsrKXtsZXQgYT10aGlzLl9leHBhbmQocy5zZXRbaV0pO2lmKG8uYWRkKGEpLHRoaXMuaWdub3JlQ2FzZSlmb3IobGV0IHM9MDtzPGEubGVuZ3RoO3MrKyl7bGV0IGk9YS5pbmRleChzKSx1PXRoaXMuX3RvT3RoZXJDYXNlKGkpO2khPT11JiZvLmFkZCh1KX19cmV0dXJuIHMubm90P3RoaXMuZGVmYXVsdFJhbmdlLmNsb25lKCkuc3VidHJhY3Qobyk6dGhpcy5kZWZhdWx0UmFuZ2UuY2xvbmUoKS5pbnRlcnNlY3Qobyl9fXJhbmRJbnQocyxvKXtyZXR1cm4gcytNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKDErby1zKSl9Z2V0IGRlZmF1bHRSYW5nZSgpe3JldHVybiB0aGlzLl9yYW5nZT10aGlzLl9yYW5nZXx8bmV3IHUoMzIsMTI2KX1zZXQgZGVmYXVsdFJhbmdlKHMpe3RoaXMuX3JhbmdlPXN9c3RhdGljIHJhbmRleHAocyxvKXt2YXIgaTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHMmJihzPW5ldyBSZWdFeHAocyxvKSksdm9pZCAwPT09cy5fcmFuZGV4cD8oaT1uZXcgUmFuZEV4cChzLG8pLHMuX3JhbmRleHA9aSk6KGk9cy5fcmFuZGV4cCkuX3NldERlZmF1bHRzKHMpLGkuZ2VuKCl9c3RhdGljIHN1Z2FyKCl7UmVnRXhwLnByb3RvdHlwZS5nZW49ZnVuY3Rpb24oKXtyZXR1cm4gUmFuZEV4cC5yYW5kZXhwKHRoaXMpfX19fSw0MjA1NDpzPT57dmFyIG89IlxcdWQ4MDAtXFx1ZGZmZiIsaT0iWyIrbysiXSIsYT0iW1xcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZl0iLHU9IlxcdWQ4M2NbXFx1ZGZmYi1cXHVkZmZmXSIsXz0iW14iK28rIl0iLHc9Iig/OlxcdWQ4M2NbXFx1ZGRlNi1cXHVkZGZmXSl7Mn0iLHg9IltcXHVkODAwLVxcdWRiZmZdW1xcdWRjMDAtXFx1ZGZmZl0iLEM9Iig/OiIrYSsifCIrdSsiKSIrIj8iLGo9IltcXHVmZTBlXFx1ZmUwZl0/IixMPWorQysoIig/OlxcdTIwMGQoPzoiK1tfLHcseF0uam9pbigifCIpKyIpIitqK0MrIikqIiksQj0iKD86IitbXythKyI/IixhLHcseCxpXS5qb2luKCJ8IikrIikiLCQ9UmVnRXhwKHUrIig/PSIrdSsiKXwiK0IrTCwiZyIpO3MuZXhwb3J0cz1mdW5jdGlvbiB1bmljb2RlVG9BcnJheShzKXtyZXR1cm4gcy5tYXRjaCgkKXx8W119fSw0MjA3MjoocyxvLGkpPT57dmFyIGE9aSgzNDkzMiksdT1pKDIzMDA3KSxfPWkoNTY0NDkpLHc9aSg0NDM5NCkseD1pKDYxODAyKSxDPWkoNzc3OTcpLGo9aSgxMzIyMik7cy5leHBvcnRzPWZ1bmN0aW9uIHRvUGF0aChzKXtyZXR1cm4gXyhzKT9hKHMsQyk6dyhzKT9bc106dSh4KGoocykpKX19LDQyMTU2OnM9PnsidXNlIHN0cmljdCI7cy5leHBvcnRzPWZ1bmN0aW9uKCl7fX0sNDIyMjA6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDM5NDQ3KSx1PWkoNTg2NjEpLF89aSg3NDI4NCksdz1pKDM2NjI0KSx4PWkoNDk5MyksQz1pKDI4NzUpO28uZj1hJiYhdT9PYmplY3QuZGVmaW5lUHJvcGVydGllczpmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHMsbyl7dyhzKTtmb3IodmFyIGksYT14KG8pLHU9QyhvKSxqPXUubGVuZ3RoLEw9MDtqPkw7KV8uZihzLGk9dVtMKytdLGFbaV0pO3JldHVybiBzfX0sNDI0MjY6KHMsbyxpKT0+e3ZhciBhPWkoMTQyNDgpLHU9aSgxNTM4OSksXz1pKDkwOTE2KSx3PWkoNTY0NDkpLHg9aSgzNjgwMCk7cy5leHBvcnRzPWZ1bmN0aW9uIHNvbWUocyxvLGkpe3ZhciBDPXcocyk/YTpfO3JldHVybiBpJiZ4KHMsbyxpKSYmKG89dm9pZCAwKSxDKHMsdShvLDMpKX19LDQyODI0OihzLG8saSk9Pnt2YXIgYT1pKDg3ODA1KSx1PWkoOTMyOTApLF89aSg3MTk2MSksdz1pKDIzMDA3KSx4PWkoMzU1MjkpLEM9aSg3MjQyOCksaj1pKDU2NDQ5KSxMPWkoODM2OTMpLEI9aSgzNjU2KSwkPWkoMTg4MiksVj1pKDIzODA1KSxVPWkoMTEzMzEpLHo9aSgzNzE2NyksWT1pKDE0OTc0KSxaPWkoNjk4ODQpO3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlTWVyZ2VEZWVwKHMsbyxpLGVlLGllLGFlLGNlKXt2YXIgbGU9WShzLGkpLHBlPVkobyxpKSxkZT1jZS5nZXQocGUpO2lmKGRlKWEocyxpLGRlKTtlbHNle3ZhciBmZT1hZT9hZShsZSxwZSxpKyIiLHMsbyxjZSk6dm9pZCAwLHllPXZvaWQgMD09PWZlO2lmKHllKXt2YXIgYmU9aihwZSksX2U9IWJlJiZCKHBlKSxTZT0hYmUmJiFfZSYmeihwZSk7ZmU9cGUsYmV8fF9lfHxTZT9qKGxlKT9mZT1sZTpMKGxlKT9mZT13KGxlKTpfZT8oeWU9ITEsZmU9dShwZSwhMCkpOlNlPyh5ZT0hMSxmZT1fKHBlLCEwKSk6ZmU9W106VShwZSl8fEMocGUpPyhmZT1sZSxDKGxlKT9mZT1aKGxlKTpWKGxlKSYmISQobGUpfHwoZmU9eChwZSkpKTp5ZT0hMX15ZSYmKGNlLnNldChwZSxmZSksaWUoZmUscGUsZWUsYWUsY2UpLGNlLmRlbGV0ZShwZSkpLGEocyxpLGZlKX19fSw0MzM2MDoocyxvLGkpPT57dmFyIGE9aSg5MzI0Myk7cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VBc3NpZ25WYWx1ZShzLG8saSl7Il9fcHJvdG9fXyI9PW8mJmE/YShzLG8se2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOmksd3JpdGFibGU6ITB9KTpzW29dPWl9fSw0Mzc2ODoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNDU5ODEpLHU9aSg4NTU4Nyk7by5oaWdobGlnaHQ9aGlnaGxpZ2h0LG8uaGlnaGxpZ2h0QXV0bz1mdW5jdGlvbiBoaWdobGlnaHRBdXRvKHMsbyl7dmFyIGksdyx4LEMsaj1vfHx7fSxMPWouc3Vic2V0fHxhLmxpc3RMYW5ndWFnZXMoKSxCPWoucHJlZml4LCQ9TC5sZW5ndGgsVj0tMTtudWxsPT1CJiYoQj1fKTtpZigic3RyaW5nIiE9dHlwZW9mIHMpdGhyb3cgdSgiRXhwZWN0ZWQgYHN0cmluZ2AgZm9yIHZhbHVlLCBnb3QgYCVzYCIscyk7dz17cmVsZXZhbmNlOjAsbGFuZ3VhZ2U6bnVsbCx2YWx1ZTpbXX0saT17cmVsZXZhbmNlOjAsbGFuZ3VhZ2U6bnVsbCx2YWx1ZTpbXX07Zm9yKDsrK1Y8JDspQz1MW1ZdLGEuZ2V0TGFuZ3VhZ2UoQykmJigoeD1oaWdobGlnaHQoQyxzLG8pKS5sYW5ndWFnZT1DLHgucmVsZXZhbmNlPncucmVsZXZhbmNlJiYodz14KSx4LnJlbGV2YW5jZT5pLnJlbGV2YW5jZSYmKHc9aSxpPXgpKTt3Lmxhbmd1YWdlJiYoaS5zZWNvbmRCZXN0PXcpO3JldHVybiBpfSxvLnJlZ2lzdGVyTGFuZ3VhZ2U9ZnVuY3Rpb24gcmVnaXN0ZXJMYW5ndWFnZShzLG8pe2EucmVnaXN0ZXJMYW5ndWFnZShzLG8pfSxvLmxpc3RMYW5ndWFnZXM9ZnVuY3Rpb24gbGlzdExhbmd1YWdlcygpe3JldHVybiBhLmxpc3RMYW5ndWFnZXMoKX0sby5yZWdpc3RlckFsaWFzPWZ1bmN0aW9uIHJlZ2lzdGVyQWxpYXMocyxvKXt2YXIgaSx1PXM7byYmKCh1PXt9KVtzXT1vKTtmb3IoaSBpbiB1KWEucmVnaXN0ZXJBbGlhc2VzKHVbaV0se2xhbmd1YWdlTmFtZTppfSl9LEVtaXR0ZXIucHJvdG90eXBlLmFkZFRleHQ9ZnVuY3Rpb24gdGV4dChzKXt2YXIgbyxpLGE9dGhpcy5zdGFjaztpZigiIj09PXMpcmV0dXJuO289YVthLmxlbmd0aC0xXSwoaT1vLmNoaWxkcmVuW28uY2hpbGRyZW4ubGVuZ3RoLTFdKSYmInRleHQiPT09aS50eXBlP2kudmFsdWUrPXM6by5jaGlsZHJlbi5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpzfSl9LEVtaXR0ZXIucHJvdG90eXBlLmFkZEtleXdvcmQ9ZnVuY3Rpb24gYWRkS2V5d29yZChzLG8pe3RoaXMub3Blbk5vZGUobyksdGhpcy5hZGRUZXh0KHMpLHRoaXMuY2xvc2VOb2RlKCl9LEVtaXR0ZXIucHJvdG90eXBlLmFkZFN1Ymxhbmd1YWdlPWZ1bmN0aW9uIGFkZFN1Ymxhbmd1YWdlKHMsbyl7dmFyIGk9dGhpcy5zdGFjayxhPWlbaS5sZW5ndGgtMV0sdT1zLnJvb3ROb2RlLmNoaWxkcmVuLF89bz97dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3BhbiIscHJvcGVydGllczp7Y2xhc3NOYW1lOltvXX0sY2hpbGRyZW46dX06dTthLmNoaWxkcmVuPWEuY2hpbGRyZW4uY29uY2F0KF8pfSxFbWl0dGVyLnByb3RvdHlwZS5vcGVuTm9kZT1mdW5jdGlvbiBvcGVuKHMpe3ZhciBvPXRoaXMuc3RhY2ssaT10aGlzLm9wdGlvbnMuY2xhc3NQcmVmaXgrcyxhPW9bby5sZW5ndGgtMV0sdT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3BhbiIscHJvcGVydGllczp7Y2xhc3NOYW1lOltpXX0sY2hpbGRyZW46W119O2EuY2hpbGRyZW4ucHVzaCh1KSxvLnB1c2godSl9LEVtaXR0ZXIucHJvdG90eXBlLmNsb3NlTm9kZT1mdW5jdGlvbiBjbG9zZSgpe3RoaXMuc3RhY2sucG9wKCl9LEVtaXR0ZXIucHJvdG90eXBlLmNsb3NlQWxsTm9kZXM9bm9vcCxFbWl0dGVyLnByb3RvdHlwZS5maW5hbGl6ZT1ub29wLEVtaXR0ZXIucHJvdG90eXBlLnRvSFRNTD1mdW5jdGlvbiB0b0h0bWxOb29wKCl7cmV0dXJuIiJ9O3ZhciBfPSJobGpzLSI7ZnVuY3Rpb24gaGlnaGxpZ2h0KHMsbyxpKXt2YXIgdyx4PWEuY29uZmlndXJlKHt9KSxDPShpfHx7fSkucHJlZml4O2lmKCJzdHJpbmciIT10eXBlb2Ygcyl0aHJvdyB1KCJFeHBlY3RlZCBgc3RyaW5nYCBmb3IgbmFtZSwgZ290IGAlc2AiLHMpO2lmKCFhLmdldExhbmd1YWdlKHMpKXRocm93IHUoIlVua25vd24gbGFuZ3VhZ2U6IGAlc2AgaXMgbm90IHJlZ2lzdGVyZWQiLHMpO2lmKCJzdHJpbmciIT10eXBlb2Ygbyl0aHJvdyB1KCJFeHBlY3RlZCBgc3RyaW5nYCBmb3IgdmFsdWUsIGdvdCBgJXNgIixvKTtpZihudWxsPT1DJiYoQz1fKSxhLmNvbmZpZ3VyZSh7X19lbWl0dGVyOkVtaXR0ZXIsY2xhc3NQcmVmaXg6Q30pLHc9YS5oaWdobGlnaHQobyx7bGFuZ3VhZ2U6cyxpZ25vcmVJbGxlZ2FsczohMH0pLGEuY29uZmlndXJlKHh8fHt9KSx3LmVycm9yUmFpc2VkKXRocm93IHcuZXJyb3JSYWlzZWQ7cmV0dXJue3JlbGV2YW5jZTp3LnJlbGV2YW5jZSxsYW5ndWFnZTp3Lmxhbmd1YWdlLHZhbHVlOncuZW1pdHRlci5yb290Tm9kZS5jaGlsZHJlbn19ZnVuY3Rpb24gRW1pdHRlcihzKXt0aGlzLm9wdGlvbnM9cyx0aGlzLnJvb3ROb2RlPXtjaGlsZHJlbjpbXX0sdGhpcy5zdGFjaz1bdGhpcy5yb290Tm9kZV19ZnVuY3Rpb24gbm9vcCgpe319LDQzODM4OihzLG8saSk9Pnt2YXIgYT1pKDIxNzkxKSx1PWkoMzcyNDEpO3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlQXNzaWduSW4ocyxvKXtyZXR1cm4gcyYmYShvLHUobykscyl9fSw0NDM5NDoocyxvLGkpPT57dmFyIGE9aSg3MjU1MiksdT1pKDQwMzQ2KTtzLmV4cG9ydHM9ZnVuY3Rpb24gaXNTeW1ib2wocyl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBzfHx1KHMpJiYiW29iamVjdCBTeW1ib2xdIj09YShzKX19LDQ0NjczOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgxOTA3KSx1PWkoODIxNTkpLF89aSg0NjI4NSksdz1pKDQ5NzI0KSx4PWkoOTM0MjcpLEM9aSg0MTUwNSksaj1GdW5jdGlvbixMPWEoW10uY29uY2F0KSxCPWEoW10uam9pbiksJD17fTtzLmV4cG9ydHM9Qz9qLmJpbmQ6ZnVuY3Rpb24gYmluZChzKXt2YXIgbz11KHRoaXMpLGk9by5wcm90b3R5cGUsYT14KGFyZ3VtZW50cywxKSxDPWZ1bmN0aW9uIGJvdW5kKCl7dmFyIGk9TChhLHgoYXJndW1lbnRzKSk7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBDP2Z1bmN0aW9uKHMsbyxpKXtpZighdygkLG8pKXtmb3IodmFyIGE9W10sdT0wO3U8bzt1KyspYVt1XT0iYVsiK3UrIl0iOyRbb109aigiQyxhIiwicmV0dXJuIG5ldyBDKCIrQihhLCIsIikrIikiKX1yZXR1cm4gJFtvXShzLGkpfShvLGkubGVuZ3RoLGkpOm8uYXBwbHkocyxpKX07cmV0dXJuIF8oaSkmJihDLnByb3RvdHlwZT1pKSxDfX0sNDUwODM6KHMsbyxpKT0+e3ZhciBhPWkoMTg4MiksdT1pKDg3Mjk2KSxfPWkoMjM4MDUpLHc9aSg0NzQ3MykseD0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxDPUZ1bmN0aW9uLnByb3RvdHlwZSxqPU9iamVjdC5wcm90b3R5cGUsTD1DLnRvU3RyaW5nLEI9ai5oYXNPd25Qcm9wZXJ0eSwkPVJlZ0V4cCgiXiIrTC5jYWxsKEIpLnJlcGxhY2UoL1tcXF4kLiorPygpW1xde318XS9nLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpO3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlSXNOYXRpdmUocyl7cmV0dXJuISghXyhzKXx8dShzKSkmJihhKHMpPyQ6eCkudGVzdCh3KHMpKX19LDQ1NDEyOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGEsdT1pKDY1NjA2KTtzLmV4cG9ydHM9UmVhZGFibGUsUmVhZGFibGUuUmVhZGFibGVTdGF0ZT1SZWFkYWJsZVN0YXRlO2koMzcwMDcpLkV2ZW50RW1pdHRlcjt2YXIgXz1mdW5jdGlvbiBFRWxpc3RlbmVyQ291bnQocyxvKXtyZXR1cm4gcy5saXN0ZW5lcnMobykubGVuZ3RofSx3PWkoNDAzNDUpLHg9aSg0ODI4NykuQnVmZmVyLEM9KHZvaWQgMCE9PWkuZz9pLmc6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnt9KS5VaW50OEFycmF5fHxmdW5jdGlvbigpe307dmFyIGosTD1pKDc5ODM4KTtqPUwmJkwuZGVidWdsb2c/TC5kZWJ1Z2xvZygic3RyZWFtIik6ZnVuY3Rpb24gZGVidWcoKXt9O3ZhciBCLCQsVixVPWkoODAzNDUpLHo9aSg3NTg5NiksWT1pKDY1MjkxKS5nZXRIaWdoV2F0ZXJNYXJrLFo9aSg4NjA0OCkuRixlZT1aLkVSUl9JTlZBTElEX0FSR19UWVBFLGllPVouRVJSX1NUUkVBTV9QVVNIX0FGVEVSX0VPRixhZT1aLkVSUl9NRVRIT0RfTk9UX0lNUExFTUVOVEVELGNlPVouRVJSX1NUUkVBTV9VTlNISUZUX0FGVEVSX0VORF9FVkVOVDtpKDU2Njk4KShSZWFkYWJsZSx3KTt2YXIgbGU9ei5lcnJvck9yRGVzdHJveSxwZT1bImVycm9yIiwiY2xvc2UiLCJkZXN0cm95IiwicGF1c2UiLCJyZXN1bWUiXTtmdW5jdGlvbiBSZWFkYWJsZVN0YXRlKHMsbyx1KXthPWF8fGkoMjUzODIpLHM9c3x8e30sImJvb2xlYW4iIT10eXBlb2YgdSYmKHU9byBpbnN0YW5jZW9mIGEpLHRoaXMub2JqZWN0TW9kZT0hIXMub2JqZWN0TW9kZSx1JiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISFzLnJlYWRhYmxlT2JqZWN0TW9kZSksdGhpcy5oaWdoV2F0ZXJNYXJrPVkodGhpcyxzLCJyZWFkYWJsZUhpZ2hXYXRlck1hcmsiLHUpLHRoaXMuYnVmZmVyPW5ldyBVLHRoaXMubGVuZ3RoPTAsdGhpcy5waXBlcz1udWxsLHRoaXMucGlwZXNDb3VudD0wLHRoaXMuZmxvd2luZz1udWxsLHRoaXMuZW5kZWQ9ITEsdGhpcy5lbmRFbWl0dGVkPSExLHRoaXMucmVhZGluZz0hMSx0aGlzLnN5bmM9ITAsdGhpcy5uZWVkUmVhZGFibGU9ITEsdGhpcy5lbWl0dGVkUmVhZGFibGU9ITEsdGhpcy5yZWFkYWJsZUxpc3RlbmluZz0hMSx0aGlzLnJlc3VtZVNjaGVkdWxlZD0hMSx0aGlzLnBhdXNlZD0hMCx0aGlzLmVtaXRDbG9zZT0hMSE9PXMuZW1pdENsb3NlLHRoaXMuYXV0b0Rlc3Ryb3k9ISFzLmF1dG9EZXN0cm95LHRoaXMuZGVzdHJveWVkPSExLHRoaXMuZGVmYXVsdEVuY29kaW5nPXMuZGVmYXVsdEVuY29kaW5nfHwidXRmOCIsdGhpcy5hd2FpdERyYWluPTAsdGhpcy5yZWFkaW5nTW9yZT0hMSx0aGlzLmRlY29kZXI9bnVsbCx0aGlzLmVuY29kaW5nPW51bGwscy5lbmNvZGluZyYmKEJ8fChCPWkoODMxNDEpLkkpLHRoaXMuZGVjb2Rlcj1uZXcgQihzLmVuY29kaW5nKSx0aGlzLmVuY29kaW5nPXMuZW5jb2RpbmcpfWZ1bmN0aW9uIFJlYWRhYmxlKHMpe2lmKGE9YXx8aSgyNTM4MiksISh0aGlzIGluc3RhbmNlb2YgUmVhZGFibGUpKXJldHVybiBuZXcgUmVhZGFibGUocyk7dmFyIG89dGhpcyBpbnN0YW5jZW9mIGE7dGhpcy5fcmVhZGFibGVTdGF0ZT1uZXcgUmVhZGFibGVTdGF0ZShzLHRoaXMsbyksdGhpcy5yZWFkYWJsZT0hMCxzJiYoImZ1bmN0aW9uIj09dHlwZW9mIHMucmVhZCYmKHRoaXMuX3JlYWQ9cy5yZWFkKSwiZnVuY3Rpb24iPT10eXBlb2Ygcy5kZXN0cm95JiYodGhpcy5fZGVzdHJveT1zLmRlc3Ryb3kpKSx3LmNhbGwodGhpcyl9ZnVuY3Rpb24gcmVhZGFibGVBZGRDaHVuayhzLG8saSxhLHUpe2ooInJlYWRhYmxlQWRkQ2h1bmsiLG8pO3ZhciBfLHc9cy5fcmVhZGFibGVTdGF0ZTtpZihudWxsPT09byl3LnJlYWRpbmc9ITEsZnVuY3Rpb24gb25Fb2ZDaHVuayhzLG8pe2lmKGooIm9uRW9mQ2h1bmsiKSxvLmVuZGVkKXJldHVybjtpZihvLmRlY29kZXIpe3ZhciBpPW8uZGVjb2Rlci5lbmQoKTtpJiZpLmxlbmd0aCYmKG8uYnVmZmVyLnB1c2goaSksby5sZW5ndGgrPW8ub2JqZWN0TW9kZT8xOmkubGVuZ3RoKX1vLmVuZGVkPSEwLG8uc3luYz9lbWl0UmVhZGFibGUocyk6KG8ubmVlZFJlYWRhYmxlPSExLG8uZW1pdHRlZFJlYWRhYmxlfHwoby5lbWl0dGVkUmVhZGFibGU9ITAsZW1pdFJlYWRhYmxlXyhzKSkpfShzLHcpO2Vsc2UgaWYodXx8KF89ZnVuY3Rpb24gY2h1bmtJbnZhbGlkKHMsbyl7dmFyIGk7KGZ1bmN0aW9uIF9pc1VpbnQ4QXJyYXkocyl7cmV0dXJuIHguaXNCdWZmZXIocyl8fHMgaW5zdGFuY2VvZiBDfSkobyl8fCJzdHJpbmciPT10eXBlb2Ygb3x8dm9pZCAwPT09b3x8cy5vYmplY3RNb2RlfHwoaT1uZXcgZWUoImNodW5rIixbInN0cmluZyIsIkJ1ZmZlciIsIlVpbnQ4QXJyYXkiXSxvKSk7cmV0dXJuIGl9KHcsbykpLF8pbGUocyxfKTtlbHNlIGlmKHcub2JqZWN0TW9kZXx8byYmby5sZW5ndGg+MClpZigic3RyaW5nIj09dHlwZW9mIG98fHcub2JqZWN0TW9kZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKG8pPT09eC5wcm90b3R5cGV8fChvPWZ1bmN0aW9uIF91aW50OEFycmF5VG9CdWZmZXIocyl7cmV0dXJuIHguZnJvbShzKX0obykpLGEpdy5lbmRFbWl0dGVkP2xlKHMsbmV3IGNlKTphZGRDaHVuayhzLHcsbywhMCk7ZWxzZSBpZih3LmVuZGVkKWxlKHMsbmV3IGllKTtlbHNle2lmKHcuZGVzdHJveWVkKXJldHVybiExO3cucmVhZGluZz0hMSx3LmRlY29kZXImJiFpPyhvPXcuZGVjb2Rlci53cml0ZShvKSx3Lm9iamVjdE1vZGV8fDAhPT1vLmxlbmd0aD9hZGRDaHVuayhzLHcsbywhMSk6bWF5YmVSZWFkTW9yZShzLHcpKTphZGRDaHVuayhzLHcsbywhMSl9ZWxzZSBhfHwody5yZWFkaW5nPSExLG1heWJlUmVhZE1vcmUocyx3KSk7cmV0dXJuIXcuZW5kZWQmJih3Lmxlbmd0aDx3LmhpZ2hXYXRlck1hcmt8fDA9PT13Lmxlbmd0aCl9ZnVuY3Rpb24gYWRkQ2h1bmsocyxvLGksYSl7by5mbG93aW5nJiYwPT09by5sZW5ndGgmJiFvLnN5bmM/KG8uYXdhaXREcmFpbj0wLHMuZW1pdCgiZGF0YSIsaSkpOihvLmxlbmd0aCs9by5vYmplY3RNb2RlPzE6aS5sZW5ndGgsYT9vLmJ1ZmZlci51bnNoaWZ0KGkpOm8uYnVmZmVyLnB1c2goaSksby5uZWVkUmVhZGFibGUmJmVtaXRSZWFkYWJsZShzKSksbWF5YmVSZWFkTW9yZShzLG8pfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWFkYWJsZS5wcm90b3R5cGUsImRlc3Ryb3llZCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uIGdldCgpe3JldHVybiB2b2lkIDAhPT10aGlzLl9yZWFkYWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZH0sc2V0OmZ1bmN0aW9uIHNldChzKXt0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9cyl9fSksUmVhZGFibGUucHJvdG90eXBlLmRlc3Ryb3k9ei5kZXN0cm95LFJlYWRhYmxlLnByb3RvdHlwZS5fdW5kZXN0cm95PXoudW5kZXN0cm95LFJlYWRhYmxlLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihzLG8pe28ocyl9LFJlYWRhYmxlLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKHMsbyl7dmFyIGksYT10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiBhLm9iamVjdE1vZGU/aT0hMDoic3RyaW5nIj09dHlwZW9mIHMmJigobz1vfHxhLmRlZmF1bHRFbmNvZGluZykhPT1hLmVuY29kaW5nJiYocz14LmZyb20ocyxvKSxvPSIiKSxpPSEwKSxyZWFkYWJsZUFkZENodW5rKHRoaXMscyxvLCExLGkpfSxSZWFkYWJsZS5wcm90b3R5cGUudW5zaGlmdD1mdW5jdGlvbihzKXtyZXR1cm4gcmVhZGFibGVBZGRDaHVuayh0aGlzLHMsbnVsbCwhMCwhMSl9LFJlYWRhYmxlLnByb3RvdHlwZS5pc1BhdXNlZD1mdW5jdGlvbigpe3JldHVybiExPT09dGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nfSxSZWFkYWJsZS5wcm90b3R5cGUuc2V0RW5jb2Rpbmc9ZnVuY3Rpb24ocyl7Qnx8KEI9aSg4MzE0MSkuSSk7dmFyIG89bmV3IEIocyk7dGhpcy5fcmVhZGFibGVTdGF0ZS5kZWNvZGVyPW8sdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmNvZGluZz10aGlzLl9yZWFkYWJsZVN0YXRlLmRlY29kZXIuZW5jb2Rpbmc7Zm9yKHZhciBhPXRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyLmhlYWQsdT0iIjtudWxsIT09YTspdSs9by53cml0ZShhLmRhdGEpLGE9YS5uZXh0O3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlci5jbGVhcigpLCIiIT09dSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXIucHVzaCh1KSx0aGlzLl9yZWFkYWJsZVN0YXRlLmxlbmd0aD11Lmxlbmd0aCx0aGlzfTt2YXIgZGU9MTA3Mzc0MTgyNDtmdW5jdGlvbiBob3dNdWNoVG9SZWFkKHMsbyl7cmV0dXJuIHM8PTB8fDA9PT1vLmxlbmd0aCYmby5lbmRlZD8wOm8ub2JqZWN0TW9kZT8xOnMhPXM/by5mbG93aW5nJiZvLmxlbmd0aD9vLmJ1ZmZlci5oZWFkLmRhdGEubGVuZ3RoOm8ubGVuZ3RoOihzPm8uaGlnaFdhdGVyTWFyayYmKG8uaGlnaFdhdGVyTWFyaz1mdW5jdGlvbiBjb21wdXRlTmV3SGlnaFdhdGVyTWFyayhzKXtyZXR1cm4gcz49ZGU/cz1kZToocy0tLHN8PXM+Pj4xLHN8PXM+Pj4yLHN8PXM+Pj40LHN8PXM+Pj44LHN8PXM+Pj4xNixzKyspLHN9KHMpKSxzPD1vLmxlbmd0aD9zOm8uZW5kZWQ/by5sZW5ndGg6KG8ubmVlZFJlYWRhYmxlPSEwLDApKX1mdW5jdGlvbiBlbWl0UmVhZGFibGUocyl7dmFyIG89cy5fcmVhZGFibGVTdGF0ZTtqKCJlbWl0UmVhZGFibGUiLG8ubmVlZFJlYWRhYmxlLG8uZW1pdHRlZFJlYWRhYmxlKSxvLm5lZWRSZWFkYWJsZT0hMSxvLmVtaXR0ZWRSZWFkYWJsZXx8KGooImVtaXRSZWFkYWJsZSIsby5mbG93aW5nKSxvLmVtaXR0ZWRSZWFkYWJsZT0hMCx1Lm5leHRUaWNrKGVtaXRSZWFkYWJsZV8scykpfWZ1bmN0aW9uIGVtaXRSZWFkYWJsZV8ocyl7dmFyIG89cy5fcmVhZGFibGVTdGF0ZTtqKCJlbWl0UmVhZGFibGVfIixvLmRlc3Ryb3llZCxvLmxlbmd0aCxvLmVuZGVkKSxvLmRlc3Ryb3llZHx8IW8ubGVuZ3RoJiYhby5lbmRlZHx8KHMuZW1pdCgicmVhZGFibGUiKSxvLmVtaXR0ZWRSZWFkYWJsZT0hMSksby5uZWVkUmVhZGFibGU9IW8uZmxvd2luZyYmIW8uZW5kZWQmJm8ubGVuZ3RoPD1vLmhpZ2hXYXRlck1hcmssZmxvdyhzKX1mdW5jdGlvbiBtYXliZVJlYWRNb3JlKHMsbyl7by5yZWFkaW5nTW9yZXx8KG8ucmVhZGluZ01vcmU9ITAsdS5uZXh0VGljayhtYXliZVJlYWRNb3JlXyxzLG8pKX1mdW5jdGlvbiBtYXliZVJlYWRNb3JlXyhzLG8pe2Zvcig7IW8ucmVhZGluZyYmIW8uZW5kZWQmJihvLmxlbmd0aDxvLmhpZ2hXYXRlck1hcmt8fG8uZmxvd2luZyYmMD09PW8ubGVuZ3RoKTspe3ZhciBpPW8ubGVuZ3RoO2lmKGooIm1heWJlUmVhZE1vcmUgcmVhZCAwIikscy5yZWFkKDApLGk9PT1vLmxlbmd0aClicmVha31vLnJlYWRpbmdNb3JlPSExfWZ1bmN0aW9uIHVwZGF0ZVJlYWRhYmxlTGlzdGVuaW5nKHMpe3ZhciBvPXMuX3JlYWRhYmxlU3RhdGU7by5yZWFkYWJsZUxpc3RlbmluZz1zLmxpc3RlbmVyQ291bnQoInJlYWRhYmxlIik+MCxvLnJlc3VtZVNjaGVkdWxlZCYmIW8ucGF1c2VkP28uZmxvd2luZz0hMDpzLmxpc3RlbmVyQ291bnQoImRhdGEiKT4wJiZzLnJlc3VtZSgpfWZ1bmN0aW9uIG5SZWFkaW5nTmV4dFRpY2socyl7aigicmVhZGFibGUgbmV4dHRpY2sgcmVhZCAwIikscy5yZWFkKDApfWZ1bmN0aW9uIHJlc3VtZV8ocyxvKXtqKCJyZXN1bWUiLG8ucmVhZGluZyksby5yZWFkaW5nfHxzLnJlYWQoMCksby5yZXN1bWVTY2hlZHVsZWQ9ITEscy5lbWl0KCJyZXN1bWUiKSxmbG93KHMpLG8uZmxvd2luZyYmIW8ucmVhZGluZyYmcy5yZWFkKDApfWZ1bmN0aW9uIGZsb3cocyl7dmFyIG89cy5fcmVhZGFibGVTdGF0ZTtmb3IoaigiZmxvdyIsby5mbG93aW5nKTtvLmZsb3dpbmcmJm51bGwhPT1zLnJlYWQoKTspO31mdW5jdGlvbiBmcm9tTGlzdChzLG8pe3JldHVybiAwPT09by5sZW5ndGg/bnVsbDooby5vYmplY3RNb2RlP2k9by5idWZmZXIuc2hpZnQoKTohc3x8cz49by5sZW5ndGg/KGk9by5kZWNvZGVyP28uYnVmZmVyLmpvaW4oIiIpOjE9PT1vLmJ1ZmZlci5sZW5ndGg/by5idWZmZXIuZmlyc3QoKTpvLmJ1ZmZlci5jb25jYXQoby5sZW5ndGgpLG8uYnVmZmVyLmNsZWFyKCkpOmk9by5idWZmZXIuY29uc3VtZShzLG8uZGVjb2RlciksaSk7dmFyIGl9ZnVuY3Rpb24gZW5kUmVhZGFibGUocyl7dmFyIG89cy5fcmVhZGFibGVTdGF0ZTtqKCJlbmRSZWFkYWJsZSIsby5lbmRFbWl0dGVkKSxvLmVuZEVtaXR0ZWR8fChvLmVuZGVkPSEwLHUubmV4dFRpY2soZW5kUmVhZGFibGVOVCxvLHMpKX1mdW5jdGlvbiBlbmRSZWFkYWJsZU5UKHMsbyl7aWYoaigiZW5kUmVhZGFibGVOVCIscy5lbmRFbWl0dGVkLHMubGVuZ3RoKSwhcy5lbmRFbWl0dGVkJiYwPT09cy5sZW5ndGgmJihzLmVuZEVtaXR0ZWQ9ITAsby5yZWFkYWJsZT0hMSxvLmVtaXQoImVuZCIpLHMuYXV0b0Rlc3Ryb3kpKXt2YXIgaT1vLl93cml0YWJsZVN0YXRlOyghaXx8aS5hdXRvRGVzdHJveSYmaS5maW5pc2hlZCkmJm8uZGVzdHJveSgpfX1mdW5jdGlvbiBpbmRleE9mKHMsbyl7Zm9yKHZhciBpPTAsYT1zLmxlbmd0aDtpPGE7aSsrKWlmKHNbaV09PT1vKXJldHVybiBpO3JldHVybi0xfVJlYWRhYmxlLnByb3RvdHlwZS5yZWFkPWZ1bmN0aW9uKHMpe2ooInJlYWQiLHMpLHM9cGFyc2VJbnQocywxMCk7dmFyIG89dGhpcy5fcmVhZGFibGVTdGF0ZSxpPXM7aWYoMCE9PXMmJihvLmVtaXR0ZWRSZWFkYWJsZT0hMSksMD09PXMmJm8ubmVlZFJlYWRhYmxlJiYoKDAhPT1vLmhpZ2hXYXRlck1hcms/by5sZW5ndGg+PW8uaGlnaFdhdGVyTWFyazpvLmxlbmd0aD4wKXx8by5lbmRlZCkpcmV0dXJuIGooInJlYWQ6IGVtaXRSZWFkYWJsZSIsby5sZW5ndGgsby5lbmRlZCksMD09PW8ubGVuZ3RoJiZvLmVuZGVkP2VuZFJlYWRhYmxlKHRoaXMpOmVtaXRSZWFkYWJsZSh0aGlzKSxudWxsO2lmKDA9PT0ocz1ob3dNdWNoVG9SZWFkKHMsbykpJiZvLmVuZGVkKXJldHVybiAwPT09by5sZW5ndGgmJmVuZFJlYWRhYmxlKHRoaXMpLG51bGw7dmFyIGEsdT1vLm5lZWRSZWFkYWJsZTtyZXR1cm4gaigibmVlZCByZWFkYWJsZSIsdSksKDA9PT1vLmxlbmd0aHx8by5sZW5ndGgtczxvLmhpZ2hXYXRlck1hcmspJiZqKCJsZW5ndGggbGVzcyB0aGFuIHdhdGVybWFyayIsdT0hMCksby5lbmRlZHx8by5yZWFkaW5nP2ooInJlYWRpbmcgb3IgZW5kZWQiLHU9ITEpOnUmJihqKCJkbyByZWFkIiksby5yZWFkaW5nPSEwLG8uc3luYz0hMCwwPT09by5sZW5ndGgmJihvLm5lZWRSZWFkYWJsZT0hMCksdGhpcy5fcmVhZChvLmhpZ2hXYXRlck1hcmspLG8uc3luYz0hMSxvLnJlYWRpbmd8fChzPWhvd011Y2hUb1JlYWQoaSxvKSkpLG51bGw9PT0oYT1zPjA/ZnJvbUxpc3QocyxvKTpudWxsKT8oby5uZWVkUmVhZGFibGU9by5sZW5ndGg8PW8uaGlnaFdhdGVyTWFyayxzPTApOihvLmxlbmd0aC09cyxvLmF3YWl0RHJhaW49MCksMD09PW8ubGVuZ3RoJiYoby5lbmRlZHx8KG8ubmVlZFJlYWRhYmxlPSEwKSxpIT09cyYmby5lbmRlZCYmZW5kUmVhZGFibGUodGhpcykpLG51bGwhPT1hJiZ0aGlzLmVtaXQoImRhdGEiLGEpLGF9LFJlYWRhYmxlLnByb3RvdHlwZS5fcmVhZD1mdW5jdGlvbihzKXtsZSh0aGlzLG5ldyBhZSgiX3JlYWQoKSIpKX0sUmVhZGFibGUucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24ocyxvKXt2YXIgaT10aGlzLGE9dGhpcy5fcmVhZGFibGVTdGF0ZTtzd2l0Y2goYS5waXBlc0NvdW50KXtjYXNlIDA6YS5waXBlcz1zO2JyZWFrO2Nhc2UgMTphLnBpcGVzPVthLnBpcGVzLHNdO2JyZWFrO2RlZmF1bHQ6YS5waXBlcy5wdXNoKHMpfWEucGlwZXNDb3VudCs9MSxqKCJwaXBlIGNvdW50PSVkIG9wdHM9JWoiLGEucGlwZXNDb3VudCxvKTt2YXIgdz0oIW98fCExIT09by5lbmQpJiZzIT09dS5zdGRvdXQmJnMhPT11LnN0ZGVycj9vbmVuZDp1bnBpcGU7ZnVuY3Rpb24gb251bnBpcGUobyx1KXtqKCJvbnVucGlwZSIpLG89PT1pJiZ1JiYhMT09PXUuaGFzVW5waXBlZCYmKHUuaGFzVW5waXBlZD0hMCxmdW5jdGlvbiBjbGVhbnVwKCl7aigiY2xlYW51cCIpLHMucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixvbmNsb3NlKSxzLnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLG9uZmluaXNoKSxzLnJlbW92ZUxpc3RlbmVyKCJkcmFpbiIseCkscy5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLG9uZXJyb3IpLHMucmVtb3ZlTGlzdGVuZXIoInVucGlwZSIsb251bnBpcGUpLGkucmVtb3ZlTGlzdGVuZXIoImVuZCIsb25lbmQpLGkucmVtb3ZlTGlzdGVuZXIoImVuZCIsdW5waXBlKSxpLnJlbW92ZUxpc3RlbmVyKCJkYXRhIixvbmRhdGEpLEM9ITAsIWEuYXdhaXREcmFpbnx8cy5fd3JpdGFibGVTdGF0ZSYmIXMuX3dyaXRhYmxlU3RhdGUubmVlZERyYWlufHx4KCl9KCkpfWZ1bmN0aW9uIG9uZW5kKCl7aigib25lbmQiKSxzLmVuZCgpfWEuZW5kRW1pdHRlZD91Lm5leHRUaWNrKHcpOmkub25jZSgiZW5kIix3KSxzLm9uKCJ1bnBpcGUiLG9udW5waXBlKTt2YXIgeD1mdW5jdGlvbiBwaXBlT25EcmFpbihzKXtyZXR1cm4gZnVuY3Rpb24gcGlwZU9uRHJhaW5GdW5jdGlvblJlc3VsdCgpe3ZhciBvPXMuX3JlYWRhYmxlU3RhdGU7aigicGlwZU9uRHJhaW4iLG8uYXdhaXREcmFpbiksby5hd2FpdERyYWluJiZvLmF3YWl0RHJhaW4tLSwwPT09by5hd2FpdERyYWluJiZfKHMsImRhdGEiKSYmKG8uZmxvd2luZz0hMCxmbG93KHMpKX19KGkpO3Mub24oImRyYWluIix4KTt2YXIgQz0hMTtmdW5jdGlvbiBvbmRhdGEobyl7aigib25kYXRhIik7dmFyIHU9cy53cml0ZShvKTtqKCJkZXN0LndyaXRlIix1KSwhMT09PXUmJigoMT09PWEucGlwZXNDb3VudCYmYS5waXBlcz09PXN8fGEucGlwZXNDb3VudD4xJiYtMSE9PWluZGV4T2YoYS5waXBlcyxzKSkmJiFDJiYoaigiZmFsc2Ugd3JpdGUgcmVzcG9uc2UsIHBhdXNlIixhLmF3YWl0RHJhaW4pLGEuYXdhaXREcmFpbisrKSxpLnBhdXNlKCkpfWZ1bmN0aW9uIG9uZXJyb3Iobyl7aigib25lcnJvciIsbyksdW5waXBlKCkscy5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLG9uZXJyb3IpLDA9PT1fKHMsImVycm9yIikmJmxlKHMsbyl9ZnVuY3Rpb24gb25jbG9zZSgpe3MucmVtb3ZlTGlzdGVuZXIoImZpbmlzaCIsb25maW5pc2gpLHVucGlwZSgpfWZ1bmN0aW9uIG9uZmluaXNoKCl7aigib25maW5pc2giKSxzLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsb25jbG9zZSksdW5waXBlKCl9ZnVuY3Rpb24gdW5waXBlKCl7aigidW5waXBlIiksaS51bnBpcGUocyl9cmV0dXJuIGkub24oImRhdGEiLG9uZGF0YSksZnVuY3Rpb24gcHJlcGVuZExpc3RlbmVyKHMsbyxpKXtpZigiZnVuY3Rpb24iPT10eXBlb2Ygcy5wcmVwZW5kTGlzdGVuZXIpcmV0dXJuIHMucHJlcGVuZExpc3RlbmVyKG8saSk7cy5fZXZlbnRzJiZzLl9ldmVudHNbb10/QXJyYXkuaXNBcnJheShzLl9ldmVudHNbb10pP3MuX2V2ZW50c1tvXS51bnNoaWZ0KGkpOnMuX2V2ZW50c1tvXT1baSxzLl9ldmVudHNbb11dOnMub24obyxpKX0ocywiZXJyb3IiLG9uZXJyb3IpLHMub25jZSgiY2xvc2UiLG9uY2xvc2UpLHMub25jZSgiZmluaXNoIixvbmZpbmlzaCkscy5lbWl0KCJwaXBlIixpKSxhLmZsb3dpbmd8fChqKCJwaXBlIHJlc3VtZSIpLGkucmVzdW1lKCkpLHN9LFJlYWRhYmxlLnByb3RvdHlwZS51bnBpcGU9ZnVuY3Rpb24ocyl7dmFyIG89dGhpcy5fcmVhZGFibGVTdGF0ZSxpPXtoYXNVbnBpcGVkOiExfTtpZigwPT09by5waXBlc0NvdW50KXJldHVybiB0aGlzO2lmKDE9PT1vLnBpcGVzQ291bnQpcmV0dXJuIHMmJnMhPT1vLnBpcGVzfHwoc3x8KHM9by5waXBlcyksby5waXBlcz1udWxsLG8ucGlwZXNDb3VudD0wLG8uZmxvd2luZz0hMSxzJiZzLmVtaXQoInVucGlwZSIsdGhpcyxpKSksdGhpcztpZighcyl7dmFyIGE9by5waXBlcyx1PW8ucGlwZXNDb3VudDtvLnBpcGVzPW51bGwsby5waXBlc0NvdW50PTAsby5mbG93aW5nPSExO2Zvcih2YXIgXz0wO188dTtfKyspYVtfXS5lbWl0KCJ1bnBpcGUiLHRoaXMse2hhc1VucGlwZWQ6ITF9KTtyZXR1cm4gdGhpc312YXIgdz1pbmRleE9mKG8ucGlwZXMscyk7cmV0dXJuLTE9PT13fHwoby5waXBlcy5zcGxpY2UodywxKSxvLnBpcGVzQ291bnQtPTEsMT09PW8ucGlwZXNDb3VudCYmKG8ucGlwZXM9by5waXBlc1swXSkscy5lbWl0KCJ1bnBpcGUiLHRoaXMsaSkpLHRoaXN9LFJlYWRhYmxlLnByb3RvdHlwZS5vbj1mdW5jdGlvbihzLG8pe3ZhciBpPXcucHJvdG90eXBlLm9uLmNhbGwodGhpcyxzLG8pLGE9dGhpcy5fcmVhZGFibGVTdGF0ZTtyZXR1cm4iZGF0YSI9PT1zPyhhLnJlYWRhYmxlTGlzdGVuaW5nPXRoaXMubGlzdGVuZXJDb3VudCgicmVhZGFibGUiKT4wLCExIT09YS5mbG93aW5nJiZ0aGlzLnJlc3VtZSgpKToicmVhZGFibGUiPT09cyYmKGEuZW5kRW1pdHRlZHx8YS5yZWFkYWJsZUxpc3RlbmluZ3x8KGEucmVhZGFibGVMaXN0ZW5pbmc9YS5uZWVkUmVhZGFibGU9ITAsYS5mbG93aW5nPSExLGEuZW1pdHRlZFJlYWRhYmxlPSExLGooIm9uIHJlYWRhYmxlIixhLmxlbmd0aCxhLnJlYWRpbmcpLGEubGVuZ3RoP2VtaXRSZWFkYWJsZSh0aGlzKTphLnJlYWRpbmd8fHUubmV4dFRpY2soblJlYWRpbmdOZXh0VGljayx0aGlzKSkpLGl9LFJlYWRhYmxlLnByb3RvdHlwZS5hZGRMaXN0ZW5lcj1SZWFkYWJsZS5wcm90b3R5cGUub24sUmVhZGFibGUucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKHMsbyl7dmFyIGk9dy5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIuY2FsbCh0aGlzLHMsbyk7cmV0dXJuInJlYWRhYmxlIj09PXMmJnUubmV4dFRpY2sodXBkYXRlUmVhZGFibGVMaXN0ZW5pbmcsdGhpcyksaX0sUmVhZGFibGUucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1mdW5jdGlvbihzKXt2YXIgbz13LnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnMuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiJyZWFkYWJsZSIhPT1zJiZ2b2lkIDAhPT1zfHx1Lm5leHRUaWNrKHVwZGF0ZVJlYWRhYmxlTGlzdGVuaW5nLHRoaXMpLG99LFJlYWRhYmxlLnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXt2YXIgcz10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiBzLmZsb3dpbmd8fChqKCJyZXN1bWUiKSxzLmZsb3dpbmc9IXMucmVhZGFibGVMaXN0ZW5pbmcsZnVuY3Rpb24gcmVzdW1lKHMsbyl7by5yZXN1bWVTY2hlZHVsZWR8fChvLnJlc3VtZVNjaGVkdWxlZD0hMCx1Lm5leHRUaWNrKHJlc3VtZV8scyxvKSl9KHRoaXMscykpLHMucGF1c2VkPSExLHRoaXN9LFJlYWRhYmxlLnByb3RvdHlwZS5wYXVzZT1mdW5jdGlvbigpe3JldHVybiBqKCJjYWxsIHBhdXNlIGZsb3dpbmc9JWoiLHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyksITEhPT10aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcmJihqKCJwYXVzZSIpLHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZz0hMSx0aGlzLmVtaXQoInBhdXNlIikpLHRoaXMuX3JlYWRhYmxlU3RhdGUucGF1c2VkPSEwLHRoaXN9LFJlYWRhYmxlLnByb3RvdHlwZS53cmFwPWZ1bmN0aW9uKHMpe3ZhciBvPXRoaXMsaT10aGlzLl9yZWFkYWJsZVN0YXRlLGE9ITE7Zm9yKHZhciB1IGluIHMub24oImVuZCIsKGZ1bmN0aW9uKCl7aWYoaigid3JhcHBlZCBlbmQiKSxpLmRlY29kZXImJiFpLmVuZGVkKXt2YXIgcz1pLmRlY29kZXIuZW5kKCk7cyYmcy5sZW5ndGgmJm8ucHVzaChzKX1vLnB1c2gobnVsbCl9KSkscy5vbigiZGF0YSIsKGZ1bmN0aW9uKHUpeyhqKCJ3cmFwcGVkIGRhdGEiKSxpLmRlY29kZXImJih1PWkuZGVjb2Rlci53cml0ZSh1KSksaS5vYmplY3RNb2RlJiZudWxsPT11KXx8KGkub2JqZWN0TW9kZXx8dSYmdS5sZW5ndGgpJiYoby5wdXNoKHUpfHwoYT0hMCxzLnBhdXNlKCkpKX0pKSxzKXZvaWQgMD09PXRoaXNbdV0mJiJmdW5jdGlvbiI9PXR5cGVvZiBzW3VdJiYodGhpc1t1XT1mdW5jdGlvbiBtZXRob2RXcmFwKG8pe3JldHVybiBmdW5jdGlvbiBtZXRob2RXcmFwUmV0dXJuRnVuY3Rpb24oKXtyZXR1cm4gc1tvXS5hcHBseShzLGFyZ3VtZW50cyl9fSh1KSk7Zm9yKHZhciBfPTA7XzxwZS5sZW5ndGg7XysrKXMub24ocGVbX10sdGhpcy5lbWl0LmJpbmQodGhpcyxwZVtfXSkpO3JldHVybiB0aGlzLl9yZWFkPWZ1bmN0aW9uKG8pe2ooIndyYXBwZWQgX3JlYWQiLG8pLGEmJihhPSExLHMucmVzdW1lKCkpfSx0aGlzfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoUmVhZGFibGUucHJvdG90eXBlW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT0kJiYoJD1pKDI5NTUpKSwkKHRoaXMpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlYWRhYmxlLnByb3RvdHlwZSwicmVhZGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUuaGlnaFdhdGVyTWFya319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVhZGFibGUucHJvdG90eXBlLCJyZWFkYWJsZUJ1ZmZlciIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uIGdldCgpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVhZGFibGUucHJvdG90eXBlLCJyZWFkYWJsZUZsb3dpbmciLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbiBnZXQoKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nfSxzZXQ6ZnVuY3Rpb24gc2V0KHMpe3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmc9cyl9fSksUmVhZGFibGUuX2Zyb21MaXN0PWZyb21MaXN0LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWFkYWJsZS5wcm90b3R5cGUsInJlYWRhYmxlTGVuZ3RoIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUubGVuZ3RofX0pLCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihSZWFkYWJsZS5mcm9tPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHZvaWQgMD09PVYmJihWPWkoNTUxNTcpKSxWKFJlYWRhYmxlLHMsbyl9KX0sNDU0MzQ6cz0+e3ZhciBvPS9bYS16XVtBLVpdfFtBLVpdezJ9W2Etel18WzAtOV1bYS16QS1aXXxbYS16QS1aXVswLTldfFteYS16QS1aMC05IF0vO3MuZXhwb3J0cz1mdW5jdGlvbiBoYXNVbmljb2RlV29yZChzKXtyZXR1cm4gby50ZXN0KHMpfX0sNDU1Mzk6KHMsbyxpKT0+e3ZhciBhPWkoNDA4ODIpLHU9aSg1MDgyOCksXz1pKDY2NjQ1KSx3PVJlZ0V4cCgiWyfigJldIiwiZyIpO3MuZXhwb3J0cz1mdW5jdGlvbiBjcmVhdGVDb21wb3VuZGVyKHMpe3JldHVybiBmdW5jdGlvbihvKXtyZXR1cm4gYShfKHUobykucmVwbGFjZSh3LCIiKSkscywiIil9fX0sNDU4MDc6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDE5MDcpLHU9YSh7fS50b1N0cmluZyksXz1hKCIiLnNsaWNlKTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyl7cmV0dXJuIF8odShzKSw4LC0xKX19LDQ1ODkxOihzLG8saSk9Pnt2YXIgYT1pKDUxODczKSx1PWkoNzI0MjgpLF89aSg1NjQ0OSksdz1hP2EuaXNDb25jYXRTcHJlYWRhYmxlOnZvaWQgMDtzLmV4cG9ydHM9ZnVuY3Rpb24gaXNGbGF0dGVuYWJsZShzKXtyZXR1cm4gXyhzKXx8dShzKXx8ISEodyYmcyYmc1t3XSl9fSw0NTk1MTpmdW5jdGlvbihzLG8saSl7InVzZSBzdHJpY3QiO3ZhciBjaGVjaz1mdW5jdGlvbihzKXtyZXR1cm4gcyYmcy5NYXRoPT09TWF0aCYmc307cy5leHBvcnRzPWNoZWNrKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyl8fGNoZWNrKCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cpfHxjaGVjaygib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYpfHxjaGVjaygib2JqZWN0Ij09dHlwZW9mIGkuZyYmaS5nKXx8Y2hlY2soIm9iamVjdCI9PXR5cGVvZiB0aGlzJiZ0aGlzKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKX0sNDU5ODE6cz0+e2Z1bmN0aW9uIGRlZXBGcmVlemUocyl7cmV0dXJuIHMgaW5zdGFuY2VvZiBNYXA/cy5jbGVhcj1zLmRlbGV0ZT1zLnNldD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigibWFwIGlzIHJlYWQtb25seSIpfTpzIGluc3RhbmNlb2YgU2V0JiYocy5hZGQ9cy5jbGVhcj1zLmRlbGV0ZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigic2V0IGlzIHJlYWQtb25seSIpfSksT2JqZWN0LmZyZWV6ZShzKSxPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhzKS5mb3JFYWNoKChmdW5jdGlvbihvKXt2YXIgaT1zW29dOyJvYmplY3QiIT10eXBlb2YgaXx8T2JqZWN0LmlzRnJvemVuKGkpfHxkZWVwRnJlZXplKGkpfSkpLHN9dmFyIG89ZGVlcEZyZWV6ZSxpPWRlZXBGcmVlemU7by5kZWZhdWx0PWk7Y2xhc3MgUmVzcG9uc2V7Y29uc3RydWN0b3Iocyl7dm9pZCAwPT09cy5kYXRhJiYocy5kYXRhPXt9KSx0aGlzLmRhdGE9cy5kYXRhLHRoaXMuaXNNYXRjaElnbm9yZWQ9ITF9aWdub3JlTWF0Y2goKXt0aGlzLmlzTWF0Y2hJZ25vcmVkPSEwfX1mdW5jdGlvbiBlc2NhcGVIVE1MKHMpe3JldHVybiBzLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpLnJlcGxhY2UoLycvZywiJiN4Mjc7Iil9ZnVuY3Rpb24gaW5oZXJpdChzLC4uLm8pe2NvbnN0IGk9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IoY29uc3QgbyBpbiBzKWlbb109c1tvXTtyZXR1cm4gby5mb3JFYWNoKChmdW5jdGlvbihzKXtmb3IoY29uc3QgbyBpbiBzKWlbb109c1tvXX0pKSxpfWNvbnN0IGVtaXRzV3JhcHBpbmdUYWdzPXM9PiEhcy5raW5kO2NsYXNzIEhUTUxSZW5kZXJlcntjb25zdHJ1Y3RvcihzLG8pe3RoaXMuYnVmZmVyPSIiLHRoaXMuY2xhc3NQcmVmaXg9by5jbGFzc1ByZWZpeCxzLndhbGsodGhpcyl9YWRkVGV4dChzKXt0aGlzLmJ1ZmZlcis9ZXNjYXBlSFRNTChzKX1vcGVuTm9kZShzKXtpZighZW1pdHNXcmFwcGluZ1RhZ3MocykpcmV0dXJuO2xldCBvPXMua2luZDtzLnN1Ymxhbmd1YWdlfHwobz1gJHt0aGlzLmNsYXNzUHJlZml4fSR7b31gKSx0aGlzLnNwYW4obyl9Y2xvc2VOb2RlKHMpe2VtaXRzV3JhcHBpbmdUYWdzKHMpJiYodGhpcy5idWZmZXIrPSI8L3NwYW4+Iil9dmFsdWUoKXtyZXR1cm4gdGhpcy5idWZmZXJ9c3BhbihzKXt0aGlzLmJ1ZmZlcis9YDxzcGFuIGNsYXNzPSIke3N9Ij5gfX1jbGFzcyBUb2tlblRyZWV7Y29uc3RydWN0b3IoKXt0aGlzLnJvb3ROb2RlPXtjaGlsZHJlbjpbXX0sdGhpcy5zdGFjaz1bdGhpcy5yb290Tm9kZV19Z2V0IHRvcCgpe3JldHVybiB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdfWdldCByb290KCl7cmV0dXJuIHRoaXMucm9vdE5vZGV9YWRkKHMpe3RoaXMudG9wLmNoaWxkcmVuLnB1c2gocyl9b3Blbk5vZGUocyl7Y29uc3Qgbz17a2luZDpzLGNoaWxkcmVuOltdfTt0aGlzLmFkZChvKSx0aGlzLnN0YWNrLnB1c2gobyl9Y2xvc2VOb2RlKCl7aWYodGhpcy5zdGFjay5sZW5ndGg+MSlyZXR1cm4gdGhpcy5zdGFjay5wb3AoKX1jbG9zZUFsbE5vZGVzKCl7Zm9yKDt0aGlzLmNsb3NlTm9kZSgpOyk7fXRvSlNPTigpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnJvb3ROb2RlLG51bGwsNCl9d2FsayhzKXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5fd2FsayhzLHRoaXMucm9vdE5vZGUpfXN0YXRpYyBfd2FsayhzLG8pe3JldHVybiJzdHJpbmciPT10eXBlb2Ygbz9zLmFkZFRleHQobyk6by5jaGlsZHJlbiYmKHMub3Blbk5vZGUobyksby5jaGlsZHJlbi5mb3JFYWNoKChvPT50aGlzLl93YWxrKHMsbykpKSxzLmNsb3NlTm9kZShvKSksc31zdGF0aWMgX2NvbGxhcHNlKHMpeyJzdHJpbmciIT10eXBlb2YgcyYmcy5jaGlsZHJlbiYmKHMuY2hpbGRyZW4uZXZlcnkoKHM9PiJzdHJpbmciPT10eXBlb2YgcykpP3MuY2hpbGRyZW49W3MuY2hpbGRyZW4uam9pbigiIildOnMuY2hpbGRyZW4uZm9yRWFjaCgocz0+e1Rva2VuVHJlZS5fY29sbGFwc2Uocyl9KSkpfX1jbGFzcyBUb2tlblRyZWVFbWl0dGVyIGV4dGVuZHMgVG9rZW5UcmVle2NvbnN0cnVjdG9yKHMpe3N1cGVyKCksdGhpcy5vcHRpb25zPXN9YWRkS2V5d29yZChzLG8peyIiIT09cyYmKHRoaXMub3Blbk5vZGUobyksdGhpcy5hZGRUZXh0KHMpLHRoaXMuY2xvc2VOb2RlKCkpfWFkZFRleHQocyl7IiIhPT1zJiZ0aGlzLmFkZChzKX1hZGRTdWJsYW5ndWFnZShzLG8pe2NvbnN0IGk9cy5yb290O2kua2luZD1vLGkuc3VibGFuZ3VhZ2U9ITAsdGhpcy5hZGQoaSl9dG9IVE1MKCl7cmV0dXJuIG5ldyBIVE1MUmVuZGVyZXIodGhpcyx0aGlzLm9wdGlvbnMpLnZhbHVlKCl9ZmluYWxpemUoKXtyZXR1cm4hMH19ZnVuY3Rpb24gc291cmNlKHMpe3JldHVybiBzPyJzdHJpbmciPT10eXBlb2Ygcz9zOnMuc291cmNlOm51bGx9Y29uc3QgYT0vXFsoPzpbXlxcXF1dfFxcLikqXF18XChcPz98XFwoWzEtOV1bMC05XSopfFxcLi87Y29uc3QgdT0iW2EtekEtWl1cXHcqIixfPSJbYS16QS1aX11cXHcqIix3PSJcXGJcXGQrKFxcLlxcZCspPyIseD0iKC0/KShcXGIwW3hYXVthLWZBLUYwLTldK3woXFxiXFxkKyhcXC5cXGQqKT98XFwuXFxkKykoW2VFXVstK10/XFxkKyk/KSIsQz0iXFxiKDBiWzAxXSspIixqPXtiZWdpbjoiXFxcXFtcXHNcXFNdIixyZWxldmFuY2U6MH0sTD17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiInIixlbmQ6IiciLGlsbGVnYWw6IlxcbiIsY29udGFpbnM6W2pdfSxCPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46JyInLGVuZDonIicsaWxsZWdhbDoiXFxuIixjb250YWluczpbal19LCQ9e2JlZ2luOi9cYihhfGFufHRoZXxhcmV8SSdtfGlzbid0fGRvbid0fGRvZXNuJ3R8d29uJ3R8YnV0fGp1c3R8c2hvdWxkfHByZXR0eXxzaW1wbHl8ZW5vdWdofGdvbm5hfGdvaW5nfHd0Znxzb3xzdWNofHdpbGx8eW91fHlvdXJ8dGhleXxsaWtlfG1vcmUpXGIvfSxDT01NRU5UPWZ1bmN0aW9uKHMsbyxpPXt9KXtjb25zdCBhPWluaGVyaXQoe2NsYXNzTmFtZToiY29tbWVudCIsYmVnaW46cyxlbmQ6byxjb250YWluczpbXX0saSk7cmV0dXJuIGEuY29udGFpbnMucHVzaCgkKSxhLmNvbnRhaW5zLnB1c2goe2NsYXNzTmFtZToiZG9jdGFnIixiZWdpbjoiKD86VE9ET3xGSVhNRXxOT1RFfEJVR3xPUFRJTUlaRXxIQUNLfFhYWCk6IixyZWxldmFuY2U6MH0pLGF9LFY9Q09NTUVOVCgiLy8iLCIkIiksVT1DT01NRU5UKCIvXFwqIiwiXFwqLyIpLHo9Q09NTUVOVCgiIyIsIiQiKSxZPXtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46dyxyZWxldmFuY2U6MH0sWj17Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOngscmVsZXZhbmNlOjB9LGVlPXtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46QyxyZWxldmFuY2U6MH0saWU9e2NsYXNzTmFtZToibnVtYmVyIixiZWdpbjp3KyIoJXxlbXxleHxjaHxyZW18dnd8dmh8dm1pbnx2bWF4fGNtfG1tfGlufHB0fHBjfHB4fGRlZ3xncmFkfHJhZHx0dXJufHN8bXN8SHp8a0h6fGRwaXxkcGNtfGRwcHgpPyIscmVsZXZhbmNlOjB9LGFlPXtiZWdpbjovKD89XC9bXi9cbl0qXC8pLyxjb250YWluczpbe2NsYXNzTmFtZToicmVnZXhwIixiZWdpbjovXC8vLGVuZDovXC9bZ2ltdXldKi8saWxsZWdhbDovXG4vLGNvbnRhaW5zOltqLHtiZWdpbjovXFsvLGVuZDovXF0vLHJlbGV2YW5jZTowLGNvbnRhaW5zOltqXX1dfV19LGNlPXtjbGFzc05hbWU6InRpdGxlIixiZWdpbjp1LHJlbGV2YW5jZTowfSxsZT17Y2xhc3NOYW1lOiJ0aXRsZSIsYmVnaW46XyxyZWxldmFuY2U6MH0scGU9e2JlZ2luOiJcXC5cXHMqIitfLHJlbGV2YW5jZTowfTt2YXIgZGU9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsTUFUQ0hfTk9USElOR19SRTovXGJcQi8sSURFTlRfUkU6dSxVTkRFUlNDT1JFX0lERU5UX1JFOl8sTlVNQkVSX1JFOncsQ19OVU1CRVJfUkU6eCxCSU5BUllfTlVNQkVSX1JFOkMsUkVfU1RBUlRFUlNfUkU6IiF8IT18IT09fCV8JT18JnwmJnwmPXxcXCp8XFwqPXxcXCt8XFwrPXwsfC18LT18Lz18L3w6fDt8PDx8PDw9fDw9fDx8PT09fD09fD18Pj4+PXw+Pj18Pj18Pj4+fD4+fD58XFw/fFxcW3xcXHt8XFwofFxcXnxcXF49fFxcfHxcXHw9fFxcfFxcfHx+IixTSEVCQU5HOihzPXt9KT0+e2NvbnN0IG89L14jIVsgXSpcLy87cmV0dXJuIHMuYmluYXJ5JiYocy5iZWdpbj1mdW5jdGlvbiBjb25jYXQoLi4ucyl7cmV0dXJuIHMubWFwKChzPT5zb3VyY2UocykpKS5qb2luKCIiKX0obywvLipcYi8scy5iaW5hcnksL1xiLiovKSksaW5oZXJpdCh7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjpvLGVuZDovJC8scmVsZXZhbmNlOjAsIm9uOmJlZ2luIjoocyxvKT0+ezAhPT1zLmluZGV4JiZvLmlnbm9yZU1hdGNoKCl9fSxzKX0sQkFDS1NMQVNIX0VTQ0FQRTpqLEFQT1NfU1RSSU5HX01PREU6TCxRVU9URV9TVFJJTkdfTU9ERTpCLFBIUkFTQUxfV09SRFNfTU9ERTokLENPTU1FTlQsQ19MSU5FX0NPTU1FTlRfTU9ERTpWLENfQkxPQ0tfQ09NTUVOVF9NT0RFOlUsSEFTSF9DT01NRU5UX01PREU6eixOVU1CRVJfTU9ERTpZLENfTlVNQkVSX01PREU6WixCSU5BUllfTlVNQkVSX01PREU6ZWUsQ1NTX05VTUJFUl9NT0RFOmllLFJFR0VYUF9NT0RFOmFlLFRJVExFX01PREU6Y2UsVU5ERVJTQ09SRV9USVRMRV9NT0RFOmxlLE1FVEhPRF9HVUFSRDpwZSxFTkRfU0FNRV9BU19CRUdJTjpmdW5jdGlvbihzKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihzLHsib246YmVnaW4iOihzLG8pPT57by5kYXRhLl9iZWdpbk1hdGNoPXNbMV19LCJvbjplbmQiOihzLG8pPT57by5kYXRhLl9iZWdpbk1hdGNoIT09c1sxXSYmby5pZ25vcmVNYXRjaCgpfX0pfX0pO2Z1bmN0aW9uIHNraXBJZmhhc1ByZWNlZGluZ0RvdChzLG8peyIuIj09PXMuaW5wdXRbcy5pbmRleC0xXSYmby5pZ25vcmVNYXRjaCgpfWZ1bmN0aW9uIGJlZ2luS2V5d29yZHMocyxvKXtvJiZzLmJlZ2luS2V5d29yZHMmJihzLmJlZ2luPSJcXGIoIitzLmJlZ2luS2V5d29yZHMuc3BsaXQoIiAiKS5qb2luKCJ8IikrIikoPyFcXC4pKD89XFxifFxccykiLHMuX19iZWZvcmVCZWdpbj1za2lwSWZoYXNQcmVjZWRpbmdEb3Qscy5rZXl3b3Jkcz1zLmtleXdvcmRzfHxzLmJlZ2luS2V5d29yZHMsZGVsZXRlIHMuYmVnaW5LZXl3b3Jkcyx2b2lkIDA9PT1zLnJlbGV2YW5jZSYmKHMucmVsZXZhbmNlPTApKX1mdW5jdGlvbiBjb21waWxlSWxsZWdhbChzLG8pe0FycmF5LmlzQXJyYXkocy5pbGxlZ2FsKSYmKHMuaWxsZWdhbD1mdW5jdGlvbiBlaXRoZXIoLi4ucyl7cmV0dXJuIigiK3MubWFwKChzPT5zb3VyY2UocykpKS5qb2luKCJ8IikrIikifSguLi5zLmlsbGVnYWwpKX1mdW5jdGlvbiBjb21waWxlTWF0Y2gocyxvKXtpZihzLm1hdGNoKXtpZihzLmJlZ2lufHxzLmVuZCl0aHJvdyBuZXcgRXJyb3IoImJlZ2luICYgZW5kIGFyZSBub3Qgc3VwcG9ydGVkIHdpdGggbWF0Y2giKTtzLmJlZ2luPXMubWF0Y2gsZGVsZXRlIHMubWF0Y2h9fWZ1bmN0aW9uIGNvbXBpbGVSZWxldmFuY2UocyxvKXt2b2lkIDA9PT1zLnJlbGV2YW5jZSYmKHMucmVsZXZhbmNlPTEpfWNvbnN0IGZlPVsib2YiLCJhbmQiLCJmb3IiLCJpbiIsIm5vdCIsIm9yIiwiaWYiLCJ0aGVuIiwicGFyZW50IiwibGlzdCIsInZhbHVlIl07ZnVuY3Rpb24gY29tcGlsZUtleXdvcmRzKHMsbyxpPSJrZXl3b3JkIil7Y29uc3QgYT17fTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHM/Y29tcGlsZUxpc3QoaSxzLnNwbGl0KCIgIikpOkFycmF5LmlzQXJyYXkocyk/Y29tcGlsZUxpc3QoaSxzKTpPYmplY3Qua2V5cyhzKS5mb3JFYWNoKChmdW5jdGlvbihpKXtPYmplY3QuYXNzaWduKGEsY29tcGlsZUtleXdvcmRzKHNbaV0sbyxpKSl9KSksYTtmdW5jdGlvbiBjb21waWxlTGlzdChzLGkpe28mJihpPWkubWFwKChzPT5zLnRvTG93ZXJDYXNlKCkpKSksaS5mb3JFYWNoKChmdW5jdGlvbihvKXtjb25zdCBpPW8uc3BsaXQoInwiKTthW2lbMF1dPVtzLHNjb3JlRm9yS2V5d29yZChpWzBdLGlbMV0pXX0pKX19ZnVuY3Rpb24gc2NvcmVGb3JLZXl3b3JkKHMsbyl7cmV0dXJuIG8/TnVtYmVyKG8pOmZ1bmN0aW9uIGNvbW1vbktleXdvcmQocyl7cmV0dXJuIGZlLmluY2x1ZGVzKHMudG9Mb3dlckNhc2UoKSl9KHMpPzA6MX1mdW5jdGlvbiBjb21waWxlTGFuZ3VhZ2Uocyx7cGx1Z2luczpvfSl7ZnVuY3Rpb24gbGFuZ1JlKG8saSl7cmV0dXJuIG5ldyBSZWdFeHAoc291cmNlKG8pLCJtIisocy5jYXNlX2luc2Vuc2l0aXZlPyJpIjoiIikrKGk/ImciOiIiKSl9Y2xhc3MgTXVsdGlSZWdleHtjb25zdHJ1Y3Rvcigpe3RoaXMubWF0Y2hJbmRleGVzPXt9LHRoaXMucmVnZXhlcz1bXSx0aGlzLm1hdGNoQXQ9MSx0aGlzLnBvc2l0aW9uPTB9YWRkUnVsZShzLG8pe28ucG9zaXRpb249dGhpcy5wb3NpdGlvbisrLHRoaXMubWF0Y2hJbmRleGVzW3RoaXMubWF0Y2hBdF09byx0aGlzLnJlZ2V4ZXMucHVzaChbbyxzXSksdGhpcy5tYXRjaEF0Kz1mdW5jdGlvbiBjb3VudE1hdGNoR3JvdXBzKHMpe3JldHVybiBuZXcgUmVnRXhwKHMudG9TdHJpbmcoKSsifCIpLmV4ZWMoIiIpLmxlbmd0aC0xfShzKSsxfWNvbXBpbGUoKXswPT09dGhpcy5yZWdleGVzLmxlbmd0aCYmKHRoaXMuZXhlYz0oKT0+bnVsbCk7Y29uc3Qgcz10aGlzLnJlZ2V4ZXMubWFwKChzPT5zWzFdKSk7dGhpcy5tYXRjaGVyUmU9bGFuZ1JlKGZ1bmN0aW9uIGpvaW4ocyxvPSJ8Iil7bGV0IGk9MDtyZXR1cm4gcy5tYXAoKHM9PntpKz0xO2NvbnN0IG89aTtsZXQgdT1zb3VyY2UocyksXz0iIjtmb3IoO3UubGVuZ3RoPjA7KXtjb25zdCBzPWEuZXhlYyh1KTtpZighcyl7Xys9dTticmVha31fKz11LnN1YnN0cmluZygwLHMuaW5kZXgpLHU9dS5zdWJzdHJpbmcocy5pbmRleCtzWzBdLmxlbmd0aCksIlxcIj09PXNbMF1bMF0mJnNbMV0/Xys9IlxcIitTdHJpbmcoTnVtYmVyKHNbMV0pK28pOihfKz1zWzBdLCIoIj09PXNbMF0mJmkrKyl9cmV0dXJuIF99KSkubWFwKChzPT5gKCR7c30pYCkpLmpvaW4obyl9KHMpLCEwKSx0aGlzLmxhc3RJbmRleD0wfWV4ZWMocyl7dGhpcy5tYXRjaGVyUmUubGFzdEluZGV4PXRoaXMubGFzdEluZGV4O2NvbnN0IG89dGhpcy5tYXRjaGVyUmUuZXhlYyhzKTtpZighbylyZXR1cm4gbnVsbDtjb25zdCBpPW8uZmluZEluZGV4KCgocyxvKT0+bz4wJiZ2b2lkIDAhPT1zKSksYT10aGlzLm1hdGNoSW5kZXhlc1tpXTtyZXR1cm4gby5zcGxpY2UoMCxpKSxPYmplY3QuYXNzaWduKG8sYSl9fWNsYXNzIFJlc3VtYWJsZU11bHRpUmVnZXh7Y29uc3RydWN0b3IoKXt0aGlzLnJ1bGVzPVtdLHRoaXMubXVsdGlSZWdleGVzPVtdLHRoaXMuY291bnQ9MCx0aGlzLmxhc3RJbmRleD0wLHRoaXMucmVnZXhJbmRleD0wfWdldE1hdGNoZXIocyl7aWYodGhpcy5tdWx0aVJlZ2V4ZXNbc10pcmV0dXJuIHRoaXMubXVsdGlSZWdleGVzW3NdO2NvbnN0IG89bmV3IE11bHRpUmVnZXg7cmV0dXJuIHRoaXMucnVsZXMuc2xpY2UocykuZm9yRWFjaCgoKFtzLGldKT0+by5hZGRSdWxlKHMsaSkpKSxvLmNvbXBpbGUoKSx0aGlzLm11bHRpUmVnZXhlc1tzXT1vLG99cmVzdW1pbmdTY2FuQXRTYW1lUG9zaXRpb24oKXtyZXR1cm4gMCE9PXRoaXMucmVnZXhJbmRleH1jb25zaWRlckFsbCgpe3RoaXMucmVnZXhJbmRleD0wfWFkZFJ1bGUocyxvKXt0aGlzLnJ1bGVzLnB1c2goW3Msb10pLCJiZWdpbiI9PT1vLnR5cGUmJnRoaXMuY291bnQrK31leGVjKHMpe2NvbnN0IG89dGhpcy5nZXRNYXRjaGVyKHRoaXMucmVnZXhJbmRleCk7by5sYXN0SW5kZXg9dGhpcy5sYXN0SW5kZXg7bGV0IGk9by5leGVjKHMpO2lmKHRoaXMucmVzdW1pbmdTY2FuQXRTYW1lUG9zaXRpb24oKSlpZihpJiZpLmluZGV4PT09dGhpcy5sYXN0SW5kZXgpO2Vsc2V7Y29uc3Qgbz10aGlzLmdldE1hdGNoZXIoMCk7by5sYXN0SW5kZXg9dGhpcy5sYXN0SW5kZXgrMSxpPW8uZXhlYyhzKX1yZXR1cm4gaSYmKHRoaXMucmVnZXhJbmRleCs9aS5wb3NpdGlvbisxLHRoaXMucmVnZXhJbmRleD09PXRoaXMuY291bnQmJnRoaXMuY29uc2lkZXJBbGwoKSksaX19aWYocy5jb21waWxlckV4dGVuc2lvbnN8fChzLmNvbXBpbGVyRXh0ZW5zaW9ucz1bXSkscy5jb250YWlucyYmcy5jb250YWlucy5pbmNsdWRlcygic2VsZiIpKXRocm93IG5ldyBFcnJvcigiRVJSOiBjb250YWlucyBgc2VsZmAgaXMgbm90IHN1cHBvcnRlZCBhdCB0aGUgdG9wLWxldmVsIG9mIGEgbGFuZ3VhZ2UuICBTZWUgZG9jdW1lbnRhdGlvbi4iKTtyZXR1cm4gcy5jbGFzc05hbWVBbGlhc2VzPWluaGVyaXQocy5jbGFzc05hbWVBbGlhc2VzfHx7fSksZnVuY3Rpb24gY29tcGlsZU1vZGUobyxpKXtjb25zdCBhPW87aWYoby5pc0NvbXBpbGVkKXJldHVybiBhO1tjb21waWxlTWF0Y2hdLmZvckVhY2goKHM9PnMobyxpKSkpLHMuY29tcGlsZXJFeHRlbnNpb25zLmZvckVhY2goKHM9PnMobyxpKSkpLG8uX19iZWZvcmVCZWdpbj1udWxsLFtiZWdpbktleXdvcmRzLGNvbXBpbGVJbGxlZ2FsLGNvbXBpbGVSZWxldmFuY2VdLmZvckVhY2goKHM9PnMobyxpKSkpLG8uaXNDb21waWxlZD0hMDtsZXQgdT1udWxsO2lmKCJvYmplY3QiPT10eXBlb2Ygby5rZXl3b3JkcyYmKHU9by5rZXl3b3Jkcy4kcGF0dGVybixkZWxldGUgby5rZXl3b3Jkcy4kcGF0dGVybiksby5rZXl3b3JkcyYmKG8ua2V5d29yZHM9Y29tcGlsZUtleXdvcmRzKG8ua2V5d29yZHMscy5jYXNlX2luc2Vuc2l0aXZlKSksby5sZXhlbWVzJiZ1KXRocm93IG5ldyBFcnJvcigiRVJSOiBQcmVmZXIgYGtleXdvcmRzLiRwYXR0ZXJuYCB0byBgbW9kZS5sZXhlbWVzYCwgQk9USCBhcmUgbm90IGFsbG93ZWQuIChzZWUgbW9kZSByZWZlcmVuY2UpICIpO3JldHVybiB1PXV8fG8ubGV4ZW1lc3x8L1x3Ky8sYS5rZXl3b3JkUGF0dGVyblJlPWxhbmdSZSh1LCEwKSxpJiYoby5iZWdpbnx8KG8uYmVnaW49L1xCfFxiLyksYS5iZWdpblJlPWxhbmdSZShvLmJlZ2luKSxvLmVuZFNhbWVBc0JlZ2luJiYoby5lbmQ9by5iZWdpbiksby5lbmR8fG8uZW5kc1dpdGhQYXJlbnR8fChvLmVuZD0vXEJ8XGIvKSxvLmVuZCYmKGEuZW5kUmU9bGFuZ1JlKG8uZW5kKSksYS50ZXJtaW5hdG9yRW5kPXNvdXJjZShvLmVuZCl8fCIiLG8uZW5kc1dpdGhQYXJlbnQmJmkudGVybWluYXRvckVuZCYmKGEudGVybWluYXRvckVuZCs9KG8uZW5kPyJ8IjoiIikraS50ZXJtaW5hdG9yRW5kKSksby5pbGxlZ2FsJiYoYS5pbGxlZ2FsUmU9bGFuZ1JlKG8uaWxsZWdhbCkpLG8uY29udGFpbnN8fChvLmNvbnRhaW5zPVtdKSxvLmNvbnRhaW5zPVtdLmNvbmNhdCguLi5vLmNvbnRhaW5zLm1hcCgoZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uIGV4cGFuZE9yQ2xvbmVNb2RlKHMpe3MudmFyaWFudHMmJiFzLmNhY2hlZFZhcmlhbnRzJiYocy5jYWNoZWRWYXJpYW50cz1zLnZhcmlhbnRzLm1hcCgoZnVuY3Rpb24obyl7cmV0dXJuIGluaGVyaXQocyx7dmFyaWFudHM6bnVsbH0sbyl9KSkpO2lmKHMuY2FjaGVkVmFyaWFudHMpcmV0dXJuIHMuY2FjaGVkVmFyaWFudHM7aWYoZGVwZW5kZW5jeU9uUGFyZW50KHMpKXJldHVybiBpbmhlcml0KHMse3N0YXJ0czpzLnN0YXJ0cz9pbmhlcml0KHMuc3RhcnRzKTpudWxsfSk7aWYoT2JqZWN0LmlzRnJvemVuKHMpKXJldHVybiBpbmhlcml0KHMpO3JldHVybiBzfSgic2VsZiI9PT1zP286cyl9KSkpLG8uY29udGFpbnMuZm9yRWFjaCgoZnVuY3Rpb24ocyl7Y29tcGlsZU1vZGUocyxhKX0pKSxvLnN0YXJ0cyYmY29tcGlsZU1vZGUoby5zdGFydHMsaSksYS5tYXRjaGVyPWZ1bmN0aW9uIGJ1aWxkTW9kZVJlZ2V4KHMpe2NvbnN0IG89bmV3IFJlc3VtYWJsZU11bHRpUmVnZXg7cmV0dXJuIHMuY29udGFpbnMuZm9yRWFjaCgocz0+by5hZGRSdWxlKHMuYmVnaW4se3J1bGU6cyx0eXBlOiJiZWdpbiJ9KSkpLHMudGVybWluYXRvckVuZCYmby5hZGRSdWxlKHMudGVybWluYXRvckVuZCx7dHlwZToiZW5kIn0pLHMuaWxsZWdhbCYmby5hZGRSdWxlKHMuaWxsZWdhbCx7dHlwZToiaWxsZWdhbCJ9KSxvfShhKSxhfShzKX1mdW5jdGlvbiBkZXBlbmRlbmN5T25QYXJlbnQocyl7cmV0dXJuISFzJiYocy5lbmRzV2l0aFBhcmVudHx8ZGVwZW5kZW5jeU9uUGFyZW50KHMuc3RhcnRzKSl9ZnVuY3Rpb24gQnVpbGRWdWVQbHVnaW4ocyl7Y29uc3Qgbz17cHJvcHM6WyJsYW5ndWFnZSIsImNvZGUiLCJhdXRvZGV0ZWN0Il0sZGF0YTpmdW5jdGlvbigpe3JldHVybntkZXRlY3RlZExhbmd1YWdlOiIiLHVua25vd25MYW5ndWFnZTohMX19LGNvbXB1dGVkOntjbGFzc05hbWUoKXtyZXR1cm4gdGhpcy51bmtub3duTGFuZ3VhZ2U/IiI6ImhsanMgIit0aGlzLmRldGVjdGVkTGFuZ3VhZ2V9LGhpZ2hsaWdodGVkKCl7aWYoIXRoaXMuYXV0b0RldGVjdCYmIXMuZ2V0TGFuZ3VhZ2UodGhpcy5sYW5ndWFnZSkpcmV0dXJuIGNvbnNvbGUud2FybihgVGhlIGxhbmd1YWdlICIke3RoaXMubGFuZ3VhZ2V9IiB5b3Ugc3BlY2lmaWVkIGNvdWxkIG5vdCBiZSBmb3VuZC5gKSx0aGlzLnVua25vd25MYW5ndWFnZT0hMCxlc2NhcGVIVE1MKHRoaXMuY29kZSk7bGV0IG89e307cmV0dXJuIHRoaXMuYXV0b0RldGVjdD8obz1zLmhpZ2hsaWdodEF1dG8odGhpcy5jb2RlKSx0aGlzLmRldGVjdGVkTGFuZ3VhZ2U9by5sYW5ndWFnZSk6KG89cy5oaWdobGlnaHQodGhpcy5sYW5ndWFnZSx0aGlzLmNvZGUsdGhpcy5pZ25vcmVJbGxlZ2FscyksdGhpcy5kZXRlY3RlZExhbmd1YWdlPXRoaXMubGFuZ3VhZ2UpLG8udmFsdWV9LGF1dG9EZXRlY3QoKXtyZXR1cm4hdGhpcy5sYW5ndWFnZXx8ZnVuY3Rpb24gaGFzVmFsdWVPckVtcHR5QXR0cmlidXRlKHMpe3JldHVybiBCb29sZWFuKHN8fCIiPT09cyl9KHRoaXMuYXV0b2RldGVjdCl9LGlnbm9yZUlsbGVnYWxzOigpPT4hMH0scmVuZGVyKHMpe3JldHVybiBzKCJwcmUiLHt9LFtzKCJjb2RlIix7Y2xhc3M6dGhpcy5jbGFzc05hbWUsZG9tUHJvcHM6e2lubmVySFRNTDp0aGlzLmhpZ2hsaWdodGVkfX0pXSl9fTtyZXR1cm57Q29tcG9uZW50Om8sVnVlUGx1Z2luOntpbnN0YWxsKHMpe3MuY29tcG9uZW50KCJoaWdobGlnaHRqcyIsbyl9fX19Y29uc3QgeWU9eyJhZnRlcjpoaWdobGlnaHRFbGVtZW50Ijooe2VsOnMscmVzdWx0Om8sdGV4dDppfSk9Pntjb25zdCBhPW5vZGVTdHJlYW0ocyk7aWYoIWEubGVuZ3RoKXJldHVybjtjb25zdCB1PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3UuaW5uZXJIVE1MPW8udmFsdWUsby52YWx1ZT1mdW5jdGlvbiBtZXJnZVN0cmVhbXMocyxvLGkpe2xldCBhPTAsdT0iIjtjb25zdCBfPVtdO2Z1bmN0aW9uIHNlbGVjdFN0cmVhbSgpe3JldHVybiBzLmxlbmd0aCYmby5sZW5ndGg/c1swXS5vZmZzZXQhPT1vWzBdLm9mZnNldD9zWzBdLm9mZnNldDxvWzBdLm9mZnNldD9zOm86InN0YXJ0Ij09PW9bMF0uZXZlbnQ/czpvOnMubGVuZ3RoP3M6b31mdW5jdGlvbiBvcGVuKHMpe2Z1bmN0aW9uIGF0dHJpYnV0ZVN0cmluZyhzKXtyZXR1cm4iICIrcy5ub2RlTmFtZSsnPSInK2VzY2FwZUhUTUwocy52YWx1ZSkrJyInfXUrPSI8Iit0YWcocykrW10ubWFwLmNhbGwocy5hdHRyaWJ1dGVzLGF0dHJpYnV0ZVN0cmluZykuam9pbigiIikrIj4ifWZ1bmN0aW9uIGNsb3NlKHMpe3UrPSI8LyIrdGFnKHMpKyI+In1mdW5jdGlvbiByZW5kZXIocyl7KCJzdGFydCI9PT1zLmV2ZW50P29wZW46Y2xvc2UpKHMubm9kZSl9Zm9yKDtzLmxlbmd0aHx8by5sZW5ndGg7KXtsZXQgbz1zZWxlY3RTdHJlYW0oKTtpZih1Kz1lc2NhcGVIVE1MKGkuc3Vic3RyaW5nKGEsb1swXS5vZmZzZXQpKSxhPW9bMF0ub2Zmc2V0LG89PT1zKXtfLnJldmVyc2UoKS5mb3JFYWNoKGNsb3NlKTtkb3tyZW5kZXIoby5zcGxpY2UoMCwxKVswXSksbz1zZWxlY3RTdHJlYW0oKX13aGlsZShvPT09cyYmby5sZW5ndGgmJm9bMF0ub2Zmc2V0PT09YSk7Xy5yZXZlcnNlKCkuZm9yRWFjaChvcGVuKX1lbHNlInN0YXJ0Ij09PW9bMF0uZXZlbnQ/Xy5wdXNoKG9bMF0ubm9kZSk6Xy5wb3AoKSxyZW5kZXIoby5zcGxpY2UoMCwxKVswXSl9cmV0dXJuIHUrZXNjYXBlSFRNTChpLnN1YnN0cihhKSl9KGEsbm9kZVN0cmVhbSh1KSxpKX19O2Z1bmN0aW9uIHRhZyhzKXtyZXR1cm4gcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIG5vZGVTdHJlYW0ocyl7Y29uc3Qgbz1bXTtyZXR1cm4gZnVuY3Rpb24gX25vZGVTdHJlYW0ocyxpKXtmb3IobGV0IGE9cy5maXJzdENoaWxkO2E7YT1hLm5leHRTaWJsaW5nKTM9PT1hLm5vZGVUeXBlP2krPWEubm9kZVZhbHVlLmxlbmd0aDoxPT09YS5ub2RlVHlwZSYmKG8ucHVzaCh7ZXZlbnQ6InN0YXJ0IixvZmZzZXQ6aSxub2RlOmF9KSxpPV9ub2RlU3RyZWFtKGEsaSksdGFnKGEpLm1hdGNoKC9icnxocnxpbWd8aW5wdXQvKXx8by5wdXNoKHtldmVudDoic3RvcCIsb2Zmc2V0Omksbm9kZTphfSkpO3JldHVybiBpfShzLDApLG99Y29uc3QgYmU9e30sZXJyb3I9cz0+e2NvbnNvbGUuZXJyb3Iocyl9LHdhcm49KHMsLi4ubyk9Pntjb25zb2xlLmxvZyhgV0FSTjogJHtzfWAsLi4ubyl9LGRlcHJlY2F0ZWQ9KHMsbyk9PntiZVtgJHtzfS8ke299YF18fChjb25zb2xlLmxvZyhgRGVwcmVjYXRlZCBhcyBvZiAke3N9LiAke299YCksYmVbYCR7c30vJHtvfWBdPSEwKX0sX2U9ZXNjYXBlSFRNTCxTZT1pbmhlcml0LHdlPVN5bWJvbCgibm9tYXRjaCIpO3ZhciB4ZT1mdW5jdGlvbihzKXtjb25zdCBpPU9iamVjdC5jcmVhdGUobnVsbCksYT1PYmplY3QuY3JlYXRlKG51bGwpLHU9W107bGV0IF89ITA7Y29uc3Qgdz0vKF4oPFtePl0rPnxcdHwpK3xcbikvZ20seD0iQ291bGQgbm90IGZpbmQgdGhlIGxhbmd1YWdlICd7fScsIGRpZCB5b3UgZm9yZ2V0IHRvIGxvYWQvaW5jbHVkZSBhIGxhbmd1YWdlIG1vZHVsZT8iLEM9e2Rpc2FibGVBdXRvZGV0ZWN0OiEwLG5hbWU6IlBsYWluIHRleHQiLGNvbnRhaW5zOltdfTtsZXQgaj17bm9IaWdobGlnaHRSZTovXihuby0/aGlnaGxpZ2h0KSQvaSxsYW5ndWFnZURldGVjdFJlOi9cYmxhbmcoPzp1YWdlKT8tKFtcdy1dKylcYi9pLGNsYXNzUHJlZml4OiJobGpzLSIsdGFiUmVwbGFjZTpudWxsLHVzZUJSOiExLGxhbmd1YWdlczpudWxsLF9fZW1pdHRlcjpUb2tlblRyZWVFbWl0dGVyfTtmdW5jdGlvbiBzaG91bGROb3RIaWdobGlnaHQocyl7cmV0dXJuIGoubm9IaWdobGlnaHRSZS50ZXN0KHMpfWZ1bmN0aW9uIGhpZ2hsaWdodChzLG8saSxhKXtsZXQgdT0iIixfPSIiOyJvYmplY3QiPT10eXBlb2Ygbz8odT1zLGk9by5pZ25vcmVJbGxlZ2FscyxfPW8ubGFuZ3VhZ2UsYT12b2lkIDApOihkZXByZWNhdGVkKCIxMC43LjAiLCJoaWdobGlnaHQobGFuZywgY29kZSwgLi4uYXJncykgaGFzIGJlZW4gZGVwcmVjYXRlZC4iKSxkZXByZWNhdGVkKCIxMC43LjAiLCJQbGVhc2UgdXNlIGhpZ2hsaWdodChjb2RlLCBvcHRpb25zKSBpbnN0ZWFkLlxuaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMjI3NyIpLF89cyx1PW8pO2NvbnN0IHc9e2NvZGU6dSxsYW5ndWFnZTpffTtmaXJlKCJiZWZvcmU6aGlnaGxpZ2h0Iix3KTtjb25zdCB4PXcucmVzdWx0P3cucmVzdWx0Ol9oaWdobGlnaHQody5sYW5ndWFnZSx3LmNvZGUsaSxhKTtyZXR1cm4geC5jb2RlPXcuY29kZSxmaXJlKCJhZnRlcjpoaWdobGlnaHQiLHgpLHh9ZnVuY3Rpb24gX2hpZ2hsaWdodChzLG8sYSx3KXtmdW5jdGlvbiBrZXl3b3JkRGF0YShzLG8pe2NvbnN0IGk9TC5jYXNlX2luc2Vuc2l0aXZlP29bMF0udG9Mb3dlckNhc2UoKTpvWzBdO3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocy5rZXl3b3JkcyxpKSYmcy5rZXl3b3Jkc1tpXX1mdW5jdGlvbiBwcm9jZXNzQnVmZmVyKCl7bnVsbCE9Vi5zdWJMYW5ndWFnZT9mdW5jdGlvbiBwcm9jZXNzU3ViTGFuZ3VhZ2UoKXtpZigiIj09PVkpcmV0dXJuO2xldCBzPW51bGw7aWYoInN0cmluZyI9PXR5cGVvZiBWLnN1Ykxhbmd1YWdlKXtpZighaVtWLnN1Ykxhbmd1YWdlXSlyZXR1cm4gdm9pZCB6LmFkZFRleHQoWSk7cz1faGlnaGxpZ2h0KFYuc3ViTGFuZ3VhZ2UsWSwhMCxVW1Yuc3ViTGFuZ3VhZ2VdKSxVW1Yuc3ViTGFuZ3VhZ2VdPXMudG9wfWVsc2Ugcz1oaWdobGlnaHRBdXRvKFksVi5zdWJMYW5ndWFnZS5sZW5ndGg/Vi5zdWJMYW5ndWFnZTpudWxsKTtWLnJlbGV2YW5jZT4wJiYoWis9cy5yZWxldmFuY2UpLHouYWRkU3VibGFuZ3VhZ2Uocy5lbWl0dGVyLHMubGFuZ3VhZ2UpfSgpOmZ1bmN0aW9uIHByb2Nlc3NLZXl3b3Jkcygpe2lmKCFWLmtleXdvcmRzKXJldHVybiB2b2lkIHouYWRkVGV4dChZKTtsZXQgcz0wO1Yua2V5d29yZFBhdHRlcm5SZS5sYXN0SW5kZXg9MDtsZXQgbz1WLmtleXdvcmRQYXR0ZXJuUmUuZXhlYyhZKSxpPSIiO2Zvcig7bzspe2krPVkuc3Vic3RyaW5nKHMsby5pbmRleCk7Y29uc3QgYT1rZXl3b3JkRGF0YShWLG8pO2lmKGEpe2NvbnN0W3MsdV09YTtpZih6LmFkZFRleHQoaSksaT0iIixaKz11LHMuc3RhcnRzV2l0aCgiXyIpKWkrPW9bMF07ZWxzZXtjb25zdCBpPUwuY2xhc3NOYW1lQWxpYXNlc1tzXXx8czt6LmFkZEtleXdvcmQob1swXSxpKX19ZWxzZSBpKz1vWzBdO3M9Vi5rZXl3b3JkUGF0dGVyblJlLmxhc3RJbmRleCxvPVYua2V5d29yZFBhdHRlcm5SZS5leGVjKFkpfWkrPVkuc3Vic3RyKHMpLHouYWRkVGV4dChpKX0oKSxZPSIifWZ1bmN0aW9uIHN0YXJ0TmV3TW9kZShzKXtyZXR1cm4gcy5jbGFzc05hbWUmJnoub3Blbk5vZGUoTC5jbGFzc05hbWVBbGlhc2VzW3MuY2xhc3NOYW1lXXx8cy5jbGFzc05hbWUpLFY9T2JqZWN0LmNyZWF0ZShzLHtwYXJlbnQ6e3ZhbHVlOlZ9fSksVn1mdW5jdGlvbiBlbmRPZk1vZGUocyxvLGkpe2xldCBhPWZ1bmN0aW9uIHN0YXJ0c1dpdGgocyxvKXtjb25zdCBpPXMmJnMuZXhlYyhvKTtyZXR1cm4gaSYmMD09PWkuaW5kZXh9KHMuZW5kUmUsaSk7aWYoYSl7aWYoc1sib246ZW5kIl0pe2NvbnN0IGk9bmV3IFJlc3BvbnNlKHMpO3NbIm9uOmVuZCJdKG8saSksaS5pc01hdGNoSWdub3JlZCYmKGE9ITEpfWlmKGEpe2Zvcig7cy5lbmRzUGFyZW50JiZzLnBhcmVudDspcz1zLnBhcmVudDtyZXR1cm4gc319aWYocy5lbmRzV2l0aFBhcmVudClyZXR1cm4gZW5kT2ZNb2RlKHMucGFyZW50LG8saSl9ZnVuY3Rpb24gZG9JZ25vcmUocyl7cmV0dXJuIDA9PT1WLm1hdGNoZXIucmVnZXhJbmRleD8oWSs9c1swXSwxKTooYWU9ITAsMCl9ZnVuY3Rpb24gZG9CZWdpbk1hdGNoKHMpe2NvbnN0IG89c1swXSxpPXMucnVsZSxhPW5ldyBSZXNwb25zZShpKSx1PVtpLl9fYmVmb3JlQmVnaW4saVsib246YmVnaW4iXV07Zm9yKGNvbnN0IGkgb2YgdSlpZihpJiYoaShzLGEpLGEuaXNNYXRjaElnbm9yZWQpKXJldHVybiBkb0lnbm9yZShvKTtyZXR1cm4gaSYmaS5lbmRTYW1lQXNCZWdpbiYmKGkuZW5kUmU9ZnVuY3Rpb24gZXNjYXBlKHMpe3JldHVybiBuZXcgUmVnRXhwKHMucmVwbGFjZSgvWy0vXFxeJCorPy4oKXxbXF17fV0vZywiXFwkJiIpLCJtIil9KG8pKSxpLnNraXA/WSs9bzooaS5leGNsdWRlQmVnaW4mJihZKz1vKSxwcm9jZXNzQnVmZmVyKCksaS5yZXR1cm5CZWdpbnx8aS5leGNsdWRlQmVnaW58fChZPW8pKSxzdGFydE5ld01vZGUoaSksaS5yZXR1cm5CZWdpbj8wOm8ubGVuZ3RofWZ1bmN0aW9uIGRvRW5kTWF0Y2gocyl7Y29uc3QgaT1zWzBdLGE9by5zdWJzdHIocy5pbmRleCksdT1lbmRPZk1vZGUoVixzLGEpO2lmKCF1KXJldHVybiB3ZTtjb25zdCBfPVY7Xy5za2lwP1krPWk6KF8ucmV0dXJuRW5kfHxfLmV4Y2x1ZGVFbmR8fChZKz1pKSxwcm9jZXNzQnVmZmVyKCksXy5leGNsdWRlRW5kJiYoWT1pKSk7ZG97Vi5jbGFzc05hbWUmJnouY2xvc2VOb2RlKCksVi5za2lwfHxWLnN1Ykxhbmd1YWdlfHwoWis9Vi5yZWxldmFuY2UpLFY9Vi5wYXJlbnR9d2hpbGUoViE9PXUucGFyZW50KTtyZXR1cm4gdS5zdGFydHMmJih1LmVuZFNhbWVBc0JlZ2luJiYodS5zdGFydHMuZW5kUmU9dS5lbmRSZSksc3RhcnROZXdNb2RlKHUuc3RhcnRzKSksXy5yZXR1cm5FbmQ/MDppLmxlbmd0aH1sZXQgQz17fTtmdW5jdGlvbiBwcm9jZXNzTGV4ZW1lKGksdSl7Y29uc3Qgdz11JiZ1WzBdO2lmKFkrPWksbnVsbD09dylyZXR1cm4gcHJvY2Vzc0J1ZmZlcigpLDA7aWYoImJlZ2luIj09PUMudHlwZSYmImVuZCI9PT11LnR5cGUmJkMuaW5kZXg9PT11LmluZGV4JiYiIj09PXcpe2lmKFkrPW8uc2xpY2UodS5pbmRleCx1LmluZGV4KzEpLCFfKXtjb25zdCBvPW5ldyBFcnJvcigiMCB3aWR0aCBtYXRjaCByZWdleCIpO3Rocm93IG8ubGFuZ3VhZ2VOYW1lPXMsby5iYWRSdWxlPUMucnVsZSxvfXJldHVybiAxfWlmKEM9dSwiYmVnaW4iPT09dS50eXBlKXJldHVybiBkb0JlZ2luTWF0Y2godSk7aWYoImlsbGVnYWwiPT09dS50eXBlJiYhYSl7Y29uc3Qgcz1uZXcgRXJyb3IoJ0lsbGVnYWwgbGV4ZW1lICInK3crJyIgZm9yIG1vZGUgIicrKFYuY2xhc3NOYW1lfHwiPHVubmFtZWQ+IikrJyInKTt0aHJvdyBzLm1vZGU9VixzfWlmKCJlbmQiPT09dS50eXBlKXtjb25zdCBzPWRvRW5kTWF0Y2godSk7aWYocyE9PXdlKXJldHVybiBzfWlmKCJpbGxlZ2FsIj09PXUudHlwZSYmIiI9PT13KXJldHVybiAxO2lmKGllPjFlNSYmaWU+Myp1LmluZGV4KXt0aHJvdyBuZXcgRXJyb3IoInBvdGVudGlhbCBpbmZpbml0ZSBsb29wLCB3YXkgbW9yZSBpdGVyYXRpb25zIHRoYW4gbWF0Y2hlcyIpfXJldHVybiBZKz13LHcubGVuZ3RofWNvbnN0IEw9Z2V0TGFuZ3VhZ2Uocyk7aWYoIUwpdGhyb3cgZXJyb3IoeC5yZXBsYWNlKCJ7fSIscykpLG5ldyBFcnJvcignVW5rbm93biBsYW5ndWFnZTogIicrcysnIicpO2NvbnN0IEI9Y29tcGlsZUxhbmd1YWdlKEwse3BsdWdpbnM6dX0pO2xldCAkPSIiLFY9d3x8Qjtjb25zdCBVPXt9LHo9bmV3IGouX19lbWl0dGVyKGopOyFmdW5jdGlvbiBwcm9jZXNzQ29udGludWF0aW9ucygpe2NvbnN0IHM9W107Zm9yKGxldCBvPVY7byE9PUw7bz1vLnBhcmVudClvLmNsYXNzTmFtZSYmcy51bnNoaWZ0KG8uY2xhc3NOYW1lKTtzLmZvckVhY2goKHM9Pnoub3Blbk5vZGUocykpKX0oKTtsZXQgWT0iIixaPTAsZWU9MCxpZT0wLGFlPSExO3RyeXtmb3IoVi5tYXRjaGVyLmNvbnNpZGVyQWxsKCk7Oyl7aWUrKyxhZT9hZT0hMTpWLm1hdGNoZXIuY29uc2lkZXJBbGwoKSxWLm1hdGNoZXIubGFzdEluZGV4PWVlO2NvbnN0IHM9Vi5tYXRjaGVyLmV4ZWMobyk7aWYoIXMpYnJlYWs7Y29uc3QgaT1wcm9jZXNzTGV4ZW1lKG8uc3Vic3RyaW5nKGVlLHMuaW5kZXgpLHMpO2VlPXMuaW5kZXgraX1yZXR1cm4gcHJvY2Vzc0xleGVtZShvLnN1YnN0cihlZSkpLHouY2xvc2VBbGxOb2RlcygpLHouZmluYWxpemUoKSwkPXoudG9IVE1MKCkse3JlbGV2YW5jZTpNYXRoLmZsb29yKFopLHZhbHVlOiQsbGFuZ3VhZ2U6cyxpbGxlZ2FsOiExLGVtaXR0ZXI6eix0b3A6Vn19Y2F0Y2goaSl7aWYoaS5tZXNzYWdlJiZpLm1lc3NhZ2UuaW5jbHVkZXMoIklsbGVnYWwiKSlyZXR1cm57aWxsZWdhbDohMCxpbGxlZ2FsQnk6e21zZzppLm1lc3NhZ2UsY29udGV4dDpvLnNsaWNlKGVlLTEwMCxlZSsxMDApLG1vZGU6aS5tb2RlfSxzb2ZhcjokLHJlbGV2YW5jZTowLHZhbHVlOl9lKG8pLGVtaXR0ZXI6en07aWYoXylyZXR1cm57aWxsZWdhbDohMSxyZWxldmFuY2U6MCx2YWx1ZTpfZShvKSxlbWl0dGVyOnosbGFuZ3VhZ2U6cyx0b3A6VixlcnJvclJhaXNlZDppfTt0aHJvdyBpfX1mdW5jdGlvbiBoaWdobGlnaHRBdXRvKHMsbyl7bz1vfHxqLmxhbmd1YWdlc3x8T2JqZWN0LmtleXMoaSk7Y29uc3QgYT1mdW5jdGlvbiBqdXN0VGV4dEhpZ2hsaWdodFJlc3VsdChzKXtjb25zdCBvPXtyZWxldmFuY2U6MCxlbWl0dGVyOm5ldyBqLl9fZW1pdHRlcihqKSx2YWx1ZTpfZShzKSxpbGxlZ2FsOiExLHRvcDpDfTtyZXR1cm4gby5lbWl0dGVyLmFkZFRleHQocyksb30ocyksdT1vLmZpbHRlcihnZXRMYW5ndWFnZSkuZmlsdGVyKGF1dG9EZXRlY3Rpb24pLm1hcCgobz0+X2hpZ2hsaWdodChvLHMsITEpKSk7dS51bnNoaWZ0KGEpO2NvbnN0IF89dS5zb3J0KCgocyxvKT0+e2lmKHMucmVsZXZhbmNlIT09by5yZWxldmFuY2UpcmV0dXJuIG8ucmVsZXZhbmNlLXMucmVsZXZhbmNlO2lmKHMubGFuZ3VhZ2UmJm8ubGFuZ3VhZ2Upe2lmKGdldExhbmd1YWdlKHMubGFuZ3VhZ2UpLnN1cGVyc2V0T2Y9PT1vLmxhbmd1YWdlKXJldHVybiAxO2lmKGdldExhbmd1YWdlKG8ubGFuZ3VhZ2UpLnN1cGVyc2V0T2Y9PT1zLmxhbmd1YWdlKXJldHVybi0xfXJldHVybiAwfSkpLFt3LHhdPV8sTD13O3JldHVybiBMLnNlY29uZF9iZXN0PXgsTH1jb25zdCBMPXsiYmVmb3JlOmhpZ2hsaWdodEVsZW1lbnQiOih7ZWw6c30pPT57ai51c2VCUiYmKHMuaW5uZXJIVE1MPXMuaW5uZXJIVE1MLnJlcGxhY2UoL1xuL2csIiIpLnJlcGxhY2UoLzxiclsgL10qPi9nLCJcbiIpKX0sImFmdGVyOmhpZ2hsaWdodEVsZW1lbnQiOih7cmVzdWx0OnN9KT0+e2oudXNlQlImJihzLnZhbHVlPXMudmFsdWUucmVwbGFjZSgvXG4vZywiPGJyPiIpKX19LEI9L14oPFtePl0rPnxcdCkrL2dtLCQ9eyJhZnRlcjpoaWdobGlnaHRFbGVtZW50Ijooe3Jlc3VsdDpzfSk9PntqLnRhYlJlcGxhY2UmJihzLnZhbHVlPXMudmFsdWUucmVwbGFjZShCLChzPT5zLnJlcGxhY2UoL1x0L2csai50YWJSZXBsYWNlKSkpKX19O2Z1bmN0aW9uIGhpZ2hsaWdodEVsZW1lbnQocyl7bGV0IG89bnVsbDtjb25zdCBpPWZ1bmN0aW9uIGJsb2NrTGFuZ3VhZ2Uocyl7bGV0IG89cy5jbGFzc05hbWUrIiAiO28rPXMucGFyZW50Tm9kZT9zLnBhcmVudE5vZGUuY2xhc3NOYW1lOiIiO2NvbnN0IGk9ai5sYW5ndWFnZURldGVjdFJlLmV4ZWMobyk7aWYoaSl7Y29uc3Qgbz1nZXRMYW5ndWFnZShpWzFdKTtyZXR1cm4gb3x8KHdhcm4oeC5yZXBsYWNlKCJ7fSIsaVsxXSkpLHdhcm4oIkZhbGxpbmcgYmFjayB0byBuby1oaWdobGlnaHQgbW9kZSBmb3IgdGhpcyBibG9jay4iLHMpKSxvP2lbMV06Im5vLWhpZ2hsaWdodCJ9cmV0dXJuIG8uc3BsaXQoL1xzKy8pLmZpbmQoKHM9PnNob3VsZE5vdEhpZ2hsaWdodChzKXx8Z2V0TGFuZ3VhZ2UocykpKX0ocyk7aWYoc2hvdWxkTm90SGlnaGxpZ2h0KGkpKXJldHVybjtmaXJlKCJiZWZvcmU6aGlnaGxpZ2h0RWxlbWVudCIse2VsOnMsbGFuZ3VhZ2U6aX0pLG89cztjb25zdCB1PW8udGV4dENvbnRlbnQsXz1pP2hpZ2hsaWdodCh1LHtsYW5ndWFnZTppLGlnbm9yZUlsbGVnYWxzOiEwfSk6aGlnaGxpZ2h0QXV0byh1KTtmaXJlKCJhZnRlcjpoaWdobGlnaHRFbGVtZW50Iix7ZWw6cyxyZXN1bHQ6Xyx0ZXh0OnV9KSxzLmlubmVySFRNTD1fLnZhbHVlLGZ1bmN0aW9uIHVwZGF0ZUNsYXNzTmFtZShzLG8saSl7Y29uc3QgdT1vP2Fbb106aTtzLmNsYXNzTGlzdC5hZGQoImhsanMiKSx1JiZzLmNsYXNzTGlzdC5hZGQodSl9KHMsaSxfLmxhbmd1YWdlKSxzLnJlc3VsdD17bGFuZ3VhZ2U6Xy5sYW5ndWFnZSxyZTpfLnJlbGV2YW5jZSxyZWxhdmFuY2U6Xy5yZWxldmFuY2V9LF8uc2Vjb25kX2Jlc3QmJihzLnNlY29uZF9iZXN0PXtsYW5ndWFnZTpfLnNlY29uZF9iZXN0Lmxhbmd1YWdlLHJlOl8uc2Vjb25kX2Jlc3QucmVsZXZhbmNlLHJlbGF2YW5jZTpfLnNlY29uZF9iZXN0LnJlbGV2YW5jZX0pfWNvbnN0IGluaXRIaWdobGlnaHRpbmc9KCk9PntpZihpbml0SGlnaGxpZ2h0aW5nLmNhbGxlZClyZXR1cm47aW5pdEhpZ2hsaWdodGluZy5jYWxsZWQ9ITAsZGVwcmVjYXRlZCgiMTAuNi4wIiwiaW5pdEhpZ2hsaWdodGluZygpIGlzIGRlcHJlY2F0ZWQuICBVc2UgaGlnaGxpZ2h0QWxsKCkgaW5zdGVhZC4iKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJwcmUgY29kZSIpLmZvckVhY2goaGlnaGxpZ2h0RWxlbWVudCl9O2xldCBWPSExO2Z1bmN0aW9uIGhpZ2hsaWdodEFsbCgpe2lmKCJsb2FkaW5nIj09PWRvY3VtZW50LnJlYWR5U3RhdGUpcmV0dXJuIHZvaWQoVj0hMCk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgicHJlIGNvZGUiKS5mb3JFYWNoKGhpZ2hsaWdodEVsZW1lbnQpfWZ1bmN0aW9uIGdldExhbmd1YWdlKHMpe3JldHVybiBzPShzfHwiIikudG9Mb3dlckNhc2UoKSxpW3NdfHxpW2Fbc11dfWZ1bmN0aW9uIHJlZ2lzdGVyQWxpYXNlcyhzLHtsYW5ndWFnZU5hbWU6b30peyJzdHJpbmciPT10eXBlb2YgcyYmKHM9W3NdKSxzLmZvckVhY2goKHM9PnthW3MudG9Mb3dlckNhc2UoKV09b30pKX1mdW5jdGlvbiBhdXRvRGV0ZWN0aW9uKHMpe2NvbnN0IG89Z2V0TGFuZ3VhZ2Uocyk7cmV0dXJuIG8mJiFvLmRpc2FibGVBdXRvZGV0ZWN0fWZ1bmN0aW9uIGZpcmUocyxvKXtjb25zdCBpPXM7dS5mb3JFYWNoKChmdW5jdGlvbihzKXtzW2ldJiZzW2ldKG8pfSkpfSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciYmd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLChmdW5jdGlvbiBib290KCl7ViYmaGlnaGxpZ2h0QWxsKCl9KSwhMSksT2JqZWN0LmFzc2lnbihzLHtoaWdobGlnaHQsaGlnaGxpZ2h0QXV0byxoaWdobGlnaHRBbGwsZml4TWFya3VwOmZ1bmN0aW9uIGRlcHJlY2F0ZUZpeE1hcmt1cChzKXtyZXR1cm4gZGVwcmVjYXRlZCgiMTAuMi4wIiwiZml4TWFya3VwIHdpbGwgYmUgcmVtb3ZlZCBlbnRpcmVseSBpbiB2MTEuMCIpLGRlcHJlY2F0ZWQoIjEwLjIuMCIsIlBsZWFzZSBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMjUzNCIpLGZ1bmN0aW9uIGZpeE1hcmt1cChzKXtyZXR1cm4gai50YWJSZXBsYWNlfHxqLnVzZUJSP3MucmVwbGFjZSh3LChzPT4iXG4iPT09cz9qLnVzZUJSPyI8YnI+IjpzOmoudGFiUmVwbGFjZT9zLnJlcGxhY2UoL1x0L2csai50YWJSZXBsYWNlKTpzKSk6c30ocyl9LGhpZ2hsaWdodEVsZW1lbnQsaGlnaGxpZ2h0QmxvY2s6ZnVuY3Rpb24gZGVwcmVjYXRlSGlnaGxpZ2h0QmxvY2socyl7cmV0dXJuIGRlcHJlY2F0ZWQoIjEwLjcuMCIsImhpZ2hsaWdodEJsb2NrIHdpbGwgYmUgcmVtb3ZlZCBlbnRpcmVseSBpbiB2MTIuMCIpLGRlcHJlY2F0ZWQoIjEwLjcuMCIsIlBsZWFzZSB1c2UgaGlnaGxpZ2h0RWxlbWVudCBub3cuIiksaGlnaGxpZ2h0RWxlbWVudChzKX0sY29uZmlndXJlOmZ1bmN0aW9uIGNvbmZpZ3VyZShzKXtzLnVzZUJSJiYoZGVwcmVjYXRlZCgiMTAuMy4wIiwiJ3VzZUJSJyB3aWxsIGJlIHJlbW92ZWQgZW50aXJlbHkgaW4gdjExLjAiKSxkZXByZWNhdGVkKCIxMC4zLjAiLCJQbGVhc2Ugc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oaWdobGlnaHRqcy9oaWdobGlnaHQuanMvaXNzdWVzLzI1NTkiKSksaj1TZShqLHMpfSxpbml0SGlnaGxpZ2h0aW5nLGluaXRIaWdobGlnaHRpbmdPbkxvYWQ6ZnVuY3Rpb24gaW5pdEhpZ2hsaWdodGluZ09uTG9hZCgpe2RlcHJlY2F0ZWQoIjEwLjYuMCIsImluaXRIaWdobGlnaHRpbmdPbkxvYWQoKSBpcyBkZXByZWNhdGVkLiAgVXNlIGhpZ2hsaWdodEFsbCgpIGluc3RlYWQuIiksVj0hMH0scmVnaXN0ZXJMYW5ndWFnZTpmdW5jdGlvbiByZWdpc3Rlckxhbmd1YWdlKG8sYSl7bGV0IHU9bnVsbDt0cnl7dT1hKHMpfWNhdGNoKHMpe2lmKGVycm9yKCJMYW5ndWFnZSBkZWZpbml0aW9uIGZvciAne30nIGNvdWxkIG5vdCBiZSByZWdpc3RlcmVkLiIucmVwbGFjZSgie30iLG8pKSwhXyl0aHJvdyBzO2Vycm9yKHMpLHU9Q311Lm5hbWV8fCh1Lm5hbWU9byksaVtvXT11LHUucmF3RGVmaW5pdGlvbj1hLmJpbmQobnVsbCxzKSx1LmFsaWFzZXMmJnJlZ2lzdGVyQWxpYXNlcyh1LmFsaWFzZXMse2xhbmd1YWdlTmFtZTpvfSl9LHVucmVnaXN0ZXJMYW5ndWFnZTpmdW5jdGlvbiB1bnJlZ2lzdGVyTGFuZ3VhZ2Uocyl7ZGVsZXRlIGlbc107Zm9yKGNvbnN0IG8gb2YgT2JqZWN0LmtleXMoYSkpYVtvXT09PXMmJmRlbGV0ZSBhW29dfSxsaXN0TGFuZ3VhZ2VzOmZ1bmN0aW9uIGxpc3RMYW5ndWFnZXMoKXtyZXR1cm4gT2JqZWN0LmtleXMoaSl9LGdldExhbmd1YWdlLHJlZ2lzdGVyQWxpYXNlcyxyZXF1aXJlTGFuZ3VhZ2U6ZnVuY3Rpb24gcmVxdWlyZUxhbmd1YWdlKHMpe2RlcHJlY2F0ZWQoIjEwLjQuMCIsInJlcXVpcmVMYW5ndWFnZSB3aWxsIGJlIHJlbW92ZWQgZW50aXJlbHkgaW4gdjExLiIpLGRlcHJlY2F0ZWQoIjEwLjQuMCIsIlBsZWFzZSBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9wdWxsLzI4NDQiKTtjb25zdCBvPWdldExhbmd1YWdlKHMpO2lmKG8pcmV0dXJuIG87dGhyb3cgbmV3IEVycm9yKCJUaGUgJ3t9JyBsYW5ndWFnZSBpcyByZXF1aXJlZCwgYnV0IG5vdCBsb2FkZWQuIi5yZXBsYWNlKCJ7fSIscykpfSxhdXRvRGV0ZWN0aW9uLGluaGVyaXQ6U2UsYWRkUGx1Z2luOmZ1bmN0aW9uIGFkZFBsdWdpbihzKXshZnVuY3Rpb24gdXBncmFkZVBsdWdpbkFQSShzKXtzWyJiZWZvcmU6aGlnaGxpZ2h0QmxvY2siXSYmIXNbImJlZm9yZTpoaWdobGlnaHRFbGVtZW50Il0mJihzWyJiZWZvcmU6aGlnaGxpZ2h0RWxlbWVudCJdPW89PntzWyJiZWZvcmU6aGlnaGxpZ2h0QmxvY2siXShPYmplY3QuYXNzaWduKHtibG9jazpvLmVsfSxvKSl9KSxzWyJhZnRlcjpoaWdobGlnaHRCbG9jayJdJiYhc1siYWZ0ZXI6aGlnaGxpZ2h0RWxlbWVudCJdJiYoc1siYWZ0ZXI6aGlnaGxpZ2h0RWxlbWVudCJdPW89PntzWyJhZnRlcjpoaWdobGlnaHRCbG9jayJdKE9iamVjdC5hc3NpZ24oe2Jsb2NrOm8uZWx9LG8pKX0pfShzKSx1LnB1c2gocyl9LHZ1ZVBsdWdpbjpCdWlsZFZ1ZVBsdWdpbihzKS5WdWVQbHVnaW59KSxzLmRlYnVnTW9kZT1mdW5jdGlvbigpe189ITF9LHMuc2FmZU1vZGU9ZnVuY3Rpb24oKXtfPSEwfSxzLnZlcnNpb25TdHJpbmc9IjEwLjcuMyI7Zm9yKGNvbnN0IHMgaW4gZGUpIm9iamVjdCI9PXR5cGVvZiBkZVtzXSYmbyhkZVtzXSk7cmV0dXJuIE9iamVjdC5hc3NpZ24ocyxkZSkscy5hZGRQbHVnaW4oTCkscy5hZGRQbHVnaW4oeWUpLHMuYWRkUGx1Z2luKCQpLHN9KHt9KTtzLmV4cG9ydHM9eGV9LDQ2MDI4OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgxMzkzMCksdT1pKDQ2Mjg1KSxfPWkoMjU1OTQpLHc9aSgyOTM2NykseD1pKDYwNTgxKSxDPWkoNzYyNjQpLGo9VHlwZUVycm9yLEw9QygidG9QcmltaXRpdmUiKTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvKXtpZighdShzKXx8XyhzKSlyZXR1cm4gczt2YXIgaSxDPXcocyxMKTtpZihDKXtpZih2b2lkIDA9PT1vJiYobz0iZGVmYXVsdCIpLGk9YShDLHMsbyksIXUoaSl8fF8oaSkpcmV0dXJuIGk7dGhyb3cgbmV3IGooIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfXJldHVybiB2b2lkIDA9PT1vJiYobz0ibnVtYmVyIikseChzLG8pfX0sNDYwNzY6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0IjtpKDkxNTk5KTt2YXIgYT1pKDY4NjIzKTtzLmV4cG9ydHM9YX0sNDYyODU6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDYyMjUwKTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBzP251bGwhPT1zOmEocyl9fSw0Njk0MjoocyxvKT0+e3ZhciBpOyFmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgYT17fS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBjbGFzc05hbWVzKCl7Zm9yKHZhciBzPSIiLG89MDtvPGFyZ3VtZW50cy5sZW5ndGg7bysrKXt2YXIgaT1hcmd1bWVudHNbb107aSYmKHM9YXBwZW5kQ2xhc3MocyxwYXJzZVZhbHVlKGkpKSl9cmV0dXJuIHN9ZnVuY3Rpb24gcGFyc2VWYWx1ZShzKXtpZigic3RyaW5nIj09dHlwZW9mIHN8fCJudW1iZXIiPT10eXBlb2YgcylyZXR1cm4gcztpZigib2JqZWN0IiE9dHlwZW9mIHMpcmV0dXJuIiI7aWYoQXJyYXkuaXNBcnJheShzKSlyZXR1cm4gY2xhc3NOYW1lcy5hcHBseShudWxsLHMpO2lmKHMudG9TdHJpbmchPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nJiYhcy50b1N0cmluZy50b1N0cmluZygpLmluY2x1ZGVzKCJbbmF0aXZlIGNvZGVdIikpcmV0dXJuIHMudG9TdHJpbmcoKTt2YXIgbz0iIjtmb3IodmFyIGkgaW4gcylhLmNhbGwocyxpKSYmc1tpXSYmKG89YXBwZW5kQ2xhc3MobyxpKSk7cmV0dXJuIG99ZnVuY3Rpb24gYXBwZW5kQ2xhc3MocyxvKXtyZXR1cm4gbz9zP3MrIiAiK286cytvOnN9cy5leHBvcnRzPyhjbGFzc05hbWVzLmRlZmF1bHQ9Y2xhc3NOYW1lcyxzLmV4cG9ydHM9Y2xhc3NOYW1lcyk6dm9pZCAwPT09KGk9ZnVuY3Rpb24oKXtyZXR1cm4gY2xhc3NOYW1lc30uYXBwbHkobyxbXSkpfHwocy5leHBvcnRzPWkpfSgpfSw0NzE4MToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoOTUxMTYpLkl0ZXJhdG9yUHJvdG90eXBlLHU9aSg1ODA3NSksXz1pKDc1ODE3KSx3PWkoMTQ4NDApLHg9aSg5Mzc0MikscmV0dXJuVGhpcz1mdW5jdGlvbigpe3JldHVybiB0aGlzfTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvLGksQyl7dmFyIGo9bysiIEl0ZXJhdG9yIjtyZXR1cm4gcy5wcm90b3R5cGU9dShhLHtuZXh0Ol8oKyFDLGkpfSksdyhzLGosITEsITApLHhbal09cmV0dXJuVGhpcyxzfX0sNDcyMzc6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlUHJvcGVydHkocyl7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBudWxsPT1vP3ZvaWQgMDpvW3NdfX19LDQ3MjQ4OihzLG8saSk9Pnt2YXIgYT1pKDE2NTQ3KSx1PWkoNTEyMzQpO3MuZXhwb3J0cz1mdW5jdGlvbiB6aXBPYmplY3QocyxvKXtyZXR1cm4gdShzfHxbXSxvfHxbXSxhKX19LDQ3NDIyOihzLG8saSk9Pnt2YXIgYT1pKDMxNzY5KSx1PWkoNzc3OTcpO3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlR2V0KHMsbyl7Zm9yKHZhciBpPTAsXz0obz1hKG8scykpLmxlbmd0aDtudWxsIT1zJiZpPF87KXM9c1t1KG9baSsrXSldO3JldHVybiBpJiZpPT1fP3M6dm9pZCAwfX0sNDc0NzM6cz0+e3ZhciBvPUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZztzLmV4cG9ydHM9ZnVuY3Rpb24gdG9Tb3VyY2Uocyl7aWYobnVsbCE9cyl7dHJ5e3JldHVybiBvLmNhbGwocyl9Y2F0Y2gocyl7fXRyeXtyZXR1cm4gcysiIn1jYXRjaChzKXt9fXJldHVybiIifX0sNDc4ODY6KHMsbyxpKT0+e3ZhciBhPWkoNTg2MSksdT1pKDQwMzQ2KTtzLmV4cG9ydHM9ZnVuY3Rpb24gaXNXZWFrTWFwKHMpe3JldHVybiB1KHMpJiYiW29iamVjdCBXZWFrTWFwXSI9PWEocyl9fSw0NzkzNDoocyxvLGkpPT57cy5leHBvcnRzPXthcnk6aSg2NDYyNiksYXNzaWduOmkoNzQ3MzMpLGNsb25lOmkoMzI2MjkpLGN1cnJ5OmkoNDk3NDcpLGZvckVhY2g6aSg4MzcyOSksaXNBcnJheTppKDU2NDQ5KSxpc0Vycm9yOmkoMjM1NDYpLGlzRnVuY3Rpb246aSgxODgyKSxpc1dlYWtNYXA6aSg0Nzg4NiksaXRlcmF0ZWU6aSgzMzg1NSksa2V5czppKDg4OTg0KSxyZWFyZzppKDg0MTk1KSx0b0ludGVnZXI6aSg2MTQ4OSksdG9QYXRoOmkoNDIwNzIpfX0sNDgxNTI6KHMsbyxpKT0+e3ZhciBhPWkoMjgzMDMpLHU9YSYmbmV3IGE7cy5leHBvcnRzPXV9LDQ4Mjg3OihzLG8saSk9PnsidXNlIHN0cmljdCI7Y29uc3QgYT1pKDY3NTI2KSx1PWkoMjUxKSxfPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wuZm9yP1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tIik6bnVsbDtvLkJ1ZmZlcj1CdWZmZXIsby5TbG93QnVmZmVyPWZ1bmN0aW9uIFNsb3dCdWZmZXIocyl7K3MhPXMmJihzPTApO3JldHVybiBCdWZmZXIuYWxsb2MoK3MpfSxvLklOU1BFQ1RfTUFYX0JZVEVTPTUwO2NvbnN0IHc9MjE0NzQ4MzY0NztmdW5jdGlvbiBjcmVhdGVCdWZmZXIocyl7aWYocz53KXRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgIicrcysnIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gInNpemUiJyk7Y29uc3Qgbz1uZXcgVWludDhBcnJheShzKTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKG8sQnVmZmVyLnByb3RvdHlwZSksb31mdW5jdGlvbiBCdWZmZXIocyxvLGkpe2lmKCJudW1iZXIiPT10eXBlb2Ygcyl7aWYoInN0cmluZyI9PXR5cGVvZiBvKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAic3RyaW5nIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nLiBSZWNlaXZlZCB0eXBlIG51bWJlcicpO3JldHVybiBhbGxvY1Vuc2FmZShzKX1yZXR1cm4gZnJvbShzLG8saSl9ZnVuY3Rpb24gZnJvbShzLG8saSl7aWYoInN0cmluZyI9PXR5cGVvZiBzKXJldHVybiBmdW5jdGlvbiBmcm9tU3RyaW5nKHMsbyl7InN0cmluZyI9PXR5cGVvZiBvJiYiIiE9PW98fChvPSJ1dGY4Iik7aWYoIUJ1ZmZlci5pc0VuY29kaW5nKG8pKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrbyk7Y29uc3QgaT0wfGJ5dGVMZW5ndGgocyxvKTtsZXQgYT1jcmVhdGVCdWZmZXIoaSk7Y29uc3QgdT1hLndyaXRlKHMsbyk7dSE9PWkmJihhPWEuc2xpY2UoMCx1KSk7cmV0dXJuIGF9KHMsbyk7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KHMpKXJldHVybiBmdW5jdGlvbiBmcm9tQXJyYXlWaWV3KHMpe2lmKGlzSW5zdGFuY2UocyxVaW50OEFycmF5KSl7Y29uc3Qgbz1uZXcgVWludDhBcnJheShzKTtyZXR1cm4gZnJvbUFycmF5QnVmZmVyKG8uYnVmZmVyLG8uYnl0ZU9mZnNldCxvLmJ5dGVMZW5ndGgpfXJldHVybiBmcm9tQXJyYXlMaWtlKHMpfShzKTtpZihudWxsPT1zKXRocm93IG5ldyBUeXBlRXJyb3IoIlRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBBcnJheUJ1ZmZlciwgQXJyYXksIG9yIEFycmF5LWxpa2UgT2JqZWN0LiBSZWNlaXZlZCB0eXBlICIrdHlwZW9mIHMpO2lmKGlzSW5zdGFuY2UocyxBcnJheUJ1ZmZlcil8fHMmJmlzSW5zdGFuY2Uocy5idWZmZXIsQXJyYXlCdWZmZXIpKXJldHVybiBmcm9tQXJyYXlCdWZmZXIocyxvLGkpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXImJihpc0luc3RhbmNlKHMsU2hhcmVkQXJyYXlCdWZmZXIpfHxzJiZpc0luc3RhbmNlKHMuYnVmZmVyLFNoYXJlZEFycmF5QnVmZmVyKSkpcmV0dXJuIGZyb21BcnJheUJ1ZmZlcihzLG8saSk7aWYoIm51bWJlciI9PXR5cGVvZiBzKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAidmFsdWUiIGFyZ3VtZW50IG11c3Qgbm90IGJlIG9mIHR5cGUgbnVtYmVyLiBSZWNlaXZlZCB0eXBlIG51bWJlcicpO2NvbnN0IGE9cy52YWx1ZU9mJiZzLnZhbHVlT2YoKTtpZihudWxsIT1hJiZhIT09cylyZXR1cm4gQnVmZmVyLmZyb20oYSxvLGkpO2NvbnN0IHU9ZnVuY3Rpb24gZnJvbU9iamVjdChzKXtpZihCdWZmZXIuaXNCdWZmZXIocykpe2NvbnN0IG89MHxjaGVja2VkKHMubGVuZ3RoKSxpPWNyZWF0ZUJ1ZmZlcihvKTtyZXR1cm4gMD09PWkubGVuZ3RofHxzLmNvcHkoaSwwLDAsbyksaX1pZih2b2lkIDAhPT1zLmxlbmd0aClyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIHMubGVuZ3RofHxudW1iZXJJc05hTihzLmxlbmd0aCk/Y3JlYXRlQnVmZmVyKDApOmZyb21BcnJheUxpa2Uocyk7aWYoIkJ1ZmZlciI9PT1zLnR5cGUmJkFycmF5LmlzQXJyYXkocy5kYXRhKSlyZXR1cm4gZnJvbUFycmF5TGlrZShzLmRhdGEpfShzKTtpZih1KXJldHVybiB1O2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1TeW1ib2wudG9QcmltaXRpdmUmJiJmdW5jdGlvbiI9PXR5cGVvZiBzW1N5bWJvbC50b1ByaW1pdGl2ZV0pcmV0dXJuIEJ1ZmZlci5mcm9tKHNbU3ltYm9sLnRvUHJpbWl0aXZlXSgic3RyaW5nIiksbyxpKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiBzKX1mdW5jdGlvbiBhc3NlcnRTaXplKHMpe2lmKCJudW1iZXIiIT10eXBlb2Ygcyl0aHJvdyBuZXcgVHlwZUVycm9yKCcic2l6ZSIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIG51bWJlcicpO2lmKHM8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlICInK3MrJyIgaXMgaW52YWxpZCBmb3Igb3B0aW9uICJzaXplIicpfWZ1bmN0aW9uIGFsbG9jVW5zYWZlKHMpe3JldHVybiBhc3NlcnRTaXplKHMpLGNyZWF0ZUJ1ZmZlcihzPDA/MDowfGNoZWNrZWQocykpfWZ1bmN0aW9uIGZyb21BcnJheUxpa2Uocyl7Y29uc3Qgbz1zLmxlbmd0aDwwPzA6MHxjaGVja2VkKHMubGVuZ3RoKSxpPWNyZWF0ZUJ1ZmZlcihvKTtmb3IobGV0IGE9MDthPG87YSs9MSlpW2FdPTI1NSZzW2FdO3JldHVybiBpfWZ1bmN0aW9uIGZyb21BcnJheUJ1ZmZlcihzLG8saSl7aWYobzwwfHxzLmJ5dGVMZW5ndGg8byl0aHJvdyBuZXcgUmFuZ2VFcnJvcignIm9mZnNldCIgaXMgb3V0c2lkZSBvZiBidWZmZXIgYm91bmRzJyk7aWYocy5ieXRlTGVuZ3RoPG8rKGl8fDApKXRocm93IG5ldyBSYW5nZUVycm9yKCcibGVuZ3RoIiBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHMnKTtsZXQgYTtyZXR1cm4gYT12b2lkIDA9PT1vJiZ2b2lkIDA9PT1pP25ldyBVaW50OEFycmF5KHMpOnZvaWQgMD09PWk/bmV3IFVpbnQ4QXJyYXkocyxvKTpuZXcgVWludDhBcnJheShzLG8saSksT2JqZWN0LnNldFByb3RvdHlwZU9mKGEsQnVmZmVyLnByb3RvdHlwZSksYX1mdW5jdGlvbiBjaGVja2VkKHMpe2lmKHM+PXcpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkF0dGVtcHQgdG8gYWxsb2NhdGUgQnVmZmVyIGxhcmdlciB0aGFuIG1heGltdW0gc2l6ZTogMHgiK3cudG9TdHJpbmcoMTYpKyIgYnl0ZXMiKTtyZXR1cm4gMHxzfWZ1bmN0aW9uIGJ5dGVMZW5ndGgocyxvKXtpZihCdWZmZXIuaXNCdWZmZXIocykpcmV0dXJuIHMubGVuZ3RoO2lmKEFycmF5QnVmZmVyLmlzVmlldyhzKXx8aXNJbnN0YW5jZShzLEFycmF5QnVmZmVyKSlyZXR1cm4gcy5ieXRlTGVuZ3RoO2lmKCJzdHJpbmciIT10eXBlb2Ygcyl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInN0cmluZyIgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgb3IgQXJyYXlCdWZmZXIuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2Ygcyk7Y29uc3QgaT1zLmxlbmd0aCxhPWFyZ3VtZW50cy5sZW5ndGg+MiYmITA9PT1hcmd1bWVudHNbMl07aWYoIWEmJjA9PT1pKXJldHVybiAwO2xldCB1PSExO2Zvcig7Oylzd2l0Y2gobyl7Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gaTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiB1dGY4VG9CeXRlcyhzKS5sZW5ndGg7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiAyKmk7Y2FzZSJoZXgiOnJldHVybiBpPj4+MTtjYXNlImJhc2U2NCI6cmV0dXJuIGJhc2U2NFRvQnl0ZXMocykubGVuZ3RoO2RlZmF1bHQ6aWYodSlyZXR1cm4gYT8tMTp1dGY4VG9CeXRlcyhzKS5sZW5ndGg7bz0oIiIrbykudG9Mb3dlckNhc2UoKSx1PSEwfX1mdW5jdGlvbiBzbG93VG9TdHJpbmcocyxvLGkpe2xldCBhPSExO2lmKCh2b2lkIDA9PT1vfHxvPDApJiYobz0wKSxvPnRoaXMubGVuZ3RoKXJldHVybiIiO2lmKCh2b2lkIDA9PT1pfHxpPnRoaXMubGVuZ3RoKSYmKGk9dGhpcy5sZW5ndGgpLGk8PTApcmV0dXJuIiI7aWYoKGk+Pj49MCk8PShvPj4+PTApKXJldHVybiIiO2ZvcihzfHwocz0idXRmOCIpOzspc3dpdGNoKHMpe2Nhc2UiaGV4IjpyZXR1cm4gaGV4U2xpY2UodGhpcyxvLGkpO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIHV0ZjhTbGljZSh0aGlzLG8saSk7Y2FzZSJhc2NpaSI6cmV0dXJuIGFzY2lpU2xpY2UodGhpcyxvLGkpO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIGxhdGluMVNsaWNlKHRoaXMsbyxpKTtjYXNlImJhc2U2NCI6cmV0dXJuIGJhc2U2NFNsaWNlKHRoaXMsbyxpKTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIHV0ZjE2bGVTbGljZSh0aGlzLG8saSk7ZGVmYXVsdDppZihhKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrcyk7cz0ocysiIikudG9Mb3dlckNhc2UoKSxhPSEwfX1mdW5jdGlvbiBzd2FwKHMsbyxpKXtjb25zdCBhPXNbb107c1tvXT1zW2ldLHNbaV09YX1mdW5jdGlvbiBiaWRpcmVjdGlvbmFsSW5kZXhPZihzLG8saSxhLHUpe2lmKDA9PT1zLmxlbmd0aClyZXR1cm4tMTtpZigic3RyaW5nIj09dHlwZW9mIGk/KGE9aSxpPTApOmk+MjE0NzQ4MzY0Nz9pPTIxNDc0ODM2NDc6aTwtMjE0NzQ4MzY0OCYmKGk9LTIxNDc0ODM2NDgpLG51bWJlcklzTmFOKGk9K2kpJiYoaT11PzA6cy5sZW5ndGgtMSksaTwwJiYoaT1zLmxlbmd0aCtpKSxpPj1zLmxlbmd0aCl7aWYodSlyZXR1cm4tMTtpPXMubGVuZ3RoLTF9ZWxzZSBpZihpPDApe2lmKCF1KXJldHVybi0xO2k9MH1pZigic3RyaW5nIj09dHlwZW9mIG8mJihvPUJ1ZmZlci5mcm9tKG8sYSkpLEJ1ZmZlci5pc0J1ZmZlcihvKSlyZXR1cm4gMD09PW8ubGVuZ3RoPy0xOmFycmF5SW5kZXhPZihzLG8saSxhLHUpO2lmKCJudW1iZXIiPT10eXBlb2YgbylyZXR1cm4gbyY9MjU1LCJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mP3U/VWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHMsbyxpKTpVaW50OEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKHMsbyxpKTphcnJheUluZGV4T2Yocyxbb10saSxhLHUpO3Rocm93IG5ldyBUeXBlRXJyb3IoInZhbCBtdXN0IGJlIHN0cmluZywgbnVtYmVyIG9yIEJ1ZmZlciIpfWZ1bmN0aW9uIGFycmF5SW5kZXhPZihzLG8saSxhLHUpe2xldCBfLHc9MSx4PXMubGVuZ3RoLEM9by5sZW5ndGg7aWYodm9pZCAwIT09YSYmKCJ1Y3MyIj09PShhPVN0cmluZyhhKS50b0xvd2VyQ2FzZSgpKXx8InVjcy0yIj09PWF8fCJ1dGYxNmxlIj09PWF8fCJ1dGYtMTZsZSI9PT1hKSl7aWYocy5sZW5ndGg8Mnx8by5sZW5ndGg8MilyZXR1cm4tMTt3PTIseC89MixDLz0yLGkvPTJ9ZnVuY3Rpb24gcmVhZChzLG8pe3JldHVybiAxPT09dz9zW29dOnMucmVhZFVJbnQxNkJFKG8qdyl9aWYodSl7bGV0IGE9LTE7Zm9yKF89aTtfPHg7XysrKWlmKHJlYWQocyxfKT09PXJlYWQobywtMT09PWE/MDpfLWEpKXtpZigtMT09PWEmJihhPV8pLF8tYSsxPT09QylyZXR1cm4gYSp3fWVsc2UtMSE9PWEmJihfLT1fLWEpLGE9LTF9ZWxzZSBmb3IoaStDPngmJihpPXgtQyksXz1pO18+PTA7Xy0tKXtsZXQgaT0hMDtmb3IobGV0IGE9MDthPEM7YSsrKWlmKHJlYWQocyxfK2EpIT09cmVhZChvLGEpKXtpPSExO2JyZWFrfWlmKGkpcmV0dXJuIF99cmV0dXJuLTF9ZnVuY3Rpb24gaGV4V3JpdGUocyxvLGksYSl7aT1OdW1iZXIoaSl8fDA7Y29uc3QgdT1zLmxlbmd0aC1pO2E/KGE9TnVtYmVyKGEpKT51JiYoYT11KTphPXU7Y29uc3QgXz1vLmxlbmd0aDtsZXQgdztmb3IoYT5fLzImJihhPV8vMiksdz0wO3c8YTsrK3cpe2NvbnN0IGE9cGFyc2VJbnQoby5zdWJzdHIoMip3LDIpLDE2KTtpZihudW1iZXJJc05hTihhKSlyZXR1cm4gdztzW2krd109YX1yZXR1cm4gd31mdW5jdGlvbiB1dGY4V3JpdGUocyxvLGksYSl7cmV0dXJuIGJsaXRCdWZmZXIodXRmOFRvQnl0ZXMobyxzLmxlbmd0aC1pKSxzLGksYSl9ZnVuY3Rpb24gYXNjaWlXcml0ZShzLG8saSxhKXtyZXR1cm4gYmxpdEJ1ZmZlcihmdW5jdGlvbiBhc2NpaVRvQnl0ZXMocyl7Y29uc3Qgbz1bXTtmb3IobGV0IGk9MDtpPHMubGVuZ3RoOysraSlvLnB1c2goMjU1JnMuY2hhckNvZGVBdChpKSk7cmV0dXJuIG99KG8pLHMsaSxhKX1mdW5jdGlvbiBiYXNlNjRXcml0ZShzLG8saSxhKXtyZXR1cm4gYmxpdEJ1ZmZlcihiYXNlNjRUb0J5dGVzKG8pLHMsaSxhKX1mdW5jdGlvbiB1Y3MyV3JpdGUocyxvLGksYSl7cmV0dXJuIGJsaXRCdWZmZXIoZnVuY3Rpb24gdXRmMTZsZVRvQnl0ZXMocyxvKXtsZXQgaSxhLHU7Y29uc3QgXz1bXTtmb3IobGV0IHc9MDt3PHMubGVuZ3RoJiYhKChvLT0yKTwwKTsrK3cpaT1zLmNoYXJDb2RlQXQodyksYT1pPj44LHU9aSUyNTYsXy5wdXNoKHUpLF8ucHVzaChhKTtyZXR1cm4gX30obyxzLmxlbmd0aC1pKSxzLGksYSl9ZnVuY3Rpb24gYmFzZTY0U2xpY2UocyxvLGkpe3JldHVybiAwPT09byYmaT09PXMubGVuZ3RoP2EuZnJvbUJ5dGVBcnJheShzKTphLmZyb21CeXRlQXJyYXkocy5zbGljZShvLGkpKX1mdW5jdGlvbiB1dGY4U2xpY2UocyxvLGkpe2k9TWF0aC5taW4ocy5sZW5ndGgsaSk7Y29uc3QgYT1bXTtsZXQgdT1vO2Zvcig7dTxpOyl7Y29uc3Qgbz1zW3VdO2xldCBfPW51bGwsdz1vPjIzOT80Om8+MjIzPzM6bz4xOTE/MjoxO2lmKHUrdzw9aSl7bGV0IGksYSx4LEM7c3dpdGNoKHcpe2Nhc2UgMTpvPDEyOCYmKF89byk7YnJlYWs7Y2FzZSAyOmk9c1t1KzFdLDEyOD09KDE5MiZpKSYmKEM9KDMxJm8pPDw2fDYzJmksQz4xMjcmJihfPUMpKTticmVhaztjYXNlIDM6aT1zW3UrMV0sYT1zW3UrMl0sMTI4PT0oMTkyJmkpJiYxMjg9PSgxOTImYSkmJihDPSgxNSZvKTw8MTJ8KDYzJmkpPDw2fDYzJmEsQz4yMDQ3JiYoQzw1NTI5Nnx8Qz41NzM0MykmJihfPUMpKTticmVhaztjYXNlIDQ6aT1zW3UrMV0sYT1zW3UrMl0seD1zW3UrM10sMTI4PT0oMTkyJmkpJiYxMjg9PSgxOTImYSkmJjEyOD09KDE5MiZ4KSYmKEM9KDE1Jm8pPDwxOHwoNjMmaSk8PDEyfCg2MyZhKTw8Nnw2MyZ4LEM+NjU1MzUmJkM8MTExNDExMiYmKF89QykpfX1udWxsPT09Xz8oXz02NTUzMyx3PTEpOl8+NjU1MzUmJihfLT02NTUzNixhLnB1c2goXz4+PjEwJjEwMjN8NTUyOTYpLF89NTYzMjB8MTAyMyZfKSxhLnB1c2goXyksdSs9d31yZXR1cm4gZnVuY3Rpb24gZGVjb2RlQ29kZVBvaW50c0FycmF5KHMpe2NvbnN0IG89cy5sZW5ndGg7aWYobzw9eClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcscyk7bGV0IGk9IiIsYT0wO2Zvcig7YTxvOylpKz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyxzLnNsaWNlKGEsYSs9eCkpO3JldHVybiBpfShhKX1vLmtNYXhMZW5ndGg9dyxCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVD1mdW5jdGlvbiB0eXBlZEFycmF5U3VwcG9ydCgpe3RyeXtjb25zdCBzPW5ldyBVaW50OEFycmF5KDEpLG89e2ZvbzpmdW5jdGlvbigpe3JldHVybiA0Mn19O3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YobyxVaW50OEFycmF5LnByb3RvdHlwZSksT2JqZWN0LnNldFByb3RvdHlwZU9mKHMsbyksNDI9PT1zLmZvbygpfWNhdGNoKHMpe3JldHVybiExfX0oKSxCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVHx8InVuZGVmaW5lZCI9PXR5cGVvZiBjb25zb2xlfHwiZnVuY3Rpb24iIT10eXBlb2YgY29uc29sZS5lcnJvcnx8Y29uc29sZS5lcnJvcigiVGhpcyBicm93c2VyIGxhY2tzIHR5cGVkIGFycmF5IChVaW50OEFycmF5KSBzdXBwb3J0IHdoaWNoIGlzIHJlcXVpcmVkIGJ5IGBidWZmZXJgIHY1LnguIFVzZSBgYnVmZmVyYCB2NC54IGlmIHlvdSByZXF1aXJlIG9sZCBicm93c2VyIHN1cHBvcnQuIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KEJ1ZmZlci5wcm90b3R5cGUsInBhcmVudCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7aWYoQnVmZmVyLmlzQnVmZmVyKHRoaXMpKXJldHVybiB0aGlzLmJ1ZmZlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQnVmZmVyLnByb3RvdHlwZSwib2Zmc2V0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZihCdWZmZXIuaXNCdWZmZXIodGhpcykpcmV0dXJuIHRoaXMuYnl0ZU9mZnNldH19KSxCdWZmZXIucG9vbFNpemU9ODE5MixCdWZmZXIuZnJvbT1mdW5jdGlvbihzLG8saSl7cmV0dXJuIGZyb20ocyxvLGkpfSxPYmplY3Quc2V0UHJvdG90eXBlT2YoQnVmZmVyLnByb3RvdHlwZSxVaW50OEFycmF5LnByb3RvdHlwZSksT2JqZWN0LnNldFByb3RvdHlwZU9mKEJ1ZmZlcixVaW50OEFycmF5KSxCdWZmZXIuYWxsb2M9ZnVuY3Rpb24ocyxvLGkpe3JldHVybiBmdW5jdGlvbiBhbGxvYyhzLG8saSl7cmV0dXJuIGFzc2VydFNpemUocyksczw9MD9jcmVhdGVCdWZmZXIocyk6dm9pZCAwIT09bz8ic3RyaW5nIj09dHlwZW9mIGk/Y3JlYXRlQnVmZmVyKHMpLmZpbGwobyxpKTpjcmVhdGVCdWZmZXIocykuZmlsbChvKTpjcmVhdGVCdWZmZXIocyl9KHMsbyxpKX0sQnVmZmVyLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKHMpe3JldHVybiBhbGxvY1Vuc2FmZShzKX0sQnVmZmVyLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbihzKXtyZXR1cm4gYWxsb2NVbnNhZmUocyl9LEJ1ZmZlci5pc0J1ZmZlcj1mdW5jdGlvbiBpc0J1ZmZlcihzKXtyZXR1cm4gbnVsbCE9cyYmITA9PT1zLl9pc0J1ZmZlciYmcyE9PUJ1ZmZlci5wcm90b3R5cGV9LEJ1ZmZlci5jb21wYXJlPWZ1bmN0aW9uIGNvbXBhcmUocyxvKXtpZihpc0luc3RhbmNlKHMsVWludDhBcnJheSkmJihzPUJ1ZmZlci5mcm9tKHMscy5vZmZzZXQscy5ieXRlTGVuZ3RoKSksaXNJbnN0YW5jZShvLFVpbnQ4QXJyYXkpJiYobz1CdWZmZXIuZnJvbShvLG8ub2Zmc2V0LG8uYnl0ZUxlbmd0aCkpLCFCdWZmZXIuaXNCdWZmZXIocyl8fCFCdWZmZXIuaXNCdWZmZXIobykpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJidWYxIiwgImJ1ZjIiIGFyZ3VtZW50cyBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5Jyk7aWYocz09PW8pcmV0dXJuIDA7bGV0IGk9cy5sZW5ndGgsYT1vLmxlbmd0aDtmb3IobGV0IHU9MCxfPU1hdGgubWluKGksYSk7dTxfOysrdSlpZihzW3VdIT09b1t1XSl7aT1zW3VdLGE9b1t1XTticmVha31yZXR1cm4gaTxhPy0xOmE8aT8xOjB9LEJ1ZmZlci5pc0VuY29kaW5nPWZ1bmN0aW9uIGlzRW5jb2Rpbmcocyl7c3dpdGNoKFN0cmluZyhzKS50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19LEJ1ZmZlci5jb25jYXQ9ZnVuY3Rpb24gY29uY2F0KHMsbyl7aWYoIUFycmF5LmlzQXJyYXkocykpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO2lmKDA9PT1zLmxlbmd0aClyZXR1cm4gQnVmZmVyLmFsbG9jKDApO2xldCBpO2lmKHZvaWQgMD09PW8pZm9yKG89MCxpPTA7aTxzLmxlbmd0aDsrK2kpbys9c1tpXS5sZW5ndGg7Y29uc3QgYT1CdWZmZXIuYWxsb2NVbnNhZmUobyk7bGV0IHU9MDtmb3IoaT0wO2k8cy5sZW5ndGg7KytpKXtsZXQgbz1zW2ldO2lmKGlzSW5zdGFuY2UobyxVaW50OEFycmF5KSl1K28ubGVuZ3RoPmEubGVuZ3RoPyhCdWZmZXIuaXNCdWZmZXIobyl8fChvPUJ1ZmZlci5mcm9tKG8pKSxvLmNvcHkoYSx1KSk6VWludDhBcnJheS5wcm90b3R5cGUuc2V0LmNhbGwoYSxvLHUpO2Vsc2V7aWYoIUJ1ZmZlci5pc0J1ZmZlcihvKSl0aHJvdyBuZXcgVHlwZUVycm9yKCcibGlzdCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJyk7by5jb3B5KGEsdSl9dSs9by5sZW5ndGh9cmV0dXJuIGF9LEJ1ZmZlci5ieXRlTGVuZ3RoPWJ5dGVMZW5ndGgsQnVmZmVyLnByb3RvdHlwZS5faXNCdWZmZXI9ITAsQnVmZmVyLnByb3RvdHlwZS5zd2FwMTY9ZnVuY3Rpb24gc3dhcDE2KCl7Y29uc3Qgcz10aGlzLmxlbmd0aDtpZihzJTIhPTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAxNi1iaXRzIik7Zm9yKGxldCBvPTA7bzxzO28rPTIpc3dhcCh0aGlzLG8sbysxKTtyZXR1cm4gdGhpc30sQnVmZmVyLnByb3RvdHlwZS5zd2FwMzI9ZnVuY3Rpb24gc3dhcDMyKCl7Y29uc3Qgcz10aGlzLmxlbmd0aDtpZihzJTQhPTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAzMi1iaXRzIik7Zm9yKGxldCBvPTA7bzxzO28rPTQpc3dhcCh0aGlzLG8sbyszKSxzd2FwKHRoaXMsbysxLG8rMik7cmV0dXJuIHRoaXN9LEJ1ZmZlci5wcm90b3R5cGUuc3dhcDY0PWZ1bmN0aW9uIHN3YXA2NCgpe2NvbnN0IHM9dGhpcy5sZW5ndGg7aWYocyU4IT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNjQtYml0cyIpO2ZvcihsZXQgbz0wO288cztvKz04KXN3YXAodGhpcyxvLG8rNyksc3dhcCh0aGlzLG8rMSxvKzYpLHN3YXAodGhpcyxvKzIsbys1KSxzd2FwKHRoaXMsbyszLG8rNCk7cmV0dXJuIHRoaXN9LEJ1ZmZlci5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24gdG9TdHJpbmcoKXtjb25zdCBzPXRoaXMubGVuZ3RoO3JldHVybiAwPT09cz8iIjowPT09YXJndW1lbnRzLmxlbmd0aD91dGY4U2xpY2UodGhpcywwLHMpOnNsb3dUb1N0cmluZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LEJ1ZmZlci5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmc9QnVmZmVyLnByb3RvdHlwZS50b1N0cmluZyxCdWZmZXIucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbiBlcXVhbHMocyl7aWYoIUJ1ZmZlci5pc0J1ZmZlcihzKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIik7cmV0dXJuIHRoaXM9PT1zfHwwPT09QnVmZmVyLmNvbXBhcmUodGhpcyxzKX0sQnVmZmVyLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uIGluc3BlY3QoKXtsZXQgcz0iIjtjb25zdCBpPW8uSU5TUEVDVF9NQVhfQllURVM7cmV0dXJuIHM9dGhpcy50b1N0cmluZygiaGV4IiwwLGkpLnJlcGxhY2UoLyguezJ9KS9nLCIkMSAiKS50cmltKCksdGhpcy5sZW5ndGg+aSYmKHMrPSIgLi4uICIpLCI8QnVmZmVyICIrcysiPiJ9LF8mJihCdWZmZXIucHJvdG90eXBlW19dPUJ1ZmZlci5wcm90b3R5cGUuaW5zcGVjdCksQnVmZmVyLnByb3RvdHlwZS5jb21wYXJlPWZ1bmN0aW9uIGNvbXBhcmUocyxvLGksYSx1KXtpZihpc0luc3RhbmNlKHMsVWludDhBcnJheSkmJihzPUJ1ZmZlci5mcm9tKHMscy5vZmZzZXQscy5ieXRlTGVuZ3RoKSksIUJ1ZmZlci5pc0J1ZmZlcihzKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInRhcmdldCIgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBCdWZmZXIgb3IgVWludDhBcnJheS4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBzKTtpZih2b2lkIDA9PT1vJiYobz0wKSx2b2lkIDA9PT1pJiYoaT1zP3MubGVuZ3RoOjApLHZvaWQgMD09PWEmJihhPTApLHZvaWQgMD09PXUmJih1PXRoaXMubGVuZ3RoKSxvPDB8fGk+cy5sZW5ndGh8fGE8MHx8dT50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib3V0IG9mIHJhbmdlIGluZGV4Iik7aWYoYT49dSYmbz49aSlyZXR1cm4gMDtpZihhPj11KXJldHVybi0xO2lmKG8+PWkpcmV0dXJuIDE7aWYodGhpcz09PXMpcmV0dXJuIDA7bGV0IF89KHU+Pj49MCktKGE+Pj49MCksdz0oaT4+Pj0wKS0obz4+Pj0wKTtjb25zdCB4PU1hdGgubWluKF8sdyksQz10aGlzLnNsaWNlKGEsdSksaj1zLnNsaWNlKG8saSk7Zm9yKGxldCBzPTA7czx4OysrcylpZihDW3NdIT09altzXSl7Xz1DW3NdLHc9altzXTticmVha31yZXR1cm4gXzx3Py0xOnc8Xz8xOjB9LEJ1ZmZlci5wcm90b3R5cGUuaW5jbHVkZXM9ZnVuY3Rpb24gaW5jbHVkZXMocyxvLGkpe3JldHVybi0xIT09dGhpcy5pbmRleE9mKHMsbyxpKX0sQnVmZmVyLnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uIGluZGV4T2YocyxvLGkpe3JldHVybiBiaWRpcmVjdGlvbmFsSW5kZXhPZih0aGlzLHMsbyxpLCEwKX0sQnVmZmVyLnByb3RvdHlwZS5sYXN0SW5kZXhPZj1mdW5jdGlvbiBsYXN0SW5kZXhPZihzLG8saSl7cmV0dXJuIGJpZGlyZWN0aW9uYWxJbmRleE9mKHRoaXMscyxvLGksITEpfSxCdWZmZXIucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uIHdyaXRlKHMsbyxpLGEpe2lmKHZvaWQgMD09PW8pYT0idXRmOCIsaT10aGlzLmxlbmd0aCxvPTA7ZWxzZSBpZih2b2lkIDA9PT1pJiYic3RyaW5nIj09dHlwZW9mIG8pYT1vLGk9dGhpcy5sZW5ndGgsbz0wO2Vsc2V7aWYoIWlzRmluaXRlKG8pKXRocm93IG5ldyBFcnJvcigiQnVmZmVyLndyaXRlKHN0cmluZywgZW5jb2RpbmcsIG9mZnNldFssIGxlbmd0aF0pIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQiKTtvPj4+PTAsaXNGaW5pdGUoaSk/KGk+Pj49MCx2b2lkIDA9PT1hJiYoYT0idXRmOCIpKTooYT1pLGk9dm9pZCAwKX1jb25zdCB1PXRoaXMubGVuZ3RoLW87aWYoKHZvaWQgMD09PWl8fGk+dSkmJihpPXUpLHMubGVuZ3RoPjAmJihpPDB8fG88MCl8fG8+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkF0dGVtcHQgdG8gd3JpdGUgb3V0c2lkZSBidWZmZXIgYm91bmRzIik7YXx8KGE9InV0ZjgiKTtsZXQgXz0hMTtmb3IoOzspc3dpdGNoKGEpe2Nhc2UiaGV4IjpyZXR1cm4gaGV4V3JpdGUodGhpcyxzLG8saSk7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4gdXRmOFdyaXRlKHRoaXMscyxvLGkpO2Nhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIGFzY2lpV3JpdGUodGhpcyxzLG8saSk7Y2FzZSJiYXNlNjQiOnJldHVybiBiYXNlNjRXcml0ZSh0aGlzLHMsbyxpKTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIHVjczJXcml0ZSh0aGlzLHMsbyxpKTtkZWZhdWx0OmlmKF8pdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIithKTthPSgiIithKS50b0xvd2VyQ2FzZSgpLF89ITB9fSxCdWZmZXIucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbiB0b0pTT04oKXtyZXR1cm57dHlwZToiQnVmZmVyIixkYXRhOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuX2Fycnx8dGhpcywwKX19O2NvbnN0IHg9NDA5NjtmdW5jdGlvbiBhc2NpaVNsaWNlKHMsbyxpKXtsZXQgYT0iIjtpPU1hdGgubWluKHMubGVuZ3RoLGkpO2ZvcihsZXQgdT1vO3U8aTsrK3UpYSs9U3RyaW5nLmZyb21DaGFyQ29kZSgxMjcmc1t1XSk7cmV0dXJuIGF9ZnVuY3Rpb24gbGF0aW4xU2xpY2UocyxvLGkpe2xldCBhPSIiO2k9TWF0aC5taW4ocy5sZW5ndGgsaSk7Zm9yKGxldCB1PW87dTxpOysrdSlhKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHNbdV0pO3JldHVybiBhfWZ1bmN0aW9uIGhleFNsaWNlKHMsbyxpKXtjb25zdCBhPXMubGVuZ3RoOyghb3x8bzwwKSYmKG89MCksKCFpfHxpPDB8fGk+YSkmJihpPWEpO2xldCB1PSIiO2ZvcihsZXQgYT1vO2E8aTsrK2EpdSs9TFtzW2FdXTtyZXR1cm4gdX1mdW5jdGlvbiB1dGYxNmxlU2xpY2UocyxvLGkpe2NvbnN0IGE9cy5zbGljZShvLGkpO2xldCB1PSIiO2ZvcihsZXQgcz0wO3M8YS5sZW5ndGgtMTtzKz0yKXUrPVN0cmluZy5mcm9tQ2hhckNvZGUoYVtzXSsyNTYqYVtzKzFdKTtyZXR1cm4gdX1mdW5jdGlvbiBjaGVja09mZnNldChzLG8saSl7aWYocyUxIT0wfHxzPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm9mZnNldCBpcyBub3QgdWludCIpO2lmKHMrbz5pKXRocm93IG5ldyBSYW5nZUVycm9yKCJUcnlpbmcgdG8gYWNjZXNzIGJleW9uZCBidWZmZXIgbGVuZ3RoIil9ZnVuY3Rpb24gY2hlY2tJbnQocyxvLGksYSx1LF8pe2lmKCFCdWZmZXIuaXNCdWZmZXIocykpdGhyb3cgbmV3IFR5cGVFcnJvcignImJ1ZmZlciIgYXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciBpbnN0YW5jZScpO2lmKG8+dXx8bzxfKXRocm93IG5ldyBSYW5nZUVycm9yKCcidmFsdWUiIGFyZ3VtZW50IGlzIG91dCBvZiBib3VuZHMnKTtpZihpK2E+cy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpfWZ1bmN0aW9uIHdydEJpZ1VJbnQ2NExFKHMsbyxpLGEsdSl7Y2hlY2tJbnRCSShvLGEsdSxzLGksNyk7bGV0IF89TnVtYmVyKG8mQmlnSW50KDQyOTQ5NjcyOTUpKTtzW2krK109XyxfPj49OCxzW2krK109XyxfPj49OCxzW2krK109XyxfPj49OCxzW2krK109XztsZXQgdz1OdW1iZXIobz4+QmlnSW50KDMyKSZCaWdJbnQoNDI5NDk2NzI5NSkpO3JldHVybiBzW2krK109dyx3Pj49OCxzW2krK109dyx3Pj49OCxzW2krK109dyx3Pj49OCxzW2krK109dyxpfWZ1bmN0aW9uIHdydEJpZ1VJbnQ2NEJFKHMsbyxpLGEsdSl7Y2hlY2tJbnRCSShvLGEsdSxzLGksNyk7bGV0IF89TnVtYmVyKG8mQmlnSW50KDQyOTQ5NjcyOTUpKTtzW2krN109XyxfPj49OCxzW2krNl09XyxfPj49OCxzW2krNV09XyxfPj49OCxzW2krNF09XztsZXQgdz1OdW1iZXIobz4+QmlnSW50KDMyKSZCaWdJbnQoNDI5NDk2NzI5NSkpO3JldHVybiBzW2krM109dyx3Pj49OCxzW2krMl09dyx3Pj49OCxzW2krMV09dyx3Pj49OCxzW2ldPXcsaSs4fWZ1bmN0aW9uIGNoZWNrSUVFRTc1NChzLG8saSxhLHUsXyl7aWYoaSthPnMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKTtpZihpPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpfWZ1bmN0aW9uIHdyaXRlRmxvYXQocyxvLGksYSxfKXtyZXR1cm4gbz0rbyxpPj4+PTAsX3x8Y2hlY2tJRUVFNzU0KHMsMCxpLDQpLHUud3JpdGUocyxvLGksYSwyMyw0KSxpKzR9ZnVuY3Rpb24gd3JpdGVEb3VibGUocyxvLGksYSxfKXtyZXR1cm4gbz0rbyxpPj4+PTAsX3x8Y2hlY2tJRUVFNzU0KHMsMCxpLDgpLHUud3JpdGUocyxvLGksYSw1Miw4KSxpKzh9QnVmZmVyLnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbiBzbGljZShzLG8pe2NvbnN0IGk9dGhpcy5sZW5ndGg7KHM9fn5zKTwwPyhzKz1pKTwwJiYocz0wKTpzPmkmJihzPWkpLChvPXZvaWQgMD09PW8/aTp+fm8pPDA/KG8rPWkpPDAmJihvPTApOm8+aSYmKG89aSksbzxzJiYobz1zKTtjb25zdCBhPXRoaXMuc3ViYXJyYXkocyxvKTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKGEsQnVmZmVyLnByb3RvdHlwZSksYX0sQnVmZmVyLnByb3RvdHlwZS5yZWFkVWludExFPUJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnRMRT1mdW5jdGlvbiByZWFkVUludExFKHMsbyxpKXtzPj4+PTAsbz4+Pj0wLGl8fGNoZWNrT2Zmc2V0KHMsbyx0aGlzLmxlbmd0aCk7bGV0IGE9dGhpc1tzXSx1PTEsXz0wO2Zvcig7KytfPG8mJih1Kj0yNTYpOylhKz10aGlzW3MrX10qdTtyZXR1cm4gYX0sQnVmZmVyLnByb3RvdHlwZS5yZWFkVWludEJFPUJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnRCRT1mdW5jdGlvbiByZWFkVUludEJFKHMsbyxpKXtzPj4+PTAsbz4+Pj0wLGl8fGNoZWNrT2Zmc2V0KHMsbyx0aGlzLmxlbmd0aCk7bGV0IGE9dGhpc1tzKy0tb10sdT0xO2Zvcig7bz4wJiYodSo9MjU2KTspYSs9dGhpc1tzKy0tb10qdTtyZXR1cm4gYX0sQnVmZmVyLnByb3RvdHlwZS5yZWFkVWludDg9QnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDg9ZnVuY3Rpb24gcmVhZFVJbnQ4KHMsbyl7cmV0dXJuIHM+Pj49MCxvfHxjaGVja09mZnNldChzLDEsdGhpcy5sZW5ndGgpLHRoaXNbc119LEJ1ZmZlci5wcm90b3R5cGUucmVhZFVpbnQxNkxFPUJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQxNkxFPWZ1bmN0aW9uIHJlYWRVSW50MTZMRShzLG8pe3JldHVybiBzPj4+PTAsb3x8Y2hlY2tPZmZzZXQocywyLHRoaXMubGVuZ3RoKSx0aGlzW3NdfHRoaXNbcysxXTw8OH0sQnVmZmVyLnByb3RvdHlwZS5yZWFkVWludDE2QkU9QnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDE2QkU9ZnVuY3Rpb24gcmVhZFVJbnQxNkJFKHMsbyl7cmV0dXJuIHM+Pj49MCxvfHxjaGVja09mZnNldChzLDIsdGhpcy5sZW5ndGgpLHRoaXNbc108PDh8dGhpc1tzKzFdfSxCdWZmZXIucHJvdG90eXBlLnJlYWRVaW50MzJMRT1CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MzJMRT1mdW5jdGlvbiByZWFkVUludDMyTEUocyxvKXtyZXR1cm4gcz4+Pj0wLG98fGNoZWNrT2Zmc2V0KHMsNCx0aGlzLmxlbmd0aCksKHRoaXNbc118dGhpc1tzKzFdPDw4fHRoaXNbcysyXTw8MTYpKzE2Nzc3MjE2KnRoaXNbcyszXX0sQnVmZmVyLnByb3RvdHlwZS5yZWFkVWludDMyQkU9QnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDMyQkU9ZnVuY3Rpb24gcmVhZFVJbnQzMkJFKHMsbyl7cmV0dXJuIHM+Pj49MCxvfHxjaGVja09mZnNldChzLDQsdGhpcy5sZW5ndGgpLDE2Nzc3MjE2KnRoaXNbc10rKHRoaXNbcysxXTw8MTZ8dGhpc1tzKzJdPDw4fHRoaXNbcyszXSl9LEJ1ZmZlci5wcm90b3R5cGUucmVhZEJpZ1VJbnQ2NExFPWRlZmluZUJpZ0ludE1ldGhvZCgoZnVuY3Rpb24gcmVhZEJpZ1VJbnQ2NExFKHMpe3ZhbGlkYXRlTnVtYmVyKHM+Pj49MCwib2Zmc2V0Iik7Y29uc3Qgbz10aGlzW3NdLGk9dGhpc1tzKzddO3ZvaWQgMCE9PW8mJnZvaWQgMCE9PWl8fGJvdW5kc0Vycm9yKHMsdGhpcy5sZW5ndGgtOCk7Y29uc3QgYT1vKzI1Nip0aGlzWysrc10rNjU1MzYqdGhpc1srK3NdK3RoaXNbKytzXSoyKioyNCx1PXRoaXNbKytzXSsyNTYqdGhpc1srK3NdKzY1NTM2KnRoaXNbKytzXStpKjIqKjI0O3JldHVybiBCaWdJbnQoYSkrKEJpZ0ludCh1KTw8QmlnSW50KDMyKSl9KSksQnVmZmVyLnByb3RvdHlwZS5yZWFkQmlnVUludDY0QkU9ZGVmaW5lQmlnSW50TWV0aG9kKChmdW5jdGlvbiByZWFkQmlnVUludDY0QkUocyl7dmFsaWRhdGVOdW1iZXIocz4+Pj0wLCJvZmZzZXQiKTtjb25zdCBvPXRoaXNbc10saT10aGlzW3MrN107dm9pZCAwIT09byYmdm9pZCAwIT09aXx8Ym91bmRzRXJyb3Iocyx0aGlzLmxlbmd0aC04KTtjb25zdCBhPW8qMioqMjQrNjU1MzYqdGhpc1srK3NdKzI1Nip0aGlzWysrc10rdGhpc1srK3NdLHU9dGhpc1srK3NdKjIqKjI0KzY1NTM2KnRoaXNbKytzXSsyNTYqdGhpc1srK3NdK2k7cmV0dXJuKEJpZ0ludChhKTw8QmlnSW50KDMyKSkrQmlnSW50KHUpfSkpLEJ1ZmZlci5wcm90b3R5cGUucmVhZEludExFPWZ1bmN0aW9uIHJlYWRJbnRMRShzLG8saSl7cz4+Pj0wLG8+Pj49MCxpfHxjaGVja09mZnNldChzLG8sdGhpcy5sZW5ndGgpO2xldCBhPXRoaXNbc10sdT0xLF89MDtmb3IoOysrXzxvJiYodSo9MjU2KTspYSs9dGhpc1tzK19dKnU7cmV0dXJuIHUqPTEyOCxhPj11JiYoYS09TWF0aC5wb3coMiw4Km8pKSxhfSxCdWZmZXIucHJvdG90eXBlLnJlYWRJbnRCRT1mdW5jdGlvbiByZWFkSW50QkUocyxvLGkpe3M+Pj49MCxvPj4+PTAsaXx8Y2hlY2tPZmZzZXQocyxvLHRoaXMubGVuZ3RoKTtsZXQgYT1vLHU9MSxfPXRoaXNbcystLWFdO2Zvcig7YT4wJiYodSo9MjU2KTspXys9dGhpc1tzKy0tYV0qdTtyZXR1cm4gdSo9MTI4LF8+PXUmJihfLT1NYXRoLnBvdygyLDgqbykpLF99LEJ1ZmZlci5wcm90b3R5cGUucmVhZEludDg9ZnVuY3Rpb24gcmVhZEludDgocyxvKXtyZXR1cm4gcz4+Pj0wLG98fGNoZWNrT2Zmc2V0KHMsMSx0aGlzLmxlbmd0aCksMTI4JnRoaXNbc10/LTEqKDI1NS10aGlzW3NdKzEpOnRoaXNbc119LEJ1ZmZlci5wcm90b3R5cGUucmVhZEludDE2TEU9ZnVuY3Rpb24gcmVhZEludDE2TEUocyxvKXtzPj4+PTAsb3x8Y2hlY2tPZmZzZXQocywyLHRoaXMubGVuZ3RoKTtjb25zdCBpPXRoaXNbc118dGhpc1tzKzFdPDw4O3JldHVybiAzMjc2OCZpPzQyOTQ5MDE3NjB8aTppfSxCdWZmZXIucHJvdG90eXBlLnJlYWRJbnQxNkJFPWZ1bmN0aW9uIHJlYWRJbnQxNkJFKHMsbyl7cz4+Pj0wLG98fGNoZWNrT2Zmc2V0KHMsMix0aGlzLmxlbmd0aCk7Y29uc3QgaT10aGlzW3MrMV18dGhpc1tzXTw8ODtyZXR1cm4gMzI3NjgmaT80Mjk0OTAxNzYwfGk6aX0sQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MzJMRT1mdW5jdGlvbiByZWFkSW50MzJMRShzLG8pe3JldHVybiBzPj4+PTAsb3x8Y2hlY2tPZmZzZXQocyw0LHRoaXMubGVuZ3RoKSx0aGlzW3NdfHRoaXNbcysxXTw8OHx0aGlzW3MrMl08PDE2fHRoaXNbcyszXTw8MjR9LEJ1ZmZlci5wcm90b3R5cGUucmVhZEludDMyQkU9ZnVuY3Rpb24gcmVhZEludDMyQkUocyxvKXtyZXR1cm4gcz4+Pj0wLG98fGNoZWNrT2Zmc2V0KHMsNCx0aGlzLmxlbmd0aCksdGhpc1tzXTw8MjR8dGhpc1tzKzFdPDwxNnx0aGlzW3MrMl08PDh8dGhpc1tzKzNdfSxCdWZmZXIucHJvdG90eXBlLnJlYWRCaWdJbnQ2NExFPWRlZmluZUJpZ0ludE1ldGhvZCgoZnVuY3Rpb24gcmVhZEJpZ0ludDY0TEUocyl7dmFsaWRhdGVOdW1iZXIocz4+Pj0wLCJvZmZzZXQiKTtjb25zdCBvPXRoaXNbc10saT10aGlzW3MrN107dm9pZCAwIT09byYmdm9pZCAwIT09aXx8Ym91bmRzRXJyb3Iocyx0aGlzLmxlbmd0aC04KTtjb25zdCBhPXRoaXNbcys0XSsyNTYqdGhpc1tzKzVdKzY1NTM2KnRoaXNbcys2XSsoaTw8MjQpO3JldHVybihCaWdJbnQoYSk8PEJpZ0ludCgzMikpK0JpZ0ludChvKzI1Nip0aGlzWysrc10rNjU1MzYqdGhpc1srK3NdK3RoaXNbKytzXSoyKioyNCl9KSksQnVmZmVyLnByb3RvdHlwZS5yZWFkQmlnSW50NjRCRT1kZWZpbmVCaWdJbnRNZXRob2QoKGZ1bmN0aW9uIHJlYWRCaWdJbnQ2NEJFKHMpe3ZhbGlkYXRlTnVtYmVyKHM+Pj49MCwib2Zmc2V0Iik7Y29uc3Qgbz10aGlzW3NdLGk9dGhpc1tzKzddO3ZvaWQgMCE9PW8mJnZvaWQgMCE9PWl8fGJvdW5kc0Vycm9yKHMsdGhpcy5sZW5ndGgtOCk7Y29uc3QgYT0obzw8MjQpKzY1NTM2KnRoaXNbKytzXSsyNTYqdGhpc1srK3NdK3RoaXNbKytzXTtyZXR1cm4oQmlnSW50KGEpPDxCaWdJbnQoMzIpKStCaWdJbnQodGhpc1srK3NdKjIqKjI0KzY1NTM2KnRoaXNbKytzXSsyNTYqdGhpc1srK3NdK2kpfSkpLEJ1ZmZlci5wcm90b3R5cGUucmVhZEZsb2F0TEU9ZnVuY3Rpb24gcmVhZEZsb2F0TEUocyxvKXtyZXR1cm4gcz4+Pj0wLG98fGNoZWNrT2Zmc2V0KHMsNCx0aGlzLmxlbmd0aCksdS5yZWFkKHRoaXMscywhMCwyMyw0KX0sQnVmZmVyLnByb3RvdHlwZS5yZWFkRmxvYXRCRT1mdW5jdGlvbiByZWFkRmxvYXRCRShzLG8pe3JldHVybiBzPj4+PTAsb3x8Y2hlY2tPZmZzZXQocyw0LHRoaXMubGVuZ3RoKSx1LnJlYWQodGhpcyxzLCExLDIzLDQpfSxCdWZmZXIucHJvdG90eXBlLnJlYWREb3VibGVMRT1mdW5jdGlvbiByZWFkRG91YmxlTEUocyxvKXtyZXR1cm4gcz4+Pj0wLG98fGNoZWNrT2Zmc2V0KHMsOCx0aGlzLmxlbmd0aCksdS5yZWFkKHRoaXMscywhMCw1Miw4KX0sQnVmZmVyLnByb3RvdHlwZS5yZWFkRG91YmxlQkU9ZnVuY3Rpb24gcmVhZERvdWJsZUJFKHMsbyl7cmV0dXJuIHM+Pj49MCxvfHxjaGVja09mZnNldChzLDgsdGhpcy5sZW5ndGgpLHUucmVhZCh0aGlzLHMsITEsNTIsOCl9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVVaW50TEU9QnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnRMRT1mdW5jdGlvbiB3cml0ZVVJbnRMRShzLG8saSxhKXtpZihzPStzLG8+Pj49MCxpPj4+PTAsIWEpe2NoZWNrSW50KHRoaXMscyxvLGksTWF0aC5wb3coMiw4KmkpLTEsMCl9bGV0IHU9MSxfPTA7Zm9yKHRoaXNbb109MjU1JnM7KytfPGkmJih1Kj0yNTYpOyl0aGlzW28rX109cy91JjI1NTtyZXR1cm4gbytpfSxCdWZmZXIucHJvdG90eXBlLndyaXRlVWludEJFPUJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50QkU9ZnVuY3Rpb24gd3JpdGVVSW50QkUocyxvLGksYSl7aWYocz0rcyxvPj4+PTAsaT4+Pj0wLCFhKXtjaGVja0ludCh0aGlzLHMsbyxpLE1hdGgucG93KDIsOCppKS0xLDApfWxldCB1PWktMSxfPTE7Zm9yKHRoaXNbbyt1XT0yNTUmczstLXU+PTAmJihfKj0yNTYpOyl0aGlzW28rdV09cy9fJjI1NTtyZXR1cm4gbytpfSxCdWZmZXIucHJvdG90eXBlLndyaXRlVWludDg9QnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQ4PWZ1bmN0aW9uIHdyaXRlVUludDgocyxvLGkpe3JldHVybiBzPStzLG8+Pj49MCxpfHxjaGVja0ludCh0aGlzLHMsbywxLDI1NSwwKSx0aGlzW29dPTI1NSZzLG8rMX0sQnVmZmVyLnByb3RvdHlwZS53cml0ZVVpbnQxNkxFPUJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MTZMRT1mdW5jdGlvbiB3cml0ZVVJbnQxNkxFKHMsbyxpKXtyZXR1cm4gcz0rcyxvPj4+PTAsaXx8Y2hlY2tJbnQodGhpcyxzLG8sMiw2NTUzNSwwKSx0aGlzW29dPTI1NSZzLHRoaXNbbysxXT1zPj4+OCxvKzJ9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVVaW50MTZCRT1CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDE2QkU9ZnVuY3Rpb24gd3JpdGVVSW50MTZCRShzLG8saSl7cmV0dXJuIHM9K3Msbz4+Pj0wLGl8fGNoZWNrSW50KHRoaXMscyxvLDIsNjU1MzUsMCksdGhpc1tvXT1zPj4+OCx0aGlzW28rMV09MjU1JnMsbysyfSxCdWZmZXIucHJvdG90eXBlLndyaXRlVWludDMyTEU9QnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQzMkxFPWZ1bmN0aW9uIHdyaXRlVUludDMyTEUocyxvLGkpe3JldHVybiBzPStzLG8+Pj49MCxpfHxjaGVja0ludCh0aGlzLHMsbyw0LDQyOTQ5NjcyOTUsMCksdGhpc1tvKzNdPXM+Pj4yNCx0aGlzW28rMl09cz4+PjE2LHRoaXNbbysxXT1zPj4+OCx0aGlzW29dPTI1NSZzLG8rNH0sQnVmZmVyLnByb3RvdHlwZS53cml0ZVVpbnQzMkJFPUJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MzJCRT1mdW5jdGlvbiB3cml0ZVVJbnQzMkJFKHMsbyxpKXtyZXR1cm4gcz0rcyxvPj4+PTAsaXx8Y2hlY2tJbnQodGhpcyxzLG8sNCw0Mjk0OTY3Mjk1LDApLHRoaXNbb109cz4+PjI0LHRoaXNbbysxXT1zPj4+MTYsdGhpc1tvKzJdPXM+Pj44LHRoaXNbbyszXT0yNTUmcyxvKzR9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVCaWdVSW50NjRMRT1kZWZpbmVCaWdJbnRNZXRob2QoKGZ1bmN0aW9uIHdyaXRlQmlnVUludDY0TEUocyxvPTApe3JldHVybiB3cnRCaWdVSW50NjRMRSh0aGlzLHMsbyxCaWdJbnQoMCksQmlnSW50KCIweGZmZmZmZmZmZmZmZmZmZmYiKSl9KSksQnVmZmVyLnByb3RvdHlwZS53cml0ZUJpZ1VJbnQ2NEJFPWRlZmluZUJpZ0ludE1ldGhvZCgoZnVuY3Rpb24gd3JpdGVCaWdVSW50NjRCRShzLG89MCl7cmV0dXJuIHdydEJpZ1VJbnQ2NEJFKHRoaXMscyxvLEJpZ0ludCgwKSxCaWdJbnQoIjB4ZmZmZmZmZmZmZmZmZmZmZiIpKX0pKSxCdWZmZXIucHJvdG90eXBlLndyaXRlSW50TEU9ZnVuY3Rpb24gd3JpdGVJbnRMRShzLG8saSxhKXtpZihzPStzLG8+Pj49MCwhYSl7Y29uc3QgYT1NYXRoLnBvdygyLDgqaS0xKTtjaGVja0ludCh0aGlzLHMsbyxpLGEtMSwtYSl9bGV0IHU9MCxfPTEsdz0wO2Zvcih0aGlzW29dPTI1NSZzOysrdTxpJiYoXyo9MjU2KTspczwwJiYwPT09dyYmMCE9PXRoaXNbbyt1LTFdJiYodz0xKSx0aGlzW28rdV09KHMvX3wwKS13JjI1NTtyZXR1cm4gbytpfSxCdWZmZXIucHJvdG90eXBlLndyaXRlSW50QkU9ZnVuY3Rpb24gd3JpdGVJbnRCRShzLG8saSxhKXtpZihzPStzLG8+Pj49MCwhYSl7Y29uc3QgYT1NYXRoLnBvdygyLDgqaS0xKTtjaGVja0ludCh0aGlzLHMsbyxpLGEtMSwtYSl9bGV0IHU9aS0xLF89MSx3PTA7Zm9yKHRoaXNbbyt1XT0yNTUmczstLXU+PTAmJihfKj0yNTYpOylzPDAmJjA9PT13JiYwIT09dGhpc1tvK3UrMV0mJih3PTEpLHRoaXNbbyt1XT0ocy9ffDApLXcmMjU1O3JldHVybiBvK2l9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQ4PWZ1bmN0aW9uIHdyaXRlSW50OChzLG8saSl7cmV0dXJuIHM9K3Msbz4+Pj0wLGl8fGNoZWNrSW50KHRoaXMscyxvLDEsMTI3LC0xMjgpLHM8MCYmKHM9MjU1K3MrMSksdGhpc1tvXT0yNTUmcyxvKzF9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQxNkxFPWZ1bmN0aW9uIHdyaXRlSW50MTZMRShzLG8saSl7cmV0dXJuIHM9K3Msbz4+Pj0wLGl8fGNoZWNrSW50KHRoaXMscyxvLDIsMzI3NjcsLTMyNzY4KSx0aGlzW29dPTI1NSZzLHRoaXNbbysxXT1zPj4+OCxvKzJ9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQxNkJFPWZ1bmN0aW9uIHdyaXRlSW50MTZCRShzLG8saSl7cmV0dXJuIHM9K3Msbz4+Pj0wLGl8fGNoZWNrSW50KHRoaXMscyxvLDIsMzI3NjcsLTMyNzY4KSx0aGlzW29dPXM+Pj44LHRoaXNbbysxXT0yNTUmcyxvKzJ9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQzMkxFPWZ1bmN0aW9uIHdyaXRlSW50MzJMRShzLG8saSl7cmV0dXJuIHM9K3Msbz4+Pj0wLGl8fGNoZWNrSW50KHRoaXMscyxvLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksdGhpc1tvXT0yNTUmcyx0aGlzW28rMV09cz4+PjgsdGhpc1tvKzJdPXM+Pj4xNix0aGlzW28rM109cz4+PjI0LG8rNH0sQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDMyQkU9ZnVuY3Rpb24gd3JpdGVJbnQzMkJFKHMsbyxpKXtyZXR1cm4gcz0rcyxvPj4+PTAsaXx8Y2hlY2tJbnQodGhpcyxzLG8sNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSxzPDAmJihzPTQyOTQ5NjcyOTUrcysxKSx0aGlzW29dPXM+Pj4yNCx0aGlzW28rMV09cz4+PjE2LHRoaXNbbysyXT1zPj4+OCx0aGlzW28rM109MjU1JnMsbys0fSxCdWZmZXIucHJvdG90eXBlLndyaXRlQmlnSW50NjRMRT1kZWZpbmVCaWdJbnRNZXRob2QoKGZ1bmN0aW9uIHdyaXRlQmlnSW50NjRMRShzLG89MCl7cmV0dXJuIHdydEJpZ1VJbnQ2NExFKHRoaXMscyxvLC1CaWdJbnQoIjB4ODAwMDAwMDAwMDAwMDAwMCIpLEJpZ0ludCgiMHg3ZmZmZmZmZmZmZmZmZmZmIikpfSkpLEJ1ZmZlci5wcm90b3R5cGUud3JpdGVCaWdJbnQ2NEJFPWRlZmluZUJpZ0ludE1ldGhvZCgoZnVuY3Rpb24gd3JpdGVCaWdJbnQ2NEJFKHMsbz0wKXtyZXR1cm4gd3J0QmlnVUludDY0QkUodGhpcyxzLG8sLUJpZ0ludCgiMHg4MDAwMDAwMDAwMDAwMDAwIiksQmlnSW50KCIweDdmZmZmZmZmZmZmZmZmZmYiKSl9KSksQnVmZmVyLnByb3RvdHlwZS53cml0ZUZsb2F0TEU9ZnVuY3Rpb24gd3JpdGVGbG9hdExFKHMsbyxpKXtyZXR1cm4gd3JpdGVGbG9hdCh0aGlzLHMsbywhMCxpKX0sQnVmZmVyLnByb3RvdHlwZS53cml0ZUZsb2F0QkU9ZnVuY3Rpb24gd3JpdGVGbG9hdEJFKHMsbyxpKXtyZXR1cm4gd3JpdGVGbG9hdCh0aGlzLHMsbywhMSxpKX0sQnVmZmVyLnByb3RvdHlwZS53cml0ZURvdWJsZUxFPWZ1bmN0aW9uIHdyaXRlRG91YmxlTEUocyxvLGkpe3JldHVybiB3cml0ZURvdWJsZSh0aGlzLHMsbywhMCxpKX0sQnVmZmVyLnByb3RvdHlwZS53cml0ZURvdWJsZUJFPWZ1bmN0aW9uIHdyaXRlRG91YmxlQkUocyxvLGkpe3JldHVybiB3cml0ZURvdWJsZSh0aGlzLHMsbywhMSxpKX0sQnVmZmVyLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uIGNvcHkocyxvLGksYSl7aWYoIUJ1ZmZlci5pc0J1ZmZlcihzKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhcmd1bWVudCBzaG91bGQgYmUgYSBCdWZmZXIiKTtpZihpfHwoaT0wKSxhfHwwPT09YXx8KGE9dGhpcy5sZW5ndGgpLG8+PXMubGVuZ3RoJiYobz1zLmxlbmd0aCksb3x8KG89MCksYT4wJiZhPGkmJihhPWkpLGE9PT1pKXJldHVybiAwO2lmKDA9PT1zLmxlbmd0aHx8MD09PXRoaXMubGVuZ3RoKXJldHVybiAwO2lmKG88MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigidGFyZ2V0U3RhcnQgb3V0IG9mIGJvdW5kcyIpO2lmKGk8MHx8aT49dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpO2lmKGE8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigic291cmNlRW5kIG91dCBvZiBib3VuZHMiKTthPnRoaXMubGVuZ3RoJiYoYT10aGlzLmxlbmd0aCkscy5sZW5ndGgtbzxhLWkmJihhPXMubGVuZ3RoLW8raSk7Y29uc3QgdT1hLWk7cmV0dXJuIHRoaXM9PT1zJiYiZnVuY3Rpb24iPT10eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbj90aGlzLmNvcHlXaXRoaW4obyxpLGEpOlVpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKHMsdGhpcy5zdWJhcnJheShpLGEpLG8pLHV9LEJ1ZmZlci5wcm90b3R5cGUuZmlsbD1mdW5jdGlvbiBmaWxsKHMsbyxpLGEpe2lmKCJzdHJpbmciPT10eXBlb2Ygcyl7aWYoInN0cmluZyI9PXR5cGVvZiBvPyhhPW8sbz0wLGk9dGhpcy5sZW5ndGgpOiJzdHJpbmciPT10eXBlb2YgaSYmKGE9aSxpPXRoaXMubGVuZ3RoKSx2b2lkIDAhPT1hJiYic3RyaW5nIiE9dHlwZW9mIGEpdGhyb3cgbmV3IFR5cGVFcnJvcigiZW5jb2RpbmcgbXVzdCBiZSBhIHN0cmluZyIpO2lmKCJzdHJpbmciPT10eXBlb2YgYSYmIUJ1ZmZlci5pc0VuY29kaW5nKGEpKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrYSk7aWYoMT09PXMubGVuZ3RoKXtjb25zdCBvPXMuY2hhckNvZGVBdCgwKTsoInV0ZjgiPT09YSYmbzwxMjh8fCJsYXRpbjEiPT09YSkmJihzPW8pfX1lbHNlIm51bWJlciI9PXR5cGVvZiBzP3MmPTI1NToiYm9vbGVhbiI9PXR5cGVvZiBzJiYocz1OdW1iZXIocykpO2lmKG88MHx8dGhpcy5sZW5ndGg8b3x8dGhpcy5sZW5ndGg8aSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiT3V0IG9mIHJhbmdlIGluZGV4Iik7aWYoaTw9bylyZXR1cm4gdGhpcztsZXQgdTtpZihvPj4+PTAsaT12b2lkIDA9PT1pP3RoaXMubGVuZ3RoOmk+Pj4wLHN8fChzPTApLCJudW1iZXIiPT10eXBlb2Ygcylmb3IodT1vO3U8aTsrK3UpdGhpc1t1XT1zO2Vsc2V7Y29uc3QgXz1CdWZmZXIuaXNCdWZmZXIocyk/czpCdWZmZXIuZnJvbShzLGEpLHc9Xy5sZW5ndGg7aWYoMD09PXcpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIHZhbHVlICInK3MrJyIgaXMgaW52YWxpZCBmb3IgYXJndW1lbnQgInZhbHVlIicpO2Zvcih1PTA7dTxpLW87Kyt1KXRoaXNbdStvXT1fW3Uld119cmV0dXJuIHRoaXN9O2NvbnN0IEM9e307ZnVuY3Rpb24gRShzLG8saSl7Q1tzXT1jbGFzcyBOb2RlRXJyb3IgZXh0ZW5kcyBpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywibWVzc2FnZSIse3ZhbHVlOm8uYXBwbHkodGhpcyxhcmd1bWVudHMpLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHRoaXMubmFtZT1gJHt0aGlzLm5hbWV9IFske3N9XWAsdGhpcy5zdGFjayxkZWxldGUgdGhpcy5uYW1lfWdldCBjb2RlKCl7cmV0dXJuIHN9c2V0IGNvZGUocyl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImNvZGUiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTpzLHdyaXRhYmxlOiEwfSl9dG9TdHJpbmcoKXtyZXR1cm5gJHt0aGlzLm5hbWV9IFske3N9XTogJHt0aGlzLm1lc3NhZ2V9YH19fWZ1bmN0aW9uIGFkZE51bWVyaWNhbFNlcGFyYXRvcihzKXtsZXQgbz0iIixpPXMubGVuZ3RoO2NvbnN0IGE9Ii0iPT09c1swXT8xOjA7Zm9yKDtpPj1hKzQ7aS09MylvPWBfJHtzLnNsaWNlKGktMyxpKX0ke299YDtyZXR1cm5gJHtzLnNsaWNlKDAsaSl9JHtvfWB9ZnVuY3Rpb24gY2hlY2tJbnRCSShzLG8saSxhLHUsXyl7aWYocz5pfHxzPG8pe2NvbnN0IGE9ImJpZ2ludCI9PXR5cGVvZiBvPyJuIjoiIjtsZXQgdTt0aHJvdyB1PV8+Mz8wPT09b3x8bz09PUJpZ0ludCgwKT9gPj0gMCR7YX0gYW5kIDwgMiR7YX0gKiogJHs4KihfKzEpfSR7YX1gOmA+PSAtKDIke2F9ICoqICR7OCooXysxKS0xfSR7YX0pIGFuZCA8IDIgKiogJHs4KihfKzEpLTF9JHthfWA6YD49ICR7b30ke2F9IGFuZCA8PSAke2l9JHthfWAsbmV3IEMuRVJSX09VVF9PRl9SQU5HRSgidmFsdWUiLHUscyl9IWZ1bmN0aW9uIGNoZWNrQm91bmRzKHMsbyxpKXt2YWxpZGF0ZU51bWJlcihvLCJvZmZzZXQiKSx2b2lkIDAhPT1zW29dJiZ2b2lkIDAhPT1zW28raV18fGJvdW5kc0Vycm9yKG8scy5sZW5ndGgtKGkrMSkpfShhLHUsXyl9ZnVuY3Rpb24gdmFsaWRhdGVOdW1iZXIocyxvKXtpZigibnVtYmVyIiE9dHlwZW9mIHMpdGhyb3cgbmV3IEMuRVJSX0lOVkFMSURfQVJHX1RZUEUobywibnVtYmVyIixzKX1mdW5jdGlvbiBib3VuZHNFcnJvcihzLG8saSl7aWYoTWF0aC5mbG9vcihzKSE9PXMpdGhyb3cgdmFsaWRhdGVOdW1iZXIocyxpKSxuZXcgQy5FUlJfT1VUX09GX1JBTkdFKGl8fCJvZmZzZXQiLCJhbiBpbnRlZ2VyIixzKTtpZihvPDApdGhyb3cgbmV3IEMuRVJSX0JVRkZFUl9PVVRfT0ZfQk9VTkRTO3Rocm93IG5ldyBDLkVSUl9PVVRfT0ZfUkFOR0UoaXx8Im9mZnNldCIsYD49ICR7aT8xOjB9IGFuZCA8PSAke299YCxzKX1FKCJFUlJfQlVGRkVSX09VVF9PRl9CT1VORFMiLChmdW5jdGlvbihzKXtyZXR1cm4gcz9gJHtzfSBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHNgOiJBdHRlbXB0IHRvIGFjY2VzcyBtZW1vcnkgb3V0c2lkZSBidWZmZXIgYm91bmRzIn0pLFJhbmdlRXJyb3IpLEUoIkVSUl9JTlZBTElEX0FSR19UWVBFIiwoZnVuY3Rpb24ocyxvKXtyZXR1cm5gVGhlICIke3N9IiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgbnVtYmVyLiBSZWNlaXZlZCB0eXBlICR7dHlwZW9mIG99YH0pLFR5cGVFcnJvciksRSgiRVJSX09VVF9PRl9SQU5HRSIsKGZ1bmN0aW9uKHMsbyxpKXtsZXQgYT1gVGhlIHZhbHVlIG9mICIke3N9IiBpcyBvdXQgb2YgcmFuZ2UuYCx1PWk7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoaSkmJk1hdGguYWJzKGkpPjIqKjMyP3U9YWRkTnVtZXJpY2FsU2VwYXJhdG9yKFN0cmluZyhpKSk6ImJpZ2ludCI9PXR5cGVvZiBpJiYodT1TdHJpbmcoaSksKGk+QmlnSW50KDIpKipCaWdJbnQoMzIpfHxpPC0oQmlnSW50KDIpKipCaWdJbnQoMzIpKSkmJih1PWFkZE51bWVyaWNhbFNlcGFyYXRvcih1KSksdSs9Im4iKSxhKz1gIEl0IG11c3QgYmUgJHtvfS4gUmVjZWl2ZWQgJHt1fWAsYX0pLFJhbmdlRXJyb3IpO2NvbnN0IGo9L1teKy8wLTlBLVphLXotX10vZztmdW5jdGlvbiB1dGY4VG9CeXRlcyhzLG8pe2xldCBpO289b3x8MS8wO2NvbnN0IGE9cy5sZW5ndGg7bGV0IHU9bnVsbDtjb25zdCBfPVtdO2ZvcihsZXQgdz0wO3c8YTsrK3cpe2lmKGk9cy5jaGFyQ29kZUF0KHcpLGk+NTUyOTUmJmk8NTczNDQpe2lmKCF1KXtpZihpPjU2MzE5KXsoby09Myk+LTEmJl8ucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9aWYodysxPT09YSl7KG8tPTMpPi0xJiZfLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfXU9aTtjb250aW51ZX1pZihpPDU2MzIwKXsoby09Myk+LTEmJl8ucHVzaCgyMzksMTkxLDE4OSksdT1pO2NvbnRpbnVlfWk9NjU1MzYrKHUtNTUyOTY8PDEwfGktNTYzMjApfWVsc2UgdSYmKG8tPTMpPi0xJiZfLnB1c2goMjM5LDE5MSwxODkpO2lmKHU9bnVsbCxpPDEyOCl7aWYoKG8tPTEpPDApYnJlYWs7Xy5wdXNoKGkpfWVsc2UgaWYoaTwyMDQ4KXtpZigoby09Mik8MClicmVhaztfLnB1c2goaT4+NnwxOTIsNjMmaXwxMjgpfWVsc2UgaWYoaTw2NTUzNil7aWYoKG8tPTMpPDApYnJlYWs7Xy5wdXNoKGk+PjEyfDIyNCxpPj42JjYzfDEyOCw2MyZpfDEyOCl9ZWxzZXtpZighKGk8MTExNDExMikpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNvZGUgcG9pbnQiKTtpZigoby09NCk8MClicmVhaztfLnB1c2goaT4+MTh8MjQwLGk+PjEyJjYzfDEyOCxpPj42JjYzfDEyOCw2MyZpfDEyOCl9fXJldHVybiBffWZ1bmN0aW9uIGJhc2U2NFRvQnl0ZXMocyl7cmV0dXJuIGEudG9CeXRlQXJyYXkoZnVuY3Rpb24gYmFzZTY0Y2xlYW4ocyl7aWYoKHM9KHM9cy5zcGxpdCgiPSIpWzBdKS50cmltKCkucmVwbGFjZShqLCIiKSkubGVuZ3RoPDIpcmV0dXJuIiI7Zm9yKDtzLmxlbmd0aCU0IT0wOylzKz0iPSI7cmV0dXJuIHN9KHMpKX1mdW5jdGlvbiBibGl0QnVmZmVyKHMsbyxpLGEpe2xldCB1O2Zvcih1PTA7dTxhJiYhKHUraT49by5sZW5ndGh8fHU+PXMubGVuZ3RoKTsrK3Upb1t1K2ldPXNbdV07cmV0dXJuIHV9ZnVuY3Rpb24gaXNJbnN0YW5jZShzLG8pe3JldHVybiBzIGluc3RhbmNlb2Ygb3x8bnVsbCE9cyYmbnVsbCE9cy5jb25zdHJ1Y3RvciYmbnVsbCE9cy5jb25zdHJ1Y3Rvci5uYW1lJiZzLmNvbnN0cnVjdG9yLm5hbWU9PT1vLm5hbWV9ZnVuY3Rpb24gbnVtYmVySXNOYU4ocyl7cmV0dXJuIHMhPXN9Y29uc3QgTD1mdW5jdGlvbigpe2NvbnN0IHM9IjAxMjM0NTY3ODlhYmNkZWYiLG89bmV3IEFycmF5KDI1Nik7Zm9yKGxldCBpPTA7aTwxNjsrK2kpe2NvbnN0IGE9MTYqaTtmb3IobGV0IHU9MDt1PDE2OysrdSlvW2ErdV09c1tpXStzW3VdfXJldHVybiBvfSgpO2Z1bmN0aW9uIGRlZmluZUJpZ0ludE1ldGhvZChzKXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIEJpZ0ludD9CdWZmZXJCaWdJbnROb3REZWZpbmVkOnN9ZnVuY3Rpb24gQnVmZmVyQmlnSW50Tm90RGVmaW5lZCgpe3Rocm93IG5ldyBFcnJvcigiQmlnSW50IG5vdCBzdXBwb3J0ZWQiKX19LDQ4NTkwOihzLG8pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxvLmRlZmF1bHQ9ZnVuY3Rpb24ocyl7cmV0dXJuIHMmJiJAQHJlZHV4L0lOSVQiPT09cy50eXBlPyJpbml0aWFsU3RhdGUgYXJndW1lbnQgcGFzc2VkIHRvIGNyZWF0ZVN0b3JlIjoicHJldmlvdXMgc3RhdGUgcmVjZWl2ZWQgYnkgdGhlIHJlZHVjZXIifSxzLmV4cG9ydHM9by5kZWZhdWx0fSw0ODY1NToocyxvLGkpPT57dmFyIGE9aSgyNjAyNSk7cy5leHBvcnRzPWZ1bmN0aW9uIGxpc3RDYWNoZUhhcyhzKXtyZXR1cm4gYSh0aGlzLl9fZGF0YV9fLHMpPi0xfX0sNDg2NzU6KHMsbyxpKT0+e3MuZXhwb3J0cz1pKDIwODUwKX0sNDg5NDg6KHMsbyxpKT0+e3ZhciBhPWkoMjE3OTEpLHU9aSg4NjM3NSk7cy5leHBvcnRzPWZ1bmN0aW9uIGNvcHlTeW1ib2xzSW4ocyxvKXtyZXR1cm4gYShzLHUocyksbyl9fSw0OTMyNjoocyxvLGkpPT57dmFyIGE9aSgzMTc2OSksdT1pKDcyNDI4KSxfPWkoNTY0NDkpLHc9aSgzMDM2MSkseD1pKDMwMjk0KSxDPWkoNzc3OTcpO3MuZXhwb3J0cz1mdW5jdGlvbiBoYXNQYXRoKHMsbyxpKXtmb3IodmFyIGo9LTEsTD0obz1hKG8scykpLmxlbmd0aCxCPSExOysrajxMOyl7dmFyICQ9QyhvW2pdKTtpZighKEI9bnVsbCE9cyYmaShzLCQpKSlicmVhaztzPXNbJF19cmV0dXJuIEJ8fCsraiE9TD9COiEhKEw9bnVsbD09cz8wOnMubGVuZ3RoKSYmeChMKSYmdygkLEwpJiYoXyhzKXx8dShzKSl9fSw0OTU1MjoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNDU5NTEpLHU9aSg0NjI4NSksXz1hLmRvY3VtZW50LHc9dShfKSYmdShfLmNyZWF0ZUVsZW1lbnQpO3MuZXhwb3J0cz1mdW5jdGlvbihzKXtyZXR1cm4gdz9fLmNyZWF0ZUVsZW1lbnQocyk6e319fSw0OTY1MzoocyxvLGkpPT57dmFyIGE9aSgzNzgyOCk7cy5leHBvcnRzPWZ1bmN0aW9uIGNsb25lQXJyYXlCdWZmZXIocyl7dmFyIG89bmV3IHMuY29uc3RydWN0b3Iocy5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IGEobykuc2V0KG5ldyBhKHMpKSxvfX0sNDk2OTg6cz0+e3ZhciBvPVJlZ0V4cCgiW1xcdTIwMGRcXHVkODAwLVxcdWRmZmZcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZcXHVmZTBlXFx1ZmUwZl0iKTtzLmV4cG9ydHM9ZnVuY3Rpb24gaGFzVW5pY29kZShzKXtyZXR1cm4gby50ZXN0KHMpfX0sNDk3MjQ6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDE5MDcpLHU9aSgzOTI5OCksXz1hKHt9Lmhhc093blByb3BlcnR5KTtzLmV4cG9ydHM9T2JqZWN0Lmhhc093bnx8ZnVuY3Rpb24gaGFzT3duKHMsbyl7cmV0dXJuIF8odShzKSxvKX19LDQ5NzQ3OihzLG8saSk9Pnt2YXIgYT1pKDY2OTc3KTtmdW5jdGlvbiBjdXJyeShzLG8saSl7dmFyIHU9YShzLDgsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCxvPWk/dm9pZCAwOm8pO3JldHVybiB1LnBsYWNlaG9sZGVyPWN1cnJ5LnBsYWNlaG9sZGVyLHV9Y3VycnkucGxhY2Vob2xkZXI9e30scy5leHBvcnRzPWN1cnJ5fSw1MDAwMjoocyxvLGkpPT57dmFyIGE9aSg4MjE5OSksdT1pKDQ2NjQpLF89aSg5NTk1MCk7cy5leHBvcnRzPWZ1bmN0aW9uIGdldEFsbEtleXMocyl7cmV0dXJuIGEocyxfLHUpfX0sNTAxMDQ6KHMsbyxpKT0+e3ZhciBhPWkoNTM2NjEpO2Z1bmN0aW9uIG1lbW9pemUocyxvKXtpZigiZnVuY3Rpb24iIT10eXBlb2Ygc3x8bnVsbCE9byYmImZ1bmN0aW9uIiE9dHlwZW9mIG8pdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBmdW5jdGlvbiIpO3ZhciBtZW1vaXplZD1mdW5jdGlvbigpe3ZhciBpPWFyZ3VtZW50cyxhPW8/by5hcHBseSh0aGlzLGkpOmlbMF0sdT1tZW1vaXplZC5jYWNoZTtpZih1LmhhcyhhKSlyZXR1cm4gdS5nZXQoYSk7dmFyIF89cy5hcHBseSh0aGlzLGkpO3JldHVybiBtZW1vaXplZC5jYWNoZT11LnNldChhLF8pfHx1LF99O3JldHVybiBtZW1vaXplZC5jYWNoZT1uZXcobWVtb2l6ZS5DYWNoZXx8YSksbWVtb2l6ZWR9bWVtb2l6ZS5DYWNoZT1hLHMuZXhwb3J0cz1tZW1vaXplfSw1MDU4MzoocyxvLGkpPT57dmFyIGE9aSg0NzIzNyksdT1pKDE3MjU1KSxfPWkoMjg1ODYpLHc9aSg3Nzc5Nyk7cy5leHBvcnRzPWZ1bmN0aW9uIHByb3BlcnR5KHMpe3JldHVybiBfKHMpP2EodyhzKSk6dShzKX19LDUwNjg5OihzLG8saSk9Pnt2YXIgYT1pKDUwMDAyKSx1PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7cy5leHBvcnRzPWZ1bmN0aW9uIGVxdWFsT2JqZWN0cyhzLG8saSxfLHcseCl7dmFyIEM9MSZpLGo9YShzKSxMPWoubGVuZ3RoO2lmKEwhPWEobykubGVuZ3RoJiYhQylyZXR1cm4hMTtmb3IodmFyIEI9TDtCLS07KXt2YXIgJD1qW0JdO2lmKCEoQz8kIGluIG86dS5jYWxsKG8sJCkpKXJldHVybiExfXZhciBWPXguZ2V0KHMpLFU9eC5nZXQobyk7aWYoViYmVSlyZXR1cm4gVj09byYmVT09czt2YXIgej0hMDt4LnNldChzLG8pLHguc2V0KG8scyk7Zm9yKHZhciBZPUM7KytCPEw7KXt2YXIgWj1zWyQ9altCXV0sZWU9b1skXTtpZihfKXZhciBpZT1DP18oZWUsWiwkLG8scyx4KTpfKFosZWUsJCxzLG8seCk7aWYoISh2b2lkIDA9PT1pZT9aPT09ZWV8fHcoWixlZSxpLF8seCk6aWUpKXt6PSExO2JyZWFrfVl8fChZPSJjb25zdHJ1Y3RvciI9PSQpfWlmKHomJiFZKXt2YXIgYWU9cy5jb25zdHJ1Y3RvcixjZT1vLmNvbnN0cnVjdG9yO2FlPT1jZXx8ISgiY29uc3RydWN0b3IiaW4gcyl8fCEoImNvbnN0cnVjdG9yImluIG8pfHwiZnVuY3Rpb24iPT10eXBlb2YgYWUmJmFlIGluc3RhbmNlb2YgYWUmJiJmdW5jdGlvbiI9PXR5cGVvZiBjZSYmY2UgaW5zdGFuY2VvZiBjZXx8KHo9ITEpfXJldHVybiB4LmRlbGV0ZShzKSx4LmRlbGV0ZShvKSx6fX0sNTA4Mjg6KHMsbyxpKT0+e3ZhciBhPWkoMjQ2NDcpLHU9aSgxMzIyMiksXz0vW1x4YzAtXHhkNlx4ZDgtXHhmNlx4ZjgtXHhmZlx1MDEwMC1cdTAxN2ZdL2csdz1SZWdFeHAoIltcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZdIiwiZyIpO3MuZXhwb3J0cz1mdW5jdGlvbiBkZWJ1cnIocyl7cmV0dXJuKHM9dShzKSkmJnMucmVwbGFjZShfLGEpLnJlcGxhY2UodywiIil9fSw1MTE3NToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMTk4NDYpO3MuZXhwb3J0cz1hJiYhU3ltYm9sLnNoYW0mJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yfSw1MTIzNDpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VaaXBPYmplY3QocyxvLGkpe2Zvcih2YXIgYT0tMSx1PXMubGVuZ3RoLF89by5sZW5ndGgsdz17fTsrK2E8dTspe3ZhciB4PWE8Xz9vW2FdOnZvaWQgMDtpKHcsc1thXSx4KX1yZXR1cm4gd319LDUxNDIwOihzLG8saSk9Pnt2YXIgYT1pKDgwMDc5KTtzLmV4cG9ydHM9ZnVuY3Rpb24gc3RhY2tDbGVhcigpe3RoaXMuX19kYXRhX189bmV3IGEsdGhpcy5zaXplPTB9fSw1MTQ1OTpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIHNldENhY2hlSGFzKHMpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhzKX19LDUxODExOnM9Pnt2YXIgbz1EYXRlLm5vdztzLmV4cG9ydHM9ZnVuY3Rpb24gc2hvcnRPdXQocyl7dmFyIGk9MCxhPTA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHU9bygpLF89MTYtKHUtYSk7aWYoYT11LF8+MCl7aWYoKytpPj04MDApcmV0dXJuIGFyZ3VtZW50c1swXX1lbHNlIGk9MDtyZXR1cm4gcy5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX19fSw1MTg3MToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMTkwNyksdT1pKDgyMTU5KTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvLGkpe3RyeXtyZXR1cm4gYSh1KE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocyxvKVtpXSkpfWNhdGNoKHMpe319fSw1MTg3MzoocyxvLGkpPT57dmFyIGE9aSg5MzI1KS5TeW1ib2w7cy5leHBvcnRzPWF9LDUyNjIzOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9e307YVtpKDc2MjY0KSgidG9TdHJpbmdUYWciKV09InoiLHMuZXhwb3J0cz0iW29iamVjdCB6XSI9PT1TdHJpbmcoYSl9LDUzMTM4OihzLG8saSk9Pnt2YXIgYT1pKDExMzMxKTtzLmV4cG9ydHM9ZnVuY3Rpb24gY3VzdG9tT21pdENsb25lKHMpe3JldHVybiBhKHMpP3ZvaWQgMDpzfX0sNTMyMDk6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDY1NjA2KSx1PTY1NTM2LF89NDI5NDk2NzI5NTt2YXIgdz1pKDkyODYxKS5CdWZmZXIseD1pLmcuY3J5cHRvfHxpLmcubXNDcnlwdG87eCYmeC5nZXRSYW5kb21WYWx1ZXM/cy5leHBvcnRzPWZ1bmN0aW9uIHJhbmRvbUJ5dGVzKHMsbyl7aWYocz5fKXRocm93IG5ldyBSYW5nZUVycm9yKCJyZXF1ZXN0ZWQgdG9vIG1hbnkgcmFuZG9tIGJ5dGVzIik7dmFyIGk9dy5hbGxvY1Vuc2FmZShzKTtpZihzPjApaWYocz51KWZvcih2YXIgQz0wO0M8cztDKz11KXguZ2V0UmFuZG9tVmFsdWVzKGkuc2xpY2UoQyxDK3UpKTtlbHNlIHguZ2V0UmFuZG9tVmFsdWVzKGkpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBvKXJldHVybiBhLm5leHRUaWNrKChmdW5jdGlvbigpe28obnVsbCxpKX0pKTtyZXR1cm4gaX06cy5leHBvcnRzPWZ1bmN0aW9uIG9sZEJyb3dzZXIoKXt0aHJvdyBuZXcgRXJyb3IoIlNlY3VyZSByYW5kb20gbnVtYmVyIGdlbmVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJyb3dzZXIuXG5Vc2UgQ2hyb21lLCBGaXJlZm94IG9yIEludGVybmV0IEV4cGxvcmVyIDExIil9fSw1MzMyMDpzPT57dmFyIG89TWF0aC5tYXg7cy5leHBvcnRzPWZ1bmN0aW9uIGNvbXBvc2VBcmdzUmlnaHQocyxpLGEsdSl7Zm9yKHZhciBfPS0xLHc9cy5sZW5ndGgseD0tMSxDPWEubGVuZ3RoLGo9LTEsTD1pLmxlbmd0aCxCPW8ody1DLDApLCQ9QXJyYXkoQitMKSxWPSF1OysrXzxCOykkW19dPXNbX107Zm9yKHZhciBVPV87KytqPEw7KSRbVStqXT1pW2pdO2Zvcig7Kyt4PEM7KShWfHxfPHcpJiYoJFtVK2FbeF1dPXNbXysrXSk7cmV0dXJuICR9fSw1MzM3NToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoOTM3MDApO3MuZXhwb3J0cz1hfSw1MzY2MToocyxvLGkpPT57dmFyIGE9aSg2MzA0MCksdT1pKDE3NjcwKSxfPWkoOTAyODkpLHc9aSg0NTA5KSx4PWkoNzI5NDkpO2Z1bmN0aW9uIE1hcENhY2hlKHMpe3ZhciBvPS0xLGk9bnVsbD09cz8wOnMubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytvPGk7KXt2YXIgYT1zW29dO3RoaXMuc2V0KGFbMF0sYVsxXSl9fU1hcENhY2hlLnByb3RvdHlwZS5jbGVhcj1hLE1hcENhY2hlLnByb3RvdHlwZS5kZWxldGU9dSxNYXBDYWNoZS5wcm90b3R5cGUuZ2V0PV8sTWFwQ2FjaGUucHJvdG90eXBlLmhhcz13LE1hcENhY2hlLnByb3RvdHlwZS5zZXQ9eCxzLmV4cG9ydHM9TWFwQ2FjaGV9LDUzNzU4OihzLG8saSk9Pnt2YXIgYT1pKDMwOTgwKSx1PWkoNTYwMTcpLF89aSg5NDAzMyksdz1pKDU2NDQ5KSx4PWkoNDAzNDYpLEM9aSg4MDI1Nyksaj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIGxvZGFzaChzKXtpZih4KHMpJiYhdyhzKSYmIShzIGluc3RhbmNlb2YgYSkpe2lmKHMgaW5zdGFuY2VvZiB1KXJldHVybiBzO2lmKGouY2FsbChzLCJfX3dyYXBwZWRfXyIpKXJldHVybiBDKHMpfXJldHVybiBuZXcgdShzKX1sb2Rhc2gucHJvdG90eXBlPV8ucHJvdG90eXBlLGxvZGFzaC5wcm90b3R5cGUuY29uc3RydWN0b3I9bG9kYXNoLHMuZXhwb3J0cz1sb2Rhc2h9LDUzODEyOihzLG8saSk9Pnt2YXIgYT1pKDcyNTUyKSx1PWkoNDAzNDYpO3MuZXhwb3J0cz1mdW5jdGlvbiBpc0Jvb2xlYW4ocyl7cmV0dXJuITA9PT1zfHwhMT09PXN8fHUocykmJiJbb2JqZWN0IEJvb2xlYW5dIj09YShzKX19LDU0MDE4OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg0NjI4NSk7cy5leHBvcnRzPWZ1bmN0aW9uKHMpe3JldHVybiBhKHMpfHxudWxsPT09c319LDU0MTI4OihzLG8saSk9Pnt2YXIgYT1pKDMxODAwKSx1PS9eXHMrLztzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZVRyaW0ocyl7cmV0dXJuIHM/cy5zbGljZSgwLGEocykrMSkucmVwbGFjZSh1LCIiKTpzfX0sNTQ1NTI6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlUHJvcGVydHlPZihzKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIG51bGw9PXM/dm9pZCAwOnNbb119fX0sNTQ2NDE6KHMsbyxpKT0+e3ZhciBhPWkoNjg4ODIpLHU9aSg1MTgxMSkoYSk7cy5leHBvcnRzPXV9LDU0ODI5OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg3NDI4NCkuZjtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvLGkpe2kgaW4gc3x8YShzLGkse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gb1tpXX0sc2V0OmZ1bmN0aW9uKHMpe29baV09c319KX19LDU0ODc4OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg1MjYyMyksdT1pKDczOTQ4KTtzLmV4cG9ydHM9YT97fS50b1N0cmluZzpmdW5jdGlvbiB0b1N0cmluZygpe3JldHVybiJbb2JqZWN0ICIrdSh0aGlzKSsiXSJ9fSw1NTE1NzpzPT57cy5leHBvcnRzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJSZWFkYWJsZS5mcm9tIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJyb3dzZXIiKX19LDU1MzY0OihzLG8saSk9Pnt2YXIgYT1pKDg1MjUwKSx1PWkoMjA5OTkpKChmdW5jdGlvbihzLG8saSl7YShzLG8saSl9KSk7cy5leHBvcnRzPXV9LDU1NDgxOihzLG8saSk9Pnt2YXIgYT1pKDkzMjUpWyJfX2NvcmUtanNfc2hhcmVkX18iXTtzLmV4cG9ydHM9YX0sNTU1Mjc6cz0+e3ZhciBvPU9iamVjdC5wcm90b3R5cGU7cy5leHBvcnRzPWZ1bmN0aW9uIGlzUHJvdG90eXBlKHMpe3ZhciBpPXMmJnMuY29uc3RydWN0b3I7cmV0dXJuIHM9PT0oImZ1bmN0aW9uIj09dHlwZW9mIGkmJmkucHJvdG90eXBlfHxvKX19LDU1NTgwOihzLG8saSk9Pnt2YXIgYT1pKDU2MTEwKShpKDkzMjUpLCJEYXRhVmlldyIpO3MuZXhwb3J0cz1hfSw1NTY3NDoocyxvLGkpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxvLnZhbGlkYXRlTmV4dFN0YXRlPW8uZ2V0VW5leHBlY3RlZEludm9jYXRpb25QYXJhbWV0ZXJNZXNzYWdlPW8uZ2V0U3RhdGVOYW1lPXZvaWQgMDt2YXIgYT1faW50ZXJvcFJlcXVpcmVEZWZhdWx0KGkoNDg1OTApKSx1PV9pbnRlcm9wUmVxdWlyZURlZmF1bHQoaSg4MjI2MSkpLF89X2ludGVyb3BSZXF1aXJlRGVmYXVsdChpKDI3Mzc0KSk7ZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChzKXtyZXR1cm4gcyYmcy5fX2VzTW9kdWxlP3M6e2RlZmF1bHQ6c319by5nZXRTdGF0ZU5hbWU9YS5kZWZhdWx0LG8uZ2V0VW5leHBlY3RlZEludm9jYXRpb25QYXJhbWV0ZXJNZXNzYWdlPXUuZGVmYXVsdCxvLnZhbGlkYXRlTmV4dFN0YXRlPV8uZGVmYXVsdH0sNTU4MDg6KHMsbyxpKT0+e3ZhciBhPWkoMTI1MDcpKCJ0b1VwcGVyQ2FzZSIpO3MuZXhwb3J0cz1hfSw1NTk3MzpzPT57Y2xhc3MgS2V5VmFsdWVQYWlye2NvbnN0cnVjdG9yKHMsbyl7dGhpcy5rZXk9cyx0aGlzLnZhbHVlPW99Y2xvbmUoKXtjb25zdCBzPW5ldyBLZXlWYWx1ZVBhaXI7cmV0dXJuIHRoaXMua2V5JiYocy5rZXk9dGhpcy5rZXkuY2xvbmUoKSksdGhpcy52YWx1ZSYmKHMudmFsdWU9dGhpcy52YWx1ZS5jbG9uZSgpKSxzfX1zLmV4cG9ydHM9S2V5VmFsdWVQYWlyfSw1NjAxNzoocyxvLGkpPT57dmFyIGE9aSgzOTM0NCksdT1pKDk0MDMzKTtmdW5jdGlvbiBMb2Rhc2hXcmFwcGVyKHMsbyl7dGhpcy5fX3dyYXBwZWRfXz1zLHRoaXMuX19hY3Rpb25zX189W10sdGhpcy5fX2NoYWluX189ISFvLHRoaXMuX19pbmRleF9fPTAsdGhpcy5fX3ZhbHVlc19fPXZvaWQgMH1Mb2Rhc2hXcmFwcGVyLnByb3RvdHlwZT1hKHUucHJvdG90eXBlKSxMb2Rhc2hXcmFwcGVyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1Mb2Rhc2hXcmFwcGVyLHMuZXhwb3J0cz1Mb2Rhc2hXcmFwcGVyfSw1NjExMDoocyxvLGkpPT57dmFyIGE9aSg0NTA4MyksdT1pKDEwMzkyKTtzLmV4cG9ydHM9ZnVuY3Rpb24gZ2V0TmF0aXZlKHMsbyl7dmFyIGk9dShzLG8pO3JldHVybiBhKGkpP2k6dm9pZCAwfX0sNTYzNjc6KHMsbyxpKT0+e3MuZXhwb3J0cz1pKDc3NzMxKX0sNTY0NDk6cz0+e3ZhciBvPUFycmF5LmlzQXJyYXk7cy5leHBvcnRzPW99LDU2Njk4OnM9PnsiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmNyZWF0ZT9zLmV4cG9ydHM9ZnVuY3Rpb24gaW5oZXJpdHMocyxvKXtvJiYocy5zdXBlcl89byxzLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG8ucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6cyxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSl9OnMuZXhwb3J0cz1mdW5jdGlvbiBpbmhlcml0cyhzLG8pe2lmKG8pe3Muc3VwZXJfPW87dmFyIFRlbXBDdG9yPWZ1bmN0aW9uKCl7fTtUZW1wQ3Rvci5wcm90b3R5cGU9by5wcm90b3R5cGUscy5wcm90b3R5cGU9bmV3IFRlbXBDdG9yLHMucHJvdG90eXBlLmNvbnN0cnVjdG9yPXN9fX0sNTY3NTc6KHMsbyxpKT0+e3ZhciBhPWkoOTEwMzMpLHU9TWF0aC5tYXg7cy5leHBvcnRzPWZ1bmN0aW9uIG92ZXJSZXN0KHMsbyxpKXtyZXR1cm4gbz11KHZvaWQgMD09PW8/cy5sZW5ndGgtMTpvLDApLGZ1bmN0aW9uKCl7Zm9yKHZhciBfPWFyZ3VtZW50cyx3PS0xLHg9dShfLmxlbmd0aC1vLDApLEM9QXJyYXkoeCk7Kyt3PHg7KUNbd109X1tvK3ddO3c9LTE7Zm9yKHZhciBqPUFycmF5KG8rMSk7Kyt3PG87KWpbd109X1t3XTtyZXR1cm4galtvXT1pKEMpLGEocyx0aGlzLGopfX19LDU3MzgyOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg5ODgyOCk7cy5leHBvcnRzPSFhKChmdW5jdGlvbigpe2Z1bmN0aW9uIEYoKXt9cmV0dXJuIEYucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGwsT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBGKSE9PUYucHJvdG90eXBlfSkpfSw1Nzc1ODoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhO3ZhciB1PWkoODYwNDgpLkYsXz11LkVSUl9NSVNTSU5HX0FSR1Msdz11LkVSUl9TVFJFQU1fREVTVFJPWUVEO2Z1bmN0aW9uIG5vb3Aocyl7aWYocyl0aHJvdyBzfWZ1bmN0aW9uIGNhbGwocyl7cygpfWZ1bmN0aW9uIHBpcGUocyxvKXtyZXR1cm4gcy5waXBlKG8pfXMuZXhwb3J0cz1mdW5jdGlvbiBwaXBlbGluZSgpe2Zvcih2YXIgcz1hcmd1bWVudHMubGVuZ3RoLG89bmV3IEFycmF5KHMpLHU9MDt1PHM7dSsrKW9bdV09YXJndW1lbnRzW3VdO3ZhciB4LEM9ZnVuY3Rpb24gcG9wQ2FsbGJhY2socyl7cmV0dXJuIHMubGVuZ3RoPyJmdW5jdGlvbiIhPXR5cGVvZiBzW3MubGVuZ3RoLTFdP25vb3A6cy5wb3AoKTpub29wfShvKTtpZihBcnJheS5pc0FycmF5KG9bMF0pJiYobz1vWzBdKSxvLmxlbmd0aDwyKXRocm93IG5ldyBfKCJzdHJlYW1zIik7dmFyIGo9by5tYXAoKGZ1bmN0aW9uKHMsdSl7dmFyIF89dTxvLmxlbmd0aC0xO3JldHVybiBmdW5jdGlvbiBkZXN0cm95ZXIocyxvLHUsXyl7Xz1mdW5jdGlvbiBvbmNlKHMpe3ZhciBvPSExO3JldHVybiBmdW5jdGlvbigpe298fChvPSEwLHMuYXBwbHkodm9pZCAwLGFyZ3VtZW50cykpfX0oXyk7dmFyIHg9ITE7cy5vbigiY2xvc2UiLChmdW5jdGlvbigpe3g9ITB9KSksdm9pZCAwPT09YSYmKGE9aSg4NjIzOCkpLGEocyx7cmVhZGFibGU6byx3cml0YWJsZTp1fSwoZnVuY3Rpb24ocyl7aWYocylyZXR1cm4gXyhzKTt4PSEwLF8oKX0pKTt2YXIgQz0hMTtyZXR1cm4gZnVuY3Rpb24obyl7aWYoIXgmJiFDKXJldHVybiBDPSEwLGZ1bmN0aW9uIGlzUmVxdWVzdChzKXtyZXR1cm4gcy5zZXRIZWFkZXImJiJmdW5jdGlvbiI9PXR5cGVvZiBzLmFib3J0fShzKT9zLmFib3J0KCk6ImZ1bmN0aW9uIj09dHlwZW9mIHMuZGVzdHJveT9zLmRlc3Ryb3koKTp2b2lkIF8ob3x8bmV3IHcoInBpcGUiKSl9fShzLF8sdT4wLChmdW5jdGlvbihzKXt4fHwoeD1zKSxzJiZqLmZvckVhY2goY2FsbCksX3x8KGouZm9yRWFjaChjYWxsKSxDKHgpKX0pKX0pKTtyZXR1cm4gby5yZWR1Y2UocGlwZSl9fSw1ODA3NToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhLHU9aSgzNjYyNCksXz1pKDQyMjIwKSx3PWkoODAzNzYpLHg9aSgzODUzMCksQz1pKDYyNDE2KSxqPWkoNDk1NTIpLEw9aSg5MjUyMiksQj0icHJvdG90eXBlIiwkPSJzY3JpcHQiLFY9TCgiSUVfUFJPVE8iKSxFbXB0eUNvbnN0cnVjdG9yPWZ1bmN0aW9uKCl7fSxzY3JpcHRUYWc9ZnVuY3Rpb24ocyl7cmV0dXJuIjwiKyQrIj4iK3MrIjwvIiskKyI+In0sTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWD1mdW5jdGlvbihzKXtzLndyaXRlKHNjcmlwdFRhZygiIikpLHMuY2xvc2UoKTt2YXIgbz1zLnBhcmVudFdpbmRvdy5PYmplY3Q7cmV0dXJuIHM9bnVsbCxvfSxOdWxsUHJvdG9PYmplY3Q9ZnVuY3Rpb24oKXt0cnl7YT1uZXcgQWN0aXZlWE9iamVjdCgiaHRtbGZpbGUiKX1jYXRjaChzKXt9dmFyIHMsbyxpO051bGxQcm90b09iamVjdD0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmRvbWFpbiYmYT9OdWxsUHJvdG9PYmplY3RWaWFBY3RpdmVYKGEpOihvPWooImlmcmFtZSIpLGk9ImphdmEiKyQrIjoiLG8uc3R5bGUuZGlzcGxheT0ibm9uZSIsQy5hcHBlbmRDaGlsZChvKSxvLnNyYz1TdHJpbmcoaSksKHM9by5jb250ZW50V2luZG93LmRvY3VtZW50KS5vcGVuKCkscy53cml0ZShzY3JpcHRUYWcoImRvY3VtZW50LkY9T2JqZWN0IikpLHMuY2xvc2UoKSxzLkYpOk51bGxQcm90b09iamVjdFZpYUFjdGl2ZVgoYSk7Zm9yKHZhciB1PXcubGVuZ3RoO3UtLTspZGVsZXRlIE51bGxQcm90b09iamVjdFtCXVt3W3VdXTtyZXR1cm4gTnVsbFByb3RvT2JqZWN0KCl9O3hbVl09ITAscy5leHBvcnRzPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uIGNyZWF0ZShzLG8pe3ZhciBpO3JldHVybiBudWxsIT09cz8oRW1wdHlDb25zdHJ1Y3RvcltCXT11KHMpLGk9bmV3IEVtcHR5Q29uc3RydWN0b3IsRW1wdHlDb25zdHJ1Y3RvcltCXT1udWxsLGlbVl09cyk6aT1OdWxsUHJvdG9PYmplY3QoKSx2b2lkIDA9PT1vP2k6Xy5mKGksbyl9fSw1ODE1NjoocyxvLGkpPT57dmFyIGE9aSg0NzQyMik7cy5leHBvcnRzPWZ1bmN0aW9uIGdldChzLG8saSl7dmFyIHU9bnVsbD09cz92b2lkIDA6YShzLG8pO3JldHVybiB2b2lkIDA9PT11P2k6dX19LDU4NTIzOnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gY291bnRIb2xkZXJzKHMsbyl7Zm9yKHZhciBpPXMubGVuZ3RoLGE9MDtpLS07KXNbaV09PT1vJiYrK2E7cmV0dXJuIGF9fSw1ODY2MToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMzk0NDcpLHU9aSg5ODgyOCk7cy5leHBvcnRzPWEmJnUoKGZ1bmN0aW9uKCl7cmV0dXJuIDQyIT09T2JqZWN0LmRlZmluZVByb3BlcnR5KChmdW5jdGlvbigpe30pLCJwcm90b3R5cGUiLHt2YWx1ZTo0Mix3cml0YWJsZTohMX0pLnByb3RvdHlwZX0pKX0sNTkzNTA6cz0+e3ZhciBvPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7cy5leHBvcnRzPWZ1bmN0aW9uIG9iamVjdFRvU3RyaW5nKHMpe3JldHVybiBvLmNhbGwocyl9fSw1OTM5OToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMjUyNjQpLkNvcHlUb0NsaXBib2FyZDthLkNvcHlUb0NsaXBib2FyZD1hLHMuZXhwb3J0cz1hfSw1OTU1MDpzPT57InVzZSBzdHJpY3QiO3MuZXhwb3J0cz1mdW5jdGlvbihzLG8pe3JldHVybnt2YWx1ZTpzLGRvbmU6b319fSw2MDE4MzoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMTEwOTEpLHU9aSgxMzkzMCksXz1pKDczNzYpLHc9aSgzNjgzMykseD1pKDYyMjUwKSxDPWkoNDcxODEpLGo9aSgxNTk3MiksTD1pKDc5MTkyKSxCPWkoMTQ4NDApLCQ9aSg2MTYyNiksVj1pKDY4MDU1KSxVPWkoNzYyNjQpLHo9aSg5Mzc0MiksWT1pKDk1MTE2KSxaPXcuUFJPUEVSLGVlPXcuQ09ORklHVVJBQkxFLGllPVkuSXRlcmF0b3JQcm90b3R5cGUsYWU9WS5CVUdHWV9TQUZBUklfSVRFUkFUT1JTLGNlPVUoIml0ZXJhdG9yIiksbGU9ImtleXMiLHBlPSJ2YWx1ZXMiLGRlPSJlbnRyaWVzIixyZXR1cm5UaGlzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O3MuZXhwb3J0cz1mdW5jdGlvbihzLG8saSx3LFUsWSxmZSl7QyhpLG8sdyk7dmFyIHllLGJlLF9lLGdldEl0ZXJhdGlvbk1ldGhvZD1mdW5jdGlvbihzKXtpZihzPT09VSYmVGUpcmV0dXJuIFRlO2lmKCFhZSYmcyYmcyBpbiB4ZSlyZXR1cm4geGVbc107c3dpdGNoKHMpe2Nhc2UgbGU6cmV0dXJuIGZ1bmN0aW9uIGtleXMoKXtyZXR1cm4gbmV3IGkodGhpcyxzKX07Y2FzZSBwZTpyZXR1cm4gZnVuY3Rpb24gdmFsdWVzKCl7cmV0dXJuIG5ldyBpKHRoaXMscyl9O2Nhc2UgZGU6cmV0dXJuIGZ1bmN0aW9uIGVudHJpZXMoKXtyZXR1cm4gbmV3IGkodGhpcyxzKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBpKHRoaXMpfX0sU2U9bysiIEl0ZXJhdG9yIix3ZT0hMSx4ZT1zLnByb3RvdHlwZSxQZT14ZVtjZV18fHhlWyJAQGl0ZXJhdG9yIl18fFUmJnhlW1VdLFRlPSFhZSYmUGV8fGdldEl0ZXJhdGlvbk1ldGhvZChVKSxSZT0iQXJyYXkiPT09byYmeGUuZW50cmllc3x8UGU7aWYoUmUmJih5ZT1qKFJlLmNhbGwobmV3IHMpKSkhPT1PYmplY3QucHJvdG90eXBlJiZ5ZS5uZXh0JiYoX3x8aih5ZSk9PT1pZXx8KEw/TCh5ZSxpZSk6eCh5ZVtjZV0pfHxWKHllLGNlLHJldHVyblRoaXMpKSxCKHllLFNlLCEwLCEwKSxfJiYoeltTZV09cmV0dXJuVGhpcykpLFomJlU9PT1wZSYmUGUmJlBlLm5hbWUhPT1wZSYmKCFfJiZlZT8kKHhlLCJuYW1lIixwZSk6KHdlPSEwLFRlPWZ1bmN0aW9uIHZhbHVlcygpe3JldHVybiB1KFBlLHRoaXMpfSkpLFUpaWYoYmU9e3ZhbHVlczpnZXRJdGVyYXRpb25NZXRob2QocGUpLGtleXM6WT9UZTpnZXRJdGVyYXRpb25NZXRob2QobGUpLGVudHJpZXM6Z2V0SXRlcmF0aW9uTWV0aG9kKGRlKX0sZmUpZm9yKF9lIGluIGJlKShhZXx8d2V8fCEoX2UgaW4geGUpKSYmVih4ZSxfZSxiZVtfZV0pO2Vsc2UgYSh7dGFyZ2V0Om8scHJvdG86ITAsZm9yY2VkOmFlfHx3ZX0sYmUpO3JldHVybiBfJiYhZmV8fHhlW2NlXT09PVRlfHxWKHhlLGNlLFRlLHtuYW1lOlV9KSx6W29dPVRlLGJlfX0sNjAyNzA6KHMsbyxpKT0+e3ZhciBhPWkoODcwNjgpLHU9aSg0MDM0Nik7cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VJc0VxdWFsKHMsbyxpLF8sdyl7cmV0dXJuIHM9PT1vfHwobnVsbD09c3x8bnVsbD09b3x8IXUocykmJiF1KG8pP3MhPXMmJm8hPW86YShzLG8saSxfLGJhc2VJc0VxdWFsLHcpKX19LDYwNTgxOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgxMzkzMCksdT1pKDYyMjUwKSxfPWkoNDYyODUpLHc9VHlwZUVycm9yO3MuZXhwb3J0cz1mdW5jdGlvbihzLG8pe3ZhciBpLHg7aWYoInN0cmluZyI9PT1vJiZ1KGk9cy50b1N0cmluZykmJiFfKHg9YShpLHMpKSlyZXR1cm4geDtpZih1KGk9cy52YWx1ZU9mKSYmIV8oeD1hKGkscykpKXJldHVybiB4O2lmKCJzdHJpbmciIT09byYmdShpPXMudG9TdHJpbmcpJiYhXyh4PWEoaSxzKSkpcmV0dXJuIHg7dGhyb3cgbmV3IHcoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfX0sNjA2ODA6KHMsbyxpKT0+e3ZhciBhPWkoMTMyMjIpLHU9L1tcXF4kLiorPygpW1xde318XS9nLF89UmVnRXhwKHUuc291cmNlKTtzLmV4cG9ydHM9ZnVuY3Rpb24gZXNjYXBlUmVnRXhwKHMpe3JldHVybihzPWEocykpJiZfLnRlc3Qocyk/cy5yZXBsYWNlKHUsIlxcJCYiKTpzfX0sNjEwNDU6KHMsbyxpKT0+e2NvbnN0IGE9aSg2MDQ4KSx1PWkoMjM4MDUpLF89aSg2MjMzKSx3PWkoODc3MjYpLHg9aSgxMDg2Nik7cy5leHBvcnRzPWNsYXNzIE9iamVjdEVsZW1lbnQgZXh0ZW5kcyBfe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzfHxbXSxvLGkpLHRoaXMuZWxlbWVudD0ib2JqZWN0In1wcmltaXRpdmUoKXtyZXR1cm4ib2JqZWN0In10b1ZhbHVlKCl7cmV0dXJuIHRoaXMuY29udGVudC5yZWR1Y2UoKChzLG8pPT4oc1tvLmtleS50b1ZhbHVlKCldPW8udmFsdWU/by52YWx1ZS50b1ZhbHVlKCk6dm9pZCAwLHMpKSx7fSl9Z2V0KHMpe2NvbnN0IG89dGhpcy5nZXRNZW1iZXIocyk7aWYobylyZXR1cm4gby52YWx1ZX1nZXRNZW1iZXIocyl7aWYodm9pZCAwIT09cylyZXR1cm4gdGhpcy5jb250ZW50LmZpbmQoKG89Pm8ua2V5LnRvVmFsdWUoKT09PXMpKX1yZW1vdmUocyl7bGV0IG89bnVsbDtyZXR1cm4gdGhpcy5jb250ZW50PXRoaXMuY29udGVudC5maWx0ZXIoKGk9Pmkua2V5LnRvVmFsdWUoKSE9PXN8fChvPWksITEpKSksb31nZXRLZXkocyl7Y29uc3Qgbz10aGlzLmdldE1lbWJlcihzKTtpZihvKXJldHVybiBvLmtleX1zZXQocyxvKXtpZih1KHMpKXJldHVybiBPYmplY3Qua2V5cyhzKS5mb3JFYWNoKChvPT57dGhpcy5zZXQobyxzW29dKX0pKSx0aGlzO2NvbnN0IGk9cyxhPXRoaXMuZ2V0TWVtYmVyKGkpO3JldHVybiBhP2EudmFsdWU9bzp0aGlzLmNvbnRlbnQucHVzaChuZXcgdyhpLG8pKSx0aGlzfWtleXMoKXtyZXR1cm4gdGhpcy5jb250ZW50Lm1hcCgocz0+cy5rZXkudG9WYWx1ZSgpKSl9dmFsdWVzKCl7cmV0dXJuIHRoaXMuY29udGVudC5tYXAoKHM9PnMudmFsdWUudG9WYWx1ZSgpKSl9aGFzS2V5KHMpe3JldHVybiB0aGlzLmNvbnRlbnQuc29tZSgobz0+by5rZXkuZXF1YWxzKHMpKSl9aXRlbXMoKXtyZXR1cm4gdGhpcy5jb250ZW50Lm1hcCgocz0+W3Mua2V5LnRvVmFsdWUoKSxzLnZhbHVlLnRvVmFsdWUoKV0pKX1tYXAocyxvKXtyZXR1cm4gdGhpcy5jb250ZW50Lm1hcCgoaT0+cy5iaW5kKG8pKGkudmFsdWUsaS5rZXksaSkpKX1jb21wYWN0TWFwKHMsbyl7Y29uc3QgaT1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKCgoYSx1LF8pPT57Y29uc3Qgdz1zLmJpbmQobykoYSx1LF8pO3cmJmkucHVzaCh3KX0pKSxpfWZpbHRlcihzLG8pe3JldHVybiBuZXcgeCh0aGlzLmNvbnRlbnQpLmZpbHRlcihzLG8pfXJlamVjdChzLG8pe3JldHVybiB0aGlzLmZpbHRlcihhKHMpLG8pfWZvckVhY2gocyxvKXtyZXR1cm4gdGhpcy5jb250ZW50LmZvckVhY2goKGk9PnMuYmluZChvKShpLnZhbHVlLGkua2V5LGkpKSl9fX0sNjEwNzQ6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBhc2NpaVRvQXJyYXkocyl7cmV0dXJuIHMuc3BsaXQoIiIpfX0sNjExNjA6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDkyMDYzKSx1PWkoNzM5OTIpLF89L15bXHgwMC1ceDIwXHUwMGEwXHUxNjgwXHUyMDAwLVx1MjAwYVx1MjAyOFx1MjAyOVx1MjAyZlx1MjA1Zlx1MzAwMFx1ZmVmZl0rLyx3PS9bXG5cclx0XS9nLHg9L15bQS1aYS16XVtBLVphLXowLTkrLS5dKjpcL1wvLyxDPS86XGQrJC8saj0vXihbYS16XVthLXowLTkuKy1dKjopPyhcL1wvKT8oW1xcL10rKT8oW1xTXHNdKikvaSxMPS9eW2EtekEtWl06LztmdW5jdGlvbiB0cmltTGVmdChzKXtyZXR1cm4oc3x8IiIpLnRvU3RyaW5nKCkucmVwbGFjZShfLCIiKX12YXIgQj1bWyIjIiwiaGFzaCJdLFsiPyIsInF1ZXJ5Il0sZnVuY3Rpb24gc2FuaXRpemUocyxvKXtyZXR1cm4gaXNTcGVjaWFsKG8ucHJvdG9jb2wpP3MucmVwbGFjZSgvXFwvZywiLyIpOnN9LFsiLyIsInBhdGhuYW1lIl0sWyJAIiwiYXV0aCIsMV0sW05hTiwiaG9zdCIsdm9pZCAwLDEsMV0sWy86KFxkKikkLywicG9ydCIsdm9pZCAwLDFdLFtOYU4sImhvc3RuYW1lIix2b2lkIDAsMSwxXV0sJD17aGFzaDoxLHF1ZXJ5OjF9O2Z1bmN0aW9uIGxvbGNhdGlvbihzKXt2YXIgbyxhPSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dm9pZCAwIT09aS5nP2kuZzoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjp7fSkubG9jYXRpb258fHt9LHU9e30sXz10eXBlb2Yocz1zfHxhKTtpZigiYmxvYjoiPT09cy5wcm90b2NvbCl1PW5ldyBVcmwodW5lc2NhcGUocy5wYXRobmFtZSkse30pO2Vsc2UgaWYoInN0cmluZyI9PT1fKWZvcihvIGluIHU9bmV3IFVybChzLHt9KSwkKWRlbGV0ZSB1W29dO2Vsc2UgaWYoIm9iamVjdCI9PT1fKXtmb3IobyBpbiBzKW8gaW4gJHx8KHVbb109c1tvXSk7dm9pZCAwPT09dS5zbGFzaGVzJiYodS5zbGFzaGVzPXgudGVzdChzLmhyZWYpKX1yZXR1cm4gdX1mdW5jdGlvbiBpc1NwZWNpYWwocyl7cmV0dXJuImZpbGU6Ij09PXN8fCJmdHA6Ij09PXN8fCJodHRwOiI9PT1zfHwiaHR0cHM6Ij09PXN8fCJ3czoiPT09c3x8IndzczoiPT09c31mdW5jdGlvbiBleHRyYWN0UHJvdG9jb2wocyxvKXtzPShzPXRyaW1MZWZ0KHMpKS5yZXBsYWNlKHcsIiIpLG89b3x8e307dmFyIGksYT1qLmV4ZWMocyksdT1hWzFdP2FbMV0udG9Mb3dlckNhc2UoKToiIixfPSEhYVsyXSx4PSEhYVszXSxDPTA7cmV0dXJuIF8/eD8oaT1hWzJdK2FbM10rYVs0XSxDPWFbMl0ubGVuZ3RoK2FbM10ubGVuZ3RoKTooaT1hWzJdK2FbNF0sQz1hWzJdLmxlbmd0aCk6eD8oaT1hWzNdK2FbNF0sQz1hWzNdLmxlbmd0aCk6aT1hWzRdLCJmaWxlOiI9PT11P0M+PTImJihpPWkuc2xpY2UoMikpOmlzU3BlY2lhbCh1KT9pPWFbNF06dT9fJiYoaT1pLnNsaWNlKDIpKTpDPj0yJiZpc1NwZWNpYWwoby5wcm90b2NvbCkmJihpPWFbNF0pLHtwcm90b2NvbDp1LHNsYXNoZXM6X3x8aXNTcGVjaWFsKHUpLHNsYXNoZXNDb3VudDpDLHJlc3Q6aX19ZnVuY3Rpb24gVXJsKHMsbyxpKXtpZihzPShzPXRyaW1MZWZ0KHMpKS5yZXBsYWNlKHcsIiIpLCEodGhpcyBpbnN0YW5jZW9mIFVybCkpcmV0dXJuIG5ldyBVcmwocyxvLGkpO3ZhciBfLHgsQyxqLCQsVixVPUIuc2xpY2UoKSx6PXR5cGVvZiBvLFk9dGhpcyxaPTA7Zm9yKCJvYmplY3QiIT09eiYmInN0cmluZyIhPT16JiYoaT1vLG89bnVsbCksaSYmImZ1bmN0aW9uIiE9dHlwZW9mIGkmJihpPXUucGFyc2UpLF89ISh4PWV4dHJhY3RQcm90b2NvbChzfHwiIixvPWxvbGNhdGlvbihvKSkpLnByb3RvY29sJiYheC5zbGFzaGVzLFkuc2xhc2hlcz14LnNsYXNoZXN8fF8mJm8uc2xhc2hlcyxZLnByb3RvY29sPXgucHJvdG9jb2x8fG8ucHJvdG9jb2x8fCIiLHM9eC5yZXN0LCgiZmlsZToiPT09eC5wcm90b2NvbCYmKDIhPT14LnNsYXNoZXNDb3VudHx8TC50ZXN0KHMpKXx8IXguc2xhc2hlcyYmKHgucHJvdG9jb2x8fHguc2xhc2hlc0NvdW50PDJ8fCFpc1NwZWNpYWwoWS5wcm90b2NvbCkpKSYmKFVbM109Wy8oLiopLywicGF0aG5hbWUiXSk7WjxVLmxlbmd0aDtaKyspImZ1bmN0aW9uIiE9dHlwZW9mKGo9VVtaXSk/KEM9alswXSxWPWpbMV0sQyE9Qz9ZW1ZdPXM6InN0cmluZyI9PXR5cGVvZiBDP34oJD0iQCI9PT1DP3MubGFzdEluZGV4T2YoQyk6cy5pbmRleE9mKEMpKSYmKCJudW1iZXIiPT10eXBlb2YgalsyXT8oWVtWXT1zLnNsaWNlKDAsJCkscz1zLnNsaWNlKCQralsyXSkpOihZW1ZdPXMuc2xpY2UoJCkscz1zLnNsaWNlKDAsJCkpKTooJD1DLmV4ZWMocykpJiYoWVtWXT0kWzFdLHM9cy5zbGljZSgwLCQuaW5kZXgpKSxZW1ZdPVlbVl18fF8mJmpbM10mJm9bVl18fCIiLGpbNF0mJihZW1ZdPVlbVl0udG9Mb3dlckNhc2UoKSkpOnM9aihzLFkpO2kmJihZLnF1ZXJ5PWkoWS5xdWVyeSkpLF8mJm8uc2xhc2hlcyYmIi8iIT09WS5wYXRobmFtZS5jaGFyQXQoMCkmJigiIiE9PVkucGF0aG5hbWV8fCIiIT09by5wYXRobmFtZSkmJihZLnBhdGhuYW1lPWZ1bmN0aW9uIHJlc29sdmUocyxvKXtpZigiIj09PXMpcmV0dXJuIG87Zm9yKHZhciBpPShvfHwiLyIpLnNwbGl0KCIvIikuc2xpY2UoMCwtMSkuY29uY2F0KHMuc3BsaXQoIi8iKSksYT1pLmxlbmd0aCx1PWlbYS0xXSxfPSExLHc9MDthLS07KSIuIj09PWlbYV0/aS5zcGxpY2UoYSwxKToiLi4iPT09aVthXT8oaS5zcGxpY2UoYSwxKSx3KyspOncmJigwPT09YSYmKF89ITApLGkuc3BsaWNlKGEsMSksdy0tKTtyZXR1cm4gXyYmaS51bnNoaWZ0KCIiKSwiLiIhPT11JiYiLi4iIT09dXx8aS5wdXNoKCIiKSxpLmpvaW4oIi8iKX0oWS5wYXRobmFtZSxvLnBhdGhuYW1lKSksIi8iIT09WS5wYXRobmFtZS5jaGFyQXQoMCkmJmlzU3BlY2lhbChZLnByb3RvY29sKSYmKFkucGF0aG5hbWU9Ii8iK1kucGF0aG5hbWUpLGEoWS5wb3J0LFkucHJvdG9jb2wpfHwoWS5ob3N0PVkuaG9zdG5hbWUsWS5wb3J0PSIiKSxZLnVzZXJuYW1lPVkucGFzc3dvcmQ9IiIsWS5hdXRoJiYofigkPVkuYXV0aC5pbmRleE9mKCI6IikpPyhZLnVzZXJuYW1lPVkuYXV0aC5zbGljZSgwLCQpLFkudXNlcm5hbWU9ZW5jb2RlVVJJQ29tcG9uZW50KGRlY29kZVVSSUNvbXBvbmVudChZLnVzZXJuYW1lKSksWS5wYXNzd29yZD1ZLmF1dGguc2xpY2UoJCsxKSxZLnBhc3N3b3JkPWVuY29kZVVSSUNvbXBvbmVudChkZWNvZGVVUklDb21wb25lbnQoWS5wYXNzd29yZCkpKTpZLnVzZXJuYW1lPWVuY29kZVVSSUNvbXBvbmVudChkZWNvZGVVUklDb21wb25lbnQoWS5hdXRoKSksWS5hdXRoPVkucGFzc3dvcmQ/WS51c2VybmFtZSsiOiIrWS5wYXNzd29yZDpZLnVzZXJuYW1lKSxZLm9yaWdpbj0iZmlsZToiIT09WS5wcm90b2NvbCYmaXNTcGVjaWFsKFkucHJvdG9jb2wpJiZZLmhvc3Q/WS5wcm90b2NvbCsiLy8iK1kuaG9zdDoibnVsbCIsWS5ocmVmPVkudG9TdHJpbmcoKX1VcmwucHJvdG90eXBlPXtzZXQ6ZnVuY3Rpb24gc2V0KHMsbyxpKXt2YXIgXz10aGlzO3N3aXRjaChzKXtjYXNlInF1ZXJ5Ijoic3RyaW5nIj09dHlwZW9mIG8mJm8ubGVuZ3RoJiYobz0oaXx8dS5wYXJzZSkobykpLF9bc109bzticmVhaztjYXNlInBvcnQiOl9bc109byxhKG8sXy5wcm90b2NvbCk/byYmKF8uaG9zdD1fLmhvc3RuYW1lKyI6IitvKTooXy5ob3N0PV8uaG9zdG5hbWUsX1tzXT0iIik7YnJlYWs7Y2FzZSJob3N0bmFtZSI6X1tzXT1vLF8ucG9ydCYmKG8rPSI6IitfLnBvcnQpLF8uaG9zdD1vO2JyZWFrO2Nhc2UiaG9zdCI6X1tzXT1vLEMudGVzdChvKT8obz1vLnNwbGl0KCI6IiksXy5wb3J0PW8ucG9wKCksXy5ob3N0bmFtZT1vLmpvaW4oIjoiKSk6KF8uaG9zdG5hbWU9byxfLnBvcnQ9IiIpO2JyZWFrO2Nhc2UicHJvdG9jb2wiOl8ucHJvdG9jb2w9by50b0xvd2VyQ2FzZSgpLF8uc2xhc2hlcz0haTticmVhaztjYXNlInBhdGhuYW1lIjpjYXNlImhhc2giOmlmKG8pe3ZhciB3PSJwYXRobmFtZSI9PT1zPyIvIjoiIyI7X1tzXT1vLmNoYXJBdCgwKSE9PXc/dytvOm99ZWxzZSBfW3NdPW87YnJlYWs7Y2FzZSJ1c2VybmFtZSI6Y2FzZSJwYXNzd29yZCI6X1tzXT1lbmNvZGVVUklDb21wb25lbnQobyk7YnJlYWs7Y2FzZSJhdXRoIjp2YXIgeD1vLmluZGV4T2YoIjoiKTt+eD8oXy51c2VybmFtZT1vLnNsaWNlKDAseCksXy51c2VybmFtZT1lbmNvZGVVUklDb21wb25lbnQoZGVjb2RlVVJJQ29tcG9uZW50KF8udXNlcm5hbWUpKSxfLnBhc3N3b3JkPW8uc2xpY2UoeCsxKSxfLnBhc3N3b3JkPWVuY29kZVVSSUNvbXBvbmVudChkZWNvZGVVUklDb21wb25lbnQoXy5wYXNzd29yZCkpKTpfLnVzZXJuYW1lPWVuY29kZVVSSUNvbXBvbmVudChkZWNvZGVVUklDb21wb25lbnQobykpfWZvcih2YXIgaj0wO2o8Qi5sZW5ndGg7aisrKXt2YXIgTD1CW2pdO0xbNF0mJihfW0xbMV1dPV9bTFsxXV0udG9Mb3dlckNhc2UoKSl9cmV0dXJuIF8uYXV0aD1fLnBhc3N3b3JkP18udXNlcm5hbWUrIjoiK18ucGFzc3dvcmQ6Xy51c2VybmFtZSxfLm9yaWdpbj0iZmlsZToiIT09Xy5wcm90b2NvbCYmaXNTcGVjaWFsKF8ucHJvdG9jb2wpJiZfLmhvc3Q/Xy5wcm90b2NvbCsiLy8iK18uaG9zdDoibnVsbCIsXy5ocmVmPV8udG9TdHJpbmcoKSxffSx0b1N0cmluZzpmdW5jdGlvbiB0b1N0cmluZyhzKXtzJiYiZnVuY3Rpb24iPT10eXBlb2Ygc3x8KHM9dS5zdHJpbmdpZnkpO3ZhciBvLGk9dGhpcyxhPWkuaG9zdCxfPWkucHJvdG9jb2w7XyYmIjoiIT09Xy5jaGFyQXQoXy5sZW5ndGgtMSkmJihfKz0iOiIpO3ZhciB3PV8rKGkucHJvdG9jb2wmJmkuc2xhc2hlc3x8aXNTcGVjaWFsKGkucHJvdG9jb2wpPyIvLyI6IiIpO3JldHVybiBpLnVzZXJuYW1lPyh3Kz1pLnVzZXJuYW1lLGkucGFzc3dvcmQmJih3Kz0iOiIraS5wYXNzd29yZCksdys9IkAiKTppLnBhc3N3b3JkPyh3Kz0iOiIraS5wYXNzd29yZCx3Kz0iQCIpOiJmaWxlOiIhPT1pLnByb3RvY29sJiZpc1NwZWNpYWwoaS5wcm90b2NvbCkmJiFhJiYiLyIhPT1pLnBhdGhuYW1lJiYodys9IkAiKSwoIjoiPT09YVthLmxlbmd0aC0xXXx8Qy50ZXN0KGkuaG9zdG5hbWUpJiYhaS5wb3J0KSYmKGErPSI6Iiksdys9YStpLnBhdGhuYW1lLChvPSJvYmplY3QiPT10eXBlb2YgaS5xdWVyeT9zKGkucXVlcnkpOmkucXVlcnkpJiYodys9Ij8iIT09by5jaGFyQXQoMCk/Ij8iK286byksaS5oYXNoJiYodys9aS5oYXNoKSx3fX0sVXJsLmV4dHJhY3RQcm90b2NvbD1leHRyYWN0UHJvdG9jb2wsVXJsLmxvY2F0aW9uPWxvbGNhdGlvbixVcmwudHJpbUxlZnQ9dHJpbUxlZnQsVXJsLnFzPXUscy5leHBvcnRzPVVybH0sNjE0NDg6KHMsbyxpKT0+e3ZhciBhPWkoMjA0MjYpLHU9aSg0OTMyNik7cy5leHBvcnRzPWZ1bmN0aW9uIGhhcyhzLG8pe3JldHVybiBudWxsIT1zJiZ1KHMsbyxhKX19LDYxNDg5OihzLG8saSk9Pnt2YXIgYT1pKDE3NDAwKTtzLmV4cG9ydHM9ZnVuY3Rpb24gdG9JbnRlZ2VyKHMpe3ZhciBvPWEocyksaT1vJTE7cmV0dXJuIG89PW8/aT9vLWk6bzowfX0sNjE2MjY6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDM5NDQ3KSx1PWkoNzQyODQpLF89aSg3NTgxNyk7cy5leHBvcnRzPWE/ZnVuY3Rpb24ocyxvLGkpe3JldHVybiB1LmYocyxvLF8oMSxpKSl9OmZ1bmN0aW9uKHMsbyxpKXtyZXR1cm4gc1tvXT1pLHN9fSw2MTc0NzoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNDU5NTEpLHU9aSg5MjA0Nik7cy5leHBvcnRzPWZ1bmN0aW9uKHMsbyl7dmFyIGk9dVtzKyJQcm90b3R5cGUiXSxfPWkmJmlbb107aWYoXylyZXR1cm4gXzt2YXIgdz1hW3NdLHg9dyYmdy5wcm90b3R5cGU7cmV0dXJuIHgmJnhbb119fSw2MTgwMjoocyxvLGkpPT57dmFyIGE9aSg2MjIyNCksdT0vW14uW1xdXSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwkKSkvZyxfPS9cXChcXCk/L2csdz1hKChmdW5jdGlvbihzKXt2YXIgbz1bXTtyZXR1cm4gNDY9PT1zLmNoYXJDb2RlQXQoMCkmJm8ucHVzaCgiIikscy5yZXBsYWNlKHUsKGZ1bmN0aW9uKHMsaSxhLHUpe28ucHVzaChhP3UucmVwbGFjZShfLCIkMSIpOml8fHMpfSkpLG99KSk7cy5leHBvcnRzPXd9LDYyMDA2OihzLG8saSk9Pnt2YXIgYT1pKDE1Mzg5KSx1PWkoNjQ4OTQpLF89aSg5NTk1MCk7cy5leHBvcnRzPWZ1bmN0aW9uIGNyZWF0ZUZpbmQocyl7cmV0dXJuIGZ1bmN0aW9uKG8saSx3KXt2YXIgeD1PYmplY3Qobyk7aWYoIXUobykpe3ZhciBDPWEoaSwzKTtvPV8obyksaT1mdW5jdGlvbihzKXtyZXR1cm4gQyh4W3NdLHMseCl9fXZhciBqPXMobyxpLHcpO3JldHVybiBqPi0xP3hbQz9vW2pdOmpdOnZvaWQgMH19fSw2MjA2MDpzPT57dmFyIG89L1x7KD86XG5cL1wqIFxbd3JhcHBlZCB3aXRoIC4rXF0gXCpcLyk/XG4/LztzLmV4cG9ydHM9ZnVuY3Rpb24gaW5zZXJ0V3JhcERldGFpbHMocyxpKXt2YXIgYT1pLmxlbmd0aDtpZighYSlyZXR1cm4gczt2YXIgdT1hLTE7cmV0dXJuIGlbdV09KGE+MT8iJiAiOiIiKStpW3VdLGk9aS5qb2luKGE+Mj8iLCAiOiIgIikscy5yZXBsYWNlKG8sIntcbi8qIFt3cmFwcGVkIHdpdGggIitpKyJdICovXG4iKX19LDYyMTkzOihzLG8saSk9Pnt2YXIgYT1pKDg4OTg0KSx1PWkoNTg2MSksXz1pKDcyNDI4KSx3PWkoNTY0NDkpLHg9aSg2NDg5NCksQz1pKDM2NTYpLGo9aSg1NTUyNyksTD1pKDM3MTY3KSxCPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7cy5leHBvcnRzPWZ1bmN0aW9uIGlzRW1wdHkocyl7aWYobnVsbD09cylyZXR1cm4hMDtpZih4KHMpJiYodyhzKXx8InN0cmluZyI9PXR5cGVvZiBzfHwiZnVuY3Rpb24iPT10eXBlb2Ygcy5zcGxpY2V8fEMocyl8fEwocyl8fF8ocykpKXJldHVybiFzLmxlbmd0aDt2YXIgbz11KHMpO2lmKCJbb2JqZWN0IE1hcF0iPT1vfHwiW29iamVjdCBTZXRdIj09bylyZXR1cm4hcy5zaXplO2lmKGoocykpcmV0dXJuIWEocykubGVuZ3RoO2Zvcih2YXIgaSBpbiBzKWlmKEIuY2FsbChzLGkpKXJldHVybiExO3JldHVybiEwfX0sNjIyMjQ6KHMsbyxpKT0+e3ZhciBhPWkoNTAxMDQpO3MuZXhwb3J0cz1mdW5jdGlvbiBtZW1vaXplQ2FwcGVkKHMpe3ZhciBvPWEocywoZnVuY3Rpb24ocyl7cmV0dXJuIDUwMD09PWkuc2l6ZSYmaS5jbGVhcigpLHN9KSksaT1vLmNhY2hlO3JldHVybiBvfX0sNjIyNTA6cz0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbz0ib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50JiZkb2N1bWVudC5hbGw7cy5leHBvcnRzPXZvaWQgMD09PW8mJnZvaWQgMCE9PW8/ZnVuY3Rpb24ocyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHN8fHM9PT1vfTpmdW5jdGlvbihzKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygc319LDYyMjg0OihzLG8saSk9Pnt2YXIgYT1pKDg0NjI5KSx1PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7cy5leHBvcnRzPWZ1bmN0aW9uIGdldEZ1bmNOYW1lKHMpe2Zvcih2YXIgbz1zLm5hbWUrIiIsaT1hW29dLF89dS5jYWxsKGEsbyk/aS5sZW5ndGg6MDtfLS07KXt2YXIgdz1pW19dLHg9dy5mdW5jO2lmKG51bGw9PXh8fHg9PXMpcmV0dXJuIHcubmFtZX1yZXR1cm4gb319LDYyNDE2OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg4NTU4Mik7cy5leHBvcnRzPWEoImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50Iil9LDYyODAyOihzLG8saSk9Pnt2YXIgYT1zLmV4cG9ydHM9ZnVuY3Rpb24gU0hBKHMpe3M9cy50b0xvd2VyQ2FzZSgpO3ZhciBvPWFbc107aWYoIW8pdGhyb3cgbmV3IEVycm9yKHMrIiBpcyBub3Qgc3VwcG9ydGVkICh3ZSBhY2NlcHQgcHVsbCByZXF1ZXN0cykiKTtyZXR1cm4gbmV3IG99O2Euc2hhPWkoMjc4MTYpLGEuc2hhMT1pKDYzNzM3KSxhLnNoYTIyND1pKDI2NzEwKSxhLnNoYTI1Nj1pKDI0MTA3KSxhLnNoYTM4ND1pKDMyODI3KSxhLnNoYTUxMj1pKDgyODkwKX0sNjMwNDA6KHMsbyxpKT0+e3ZhciBhPWkoMjE1NDkpLHU9aSg4MDA3OSksXz1pKDY4MjIzKTtzLmV4cG9ydHM9ZnVuY3Rpb24gbWFwQ2FjaGVDbGVhcigpe3RoaXMuc2l6ZT0wLHRoaXMuX19kYXRhX189e2hhc2g6bmV3IGEsbWFwOm5ldyhffHx1KSxzdHJpbmc6bmV3IGF9fX0sNjMzNDU6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBzdHViQXJyYXkoKXtyZXR1cm5bXX19LDYzNTYwOihzLG8saSk9Pnt2YXIgYT1pKDczMTcwKTtzLmV4cG9ydHM9ZnVuY3Rpb24gc2V0KHMsbyxpKXtyZXR1cm4gbnVsbD09cz9zOmEocyxvLGkpfX0sNjM2MDA6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0IjtzLmV4cG9ydHM9UGFzc1Rocm91Z2g7dmFyIGE9aSg3NDYxMCk7ZnVuY3Rpb24gUGFzc1Rocm91Z2gocyl7aWYoISh0aGlzIGluc3RhbmNlb2YgUGFzc1Rocm91Z2gpKXJldHVybiBuZXcgUGFzc1Rocm91Z2gocyk7YS5jYWxsKHRoaXMscyl9aSg1NjY5OCkoUGFzc1Rocm91Z2gsYSksUGFzc1Rocm91Z2gucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24ocyxvLGkpe2kobnVsbCxzKX19LDYzNjA1OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gc3RhY2tHZXQocyl7cmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KHMpfX0sNjM3MDI6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBsaXN0Q2FjaGVDbGVhcigpe3RoaXMuX19kYXRhX189W10sdGhpcy5zaXplPTB9fSw2MzczNzoocyxvLGkpPT57dmFyIGE9aSg1NjY5OCksdT1pKDkwMzkyKSxfPWkoOTI4NjEpLkJ1ZmZlcix3PVsxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsLTE4OTQwMDc1ODgsLTg5OTQ5NzUxNF0seD1uZXcgQXJyYXkoODApO2Z1bmN0aW9uIFNoYTEoKXt0aGlzLmluaXQoKSx0aGlzLl93PXgsdS5jYWxsKHRoaXMsNjQsNTYpfWZ1bmN0aW9uIHJvdGw1KHMpe3JldHVybiBzPDw1fHM+Pj4yN31mdW5jdGlvbiByb3RsMzAocyl7cmV0dXJuIHM8PDMwfHM+Pj4yfWZ1bmN0aW9uIGZ0KHMsbyxpLGEpe3JldHVybiAwPT09cz9vJml8fm8mYToyPT09cz9vJml8byZhfGkmYTpvXmleYX1hKFNoYTEsdSksU2hhMS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OCx0aGlzLl9lPTMyODUzNzc1MjAsdGhpc30sU2hhMS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihzKXtmb3IodmFyIG8saT10aGlzLl93LGE9MHx0aGlzLl9hLHU9MHx0aGlzLl9iLF89MHx0aGlzLl9jLHg9MHx0aGlzLl9kLEM9MHx0aGlzLl9lLGo9MDtqPDE2OysrailpW2pdPXMucmVhZEludDMyQkUoNCpqKTtmb3IoO2o8ODA7KytqKWlbal09KG89aVtqLTNdXmlbai04XV5pW2otMTRdXmlbai0xNl0pPDwxfG8+Pj4zMTtmb3IodmFyIEw9MDtMPDgwOysrTCl7dmFyIEI9fn4oTC8yMCksJD1yb3RsNShhKStmdChCLHUsXyx4KStDK2lbTF0rd1tCXXwwO0M9eCx4PV8sXz1yb3RsMzAodSksdT1hLGE9JH10aGlzLl9hPWErdGhpcy5fYXwwLHRoaXMuX2I9dSt0aGlzLl9ifDAsdGhpcy5fYz1fK3RoaXMuX2N8MCx0aGlzLl9kPXgrdGhpcy5fZHwwLHRoaXMuX2U9Qyt0aGlzLl9lfDB9LFNoYTEucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIHM9Xy5hbGxvY1Vuc2FmZSgyMCk7cmV0dXJuIHMud3JpdGVJbnQzMkJFKDB8dGhpcy5fYSwwKSxzLndyaXRlSW50MzJCRSgwfHRoaXMuX2IsNCkscy53cml0ZUludDMyQkUoMHx0aGlzLl9jLDgpLHMud3JpdGVJbnQzMkJFKDB8dGhpcy5fZCwxMikscy53cml0ZUludDMyQkUoMHx0aGlzLl9lLDE2KSxzfSxzLmV4cG9ydHM9U2hhMX0sNjM4NjI6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBoYXNoRGVsZXRlKHMpe3ZhciBvPXRoaXMuaGFzKHMpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1tzXTtyZXR1cm4gdGhpcy5zaXplLT1vPzE6MCxvfX0sNjM5MTI6KHMsbyxpKT0+e3ZhciBhPWkoNjEwNzQpLHU9aSg0OTY5OCksXz1pKDQyMDU0KTtzLmV4cG9ydHM9ZnVuY3Rpb24gc3RyaW5nVG9BcnJheShzKXtyZXR1cm4gdShzKT9fKHMpOmEocyl9fSw2Mzk1MDpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIG5vb3AoKXt9fSw2NDUwMjoocyxvLGkpPT57InVzZSBzdHJpY3QiO2koODIwNDgpfSw2NDYyNjoocyxvLGkpPT57dmFyIGE9aSg2Njk3Nyk7cy5leHBvcnRzPWZ1bmN0aW9uIGFyeShzLG8saSl7cmV0dXJuIG89aT92b2lkIDA6byxvPXMmJm51bGw9PW8/cy5sZW5ndGg6byxhKHMsMTI4LHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCxvKX19LDY0ODk0OihzLG8saSk9Pnt2YXIgYT1pKDE4ODIpLHU9aSgzMDI5NCk7cy5leHBvcnRzPWZ1bmN0aW9uIGlzQXJyYXlMaWtlKHMpe3JldHVybiBudWxsIT1zJiZ1KHMubGVuZ3RoKSYmIWEocyl9fSw2NDkzMjoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhLHUsXyx3PWkoNDA1NTEpLHg9aSg0NTk1MSksQz1pKDQ2Mjg1KSxqPWkoNjE2MjYpLEw9aSg0OTcyNCksQj1pKDM2MTI4KSwkPWkoOTI1MjIpLFY9aSgzODUzMCksVT0iT2JqZWN0IGFscmVhZHkgaW5pdGlhbGl6ZWQiLHo9eC5UeXBlRXJyb3IsWT14LldlYWtNYXA7aWYod3x8Qi5zdGF0ZSl7dmFyIFo9Qi5zdGF0ZXx8KEIuc3RhdGU9bmV3IFkpO1ouZ2V0PVouZ2V0LFouaGFzPVouaGFzLFouc2V0PVouc2V0LGE9ZnVuY3Rpb24ocyxvKXtpZihaLmhhcyhzKSl0aHJvdyBuZXcgeihVKTtyZXR1cm4gby5mYWNhZGU9cyxaLnNldChzLG8pLG99LHU9ZnVuY3Rpb24ocyl7cmV0dXJuIFouZ2V0KHMpfHx7fX0sXz1mdW5jdGlvbihzKXtyZXR1cm4gWi5oYXMocyl9fWVsc2V7dmFyIGVlPSQoInN0YXRlIik7VltlZV09ITAsYT1mdW5jdGlvbihzLG8pe2lmKEwocyxlZSkpdGhyb3cgbmV3IHooVSk7cmV0dXJuIG8uZmFjYWRlPXMsaihzLGVlLG8pLG99LHU9ZnVuY3Rpb24ocyl7cmV0dXJuIEwocyxlZSk/c1tlZV06e319LF89ZnVuY3Rpb24ocyl7cmV0dXJuIEwocyxlZSl9fXMuZXhwb3J0cz17c2V0OmEsZ2V0OnUsaGFzOl8sZW5mb3JjZTpmdW5jdGlvbihzKXtyZXR1cm4gXyhzKT91KHMpOmEocyx7fSl9LGdldHRlckZvcjpmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24obyl7dmFyIGk7aWYoIUMobyl8fChpPXUobykpLnR5cGUhPT1zKXRocm93IG5ldyB6KCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrcysiIHJlcXVpcmVkIik7cmV0dXJuIGl9fX19LDY1MjkxOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg4NjA0OCkuRi5FUlJfSU5WQUxJRF9PUFRfVkFMVUU7cy5leHBvcnRzPXtnZXRIaWdoV2F0ZXJNYXJrOmZ1bmN0aW9uIGdldEhpZ2hXYXRlck1hcmsocyxvLGksdSl7dmFyIF89ZnVuY3Rpb24gaGlnaFdhdGVyTWFya0Zyb20ocyxvLGkpe3JldHVybiBudWxsIT1zLmhpZ2hXYXRlck1hcms/cy5oaWdoV2F0ZXJNYXJrOm8/c1tpXTpudWxsfShvLHUsaSk7aWYobnVsbCE9Xyl7aWYoIWlzRmluaXRlKF8pfHxNYXRoLmZsb29yKF8pIT09X3x8XzwwKXRocm93IG5ldyBhKHU/aToiaGlnaFdhdGVyTWFyayIsXyk7cmV0dXJuIE1hdGguZmxvb3IoXyl9cmV0dXJuIHMub2JqZWN0TW9kZT8xNjoxNjM4NH19fSw2NTQ4MjoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNDExNzYpO3MuZXhwb3J0cz1mdW5jdGlvbihzKXt2YXIgbz0rcztyZXR1cm4gbyE9b3x8MD09PW8/MDphKG8pfX0sNjU2MDY6cz0+e3ZhciBvLGksYT1zLmV4cG9ydHM9e307ZnVuY3Rpb24gZGVmYXVsdFNldFRpbW91dCgpe3Rocm93IG5ldyBFcnJvcigic2V0VGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCIpfWZ1bmN0aW9uIGRlZmF1bHRDbGVhclRpbWVvdXQoKXt0aHJvdyBuZXcgRXJyb3IoImNsZWFyVGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCIpfWZ1bmN0aW9uIHJ1blRpbWVvdXQocyl7aWYobz09PXNldFRpbWVvdXQpcmV0dXJuIHNldFRpbWVvdXQocywwKTtpZigobz09PWRlZmF1bHRTZXRUaW1vdXR8fCFvKSYmc2V0VGltZW91dClyZXR1cm4gbz1zZXRUaW1lb3V0LHNldFRpbWVvdXQocywwKTt0cnl7cmV0dXJuIG8ocywwKX1jYXRjaChpKXt0cnl7cmV0dXJuIG8uY2FsbChudWxsLHMsMCl9Y2F0Y2goaSl7cmV0dXJuIG8uY2FsbCh0aGlzLHMsMCl9fX0hZnVuY3Rpb24oKXt0cnl7bz0iZnVuY3Rpb24iPT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0OmRlZmF1bHRTZXRUaW1vdXR9Y2F0Y2gocyl7bz1kZWZhdWx0U2V0VGltb3V0fXRyeXtpPSJmdW5jdGlvbiI9PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0OmRlZmF1bHRDbGVhclRpbWVvdXR9Y2F0Y2gocyl7aT1kZWZhdWx0Q2xlYXJUaW1lb3V0fX0oKTt2YXIgdSxfPVtdLHc9ITEseD0tMTtmdW5jdGlvbiBjbGVhblVwTmV4dFRpY2soKXt3JiZ1JiYodz0hMSx1Lmxlbmd0aD9fPXUuY29uY2F0KF8pOng9LTEsXy5sZW5ndGgmJmRyYWluUXVldWUoKSl9ZnVuY3Rpb24gZHJhaW5RdWV1ZSgpe2lmKCF3KXt2YXIgcz1ydW5UaW1lb3V0KGNsZWFuVXBOZXh0VGljayk7dz0hMDtmb3IodmFyIG89Xy5sZW5ndGg7bzspe2Zvcih1PV8sXz1bXTsrK3g8bzspdSYmdVt4XS5ydW4oKTt4PS0xLG89Xy5sZW5ndGh9dT1udWxsLHc9ITEsZnVuY3Rpb24gcnVuQ2xlYXJUaW1lb3V0KHMpe2lmKGk9PT1jbGVhclRpbWVvdXQpcmV0dXJuIGNsZWFyVGltZW91dChzKTtpZigoaT09PWRlZmF1bHRDbGVhclRpbWVvdXR8fCFpKSYmY2xlYXJUaW1lb3V0KXJldHVybiBpPWNsZWFyVGltZW91dCxjbGVhclRpbWVvdXQocyk7dHJ5e3JldHVybiBpKHMpfWNhdGNoKG8pe3RyeXtyZXR1cm4gaS5jYWxsKG51bGwscyl9Y2F0Y2gobyl7cmV0dXJuIGkuY2FsbCh0aGlzLHMpfX19KHMpfX1mdW5jdGlvbiBJdGVtKHMsbyl7dGhpcy5mdW49cyx0aGlzLmFycmF5PW99ZnVuY3Rpb24gbm9vcCgpe31hLm5leHRUaWNrPWZ1bmN0aW9uKHMpe3ZhciBvPW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoLTEpO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSlmb3IodmFyIGk9MTtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKW9baS0xXT1hcmd1bWVudHNbaV07Xy5wdXNoKG5ldyBJdGVtKHMsbykpLDEhPT1fLmxlbmd0aHx8d3x8cnVuVGltZW91dChkcmFpblF1ZXVlKX0sSXRlbS5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKCl7dGhpcy5mdW4uYXBwbHkobnVsbCx0aGlzLmFycmF5KX0sYS50aXRsZT0iYnJvd3NlciIsYS5icm93c2VyPSEwLGEuZW52PXt9LGEuYXJndj1bXSxhLnZlcnNpb249IiIsYS52ZXJzaW9ucz17fSxhLm9uPW5vb3AsYS5hZGRMaXN0ZW5lcj1ub29wLGEub25jZT1ub29wLGEub2ZmPW5vb3AsYS5yZW1vdmVMaXN0ZW5lcj1ub29wLGEucmVtb3ZlQWxsTGlzdGVuZXJzPW5vb3AsYS5lbWl0PW5vb3AsYS5wcmVwZW5kTGlzdGVuZXI9bm9vcCxhLnByZXBlbmRPbmNlTGlzdGVuZXI9bm9vcCxhLmxpc3RlbmVycz1mdW5jdGlvbihzKXtyZXR1cm5bXX0sYS5iaW5kaW5nPWZ1bmN0aW9uKHMpe3Rocm93IG5ldyBFcnJvcigicHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWQiKX0sYS5jd2Q9ZnVuY3Rpb24oKXtyZXR1cm4iLyJ9LGEuY2hkaXI9ZnVuY3Rpb24ocyl7dGhyb3cgbmV3IEVycm9yKCJwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQiKX0sYS51bWFzaz1mdW5jdGlvbigpe3JldHVybiAwfX0sNjU3NzI6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBqc29uKHMpe2NvbnN0IG89e2xpdGVyYWw6InRydWUgZmFsc2UgbnVsbCJ9LGk9W3MuQ19MSU5FX0NPTU1FTlRfTU9ERSxzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXSxhPVtzLlFVT1RFX1NUUklOR19NT0RFLHMuQ19OVU1CRVJfTU9ERV0sdT17ZW5kOiIsIixlbmRzV2l0aFBhcmVudDohMCxleGNsdWRlRW5kOiEwLGNvbnRhaW5zOmEsa2V5d29yZHM6b30sXz17YmVnaW46L1x7LyxlbmQ6L1x9Lyxjb250YWluczpbe2NsYXNzTmFtZToiYXR0ciIsYmVnaW46LyIvLGVuZDovIi8sY29udGFpbnM6W3MuQkFDS1NMQVNIX0VTQ0FQRV0saWxsZWdhbDoiXFxuIn0scy5pbmhlcml0KHUse2JlZ2luOi86L30pXS5jb25jYXQoaSksaWxsZWdhbDoiXFxTIn0sdz17YmVnaW46IlxcWyIsZW5kOiJcXF0iLGNvbnRhaW5zOltzLmluaGVyaXQodSldLGlsbGVnYWw6IlxcUyJ9O3JldHVybiBhLnB1c2goXyx3KSxpLmZvckVhY2goKGZ1bmN0aW9uKHMpe2EucHVzaChzKX0pKSx7bmFtZToiSlNPTiIsY29udGFpbnM6YSxrZXl3b3JkczpvLGlsbGVnYWw6IlxcUyJ9fX0sNjY2NDU6KHMsbyxpKT0+e3ZhciBhPWkoMTczMyksdT1pKDQ1NDM0KSxfPWkoMTMyMjIpLHc9aSgyMjIyNSk7cy5leHBvcnRzPWZ1bmN0aW9uIHdvcmRzKHMsbyxpKXtyZXR1cm4gcz1fKHMpLHZvaWQgMD09PShvPWk/dm9pZCAwOm8pP3Uocyk/dyhzKTphKHMpOnMubWF0Y2gobyl8fFtdfX0sNjY3MjE6KHMsbyxpKT0+e3ZhciBhPWkoODEwNDIpLHU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtzLmV4cG9ydHM9ZnVuY3Rpb24gaGFzaEdldChzKXt2YXIgbz10aGlzLl9fZGF0YV9fO2lmKGEpe3ZhciBpPW9bc107cmV0dXJuIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iPT09aT92b2lkIDA6aX1yZXR1cm4gdS5jYWxsKG8scyk/b1tzXTp2b2lkIDB9fSw2Njk3NzoocyxvLGkpPT57dmFyIGE9aSg2ODg4MiksdT1pKDExODQyKSxfPWkoNzcwNzgpLHc9aSgzNzQ3MSkseD1pKDI0MTY4KSxDPWkoMzczODEpLGo9aSgzMjA5KSxMPWkoNTQ2NDEpLEI9aSg3MDk4MSksJD1pKDYxNDg5KSxWPU1hdGgubWF4O3MuZXhwb3J0cz1mdW5jdGlvbiBjcmVhdGVXcmFwKHMsbyxpLFUseixZLFosZWUpe3ZhciBpZT0yJm87aWYoIWllJiYiZnVuY3Rpb24iIT10eXBlb2Ygcyl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGZ1bmN0aW9uIik7dmFyIGFlPVU/VS5sZW5ndGg6MDtpZihhZXx8KG8mPS05NyxVPXo9dm9pZCAwKSxaPXZvaWQgMD09PVo/WjpWKCQoWiksMCksZWU9dm9pZCAwPT09ZWU/ZWU6JChlZSksYWUtPXo/ei5sZW5ndGg6MCw2NCZvKXt2YXIgY2U9VSxsZT16O1U9ej12b2lkIDB9dmFyIHBlPWllP3ZvaWQgMDpDKHMpLGRlPVtzLG8saSxVLHosY2UsbGUsWSxaLGVlXTtpZihwZSYmaihkZSxwZSkscz1kZVswXSxvPWRlWzFdLGk9ZGVbMl0sVT1kZVszXSx6PWRlWzRdLCEoZWU9ZGVbOV09dm9pZCAwPT09ZGVbOV0/aWU/MDpzLmxlbmd0aDpWKGRlWzldLWFlLDApKSYmMjQmbyYmKG8mPS0yNSksbyYmMSE9bylmZT04PT1vfHwxNj09bz9fKHMsbyxlZSk6MzIhPW8mJjMzIT1vfHx6Lmxlbmd0aD93LmFwcGx5KHZvaWQgMCxkZSk6eChzLG8saSxVKTtlbHNlIHZhciBmZT11KHMsbyxpKTtyZXR1cm4gQigocGU/YTpMKShmZSxkZSkscyxvKX19LDY3MTk3OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gbWF0Y2hlc1N0cmljdENvbXBhcmFibGUocyxvKXtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuIG51bGwhPWkmJihpW3NdPT09byYmKHZvaWQgMCE9PW98fHMgaW4gT2JqZWN0KGkpKSl9fX0sNjc1MjY6KHMsbyk9PnsidXNlIHN0cmljdCI7by5ieXRlTGVuZ3RoPWZ1bmN0aW9uIGJ5dGVMZW5ndGgocyl7dmFyIG89Z2V0TGVucyhzKSxpPW9bMF0sYT1vWzFdO3JldHVybiAzKihpK2EpLzQtYX0sby50b0J5dGVBcnJheT1mdW5jdGlvbiB0b0J5dGVBcnJheShzKXt2YXIgbyxpLF89Z2V0TGVucyhzKSx3PV9bMF0seD1fWzFdLEM9bmV3IHUoZnVuY3Rpb24gX2J5dGVMZW5ndGgocyxvLGkpe3JldHVybiAzKihvK2kpLzQtaX0oMCx3LHgpKSxqPTAsTD14PjA/dy00Onc7Zm9yKGk9MDtpPEw7aSs9NClvPWFbcy5jaGFyQ29kZUF0KGkpXTw8MTh8YVtzLmNoYXJDb2RlQXQoaSsxKV08PDEyfGFbcy5jaGFyQ29kZUF0KGkrMildPDw2fGFbcy5jaGFyQ29kZUF0KGkrMyldLENbaisrXT1vPj4xNiYyNTUsQ1tqKytdPW8+PjgmMjU1LENbaisrXT0yNTUmbzsyPT09eCYmKG89YVtzLmNoYXJDb2RlQXQoaSldPDwyfGFbcy5jaGFyQ29kZUF0KGkrMSldPj40LENbaisrXT0yNTUmbyk7MT09PXgmJihvPWFbcy5jaGFyQ29kZUF0KGkpXTw8MTB8YVtzLmNoYXJDb2RlQXQoaSsxKV08PDR8YVtzLmNoYXJDb2RlQXQoaSsyKV0+PjIsQ1tqKytdPW8+PjgmMjU1LENbaisrXT0yNTUmbyk7cmV0dXJuIEN9LG8uZnJvbUJ5dGVBcnJheT1mdW5jdGlvbiBmcm9tQnl0ZUFycmF5KHMpe2Zvcih2YXIgbyxhPXMubGVuZ3RoLHU9YSUzLF89W10sdz0xNjM4Myx4PTAsQz1hLXU7eDxDO3grPXcpXy5wdXNoKGVuY29kZUNodW5rKHMseCx4K3c+Qz9DOngrdykpOzE9PT11PyhvPXNbYS0xXSxfLnB1c2goaVtvPj4yXStpW288PDQmNjNdKyI9PSIpKToyPT09dSYmKG89KHNbYS0yXTw8OCkrc1thLTFdLF8ucHVzaChpW28+PjEwXStpW28+PjQmNjNdK2lbbzw8MiY2M10rIj0iKSk7cmV0dXJuIF8uam9pbigiIil9O2Zvcih2YXIgaT1bXSxhPVtdLHU9InVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5P1VpbnQ4QXJyYXk6QXJyYXksXz0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIsdz0wO3c8NjQ7Kyt3KWlbd109X1t3XSxhW18uY2hhckNvZGVBdCh3KV09dztmdW5jdGlvbiBnZXRMZW5zKHMpe3ZhciBvPXMubGVuZ3RoO2lmKG8lND4wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCIpO3ZhciBpPXMuaW5kZXhPZigiPSIpO3JldHVybi0xPT09aSYmKGk9byksW2ksaT09PW8/MDo0LWklNF19ZnVuY3Rpb24gZW5jb2RlQ2h1bmsocyxvLGEpe2Zvcih2YXIgdSxfLHc9W10seD1vO3g8YTt4Kz0zKXU9KHNbeF08PDE2JjE2NzExNjgwKSsoc1t4KzFdPDw4JjY1MjgwKSsoMjU1JnNbeCsyXSksdy5wdXNoKGlbKF89dSk+PjE4JjYzXStpW18+PjEyJjYzXStpW18+PjYmNjNdK2lbNjMmX10pO3JldHVybiB3LmpvaW4oIiIpfWFbIi0iLmNoYXJDb2RlQXQoMCldPTYyLGFbIl8iLmNoYXJDb2RlQXQoMCldPTYzfSw2ODA1NToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNjE2MjYpO3MuZXhwb3J0cz1mdW5jdGlvbihzLG8saSx1KXtyZXR1cm4gdSYmdS5lbnVtZXJhYmxlP3Nbb109aTphKHMsbyxpKSxzfX0sNjgwOTA6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBsYXN0KHMpe3ZhciBvPW51bGw9PXM/MDpzLmxlbmd0aDtyZXR1cm4gbz9zW28tMV06dm9pZCAwfX0sNjgyMjM6KHMsbyxpKT0+e3ZhciBhPWkoNTYxMTApKGkoOTMyNSksIk1hcCIpO3MuZXhwb3J0cz1hfSw2ODI5NDoocyxvLGkpPT57dmFyIGE9aSgyMzAwNyksdT1pKDMwMzYxKSxfPU1hdGgubWluO3MuZXhwb3J0cz1mdW5jdGlvbiByZW9yZGVyKHMsbyl7Zm9yKHZhciBpPXMubGVuZ3RoLHc9XyhvLmxlbmd0aCxpKSx4PWEocyk7dy0tOyl7dmFyIEM9b1t3XTtzW3ddPXUoQyxpKT94W0NdOnZvaWQgMH1yZXR1cm4gc319LDY4NjIzOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg2OTQpO3MuZXhwb3J0cz1hfSw2ODg4MjoocyxvLGkpPT57dmFyIGE9aSg4MzQ4OCksdT1pKDQ4MTUyKSxfPXU/ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdS5zZXQocyxvKSxzfTphO3MuZXhwb3J0cz1ffSw2ODk2OToocyxvLGkpPT57dmFyIGE9aSg0NzQyMiksdT1pKDI1MTYwKTtzLmV4cG9ydHM9ZnVuY3Rpb24gcGFyZW50KHMsbyl7cmV0dXJuIG8ubGVuZ3RoPDI/czphKHMsdShvLDAsLTEpKX19LDY5MzAyOihzLG8saSk9Pnt2YXIgYT1pKDgzNDg4KSx1PWkoNTY3NTcpLF89aSgzMjg2NSk7cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VSZXN0KHMsbyl7cmV0dXJuIF8odShzLG8sYSkscysiIil9fSw2OTg4NDoocyxvLGkpPT57dmFyIGE9aSgyMTc5MSksdT1pKDM3MjQxKTtzLmV4cG9ydHM9ZnVuY3Rpb24gdG9QbGFpbk9iamVjdChzKXtyZXR1cm4gYShzLHUocykpfX0sNjk5ODI6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0IjtzLmV4cG9ydHM9aSgyOTg0NCl9LDcwMDgwOihzLG8saSk9Pnt2YXIgYT1pKDI2MDI1KSx1PUFycmF5LnByb3RvdHlwZS5zcGxpY2U7cy5leHBvcnRzPWZ1bmN0aW9uIGxpc3RDYWNoZURlbGV0ZShzKXt2YXIgbz10aGlzLl9fZGF0YV9fLGk9YShvLHMpO3JldHVybiEoaTwwKSYmKGk9PW8ubGVuZ3RoLTE/by5wb3AoKTp1LmNhbGwobyxpLDEpLC0tdGhpcy5zaXplLCEwKX19LDcwNDcwOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg0NjAyOCksdT1pKDI1NTk0KTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyl7dmFyIG89YShzLCJzdHJpbmciKTtyZXR1cm4gdShvKT9vOm8rIiJ9fSw3MDY5NToocyxvLGkpPT57dmFyIGE9aSg3ODA5NiksdT1pKDcyNDI4KSxfPWkoNTY0NDkpLHc9aSgzNjU2KSx4PWkoMzAzNjEpLEM9aSgzNzE2Nyksaj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3MuZXhwb3J0cz1mdW5jdGlvbiBhcnJheUxpa2VLZXlzKHMsbyl7dmFyIGk9XyhzKSxMPSFpJiZ1KHMpLEI9IWkmJiFMJiZ3KHMpLCQ9IWkmJiFMJiYhQiYmQyhzKSxWPWl8fEx8fEJ8fCQsVT1WP2Eocy5sZW5ndGgsU3RyaW5nKTpbXSx6PVUubGVuZ3RoO2Zvcih2YXIgWSBpbiBzKSFvJiYhai5jYWxsKHMsWSl8fFYmJigibGVuZ3RoIj09WXx8QiYmKCJvZmZzZXQiPT1ZfHwicGFyZW50Ij09WSl8fCQmJigiYnVmZmVyIj09WXx8ImJ5dGVMZW5ndGgiPT1ZfHwiYnl0ZU9mZnNldCI9PVkpfHx4KFkseikpfHxVLnB1c2goWSk7cmV0dXJuIFV9fSw3MDk4MToocyxvLGkpPT57dmFyIGE9aSg3NTI1MSksdT1pKDYyMDYwKSxfPWkoMzI4NjUpLHc9aSg3NTk0OCk7cy5leHBvcnRzPWZ1bmN0aW9uIHNldFdyYXBUb1N0cmluZyhzLG8saSl7dmFyIHg9bysiIjtyZXR1cm4gXyhzLHUoeCx3KGEoeCksaSkpKX19LDcxMTY3OihzLG8saSk9Pntjb25zdCBhPWkoMTAzMTYpO3MuZXhwb3J0cz1jbGFzcyBTdHJpbmdFbGVtZW50IGV4dGVuZHMgYXtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0ic3RyaW5nIn1wcmltaXRpdmUoKXtyZXR1cm4ic3RyaW5nIn1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuY29udGVudC5sZW5ndGh9fX0sNzEzNDA6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDExMDkxKSx1PWkoMjk1MzgpO2Eoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGFyaXR5OjIsZm9yY2VkOk9iamVjdC5hc3NpZ24hPT11fSx7YXNzaWduOnV9KX0sNzE5NjE6KHMsbyxpKT0+e3ZhciBhPWkoNDk2NTMpO3MuZXhwb3J0cz1mdW5jdGlvbiBjbG9uZVR5cGVkQXJyYXkocyxvKXt2YXIgaT1vP2Eocy5idWZmZXIpOnMuYnVmZmVyO3JldHVybiBuZXcgcy5jb25zdHJ1Y3RvcihpLHMuYnl0ZU9mZnNldCxzLmxlbmd0aCl9fSw3MjQyODoocyxvLGkpPT57dmFyIGE9aSgyNzUzNCksdT1pKDQwMzQ2KSxfPU9iamVjdC5wcm90b3R5cGUsdz1fLmhhc093blByb3BlcnR5LHg9Xy5wcm9wZXJ0eUlzRW51bWVyYWJsZSxDPWEoZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKT9hOmZ1bmN0aW9uKHMpe3JldHVybiB1KHMpJiZ3LmNhbGwocywiY2FsbGVlIikmJiF4LmNhbGwocywiY2FsbGVlIil9O3MuZXhwb3J0cz1DfSw3MjU1MjoocyxvLGkpPT57dmFyIGE9aSg1MTg3MyksdT1pKDY1OSksXz1pKDU5MzUwKSx3PWE/YS50b1N0cmluZ1RhZzp2b2lkIDA7cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VHZXRUYWcocyl7cmV0dXJuIG51bGw9PXM/dm9pZCAwPT09cz8iW29iamVjdCBVbmRlZmluZWRdIjoiW29iamVjdCBOdWxsXSI6dyYmdyBpbiBPYmplY3Qocyk/dShzKTpfKHMpfX0sNzI5MDM6KHMsbyxpKT0+e3ZhciBhPWkoMjM4MDUpLHU9aSg1NTUyNyksXz1pKDkwMTgxKSx3PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VLZXlzSW4ocyl7aWYoIWEocykpcmV0dXJuIF8ocyk7dmFyIG89dShzKSxpPVtdO2Zvcih2YXIgeCBpbiBzKSgiY29uc3RydWN0b3IiIT14fHwhbyYmdy5jYWxsKHMseCkpJiZpLnB1c2goeCk7cmV0dXJuIGl9fSw3Mjk0OToocyxvLGkpPT57dmFyIGE9aSgxMjY1MSk7cy5leHBvcnRzPWZ1bmN0aW9uIG1hcENhY2hlU2V0KHMsbyl7dmFyIGk9YSh0aGlzLHMpLHU9aS5zaXplO3JldHVybiBpLnNldChzLG8pLHRoaXMuc2l6ZSs9aS5zaXplPT11PzA6MSx0aGlzfX0sNzMxNzA6KHMsbyxpKT0+e3ZhciBhPWkoMTY1NDcpLHU9aSgzMTc2OSksXz1pKDMwMzYxKSx3PWkoMjM4MDUpLHg9aSg3Nzc5Nyk7cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VTZXQocyxvLGksQyl7aWYoIXcocykpcmV0dXJuIHM7Zm9yKHZhciBqPS0xLEw9KG89dShvLHMpKS5sZW5ndGgsQj1MLTEsJD1zO251bGwhPSQmJisrajxMOyl7dmFyIFY9eChvW2pdKSxVPWk7aWYoIl9fcHJvdG9fXyI9PT1WfHwiY29uc3RydWN0b3IiPT09Vnx8InByb3RvdHlwZSI9PT1WKXJldHVybiBzO2lmKGohPUIpe3ZhciB6PSRbVl07dm9pZCAwPT09KFU9Qz9DKHosViwkKTp2b2lkIDApJiYoVT13KHopP3o6XyhvW2orMV0pP1tdOnt9KX1hKCQsVixVKSwkPSRbVl19cmV0dXJuIHN9fSw3MzIwMTpzPT57dmFyIG89L1x3KiQvO3MuZXhwb3J0cz1mdW5jdGlvbiBjbG9uZVJlZ0V4cChzKXt2YXIgaT1uZXcgcy5jb25zdHJ1Y3RvcihzLnNvdXJjZSxvLmV4ZWMocykpO3JldHVybiBpLmxhc3RJbmRleD1zLmxhc3RJbmRleCxpfX0sNzM0MDI6cz0+e2Z1bmN0aW9uIGNvbmNhdCguLi5zKXtyZXR1cm4gcy5tYXAoKHM9PmZ1bmN0aW9uIHNvdXJjZShzKXtyZXR1cm4gcz8ic3RyaW5nIj09dHlwZW9mIHM/czpzLnNvdXJjZTpudWxsfShzKSkpLmpvaW4oIiIpfXMuZXhwb3J0cz1mdW5jdGlvbiBodHRwKHMpe2NvbnN0IG89IkhUVFAvKDJ8MVxcLlswMV0pIixpPXtjbGFzc05hbWU6ImF0dHJpYnV0ZSIsYmVnaW46Y29uY2F0KCJeIiwvW0EtWmEtel1bQS1aYS16MC05LV0qLywiKD89XFw6XFxzKSIpLHN0YXJ0czp7Y29udGFpbnM6W3tjbGFzc05hbWU6InB1bmN0dWF0aW9uIixiZWdpbjovOiAvLHJlbGV2YW5jZTowLHN0YXJ0czp7ZW5kOiIkIixyZWxldmFuY2U6MH19XX19LGE9W2kse2JlZ2luOiJcXG5cXG4iLHN0YXJ0czp7c3ViTGFuZ3VhZ2U6W10sZW5kc1dpdGhQYXJlbnQ6ITB9fV07cmV0dXJue25hbWU6IkhUVFAiLGFsaWFzZXM6WyJodHRwcyJdLGlsbGVnYWw6L1xTLyxjb250YWluczpbe2JlZ2luOiJeKD89IitvKyIgXFxkezN9KSIsZW5kOi8kLyxjb250YWluczpbe2NsYXNzTmFtZToibWV0YSIsYmVnaW46b30se2NsYXNzTmFtZToibnVtYmVyIixiZWdpbjoiXFxiXFxkezN9XFxiIn1dLHN0YXJ0czp7ZW5kOi9cYlxCLyxpbGxlZ2FsOi9cUy8sY29udGFpbnM6YX19LHtiZWdpbjoiKD89XltBLVpdKyAoLio/KSAiK28rIiQpIixlbmQ6LyQvLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiIgIixlbmQ6IiAiLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwfSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjpvfSx7Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjoiW0EtWl0rIn1dLHN0YXJ0czp7ZW5kOi9cYlxCLyxpbGxlZ2FsOi9cUy8sY29udGFpbnM6YX19LHMuaW5oZXJpdChpLHtyZWxldmFuY2U6MH0pXX19fSw3MzQyNDoocyxvLGkpPT57dmFyIGE9aSgxNjk2MiksdT1pKDI4NzQpLF89QXJyYXkucHJvdG90eXBlLnB1c2g7ZnVuY3Rpb24gYmFzZUFyeShzLG8pe3JldHVybiAyPT1vP2Z1bmN0aW9uKG8saSl7cmV0dXJuIHMobyxpKX06ZnVuY3Rpb24obyl7cmV0dXJuIHMobyl9fWZ1bmN0aW9uIGNsb25lQXJyYXkocyl7Zm9yKHZhciBvPXM/cy5sZW5ndGg6MCxpPUFycmF5KG8pO28tLTspaVtvXT1zW29dO3JldHVybiBpfWZ1bmN0aW9uIHdyYXBJbW11dGFibGUocyxvKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoO2lmKGkpe2Zvcih2YXIgYT1BcnJheShpKTtpLS07KWFbaV09YXJndW1lbnRzW2ldO3ZhciB1PWFbMF09by5hcHBseSh2b2lkIDAsYSk7cmV0dXJuIHMuYXBwbHkodm9pZCAwLGEpLHV9fX1zLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZUNvbnZlcnQocyxvLGksdyl7dmFyIHg9ImZ1bmN0aW9uIj09dHlwZW9mIG8sQz1vPT09T2JqZWN0KG8pO2lmKEMmJih3PWksaT1vLG89dm9pZCAwKSxudWxsPT1pKXRocm93IG5ldyBUeXBlRXJyb3I7d3x8KHc9e30pO3ZhciBqPSEoImNhcCJpbiB3KXx8dy5jYXAsTD0hKCJjdXJyeSJpbiB3KXx8dy5jdXJyeSxCPSEoImZpeGVkImluIHcpfHx3LmZpeGVkLCQ9ISgiaW1tdXRhYmxlImluIHcpfHx3LmltbXV0YWJsZSxWPSEoInJlYXJnImluIHcpfHx3LnJlYXJnLFU9eD9pOnUsej0iY3VycnkiaW4gdyYmdy5jdXJyeSxZPSJmaXhlZCJpbiB3JiZ3LmZpeGVkLFo9InJlYXJnImluIHcmJncucmVhcmcsZWU9eD9pLnJ1bkluQ29udGV4dCgpOnZvaWQgMCxpZT14P2k6e2FyeTpzLmFyeSxhc3NpZ246cy5hc3NpZ24sY2xvbmU6cy5jbG9uZSxjdXJyeTpzLmN1cnJ5LGZvckVhY2g6cy5mb3JFYWNoLGlzQXJyYXk6cy5pc0FycmF5LGlzRXJyb3I6cy5pc0Vycm9yLGlzRnVuY3Rpb246cy5pc0Z1bmN0aW9uLGlzV2Vha01hcDpzLmlzV2Vha01hcCxpdGVyYXRlZTpzLml0ZXJhdGVlLGtleXM6cy5rZXlzLHJlYXJnOnMucmVhcmcsdG9JbnRlZ2VyOnMudG9JbnRlZ2VyLHRvUGF0aDpzLnRvUGF0aH0sYWU9aWUuYXJ5LGNlPWllLmFzc2lnbixsZT1pZS5jbG9uZSxwZT1pZS5jdXJyeSxkZT1pZS5mb3JFYWNoLGZlPWllLmlzQXJyYXkseWU9aWUuaXNFcnJvcixiZT1pZS5pc0Z1bmN0aW9uLF9lPWllLmlzV2Vha01hcCxTZT1pZS5rZXlzLHdlPWllLnJlYXJnLHhlPWllLnRvSW50ZWdlcixQZT1pZS50b1BhdGgsVGU9U2UoYS5hcnlNZXRob2QpLFJlPXtjYXN0QXJyYXk6ZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89YXJndW1lbnRzWzBdO3JldHVybiBmZShvKT9zKGNsb25lQXJyYXkobykpOnMuYXBwbHkodm9pZCAwLGFyZ3VtZW50cyl9fSxpdGVyYXRlZTpmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1hcmd1bWVudHNbMV0saT1zKGFyZ3VtZW50c1swXSxvKSxhPWkubGVuZ3RoO3JldHVybiBqJiYibnVtYmVyIj09dHlwZW9mIG8/KG89bz4yP28tMjoxLGEmJmE8PW8/aTpiYXNlQXJ5KGksbykpOml9fSxtaXhpbjpmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24obyl7dmFyIGk9dGhpcztpZighYmUoaSkpcmV0dXJuIHMoaSxPYmplY3QobykpO3ZhciBhPVtdO3JldHVybiBkZShTZShvKSwoZnVuY3Rpb24ocyl7YmUob1tzXSkmJmEucHVzaChbcyxpLnByb3RvdHlwZVtzXV0pfSkpLHMoaSxPYmplY3QobykpLGRlKGEsKGZ1bmN0aW9uKHMpe3ZhciBvPXNbMV07YmUobyk/aS5wcm90b3R5cGVbc1swXV09bzpkZWxldGUgaS5wcm90b3R5cGVbc1swXV19KSksaX19LG50aEFyZzpmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24obyl7dmFyIGk9bzwwPzE6eGUobykrMTtyZXR1cm4gcGUocyhvKSxpKX19LHJlYXJnOmZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbihvLGkpe3ZhciBhPWk/aS5sZW5ndGg6MDtyZXR1cm4gcGUocyhvLGkpLGEpfX0scnVuSW5Db250ZXh0OmZ1bmN0aW9uKG8pe3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4gYmFzZUNvbnZlcnQocyxvKGkpLHcpfX19O2Z1bmN0aW9uIGNhc3RDYXAocyxvKXtpZihqKXt2YXIgaT1hLml0ZXJhdGVlUmVhcmdbc107aWYoaSlyZXR1cm4gZnVuY3Rpb24gaXRlcmF0ZWVSZWFyZyhzLG8pe3JldHVybiBvdmVyQXJnKHMsKGZ1bmN0aW9uKHMpe3ZhciBpPW8ubGVuZ3RoO3JldHVybiBmdW5jdGlvbiBiYXNlQXJpdHkocyxvKXtyZXR1cm4gMj09bz9mdW5jdGlvbihvLGkpe3JldHVybiBzLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfTpmdW5jdGlvbihvKXtyZXR1cm4gcy5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX19KHdlKGJhc2VBcnkocyxpKSxvKSxpKX0pKX0obyxpKTt2YXIgdT0heCYmYS5pdGVyYXRlZUFyeVtzXTtpZih1KXJldHVybiBmdW5jdGlvbiBpdGVyYXRlZUFyeShzLG8pe3JldHVybiBvdmVyQXJnKHMsKGZ1bmN0aW9uKHMpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBzP2Jhc2VBcnkocyxvKTpzfSkpfShvLHUpfXJldHVybiBvfWZ1bmN0aW9uIGNhc3RGaXhlZChzLG8saSl7aWYoQiYmKFl8fCFhLnNraXBGaXhlZFtzXSkpe3ZhciB1PWEubWV0aG9kU3ByZWFkW3NdLHc9dSYmdS5zdGFydDtyZXR1cm4gdm9pZCAwPT09dz9hZShvLGkpOmZ1bmN0aW9uIGZsYXRTcHJlYWQocyxvKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aCxhPWktMSx1PUFycmF5KGkpO2ktLTspdVtpXT1hcmd1bWVudHNbaV07dmFyIHc9dVtvXSx4PXUuc2xpY2UoMCxvKTtyZXR1cm4gdyYmXy5hcHBseSh4LHcpLG8hPWEmJl8uYXBwbHkoeCx1LnNsaWNlKG8rMSkpLHMuYXBwbHkodGhpcyx4KX19KG8sdyl9cmV0dXJuIG99ZnVuY3Rpb24gY2FzdFJlYXJnKHMsbyxpKXtyZXR1cm4gViYmaT4xJiYoWnx8IWEuc2tpcFJlYXJnW3NdKT93ZShvLGEubWV0aG9kUmVhcmdbc118fGEuYXJ5UmVhcmdbaV0pOm99ZnVuY3Rpb24gY2xvbmVCeVBhdGgocyxvKXtmb3IodmFyIGk9LTEsYT0obz1QZShvKSkubGVuZ3RoLHU9YS0xLF89bGUoT2JqZWN0KHMpKSx3PV87bnVsbCE9dyYmKytpPGE7KXt2YXIgeD1vW2ldLEM9d1t4XTtudWxsPT1DfHxiZShDKXx8eWUoQyl8fF9lKEMpfHwod1t4XT1sZShpPT11P0M6T2JqZWN0KEMpKSksdz13W3hdfXJldHVybiBffWZ1bmN0aW9uIGNyZWF0ZUNvbnZlcnRlcihzLG8pe3ZhciBpPWEuYWxpYXNUb1JlYWxbc118fHMsdT1hLnJlbWFwW2ldfHxpLF89dztyZXR1cm4gZnVuY3Rpb24ocyl7dmFyIGE9eD9lZTppZSx3PXg/ZWVbdV06byxDPWNlKGNlKHt9LF8pLHMpO3JldHVybiBiYXNlQ29udmVydChhLGksdyxDKX19ZnVuY3Rpb24gb3ZlckFyZyhzLG8pe3JldHVybiBmdW5jdGlvbigpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg7aWYoIWkpcmV0dXJuIHMoKTtmb3IodmFyIGE9QXJyYXkoaSk7aS0tOylhW2ldPWFyZ3VtZW50c1tpXTt2YXIgdT1WPzA6aS0xO3JldHVybiBhW3VdPW8oYVt1XSkscy5hcHBseSh2b2lkIDAsYSl9fWZ1bmN0aW9uIHdyYXAocyxvLGkpe3ZhciB1LF89YS5hbGlhc1RvUmVhbFtzXXx8cyx3PW8seD1SZVtfXTtyZXR1cm4geD93PXgobyk6JCYmKGEubXV0YXRlLmFycmF5W19dP3c9d3JhcEltbXV0YWJsZShvLGNsb25lQXJyYXkpOmEubXV0YXRlLm9iamVjdFtfXT93PXdyYXBJbW11dGFibGUobyxmdW5jdGlvbiBjcmVhdGVDbG9uZXIocyl7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBzKHt9LG8pfX0obykpOmEubXV0YXRlLnNldFtfXSYmKHc9d3JhcEltbXV0YWJsZShvLGNsb25lQnlQYXRoKSkpLGRlKFRlLChmdW5jdGlvbihzKXtyZXR1cm4gZGUoYS5hcnlNZXRob2Rbc10sKGZ1bmN0aW9uKG8pe2lmKF89PW8pe3ZhciBpPWEubWV0aG9kU3ByZWFkW19dLHg9aSYmaS5hZnRlclJlYXJnO3JldHVybiB1PXg/Y2FzdEZpeGVkKF8sY2FzdFJlYXJnKF8sdyxzKSxzKTpjYXN0UmVhcmcoXyxjYXN0Rml4ZWQoXyx3LHMpLHMpLHU9ZnVuY3Rpb24gY2FzdEN1cnJ5KHMsbyxpKXtyZXR1cm4genx8TCYmaT4xP3BlKG8saSk6b30oMCx1PWNhc3RDYXAoXyx1KSxzKSwhMX19KSksIXV9KSksdXx8KHU9dyksdT09byYmKHU9ej9wZSh1LDEpOmZ1bmN0aW9uKCl7cmV0dXJuIG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfSksdS5jb252ZXJ0PWNyZWF0ZUNvbnZlcnRlcihfLG8pLHUucGxhY2Vob2xkZXI9by5wbGFjZWhvbGRlcj1pLHV9aWYoIUMpcmV0dXJuIHdyYXAobyxpLFUpO3ZhciAkZT1pLHFlPVtdO3JldHVybiBkZShUZSwoZnVuY3Rpb24ocyl7ZGUoYS5hcnlNZXRob2Rbc10sKGZ1bmN0aW9uKHMpe3ZhciBvPSRlW2EucmVtYXBbc118fHNdO28mJnFlLnB1c2goW3Msd3JhcChzLG8sJGUpXSl9KSl9KSksZGUoU2UoJGUpLChmdW5jdGlvbihzKXt2YXIgbz0kZVtzXTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygbyl7Zm9yKHZhciBpPXFlLmxlbmd0aDtpLS07KWlmKHFlW2ldWzBdPT1zKXJldHVybjtvLmNvbnZlcnQ9Y3JlYXRlQ29udmVydGVyKHMsbykscWUucHVzaChbcyxvXSl9fSkpLGRlKHFlLChmdW5jdGlvbihzKXskZVtzWzBdXT1zWzFdfSkpLCRlLmNvbnZlcnQ9ZnVuY3Rpb24gY29udmVydExpYihzKXtyZXR1cm4gJGUucnVuSW5Db250ZXh0LmNvbnZlcnQocykodm9pZCAwKX0sJGUucGxhY2Vob2xkZXI9JGUsZGUoU2UoJGUpLChmdW5jdGlvbihzKXtkZShhLnJlYWxUb0FsaWFzW3NdfHxbXSwoZnVuY3Rpb24obyl7JGVbb109JGVbc119KSl9KSksJGV9fSw3MzQ0ODoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNzM5NDgpLHU9aSgyOTM2NyksXz1pKDg3MTM2KSx3PWkoOTM3NDIpLHg9aSg3NjI2NCkoIml0ZXJhdG9yIik7cy5leHBvcnRzPWZ1bmN0aW9uKHMpe2lmKCFfKHMpKXJldHVybiB1KHMseCl8fHUocywiQEBpdGVyYXRvciIpfHx3W2EocyldfX0sNzM2NDg6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDM5NDQ3KSx1PWkoOTg4MjgpLF89aSg0OTU1Mik7cy5leHBvcnRzPSFhJiYhdSgoZnVuY3Rpb24oKXtyZXR1cm4gNyE9PU9iamVjdC5kZWZpbmVQcm9wZXJ0eShfKCJkaXYiKSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pLmF9KSl9LDczOTQ4OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg1MjYyMyksdT1pKDYyMjUwKSxfPWkoNDU4MDcpLHc9aSg3NjI2NCkoInRvU3RyaW5nVGFnIikseD1PYmplY3QsQz0iQXJndW1lbnRzIj09PV8oZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKTtzLmV4cG9ydHM9YT9fOmZ1bmN0aW9uKHMpe3ZhciBvLGksYTtyZXR1cm4gdm9pZCAwPT09cz8iVW5kZWZpbmVkIjpudWxsPT09cz8iTnVsbCI6InN0cmluZyI9PXR5cGVvZihpPWZ1bmN0aW9uKHMsbyl7dHJ5e3JldHVybiBzW29dfWNhdGNoKHMpe319KG89eChzKSx3KSk/aTpDP18obyk6Ik9iamVjdCI9PT0oYT1fKG8pKSYmdShvLmNhbGxlZSk/IkFyZ3VtZW50cyI6YX19LDczOTkyOihzLG8pPT57InVzZSBzdHJpY3QiO3ZhciBpPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gZGVjb2RlKHMpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHMucmVwbGFjZSgvXCsvZywiICIpKX1jYXRjaChzKXtyZXR1cm4gbnVsbH19ZnVuY3Rpb24gZW5jb2RlKHMpe3RyeXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHMpfWNhdGNoKHMpe3JldHVybiBudWxsfX1vLnN0cmluZ2lmeT1mdW5jdGlvbiBxdWVyeXN0cmluZ2lmeShzLG8pe289b3x8IiI7dmFyIGEsdSxfPVtdO2Zvcih1IGluInN0cmluZyIhPXR5cGVvZiBvJiYobz0iPyIpLHMpaWYoaS5jYWxsKHMsdSkpe2lmKChhPXNbdV0pfHxudWxsIT1hJiYhaXNOYU4oYSl8fChhPSIiKSx1PWVuY29kZSh1KSxhPWVuY29kZShhKSxudWxsPT09dXx8bnVsbD09PWEpY29udGludWU7Xy5wdXNoKHUrIj0iK2EpfXJldHVybiBfLmxlbmd0aD9vK18uam9pbigiJiIpOiIifSxvLnBhcnNlPWZ1bmN0aW9uIHF1ZXJ5c3RyaW5nKHMpe2Zvcih2YXIgbyxpPS8oW149PyMmXSspPT8oW14mXSopL2csYT17fTtvPWkuZXhlYyhzKTspe3ZhciB1PWRlY29kZShvWzFdKSxfPWRlY29kZShvWzJdKTtudWxsPT09dXx8bnVsbD09PV98fHUgaW4gYXx8KGFbdV09Xyl9cmV0dXJuIGF9fSw3NDIxODpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIGlzS2V5YWJsZShzKXt2YXIgbz10eXBlb2YgcztyZXR1cm4ic3RyaW5nIj09b3x8Im51bWJlciI9PW98fCJzeW1ib2wiPT1vfHwiYm9vbGVhbiI9PW8/Il9fcHJvdG9fXyIhPT1zOm51bGw9PT1zfX0sNzQyMzk6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDg3MTM2KSx1PVR5cGVFcnJvcjtzLmV4cG9ydHM9ZnVuY3Rpb24ocyl7aWYoYShzKSl0aHJvdyBuZXcgdSgiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIitzKTtyZXR1cm4gc319LDc0Mjg0OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgzOTQ0NyksdT1pKDczNjQ4KSxfPWkoNTg2NjEpLHc9aSgzNjYyNCkseD1pKDcwNDcwKSxDPVR5cGVFcnJvcixqPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxMPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsQj0iZW51bWVyYWJsZSIsJD0iY29uZmlndXJhYmxlIixWPSJ3cml0YWJsZSI7by5mPWE/Xz9mdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShzLG8saSl7aWYodyhzKSxvPXgobyksdyhpKSwiZnVuY3Rpb24iPT10eXBlb2YgcyYmInByb3RvdHlwZSI9PT1vJiYidmFsdWUiaW4gaSYmViBpbiBpJiYhaVtWXSl7dmFyIGE9TChzLG8pO2EmJmFbVl0mJihzW29dPWkudmFsdWUsaT17Y29uZmlndXJhYmxlOiQgaW4gaT9pWyRdOmFbJF0sZW51bWVyYWJsZTpCIGluIGk/aVtCXTphW0JdLHdyaXRhYmxlOiExfSl9cmV0dXJuIGoocyxvLGkpfTpqOmZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KHMsbyxpKXtpZih3KHMpLG89eChvKSx3KGkpLHUpdHJ5e3JldHVybiBqKHMsbyxpKX1jYXRjaChzKXt9aWYoImdldCJpbiBpfHwic2V0ImluIGkpdGhyb3cgbmV3IEMoIkFjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIik7cmV0dXJuInZhbHVlImluIGkmJihzW29dPWkudmFsdWUpLHN9fSw3NDMzNTpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIG92ZXJBcmcocyxvKXtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuIHMobyhpKSl9fX0sNzQ0MzY6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDQ5OTMpLHU9aSgzNDg0OSksXz1pKDIwNTc1KSxjcmVhdGVNZXRob2Q9ZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uKG8saSx3KXt2YXIgeD1hKG8pLEM9Xyh4KTtpZigwPT09QylyZXR1cm4hcyYmLTE7dmFyIGosTD11KHcsQyk7aWYocyYmaSE9aSl7Zm9yKDtDPkw7KWlmKChqPXhbTCsrXSkhPWopcmV0dXJuITB9ZWxzZSBmb3IoO0M+TDtMKyspaWYoKHN8fEwgaW4geCkmJnhbTF09PT1pKXJldHVybiBzfHxMfHwwO3JldHVybiFzJiYtMX19O3MuZXhwb3J0cz17aW5jbHVkZXM6Y3JlYXRlTWV0aG9kKCEwKSxpbmRleE9mOmNyZWF0ZU1ldGhvZCghMSl9fSw3NDYxMDoocyxvLGkpPT57InVzZSBzdHJpY3QiO3MuZXhwb3J0cz1UcmFuc2Zvcm07dmFyIGE9aSg4NjA0OCkuRix1PWEuRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQsXz1hLkVSUl9NVUxUSVBMRV9DQUxMQkFDSyx3PWEuRVJSX1RSQU5TRk9STV9BTFJFQURZX1RSQU5TRk9STUlORyx4PWEuRVJSX1RSQU5TRk9STV9XSVRIX0xFTkdUSF8wLEM9aSgyNTM4Mik7ZnVuY3Rpb24gYWZ0ZXJUcmFuc2Zvcm0ocyxvKXt2YXIgaT10aGlzLl90cmFuc2Zvcm1TdGF0ZTtpLnRyYW5zZm9ybWluZz0hMTt2YXIgYT1pLndyaXRlY2I7aWYobnVsbD09PWEpcmV0dXJuIHRoaXMuZW1pdCgiZXJyb3IiLG5ldyBfKTtpLndyaXRlY2h1bms9bnVsbCxpLndyaXRlY2I9bnVsbCxudWxsIT1vJiZ0aGlzLnB1c2gobyksYShzKTt2YXIgdT10aGlzLl9yZWFkYWJsZVN0YXRlO3UucmVhZGluZz0hMSwodS5uZWVkUmVhZGFibGV8fHUubGVuZ3RoPHUuaGlnaFdhdGVyTWFyaykmJnRoaXMuX3JlYWQodS5oaWdoV2F0ZXJNYXJrKX1mdW5jdGlvbiBUcmFuc2Zvcm0ocyl7aWYoISh0aGlzIGluc3RhbmNlb2YgVHJhbnNmb3JtKSlyZXR1cm4gbmV3IFRyYW5zZm9ybShzKTtDLmNhbGwodGhpcyxzKSx0aGlzLl90cmFuc2Zvcm1TdGF0ZT17YWZ0ZXJUcmFuc2Zvcm06YWZ0ZXJUcmFuc2Zvcm0uYmluZCh0aGlzKSxuZWVkVHJhbnNmb3JtOiExLHRyYW5zZm9ybWluZzohMSx3cml0ZWNiOm51bGwsd3JpdGVjaHVuazpudWxsLHdyaXRlZW5jb2Rpbmc6bnVsbH0sdGhpcy5fcmVhZGFibGVTdGF0ZS5uZWVkUmVhZGFibGU9ITAsdGhpcy5fcmVhZGFibGVTdGF0ZS5zeW5jPSExLHMmJigiZnVuY3Rpb24iPT10eXBlb2Ygcy50cmFuc2Zvcm0mJih0aGlzLl90cmFuc2Zvcm09cy50cmFuc2Zvcm0pLCJmdW5jdGlvbiI9PXR5cGVvZiBzLmZsdXNoJiYodGhpcy5fZmx1c2g9cy5mbHVzaCkpLHRoaXMub24oInByZWZpbmlzaCIscHJlZmluaXNoKX1mdW5jdGlvbiBwcmVmaW5pc2goKXt2YXIgcz10aGlzOyJmdW5jdGlvbiIhPXR5cGVvZiB0aGlzLl9mbHVzaHx8dGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ/ZG9uZSh0aGlzLG51bGwsbnVsbCk6dGhpcy5fZmx1c2goKGZ1bmN0aW9uKG8saSl7ZG9uZShzLG8saSl9KSl9ZnVuY3Rpb24gZG9uZShzLG8saSl7aWYobylyZXR1cm4gcy5lbWl0KCJlcnJvciIsbyk7aWYobnVsbCE9aSYmcy5wdXNoKGkpLHMuX3dyaXRhYmxlU3RhdGUubGVuZ3RoKXRocm93IG5ldyB4O2lmKHMuX3RyYW5zZm9ybVN0YXRlLnRyYW5zZm9ybWluZyl0aHJvdyBuZXcgdztyZXR1cm4gcy5wdXNoKG51bGwpfWkoNTY2OTgpKFRyYW5zZm9ybSxDKSxUcmFuc2Zvcm0ucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdGhpcy5fdHJhbnNmb3JtU3RhdGUubmVlZFRyYW5zZm9ybT0hMSxDLnByb3RvdHlwZS5wdXNoLmNhbGwodGhpcyxzLG8pfSxUcmFuc2Zvcm0ucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24ocyxvLGkpe2kobmV3IHUoIl90cmFuc2Zvcm0oKSIpKX0sVHJhbnNmb3JtLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24ocyxvLGkpe3ZhciBhPXRoaXMuX3RyYW5zZm9ybVN0YXRlO2lmKGEud3JpdGVjYj1pLGEud3JpdGVjaHVuaz1zLGEud3JpdGVlbmNvZGluZz1vLCFhLnRyYW5zZm9ybWluZyl7dmFyIHU9dGhpcy5fcmVhZGFibGVTdGF0ZTsoYS5uZWVkVHJhbnNmb3JtfHx1Lm5lZWRSZWFkYWJsZXx8dS5sZW5ndGg8dS5oaWdoV2F0ZXJNYXJrKSYmdGhpcy5fcmVhZCh1LmhpZ2hXYXRlck1hcmspfX0sVHJhbnNmb3JtLnByb3RvdHlwZS5fcmVhZD1mdW5jdGlvbihzKXt2YXIgbz10aGlzLl90cmFuc2Zvcm1TdGF0ZTtudWxsPT09by53cml0ZWNodW5rfHxvLnRyYW5zZm9ybWluZz9vLm5lZWRUcmFuc2Zvcm09ITA6KG8udHJhbnNmb3JtaW5nPSEwLHRoaXMuX3RyYW5zZm9ybShvLndyaXRlY2h1bmssby53cml0ZWVuY29kaW5nLG8uYWZ0ZXJUcmFuc2Zvcm0pKX0sVHJhbnNmb3JtLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihzLG8pe0MucHJvdG90eXBlLl9kZXN0cm95LmNhbGwodGhpcyxzLChmdW5jdGlvbihzKXtvKHMpfSkpfX0sNzQ3MzM6KHMsbyxpKT0+e3ZhciBhPWkoMjE3OTEpLHU9aSg5NTk1MCk7cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VBc3NpZ24ocyxvKXtyZXR1cm4gcyYmYShvLHUobykscyl9fSw3NTE0NzoocyxvLGkpPT57Y29uc3QgYT1pKDg1MTA1KTtzLmV4cG9ydHM9Y2xhc3MgSlNPTjA2U2VyaWFsaXNlciBleHRlbmRzIGF7c2VyaWFsaXNlKHMpe2lmKCEocyBpbnN0YW5jZW9mIHRoaXMubmFtZXNwYWNlLmVsZW1lbnRzLkVsZW1lbnQpKXRocm93IG5ldyBUeXBlRXJyb3IoYEdpdmVuIGVsZW1lbnQgXGAke3N9XGAgaXMgbm90IGFuIEVsZW1lbnQgaW5zdGFuY2VgKTtsZXQgbztzLl9hdHRyaWJ1dGVzJiZzLmF0dHJpYnV0ZXMuZ2V0KCJ2YXJpYWJsZSIpJiYobz1zLmF0dHJpYnV0ZXMuZ2V0KCJ2YXJpYWJsZSIpKTtjb25zdCBpPXtlbGVtZW50OnMuZWxlbWVudH07cy5fbWV0YSYmcy5fbWV0YS5sZW5ndGg+MCYmKGkubWV0YT10aGlzLnNlcmlhbGlzZU9iamVjdChzLm1ldGEpKTtjb25zdCBhPSJlbnVtIj09PXMuZWxlbWVudHx8LTEhPT1zLmF0dHJpYnV0ZXMua2V5cygpLmluZGV4T2YoImVudW1lcmF0aW9ucyIpO2lmKGEpe2NvbnN0IG89dGhpcy5lbnVtU2VyaWFsaXNlQXR0cmlidXRlcyhzKTtvJiYoaS5hdHRyaWJ1dGVzPW8pfWVsc2UgaWYocy5fYXR0cmlidXRlcyYmcy5fYXR0cmlidXRlcy5sZW5ndGg+MCl7bGV0e2F0dHJpYnV0ZXM6YX09czthLmdldCgibWV0YWRhdGEiKSYmKGE9YS5jbG9uZSgpLGEuc2V0KCJtZXRhIixhLmdldCgibWV0YWRhdGEiKSksYS5yZW1vdmUoIm1ldGFkYXRhIikpLCJtZW1iZXIiPT09cy5lbGVtZW50JiZvJiYoYT1hLmNsb25lKCksYS5yZW1vdmUoInZhcmlhYmxlIikpLGEubGVuZ3RoPjAmJihpLmF0dHJpYnV0ZXM9dGhpcy5zZXJpYWxpc2VPYmplY3QoYSkpfWlmKGEpaS5jb250ZW50PXRoaXMuZW51bVNlcmlhbGlzZUNvbnRlbnQocyxpKTtlbHNlIGlmKHRoaXNbYCR7cy5lbGVtZW50fVNlcmlhbGlzZUNvbnRlbnRgXSlpLmNvbnRlbnQ9dGhpc1tgJHtzLmVsZW1lbnR9U2VyaWFsaXNlQ29udGVudGBdKHMsaSk7ZWxzZSBpZih2b2lkIDAhPT1zLmNvbnRlbnQpe2xldCBhO28mJnMuY29udGVudC5rZXk/KGE9cy5jb250ZW50LmNsb25lKCksYS5rZXkuYXR0cmlidXRlcy5zZXQoInZhcmlhYmxlIixvKSxhPXRoaXMuc2VyaWFsaXNlQ29udGVudChhKSk6YT10aGlzLnNlcmlhbGlzZUNvbnRlbnQocy5jb250ZW50KSx0aGlzLnNob3VsZFNlcmlhbGlzZUNvbnRlbnQocyxhKSYmKGkuY29udGVudD1hKX1lbHNlIHRoaXMuc2hvdWxkU2VyaWFsaXNlQ29udGVudChzLHMuY29udGVudCkmJnMgaW5zdGFuY2VvZiB0aGlzLm5hbWVzcGFjZS5lbGVtZW50cy5BcnJheSYmKGkuY29udGVudD1bXSk7cmV0dXJuIGl9c2hvdWxkU2VyaWFsaXNlQ29udGVudChzLG8pe3JldHVybiJwYXJzZVJlc3VsdCI9PT1zLmVsZW1lbnR8fCJodHRwUmVxdWVzdCI9PT1zLmVsZW1lbnR8fCJodHRwUmVzcG9uc2UiPT09cy5lbGVtZW50fHwiY2F0ZWdvcnkiPT09cy5lbGVtZW50fHwibGluayI9PT1zLmVsZW1lbnR8fHZvaWQgMCE9PW8mJighQXJyYXkuaXNBcnJheShvKXx8MCE9PW8ubGVuZ3RoKX1yZWZTZXJpYWxpc2VDb250ZW50KHMsbyl7cmV0dXJuIGRlbGV0ZSBvLmF0dHJpYnV0ZXMse2hyZWY6cy50b1ZhbHVlKCkscGF0aDpzLnBhdGgudG9WYWx1ZSgpfX1zb3VyY2VNYXBTZXJpYWxpc2VDb250ZW50KHMpe3JldHVybiBzLnRvVmFsdWUoKX1kYXRhU3RydWN0dXJlU2VyaWFsaXNlQ29udGVudChzKXtyZXR1cm5bdGhpcy5zZXJpYWxpc2VDb250ZW50KHMuY29udGVudCldfWVudW1TZXJpYWxpc2VBdHRyaWJ1dGVzKHMpe2NvbnN0IG89cy5hdHRyaWJ1dGVzLmNsb25lKCksaT1vLnJlbW92ZSgiZW51bWVyYXRpb25zIil8fG5ldyB0aGlzLm5hbWVzcGFjZS5lbGVtZW50cy5BcnJheShbXSksYT1vLmdldCgiZGVmYXVsdCIpO2xldCB1PW8uZ2V0KCJzYW1wbGVzIil8fG5ldyB0aGlzLm5hbWVzcGFjZS5lbGVtZW50cy5BcnJheShbXSk7aWYoYSYmYS5jb250ZW50JiYoYS5jb250ZW50LmF0dHJpYnV0ZXMmJmEuY29udGVudC5hdHRyaWJ1dGVzLnJlbW92ZSgidHlwZUF0dHJpYnV0ZXMiKSxvLnNldCgiZGVmYXVsdCIsbmV3IHRoaXMubmFtZXNwYWNlLmVsZW1lbnRzLkFycmF5KFthLmNvbnRlbnRdKSkpLHUuZm9yRWFjaCgocz0+e3MuY29udGVudCYmcy5jb250ZW50LmVsZW1lbnQmJnMuY29udGVudC5hdHRyaWJ1dGVzLnJlbW92ZSgidHlwZUF0dHJpYnV0ZXMiKX0pKSxzLmNvbnRlbnQmJjAhPT1pLmxlbmd0aCYmdS51bnNoaWZ0KHMuY29udGVudCksdT11Lm1hcCgocz0+cyBpbnN0YW5jZW9mIHRoaXMubmFtZXNwYWNlLmVsZW1lbnRzLkFycmF5P1tzXTpuZXcgdGhpcy5uYW1lc3BhY2UuZWxlbWVudHMuQXJyYXkoW3MuY29udGVudF0pKSksdS5sZW5ndGgmJm8uc2V0KCJzYW1wbGVzIix1KSxvLmxlbmd0aD4wKXJldHVybiB0aGlzLnNlcmlhbGlzZU9iamVjdChvKX1lbnVtU2VyaWFsaXNlQ29udGVudChzKXtpZihzLl9hdHRyaWJ1dGVzKXtjb25zdCBvPXMuYXR0cmlidXRlcy5nZXQoImVudW1lcmF0aW9ucyIpO2lmKG8mJm8ubGVuZ3RoPjApcmV0dXJuIG8uY29udGVudC5tYXAoKHM9Pntjb25zdCBvPXMuY2xvbmUoKTtyZXR1cm4gby5hdHRyaWJ1dGVzLnJlbW92ZSgidHlwZUF0dHJpYnV0ZXMiKSx0aGlzLnNlcmlhbGlzZShvKX0pKX1pZihzLmNvbnRlbnQpe2NvbnN0IG89cy5jb250ZW50LmNsb25lKCk7cmV0dXJuIG8uYXR0cmlidXRlcy5yZW1vdmUoInR5cGVBdHRyaWJ1dGVzIiksW3RoaXMuc2VyaWFsaXNlKG8pXX1yZXR1cm5bXX1kZXNlcmlhbGlzZShzKXtpZigic3RyaW5nIj09dHlwZW9mIHMpcmV0dXJuIG5ldyB0aGlzLm5hbWVzcGFjZS5lbGVtZW50cy5TdHJpbmcocyk7aWYoIm51bWJlciI9PXR5cGVvZiBzKXJldHVybiBuZXcgdGhpcy5uYW1lc3BhY2UuZWxlbWVudHMuTnVtYmVyKHMpO2lmKCJib29sZWFuIj09dHlwZW9mIHMpcmV0dXJuIG5ldyB0aGlzLm5hbWVzcGFjZS5lbGVtZW50cy5Cb29sZWFuKHMpO2lmKG51bGw9PT1zKXJldHVybiBuZXcgdGhpcy5uYW1lc3BhY2UuZWxlbWVudHMuTnVsbDtpZihBcnJheS5pc0FycmF5KHMpKXJldHVybiBuZXcgdGhpcy5uYW1lc3BhY2UuZWxlbWVudHMuQXJyYXkocy5tYXAodGhpcy5kZXNlcmlhbGlzZSx0aGlzKSk7Y29uc3Qgbz10aGlzLm5hbWVzcGFjZS5nZXRFbGVtZW50Q2xhc3Mocy5lbGVtZW50KSxpPW5ldyBvO2kuZWxlbWVudCE9PXMuZWxlbWVudCYmKGkuZWxlbWVudD1zLmVsZW1lbnQpLHMubWV0YSYmdGhpcy5kZXNlcmlhbGlzZU9iamVjdChzLm1ldGEsaS5tZXRhKSxzLmF0dHJpYnV0ZXMmJnRoaXMuZGVzZXJpYWxpc2VPYmplY3Qocy5hdHRyaWJ1dGVzLGkuYXR0cmlidXRlcyk7Y29uc3QgYT10aGlzLmRlc2VyaWFsaXNlQ29udGVudChzLmNvbnRlbnQpO2lmKHZvaWQgMD09PWEmJm51bGwhPT1pLmNvbnRlbnR8fChpLmNvbnRlbnQ9YSksImVudW0iPT09aS5lbGVtZW50KXtpLmNvbnRlbnQmJmkuYXR0cmlidXRlcy5zZXQoImVudW1lcmF0aW9ucyIsaS5jb250ZW50KTtsZXQgcz1pLmF0dHJpYnV0ZXMuZ2V0KCJzYW1wbGVzIik7aWYoaS5hdHRyaWJ1dGVzLnJlbW92ZSgic2FtcGxlcyIpLHMpe2NvbnN0IGE9cztzPW5ldyB0aGlzLm5hbWVzcGFjZS5lbGVtZW50cy5BcnJheSxhLmZvckVhY2goKGE9PnthLmZvckVhY2goKGE9Pntjb25zdCB1PW5ldyBvKGEpO3UuZWxlbWVudD1pLmVsZW1lbnQscy5wdXNoKHUpfSkpfSkpO2NvbnN0IHU9cy5zaGlmdCgpO2kuY29udGVudD11P3UuY29udGVudDp2b2lkIDAsaS5hdHRyaWJ1dGVzLnNldCgic2FtcGxlcyIscyl9ZWxzZSBpLmNvbnRlbnQ9dm9pZCAwO2xldCBhPWkuYXR0cmlidXRlcy5nZXQoImRlZmF1bHQiKTtpZihhJiZhLmxlbmd0aD4wKXthPWEuZ2V0KDApO2NvbnN0IHM9bmV3IG8oYSk7cy5lbGVtZW50PWkuZWxlbWVudCxpLmF0dHJpYnV0ZXMuc2V0KCJkZWZhdWx0IixzKX19ZWxzZSBpZigiZGF0YVN0cnVjdHVyZSI9PT1pLmVsZW1lbnQmJkFycmF5LmlzQXJyYXkoaS5jb250ZW50KSlbaS5jb250ZW50XT1pLmNvbnRlbnQ7ZWxzZSBpZigiY2F0ZWdvcnkiPT09aS5lbGVtZW50KXtjb25zdCBzPWkuYXR0cmlidXRlcy5nZXQoIm1ldGEiKTtzJiYoaS5hdHRyaWJ1dGVzLnNldCgibWV0YWRhdGEiLHMpLGkuYXR0cmlidXRlcy5yZW1vdmUoIm1ldGEiKSl9ZWxzZSJtZW1iZXIiPT09aS5lbGVtZW50JiZpLmtleSYmaS5rZXkuX2F0dHJpYnV0ZXMmJmkua2V5Ll9hdHRyaWJ1dGVzLmdldFZhbHVlKCJ2YXJpYWJsZSIpJiYoaS5hdHRyaWJ1dGVzLnNldCgidmFyaWFibGUiLGkua2V5LmF0dHJpYnV0ZXMuZ2V0KCJ2YXJpYWJsZSIpKSxpLmtleS5hdHRyaWJ1dGVzLnJlbW92ZSgidmFyaWFibGUiKSk7cmV0dXJuIGl9c2VyaWFsaXNlQ29udGVudChzKXtpZihzIGluc3RhbmNlb2YgdGhpcy5uYW1lc3BhY2UuZWxlbWVudHMuRWxlbWVudClyZXR1cm4gdGhpcy5zZXJpYWxpc2Uocyk7aWYocyBpbnN0YW5jZW9mIHRoaXMubmFtZXNwYWNlLktleVZhbHVlUGFpcil7Y29uc3Qgbz17a2V5OnRoaXMuc2VyaWFsaXNlKHMua2V5KX07cmV0dXJuIHMudmFsdWUmJihvLnZhbHVlPXRoaXMuc2VyaWFsaXNlKHMudmFsdWUpKSxvfXJldHVybiBzJiZzLm1hcD9zLm1hcCh0aGlzLnNlcmlhbGlzZSx0aGlzKTpzfWRlc2VyaWFsaXNlQ29udGVudChzKXtpZihzKXtpZihzLmVsZW1lbnQpcmV0dXJuIHRoaXMuZGVzZXJpYWxpc2Uocyk7aWYocy5rZXkpe2NvbnN0IG89bmV3IHRoaXMubmFtZXNwYWNlLktleVZhbHVlUGFpcih0aGlzLmRlc2VyaWFsaXNlKHMua2V5KSk7cmV0dXJuIHMudmFsdWUmJihvLnZhbHVlPXRoaXMuZGVzZXJpYWxpc2Uocy52YWx1ZSkpLG99aWYocy5tYXApcmV0dXJuIHMubWFwKHRoaXMuZGVzZXJpYWxpc2UsdGhpcyl9cmV0dXJuIHN9c2hvdWxkUmVmcmFjdChzKXtyZXR1cm4hIShzLl9hdHRyaWJ1dGVzJiZzLmF0dHJpYnV0ZXMua2V5cygpLmxlbmd0aHx8cy5fbWV0YSYmcy5tZXRhLmtleXMoKS5sZW5ndGgpfHwiZW51bSIhPT1zLmVsZW1lbnQmJihzLmVsZW1lbnQhPT1zLnByaW1pdGl2ZSgpfHwibWVtYmVyIj09PXMuZWxlbWVudCl9Y29udmVydEtleVRvUmVmcmFjdChzLG8pe3JldHVybiB0aGlzLnNob3VsZFJlZnJhY3Qobyk/dGhpcy5zZXJpYWxpc2Uobyk6ImVudW0iPT09by5lbGVtZW50P3RoaXMuc2VyaWFsaXNlRW51bShvKToiYXJyYXkiPT09by5lbGVtZW50P28ubWFwKChvPT50aGlzLnNob3VsZFJlZnJhY3Qobyl8fCJkZWZhdWx0Ij09PXM/dGhpcy5zZXJpYWxpc2Uobyk6ImFycmF5Ij09PW8uZWxlbWVudHx8Im9iamVjdCI9PT1vLmVsZW1lbnR8fCJlbnVtIj09PW8uZWxlbWVudD9vLmNoaWxkcmVuLm1hcCgocz0+dGhpcy5zZXJpYWxpc2UocykpKTpvLnRvVmFsdWUoKSkpOiJvYmplY3QiPT09by5lbGVtZW50PyhvLmNvbnRlbnR8fFtdKS5tYXAodGhpcy5zZXJpYWxpc2UsdGhpcyk6by50b1ZhbHVlKCl9c2VyaWFsaXNlRW51bShzKXtyZXR1cm4gcy5jaGlsZHJlbi5tYXAoKHM9PnRoaXMuc2VyaWFsaXNlKHMpKSl9c2VyaWFsaXNlT2JqZWN0KHMpe2NvbnN0IG89e307cmV0dXJuIHMuZm9yRWFjaCgoKHMsaSk9PntpZihzKXtjb25zdCBhPWkudG9WYWx1ZSgpO29bYV09dGhpcy5jb252ZXJ0S2V5VG9SZWZyYWN0KGEscyl9fSkpLG99ZGVzZXJpYWxpc2VPYmplY3QocyxvKXtPYmplY3Qua2V5cyhzKS5mb3JFYWNoKChpPT57by5zZXQoaSx0aGlzLmRlc2VyaWFsaXNlKHNbaV0pKX0pKX19fSw3NTIwODpzPT57InVzZSBzdHJpY3QiO3ZhciBvLGk9IiI7cy5leHBvcnRzPWZ1bmN0aW9uIHJlcGVhdChzLGEpe2lmKCJzdHJpbmciIT10eXBlb2Ygcyl0aHJvdyBuZXcgVHlwZUVycm9yKCJleHBlY3RlZCBhIHN0cmluZyIpO2lmKDE9PT1hKXJldHVybiBzO2lmKDI9PT1hKXJldHVybiBzK3M7dmFyIHU9cy5sZW5ndGgqYTtpZihvIT09c3x8dm9pZCAwPT09bylvPXMsaT0iIjtlbHNlIGlmKGkubGVuZ3RoPj11KXJldHVybiBpLnN1YnN0cigwLHUpO2Zvcig7dT5pLmxlbmd0aCYmYT4xOykxJmEmJihpKz1zKSxhPj49MSxzKz1zO3JldHVybiBpPShpKz1zKS5zdWJzdHIoMCx1KX19LDc1MjUxOnM9Pnt2YXIgbz0vXHtcblwvXCogXFt3cmFwcGVkIHdpdGggKC4rKVxdIFwqLyxpPS8sPyAmIC87cy5leHBvcnRzPWZ1bmN0aW9uIGdldFdyYXBEZXRhaWxzKHMpe3ZhciBhPXMubWF0Y2gobyk7cmV0dXJuIGE/YVsxXS5zcGxpdChpKTpbXX19LDc1Mjg4OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gZXEocyxvKXtyZXR1cm4gcz09PW98fHMhPXMmJm8hPW99fSw3NTgxNzpzPT57InVzZSBzdHJpY3QiO3MuZXhwb3J0cz1mdW5jdGlvbihzLG8pe3JldHVybntlbnVtZXJhYmxlOiEoMSZzKSxjb25maWd1cmFibGU6ISgyJnMpLHdyaXRhYmxlOiEoNCZzKSx2YWx1ZTpvfX19LDc1ODk2OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg2NTYwNik7ZnVuY3Rpb24gZW1pdEVycm9yQW5kQ2xvc2VOVChzLG8pe2VtaXRFcnJvck5UKHMsbyksZW1pdENsb3NlTlQocyl9ZnVuY3Rpb24gZW1pdENsb3NlTlQocyl7cy5fd3JpdGFibGVTdGF0ZSYmIXMuX3dyaXRhYmxlU3RhdGUuZW1pdENsb3NlfHxzLl9yZWFkYWJsZVN0YXRlJiYhcy5fcmVhZGFibGVTdGF0ZS5lbWl0Q2xvc2V8fHMuZW1pdCgiY2xvc2UiKX1mdW5jdGlvbiBlbWl0RXJyb3JOVChzLG8pe3MuZW1pdCgiZXJyb3IiLG8pfXMuZXhwb3J0cz17ZGVzdHJveTpmdW5jdGlvbiBkZXN0cm95KHMsbyl7dmFyIGk9dGhpcyx1PXRoaXMuX3JlYWRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkLF89dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ7cmV0dXJuIHV8fF8/KG8/byhzKTpzJiYodGhpcy5fd3JpdGFibGVTdGF0ZT90aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZHx8KHRoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLGEubmV4dFRpY2soZW1pdEVycm9yTlQsdGhpcyxzKSk6YS5uZXh0VGljayhlbWl0RXJyb3JOVCx0aGlzLHMpKSx0aGlzKToodGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPSEwKSx0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX2Rlc3Ryb3koc3x8bnVsbCwoZnVuY3Rpb24ocyl7IW8mJnM/aS5fd3JpdGFibGVTdGF0ZT9pLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD9hLm5leHRUaWNrKGVtaXRDbG9zZU5ULGkpOihpLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxhLm5leHRUaWNrKGVtaXRFcnJvckFuZENsb3NlTlQsaSxzKSk6YS5uZXh0VGljayhlbWl0RXJyb3JBbmRDbG9zZU5ULGkscyk6bz8oYS5uZXh0VGljayhlbWl0Q2xvc2VOVCxpKSxvKHMpKTphLm5leHRUaWNrKGVtaXRDbG9zZU5ULGkpfSkpLHRoaXMpfSx1bmRlc3Ryb3k6ZnVuY3Rpb24gdW5kZXN0cm95KCl7dGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPSExLHRoaXMuX3JlYWRhYmxlU3RhdGUucmVhZGluZz0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuZGVkPSExLHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZD0hMSksdGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZW5kZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRpbmc9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5maW5hbENhbGxlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLnByZWZpbmlzaGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZmluaXNoZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITEpfSxlcnJvck9yRGVzdHJveTpmdW5jdGlvbiBlcnJvck9yRGVzdHJveShzLG8pe3ZhciBpPXMuX3JlYWRhYmxlU3RhdGUsYT1zLl93cml0YWJsZVN0YXRlO2kmJmkuYXV0b0Rlc3Ryb3l8fGEmJmEuYXV0b0Rlc3Ryb3k/cy5kZXN0cm95KG8pOnMuZW1pdCgiZXJyb3IiLG8pfX19LDc1OTQ4OihzLG8saSk9Pnt2YXIgYT1pKDgzNzI5KSx1PWkoMTUzMjUpLF89W1siYXJ5IiwxMjhdLFsiYmluZCIsMV0sWyJiaW5kS2V5IiwyXSxbImN1cnJ5Iiw4XSxbImN1cnJ5UmlnaHQiLDE2XSxbImZsaXAiLDUxMl0sWyJwYXJ0aWFsIiwzMl0sWyJwYXJ0aWFsUmlnaHQiLDY0XSxbInJlYXJnIiwyNTZdXTtzLmV4cG9ydHM9ZnVuY3Rpb24gdXBkYXRlV3JhcERldGFpbHMocyxvKXtyZXR1cm4gYShfLChmdW5jdGlvbihpKXt2YXIgYT0iXy4iK2lbMF07byZpWzFdJiYhdShzLGEpJiZzLnB1c2goYSl9KSkscy5zb3J0KCl9fSw3NjAyNDoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNDE1MDUpLHU9RnVuY3Rpb24ucHJvdG90eXBlLF89dS5hcHBseSx3PXUuY2FsbDtzLmV4cG9ydHM9Im9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmFwcGx5fHwoYT93LmJpbmQoXyk6ZnVuY3Rpb24oKXtyZXR1cm4gdy5hcHBseShfLGFyZ3VtZW50cyl9KX0sNzYxNjk6KHMsbyxpKT0+e3ZhciBhPWkoNDk2NTMpO3MuZXhwb3J0cz1mdW5jdGlvbiBjbG9uZURhdGFWaWV3KHMsbyl7dmFyIGk9bz9hKHMuYnVmZmVyKTpzLmJ1ZmZlcjtyZXR1cm4gbmV3IHMuY29uc3RydWN0b3IoaSxzLmJ5dGVPZmZzZXQscy5ieXRlTGVuZ3RoKX19LDc2MTg5OnM9Pnt2YXIgbz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3MuZXhwb3J0cz1mdW5jdGlvbiBpbml0Q2xvbmVBcnJheShzKXt2YXIgaT1zLmxlbmd0aCxhPW5ldyBzLmNvbnN0cnVjdG9yKGkpO3JldHVybiBpJiYic3RyaW5nIj09dHlwZW9mIHNbMF0mJm8uY2FsbChzLCJpbmRleCIpJiYoYS5pbmRleD1zLmluZGV4LGEuaW5wdXQ9cy5pbnB1dCksYX19LDc2MjY0OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg0NTk1MSksdT1pKDg1ODE2KSxfPWkoNDk3MjQpLHc9aSg2NDk5KSx4PWkoMTk4NDYpLEM9aSg1MTE3NSksaj1hLlN5bWJvbCxMPXUoIndrcyIpLEI9Qz9qLmZvcnx8ajpqJiZqLndpdGhvdXRTZXR0ZXJ8fHc7cy5leHBvcnRzPWZ1bmN0aW9uKHMpe3JldHVybiBfKEwscyl8fChMW3NdPXgmJl8oaixzKT9qW3NdOkIoIlN5bWJvbC4iK3MpKSxMW3NdfX0sNzY1NDU6KHMsbyxpKT0+e3ZhciBhPWkoNTYxMTApKGkoOTMyNSksIlNldCIpO3MuZXhwb3J0cz1hfSw3Njk1OTpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIHN0cmljdEluZGV4T2YocyxvLGkpe2Zvcih2YXIgYT1pLTEsdT1zLmxlbmd0aDsrK2E8dTspaWYoc1thXT09PW8pcmV0dXJuIGE7cmV0dXJuLTF9fSw3NzA3ODoocyxvLGkpPT57dmFyIGE9aSg5MTAzMyksdT1pKDgyODE5KSxfPWkoMzc0NzEpLHc9aSgxODA3MykseD1pKDExMjg3KSxDPWkoMzYzMDYpLGo9aSg5MzI1KTtzLmV4cG9ydHM9ZnVuY3Rpb24gY3JlYXRlQ3VycnkocyxvLGkpe3ZhciBMPXUocyk7cmV0dXJuIGZ1bmN0aW9uIHdyYXBwZXIoKXtmb3IodmFyIHU9YXJndW1lbnRzLmxlbmd0aCxCPUFycmF5KHUpLCQ9dSxWPXgod3JhcHBlcik7JC0tOylCWyRdPWFyZ3VtZW50c1skXTt2YXIgVT11PDMmJkJbMF0hPT1WJiZCW3UtMV0hPT1WP1tdOkMoQixWKTtyZXR1cm4odS09VS5sZW5ndGgpPGk/dyhzLG8sXyx3cmFwcGVyLnBsYWNlaG9sZGVyLHZvaWQgMCxCLFUsdm9pZCAwLHZvaWQgMCxpLXUpOmEodGhpcyYmdGhpcyE9PWomJnRoaXMgaW5zdGFuY2VvZiB3cmFwcGVyP0w6cyx0aGlzLEIpfX19LDc3MTk5OihzLG8saSk9Pnt2YXIgYT1pKDQ5NjUzKSx1PWkoNzYxNjkpLF89aSg3MzIwMSksdz1pKDkzNzM2KSx4PWkoNzE5NjEpO3MuZXhwb3J0cz1mdW5jdGlvbiBpbml0Q2xvbmVCeVRhZyhzLG8saSl7dmFyIEM9cy5jb25zdHJ1Y3Rvcjtzd2l0Y2gobyl7Y2FzZSJbb2JqZWN0IEFycmF5QnVmZmVyXSI6cmV0dXJuIGEocyk7Y2FzZSJbb2JqZWN0IEJvb2xlYW5dIjpjYXNlIltvYmplY3QgRGF0ZV0iOnJldHVybiBuZXcgQygrcyk7Y2FzZSJbb2JqZWN0IERhdGFWaWV3XSI6cmV0dXJuIHUocyxpKTtjYXNlIltvYmplY3QgRmxvYXQzMkFycmF5XSI6Y2FzZSJbb2JqZWN0IEZsb2F0NjRBcnJheV0iOmNhc2UiW29iamVjdCBJbnQ4QXJyYXldIjpjYXNlIltvYmplY3QgSW50MTZBcnJheV0iOmNhc2UiW29iamVjdCBJbnQzMkFycmF5XSI6Y2FzZSJbb2JqZWN0IFVpbnQ4QXJyYXldIjpjYXNlIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIjpjYXNlIltvYmplY3QgVWludDE2QXJyYXldIjpjYXNlIltvYmplY3QgVWludDMyQXJyYXldIjpyZXR1cm4geChzLGkpO2Nhc2UiW29iamVjdCBNYXBdIjpjYXNlIltvYmplY3QgU2V0XSI6cmV0dXJuIG5ldyBDO2Nhc2UiW29iamVjdCBOdW1iZXJdIjpjYXNlIltvYmplY3QgU3RyaW5nXSI6cmV0dXJuIG5ldyBDKHMpO2Nhc2UiW29iamVjdCBSZWdFeHBdIjpyZXR1cm4gXyhzKTtjYXNlIltvYmplY3QgU3ltYm9sXSI6cmV0dXJuIHcocyl9fX0sNzc1NTY6KHMsbyxpKT0+e3ZhciBhPWkoNTE4NzMpLHU9aSgzNDkzMiksXz1pKDU2NDQ5KSx3PWkoNDQzOTQpLHg9YT9hLnByb3RvdHlwZTp2b2lkIDAsQz14P3gudG9TdHJpbmc6dm9pZCAwO3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlVG9TdHJpbmcocyl7aWYoInN0cmluZyI9PXR5cGVvZiBzKXJldHVybiBzO2lmKF8ocykpcmV0dXJuIHUocyxiYXNlVG9TdHJpbmcpKyIiO2lmKHcocykpcmV0dXJuIEM/Qy5jYWxsKHMpOiIiO3ZhciBvPXMrIiI7cmV0dXJuIjAiPT1vJiYxL3M9PS0xLzA/Ii0wIjpvfX0sNzc3MzE6KHMsbyxpKT0+e3ZhciBhPWkoNzk5MjApKCJzZXQiLGkoNjM1NjApKTthLnBsYWNlaG9sZGVyPWkoMjg3NCkscy5leHBvcnRzPWF9LDc3Nzk3OihzLG8saSk9Pnt2YXIgYT1pKDQ0Mzk0KTtzLmV4cG9ydHM9ZnVuY3Rpb24gdG9LZXkocyl7aWYoInN0cmluZyI9PXR5cGVvZiBzfHxhKHMpKXJldHVybiBzO3ZhciBvPXMrIiI7cmV0dXJuIjAiPT1vJiYxL3M9PS0xLzA/Ii0wIjpvfX0sNzgwMDQ6cz0+eyJ1c2Ugc3RyaWN0IjtjbGFzcyBTdWJSYW5nZXtjb25zdHJ1Y3RvcihzLG8pe3RoaXMubG93PXMsdGhpcy5oaWdoPW8sdGhpcy5sZW5ndGg9MStvLXN9b3ZlcmxhcHMocyl7cmV0dXJuISh0aGlzLmhpZ2g8cy5sb3d8fHRoaXMubG93PnMuaGlnaCl9dG91Y2hlcyhzKXtyZXR1cm4hKHRoaXMuaGlnaCsxPHMubG93fHx0aGlzLmxvdy0xPnMuaGlnaCl9YWRkKHMpe3JldHVybiBuZXcgU3ViUmFuZ2UoTWF0aC5taW4odGhpcy5sb3cscy5sb3cpLE1hdGgubWF4KHRoaXMuaGlnaCxzLmhpZ2gpKX1zdWJ0cmFjdChzKXtyZXR1cm4gcy5sb3c8PXRoaXMubG93JiZzLmhpZ2g+PXRoaXMuaGlnaD9bXTpzLmxvdz50aGlzLmxvdyYmcy5oaWdoPHRoaXMuaGlnaD9bbmV3IFN1YlJhbmdlKHRoaXMubG93LHMubG93LTEpLG5ldyBTdWJSYW5nZShzLmhpZ2grMSx0aGlzLmhpZ2gpXTpzLmxvdzw9dGhpcy5sb3c/W25ldyBTdWJSYW5nZShzLmhpZ2grMSx0aGlzLmhpZ2gpXTpbbmV3IFN1YlJhbmdlKHRoaXMubG93LHMubG93LTEpXX10b1N0cmluZygpe3JldHVybiB0aGlzLmxvdz09dGhpcy5oaWdoP3RoaXMubG93LnRvU3RyaW5nKCk6dGhpcy5sb3crIi0iK3RoaXMuaGlnaH19Y2xhc3MgRFJhbmdle2NvbnN0cnVjdG9yKHMsbyl7dGhpcy5yYW5nZXM9W10sdGhpcy5sZW5ndGg9MCxudWxsIT1zJiZ0aGlzLmFkZChzLG8pfV91cGRhdGVfbGVuZ3RoKCl7dGhpcy5sZW5ndGg9dGhpcy5yYW5nZXMucmVkdWNlKCgocyxvKT0+cytvLmxlbmd0aCksMCl9YWRkKHMsbyl7dmFyIF9hZGQ9cz0+e2Zvcih2YXIgbz0wO288dGhpcy5yYW5nZXMubGVuZ3RoJiYhcy50b3VjaGVzKHRoaXMucmFuZ2VzW29dKTspbysrO2Zvcih2YXIgaT10aGlzLnJhbmdlcy5zbGljZSgwLG8pO288dGhpcy5yYW5nZXMubGVuZ3RoJiZzLnRvdWNoZXModGhpcy5yYW5nZXNbb10pOylzPXMuYWRkKHRoaXMucmFuZ2VzW29dKSxvKys7aS5wdXNoKHMpLHRoaXMucmFuZ2VzPWkuY29uY2F0KHRoaXMucmFuZ2VzLnNsaWNlKG8pKSx0aGlzLl91cGRhdGVfbGVuZ3RoKCl9O3JldHVybiBzIGluc3RhbmNlb2YgRFJhbmdlP3MucmFuZ2VzLmZvckVhY2goX2FkZCk6KG51bGw9PW8mJihvPXMpLF9hZGQobmV3IFN1YlJhbmdlKHMsbykpKSx0aGlzfXN1YnRyYWN0KHMsbyl7dmFyIF9zdWJ0cmFjdD1zPT57Zm9yKHZhciBvPTA7bzx0aGlzLnJhbmdlcy5sZW5ndGgmJiFzLm92ZXJsYXBzKHRoaXMucmFuZ2VzW29dKTspbysrO2Zvcih2YXIgaT10aGlzLnJhbmdlcy5zbGljZSgwLG8pO288dGhpcy5yYW5nZXMubGVuZ3RoJiZzLm92ZXJsYXBzKHRoaXMucmFuZ2VzW29dKTspaT1pLmNvbmNhdCh0aGlzLnJhbmdlc1tvXS5zdWJ0cmFjdChzKSksbysrO3RoaXMucmFuZ2VzPWkuY29uY2F0KHRoaXMucmFuZ2VzLnNsaWNlKG8pKSx0aGlzLl91cGRhdGVfbGVuZ3RoKCl9O3JldHVybiBzIGluc3RhbmNlb2YgRFJhbmdlP3MucmFuZ2VzLmZvckVhY2goX3N1YnRyYWN0KToobnVsbD09byYmKG89cyksX3N1YnRyYWN0KG5ldyBTdWJSYW5nZShzLG8pKSksdGhpc31pbnRlcnNlY3QocyxvKXt2YXIgaT1bXSxfaW50ZXJzZWN0PXM9Pntmb3IodmFyIG89MDtvPHRoaXMucmFuZ2VzLmxlbmd0aCYmIXMub3ZlcmxhcHModGhpcy5yYW5nZXNbb10pOylvKys7Zm9yKDtvPHRoaXMucmFuZ2VzLmxlbmd0aCYmcy5vdmVybGFwcyh0aGlzLnJhbmdlc1tvXSk7KXt2YXIgYT1NYXRoLm1heCh0aGlzLnJhbmdlc1tvXS5sb3cscy5sb3cpLHU9TWF0aC5taW4odGhpcy5yYW5nZXNbb10uaGlnaCxzLmhpZ2gpO2kucHVzaChuZXcgU3ViUmFuZ2UoYSx1KSksbysrfX07cmV0dXJuIHMgaW5zdGFuY2VvZiBEUmFuZ2U/cy5yYW5nZXMuZm9yRWFjaChfaW50ZXJzZWN0KToobnVsbD09byYmKG89cyksX2ludGVyc2VjdChuZXcgU3ViUmFuZ2UocyxvKSkpLHRoaXMucmFuZ2VzPWksdGhpcy5fdXBkYXRlX2xlbmd0aCgpLHRoaXN9aW5kZXgocyl7Zm9yKHZhciBvPTA7bzx0aGlzLnJhbmdlcy5sZW5ndGgmJnRoaXMucmFuZ2VzW29dLmxlbmd0aDw9czspcy09dGhpcy5yYW5nZXNbb10ubGVuZ3RoLG8rKztyZXR1cm4gdGhpcy5yYW5nZXNbb10ubG93K3N9dG9TdHJpbmcoKXtyZXR1cm4iWyAiK3RoaXMucmFuZ2VzLmpvaW4oIiwgIikrIiBdIn1jbG9uZSgpe3JldHVybiBuZXcgRFJhbmdlKHRoaXMpfW51bWJlcnMoKXtyZXR1cm4gdGhpcy5yYW5nZXMucmVkdWNlKCgocyxvKT0+e2Zvcih2YXIgaT1vLmxvdztpPD1vLmhpZ2g7KXMucHVzaChpKSxpKys7cmV0dXJuIHN9KSxbXSl9c3VicmFuZ2VzKCl7cmV0dXJuIHRoaXMucmFuZ2VzLm1hcCgocz0+KHtsb3c6cy5sb3csaGlnaDpzLmhpZ2gsbGVuZ3RoOjErcy5oaWdoLXMubG93fSkpKX19cy5leHBvcnRzPURSYW5nZX0sNzgwOTY6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlVGltZXMocyxvKXtmb3IodmFyIGk9LTEsYT1BcnJheShzKTsrK2k8czspYVtpXT1vKGkpO3JldHVybiBhfX0sNzg0MTg6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0IjtpKDg1MTYwKX0sNzkxOTI6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDUxODcxKSx1PWkoNDYyODUpLF89aSg3NDIzOSksdz1pKDEwMDQzKTtzLmV4cG9ydHM9T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoIl9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKCl7dmFyIHMsbz0hMSxpPXt9O3RyeXsocz1hKE9iamVjdC5wcm90b3R5cGUsIl9fcHJvdG9fXyIsInNldCIpKShpLFtdKSxvPWkgaW5zdGFuY2VvZiBBcnJheX1jYXRjaChzKXt9cmV0dXJuIGZ1bmN0aW9uIHNldFByb3RvdHlwZU9mKGksYSl7cmV0dXJuIF8oaSksdyhhKSx1KGkpPyhvP3MoaSxhKTppLl9fcHJvdG9fXz1hLGkpOml9fSgpOnZvaWQgMCl9LDc5MzA3OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgxMTA5MSksdT1pKDQ0NjczKTthKHt0YXJnZXQ6IkZ1bmN0aW9uIixwcm90bzohMCxmb3JjZWQ6RnVuY3Rpb24uYmluZCE9PXV9LHtiaW5kOnV9KX0sNzk3NzA6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBhcnJheUZpbHRlcihzLG8pe2Zvcih2YXIgaT0tMSxhPW51bGw9PXM/MDpzLmxlbmd0aCx1PTAsXz1bXTsrK2k8YTspe3ZhciB3PXNbaV07byh3LGkscykmJihfW3UrK109dyl9cmV0dXJuIF99fSw3OTgzODooKT0+e30sNzk5MjA6KHMsbyxpKT0+e3ZhciBhPWkoNzM0MjQpLHU9aSg0NzkzNCk7cy5leHBvcnRzPWZ1bmN0aW9uIGNvbnZlcnQocyxvLGkpe3JldHVybiBhKHUscyxvLGkpfX0sODAwNzk6KHMsbyxpKT0+e3ZhciBhPWkoNjM3MDIpLHU9aSg3MDA4MCksXz1pKDI0NzM5KSx3PWkoNDg2NTUpLHg9aSgzMTE3NSk7ZnVuY3Rpb24gTGlzdENhY2hlKHMpe3ZhciBvPS0xLGk9bnVsbD09cz8wOnMubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytvPGk7KXt2YXIgYT1zW29dO3RoaXMuc2V0KGFbMF0sYVsxXSl9fUxpc3RDYWNoZS5wcm90b3R5cGUuY2xlYXI9YSxMaXN0Q2FjaGUucHJvdG90eXBlLmRlbGV0ZT11LExpc3RDYWNoZS5wcm90b3R5cGUuZ2V0PV8sTGlzdENhY2hlLnByb3RvdHlwZS5oYXM9dyxMaXN0Q2FjaGUucHJvdG90eXBlLnNldD14LHMuZXhwb3J0cz1MaXN0Q2FjaGV9LDgwMjE4OihzLG8saSk9Pnt2YXIgYT1pKDEzMjIyKTtzLmV4cG9ydHM9ZnVuY3Rpb24gdG9Mb3dlcihzKXtyZXR1cm4gYShzKS50b0xvd2VyQ2FzZSgpfX0sODAyNTc6KHMsbyxpKT0+e3ZhciBhPWkoMzA5ODApLHU9aSg1NjAxNyksXz1pKDIzMDA3KTtzLmV4cG9ydHM9ZnVuY3Rpb24gd3JhcHBlckNsb25lKHMpe2lmKHMgaW5zdGFuY2VvZiBhKXJldHVybiBzLmNsb25lKCk7dmFyIG89bmV3IHUocy5fX3dyYXBwZWRfXyxzLl9fY2hhaW5fXyk7cmV0dXJuIG8uX19hY3Rpb25zX189XyhzLl9fYWN0aW9uc19fKSxvLl9faW5kZXhfXz1zLl9faW5kZXhfXyxvLl9fdmFsdWVzX189cy5fX3ZhbHVlc19fLG99fSw4MDM0NToocyxvLGkpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG93bktleXMocyxvKXt2YXIgaT1PYmplY3Qua2V5cyhzKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpO28mJihhPWEuZmlsdGVyKChmdW5jdGlvbihvKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLG8pLmVudW1lcmFibGV9KSkpLGkucHVzaC5hcHBseShpLGEpfXJldHVybiBpfWZ1bmN0aW9uIF9vYmplY3RTcHJlYWQocyl7Zm9yKHZhciBvPTE7bzxhcmd1bWVudHMubGVuZ3RoO28rKyl7dmFyIGk9bnVsbCE9YXJndW1lbnRzW29dP2FyZ3VtZW50c1tvXTp7fTtvJTI/b3duS2V5cyhPYmplY3QoaSksITApLmZvckVhY2goKGZ1bmN0aW9uKG8pe19kZWZpbmVQcm9wZXJ0eShzLG8saVtvXSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMocyxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhpKSk6b3duS2V5cyhPYmplY3QoaSkpLmZvckVhY2goKGZ1bmN0aW9uKG8pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLG8sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLG8pKX0pKX1yZXR1cm4gc31mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkocyxvLGkpe3JldHVybihvPV90b1Byb3BlcnR5S2V5KG8pKWluIHM/T2JqZWN0LmRlZmluZVByb3BlcnR5KHMsbyx7dmFsdWU6aSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnNbb109aSxzfWZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHMsbyl7Zm9yKHZhciBpPTA7aTxvLmxlbmd0aDtpKyspe3ZhciBhPW9baV07YS5lbnVtZXJhYmxlPWEuZW51bWVyYWJsZXx8ITEsYS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGEmJihhLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocyxfdG9Qcm9wZXJ0eUtleShhLmtleSksYSl9fWZ1bmN0aW9uIF90b1Byb3BlcnR5S2V5KHMpe3ZhciBvPWZ1bmN0aW9uIF90b1ByaW1pdGl2ZShzLG8pe2lmKCJvYmplY3QiIT10eXBlb2Ygc3x8bnVsbD09PXMpcmV0dXJuIHM7dmFyIGk9c1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWkpe3ZhciBhPWkuY2FsbChzLG98fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBhKXJldHVybiBhO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bz9TdHJpbmc6TnVtYmVyKShzKX0ocywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBvP286U3RyaW5nKG8pfXZhciBhPWkoNDgyODcpLkJ1ZmZlcix1PWkoMTUzNDApLmluc3BlY3QsXz11JiZ1LmN1c3RvbXx8Imluc3BlY3QiO3MuZXhwb3J0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIEJ1ZmZlckxpc3QoKXshZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKHMsbyl7aWYoIShzIGluc3RhbmNlb2YgbykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsQnVmZmVyTGlzdCksdGhpcy5oZWFkPW51bGwsdGhpcy50YWlsPW51bGwsdGhpcy5sZW5ndGg9MH1yZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKHMsbyxpKXtyZXR1cm4gbyYmX2RlZmluZVByb3BlcnRpZXMocy5wcm90b3R5cGUsbyksaSYmX2RlZmluZVByb3BlcnRpZXMocyxpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocywicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxzfShCdWZmZXJMaXN0LFt7a2V5OiJwdXNoIix2YWx1ZTpmdW5jdGlvbiBwdXNoKHMpe3ZhciBvPXtkYXRhOnMsbmV4dDpudWxsfTt0aGlzLmxlbmd0aD4wP3RoaXMudGFpbC5uZXh0PW86dGhpcy5oZWFkPW8sdGhpcy50YWlsPW8sKyt0aGlzLmxlbmd0aH19LHtrZXk6InVuc2hpZnQiLHZhbHVlOmZ1bmN0aW9uIHVuc2hpZnQocyl7dmFyIG89e2RhdGE6cyxuZXh0OnRoaXMuaGVhZH07MD09PXRoaXMubGVuZ3RoJiYodGhpcy50YWlsPW8pLHRoaXMuaGVhZD1vLCsrdGhpcy5sZW5ndGh9fSx7a2V5OiJzaGlmdCIsdmFsdWU6ZnVuY3Rpb24gc2hpZnQoKXtpZigwIT09dGhpcy5sZW5ndGgpe3ZhciBzPXRoaXMuaGVhZC5kYXRhO3JldHVybiAxPT09dGhpcy5sZW5ndGg/dGhpcy5oZWFkPXRoaXMudGFpbD1udWxsOnRoaXMuaGVhZD10aGlzLmhlYWQubmV4dCwtLXRoaXMubGVuZ3RoLHN9fX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uIGNsZWFyKCl7dGhpcy5oZWFkPXRoaXMudGFpbD1udWxsLHRoaXMubGVuZ3RoPTB9fSx7a2V5OiJqb2luIix2YWx1ZTpmdW5jdGlvbiBqb2luKHMpe2lmKDA9PT10aGlzLmxlbmd0aClyZXR1cm4iIjtmb3IodmFyIG89dGhpcy5oZWFkLGk9IiIrby5kYXRhO289by5uZXh0OylpKz1zK28uZGF0YTtyZXR1cm4gaX19LHtrZXk6ImNvbmNhdCIsdmFsdWU6ZnVuY3Rpb24gY29uY2F0KHMpe2lmKDA9PT10aGlzLmxlbmd0aClyZXR1cm4gYS5hbGxvYygwKTtmb3IodmFyIG8saSx1LF89YS5hbGxvY1Vuc2FmZShzPj4+MCksdz10aGlzLmhlYWQseD0wO3c7KW89dy5kYXRhLGk9Xyx1PXgsYS5wcm90b3R5cGUuY29weS5jYWxsKG8saSx1KSx4Kz13LmRhdGEubGVuZ3RoLHc9dy5uZXh0O3JldHVybiBffX0se2tleToiY29uc3VtZSIsdmFsdWU6ZnVuY3Rpb24gY29uc3VtZShzLG8pe3ZhciBpO3JldHVybiBzPHRoaXMuaGVhZC5kYXRhLmxlbmd0aD8oaT10aGlzLmhlYWQuZGF0YS5zbGljZSgwLHMpLHRoaXMuaGVhZC5kYXRhPXRoaXMuaGVhZC5kYXRhLnNsaWNlKHMpKTppPXM9PT10aGlzLmhlYWQuZGF0YS5sZW5ndGg/dGhpcy5zaGlmdCgpOm8/dGhpcy5fZ2V0U3RyaW5nKHMpOnRoaXMuX2dldEJ1ZmZlcihzKSxpfX0se2tleToiZmlyc3QiLHZhbHVlOmZ1bmN0aW9uIGZpcnN0KCl7cmV0dXJuIHRoaXMuaGVhZC5kYXRhfX0se2tleToiX2dldFN0cmluZyIsdmFsdWU6ZnVuY3Rpb24gX2dldFN0cmluZyhzKXt2YXIgbz10aGlzLmhlYWQsaT0xLGE9by5kYXRhO2ZvcihzLT1hLmxlbmd0aDtvPW8ubmV4dDspe3ZhciB1PW8uZGF0YSxfPXM+dS5sZW5ndGg/dS5sZW5ndGg6cztpZihfPT09dS5sZW5ndGg/YSs9dTphKz11LnNsaWNlKDAscyksMD09PShzLT1fKSl7Xz09PXUubGVuZ3RoPygrK2ksby5uZXh0P3RoaXMuaGVhZD1vLm5leHQ6dGhpcy5oZWFkPXRoaXMudGFpbD1udWxsKToodGhpcy5oZWFkPW8sby5kYXRhPXUuc2xpY2UoXykpO2JyZWFrfSsraX1yZXR1cm4gdGhpcy5sZW5ndGgtPWksYX19LHtrZXk6Il9nZXRCdWZmZXIiLHZhbHVlOmZ1bmN0aW9uIF9nZXRCdWZmZXIocyl7dmFyIG89YS5hbGxvY1Vuc2FmZShzKSxpPXRoaXMuaGVhZCx1PTE7Zm9yKGkuZGF0YS5jb3B5KG8pLHMtPWkuZGF0YS5sZW5ndGg7aT1pLm5leHQ7KXt2YXIgXz1pLmRhdGEsdz1zPl8ubGVuZ3RoP18ubGVuZ3RoOnM7aWYoXy5jb3B5KG8sby5sZW5ndGgtcywwLHcpLDA9PT0ocy09dykpe3c9PT1fLmxlbmd0aD8oKyt1LGkubmV4dD90aGlzLmhlYWQ9aS5uZXh0OnRoaXMuaGVhZD10aGlzLnRhaWw9bnVsbCk6KHRoaXMuaGVhZD1pLGkuZGF0YT1fLnNsaWNlKHcpKTticmVha30rK3V9cmV0dXJuIHRoaXMubGVuZ3RoLT11LG99fSx7a2V5Ol8sdmFsdWU6ZnVuY3Rpb24gdmFsdWUocyxvKXtyZXR1cm4gdSh0aGlzLF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSxvKSx7fSx7ZGVwdGg6MCxjdXN0b21JbnNwZWN0OiExfSkpfX1dKSxCdWZmZXJMaXN0fSgpfSw4MDM3NjpzPT57InVzZSBzdHJpY3QiO3MuZXhwb3J0cz1bImNvbnN0cnVjdG9yIiwiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0b0xvY2FsZVN0cmluZyIsInRvU3RyaW5nIiwidmFsdWVPZiJdfSw4MDYzMToocyxvLGkpPT57dmFyIGE9aSgyODA3NyksdT1pKDQ5MzI2KTtzLmV4cG9ydHM9ZnVuY3Rpb24gaGFzSW4ocyxvKXtyZXR1cm4gbnVsbCE9cyYmdShzLG8sYSl9fSw4MDkwOToocyxvLGkpPT57dmFyIGE9aSgzMDY0MSksdT1pKDM4MzI5KShhKTtzLmV4cG9ydHM9dX0sODA5NDU6KHMsbyxpKT0+e3ZhciBhPWkoODAwNzkpLHU9aSg2ODIyMyksXz1pKDUzNjYxKTtzLmV4cG9ydHM9ZnVuY3Rpb24gc3RhY2tTZXQocyxvKXt2YXIgaT10aGlzLl9fZGF0YV9fO2lmKGkgaW5zdGFuY2VvZiBhKXt2YXIgdz1pLl9fZGF0YV9fO2lmKCF1fHx3Lmxlbmd0aDwxOTkpcmV0dXJuIHcucHVzaChbcyxvXSksdGhpcy5zaXplPSsraS5zaXplLHRoaXM7aT10aGlzLl9fZGF0YV9fPW5ldyBfKHcpfXJldHVybiBpLnNldChzLG8pLHRoaXMuc2l6ZT1pLnNpemUsdGhpc319LDgxMDQyOihzLG8saSk9Pnt2YXIgYT1pKDU2MTEwKShPYmplY3QsImNyZWF0ZSIpO3MuZXhwb3J0cz1hfSw4MTIxNDoocyxvLGkpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIF90eXBlb2Yocyl7cmV0dXJuIF90eXBlb2Y9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24ocyl7cmV0dXJuIHR5cGVvZiBzfTpmdW5jdGlvbihzKXtyZXR1cm4gcyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmcy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmcyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHN9LF90eXBlb2Yocyl9T2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG8uRGVib3VuY2VJbnB1dD12b2lkIDA7dmFyIGE9X2ludGVyb3BSZXF1aXJlRGVmYXVsdChpKDk2NTQwKSksdT1faW50ZXJvcFJlcXVpcmVEZWZhdWx0KGkoMjAxODEpKSxfPVsiZWxlbWVudCIsIm9uQ2hhbmdlIiwidmFsdWUiLCJtaW5MZW5ndGgiLCJkZWJvdW5jZVRpbWVvdXQiLCJmb3JjZU5vdGlmeUJ5RW50ZXIiLCJmb3JjZU5vdGlmeU9uQmx1ciIsIm9uS2V5RG93biIsIm9uQmx1ciIsImlucHV0UmVmIl07ZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChzKXtyZXR1cm4gcyYmcy5fX2VzTW9kdWxlP3M6e2RlZmF1bHQ6c319ZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHMsbyl7aWYobnVsbD09cylyZXR1cm57fTt2YXIgaSxhLHU9ZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UocyxvKXtpZihudWxsPT1zKXJldHVybnt9O3ZhciBpLGEsdT17fSxfPU9iamVjdC5rZXlzKHMpO2ZvcihhPTA7YTxfLmxlbmd0aDthKyspaT1fW2FdLG8uaW5kZXhPZihpKT49MHx8KHVbaV09c1tpXSk7cmV0dXJuIHV9KHMsbyk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIF89T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtmb3IoYT0wO2E8Xy5sZW5ndGg7YSsrKWk9X1thXSxvLmluZGV4T2YoaSk+PTB8fE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLGkpJiYodVtpXT1zW2ldKX1yZXR1cm4gdX1mdW5jdGlvbiBvd25LZXlzKHMsbyl7dmFyIGk9T2JqZWN0LmtleXMocyk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtvJiYoYT1hLmZpbHRlcigoZnVuY3Rpb24obyl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocyxvKS5lbnVtZXJhYmxlfSkpKSxpLnB1c2guYXBwbHkoaSxhKX1yZXR1cm4gaX1mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKHMpe2Zvcih2YXIgbz0xO288YXJndW1lbnRzLmxlbmd0aDtvKyspe3ZhciBpPW51bGwhPWFyZ3VtZW50c1tvXT9hcmd1bWVudHNbb106e307byUyP293bktleXMoT2JqZWN0KGkpLCEwKS5mb3JFYWNoKChmdW5jdGlvbihvKXtfZGVmaW5lUHJvcGVydHkocyxvLGlbb10pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHMsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoaSkpOm93bktleXMoT2JqZWN0KGkpKS5mb3JFYWNoKChmdW5jdGlvbihvKXtPYmplY3QuZGVmaW5lUHJvcGVydHkocyxvLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaSxvKSl9KSl9cmV0dXJuIHN9ZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXMocyxvKXtmb3IodmFyIGk9MDtpPG8ubGVuZ3RoO2krKyl7dmFyIGE9b1tpXTthLmVudW1lcmFibGU9YS5lbnVtZXJhYmxlfHwhMSxhLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gYSYmKGEud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLGEua2V5LGEpfX1mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YocyxvKXtyZXR1cm4gX3NldFByb3RvdHlwZU9mPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8ZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKHMsbyl7cmV0dXJuIHMuX19wcm90b19fPW8sc30sX3NldFByb3RvdHlwZU9mKHMsbyl9ZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKHMpe3ZhciBvPWZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdClyZXR1cm4hMTtpZihSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSksITB9Y2F0Y2gocyl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpe3ZhciBpLGE9X2dldFByb3RvdHlwZU9mKHMpO2lmKG8pe3ZhciB1PV9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjtpPVJlZmxlY3QuY29uc3RydWN0KGEsYXJndW1lbnRzLHUpfWVsc2UgaT1hLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4ocyxvKXtpZihvJiYoIm9iamVjdCI9PT1fdHlwZW9mKG8pfHwiZnVuY3Rpb24iPT10eXBlb2YgbykpcmV0dXJuIG87aWYodm9pZCAwIT09byl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHMpfSh0aGlzLGkpfX1mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHMpe2lmKHZvaWQgMD09PXMpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gc31mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yocyl7cmV0dXJuIF9nZXRQcm90b3R5cGVPZj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihzKXtyZXR1cm4gcy5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihzKX0sX2dldFByb3RvdHlwZU9mKHMpfWZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShzLG8saSl7cmV0dXJuIG8gaW4gcz9PYmplY3QuZGVmaW5lUHJvcGVydHkocyxvLHt2YWx1ZTppLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6c1tvXT1pLHN9dmFyIHc9ZnVuY3Rpb24ocyl7IWZ1bmN0aW9uIF9pbmhlcml0cyhzLG8pe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBvJiZudWxsIT09byl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO3MucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobyYmby5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpzLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkocywicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxvJiZfc2V0UHJvdG90eXBlT2YocyxvKX0oRGVib3VuY2VJbnB1dCxzKTt2YXIgbz1fY3JlYXRlU3VwZXIoRGVib3VuY2VJbnB1dCk7ZnVuY3Rpb24gRGVib3VuY2VJbnB1dChzKXt2YXIgaTshZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKHMsbyl7aWYoIShzIGluc3RhbmNlb2YgbykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsRGVib3VuY2VJbnB1dCksX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoaT1vLmNhbGwodGhpcyxzKSksIm9uQ2hhbmdlIiwoZnVuY3Rpb24ocyl7cy5wZXJzaXN0KCk7dmFyIG89aS5zdGF0ZS52YWx1ZSxhPWkucHJvcHMubWluTGVuZ3RoO2kuc2V0U3RhdGUoe3ZhbHVlOnMudGFyZ2V0LnZhbHVlfSwoZnVuY3Rpb24oKXt2YXIgdT1pLnN0YXRlLnZhbHVlO3UubGVuZ3RoPj1hP2kubm90aWZ5KHMpOm8ubGVuZ3RoPnUubGVuZ3RoJiZpLm5vdGlmeShfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30scykse30se3RhcmdldDpfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30scy50YXJnZXQpLHt9LHt2YWx1ZToiIn0pfSkpfSkpfSkpLF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKGkpLCJvbktleURvd24iLChmdW5jdGlvbihzKXsiRW50ZXIiPT09cy5rZXkmJmkuZm9yY2VOb3RpZnkocyk7dmFyIG89aS5wcm9wcy5vbktleURvd247byYmKHMucGVyc2lzdCgpLG8ocykpfSkpLF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKGkpLCJvbkJsdXIiLChmdW5jdGlvbihzKXtpLmZvcmNlTm90aWZ5KHMpO3ZhciBvPWkucHJvcHMub25CbHVyO28mJihzLnBlcnNpc3QoKSxvKHMpKX0pKSxfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChpKSwiY3JlYXRlTm90aWZpZXIiLChmdW5jdGlvbihzKXtpZihzPDApaS5ub3RpZnk9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH07ZWxzZSBpZigwPT09cylpLm5vdGlmeT1pLmRvTm90aWZ5O2Vsc2V7dmFyIG89KDAsdS5kZWZhdWx0KSgoZnVuY3Rpb24ocyl7aS5pc0RlYm91bmNpbmc9ITEsaS5kb05vdGlmeShzKX0pLHMpO2kubm90aWZ5PWZ1bmN0aW9uKHMpe2kuaXNEZWJvdW5jaW5nPSEwLG8ocyl9LGkuZmx1c2g9ZnVuY3Rpb24oKXtyZXR1cm4gby5mbHVzaCgpfSxpLmNhbmNlbD1mdW5jdGlvbigpe2kuaXNEZWJvdW5jaW5nPSExLG8uY2FuY2VsKCl9fX0pKSxfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChpKSwiZG9Ob3RpZnkiLChmdW5jdGlvbigpe2kucHJvcHMub25DaGFuZ2UuYXBwbHkodm9pZCAwLGFyZ3VtZW50cyl9KSksX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoaSksImZvcmNlTm90aWZ5IiwoZnVuY3Rpb24ocyl7dmFyIG89aS5wcm9wcy5kZWJvdW5jZVRpbWVvdXQ7aWYoaS5pc0RlYm91bmNpbmd8fCEobz4wKSl7aS5jYW5jZWwmJmkuY2FuY2VsKCk7dmFyIGE9aS5zdGF0ZS52YWx1ZSx1PWkucHJvcHMubWluTGVuZ3RoO2EubGVuZ3RoPj11P2kuZG9Ob3RpZnkocyk6aS5kb05vdGlmeShfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30scykse30se3RhcmdldDpfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30scy50YXJnZXQpLHt9LHt2YWx1ZTphfSl9KSl9fSkpLGkuaXNEZWJvdW5jaW5nPSExLGkuc3RhdGU9e3ZhbHVlOnZvaWQgMD09PXMudmFsdWV8fG51bGw9PT1zLnZhbHVlPyIiOnMudmFsdWV9O3ZhciBhPWkucHJvcHMuZGVib3VuY2VUaW1lb3V0O3JldHVybiBpLmNyZWF0ZU5vdGlmaWVyKGEpLGl9cmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhzLG8saSl7cmV0dXJuIG8mJl9kZWZpbmVQcm9wZXJ0aWVzKHMucHJvdG90eXBlLG8pLGkmJl9kZWZpbmVQcm9wZXJ0aWVzKHMsaSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksc30oRGVib3VuY2VJbnB1dCxbe2tleToiY29tcG9uZW50RGlkVXBkYXRlIix2YWx1ZTpmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUocyl7aWYoIXRoaXMuaXNEZWJvdW5jaW5nKXt2YXIgbz10aGlzLnByb3BzLGk9by52YWx1ZSxhPW8uZGVib3VuY2VUaW1lb3V0LHU9cy5kZWJvdW5jZVRpbWVvdXQsXz1zLnZhbHVlLHc9dGhpcy5zdGF0ZS52YWx1ZTt2b2lkIDAhPT1pJiZfIT09aSYmdyE9PWkmJnRoaXMuc2V0U3RhdGUoe3ZhbHVlOml9KSxhIT09dSYmdGhpcy5jcmVhdGVOb3RpZmllcihhKX19fSx7a2V5OiJjb21wb25lbnRXaWxsVW5tb3VudCIsdmFsdWU6ZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKXt0aGlzLmZsdXNoJiZ0aGlzLmZsdXNoKCl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uIHJlbmRlcigpe3ZhciBzLG8saT10aGlzLnByb3BzLHU9aS5lbGVtZW50LHc9KGkub25DaGFuZ2UsaS52YWx1ZSxpLm1pbkxlbmd0aCxpLmRlYm91bmNlVGltZW91dCxpLmZvcmNlTm90aWZ5QnlFbnRlcikseD1pLmZvcmNlTm90aWZ5T25CbHVyLEM9aS5vbktleURvd24saj1pLm9uQmx1cixMPWkuaW5wdXRSZWYsQj1fb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoaSxfKSwkPXRoaXMuc3RhdGUudmFsdWU7cz13P3tvbktleURvd246dGhpcy5vbktleURvd259OkM/e29uS2V5RG93bjpDfTp7fSxvPXg/e29uQmx1cjp0aGlzLm9uQmx1cn06aj97b25CbHVyOmp9Ont9O3ZhciBWPUw/e3JlZjpMfTp7fTtyZXR1cm4gYS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodSxfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LEIpLHt9LHtvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlLHZhbHVlOiR9LHMpLG8pLFYpKX19XSksRGVib3VuY2VJbnB1dH0oYS5kZWZhdWx0LlB1cmVDb21wb25lbnQpO28uRGVib3VuY2VJbnB1dD13LF9kZWZpbmVQcm9wZXJ0eSh3LCJkZWZhdWx0UHJvcHMiLHtlbGVtZW50OiJpbnB1dCIsdHlwZToidGV4dCIsb25LZXlEb3duOnZvaWQgMCxvbkJsdXI6dm9pZCAwLHZhbHVlOnZvaWQgMCxtaW5MZW5ndGg6MCxkZWJvdW5jZVRpbWVvdXQ6MTAwLGZvcmNlTm90aWZ5QnlFbnRlcjohMCxmb3JjZU5vdGlmeU9uQmx1cjohMCxpbnB1dFJlZjp2b2lkIDB9KX0sODE5MTk6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDQ4Mjg3KS5CdWZmZXI7ZnVuY3Rpb24gaXNTcGVjaWZpY1ZhbHVlKHMpe3JldHVybiBzIGluc3RhbmNlb2YgYXx8cyBpbnN0YW5jZW9mIERhdGV8fHMgaW5zdGFuY2VvZiBSZWdFeHB9ZnVuY3Rpb24gY2xvbmVTcGVjaWZpY1ZhbHVlKHMpe2lmKHMgaW5zdGFuY2VvZiBhKXt2YXIgbz1hLmFsbG9jP2EuYWxsb2Mocy5sZW5ndGgpOm5ldyBhKHMubGVuZ3RoKTtyZXR1cm4gcy5jb3B5KG8pLG99aWYocyBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIG5ldyBEYXRlKHMuZ2V0VGltZSgpKTtpZihzIGluc3RhbmNlb2YgUmVnRXhwKXJldHVybiBuZXcgUmVnRXhwKHMpO3Rocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBzaXR1YXRpb24iKX1mdW5jdGlvbiBkZWVwQ2xvbmVBcnJheShzKXt2YXIgbz1bXTtyZXR1cm4gcy5mb3JFYWNoKChmdW5jdGlvbihzLGkpeyJvYmplY3QiPT10eXBlb2YgcyYmbnVsbCE9PXM/QXJyYXkuaXNBcnJheShzKT9vW2ldPWRlZXBDbG9uZUFycmF5KHMpOmlzU3BlY2lmaWNWYWx1ZShzKT9vW2ldPWNsb25lU3BlY2lmaWNWYWx1ZShzKTpvW2ldPXUoe30scyk6b1tpXT1zfSkpLG99ZnVuY3Rpb24gc2FmZUdldFByb3BlcnR5KHMsbyl7cmV0dXJuIl9fcHJvdG9fXyI9PT1vP3ZvaWQgMDpzW29dfXZhciB1PXMuZXhwb3J0cz1mdW5jdGlvbigpe2lmKGFyZ3VtZW50cy5sZW5ndGg8MXx8Im9iamVjdCIhPXR5cGVvZiBhcmd1bWVudHNbMF0pcmV0dXJuITE7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybiBhcmd1bWVudHNbMF07dmFyIHMsbyxpPWFyZ3VtZW50c1swXTtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpLmZvckVhY2goKGZ1bmN0aW9uKGEpeyJvYmplY3QiIT10eXBlb2YgYXx8bnVsbD09PWF8fEFycmF5LmlzQXJyYXkoYSl8fE9iamVjdC5rZXlzKGEpLmZvckVhY2goKGZ1bmN0aW9uKF8pe3JldHVybiBvPXNhZmVHZXRQcm9wZXJ0eShpLF8pLChzPXNhZmVHZXRQcm9wZXJ0eShhLF8pKT09PWk/dm9pZCAwOiJvYmplY3QiIT10eXBlb2Ygc3x8bnVsbD09PXM/dm9pZChpW19dPXMpOkFycmF5LmlzQXJyYXkocyk/dm9pZChpW19dPWRlZXBDbG9uZUFycmF5KHMpKTppc1NwZWNpZmljVmFsdWUocyk/dm9pZChpW19dPWNsb25lU3BlY2lmaWNWYWx1ZShzKSk6Im9iamVjdCIhPXR5cGVvZiBvfHxudWxsPT09b3x8QXJyYXkuaXNBcnJheShvKT92b2lkKGlbX109dSh7fSxzKSk6dm9pZChpW19dPXUobyxzKSl9KSl9KSksaX19LDgyMDQ4OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgxMTA5MSksdT1pKDg4MjgwKSxfPWkoMTU5NzIpLHc9aSg3OTE5MikseD1pKDE5NTk1KSxDPWkoNTgwNzUpLGo9aSg2MTYyNiksTD1pKDc1ODE3KSxCPWkoMzkyNTkpLCQ9aSg4NTg4NCksVj1pKDI0ODIzKSxVPWkoMzIwOTYpLHo9aSg3NjI2NCkoInRvU3RyaW5nVGFnIiksWT1FcnJvcixaPVtdLnB1c2gsZWU9ZnVuY3Rpb24gQWdncmVnYXRlRXJyb3IocyxvKXt2YXIgaSxhPXUoaWUsdGhpcyk7dz9pPXcobmV3IFksYT9fKHRoaXMpOmllKTooaT1hP3RoaXM6QyhpZSksaihpLHosIkVycm9yIikpLHZvaWQgMCE9PW8mJmooaSwibWVzc2FnZSIsVShvKSksJChpLGVlLGkuc3RhY2ssMSksYXJndW1lbnRzLmxlbmd0aD4yJiZCKGksYXJndW1lbnRzWzJdKTt2YXIgeD1bXTtyZXR1cm4gVihzLFose3RoYXQ6eH0pLGooaSwiZXJyb3JzIix4KSxpfTt3P3coZWUsWSk6eChlZSxZLHtuYW1lOiEwfSk7dmFyIGllPWVlLnByb3RvdHlwZT1DKFkucHJvdG90eXBlLHtjb25zdHJ1Y3RvcjpMKDEsZWUpLG1lc3NhZ2U6TCgxLCIiKSxuYW1lOkwoMSwiQWdncmVnYXRlRXJyb3IiKX0pO2Eoe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxhcml0eToyfSx7QWdncmVnYXRlRXJyb3I6ZWV9KX0sODIxNTk6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDYyMjUwKSx1PWkoNDY0MCksXz1UeXBlRXJyb3I7cy5leHBvcnRzPWZ1bmN0aW9uKHMpe2lmKGEocykpcmV0dXJuIHM7dGhyb3cgbmV3IF8odShzKSsiIGlzIG5vdCBhIGZ1bmN0aW9uIil9fSw4MjE5OToocyxvLGkpPT57dmFyIGE9aSgxNDUyOCksdT1pKDU2NDQ5KTtzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZUdldEFsbEtleXMocyxvLGkpe3ZhciBfPW8ocyk7cmV0dXJuIHUocyk/XzphKF8saShzKSl9fSw4MjI2MToocyxvLGkpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgYT1faW50ZXJvcFJlcXVpcmVEZWZhdWx0KGkoOTQwNCkpLHU9X2ludGVyb3BSZXF1aXJlRGVmYXVsdChpKDQ4NTkwKSk7ZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChzKXtyZXR1cm4gcyYmcy5fX2VzTW9kdWxlP3M6e2RlZmF1bHQ6c319by5kZWZhdWx0PWZ1bmN0aW9uKHMsbyxpKXt2YXIgXz1PYmplY3Qua2V5cyhvKTtpZighXy5sZW5ndGgpcmV0dXJuIlN0b3JlIGRvZXMgbm90IGhhdmUgYSB2YWxpZCByZWR1Y2VyLiBNYWtlIHN1cmUgdGhlIGFyZ3VtZW50IHBhc3NlZCB0byBjb21iaW5lUmVkdWNlcnMgaXMgYW4gb2JqZWN0IHdob3NlIHZhbHVlcyBhcmUgcmVkdWNlcnMuIjt2YXIgdz0oMCx1LmRlZmF1bHQpKGkpO2lmKGEuZGVmYXVsdC5pc0ltbXV0YWJsZT8hYS5kZWZhdWx0LmlzSW1tdXRhYmxlKHMpOiFhLmRlZmF1bHQuSXRlcmFibGUuaXNJdGVyYWJsZShzKSlyZXR1cm4iVGhlICIrdysnIGlzIG9mIHVuZXhwZWN0ZWQgdHlwZS4gRXhwZWN0ZWQgYXJndW1lbnQgdG8gYmUgYW4gaW5zdGFuY2Ugb2YgSW1tdXRhYmxlLkNvbGxlY3Rpb24gb3IgSW1tdXRhYmxlLlJlY29yZCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczogIicrXy5qb2luKCciLCAiJykrJyIuJzt2YXIgeD1zLnRvU2VxKCkua2V5U2VxKCkudG9BcnJheSgpLmZpbHRlcigoZnVuY3Rpb24ocyl7cmV0dXJuIW8uaGFzT3duUHJvcGVydHkocyl9KSk7cmV0dXJuIHgubGVuZ3RoPjA/IlVuZXhwZWN0ZWQgIisoMT09PXgubGVuZ3RoPyJwcm9wZXJ0eSI6InByb3BlcnRpZXMiKSsnICInK3guam9pbignIiwgIicpKyciIGZvdW5kIGluICcrdysnLiBFeHBlY3RlZCB0byBmaW5kIG9uZSBvZiB0aGUga25vd24gcmVkdWNlciBwcm9wZXJ0eSBuYW1lcyBpbnN0ZWFkOiAiJytfLmpvaW4oJyIsICInKSsnIi4gVW5leHBlY3RlZCBwcm9wZXJ0aWVzIHdpbGwgYmUgaWdub3JlZC4nOm51bGx9LHMuZXhwb3J0cz1vLmRlZmF1bHR9LDgyODE5OihzLG8saSk9Pnt2YXIgYT1pKDM5MzQ0KSx1PWkoMjM4MDUpO3MuZXhwb3J0cz1mdW5jdGlvbiBjcmVhdGVDdG9yKHMpe3JldHVybiBmdW5jdGlvbigpe3ZhciBvPWFyZ3VtZW50cztzd2l0Y2goby5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gbmV3IHM7Y2FzZSAxOnJldHVybiBuZXcgcyhvWzBdKTtjYXNlIDI6cmV0dXJuIG5ldyBzKG9bMF0sb1sxXSk7Y2FzZSAzOnJldHVybiBuZXcgcyhvWzBdLG9bMV0sb1syXSk7Y2FzZSA0OnJldHVybiBuZXcgcyhvWzBdLG9bMV0sb1syXSxvWzNdKTtjYXNlIDU6cmV0dXJuIG5ldyBzKG9bMF0sb1sxXSxvWzJdLG9bM10sb1s0XSk7Y2FzZSA2OnJldHVybiBuZXcgcyhvWzBdLG9bMV0sb1syXSxvWzNdLG9bNF0sb1s1XSk7Y2FzZSA3OnJldHVybiBuZXcgcyhvWzBdLG9bMV0sb1syXSxvWzNdLG9bNF0sb1s1XSxvWzZdKX12YXIgaT1hKHMucHJvdG90eXBlKSxfPXMuYXBwbHkoaSxvKTtyZXR1cm4gdShfKT9fOml9fX0sODI4OTA6KHMsbyxpKT0+e3ZhciBhPWkoNTY2OTgpLHU9aSg5MDM5MiksXz1pKDkyODYxKS5CdWZmZXIsdz1bMTExNjM1MjQwOCwzNjA5NzY3NDU4LDE4OTk0NDc0NDEsNjAyODkxNzI1LDMwNDkzMjM0NzEsMzk2NDQ4NDM5OSwzOTIxMDA5NTczLDIxNzMyOTU1NDgsOTYxOTg3MTYzLDQwODE2Mjg0NzIsMTUwODk3MDk5MywzMDUzODM0MjY1LDI0NTM2MzU3NDgsMjkzNzY3MTU3OSwyODcwNzYzMjIxLDM2NjQ2MDk1NjAsMzYyNDM4MTA4MCwyNzM0ODgzMzk0LDMxMDU5ODQwMSwxMTY0OTk2NTQyLDYwNzIyNTI3OCwxMzIzNjEwNzY0LDE0MjY4ODE5ODcsMzU5MDMwNDk5NCwxOTI1MDc4Mzg4LDQwNjgxODIzODMsMjE2MjA3ODIwNiw5OTEzMzYxMTMsMjYxNDg4ODEwMyw2MzM4MDMzMTcsMzI0ODIyMjU4MCwzNDc5Nzc0ODY4LDM4MzUzOTA0MDEsMjY2NjYxMzQ1OCw0MDIyMjI0Nzc0LDk0NDcxMTEzOSwyNjQzNDcwNzgsMjM0MTI2Mjc3Myw2MDQ4MDc2MjgsMjAwNzgwMDkzMyw3NzAyNTU5ODMsMTQ5NTk5MDkwMSwxMjQ5MTUwMTIyLDE4NTY0MzEyMzUsMTU1NTA4MTY5MiwzMTc1MjE4MTMyLDE5OTYwNjQ5ODYsMjE5ODk1MDgzNywyNTU0MjIwODgyLDM5OTk3MTkzMzksMjgyMTgzNDM0OSw3NjY3ODQwMTYsMjk1Mjk5NjgwOCwyNTY2NTk0ODc5LDMyMTAzMTM2NzEsMzIwMzMzNzk1NiwzMzM2NTcxODkxLDEwMzQ0NTcwMjYsMzU4NDUyODcxMSwyNDY2OTQ4OTAxLDExMzkyNjk5MywzNzU4MzI2MzgzLDMzODI0MTg5NSwxNjg3MTc5MzYsNjY2MzA3MjA1LDExODgxNzk5NjQsNzczNTI5OTEyLDE1NDYwNDU3MzQsMTI5NDc1NzM3MiwxNTIyODA1NDg1LDEzOTYxODIyOTEsMjY0MzgzMzgyMywxNjk1MTgzNzAwLDIzNDM1MjczOTAsMTk4NjY2MTA1MSwxMDE0NDc3NDgwLDIxNzcwMjYzNTAsMTIwNjc1OTE0MiwyNDU2OTU2MDM3LDM0NDA3NzYyNywyNzMwNDg1OTIxLDEyOTA4NjM0NjAsMjgyMDMwMjQxMSwzMTU4NDU0MjczLDMyNTk3MzA4MDAsMzUwNTk1MjY1NywzMzQ1NzY0NzcxLDEwNjIxNzAwOCwzNTE2MDY1ODE3LDM2MDYwMDgzNDQsMzYwMDM1MjgwNCwxNDMyNzI1Nzc2LDQwOTQ1NzE5MDksMTQ2NzAzMTU5NCwyNzU0MjMzNDQsODUxMTY5NzIwLDQzMDIyNzczNCwzMTAwODIzNzUyLDUwNjk0ODYxNiwxMzYzMjU4MTk1LDY1OTA2MDU1NiwzNzUwNjg1NTkzLDg4Mzk5Nzg3NywzNzg1MDUwMjgwLDk1ODEzOTU3MSwzMzE4MzA3NDI3LDEzMjI4MjIyMTgsMzgxMjcyMzQwMywxNTM3MDAyMDYzLDIwMDMwMzQ5OTUsMTc0Nzg3Mzc3OSwzNjAyMDM2ODk5LDE5NTU1NjIyMjIsMTU3NTk5MDAxMiwyMDI0MTA0ODE1LDExMjU1OTI5MjgsMjIyNzczMDQ1MiwyNzE2OTA0MzA2LDIzNjE4NTI0MjQsNDQyNzc2MDQ0LDI0Mjg0MzY0NzQsNTkzNjk4MzQ0LDI3NTY3MzQxODcsMzczMzExMDI0OSwzMjA0MDMxNDc5LDI5OTkzNTE1NzMsMzMyOTMyNTI5OCwzODE1OTIwNDI3LDMzOTE1Njk2MTQsMzkyODM4MzkwMCwzNTE1MjY3MjcxLDU2NjI4MDcxMSwzOTQwMTg3NjA2LDM0NTQwNjk1MzQsNDExODYzMDI3MSw0MDAwMjM5OTkyLDExNjQxODQ3NCwxOTE0MTM4NTU0LDE3NDI5MjQyMSwyNzMxMDU1MjcwLDI4OTM4MDM1NiwzMjAzOTkzMDA2LDQ2MDM5MzI2OSwzMjA2MjAzMTUsNjg1NDcxNzMzLDU4NzQ5NjgzNiw4NTIxNDI5NzEsMTA4Njc5Mjg1MSwxMDE3MDM2Mjk4LDM2NTU0MzEwMCwxMTI2MDAwNTgwLDI2MTgyOTc2NzYsMTI4ODAzMzQ3MCwzNDA5ODU1MTU4LDE1MDE1MDU5NDgsNDIzNDUwOTg2NiwxNjA3MTY3OTE1LDk4NzE2NzQ2OCwxODE2NDAyMzE2LDEyNDYxODk1OTFdLHg9bmV3IEFycmF5KDE2MCk7ZnVuY3Rpb24gU2hhNTEyKCl7dGhpcy5pbml0KCksdGhpcy5fdz14LHUuY2FsbCh0aGlzLDEyOCwxMTIpfWZ1bmN0aW9uIENoKHMsbyxpKXtyZXR1cm4gaV5zJihvXmkpfWZ1bmN0aW9uIG1haihzLG8saSl7cmV0dXJuIHMmb3xpJihzfG8pfWZ1bmN0aW9uIHNpZ21hMChzLG8pe3JldHVybihzPj4+Mjh8bzw8NCleKG8+Pj4yfHM8PDMwKV4obz4+Pjd8czw8MjUpfWZ1bmN0aW9uIHNpZ21hMShzLG8pe3JldHVybihzPj4+MTR8bzw8MTgpXihzPj4+MTh8bzw8MTQpXihvPj4+OXxzPDwyMyl9ZnVuY3Rpb24gR2FtbWEwKHMsbyl7cmV0dXJuKHM+Pj4xfG88PDMxKV4ocz4+Pjh8bzw8MjQpXnM+Pj43fWZ1bmN0aW9uIEdhbW1hMGwocyxvKXtyZXR1cm4ocz4+PjF8bzw8MzEpXihzPj4+OHxvPDwyNCleKHM+Pj43fG88PDI1KX1mdW5jdGlvbiBHYW1tYTEocyxvKXtyZXR1cm4ocz4+PjE5fG88PDEzKV4obz4+PjI5fHM8PDMpXnM+Pj42fWZ1bmN0aW9uIEdhbW1hMWwocyxvKXtyZXR1cm4ocz4+PjE5fG88PDEzKV4obz4+PjI5fHM8PDMpXihzPj4+NnxvPDwyNil9ZnVuY3Rpb24gZ2V0Q2FycnkocyxvKXtyZXR1cm4gcz4+PjA8bz4+PjA/MTowfWEoU2hhNTEyLHUpLFNoYTUxMi5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9haD0xNzc5MDMzNzAzLHRoaXMuX2JoPTMxNDQxMzQyNzcsdGhpcy5fY2g9MTAxMzkwNDI0Mix0aGlzLl9kaD0yNzczNDgwNzYyLHRoaXMuX2VoPTEzNTk4OTMxMTksdGhpcy5fZmg9MjYwMDgyMjkyNCx0aGlzLl9naD01Mjg3MzQ2MzUsdGhpcy5faGg9MTU0MTQ1OTIyNSx0aGlzLl9hbD00MDg5MjM1NzIwLHRoaXMuX2JsPTIyMjc4NzM1OTUsdGhpcy5fY2w9NDI3MTE3NTcyMyx0aGlzLl9kbD0xNTk1NzUwMTI5LHRoaXMuX2VsPTI5MTc1NjUxMzcsdGhpcy5fZmw9NzI1NTExMTk5LHRoaXMuX2dsPTQyMTUzODk1NDcsdGhpcy5faGw9MzI3MDMzMjA5LHRoaXN9LFNoYTUxMi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihzKXtmb3IodmFyIG89dGhpcy5fdyxpPTB8dGhpcy5fYWgsYT0wfHRoaXMuX2JoLHU9MHx0aGlzLl9jaCxfPTB8dGhpcy5fZGgseD0wfHRoaXMuX2VoLEM9MHx0aGlzLl9maCxqPTB8dGhpcy5fZ2gsTD0wfHRoaXMuX2hoLEI9MHx0aGlzLl9hbCwkPTB8dGhpcy5fYmwsVj0wfHRoaXMuX2NsLFU9MHx0aGlzLl9kbCx6PTB8dGhpcy5fZWwsWT0wfHRoaXMuX2ZsLFo9MHx0aGlzLl9nbCxlZT0wfHRoaXMuX2hsLGllPTA7aWU8MzI7aWUrPTIpb1tpZV09cy5yZWFkSW50MzJCRSg0KmllKSxvW2llKzFdPXMucmVhZEludDMyQkUoNCppZSs0KTtmb3IoO2llPDE2MDtpZSs9Mil7dmFyIGFlPW9baWUtMzBdLGNlPW9baWUtMzArMV0sbGU9R2FtbWEwKGFlLGNlKSxwZT1HYW1tYTBsKGNlLGFlKSxkZT1HYW1tYTEoYWU9b1tpZS00XSxjZT1vW2llLTQrMV0pLGZlPUdhbW1hMWwoY2UsYWUpLHllPW9baWUtMTRdLGJlPW9baWUtMTQrMV0sX2U9b1tpZS0zMl0sU2U9b1tpZS0zMisxXSx3ZT1wZStiZXwwLHhlPWxlK3llK2dldENhcnJ5KHdlLHBlKXwwO3hlPSh4ZT14ZStkZStnZXRDYXJyeSh3ZT13ZStmZXwwLGZlKXwwKStfZStnZXRDYXJyeSh3ZT13ZStTZXwwLFNlKXwwLG9baWVdPXhlLG9baWUrMV09d2V9Zm9yKHZhciBQZT0wO1BlPDE2MDtQZSs9Mil7eGU9b1tQZV0sd2U9b1tQZSsxXTt2YXIgVGU9bWFqKGksYSx1KSxSZT1tYWooQiwkLFYpLCRlPXNpZ21hMChpLEIpLHFlPXNpZ21hMChCLGkpLHplPXNpZ21hMSh4LHopLFdlPXNpZ21hMSh6LHgpLEhlPXdbUGVdLFllPXdbUGUrMV0sWGU9Q2goeCxDLGopLFFlPUNoKHosWSxaKSxldD1lZStXZXwwLHR0PUwremUrZ2V0Q2FycnkoZXQsZWUpfDA7dHQ9KHR0PSh0dD10dCtYZStnZXRDYXJyeShldD1ldCtRZXwwLFFlKXwwKStIZStnZXRDYXJyeShldD1ldCtZZXwwLFllKXwwKSt4ZStnZXRDYXJyeShldD1ldCt3ZXwwLHdlKXwwO3ZhciBydD1xZStSZXwwLG50PSRlK1RlK2dldENhcnJ5KHJ0LHFlKXwwO0w9aixlZT1aLGo9QyxaPVksQz14LFk9eix4PV8rdHQrZ2V0Q2Fycnkoej1VK2V0fDAsVSl8MCxfPXUsVT1WLHU9YSxWPSQsYT1pLCQ9QixpPXR0K250K2dldENhcnJ5KEI9ZXQrcnR8MCxldCl8MH10aGlzLl9hbD10aGlzLl9hbCtCfDAsdGhpcy5fYmw9dGhpcy5fYmwrJHwwLHRoaXMuX2NsPXRoaXMuX2NsK1Z8MCx0aGlzLl9kbD10aGlzLl9kbCtVfDAsdGhpcy5fZWw9dGhpcy5fZWwrenwwLHRoaXMuX2ZsPXRoaXMuX2ZsK1l8MCx0aGlzLl9nbD10aGlzLl9nbCtafDAsdGhpcy5faGw9dGhpcy5faGwrZWV8MCx0aGlzLl9haD10aGlzLl9haCtpK2dldENhcnJ5KHRoaXMuX2FsLEIpfDAsdGhpcy5fYmg9dGhpcy5fYmgrYStnZXRDYXJyeSh0aGlzLl9ibCwkKXwwLHRoaXMuX2NoPXRoaXMuX2NoK3UrZ2V0Q2FycnkodGhpcy5fY2wsVil8MCx0aGlzLl9kaD10aGlzLl9kaCtfK2dldENhcnJ5KHRoaXMuX2RsLFUpfDAsdGhpcy5fZWg9dGhpcy5fZWgreCtnZXRDYXJyeSh0aGlzLl9lbCx6KXwwLHRoaXMuX2ZoPXRoaXMuX2ZoK0MrZ2V0Q2FycnkodGhpcy5fZmwsWSl8MCx0aGlzLl9naD10aGlzLl9naCtqK2dldENhcnJ5KHRoaXMuX2dsLFopfDAsdGhpcy5faGg9dGhpcy5faGgrTCtnZXRDYXJyeSh0aGlzLl9obCxlZSl8MH0sU2hhNTEyLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBzPV8uYWxsb2NVbnNhZmUoNjQpO2Z1bmN0aW9uIHdyaXRlSW50NjRCRShvLGksYSl7cy53cml0ZUludDMyQkUobyxhKSxzLndyaXRlSW50MzJCRShpLGErNCl9cmV0dXJuIHdyaXRlSW50NjRCRSh0aGlzLl9haCx0aGlzLl9hbCwwKSx3cml0ZUludDY0QkUodGhpcy5fYmgsdGhpcy5fYmwsOCksd3JpdGVJbnQ2NEJFKHRoaXMuX2NoLHRoaXMuX2NsLDE2KSx3cml0ZUludDY0QkUodGhpcy5fZGgsdGhpcy5fZGwsMjQpLHdyaXRlSW50NjRCRSh0aGlzLl9laCx0aGlzLl9lbCwzMiksd3JpdGVJbnQ2NEJFKHRoaXMuX2ZoLHRoaXMuX2ZsLDQwKSx3cml0ZUludDY0QkUodGhpcy5fZ2gsdGhpcy5fZ2wsNDgpLHdyaXRlSW50NjRCRSh0aGlzLl9oaCx0aGlzLl9obCw1Niksc30scy5leHBvcnRzPVNoYTUxMn0sODMxMjA6KHMsbyxpKT0+e3ZhciBhPWkoMTQ1MjgpLHU9aSg0NTg5MSk7cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VGbGF0dGVuKHMsbyxpLF8sdyl7dmFyIHg9LTEsQz1zLmxlbmd0aDtmb3IoaXx8KGk9dSksd3x8KHc9W10pOysreDxDOyl7dmFyIGo9c1t4XTtvPjAmJmkoaik/bz4xP2Jhc2VGbGF0dGVuKGosby0xLGksXyx3KTphKHcsaik6X3x8KHdbdy5sZW5ndGhdPWopfXJldHVybiB3fX0sODMxNDE6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDkyODYxKS5CdWZmZXIsdT1hLmlzRW5jb2Rpbmd8fGZ1bmN0aW9uKHMpe3N3aXRjaCgocz0iIitzKSYmcy50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImJpbmFyeSI6Y2FzZSJiYXNlNjQiOmNhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpjYXNlInJhdyI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19O2Z1bmN0aW9uIFN0cmluZ0RlY29kZXIocyl7dmFyIG87c3dpdGNoKHRoaXMuZW5jb2Rpbmc9ZnVuY3Rpb24gbm9ybWFsaXplRW5jb2Rpbmcocyl7dmFyIG89ZnVuY3Rpb24gX25vcm1hbGl6ZUVuY29kaW5nKHMpe2lmKCFzKXJldHVybiJ1dGY4Ijtmb3IodmFyIG87Oylzd2l0Y2gocyl7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4idXRmOCI7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiJ1dGYxNmxlIjtjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiJsYXRpbjEiO2Nhc2UiYmFzZTY0IjpjYXNlImFzY2lpIjpjYXNlImhleCI6cmV0dXJuIHM7ZGVmYXVsdDppZihvKXJldHVybjtzPSgiIitzKS50b0xvd2VyQ2FzZSgpLG89ITB9fShzKTtpZigic3RyaW5nIiE9dHlwZW9mIG8mJihhLmlzRW5jb2Rpbmc9PT11fHwhdShzKSkpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3MpO3JldHVybiBvfHxzfShzKSx0aGlzLmVuY29kaW5nKXtjYXNlInV0ZjE2bGUiOnRoaXMudGV4dD11dGYxNlRleHQsdGhpcy5lbmQ9dXRmMTZFbmQsbz00O2JyZWFrO2Nhc2UidXRmOCI6dGhpcy5maWxsTGFzdD11dGY4RmlsbExhc3Qsbz00O2JyZWFrO2Nhc2UiYmFzZTY0Ijp0aGlzLnRleHQ9YmFzZTY0VGV4dCx0aGlzLmVuZD1iYXNlNjRFbmQsbz0zO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHRoaXMud3JpdGU9c2ltcGxlV3JpdGUsdm9pZCh0aGlzLmVuZD1zaW1wbGVFbmQpfXRoaXMubGFzdE5lZWQ9MCx0aGlzLmxhc3RUb3RhbD0wLHRoaXMubGFzdENoYXI9YS5hbGxvY1Vuc2FmZShvKX1mdW5jdGlvbiB1dGY4Q2hlY2tCeXRlKHMpe3JldHVybiBzPD0xMjc/MDpzPj41PT02PzI6cz4+ND09MTQ/MzpzPj4zPT0zMD80OnM+PjY9PTI/LTE6LTJ9ZnVuY3Rpb24gdXRmOEZpbGxMYXN0KHMpe3ZhciBvPXRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsaT1mdW5jdGlvbiB1dGY4Q2hlY2tFeHRyYUJ5dGVzKHMsbyxpKXtpZigxMjghPSgxOTImb1swXSkpcmV0dXJuIHMubGFzdE5lZWQ9MCwi77+9IjtpZihzLmxhc3ROZWVkPjEmJm8ubGVuZ3RoPjEpe2lmKDEyOCE9KDE5MiZvWzFdKSlyZXR1cm4gcy5sYXN0TmVlZD0xLCLvv70iO2lmKHMubGFzdE5lZWQ+MiYmby5sZW5ndGg+MiYmMTI4IT0oMTkyJm9bMl0pKXJldHVybiBzLmxhc3ROZWVkPTIsIu+/vSJ9fSh0aGlzLHMpO3JldHVybiB2b2lkIDAhPT1pP2k6dGhpcy5sYXN0TmVlZDw9cy5sZW5ndGg/KHMuY29weSh0aGlzLmxhc3RDaGFyLG8sMCx0aGlzLmxhc3ROZWVkKSx0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcsMCx0aGlzLmxhc3RUb3RhbCkpOihzLmNvcHkodGhpcy5sYXN0Q2hhcixvLDAscy5sZW5ndGgpLHZvaWQodGhpcy5sYXN0TmVlZC09cy5sZW5ndGgpKX1mdW5jdGlvbiB1dGYxNlRleHQocyxvKXtpZigocy5sZW5ndGgtbyklMj09MCl7dmFyIGk9cy50b1N0cmluZygidXRmMTZsZSIsbyk7aWYoaSl7dmFyIGE9aS5jaGFyQ29kZUF0KGkubGVuZ3RoLTEpO2lmKGE+PTU1Mjk2JiZhPD01NjMxOSlyZXR1cm4gdGhpcy5sYXN0TmVlZD0yLHRoaXMubGFzdFRvdGFsPTQsdGhpcy5sYXN0Q2hhclswXT1zW3MubGVuZ3RoLTJdLHRoaXMubGFzdENoYXJbMV09c1tzLmxlbmd0aC0xXSxpLnNsaWNlKDAsLTEpfXJldHVybiBpfXJldHVybiB0aGlzLmxhc3ROZWVkPTEsdGhpcy5sYXN0VG90YWw9Mix0aGlzLmxhc3RDaGFyWzBdPXNbcy5sZW5ndGgtMV0scy50b1N0cmluZygidXRmMTZsZSIsbyxzLmxlbmd0aC0xKX1mdW5jdGlvbiB1dGYxNkVuZChzKXt2YXIgbz1zJiZzLmxlbmd0aD90aGlzLndyaXRlKHMpOiIiO2lmKHRoaXMubGFzdE5lZWQpe3ZhciBpPXRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQ7cmV0dXJuIG8rdGhpcy5sYXN0Q2hhci50b1N0cmluZygidXRmMTZsZSIsMCxpKX1yZXR1cm4gb31mdW5jdGlvbiBiYXNlNjRUZXh0KHMsbyl7dmFyIGk9KHMubGVuZ3RoLW8pJTM7cmV0dXJuIDA9PT1pP3MudG9TdHJpbmcoImJhc2U2NCIsbyk6KHRoaXMubGFzdE5lZWQ9My1pLHRoaXMubGFzdFRvdGFsPTMsMT09PWk/dGhpcy5sYXN0Q2hhclswXT1zW3MubGVuZ3RoLTFdOih0aGlzLmxhc3RDaGFyWzBdPXNbcy5sZW5ndGgtMl0sdGhpcy5sYXN0Q2hhclsxXT1zW3MubGVuZ3RoLTFdKSxzLnRvU3RyaW5nKCJiYXNlNjQiLG8scy5sZW5ndGgtaSkpfWZ1bmN0aW9uIGJhc2U2NEVuZChzKXt2YXIgbz1zJiZzLmxlbmd0aD90aGlzLndyaXRlKHMpOiIiO3JldHVybiB0aGlzLmxhc3ROZWVkP28rdGhpcy5sYXN0Q2hhci50b1N0cmluZygiYmFzZTY0IiwwLDMtdGhpcy5sYXN0TmVlZCk6b31mdW5jdGlvbiBzaW1wbGVXcml0ZShzKXtyZXR1cm4gcy50b1N0cmluZyh0aGlzLmVuY29kaW5nKX1mdW5jdGlvbiBzaW1wbGVFbmQocyl7cmV0dXJuIHMmJnMubGVuZ3RoP3RoaXMud3JpdGUocyk6IiJ9by5JPVN0cmluZ0RlY29kZXIsU3RyaW5nRGVjb2Rlci5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24ocyl7aWYoMD09PXMubGVuZ3RoKXJldHVybiIiO3ZhciBvLGk7aWYodGhpcy5sYXN0TmVlZCl7aWYodm9pZCAwPT09KG89dGhpcy5maWxsTGFzdChzKSkpcmV0dXJuIiI7aT10aGlzLmxhc3ROZWVkLHRoaXMubGFzdE5lZWQ9MH1lbHNlIGk9MDtyZXR1cm4gaTxzLmxlbmd0aD9vP28rdGhpcy50ZXh0KHMsaSk6dGhpcy50ZXh0KHMsaSk6b3x8IiJ9LFN0cmluZ0RlY29kZXIucHJvdG90eXBlLmVuZD1mdW5jdGlvbiB1dGY4RW5kKHMpe3ZhciBvPXMmJnMubGVuZ3RoP3RoaXMud3JpdGUocyk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/bysi77+9IjpvfSxTdHJpbmdEZWNvZGVyLnByb3RvdHlwZS50ZXh0PWZ1bmN0aW9uIHV0ZjhUZXh0KHMsbyl7dmFyIGk9ZnVuY3Rpb24gdXRmOENoZWNrSW5jb21wbGV0ZShzLG8saSl7dmFyIGE9by5sZW5ndGgtMTtpZihhPGkpcmV0dXJuIDA7dmFyIHU9dXRmOENoZWNrQnl0ZShvW2FdKTtpZih1Pj0wKXJldHVybiB1PjAmJihzLmxhc3ROZWVkPXUtMSksdTtpZigtLWE8aXx8LTI9PT11KXJldHVybiAwO2lmKHU9dXRmOENoZWNrQnl0ZShvW2FdKSx1Pj0wKXJldHVybiB1PjAmJihzLmxhc3ROZWVkPXUtMiksdTtpZigtLWE8aXx8LTI9PT11KXJldHVybiAwO2lmKHU9dXRmOENoZWNrQnl0ZShvW2FdKSx1Pj0wKXJldHVybiB1PjAmJigyPT09dT91PTA6cy5sYXN0TmVlZD11LTMpLHU7cmV0dXJuIDB9KHRoaXMscyxvKTtpZighdGhpcy5sYXN0TmVlZClyZXR1cm4gcy50b1N0cmluZygidXRmOCIsbyk7dGhpcy5sYXN0VG90YWw9aTt2YXIgYT1zLmxlbmd0aC0oaS10aGlzLmxhc3ROZWVkKTtyZXR1cm4gcy5jb3B5KHRoaXMubGFzdENoYXIsMCxhKSxzLnRvU3RyaW5nKCJ1dGY4IixvLGEpfSxTdHJpbmdEZWNvZGVyLnByb3RvdHlwZS5maWxsTGFzdD1mdW5jdGlvbihzKXtpZih0aGlzLmxhc3ROZWVkPD1zLmxlbmd0aClyZXR1cm4gcy5jb3B5KHRoaXMubGFzdENoYXIsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLHRoaXMubGFzdE5lZWQpLHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGluZywwLHRoaXMubGFzdFRvdGFsKTtzLmNvcHkodGhpcy5sYXN0Q2hhcix0aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLDAscy5sZW5ndGgpLHRoaXMubGFzdE5lZWQtPXMubGVuZ3RofX0sODMyMjE6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBjcmVhdGVCYXNlRm9yKHMpe3JldHVybiBmdW5jdGlvbihvLGksYSl7Zm9yKHZhciB1PS0xLF89T2JqZWN0KG8pLHc9YShvKSx4PXcubGVuZ3RoO3gtLTspe3ZhciBDPXdbcz94OisrdV07aWYoITE9PT1pKF9bQ10sQyxfKSlicmVha31yZXR1cm4gb319fSw4MzM0OToocyxvLGkpPT57dmFyIGE9aSg4MjE5OSksdT1pKDg2Mzc1KSxfPWkoMzcyNDEpO3MuZXhwb3J0cz1mdW5jdGlvbiBnZXRBbGxLZXlzSW4ocyl7cmV0dXJuIGEocyxfLHUpfX0sODM0ODg6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBpZGVudGl0eShzKXtyZXR1cm4gc319LDgzNjkzOihzLG8saSk9Pnt2YXIgYT1pKDY0ODk0KSx1PWkoNDAzNDYpO3MuZXhwb3J0cz1mdW5jdGlvbiBpc0FycmF5TGlrZU9iamVjdChzKXtyZXR1cm4gdShzKSYmYShzKX19LDgzNzI5OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gYXJyYXlFYWNoKHMsbyl7Zm9yKHZhciBpPS0xLGE9bnVsbD09cz8wOnMubGVuZ3RoOysraTxhJiYhMSE9PW8oc1tpXSxpLHMpOyk7cmV0dXJuIHN9fSw4NDA1ODoocyxvLGkpPT57dmFyIGE9aSgxNDc5MiksdT1pKDQ1NTM5KSgoZnVuY3Rpb24ocyxvLGkpe3JldHVybiBvPW8udG9Mb3dlckNhc2UoKSxzKyhpP2Eobyk6byl9KSk7cy5leHBvcnRzPXV9LDg0MTk1OihzLG8saSk9Pnt2YXIgYT1pKDY2OTc3KSx1PWkoMzg4MTYpLF89dSgoZnVuY3Rpb24ocyxvKXtyZXR1cm4gYShzLDI1Nix2b2lkIDAsdm9pZCAwLHZvaWQgMCxvKX0pKTtzLmV4cG9ydHM9X30sODQyNDc6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBzZXRUb0FycmF5KHMpe3ZhciBvPS0xLGk9QXJyYXkocy5zaXplKTtyZXR1cm4gcy5mb3JFYWNoKChmdW5jdGlvbihzKXtpWysrb109c30pKSxpfX0sODQ2Mjk6cz0+e3MuZXhwb3J0cz17fX0sODQ4NTE6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0IjtzLmV4cG9ydHM9aSg4NTQwMSl9LDg0OTc3OihzLG8saSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBhPWZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocyl7cmV0dXJuIHMmJnMuX19lc01vZHVsZT9zOntkZWZhdWx0OnN9fShpKDk0MDQpKSx1PWkoNTU2NzQpO28uZGVmYXVsdD1mdW5jdGlvbihzKXt2YXIgbz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06YS5kZWZhdWx0Lk1hcCxpPU9iamVjdC5rZXlzKHMpO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpvKCksXz1hcmd1bWVudHNbMV07cmV0dXJuIGEud2l0aE11dGF0aW9ucygoZnVuY3Rpb24obyl7aS5mb3JFYWNoKChmdW5jdGlvbihpKXt2YXIgYT0oMCxzW2ldKShvLmdldChpKSxfKTsoMCx1LnZhbGlkYXRlTmV4dFN0YXRlKShhLGksXyksby5zZXQoaSxhKX0pKX0pKX19LHMuZXhwb3J0cz1vLmRlZmF1bHR9LDg1MDE1OihzLG8saSk9Pnt2YXIgYT1pKDcyNTUyKSx1PWkoNTY0NDkpLF89aSg0MDM0Nik7cy5leHBvcnRzPWZ1bmN0aW9uIGlzU3RyaW5nKHMpe3JldHVybiJzdHJpbmciPT10eXBlb2Ygc3x8IXUocykmJl8ocykmJiJbb2JqZWN0IFN0cmluZ10iPT1hKHMpfX0sODUwODc6KHMsbyxpKT0+e3ZhciBhPWkoMzA5ODApLHU9aSgzNzM4MSksXz1pKDYyMjg0KSx3PWkoNTM3NTgpO3MuZXhwb3J0cz1mdW5jdGlvbiBpc0xhemlhYmxlKHMpe3ZhciBvPV8ocyksaT13W29dO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBpfHwhKG8gaW4gYS5wcm90b3R5cGUpKXJldHVybiExO2lmKHM9PT1pKXJldHVybiEwO3ZhciB4PXUoaSk7cmV0dXJuISF4JiZzPT09eFswXX19LDg1MTA1OnM9PntzLmV4cG9ydHM9Y2xhc3MgSlNPTlNlcmlhbGlzZXJ7Y29uc3RydWN0b3Iocyl7dGhpcy5uYW1lc3BhY2U9c3x8bmV3IHRoaXMuTmFtZXNwYWNlfXNlcmlhbGlzZShzKXtpZighKHMgaW5zdGFuY2VvZiB0aGlzLm5hbWVzcGFjZS5lbGVtZW50cy5FbGVtZW50KSl0aHJvdyBuZXcgVHlwZUVycm9yKGBHaXZlbiBlbGVtZW50IFxgJHtzfVxgIGlzIG5vdCBhbiBFbGVtZW50IGluc3RhbmNlYCk7Y29uc3Qgbz17ZWxlbWVudDpzLmVsZW1lbnR9O3MuX21ldGEmJnMuX21ldGEubGVuZ3RoPjAmJihvLm1ldGE9dGhpcy5zZXJpYWxpc2VPYmplY3Qocy5tZXRhKSkscy5fYXR0cmlidXRlcyYmcy5fYXR0cmlidXRlcy5sZW5ndGg+MCYmKG8uYXR0cmlidXRlcz10aGlzLnNlcmlhbGlzZU9iamVjdChzLmF0dHJpYnV0ZXMpKTtjb25zdCBpPXRoaXMuc2VyaWFsaXNlQ29udGVudChzLmNvbnRlbnQpO3JldHVybiB2b2lkIDAhPT1pJiYoby5jb250ZW50PWkpLG99ZGVzZXJpYWxpc2Uocyl7aWYoIXMuZWxlbWVudCl0aHJvdyBuZXcgRXJyb3IoIkdpdmVuIHZhbHVlIGlzIG5vdCBhbiBvYmplY3QgY29udGFpbmluZyBhbiBlbGVtZW50IG5hbWUiKTtjb25zdCBvPW5ldyh0aGlzLm5hbWVzcGFjZS5nZXRFbGVtZW50Q2xhc3Mocy5lbGVtZW50KSk7by5lbGVtZW50IT09cy5lbGVtZW50JiYoby5lbGVtZW50PXMuZWxlbWVudCkscy5tZXRhJiZ0aGlzLmRlc2VyaWFsaXNlT2JqZWN0KHMubWV0YSxvLm1ldGEpLHMuYXR0cmlidXRlcyYmdGhpcy5kZXNlcmlhbGlzZU9iamVjdChzLmF0dHJpYnV0ZXMsby5hdHRyaWJ1dGVzKTtjb25zdCBpPXRoaXMuZGVzZXJpYWxpc2VDb250ZW50KHMuY29udGVudCk7cmV0dXJuIHZvaWQgMD09PWkmJm51bGwhPT1vLmNvbnRlbnR8fChvLmNvbnRlbnQ9aSksb31zZXJpYWxpc2VDb250ZW50KHMpe2lmKHMgaW5zdGFuY2VvZiB0aGlzLm5hbWVzcGFjZS5lbGVtZW50cy5FbGVtZW50KXJldHVybiB0aGlzLnNlcmlhbGlzZShzKTtpZihzIGluc3RhbmNlb2YgdGhpcy5uYW1lc3BhY2UuS2V5VmFsdWVQYWlyKXtjb25zdCBvPXtrZXk6dGhpcy5zZXJpYWxpc2Uocy5rZXkpfTtyZXR1cm4gcy52YWx1ZSYmKG8udmFsdWU9dGhpcy5zZXJpYWxpc2Uocy52YWx1ZSkpLG99aWYocyYmcy5tYXApe2lmKDA9PT1zLmxlbmd0aClyZXR1cm47cmV0dXJuIHMubWFwKHRoaXMuc2VyaWFsaXNlLHRoaXMpfXJldHVybiBzfWRlc2VyaWFsaXNlQ29udGVudChzKXtpZihzKXtpZihzLmVsZW1lbnQpcmV0dXJuIHRoaXMuZGVzZXJpYWxpc2Uocyk7aWYocy5rZXkpe2NvbnN0IG89bmV3IHRoaXMubmFtZXNwYWNlLktleVZhbHVlUGFpcih0aGlzLmRlc2VyaWFsaXNlKHMua2V5KSk7cmV0dXJuIHMudmFsdWUmJihvLnZhbHVlPXRoaXMuZGVzZXJpYWxpc2Uocy52YWx1ZSkpLG99aWYocy5tYXApcmV0dXJuIHMubWFwKHRoaXMuZGVzZXJpYWxpc2UsdGhpcyl9cmV0dXJuIHN9c2VyaWFsaXNlT2JqZWN0KHMpe2NvbnN0IG89e307aWYocy5mb3JFYWNoKCgocyxpKT0+e3MmJihvW2kudG9WYWx1ZSgpXT10aGlzLnNlcmlhbGlzZShzKSl9KSksMCE9PU9iamVjdC5rZXlzKG8pLmxlbmd0aClyZXR1cm4gb31kZXNlcmlhbGlzZU9iamVjdChzLG8pe09iamVjdC5rZXlzKHMpLmZvckVhY2goKGk9PntvLnNldChpLHRoaXMuZGVzZXJpYWxpc2Uoc1tpXSkpfSkpfX19LDg1MTYwOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg5NjU0MCk7dmFyIHU9ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5pcz9PYmplY3QuaXM6ZnVuY3Rpb24gaXMocyxvKXtyZXR1cm4gcz09PW8mJigwIT09c3x8MS9zPT0xL28pfHxzIT1zJiZvIT1vfSxfPWEudXNlU3luY0V4dGVybmFsU3RvcmUsdz1hLnVzZVJlZix4PWEudXNlRWZmZWN0LEM9YS51c2VNZW1vLGo9YS51c2VEZWJ1Z1ZhbHVlfSw4NTI1MDoocyxvLGkpPT57dmFyIGE9aSgzNzIxNyksdT1pKDg3ODA1KSxfPWkoODY2NDkpLHc9aSg0MjgyNCkseD1pKDIzODA1KSxDPWkoMzcyNDEpLGo9aSgxNDk3NCk7cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VNZXJnZShzLG8saSxMLEIpe3MhPT1vJiZfKG8sKGZ1bmN0aW9uKF8sQyl7aWYoQnx8KEI9bmV3IGEpLHgoXykpdyhzLG8sQyxpLGJhc2VNZXJnZSxMLEIpO2Vsc2V7dmFyICQ9TD9MKGoocyxDKSxfLEMrIiIscyxvLEIpOnZvaWQgMDt2b2lkIDA9PT0kJiYoJD1fKSx1KHMsQywkKX19KSxDKX19LDg1NDAxOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg0NjIpO3MuZXhwb3J0cz1hfSw4NTQ2MzpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VJc05hTihzKXtyZXR1cm4gcyE9c319LDg1NTU4OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZVJlZHVjZShzLG8saSxhLHUpe3JldHVybiB1KHMsKGZ1bmN0aW9uKHMsdSxfKXtpPWE/KGE9ITEscyk6byhpLHMsdSxfKX0pKSxpfX0sODU1ODI6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDkyMDQ2KSx1PWkoNDU5NTEpLF89aSg2MjI1MCksYUZ1bmN0aW9uPWZ1bmN0aW9uKHMpe3JldHVybiBfKHMpP3M6dm9pZCAwfTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP2FGdW5jdGlvbihhW3NdKXx8YUZ1bmN0aW9uKHVbc10pOmFbc10mJmFbc11bb118fHVbc10mJnVbc11bb119fSw4NTU4NzoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMjYzMTEpLHU9Y3JlYXRlKEVycm9yKTtmdW5jdGlvbiBjcmVhdGUocyl7cmV0dXJuIEZvcm1hdHRlZEVycm9yLmRpc3BsYXlOYW1lPXMuZGlzcGxheU5hbWV8fHMubmFtZSxGb3JtYXR0ZWRFcnJvcjtmdW5jdGlvbiBGb3JtYXR0ZWRFcnJvcihvKXtyZXR1cm4gbyYmKG89YS5hcHBseShudWxsLGFyZ3VtZW50cykpLG5ldyBzKG8pfX1zLmV4cG9ydHM9dSx1LmV2YWw9Y3JlYXRlKEV2YWxFcnJvciksdS5yYW5nZT1jcmVhdGUoUmFuZ2VFcnJvciksdS5yZWZlcmVuY2U9Y3JlYXRlKFJlZmVyZW5jZUVycm9yKSx1LnN5bnRheD1jcmVhdGUoU3ludGF4RXJyb3IpLHUudHlwZT1jcmVhdGUoVHlwZUVycm9yKSx1LnVyaT1jcmVhdGUoVVJJRXJyb3IpLHUuY3JlYXRlPWNyZWF0ZX0sODU3NjI6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDE5MDcpLHU9RXJyb3IsXz1hKCIiLnJlcGxhY2UpLHc9U3RyaW5nKG5ldyB1KCJ6eGNhc2QiKS5zdGFjaykseD0vXG5ccyphdCBbXjpdKjpbXlxuXSovLEM9eC50ZXN0KHcpO3MuZXhwb3J0cz1mdW5jdGlvbihzLG8pe2lmKEMmJiJzdHJpbmciPT10eXBlb2YgcyYmIXUucHJlcGFyZVN0YWNrVHJhY2UpZm9yKDtvLS07KXM9XyhzLHgsIiIpO3JldHVybiBzfX0sODU4MTY6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDM2MTI4KTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gYVtzXXx8KGFbc109b3x8e30pfX0sODU4ODQ6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDYxNjI2KSx1PWkoODU3NjIpLF89aSgyMzg4OCksdz1FcnJvci5jYXB0dXJlU3RhY2tUcmFjZTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvLGkseCl7XyYmKHc/dyhzLG8pOmEocywic3RhY2siLHUoaSx4KSkpfX0sODYwMDk6KHMsbyxpKT0+e3M9aS5ubWQocyk7dmFyIGE9aSgzNDg0MCksdT1vJiYhby5ub2RlVHlwZSYmbyxfPXUmJnMmJiFzLm5vZGVUeXBlJiZzLHc9XyYmXy5leHBvcnRzPT09dSYmYS5wcm9jZXNzLHg9ZnVuY3Rpb24oKXt0cnl7dmFyIHM9XyYmXy5yZXF1aXJlJiZfLnJlcXVpcmUoInV0aWwiKS50eXBlcztyZXR1cm4gc3x8dyYmdy5iaW5kaW5nJiZ3LmJpbmRpbmcoInV0aWwiKX1jYXRjaChzKXt9fSgpO3MuZXhwb3J0cz14fSw4NjA0ODpzPT57InVzZSBzdHJpY3QiO3ZhciBvPXt9O2Z1bmN0aW9uIGNyZWF0ZUVycm9yVHlwZShzLGksYSl7YXx8KGE9RXJyb3IpO3ZhciB1PWZ1bmN0aW9uKHMpe2Z1bmN0aW9uIE5vZGVFcnJvcihvLGEsdSl7cmV0dXJuIHMuY2FsbCh0aGlzLGZ1bmN0aW9uIGdldE1lc3NhZ2UocyxvLGEpe3JldHVybiJzdHJpbmciPT10eXBlb2YgaT9pOmkocyxvLGEpfShvLGEsdSkpfHx0aGlzfXJldHVybiBmdW5jdGlvbiBfaW5oZXJpdHNMb29zZShzLG8pe3MucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoby5wcm90b3R5cGUpLHMucHJvdG90eXBlLmNvbnN0cnVjdG9yPXMscy5fX3Byb3RvX189b30oTm9kZUVycm9yLHMpLE5vZGVFcnJvcn0oYSk7dS5wcm90b3R5cGUubmFtZT1hLm5hbWUsdS5wcm90b3R5cGUuY29kZT1zLG9bc109dX1mdW5jdGlvbiBvbmVPZihzLG8pe2lmKEFycmF5LmlzQXJyYXkocykpe3ZhciBpPXMubGVuZ3RoO3JldHVybiBzPXMubWFwKChmdW5jdGlvbihzKXtyZXR1cm4gU3RyaW5nKHMpfSkpLGk+Mj8ib25lIG9mICIuY29uY2F0KG8sIiAiKS5jb25jYXQocy5zbGljZSgwLGktMSkuam9pbigiLCAiKSwiLCBvciAiKStzW2ktMV06Mj09PWk/Im9uZSBvZiAiLmNvbmNhdChvLCIgIikuY29uY2F0KHNbMF0sIiBvciAiKS5jb25jYXQoc1sxXSk6Im9mICIuY29uY2F0KG8sIiAiKS5jb25jYXQoc1swXSl9cmV0dXJuIm9mICIuY29uY2F0KG8sIiAiKS5jb25jYXQoU3RyaW5nKHMpKX1jcmVhdGVFcnJvclR5cGUoIkVSUl9JTlZBTElEX09QVF9WQUxVRSIsKGZ1bmN0aW9uKHMsbyl7cmV0dXJuJ1RoZSB2YWx1ZSAiJytvKyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAiJytzKyciJ30pLFR5cGVFcnJvciksY3JlYXRlRXJyb3JUeXBlKCJFUlJfSU5WQUxJRF9BUkdfVFlQRSIsKGZ1bmN0aW9uKHMsbyxpKXt2YXIgYSx1O2lmKCJzdHJpbmciPT10eXBlb2YgbyYmZnVuY3Rpb24gc3RhcnRzV2l0aChzLG8saSl7cmV0dXJuIHMuc3Vic3RyKCFpfHxpPDA/MDoraSxvLmxlbmd0aCk9PT1vfShvLCJub3QgIik/KGE9Im11c3Qgbm90IGJlIixvPW8ucmVwbGFjZSgvXm5vdCAvLCIiKSk6YT0ibXVzdCBiZSIsZnVuY3Rpb24gZW5kc1dpdGgocyxvLGkpe3JldHVybih2b2lkIDA9PT1pfHxpPnMubGVuZ3RoKSYmKGk9cy5sZW5ndGgpLHMuc3Vic3RyaW5nKGktby5sZW5ndGgsaSk9PT1vfShzLCIgYXJndW1lbnQiKSl1PSJUaGUgIi5jb25jYXQocywiICIpLmNvbmNhdChhLCIgIikuY29uY2F0KG9uZU9mKG8sInR5cGUiKSk7ZWxzZXt2YXIgXz1mdW5jdGlvbiBpbmNsdWRlcyhzLG8saSl7cmV0dXJuIm51bWJlciIhPXR5cGVvZiBpJiYoaT0wKSwhKGkrby5sZW5ndGg+cy5sZW5ndGgpJiYtMSE9PXMuaW5kZXhPZihvLGkpfShzLCIuIik/InByb3BlcnR5IjoiYXJndW1lbnQiO3U9J1RoZSAiJy5jb25jYXQocywnIiAnKS5jb25jYXQoXywiICIpLmNvbmNhdChhLCIgIikuY29uY2F0KG9uZU9mKG8sInR5cGUiKSl9cmV0dXJuIHUrPSIuIFJlY2VpdmVkIHR5cGUgIi5jb25jYXQodHlwZW9mIGkpfSksVHlwZUVycm9yKSxjcmVhdGVFcnJvclR5cGUoIkVSUl9TVFJFQU1fUFVTSF9BRlRFUl9FT0YiLCJzdHJlYW0ucHVzaCgpIGFmdGVyIEVPRiIpLGNyZWF0ZUVycm9yVHlwZSgiRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQiLChmdW5jdGlvbihzKXtyZXR1cm4iVGhlICIrcysiIG1ldGhvZCBpcyBub3QgaW1wbGVtZW50ZWQifSkpLGNyZWF0ZUVycm9yVHlwZSgiRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0UiLCJQcmVtYXR1cmUgY2xvc2UiKSxjcmVhdGVFcnJvclR5cGUoIkVSUl9TVFJFQU1fREVTVFJPWUVEIiwoZnVuY3Rpb24ocyl7cmV0dXJuIkNhbm5vdCBjYWxsICIrcysiIGFmdGVyIGEgc3RyZWFtIHdhcyBkZXN0cm95ZWQifSkpLGNyZWF0ZUVycm9yVHlwZSgiRVJSX01VTFRJUExFX0NBTExCQUNLIiwiQ2FsbGJhY2sgY2FsbGVkIG11bHRpcGxlIHRpbWVzIiksY3JlYXRlRXJyb3JUeXBlKCJFUlJfU1RSRUFNX0NBTk5PVF9QSVBFIiwiQ2Fubm90IHBpcGUsIG5vdCByZWFkYWJsZSIpLGNyZWF0ZUVycm9yVHlwZSgiRVJSX1NUUkVBTV9XUklURV9BRlRFUl9FTkQiLCJ3cml0ZSBhZnRlciBlbmQiKSxjcmVhdGVFcnJvclR5cGUoIkVSUl9TVFJFQU1fTlVMTF9WQUxVRVMiLCJNYXkgbm90IHdyaXRlIG51bGwgdmFsdWVzIHRvIHN0cmVhbSIsVHlwZUVycm9yKSxjcmVhdGVFcnJvclR5cGUoIkVSUl9VTktOT1dOX0VOQ09ESU5HIiwoZnVuY3Rpb24ocyl7cmV0dXJuIlVua25vd24gZW5jb2Rpbmc6ICIrc30pLFR5cGVFcnJvciksY3JlYXRlRXJyb3JUeXBlKCJFUlJfU1RSRUFNX1VOU0hJRlRfQUZURVJfRU5EX0VWRU5UIiwic3RyZWFtLnVuc2hpZnQoKSBhZnRlciBlbmQgZXZlbnQiKSxzLmV4cG9ydHMuRj1vfSw4NjIxNTpmdW5jdGlvbihzLG8pe3ZhciBpLGEsdTthPVtdLGk9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGlzTmF0aXZlU21vb3RoU2Nyb2xsRW5hYmxlZE9uPWZ1bmN0aW9uKHMpe3JldHVybiBzJiYiZ2V0Q29tcHV0ZWRTdHlsZSJpbiB3aW5kb3cmJiJzbW9vdGgiPT09d2luZG93LmdldENvbXB1dGVkU3R5bGUocylbInNjcm9sbC1iZWhhdmlvciJdfTtpZigidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvd3x8ISgiZG9jdW1lbnQiaW4gd2luZG93KSlyZXR1cm57fTt2YXIgbWFrZVNjcm9sbGVyPWZ1bmN0aW9uKHMsbyxpKXt2YXIgYTtvPW98fDk5OSxpfHwwPT09aXx8KGk9OSk7dmFyIHNldFNjcm9sbFRpbWVvdXRJZD1mdW5jdGlvbihzKXthPXN9LHN0b3BTY3JvbGw9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoYSksc2V0U2Nyb2xsVGltZW91dElkKDApfSxnZXRUb3BXaXRoRWRnZU9mZnNldD1mdW5jdGlvbihvKXtyZXR1cm4gTWF0aC5tYXgoMCxzLmdldFRvcE9mKG8pLWkpfSxzY3JvbGxUb1k9ZnVuY3Rpb24oaSxhLHUpe2lmKHN0b3BTY3JvbGwoKSwwPT09YXx8YSYmYTwwfHxpc05hdGl2ZVNtb290aFNjcm9sbEVuYWJsZWRPbihzLmJvZHkpKXMudG9ZKGkpLHUmJnUoKTtlbHNle3ZhciBfPXMuZ2V0WSgpLHc9TWF0aC5tYXgoMCxpKS1fLHg9KG5ldyBEYXRlKS5nZXRUaW1lKCk7YT1hfHxNYXRoLm1pbihNYXRoLmFicyh3KSxvKSxmdW5jdGlvbiBsb29wU2Nyb2xsKCl7c2V0U2Nyb2xsVGltZW91dElkKHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dmFyIG89TWF0aC5taW4oMSwoKG5ldyBEYXRlKS5nZXRUaW1lKCkteCkvYSksaT1NYXRoLm1heCgwLE1hdGguZmxvb3IoXyt3KihvPC41PzIqbypvOm8qKDQtMipvKS0xKSkpO3MudG9ZKGkpLG88MSYmcy5nZXRIZWlnaHQoKStpPHMuYm9keS5zY3JvbGxIZWlnaHQ/bG9vcFNjcm9sbCgpOihzZXRUaW1lb3V0KHN0b3BTY3JvbGwsOTkpLHUmJnUoKSl9KSw5KSl9KCl9fSxzY3JvbGxUb0VsZW09ZnVuY3Rpb24ocyxvLGkpe3Njcm9sbFRvWShnZXRUb3BXaXRoRWRnZU9mZnNldChzKSxvLGkpfSxzY3JvbGxJbnRvVmlldz1mdW5jdGlvbihvLGEsdSl7dmFyIF89by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQsdz1zLmdldFRvcE9mKG8pK18seD1zLmdldEhlaWdodCgpLEM9cy5nZXRZKCksaj1DK3g7Z2V0VG9wV2l0aEVkZ2VPZmZzZXQobyk8Q3x8XytpPng/c2Nyb2xsVG9FbGVtKG8sYSx1KTp3K2k+aj9zY3JvbGxUb1kody14K2ksYSx1KTp1JiZ1KCl9LHNjcm9sbFRvQ2VudGVyT2Y9ZnVuY3Rpb24obyxpLGEsdSl7c2Nyb2xsVG9ZKE1hdGgubWF4KDAscy5nZXRUb3BPZihvKS1zLmdldEhlaWdodCgpLzIrKGF8fG8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0LzIpKSxpLHUpfTtyZXR1cm57c2V0dXA6ZnVuY3Rpb24ocyxhKXtyZXR1cm4oMD09PXN8fHMpJiYobz1zKSwoMD09PWF8fGEpJiYoaT1hKSx7ZGVmYXVsdER1cmF0aW9uOm8sZWRnZU9mZnNldDppfX0sdG86c2Nyb2xsVG9FbGVtLHRvWTpzY3JvbGxUb1ksaW50b1ZpZXc6c2Nyb2xsSW50b1ZpZXcsY2VudGVyOnNjcm9sbFRvQ2VudGVyT2Ysc3RvcDpzdG9wU2Nyb2xsLG1vdmluZzpmdW5jdGlvbigpe3JldHVybiEhYX0sZ2V0WTpzLmdldFksZ2V0VG9wT2Y6cy5nZXRUb3BPZn19LHM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGdldERvY1k9ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnNjcm9sbFl8fHMuc2Nyb2xsVG9wfSxvPW1ha2VTY3JvbGxlcih7Ym9keTpkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50fHxkb2N1bWVudC5ib2R5LHRvWTpmdW5jdGlvbihzKXt3aW5kb3cuc2Nyb2xsVG8oMCxzKX0sZ2V0WTpnZXREb2NZLGdldEhlaWdodDpmdW5jdGlvbigpe3JldHVybiB3aW5kb3cuaW5uZXJIZWlnaHR8fHMuY2xpZW50SGVpZ2h0fSxnZXRUb3BPZjpmdW5jdGlvbihvKXtyZXR1cm4gby5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3ArZ2V0RG9jWSgpLXMub2Zmc2V0VG9wfX0pO2lmKG8uY3JlYXRlU2Nyb2xsZXI9ZnVuY3Rpb24obyxpLGEpe3JldHVybiBtYWtlU2Nyb2xsZXIoe2JvZHk6byx0b1k6ZnVuY3Rpb24ocyl7by5zY3JvbGxUb3A9c30sZ2V0WTpmdW5jdGlvbigpe3JldHVybiBvLnNjcm9sbFRvcH0sZ2V0SGVpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgubWluKG8uY2xpZW50SGVpZ2h0LHdpbmRvdy5pbm5lckhlaWdodHx8cy5jbGllbnRIZWlnaHQpfSxnZXRUb3BPZjpmdW5jdGlvbihzKXtyZXR1cm4gcy5vZmZzZXRUb3B9fSxpLGEpfSwiYWRkRXZlbnRMaXN0ZW5lciJpbiB3aW5kb3cmJiF3aW5kb3cubm9aZW5zbW9vdGgmJiFpc05hdGl2ZVNtb290aFNjcm9sbEVuYWJsZWRPbihkb2N1bWVudC5ib2R5KSl7dmFyIGk9Imhpc3RvcnkiaW4gd2luZG93JiYicHVzaFN0YXRlImluIGhpc3RvcnksYT1pJiYic2Nyb2xsUmVzdG9yYXRpb24iaW4gaGlzdG9yeTthJiYoaGlzdG9yeS5zY3JvbGxSZXN0b3JhdGlvbj0iYXV0byIpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoZnVuY3Rpb24oKXthJiYoc2V0VGltZW91dCgoZnVuY3Rpb24oKXtoaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uPSJtYW51YWwifSksOSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIiwoZnVuY3Rpb24ocyl7cy5zdGF0ZSYmInplbnNjcm9sbFkiaW4gcy5zdGF0ZSYmby50b1kocy5zdGF0ZS56ZW5zY3JvbGxZKX0pLCExKSksd2luZG93LmxvY2F0aW9uLmhhc2gmJnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dmFyIHM9by5zZXR1cCgpLmVkZ2VPZmZzZXQ7aWYocyl7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQod2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoIiMiKVsxXSk7aWYoaSl7dmFyIGE9TWF0aC5tYXgoMCxvLmdldFRvcE9mKGkpLXMpLHU9by5nZXRZKCktYTswPD11JiZ1PDkmJndpbmRvdy5zY3JvbGxUbygwLGEpfX19KSw5KX0pLCExKTt2YXIgdT1uZXcgUmVnRXhwKCIoXnxcXHMpbm9aZW5zbW9vdGgoXFxzfCQpIik7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoZnVuY3Rpb24ocyl7Zm9yKHZhciBfPXMudGFyZ2V0O18mJiJBIiE9PV8udGFnTmFtZTspXz1fLnBhcmVudE5vZGU7aWYoISghX3x8MSE9PXMud2hpY2h8fHMuc2hpZnRLZXl8fHMubWV0YUtleXx8cy5jdHJsS2V5fHxzLmFsdEtleSkpe2lmKGEpe3ZhciB3PWhpc3Rvcnkuc3RhdGUmJiJvYmplY3QiPT10eXBlb2YgaGlzdG9yeS5zdGF0ZT9oaXN0b3J5LnN0YXRlOnt9O3cuemVuc2Nyb2xsWT1vLmdldFkoKTt0cnl7aGlzdG9yeS5yZXBsYWNlU3RhdGUodywiIil9Y2F0Y2gocyl7fX12YXIgeD1fLmdldEF0dHJpYnV0ZSgiaHJlZiIpfHwiIjtpZigwPT09eC5pbmRleE9mKCIjIikmJiF1LnRlc3QoXy5jbGFzc05hbWUpKXt2YXIgQz0wLGo9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeC5zdWJzdHJpbmcoMSkpO2lmKCIjIiE9PXgpe2lmKCFqKXJldHVybjtDPW8uZ2V0VG9wT2Yoail9cy5wcmV2ZW50RGVmYXVsdCgpO3ZhciBvbkRvbmU9ZnVuY3Rpb24oKXt3aW5kb3cubG9jYXRpb249eH0sTD1vLnNldHVwKCkuZWRnZU9mZnNldDtMJiYoQz1NYXRoLm1heCgwLEMtTCksaSYmKG9uRG9uZT1mdW5jdGlvbigpe2hpc3RvcnkucHVzaFN0YXRlKHt9LCIiLHgpfSkpLG8udG9ZKEMsbnVsbCxvbkRvbmUpfX19KSwhMSl9cmV0dXJuIG99KCksdm9pZCAwPT09KHU9ImZ1bmN0aW9uIj09dHlwZW9mIGk/aS5hcHBseShvLGEpOmkpfHwocy5leHBvcnRzPXUpfSw4NjIzODoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoODYwNDgpLkYuRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0U7ZnVuY3Rpb24gbm9vcCgpe31zLmV4cG9ydHM9ZnVuY3Rpb24gZW9zKHMsbyxpKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgbylyZXR1cm4gZW9zKHMsbnVsbCxvKTtvfHwobz17fSksaT1mdW5jdGlvbiBvbmNlKHMpe3ZhciBvPSExO3JldHVybiBmdW5jdGlvbigpe2lmKCFvKXtvPSEwO2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KGkpLHU9MDt1PGk7dSsrKWFbdV09YXJndW1lbnRzW3VdO3MuYXBwbHkodGhpcyxhKX19fShpfHxub29wKTt2YXIgdT1vLnJlYWRhYmxlfHwhMSE9PW8ucmVhZGFibGUmJnMucmVhZGFibGUsXz1vLndyaXRhYmxlfHwhMSE9PW8ud3JpdGFibGUmJnMud3JpdGFibGUsdz1mdW5jdGlvbiBvbmxlZ2FjeWZpbmlzaCgpe3Mud3JpdGFibGV8fEMoKX0seD1zLl93cml0YWJsZVN0YXRlJiZzLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkLEM9ZnVuY3Rpb24gb25maW5pc2goKXtfPSExLHg9ITAsdXx8aS5jYWxsKHMpfSxqPXMuX3JlYWRhYmxlU3RhdGUmJnMuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCxMPWZ1bmN0aW9uIG9uZW5kKCl7dT0hMSxqPSEwLF98fGkuY2FsbChzKX0sQj1mdW5jdGlvbiBvbmVycm9yKG8pe2kuY2FsbChzLG8pfSwkPWZ1bmN0aW9uIG9uY2xvc2UoKXt2YXIgbztyZXR1cm4gdSYmIWo/KHMuX3JlYWRhYmxlU3RhdGUmJnMuX3JlYWRhYmxlU3RhdGUuZW5kZWR8fChvPW5ldyBhKSxpLmNhbGwocyxvKSk6XyYmIXg/KHMuX3dyaXRhYmxlU3RhdGUmJnMuX3dyaXRhYmxlU3RhdGUuZW5kZWR8fChvPW5ldyBhKSxpLmNhbGwocyxvKSk6dm9pZCAwfSxWPWZ1bmN0aW9uIG9ucmVxdWVzdCgpe3MucmVxLm9uKCJmaW5pc2giLEMpfTtyZXR1cm4hZnVuY3Rpb24gaXNSZXF1ZXN0KHMpe3JldHVybiBzLnNldEhlYWRlciYmImZ1bmN0aW9uIj09dHlwZW9mIHMuYWJvcnR9KHMpP18mJiFzLl93cml0YWJsZVN0YXRlJiYocy5vbigiZW5kIix3KSxzLm9uKCJjbG9zZSIsdykpOihzLm9uKCJjb21wbGV0ZSIsQykscy5vbigiYWJvcnQiLCQpLHMucmVxP1YoKTpzLm9uKCJyZXF1ZXN0IixWKSkscy5vbigiZW5kIixMKSxzLm9uKCJmaW5pc2giLEMpLCExIT09by5lcnJvciYmcy5vbigiZXJyb3IiLEIpLHMub24oImNsb3NlIiwkKSxmdW5jdGlvbigpe3MucmVtb3ZlTGlzdGVuZXIoImNvbXBsZXRlIixDKSxzLnJlbW92ZUxpc3RlbmVyKCJhYm9ydCIsJCkscy5yZW1vdmVMaXN0ZW5lcigicmVxdWVzdCIsVikscy5yZXEmJnMucmVxLnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLEMpLHMucmVtb3ZlTGlzdGVuZXIoImVuZCIsdykscy5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLHcpLHMucmVtb3ZlTGlzdGVuZXIoImZpbmlzaCIsQykscy5yZW1vdmVMaXN0ZW5lcigiZW5kIixMKSxzLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsQikscy5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLCQpfX19LDg2MzAzOihzLG8saSk9Pntjb25zdCBhPWkoMTAzMTYpO3MuZXhwb3J0cz1jbGFzcyBMaW5rRWxlbWVudCBleHRlbmRzIGF7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHN8fFtdLG8saSksdGhpcy5lbGVtZW50PSJsaW5rIn1nZXQgcmVsYXRpb24oKXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzLmdldCgicmVsYXRpb24iKX1zZXQgcmVsYXRpb24ocyl7dGhpcy5hdHRyaWJ1dGVzLnNldCgicmVsYXRpb24iLHMpfWdldCBocmVmKCl7cmV0dXJuIHRoaXMuYXR0cmlidXRlcy5nZXQoImhyZWYiKX1zZXQgaHJlZihzKXt0aGlzLmF0dHJpYnV0ZXMuc2V0KCJocmVmIixzKX19fSw4NjM3NToocyxvLGkpPT57dmFyIGE9aSgxNDUyOCksdT1pKDI4ODc5KSxfPWkoNDY2NCksdz1pKDYzMzQ1KSx4PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM/ZnVuY3Rpb24ocyl7Zm9yKHZhciBvPVtdO3M7KWEobyxfKHMpKSxzPXUocyk7cmV0dXJuIG99Onc7cy5leHBvcnRzPXh9LDg2NjQ5OihzLG8saSk9Pnt2YXIgYT1pKDgzMjIxKSgpO3MuZXhwb3J0cz1hfSw4NjgwNDoocyxvLGkpPT57Y29uc3QgYT1pKDEwMzE2KSx1PWkoNDEwNjcpLF89aSg3MTE2Nyksdz1pKDQwMjM5KSx4PWkoMTIyNDIpLEM9aSg2MjMzKSxqPWkoODc3MjYpLEw9aSg2MTA0NSksQj1pKDg2MzAzKSwkPWkoMTQ1NDApLFY9aSg5MjM0MCksVT1pKDEwODY2KSx6PWkoNTU5NzMpO2Z1bmN0aW9uIHJlZnJhY3Qocyl7aWYocyBpbnN0YW5jZW9mIGEpcmV0dXJuIHM7aWYoInN0cmluZyI9PXR5cGVvZiBzKXJldHVybiBuZXcgXyhzKTtpZigibnVtYmVyIj09dHlwZW9mIHMpcmV0dXJuIG5ldyB3KHMpO2lmKCJib29sZWFuIj09dHlwZW9mIHMpcmV0dXJuIG5ldyB4KHMpO2lmKG51bGw9PT1zKXJldHVybiBuZXcgdTtpZihBcnJheS5pc0FycmF5KHMpKXJldHVybiBuZXcgQyhzLm1hcChyZWZyYWN0KSk7aWYoIm9iamVjdCI9PXR5cGVvZiBzKXtyZXR1cm4gbmV3IEwocyl9cmV0dXJuIHN9YS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudD1MLGEucHJvdG90eXBlLlJlZkVsZW1lbnQ9JCxhLnByb3RvdHlwZS5NZW1iZXJFbGVtZW50PWosYS5wcm90b3R5cGUucmVmcmFjdD1yZWZyYWN0LFYucHJvdG90eXBlLnJlZnJhY3Q9cmVmcmFjdCxzLmV4cG9ydHM9e0VsZW1lbnQ6YSxOdWxsRWxlbWVudDp1LFN0cmluZ0VsZW1lbnQ6XyxOdW1iZXJFbGVtZW50OncsQm9vbGVhbkVsZW1lbnQ6eCxBcnJheUVsZW1lbnQ6QyxNZW1iZXJFbGVtZW50OmosT2JqZWN0RWxlbWVudDpMLExpbmtFbGVtZW50OkIsUmVmRWxlbWVudDokLHJlZnJhY3QsQXJyYXlTbGljZTpWLE9iamVjdFNsaWNlOlUsS2V5VmFsdWVQYWlyOnp9fSw4NzA2ODoocyxvLGkpPT57dmFyIGE9aSgzNzIxNyksdT1pKDI1OTExKSxfPWkoMjE5ODYpLHc9aSg1MDY4OSkseD1pKDU4NjEpLEM9aSg1NjQ0OSksaj1pKDM2NTYpLEw9aSgzNzE2NyksQj0iW29iamVjdCBBcmd1bWVudHNdIiwkPSJbb2JqZWN0IEFycmF5XSIsVj0iW29iamVjdCBPYmplY3RdIixVPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VJc0VxdWFsRGVlcChzLG8saSx6LFksWil7dmFyIGVlPUMocyksaWU9QyhvKSxhZT1lZT8kOngocyksY2U9aWU/JDp4KG8pLGxlPShhZT1hZT09Qj9WOmFlKT09VixwZT0oY2U9Y2U9PUI/VjpjZSk9PVYsZGU9YWU9PWNlO2lmKGRlJiZqKHMpKXtpZighaihvKSlyZXR1cm4hMTtlZT0hMCxsZT0hMX1pZihkZSYmIWxlKXJldHVybiBafHwoWj1uZXcgYSksZWV8fEwocyk/dShzLG8saSx6LFksWik6XyhzLG8sYWUsaSx6LFksWik7aWYoISgxJmkpKXt2YXIgZmU9bGUmJlUuY2FsbChzLCJfX3dyYXBwZWRfXyIpLHllPXBlJiZVLmNhbGwobywiX193cmFwcGVkX18iKTtpZihmZXx8eWUpe3ZhciBiZT1mZT9zLnZhbHVlKCk6cyxfZT15ZT9vLnZhbHVlKCk6bztyZXR1cm4gWnx8KFo9bmV3IGEpLFkoYmUsX2UsaSx6LFopfX1yZXR1cm4hIWRlJiYoWnx8KFo9bmV3IGEpLHcocyxvLGkseixZLFopKX19LDg3MTM2OnM9PnsidXNlIHN0cmljdCI7cy5leHBvcnRzPWZ1bmN0aW9uKHMpe3JldHVybiBudWxsPT1zfX0sODcxNzA6KHMsbyk9PnsidXNlIHN0cmljdCI7by5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHN9LDg3Mjk2OihzLG8saSk9Pnt2YXIgYSx1PWkoNTU0ODEpLF89KGE9L1teLl0rJC8uZXhlYyh1JiZ1LmtleXMmJnUua2V5cy5JRV9QUk9UT3x8IiIpKT8iU3ltYm9sKHNyYylfMS4iK2E6IiI7cy5leHBvcnRzPWZ1bmN0aW9uIGlzTWFza2VkKHMpe3JldHVybiEhXyYmXyBpbiBzfX0sODc1ODY6KHMsbyxpKT0+e2NvbnN0IGE9aSg2MjA1KSx1PWkoMTAwMjMpLF89ezA6MCx0OjksbjoxMCx2OjExLGY6MTIscjoxM307by5zdHJUb0NoYXJzPWZ1bmN0aW9uKHMpe3JldHVybiBzPXMucmVwbGFjZSgvKFxbXFxiXF0pfChcXCk/XFwoPzp1KFtBLUYwLTldezR9KXx4KFtBLUYwLTldezJ9KXwoMD9bMC03XXsyfSl8YyhbQEEtWltcXFxdXj9dKXwoWzB0bnZmcl0pKS9nLChmdW5jdGlvbihzLG8saSxhLHUsdyx4LEMpe2lmKGkpcmV0dXJuIHM7dmFyIGo9bz84OmE/cGFyc2VJbnQoYSwxNik6dT9wYXJzZUludCh1LDE2KTp3P3BhcnNlSW50KHcsOCk6eD8iQEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV4gPyIuaW5kZXhPZih4KTpfW0NdLEw9U3RyaW5nLmZyb21DaGFyQ29kZShqKTtyZXR1cm4vW1tcXXt9XiQufD8qKygpXS8udGVzdChMKSYmKEw9IlxcIitMKSxMfSkpfSxvLnRva2VuaXplQ2xhc3M9KHMsaSk9Pntmb3IodmFyIF8sdyx4PVtdLEM9L1xcKD86KHcpfChkKXwocyl8KFcpfChEKXwoUykpfCgoPzooPzpcXCkoLil8KFteXF1cXF0pKS0oPzpcXCk/KFteXF1dKSl8KFxdKXwoPzpcXCk/KFteXSkvZztudWxsIT0oXz1DLmV4ZWMocykpOylpZihfWzFdKXgucHVzaCh1LndvcmRzKCkpO2Vsc2UgaWYoX1syXSl4LnB1c2godS5pbnRzKCkpO2Vsc2UgaWYoX1szXSl4LnB1c2godS53aGl0ZXNwYWNlKCkpO2Vsc2UgaWYoX1s0XSl4LnB1c2godS5ub3RXb3JkcygpKTtlbHNlIGlmKF9bNV0peC5wdXNoKHUubm90SW50cygpKTtlbHNlIGlmKF9bNl0peC5wdXNoKHUubm90V2hpdGVzcGFjZSgpKTtlbHNlIGlmKF9bN10peC5wdXNoKHt0eXBlOmEuUkFOR0UsZnJvbTooX1s4XXx8X1s5XSkuY2hhckNvZGVBdCgwKSx0bzpfWzEwXS5jaGFyQ29kZUF0KDApfSk7ZWxzZXtpZighKHc9X1sxMl0pKXJldHVyblt4LEMubGFzdEluZGV4XTt4LnB1c2goe3R5cGU6YS5DSEFSLHZhbHVlOncuY2hhckNvZGVBdCgwKX0pfW8uZXJyb3IoaSwiVW50ZXJtaW5hdGVkIGNoYXJhY3RlciBjbGFzcyIpfSxvLmVycm9yPShzLG8pPT57dGhyb3cgbmV3IFN5bnRheEVycm9yKCJJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogLyIrcysiLzogIitvKX19LDg3NzI2OihzLG8saSk9Pntjb25zdCBhPWkoNTU5NzMpLHU9aSgxMDMxNik7cy5leHBvcnRzPWNsYXNzIE1lbWJlckVsZW1lbnQgZXh0ZW5kcyB1e2NvbnN0cnVjdG9yKHMsbyxpLHUpe3N1cGVyKG5ldyBhLGksdSksdGhpcy5lbGVtZW50PSJtZW1iZXIiLHRoaXMua2V5PXMsdGhpcy52YWx1ZT1vfWdldCBrZXkoKXtyZXR1cm4gdGhpcy5jb250ZW50LmtleX1zZXQga2V5KHMpe3RoaXMuY29udGVudC5rZXk9dGhpcy5yZWZyYWN0KHMpfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLmNvbnRlbnQudmFsdWV9c2V0IHZhbHVlKHMpe3RoaXMuY29udGVudC52YWx1ZT10aGlzLnJlZnJhY3Qocyl9fX0sODc3MzA6KHMsbyxpKT0+e3ZhciBhPWkoMjkxNzIpLHU9aSgyNzMwMSksXz1pKDg2MDA5KSx3PV8mJl8uaXNNYXAseD13P3Uodyk6YTtzLmV4cG9ydHM9eH0sODc4MDU6KHMsbyxpKT0+e3ZhciBhPWkoNDMzNjApLHU9aSg3NTI4OCk7cy5leHBvcnRzPWZ1bmN0aW9uIGFzc2lnbk1lcmdlVmFsdWUocyxvLGkpeyh2b2lkIDAhPT1pJiYhdShzW29dLGkpfHx2b2lkIDA9PT1pJiYhKG8gaW4gcykpJiZhKHMsbyxpKX19LDg3OTc4OihzLG8saSk9Pnt2YXIgYT1pKDYwMjcwKSx1PWkoNTgxNTYpLF89aSg4MDYzMSksdz1pKDI4NTg2KSx4PWkoMzA3NTYpLEM9aSg2NzE5Nyksaj1pKDc3Nzk3KTtzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZU1hdGNoZXNQcm9wZXJ0eShzLG8pe3JldHVybiB3KHMpJiZ4KG8pP0MoaihzKSxvKTpmdW5jdGlvbihpKXt2YXIgdz11KGkscyk7cmV0dXJuIHZvaWQgMD09PXcmJnc9PT1vP18oaSxzKTphKG8sdywzKX19fSw4ODI4MDoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMTkwNyk7cy5leHBvcnRzPWEoe30uaXNQcm90b3R5cGVPZil9LDg4MzEwOihzLG8saSk9PntzLmV4cG9ydHM9U3RyZWFtO3ZhciBhPWkoMzcwMDcpLkV2ZW50RW1pdHRlcjtmdW5jdGlvbiBTdHJlYW0oKXthLmNhbGwodGhpcyl9aSg1NjY5OCkoU3RyZWFtLGEpLFN0cmVhbS5SZWFkYWJsZT1pKDQ1NDEyKSxTdHJlYW0uV3JpdGFibGU9aSgxNjcwOCksU3RyZWFtLkR1cGxleD1pKDI1MzgyKSxTdHJlYW0uVHJhbnNmb3JtPWkoNzQ2MTApLFN0cmVhbS5QYXNzVGhyb3VnaD1pKDYzNjAwKSxTdHJlYW0uZmluaXNoZWQ9aSg4NjIzOCksU3RyZWFtLnBpcGVsaW5lPWkoNTc3NTgpLFN0cmVhbS5TdHJlYW09U3RyZWFtLFN0cmVhbS5wcm90b3R5cGUucGlwZT1mdW5jdGlvbihzLG8pe3ZhciBpPXRoaXM7ZnVuY3Rpb24gb25kYXRhKG8pe3Mud3JpdGFibGUmJiExPT09cy53cml0ZShvKSYmaS5wYXVzZSYmaS5wYXVzZSgpfWZ1bmN0aW9uIG9uZHJhaW4oKXtpLnJlYWRhYmxlJiZpLnJlc3VtZSYmaS5yZXN1bWUoKX1pLm9uKCJkYXRhIixvbmRhdGEpLHMub24oImRyYWluIixvbmRyYWluKSxzLl9pc1N0ZGlvfHxvJiYhMT09PW8uZW5kfHwoaS5vbigiZW5kIixvbmVuZCksaS5vbigiY2xvc2UiLG9uY2xvc2UpKTt2YXIgdT0hMTtmdW5jdGlvbiBvbmVuZCgpe3V8fCh1PSEwLHMuZW5kKCkpfWZ1bmN0aW9uIG9uY2xvc2UoKXt1fHwodT0hMCwiZnVuY3Rpb24iPT10eXBlb2Ygcy5kZXN0cm95JiZzLmRlc3Ryb3koKSl9ZnVuY3Rpb24gb25lcnJvcihzKXtpZihjbGVhbnVwKCksMD09PWEubGlzdGVuZXJDb3VudCh0aGlzLCJlcnJvciIpKXRocm93IHN9ZnVuY3Rpb24gY2xlYW51cCgpe2kucmVtb3ZlTGlzdGVuZXIoImRhdGEiLG9uZGF0YSkscy5yZW1vdmVMaXN0ZW5lcigiZHJhaW4iLG9uZHJhaW4pLGkucmVtb3ZlTGlzdGVuZXIoImVuZCIsb25lbmQpLGkucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixvbmNsb3NlKSxpLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsb25lcnJvcikscy5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLG9uZXJyb3IpLGkucmVtb3ZlTGlzdGVuZXIoImVuZCIsY2xlYW51cCksaS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLGNsZWFudXApLHMucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixjbGVhbnVwKX1yZXR1cm4gaS5vbigiZXJyb3IiLG9uZXJyb3IpLHMub24oImVycm9yIixvbmVycm9yKSxpLm9uKCJlbmQiLGNsZWFudXApLGkub24oImNsb3NlIixjbGVhbnVwKSxzLm9uKCJjbG9zZSIsY2xlYW51cCkscy5lbWl0KCJwaXBlIixpKSxzfX0sODg5ODQ6KHMsbyxpKT0+e3ZhciBhPWkoNTU1MjcpLHU9aSgzNjUwKSxfPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VLZXlzKHMpe2lmKCFhKHMpKXJldHVybiB1KHMpO3ZhciBvPVtdO2Zvcih2YXIgaSBpbiBPYmplY3QocykpXy5jYWxsKHMsaSkmJiJjb25zdHJ1Y3RvciIhPWkmJm8ucHVzaChpKTtyZXR1cm4gb319LDg5NTkzOihzLG8saSk9PnsidXNlIHN0cmljdCI7by5IPXZvaWQgMDt2YXIgYT1mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHMpe3JldHVybiBzJiZzLl9fZXNNb2R1bGU/czp7ZGVmYXVsdDpzfX0oaSg4NDk3NykpO28uSD1hLmRlZmF1bHR9LDg5OTM1OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gc3R1YkZhbHNlKCl7cmV0dXJuITF9fSw5MDE2MDoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNzM5NDgpLHU9U3RyaW5nO3MuZXhwb3J0cz1mdW5jdGlvbihzKXtpZigiU3ltYm9sIj09PWEocykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNvbnZlcnQgYSBTeW1ib2wgdmFsdWUgdG8gYSBzdHJpbmciKTtyZXR1cm4gdShzKX19LDkwMTc5OihzLG8saSk9Pnt2YXIgYT1pKDM0OTMyKSx1PWkoOTk5OSksXz1pKDE5OTMxKSx3PWkoMzE3NjkpLHg9aSgyMTc5MSksQz1pKDUzMTM4KSxqPWkoMzg4MTYpLEw9aSg4MzM0OSksQj1qKChmdW5jdGlvbihzLG8pe3ZhciBpPXt9O2lmKG51bGw9PXMpcmV0dXJuIGk7dmFyIGo9ITE7bz1hKG8sKGZ1bmN0aW9uKG8pe3JldHVybiBvPXcobyxzKSxqfHwoaj1vLmxlbmd0aD4xKSxvfSkpLHgocyxMKHMpLGkpLGomJihpPXUoaSw3LEMpKTtmb3IodmFyIEI9by5sZW5ndGg7Qi0tOylfKGksb1tCXSk7cmV0dXJuIGl9KSk7cy5leHBvcnRzPUJ9LDkwMTgxOnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gbmF0aXZlS2V5c0luKHMpe3ZhciBvPVtdO2lmKG51bGwhPXMpZm9yKHZhciBpIGluIE9iamVjdChzKSlvLnB1c2goaSk7cmV0dXJuIG99fSw5MDI4OToocyxvLGkpPT57dmFyIGE9aSgxMjY1MSk7cy5leHBvcnRzPWZ1bmN0aW9uIG1hcENhY2hlR2V0KHMpe3JldHVybiBhKHRoaXMscykuZ2V0KHMpfX0sOTAzOTI6KHMsbyxpKT0+e3ZhciBhPWkoOTI4NjEpLkJ1ZmZlcjtmdW5jdGlvbiBIYXNoKHMsbyl7dGhpcy5fYmxvY2s9YS5hbGxvYyhzKSx0aGlzLl9maW5hbFNpemU9byx0aGlzLl9ibG9ja1NpemU9cyx0aGlzLl9sZW49MH1IYXNoLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24ocyxvKXsic3RyaW5nIj09dHlwZW9mIHMmJihvPW98fCJ1dGY4IixzPWEuZnJvbShzLG8pKTtmb3IodmFyIGk9dGhpcy5fYmxvY2ssdT10aGlzLl9ibG9ja1NpemUsXz1zLmxlbmd0aCx3PXRoaXMuX2xlbix4PTA7eDxfOyl7Zm9yKHZhciBDPXcldSxqPU1hdGgubWluKF8teCx1LUMpLEw9MDtMPGo7TCsrKWlbQytMXT1zW3grTF07eCs9aiwodys9aikldT09MCYmdGhpcy5fdXBkYXRlKGkpfXJldHVybiB0aGlzLl9sZW4rPV8sdGhpc30sSGFzaC5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKHMpe3ZhciBvPXRoaXMuX2xlbiV0aGlzLl9ibG9ja1NpemU7dGhpcy5fYmxvY2tbb109MTI4LHRoaXMuX2Jsb2NrLmZpbGwoMCxvKzEpLG8+PXRoaXMuX2ZpbmFsU2l6ZSYmKHRoaXMuX3VwZGF0ZSh0aGlzLl9ibG9jayksdGhpcy5fYmxvY2suZmlsbCgwKSk7dmFyIGk9OCp0aGlzLl9sZW47aWYoaTw9NDI5NDk2NzI5NSl0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKGksdGhpcy5fYmxvY2tTaXplLTQpO2Vsc2V7dmFyIGE9KDQyOTQ5NjcyOTUmaSk+Pj4wLHU9KGktYSkvNDI5NDk2NzI5Njt0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKHUsdGhpcy5fYmxvY2tTaXplLTgpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyQkUoYSx0aGlzLl9ibG9ja1NpemUtNCl9dGhpcy5fdXBkYXRlKHRoaXMuX2Jsb2NrKTt2YXIgXz10aGlzLl9oYXNoKCk7cmV0dXJuIHM/Xy50b1N0cmluZyhzKTpffSxIYXNoLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfdXBkYXRlIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3MiKX0scy5leHBvcnRzPUhhc2h9LDkwOTE2OihzLG8saSk9Pnt2YXIgYT1pKDgwOTA5KTtzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZVNvbWUocyxvKXt2YXIgaTtyZXR1cm4gYShzLChmdW5jdGlvbihzLGEsdSl7cmV0dXJuIShpPW8ocyxhLHUpKX0pKSwhIWl9fSw5MDkzODpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIHN0YWNrRGVsZXRlKHMpe3ZhciBvPXRoaXMuX19kYXRhX18saT1vLmRlbGV0ZShzKTtyZXR1cm4gdGhpcy5zaXplPW8uc2l6ZSxpfX0sOTEwMzM6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBhcHBseShzLG8saSl7c3dpdGNoKGkubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIHMuY2FsbChvKTtjYXNlIDE6cmV0dXJuIHMuY2FsbChvLGlbMF0pO2Nhc2UgMjpyZXR1cm4gcy5jYWxsKG8saVswXSxpWzFdKTtjYXNlIDM6cmV0dXJuIHMuY2FsbChvLGlbMF0saVsxXSxpWzJdKX1yZXR1cm4gcy5hcHBseShvLGkpfX0sOTE1OTY6cz0+e3ZhciBvPU1hdGgubWF4O3MuZXhwb3J0cz1mdW5jdGlvbiBjb21wb3NlQXJncyhzLGksYSx1KXtmb3IodmFyIF89LTEsdz1zLmxlbmd0aCx4PWEubGVuZ3RoLEM9LTEsaj1pLmxlbmd0aCxMPW8ody14LDApLEI9QXJyYXkoaitMKSwkPSF1OysrQzxqOylCW0NdPWlbQ107Zm9yKDsrK188eDspKCR8fF88dykmJihCW2FbX11dPXNbX10pO2Zvcig7TC0tOylCW0MrK109c1tfKytdO3JldHVybiBCfX0sOTE1OTk6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0IjtpKDY0NTAyKX0sOTIwNDY6cz0+eyJ1c2Ugc3RyaWN0IjtzLmV4cG9ydHM9e319LDkyMDYzOnM9PnsidXNlIHN0cmljdCI7cy5leHBvcnRzPWZ1bmN0aW9uIHJlcXVpcmVkKHMsbyl7aWYobz1vLnNwbGl0KCI6IilbMF0sIShzPStzKSlyZXR1cm4hMTtzd2l0Y2gobyl7Y2FzZSJodHRwIjpjYXNlIndzIjpyZXR1cm4gODAhPT1zO2Nhc2UiaHR0cHMiOmNhc2Uid3NzIjpyZXR1cm4gNDQzIT09cztjYXNlImZ0cCI6cmV0dXJuIDIxIT09cztjYXNlImdvcGhlciI6cmV0dXJuIDcwIT09cztjYXNlImZpbGUiOnJldHVybiExfXJldHVybiAwIT09c319LDkyMjcxOihzLG8saSk9Pnt2YXIgYT1pKDIxNzkxKSx1PWkoNDY2NCk7cy5leHBvcnRzPWZ1bmN0aW9uIGNvcHlTeW1ib2xzKHMsbyl7cmV0dXJuIGEocyx1KHMpLG8pfX0sOTIzNDA6KHMsbyxpKT0+e2NvbnN0IGE9aSg2MDQ4KTtmdW5jdGlvbiBjb2VyY2VFbGVtZW50TWF0Y2hpbmdDYWxsYmFjayhzKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHM/bz0+by5lbGVtZW50PT09czpzLmNvbnN0cnVjdG9yJiZzLmV4dGVuZD9vPT5vIGluc3RhbmNlb2YgczpzfWNsYXNzIEFycmF5U2xpY2V7Y29uc3RydWN0b3Iocyl7dGhpcy5lbGVtZW50cz1zfHxbXX10b1ZhbHVlKCl7cmV0dXJuIHRoaXMuZWxlbWVudHMubWFwKChzPT5zLnRvVmFsdWUoKSkpfW1hcChzLG8pe3JldHVybiB0aGlzLmVsZW1lbnRzLm1hcChzLG8pfWZsYXRNYXAocyxvKXtyZXR1cm4gdGhpcy5tYXAocyxvKS5yZWR1Y2UoKChzLG8pPT5zLmNvbmNhdChvKSksW10pfWNvbXBhY3RNYXAocyxvKXtjb25zdCBpPVtdO3JldHVybiB0aGlzLmZvckVhY2goKGE9Pntjb25zdCB1PXMuYmluZChvKShhKTt1JiZpLnB1c2godSl9KSksaX1maWx0ZXIocyxvKXtyZXR1cm4gcz1jb2VyY2VFbGVtZW50TWF0Y2hpbmdDYWxsYmFjayhzKSxuZXcgQXJyYXlTbGljZSh0aGlzLmVsZW1lbnRzLmZpbHRlcihzLG8pKX1yZWplY3QocyxvKXtyZXR1cm4gcz1jb2VyY2VFbGVtZW50TWF0Y2hpbmdDYWxsYmFjayhzKSxuZXcgQXJyYXlTbGljZSh0aGlzLmVsZW1lbnRzLmZpbHRlcihhKHMpLG8pKX1maW5kKHMsbyl7cmV0dXJuIHM9Y29lcmNlRWxlbWVudE1hdGNoaW5nQ2FsbGJhY2socyksdGhpcy5lbGVtZW50cy5maW5kKHMsbyl9Zm9yRWFjaChzLG8pe3RoaXMuZWxlbWVudHMuZm9yRWFjaChzLG8pfXJlZHVjZShzLG8pe3JldHVybiB0aGlzLmVsZW1lbnRzLnJlZHVjZShzLG8pfWluY2x1ZGVzKHMpe3JldHVybiB0aGlzLmVsZW1lbnRzLnNvbWUoKG89Pm8uZXF1YWxzKHMpKSl9c2hpZnQoKXtyZXR1cm4gdGhpcy5lbGVtZW50cy5zaGlmdCgpfXVuc2hpZnQocyl7dGhpcy5lbGVtZW50cy51bnNoaWZ0KHRoaXMucmVmcmFjdChzKSl9cHVzaChzKXtyZXR1cm4gdGhpcy5lbGVtZW50cy5wdXNoKHRoaXMucmVmcmFjdChzKSksdGhpc31hZGQocyl7dGhpcy5wdXNoKHMpfWdldChzKXtyZXR1cm4gdGhpcy5lbGVtZW50c1tzXX1nZXRWYWx1ZShzKXtjb25zdCBvPXRoaXMuZWxlbWVudHNbc107aWYobylyZXR1cm4gby50b1ZhbHVlKCl9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmVsZW1lbnRzLmxlbmd0aH1nZXQgaXNFbXB0eSgpe3JldHVybiAwPT09dGhpcy5lbGVtZW50cy5sZW5ndGh9Z2V0IGZpcnN0KCl7cmV0dXJuIHRoaXMuZWxlbWVudHNbMF19fSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiYoQXJyYXlTbGljZS5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbiBzeW1ib2woKXtyZXR1cm4gdGhpcy5lbGVtZW50c1tTeW1ib2wuaXRlcmF0b3JdKCl9KSxzLmV4cG9ydHM9QXJyYXlTbGljZX0sOTIzNjE6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDQ1ODA3KSx1PWkoMTkwNyk7cy5leHBvcnRzPWZ1bmN0aW9uKHMpe2lmKCJGdW5jdGlvbiI9PT1hKHMpKXJldHVybiB1KHMpfX0sOTI1MjI6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDg1ODE2KSx1PWkoNjQ5OSksXz1hKCJrZXlzIik7cy5leHBvcnRzPWZ1bmN0aW9uKHMpe3JldHVybiBfW3NdfHwoX1tzXT11KHMpKX19LDkyODYxOihzLG8saSk9Pnt2YXIgYT1pKDQ4Mjg3KSx1PWEuQnVmZmVyO2Z1bmN0aW9uIGNvcHlQcm9wcyhzLG8pe2Zvcih2YXIgaSBpbiBzKW9baV09c1tpXX1mdW5jdGlvbiBTYWZlQnVmZmVyKHMsbyxpKXtyZXR1cm4gdShzLG8saSl9dS5mcm9tJiZ1LmFsbG9jJiZ1LmFsbG9jVW5zYWZlJiZ1LmFsbG9jVW5zYWZlU2xvdz9zLmV4cG9ydHM9YTooY29weVByb3BzKGEsbyksby5CdWZmZXI9U2FmZUJ1ZmZlciksU2FmZUJ1ZmZlci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh1LnByb3RvdHlwZSksY29weVByb3BzKHUsU2FmZUJ1ZmZlciksU2FmZUJ1ZmZlci5mcm9tPWZ1bmN0aW9uKHMsbyxpKXtpZigibnVtYmVyIj09dHlwZW9mIHMpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gdShzLG8saSl9LFNhZmVCdWZmZXIuYWxsb2M9ZnVuY3Rpb24ocyxvLGkpe2lmKCJudW1iZXIiIT10eXBlb2Ygcyl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7dmFyIGE9dShzKTtyZXR1cm4gdm9pZCAwIT09bz8ic3RyaW5nIj09dHlwZW9mIGk/YS5maWxsKG8saSk6YS5maWxsKG8pOmEuZmlsbCgwKSxhfSxTYWZlQnVmZmVyLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKHMpe2lmKCJudW1iZXIiIT10eXBlb2Ygcyl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIHUocyl9LFNhZmVCdWZmZXIuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKHMpe2lmKCJudW1iZXIiIT10eXBlb2Ygcyl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIGEuU2xvd0J1ZmZlcihzKX19LDkzMjQzOihzLG8saSk9Pnt2YXIgYT1pKDU2MTEwKSx1PWZ1bmN0aW9uKCl7dHJ5e3ZhciBzPWEoT2JqZWN0LCJkZWZpbmVQcm9wZXJ0eSIpO3JldHVybiBzKHt9LCIiLHt9KSxzfWNhdGNoKHMpe319KCk7cy5leHBvcnRzPXV9LDkzMjkwOihzLG8saSk9PntzPWkubm1kKHMpO3ZhciBhPWkoOTMyNSksdT1vJiYhby5ub2RlVHlwZSYmbyxfPXUmJnMmJiFzLm5vZGVUeXBlJiZzLHc9XyYmXy5leHBvcnRzPT09dT9hLkJ1ZmZlcjp2b2lkIDAseD13P3cuYWxsb2NVbnNhZmU6dm9pZCAwO3MuZXhwb3J0cz1mdW5jdGlvbiBjbG9uZUJ1ZmZlcihzLG8pe2lmKG8pcmV0dXJuIHMuc2xpY2UoKTt2YXIgaT1zLmxlbmd0aCxhPXg/eChpKTpuZXcgcy5jb25zdHJ1Y3RvcihpKTtyZXR1cm4gcy5jb3B5KGEpLGF9fSw5MzQyNzoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMTkwNyk7cy5leHBvcnRzPWEoW10uc2xpY2UpfSw5MzY2MzoocyxvLGkpPT57dmFyIGE9aSg0MTc5OSksdT1pKDEwNzc2KSxfPWkoNjcxOTcpO3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlTWF0Y2hlcyhzKXt2YXIgbz11KHMpO3JldHVybiAxPT1vLmxlbmd0aCYmb1swXVsyXT9fKG9bMF1bMF0sb1swXVsxXSk6ZnVuY3Rpb24oaSl7cmV0dXJuIGk9PT1zfHxhKGkscyxvKX19fSw5MzcwMDoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMTk3MDkpO3MuZXhwb3J0cz1hfSw5MzczNjoocyxvLGkpPT57dmFyIGE9aSg1MTg3MyksdT1hP2EucHJvdG90eXBlOnZvaWQgMCxfPXU/dS52YWx1ZU9mOnZvaWQgMDtzLmV4cG9ydHM9ZnVuY3Rpb24gY2xvbmVTeW1ib2wocyl7cmV0dXJuIF8/T2JqZWN0KF8uY2FsbChzKSk6e319fSw5Mzc0MjpzPT57InVzZSBzdHJpY3QiO3MuZXhwb3J0cz17fX0sOTQwMzM6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlTG9kYXNoKCl7fX0sOTQ2NDM6KHMsbyxpKT0+e2Z1bmN0aW9uIGNvbmZpZyhzKXt0cnl7aWYoIWkuZy5sb2NhbFN0b3JhZ2UpcmV0dXJuITF9Y2F0Y2gocyl7cmV0dXJuITF9dmFyIG89aS5nLmxvY2FsU3RvcmFnZVtzXTtyZXR1cm4gbnVsbCE9byYmInRydWUiPT09U3RyaW5nKG8pLnRvTG93ZXJDYXNlKCl9cy5leHBvcnRzPWZ1bmN0aW9uIGRlcHJlY2F0ZShzLG8pe2lmKGNvbmZpZygibm9EZXByZWNhdGlvbiIpKXJldHVybiBzO3ZhciBpPSExO3JldHVybiBmdW5jdGlvbiBkZXByZWNhdGVkKCl7aWYoIWkpe2lmKGNvbmZpZygidGhyb3dEZXByZWNhdGlvbiIpKXRocm93IG5ldyBFcnJvcihvKTtjb25maWcoInRyYWNlRGVwcmVjYXRpb24iKT9jb25zb2xlLnRyYWNlKG8pOmNvbnNvbGUud2FybihvKSxpPSEwfXJldHVybiBzLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19fSw5NTA4OTpzPT57Y29uc3Qgbz0iW0EtWmEteiRfXVswLTlBLVphLXokX10qIixpPVsiYXMiLCJpbiIsIm9mIiwiaWYiLCJmb3IiLCJ3aGlsZSIsImZpbmFsbHkiLCJ2YXIiLCJuZXciLCJmdW5jdGlvbiIsImRvIiwicmV0dXJuIiwidm9pZCIsImVsc2UiLCJicmVhayIsImNhdGNoIiwiaW5zdGFuY2VvZiIsIndpdGgiLCJ0aHJvdyIsImNhc2UiLCJkZWZhdWx0IiwidHJ5Iiwic3dpdGNoIiwiY29udGludWUiLCJ0eXBlb2YiLCJkZWxldGUiLCJsZXQiLCJ5aWVsZCIsImNvbnN0IiwiY2xhc3MiLCJkZWJ1Z2dlciIsImFzeW5jIiwiYXdhaXQiLCJzdGF0aWMiLCJpbXBvcnQiLCJmcm9tIiwiZXhwb3J0IiwiZXh0ZW5kcyJdLGE9WyJ0cnVlIiwiZmFsc2UiLCJudWxsIiwidW5kZWZpbmVkIiwiTmFOIiwiSW5maW5pdHkiXSx1PVtdLmNvbmNhdChbInNldEludGVydmFsIiwic2V0VGltZW91dCIsImNsZWFySW50ZXJ2YWwiLCJjbGVhclRpbWVvdXQiLCJyZXF1aXJlIiwiZXhwb3J0cyIsImV2YWwiLCJpc0Zpbml0ZSIsImlzTmFOIiwicGFyc2VGbG9hdCIsInBhcnNlSW50IiwiZGVjb2RlVVJJIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiZW5jb2RlVVJJIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiZXNjYXBlIiwidW5lc2NhcGUiXSxbImFyZ3VtZW50cyIsInRoaXMiLCJzdXBlciIsImNvbnNvbGUiLCJ3aW5kb3ciLCJkb2N1bWVudCIsImxvY2FsU3RvcmFnZSIsIm1vZHVsZSIsImdsb2JhbCJdLFsiSW50bCIsIkRhdGFWaWV3IiwiTnVtYmVyIiwiTWF0aCIsIkRhdGUiLCJTdHJpbmciLCJSZWdFeHAiLCJPYmplY3QiLCJGdW5jdGlvbiIsIkJvb2xlYW4iLCJFcnJvciIsIlN5bWJvbCIsIlNldCIsIk1hcCIsIldlYWtTZXQiLCJXZWFrTWFwIiwiUHJveHkiLCJSZWZsZWN0IiwiSlNPTiIsIlByb21pc2UiLCJGbG9hdDY0QXJyYXkiLCJJbnQxNkFycmF5IiwiSW50MzJBcnJheSIsIkludDhBcnJheSIsIlVpbnQxNkFycmF5IiwiVWludDMyQXJyYXkiLCJGbG9hdDMyQXJyYXkiLCJBcnJheSIsIlVpbnQ4QXJyYXkiLCJVaW50OENsYW1wZWRBcnJheSIsIkFycmF5QnVmZmVyIiwiQmlnSW50NjRBcnJheSIsIkJpZ1VpbnQ2NEFycmF5IiwiQmlnSW50Il0sWyJFdmFsRXJyb3IiLCJJbnRlcm5hbEVycm9yIiwiUmFuZ2VFcnJvciIsIlJlZmVyZW5jZUVycm9yIiwiU3ludGF4RXJyb3IiLCJUeXBlRXJyb3IiLCJVUklFcnJvciJdKTtmdW5jdGlvbiBsb29rYWhlYWQocyl7cmV0dXJuIGNvbmNhdCgiKD89IixzLCIpIil9ZnVuY3Rpb24gY29uY2F0KC4uLnMpe3JldHVybiBzLm1hcCgocz0+ZnVuY3Rpb24gc291cmNlKHMpe3JldHVybiBzPyJzdHJpbmciPT10eXBlb2Ygcz9zOnMuc291cmNlOm51bGx9KHMpKSkuam9pbigiIil9cy5leHBvcnRzPWZ1bmN0aW9uIGphdmFzY3JpcHQocyl7Y29uc3QgXz1vLHc9Ijw+Iix4PSI8Lz4iLEM9e2JlZ2luOi88W0EtWmEtejAtOVxcLl86LV0rLyxlbmQ6L1wvW0EtWmEtejAtOVxcLl86LV0rPnxcLz4vLGlzVHJ1bHlPcGVuaW5nVGFnOihzLG8pPT57Y29uc3QgaT1zWzBdLmxlbmd0aCtzLmluZGV4LGE9cy5pbnB1dFtpXTsiPCIhPT1hPyI+Ij09PWEmJigoKHMse2FmdGVyOm99KT0+e2NvbnN0IGk9IjwvIitzWzBdLnNsaWNlKDEpO3JldHVybi0xIT09cy5pbnB1dC5pbmRleE9mKGksbyl9KShzLHthZnRlcjppfSl8fG8uaWdub3JlTWF0Y2goKSk6by5pZ25vcmVNYXRjaCgpfX0saj17JHBhdHRlcm46byxrZXl3b3JkOmksbGl0ZXJhbDphLGJ1aWx0X2luOnV9LEw9IlswLTldKF8/WzAtOV0pKiIsQj1gXFwuKCR7TH0pYCwkPSIwfFsxLTldKF8/WzAtOV0pKnwwWzAtN10qWzg5XVswLTldKiIsVj17Y2xhc3NOYW1lOiJudW1iZXIiLHZhcmlhbnRzOlt7YmVnaW46YChcXGIoJHskfSkoKCR7Qn0pfFxcLik/fCgke0J9KSlbZUVdWystXT8oJHtMfSlcXGJgfSx7YmVnaW46YFxcYigkeyR9KVxcYigoJHtCfSlcXGJ8XFwuKT98KCR7Qn0pXFxiYH0se2JlZ2luOiJcXGIoMHxbMS05XShfP1swLTldKSopblxcYiJ9LHtiZWdpbjoiXFxiMFt4WF1bMC05YS1mQS1GXShfP1swLTlhLWZBLUZdKSpuP1xcYiJ9LHtiZWdpbjoiXFxiMFtiQl1bMC0xXShfP1swLTFdKSpuP1xcYiJ9LHtiZWdpbjoiXFxiMFtvT11bMC03XShfP1swLTddKSpuP1xcYiJ9LHtiZWdpbjoiXFxiMFswLTddK24/XFxiIn1dLHJlbGV2YW5jZTowfSxVPXtjbGFzc05hbWU6InN1YnN0IixiZWdpbjoiXFwkXFx7IixlbmQ6IlxcfSIsa2V5d29yZHM6aixjb250YWluczpbXX0sej17YmVnaW46Imh0bWxgIixlbmQ6IiIsc3RhcnRzOntlbmQ6ImAiLHJldHVybkVuZDohMSxjb250YWluczpbcy5CQUNLU0xBU0hfRVNDQVBFLFVdLHN1Ykxhbmd1YWdlOiJ4bWwifX0sWT17YmVnaW46ImNzc2AiLGVuZDoiIixzdGFydHM6e2VuZDoiYCIscmV0dXJuRW5kOiExLGNvbnRhaW5zOltzLkJBQ0tTTEFTSF9FU0NBUEUsVV0sc3ViTGFuZ3VhZ2U6ImNzcyJ9fSxaPXtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46ImAiLGVuZDoiYCIsY29udGFpbnM6W3MuQkFDS1NMQVNIX0VTQ0FQRSxVXX0sZWU9e2NsYXNzTmFtZToiY29tbWVudCIsdmFyaWFudHM6W3MuQ09NTUVOVCgvXC9cKlwqKD8hXC8pLywiXFwqLyIse3JlbGV2YW5jZTowLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJkb2N0YWciLGJlZ2luOiJAW0EtWmEtel0rIixjb250YWluczpbe2NsYXNzTmFtZToidHlwZSIsYmVnaW46IlxceyIsZW5kOiJcXH0iLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsYmVnaW46XysiKD89XFxzKigtKXwkKSIsZW5kc1BhcmVudDohMCxyZWxldmFuY2U6MH0se2JlZ2luOi8oPz1bXlxuXSlccy8scmVsZXZhbmNlOjB9XX1dfSkscy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxzLkNfTElORV9DT01NRU5UX01PREVdfSxpZT1bcy5BUE9TX1NUUklOR19NT0RFLHMuUVVPVEVfU1RSSU5HX01PREUseixZLFosVixzLlJFR0VYUF9NT0RFXTtVLmNvbnRhaW5zPWllLmNvbmNhdCh7YmVnaW46L1x7LyxlbmQ6L1x9LyxrZXl3b3JkczpqLGNvbnRhaW5zOlsic2VsZiJdLmNvbmNhdChpZSl9KTtjb25zdCBhZT1bXS5jb25jYXQoZWUsVS5jb250YWlucyksY2U9YWUuY29uY2F0KFt7YmVnaW46L1woLyxlbmQ6L1wpLyxrZXl3b3JkczpqLGNvbnRhaW5zOlsic2VsZiJdLmNvbmNhdChhZSl9XSksbGU9e2NsYXNzTmFtZToicGFyYW1zIixiZWdpbjovXCgvLGVuZDovXCkvLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwLGtleXdvcmRzOmosY29udGFpbnM6Y2V9O3JldHVybntuYW1lOiJKYXZhc2NyaXB0IixhbGlhc2VzOlsianMiLCJqc3giLCJtanMiLCJjanMiXSxrZXl3b3JkczpqLGV4cG9ydHM6e1BBUkFNU19DT05UQUlOUzpjZX0saWxsZWdhbDovIyg/IVskX0Etel0pLyxjb250YWluczpbcy5TSEVCQU5HKHtsYWJlbDoic2hlYmFuZyIsYmluYXJ5OiJub2RlIixyZWxldmFuY2U6NX0pLHtsYWJlbDoidXNlX3N0cmljdCIsY2xhc3NOYW1lOiJtZXRhIixyZWxldmFuY2U6MTAsYmVnaW46L15ccypbJyJddXNlIChzdHJpY3R8YXNtKVsnIl0vfSxzLkFQT1NfU1RSSU5HX01PREUscy5RVU9URV9TVFJJTkdfTU9ERSx6LFksWixlZSxWLHtiZWdpbjpjb25jYXQoL1t7LFxuXVxzKi8sbG9va2FoZWFkKGNvbmNhdCgvKCgoXC9cLy4qJCl8KFwvXCooXCpbXi9dfFteKl0pKlwqXC8pKVxzKikqLyxfKyJcXHMqOiIpKSkscmVsZXZhbmNlOjAsY29udGFpbnM6W3tjbGFzc05hbWU6ImF0dHIiLGJlZ2luOl8rbG9va2FoZWFkKCJcXHMqOiIpLHJlbGV2YW5jZTowfV19LHtiZWdpbjoiKCIrcy5SRV9TVEFSVEVSU19SRSsifFxcYihjYXNlfHJldHVybnx0aHJvdylcXGIpXFxzKiIsa2V5d29yZHM6InJldHVybiB0aHJvdyBjYXNlIixjb250YWluczpbZWUscy5SRUdFWFBfTU9ERSx7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW46IihcXChbXigpXSooXFwoW14oKV0qKFxcKFteKCldKlxcKVteKCldKikqXFwpW14oKV0qKSpcXCl8IitzLlVOREVSU0NPUkVfSURFTlRfUkUrIilcXHMqPT4iLHJldHVybkJlZ2luOiEwLGVuZDoiXFxzKj0+Iixjb250YWluczpbe2NsYXNzTmFtZToicGFyYW1zIix2YXJpYW50czpbe2JlZ2luOnMuVU5ERVJTQ09SRV9JREVOVF9SRSxyZWxldmFuY2U6MH0se2NsYXNzTmFtZTpudWxsLGJlZ2luOi9cKFxzKlwpLyxza2lwOiEwfSx7YmVnaW46L1woLyxlbmQ6L1wpLyxleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCxrZXl3b3JkczpqLGNvbnRhaW5zOmNlfV19XX0se2JlZ2luOi8sLyxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToiIixiZWdpbjovXHMvLGVuZDovXHMqLyxza2lwOiEwfSx7dmFyaWFudHM6W3tiZWdpbjp3LGVuZDp4fSx7YmVnaW46Qy5iZWdpbiwib246YmVnaW4iOkMuaXNUcnVseU9wZW5pbmdUYWcsZW5kOkMuZW5kfV0sc3ViTGFuZ3VhZ2U6InhtbCIsY29udGFpbnM6W3tiZWdpbjpDLmJlZ2luLGVuZDpDLmVuZCxza2lwOiEwLGNvbnRhaW5zOlsic2VsZiJdfV19XSxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luS2V5d29yZHM6ImZ1bmN0aW9uIixlbmQ6L1t7O10vLGV4Y2x1ZGVFbmQ6ITAsa2V5d29yZHM6aixjb250YWluczpbInNlbGYiLHMuaW5oZXJpdChzLlRJVExFX01PREUse2JlZ2luOl99KSxsZV0saWxsZWdhbDovJS99LHtiZWdpbktleXdvcmRzOiJ3aGlsZSBpZiBzd2l0Y2ggY2F0Y2ggZm9yIn0se2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luOnMuVU5ERVJTQ09SRV9JREVOVF9SRSsiXFwoW14oKV0qKFxcKFteKCldKihcXChbXigpXSpcXClbXigpXSopKlxcKVteKCldKikqXFwpXFxzKlxceyIscmV0dXJuQmVnaW46ITAsY29udGFpbnM6W2xlLHMuaW5oZXJpdChzLlRJVExFX01PREUse2JlZ2luOl99KV19LHt2YXJpYW50czpbe2JlZ2luOiJcXC4iK199LHtiZWdpbjoiXFwkIitffV0scmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6ImNsYXNzIixiZWdpbktleXdvcmRzOiJjbGFzcyIsZW5kOi9bezs9XS8sZXhjbHVkZUVuZDohMCxpbGxlZ2FsOi9bOiJbXF1dLyxjb250YWluczpbe2JlZ2luS2V5d29yZHM6ImV4dGVuZHMifSxzLlVOREVSU0NPUkVfVElUTEVfTU9ERV19LHtiZWdpbjovXGIoPz1jb25zdHJ1Y3RvcikvLGVuZDovW3s7XS8sZXhjbHVkZUVuZDohMCxjb250YWluczpbcy5pbmhlcml0KHMuVElUTEVfTU9ERSx7YmVnaW46X30pLCJzZWxmIixsZV19LHtiZWdpbjoiKGdldHxzZXQpXFxzKyg/PSIrXysiXFwoKSIsZW5kOi9cey8sa2V5d29yZHM6ImdldCBzZXQiLGNvbnRhaW5zOltzLmluaGVyaXQocy5USVRMRV9NT0RFLHtiZWdpbjpffSkse2JlZ2luOi9cKFwpL30sbGVdfSx7YmVnaW46L1wkWyguXS99XX19fSw5NTExNjoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhLHUsXyx3PWkoOTg4MjgpLHg9aSg2MjI1MCksQz1pKDQ2Mjg1KSxqPWkoNTgwNzUpLEw9aSgxNTk3MiksQj1pKDY4MDU1KSwkPWkoNzYyNjQpLFY9aSg3Mzc2KSxVPSQoIml0ZXJhdG9yIiksej0hMTtbXS5rZXlzJiYoIm5leHQiaW4oXz1bXS5rZXlzKCkpPyh1PUwoTChfKSkpIT09T2JqZWN0LnByb3RvdHlwZSYmKGE9dSk6ej0hMCksIUMoYSl8fHcoKGZ1bmN0aW9uKCl7dmFyIHM9e307cmV0dXJuIGFbVV0uY2FsbChzKSE9PXN9KSk/YT17fTpWJiYoYT1qKGEpKSx4KGFbVV0pfHxCKGEsVSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxzLmV4cG9ydHM9e0l0ZXJhdG9yUHJvdG90eXBlOmEsQlVHR1lfU0FGQVJJX0lURVJBVE9SUzp6fX0sOTU5NTA6KHMsbyxpKT0+e3ZhciBhPWkoNzA2OTUpLHU9aSg4ODk4NCksXz1pKDY0ODk0KTtzLmV4cG9ydHM9ZnVuY3Rpb24ga2V5cyhzKXtyZXR1cm4gXyhzKT9hKHMpOnUocyl9fSw5NjEzMToocyxvLGkpPT57dmFyIGE9aSgyNTIzKSx1PWkoODU0NjMpLF89aSg3Njk1OSk7cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VJbmRleE9mKHMsbyxpKXtyZXR1cm4gbz09bz9fKHMsbyxpKTphKHMsdSxpKX19LDk2NTQwOihzLG8saSk9PnsidXNlIHN0cmljdCI7cy5leHBvcnRzPWkoMTUyODcpfSw5NjYwNToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMTEwOTEpLHU9aSg0NTk1MSksXz1pKDc2MDI0KSx3PWkoMTkzNTgpLHg9IldlYkFzc2VtYmx5IixDPXVbeF0saj03IT09bmV3IEVycm9yKCJlIix7Y2F1c2U6N30pLmNhdXNlLGV4cG9ydEdsb2JhbEVycm9yQ2F1c2VXcmFwcGVyPWZ1bmN0aW9uKHMsbyl7dmFyIGk9e307aVtzXT13KHMsbyxqKSxhKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsYXJpdHk6MSxmb3JjZWQ6an0saSl9LGV4cG9ydFdlYkFzc2VtYmx5RXJyb3JDYXVzZVdyYXBwZXI9ZnVuY3Rpb24ocyxvKXtpZihDJiZDW3NdKXt2YXIgaT17fTtpW3NdPXcoeCsiLiIrcyxvLGopLGEoe3RhcmdldDp4LHN0YXQ6ITAsY29uc3RydWN0b3I6ITAsYXJpdHk6MSxmb3JjZWQ6an0saSl9fTtleHBvcnRHbG9iYWxFcnJvckNhdXNlV3JhcHBlcigiRXJyb3IiLChmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24gRXJyb3Iobyl7cmV0dXJuIF8ocyx0aGlzLGFyZ3VtZW50cyl9fSkpLGV4cG9ydEdsb2JhbEVycm9yQ2F1c2VXcmFwcGVyKCJFdmFsRXJyb3IiLChmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24gRXZhbEVycm9yKG8pe3JldHVybiBfKHMsdGhpcyxhcmd1bWVudHMpfX0pKSxleHBvcnRHbG9iYWxFcnJvckNhdXNlV3JhcHBlcigiUmFuZ2VFcnJvciIsKGZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbiBSYW5nZUVycm9yKG8pe3JldHVybiBfKHMsdGhpcyxhcmd1bWVudHMpfX0pKSxleHBvcnRHbG9iYWxFcnJvckNhdXNlV3JhcHBlcigiUmVmZXJlbmNlRXJyb3IiLChmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24gUmVmZXJlbmNlRXJyb3Iobyl7cmV0dXJuIF8ocyx0aGlzLGFyZ3VtZW50cyl9fSkpLGV4cG9ydEdsb2JhbEVycm9yQ2F1c2VXcmFwcGVyKCJTeW50YXhFcnJvciIsKGZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbiBTeW50YXhFcnJvcihvKXtyZXR1cm4gXyhzLHRoaXMsYXJndW1lbnRzKX19KSksZXhwb3J0R2xvYmFsRXJyb3JDYXVzZVdyYXBwZXIoIlR5cGVFcnJvciIsKGZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbiBUeXBlRXJyb3Iobyl7cmV0dXJuIF8ocyx0aGlzLGFyZ3VtZW50cyl9fSkpLGV4cG9ydEdsb2JhbEVycm9yQ2F1c2VXcmFwcGVyKCJVUklFcnJvciIsKGZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbiBVUklFcnJvcihvKXtyZXR1cm4gXyhzLHRoaXMsYXJndW1lbnRzKX19KSksZXhwb3J0V2ViQXNzZW1ibHlFcnJvckNhdXNlV3JhcHBlcigiQ29tcGlsZUVycm9yIiwoZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uIENvbXBpbGVFcnJvcihvKXtyZXR1cm4gXyhzLHRoaXMsYXJndW1lbnRzKX19KSksZXhwb3J0V2ViQXNzZW1ibHlFcnJvckNhdXNlV3JhcHBlcigiTGlua0Vycm9yIiwoZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uIExpbmtFcnJvcihvKXtyZXR1cm4gXyhzLHRoaXMsYXJndW1lbnRzKX19KSksZXhwb3J0V2ViQXNzZW1ibHlFcnJvckNhdXNlV3JhcHBlcigiUnVudGltZUVycm9yIiwoZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uIFJ1bnRpbWVFcnJvcihvKXtyZXR1cm4gXyhzLHRoaXMsYXJndW1lbnRzKX19KSl9LDk2Nzk0OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg0NTk1MSkubmF2aWdhdG9yLHU9YSYmYS51c2VyQWdlbnQ7cy5leHBvcnRzPXU/U3RyaW5nKHUpOiIifSw5ODAyMzoocyxvLGkpPT57dmFyIGE9aSg3MjU1MiksdT1pKDQwMzQ2KTtzLmV4cG9ydHM9ZnVuY3Rpb24gaXNOdW1iZXIocyl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBzfHx1KHMpJiYiW29iamVjdCBOdW1iZXJdIj09YShzKX19LDk4ODI4OnM9PnsidXNlIHN0cmljdCI7cy5leHBvcnRzPWZ1bmN0aW9uKHMpe3RyeXtyZXR1cm4hIXMoKX1jYXRjaChzKXtyZXR1cm4hMH19fSw5OTM2MzoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNDk5MyksdT1pKDQyMTU2KSxfPWkoOTM3NDIpLHc9aSg2NDkzMikseD1pKDc0Mjg0KS5mLEM9aSg2MDE4Myksaj1pKDU5NTUwKSxMPWkoNzM3NiksQj1pKDM5NDQ3KSwkPSJBcnJheSBJdGVyYXRvciIsVj13LnNldCxVPXcuZ2V0dGVyRm9yKCQpO3MuZXhwb3J0cz1DKEFycmF5LCJBcnJheSIsKGZ1bmN0aW9uKHMsbyl7Vih0aGlzLHt0eXBlOiQsdGFyZ2V0OmEocyksaW5kZXg6MCxraW5kOm99KX0pLChmdW5jdGlvbigpe3ZhciBzPVUodGhpcyksbz1zLnRhcmdldCxpPXMuaW5kZXgrKztpZighb3x8aT49by5sZW5ndGgpcmV0dXJuIHMudGFyZ2V0PW51bGwsaih2b2lkIDAsITApO3N3aXRjaChzLmtpbmQpe2Nhc2Uia2V5cyI6cmV0dXJuIGooaSwhMSk7Y2FzZSJ2YWx1ZXMiOnJldHVybiBqKG9baV0sITEpfXJldHVybiBqKFtpLG9baV1dLCExKX0pLCJ2YWx1ZXMiKTt2YXIgej1fLkFyZ3VtZW50cz1fLkFycmF5O2lmKHUoImtleXMiKSx1KCJ2YWx1ZXMiKSx1KCJlbnRyaWVzIiksIUwmJkImJiJ2YWx1ZXMiIT09ei5uYW1lKXRyeXt4KHosIm5hbWUiLHt2YWx1ZToidmFsdWVzIn0pfWNhdGNoKHMpe319LDk5Mzc0OihzLG8saSk9Pnt2YXIgYT1pKDU0MTI4KSx1PWkoMjM4MDUpLF89aSg0NDM5NCksdz0vXlstK10weFswLTlhLWZdKyQvaSx4PS9eMGJbMDFdKyQvaSxDPS9eMG9bMC03XSskL2ksaj1wYXJzZUludDtzLmV4cG9ydHM9ZnVuY3Rpb24gdG9OdW1iZXIocyl7aWYoIm51bWJlciI9PXR5cGVvZiBzKXJldHVybiBzO2lmKF8ocykpcmV0dXJuIE5hTjtpZih1KHMpKXt2YXIgbz0iZnVuY3Rpb24iPT10eXBlb2Ygcy52YWx1ZU9mP3MudmFsdWVPZigpOnM7cz11KG8pP28rIiI6b31pZigic3RyaW5nIiE9dHlwZW9mIHMpcmV0dXJuIDA9PT1zP3M6K3M7cz1hKHMpO3ZhciBpPXgudGVzdChzKTtyZXR1cm4gaXx8Qy50ZXN0KHMpP2oocy5zbGljZSgyKSxpPzI6OCk6dy50ZXN0KHMpP05hTjorc319fSxvPXt9O2Z1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18oaSl7dmFyIGE9b1tpXTtpZih2b2lkIDAhPT1hKXJldHVybiBhLmV4cG9ydHM7dmFyIHU9b1tpXT17aWQ6aSxsb2FkZWQ6ITEsZXhwb3J0czp7fX07cmV0dXJuIHNbaV0uY2FsbCh1LmV4cG9ydHMsdSx1LmV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyksdS5sb2FkZWQ9ITAsdS5leHBvcnRzfV9fd2VicGFja19yZXF1aXJlX18ubj1zPT57dmFyIG89cyYmcy5fX2VzTW9kdWxlPygpPT5zLmRlZmF1bHQ6KCk9PnM7cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZChvLHthOm99KSxvfSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQ9KHMsbyk9Pntmb3IodmFyIGkgaW4gbylfX3dlYnBhY2tfcmVxdWlyZV9fLm8obyxpKSYmIV9fd2VicGFja19yZXF1aXJlX18ubyhzLGkpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocyxpLHtlbnVtZXJhYmxlOiEwLGdldDpvW2ldfSl9LF9fd2VicGFja19yZXF1aXJlX18uZz1mdW5jdGlvbigpe2lmKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcylyZXR1cm4gZ2xvYmFsVGhpczt0cnl7cmV0dXJuIHRoaXN8fG5ldyBGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfWNhdGNoKHMpe2lmKCJvYmplY3QiPT10eXBlb2Ygd2luZG93KXJldHVybiB3aW5kb3d9fSgpLF9fd2VicGFja19yZXF1aXJlX18ubz0ocyxvKT0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsbyksX193ZWJwYWNrX3JlcXVpcmVfXy5yPXM9PnsidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocyxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSxfX3dlYnBhY2tfcmVxdWlyZV9fLm5tZD1zPT4ocy5wYXRocz1bXSxzLmNoaWxkcmVufHwocy5jaGlsZHJlbj1bXSkscyk7dmFyIGk9e307cmV0dXJuKCgpPT57InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChpLHtkZWZhdWx0OigpPT5KVH0pO3ZhciBzPXt9O19fd2VicGFja19yZXF1aXJlX18ucihzKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQocyx7Q0xFQVI6KCk9PmF0LENMRUFSX0JZOigpPT5jdCxORVdfQVVUSF9FUlI6KCk9Pml0LE5FV19TUEVDX0VSUjooKT0+c3QsTkVXX1NQRUNfRVJSX0JBVENIOigpPT5vdCxORVdfVEhST1dOX0VSUjooKT0+cnQsTkVXX1RIUk9XTl9FUlJfQkFUQ0g6KCk9Pm50LGNsZWFyOigpPT5jbGVhcixjbGVhckJ5OigpPT5jbGVhckJ5LG5ld0F1dGhFcnI6KCk9Pm5ld0F1dGhFcnIsbmV3U3BlY0VycjooKT0+bmV3U3BlY0VycixuZXdTcGVjRXJyQmF0Y2g6KCk9Pm5ld1NwZWNFcnJCYXRjaCxuZXdUaHJvd25FcnI6KCk9Pm5ld1Rocm93bkVycixuZXdUaHJvd25FcnJCYXRjaDooKT0+bmV3VGhyb3duRXJyQmF0Y2h9KTt2YXIgbz17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIobyksX193ZWJwYWNrX3JlcXVpcmVfXy5kKG8se0FVVEhPUklaRTooKT0+UnQsQVVUSE9SSVpFX09BVVRIMjooKT0+THQsQ09ORklHVVJFX0FVVEg6KCk9PkZ0LExPR09VVDooKT0+RHQsUkVTVE9SRV9BVVRIT1JJWkFUSU9OOigpPT5CdCxTSE9XX0FVVEhfUE9QVVA6KCk9Pk10LGF1dGhQb3B1cDooKT0+YXV0aFBvcHVwLGF1dGhvcml6ZTooKT0+YXV0aG9yaXplLGF1dGhvcml6ZUFjY2Vzc0NvZGVXaXRoQmFzaWNBdXRoZW50aWNhdGlvbjooKT0+YXV0aG9yaXplQWNjZXNzQ29kZVdpdGhCYXNpY0F1dGhlbnRpY2F0aW9uLGF1dGhvcml6ZUFjY2Vzc0NvZGVXaXRoRm9ybVBhcmFtczooKT0+YXV0aG9yaXplQWNjZXNzQ29kZVdpdGhGb3JtUGFyYW1zLGF1dGhvcml6ZUFwcGxpY2F0aW9uOigpPT5hdXRob3JpemVBcHBsaWNhdGlvbixhdXRob3JpemVPYXV0aDI6KCk9PmF1dGhvcml6ZU9hdXRoMixhdXRob3JpemVPYXV0aDJXaXRoUGVyc2lzdE9wdGlvbjooKT0+YXV0aG9yaXplT2F1dGgyV2l0aFBlcnNpc3RPcHRpb24sYXV0aG9yaXplUGFzc3dvcmQ6KCk9PmF1dGhvcml6ZVBhc3N3b3JkLGF1dGhvcml6ZVJlcXVlc3Q6KCk9PmF1dGhvcml6ZVJlcXVlc3QsYXV0aG9yaXplV2l0aFBlcnNpc3RPcHRpb246KCk9PmF1dGhvcml6ZVdpdGhQZXJzaXN0T3B0aW9uLGNvbmZpZ3VyZUF1dGg6KCk9PmNvbmZpZ3VyZUF1dGgsbG9nb3V0OigpPT5sb2dvdXQsbG9nb3V0V2l0aFBlcnNpc3RPcHRpb246KCk9PmxvZ291dFdpdGhQZXJzaXN0T3B0aW9uLHBlcnNpc3RBdXRob3JpemF0aW9uSWZOZWVkZWQ6KCk9PnBlcnNpc3RBdXRob3JpemF0aW9uSWZOZWVkZWQscHJlQXV0aG9yaXplSW1wbGljaXQ6KCk9PnByZUF1dGhvcml6ZUltcGxpY2l0LHJlc3RvcmVBdXRob3JpemF0aW9uOigpPT5yZXN0b3JlQXV0aG9yaXphdGlvbixzaG93RGVmaW5pdGlvbnM6KCk9PnNob3dEZWZpbml0aW9uc30pO3ZhciBhPXt9O19fd2VicGFja19yZXF1aXJlX18ucihhKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoYSx7YXV0aG9yaXplZDooKT0+SnQsZGVmaW5pdGlvbnNGb3JSZXF1aXJlbWVudHM6KCk9PmRlZmluaXRpb25zRm9yUmVxdWlyZW1lbnRzLGRlZmluaXRpb25zVG9BdXRob3JpemU6KCk9Pld0LGdldENvbmZpZ3M6KCk9Pkh0LGdldERlZmluaXRpb25zQnlOYW1lczooKT0+Z2V0RGVmaW5pdGlvbnNCeU5hbWVzLGlzQXV0aG9yaXplZDooKT0+aXNBdXRob3JpemVkLHNlbGVjdEF1dGhQYXRoOigpPT5zZWxlY3RBdXRoUGF0aCxzaG93bkRlZmluaXRpb25zOigpPT56dH0pO3ZhciB1PXt9O19fd2VicGFja19yZXF1aXJlX18ucih1KSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQodSx7VE9HR0xFX0NPTkZJR1M6KCk9PmduLFVQREFURV9DT05GSUdTOigpPT5tbixkb3dubG9hZENvbmZpZzooKT0+ZG93bmxvYWRDb25maWcsZ2V0Q29uZmlnQnlVcmw6KCk9PmdldENvbmZpZ0J5VXJsLGxvYWRlZDooKT0+YWN0aW9uc19sb2FkZWQsdG9nZ2xlOigpPT50b2dnbGUsdXBkYXRlOigpPT51cGRhdGV9KTt2YXIgXz17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoXyksX193ZWJwYWNrX3JlcXVpcmVfXy5kKF8se2dldDooKT0+Z2V0fSk7dmFyIHc9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKHcpLF9fd2VicGFja19yZXF1aXJlX18uZCh3LHt0cmFuc2Zvcm06KCk9PnRyYW5zZm9ybX0pO3ZhciB4PXt9O19fd2VicGFja19yZXF1aXJlX18ucih4KSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCx7dHJhbnNmb3JtOigpPT5wYXJhbWV0ZXJfb25lb2ZfdHJhbnNmb3JtfSk7dmFyIEM9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKEMpLF9fd2VicGFja19yZXF1aXJlX18uZChDLHthbGxFcnJvcnM6KCk9PlBuLGxhc3RFcnJvcjooKT0+VG59KTt2YXIgaj17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoaiksX193ZWJwYWNrX3JlcXVpcmVfXy5kKGose1NIT1c6KCk9PkZuLFVQREFURV9GSUxURVI6KCk9PkRuLFVQREFURV9MQVlPVVQ6KCk9PlJuLFVQREFURV9NT0RFOigpPT5MbixjaGFuZ2VNb2RlOigpPT5jaGFuZ2VNb2RlLHNob3c6KCk9PmFjdGlvbnNfc2hvdyx1cGRhdGVGaWx0ZXI6KCk9PnVwZGF0ZUZpbHRlcix1cGRhdGVMYXlvdXQ6KCk9PnVwZGF0ZUxheW91dH0pO3ZhciBMPXt9O19fd2VicGFja19yZXF1aXJlX18ucihMKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoTCx7Y3VycmVudDooKT0+Y3VycmVudCxjdXJyZW50RmlsdGVyOigpPT5jdXJyZW50RmlsdGVyLGlzU2hvd246KCk9PmlzU2hvd24sc2hvd1N1bW1hcnk6KCk9PiRuLHdoYXRNb2RlOigpPT53aGF0TW9kZX0pO3ZhciBCPXt9O19fd2VicGFja19yZXF1aXJlX18ucihCKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoQix7dGFnZ2VkT3BlcmF0aW9uczooKT0+dGFnZ2VkT3BlcmF0aW9uc30pO3ZhciAkPXt9O19fd2VicGFja19yZXF1aXJlX18ucigkKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoJCx7Z2V0QWN0aXZlTGFuZ3VhZ2U6KCk9PlVuLGdldERlZmF1bHRFeHBhbmRlZDooKT0+em4sZ2V0R2VuZXJhdG9yczooKT0+Vm4sZ2V0U25pcHBldEdlbmVyYXRvcnM6KCk9PmdldFNuaXBwZXRHZW5lcmF0b3JzfSk7dmFyIFY9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKFYpLF9fd2VicGFja19yZXF1aXJlX18uZChWLHtKc29uU2NoZW1hQXJyYXlJdGVtRmlsZTooKT0+SnNvblNjaGVtYUFycmF5SXRlbUZpbGUsSnNvblNjaGVtYUFycmF5SXRlbVRleHQ6KCk9Pkpzb25TY2hlbWFBcnJheUl0ZW1UZXh0LEpzb25TY2hlbWFGb3JtOigpPT5Kc29uU2NoZW1hRm9ybSxKc29uU2NoZW1hX2FycmF5OigpPT5Kc29uU2NoZW1hX2FycmF5LEpzb25TY2hlbWFfYm9vbGVhbjooKT0+SnNvblNjaGVtYV9ib29sZWFuLEpzb25TY2hlbWFfb2JqZWN0OigpPT5Kc29uU2NoZW1hX29iamVjdCxKc29uU2NoZW1hX3N0cmluZzooKT0+SnNvblNjaGVtYV9zdHJpbmd9KTt2YXIgVT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoVSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKFUse2FsbG93VHJ5SXRPdXRGb3I6KCk9PmFsbG93VHJ5SXRPdXRGb3IsYmFzZVBhdGg6KCk9PkhzLGNhbkV4ZWN1dGVTY2hlbWU6KCk9PmNhbkV4ZWN1dGVTY2hlbWUsY29uc3VtZXM6KCk9PlZzLGNvbnN1bWVzT3B0aW9uc0ZvcjooKT0+Y29uc3VtZXNPcHRpb25zRm9yLGNvbnRlbnRUeXBlVmFsdWVzOigpPT5jb250ZW50VHlwZVZhbHVlcyxjdXJyZW50UHJvZHVjZXNGb3I6KCk9PmN1cnJlbnRQcm9kdWNlc0ZvcixkZWZpbml0aW9uczooKT0+SnMsZXh0ZXJuYWxEb2NzOigpPT5EcyxmaW5kRGVmaW5pdGlvbjooKT0+ZmluZERlZmluaXRpb24sZ2V0T0FTM1JlcXVpcmVkUmVxdWVzdEJvZHlDb250ZW50VHlwZTooKT0+Z2V0T0FTM1JlcXVpcmVkUmVxdWVzdEJvZHlDb250ZW50VHlwZSxnZXRQYXJhbWV0ZXI6KCk9PmdldFBhcmFtZXRlcixoYXNIb3N0OigpPT5ybyxob3N0OigpPT5LcyxpbmZvOigpPT5Scyxpc01lZGlhVHlwZVNjaGVtYVByb3BlcnRpZXNFcXVhbDooKT0+aXNNZWRpYVR5cGVTY2hlbWFQcm9wZXJ0aWVzRXF1YWwsaXNPQVMzOigpPT5NcyxsYXN0RXJyb3I6KCk9Pk9zLG11dGF0ZWRSZXF1ZXN0Rm9yOigpPT5tdXRhdGVkUmVxdWVzdEZvcixtdXRhdGVkUmVxdWVzdHM6KCk9PnRvLG9wZXJhdGlvblNjaGVtZTooKT0+b3BlcmF0aW9uU2NoZW1lLG9wZXJhdGlvbldpdGhNZXRhOigpPT5vcGVyYXRpb25XaXRoTWV0YSxvcGVyYXRpb25zOigpPT5xcyxvcGVyYXRpb25zV2l0aFJvb3RJbmhlcml0ZWQ6KCk9PllzLG9wZXJhdGlvbnNXaXRoVGFnczooKT0+UXMscGFyYW1ldGVySW5jbHVzaW9uU2V0dGluZ0ZvcjooKT0+cGFyYW1ldGVySW5jbHVzaW9uU2V0dGluZ0ZvcixwYXJhbWV0ZXJWYWx1ZXM6KCk9PnBhcmFtZXRlclZhbHVlcyxwYXJhbWV0ZXJXaXRoTWV0YTooKT0+cGFyYW1ldGVyV2l0aE1ldGEscGFyYW1ldGVyV2l0aE1ldGFCeUlkZW50aXR5OigpPT5wYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkscGFyYW1ldGVyc0luY2x1ZGVJbjooKT0+cGFyYW1ldGVyc0luY2x1ZGVJbixwYXJhbWV0ZXJzSW5jbHVkZVR5cGU6KCk9PnBhcmFtZXRlcnNJbmNsdWRlVHlwZSxwYXRoczooKT0+QnMscHJvZHVjZXM6KCk9PlVzLHByb2R1Y2VzT3B0aW9uc0ZvcjooKT0+cHJvZHVjZXNPcHRpb25zRm9yLHJlcXVlc3RGb3I6KCk9PnJlcXVlc3RGb3IscmVxdWVzdHM6KCk9PmVvLHJlc3BvbnNlRm9yOigpPT5yZXNwb25zZUZvcixyZXNwb25zZXM6KCk9PlpzLHNjaGVtZXM6KCk9PkdzLHNlY3VyaXR5OigpPT56cyxzZWN1cml0eURlZmluaXRpb25zOigpPT5XcyxzZW12ZXI6KCk9PkZzLHNwZWM6KCk9PnNwZWMsc3BlY0pTOigpPT5QcyxzcGVjSnNvbjooKT0+SXMsc3BlY0pzb25XaXRoUmVzb2x2ZWRTdWJ0cmVlczooKT0+TnMsc3BlY1Jlc29sdmVkOigpPT5UcyxzcGVjUmVzb2x2ZWRTdWJ0cmVlOigpPT5zcGVjUmVzb2x2ZWRTdWJ0cmVlLHNwZWNTb3VyY2U6KCk9PmpzLHNwZWNTdHI6KCk9PkFzLHRhZ0RldGFpbHM6KCk9PnRhZ0RldGFpbHMsdGFnZ2VkT3BlcmF0aW9uczooKT0+c2VsZWN0b3JzX3RhZ2dlZE9wZXJhdGlvbnMsdGFnczooKT0+WHMsdXJsOigpPT5Dcyx2YWxpZE9wZXJhdGlvbk1ldGhvZHM6KCk9PiRzLHZhbGlkYXRlQmVmb3JlRXhlY3V0ZTooKT0+dmFsaWRhdGVCZWZvcmVFeGVjdXRlLHZhbGlkYXRpb25FcnJvcnM6KCk9PnZhbGlkYXRpb25FcnJvcnMsdmVyc2lvbjooKT0+THN9KTt2YXIgej17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoeiksX193ZWJwYWNrX3JlcXVpcmVfXy5kKHose0NMRUFSX1JFUVVFU1Q6KCk9PndvLENMRUFSX1JFU1BPTlNFOigpPT5FbyxDTEVBUl9WQUxJREFURV9QQVJBTVM6KCk9PnhvLExPR19SRVFVRVNUOigpPT5TbyxTRVRfTVVUQVRFRF9SRVFVRVNUOigpPT5fbyxTRVRfUkVRVUVTVDooKT0+Ym8sU0VUX1JFU1BPTlNFOigpPT52byxTRVRfU0NIRU1FOigpPT5BbyxVUERBVEVfRU1QVFlfUEFSQU1fSU5DTFVTSU9OOigpPT5nbyxVUERBVEVfSlNPTjooKT0+Zm8sVVBEQVRFX09QRVJBVElPTl9NRVRBX1ZBTFVFOigpPT5rbyxVUERBVEVfUEFSQU06KCk9Pm1vLFVQREFURV9SRVNPTFZFRDooKT0+T28sVVBEQVRFX1JFU09MVkVEX1NVQlRSRUU6KCk9PkNvLFVQREFURV9TUEVDOigpPT5wbyxVUERBVEVfVVJMOigpPT5obyxWQUxJREFURV9QQVJBTVM6KCk9PnlvLGNoYW5nZUNvbnN1bWVzVmFsdWU6KCk9PmNoYW5nZUNvbnN1bWVzVmFsdWUsY2hhbmdlUGFyYW06KCk9PmNoYW5nZVBhcmFtLGNoYW5nZVBhcmFtQnlJZGVudGl0eTooKT0+Y2hhbmdlUGFyYW1CeUlkZW50aXR5LGNoYW5nZVByb2R1Y2VzVmFsdWU6KCk9PmNoYW5nZVByb2R1Y2VzVmFsdWUsY2xlYXJSZXF1ZXN0OigpPT5jbGVhclJlcXVlc3QsY2xlYXJSZXNwb25zZTooKT0+Y2xlYXJSZXNwb25zZSxjbGVhclZhbGlkYXRlUGFyYW1zOigpPT5jbGVhclZhbGlkYXRlUGFyYW1zLGV4ZWN1dGU6KCk9PmFjdGlvbnNfZXhlY3V0ZSxleGVjdXRlUmVxdWVzdDooKT0+ZXhlY3V0ZVJlcXVlc3QsaW52YWxpZGF0ZVJlc29sdmVkU3VidHJlZUNhY2hlOigpPT5pbnZhbGlkYXRlUmVzb2x2ZWRTdWJ0cmVlQ2FjaGUsbG9nUmVxdWVzdDooKT0+bG9nUmVxdWVzdCxwYXJzZVRvSnNvbjooKT0+cGFyc2VUb0pzb24scmVxdWVzdFJlc29sdmVkU3VidHJlZTooKT0+cmVxdWVzdFJlc29sdmVkU3VidHJlZSxyZXNvbHZlU3BlYzooKT0+cmVzb2x2ZVNwZWMsc2V0TXV0YXRlZFJlcXVlc3Q6KCk9PnNldE11dGF0ZWRSZXF1ZXN0LHNldFJlcXVlc3Q6KCk9PnNldFJlcXVlc3Qsc2V0UmVzcG9uc2U6KCk9PnNldFJlc3BvbnNlLHNldFNjaGVtZTooKT0+c2V0U2NoZW1lLHVwZGF0ZUVtcHR5UGFyYW1JbmNsdXNpb246KCk9PnVwZGF0ZUVtcHR5UGFyYW1JbmNsdXNpb24sdXBkYXRlSnNvblNwZWM6KCk9PnVwZGF0ZUpzb25TcGVjLHVwZGF0ZVJlc29sdmVkOigpPT51cGRhdGVSZXNvbHZlZCx1cGRhdGVSZXNvbHZlZFN1YnRyZWU6KCk9PnVwZGF0ZVJlc29sdmVkU3VidHJlZSx1cGRhdGVTcGVjOigpPT51cGRhdGVTcGVjLHVwZGF0ZVVybDooKT0+dXBkYXRlVXJsLHZhbGlkYXRlUGFyYW1zOigpPT52YWxpZGF0ZVBhcmFtc30pO3ZhciBZPXt9O19fd2VicGFja19yZXF1aXJlX18ucihZKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoWSx7ZXhlY3V0ZVJlcXVlc3Q6KCk9PndyYXBfYWN0aW9uc19leGVjdXRlUmVxdWVzdCx1cGRhdGVKc29uU3BlYzooKT0+d3JhcF9hY3Rpb25zX3VwZGF0ZUpzb25TcGVjLHVwZGF0ZVNwZWM6KCk9PndyYXBfYWN0aW9uc191cGRhdGVTcGVjLHZhbGlkYXRlUGFyYW1zOigpPT53cmFwX2FjdGlvbnNfdmFsaWRhdGVQYXJhbXN9KTt2YXIgWj17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoWiksX193ZWJwYWNrX3JlcXVpcmVfXy5kKFose0pzb25QYXRjaEVycm9yOigpPT5EbyxfYXJlRXF1YWxzOigpPT5fYXJlRXF1YWxzLGFwcGx5T3BlcmF0aW9uOigpPT5hcHBseU9wZXJhdGlvbixhcHBseVBhdGNoOigpPT5hcHBseVBhdGNoLGFwcGx5UmVkdWNlcjooKT0+YXBwbHlSZWR1Y2VyLGRlZXBDbG9uZTooKT0+TG8sZ2V0VmFsdWVCeVBvaW50ZXI6KCk9PmdldFZhbHVlQnlQb2ludGVyLHZhbGlkYXRlOigpPT52YWxpZGF0ZSx2YWxpZGF0b3I6KCk9PnZhbGlkYXRvcn0pO3ZhciBlZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoZWUpLF9fd2VicGFja19yZXF1aXJlX18uZChlZSx7Y29tcGFyZTooKT0+Y29tcGFyZSxnZW5lcmF0ZTooKT0+Z2VuZXJhdGUsb2JzZXJ2ZTooKT0+b2JzZXJ2ZSx1bm9ic2VydmU6KCk9PnVub2JzZXJ2ZX0pO3ZhciBpZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoaWUpLF9fd2VicGFja19yZXF1aXJlX18uZChpZSx7aGFzRWxlbWVudFNvdXJjZU1hcDooKT0+aGFzRWxlbWVudFNvdXJjZU1hcCxpbmNsdWRlc0NsYXNzZXM6KCk9PmluY2x1ZGVzQ2xhc3NlcyxpbmNsdWRlc1N5bWJvbHM6KCk9PmluY2x1ZGVzU3ltYm9scyxpc0Fubm90YXRpb25FbGVtZW50OigpPT5CdSxpc0FycmF5RWxlbWVudDooKT0+UnUsaXNCb29sZWFuRWxlbWVudDooKT0+TnUsaXNDb21tZW50RWxlbWVudDooKT0+JHUsaXNFbGVtZW50OigpPT5qdSxpc0xpbmtFbGVtZW50OigpPT5MdSxpc01lbWJlckVsZW1lbnQ6KCk9PkR1LGlzTnVsbEVsZW1lbnQ6KCk9PlR1LGlzTnVtYmVyRWxlbWVudDooKT0+UHUsaXNPYmplY3RFbGVtZW50OigpPT5NdSxpc1BhcnNlUmVzdWx0RWxlbWVudDooKT0+cXUsaXNQcmltaXRpdmVFbGVtZW50OigpPT5pc1ByaW1pdGl2ZUVsZW1lbnQsaXNSZWZFbGVtZW50OigpPT5GdSxpc1NvdXJjZU1hcEVsZW1lbnQ6KCk9PlZ1LGlzU3RyaW5nRWxlbWVudDooKT0+SXV9KTt2YXIgYWU9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKGFlKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoYWUse2lzSlNPTlJlZmVyZW5jZUVsZW1lbnQ6KCk9PkJkLGlzSlNPTlNjaGVtYUVsZW1lbnQ6KCk9PkZkLGlzTGlua0Rlc2NyaXB0aW9uRWxlbWVudDooKT0+VmQsaXNNZWRpYUVsZW1lbnQ6KCk9PiRkfSk7dmFyIGNlPXt9O19fd2VicGFja19yZXF1aXJlX18ucihjZSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKGNlLHtpc0Jvb2xlYW5Kc29uU2NoZW1hRWxlbWVudDooKT0+aXNCb29sZWFuSnNvblNjaGVtYUVsZW1lbnQsaXNDYWxsYmFja0VsZW1lbnQ6KCk9Pk1tLGlzQ29tcG9uZW50c0VsZW1lbnQ6KCk9PlJtLGlzQ29udGFjdEVsZW1lbnQ6KCk9PkRtLGlzRXhhbXBsZUVsZW1lbnQ6KCk9PkxtLGlzRXh0ZXJuYWxEb2N1bWVudGF0aW9uRWxlbWVudDooKT0+Rm0saXNIZWFkZXJFbGVtZW50OigpPT5CbSxpc0luZm9FbGVtZW50OigpPT4kbSxpc0xpY2Vuc2VFbGVtZW50OigpPT5xbSxpc0xpbmtFbGVtZW50OigpPT5WbSxpc01lZGlhVHlwZUVsZW1lbnQ6KCk9Pm9nLGlzT3BlbkFwaTNfMEVsZW1lbnQ6KCk9PnptLGlzT3BlbmFwaUVsZW1lbnQ6KCk9PlVtLGlzT3BlcmF0aW9uRWxlbWVudDooKT0+V20saXNQYXJhbWV0ZXJFbGVtZW50OigpPT5KbSxpc1BhdGhJdGVtRWxlbWVudDooKT0+SG0saXNQYXRoc0VsZW1lbnQ6KCk9PkttLGlzUmVmZXJlbmNlRWxlbWVudDooKT0+R20saXNSZXF1ZXN0Qm9keUVsZW1lbnQ6KCk9PlltLGlzUmVzcG9uc2VFbGVtZW50OigpPT5YbSxpc1Jlc3BvbnNlc0VsZW1lbnQ6KCk9PlFtLGlzU2NoZW1hRWxlbWVudDooKT0+Wm0saXNTZWN1cml0eVJlcXVpcmVtZW50RWxlbWVudDooKT0+ZWcsaXNTZWN1cml0eVNjaGVtZUVsZW1lbnQ6KCk9PnJnLGlzU2VydmVyRWxlbWVudDooKT0+bmcsaXNTZXJ2ZXJWYXJpYWJsZUVsZW1lbnQ6KCk9PnNnLGlzU2VydmVyc0VsZW1lbnQ6KCk9PmxnfSk7dmFyIGxlPXt9O19fd2VicGFja19yZXF1aXJlX18ucihsZSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKGxlLHtpc0pTT05SZWZlcmVuY2VFbGVtZW50OigpPT5CZCxpc0pTT05TY2hlbWFFbGVtZW50OigpPT55Xyxpc0xpbmtEZXNjcmlwdGlvbkVsZW1lbnQ6KCk9PnZfLGlzTWVkaWFFbGVtZW50OigpPT4kZH0pO3ZhciBwZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIocGUpLF9fd2VicGFja19yZXF1aXJlX18uZChwZSx7aXNKU09OUmVmZXJlbmNlRWxlbWVudDooKT0+QmQsaXNKU09OU2NoZW1hRWxlbWVudDooKT0+QV8saXNMaW5rRGVzY3JpcHRpb25FbGVtZW50OigpPT5qX30pO3ZhciBkZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoZGUpLF9fd2VicGFja19yZXF1aXJlX18uZChkZSx7aXNKU09OU2NoZW1hRWxlbWVudDooKT0+R18saXNMaW5rRGVzY3JpcHRpb25FbGVtZW50OigpPT5ZX30pO3ZhciBmZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoZmUpLF9fd2VicGFja19yZXF1aXJlX18uZChmZSx7aXNKU09OU2NoZW1hRWxlbWVudDooKT0+aVMsaXNMaW5rRGVzY3JpcHRpb25FbGVtZW50OigpPT5hU30pO3ZhciB5ZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoeWUpLF9fd2VicGFja19yZXF1aXJlX18uZCh5ZSx7aXNCb29sZWFuSnNvblNjaGVtYUVsZW1lbnQ6KCk9PnByZWRpY2F0ZXNfaXNCb29sZWFuSnNvblNjaGVtYUVsZW1lbnQsaXNDYWxsYmFja0VsZW1lbnQ6KCk9PldTLGlzQ29tcG9uZW50c0VsZW1lbnQ6KCk9PkpTLGlzQ29udGFjdEVsZW1lbnQ6KCk9PkhTLGlzRXhhbXBsZUVsZW1lbnQ6KCk9PktTLGlzRXh0ZXJuYWxEb2N1bWVudGF0aW9uRWxlbWVudDooKT0+R1MsaXNIZWFkZXJFbGVtZW50OigpPT5ZUyxpc0luZm9FbGVtZW50OigpPT5YUyxpc0pzb25TY2hlbWFEaWFsZWN0RWxlbWVudDooKT0+UVMsaXNMaWNlbnNlRWxlbWVudDooKT0+WlMsaXNMaW5rRWxlbWVudDooKT0+ZUUsaXNNZWRpYVR5cGVFbGVtZW50OigpPT5nRSxpc09wZW5BcGkzXzFFbGVtZW50OigpPT5yRSxpc09wZW5hcGlFbGVtZW50OigpPT50RSxpc09wZXJhdGlvbkVsZW1lbnQ6KCk9Pm5FLGlzUGFyYW1ldGVyRWxlbWVudDooKT0+c0UsaXNQYXRoSXRlbUVsZW1lbnQ6KCk9Pm9FLGlzUGF0aEl0ZW1FbGVtZW50RXh0ZXJuYWw6KCk9PmlzUGF0aEl0ZW1FbGVtZW50RXh0ZXJuYWwsaXNQYXRoc0VsZW1lbnQ6KCk9PmlFLGlzUmVmZXJlbmNlRWxlbWVudDooKT0+YUUsaXNSZWZlcmVuY2VFbGVtZW50RXh0ZXJuYWw6KCk9PmlzUmVmZXJlbmNlRWxlbWVudEV4dGVybmFsLGlzUmVxdWVzdEJvZHlFbGVtZW50OigpPT5jRSxpc1Jlc3BvbnNlRWxlbWVudDooKT0+bEUsaXNSZXNwb25zZXNFbGVtZW50OigpPT51RSxpc1NjaGVtYUVsZW1lbnQ6KCk9PnBFLGlzU2VjdXJpdHlSZXF1aXJlbWVudEVsZW1lbnQ6KCk9PmhFLGlzU2VjdXJpdHlTY2hlbWVFbGVtZW50OigpPT5kRSxpc1NlcnZlckVsZW1lbnQ6KCk9PmZFLGlzU2VydmVyVmFyaWFibGVFbGVtZW50OigpPT5tRX0pO3ZhciBiZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoYmUpLF9fd2VicGFja19yZXF1aXJlX18uZChiZSx7Y29va2llOigpPT5jb29raWUsaGVhZGVyOigpPT5wYXJhbWV0ZXJfYnVpbGRlcnNfaGVhZGVyLHBhdGg6KCk9PnBhcmFtZXRlcl9idWlsZGVyc19wYXRoLHF1ZXJ5OigpPT5xdWVyeX0pO3ZhciBfZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX2UpLF9fd2VicGFja19yZXF1aXJlX18uZChfZSx7QnV0dG9uOigpPT5CdXR0b24sQ29sOigpPT5Db2wsQ29sbGFwc2U6KCk9PkNvbGxhcHNlLENvbnRhaW5lcjooKT0+Q29udGFpbmVyLElucHV0OigpPT5JbnB1dCxMaW5rOigpPT5sYXlvdXRfdXRpbHNfTGluayxSb3c6KCk9PlJvdyxTZWxlY3Q6KCk9PlNlbGVjdCxUZXh0QXJlYTooKT0+VGV4dEFyZWF9KTt2YXIgU2U9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKFNlKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoU2Use2Jhc2VQYXRoOigpPT5NSSxjb25zdW1lczooKT0+UkksZGVmaW5pdGlvbnM6KCk9PklJLGZpbmREZWZpbml0aW9uOigpPT5qSSxoYXNIb3N0OigpPT5QSSxob3N0OigpPT5OSSxwcm9kdWNlczooKT0+REksc2NoZW1lczooKT0+TEksc2VjdXJpdHlEZWZpbml0aW9uczooKT0+VEksdmFsaWRPcGVyYXRpb25NZXRob2RzOigpPT53cmFwX3NlbGVjdG9yc192YWxpZE9wZXJhdGlvbk1ldGhvZHN9KTt2YXIgd2U9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKHdlKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQod2Use2RlZmluaXRpb25zVG9BdXRob3JpemU6KCk9PkZJfSk7dmFyIHhlPXt9O19fd2VicGFja19yZXF1aXJlX18ucih4ZSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKHhlLHtjYWxsYmFja3NPcGVyYXRpb25zOigpPT5xSSxmaW5kU2NoZW1hOigpPT5maW5kU2NoZW1hLGlzT0FTMzooKT0+c2VsZWN0b3JzX2lzT0FTMyxpc09BUzMwOigpPT5zZWxlY3RvcnNfaXNPQVMzMCxpc1N3YWdnZXIyOigpPT5zZWxlY3RvcnNfaXNTd2FnZ2VyMixzZXJ2ZXJzOigpPT4kSX0pO3ZhciBQZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoUGUpLF9fd2VicGFja19yZXF1aXJlX18uZChQZSx7Q0xFQVJfUkVRVUVTVF9CT0RZX1ZBTElEQVRFX0VSUk9SOigpPT5hUCxDTEVBUl9SRVFVRVNUX0JPRFlfVkFMVUU6KCk9PmNQLFNFVF9SRVFVRVNUX0JPRFlfVkFMSURBVEVfRVJST1I6KCk9PmlQLFVQREFURV9BQ1RJVkVfRVhBTVBMRVNfTUVNQkVSOigpPT5yUCxVUERBVEVfUkVRVUVTVF9CT0RZX0lOQ0xVU0lPTjooKT0+dFAsVVBEQVRFX1JFUVVFU1RfQk9EWV9WQUxVRTooKT0+WkksVVBEQVRFX1JFUVVFU1RfQk9EWV9WQUxVRV9SRVRBSU5fRkxBRzooKT0+ZVAsVVBEQVRFX1JFUVVFU1RfQ09OVEVOVF9UWVBFOigpPT5uUCxVUERBVEVfUkVTUE9OU0VfQ09OVEVOVF9UWVBFOigpPT5zUCxVUERBVEVfU0VMRUNURURfU0VSVkVSOigpPT5RSSxVUERBVEVfU0VSVkVSX1ZBUklBQkxFX1ZBTFVFOigpPT5vUCxjbGVhclJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcjooKT0+Y2xlYXJSZXF1ZXN0Qm9keVZhbGlkYXRlRXJyb3IsY2xlYXJSZXF1ZXN0Qm9keVZhbHVlOigpPT5jbGVhclJlcXVlc3RCb2R5VmFsdWUsaW5pdFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcjooKT0+aW5pdFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcixzZXRBY3RpdmVFeGFtcGxlc01lbWJlcjooKT0+c2V0QWN0aXZlRXhhbXBsZXNNZW1iZXIsc2V0UmVxdWVzdEJvZHlJbmNsdXNpb246KCk9PnNldFJlcXVlc3RCb2R5SW5jbHVzaW9uLHNldFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcjooKT0+c2V0UmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yLHNldFJlcXVlc3RCb2R5VmFsdWU6KCk9PnNldFJlcXVlc3RCb2R5VmFsdWUsc2V0UmVxdWVzdENvbnRlbnRUeXBlOigpPT5zZXRSZXF1ZXN0Q29udGVudFR5cGUsc2V0UmVzcG9uc2VDb250ZW50VHlwZTooKT0+c2V0UmVzcG9uc2VDb250ZW50VHlwZSxzZXRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlRmxhZzooKT0+c2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWcsc2V0U2VsZWN0ZWRTZXJ2ZXI6KCk9PnNldFNlbGVjdGVkU2VydmVyLHNldFNlcnZlclZhcmlhYmxlVmFsdWU6KCk9PnNldFNlcnZlclZhcmlhYmxlVmFsdWV9KTt2YXIgVGU9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKFRlKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoVGUse2FjdGl2ZUV4YW1wbGVzTWVtYmVyOigpPT55UCxoYXNVc2VyRWRpdGVkQm9keTooKT0+ZlAscmVxdWVzdEJvZHlFcnJvcnM6KCk9PmdQLHJlcXVlc3RCb2R5SW5jbHVzaW9uU2V0dGluZzooKT0+bVAscmVxdWVzdEJvZHlWYWx1ZTooKT0+aFAscmVxdWVzdENvbnRlbnRUeXBlOigpPT52UCxyZXNwb25zZUNvbnRlbnRUeXBlOigpPT5iUCxzZWxlY3REZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZTooKT0+c2VsZWN0RGVmYXVsdFJlcXVlc3RCb2R5VmFsdWUsc2VsZWN0ZWRTZXJ2ZXI6KCk9PnBQLHNlcnZlckVmZmVjdGl2ZVZhbHVlOigpPT5FUCxzZXJ2ZXJWYXJpYWJsZVZhbHVlOigpPT5fUCxzZXJ2ZXJWYXJpYWJsZXM6KCk9PlNQLHNob3VsZFJldGFpblJlcXVlc3RCb2R5VmFsdWU6KCk9PmRQLHZhbGlkT3BlcmF0aW9uTWV0aG9kczooKT0+eFAsdmFsaWRhdGVCZWZvcmVFeGVjdXRlOigpPT53UCx2YWxpZGF0ZVNoYWxsb3dSZXF1aXJlZDooKT0+dmFsaWRhdGVTaGFsbG93UmVxdWlyZWR9KTt2YXIgUmU9X193ZWJwYWNrX3JlcXVpcmVfXyg5NjU0MCk7ZnVuY3Rpb24gZm9ybWF0UHJvZEVycm9yTWVzc2FnZShzKXtyZXR1cm5gTWluaWZpZWQgUmVkdXggZXJyb3IgIyR7c307IHZpc2l0IGh0dHBzOi8vcmVkdXguanMub3JnL0Vycm9ycz9jb2RlPSR7c30gZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycy4gYH12YXIgJGU9KCgpPT4iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wub2JzZXJ2YWJsZXx8IkBAb2JzZXJ2YWJsZSIpKCkscmFuZG9tU3RyaW5nPSgpPT5NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoNykuc3BsaXQoIiIpLmpvaW4oIi4iKSxxZT17SU5JVDpgQEByZWR1eC9JTklUJHtyYW5kb21TdHJpbmcoKX1gLFJFUExBQ0U6YEBAcmVkdXgvUkVQTEFDRSR7cmFuZG9tU3RyaW5nKCl9YCxQUk9CRV9VTktOT1dOX0FDVElPTjooKT0+YEBAcmVkdXgvUFJPQkVfVU5LTk9XTl9BQ1RJT04ke3JhbmRvbVN0cmluZygpfWB9O2Z1bmN0aW9uIGlzUGxhaW5PYmplY3Qocyl7aWYoIm9iamVjdCIhPXR5cGVvZiBzfHxudWxsPT09cylyZXR1cm4hMTtsZXQgbz1zO2Zvcig7bnVsbCE9PU9iamVjdC5nZXRQcm90b3R5cGVPZihvKTspbz1PYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7cmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihzKT09PW98fG51bGw9PT1PYmplY3QuZ2V0UHJvdG90eXBlT2Yocyl9ZnVuY3Rpb24gY3JlYXRlU3RvcmUocyxvLGkpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBzKXRocm93IG5ldyBFcnJvcihmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDIpKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgbyYmImZ1bmN0aW9uIj09dHlwZW9mIGl8fCJmdW5jdGlvbiI9PXR5cGVvZiBpJiYiZnVuY3Rpb24iPT10eXBlb2YgYXJndW1lbnRzWzNdKXRocm93IG5ldyBFcnJvcihmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDApKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgbyYmdm9pZCAwPT09aSYmKGk9byxvPXZvaWQgMCksdm9pZCAwIT09aSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGkpdGhyb3cgbmV3IEVycm9yKGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMSkpO3JldHVybiBpKGNyZWF0ZVN0b3JlKShzLG8pfWxldCBhPXMsdT1vLF89bmV3IE1hcCx3PV8seD0wLEM9ITE7ZnVuY3Rpb24gZW5zdXJlQ2FuTXV0YXRlTmV4dExpc3RlbmVycygpe3c9PT1fJiYodz1uZXcgTWFwLF8uZm9yRWFjaCgoKHMsbyk9Pnt3LnNldChvLHMpfSkpKX1mdW5jdGlvbiBnZXRTdGF0ZSgpe2lmKEMpdGhyb3cgbmV3IEVycm9yKGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMykpO3JldHVybiB1fWZ1bmN0aW9uIHN1YnNjcmliZShzKXtpZigiZnVuY3Rpb24iIT10eXBlb2Ygcyl0aHJvdyBuZXcgRXJyb3IoZm9ybWF0UHJvZEVycm9yTWVzc2FnZSg0KSk7aWYoQyl0aHJvdyBuZXcgRXJyb3IoZm9ybWF0UHJvZEVycm9yTWVzc2FnZSg1KSk7bGV0IG89ITA7ZW5zdXJlQ2FuTXV0YXRlTmV4dExpc3RlbmVycygpO2NvbnN0IGk9eCsrO3JldHVybiB3LnNldChpLHMpLGZ1bmN0aW9uIHVuc3Vic2NyaWJlKCl7aWYobyl7aWYoQyl0aHJvdyBuZXcgRXJyb3IoZm9ybWF0UHJvZEVycm9yTWVzc2FnZSg2KSk7bz0hMSxlbnN1cmVDYW5NdXRhdGVOZXh0TGlzdGVuZXJzKCksdy5kZWxldGUoaSksXz1udWxsfX19ZnVuY3Rpb24gZGlzcGF0Y2gocyl7aWYoIWlzUGxhaW5PYmplY3QocykpdGhyb3cgbmV3IEVycm9yKGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoNykpO2lmKHZvaWQgMD09PXMudHlwZSl0aHJvdyBuZXcgRXJyb3IoZm9ybWF0UHJvZEVycm9yTWVzc2FnZSg4KSk7aWYoInN0cmluZyIhPXR5cGVvZiBzLnR5cGUpdGhyb3cgbmV3IEVycm9yKGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMTcpKTtpZihDKXRocm93IG5ldyBFcnJvcihmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDkpKTt0cnl7Qz0hMCx1PWEodSxzKX1maW5hbGx5e0M9ITF9cmV0dXJuKF89dykuZm9yRWFjaCgocz0+e3MoKX0pKSxzfWRpc3BhdGNoKHt0eXBlOnFlLklOSVR9KTtyZXR1cm57ZGlzcGF0Y2gsc3Vic2NyaWJlLGdldFN0YXRlLHJlcGxhY2VSZWR1Y2VyOmZ1bmN0aW9uIHJlcGxhY2VSZWR1Y2VyKHMpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBzKXRocm93IG5ldyBFcnJvcihmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDEwKSk7YT1zLGRpc3BhdGNoKHt0eXBlOnFlLlJFUExBQ0V9KX0sWyRlXTpmdW5jdGlvbiBvYnNlcnZhYmxlKCl7Y29uc3Qgcz1zdWJzY3JpYmU7cmV0dXJue3N1YnNjcmliZShvKXtpZigib2JqZWN0IiE9dHlwZW9mIG98fG51bGw9PT1vKXRocm93IG5ldyBFcnJvcihmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDExKSk7ZnVuY3Rpb24gb2JzZXJ2ZVN0YXRlKCl7Y29uc3Qgcz1vO3MubmV4dCYmcy5uZXh0KGdldFN0YXRlKCkpfW9ic2VydmVTdGF0ZSgpO3JldHVybnt1bnN1YnNjcmliZTpzKG9ic2VydmVTdGF0ZSl9fSxbJGVdKCl7cmV0dXJuIHRoaXN9fX19fWZ1bmN0aW9uIGJpbmRBY3Rpb25DcmVhdG9yKHMsbyl7cmV0dXJuIGZ1bmN0aW9uKC4uLmkpe3JldHVybiBvKHMuYXBwbHkodGhpcyxpKSl9fWZ1bmN0aW9uIGNvbXBvc2UoLi4ucyl7cmV0dXJuIDA9PT1zLmxlbmd0aD9zPT5zOjE9PT1zLmxlbmd0aD9zWzBdOnMucmVkdWNlKCgocyxvKT0+KC4uLmkpPT5zKG8oLi4uaSkpKSl9dmFyIHplPV9fd2VicGFja19yZXF1aXJlX18oOTQwNCksV2U9X193ZWJwYWNrX3JlcXVpcmVfXy5uKHplKSxIZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDgxOTE5KSxZZT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oSGUpLFhlPV9fd2VicGFja19yZXF1aXJlX18oODk1OTMpLFFlPV9fd2VicGFja19yZXF1aXJlX18oMjAzMzQpLGV0PV9fd2VicGFja19yZXF1aXJlX18oNTUzNjQpLHR0PV9fd2VicGFja19yZXF1aXJlX18ubihldCk7Y29uc3QgcnQ9ImVycl9uZXdfdGhyb3duX2VyciIsbnQ9ImVycl9uZXdfdGhyb3duX2Vycl9iYXRjaCIsc3Q9ImVycl9uZXdfc3BlY19lcnIiLG90PSJlcnJfbmV3X3NwZWNfZXJyX2JhdGNoIixpdD0iZXJyX25ld19hdXRoX2VyciIsYXQ9ImVycl9jbGVhciIsY3Q9ImVycl9jbGVhcl9ieSI7ZnVuY3Rpb24gbmV3VGhyb3duRXJyKHMpe3JldHVybnt0eXBlOnJ0LHBheWxvYWQ6KDAsUWUuc2VyaWFsaXplRXJyb3IpKHMpfX1mdW5jdGlvbiBuZXdUaHJvd25FcnJCYXRjaChzKXtyZXR1cm57dHlwZTpudCxwYXlsb2FkOnN9fWZ1bmN0aW9uIG5ld1NwZWNFcnIocyl7cmV0dXJue3R5cGU6c3QscGF5bG9hZDpzfX1mdW5jdGlvbiBuZXdTcGVjRXJyQmF0Y2gocyl7cmV0dXJue3R5cGU6b3QscGF5bG9hZDpzfX1mdW5jdGlvbiBuZXdBdXRoRXJyKHMpe3JldHVybnt0eXBlOml0LHBheWxvYWQ6c319ZnVuY3Rpb24gY2xlYXIocz17fSl7cmV0dXJue3R5cGU6YXQscGF5bG9hZDpzfX1mdW5jdGlvbiBjbGVhckJ5KHM9KCk9PiEwKXtyZXR1cm57dHlwZTpjdCxwYXlsb2FkOnN9fWNvbnN0IGx0PWZ1bmN0aW9uIG1ha2VXaW5kb3coKXt2YXIgcz17bG9jYXRpb246e30saGlzdG9yeTp7fSxvcGVuOigpPT57fSxjbG9zZTooKT0+e30sRmlsZTpmdW5jdGlvbigpe30sRm9ybURhdGE6ZnVuY3Rpb24oKXt9fTtpZigidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdylyZXR1cm4gczt0cnl7cz13aW5kb3c7Zm9yKHZhciBvIG9mWyJGaWxlIiwiQmxvYiIsIkZvcm1EYXRhIl0pbyBpbiB3aW5kb3cmJihzW29dPXdpbmRvd1tvXSl9Y2F0Y2gocyl7Y29uc29sZS5lcnJvcihzKX1yZXR1cm4gc30oKTtfX3dlYnBhY2tfcmVxdWlyZV9fKDg0MDU4KSxfX3dlYnBhY2tfcmVxdWlyZV9fKDU1ODA4KTt2YXIgdXQ9X193ZWJwYWNrX3JlcXVpcmVfXyg1MDEwNCkscHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKHV0KSxodD1fX3dlYnBhY2tfcmVxdWlyZV9fKDczMDkpLGR0PV9fd2VicGFja19yZXF1aXJlX18ubihodCksbXQ9X193ZWJwYWNrX3JlcXVpcmVfXyg0MjQyNiksZ3Q9X193ZWJwYWNrX3JlcXVpcmVfXy5uKG10KSx5dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDc1Mjg4KSx2dD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oeXQpLGJ0PV9fd2VicGFja19yZXF1aXJlX18oMTg4MiksX3Q9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGJ0KSxTdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDIyMDUpLEV0PV9fd2VicGFja19yZXF1aXJlX18ubihTdCksd3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzIwOSkseHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKHd0KSxrdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDYyODAyKSxPdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oa3QpO2NvbnN0IEN0PVdlKCkuU2V0Lm9mKCJ0eXBlIiwiZm9ybWF0IiwiaXRlbXMiLCJkZWZhdWx0IiwibWF4aW11bSIsImV4Y2x1c2l2ZU1heGltdW0iLCJtaW5pbXVtIiwiZXhjbHVzaXZlTWluaW11bSIsIm1heExlbmd0aCIsIm1pbkxlbmd0aCIsInBhdHRlcm4iLCJtYXhJdGVtcyIsIm1pbkl0ZW1zIiwidW5pcXVlSXRlbXMiLCJlbnVtIiwibXVsdGlwbGVPZiIpO2Z1bmN0aW9uIGdldFBhcmFtZXRlclNjaGVtYShzLHtpc09BUzM6b309e30pe2lmKCFXZSgpLk1hcC5pc01hcChzKSlyZXR1cm57c2NoZW1hOldlKCkuTWFwKCkscGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZTpudWxsfTtpZighbylyZXR1cm4iYm9keSI9PT1zLmdldCgiaW4iKT97c2NoZW1hOnMuZ2V0KCJzY2hlbWEiLFdlKCkuTWFwKCkpLHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGU6bnVsbH06e3NjaGVtYTpzLmZpbHRlcigoKHMsbyk9PkN0LmluY2x1ZGVzKG8pKSkscGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZTpudWxsfTtpZihzLmdldCgiY29udGVudCIpKXtjb25zdCBvPXMuZ2V0KCJjb250ZW50IixXZSgpLk1hcCh7fSkpLmtleVNlcSgpLmZpcnN0KCk7cmV0dXJue3NjaGVtYTpzLmdldEluKFsiY29udGVudCIsbywic2NoZW1hIl0sV2UoKS5NYXAoKSkscGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZTpvfX1yZXR1cm57c2NoZW1hOnMuZ2V0KCJzY2hlbWEiKT9zLmdldCgic2NoZW1hIixXZSgpLk1hcCgpKTpXZSgpLk1hcCgpLHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGU6bnVsbH19dmFyIEF0PV9fd2VicGFja19yZXF1aXJlX18oNDgyODcpLkJ1ZmZlcjtjb25zdCBqdD0iZGVmYXVsdCIsaXNJbW11dGFibGU9cz0+V2UoKS5JdGVyYWJsZS5pc0l0ZXJhYmxlKHMpLGltbXV0YWJsZVRvSlM9cz0+aXNJbW11dGFibGUocyk/cy50b0pTKCk6cztmdW5jdGlvbiBvYmplY3RpZnkocyl7cmV0dXJuIGlzT2JqZWN0KHMpP2ltbXV0YWJsZVRvSlMocyk6e319ZnVuY3Rpb24gZnJvbUpTT3JkZXJlZChzKXtpZihpc0ltbXV0YWJsZShzKSlyZXR1cm4gcztpZihzIGluc3RhbmNlb2YgbHQuRmlsZSlyZXR1cm4gcztpZighaXNPYmplY3QocykpcmV0dXJuIHM7aWYoQXJyYXkuaXNBcnJheShzKSlyZXR1cm4gV2UoKS5TZXEocykubWFwKGZyb21KU09yZGVyZWQpLnRvTGlzdCgpO2lmKF90KCkocy5lbnRyaWVzKSl7Y29uc3Qgbz1mdW5jdGlvbiBjcmVhdGVPYmpXaXRoSGFzaGVkS2V5cyhzKXtpZighX3QoKShzLmVudHJpZXMpKXJldHVybiBzO2NvbnN0IG89e30saT0iXyoqW10iLGE9e307Zm9yKGxldCB1IG9mIHMuZW50cmllcygpKWlmKG9bdVswXV18fGFbdVswXV0mJmFbdVswXV0uY29udGFpbnNNdWx0aXBsZSl7aWYoIWFbdVswXV0pe2FbdVswXV09e2NvbnRhaW5zTXVsdGlwbGU6ITAsbGVuZ3RoOjF9LG9bYCR7dVswXX0ke2l9JHthW3VbMF1dLmxlbmd0aH1gXT1vW3VbMF1dLGRlbGV0ZSBvW3VbMF1dfWFbdVswXV0ubGVuZ3RoKz0xLG9bYCR7dVswXX0ke2l9JHthW3VbMF1dLmxlbmd0aH1gXT11WzFdfWVsc2Ugb1t1WzBdXT11WzFdO3JldHVybiBvfShzKTtyZXR1cm4gV2UoKS5PcmRlcmVkTWFwKG8pLm1hcChmcm9tSlNPcmRlcmVkKX1yZXR1cm4gV2UoKS5PcmRlcmVkTWFwKHMpLm1hcChmcm9tSlNPcmRlcmVkKX1mdW5jdGlvbiBub3JtYWxpemVBcnJheShzKXtyZXR1cm4gQXJyYXkuaXNBcnJheShzKT9zOltzXX1mdW5jdGlvbiBpc0ZuKHMpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBzfWZ1bmN0aW9uIGlzT2JqZWN0KHMpe3JldHVybiEhcyYmIm9iamVjdCI9PXR5cGVvZiBzfWZ1bmN0aW9uIGlzRnVuYyhzKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygc31mdW5jdGlvbiBpc0FycmF5KHMpe3JldHVybiBBcnJheS5pc0FycmF5KHMpfWNvbnN0IEl0PXB0KCk7ZnVuY3Rpb24gb2JqTWFwKHMsbyl7cmV0dXJuIE9iamVjdC5rZXlzKHMpLnJlZHVjZSgoKGksYSk9PihpW2FdPW8oc1thXSxhKSxpKSkse30pfWZ1bmN0aW9uIG9ialJlZHVjZShzLG8pe3JldHVybiBPYmplY3Qua2V5cyhzKS5yZWR1Y2UoKChpLGEpPT57bGV0IHU9byhzW2FdLGEpO3JldHVybiB1JiYib2JqZWN0Ij09dHlwZW9mIHUmJk9iamVjdC5hc3NpZ24oaSx1KSxpfSkse30pfWZ1bmN0aW9uIHN5c3RlbVRodW5rTWlkZGxld2FyZShzKXtyZXR1cm4oe2Rpc3BhdGNoOm8sZ2V0U3RhdGU6aX0pPT5vPT5pPT4iZnVuY3Rpb24iPT10eXBlb2YgaT9pKHMoKSk6byhpKX1mdW5jdGlvbiB2YWxpZGF0ZVZhbHVlQnlTY2hlbWEocyxvLGksYSx1KXtpZighbylyZXR1cm5bXTtsZXQgXz1bXSx3PW8uZ2V0KCJudWxsYWJsZSIpLHg9by5nZXQoInJlcXVpcmVkIiksQz1vLmdldCgibWF4aW11bSIpLGo9by5nZXQoIm1pbmltdW0iKSxMPW8uZ2V0KCJ0eXBlIiksQj1vLmdldCgiZm9ybWF0IiksJD1vLmdldCgibWF4TGVuZ3RoIiksVj1vLmdldCgibWluTGVuZ3RoIiksVT1vLmdldCgidW5pcXVlSXRlbXMiKSx6PW8uZ2V0KCJtYXhJdGVtcyIpLFk9by5nZXQoIm1pbkl0ZW1zIiksWj1vLmdldCgicGF0dGVybiIpO2NvbnN0IGVlPWl8fCEwPT09eCxpZT1udWxsIT1zLGFlPWVlfHxpZSYmImFycmF5Ij09PUx8fCEoIWVlJiYhaWUpLGNlPXcmJm51bGw9PT1zO2lmKGVlJiYhaWUmJiFjZSYmIWEmJiFMKXJldHVybiBfLnB1c2goIlJlcXVpcmVkIGZpZWxkIGlzIG5vdCBwcm92aWRlZCIpLF87aWYoY2V8fCFMfHwhYWUpcmV0dXJuW107bGV0IGxlPSJzdHJpbmciPT09TCYmcyxwZT0iYXJyYXkiPT09TCYmQXJyYXkuaXNBcnJheShzKSYmcy5sZW5ndGgsZGU9ImFycmF5Ij09PUwmJldlKCkuTGlzdC5pc0xpc3QocykmJnMuY291bnQoKTtjb25zdCBmZT1bbGUscGUsZGUsImFycmF5Ij09PUwmJiJzdHJpbmciPT10eXBlb2YgcyYmcywiZmlsZSI9PT1MJiZzIGluc3RhbmNlb2YgbHQuRmlsZSwiYm9vbGVhbiI9PT1MJiYoc3x8ITE9PT1zKSwibnVtYmVyIj09PUwmJihzfHwwPT09cyksImludGVnZXIiPT09TCYmKHN8fDA9PT1zKSwib2JqZWN0Ij09PUwmJiJvYmplY3QiPT10eXBlb2YgcyYmbnVsbCE9PXMsIm9iamVjdCI9PT1MJiYic3RyaW5nIj09dHlwZW9mIHMmJnNdLnNvbWUoKHM9PiEhcykpO2lmKGVlJiYhZmUmJiFhKXJldHVybiBfLnB1c2goIlJlcXVpcmVkIGZpZWxkIGlzIG5vdCBwcm92aWRlZCIpLF87aWYoIm9iamVjdCI9PT1MJiYobnVsbD09PXV8fCJhcHBsaWNhdGlvbi9qc29uIj09PXUpKXtsZXQgaT1zO2lmKCJzdHJpbmciPT10eXBlb2Ygcyl0cnl7aT1KU09OLnBhcnNlKHMpfWNhdGNoKHMpe3JldHVybiBfLnB1c2goIlBhcmFtZXRlciBzdHJpbmcgdmFsdWUgbXVzdCBiZSB2YWxpZCBKU09OIiksX31vJiZvLmhhcygicmVxdWlyZWQiKSYmaXNGdW5jKHguaXNMaXN0KSYmeC5pc0xpc3QoKSYmeC5mb3JFYWNoKChzPT57dm9pZCAwPT09aVtzXSYmXy5wdXNoKHtwcm9wS2V5OnMsZXJyb3I6IlJlcXVpcmVkIHByb3BlcnR5IG5vdCBmb3VuZCJ9KX0pKSxvJiZvLmhhcygicHJvcGVydGllcyIpJiZvLmdldCgicHJvcGVydGllcyIpLmZvckVhY2goKChzLG8pPT57Y29uc3Qgdz12YWxpZGF0ZVZhbHVlQnlTY2hlbWEoaVtvXSxzLCExLGEsdSk7Xy5wdXNoKC4uLncubWFwKChzPT4oe3Byb3BLZXk6byxlcnJvcjpzfSkpKSl9KSl9aWYoWil7bGV0IG89KChzLG8pPT57aWYoIW5ldyBSZWdFeHAobykudGVzdChzKSlyZXR1cm4iVmFsdWUgbXVzdCBmb2xsb3cgcGF0dGVybiAiK299KShzLFopO28mJl8ucHVzaChvKX1pZihZJiYiYXJyYXkiPT09TCl7bGV0IG89KChzLG8pPT57aWYoIXMmJm8+PTF8fHMmJnMubGVuZ3RoPG8pcmV0dXJuYEFycmF5IG11c3QgY29udGFpbiBhdCBsZWFzdCAke299IGl0ZW0kezE9PT1vPyIiOiJzIn1gfSkocyxZKTtvJiZfLnB1c2gobyl9aWYoeiYmImFycmF5Ij09PUwpe2xldCBvPSgocyxvKT0+e2lmKHMmJnMubGVuZ3RoPm8pcmV0dXJuYEFycmF5IG11c3Qgbm90IGNvbnRhaW4gbW9yZSB0aGVuICR7b30gaXRlbSR7MT09PW8/IiI6InMifWB9KShzLHopO28mJl8ucHVzaCh7bmVlZFJlbW92ZTohMCxlcnJvcjpvfSl9aWYoVSYmImFycmF5Ij09PUwpe2xldCBvPSgocyxvKT0+e2lmKHMmJigidHJ1ZSI9PT1vfHwhMD09PW8pKXtjb25zdCBvPSgwLHplLmZyb21KUykocyksaT1vLnRvU2V0KCk7aWYocy5sZW5ndGg+aS5zaXplKXtsZXQgcz0oMCx6ZS5TZXQpKCk7aWYoby5mb3JFYWNoKCgoaSxhKT0+e28uZmlsdGVyKChzPT5pc0Z1bmMocy5lcXVhbHMpP3MuZXF1YWxzKGkpOnM9PT1pKSkuc2l6ZT4xJiYocz1zLmFkZChhKSl9KSksMCE9PXMuc2l6ZSlyZXR1cm4gcy5tYXAoKHM9Pih7aW5kZXg6cyxlcnJvcjoiTm8gZHVwbGljYXRlcyBhbGxvd2VkLiJ9KSkpLnRvQXJyYXkoKX19fSkocyxVKTtvJiZfLnB1c2goLi4ubyl9aWYoJHx8MD09PSQpe2xldCBvPSgocyxvKT0+e2lmKHMubGVuZ3RoPm8pcmV0dXJuYFZhbHVlIG11c3QgYmUgbm8gbG9uZ2VyIHRoYW4gJHtvfSBjaGFyYWN0ZXIkezEhPT1vPyJzIjoiIn1gfSkocywkKTtvJiZfLnB1c2gobyl9aWYoVil7bGV0IG89KChzLG8pPT57aWYocy5sZW5ndGg8bylyZXR1cm5gVmFsdWUgbXVzdCBiZSBhdCBsZWFzdCAke299IGNoYXJhY3RlciR7MSE9PW8/InMiOiIifWB9KShzLFYpO28mJl8ucHVzaChvKX1pZihDfHwwPT09Qyl7bGV0IG89KChzLG8pPT57aWYocz5vKXJldHVybmBWYWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAke299YH0pKHMsQyk7byYmXy5wdXNoKG8pfWlmKGp8fDA9PT1qKXtsZXQgbz0oKHMsbyk9PntpZihzPG8pcmV0dXJuYFZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICR7b31gfSkocyxqKTtvJiZfLnB1c2gobyl9aWYoInN0cmluZyI9PT1MKXtsZXQgbztpZihvPSJkYXRlLXRpbWUiPT09Qj8ocz0+e2lmKGlzTmFOKERhdGUucGFyc2UocykpKXJldHVybiJWYWx1ZSBtdXN0IGJlIGEgRGF0ZVRpbWUifSkocyk6InV1aWQiPT09Qj8ocz0+e2lmKHM9cy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksIS9eW3soXT9bMC05YS1mXXs4fS1bMC05YS1mXXs0fS1bMC05YS1mXXs0fS1bMC05YS1mXXs0fS1bMC05YS1mXXsxMn1bKX1dPyQvLnRlc3QocykpcmV0dXJuIlZhbHVlIG11c3QgYmUgYSBHdWlkIn0pKHMpOihzPT57aWYocyYmInN0cmluZyIhPXR5cGVvZiBzKXJldHVybiJWYWx1ZSBtdXN0IGJlIGEgc3RyaW5nIn0pKHMpLCFvKXJldHVybiBfO18ucHVzaChvKX1lbHNlIGlmKCJib29sZWFuIj09PUwpe2xldCBvPShzPT57aWYoInRydWUiIT09cyYmImZhbHNlIiE9PXMmJiEwIT09cyYmITEhPT1zKXJldHVybiJWYWx1ZSBtdXN0IGJlIGEgYm9vbGVhbiJ9KShzKTtpZighbylyZXR1cm4gXztfLnB1c2gobyl9ZWxzZSBpZigibnVtYmVyIj09PUwpe2xldCBvPShzPT57aWYoIS9eLT9cZCsoXC4/XGQrKT8kLy50ZXN0KHMpKXJldHVybiJWYWx1ZSBtdXN0IGJlIGEgbnVtYmVyIn0pKHMpO2lmKCFvKXJldHVybiBfO18ucHVzaChvKX1lbHNlIGlmKCJpbnRlZ2VyIj09PUwpe2xldCBvPShzPT57aWYoIS9eLT9cZCskLy50ZXN0KHMpKXJldHVybiJWYWx1ZSBtdXN0IGJlIGFuIGludGVnZXIifSkocyk7aWYoIW8pcmV0dXJuIF87Xy5wdXNoKG8pfWVsc2UgaWYoImFycmF5Ij09PUwpe2lmKCFwZSYmIWRlKXJldHVybiBfO3MmJnMuZm9yRWFjaCgoKHMsaSk9Pntjb25zdCB3PXZhbGlkYXRlVmFsdWVCeVNjaGVtYShzLG8uZ2V0KCJpdGVtcyIpLCExLGEsdSk7Xy5wdXNoKC4uLncubWFwKChzPT4oe2luZGV4OmksZXJyb3I6c30pKSkpfSkpfWVsc2UgaWYoImZpbGUiPT09TCl7bGV0IG89KHM9PntpZihzJiYhKHMgaW5zdGFuY2VvZiBsdC5GaWxlKSlyZXR1cm4iVmFsdWUgbXVzdCBiZSBhIGZpbGUifSkocyk7aWYoIW8pcmV0dXJuIF87Xy5wdXNoKG8pfXJldHVybiBffWNvbnN0IHV0aWxzX2J0b2E9cz0+e2xldCBvO3JldHVybiBvPXMgaW5zdGFuY2VvZiBBdD9zOkF0LmZyb20ocy50b1N0cmluZygpLCJ1dGYtOCIpLG8udG9TdHJpbmcoImJhc2U2NCIpfSxQdD17b3BlcmF0aW9uc1NvcnRlcjp7YWxwaGE6KHMsbyk9PnMuZ2V0KCJwYXRoIikubG9jYWxlQ29tcGFyZShvLmdldCgicGF0aCIpKSxtZXRob2Q6KHMsbyk9PnMuZ2V0KCJtZXRob2QiKS5sb2NhbGVDb21wYXJlKG8uZ2V0KCJtZXRob2QiKSl9LHRhZ3NTb3J0ZXI6e2FscGhhOihzLG8pPT5zLmxvY2FsZUNvbXBhcmUobyl9fSxidWlsZEZvcm1EYXRhPXM9PntsZXQgbz1bXTtmb3IobGV0IGkgaW4gcyl7bGV0IGE9c1tpXTt2b2lkIDAhPT1hJiYiIiE9PWEmJm8ucHVzaChbaSwiPSIsZW5jb2RlVVJJQ29tcG9uZW50KGEpLnJlcGxhY2UoLyUyMC9nLCIrIildLmpvaW4oIiIpKX1yZXR1cm4gby5qb2luKCImIil9LHNoYWxsb3dFcXVhbEtleXM9KHMsbyxpKT0+ISFkdCgpKGksKGk9PnZ0KCkoc1tpXSxvW2ldKSkpO2Z1bmN0aW9uIHJlcXVpcmVzVmFsaWRhdGlvblVSTChzKXtyZXR1cm4hKCFzfHxzLmluZGV4T2YoImxvY2FsaG9zdCIpPj0wfHxzLmluZGV4T2YoIjEyNy4wLjAuMSIpPj0wfHwibm9uZSI9PT1zKX1jb25zdCBjcmVhdGVEZWVwTGlua1BhdGg9cz0+InN0cmluZyI9PXR5cGVvZiBzfHxzIGluc3RhbmNlb2YgU3RyaW5nP3MudHJpbSgpLnJlcGxhY2UoL1xzL2csIiUyMCIpOiIiLGVzY2FwZURlZXBMaW5rUGF0aD1zPT5FdCgpKGNyZWF0ZURlZXBMaW5rUGF0aChzKS5yZXBsYWNlKC8lMjAvZywiXyIpKSxnZXRFeHRlbnNpb25zPXM9Pntjb25zdCBvPS9eeC0vO3JldHVybiB6ZS5NYXAuaXNNYXAocyk/cy5maWx0ZXIoKChzLGkpPT5vLnRlc3QoaSkpKTpPYmplY3Qua2V5cyhzKS5maWx0ZXIoKHM9Pm8udGVzdChzKSkpfSxnZXRDb21tb25FeHRlbnNpb25zPXM9PnMuZmlsdGVyKCgocyxvKT0+L15wYXR0ZXJufG1heExlbmd0aHxtaW5MZW5ndGh8bWF4aW11bXxtaW5pbXVtLy50ZXN0KG8pKSk7ZnVuY3Rpb24gZGVlcGx5U3RyaXBLZXkocyxvLGk9KCk9PiEwKXtpZigib2JqZWN0IiE9dHlwZW9mIHN8fEFycmF5LmlzQXJyYXkocyl8fG51bGw9PT1zfHwhbylyZXR1cm4gcztjb25zdCBhPU9iamVjdC5hc3NpZ24oe30scyk7cmV0dXJuIE9iamVjdC5rZXlzKGEpLmZvckVhY2goKHM9PntzPT09byYmaShhW3NdLHMpP2RlbGV0ZSBhW3NdOmFbc109ZGVlcGx5U3RyaXBLZXkoYVtzXSxvLGkpfSkpLGF9ZnVuY3Rpb24gc3RyaW5naWZ5KHMpe2lmKCJzdHJpbmciPT10eXBlb2YgcylyZXR1cm4gcztpZihzJiZzLnRvSlMmJihzPXMudG9KUygpKSwib2JqZWN0Ij09dHlwZW9mIHMmJm51bGwhPT1zKXRyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkocyxudWxsLDIpfWNhdGNoKG8pe3JldHVybiBTdHJpbmcocyl9cmV0dXJuIG51bGw9PXM/IiI6cy50b1N0cmluZygpfWZ1bmN0aW9uIHBhcmFtVG9JZGVudGlmaWVyKHMse3JldHVybkFsbDpvPSExLGFsbG93SGFzaGVzOmk9ITB9PXt9KXtpZighV2UoKS5NYXAuaXNNYXAocykpdGhyb3cgbmV3IEVycm9yKCJwYXJhbVRvSWRlbnRpZmllcjogcmVjZWl2ZWQgYSBub24tSW0uTWFwIHBhcmFtZXRlciBhcyBpbnB1dCIpO2NvbnN0IGE9cy5nZXQoIm5hbWUiKSx1PXMuZ2V0KCJpbiIpO2xldCBfPVtdO3JldHVybiBzJiZzLmhhc2hDb2RlJiZ1JiZhJiZpJiZfLnB1c2goYCR7dX0uJHthfS5oYXNoLSR7cy5oYXNoQ29kZSgpfWApLHUmJmEmJl8ucHVzaChgJHt1fS4ke2F9YCksXy5wdXNoKGEpLG8/XzpfWzBdfHwiIn1mdW5jdGlvbiBwYXJhbVRvVmFsdWUocyxvKXtyZXR1cm4gcGFyYW1Ub0lkZW50aWZpZXIocyx7cmV0dXJuQWxsOiEwfSkubWFwKChzPT5vW3NdKSkuZmlsdGVyKChzPT52b2lkIDAhPT1zKSlbMF19ZnVuY3Rpb24gYjY0dG9CNjRVcmxFbmNvZGVkKHMpe3JldHVybiBzLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIikucmVwbGFjZSgvPS9nLCIiKX1jb25zdCBpc0VtcHR5VmFsdWU9cz0+IXN8fCEoIWlzSW1tdXRhYmxlKHMpfHwhcy5pc0VtcHR5KCkpLGlkRm49cz0+cztmdW5jdGlvbiBjcmVhdGVTdG9yZVdpdGhNaWRkbGV3YXJlKHMsbyxpKXtsZXQgYT1bc3lzdGVtVGh1bmtNaWRkbGV3YXJlKGkpXTtyZXR1cm4gY3JlYXRlU3RvcmUocyxvLChsdC5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9DT01QT1NFX198fGNvbXBvc2UpKGZ1bmN0aW9uIGFwcGx5TWlkZGxld2FyZSguLi5zKXtyZXR1cm4gbz0+KGksYSk9Pntjb25zdCB1PW8oaSxhKTtsZXQgZGlzcGF0Y2g9KCk9Pnt0aHJvdyBuZXcgRXJyb3IoZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgxNSkpfTtjb25zdCBfPXtnZXRTdGF0ZTp1LmdldFN0YXRlLGRpc3BhdGNoOihzLC4uLm8pPT5kaXNwYXRjaChzLC4uLm8pfSx3PXMubWFwKChzPT5zKF8pKSk7cmV0dXJuIGRpc3BhdGNoPWNvbXBvc2UoLi4udykodS5kaXNwYXRjaCksey4uLnUsZGlzcGF0Y2h9fX0oLi4uYSkpKX1jbGFzcyBTdG9yZXtjb25zdHJ1Y3RvcihzPXt9KXtZZSgpKHRoaXMse3N0YXRlOnt9LHBsdWdpbnM6W10sc3lzdGVtOntjb25maWdzOnt9LGZuOnt9LGNvbXBvbmVudHM6e30scm9vdEluamVjdHM6e30sc3RhdGVQbHVnaW5zOnt9fSxib3VuZFN5c3RlbTp7fSx0b29sYm94Ont9fSxzKSx0aGlzLmdldFN5c3RlbT10aGlzLl9nZXRTeXN0ZW0uYmluZCh0aGlzKSx0aGlzLnN0b3JlPWZ1bmN0aW9uIGNvbmZpZ3VyZVN0b3JlKHMsbyxpKXtyZXR1cm4gY3JlYXRlU3RvcmVXaXRoTWlkZGxld2FyZShzLG8saSl9KGlkRm4sKDAsemUuZnJvbUpTKSh0aGlzLnN0YXRlKSx0aGlzLmdldFN5c3RlbSksdGhpcy5idWlsZFN5c3RlbSghMSksdGhpcy5yZWdpc3Rlcih0aGlzLnBsdWdpbnMpfWdldFN0b3JlKCl7cmV0dXJuIHRoaXMuc3RvcmV9cmVnaXN0ZXIocyxvPSEwKXt2YXIgaT1jb21iaW5lUGx1Z2lucyhzLHRoaXMuZ2V0U3lzdGVtKCkpO3N5c3RlbUV4dGVuZCh0aGlzLnN5c3RlbSxpKSxvJiZ0aGlzLmJ1aWxkU3lzdGVtKCk7Y2FsbEFmdGVyTG9hZC5jYWxsKHRoaXMuc3lzdGVtLHMsdGhpcy5nZXRTeXN0ZW0oKSkmJnRoaXMuYnVpbGRTeXN0ZW0oKX1idWlsZFN5c3RlbShzPSEwKXtsZXQgbz10aGlzLmdldFN0b3JlKCkuZGlzcGF0Y2gsaT10aGlzLmdldFN0b3JlKCkuZ2V0U3RhdGU7dGhpcy5ib3VuZFN5c3RlbT1PYmplY3QuYXNzaWduKHt9LHRoaXMuZ2V0Um9vdEluamVjdHMoKSx0aGlzLmdldFdyYXBwZWRBbmRCb3VuZEFjdGlvbnMobyksdGhpcy5nZXRXcmFwcGVkQW5kQm91bmRTZWxlY3RvcnMoaSx0aGlzLmdldFN5c3RlbSksdGhpcy5nZXRTdGF0ZVRodW5rcyhpKSx0aGlzLmdldEZuKCksdGhpcy5nZXRDb25maWdzKCkpLHMmJnRoaXMucmVidWlsZFJlZHVjZXIoKX1fZ2V0U3lzdGVtKCl7cmV0dXJuIHRoaXMuYm91bmRTeXN0ZW19Z2V0Um9vdEluamVjdHMoKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7Z2V0U3lzdGVtOnRoaXMuZ2V0U3lzdGVtLGdldFN0b3JlOnRoaXMuZ2V0U3RvcmUuYmluZCh0aGlzKSxnZXRDb21wb25lbnRzOnRoaXMuZ2V0Q29tcG9uZW50cy5iaW5kKHRoaXMpLGdldFN0YXRlOnRoaXMuZ2V0U3RvcmUoKS5nZXRTdGF0ZSxnZXRDb25maWdzOnRoaXMuX2dldENvbmZpZ3MuYmluZCh0aGlzKSxJbTpXZSgpLFJlYWN0OlJlfSx0aGlzLnN5c3RlbS5yb290SW5qZWN0c3x8e30pfV9nZXRDb25maWdzKCl7cmV0dXJuIHRoaXMuc3lzdGVtLmNvbmZpZ3N9Z2V0Q29uZmlncygpe3JldHVybntjb25maWdzOnRoaXMuc3lzdGVtLmNvbmZpZ3N9fXNldENvbmZpZ3Mocyl7dGhpcy5zeXN0ZW0uY29uZmlncz1zfXJlYnVpbGRSZWR1Y2VyKCl7dGhpcy5zdG9yZS5yZXBsYWNlUmVkdWNlcihmdW5jdGlvbiBidWlsZFJlZHVjZXIocyxvKXtyZXR1cm4gZnVuY3Rpb24gYWxsUmVkdWNlcnMocyxvKXtsZXQgaT1PYmplY3Qua2V5cyhzKS5yZWR1Y2UoKChpLGEpPT4oaVthXT1mdW5jdGlvbiBtYWtlUmVkdWNlcihzLG8pe3JldHVybihpPW5ldyB6ZS5NYXAsYSk9PntpZighcylyZXR1cm4gaTtsZXQgdT1zW2EudHlwZV07aWYodSl7Y29uc3Qgcz13cmFwV2l0aFRyeUNhdGNoKHUsbykoaSxhKTtyZXR1cm4gbnVsbD09PXM/aTpzfXJldHVybiBpfX0oc1thXSxvKSxpKSkse30pO2lmKCFPYmplY3Qua2V5cyhpKS5sZW5ndGgpcmV0dXJuIGlkRm47cmV0dXJuKDAsWGUuSCkoaSl9KG9iak1hcChzLChzPT5zLnJlZHVjZXJzKSksbyl9KHRoaXMuc3lzdGVtLnN0YXRlUGx1Z2lucyx0aGlzLmdldFN5c3RlbSkpfWdldFR5cGUocyl7bGV0IG89c1swXS50b1VwcGVyQ2FzZSgpK3Muc2xpY2UoMSk7cmV0dXJuIG9ialJlZHVjZSh0aGlzLnN5c3RlbS5zdGF0ZVBsdWdpbnMsKChpLGEpPT57bGV0IHU9aVtzXTtpZih1KXJldHVybntbYStvXTp1fX0pKX1nZXRTZWxlY3RvcnMoKXtyZXR1cm4gdGhpcy5nZXRUeXBlKCJzZWxlY3RvcnMiKX1nZXRBY3Rpb25zKCl7cmV0dXJuIG9iak1hcCh0aGlzLmdldFR5cGUoImFjdGlvbnMiKSwocz0+b2JqUmVkdWNlKHMsKChzLG8pPT57aWYoaXNGbihzKSlyZXR1cm57W29dOnN9fSkpKSl9Z2V0V3JhcHBlZEFuZEJvdW5kQWN0aW9ucyhzKXtyZXR1cm4gb2JqTWFwKHRoaXMuZ2V0Qm91bmRBY3Rpb25zKHMpLCgocyxvKT0+e2xldCBpPXRoaXMuc3lzdGVtLnN0YXRlUGx1Z2luc1tvLnNsaWNlKDAsLTcpXS53cmFwQWN0aW9ucztyZXR1cm4gaT9vYmpNYXAocywoKHMsbyk9PntsZXQgYT1pW29dO3JldHVybiBhPyhBcnJheS5pc0FycmF5KGEpfHwoYT1bYV0pLGEucmVkdWNlKCgocyxvKT0+e2xldCBuZXdBY3Rpb249KC4uLmkpPT5vKHMsdGhpcy5nZXRTeXN0ZW0oKSkoLi4uaSk7aWYoIWlzRm4obmV3QWN0aW9uKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ3cmFwQWN0aW9ucyBuZWVkcyB0byByZXR1cm4gYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBuZXcgZnVuY3Rpb24gKGllIHRoZSB3cmFwcGVkIGFjdGlvbikiKTtyZXR1cm4gd3JhcFdpdGhUcnlDYXRjaChuZXdBY3Rpb24sdGhpcy5nZXRTeXN0ZW0pfSksc3x8RnVuY3Rpb24ucHJvdG90eXBlKSk6c30pKTpzfSkpfWdldFdyYXBwZWRBbmRCb3VuZFNlbGVjdG9ycyhzLG8pe3JldHVybiBvYmpNYXAodGhpcy5nZXRCb3VuZFNlbGVjdG9ycyhzLG8pLCgobyxpKT0+e2xldCBhPVtpLnNsaWNlKDAsLTkpXSx1PXRoaXMuc3lzdGVtLnN0YXRlUGx1Z2luc1thXS53cmFwU2VsZWN0b3JzO3JldHVybiB1P29iak1hcChvLCgobyxpKT0+e2xldCBfPXVbaV07cmV0dXJuIF8/KEFycmF5LmlzQXJyYXkoXyl8fChfPVtfXSksXy5yZWR1Y2UoKChvLGkpPT57bGV0IHdyYXBwZWRTZWxlY3Rvcj0oLi4udSk9Pmkobyx0aGlzLmdldFN5c3RlbSgpKShzKCkuZ2V0SW4oYSksLi4udSk7aWYoIWlzRm4od3JhcHBlZFNlbGVjdG9yKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ3cmFwU2VsZWN0b3IgbmVlZHMgdG8gcmV0dXJuIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgbmV3IGZ1bmN0aW9uIChpZSB0aGUgd3JhcHBlZCBhY3Rpb24pIik7cmV0dXJuIHdyYXBwZWRTZWxlY3Rvcn0pLG98fEZ1bmN0aW9uLnByb3RvdHlwZSkpOm99KSk6b30pKX1nZXRTdGF0ZXMocyl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuc3lzdGVtLnN0YXRlUGx1Z2lucykucmVkdWNlKCgobyxpKT0+KG9baV09cy5nZXQoaSksbykpLHt9KX1nZXRTdGF0ZVRodW5rcyhzKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy5zeXN0ZW0uc3RhdGVQbHVnaW5zKS5yZWR1Y2UoKChvLGkpPT4ob1tpXT0oKT0+cygpLmdldChpKSxvKSkse30pfWdldEZuKCl7cmV0dXJue2ZuOnRoaXMuc3lzdGVtLmZufX1nZXRDb21wb25lbnRzKHMpe2NvbnN0IG89dGhpcy5zeXN0ZW0uY29tcG9uZW50c1tzXTtyZXR1cm4gQXJyYXkuaXNBcnJheShvKT9vLnJlZHVjZSgoKHMsbyk9Pm8ocyx0aGlzLmdldFN5c3RlbSgpKSkpOnZvaWQgMCE9PXM/dGhpcy5zeXN0ZW0uY29tcG9uZW50c1tzXTp0aGlzLnN5c3RlbS5jb21wb25lbnRzfWdldEJvdW5kU2VsZWN0b3JzKHMsbyl7cmV0dXJuIG9iak1hcCh0aGlzLmdldFNlbGVjdG9ycygpLCgoaSxhKT0+e2xldCB1PVthLnNsaWNlKDAsLTkpXTtyZXR1cm4gb2JqTWFwKGksKGk9PiguLi5hKT0+e2xldCBfPXdyYXBXaXRoVHJ5Q2F0Y2goaSx0aGlzLmdldFN5c3RlbSkuYXBwbHkobnVsbCxbcygpLmdldEluKHUpLC4uLmFdKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgXyYmKF89d3JhcFdpdGhUcnlDYXRjaChfLHRoaXMuZ2V0U3lzdGVtKShvKCkpKSxffSkpfSkpfWdldEJvdW5kQWN0aW9ucyhzKXtzPXN8fHRoaXMuZ2V0U3RvcmUoKS5kaXNwYXRjaDtjb25zdCBvPXRoaXMuZ2V0QWN0aW9ucygpLHByb2Nlc3M9cz0+ImZ1bmN0aW9uIiE9dHlwZW9mIHM/b2JqTWFwKHMsKHM9PnByb2Nlc3MocykpKTooLi4ubyk9Pnt2YXIgaT1udWxsO3RyeXtpPXMoLi4ubyl9Y2F0Y2gocyl7aT17dHlwZTpydCxlcnJvcjohMCxwYXlsb2FkOigwLFFlLnNlcmlhbGl6ZUVycm9yKShzKX19ZmluYWxseXtyZXR1cm4gaX19O3JldHVybiBvYmpNYXAobywobz0+ZnVuY3Rpb24gYmluZEFjdGlvbkNyZWF0b3JzKHMsbyl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHMpcmV0dXJuIGJpbmRBY3Rpb25DcmVhdG9yKHMsbyk7aWYoIm9iamVjdCIhPXR5cGVvZiBzfHxudWxsPT09cyl0aHJvdyBuZXcgRXJyb3IoZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgxNikpO2NvbnN0IGk9e307Zm9yKGNvbnN0IGEgaW4gcyl7Y29uc3QgdT1zW2FdOyJmdW5jdGlvbiI9PXR5cGVvZiB1JiYoaVthXT1iaW5kQWN0aW9uQ3JlYXRvcih1LG8pKX1yZXR1cm4gaX0ocHJvY2VzcyhvKSxzKSkpfWdldE1hcFN0YXRlVG9Qcm9wcygpe3JldHVybigpPT5PYmplY3QuYXNzaWduKHt9LHRoaXMuZ2V0U3lzdGVtKCkpfWdldE1hcERpc3BhdGNoVG9Qcm9wcyhzKXtyZXR1cm4gbz0+WWUoKSh7fSx0aGlzLmdldFdyYXBwZWRBbmRCb3VuZEFjdGlvbnMobyksdGhpcy5nZXRGbigpLHMpfX1mdW5jdGlvbiBjb21iaW5lUGx1Z2lucyhzLG8pe3JldHVybiBpc09iamVjdChzKSYmIWlzQXJyYXkocyk/dHQoKSh7fSxzKTppc0Z1bmMocyk/Y29tYmluZVBsdWdpbnMocyhvKSxvKTppc0FycmF5KHMpP3MubWFwKChzPT5jb21iaW5lUGx1Z2lucyhzLG8pKSkucmVkdWNlKHN5c3RlbUV4dGVuZCx7Y29tcG9uZW50czpvLmdldENvbXBvbmVudHMoKX0pOnt9fWZ1bmN0aW9uIGNhbGxBZnRlckxvYWQocyxvLHtoYXNMb2FkZWQ6aX09e30pe2xldCBhPWk7cmV0dXJuIGlzT2JqZWN0KHMpJiYhaXNBcnJheShzKSYmImZ1bmN0aW9uIj09dHlwZW9mIHMuYWZ0ZXJMb2FkJiYoYT0hMCx3cmFwV2l0aFRyeUNhdGNoKHMuYWZ0ZXJMb2FkLG8uZ2V0U3lzdGVtKS5jYWxsKHRoaXMsbykpLGlzRnVuYyhzKT9jYWxsQWZ0ZXJMb2FkLmNhbGwodGhpcyxzKG8pLG8se2hhc0xvYWRlZDphfSk6aXNBcnJheShzKT9zLm1hcCgocz0+Y2FsbEFmdGVyTG9hZC5jYWxsKHRoaXMscyxvLHtoYXNMb2FkZWQ6YX0pKSk6YX1mdW5jdGlvbiBzeXN0ZW1FeHRlbmQocz17fSxvPXt9KXtpZighaXNPYmplY3QocykpcmV0dXJue307aWYoIWlzT2JqZWN0KG8pKXJldHVybiBzO28ud3JhcENvbXBvbmVudHMmJihvYmpNYXAoby53cmFwQ29tcG9uZW50cywoKGksYSk9Pntjb25zdCB1PXMuY29tcG9uZW50cyYmcy5jb21wb25lbnRzW2FdO3UmJkFycmF5LmlzQXJyYXkodSk/KHMuY29tcG9uZW50c1thXT11LmNvbmNhdChbaV0pLGRlbGV0ZSBvLndyYXBDb21wb25lbnRzW2FdKTp1JiYocy5jb21wb25lbnRzW2FdPVt1LGldLGRlbGV0ZSBvLndyYXBDb21wb25lbnRzW2FdKX0pKSxPYmplY3Qua2V5cyhvLndyYXBDb21wb25lbnRzKS5sZW5ndGh8fGRlbGV0ZSBvLndyYXBDb21wb25lbnRzKTtjb25zdHtzdGF0ZVBsdWdpbnM6aX09cztpZihpc09iamVjdChpKSlmb3IobGV0IHMgaW4gaSl7Y29uc3QgYT1pW3NdO2lmKCFpc09iamVjdChhKSljb250aW51ZTtjb25zdHt3cmFwQWN0aW9uczp1LHdyYXBTZWxlY3RvcnM6X309YTtpZihpc09iamVjdCh1KSlmb3IobGV0IGkgaW4gdSl7bGV0IGE9dVtpXTtBcnJheS5pc0FycmF5KGEpfHwoYT1bYV0sdVtpXT1hKSxvJiZvLnN0YXRlUGx1Z2lucyYmby5zdGF0ZVBsdWdpbnNbc10mJm8uc3RhdGVQbHVnaW5zW3NdLndyYXBBY3Rpb25zJiZvLnN0YXRlUGx1Z2luc1tzXS53cmFwQWN0aW9uc1tpXSYmKG8uc3RhdGVQbHVnaW5zW3NdLndyYXBBY3Rpb25zW2ldPXVbaV0uY29uY2F0KG8uc3RhdGVQbHVnaW5zW3NdLndyYXBBY3Rpb25zW2ldKSl9aWYoaXNPYmplY3QoXykpZm9yKGxldCBpIGluIF8pe2xldCBhPV9baV07QXJyYXkuaXNBcnJheShhKXx8KGE9W2FdLF9baV09YSksbyYmby5zdGF0ZVBsdWdpbnMmJm8uc3RhdGVQbHVnaW5zW3NdJiZvLnN0YXRlUGx1Z2luc1tzXS53cmFwU2VsZWN0b3JzJiZvLnN0YXRlUGx1Z2luc1tzXS53cmFwU2VsZWN0b3JzW2ldJiYoby5zdGF0ZVBsdWdpbnNbc10ud3JhcFNlbGVjdG9yc1tpXT1fW2ldLmNvbmNhdChvLnN0YXRlUGx1Z2luc1tzXS53cmFwU2VsZWN0b3JzW2ldKSl9fXJldHVybiBZZSgpKHMsbyl9ZnVuY3Rpb24gd3JhcFdpdGhUcnlDYXRjaChzLG8se2xvZ0Vycm9yczppPSEwfT17fSl7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHM/czpmdW5jdGlvbiguLi5hKXt0cnl7cmV0dXJuIHMuY2FsbCh0aGlzLC4uLmEpfWNhdGNoKHMpe2lmKGkpe2NvbnN0e3VuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcjppfT1vKCkuZ2V0Q29uZmlncygpOyJmdW5jdGlvbiI9PXR5cGVvZiBpP2kocyk6Y29uc29sZS5lcnJvcihzKX1yZXR1cm4gbnVsbH19fXZhciBUdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDYxMTYwKSxOdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oVHQpO2NvbnN0IE10PSJzaG93X3BvcHVwIixSdD0iYXV0aG9yaXplIixEdD0ibG9nb3V0IixMdD0iYXV0aG9yaXplX29hdXRoMiIsRnQ9ImNvbmZpZ3VyZV9hdXRoIixCdD0icmVzdG9yZV9hdXRob3JpemF0aW9uIjtmdW5jdGlvbiBzaG93RGVmaW5pdGlvbnMocyl7cmV0dXJue3R5cGU6TXQscGF5bG9hZDpzfX1mdW5jdGlvbiBhdXRob3JpemUocyl7cmV0dXJue3R5cGU6UnQscGF5bG9hZDpzfX1jb25zdCBhdXRob3JpemVXaXRoUGVyc2lzdE9wdGlvbj1zPT4oe2F1dGhBY3Rpb25zOm99KT0+e28uYXV0aG9yaXplKHMpLG8ucGVyc2lzdEF1dGhvcml6YXRpb25JZk5lZWRlZCgpfTtmdW5jdGlvbiBsb2dvdXQocyl7cmV0dXJue3R5cGU6RHQscGF5bG9hZDpzfX1jb25zdCBsb2dvdXRXaXRoUGVyc2lzdE9wdGlvbj1zPT4oe2F1dGhBY3Rpb25zOm99KT0+e28ubG9nb3V0KHMpLG8ucGVyc2lzdEF1dGhvcml6YXRpb25JZk5lZWRlZCgpfSxwcmVBdXRob3JpemVJbXBsaWNpdD1zPT4oe2F1dGhBY3Rpb25zOm8sZXJyQWN0aW9uczppfSk9PntsZXR7YXV0aDphLHRva2VuOnUsaXNWYWxpZDpffT1zLHtzY2hlbWE6dyxuYW1lOnh9PWEsQz13LmdldCgiZmxvdyIpO2RlbGV0ZSBsdC5zd2FnZ2VyVUlSZWRpcmVjdE9hdXRoMiwiYWNjZXNzQ29kZSI9PT1DfHxffHxpLm5ld0F1dGhFcnIoe2F1dGhJZDp4LHNvdXJjZToiYXV0aCIsbGV2ZWw6Indhcm5pbmciLG1lc3NhZ2U6IkF1dGhvcml6YXRpb24gbWF5IGJlIHVuc2FmZSwgcGFzc2VkIHN0YXRlIHdhcyBjaGFuZ2VkIGluIHNlcnZlciBQYXNzZWQgc3RhdGUgd2Fzbid0IHJldHVybmVkIGZyb20gYXV0aCBzZXJ2ZXIifSksdS5lcnJvcj9pLm5ld0F1dGhFcnIoe2F1dGhJZDp4LHNvdXJjZToiYXV0aCIsbGV2ZWw6ImVycm9yIixtZXNzYWdlOkpTT04uc3RyaW5naWZ5KHUpfSk6by5hdXRob3JpemVPYXV0aDJXaXRoUGVyc2lzdE9wdGlvbih7YXV0aDphLHRva2VuOnV9KX07ZnVuY3Rpb24gYXV0aG9yaXplT2F1dGgyKHMpe3JldHVybnt0eXBlOkx0LHBheWxvYWQ6c319Y29uc3QgYXV0aG9yaXplT2F1dGgyV2l0aFBlcnNpc3RPcHRpb249cz0+KHthdXRoQWN0aW9uczpvfSk9PntvLmF1dGhvcml6ZU9hdXRoMihzKSxvLnBlcnNpc3RBdXRob3JpemF0aW9uSWZOZWVkZWQoKX0sYXV0aG9yaXplUGFzc3dvcmQ9cz0+KHthdXRoQWN0aW9uczpvfSk9PntsZXR7c2NoZW1hOmksbmFtZTphLHVzZXJuYW1lOnUscGFzc3dvcmQ6XyxwYXNzd29yZFR5cGU6dyxjbGllbnRJZDp4LGNsaWVudFNlY3JldDpDfT1zLGo9e2dyYW50X3R5cGU6InBhc3N3b3JkIixzY29wZTpzLnNjb3Blcy5qb2luKCIgIiksdXNlcm5hbWU6dSxwYXNzd29yZDpffSxMPXt9O3N3aXRjaCh3KXtjYXNlInJlcXVlc3QtYm9keSI6IWZ1bmN0aW9uIHNldENsaWVudElkQW5kU2VjcmV0KHMsbyxpKXtvJiZPYmplY3QuYXNzaWduKHMse2NsaWVudF9pZDpvfSk7aSYmT2JqZWN0LmFzc2lnbihzLHtjbGllbnRfc2VjcmV0Oml9KX0oaix4LEMpO2JyZWFrO2Nhc2UiYmFzaWMiOkwuQXV0aG9yaXphdGlvbj0iQmFzaWMgIit1dGlsc19idG9hKHgrIjoiK0MpO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS53YXJuKGBXYXJuaW5nOiBpbnZhbGlkIHBhc3N3b3JkVHlwZSAke3d9IHdhcyBwYXNzZWQsIG5vdCBpbmNsdWRpbmcgY2xpZW50IGlkIGFuZCBzZWNyZXRgKX1yZXR1cm4gby5hdXRob3JpemVSZXF1ZXN0KHtib2R5OmJ1aWxkRm9ybURhdGEoaiksdXJsOmkuZ2V0KCJ0b2tlblVybCIpLG5hbWU6YSxoZWFkZXJzOkwscXVlcnk6e30sYXV0aDpzfSl9O2NvbnN0IGF1dGhvcml6ZUFwcGxpY2F0aW9uPXM9Pih7YXV0aEFjdGlvbnM6b30pPT57bGV0e3NjaGVtYTppLHNjb3BlczphLG5hbWU6dSxjbGllbnRJZDpfLGNsaWVudFNlY3JldDp3fT1zLHg9e0F1dGhvcml6YXRpb246IkJhc2ljICIrdXRpbHNfYnRvYShfKyI6Iit3KX0sQz17Z3JhbnRfdHlwZToiY2xpZW50X2NyZWRlbnRpYWxzIixzY29wZTphLmpvaW4oIiAiKX07cmV0dXJuIG8uYXV0aG9yaXplUmVxdWVzdCh7Ym9keTpidWlsZEZvcm1EYXRhKEMpLG5hbWU6dSx1cmw6aS5nZXQoInRva2VuVXJsIiksYXV0aDpzLGhlYWRlcnM6eH0pfSxhdXRob3JpemVBY2Nlc3NDb2RlV2l0aEZvcm1QYXJhbXM9KHthdXRoOnMscmVkaXJlY3RVcmw6b30pPT4oe2F1dGhBY3Rpb25zOml9KT0+e2xldHtzY2hlbWE6YSxuYW1lOnUsY2xpZW50SWQ6XyxjbGllbnRTZWNyZXQ6dyxjb2RlVmVyaWZpZXI6eH09cyxDPXtncmFudF90eXBlOiJhdXRob3JpemF0aW9uX2NvZGUiLGNvZGU6cy5jb2RlLGNsaWVudF9pZDpfLGNsaWVudF9zZWNyZXQ6dyxyZWRpcmVjdF91cmk6byxjb2RlX3ZlcmlmaWVyOnh9O3JldHVybiBpLmF1dGhvcml6ZVJlcXVlc3Qoe2JvZHk6YnVpbGRGb3JtRGF0YShDKSxuYW1lOnUsdXJsOmEuZ2V0KCJ0b2tlblVybCIpLGF1dGg6c30pfSxhdXRob3JpemVBY2Nlc3NDb2RlV2l0aEJhc2ljQXV0aGVudGljYXRpb249KHthdXRoOnMscmVkaXJlY3RVcmw6b30pPT4oe2F1dGhBY3Rpb25zOml9KT0+e2xldHtzY2hlbWE6YSxuYW1lOnUsY2xpZW50SWQ6XyxjbGllbnRTZWNyZXQ6dyxjb2RlVmVyaWZpZXI6eH09cyxDPXtBdXRob3JpemF0aW9uOiJCYXNpYyAiK3V0aWxzX2J0b2EoXysiOiIrdyl9LGo9e2dyYW50X3R5cGU6ImF1dGhvcml6YXRpb25fY29kZSIsY29kZTpzLmNvZGUsY2xpZW50X2lkOl8scmVkaXJlY3RfdXJpOm8sY29kZV92ZXJpZmllcjp4fTtyZXR1cm4gaS5hdXRob3JpemVSZXF1ZXN0KHtib2R5OmJ1aWxkRm9ybURhdGEoaiksbmFtZTp1LHVybDphLmdldCgidG9rZW5VcmwiKSxhdXRoOnMsaGVhZGVyczpDfSl9LGF1dGhvcml6ZVJlcXVlc3Q9cz0+KHtmbjpvLGdldENvbmZpZ3M6aSxhdXRoQWN0aW9uczphLGVyckFjdGlvbnM6dSxvYXMzU2VsZWN0b3JzOl8sc3BlY1NlbGVjdG9yczp3LGF1dGhTZWxlY3RvcnM6eH0pPT57bGV0IEMse2JvZHk6aixxdWVyeTpMPXt9LGhlYWRlcnM6Qj17fSxuYW1lOiQsdXJsOlYsYXV0aDpVfT1zLHthZGRpdGlvbmFsUXVlcnlTdHJpbmdQYXJhbXM6en09eC5nZXRDb25maWdzKCl8fHt9O2lmKHcuaXNPQVMzKCkpe2xldCBzPV8uc2VydmVyRWZmZWN0aXZlVmFsdWUoXy5zZWxlY3RlZFNlcnZlcigpKTtDPU50KCkoVixzLCEwKX1lbHNlIEM9TnQoKShWLHcudXJsKCksITApOyJvYmplY3QiPT10eXBlb2YgeiYmKEMucXVlcnk9T2JqZWN0LmFzc2lnbih7fSxDLnF1ZXJ5LHopKTtjb25zdCBZPUMudG9TdHJpbmcoKTtsZXQgWj1PYmplY3QuYXNzaWduKHtBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIsIkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsIlgtUmVxdWVzdGVkLVdpdGgiOiJYTUxIdHRwUmVxdWVzdCJ9LEIpO28uZmV0Y2goe3VybDpZLG1ldGhvZDoicG9zdCIsaGVhZGVyczpaLHF1ZXJ5OkwsYm9keTpqLHJlcXVlc3RJbnRlcmNlcHRvcjppKCkucmVxdWVzdEludGVyY2VwdG9yLHJlc3BvbnNlSW50ZXJjZXB0b3I6aSgpLnJlc3BvbnNlSW50ZXJjZXB0b3J9KS50aGVuKChmdW5jdGlvbihzKXtsZXQgbz1KU09OLnBhcnNlKHMuZGF0YSksaT1vJiYoby5lcnJvcnx8IiIpLF89byYmKG8ucGFyc2VFcnJvcnx8IiIpO3Mub2s/aXx8Xz91Lm5ld0F1dGhFcnIoe2F1dGhJZDokLGxldmVsOiJlcnJvciIsc291cmNlOiJhdXRoIixtZXNzYWdlOkpTT04uc3RyaW5naWZ5KG8pfSk6YS5hdXRob3JpemVPYXV0aDJXaXRoUGVyc2lzdE9wdGlvbih7YXV0aDpVLHRva2VuOm99KTp1Lm5ld0F1dGhFcnIoe2F1dGhJZDokLGxldmVsOiJlcnJvciIsc291cmNlOiJhdXRoIixtZXNzYWdlOnMuc3RhdHVzVGV4dH0pfSkpLmNhdGNoKChzPT57bGV0IG89bmV3IEVycm9yKHMpLm1lc3NhZ2U7aWYocy5yZXNwb25zZSYmcy5yZXNwb25zZS5kYXRhKXtjb25zdCBpPXMucmVzcG9uc2UuZGF0YTt0cnl7Y29uc3Qgcz0ic3RyaW5nIj09dHlwZW9mIGk/SlNPTi5wYXJzZShpKTppO3MuZXJyb3ImJihvKz1gLCBlcnJvcjogJHtzLmVycm9yfWApLHMuZXJyb3JfZGVzY3JpcHRpb24mJihvKz1gLCBkZXNjcmlwdGlvbjogJHtzLmVycm9yX2Rlc2NyaXB0aW9ufWApfWNhdGNoKHMpe319dS5uZXdBdXRoRXJyKHthdXRoSWQ6JCxsZXZlbDoiZXJyb3IiLHNvdXJjZToiYXV0aCIsbWVzc2FnZTpvfSl9KSl9O2Z1bmN0aW9uIGNvbmZpZ3VyZUF1dGgocyl7cmV0dXJue3R5cGU6RnQscGF5bG9hZDpzfX1mdW5jdGlvbiByZXN0b3JlQXV0aG9yaXphdGlvbihzKXtyZXR1cm57dHlwZTpCdCxwYXlsb2FkOnN9fWNvbnN0IHBlcnNpc3RBdXRob3JpemF0aW9uSWZOZWVkZWQ9KCk9Pih7YXV0aFNlbGVjdG9yczpzLGdldENvbmZpZ3M6b30pPT57aWYoIW8oKS5wZXJzaXN0QXV0aG9yaXphdGlvbilyZXR1cm47Y29uc3QgaT1zLmF1dGhvcml6ZWQoKS50b0pTKCk7bG9jYWxTdG9yYWdlLnNldEl0ZW0oImF1dGhvcml6ZWQiLEpTT04uc3RyaW5naWZ5KGkpKX0sYXV0aFBvcHVwPShzLG8pPT4oKT0+e2x0LnN3YWdnZXJVSVJlZGlyZWN0T2F1dGgyPW8sbHQub3BlbihzKX0sJHQ9e1tNdF06KHMse3BheWxvYWQ6b30pPT5zLnNldCgic2hvd0RlZmluaXRpb25zIixvKSxbUnRdOihzLHtwYXlsb2FkOm99KT0+e2xldCBpPSgwLHplLmZyb21KUykobyksYT1zLmdldCgiYXV0aG9yaXplZCIpfHwoMCx6ZS5NYXApKCk7cmV0dXJuIGkuZW50cnlTZXEoKS5mb3JFYWNoKCgoW28saV0pPT57aWYoIWlzRnVuYyhpLmdldEluKSlyZXR1cm4gcy5zZXQoImF1dGhvcml6ZWQiLGEpO2xldCB1PWkuZ2V0SW4oWyJzY2hlbWEiLCJ0eXBlIl0pO2lmKCJhcGlLZXkiPT09dXx8Imh0dHAiPT09dSlhPWEuc2V0KG8saSk7ZWxzZSBpZigiYmFzaWMiPT09dSl7bGV0IHM9aS5nZXRJbihbInZhbHVlIiwidXNlcm5hbWUiXSksdT1pLmdldEluKFsidmFsdWUiLCJwYXNzd29yZCJdKTthPWEuc2V0SW4oW28sInZhbHVlIl0se3VzZXJuYW1lOnMsaGVhZGVyOiJCYXNpYyAiK3V0aWxzX2J0b2EocysiOiIrdSl9KSxhPWEuc2V0SW4oW28sInNjaGVtYSJdLGkuZ2V0KCJzY2hlbWEiKSl9fSkpLHMuc2V0KCJhdXRob3JpemVkIixhKX0sW0x0XToocyx7cGF5bG9hZDpvfSk9PntsZXQgaSx7YXV0aDphLHRva2VuOnV9PW87YS50b2tlbj1PYmplY3QuYXNzaWduKHt9LHUpLGk9KDAsemUuZnJvbUpTKShhKTtsZXQgXz1zLmdldCgiYXV0aG9yaXplZCIpfHwoMCx6ZS5NYXApKCk7cmV0dXJuIF89Xy5zZXQoaS5nZXQoIm5hbWUiKSxpKSxzLnNldCgiYXV0aG9yaXplZCIsXyl9LFtEdF06KHMse3BheWxvYWQ6b30pPT57bGV0IGk9cy5nZXQoImF1dGhvcml6ZWQiKS53aXRoTXV0YXRpb25zKChzPT57by5mb3JFYWNoKChvPT57cy5kZWxldGUobyl9KSl9KSk7cmV0dXJuIHMuc2V0KCJhdXRob3JpemVkIixpKX0sW0Z0XToocyx7cGF5bG9hZDpvfSk9PnMuc2V0KCJjb25maWdzIixvKSxbQnRdOihzLHtwYXlsb2FkOm99KT0+cy5zZXQoImF1dGhvcml6ZWQiLCgwLHplLmZyb21KUykoby5hdXRob3JpemVkKSl9O2Z1bmN0aW9uIGFzc2VydElzRnVuY3Rpb24ocyxvPSJleHBlY3RlZCBhIGZ1bmN0aW9uLCBpbnN0ZWFkIHJlY2VpdmVkICIrdHlwZW9mIHMpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBzKXRocm93IG5ldyBUeXBlRXJyb3Iobyl9dmFyIGVuc3VyZUlzQXJyYXk9cz0+QXJyYXkuaXNBcnJheShzKT9zOltzXTtmdW5jdGlvbiBnZXREZXBlbmRlbmNpZXMocyl7Y29uc3Qgbz1BcnJheS5pc0FycmF5KHNbMF0pP3NbMF06cztyZXR1cm4gZnVuY3Rpb24gYXNzZXJ0SXNBcnJheU9mRnVuY3Rpb25zKHMsbz0iZXhwZWN0ZWQgYWxsIGl0ZW1zIHRvIGJlIGZ1bmN0aW9ucywgaW5zdGVhZCByZWNlaXZlZCB0aGUgZm9sbG93aW5nIHR5cGVzOiAiKXtpZighcy5ldmVyeSgocz0+ImZ1bmN0aW9uIj09dHlwZW9mIHMpKSl7Y29uc3QgaT1zLm1hcCgocz0+ImZ1bmN0aW9uIj09dHlwZW9mIHM/YGZ1bmN0aW9uICR7cy5uYW1lfHwidW5uYW1lZCJ9KClgOnR5cGVvZiBzKSkuam9pbigiLCAiKTt0aHJvdyBuZXcgVHlwZUVycm9yKGAke299WyR7aX1dYCl9fShvLCJjcmVhdGVTZWxlY3RvciBleHBlY3RzIGFsbCBpbnB1dC1zZWxlY3RvcnMgdG8gYmUgZnVuY3Rpb25zLCBidXQgcmVjZWl2ZWQgdGhlIGZvbGxvd2luZyB0eXBlczogIiksb31TeW1ib2woKSxPYmplY3QuZ2V0UHJvdG90eXBlT2Yoe30pO3ZhciBxdD0idW5kZWZpbmVkIiE9dHlwZW9mIFdlYWtSZWY/V2Vha1JlZjpjbGFzc3tjb25zdHJ1Y3RvcihzKXt0aGlzLnZhbHVlPXN9ZGVyZWYoKXtyZXR1cm4gdGhpcy52YWx1ZX19O2Z1bmN0aW9uIHdlYWtNYXBNZW1vaXplKHMsbz17fSl7bGV0IGk9e3M6MCx2OnZvaWQgMCxvOm51bGwscDpudWxsfTtjb25zdHtyZXN1bHRFcXVhbGl0eUNoZWNrOmF9PW87bGV0IHUsXz0wO2Z1bmN0aW9uIG1lbW9pemVkKCl7bGV0IG89aTtjb25zdHtsZW5ndGg6d309YXJndW1lbnRzO2ZvcihsZXQgcz0wLGk9dztzPGk7cysrKXtjb25zdCBpPWFyZ3VtZW50c1tzXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgaXx8Im9iamVjdCI9PXR5cGVvZiBpJiZudWxsIT09aSl7bGV0IHM9by5vO251bGw9PT1zJiYoby5vPXM9bmV3IFdlYWtNYXApO2NvbnN0IGE9cy5nZXQoaSk7dm9pZCAwPT09YT8obz17czowLHY6dm9pZCAwLG86bnVsbCxwOm51bGx9LHMuc2V0KGksbykpOm89YX1lbHNle2xldCBzPW8ucDtudWxsPT09cyYmKG8ucD1zPW5ldyBNYXApO2NvbnN0IGE9cy5nZXQoaSk7dm9pZCAwPT09YT8obz17czowLHY6dm9pZCAwLG86bnVsbCxwOm51bGx9LHMuc2V0KGksbykpOm89YX19Y29uc3QgeD1vO2xldCBDO2lmKDE9PT1vLnMpQz1vLnY7ZWxzZSBpZihDPXMuYXBwbHkobnVsbCxhcmd1bWVudHMpLF8rKyxhKXtjb25zdCBzPXU/LmRlcmVmPy4oKT8/dTtudWxsIT1zJiZhKHMsQykmJihDPXMsMCE9PV8mJl8tLSk7dT0ib2JqZWN0Ij09dHlwZW9mIEMmJm51bGwhPT1DfHwiZnVuY3Rpb24iPT10eXBlb2YgQz9uZXcgcXQoQyk6Q31yZXR1cm4geC5zPTEseC52PUMsQ31yZXR1cm4gbWVtb2l6ZWQuY2xlYXJDYWNoZT0oKT0+e2k9e3M6MCx2OnZvaWQgMCxvOm51bGwscDpudWxsfSxtZW1vaXplZC5yZXNldFJlc3VsdHNDb3VudCgpfSxtZW1vaXplZC5yZXN1bHRzQ291bnQ9KCk9Pl8sbWVtb2l6ZWQucmVzZXRSZXN1bHRzQ291bnQ9KCk9PntfPTB9LG1lbW9pemVkfWZ1bmN0aW9uIGNyZWF0ZVNlbGVjdG9yQ3JlYXRvcihzLC4uLm8pe2NvbnN0IGk9ImZ1bmN0aW9uIj09dHlwZW9mIHM/e21lbW9pemU6cyxtZW1vaXplT3B0aW9uczpvfTpzLGNyZWF0ZVNlbGVjdG9yMj0oLi4ucyk9PntsZXQgbyxhPTAsdT0wLF89e30sdz1zLnBvcCgpOyJvYmplY3QiPT10eXBlb2YgdyYmKF89dyx3PXMucG9wKCkpLGFzc2VydElzRnVuY3Rpb24odyxgY3JlYXRlU2VsZWN0b3IgZXhwZWN0cyBhbiBvdXRwdXQgZnVuY3Rpb24gYWZ0ZXIgdGhlIGlucHV0cywgYnV0IHJlY2VpdmVkOiBbJHt0eXBlb2Ygd31dYCk7Y29uc3QgeD17Li4uaSwuLi5ffSx7bWVtb2l6ZTpDLG1lbW9pemVPcHRpb25zOmo9W10sYXJnc01lbW9pemU6TD13ZWFrTWFwTWVtb2l6ZSxhcmdzTWVtb2l6ZU9wdGlvbnM6Qj1bXSxkZXZNb2RlQ2hlY2tzOiQ9e319PXgsVj1lbnN1cmVJc0FycmF5KGopLFU9ZW5zdXJlSXNBcnJheShCKSx6PWdldERlcGVuZGVuY2llcyhzKSxZPUMoKGZ1bmN0aW9uIHJlY29tcHV0YXRpb25XcmFwcGVyKCl7cmV0dXJuIGErKyx3LmFwcGx5KG51bGwsYXJndW1lbnRzKX0pLC4uLlYpO2NvbnN0IFo9TCgoZnVuY3Rpb24gZGVwZW5kZW5jaWVzQ2hlY2tlcigpe3UrKztjb25zdCBzPWZ1bmN0aW9uIGNvbGxlY3RJbnB1dFNlbGVjdG9yUmVzdWx0cyhzLG8pe2NvbnN0IGk9W10se2xlbmd0aDphfT1zO2ZvcihsZXQgdT0wO3U8YTt1KyspaS5wdXNoKHNbdV0uYXBwbHkobnVsbCxvKSk7cmV0dXJuIGl9KHosYXJndW1lbnRzKTtyZXR1cm4gbz1ZLmFwcGx5KG51bGwscyksb30pLC4uLlUpO3JldHVybiBPYmplY3QuYXNzaWduKFose3Jlc3VsdEZ1bmM6dyxtZW1vaXplZFJlc3VsdEZ1bmM6WSxkZXBlbmRlbmNpZXM6eixkZXBlbmRlbmN5UmVjb21wdXRhdGlvbnM6KCk9PnUscmVzZXREZXBlbmRlbmN5UmVjb21wdXRhdGlvbnM6KCk9Pnt1PTB9LGxhc3RSZXN1bHQ6KCk9Pm8scmVjb21wdXRhdGlvbnM6KCk9PmEscmVzZXRSZWNvbXB1dGF0aW9uczooKT0+e2E9MH0sbWVtb2l6ZTpDLGFyZ3NNZW1vaXplOkx9KX07cmV0dXJuIE9iamVjdC5hc3NpZ24oY3JlYXRlU2VsZWN0b3IyLHt3aXRoVHlwZXM6KCk9PmNyZWF0ZVNlbGVjdG9yMn0pLGNyZWF0ZVNlbGVjdG9yMn12YXIgVnQ9Y3JlYXRlU2VsZWN0b3JDcmVhdG9yKHdlYWtNYXBNZW1vaXplKSxVdD1PYmplY3QuYXNzaWduKCgocyxvPVZ0KT0+eyFmdW5jdGlvbiBhc3NlcnRJc09iamVjdChzLG89ImV4cGVjdGVkIGFuIG9iamVjdCwgaW5zdGVhZCByZWNlaXZlZCAiK3R5cGVvZiBzKXtpZigib2JqZWN0IiE9dHlwZW9mIHMpdGhyb3cgbmV3IFR5cGVFcnJvcihvKX0ocywiY3JlYXRlU3RydWN0dXJlZFNlbGVjdG9yIGV4cGVjdHMgZmlyc3QgYXJndW1lbnQgdG8gYmUgYW4gb2JqZWN0IHdoZXJlIGVhY2ggcHJvcGVydHkgaXMgYSBzZWxlY3RvciwgaW5zdGVhZCByZWNlaXZlZCBhICIrdHlwZW9mIHMpO2NvbnN0IGk9T2JqZWN0LmtleXMocyk7cmV0dXJuIG8oaS5tYXAoKG89PnNbb10pKSwoKC4uLnMpPT5zLnJlZHVjZSgoKHMsbyxhKT0+KHNbaVthXV09byxzKSkse30pKSl9KSx7d2l0aFR5cGVzOigpPT5VdH0pO2NvbnN0IHN0YXRlPXM9PnMsenQ9VnQoc3RhdGUsKHM9PnMuZ2V0KCJzaG93RGVmaW5pdGlvbnMiKSkpLFd0PVZ0KHN0YXRlLCgoKT0+KHtzcGVjU2VsZWN0b3JzOnN9KT0+e2xldCBvPXMuc2VjdXJpdHlEZWZpbml0aW9ucygpfHwoMCx6ZS5NYXApKHt9KSxpPSgwLHplLkxpc3QpKCk7cmV0dXJuIG8uZW50cnlTZXEoKS5mb3JFYWNoKCgoW3Msb10pPT57bGV0IGE9KDAsemUuTWFwKSgpO2E9YS5zZXQocyxvKSxpPWkucHVzaChhKX0pKSxpfSkpLHNlbGVjdEF1dGhQYXRoPShzLG8pPT4oe3NwZWNTZWxlY3RvcnM6c30pPT4oMCx6ZS5MaXN0KShzLmlzT0FTMygpP1siY29tcG9uZW50cyIsInNlY3VyaXR5U2NoZW1lcyIsb106WyJzZWN1cml0eURlZmluaXRpb25zIixvXSksZ2V0RGVmaW5pdGlvbnNCeU5hbWVzPShzLG8pPT4oe3NwZWNTZWxlY3RvcnM6c30pPT57Y29uc29sZS53YXJuKCJXQVJOSU5HOiBnZXREZWZpbml0aW9uc0J5TmFtZXMgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24uIik7bGV0IGk9cy5zZWN1cml0eURlZmluaXRpb25zKCksYT0oMCx6ZS5MaXN0KSgpO3JldHVybiBvLnZhbHVlU2VxKCkuZm9yRWFjaCgocz0+e2xldCBvPSgwLHplLk1hcCkoKTtzLmVudHJ5U2VxKCkuZm9yRWFjaCgoKFtzLGFdKT0+e2xldCB1LF89aS5nZXQocyk7Im9hdXRoMiI9PT1fLmdldCgidHlwZSIpJiZhLnNpemUmJih1PV8uZ2V0KCJzY29wZXMiKSx1LmtleVNlcSgpLmZvckVhY2goKHM9PnthLmNvbnRhaW5zKHMpfHwodT11LmRlbGV0ZShzKSl9KSksXz1fLnNldCgiYWxsb3dlZFNjb3BlcyIsdSkpLG89by5zZXQocyxfKX0pKSxhPWEucHVzaChvKX0pKSxhfSxkZWZpbml0aW9uc0ZvclJlcXVpcmVtZW50cz0ocyxvPSgwLHplLkxpc3QpKCkpPT4oe2F1dGhTZWxlY3RvcnM6c30pPT57Y29uc3QgaT1zLmRlZmluaXRpb25zVG9BdXRob3JpemUoKXx8KDAsemUuTGlzdCkoKTtsZXQgYT0oMCx6ZS5MaXN0KSgpO3JldHVybiBpLmZvckVhY2goKHM9PntsZXQgaT1vLmZpbmQoKG89Pm8uZ2V0KHMua2V5U2VxKCkuZmlyc3QoKSkpKTtpJiYocy5mb3JFYWNoKCgobyxhKT0+e2lmKCJvYXV0aDIiPT09by5nZXQoInR5cGUiKSl7Y29uc3QgdT1pLmdldChhKTtsZXQgXz1vLmdldCgic2NvcGVzIik7emUuTGlzdC5pc0xpc3QodSkmJnplLk1hcC5pc01hcChfKSYmKF8ua2V5U2VxKCkuZm9yRWFjaCgocz0+e3UuY29udGFpbnMocyl8fChfPV8uZGVsZXRlKHMpKX0pKSxzPXMuc2V0KGEsby5zZXQoInNjb3BlcyIsXykpKX19KSksYT1hLnB1c2gocykpfSkpLGF9LEp0PVZ0KHN0YXRlLChzPT5zLmdldCgiYXV0aG9yaXplZCIpfHwoMCx6ZS5NYXApKCkpKSxpc0F1dGhvcml6ZWQ9KHMsbyk9Pih7YXV0aFNlbGVjdG9yczpzfSk9PntsZXQgaT1zLmF1dGhvcml6ZWQoKTtyZXR1cm4gemUuTGlzdC5pc0xpc3Qobyk/ISFvLnRvSlMoKS5maWx0ZXIoKHM9Pi0xPT09T2JqZWN0LmtleXMocykubWFwKChzPT4hIWkuZ2V0KHMpKSkuaW5kZXhPZighMSkpKS5sZW5ndGg6bnVsbH0sSHQ9VnQoc3RhdGUsKHM9PnMuZ2V0KCJjb25maWdzIikpKSxleGVjdXRlPShzLHthdXRoU2VsZWN0b3JzOm8sc3BlY1NlbGVjdG9yczppfSk9Pih7cGF0aDphLG1ldGhvZDp1LG9wZXJhdGlvbjpfLGV4dHJhczp3fSk9PntsZXQgeD17YXV0aG9yaXplZDpvLmF1dGhvcml6ZWQoKSYmby5hdXRob3JpemVkKCkudG9KUygpLGRlZmluaXRpb25zOmkuc2VjdXJpdHlEZWZpbml0aW9ucygpJiZpLnNlY3VyaXR5RGVmaW5pdGlvbnMoKS50b0pTKCksc3BlY1NlY3VyaXR5Omkuc2VjdXJpdHkoKSYmaS5zZWN1cml0eSgpLnRvSlMoKX07cmV0dXJuIHMoe3BhdGg6YSxtZXRob2Q6dSxvcGVyYXRpb246XyxzZWN1cml0aWVzOngsLi4ud30pfSxsb2FkZWQ9KHMsbyk9Pmk9Pntjb25zdHtnZXRDb25maWdzOmEsYXV0aEFjdGlvbnM6dX09byxfPWEoKTtpZihzKGkpLF8ucGVyc2lzdEF1dGhvcml6YXRpb24pe2NvbnN0IHM9bG9jYWxTdG9yYWdlLmdldEl0ZW0oImF1dGhvcml6ZWQiKTtzJiZ1LnJlc3RvcmVBdXRob3JpemF0aW9uKHthdXRob3JpemVkOkpTT04ucGFyc2Uocyl9KX19LHdyYXBfYWN0aW9uc19hdXRob3JpemU9KHMsbyk9Pmk9PntzKGkpO2lmKG8uZ2V0Q29uZmlncygpLnBlcnNpc3RBdXRob3JpemF0aW9uKXRyeXtjb25zdFt7c2NoZW1hOnMsdmFsdWU6b31dPU9iamVjdC52YWx1ZXMoaSksYT0iYXBpS2V5Ij09PXMuZ2V0KCJ0eXBlIiksdT0iY29va2llIj09PXMuZ2V0KCJpbiIpO2EmJnUmJihkb2N1bWVudC5jb29raWU9YCR7cy5nZXQoIm5hbWUiKX09JHtvfTsgU2FtZVNpdGU9Tm9uZTsgU2VjdXJlYCl9Y2F0Y2gocyl7Y29uc29sZS5lcnJvcigiRXJyb3IgcGVyc2lzdGluZyBjb29raWUgYmFzZWQgYXBpS2V5IGluIGRvY3VtZW50LmNvb2tpZS4iLHMpfX0sd3JhcF9hY3Rpb25zX2xvZ291dD0ocyxvKT0+aT0+e2NvbnN0IGE9by5nZXRDb25maWdzKCksdT1vLmF1dGhTZWxlY3RvcnMuYXV0aG9yaXplZCgpO3RyeXthLnBlcnNpc3RBdXRob3JpemF0aW9uJiZBcnJheS5pc0FycmF5KGkpJiZpLmZvckVhY2goKHM9Pntjb25zdCBvPXUuZ2V0KHMse30pLGk9ImFwaUtleSI9PT1vLmdldEluKFsic2NoZW1hIiwidHlwZSJdKSxhPSJjb29raWUiPT09by5nZXRJbihbInNjaGVtYSIsImluIl0pO2lmKGkmJmEpe2NvbnN0IHM9by5nZXRJbihbInNjaGVtYSIsIm5hbWUiXSk7ZG9jdW1lbnQuY29va2llPWAke3N9PTsgTWF4LUFnZT0tOTk5OTk5OTlgfX0pKX1jYXRjaChzKXtjb25zb2xlLmVycm9yKCJFcnJvciBkZWxldGluZyBjb29raWUgYmFzZWQgYXBpS2V5IGZyb20gZG9jdW1lbnQuY29va2llLiIscyl9cyhpKX07dmFyIEt0PV9fd2VicGFja19yZXF1aXJlX18oOTAxNzkpLEd0PV9fd2VicGFja19yZXF1aXJlX18ubihLdCk7Y2xhc3MgTG9ja0F1dGhJY29uIGV4dGVuZHMgUmUuQ29tcG9uZW50e21hcFN0YXRlVG9Qcm9wcyhzLG8pe3JldHVybntzdGF0ZTpzLG93blByb3BzOkd0KCkobyxPYmplY3Qua2V5cyhvLmdldFN5c3RlbSgpKSl9fXJlbmRlcigpe2NvbnN0e2dldENvbXBvbmVudDpzLG93blByb3BzOm99PXRoaXMucHJvcHMsaT1zKCJMb2NrSWNvbiIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KGksbyl9fWNvbnN0IFl0PUxvY2tBdXRoSWNvbjtjbGFzcyBVbmxvY2tBdXRoSWNvbiBleHRlbmRzIFJlLkNvbXBvbmVudHttYXBTdGF0ZVRvUHJvcHMocyxvKXtyZXR1cm57c3RhdGU6cyxvd25Qcm9wczpHdCgpKG8sT2JqZWN0LmtleXMoby5nZXRTeXN0ZW0oKSkpfX1yZW5kZXIoKXtjb25zdHtnZXRDb21wb25lbnQ6cyxvd25Qcm9wczpvfT10aGlzLnByb3BzLGk9cygiVW5sb2NrSWNvbiIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KGksbyl9fWNvbnN0IFh0PVVubG9ja0F1dGhJY29uO2Z1bmN0aW9uIGF1dGgoKXtyZXR1cm57YWZ0ZXJMb2FkKHMpe3RoaXMucm9vdEluamVjdHM9dGhpcy5yb290SW5qZWN0c3x8e30sdGhpcy5yb290SW5qZWN0cy5pbml0T0F1dGg9cy5hdXRoQWN0aW9ucy5jb25maWd1cmVBdXRoLHRoaXMucm9vdEluamVjdHMucHJlYXV0aG9yaXplQXBpS2V5PXByZWF1dGhvcml6ZUFwaUtleS5iaW5kKG51bGwscyksdGhpcy5yb290SW5qZWN0cy5wcmVhdXRob3JpemVCYXNpYz1wcmVhdXRob3JpemVCYXNpYy5iaW5kKG51bGwscyl9LGNvbXBvbmVudHM6e0xvY2tBdXRoSWNvbjpZdCxVbmxvY2tBdXRoSWNvbjpYdCxMb2NrQXV0aE9wZXJhdGlvbkljb246WXQsVW5sb2NrQXV0aE9wZXJhdGlvbkljb246WHR9LHN0YXRlUGx1Z2luczp7YXV0aDp7cmVkdWNlcnM6JHQsYWN0aW9uczpvLHNlbGVjdG9yczphLHdyYXBBY3Rpb25zOnthdXRob3JpemU6d3JhcF9hY3Rpb25zX2F1dGhvcml6ZSxsb2dvdXQ6d3JhcF9hY3Rpb25zX2xvZ291dH19LGNvbmZpZ3M6e3dyYXBBY3Rpb25zOntsb2FkZWR9fSxzcGVjOnt3cmFwQWN0aW9uczp7ZXhlY3V0ZX19fX19ZnVuY3Rpb24gcHJlYXV0aG9yaXplQmFzaWMocyxvLGksYSl7Y29uc3R7YXV0aEFjdGlvbnM6e2F1dGhvcml6ZTp1fSxzcGVjU2VsZWN0b3JzOntzcGVjSnNvbjpfLGlzT0FTMzp3fX09cyx4PXcoKT9bImNvbXBvbmVudHMiLCJzZWN1cml0eVNjaGVtZXMiXTpbInNlY3VyaXR5RGVmaW5pdGlvbnMiXSxDPV8oKS5nZXRJbihbLi4ueCxvXSk7cmV0dXJuIEM/dSh7W29dOnt2YWx1ZTp7dXNlcm5hbWU6aSxwYXNzd29yZDphfSxzY2hlbWE6Qy50b0pTKCl9fSk6bnVsbH1mdW5jdGlvbiBwcmVhdXRob3JpemVBcGlLZXkocyxvLGkpe2NvbnN0e2F1dGhBY3Rpb25zOnthdXRob3JpemU6YX0sc3BlY1NlbGVjdG9yczp7c3BlY0pzb246dSxpc09BUzM6X319PXMsdz1fKCk/WyJjb21wb25lbnRzIiwic2VjdXJpdHlTY2hlbWVzIl06WyJzZWN1cml0eURlZmluaXRpb25zIl0seD11KCkuZ2V0SW4oWy4uLncsb10pO3JldHVybiB4P2Eoe1tvXTp7dmFsdWU6aSxzY2hlbWE6eC50b0pTKCl9fSk6bnVsbH1mdW5jdGlvbiBpc05vdGhpbmcocyl7cmV0dXJuIG51bGw9PXN9dmFyIFF0PWZ1bmN0aW9uIHJlcGVhdChzLG8pe3ZhciBpLGE9IiI7Zm9yKGk9MDtpPG87aSs9MSlhKz1zO3JldHVybiBhfSxadD1mdW5jdGlvbiBpc05lZ2F0aXZlWmVybyhzKXtyZXR1cm4gMD09PXMmJk51bWJlci5ORUdBVElWRV9JTkZJTklUWT09PTEvc30sZXI9e2lzTm90aGluZyxpc09iamVjdDpmdW5jdGlvbiBqc195YW1sX2lzT2JqZWN0KHMpe3JldHVybiJvYmplY3QiPT10eXBlb2YgcyYmbnVsbCE9PXN9LHRvQXJyYXk6ZnVuY3Rpb24gdG9BcnJheShzKXtyZXR1cm4gQXJyYXkuaXNBcnJheShzKT9zOmlzTm90aGluZyhzKT9bXTpbc119LHJlcGVhdDpRdCxpc05lZ2F0aXZlWmVybzpadCxleHRlbmQ6ZnVuY3Rpb24gZXh0ZW5kKHMsbyl7dmFyIGksYSx1LF87aWYobylmb3IoaT0wLGE9KF89T2JqZWN0LmtleXMobykpLmxlbmd0aDtpPGE7aSs9MSlzW3U9X1tpXV09b1t1XTtyZXR1cm4gc319O2Z1bmN0aW9uIGZvcm1hdEVycm9yKHMsbyl7dmFyIGk9IiIsYT1zLnJlYXNvbnx8Iih1bmtub3duIHJlYXNvbikiO3JldHVybiBzLm1hcms/KHMubWFyay5uYW1lJiYoaSs9J2luICInK3MubWFyay5uYW1lKyciICcpLGkrPSIoIisocy5tYXJrLmxpbmUrMSkrIjoiKyhzLm1hcmsuY29sdW1uKzEpKyIpIiwhbyYmcy5tYXJrLnNuaXBwZXQmJihpKz0iXG5cbiIrcy5tYXJrLnNuaXBwZXQpLGErIiAiK2kpOmF9ZnVuY3Rpb24gWUFNTEV4Y2VwdGlvbiQxKHMsbyl7RXJyb3IuY2FsbCh0aGlzKSx0aGlzLm5hbWU9IllBTUxFeGNlcHRpb24iLHRoaXMucmVhc29uPXMsdGhpcy5tYXJrPW8sdGhpcy5tZXNzYWdlPWZvcm1hdEVycm9yKHRoaXMsITEpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz0obmV3IEVycm9yKS5zdGFja3x8IiJ9WUFNTEV4Y2VwdGlvbiQxLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSksWUFNTEV4Y2VwdGlvbiQxLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1ZQU1MRXhjZXB0aW9uJDEsWUFNTEV4Y2VwdGlvbiQxLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbiB0b1N0cmluZyhzKXtyZXR1cm4gdGhpcy5uYW1lKyI6ICIrZm9ybWF0RXJyb3IodGhpcyxzKX07dmFyIHRyPVlBTUxFeGNlcHRpb24kMTtmdW5jdGlvbiBnZXRMaW5lKHMsbyxpLGEsdSl7dmFyIF89IiIsdz0iIix4PU1hdGguZmxvb3IodS8yKS0xO3JldHVybiBhLW8+eCYmKG89YS14KyhfPSIgLi4uICIpLmxlbmd0aCksaS1hPngmJihpPWEreC0odz0iIC4uLiIpLmxlbmd0aCkse3N0cjpfK3Muc2xpY2UobyxpKS5yZXBsYWNlKC9cdC9nLCLihpIiKSt3LHBvczphLW8rXy5sZW5ndGh9fWZ1bmN0aW9uIHBhZFN0YXJ0KHMsbyl7cmV0dXJuIGVyLnJlcGVhdCgiICIsby1zLmxlbmd0aCkrc312YXIgcnI9ZnVuY3Rpb24gbWFrZVNuaXBwZXQocyxvKXtpZihvPU9iamVjdC5jcmVhdGUob3x8bnVsbCksIXMuYnVmZmVyKXJldHVybiBudWxsO28ubWF4TGVuZ3RofHwoby5tYXhMZW5ndGg9NzkpLCJudW1iZXIiIT10eXBlb2Ygby5pbmRlbnQmJihvLmluZGVudD0xKSwibnVtYmVyIiE9dHlwZW9mIG8ubGluZXNCZWZvcmUmJihvLmxpbmVzQmVmb3JlPTMpLCJudW1iZXIiIT10eXBlb2Ygby5saW5lc0FmdGVyJiYoby5saW5lc0FmdGVyPTIpO2Zvcih2YXIgaSxhPS9ccj9cbnxccnxcMC9nLHU9WzBdLF89W10sdz0tMTtpPWEuZXhlYyhzLmJ1ZmZlcik7KV8ucHVzaChpLmluZGV4KSx1LnB1c2goaS5pbmRleCtpWzBdLmxlbmd0aCkscy5wb3NpdGlvbjw9aS5pbmRleCYmdzwwJiYodz11Lmxlbmd0aC0yKTt3PDAmJih3PXUubGVuZ3RoLTEpO3ZhciB4LEMsaj0iIixMPU1hdGgubWluKHMubGluZStvLmxpbmVzQWZ0ZXIsXy5sZW5ndGgpLnRvU3RyaW5nKCkubGVuZ3RoLEI9by5tYXhMZW5ndGgtKG8uaW5kZW50K0wrMyk7Zm9yKHg9MTt4PD1vLmxpbmVzQmVmb3JlJiYhKHcteDwwKTt4KyspQz1nZXRMaW5lKHMuYnVmZmVyLHVbdy14XSxfW3cteF0scy5wb3NpdGlvbi0odVt3XS11W3cteF0pLEIpLGo9ZXIucmVwZWF0KCIgIixvLmluZGVudCkrcGFkU3RhcnQoKHMubGluZS14KzEpLnRvU3RyaW5nKCksTCkrIiB8ICIrQy5zdHIrIlxuIitqO2ZvcihDPWdldExpbmUocy5idWZmZXIsdVt3XSxfW3ddLHMucG9zaXRpb24sQiksais9ZXIucmVwZWF0KCIgIixvLmluZGVudCkrcGFkU3RhcnQoKHMubGluZSsxKS50b1N0cmluZygpLEwpKyIgfCAiK0Muc3RyKyJcbiIsais9ZXIucmVwZWF0KCItIixvLmluZGVudCtMKzMrQy5wb3MpKyJeXG4iLHg9MTt4PD1vLmxpbmVzQWZ0ZXImJiEodyt4Pj1fLmxlbmd0aCk7eCsrKUM9Z2V0TGluZShzLmJ1ZmZlcix1W3creF0sX1t3K3hdLHMucG9zaXRpb24tKHVbd10tdVt3K3hdKSxCKSxqKz1lci5yZXBlYXQoIiAiLG8uaW5kZW50KStwYWRTdGFydCgocy5saW5lK3grMSkudG9TdHJpbmcoKSxMKSsiIHwgIitDLnN0cisiXG4iO3JldHVybiBqLnJlcGxhY2UoL1xuJC8sIiIpfSxucj1bImtpbmQiLCJtdWx0aSIsInJlc29sdmUiLCJjb25zdHJ1Y3QiLCJpbnN0YW5jZU9mIiwicHJlZGljYXRlIiwicmVwcmVzZW50IiwicmVwcmVzZW50TmFtZSIsImRlZmF1bHRTdHlsZSIsInN0eWxlQWxpYXNlcyJdLHNyPVsic2NhbGFyIiwic2VxdWVuY2UiLCJtYXBwaW5nIl07dmFyIGlyPWZ1bmN0aW9uIFR5cGUkMShzLG8pe2lmKG89b3x8e30sT2JqZWN0LmtleXMobykuZm9yRWFjaCgoZnVuY3Rpb24obyl7aWYoLTE9PT1uci5pbmRleE9mKG8pKXRocm93IG5ldyB0cignVW5rbm93biBvcHRpb24gIicrbysnIiBpcyBtZXQgaW4gZGVmaW5pdGlvbiBvZiAiJytzKyciIFlBTUwgdHlwZS4nKX0pKSx0aGlzLm9wdGlvbnM9byx0aGlzLnRhZz1zLHRoaXMua2luZD1vLmtpbmR8fG51bGwsdGhpcy5yZXNvbHZlPW8ucmVzb2x2ZXx8ZnVuY3Rpb24oKXtyZXR1cm4hMH0sdGhpcy5jb25zdHJ1Y3Q9by5jb25zdHJ1Y3R8fGZ1bmN0aW9uKHMpe3JldHVybiBzfSx0aGlzLmluc3RhbmNlT2Y9by5pbnN0YW5jZU9mfHxudWxsLHRoaXMucHJlZGljYXRlPW8ucHJlZGljYXRlfHxudWxsLHRoaXMucmVwcmVzZW50PW8ucmVwcmVzZW50fHxudWxsLHRoaXMucmVwcmVzZW50TmFtZT1vLnJlcHJlc2VudE5hbWV8fG51bGwsdGhpcy5kZWZhdWx0U3R5bGU9by5kZWZhdWx0U3R5bGV8fG51bGwsdGhpcy5tdWx0aT1vLm11bHRpfHwhMSx0aGlzLnN0eWxlQWxpYXNlcz1mdW5jdGlvbiBjb21waWxlU3R5bGVBbGlhc2VzKHMpe3ZhciBvPXt9O3JldHVybiBudWxsIT09cyYmT2JqZWN0LmtleXMocykuZm9yRWFjaCgoZnVuY3Rpb24oaSl7c1tpXS5mb3JFYWNoKChmdW5jdGlvbihzKXtvW1N0cmluZyhzKV09aX0pKX0pKSxvfShvLnN0eWxlQWxpYXNlc3x8bnVsbCksLTE9PT1zci5pbmRleE9mKHRoaXMua2luZCkpdGhyb3cgbmV3IHRyKCdVbmtub3duIGtpbmQgIicrdGhpcy5raW5kKyciIGlzIHNwZWNpZmllZCBmb3IgIicrcysnIiBZQU1MIHR5cGUuJyl9O2Z1bmN0aW9uIGNvbXBpbGVMaXN0KHMsbyl7dmFyIGk9W107cmV0dXJuIHNbb10uZm9yRWFjaCgoZnVuY3Rpb24ocyl7dmFyIG89aS5sZW5ndGg7aS5mb3JFYWNoKChmdW5jdGlvbihpLGEpe2kudGFnPT09cy50YWcmJmkua2luZD09PXMua2luZCYmaS5tdWx0aT09PXMubXVsdGkmJihvPWEpfSkpLGlbb109c30pKSxpfWZ1bmN0aW9uIFNjaGVtYSQxKHMpe3JldHVybiB0aGlzLmV4dGVuZChzKX1TY2hlbWEkMS5wcm90b3R5cGUuZXh0ZW5kPWZ1bmN0aW9uIGV4dGVuZChzKXt2YXIgbz1bXSxpPVtdO2lmKHMgaW5zdGFuY2VvZiBpcilpLnB1c2gocyk7ZWxzZSBpZihBcnJheS5pc0FycmF5KHMpKWk9aS5jb25jYXQocyk7ZWxzZXtpZighc3x8IUFycmF5LmlzQXJyYXkocy5pbXBsaWNpdCkmJiFBcnJheS5pc0FycmF5KHMuZXhwbGljaXQpKXRocm93IG5ldyB0cigiU2NoZW1hLmV4dGVuZCBhcmd1bWVudCBzaG91bGQgYmUgYSBUeXBlLCBbIFR5cGUgXSwgb3IgYSBzY2hlbWEgZGVmaW5pdGlvbiAoeyBpbXBsaWNpdDogWy4uLl0sIGV4cGxpY2l0OiBbLi4uXSB9KSIpO3MuaW1wbGljaXQmJihvPW8uY29uY2F0KHMuaW1wbGljaXQpKSxzLmV4cGxpY2l0JiYoaT1pLmNvbmNhdChzLmV4cGxpY2l0KSl9by5mb3JFYWNoKChmdW5jdGlvbihzKXtpZighKHMgaW5zdGFuY2VvZiBpcikpdGhyb3cgbmV3IHRyKCJTcGVjaWZpZWQgbGlzdCBvZiBZQU1MIHR5cGVzIChvciBhIHNpbmdsZSBUeXBlIG9iamVjdCkgY29udGFpbnMgYSBub24tVHlwZSBvYmplY3QuIik7aWYocy5sb2FkS2luZCYmInNjYWxhciIhPT1zLmxvYWRLaW5kKXRocm93IG5ldyB0cigiVGhlcmUgaXMgYSBub24tc2NhbGFyIHR5cGUgaW4gdGhlIGltcGxpY2l0IGxpc3Qgb2YgYSBzY2hlbWEuIEltcGxpY2l0IHJlc29sdmluZyBvZiBzdWNoIHR5cGVzIGlzIG5vdCBzdXBwb3J0ZWQuIik7aWYocy5tdWx0aSl0aHJvdyBuZXcgdHIoIlRoZXJlIGlzIGEgbXVsdGkgdHlwZSBpbiB0aGUgaW1wbGljaXQgbGlzdCBvZiBhIHNjaGVtYS4gTXVsdGkgdGFncyBjYW4gb25seSBiZSBsaXN0ZWQgYXMgZXhwbGljaXQuIil9KSksaS5mb3JFYWNoKChmdW5jdGlvbihzKXtpZighKHMgaW5zdGFuY2VvZiBpcikpdGhyb3cgbmV3IHRyKCJTcGVjaWZpZWQgbGlzdCBvZiBZQU1MIHR5cGVzIChvciBhIHNpbmdsZSBUeXBlIG9iamVjdCkgY29udGFpbnMgYSBub24tVHlwZSBvYmplY3QuIil9KSk7dmFyIGE9T2JqZWN0LmNyZWF0ZShTY2hlbWEkMS5wcm90b3R5cGUpO3JldHVybiBhLmltcGxpY2l0PSh0aGlzLmltcGxpY2l0fHxbXSkuY29uY2F0KG8pLGEuZXhwbGljaXQ9KHRoaXMuZXhwbGljaXR8fFtdKS5jb25jYXQoaSksYS5jb21waWxlZEltcGxpY2l0PWNvbXBpbGVMaXN0KGEsImltcGxpY2l0IiksYS5jb21waWxlZEV4cGxpY2l0PWNvbXBpbGVMaXN0KGEsImV4cGxpY2l0IiksYS5jb21waWxlZFR5cGVNYXA9ZnVuY3Rpb24gY29tcGlsZU1hcCgpe3ZhciBzLG8saT17c2NhbGFyOnt9LHNlcXVlbmNlOnt9LG1hcHBpbmc6e30sZmFsbGJhY2s6e30sbXVsdGk6e3NjYWxhcjpbXSxzZXF1ZW5jZTpbXSxtYXBwaW5nOltdLGZhbGxiYWNrOltdfX07ZnVuY3Rpb24gY29sbGVjdFR5cGUocyl7cy5tdWx0aT8oaS5tdWx0aVtzLmtpbmRdLnB1c2gocyksaS5tdWx0aS5mYWxsYmFjay5wdXNoKHMpKTppW3Mua2luZF1bcy50YWddPWkuZmFsbGJhY2tbcy50YWddPXN9Zm9yKHM9MCxvPWFyZ3VtZW50cy5sZW5ndGg7czxvO3MrPTEpYXJndW1lbnRzW3NdLmZvckVhY2goY29sbGVjdFR5cGUpO3JldHVybiBpfShhLmNvbXBpbGVkSW1wbGljaXQsYS5jb21waWxlZEV4cGxpY2l0KSxhfTt2YXIgYXI9U2NoZW1hJDEsY3I9bmV3IGlyKCJ0YWc6eWFtbC5vcmcsMjAwMjpzdHIiLHtraW5kOiJzY2FsYXIiLGNvbnN0cnVjdDpmdW5jdGlvbihzKXtyZXR1cm4gbnVsbCE9PXM/czoiIn19KSxscj1uZXcgaXIoInRhZzp5YW1sLm9yZywyMDAyOnNlcSIse2tpbmQ6InNlcXVlbmNlIixjb25zdHJ1Y3Q6ZnVuY3Rpb24ocyl7cmV0dXJuIG51bGwhPT1zP3M6W119fSksdXI9bmV3IGlyKCJ0YWc6eWFtbC5vcmcsMjAwMjptYXAiLHtraW5kOiJtYXBwaW5nIixjb25zdHJ1Y3Q6ZnVuY3Rpb24ocyl7cmV0dXJuIG51bGwhPT1zP3M6e319fSkscHI9bmV3IGFyKHtleHBsaWNpdDpbY3IsbHIsdXJdfSk7dmFyIGRyPW5ldyBpcigidGFnOnlhbWwub3JnLDIwMDI6bnVsbCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpmdW5jdGlvbiByZXNvbHZlWWFtbE51bGwocyl7aWYobnVsbD09PXMpcmV0dXJuITA7dmFyIG89cy5sZW5ndGg7cmV0dXJuIDE9PT1vJiYifiI9PT1zfHw0PT09byYmKCJudWxsIj09PXN8fCJOdWxsIj09PXN8fCJOVUxMIj09PXMpfSxjb25zdHJ1Y3Q6ZnVuY3Rpb24gY29uc3RydWN0WWFtbE51bGwoKXtyZXR1cm4gbnVsbH0scHJlZGljYXRlOmZ1bmN0aW9uIGlzTnVsbChzKXtyZXR1cm4gbnVsbD09PXN9LHJlcHJlc2VudDp7Y2Fub25pY2FsOmZ1bmN0aW9uKCl7cmV0dXJuIn4ifSxsb3dlcmNhc2U6ZnVuY3Rpb24oKXtyZXR1cm4ibnVsbCJ9LHVwcGVyY2FzZTpmdW5jdGlvbigpe3JldHVybiJOVUxMIn0sY2FtZWxjYXNlOmZ1bmN0aW9uKCl7cmV0dXJuIk51bGwifSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiIifX0sZGVmYXVsdFN0eWxlOiJsb3dlcmNhc2UifSk7dmFyIGZyPW5ldyBpcigidGFnOnlhbWwub3JnLDIwMDI6Ym9vbCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpmdW5jdGlvbiByZXNvbHZlWWFtbEJvb2xlYW4ocyl7aWYobnVsbD09PXMpcmV0dXJuITE7dmFyIG89cy5sZW5ndGg7cmV0dXJuIDQ9PT1vJiYoInRydWUiPT09c3x8IlRydWUiPT09c3x8IlRSVUUiPT09cyl8fDU9PT1vJiYoImZhbHNlIj09PXN8fCJGYWxzZSI9PT1zfHwiRkFMU0UiPT09cyl9LGNvbnN0cnVjdDpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sQm9vbGVhbihzKXtyZXR1cm4idHJ1ZSI9PT1zfHwiVHJ1ZSI9PT1zfHwiVFJVRSI9PT1zfSxwcmVkaWNhdGU6ZnVuY3Rpb24gaXNCb29sZWFuKHMpe3JldHVybiJbb2JqZWN0IEJvb2xlYW5dIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzKX0scmVwcmVzZW50Ontsb3dlcmNhc2U6ZnVuY3Rpb24ocyl7cmV0dXJuIHM/InRydWUiOiJmYWxzZSJ9LHVwcGVyY2FzZTpmdW5jdGlvbihzKXtyZXR1cm4gcz8iVFJVRSI6IkZBTFNFIn0sY2FtZWxjYXNlOmZ1bmN0aW9uKHMpe3JldHVybiBzPyJUcnVlIjoiRmFsc2UifX0sZGVmYXVsdFN0eWxlOiJsb3dlcmNhc2UifSk7ZnVuY3Rpb24gaXNPY3RDb2RlKHMpe3JldHVybiA0ODw9cyYmczw9NTV9ZnVuY3Rpb24gaXNEZWNDb2RlKHMpe3JldHVybiA0ODw9cyYmczw9NTd9dmFyIG1yPW5ldyBpcigidGFnOnlhbWwub3JnLDIwMDI6aW50Iix7a2luZDoic2NhbGFyIixyZXNvbHZlOmZ1bmN0aW9uIHJlc29sdmVZYW1sSW50ZWdlcihzKXtpZihudWxsPT09cylyZXR1cm4hMTt2YXIgbyxpLGE9cy5sZW5ndGgsdT0wLF89ITE7aWYoIWEpcmV0dXJuITE7aWYoIi0iIT09KG89c1t1XSkmJiIrIiE9PW98fChvPXNbKyt1XSksIjAiPT09byl7aWYodSsxPT09YSlyZXR1cm4hMDtpZigiYiI9PT0obz1zWysrdV0pKXtmb3IodSsrO3U8YTt1KyspaWYoIl8iIT09KG89c1t1XSkpe2lmKCIwIiE9PW8mJiIxIiE9PW8pcmV0dXJuITE7Xz0hMH1yZXR1cm4gXyYmIl8iIT09b31pZigieCI9PT1vKXtmb3IodSsrO3U8YTt1KyspaWYoIl8iIT09KG89c1t1XSkpe2lmKCEoNDg8PShpPXMuY2hhckNvZGVBdCh1KSkmJmk8PTU3fHw2NTw9aSYmaTw9NzB8fDk3PD1pJiZpPD0xMDIpKXJldHVybiExO189ITB9cmV0dXJuIF8mJiJfIiE9PW99aWYoIm8iPT09byl7Zm9yKHUrKzt1PGE7dSsrKWlmKCJfIiE9PShvPXNbdV0pKXtpZighaXNPY3RDb2RlKHMuY2hhckNvZGVBdCh1KSkpcmV0dXJuITE7Xz0hMH1yZXR1cm4gXyYmIl8iIT09b319aWYoIl8iPT09bylyZXR1cm4hMTtmb3IoO3U8YTt1KyspaWYoIl8iIT09KG89c1t1XSkpe2lmKCFpc0RlY0NvZGUocy5jaGFyQ29kZUF0KHUpKSlyZXR1cm4hMTtfPSEwfXJldHVybiEoIV98fCJfIj09PW8pfSxjb25zdHJ1Y3Q6ZnVuY3Rpb24gY29uc3RydWN0WWFtbEludGVnZXIocyl7dmFyIG8saT1zLGE9MTtpZigtMSE9PWkuaW5kZXhPZigiXyIpJiYoaT1pLnJlcGxhY2UoL18vZywiIikpLCItIiE9PShvPWlbMF0pJiYiKyIhPT1vfHwoIi0iPT09byYmKGE9LTEpLG89KGk9aS5zbGljZSgxKSlbMF0pLCIwIj09PWkpcmV0dXJuIDA7aWYoIjAiPT09byl7aWYoImIiPT09aVsxXSlyZXR1cm4gYSpwYXJzZUludChpLnNsaWNlKDIpLDIpO2lmKCJ4Ij09PWlbMV0pcmV0dXJuIGEqcGFyc2VJbnQoaS5zbGljZSgyKSwxNik7aWYoIm8iPT09aVsxXSlyZXR1cm4gYSpwYXJzZUludChpLnNsaWNlKDIpLDgpfXJldHVybiBhKnBhcnNlSW50KGksMTApfSxwcmVkaWNhdGU6ZnVuY3Rpb24gaXNJbnRlZ2VyKHMpe3JldHVybiJbb2JqZWN0IE51bWJlcl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHMpJiZzJTE9PTAmJiFlci5pc05lZ2F0aXZlWmVybyhzKX0scmVwcmVzZW50OntiaW5hcnk6ZnVuY3Rpb24ocyl7cmV0dXJuIHM+PTA/IjBiIitzLnRvU3RyaW5nKDIpOiItMGIiK3MudG9TdHJpbmcoMikuc2xpY2UoMSl9LG9jdGFsOmZ1bmN0aW9uKHMpe3JldHVybiBzPj0wPyIwbyIrcy50b1N0cmluZyg4KToiLTBvIitzLnRvU3RyaW5nKDgpLnNsaWNlKDEpfSxkZWNpbWFsOmZ1bmN0aW9uKHMpe3JldHVybiBzLnRvU3RyaW5nKDEwKX0saGV4YWRlY2ltYWw6ZnVuY3Rpb24ocyl7cmV0dXJuIHM+PTA/IjB4IitzLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpOiItMHgiK3MudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMSl9fSxkZWZhdWx0U3R5bGU6ImRlY2ltYWwiLHN0eWxlQWxpYXNlczp7YmluYXJ5OlsyLCJiaW4iXSxvY3RhbDpbOCwib2N0Il0sZGVjaW1hbDpbMTAsImRlYyJdLGhleGFkZWNpbWFsOlsxNiwiaGV4Il19fSksZ3I9bmV3IFJlZ0V4cCgiXig/OlstK10/KD86WzAtOV1bMC05X10qKSg/OlxcLlswLTlfXSopPyg/OltlRV1bLStdP1swLTldKyk/fFxcLlswLTlfXSsoPzpbZUVdWy0rXT9bMC05XSspP3xbLStdP1xcLig/OmluZnxJbmZ8SU5GKXxcXC4oPzpuYW58TmFOfE5BTikpJCIpO3ZhciB5cj0vXlstK10/WzAtOV0rZS87dmFyIHZyPW5ldyBpcigidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6ZnVuY3Rpb24gcmVzb2x2ZVlhbWxGbG9hdChzKXtyZXR1cm4gbnVsbCE9PXMmJiEoIWdyLnRlc3Qocyl8fCJfIj09PXNbcy5sZW5ndGgtMV0pfSxjb25zdHJ1Y3Q6ZnVuY3Rpb24gY29uc3RydWN0WWFtbEZsb2F0KHMpe3ZhciBvLGk7cmV0dXJuIGk9Ii0iPT09KG89cy5yZXBsYWNlKC9fL2csIiIpLnRvTG93ZXJDYXNlKCkpWzBdPy0xOjEsIistIi5pbmRleE9mKG9bMF0pPj0wJiYobz1vLnNsaWNlKDEpKSwiLmluZiI9PT1vPzE9PT1pP051bWJlci5QT1NJVElWRV9JTkZJTklUWTpOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk6Ii5uYW4iPT09bz9OYU46aSpwYXJzZUZsb2F0KG8sMTApfSxwcmVkaWNhdGU6ZnVuY3Rpb24gaXNGbG9hdChzKXtyZXR1cm4iW29iamVjdCBOdW1iZXJdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzKSYmKHMlMSE9MHx8ZXIuaXNOZWdhdGl2ZVplcm8ocykpfSxyZXByZXNlbnQ6ZnVuY3Rpb24gcmVwcmVzZW50WWFtbEZsb2F0KHMsbyl7dmFyIGk7aWYoaXNOYU4ocykpc3dpdGNoKG8pe2Nhc2UibG93ZXJjYXNlIjpyZXR1cm4iLm5hbiI7Y2FzZSJ1cHBlcmNhc2UiOnJldHVybiIuTkFOIjtjYXNlImNhbWVsY2FzZSI6cmV0dXJuIi5OYU4ifWVsc2UgaWYoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZPT09cylzd2l0Y2gobyl7Y2FzZSJsb3dlcmNhc2UiOnJldHVybiIuaW5mIjtjYXNlInVwcGVyY2FzZSI6cmV0dXJuIi5JTkYiO2Nhc2UiY2FtZWxjYXNlIjpyZXR1cm4iLkluZiJ9ZWxzZSBpZihOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk9PT1zKXN3aXRjaChvKXtjYXNlImxvd2VyY2FzZSI6cmV0dXJuIi0uaW5mIjtjYXNlInVwcGVyY2FzZSI6cmV0dXJuIi0uSU5GIjtjYXNlImNhbWVsY2FzZSI6cmV0dXJuIi0uSW5mIn1lbHNlIGlmKGVyLmlzTmVnYXRpdmVaZXJvKHMpKXJldHVybiItMC4wIjtyZXR1cm4gaT1zLnRvU3RyaW5nKDEwKSx5ci50ZXN0KGkpP2kucmVwbGFjZSgiZSIsIi5lIik6aX0sZGVmYXVsdFN0eWxlOiJsb3dlcmNhc2UifSksYnI9cHIuZXh0ZW5kKHtpbXBsaWNpdDpbZHIsZnIsbXIsdnJdfSksX3I9YnIsU3I9bmV3IFJlZ0V4cCgiXihbMC05XVswLTldWzAtOV1bMC05XSktKFswLTldWzAtOV0pLShbMC05XVswLTldKSQiKSxFcj1uZXcgUmVnRXhwKCJeKFswLTldWzAtOV1bMC05XVswLTldKS0oWzAtOV1bMC05XT8pLShbMC05XVswLTldPykoPzpbVHRdfFsgXFx0XSspKFswLTldWzAtOV0/KTooWzAtOV1bMC05XSk6KFswLTldWzAtOV0pKD86XFwuKFswLTldKikpPyg/OlsgXFx0XSooWnwoWy0rXSkoWzAtOV1bMC05XT8pKD86OihbMC05XVswLTldKSk/KSk/JCIpO3ZhciB3cj1uZXcgaXIoInRhZzp5YW1sLm9yZywyMDAyOnRpbWVzdGFtcCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpmdW5jdGlvbiByZXNvbHZlWWFtbFRpbWVzdGFtcChzKXtyZXR1cm4gbnVsbCE9PXMmJihudWxsIT09U3IuZXhlYyhzKXx8bnVsbCE9PUVyLmV4ZWMocykpfSxjb25zdHJ1Y3Q6ZnVuY3Rpb24gY29uc3RydWN0WWFtbFRpbWVzdGFtcChzKXt2YXIgbyxpLGEsdSxfLHcseCxDLGo9MCxMPW51bGw7aWYobnVsbD09PShvPVNyLmV4ZWMocykpJiYobz1Fci5leGVjKHMpKSxudWxsPT09byl0aHJvdyBuZXcgRXJyb3IoIkRhdGUgcmVzb2x2ZSBlcnJvciIpO2lmKGk9K29bMV0sYT0rb1syXS0xLHU9K29bM10sIW9bNF0pcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKGksYSx1KSk7aWYoXz0rb1s0XSx3PStvWzVdLHg9K29bNl0sb1s3XSl7Zm9yKGo9b1s3XS5zbGljZSgwLDMpO2oubGVuZ3RoPDM7KWorPSIwIjtqPStqfXJldHVybiBvWzldJiYoTD02ZTQqKDYwKitvWzEwXSsgKyhvWzExXXx8MCkpLCItIj09PW9bOV0mJihMPS1MKSksQz1uZXcgRGF0ZShEYXRlLlVUQyhpLGEsdSxfLHcseCxqKSksTCYmQy5zZXRUaW1lKEMuZ2V0VGltZSgpLUwpLEN9LGluc3RhbmNlT2Y6RGF0ZSxyZXByZXNlbnQ6ZnVuY3Rpb24gcmVwcmVzZW50WWFtbFRpbWVzdGFtcChzKXtyZXR1cm4gcy50b0lTT1N0cmluZygpfX0pO3ZhciB4cj1uZXcgaXIoInRhZzp5YW1sLm9yZywyMDAyOm1lcmdlIix7a2luZDoic2NhbGFyIixyZXNvbHZlOmZ1bmN0aW9uIHJlc29sdmVZYW1sTWVyZ2Uocyl7cmV0dXJuIjw8Ij09PXN8fG51bGw9PT1zfX0pLGtyPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVxuXHIiO3ZhciBPcj1uZXcgaXIoInRhZzp5YW1sLm9yZywyMDAyOmJpbmFyeSIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpmdW5jdGlvbiByZXNvbHZlWWFtbEJpbmFyeShzKXtpZihudWxsPT09cylyZXR1cm4hMTt2YXIgbyxpLGE9MCx1PXMubGVuZ3RoLF89a3I7Zm9yKGk9MDtpPHU7aSsrKWlmKCEoKG89Xy5pbmRleE9mKHMuY2hhckF0KGkpKSk+NjQpKXtpZihvPDApcmV0dXJuITE7YSs9Nn1yZXR1cm4gYSU4PT0wfSxjb25zdHJ1Y3Q6ZnVuY3Rpb24gY29uc3RydWN0WWFtbEJpbmFyeShzKXt2YXIgbyxpLGE9cy5yZXBsYWNlKC9bXHJcbj1dL2csIiIpLHU9YS5sZW5ndGgsXz1rcix3PTAseD1bXTtmb3Iobz0wO288dTtvKyspbyU0PT0wJiZvJiYoeC5wdXNoKHc+PjE2JjI1NSkseC5wdXNoKHc+PjgmMjU1KSx4LnB1c2goMjU1JncpKSx3PXc8PDZ8Xy5pbmRleE9mKGEuY2hhckF0KG8pKTtyZXR1cm4gMD09PShpPXUlNCo2KT8oeC5wdXNoKHc+PjE2JjI1NSkseC5wdXNoKHc+PjgmMjU1KSx4LnB1c2goMjU1JncpKToxOD09PWk/KHgucHVzaCh3Pj4xMCYyNTUpLHgucHVzaCh3Pj4yJjI1NSkpOjEyPT09aSYmeC5wdXNoKHc+PjQmMjU1KSxuZXcgVWludDhBcnJheSh4KX0scHJlZGljYXRlOmZ1bmN0aW9uIGlzQmluYXJ5KHMpe3JldHVybiJbb2JqZWN0IFVpbnQ4QXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzKX0scmVwcmVzZW50OmZ1bmN0aW9uIHJlcHJlc2VudFlhbWxCaW5hcnkocyl7dmFyIG8saSxhPSIiLHU9MCxfPXMubGVuZ3RoLHc9a3I7Zm9yKG89MDtvPF87bysrKW8lMz09MCYmbyYmKGErPXdbdT4+MTgmNjNdLGErPXdbdT4+MTImNjNdLGErPXdbdT4+NiY2M10sYSs9d1s2MyZ1XSksdT0odTw8OCkrc1tvXTtyZXR1cm4gMD09PShpPV8lMyk/KGErPXdbdT4+MTgmNjNdLGErPXdbdT4+MTImNjNdLGErPXdbdT4+NiY2M10sYSs9d1s2MyZ1XSk6Mj09PWk/KGErPXdbdT4+MTAmNjNdLGErPXdbdT4+NCY2M10sYSs9d1t1PDwyJjYzXSxhKz13WzY0XSk6MT09PWkmJihhKz13W3U+PjImNjNdLGErPXdbdTw8NCY2M10sYSs9d1s2NF0sYSs9d1s2NF0pLGF9fSksQ3I9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxBcj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO3ZhciBqcj1uZXcgaXIoInRhZzp5YW1sLm9yZywyMDAyOm9tYXAiLHtraW5kOiJzZXF1ZW5jZSIscmVzb2x2ZTpmdW5jdGlvbiByZXNvbHZlWWFtbE9tYXAocyl7aWYobnVsbD09PXMpcmV0dXJuITA7dmFyIG8saSxhLHUsXyx3PVtdLHg9cztmb3Iobz0wLGk9eC5sZW5ndGg7bzxpO28rPTEpe2lmKGE9eFtvXSxfPSExLCJbb2JqZWN0IE9iamVjdF0iIT09QXIuY2FsbChhKSlyZXR1cm4hMTtmb3IodSBpbiBhKWlmKENyLmNhbGwoYSx1KSl7aWYoXylyZXR1cm4hMTtfPSEwfWlmKCFfKXJldHVybiExO2lmKC0xIT09dy5pbmRleE9mKHUpKXJldHVybiExO3cucHVzaCh1KX1yZXR1cm4hMH0sY29uc3RydWN0OmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxPbWFwKHMpe3JldHVybiBudWxsIT09cz9zOltdfX0pLElyPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dmFyIFByPW5ldyBpcigidGFnOnlhbWwub3JnLDIwMDI6cGFpcnMiLHtraW5kOiJzZXF1ZW5jZSIscmVzb2x2ZTpmdW5jdGlvbiByZXNvbHZlWWFtbFBhaXJzKHMpe2lmKG51bGw9PT1zKXJldHVybiEwO3ZhciBvLGksYSx1LF8sdz1zO2ZvcihfPW5ldyBBcnJheSh3Lmxlbmd0aCksbz0wLGk9dy5sZW5ndGg7bzxpO28rPTEpe2lmKGE9d1tvXSwiW29iamVjdCBPYmplY3RdIiE9PUlyLmNhbGwoYSkpcmV0dXJuITE7aWYoMSE9PSh1PU9iamVjdC5rZXlzKGEpKS5sZW5ndGgpcmV0dXJuITE7X1tvXT1bdVswXSxhW3VbMF1dXX1yZXR1cm4hMH0sY29uc3RydWN0OmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxQYWlycyhzKXtpZihudWxsPT09cylyZXR1cm5bXTt2YXIgbyxpLGEsdSxfLHc9cztmb3IoXz1uZXcgQXJyYXkody5sZW5ndGgpLG89MCxpPXcubGVuZ3RoO288aTtvKz0xKWE9d1tvXSx1PU9iamVjdC5rZXlzKGEpLF9bb109W3VbMF0sYVt1WzBdXV07cmV0dXJuIF99fSksVHI9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgTnI9bmV3IGlyKCJ0YWc6eWFtbC5vcmcsMjAwMjpzZXQiLHtraW5kOiJtYXBwaW5nIixyZXNvbHZlOmZ1bmN0aW9uIHJlc29sdmVZYW1sU2V0KHMpe2lmKG51bGw9PT1zKXJldHVybiEwO3ZhciBvLGk9cztmb3IobyBpbiBpKWlmKFRyLmNhbGwoaSxvKSYmbnVsbCE9PWlbb10pcmV0dXJuITE7cmV0dXJuITB9LGNvbnN0cnVjdDpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sU2V0KHMpe3JldHVybiBudWxsIT09cz9zOnt9fX0pLE1yPV9yLmV4dGVuZCh7aW1wbGljaXQ6W3dyLHhyXSxleHBsaWNpdDpbT3IsanIsUHIsTnJdfSksUnI9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxEcj0vW1x4MDAtXHgwOFx4MEJceDBDXHgwRS1ceDFGXHg3Ri1ceDg0XHg4Ni1ceDlGXHVGRkZFXHVGRkZGXXxbXHVEODAwLVx1REJGRl0oPyFbXHVEQzAwLVx1REZGRl0pfCg/OlteXHVEODAwLVx1REJGRl18XilbXHVEQzAwLVx1REZGRl0vLExyPS9bXHg4NVx1MjAyOFx1MjAyOV0vLEZyPS9bLFxbXF1ce1x9XS8sQnI9L14oPzohfCEhfCFbYS16XC1dKyEpJC9pLCRyPS9eKD86IXxbXixcW1xdXHtcfV0pKD86JVswLTlhLWZdezJ9fFswLTlhLXpcLSM7XC9cPzpAJj1cK1wkLF9cLiF+XConXChcKVxbXF1dKSokL2k7ZnVuY3Rpb24gX2NsYXNzKHMpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocyl9ZnVuY3Rpb24gaXNfRU9MKHMpe3JldHVybiAxMD09PXN8fDEzPT09c31mdW5jdGlvbiBpc19XSElURV9TUEFDRShzKXtyZXR1cm4gOT09PXN8fDMyPT09c31mdW5jdGlvbiBpc19XU19PUl9FT0wocyl7cmV0dXJuIDk9PT1zfHwzMj09PXN8fDEwPT09c3x8MTM9PT1zfWZ1bmN0aW9uIGlzX0ZMT1dfSU5ESUNBVE9SKHMpe3JldHVybiA0ND09PXN8fDkxPT09c3x8OTM9PT1zfHwxMjM9PT1zfHwxMjU9PT1zfWZ1bmN0aW9uIGZyb21IZXhDb2RlKHMpe3ZhciBvO3JldHVybiA0ODw9cyYmczw9NTc/cy00ODo5Nzw9KG89MzJ8cykmJm88PTEwMj9vLTk3KzEwOi0xfWZ1bmN0aW9uIHNpbXBsZUVzY2FwZVNlcXVlbmNlKHMpe3JldHVybiA0OD09PXM/IlwwIjo5Nz09PXM/IgciOjk4PT09cz8iXGIiOjExNj09PXN8fDk9PT1zPyJcdCI6MTEwPT09cz8iXG4iOjExOD09PXM/Ilx2IjoxMDI9PT1zPyJcZiI6MTE0PT09cz8iXHIiOjEwMT09PXM/IhsiOjMyPT09cz8iICI6MzQ9PT1zPyciJzo0Nz09PXM/Ii8iOjkyPT09cz8iXFwiOjc4PT09cz8iwoUiOjk1PT09cz8iwqAiOjc2PT09cz8iXHUyMDI4Ijo4MD09PXM/Ilx1MjAyOSI6IiJ9ZnVuY3Rpb24gY2hhckZyb21Db2RlcG9pbnQocyl7cmV0dXJuIHM8PTY1NTM1P1N0cmluZy5mcm9tQ2hhckNvZGUocyk6U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5Nisocy02NTUzNj4+MTApLDU2MzIwKyhzLTY1NTM2JjEwMjMpKX1mb3IodmFyIHFyPW5ldyBBcnJheSgyNTYpLFZyPW5ldyBBcnJheSgyNTYpLFVyPTA7VXI8MjU2O1VyKyspcXJbVXJdPXNpbXBsZUVzY2FwZVNlcXVlbmNlKFVyKT8xOjAsVnJbVXJdPXNpbXBsZUVzY2FwZVNlcXVlbmNlKFVyKTtmdW5jdGlvbiBTdGF0ZSQxKHMsbyl7dGhpcy5pbnB1dD1zLHRoaXMuZmlsZW5hbWU9by5maWxlbmFtZXx8bnVsbCx0aGlzLnNjaGVtYT1vLnNjaGVtYXx8TXIsdGhpcy5vbldhcm5pbmc9by5vbldhcm5pbmd8fG51bGwsdGhpcy5sZWdhY3k9by5sZWdhY3l8fCExLHRoaXMuanNvbj1vLmpzb258fCExLHRoaXMubGlzdGVuZXI9by5saXN0ZW5lcnx8bnVsbCx0aGlzLmltcGxpY2l0VHlwZXM9dGhpcy5zY2hlbWEuY29tcGlsZWRJbXBsaWNpdCx0aGlzLnR5cGVNYXA9dGhpcy5zY2hlbWEuY29tcGlsZWRUeXBlTWFwLHRoaXMubGVuZ3RoPXMubGVuZ3RoLHRoaXMucG9zaXRpb249MCx0aGlzLmxpbmU9MCx0aGlzLmxpbmVTdGFydD0wLHRoaXMubGluZUluZGVudD0wLHRoaXMuZmlyc3RUYWJJbkxpbmU9LTEsdGhpcy5kb2N1bWVudHM9W119ZnVuY3Rpb24gZ2VuZXJhdGVFcnJvcihzLG8pe3ZhciBpPXtuYW1lOnMuZmlsZW5hbWUsYnVmZmVyOnMuaW5wdXQuc2xpY2UoMCwtMSkscG9zaXRpb246cy5wb3NpdGlvbixsaW5lOnMubGluZSxjb2x1bW46cy5wb3NpdGlvbi1zLmxpbmVTdGFydH07cmV0dXJuIGkuc25pcHBldD1ycihpKSxuZXcgdHIobyxpKX1mdW5jdGlvbiB0aHJvd0Vycm9yKHMsbyl7dGhyb3cgZ2VuZXJhdGVFcnJvcihzLG8pfWZ1bmN0aW9uIHRocm93V2FybmluZyhzLG8pe3Mub25XYXJuaW5nJiZzLm9uV2FybmluZy5jYWxsKG51bGwsZ2VuZXJhdGVFcnJvcihzLG8pKX12YXIgenI9e1lBTUw6ZnVuY3Rpb24gaGFuZGxlWWFtbERpcmVjdGl2ZShzLG8saSl7dmFyIGEsdSxfO251bGwhPT1zLnZlcnNpb24mJnRocm93RXJyb3IocywiZHVwbGljYXRpb24gb2YgJVlBTUwgZGlyZWN0aXZlIiksMSE9PWkubGVuZ3RoJiZ0aHJvd0Vycm9yKHMsIllBTUwgZGlyZWN0aXZlIGFjY2VwdHMgZXhhY3RseSBvbmUgYXJndW1lbnQiKSxudWxsPT09KGE9L14oWzAtOV0rKVwuKFswLTldKykkLy5leGVjKGlbMF0pKSYmdGhyb3dFcnJvcihzLCJpbGwtZm9ybWVkIGFyZ3VtZW50IG9mIHRoZSBZQU1MIGRpcmVjdGl2ZSIpLHU9cGFyc2VJbnQoYVsxXSwxMCksXz1wYXJzZUludChhWzJdLDEwKSwxIT09dSYmdGhyb3dFcnJvcihzLCJ1bmFjY2VwdGFibGUgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCIpLHMudmVyc2lvbj1pWzBdLHMuY2hlY2tMaW5lQnJlYWtzPV88MiwxIT09XyYmMiE9PV8mJnRocm93V2FybmluZyhzLCJ1bnN1cHBvcnRlZCBZQU1MIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50Iil9LFRBRzpmdW5jdGlvbiBoYW5kbGVUYWdEaXJlY3RpdmUocyxvLGkpe3ZhciBhLHU7MiE9PWkubGVuZ3RoJiZ0aHJvd0Vycm9yKHMsIlRBRyBkaXJlY3RpdmUgYWNjZXB0cyBleGFjdGx5IHR3byBhcmd1bWVudHMiKSxhPWlbMF0sdT1pWzFdLEJyLnRlc3QoYSl8fHRocm93RXJyb3IocywiaWxsLWZvcm1lZCB0YWcgaGFuZGxlIChmaXJzdCBhcmd1bWVudCkgb2YgdGhlIFRBRyBkaXJlY3RpdmUiKSxSci5jYWxsKHMudGFnTWFwLGEpJiZ0aHJvd0Vycm9yKHMsJ3RoZXJlIGlzIGEgcHJldmlvdXNseSBkZWNsYXJlZCBzdWZmaXggZm9yICInK2ErJyIgdGFnIGhhbmRsZScpLCRyLnRlc3QodSl8fHRocm93RXJyb3IocywiaWxsLWZvcm1lZCB0YWcgcHJlZml4IChzZWNvbmQgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlIik7dHJ5e3U9ZGVjb2RlVVJJQ29tcG9uZW50KHUpfWNhdGNoKG8pe3Rocm93RXJyb3IocywidGFnIHByZWZpeCBpcyBtYWxmb3JtZWQ6ICIrdSl9cy50YWdNYXBbYV09dX19O2Z1bmN0aW9uIGNhcHR1cmVTZWdtZW50KHMsbyxpLGEpe3ZhciB1LF8sdyx4O2lmKG88aSl7aWYoeD1zLmlucHV0LnNsaWNlKG8saSksYSlmb3IodT0wLF89eC5sZW5ndGg7dTxfO3UrPTEpOT09PSh3PXguY2hhckNvZGVBdCh1KSl8fDMyPD13JiZ3PD0xMTE0MTExfHx0aHJvd0Vycm9yKHMsImV4cGVjdGVkIHZhbGlkIEpTT04gY2hhcmFjdGVyIik7ZWxzZSBEci50ZXN0KHgpJiZ0aHJvd0Vycm9yKHMsInRoZSBzdHJlYW0gY29udGFpbnMgbm9uLXByaW50YWJsZSBjaGFyYWN0ZXJzIik7cy5yZXN1bHQrPXh9fWZ1bmN0aW9uIG1lcmdlTWFwcGluZ3MocyxvLGksYSl7dmFyIHUsXyx3LHg7Zm9yKGVyLmlzT2JqZWN0KGkpfHx0aHJvd0Vycm9yKHMsImNhbm5vdCBtZXJnZSBtYXBwaW5nczsgdGhlIHByb3ZpZGVkIHNvdXJjZSBvYmplY3QgaXMgdW5hY2NlcHRhYmxlIiksdz0wLHg9KHU9T2JqZWN0LmtleXMoaSkpLmxlbmd0aDt3PHg7dys9MSlfPXVbd10sUnIuY2FsbChvLF8pfHwob1tfXT1pW19dLGFbX109ITApfWZ1bmN0aW9uIHN0b3JlTWFwcGluZ1BhaXIocyxvLGksYSx1LF8sdyx4LEMpe3ZhciBqLEw7aWYoQXJyYXkuaXNBcnJheSh1KSlmb3Ioaj0wLEw9KHU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodSkpLmxlbmd0aDtqPEw7ais9MSlBcnJheS5pc0FycmF5KHVbal0pJiZ0aHJvd0Vycm9yKHMsIm5lc3RlZCBhcnJheXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW5zaWRlIGtleXMiKSwib2JqZWN0Ij09dHlwZW9mIHUmJiJbb2JqZWN0IE9iamVjdF0iPT09X2NsYXNzKHVbal0pJiYodVtqXT0iW29iamVjdCBPYmplY3RdIik7aWYoIm9iamVjdCI9PXR5cGVvZiB1JiYiW29iamVjdCBPYmplY3RdIj09PV9jbGFzcyh1KSYmKHU9IltvYmplY3QgT2JqZWN0XSIpLHU9U3RyaW5nKHUpLG51bGw9PT1vJiYobz17fSksInRhZzp5YW1sLm9yZywyMDAyOm1lcmdlIj09PWEpaWYoQXJyYXkuaXNBcnJheShfKSlmb3Ioaj0wLEw9Xy5sZW5ndGg7ajxMO2orPTEpbWVyZ2VNYXBwaW5ncyhzLG8sX1tqXSxpKTtlbHNlIG1lcmdlTWFwcGluZ3MocyxvLF8saSk7ZWxzZSBzLmpzb258fFJyLmNhbGwoaSx1KXx8IVJyLmNhbGwobyx1KXx8KHMubGluZT13fHxzLmxpbmUscy5saW5lU3RhcnQ9eHx8cy5saW5lU3RhcnQscy5wb3NpdGlvbj1DfHxzLnBvc2l0aW9uLHRocm93RXJyb3IocywiZHVwbGljYXRlZCBtYXBwaW5nIGtleSIpKSwiX19wcm90b19fIj09PXU/T2JqZWN0LmRlZmluZVByb3BlcnR5KG8sdSx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pOm9bdV09XyxkZWxldGUgaVt1XTtyZXR1cm4gb31mdW5jdGlvbiByZWFkTGluZUJyZWFrKHMpe3ZhciBvOzEwPT09KG89cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pKT9zLnBvc2l0aW9uKys6MTM9PT1vPyhzLnBvc2l0aW9uKyssMTA9PT1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbikmJnMucG9zaXRpb24rKyk6dGhyb3dFcnJvcihzLCJhIGxpbmUgYnJlYWsgaXMgZXhwZWN0ZWQiKSxzLmxpbmUrPTEscy5saW5lU3RhcnQ9cy5wb3NpdGlvbixzLmZpcnN0VGFiSW5MaW5lPS0xfWZ1bmN0aW9uIHNraXBTZXBhcmF0aW9uU3BhY2UocyxvLGkpe2Zvcih2YXIgYT0wLHU9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pOzAhPT11Oyl7Zm9yKDtpc19XSElURV9TUEFDRSh1KTspOT09PXUmJi0xPT09cy5maXJzdFRhYkluTGluZSYmKHMuZmlyc3RUYWJJbkxpbmU9cy5wb3NpdGlvbiksdT1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKTtpZihvJiYzNT09PXUpZG97dT1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKX13aGlsZSgxMCE9PXUmJjEzIT09dSYmMCE9PXUpO2lmKCFpc19FT0wodSkpYnJlYWs7Zm9yKHJlYWRMaW5lQnJlYWsocyksdT1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbiksYSsrLHMubGluZUluZGVudD0wOzMyPT09dTspcy5saW5lSW5kZW50KyssdT1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKX1yZXR1cm4tMSE9PWkmJjAhPT1hJiZzLmxpbmVJbmRlbnQ8aSYmdGhyb3dXYXJuaW5nKHMsImRlZmljaWVudCBpbmRlbnRhdGlvbiIpLGF9ZnVuY3Rpb24gdGVzdERvY3VtZW50U2VwYXJhdG9yKHMpe3ZhciBvLGk9cy5wb3NpdGlvbjtyZXR1cm4hKDQ1IT09KG89cy5pbnB1dC5jaGFyQ29kZUF0KGkpKSYmNDYhPT1vfHxvIT09cy5pbnB1dC5jaGFyQ29kZUF0KGkrMSl8fG8hPT1zLmlucHV0LmNoYXJDb2RlQXQoaSsyKXx8KGkrPTMsMCE9PShvPXMuaW5wdXQuY2hhckNvZGVBdChpKSkmJiFpc19XU19PUl9FT0wobykpKX1mdW5jdGlvbiB3cml0ZUZvbGRlZExpbmVzKHMsbyl7MT09PW8/cy5yZXN1bHQrPSIgIjpvPjEmJihzLnJlc3VsdCs9ZXIucmVwZWF0KCJcbiIsby0xKSl9ZnVuY3Rpb24gcmVhZEJsb2NrU2VxdWVuY2UocyxvKXt2YXIgaSxhLHU9cy50YWcsXz1zLmFuY2hvcix3PVtdLHg9ITE7aWYoLTEhPT1zLmZpcnN0VGFiSW5MaW5lKXJldHVybiExO2ZvcihudWxsIT09cy5hbmNob3ImJihzLmFuY2hvck1hcFtzLmFuY2hvcl09dyksYT1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbik7MCE9PWEmJigtMSE9PXMuZmlyc3RUYWJJbkxpbmUmJihzLnBvc2l0aW9uPXMuZmlyc3RUYWJJbkxpbmUsdGhyb3dFcnJvcihzLCJ0YWIgY2hhcmFjdGVycyBtdXN0IG5vdCBiZSB1c2VkIGluIGluZGVudGF0aW9uIikpLDQ1PT09YSkmJmlzX1dTX09SX0VPTChzLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbisxKSk7KWlmKHg9ITAscy5wb3NpdGlvbisrLHNraXBTZXBhcmF0aW9uU3BhY2UocywhMCwtMSkmJnMubGluZUluZGVudDw9byl3LnB1c2gobnVsbCksYT1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbik7ZWxzZSBpZihpPXMubGluZSxjb21wb3NlTm9kZShzLG8sMywhMSwhMCksdy5wdXNoKHMucmVzdWx0KSxza2lwU2VwYXJhdGlvblNwYWNlKHMsITAsLTEpLGE9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pLChzLmxpbmU9PT1pfHxzLmxpbmVJbmRlbnQ+bykmJjAhPT1hKXRocm93RXJyb3IocywiYmFkIGluZGVudGF0aW9uIG9mIGEgc2VxdWVuY2UgZW50cnkiKTtlbHNlIGlmKHMubGluZUluZGVudDxvKWJyZWFrO3JldHVybiEheCYmKHMudGFnPXUscy5hbmNob3I9XyxzLmtpbmQ9InNlcXVlbmNlIixzLnJlc3VsdD13LCEwKX1mdW5jdGlvbiByZWFkVGFnUHJvcGVydHkocyl7dmFyIG8saSxhLHUsXz0hMSx3PSExO2lmKDMzIT09KHU9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pKSlyZXR1cm4hMTtpZihudWxsIT09cy50YWcmJnRocm93RXJyb3IocywiZHVwbGljYXRpb24gb2YgYSB0YWcgcHJvcGVydHkiKSw2MD09PSh1PXMuaW5wdXQuY2hhckNvZGVBdCgrK3MucG9zaXRpb24pKT8oXz0hMCx1PXMuaW5wdXQuY2hhckNvZGVBdCgrK3MucG9zaXRpb24pKTozMz09PXU/KHc9ITAsaT0iISEiLHU9cy5pbnB1dC5jaGFyQ29kZUF0KCsrcy5wb3NpdGlvbikpOmk9IiEiLG89cy5wb3NpdGlvbixfKXtkb3t1PXMuaW5wdXQuY2hhckNvZGVBdCgrK3MucG9zaXRpb24pfXdoaWxlKDAhPT11JiY2MiE9PXUpO3MucG9zaXRpb248cy5sZW5ndGg/KGE9cy5pbnB1dC5zbGljZShvLHMucG9zaXRpb24pLHU9cy5pbnB1dC5jaGFyQ29kZUF0KCsrcy5wb3NpdGlvbikpOnRocm93RXJyb3IocywidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSB2ZXJiYXRpbSB0YWciKX1lbHNle2Zvcig7MCE9PXUmJiFpc19XU19PUl9FT0wodSk7KTMzPT09dSYmKHc/dGhyb3dFcnJvcihzLCJ0YWcgc3VmZml4IGNhbm5vdCBjb250YWluIGV4Y2xhbWF0aW9uIG1hcmtzIik6KGk9cy5pbnB1dC5zbGljZShvLTEscy5wb3NpdGlvbisxKSxCci50ZXN0KGkpfHx0aHJvd0Vycm9yKHMsIm5hbWVkIHRhZyBoYW5kbGUgY2Fubm90IGNvbnRhaW4gc3VjaCBjaGFyYWN0ZXJzIiksdz0hMCxvPXMucG9zaXRpb24rMSkpLHU9cy5pbnB1dC5jaGFyQ29kZUF0KCsrcy5wb3NpdGlvbik7YT1zLmlucHV0LnNsaWNlKG8scy5wb3NpdGlvbiksRnIudGVzdChhKSYmdGhyb3dFcnJvcihzLCJ0YWcgc3VmZml4IGNhbm5vdCBjb250YWluIGZsb3cgaW5kaWNhdG9yIGNoYXJhY3RlcnMiKX1hJiYhJHIudGVzdChhKSYmdGhyb3dFcnJvcihzLCJ0YWcgbmFtZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnM6ICIrYSk7dHJ5e2E9ZGVjb2RlVVJJQ29tcG9uZW50KGEpfWNhdGNoKG8pe3Rocm93RXJyb3IocywidGFnIG5hbWUgaXMgbWFsZm9ybWVkOiAiK2EpfXJldHVybiBfP3MudGFnPWE6UnIuY2FsbChzLnRhZ01hcCxpKT9zLnRhZz1zLnRhZ01hcFtpXSthOiIhIj09PWk/cy50YWc9IiEiK2E6IiEhIj09PWk/cy50YWc9InRhZzp5YW1sLm9yZywyMDAyOiIrYTp0aHJvd0Vycm9yKHMsJ3VuZGVjbGFyZWQgdGFnIGhhbmRsZSAiJytpKyciJyksITB9ZnVuY3Rpb24gcmVhZEFuY2hvclByb3BlcnR5KHMpe3ZhciBvLGk7aWYoMzghPT0oaT1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbikpKXJldHVybiExO2ZvcihudWxsIT09cy5hbmNob3ImJnRocm93RXJyb3IocywiZHVwbGljYXRpb24gb2YgYW4gYW5jaG9yIHByb3BlcnR5IiksaT1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKSxvPXMucG9zaXRpb247MCE9PWkmJiFpc19XU19PUl9FT0woaSkmJiFpc19GTE9XX0lORElDQVRPUihpKTspaT1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKTtyZXR1cm4gcy5wb3NpdGlvbj09PW8mJnRocm93RXJyb3IocywibmFtZSBvZiBhbiBhbmNob3Igbm9kZSBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGNoYXJhY3RlciIpLHMuYW5jaG9yPXMuaW5wdXQuc2xpY2UobyxzLnBvc2l0aW9uKSwhMH1mdW5jdGlvbiBjb21wb3NlTm9kZShzLG8saSxhLHUpe3ZhciBfLHcseCxDLGosTCxCLCQsVixVPTEsej0hMSxZPSExO2lmKG51bGwhPT1zLmxpc3RlbmVyJiZzLmxpc3RlbmVyKCJvcGVuIixzKSxzLnRhZz1udWxsLHMuYW5jaG9yPW51bGwscy5raW5kPW51bGwscy5yZXN1bHQ9bnVsbCxfPXc9eD00PT09aXx8Mz09PWksYSYmc2tpcFNlcGFyYXRpb25TcGFjZShzLCEwLC0xKSYmKHo9ITAscy5saW5lSW5kZW50Pm8/VT0xOnMubGluZUluZGVudD09PW8/VT0wOnMubGluZUluZGVudDxvJiYoVT0tMSkpLDE9PT1VKWZvcig7cmVhZFRhZ1Byb3BlcnR5KHMpfHxyZWFkQW5jaG9yUHJvcGVydHkocyk7KXNraXBTZXBhcmF0aW9uU3BhY2UocywhMCwtMSk/KHo9ITAseD1fLHMubGluZUluZGVudD5vP1U9MTpzLmxpbmVJbmRlbnQ9PT1vP1U9MDpzLmxpbmVJbmRlbnQ8byYmKFU9LTEpKTp4PSExO2lmKHgmJih4PXp8fHUpLDEhPT1VJiY0IT09aXx8KCQ9MT09PWl8fDI9PT1pP286bysxLFY9cy5wb3NpdGlvbi1zLmxpbmVTdGFydCwxPT09VT94JiYocmVhZEJsb2NrU2VxdWVuY2UocyxWKXx8ZnVuY3Rpb24gcmVhZEJsb2NrTWFwcGluZyhzLG8saSl7dmFyIGEsdSxfLHcseCxDLGosTD1zLnRhZyxCPXMuYW5jaG9yLCQ9e30sVj1PYmplY3QuY3JlYXRlKG51bGwpLFU9bnVsbCx6PW51bGwsWT1udWxsLFo9ITEsZWU9ITE7aWYoLTEhPT1zLmZpcnN0VGFiSW5MaW5lKXJldHVybiExO2ZvcihudWxsIT09cy5hbmNob3ImJihzLmFuY2hvck1hcFtzLmFuY2hvcl09JCksaj1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbik7MCE9PWo7KXtpZihafHwtMT09PXMuZmlyc3RUYWJJbkxpbmV8fChzLnBvc2l0aW9uPXMuZmlyc3RUYWJJbkxpbmUsdGhyb3dFcnJvcihzLCJ0YWIgY2hhcmFjdGVycyBtdXN0IG5vdCBiZSB1c2VkIGluIGluZGVudGF0aW9uIikpLGE9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24rMSksXz1zLmxpbmUsNjMhPT1qJiY1OCE9PWp8fCFpc19XU19PUl9FT0woYSkpe2lmKHc9cy5saW5lLHg9cy5saW5lU3RhcnQsQz1zLnBvc2l0aW9uLCFjb21wb3NlTm9kZShzLGksMiwhMSwhMCkpYnJlYWs7aWYocy5saW5lPT09Xyl7Zm9yKGo9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pO2lzX1dISVRFX1NQQUNFKGopOylqPXMuaW5wdXQuY2hhckNvZGVBdCgrK3MucG9zaXRpb24pO2lmKDU4PT09ailpc19XU19PUl9FT0woaj1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKSl8fHRocm93RXJyb3IocywiYSB3aGl0ZXNwYWNlIGNoYXJhY3RlciBpcyBleHBlY3RlZCBhZnRlciB0aGUga2V5LXZhbHVlIHNlcGFyYXRvciB3aXRoaW4gYSBibG9jayBtYXBwaW5nIiksWiYmKHN0b3JlTWFwcGluZ1BhaXIocywkLFYsVSx6LG51bGwsdyx4LEMpLFU9ej1ZPW51bGwpLGVlPSEwLFo9ITEsdT0hMSxVPXMudGFnLHo9cy5yZXN1bHQ7ZWxzZXtpZighZWUpcmV0dXJuIHMudGFnPUwscy5hbmNob3I9QiwhMDt0aHJvd0Vycm9yKHMsImNhbiBub3QgcmVhZCBhbiBpbXBsaWNpdCBtYXBwaW5nIHBhaXI7IGEgY29sb24gaXMgbWlzc2VkIil9fWVsc2V7aWYoIWVlKXJldHVybiBzLnRhZz1MLHMuYW5jaG9yPUIsITA7dGhyb3dFcnJvcihzLCJjYW4gbm90IHJlYWQgYSBibG9jayBtYXBwaW5nIGVudHJ5OyBhIG11bHRpbGluZSBrZXkgbWF5IG5vdCBiZSBhbiBpbXBsaWNpdCBrZXkiKX19ZWxzZSA2Mz09PWo/KFomJihzdG9yZU1hcHBpbmdQYWlyKHMsJCxWLFUseixudWxsLHcseCxDKSxVPXo9WT1udWxsKSxlZT0hMCxaPSEwLHU9ITApOlo/KFo9ITEsdT0hMCk6dGhyb3dFcnJvcihzLCJpbmNvbXBsZXRlIGV4cGxpY2l0IG1hcHBpbmcgcGFpcjsgYSBrZXkgbm9kZSBpcyBtaXNzZWQ7IG9yIGZvbGxvd2VkIGJ5IGEgbm9uLXRhYnVsYXRlZCBlbXB0eSBsaW5lIikscy5wb3NpdGlvbis9MSxqPWE7aWYoKHMubGluZT09PV98fHMubGluZUluZGVudD5vKSYmKFomJih3PXMubGluZSx4PXMubGluZVN0YXJ0LEM9cy5wb3NpdGlvbiksY29tcG9zZU5vZGUocyxvLDQsITAsdSkmJihaP3o9cy5yZXN1bHQ6WT1zLnJlc3VsdCksWnx8KHN0b3JlTWFwcGluZ1BhaXIocywkLFYsVSx6LFksdyx4LEMpLFU9ej1ZPW51bGwpLHNraXBTZXBhcmF0aW9uU3BhY2UocywhMCwtMSksaj1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbikpLChzLmxpbmU9PT1ffHxzLmxpbmVJbmRlbnQ+bykmJjAhPT1qKXRocm93RXJyb3IocywiYmFkIGluZGVudGF0aW9uIG9mIGEgbWFwcGluZyBlbnRyeSIpO2Vsc2UgaWYocy5saW5lSW5kZW50PG8pYnJlYWt9cmV0dXJuIFomJnN0b3JlTWFwcGluZ1BhaXIocywkLFYsVSx6LG51bGwsdyx4LEMpLGVlJiYocy50YWc9TCxzLmFuY2hvcj1CLHMua2luZD0ibWFwcGluZyIscy5yZXN1bHQ9JCksZWV9KHMsViwkKSl8fGZ1bmN0aW9uIHJlYWRGbG93Q29sbGVjdGlvbihzLG8pe3ZhciBpLGEsdSxfLHcseCxDLGosTCxCLCQsVixVPSEwLHo9cy50YWcsWT1zLmFuY2hvcixaPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoOTE9PT0oVj1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbikpKXc9OTMsaj0hMSxfPVtdO2Vsc2V7aWYoMTIzIT09VilyZXR1cm4hMTt3PTEyNSxqPSEwLF89e319Zm9yKG51bGwhPT1zLmFuY2hvciYmKHMuYW5jaG9yTWFwW3MuYW5jaG9yXT1fKSxWPXMuaW5wdXQuY2hhckNvZGVBdCgrK3MucG9zaXRpb24pOzAhPT1WOyl7aWYoc2tpcFNlcGFyYXRpb25TcGFjZShzLCEwLG8pLChWPXMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uKSk9PT13KXJldHVybiBzLnBvc2l0aW9uKysscy50YWc9eixzLmFuY2hvcj1ZLHMua2luZD1qPyJtYXBwaW5nIjoic2VxdWVuY2UiLHMucmVzdWx0PV8sITA7VT80ND09PVYmJnRocm93RXJyb3IocywiZXhwZWN0ZWQgdGhlIG5vZGUgY29udGVudCwgYnV0IGZvdW5kICcsJyIpOnRocm93RXJyb3IocywibWlzc2VkIGNvbW1hIGJldHdlZW4gZmxvdyBjb2xsZWN0aW9uIGVudHJpZXMiKSwkPW51bGwseD1DPSExLDYzPT09ViYmaXNfV1NfT1JfRU9MKHMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uKzEpKSYmKHg9Qz0hMCxzLnBvc2l0aW9uKyssc2tpcFNlcGFyYXRpb25TcGFjZShzLCEwLG8pKSxpPXMubGluZSxhPXMubGluZVN0YXJ0LHU9cy5wb3NpdGlvbixjb21wb3NlTm9kZShzLG8sMSwhMSwhMCksQj1zLnRhZyxMPXMucmVzdWx0LHNraXBTZXBhcmF0aW9uU3BhY2UocywhMCxvKSxWPXMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uKSwhQyYmcy5saW5lIT09aXx8NTghPT1WfHwoeD0hMCxWPXMuaW5wdXQuY2hhckNvZGVBdCgrK3MucG9zaXRpb24pLHNraXBTZXBhcmF0aW9uU3BhY2UocywhMCxvKSxjb21wb3NlTm9kZShzLG8sMSwhMSwhMCksJD1zLnJlc3VsdCksaj9zdG9yZU1hcHBpbmdQYWlyKHMsXyxaLEIsTCwkLGksYSx1KTp4P18ucHVzaChzdG9yZU1hcHBpbmdQYWlyKHMsbnVsbCxaLEIsTCwkLGksYSx1KSk6Xy5wdXNoKEwpLHNraXBTZXBhcmF0aW9uU3BhY2UocywhMCxvKSw0ND09PShWPXMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uKSk/KFU9ITAsVj1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKSk6VT0hMX10aHJvd0Vycm9yKHMsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgZmxvdyBjb2xsZWN0aW9uIil9KHMsJCk/WT0hMDoodyYmZnVuY3Rpb24gcmVhZEJsb2NrU2NhbGFyKHMsbyl7dmFyIGksYSx1LF8sdyx4PTEsQz0hMSxqPSExLEw9byxCPTAsJD0hMTtpZigxMjQ9PT0oXz1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbikpKWE9ITE7ZWxzZXtpZig2MiE9PV8pcmV0dXJuITE7YT0hMH1mb3Iocy5raW5kPSJzY2FsYXIiLHMucmVzdWx0PSIiOzAhPT1fOylpZig0Mz09PShfPXMuaW5wdXQuY2hhckNvZGVBdCgrK3MucG9zaXRpb24pKXx8NDU9PT1fKTE9PT14P3g9NDM9PT1fPzM6Mjp0aHJvd0Vycm9yKHMsInJlcGVhdCBvZiBhIGNob21waW5nIG1vZGUgaWRlbnRpZmllciIpO2Vsc2V7aWYoISgodT00ODw9KHc9XykmJnc8PTU3P3ctNDg6LTEpPj0wKSlicmVhazswPT09dT90aHJvd0Vycm9yKHMsImJhZCBleHBsaWNpdCBpbmRlbnRhdGlvbiB3aWR0aCBvZiBhIGJsb2NrIHNjYWxhcjsgaXQgY2Fubm90IGJlIGxlc3MgdGhhbiBvbmUiKTpqP3Rocm93RXJyb3IocywicmVwZWF0IG9mIGFuIGluZGVudGF0aW9uIHdpZHRoIGlkZW50aWZpZXIiKTooTD1vK3UtMSxqPSEwKX1pZihpc19XSElURV9TUEFDRShfKSl7ZG97Xz1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKX13aGlsZShpc19XSElURV9TUEFDRShfKSk7aWYoMzU9PT1fKWRve189cy5pbnB1dC5jaGFyQ29kZUF0KCsrcy5wb3NpdGlvbil9d2hpbGUoIWlzX0VPTChfKSYmMCE9PV8pfWZvcig7MCE9PV87KXtmb3IocmVhZExpbmVCcmVhayhzKSxzLmxpbmVJbmRlbnQ9MCxfPXMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uKTsoIWp8fHMubGluZUluZGVudDxMKSYmMzI9PT1fOylzLmxpbmVJbmRlbnQrKyxfPXMuaW5wdXQuY2hhckNvZGVBdCgrK3MucG9zaXRpb24pO2lmKCFqJiZzLmxpbmVJbmRlbnQ+TCYmKEw9cy5saW5lSW5kZW50KSxpc19FT0woXykpQisrO2Vsc2V7aWYocy5saW5lSW5kZW50PEwpezM9PT14P3MucmVzdWx0Kz1lci5yZXBlYXQoIlxuIixDPzErQjpCKToxPT09eCYmQyYmKHMucmVzdWx0Kz0iXG4iKTticmVha31mb3IoYT9pc19XSElURV9TUEFDRShfKT8oJD0hMCxzLnJlc3VsdCs9ZXIucmVwZWF0KCJcbiIsQz8xK0I6QikpOiQ/KCQ9ITEscy5yZXN1bHQrPWVyLnJlcGVhdCgiXG4iLEIrMSkpOjA9PT1CP0MmJihzLnJlc3VsdCs9IiAiKTpzLnJlc3VsdCs9ZXIucmVwZWF0KCJcbiIsQik6cy5yZXN1bHQrPWVyLnJlcGVhdCgiXG4iLEM/MStCOkIpLEM9ITAsaj0hMCxCPTAsaT1zLnBvc2l0aW9uOyFpc19FT0woXykmJjAhPT1fOylfPXMuaW5wdXQuY2hhckNvZGVBdCgrK3MucG9zaXRpb24pO2NhcHR1cmVTZWdtZW50KHMsaSxzLnBvc2l0aW9uLCExKX19cmV0dXJuITB9KHMsJCl8fGZ1bmN0aW9uIHJlYWRTaW5nbGVRdW90ZWRTY2FsYXIocyxvKXt2YXIgaSxhLHU7aWYoMzkhPT0oaT1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbikpKXJldHVybiExO2ZvcihzLmtpbmQ9InNjYWxhciIscy5yZXN1bHQ9IiIscy5wb3NpdGlvbisrLGE9dT1zLnBvc2l0aW9uOzAhPT0oaT1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbikpOylpZigzOT09PWkpe2lmKGNhcHR1cmVTZWdtZW50KHMsYSxzLnBvc2l0aW9uLCEwKSwzOSE9PShpPXMuaW5wdXQuY2hhckNvZGVBdCgrK3MucG9zaXRpb24pKSlyZXR1cm4hMDthPXMucG9zaXRpb24scy5wb3NpdGlvbisrLHU9cy5wb3NpdGlvbn1lbHNlIGlzX0VPTChpKT8oY2FwdHVyZVNlZ21lbnQocyxhLHUsITApLHdyaXRlRm9sZGVkTGluZXMocyxza2lwU2VwYXJhdGlvblNwYWNlKHMsITEsbykpLGE9dT1zLnBvc2l0aW9uKTpzLnBvc2l0aW9uPT09cy5saW5lU3RhcnQmJnRlc3REb2N1bWVudFNlcGFyYXRvcihzKT90aHJvd0Vycm9yKHMsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBkb2N1bWVudCB3aXRoaW4gYSBzaW5nbGUgcXVvdGVkIHNjYWxhciIpOihzLnBvc2l0aW9uKyssdT1zLnBvc2l0aW9uKTt0aHJvd0Vycm9yKHMsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgc2luZ2xlIHF1b3RlZCBzY2FsYXIiKX0ocywkKXx8ZnVuY3Rpb24gcmVhZERvdWJsZVF1b3RlZFNjYWxhcihzLG8pe3ZhciBpLGEsdSxfLHcseCxDO2lmKDM0IT09KHg9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pKSlyZXR1cm4hMTtmb3Iocy5raW5kPSJzY2FsYXIiLHMucmVzdWx0PSIiLHMucG9zaXRpb24rKyxpPWE9cy5wb3NpdGlvbjswIT09KHg9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pKTspe2lmKDM0PT09eClyZXR1cm4gY2FwdHVyZVNlZ21lbnQocyxpLHMucG9zaXRpb24sITApLHMucG9zaXRpb24rKywhMDtpZig5Mj09PXgpe2lmKGNhcHR1cmVTZWdtZW50KHMsaSxzLnBvc2l0aW9uLCEwKSxpc19FT0woeD1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKSkpc2tpcFNlcGFyYXRpb25TcGFjZShzLCExLG8pO2Vsc2UgaWYoeDwyNTYmJnFyW3hdKXMucmVzdWx0Kz1Wclt4XSxzLnBvc2l0aW9uKys7ZWxzZSBpZigodz0xMjA9PT0oQz14KT8yOjExNz09PUM/NDo4NT09PUM/ODowKT4wKXtmb3IodT13LF89MDt1PjA7dS0tKSh3PWZyb21IZXhDb2RlKHg9cy5pbnB1dC5jaGFyQ29kZUF0KCsrcy5wb3NpdGlvbikpKT49MD9fPShfPDw0KSt3OnRocm93RXJyb3IocywiZXhwZWN0ZWQgaGV4YWRlY2ltYWwgY2hhcmFjdGVyIik7cy5yZXN1bHQrPWNoYXJGcm9tQ29kZXBvaW50KF8pLHMucG9zaXRpb24rK31lbHNlIHRocm93RXJyb3IocywidW5rbm93biBlc2NhcGUgc2VxdWVuY2UiKTtpPWE9cy5wb3NpdGlvbn1lbHNlIGlzX0VPTCh4KT8oY2FwdHVyZVNlZ21lbnQocyxpLGEsITApLHdyaXRlRm9sZGVkTGluZXMocyxza2lwU2VwYXJhdGlvblNwYWNlKHMsITEsbykpLGk9YT1zLnBvc2l0aW9uKTpzLnBvc2l0aW9uPT09cy5saW5lU3RhcnQmJnRlc3REb2N1bWVudFNlcGFyYXRvcihzKT90aHJvd0Vycm9yKHMsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBkb2N1bWVudCB3aXRoaW4gYSBkb3VibGUgcXVvdGVkIHNjYWxhciIpOihzLnBvc2l0aW9uKyssYT1zLnBvc2l0aW9uKX10aHJvd0Vycm9yKHMsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgZG91YmxlIHF1b3RlZCBzY2FsYXIiKX0ocywkKT9ZPSEwOiFmdW5jdGlvbiByZWFkQWxpYXMocyl7dmFyIG8saSxhO2lmKDQyIT09KGE9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pKSlyZXR1cm4hMTtmb3IoYT1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKSxvPXMucG9zaXRpb247MCE9PWEmJiFpc19XU19PUl9FT0woYSkmJiFpc19GTE9XX0lORElDQVRPUihhKTspYT1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKTtyZXR1cm4gcy5wb3NpdGlvbj09PW8mJnRocm93RXJyb3IocywibmFtZSBvZiBhbiBhbGlhcyBub2RlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyIiksaT1zLmlucHV0LnNsaWNlKG8scy5wb3NpdGlvbiksUnIuY2FsbChzLmFuY2hvck1hcCxpKXx8dGhyb3dFcnJvcihzLCd1bmlkZW50aWZpZWQgYWxpYXMgIicraSsnIicpLHMucmVzdWx0PXMuYW5jaG9yTWFwW2ldLHNraXBTZXBhcmF0aW9uU3BhY2UocywhMCwtMSksITB9KHMpP2Z1bmN0aW9uIHJlYWRQbGFpblNjYWxhcihzLG8saSl7dmFyIGEsdSxfLHcseCxDLGosTCxCPXMua2luZCwkPXMucmVzdWx0O2lmKGlzX1dTX09SX0VPTChMPXMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uKSl8fGlzX0ZMT1dfSU5ESUNBVE9SKEwpfHwzNT09PUx8fDM4PT09THx8NDI9PT1MfHwzMz09PUx8fDEyND09PUx8fDYyPT09THx8Mzk9PT1MfHwzND09PUx8fDM3PT09THx8NjQ9PT1MfHw5Nj09PUwpcmV0dXJuITE7aWYoKDYzPT09THx8NDU9PT1MKSYmKGlzX1dTX09SX0VPTChhPXMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uKzEpKXx8aSYmaXNfRkxPV19JTkRJQ0FUT1IoYSkpKXJldHVybiExO2ZvcihzLmtpbmQ9InNjYWxhciIscy5yZXN1bHQ9IiIsdT1fPXMucG9zaXRpb24sdz0hMTswIT09TDspe2lmKDU4PT09TCl7aWYoaXNfV1NfT1JfRU9MKGE9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24rMSkpfHxpJiZpc19GTE9XX0lORElDQVRPUihhKSlicmVha31lbHNlIGlmKDM1PT09TCl7aWYoaXNfV1NfT1JfRU9MKHMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uLTEpKSlicmVha31lbHNle2lmKHMucG9zaXRpb249PT1zLmxpbmVTdGFydCYmdGVzdERvY3VtZW50U2VwYXJhdG9yKHMpfHxpJiZpc19GTE9XX0lORElDQVRPUihMKSlicmVhaztpZihpc19FT0woTCkpe2lmKHg9cy5saW5lLEM9cy5saW5lU3RhcnQsaj1zLmxpbmVJbmRlbnQsc2tpcFNlcGFyYXRpb25TcGFjZShzLCExLC0xKSxzLmxpbmVJbmRlbnQ+PW8pe3c9ITAsTD1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbik7Y29udGludWV9cy5wb3NpdGlvbj1fLHMubGluZT14LHMubGluZVN0YXJ0PUMscy5saW5lSW5kZW50PWo7YnJlYWt9fXcmJihjYXB0dXJlU2VnbWVudChzLHUsXywhMSksd3JpdGVGb2xkZWRMaW5lcyhzLHMubGluZS14KSx1PV89cy5wb3NpdGlvbix3PSExKSxpc19XSElURV9TUEFDRShMKXx8KF89cy5wb3NpdGlvbisxKSxMPXMuaW5wdXQuY2hhckNvZGVBdCgrK3MucG9zaXRpb24pfXJldHVybiBjYXB0dXJlU2VnbWVudChzLHUsXywhMSksISFzLnJlc3VsdHx8KHMua2luZD1CLHMucmVzdWx0PSQsITEpfShzLCQsMT09PWkpJiYoWT0hMCxudWxsPT09cy50YWcmJihzLnRhZz0iPyIpKTooWT0hMCxudWxsPT09cy50YWcmJm51bGw9PT1zLmFuY2hvcnx8dGhyb3dFcnJvcihzLCJhbGlhcyBub2RlIHNob3VsZCBub3QgaGF2ZSBhbnkgcHJvcGVydGllcyIpKSxudWxsIT09cy5hbmNob3ImJihzLmFuY2hvck1hcFtzLmFuY2hvcl09cy5yZXN1bHQpKTowPT09VSYmKFk9eCYmcmVhZEJsb2NrU2VxdWVuY2UocyxWKSkpLG51bGw9PT1zLnRhZyludWxsIT09cy5hbmNob3ImJihzLmFuY2hvck1hcFtzLmFuY2hvcl09cy5yZXN1bHQpO2Vsc2UgaWYoIj8iPT09cy50YWcpe2ZvcihudWxsIT09cy5yZXN1bHQmJiJzY2FsYXIiIT09cy5raW5kJiZ0aHJvd0Vycm9yKHMsJ3VuYWNjZXB0YWJsZSBub2RlIGtpbmQgZm9yICE8Pz4gdGFnOyBpdCBzaG91bGQgYmUgInNjYWxhciIsIG5vdCAiJytzLmtpbmQrJyInKSxDPTAsaj1zLmltcGxpY2l0VHlwZXMubGVuZ3RoO0M8ajtDKz0xKWlmKChCPXMuaW1wbGljaXRUeXBlc1tDXSkucmVzb2x2ZShzLnJlc3VsdCkpe3MucmVzdWx0PUIuY29uc3RydWN0KHMucmVzdWx0KSxzLnRhZz1CLnRhZyxudWxsIT09cy5hbmNob3ImJihzLmFuY2hvck1hcFtzLmFuY2hvcl09cy5yZXN1bHQpO2JyZWFrfX1lbHNlIGlmKCIhIiE9PXMudGFnKXtpZihSci5jYWxsKHMudHlwZU1hcFtzLmtpbmR8fCJmYWxsYmFjayJdLHMudGFnKSlCPXMudHlwZU1hcFtzLmtpbmR8fCJmYWxsYmFjayJdW3MudGFnXTtlbHNlIGZvcihCPW51bGwsQz0wLGo9KEw9cy50eXBlTWFwLm11bHRpW3Mua2luZHx8ImZhbGxiYWNrIl0pLmxlbmd0aDtDPGo7Qys9MSlpZihzLnRhZy5zbGljZSgwLExbQ10udGFnLmxlbmd0aCk9PT1MW0NdLnRhZyl7Qj1MW0NdO2JyZWFrfUJ8fHRocm93RXJyb3IocywidW5rbm93biB0YWcgITwiK3MudGFnKyI+IiksbnVsbCE9PXMucmVzdWx0JiZCLmtpbmQhPT1zLmtpbmQmJnRocm93RXJyb3IocywidW5hY2NlcHRhYmxlIG5vZGUga2luZCBmb3IgITwiK3MudGFnKyc+IHRhZzsgaXQgc2hvdWxkIGJlICInK0Iua2luZCsnIiwgbm90ICInK3Mua2luZCsnIicpLEIucmVzb2x2ZShzLnJlc3VsdCxzLnRhZyk/KHMucmVzdWx0PUIuY29uc3RydWN0KHMucmVzdWx0LHMudGFnKSxudWxsIT09cy5hbmNob3ImJihzLmFuY2hvck1hcFtzLmFuY2hvcl09cy5yZXN1bHQpKTp0aHJvd0Vycm9yKHMsImNhbm5vdCByZXNvbHZlIGEgbm9kZSB3aXRoICE8IitzLnRhZysiPiBleHBsaWNpdCB0YWciKX1yZXR1cm4gbnVsbCE9PXMubGlzdGVuZXImJnMubGlzdGVuZXIoImNsb3NlIixzKSxudWxsIT09cy50YWd8fG51bGwhPT1zLmFuY2hvcnx8WX1mdW5jdGlvbiByZWFkRG9jdW1lbnQocyl7dmFyIG8saSxhLHUsXz1zLnBvc2l0aW9uLHc9ITE7Zm9yKHMudmVyc2lvbj1udWxsLHMuY2hlY2tMaW5lQnJlYWtzPXMubGVnYWN5LHMudGFnTWFwPU9iamVjdC5jcmVhdGUobnVsbCkscy5hbmNob3JNYXA9T2JqZWN0LmNyZWF0ZShudWxsKTswIT09KHU9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pKSYmKHNraXBTZXBhcmF0aW9uU3BhY2UocywhMCwtMSksdT1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbiksIShzLmxpbmVJbmRlbnQ+MHx8MzchPT11KSk7KXtmb3Iodz0hMCx1PXMuaW5wdXQuY2hhckNvZGVBdCgrK3MucG9zaXRpb24pLG89cy5wb3NpdGlvbjswIT09dSYmIWlzX1dTX09SX0VPTCh1KTspdT1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKTtmb3IoYT1bXSwoaT1zLmlucHV0LnNsaWNlKG8scy5wb3NpdGlvbikpLmxlbmd0aDwxJiZ0aHJvd0Vycm9yKHMsImRpcmVjdGl2ZSBuYW1lIG11c3Qgbm90IGJlIGxlc3MgdGhhbiBvbmUgY2hhcmFjdGVyIGluIGxlbmd0aCIpOzAhPT11Oyl7Zm9yKDtpc19XSElURV9TUEFDRSh1KTspdT1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKTtpZigzNT09PXUpe2Rve3U9cy5pbnB1dC5jaGFyQ29kZUF0KCsrcy5wb3NpdGlvbil9d2hpbGUoMCE9PXUmJiFpc19FT0wodSkpO2JyZWFrfWlmKGlzX0VPTCh1KSlicmVhaztmb3Iobz1zLnBvc2l0aW9uOzAhPT11JiYhaXNfV1NfT1JfRU9MKHUpOyl1PXMuaW5wdXQuY2hhckNvZGVBdCgrK3MucG9zaXRpb24pO2EucHVzaChzLmlucHV0LnNsaWNlKG8scy5wb3NpdGlvbikpfTAhPT11JiZyZWFkTGluZUJyZWFrKHMpLFJyLmNhbGwoenIsaSk/enJbaV0ocyxpLGEpOnRocm93V2FybmluZyhzLCd1bmtub3duIGRvY3VtZW50IGRpcmVjdGl2ZSAiJytpKyciJyl9c2tpcFNlcGFyYXRpb25TcGFjZShzLCEwLC0xKSwwPT09cy5saW5lSW5kZW50JiY0NT09PXMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uKSYmNDU9PT1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbisxKSYmNDU9PT1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbisyKT8ocy5wb3NpdGlvbis9Myxza2lwU2VwYXJhdGlvblNwYWNlKHMsITAsLTEpKTp3JiZ0aHJvd0Vycm9yKHMsImRpcmVjdGl2ZXMgZW5kIG1hcmsgaXMgZXhwZWN0ZWQiKSxjb21wb3NlTm9kZShzLHMubGluZUluZGVudC0xLDQsITEsITApLHNraXBTZXBhcmF0aW9uU3BhY2UocywhMCwtMSkscy5jaGVja0xpbmVCcmVha3MmJkxyLnRlc3Qocy5pbnB1dC5zbGljZShfLHMucG9zaXRpb24pKSYmdGhyb3dXYXJuaW5nKHMsIm5vbi1BU0NJSSBsaW5lIGJyZWFrcyBhcmUgaW50ZXJwcmV0ZWQgYXMgY29udGVudCIpLHMuZG9jdW1lbnRzLnB1c2gocy5yZXN1bHQpLHMucG9zaXRpb249PT1zLmxpbmVTdGFydCYmdGVzdERvY3VtZW50U2VwYXJhdG9yKHMpPzQ2PT09cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pJiYocy5wb3NpdGlvbis9Myxza2lwU2VwYXJhdGlvblNwYWNlKHMsITAsLTEpKTpzLnBvc2l0aW9uPHMubGVuZ3RoLTEmJnRocm93RXJyb3IocywiZW5kIG9mIHRoZSBzdHJlYW0gb3IgYSBkb2N1bWVudCBzZXBhcmF0b3IgaXMgZXhwZWN0ZWQiKX1mdW5jdGlvbiBsb2FkRG9jdW1lbnRzKHMsbyl7bz1vfHx7fSwwIT09KHM9U3RyaW5nKHMpKS5sZW5ndGgmJigxMCE9PXMuY2hhckNvZGVBdChzLmxlbmd0aC0xKSYmMTMhPT1zLmNoYXJDb2RlQXQocy5sZW5ndGgtMSkmJihzKz0iXG4iKSw2NTI3OT09PXMuY2hhckNvZGVBdCgwKSYmKHM9cy5zbGljZSgxKSkpO3ZhciBpPW5ldyBTdGF0ZSQxKHMsbyksYT1zLmluZGV4T2YoIlwwIik7Zm9yKC0xIT09YSYmKGkucG9zaXRpb249YSx0aHJvd0Vycm9yKGksIm51bGwgYnl0ZSBpcyBub3QgYWxsb3dlZCBpbiBpbnB1dCIpKSxpLmlucHV0Kz0iXDAiOzMyPT09aS5pbnB1dC5jaGFyQ29kZUF0KGkucG9zaXRpb24pOylpLmxpbmVJbmRlbnQrPTEsaS5wb3NpdGlvbis9MTtmb3IoO2kucG9zaXRpb248aS5sZW5ndGgtMTspcmVhZERvY3VtZW50KGkpO3JldHVybiBpLmRvY3VtZW50c312YXIgV3I9e2xvYWRBbGw6ZnVuY3Rpb24gbG9hZEFsbCQxKHMsbyxpKXtudWxsIT09byYmIm9iamVjdCI9PXR5cGVvZiBvJiZ2b2lkIDA9PT1pJiYoaT1vLG89bnVsbCk7dmFyIGE9bG9hZERvY3VtZW50cyhzLGkpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBvKXJldHVybiBhO2Zvcih2YXIgdT0wLF89YS5sZW5ndGg7dTxfO3UrPTEpbyhhW3VdKX0sbG9hZDpmdW5jdGlvbiBsb2FkJDEocyxvKXt2YXIgaT1sb2FkRG9jdW1lbnRzKHMsbyk7aWYoMCE9PWkubGVuZ3RoKXtpZigxPT09aS5sZW5ndGgpcmV0dXJuIGlbMF07dGhyb3cgbmV3IHRyKCJleHBlY3RlZCBhIHNpbmdsZSBkb2N1bWVudCBpbiB0aGUgc3RyZWFtLCBidXQgZm91bmQgbW9yZSIpfX19LEpyPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsSHI9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxLcj02NTI3OSxHcj17MDoiXFwwIiw3OiJcXGEiLDg6IlxcYiIsOToiXFx0IiwxMDoiXFxuIiwxMToiXFx2IiwxMjoiXFxmIiwxMzoiXFxyIiwyNzoiXFxlIiwzNDonXFwiJyw5MjoiXFxcXCIsMTMzOiJcXE4iLDE2MDoiXFxfIiw4MjMyOiJcXEwiLDgyMzM6IlxcUCJ9LFlyPVsieSIsIlkiLCJ5ZXMiLCJZZXMiLCJZRVMiLCJvbiIsIk9uIiwiT04iLCJuIiwiTiIsIm5vIiwiTm8iLCJOTyIsIm9mZiIsIk9mZiIsIk9GRiJdLFhyPS9eWy0rXT9bMC05X10rKD86OlswLTlfXSspKyg/OlwuWzAtOV9dKik/JC87ZnVuY3Rpb24gZW5jb2RlSGV4KHMpe3ZhciBvLGksYTtpZihvPXMudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCksczw9MjU1KWk9IngiLGE9MjtlbHNlIGlmKHM8PTY1NTM1KWk9InUiLGE9NDtlbHNle2lmKCEoczw9NDI5NDk2NzI5NSkpdGhyb3cgbmV3IHRyKCJjb2RlIHBvaW50IHdpdGhpbiBhIHN0cmluZyBtYXkgbm90IGJlIGdyZWF0ZXIgdGhhbiAweEZGRkZGRkZGIik7aT0iVSIsYT04fXJldHVybiJcXCIraStlci5yZXBlYXQoIjAiLGEtby5sZW5ndGgpK299ZnVuY3Rpb24gU3RhdGUocyl7dGhpcy5zY2hlbWE9cy5zY2hlbWF8fE1yLHRoaXMuaW5kZW50PU1hdGgubWF4KDEscy5pbmRlbnR8fDIpLHRoaXMubm9BcnJheUluZGVudD1zLm5vQXJyYXlJbmRlbnR8fCExLHRoaXMuc2tpcEludmFsaWQ9cy5za2lwSW52YWxpZHx8ITEsdGhpcy5mbG93TGV2ZWw9ZXIuaXNOb3RoaW5nKHMuZmxvd0xldmVsKT8tMTpzLmZsb3dMZXZlbCx0aGlzLnN0eWxlTWFwPWZ1bmN0aW9uIGNvbXBpbGVTdHlsZU1hcChzLG8pe3ZhciBpLGEsdSxfLHcseCxDO2lmKG51bGw9PT1vKXJldHVybnt9O2ZvcihpPXt9LHU9MCxfPShhPU9iamVjdC5rZXlzKG8pKS5sZW5ndGg7dTxfO3UrPTEpdz1hW3VdLHg9U3RyaW5nKG9bd10pLCIhISI9PT13LnNsaWNlKDAsMikmJih3PSJ0YWc6eWFtbC5vcmcsMjAwMjoiK3cuc2xpY2UoMikpLChDPXMuY29tcGlsZWRUeXBlTWFwLmZhbGxiYWNrW3ddKSYmSHIuY2FsbChDLnN0eWxlQWxpYXNlcyx4KSYmKHg9Qy5zdHlsZUFsaWFzZXNbeF0pLGlbd109eDtyZXR1cm4gaX0odGhpcy5zY2hlbWEscy5zdHlsZXN8fG51bGwpLHRoaXMuc29ydEtleXM9cy5zb3J0S2V5c3x8ITEsdGhpcy5saW5lV2lkdGg9cy5saW5lV2lkdGh8fDgwLHRoaXMubm9SZWZzPXMubm9SZWZzfHwhMSx0aGlzLm5vQ29tcGF0TW9kZT1zLm5vQ29tcGF0TW9kZXx8ITEsdGhpcy5jb25kZW5zZUZsb3c9cy5jb25kZW5zZUZsb3d8fCExLHRoaXMucXVvdGluZ1R5cGU9JyInPT09cy5xdW90aW5nVHlwZT8yOjEsdGhpcy5mb3JjZVF1b3Rlcz1zLmZvcmNlUXVvdGVzfHwhMSx0aGlzLnJlcGxhY2VyPSJmdW5jdGlvbiI9PXR5cGVvZiBzLnJlcGxhY2VyP3MucmVwbGFjZXI6bnVsbCx0aGlzLmltcGxpY2l0VHlwZXM9dGhpcy5zY2hlbWEuY29tcGlsZWRJbXBsaWNpdCx0aGlzLmV4cGxpY2l0VHlwZXM9dGhpcy5zY2hlbWEuY29tcGlsZWRFeHBsaWNpdCx0aGlzLnRhZz1udWxsLHRoaXMucmVzdWx0PSIiLHRoaXMuZHVwbGljYXRlcz1bXSx0aGlzLnVzZWREdXBsaWNhdGVzPW51bGx9ZnVuY3Rpb24gaW5kZW50U3RyaW5nKHMsbyl7Zm9yKHZhciBpLGE9ZXIucmVwZWF0KCIgIixvKSx1PTAsXz0tMSx3PSIiLHg9cy5sZW5ndGg7dTx4OyktMT09PShfPXMuaW5kZXhPZigiXG4iLHUpKT8oaT1zLnNsaWNlKHUpLHU9eCk6KGk9cy5zbGljZSh1LF8rMSksdT1fKzEpLGkubGVuZ3RoJiYiXG4iIT09aSYmKHcrPWEpLHcrPWk7cmV0dXJuIHd9ZnVuY3Rpb24gZ2VuZXJhdGVOZXh0TGluZShzLG8pe3JldHVybiJcbiIrZXIucmVwZWF0KCIgIixzLmluZGVudCpvKX1mdW5jdGlvbiBpc1doaXRlc3BhY2Uocyl7cmV0dXJuIDMyPT09c3x8OT09PXN9ZnVuY3Rpb24gaXNQcmludGFibGUocyl7cmV0dXJuIDMyPD1zJiZzPD0xMjZ8fDE2MTw9cyYmczw9NTUyOTUmJjgyMzIhPT1zJiY4MjMzIT09c3x8NTczNDQ8PXMmJnM8PTY1NTMzJiZzIT09S3J8fDY1NTM2PD1zJiZzPD0xMTE0MTExfWZ1bmN0aW9uIGlzTnNDaGFyT3JXaGl0ZXNwYWNlKHMpe3JldHVybiBpc1ByaW50YWJsZShzKSYmcyE9PUtyJiYxMyE9PXMmJjEwIT09c31mdW5jdGlvbiBpc1BsYWluU2FmZShzLG8saSl7dmFyIGE9aXNOc0NoYXJPcldoaXRlc3BhY2UocyksdT1hJiYhaXNXaGl0ZXNwYWNlKHMpO3JldHVybihpP2E6YSYmNDQhPT1zJiY5MSE9PXMmJjkzIT09cyYmMTIzIT09cyYmMTI1IT09cykmJjM1IT09cyYmISg1OD09PW8mJiF1KXx8aXNOc0NoYXJPcldoaXRlc3BhY2UobykmJiFpc1doaXRlc3BhY2UobykmJjM1PT09c3x8NTg9PT1vJiZ1fWZ1bmN0aW9uIGNvZGVQb2ludEF0KHMsbyl7dmFyIGksYT1zLmNoYXJDb2RlQXQobyk7cmV0dXJuIGE+PTU1Mjk2JiZhPD01NjMxOSYmbysxPHMubGVuZ3RoJiYoaT1zLmNoYXJDb2RlQXQobysxKSk+PTU2MzIwJiZpPD01NzM0Mz8xMDI0KihhLTU1Mjk2KStpLTU2MzIwKzY1NTM2OmF9ZnVuY3Rpb24gbmVlZEluZGVudEluZGljYXRvcihzKXtyZXR1cm4vXlxuKiAvLnRlc3Qocyl9ZnVuY3Rpb24gY2hvb3NlU2NhbGFyU3R5bGUocyxvLGksYSx1LF8sdyx4KXt2YXIgQyxqPTAsTD1udWxsLEI9ITEsJD0hMSxWPS0xIT09YSxVPS0xLHo9ZnVuY3Rpb24gaXNQbGFpblNhZmVGaXJzdChzKXtyZXR1cm4gaXNQcmludGFibGUocykmJnMhPT1LciYmIWlzV2hpdGVzcGFjZShzKSYmNDUhPT1zJiY2MyE9PXMmJjU4IT09cyYmNDQhPT1zJiY5MSE9PXMmJjkzIT09cyYmMTIzIT09cyYmMTI1IT09cyYmMzUhPT1zJiYzOCE9PXMmJjQyIT09cyYmMzMhPT1zJiYxMjQhPT1zJiY2MSE9PXMmJjYyIT09cyYmMzkhPT1zJiYzNCE9PXMmJjM3IT09cyYmNjQhPT1zJiY5NiE9PXN9KGNvZGVQb2ludEF0KHMsMCkpJiZmdW5jdGlvbiBpc1BsYWluU2FmZUxhc3Qocyl7cmV0dXJuIWlzV2hpdGVzcGFjZShzKSYmNTghPT1zfShjb2RlUG9pbnRBdChzLHMubGVuZ3RoLTEpKTtpZihvfHx3KWZvcihDPTA7QzxzLmxlbmd0aDtqPj02NTUzNj9DKz0yOkMrKyl7aWYoIWlzUHJpbnRhYmxlKGo9Y29kZVBvaW50QXQocyxDKSkpcmV0dXJuIDU7ej16JiZpc1BsYWluU2FmZShqLEwseCksTD1qfWVsc2V7Zm9yKEM9MDtDPHMubGVuZ3RoO2o+PTY1NTM2P0MrPTI6QysrKXtpZigxMD09PShqPWNvZGVQb2ludEF0KHMsQykpKUI9ITAsViYmKCQ9JHx8Qy1VLTE+YSYmIiAiIT09c1tVKzFdLFU9Qyk7ZWxzZSBpZighaXNQcmludGFibGUoaikpcmV0dXJuIDU7ej16JiZpc1BsYWluU2FmZShqLEwseCksTD1qfSQ9JHx8ViYmQy1VLTE+YSYmIiAiIT09c1tVKzFdfXJldHVybiBCfHwkP2k+OSYmbmVlZEluZGVudEluZGljYXRvcihzKT81Onc/Mj09PV8/NToyOiQ/NDozOiF6fHx3fHx1KHMpPzI9PT1fPzU6MjoxfWZ1bmN0aW9uIHdyaXRlU2NhbGFyKHMsbyxpLGEsdSl7cy5kdW1wPWZ1bmN0aW9uKCl7aWYoMD09PW8ubGVuZ3RoKXJldHVybiAyPT09cy5xdW90aW5nVHlwZT8nIiInOiInJyI7aWYoIXMubm9Db21wYXRNb2RlJiYoLTEhPT1Zci5pbmRleE9mKG8pfHxYci50ZXN0KG8pKSlyZXR1cm4gMj09PXMucXVvdGluZ1R5cGU/JyInK28rJyInOiInIitvKyInIjt2YXIgXz1zLmluZGVudCpNYXRoLm1heCgxLGkpLHc9LTE9PT1zLmxpbmVXaWR0aD8tMTpNYXRoLm1heChNYXRoLm1pbihzLmxpbmVXaWR0aCw0MCkscy5saW5lV2lkdGgtXykseD1hfHxzLmZsb3dMZXZlbD4tMSYmaT49cy5mbG93TGV2ZWw7c3dpdGNoKGNob29zZVNjYWxhclN0eWxlKG8seCxzLmluZGVudCx3LChmdW5jdGlvbiB0ZXN0QW1iaWd1aXR5KG8pe3JldHVybiBmdW5jdGlvbiB0ZXN0SW1wbGljaXRSZXNvbHZpbmcocyxvKXt2YXIgaSxhO2ZvcihpPTAsYT1zLmltcGxpY2l0VHlwZXMubGVuZ3RoO2k8YTtpKz0xKWlmKHMuaW1wbGljaXRUeXBlc1tpXS5yZXNvbHZlKG8pKXJldHVybiEwO3JldHVybiExfShzLG8pfSkscy5xdW90aW5nVHlwZSxzLmZvcmNlUXVvdGVzJiYhYSx1KSl7Y2FzZSAxOnJldHVybiBvO2Nhc2UgMjpyZXR1cm4iJyIrby5yZXBsYWNlKC8nL2csIicnIikrIiciO2Nhc2UgMzpyZXR1cm4ifCIrYmxvY2tIZWFkZXIobyxzLmluZGVudCkrZHJvcEVuZGluZ05ld2xpbmUoaW5kZW50U3RyaW5nKG8sXykpO2Nhc2UgNDpyZXR1cm4iPiIrYmxvY2tIZWFkZXIobyxzLmluZGVudCkrZHJvcEVuZGluZ05ld2xpbmUoaW5kZW50U3RyaW5nKGZ1bmN0aW9uIGZvbGRTdHJpbmcocyxvKXt2YXIgaSxhLHU9LyhcbispKFteXG5dKikvZyxfPSh4PXMuaW5kZXhPZigiXG4iKSx4PS0xIT09eD94OnMubGVuZ3RoLHUubGFzdEluZGV4PXgsZm9sZExpbmUocy5zbGljZSgwLHgpLG8pKSx3PSJcbiI9PT1zWzBdfHwiICI9PT1zWzBdO3ZhciB4O2Zvcig7YT11LmV4ZWMocyk7KXt2YXIgQz1hWzFdLGo9YVsyXTtpPSIgIj09PWpbMF0sXys9Qysod3x8aXx8IiI9PT1qPyIiOiJcbiIpK2ZvbGRMaW5lKGosbyksdz1pfXJldHVybiBffShvLHcpLF8pKTtjYXNlIDU6cmV0dXJuJyInK2Z1bmN0aW9uIGVzY2FwZVN0cmluZyhzKXtmb3IodmFyIG8saT0iIixhPTAsdT0wO3U8cy5sZW5ndGg7YT49NjU1MzY/dSs9Mjp1KyspYT1jb2RlUG9pbnRBdChzLHUpLCEobz1HclthXSkmJmlzUHJpbnRhYmxlKGEpPyhpKz1zW3VdLGE+PTY1NTM2JiYoaSs9c1t1KzFdKSk6aSs9b3x8ZW5jb2RlSGV4KGEpO3JldHVybiBpfShvKSsnIic7ZGVmYXVsdDp0aHJvdyBuZXcgdHIoImltcG9zc2libGUgZXJyb3I6IGludmFsaWQgc2NhbGFyIHN0eWxlIil9fSgpfWZ1bmN0aW9uIGJsb2NrSGVhZGVyKHMsbyl7dmFyIGk9bmVlZEluZGVudEluZGljYXRvcihzKT9TdHJpbmcobyk6IiIsYT0iXG4iPT09c1tzLmxlbmd0aC0xXTtyZXR1cm4gaSsoYSYmKCJcbiI9PT1zW3MubGVuZ3RoLTJdfHwiXG4iPT09cyk/IisiOmE/IiI6Ii0iKSsiXG4ifWZ1bmN0aW9uIGRyb3BFbmRpbmdOZXdsaW5lKHMpe3JldHVybiJcbiI9PT1zW3MubGVuZ3RoLTFdP3Muc2xpY2UoMCwtMSk6c31mdW5jdGlvbiBmb2xkTGluZShzLG8pe2lmKCIiPT09c3x8IiAiPT09c1swXSlyZXR1cm4gcztmb3IodmFyIGksYSx1PS8gW14gXS9nLF89MCx3PTAseD0wLEM9IiI7aT11LmV4ZWMocyk7KSh4PWkuaW5kZXgpLV8+byYmKGE9dz5fP3c6eCxDKz0iXG4iK3Muc2xpY2UoXyxhKSxfPWErMSksdz14O3JldHVybiBDKz0iXG4iLHMubGVuZ3RoLV8+byYmdz5fP0MrPXMuc2xpY2UoXyx3KSsiXG4iK3Muc2xpY2UodysxKTpDKz1zLnNsaWNlKF8pLEMuc2xpY2UoMSl9ZnVuY3Rpb24gd3JpdGVCbG9ja1NlcXVlbmNlKHMsbyxpLGEpe3ZhciB1LF8sdyx4PSIiLEM9cy50YWc7Zm9yKHU9MCxfPWkubGVuZ3RoO3U8Xzt1Kz0xKXc9aVt1XSxzLnJlcGxhY2VyJiYodz1zLnJlcGxhY2VyLmNhbGwoaSxTdHJpbmcodSksdykpLCh3cml0ZU5vZGUocyxvKzEsdywhMCwhMCwhMSwhMCl8fHZvaWQgMD09PXcmJndyaXRlTm9kZShzLG8rMSxudWxsLCEwLCEwLCExLCEwKSkmJihhJiYiIj09PXh8fCh4Kz1nZW5lcmF0ZU5leHRMaW5lKHMsbykpLHMuZHVtcCYmMTA9PT1zLmR1bXAuY2hhckNvZGVBdCgwKT94Kz0iLSI6eCs9Ii0gIix4Kz1zLmR1bXApO3MudGFnPUMscy5kdW1wPXh8fCJbXSJ9ZnVuY3Rpb24gZGV0ZWN0VHlwZShzLG8saSl7dmFyIGEsdSxfLHcseCxDO2ZvcihfPTAsdz0odT1pP3MuZXhwbGljaXRUeXBlczpzLmltcGxpY2l0VHlwZXMpLmxlbmd0aDtfPHc7Xys9MSlpZigoKHg9dVtfXSkuaW5zdGFuY2VPZnx8eC5wcmVkaWNhdGUpJiYoIXguaW5zdGFuY2VPZnx8Im9iamVjdCI9PXR5cGVvZiBvJiZvIGluc3RhbmNlb2YgeC5pbnN0YW5jZU9mKSYmKCF4LnByZWRpY2F0ZXx8eC5wcmVkaWNhdGUobykpKXtpZihpP3gubXVsdGkmJngucmVwcmVzZW50TmFtZT9zLnRhZz14LnJlcHJlc2VudE5hbWUobyk6cy50YWc9eC50YWc6cy50YWc9Ij8iLHgucmVwcmVzZW50KXtpZihDPXMuc3R5bGVNYXBbeC50YWddfHx4LmRlZmF1bHRTdHlsZSwiW29iamVjdCBGdW5jdGlvbl0iPT09SnIuY2FsbCh4LnJlcHJlc2VudCkpYT14LnJlcHJlc2VudChvLEMpO2Vsc2V7aWYoIUhyLmNhbGwoeC5yZXByZXNlbnQsQykpdGhyb3cgbmV3IHRyKCIhPCIreC50YWcrJz4gdGFnIHJlc29sdmVyIGFjY2VwdHMgbm90ICInK0MrJyIgc3R5bGUnKTthPXgucmVwcmVzZW50W0NdKG8sQyl9cy5kdW1wPWF9cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gd3JpdGVOb2RlKHMsbyxpLGEsdSxfLHcpe3MudGFnPW51bGwscy5kdW1wPWksZGV0ZWN0VHlwZShzLGksITEpfHxkZXRlY3RUeXBlKHMsaSwhMCk7dmFyIHgsQz1Kci5jYWxsKHMuZHVtcCksaj1hO2EmJihhPXMuZmxvd0xldmVsPDB8fHMuZmxvd0xldmVsPm8pO3ZhciBMLEIsJD0iW29iamVjdCBPYmplY3RdIj09PUN8fCJbb2JqZWN0IEFycmF5XSI9PT1DO2lmKCQmJihCPS0xIT09KEw9cy5kdXBsaWNhdGVzLmluZGV4T2YoaSkpKSwobnVsbCE9PXMudGFnJiYiPyIhPT1zLnRhZ3x8Qnx8MiE9PXMuaW5kZW50JiZvPjApJiYodT0hMSksQiYmcy51c2VkRHVwbGljYXRlc1tMXSlzLmR1bXA9IipyZWZfIitMO2Vsc2V7aWYoJCYmQiYmIXMudXNlZER1cGxpY2F0ZXNbTF0mJihzLnVzZWREdXBsaWNhdGVzW0xdPSEwKSwiW29iamVjdCBPYmplY3RdIj09PUMpYSYmMCE9PU9iamVjdC5rZXlzKHMuZHVtcCkubGVuZ3RoPyghZnVuY3Rpb24gd3JpdGVCbG9ja01hcHBpbmcocyxvLGksYSl7dmFyIHUsXyx3LHgsQyxqLEw9IiIsQj1zLnRhZywkPU9iamVjdC5rZXlzKGkpO2lmKCEwPT09cy5zb3J0S2V5cykkLnNvcnQoKTtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBzLnNvcnRLZXlzKSQuc29ydChzLnNvcnRLZXlzKTtlbHNlIGlmKHMuc29ydEtleXMpdGhyb3cgbmV3IHRyKCJzb3J0S2V5cyBtdXN0IGJlIGEgYm9vbGVhbiBvciBhIGZ1bmN0aW9uIik7Zm9yKHU9MCxfPSQubGVuZ3RoO3U8Xzt1Kz0xKWo9IiIsYSYmIiI9PT1MfHwoais9Z2VuZXJhdGVOZXh0TGluZShzLG8pKSx4PWlbdz0kW3VdXSxzLnJlcGxhY2VyJiYoeD1zLnJlcGxhY2VyLmNhbGwoaSx3LHgpKSx3cml0ZU5vZGUocyxvKzEsdywhMCwhMCwhMCkmJigoQz1udWxsIT09cy50YWcmJiI/IiE9PXMudGFnfHxzLmR1bXAmJnMuZHVtcC5sZW5ndGg+MTAyNCkmJihzLmR1bXAmJjEwPT09cy5kdW1wLmNoYXJDb2RlQXQoMCk/ais9Ij8iOmorPSI/ICIpLGorPXMuZHVtcCxDJiYoais9Z2VuZXJhdGVOZXh0TGluZShzLG8pKSx3cml0ZU5vZGUocyxvKzEseCwhMCxDKSYmKHMuZHVtcCYmMTA9PT1zLmR1bXAuY2hhckNvZGVBdCgwKT9qKz0iOiI6ais9IjogIixMKz1qKz1zLmR1bXApKTtzLnRhZz1CLHMuZHVtcD1MfHwie30ifShzLG8scy5kdW1wLHUpLEImJihzLmR1bXA9IiZyZWZfIitMK3MuZHVtcCkpOighZnVuY3Rpb24gd3JpdGVGbG93TWFwcGluZyhzLG8saSl7dmFyIGEsdSxfLHcseCxDPSIiLGo9cy50YWcsTD1PYmplY3Qua2V5cyhpKTtmb3IoYT0wLHU9TC5sZW5ndGg7YTx1O2ErPTEpeD0iIiwiIiE9PUMmJih4Kz0iLCAiKSxzLmNvbmRlbnNlRmxvdyYmKHgrPSciJyksdz1pW189TFthXV0scy5yZXBsYWNlciYmKHc9cy5yZXBsYWNlci5jYWxsKGksXyx3KSksd3JpdGVOb2RlKHMsbyxfLCExLCExKSYmKHMuZHVtcC5sZW5ndGg+MTAyNCYmKHgrPSI/ICIpLHgrPXMuZHVtcCsocy5jb25kZW5zZUZsb3c/JyInOiIiKSsiOiIrKHMuY29uZGVuc2VGbG93PyIiOiIgIiksd3JpdGVOb2RlKHMsbyx3LCExLCExKSYmKEMrPXgrPXMuZHVtcCkpO3MudGFnPWoscy5kdW1wPSJ7IitDKyJ9In0ocyxvLHMuZHVtcCksQiYmKHMuZHVtcD0iJnJlZl8iK0wrIiAiK3MuZHVtcCkpO2Vsc2UgaWYoIltvYmplY3QgQXJyYXldIj09PUMpYSYmMCE9PXMuZHVtcC5sZW5ndGg/KHMubm9BcnJheUluZGVudCYmIXcmJm8+MD93cml0ZUJsb2NrU2VxdWVuY2UocyxvLTEscy5kdW1wLHUpOndyaXRlQmxvY2tTZXF1ZW5jZShzLG8scy5kdW1wLHUpLEImJihzLmR1bXA9IiZyZWZfIitMK3MuZHVtcCkpOighZnVuY3Rpb24gd3JpdGVGbG93U2VxdWVuY2UocyxvLGkpe3ZhciBhLHUsXyx3PSIiLHg9cy50YWc7Zm9yKGE9MCx1PWkubGVuZ3RoO2E8dTthKz0xKV89aVthXSxzLnJlcGxhY2VyJiYoXz1zLnJlcGxhY2VyLmNhbGwoaSxTdHJpbmcoYSksXykpLCh3cml0ZU5vZGUocyxvLF8sITEsITEpfHx2b2lkIDA9PT1fJiZ3cml0ZU5vZGUocyxvLG51bGwsITEsITEpKSYmKCIiIT09dyYmKHcrPSIsIisocy5jb25kZW5zZUZsb3c/IiI6IiAiKSksdys9cy5kdW1wKTtzLnRhZz14LHMuZHVtcD0iWyIrdysiXSJ9KHMsbyxzLmR1bXApLEImJihzLmR1bXA9IiZyZWZfIitMKyIgIitzLmR1bXApKTtlbHNle2lmKCJbb2JqZWN0IFN0cmluZ10iIT09Qyl7aWYoIltvYmplY3QgVW5kZWZpbmVkXSI9PT1DKXJldHVybiExO2lmKHMuc2tpcEludmFsaWQpcmV0dXJuITE7dGhyb3cgbmV3IHRyKCJ1bmFjY2VwdGFibGUga2luZCBvZiBhbiBvYmplY3QgdG8gZHVtcCAiK0MpfSI/IiE9PXMudGFnJiZ3cml0ZVNjYWxhcihzLHMuZHVtcCxvLF8sail9bnVsbCE9PXMudGFnJiYiPyIhPT1zLnRhZyYmKHg9ZW5jb2RlVVJJKCIhIj09PXMudGFnWzBdP3MudGFnLnNsaWNlKDEpOnMudGFnKS5yZXBsYWNlKC8hL2csIiUyMSIpLHg9IiEiPT09cy50YWdbMF0/IiEiK3g6InRhZzp5YW1sLm9yZywyMDAyOiI9PT14LnNsaWNlKDAsMTgpPyIhISIreC5zbGljZSgxOCk6IiE8Iit4KyI+IixzLmR1bXA9eCsiICIrcy5kdW1wKX1yZXR1cm4hMH1mdW5jdGlvbiBnZXREdXBsaWNhdGVSZWZlcmVuY2VzKHMsbyl7dmFyIGksYSx1PVtdLF89W107Zm9yKGluc3BlY3ROb2RlKHMsdSxfKSxpPTAsYT1fLmxlbmd0aDtpPGE7aSs9MSlvLmR1cGxpY2F0ZXMucHVzaCh1W19baV1dKTtvLnVzZWREdXBsaWNhdGVzPW5ldyBBcnJheShhKX1mdW5jdGlvbiBpbnNwZWN0Tm9kZShzLG8saSl7dmFyIGEsdSxfO2lmKG51bGwhPT1zJiYib2JqZWN0Ij09dHlwZW9mIHMpaWYoLTEhPT0odT1vLmluZGV4T2YocykpKS0xPT09aS5pbmRleE9mKHUpJiZpLnB1c2godSk7ZWxzZSBpZihvLnB1c2gocyksQXJyYXkuaXNBcnJheShzKSlmb3IodT0wLF89cy5sZW5ndGg7dTxfO3UrPTEpaW5zcGVjdE5vZGUoc1t1XSxvLGkpO2Vsc2UgZm9yKHU9MCxfPShhPU9iamVjdC5rZXlzKHMpKS5sZW5ndGg7dTxfO3UrPTEpaW5zcGVjdE5vZGUoc1thW3VdXSxvLGkpfXZhciBRcj1mdW5jdGlvbiBkdW1wJDEocyxvKXt2YXIgaT1uZXcgU3RhdGUobz1vfHx7fSk7aS5ub1JlZnN8fGdldER1cGxpY2F0ZVJlZmVyZW5jZXMocyxpKTt2YXIgYT1zO3JldHVybiBpLnJlcGxhY2VyJiYoYT1pLnJlcGxhY2VyLmNhbGwoeyIiOmF9LCIiLGEpKSx3cml0ZU5vZGUoaSwwLGEsITAsITApP2kuZHVtcCsiXG4iOiIifTtmdW5jdGlvbiByZW5hbWVkKHMsbyl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJGdW5jdGlvbiB5YW1sLiIrcysiIGlzIHJlbW92ZWQgaW4ganMteWFtbCA0LiBVc2UgeWFtbC4iK28rIiBpbnN0ZWFkLCB3aGljaCBpcyBub3cgc2FmZSBieSBkZWZhdWx0LiIpfX12YXIgWnI9aXIsZW49YXIsdG49cHIscm49YnIsbm49X3Isc249TXIsb249V3IubG9hZCxhbj1Xci5sb2FkQWxsLGNuPXtkdW1wOlFyfS5kdW1wLGxuPXRyLHVuPXtiaW5hcnk6T3IsZmxvYXQ6dnIsbWFwOnVyLG51bGw6ZHIscGFpcnM6UHIsc2V0Ok5yLHRpbWVzdGFtcDp3cixib29sOmZyLGludDptcixtZXJnZTp4cixvbWFwOmpyLHNlcTpscixzdHI6Y3J9LHBuPXJlbmFtZWQoInNhZmVMb2FkIiwibG9hZCIpLGhuPXJlbmFtZWQoInNhZmVMb2FkQWxsIiwibG9hZEFsbCIpLGRuPXJlbmFtZWQoInNhZmVEdW1wIiwiZHVtcCIpO2NvbnN0IGZuPXtUeXBlOlpyLFNjaGVtYTplbixGQUlMU0FGRV9TQ0hFTUE6dG4sSlNPTl9TQ0hFTUE6cm4sQ09SRV9TQ0hFTUE6bm4sREVGQVVMVF9TQ0hFTUE6c24sbG9hZDpvbixsb2FkQWxsOmFuLGR1bXA6Y24sWUFNTEV4Y2VwdGlvbjpsbix0eXBlczp1bixzYWZlTG9hZDpwbixzYWZlTG9hZEFsbDpobixzYWZlRHVtcDpkbn0sbW49ImNvbmZpZ3NfdXBkYXRlIixnbj0iY29uZmlnc190b2dnbGUiO2Z1bmN0aW9uIHVwZGF0ZShzLG8pe3JldHVybnt0eXBlOm1uLHBheWxvYWQ6e1tzXTpvfX19ZnVuY3Rpb24gdG9nZ2xlKHMpe3JldHVybnt0eXBlOmduLHBheWxvYWQ6c319Y29uc3QgYWN0aW9uc19sb2FkZWQ9KCk9PigpPT57fSxkb3dubG9hZENvbmZpZz1zPT5vPT57Y29uc3R7Zm46e2ZldGNoOml9fT1vO3JldHVybiBpKHMpfSxnZXRDb25maWdCeVVybD0ocyxvKT0+aT0+e2NvbnN0e3NwZWNBY3Rpb25zOmEsY29uZmlnc0FjdGlvbnM6dX09aTtpZihzKXJldHVybiB1LmRvd25sb2FkQ29uZmlnKHMpLnRoZW4obmV4dCxuZXh0KTtmdW5jdGlvbiBuZXh0KHUpe3UgaW5zdGFuY2VvZiBFcnJvcnx8dS5zdGF0dXM+PTQwMD8oYS51cGRhdGVMb2FkaW5nU3RhdHVzKCJmYWlsZWRDb25maWciKSxhLnVwZGF0ZUxvYWRpbmdTdGF0dXMoImZhaWxlZENvbmZpZyIpLGEudXBkYXRlVXJsKCIiKSxjb25zb2xlLmVycm9yKHUuc3RhdHVzVGV4dCsiICIrcy51cmwpLG8obnVsbCkpOm8oKChzLG8pPT57dHJ5e3JldHVybiBmbi5sb2FkKHMpfWNhdGNoKHMpe3JldHVybiBvJiZvLmVyckFjdGlvbnMubmV3VGhyb3duRXJyKG5ldyBFcnJvcihzKSkse319fSkodS50ZXh0LGkpKX19LGdldD0ocyxvKT0+cy5nZXRJbihBcnJheS5pc0FycmF5KG8pP286W29dKSx5bj17W21uXToocyxvKT0+cy5tZXJnZSgoMCx6ZS5mcm9tSlMpKG8ucGF5bG9hZCkpLFtnbl06KHMsbyk9Pntjb25zdCBpPW8ucGF5bG9hZCxhPXMuZ2V0KGkpO3JldHVybiBzLnNldChpLCFhKX19O2Z1bmN0aW9uIGNvbmZpZ3NQbHVnaW4oKXtyZXR1cm57c3RhdGVQbHVnaW5zOntjb25maWdzOntyZWR1Y2Vyczp5bixhY3Rpb25zOnUsc2VsZWN0b3JzOl99fX19Y29uc3Qgc2V0SGFzaD1zPT5zP2hpc3RvcnkucHVzaFN0YXRlKG51bGwsbnVsbCxgIyR7c31gKTp3aW5kb3cubG9jYXRpb24uaGFzaD0iIjt2YXIgdm49X193ZWJwYWNrX3JlcXVpcmVfXyg4NjIxNSksYm49X193ZWJwYWNrX3JlcXVpcmVfXy5uKHZuKTtjb25zdCBfbj0ibGF5b3V0X3Njcm9sbF90byIsU249ImxheW91dF9jbGVhcl9zY3JvbGwiO2NvbnN0IEVuPXtmbjp7Z2V0U2Nyb2xsUGFyZW50OmZ1bmN0aW9uIGdldFNjcm9sbFBhcmVudChzLG8pe2NvbnN0IGk9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2xldCBhPWdldENvbXB1dGVkU3R5bGUocyk7Y29uc3QgdT0iYWJzb2x1dGUiPT09YS5wb3NpdGlvbixfPW8/LyhhdXRvfHNjcm9sbHxoaWRkZW4pLzovKGF1dG98c2Nyb2xsKS87aWYoImZpeGVkIj09PWEucG9zaXRpb24pcmV0dXJuIGk7Zm9yKGxldCBvPXM7bz1vLnBhcmVudEVsZW1lbnQ7KWlmKGE9Z2V0Q29tcHV0ZWRTdHlsZShvKSwoIXV8fCJzdGF0aWMiIT09YS5wb3NpdGlvbikmJl8udGVzdChhLm92ZXJmbG93K2Eub3ZlcmZsb3dZK2Eub3ZlcmZsb3dYKSlyZXR1cm4gbztyZXR1cm4gaX19LHN0YXRlUGx1Z2luczp7bGF5b3V0OnthY3Rpb25zOntzY3JvbGxUb0VsZW1lbnQ6KHMsbyk9Pmk9Pnt0cnl7bz1vfHxpLmZuLmdldFNjcm9sbFBhcmVudChzKSxibigpLmNyZWF0ZVNjcm9sbGVyKG8pLnRvKHMpfWNhdGNoKHMpe2NvbnNvbGUuZXJyb3Iocyl9fSxzY3JvbGxUbzpzPT4oe3R5cGU6X24scGF5bG9hZDpBcnJheS5pc0FycmF5KHMpP3M6W3NdfSksY2xlYXJTY3JvbGxUbzooKT0+KHt0eXBlOlNufSkscmVhZHlUb1Njcm9sbDoocyxvKT0+aT0+e2NvbnN0IGE9aS5sYXlvdXRTZWxlY3RvcnMuZ2V0U2Nyb2xsVG9LZXkoKTtXZSgpLmlzKGEsKDAsemUuZnJvbUpTKShzKSkmJihpLmxheW91dEFjdGlvbnMuc2Nyb2xsVG9FbGVtZW50KG8pLGkubGF5b3V0QWN0aW9ucy5jbGVhclNjcm9sbFRvKCkpfSxwYXJzZURlZXBMaW5rSGFzaDpzPT4oe2xheW91dEFjdGlvbnM6byxsYXlvdXRTZWxlY3RvcnM6aSxnZXRDb25maWdzOmF9KT0+e2lmKGEoKS5kZWVwTGlua2luZyYmcyl7bGV0IGE9cy5zbGljZSgxKTsiISI9PT1hWzBdJiYoYT1hLnNsaWNlKDEpKSwiLyI9PT1hWzBdJiYoYT1hLnNsaWNlKDEpKTtjb25zdCB1PWEuc3BsaXQoIi8iKS5tYXAoKHM9PnN8fCIiKSksXz1pLmlzU2hvd25LZXlGcm9tVXJsSGFzaEFycmF5KHUpLFt3LHg9IiIsQz0iIl09XztpZigib3BlcmF0aW9ucyI9PT13KXtjb25zdCBzPWkuaXNTaG93bktleUZyb21VcmxIYXNoQXJyYXkoW3hdKTt4LmluZGV4T2YoIl8iKT4tMSYmKGNvbnNvbGUud2FybigiV2FybmluZzogZXNjYXBpbmcgZGVlcCBsaW5rIHdoaXRlc3BhY2Ugd2l0aCBgX2Agd2lsbCBiZSB1bnN1cHBvcnRlZCBpbiB2NC4wLCB1c2UgYCUyMGAgaW5zdGVhZC4iKSxvLnNob3cocy5tYXAoKHM9PnMucmVwbGFjZSgvXy9nLCIgIikpKSwhMCkpLG8uc2hvdyhzLCEwKX0oeC5pbmRleE9mKCJfIik+LTF8fEMuaW5kZXhPZigiXyIpPi0xKSYmKGNvbnNvbGUud2FybigiV2FybmluZzogZXNjYXBpbmcgZGVlcCBsaW5rIHdoaXRlc3BhY2Ugd2l0aCBgX2Agd2lsbCBiZSB1bnN1cHBvcnRlZCBpbiB2NC4wLCB1c2UgYCUyMGAgaW5zdGVhZC4iKSxvLnNob3coXy5tYXAoKHM9PnMucmVwbGFjZSgvXy9nLCIgIikpKSwhMCkpLG8uc2hvdyhfLCEwKSxvLnNjcm9sbFRvKF8pfX19LHNlbGVjdG9yczp7Z2V0U2Nyb2xsVG9LZXk6cz0+cy5nZXQoInNjcm9sbFRvS2V5IiksaXNTaG93bktleUZyb21VcmxIYXNoQXJyYXkocyxvKXtjb25zdFtpLGFdPW87cmV0dXJuIGE/WyJvcGVyYXRpb25zIixpLGFdOmk/WyJvcGVyYXRpb25zLXRhZyIsaV06W119LHVybEhhc2hBcnJheUZyb21Jc1Nob3duS2V5KHMsbyl7bGV0W2ksYSx1XT1vO3JldHVybiJvcGVyYXRpb25zIj09aT9bYSx1XToib3BlcmF0aW9ucy10YWciPT1pP1thXTpbXX19LHJlZHVjZXJzOntbX25dOihzLG8pPT5zLnNldCgic2Nyb2xsVG9LZXkiLFdlKCkuZnJvbUpTKG8ucGF5bG9hZCkpLFtTbl06cz0+cy5kZWxldGUoInNjcm9sbFRvS2V5Iil9LHdyYXBBY3Rpb25zOntzaG93OihzLHtnZXRDb25maWdzOm8sbGF5b3V0U2VsZWN0b3JzOml9KT0+KC4uLmEpPT57aWYocyguLi5hKSxvKCkuZGVlcExpbmtpbmcpdHJ5e2xldFtzLG9dPWE7cz1BcnJheS5pc0FycmF5KHMpP3M6W3NdO2NvbnN0IHU9aS51cmxIYXNoQXJyYXlGcm9tSXNTaG93bktleShzKTtpZighdS5sZW5ndGgpcmV0dXJuO2NvbnN0W18sd109dTtpZighbylyZXR1cm4gc2V0SGFzaCgiLyIpOzI9PT11Lmxlbmd0aD9zZXRIYXNoKGNyZWF0ZURlZXBMaW5rUGF0aChgLyR7ZW5jb2RlVVJJQ29tcG9uZW50KF8pfS8ke2VuY29kZVVSSUNvbXBvbmVudCh3KX1gKSk6MT09PXUubGVuZ3RoJiZzZXRIYXNoKGNyZWF0ZURlZXBMaW5rUGF0aChgLyR7ZW5jb2RlVVJJQ29tcG9uZW50KF8pfWApKX1jYXRjaChzKXtjb25zb2xlLmVycm9yKHMpfX19fX19O3ZhciB3bj1fX3dlYnBhY2tfcmVxdWlyZV9fKDIyMDkpLHhuPV9fd2VicGFja19yZXF1aXJlX18ubih3bik7Y29uc3Qgb3BlcmF0aW9uX3dyYXBwZXI9KHMsbyk9PmNsYXNzIE9wZXJhdGlvbldyYXBwZXIgZXh0ZW5kcyBSZS5Db21wb25lbnR7b25Mb2FkPXM9Pntjb25zdHtvcGVyYXRpb246aX09dGhpcy5wcm9wcyx7dGFnOmEsb3BlcmF0aW9uSWQ6dX09aS50b09iamVjdCgpO2xldHtpc1Nob3duS2V5Ol99PWkudG9PYmplY3QoKTtfPV98fFsib3BlcmF0aW9ucyIsYSx1XSxvLmxheW91dEFjdGlvbnMucmVhZHlUb1Njcm9sbChfLHMpfTtyZW5kZXIoKXtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse3JlZjp0aGlzLm9uTG9hZH0sUmUuY3JlYXRlRWxlbWVudChzLHRoaXMucHJvcHMpKX19LG9wZXJhdGlvbl90YWdfd3JhcHBlcj0ocyxvKT0+Y2xhc3MgT3BlcmF0aW9uVGFnV3JhcHBlciBleHRlbmRzIFJlLkNvbXBvbmVudHtvbkxvYWQ9cz0+e2NvbnN0e3RhZzppfT10aGlzLnByb3BzLGE9WyJvcGVyYXRpb25zLXRhZyIsaV07by5sYXlvdXRBY3Rpb25zLnJlYWR5VG9TY3JvbGwoYSxzKX07cmVuZGVyKCl7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyZWY6dGhpcy5vbkxvYWR9LFJlLmNyZWF0ZUVsZW1lbnQocyx0aGlzLnByb3BzKSl9fTtmdW5jdGlvbiBkZWVwX2xpbmtpbmcoKXtyZXR1cm5bRW4se3N0YXRlUGx1Z2luczp7Y29uZmlnczp7d3JhcEFjdGlvbnM6e2xvYWRlZDoocyxvKT0+KC4uLmkpPT57cyguLi5pKTtjb25zdCBhPWRlY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24uaGFzaCk7by5sYXlvdXRBY3Rpb25zLnBhcnNlRGVlcExpbmtIYXNoKGEpfX19fSx3cmFwQ29tcG9uZW50czp7b3BlcmF0aW9uOm9wZXJhdGlvbl93cmFwcGVyLE9wZXJhdGlvblRhZzpvcGVyYXRpb25fdGFnX3dyYXBwZXJ9fV19dmFyIGtuPV9fd2VicGFja19yZXF1aXJlX18oNDA4NjApLE9uPV9fd2VicGFja19yZXF1aXJlX18ubihrbik7ZnVuY3Rpb24gdHJhbnNmb3JtKHMpe3JldHVybiBzLm1hcCgocz0+e2xldCBvPSJpcyBub3Qgb2YgYSB0eXBlKHMpIixpPXMuZ2V0KCJtZXNzYWdlIikuaW5kZXhPZihvKTtpZihpPi0xKXtsZXQgbz1zLmdldCgibWVzc2FnZSIpLnNsaWNlKGkrMTkpLnNwbGl0KCIsIik7cmV0dXJuIHMuc2V0KCJtZXNzYWdlIixzLmdldCgibWVzc2FnZSIpLnNsaWNlKDAsaSkrZnVuY3Rpb24gbWFrZU5ld01lc3NhZ2Uocyl7cmV0dXJuIHMucmVkdWNlKCgocyxvLGksYSk9Pmk9PT1hLmxlbmd0aC0xJiZhLmxlbmd0aD4xP3MrIm9yICIrbzphW2krMV0mJmEubGVuZ3RoPjI/cytvKyIsICI6YVtpKzFdP3MrbysiICI6cytvKSwic2hvdWxkIGJlIGEiKX0obykpfXJldHVybiBzfSkpfXZhciBDbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MTU2KSxBbj1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oQ24pO2Z1bmN0aW9uIHBhcmFtZXRlcl9vbmVvZl90cmFuc2Zvcm0ocyx7anNTcGVjOm99KXtyZXR1cm4gc31jb25zdCBqbj1bdyx4XTtmdW5jdGlvbiB0cmFuc2Zvcm1FcnJvcnMocyl7bGV0IG89e2pzU3BlYzp7fX0saT1PbigpKGpuLCgocyxpKT0+e3RyeXtyZXR1cm4gaS50cmFuc2Zvcm0ocyxvKS5maWx0ZXIoKHM9PiEhcykpfWNhdGNoKG8pe3JldHVybiBjb25zb2xlLmVycm9yKCJUcmFuc2Zvcm1lciBlcnJvcjoiLG8pLHN9fSkscyk7cmV0dXJuIGkuZmlsdGVyKChzPT4hIXMpKS5tYXAoKHM9Pighcy5nZXQoImxpbmUiKSYmcy5nZXQoInBhdGgiKSxzKSkpfWxldCBJbj17bGluZTowLGxldmVsOiJlcnJvciIsbWVzc2FnZToiVW5rbm93biBlcnJvciJ9O2NvbnN0IFBuPVZ0KChzPT5zKSwocz0+cy5nZXQoImVycm9ycyIsKDAsemUuTGlzdCkoKSkpKSxUbj1WdChQbiwocz0+cy5sYXN0KCkpKTtmdW5jdGlvbiBlcnIobyl7cmV0dXJue3N0YXRlUGx1Z2luczp7ZXJyOntyZWR1Y2Vyczp7W3J0XToocyx7cGF5bG9hZDpvfSk9PntsZXQgaT1PYmplY3QuYXNzaWduKEluLG8se3R5cGU6InRocm93biJ9KTtyZXR1cm4gcy51cGRhdGUoImVycm9ycyIsKHM9PihzfHwoMCx6ZS5MaXN0KSgpKS5wdXNoKCgwLHplLmZyb21KUykoaSkpKSkudXBkYXRlKCJlcnJvcnMiLChzPT50cmFuc2Zvcm1FcnJvcnMocykpKX0sW250XToocyx7cGF5bG9hZDpvfSk9PihvPW8ubWFwKChzPT4oMCx6ZS5mcm9tSlMpKE9iamVjdC5hc3NpZ24oSW4scyx7dHlwZToidGhyb3duIn0pKSkpLHMudXBkYXRlKCJlcnJvcnMiLChzPT4oc3x8KDAsemUuTGlzdCkoKSkuY29uY2F0KCgwLHplLmZyb21KUykobykpKSkudXBkYXRlKCJlcnJvcnMiLChzPT50cmFuc2Zvcm1FcnJvcnMocykpKSksW3N0XToocyx7cGF5bG9hZDpvfSk9PntsZXQgaT0oMCx6ZS5mcm9tSlMpKG8pO3JldHVybiBpPWkuc2V0KCJ0eXBlIiwic3BlYyIpLHMudXBkYXRlKCJlcnJvcnMiLChzPT4oc3x8KDAsemUuTGlzdCkoKSkucHVzaCgoMCx6ZS5mcm9tSlMpKGkpKS5zb3J0QnkoKHM9PnMuZ2V0KCJsaW5lIikpKSkpLnVwZGF0ZSgiZXJyb3JzIiwocz0+dHJhbnNmb3JtRXJyb3JzKHMpKSl9LFtvdF06KHMse3BheWxvYWQ6b30pPT4obz1vLm1hcCgocz0+KDAsemUuZnJvbUpTKShPYmplY3QuYXNzaWduKEluLHMse3R5cGU6InNwZWMifSkpKSkscy51cGRhdGUoImVycm9ycyIsKHM9PihzfHwoMCx6ZS5MaXN0KSgpKS5jb25jYXQoKDAsemUuZnJvbUpTKShvKSkpKS51cGRhdGUoImVycm9ycyIsKHM9PnRyYW5zZm9ybUVycm9ycyhzKSkpKSxbaXRdOihzLHtwYXlsb2FkOm99KT0+e2xldCBpPSgwLHplLmZyb21KUykoT2JqZWN0LmFzc2lnbih7fSxvKSk7cmV0dXJuIGk9aS5zZXQoInR5cGUiLCJhdXRoIikscy51cGRhdGUoImVycm9ycyIsKHM9PihzfHwoMCx6ZS5MaXN0KSgpKS5wdXNoKCgwLHplLmZyb21KUykoaSkpKSkudXBkYXRlKCJlcnJvcnMiLChzPT50cmFuc2Zvcm1FcnJvcnMocykpKX0sW2F0XToocyx7cGF5bG9hZDpvfSk9PntpZighb3x8IXMuZ2V0KCJlcnJvcnMiKSlyZXR1cm4gcztsZXQgaT1zLmdldCgiZXJyb3JzIikuZmlsdGVyKChzPT5zLmtleVNlcSgpLmV2ZXJ5KChpPT57Y29uc3QgYT1zLmdldChpKSx1PW9baV07cmV0dXJuIXV8fGEhPT11fSkpKSk7cmV0dXJuIHMubWVyZ2Uoe2Vycm9yczppfSl9LFtjdF06KHMse3BheWxvYWQ6b30pPT57aWYoIW98fCJmdW5jdGlvbiIhPXR5cGVvZiBvKXJldHVybiBzO2xldCBpPXMuZ2V0KCJlcnJvcnMiKS5maWx0ZXIoKHM9Pm8ocykpKTtyZXR1cm4gcy5tZXJnZSh7ZXJyb3JzOml9KX19LGFjdGlvbnM6cyxzZWxlY3RvcnM6Q319fX1mdW5jdGlvbiBvcHNGaWx0ZXIocyxvKXtyZXR1cm4gcy5maWx0ZXIoKChzLGkpPT4tMSE9PWkuaW5kZXhPZihvKSkpfWZ1bmN0aW9uIGZpbHRlcigpe3JldHVybntmbjp7b3BzRmlsdGVyfX19dmFyIE5uPV9fd2VicGFja19yZXF1aXJlX18oNzY2NiksTW49X193ZWJwYWNrX3JlcXVpcmVfXy5uKE5uKTtjb25zdCBhcnJvd191cD0oe2NsYXNzTmFtZTpzPW51bGwsd2lkdGg6bz0yMCxoZWlnaHQ6aT0yMCwuLi5hfSk9PlJlLmNyZWF0ZUVsZW1lbnQoInN2ZyIsTW4oKSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix2aWV3Qm94OiIwIDAgMjAgMjAiLGNsYXNzTmFtZTpzLHdpZHRoOm8saGVpZ2h0OmksImFyaWEtaGlkZGVuIjoidHJ1ZSIsZm9jdXNhYmxlOiJmYWxzZSJ9LGEpLFJlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNIDE3LjQxOCAxNC45MDggQyAxNy42OSAxNS4xNzYgMTguMTI3IDE1LjE3NiAxOC4zOTcgMTQuOTA4IEMgMTguNjY3IDE0LjY0IDE4LjY2OCAxNC4yMDcgMTguMzk3IDEzLjkzOSBMIDEwLjQ4OSA2LjEwOSBDIDEwLjIxOSA1Ljg0MSA5Ljc4MiA1Ljg0MSA5LjUxIDYuMTA5IEwgMS42MDIgMTMuOTM5IEMgMS4zMzIgMTQuMjA3IDEuMzMyIDE0LjY0IDEuNjAyIDE0LjkwOCBDIDEuODczIDE1LjE3NiAyLjMxMSAxNS4xNzYgMi41ODEgMTQuOTA4IEwgMTAgNy43NjcgTCAxNy40MTggMTQuOTA4IFoifSkpLGFycm93X2Rvd249KHtjbGFzc05hbWU6cz1udWxsLHdpZHRoOm89MjAsaGVpZ2h0Omk9MjAsLi4uYX0pPT5SZS5jcmVhdGVFbGVtZW50KCJzdmciLE1uKCkoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdmlld0JveDoiMCAwIDIwIDIwIixjbGFzc05hbWU6cyx3aWR0aDpvLGhlaWdodDppLCJhcmlhLWhpZGRlbiI6InRydWUiLGZvY3VzYWJsZToiZmFsc2UifSxhKSxSZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE3LjQxOCA2LjEwOWMuMjcyLS4yNjguNzA5LS4yNjguOTc5IDBzLjI3MS43MDEgMCAuOTY5bC03LjkwOCA3LjgzYy0uMjcuMjY4LS43MDcuMjY4LS45NzkgMGwtNy45MDgtNy44M2MtLjI3LS4yNjgtLjI3LS43MDEgMC0uOTY5LjI3MS0uMjY4LjcwOS0uMjY4Ljk3OSAwTDEwIDEzLjI1bDcuNDE4LTcuMTQxeiJ9KSksYXJyb3c9KHtjbGFzc05hbWU6cz1udWxsLHdpZHRoOm89MjAsaGVpZ2h0Omk9MjAsLi4uYX0pPT5SZS5jcmVhdGVFbGVtZW50KCJzdmciLE1uKCkoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdmlld0JveDoiMCAwIDIwIDIwIixjbGFzc05hbWU6cyx3aWR0aDpvLGhlaWdodDppLCJhcmlhLWhpZGRlbiI6InRydWUiLGZvY3VzYWJsZToiZmFsc2UifSxhKSxSZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTEzLjI1IDEwTDYuMTA5IDIuNThjLS4yNjgtLjI3LS4yNjgtLjcwNyAwLS45NzkuMjY4LS4yNy43MDEtLjI3Ljk2OSAwbDcuODMgNy45MDhjLjI2OC4yNzEuMjY4LjcwOSAwIC45NzlsLTcuODMgNy45MDhjLS4yNjguMjcxLS43MDEuMjctLjk2OSAwLS4yNjgtLjI2OS0uMjY4LS43MDcgMC0uOTc5TDEzLjI1IDEweiJ9KSksY29tcG9uZW50c19jbG9zZT0oe2NsYXNzTmFtZTpzPW51bGwsd2lkdGg6bz0yMCxoZWlnaHQ6aT0yMCwuLi5hfSk9PlJlLmNyZWF0ZUVsZW1lbnQoInN2ZyIsTW4oKSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix2aWV3Qm94OiIwIDAgMjAgMjAiLGNsYXNzTmFtZTpzLHdpZHRoOm8saGVpZ2h0OmksImFyaWEtaGlkZGVuIjoidHJ1ZSIsZm9jdXNhYmxlOiJmYWxzZSJ9LGEpLFJlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTQuMzQ4IDE0Ljg0OWMtLjQ2OS40NjktMS4yMjkuNDY5LTEuNjk3IDBMMTAgMTEuODE5bC0yLjY1MSAzLjAyOWMtLjQ2OS40NjktMS4yMjkuNDY5LTEuNjk3IDAtLjQ2OS0uNDY5LS40NjktMS4yMjkgMC0xLjY5N2wyLjc1OC0zLjE1LTIuNzU5LTMuMTUyYy0uNDY5LS40NjktLjQ2OS0xLjIyOCAwLTEuNjk3LjQ2OS0uNDY5IDEuMjI4LS40NjkgMS42OTcgMEwxMCA4LjE4M2wyLjY1MS0zLjAzMWMuNDY5LS40NjkgMS4yMjgtLjQ2OSAxLjY5NyAwIC40NjkuNDY5LjQ2OSAxLjIyOSAwIDEuNjk3bC0yLjc1OCAzLjE1MiAyLjc1OCAzLjE1Yy40NjkuNDY5LjQ2OSAxLjIyOSAwIDEuNjk4eiJ9KSksY29weT0oe2NsYXNzTmFtZTpzPW51bGwsd2lkdGg6bz0xNSxoZWlnaHQ6aT0xNiwuLi5hfSk9PlJlLmNyZWF0ZUVsZW1lbnQoInN2ZyIsTW4oKSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix2aWV3Qm94OiIwIDAgMTUgMTYiLGNsYXNzTmFtZTpzLHdpZHRoOm8saGVpZ2h0OmksImFyaWEtaGlkZGVuIjoidHJ1ZSIsZm9jdXNhYmxlOiJmYWxzZSJ9LGEpLFJlLmNyZWF0ZUVsZW1lbnQoImciLHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgyLCAtMSkifSxSZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiI2ZmZmZmZiIsZmlsbFJ1bGU6ImV2ZW5vZGQiLGQ6Ik0yIDEzaDR2MUgydi0xem01LTZIMnYxaDVWN3ptMiAzVjhsLTMgMyAzIDN2LTJoNXYtMkg5ek00LjUgOUgydjFoMi41Vjl6TTIgMTJoMi41di0xSDJ2MXptOSAxaDF2MmMtLjAyLjI4LS4xMS41Mi0uMy43LS4xOS4xOC0uNDIuMjgtLjcuM0gxYy0uNTUgMC0xLS40NS0xLTFWNGMwLS41NS40NS0xIDEtMWgzYzAtMS4xMS44OS0yIDItMiAxLjExIDAgMiAuODkgMiAyaDNjLjU1IDAgMSAuNDUgMSAxdjVoLTFWNkgxdjloMTB2LTJ6TTIgNWg4YzAtLjU1LS40NS0xLTEtMUg4Yy0uNTUgMC0xLS40NS0xLTFzLS40NS0xLTEtMS0xIC40NS0xIDEtLjQ1IDEtMSAxSDNjLS41NSAwLTEgLjQ1LTEgMXoifSkpKSxsb2NrPSh7Y2xhc3NOYW1lOnM9bnVsbCx3aWR0aDpvPTIwLGhlaWdodDppPTIwLC4uLmF9KT0+UmUuY3JlYXRlRWxlbWVudCgic3ZnIixNbigpKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHZpZXdCb3g6IjAgMCAyMCAyMCIsY2xhc3NOYW1lOnMsd2lkdGg6byxoZWlnaHQ6aSwiYXJpYS1oaWRkZW4iOiJ0cnVlIixmb2N1c2FibGU6ImZhbHNlIn0sYSksUmUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xNS44IDhIMTRWNS42QzE0IDIuNzAzIDEyLjY2NSAxIDEwIDEgNy4zMzQgMSA2IDIuNzAzIDYgNS42VjhINGMtLjU1MyAwLTEgLjY0Ni0xIDEuMTk5VjE3YzAgLjU0OS40MjggMS4xMzkuOTUxIDEuMzA3bDEuMTk3LjM4N0M1LjY3MiAxOC44NjEgNi41NSAxOSA3LjEgMTloNS44Yy41NDkgMCAxLjQyOC0uMTM5IDEuOTUxLS4zMDdsMS4xOTYtLjM4N2MuNTI0LS4xNjcuOTUzLS43NTcuOTUzLTEuMzA2VjkuMTk5QzE3IDguNjQ2IDE2LjM1MiA4IDE1LjggOHpNMTIgOEg4VjUuMTk5QzggMy43NTQgOC43OTcgMyAxMCAzYzEuMjAzIDAgMiAuNzU0IDIgMi4xOTlWOHoifSkpLHVubG9jaz0oe2NsYXNzTmFtZTpzPW51bGwsd2lkdGg6bz0yMCxoZWlnaHQ6aT0yMCwuLi5hfSk9PlJlLmNyZWF0ZUVsZW1lbnQoInN2ZyIsTW4oKSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix2aWV3Qm94OiIwIDAgMjAgMjAiLGNsYXNzTmFtZTpzLHdpZHRoOm8saGVpZ2h0OmksImFyaWEtaGlkZGVuIjoidHJ1ZSIsZm9jdXNhYmxlOiJmYWxzZSJ9LGEpLFJlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTUuOCA4SDE0VjUuNkMxNCAyLjcwMyAxMi42NjUgMSAxMCAxIDcuMzM0IDEgNiAyLjcwMyA2IDUuNlY2aDJ2LS44MDFDOCAzLjc1NCA4Ljc5NyAzIDEwIDNjMS4yMDMgMCAyIC43NTQgMiAyLjE5OVY4SDRjLS41NTMgMC0xIC42NDYtMSAxLjE5OVYxN2MwIC41NDkuNDI4IDEuMTM5Ljk1MSAxLjMwN2wxLjE5Ny4zODdDNS42NzIgMTguODYxIDYuNTUgMTkgNy4xIDE5aDUuOGMuNTQ5IDAgMS40MjgtLjEzOSAxLjk1MS0uMzA3bDEuMTk2LS4zODdjLjUyNC0uMTY3Ljk1My0uNzU3Ljk1My0xLjMwNlY5LjE5OUMxNyA4LjY0NiAxNi4zNTIgOCAxNS44IDh6In0pKSxpY29ucz0oKT0+KHtjb21wb25lbnRzOntBcnJvd1VwSWNvbjphcnJvd191cCxBcnJvd0Rvd25JY29uOmFycm93X2Rvd24sQXJyb3dJY29uOmFycm93LENsb3NlSWNvbjpjb21wb25lbnRzX2Nsb3NlLENvcHlJY29uOmNvcHksTG9ja0ljb246bG9jayxVbmxvY2tJY29uOnVubG9ja319KSxSbj0ibGF5b3V0X3VwZGF0ZV9sYXlvdXQiLERuPSJsYXlvdXRfdXBkYXRlX2ZpbHRlciIsTG49ImxheW91dF91cGRhdGVfbW9kZSIsRm49ImxheW91dF9zaG93IjtmdW5jdGlvbiB1cGRhdGVMYXlvdXQocyl7cmV0dXJue3R5cGU6Um4scGF5bG9hZDpzfX1mdW5jdGlvbiB1cGRhdGVGaWx0ZXIocyl7cmV0dXJue3R5cGU6RG4scGF5bG9hZDpzfX1mdW5jdGlvbiBhY3Rpb25zX3Nob3cocyxvPSEwKXtyZXR1cm4gcz1ub3JtYWxpemVBcnJheShzKSx7dHlwZTpGbixwYXlsb2FkOnt0aGluZzpzLHNob3duOm99fX1mdW5jdGlvbiBjaGFuZ2VNb2RlKHMsbz0iIil7cmV0dXJuIHM9bm9ybWFsaXplQXJyYXkocykse3R5cGU6TG4scGF5bG9hZDp7dGhpbmc6cyxtb2RlOm99fX1jb25zdCBCbj17W1JuXToocyxvKT0+cy5zZXQoImxheW91dCIsby5wYXlsb2FkKSxbRG5dOihzLG8pPT5zLnNldCgiZmlsdGVyIixvLnBheWxvYWQpLFtGbl06KHMsbyk9Pntjb25zdCBpPW8ucGF5bG9hZC5zaG93bixhPSgwLHplLmZyb21KUykoby5wYXlsb2FkLnRoaW5nKTtyZXR1cm4gcy51cGRhdGUoInNob3duIiwoMCx6ZS5mcm9tSlMpKHt9KSwocz0+cy5zZXQoYSxpKSkpfSxbTG5dOihzLG8pPT57bGV0IGk9by5wYXlsb2FkLnRoaW5nLGE9by5wYXlsb2FkLm1vZGU7cmV0dXJuIHMuc2V0SW4oWyJtb2RlcyJdLmNvbmNhdChpKSwoYXx8IiIpKyIiKX19LGN1cnJlbnQ9cz0+cy5nZXQoImxheW91dCIpLGN1cnJlbnRGaWx0ZXI9cz0+cy5nZXQoImZpbHRlciIpLGlzU2hvd249KHMsbyxpKT0+KG89bm9ybWFsaXplQXJyYXkobykscy5nZXQoInNob3duIiwoMCx6ZS5mcm9tSlMpKHt9KSkuZ2V0KCgwLHplLmZyb21KUykobyksaSkpLHdoYXRNb2RlPShzLG8saT0iIik9PihvPW5vcm1hbGl6ZUFycmF5KG8pLHMuZ2V0SW4oWyJtb2RlcyIsLi4ub10saSkpLCRuPVZ0KChzPT5zKSwocz0+IWlzU2hvd24ocywiZWRpdG9yIikpKSx0YWdnZWRPcGVyYXRpb25zPShzLG8pPT4oaSwuLi5hKT0+e2xldCB1PXMoaSwuLi5hKTtjb25zdHtmbjpfLGxheW91dFNlbGVjdG9yczp3LGdldENvbmZpZ3M6eH09by5nZXRTeXN0ZW0oKSxDPXgoKSx7bWF4RGlzcGxheWVkVGFnczpqfT1DO2xldCBMPXcuY3VycmVudEZpbHRlcigpO3JldHVybiBMJiYhMCE9PUwmJih1PV8ub3BzRmlsdGVyKHUsTCkpLGo+PTAmJih1PXUuc2xpY2UoMCxqKSksdX07ZnVuY3Rpb24gcGx1Z2luc19sYXlvdXQoKXtyZXR1cm57c3RhdGVQbHVnaW5zOntsYXlvdXQ6e3JlZHVjZXJzOkJuLGFjdGlvbnM6aixzZWxlY3RvcnM6TH0sc3BlYzp7d3JhcFNlbGVjdG9yczpCfX19fWZ1bmN0aW9uIGxvZ3Moe2NvbmZpZ3M6c30pe2NvbnN0IG89e2RlYnVnOjAsaW5mbzoxLGxvZzoyLHdhcm46MyxlcnJvcjo0fSxnZXRMZXZlbD1zPT5vW3NdfHwtMTtsZXR7bG9nTGV2ZWw6aX09cyxhPWdldExldmVsKGkpO2Z1bmN0aW9uIGxvZyhzLC4uLm8pe2dldExldmVsKHMpPj1hJiZjb25zb2xlW3NdKC4uLm8pfXJldHVybiBsb2cud2Fybj1sb2cuYmluZChudWxsLCJ3YXJuIiksbG9nLmVycm9yPWxvZy5iaW5kKG51bGwsImVycm9yIiksbG9nLmluZm89bG9nLmJpbmQobnVsbCwiaW5mbyIpLGxvZy5kZWJ1Zz1sb2cuYmluZChudWxsLCJkZWJ1ZyIpLHtyb290SW5qZWN0czp7bG9nfX19bGV0IHFuPSExO2Z1bmN0aW9uIG9uX2NvbXBsZXRlKCl7cmV0dXJue3N0YXRlUGx1Z2luczp7c3BlYzp7d3JhcEFjdGlvbnM6e3VwZGF0ZVNwZWM6cz0+KC4uLm8pPT4ocW49ITAscyguLi5vKSksdXBkYXRlSnNvblNwZWM6KHMsbyk9PiguLi5pKT0+e2NvbnN0IGE9by5nZXRDb25maWdzKCkub25Db21wbGV0ZTtyZXR1cm4gcW4mJiJmdW5jdGlvbiI9PXR5cGVvZiBhJiYoc2V0VGltZW91dChhLDApLHFuPSExKSxzKC4uLmkpfX19fX19Y29uc3QgZXh0cmFjdEtleT1zPT57Y29uc3Qgbz0iXyoqW10iO3JldHVybiBzLmluZGV4T2Yobyk8MD9zOnMuc3BsaXQobylbMF0udHJpbSgpfSxlc2NhcGVTaGVsbD1zPT4iLWQgIj09PXN8fC9eW19cLy1dL2cudGVzdChzKT9zOiInIitzLnJlcGxhY2UoLycvZywiJ1xcJyciKSsiJyIsZXNjYXBlQ01EPXM9PiItZCAiPT09KHM9cy5yZXBsYWNlKC9cXi9nLCJeXiIpLnJlcGxhY2UoL1xcIi9nLCdcXFxcIicpLnJlcGxhY2UoLyIvZywnIiInKS5yZXBsYWNlKC9cbi9nLCJeXG4iKSk/cy5yZXBsYWNlKC8tZCAvZywiLWQgXlxuIik6L15bX1wvLV0vZy50ZXN0KHMpP3M6JyInK3MrJyInLGVzY2FwZVBvd2Vyc2hlbGw9cz0+e2lmKCItZCAiPT09cylyZXR1cm4gcztpZigvXG4vLnRlc3Qocykpe3JldHVybmBAIlxuJHtzLnJlcGxhY2UoL2AvZywiYGAiKS5yZXBsYWNlKC9cJC9nLCJgJCIpfVxuIkBgfWlmKCEvXltfXC8tXS8udGVzdChzKSl7cmV0dXJuYCcke3MucmVwbGFjZSgvJy9nLCInJyIpfSdgfXJldHVybiBzfTtjb25zdCBjdXJsaWZ5PShzLG8saSxhPSIiKT0+e2xldCB1PSExLF89IiI7Y29uc3QgYWRkV29yZHM9KC4uLnMpPT5fKz0iICIrcy5tYXAobykuam9pbigiICIpLGFkZFdvcmRzV2l0aG91dExlYWRpbmdTcGFjZT0oLi4ucyk9Pl8rPXMubWFwKG8pLmpvaW4oIiAiKSxhZGROZXdMaW5lPSgpPT5fKz1gICR7aX1gLGFkZEluZGVudD0ocz0xKT0+Xys9IiAgIi5yZXBlYXQocyk7bGV0IHc9cy5nZXQoImhlYWRlcnMiKTtfKz0iY3VybCIrYTtjb25zdCB4PXMuZ2V0KCJjdXJsT3B0aW9ucyIpO2lmKHplLkxpc3QuaXNMaXN0KHgpJiYheC5pc0VtcHR5KCkmJmFkZFdvcmRzKC4uLnMuZ2V0KCJjdXJsT3B0aW9ucyIpKSxhZGRXb3JkcygiLVgiLHMuZ2V0KCJtZXRob2QiKSksYWRkTmV3TGluZSgpLGFkZEluZGVudCgpLGFkZFdvcmRzV2l0aG91dExlYWRpbmdTcGFjZShgJHtzLmdldCgidXJsIil9YCksdyYmdy5zaXplKWZvcihsZXQgbyBvZiBzLmdldCgiaGVhZGVycyIpLmVudHJpZXMoKSl7YWRkTmV3TGluZSgpLGFkZEluZGVudCgpO2xldFtzLGldPW87YWRkV29yZHNXaXRob3V0TGVhZGluZ1NwYWNlKCItSCIsYCR7c306ICR7aX1gKSx1PXV8fC9eY29udGVudC10eXBlJC9pLnRlc3QocykmJi9ebXVsdGlwYXJ0XC9mb3JtLWRhdGEkL2kudGVzdChpKX1jb25zdCBDPXMuZ2V0KCJib2R5Iik7aWYoQylpZih1JiZbIlBPU1QiLCJQVVQiLCJQQVRDSCJdLmluY2x1ZGVzKHMuZ2V0KCJtZXRob2QiKSkpZm9yKGxldFtzLG9db2YgQy5lbnRyeVNlcSgpKXtsZXQgaT1leHRyYWN0S2V5KHMpO2FkZE5ld0xpbmUoKSxhZGRJbmRlbnQoKSxhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2UoIi1GIiksbyBpbnN0YW5jZW9mIGx0LkZpbGUmJiJzdHJpbmciPT10eXBlb2Ygby52YWx1ZU9mKCk/YWRkV29yZHMoYCR7aX09JHtvLmRhdGF9JHtvLnR5cGU/YDt0eXBlPSR7by50eXBlfWA6IiJ9YCk6byBpbnN0YW5jZW9mIGx0LkZpbGU/YWRkV29yZHMoYCR7aX09QCR7by5uYW1lfSR7by50eXBlP2A7dHlwZT0ke28udHlwZX1gOiIifWApOmFkZFdvcmRzKGAke2l9PSR7b31gKX1lbHNlIGlmKEMgaW5zdGFuY2VvZiBsdC5GaWxlKWFkZE5ld0xpbmUoKSxhZGRJbmRlbnQoKSxhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2UoYC0tZGF0YS1iaW5hcnkgJ0Ake0MubmFtZX0nYCk7ZWxzZXthZGROZXdMaW5lKCksYWRkSW5kZW50KCksYWRkV29yZHNXaXRob3V0TGVhZGluZ1NwYWNlKCItZCAiKTtsZXQgbz1DO3plLk1hcC5pc01hcChvKT9hZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2UoZnVuY3Rpb24gZ2V0U3RyaW5nQm9keU9mTWFwKHMpe2xldCBvPVtdO2ZvcihsZXRbaSxhXW9mIHMuZ2V0KCJib2R5IikuZW50cnlTZXEoKSl7bGV0IHM9ZXh0cmFjdEtleShpKTthIGluc3RhbmNlb2YgbHQuRmlsZT9vLnB1c2goYCAgIiR7c30iOiB7XG4gICAgIm5hbWUiOiAiJHthLm5hbWV9IiR7YS50eXBlP2AsXG4gICAgInR5cGUiOiAiJHthLnR5cGV9ImA6IiJ9XG4gIH1gKTpvLnB1c2goYCAgIiR7c30iOiAke0pTT04uc3RyaW5naWZ5KGEsbnVsbCwyKS5yZXBsYWNlKC8oXHJcbnxccnxcbikvZywiXG4gICIpfWApfXJldHVybmB7XG4ke28uam9pbigiLFxuIil9XG59YH0ocykpOigic3RyaW5nIiE9dHlwZW9mIG8mJihvPUpTT04uc3RyaW5naWZ5KG8pKSxhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2UobykpfWVsc2UgQ3x8IlBPU1QiIT09cy5nZXQoIm1ldGhvZCIpfHwoYWRkTmV3TGluZSgpLGFkZEluZGVudCgpLGFkZFdvcmRzV2l0aG91dExlYWRpbmdTcGFjZSgiLWQgJyciKSk7cmV0dXJuIF99LHJlcXVlc3RTbmlwcGV0R2VuZXJhdG9yX2N1cmxfcG93ZXJzaGVsbD1zPT5jdXJsaWZ5KHMsZXNjYXBlUG93ZXJzaGVsbCwiYFxuIiwiLmV4ZSIpLHJlcXVlc3RTbmlwcGV0R2VuZXJhdG9yX2N1cmxfYmFzaD1zPT5jdXJsaWZ5KHMsZXNjYXBlU2hlbGwsIlxcXG4iKSxyZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX2NtZD1zPT5jdXJsaWZ5KHMsZXNjYXBlQ01ELCJeXG4iKSxyZXF1ZXN0X3NuaXBwZXRzX3NlbGVjdG9yc19zdGF0ZT1zPT5zfHwoMCx6ZS5NYXApKCksVm49VnQocmVxdWVzdF9zbmlwcGV0c19zZWxlY3RvcnNfc3RhdGUsKHM9Pntjb25zdCBvPXMuZ2V0KCJsYW5ndWFnZXMiKSxpPXMuZ2V0KCJnZW5lcmF0b3JzIiwoMCx6ZS5NYXApKCkpO3JldHVybiFvfHxvLmlzRW1wdHkoKT9pOmkuZmlsdGVyKCgocyxpKT0+by5pbmNsdWRlcyhpKSkpfSkpLGdldFNuaXBwZXRHZW5lcmF0b3JzPXM9Pih7Zm46b30pPT5WbihzKS5tYXAoKChzLGkpPT57Y29uc3QgYT0ocz0+b1tgcmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfJHtzfWBdKShpKTtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgYT9udWxsOnMuc2V0KCJmbiIsYSl9KSkuZmlsdGVyKChzPT5zKSksVW49VnQocmVxdWVzdF9zbmlwcGV0c19zZWxlY3RvcnNfc3RhdGUsKHM9PnMuZ2V0KCJhY3RpdmVMYW5ndWFnZSIpKSksem49VnQocmVxdWVzdF9zbmlwcGV0c19zZWxlY3RvcnNfc3RhdGUsKHM9PnMuZ2V0KCJkZWZhdWx0RXhwYW5kZWQiKSkpO3ZhciBXbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ2OTQyKSxKbj1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oV24pLEhuPV9fd2VicGFja19yZXF1aXJlX18oNTkzOTkpO2NvbnN0IEtuPXtjdXJzb3I6InBvaW50ZXIiLGxpbmVIZWlnaHQ6MSxkaXNwbGF5OiJpbmxpbmUtZmxleCIsYmFja2dyb3VuZENvbG9yOiJyZ2IoMjUwLCAyNTAsIDI1MCkiLHBhZGRpbmdCb3R0b206IjAiLHBhZGRpbmdUb3A6IjAiLGJvcmRlcjoiMXB4IHNvbGlkIHJnYig1MSwgNTEsIDUxKSIsYm9yZGVyUmFkaXVzOiI0cHggNHB4IDAgMCIsYm94U2hhZG93OiJub25lIixib3JkZXJCb3R0b206Im5vbmUifSxHbj17Y3Vyc29yOiJwb2ludGVyIixsaW5lSGVpZ2h0OjEsZGlzcGxheToiaW5saW5lLWZsZXgiLGJhY2tncm91bmRDb2xvcjoicmdiKDUxLCA1MSwgNTEpIixib3hTaGFkb3c6Im5vbmUiLGJvcmRlcjoiMXB4IHNvbGlkIHJnYig1MSwgNTEsIDUxKSIscGFkZGluZ0JvdHRvbToiMCIscGFkZGluZ1RvcDoiMCIsYm9yZGVyUmFkaXVzOiI0cHggNHB4IDAgMCIsbWFyZ2luVG9wOiItNXB4IixtYXJnaW5SaWdodDoiLTVweCIsbWFyZ2luTGVmdDoiLTVweCIsekluZGV4OiI5OTk5Iixib3JkZXJCb3R0b206Im5vbmUifSxyZXF1ZXN0X3NuaXBwZXRzPSh7cmVxdWVzdDpzLHJlcXVlc3RTbmlwcGV0c1NlbGVjdG9yczpvLGdldENvbXBvbmVudDppfSk9Pntjb25zdCBhPSgwLFJlLnVzZVJlZikobnVsbCksdT1pKCJBcnJvd1VwSWNvbiIpLF89aSgiQXJyb3dEb3duSWNvbiIpLHc9aSgiU3ludGF4SGlnaGxpZ2h0ZXIiLCEwKSxbeCxDXT0oMCxSZS51c2VTdGF0ZSkoby5nZXRTbmlwcGV0R2VuZXJhdG9ycygpPy5rZXlTZXEoKS5maXJzdCgpKSxbaixMXT0oMCxSZS51c2VTdGF0ZSkobz8uZ2V0RGVmYXVsdEV4cGFuZGVkKCkpLEI9by5nZXRTbmlwcGV0R2VuZXJhdG9ycygpLCQ9Qi5nZXQoeCksVj0kLmdldCgiZm4iKShzKSxoYW5kbGVTZXRJc0V4cGFuZGVkPSgpPT57TCghail9LGhhbmRsZUdldEJ0blN0eWxlPXM9PnM9PT14P0duOktuLGhhbmRsZVByZXZlbnRZU2Nyb2xsaW5nQmV5b25kRWxlbWVudD1zPT57Y29uc3R7dGFyZ2V0Om8sZGVsdGFZOml9PXMse3Njcm9sbEhlaWdodDphLG9mZnNldEhlaWdodDp1LHNjcm9sbFRvcDpffT1vO2E+dSYmKDA9PT1fJiZpPDB8fHUrXz49YSYmaT4wKSYmcy5wcmV2ZW50RGVmYXVsdCgpfTtyZXR1cm4oMCxSZS51c2VFZmZlY3QpKCgoKT0+e30pLFtdKSwoMCxSZS51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IHM9QXJyYXkuZnJvbShhLmN1cnJlbnQuY2hpbGROb2RlcykuZmlsdGVyKChzPT4hIXMubm9kZVR5cGUmJnMuY2xhc3NMaXN0Py5jb250YWlucygiY3VybC1jb21tYW5kIikpKTtyZXR1cm4gcy5mb3JFYWNoKChzPT5zLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNld2hlZWwiLGhhbmRsZVByZXZlbnRZU2Nyb2xsaW5nQmV5b25kRWxlbWVudCx7cGFzc2l2ZTohMX0pKSksKCk9PntzLmZvckVhY2goKHM9PnMucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V3aGVlbCIsaGFuZGxlUHJldmVudFlTY3JvbGxpbmdCZXlvbmRFbGVtZW50KSkpfX0pLFtzXSksUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJyZXF1ZXN0LXNuaXBwZXRzIixyZWY6YX0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6e3dpZHRoOiIxMDAlIixkaXNwbGF5OiJmbGV4IixqdXN0aWZ5Q29udGVudDoiZmxleC1zdGFydCIsYWxpZ25JdGVtczoiY2VudGVyIixtYXJnaW5Cb3R0b206IjE1cHgifX0sUmUuY3JlYXRlRWxlbWVudCgiaDQiLHtvbkNsaWNrOigpPT5oYW5kbGVTZXRJc0V4cGFuZGVkKCksc3R5bGU6e2N1cnNvcjoicG9pbnRlciJ9fSwiU25pcHBldHMiKSxSZS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtvbkNsaWNrOigpPT5oYW5kbGVTZXRJc0V4cGFuZGVkKCksc3R5bGU6e2JvcmRlcjoibm9uZSIsYmFja2dyb3VuZDoibm9uZSJ9LHRpdGxlOmo/IkNvbGxhcHNlIG9wZXJhdGlvbiI6IkV4cGFuZCBvcGVyYXRpb24ifSxqP1JlLmNyZWF0ZUVsZW1lbnQoXyx7Y2xhc3NOYW1lOiJhcnJvdyIsd2lkdGg6IjEwIixoZWlnaHQ6IjEwIn0pOlJlLmNyZWF0ZUVsZW1lbnQodSx7Y2xhc3NOYW1lOiJhcnJvdyIsd2lkdGg6IjEwIixoZWlnaHQ6IjEwIn0pKSksaiYmUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJjdXJsLWNvbW1hbmQifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTp7cGFkZGluZ0xlZnQ6IjE1cHgiLHBhZGRpbmdSaWdodDoiMTBweCIsd2lkdGg6IjEwMCUiLGRpc3BsYXk6ImZsZXgifX0sQi5lbnRyeVNlcSgpLm1hcCgoKFtzLG9dKT0+UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkpuKCkoImJ0biIse2FjdGl2ZTpzPT09eH0pLHN0eWxlOmhhbmRsZUdldEJ0blN0eWxlKHMpLGtleTpzLG9uQ2xpY2s6KCk9PihzPT57eCE9PXMmJkMocyl9KShzKX0sUmUuY3JlYXRlRWxlbWVudCgiaDQiLHtzdHlsZTpzPT09eD97Y29sb3I6IndoaXRlIn06e319LG8uZ2V0KCJ0aXRsZSIpKSkpKSksUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJjb3B5LXRvLWNsaXBib2FyZCJ9LFJlLmNyZWF0ZUVsZW1lbnQoSG4uQ29weVRvQ2xpcGJvYXJkLHt0ZXh0OlZ9LFJlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIsbnVsbCkpKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCh3LHtsYW5ndWFnZTokLmdldCgic3ludGF4IiksY2xhc3NOYW1lOiJjdXJsIG1pY3JvbGlnaHQiLHJlbmRlclBsYWluVGV4dDooe2NoaWxkcmVuOnMsUGxhaW5UZXh0Vmlld2VyOm99KT0+UmUuY3JlYXRlRWxlbWVudChvLHtjbGFzc05hbWU6ImN1cmwifSxzKX0sVikpKSl9LHBsdWdpbnNfcmVxdWVzdF9zbmlwcGV0cz0oKT0+KHtjb21wb25lbnRzOntSZXF1ZXN0U25pcHBldHM6cmVxdWVzdF9zbmlwcGV0c30sZm46e3JlcXVlc3RTbmlwcGV0R2VuZXJhdG9yX2N1cmxfYmFzaCxyZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX2NtZCxyZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX3Bvd2Vyc2hlbGx9LHN0YXRlUGx1Z2luczp7cmVxdWVzdFNuaXBwZXRzOntzZWxlY3RvcnM6JH19fSk7Y2xhc3MgTW9kZWxDb2xsYXBzZSBleHRlbmRzIFJlLkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXtjb2xsYXBzZWRDb250ZW50OiJ7Li4ufSIsZXhwYW5kZWQ6ITEsdGl0bGU6bnVsbCxvblRvZ2dsZTooKT0+e30saGlkZVNlbGZPbkV4cGFuZDohMSxzcGVjUGF0aDpXZSgpLkxpc3QoW10pfTtjb25zdHJ1Y3RvcihzLG8pe3N1cGVyKHMsbyk7bGV0e2V4cGFuZGVkOmksY29sbGFwc2VkQ29udGVudDphfT10aGlzLnByb3BzO3RoaXMuc3RhdGU9e2V4cGFuZGVkOmksY29sbGFwc2VkQ29udGVudDphfHxNb2RlbENvbGxhcHNlLmRlZmF1bHRQcm9wcy5jb2xsYXBzZWRDb250ZW50fX1jb21wb25lbnREaWRNb3VudCgpe2NvbnN0e2hpZGVTZWxmT25FeHBhbmQ6cyxleHBhbmRlZDpvLG1vZGVsTmFtZTppfT10aGlzLnByb3BzO3MmJm8mJnRoaXMucHJvcHMub25Ub2dnbGUoaSxvKX1VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhzKXt0aGlzLnByb3BzLmV4cGFuZGVkIT09cy5leHBhbmRlZCYmdGhpcy5zZXRTdGF0ZSh7ZXhwYW5kZWQ6cy5leHBhbmRlZH0pfXRvZ2dsZUNvbGxhcHNlZD0oKT0+e3RoaXMucHJvcHMub25Ub2dnbGUmJnRoaXMucHJvcHMub25Ub2dnbGUodGhpcy5wcm9wcy5tb2RlbE5hbWUsIXRoaXMuc3RhdGUuZXhwYW5kZWQpLHRoaXMuc2V0U3RhdGUoe2V4cGFuZGVkOiF0aGlzLnN0YXRlLmV4cGFuZGVkfSl9O29uTG9hZD1zPT57aWYocyYmdGhpcy5wcm9wcy5sYXlvdXRTZWxlY3RvcnMpe2NvbnN0IG89dGhpcy5wcm9wcy5sYXlvdXRTZWxlY3RvcnMuZ2V0U2Nyb2xsVG9LZXkoKTtXZSgpLmlzKG8sdGhpcy5wcm9wcy5zcGVjUGF0aCkmJnRoaXMudG9nZ2xlQ29sbGFwc2VkKCksdGhpcy5wcm9wcy5sYXlvdXRBY3Rpb25zLnJlYWR5VG9TY3JvbGwodGhpcy5wcm9wcy5zcGVjUGF0aCxzLnBhcmVudEVsZW1lbnQpfX07cmVuZGVyKCl7Y29uc3R7dGl0bGU6cyxjbGFzc2VzOm99PXRoaXMucHJvcHM7cmV0dXJuIHRoaXMuc3RhdGUuZXhwYW5kZWQmJnRoaXMucHJvcHMuaGlkZVNlbGZPbkV4cGFuZD9SZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm98fCIifSx0aGlzLnByb3BzLmNoaWxkcmVuKTpSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm98fCIiLHJlZjp0aGlzLm9uTG9hZH0sUmUuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7ImFyaWEtZXhwYW5kZWQiOnRoaXMuc3RhdGUuZXhwYW5kZWQsY2xhc3NOYW1lOiJtb2RlbC1ib3gtY29udHJvbCIsb25DbGljazp0aGlzLnRvZ2dsZUNvbGxhcHNlZH0scyYmUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToicG9pbnRlciJ9LHMpLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsLXRvZ2dsZSIrKHRoaXMuc3RhdGUuZXhwYW5kZWQ/IiI6IiBjb2xsYXBzZWQiKX0pLCF0aGlzLnN0YXRlLmV4cGFuZGVkJiZSZS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLHRoaXMuc3RhdGUuY29sbGFwc2VkQ29udGVudCkpLHRoaXMuc3RhdGUuZXhwYW5kZWQmJnRoaXMucHJvcHMuY2hpbGRyZW4pfX1jb25zdCB1c2VUYWJzPSh7aW5pdGlhbFRhYjpzLGlzRXhlY3V0ZTpvLHNjaGVtYTppLGV4YW1wbGU6YX0pPT57Y29uc3QgdT0oMCxSZS51c2VNZW1vKSgoKCk9Pih7ZXhhbXBsZToiZXhhbXBsZSIsbW9kZWw6Im1vZGVsIn0pKSxbXSksXz0oMCxSZS51c2VNZW1vKSgoKCk9Pk9iamVjdC5rZXlzKHUpKSxbdV0pLmluY2x1ZGVzKHMpJiZpJiYhbz9zOnUuZXhhbXBsZSx3PShzPT57Y29uc3Qgbz0oMCxSZS51c2VSZWYpKCk7cmV0dXJuKDAsUmUudXNlRWZmZWN0KSgoKCk9PntvLmN1cnJlbnQ9c30pKSxvLmN1cnJlbnR9KShvKSxbeCxDXT0oMCxSZS51c2VTdGF0ZSkoXyksaj0oMCxSZS51c2VDYWxsYmFjaykoKHM9PntDKHMudGFyZ2V0LmRhdGFzZXQubmFtZSl9KSxbXSk7cmV0dXJuKDAsUmUudXNlRWZmZWN0KSgoKCk9Pnt3JiYhbyYmYSYmQyh1LmV4YW1wbGUpfSksW3csbyxhXSkse2FjdGl2ZVRhYjp4LG9uVGFiQ2hhbmdlOmosdGFiczp1fX0sbW9kZWxfZXhhbXBsZT0oe3NjaGVtYTpzLGV4YW1wbGU6byxpc0V4ZWN1dGU6aT0hMSxzcGVjUGF0aDphLGluY2x1ZGVXcml0ZU9ubHk6dT0hMSxpbmNsdWRlUmVhZE9ubHk6Xz0hMSxnZXRDb21wb25lbnQ6dyxnZXRDb25maWdzOngsc3BlY1NlbGVjdG9yczpDfSk9Pntjb25zdHtkZWZhdWx0TW9kZWxSZW5kZXJpbmc6aixkZWZhdWx0TW9kZWxFeHBhbmREZXB0aDpMfT14KCksQj13KCJNb2RlbFdyYXBwZXIiKSwkPXcoIkhpZ2hsaWdodENvZGUiLCEwKSxWPXh0KCkoNSkudG9TdHJpbmcoImJhc2U2NCIpLFU9eHQoKSg1KS50b1N0cmluZygiYmFzZTY0Iiksej14dCgpKDUpLnRvU3RyaW5nKCJiYXNlNjQiKSxZPXh0KCkoNSkudG9TdHJpbmcoImJhc2U2NCIpLFo9Qy5pc09BUzMoKSx7YWN0aXZlVGFiOmVlLHRhYnM6aWUsb25UYWJDaGFuZ2U6YWV9PXVzZVRhYnMoe2luaXRpYWxUYWI6aixpc0V4ZWN1dGU6aSxzY2hlbWE6cyxleGFtcGxlOm99KTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJtb2RlbC1leGFtcGxlIn0sUmUuY3JlYXRlRWxlbWVudCgidWwiLHtjbGFzc05hbWU6InRhYiIscm9sZToidGFibGlzdCJ9LFJlLmNyZWF0ZUVsZW1lbnQoImxpIix7Y2xhc3NOYW1lOkpuKCkoInRhYml0ZW0iLHthY3RpdmU6ZWU9PT1pZS5leGFtcGxlfSkscm9sZToicHJlc2VudGF0aW9uIn0sUmUuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7ImFyaWEtY29udHJvbHMiOlUsImFyaWEtc2VsZWN0ZWQiOmVlPT09aWUuZXhhbXBsZSxjbGFzc05hbWU6InRhYmxpbmtzIiwiZGF0YS1uYW1lIjoiZXhhbXBsZSIsaWQ6VixvbkNsaWNrOmFlLHJvbGU6InRhYiJ9LGk/IkVkaXQgVmFsdWUiOiJFeGFtcGxlIFZhbHVlIikpLHMmJlJlLmNyZWF0ZUVsZW1lbnQoImxpIix7Y2xhc3NOYW1lOkpuKCkoInRhYml0ZW0iLHthY3RpdmU6ZWU9PT1pZS5tb2RlbH0pLHJvbGU6InByZXNlbnRhdGlvbiJ9LFJlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIseyJhcmlhLWNvbnRyb2xzIjpZLCJhcmlhLXNlbGVjdGVkIjplZT09PWllLm1vZGVsLGNsYXNzTmFtZTpKbigpKCJ0YWJsaW5rcyIse2luYWN0aXZlOml9KSwiZGF0YS1uYW1lIjoibW9kZWwiLGlkOnosb25DbGljazphZSxyb2xlOiJ0YWIifSxaPyJTY2hlbWEiOiJNb2RlbCIpKSksZWU9PT1pZS5leGFtcGxlJiZSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHsiYXJpYS1oaWRkZW4iOmVlIT09aWUuZXhhbXBsZSwiYXJpYS1sYWJlbGxlZGJ5IjpWLCJkYXRhLW5hbWUiOiJleGFtcGxlUGFuZWwiLGlkOlUscm9sZToidGFicGFuZWwiLHRhYkluZGV4OiIwIn0sb3x8UmUuY3JlYXRlRWxlbWVudCgkLG51bGwsIihubyBleGFtcGxlIGF2YWlsYWJsZSIpKSxlZT09PWllLm1vZGVsJiZSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im1vZGVsLWNvbnRhaW5lciIsImFyaWEtaGlkZGVuIjplZT09PWllLmV4YW1wbGUsImFyaWEtbGFiZWxsZWRieSI6eiwiZGF0YS1uYW1lIjoibW9kZWxQYW5lbCIsaWQ6WSxyb2xlOiJ0YWJwYW5lbCIsdGFiSW5kZXg6IjAifSxSZS5jcmVhdGVFbGVtZW50KEIse3NjaGVtYTpzLGdldENvbXBvbmVudDp3LGdldENvbmZpZ3M6eCxzcGVjU2VsZWN0b3JzOkMsZXhwYW5kRGVwdGg6TCxzcGVjUGF0aDphLGluY2x1ZGVSZWFkT25seTpfLGluY2x1ZGVXcml0ZU9ubHk6dX0pKSl9O2NsYXNzIE1vZGVsV3JhcHBlciBleHRlbmRzIFJlLkNvbXBvbmVudHtvblRvZ2dsZT0ocyxvKT0+e3RoaXMucHJvcHMubGF5b3V0QWN0aW9ucyYmdGhpcy5wcm9wcy5sYXlvdXRBY3Rpb25zLnNob3codGhpcy5wcm9wcy5mdWxsUGF0aCxvKX07cmVuZGVyKCl7bGV0e2dldENvbXBvbmVudDpzLGdldENvbmZpZ3M6b309dGhpcy5wcm9wcztjb25zdCBpPXMoIk1vZGVsIik7bGV0IGE7cmV0dXJuIHRoaXMucHJvcHMubGF5b3V0U2VsZWN0b3JzJiYoYT10aGlzLnByb3BzLmxheW91dFNlbGVjdG9ycy5pc1Nob3duKHRoaXMucHJvcHMuZnVsbFBhdGgpKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im1vZGVsLWJveCJ9LFJlLmNyZWF0ZUVsZW1lbnQoaSxNbigpKHt9LHRoaXMucHJvcHMse2dldENvbmZpZ3M6byxleHBhbmRlZDphLGRlcHRoOjEsb25Ub2dnbGU6dGhpcy5vblRvZ2dsZSxleHBhbmREZXB0aDp0aGlzLnByb3BzLmV4cGFuZERlcHRofHwwfSkpKX19ZnVuY3Rpb24gX3R5cGVvZihzKXtyZXR1cm4gX3R5cGVvZj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihzKXtyZXR1cm4gdHlwZW9mIHN9OmZ1bmN0aW9uKHMpe3JldHVybiBzJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZzLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZzIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2Ygc30sX3R5cGVvZihzKX1mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyhzLG8pe2Zvcih2YXIgaT0wO2k8by5sZW5ndGg7aSsrKXt2YXIgYT1vW2ldO2EuZW51bWVyYWJsZT1hLmVudW1lcmFibGV8fCExLGEuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBhJiYoYS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsYS5rZXksYSl9fWZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShzLG8saSl7cmV0dXJuIG8gaW4gcz9PYmplY3QuZGVmaW5lUHJvcGVydHkocyxvLHt2YWx1ZTppLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6c1tvXT1pLHN9ZnVuY3Rpb24gb3duS2V5cyhzLG8pe3ZhciBpPU9iamVjdC5rZXlzKHMpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7byYmKGE9YS5maWx0ZXIoKGZ1bmN0aW9uKG8pe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsbykuZW51bWVyYWJsZX0pKSksaS5wdXNoLmFwcGx5KGksYSl9cmV0dXJuIGl9ZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKHMpe3JldHVybiBfZ2V0UHJvdG90eXBlT2Y9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yocyl7cmV0dXJuIHMuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2Yocyl9LF9nZXRQcm90b3R5cGVPZihzKX1mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YocyxvKXtyZXR1cm4gX3NldFByb3RvdHlwZU9mPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8ZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKHMsbyl7cmV0dXJuIHMuX19wcm90b19fPW8sc30sX3NldFByb3RvdHlwZU9mKHMsbyl9ZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4ocyxvKXtyZXR1cm4hb3x8Im9iamVjdCIhPXR5cGVvZiBvJiYiZnVuY3Rpb24iIT10eXBlb2Ygbz9mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHMpe2lmKHZvaWQgMD09PXMpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gc30ocyk6b312YXIgWW49e307ZnVuY3Rpb24gcmVhY3RfaW1tdXRhYmxlX3B1cmVfY29tcG9uZW50X2VzX2dldChzLG8saSl7cmV0dXJuIGZ1bmN0aW9uIGlzSW52YWxpZChzKXtyZXR1cm4gbnVsbD09c30ocyk/aTpmdW5jdGlvbiBpc01hcExpa2Uocyl7cmV0dXJuIG51bGwhPT1zJiYib2JqZWN0Ij09PV90eXBlb2YocykmJiJmdW5jdGlvbiI9PXR5cGVvZiBzLmdldCYmImZ1bmN0aW9uIj09dHlwZW9mIHMuaGFzfShzKT9zLmhhcyhvKT9zLmdldChvKTppOmhhc093blByb3BlcnR5LmNhbGwocyxvKT9zW29dOml9ZnVuY3Rpb24gZ2V0SW4ocyxvLGkpe2Zvcih2YXIgYT0wO2EhPT1vLmxlbmd0aDspaWYoKHM9cmVhY3RfaW1tdXRhYmxlX3B1cmVfY29tcG9uZW50X2VzX2dldChzLG9bYSsrXSxZbikpPT09WW4pcmV0dXJuIGk7cmV0dXJuIHN9ZnVuY3Rpb24gY2hlY2socyl7dmFyIG89YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LGk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9LGE9ZnVuY3Rpb24gY3JlYXRlQ2hlY2tlcihzLG8pe3JldHVybiBmdW5jdGlvbihpKXtpZigic3RyaW5nIj09dHlwZW9mIGkpcmV0dXJuKDAsemUuaXMpKG9baV0sc1tpXSk7aWYoQXJyYXkuaXNBcnJheShpKSlyZXR1cm4oMCx6ZS5pcykoZ2V0SW4obyxpKSxnZXRJbihzLGkpKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGtleTogZXhwZWN0ZWQgQXJyYXkgb3Igc3RyaW5nOiAiK2kpfX0obyxpKSx1PXN8fE9iamVjdC5rZXlzKGZ1bmN0aW9uIF9vYmplY3RTcHJlYWQyKHMpe2Zvcih2YXIgbz0xO288YXJndW1lbnRzLmxlbmd0aDtvKyspe3ZhciBpPW51bGwhPWFyZ3VtZW50c1tvXT9hcmd1bWVudHNbb106e307byUyP293bktleXMoaSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24obyl7X2RlZmluZVByb3BlcnR5KHMsbyxpW29dKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhzLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGkpKTpvd25LZXlzKGkpLmZvckVhY2goKGZ1bmN0aW9uKG8pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLG8sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLG8pKX0pKX1yZXR1cm4gc30oe30saSx7fSxvKSk7cmV0dXJuIHUuZXZlcnkoYSl9Y29uc3QgWG49ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gSW1tdXRhYmxlUHVyZUNvbXBvbmVudCgpe3JldHVybiBmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2socyxvKXtpZighKHMgaW5zdGFuY2VvZiBvKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxJbW11dGFibGVQdXJlQ29tcG9uZW50KSxfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLF9nZXRQcm90b3R5cGVPZihJbW11dGFibGVQdXJlQ29tcG9uZW50KS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfXJldHVybiBmdW5jdGlvbiBfaW5oZXJpdHMocyxvKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgbyYmbnVsbCE9PW8pdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtzLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG8mJm8ucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6cyx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksbyYmX3NldFByb3RvdHlwZU9mKHMsbyl9KEltbXV0YWJsZVB1cmVDb21wb25lbnQscyksZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKHMsbyxpKXtyZXR1cm4gbyYmX2RlZmluZVByb3BlcnRpZXMocy5wcm90b3R5cGUsbyksaSYmX2RlZmluZVByb3BlcnRpZXMocyxpKSxzfShJbW11dGFibGVQdXJlQ29tcG9uZW50LFt7a2V5OiJzaG91bGRDb21wb25lbnRVcGRhdGUiLHZhbHVlOmZ1bmN0aW9uIHNob3VsZENvbXBvbmVudFVwZGF0ZShzKXt2YXIgbz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIWNoZWNrKHRoaXMudXBkYXRlT25Qcm9wcyx0aGlzLnByb3BzLHMsInVwZGF0ZU9uUHJvcHMiKXx8IWNoZWNrKHRoaXMudXBkYXRlT25TdGF0ZXMsdGhpcy5zdGF0ZSxvLCJ1cGRhdGVPblN0YXRlcyIpfX1dKSxJbW11dGFibGVQdXJlQ29tcG9uZW50fShSZS5Db21wb25lbnQpO3ZhciBRbixabj1fX3dlYnBhY2tfcmVxdWlyZV9fKDU1NTYpLGVzPV9fd2VicGFja19yZXF1aXJlX18ubihabik7ZnVuY3Rpb24gX2V4dGVuZHMoKXtyZXR1cm4gX2V4dGVuZHM9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihzKXtmb3IodmFyIG89MTtvPGFyZ3VtZW50cy5sZW5ndGg7bysrKXt2YXIgaT1hcmd1bWVudHNbb107Zm9yKHZhciBhIGluIGkpKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksYSkmJihzW2FdPWlbYV0pfXJldHVybiBzfSxfZXh0ZW5kcy5hcHBseShudWxsLGFyZ3VtZW50cyl9Y29uc3Qgcm9sbGluZ19sb2FkPXM9PlJlLmNyZWF0ZUVsZW1lbnQoInN2ZyIsX2V4dGVuZHMoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MjAwLGhlaWdodDoyMDAsY2xhc3NOYW1lOiJyb2xsaW5nLWxvYWRfc3ZnX19sZHMtcm9sbGluZyIscHJlc2VydmVBc3BlY3RSYXRpbzoieE1pZFlNaWQiLHN0eWxlOntiYWNrZ3JvdW5kSW1hZ2U6Im5vbmUiLGJhY2tncm91bmRQb3NpdGlvbjoiaW5pdGlhbCBpbml0aWFsIixiYWNrZ3JvdW5kUmVwZWF0OiJpbml0aWFsIGluaXRpYWwifSx2aWV3Qm94OiIwIDAgMTAwIDEwMCJ9LHMpLFFufHwoUW49UmUuY3JlYXRlRWxlbWVudCgiY2lyY2xlIix7Y3g6NTAsY3k6NTAscjozNSxmaWxsOiJub25lIixzdHJva2U6IiM1NTUiLHN0cm9rZURhc2hhcnJheToiMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4IixzdHJva2VXaWR0aDoxMH0sUmUuY3JlYXRlRWxlbWVudCgiYW5pbWF0ZVRyYW5zZm9ybSIse2F0dHJpYnV0ZU5hbWU6InRyYW5zZm9ybSIsYmVnaW46IjBzIixjYWxjTW9kZToibGluZWFyIixkdXI6IjFzIixrZXlUaW1lczoiMDsxIixyZXBlYXRDb3VudDoiaW5kZWZpbml0ZSIsdHlwZToicm90YXRlIix2YWx1ZXM6IjAgNTAgNTA7MzYwIDUwIDUwIn0pKSkpLGRlY29kZVJlZk5hbWU9cz0+e2NvbnN0IG89cy5yZXBsYWNlKC9+MS9nLCIvIikucmVwbGFjZSgvfjAvZywifiIpO3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KG8pfWNhdGNoe3JldHVybiBvfX07Y2xhc3MgTW9kZWwgZXh0ZW5kcyBYbntzdGF0aWMgcHJvcFR5cGVzPXtzY2hlbWE6eG4oKS5tYXAuaXNSZXF1aXJlZCxnZXRDb21wb25lbnQ6ZXMoKS5mdW5jLmlzUmVxdWlyZWQsZ2V0Q29uZmlnczplcygpLmZ1bmMuaXNSZXF1aXJlZCxzcGVjU2VsZWN0b3JzOmVzKCkub2JqZWN0LmlzUmVxdWlyZWQsbmFtZTplcygpLnN0cmluZyxkaXNwbGF5TmFtZTplcygpLnN0cmluZyxpc1JlZjplcygpLmJvb2wscmVxdWlyZWQ6ZXMoKS5ib29sLGV4cGFuZERlcHRoOmVzKCkubnVtYmVyLGRlcHRoOmVzKCkubnVtYmVyLHNwZWNQYXRoOnhuKCkubGlzdC5pc1JlcXVpcmVkLGluY2x1ZGVSZWFkT25seTplcygpLmJvb2wsaW5jbHVkZVdyaXRlT25seTplcygpLmJvb2x9O2dldE1vZGVsTmFtZT1zPT4tMSE9PXMuaW5kZXhPZigiIy9kZWZpbml0aW9ucy8iKT9kZWNvZGVSZWZOYW1lKHMucmVwbGFjZSgvXi4qI1wvZGVmaW5pdGlvbnNcLy8sIiIpKTotMSE9PXMuaW5kZXhPZigiIy9jb21wb25lbnRzL3NjaGVtYXMvIik/ZGVjb2RlUmVmTmFtZShzLnJlcGxhY2UoL14uKiNcL2NvbXBvbmVudHNcL3NjaGVtYXNcLy8sIiIpKTp2b2lkIDA7Z2V0UmVmU2NoZW1hPXM9PntsZXR7c3BlY1NlbGVjdG9yczpvfT10aGlzLnByb3BzO3JldHVybiBvLmZpbmREZWZpbml0aW9uKHMpfTtyZW5kZXIoKXtsZXR7Z2V0Q29tcG9uZW50OnMsZ2V0Q29uZmlnczpvLHNwZWNTZWxlY3RvcnM6aSxzY2hlbWE6YSxyZXF1aXJlZDp1LG5hbWU6Xyxpc1JlZjp3LHNwZWNQYXRoOngsZGlzcGxheU5hbWU6QyxpbmNsdWRlUmVhZE9ubHk6aixpbmNsdWRlV3JpdGVPbmx5Okx9PXRoaXMucHJvcHM7Y29uc3QgQj1zKCJPYmplY3RNb2RlbCIpLCQ9cygiQXJyYXlNb2RlbCIpLFY9cygiUHJpbWl0aXZlTW9kZWwiKTtsZXQgVT0ib2JqZWN0Iix6PWEmJmEuZ2V0KCIkJHJlZiIpLFk9YSYmYS5nZXQoIiRyZWYiKTtpZighXyYmeiYmKF89dGhpcy5nZXRNb2RlbE5hbWUoeikpLFkpe2NvbnN0IHM9dGhpcy5nZXRNb2RlbE5hbWUoWSksbz10aGlzLmdldFJlZlNjaGVtYShzKTt6ZS5NYXAuaXNNYXAobyk/KGE9by5tZXJnZURlZXAoYSksenx8KGE9YS5zZXQoIiQkcmVmIixZKSx6PVkpKTp6ZS5NYXAuaXNNYXAoYSkmJjE9PT1hLnNpemUmJihhPW51bGwsXz1ZKX1pZighYSlyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWwgbW9kZWwtdGl0bGUifSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtb2RlbC10aXRsZV9fdGV4dCJ9LEN8fF8pLCFZJiZSZS5jcmVhdGVFbGVtZW50KHJvbGxpbmdfbG9hZCx7aGVpZ2h0OiIyMHB4Iix3aWR0aDoiMjBweCJ9KSk7Y29uc3QgWj1pLmlzT0FTMygpJiZhLmdldCgiZGVwcmVjYXRlZCIpO3N3aXRjaCh3PXZvaWQgMCE9PXc/dzohIXosVT1hJiZhLmdldCgidHlwZSIpfHxVLFUpe2Nhc2Uib2JqZWN0IjpyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChCLE1uKCkoe2NsYXNzTmFtZToib2JqZWN0In0sdGhpcy5wcm9wcyx7c3BlY1BhdGg6eCxnZXRDb25maWdzOm8sc2NoZW1hOmEsbmFtZTpfLGRlcHJlY2F0ZWQ6Wixpc1JlZjp3LGluY2x1ZGVSZWFkT25seTpqLGluY2x1ZGVXcml0ZU9ubHk6TH0pKTtjYXNlImFycmF5IjpyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgkLE1uKCkoe2NsYXNzTmFtZToiYXJyYXkifSx0aGlzLnByb3BzLHtnZXRDb25maWdzOm8sc2NoZW1hOmEsbmFtZTpfLGRlcHJlY2F0ZWQ6WixyZXF1aXJlZDp1LGluY2x1ZGVSZWFkT25seTpqLGluY2x1ZGVXcml0ZU9ubHk6TH0pKTtkZWZhdWx0OnJldHVybiBSZS5jcmVhdGVFbGVtZW50KFYsTW4oKSh7fSx0aGlzLnByb3BzLHtnZXRDb21wb25lbnQ6cyxnZXRDb25maWdzOm8sc2NoZW1hOmEsbmFtZTpfLGRlcHJlY2F0ZWQ6WixyZXF1aXJlZDp1fSkpfX19Y2xhc3MgTW9kZWxzIGV4dGVuZHMgUmUuQ29tcG9uZW50e2dldFNjaGVtYUJhc2VQYXRoPSgpPT50aGlzLnByb3BzLnNwZWNTZWxlY3RvcnMuaXNPQVMzKCk/WyJjb21wb25lbnRzIiwic2NoZW1hcyJdOlsiZGVmaW5pdGlvbnMiXTtnZXRDb2xsYXBzZWRDb250ZW50PSgpPT4iICI7aGFuZGxlVG9nZ2xlPShzLG8pPT57Y29uc3R7bGF5b3V0QWN0aW9uczppfT10aGlzLnByb3BzO2kuc2hvdyhbLi4udGhpcy5nZXRTY2hlbWFCYXNlUGF0aCgpLHNdLG8pLG8mJnRoaXMucHJvcHMuc3BlY0FjdGlvbnMucmVxdWVzdFJlc29sdmVkU3VidHJlZShbLi4udGhpcy5nZXRTY2hlbWFCYXNlUGF0aCgpLHNdKX07b25Mb2FkTW9kZWxzPXM9PntzJiZ0aGlzLnByb3BzLmxheW91dEFjdGlvbnMucmVhZHlUb1Njcm9sbCh0aGlzLmdldFNjaGVtYUJhc2VQYXRoKCkscyl9O29uTG9hZE1vZGVsPXM9PntpZihzKXtjb25zdCBvPXMuZ2V0QXR0cmlidXRlKCJkYXRhLW5hbWUiKTt0aGlzLnByb3BzLmxheW91dEFjdGlvbnMucmVhZHlUb1Njcm9sbChbLi4udGhpcy5nZXRTY2hlbWFCYXNlUGF0aCgpLG9dLHMpfX07cmVuZGVyKCl7bGV0e3NwZWNTZWxlY3RvcnM6cyxnZXRDb21wb25lbnQ6byxsYXlvdXRTZWxlY3RvcnM6aSxsYXlvdXRBY3Rpb25zOmEsZ2V0Q29uZmlnczp1fT10aGlzLnByb3BzLF89cy5kZWZpbml0aW9ucygpLHtkb2NFeHBhbnNpb246dyxkZWZhdWx0TW9kZWxzRXhwYW5kRGVwdGg6eH09dSgpO2lmKCFfLnNpemV8fHg8MClyZXR1cm4gbnVsbDtjb25zdCBDPXRoaXMuZ2V0U2NoZW1hQmFzZVBhdGgoKTtsZXQgaj1pLmlzU2hvd24oQyx4PjAmJiJub25lIiE9PXcpO2NvbnN0IEw9cy5pc09BUzMoKSxCPW8oIk1vZGVsV3JhcHBlciIpLCQ9bygiQ29sbGFwc2UiKSxWPW8oIk1vZGVsQ29sbGFwc2UiKSxVPW8oIkp1bXBUb1BhdGgiLCEwKSx6PW8oIkFycm93VXBJY29uIiksWT1vKCJBcnJvd0Rvd25JY29uIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24iLHtjbGFzc05hbWU6aj8ibW9kZWxzIGlzLW9wZW4iOiJtb2RlbHMiLHJlZjp0aGlzLm9uTG9hZE1vZGVsc30sUmUuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7ImFyaWEtZXhwYW5kZWQiOmosY2xhc3NOYW1lOiJtb2RlbHMtY29udHJvbCIsb25DbGljazooKT0+YS5zaG93KEMsIWopfSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLEw/IlNjaGVtYXMiOiJNb2RlbHMiKSxqP1JlLmNyZWF0ZUVsZW1lbnQoeixudWxsKTpSZS5jcmVhdGVFbGVtZW50KFksbnVsbCkpKSxSZS5jcmVhdGVFbGVtZW50KCQse2lzT3BlbmVkOmp9LF8uZW50cnlTZXEoKS5tYXAoKChbX10pPT57Y29uc3Qgdz1bLi4uQyxfXSxqPVdlKCkuTGlzdCh3KSxMPXMuc3BlY1Jlc29sdmVkU3VidHJlZSh3KSwkPXMuc3BlY0pzb24oKS5nZXRJbih3KSx6PXplLk1hcC5pc01hcChMKT9MOldlKCkuTWFwKCksWT16ZS5NYXAuaXNNYXAoJCk/JDpXZSgpLk1hcCgpLFo9ei5nZXQoInRpdGxlIil8fFkuZ2V0KCJ0aXRsZSIpfHxfLGVlPWkuaXNTaG93bih3LCExKTtlZSYmMD09PXouc2l6ZSYmWS5zaXplPjAmJnRoaXMucHJvcHMuc3BlY0FjdGlvbnMucmVxdWVzdFJlc29sdmVkU3VidHJlZSh3KTtjb25zdCBpZT1SZS5jcmVhdGVFbGVtZW50KEIse25hbWU6XyxleHBhbmREZXB0aDp4LHNjaGVtYTp6fHxXZSgpLk1hcCgpLGRpc3BsYXlOYW1lOlosZnVsbFBhdGg6dyxzcGVjUGF0aDpqLGdldENvbXBvbmVudDpvLHNwZWNTZWxlY3RvcnM6cyxnZXRDb25maWdzOnUsbGF5b3V0U2VsZWN0b3JzOmksbGF5b3V0QWN0aW9uczphLGluY2x1ZGVSZWFkT25seTohMCxpbmNsdWRlV3JpdGVPbmx5OiEwfSksYWU9UmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWwtYm94In0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWwgbW9kZWwtdGl0bGUifSxaKSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2lkOmBtb2RlbC0ke199YCxjbGFzc05hbWU6Im1vZGVsLWNvbnRhaW5lciIsa2V5OmBtb2RlbHMtc2VjdGlvbi0ke199YCwiZGF0YS1uYW1lIjpfLHJlZjp0aGlzLm9uTG9hZE1vZGVsfSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtb2RlbHMtanVtcC10by1wYXRoIn0sUmUuY3JlYXRlRWxlbWVudChVLHtwYXRoOmp9KSksUmUuY3JlYXRlRWxlbWVudChWLHtjbGFzc2VzOiJtb2RlbC1ib3giLGNvbGxhcHNlZENvbnRlbnQ6dGhpcy5nZXRDb2xsYXBzZWRDb250ZW50KF8pLG9uVG9nZ2xlOnRoaXMuaGFuZGxlVG9nZ2xlLHRpdGxlOmFlLGRpc3BsYXlOYW1lOlosbW9kZWxOYW1lOl8sc3BlY1BhdGg6aixsYXlvdXRTZWxlY3RvcnM6aSxsYXlvdXRBY3Rpb25zOmEsaGlkZVNlbGZPbkV4cGFuZDohMCxleHBhbmRlZDp4PjAmJmVlfSxpZSkpfSkpLnRvQXJyYXkoKSkpfX1jb25zdCBlbnVtX21vZGVsPSh7dmFsdWU6cyxnZXRDb21wb25lbnQ6b30pPT57bGV0IGk9bygiTW9kZWxDb2xsYXBzZSIpLGE9UmUuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCwiQXJyYXkgWyAiLHMuY291bnQoKSwiIF0iKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToicHJvcC1lbnVtIn0sIkVudW06IixSZS5jcmVhdGVFbGVtZW50KCJiciIsbnVsbCksUmUuY3JlYXRlRWxlbWVudChpLHtjb2xsYXBzZWRDb250ZW50OmF9LCJbICIscy5tYXAoU3RyaW5nKS5qb2luKCIsICIpLCIgXSIpKX07ZnVuY3Rpb24gaXNBYnNvbHV0ZVVybChzKXtyZXR1cm4gcy5tYXRjaCgvXig/OlthLXpdKzopP1wvXC8vaSl9ZnVuY3Rpb24gYnVpbGRCYXNlVXJsKHMsbyl7cmV0dXJuIHM/aXNBYnNvbHV0ZVVybChzKT9mdW5jdGlvbiBhZGRQcm90b2NvbChzKXtyZXR1cm4gcy5tYXRjaCgvXlwvXC8vaSk/YCR7d2luZG93LmxvY2F0aW9uLnByb3RvY29sfSR7c31gOnN9KHMpOm5ldyBVUkwocyxvKS5ocmVmOm99ZnVuY3Rpb24gc2FmZUJ1aWxkVXJsKHMsbyx7c2VsZWN0ZWRTZXJ2ZXI6aT0iIn09e30pe3RyeXtyZXR1cm4gZnVuY3Rpb24gYnVpbGRVcmwocyxvLHtzZWxlY3RlZFNlcnZlcjppPSIifT17fSl7aWYoIXMpcmV0dXJuO2lmKGlzQWJzb2x1dGVVcmwocykpcmV0dXJuIHM7Y29uc3QgYT1idWlsZEJhc2VVcmwoaSxvKTtyZXR1cm4gaXNBYnNvbHV0ZVVybChhKT9uZXcgVVJMKHMsYSkuaHJlZjpuZXcgVVJMKHMsd2luZG93LmxvY2F0aW9uLmhyZWYpLmhyZWZ9KHMsbyx7c2VsZWN0ZWRTZXJ2ZXI6aX0pfWNhdGNoe3JldHVybn19ZnVuY3Rpb24gc2FuaXRpemVVcmwocyl7aWYoInN0cmluZyIhPXR5cGVvZiBzfHwiIj09PXMudHJpbSgpKXJldHVybiIiO2NvbnN0IG89cy50cmltKCksaT0iYWJvdXQ6YmxhbmsiO3RyeXtjb25zdCBzPWBodHRwczovL2Jhc2Uke1N0cmluZyhNYXRoLnJhbmRvbSgpKS5zbGljZSgyKX1gLGE9bmV3IFVSTChvLHMpLHU9YS5wcm90b2NvbC5zbGljZSgwLC0xKTtyZXR1cm5bImphdmFzY3JpcHQiLCJkYXRhIiwidmJzY3JpcHQiXS5pbmNsdWRlcyh1LnRvTG93ZXJDYXNlKCkpP2k6YS5vcmlnaW49PT1zP28uc3RhcnRzV2l0aCgiLyIpP2Ake2EucGF0aG5hbWV9JHthLnNlYXJjaH0ke2EuaGFzaH1gOm8uc3RhcnRzV2l0aCgiLiIpP2AuJHthLnBhdGhuYW1lfSR7YS5zZWFyY2h9JHthLmhhc2h9YDpgJHthLnBhdGhuYW1lLnN1YnN0cmluZygxKX0ke2Euc2VhcmNofSR7YS5oYXNofWA6U3RyaW5nKGEpfWNhdGNoe3JldHVybiBpfX1jbGFzcyBPYmplY3RNb2RlbCBleHRlbmRzIFJlLkNvbXBvbmVudHtyZW5kZXIoKXtsZXR7c2NoZW1hOnMsbmFtZTpvLGRpc3BsYXlOYW1lOmksaXNSZWY6YSxnZXRDb21wb25lbnQ6dSxnZXRDb25maWdzOl8sZGVwdGg6dyxvblRvZ2dsZTp4LGV4cGFuZGVkOkMsc3BlY1BhdGg6aiwuLi5MfT10aGlzLnByb3BzLHtzcGVjU2VsZWN0b3JzOkIsZXhwYW5kRGVwdGg6JCxpbmNsdWRlUmVhZE9ubHk6VixpbmNsdWRlV3JpdGVPbmx5OlV9PUw7Y29uc3R7aXNPQVMzOnp9PUIsWT13PjJ8fDI9PT13JiYiaXRlbXMiIT09ai5sYXN0KCk7aWYoIXMpcmV0dXJuIG51bGw7Y29uc3R7c2hvd0V4dGVuc2lvbnM6Wn09XygpLGVlPVo/Z2V0RXh0ZW5zaW9ucyhzKTooMCx6ZS5MaXN0KSgpO2xldCBpZT1zLmdldCgiZGVzY3JpcHRpb24iKSxhZT1zLmdldCgicHJvcGVydGllcyIpLGNlPXMuZ2V0KCJhZGRpdGlvbmFsUHJvcGVydGllcyIpLGxlPXMuZ2V0KCJ0aXRsZSIpfHxpfHxvLHBlPXMuZ2V0KCJyZXF1aXJlZCIpLGRlPXMuZmlsdGVyKCgocyxvKT0+LTEhPT1bIm1heFByb3BlcnRpZXMiLCJtaW5Qcm9wZXJ0aWVzIiwibnVsbGFibGUiLCJleGFtcGxlIl0uaW5kZXhPZihvKSkpLGZlPXMuZ2V0KCJkZXByZWNhdGVkIikseWU9cy5nZXRJbihbImV4dGVybmFsRG9jcyIsInVybCJdKSxiZT1zLmdldEluKFsiZXh0ZXJuYWxEb2NzIiwiZGVzY3JpcHRpb24iXSk7Y29uc3QgX2U9dSgiSnVtcFRvUGF0aCIsITApLFNlPXUoIk1hcmtkb3duIiwhMCksd2U9dSgiTW9kZWwiKSx4ZT11KCJNb2RlbENvbGxhcHNlIiksUGU9dSgiUHJvcGVydHkiKSxUZT11KCJMaW5rIiksJGU9dSgiTW9kZWxFeHRlbnNpb25zIiksSnVtcFRvUGF0aFNlY3Rpb249KCk9PlJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsLWp1bXAtdG8tcGF0aCJ9LFJlLmNyZWF0ZUVsZW1lbnQoX2Use3BhdGg6an0pKSxxZT1SZS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsInsiKSwiLi4uIixSZS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCJ9IiksYT9SZS5jcmVhdGVFbGVtZW50KEp1bXBUb1BhdGhTZWN0aW9uLG51bGwpOiIiKSxXZT1CLmlzT0FTMygpP3MuZ2V0KCJhbGxPZiIpOm51bGwsSGU9Qi5pc09BUzMoKT9zLmdldCgiYW55T2YiKTpudWxsLFllPUIuaXNPQVMzKCk/cy5nZXQoIm9uZU9mIik6bnVsbCxYZT1CLmlzT0FTMygpP3MuZ2V0KCJub3QiKTpudWxsLFFlPWxlJiZSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtb2RlbC10aXRsZSJ9LGEmJnMuZ2V0KCIkJHJlZiIpJiZSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOkpuKCkoIm1vZGVsLWhpbnQiLHsibW9kZWwtaGludC0tZW1iZWRkZWQiOll9KX0scy5nZXQoIiQkcmVmIikpLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsLXRpdGxlX190ZXh0In0sbGUpKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWwifSxSZS5jcmVhdGVFbGVtZW50KHhlLHttb2RlbE5hbWU6byx0aXRsZTpRZSxvblRvZ2dsZTp4LGV4cGFuZGVkOiEhQ3x8dzw9JCxjb2xsYXBzZWRDb250ZW50OnFlfSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJicmFjZS1vcGVuIG9iamVjdCJ9LCJ7IiksYT9SZS5jcmVhdGVFbGVtZW50KEp1bXBUb1BhdGhTZWN0aW9uLG51bGwpOm51bGwsUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiaW5uZXItb2JqZWN0In0sUmUuY3JlYXRlRWxlbWVudCgidGFibGUiLHtjbGFzc05hbWU6Im1vZGVsIn0sUmUuY3JlYXRlRWxlbWVudCgidGJvZHkiLG51bGwsaWU/UmUuY3JlYXRlRWxlbWVudCgidHIiLHtjbGFzc05hbWU6ImRlc2NyaXB0aW9uIn0sUmUuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsImRlc2NyaXB0aW9uOiIpLFJlLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoU2Use3NvdXJjZTppZX0pKSk6bnVsbCx5ZSYmUmUuY3JlYXRlRWxlbWVudCgidHIiLHtjbGFzc05hbWU6ImV4dGVybmFsLWRvY3MifSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCwiZXh0ZXJuYWxEb2NzOiIpLFJlLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoVGUse3RhcmdldDoiX2JsYW5rIixocmVmOnNhbml0aXplVXJsKHllKX0sYmV8fHllKSkpLGZlP1JlLmNyZWF0ZUVsZW1lbnQoInRyIix7Y2xhc3NOYW1lOiJwcm9wZXJ0eSJ9LFJlLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLCJkZXByZWNhdGVkOiIpLFJlLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLCJ0cnVlIikpOm51bGwsYWUmJmFlLnNpemU/YWUuZW50cnlTZXEoKS5maWx0ZXIoKChbLHNdKT0+KCFzLmdldCgicmVhZE9ubHkiKXx8VikmJighcy5nZXQoIndyaXRlT25seSIpfHxVKSkpLm1hcCgoKFtzLGldKT0+e2xldCBhPXooKSYmaS5nZXQoImRlcHJlY2F0ZWQiKSx4PXplLkxpc3QuaXNMaXN0KHBlKSYmcGUuY29udGFpbnMocyksQz1bInByb3BlcnR5LXJvdyJdO3JldHVybiBhJiZDLnB1c2goImRlcHJlY2F0ZWQiKSx4JiZDLnB1c2goInJlcXVpcmVkIiksUmUuY3JlYXRlRWxlbWVudCgidHIiLHtrZXk6cyxjbGFzc05hbWU6Qy5qb2luKCIgIil9LFJlLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLHMseCYmUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToic3RhciJ9LCIqIikpLFJlLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQod2UsTW4oKSh7a2V5OmBvYmplY3QtJHtvfS0ke3N9XyR7aX1gfSxMLHtyZXF1aXJlZDp4LGdldENvbXBvbmVudDp1LHNwZWNQYXRoOmoucHVzaCgicHJvcGVydGllcyIscyksZ2V0Q29uZmlnczpfLHNjaGVtYTppLGRlcHRoOncrMX0pKSkpfSkpLnRvQXJyYXkoKTpudWxsLDA9PT1lZS5zaXplP251bGw6UmUuY3JlYXRlRWxlbWVudChSZS5GcmFnbWVudCxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInRyIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLCLCoCIpKSxSZS5jcmVhdGVFbGVtZW50KCRlLHtleHRlbnNpb25zOmVlLHByb3BDbGFzczoiZXh0ZW5zaW9uIn0pKSxjZSYmY2Uuc2l6ZT9SZS5jcmVhdGVFbGVtZW50KCJ0ciIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCwiPCAqID46IiksUmUuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsUmUuY3JlYXRlRWxlbWVudCh3ZSxNbigpKHt9LEwse3JlcXVpcmVkOiExLGdldENvbXBvbmVudDp1LHNwZWNQYXRoOmoucHVzaCgiYWRkaXRpb25hbFByb3BlcnRpZXMiKSxnZXRDb25maWdzOl8sc2NoZW1hOmNlLGRlcHRoOncrMX0pKSkpOm51bGwsV2U/UmUuY3JlYXRlRWxlbWVudCgidHIiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsImFsbE9mIC0+IiksUmUuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsV2UubWFwKCgocyxvKT0+UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5Om99LFJlLmNyZWF0ZUVsZW1lbnQod2UsTW4oKSh7fSxMLHtyZXF1aXJlZDohMSxnZXRDb21wb25lbnQ6dSxzcGVjUGF0aDpqLnB1c2goImFsbE9mIixvKSxnZXRDb25maWdzOl8sc2NoZW1hOnMsZGVwdGg6dysxfSkpKSkpKSk6bnVsbCxIZT9SZS5jcmVhdGVFbGVtZW50KCJ0ciIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCwiYW55T2YgLT4iKSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxIZS5tYXAoKChzLG8pPT5SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6b30sUmUuY3JlYXRlRWxlbWVudCh3ZSxNbigpKHt9LEwse3JlcXVpcmVkOiExLGdldENvbXBvbmVudDp1LHNwZWNQYXRoOmoucHVzaCgiYW55T2YiLG8pLGdldENvbmZpZ3M6XyxzY2hlbWE6cyxkZXB0aDp3KzF9KSkpKSkpKTpudWxsLFllP1JlLmNyZWF0ZUVsZW1lbnQoInRyIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLCJvbmVPZiAtPiIpLFJlLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLFllLm1hcCgoKHMsbyk9PlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleTpvfSxSZS5jcmVhdGVFbGVtZW50KHdlLE1uKCkoe30sTCx7cmVxdWlyZWQ6ITEsZ2V0Q29tcG9uZW50OnUsc3BlY1BhdGg6ai5wdXNoKCJvbmVPZiIsbyksZ2V0Q29uZmlnczpfLHNjaGVtYTpzLGRlcHRoOncrMX0pKSkpKSkpOm51bGwsWGU/UmUuY3JlYXRlRWxlbWVudCgidHIiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsIm5vdCAtPiIpLFJlLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KHdlLE1uKCkoe30sTCx7cmVxdWlyZWQ6ITEsZ2V0Q29tcG9uZW50OnUsc3BlY1BhdGg6ai5wdXNoKCJub3QiKSxnZXRDb25maWdzOl8sc2NoZW1hOlhlLGRlcHRoOncrMX0pKSkpKTpudWxsKSkpLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6ImJyYWNlLWNsb3NlIn0sIn0iKSksZGUuc2l6ZT9kZS5lbnRyeVNlcSgpLm1hcCgoKFtzLG9dKT0+UmUuY3JlYXRlRWxlbWVudChQZSx7a2V5OmAke3N9LSR7b31gLHByb3BLZXk6cyxwcm9wVmFsOm8scHJvcENsYXNzOiJwcm9wZXJ0eSJ9KSkpOm51bGwpfX1jbGFzcyBBcnJheU1vZGVsIGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6cyxnZXRDb25maWdzOm8sc2NoZW1hOmksZGVwdGg6YSxleHBhbmREZXB0aDp1LG5hbWU6XyxkaXNwbGF5TmFtZTp3LHNwZWNQYXRoOnh9PXRoaXMucHJvcHMsQz1pLmdldCgiZGVzY3JpcHRpb24iKSxqPWkuZ2V0KCJpdGVtcyIpLEw9aS5nZXQoInRpdGxlIil8fHd8fF8sQj1pLmZpbHRlcigoKHMsbyk9Pi0xPT09WyJ0eXBlIiwiaXRlbXMiLCJkZXNjcmlwdGlvbiIsIiQkcmVmIiwiZXh0ZXJuYWxEb2NzIl0uaW5kZXhPZihvKSkpLCQ9aS5nZXRJbihbImV4dGVybmFsRG9jcyIsInVybCJdKSxWPWkuZ2V0SW4oWyJleHRlcm5hbERvY3MiLCJkZXNjcmlwdGlvbiJdKTtjb25zdCBVPXMoIk1hcmtkb3duIiwhMCksej1zKCJNb2RlbENvbGxhcHNlIiksWT1zKCJNb2RlbCIpLFo9cygiUHJvcGVydHkiKSxlZT1zKCJMaW5rIiksaWU9TCYmUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWwtdGl0bGUifSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtb2RlbC10aXRsZV9fdGV4dCJ9LEwpKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWwifSxSZS5jcmVhdGVFbGVtZW50KHose3RpdGxlOmllLGV4cGFuZGVkOmE8PXUsY29sbGFwc2VkQ29udGVudDoiWy4uLl0ifSwiWyIsQi5zaXplP0IuZW50cnlTZXEoKS5tYXAoKChbcyxvXSk9PlJlLmNyZWF0ZUVsZW1lbnQoWix7a2V5OmAke3N9LSR7b31gLHByb3BLZXk6cyxwcm9wVmFsOm8scHJvcENsYXNzOiJwcm9wZXJ0eSJ9KSkpOm51bGwsQz9SZS5jcmVhdGVFbGVtZW50KFUse3NvdXJjZTpDfSk6Qi5zaXplP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibWFya2Rvd24ifSk6bnVsbCwkJiZSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImV4dGVybmFsLWRvY3MifSxSZS5jcmVhdGVFbGVtZW50KGVlLHt0YXJnZXQ6Il9ibGFuayIsaHJlZjpzYW5pdGl6ZVVybCgkKX0sVnx8JCkpLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsUmUuY3JlYXRlRWxlbWVudChZLE1uKCkoe30sdGhpcy5wcm9wcyx7Z2V0Q29uZmlnczpvLHNwZWNQYXRoOngucHVzaCgiaXRlbXMiKSxuYW1lOm51bGwsc2NoZW1hOmoscmVxdWlyZWQ6ITEsZGVwdGg6YSsxfSkpKSwiXSIpKX19Y29uc3QgdHM9InByb3BlcnR5IHByaW1pdGl2ZSI7Y2xhc3MgUHJpbWl0aXZlIGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe2xldHtzY2hlbWE6cyxnZXRDb21wb25lbnQ6byxnZXRDb25maWdzOmksbmFtZTphLGRpc3BsYXlOYW1lOnUsZGVwdGg6XyxleHBhbmREZXB0aDp3fT10aGlzLnByb3BzO2NvbnN0e3Nob3dFeHRlbnNpb25zOnh9PWkoKTtpZighc3x8IXMuZ2V0KXJldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwpO2xldCBDPXMuZ2V0KCJ0eXBlIiksaj1zLmdldCgiZm9ybWF0IiksTD1zLmdldCgieG1sIiksQj1zLmdldCgiZW51bSIpLCQ9cy5nZXQoInRpdGxlIil8fHV8fGEsVj1zLmdldCgiZGVzY3JpcHRpb24iKTtjb25zdCBVPWdldEV4dGVuc2lvbnMocyk7bGV0IHo9cy5maWx0ZXIoKChzLG8pPT4tMT09PVsiZW51bSIsInR5cGUiLCJmb3JtYXQiLCJkZXNjcmlwdGlvbiIsIiQkcmVmIiwiZXh0ZXJuYWxEb2NzIl0uaW5kZXhPZihvKSkpLmZpbHRlck5vdCgoKHMsbyk9PlUuaGFzKG8pKSksWT1zLmdldEluKFsiZXh0ZXJuYWxEb2NzIiwidXJsIl0pLFo9cy5nZXRJbihbImV4dGVybmFsRG9jcyIsImRlc2NyaXB0aW9uIl0pO2NvbnN0IGVlPW8oIk1hcmtkb3duIiwhMCksaWU9bygiRW51bU1vZGVsIiksYWU9bygiUHJvcGVydHkiKSxjZT1vKCJNb2RlbENvbGxhcHNlIiksbGU9bygiTGluayIpLHBlPW8oIk1vZGVsRXh0ZW5zaW9ucyIpLGRlPSQmJlJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsLXRpdGxlIn0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWwtdGl0bGVfX3RleHQifSwkKSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsIn0sUmUuY3JlYXRlRWxlbWVudChjZSx7dGl0bGU6ZGUsZXhwYW5kZWQ6Xzw9dyxjb2xsYXBzZWRDb250ZW50OiJbLi4uXSJ9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6InByb3AifSxhJiZfPjEmJlJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6InByb3AtbmFtZSJ9LCQpLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6InByb3AtdHlwZSJ9LEMpLGomJlJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6InByb3AtZm9ybWF0In0sIigkIixqLCIpIiksei5zaXplP3ouZW50cnlTZXEoKS5tYXAoKChbcyxvXSk9PlJlLmNyZWF0ZUVsZW1lbnQoYWUse2tleTpgJHtzfS0ke299YCxwcm9wS2V5OnMscHJvcFZhbDpvLHByb3BDbGFzczp0c30pKSk6bnVsbCx4JiZVLnNpemU+MD9SZS5jcmVhdGVFbGVtZW50KHBlLHtleHRlbnNpb25zOlUscHJvcENsYXNzOmAke3RzfSBleHRlbnNpb25gfSk6bnVsbCxWP1JlLmNyZWF0ZUVsZW1lbnQoZWUse3NvdXJjZTpWfSk6bnVsbCxZJiZSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImV4dGVybmFsLWRvY3MifSxSZS5jcmVhdGVFbGVtZW50KGxlLHt0YXJnZXQ6Il9ibGFuayIsaHJlZjpzYW5pdGl6ZVVybChZKX0sWnx8WSkpLEwmJkwuc2l6ZT9SZS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImJyIixudWxsKSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnRzfSwieG1sOiIpLEwuZW50cnlTZXEoKS5tYXAoKChbcyxvXSk9PlJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtrZXk6YCR7c30tJHtvfWAsY2xhc3NOYW1lOnRzfSxSZS5jcmVhdGVFbGVtZW50KCJiciIsbnVsbCksIsKgwqDCoCIscywiOiAiLFN0cmluZyhvKSkpKS50b0FycmF5KCkpOm51bGwsQiYmUmUuY3JlYXRlRWxlbWVudChpZSx7dmFsdWU6QixnZXRDb21wb25lbnQ6b30pKSkpfX1jbGFzcyBTY2hlbWVzIGV4dGVuZHMgUmUuQ29tcG9uZW50e1VOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKXtsZXR7c2NoZW1lczpzfT10aGlzLnByb3BzO3RoaXMuc2V0U2NoZW1lKHMuZmlyc3QoKSl9VU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMocyl7dGhpcy5wcm9wcy5jdXJyZW50U2NoZW1lJiZzLnNjaGVtZXMuaW5jbHVkZXModGhpcy5wcm9wcy5jdXJyZW50U2NoZW1lKXx8dGhpcy5zZXRTY2hlbWUocy5zY2hlbWVzLmZpcnN0KCkpfW9uQ2hhbmdlPXM9Pnt0aGlzLnNldFNjaGVtZShzLnRhcmdldC52YWx1ZSl9O3NldFNjaGVtZT1zPT57bGV0e3BhdGg6byxtZXRob2Q6aSxzcGVjQWN0aW9uczphfT10aGlzLnByb3BzO2Euc2V0U2NoZW1lKHMsbyxpKX07cmVuZGVyKCl7bGV0e3NjaGVtZXM6cyxjdXJyZW50U2NoZW1lOm99PXRoaXMucHJvcHM7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjoic2NoZW1lcyJ9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6InNjaGVtZXMtdGl0bGUifSwiU2NoZW1lcyIpLFJlLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIse29uQ2hhbmdlOnRoaXMub25DaGFuZ2UsdmFsdWU6byxpZDoic2NoZW1lcyJ9LHMudmFsdWVTZXEoKS5tYXAoKHM9PlJlLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIse3ZhbHVlOnMsa2V5OnN9LHMpKSkudG9BcnJheSgpKSl9fWNsYXNzIFNjaGVtZXNDb250YWluZXIgZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7c3BlY0FjdGlvbnM6cyxzcGVjU2VsZWN0b3JzOm8sZ2V0Q29tcG9uZW50Oml9PXRoaXMucHJvcHMsYT1vLm9wZXJhdGlvblNjaGVtZSgpLHU9by5zY2hlbWVzKCksXz1pKCJzY2hlbWVzIik7cmV0dXJuIHUmJnUuc2l6ZT9SZS5jcmVhdGVFbGVtZW50KF8se2N1cnJlbnRTY2hlbWU6YSxzY2hlbWVzOnUsc3BlY0FjdGlvbnM6c30pOm51bGx9fXZhciBycz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI0Njc3KSxucz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocnMpO2NvbnN0IHNzPXt2YWx1ZToiIixvbkNoYW5nZTooKT0+e30sc2NoZW1hOnt9LGtleU5hbWU6IiIscmVxdWlyZWQ6ITEsZXJyb3JzOigwLHplLkxpc3QpKCl9O2NsYXNzIEpzb25TY2hlbWFGb3JtIGV4dGVuZHMgUmUuQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9c3M7Y29tcG9uZW50RGlkTW91bnQoKXtjb25zdHtkaXNwYXRjaEluaXRpYWxWYWx1ZTpzLHZhbHVlOm8sb25DaGFuZ2U6aX09dGhpcy5wcm9wcztzP2kobyk6ITE9PT1zJiZpKCIiKX1yZW5kZXIoKXtsZXR7c2NoZW1hOnMsZXJyb3JzOm8sdmFsdWU6aSxvbkNoYW5nZTphLGdldENvbXBvbmVudDp1LGZuOl8sZGlzYWJsZWQ6d309dGhpcy5wcm9wcztjb25zdCB4PXMmJnMuZ2V0P3MuZ2V0KCJmb3JtYXQiKTpudWxsLEM9cyYmcy5nZXQ/cy5nZXQoInR5cGUiKTpudWxsLGo9Xy5nZXRTY2hlbWFPYmplY3RUeXBlKHMpLEw9Xy5pc0ZpbGVVcGxvYWRJbnRlbmRlZChzKTtsZXQgZ2V0Q29tcG9uZW50U2lsZW50bHk9cz0+dShzLCExLHtmYWlsU2lsZW50bHk6ITB9KSxCPUM/Z2V0Q29tcG9uZW50U2lsZW50bHkoeD9gSnNvblNjaGVtYV8ke0N9XyR7eH1gOmBKc29uU2NoZW1hXyR7Q31gKTp1KCJKc29uU2NoZW1hX3N0cmluZyIpO3JldHVybiBMfHwhemUuTGlzdC5pc0xpc3QoQyl8fCJhcnJheSIhPT1qJiYib2JqZWN0IiE9PWp8fChCPXUoIkpzb25TY2hlbWFfb2JqZWN0IikpLEJ8fChCPXUoIkpzb25TY2hlbWFfc3RyaW5nIikpLFJlLmNyZWF0ZUVsZW1lbnQoQixNbigpKHt9LHRoaXMucHJvcHMse2Vycm9yczpvLGZuOl8sZ2V0Q29tcG9uZW50OnUsdmFsdWU6aSxvbkNoYW5nZTphLHNjaGVtYTpzLGRpc2FibGVkOnd9KSl9fWNsYXNzIEpzb25TY2hlbWFfc3RyaW5nIGV4dGVuZHMgUmUuQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9c3M7b25DaGFuZ2U9cz0+e2NvbnN0IG89dGhpcy5wcm9wcy5zY2hlbWEmJiJmaWxlIj09PXRoaXMucHJvcHMuc2NoZW1hLmdldCgidHlwZSIpP3MudGFyZ2V0LmZpbGVzWzBdOnMudGFyZ2V0LnZhbHVlO3RoaXMucHJvcHMub25DaGFuZ2Uobyx0aGlzLnByb3BzLmtleU5hbWUpfTtvbkVudW1DaGFuZ2U9cz0+dGhpcy5wcm9wcy5vbkNoYW5nZShzKTtyZW5kZXIoKXtsZXR7Z2V0Q29tcG9uZW50OnMsdmFsdWU6byxzY2hlbWE6aSxlcnJvcnM6YSxyZXF1aXJlZDp1LGRlc2NyaXB0aW9uOl8sZGlzYWJsZWQ6d309dGhpcy5wcm9wcztjb25zdCB4PWkmJmkuZ2V0P2kuZ2V0KCJlbnVtIik6bnVsbCxDPWkmJmkuZ2V0P2kuZ2V0KCJmb3JtYXQiKTpudWxsLGo9aSYmaS5nZXQ/aS5nZXQoInR5cGUiKTpudWxsLEw9aSYmaS5nZXQ/aS5nZXQoImluIik6bnVsbDtpZihvPyhpc0ltbXV0YWJsZShvKXx8Im9iamVjdCI9PXR5cGVvZiBvKSYmKG89c3RyaW5naWZ5KG8pKTpvPSIiLGE9YS50b0pTP2EudG9KUygpOltdLHgpe2NvbnN0IGk9cygiU2VsZWN0Iik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoaSx7Y2xhc3NOYW1lOmEubGVuZ3RoPyJpbnZhbGlkIjoiIix0aXRsZTphLmxlbmd0aD9hOiIiLGFsbG93ZWRWYWx1ZXM6Wy4uLnhdLHZhbHVlOm8sYWxsb3dFbXB0eVZhbHVlOiF1LGRpc2FibGVkOncsb25DaGFuZ2U6dGhpcy5vbkVudW1DaGFuZ2V9KX1jb25zdCBCPXd8fEwmJiJmb3JtRGF0YSI9PT1MJiYhKCJGb3JtRGF0YSJpbiB3aW5kb3cpLCQ9cygiSW5wdXQiKTtyZXR1cm4gaiYmImZpbGUiPT09aj9SZS5jcmVhdGVFbGVtZW50KCQse3R5cGU6ImZpbGUiLGNsYXNzTmFtZTphLmxlbmd0aD8iaW52YWxpZCI6IiIsdGl0bGU6YS5sZW5ndGg/YToiIixvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlLGRpc2FibGVkOkJ9KTpSZS5jcmVhdGVFbGVtZW50KG5zKCkse3R5cGU6QyYmInBhc3N3b3JkIj09PUM/InBhc3N3b3JkIjoidGV4dCIsY2xhc3NOYW1lOmEubGVuZ3RoPyJpbnZhbGlkIjoiIix0aXRsZTphLmxlbmd0aD9hOiIiLHZhbHVlOm8sbWluTGVuZ3RoOjAsZGVib3VuY2VUaW1lb3V0OjM1MCxwbGFjZWhvbGRlcjpfLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2UsZGlzYWJsZWQ6Qn0pfX1jbGFzcyBKc29uU2NoZW1hX2FycmF5IGV4dGVuZHMgUmUuUHVyZUNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXNzO2NvbnN0cnVjdG9yKHMsbyl7c3VwZXIocyxvKSx0aGlzLnN0YXRlPXt2YWx1ZTp2YWx1ZU9yRW1wdHlMaXN0KHMudmFsdWUpLHNjaGVtYTpzLnNjaGVtYX19VU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMocyl7Y29uc3Qgbz12YWx1ZU9yRW1wdHlMaXN0KHMudmFsdWUpO28hPT10aGlzLnN0YXRlLnZhbHVlJiZ0aGlzLnNldFN0YXRlKHt2YWx1ZTpvfSkscy5zY2hlbWEhPT10aGlzLnN0YXRlLnNjaGVtYSYmdGhpcy5zZXRTdGF0ZSh7c2NoZW1hOnMuc2NoZW1hfSl9b25DaGFuZ2U9KCk9Pnt0aGlzLnByb3BzLm9uQ2hhbmdlKHRoaXMuc3RhdGUudmFsdWUpfTtvbkl0ZW1DaGFuZ2U9KHMsbyk9Pnt0aGlzLnNldFN0YXRlKCgoe3ZhbHVlOml9KT0+KHt2YWx1ZTppLnNldChvLHMpfSkpLHRoaXMub25DaGFuZ2UpfTtyZW1vdmVJdGVtPXM9Pnt0aGlzLnNldFN0YXRlKCgoe3ZhbHVlOm99KT0+KHt2YWx1ZTpvLmRlbGV0ZShzKX0pKSx0aGlzLm9uQ2hhbmdlKX07YWRkSXRlbT0oKT0+e2NvbnN0e2ZuOnN9PXRoaXMucHJvcHM7bGV0IG89dmFsdWVPckVtcHR5TGlzdCh0aGlzLnN0YXRlLnZhbHVlKTt0aGlzLnNldFN0YXRlKCgoKT0+KHt2YWx1ZTpvLnB1c2gocy5nZXRTYW1wbGVTY2hlbWEodGhpcy5zdGF0ZS5zY2hlbWEuZ2V0KCJpdGVtcyIpLCExLHtpbmNsdWRlV3JpdGVPbmx5OiEwfSkpfSkpLHRoaXMub25DaGFuZ2UpfTtvbkVudW1DaGFuZ2U9cz0+e3RoaXMuc2V0U3RhdGUoKCgpPT4oe3ZhbHVlOnN9KSksdGhpcy5vbkNoYW5nZSl9O3JlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6cyxyZXF1aXJlZDpvLHNjaGVtYTppLGVycm9yczphLGZuOnUsZGlzYWJsZWQ6X309dGhpcy5wcm9wczthPWEudG9KUz9hLnRvSlMoKTpBcnJheS5pc0FycmF5KGEpP2E6W107Y29uc3Qgdz1hLmZpbHRlcigocz0+InN0cmluZyI9PXR5cGVvZiBzKSkseD1hLmZpbHRlcigocz0+dm9pZCAwIT09cy5uZWVkUmVtb3ZlKSkubWFwKChzPT5zLmVycm9yKSksQz10aGlzLnN0YXRlLnZhbHVlLGo9ISEoQyYmQy5jb3VudCYmQy5jb3VudCgpPjApLEw9aS5nZXRJbihbIml0ZW1zIiwiZW51bSJdKSxCPWkuZ2V0KCJpdGVtcyIpLCQ9dS5nZXRTY2hlbWFPYmplY3RUeXBlKEIpLFY9dS5nZXRTY2hlbWFPYmplY3RUeXBlTGFiZWwoQiksVT1pLmdldEluKFsiaXRlbXMiLCJmb3JtYXQiXSksej1pLmdldCgiaXRlbXMiKTtsZXQgWSxaPSExLGVlPSJmaWxlIj09PSR8fCJzdHJpbmciPT09JCYmImJpbmFyeSI9PT1VO2lmKCQmJlU/WT1zKGBKc29uU2NoZW1hXyR7JH1fJHtVfWApOiJib29sZWFuIiE9PSQmJiJhcnJheSIhPT0kJiYib2JqZWN0IiE9PSR8fChZPXMoYEpzb25TY2hlbWFfJHskfWApKSwhemUuTGlzdC5pc0xpc3QoQj8uZ2V0KCJ0eXBlIikpfHwiYXJyYXkiIT09JCYmIm9iamVjdCIhPT0kfHwoWT1zKCJKc29uU2NoZW1hX29iamVjdCIpKSxZfHxlZXx8KFo9ITApLEwpe2NvbnN0IGk9cygiU2VsZWN0Iik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoaSx7Y2xhc3NOYW1lOmEubGVuZ3RoPyJpbnZhbGlkIjoiIix0aXRsZTphLmxlbmd0aD9hOiIiLG11bHRpcGxlOiEwLHZhbHVlOkMsZGlzYWJsZWQ6XyxhbGxvd2VkVmFsdWVzOkwsYWxsb3dFbXB0eVZhbHVlOiFvLG9uQ2hhbmdlOnRoaXMub25FbnVtQ2hhbmdlfSl9Y29uc3QgaWU9cygiQnV0dG9uIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtYXJyYXkifSxqP0MubWFwKCgobyxpKT0+e2NvbnN0IHc9KDAsemUuZnJvbUpTKShbLi4uYS5maWx0ZXIoKHM9PnMuaW5kZXg9PT1pKSkubWFwKChzPT5zLmVycm9yKSldKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5OmksY2xhc3NOYW1lOiJqc29uLXNjaGVtYS1mb3JtLWl0ZW0ifSxlZT9SZS5jcmVhdGVFbGVtZW50KEpzb25TY2hlbWFBcnJheUl0ZW1GaWxlLHt2YWx1ZTpvLG9uQ2hhbmdlOnM9PnRoaXMub25JdGVtQ2hhbmdlKHMsaSksZGlzYWJsZWQ6XyxlcnJvcnM6dyxnZXRDb21wb25lbnQ6c30pOlo/UmUuY3JlYXRlRWxlbWVudChKc29uU2NoZW1hQXJyYXlJdGVtVGV4dCx7dmFsdWU6byxvbkNoYW5nZTpzPT50aGlzLm9uSXRlbUNoYW5nZShzLGkpLGRpc2FibGVkOl8sZXJyb3JzOnd9KTpSZS5jcmVhdGVFbGVtZW50KFksTW4oKSh7fSx0aGlzLnByb3BzLHt2YWx1ZTpvLG9uQ2hhbmdlOnM9PnRoaXMub25JdGVtQ2hhbmdlKHMsaSksZGlzYWJsZWQ6XyxlcnJvcnM6dyxzY2hlbWE6eixnZXRDb21wb25lbnQ6cyxmbjp1fSkpLF8/bnVsbDpSZS5jcmVhdGVFbGVtZW50KGllLHtjbGFzc05hbWU6YGJ0biBidG4tc20ganNvbi1zY2hlbWEtZm9ybS1pdGVtLXJlbW92ZSAke3gubGVuZ3RoPyJpbnZhbGlkIjpudWxsfWAsdGl0bGU6eC5sZW5ndGg/eDoiIixvbkNsaWNrOigpPT50aGlzLnJlbW92ZUl0ZW0oaSl9LCIgLSAiKSl9KSk6bnVsbCxfP251bGw6UmUuY3JlYXRlRWxlbWVudChpZSx7Y2xhc3NOYW1lOmBidG4gYnRuLXNtIGpzb24tc2NoZW1hLWZvcm0taXRlbS1hZGQgJHt3Lmxlbmd0aD8iaW52YWxpZCI6bnVsbH1gLHRpdGxlOncubGVuZ3RoP3c6IiIsb25DbGljazp0aGlzLmFkZEl0ZW19LCJBZGQgIixWLCIgaXRlbSIpKX19Y2xhc3MgSnNvblNjaGVtYUFycmF5SXRlbVRleHQgZXh0ZW5kcyBSZS5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz1zcztvbkNoYW5nZT1zPT57Y29uc3Qgbz1zLnRhcmdldC52YWx1ZTt0aGlzLnByb3BzLm9uQ2hhbmdlKG8sdGhpcy5wcm9wcy5rZXlOYW1lKX07cmVuZGVyKCl7bGV0e3ZhbHVlOnMsZXJyb3JzOm8sZGVzY3JpcHRpb246aSxkaXNhYmxlZDphfT10aGlzLnByb3BzO3JldHVybiBzPyhpc0ltbXV0YWJsZShzKXx8Im9iamVjdCI9PXR5cGVvZiBzKSYmKHM9c3RyaW5naWZ5KHMpKTpzPSIiLG89by50b0pTP28udG9KUygpOltdLFJlLmNyZWF0ZUVsZW1lbnQobnMoKSx7dHlwZToidGV4dCIsY2xhc3NOYW1lOm8ubGVuZ3RoPyJpbnZhbGlkIjoiIix0aXRsZTpvLmxlbmd0aD9vOiIiLHZhbHVlOnMsbWluTGVuZ3RoOjAsZGVib3VuY2VUaW1lb3V0OjM1MCxwbGFjZWhvbGRlcjppLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2UsZGlzYWJsZWQ6YX0pfX1jbGFzcyBKc29uU2NoZW1hQXJyYXlJdGVtRmlsZSBleHRlbmRzIFJlLkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXNzO29uRmlsZUNoYW5nZT1zPT57Y29uc3Qgbz1zLnRhcmdldC5maWxlc1swXTt0aGlzLnByb3BzLm9uQ2hhbmdlKG8sdGhpcy5wcm9wcy5rZXlOYW1lKX07cmVuZGVyKCl7bGV0e2dldENvbXBvbmVudDpzLGVycm9yczpvLGRpc2FibGVkOml9PXRoaXMucHJvcHM7Y29uc3QgYT1zKCJJbnB1dCIpLHU9aXx8ISgiRm9ybURhdGEiaW4gd2luZG93KTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChhLHt0eXBlOiJmaWxlIixjbGFzc05hbWU6by5sZW5ndGg/ImludmFsaWQiOiIiLHRpdGxlOm8ubGVuZ3RoP286IiIsb25DaGFuZ2U6dGhpcy5vbkZpbGVDaGFuZ2UsZGlzYWJsZWQ6dX0pfX1jbGFzcyBKc29uU2NoZW1hX2Jvb2xlYW4gZXh0ZW5kcyBSZS5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz1zcztvbkVudW1DaGFuZ2U9cz0+dGhpcy5wcm9wcy5vbkNoYW5nZShzKTtyZW5kZXIoKXtsZXR7Z2V0Q29tcG9uZW50OnMsdmFsdWU6byxlcnJvcnM6aSxzY2hlbWE6YSxyZXF1aXJlZDp1LGRpc2FibGVkOl99PXRoaXMucHJvcHM7aT1pLnRvSlM/aS50b0pTKCk6W107bGV0IHc9YSYmYS5nZXQ/YS5nZXQoImVudW0iKTpudWxsLHg9IXd8fCF1LEM9IXcmJlsidHJ1ZSIsImZhbHNlIl07Y29uc3Qgaj1zKCJTZWxlY3QiKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChqLHtjbGFzc05hbWU6aS5sZW5ndGg/ImludmFsaWQiOiIiLHRpdGxlOmkubGVuZ3RoP2k6IiIsdmFsdWU6U3RyaW5nKG8pLGRpc2FibGVkOl8sYWxsb3dlZFZhbHVlczp3P1suLi53XTpDLGFsbG93RW1wdHlWYWx1ZTp4LG9uQ2hhbmdlOnRoaXMub25FbnVtQ2hhbmdlfSl9fWNvbnN0IHN0cmluZ2lmeU9iamVjdEVycm9ycz1zPT5zLm1hcCgocz0+e2NvbnN0IG89dm9pZCAwIT09cy5wcm9wS2V5P3MucHJvcEtleTpzLmluZGV4O2xldCBpPSJzdHJpbmciPT10eXBlb2Ygcz9zOiJzdHJpbmciPT10eXBlb2Ygcy5lcnJvcj9zLmVycm9yOm51bGw7aWYoIW8mJmkpcmV0dXJuIGk7bGV0IGE9cy5lcnJvcix1PWAvJHtzLnByb3BLZXl9YDtmb3IoOyJvYmplY3QiPT10eXBlb2YgYTspe2NvbnN0IHM9dm9pZCAwIT09YS5wcm9wS2V5P2EucHJvcEtleTphLmluZGV4O2lmKHZvaWQgMD09PXMpYnJlYWs7aWYodSs9YC8ke3N9YCwhYS5lcnJvcilicmVhazthPWEuZXJyb3J9cmV0dXJuYCR7dX06ICR7YX1gfSkpO2NsYXNzIEpzb25TY2hlbWFfb2JqZWN0IGV4dGVuZHMgUmUuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9c3RhdGljIGRlZmF1bHRQcm9wcz1zcztvbkNoYW5nZT1zPT57dGhpcy5wcm9wcy5vbkNoYW5nZShzKX07aGFuZGxlT25DaGFuZ2U9cz0+e2NvbnN0IG89cy50YXJnZXQudmFsdWU7dGhpcy5vbkNoYW5nZShvKX07cmVuZGVyKCl7bGV0e2dldENvbXBvbmVudDpzLHZhbHVlOm8sZXJyb3JzOmksZGlzYWJsZWQ6YX09dGhpcy5wcm9wcztjb25zdCB1PXMoIlRleHRBcmVhIik7cmV0dXJuIGk9aS50b0pTP2kudG9KUygpOkFycmF5LmlzQXJyYXkoaSk/aTpbXSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCh1LHtjbGFzc05hbWU6Sm4oKSh7aW52YWxpZDppLmxlbmd0aH0pLHRpdGxlOmkubGVuZ3RoP3N0cmluZ2lmeU9iamVjdEVycm9ycyhpKS5qb2luKCIsICIpOiIiLHZhbHVlOnN0cmluZ2lmeShvKSxkaXNhYmxlZDphLG9uQ2hhbmdlOnRoaXMuaGFuZGxlT25DaGFuZ2V9KSl9fWZ1bmN0aW9uIHZhbHVlT3JFbXB0eUxpc3Qocyl7cmV0dXJuIHplLkxpc3QuaXNMaXN0KHMpP3M6QXJyYXkuaXNBcnJheShzKT8oMCx6ZS5mcm9tSlMpKHMpOigwLHplLkxpc3QpKCl9Y29uc3QgTW9kZWxFeHRlbnNpb25zPSh7ZXh0ZW5zaW9uczpzLHByb3BDbGFzczpvPSIifSk9PnMuZW50cnlTZXEoKS5tYXAoKChbcyxpXSk9Pntjb25zdCBhPWltbXV0YWJsZVRvSlMoaSk/P251bGw7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoInRyIix7a2V5OnMsY2xhc3NOYW1lOm99LFJlLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLHMpLFJlLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLEpTT04uc3RyaW5naWZ5KGEpKSl9KSkudG9BcnJheSgpO3ZhciBvcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDExMzMxKSxhcz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4ob3MpO2NvbnN0IGhhc1NjaGVtYVR5cGU9KHMsbyk9Pntjb25zdCBpPXplLk1hcC5pc01hcChzKTtpZighaSYmIWFzKCkocykpcmV0dXJuITE7Y29uc3QgYT1pP3MuZ2V0KCJ0eXBlIik6cy50eXBlO3JldHVybiBvPT09YXx8QXJyYXkuaXNBcnJheShvKSYmby5pbmNsdWRlcyhhKX0sZ2V0VHlwZT0ocyxvPW5ldyBXZWFrU2V0KT0+e2lmKG51bGw9PXMpcmV0dXJuImFueSI7aWYoby5oYXMocykpcmV0dXJuImFueSI7by5hZGQocyk7Y29uc3R7dHlwZTppLGl0ZW1zOmF9PXM7cmV0dXJuIE9iamVjdC5oYXNPd24ocywiaXRlbXMiKT8oKCk9PntpZihhKXJldHVybmBhcnJheTwke2dldFR5cGUoYSxvKX0+YDtyZXR1cm4iYXJyYXk8YW55PiJ9KSgpOml9LGdldFNjaGVtYU9iamVjdFR5cGVMYWJlbD1zPT5nZXRUeXBlKGltbXV0YWJsZVRvSlMocykpLGpzb25fc2NoZW1hXzU9KCk9Pih7Y29tcG9uZW50czp7bW9kZWxFeGFtcGxlOm1vZGVsX2V4YW1wbGUsTW9kZWxXcmFwcGVyLE1vZGVsQ29sbGFwc2UsTW9kZWwsTW9kZWxzLEVudW1Nb2RlbDplbnVtX21vZGVsLE9iamVjdE1vZGVsLEFycmF5TW9kZWwsUHJpbWl0aXZlTW9kZWw6UHJpbWl0aXZlLE1vZGVsRXh0ZW5zaW9ucyxzY2hlbWVzOlNjaGVtZXMsU2NoZW1lc0NvbnRhaW5lciwuLi5WfSxmbjp7aGFzU2NoZW1hVHlwZSxnZXRTY2hlbWFPYmplY3RUeXBlTGFiZWx9fSk7dmFyIGNzPV9fd2VicGFja19yZXF1aXJlX18oMTkxMjMpLGxzPV9fd2VicGFja19yZXF1aXJlX18ubihjcyksdXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0MTg1OSkscHM9X193ZWJwYWNrX3JlcXVpcmVfXy5uKHVzKSxocz1fX3dlYnBhY2tfcmVxdWlyZV9fKDYyMTkzKSxkcz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oaHMpO2NvbnN0IHNoYWxsb3dBcnJheUVxdWFscz1zPT5vPT5BcnJheS5pc0FycmF5KHMpJiZBcnJheS5pc0FycmF5KG8pJiZzLmxlbmd0aD09PW8ubGVuZ3RoJiZzLmV2ZXJ5KCgocyxpKT0+cz09PW9baV0pKSxsaXN0PSguLi5zKT0+cztjbGFzcyBDYWNoZSBleHRlbmRzIE1hcHtkZWxldGUocyl7Y29uc3Qgbz1BcnJheS5mcm9tKHRoaXMua2V5cygpKS5maW5kKHNoYWxsb3dBcnJheUVxdWFscyhzKSk7cmV0dXJuIHN1cGVyLmRlbGV0ZShvKX1nZXQocyl7Y29uc3Qgbz1BcnJheS5mcm9tKHRoaXMua2V5cygpKS5maW5kKHNoYWxsb3dBcnJheUVxdWFscyhzKSk7cmV0dXJuIHN1cGVyLmdldChvKX1oYXMocyl7cmV0dXJuLTEhPT1BcnJheS5mcm9tKHRoaXMua2V5cygpKS5maW5kSW5kZXgoc2hhbGxvd0FycmF5RXF1YWxzKHMpKX19Y29uc3QgdXRpbHNfbWVtb2l6ZU49KHMsbz1saXN0KT0+e2NvbnN0e0NhY2hlOml9PXB0KCk7cHQoKS5DYWNoZT1DYWNoZTtjb25zdCBhPXB0KCkocyxvKTtyZXR1cm4gcHQoKS5DYWNoZT1pLGF9LGZzPXtzdHJpbmc6cz0+cy5wYXR0ZXJuPyhzPT57dHJ5e2NvbnN0IG89Lyg/PD0oPzwhXFwpXHspKFxkezMsfSkoPz1cfSl8KD88PSg/PCFcXClce1xkKiwpKFxkezMsfSkoPz1cfSl8KD88PSg/PCFcXClceykoXGR7Myx9KSg/PSxcZCpcfSkvZyxpPXMucmVwbGFjZShvLCIxMDAiKSxhPW5ldyhwcygpKShpKTtyZXR1cm4gYS5tYXg9MTAwLGEuZ2VuKCl9Y2F0Y2gocyl7cmV0dXJuInN0cmluZyJ9fSkocy5wYXR0ZXJuKToic3RyaW5nIixzdHJpbmdfZW1haWw6KCk9PiJ1c2VyQGV4YW1wbGUuY29tIiwic3RyaW5nX2RhdGUtdGltZSI6KCk9PihuZXcgRGF0ZSkudG9JU09TdHJpbmcoKSxzdHJpbmdfZGF0ZTooKT0+KG5ldyBEYXRlKS50b0lTT1N0cmluZygpLnN1YnN0cmluZygwLDEwKSxzdHJpbmdfdGltZTooKT0+KG5ldyBEYXRlKS50b0lTT1N0cmluZygpLnN1YnN0cmluZygxMSksc3RyaW5nX3V1aWQ6KCk9PiIzZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYiLHN0cmluZ19ob3N0bmFtZTooKT0+ImV4YW1wbGUuY29tIixzdHJpbmdfaXB2NDooKT0+IjE5OC41MS4xMDAuNDIiLHN0cmluZ19pcHY2OigpPT4iMjAwMTowZGI4OjViOTY6MDAwMDowMDAwOjQyNmY6OGUxNzo2NDJhIixudW1iZXI6KCk9PjAsbnVtYmVyX2Zsb2F0OigpPT4wLGludGVnZXI6KCk9PjAsYm9vbGVhbjpzPT4iYm9vbGVhbiIhPXR5cGVvZiBzLmRlZmF1bHR8fHMuZGVmYXVsdH0scHJpbWl0aXZlPXM9PntzPW9iamVjdGlmeShzKTtsZXR7dHlwZTpvLGZvcm1hdDppfT1zLGE9ZnNbYCR7b31fJHtpfWBdfHxmc1tvXTtyZXR1cm4gaXNGdW5jKGEpP2Eocyk6IlVua25vd24gVHlwZTogIitzLnR5cGV9LHNhbml0aXplUmVmPXM9PmRlZXBseVN0cmlwS2V5KHMsIiQkcmVmIiwocz0+InN0cmluZyI9PXR5cGVvZiBzJiZzLmluZGV4T2YoIiMiKT4tMSkpLG1zPVsibWF4UHJvcGVydGllcyIsIm1pblByb3BlcnRpZXMiXSxncz1bIm1pbkl0ZW1zIiwibWF4SXRlbXMiXSx5cz1bIm1pbmltdW0iLCJtYXhpbXVtIiwiZXhjbHVzaXZlTWluaW11bSIsImV4Y2x1c2l2ZU1heGltdW0iXSx2cz1bIm1pbkxlbmd0aCIsIm1heExlbmd0aCJdLG1lcmdlSnNvblNjaGVtYT0ocyxvLGk9e30pPT57Y29uc3QgYT17Li4uc307aWYoWyJleGFtcGxlIiwiZGVmYXVsdCIsImVudW0iLCJ4bWwiLCJ0eXBlIiwuLi5tcywuLi5ncywuLi55cywuLi52c10uZm9yRWFjaCgocz0+KHM9Pnt2b2lkIDA9PT1hW3NdJiZ2b2lkIDAhPT1vW3NdJiYoYVtzXT1vW3NdKX0pKHMpKSksdm9pZCAwIT09by5yZXF1aXJlZCYmQXJyYXkuaXNBcnJheShvLnJlcXVpcmVkKSYmKHZvaWQgMCE9PWEucmVxdWlyZWQmJmEucmVxdWlyZWQubGVuZ3RofHwoYS5yZXF1aXJlZD1bXSksby5yZXF1aXJlZC5mb3JFYWNoKChzPT57YS5yZXF1aXJlZC5pbmNsdWRlcyhzKXx8YS5yZXF1aXJlZC5wdXNoKHMpfSkpKSxvLnByb3BlcnRpZXMpe2EucHJvcGVydGllc3x8KGEucHJvcGVydGllcz17fSk7bGV0IHM9b2JqZWN0aWZ5KG8ucHJvcGVydGllcyk7Zm9yKGxldCB1IGluIHMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsdSkmJihzW3VdJiZzW3VdLmRlcHJlY2F0ZWR8fHNbdV0mJnNbdV0ucmVhZE9ubHkmJiFpLmluY2x1ZGVSZWFkT25seXx8c1t1XSYmc1t1XS53cml0ZU9ubHkmJiFpLmluY2x1ZGVXcml0ZU9ubHl8fGEucHJvcGVydGllc1t1XXx8KGEucHJvcGVydGllc1t1XT1zW3VdLCFvLnJlcXVpcmVkJiZBcnJheS5pc0FycmF5KG8ucmVxdWlyZWQpJiYtMSE9PW8ucmVxdWlyZWQuaW5kZXhPZih1KSYmKGEucmVxdWlyZWQ/YS5yZXF1aXJlZC5wdXNoKHUpOmEucmVxdWlyZWQ9W3VdKSkpfXJldHVybiBvLml0ZW1zJiYoYS5pdGVtc3x8KGEuaXRlbXM9e30pLGEuaXRlbXM9bWVyZ2VKc29uU2NoZW1hKGEuaXRlbXMsby5pdGVtcyxpKSksYX0sc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWM9KHMsbz17fSxpPXZvaWQgMCxhPSExKT0+e3MmJmlzRnVuYyhzLnRvSlMpJiYocz1zLnRvSlMoKSk7bGV0IHU9dm9pZCAwIT09aXx8cyYmdm9pZCAwIT09cy5leGFtcGxlfHxzJiZ2b2lkIDAhPT1zLmRlZmF1bHQ7Y29uc3QgXz0hdSYmcyYmcy5vbmVPZiYmcy5vbmVPZi5sZW5ndGg+MCx3PSF1JiZzJiZzLmFueU9mJiZzLmFueU9mLmxlbmd0aD4wO2lmKCF1JiYoX3x8dykpe2NvbnN0IGk9b2JqZWN0aWZ5KF8/cy5vbmVPZlswXTpzLmFueU9mWzBdKTtpZighKHM9bWVyZ2VKc29uU2NoZW1hKHMsaSxvKSkueG1sJiZpLnhtbCYmKHMueG1sPWkueG1sKSx2b2lkIDAhPT1zLmV4YW1wbGUmJnZvaWQgMCE9PWkuZXhhbXBsZSl1PSEwO2Vsc2UgaWYoaS5wcm9wZXJ0aWVzKXtzLnByb3BlcnRpZXN8fChzLnByb3BlcnRpZXM9e30pO2xldCBhPW9iamVjdGlmeShpLnByb3BlcnRpZXMpO2ZvcihsZXQgdSBpbiBhKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLHUpJiYoYVt1XSYmYVt1XS5kZXByZWNhdGVkfHxhW3VdJiZhW3VdLnJlYWRPbmx5JiYhby5pbmNsdWRlUmVhZE9ubHl8fGFbdV0mJmFbdV0ud3JpdGVPbmx5JiYhby5pbmNsdWRlV3JpdGVPbmx5fHxzLnByb3BlcnRpZXNbdV18fChzLnByb3BlcnRpZXNbdV09YVt1XSwhaS5yZXF1aXJlZCYmQXJyYXkuaXNBcnJheShpLnJlcXVpcmVkKSYmLTEhPT1pLnJlcXVpcmVkLmluZGV4T2YodSkmJihzLnJlcXVpcmVkP3MucmVxdWlyZWQucHVzaCh1KTpzLnJlcXVpcmVkPVt1XSkpKX19Y29uc3QgeD17fTtsZXR7eG1sOkMsdHlwZTpqLGV4YW1wbGU6TCxwcm9wZXJ0aWVzOkIsYWRkaXRpb25hbFByb3BlcnRpZXM6JCxpdGVtczpWfT1zfHx7fSx7aW5jbHVkZVJlYWRPbmx5OlUsaW5jbHVkZVdyaXRlT25seTp6fT1vO0M9Q3x8e307bGV0IFkse25hbWU6WixwcmVmaXg6ZWUsbmFtZXNwYWNlOmllfT1DLGFlPXt9O2lmKGEmJihaPVp8fCJub3RhZ25hbWUiLFk9KGVlP2VlKyI6IjoiIikrWixpZSkpe3hbZWU/InhtbG5zOiIrZWU6InhtbG5zIl09aWV9YSYmKGFlW1ldPVtdKTtjb25zdCBzY2hlbWFIYXNBbnk9bz0+by5zb21lKChvPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxvKSkpO3MmJiFqJiYoQnx8JHx8c2NoZW1hSGFzQW55KG1zKT9qPSJvYmplY3QiOlZ8fHNjaGVtYUhhc0FueShncyk/aj0iYXJyYXkiOnNjaGVtYUhhc0FueSh5cyk/KGo9Im51bWJlciIscy50eXBlPSJudW1iZXIiKTp1fHxzLmVudW18fChqPSJzdHJpbmciLHMudHlwZT0ic3RyaW5nIikpO2NvbnN0IGhhbmRsZU1pbk1heEl0ZW1zPW89PntpZihudWxsIT1zPy5tYXhJdGVtcyYmKG89by5zbGljZSgwLHM/Lm1heEl0ZW1zKSksbnVsbCE9cz8ubWluSXRlbXMpe2xldCBpPTA7Zm9yKDtvLmxlbmd0aDxzPy5taW5JdGVtczspby5wdXNoKG9baSsrJW8ubGVuZ3RoXSl9cmV0dXJuIG99LGNlPW9iamVjdGlmeShCKTtsZXQgbGUscGU9MDtjb25zdCBoYXNFeGNlZWRlZE1heFByb3BlcnRpZXM9KCk9PnMmJm51bGwhPT1zLm1heFByb3BlcnRpZXMmJnZvaWQgMCE9PXMubWF4UHJvcGVydGllcyYmcGU+PXMubWF4UHJvcGVydGllcyxjYW5BZGRQcm9wZXJ0eT1vPT4hc3x8bnVsbD09PXMubWF4UHJvcGVydGllc3x8dm9pZCAwPT09cy5tYXhQcm9wZXJ0aWVzfHwhaGFzRXhjZWVkZWRNYXhQcm9wZXJ0aWVzKCkmJighKG89PiEocyYmcy5yZXF1aXJlZCYmcy5yZXF1aXJlZC5sZW5ndGgmJnMucmVxdWlyZWQuaW5jbHVkZXMobykpKShvKXx8cy5tYXhQcm9wZXJ0aWVzLXBlLSgoKT0+e2lmKCFzfHwhcy5yZXF1aXJlZClyZXR1cm4gMDtsZXQgbz0wO3JldHVybiBhP3MucmVxdWlyZWQuZm9yRWFjaCgocz0+bys9dm9pZCAwPT09YWVbc10/MDoxKSk6cy5yZXF1aXJlZC5mb3JFYWNoKChzPT5vKz12b2lkIDA9PT1hZVtZXT8uZmluZCgobz0+dm9pZCAwIT09b1tzXSkpPzA6MSkpLHMucmVxdWlyZWQubGVuZ3RoLW99KSgpPjApO2lmKGxlPWE/KGksdT12b2lkIDApPT57aWYocyYmY2VbaV0pe2lmKGNlW2ldLnhtbD1jZVtpXS54bWx8fHt9LGNlW2ldLnhtbC5hdHRyaWJ1dGUpe2NvbnN0IHM9QXJyYXkuaXNBcnJheShjZVtpXS5lbnVtKT9jZVtpXS5lbnVtWzBdOnZvaWQgMCxvPWNlW2ldLmV4YW1wbGUsYT1jZVtpXS5kZWZhdWx0O3JldHVybiB2b2lkKHhbY2VbaV0ueG1sLm5hbWV8fGldPXZvaWQgMCE9PW8/bzp2b2lkIDAhPT1hP2E6dm9pZCAwIT09cz9zOnByaW1pdGl2ZShjZVtpXSkpfWNlW2ldLnhtbC5uYW1lPWNlW2ldLnhtbC5uYW1lfHxpfWVsc2UgY2VbaV18fCExPT09JHx8KGNlW2ldPXt4bWw6e25hbWU6aX19KTtsZXQgXz1zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhzJiZjZVtpXXx8dm9pZCAwLG8sdSxhKTtjYW5BZGRQcm9wZXJ0eShpKSYmKHBlKyssQXJyYXkuaXNBcnJheShfKT9hZVtZXT1hZVtZXS5jb25jYXQoXyk6YWVbWV0ucHVzaChfKSl9OihpLHUpPT57aWYoY2FuQWRkUHJvcGVydHkoaSkpe2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCJkaXNjcmltaW5hdG9yIikmJnMuZGlzY3JpbWluYXRvciYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMuZGlzY3JpbWluYXRvciwibWFwcGluZyIpJiZzLmRpc2NyaW1pbmF0b3IubWFwcGluZyYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIiQkcmVmIikmJnMuJCRyZWYmJnMuZGlzY3JpbWluYXRvci5wcm9wZXJ0eU5hbWU9PT1pKXtmb3IobGV0IG8gaW4gcy5kaXNjcmltaW5hdG9yLm1hcHBpbmcpaWYoLTEhPT1zLiQkcmVmLnNlYXJjaChzLmRpc2NyaW1pbmF0b3IubWFwcGluZ1tvXSkpe2FlW2ldPW87YnJlYWt9fWVsc2UgYWVbaV09c2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoY2VbaV0sbyx1LGEpO3BlKyt9fSx1KXtsZXQgdTtpZih1PXNhbml0aXplUmVmKHZvaWQgMCE9PWk/aTp2b2lkIDAhPT1MP0w6cy5kZWZhdWx0KSwhYSl7aWYoIm51bWJlciI9PXR5cGVvZiB1JiYic3RyaW5nIj09PWopcmV0dXJuYCR7dX1gO2lmKCJzdHJpbmciIT10eXBlb2YgdXx8InN0cmluZyI9PT1qKXJldHVybiB1O3RyeXtyZXR1cm4gSlNPTi5wYXJzZSh1KX1jYXRjaChzKXtyZXR1cm4gdX19aWYoc3x8KGo9QXJyYXkuaXNBcnJheSh1KT8iYXJyYXkiOnR5cGVvZiB1KSwiYXJyYXkiPT09ail7aWYoIUFycmF5LmlzQXJyYXkodSkpe2lmKCJzdHJpbmciPT10eXBlb2YgdSlyZXR1cm4gdTt1PVt1XX1jb25zdCBpPXM/cy5pdGVtczp2b2lkIDA7aSYmKGkueG1sPWkueG1sfHxDfHx7fSxpLnhtbC5uYW1lPWkueG1sLm5hbWV8fEMubmFtZSk7bGV0IF89dS5tYXAoKHM9PnNhbXBsZUZyb21TY2hlbWFHZW5lcmljKGksbyxzLGEpKSk7cmV0dXJuIF89aGFuZGxlTWluTWF4SXRlbXMoXyksQy53cmFwcGVkPyhhZVtZXT1fLGRzKCkoeCl8fGFlW1ldLnB1c2goe19hdHRyOnh9KSk6YWU9XyxhZX1pZigib2JqZWN0Ij09PWope2lmKCJzdHJpbmciPT10eXBlb2YgdSlyZXR1cm4gdTtmb3IobGV0IG8gaW4gdSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodSxvKSYmKHMmJmNlW29dJiZjZVtvXS5yZWFkT25seSYmIVV8fHMmJmNlW29dJiZjZVtvXS53cml0ZU9ubHkmJiF6fHwocyYmY2Vbb10mJmNlW29dLnhtbCYmY2Vbb10ueG1sLmF0dHJpYnV0ZT94W2NlW29dLnhtbC5uYW1lfHxvXT11W29dOmxlKG8sdVtvXSkpKTtyZXR1cm4gZHMoKSh4KXx8YWVbWV0ucHVzaCh7X2F0dHI6eH0pLGFlfXJldHVybiBhZVtZXT1kcygpKHgpP3U6W3tfYXR0cjp4fSx1XSxhZX1pZigib2JqZWN0Ij09PWope2ZvcihsZXQgcyBpbiBjZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2UscykmJihjZVtzXSYmY2Vbc10uZGVwcmVjYXRlZHx8Y2Vbc10mJmNlW3NdLnJlYWRPbmx5JiYhVXx8Y2Vbc10mJmNlW3NdLndyaXRlT25seSYmIXp8fGxlKHMpKTtpZihhJiZ4JiZhZVtZXS5wdXNoKHtfYXR0cjp4fSksaGFzRXhjZWVkZWRNYXhQcm9wZXJ0aWVzKCkpcmV0dXJuIGFlO2lmKCEwPT09JClhP2FlW1ldLnB1c2goe2FkZGl0aW9uYWxQcm9wOiJBbnl0aGluZyBjYW4gYmUgaGVyZSJ9KTphZS5hZGRpdGlvbmFsUHJvcDE9e30scGUrKztlbHNlIGlmKCQpe2NvbnN0IGk9b2JqZWN0aWZ5KCQpLHU9c2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoaSxvLHZvaWQgMCxhKTtpZihhJiZpLnhtbCYmaS54bWwubmFtZSYmIm5vdGFnbmFtZSIhPT1pLnhtbC5uYW1lKWFlW1ldLnB1c2godSk7ZWxzZXtjb25zdCBvPW51bGwhPT1zLm1pblByb3BlcnRpZXMmJnZvaWQgMCE9PXMubWluUHJvcGVydGllcyYmcGU8cy5taW5Qcm9wZXJ0aWVzP3MubWluUHJvcGVydGllcy1wZTozO2ZvcihsZXQgcz0xO3M8PW87cysrKXtpZihoYXNFeGNlZWRlZE1heFByb3BlcnRpZXMoKSlyZXR1cm4gYWU7aWYoYSl7Y29uc3Qgbz17fTtvWyJhZGRpdGlvbmFsUHJvcCIrc109dS5ub3RhZ25hbWUsYWVbWV0ucHVzaChvKX1lbHNlIGFlWyJhZGRpdGlvbmFsUHJvcCIrc109dTtwZSsrfX19cmV0dXJuIGFlfWlmKCJhcnJheSI9PT1qKXtpZighVilyZXR1cm47bGV0IGk7aWYoYSYmKFYueG1sPVYueG1sfHxzPy54bWx8fHt9LFYueG1sLm5hbWU9Vi54bWwubmFtZXx8Qy5uYW1lKSxBcnJheS5pc0FycmF5KFYuYW55T2YpKWk9Vi5hbnlPZi5tYXAoKHM9PnNhbXBsZUZyb21TY2hlbWFHZW5lcmljKG1lcmdlSnNvblNjaGVtYShzLFYsbyksbyx2b2lkIDAsYSkpKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoVi5vbmVPZikpaT1WLm9uZU9mLm1hcCgocz0+c2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMobWVyZ2VKc29uU2NoZW1hKHMsVixvKSxvLHZvaWQgMCxhKSkpO2Vsc2V7aWYoISghYXx8YSYmQy53cmFwcGVkKSlyZXR1cm4gc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoVixvLHZvaWQgMCxhKTtpPVtzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhWLG8sdm9pZCAwLGEpXX1yZXR1cm4gaT1oYW5kbGVNaW5NYXhJdGVtcyhpKSxhJiZDLndyYXBwZWQ/KGFlW1ldPWksZHMoKSh4KXx8YWVbWV0ucHVzaCh7X2F0dHI6eH0pLGFlKTppfWxldCBkZTtpZihzJiZBcnJheS5pc0FycmF5KHMuZW51bSkpZGU9bm9ybWFsaXplQXJyYXkocy5lbnVtKVswXTtlbHNle2lmKCFzKXJldHVybjtpZihkZT1wcmltaXRpdmUocyksIm51bWJlciI9PXR5cGVvZiBkZSl7bGV0IG89cy5taW5pbXVtO251bGwhPW8mJihzLmV4Y2x1c2l2ZU1pbmltdW0mJm8rKyxkZT1vKTtsZXQgaT1zLm1heGltdW07bnVsbCE9aSYmKHMuZXhjbHVzaXZlTWF4aW11bSYmaS0tLGRlPWkpfWlmKCJzdHJpbmciPT10eXBlb2YgZGUmJihudWxsIT09cy5tYXhMZW5ndGgmJnZvaWQgMCE9PXMubWF4TGVuZ3RoJiYoZGU9ZGUuc2xpY2UoMCxzLm1heExlbmd0aCkpLG51bGwhPT1zLm1pbkxlbmd0aCYmdm9pZCAwIT09cy5taW5MZW5ndGgpKXtsZXQgbz0wO2Zvcig7ZGUubGVuZ3RoPHMubWluTGVuZ3RoOylkZSs9ZGVbbysrJWRlLmxlbmd0aF19fWlmKCJmaWxlIiE9PWopcmV0dXJuIGE/KGFlW1ldPWRzKCkoeCk/ZGU6W3tfYXR0cjp4fSxkZV0sYWUpOmRlfSxpbmZlclNjaGVtYT1zPT4ocy5zY2hlbWEmJihzPXMuc2NoZW1hKSxzLnByb3BlcnRpZXMmJihzLnR5cGU9Im9iamVjdCIpLHMpLGNyZWF0ZVhNTEV4YW1wbGU9KHMsbyxpKT0+e2NvbnN0IGE9c2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMocyxvLGksITApO2lmKGEpcmV0dXJuInN0cmluZyI9PXR5cGVvZiBhP2E6bHMoKShhLHtkZWNsYXJhdGlvbjohMCxpbmRlbnQ6Ilx0In0pfSxzYW1wbGVGcm9tU2NoZW1hPShzLG8saSk9PnNhbXBsZUZyb21TY2hlbWFHZW5lcmljKHMsbyxpLCExKSxyZXNvbHZlcj0ocyxvLGkpPT5bcyxKU09OLnN0cmluZ2lmeShvKSxKU09OLnN0cmluZ2lmeShpKV0sYnM9dXRpbHNfbWVtb2l6ZU4oY3JlYXRlWE1MRXhhbXBsZSxyZXNvbHZlciksX3M9dXRpbHNfbWVtb2l6ZU4oc2FtcGxlRnJvbVNjaGVtYSxyZXNvbHZlciksZ2V0U2NoZW1hT2JqZWN0VHlwZT1zPT5pbW11dGFibGVUb0pTKHMpPy50eXBlPz8ic3RyaW5nIixTcz1be3doZW46L2pzb24vLHNob3VsZFN0cmluZ2lmeVR5cGVzOlsic3RyaW5nIl19XSxFcz1bIm9iamVjdCJdLGdldF9qc29uX3NhbXBsZV9zY2hlbWE9cz0+KG8saSxhLHUpPT57Y29uc3R7Zm46X309cygpLHc9Xy5tZW1vaXplZFNhbXBsZUZyb21TY2hlbWEobyxpLHUpLHg9dHlwZW9mIHcsQz1Tcy5yZWR1Y2UoKChzLG8pPT5vLndoZW4udGVzdChhKT9bLi4ucywuLi5vLnNob3VsZFN0cmluZ2lmeVR5cGVzXTpzKSxFcyk7cmV0dXJuIGd0KCkoQywocz0+cz09PXgpKT9KU09OLnN0cmluZ2lmeSh3LG51bGwsMik6d30sZ2V0X3lhbWxfc2FtcGxlX3NjaGVtYT1zPT4obyxpLGEsdSk9Pntjb25zdHtmbjpffT1zKCksdz1fLmdldEpzb25TYW1wbGVTY2hlbWEobyxpLGEsdSk7bGV0IHg7dHJ5e3g9Zm4uZHVtcChmbi5sb2FkKHcpLHtsaW5lV2lkdGg6LTF9LHtzY2hlbWE6cm59KSwiXG4iPT09eFt4Lmxlbmd0aC0xXSYmKHg9eC5zbGljZSgwLHgubGVuZ3RoLTEpKX1jYXRjaChzKXtyZXR1cm4gY29uc29sZS5lcnJvcihzKSwiZXJyb3I6IGNvdWxkIG5vdCBnZW5lcmF0ZSB5YW1sIGV4YW1wbGUifXJldHVybiB4LnJlcGxhY2UoL1x0L2csIiAgIil9LGdldF94bWxfc2FtcGxlX3NjaGVtYT1zPT4obyxpLGEpPT57Y29uc3R7Zm46dX09cygpO2lmKG8mJiFvLnhtbCYmKG8ueG1sPXt9KSxvJiYhby54bWwubmFtZSl7aWYoIW8uJCRyZWYmJihvLnR5cGV8fG8uaXRlbXN8fG8ucHJvcGVydGllc3x8by5hZGRpdGlvbmFsUHJvcGVydGllcykpcmV0dXJuJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+XG5ceDNjIS0tIFhNTCBleGFtcGxlIGNhbm5vdCBiZSBnZW5lcmF0ZWQ7IHJvb3QgZWxlbWVudCBuYW1lIGlzIHVuZGVmaW5lZCAtLVx4M2UnO2lmKG8uJCRyZWYpe2xldCBzPW8uJCRyZWYubWF0Y2goL1xTKlwvKFxTKykkLyk7by54bWwubmFtZT1zWzFdfX1yZXR1cm4gdS5tZW1vaXplZENyZWF0ZVhNTEV4YW1wbGUobyxpLGEpfSxnZXRfc2FtcGxlX3NjaGVtYT1zPT4obyxpPSIiLGE9e30sdT12b2lkIDApPT57Y29uc3R7Zm46X309cygpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBvPy50b0pTJiYobz1vLnRvSlMoKSksImZ1bmN0aW9uIj09dHlwZW9mIHU/LnRvSlMmJih1PXUudG9KUygpKSwveG1sLy50ZXN0KGkpP18uZ2V0WG1sU2FtcGxlU2NoZW1hKG8sYSx1KTovKHlhbWx8eW1sKS8udGVzdChpKT9fLmdldFlhbWxTYW1wbGVTY2hlbWEobyxhLGksdSk6Xy5nZXRKc29uU2FtcGxlU2NoZW1hKG8sYSxpLHUpfSxqc29uX3NjaGVtYV81X3NhbXBsZXM9KHtnZXRTeXN0ZW06c30pPT57Y29uc3Qgbz1nZXRfanNvbl9zYW1wbGVfc2NoZW1hKHMpLGk9Z2V0X3lhbWxfc2FtcGxlX3NjaGVtYShzKSxhPWdldF94bWxfc2FtcGxlX3NjaGVtYShzKSx1PWdldF9zYW1wbGVfc2NoZW1hKHMpO3JldHVybntmbjp7anNvblNjaGVtYTU6e2luZmVyU2NoZW1hLHNhbXBsZUZyb21TY2hlbWEsc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMsY3JlYXRlWE1MRXhhbXBsZSxtZW1vaXplZFNhbXBsZUZyb21TY2hlbWE6X3MsbWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlOmJzLGdldEpzb25TYW1wbGVTY2hlbWE6byxnZXRZYW1sU2FtcGxlU2NoZW1hOmksZ2V0WG1sU2FtcGxlU2NoZW1hOmEsZ2V0U2FtcGxlU2NoZW1hOnUsbWVyZ2VKc29uU2NoZW1hfSxpbmZlclNjaGVtYSxzYW1wbGVGcm9tU2NoZW1hLHNhbXBsZUZyb21TY2hlbWFHZW5lcmljLGNyZWF0ZVhNTEV4YW1wbGUsbWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hOl9zLG1lbW9pemVkQ3JlYXRlWE1MRXhhbXBsZTpicyxnZXRKc29uU2FtcGxlU2NoZW1hOm8sZ2V0WWFtbFNhbXBsZVNjaGVtYTppLGdldFhtbFNhbXBsZVNjaGVtYTphLGdldFNhbXBsZVNjaGVtYTp1LG1lcmdlSnNvblNjaGVtYSxnZXRTY2hlbWFPYmplY3RUeXBlfX19O3ZhciB3cz1fX3dlYnBhY2tfcmVxdWlyZV9fKDM3MzM0KSx4cz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4od3MpO2NvbnN0IGtzPVsiZ2V0IiwicHV0IiwicG9zdCIsImRlbGV0ZSIsIm9wdGlvbnMiLCJoZWFkIiwicGF0Y2giLCJ0cmFjZSJdLHNwZWNfc2VsZWN0b3JzX3N0YXRlPXM9PnN8fCgwLHplLk1hcCkoKSxPcz1WdChzcGVjX3NlbGVjdG9yc19zdGF0ZSwocz0+cy5nZXQoImxhc3RFcnJvciIpKSksQ3M9VnQoc3BlY19zZWxlY3RvcnNfc3RhdGUsKHM9PnMuZ2V0KCJ1cmwiKSkpLEFzPVZ0KHNwZWNfc2VsZWN0b3JzX3N0YXRlLChzPT5zLmdldCgic3BlYyIpfHwiIikpLGpzPVZ0KHNwZWNfc2VsZWN0b3JzX3N0YXRlLChzPT5zLmdldCgic3BlY1NvdXJjZSIpfHwibm90LWVkaXRvciIpKSxJcz1WdChzcGVjX3NlbGVjdG9yc19zdGF0ZSwocz0+cy5nZXQoImpzb24iLCgwLHplLk1hcCkoKSkpKSxQcz1WdChJcywocz0+cy50b0pTKCkpKSxUcz1WdChzcGVjX3NlbGVjdG9yc19zdGF0ZSwocz0+cy5nZXQoInJlc29sdmVkIiwoMCx6ZS5NYXApKCkpKSksc3BlY1Jlc29sdmVkU3VidHJlZT0ocyxvKT0+cy5nZXRJbihbInJlc29sdmVkU3VidHJlZXMiLC4uLm9dLHZvaWQgMCksbWVyZ2VyRm49KHMsbyk9PnplLk1hcC5pc01hcChzKSYmemUuTWFwLmlzTWFwKG8pP28uZ2V0KCIkJHJlZiIpP286KDAsemUuT3JkZXJlZE1hcCkoKS5tZXJnZVdpdGgobWVyZ2VyRm4scyxvKTpvLE5zPVZ0KHNwZWNfc2VsZWN0b3JzX3N0YXRlLChzPT4oMCx6ZS5PcmRlcmVkTWFwKSgpLm1lcmdlV2l0aChtZXJnZXJGbixzLmdldCgianNvbiIpLHMuZ2V0KCJyZXNvbHZlZFN1YnRyZWVzIikpKSksc3BlYz1zPT5JcyhzKSxNcz1WdChzcGVjLCgoKT0+ITEpKSxScz1WdChzcGVjLChzPT5yZXR1cm5TZWxmT3JOZXdNYXAocyYmcy5nZXQoImluZm8iKSkpKSxEcz1WdChzcGVjLChzPT5yZXR1cm5TZWxmT3JOZXdNYXAocyYmcy5nZXQoImV4dGVybmFsRG9jcyIpKSkpLExzPVZ0KFJzLChzPT5zJiZzLmdldCgidmVyc2lvbiIpKSksRnM9VnQoTHMsKHM9Pi92PyhbMC05XSopXC4oWzAtOV0qKVwuKFswLTldKikvaS5leGVjKHMpLnNsaWNlKDEpKSksQnM9VnQoTnMsKHM9PnMuZ2V0KCJwYXRocyIpKSksJHM9eHMoKShbImdldCIsInB1dCIsInBvc3QiLCJkZWxldGUiLCJvcHRpb25zIiwiaGVhZCIsInBhdGNoIl0pLHFzPVZ0KEJzLChzPT57bGV0IG89KDAsemUuTGlzdCkoKTtyZXR1cm4hemUuTWFwLmlzTWFwKHMpfHxzLmlzRW1wdHkoKXx8cy5mb3JFYWNoKCgocyxpKT0+e2lmKCFzfHwhcy5mb3JFYWNoKXJldHVybnt9O3MuZm9yRWFjaCgoKHMsYSk9Pntrcy5pbmRleE9mKGEpPDB8fChvPW8ucHVzaCgoMCx6ZS5mcm9tSlMpKHtwYXRoOmksbWV0aG9kOmEsb3BlcmF0aW9uOnMsaWQ6YCR7YX0tJHtpfWB9KSkpfSkpfSkpLG99KSksVnM9VnQoc3BlYywocz0+KDAsemUuU2V0KShzLmdldCgiY29uc3VtZXMiKSkpKSxVcz1WdChzcGVjLChzPT4oMCx6ZS5TZXQpKHMuZ2V0KCJwcm9kdWNlcyIpKSkpLHpzPVZ0KHNwZWMsKHM9PnMuZ2V0KCJzZWN1cml0eSIsKDAsemUuTGlzdCkoKSkpKSxXcz1WdChzcGVjLChzPT5zLmdldCgic2VjdXJpdHlEZWZpbml0aW9ucyIpKSksZmluZERlZmluaXRpb249KHMsbyk9Pntjb25zdCBpPXMuZ2V0SW4oWyJyZXNvbHZlZFN1YnRyZWVzIiwiZGVmaW5pdGlvbnMiLG9dLG51bGwpLGE9cy5nZXRJbihbImpzb24iLCJkZWZpbml0aW9ucyIsb10sbnVsbCk7cmV0dXJuIGl8fGF8fG51bGx9LEpzPVZ0KHNwZWMsKHM9Pntjb25zdCBvPXMuZ2V0KCJkZWZpbml0aW9ucyIpO3JldHVybiB6ZS5NYXAuaXNNYXAobyk/bzooMCx6ZS5NYXApKCl9KSksSHM9VnQoc3BlYywocz0+cy5nZXQoImJhc2VQYXRoIikpKSxLcz1WdChzcGVjLChzPT5zLmdldCgiaG9zdCIpKSksR3M9VnQoc3BlYywocz0+cy5nZXQoInNjaGVtZXMiLCgwLHplLk1hcCkoKSkpKSxZcz1WdChbcXMsVnMsVXNdLCgocyxvLGkpPT5zLm1hcCgocz0+cy51cGRhdGUoIm9wZXJhdGlvbiIsKHM9PnplLk1hcC5pc01hcChzKT9zLndpdGhNdXRhdGlvbnMoKHM9PihzLmdldCgiY29uc3VtZXMiKXx8cy51cGRhdGUoImNvbnN1bWVzIiwocz0+KDAsemUuU2V0KShzKS5tZXJnZShvKSkpLHMuZ2V0KCJwcm9kdWNlcyIpfHxzLnVwZGF0ZSgicHJvZHVjZXMiLChzPT4oMCx6ZS5TZXQpKHMpLm1lcmdlKGkpKSkscykpKTooMCx6ZS5NYXApKCkpKSkpKSksWHM9VnQoc3BlYywocz0+e2NvbnN0IG89cy5nZXQoInRhZ3MiLCgwLHplLkxpc3QpKCkpO3JldHVybiB6ZS5MaXN0LmlzTGlzdChvKT9vLmZpbHRlcigocz0+emUuTWFwLmlzTWFwKHMpKSk6KDAsemUuTGlzdCkoKX0pKSx0YWdEZXRhaWxzPShzLG8pPT4oWHMocyl8fCgwLHplLkxpc3QpKCkpLmZpbHRlcih6ZS5NYXAuaXNNYXApLmZpbmQoKHM9PnMuZ2V0KCJuYW1lIik9PT1vKSwoMCx6ZS5NYXApKCkpLFFzPVZ0KFlzLFhzLCgocyxvKT0+cy5yZWR1Y2UoKChzLG8pPT57bGV0IGk9KDAsemUuU2V0KShvLmdldEluKFsib3BlcmF0aW9uIiwidGFncyJdKSk7cmV0dXJuIGkuY291bnQoKTwxP3MudXBkYXRlKCJkZWZhdWx0IiwoMCx6ZS5MaXN0KSgpLChzPT5zLnB1c2gobykpKTppLnJlZHVjZSgoKHMsaSk9PnMudXBkYXRlKGksKDAsemUuTGlzdCkoKSwocz0+cy5wdXNoKG8pKSkpLHMpfSksby5yZWR1Y2UoKChzLG8pPT5zLnNldChvLmdldCgibmFtZSIpLCgwLHplLkxpc3QpKCkpKSwoMCx6ZS5PcmRlcmVkTWFwKSgpKSkpKSxzZWxlY3RvcnNfdGFnZ2VkT3BlcmF0aW9ucz1zPT4oe2dldENvbmZpZ3M6b30pPT57bGV0e3RhZ3NTb3J0ZXI6aSxvcGVyYXRpb25zU29ydGVyOmF9PW8oKTtyZXR1cm4gUXMocykuc29ydEJ5KCgocyxvKT0+byksKChzLG8pPT57bGV0IGE9ImZ1bmN0aW9uIj09dHlwZW9mIGk/aTpQdC50YWdzU29ydGVyW2ldO3JldHVybiBhP2EocyxvKTpudWxsfSkpLm1hcCgoKG8saSk9PntsZXQgdT0iZnVuY3Rpb24iPT10eXBlb2YgYT9hOlB0Lm9wZXJhdGlvbnNTb3J0ZXJbYV0sXz11P28uc29ydCh1KTpvO3JldHVybigwLHplLk1hcCkoe3RhZ0RldGFpbHM6dGFnRGV0YWlscyhzLGkpLG9wZXJhdGlvbnM6X30pfSkpfSxacz1WdChzcGVjX3NlbGVjdG9yc19zdGF0ZSwocz0+cy5nZXQoInJlc3BvbnNlcyIsKDAsemUuTWFwKSgpKSkpLGVvPVZ0KHNwZWNfc2VsZWN0b3JzX3N0YXRlLChzPT5zLmdldCgicmVxdWVzdHMiLCgwLHplLk1hcCkoKSkpKSx0bz1WdChzcGVjX3NlbGVjdG9yc19zdGF0ZSwocz0+cy5nZXQoIm11dGF0ZWRSZXF1ZXN0cyIsKDAsemUuTWFwKSgpKSkpLHJlc3BvbnNlRm9yPShzLG8saSk9PlpzKHMpLmdldEluKFtvLGldLG51bGwpLHJlcXVlc3RGb3I9KHMsbyxpKT0+ZW8ocykuZ2V0SW4oW28saV0sbnVsbCksbXV0YXRlZFJlcXVlc3RGb3I9KHMsbyxpKT0+dG8ocykuZ2V0SW4oW28saV0sbnVsbCksYWxsb3dUcnlJdE91dEZvcj0oKT0+ITAscGFyYW1ldGVyV2l0aE1ldGFCeUlkZW50aXR5PShzLG8saSk9Pntjb25zdCBhPU5zKHMpLmdldEluKFsicGF0aHMiLC4uLm8sInBhcmFtZXRlcnMiXSwoMCx6ZS5PcmRlcmVkTWFwKSgpKSx1PXMuZ2V0SW4oWyJtZXRhIiwicGF0aHMiLC4uLm8sInBhcmFtZXRlcnMiXSwoMCx6ZS5PcmRlcmVkTWFwKSgpKTtyZXR1cm4gYS5tYXAoKHM9Pntjb25zdCBvPXUuZ2V0KGAke2kuZ2V0KCJpbiIpfS4ke2kuZ2V0KCJuYW1lIil9YCksYT11LmdldChgJHtpLmdldCgiaW4iKX0uJHtpLmdldCgibmFtZSIpfS5oYXNoLSR7aS5oYXNoQ29kZSgpfWApO3JldHVybigwLHplLk9yZGVyZWRNYXApKCkubWVyZ2UocyxvLGEpfSkpLmZpbmQoKHM9PnMuZ2V0KCJpbiIpPT09aS5nZXQoImluIikmJnMuZ2V0KCJuYW1lIik9PT1pLmdldCgibmFtZSIpKSwoMCx6ZS5PcmRlcmVkTWFwKSgpKX0scGFyYW1ldGVySW5jbHVzaW9uU2V0dGluZ0Zvcj0ocyxvLGksYSk9Pntjb25zdCB1PWAke2F9LiR7aX1gO3JldHVybiBzLmdldEluKFsibWV0YSIsInBhdGhzIiwuLi5vLCJwYXJhbWV0ZXJfaW5jbHVzaW9ucyIsdV0sITEpfSxwYXJhbWV0ZXJXaXRoTWV0YT0ocyxvLGksYSk9Pntjb25zdCB1PU5zKHMpLmdldEluKFsicGF0aHMiLC4uLm8sInBhcmFtZXRlcnMiXSwoMCx6ZS5PcmRlcmVkTWFwKSgpKS5maW5kKChzPT5zLmdldCgiaW4iKT09PWEmJnMuZ2V0KCJuYW1lIik9PT1pKSwoMCx6ZS5PcmRlcmVkTWFwKSgpKTtyZXR1cm4gcGFyYW1ldGVyV2l0aE1ldGFCeUlkZW50aXR5KHMsbyx1KX0sb3BlcmF0aW9uV2l0aE1ldGE9KHMsbyxpKT0+e2NvbnN0IGE9TnMocykuZ2V0SW4oWyJwYXRocyIsbyxpXSwoMCx6ZS5PcmRlcmVkTWFwKSgpKSx1PXMuZ2V0SW4oWyJtZXRhIiwicGF0aHMiLG8saV0sKDAsemUuT3JkZXJlZE1hcCkoKSksXz1hLmdldCgicGFyYW1ldGVycyIsKDAsemUuTGlzdCkoKSkubWFwKChhPT5wYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkocyxbbyxpXSxhKSkpO3JldHVybigwLHplLk9yZGVyZWRNYXApKCkubWVyZ2UoYSx1KS5zZXQoInBhcmFtZXRlcnMiLF8pfTtmdW5jdGlvbiBnZXRQYXJhbWV0ZXIocyxvLGksYSl7cmV0dXJuIG89b3x8W10scy5nZXRJbihbIm1ldGEiLCJwYXRocyIsLi4ubywicGFyYW1ldGVycyJdLCgwLHplLmZyb21KUykoW10pKS5maW5kKChzPT56ZS5NYXAuaXNNYXAocykmJnMuZ2V0KCJuYW1lIik9PT1pJiZzLmdldCgiaW4iKT09PWEpKXx8KDAsemUuTWFwKSgpfWNvbnN0IHJvPVZ0KHNwZWMsKHM9Pntjb25zdCBvPXMuZ2V0KCJob3N0Iik7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBvJiZvLmxlbmd0aD4wJiYiLyIhPT1vWzBdfSkpO2Z1bmN0aW9uIHBhcmFtZXRlclZhbHVlcyhzLG8saSl7cmV0dXJuIG89b3x8W10sb3BlcmF0aW9uV2l0aE1ldGEocywuLi5vKS5nZXQoInBhcmFtZXRlcnMiLCgwLHplLkxpc3QpKCkpLnJlZHVjZSgoKHMsbyk9PntsZXQgYT1pJiYiYm9keSI9PT1vLmdldCgiaW4iKT9vLmdldCgidmFsdWVfeG1sIik6by5nZXQoInZhbHVlIik7cmV0dXJuIHplLkxpc3QuaXNMaXN0KGEpJiYoYT1hLmZpbHRlcigocz0+IiIhPT1zKSkpLHMuc2V0KHBhcmFtVG9JZGVudGlmaWVyKG8se2FsbG93SGFzaGVzOiExfSksYSl9KSwoMCx6ZS5mcm9tSlMpKHt9KSl9ZnVuY3Rpb24gcGFyYW1ldGVyc0luY2x1ZGVJbihzLG89IiIpe2lmKHplLkxpc3QuaXNMaXN0KHMpKXJldHVybiBzLnNvbWUoKHM9PnplLk1hcC5pc01hcChzKSYmcy5nZXQoImluIik9PT1vKSl9ZnVuY3Rpb24gcGFyYW1ldGVyc0luY2x1ZGVUeXBlKHMsbz0iIil7aWYoemUuTGlzdC5pc0xpc3QocykpcmV0dXJuIHMuc29tZSgocz0+emUuTWFwLmlzTWFwKHMpJiZzLmdldCgidHlwZSIpPT09bykpfWZ1bmN0aW9uIGNvbnRlbnRUeXBlVmFsdWVzKHMsbyl7bz1vfHxbXTtsZXQgaT1OcyhzKS5nZXRJbihbInBhdGhzIiwuLi5vXSwoMCx6ZS5mcm9tSlMpKHt9KSksYT1zLmdldEluKFsibWV0YSIsInBhdGhzIiwuLi5vXSwoMCx6ZS5mcm9tSlMpKHt9KSksdT1jdXJyZW50UHJvZHVjZXNGb3IocyxvKTtjb25zdCBfPWkuZ2V0KCJwYXJhbWV0ZXJzIil8fG5ldyB6ZS5MaXN0LHc9YS5nZXQoImNvbnN1bWVzX3ZhbHVlIik/YS5nZXQoImNvbnN1bWVzX3ZhbHVlIik6cGFyYW1ldGVyc0luY2x1ZGVUeXBlKF8sImZpbGUiKT8ibXVsdGlwYXJ0L2Zvcm0tZGF0YSI6cGFyYW1ldGVyc0luY2x1ZGVUeXBlKF8sImZvcm1EYXRhIik/ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCI6dm9pZCAwO3JldHVybigwLHplLmZyb21KUykoe3JlcXVlc3RDb250ZW50VHlwZTp3LHJlc3BvbnNlQ29udGVudFR5cGU6dX0pfWZ1bmN0aW9uIGN1cnJlbnRQcm9kdWNlc0ZvcihzLG8pe289b3x8W107Y29uc3QgaT1OcyhzKS5nZXRJbihbInBhdGhzIiwuLi5vXSxudWxsKTtpZihudWxsPT09aSlyZXR1cm47Y29uc3QgYT1zLmdldEluKFsibWV0YSIsInBhdGhzIiwuLi5vLCJwcm9kdWNlc192YWx1ZSJdLG51bGwpLHU9aS5nZXRJbihbInByb2R1Y2VzIiwwXSxudWxsKTtyZXR1cm4gYXx8dXx8ImFwcGxpY2F0aW9uL2pzb24ifWZ1bmN0aW9uIHByb2R1Y2VzT3B0aW9uc0ZvcihzLG8pe289b3x8W107Y29uc3QgaT1OcyhzKSxhPWkuZ2V0SW4oWyJwYXRocyIsLi4ub10sbnVsbCk7aWYobnVsbD09PWEpcmV0dXJuO2NvbnN0W3VdPW8sXz1hLmdldCgicHJvZHVjZXMiLG51bGwpLHc9aS5nZXRJbihbInBhdGhzIix1LCJwcm9kdWNlcyJdLG51bGwpLHg9aS5nZXRJbihbInByb2R1Y2VzIl0sbnVsbCk7cmV0dXJuIF98fHd8fHh9ZnVuY3Rpb24gY29uc3VtZXNPcHRpb25zRm9yKHMsbyl7bz1vfHxbXTtjb25zdCBpPU5zKHMpLGE9aS5nZXRJbihbInBhdGhzIiwuLi5vXSxudWxsKTtpZihudWxsPT09YSlyZXR1cm47Y29uc3RbdV09byxfPWEuZ2V0KCJjb25zdW1lcyIsbnVsbCksdz1pLmdldEluKFsicGF0aHMiLHUsImNvbnN1bWVzIl0sbnVsbCkseD1pLmdldEluKFsiY29uc3VtZXMiXSxudWxsKTtyZXR1cm4gX3x8d3x8eH1jb25zdCBvcGVyYXRpb25TY2hlbWU9KHMsbyxpKT0+e2xldCBhPXMuZ2V0KCJ1cmwiKS5tYXRjaCgvXihbYS16XVthLXowLTkrXC0uXSopOi8pLHU9QXJyYXkuaXNBcnJheShhKT9hWzFdOm51bGw7cmV0dXJuIHMuZ2V0SW4oWyJzY2hlbWUiLG8saV0pfHxzLmdldEluKFsic2NoZW1lIiwiX2RlZmF1bHRTY2hlbWUiXSl8fHV8fCIifSxjYW5FeGVjdXRlU2NoZW1lPShzLG8saSk9PlsiaHR0cCIsImh0dHBzIl0uaW5kZXhPZihvcGVyYXRpb25TY2hlbWUocyxvLGkpKT4tMSx2YWxpZGF0aW9uRXJyb3JzPShzLG8pPT57bz1vfHxbXTtjb25zdCBpPXMuZ2V0SW4oWyJtZXRhIiwicGF0aHMiLC4uLm8sInBhcmFtZXRlcnMiXSwoMCx6ZS5mcm9tSlMpKFtdKSksYT1bXTtpZigwPT09aS5sZW5ndGgpcmV0dXJuIGE7Y29uc3QgZ2V0RXJyb3JzV2l0aFBhdGhzPShzLG89W10pPT57Y29uc3QgZ2V0TmVzdGVkRXJyb3JzV2l0aFBhdGhzPShzLG8pPT57Y29uc3QgaT1bLi4ubyxzLmdldCgicHJvcEtleSIpfHxzLmdldCgiaW5kZXgiKV07cmV0dXJuIHplLk1hcC5pc01hcChzLmdldCgiZXJyb3IiKSk/Z2V0RXJyb3JzV2l0aFBhdGhzKHMuZ2V0KCJlcnJvciIpLGkpOntlcnJvcjpzLmdldCgiZXJyb3IiKSxwYXRoOml9fTtyZXR1cm4gemUuTGlzdC5pc0xpc3Qocyk/cy5tYXAoKHM9PnplLk1hcC5pc01hcChzKT9nZXROZXN0ZWRFcnJvcnNXaXRoUGF0aHMocyxvKTp7ZXJyb3I6cyxwYXRoOm99KSk6Z2V0TmVzdGVkRXJyb3JzV2l0aFBhdGhzKHMsbyl9O3JldHVybiBpLmZvckVhY2goKChzLG8pPT57Y29uc3QgaT1vLnNwbGl0KCIuIikuc2xpY2UoMSwtMSkuam9pbigiLiIpLHU9cy5nZXQoImVycm9ycyIpO2lmKHUmJnUuY291bnQoKSl7Z2V0RXJyb3JzV2l0aFBhdGhzKHUpLmZvckVhY2goKCh7ZXJyb3I6cyxwYXRoOm99KT0+e2EucHVzaCgoKHMsbyxpKT0+YEZvciAnJHtpfSckeyhvPW8ucmVkdWNlKCgocyxvKT0+Im51bWJlciI9PXR5cGVvZiBvP2Ake3N9WyR7b31dYDpzP2Ake3N9LiR7b31gOm8pLCIiKSk/YCBhdCBwYXRoICcke299J2A6IiJ9OiAke3N9LmApKHMsbyxpKSl9KSl9fSkpLGF9LHZhbGlkYXRlQmVmb3JlRXhlY3V0ZT0ocyxvKT0+MD09PXZhbGlkYXRpb25FcnJvcnMocyxvKS5sZW5ndGgsZ2V0T0FTM1JlcXVpcmVkUmVxdWVzdEJvZHlDb250ZW50VHlwZT0ocyxvKT0+e2xldCBpPXtyZXF1ZXN0Qm9keTohMSxyZXF1ZXN0Q29udGVudFR5cGU6e319LGE9cy5nZXRJbihbInJlc29sdmVkU3VidHJlZXMiLCJwYXRocyIsLi4ubywicmVxdWVzdEJvZHkiXSwoMCx6ZS5mcm9tSlMpKFtdKSk7cmV0dXJuIGEuc2l6ZTwxfHwoYS5nZXRJbihbInJlcXVpcmVkIl0pJiYoaS5yZXF1ZXN0Qm9keT1hLmdldEluKFsicmVxdWlyZWQiXSkpLGEuZ2V0SW4oWyJjb250ZW50Il0pLmVudHJ5U2VxKCkuZm9yRWFjaCgocz0+e2NvbnN0IG89c1swXTtpZihzWzFdLmdldEluKFsic2NoZW1hIiwicmVxdWlyZWQiXSkpe2NvbnN0IGE9c1sxXS5nZXRJbihbInNjaGVtYSIsInJlcXVpcmVkIl0pLnRvSlMoKTtpLnJlcXVlc3RDb250ZW50VHlwZVtvXT1hfX0pKSksaX0saXNNZWRpYVR5cGVTY2hlbWFQcm9wZXJ0aWVzRXF1YWw9KHMsbyxpLGEpPT57aWYoKGl8fGEpJiZpPT09YSlyZXR1cm4hMDtsZXQgdT1zLmdldEluKFsicmVzb2x2ZWRTdWJ0cmVlcyIsInBhdGhzIiwuLi5vLCJyZXF1ZXN0Qm9keSIsImNvbnRlbnQiXSwoMCx6ZS5mcm9tSlMpKFtdKSk7aWYodS5zaXplPDJ8fCFpfHwhYSlyZXR1cm4hMTtsZXQgXz11LmdldEluKFtpLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIl0sKDAsemUuZnJvbUpTKShbXSkpLHc9dS5nZXRJbihbYSwic2NoZW1hIiwicHJvcGVydGllcyJdLCgwLHplLmZyb21KUykoW10pKTtyZXR1cm4hIV8uZXF1YWxzKHcpfTtmdW5jdGlvbiByZXR1cm5TZWxmT3JOZXdNYXAocyl7cmV0dXJuIHplLk1hcC5pc01hcChzKT9zOm5ldyB6ZS5NYXB9dmFyIG5vPV9fd2VicGFja19yZXF1aXJlX18oODUwMTUpLHNvPV9fd2VicGFja19yZXF1aXJlX18ubihubyksb289X193ZWJwYWNrX3JlcXVpcmVfXygzODIyMSksaW89X193ZWJwYWNrX3JlcXVpcmVfXy5uKG9vKSxhbz1fX3dlYnBhY2tfcmVxdWlyZV9fKDYzNTYwKSxjbz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oYW8pLGxvPV9fd2VicGFja19yZXF1aXJlX18oNTYzNjcpLHVvPV9fd2VicGFja19yZXF1aXJlX18ubihsbyk7Y29uc3QgcG89InNwZWNfdXBkYXRlX3NwZWMiLGhvPSJzcGVjX3VwZGF0ZV91cmwiLGZvPSJzcGVjX3VwZGF0ZV9qc29uIixtbz0ic3BlY191cGRhdGVfcGFyYW0iLGdvPSJzcGVjX3VwZGF0ZV9lbXB0eV9wYXJhbV9pbmNsdXNpb24iLHlvPSJzcGVjX3ZhbGlkYXRlX3BhcmFtIix2bz0ic3BlY19zZXRfcmVzcG9uc2UiLGJvPSJzcGVjX3NldF9yZXF1ZXN0Iixfbz0ic3BlY19zZXRfbXV0YXRlZF9yZXF1ZXN0IixTbz0ic3BlY19sb2dfcmVxdWVzdCIsRW89InNwZWNfY2xlYXJfcmVzcG9uc2UiLHdvPSJzcGVjX2NsZWFyX3JlcXVlc3QiLHhvPSJzcGVjX2NsZWFyX3ZhbGlkYXRlX3BhcmFtIixrbz0ic3BlY191cGRhdGVfb3BlcmF0aW9uX21ldGFfdmFsdWUiLE9vPSJzcGVjX3VwZGF0ZV9yZXNvbHZlZCIsQ289InNwZWNfdXBkYXRlX3Jlc29sdmVkX3N1YnRyZWUiLEFvPSJzZXRfc2NoZW1lIix0b1N0cj1zPT5zbygpKHMpP3M6IiI7ZnVuY3Rpb24gdXBkYXRlU3BlYyhzKXtjb25zdCBvPXRvU3RyKHMpLnJlcGxhY2UoL1x0L2csIiAgIik7aWYoInN0cmluZyI9PXR5cGVvZiBzKXJldHVybnt0eXBlOnBvLHBheWxvYWQ6b319ZnVuY3Rpb24gdXBkYXRlUmVzb2x2ZWQocyl7cmV0dXJue3R5cGU6T28scGF5bG9hZDpzfX1mdW5jdGlvbiB1cGRhdGVVcmwocyl7cmV0dXJue3R5cGU6aG8scGF5bG9hZDpzfX1mdW5jdGlvbiB1cGRhdGVKc29uU3BlYyhzKXtyZXR1cm57dHlwZTpmbyxwYXlsb2FkOnN9fWNvbnN0IHBhcnNlVG9Kc29uPXM9Pih7c3BlY0FjdGlvbnM6byxzcGVjU2VsZWN0b3JzOmksZXJyQWN0aW9uczphfSk9PntsZXR7c3BlY1N0cjp1fT1pLF89bnVsbDt0cnl7cz1zfHx1KCksYS5jbGVhcih7c291cmNlOiJwYXJzZXIifSksXz1mbi5sb2FkKHMse3NjaGVtYTpybn0pfWNhdGNoKHMpe3JldHVybiBjb25zb2xlLmVycm9yKHMpLGEubmV3U3BlY0Vycih7c291cmNlOiJwYXJzZXIiLGxldmVsOiJlcnJvciIsbWVzc2FnZTpzLnJlYXNvbixsaW5lOnMubWFyayYmcy5tYXJrLmxpbmU/cy5tYXJrLmxpbmUrMTp2b2lkIDB9KX1yZXR1cm4gXyYmIm9iamVjdCI9PXR5cGVvZiBfP28udXBkYXRlSnNvblNwZWMoXyk6by51cGRhdGVKc29uU3BlYyh7fSl9O2xldCBqbz0hMTtjb25zdCByZXNvbHZlU3BlYz0ocyxvKT0+KHtzcGVjQWN0aW9uczppLHNwZWNTZWxlY3RvcnM6YSxlcnJBY3Rpb25zOnUsZm46e2ZldGNoOl8scmVzb2x2ZTp3LEFTVDp4PXt9fSxnZXRDb25maWdzOkN9KT0+e2pvfHwoY29uc29sZS53YXJuKCJzcGVjQWN0aW9ucy5yZXNvbHZlU3BlYyBpcyBkZXByZWNhdGVkIHNpbmNlIHYzLjEwLjAgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB2NC4wLjA7IHVzZSByZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlIGluc3RlYWQhIiksam89ITApO2NvbnN0e21vZGVsUHJvcGVydHlNYWNybzpqLHBhcmFtZXRlck1hY3JvOkwscmVxdWVzdEludGVyY2VwdG9yOkIscmVzcG9uc2VJbnRlcmNlcHRvcjokfT1DKCk7dm9pZCAwPT09cyYmKHM9YS5zcGVjSnNvbigpKSx2b2lkIDA9PT1vJiYobz1hLnVybCgpKTtsZXQgVj14LmdldExpbmVOdW1iZXJGb3JQYXRoP3guZ2V0TGluZU51bWJlckZvclBhdGg6KCk9Pnt9LFU9YS5zcGVjU3RyKCk7cmV0dXJuIHcoe2ZldGNoOl8sc3BlYzpzLGJhc2VEb2M6U3RyaW5nKG5ldyBVUkwobyxkb2N1bWVudC5iYXNlVVJJKSksbW9kZWxQcm9wZXJ0eU1hY3JvOmoscGFyYW1ldGVyTWFjcm86TCxyZXF1ZXN0SW50ZXJjZXB0b3I6QixyZXNwb25zZUludGVyY2VwdG9yOiR9KS50aGVuKCgoe3NwZWM6cyxlcnJvcnM6b30pPT57aWYodS5jbGVhcih7dHlwZToidGhyb3duIn0pLEFycmF5LmlzQXJyYXkobykmJm8ubGVuZ3RoPjApe2xldCBzPW8ubWFwKChzPT4oY29uc29sZS5lcnJvcihzKSxzLmxpbmU9cy5mdWxsUGF0aD9WKFUscy5mdWxsUGF0aCk6bnVsbCxzLnBhdGg9cy5mdWxsUGF0aD9zLmZ1bGxQYXRoLmpvaW4oIi4iKTpudWxsLHMubGV2ZWw9ImVycm9yIixzLnR5cGU9InRocm93biIscy5zb3VyY2U9InJlc29sdmVyIixPYmplY3QuZGVmaW5lUHJvcGVydHkocywibWVzc2FnZSIse2VudW1lcmFibGU6ITAsdmFsdWU6cy5tZXNzYWdlfSkscykpKTt1Lm5ld1Rocm93bkVyckJhdGNoKHMpfXJldHVybiBpLnVwZGF0ZVJlc29sdmVkKHMpfSkpfTtsZXQgSW89W107Y29uc3QgUG89aW8oKSgoKCk9Pntjb25zdCBzPUlvLnJlZHVjZSgoKHMse3BhdGg6byxzeXN0ZW06aX0pPT4ocy5oYXMoaSl8fHMuc2V0KGksW10pLHMuZ2V0KGkpLnB1c2gobykscykpLG5ldyBNYXApO0lvPVtdLHMuZm9yRWFjaCgoYXN5bmMocyxvKT0+e2lmKCFvKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoImRlYlJlc29sdmVTdWJ0cmVlczogZG9uJ3QgaGF2ZSBhIHN5c3RlbSB0byBvcGVyYXRlIG9uLCBhYm9ydGluZy4iKTtpZighby5mbi5yZXNvbHZlU3VidHJlZSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJFcnJvcjogU3dhZ2dlci1DbGllbnQgZGlkIG5vdCBwcm92aWRlIGEgYHJlc29sdmVTdWJ0cmVlYCBtZXRob2QsIGRvaW5nIG5vdGhpbmcuIik7Y29uc3R7ZXJyQWN0aW9uczppLGVyclNlbGVjdG9yczphLGZuOntyZXNvbHZlU3VidHJlZTp1LGZldGNoOl8sQVNUOnc9e319LHNwZWNTZWxlY3RvcnM6eCxzcGVjQWN0aW9uczpDfT1vLGo9dy5nZXRMaW5lTnVtYmVyRm9yUGF0aD8/eHMoKSh2b2lkIDApLEw9eC5zcGVjU3RyKCkse21vZGVsUHJvcGVydHlNYWNybzpCLHBhcmFtZXRlck1hY3JvOiQscmVxdWVzdEludGVyY2VwdG9yOlYscmVzcG9uc2VJbnRlcmNlcHRvcjpVfT1vLmdldENvbmZpZ3MoKTt0cnl7Y29uc3Qgbz1hd2FpdCBzLnJlZHVjZSgoYXN5bmMocyxvKT0+e2xldHtyZXN1bHRNYXA6dyxzcGVjV2l0aEN1cnJlbnRTdWJ0cmVlczpDfT1hd2FpdCBzO2NvbnN0e2Vycm9yczp6LHNwZWM6WX09YXdhaXQgdShDLG8se2Jhc2VEb2M6U3RyaW5nKG5ldyBVUkwoeC51cmwoKSxkb2N1bWVudC5iYXNlVVJJKSksbW9kZWxQcm9wZXJ0eU1hY3JvOkIscGFyYW1ldGVyTWFjcm86JCxyZXF1ZXN0SW50ZXJjZXB0b3I6VixyZXNwb25zZUludGVyY2VwdG9yOlV9KTtpZihhLmFsbEVycm9ycygpLnNpemUmJmkuY2xlYXJCeSgocz0+InRocm93biIhPT1zLmdldCgidHlwZSIpfHwicmVzb2x2ZXIiIT09cy5nZXQoInNvdXJjZSIpfHwhcy5nZXQoImZ1bGxQYXRoIik/LmV2ZXJ5KCgocyxpKT0+cz09PW9baV18fHZvaWQgMD09PW9baV0pKSkpLEFycmF5LmlzQXJyYXkoeikmJnoubGVuZ3RoPjApe2xldCBzPXoubWFwKChzPT4ocy5saW5lPXMuZnVsbFBhdGg/aihMLHMuZnVsbFBhdGgpOm51bGwscy5wYXRoPXMuZnVsbFBhdGg/cy5mdWxsUGF0aC5qb2luKCIuIik6bnVsbCxzLmxldmVsPSJlcnJvciIscy50eXBlPSJ0aHJvd24iLHMuc291cmNlPSJyZXNvbHZlciIsT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsIm1lc3NhZ2UiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnMubWVzc2FnZX0pLHMpKSk7aS5uZXdUaHJvd25FcnJCYXRjaChzKX1yZXR1cm4gWSYmeC5pc09BUzMoKSYmImNvbXBvbmVudHMiPT09b1swXSYmInNlY3VyaXR5U2NoZW1lcyI9PT1vWzFdJiZhd2FpdCBQcm9taXNlLmFsbChPYmplY3QudmFsdWVzKFkpLmZpbHRlcigocz0+Im9wZW5JZENvbm5lY3QiPT09cz8udHlwZSkpLm1hcCgoYXN5bmMgcz0+e2NvbnN0IG89e3VybDpzLm9wZW5JZENvbm5lY3RVcmwscmVxdWVzdEludGVyY2VwdG9yOlYscmVzcG9uc2VJbnRlcmNlcHRvcjpVfTt0cnl7Y29uc3QgaT1hd2FpdCBfKG8pO2kgaW5zdGFuY2VvZiBFcnJvcnx8aS5zdGF0dXM+PTQwMD9jb25zb2xlLmVycm9yKGkuc3RhdHVzVGV4dCsiICIrby51cmwpOnMub3BlbklkQ29ubmVjdERhdGE9SlNPTi5wYXJzZShpLnRleHQpfWNhdGNoKHMpe2NvbnNvbGUuZXJyb3Iocyl9fSkpKSxjbygpKHcsbyxZKSxDPXVvKCkobyxZLEMpLHtyZXN1bHRNYXA6dyxzcGVjV2l0aEN1cnJlbnRTdWJ0cmVlczpDfX0pLFByb21pc2UucmVzb2x2ZSh7cmVzdWx0TWFwOih4LnNwZWNSZXNvbHZlZFN1YnRyZWUoW10pfHwoMCx6ZS5NYXApKCkpLnRvSlMoKSxzcGVjV2l0aEN1cnJlbnRTdWJ0cmVlczp4LnNwZWNKUygpfSkpO0MudXBkYXRlUmVzb2x2ZWRTdWJ0cmVlKFtdLG8ucmVzdWx0TWFwKX1jYXRjaChzKXtjb25zb2xlLmVycm9yKHMpfX0pKX0pLDM1KSxyZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlPXM9Pm89PntJby5maW5kKCgoe3BhdGg6aSxzeXN0ZW06YX0pPT5hPT09byYmaS50b1N0cmluZygpPT09cy50b1N0cmluZygpKSl8fChJby5wdXNoKHtwYXRoOnMsc3lzdGVtOm99KSxQbygpKX07ZnVuY3Rpb24gY2hhbmdlUGFyYW0ocyxvLGksYSx1KXtyZXR1cm57dHlwZTptbyxwYXlsb2FkOntwYXRoOnMsdmFsdWU6YSxwYXJhbU5hbWU6byxwYXJhbUluOmksaXNYbWw6dX19fWZ1bmN0aW9uIGNoYW5nZVBhcmFtQnlJZGVudGl0eShzLG8saSxhKXtyZXR1cm57dHlwZTptbyxwYXlsb2FkOntwYXRoOnMscGFyYW06byx2YWx1ZTppLGlzWG1sOmF9fX1jb25zdCB1cGRhdGVSZXNvbHZlZFN1YnRyZWU9KHMsbyk9Pih7dHlwZTpDbyxwYXlsb2FkOntwYXRoOnMsdmFsdWU6b319KSxpbnZhbGlkYXRlUmVzb2x2ZWRTdWJ0cmVlQ2FjaGU9KCk9Pih7dHlwZTpDbyxwYXlsb2FkOntwYXRoOltdLHZhbHVlOigwLHplLk1hcCkoKX19KSx2YWxpZGF0ZVBhcmFtcz0ocyxvKT0+KHt0eXBlOnlvLHBheWxvYWQ6e3BhdGhNZXRob2Q6cyxpc09BUzM6b319KSx1cGRhdGVFbXB0eVBhcmFtSW5jbHVzaW9uPShzLG8saSxhKT0+KHt0eXBlOmdvLHBheWxvYWQ6e3BhdGhNZXRob2Q6cyxwYXJhbU5hbWU6byxwYXJhbUluOmksaW5jbHVkZUVtcHR5VmFsdWU6YX19KTtmdW5jdGlvbiBjbGVhclZhbGlkYXRlUGFyYW1zKHMpe3JldHVybnt0eXBlOnhvLHBheWxvYWQ6e3BhdGhNZXRob2Q6c319fWZ1bmN0aW9uIGNoYW5nZUNvbnN1bWVzVmFsdWUocyxvKXtyZXR1cm57dHlwZTprbyxwYXlsb2FkOntwYXRoOnMsdmFsdWU6byxrZXk6ImNvbnN1bWVzX3ZhbHVlIn19fWZ1bmN0aW9uIGNoYW5nZVByb2R1Y2VzVmFsdWUocyxvKXtyZXR1cm57dHlwZTprbyxwYXlsb2FkOntwYXRoOnMsdmFsdWU6byxrZXk6InByb2R1Y2VzX3ZhbHVlIn19fWNvbnN0IHNldFJlc3BvbnNlPShzLG8saSk9Pih7cGF5bG9hZDp7cGF0aDpzLG1ldGhvZDpvLHJlczppfSx0eXBlOnZvfSksc2V0UmVxdWVzdD0ocyxvLGkpPT4oe3BheWxvYWQ6e3BhdGg6cyxtZXRob2Q6byxyZXE6aX0sdHlwZTpib30pLHNldE11dGF0ZWRSZXF1ZXN0PShzLG8saSk9Pih7cGF5bG9hZDp7cGF0aDpzLG1ldGhvZDpvLHJlcTppfSx0eXBlOl9vfSksbG9nUmVxdWVzdD1zPT4oe3BheWxvYWQ6cyx0eXBlOlNvfSksZXhlY3V0ZVJlcXVlc3Q9cz0+KHtmbjpvLHNwZWNBY3Rpb25zOmksc3BlY1NlbGVjdG9yczphLGdldENvbmZpZ3M6dSxvYXMzU2VsZWN0b3JzOl99KT0+e2xldHtwYXRoTmFtZTp3LG1ldGhvZDp4LG9wZXJhdGlvbjpDfT1zLHtyZXF1ZXN0SW50ZXJjZXB0b3I6aixyZXNwb25zZUludGVyY2VwdG9yOkx9PXUoKSxCPUMudG9KUygpO2lmKEMmJkMuZ2V0KCJwYXJhbWV0ZXJzIikmJkMuZ2V0KCJwYXJhbWV0ZXJzIikuZmlsdGVyKChzPT5zJiYhMD09PXMuZ2V0KCJhbGxvd0VtcHR5VmFsdWUiKSkpLmZvckVhY2goKG89PntpZihhLnBhcmFtZXRlckluY2x1c2lvblNldHRpbmdGb3IoW3cseF0sby5nZXQoIm5hbWUiKSxvLmdldCgiaW4iKSkpe3MucGFyYW1ldGVycz1zLnBhcmFtZXRlcnN8fHt9O2NvbnN0IGk9cGFyYW1Ub1ZhbHVlKG8scy5wYXJhbWV0ZXJzKTsoIWl8fGkmJjA9PT1pLnNpemUpJiYocy5wYXJhbWV0ZXJzW28uZ2V0KCJuYW1lIildPSIiKX19KSkscy5jb250ZXh0VXJsPU50KCkoYS51cmwoKSkudG9TdHJpbmcoKSxCJiZCLm9wZXJhdGlvbklkP3Mub3BlcmF0aW9uSWQ9Qi5vcGVyYXRpb25JZDpCJiZ3JiZ4JiYocy5vcGVyYXRpb25JZD1vLm9wSWQoQix3LHgpKSxhLmlzT0FTMygpKXtjb25zdCBvPWAke3d9OiR7eH1gO3Muc2VydmVyPV8uc2VsZWN0ZWRTZXJ2ZXIobyl8fF8uc2VsZWN0ZWRTZXJ2ZXIoKTtjb25zdCBpPV8uc2VydmVyVmFyaWFibGVzKHtzZXJ2ZXI6cy5zZXJ2ZXIsbmFtZXNwYWNlOm99KS50b0pTKCksYT1fLnNlcnZlclZhcmlhYmxlcyh7c2VydmVyOnMuc2VydmVyfSkudG9KUygpO3Muc2VydmVyVmFyaWFibGVzPU9iamVjdC5rZXlzKGkpLmxlbmd0aD9pOmEscy5yZXF1ZXN0Q29udGVudFR5cGU9Xy5yZXF1ZXN0Q29udGVudFR5cGUodyx4KSxzLnJlc3BvbnNlQ29udGVudFR5cGU9Xy5yZXNwb25zZUNvbnRlbnRUeXBlKHcseCl8fCIqLyoiO2NvbnN0IHU9Xy5yZXF1ZXN0Qm9keVZhbHVlKHcseCksQz1fLnJlcXVlc3RCb2R5SW5jbHVzaW9uU2V0dGluZyh3LHgpO3UmJnUudG9KUz9zLnJlcXVlc3RCb2R5PXUubWFwKChzPT56ZS5NYXAuaXNNYXAocyk/cy5nZXQoInZhbHVlIik6cykpLmZpbHRlcigoKHMsbyk9PihBcnJheS5pc0FycmF5KHMpPzAhPT1zLmxlbmd0aDohaXNFbXB0eVZhbHVlKHMpKXx8Qy5nZXQobykpKS50b0pTKCk6cy5yZXF1ZXN0Qm9keT11fWxldCAkPU9iamVjdC5hc3NpZ24oe30scyk7JD1vLmJ1aWxkUmVxdWVzdCgkKSxpLnNldFJlcXVlc3Qocy5wYXRoTmFtZSxzLm1ldGhvZCwkKTtzLnJlcXVlc3RJbnRlcmNlcHRvcj1hc3luYyBvPT57bGV0IGE9YXdhaXQgai5hcHBseSh2b2lkIDAsW29dKSx1PU9iamVjdC5hc3NpZ24oe30sYSk7cmV0dXJuIGkuc2V0TXV0YXRlZFJlcXVlc3Qocy5wYXRoTmFtZSxzLm1ldGhvZCx1KSxhfSxzLnJlc3BvbnNlSW50ZXJjZXB0b3I9TDtjb25zdCBWPURhdGUubm93KCk7cmV0dXJuIG8uZXhlY3V0ZShzKS50aGVuKChvPT57by5kdXJhdGlvbj1EYXRlLm5vdygpLVYsaS5zZXRSZXNwb25zZShzLnBhdGhOYW1lLHMubWV0aG9kLG8pfSkpLmNhdGNoKChvPT57IkZhaWxlZCB0byBmZXRjaCI9PT1vLm1lc3NhZ2UmJihvLm5hbWU9IiIsby5tZXNzYWdlPScqKkZhaWxlZCB0byBmZXRjaC4qKiAgXG4qKlBvc3NpYmxlIFJlYXNvbnM6KiogXG4gIC0gQ09SUyBcbiAgLSBOZXR3b3JrIEZhaWx1cmUgXG4gIC0gVVJMIHNjaGVtZSBtdXN0IGJlICJodHRwIiBvciAiaHR0cHMiIGZvciBDT1JTIHJlcXVlc3QuJyksaS5zZXRSZXNwb25zZShzLnBhdGhOYW1lLHMubWV0aG9kLHtlcnJvcjohMCxlcnI6b30pfSkpfSxhY3Rpb25zX2V4ZWN1dGU9KHtwYXRoOnMsbWV0aG9kOm8sLi4uaX09e30pPT5hPT57bGV0e2ZuOntmZXRjaDp1fSxzcGVjU2VsZWN0b3JzOl8sc3BlY0FjdGlvbnM6d309YSx4PV8uc3BlY0pzb25XaXRoUmVzb2x2ZWRTdWJ0cmVlcygpLnRvSlMoKSxDPV8ub3BlcmF0aW9uU2NoZW1lKHMsbykse3JlcXVlc3RDb250ZW50VHlwZTpqLHJlc3BvbnNlQ29udGVudFR5cGU6TH09Xy5jb250ZW50VHlwZVZhbHVlcyhbcyxvXSkudG9KUygpLEI9L3htbC9pLnRlc3QoaiksJD1fLnBhcmFtZXRlclZhbHVlcyhbcyxvXSxCKS50b0pTKCk7cmV0dXJuIHcuZXhlY3V0ZVJlcXVlc3Qoey4uLmksZmV0Y2g6dSxzcGVjOngscGF0aE5hbWU6cyxtZXRob2Q6byxwYXJhbWV0ZXJzOiQscmVxdWVzdENvbnRlbnRUeXBlOmosc2NoZW1lOkMscmVzcG9uc2VDb250ZW50VHlwZTpMfSl9O2Z1bmN0aW9uIGNsZWFyUmVzcG9uc2UocyxvKXtyZXR1cm57dHlwZTpFbyxwYXlsb2FkOntwYXRoOnMsbWV0aG9kOm99fX1mdW5jdGlvbiBjbGVhclJlcXVlc3QocyxvKXtyZXR1cm57dHlwZTp3byxwYXlsb2FkOntwYXRoOnMsbWV0aG9kOm99fX1mdW5jdGlvbiBzZXRTY2hlbWUocyxvLGkpe3JldHVybnt0eXBlOkFvLHBheWxvYWQ6e3NjaGVtZTpzLHBhdGg6byxtZXRob2Q6aX19fWNvbnN0IFRvPXtbcG9dOihzLG8pPT4ic3RyaW5nIj09dHlwZW9mIG8ucGF5bG9hZD9zLnNldCgic3BlYyIsby5wYXlsb2FkKTpzLFtob106KHMsbyk9PnMuc2V0KCJ1cmwiLG8ucGF5bG9hZCsiIiksW2ZvXToocyxvKT0+cy5zZXQoImpzb24iLGZyb21KU09yZGVyZWQoby5wYXlsb2FkKSksW09vXToocyxvKT0+cy5zZXRJbihbInJlc29sdmVkIl0sZnJvbUpTT3JkZXJlZChvLnBheWxvYWQpKSxbQ29dOihzLG8pPT57Y29uc3R7dmFsdWU6aSxwYXRoOmF9PW8ucGF5bG9hZDtyZXR1cm4gcy5zZXRJbihbInJlc29sdmVkU3VidHJlZXMiLC4uLmFdLGZyb21KU09yZGVyZWQoaSkpfSxbbW9dOihzLHtwYXlsb2FkOm99KT0+e2xldHtwYXRoOmkscGFyYW1OYW1lOmEscGFyYW1Jbjp1LHBhcmFtOl8sdmFsdWU6dyxpc1htbDp4fT1vLEM9Xz9wYXJhbVRvSWRlbnRpZmllcihfKTpgJHt1fS4ke2F9YDtjb25zdCBqPXg/InZhbHVlX3htbCI6InZhbHVlIjtyZXR1cm4gcy5zZXRJbihbIm1ldGEiLCJwYXRocyIsLi4uaSwicGFyYW1ldGVycyIsQyxqXSwoMCx6ZS5mcm9tSlMpKHcpKX0sW2dvXToocyx7cGF5bG9hZDpvfSk9PntsZXR7cGF0aE1ldGhvZDppLHBhcmFtTmFtZTphLHBhcmFtSW46dSxpbmNsdWRlRW1wdHlWYWx1ZTpffT1vO2lmKCFhfHwhdSlyZXR1cm4gY29uc29sZS53YXJuKCJXYXJuaW5nOiBVUERBVEVfRU1QVFlfUEFSQU1fSU5DTFVTSU9OIGNvdWxkIG5vdCBnZW5lcmF0ZSBhIHBhcmFtS2V5LiIpLHM7Y29uc3Qgdz1gJHt1fS4ke2F9YDtyZXR1cm4gcy5zZXRJbihbIm1ldGEiLCJwYXRocyIsLi4uaSwicGFyYW1ldGVyX2luY2x1c2lvbnMiLHddLF8pfSxbeW9dOihzLHtwYXlsb2FkOntwYXRoTWV0aG9kOm8saXNPQVMzOml9fSk9Pntjb25zdCBhPU5zKHMpLmdldEluKFsicGF0aHMiLC4uLm9dKSx1PXBhcmFtZXRlclZhbHVlcyhzLG8pLnRvSlMoKTtyZXR1cm4gcy51cGRhdGVJbihbIm1ldGEiLCJwYXRocyIsLi4ubywicGFyYW1ldGVycyJdLCgwLHplLmZyb21KUykoe30pLChfPT5hLmdldCgicGFyYW1ldGVycyIsKDAsemUuTGlzdCkoKSkucmVkdWNlKCgoYSxfKT0+e2NvbnN0IHc9cGFyYW1Ub1ZhbHVlKF8sdSkseD1wYXJhbWV0ZXJJbmNsdXNpb25TZXR0aW5nRm9yKHMsbyxfLmdldCgibmFtZSIpLF8uZ2V0KCJpbiIpKSxDPSgocyxvLHtpc09BUzM6aT0hMSxieXBhc3NSZXF1aXJlZENoZWNrOmE9ITF9PXt9KT0+e2xldCB1PXMuZ2V0KCJyZXF1aXJlZCIpLHtzY2hlbWE6XyxwYXJhbWV0ZXJDb250ZW50TWVkaWFUeXBlOnd9PWdldFBhcmFtZXRlclNjaGVtYShzLHtpc09BUzM6aX0pO3JldHVybiB2YWxpZGF0ZVZhbHVlQnlTY2hlbWEobyxfLHUsYSx3KX0pKF8sdyx7YnlwYXNzUmVxdWlyZWRDaGVjazp4LGlzT0FTMzppfSk7cmV0dXJuIGEuc2V0SW4oW3BhcmFtVG9JZGVudGlmaWVyKF8pLCJlcnJvcnMiXSwoMCx6ZS5mcm9tSlMpKEMpKX0pLF8pKSl9LFt4b106KHMse3BheWxvYWQ6e3BhdGhNZXRob2Q6b319KT0+cy51cGRhdGVJbihbIm1ldGEiLCJwYXRocyIsLi4ubywicGFyYW1ldGVycyJdLCgwLHplLmZyb21KUykoW10pLChzPT5zLm1hcCgocz0+cy5zZXQoImVycm9ycyIsKDAsemUuZnJvbUpTKShbXSkpKSkpKSxbdm9dOihzLHtwYXlsb2FkOntyZXM6byxwYXRoOmksbWV0aG9kOmF9fSk9PntsZXQgdTt1PW8uZXJyb3I/T2JqZWN0LmFzc2lnbih7ZXJyb3I6ITAsbmFtZTpvLmVyci5uYW1lLG1lc3NhZ2U6by5lcnIubWVzc2FnZSxzdGF0dXNDb2RlOm8uZXJyLnN0YXR1c0NvZGV9LG8uZXJyLnJlc3BvbnNlKTpvLHUuaGVhZGVycz11LmhlYWRlcnN8fHt9O2xldCBfPXMuc2V0SW4oWyJyZXNwb25zZXMiLGksYV0sZnJvbUpTT3JkZXJlZCh1KSk7cmV0dXJuIGx0LkJsb2ImJnUuZGF0YSBpbnN0YW5jZW9mIGx0LkJsb2ImJihfPV8uc2V0SW4oWyJyZXNwb25zZXMiLGksYSwidGV4dCJdLHUuZGF0YSkpLF99LFtib106KHMse3BheWxvYWQ6e3JlcTpvLHBhdGg6aSxtZXRob2Q6YX19KT0+cy5zZXRJbihbInJlcXVlc3RzIixpLGFdLGZyb21KU09yZGVyZWQobykpLFtfb106KHMse3BheWxvYWQ6e3JlcTpvLHBhdGg6aSxtZXRob2Q6YX19KT0+cy5zZXRJbihbIm11dGF0ZWRSZXF1ZXN0cyIsaSxhXSxmcm9tSlNPcmRlcmVkKG8pKSxba29dOihzLHtwYXlsb2FkOntwYXRoOm8sdmFsdWU6aSxrZXk6YX19KT0+e2xldCB1PVsicGF0aHMiLC4uLm9dLF89WyJtZXRhIiwicGF0aHMiLC4uLm9dO3JldHVybiBzLmdldEluKFsianNvbiIsLi4udV0pfHxzLmdldEluKFsicmVzb2x2ZWQiLC4uLnVdKXx8cy5nZXRJbihbInJlc29sdmVkU3VidHJlZXMiLC4uLnVdKT9zLnNldEluKFsuLi5fLGFdLCgwLHplLmZyb21KUykoaSkpOnN9LFtFb106KHMse3BheWxvYWQ6e3BhdGg6byxtZXRob2Q6aX19KT0+cy5kZWxldGVJbihbInJlc3BvbnNlcyIsbyxpXSksW3dvXToocyx7cGF5bG9hZDp7cGF0aDpvLG1ldGhvZDppfX0pPT5zLmRlbGV0ZUluKFsicmVxdWVzdHMiLG8saV0pLFtBb106KHMse3BheWxvYWQ6e3NjaGVtZTpvLHBhdGg6aSxtZXRob2Q6YX19KT0+aSYmYT9zLnNldEluKFsic2NoZW1lIixpLGFdLG8pOml8fGE/dm9pZCAwOnMuc2V0SW4oWyJzY2hlbWUiLCJfZGVmYXVsdFNjaGVtZSJdLG8pfSx3cmFwX2FjdGlvbnNfdXBkYXRlU3BlYz0ocyx7c3BlY0FjdGlvbnM6b30pPT4oLi4uaSk9PntzKC4uLmkpLG8ucGFyc2VUb0pzb24oLi4uaSl9LHdyYXBfYWN0aW9uc191cGRhdGVKc29uU3BlYz0ocyx7c3BlY0FjdGlvbnM6b30pPT4oLi4uaSk9PntzKC4uLmkpLG8uaW52YWxpZGF0ZVJlc29sdmVkU3VidHJlZUNhY2hlKCk7Y29uc3RbYV09aSx1PUFuKCkoYSxbInBhdGhzIl0pfHx7fTtPYmplY3Qua2V5cyh1KS5mb3JFYWNoKChzPT57Y29uc3QgaT1BbigpKHUsW3NdKTthcygpKGkpJiZpLiRyZWYmJm8ucmVxdWVzdFJlc29sdmVkU3VidHJlZShbInBhdGhzIixzXSl9KSksby5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKFsiY29tcG9uZW50cyIsInNlY3VyaXR5U2NoZW1lcyJdKX0sd3JhcF9hY3Rpb25zX2V4ZWN1dGVSZXF1ZXN0PShzLHtzcGVjQWN0aW9uczpvfSk9Pmk9PihvLmxvZ1JlcXVlc3QoaSkscyhpKSksd3JhcF9hY3Rpb25zX3ZhbGlkYXRlUGFyYW1zPShzLHtzcGVjU2VsZWN0b3JzOm99KT0+aT0+cyhpLG8uaXNPQVMzKCkpLHBsdWdpbnNfc3BlYz0oKT0+KHtzdGF0ZVBsdWdpbnM6e3NwZWM6e3dyYXBBY3Rpb25zOnsuLi5ZfSxyZWR1Y2Vyczp7Li4uVG99LGFjdGlvbnM6ey4uLnp9LHNlbGVjdG9yczp7Li4uVX19fX0pO3ZhciBObz1mdW5jdGlvbigpe3ZhciBleHRlbmRTdGF0aWNzPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIGV4dGVuZFN0YXRpY3M9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHMsbyl7cy5fX3Byb3RvX189b318fGZ1bmN0aW9uKHMsbyl7Zm9yKHZhciBpIGluIG8pby5oYXNPd25Qcm9wZXJ0eShpKSYmKHNbaV09b1tpXSl9LGV4dGVuZFN0YXRpY3MocyxvKX07cmV0dXJuIGZ1bmN0aW9uKHMsbyl7ZnVuY3Rpb24gX18oKXt0aGlzLmNvbnN0cnVjdG9yPXN9ZXh0ZW5kU3RhdGljcyhzLG8pLHMucHJvdG90eXBlPW51bGw9PT1vP09iamVjdC5jcmVhdGUobyk6KF9fLnByb3RvdHlwZT1vLnByb3RvdHlwZSxuZXcgX18pfX0oKSxNbz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIG1vZHVsZV9oZWxwZXJzX2hhc093blByb3BlcnR5KHMsbyl7cmV0dXJuIE1vLmNhbGwocyxvKX1mdW5jdGlvbiBfb2JqZWN0S2V5cyhzKXtpZihBcnJheS5pc0FycmF5KHMpKXtmb3IodmFyIG89bmV3IEFycmF5KHMubGVuZ3RoKSxpPTA7aTxvLmxlbmd0aDtpKyspb1tpXT0iIitpO3JldHVybiBvfWlmKE9iamVjdC5rZXlzKXJldHVybiBPYmplY3Qua2V5cyhzKTt2YXIgYT1bXTtmb3IodmFyIHUgaW4gcyltb2R1bGVfaGVscGVyc19oYXNPd25Qcm9wZXJ0eShzLHUpJiZhLnB1c2godSk7cmV0dXJuIGF9ZnVuY3Rpb24gX2RlZXBDbG9uZShzKXtzd2l0Y2godHlwZW9mIHMpe2Nhc2Uib2JqZWN0IjpyZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzKSk7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiBudWxsO2RlZmF1bHQ6cmV0dXJuIHN9fWZ1bmN0aW9uIGhlbHBlcnNfaXNJbnRlZ2VyKHMpe2Zvcih2YXIgbyxpPTAsYT1zLmxlbmd0aDtpPGE7KXtpZighKChvPXMuY2hhckNvZGVBdChpKSk+PTQ4JiZvPD01NykpcmV0dXJuITE7aSsrfXJldHVybiEwfWZ1bmN0aW9uIGVzY2FwZVBhdGhDb21wb25lbnQocyl7cmV0dXJuLTE9PT1zLmluZGV4T2YoIi8iKSYmLTE9PT1zLmluZGV4T2YoIn4iKT9zOnMucmVwbGFjZSgvfi9nLCJ+MCIpLnJlcGxhY2UoL1wvL2csIn4xIil9ZnVuY3Rpb24gdW5lc2NhcGVQYXRoQ29tcG9uZW50KHMpe3JldHVybiBzLnJlcGxhY2UoL34xL2csIi8iKS5yZXBsYWNlKC9+MC9nLCJ+Iil9ZnVuY3Rpb24gaGFzVW5kZWZpbmVkKHMpe2lmKHZvaWQgMD09PXMpcmV0dXJuITA7aWYocylpZihBcnJheS5pc0FycmF5KHMpKXtmb3IodmFyIG89MCxpPXMubGVuZ3RoO288aTtvKyspaWYoaGFzVW5kZWZpbmVkKHNbb10pKXJldHVybiEwfWVsc2UgaWYoIm9iamVjdCI9PXR5cGVvZiBzKWZvcih2YXIgYT1fb2JqZWN0S2V5cyhzKSx1PWEubGVuZ3RoLF89MDtfPHU7XysrKWlmKGhhc1VuZGVmaW5lZChzW2FbX11dKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBwYXRjaEVycm9yTWVzc2FnZUZvcm1hdHRlcihzLG8pe3ZhciBpPVtzXTtmb3IodmFyIGEgaW4gbyl7dmFyIHU9Im9iamVjdCI9PXR5cGVvZiBvW2FdP0pTT04uc3RyaW5naWZ5KG9bYV0sbnVsbCwyKTpvW2FdO3ZvaWQgMCE9PXUmJmkucHVzaChhKyI6ICIrdSl9cmV0dXJuIGkuam9pbigiXG4iKX12YXIgUm89ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gUGF0Y2hFcnJvcihvLGksYSx1LF8pe3ZhciB3PXRoaXMuY29uc3RydWN0b3IseD1zLmNhbGwodGhpcyxwYXRjaEVycm9yTWVzc2FnZUZvcm1hdHRlcihvLHtuYW1lOmksaW5kZXg6YSxvcGVyYXRpb246dSx0cmVlOl99KSl8fHRoaXM7cmV0dXJuIHgubmFtZT1pLHguaW5kZXg9YSx4Lm9wZXJhdGlvbj11LHgudHJlZT1fLE9iamVjdC5zZXRQcm90b3R5cGVPZih4LHcucHJvdG90eXBlKSx4Lm1lc3NhZ2U9cGF0Y2hFcnJvck1lc3NhZ2VGb3JtYXR0ZXIobyx7bmFtZTppLGluZGV4OmEsb3BlcmF0aW9uOnUsdHJlZTpffSkseH1yZXR1cm4gTm8oUGF0Y2hFcnJvcixzKSxQYXRjaEVycm9yfShFcnJvciksRG89Um8sTG89X2RlZXBDbG9uZSxGbz17YWRkOmZ1bmN0aW9uKHMsbyxpKXtyZXR1cm4gc1tvXT10aGlzLnZhbHVlLHtuZXdEb2N1bWVudDppfX0scmVtb3ZlOmZ1bmN0aW9uKHMsbyxpKXt2YXIgYT1zW29dO3JldHVybiBkZWxldGUgc1tvXSx7bmV3RG9jdW1lbnQ6aSxyZW1vdmVkOmF9fSxyZXBsYWNlOmZ1bmN0aW9uKHMsbyxpKXt2YXIgYT1zW29dO3JldHVybiBzW29dPXRoaXMudmFsdWUse25ld0RvY3VtZW50OmkscmVtb3ZlZDphfX0sbW92ZTpmdW5jdGlvbihzLG8saSl7dmFyIGE9Z2V0VmFsdWVCeVBvaW50ZXIoaSx0aGlzLnBhdGgpO2EmJihhPV9kZWVwQ2xvbmUoYSkpO3ZhciB1PWFwcGx5T3BlcmF0aW9uKGkse29wOiJyZW1vdmUiLHBhdGg6dGhpcy5mcm9tfSkucmVtb3ZlZDtyZXR1cm4gYXBwbHlPcGVyYXRpb24oaSx7b3A6ImFkZCIscGF0aDp0aGlzLnBhdGgsdmFsdWU6dX0pLHtuZXdEb2N1bWVudDppLHJlbW92ZWQ6YX19LGNvcHk6ZnVuY3Rpb24ocyxvLGkpe3ZhciBhPWdldFZhbHVlQnlQb2ludGVyKGksdGhpcy5mcm9tKTtyZXR1cm4gYXBwbHlPcGVyYXRpb24oaSx7b3A6ImFkZCIscGF0aDp0aGlzLnBhdGgsdmFsdWU6X2RlZXBDbG9uZShhKX0pLHtuZXdEb2N1bWVudDppfX0sdGVzdDpmdW5jdGlvbihzLG8saSl7cmV0dXJue25ld0RvY3VtZW50OmksdGVzdDpfYXJlRXF1YWxzKHNbb10sdGhpcy52YWx1ZSl9fSxfZ2V0OmZ1bmN0aW9uKHMsbyxpKXtyZXR1cm4gdGhpcy52YWx1ZT1zW29dLHtuZXdEb2N1bWVudDppfX19LEJvPXthZGQ6ZnVuY3Rpb24ocyxvLGkpe3JldHVybiBoZWxwZXJzX2lzSW50ZWdlcihvKT9zLnNwbGljZShvLDAsdGhpcy52YWx1ZSk6c1tvXT10aGlzLnZhbHVlLHtuZXdEb2N1bWVudDppLGluZGV4Om99fSxyZW1vdmU6ZnVuY3Rpb24ocyxvLGkpe3JldHVybntuZXdEb2N1bWVudDppLHJlbW92ZWQ6cy5zcGxpY2UobywxKVswXX19LHJlcGxhY2U6ZnVuY3Rpb24ocyxvLGkpe3ZhciBhPXNbb107cmV0dXJuIHNbb109dGhpcy52YWx1ZSx7bmV3RG9jdW1lbnQ6aSxyZW1vdmVkOmF9fSxtb3ZlOkZvLm1vdmUsY29weTpGby5jb3B5LHRlc3Q6Rm8udGVzdCxfZ2V0OkZvLl9nZXR9O2Z1bmN0aW9uIGdldFZhbHVlQnlQb2ludGVyKHMsbyl7aWYoIiI9PW8pcmV0dXJuIHM7dmFyIGk9e29wOiJfZ2V0IixwYXRoOm99O3JldHVybiBhcHBseU9wZXJhdGlvbihzLGkpLGkudmFsdWV9ZnVuY3Rpb24gYXBwbHlPcGVyYXRpb24ocyxvLGksYSx1LF8pe2lmKHZvaWQgMD09PWkmJihpPSExKSx2b2lkIDA9PT1hJiYoYT0hMCksdm9pZCAwPT09dSYmKHU9ITApLHZvaWQgMD09PV8mJihfPTApLGkmJigiZnVuY3Rpb24iPT10eXBlb2YgaT9pKG8sMCxzLG8ucGF0aCk6dmFsaWRhdG9yKG8sMCkpLCIiPT09by5wYXRoKXt2YXIgdz17bmV3RG9jdW1lbnQ6c307aWYoImFkZCI9PT1vLm9wKXJldHVybiB3Lm5ld0RvY3VtZW50PW8udmFsdWUsdztpZigicmVwbGFjZSI9PT1vLm9wKXJldHVybiB3Lm5ld0RvY3VtZW50PW8udmFsdWUsdy5yZW1vdmVkPXMsdztpZigibW92ZSI9PT1vLm9wfHwiY29weSI9PT1vLm9wKXJldHVybiB3Lm5ld0RvY3VtZW50PWdldFZhbHVlQnlQb2ludGVyKHMsby5mcm9tKSwibW92ZSI9PT1vLm9wJiYody5yZW1vdmVkPXMpLHc7aWYoInRlc3QiPT09by5vcCl7aWYody50ZXN0PV9hcmVFcXVhbHMocyxvLnZhbHVlKSwhMT09PXcudGVzdCl0aHJvdyBuZXcgRG8oIlRlc3Qgb3BlcmF0aW9uIGZhaWxlZCIsIlRFU1RfT1BFUkFUSU9OX0ZBSUxFRCIsXyxvLHMpO3JldHVybiB3Lm5ld0RvY3VtZW50PXMsd31pZigicmVtb3ZlIj09PW8ub3ApcmV0dXJuIHcucmVtb3ZlZD1zLHcubmV3RG9jdW1lbnQ9bnVsbCx3O2lmKCJfZ2V0Ij09PW8ub3ApcmV0dXJuIG8udmFsdWU9cyx3O2lmKGkpdGhyb3cgbmV3IERvKCJPcGVyYXRpb24gYG9wYCBwcm9wZXJ0eSBpcyBub3Qgb25lIG9mIG9wZXJhdGlvbnMgZGVmaW5lZCBpbiBSRkMtNjkwMiIsIk9QRVJBVElPTl9PUF9JTlZBTElEIixfLG8scyk7cmV0dXJuIHd9YXx8KHM9X2RlZXBDbG9uZShzKSk7dmFyIHg9KG8ucGF0aHx8IiIpLnNwbGl0KCIvIiksQz1zLGo9MSxMPXgubGVuZ3RoLEI9dm9pZCAwLCQ9dm9pZCAwLFY9dm9pZCAwO2ZvcihWPSJmdW5jdGlvbiI9PXR5cGVvZiBpP2k6dmFsaWRhdG9yOzspe2lmKCgkPXhbal0pJiYtMSE9JC5pbmRleE9mKCJ+IikmJigkPXVuZXNjYXBlUGF0aENvbXBvbmVudCgkKSksdSYmKCJfX3Byb3RvX18iPT0kfHwicHJvdG90eXBlIj09JCYmaj4wJiYiY29uc3RydWN0b3IiPT14W2otMV0pKXRocm93IG5ldyBUeXBlRXJyb3IoIkpTT04tUGF0Y2g6IG1vZGlmeWluZyBgX19wcm90b19fYCBvciBgY29uc3RydWN0b3IvcHJvdG90eXBlYCBwcm9wIGlzIGJhbm5lZCBmb3Igc2VjdXJpdHkgcmVhc29ucywgaWYgdGhpcyB3YXMgb24gcHVycG9zZSwgcGxlYXNlIHNldCBgYmFuUHJvdG90eXBlTW9kaWZpY2F0aW9uc2AgZmxhZyBmYWxzZSBhbmQgcGFzcyBpdCB0byB0aGlzIGZ1bmN0aW9uLiBNb3JlIGluZm8gaW4gZmFzdC1qc29uLXBhdGNoIFJFQURNRSIpO2lmKGkmJnZvaWQgMD09PUImJih2b2lkIDA9PT1DWyRdP0I9eC5zbGljZSgwLGopLmpvaW4oIi8iKTpqPT1MLTEmJihCPW8ucGF0aCksdm9pZCAwIT09QiYmVihvLDAscyxCKSksaisrLEFycmF5LmlzQXJyYXkoQykpe2lmKCItIj09PSQpJD1DLmxlbmd0aDtlbHNle2lmKGkmJiFoZWxwZXJzX2lzSW50ZWdlcigkKSl0aHJvdyBuZXcgRG8oIkV4cGVjdGVkIGFuIHVuc2lnbmVkIGJhc2UtMTAgaW50ZWdlciB2YWx1ZSwgbWFraW5nIHRoZSBuZXcgcmVmZXJlbmNlZCB2YWx1ZSB0aGUgYXJyYXkgZWxlbWVudCB3aXRoIHRoZSB6ZXJvLWJhc2VkIGluZGV4IiwiT1BFUkFUSU9OX1BBVEhfSUxMRUdBTF9BUlJBWV9JTkRFWCIsXyxvLHMpO2hlbHBlcnNfaXNJbnRlZ2VyKCQpJiYoJD1+fiQpfWlmKGo+PUwpe2lmKGkmJiJhZGQiPT09by5vcCYmJD5DLmxlbmd0aCl0aHJvdyBuZXcgRG8oIlRoZSBzcGVjaWZpZWQgaW5kZXggTVVTVCBOT1QgYmUgZ3JlYXRlciB0aGFuIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGFycmF5IiwiT1BFUkFUSU9OX1ZBTFVFX09VVF9PRl9CT1VORFMiLF8sbyxzKTtpZighMT09PSh3PUJvW28ub3BdLmNhbGwobyxDLCQscykpLnRlc3QpdGhyb3cgbmV3IERvKCJUZXN0IG9wZXJhdGlvbiBmYWlsZWQiLCJURVNUX09QRVJBVElPTl9GQUlMRUQiLF8sbyxzKTtyZXR1cm4gd319ZWxzZSBpZihqPj1MKXtpZighMT09PSh3PUZvW28ub3BdLmNhbGwobyxDLCQscykpLnRlc3QpdGhyb3cgbmV3IERvKCJUZXN0IG9wZXJhdGlvbiBmYWlsZWQiLCJURVNUX09QRVJBVElPTl9GQUlMRUQiLF8sbyxzKTtyZXR1cm4gd31pZihDPUNbJF0saSYmajxMJiYoIUN8fCJvYmplY3QiIT10eXBlb2YgQykpdGhyb3cgbmV3IERvKCJDYW5ub3QgcGVyZm9ybSBvcGVyYXRpb24gYXQgdGhlIGRlc2lyZWQgcGF0aCIsIk9QRVJBVElPTl9QQVRIX1VOUkVTT0xWQUJMRSIsXyxvLHMpfX1mdW5jdGlvbiBhcHBseVBhdGNoKHMsbyxpLGEsdSl7aWYodm9pZCAwPT09YSYmKGE9ITApLHZvaWQgMD09PXUmJih1PSEwKSxpJiYhQXJyYXkuaXNBcnJheShvKSl0aHJvdyBuZXcgRG8oIlBhdGNoIHNlcXVlbmNlIG11c3QgYmUgYW4gYXJyYXkiLCJTRVFVRU5DRV9OT1RfQU5fQVJSQVkiKTthfHwocz1fZGVlcENsb25lKHMpKTtmb3IodmFyIF89bmV3IEFycmF5KG8ubGVuZ3RoKSx3PTAseD1vLmxlbmd0aDt3PHg7dysrKV9bd109YXBwbHlPcGVyYXRpb24ocyxvW3ddLGksITAsdSx3KSxzPV9bd10ubmV3RG9jdW1lbnQ7cmV0dXJuIF8ubmV3RG9jdW1lbnQ9cyxffWZ1bmN0aW9uIGFwcGx5UmVkdWNlcihzLG8saSl7dmFyIGE9YXBwbHlPcGVyYXRpb24ocyxvKTtpZighMT09PWEudGVzdCl0aHJvdyBuZXcgRG8oIlRlc3Qgb3BlcmF0aW9uIGZhaWxlZCIsIlRFU1RfT1BFUkFUSU9OX0ZBSUxFRCIsaSxvLHMpO3JldHVybiBhLm5ld0RvY3VtZW50fWZ1bmN0aW9uIHZhbGlkYXRvcihzLG8saSxhKXtpZigib2JqZWN0IiE9dHlwZW9mIHN8fG51bGw9PT1zfHxBcnJheS5pc0FycmF5KHMpKXRocm93IG5ldyBEbygiT3BlcmF0aW9uIGlzIG5vdCBhbiBvYmplY3QiLCJPUEVSQVRJT05fTk9UX0FOX09CSkVDVCIsbyxzLGkpO2lmKCFGb1tzLm9wXSl0aHJvdyBuZXcgRG8oIk9wZXJhdGlvbiBgb3BgIHByb3BlcnR5IGlzIG5vdCBvbmUgb2Ygb3BlcmF0aW9ucyBkZWZpbmVkIGluIFJGQy02OTAyIiwiT1BFUkFUSU9OX09QX0lOVkFMSUQiLG8scyxpKTtpZigic3RyaW5nIiE9dHlwZW9mIHMucGF0aCl0aHJvdyBuZXcgRG8oIk9wZXJhdGlvbiBgcGF0aGAgcHJvcGVydHkgaXMgbm90IGEgc3RyaW5nIiwiT1BFUkFUSU9OX1BBVEhfSU5WQUxJRCIsbyxzLGkpO2lmKDAhPT1zLnBhdGguaW5kZXhPZigiLyIpJiZzLnBhdGgubGVuZ3RoPjApdGhyb3cgbmV3IERvKCdPcGVyYXRpb24gYHBhdGhgIHByb3BlcnR5IG11c3Qgc3RhcnQgd2l0aCAiLyInLCJPUEVSQVRJT05fUEFUSF9JTlZBTElEIixvLHMsaSk7aWYoKCJtb3ZlIj09PXMub3B8fCJjb3B5Ij09PXMub3ApJiYic3RyaW5nIiE9dHlwZW9mIHMuZnJvbSl0aHJvdyBuZXcgRG8oIk9wZXJhdGlvbiBgZnJvbWAgcHJvcGVydHkgaXMgbm90IHByZXNlbnQgKGFwcGxpY2FibGUgaW4gYG1vdmVgIGFuZCBgY29weWAgb3BlcmF0aW9ucykiLCJPUEVSQVRJT05fRlJPTV9SRVFVSVJFRCIsbyxzLGkpO2lmKCgiYWRkIj09PXMub3B8fCJyZXBsYWNlIj09PXMub3B8fCJ0ZXN0Ij09PXMub3ApJiZ2b2lkIDA9PT1zLnZhbHVlKXRocm93IG5ldyBEbygiT3BlcmF0aW9uIGB2YWx1ZWAgcHJvcGVydHkgaXMgbm90IHByZXNlbnQgKGFwcGxpY2FibGUgaW4gYGFkZGAsIGByZXBsYWNlYCBhbmQgYHRlc3RgIG9wZXJhdGlvbnMpIiwiT1BFUkFUSU9OX1ZBTFVFX1JFUVVJUkVEIixvLHMsaSk7aWYoKCJhZGQiPT09cy5vcHx8InJlcGxhY2UiPT09cy5vcHx8InRlc3QiPT09cy5vcCkmJmhhc1VuZGVmaW5lZChzLnZhbHVlKSl0aHJvdyBuZXcgRG8oIk9wZXJhdGlvbiBgdmFsdWVgIHByb3BlcnR5IGlzIG5vdCBwcmVzZW50IChhcHBsaWNhYmxlIGluIGBhZGRgLCBgcmVwbGFjZWAgYW5kIGB0ZXN0YCBvcGVyYXRpb25zKSIsIk9QRVJBVElPTl9WQUxVRV9DQU5OT1RfQ09OVEFJTl9VTkRFRklORUQiLG8scyxpKTtpZihpKWlmKCJhZGQiPT1zLm9wKXt2YXIgdT1zLnBhdGguc3BsaXQoIi8iKS5sZW5ndGgsXz1hLnNwbGl0KCIvIikubGVuZ3RoO2lmKHUhPT1fKzEmJnUhPT1fKXRocm93IG5ldyBEbygiQ2Fubm90IHBlcmZvcm0gYW4gYGFkZGAgb3BlcmF0aW9uIGF0IHRoZSBkZXNpcmVkIHBhdGgiLCJPUEVSQVRJT05fUEFUSF9DQU5OT1RfQUREIixvLHMsaSl9ZWxzZSBpZigicmVwbGFjZSI9PT1zLm9wfHwicmVtb3ZlIj09PXMub3B8fCJfZ2V0Ij09PXMub3Ape2lmKHMucGF0aCE9PWEpdGhyb3cgbmV3IERvKCJDYW5ub3QgcGVyZm9ybSB0aGUgb3BlcmF0aW9uIGF0IGEgcGF0aCB0aGF0IGRvZXMgbm90IGV4aXN0IiwiT1BFUkFUSU9OX1BBVEhfVU5SRVNPTFZBQkxFIixvLHMsaSl9ZWxzZSBpZigibW92ZSI9PT1zLm9wfHwiY29weSI9PT1zLm9wKXt2YXIgdz12YWxpZGF0ZShbe29wOiJfZ2V0IixwYXRoOnMuZnJvbSx2YWx1ZTp2b2lkIDB9XSxpKTtpZih3JiYiT1BFUkFUSU9OX1BBVEhfVU5SRVNPTFZBQkxFIj09PXcubmFtZSl0aHJvdyBuZXcgRG8oIkNhbm5vdCBwZXJmb3JtIHRoZSBvcGVyYXRpb24gZnJvbSBhIHBhdGggdGhhdCBkb2VzIG5vdCBleGlzdCIsIk9QRVJBVElPTl9GUk9NX1VOUkVTT0xWQUJMRSIsbyxzLGkpfX1mdW5jdGlvbiB2YWxpZGF0ZShzLG8saSl7dHJ5e2lmKCFBcnJheS5pc0FycmF5KHMpKXRocm93IG5ldyBEbygiUGF0Y2ggc2VxdWVuY2UgbXVzdCBiZSBhbiBhcnJheSIsIlNFUVVFTkNFX05PVF9BTl9BUlJBWSIpO2lmKG8pYXBwbHlQYXRjaChfZGVlcENsb25lKG8pLF9kZWVwQ2xvbmUocyksaXx8ITApO2Vsc2V7aT1pfHx2YWxpZGF0b3I7Zm9yKHZhciBhPTA7YTxzLmxlbmd0aDthKyspaShzW2FdLGEsbyx2b2lkIDApfX1jYXRjaChzKXtpZihzIGluc3RhbmNlb2YgRG8pcmV0dXJuIHM7dGhyb3cgc319ZnVuY3Rpb24gX2FyZUVxdWFscyhzLG8pe2lmKHM9PT1vKXJldHVybiEwO2lmKHMmJm8mJiJvYmplY3QiPT10eXBlb2YgcyYmIm9iamVjdCI9PXR5cGVvZiBvKXt2YXIgaSxhLHUsXz1BcnJheS5pc0FycmF5KHMpLHc9QXJyYXkuaXNBcnJheShvKTtpZihfJiZ3KXtpZigoYT1zLmxlbmd0aCkhPW8ubGVuZ3RoKXJldHVybiExO2ZvcihpPWE7MCE9aS0tOylpZighX2FyZUVxdWFscyhzW2ldLG9baV0pKXJldHVybiExO3JldHVybiEwfWlmKF8hPXcpcmV0dXJuITE7dmFyIHg9T2JqZWN0LmtleXMocyk7aWYoKGE9eC5sZW5ndGgpIT09T2JqZWN0LmtleXMobykubGVuZ3RoKXJldHVybiExO2ZvcihpPWE7MCE9aS0tOylpZighby5oYXNPd25Qcm9wZXJ0eSh4W2ldKSlyZXR1cm4hMTtmb3IoaT1hOzAhPWktLTspaWYoIV9hcmVFcXVhbHMoc1t1PXhbaV1dLG9bdV0pKXJldHVybiExO3JldHVybiEwfXJldHVybiBzIT1zJiZvIT1vfXZhciAkbz1uZXcgV2Vha01hcCxxbz1mdW5jdGlvbiBxbyhzKXt0aGlzLm9ic2VydmVycz1uZXcgTWFwLHRoaXMub2JqPXN9LFZvPWZ1bmN0aW9uIFZvKHMsbyl7dGhpcy5jYWxsYmFjaz1zLHRoaXMub2JzZXJ2ZXI9b307ZnVuY3Rpb24gdW5vYnNlcnZlKHMsbyl7by51bm9ic2VydmUoKX1mdW5jdGlvbiBvYnNlcnZlKHMsbyl7dmFyIGksYT1mdW5jdGlvbiBnZXRNaXJyb3Iocyl7cmV0dXJuICRvLmdldChzKX0ocyk7aWYoYSl7dmFyIHU9ZnVuY3Rpb24gZ2V0T2JzZXJ2ZXJGcm9tTWlycm9yKHMsbyl7cmV0dXJuIHMub2JzZXJ2ZXJzLmdldChvKX0oYSxvKTtpPXUmJnUub2JzZXJ2ZXJ9ZWxzZSBhPW5ldyBxbyhzKSwkby5zZXQocyxhKTtpZihpKXJldHVybiBpO2lmKGk9e30sYS52YWx1ZT1fZGVlcENsb25lKHMpLG8pe2kuY2FsbGJhY2s9byxpLm5leHQ9bnVsbDt2YXIgZGlydHlDaGVjaz1mdW5jdGlvbigpe2dlbmVyYXRlKGkpfSxmYXN0Q2hlY2s9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoaS5uZXh0KSxpLm5leHQ9c2V0VGltZW91dChkaXJ0eUNoZWNrKX07InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJih3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsZmFzdENoZWNrKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLGZhc3RDaGVjayksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZmFzdENoZWNrKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZmFzdENoZWNrKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmYXN0Q2hlY2spKX1yZXR1cm4gaS5wYXRjaGVzPVtdLGkub2JqZWN0PXMsaS51bm9ic2VydmU9ZnVuY3Rpb24oKXtnZW5lcmF0ZShpKSxjbGVhclRpbWVvdXQoaS5uZXh0KSxmdW5jdGlvbiByZW1vdmVPYnNlcnZlckZyb21NaXJyb3IocyxvKXtzLm9ic2VydmVycy5kZWxldGUoby5jYWxsYmFjayl9KGEsaSksInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJih3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsZmFzdENoZWNrKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5dXAiLGZhc3RDaGVjayksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZmFzdENoZWNrKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZmFzdENoZWNrKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmYXN0Q2hlY2spKX0sYS5vYnNlcnZlcnMuc2V0KG8sbmV3IFZvKG8saSkpLGl9ZnVuY3Rpb24gZ2VuZXJhdGUocyxvKXt2b2lkIDA9PT1vJiYobz0hMSk7dmFyIGk9JG8uZ2V0KHMub2JqZWN0KTtfZ2VuZXJhdGUoaS52YWx1ZSxzLm9iamVjdCxzLnBhdGNoZXMsIiIsbykscy5wYXRjaGVzLmxlbmd0aCYmYXBwbHlQYXRjaChpLnZhbHVlLHMucGF0Y2hlcyk7dmFyIGE9cy5wYXRjaGVzO3JldHVybiBhLmxlbmd0aD4wJiYocy5wYXRjaGVzPVtdLHMuY2FsbGJhY2smJnMuY2FsbGJhY2soYSkpLGF9ZnVuY3Rpb24gX2dlbmVyYXRlKHMsbyxpLGEsdSl7aWYobyE9PXMpeyJmdW5jdGlvbiI9PXR5cGVvZiBvLnRvSlNPTiYmKG89by50b0pTT04oKSk7Zm9yKHZhciBfPV9vYmplY3RLZXlzKG8pLHc9X29iamVjdEtleXMocykseD0hMSxDPXcubGVuZ3RoLTE7Qz49MDtDLS0pe3ZhciBqPXNbQj13W0NdXTtpZighbW9kdWxlX2hlbHBlcnNfaGFzT3duUHJvcGVydHkobyxCKXx8dm9pZCAwPT09b1tCXSYmdm9pZCAwIT09aiYmITE9PT1BcnJheS5pc0FycmF5KG8pKUFycmF5LmlzQXJyYXkocyk9PT1BcnJheS5pc0FycmF5KG8pPyh1JiZpLnB1c2goe29wOiJ0ZXN0IixwYXRoOmErIi8iK2VzY2FwZVBhdGhDb21wb25lbnQoQiksdmFsdWU6X2RlZXBDbG9uZShqKX0pLGkucHVzaCh7b3A6InJlbW92ZSIscGF0aDphKyIvIitlc2NhcGVQYXRoQ29tcG9uZW50KEIpfSkseD0hMCk6KHUmJmkucHVzaCh7b3A6InRlc3QiLHBhdGg6YSx2YWx1ZTpzfSksaS5wdXNoKHtvcDoicmVwbGFjZSIscGF0aDphLHZhbHVlOm99KSwhMCk7ZWxzZXt2YXIgTD1vW0JdOyJvYmplY3QiPT10eXBlb2YgaiYmbnVsbCE9aiYmIm9iamVjdCI9PXR5cGVvZiBMJiZudWxsIT1MJiZBcnJheS5pc0FycmF5KGopPT09QXJyYXkuaXNBcnJheShMKT9fZ2VuZXJhdGUoaixMLGksYSsiLyIrZXNjYXBlUGF0aENvbXBvbmVudChCKSx1KTpqIT09TCYmKHUmJmkucHVzaCh7b3A6InRlc3QiLHBhdGg6YSsiLyIrZXNjYXBlUGF0aENvbXBvbmVudChCKSx2YWx1ZTpfZGVlcENsb25lKGopfSksaS5wdXNoKHtvcDoicmVwbGFjZSIscGF0aDphKyIvIitlc2NhcGVQYXRoQ29tcG9uZW50KEIpLHZhbHVlOl9kZWVwQ2xvbmUoTCl9KSl9fWlmKHh8fF8ubGVuZ3RoIT13Lmxlbmd0aClmb3IoQz0wO0M8Xy5sZW5ndGg7QysrKXt2YXIgQjttb2R1bGVfaGVscGVyc19oYXNPd25Qcm9wZXJ0eShzLEI9X1tDXSl8fHZvaWQgMD09PW9bQl18fGkucHVzaCh7b3A6ImFkZCIscGF0aDphKyIvIitlc2NhcGVQYXRoQ29tcG9uZW50KEIpLHZhbHVlOl9kZWVwQ2xvbmUob1tCXSl9KX19fWZ1bmN0aW9uIGNvbXBhcmUocyxvLGkpe3ZvaWQgMD09PWkmJihpPSExKTt2YXIgYT1bXTtyZXR1cm4gX2dlbmVyYXRlKHMsbyxhLCIiLGkpLGF9T2JqZWN0LmFzc2lnbih7fSxaLGVlLHtKc29uUGF0Y2hFcnJvcjpSbyxkZWVwQ2xvbmU6X2RlZXBDbG9uZSxlc2NhcGVQYXRoQ29tcG9uZW50LHVuZXNjYXBlUGF0aENvbXBvbmVudH0pO3ZhciBVbz1fX3dlYnBhY2tfcmVxdWlyZV9fKDE0NzQ0KSx6bz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oVW8pO2NvbnN0IFdvPXthZGQ6ZnVuY3Rpb24gYWRkKHMsbyl7cmV0dXJue29wOiJhZGQiLHBhdGg6cyx2YWx1ZTpvfX0scmVwbGFjZSxyZW1vdmU6ZnVuY3Rpb24gcmVtb3ZlKHMpe3JldHVybntvcDoicmVtb3ZlIixwYXRoOnN9fSxtZXJnZTpmdW5jdGlvbiBsaWJfbWVyZ2UocyxvKXtyZXR1cm57dHlwZToibXV0YXRpb24iLG9wOiJtZXJnZSIscGF0aDpzLHZhbHVlOm99fSxtZXJnZURlZXA6ZnVuY3Rpb24gbWVyZ2VEZWVwKHMsbyl7cmV0dXJue3R5cGU6Im11dGF0aW9uIixvcDoibWVyZ2VEZWVwIixwYXRoOnMsdmFsdWU6b319LGNvbnRleHQ6ZnVuY3Rpb24gY29udGV4dChzLG8pe3JldHVybnt0eXBlOiJjb250ZXh0IixwYXRoOnMsdmFsdWU6b319LGdldEluOmZ1bmN0aW9uIGxpYl9nZXRJbihzLG8pe3JldHVybiBvLnJlZHVjZSgoKHMsbyk9PnZvaWQgMCE9PW8mJnM/c1tvXTpzKSxzKX0sYXBwbHlQYXRjaDpmdW5jdGlvbiBsaWJfYXBwbHlQYXRjaChzLG8saSl7aWYoaT1pfHx7fSwibWVyZ2UiPT09KG89ey4uLm8scGF0aDpvLnBhdGgmJm5vcm1hbGl6ZUpTT05QYXRoKG8ucGF0aCl9KS5vcCl7Y29uc3QgaT1nZXRJbkJ5SnNvblBhdGgocyxvLnBhdGgpO09iamVjdC5hc3NpZ24oaSxvLnZhbHVlKSxhcHBseVBhdGNoKHMsW3JlcGxhY2Uoby5wYXRoLGkpXSl9ZWxzZSBpZigibWVyZ2VEZWVwIj09PW8ub3Ape2NvbnN0IGk9Z2V0SW5CeUpzb25QYXRoKHMsby5wYXRoKSxhPXpvKCkoaSxvLnZhbHVlLHtjdXN0b21NZXJnZTpzPT57aWYoImVudW0iPT09cylyZXR1cm4ocyxvKT0+QXJyYXkuaXNBcnJheShzKSYmQXJyYXkuaXNBcnJheShvKT9bLi4ubmV3IFNldChbLi4ucywuLi5vXSldOnpvKCkocyxvKX19KTtzPWFwcGx5UGF0Y2gocyxbcmVwbGFjZShvLnBhdGgsYSldKS5uZXdEb2N1bWVudH1lbHNlIGlmKCJhZGQiPT09by5vcCYmIiI9PT1vLnBhdGgmJmxpYl9pc09iamVjdChvLnZhbHVlKSl7YXBwbHlQYXRjaChzLE9iamVjdC5rZXlzKG8udmFsdWUpLnJlZHVjZSgoKHMsaSk9PihzLnB1c2goe29wOiJhZGQiLHBhdGg6YC8ke25vcm1hbGl6ZUpTT05QYXRoKGkpfWAsdmFsdWU6by52YWx1ZVtpXX0pLHMpKSxbXSkpfWVsc2UgaWYoInJlcGxhY2UiPT09by5vcCYmIiI9PT1vLnBhdGgpe2xldHt2YWx1ZTphfT1vO2kuYWxsb3dNZXRhUGF0Y2hlcyYmby5tZXRhJiZpc0FkZGl0aXZlTXV0YXRpb24obykmJihBcnJheS5pc0FycmF5KG8udmFsdWUpfHxsaWJfaXNPYmplY3Qoby52YWx1ZSkpJiYoYT17Li4uYSwuLi5vLm1ldGF9KSxzPWF9ZWxzZSBpZihhcHBseVBhdGNoKHMsW29dKSxpLmFsbG93TWV0YVBhdGNoZXMmJm8ubWV0YSYmaXNBZGRpdGl2ZU11dGF0aW9uKG8pJiYoQXJyYXkuaXNBcnJheShvLnZhbHVlKXx8bGliX2lzT2JqZWN0KG8udmFsdWUpKSl7Y29uc3QgaT17Li4uZ2V0SW5CeUpzb25QYXRoKHMsby5wYXRoKSwuLi5vLm1ldGF9O2FwcGx5UGF0Y2gocyxbcmVwbGFjZShvLnBhdGgsaSldKX1yZXR1cm4gc30scGFyZW50UGF0aE1hdGNoOmZ1bmN0aW9uIHBhcmVudFBhdGhNYXRjaChzLG8pe2lmKCFBcnJheS5pc0FycmF5KG8pKXJldHVybiExO2ZvcihsZXQgaT0wLGE9by5sZW5ndGg7aTxhO2krPTEpaWYob1tpXSE9PXNbaV0pcmV0dXJuITE7cmV0dXJuITB9LGZsYXR0ZW4sZnVsbHlOb3JtYWxpemVBcnJheTpmdW5jdGlvbiBmdWxseU5vcm1hbGl6ZUFycmF5KHMpe3JldHVybiBjbGVhbkFycmF5KGZsYXR0ZW4obGliX25vcm1hbGl6ZUFycmF5KHMpKSl9LG5vcm1hbGl6ZUFycmF5OmxpYl9ub3JtYWxpemVBcnJheSxpc1Byb21pc2U6ZnVuY3Rpb24gaXNQcm9taXNlKHMpe3JldHVybiBsaWJfaXNPYmplY3QocykmJmxpYl9pc0Z1bmN0aW9uKHMudGhlbil9LGZvckVhY2hOZXc6ZnVuY3Rpb24gZm9yRWFjaE5ldyhzLG8pe3RyeXtyZXR1cm4gZm9yRWFjaE5ld1BhdGNoKHMsZm9yRWFjaCxvKX1jYXRjaChzKXtyZXR1cm4gc319LGZvckVhY2hOZXdQcmltaXRpdmU6ZnVuY3Rpb24gZm9yRWFjaE5ld1ByaW1pdGl2ZShzLG8pe3RyeXtyZXR1cm4gZm9yRWFjaE5ld1BhdGNoKHMsZm9yRWFjaFByaW1pdGl2ZSxvKX1jYXRjaChzKXtyZXR1cm4gc319LGlzSnNvblBhdGNoLGlzQ29udGV4dFBhdGNoOmZ1bmN0aW9uIGlzQ29udGV4dFBhdGNoKHMpe3JldHVybiBpc1BhdGNoKHMpJiYiY29udGV4dCI9PT1zLnR5cGV9LGlzUGF0Y2gsaXNNdXRhdGlvbixpc0FkZGl0aXZlTXV0YXRpb24saXNHZW5lcmF0b3I6ZnVuY3Rpb24gaXNHZW5lcmF0b3Iocyl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzKX0saXNGdW5jdGlvbjpsaWJfaXNGdW5jdGlvbixpc09iamVjdDpsaWJfaXNPYmplY3QsaXNFcnJvcjpmdW5jdGlvbiBsaWJfaXNFcnJvcihzKXtyZXR1cm4gcyBpbnN0YW5jZW9mIEVycm9yfX07ZnVuY3Rpb24gbm9ybWFsaXplSlNPTlBhdGgocyl7cmV0dXJuIEFycmF5LmlzQXJyYXkocyk/cy5sZW5ndGg8MT8iIjpgLyR7cy5tYXAoKHM9PihzKyIiKS5yZXBsYWNlKC9+L2csIn4wIikucmVwbGFjZSgvXC8vZywifjEiKSkpLmpvaW4oIi8iKX1gOnN9ZnVuY3Rpb24gcmVwbGFjZShzLG8saSl7cmV0dXJue29wOiJyZXBsYWNlIixwYXRoOnMsdmFsdWU6byxtZXRhOml9fWZ1bmN0aW9uIGZvckVhY2hOZXdQYXRjaChzLG8saSl7cmV0dXJuIGNsZWFuQXJyYXkoZmxhdHRlbihzLmZpbHRlcihpc0FkZGl0aXZlTXV0YXRpb24pLm1hcCgocz0+byhzLnZhbHVlLGkscy5wYXRoKSkpfHxbXSkpfWZ1bmN0aW9uIGZvckVhY2hQcmltaXRpdmUocyxvLGkpe3JldHVybiBpPWl8fFtdLEFycmF5LmlzQXJyYXkocyk/cy5tYXAoKChzLGEpPT5mb3JFYWNoUHJpbWl0aXZlKHMsbyxpLmNvbmNhdChhKSkpKTpsaWJfaXNPYmplY3Qocyk/T2JqZWN0LmtleXMocykubWFwKChhPT5mb3JFYWNoUHJpbWl0aXZlKHNbYV0sbyxpLmNvbmNhdChhKSkpKTpvKHMsaVtpLmxlbmd0aC0xXSxpKX1mdW5jdGlvbiBmb3JFYWNoKHMsbyxpKXtsZXQgYT1bXTtpZigoaT1pfHxbXSkubGVuZ3RoPjApe2NvbnN0IHU9byhzLGlbaS5sZW5ndGgtMV0saSk7dSYmKGE9YS5jb25jYXQodSkpfWlmKEFycmF5LmlzQXJyYXkocykpe2NvbnN0IHU9cy5tYXAoKChzLGEpPT5mb3JFYWNoKHMsbyxpLmNvbmNhdChhKSkpKTt1JiYoYT1hLmNvbmNhdCh1KSl9ZWxzZSBpZihsaWJfaXNPYmplY3Qocykpe2NvbnN0IHU9T2JqZWN0LmtleXMocykubWFwKChhPT5mb3JFYWNoKHNbYV0sbyxpLmNvbmNhdChhKSkpKTt1JiYoYT1hLmNvbmNhdCh1KSl9cmV0dXJuIGE9ZmxhdHRlbihhKSxhfWZ1bmN0aW9uIGxpYl9ub3JtYWxpemVBcnJheShzKXtyZXR1cm4gQXJyYXkuaXNBcnJheShzKT9zOltzXX1mdW5jdGlvbiBmbGF0dGVuKHMpe3JldHVybltdLmNvbmNhdCguLi5zLm1hcCgocz0+QXJyYXkuaXNBcnJheShzKT9mbGF0dGVuKHMpOnMpKSl9ZnVuY3Rpb24gY2xlYW5BcnJheShzKXtyZXR1cm4gcy5maWx0ZXIoKHM9PnZvaWQgMCE9PXMpKX1mdW5jdGlvbiBsaWJfaXNPYmplY3Qocyl7cmV0dXJuIHMmJiJvYmplY3QiPT10eXBlb2Ygc31mdW5jdGlvbiBsaWJfaXNGdW5jdGlvbihzKXtyZXR1cm4gcyYmImZ1bmN0aW9uIj09dHlwZW9mIHN9ZnVuY3Rpb24gaXNKc29uUGF0Y2gocyl7aWYoaXNQYXRjaChzKSl7Y29uc3R7b3A6b309cztyZXR1cm4iYWRkIj09PW98fCJyZW1vdmUiPT09b3x8InJlcGxhY2UiPT09b31yZXR1cm4hMX1mdW5jdGlvbiBpc011dGF0aW9uKHMpe3JldHVybiBpc0pzb25QYXRjaChzKXx8aXNQYXRjaChzKSYmIm11dGF0aW9uIj09PXMudHlwZX1mdW5jdGlvbiBpc0FkZGl0aXZlTXV0YXRpb24ocyl7cmV0dXJuIGlzTXV0YXRpb24ocykmJigiYWRkIj09PXMub3B8fCJyZXBsYWNlIj09PXMub3B8fCJtZXJnZSI9PT1zLm9wfHwibWVyZ2VEZWVwIj09PXMub3ApfWZ1bmN0aW9uIGlzUGF0Y2gocyl7cmV0dXJuIHMmJiJvYmplY3QiPT10eXBlb2Ygc31mdW5jdGlvbiBnZXRJbkJ5SnNvblBhdGgocyxvKXt0cnl7cmV0dXJuIGdldFZhbHVlQnlQb2ludGVyKHMsbyl9Y2F0Y2gocyl7cmV0dXJuIGNvbnNvbGUuZXJyb3Iocykse319fXZhciBKbz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ4Njc1KTtjb25zdCBIbz1jbGFzcyBBcGlET01BZ2dyZWdhdGVFcnJvciBleHRlbmRzIEpve2NvbnN0cnVjdG9yKHMsbyxpKXtpZihzdXBlcihzLG8saSksdGhpcy5uYW1lPXRoaXMuY29uc3RydWN0b3IubmFtZSwic3RyaW5nIj09dHlwZW9mIG8mJih0aGlzLm1lc3NhZ2U9byksImZ1bmN0aW9uIj09dHlwZW9mIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3Iobykuc3RhY2ssbnVsbCE9aSYmIm9iamVjdCI9PXR5cGVvZiBpJiZPYmplY3QuaGFzT3duKGksImNhdXNlIikmJiEoImNhdXNlImluIHRoaXMpKXtjb25zdHtjYXVzZTpzfT1pO3RoaXMuY2F1c2U9cyxzIGluc3RhbmNlb2YgRXJyb3ImJiJzdGFjayJpbiBzJiYodGhpcy5zdGFjaz1gJHt0aGlzLnN0YWNrfVxuQ0FVU0U6ICR7cy5zdGFja31gKX19fTtjbGFzcyBBcGlET01FcnJvciBleHRlbmRzIEVycm9ye3N0YXRpY1tTeW1ib2wuaGFzSW5zdGFuY2VdKHMpe3JldHVybiBzdXBlcltTeW1ib2wuaGFzSW5zdGFuY2VdKHMpfHxGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXS5jYWxsKEhvLHMpfWNvbnN0cnVjdG9yKHMsbyl7aWYoc3VwZXIocyxvKSx0aGlzLm5hbWU9dGhpcy5jb25zdHJ1Y3Rvci5uYW1lLCJzdHJpbmciPT10eXBlb2YgcyYmKHRoaXMubWVzc2FnZT1zKSwiZnVuY3Rpb24iPT10eXBlb2YgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcihzKS5zdGFjayxudWxsIT1vJiYib2JqZWN0Ij09dHlwZW9mIG8mJk9iamVjdC5oYXNPd24obywiY2F1c2UiKSYmISgiY2F1c2UiaW4gdGhpcykpe2NvbnN0e2NhdXNlOnN9PW87dGhpcy5jYXVzZT1zLHMgaW5zdGFuY2VvZiBFcnJvciYmInN0YWNrImluIHMmJih0aGlzLnN0YWNrPWAke3RoaXMuc3RhY2t9XG5DQVVTRTogJHtzLnN0YWNrfWApfX19Y29uc3QgS289QXBpRE9NRXJyb3I7Y29uc3QgR289Y2xhc3MgQXBpRE9NU3RydWN0dXJlZEVycm9yIGV4dGVuZHMgS297Y29uc3RydWN0b3IocyxvKXtpZihzdXBlcihzLG8pLG51bGwhPW8mJiJvYmplY3QiPT10eXBlb2Ygbyl7Y29uc3R7Y2F1c2U6cywuLi5pfT1vO09iamVjdC5hc3NpZ24odGhpcyxpKX19fTt2YXIgWW89X193ZWJwYWNrX3JlcXVpcmVfXyg2NTYwNik7ZnVuY3Rpb24gX2lzUGxhY2Vob2xkZXIocyl7cmV0dXJuIG51bGwhPXMmJiJvYmplY3QiPT10eXBlb2YgcyYmITA9PT1zWyJAQGZ1bmN0aW9uYWwvcGxhY2Vob2xkZXIiXX1mdW5jdGlvbiBfY3VycnkxKHMpe3JldHVybiBmdW5jdGlvbiBmMShvKXtyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGh8fF9pc1BsYWNlaG9sZGVyKG8pP2YxOnMuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBfY3VycnkyKHMpe3JldHVybiBmdW5jdGlvbiBmMihvLGkpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIGYyO2Nhc2UgMTpyZXR1cm4gX2lzUGxhY2Vob2xkZXIobyk/ZjI6X2N1cnJ5MSgoZnVuY3Rpb24oaSl7cmV0dXJuIHMobyxpKX0pKTtkZWZhdWx0OnJldHVybiBfaXNQbGFjZWhvbGRlcihvKSYmX2lzUGxhY2Vob2xkZXIoaSk/ZjI6X2lzUGxhY2Vob2xkZXIobyk/X2N1cnJ5MSgoZnVuY3Rpb24obyl7cmV0dXJuIHMobyxpKX0pKTpfaXNQbGFjZWhvbGRlcihpKT9fY3VycnkxKChmdW5jdGlvbihpKXtyZXR1cm4gcyhvLGkpfSkpOnMobyxpKX19fWZ1bmN0aW9uIF9jdXJyeTMocyl7cmV0dXJuIGZ1bmN0aW9uIGYzKG8saSxhKXtzd2l0Y2goYXJndW1lbnRzLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBmMztjYXNlIDE6cmV0dXJuIF9pc1BsYWNlaG9sZGVyKG8pP2YzOl9jdXJyeTIoKGZ1bmN0aW9uKGksYSl7cmV0dXJuIHMobyxpLGEpfSkpO2Nhc2UgMjpyZXR1cm4gX2lzUGxhY2Vob2xkZXIobykmJl9pc1BsYWNlaG9sZGVyKGkpP2YzOl9pc1BsYWNlaG9sZGVyKG8pP19jdXJyeTIoKGZ1bmN0aW9uKG8sYSl7cmV0dXJuIHMobyxpLGEpfSkpOl9pc1BsYWNlaG9sZGVyKGkpP19jdXJyeTIoKGZ1bmN0aW9uKGksYSl7cmV0dXJuIHMobyxpLGEpfSkpOl9jdXJyeTEoKGZ1bmN0aW9uKGEpe3JldHVybiBzKG8saSxhKX0pKTtkZWZhdWx0OnJldHVybiBfaXNQbGFjZWhvbGRlcihvKSYmX2lzUGxhY2Vob2xkZXIoaSkmJl9pc1BsYWNlaG9sZGVyKGEpP2YzOl9pc1BsYWNlaG9sZGVyKG8pJiZfaXNQbGFjZWhvbGRlcihpKT9fY3VycnkyKChmdW5jdGlvbihvLGkpe3JldHVybiBzKG8saSxhKX0pKTpfaXNQbGFjZWhvbGRlcihvKSYmX2lzUGxhY2Vob2xkZXIoYSk/X2N1cnJ5MigoZnVuY3Rpb24obyxhKXtyZXR1cm4gcyhvLGksYSl9KSk6X2lzUGxhY2Vob2xkZXIoaSkmJl9pc1BsYWNlaG9sZGVyKGEpP19jdXJyeTIoKGZ1bmN0aW9uKGksYSl7cmV0dXJuIHMobyxpLGEpfSkpOl9pc1BsYWNlaG9sZGVyKG8pP19jdXJyeTEoKGZ1bmN0aW9uKG8pe3JldHVybiBzKG8saSxhKX0pKTpfaXNQbGFjZWhvbGRlcihpKT9fY3VycnkxKChmdW5jdGlvbihpKXtyZXR1cm4gcyhvLGksYSl9KSk6X2lzUGxhY2Vob2xkZXIoYSk/X2N1cnJ5MSgoZnVuY3Rpb24oYSl7cmV0dXJuIHMobyxpLGEpfSkpOnMobyxpLGEpfX19Y29uc3QgWG89TnVtYmVyLmlzSW50ZWdlcnx8ZnVuY3Rpb24gX2lzSW50ZWdlcihzKXtyZXR1cm4oc3wwKT09PXN9O2Z1bmN0aW9uIF9pc1N0cmluZyhzKXtyZXR1cm4iW29iamVjdCBTdHJpbmddIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzKX1mdW5jdGlvbiBfbnRoKHMsbyl7dmFyIGk9czwwP28ubGVuZ3RoK3M6cztyZXR1cm4gX2lzU3RyaW5nKG8pP28uY2hhckF0KGkpOm9baV19ZnVuY3Rpb24gX3BhdGgocyxvKXtmb3IodmFyIGk9byxhPTA7YTxzLmxlbmd0aDthKz0xKXtpZihudWxsPT1pKXJldHVybjt2YXIgdT1zW2FdO2k9WG8odSk/X250aCh1LGkpOmlbdV19cmV0dXJuIGl9Y29uc3QgUW89X2N1cnJ5MygoZnVuY3Rpb24gcGF0aFNhdGlzZmllcyhzLG8saSl7cmV0dXJuIHMoX3BhdGgobyxpKSl9KSk7ZnVuY3Rpb24gX2Nsb25lUmVnRXhwKHMpe3JldHVybiBuZXcgUmVnRXhwKHMuc291cmNlLHMuZmxhZ3M/cy5mbGFnczoocy5nbG9iYWw/ImciOiIiKSsocy5pZ25vcmVDYXNlPyJpIjoiIikrKHMubXVsdGlsaW5lPyJtIjoiIikrKHMuc3RpY2t5PyJ5IjoiIikrKHMudW5pY29kZT8idSI6IiIpKyhzLmRvdEFsbD8icyI6IiIpKX1mdW5jdGlvbiBfYXJyYXlGcm9tSXRlcmF0b3Iocyl7Zm9yKHZhciBvLGk9W107IShvPXMubmV4dCgpKS5kb25lOylpLnB1c2goby52YWx1ZSk7cmV0dXJuIGl9ZnVuY3Rpb24gX2luY2x1ZGVzV2l0aChzLG8saSl7Zm9yKHZhciBhPTAsdT1pLmxlbmd0aDthPHU7KXtpZihzKG8saVthXSkpcmV0dXJuITA7YSs9MX1yZXR1cm4hMX1mdW5jdGlvbiBfaGFzKHMsbyl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLHMpfWNvbnN0IFpvPSJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuaXM/T2JqZWN0LmlzOmZ1bmN0aW9uIF9vYmplY3RJcyhzLG8pe3JldHVybiBzPT09bz8wIT09c3x8MS9zPT0xL286cyE9cyYmbyE9b307dmFyIF9pPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7Y29uc3QgRWk9ZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBBcmd1bWVudHNdIj09PV9pLmNhbGwoYXJndW1lbnRzKT9mdW5jdGlvbiBfaXNBcmd1bWVudHMocyl7cmV0dXJuIltvYmplY3QgQXJndW1lbnRzXSI9PT1faS5jYWxsKHMpfTpmdW5jdGlvbiBfaXNBcmd1bWVudHMocyl7cmV0dXJuIF9oYXMoImNhbGxlZSIscyl9fSgpO3ZhciBPaT0he3RvU3RyaW5nOm51bGx9LnByb3BlcnR5SXNFbnVtZXJhYmxlKCJ0b1N0cmluZyIpLFBpPVsiY29uc3RydWN0b3IiLCJ2YWx1ZU9mIiwiaXNQcm90b3R5cGVPZiIsInRvU3RyaW5nIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJoYXNPd25Qcm9wZXJ0eSIsInRvTG9jYWxlU3RyaW5nIl0sTWk9ZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzLnByb3BlcnR5SXNFbnVtZXJhYmxlKCJsZW5ndGgiKX0oKSxSaT1mdW5jdGlvbiBjb250YWlucyhzLG8pe2Zvcih2YXIgaT0wO2k8cy5sZW5ndGg7KXtpZihzW2ldPT09bylyZXR1cm4hMDtpKz0xfXJldHVybiExfSxXaT0iZnVuY3Rpb24iIT10eXBlb2YgT2JqZWN0LmtleXN8fE1pP19jdXJyeTEoKGZ1bmN0aW9uIGtleXMocyl7aWYoT2JqZWN0KHMpIT09cylyZXR1cm5bXTt2YXIgbyxpLGE9W10sdT1NaSYmRWkocyk7Zm9yKG8gaW4gcykhX2hhcyhvLHMpfHx1JiYibGVuZ3RoIj09PW98fChhW2EubGVuZ3RoXT1vKTtpZihPaSlmb3IoaT1QaS5sZW5ndGgtMTtpPj0wOylfaGFzKG89UGlbaV0scykmJiFSaShhLG8pJiYoYVthLmxlbmd0aF09byksaS09MTtyZXR1cm4gYX0pKTpfY3VycnkxKChmdW5jdGlvbiBrZXlzKHMpe3JldHVybiBPYmplY3QocykhPT1zP1tdOk9iamVjdC5rZXlzKHMpfSkpO2NvbnN0IGVhPVdpO2NvbnN0IHJhPV9jdXJyeTEoKGZ1bmN0aW9uIHR5cGUocyl7cmV0dXJuIG51bGw9PT1zPyJOdWxsIjp2b2lkIDA9PT1zPyJVbmRlZmluZWQiOk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzKS5zbGljZSg4LC0xKX0pKTtmdW5jdGlvbiBfdW5pcUNvbnRlbnRFcXVhbHMocyxvLGksYSl7dmFyIHU9X2FycmF5RnJvbUl0ZXJhdG9yKHMpO2Z1bmN0aW9uIGVxKHMsbyl7cmV0dXJuIF9lcXVhbHMocyxvLGkuc2xpY2UoKSxhLnNsaWNlKCkpfXJldHVybiFfaW5jbHVkZXNXaXRoKChmdW5jdGlvbihzLG8pe3JldHVybiFfaW5jbHVkZXNXaXRoKGVxLG8scyl9KSxfYXJyYXlGcm9tSXRlcmF0b3IobyksdSl9ZnVuY3Rpb24gX2VxdWFscyhzLG8saSxhKXtpZihabyhzLG8pKXJldHVybiEwO3ZhciB1PXJhKHMpO2lmKHUhPT1yYShvKSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygc1siZmFudGFzeS1sYW5kL2VxdWFscyJdfHwiZnVuY3Rpb24iPT10eXBlb2Ygb1siZmFudGFzeS1sYW5kL2VxdWFscyJdKXJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBzWyJmYW50YXN5LWxhbmQvZXF1YWxzIl0mJnNbImZhbnRhc3ktbGFuZC9lcXVhbHMiXShvKSYmImZ1bmN0aW9uIj09dHlwZW9mIG9bImZhbnRhc3ktbGFuZC9lcXVhbHMiXSYmb1siZmFudGFzeS1sYW5kL2VxdWFscyJdKHMpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBzLmVxdWFsc3x8ImZ1bmN0aW9uIj09dHlwZW9mIG8uZXF1YWxzKXJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBzLmVxdWFscyYmcy5lcXVhbHMobykmJiJmdW5jdGlvbiI9PXR5cGVvZiBvLmVxdWFscyYmby5lcXVhbHMocyk7c3dpdGNoKHUpe2Nhc2UiQXJndW1lbnRzIjpjYXNlIkFycmF5IjpjYXNlIk9iamVjdCI6aWYoImZ1bmN0aW9uIj09dHlwZW9mIHMuY29uc3RydWN0b3ImJiJQcm9taXNlIj09PWZ1bmN0aW9uIF9mdW5jdGlvbk5hbWUocyl7dmFyIG89U3RyaW5nKHMpLm1hdGNoKC9eZnVuY3Rpb24gKFx3KikvKTtyZXR1cm4gbnVsbD09bz8iIjpvWzFdfShzLmNvbnN0cnVjdG9yKSlyZXR1cm4gcz09PW87YnJlYWs7Y2FzZSJCb29sZWFuIjpjYXNlIk51bWJlciI6Y2FzZSJTdHJpbmciOmlmKHR5cGVvZiBzIT10eXBlb2Ygb3x8IVpvKHMudmFsdWVPZigpLG8udmFsdWVPZigpKSlyZXR1cm4hMTticmVhaztjYXNlIkRhdGUiOmlmKCFabyhzLnZhbHVlT2YoKSxvLnZhbHVlT2YoKSkpcmV0dXJuITE7YnJlYWs7Y2FzZSJFcnJvciI6cmV0dXJuIHMubmFtZT09PW8ubmFtZSYmcy5tZXNzYWdlPT09by5tZXNzYWdlO2Nhc2UiUmVnRXhwIjppZihzLnNvdXJjZSE9PW8uc291cmNlfHxzLmdsb2JhbCE9PW8uZ2xvYmFsfHxzLmlnbm9yZUNhc2UhPT1vLmlnbm9yZUNhc2V8fHMubXVsdGlsaW5lIT09by5tdWx0aWxpbmV8fHMuc3RpY2t5IT09by5zdGlja3l8fHMudW5pY29kZSE9PW8udW5pY29kZSlyZXR1cm4hMX1mb3IodmFyIF89aS5sZW5ndGgtMTtfPj0wOyl7aWYoaVtfXT09PXMpcmV0dXJuIGFbX109PT1vO18tPTF9c3dpdGNoKHUpe2Nhc2UiTWFwIjpyZXR1cm4gcy5zaXplPT09by5zaXplJiZfdW5pcUNvbnRlbnRFcXVhbHMocy5lbnRyaWVzKCksby5lbnRyaWVzKCksaS5jb25jYXQoW3NdKSxhLmNvbmNhdChbb10pKTtjYXNlIlNldCI6cmV0dXJuIHMuc2l6ZT09PW8uc2l6ZSYmX3VuaXFDb250ZW50RXF1YWxzKHMudmFsdWVzKCksby52YWx1ZXMoKSxpLmNvbmNhdChbc10pLGEuY29uY2F0KFtvXSkpO2Nhc2UiQXJndW1lbnRzIjpjYXNlIkFycmF5IjpjYXNlIk9iamVjdCI6Y2FzZSJCb29sZWFuIjpjYXNlIk51bWJlciI6Y2FzZSJTdHJpbmciOmNhc2UiRGF0ZSI6Y2FzZSJFcnJvciI6Y2FzZSJSZWdFeHAiOmNhc2UiSW50OEFycmF5IjpjYXNlIlVpbnQ4QXJyYXkiOmNhc2UiVWludDhDbGFtcGVkQXJyYXkiOmNhc2UiSW50MTZBcnJheSI6Y2FzZSJVaW50MTZBcnJheSI6Y2FzZSJJbnQzMkFycmF5IjpjYXNlIlVpbnQzMkFycmF5IjpjYXNlIkZsb2F0MzJBcnJheSI6Y2FzZSJGbG9hdDY0QXJyYXkiOmNhc2UiQXJyYXlCdWZmZXIiOmJyZWFrO2RlZmF1bHQ6cmV0dXJuITF9dmFyIHc9ZWEocyk7aWYody5sZW5ndGghPT1lYShvKS5sZW5ndGgpcmV0dXJuITE7dmFyIHg9aS5jb25jYXQoW3NdKSxDPWEuY29uY2F0KFtvXSk7Zm9yKF89dy5sZW5ndGgtMTtfPj0wOyl7dmFyIGo9d1tfXTtpZighX2hhcyhqLG8pfHwhX2VxdWFscyhvW2pdLHNbal0seCxDKSlyZXR1cm4hMTtfLT0xfXJldHVybiEwfWNvbnN0IG5hPV9jdXJyeTIoKGZ1bmN0aW9uIGVxdWFscyhzLG8pe3JldHVybiBfZXF1YWxzKHMsbyxbXSxbXSl9KSk7ZnVuY3Rpb24gX2luY2x1ZGVzKHMsbyl7cmV0dXJuIGZ1bmN0aW9uIF9pbmRleE9mKHMsbyxpKXt2YXIgYSx1O2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBzLmluZGV4T2Ypc3dpdGNoKHR5cGVvZiBvKXtjYXNlIm51bWJlciI6aWYoMD09PW8pe2ZvcihhPTEvbztpPHMubGVuZ3RoOyl7aWYoMD09PSh1PXNbaV0pJiYxL3U9PT1hKXJldHVybiBpO2krPTF9cmV0dXJuLTF9aWYobyE9byl7Zm9yKDtpPHMubGVuZ3RoOyl7aWYoIm51bWJlciI9PXR5cGVvZih1PXNbaV0pJiZ1IT11KXJldHVybiBpO2krPTF9cmV0dXJuLTF9cmV0dXJuIHMuaW5kZXhPZihvLGkpO2Nhc2Uic3RyaW5nIjpjYXNlImJvb2xlYW4iOmNhc2UiZnVuY3Rpb24iOmNhc2UidW5kZWZpbmVkIjpyZXR1cm4gcy5pbmRleE9mKG8saSk7Y2FzZSJvYmplY3QiOmlmKG51bGw9PT1vKXJldHVybiBzLmluZGV4T2YobyxpKX1mb3IoO2k8cy5sZW5ndGg7KXtpZihuYShzW2ldLG8pKXJldHVybiBpO2krPTF9cmV0dXJuLTF9KG8scywwKT49MH1mdW5jdGlvbiBfbWFwKHMsbyl7Zm9yKHZhciBpPTAsYT1vLmxlbmd0aCx1PUFycmF5KGEpO2k8YTspdVtpXT1zKG9baV0pLGkrPTE7cmV0dXJuIHV9ZnVuY3Rpb24gX3F1b3RlKHMpe3JldHVybiciJytzLnJlcGxhY2UoL1xcL2csIlxcXFwiKS5yZXBsYWNlKC9bXGJdL2csIlxcYiIpLnJlcGxhY2UoL1xmL2csIlxcZiIpLnJlcGxhY2UoL1xuL2csIlxcbiIpLnJlcGxhY2UoL1xyL2csIlxcciIpLnJlcGxhY2UoL1x0L2csIlxcdCIpLnJlcGxhY2UoL1x2L2csIlxcdiIpLnJlcGxhY2UoL1wwL2csIlxcMCIpLnJlcGxhY2UoLyIvZywnXFwiJykrJyInfXZhciBpYT1mdW5jdGlvbiBwYWQocyl7cmV0dXJuKHM8MTA/IjAiOiIiKStzfTtjb25zdCBhYT0iZnVuY3Rpb24iPT10eXBlb2YgRGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmc/ZnVuY3Rpb24gX3RvSVNPU3RyaW5nKHMpe3JldHVybiBzLnRvSVNPU3RyaW5nKCl9OmZ1bmN0aW9uIF90b0lTT1N0cmluZyhzKXtyZXR1cm4gcy5nZXRVVENGdWxsWWVhcigpKyItIitpYShzLmdldFVUQ01vbnRoKCkrMSkrIi0iK2lhKHMuZ2V0VVRDRGF0ZSgpKSsiVCIraWEocy5nZXRVVENIb3VycygpKSsiOiIraWEocy5nZXRVVENNaW51dGVzKCkpKyI6IitpYShzLmdldFVUQ1NlY29uZHMoKSkrIi4iKyhzLmdldFVUQ01pbGxpc2Vjb25kcygpLzFlMykudG9GaXhlZCgzKS5zbGljZSgyLDUpKyJaIn07ZnVuY3Rpb24gX2NvbXBsZW1lbnQocyl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIXMuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBfYXJyYXlSZWR1Y2UocyxvLGkpe2Zvcih2YXIgYT0wLHU9aS5sZW5ndGg7YTx1OylvPXMobyxpW2FdKSxhKz0xO3JldHVybiBvfWNvbnN0IGNhPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uIF9pc0FycmF5KHMpe3JldHVybiBudWxsIT1zJiZzLmxlbmd0aD49MCYmIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzKX07ZnVuY3Rpb24gX2Rpc3BhdGNoYWJsZShzLG8saSl7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoMD09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGkoKTt2YXIgYT1hcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aC0xXTtpZighY2EoYSkpe2Zvcih2YXIgdT0wO3U8cy5sZW5ndGg7KXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYVtzW3VdXSlyZXR1cm4gYVtzW3VdXS5hcHBseShhLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwLC0xKSk7dSs9MX1pZihmdW5jdGlvbiBfaXNUcmFuc2Zvcm1lcihzKXtyZXR1cm4gbnVsbCE9cyYmImZ1bmN0aW9uIj09dHlwZW9mIHNbIkBAdHJhbnNkdWNlci9zdGVwIl19KGEpKXJldHVybiBvLmFwcGx5KG51bGwsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDAsLTEpKShhKX1yZXR1cm4gaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIF9pc09iamVjdChzKXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzKX1jb25zdCBfeGZCYXNlX2luaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy54ZlsiQEB0cmFuc2R1Y2VyL2luaXQiXSgpfSxfeGZCYXNlX3Jlc3VsdD1mdW5jdGlvbihzKXtyZXR1cm4gdGhpcy54ZlsiQEB0cmFuc2R1Y2VyL3Jlc3VsdCJdKHMpfTt2YXIgbGE9ZnVuY3Rpb24oKXtmdW5jdGlvbiBYRmlsdGVyKHMsbyl7dGhpcy54Zj1vLHRoaXMuZj1zfXJldHVybiBYRmlsdGVyLnByb3RvdHlwZVsiQEB0cmFuc2R1Y2VyL2luaXQiXT1feGZCYXNlX2luaXQsWEZpbHRlci5wcm90b3R5cGVbIkBAdHJhbnNkdWNlci9yZXN1bHQiXT1feGZCYXNlX3Jlc3VsdCxYRmlsdGVyLnByb3RvdHlwZVsiQEB0cmFuc2R1Y2VyL3N0ZXAiXT1mdW5jdGlvbihzLG8pe3JldHVybiB0aGlzLmYobyk/dGhpcy54ZlsiQEB0cmFuc2R1Y2VyL3N0ZXAiXShzLG8pOnN9LFhGaWx0ZXJ9KCk7ZnVuY3Rpb24gX3hmaWx0ZXIocyl7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBuZXcgbGEocyxvKX19dmFyIHVhPV9jdXJyeTIoX2Rpc3BhdGNoYWJsZShbImZhbnRhc3ktbGFuZC9maWx0ZXIiLCJmaWx0ZXIiXSxfeGZpbHRlciwoZnVuY3Rpb24ocyxvKXtyZXR1cm4gX2lzT2JqZWN0KG8pP19hcnJheVJlZHVjZSgoZnVuY3Rpb24oaSxhKXtyZXR1cm4gcyhvW2FdKSYmKGlbYV09b1thXSksaX0pLHt9LGVhKG8pKTpmdW5jdGlvbiBfZmlsdGVyKHMsbyl7Zm9yKHZhciBpPTAsYT1vLmxlbmd0aCx1PVtdO2k8YTspcyhvW2ldKSYmKHVbdS5sZW5ndGhdPW9baV0pLGkrPTE7cmV0dXJuIHV9KHMsbyl9KSkpO2NvbnN0IGRhPXVhO2NvbnN0IG1hPV9jdXJyeTIoKGZ1bmN0aW9uIHJlamVjdChzLG8pe3JldHVybiBkYShfY29tcGxlbWVudChzKSxvKX0pKTtmdW5jdGlvbiBfdG9TdHJpbmdfdG9TdHJpbmcocyxvKXt2YXIgaT1mdW5jdGlvbiByZWN1cihpKXt2YXIgYT1vLmNvbmNhdChbc10pO3JldHVybiBfaW5jbHVkZXMoaSxhKT8iPENpcmN1bGFyPiI6X3RvU3RyaW5nX3RvU3RyaW5nKGksYSl9LG1hcFBhaXJzPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIF9tYXAoKGZ1bmN0aW9uKG8pe3JldHVybiBfcXVvdGUobykrIjogIitpKHNbb10pfSksby5zbGljZSgpLnNvcnQoKSl9O3N3aXRjaChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocykpe2Nhc2UiW29iamVjdCBBcmd1bWVudHNdIjpyZXR1cm4iKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCIrX21hcChpLHMpLmpvaW4oIiwgIikrIikpIjtjYXNlIltvYmplY3QgQXJyYXldIjpyZXR1cm4iWyIrX21hcChpLHMpLmNvbmNhdChtYXBQYWlycyhzLG1hKChmdW5jdGlvbihzKXtyZXR1cm4vXlxkKyQvLnRlc3Qocyl9KSxlYShzKSkpKS5qb2luKCIsICIpKyJdIjtjYXNlIltvYmplY3QgQm9vbGVhbl0iOnJldHVybiJvYmplY3QiPT10eXBlb2Ygcz8ibmV3IEJvb2xlYW4oIitpKHMudmFsdWVPZigpKSsiKSI6cy50b1N0cmluZygpO2Nhc2UiW29iamVjdCBEYXRlXSI6cmV0dXJuIm5ldyBEYXRlKCIrKGlzTmFOKHMudmFsdWVPZigpKT9pKE5hTik6X3F1b3RlKGFhKHMpKSkrIikiO2Nhc2UiW29iamVjdCBNYXBdIjpyZXR1cm4ibmV3IE1hcCgiK2koQXJyYXkuZnJvbShzKSkrIikiO2Nhc2UiW29iamVjdCBOdWxsXSI6cmV0dXJuIm51bGwiO2Nhc2UiW29iamVjdCBOdW1iZXJdIjpyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHM/Im5ldyBOdW1iZXIoIitpKHMudmFsdWVPZigpKSsiKSI6MS9zPT0tMS8wPyItMCI6cy50b1N0cmluZygxMCk7Y2FzZSJbb2JqZWN0IFNldF0iOnJldHVybiJuZXcgU2V0KCIraShBcnJheS5mcm9tKHMpLnNvcnQoKSkrIikiO2Nhc2UiW29iamVjdCBTdHJpbmddIjpyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHM/Im5ldyBTdHJpbmcoIitpKHMudmFsdWVPZigpKSsiKSI6X3F1b3RlKHMpO2Nhc2UiW29iamVjdCBVbmRlZmluZWRdIjpyZXR1cm4idW5kZWZpbmVkIjtkZWZhdWx0OmlmKCJmdW5jdGlvbiI9PXR5cGVvZiBzLnRvU3RyaW5nKXt2YXIgYT1zLnRvU3RyaW5nKCk7aWYoIltvYmplY3QgT2JqZWN0XSIhPT1hKXJldHVybiBhfXJldHVybiJ7IittYXBQYWlycyhzLGVhKHMpKS5qb2luKCIsICIpKyJ9In19Y29uc3QgZ2E9X2N1cnJ5MSgoZnVuY3Rpb24gdG9TdHJpbmcocyl7cmV0dXJuIF90b1N0cmluZ190b1N0cmluZyhzLFtdKX0pKTt2YXIgeWE9X2N1cnJ5MigoZnVuY3Rpb24gdGVzdChzLG8pe2lmKCFmdW5jdGlvbiBfaXNSZWdFeHAocyl7cmV0dXJuIltvYmplY3QgUmVnRXhwXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocyl9KHMpKXRocm93IG5ldyBUeXBlRXJyb3IoIuKAmHRlc3TigJkgcmVxdWlyZXMgYSB2YWx1ZSBvZiB0eXBlIFJlZ0V4cCBhcyBpdHMgZmlyc3QgYXJndW1lbnQ7IHJlY2VpdmVkICIrZ2EocykpO3JldHVybiBfY2xvbmVSZWdFeHAocykudGVzdChvKX0pKTtjb25zdCB2YT15YTtmdW5jdGlvbiBfYXJpdHkocyxvKXtzd2l0Y2gocyl7Y2FzZSAwOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y2FzZSAxOnJldHVybiBmdW5jdGlvbihzKXtyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgMjpyZXR1cm4gZnVuY3Rpb24ocyxpKXtyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgMzpyZXR1cm4gZnVuY3Rpb24ocyxpLGEpe3JldHVybiBvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y2FzZSA0OnJldHVybiBmdW5jdGlvbihzLGksYSx1KXtyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgNTpyZXR1cm4gZnVuY3Rpb24ocyxpLGEsdSxfKXtyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgNjpyZXR1cm4gZnVuY3Rpb24ocyxpLGEsdSxfLHcpe3JldHVybiBvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y2FzZSA3OnJldHVybiBmdW5jdGlvbihzLGksYSx1LF8sdyx4KXtyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgODpyZXR1cm4gZnVuY3Rpb24ocyxpLGEsdSxfLHcseCxDKXtyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgOTpyZXR1cm4gZnVuY3Rpb24ocyxpLGEsdSxfLHcseCxDLGope3JldHVybiBvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y2FzZSAxMDpyZXR1cm4gZnVuY3Rpb24ocyxpLGEsdSxfLHcseCxDLGosTCl7cmV0dXJuIG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiRmlyc3QgYXJndW1lbnQgdG8gX2FyaXR5IG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlciBubyBncmVhdGVyIHRoYW4gdGVuIil9fWZ1bmN0aW9uIF9waXBlKHMsbyl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG8uY2FsbCh0aGlzLHMuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19Y29uc3QgYmE9X2N1cnJ5MSgoZnVuY3Rpb24gaXNBcnJheUxpa2Uocyl7cmV0dXJuISFjYShzKXx8ISFzJiYoIm9iamVjdCI9PXR5cGVvZiBzJiYoIV9pc1N0cmluZyhzKSYmKDA9PT1zLmxlbmd0aHx8cy5sZW5ndGg+MCYmKHMuaGFzT3duUHJvcGVydHkoMCkmJnMuaGFzT3duUHJvcGVydHkocy5sZW5ndGgtMSkpKSkpfSkpO3ZhciBfYT0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbD9TeW1ib2wuaXRlcmF0b3I6IkBAaXRlcmF0b3IiO2Z1bmN0aW9uIF9jcmVhdGVSZWR1Y2UocyxvLGkpe3JldHVybiBmdW5jdGlvbiBfcmVkdWNlKGEsdSxfKXtpZihiYShfKSlyZXR1cm4gcyhhLHUsXyk7aWYobnVsbD09XylyZXR1cm4gdTtpZigiZnVuY3Rpb24iPT10eXBlb2YgX1siZmFudGFzeS1sYW5kL3JlZHVjZSJdKXJldHVybiBvKGEsdSxfLCJmYW50YXN5LWxhbmQvcmVkdWNlIik7aWYobnVsbCE9X1tfYV0pcmV0dXJuIGkoYSx1LF9bX2FdKCkpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBfLm5leHQpcmV0dXJuIGkoYSx1LF8pO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBfLnJlZHVjZSlyZXR1cm4gbyhhLHUsXywicmVkdWNlIik7dGhyb3cgbmV3IFR5cGVFcnJvcigicmVkdWNlOiBsaXN0IG11c3QgYmUgYXJyYXkgb3IgaXRlcmFibGUiKX19ZnVuY3Rpb24gX3hBcnJheVJlZHVjZShzLG8saSl7Zm9yKHZhciBhPTAsdT1pLmxlbmd0aDthPHU7KXtpZigobz1zWyJAQHRyYW5zZHVjZXIvc3RlcCJdKG8saVthXSkpJiZvWyJAQHRyYW5zZHVjZXIvcmVkdWNlZCJdKXtvPW9bIkBAdHJhbnNkdWNlci92YWx1ZSJdO2JyZWFrfWErPTF9cmV0dXJuIHNbIkBAdHJhbnNkdWNlci9yZXN1bHQiXShvKX1jb25zdCBFYT1fY3VycnkyKChmdW5jdGlvbiBiaW5kKHMsbyl7cmV0dXJuIF9hcml0eShzLmxlbmd0aCwoZnVuY3Rpb24oKXtyZXR1cm4gcy5hcHBseShvLGFyZ3VtZW50cyl9KSl9KSk7ZnVuY3Rpb24gX3hJdGVyYWJsZVJlZHVjZShzLG8saSl7Zm9yKHZhciBhPWkubmV4dCgpOyFhLmRvbmU7KXtpZigobz1zWyJAQHRyYW5zZHVjZXIvc3RlcCJdKG8sYS52YWx1ZSkpJiZvWyJAQHRyYW5zZHVjZXIvcmVkdWNlZCJdKXtvPW9bIkBAdHJhbnNkdWNlci92YWx1ZSJdO2JyZWFrfWE9aS5uZXh0KCl9cmV0dXJuIHNbIkBAdHJhbnNkdWNlci9yZXN1bHQiXShvKX1mdW5jdGlvbiBfeE1ldGhvZFJlZHVjZShzLG8saSxhKXtyZXR1cm4gc1siQEB0cmFuc2R1Y2VyL3Jlc3VsdCJdKGlbYV0oRWEoc1siQEB0cmFuc2R1Y2VyL3N0ZXAiXSxzKSxvKSl9Y29uc3Qgd2E9X2NyZWF0ZVJlZHVjZShfeEFycmF5UmVkdWNlLF94TWV0aG9kUmVkdWNlLF94SXRlcmFibGVSZWR1Y2UpO3ZhciB4YT1mdW5jdGlvbigpe2Z1bmN0aW9uIFhXcmFwKHMpe3RoaXMuZj1zfXJldHVybiBYV3JhcC5wcm90b3R5cGVbIkBAdHJhbnNkdWNlci9pbml0Il09ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoImluaXQgbm90IGltcGxlbWVudGVkIG9uIFhXcmFwIil9LFhXcmFwLnByb3RvdHlwZVsiQEB0cmFuc2R1Y2VyL3Jlc3VsdCJdPWZ1bmN0aW9uKHMpe3JldHVybiBzfSxYV3JhcC5wcm90b3R5cGVbIkBAdHJhbnNkdWNlci9zdGVwIl09ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdGhpcy5mKHMsbyl9LFhXcmFwfSgpO2Z1bmN0aW9uIF94d3JhcChzKXtyZXR1cm4gbmV3IHhhKHMpfXZhciBrYT1fY3VycnkzKChmdW5jdGlvbihzLG8saSl7cmV0dXJuIHdhKCJmdW5jdGlvbiI9PXR5cGVvZiBzP194d3JhcChzKTpzLG8saSl9KSk7Y29uc3QgQ2E9a2E7ZnVuY3Rpb24gX2NoZWNrRm9yTWV0aG9kKHMsbyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9YXJndW1lbnRzLmxlbmd0aDtpZigwPT09aSlyZXR1cm4gbygpO3ZhciBhPWFyZ3VtZW50c1tpLTFdO3JldHVybiBjYShhKXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGFbc10/by5hcHBseSh0aGlzLGFyZ3VtZW50cyk6YVtzXS5hcHBseShhLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwLGktMSkpfX12YXIgQWE9X2N1cnJ5MyhfY2hlY2tGb3JNZXRob2QoInNsaWNlIiwoZnVuY3Rpb24gc2xpY2UocyxvLGkpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChpLHMsbyl9KSkpO2NvbnN0IGphPUFhO2NvbnN0IElhPV9jdXJyeTEoX2NoZWNrRm9yTWV0aG9kKCJ0YWlsIixqYSgxLDEvMCkpKTtmdW5jdGlvbiBwaXBlKCl7aWYoMD09PWFyZ3VtZW50cy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJwaXBlIHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBhcmd1bWVudCIpO3JldHVybiBfYXJpdHkoYXJndW1lbnRzWzBdLmxlbmd0aCxDYShfcGlwZSxhcmd1bWVudHNbMF0sSWEoYXJndW1lbnRzKSkpfWNvbnN0IE5hPV9jdXJyeTIoKGZ1bmN0aW9uIGRlZmF1bHRUbyhzLG8pe3JldHVybiBudWxsPT1vfHxvIT1vP3M6b30pKTtjb25zdCBEYT1fY3VycnkyKChmdW5jdGlvbiBwcm9wKHMsbyl7aWYobnVsbCE9bylyZXR1cm4gWG8ocyk/X250aChzLG8pOm9bc119KSk7Y29uc3QgTGE9X2N1cnJ5MygoZnVuY3Rpb24gcHJvcE9yKHMsbyxpKXtyZXR1cm4gTmEocyxEYShvLGkpKX0pKTt2YXIgRmE9X2N1cnJ5MSgoZnVuY3Rpb24ocyl7cmV0dXJuIF9udGgoLTEscyl9KSk7Y29uc3QgQmE9RmE7ZnVuY3Rpb24gX2N1cnJ5TihzLG8saSl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBhPVtdLHU9MCxfPXMsdz0wLHg9ITE7dzxvLmxlbmd0aHx8dTxhcmd1bWVudHMubGVuZ3RoOyl7dmFyIEM7dzxvLmxlbmd0aCYmKCFfaXNQbGFjZWhvbGRlcihvW3ddKXx8dT49YXJndW1lbnRzLmxlbmd0aCk/Qz1vW3ddOihDPWFyZ3VtZW50c1t1XSx1Kz0xKSxhW3ddPUMsX2lzUGxhY2Vob2xkZXIoQyk/eD0hMDpfLT0xLHcrPTF9cmV0dXJuIXgmJl88PTA/aS5hcHBseSh0aGlzLGEpOl9hcml0eShNYXRoLm1heCgwLF8pLF9jdXJyeU4ocyxhLGkpKX19Y29uc3QgJGE9X2N1cnJ5MigoZnVuY3Rpb24gY3VycnlOKHMsbyl7cmV0dXJuIDE9PT1zP19jdXJyeTEobyk6X2FyaXR5KHMsX2N1cnJ5TihzLFtdLG8pKX0pKTtjb25zdCB6YT1fY3VycnkxKChmdW5jdGlvbiBjdXJyeShzKXtyZXR1cm4gJGEocy5sZW5ndGgscyl9KSk7ZnVuY3Rpb24gX2lzRnVuY3Rpb24ocyl7dmFyIG89T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHMpO3JldHVybiJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1vfHwiW29iamVjdCBBc3luY0Z1bmN0aW9uXSI9PT1vfHwiW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iPT09b3x8IltvYmplY3QgQXN5bmNHZW5lcmF0b3JGdW5jdGlvbl0iPT09b31jb25zdCBKYT1fY3VycnkyKChmdW5jdGlvbiBpbnZva2VyKHMsbyl7cmV0dXJuICRhKHMrMSwoZnVuY3Rpb24oKXt2YXIgaT1hcmd1bWVudHNbc107aWYobnVsbCE9aSYmX2lzRnVuY3Rpb24oaVtvXSkpcmV0dXJuIGlbb10uYXBwbHkoaSxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCxzKSk7dGhyb3cgbmV3IFR5cGVFcnJvcihnYShpKSsnIGRvZXMgbm90IGhhdmUgYSBtZXRob2QgbmFtZWQgIicrbysnIicpfSkpfSkpO2NvbnN0IEhhPUphKDEsInNwbGl0Iik7ZnVuY3Rpb24gZHJvcExhc3RXaGlsZShzLG8pe2Zvcih2YXIgaT1vLmxlbmd0aC0xO2k+PTAmJnMob1tpXSk7KWktPTE7cmV0dXJuIGphKDAsaSsxLG8pfXZhciBHYT1mdW5jdGlvbigpe2Z1bmN0aW9uIFhEcm9wTGFzdFdoaWxlKHMsbyl7dGhpcy5mPXMsdGhpcy5yZXRhaW5lZD1bXSx0aGlzLnhmPW99cmV0dXJuIFhEcm9wTGFzdFdoaWxlLnByb3RvdHlwZVsiQEB0cmFuc2R1Y2VyL2luaXQiXT1feGZCYXNlX2luaXQsWERyb3BMYXN0V2hpbGUucHJvdG90eXBlWyJAQHRyYW5zZHVjZXIvcmVzdWx0Il09ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMucmV0YWluZWQ9bnVsbCx0aGlzLnhmWyJAQHRyYW5zZHVjZXIvcmVzdWx0Il0ocyl9LFhEcm9wTGFzdFdoaWxlLnByb3RvdHlwZVsiQEB0cmFuc2R1Y2VyL3N0ZXAiXT1mdW5jdGlvbihzLG8pe3JldHVybiB0aGlzLmYobyk/dGhpcy5yZXRhaW4ocyxvKTp0aGlzLmZsdXNoKHMsbyl9LFhEcm9wTGFzdFdoaWxlLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbihzLG8pe3JldHVybiBzPXdhKHRoaXMueGYscyx0aGlzLnJldGFpbmVkKSx0aGlzLnJldGFpbmVkPVtdLHRoaXMueGZbIkBAdHJhbnNkdWNlci9zdGVwIl0ocyxvKX0sWERyb3BMYXN0V2hpbGUucHJvdG90eXBlLnJldGFpbj1mdW5jdGlvbihzLG8pe3JldHVybiB0aGlzLnJldGFpbmVkLnB1c2gobyksc30sWERyb3BMYXN0V2hpbGV9KCk7ZnVuY3Rpb24gX3hkcm9wTGFzdFdoaWxlKHMpe3JldHVybiBmdW5jdGlvbihvKXtyZXR1cm4gbmV3IEdhKHMsbyl9fWNvbnN0IGVjPV9jdXJyeTIoX2Rpc3BhdGNoYWJsZShbXSxfeGRyb3BMYXN0V2hpbGUsZHJvcExhc3RXaGlsZSkpO2NvbnN0IHJjPUphKDEsImpvaW4iKTtjb25zdCBzYz1fY3VycnkxKChmdW5jdGlvbiBmbGlwKHMpe3JldHVybiAkYShzLmxlbmd0aCwoZnVuY3Rpb24obyxpKXt2YXIgYT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCk7cmV0dXJuIGFbMF09aSxhWzFdPW8scy5hcHBseSh0aGlzLGEpfSkpfSkpKF9jdXJyeTIoX2luY2x1ZGVzKSk7Y29uc3Qgb2M9emEoKGZ1bmN0aW9uKHMsbyl7cmV0dXJuIHBpcGUoSGEoIiIpLGVjKHNjKHMpKSxyYygiIikpKG8pfSkpO2Z1bmN0aW9uIF9pdGVyYWJsZVJlZHVjZShzLG8saSl7Zm9yKHZhciBhPWkubmV4dCgpOyFhLmRvbmU7KW89cyhvLGEudmFsdWUpLGE9aS5uZXh0KCk7cmV0dXJuIG99ZnVuY3Rpb24gX21ldGhvZFJlZHVjZShzLG8saSxhKXtyZXR1cm4gaVthXShzLG8pfWNvbnN0IGljPV9jcmVhdGVSZWR1Y2UoX2FycmF5UmVkdWNlLF9tZXRob2RSZWR1Y2UsX2l0ZXJhYmxlUmVkdWNlKTt2YXIgYWM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBYTWFwKHMsbyl7dGhpcy54Zj1vLHRoaXMuZj1zfXJldHVybiBYTWFwLnByb3RvdHlwZVsiQEB0cmFuc2R1Y2VyL2luaXQiXT1feGZCYXNlX2luaXQsWE1hcC5wcm90b3R5cGVbIkBAdHJhbnNkdWNlci9yZXN1bHQiXT1feGZCYXNlX3Jlc3VsdCxYTWFwLnByb3RvdHlwZVsiQEB0cmFuc2R1Y2VyL3N0ZXAiXT1mdW5jdGlvbihzLG8pe3JldHVybiB0aGlzLnhmWyJAQHRyYW5zZHVjZXIvc3RlcCJdKHMsdGhpcy5mKG8pKX0sWE1hcH0oKTtjb25zdCBjYz1fY3VycnkyKF9kaXNwYXRjaGFibGUoWyJmYW50YXN5LWxhbmQvbWFwIiwibWFwIl0sKGZ1bmN0aW9uIF94bWFwKHMpe3JldHVybiBmdW5jdGlvbihvKXtyZXR1cm4gbmV3IGFjKHMsbyl9fSksKGZ1bmN0aW9uIG1hcChzLG8pe3N3aXRjaChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykpe2Nhc2UiW29iamVjdCBGdW5jdGlvbl0iOnJldHVybiAkYShvLmxlbmd0aCwoZnVuY3Rpb24oKXtyZXR1cm4gcy5jYWxsKHRoaXMsby5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSkpO2Nhc2UiW29iamVjdCBPYmplY3RdIjpyZXR1cm4gX2FycmF5UmVkdWNlKChmdW5jdGlvbihpLGEpe3JldHVybiBpW2FdPXMob1thXSksaX0pLHt9LGVhKG8pKTtkZWZhdWx0OnJldHVybiBfbWFwKHMsbyl9fSkpKTtjb25zdCBsYz1fY3VycnkyKChmdW5jdGlvbiBhcChzLG8pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBvWyJmYW50YXN5LWxhbmQvYXAiXT9vWyJmYW50YXN5LWxhbmQvYXAiXShzKToiZnVuY3Rpb24iPT10eXBlb2Ygcy5hcD9zLmFwKG8pOiJmdW5jdGlvbiI9PXR5cGVvZiBzP2Z1bmN0aW9uKGkpe3JldHVybiBzKGkpKG8oaSkpfTppYygoZnVuY3Rpb24ocyxpKXtyZXR1cm4gZnVuY3Rpb24gX2NvbmNhdChzLG8pe3ZhciBpO289b3x8W107dmFyIGE9KHM9c3x8W10pLmxlbmd0aCx1PW8ubGVuZ3RoLF89W107Zm9yKGk9MDtpPGE7KV9bXy5sZW5ndGhdPXNbaV0saSs9MTtmb3IoaT0wO2k8dTspX1tfLmxlbmd0aF09b1tpXSxpKz0xO3JldHVybiBffShzLGNjKGksbykpfSksW10scyl9KSk7Y29uc3QgcGM9X2N1cnJ5MigoZnVuY3Rpb24gbGlmdE4ocyxvKXt2YXIgaT0kYShzLG8pO3JldHVybiAkYShzLChmdW5jdGlvbigpe3JldHVybiBfYXJyYXlSZWR1Y2UobGMsY2MoaSxhcmd1bWVudHNbMF0pLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSl9KSl9KSk7Y29uc3QgaGM9X2N1cnJ5MSgoZnVuY3Rpb24gbGlmdChzKXtyZXR1cm4gcGMocy5sZW5ndGgscyl9KSk7Y29uc3QgZGM9aGMoX2N1cnJ5MSgoZnVuY3Rpb24gbm90KHMpe3JldHVybiFzfSkpKTtjb25zdCBmYz1fY3VycnkxKChmdW5jdGlvbiBhbHdheXMocyl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHN9fSkpO2NvbnN0IGdjPWZjKHZvaWQgMCk7Y29uc3QgYmM9bmEoZ2MoKSk7Y29uc3QgX2M9ZGMoYmMpO2NvbnN0IEVjPV9jdXJyeTIoKGZ1bmN0aW9uIG1heChzLG8pe2lmKHM9PT1vKXJldHVybiBvO2Z1bmN0aW9uIHNhZmVNYXgocyxvKXtpZihzPm8hPW8+cylyZXR1cm4gbz5zP286c312YXIgaT1zYWZlTWF4KHMsbyk7aWYodm9pZCAwIT09aSlyZXR1cm4gaTt2YXIgYT1zYWZlTWF4KHR5cGVvZiBzLHR5cGVvZiBvKTtpZih2b2lkIDAhPT1hKXJldHVybiBhPT09dHlwZW9mIHM/czpvO3ZhciB1PWdhKHMpLF89c2FmZU1heCh1LGdhKG8pKTtyZXR1cm4gdm9pZCAwIT09XyYmXz09PXU/czpvfSkpO3ZhciBrYz1fY3VycnkyKChmdW5jdGlvbiBwbHVjayhzLG8pe3JldHVybiBjYyhEYShzKSxvKX0pKTtjb25zdCBPYz1rYztjb25zdCBqYz1fY3VycnkxKChmdW5jdGlvbiBhbnlQYXNzKHMpe3JldHVybiAkYShDYShFYywwLE9jKCJsZW5ndGgiLHMpKSwoZnVuY3Rpb24oKXtmb3IodmFyIG89MCxpPXMubGVuZ3RoO288aTspe2lmKHNbb10uYXBwbHkodGhpcyxhcmd1bWVudHMpKXJldHVybiEwO28rPTF9cmV0dXJuITF9KSl9KSk7dmFyIGlkZW50aWNhbD1mdW5jdGlvbihzLG8pe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIGlkZW50aWNhbDtjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uIHVuYXJ5SWRlbnRpY2FsKG8pe3JldHVybiAwPT09YXJndW1lbnRzLmxlbmd0aD91bmFyeUlkZW50aWNhbDpabyhzLG8pfTtkZWZhdWx0OnJldHVybiBabyhzLG8pfX07Y29uc3QgSWM9aWRlbnRpY2FsO2NvbnN0IFBjPSRhKDEscGlwZShyYSxJYygiR2VuZXJhdG9yRnVuY3Rpb24iKSkpO2NvbnN0IE5jPSRhKDEscGlwZShyYSxJYygiQXN5bmNGdW5jdGlvbiIpKSk7Y29uc3QgTWM9amMoW3BpcGUocmEsSWMoIkZ1bmN0aW9uIikpLFBjLE5jXSk7dmFyIFJjPV9jdXJyeTMoKGZ1bmN0aW9uIHJlcGxhY2UocyxvLGkpe3JldHVybiBpLnJlcGxhY2UocyxvKX0pKTtjb25zdCBMYz1SYztjb25zdCBGYz0kYSgxLHBpcGUocmEsSWMoIlJlZ0V4cCIpKSk7Y29uc3QgcWM9X2N1cnJ5MygoZnVuY3Rpb24gd2hlbihzLG8saSl7cmV0dXJuIHMoaSk/byhpKTppfSkpO2NvbnN0IEpjPSRhKDEscGlwZShyYSxJYygiU3RyaW5nIikpKTtjb25zdCBIYz1xYyhKYyxMYygvWy4qKz9eJHt9KCl8W1xdXFwtXS9nLCJcXCQmIikpO3ZhciBLYz1mdW5jdGlvbiBjaGVja1ZhbHVlKHMsbyl7aWYoInN0cmluZyIhPXR5cGVvZiBzJiYhKHMgaW5zdGFuY2VvZiBTdHJpbmcpKXRocm93IFR5cGVFcnJvcigiYCIuY29uY2F0KG8sImAgbXVzdCBiZSBhIHN0cmluZyIpKX07Y29uc3QgR2M9ZnVuY3Rpb24gcmVwbGFjZUFsbChzLG8saSl7IWZ1bmN0aW9uIGNoZWNrQXJndW1lbnRzKHMsbyxpKXtpZihudWxsPT1pfHxudWxsPT1zfHxudWxsPT1vKXRocm93IFR5cGVFcnJvcigiSW5wdXQgdmFsdWVzIG11c3Qgbm90IGJlIGBudWxsYCBvciBgdW5kZWZpbmVkYCIpfShzLG8saSksS2MoaSwic3RyIiksS2MobywicmVwbGFjZVZhbHVlIiksZnVuY3Rpb24gY2hlY2tTZWFyY2hWYWx1ZShzKXtpZighKCJzdHJpbmciPT10eXBlb2Ygc3x8cyBpbnN0YW5jZW9mIFN0cmluZ3x8cyBpbnN0YW5jZW9mIFJlZ0V4cCkpdGhyb3cgVHlwZUVycm9yKCJgc2VhcmNoVmFsdWVgIG11c3QgYmUgYSBzdHJpbmcgb3IgYW4gcmVnZXhwIil9KHMpO3ZhciBhPW5ldyBSZWdFeHAoRmMocyk/czpIYyhzKSwiZyIpO3JldHVybiBMYyhhLG8saSl9O3ZhciBRYz0kYSgzLEdjKSx0bD1KYSgyLCJyZXBsYWNlQWxsIik7Y29uc3Qgc2w9TWMoU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlQWxsKT90bDpRYyxpc1dpbmRvd3M9KCk9PlFvKHZhKC9ed2luLyksWyJwbGF0Zm9ybSJdLFlvKSxnZXRQcm90b2NvbD1zPT57dHJ5e2NvbnN0IG89bmV3IFVSTChzKTtyZXR1cm4gb2MoIjoiLG8ucHJvdG9jb2wpfWNhdGNoe3JldHVybn19LHVsPShwaXBlKGdldFByb3RvY29sLF9jKSxzPT57aWYoWW8uYnJvd3NlcilyZXR1cm4hMTtjb25zdCBvPWdldFByb3RvY29sKHMpO3JldHVybiBiYyhvKXx8ImZpbGUiPT09b3x8L15bYS16QS1aXSQvLnRlc3Qobyl9KSxpc0h0dHBVcmw9cz0+e2NvbnN0IG89Z2V0UHJvdG9jb2wocyk7cmV0dXJuImh0dHAiPT09b3x8Imh0dHBzIj09PW99LHRvRmlsZVN5c3RlbVBhdGg9KHMsbyk9Pntjb25zdCBpPVsvJTIzL2csIiMiLC8lMjQvZywiJCIsLyUyNi9nLCImIiwvJTJDL2csIiwiLC8lNDAvZywiQCJdLGE9TGEoITEsImtlZXBGaWxlUHJvdG9jb2wiLG8pLHU9TGEoaXNXaW5kb3dzLCJpc1dpbmRvd3MiLG8pO2xldCBfPWRlY29kZVVSSShzKTtmb3IobGV0IHM9MDtzPGkubGVuZ3RoO3MrPTIpXz1fLnJlcGxhY2UoaVtzXSxpW3MrMV0pO2xldCB3PSJmaWxlOi8vIj09PV8uc3Vic3RyaW5nKDAsNykudG9Mb3dlckNhc2UoKTtyZXR1cm4gdyYmKF89Ii8iPT09X1s3XT9fLnN1YnN0cmluZyg4KTpfLnN1YnN0cmluZyg3KSx1KCkmJiIvIj09PV9bMV0mJihfPWAke19bMF19OiR7Xy5zdWJzdHJpbmcoMSl9YCksYT9fPWBmaWxlOi8vLyR7X31gOih3PSExLF89dSgpP186YC8ke199YCkpLHUoKSYmIXcmJihfPXNsKCIvIiwiXFwiLF8pLCI6XFwiPT09Xy5zdWJzdHJpbmcoMSwzKSYmKF89X1swXS50b1VwcGVyQ2FzZSgpK18uc3Vic3RyaW5nKDEpKSksX30sZ2V0SGFzaD1zPT57Y29uc3Qgbz1zLmluZGV4T2YoIiMiKTtyZXR1cm4tMSE9PW8/cy5zdWJzdHJpbmcobyk6IiMifSxzdHJpcEhhc2g9cz0+e2NvbnN0IG89cy5pbmRleE9mKCIjIik7bGV0IGk9cztyZXR1cm4gbz49MCYmKGk9cy5zdWJzdHJpbmcoMCxvKSksaX0sdXJsX2N3ZD0oKT0+e2lmKFlvLmJyb3dzZXIpcmV0dXJuIHN0cmlwSGFzaChnbG9iYWxUaGlzLmxvY2F0aW9uLmhyZWYpO2NvbnN0IHM9WW8uY3dkKCksbz1CYShzKTtyZXR1cm5bIi8iLCJcXCJdLmluY2x1ZGVzKG8pP3M6cysoaXNXaW5kb3dzKCk/IlxcIjoiLyIpfSxyZXNvbHZlPShzLG8pPT57Y29uc3QgaT1uZXcgVVJMKG8sbmV3IFVSTChzLCJyZXNvbHZlOi8vIikpO2lmKCJyZXNvbHZlOiI9PT1pLnByb3RvY29sKXtjb25zdHtwYXRobmFtZTpzLHNlYXJjaDpvLGhhc2g6YX09aTtyZXR1cm4gcytvK2F9cmV0dXJuIGkudG9TdHJpbmcoKX0sc2FuaXRpemU9cz0+e2lmKHVsKHMpKXJldHVybihzPT57Y29uc3Qgbz1bL1w/L2csIiUzRiIsLyMvZywiJTIzIl07bGV0IGk9cztpc1dpbmRvd3MoKSYmKGk9aS5yZXBsYWNlKC9cXC9nLCIvIikpLGk9ZW5jb2RlVVJJKGkpO2ZvcihsZXQgcz0wO3M8by5sZW5ndGg7cys9MilpPWkucmVwbGFjZShvW3NdLG9bcysxXSk7cmV0dXJuIGl9KSh0b0ZpbGVTeXN0ZW1QYXRoKHMpKTt0cnl7cmV0dXJuIG5ldyBVUkwocykudG9TdHJpbmcoKX1jYXRjaHtyZXR1cm4gZW5jb2RlVVJJKGRlY29kZVVSSShzKSkucmVwbGFjZSgvJTVCL2csIlsiKS5yZXBsYWNlKC8lNUQvZywiXSIpfX0sdW5zYW5pdGl6ZT1zPT51bChzKT90b0ZpbGVTeXN0ZW1QYXRoKHMpOmRlY29kZVVSSShzKSx7ZmV0Y2g6eWwsUmVzcG9uc2U6dmwsSGVhZGVyczpfbCxSZXF1ZXN0OlNsLEZvcm1EYXRhOkVsLEZpbGU6d2wsQmxvYjp4bH09Z2xvYmFsVGhpcztmdW5jdGlvbiBfYXJyYXlfbGlrZV90b19hcnJheShzLG8peyhudWxsPT1vfHxvPnMubGVuZ3RoKSYmKG89cy5sZW5ndGgpO2Zvcih2YXIgaT0wLGE9bmV3IEFycmF5KG8pO2k8bztpKyspYVtpXT1zW2ldO3JldHVybiBhfWZ1bmN0aW9uIGxlZ2FjeV9kZWZpbmVQcm9wZXJ0aWVzKHMsbyl7Zm9yKHZhciBpPTA7aTxvLmxlbmd0aDtpKyspe3ZhciBhPW9baV07YS5lbnVtZXJhYmxlPWEuZW51bWVyYWJsZXx8ITEsYS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGEmJihhLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocyxhLmtleSxhKX19ZnVuY3Rpb24gX2luc3RhbmNlb2YocyxvKXtyZXR1cm4gbnVsbCE9byYmInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm9bU3ltYm9sLmhhc0luc3RhbmNlXT8hIW9bU3ltYm9sLmhhc0luc3RhbmNlXShzKTpzIGluc3RhbmNlb2Ygb31mdW5jdGlvbiBfc2xpY2VkX3RvX2FycmF5KHMsbyl7cmV0dXJuIGZ1bmN0aW9uIF9hcnJheV93aXRoX2hvbGVzKHMpe2lmKEFycmF5LmlzQXJyYXkocykpcmV0dXJuIHN9KHMpfHxmdW5jdGlvbiBfaXRlcmFibGVfdG9fYXJyYXlfbGltaXQocyxvKXt2YXIgaT1udWxsPT1zP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJnNbU3ltYm9sLml0ZXJhdG9yXXx8c1siQEBpdGVyYXRvciJdO2lmKG51bGwhPWkpe3ZhciBhLHUsXz1bXSx3PSEwLHg9ITE7dHJ5e2ZvcihpPWkuY2FsbChzKTshKHc9KGE9aS5uZXh0KCkpLmRvbmUpJiYoXy5wdXNoKGEudmFsdWUpLCFvfHxfLmxlbmd0aCE9PW8pO3c9ITApO31jYXRjaChzKXt4PSEwLHU9c31maW5hbGx5e3RyeXt3fHxudWxsPT1pLnJldHVybnx8aS5yZXR1cm4oKX1maW5hbGx5e2lmKHgpdGhyb3cgdX19cmV0dXJuIF99fShzLG8pfHxmdW5jdGlvbiBfdW5zdXBwb3J0ZWRfaXRlcmFibGVfdG9fYXJyYXkocyxvKXtpZighcylyZXR1cm47aWYoInN0cmluZyI9PXR5cGVvZiBzKXJldHVybiBfYXJyYXlfbGlrZV90b19hcnJheShzLG8pO3ZhciBpPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzKS5zbGljZSg4LC0xKTsiT2JqZWN0Ij09PWkmJnMuY29uc3RydWN0b3ImJihpPXMuY29uc3RydWN0b3IubmFtZSk7aWYoIk1hcCI9PT1pfHwiU2V0Ij09PWkpcmV0dXJuIEFycmF5LmZyb20oaSk7aWYoIkFyZ3VtZW50cyI9PT1pfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChpKSlyZXR1cm4gX2FycmF5X2xpa2VfdG9fYXJyYXkocyxvKX0ocyxvKXx8ZnVuY3Rpb24gX25vbl9pdGVyYWJsZV9yZXN0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gX3R5cGVfb2Yocyl7cmV0dXJuIHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZzLmNvbnN0cnVjdG9yPT09U3ltYm9sPyJzeW1ib2wiOnR5cGVvZiBzfXZvaWQgMD09PWdsb2JhbFRoaXMuZmV0Y2gmJihnbG9iYWxUaGlzLmZldGNoPXlsKSx2b2lkIDA9PT1nbG9iYWxUaGlzLkhlYWRlcnMmJihnbG9iYWxUaGlzLkhlYWRlcnM9X2wpLHZvaWQgMD09PWdsb2JhbFRoaXMuUmVxdWVzdCYmKGdsb2JhbFRoaXMuUmVxdWVzdD1TbCksdm9pZCAwPT09Z2xvYmFsVGhpcy5SZXNwb25zZSYmKGdsb2JhbFRoaXMuUmVzcG9uc2U9dmwpLHZvaWQgMD09PWdsb2JhbFRoaXMuRm9ybURhdGEmJihnbG9iYWxUaGlzLkZvcm1EYXRhPUVsKSx2b2lkIDA9PT1nbG9iYWxUaGlzLkZpbGUmJihnbG9iYWxUaGlzLkZpbGU9d2wpLHZvaWQgMD09PWdsb2JhbFRoaXMuQmxvYiYmKGdsb2JhbFRoaXMuQmxvYj14bCk7dmFyIF9fdHlwZUVycm9yPWZ1bmN0aW9uKHMpe3Rocm93IFR5cGVFcnJvcihzKX0sX19hY2Nlc3NDaGVjaz1mdW5jdGlvbihzLG8saSl7cmV0dXJuIG8uaGFzKHMpfHxfX3R5cGVFcnJvcigiQ2Fubm90ICIraSl9LF9fcHJpdmF0ZUdldD1mdW5jdGlvbihzLG8saSl7cmV0dXJuIF9fYWNjZXNzQ2hlY2socyxvLCJyZWFkIGZyb20gcHJpdmF0ZSBmaWVsZCIpLGk/aS5jYWxsKHMpOm8uZ2V0KHMpfSxfX3ByaXZhdGVBZGQ9ZnVuY3Rpb24ocyxvLGkpe3JldHVybiBvLmhhcyhzKT9fX3R5cGVFcnJvcigiQ2Fubm90IGFkZCB0aGUgc2FtZSBwcml2YXRlIG1lbWJlciBtb3JlIHRoYW4gb25jZSIpOl9pbnN0YW5jZW9mKG8sV2Vha1NldCk/by5hZGQocyk6by5zZXQocyxpKX0sX19wcml2YXRlU2V0PWZ1bmN0aW9uKHMsbyxpLGEpe3JldHVybiBfX2FjY2Vzc0NoZWNrKHMsbywid3JpdGUgdG8gcHJpdmF0ZSBmaWVsZCIpLGE/YS5jYWxsKHMsaSk6by5zZXQocyxpKSxpfSx0b19zdHJpbmc9ZnVuY3Rpb24ocyl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzKX0saXNfdHlwZWRfYXJyYXk9ZnVuY3Rpb24ocyl7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyhzKSYmIV9pbnN0YW5jZW9mKHMsRGF0YVZpZXcpfSxrbD1BcnJheS5pc0FycmF5LE9sPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsQ2w9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxBbD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLElsPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gb3duX2VudW1lcmFibGVfa2V5cyhzKXtmb3IodmFyIG89T2JqZWN0LmtleXMocyksaT1BbChzKSxhPTA7YTxpLmxlbmd0aDthKyspQ2wuY2FsbChzLGlbYV0pJiZvLnB1c2goaVthXSk7cmV0dXJuIG99ZnVuY3Rpb24gaXNfd3JpdGFibGUocyxvKXt2YXIgaTtyZXR1cm4hKG51bGw9PT0oaT1PbChzLG8pKXx8dm9pZCAwPT09aT92b2lkIDA6aS53cml0YWJsZSl9ZnVuY3Rpb24gbGVnYWN5X2NvcHkocyxvKXtpZigib2JqZWN0Ij09PSh2b2lkIDA9PT1zPyJ1bmRlZmluZWQiOl90eXBlX29mKHMpKSYmbnVsbCE9PXMpe3ZhciBpO2lmKGtsKHMpKWk9W107ZWxzZSBpZigiW29iamVjdCBEYXRlXSI9PT10b19zdHJpbmcocykpaT1uZXcgRGF0ZShzLmdldFRpbWU/cy5nZXRUaW1lKCk6cyk7ZWxzZSBpZihmdW5jdGlvbihzKXtyZXR1cm4iW29iamVjdCBSZWdFeHBdIj09PXRvX3N0cmluZyhzKX0ocykpaT1uZXcgUmVnRXhwKHMpO2Vsc2UgaWYoZnVuY3Rpb24ocyl7cmV0dXJuIltvYmplY3QgRXJyb3JdIj09PXRvX3N0cmluZyhzKX0ocykpaT17bWVzc2FnZTpzLm1lc3NhZ2V9O2Vsc2UgaWYoZnVuY3Rpb24ocyl7cmV0dXJuIltvYmplY3QgQm9vbGVhbl0iPT09dG9fc3RyaW5nKHMpfShzKXx8ZnVuY3Rpb24ocyl7cmV0dXJuIltvYmplY3QgTnVtYmVyXSI9PT10b19zdHJpbmcocyl9KHMpfHxmdW5jdGlvbihzKXtyZXR1cm4iW29iamVjdCBTdHJpbmddIj09PXRvX3N0cmluZyhzKX0ocykpaT1PYmplY3Qocyk7ZWxzZXtpZihpc190eXBlZF9hcnJheShzKSlyZXR1cm4gcy5zbGljZSgpO2k9T2JqZWN0LmNyZWF0ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YocykpfXZhciBhPW8uaW5jbHVkZVN5bWJvbHM/b3duX2VudW1lcmFibGVfa2V5czpPYmplY3Qua2V5cyx1PSEwLF89ITEsdz12b2lkIDA7dHJ5e2Zvcih2YXIgeCxDPWEocylbU3ltYm9sLml0ZXJhdG9yXSgpOyEodT0oeD1DLm5leHQoKSkuZG9uZSk7dT0hMCl7dmFyIGo9eC52YWx1ZTtpW2pdPXNbal19fWNhdGNoKHMpe189ITAsdz1zfWZpbmFsbHl7dHJ5e3V8fG51bGw9PUMucmV0dXJufHxDLnJldHVybigpfWZpbmFsbHl7aWYoXyl0aHJvdyB3fX1yZXR1cm4gaX1yZXR1cm4gc312YXIgUGwsVGwsTmw9e2luY2x1ZGVTeW1ib2xzOiExLGltbXV0YWJsZTohMX07ZnVuY3Rpb24gd2FsayhzLG8pe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpObCxhPVtdLHU9W10sXz0hMCx3PWkuaW5jbHVkZVN5bWJvbHM/b3duX2VudW1lcmFibGVfa2V5czpPYmplY3Qua2V5cyx4PSEhaS5pbW11dGFibGU7cmV0dXJuIGZ1bmN0aW9uIHdhbGtlcihzKXt2YXIgQz14P2xlZ2FjeV9jb3B5KHMsaSk6cyxqPXt9LEw9ITAsQj17bm9kZTpDLG5vZGVfOnMscGF0aDpbXS5jb25jYXQoYSkscGFyZW50OnVbdS5sZW5ndGgtMV0scGFyZW50czp1LGtleTphW2EubGVuZ3RoLTFdLGlzUm9vdDowPT09YS5sZW5ndGgsbGV2ZWw6YS5sZW5ndGgsY2lyY3VsYXI6dm9pZCAwLGlzTGVhZjohMSxub3RMZWFmOiEwLG5vdFJvb3Q6ITAsaXNGaXJzdDohMSxpc0xhc3Q6ITEsdXBkYXRlOmZ1bmN0aW9uIHVwZGF0ZShzKXt2YXIgbz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO0IuaXNSb290fHwoQi5wYXJlbnQubm9kZVtCLmtleV09cyksQi5ub2RlPXMsbyYmKEw9ITEpfSxkZWxldGU6ZnVuY3Rpb24gX2RlbGV0ZShzKXtkZWxldGUgQi5wYXJlbnQubm9kZVtCLmtleV0scyYmKEw9ITEpfSxyZW1vdmU6ZnVuY3Rpb24gcmVtb3ZlKHMpe2tsKEIucGFyZW50Lm5vZGUpP0IucGFyZW50Lm5vZGUuc3BsaWNlKEIua2V5LDEpOmRlbGV0ZSBCLnBhcmVudC5ub2RlW0Iua2V5XSxzJiYoTD0hMSl9LGtleXM6bnVsbCxiZWZvcmU6ZnVuY3Rpb24gYmVmb3JlKHMpe2ouYmVmb3JlPXN9LGFmdGVyOmZ1bmN0aW9uIGFmdGVyKHMpe2ouYWZ0ZXI9c30scHJlOmZ1bmN0aW9uIHByZShzKXtqLnByZT1zfSxwb3N0OmZ1bmN0aW9uIHBvc3Qocyl7ai5wb3N0PXN9LHN0b3A6ZnVuY3Rpb24gc3RvcCgpe189ITF9LGJsb2NrOmZ1bmN0aW9uIGJsb2NrKCl7TD0hMX19O2lmKCFfKXJldHVybiBCO2Z1bmN0aW9uIHVwZGF0ZV9zdGF0ZSgpe2lmKCJvYmplY3QiPT09X3R5cGVfb2YoQi5ub2RlKSYmbnVsbCE9PUIubm9kZSl7Qi5rZXlzJiZCLm5vZGVfPT09Qi5ub2RlfHwoQi5rZXlzPXcoQi5ub2RlKSksQi5pc0xlYWY9MD09PUIua2V5cy5sZW5ndGg7Zm9yKHZhciBvPTA7bzx1Lmxlbmd0aDtvKyspaWYodVtvXS5ub2RlXz09PXMpe0IuY2lyY3VsYXI9dVtvXTticmVha319ZWxzZSBCLmlzTGVhZj0hMCxCLmtleXM9bnVsbDtCLm5vdExlYWY9IUIuaXNMZWFmLEIubm90Um9vdD0hQi5pc1Jvb3R9dXBkYXRlX3N0YXRlKCk7dmFyICQ9by5jYWxsKEIsQi5ub2RlKTtpZih2b2lkIDAhPT0kJiZCLnVwZGF0ZSYmQi51cGRhdGUoJCksai5iZWZvcmUmJmouYmVmb3JlLmNhbGwoQixCLm5vZGUpLCFMKXJldHVybiBCO2lmKCJvYmplY3QiPT09X3R5cGVfb2YoQi5ub2RlKSYmbnVsbCE9PUIubm9kZSYmIUIuY2lyY3VsYXIpe3ZhciBWO3UucHVzaChCKSx1cGRhdGVfc3RhdGUoKTt2YXIgVT0hMCx6PSExLFk9dm9pZCAwO3RyeXtmb3IodmFyIFosZWU9T2JqZWN0LmVudHJpZXMobnVsbCE9PShWPUIua2V5cykmJnZvaWQgMCE9PVY/VjpbXSlbU3ltYm9sLml0ZXJhdG9yXSgpOyEoVT0oWj1lZS5uZXh0KCkpLmRvbmUpO1U9ITApe3ZhciBpZSxhZT1fc2xpY2VkX3RvX2FycmF5KFoudmFsdWUsMiksY2U9YWVbMF0sbGU9YWVbMV07YS5wdXNoKGxlKSxqLnByZSYmai5wcmUuY2FsbChCLEIubm9kZVtsZV0sbGUpO3ZhciBwZT13YWxrZXIoQi5ub2RlW2xlXSk7eCYmSWwuY2FsbChCLm5vZGUsbGUpJiYhaXNfd3JpdGFibGUoQi5ub2RlLGxlKSYmKEIubm9kZVtsZV09cGUubm9kZSkscGUuaXNMYXN0PSEhKG51bGw9PT0oaWU9Qi5rZXlzKXx8dm9pZCAwPT09aWU/dm9pZCAwOmllLmxlbmd0aCkmJitjZT09Qi5rZXlzLmxlbmd0aC0xLHBlLmlzRmlyc3Q9MD09K2NlLGoucG9zdCYmai5wb3N0LmNhbGwoQixwZSksYS5wb3AoKX19Y2F0Y2gocyl7ej0hMCxZPXN9ZmluYWxseXt0cnl7VXx8bnVsbD09ZWUucmV0dXJufHxlZS5yZXR1cm4oKX1maW5hbGx5e2lmKHopdGhyb3cgWX19dS5wb3AoKX1yZXR1cm4gai5hZnRlciYmai5hZnRlci5jYWxsKEIsQi5ub2RlKSxCfShzKS5ub2RlfXZhciBNbD1mdW5jdGlvbigpe2Z1bmN0aW9uIFRyYXZlcnNlKHMpe3ZhciBvPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpObDshZnVuY3Rpb24gX2NsYXNzX2NhbGxfY2hlY2socyxvKXtpZighKHMgaW5zdGFuY2VvZiBvKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxUcmF2ZXJzZSksX19wcml2YXRlQWRkKHRoaXMsUGwpLF9fcHJpdmF0ZUFkZCh0aGlzLFRsKSxfX3ByaXZhdGVTZXQodGhpcyxQbCxzKSxfX3ByaXZhdGVTZXQodGhpcyxUbCxvKX1yZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZV9jbGFzcyhzLG8saSl7cmV0dXJuIG8mJmxlZ2FjeV9kZWZpbmVQcm9wZXJ0aWVzKHMucHJvdG90eXBlLG8pLGkmJmxlZ2FjeV9kZWZpbmVQcm9wZXJ0aWVzKHMsaSksc30oVHJhdmVyc2UsW3trZXk6ImdldCIsdmFsdWU6ZnVuY3Rpb24gZ2V0KHMpe2Zvcih2YXIgbz1fX3ByaXZhdGVHZXQodGhpcyxQbCksaT0wO28mJmk8cy5sZW5ndGg7aSsrKXt2YXIgYT1zW2ldO2lmKCFJbC5jYWxsKG8sYSl8fCFfX3ByaXZhdGVHZXQodGhpcyxUbCkuaW5jbHVkZVN5bWJvbHMmJiJzeW1ib2wiPT09KHZvaWQgMD09PWE/InVuZGVmaW5lZCI6X3R5cGVfb2YoYSkpKXJldHVybjtvPW9bYV19cmV0dXJuIG99fSx7a2V5OiJoYXMiLHZhbHVlOmZ1bmN0aW9uIGhhcyhzKXtmb3IodmFyIG89X19wcml2YXRlR2V0KHRoaXMsUGwpLGk9MDtvJiZpPHMubGVuZ3RoO2krKyl7dmFyIGE9c1tpXTtpZighSWwuY2FsbChvLGEpfHwhX19wcml2YXRlR2V0KHRoaXMsVGwpLmluY2x1ZGVTeW1ib2xzJiYic3ltYm9sIj09PSh2b2lkIDA9PT1hPyJ1bmRlZmluZWQiOl90eXBlX29mKGEpKSlyZXR1cm4hMTtvPW9bYV19cmV0dXJuITB9fSx7a2V5OiJzZXQiLHZhbHVlOmZ1bmN0aW9uIHNldChzLG8pe3ZhciBpPV9fcHJpdmF0ZUdldCh0aGlzLFBsKSxhPTA7Zm9yKGE9MDthPHMubGVuZ3RoLTE7YSsrKXt2YXIgdT1zW2FdO0lsLmNhbGwoaSx1KXx8KGlbdV09e30pLGk9aVt1XX1yZXR1cm4gaVtzW2FdXT1vLG99fSx7a2V5OiJtYXAiLHZhbHVlOmZ1bmN0aW9uIG1hcChzKXtyZXR1cm4gd2FsayhfX3ByaXZhdGVHZXQodGhpcyxQbCkscyx7aW1tdXRhYmxlOiEwLGluY2x1ZGVTeW1ib2xzOiEhX19wcml2YXRlR2V0KHRoaXMsVGwpLmluY2x1ZGVTeW1ib2xzfSl9fSx7a2V5OiJmb3JFYWNoIix2YWx1ZTpmdW5jdGlvbiBmb3JFYWNoKHMpe3JldHVybiBfX3ByaXZhdGVTZXQodGhpcyxQbCx3YWxrKF9fcHJpdmF0ZUdldCh0aGlzLFBsKSxzLF9fcHJpdmF0ZUdldCh0aGlzLFRsKSkpLF9fcHJpdmF0ZUdldCh0aGlzLFBsKX19LHtrZXk6InJlZHVjZSIsdmFsdWU6ZnVuY3Rpb24gcmVkdWNlKHMsbyl7dmFyIGk9MT09PWFyZ3VtZW50cy5sZW5ndGgsYT1pP19fcHJpdmF0ZUdldCh0aGlzLFBsKTpvO3JldHVybiB0aGlzLmZvckVhY2goKGZ1bmN0aW9uKG8pe3RoaXMuaXNSb290JiZpfHwoYT1zLmNhbGwodGhpcyxhLG8pKX0pKSxhfX0se2tleToicGF0aHMiLHZhbHVlOmZ1bmN0aW9uIHBhdGhzKCl7dmFyIHM9W107cmV0dXJuIHRoaXMuZm9yRWFjaCgoZnVuY3Rpb24oKXtzLnB1c2godGhpcy5wYXRoKX0pKSxzfX0se2tleToibm9kZXMiLHZhbHVlOmZ1bmN0aW9uIG5vZGVzKCl7dmFyIHM9W107cmV0dXJuIHRoaXMuZm9yRWFjaCgoZnVuY3Rpb24oKXtzLnB1c2godGhpcy5ub2RlKX0pKSxzfX0se2tleToiY2xvbmUiLHZhbHVlOmZ1bmN0aW9uIGNsb25lKCl7dmFyIHM9W10sbz1bXSxpPV9fcHJpdmF0ZUdldCh0aGlzLFRsKTtyZXR1cm4gaXNfdHlwZWRfYXJyYXkoX19wcml2YXRlR2V0KHRoaXMsUGwpKT9fX3ByaXZhdGVHZXQodGhpcyxQbCkuc2xpY2UoKTpmdW5jdGlvbiBjbG9uZShhKXtmb3IodmFyIHU9MDt1PHMubGVuZ3RoO3UrKylpZihzW3VdPT09YSlyZXR1cm4gb1t1XTtpZigib2JqZWN0Ij09PSh2b2lkIDA9PT1hPyJ1bmRlZmluZWQiOl90eXBlX29mKGEpKSYmbnVsbCE9PWEpe3ZhciBfPWxlZ2FjeV9jb3B5KGEsaSk7cy5wdXNoKGEpLG8ucHVzaChfKTt2YXIgdz1pLmluY2x1ZGVTeW1ib2xzP293bl9lbnVtZXJhYmxlX2tleXM6T2JqZWN0LmtleXMseD0hMCxDPSExLGo9dm9pZCAwO3RyeXtmb3IodmFyIEwsQj13KGEpW1N5bWJvbC5pdGVyYXRvcl0oKTshKHg9KEw9Qi5uZXh0KCkpLmRvbmUpO3g9ITApe3ZhciAkPUwudmFsdWU7X1skXT1jbG9uZShhWyRdKX19Y2F0Y2gocyl7Qz0hMCxqPXN9ZmluYWxseXt0cnl7eHx8bnVsbD09Qi5yZXR1cm58fEIucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiBzLnBvcCgpLG8ucG9wKCksX31yZXR1cm4gYX0oX19wcml2YXRlR2V0KHRoaXMsUGwpKX19XSksVHJhdmVyc2V9KCk7UGw9bmV3IFdlYWtNYXAsVGw9bmV3IFdlYWtNYXA7dmFyIHRyYXZlcnNlPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIG5ldyBNbChzLG8pfTt0cmF2ZXJzZS5nZXQ9ZnVuY3Rpb24ocyxvLGkpe3JldHVybiBuZXcgTWwocyxpKS5nZXQobyl9LHRyYXZlcnNlLnNldD1mdW5jdGlvbihzLG8saSxhKXtyZXR1cm4gbmV3IE1sKHMsYSkuc2V0KG8saSl9LHRyYXZlcnNlLmhhcz1mdW5jdGlvbihzLG8saSl7cmV0dXJuIG5ldyBNbChzLGkpLmhhcyhvKX0sdHJhdmVyc2UubWFwPWZ1bmN0aW9uKHMsbyxpKXtyZXR1cm4gbmV3IE1sKHMsaSkubWFwKG8pfSx0cmF2ZXJzZS5mb3JFYWNoPWZ1bmN0aW9uKHMsbyxpKXtyZXR1cm4gbmV3IE1sKHMsaSkuZm9yRWFjaChvKX0sdHJhdmVyc2UucmVkdWNlPWZ1bmN0aW9uKHMsbyxpLGEpe3JldHVybiBuZXcgTWwocyxhKS5yZWR1Y2UobyxpKX0sdHJhdmVyc2UucGF0aHM9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gbmV3IE1sKHMsbykucGF0aHMoKX0sdHJhdmVyc2Uubm9kZXM9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gbmV3IE1sKHMsbykubm9kZXMoKX0sdHJhdmVyc2UuY2xvbmU9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gbmV3IE1sKHMsbykuY2xvbmUoKX07dmFyIFJsPXRyYXZlcnNlO2NvbnN0IERsPSJhcHBsaWNhdGlvbi9qc29uLCBhcHBsaWNhdGlvbi95YW1sIixMbD0iaHR0cHM6Ly9zd2FnZ2VyLmlvIixGbD1PYmplY3QuZnJlZXplKHt1cmw6Ii8ifSksQmw9M2UzLCRsPVsicHJvcGVydGllcyJdLFZsPVsicHJvcGVydGllcyJdLFVsPVsiZGVmaW5pdGlvbnMiLCJwYXJhbWV0ZXJzIiwicmVzcG9uc2VzIiwic2VjdXJpdHlEZWZpbml0aW9ucyIsImNvbXBvbmVudHMvc2NoZW1hcyIsImNvbXBvbmVudHMvcmVzcG9uc2VzIiwiY29tcG9uZW50cy9wYXJhbWV0ZXJzIiwiY29tcG9uZW50cy9zZWN1cml0eVNjaGVtZXMiXSx6bD1bInNjaGVtYS9leGFtcGxlIiwiaXRlbXMvZXhhbXBsZSJdO2Z1bmN0aW9uIGlzRnJlZWx5TmFtZWQocyl7Y29uc3Qgbz1zW3MubGVuZ3RoLTFdLGk9c1tzLmxlbmd0aC0yXSxhPXMuam9pbigiLyIpO3JldHVybiAkbC5pbmRleE9mKG8pPi0xJiYtMT09PVZsLmluZGV4T2YoaSl8fFVsLmluZGV4T2YoYSk+LTF8fHpsLnNvbWUoKHM9PmEuaW5kZXhPZihzKT4tMSkpfWZ1bmN0aW9uIGFic29sdXRpZnlQb2ludGVyKHMsbyl7Y29uc3RbaSxhXT1zLnNwbGl0KCIjIiksdT1udWxsIT1vP286IiIsXz1udWxsIT1pP2k6IiI7bGV0IHc7aWYoaXNIdHRwVXJsKHUpKXc9cmVzb2x2ZSh1LF8pO2Vsc2V7Y29uc3Qgcz1yZXNvbHZlKExsLHUpLG89cmVzb2x2ZShzLF8pLnJlcGxhY2UoTGwsIiIpO3c9Xy5zdGFydHNXaXRoKCIvIik/bzpvLnN1YnN0cmluZygxKX1yZXR1cm4gYT9gJHt3fSMke2F9YDp3fWNvbnN0IFdsPS9eKFthLXpdKzpcL1wvfFwvXC8pL2k7Y2xhc3MgSlNPTlJlZkVycm9yIGV4dGVuZHMgR297fWNvbnN0IEpsPXt9LEhsPW5ldyBXZWFrTWFwLEtsPVtzPT4icGF0aHMiPT09c1swXSYmInJlc3BvbnNlcyI9PT1zWzNdJiYiZXhhbXBsZXMiPT09c1s1XSxzPT4icGF0aHMiPT09c1swXSYmInJlc3BvbnNlcyI9PT1zWzNdJiYiY29udGVudCI9PT1zWzVdJiYiZXhhbXBsZSI9PT1zWzddLHM9PiJwYXRocyI9PT1zWzBdJiYicmVzcG9uc2VzIj09PXNbM10mJiJjb250ZW50Ij09PXNbNV0mJiJleGFtcGxlcyI9PT1zWzddJiYidmFsdWUiPT09c1s5XSxzPT4icGF0aHMiPT09c1swXSYmInJlcXVlc3RCb2R5Ij09PXNbM10mJiJjb250ZW50Ij09PXNbNF0mJiJleGFtcGxlIj09PXNbNl0scz0+InBhdGhzIj09PXNbMF0mJiJyZXF1ZXN0Qm9keSI9PT1zWzNdJiYiY29udGVudCI9PT1zWzRdJiYiZXhhbXBsZXMiPT09c1s2XSYmInZhbHVlIj09PXNbOF0scz0+InBhdGhzIj09PXNbMF0mJiJwYXJhbWV0ZXJzIj09PXNbMl0mJiJleGFtcGxlIj09PXNbNF0scz0+InBhdGhzIj09PXNbMF0mJiJwYXJhbWV0ZXJzIj09PXNbM10mJiJleGFtcGxlIj09PXNbNV0scz0+InBhdGhzIj09PXNbMF0mJiJwYXJhbWV0ZXJzIj09PXNbMl0mJiJleGFtcGxlcyI9PT1zWzRdJiYidmFsdWUiPT09c1s2XSxzPT4icGF0aHMiPT09c1swXSYmInBhcmFtZXRlcnMiPT09c1szXSYmImV4YW1wbGVzIj09PXNbNV0mJiJ2YWx1ZSI9PT1zWzddLHM9PiJwYXRocyI9PT1zWzBdJiYicGFyYW1ldGVycyI9PT1zWzJdJiYiY29udGVudCI9PT1zWzRdJiYiZXhhbXBsZSI9PT1zWzZdLHM9PiJwYXRocyI9PT1zWzBdJiYicGFyYW1ldGVycyI9PT1zWzJdJiYiY29udGVudCI9PT1zWzRdJiYiZXhhbXBsZXMiPT09c1s2XSYmInZhbHVlIj09PXNbOF0scz0+InBhdGhzIj09PXNbMF0mJiJwYXJhbWV0ZXJzIj09PXNbM10mJiJjb250ZW50Ij09PXNbNF0mJiJleGFtcGxlIj09PXNbN10scz0+InBhdGhzIj09PXNbMF0mJiJwYXJhbWV0ZXJzIj09PXNbM10mJiJjb250ZW50Ij09PXNbNV0mJiJleGFtcGxlcyI9PT1zWzddJiYidmFsdWUiPT09c1s5XV0sR2w9e2tleToiJHJlZiIscGx1Z2luOihzLG8saSxhKT0+e2NvbnN0IHU9YS5nZXRJbnN0YW5jZSgpLF89aS5zbGljZSgwLC0xKTtpZihpc0ZyZWVseU5hbWVkKF8pfHwocz0+S2wuc29tZSgobz0+byhzKSkpKShfKSlyZXR1cm47Y29uc3R7YmFzZURvYzp3fT1hLmdldENvbnRleHQoaSk7aWYoInN0cmluZyIhPXR5cGVvZiBzKXJldHVybiBuZXcgSlNPTlJlZkVycm9yKCIkcmVmOiBtdXN0IGJlIGEgc3RyaW5nIChKU09OLVJlZikiLHskcmVmOnMsYmFzZURvYzp3LGZ1bGxQYXRoOml9KTtjb25zdCB4PXJlZnNfc3BsaXQocyksQz14WzBdLGo9eFsxXXx8IiI7bGV0IEwsQiwkO3RyeXtMPXd8fEM/YWJzb2x1dGVpZnkoQyx3KTpudWxsfWNhdGNoKG8pe3JldHVybiB3cmFwRXJyb3Iobyx7cG9pbnRlcjpqLCRyZWY6cyxiYXNlUGF0aDpMLGZ1bGxQYXRoOml9KX1pZihmdW5jdGlvbiBwb2ludGVyQWxyZWFkeUluUGF0aChzLG8saSxhKXtsZXQgdT1IbC5nZXQoYSk7dXx8KHU9e30sSGwuc2V0KGEsdSkpO2NvbnN0IF89ZnVuY3Rpb24gYXJyYXlUb0pzb25Qb2ludGVyKHMpe2lmKDA9PT1zLmxlbmd0aClyZXR1cm4iIjtyZXR1cm5gLyR7cy5tYXAoZXNjYXBlSnNvblBvaW50ZXJUb2tlbikuam9pbigiLyIpfWB9KGkpLHc9YCR7b3x8IjxzcGVjbWFwLWJhc2U+In0jJHtzfWAseD1fLnJlcGxhY2UoL2FsbE9mXC9cZCtcLz8vZywiIiksQz1hLmNvbnRleHRUcmVlLmdldChbXSkuYmFzZURvYztpZihvPT09QyYmcG9pbnRlcklzQVBhcmVudCh4LHMpKXJldHVybiEwO2xldCBqPSIiO2NvbnN0IEw9aS5zb21lKChzPT4oaj1gJHtqfS8ke2VzY2FwZUpzb25Qb2ludGVyVG9rZW4ocyl9YCx1W2pdJiZ1W2pdLnNvbWUoKHM9PnBvaW50ZXJJc0FQYXJlbnQocyx3KXx8cG9pbnRlcklzQVBhcmVudCh3LHMpKSkpKSk7aWYoTClyZXR1cm4hMDtyZXR1cm4gdm9pZCh1W3hdPSh1W3hdfHxbXSkuY29uY2F0KHcpKX0oaixMLF8sYSkmJiF1LnVzZUNpcmN1bGFyU3RydWN0dXJlcyl7Y29uc3Qgbz1hYnNvbHV0aWZ5UG9pbnRlcihzLEwpO3JldHVybiBzPT09bz9udWxsOldvLnJlcGxhY2UoaSxvKX1pZihudWxsPT1MPygkPWpzb25Qb2ludGVyVG9BcnJheShqKSxCPWEuZ2V0KCQpLHZvaWQgMD09PUImJihCPW5ldyBKU09OUmVmRXJyb3IoYENvdWxkIG5vdCByZXNvbHZlIHJlZmVyZW5jZTogJHtzfWAse3BvaW50ZXI6aiwkcmVmOnMsYmFzZURvYzp3LGZ1bGxQYXRoOml9KSkpOihCPWV4dHJhY3RGcm9tRG9jKEwsaiksQj1udWxsIT1CLl9fdmFsdWU/Qi5fX3ZhbHVlOkIuY2F0Y2goKG89Pnt0aHJvdyB3cmFwRXJyb3Iobyx7cG9pbnRlcjpqLCRyZWY6cyxiYXNlRG9jOncsZnVsbFBhdGg6aX0pfSkpKSxCIGluc3RhbmNlb2YgRXJyb3IpcmV0dXJuW1dvLnJlbW92ZShpKSxCXTtjb25zdCBWPWFic29sdXRpZnlQb2ludGVyKHMsTCksVT1Xby5yZXBsYWNlKF8sQix7JCRyZWY6Vn0pO2lmKEwmJkwhPT13KXJldHVybltVLFdvLmNvbnRleHQoXyx7YmFzZURvYzpMfSldO3RyeXtpZighZnVuY3Rpb24gcGF0Y2hWYWx1ZUFscmVhZHlJblBhdGgocyxvKXtjb25zdCBpPVtzXTtyZXR1cm4gby5wYXRoLnJlZHVjZSgoKHMsbyk9PihpLnB1c2goc1tvXSksc1tvXSkpLHMpLHBvaW50VG9BbmNlc3RvcihvLnZhbHVlKTtmdW5jdGlvbiBwb2ludFRvQW5jZXN0b3Iocyl7cmV0dXJuIFdvLmlzT2JqZWN0KHMpJiYoaS5pbmRleE9mKHMpPj0wfHxPYmplY3Qua2V5cyhzKS5zb21lKChvPT5wb2ludFRvQW5jZXN0b3Ioc1tvXSkpKSl9fShhLnN0YXRlLFUpfHx1LnVzZUNpcmN1bGFyU3RydWN0dXJlcylyZXR1cm4gVX1jYXRjaChzKXtyZXR1cm4gbnVsbH19fSxZbD1PYmplY3QuYXNzaWduKEdsLHtkb2NDYWNoZTpKbCxhYnNvbHV0ZWlmeSxjbGVhckNhY2hlOmZ1bmN0aW9uIGNsZWFyQ2FjaGUocyl7dm9pZCAwIT09cz9kZWxldGUgSmxbc106T2JqZWN0LmtleXMoSmwpLmZvckVhY2goKHM9PntkZWxldGUgSmxbc119KSl9LEpTT05SZWZFcnJvcix3cmFwRXJyb3IsZ2V0RG9jLHNwbGl0OnJlZnNfc3BsaXQsZXh0cmFjdEZyb21Eb2MsZmV0Y2hKU09OOmZ1bmN0aW9uIGZldGNoSlNPTihzKXtyZXR1cm4gZmV0Y2gocyx7aGVhZGVyczp7QWNjZXB0OkRsfSxsb2FkU3BlYzohMH0pLnRoZW4oKHM9PnMudGV4dCgpKSkudGhlbigocz0+Zm4ubG9hZChzKSkpfSxleHRyYWN0LGpzb25Qb2ludGVyVG9BcnJheSx1bmVzY2FwZUpzb25Qb2ludGVyVG9rZW59KSxYbD1ZbDtmdW5jdGlvbiBhYnNvbHV0ZWlmeShzLG8pe2lmKCFXbC50ZXN0KHMpKXtpZighbyl0aHJvdyBuZXcgSlNPTlJlZkVycm9yKGBUcmllZCB0byByZXNvbHZlIGEgcmVsYXRpdmUgVVJMLCB3aXRob3V0IGhhdmluZyBhIGJhc2VQYXRoLiBwYXRoOiAnJHtzfScgYmFzZVBhdGg6ICcke299J2ApO3JldHVybiByZXNvbHZlKG8scyl9cmV0dXJuIHN9ZnVuY3Rpb24gd3JhcEVycm9yKHMsbyl7bGV0IGk7cmV0dXJuIGk9cyYmcy5yZXNwb25zZSYmcy5yZXNwb25zZS5ib2R5P2Ake3MucmVzcG9uc2UuYm9keS5jb2RlfSAke3MucmVzcG9uc2UuYm9keS5tZXNzYWdlfWA6cy5tZXNzYWdlLG5ldyBKU09OUmVmRXJyb3IoYENvdWxkIG5vdCByZXNvbHZlIHJlZmVyZW5jZTogJHtpfWAsey4uLm8sY2F1c2U6c30pfWZ1bmN0aW9uIHJlZnNfc3BsaXQocyl7cmV0dXJuKHMrIiIpLnNwbGl0KCIjIil9ZnVuY3Rpb24gZXh0cmFjdEZyb21Eb2MocyxvKXtjb25zdCBpPUpsW3NdO2lmKGkmJiFXby5pc1Byb21pc2UoaSkpdHJ5e2NvbnN0IHM9ZXh0cmFjdChvLGkpO3JldHVybiBPYmplY3QuYXNzaWduKFByb21pc2UucmVzb2x2ZShzKSx7X192YWx1ZTpzfSl9Y2F0Y2gocyl7cmV0dXJuIFByb21pc2UucmVqZWN0KHMpfXJldHVybiBnZXREb2MocykudGhlbigocz0+ZXh0cmFjdChvLHMpKSl9ZnVuY3Rpb24gZ2V0RG9jKHMpe2NvbnN0IG89Smxbc107cmV0dXJuIG8/V28uaXNQcm9taXNlKG8pP286UHJvbWlzZS5yZXNvbHZlKG8pOihKbFtzXT1ZbC5mZXRjaEpTT04ocykudGhlbigobz0+KEpsW3NdPW8sbykpKSxKbFtzXSl9ZnVuY3Rpb24gZXh0cmFjdChzLG8pe2NvbnN0IGk9anNvblBvaW50ZXJUb0FycmF5KHMpO2lmKGkubGVuZ3RoPDEpcmV0dXJuIG87Y29uc3QgYT1Xby5nZXRJbihvLGkpO2lmKHZvaWQgMD09PWEpdGhyb3cgbmV3IEpTT05SZWZFcnJvcihgQ291bGQgbm90IHJlc29sdmUgcG9pbnRlcjogJHtzfSBkb2VzIG5vdCBleGlzdCBpbiBkb2N1bWVudGAse3BvaW50ZXI6c30pO3JldHVybiBhfWZ1bmN0aW9uIGpzb25Qb2ludGVyVG9BcnJheShzKXtpZigic3RyaW5nIiE9dHlwZW9mIHMpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBzdHJpbmcsIGdvdCBhICIrdHlwZW9mIHMpO3JldHVybiIvIj09PXNbMF0mJihzPXMuc3Vic3RyKDEpKSwiIj09PXM/W106cy5zcGxpdCgiLyIpLm1hcCh1bmVzY2FwZUpzb25Qb2ludGVyVG9rZW4pfWZ1bmN0aW9uIHVuZXNjYXBlSnNvblBvaW50ZXJUb2tlbihzKXtpZigic3RyaW5nIiE9dHlwZW9mIHMpcmV0dXJuIHM7cmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXMoYD0ke3MucmVwbGFjZSgvfjEvZywiLyIpLnJlcGxhY2UoL34wL2csIn4iKX1gKS5nZXQoIiIpfWZ1bmN0aW9uIGVzY2FwZUpzb25Qb2ludGVyVG9rZW4ocyl7cmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXMoW1siIixzLnJlcGxhY2UoL34vZywifjAiKS5yZXBsYWNlKC9cLy9nLCJ+MSIpXV0pLnRvU3RyaW5nKCkuc2xpY2UoMSl9Y29uc3QgcG9pbnRlckJvdW5kYXJ5Q2hhcj1zPT4hc3x8Ii8iPT09c3x8IiMiPT09cztmdW5jdGlvbiBwb2ludGVySXNBUGFyZW50KHMsbyl7aWYocG9pbnRlckJvdW5kYXJ5Q2hhcihvKSlyZXR1cm4hMDtjb25zdCBpPXMuY2hhckF0KG8ubGVuZ3RoKSxhPW8uc2xpY2UoLTEpO3JldHVybiAwPT09cy5pbmRleE9mKG8pJiYoIWl8fCIvIj09PWl8fCIjIj09PWkpJiYiIyIhPT1hfWNvbnN0IFFsPXtrZXk6ImFsbE9mIixwbHVnaW46KHMsbyxpLGEsdSk9PntpZih1Lm1ldGEmJnUubWV0YS4kJHJlZilyZXR1cm47Y29uc3QgXz1pLnNsaWNlKDAsLTEpO2lmKGlzRnJlZWx5TmFtZWQoXykpcmV0dXJuO2lmKCFBcnJheS5pc0FycmF5KHMpKXtjb25zdCBzPW5ldyBUeXBlRXJyb3IoImFsbE9mIG11c3QgYmUgYW4gYXJyYXkiKTtyZXR1cm4gcy5mdWxsUGF0aD1pLHN9bGV0IHc9ITEseD11LnZhbHVlO2lmKF8uZm9yRWFjaCgocz0+e3gmJih4PXhbc10pfSkpLHg9ey4uLnh9LDA9PT1PYmplY3Qua2V5cyh4KS5sZW5ndGgpcmV0dXJuO2RlbGV0ZSB4LmFsbE9mO2NvbnN0IEM9W107cmV0dXJuIEMucHVzaChhLnJlcGxhY2UoXyx7fSkpLHMuZm9yRWFjaCgoKHMsbyk9PntpZighYS5pc09iamVjdChzKSl7aWYodylyZXR1cm4gbnVsbDt3PSEwO2NvbnN0IHM9bmV3IFR5cGVFcnJvcigiRWxlbWVudHMgaW4gYWxsT2YgbXVzdCBiZSBvYmplY3RzIik7cmV0dXJuIHMuZnVsbFBhdGg9aSxDLnB1c2gocyl9Qy5wdXNoKGEubWVyZ2VEZWVwKF8scykpO2NvbnN0IHU9ZnVuY3Rpb24gZ2VuZXJhdGVBYnNvbHV0ZVJlZlBhdGNoZXMocyxvLHtzcGVjbWFwOmksZ2V0QmFzZVVybEZvck5vZGVQYXRoOmE9cz0+aS5nZXRDb250ZXh0KFsuLi5vLC4uLnNdKS5iYXNlRG9jLHRhcmdldEtleXM6dT1bIiRyZWYiLCIkJHJlZiJdfT17fSl7Y29uc3QgXz1bXTtyZXR1cm4gUmwocykuZm9yRWFjaCgoZnVuY3Rpb24gY2FsbGJhY2soKXtpZih1LmluY2x1ZGVzKHRoaXMua2V5KSYmInN0cmluZyI9PXR5cGVvZiB0aGlzLm5vZGUpe2NvbnN0IHM9dGhpcy5wYXRoLHU9by5jb25jYXQodGhpcy5wYXRoKSx3PWFic29sdXRpZnlQb2ludGVyKHRoaXMubm9kZSxhKHMpKTtfLnB1c2goaS5yZXBsYWNlKHUsdykpfX0pKSxffShzLGkuc2xpY2UoMCwtMSkse2dldEJhc2VVcmxGb3JOb2RlUGF0aDpzPT5hLmdldENvbnRleHQoWy4uLmksbywuLi5zXSkuYmFzZURvYyxzcGVjbWFwOmF9KTtDLnB1c2goLi4udSl9KSkseC5leGFtcGxlJiZDLnB1c2goYS5yZW1vdmUoW10uY29uY2F0KF8sImV4YW1wbGUiKSkpLEMucHVzaChhLm1lcmdlRGVlcChfLHgpKSx4LiQkcmVmfHxDLnB1c2goYS5yZW1vdmUoW10uY29uY2F0KF8sIiQkcmVmIikpKSxDfX0sWmw9e2tleToicGFyYW1ldGVycyIscGx1Z2luOihzLG8saSxhKT0+e2lmKEFycmF5LmlzQXJyYXkocykmJnMubGVuZ3RoKXtjb25zdCBvPU9iamVjdC5hc3NpZ24oW10scyksdT1pLnNsaWNlKDAsLTEpLF89ey4uLldvLmdldEluKGEuc3BlYyx1KX07Zm9yKGxldCB1PTA7dTxzLmxlbmd0aDt1Kz0xKXtjb25zdCB3PXNbdV07dHJ5e29bdV0uZGVmYXVsdD1hLnBhcmFtZXRlck1hY3JvKF8sdyl9Y2F0Y2gocyl7Y29uc3Qgbz1uZXcgRXJyb3Iocyk7cmV0dXJuIG8uZnVsbFBhdGg9aSxvfX1yZXR1cm4gV28ucmVwbGFjZShpLG8pfXJldHVybiBXby5yZXBsYWNlKGkscyl9fSxldT17a2V5OiJwcm9wZXJ0aWVzIixwbHVnaW46KHMsbyxpLGEpPT57Y29uc3QgdT17Li4uc307Zm9yKGNvbnN0IG8gaW4gcyl0cnl7dVtvXS5kZWZhdWx0PWEubW9kZWxQcm9wZXJ0eU1hY3JvKHVbb10pfWNhdGNoKHMpe2NvbnN0IG89bmV3IEVycm9yKHMpO3JldHVybiBvLmZ1bGxQYXRoPWksb31yZXR1cm4gV28ucmVwbGFjZShpLHUpfX07Y2xhc3MgQ29udGV4dFRyZWV7Y29uc3RydWN0b3Iocyl7dGhpcy5yb290PWNvbnRleHRfdHJlZV9jcmVhdGVOb2RlKHN8fHt9KX1zZXQocyxvKXtjb25zdCBpPXRoaXMuZ2V0UGFyZW50KHMsITApO2lmKCFpKXJldHVybiB2b2lkIGNvbnRleHRfdHJlZV91cGRhdGVOb2RlKHRoaXMucm9vdCxvLG51bGwpO2NvbnN0IGE9c1tzLmxlbmd0aC0xXSx7Y2hpbGRyZW46dX09aTt1W2FdP2NvbnRleHRfdHJlZV91cGRhdGVOb2RlKHVbYV0sbyxpKTp1W2FdPWNvbnRleHRfdHJlZV9jcmVhdGVOb2RlKG8saSl9Z2V0KHMpe2lmKChzPXN8fFtdKS5sZW5ndGg8MSlyZXR1cm4gdGhpcy5yb290LnZhbHVlO2xldCBvLGksYT10aGlzLnJvb3Q7Zm9yKGxldCB1PTA7dTxzLmxlbmd0aCYmKGk9c1t1XSxvPWEuY2hpbGRyZW4sb1tpXSk7dSs9MSlhPW9baV07cmV0dXJuIGEmJmEucHJvdG9WYWx1ZX1nZXRQYXJlbnQocyxvKXtyZXR1cm4hc3x8cy5sZW5ndGg8MT9udWxsOnMubGVuZ3RoPDI/dGhpcy5yb290OnMuc2xpY2UoMCwtMSkucmVkdWNlKCgocyxpKT0+e2lmKCFzKXJldHVybiBzO2NvbnN0e2NoaWxkcmVuOmF9PXM7cmV0dXJuIWFbaV0mJm8mJihhW2ldPWNvbnRleHRfdHJlZV9jcmVhdGVOb2RlKG51bGwscykpLGFbaV19KSx0aGlzLnJvb3QpfX1mdW5jdGlvbiBjb250ZXh0X3RyZWVfY3JlYXRlTm9kZShzLG8pe3JldHVybiBjb250ZXh0X3RyZWVfdXBkYXRlTm9kZSh7Y2hpbGRyZW46e319LHMsbyl9ZnVuY3Rpb24gY29udGV4dF90cmVlX3VwZGF0ZU5vZGUocyxvLGkpe3JldHVybiBzLnZhbHVlPW98fHt9LHMucHJvdG9WYWx1ZT1pP3suLi5pLnByb3RvVmFsdWUsLi4ucy52YWx1ZX06cy52YWx1ZSxPYmplY3Qua2V5cyhzLmNoaWxkcmVuKS5mb3JFYWNoKChvPT57Y29uc3QgaT1zLmNoaWxkcmVuW29dO3MuY2hpbGRyZW5bb109Y29udGV4dF90cmVlX3VwZGF0ZU5vZGUoaSxpLnZhbHVlLHMpfSkpLHN9Y29uc3Qgc3BlY21hcF9ub29wPSgpPT57fTtjbGFzcyBTcGVjTWFwe3N0YXRpYyBnZXRQbHVnaW5OYW1lKHMpe3JldHVybiBzLnBsdWdpbk5hbWV9c3RhdGljIGdldFBhdGNoZXNPZlR5cGUocyxvKXtyZXR1cm4gcy5maWx0ZXIobyl9Y29uc3RydWN0b3Iocyl7T2JqZWN0LmFzc2lnbih0aGlzLHtzcGVjOiIiLGRlYnVnTGV2ZWw6ImluZm8iLHBsdWdpbnM6W10scGx1Z2luSGlzdG9yeTp7fSxlcnJvcnM6W10sbXV0YXRpb25zOltdLHByb21pc2VkUGF0Y2hlczpbXSxzdGF0ZTp7fSxwYXRjaGVzOltdLGNvbnRleHQ6e30sY29udGV4dFRyZWU6bmV3IENvbnRleHRUcmVlLHNob3dEZWJ1ZzohMSxhbGxQYXRjaGVzOltdLHBsdWdpblByb3A6InNwZWNNYXAiLGxpYk1ldGhvZHM6T2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKHRoaXMpLFdvLHtnZXRJbnN0YW5jZTooKT0+dGhpc30pLGFsbG93TWV0YVBhdGNoZXM6ITF9LHMpLHRoaXMuZ2V0PXRoaXMuX2dldC5iaW5kKHRoaXMpLHRoaXMuZ2V0Q29udGV4dD10aGlzLl9nZXRDb250ZXh0LmJpbmQodGhpcyksdGhpcy5oYXNSdW49dGhpcy5faGFzUnVuLmJpbmQodGhpcyksdGhpcy53cmFwcGVkUGx1Z2lucz10aGlzLnBsdWdpbnMubWFwKHRoaXMud3JhcFBsdWdpbi5iaW5kKHRoaXMpKS5maWx0ZXIoV28uaXNGdW5jdGlvbiksdGhpcy5wYXRjaGVzLnB1c2goV28uYWRkKFtdLHRoaXMuc3BlYykpLHRoaXMucGF0Y2hlcy5wdXNoKFdvLmNvbnRleHQoW10sdGhpcy5jb250ZXh0KSksdGhpcy51cGRhdGVQYXRjaGVzKHRoaXMucGF0Y2hlcyl9ZGVidWcocywuLi5vKXt0aGlzLmRlYnVnTGV2ZWw9PT1zJiZjb25zb2xlLmxvZyguLi5vKX12ZXJib3NlKHMsLi4ubyl7InZlcmJvc2UiPT09dGhpcy5kZWJ1Z0xldmVsJiZjb25zb2xlLmxvZyhgWyR7c31dICAgYCwuLi5vKX13cmFwUGx1Z2luKHMsbyl7Y29uc3R7cGF0aERpc2NyaW1pbmF0b3I6aX09dGhpcztsZXQgYSx1PW51bGw7cmV0dXJuIHNbdGhpcy5wbHVnaW5Qcm9wXT8odT1zLGE9c1t0aGlzLnBsdWdpblByb3BdKTpXby5pc0Z1bmN0aW9uKHMpP2E9czpXby5pc09iamVjdChzKSYmKGE9ZnVuY3Rpb24gY3JlYXRlS2V5QmFzZWRQbHVnaW4ocyl7Y29uc3QgaXNTdWJQYXRoPShzLG8pPT4hQXJyYXkuaXNBcnJheShzKXx8cy5ldmVyeSgoKHMsaSk9PnM9PT1vW2ldKSk7cmV0dXJuIGZ1bmN0aW9uKmdlbmVyYXRvcihvLGEpe2NvbnN0IHU9e307Zm9yKGNvbnN0W3MsaV1vZiBvLmZpbHRlcihXby5pc0FkZGl0aXZlTXV0YXRpb24pLmVudHJpZXMoKSl7aWYoIShzPEJsKSlyZXR1cm47eWllbGQqdHJhdmVyc2UoaS52YWx1ZSxpLnBhdGgsaSl9ZnVuY3Rpb24qdHJhdmVyc2UobyxfLHcpe2lmKFdvLmlzT2JqZWN0KG8pKXtjb25zdCB4PV8ubGVuZ3RoLTEsQz1fW3hdLGo9Xy5pbmRleE9mKCJwcm9wZXJ0aWVzIiksTD0icHJvcGVydGllcyI9PT1DJiZ4PT09aixCPWEuYWxsb3dNZXRhUGF0Y2hlcyYmdVtvLiQkcmVmXTtmb3IoY29uc3QgeCBvZiBPYmplY3Qua2V5cyhvKSl7Y29uc3QgQz1vW3hdLGo9Xy5jb25jYXQoeCksJD1Xby5pc09iamVjdChDKSxWPW8uJCRyZWY7aWYoQnx8JCYmKGEuYWxsb3dNZXRhUGF0Y2hlcyYmViYmaXNTdWJQYXRoKGksaikmJih1W1ZdPSEwKSx5aWVsZCp0cmF2ZXJzZShDLGosdykpLCFMJiZ4PT09cy5rZXkpe2NvbnN0IG89aXNTdWJQYXRoKGksXyk7aSYmIW98fCh5aWVsZCBzLnBsdWdpbihDLHgsaixhLHcpKX19fWVsc2Ugcy5rZXk9PT1fW18ubGVuZ3RoLTFdJiYoeWllbGQgcy5wbHVnaW4obyxzLmtleSxfLGEpKX19fShzKSksT2JqZWN0LmFzc2lnbihhLmJpbmQodSkse3BsdWdpbk5hbWU6cy5uYW1lfHxvLGlzR2VuZXJhdG9yOldvLmlzR2VuZXJhdG9yKGEpfSl9bmV4dFBsdWdpbigpe3JldHVybiB0aGlzLndyYXBwZWRQbHVnaW5zLmZpbmQoKHM9PnRoaXMuZ2V0TXV0YXRpb25zRm9yUGx1Z2luKHMpLmxlbmd0aD4wKSl9bmV4dFByb21pc2VkUGF0Y2goKXtpZih0aGlzLnByb21pc2VkUGF0Y2hlcy5sZW5ndGg+MClyZXR1cm4gUHJvbWlzZS5yYWNlKHRoaXMucHJvbWlzZWRQYXRjaGVzLm1hcCgocz0+cy52YWx1ZSkpKX1nZXRQbHVnaW5IaXN0b3J5KHMpe2NvbnN0IG89dGhpcy5jb25zdHJ1Y3Rvci5nZXRQbHVnaW5OYW1lKHMpO3JldHVybiB0aGlzLnBsdWdpbkhpc3Rvcnlbb118fFtdfWdldFBsdWdpblJ1bkNvdW50KHMpe3JldHVybiB0aGlzLmdldFBsdWdpbkhpc3RvcnkocykubGVuZ3RofWdldFBsdWdpbkhpc3RvcnlUaXAocyl7Y29uc3Qgbz10aGlzLmdldFBsdWdpbkhpc3Rvcnkocyk7cmV0dXJuIG8mJm9bby5sZW5ndGgtMV18fHt9fWdldFBsdWdpbk11dGF0aW9uSW5kZXgocyl7Y29uc3Qgbz10aGlzLmdldFBsdWdpbkhpc3RvcnlUaXAocykubXV0YXRpb25JbmRleDtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIG8/LTE6b311cGRhdGVQbHVnaW5IaXN0b3J5KHMsbyl7Y29uc3QgaT10aGlzLmNvbnN0cnVjdG9yLmdldFBsdWdpbk5hbWUocyk7dGhpcy5wbHVnaW5IaXN0b3J5W2ldPXRoaXMucGx1Z2luSGlzdG9yeVtpXXx8W10sdGhpcy5wbHVnaW5IaXN0b3J5W2ldLnB1c2gobyl9dXBkYXRlUGF0Y2hlcyhzKXtXby5ub3JtYWxpemVBcnJheShzKS5mb3JFYWNoKChzPT57aWYocyBpbnN0YW5jZW9mIEVycm9yKXRoaXMuZXJyb3JzLnB1c2gocyk7ZWxzZSB0cnl7aWYoIVdvLmlzT2JqZWN0KHMpKXJldHVybiB2b2lkIHRoaXMuZGVidWcoInVwZGF0ZVBhdGNoZXMiLCJHb3QgYSBub24tb2JqZWN0IHBhdGNoIixzKTtpZih0aGlzLnNob3dEZWJ1ZyYmdGhpcy5hbGxQYXRjaGVzLnB1c2gocyksV28uaXNQcm9taXNlKHMudmFsdWUpKXJldHVybiB0aGlzLnByb21pc2VkUGF0Y2hlcy5wdXNoKHMpLHZvaWQgdGhpcy5wcm9taXNlZFBhdGNoVGhlbihzKTtpZihXby5pc0NvbnRleHRQYXRjaChzKSlyZXR1cm4gdm9pZCB0aGlzLnNldENvbnRleHQocy5wYXRoLHMudmFsdWUpO1dvLmlzTXV0YXRpb24ocykmJnRoaXMudXBkYXRlTXV0YXRpb25zKHMpfWNhdGNoKHMpe2NvbnNvbGUuZXJyb3IocyksdGhpcy5lcnJvcnMucHVzaChzKX19KSl9dXBkYXRlTXV0YXRpb25zKHMpeyJvYmplY3QiPT10eXBlb2Ygcy52YWx1ZSYmIUFycmF5LmlzQXJyYXkocy52YWx1ZSkmJnRoaXMuYWxsb3dNZXRhUGF0Y2hlcyYmKHMudmFsdWU9ey4uLnMudmFsdWV9KTtjb25zdCBvPVdvLmFwcGx5UGF0Y2godGhpcy5zdGF0ZSxzLHthbGxvd01ldGFQYXRjaGVzOnRoaXMuYWxsb3dNZXRhUGF0Y2hlc30pO28mJih0aGlzLm11dGF0aW9ucy5wdXNoKHMpLHRoaXMuc3RhdGU9byl9cmVtb3ZlUHJvbWlzZWRQYXRjaChzKXtjb25zdCBvPXRoaXMucHJvbWlzZWRQYXRjaGVzLmluZGV4T2Yocyk7bzwwP3RoaXMuZGVidWcoIlRyaWVkIHRvIHJlbW92ZSBhIHByb21pc2VkUGF0Y2ggdGhhdCBpc24ndCB0aGVyZSEiKTp0aGlzLnByb21pc2VkUGF0Y2hlcy5zcGxpY2UobywxKX1wcm9taXNlZFBhdGNoVGhlbihzKXtyZXR1cm4gcy52YWx1ZT1zLnZhbHVlLnRoZW4oKG89Pntjb25zdCBpPXsuLi5zLHZhbHVlOm99O3RoaXMucmVtb3ZlUHJvbWlzZWRQYXRjaChzKSx0aGlzLnVwZGF0ZVBhdGNoZXMoaSl9KSkuY2F0Y2goKG89Pnt0aGlzLnJlbW92ZVByb21pc2VkUGF0Y2gocyksdGhpcy51cGRhdGVQYXRjaGVzKG8pfSkpLHMudmFsdWV9Z2V0TXV0YXRpb25zKHMsbyl7cmV0dXJuIHM9c3x8MCwibnVtYmVyIiE9dHlwZW9mIG8mJihvPXRoaXMubXV0YXRpb25zLmxlbmd0aCksdGhpcy5tdXRhdGlvbnMuc2xpY2UocyxvKX1nZXRDdXJyZW50TXV0YXRpb25zKCl7cmV0dXJuIHRoaXMuZ2V0TXV0YXRpb25zRm9yUGx1Z2luKHRoaXMuZ2V0Q3VycmVudFBsdWdpbigpKX1nZXRNdXRhdGlvbnNGb3JQbHVnaW4ocyl7Y29uc3Qgbz10aGlzLmdldFBsdWdpbk11dGF0aW9uSW5kZXgocyk7cmV0dXJuIHRoaXMuZ2V0TXV0YXRpb25zKG8rMSl9Z2V0Q3VycmVudFBsdWdpbigpe3JldHVybiB0aGlzLmN1cnJlbnRQbHVnaW59Z2V0TGliKCl7cmV0dXJuIHRoaXMubGliTWV0aG9kc31fZ2V0KHMpe3JldHVybiBXby5nZXRJbih0aGlzLnN0YXRlLHMpfV9nZXRDb250ZXh0KHMpe3JldHVybiB0aGlzLmNvbnRleHRUcmVlLmdldChzKX1zZXRDb250ZXh0KHMsbyl7cmV0dXJuIHRoaXMuY29udGV4dFRyZWUuc2V0KHMsbyl9X2hhc1J1bihzKXtyZXR1cm4gdGhpcy5nZXRQbHVnaW5SdW5Db3VudCh0aGlzLmdldEN1cnJlbnRQbHVnaW4oKSk+KHN8fDApfWRpc3BhdGNoKCl7Y29uc3Qgcz10aGlzLG89dGhpcy5uZXh0UGx1Z2luKCk7aWYoIW8pe2NvbnN0IHM9dGhpcy5uZXh0UHJvbWlzZWRQYXRjaCgpO2lmKHMpcmV0dXJuIHMudGhlbigoKCk9PnRoaXMuZGlzcGF0Y2goKSkpLmNhdGNoKCgoKT0+dGhpcy5kaXNwYXRjaCgpKSk7Y29uc3Qgbz17c3BlYzp0aGlzLnN0YXRlLGVycm9yczp0aGlzLmVycm9yc307cmV0dXJuIHRoaXMuc2hvd0RlYnVnJiYoby5wYXRjaGVzPXRoaXMuYWxsUGF0Y2hlcyksUHJvbWlzZS5yZXNvbHZlKG8pfWlmKHMucGx1Z2luQ291bnQ9cy5wbHVnaW5Db3VudHx8bmV3IFdlYWtNYXAscy5wbHVnaW5Db3VudC5zZXQobywocy5wbHVnaW5Db3VudC5nZXQobyl8fDApKzEpLHMucGx1Z2luQ291bnRbb10+MTAwKXJldHVybiBQcm9taXNlLnJlc29sdmUoe3NwZWM6cy5zdGF0ZSxlcnJvcnM6cy5lcnJvcnMuY29uY2F0KG5ldyBFcnJvcigiV2UndmUgcmVhY2hlZCBhIGhhcmQgbGltaXQgb2YgMTAwIHBsdWdpbiBydW5zIikpfSk7aWYobyE9PXRoaXMuY3VycmVudFBsdWdpbiYmdGhpcy5wcm9taXNlZFBhdGNoZXMubGVuZ3RoKXtjb25zdCBzPXRoaXMucHJvbWlzZWRQYXRjaGVzLm1hcCgocz0+cy52YWx1ZSkpO3JldHVybiBQcm9taXNlLmFsbChzLm1hcCgocz0+cy50aGVuKHNwZWNtYXBfbm9vcCxzcGVjbWFwX25vb3ApKSkpLnRoZW4oKCgpPT50aGlzLmRpc3BhdGNoKCkpKX1yZXR1cm4gZnVuY3Rpb24gZXhlY3V0ZVBsdWdpbigpe3MuY3VycmVudFBsdWdpbj1vO2NvbnN0IGk9cy5nZXRDdXJyZW50TXV0YXRpb25zKCksYT1zLm11dGF0aW9ucy5sZW5ndGgtMTt0cnl7aWYoby5pc0dlbmVyYXRvcilmb3IoY29uc3QgYSBvZiBvKGkscy5nZXRMaWIoKSkpdXBkYXRlUGF0Y2hlcyhhKTtlbHNle3VwZGF0ZVBhdGNoZXMobyhpLHMuZ2V0TGliKCkpKX19Y2F0Y2gocyl7Y29uc29sZS5lcnJvcihzKSx1cGRhdGVQYXRjaGVzKFtPYmplY3QuYXNzaWduKE9iamVjdC5jcmVhdGUocykse3BsdWdpbjpvfSldKX1maW5hbGx5e3MudXBkYXRlUGx1Z2luSGlzdG9yeShvLHttdXRhdGlvbkluZGV4OmF9KX1yZXR1cm4gcy5kaXNwYXRjaCgpfSgpO2Z1bmN0aW9uIHVwZGF0ZVBhdGNoZXMoaSl7aSYmKGk9V28uZnVsbHlOb3JtYWxpemVBcnJheShpKSxzLnVwZGF0ZVBhdGNoZXMoaSxvKSl9fX1jb25zdCB0dT17cmVmczpYbCxhbGxPZjpRbCxwYXJhbWV0ZXJzOlpsLHByb3BlcnRpZXM6ZXV9O2Z1bmN0aW9uIG1ha2VGZXRjaEpTT04ocyxvPXt9KXtjb25zdHtyZXF1ZXN0SW50ZXJjZXB0b3I6aSxyZXNwb25zZUludGVyY2VwdG9yOmF9PW8sdT1zLndpdGhDcmVkZW50aWFscz8iaW5jbHVkZSI6InNhbWUtb3JpZ2luIjtyZXR1cm4gbz0+cyh7dXJsOm8sbG9hZFNwZWM6ITAscmVxdWVzdEludGVyY2VwdG9yOmkscmVzcG9uc2VJbnRlcmNlcHRvcjphLGhlYWRlcnM6e0FjY2VwdDpEbH0sY3JlZGVudGlhbHM6dX0pLnRoZW4oKHM9PnMuYm9keSkpfWZ1bmN0aW9uIGlzRmlsZShzLG8pe3JldHVybiBvfHwidW5kZWZpbmVkIj09dHlwZW9mIG5hdmlnYXRvcnx8KG89bmF2aWdhdG9yKSxvJiYiUmVhY3ROYXRpdmUiPT09by5wcm9kdWN0PyEoIXN8fCJvYmplY3QiIT10eXBlb2Ygc3x8InN0cmluZyIhPXR5cGVvZiBzLnVyaSk6InVuZGVmaW5lZCIhPXR5cGVvZiBGaWxlJiZzIGluc3RhbmNlb2YgRmlsZXx8KCJ1bmRlZmluZWQiIT10eXBlb2YgQmxvYiYmcyBpbnN0YW5jZW9mIEJsb2J8fCghIUFycmF5QnVmZmVyLmlzVmlldyhzKXx8bnVsbCE9PXMmJiJvYmplY3QiPT10eXBlb2YgcyYmImZ1bmN0aW9uIj09dHlwZW9mIHMucGlwZSkpfWZ1bmN0aW9uIGlzQXJyYXlPZkZpbGUocyxvKXtyZXR1cm4gQXJyYXkuaXNBcnJheShzKSYmcy5zb21lKChzPT5pc0ZpbGUocyxvKSkpfWNsYXNzIEZpbGVXaXRoRGF0YSBleHRlbmRzIEZpbGV7Y29uc3RydWN0b3IocyxvPSIiLGk9e30pe3N1cGVyKFtzXSxvLGkpLHRoaXMuZGF0YT1zfXZhbHVlT2YoKXtyZXR1cm4gdGhpcy5kYXRhfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMudmFsdWVPZigpfX1jb25zdCBpc1JmYzM5ODZSZXNlcnZlZD1zPT4iOi8/I1tdQCEkJicoKSorLDs9Ii5pbmRleE9mKHMpPi0xLGlzUmZjMzk4NlVucmVzZXJ2ZWQ9cz0+L15bYS16MC05XC0uX35dKyQvaS50ZXN0KHMpO2Z1bmN0aW9uIGVuY29kZUNoYXJhY3RlcnMocyxvPSJyZXNlcnZlZCIpe3JldHVyblsuLi5zXS5tYXAoKHM9PntpZihpc1JmYzM5ODZVbnJlc2VydmVkKHMpKXJldHVybiBzO2lmKGlzUmZjMzk4NlJlc2VydmVkKHMpJiYidW5zYWZlIj09PW8pcmV0dXJuIHM7Y29uc3QgaT1uZXcgVGV4dEVuY29kZXI7cmV0dXJuIEFycmF5LmZyb20oaS5lbmNvZGUocykpLm1hcCgocz0+YDAke3MudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9YC5zbGljZSgtMikpKS5tYXAoKHM9PmAlJHtzfWApKS5qb2luKCIiKX0pKS5qb2luKCIiKX1mdW5jdGlvbiBzdHlsaXplKHMpe2NvbnN0e3ZhbHVlOm99PXM7cmV0dXJuIEFycmF5LmlzQXJyYXkobyk/ZnVuY3Rpb24gZW5jb2RlQXJyYXkoe2tleTpzLHZhbHVlOm8sc3R5bGU6aSxleHBsb2RlOmEsZXNjYXBlOnV9KXtpZigic2ltcGxlIj09PWkpcmV0dXJuIG8ubWFwKChzPT52YWx1ZUVuY29kZXIocyx1KSkpLmpvaW4oIiwiKTtpZigibGFiZWwiPT09aSlyZXR1cm5gLiR7by5tYXAoKHM9PnZhbHVlRW5jb2RlcihzLHUpKSkuam9pbigiLiIpfWA7aWYoIm1hdHJpeCI9PT1pKXJldHVybiBvLm1hcCgocz0+dmFsdWVFbmNvZGVyKHMsdSkpKS5yZWR1Y2UoKChvLGkpPT4hb3x8YT9gJHtvfHwiIn07JHtzfT0ke2l9YDpgJHtvfSwke2l9YCksIiIpO2lmKCJmb3JtIj09PWkpe2NvbnN0IGk9YT9gJiR7c309YDoiLCI7cmV0dXJuIG8ubWFwKChzPT52YWx1ZUVuY29kZXIocyx1KSkpLmpvaW4oaSl9aWYoInNwYWNlRGVsaW1pdGVkIj09PWkpe2NvbnN0IGk9YT9gJHtzfT1gOiIiO3JldHVybiBvLm1hcCgocz0+dmFsdWVFbmNvZGVyKHMsdSkpKS5qb2luKGAgJHtpfWApfWlmKCJwaXBlRGVsaW1pdGVkIj09PWkpe2NvbnN0IGk9YT9gJHtzfT1gOiIiO3JldHVybiBvLm1hcCgocz0+dmFsdWVFbmNvZGVyKHMsdSkpKS5qb2luKGB8JHtpfWApfXJldHVybn0ocyk6Im9iamVjdCI9PXR5cGVvZiBvP2Z1bmN0aW9uIGVuY29kZU9iamVjdCh7a2V5OnMsdmFsdWU6byxzdHlsZTppLGV4cGxvZGU6YSxlc2NhcGU6dX0pe2NvbnN0IF89T2JqZWN0LmtleXMobyk7aWYoInNpbXBsZSI9PT1pKXJldHVybiBfLnJlZHVjZSgoKHMsaSk9Pntjb25zdCBfPXZhbHVlRW5jb2RlcihvW2ldLHUpO3JldHVybmAke3M/YCR7c30sYDoiIn0ke2l9JHthPyI9IjoiLCJ9JHtffWB9KSwiIik7aWYoImxhYmVsIj09PWkpcmV0dXJuIF8ucmVkdWNlKCgocyxpKT0+e2NvbnN0IF89dmFsdWVFbmNvZGVyKG9baV0sdSk7cmV0dXJuYCR7cz9gJHtzfS5gOiIuIn0ke2l9JHthPyI9IjoiLiJ9JHtffWB9KSwiIik7aWYoIm1hdHJpeCI9PT1pJiZhKXJldHVybiBfLnJlZHVjZSgoKHMsaSk9PmAke3M/YCR7c307YDoiOyJ9JHtpfT0ke3ZhbHVlRW5jb2RlcihvW2ldLHUpfWApLCIiKTtpZigibWF0cml4Ij09PWkpcmV0dXJuIF8ucmVkdWNlKCgoaSxhKT0+e2NvbnN0IF89dmFsdWVFbmNvZGVyKG9bYV0sdSk7cmV0dXJuYCR7aT9gJHtpfSxgOmA7JHtzfT1gfSR7YX0sJHtffWB9KSwiIik7aWYoImZvcm0iPT09aSlyZXR1cm4gXy5yZWR1Y2UoKChzLGkpPT57Y29uc3QgXz12YWx1ZUVuY29kZXIob1tpXSx1KTtyZXR1cm5gJHtzP2Ake3N9JHthPyImIjoiLCJ9YDoiIn0ke2l9JHthPyI9IjoiLCJ9JHtffWB9KSwiIik7cmV0dXJufShzKTpmdW5jdGlvbiBlbmNvZGVQcmltaXRpdmUoe2tleTpzLHZhbHVlOm8sc3R5bGU6aSxlc2NhcGU6YX0pe2lmKCJzaW1wbGUiPT09aSlyZXR1cm4gdmFsdWVFbmNvZGVyKG8sYSk7aWYoImxhYmVsIj09PWkpcmV0dXJuYC4ke3ZhbHVlRW5jb2RlcihvLGEpfWA7aWYoIm1hdHJpeCI9PT1pKXJldHVybmA7JHtzfT0ke3ZhbHVlRW5jb2RlcihvLGEpfWA7aWYoImZvcm0iPT09aSlyZXR1cm4gdmFsdWVFbmNvZGVyKG8sYSk7aWYoImRlZXBPYmplY3QiPT09aSlyZXR1cm4gdmFsdWVFbmNvZGVyKG8sYSk7cmV0dXJufShzKX1mdW5jdGlvbiB2YWx1ZUVuY29kZXIocyxvPSExKXtyZXR1cm4gQXJyYXkuaXNBcnJheShzKXx8bnVsbCE9PXMmJiJvYmplY3QiPT10eXBlb2Ygcz9zPUpTT04uc3RyaW5naWZ5KHMpOiJudW1iZXIiIT10eXBlb2YgcyYmImJvb2xlYW4iIT10eXBlb2Ygc3x8KHM9U3RyaW5nKHMpKSxvJiYic3RyaW5nIj09dHlwZW9mIHMmJnMubGVuZ3RoPjA/ZW5jb2RlQ2hhcmFjdGVycyhzLG8pOm51bGwhPXM/czoiIn1jb25zdCBydT17Zm9ybToiLCIsc3BhY2VEZWxpbWl0ZWQ6IiUyMCIscGlwZURlbGltaXRlZDoifCJ9LG51PXtjc3Y6IiwiLHNzdjoiJTIwIix0c3Y6IiUwOSIscGlwZXM6InwifTtmdW5jdGlvbiBmb3JtYXRLZXlWYWx1ZShzLG8saT0hMSl7Y29uc3R7Y29sbGVjdGlvbkZvcm1hdDphLGFsbG93RW1wdHlWYWx1ZTp1LHNlcmlhbGl6YXRpb25PcHRpb246XyxlbmNvZGluZzp3fT1vLHg9Im9iamVjdCIhPXR5cGVvZiBvfHxBcnJheS5pc0FycmF5KG8pP286by52YWx1ZSxDPWk/cz0+cy50b1N0cmluZygpOnM9PmVuY29kZVVSSUNvbXBvbmVudChzKSxqPUMocyk7aWYodm9pZCAwPT09eCYmdSlyZXR1cm5bW2osIiJdXTtpZihpc0ZpbGUoeCl8fGlzQXJyYXlPZkZpbGUoeCkpcmV0dXJuW1tqLHhdXTtpZihfKXJldHVybiBmb3JtYXRLZXlWYWx1ZUJ5U2VyaWFsaXphdGlvbk9wdGlvbihzLHgsaSxfKTtpZih3KXtpZihbdHlwZW9mIHcuc3R5bGUsdHlwZW9mIHcuZXhwbG9kZSx0eXBlb2Ygdy5hbGxvd1Jlc2VydmVkXS5zb21lKChzPT4idW5kZWZpbmVkIiE9PXMpKSl7Y29uc3R7c3R5bGU6byxleHBsb2RlOmEsYWxsb3dSZXNlcnZlZDp1fT13O3JldHVybiBmb3JtYXRLZXlWYWx1ZUJ5U2VyaWFsaXphdGlvbk9wdGlvbihzLHgsaSx7c3R5bGU6byxleHBsb2RlOmEsYWxsb3dSZXNlcnZlZDp1fSl9aWYoInN0cmluZyI9PXR5cGVvZiB3LmNvbnRlbnRUeXBlKXtpZih3LmNvbnRlbnRUeXBlLnN0YXJ0c1dpdGgoImFwcGxpY2F0aW9uL2pzb24iKSl7Y29uc3Qgcz1DKCJzdHJpbmciPT10eXBlb2YgeD94OkpTT04uc3RyaW5naWZ5KHgpKTtyZXR1cm5bW2osbmV3IEZpbGVXaXRoRGF0YShzLCJibG9iIix7dHlwZTp3LmNvbnRlbnRUeXBlfSldXX1jb25zdCBzPUMoU3RyaW5nKHgpKTtyZXR1cm5bW2osbmV3IEZpbGVXaXRoRGF0YShzLCJibG9iIix7dHlwZTp3LmNvbnRlbnRUeXBlfSldXX1yZXR1cm4ib2JqZWN0IiE9dHlwZW9mIHg/W1tqLEMoeCldXTpBcnJheS5pc0FycmF5KHgpJiZ4LmV2ZXJ5KChzPT4ib2JqZWN0IiE9dHlwZW9mIHMpKT9bW2oseC5tYXAoQykuam9pbigiLCIpXV06W1tqLEMoSlNPTi5zdHJpbmdpZnkoeCkpXV19cmV0dXJuIm9iamVjdCIhPXR5cGVvZiB4P1tbaixDKHgpXV06QXJyYXkuaXNBcnJheSh4KT8ibXVsdGkiPT09YT9bW2oseC5tYXAoQyldXTpbW2oseC5tYXAoQykuam9pbihudVthfHwiY3N2Il0pXV06W1tqLCIiXV19ZnVuY3Rpb24gZm9ybWF0S2V5VmFsdWVCeVNlcmlhbGl6YXRpb25PcHRpb24ocyxvLGksYSl7Y29uc3QgdT1hLnN0eWxlfHwiZm9ybSIsXz12b2lkIDA9PT1hLmV4cGxvZGU/ImZvcm0iPT09dTphLmV4cGxvZGUsdz0haSYmKGEmJmEuYWxsb3dSZXNlcnZlZD8idW5zYWZlIjoicmVzZXJ2ZWQiKSxlbmNvZGVGbj1zPT52YWx1ZUVuY29kZXIocyx3KSx4PWk/cz0+czpzPT5lbmNvZGVGbihzKTtyZXR1cm4ib2JqZWN0IiE9dHlwZW9mIG8/W1t4KHMpLGVuY29kZUZuKG8pXV06QXJyYXkuaXNBcnJheShvKT9fP1tbeChzKSxvLm1hcChlbmNvZGVGbildXTpbW3gocyksby5tYXAoZW5jb2RlRm4pLmpvaW4ocnVbdV0pXV06ImRlZXBPYmplY3QiPT09dT9PYmplY3Qua2V5cyhvKS5tYXAoKGk9Plt4KGAke3N9WyR7aX1dYCksZW5jb2RlRm4ob1tpXSldKSk6Xz9PYmplY3Qua2V5cyhvKS5tYXAoKHM9Plt4KHMpLGVuY29kZUZuKG9bc10pXSkpOltbeChzKSxPYmplY3Qua2V5cyhvKS5tYXAoKHM9PltgJHt4KHMpfSwke2VuY29kZUZuKG9bc10pfWBdKSkuam9pbigiLCIpXV19ZnVuY3Rpb24gZW5jb2RlRm9ybU9yUXVlcnkocyl7cmV0dXJuKChzLHtlbmNvZGU6bz0hMH09e30pPT57Y29uc3QgYnVpbGROZXN0ZWRQYXJhbXM9KHMsbyxpKT0+KEFycmF5LmlzQXJyYXkoaSk/aS5yZWR1Y2UoKChpLGEpPT5idWlsZE5lc3RlZFBhcmFtcyhzLG8sYSkpLHMpOmkgaW5zdGFuY2VvZiBEYXRlP3MuYXBwZW5kKG8saS50b0lTT1N0cmluZygpKToib2JqZWN0Ij09dHlwZW9mIGk/T2JqZWN0LmVudHJpZXMoaSkucmVkdWNlKCgoaSxbYSx1XSk9PmJ1aWxkTmVzdGVkUGFyYW1zKHMsYCR7b31bJHthfV1gLHUpKSxzKTpzLmFwcGVuZChvLGkpLHMpLGk9T2JqZWN0LmVudHJpZXMocykucmVkdWNlKCgocyxbbyxpXSk9PmJ1aWxkTmVzdGVkUGFyYW1zKHMsbyxpKSksbmV3IFVSTFNlYXJjaFBhcmFtcyksYT1TdHJpbmcoaSk7cmV0dXJuIG8/YTpkZWNvZGVVUklDb21wb25lbnQoYSl9KShPYmplY3Qua2V5cyhzKS5yZWR1Y2UoKChvLGkpPT57Zm9yKGNvbnN0W2EsdV1vZiBmb3JtYXRLZXlWYWx1ZShpLHNbaV0pKW9bYV09dSBpbnN0YW5jZW9mIEZpbGVXaXRoRGF0YT91LnZhbHVlT2YoKTp1O3JldHVybiBvfSkse30pLHtlbmNvZGU6ITF9KX1mdW5jdGlvbiBzZXJpYWxpemVSZXF1ZXN0KHM9e30pe2NvbnN0e3VybDpvPSIiLHF1ZXJ5OmksZm9ybTphfT1zO2lmKGEpe2NvbnN0IG89T2JqZWN0LmtleXMoYSkuc29tZSgocz0+e2NvbnN0e3ZhbHVlOm99PWFbc107cmV0dXJuIGlzRmlsZShvKXx8aXNBcnJheU9mRmlsZShvKX0pKSxpPXMuaGVhZGVyc1siY29udGVudC10eXBlIl18fHMuaGVhZGVyc1siQ29udGVudC1UeXBlIl07aWYob3x8L211bHRpcGFydFwvZm9ybS1kYXRhL2kudGVzdChpKSl7Y29uc3Qgbz1mdW5jdGlvbiByZXF1ZXN0X2J1aWxkRm9ybURhdGEocyl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHMpLnJlZHVjZSgoKHMsW28saV0pPT57Zm9yKGNvbnN0W2EsdV1vZiBmb3JtYXRLZXlWYWx1ZShvLGksITApKWlmKEFycmF5LmlzQXJyYXkodSkpZm9yKGNvbnN0IG8gb2YgdSlpZihBcnJheUJ1ZmZlci5pc1ZpZXcobykpe2NvbnN0IGk9bmV3IEJsb2IoW29dKTtzLmFwcGVuZChhLGkpfWVsc2Ugcy5hcHBlbmQoYSxvKTtlbHNlIGlmKEFycmF5QnVmZmVyLmlzVmlldyh1KSl7Y29uc3Qgbz1uZXcgQmxvYihbdV0pO3MuYXBwZW5kKGEsbyl9ZWxzZSBzLmFwcGVuZChhLHUpO3JldHVybiBzfSksbmV3IEZvcm1EYXRhKX0ocy5mb3JtKTtzLmZvcm1kYXRhPW8scy5ib2R5PW99ZWxzZSBzLmJvZHk9ZW5jb2RlRm9ybU9yUXVlcnkoYSk7ZGVsZXRlIHMuZm9ybX1pZihpKXtjb25zdFthLHVdPW8uc3BsaXQoIj8iKTtsZXQgXz0iIjtpZih1KXtjb25zdCBzPW5ldyBVUkxTZWFyY2hQYXJhbXModSk7T2JqZWN0LmtleXMoaSkuZm9yRWFjaCgobz0+cy5kZWxldGUobykpKSxfPVN0cmluZyhzKX1jb25zdCB3PSgoLi4ucyk9Pntjb25zdCBvPXMuZmlsdGVyKChzPT5zKSkuam9pbigiJiIpO3JldHVybiBvP2A/JHtvfWA6IiJ9KShfLGVuY29kZUZvcm1PclF1ZXJ5KGkpKTtzLnVybD1hK3csZGVsZXRlIHMucXVlcnl9cmV0dXJuIHN9ZnVuY3Rpb24gc2VyaWFsaXplSGVhZGVycyhzPXt9KXtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2Ygcy5lbnRyaWVzP3t9OkFycmF5LmZyb20ocy5lbnRyaWVzKCkpLnJlZHVjZSgoKHMsW28saV0pPT4oc1tvXT1mdW5jdGlvbiBzZXJpYWxpemVIZWFkZXJWYWx1ZShzKXtyZXR1cm4gcy5pbmNsdWRlcygiLCAiKT9zLnNwbGl0KCIsICIpOnN9KGkpLHMpKSx7fSl9ZnVuY3Rpb24gc2VyaWFsaXplUmVzcG9uc2UocyxvLHtsb2FkU3BlYzppPSExfT17fSl7Y29uc3QgYT17b2s6cy5vayx1cmw6cy51cmx8fG8sc3RhdHVzOnMuc3RhdHVzLHN0YXR1c1RleHQ6cy5zdGF0dXNUZXh0LGhlYWRlcnM6c2VyaWFsaXplSGVhZGVycyhzLmhlYWRlcnMpfSx1PWEuaGVhZGVyc1siY29udGVudC10eXBlIl0sXz1pfHwoKHM9IiIpPT4vKGpzb258eG1sfHlhbWx8dGV4dClcYi8udGVzdChzKSkodSk7cmV0dXJuKF8/cy50ZXh0OnMuYmxvYnx8cy5idWZmZXIpLmNhbGwocykudGhlbigocz0+e2lmKGEudGV4dD1zLGEuZGF0YT1zLF8pdHJ5e2NvbnN0IG89ZnVuY3Rpb24gcGFyc2VCb2R5KHMsbyl7cmV0dXJuIG8mJigwPT09by5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIil8fG8uaW5kZXhPZigiK2pzb24iKT4wKT9KU09OLnBhcnNlKHMpOmZuLmxvYWQocyl9KHMsdSk7YS5ib2R5PW8sYS5vYmo9b31jYXRjaChzKXthLnBhcnNlRXJyb3I9c31yZXR1cm4gYX0pKX1hc3luYyBmdW5jdGlvbiBodHRwX2h0dHAocyxvPXt9KXsib2JqZWN0Ij09dHlwZW9mIHMmJihzPShvPXMpLnVybCksby5oZWFkZXJzPW8uaGVhZGVyc3x8e30sKG89c2VyaWFsaXplUmVxdWVzdChvKSkuaGVhZGVycyYmT2JqZWN0LmtleXMoby5oZWFkZXJzKS5mb3JFYWNoKChzPT57Y29uc3QgaT1vLmhlYWRlcnNbc107InN0cmluZyI9PXR5cGVvZiBpJiYoby5oZWFkZXJzW3NdPWkucmVwbGFjZSgvXG4rL2csIiAiKSl9KSksby5yZXF1ZXN0SW50ZXJjZXB0b3ImJihvPWF3YWl0IG8ucmVxdWVzdEludGVyY2VwdG9yKG8pfHxvKTtjb25zdCBpPW8uaGVhZGVyc1siY29udGVudC10eXBlIl18fG8uaGVhZGVyc1siQ29udGVudC1UeXBlIl07bGV0IGE7L211bHRpcGFydFwvZm9ybS1kYXRhL2kudGVzdChpKSYmKGRlbGV0ZSBvLmhlYWRlcnNbImNvbnRlbnQtdHlwZSJdLGRlbGV0ZSBvLmhlYWRlcnNbIkNvbnRlbnQtVHlwZSJdKTt0cnl7YT1hd2FpdChvLnVzZXJGZXRjaHx8ZmV0Y2gpKG8udXJsLG8pLGE9YXdhaXQgc2VyaWFsaXplUmVzcG9uc2UoYSxzLG8pLG8ucmVzcG9uc2VJbnRlcmNlcHRvciYmKGE9YXdhaXQgby5yZXNwb25zZUludGVyY2VwdG9yKGEpfHxhKX1jYXRjaChzKXtpZighYSl0aHJvdyBzO2NvbnN0IG89bmV3IEVycm9yKGEuc3RhdHVzVGV4dHx8YHJlc3BvbnNlIHN0YXR1cyBpcyAke2Euc3RhdHVzfWApO3Rocm93IG8uc3RhdHVzPWEuc3RhdHVzLG8uc3RhdHVzQ29kZT1hLnN0YXR1cyxvLnJlc3BvbnNlRXJyb3I9cyxvfWlmKCFhLm9rKXtjb25zdCBzPW5ldyBFcnJvcihhLnN0YXR1c1RleHR8fGByZXNwb25zZSBzdGF0dXMgaXMgJHthLnN0YXR1c31gKTt0aHJvdyBzLnN0YXR1cz1hLnN0YXR1cyxzLnN0YXR1c0NvZGU9YS5zdGF0dXMscy5yZXNwb25zZT1hLHN9cmV0dXJuIGF9Y29uc3Qgb3B0aW9uc19yZXRyaWV2YWxVUkk9cz0+e3ZhciBvLGk7Y29uc3R7YmFzZURvYzphLHVybDp1fT1zLF89bnVsbCE9PShvPW51bGwhPWE/YTp1KSYmdm9pZCAwIT09bz9vOiIiO3JldHVybiJzdHJpbmciPT10eXBlb2YobnVsbD09PShpPWdsb2JhbFRoaXMuZG9jdW1lbnQpfHx2b2lkIDA9PT1pP3ZvaWQgMDppLmJhc2VVUkkpP1N0cmluZyhuZXcgVVJMKF8sZ2xvYmFsVGhpcy5kb2N1bWVudC5iYXNlVVJJKSk6X30sb3B0aW9uc19odHRwQ2xpZW50PXM9Pntjb25zdHtmZXRjaDpvLGh0dHA6aX09cztyZXR1cm4gb3x8aXx8aHR0cF9odHRwfTthc3luYyBmdW5jdGlvbiByZXNvbHZlR2VuZXJpY1N0cmF0ZWd5KHMpe2NvbnN0e3NwZWM6byxtb2RlOmksYWxsb3dNZXRhUGF0Y2hlczphPSEwLHBhdGhEaXNjcmltaW5hdG9yOnUsbW9kZWxQcm9wZXJ0eU1hY3JvOl8scGFyYW1ldGVyTWFjcm86dyxyZXF1ZXN0SW50ZXJjZXB0b3I6eCxyZXNwb25zZUludGVyY2VwdG9yOkMsc2tpcE5vcm1hbGl6YXRpb246aj0hMSx1c2VDaXJjdWxhclN0cnVjdHVyZXM6TCxzdHJhdGVnaWVzOkJ9PXMsJD1vcHRpb25zX3JldHJpZXZhbFVSSShzKSxWPW9wdGlvbnNfaHR0cENsaWVudChzKSxVPUIuZmluZCgocz0+cy5tYXRjaChvKSkpO3JldHVybiBhc3luYyBmdW5jdGlvbiBkb1Jlc29sdmUocyl7JCYmKHR1LnJlZnMuZG9jQ2FjaGVbJF09cyk7dHUucmVmcy5mZXRjaEpTT049bWFrZUZldGNoSlNPTihWLHtyZXF1ZXN0SW50ZXJjZXB0b3I6eCxyZXNwb25zZUludGVyY2VwdG9yOkN9KTtjb25zdCBvPVt0dS5yZWZzXTsiZnVuY3Rpb24iPT10eXBlb2YgdyYmby5wdXNoKHR1LnBhcmFtZXRlcnMpOyJmdW5jdGlvbiI9PXR5cGVvZiBfJiZvLnB1c2godHUucHJvcGVydGllcyk7InN0cmljdCIhPT1pJiZvLnB1c2godHUuYWxsT2YpO2NvbnN0IEI9YXdhaXQgZnVuY3Rpb24gbWFwU3BlYyhzKXtyZXR1cm4gbmV3IFNwZWNNYXAocykuZGlzcGF0Y2goKX0oe3NwZWM6cyxjb250ZXh0OntiYXNlRG9jOiR9LHBsdWdpbnM6byxhbGxvd01ldGFQYXRjaGVzOmEscGF0aERpc2NyaW1pbmF0b3I6dSxwYXJhbWV0ZXJNYWNybzp3LG1vZGVsUHJvcGVydHlNYWNybzpfLHVzZUNpcmN1bGFyU3RydWN0dXJlczpMfSk7anx8KEIuc3BlYz1VLm5vcm1hbGl6ZShCLnNwZWMpKTtyZXR1cm4gQn0obyl9Y29uc3Qgc3U9X2N1cnJ5MigoZnVuY3Rpb24gYW5kKHMsbyl7cmV0dXJuIHMmJm99KSk7Y29uc3Qgb3U9X2N1cnJ5MigoZnVuY3Rpb24gYm90aChzLG8pe3JldHVybiBfaXNGdW5jdGlvbihzKT9mdW5jdGlvbiBfYm90aCgpe3JldHVybiBzLmFwcGx5KHRoaXMsYXJndW1lbnRzKSYmby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9OmhjKHN1KShzLG8pfSkpO2NvbnN0IGl1PW5hKG51bGwpO2NvbnN0IGF1PWRjKGl1KTtmdW5jdGlvbiBpc09mVHlwZU9iamVjdF90eXBlb2Yocyl7cmV0dXJuIGlzT2ZUeXBlT2JqZWN0X3R5cGVvZj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihzKXtyZXR1cm4gdHlwZW9mIHN9OmZ1bmN0aW9uKHMpe3JldHVybiBzJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZzLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZzIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2Ygc30saXNPZlR5cGVPYmplY3RfdHlwZW9mKHMpfWNvbnN0IGN1PWZ1bmN0aW9uIGlzT2ZUeXBlT2JqZWN0KHMpe3JldHVybiJvYmplY3QiPT09aXNPZlR5cGVPYmplY3RfdHlwZW9mKHMpfTtjb25zdCBsdT0kYSgxLG91KGF1LGN1KSk7dmFyIHV1PXBpcGUocmEsSWMoIk9iamVjdCIpKSxwdT1waXBlKGdhLG5hKGdhKE9iamVjdCkpKSxodT1RbyhvdShNYyxwdSksWyJjb25zdHJ1Y3RvciJdKSxkdT0kYSgxLChmdW5jdGlvbihzKXtpZighbHUocyl8fCF1dShzKSlyZXR1cm4hMTt2YXIgbz1PYmplY3QuZ2V0UHJvdG90eXBlT2Yocyk7cmV0dXJuISFpdShvKXx8aHUobyl9KSk7Y29uc3QgZnU9ZHUscmVwbGFjZV9zcGVjaWFsX2NoYXJzX3dpdGhfdW5kZXJzY29yZT1zPT5zLnJlcGxhY2UoL1xXL2dpLCJfIik7ZnVuY3Rpb24gb3BJZChzLG8saT0iIix7djJPcGVyYXRpb25JZENvbXBhdGliaWxpdHlNb2RlOmF9PXt9KXtpZighc3x8Im9iamVjdCIhPXR5cGVvZiBzKXJldHVybiBudWxsO3JldHVybihzLm9wZXJhdGlvbklkfHwiIikucmVwbGFjZSgvXHMvZywiIikubGVuZ3RoP3JlcGxhY2Vfc3BlY2lhbF9jaGFyc193aXRoX3VuZGVyc2NvcmUocy5vcGVyYXRpb25JZCk6ZnVuY3Rpb24gaWRGcm9tUGF0aE1ldGhvZChzLG8se3YyT3BlcmF0aW9uSWRDb21wYXRpYmlsaXR5TW9kZTppfT17fSl7aWYoaSl7bGV0IGk9YCR7by50b0xvd2VyQ2FzZSgpfV8ke3N9YC5yZXBsYWNlKC9bXHMhQCMkJV4mKigpXys9W3tcXX07Ojw+fC4vPyxcXCciIi1dL2csIl8iKTtyZXR1cm4gaT1pfHxgJHtzLnN1YnN0cmluZygxKX1fJHtvfWAsaS5yZXBsYWNlKC8oKF8pezIsfSkvZywiXyIpLnJlcGxhY2UoL14oXykqL2csIiIpLnJlcGxhY2UoLyhbX10pKiQvZywiIil9cmV0dXJuYCR7by50b0xvd2VyQ2FzZSgpfSR7cmVwbGFjZV9zcGVjaWFsX2NoYXJzX3dpdGhfdW5kZXJzY29yZShzKX1gfShvLGkse3YyT3BlcmF0aW9uSWRDb21wYXRpYmlsaXR5TW9kZTphfSl9ZnVuY3Rpb24gbm9ybWFsaXplX25vcm1hbGl6ZShzKXtjb25zdHtzcGVjOm99PXMse3BhdGhzOml9PW8sYT17fTtpZighaXx8by4kJG5vcm1hbGl6ZWQpcmV0dXJuIHM7Zm9yKGNvbnN0IHMgaW4gaSl7Y29uc3QgdT1pW3NdO2lmKG51bGw9PXV8fCFbIm9iamVjdCIsImZ1bmN0aW9uIl0uaW5jbHVkZXModHlwZW9mIHUpKWNvbnRpbnVlO2NvbnN0IF89dS5wYXJhbWV0ZXJzO2Zvcihjb25zdCBpIGluIHUpe2NvbnN0IHc9dVtpXTtpZihudWxsPT13fHwhWyJvYmplY3QiLCJmdW5jdGlvbiJdLmluY2x1ZGVzKHR5cGVvZiB3KSljb250aW51ZTtjb25zdCB4PW9wSWQodyxzLGkpO2lmKHgpe2FbeF0/YVt4XS5wdXNoKHcpOmFbeF09W3ddO2NvbnN0IHM9YVt4XTtpZihzLmxlbmd0aD4xKXMuZm9yRWFjaCgoKHMsbyk9PntzLl9fb3JpZ2luYWxPcGVyYXRpb25JZD1zLl9fb3JpZ2luYWxPcGVyYXRpb25JZHx8cy5vcGVyYXRpb25JZCxzLm9wZXJhdGlvbklkPWAke3h9JHtvKzF9YH0pKTtlbHNlIGlmKHZvaWQgMCE9PXcub3BlcmF0aW9uSWQpe2NvbnN0IG89c1swXTtvLl9fb3JpZ2luYWxPcGVyYXRpb25JZD1vLl9fb3JpZ2luYWxPcGVyYXRpb25JZHx8dy5vcGVyYXRpb25JZCxvLm9wZXJhdGlvbklkPXh9fWlmKCJwYXJhbWV0ZXJzIiE9PWkpe2NvbnN0IHM9W10saT17fTtmb3IoY29uc3QgYSBpbiBvKSJwcm9kdWNlcyIhPT1hJiYiY29uc3VtZXMiIT09YSYmInNlY3VyaXR5IiE9PWF8fChpW2FdPW9bYV0scy5wdXNoKGkpKTtpZihfJiYoaS5wYXJhbWV0ZXJzPV8scy5wdXNoKGkpKSxzLmxlbmd0aClmb3IoY29uc3QgbyBvZiBzKWZvcihjb25zdCBzIGluIG8paWYoQXJyYXkuaXNBcnJheSh3W3NdKSl7aWYoInBhcmFtZXRlcnMiPT09cylmb3IoY29uc3QgaSBvZiBvW3NdKXt3W3NdLnNvbWUoKHM9PiEoIWZ1KHMpJiYhZnUoaSkpJiYocz09PWl8fFsibmFtZSIsIiRyZWYiLCIkJHJlZiJdLnNvbWUoKG89PiJzdHJpbmciPT10eXBlb2Ygc1tvXSYmInN0cmluZyI9PXR5cGVvZiBpW29dJiZzW29dPT09aVtvXSkpKSkpfHx3W3NdLnB1c2goaSl9fWVsc2Ugd1tzXT1vW3NdfX19cmV0dXJuIG8uJCRub3JtYWxpemVkPSEwLHN9Y29uc3QgbXU9e25hbWU6ImdlbmVyaWMiLG1hdGNoOigpPT4hMCxub3JtYWxpemUocyl7Y29uc3R7c3BlYzpvfT1ub3JtYWxpemVfbm9ybWFsaXplKHtzcGVjOnN9KTtyZXR1cm4gb30scmVzb2x2ZTphc3luYyBzPT5yZXNvbHZlR2VuZXJpY1N0cmF0ZWd5KHMpfSxndT1tdTtjb25zdCBpc09wZW5BUEkzMD1zPT57dHJ5e2NvbnN0e29wZW5hcGk6b309cztyZXR1cm4ic3RyaW5nIj09dHlwZW9mIG8mJi9eM1wuMFwuKD86WzEtOV1cZCp8MCkkLy50ZXN0KG8pfWNhdGNoe3JldHVybiExfX0saXNPcGVuQVBJMzE9cz0+e3RyeXtjb25zdHtvcGVuYXBpOm99PXM7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBvJiYvXjNcLjFcLig/OlsxLTldXGQqfDApJC8udGVzdChvKX1jYXRjaHtyZXR1cm4hMX19LGlzT3BlbkFQSTM9cz0+aXNPcGVuQVBJMzAocyl8fGlzT3BlbkFQSTMxKHMpLHl1PXtuYW1lOiJvcGVuYXBpLTIiLG1hdGNoOnM9PihzPT57dHJ5e2NvbnN0e3N3YWdnZXI6b309cztyZXR1cm4iMi4wIj09PW99Y2F0Y2h7cmV0dXJuITF9fSkocyksbm9ybWFsaXplKHMpe2NvbnN0e3NwZWM6b309bm9ybWFsaXplX25vcm1hbGl6ZSh7c3BlYzpzfSk7cmV0dXJuIG99LHJlc29sdmU6YXN5bmMgcz0+YXN5bmMgZnVuY3Rpb24gcmVzb2x2ZU9wZW5BUEkyU3RyYXRlZ3kocyl7cmV0dXJuIHJlc29sdmVHZW5lcmljU3RyYXRlZ3kocyl9KHMpfSx2dT15dTtjb25zdCBidT17bmFtZToib3BlbmFwaS0zLTAiLG1hdGNoOnM9PmlzT3BlbkFQSTMwKHMpLG5vcm1hbGl6ZShzKXtjb25zdHtzcGVjOm99PW5vcm1hbGl6ZV9ub3JtYWxpemUoe3NwZWM6c30pO3JldHVybiBvfSxyZXNvbHZlOmFzeW5jIHM9PmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVPcGVuQVBJMzBTdHJhdGVneShzKXtyZXR1cm4gcmVzb2x2ZUdlbmVyaWNTdHJhdGVneShzKX0ocyl9LF91PWJ1O3ZhciBTdT1fX3dlYnBhY2tfcmVxdWlyZV9fKDM0MDM1KTtmdW5jdGlvbiBfcmVkdWNlZChzKXtyZXR1cm4gcyYmc1siQEB0cmFuc2R1Y2VyL3JlZHVjZWQiXT9zOnsiQEB0cmFuc2R1Y2VyL3ZhbHVlIjpzLCJAQHRyYW5zZHVjZXIvcmVkdWNlZCI6ITB9fXZhciBFdT1mdW5jdGlvbigpe2Z1bmN0aW9uIFhBbGwocyxvKXt0aGlzLnhmPW8sdGhpcy5mPXMsdGhpcy5hbGw9ITB9cmV0dXJuIFhBbGwucHJvdG90eXBlWyJAQHRyYW5zZHVjZXIvaW5pdCJdPV94ZkJhc2VfaW5pdCxYQWxsLnByb3RvdHlwZVsiQEB0cmFuc2R1Y2VyL3Jlc3VsdCJdPWZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLmFsbCYmKHM9dGhpcy54ZlsiQEB0cmFuc2R1Y2VyL3N0ZXAiXShzLCEwKSksdGhpcy54ZlsiQEB0cmFuc2R1Y2VyL3Jlc3VsdCJdKHMpfSxYQWxsLnByb3RvdHlwZVsiQEB0cmFuc2R1Y2VyL3N0ZXAiXT1mdW5jdGlvbihzLG8pe3JldHVybiB0aGlzLmYobyl8fCh0aGlzLmFsbD0hMSxzPV9yZWR1Y2VkKHRoaXMueGZbIkBAdHJhbnNkdWNlci9zdGVwIl0ocywhMSkpKSxzfSxYQWxsfSgpO2Z1bmN0aW9uIF94YWxsKHMpe3JldHVybiBmdW5jdGlvbihvKXtyZXR1cm4gbmV3IEV1KHMsbyl9fXZhciB3dT1fY3VycnkyKF9kaXNwYXRjaGFibGUoWyJhbGwiXSxfeGFsbCwoZnVuY3Rpb24gYWxsKHMsbyl7Zm9yKHZhciBpPTA7aTxvLmxlbmd0aDspe2lmKCFzKG9baV0pKXJldHVybiExO2krPTF9cmV0dXJuITB9KSkpO2NvbnN0IHh1PXd1O2NsYXNzIEFubm90YXRpb24gZXh0ZW5kcyBTdS5PbXtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0iYW5ub3RhdGlvbiJ9Z2V0IGNvZGUoKXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzLmdldCgiY29kZSIpfXNldCBjb2RlKHMpe3RoaXMuYXR0cmlidXRlcy5zZXQoImNvZGUiLHMpfX1jb25zdCBrdT1Bbm5vdGF0aW9uO2NsYXNzIENvbW1lbnQgZXh0ZW5kcyBTdS5PbXtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0iY29tbWVudCJ9fWNvbnN0IE91PUNvbW1lbnQ7Y2xhc3MgUGFyc2VSZXN1bHQgZXh0ZW5kcyBTdS53RXtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0icGFyc2VSZXN1bHQifWdldCBhcGkoKXtyZXR1cm4gdGhpcy5jaGlsZHJlbi5maWx0ZXIoKHM9PnMuY2xhc3Nlcy5jb250YWlucygiYXBpIikpKS5maXJzdH1nZXQgcmVzdWx0cygpe3JldHVybiB0aGlzLmNoaWxkcmVuLmZpbHRlcigocz0+cy5jbGFzc2VzLmNvbnRhaW5zKCJyZXN1bHQiKSkpfWdldCByZXN1bHQoKXtyZXR1cm4gdGhpcy5yZXN1bHRzLmZpcnN0fWdldCBhbm5vdGF0aW9ucygpe3JldHVybiB0aGlzLmNoaWxkcmVuLmZpbHRlcigocz0+ImFubm90YXRpb24iPT09cy5lbGVtZW50KSl9Z2V0IHdhcm5pbmdzKCl7cmV0dXJuIHRoaXMuY2hpbGRyZW4uZmlsdGVyKChzPT4iYW5ub3RhdGlvbiI9PT1zLmVsZW1lbnQmJnMuY2xhc3Nlcy5jb250YWlucygid2FybmluZyIpKSl9Z2V0IGVycm9ycygpe3JldHVybiB0aGlzLmNoaWxkcmVuLmZpbHRlcigocz0+ImFubm90YXRpb24iPT09cy5lbGVtZW50JiZzLmNsYXNzZXMuY29udGFpbnMoImVycm9yIikpKX1nZXQgaXNFbXB0eSgpe3JldHVybiB0aGlzLmNoaWxkcmVuLnJlamVjdCgocz0+ImFubm90YXRpb24iPT09cy5lbGVtZW50KSkuaXNFbXB0eX1yZXBsYWNlUmVzdWx0KHMpe2NvbnN0e3Jlc3VsdDpvfT10aGlzO2lmKGJjKG8pKXJldHVybiExO2NvbnN0IGk9dGhpcy5jb250ZW50LmZpbmRJbmRleCgocz0+cz09PW8pKTtyZXR1cm4tMSE9PWkmJih0aGlzLmNvbnRlbnRbaV09cywhMCl9fWNvbnN0IEN1PVBhcnNlUmVzdWx0O2NsYXNzIFNvdXJjZU1hcCBleHRlbmRzIFN1LndFe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJzb3VyY2VNYXAifWdldCBwb3NpdGlvblN0YXJ0KCl7cmV0dXJuIHRoaXMuY2hpbGRyZW4uZmlsdGVyKChzPT5zLmNsYXNzZXMuY29udGFpbnMoInBvc2l0aW9uIikpKS5nZXQoMCl9Z2V0IHBvc2l0aW9uRW5kKCl7cmV0dXJuIHRoaXMuY2hpbGRyZW4uZmlsdGVyKChzPT5zLmNsYXNzZXMuY29udGFpbnMoInBvc2l0aW9uIikpKS5nZXQoMSl9c2V0IHBvc2l0aW9uKHMpe2lmKHZvaWQgMD09PXMpcmV0dXJuO2NvbnN0IG89bmV3IFN1LndFKFtzLnN0YXJ0LnJvdyxzLnN0YXJ0LmNvbHVtbixzLnN0YXJ0LmNoYXJdKSxpPW5ldyBTdS53RShbcy5lbmQucm93LHMuZW5kLmNvbHVtbixzLmVuZC5jaGFyXSk7by5jbGFzc2VzLnB1c2goInBvc2l0aW9uIiksaS5jbGFzc2VzLnB1c2goInBvc2l0aW9uIiksdGhpcy5wdXNoKG8pLnB1c2goaSl9fWNvbnN0IEF1PVNvdXJjZU1hcCxoYXNNZXRob2Q9KHMsbyk9PiJvYmplY3QiPT10eXBlb2YgbyYmbnVsbCE9PW8mJnMgaW4gbyYmImZ1bmN0aW9uIj09dHlwZW9mIG9bc10saGFzQmFzaWNFbGVtZW50UHJvcHM9cz0+Im9iamVjdCI9PXR5cGVvZiBzJiZudWxsIT1zJiYiX3N0b3JlZEVsZW1lbnQiaW4gcyYmInN0cmluZyI9PXR5cGVvZiBzLl9zdG9yZWRFbGVtZW50JiYiX2NvbnRlbnQiaW4gcyxwcmltaXRpdmVFcT0ocyxvKT0+Im9iamVjdCI9PXR5cGVvZiBvJiZudWxsIT09byYmInByaW1pdGl2ZSJpbiBvJiYoImZ1bmN0aW9uIj09dHlwZW9mIG8ucHJpbWl0aXZlJiZvLnByaW1pdGl2ZSgpPT09cyksaGFzQ2xhc3M9KHMsbyk9PiJvYmplY3QiPT10eXBlb2YgbyYmbnVsbCE9PW8mJiJjbGFzc2VzImluIG8mJihBcnJheS5pc0FycmF5KG8uY2xhc3Nlcyl8fG8uY2xhc3NlcyBpbnN0YW5jZW9mIFN1LndFKSYmby5jbGFzc2VzLmluY2x1ZGVzKHMpLGlzRWxlbWVudFR5cGU9KHMsbyk9PiJvYmplY3QiPT10eXBlb2YgbyYmbnVsbCE9PW8mJiJlbGVtZW50ImluIG8mJm8uZWxlbWVudD09PXMsaGVscGVycz1zPT5zKHtoYXNNZXRob2QsaGFzQmFzaWNFbGVtZW50UHJvcHMscHJpbWl0aXZlRXEsaXNFbGVtZW50VHlwZSxoYXNDbGFzc30pLGp1PWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxwcmltaXRpdmVFcTpvfSk9Pmk9PmkgaW5zdGFuY2VvZiBTdS5IZ3x8cyhpKSYmbyh2b2lkIDAsaSkpKSxJdT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMscHJpbWl0aXZlRXE6b30pPT5pPT5pIGluc3RhbmNlb2YgU3UuT218fHMoaSkmJm8oInN0cmluZyIsaSkpKSxQdT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMscHJpbWl0aXZlRXE6b30pPT5pPT5pIGluc3RhbmNlb2YgU3Uua1R8fHMoaSkmJm8oIm51bWJlciIsaSkpKSxUdT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMscHJpbWl0aXZlRXE6b30pPT5pPT5pIGluc3RhbmNlb2YgU3UuT3N8fHMoaSkmJm8oIm51bGwiLGkpKSksTnU9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLHByaW1pdGl2ZUVxOm99KT0+aT0+aSBpbnN0YW5jZW9mIFN1LmJkfHxzKGkpJiZvKCJib29sZWFuIixpKSkpLE11PWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxwcmltaXRpdmVFcTpvLGhhc01ldGhvZDppfSk9PmE9PmEgaW5zdGFuY2VvZiBTdS5TaHx8cyhhKSYmbygib2JqZWN0IixhKSYmaSgia2V5cyIsYSkmJmkoInZhbHVlcyIsYSkmJmkoIml0ZW1zIixhKSkpLFJ1PWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxwcmltaXRpdmVFcTpvLGhhc01ldGhvZDppfSk9PmE9PmEgaW5zdGFuY2VvZiBTdS53RSYmIShhIGluc3RhbmNlb2YgU3UuU2gpfHxzKGEpJiZvKCJhcnJheSIsYSkmJmkoInB1c2giLGEpJiZpKCJ1bnNoaWZ0IixhKSYmaSgibWFwIixhKSYmaSgicmVkdWNlIixhKSkpLER1PWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgU3UuUHJ8fHMoYSkmJm8oIm1lbWJlciIsYSkmJmkodm9pZCAwLGEpKSksTHU9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBTdS5GdHx8cyhhKSYmbygibGluayIsYSkmJmkodm9pZCAwLGEpKSksRnU9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBTdS5zSXx8cyhhKSYmbygicmVmIixhKSYmaSh2b2lkIDAsYSkpKSxCdT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIGt1fHxzKGEpJiZvKCJhbm5vdGF0aW9uIixhKSYmaSgiYXJyYXkiLGEpKSksJHU9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBPdXx8cyhhKSYmbygiY29tbWVudCIsYSkmJmkoInN0cmluZyIsYSkpKSxxdT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIEN1fHxzKGEpJiZvKCJwYXJzZVJlc3VsdCIsYSkmJmkoImFycmF5IixhKSkpLFZ1PWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgQXV8fHMoYSkmJm8oInNvdXJjZU1hcCIsYSkmJmkoImFycmF5IixhKSkpLGlzUHJpbWl0aXZlRWxlbWVudD1zPT5pc0VsZW1lbnRUeXBlKCJvYmplY3QiLHMpfHxpc0VsZW1lbnRUeXBlKCJhcnJheSIscyl8fGlzRWxlbWVudFR5cGUoImJvb2xlYW4iLHMpfHxpc0VsZW1lbnRUeXBlKCJudW1iZXIiLHMpfHxpc0VsZW1lbnRUeXBlKCJzdHJpbmciLHMpfHxpc0VsZW1lbnRUeXBlKCJudWxsIixzKXx8aXNFbGVtZW50VHlwZSgibWVtYmVyIixzKSxoYXNFbGVtZW50U291cmNlTWFwPXM9PlZ1KHMubWV0YS5nZXQoInNvdXJjZU1hcCIpKSxpbmNsdWRlc1N5bWJvbHM9KHMsbyk9PntpZigwPT09cy5sZW5ndGgpcmV0dXJuITA7Y29uc3QgaT1vLmF0dHJpYnV0ZXMuZ2V0KCJzeW1ib2xzIik7cmV0dXJuISFSdShpKSYmeHUoc2MoaS50b1ZhbHVlKCkpLHMpfSxpbmNsdWRlc0NsYXNzZXM9KHMsbyk9PjA9PT1zLmxlbmd0aHx8eHUoc2Moby5jbGFzc2VzLnRvVmFsdWUoKSkscyk7Y29uc3QgZXNfVD1mdW5jdGlvbigpe3JldHVybiEwfTtjb25zdCBlc19GPWZ1bmN0aW9uKCl7cmV0dXJuITF9LGdldFZpc2l0Rm49KHMsbyxpKT0+e2NvbnN0IGE9c1tvXTtpZihudWxsIT1hKXtpZighaSYmImZ1bmN0aW9uIj09dHlwZW9mIGEpcmV0dXJuIGE7Y29uc3Qgcz1pP2EubGVhdmU6YS5lbnRlcjtpZigiZnVuY3Rpb24iPT10eXBlb2YgcylyZXR1cm4gc31lbHNle2NvbnN0IGE9aT9zLmxlYXZlOnMuZW50ZXI7aWYobnVsbCE9YSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEpcmV0dXJuIGE7Y29uc3Qgcz1hW29dO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBzKXJldHVybiBzfX1yZXR1cm4gbnVsbH0sVXU9e30sZ2V0Tm9kZVR5cGU9cz0+bnVsbD09cz92b2lkIDA6cy50eXBlLGlzTm9kZT1zPT4ic3RyaW5nIj09dHlwZW9mIGdldE5vZGVUeXBlKHMpLGNsb25lTm9kZT1zPT5PYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZihzKSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzKSksbWVyZ2VBbGw9KHMse3Zpc2l0Rm5HZXR0ZXI6bz1nZXRWaXNpdEZuLG5vZGVUeXBlR2V0dGVyOmk9Z2V0Tm9kZVR5cGUsYnJlYWtTeW1ib2w6YT1VdSxkZWxldGVOb2RlU3ltYm9sOnU9bnVsbCxza2lwVmlzaXRpbmdOb2RlU3ltYm9sOl89ITEsZXhwb3NlRWRpdHM6dz0hMX09e30pPT57Y29uc3QgeD1TeW1ib2woInNraXAiKSxDPW5ldyBBcnJheShzLmxlbmd0aCkuZmlsbCh4KTtyZXR1cm57ZW50ZXIoaixMLEIsJCxWLFUpe2xldCB6PWosWT0hMTtjb25zdCBaPXsuLi5VLHJlcGxhY2VXaXRoKHMsbyl7VS5yZXBsYWNlV2l0aChzLG8pLHo9c319O2ZvcihsZXQgaj0wO2o8cy5sZW5ndGg7ais9MSlpZihDW2pdPT09eCl7Y29uc3QgeD1vKHNbal0saSh6KSwhMSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHgpe2NvbnN0IG89eC5jYWxsKHNbal0seixMLEIsJCxWLFopO2lmKCJmdW5jdGlvbiI9PXR5cGVvZihudWxsPT1vP3ZvaWQgMDpvLnRoZW4pKXRocm93IG5ldyBHbygiQXN5bmMgdmlzaXRvciBub3Qgc3VwcG9ydGVkIGluIHN5bmMgbW9kZSIse3Zpc2l0b3I6c1tqXSx2aXNpdEZuOnh9KTtpZihvPT09XylDW2pdPXo7ZWxzZSBpZihvPT09YSlDW2pdPWE7ZWxzZXtpZihvPT09dSlyZXR1cm4gbztpZih2b2lkIDAhPT1vKXtpZighdylyZXR1cm4gbzt6PW8sWT0hMH19fX1yZXR1cm4gWT96OnZvaWQgMH0sbGVhdmUodSx3LGosTCxCLCQpe2xldCBWPXU7Y29uc3QgVT17Li4uJCxyZXBsYWNlV2l0aChzLG8peyQucmVwbGFjZVdpdGgocyxvKSxWPXN9fTtmb3IobGV0IHU9MDt1PHMubGVuZ3RoO3UrPTEpaWYoQ1t1XT09PXgpe2NvbnN0IHg9byhzW3VdLGkoViksITApO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB4KXtjb25zdCBvPXguY2FsbChzW3VdLFYsdyxqLEwsQixVKTtpZigiZnVuY3Rpb24iPT10eXBlb2YobnVsbD09bz92b2lkIDA6by50aGVuKSl0aHJvdyBuZXcgR28oIkFzeW5jIHZpc2l0b3Igbm90IHN1cHBvcnRlZCBpbiBzeW5jIG1vZGUiLHt2aXNpdG9yOnNbdV0sdmlzaXRGbjp4fSk7aWYobz09PWEpQ1t1XT1hO2Vsc2UgaWYodm9pZCAwIT09byYmbyE9PV8pcmV0dXJuIG99fWVsc2UgQ1t1XT09PVYmJihDW3VdPXgpfX19O21lcmdlQWxsW1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLnByb21pc2lmeS5jdXN0b20iKV09KHMse3Zpc2l0Rm5HZXR0ZXI6bz1nZXRWaXNpdEZuLG5vZGVUeXBlR2V0dGVyOmk9Z2V0Tm9kZVR5cGUsYnJlYWtTeW1ib2w6YT1VdSxkZWxldGVOb2RlU3ltYm9sOnU9bnVsbCxza2lwVmlzaXRpbmdOb2RlU3ltYm9sOl89ITEsZXhwb3NlRWRpdHM6dz0hMX09e30pPT57Y29uc3QgeD1TeW1ib2woInNraXAiKSxDPW5ldyBBcnJheShzLmxlbmd0aCkuZmlsbCh4KTtyZXR1cm57YXN5bmMgZW50ZXIoaixMLEIsJCxWLFUpe2xldCB6PWosWT0hMTtjb25zdCBaPXsuLi5VLHJlcGxhY2VXaXRoKHMsbyl7VS5yZXBsYWNlV2l0aChzLG8pLHo9c319O2ZvcihsZXQgaj0wO2o8cy5sZW5ndGg7ais9MSlpZihDW2pdPT09eCl7Y29uc3QgeD1vKHNbal0saSh6KSwhMSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHgpe2NvbnN0IG89YXdhaXQgeC5jYWxsKHNbal0seixMLEIsJCxWLFopO2lmKG89PT1fKUNbal09ejtlbHNlIGlmKG89PT1hKUNbal09YTtlbHNle2lmKG89PT11KXJldHVybiBvO2lmKHZvaWQgMCE9PW8pe2lmKCF3KXJldHVybiBvO3o9byxZPSEwfX19fXJldHVybiBZP3o6dm9pZCAwfSxhc3luYyBsZWF2ZSh1LHcsaixMLEIsJCl7bGV0IFY9dTtjb25zdCBVPXsuLi4kLHJlcGxhY2VXaXRoKHMsbyl7JC5yZXBsYWNlV2l0aChzLG8pLFY9c319O2ZvcihsZXQgdT0wO3U8cy5sZW5ndGg7dSs9MSlpZihDW3VdPT09eCl7Y29uc3QgeD1vKHNbdV0saShWKSwhMCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHgpe2NvbnN0IG89YXdhaXQgeC5jYWxsKHNbdV0sVix3LGosTCxCLFUpO2lmKG89PT1hKUNbdV09YTtlbHNlIGlmKHZvaWQgMCE9PW8mJm8hPT1fKXJldHVybiBvfX1lbHNlIENbdV09PT1WJiYoQ1t1XT14KX19fTtjb25zdCB2aXNpdD0ocyxvLHtrZXlNYXA6aT1udWxsLHN0YXRlOmE9e30sYnJlYWtTeW1ib2w6dT1VdSxkZWxldGVOb2RlU3ltYm9sOl89bnVsbCxza2lwVmlzaXRpbmdOb2RlU3ltYm9sOnc9ITEsdmlzaXRGbkdldHRlcjp4PWdldFZpc2l0Rm4sbm9kZVR5cGVHZXR0ZXI6Qz1nZXROb2RlVHlwZSxub2RlUHJlZGljYXRlOmo9aXNOb2RlLG5vZGVDbG9uZUZuOkw9Y2xvbmVOb2RlLGRldGVjdEN5Y2xlczpCPSEwfT17fSk9Pntjb25zdCAkPWl8fHt9O2xldCBWLFUsej1BcnJheS5pc0FycmF5KHMpLFk9W3NdLFo9LTEsZWU9W10saWU9cztjb25zdCBhZT1bXSxjZT1bXTtkb3taKz0xO2NvbnN0IHM9Wj09PVkubGVuZ3RoO2xldCBpO2NvbnN0IGRlPXMmJjAhPT1lZS5sZW5ndGg7aWYocyl7aWYoaT0wPT09Y2UubGVuZ3RoP3ZvaWQgMDphZS5wb3AoKSxpZT1VLFU9Y2UucG9wKCksZGUpaWYoeil7aWU9aWUuc2xpY2UoKTtsZXQgcz0wO2Zvcihjb25zdFtvLGldb2YgZWUpe2NvbnN0IGE9by1zO2k9PT1fPyhpZS5zcGxpY2UoYSwxKSxzKz0xKTppZVthXT1pfX1lbHNle2llPUwoaWUpO2Zvcihjb25zdFtzLG9db2YgZWUpaWVbc109b31aPVYuaW5kZXgsWT1WLmtleXMsZWU9Vi5lZGl0cyx6PVYuaW5BcnJheSxWPVYucHJldn1lbHNlIGlmKFUhPT1fJiZ2b2lkIDAhPT1VKXtpZihpPXo/WjpZW1pdLGllPVVbaV0saWU9PT1ffHx2b2lkIDA9PT1pZSljb250aW51ZTthZS5wdXNoKGkpfWxldCBmZTtpZighQXJyYXkuaXNBcnJheShpZSkpe3ZhciBsZTtpZighaihpZSkpdGhyb3cgbmV3IEdvKGBJbnZhbGlkIEFTVCBOb2RlOiAgJHtTdHJpbmcoaWUpfWAse25vZGU6aWV9KTtpZihCJiZjZS5pbmNsdWRlcyhpZSkpe2FlLnBvcCgpO2NvbnRpbnVlfWNvbnN0IF89eChvLEMoaWUpLHMpO2lmKF8pe2Zvcihjb25zdFtzLGldb2YgT2JqZWN0LmVudHJpZXMoYSkpb1tzXT1pO2NvbnN0IHU9e3JlcGxhY2VXaXRoKG8sYSl7ImZ1bmN0aW9uIj09dHlwZW9mIGE/YShvLGllLGksVSxhZSxjZSk6VSYmKFVbaV09byksc3x8KGllPW8pfX07ZmU9Xy5jYWxsKG8saWUsaSxVLGFlLGNlLHUpfWlmKCJmdW5jdGlvbiI9PXR5cGVvZihudWxsPT09KGxlPWZlKXx8dm9pZCAwPT09bGU/dm9pZCAwOmxlLnRoZW4pKXRocm93IG5ldyBHbygiQXN5bmMgdmlzaXRvciBub3Qgc3VwcG9ydGVkIGluIHN5bmMgbW9kZSIse3Zpc2l0b3I6byx2aXNpdEZuOl99KTtpZihmZT09PXUpYnJlYWs7aWYoZmU9PT13KXtpZighcyl7YWUucG9wKCk7Y29udGludWV9fWVsc2UgaWYodm9pZCAwIT09ZmUmJihlZS5wdXNoKFtpLGZlXSksIXMpKXtpZighaihmZSkpe2FlLnBvcCgpO2NvbnRpbnVlfWllPWZlfX12YXIgcGU7aWYodm9pZCAwPT09ZmUmJmRlJiZlZS5wdXNoKFtpLGllXSksIXMpVj17aW5BcnJheTp6LGluZGV4Olosa2V5czpZLGVkaXRzOmVlLHByZXY6Vn0sej1BcnJheS5pc0FycmF5KGllKSxZPXo/aWU6bnVsbCE9PShwZT0kW0MoaWUpXSkmJnZvaWQgMCE9PXBlP3BlOltdLFo9LTEsZWU9W10sVSE9PV8mJnZvaWQgMCE9PVUmJmNlLnB1c2goVSksVT1pZX13aGlsZSh2b2lkIDAhPT1WKTtyZXR1cm4gMCE9PWVlLmxlbmd0aD9lZVtlZS5sZW5ndGgtMV1bMV06c307dmlzaXRbU3ltYm9sLmZvcigibm9kZWpzLnV0aWwucHJvbWlzaWZ5LmN1c3RvbSIpXT1hc3luYyhzLG8se2tleU1hcDppPW51bGwsc3RhdGU6YT17fSxicmVha1N5bWJvbDp1PVV1LGRlbGV0ZU5vZGVTeW1ib2w6Xz1udWxsLHNraXBWaXNpdGluZ05vZGVTeW1ib2w6dz0hMSx2aXNpdEZuR2V0dGVyOng9Z2V0VmlzaXRGbixub2RlVHlwZUdldHRlcjpDPWdldE5vZGVUeXBlLG5vZGVQcmVkaWNhdGU6aj1pc05vZGUsbm9kZUNsb25lRm46TD1jbG9uZU5vZGUsZGV0ZWN0Q3ljbGVzOkI9ITB9PXt9KT0+e2NvbnN0ICQ9aXx8e307bGV0IFYsVSx6PUFycmF5LmlzQXJyYXkocyksWT1bc10sWj0tMSxlZT1bXSxpZT1zO2NvbnN0IGFlPVtdLGNlPVtdO2Rve1orPTE7Y29uc3Qgcz1aPT09WS5sZW5ndGg7bGV0IGk7Y29uc3QgcGU9cyYmMCE9PWVlLmxlbmd0aDtpZihzKXtpZihpPTA9PT1jZS5sZW5ndGg/dm9pZCAwOmFlLnBvcCgpLGllPVUsVT1jZS5wb3AoKSxwZSlpZih6KXtpZT1pZS5zbGljZSgpO2xldCBzPTA7Zm9yKGNvbnN0W28saV1vZiBlZSl7Y29uc3QgYT1vLXM7aT09PV8/KGllLnNwbGljZShhLDEpLHMrPTEpOmllW2FdPWl9fWVsc2V7aWU9TChpZSk7Zm9yKGNvbnN0W3Msb11vZiBlZSlpZVtzXT1vfVo9Vi5pbmRleCxZPVYua2V5cyxlZT1WLmVkaXRzLHo9Vi5pbkFycmF5LFY9Vi5wcmV2fWVsc2UgaWYoVSE9PV8mJnZvaWQgMCE9PVUpe2lmKGk9ej9aOllbWl0saWU9VVtpXSxpZT09PV98fHZvaWQgMD09PWllKWNvbnRpbnVlO2FlLnB1c2goaSl9bGV0IGRlO2lmKCFBcnJheS5pc0FycmF5KGllKSl7aWYoIWooaWUpKXRocm93IG5ldyBHbyhgSW52YWxpZCBBU1QgTm9kZTogJHtTdHJpbmcoaWUpfWAse25vZGU6aWV9KTtpZihCJiZjZS5pbmNsdWRlcyhpZSkpe2FlLnBvcCgpO2NvbnRpbnVlfWNvbnN0IF89eChvLEMoaWUpLHMpO2lmKF8pe2Zvcihjb25zdFtzLGldb2YgT2JqZWN0LmVudHJpZXMoYSkpb1tzXT1pO2NvbnN0IHU9e3JlcGxhY2VXaXRoKG8sYSl7ImZ1bmN0aW9uIj09dHlwZW9mIGE/YShvLGllLGksVSxhZSxjZSk6VSYmKFVbaV09byksc3x8KGllPW8pfX07ZGU9YXdhaXQgXy5jYWxsKG8saWUsaSxVLGFlLGNlLHUpfWlmKGRlPT09dSlicmVhaztpZihkZT09PXcpe2lmKCFzKXthZS5wb3AoKTtjb250aW51ZX19ZWxzZSBpZih2b2lkIDAhPT1kZSYmKGVlLnB1c2goW2ksZGVdKSwhcykpe2lmKCFqKGRlKSl7YWUucG9wKCk7Y29udGludWV9aWU9ZGV9fXZhciBsZTtpZih2b2lkIDA9PT1kZSYmcGUmJmVlLnB1c2goW2ksaWVdKSwhcylWPXtpbkFycmF5OnosaW5kZXg6WixrZXlzOlksZWRpdHM6ZWUscHJldjpWfSx6PUFycmF5LmlzQXJyYXkoaWUpLFk9ej9pZTpudWxsIT09KGxlPSRbQyhpZSldKSYmdm9pZCAwIT09bGU/bGU6W10sWj0tMSxlZT1bXSxVIT09XyYmdm9pZCAwIT09VSYmY2UucHVzaChVKSxVPWllfXdoaWxlKHZvaWQgMCE9PVYpO3JldHVybiAwIT09ZWUubGVuZ3RoP2VlW2VlLmxlbmd0aC0xXVsxXTpzfTtjb25zdCB6dT1jbGFzcyBDbG9uZUVycm9yIGV4dGVuZHMgR297dmFsdWU7Y29uc3RydWN0b3IocyxvKXtzdXBlcihzLG8pLHZvaWQgMCE9PW8mJih0aGlzLnZhbHVlPW8udmFsdWUpfX07Y29uc3QgV3U9Y2xhc3MgRGVlcENsb25lRXJyb3IgZXh0ZW5kcyB6dXt9O2NvbnN0IEp1PWNsYXNzIFNoYWxsb3dDbG9uZUVycm9yIGV4dGVuZHMgenV7fSxjbG9uZURlZXA9KHMsbz17fSk9Pntjb25zdHt2aXNpdGVkOmk9bmV3IFdlYWtNYXB9PW8sYT17Li4ubyx2aXNpdGVkOml9O2lmKGkuaGFzKHMpKXJldHVybiBpLmdldChzKTtpZihzIGluc3RhbmNlb2YgU3UuS2V5VmFsdWVQYWlyKXtjb25zdHtrZXk6byx2YWx1ZTp1fT1zLF89anUobyk/Y2xvbmVEZWVwKG8sYSk6byx3PWp1KHUpP2Nsb25lRGVlcCh1LGEpOnUseD1uZXcgU3UuS2V5VmFsdWVQYWlyKF8sdyk7cmV0dXJuIGkuc2V0KHMseCkseH1pZihzIGluc3RhbmNlb2YgU3Uub3Qpe2NvbnN0IG1hcHBlcj1zPT5jbG9uZURlZXAocyxhKSxvPVsuLi5zXS5tYXAobWFwcGVyKSx1PW5ldyBTdS5vdChvKTtyZXR1cm4gaS5zZXQocyx1KSx1fWlmKHMgaW5zdGFuY2VvZiBTdS5HNil7Y29uc3QgbWFwcGVyPXM9PmNsb25lRGVlcChzLGEpLG89Wy4uLnNdLm1hcChtYXBwZXIpLHU9bmV3IFN1Lkc2KG8pO3JldHVybiBpLnNldChzLHUpLHV9aWYoanUocykpe2NvbnN0IG89Y2xvbmVTaGFsbG93KHMpO2lmKGkuc2V0KHMsbykscy5jb250ZW50KWlmKGp1KHMuY29udGVudCkpby5jb250ZW50PWNsb25lRGVlcChzLmNvbnRlbnQsYSk7ZWxzZSBpZihzLmNvbnRlbnQgaW5zdGFuY2VvZiBTdS5LZXlWYWx1ZVBhaXIpby5jb250ZW50PWNsb25lRGVlcChzLmNvbnRlbnQsYSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KHMuY29udGVudCkpe2NvbnN0IG1hcHBlcj1zPT5jbG9uZURlZXAocyxhKTtvLmNvbnRlbnQ9cy5jb250ZW50Lm1hcChtYXBwZXIpfWVsc2Ugby5jb250ZW50PXMuY29udGVudDtlbHNlIG8uY29udGVudD1zLmNvbnRlbnQ7cmV0dXJuIG99dGhyb3cgbmV3IFd1KCJWYWx1ZSBwcm92aWRlZCB0byBjbG9uZURlZXAgZnVuY3Rpb24gY291bGRuJ3QgYmUgY2xvbmVkIix7dmFsdWU6c30pfTtjbG9uZURlZXAuc2FmZT1zPT57dHJ5e3JldHVybiBjbG9uZURlZXAocyl9Y2F0Y2h7cmV0dXJuIHN9fTtjb25zdCBjbG9uZVNoYWxsb3dLZXlWYWx1ZVBhaXI9cz0+e2NvbnN0e2tleTpvLHZhbHVlOml9PXM7cmV0dXJuIG5ldyBTdS5LZXlWYWx1ZVBhaXIobyxpKX0sY2xvbmVTaGFsbG93RWxlbWVudD1zPT57Y29uc3Qgbz1uZXcgcy5jb25zdHJ1Y3RvcjtpZihvLmVsZW1lbnQ9cy5lbGVtZW50LHMubWV0YS5sZW5ndGg+MCYmKG8uX21ldGE9Y2xvbmVEZWVwKHMubWV0YSkpLHMuYXR0cmlidXRlcy5sZW5ndGg+MCYmKG8uX2F0dHJpYnV0ZXM9Y2xvbmVEZWVwKHMuYXR0cmlidXRlcykpLGp1KHMuY29udGVudCkpe2NvbnN0IGk9cy5jb250ZW50O28uY29udGVudD1jbG9uZVNoYWxsb3dFbGVtZW50KGkpfWVsc2UgQXJyYXkuaXNBcnJheShzLmNvbnRlbnQpP28uY29udGVudD1bLi4ucy5jb250ZW50XTpzLmNvbnRlbnQgaW5zdGFuY2VvZiBTdS5LZXlWYWx1ZVBhaXI/by5jb250ZW50PWNsb25lU2hhbGxvd0tleVZhbHVlUGFpcihzLmNvbnRlbnQpOm8uY29udGVudD1zLmNvbnRlbnQ7cmV0dXJuIG99LGNsb25lU2hhbGxvdz1zPT57aWYocyBpbnN0YW5jZW9mIFN1LktleVZhbHVlUGFpcilyZXR1cm4gY2xvbmVTaGFsbG93S2V5VmFsdWVQYWlyKHMpO2lmKHMgaW5zdGFuY2VvZiBTdS5vdClyZXR1cm4ocz0+e2NvbnN0IG89Wy4uLnNdO3JldHVybiBuZXcgU3Uub3Qobyl9KShzKTtpZihzIGluc3RhbmNlb2YgU3UuRzYpcmV0dXJuKHM9Pntjb25zdCBvPVsuLi5zXTtyZXR1cm4gbmV3IFN1Lkc2KG8pfSkocyk7aWYoanUocykpcmV0dXJuIGNsb25lU2hhbGxvd0VsZW1lbnQocyk7dGhyb3cgbmV3IEp1KCJWYWx1ZSBwcm92aWRlZCB0byBjbG9uZVNoYWxsb3cgZnVuY3Rpb24gY291bGRuJ3QgYmUgY2xvbmVkIix7dmFsdWU6c30pfTtjbG9uZVNoYWxsb3cuc2FmZT1zPT57dHJ5e3JldHVybiBjbG9uZVNoYWxsb3cocyl9Y2F0Y2h7cmV0dXJuIHN9fTtjb25zdCB2aXNpdG9yX2dldE5vZGVUeXBlPXM9Pk11KHMpPyJPYmplY3RFbGVtZW50IjpSdShzKT8iQXJyYXlFbGVtZW50IjpEdShzKT8iTWVtYmVyRWxlbWVudCI6SXUocyk/IlN0cmluZ0VsZW1lbnQiOk51KHMpPyJCb29sZWFuRWxlbWVudCI6UHUocyk/Ik51bWJlckVsZW1lbnQiOlR1KHMpPyJOdWxsRWxlbWVudCI6THUocyk/IkxpbmtFbGVtZW50IjpGdShzKT8iUmVmRWxlbWVudCI6dm9pZCAwLHZpc2l0b3JfY2xvbmVOb2RlPXM9Pmp1KHMpP2Nsb25lU2hhbGxvdyhzKTpjbG9uZU5vZGUocyksSHU9cGlwZSh2aXNpdG9yX2dldE5vZGVUeXBlLEpjKSxLdT17T2JqZWN0RWxlbWVudDpbImNvbnRlbnQiXSxBcnJheUVsZW1lbnQ6WyJjb250ZW50Il0sTWVtYmVyRWxlbWVudDpbImtleSIsInZhbHVlIl0sU3RyaW5nRWxlbWVudDpbXSxCb29sZWFuRWxlbWVudDpbXSxOdW1iZXJFbGVtZW50OltdLE51bGxFbGVtZW50OltdLFJlZkVsZW1lbnQ6W10sTGlua0VsZW1lbnQ6W10sQW5ub3RhdGlvbjpbXSxDb21tZW50OltdLFBhcnNlUmVzdWx0RWxlbWVudDpbImNvbnRlbnQiXSxTb3VyY2VNYXA6WyJjb250ZW50Il19O2NsYXNzIFByZWRpY2F0ZVZpc2l0b3J7cmVzdWx0O3ByZWRpY2F0ZTtyZXR1cm5PblRydWU7cmV0dXJuT25GYWxzZTtjb25zdHJ1Y3Rvcih7cHJlZGljYXRlOnM9ZXNfRixyZXR1cm5PblRydWU6byxyZXR1cm5PbkZhbHNlOml9PXt9KXt0aGlzLnJlc3VsdD1bXSx0aGlzLnByZWRpY2F0ZT1zLHRoaXMucmV0dXJuT25UcnVlPW8sdGhpcy5yZXR1cm5PbkZhbHNlPWl9ZW50ZXIocyl7cmV0dXJuIHRoaXMucHJlZGljYXRlKHMpPyh0aGlzLnJlc3VsdC5wdXNoKHMpLHRoaXMucmV0dXJuT25UcnVlKTp0aGlzLnJldHVybk9uRmFsc2V9fWNvbnN0IHZpc2l0b3JfdmlzaXQ9KHMsbyx7a2V5TWFwOmk9S3UsLi4uYX09e30pPT52aXNpdChzLG8se2tleU1hcDppLG5vZGVUeXBlR2V0dGVyOnZpc2l0b3JfZ2V0Tm9kZVR5cGUsbm9kZVByZWRpY2F0ZTpIdSxub2RlQ2xvbmVGbjp2aXNpdG9yX2Nsb25lTm9kZSwuLi5hfSk7dmlzaXRvcl92aXNpdFtTeW1ib2wuZm9yKCJub2RlanMudXRpbC5wcm9taXNpZnkuY3VzdG9tIildPWFzeW5jKHMsbyx7a2V5TWFwOmk9S3UsLi4uYX09e30pPT52aXNpdFtTeW1ib2wuZm9yKCJub2RlanMudXRpbC5wcm9taXNpZnkuY3VzdG9tIildKHMsbyx7a2V5TWFwOmksbm9kZVR5cGVHZXR0ZXI6dmlzaXRvcl9nZXROb2RlVHlwZSxub2RlUHJlZGljYXRlOkh1LG5vZGVDbG9uZUZuOnZpc2l0b3JfY2xvbmVOb2RlLC4uLmF9KTtjb25zdCBub2RlVHlwZUdldHRlcj1zPT4ic3RyaW5nIj09dHlwZW9mKG51bGw9PXM/dm9pZCAwOnMudHlwZSk/cy50eXBlOnZpc2l0b3JfZ2V0Tm9kZVR5cGUocyksR3U9e0VwaGVtZXJhbE9iamVjdDpbImNvbnRlbnQiXSxFcGhlbWVyYWxBcnJheTpbImNvbnRlbnQiXSwuLi5LdX0sdmFsdWVfdmlzaXRvcl92aXNpdD0ocyxvLHtrZXlNYXA6aT1HdSwuLi5hfT17fSk9PnZpc2l0b3JfdmlzaXQocyxvLHtrZXlNYXA6aSxub2RlVHlwZUdldHRlcixub2RlUHJlZGljYXRlOmVzX1QsZGV0ZWN0Q3ljbGVzOiExLGRlbGV0ZU5vZGVTeW1ib2w6U3ltYm9sLmZvcigiZGVsZXRlLW5vZGUiKSxza2lwVmlzaXRpbmdOb2RlU3ltYm9sOlN5bWJvbC5mb3IoInNraXAtdmlzaXRpbmctbm9kZSIpLC4uLmF9KTt2YWx1ZV92aXNpdG9yX3Zpc2l0W1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLnByb21pc2lmeS5jdXN0b20iKV09YXN5bmMocyx7a2V5TWFwOm89R3UsLi4uaX09e30pPT52aXNpdG9yX3Zpc2l0W1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLnByb21pc2lmeS5jdXN0b20iKV0ocyx2aXNpdG9yLHtrZXlNYXA6byxub2RlVHlwZUdldHRlcixub2RlUHJlZGljYXRlOmVzX1QsZGV0ZWN0Q3ljbGVzOiExLGRlbGV0ZU5vZGVTeW1ib2w6U3ltYm9sLmZvcigiZGVsZXRlLW5vZGUiKSxza2lwVmlzaXRpbmdOb2RlU3ltYm9sOlN5bWJvbC5mb3IoInNraXAtdmlzaXRpbmctbm9kZSIpLC4uLml9KTtjb25zdCBZdT1jbGFzcyBFcGhlbWVyYWxBcnJheXt0eXBlPSJFcGhlbWVyYWxBcnJheSI7Y29udGVudD1bXTtyZWZlcmVuY2U9dm9pZCAwO2NvbnN0cnVjdG9yKHMpe3RoaXMuY29udGVudD1zLHRoaXMucmVmZXJlbmNlPVtdfXRvUmVmZXJlbmNlKCl7cmV0dXJuIHRoaXMucmVmZXJlbmNlfXRvQXJyYXkoKXtyZXR1cm4gdGhpcy5yZWZlcmVuY2UucHVzaCguLi50aGlzLmNvbnRlbnQpLHRoaXMucmVmZXJlbmNlfX07Y29uc3QgWHU9Y2xhc3MgRXBoZW1lcmFsT2JqZWN0e3R5cGU9IkVwaGVtZXJhbE9iamVjdCI7Y29udGVudD1bXTtyZWZlcmVuY2U9dm9pZCAwO2NvbnN0cnVjdG9yKHMpe3RoaXMuY29udGVudD1zLHRoaXMucmVmZXJlbmNlPXt9fXRvUmVmZXJlbmNlKCl7cmV0dXJuIHRoaXMucmVmZXJlbmNlfXRvT2JqZWN0KCl7cmV0dXJuIE9iamVjdC5hc3NpZ24odGhpcy5yZWZlcmVuY2UsT2JqZWN0LmZyb21FbnRyaWVzKHRoaXMuY29udGVudCkpfX07Y2xhc3MgVmlzaXRvcntPYmplY3RFbGVtZW50PXtlbnRlcjpzPT57aWYodGhpcy5yZWZlcmVuY2VzLmhhcyhzKSlyZXR1cm4gdGhpcy5yZWZlcmVuY2VzLmdldChzKS50b1JlZmVyZW5jZSgpO2NvbnN0IG89bmV3IFh1KHMuY29udGVudCk7cmV0dXJuIHRoaXMucmVmZXJlbmNlcy5zZXQocyxvKSxvfX07RXBoZW1lcmFsT2JqZWN0PXtsZWF2ZTpzPT5zLnRvT2JqZWN0KCl9O01lbWJlckVsZW1lbnQ9e2VudGVyOnM9PltzLmtleSxzLnZhbHVlXX07QXJyYXlFbGVtZW50PXtlbnRlcjpzPT57aWYodGhpcy5yZWZlcmVuY2VzLmhhcyhzKSlyZXR1cm4gdGhpcy5yZWZlcmVuY2VzLmdldChzKS50b1JlZmVyZW5jZSgpO2NvbnN0IG89bmV3IFl1KHMuY29udGVudCk7cmV0dXJuIHRoaXMucmVmZXJlbmNlcy5zZXQocyxvKSxvfX07RXBoZW1lcmFsQXJyYXk9e2xlYXZlOnM9PnMudG9BcnJheSgpfTtyZWZlcmVuY2VzPW5ldyBXZWFrTWFwO0Jvb2xlYW5FbGVtZW50KHMpe3JldHVybiBzLnRvVmFsdWUoKX1OdW1iZXJFbGVtZW50KHMpe3JldHVybiBzLnRvVmFsdWUoKX1TdHJpbmdFbGVtZW50KHMpe3JldHVybiBzLnRvVmFsdWUoKX1OdWxsRWxlbWVudCgpe3JldHVybiBudWxsfVJlZkVsZW1lbnQocywuLi5vKXt2YXIgaTtjb25zdCBhPW9bM107cmV0dXJuIkVwaGVtZXJhbE9iamVjdCI9PT0obnVsbD09PShpPWFbYS5sZW5ndGgtMV0pfHx2b2lkIDA9PT1pP3ZvaWQgMDppLnR5cGUpP1N5bWJvbC5mb3IoImRlbGV0ZS1ub2RlIik6U3RyaW5nKHMudG9WYWx1ZSgpKX1MaW5rRWxlbWVudChzKXtyZXR1cm4gSXUocy5ocmVmKT9zLmhyZWYudG9WYWx1ZSgpOiIifX1jb25zdCBzZXJpYWxpemVyc192YWx1ZT1zPT5qdShzKT9JdShzKXx8UHUocyl8fE51KHMpfHxUdShzKT9zLnRvVmFsdWUoKTp2YWx1ZV92aXNpdG9yX3Zpc2l0KHMsbmV3IFZpc2l0b3IpOnM7Y29uc3QgUXU9X2N1cnJ5MygoZnVuY3Rpb24gbWVyZ2VXaXRoS2V5KHMsbyxpKXt2YXIgYSx1PXt9O2ZvcihhIGluIGk9aXx8e30sbz1vfHx7fSlfaGFzKGEsbykmJih1W2FdPV9oYXMoYSxpKT9zKGEsb1thXSxpW2FdKTpvW2FdKTtmb3IoYSBpbiBpKV9oYXMoYSxpKSYmIV9oYXMoYSx1KSYmKHVbYV09aVthXSk7cmV0dXJuIHV9KSk7Y29uc3QgWnU9X2N1cnJ5MygoZnVuY3Rpb24gbWVyZ2VEZWVwV2l0aEtleShzLG8saSl7cmV0dXJuIFF1KChmdW5jdGlvbihvLGksYSl7cmV0dXJuIF9pc09iamVjdChpKSYmX2lzT2JqZWN0KGEpP21lcmdlRGVlcFdpdGhLZXkocyxpLGEpOnMobyxpLGEpfSksbyxpKX0pKTtjb25zdCBlcD1fY3VycnkyKChmdW5jdGlvbiBtZXJnZURlZXBSaWdodChzLG8pe3JldHVybiBadSgoZnVuY3Rpb24ocyxvLGkpe3JldHVybiBpfSkscyxvKX0pKTtjb25zdCB0cD1fY3VycnkyKF9wYXRoKTtjb25zdCBycD1qYSgwLC0xKTtjb25zdCBucD1fY3VycnkyKChmdW5jdGlvbiBhcHBseShzLG8pe3JldHVybiBzLmFwcGx5KHRoaXMsbyl9KSk7Y29uc3Qgc3A9ZGMoTWMpO3ZhciBvcD1fY3VycnkxKChmdW5jdGlvbiBlbXB0eShzKXtyZXR1cm4gbnVsbCE9cyYmImZ1bmN0aW9uIj09dHlwZW9mIHNbImZhbnRhc3ktbGFuZC9lbXB0eSJdP3NbImZhbnRhc3ktbGFuZC9lbXB0eSJdKCk6bnVsbCE9cyYmbnVsbCE9cy5jb25zdHJ1Y3RvciYmImZ1bmN0aW9uIj09dHlwZW9mIHMuY29uc3RydWN0b3JbImZhbnRhc3ktbGFuZC9lbXB0eSJdP3MuY29uc3RydWN0b3JbImZhbnRhc3ktbGFuZC9lbXB0eSJdKCk6bnVsbCE9cyYmImZ1bmN0aW9uIj09dHlwZW9mIHMuZW1wdHk/cy5lbXB0eSgpOm51bGwhPXMmJm51bGwhPXMuY29uc3RydWN0b3ImJiJmdW5jdGlvbiI9PXR5cGVvZiBzLmNvbnN0cnVjdG9yLmVtcHR5P3MuY29uc3RydWN0b3IuZW1wdHkoKTpjYShzKT9bXTpfaXNTdHJpbmcocyk/IiI6X2lzT2JqZWN0KHMpP3t9OkVpKHMpP2Z1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKTpmdW5jdGlvbiBfaXNUeXBlZEFycmF5KHMpe3ZhciBvPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzKTtyZXR1cm4iW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iPT09b3x8IltvYmplY3QgSW50OEFycmF5XSI9PT1vfHwiW29iamVjdCBVaW50OEFycmF5XSI9PT1vfHwiW29iamVjdCBJbnQxNkFycmF5XSI9PT1vfHwiW29iamVjdCBVaW50MTZBcnJheV0iPT09b3x8IltvYmplY3QgSW50MzJBcnJheV0iPT09b3x8IltvYmplY3QgVWludDMyQXJyYXldIj09PW98fCJbb2JqZWN0IEZsb2F0MzJBcnJheV0iPT09b3x8IltvYmplY3QgRmxvYXQ2NEFycmF5XSI9PT1vfHwiW29iamVjdCBCaWdJbnQ2NEFycmF5XSI9PT1vfHwiW29iamVjdCBCaWdVaW50NjRBcnJheV0iPT09b30ocyk/cy5jb25zdHJ1Y3Rvci5mcm9tKCIiKTp2b2lkIDB9KSk7Y29uc3QgaXA9b3A7Y29uc3QgY3A9X2N1cnJ5MSgoZnVuY3Rpb24gaXNFbXB0eShzKXtyZXR1cm4gbnVsbCE9cyYmbmEocyxpcChzKSl9KSk7Y29uc3QgbHA9JGEoMSxNYyhBcnJheS5pc0FycmF5KT9BcnJheS5pc0FycmF5OnBpcGUocmEsSWMoIkFycmF5IikpKTtjb25zdCB1cD1vdShscCxjcCk7dmFyIHBwPSRhKDMsKGZ1bmN0aW9uKHMsbyxpKXt2YXIgYT10cChzLGkpLHU9dHAocnAocyksaSk7aWYoIXNwKGEpJiYhdXAocykpe3ZhciBfPUVhKGEsdSk7cmV0dXJuIG5wKF8sbyl9fSkpO2NvbnN0IGhwPXBwO2NsYXNzIE5hbWVzcGFjZSBleHRlbmRzIFN1Lmcke2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnJlZ2lzdGVyKCJhbm5vdGF0aW9uIixrdSksdGhpcy5yZWdpc3RlcigiY29tbWVudCIsT3UpLHRoaXMucmVnaXN0ZXIoInBhcnNlUmVzdWx0IixDdSksdGhpcy5yZWdpc3Rlcigic291cmNlTWFwIixBdSl9fWNvbnN0IGRwPW5ldyBOYW1lc3BhY2UsY3JlYXRlTmFtZXNwYWNlPXM9Pntjb25zdCBvPW5ldyBOYW1lc3BhY2U7cmV0dXJuIGZ1KHMpJiZvLnVzZShzKSxvfSxmcD1kcCx0b29sYm94PSgpPT4oe3ByZWRpY2F0ZXM6ey4uLmllfSxuYW1lc3BhY2U6ZnB9KSxtcD17dG9vbGJveENyZWF0b3I6dG9vbGJveCx2aXNpdG9yT3B0aW9uczp7bm9kZVR5cGVHZXR0ZXI6dmlzaXRvcl9nZXROb2RlVHlwZSxleHBvc2VFZGl0czohMH19LGRpc3BhdGNoUGx1Z2luc1N5bmM9KHMsbyxpPXt9KT0+e2lmKDA9PT1vLmxlbmd0aClyZXR1cm4gcztjb25zdCBhPWVwKG1wLGkpLHt0b29sYm94Q3JlYXRvcjp1LHZpc2l0b3JPcHRpb25zOl99PWEsdz11KCkseD1vLm1hcCgocz0+cyh3KSkpLEM9bWVyZ2VBbGwoeC5tYXAoTGEoe30sInZpc2l0b3IiKSksey4uLl99KTt4LmZvckVhY2goaHAoWyJwcmUiXSxbXSkpO2NvbnN0IGo9dmlzaXRvcl92aXNpdChzLEMsXyk7cmV0dXJuIHguZm9yRWFjaChocChbInBvc3QiXSxbXSkpLGp9O2Rpc3BhdGNoUGx1Z2luc1N5bmNbU3ltYm9sLmZvcigibm9kZWpzLnV0aWwucHJvbWlzaWZ5LmN1c3RvbSIpXT1hc3luYyhzLG8saT17fSk9PntpZigwPT09by5sZW5ndGgpcmV0dXJuIHM7Y29uc3QgYT1lcChtcCxpKSx7dG9vbGJveENyZWF0b3I6dSx2aXNpdG9yT3B0aW9uczpffT1hLHc9dSgpLHg9by5tYXAoKHM9PnModykpKSxDPW1lcmdlQWxsW1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLnByb21pc2lmeS5jdXN0b20iKV0saj12aXNpdG9yX3Zpc2l0W1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLnByb21pc2lmeS5jdXN0b20iKV0sTD1DKHgubWFwKExhKHt9LCJ2aXNpdG9yIikpLHsuLi5ffSk7YXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKHgubWFwKGhwKFsicHJlIl0sW10pKSk7Y29uc3QgQj1hd2FpdCBqKHMsTCxfKTtyZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKHgubWFwKGhwKFsicG9zdCJdLFtdKSkpLEJ9O2NvbnN0IHJlZnJhY3Q9KHMse1R5cGU6byxwbHVnaW5zOmk9W119KT0+e2NvbnN0IGE9bmV3IG8ocyk7cmV0dXJuIGp1KHMpJiYocy5tZXRhLmxlbmd0aD4wJiYoYS5tZXRhPWNsb25lRGVlcChzLm1ldGEpKSxzLmF0dHJpYnV0ZXMubGVuZ3RoPjAmJihhLmF0dHJpYnV0ZXM9Y2xvbmVEZWVwKHMuYXR0cmlidXRlcykpKSxkaXNwYXRjaFBsdWdpbnNTeW5jKGEsaSx7dG9vbGJveENyZWF0b3I6dG9vbGJveCx2aXNpdG9yT3B0aW9uczp7bm9kZVR5cGVHZXR0ZXI6dmlzaXRvcl9nZXROb2RlVHlwZX19KX0sY3JlYXRlUmVmcmFjdG9yPXM9PihvLGk9e30pPT5yZWZyYWN0KG8sey4uLmksVHlwZTpzfSk7U3UuU2gucmVmcmFjdD1jcmVhdGVSZWZyYWN0b3IoU3UuU2gpLFN1LndFLnJlZnJhY3Q9Y3JlYXRlUmVmcmFjdG9yKFN1LndFKSxTdS5PbS5yZWZyYWN0PWNyZWF0ZVJlZnJhY3RvcihTdS5PbSksU3UuYmQucmVmcmFjdD1jcmVhdGVSZWZyYWN0b3IoU3UuYmQpLFN1Lk9zLnJlZnJhY3Q9Y3JlYXRlUmVmcmFjdG9yKFN1Lk9zKSxTdS5rVC5yZWZyYWN0PWNyZWF0ZVJlZnJhY3RvcihTdS5rVCksU3UuRnQucmVmcmFjdD1jcmVhdGVSZWZyYWN0b3IoU3UuRnQpLFN1LnNJLnJlZnJhY3Q9Y3JlYXRlUmVmcmFjdG9yKFN1LnNJKSxrdS5yZWZyYWN0PWNyZWF0ZVJlZnJhY3RvcihrdSksT3UucmVmcmFjdD1jcmVhdGVSZWZyYWN0b3IoT3UpLEN1LnJlZnJhY3Q9Y3JlYXRlUmVmcmFjdG9yKEN1KSxBdS5yZWZyYWN0PWNyZWF0ZVJlZnJhY3RvcihBdSk7Y29uc3QgY29tcHV0ZUVkZ2VzPShzLG89bmV3IFdlYWtNYXApPT4oRHUocyk/KG8uc2V0KHMua2V5LHMpLGNvbXB1dGVFZGdlcyhzLmtleSxvKSxvLnNldChzLnZhbHVlLHMpLGNvbXB1dGVFZGdlcyhzLnZhbHVlLG8pKTpzLmNoaWxkcmVuLmZvckVhY2goKGk9PntvLnNldChpLHMpLGNvbXB1dGVFZGdlcyhpLG8pfSkpLG8pO2NvbnN0IGdwPWNsYXNzIFRyYW5zY2x1ZGVyX1RyYW5zY2x1ZGVye2VsZW1lbnQ7ZWRnZXM7Y29uc3RydWN0b3Ioe2VsZW1lbnQ6c30pe3RoaXMuZWxlbWVudD1zfXRyYW5zY2x1ZGUocyxvKXt2YXIgaTtpZihzPT09dGhpcy5lbGVtZW50KXJldHVybiBvO2lmKHM9PT1vKXJldHVybiB0aGlzLmVsZW1lbnQ7dGhpcy5lZGdlcz1udWxsIT09KGk9dGhpcy5lZGdlcykmJnZvaWQgMCE9PWk/aTpjb21wdXRlRWRnZXModGhpcy5lbGVtZW50KTtjb25zdCBhPXRoaXMuZWRnZXMuZ2V0KHMpO3JldHVybiBiYyhhKT92b2lkIDA6KE11KGEpPygocyxvLGkpPT57Y29uc3QgYT1pLmdldChzKTtNdShhKSYmKGEuY29udGVudD1hLm1hcCgoKHUsXyx3KT0+dz09PXM/KGkuZGVsZXRlKHMpLGkuc2V0KG8sYSksbyk6dykpKX0pKHMsbyx0aGlzLmVkZ2VzKTpSdShhKT8oKHMsbyxpKT0+e2NvbnN0IGE9aS5nZXQocyk7UnUoYSkmJihhLmNvbnRlbnQ9YS5tYXAoKHU9PnU9PT1zPyhpLmRlbGV0ZShzKSxpLnNldChvLGEpLG8pOnUpKSl9KShzLG8sdGhpcy5lZGdlcyk6RHUoYSkmJigocyxvLGkpPT57Y29uc3QgYT1pLmdldChzKTtEdShhKSYmKGEua2V5PT09cyYmKGEua2V5PW8saS5kZWxldGUocyksaS5zZXQobyxhKSksYS52YWx1ZT09PXMmJihhLnZhbHVlPW8saS5kZWxldGUocyksaS5zZXQobyxhKSkpfSkocyxvLHRoaXMuZWRnZXMpLHRoaXMuZWxlbWVudCl9fSxmcm9tVVJJUmVmZXJlbmNlPXM9Pntjb25zdCBvPXMuaW5kZXhPZigiIyIpO3JldHVybihzPT57dHJ5e2NvbnN0IG89cy5zdGFydHNXaXRoKCIjIik/cy5zbGljZSgxKTpzO3JldHVybiBkZWNvZGVVUklDb21wb25lbnQobyl9Y2F0Y2h7cmV0dXJuIHN9fSkoLTE9PT1vPyIjIjpzLnN1YnN0cmluZyhvKSl9LHlwPWZ1bmN0aW9uIGZucGFyc2VyKCl7Y29uc3Qgcz1FcCxvPVNwLGk9dGhpcyxhPSJwYXJzZXIuanM6IFBhcnNlcigpOiAiO2kuYXN0PXZvaWQgMCxpLnN0YXRzPXZvaWQgMCxpLnRyYWNlPXZvaWQgMCxpLmNhbGxiYWNrcz1bXTtsZXQgdSxfLHcseCxDLGosTCxCPTAsJD0wLFY9MCxVPTAsej0wLFk9bmV3IGZ1bmN0aW9uIHN5c3RlbURhdGEoKXt0aGlzLnN0YXRlPXMuQUNUSVZFLHRoaXMucGhyYXNlTGVuZ3RoPTAsdGhpcy5yZWZyZXNoPSgpPT57dGhpcy5zdGF0ZT1zLkFDVElWRSx0aGlzLnBocmFzZUxlbmd0aD0wfX07aS5wYXJzZT0oWixlZSxpZSxhZSk9Pntjb25zdCBjZT1gJHthfXBhcnNlKCk6IGA7Qj0wLCQ9MCxWPTAsVT0wLHo9MCx1PXZvaWQgMCxfPXZvaWQgMCx3PXZvaWQgMCx4PXZvaWQgMCxZLnJlZnJlc2goKSxDPXZvaWQgMCxqPXZvaWQgMCxMPXZvaWQgMCx4PW8uc3RyaW5nVG9DaGFycyhpZSksdT1aLnJ1bGVzLF89Wi51ZHRzO2NvbnN0IGxlPWVlLnRvTG93ZXJDYXNlKCk7bGV0IHBlO2Zvcihjb25zdCBzIGluIHUpaWYodS5oYXNPd25Qcm9wZXJ0eShzKSYmbGU9PT11W3NdLmxvd2VyKXtwZT11W3NdLmluZGV4O2JyZWFrfWlmKHZvaWQgMD09PXBlKXRocm93IG5ldyBFcnJvcihgJHtjZX1zdGFydCBydWxlIG5hbWUgJyR7c3RhcnRSdWxlfScgbm90IHJlY29nbml6ZWRgKTsoKCk9Pntjb25zdCBzPWAke2F9aW5pdGlhbGl6ZUNhbGxiYWNrcygpOiBgO2xldCBvLHc7Zm9yKEM9W10saj1bXSxvPTA7bzx1Lmxlbmd0aDtvKz0xKUNbb109dm9pZCAwO2ZvcihvPTA7bzxfLmxlbmd0aDtvKz0xKWpbb109dm9pZCAwO2NvbnN0IHg9W107Zm9yKG89MDtvPHUubGVuZ3RoO28rPTEpeC5wdXNoKHVbb10ubG93ZXIpO2ZvcihvPTA7bzxfLmxlbmd0aDtvKz0xKXgucHVzaChfW29dLmxvd2VyKTtmb3IoY29uc3QgYSBpbiBpLmNhbGxiYWNrcylpZihpLmNhbGxiYWNrcy5oYXNPd25Qcm9wZXJ0eShhKSl7aWYobz14LmluZGV4T2YoYS50b0xvd2VyQ2FzZSgpKSxvPDApdGhyb3cgbmV3IEVycm9yKGAke3N9c3ludGF4IGNhbGxiYWNrICcke2F9JyBub3QgYSBydWxlIG9yIHVkdCBuYW1lYCk7aWYodz1pLmNhbGxiYWNrc1thXT9pLmNhbGxiYWNrc1thXTp2b2lkIDAsImZ1bmN0aW9uIiE9dHlwZW9mIHcmJnZvaWQgMCE9PXcpdGhyb3cgbmV3IEVycm9yKGAke3N9c3ludGF4IGNhbGxiYWNrWyR7YX1dIG11c3QgYmUgZnVuY3Rpb24gcmVmZXJlbmNlIG9yIGZhbHN5KWApO288dS5sZW5ndGg/Q1tvXT13Ompbby11Lmxlbmd0aF09d319KSgpLGkudHJhY2UmJmkudHJhY2UuaW5pdCh1LF8seCksaS5zdGF0cyYmaS5zdGF0cy5pbml0KHUsXyksaS5hc3QmJmkuYXN0LmluaXQodSxfLHgpLEw9YWUsdz1be3R5cGU6cy5STk0saW5kZXg6cGV9XSxvcEV4ZWN1dGUoMCwwKSx3PXZvaWQgMDtsZXQgZGU9ITE7c3dpdGNoKFkuc3RhdGUpe2Nhc2Ugcy5BQ1RJVkU6dGhyb3cgbmV3IEVycm9yKGAke2NlfWZpbmFsIHN0YXRlIHNob3VsZCBuZXZlciBiZSAnQUNUSVZFJ2ApO2Nhc2Ugcy5OT01BVENIOmRlPSExO2JyZWFrO2Nhc2Ugcy5FTVBUWTpjYXNlIHMuTUFUQ0g6ZGU9WS5waHJhc2VMZW5ndGg9PT14Lmxlbmd0aDticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIHN0YXRlIil9cmV0dXJue3N1Y2Nlc3M6ZGUsc3RhdGU6WS5zdGF0ZSxzdGF0ZU5hbWU6cy5pZE5hbWUoWS5zdGF0ZSksbGVuZ3RoOngubGVuZ3RoLG1hdGNoZWQ6WS5waHJhc2VMZW5ndGgsbWF4TWF0Y2hlZDp6LG1heFRyZWVEZXB0aDpWLG5vZGVIaXRzOlV9fTtjb25zdCB2YWxpZGF0ZVJubUNhbGxiYWNrUmVzdWx0PShvLGksdSxfKT0+e2lmKGkucGhyYXNlTGVuZ3RoPnUpe2xldCBzPWAke2F9b3BSTk0oJHtvLm5hbWV9KTogY2FsbGJhY2sgZnVuY3Rpb24gZXJyb3I6IGA7dGhyb3cgcys9YHN5c0RhdGEucGhyYXNlTGVuZ3RoOiAke2kucGhyYXNlTGVuZ3RofWAscys9YCBtdXN0IGJlIDw9IHJlbWFpbmluZyBjaGFyczogJHt1fWAsbmV3IEVycm9yKHMpfXN3aXRjaChpLnN0YXRlKXtjYXNlIHMuQUNUSVZFOmlmKCFfKXRocm93IG5ldyBFcnJvcihgJHthfW9wUk5NKCR7by5uYW1lfSk6IGNhbGxiYWNrIGZ1bmN0aW9uIHJldHVybiBlcnJvci4gQUNUSVZFIHN0YXRlIG5vdCBhbGxvd2VkLmApO2JyZWFrO2Nhc2Ugcy5FTVBUWTppLnBocmFzZUxlbmd0aD0wO2JyZWFrO2Nhc2Ugcy5NQVRDSDowPT09aS5waHJhc2VMZW5ndGgmJihpLnN0YXRlPXMuRU1QVFkpO2JyZWFrO2Nhc2Ugcy5OT01BVENIOmkucGhyYXNlTGVuZ3RoPTA7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYCR7YX1vcFJOTSgke28ubmFtZX0pOiBjYWxsYmFjayBmdW5jdGlvbiByZXR1cm4gZXJyb3IuIFVucmVjb2duaXplZCByZXR1cm4gc3RhdGU6ICR7aS5zdGF0ZX1gKX19LG9wVURUPShvLEMpPT57bGV0ICQsVixVO2NvbnN0IHo9d1tvXSxaPV9bei5pbmRleF07WS5VZHRJbmRleD1aLmluZGV4LEJ8fChVPWkuYXN0JiZpLmFzdC51ZHREZWZpbmVkKHouaW5kZXgpLFUmJihWPXUubGVuZ3RoK3ouaW5kZXgsJD1pLmFzdC5nZXRMZW5ndGgoKSxpLmFzdC5kb3duKFYsWi5uYW1lKSkpO2NvbnN0IGVlPXgubGVuZ3RoLUM7alt6LmluZGV4XShZLHgsQyxMKSwoKG8saSx1KT0+e2lmKGkucGhyYXNlTGVuZ3RoPnUpe2xldCBzPWAke2F9b3BVRFQoJHtvLm5hbWV9KTogY2FsbGJhY2sgZnVuY3Rpb24gZXJyb3I6IGA7dGhyb3cgcys9YHN5c0RhdGEucGhyYXNlTGVuZ3RoOiAke2kucGhyYXNlTGVuZ3RofWAscys9YCBtdXN0IGJlIDw9IHJlbWFpbmluZyBjaGFyczogJHt1fWAsbmV3IEVycm9yKHMpfXN3aXRjaChpLnN0YXRlKXtjYXNlIHMuQUNUSVZFOnRocm93IG5ldyBFcnJvcihgJHthfW9wVURUKCR7by5uYW1lfSkgQUNUSVZFIHN0YXRlIHJldHVybiBub3QgYWxsb3dlZC5gKTtjYXNlIHMuRU1QVFk6aWYoIW8uZW1wdHkpdGhyb3cgbmV3IEVycm9yKGAke2F9b3BVRFQoJHtvLm5hbWV9KSBtYXkgbm90IHJldHVybiBFTVBUWS5gKTtpLnBocmFzZUxlbmd0aD0wO2JyZWFrO2Nhc2Ugcy5NQVRDSDppZigwPT09aS5waHJhc2VMZW5ndGgpe2lmKCFvLmVtcHR5KXRocm93IG5ldyBFcnJvcihgJHthfW9wVURUKCR7by5uYW1lfSkgbWF5IG5vdCByZXR1cm4gRU1QVFkuYCk7aS5zdGF0ZT1zLkVNUFRZfWJyZWFrO2Nhc2Ugcy5OT01BVENIOmkucGhyYXNlTGVuZ3RoPTA7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYCR7YX1vcFVEVCgke28ubmFtZX0pOiBjYWxsYmFjayBmdW5jdGlvbiByZXR1cm4gZXJyb3IuIFVucmVjb2duaXplZCByZXR1cm4gc3RhdGU6ICR7aS5zdGF0ZX1gKX19KShaLFksZWUpLEJ8fFUmJihZLnN0YXRlPT09cy5OT01BVENIP2kuYXN0LnNldExlbmd0aCgkKTppLmFzdC51cChWLFoubmFtZSxDLFkucGhyYXNlTGVuZ3RoKSl9LG9wRXhlY3V0ZT0obyxfKT0+e2NvbnN0IGo9YCR7YX1vcEV4ZWN1dGUoKTogYCxaPXdbb107c3dpdGNoKFUrPTEsJD5WJiYoVj0kKSwkKz0xLFkucmVmcmVzaCgpLGkudHJhY2UmJmkudHJhY2UuZG93bihaLF8pLFoudHlwZSl7Y2FzZSBzLkFMVDooKG8saSk9Pntjb25zdCBhPXdbb107Zm9yKGxldCBvPTA7bzxhLmNoaWxkcmVuLmxlbmd0aCYmKG9wRXhlY3V0ZShhLmNoaWxkcmVuW29dLGkpLFkuc3RhdGU9PT1zLk5PTUFUQ0gpO28rPTEpO30pKG8sXyk7YnJlYWs7Y2FzZSBzLkNBVDooKG8sYSk9PntsZXQgdSxfLHgsQztjb25zdCBqPXdbb107aS5hc3QmJihfPWkuYXN0LmdldExlbmd0aCgpKSx1PSEwLHg9YSxDPTA7Zm9yKGxldCBvPTA7bzxqLmNoaWxkcmVuLmxlbmd0aDtvKz0xKXtpZihvcEV4ZWN1dGUoai5jaGlsZHJlbltvXSx4KSxZLnN0YXRlPT09cy5OT01BVENIKXt1PSExO2JyZWFrfXgrPVkucGhyYXNlTGVuZ3RoLEMrPVkucGhyYXNlTGVuZ3RofXU/KFkuc3RhdGU9MD09PUM/cy5FTVBUWTpzLk1BVENILFkucGhyYXNlTGVuZ3RoPUMpOihZLnN0YXRlPXMuTk9NQVRDSCxZLnBocmFzZUxlbmd0aD0wLGkuYXN0JiZpLmFzdC5zZXRMZW5ndGgoXykpfSkobyxfKTticmVhaztjYXNlIHMuUkVQOigobyxhKT0+e2xldCB1LF8sQyxqO2NvbnN0IEw9d1tvXTtpZigwPT09TC5tYXgpcmV0dXJuIFkuc3RhdGU9cy5FTVBUWSx2b2lkKFkucGhyYXNlTGVuZ3RoPTApO2ZvcihfPWEsQz0wLGo9MCxpLmFzdCYmKHU9aS5hc3QuZ2V0TGVuZ3RoKCkpOyEoXz49eC5sZW5ndGgpJiYob3BFeGVjdXRlKG8rMSxfKSxZLnN0YXRlIT09cy5OT01BVENIKSYmWS5zdGF0ZSE9PXMuRU1QVFkmJihqKz0xLEMrPVkucGhyYXNlTGVuZ3RoLF8rPVkucGhyYXNlTGVuZ3RoLGohPT1MLm1heCk7KTtZLnN0YXRlPT09cy5FTVBUWXx8aj49TC5taW4/KFkuc3RhdGU9MD09PUM/cy5FTVBUWTpzLk1BVENILFkucGhyYXNlTGVuZ3RoPUMpOihZLnN0YXRlPXMuTk9NQVRDSCxZLnBocmFzZUxlbmd0aD0wLGkuYXN0JiZpLmFzdC5zZXRMZW5ndGgodSkpfSkobyxfKTticmVhaztjYXNlIHMuUk5NOigobyxhKT0+e2xldCBfLGosJDtjb25zdCBWPXdbb10sVT11W1YuaW5kZXhdLHo9Q1tVLmluZGV4XTtpZihCfHwoaj1pLmFzdCYmaS5hc3QucnVsZURlZmluZWQoVi5pbmRleCksaiYmKF89aS5hc3QuZ2V0TGVuZ3RoKCksaS5hc3QuZG93bihWLmluZGV4LHVbVi5pbmRleF0ubmFtZSkpKSx6KXtjb25zdCBvPXgubGVuZ3RoLWE7eihZLHgsYSxMKSx2YWxpZGF0ZVJubUNhbGxiYWNrUmVzdWx0KFUsWSxvLCEwKSxZLnN0YXRlPT09cy5BQ1RJVkUmJigkPXcsdz1VLm9wY29kZXMsb3BFeGVjdXRlKDAsYSksdz0kLHooWSx4LGEsTCksdmFsaWRhdGVSbm1DYWxsYmFja1Jlc3VsdChVLFksbywhMSkpfWVsc2UgJD13LHc9VS5vcGNvZGVzLG9wRXhlY3V0ZSgwLGEsWSksdz0kO0J8fGomJihZLnN0YXRlPT09cy5OT01BVENIP2kuYXN0LnNldExlbmd0aChfKTppLmFzdC51cChWLmluZGV4LFUubmFtZSxhLFkucGhyYXNlTGVuZ3RoKSl9KShvLF8pO2JyZWFrO2Nhc2Ugcy5UUkc6KChvLGkpPT57Y29uc3QgYT13W29dO1kuc3RhdGU9cy5OT01BVENILGk8eC5sZW5ndGgmJmEubWluPD14W2ldJiZ4W2ldPD1hLm1heCYmKFkuc3RhdGU9cy5NQVRDSCxZLnBocmFzZUxlbmd0aD0xKX0pKG8sXyk7YnJlYWs7Y2FzZSBzLlRCUzooKG8saSk9Pntjb25zdCBhPXdbb10sdT1hLnN0cmluZy5sZW5ndGg7aWYoWS5zdGF0ZT1zLk5PTUFUQ0gsaSt1PD14Lmxlbmd0aCl7Zm9yKGxldCBzPTA7czx1O3MrPTEpaWYoeFtpK3NdIT09YS5zdHJpbmdbc10pcmV0dXJuO1kuc3RhdGU9cy5NQVRDSCxZLnBocmFzZUxlbmd0aD11fX0pKG8sXyk7YnJlYWs7Y2FzZSBzLlRMUzooKG8saSk9PntsZXQgYTtjb25zdCB1PXdbb107WS5zdGF0ZT1zLk5PTUFUQ0g7Y29uc3QgXz11LnN0cmluZy5sZW5ndGg7aWYoMCE9PV8pe2lmKGkrXzw9eC5sZW5ndGgpe2ZvcihsZXQgcz0wO3M8XztzKz0xKWlmKGE9eFtpK3NdLGE+PTY1JiZhPD05MCYmKGErPTMyKSxhIT09dS5zdHJpbmdbc10pcmV0dXJuO1kuc3RhdGU9cy5NQVRDSCxZLnBocmFzZUxlbmd0aD1ffX1lbHNlIFkuc3RhdGU9cy5FTVBUWX0pKG8sXyk7YnJlYWs7Y2FzZSBzLlVEVDpvcFVEVChvLF8pO2JyZWFrO2Nhc2Ugcy5BTkQ6KChvLGkpPT57c3dpdGNoKEIrPTEsb3BFeGVjdXRlKG8rMSxpKSxCLT0xLFkucGhyYXNlTGVuZ3RoPTAsWS5zdGF0ZSl7Y2FzZSBzLkVNUFRZOmNhc2Ugcy5NQVRDSDpZLnN0YXRlPXMuRU1QVFk7YnJlYWs7Y2FzZSBzLk5PTUFUQ0g6WS5zdGF0ZT1zLk5PTUFUQ0g7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYG9wQU5EOiBpbnZhbGlkIHN0YXRlICR7WS5zdGF0ZX1gKX19KShvLF8pO2JyZWFrO2Nhc2Ugcy5OT1Q6KChvLGkpPT57c3dpdGNoKEIrPTEsb3BFeGVjdXRlKG8rMSxpKSxCLT0xLFkucGhyYXNlTGVuZ3RoPTAsWS5zdGF0ZSl7Y2FzZSBzLkVNUFRZOmNhc2Ugcy5NQVRDSDpZLnN0YXRlPXMuTk9NQVRDSDticmVhaztjYXNlIHMuTk9NQVRDSDpZLnN0YXRlPXMuRU1QVFk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYG9wTk9UOiBpbnZhbGlkIHN0YXRlICR7WS5zdGF0ZX1gKX19KShvLF8pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGAke2p9dW5yZWNvZ25pemVkIG9wZXJhdG9yYCl9Qnx8XytZLnBocmFzZUxlbmd0aD56JiYoej1fK1kucGhyYXNlTGVuZ3RoKSxpLnN0YXRzJiZpLnN0YXRzLmNvbGxlY3QoWixZKSxpLnRyYWNlJiZpLnRyYWNlLnVwKFosWS5zdGF0ZSxfLFkucGhyYXNlTGVuZ3RoKSwkLT0xfX0sdnA9ZnVuY3Rpb24gZm5hc3QoKXtjb25zdCBzPUVwLG89U3AsaT10aGlzO2xldCBhLHUsXyx3PTA7Y29uc3QgeD1bXSxDPVtdLGo9W107ZnVuY3Rpb24gaW5kZW50KHMpe2xldCBvPSIiO2Zvcig7cy0tID4wOylvKz0iICI7cmV0dXJuIG99aS5jYWxsYmFja3M9W10saS5pbml0PShzLG8sTCk9PntsZXQgQjtDLmxlbmd0aD0wLGoubGVuZ3RoPTAsdz0wLGE9cyx1PW8sXz1MO2NvbnN0ICQ9W107Zm9yKEI9MDtCPGEubGVuZ3RoO0IrPTEpJC5wdXNoKGFbQl0ubG93ZXIpO2ZvcihCPTA7Qjx1Lmxlbmd0aDtCKz0xKSQucHVzaCh1W0JdLmxvd2VyKTtmb3Iodz1hLmxlbmd0aCt1Lmxlbmd0aCxCPTA7Qjx3O0IrPTEpeFtCXT12b2lkIDA7Zm9yKGNvbnN0IHMgaW4gaS5jYWxsYmFja3MpaWYoaS5jYWxsYmFja3MuaGFzT3duUHJvcGVydHkocykpe2NvbnN0IG89cy50b0xvd2VyQ2FzZSgpO2lmKEI9JC5pbmRleE9mKG8pLEI8MCl0aHJvdyBuZXcgRXJyb3IoYHBhcnNlci5qczogQXN0KCkpOiBpbml0OiBub2RlICcke3N9JyBub3QgYSBydWxlIG9yIHVkdCBuYW1lYCk7eFtCXT1pLmNhbGxiYWNrc1tzXX19LGkucnVsZURlZmluZWQ9cz0+ISF4W3NdLGkudWR0RGVmaW5lZD1zPT4hIXhbYS5sZW5ndGgrc10saS5kb3duPShvLGkpPT57Y29uc3QgYT1qLmxlbmd0aDtyZXR1cm4gQy5wdXNoKGEpLGoucHVzaCh7bmFtZTppLHRoaXNJbmRleDphLHRoYXRJbmRleDp2b2lkIDAsc3RhdGU6cy5TRU1fUFJFLGNhbGxiYWNrSW5kZXg6byxwaHJhc2VJbmRleDp2b2lkIDAscGhyYXNlTGVuZ3RoOnZvaWQgMCxzdGFjazpDLmxlbmd0aH0pLGF9LGkudXA9KG8saSxhLHUpPT57Y29uc3QgXz1qLmxlbmd0aCx3PUMucG9wKCk7cmV0dXJuIGoucHVzaCh7bmFtZTppLHRoaXNJbmRleDpfLHRoYXRJbmRleDp3LHN0YXRlOnMuU0VNX1BPU1QsY2FsbGJhY2tJbmRleDpvLHBocmFzZUluZGV4OmEscGhyYXNlTGVuZ3RoOnUsc3RhY2s6Qy5sZW5ndGh9KSxqW3ddLnRoYXRJbmRleD1fLGpbd10ucGhyYXNlSW5kZXg9YSxqW3ddLnBocmFzZUxlbmd0aD11LF99LGkudHJhbnNsYXRlPW89PntsZXQgaSxhO2ZvcihsZXQgdT0wO3U8ai5sZW5ndGg7dSs9MSlhPWpbdV0saT14W2EuY2FsbGJhY2tJbmRleF0saSYmKGEuc3RhdGU9PT1zLlNFTV9QUkU/aShzLlNFTV9QUkUsXyxhLnBocmFzZUluZGV4LGEucGhyYXNlTGVuZ3RoLG8pOmkmJmkocy5TRU1fUE9TVCxfLGEucGhyYXNlSW5kZXgsYS5waHJhc2VMZW5ndGgsbykpfSxpLnNldExlbmd0aD1zPT57ai5sZW5ndGg9cyxDLmxlbmd0aD1zPjA/altzLTFdLnN0YWNrOjB9LGkuZ2V0TGVuZ3RoPSgpPT5qLmxlbmd0aCxpLnRvWG1sPSgpPT57bGV0IGk9IiIsYT0wO3JldHVybiBpKz0nPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz5cbicsaSs9YDxyb290IG5vZGVzPSIke2oubGVuZ3RoLzJ9IiBjaGFyYWN0ZXJzPSIke18ubGVuZ3RofSI+XG5gLGkrPSJceDNjIS0tIGlucHV0IHN0cmluZyAtLVx4M2VcbiIsaSs9aW5kZW50KGErMiksaSs9by5jaGFyc1RvU3RyaW5nKF8pLGkrPSJcbiIsai5mb3JFYWNoKCh1PT57dS5zdGF0ZT09PXMuU0VNX1BSRT8oYSs9MSxpKz1pbmRlbnQoYSksaSs9YDxub2RlIG5hbWU9IiR7dS5uYW1lfSIgaW5kZXg9IiR7dS5waHJhc2VJbmRleH0iIGxlbmd0aD0iJHt1LnBocmFzZUxlbmd0aH0iPlxuYCxpKz1pbmRlbnQoYSsyKSxpKz1vLmNoYXJzVG9TdHJpbmcoXyx1LnBocmFzZUluZGV4LHUucGhyYXNlTGVuZ3RoKSxpKz0iXG4iKTooaSs9aW5kZW50KGEpLGkrPWA8L25vZGU+XHgzYyEtLSBuYW1lPSIke3UubmFtZX0iIC0tXHgzZVxuYCxhLT0xKX0pKSxpKz0iPC9yb290PlxuIixpfX0sYnA9ZnVuY3Rpb24gZm50cmFjZSgpe2NvbnN0IHM9RXAsbz1TcCxpPSJwYXJzZXIuanM6IFRyYWNlKCk6ICI7bGV0IGEsdSxfLHc9IiIseD0wO2NvbnN0IEM9dGhpcyxpbmRlbnQ9cz0+e2xldCBvPSIiLGk9MDtpZihzPj0wKWZvcig7cy0tOylpKz0xLDU9PT1pPyhvKz0ifCIsaT0wKTpvKz0iLiI7cmV0dXJuIG99O0MuaW5pdD0ocyxvLGkpPT57dT1zLF89byxhPWl9O2NvbnN0IG9wTmFtZT1hPT57bGV0IHc7c3dpdGNoKGEudHlwZSl7Y2FzZSBzLkFMVDp3PSJBTFQiO2JyZWFrO2Nhc2Ugcy5DQVQ6dz0iQ0FUIjticmVhaztjYXNlIHMuUkVQOnc9YS5tYXg9PT0xLzA/YFJFUCgke2EubWlufSxpbmYpYDpgUkVQKCR7YS5taW59LCR7YS5tYXh9KWA7YnJlYWs7Y2FzZSBzLlJOTTp3PWBSTk0oJHt1W2EuaW5kZXhdLm5hbWV9KWA7YnJlYWs7Y2FzZSBzLlRSRzp3PWBUUkcoJHthLm1pbn0sJHthLm1heH0pYDticmVhaztjYXNlIHMuVEJTOnc9YS5zdHJpbmcubGVuZ3RoPjY/YFRCUygke28uY2hhcnNUb1N0cmluZyhhLnN0cmluZywwLDMpfS4uLilgOmBUQlMoJHtvLmNoYXJzVG9TdHJpbmcoYS5zdHJpbmcsMCw2KX0pYDticmVhaztjYXNlIHMuVExTOnc9YS5zdHJpbmcubGVuZ3RoPjY/YFRMUygke28uY2hhcnNUb1N0cmluZyhhLnN0cmluZywwLDMpfS4uLilgOmBUTFMoJHtvLmNoYXJzVG9TdHJpbmcoYS5zdHJpbmcsMCw2KX0pYDticmVhaztjYXNlIHMuVURUOnc9YFVEVCgke19bYS5pbmRleF0ubmFtZX0pYDticmVhaztjYXNlIHMuQU5EOnc9IkFORCI7YnJlYWs7Y2FzZSBzLk5PVDp3PSJOT1QiO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGAke2l9VHJhY2U6IG9wTmFtZTogdW5yZWNvZ25pemVkIG9wY29kZWApfXJldHVybiB3fTtDLmRvd249KHMsaSk9Pntjb25zdCB1PWluZGVudCh4KSxfPU1hdGgubWluKDEwMCxhLmxlbmd0aC1pKTtsZXQgQz1vLmNoYXJzVG9TdHJpbmcoYSxpLF8pO188YS5sZW5ndGgtaSYmKEMrPSIuLi4iKSxDPWAke3V9fC18WyR7b3BOYW1lKHMpfV0ke0N9XG5gLHcrPUMseCs9MX0sQy51cD0odSxfLEMsaik9Pntjb25zdCBMPWAke2l9dHJhY2UudXA6IGA7eC09MTtjb25zdCBCPWluZGVudCh4KTtsZXQgJCxWLFU7c3dpdGNoKF8pe2Nhc2Ugcy5FTVBUWTpVPSJ8RXwiLFY9IicnIjticmVhaztjYXNlIHMuTUFUQ0g6VT0ifE18IiwkPU1hdGgubWluKDEwMCxqKSxWPSQ8aj9gJyR7by5jaGFyc1RvU3RyaW5nKGEsQywkKX0uLi4nYDpgJyR7by5jaGFyc1RvU3RyaW5nKGEsQywkKX0nYDticmVhaztjYXNlIHMuTk9NQVRDSDpVPSJ8TnwiLFY9IiI7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYCR7TH0gdW5yZWNvZ25pemVkIHN0YXRlYCl9Vj1gJHtCfSR7VX1bJHtvcE5hbWUodSl9XSR7Vn1cbmAsdys9Vn0sQy5kaXNwbGF5VHJhY2U9KCk9Pnd9LF9wPWZ1bmN0aW9uIGZuc3RhdHMoKXtjb25zdCBzPUVwO2xldCBvLGksYTtjb25zdCB1PVtdLF89W10sdz1bXTt0aGlzLmluaXQ9KHMsYSk9PntvPXMsaT1hLGNsZWFyKCl9LHRoaXMuY29sbGVjdD0obyxpKT0+e2luY1N0YXQoYSxpLnN0YXRlLGkucGhyYXNlTGVuZ3RoKSxpbmNTdGF0KHVbby50eXBlXSxpLnN0YXRlLGkucGhyYXNlTGVuZ3RoKSxvLnR5cGU9PT1zLlJOTSYmaW5jU3RhdChfW28uaW5kZXhdLGkuc3RhdGUsaS5waHJhc2VMZW5ndGgpLG8udHlwZT09PXMuVURUJiZpbmNTdGF0KHdbby5pbmRleF0saS5zdGF0ZSxpLnBocmFzZUxlbmd0aCl9LHRoaXMuZGlzcGxheVN0YXRzPSgpPT57bGV0IG89IiI7Y29uc3QgaT17bWF0Y2g6MCxlbXB0eTowLG5vbWF0Y2g6MCx0b3RhbDowfSxkaXNwbGF5Um93PShzLG8sYSx1LF8pPT57aS5tYXRjaCs9byxpLmVtcHR5Kz1hLGkubm9tYXRjaCs9dSxpLnRvdGFsKz1fO3JldHVybmAke3N9IHwgJHtub3JtYWxpemUobyl9IHwgJHtub3JtYWxpemUoYSl9IHwgJHtub3JtYWxpemUodSl9IHwgJHtub3JtYWxpemUoXyl9IHxcbmB9O3JldHVybiBvKz0iICAgICAgICAgIE9QRVJBVE9SIFNUQVRTXG4iLG8rPSIgICAgICB8ICAgTUFUQ0ggfCAgIEVNUFRZIHwgTk9NQVRDSCB8ICAgVE9UQUwgfFxuIixvKz1kaXNwbGF5Um93KCIgIEFMVCIsdVtzLkFMVF0ubWF0Y2gsdVtzLkFMVF0uZW1wdHksdVtzLkFMVF0ubm9tYXRjaCx1W3MuQUxUXS50b3RhbCksbys9ZGlzcGxheVJvdygiICBDQVQiLHVbcy5DQVRdLm1hdGNoLHVbcy5DQVRdLmVtcHR5LHVbcy5DQVRdLm5vbWF0Y2gsdVtzLkNBVF0udG90YWwpLG8rPWRpc3BsYXlSb3coIiAgUkVQIix1W3MuUkVQXS5tYXRjaCx1W3MuUkVQXS5lbXB0eSx1W3MuUkVQXS5ub21hdGNoLHVbcy5SRVBdLnRvdGFsKSxvKz1kaXNwbGF5Um93KCIgIFJOTSIsdVtzLlJOTV0ubWF0Y2gsdVtzLlJOTV0uZW1wdHksdVtzLlJOTV0ubm9tYXRjaCx1W3MuUk5NXS50b3RhbCksbys9ZGlzcGxheVJvdygiICBUUkciLHVbcy5UUkddLm1hdGNoLHVbcy5UUkddLmVtcHR5LHVbcy5UUkddLm5vbWF0Y2gsdVtzLlRSR10udG90YWwpLG8rPWRpc3BsYXlSb3coIiAgVEJTIix1W3MuVEJTXS5tYXRjaCx1W3MuVEJTXS5lbXB0eSx1W3MuVEJTXS5ub21hdGNoLHVbcy5UQlNdLnRvdGFsKSxvKz1kaXNwbGF5Um93KCIgIFRMUyIsdVtzLlRMU10ubWF0Y2gsdVtzLlRMU10uZW1wdHksdVtzLlRMU10ubm9tYXRjaCx1W3MuVExTXS50b3RhbCksbys9ZGlzcGxheVJvdygiICBVRFQiLHVbcy5VRFRdLm1hdGNoLHVbcy5VRFRdLmVtcHR5LHVbcy5VRFRdLm5vbWF0Y2gsdVtzLlVEVF0udG90YWwpLG8rPWRpc3BsYXlSb3coIiAgQU5EIix1W3MuQU5EXS5tYXRjaCx1W3MuQU5EXS5lbXB0eSx1W3MuQU5EXS5ub21hdGNoLHVbcy5BTkRdLnRvdGFsKSxvKz1kaXNwbGF5Um93KCIgIE5PVCIsdVtzLk5PVF0ubWF0Y2gsdVtzLk5PVF0uZW1wdHksdVtzLk5PVF0ubm9tYXRjaCx1W3MuTk9UXS50b3RhbCksbys9ZGlzcGxheVJvdygiVE9UQUwiLGkubWF0Y2gsaS5lbXB0eSxpLm5vbWF0Y2gsaS50b3RhbCksb30sdGhpcy5kaXNwbGF5SGl0cz1zPT57bGV0IG89IiI7Y29uc3QgZGlzcGxheVJvdz0ocyxvLGksdSxfKT0+e2EubWF0Y2grPXMsYS5lbXB0eSs9byxhLm5vbWF0Y2grPWksYS50b3RhbCs9dTtyZXR1cm5gfCAke25vcm1hbGl6ZShzKX0gfCAke25vcm1hbGl6ZShvKX0gfCAke25vcm1hbGl6ZShpKX0gfCAke25vcm1hbGl6ZSh1KX0gfCAke199XG5gfTsic3RyaW5nIj09dHlwZW9mIHMmJiJhIj09PXMudG9Mb3dlckNhc2UoKVswXT8oXy5zb3J0KHNvcnRBbHBoYSksdy5zb3J0KHNvcnRBbHBoYSksbys9IiAgICBSVUxFUy9VRFRTIEFMUEhBQkVUSUNBTExZXG4iKToic3RyaW5nIj09dHlwZW9mIHMmJiJpIj09PXMudG9Mb3dlckNhc2UoKVswXT8oXy5zb3J0KHNvcnRJbmRleCksdy5zb3J0KHNvcnRJbmRleCksbys9IiAgICBSVUxFUy9VRFRTIEJZIElOREVYXG4iKTooXy5zb3J0KHNvcnRIaXRzKSx3LnNvcnQoc29ydEhpdHMpLG8rPSIgICAgUlVMRVMvVURUUyBCWSBISVQgQ09VTlRcbiIpLG8rPSJ8ICAgTUFUQ0ggfCAgIEVNUFRZIHwgTk9NQVRDSCB8ICAgVE9UQUwgfCBOQU1FXG4iO2ZvcihsZXQgcz0wO3M8Xy5sZW5ndGg7cys9MSl7bGV0IGk9X1tzXTtpLnRvdGFsJiYobys9ZGlzcGxheVJvdyhpLm1hdGNoLGkuZW1wdHksaS5ub21hdGNoLGkudG90YWwsaS5uYW1lKSl9Zm9yKGxldCBzPTA7czx3Lmxlbmd0aDtzKz0xKXtsZXQgaT13W3NdO2kudG90YWwmJihvKz1kaXNwbGF5Um93KGkubWF0Y2gsaS5lbXB0eSxpLm5vbWF0Y2gsaS50b3RhbCxpLm5hbWUpKX1yZXR1cm4gb307Y29uc3Qgbm9ybWFsaXplPXM9PnM8MTA/YCAgICAgICR7c31gOnM8MTAwP2AgICAgICR7c31gOnM8MWUzP2AgICAgJHtzfWA6czwxZTQ/YCAgICR7c31gOnM8MWU1P2AgICR7c31gOnM8MWU2P2AgJHtzfWA6YCR7c31gLHNvcnRBbHBoYT0ocyxvKT0+cy5sb3dlcjxvLmxvd2VyPy0xOnMubG93ZXI+by5sb3dlcj8xOjAsc29ydEhpdHM9KHMsbyk9PnMudG90YWw8by50b3RhbD8xOnMudG90YWw+by50b3RhbD8tMTpzb3J0QWxwaGEocyxvKSxzb3J0SW5kZXg9KHMsbyk9PnMuaW5kZXg8by5pbmRleD8tMTpzLmluZGV4Pm8uaW5kZXg/MTowLHg9ZnVuY3Rpb24gZm5lbXB0eSgpe3RoaXMuZW1wdHk9MCx0aGlzLm1hdGNoPTAsdGhpcy5ub21hdGNoPTAsdGhpcy50b3RhbD0wfSxjbGVhcj0oKT0+e3UubGVuZ3RoPTAsYT1uZXcgeCx1W3MuQUxUXT1uZXcgeCx1W3MuQ0FUXT1uZXcgeCx1W3MuUkVQXT1uZXcgeCx1W3MuUk5NXT1uZXcgeCx1W3MuVFJHXT1uZXcgeCx1W3MuVEJTXT1uZXcgeCx1W3MuVExTXT1uZXcgeCx1W3MuVURUXT1uZXcgeCx1W3MuQU5EXT1uZXcgeCx1W3MuTk9UXT1uZXcgeCxfLmxlbmd0aD0wO2ZvcihsZXQgcz0wO3M8by5sZW5ndGg7cys9MSlfLnB1c2goe2VtcHR5OjAsbWF0Y2g6MCxub21hdGNoOjAsdG90YWw6MCxuYW1lOm9bc10ubmFtZSxsb3dlcjpvW3NdLmxvd2VyLGluZGV4Om9bc10uaW5kZXh9KTtpZihpLmxlbmd0aD4wKXt3Lmxlbmd0aD0wO2ZvcihsZXQgcz0wO3M8aS5sZW5ndGg7cys9MSl3LnB1c2goe2VtcHR5OjAsbWF0Y2g6MCxub21hdGNoOjAsdG90YWw6MCxuYW1lOmlbc10ubmFtZSxsb3dlcjppW3NdLmxvd2VyLGluZGV4Omlbc10uaW5kZXh9KX19LGluY1N0YXQ9KG8saSk9Pntzd2l0Y2goby50b3RhbCs9MSxpKXtjYXNlIHMuRU1QVFk6by5lbXB0eSs9MTticmVhaztjYXNlIHMuTUFUQ0g6by5tYXRjaCs9MTticmVhaztjYXNlIHMuTk9NQVRDSDpvLm5vbWF0Y2grPTE7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYHBhcnNlci5qczogU3RhdHMoKTogY29sbGVjdCgpOiBpbmNTdGF0KCk6IHVucmVjb2duaXplZCBzdGF0ZTogJHtpfWApfX19LFNwPXtzdHJpbmdUb0NoYXJzOnM9PlsuLi5zXS5tYXAoKHM9PnMuY29kZVBvaW50QXQoMCkpKSxjaGFyc1RvU3RyaW5nOihzLG8saSk9PntsZXQgYT1zO2Zvcig7ISh2b2lkIDA9PT1vfHxvPDApOyl7aWYodm9pZCAwPT09aSl7YT1zLnNsaWNlKG8pO2JyZWFrfWlmKGk8PTApcmV0dXJuIiI7YT1zLnNsaWNlKG8sbytpKTticmVha31yZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQoLi4uYSl9fSxFcD17QUxUOjEsQ0FUOjIsUkVQOjMsUk5NOjQsVFJHOjUsVEJTOjYsVExTOjcsVURUOjExLEFORDoxMixOT1Q6MTMsQUNUSVZFOjEwMCxNQVRDSDoxMDEsRU1QVFk6MTAyLE5PTUFUQ0g6MTAzLFNFTV9QUkU6MjAwLFNFTV9QT1NUOjIwMSxTRU1fT0s6MzAwLGlkTmFtZTpzPT57c3dpdGNoKHMpe2Nhc2UgRXAuQUxUOnJldHVybiJBTFQiO2Nhc2UgRXAuQ0FUOnJldHVybiJDQVQiO2Nhc2UgRXAuUkVQOnJldHVybiJSRVAiO2Nhc2UgRXAuUk5NOnJldHVybiJSTk0iO2Nhc2UgRXAuVFJHOnJldHVybiJUUkciO2Nhc2UgRXAuVEJTOnJldHVybiJUQlMiO2Nhc2UgRXAuVExTOnJldHVybiJUTFMiO2Nhc2UgRXAuVURUOnJldHVybiJVRFQiO2Nhc2UgRXAuQU5EOnJldHVybiJBTkQiO2Nhc2UgRXAuTk9UOnJldHVybiJOT1QiO2Nhc2UgRXAuQUNUSVZFOnJldHVybiJBQ1RJVkUiO2Nhc2UgRXAuRU1QVFk6cmV0dXJuIkVNUFRZIjtjYXNlIEVwLk1BVENIOnJldHVybiJNQVRDSCI7Y2FzZSBFcC5OT01BVENIOnJldHVybiJOT01BVENIIjtjYXNlIEVwLlNFTV9QUkU6cmV0dXJuIlNFTV9QUkUiO2Nhc2UgRXAuU0VNX1BPU1Q6cmV0dXJuIlNFTV9QT1NUIjtjYXNlIEVwLlNFTV9PSzpyZXR1cm4iU0VNX09LIjtkZWZhdWx0OnJldHVybiJVTlJFQ09HTklaRUQgU1RBVEUifX19O2Z1bmN0aW9uIGdyYW1tYXIoKXt0aGlzLmdyYW1tYXJPYmplY3Q9ImdyYW1tYXJPYmplY3QiLHRoaXMucnVsZXM9W10sdGhpcy5ydWxlc1swXT17bmFtZToianNvbi1wb2ludGVyIixsb3dlcjoianNvbi1wb2ludGVyIixpbmRleDowLGlzQmtyOiExfSx0aGlzLnJ1bGVzWzFdPXtuYW1lOiJyZWZlcmVuY2UtdG9rZW4iLGxvd2VyOiJyZWZlcmVuY2UtdG9rZW4iLGluZGV4OjEsaXNCa3I6ITF9LHRoaXMucnVsZXNbMl09e25hbWU6InVuZXNjYXBlZCIsbG93ZXI6InVuZXNjYXBlZCIsaW5kZXg6Mixpc0JrcjohMX0sdGhpcy5ydWxlc1szXT17bmFtZToiZXNjYXBlZCIsbG93ZXI6ImVzY2FwZWQiLGluZGV4OjMsaXNCa3I6ITF9LHRoaXMucnVsZXNbNF09e25hbWU6ImFycmF5LWxvY2F0aW9uIixsb3dlcjoiYXJyYXktbG9jYXRpb24iLGluZGV4OjQsaXNCa3I6ITF9LHRoaXMucnVsZXNbNV09e25hbWU6ImFycmF5LWluZGV4Iixsb3dlcjoiYXJyYXktaW5kZXgiLGluZGV4OjUsaXNCa3I6ITF9LHRoaXMucnVsZXNbNl09e25hbWU6ImFycmF5LWRhc2giLGxvd2VyOiJhcnJheS1kYXNoIixpbmRleDo2LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzddPXtuYW1lOiJzbGFzaCIsbG93ZXI6InNsYXNoIixpbmRleDo3LGlzQmtyOiExfSx0aGlzLnVkdHM9W10sdGhpcy5ydWxlc1swXS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMF0ub3Bjb2Rlc1swXT17dHlwZTozLG1pbjowLG1heDoxLzB9LHRoaXMucnVsZXNbMF0ub3Bjb2Rlc1sxXT17dHlwZToyLGNoaWxkcmVuOlsyLDNdfSx0aGlzLnJ1bGVzWzBdLm9wY29kZXNbMl09e3R5cGU6NCxpbmRleDo3fSx0aGlzLnJ1bGVzWzBdLm9wY29kZXNbM109e3R5cGU6NCxpbmRleDoxfSx0aGlzLnJ1bGVzWzFdLm9wY29kZXM9W10sdGhpcy5ydWxlc1sxXS5vcGNvZGVzWzBdPXt0eXBlOjMsbWluOjAsbWF4OjEvMH0sdGhpcy5ydWxlc1sxXS5vcGNvZGVzWzFdPXt0eXBlOjEsY2hpbGRyZW46WzIsM119LHRoaXMucnVsZXNbMV0ub3Bjb2Rlc1syXT17dHlwZTo0LGluZGV4OjJ9LHRoaXMucnVsZXNbMV0ub3Bjb2Rlc1szXT17dHlwZTo0LGluZGV4OjN9LHRoaXMucnVsZXNbMl0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzJdLm9wY29kZXNbMF09e3R5cGU6MSxjaGlsZHJlbjpbMSwyLDNdfSx0aGlzLnJ1bGVzWzJdLm9wY29kZXNbMV09e3R5cGU6NSxtaW46MCxtYXg6NDZ9LHRoaXMucnVsZXNbMl0ub3Bjb2Rlc1syXT17dHlwZTo1LG1pbjo0OCxtYXg6MTI1fSx0aGlzLnJ1bGVzWzJdLm9wY29kZXNbM109e3R5cGU6NSxtaW46MTI3LG1heDoxMTE0MTExfSx0aGlzLnJ1bGVzWzNdLm9wY29kZXM9W10sdGhpcy5ydWxlc1szXS5vcGNvZGVzWzBdPXt0eXBlOjIsY2hpbGRyZW46WzEsMl19LHRoaXMucnVsZXNbM10ub3Bjb2Rlc1sxXT17dHlwZTo3LHN0cmluZzpbMTI2XX0sdGhpcy5ydWxlc1szXS5vcGNvZGVzWzJdPXt0eXBlOjEsY2hpbGRyZW46WzMsNF19LHRoaXMucnVsZXNbM10ub3Bjb2Rlc1szXT17dHlwZTo3LHN0cmluZzpbNDhdfSx0aGlzLnJ1bGVzWzNdLm9wY29kZXNbNF09e3R5cGU6NyxzdHJpbmc6WzQ5XX0sdGhpcy5ydWxlc1s0XS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbNF0ub3Bjb2Rlc1swXT17dHlwZToxLGNoaWxkcmVuOlsxLDJdfSx0aGlzLnJ1bGVzWzRdLm9wY29kZXNbMV09e3R5cGU6NCxpbmRleDo1fSx0aGlzLnJ1bGVzWzRdLm9wY29kZXNbMl09e3R5cGU6NCxpbmRleDo2fSx0aGlzLnJ1bGVzWzVdLm9wY29kZXM9W10sdGhpcy5ydWxlc1s1XS5vcGNvZGVzWzBdPXt0eXBlOjEsY2hpbGRyZW46WzEsMl19LHRoaXMucnVsZXNbNV0ub3Bjb2Rlc1sxXT17dHlwZTo2LHN0cmluZzpbNDhdfSx0aGlzLnJ1bGVzWzVdLm9wY29kZXNbMl09e3R5cGU6MixjaGlsZHJlbjpbMyw0XX0sdGhpcy5ydWxlc1s1XS5vcGNvZGVzWzNdPXt0eXBlOjUsbWluOjQ5LG1heDo1N30sdGhpcy5ydWxlc1s1XS5vcGNvZGVzWzRdPXt0eXBlOjMsbWluOjAsbWF4OjEvMH0sdGhpcy5ydWxlc1s1XS5vcGNvZGVzWzVdPXt0eXBlOjUsbWluOjQ4LG1heDo1N30sdGhpcy5ydWxlc1s2XS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbNl0ub3Bjb2Rlc1swXT17dHlwZTo3LHN0cmluZzpbNDVdfSx0aGlzLnJ1bGVzWzddLm9wY29kZXM9W10sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzBdPXt0eXBlOjcsc3RyaW5nOls0N119LHRoaXMudG9TdHJpbmc9ZnVuY3Rpb24gdG9TdHJpbmcoKXtsZXQgcz0iIjtyZXR1cm4gcys9IjsgSmF2YVNjcmlwdCBPYmplY3QgTm90YXRpb24gKEpTT04pIFBvaW50ZXIgQUJORiBzeW50YXhcbiIscys9IjsgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM2OTAxXG4iLHMrPSJqc29uLXBvaW50ZXIgICAgPSAqKCBzbGFzaCByZWZlcmVuY2UtdG9rZW4gKSA7IE1PRElGSUNBVElPTjogc3Vycm9nYXRlIHRleHQgcnVsZSB1c2VkXG4iLHMrPSJyZWZlcmVuY2UtdG9rZW4gPSAqKCB1bmVzY2FwZWQgLyBlc2NhcGVkIClcbiIscys9InVuZXNjYXBlZCAgICAgICA9ICV4MDAtMkUgLyAleDMwLTdEIC8gJXg3Ri0xMEZGRkZcbiIscys9IiAgICAgICAgICAgICAgICA7ICV4MkYgKCcvJykgYW5kICV4N0UgKCd+JykgYXJlIGV4Y2x1ZGVkIGZyb20gJ3VuZXNjYXBlZCdcbiIscys9J2VzY2FwZWQgICAgICAgICA9ICJ+IiAoICIwIiAvICIxIiApXG4nLHMrPSIgICAgICAgICAgICAgICAgOyByZXByZXNlbnRpbmcgJ34nIGFuZCAnLycsIHJlc3BlY3RpdmVseVxuIixzKz0iXG4iLHMrPSI7IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNjkwMSNzZWN0aW9uLTRcbiIscys9ImFycmF5LWxvY2F0aW9uICA9IGFycmF5LWluZGV4IC8gYXJyYXktZGFzaFxuIixzKz0iYXJyYXktaW5kZXggICAgID0gJXgzMCAvICggJXgzMS0zOSAqKCV4MzAtMzkpIClcbiIscys9JyAgICAgICAgICAgICAgICA7ICIwIiwgb3IgZGlnaXRzIHdpdGhvdXQgYSBsZWFkaW5nICIwIlxuJyxzKz0nYXJyYXktZGFzaCAgICAgID0gIi0iXG4nLHMrPSJcbiIscys9IjsgU3Vycm9nYXRlIG5hbWVkIHJ1bGVzXG4iLHMrPSdzbGFzaCAgICAgICAgICAgPSAiLyJcbicsJzsgSmF2YVNjcmlwdCBPYmplY3QgTm90YXRpb24gKEpTT04pIFBvaW50ZXIgQUJORiBzeW50YXhcbjsgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM2OTAxXG5qc29uLXBvaW50ZXIgICAgPSAqKCBzbGFzaCByZWZlcmVuY2UtdG9rZW4gKSA7IE1PRElGSUNBVElPTjogc3Vycm9nYXRlIHRleHQgcnVsZSB1c2VkXG5yZWZlcmVuY2UtdG9rZW4gPSAqKCB1bmVzY2FwZWQgLyBlc2NhcGVkIClcbnVuZXNjYXBlZCAgICAgICA9ICV4MDAtMkUgLyAleDMwLTdEIC8gJXg3Ri0xMEZGRkZcbiAgICAgICAgICAgICAgICA7ICV4MkYgKFwnL1wnKSBhbmQgJXg3RSAoXCd+XCcpIGFyZSBleGNsdWRlZCBmcm9tIFwndW5lc2NhcGVkXCdcbmVzY2FwZWQgICAgICAgICA9ICJ+IiAoICIwIiAvICIxIiApXG4gICAgICAgICAgICAgICAgOyByZXByZXNlbnRpbmcgXCd+XCcgYW5kIFwnL1wnLCByZXNwZWN0aXZlbHlcblxuOyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzY5MDEjc2VjdGlvbi00XG5hcnJheS1sb2NhdGlvbiAgPSBhcnJheS1pbmRleCAvIGFycmF5LWRhc2hcbmFycmF5LWluZGV4ICAgICA9ICV4MzAgLyAoICV4MzEtMzkgKigleDMwLTM5KSApXG4gICAgICAgICAgICAgICAgOyAiMCIsIG9yIGRpZ2l0cyB3aXRob3V0IGEgbGVhZGluZyAiMCJcbmFycmF5LWRhc2ggICAgICA9ICItIlxuXG47IFN1cnJvZ2F0ZSBuYW1lZCBydWxlc1xuc2xhc2ggICAgICAgICAgID0gIi8iXG4nfX1jbGFzcyBKU09OUG9pbnRlckVycm9yIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IocyxvPXZvaWQgMCl7aWYoc3VwZXIocyxvKSx0aGlzLm5hbWU9dGhpcy5jb25zdHJ1Y3Rvci5uYW1lLCJzdHJpbmciPT10eXBlb2YgcyYmKHRoaXMubWVzc2FnZT1zKSwiZnVuY3Rpb24iPT10eXBlb2YgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcihzKS5zdGFjayxudWxsIT1vJiYib2JqZWN0Ij09dHlwZW9mIG8mJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCJjYXVzZSIpJiYhKCJjYXVzZSJpbiB0aGlzKSl7Y29uc3R7Y2F1c2U6c309bzt0aGlzLmNhdXNlPXMscyBpbnN0YW5jZW9mIEVycm9yJiYic3RhY2siaW4gcyYmKHRoaXMuc3RhY2s9YCR7dGhpcy5zdGFja31cbkNBVVNFOiAke3Muc3RhY2t9YCl9aWYobnVsbCE9byYmIm9iamVjdCI9PXR5cGVvZiBvKXtjb25zdHtjYXVzZTpzLC4uLml9PW87T2JqZWN0LmFzc2lnbih0aGlzLGkpfX19Y29uc3Qgd3A9SlNPTlBvaW50ZXJFcnJvcjtjb25zdCB4cD1jbGFzcyBKU09OUG9pbnRlclBhcnNlRXJyb3IgZXh0ZW5kcyB3cHt9LGNhbGxiYWNrc19jc3Q9cz0+KG8saSxhLHUsXyk9PntpZigib2JqZWN0IiE9dHlwZW9mIF98fG51bGw9PT1ffHxBcnJheS5pc0FycmF5KF8pKXRocm93IG5ldyB4cCgicGFyc2VyJ3MgdXNlciBkYXRhIG11c3QgYmUgYW4gb2JqZWN0Iik7aWYobz09PUVwLlNFTV9QUkUpe2NvbnN0IG89e3R5cGU6cyx0ZXh0OlNwLmNoYXJzVG9TdHJpbmcoaSxhLHUpLHN0YXJ0OmEsbGVuZ3RoOnUsY2hpbGRyZW46W119O2lmKF8uc3RhY2subGVuZ3RoPjApe18uc3RhY2tbXy5zdGFjay5sZW5ndGgtMV0uY2hpbGRyZW4ucHVzaChvKX1lbHNlIF8ucm9vdD1vO18uc3RhY2sucHVzaChvKX1vPT09RXAuU0VNX1BPU1QmJl8uc3RhY2sucG9wKCl9O2NvbnN0IGtwPWNsYXNzIENTVFRyYW5zbGF0b3JfQ1NUVHJhbnNsYXRvciBleHRlbmRzIHZwe2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmNhbGxiYWNrc1sianNvbi1wb2ludGVyIl09Y2FsbGJhY2tzX2NzdCgianNvbi1wb2ludGVyIiksdGhpcy5jYWxsYmFja3NbInJlZmVyZW5jZS10b2tlbiJdPWNhbGxiYWNrc19jc3QoInJlZmVyZW5jZS10b2tlbiIpLHRoaXMuY2FsbGJhY2tzLnNsYXNoPWNhbGxiYWNrc19jc3QoInRleHQiKX1nZXRUcmVlKCl7Y29uc3Qgcz17c3RhY2s6W10scm9vdDpudWxsfTtyZXR1cm4gdGhpcy50cmFuc2xhdGUocyksZGVsZXRlIHMuc3RhY2ssc319LGVzX3VuZXNjYXBlPXM9PntpZigic3RyaW5nIiE9dHlwZW9mIHMpdGhyb3cgbmV3IFR5cGVFcnJvcigiUmVmZXJlbmNlIHRva2VuIG11c3QgYmUgYSBzdHJpbmciKTtyZXR1cm4gcy5yZXBsYWNlKC9+MS9nLCIvIikucmVwbGFjZSgvfjAvZywifiIpfTtjb25zdCBPcD1jbGFzcyBBU1RUcmFuc2xhdG9yIGV4dGVuZHMga3B7Z2V0VHJlZSgpe2NvbnN0e3Jvb3Q6c309c3VwZXIuZ2V0VHJlZSgpO3JldHVybiBzLmNoaWxkcmVuLmZpbHRlcigoKHt0eXBlOnN9KT0+InJlZmVyZW5jZS10b2tlbiI9PT1zKSkubWFwKCgoe3RleHQ6c30pPT5lc191bmVzY2FwZShzKSkpfX07Y29uc3QgQ3A9Y2xhc3MgRXhwZWN0YXRpb25zIGV4dGVuZHMgQXJyYXl7dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5tYXAoKHM9PmAiJHtTdHJpbmcocyl9ImApKS5qb2luKCIsICIpfX07Y29uc3QgQXA9Y2xhc3MgVHJhY2UgZXh0ZW5kcyBicHtpbmZlckV4cGVjdGF0aW9ucygpe2NvbnN0IHM9dGhpcy5kaXNwbGF5VHJhY2UoKS5zcGxpdCgiXG4iKSxvPW5ldyBTZXQ7bGV0IGk9LTE7Zm9yKGxldCBhPTA7YTxzLmxlbmd0aDthKyspe2NvbnN0IHU9c1thXTtpZih1LmluY2x1ZGVzKCJNfCIpKXtjb25zdCBzPXUubWF0Y2goL10nKC4qKSckLyk7cyYmc1sxXSYmKGk9YSl9aWYoYT5pKXtjb25zdCBzPXUubWF0Y2goL05cfFxbVExTXCgoW14pXSspXCldLyk7cyYmby5hZGQoc1sxXSl9fXJldHVybiBuZXcgQ3AoLi4ubyl9fSxqcD1uZXcgZ3JhbW1hcixlc19wYXJzZT0ocyx7dHJhbnNsYXRvcjpvPW5ldyBPcCxzdGF0czppPSExLHRyYWNlOmE9ITF9PXt9KT0+e2lmKCJzdHJpbmciIT10eXBlb2Ygcyl0aHJvdyBuZXcgVHlwZUVycm9yKCJKU09OIFBvaW50ZXIgbXVzdCBiZSBhIHN0cmluZyIpO3RyeXtjb25zdCB1PW5ldyB5cDtvJiYodS5hc3Q9byksaSYmKHUuc3RhdHM9bmV3IF9wKSxhJiYodS50cmFjZT1uZXcgQXApO2NvbnN0IF89dS5wYXJzZShqcCwianNvbi1wb2ludGVyIixzKTtyZXR1cm57cmVzdWx0Ol8sdHJlZTpfLnN1Y2Nlc3MmJm8/dS5hc3QuZ2V0VHJlZSgpOnZvaWQgMCxzdGF0czp1LnN0YXRzLHRyYWNlOnUudHJhY2V9fWNhdGNoKG8pe3Rocm93IG5ldyB4cCgiVW5leHBlY3RlZCBlcnJvciBkdXJpbmcgSlNPTiBQb2ludGVyIHBhcnNpbmciLHtjYXVzZTpvLGpzb25Qb2ludGVyOnN9KX19O25ldyBncmFtbWFyLG5ldyB5cCxuZXcgZ3JhbW1hcixuZXcgeXA7Y29uc3QgSXA9bmV3IGdyYW1tYXIsUHA9bmV3IHlwLGFycmF5X2luZGV4PXM9PntpZigic3RyaW5nIiE9dHlwZW9mIHMpcmV0dXJuITE7dHJ5e3JldHVybiBQcC5wYXJzZShJcCwiYXJyYXktaW5kZXgiLHMpLnN1Y2Nlc3N9Y2F0Y2h7cmV0dXJuITF9fSxUcD1uZXcgZ3JhbW1hcixOcD1uZXcgeXAsYXJyYXlfZGFzaD1zPT57aWYoInN0cmluZyIhPXR5cGVvZiBzKXJldHVybiExO3RyeXtyZXR1cm4gTnAucGFyc2UoVHAsImFycmF5LWRhc2giLHMpLnN1Y2Nlc3N9Y2F0Y2h7cmV0dXJuITF9fSxlc19lc2NhcGU9cz0+e2lmKCJzdHJpbmciIT10eXBlb2YgcyYmIm51bWJlciIhPXR5cGVvZiBzKXRocm93IG5ldyBUeXBlRXJyb3IoIlJlZmVyZW5jZSB0b2tlbiBtdXN0IGJlIGEgc3RyaW5nIG9yIG51bWJlciIpO3JldHVybiBTdHJpbmcocykucmVwbGFjZSgvfi9nLCJ+MCIpLnJlcGxhY2UoL1wvL2csIn4xIil9O2NvbnN0IE1wPWNsYXNzIEpTT05Qb2ludGVyQ29tcGlsZUVycm9yIGV4dGVuZHMgd3B7fSxlc19jb21waWxlPXM9PntpZighQXJyYXkuaXNBcnJheShzKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJSZWZlcmVuY2UgdG9rZW5zIG11c3QgYmUgYSBsaXN0IG9mIHN0cmluZ3Mgb3IgbnVtYmVycyIpO3RyeXtyZXR1cm4gMD09PXMubGVuZ3RoPyIiOmAvJHtzLm1hcCgocz0+e2lmKCJzdHJpbmciIT10eXBlb2YgcyYmIm51bWJlciIhPXR5cGVvZiBzKXRocm93IG5ldyBUeXBlRXJyb3IoIlJlZmVyZW5jZSB0b2tlbiBtdXN0IGJlIGEgc3RyaW5nIG9yIG51bWJlciIpO3JldHVybiBlc19lc2NhcGUoU3RyaW5nKHMpKX0pKS5qb2luKCIvIil9YH1jYXRjaChvKXt0aHJvdyBuZXcgTXAoIlVuZXhwZWN0ZWQgZXJyb3IgZHVyaW5nIEpTT04gUG9pbnRlciBjb21waWxhdGlvbiIse2NhdXNlOm8scmVmZXJlbmNlVG9rZW5zOnN9KX19O2NvbnN0IFJwPWNsYXNzIFRyYWNlQnVpbGRlcnsjZTsjdDsjcjtjb25zdHJ1Y3RvcihzLG89e30pe3RoaXMuI2U9cyx0aGlzLiNlLnN0ZXBzPVtdLHRoaXMuI2UuZmFpbGVkPSExLHRoaXMuI2UuZmFpbGVkQXQ9LTEsdGhpcy4jZS5tZXNzYWdlPWBKU09OIFBvaW50ZXIgIiR7by5qc29uUG9pbnRlcn0iIHdhcyBzdWNjZXNzZnVsbHkgZXZhbHVhdGVkIGFnYWluc3QgdGhlIHByb3ZpZGVkIHZhbHVlYCx0aGlzLiNlLmNvbnRleHQ9ey4uLm8scmVhbG06by5yZWFsbS5uYW1lfSx0aGlzLiN0PVtdLHRoaXMuI3I9by5yZWFsbX1zdGVwKHtyZWZlcmVuY2VUb2tlbjpzLGlucHV0Om8sb3V0cHV0Omksc3VjY2VzczphPSEwLHJlYXNvbjp1fSl7Y29uc3QgXz10aGlzLiN0Lmxlbmd0aDt0aGlzLiN0LnB1c2gocyk7Y29uc3Qgdz17cmVmZXJlbmNlVG9rZW46cyxyZWZlcmVuY2VUb2tlblBvc2l0aW9uOl8saW5wdXQ6byxpbnB1dFR5cGU6dGhpcy4jci5pc09iamVjdChvKT8ib2JqZWN0Ijp0aGlzLiNyLmlzQXJyYXkobyk/ImFycmF5IjoidW5yZWNvZ25pemVkIixvdXRwdXQ6aSxzdWNjZXNzOmF9O3UmJih3LnJlYXNvbj11KSx0aGlzLiNlLnN0ZXBzLnB1c2godyksYXx8KHRoaXMuI2UuZmFpbGVkPSEwLHRoaXMuI2UuZmFpbGVkQXQ9Xyx0aGlzLiNlLm1lc3NhZ2U9dSl9fTtjb25zdCBEcD1jbGFzcyBFdmFsdWF0aW9uUmVhbG17bmFtZT0iIjtpc0FycmF5KHMpe3Rocm93IG5ldyB3cCgiUmVhbG0uaXNBcnJheShub2RlKSBtdXN0IGJlIGltcGxlbWVudGVkIGluIGEgc3ViY2xhc3MiKX1pc09iamVjdChzKXt0aHJvdyBuZXcgd3AoIlJlYWxtLmlzT2JqZWN0KG5vZGUpIG11c3QgYmUgaW1wbGVtZW50ZWQgaW4gYSBzdWJjbGFzcyIpfXNpemVPZihzKXt0aHJvdyBuZXcgd3AoIlJlYWxtLnNpemVPZihub2RlKSBtdXN0IGJlIGltcGxlbWVudGVkIGluIGEgc3ViY2xhc3MiKX1oYXMocyxvKXt0aHJvdyBuZXcgd3AoIlJlYWxtLmhhcyhub2RlKSBtdXN0IGJlIGltcGxlbWVudGVkIGluIGEgc3ViY2xhc3MiKX1ldmFsdWF0ZShzLG8pe3Rocm93IG5ldyB3cCgiUmVhbG0uZXZhbHVhdGUobm9kZSkgbXVzdCBiZSBpbXBsZW1lbnRlZCBpbiBhIHN1YmNsYXNzIil9fTtjb25zdCBMcD1jbGFzcyBKU09OUG9pbnRlckV2YWx1YXRlRXJyb3IgZXh0ZW5kcyB3cHt9O2NvbnN0IEZwPWNsYXNzIEpTT05Qb2ludGVySW5kZXhFcnJvciBleHRlbmRzIExwe307Y29uc3QgQnA9Y2xhc3MgSlNPTkV2YWx1YXRpb25SZWFsbSBleHRlbmRzIERwe25hbWU9Impzb24iO2lzQXJyYXkocyl7cmV0dXJuIEFycmF5LmlzQXJyYXkocyl9aXNPYmplY3Qocyl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBzJiZudWxsIT09cyYmIXRoaXMuaXNBcnJheShzKX1zaXplT2Yocyl7cmV0dXJuIHRoaXMuaXNBcnJheShzKT9zLmxlbmd0aDp0aGlzLmlzT2JqZWN0KHMpP09iamVjdC5rZXlzKHMpLmxlbmd0aDowfWhhcyhzLG8pe2lmKHRoaXMuaXNBcnJheShzKSl7Y29uc3QgaT1OdW1iZXIobyksYT1pPj4+MDtpZihpIT09YSl0aHJvdyBuZXcgRnAoYEludmFsaWQgYXJyYXkgaW5kZXggIiR7b30iOiBpbmRleCBtdXN0IGJlIGFuIHVuc2luZ2VkIDMyLWJpdCBpbnRlZ2VyYCx7cmVmZXJlbmNlVG9rZW46byxjdXJyZW50VmFsdWU6cyxyZWFsbTp0aGlzLm5hbWV9KTtyZXR1cm4gYTx0aGlzLnNpemVPZihzKSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsaSl9cmV0dXJuISF0aGlzLmlzT2JqZWN0KHMpJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxvKX1ldmFsdWF0ZShzLG8pe3JldHVybiB0aGlzLmlzQXJyYXkocyk/c1tOdW1iZXIobyldOnNbb119fTtjb25zdCAkcD1jbGFzcyBKU09OUG9pbnRlclR5cGVFcnJvciBleHRlbmRzIExwe307Y29uc3QgcXA9Y2xhc3MgSlNPTlBvaW50ZXJLZXlFcnJvciBleHRlbmRzIExwe30sZXNfZXZhbHVhdGU9KHMsbyx7c3RyaWN0QXJyYXlzOmk9ITAsc3RyaWN0T2JqZWN0czphPSEwLHJlYWxtOnU9bmV3IEJwLHRyYWNlOl89ITB9PXt9KT0+e2NvbnN0e3Jlc3VsdDp3LHRyZWU6eCx0cmFjZTpDfT1lc19wYXJzZShvLHt0cmFjZTohIV99KSxqPSJvYmplY3QiPT10eXBlb2YgXyYmbnVsbCE9PV8/bmV3IFJwKF8se2pzb25Qb2ludGVyOm8scmVmZXJlbmNlVG9rZW5zOngsc3RyaWN0QXJyYXlzOmksc3RyaWN0T2JqZWN0czphLHJlYWxtOnUsdmFsdWU6c30pOm51bGw7dHJ5e2xldCBfO2lmKCF3LnN1Y2Nlc3Mpe2xldCBpPWBJbnZhbGlkIEpTT04gUG9pbnRlcjogIiR7b30iLiBTeW50YXggZXJyb3IgYXQgcG9zaXRpb24gJHt3Lm1heE1hdGNoZWR9YDt0aHJvdyBpKz1DP2AsIGV4cGVjdGVkICR7Qy5pbmZlckV4cGVjdGF0aW9ucygpfWA6IiIsbmV3IExwKGkse2pzb25Qb2ludGVyOm8sY3VycmVudFZhbHVlOnMscmVhbG06dS5uYW1lfSl9cmV0dXJuIHgucmVkdWNlKCgocyx3LEMpPT57aWYodS5pc0FycmF5KHMpKXtpZihhcnJheV9kYXNoKHcpKXtpZihpKXRocm93IG5ldyBGcChgSW52YWxpZCBhcnJheSBpbmRleCAiLSIgYXQgcG9zaXRpb24gJHtDfSBpbiAiJHtvfSIuIFRoZSAiLSIgdG9rZW4gYWx3YXlzIHJlZmVycyB0byBhIG5vbmV4aXN0ZW50IGVsZW1lbnQgZHVyaW5nIGV2YWx1YXRpb25gLHtqc29uUG9pbnRlcjpvLHJlZmVyZW5jZVRva2Vuczp4LHJlZmVyZW5jZVRva2VuOncscmVmZXJlbmNlVG9rZW5Qb3NpdGlvbjpDLGN1cnJlbnRWYWx1ZTpzLHJlYWxtOnUubmFtZX0pO3JldHVybiBfPXUuZXZhbHVhdGUocyxTdHJpbmcodS5zaXplT2YocykpKSxudWxsPT1qfHxqLnN0ZXAoe3JlZmVyZW5jZVRva2VuOncsaW5wdXQ6cyxvdXRwdXQ6X30pLF99aWYoIWFycmF5X2luZGV4KHcpKXRocm93IG5ldyBGcChgSW52YWxpZCBhcnJheSBpbmRleCAiJHt3fSIgYXQgcG9zaXRpb24gJHtDfSBpbiAiJHtvfSI6IGluZGV4IE1VU1QgYmUgIjAiLCBvciBkaWdpdHMgd2l0aG91dCBhIGxlYWRpbmcgIjAiYCx7anNvblBvaW50ZXI6byxyZWZlcmVuY2VUb2tlbnM6eCxyZWZlcmVuY2VUb2tlbjp3LHJlZmVyZW5jZVRva2VuUG9zaXRpb246QyxjdXJyZW50VmFsdWU6cyxyZWFsbTp1Lm5hbWV9KTtjb25zdCBhPU51bWJlcih3KTtpZighTnVtYmVyLmlzU2FmZUludGVnZXIoYSkpdGhyb3cgbmV3IEZwKGBJbnZhbGlkIGFycmF5IGluZGV4ICIke3d9IiBhdCBwb3NpdGlvbiAke0N9IGluICIke299IjogaW5kZXggbXVzdCBiZSBhIHNhZmUgaW50ZWdlcmAse2pzb25Qb2ludGVyOm8scmVmZXJlbmNlVG9rZW5zOngscmVmZXJlbmNlVG9rZW46dyxyZWZlcmVuY2VUb2tlblBvc2l0aW9uOkMsY3VycmVudFZhbHVlOnMscmVhbG06dS5uYW1lfSk7aWYoIXUuaGFzKHMsdykmJmkpdGhyb3cgbmV3IEZwKGBJbnZhbGlkIGFycmF5IGluZGV4ICIke3d9IiBhdCBwb3NpdGlvbiAke0N9IGluICIke299IjogaW5kZXggbm90IGZvdW5kIGluIGFycmF5YCx7anNvblBvaW50ZXI6byxyZWZlcmVuY2VUb2tlbnM6eCxyZWZlcmVuY2VUb2tlbjp3LHJlZmVyZW5jZVRva2VuUG9zaXRpb246QyxjdXJyZW50VmFsdWU6cyxyZWFsbTp1Lm5hbWV9KTtyZXR1cm4gXz11LmV2YWx1YXRlKHMsdyksbnVsbD09anx8ai5zdGVwKHtyZWZlcmVuY2VUb2tlbjp3LGlucHV0OnMsb3V0cHV0Ol99KSxffWlmKHUuaXNPYmplY3Qocykpe2lmKCF1LmhhcyhzLHcpJiZhKXRocm93IG5ldyBxcChgSW52YWxpZCBvYmplY3Qga2V5ICIke3d9IiBhdCBwb3NpdGlvbiAke0N9IGluICIke299Ijoga2V5IG5vdCBmb3VuZCBpbiBvYmplY3RgLHtqc29uUG9pbnRlcjpvLHJlZmVyZW5jZVRva2Vuczp4LHJlZmVyZW5jZVRva2VuOncscmVmZXJlbmNlVG9rZW5Qb3NpdGlvbjpDLGN1cnJlbnRWYWx1ZTpzLHJlYWxtOnUubmFtZX0pO3JldHVybiBfPXUuZXZhbHVhdGUocyx3KSxudWxsPT1qfHxqLnN0ZXAoe3JlZmVyZW5jZVRva2VuOncsaW5wdXQ6cyxvdXRwdXQ6X30pLF99dGhyb3cgbmV3ICRwKGBJbnZhbGlkIHJlZmVyZW5jZSB0b2tlbiAiJHt3fSIgYXQgcG9zaXRpb24gJHtDfSBpbiAiJHtvfSI6IGNhbm5vdCBiZSBhcHBsaWVkIHRvIGEgbm9uLW9iamVjdC9ub24tYXJyYXkgdmFsdWVgLHtqc29uUG9pbnRlcjpvLHJlZmVyZW5jZVRva2Vuczp4LHJlZmVyZW5jZVRva2VuOncscmVmZXJlbmNlVG9rZW5Qb3NpdGlvbjpDLGN1cnJlbnRWYWx1ZTpzLHJlYWxtOnUubmFtZX0pfSkscyl9Y2F0Y2gocyl7aWYobnVsbD09anx8ai5zdGVwKHtyZWZlcmVuY2VUb2tlbjpzLnJlZmVyZW5jZVRva2VuLGlucHV0OnMuY3VycmVudFZhbHVlLHN1Y2Nlc3M6ITEscmVhc29uOnMubWVzc2FnZX0pLHMgaW5zdGFuY2VvZiBMcCl0aHJvdyBzO3Rocm93IG5ldyBMcCgiVW5leHBlY3RlZCBlcnJvciBkdXJpbmcgSlNPTiBQb2ludGVyIGV2YWx1YXRpb24iLHtjYXVzZTpzLGpzb25Qb2ludGVyOm8scmVmZXJlbmNlVG9rZW5zOnh9KX19O2NvbnN0IFZwPWNsYXNzIEFwaURPTUV2YWx1YXRpb25SZWFsbSBleHRlbmRzIERwe25hbWU9ImFwaWRvbSI7aXNBcnJheShzKXtyZXR1cm4gUnUocyl9aXNPYmplY3Qocyl7cmV0dXJuIE11KHMpfXNpemVPZihzKXtyZXR1cm4gdGhpcy5pc0FycmF5KHMpfHx0aGlzLmlzT2JqZWN0KHMpP3MubGVuZ3RoOjB9aGFzKHMsbyl7aWYodGhpcy5pc0FycmF5KHMpKXtjb25zdCBpPU51bWJlcihvKSxhPWk+Pj4wO2lmKGkhPT1hKXRocm93IG5ldyBGcChgSW52YWxpZCBhcnJheSBpbmRleCAiJHtvfSI6IGluZGV4IG11c3QgYmUgYW4gdW5zaW5nZWQgMzItYml0IGludGVnZXJgLHtyZWZlcmVuY2VUb2tlbjpvLGN1cnJlbnRWYWx1ZTpzLHJlYWxtOnRoaXMubmFtZX0pO3JldHVybiBhPHRoaXMuc2l6ZU9mKHMpfWlmKHRoaXMuaXNPYmplY3Qocykpe2NvbnN0IGk9cy5rZXlzKCksYT1uZXcgU2V0KGkpO2lmKGkubGVuZ3RoIT09YS5zaXplKXRocm93IG5ldyBxcChgT2JqZWN0IGtleSAiJHtvfSIgaXMgbm90IHVuaXF1ZSDigJQgSlNPTiBQb2ludGVyIHJlcXVpcmVzIHVuaXF1ZSBtZW1iZXIgbmFtZXNgLHtyZWZlcmVuY2VUb2tlbjpvLGN1cnJlbnRWYWx1ZTpzLHJlYWxtOnRoaXMubmFtZX0pO3JldHVybiBzLmhhc0tleShvKX1yZXR1cm4hMX1ldmFsdWF0ZShzLG8pe3JldHVybiB0aGlzLmlzQXJyYXkocyk/cy5nZXQoTnVtYmVyKG8pKTpzLmdldChvKX19LGFwaWRvbV9ldmFsdWF0ZT0ocyxvLGk9e30pPT5lc19ldmFsdWF0ZShzLG8sey4uLmkscmVhbG06bmV3IFZwfSk7Y2xhc3MgQ2FsbGJhY2sgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0iY2FsbGJhY2sifX1jb25zdCBVcD1DYWxsYmFjaztjbGFzcyBDb21wb25lbnRzIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9ImNvbXBvbmVudHMifWdldCBzY2hlbWFzKCl7cmV0dXJuIHRoaXMuZ2V0KCJzY2hlbWFzIil9c2V0IHNjaGVtYXMocyl7dGhpcy5zZXQoInNjaGVtYXMiLHMpfWdldCByZXNwb25zZXMoKXtyZXR1cm4gdGhpcy5nZXQoInJlc3BvbnNlcyIpfXNldCByZXNwb25zZXMocyl7dGhpcy5zZXQoInJlc3BvbnNlcyIscyl9Z2V0IHBhcmFtZXRlcnMoKXtyZXR1cm4gdGhpcy5nZXQoInBhcmFtZXRlcnMiKX1zZXQgcGFyYW1ldGVycyhzKXt0aGlzLnNldCgicGFyYW1ldGVycyIscyl9Z2V0IGV4YW1wbGVzKCl7cmV0dXJuIHRoaXMuZ2V0KCJleGFtcGxlcyIpfXNldCBleGFtcGxlcyhzKXt0aGlzLnNldCgiZXhhbXBsZXMiLHMpfWdldCByZXF1ZXN0Qm9kaWVzKCl7cmV0dXJuIHRoaXMuZ2V0KCJyZXF1ZXN0Qm9kaWVzIil9c2V0IHJlcXVlc3RCb2RpZXMocyl7dGhpcy5zZXQoInJlcXVlc3RCb2RpZXMiLHMpfWdldCBoZWFkZXJzKCl7cmV0dXJuIHRoaXMuZ2V0KCJoZWFkZXJzIil9c2V0IGhlYWRlcnMocyl7dGhpcy5zZXQoImhlYWRlcnMiLHMpfWdldCBzZWN1cml0eVNjaGVtZXMoKXtyZXR1cm4gdGhpcy5nZXQoInNlY3VyaXR5U2NoZW1lcyIpfXNldCBzZWN1cml0eVNjaGVtZXMocyl7dGhpcy5zZXQoInNlY3VyaXR5U2NoZW1lcyIscyl9Z2V0IGxpbmtzKCl7cmV0dXJuIHRoaXMuZ2V0KCJsaW5rcyIpfXNldCBsaW5rcyhzKXt0aGlzLnNldCgibGlua3MiLHMpfWdldCBjYWxsYmFja3MoKXtyZXR1cm4gdGhpcy5nZXQoImNhbGxiYWNrcyIpfXNldCBjYWxsYmFja3Mocyl7dGhpcy5zZXQoImNhbGxiYWNrcyIscyl9fWNvbnN0IHpwPUNvbXBvbmVudHM7Y2xhc3MgQ29udGFjdCBleHRlbmRzIFN1LlNoe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJjb250YWN0In1nZXQgbmFtZSgpe3JldHVybiB0aGlzLmdldCgibmFtZSIpfXNldCBuYW1lKHMpe3RoaXMuc2V0KCJuYW1lIixzKX1nZXQgdXJsKCl7cmV0dXJuIHRoaXMuZ2V0KCJ1cmwiKX1zZXQgdXJsKHMpe3RoaXMuc2V0KCJ1cmwiLHMpfWdldCBlbWFpbCgpe3JldHVybiB0aGlzLmdldCgiZW1haWwiKX1zZXQgZW1haWwocyl7dGhpcy5zZXQoImVtYWlsIixzKX19Y29uc3QgV3A9Q29udGFjdDtjbGFzcyBEaXNjcmltaW5hdG9yIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9ImRpc2NyaW1pbmF0b3IifWdldCBwcm9wZXJ0eU5hbWUoKXtyZXR1cm4gdGhpcy5nZXQoInByb3BlcnR5TmFtZSIpfXNldCBwcm9wZXJ0eU5hbWUocyl7dGhpcy5zZXQoInByb3BlcnR5TmFtZSIscyl9Z2V0IG1hcHBpbmcoKXtyZXR1cm4gdGhpcy5nZXQoIm1hcHBpbmciKX1zZXQgbWFwcGluZyhzKXt0aGlzLnNldCgibWFwcGluZyIscyl9fWNvbnN0IEpwPURpc2NyaW1pbmF0b3I7Y2xhc3MgRW5jb2RpbmcgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0iZW5jb2RpbmcifWdldCBjb250ZW50VHlwZSgpe3JldHVybiB0aGlzLmdldCgiY29udGVudFR5cGUiKX1zZXQgY29udGVudFR5cGUocyl7dGhpcy5zZXQoImNvbnRlbnRUeXBlIixzKX1nZXQgaGVhZGVycygpe3JldHVybiB0aGlzLmdldCgiaGVhZGVycyIpfXNldCBoZWFkZXJzKHMpe3RoaXMuc2V0KCJoZWFkZXJzIixzKX1nZXQgc3R5bGUoKXtyZXR1cm4gdGhpcy5nZXQoInN0eWxlIil9c2V0IHN0eWxlKHMpe3RoaXMuc2V0KCJzdHlsZSIscyl9Z2V0IGV4cGxvZGUoKXtyZXR1cm4gdGhpcy5nZXQoImV4cGxvZGUiKX1zZXQgZXhwbG9kZShzKXt0aGlzLnNldCgiZXhwbG9kZSIscyl9Z2V0IGFsbG93ZWRSZXNlcnZlZCgpe3JldHVybiB0aGlzLmdldCgiYWxsb3dlZFJlc2VydmVkIil9c2V0IGFsbG93ZWRSZXNlcnZlZChzKXt0aGlzLnNldCgiYWxsb3dlZFJlc2VydmVkIixzKX19Y29uc3QgSHA9RW5jb2Rpbmc7Y2xhc3MgRXhhbXBsZSBleHRlbmRzIFN1LlNoe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJleGFtcGxlIn1nZXQgc3VtbWFyeSgpe3JldHVybiB0aGlzLmdldCgic3VtbWFyeSIpfXNldCBzdW1tYXJ5KHMpe3RoaXMuc2V0KCJzdW1tYXJ5IixzKX1nZXQgZGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy5nZXQoImRlc2NyaXB0aW9uIil9c2V0IGRlc2NyaXB0aW9uKHMpe3RoaXMuc2V0KCJkZXNjcmlwdGlvbiIscyl9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuZ2V0KCJ2YWx1ZSIpfXNldCB2YWx1ZShzKXt0aGlzLnNldCgidmFsdWUiLHMpfWdldCBleHRlcm5hbFZhbHVlKCl7cmV0dXJuIHRoaXMuZ2V0KCJleHRlcm5hbFZhbHVlIil9c2V0IGV4dGVybmFsVmFsdWUocyl7dGhpcy5zZXQoImV4dGVybmFsVmFsdWUiLHMpfX1jb25zdCBLcD1FeGFtcGxlO2NsYXNzIEV4dGVybmFsRG9jdW1lbnRhdGlvbiBleHRlbmRzIFN1LlNoe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJleHRlcm5hbERvY3VtZW50YXRpb24ifWdldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLmdldCgiZGVzY3JpcHRpb24iKX1zZXQgZGVzY3JpcHRpb24ocyl7dGhpcy5zZXQoImRlc2NyaXB0aW9uIixzKX1nZXQgdXJsKCl7cmV0dXJuIHRoaXMuZ2V0KCJ1cmwiKX1zZXQgdXJsKHMpe3RoaXMuc2V0KCJ1cmwiLHMpfX1jb25zdCBHcD1FeHRlcm5hbERvY3VtZW50YXRpb247Y2xhc3MgSGVhZGVyIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9ImhlYWRlciJ9Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuaGFzS2V5KCJyZXF1aXJlZCIpP3RoaXMuZ2V0KCJyZXF1aXJlZCIpOm5ldyBTdS5iZCghMSl9c2V0IHJlcXVpcmVkKHMpe3RoaXMuc2V0KCJyZXF1aXJlZCIscyl9Z2V0IGRlcHJlY2F0ZWQoKXtyZXR1cm4gdGhpcy5oYXNLZXkoImRlcHJlY2F0ZWQiKT90aGlzLmdldCgiZGVwcmVjYXRlZCIpOm5ldyBTdS5iZCghMSl9c2V0IGRlcHJlY2F0ZWQocyl7dGhpcy5zZXQoImRlcHJlY2F0ZWQiLHMpfWdldCBhbGxvd0VtcHR5VmFsdWUoKXtyZXR1cm4gdGhpcy5nZXQoImFsbG93RW1wdHlWYWx1ZSIpfXNldCBhbGxvd0VtcHR5VmFsdWUocyl7dGhpcy5zZXQoImFsbG93RW1wdHlWYWx1ZSIscyl9Z2V0IHN0eWxlKCl7cmV0dXJuIHRoaXMuZ2V0KCJzdHlsZSIpfXNldCBzdHlsZShzKXt0aGlzLnNldCgic3R5bGUiLHMpfWdldCBleHBsb2RlKCl7cmV0dXJuIHRoaXMuZ2V0KCJleHBsb2RlIil9c2V0IGV4cGxvZGUocyl7dGhpcy5zZXQoImV4cGxvZGUiLHMpfWdldCBhbGxvd1Jlc2VydmVkKCl7cmV0dXJuIHRoaXMuZ2V0KCJhbGxvd1Jlc2VydmVkIil9c2V0IGFsbG93UmVzZXJ2ZWQocyl7dGhpcy5zZXQoImFsbG93UmVzZXJ2ZWQiLHMpfWdldCBzY2hlbWEoKXtyZXR1cm4gdGhpcy5nZXQoInNjaGVtYSIpfXNldCBzY2hlbWEocyl7dGhpcy5zZXQoInNjaGVtYSIscyl9Z2V0IGV4YW1wbGUoKXtyZXR1cm4gdGhpcy5nZXQoImV4YW1wbGUiKX1zZXQgZXhhbXBsZShzKXt0aGlzLnNldCgiZXhhbXBsZSIscyl9Z2V0IGV4YW1wbGVzKCl7cmV0dXJuIHRoaXMuZ2V0KCJleGFtcGxlcyIpfXNldCBleGFtcGxlcyhzKXt0aGlzLnNldCgiZXhhbXBsZXMiLHMpfWdldCBjb250ZW50UHJvcCgpe3JldHVybiB0aGlzLmdldCgiY29udGVudCIpfXNldCBjb250ZW50UHJvcChzKXt0aGlzLnNldCgiY29udGVudCIscyl9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShIZWFkZXIucHJvdG90eXBlLCJkZXNjcmlwdGlvbiIse2dldCgpe3JldHVybiB0aGlzLmdldCgiZGVzY3JpcHRpb24iKX0sc2V0KHMpe3RoaXMuc2V0KCJkZXNjcmlwdGlvbiIscyl9LGVudW1lcmFibGU6ITB9KTtjb25zdCBZcD1IZWFkZXI7Y2xhc3MgSW5mbyBleHRlbmRzIFN1LlNoe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJpbmZvIix0aGlzLmNsYXNzZXMucHVzaCgiaW5mbyIpfWdldCB0aXRsZSgpe3JldHVybiB0aGlzLmdldCgidGl0bGUiKX1zZXQgdGl0bGUocyl7dGhpcy5zZXQoInRpdGxlIixzKX1nZXQgZGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy5nZXQoImRlc2NyaXB0aW9uIil9c2V0IGRlc2NyaXB0aW9uKHMpe3RoaXMuc2V0KCJkZXNjcmlwdGlvbiIscyl9Z2V0IHRlcm1zT2ZTZXJ2aWNlKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0ZXJtc09mU2VydmljZSIpfXNldCB0ZXJtc09mU2VydmljZShzKXt0aGlzLnNldCgidGVybXNPZlNlcnZpY2UiLHMpfWdldCBjb250YWN0KCl7cmV0dXJuIHRoaXMuZ2V0KCJjb250YWN0Iil9c2V0IGNvbnRhY3Qocyl7dGhpcy5zZXQoImNvbnRhY3QiLHMpfWdldCBsaWNlbnNlKCl7cmV0dXJuIHRoaXMuZ2V0KCJsaWNlbnNlIil9c2V0IGxpY2Vuc2Uocyl7dGhpcy5zZXQoImxpY2Vuc2UiLHMpfWdldCB2ZXJzaW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJ2ZXJzaW9uIil9c2V0IHZlcnNpb24ocyl7dGhpcy5zZXQoInZlcnNpb24iLHMpfX1jb25zdCBYcD1JbmZvO2NsYXNzIExpY2Vuc2UgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0ibGljZW5zZSJ9Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5nZXQoIm5hbWUiKX1zZXQgbmFtZShzKXt0aGlzLnNldCgibmFtZSIscyl9Z2V0IHVybCgpe3JldHVybiB0aGlzLmdldCgidXJsIil9c2V0IHVybChzKXt0aGlzLnNldCgidXJsIixzKX19Y29uc3QgUXA9TGljZW5zZTtjbGFzcyBMaW5rIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9ImxpbmsifWdldCBvcGVyYXRpb25SZWYoKXtyZXR1cm4gdGhpcy5nZXQoIm9wZXJhdGlvblJlZiIpfXNldCBvcGVyYXRpb25SZWYocyl7dGhpcy5zZXQoIm9wZXJhdGlvblJlZiIscyl9Z2V0IG9wZXJhdGlvbklkKCl7cmV0dXJuIHRoaXMuZ2V0KCJvcGVyYXRpb25JZCIpfXNldCBvcGVyYXRpb25JZChzKXt0aGlzLnNldCgib3BlcmF0aW9uSWQiLHMpfWdldCBvcGVyYXRpb24oKXt2YXIgcyxvO3JldHVybiBJdSh0aGlzLm9wZXJhdGlvblJlZik/bnVsbD09PShzPXRoaXMub3BlcmF0aW9uUmVmKXx8dm9pZCAwPT09cz92b2lkIDA6cy5tZXRhLmdldCgib3BlcmF0aW9uIik6SXUodGhpcy5vcGVyYXRpb25JZCk/bnVsbD09PShvPXRoaXMub3BlcmF0aW9uSWQpfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLm1ldGEuZ2V0KCJvcGVyYXRpb24iKTp2b2lkIDB9c2V0IG9wZXJhdGlvbihzKXt0aGlzLnNldCgib3BlcmF0aW9uIixzKX1nZXQgcGFyYW1ldGVycygpe3JldHVybiB0aGlzLmdldCgicGFyYW1ldGVycyIpfXNldCBwYXJhbWV0ZXJzKHMpe3RoaXMuc2V0KCJwYXJhbWV0ZXJzIixzKX1nZXQgcmVxdWVzdEJvZHkoKXtyZXR1cm4gdGhpcy5nZXQoInJlcXVlc3RCb2R5Iil9c2V0IHJlcXVlc3RCb2R5KHMpe3RoaXMuc2V0KCJyZXF1ZXN0Qm9keSIscyl9Z2V0IGRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJkZXNjcmlwdGlvbiIpfXNldCBkZXNjcmlwdGlvbihzKXt0aGlzLnNldCgiZGVzY3JpcHRpb24iLHMpfWdldCBzZXJ2ZXIoKXtyZXR1cm4gdGhpcy5nZXQoInNlcnZlciIpfXNldCBzZXJ2ZXIocyl7dGhpcy5zZXQoInNlcnZlciIscyl9fWNvbnN0IFpwPUxpbms7Y2xhc3MgTWVkaWFUeXBlIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9Im1lZGlhVHlwZSJ9Z2V0IHNjaGVtYSgpe3JldHVybiB0aGlzLmdldCgic2NoZW1hIil9c2V0IHNjaGVtYShzKXt0aGlzLnNldCgic2NoZW1hIixzKX1nZXQgZXhhbXBsZSgpe3JldHVybiB0aGlzLmdldCgiZXhhbXBsZSIpfXNldCBleGFtcGxlKHMpe3RoaXMuc2V0KCJleGFtcGxlIixzKX1nZXQgZXhhbXBsZXMoKXtyZXR1cm4gdGhpcy5nZXQoImV4YW1wbGVzIil9c2V0IGV4YW1wbGVzKHMpe3RoaXMuc2V0KCJleGFtcGxlcyIscyl9Z2V0IGVuY29kaW5nKCl7cmV0dXJuIHRoaXMuZ2V0KCJlbmNvZGluZyIpfXNldCBlbmNvZGluZyhzKXt0aGlzLnNldCgiZW5jb2RpbmciLHMpfX1jb25zdCB0aD1NZWRpYVR5cGU7Y2xhc3MgT0F1dGhGbG93IGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9Im9BdXRoRmxvdyJ9Z2V0IGF1dGhvcml6YXRpb25VcmwoKXtyZXR1cm4gdGhpcy5nZXQoImF1dGhvcml6YXRpb25VcmwiKX1zZXQgYXV0aG9yaXphdGlvblVybChzKXt0aGlzLnNldCgiYXV0aG9yaXphdGlvblVybCIscyl9Z2V0IHRva2VuVXJsKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0b2tlblVybCIpfXNldCB0b2tlblVybChzKXt0aGlzLnNldCgidG9rZW5VcmwiLHMpfWdldCByZWZyZXNoVXJsKCl7cmV0dXJuIHRoaXMuZ2V0KCJyZWZyZXNoVXJsIil9c2V0IHJlZnJlc2hVcmwocyl7dGhpcy5zZXQoInJlZnJlc2hVcmwiLHMpfWdldCBzY29wZXMoKXtyZXR1cm4gdGhpcy5nZXQoInNjb3BlcyIpfXNldCBzY29wZXMocyl7dGhpcy5zZXQoInNjb3BlcyIscyl9fWNvbnN0IHJoPU9BdXRoRmxvdztjbGFzcyBPQXV0aEZsb3dzIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9Im9BdXRoRmxvd3MifWdldCBpbXBsaWNpdCgpe3JldHVybiB0aGlzLmdldCgiaW1wbGljaXQiKX1zZXQgaW1wbGljaXQocyl7dGhpcy5zZXQoImltcGxpY2l0IixzKX1nZXQgcGFzc3dvcmQoKXtyZXR1cm4gdGhpcy5nZXQoInBhc3N3b3JkIil9c2V0IHBhc3N3b3JkKHMpe3RoaXMuc2V0KCJwYXNzd29yZCIscyl9Z2V0IGNsaWVudENyZWRlbnRpYWxzKCl7cmV0dXJuIHRoaXMuZ2V0KCJjbGllbnRDcmVkZW50aWFscyIpfXNldCBjbGllbnRDcmVkZW50aWFscyhzKXt0aGlzLnNldCgiY2xpZW50Q3JlZGVudGlhbHMiLHMpfWdldCBhdXRob3JpemF0aW9uQ29kZSgpe3JldHVybiB0aGlzLmdldCgiYXV0aG9yaXphdGlvbkNvZGUiKX1zZXQgYXV0aG9yaXphdGlvbkNvZGUocyl7dGhpcy5zZXQoImF1dGhvcml6YXRpb25Db2RlIixzKX19Y29uc3QgdWg9T0F1dGhGbG93cztjbGFzcyBPcGVuYXBpIGV4dGVuZHMgU3UuT217Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9Im9wZW5hcGkiLHRoaXMuY2xhc3Nlcy5wdXNoKCJzcGVjLXZlcnNpb24iKSx0aGlzLmNsYXNzZXMucHVzaCgidmVyc2lvbiIpfX1jb25zdCBkaD1PcGVuYXBpO2NsYXNzIE9wZW5BcGkzXzAgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0ib3BlbkFwaTNfMCIsdGhpcy5jbGFzc2VzLnB1c2goImFwaSIpfWdldCBvcGVuYXBpKCl7cmV0dXJuIHRoaXMuZ2V0KCJvcGVuYXBpIil9c2V0IG9wZW5hcGkocyl7dGhpcy5zZXQoIm9wZW5hcGkiLHMpfWdldCBpbmZvKCl7cmV0dXJuIHRoaXMuZ2V0KCJpbmZvIil9c2V0IGluZm8ocyl7dGhpcy5zZXQoImluZm8iLHMpfWdldCBzZXJ2ZXJzKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZXJ2ZXJzIil9c2V0IHNlcnZlcnMocyl7dGhpcy5zZXQoInNlcnZlcnMiLHMpfWdldCBwYXRocygpe3JldHVybiB0aGlzLmdldCgicGF0aHMiKX1zZXQgcGF0aHMocyl7dGhpcy5zZXQoInBhdGhzIixzKX1nZXQgY29tcG9uZW50cygpe3JldHVybiB0aGlzLmdldCgiY29tcG9uZW50cyIpfXNldCBjb21wb25lbnRzKHMpe3RoaXMuc2V0KCJjb21wb25lbnRzIixzKX1nZXQgc2VjdXJpdHkoKXtyZXR1cm4gdGhpcy5nZXQoInNlY3VyaXR5Iil9c2V0IHNlY3VyaXR5KHMpe3RoaXMuc2V0KCJzZWN1cml0eSIscyl9Z2V0IHRhZ3MoKXtyZXR1cm4gdGhpcy5nZXQoInRhZ3MiKX1zZXQgdGFncyhzKXt0aGlzLnNldCgidGFncyIscyl9Z2V0IGV4dGVybmFsRG9jcygpe3JldHVybiB0aGlzLmdldCgiZXh0ZXJuYWxEb2NzIil9c2V0IGV4dGVybmFsRG9jcyhzKXt0aGlzLnNldCgiZXh0ZXJuYWxEb2NzIixzKX19Y29uc3QgZmg9T3BlbkFwaTNfMDtjbGFzcyBPcGVyYXRpb24gZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0ib3BlcmF0aW9uIn1nZXQgdGFncygpe3JldHVybiB0aGlzLmdldCgidGFncyIpfXNldCB0YWdzKHMpe3RoaXMuc2V0KCJ0YWdzIixzKX1nZXQgc3VtbWFyeSgpe3JldHVybiB0aGlzLmdldCgic3VtbWFyeSIpfXNldCBzdW1tYXJ5KHMpe3RoaXMuc2V0KCJzdW1tYXJ5IixzKX1nZXQgZGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy5nZXQoImRlc2NyaXB0aW9uIil9c2V0IGRlc2NyaXB0aW9uKHMpe3RoaXMuc2V0KCJkZXNjcmlwdGlvbiIscyl9c2V0IGV4dGVybmFsRG9jcyhzKXt0aGlzLnNldCgiZXh0ZXJuYWxEb2NzIixzKX1nZXQgZXh0ZXJuYWxEb2NzKCl7cmV0dXJuIHRoaXMuZ2V0KCJleHRlcm5hbERvY3MiKX1nZXQgb3BlcmF0aW9uSWQoKXtyZXR1cm4gdGhpcy5nZXQoIm9wZXJhdGlvbklkIil9c2V0IG9wZXJhdGlvbklkKHMpe3RoaXMuc2V0KCJvcGVyYXRpb25JZCIscyl9Z2V0IHBhcmFtZXRlcnMoKXtyZXR1cm4gdGhpcy5nZXQoInBhcmFtZXRlcnMiKX1zZXQgcGFyYW1ldGVycyhzKXt0aGlzLnNldCgicGFyYW1ldGVycyIscyl9Z2V0IHJlcXVlc3RCb2R5KCl7cmV0dXJuIHRoaXMuZ2V0KCJyZXF1ZXN0Qm9keSIpfXNldCByZXF1ZXN0Qm9keShzKXt0aGlzLnNldCgicmVxdWVzdEJvZHkiLHMpfWdldCByZXNwb25zZXMoKXtyZXR1cm4gdGhpcy5nZXQoInJlc3BvbnNlcyIpfXNldCByZXNwb25zZXMocyl7dGhpcy5zZXQoInJlc3BvbnNlcyIscyl9Z2V0IGNhbGxiYWNrcygpe3JldHVybiB0aGlzLmdldCgiY2FsbGJhY2tzIil9c2V0IGNhbGxiYWNrcyhzKXt0aGlzLnNldCgiY2FsbGJhY2tzIixzKX1nZXQgZGVwcmVjYXRlZCgpe3JldHVybiB0aGlzLmhhc0tleSgiZGVwcmVjYXRlZCIpP3RoaXMuZ2V0KCJkZXByZWNhdGVkIik6bmV3IFN1LmJkKCExKX1zZXQgZGVwcmVjYXRlZChzKXt0aGlzLnNldCgiZGVwcmVjYXRlZCIscyl9Z2V0IHNlY3VyaXR5KCl7cmV0dXJuIHRoaXMuZ2V0KCJzZWN1cml0eSIpfXNldCBzZWN1cml0eShzKXt0aGlzLnNldCgic2VjdXJpdHkiLHMpfWdldCBzZXJ2ZXJzKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZXZlcnMiKX1zZXQgc2VydmVycyhzKXt0aGlzLnNldCgic2VydmVycyIscyl9fWNvbnN0IHZoPU9wZXJhdGlvbjtjbGFzcyBQYXJhbWV0ZXIgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0icGFyYW1ldGVyIn1nZXQgbmFtZSgpe3JldHVybiB0aGlzLmdldCgibmFtZSIpfXNldCBuYW1lKHMpe3RoaXMuc2V0KCJuYW1lIixzKX1nZXQgaW4oKXtyZXR1cm4gdGhpcy5nZXQoImluIil9c2V0IGluKHMpe3RoaXMuc2V0KCJpbiIscyl9Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuaGFzS2V5KCJyZXF1aXJlZCIpP3RoaXMuZ2V0KCJyZXF1aXJlZCIpOm5ldyBTdS5iZCghMSl9c2V0IHJlcXVpcmVkKHMpe3RoaXMuc2V0KCJyZXF1aXJlZCIscyl9Z2V0IGRlcHJlY2F0ZWQoKXtyZXR1cm4gdGhpcy5oYXNLZXkoImRlcHJlY2F0ZWQiKT90aGlzLmdldCgiZGVwcmVjYXRlZCIpOm5ldyBTdS5iZCghMSl9c2V0IGRlcHJlY2F0ZWQocyl7dGhpcy5zZXQoImRlcHJlY2F0ZWQiLHMpfWdldCBhbGxvd0VtcHR5VmFsdWUoKXtyZXR1cm4gdGhpcy5nZXQoImFsbG93RW1wdHlWYWx1ZSIpfXNldCBhbGxvd0VtcHR5VmFsdWUocyl7dGhpcy5zZXQoImFsbG93RW1wdHlWYWx1ZSIscyl9Z2V0IHN0eWxlKCl7cmV0dXJuIHRoaXMuZ2V0KCJzdHlsZSIpfXNldCBzdHlsZShzKXt0aGlzLnNldCgic3R5bGUiLHMpfWdldCBleHBsb2RlKCl7cmV0dXJuIHRoaXMuZ2V0KCJleHBsb2RlIil9c2V0IGV4cGxvZGUocyl7dGhpcy5zZXQoImV4cGxvZGUiLHMpfWdldCBhbGxvd1Jlc2VydmVkKCl7cmV0dXJuIHRoaXMuZ2V0KCJhbGxvd1Jlc2VydmVkIil9c2V0IGFsbG93UmVzZXJ2ZWQocyl7dGhpcy5zZXQoImFsbG93UmVzZXJ2ZWQiLHMpfWdldCBzY2hlbWEoKXtyZXR1cm4gdGhpcy5nZXQoInNjaGVtYSIpfXNldCBzY2hlbWEocyl7dGhpcy5zZXQoInNjaGVtYSIscyl9Z2V0IGV4YW1wbGUoKXtyZXR1cm4gdGhpcy5nZXQoImV4YW1wbGUiKX1zZXQgZXhhbXBsZShzKXt0aGlzLnNldCgiZXhhbXBsZSIscyl9Z2V0IGV4YW1wbGVzKCl7cmV0dXJuIHRoaXMuZ2V0KCJleGFtcGxlcyIpfXNldCBleGFtcGxlcyhzKXt0aGlzLnNldCgiZXhhbXBsZXMiLHMpfWdldCBjb250ZW50UHJvcCgpe3JldHVybiB0aGlzLmdldCgiY29udGVudCIpfXNldCBjb250ZW50UHJvcChzKXt0aGlzLnNldCgiY29udGVudCIscyl9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShQYXJhbWV0ZXIucHJvdG90eXBlLCJkZXNjcmlwdGlvbiIse2dldCgpe3JldHVybiB0aGlzLmdldCgiZGVzY3JpcHRpb24iKX0sc2V0KHMpe3RoaXMuc2V0KCJkZXNjcmlwdGlvbiIscyl9LGVudW1lcmFibGU6ITB9KTtjb25zdCBfaD1QYXJhbWV0ZXI7Y2xhc3MgUGF0aEl0ZW0gZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0icGF0aEl0ZW0ifWdldCAkcmVmKCl7cmV0dXJuIHRoaXMuZ2V0KCIkcmVmIil9c2V0ICRyZWYocyl7dGhpcy5zZXQoIiRyZWYiLHMpfWdldCBzdW1tYXJ5KCl7cmV0dXJuIHRoaXMuZ2V0KCJzdW1tYXJ5Iil9c2V0IHN1bW1hcnkocyl7dGhpcy5zZXQoInN1bW1hcnkiLHMpfWdldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLmdldCgiZGVzY3JpcHRpb24iKX1zZXQgZGVzY3JpcHRpb24ocyl7dGhpcy5zZXQoImRlc2NyaXB0aW9uIixzKX1nZXQgR0VUKCl7cmV0dXJuIHRoaXMuZ2V0KCJnZXQiKX1zZXQgR0VUKHMpe3RoaXMuc2V0KCJHRVQiLHMpfWdldCBQVVQoKXtyZXR1cm4gdGhpcy5nZXQoInB1dCIpfXNldCBQVVQocyl7dGhpcy5zZXQoIlBVVCIscyl9Z2V0IFBPU1QoKXtyZXR1cm4gdGhpcy5nZXQoInBvc3QiKX1zZXQgUE9TVChzKXt0aGlzLnNldCgiUE9TVCIscyl9Z2V0IERFTEVURSgpe3JldHVybiB0aGlzLmdldCgiZGVsZXRlIil9c2V0IERFTEVURShzKXt0aGlzLnNldCgiREVMRVRFIixzKX1nZXQgT1BUSU9OUygpe3JldHVybiB0aGlzLmdldCgib3B0aW9ucyIpfXNldCBPUFRJT05TKHMpe3RoaXMuc2V0KCJPUFRJT05TIixzKX1nZXQgSEVBRCgpe3JldHVybiB0aGlzLmdldCgiaGVhZCIpfXNldCBIRUFEKHMpe3RoaXMuc2V0KCJIRUFEIixzKX1nZXQgUEFUQ0goKXtyZXR1cm4gdGhpcy5nZXQoInBhdGNoIil9c2V0IFBBVENIKHMpe3RoaXMuc2V0KCJQQVRDSCIscyl9Z2V0IFRSQUNFKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0cmFjZSIpfXNldCBUUkFDRShzKXt0aGlzLnNldCgiVFJBQ0UiLHMpfWdldCBzZXJ2ZXJzKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZXJ2ZXJzIil9c2V0IHNlcnZlcnMocyl7dGhpcy5zZXQoInNlcnZlcnMiLHMpfWdldCBwYXJhbWV0ZXJzKCl7cmV0dXJuIHRoaXMuZ2V0KCJwYXJhbWV0ZXJzIil9c2V0IHBhcmFtZXRlcnMocyl7dGhpcy5zZXQoInBhcmFtZXRlcnMiLHMpfX1jb25zdCB3aD1QYXRoSXRlbTtjbGFzcyBQYXRocyBleHRlbmRzIFN1LlNoe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJwYXRocyJ9fWNvbnN0IE9oPVBhdGhzO2NsYXNzIFJlZmVyZW5jZSBleHRlbmRzIFN1LlNoe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJyZWZlcmVuY2UiLHRoaXMuY2xhc3Nlcy5wdXNoKCJvcGVuYXBpLXJlZmVyZW5jZSIpfWdldCAkcmVmKCl7cmV0dXJuIHRoaXMuZ2V0KCIkcmVmIil9c2V0ICRyZWYocyl7dGhpcy5zZXQoIiRyZWYiLHMpfX1jb25zdCBqaD1SZWZlcmVuY2U7Y2xhc3MgUmVxdWVzdEJvZHkgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0icmVxdWVzdEJvZHkifWdldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLmdldCgiZGVzY3JpcHRpb24iKX1zZXQgZGVzY3JpcHRpb24ocyl7dGhpcy5zZXQoImRlc2NyaXB0aW9uIixzKX1nZXQgY29udGVudFByb3AoKXtyZXR1cm4gdGhpcy5nZXQoImNvbnRlbnQiKX1zZXQgY29udGVudFByb3Aocyl7dGhpcy5zZXQoImNvbnRlbnQiLHMpfWdldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLmhhc0tleSgicmVxdWlyZWQiKT90aGlzLmdldCgicmVxdWlyZWQiKTpuZXcgU3UuYmQoITEpfXNldCByZXF1aXJlZChzKXt0aGlzLnNldCgicmVxdWlyZWQiLHMpfX1jb25zdCBJaD1SZXF1ZXN0Qm9keTtjbGFzcyBSZXNwb25zZV9SZXNwb25zZSBleHRlbmRzIFN1LlNoe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJyZXNwb25zZSJ9Z2V0IGRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJkZXNjcmlwdGlvbiIpfXNldCBkZXNjcmlwdGlvbihzKXt0aGlzLnNldCgiZGVzY3JpcHRpb24iLHMpfWdldCBoZWFkZXJzKCl7cmV0dXJuIHRoaXMuZ2V0KCJoZWFkZXJzIil9c2V0IGhlYWRlcnMocyl7dGhpcy5zZXQoImhlYWRlcnMiLHMpfWdldCBjb250ZW50UHJvcCgpe3JldHVybiB0aGlzLmdldCgiY29udGVudCIpfXNldCBjb250ZW50UHJvcChzKXt0aGlzLnNldCgiY29udGVudCIscyl9Z2V0IGxpbmtzKCl7cmV0dXJuIHRoaXMuZ2V0KCJsaW5rcyIpfXNldCBsaW5rcyhzKXt0aGlzLnNldCgibGlua3MiLHMpfX1jb25zdCBQaD1SZXNwb25zZV9SZXNwb25zZTtjbGFzcyBSZXNwb25zZXMgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0icmVzcG9uc2VzIn1nZXQgZGVmYXVsdCgpe3JldHVybiB0aGlzLmdldCgiZGVmYXVsdCIpfXNldCBkZWZhdWx0KHMpe3RoaXMuc2V0KCJkZWZhdWx0IixzKX19Y29uc3QgUmg9UmVzcG9uc2VzO2NvbnN0IERoPWNsYXNzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3IgZXh0ZW5kcyBLb3t9O2NsYXNzIEpTT05TY2hlbWEgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0iSlNPTlNjaGVtYURyYWZ0NCJ9Z2V0IGlkUHJvcCgpe3JldHVybiB0aGlzLmdldCgiaWQiKX1zZXQgaWRQcm9wKHMpe3RoaXMuc2V0KCJpZCIscyl9Z2V0ICRzY2hlbWEoKXtyZXR1cm4gdGhpcy5nZXQoIiRzY2hlbWEiKX1zZXQgJHNjaGVtYShzKXt0aGlzLnNldCgiJHNjaGVtYSIscyl9Z2V0IG11bHRpcGxlT2YoKXtyZXR1cm4gdGhpcy5nZXQoIm11bHRpcGxlT2YiKX1zZXQgbXVsdGlwbGVPZihzKXt0aGlzLnNldCgibXVsdGlwbGVPZiIscyl9Z2V0IG1heGltdW0oKXtyZXR1cm4gdGhpcy5nZXQoIm1heGltdW0iKX1zZXQgbWF4aW11bShzKXt0aGlzLnNldCgibWF4aW11bSIscyl9Z2V0IGV4Y2x1c2l2ZU1heGltdW0oKXtyZXR1cm4gdGhpcy5nZXQoImV4Y2x1c2l2ZU1heGltdW0iKX1zZXQgZXhjbHVzaXZlTWF4aW11bShzKXt0aGlzLnNldCgiZXhjbHVzaXZlTWF4aW11bSIscyl9Z2V0IG1pbmltdW0oKXtyZXR1cm4gdGhpcy5nZXQoIm1pbmltdW0iKX1zZXQgbWluaW11bShzKXt0aGlzLnNldCgibWluaW11bSIscyl9Z2V0IGV4Y2x1c2l2ZU1pbmltdW0oKXtyZXR1cm4gdGhpcy5nZXQoImV4Y2x1c2l2ZU1pbmltdW0iKX1zZXQgZXhjbHVzaXZlTWluaW11bShzKXt0aGlzLnNldCgiZXhjbHVzaXZlTWluaW11bSIscyl9Z2V0IG1heExlbmd0aCgpe3JldHVybiB0aGlzLmdldCgibWF4TGVuZ3RoIil9c2V0IG1heExlbmd0aChzKXt0aGlzLnNldCgibWF4TGVuZ3RoIixzKX1nZXQgbWluTGVuZ3RoKCl7cmV0dXJuIHRoaXMuZ2V0KCJtaW5MZW5ndGgiKX1zZXQgbWluTGVuZ3RoKHMpe3RoaXMuc2V0KCJtaW5MZW5ndGgiLHMpfWdldCBwYXR0ZXJuKCl7cmV0dXJuIHRoaXMuZ2V0KCJwYXR0ZXJuIil9c2V0IHBhdHRlcm4ocyl7dGhpcy5zZXQoInBhdHRlcm4iLHMpfWdldCBhZGRpdGlvbmFsSXRlbXMoKXtyZXR1cm4gdGhpcy5nZXQoImFkZGl0aW9uYWxJdGVtcyIpfXNldCBhZGRpdGlvbmFsSXRlbXMocyl7dGhpcy5zZXQoImFkZGl0aW9uYWxJdGVtcyIscyl9Z2V0IGl0ZW1zKCl7cmV0dXJuIHRoaXMuZ2V0KCJpdGVtcyIpfXNldCBpdGVtcyhzKXt0aGlzLnNldCgiaXRlbXMiLHMpfWdldCBtYXhJdGVtcygpe3JldHVybiB0aGlzLmdldCgibWF4SXRlbXMiKX1zZXQgbWF4SXRlbXMocyl7dGhpcy5zZXQoIm1heEl0ZW1zIixzKX1nZXQgbWluSXRlbXMoKXtyZXR1cm4gdGhpcy5nZXQoIm1pbkl0ZW1zIil9c2V0IG1pbkl0ZW1zKHMpe3RoaXMuc2V0KCJtaW5JdGVtcyIscyl9Z2V0IHVuaXF1ZUl0ZW1zKCl7cmV0dXJuIHRoaXMuZ2V0KCJ1bmlxdWVJdGVtcyIpfXNldCB1bmlxdWVJdGVtcyhzKXt0aGlzLnNldCgidW5pcXVlSXRlbXMiLHMpfWdldCBtYXhQcm9wZXJ0aWVzKCl7cmV0dXJuIHRoaXMuZ2V0KCJtYXhQcm9wZXJ0aWVzIil9c2V0IG1heFByb3BlcnRpZXMocyl7dGhpcy5zZXQoIm1heFByb3BlcnRpZXMiLHMpfWdldCBtaW5Qcm9wZXJ0aWVzKCl7cmV0dXJuIHRoaXMuZ2V0KCJtaW5Qcm9wZXJ0aWVzIil9c2V0IG1pblByb3BlcnRpZXMocyl7dGhpcy5zZXQoIm1pblByb3BlcnRpZXMiLHMpfWdldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLmdldCgicmVxdWlyZWQiKX1zZXQgcmVxdWlyZWQocyl7dGhpcy5zZXQoInJlcXVpcmVkIixzKX1nZXQgcHJvcGVydGllcygpe3JldHVybiB0aGlzLmdldCgicHJvcGVydGllcyIpfXNldCBwcm9wZXJ0aWVzKHMpe3RoaXMuc2V0KCJwcm9wZXJ0aWVzIixzKX1nZXQgYWRkaXRpb25hbFByb3BlcnRpZXMoKXtyZXR1cm4gdGhpcy5nZXQoImFkZGl0aW9uYWxQcm9wZXJ0aWVzIil9c2V0IGFkZGl0aW9uYWxQcm9wZXJ0aWVzKHMpe3RoaXMuc2V0KCJhZGRpdGlvbmFsUHJvcGVydGllcyIscyl9Z2V0IHBhdHRlcm5Qcm9wZXJ0aWVzKCl7cmV0dXJuIHRoaXMuZ2V0KCJwYXR0ZXJuUHJvcGVydGllcyIpfXNldCBwYXR0ZXJuUHJvcGVydGllcyhzKXt0aGlzLnNldCgicGF0dGVyblByb3BlcnRpZXMiLHMpfWdldCBkZXBlbmRlbmNpZXMoKXtyZXR1cm4gdGhpcy5nZXQoImRlcGVuZGVuY2llcyIpfXNldCBkZXBlbmRlbmNpZXMocyl7dGhpcy5zZXQoImRlcGVuZGVuY2llcyIscyl9Z2V0IGVudW0oKXtyZXR1cm4gdGhpcy5nZXQoImVudW0iKX1zZXQgZW51bShzKXt0aGlzLnNldCgiZW51bSIscyl9Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy5nZXQoInR5cGUiKX1zZXQgdHlwZShzKXt0aGlzLnNldCgidHlwZSIscyl9Z2V0IGFsbE9mKCl7cmV0dXJuIHRoaXMuZ2V0KCJhbGxPZiIpfXNldCBhbGxPZihzKXt0aGlzLnNldCgiYWxsT2YiLHMpfWdldCBhbnlPZigpe3JldHVybiB0aGlzLmdldCgiYW55T2YiKX1zZXQgYW55T2Yocyl7dGhpcy5zZXQoImFueU9mIixzKX1nZXQgb25lT2YoKXtyZXR1cm4gdGhpcy5nZXQoIm9uZU9mIil9c2V0IG9uZU9mKHMpe3RoaXMuc2V0KCJvbmVPZiIscyl9Z2V0IG5vdCgpe3JldHVybiB0aGlzLmdldCgibm90Iil9c2V0IG5vdChzKXt0aGlzLnNldCgibm90IixzKX1nZXQgZGVmaW5pdGlvbnMoKXtyZXR1cm4gdGhpcy5nZXQoImRlZmluaXRpb25zIil9c2V0IGRlZmluaXRpb25zKHMpe3RoaXMuc2V0KCJkZWZpbml0aW9ucyIscyl9Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0aXRsZSIpfXNldCB0aXRsZShzKXt0aGlzLnNldCgidGl0bGUiLHMpfWdldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLmdldCgiZGVzY3JpcHRpb24iKX1zZXQgZGVzY3JpcHRpb24ocyl7dGhpcy5zZXQoImRlc2NyaXB0aW9uIixzKX1nZXQgZGVmYXVsdCgpe3JldHVybiB0aGlzLmdldCgiZGVmYXVsdCIpfXNldCBkZWZhdWx0KHMpe3RoaXMuc2V0KCJkZWZhdWx0IixzKX1nZXQgZm9ybWF0KCl7cmV0dXJuIHRoaXMuZ2V0KCJmb3JtYXQiKX1zZXQgZm9ybWF0KHMpe3RoaXMuc2V0KCJmb3JtYXQiLHMpfWdldCBiYXNlKCl7cmV0dXJuIHRoaXMuZ2V0KCJiYXNlIil9c2V0IGJhc2Uocyl7dGhpcy5zZXQoImJhc2UiLHMpfWdldCBsaW5rcygpe3JldHVybiB0aGlzLmdldCgibGlua3MiKX1zZXQgbGlua3Mocyl7dGhpcy5zZXQoImxpbmtzIixzKX1nZXQgbWVkaWEoKXtyZXR1cm4gdGhpcy5nZXQoIm1lZGlhIil9c2V0IG1lZGlhKHMpe3RoaXMuc2V0KCJtZWRpYSIscyl9Z2V0IHJlYWRPbmx5KCl7cmV0dXJuIHRoaXMuZ2V0KCJyZWFkT25seSIpfXNldCByZWFkT25seShzKXt0aGlzLnNldCgicmVhZE9ubHkiLHMpfX1jb25zdCBMaD1KU09OU2NoZW1hO2NsYXNzIEpTT05SZWZlcmVuY2UgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0iSlNPTlJlZmVyZW5jZSIsdGhpcy5jbGFzc2VzLnB1c2goImpzb24tcmVmZXJlbmNlIil9Z2V0ICRyZWYoKXtyZXR1cm4gdGhpcy5nZXQoIiRyZWYiKX1zZXQgJHJlZihzKXt0aGlzLnNldCgiJHJlZiIscyl9fWNvbnN0IEZoPUpTT05SZWZlcmVuY2U7Y2xhc3MgTWVkaWEgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0ibWVkaWEifWdldCBiaW5hcnlFbmNvZGluZygpe3JldHVybiB0aGlzLmdldCgiYmluYXJ5RW5jb2RpbmciKX1zZXQgYmluYXJ5RW5jb2Rpbmcocyl7dGhpcy5zZXQoImJpbmFyeUVuY29kaW5nIixzKX1nZXQgdHlwZSgpe3JldHVybiB0aGlzLmdldCgidHlwZSIpfXNldCB0eXBlKHMpe3RoaXMuc2V0KCJ0eXBlIixzKX19Y29uc3QgSmg9TWVkaWE7Y2xhc3MgTGlua0Rlc2NyaXB0aW9uIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9ImxpbmtEZXNjcmlwdGlvbiJ9Z2V0IGhyZWYoKXtyZXR1cm4gdGhpcy5nZXQoImhyZWYiKX1zZXQgaHJlZihzKXt0aGlzLnNldCgiaHJlZiIscyl9Z2V0IHJlbCgpe3JldHVybiB0aGlzLmdldCgicmVsIil9c2V0IHJlbChzKXt0aGlzLnNldCgicmVsIixzKX1nZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy5nZXQoInRpdGxlIil9c2V0IHRpdGxlKHMpe3RoaXMuc2V0KCJ0aXRsZSIscyl9Z2V0IHRhcmdldFNjaGVtYSgpe3JldHVybiB0aGlzLmdldCgidGFyZ2V0U2NoZW1hIil9c2V0IHRhcmdldFNjaGVtYShzKXt0aGlzLnNldCgidGFyZ2V0U2NoZW1hIixzKX1nZXQgbWVkaWFUeXBlKCl7cmV0dXJuIHRoaXMuZ2V0KCJtZWRpYVR5cGUiKX1zZXQgbWVkaWFUeXBlKHMpe3RoaXMuc2V0KCJtZWRpYVR5cGUiLHMpfWdldCBtZXRob2QoKXtyZXR1cm4gdGhpcy5nZXQoIm1ldGhvZCIpfXNldCBtZXRob2Qocyl7dGhpcy5zZXQoIm1ldGhvZCIscyl9Z2V0IGVuY1R5cGUoKXtyZXR1cm4gdGhpcy5nZXQoImVuY1R5cGUiKX1zZXQgZW5jVHlwZShzKXt0aGlzLnNldCgiZW5jVHlwZSIscyl9Z2V0IHNjaGVtYSgpe3JldHVybiB0aGlzLmdldCgic2NoZW1hIil9c2V0IHNjaGVtYShzKXt0aGlzLnNldCgic2NoZW1hIixzKX19Y29uc3QgSGg9TGlua0Rlc2NyaXB0aW9uO2NvbnN0IEtoPV9jdXJyeTIoKGZ1bmN0aW9uIG1hcE9iakluZGV4ZWQocyxvKXtyZXR1cm4gX2FycmF5UmVkdWNlKChmdW5jdGlvbihpLGEpe3JldHVybiBpW2FdPXMob1thXSxhLG8pLGl9KSx7fSxlYShvKSl9KSk7Y29uc3QgR2g9X2N1cnJ5MSgoZnVuY3Rpb24gaXNOaWwocyl7cmV0dXJuIG51bGw9PXN9KSk7dmFyIFFoPV9jdXJyeTIoKGZ1bmN0aW9uIGhhc1BhdGgocyxvKXtpZigwPT09cy5sZW5ndGh8fEdoKG8pKXJldHVybiExO2Zvcih2YXIgaT1vLGE9MDthPHMubGVuZ3RoOyl7aWYoR2goaSl8fCFfaGFzKHNbYV0saSkpcmV0dXJuITE7aT1pW3NbYV1dLGErPTF9cmV0dXJuITB9KSk7Y29uc3QgdGQ9UWg7dmFyIHNkPV9jdXJyeTIoKGZ1bmN0aW9uIGhhcyhzLG8pe3JldHVybiB0ZChbc10sbyl9KSk7Y29uc3QgaWQ9c2Q7Y29uc3QgY2Q9X2N1cnJ5MygoZnVuY3Rpb24gcHJvcFNhdGlzZmllcyhzLG8saSl7cmV0dXJuIHMoRGEobyxpKSl9KSk7dmFyIGxkPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gWERyb3BXaGlsZShzLG8pe3RoaXMueGY9byx0aGlzLmY9c31yZXR1cm4gWERyb3BXaGlsZS5wcm90b3R5cGVbIkBAdHJhbnNkdWNlci9pbml0Il09X3hmQmFzZV9pbml0LFhEcm9wV2hpbGUucHJvdG90eXBlWyJAQHRyYW5zZHVjZXIvcmVzdWx0Il09X3hmQmFzZV9yZXN1bHQsWERyb3BXaGlsZS5wcm90b3R5cGVbIkBAdHJhbnNkdWNlci9zdGVwIl09ZnVuY3Rpb24ocyxvKXtpZih0aGlzLmYpe2lmKHRoaXMuZihvKSlyZXR1cm4gczt0aGlzLmY9bnVsbH1yZXR1cm4gdGhpcy54ZlsiQEB0cmFuc2R1Y2VyL3N0ZXAiXShzLG8pfSxYRHJvcFdoaWxlfSgpO2Z1bmN0aW9uIF94ZHJvcFdoaWxlKHMpe3JldHVybiBmdW5jdGlvbihvKXtyZXR1cm4gbmV3IGxkKHMsbyl9fWNvbnN0IHVkPV9jdXJyeTIoX2Rpc3BhdGNoYWJsZShbImRyb3BXaGlsZSJdLF94ZHJvcFdoaWxlLChmdW5jdGlvbiBkcm9wV2hpbGUocyxvKXtmb3IodmFyIGk9MCxhPW8ubGVuZ3RoO2k8YSYmcyhvW2ldKTspaSs9MTtyZXR1cm4gamEoaSwxLzAsbyl9KSkpO2NvbnN0IGRkPXphKChmdW5jdGlvbihzLG8pe3JldHVybiBwaXBlKEhhKCIiKSx1ZChzYyhzKSkscmMoIiIpKShvKX0pKSxkZXJlZmVyZW5jZT0ocyxvKT0+e2NvbnN0IGk9TmEocyxvKTtyZXR1cm4gS2goKHM9PntpZihmdShzKSYmaWQoIiRyZWYiLHMpJiZjZChKYywiJHJlZiIscykpe2NvbnN0IG89dHAoWyIkcmVmIl0scyksYT1kZCgiIy8iLG8pO3JldHVybiB0cChhLnNwbGl0KCIvIiksaSl9cmV0dXJuIGZ1KHMpP2RlcmVmZXJlbmNlKHMsaSk6c30pLHMpfSxlbXB0eUVsZW1lbnQ9cz0+e2NvbnN0IG89cy5tZXRhLmxlbmd0aD4wP2Nsb25lRGVlcChzLm1ldGEpOnZvaWQgMCxpPXMuYXR0cmlidXRlcy5sZW5ndGg+MD9jbG9uZURlZXAocy5hdHRyaWJ1dGVzKTp2b2lkIDA7cmV0dXJuIG5ldyBzLmNvbnN0cnVjdG9yKHZvaWQgMCxvLGkpfSxjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZD0ocyxvKT0+by5jbG9uZSYmby5pc01lcmdlYWJsZUVsZW1lbnQocyk/ZGVlcG1lcmdlKGVtcHR5RWxlbWVudChzKSxzLG8pOnMsbWQ9e2Nsb25lOiEwLGlzTWVyZ2VhYmxlRWxlbWVudDpzPT5NdShzKXx8UnUocyksYXJyYXlFbGVtZW50TWVyZ2U6KHMsbyxpKT0+cy5jb25jYXQobylbImZhbnRhc3ktbGFuZC9tYXAiXSgocz0+Y2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQocyxpKSkpLG9iamVjdEVsZW1lbnRNZXJnZToocyxvLGkpPT57Y29uc3QgYT1NdShzKT9lbXB0eUVsZW1lbnQocyk6ZW1wdHlFbGVtZW50KG8pO3JldHVybiBNdShzKSYmcy5mb3JFYWNoKCgocyxvLHUpPT57Y29uc3QgXz1jbG9uZVNoYWxsb3codSk7Xy52YWx1ZT1jbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZChzLGkpLGEuY29udGVudC5wdXNoKF8pfSkpLG8uZm9yRWFjaCgoKG8sdSxfKT0+e2NvbnN0IHc9c2VyaWFsaXplcnNfdmFsdWUodSk7bGV0IHg7aWYoTXUocykmJnMuaGFzS2V5KHcpJiZpLmlzTWVyZ2VhYmxlRWxlbWVudChvKSl7Y29uc3QgYT1zLmdldCh3KTt4PWNsb25lU2hhbGxvdyhfKSx4LnZhbHVlPSgocyxvKT0+e2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBvLmN1c3RvbU1lcmdlKXJldHVybiBkZWVwbWVyZ2U7Y29uc3QgaT1vLmN1c3RvbU1lcmdlKHMsbyk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGk/aTpkZWVwbWVyZ2V9KSh1LGkpKGEsbyxpKX1lbHNlIHg9Y2xvbmVTaGFsbG93KF8pLHgudmFsdWU9Y2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQobyxpKTthLnJlbW92ZSh3KSxhLmNvbnRlbnQucHVzaCh4KX0pKSxhfSxjdXN0b21NZXJnZTp2b2lkIDAsY3VzdG9tTWV0YU1lcmdlOnZvaWQgMCxjdXN0b21BdHRyaWJ1dGVzTWVyZ2U6dm9pZCAwfSxkZWVwbWVyZ2U9KHMsbyxpKT0+e3ZhciBhLHUsXztjb25zdCB3PXsuLi5tZCwuLi5pfTt3LmlzTWVyZ2VhYmxlRWxlbWVudD1udWxsIT09KGE9dy5pc01lcmdlYWJsZUVsZW1lbnQpJiZ2b2lkIDAhPT1hP2E6bWQuaXNNZXJnZWFibGVFbGVtZW50LHcuYXJyYXlFbGVtZW50TWVyZ2U9bnVsbCE9PSh1PXcuYXJyYXlFbGVtZW50TWVyZ2UpJiZ2b2lkIDAhPT11P3U6bWQuYXJyYXlFbGVtZW50TWVyZ2Usdy5vYmplY3RFbGVtZW50TWVyZ2U9bnVsbCE9PShfPXcub2JqZWN0RWxlbWVudE1lcmdlKSYmdm9pZCAwIT09Xz9fOm1kLm9iamVjdEVsZW1lbnRNZXJnZTtjb25zdCB4PVJ1KG8pO2lmKCEoeD09PVJ1KHMpKSlyZXR1cm4gY2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQobyx3KTtjb25zdCBDPXgmJiJmdW5jdGlvbiI9PXR5cGVvZiB3LmFycmF5RWxlbWVudE1lcmdlP3cuYXJyYXlFbGVtZW50TWVyZ2UocyxvLHcpOncub2JqZWN0RWxlbWVudE1lcmdlKHMsbyx3KTtyZXR1cm4gQy5tZXRhPShzPT4iZnVuY3Rpb24iIT10eXBlb2Ygcy5jdXN0b21NZXRhTWVyZ2U/cz0+Y2xvbmVEZWVwKHMpOnMuY3VzdG9tTWV0YU1lcmdlKSh3KShzLm1ldGEsby5tZXRhKSxDLmF0dHJpYnV0ZXM9KHM9PiJmdW5jdGlvbiIhPXR5cGVvZiBzLmN1c3RvbUF0dHJpYnV0ZXNNZXJnZT9zPT5jbG9uZURlZXAocyk6cy5jdXN0b21BdHRyaWJ1dGVzTWVyZ2UpKHcpKHMuYXR0cmlidXRlcyxvLmF0dHJpYnV0ZXMpLEN9O2RlZXBtZXJnZS5hbGw9KHMsbyk9PntpZighQXJyYXkuaXNBcnJheShzKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJGaXJzdCBhcmd1bWVudCBvZiBkZWVwbWVyZ2Ugc2hvdWxkIGJlIGFuIGFycmF5LiIpO3JldHVybiAwPT09cy5sZW5ndGg/bmV3IFN1LlNoOnMucmVkdWNlKCgocyxpKT0+ZGVlcG1lcmdlKHMsaSxvKSksZW1wdHlFbGVtZW50KHNbMF0pKX07Y29uc3QgeWQ9ZGVlcG1lcmdlO2NvbnN0IHZkPWNsYXNzIFZpc2l0b3JfVmlzaXRvcntlbGVtZW50O2NvbnN0cnVjdG9yKHMpe09iamVjdC5hc3NpZ24odGhpcyxzKX1jb3B5TWV0YUFuZEF0dHJpYnV0ZXMocyxvKXsocy5tZXRhLmxlbmd0aD4wfHxvLm1ldGEubGVuZ3RoPjApJiYoby5tZXRhPXlkKG8ubWV0YSxzLm1ldGEpLGhhc0VsZW1lbnRTb3VyY2VNYXAocykmJm8ubWV0YS5zZXQoInNvdXJjZU1hcCIscy5tZXRhLmdldCgic291cmNlTWFwIikpKSwocy5hdHRyaWJ1dGVzLmxlbmd0aD4wfHxzLm1ldGEubGVuZ3RoPjApJiYoby5hdHRyaWJ1dGVzPXlkKG8uYXR0cmlidXRlcyxzLmF0dHJpYnV0ZXMpKX19O2NvbnN0IF9kPWNsYXNzIEZhbGxiYWNrVmlzaXRvciBleHRlbmRzIHZke2VudGVyKHMpe3JldHVybiB0aGlzLmVsZW1lbnQ9Y2xvbmVEZWVwKHMpLFV1fX0sY29weVByb3BzPShzLG8saT1bXSk9Pntjb25zdCBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG8pO2ZvcihsZXQgcyBvZiBpKWRlbGV0ZSBhW3NdO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHMsYSl9LHByb3RvQ2hhaW49KHMsbz1bc10pPT57Y29uc3QgaT1PYmplY3QuZ2V0UHJvdG90eXBlT2Yocyk7cmV0dXJuIG51bGw9PT1pP286cHJvdG9DaGFpbihpLFsuLi5vLGldKX0saGFyZE1peFByb3Rvcz0ocyxvLGk9W10pPT57dmFyIGE7Y29uc3QgdT1udWxsIT09KGE9KCguLi5zKT0+e2lmKDA9PT1zLmxlbmd0aClyZXR1cm47bGV0IG87Y29uc3QgaT1zLm1hcCgocz0+cHJvdG9DaGFpbihzKSkpO2Zvcig7aS5ldmVyeSgocz0+cy5sZW5ndGg+MCkpOyl7Y29uc3Qgcz1pLm1hcCgocz0+cy5wb3AoKSkpLGE9c1swXTtpZighcy5ldmVyeSgocz0+cz09PWEpKSlicmVhaztvPWF9cmV0dXJuIG99KSguLi5zKSkmJnZvaWQgMCE9PWE/YTpPYmplY3QucHJvdG90eXBlLF89T2JqZWN0LmNyZWF0ZSh1KSx3PXByb3RvQ2hhaW4odSk7Zm9yKGxldCBvIG9mIHMpe2xldCBzPXByb3RvQ2hhaW4obyk7Zm9yKGxldCBvPXMubGVuZ3RoLTE7bz49MDtvLS0pe2xldCBhPXNbb107LTE9PT13LmluZGV4T2YoYSkmJihjb3B5UHJvcHMoXyxhLFsiY29uc3RydWN0b3IiLC4uLmldKSx3LnB1c2goYSkpfX1yZXR1cm4gXy5jb25zdHJ1Y3Rvcj1vLF99LHVuaXF1ZT1zPT5zLmZpbHRlcigoKG8saSk9PnMuaW5kZXhPZihvKT09aSkpLGdldEluZ3JlZGllbnRXaXRoUHJvcD0ocyxvKT0+e2NvbnN0IGk9by5tYXAoKHM9PnByb3RvQ2hhaW4ocykpKTtsZXQgYT0wLHU9ITA7Zm9yKDt1Oyl7dT0hMTtmb3IobGV0IF89by5sZW5ndGgtMTtfPj0wO18tLSl7Y29uc3Qgbz1pW19dW2FdO2lmKG51bGwhPW8mJih1PSEwLG51bGwhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobyxzKSkpcmV0dXJuIGlbX11bMF19YSsrfX0scHJveHlNaXg9KHMsbz1PYmplY3QucHJvdG90eXBlKT0+bmV3IFByb3h5KHt9LHtnZXRQcm90b3R5cGVPZjooKT0+byxzZXRQcm90b3R5cGVPZigpe3Rocm93IEVycm9yKCJDYW5ub3Qgc2V0IHByb3RvdHlwZSBvZiBQcm94aWVzIGNyZWF0ZWQgYnkgdHMtbWl4ZXIiKX0sZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOihvLGkpPT5PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdldEluZ3JlZGllbnRXaXRoUHJvcChpLHMpfHx7fSxpKSxkZWZpbmVQcm9wZXJ0eSgpe3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGRlZmluZSBuZXcgcHJvcGVydGllcyBvbiBQcm94aWVzIGNyZWF0ZWQgYnkgdHMtbWl4ZXIiKX0saGFzOihpLGEpPT52b2lkIDAhPT1nZXRJbmdyZWRpZW50V2l0aFByb3AoYSxzKXx8dm9pZCAwIT09b1thXSxnZXQ6KGksYSk9PihnZXRJbmdyZWRpZW50V2l0aFByb3AoYSxzKXx8bylbYV0sc2V0KG8saSxhKXtjb25zdCB1PWdldEluZ3JlZGllbnRXaXRoUHJvcChpLHMpO2lmKHZvaWQgMD09PXUpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2V0IG5ldyBwcm9wZXJ0aWVzIG9uIFByb3hpZXMgY3JlYXRlZCBieSB0cy1taXhlciIpO3JldHVybiB1W2ldPWEsITB9LGRlbGV0ZVByb3BlcnR5KCl7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZGVsZXRlIHByb3BlcnRpZXMgb24gUHJveGllcyBjcmVhdGVkIGJ5IHRzLW1peGVyIil9LG93bktleXM6KCk9PnMubWFwKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKS5yZWR1Y2UoKChzLG8pPT5vLmNvbmNhdChzLmZpbHRlcigocz0+by5pbmRleE9mKHMpPDApKSkpKX0pLFNkPW51bGwsRWQ9ImNvcHkiLHdkPSJjb3B5Iix4ZD0iZGVlcCIsa2Q9bmV3IFdlYWtNYXAsZ2V0TWl4aW5zRm9yQ2xhc3M9cz0+a2QuZ2V0KHMpLG1lcmdlT2JqZWN0c09mRGVjb3JhdG9ycz0ocyxvKT0+e3ZhciBpLGE7Y29uc3QgdT11bmlxdWUoWy4uLk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHMpLC4uLk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG8pXSksXz17fTtmb3IobGV0IHcgb2YgdSlfW3ddPXVuaXF1ZShbLi4ubnVsbCE9PShpPW51bGw9PXM/dm9pZCAwOnNbd10pJiZ2b2lkIDAhPT1pP2k6W10sLi4ubnVsbCE9PShhPW51bGw9PW8/dm9pZCAwOm9bd10pJiZ2b2lkIDAhPT1hP2E6W11dKTtyZXR1cm4gX30sbWVyZ2VQcm9wZXJ0eUFuZE1ldGhvZERlY29yYXRvcnM9KHMsbyk9Pnt2YXIgaSxhLHUsXztyZXR1cm57cHJvcGVydHk6bWVyZ2VPYmplY3RzT2ZEZWNvcmF0b3JzKG51bGwhPT0oaT1udWxsPT1zP3ZvaWQgMDpzLnByb3BlcnR5KSYmdm9pZCAwIT09aT9pOnt9LG51bGwhPT0oYT1udWxsPT1vP3ZvaWQgMDpvLnByb3BlcnR5KSYmdm9pZCAwIT09YT9hOnt9KSxtZXRob2Q6bWVyZ2VPYmplY3RzT2ZEZWNvcmF0b3JzKG51bGwhPT0odT1udWxsPT1zP3ZvaWQgMDpzLm1ldGhvZCkmJnZvaWQgMCE9PXU/dTp7fSxudWxsIT09KF89bnVsbD09bz92b2lkIDA6by5tZXRob2QpJiZ2b2lkIDAhPT1fP186e30pfX0sbWVyZ2VEZWNvcmF0b3JzPShzLG8pPT57dmFyIGksYSx1LF8sdyx4O3JldHVybntjbGFzczp1bmlxdWUoWy4uLm51bGwhPT0oaT1udWxsPT1zP3ZvaWQgMDpzLmNsYXNzKSYmdm9pZCAwIT09aT9pOltdLC4uLm51bGwhPT0oYT1udWxsPT1vP3ZvaWQgMDpvLmNsYXNzKSYmdm9pZCAwIT09YT9hOltdXSksc3RhdGljOm1lcmdlUHJvcGVydHlBbmRNZXRob2REZWNvcmF0b3JzKG51bGwhPT0odT1udWxsPT1zP3ZvaWQgMDpzLnN0YXRpYykmJnZvaWQgMCE9PXU/dTp7fSxudWxsIT09KF89bnVsbD09bz92b2lkIDA6by5zdGF0aWMpJiZ2b2lkIDAhPT1fP186e30pLGluc3RhbmNlOm1lcmdlUHJvcGVydHlBbmRNZXRob2REZWNvcmF0b3JzKG51bGwhPT0odz1udWxsPT1zP3ZvaWQgMDpzLmluc3RhbmNlKSYmdm9pZCAwIT09dz93Ont9LG51bGwhPT0oeD1udWxsPT1vP3ZvaWQgMDpvLmluc3RhbmNlKSYmdm9pZCAwIT09eD94Ont9KX19LE9kPW5ldyBNYXAsZGVlcERlY29yYXRvclNlYXJjaD0oLi4ucyk9Pntjb25zdCBvPSgoLi4ucyk9Pnt2YXIgbztjb25zdCBpPW5ldyBTZXQsYT1uZXcgU2V0KFsuLi5zXSk7Zm9yKDthLnNpemU+MDspZm9yKGxldCBzIG9mIGEpe2NvbnN0IHU9cHJvdG9DaGFpbihzLnByb3RvdHlwZSkubWFwKChzPT5zLmNvbnN0cnVjdG9yKSksXz1bLi4udSwuLi5udWxsIT09KG89Z2V0TWl4aW5zRm9yQ2xhc3MocykpJiZ2b2lkIDAhPT1vP286W11dLmZpbHRlcigocz0+IWkuaGFzKHMpKSk7Zm9yKGxldCBzIG9mIF8pYS5hZGQocyk7aS5hZGQocyksYS5kZWxldGUocyl9cmV0dXJuWy4uLmldfSkoLi4ucykubWFwKChzPT5PZC5nZXQocykpKS5maWx0ZXIoKHM9PiEhcykpO3JldHVybiAwPT1vLmxlbmd0aD97fToxPT1vLmxlbmd0aD9vWzBdOm8ucmVkdWNlKCgocyxvKT0+bWVyZ2VEZWNvcmF0b3JzKHMsbykpKX0sZ2V0RGVjb3JhdG9yc0ZvckNsYXNzPXM9PntsZXQgbz1PZC5nZXQocyk7cmV0dXJuIG98fChvPXt9LE9kLnNldChzLG8pKSxvfTtmdW5jdGlvbiBNaXhpbiguLi5zKXt2YXIgbyxpLGE7Y29uc3QgdT1zLm1hcCgocz0+cy5wcm90b3R5cGUpKSxfPVNkO2lmKG51bGwhPT1fKXtjb25zdCBzPXUubWFwKChzPT5zW19dKSkuZmlsdGVyKChzPT4iZnVuY3Rpb24iPT10eXBlb2YgcykpLGNvbWJpbmVkSW5pdEZ1bmN0aW9uPWZ1bmN0aW9uKC4uLm8pe2ZvcihsZXQgaSBvZiBzKWkuYXBwbHkodGhpcyxvKX0sbz17W19dOmNvbWJpbmVkSW5pdEZ1bmN0aW9ufTt1LnB1c2gobyl9ZnVuY3Rpb24gTWl4ZWRDbGFzcyguLi5vKXtmb3IoY29uc3QgaSBvZiBzKWNvcHlQcm9wcyh0aGlzLG5ldyBpKC4uLm8pKTtudWxsIT09XyYmImZ1bmN0aW9uIj09dHlwZW9mIHRoaXNbX10mJnRoaXNbX10uYXBwbHkodGhpcyxvKX12YXIgdyx4O01peGVkQ2xhc3MucHJvdG90eXBlPSJjb3B5Ij09PXdkP2hhcmRNaXhQcm90b3ModSxNaXhlZENsYXNzKToodz11LHg9TWl4ZWRDbGFzcyxwcm94eU1peChbLi4udyx7Y29uc3RydWN0b3I6eH1dKSksT2JqZWN0LnNldFByb3RvdHlwZU9mKE1peGVkQ2xhc3MsImNvcHkiPT09RWQ/aGFyZE1peFByb3RvcyhzLG51bGwsWyJwcm90b3R5cGUiXSk6cHJveHlNaXgocyxGdW5jdGlvbi5wcm90b3R5cGUpKTtsZXQgQz1NaXhlZENsYXNzO2lmKCJub25lIiE9PXhkKXtjb25zdCB1PSJkZWVwIj09PXhkP2RlZXBEZWNvcmF0b3JTZWFyY2goLi4ucyk6KCguLi5zKT0+e2NvbnN0IG89cy5tYXAoKHM9PmdldERlY29yYXRvcnNGb3JDbGFzcyhzKSkpO3JldHVybiAwPT09by5sZW5ndGg/e306MT09PW8ubGVuZ3RoP29bMF06by5yZWR1Y2UoKChzLG8pPT5tZXJnZURlY29yYXRvcnMocyxvKSkpfSkoLi4ucyk7Zm9yKGxldCBzIG9mIG51bGwhPT0obz1udWxsPT11P3ZvaWQgMDp1LmNsYXNzKSYmdm9pZCAwIT09bz9vOltdKXtjb25zdCBvPXMoQyk7byYmKEM9byl9YXBwbHlQcm9wQW5kTWV0aG9kRGVjb3JhdG9ycyhudWxsIT09KGk9bnVsbD09dT92b2lkIDA6dS5zdGF0aWMpJiZ2b2lkIDAhPT1pP2k6e30sQyksYXBwbHlQcm9wQW5kTWV0aG9kRGVjb3JhdG9ycyhudWxsIT09KGE9bnVsbD09dT92b2lkIDA6dS5pbnN0YW5jZSkmJnZvaWQgMCE9PWE/YTp7fSxDLnByb3RvdHlwZSl9dmFyIGosTDtyZXR1cm4gaj1DLEw9cyxrZC5zZXQoaixMKSxDfWNvbnN0IGFwcGx5UHJvcEFuZE1ldGhvZERlY29yYXRvcnM9KHMsbyk9Pntjb25zdCBpPXMucHJvcGVydHksYT1zLm1ldGhvZDtpZihpKWZvcihsZXQgcyBpbiBpKWZvcihsZXQgYSBvZiBpW3NdKWEobyxzKTtpZihhKWZvcihsZXQgcyBpbiBhKWZvcihsZXQgaSBvZiBhW3NdKWkobyxzLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobyxzKSl9O2NvbnN0IENkPV9jdXJyeTEoKGZ1bmN0aW9uIGFsbFBhc3Mocyl7cmV0dXJuICRhKENhKEVjLDAsT2MoImxlbmd0aCIscykpLChmdW5jdGlvbigpe2Zvcih2YXIgbz0wLGk9cy5sZW5ndGg7bzxpOyl7aWYoIXNbb10uYXBwbHkodGhpcyxhcmd1bWVudHMpKXJldHVybiExO28rPTF9cmV0dXJuITB9KSl9KSk7Y29uc3QgQWQ9X2N1cnJ5MSgoZnVuY3Rpb24gaXNOb3RFbXB0eShzKXtyZXR1cm4hY3Aocyl9KSk7Y29uc3QgSWQ9X2N1cnJ5MigoZnVuY3Rpb24gb3IocyxvKXtyZXR1cm4gc3x8b30pKTt2YXIgVGQ9ZGMoJGEoMSxvdShhdSxfY3VycnkyKChmdW5jdGlvbiBlaXRoZXIocyxvKXtyZXR1cm4gX2lzRnVuY3Rpb24ocyk/ZnVuY3Rpb24gX2VpdGhlcigpe3JldHVybiBzLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8by5hcHBseSh0aGlzLGFyZ3VtZW50cyl9OmhjKElkKShzLG8pfSkpKGN1LE1jKSkpKTtjb25zdCBOZD1DZChbSmMsVGQsQWRdKTtjb25zdCBNZD1fY3VycnkyKChmdW5jdGlvbiBwaWNrKHMsbyl7Zm9yKHZhciBpPXt9LGE9MDthPHMubGVuZ3RoOylzW2FdaW4gbyYmKGlbc1thXV09b1tzW2FdXSksYSs9MTtyZXR1cm4gaX0pKTtjb25zdCBSZD1jbGFzcyBTcGVjaWZpY2F0aW9uVmlzaXRvciBleHRlbmRzIHZke3NwZWNPYmo7cGFzc2luZ09wdGlvbnNOYW1lcz1bInNwZWNPYmoiLCJwYXJlbnQiXTtjb25zdHJ1Y3Rvcih7c3BlY09iajpzLC4uLm99KXtzdXBlcih7Li4ub30pLHRoaXMuc3BlY09iaj1zfXJldHJpZXZlUGFzc2luZ09wdGlvbnMoKXtyZXR1cm4gTWQodGhpcy5wYXNzaW5nT3B0aW9uc05hbWVzLHRoaXMpfXJldHJpZXZlRml4ZWRGaWVsZHMocyl7Y29uc3Qgbz10cChbInZpc2l0b3JzIiwuLi5zLCJmaXhlZEZpZWxkcyJdLHRoaXMuc3BlY09iaik7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBvJiZudWxsIT09bz9PYmplY3Qua2V5cyhvKTpbXX1yZXRyaWV2ZVZpc2l0b3Iocyl7cmV0dXJuIFFvKE1jLFsidmlzaXRvcnMiLC4uLnNdLHRoaXMuc3BlY09iaik/dHAoWyJ2aXNpdG9ycyIsLi4uc10sdGhpcy5zcGVjT2JqKTp0cChbInZpc2l0b3JzIiwuLi5zLCIkdmlzaXRvciJdLHRoaXMuc3BlY09iail9cmV0cmlldmVWaXNpdG9ySW5zdGFuY2UocyxvPXt9KXtjb25zdCBpPXRoaXMucmV0cmlldmVQYXNzaW5nT3B0aW9ucygpO3JldHVybiBuZXcodGhpcy5yZXRyaWV2ZVZpc2l0b3IocykpKHsuLi5pLC4uLm99KX10b1JlZnJhY3RlZEVsZW1lbnQocyxvLGk9e30pe2NvbnN0IGE9dGhpcy5yZXRyaWV2ZVZpc2l0b3JJbnN0YW5jZShzLGkpO3JldHVybiBhIGluc3RhbmNlb2YgX2QmJihudWxsPT1hP3ZvaWQgMDphLmNvbnN0cnVjdG9yKT09PV9kP2Nsb25lRGVlcChvKToodmlzaXRvcl92aXNpdChvLGEsaSksYS5lbGVtZW50KX19O2NvbnN0IERkPWNsYXNzIEZpeGVkRmllbGRzVmlzaXRvciBleHRlbmRzIFJke3NwZWNQYXRoO2lnbm9yZWRGaWVsZHM7Y29uc3RydWN0b3Ioe3NwZWNQYXRoOnMsaWdub3JlZEZpZWxkczpvLC4uLml9KXtzdXBlcih7Li4uaX0pLHRoaXMuc3BlY1BhdGg9cyx0aGlzLmlnbm9yZWRGaWVsZHM9b3x8W119T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPXRoaXMuc3BlY1BhdGgocyksaT10aGlzLnJldHJpZXZlRml4ZWRGaWVsZHMobyk7cmV0dXJuIHMuZm9yRWFjaCgoKHMsYSx1KT0+e2lmKEl1KGEpJiZpLmluY2x1ZGVzKHNlcmlhbGl6ZXJzX3ZhbHVlKGEpKSYmIXRoaXMuaWdub3JlZEZpZWxkcy5pbmNsdWRlcyhzZXJpYWxpemVyc192YWx1ZShhKSkpe2NvbnN0IGk9dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQoWy4uLm8sImZpeGVkRmllbGRzIixzZXJpYWxpemVyc192YWx1ZShhKV0scyksXz1uZXcgU3UuUHIoY2xvbmVEZWVwKGEpLGkpO3RoaXMuY29weU1ldGFBbmRBdHRyaWJ1dGVzKHUsXyksXy5jbGFzc2VzLnB1c2goImZpeGVkLWZpZWxkIiksdGhpcy5lbGVtZW50LmNvbnRlbnQucHVzaChfKX1lbHNlIHRoaXMuaWdub3JlZEZpZWxkcy5pbmNsdWRlcyhzZXJpYWxpemVyc192YWx1ZShhKSl8fHRoaXMuZWxlbWVudC5jb250ZW50LnB1c2goY2xvbmVEZWVwKHUpKX0pKSx0aGlzLmNvcHlNZXRhQW5kQXR0cmlidXRlcyhzLHRoaXMuZWxlbWVudCksVXV9fTtjb25zdCBMZD1jbGFzcyBQYXJlbnRTY2hlbWFBd2FyZVZpc2l0b3J7cGFyZW50O2NvbnN0cnVjdG9yKHtwYXJlbnQ6c30pe3RoaXMucGFyZW50PXN9fSxGZD1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIExofHxzKGEpJiZvKCJKU09OU2NoZW1hRHJhZnQ0IixhKSYmaSgib2JqZWN0IixhKSkpLEJkPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgRmh8fHMoYSkmJm8oIkpTT05SZWZlcmVuY2UiLGEpJiZpKCJvYmplY3QiLGEpKSksJGQ9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBKaHx8cyhhKSYmbygibWVkaWEiLGEpJiZpKCJvYmplY3QiLGEpKSksVmQ9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBIaHx8cyhhKSYmbygibGlua0Rlc2NyaXB0aW9uIixhKSYmaSgib2JqZWN0IixhKSkpO2NsYXNzIEpTT05TY2hlbWFWaXNpdG9yIGV4dGVuZHMoTWl4aW4oRGQsTGQsX2QpKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IExoLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIl0pfWdldCBkZWZhdWx0RGlhbGVjdElkZW50aWZpZXIoKXtyZXR1cm4iaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEjIn1PYmplY3RFbGVtZW50KHMpe3JldHVybiB0aGlzLmhhbmRsZURpYWxlY3RJZGVudGlmaWVyKHMpLHRoaXMuaGFuZGxlU2NoZW1hSWRlbnRpZmllcihzKSx0aGlzLnBhcmVudD10aGlzLmVsZW1lbnQsRGQucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpfWhhbmRsZURpYWxlY3RJZGVudGlmaWVyKHMpe2lmKGJjKHRoaXMucGFyZW50KSYmIUl1KHMuZ2V0KCIkc2NoZW1hIikpKXRoaXMuZWxlbWVudC5zZXRNZXRhUHJvcGVydHkoImluaGVyaXRlZERpYWxlY3RJZGVudGlmaWVyIix0aGlzLmRlZmF1bHREaWFsZWN0SWRlbnRpZmllcik7ZWxzZSBpZihGZCh0aGlzLnBhcmVudCkmJiFJdShzLmdldCgiJHNjaGVtYSIpKSl7Y29uc3Qgcz1OYShzZXJpYWxpemVyc192YWx1ZSh0aGlzLnBhcmVudC5tZXRhLmdldCgiaW5oZXJpdGVkRGlhbGVjdElkZW50aWZpZXIiKSksc2VyaWFsaXplcnNfdmFsdWUodGhpcy5wYXJlbnQuJHNjaGVtYSkpO3RoaXMuZWxlbWVudC5zZXRNZXRhUHJvcGVydHkoImluaGVyaXRlZERpYWxlY3RJZGVudGlmaWVyIixzKX19aGFuZGxlU2NoZW1hSWRlbnRpZmllcihzLG89ImlkIil7Y29uc3QgaT12b2lkIDAhPT10aGlzLnBhcmVudD9jbG9uZURlZXAodGhpcy5wYXJlbnQuZ2V0TWV0YVByb3BlcnR5KCJhbmNlc3RvcnNTY2hlbWFJZGVudGlmaWVycyIsW10pKTpuZXcgU3Uud0UsYT1zZXJpYWxpemVyc192YWx1ZShzLmdldChvKSk7TmQoYSkmJmkucHVzaChhKSx0aGlzLmVsZW1lbnQuc2V0TWV0YVByb3BlcnR5KCJhbmNlc3RvcnNTY2hlbWFJZGVudGlmaWVycyIsaSl9fWNvbnN0IFVkPUpTT05TY2hlbWFWaXNpdG9yLGlzSlNPTlJlZmVyZW5jZUxpa2VFbGVtZW50PXM9Pk11KHMpJiZzLmhhc0tleSgiJHJlZiIpO2NsYXNzIEl0ZW1zVmlzaXRvciBleHRlbmRzKE1peGluKFJkLExkLF9kKSl7T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPWlzSlNPTlJlZmVyZW5jZUxpa2VFbGVtZW50KHMpP1siZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlJlZmVyZW5jZSJdOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSJdO3JldHVybiB0aGlzLmVsZW1lbnQ9dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQobyxzKSxVdX1BcnJheUVsZW1lbnQocyl7cmV0dXJuIHRoaXMuZWxlbWVudD1uZXcgU3Uud0UsdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgianNvbi1zY2hlbWEtaXRlbXMiKSxzLmZvckVhY2goKHM9Pntjb25zdCBvPWlzSlNPTlJlZmVyZW5jZUxpa2VFbGVtZW50KHMpP1siZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlJlZmVyZW5jZSJdOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSJdLGk9dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQobyxzKTt0aGlzLmVsZW1lbnQucHVzaChpKX0pKSx0aGlzLmNvcHlNZXRhQW5kQXR0cmlidXRlcyhzLHRoaXMuZWxlbWVudCksVXV9fWNvbnN0IFdkPUl0ZW1zVmlzaXRvcjtjb25zdCBKZD1jbGFzcyBSZXF1aXJlZFZpc2l0b3IgZXh0ZW5kcyBfZHtBcnJheUVsZW1lbnQocyl7Y29uc3Qgbz10aGlzLmVudGVyKHMpO3JldHVybiB0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJqc29uLXNjaGVtYS1yZXF1aXJlZCIpLG99fTtjb25zdCBIZD1jbGFzcyBQYXR0ZXJuZWRGaWVsZHNWaXNpdG9yIGV4dGVuZHMgUmR7c3BlY1BhdGg7aWdub3JlZEZpZWxkcztmaWVsZFBhdHRlcm5QcmVkaWNhdGU9ZXNfRjtjb25zdHJ1Y3Rvcih7c3BlY1BhdGg6cyxpZ25vcmVkRmllbGRzOm8sZmllbGRQYXR0ZXJuUHJlZGljYXRlOmksLi4uYX0pe3N1cGVyKHsuLi5hfSksdGhpcy5zcGVjUGF0aD1zLHRoaXMuaWdub3JlZEZpZWxkcz1vfHxbXSwiZnVuY3Rpb24iPT10eXBlb2YgaSYmKHRoaXMuZmllbGRQYXR0ZXJuUHJlZGljYXRlPWkpfU9iamVjdEVsZW1lbnQocyl7cmV0dXJuIHMuZm9yRWFjaCgoKHMsbyxpKT0+e2lmKCF0aGlzLmlnbm9yZWRGaWVsZHMuaW5jbHVkZXMoc2VyaWFsaXplcnNfdmFsdWUobykpJiZ0aGlzLmZpZWxkUGF0dGVyblByZWRpY2F0ZShzZXJpYWxpemVyc192YWx1ZShvKSkpe2NvbnN0IGE9dGhpcy5zcGVjUGF0aChzKSx1PXRoaXMudG9SZWZyYWN0ZWRFbGVtZW50KGEscyksXz1uZXcgU3UuUHIoY2xvbmVEZWVwKG8pLHUpO3RoaXMuY29weU1ldGFBbmRBdHRyaWJ1dGVzKGksXyksXy5jbGFzc2VzLnB1c2goInBhdHRlcm5lZC1maWVsZCIpLHRoaXMuZWxlbWVudC5jb250ZW50LnB1c2goXyl9ZWxzZSB0aGlzLmlnbm9yZWRGaWVsZHMuaW5jbHVkZXMoc2VyaWFsaXplcnNfdmFsdWUobykpfHx0aGlzLmVsZW1lbnQuY29udGVudC5wdXNoKGNsb25lRGVlcChpKSl9KSksdGhpcy5jb3B5TWV0YUFuZEF0dHJpYnV0ZXMocyx0aGlzLmVsZW1lbnQpLFV1fX07Y29uc3QgS2Q9Y2xhc3MgTWFwVmlzaXRvciBleHRlbmRzIEhke2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZmllbGRQYXR0ZXJuUHJlZGljYXRlPU5kfX07Y2xhc3MgUHJvcGVydGllc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihLZCxMZCxfZCkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgU3UuU2gsdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgianNvbi1zY2hlbWEtcHJvcGVydGllcyIpLHRoaXMuc3BlY1BhdGg9cz0+aXNKU09OUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OUmVmZXJlbmNlIl06WyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIl19fWNvbnN0IEdkPVByb3BlcnRpZXNWaXNpdG9yO2NsYXNzIFBhdHRlcm5Qcm9wZXJ0aWVzVmlzaXRvciBleHRlbmRzKE1peGluKEtkLExkLF9kKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBTdS5TaCx0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJqc29uLXNjaGVtYS1wYXR0ZXJuUHJvcGVydGllcyIpLHRoaXMuc3BlY1BhdGg9cz0+aXNKU09OUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OUmVmZXJlbmNlIl06WyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIl19fWNvbnN0IFlkPVBhdHRlcm5Qcm9wZXJ0aWVzVmlzaXRvcjtjbGFzcyBEZXBlbmRlbmNpZXNWaXNpdG9yIGV4dGVuZHMoTWl4aW4oS2QsTGQsX2QpKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFN1LlNoLHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goImpzb24tc2NoZW1hLWRlcGVuZGVuY2llcyIpLHRoaXMuc3BlY1BhdGg9cz0+aXNKU09OUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OUmVmZXJlbmNlIl06WyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIl19fWNvbnN0IFhkPURlcGVuZGVuY2llc1Zpc2l0b3I7Y29uc3QgUWQ9Y2xhc3MgRW51bVZpc2l0b3IgZXh0ZW5kcyBfZHtBcnJheUVsZW1lbnQocyl7Y29uc3Qgbz10aGlzLmVudGVyKHMpO3JldHVybiB0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJqc29uLXNjaGVtYS1lbnVtIiksb319O2NvbnN0IFpkPWNsYXNzIFR5cGVWaXNpdG9yIGV4dGVuZHMgX2R7U3RyaW5nRWxlbWVudChzKXtjb25zdCBvPXRoaXMuZW50ZXIocyk7cmV0dXJuIHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goImpzb24tc2NoZW1hLXR5cGUiKSxvfUFycmF5RWxlbWVudChzKXtjb25zdCBvPXRoaXMuZW50ZXIocyk7cmV0dXJuIHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goImpzb24tc2NoZW1hLXR5cGUiKSxvfX07Y2xhc3MgQWxsT2ZWaXNpdG9yIGV4dGVuZHMoTWl4aW4oUmQsTGQsX2QpKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFN1LndFLHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goImpzb24tc2NoZW1hLWFsbE9mIil9QXJyYXlFbGVtZW50KHMpe3JldHVybiBzLmZvckVhY2goKHM9Pntjb25zdCBvPWlzSlNPTlJlZmVyZW5jZUxpa2VFbGVtZW50KHMpP1siZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlJlZmVyZW5jZSJdOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSJdLGk9dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQobyxzKTt0aGlzLmVsZW1lbnQucHVzaChpKX0pKSx0aGlzLmNvcHlNZXRhQW5kQXR0cmlidXRlcyhzLHRoaXMuZWxlbWVudCksVXV9fWNvbnN0IGVmPUFsbE9mVmlzaXRvcjtjbGFzcyBBbnlPZlZpc2l0b3IgZXh0ZW5kcyhNaXhpbihSZCxMZCxfZCkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgU3Uud0UsdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgianNvbi1zY2hlbWEtYW55T2YiKX1BcnJheUVsZW1lbnQocyl7cmV0dXJuIHMuZm9yRWFjaCgocz0+e2NvbnN0IG89aXNKU09OUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OUmVmZXJlbmNlIl06WyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIl0saT10aGlzLnRvUmVmcmFjdGVkRWxlbWVudChvLHMpO3RoaXMuZWxlbWVudC5wdXNoKGkpfSkpLHRoaXMuY29weU1ldGFBbmRBdHRyaWJ1dGVzKHMsdGhpcy5lbGVtZW50KSxVdX19Y29uc3QgcmY9QW55T2ZWaXNpdG9yO2NsYXNzIE9uZU9mVmlzaXRvciBleHRlbmRzKE1peGluKFJkLExkLF9kKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBTdS53RSx0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJqc29uLXNjaGVtYS1vbmVPZiIpfUFycmF5RWxlbWVudChzKXtyZXR1cm4gcy5mb3JFYWNoKChzPT57Y29uc3Qgbz1pc0pTT05SZWZlcmVuY2VMaWtlRWxlbWVudChzKT9bImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05SZWZlcmVuY2UiXTpbImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiXSxpPXRoaXMudG9SZWZyYWN0ZWRFbGVtZW50KG8scyk7dGhpcy5lbGVtZW50LnB1c2goaSl9KSksdGhpcy5jb3B5TWV0YUFuZEF0dHJpYnV0ZXMocyx0aGlzLmVsZW1lbnQpLFV1fX1jb25zdCBvZj1PbmVPZlZpc2l0b3I7Y2xhc3MgRGVmaW5pdGlvbnNWaXNpdG9yIGV4dGVuZHMoTWl4aW4oS2QsTGQsX2QpKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFN1LlNoLHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goImpzb24tc2NoZW1hLWRlZmluaXRpb25zIiksdGhpcy5zcGVjUGF0aD1zPT5pc0pTT05SZWZlcmVuY2VMaWtlRWxlbWVudChzKT9bImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05SZWZlcmVuY2UiXTpbImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiXX19Y29uc3QgYWY9RGVmaW5pdGlvbnNWaXNpdG9yO2NsYXNzIExpbmtzVmlzaXRvciBleHRlbmRzKE1peGluKFJkLExkLF9kKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBTdS53RSx0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJqc29uLXNjaGVtYS1saW5rcyIpfUFycmF5RWxlbWVudChzKXtyZXR1cm4gcy5mb3JFYWNoKChzPT57Y29uc3Qgbz10aGlzLnRvUmVmcmFjdGVkRWxlbWVudChbImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiJdLHMpO3RoaXMuZWxlbWVudC5wdXNoKG8pfSkpLHRoaXMuY29weU1ldGFBbmRBdHRyaWJ1dGVzKHMsdGhpcy5lbGVtZW50KSxVdX19Y29uc3QgY2Y9TGlua3NWaXNpdG9yO2NsYXNzIEpTT05SZWZlcmVuY2VWaXNpdG9yIGV4dGVuZHMoTWl4aW4oRGQsX2QpKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IEZoLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OUmVmZXJlbmNlIl0pfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1EZC5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIEl1KHRoaXMuZWxlbWVudC4kcmVmKSYmdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgicmVmZXJlbmNlLWVsZW1lbnQiKSxvfX1jb25zdCBsZj1KU09OUmVmZXJlbmNlVmlzaXRvcjtjb25zdCB1Zj1jbGFzcyAkUmVmVmlzaXRvciBleHRlbmRzIF9ke1N0cmluZ0VsZW1lbnQocyl7Y29uc3Qgbz10aGlzLmVudGVyKHMpO3JldHVybiB0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJyZWZlcmVuY2UtdmFsdWUiKSxvfX07Y29uc3QgaGY9X2N1cnJ5MygoZnVuY3Rpb24gaWZFbHNlKHMsbyxpKXtyZXR1cm4gJGEoTWF0aC5tYXgocy5sZW5ndGgsby5sZW5ndGgsaS5sZW5ndGgpLChmdW5jdGlvbiBfaWZFbHNlKCl7cmV0dXJuIHMuYXBwbHkodGhpcyxhcmd1bWVudHMpP28uYXBwbHkodGhpcyxhcmd1bWVudHMpOmkuYXBwbHkodGhpcyxhcmd1bWVudHMpfSkpfSkpO2NvbnN0IGRmPV9jdXJyeTEoKGZ1bmN0aW9uIGNvbXBhcmF0b3Iocyl7cmV0dXJuIGZ1bmN0aW9uKG8saSl7cmV0dXJuIHMobyxpKT8tMTpzKGksbyk/MTowfX0pKTt2YXIgbWY9X2N1cnJ5MigoZnVuY3Rpb24gc29ydChzLG8pe3JldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChvLDApLnNvcnQocyl9KSk7Y29uc3QgZ2Y9bWY7dmFyIHlmPV9jdXJyeTEoKGZ1bmN0aW9uKHMpe3JldHVybiBfbnRoKDAscyl9KSk7Y29uc3QgYmY9eWY7Y29uc3QgX2Y9X2N1cnJ5MShfcmVkdWNlZCk7Y29uc3QgU2Y9ZGMoR2gpO2NvbnN0IHhmPW91KGxwLEFkKTtmdW5jdGlvbiBfdG9Db25zdW1hYmxlQXJyYXkocyl7cmV0dXJuIGZ1bmN0aW9uIF9hcnJheVdpdGhvdXRIb2xlcyhzKXtpZihBcnJheS5pc0FycmF5KHMpKXJldHVybiBfYXJyYXlMaWtlVG9BcnJheShzKX0ocyl8fGZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkocyl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPXNbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9c1siQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKHMpfShzKXx8ZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KHMsbyl7aWYocyl7aWYoInN0cmluZyI9PXR5cGVvZiBzKXJldHVybiBfYXJyYXlMaWtlVG9BcnJheShzLG8pO3ZhciBpPXt9LnRvU3RyaW5nLmNhbGwocykuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1pJiZzLmNvbnN0cnVjdG9yJiYoaT1zLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aXx8IlNldCI9PT1pP0FycmF5LmZyb20ocyk6IkFyZ3VtZW50cyI9PT1pfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChpKT9fYXJyYXlMaWtlVG9BcnJheShzLG8pOnZvaWQgMH19KHMpfHxmdW5jdGlvbiBfbm9uSXRlcmFibGVTcHJlYWQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShzLG8peyhudWxsPT1vfHxvPnMubGVuZ3RoKSYmKG89cy5sZW5ndGgpO2Zvcih2YXIgaT0wLGE9QXJyYXkobyk7aTxvO2krKylhW2ldPXNbaV07cmV0dXJuIGF9dmFyIGtmPXBpcGUoZ2YoZGYoKGZ1bmN0aW9uKHMsbyl7cmV0dXJuIHMubGVuZ3RoPm8ubGVuZ3RofSkpKSxiZixEYSgibGVuZ3RoIikpLE9mPXphKChmdW5jdGlvbihzLG8saSl7dmFyIGE9aS5hcHBseSh2b2lkIDAsX3RvQ29uc3VtYWJsZUFycmF5KHMpKTtyZXR1cm4gU2YoYSk/X2YoYSk6b30pKTtjb25zdCBDZj1oZih4ZiwoZnVuY3Rpb24gZGlzcGF0Y2hJbXBsKHMpe3ZhciBvPWtmKHMpO3JldHVybiAkYShvLChmdW5jdGlvbigpe2Zvcih2YXIgbz1hcmd1bWVudHMubGVuZ3RoLGk9bmV3IEFycmF5KG8pLGE9MDthPG87YSsrKWlbYV09YXJndW1lbnRzW2FdO3JldHVybiBDYShPZihpKSx2b2lkIDAscyl9KSl9KSxnYyk7Y29uc3QgamY9Y2xhc3MgQWx0ZXJuYXRpbmdWaXNpdG9yIGV4dGVuZHMgUmR7YWx0ZXJuYXRvcjtjb25zdHJ1Y3Rvcih7YWx0ZXJuYXRvcjpzLC4uLm99KXtzdXBlcih7Li4ub30pLHRoaXMuYWx0ZXJuYXRvcj1zfWVudGVyKHMpe2NvbnN0IG89dGhpcy5hbHRlcm5hdG9yLm1hcCgoKHtwcmVkaWNhdGU6cyxzcGVjUGF0aDpvfSk9PmhmKHMsZmMobyksZ2MpKSksaT1DZihvKShzKTtyZXR1cm4gdGhpcy5lbGVtZW50PXRoaXMudG9SZWZyYWN0ZWRFbGVtZW50KGkscyksVXV9fTtjb25zdCBQZj1jbGFzcyBTY2hlbWFPclJlZmVyZW5jZVZpc2l0b3IgZXh0ZW5kcyBqZntjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmFsdGVybmF0b3I9W3twcmVkaWNhdGU6aXNKU09OUmVmZXJlbmNlTGlrZUVsZW1lbnQsc3BlY1BhdGg6WyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OUmVmZXJlbmNlIl19LHtwcmVkaWNhdGU6ZXNfVCxzcGVjUGF0aDpbImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiXX1dfX07Y2xhc3MgTWVkaWFWaXNpdG9yIGV4dGVuZHMoTWl4aW4oRGQsX2QpKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IEpoLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJNZWRpYSJdKX19Y29uc3QgVGY9TWVkaWFWaXNpdG9yO2NsYXNzIExpbmtEZXNjcmlwdGlvblZpc2l0b3IgZXh0ZW5kcyhNaXhpbihEZCxfZCkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgSGgsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiJdKX19Y29uc3QgTmY9TGlua0Rlc2NyaXB0aW9uVmlzaXRvcixSZj17dmlzaXRvcnM6e3ZhbHVlOl9kLEpTT05TY2hlbWFPckpTT05SZWZlcmVuY2VWaXNpdG9yOlBmLGRvY3VtZW50OntvYmplY3RzOntKU09OU2NoZW1hOnskdmlzaXRvcjpVZCxmaXhlZEZpZWxkczp7aWQ6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSwkc2NoZW1hOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sbXVsdGlwbGVPZjp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LG1heGltdW06eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxleGNsdXNpdmVNYXhpbXVtOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sbWluaW11bTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGV4Y2x1c2l2ZU1pbmltdW06eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxtYXhMZW5ndGg6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxtaW5MZW5ndGg6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxwYXR0ZXJuOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sYWRkaXRpb25hbEl0ZW1zOlBmLGl0ZW1zOldkLG1heEl0ZW1zOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sbWluSXRlbXM6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSx1bmlxdWVJdGVtczp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LG1heFByb3BlcnRpZXM6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxtaW5Qcm9wZXJ0aWVzOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0scmVxdWlyZWQ6SmQscHJvcGVydGllczpHZCxhZGRpdGlvbmFsUHJvcGVydGllczpQZixwYXR0ZXJuUHJvcGVydGllczpZZCxkZXBlbmRlbmNpZXM6WGQsZW51bTpRZCx0eXBlOlpkLGFsbE9mOmVmLGFueU9mOnJmLG9uZU9mOm9mLG5vdDpQZixkZWZpbml0aW9uczphZix0aXRsZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGRlc2NyaXB0aW9uOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sZGVmYXVsdDp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGZvcm1hdDp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGJhc2U6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxsaW5rczpjZixtZWRpYTp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL01lZGlhIn0scmVhZE9ubHk6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifX19LEpTT05SZWZlcmVuY2U6eyR2aXNpdG9yOmxmLGZpeGVkRmllbGRzOnskcmVmOnVmfX0sTWVkaWE6eyR2aXNpdG9yOlRmLGZpeGVkRmllbGRzOntiaW5hcnlFbmNvZGluZzp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHR5cGU6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifX19LExpbmtEZXNjcmlwdGlvbjp7JHZpc2l0b3I6TmYsZml4ZWRGaWVsZHM6e2hyZWY6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxyZWw6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSx0aXRsZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHRhcmdldFNjaGVtYTpQZixtZWRpYVR5cGU6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxtZXRob2Q6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxlbmNUeXBlOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sc2NoZW1hOlBmfX19fX19LHRyYXZlcnNhbF92aXNpdG9yX2dldE5vZGVUeXBlPXM9PntpZihqdShzKSlyZXR1cm5gJHtzLmVsZW1lbnQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrcy5lbGVtZW50LnNsaWNlKDEpfUVsZW1lbnRgfSxEZj17SlNPTlNjaGVtYURyYWZ0NEVsZW1lbnQ6WyJjb250ZW50Il0sSlNPTlJlZmVyZW5jZUVsZW1lbnQ6WyJjb250ZW50Il0sTWVkaWFFbGVtZW50OlsiY29udGVudCJdLExpbmtEZXNjcmlwdGlvbkVsZW1lbnQ6WyJjb250ZW50Il0sLi4uS3V9LEZmPXtuYW1lc3BhY2U6cz0+e2NvbnN0e2Jhc2U6b309cztyZXR1cm4gby5yZWdpc3RlcigialNPTlNjaGVtYURyYWZ0NCIsTGgpLG8ucmVnaXN0ZXIoImpTT05SZWZlcmVuY2UiLEZoKSxvLnJlZ2lzdGVyKCJtZWRpYSIsSmgpLG8ucmVnaXN0ZXIoImxpbmtEZXNjcmlwdGlvbiIsSGgpLG99fSxWZj1GZixyZWZyYWN0b3JfdG9vbGJveD0oKT0+e2NvbnN0IHM9Y3JlYXRlTmFtZXNwYWNlKFZmKTtyZXR1cm57cHJlZGljYXRlczp7Li4uYWUsaXNTdHJpbmdFbGVtZW50Okl1fSxuYW1lc3BhY2U6c319LHJlZnJhY3Rvcl9yZWZyYWN0PShzLHtzcGVjUGF0aDpvPVsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiJHZpc2l0b3IiXSxwbHVnaW5zOmk9W10sc3BlY2lmaWNhdGlvbk9iajphPVJmfT17fSk9Pntjb25zdCB1PSgwLFN1LmUpKHMpLF89ZGVyZWZlcmVuY2UoYSksdz1uZXcodHAobyxfKSkoe3NwZWNPYmo6X30pO3JldHVybiB2aXNpdG9yX3Zpc2l0KHUsdyksZGlzcGF0Y2hQbHVnaW5zU3luYyh3LmVsZW1lbnQsaSx7dG9vbGJveENyZWF0b3I6cmVmcmFjdG9yX3Rvb2xib3gsdmlzaXRvck9wdGlvbnM6e2tleU1hcDpEZixub2RlVHlwZUdldHRlcjp0cmF2ZXJzYWxfdmlzaXRvcl9nZXROb2RlVHlwZX19KX0scmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3Rvcj1zPT4obyxpPXt9KT0+cmVmcmFjdG9yX3JlZnJhY3Qobyx7c3BlY1BhdGg6cywuLi5pfSk7TGgucmVmcmFjdD1yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiJHZpc2l0b3IiXSksRmgucmVmcmFjdD1yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OUmVmZXJlbmNlIiwiJHZpc2l0b3IiXSksSmgucmVmcmFjdD1yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJNZWRpYSIsIiR2aXNpdG9yIl0pLEhoLnJlZnJhY3Q9cmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiJHZpc2l0b3IiXSk7Y29uc3QgV2Y9Y2xhc3MgU2NoZW1hX1NjaGVtYSBleHRlbmRzIExoe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJzY2hlbWEiLHRoaXMuY2xhc3Nlcy5wdXNoKCJqc29uLXNjaGVtYS1kcmFmdC00Iil9Z2V0IGlkUHJvcCgpe3Rocm93IG5ldyBEaCgiaWRQcm9wIGdldHRlciBpbiBTY2hlbWEgY2xhc3MgaXMgbm90IG5vdCBzdXBwb3J0ZWQuIil9c2V0IGlkUHJvcChzKXt0aHJvdyBuZXcgRGgoImlkUHJvcCBzZXR0ZXIgaW4gU2NoZW1hIGNsYXNzIGlzIG5vdCBub3Qgc3VwcG9ydGVkLiIpfWdldCAkc2NoZW1hKCl7dGhyb3cgbmV3IERoKCIkc2NoZW1hIGdldHRlciBpbiBTY2hlbWEgY2xhc3MgaXMgbm90IG5vdCBzdXBwb3J0ZWQuIil9c2V0ICRzY2hlbWEocyl7dGhyb3cgbmV3IERoKCIkc2NoZW1hIHNldHRlciBpbiBTY2hlbWEgY2xhc3MgaXMgbm90IG5vdCBzdXBwb3J0ZWQuIil9Z2V0IGFkZGl0aW9uYWxJdGVtcygpe3JldHVybiB0aGlzLmdldCgiYWRkaXRpb25hbEl0ZW1zIil9c2V0IGFkZGl0aW9uYWxJdGVtcyhzKXt0aGlzLnNldCgiYWRkaXRpb25hbEl0ZW1zIixzKX1nZXQgaXRlbXMoKXtyZXR1cm4gdGhpcy5nZXQoIml0ZW1zIil9c2V0IGl0ZW1zKHMpe3RoaXMuc2V0KCJpdGVtcyIscyl9Z2V0IGFkZGl0aW9uYWxQcm9wZXJ0aWVzKCl7cmV0dXJuIHRoaXMuZ2V0KCJhZGRpdGlvbmFsUHJvcGVydGllcyIpfXNldCBhZGRpdGlvbmFsUHJvcGVydGllcyhzKXt0aGlzLnNldCgiYWRkaXRpb25hbFByb3BlcnRpZXMiLHMpfWdldCBwYXR0ZXJuUHJvcGVydGllcygpe3Rocm93IG5ldyBEaCgicGF0dGVyblByb3BlcnRpZXMgZ2V0dGVyIGluIFNjaGVtYSBjbGFzcyBpcyBub3Qgbm90IHN1cHBvcnRlZC4iKX1zZXQgcGF0dGVyblByb3BlcnRpZXMocyl7dGhyb3cgbmV3IERoKCJwYXR0ZXJuUHJvcGVydGllcyBzZXR0ZXIgaW4gU2NoZW1hIGNsYXNzIGlzIG5vdCBub3Qgc3VwcG9ydGVkLiIpfWdldCBkZXBlbmRlbmNpZXMoKXt0aHJvdyBuZXcgRGgoImRlcGVuZGVuY2llcyBnZXR0ZXIgaW4gU2NoZW1hIGNsYXNzIGlzIG5vdCBub3Qgc3VwcG9ydGVkLiIpfXNldCBkZXBlbmRlbmNpZXMocyl7dGhyb3cgbmV3IERoKCJkZXBlbmRlbmNpZXMgc2V0dGVyIGluIFNjaGVtYSBjbGFzcyBpcyBub3Qgbm90IHN1cHBvcnRlZC4iKX1nZXQgdHlwZSgpe3JldHVybiB0aGlzLmdldCgidHlwZSIpfXNldCB0eXBlKHMpe3RoaXMuc2V0KCJ0eXBlIixzKX1nZXQgbm90KCl7cmV0dXJuIHRoaXMuZ2V0KCJub3QiKX1zZXQgbm90KHMpe3RoaXMuc2V0KCJub3QiLHMpfWdldCBkZWZpbml0aW9ucygpe3Rocm93IG5ldyBEaCgiZGVmaW5pdGlvbnMgZ2V0dGVyIGluIFNjaGVtYSBjbGFzcyBpcyBub3Qgbm90IHN1cHBvcnRlZC4iKX1zZXQgZGVmaW5pdGlvbnMocyl7dGhyb3cgbmV3IERoKCJkZWZpbml0aW9ucyBzZXR0ZXIgaW4gU2NoZW1hIGNsYXNzIGlzIG5vdCBub3Qgc3VwcG9ydGVkLiIpfWdldCBiYXNlKCl7dGhyb3cgbmV3IERoKCJiYXNlIGdldHRlciBpbiBTY2hlbWEgY2xhc3MgaXMgbm90IG5vdCBzdXBwb3J0ZWQuIil9c2V0IGJhc2Uocyl7dGhyb3cgbmV3IERoKCJiYXNlIHNldHRlciBpbiBTY2hlbWEgY2xhc3MgaXMgbm90IG5vdCBzdXBwb3J0ZWQuIil9Z2V0IGxpbmtzKCl7dGhyb3cgbmV3IERoKCJsaW5rcyBnZXR0ZXIgaW4gU2NoZW1hIGNsYXNzIGlzIG5vdCBub3Qgc3VwcG9ydGVkLiIpfXNldCBsaW5rcyhzKXt0aHJvdyBuZXcgRGgoImxpbmtzIHNldHRlciBpbiBTY2hlbWEgY2xhc3MgaXMgbm90IG5vdCBzdXBwb3J0ZWQuIil9Z2V0IG1lZGlhKCl7dGhyb3cgbmV3IERoKCJtZWRpYSBnZXR0ZXIgaW4gU2NoZW1hIGNsYXNzIGlzIG5vdCBub3Qgc3VwcG9ydGVkLiIpfXNldCBtZWRpYShzKXt0aHJvdyBuZXcgRGgoIm1lZGlhIHNldHRlciBpbiBTY2hlbWEgY2xhc3MgaXMgbm90IG5vdCBzdXBwb3J0ZWQuIil9Z2V0IG51bGxhYmxlKCl7cmV0dXJuIHRoaXMuZ2V0KCJudWxsYWJsZSIpfXNldCBudWxsYWJsZShzKXt0aGlzLnNldCgibnVsbGFibGUiLHMpfWdldCBkaXNjcmltaW5hdG9yKCl7cmV0dXJuIHRoaXMuZ2V0KCJkaXNjcmltaW5hdG9yIil9c2V0IGRpc2NyaW1pbmF0b3Iocyl7dGhpcy5zZXQoImRpc2NyaW1pbmF0b3IiLHMpfWdldCB3cml0ZU9ubHkoKXtyZXR1cm4gdGhpcy5nZXQoIndyaXRlT25seSIpfXNldCB3cml0ZU9ubHkocyl7dGhpcy5zZXQoIndyaXRlT25seSIscyl9Z2V0IHhtbCgpe3JldHVybiB0aGlzLmdldCgieG1sIil9c2V0IHhtbChzKXt0aGlzLnNldCgieG1sIixzKX1nZXQgZXh0ZXJuYWxEb2NzKCl7cmV0dXJuIHRoaXMuZ2V0KCJleHRlcm5hbERvY3MiKX1zZXQgZXh0ZXJuYWxEb2NzKHMpe3RoaXMuc2V0KCJleHRlcm5hbERvY3MiLHMpfWdldCBleGFtcGxlKCl7cmV0dXJuIHRoaXMuZ2V0KCJleGFtcGxlIil9c2V0IGV4YW1wbGUocyl7dGhpcy5zZXQoImV4YW1wbGUiLHMpfWdldCBkZXByZWNhdGVkKCl7cmV0dXJuIHRoaXMuZ2V0KCJkZXByZWNhdGVkIil9c2V0IGRlcHJlY2F0ZWQocyl7dGhpcy5zZXQoImRlcHJlY2F0ZWQiLHMpfX07Y2xhc3MgU2VjdXJpdHlSZXF1aXJlbWVudCBleHRlbmRzIFN1LlNoe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJzZWN1cml0eVJlcXVpcmVtZW50In19Y29uc3QgSmY9U2VjdXJpdHlSZXF1aXJlbWVudDtjbGFzcyBTZWN1cml0eVNjaGVtZSBleHRlbmRzIFN1LlNoe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJzZWN1cml0eVNjaGVtZSJ9Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy5nZXQoInR5cGUiKX1zZXQgdHlwZShzKXt0aGlzLnNldCgidHlwZSIscyl9Z2V0IGRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJkZXNjcmlwdGlvbiIpfXNldCBkZXNjcmlwdGlvbihzKXt0aGlzLnNldCgiZGVzY3JpcHRpb24iLHMpfWdldCBuYW1lKCl7cmV0dXJuIHRoaXMuZ2V0KCJuYW1lIil9c2V0IG5hbWUocyl7dGhpcy5zZXQoIm5hbWUiLHMpfWdldCBpbigpe3JldHVybiB0aGlzLmdldCgiaW4iKX1zZXQgaW4ocyl7dGhpcy5zZXQoImluIixzKX1nZXQgc2NoZW1lKCl7cmV0dXJuIHRoaXMuZ2V0KCJzY2hlbWUiKX1zZXQgc2NoZW1lKHMpe3RoaXMuc2V0KCJzY2hlbWUiLHMpfWdldCBiZWFyZXJGb3JtYXQoKXtyZXR1cm4gdGhpcy5nZXQoImJlYXJlckZvcm1hdCIpfXNldCBiZWFyZXJGb3JtYXQocyl7dGhpcy5zZXQoImJlYXJlckZvcm1hdCIscyl9Z2V0IGZsb3dzKCl7cmV0dXJuIHRoaXMuZ2V0KCJmbG93cyIpfXNldCBmbG93cyhzKXt0aGlzLnNldCgiZmxvd3MiLHMpfWdldCBvcGVuSWRDb25uZWN0VXJsKCl7cmV0dXJuIHRoaXMuZ2V0KCJvcGVuSWRDb25uZWN0VXJsIil9c2V0IG9wZW5JZENvbm5lY3RVcmwocyl7dGhpcy5zZXQoIm9wZW5JZENvbm5lY3RVcmwiLHMpfX1jb25zdCBIZj1TZWN1cml0eVNjaGVtZTtjbGFzcyBTZXJ2ZXIgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0ic2VydmVyIn1nZXQgdXJsKCl7cmV0dXJuIHRoaXMuZ2V0KCJ1cmwiKX1zZXQgdXJsKHMpe3RoaXMuc2V0KCJ1cmwiLHMpfWdldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLmdldCgiZGVzY3JpcHRpb24iKX1zZXQgZGVzY3JpcHRpb24ocyl7dGhpcy5zZXQoImRlc2NyaXB0aW9uIixzKX1nZXQgdmFyaWFibGVzKCl7cmV0dXJuIHRoaXMuZ2V0KCJ2YXJpYWJsZXMiKX1zZXQgdmFyaWFibGVzKHMpe3RoaXMuc2V0KCJ2YXJpYWJsZXMiLHMpfX1jb25zdCBHZj1TZXJ2ZXI7Y2xhc3MgU2VydmVyVmFyaWFibGUgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0ic2VydmVyVmFyaWFibGUifWdldCBlbnVtKCl7cmV0dXJuIHRoaXMuZ2V0KCJlbnVtIil9c2V0IGVudW0ocyl7dGhpcy5zZXQoImVudW0iLHMpfWdldCBkZWZhdWx0KCl7cmV0dXJuIHRoaXMuZ2V0KCJkZWZhdWx0Iil9c2V0IGRlZmF1bHQocyl7dGhpcy5zZXQoImRlZmF1bHQiLHMpfWdldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLmdldCgiZGVzY3JpcHRpb24iKX1zZXQgZGVzY3JpcHRpb24ocyl7dGhpcy5zZXQoImRlc2NyaXB0aW9uIixzKX19Y29uc3QgWGY9U2VydmVyVmFyaWFibGU7Y2xhc3MgVGFnIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9InRhZyJ9Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5nZXQoIm5hbWUiKX1zZXQgbmFtZShzKXt0aGlzLnNldCgibmFtZSIscyl9Z2V0IGRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJkZXNjcmlwdGlvbiIpfXNldCBkZXNjcmlwdGlvbihzKXt0aGlzLnNldCgiZGVzY3JpcHRpb24iLHMpfWdldCBleHRlcm5hbERvY3MoKXtyZXR1cm4gdGhpcy5nZXQoImV4dGVybmFsRG9jcyIpfXNldCBleHRlcm5hbERvY3Mocyl7dGhpcy5zZXQoImV4dGVybmFsRG9jcyIscyl9fWNvbnN0IFFmPVRhZztjbGFzcyBYbWwgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0ieG1sIn1nZXQgbmFtZSgpe3JldHVybiB0aGlzLmdldCgibmFtZSIpfXNldCBuYW1lKHMpe3RoaXMuc2V0KCJuYW1lIixzKX1nZXQgbmFtZXNwYWNlKCl7cmV0dXJuIHRoaXMuZ2V0KCJuYW1lc3BhY2UiKX1zZXQgbmFtZXNwYWNlKHMpe3RoaXMuc2V0KCJuYW1lc3BhY2UiLHMpfWdldCBwcmVmaXgoKXtyZXR1cm4gdGhpcy5nZXQoInByZWZpeCIpfXNldCBwcmVmaXgocyl7dGhpcy5zZXQoInByZWZpeCIscyl9Z2V0IGF0dHJpYnV0ZSgpe3JldHVybiB0aGlzLmdldCgiYXR0cmlidXRlIil9c2V0IGF0dHJpYnV0ZShzKXt0aGlzLnNldCgiYXR0cmlidXRlIixzKX1nZXQgd3JhcHBlZCgpe3JldHVybiB0aGlzLmdldCgid3JhcHBlZCIpfXNldCB3cmFwcGVkKHMpe3RoaXMuc2V0KCJ3cmFwcGVkIixzKX19Y29uc3QgZW09WG1sO2NvbnN0IHRtPWNsYXNzIHZpc2l0b3JzX1Zpc2l0b3JfVmlzaXRvcntlbGVtZW50O2NvbnN0cnVjdG9yKHM9e30pe09iamVjdC5hc3NpZ24odGhpcyxzKX1jb3B5TWV0YUFuZEF0dHJpYnV0ZXMocyxvKXsocy5tZXRhLmxlbmd0aD4wfHxvLm1ldGEubGVuZ3RoPjApJiYoby5tZXRhPXlkKG8ubWV0YSxzLm1ldGEpLGhhc0VsZW1lbnRTb3VyY2VNYXAocykmJm8ubWV0YS5zZXQoInNvdXJjZU1hcCIscy5tZXRhLmdldCgic291cmNlTWFwIikpKSwocy5hdHRyaWJ1dGVzLmxlbmd0aD4wfHxzLm1ldGEubGVuZ3RoPjApJiYoby5hdHRyaWJ1dGVzPXlkKG8uYXR0cmlidXRlcyxzLmF0dHJpYnV0ZXMpKX19O2NvbnN0IHJtPWNsYXNzIEZhbGxiYWNrVmlzaXRvcl9GYWxsYmFja1Zpc2l0b3IgZXh0ZW5kcyB0bXtlbnRlcihzKXtyZXR1cm4gdGhpcy5lbGVtZW50PWNsb25lRGVlcChzKSxVdX19O2NvbnN0IG5tPWNsYXNzIFNwZWNpZmljYXRpb25WaXNpdG9yX1NwZWNpZmljYXRpb25WaXNpdG9yIGV4dGVuZHMgdG17c3BlY09iajtwYXNzaW5nT3B0aW9uc05hbWVzPVsic3BlY09iaiIsIm9wZW5BcGlHZW5lcmljRWxlbWVudCIsIm9wZW5BcGlTZW1hbnRpY0VsZW1lbnQiXTtvcGVuQXBpR2VuZXJpY0VsZW1lbnQ7b3BlbkFwaVNlbWFudGljRWxlbWVudDtjb25zdHJ1Y3Rvcih7c3BlY09iajpzLHBhc3NpbmdPcHRpb25zTmFtZXM6byxvcGVuQXBpR2VuZXJpY0VsZW1lbnQ6aSxvcGVuQXBpU2VtYW50aWNFbGVtZW50OmEsLi4udX0pe3N1cGVyKHsuLi51fSksdGhpcy5zcGVjT2JqPXMsdGhpcy5vcGVuQXBpR2VuZXJpY0VsZW1lbnQ9aSx0aGlzLm9wZW5BcGlTZW1hbnRpY0VsZW1lbnQ9YSxBcnJheS5pc0FycmF5KG8pJiYodGhpcy5wYXNzaW5nT3B0aW9uc05hbWVzPW8pfXJldHJpZXZlUGFzc2luZ09wdGlvbnMoKXtyZXR1cm4gTWQodGhpcy5wYXNzaW5nT3B0aW9uc05hbWVzLHRoaXMpfXJldHJpZXZlRml4ZWRGaWVsZHMocyl7Y29uc3Qgbz10cChbInZpc2l0b3JzIiwuLi5zLCJmaXhlZEZpZWxkcyJdLHRoaXMuc3BlY09iaik7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBvJiZudWxsIT09bz9PYmplY3Qua2V5cyhvKTpbXX1yZXRyaWV2ZVZpc2l0b3Iocyl7cmV0dXJuIFFvKE1jLFsidmlzaXRvcnMiLC4uLnNdLHRoaXMuc3BlY09iaik/dHAoWyJ2aXNpdG9ycyIsLi4uc10sdGhpcy5zcGVjT2JqKTp0cChbInZpc2l0b3JzIiwuLi5zLCIkdmlzaXRvciJdLHRoaXMuc3BlY09iail9cmV0cmlldmVWaXNpdG9ySW5zdGFuY2UocyxvPXt9KXtjb25zdCBpPXRoaXMucmV0cmlldmVQYXNzaW5nT3B0aW9ucygpO3JldHVybiBuZXcodGhpcy5yZXRyaWV2ZVZpc2l0b3IocykpKHsuLi5pLC4uLm99KX10b1JlZnJhY3RlZEVsZW1lbnQocyxvLGk9e30pe2NvbnN0IGE9dGhpcy5yZXRyaWV2ZVZpc2l0b3JJbnN0YW5jZShzLGkpO3JldHVybiBhIGluc3RhbmNlb2Ygcm0mJihudWxsPT1hP3ZvaWQgMDphLmNvbnN0cnVjdG9yKT09PXJtP2Nsb25lRGVlcChvKToodmlzaXRvcl92aXNpdChvLGEsaSksYS5lbGVtZW50KX19O3ZhciBzbT1mdW5jdGlvbigpe2Z1bmN0aW9uIFhUYWtlKHMsbyl7dGhpcy54Zj1vLHRoaXMubj1zLHRoaXMuaT0wfXJldHVybiBYVGFrZS5wcm90b3R5cGVbIkBAdHJhbnNkdWNlci9pbml0Il09X3hmQmFzZV9pbml0LFhUYWtlLnByb3RvdHlwZVsiQEB0cmFuc2R1Y2VyL3Jlc3VsdCJdPV94ZkJhc2VfcmVzdWx0LFhUYWtlLnByb3RvdHlwZVsiQEB0cmFuc2R1Y2VyL3N0ZXAiXT1mdW5jdGlvbihzLG8pe3RoaXMuaSs9MTt2YXIgaT0wPT09dGhpcy5uP3M6dGhpcy54ZlsiQEB0cmFuc2R1Y2VyL3N0ZXAiXShzLG8pO3JldHVybiB0aGlzLm4+PTAmJnRoaXMuaT49dGhpcy5uP19yZWR1Y2VkKGkpOml9LFhUYWtlfSgpO2Z1bmN0aW9uIF94dGFrZShzKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIG5ldyBzbShzLG8pfX1jb25zdCBvbT1fY3VycnkyKF9kaXNwYXRjaGFibGUoWyJ0YWtlIl0sX3h0YWtlLChmdW5jdGlvbiB0YWtlKHMsbyl7cmV0dXJuIGphKDAsczwwPzEvMDpzLG8pfSkpKTt2YXIgaW09X2N1cnJ5MigoZnVuY3Rpb24ocyxvKXtyZXR1cm4gbmEob20ocy5sZW5ndGgsbykscyl9KSk7Y29uc3QgYW09aW0saXNSZWZlcmVuY2VMaWtlRWxlbWVudD1zPT5NdShzKSYmcy5oYXNLZXkoIiRyZWYiKSxjbT1NdSxsbT1NdSxpc09wZW5BcGlFeHRlbnNpb249cz0+SXUocy5rZXkpJiZhbSgieC0iLHNlcmlhbGl6ZXJzX3ZhbHVlKHMua2V5KSk7Y29uc3QgdW09Y2xhc3MgRml4ZWRGaWVsZHNWaXNpdG9yX0ZpeGVkRmllbGRzVmlzaXRvciBleHRlbmRzIG5te3NwZWNQYXRoO2lnbm9yZWRGaWVsZHM7Y2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwO3NwZWNpZmljYXRpb25FeHRlbnNpb25QcmVkaWNhdGU9aXNPcGVuQXBpRXh0ZW5zaW9uO2NvbnN0cnVjdG9yKHtzcGVjUGF0aDpzLGlnbm9yZWRGaWVsZHM6byxjYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM6aSxzcGVjaWZpY2F0aW9uRXh0ZW5zaW9uUHJlZGljYXRlOmEsLi4udX0pe3N1cGVyKHsuLi51fSksdGhpcy5zcGVjUGF0aD1zLHRoaXMuaWdub3JlZEZpZWxkcz1vfHxbXSwiYm9vbGVhbiI9PXR5cGVvZiBpJiYodGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM9aSksImZ1bmN0aW9uIj09dHlwZW9mIGEmJih0aGlzLnNwZWNpZmljYXRpb25FeHRlbnNpb25QcmVkaWNhdGU9YSl9T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPXRoaXMuc3BlY1BhdGgocyksaT10aGlzLnJldHJpZXZlRml4ZWRGaWVsZHMobyk7cmV0dXJuIHMuZm9yRWFjaCgoKHMsYSx1KT0+e2lmKEl1KGEpJiZpLmluY2x1ZGVzKHNlcmlhbGl6ZXJzX3ZhbHVlKGEpKSYmIXRoaXMuaWdub3JlZEZpZWxkcy5pbmNsdWRlcyhzZXJpYWxpemVyc192YWx1ZShhKSkpe2NvbnN0IGk9dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQoWy4uLm8sImZpeGVkRmllbGRzIixzZXJpYWxpemVyc192YWx1ZShhKV0scyksXz1uZXcgU3UuUHIoY2xvbmVEZWVwKGEpLGkpO3RoaXMuY29weU1ldGFBbmRBdHRyaWJ1dGVzKHUsXyksXy5jbGFzc2VzLnB1c2goImZpeGVkLWZpZWxkIiksdGhpcy5lbGVtZW50LmNvbnRlbnQucHVzaChfKX1lbHNlIGlmKHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zJiZ0aGlzLnNwZWNpZmljYXRpb25FeHRlbnNpb25QcmVkaWNhdGUodSkpe2NvbnN0IHM9dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQoWyJkb2N1bWVudCIsImV4dGVuc2lvbiJdLHUpO3RoaXMuZWxlbWVudC5jb250ZW50LnB1c2gocyl9ZWxzZSB0aGlzLmlnbm9yZWRGaWVsZHMuaW5jbHVkZXMoc2VyaWFsaXplcnNfdmFsdWUoYSkpfHx0aGlzLmVsZW1lbnQuY29udGVudC5wdXNoKGNsb25lRGVlcCh1KSl9KSksdGhpcy5jb3B5TWV0YUFuZEF0dHJpYnV0ZXMocyx0aGlzLmVsZW1lbnQpLFV1fX07Y2xhc3MgT3BlbkFwaTNfMFZpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgZmgsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIk9wZW5BcGkiXSksdGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM9ITB9T2JqZWN0RWxlbWVudChzKXtyZXR1cm4gdW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpfX1jb25zdCBwbT1PcGVuQXBpM18wVmlzaXRvcjtjbGFzcyBPcGVuYXBpVmlzaXRvciBleHRlbmRzKE1peGluKG5tLHJtKSl7U3RyaW5nRWxlbWVudChzKXtjb25zdCBvPW5ldyBkaChzZXJpYWxpemVyc192YWx1ZShzKSk7cmV0dXJuIHRoaXMuY29weU1ldGFBbmRBdHRyaWJ1dGVzKHMsbyksdGhpcy5lbGVtZW50PW8sVXV9fWNvbnN0IGhtPU9wZW5hcGlWaXNpdG9yO2NvbnN0IGRtPWNsYXNzIFNwZWNpZmljYXRpb25FeHRlbnNpb25WaXNpdG9yIGV4dGVuZHMgbm17TWVtYmVyRWxlbWVudChzKXtyZXR1cm4gdGhpcy5lbGVtZW50PWNsb25lRGVlcChzKSx0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJzcGVjaWZpY2F0aW9uLWV4dGVuc2lvbiIpLFV1fX07Y2xhc3MgSW5mb1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgWHAsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIkluZm8iXSksdGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM9ITB9fWNvbnN0IGZtPUluZm9WaXNpdG9yO2NvbnN0IG1tPWNsYXNzIFZlcnNpb25WaXNpdG9yIGV4dGVuZHMgcm17U3RyaW5nRWxlbWVudChzKXtjb25zdCBvPXN1cGVyLmVudGVyKHMpO3JldHVybiB0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJhcGktdmVyc2lvbiIpLHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goInZlcnNpb24iKSxvfX07Y2xhc3MgQ29udGFjdFZpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgV3AsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIkNvbnRhY3QiXSksdGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM9ITB9fWNvbnN0IGdtPUNvbnRhY3RWaXNpdG9yO2NsYXNzIExpY2Vuc2VWaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFFwLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJMaWNlbnNlIl0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwfX1jb25zdCB5bT1MaWNlbnNlVmlzaXRvcjtjbGFzcyBMaW5rVmlzaXRvciBleHRlbmRzKE1peGluKHVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBacCx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGluayJdKSx0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz0hMH1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89dW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybihJdSh0aGlzLmVsZW1lbnQub3BlcmF0aW9uSWQpfHxJdSh0aGlzLmVsZW1lbnQub3BlcmF0aW9uUmVmKSkmJnRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goInJlZmVyZW5jZS1lbGVtZW50Iiksb319Y29uc3Qgdm09TGlua1Zpc2l0b3I7Y29uc3QgYm09Y2xhc3MgT3BlcmF0aW9uUmVmVmlzaXRvciBleHRlbmRzIHJte1N0cmluZ0VsZW1lbnQocyl7Y29uc3Qgbz1zdXBlci5lbnRlcihzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgicmVmZXJlbmNlLXZhbHVlIiksb319O2NvbnN0IF9tPWNsYXNzIE9wZXJhdGlvbklkVmlzaXRvciBleHRlbmRzIHJte1N0cmluZ0VsZW1lbnQocyl7Y29uc3Qgbz1zdXBlci5lbnRlcihzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgicmVmZXJlbmNlLXZhbHVlIiksb319O2NvbnN0IFNtPWNsYXNzIFBhdHRlcm5lZEZpZWxkc1Zpc2l0b3JfUGF0dGVybmVkRmllbGRzVmlzaXRvciBleHRlbmRzIG5te3NwZWNQYXRoO2lnbm9yZWRGaWVsZHM7ZmllbGRQYXR0ZXJuUHJlZGljYXRlPWVzX0Y7Y2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSExO3NwZWNpZmljYXRpb25FeHRlbnNpb25QcmVkaWNhdGU9aXNPcGVuQXBpRXh0ZW5zaW9uO2NvbnN0cnVjdG9yKHtzcGVjUGF0aDpzLGlnbm9yZWRGaWVsZHM6byxmaWVsZFBhdHRlcm5QcmVkaWNhdGU6aSxjYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM6YSxzcGVjaWZpY2F0aW9uRXh0ZW5zaW9uUHJlZGljYXRlOnUsLi4uX30pe3N1cGVyKHsuLi5ffSksdGhpcy5zcGVjUGF0aD1zLHRoaXMuaWdub3JlZEZpZWxkcz1vfHxbXSwiZnVuY3Rpb24iPT10eXBlb2YgaSYmKHRoaXMuZmllbGRQYXR0ZXJuUHJlZGljYXRlPWkpLCJib29sZWFuIj09dHlwZW9mIGEmJih0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz1hKSwiZnVuY3Rpb24iPT10eXBlb2YgdSYmKHRoaXMuc3BlY2lmaWNhdGlvbkV4dGVuc2lvblByZWRpY2F0ZT11KX1PYmplY3RFbGVtZW50KHMpe3JldHVybiBzLmZvckVhY2goKChzLG8saSk9PntpZih0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucyYmdGhpcy5zcGVjaWZpY2F0aW9uRXh0ZW5zaW9uUHJlZGljYXRlKGkpKXtjb25zdCBzPXRoaXMudG9SZWZyYWN0ZWRFbGVtZW50KFsiZG9jdW1lbnQiLCJleHRlbnNpb24iXSxpKTt0aGlzLmVsZW1lbnQuY29udGVudC5wdXNoKHMpfWVsc2UgaWYoIXRoaXMuaWdub3JlZEZpZWxkcy5pbmNsdWRlcyhzZXJpYWxpemVyc192YWx1ZShvKSkmJnRoaXMuZmllbGRQYXR0ZXJuUHJlZGljYXRlKHNlcmlhbGl6ZXJzX3ZhbHVlKG8pKSl7Y29uc3QgYT10aGlzLnNwZWNQYXRoKHMpLHU9dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQoYSxzKSxfPW5ldyBTdS5QcihjbG9uZURlZXAobyksdSk7dGhpcy5jb3B5TWV0YUFuZEF0dHJpYnV0ZXMoaSxfKSxfLmNsYXNzZXMucHVzaCgicGF0dGVybmVkLWZpZWxkIiksdGhpcy5lbGVtZW50LmNvbnRlbnQucHVzaChfKX1lbHNlIHRoaXMuaWdub3JlZEZpZWxkcy5pbmNsdWRlcyhzZXJpYWxpemVyc192YWx1ZShvKSl8fHRoaXMuZWxlbWVudC5jb250ZW50LnB1c2goY2xvbmVEZWVwKGkpKX0pKSx0aGlzLmNvcHlNZXRhQW5kQXR0cmlidXRlcyhzLHRoaXMuZWxlbWVudCksVXV9fTtjb25zdCBFbT1jbGFzcyBNYXBWaXNpdG9yX01hcFZpc2l0b3IgZXh0ZW5kcyBTbXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmZpZWxkUGF0dGVyblByZWRpY2F0ZT1OZH19O2NsYXNzIExpbmtQYXJhbWV0ZXJzIGV4dGVuZHMgU3UuU2h7c3RhdGljIHByaW1hcnlDbGFzcz0ibGluay1wYXJhbWV0ZXJzIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKExpbmtQYXJhbWV0ZXJzLnByaW1hcnlDbGFzcyl9fWNvbnN0IHdtPUxpbmtQYXJhbWV0ZXJzO2NsYXNzIFBhcmFtZXRlcnNWaXNpdG9yIGV4dGVuZHMoTWl4aW4oRW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IHdtLHRoaXMuc3BlY1BhdGg9ZmMoWyJ2YWx1ZSJdKX19Y29uc3QgeG09UGFyYW1ldGVyc1Zpc2l0b3I7Y2xhc3MgU2VydmVyVmlzaXRvciBleHRlbmRzKE1peGluKHVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBHZix0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiU2VydmVyIl0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwfX1jb25zdCBrbT1TZXJ2ZXJWaXNpdG9yO2NvbnN0IE9tPWNsYXNzIFVybFZpc2l0b3IgZXh0ZW5kcyBybXtTdHJpbmdFbGVtZW50KHMpe2NvbnN0IG89c3VwZXIuZW50ZXIocyk7cmV0dXJuIHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goInNlcnZlci11cmwiKSxvfX07Y2xhc3MgU2VydmVycyBleHRlbmRzIFN1LndFe3N0YXRpYyBwcmltYXJ5Q2xhc3M9InNlcnZlcnMiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goU2VydmVycy5wcmltYXJ5Q2xhc3MpfX1jb25zdCBDbT1TZXJ2ZXJzO2NsYXNzIFNlcnZlcnNWaXNpdG9yIGV4dGVuZHMoTWl4aW4obm0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IENtfUFycmF5RWxlbWVudChzKXtyZXR1cm4gcy5mb3JFYWNoKChzPT57Y29uc3Qgbz1jbShzKT9bImRvY3VtZW50Iiwib2JqZWN0cyIsIlNlcnZlciJdOlsidmFsdWUiXSxpPXRoaXMudG9SZWZyYWN0ZWRFbGVtZW50KG8scyk7dGhpcy5lbGVtZW50LnB1c2goaSl9KSksdGhpcy5jb3B5TWV0YUFuZEF0dHJpYnV0ZXMocyx0aGlzLmVsZW1lbnQpLFV1fX1jb25zdCBBbT1TZXJ2ZXJzVmlzaXRvcjtjbGFzcyBTZXJ2ZXJWYXJpYWJsZVZpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgWGYsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIlNlcnZlclZhcmlhYmxlIl0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwfX1jb25zdCBqbT1TZXJ2ZXJWYXJpYWJsZVZpc2l0b3I7Y2xhc3MgU2VydmVyVmFyaWFibGVzIGV4dGVuZHMgU3UuU2h7c3RhdGljIHByaW1hcnlDbGFzcz0ic2VydmVyLXZhcmlhYmxlcyI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChTZXJ2ZXJWYXJpYWJsZXMucHJpbWFyeUNsYXNzKX19Y29uc3QgSW09U2VydmVyVmFyaWFibGVzO2NsYXNzIFZhcmlhYmxlc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihFbSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgSW0sdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIlNlcnZlclZhcmlhYmxlIl0pfX1jb25zdCBQbT1WYXJpYWJsZXNWaXNpdG9yO2NsYXNzIE1lZGlhVHlwZVZpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgdGgsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIk1lZGlhVHlwZSJdKSx0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz0hMH19Y29uc3QgVG09TWVkaWFUeXBlVmlzaXRvcjtjb25zdCBObT1jbGFzcyBBbHRlcm5hdGluZ1Zpc2l0b3JfQWx0ZXJuYXRpbmdWaXNpdG9yIGV4dGVuZHMgbm17YWx0ZXJuYXRvcjtjb25zdHJ1Y3Rvcih7YWx0ZXJuYXRvcjpzLC4uLm99KXtzdXBlcih7Li4ub30pLHRoaXMuYWx0ZXJuYXRvcj1zfHxbXX1lbnRlcihzKXtjb25zdCBvPXRoaXMuYWx0ZXJuYXRvci5tYXAoKCh7cHJlZGljYXRlOnMsc3BlY1BhdGg6b30pPT5oZihzLGZjKG8pLGdjKSkpLGk9Q2Yobykocyk7cmV0dXJuIHRoaXMuZWxlbWVudD10aGlzLnRvUmVmcmFjdGVkRWxlbWVudChpLHMpLFV1fX0sTW09aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBVcHx8cyhhKSYmbygiY2FsbGJhY2siLGEpJiZpKCJvYmplY3QiLGEpKSksUm09aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiB6cHx8cyhhKSYmbygiY29tcG9uZW50cyIsYSkmJmkoIm9iamVjdCIsYSkpKSxEbT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIFdwfHxzKGEpJiZvKCJjb250YWN0IixhKSYmaSgib2JqZWN0IixhKSkpLExtPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgS3B8fHMoYSkmJm8oImV4YW1wbGUiLGEpJiZpKCJvYmplY3QiLGEpKSksRm09aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBHcHx8cyhhKSYmbygiZXh0ZXJuYWxEb2N1bWVudGF0aW9uIixhKSYmaSgib2JqZWN0IixhKSkpLEJtPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgWXB8fHMoYSkmJm8oImhlYWRlciIsYSkmJmkoIm9iamVjdCIsYSkpKSwkbT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIFhwfHxzKGEpJiZvKCJpbmZvIixhKSYmaSgib2JqZWN0IixhKSkpLHFtPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgUXB8fHMoYSkmJm8oImxpY2Vuc2UiLGEpJiZpKCJvYmplY3QiLGEpKSksVm09aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBacHx8cyhhKSYmbygibGluayIsYSkmJmkoIm9iamVjdCIsYSkpKSxVbT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIGRofHxzKGEpJiZvKCJvcGVuYXBpIixhKSYmaSgic3RyaW5nIixhKSkpLHptPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aSxoYXNDbGFzczphfSk9PnU9PnUgaW5zdGFuY2VvZiBmaHx8cyh1KSYmbygib3BlbkFwaTNfMCIsdSkmJmkoIm9iamVjdCIsdSkmJmEoImFwaSIsdSkpKSxXbT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIHZofHxzKGEpJiZvKCJvcGVyYXRpb24iLGEpJiZpKCJvYmplY3QiLGEpKSksSm09aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBfaHx8cyhhKSYmbygicGFyYW1ldGVyIixhKSYmaSgib2JqZWN0IixhKSkpLEhtPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2Ygd2h8fHMoYSkmJm8oInBhdGhJdGVtIixhKSYmaSgib2JqZWN0IixhKSkpLEttPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgT2h8fHMoYSkmJm8oInBhdGhzIixhKSYmaSgib2JqZWN0IixhKSkpLEdtPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2Ygamh8fHMoYSkmJm8oInJlZmVyZW5jZSIsYSkmJmkoIm9iamVjdCIsYSkpKSxZbT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIElofHxzKGEpJiZvKCJyZXF1ZXN0Qm9keSIsYSkmJmkoIm9iamVjdCIsYSkpKSxYbT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIFBofHxzKGEpJiZvKCJyZXNwb25zZSIsYSkmJmkoIm9iamVjdCIsYSkpKSxRbT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIFJofHxzKGEpJiZvKCJyZXNwb25zZXMiLGEpJiZpKCJvYmplY3QiLGEpKSksWm09aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBXZnx8cyhhKSYmbygic2NoZW1hIixhKSYmaSgib2JqZWN0IixhKSkpLGlzQm9vbGVhbkpzb25TY2hlbWFFbGVtZW50PXM9Pk51KHMpJiZzLmNsYXNzZXMuaW5jbHVkZXMoImJvb2xlYW4tanNvbi1zY2hlbWEiKSxlZz1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIEpmfHxzKGEpJiZvKCJzZWN1cml0eVJlcXVpcmVtZW50IixhKSYmaSgib2JqZWN0IixhKSkpLHJnPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgSGZ8fHMoYSkmJm8oInNlY3VyaXR5U2NoZW1lIixhKSYmaSgib2JqZWN0IixhKSkpLG5nPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgR2Z8fHMoYSkmJm8oInNlcnZlciIsYSkmJmkoIm9iamVjdCIsYSkpKSxzZz1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIFhmfHxzKGEpJiZvKCJzZXJ2ZXJWYXJpYWJsZSIsYSkmJmkoIm9iamVjdCIsYSkpKSxvZz1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIHRofHxzKGEpJiZvKCJtZWRpYVR5cGUiLGEpJiZpKCJvYmplY3QiLGEpKSksbGc9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppLGhhc0NsYXNzOmF9KT0+dT0+dSBpbnN0YW5jZW9mIENtfHxzKHUpJiZvKCJhcnJheSIsdSkmJmkoImFycmF5Iix1KSYmYSgic2VydmVycyIsdSkpKTtjbGFzcyBTY2hlbWFWaXNpdG9yIGV4dGVuZHMoTWl4aW4oTm0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmFsdGVybmF0b3I9W3twcmVkaWNhdGU6aXNSZWZlcmVuY2VMaWtlRWxlbWVudCxzcGVjUGF0aDpbImRvY3VtZW50Iiwib2JqZWN0cyIsIlJlZmVyZW5jZSJdfSx7cHJlZGljYXRlOmVzX1Qsc3BlY1BhdGg6WyJkb2N1bWVudCIsIm9iamVjdHMiLCJTY2hlbWEiXX1dfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1ObS5wcm90b3R5cGUuZW50ZXIuY2FsbCh0aGlzLHMpO3JldHVybiBHbSh0aGlzLmVsZW1lbnQpJiZ0aGlzLmVsZW1lbnQuc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJzY2hlbWEiKSxvfX1jb25zdCBwZz1TY2hlbWFWaXNpdG9yO2NsYXNzIEV4YW1wbGVzVmlzaXRvciBleHRlbmRzKE1peGluKEVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBTdS5TaCx0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJleGFtcGxlcyIpLHRoaXMuc3BlY1BhdGg9cz0+aXNSZWZlcmVuY2VMaWtlRWxlbWVudChzKT9bImRvY3VtZW50Iiwib2JqZWN0cyIsIlJlZmVyZW5jZSJdOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiRXhhbXBsZSJdLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1FbS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIHRoaXMuZWxlbWVudC5maWx0ZXIoR20pLmZvckVhY2goKHM9PntzLnNldE1ldGFQcm9wZXJ0eSgicmVmZXJlbmNlZC1lbGVtZW50IiwiZXhhbXBsZSIpfSkpLG99fWNvbnN0IGZnPUV4YW1wbGVzVmlzaXRvcjtjbGFzcyBNZWRpYVR5cGVFeGFtcGxlcyBleHRlbmRzIFN1LlNoe3N0YXRpYyBwcmltYXJ5Q2xhc3M9Im1lZGlhLXR5cGUtZXhhbXBsZXMiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goTWVkaWFUeXBlRXhhbXBsZXMucHJpbWFyeUNsYXNzKSx0aGlzLmNsYXNzZXMucHVzaCgiZXhhbXBsZXMiKX19Y29uc3QgbWc9TWVkaWFUeXBlRXhhbXBsZXM7Y29uc3QgZ2c9Y2xhc3MgRXhhbXBsZXNWaXNpdG9yX0V4YW1wbGVzVmlzaXRvciBleHRlbmRzIGZne2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgbWd9fTtjbGFzcyBNZWRpYVR5cGVFbmNvZGluZyBleHRlbmRzIFN1LlNoe3N0YXRpYyBwcmltYXJ5Q2xhc3M9Im1lZGlhLXR5cGUtZW5jb2RpbmciO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goTWVkaWFUeXBlRW5jb2RpbmcucHJpbWFyeUNsYXNzKX19Y29uc3QgeWc9TWVkaWFUeXBlRW5jb2Rpbmc7Y2xhc3MgRW5jb2RpbmdWaXNpdG9yIGV4dGVuZHMoTWl4aW4oRW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IHlnLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJFbmNvZGluZyJdKX19Y29uc3QgX2c9RW5jb2RpbmdWaXNpdG9yO2NsYXNzIFNlY3VyaXR5UmVxdWlyZW1lbnRWaXNpdG9yIGV4dGVuZHMoTWl4aW4oRW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IEpmLHRoaXMuc3BlY1BhdGg9ZmMoWyJ2YWx1ZSJdKX19Y29uc3QgeGc9U2VjdXJpdHlSZXF1aXJlbWVudFZpc2l0b3I7Y2xhc3MgU2VjdXJpdHkgZXh0ZW5kcyBTdS53RXtzdGF0aWMgcHJpbWFyeUNsYXNzPSJzZWN1cml0eSI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChTZWN1cml0eS5wcmltYXJ5Q2xhc3MpfX1jb25zdCBrZz1TZWN1cml0eTtjbGFzcyBTZWN1cml0eVZpc2l0b3IgZXh0ZW5kcyhNaXhpbihubSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcga2d9QXJyYXlFbGVtZW50KHMpe3JldHVybiBzLmZvckVhY2goKHM9PntpZihNdShzKSl7Y29uc3Qgbz10aGlzLnRvUmVmcmFjdGVkRWxlbWVudChbImRvY3VtZW50Iiwib2JqZWN0cyIsIlNlY3VyaXR5UmVxdWlyZW1lbnQiXSxzKTt0aGlzLmVsZW1lbnQucHVzaChvKX1lbHNlIHRoaXMuZWxlbWVudC5wdXNoKGNsb25lRGVlcChzKSl9KSksdGhpcy5jb3B5TWV0YUFuZEF0dHJpYnV0ZXMocyx0aGlzLmVsZW1lbnQpLFV1fX1jb25zdCBxZz1TZWN1cml0eVZpc2l0b3I7Y2xhc3MgQ29tcG9uZW50c1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgenAsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIkNvbXBvbmVudHMiXSksdGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM9ITB9fWNvbnN0IFZnPUNvbXBvbmVudHNWaXNpdG9yO2NsYXNzIFRhZ1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgUWYsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIlRhZyJdKSx0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz0hMH19Y29uc3QgVWc9VGFnVmlzaXRvcjtjbGFzcyBSZWZlcmVuY2VWaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IGpoLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiXSksdGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM9ITF9T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPXVtLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gSXUodGhpcy5lbGVtZW50LiRyZWYpJiZ0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJyZWZlcmVuY2UtZWxlbWVudCIpLG99fWNvbnN0IHpnPVJlZmVyZW5jZVZpc2l0b3I7Y29uc3QgV2c9Y2xhc3MgJFJlZlZpc2l0b3JfJFJlZlZpc2l0b3IgZXh0ZW5kcyBybXtTdHJpbmdFbGVtZW50KHMpe2NvbnN0IG89c3VwZXIuZW50ZXIocyk7cmV0dXJuIHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goInJlZmVyZW5jZS12YWx1ZSIpLG99fTtjbGFzcyBQYXJhbWV0ZXJWaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IF9oLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJQYXJhbWV0ZXIiXSksdGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM9ITB9T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPXVtLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gTXUodGhpcy5lbGVtZW50LmNvbnRlbnRQcm9wKSYmdGhpcy5lbGVtZW50LmNvbnRlbnRQcm9wLmZpbHRlcihvZykuZm9yRWFjaCgoKHMsbyk9PntzLnNldE1ldGFQcm9wZXJ0eSgibWVkaWEtdHlwZSIsc2VyaWFsaXplcnNfdmFsdWUobykpfSkpLG99fWNvbnN0IEtnPVBhcmFtZXRlclZpc2l0b3I7Y2xhc3MgU2NoZW1hVmlzaXRvcl9TY2hlbWFWaXNpdG9yIGV4dGVuZHMoTWl4aW4oTm0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmFsdGVybmF0b3I9W3twcmVkaWNhdGU6aXNSZWZlcmVuY2VMaWtlRWxlbWVudCxzcGVjUGF0aDpbImRvY3VtZW50Iiwib2JqZWN0cyIsIlJlZmVyZW5jZSJdfSx7cHJlZGljYXRlOmVzX1Qsc3BlY1BhdGg6WyJkb2N1bWVudCIsIm9iamVjdHMiLCJTY2hlbWEiXX1dfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1ObS5wcm90b3R5cGUuZW50ZXIuY2FsbCh0aGlzLHMpO3JldHVybiBHbSh0aGlzLmVsZW1lbnQpJiZ0aGlzLmVsZW1lbnQuc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJzY2hlbWEiKSxvfX1jb25zdCBZZz1TY2hlbWFWaXNpdG9yX1NjaGVtYVZpc2l0b3I7Y2xhc3MgSGVhZGVyVmlzaXRvciBleHRlbmRzKE1peGluKHVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBZcCx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiSGVhZGVyIl0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwfX1jb25zdCBYZz1IZWFkZXJWaXNpdG9yO2NsYXNzIGhlYWRlcl9TY2hlbWFWaXNpdG9yX1NjaGVtYVZpc2l0b3IgZXh0ZW5kcyhNaXhpbihObSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuYWx0ZXJuYXRvcj1be3ByZWRpY2F0ZTppc1JlZmVyZW5jZUxpa2VFbGVtZW50LHNwZWNQYXRoOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVmZXJlbmNlIl19LHtwcmVkaWNhdGU6ZXNfVCxzcGVjUGF0aDpbImRvY3VtZW50Iiwib2JqZWN0cyIsIlNjaGVtYSJdfV19T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPU5tLnByb3RvdHlwZS5lbnRlci5jYWxsKHRoaXMscyk7cmV0dXJuIEdtKHRoaXMuZWxlbWVudCkmJnRoaXMuZWxlbWVudC5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsInNjaGVtYSIpLG99fWNvbnN0IFpnPWhlYWRlcl9TY2hlbWFWaXNpdG9yX1NjaGVtYVZpc2l0b3I7Y2xhc3MgSGVhZGVyRXhhbXBsZXMgZXh0ZW5kcyBTdS5TaHtzdGF0aWMgcHJpbWFyeUNsYXNzPSJoZWFkZXItZXhhbXBsZXMiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goSGVhZGVyRXhhbXBsZXMucHJpbWFyeUNsYXNzKSx0aGlzLmNsYXNzZXMucHVzaCgiZXhhbXBsZXMiKX19Y29uc3QgZXk9SGVhZGVyRXhhbXBsZXM7Y29uc3QgdHk9Y2xhc3MgaGVhZGVyX0V4YW1wbGVzVmlzaXRvcl9FeGFtcGxlc1Zpc2l0b3IgZXh0ZW5kcyBmZ3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IGV5fX07Y2xhc3MgQ29udGVudFZpc2l0b3IgZXh0ZW5kcyhNaXhpbihFbSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgU3UuU2gsdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgiY29udGVudCIpLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJNZWRpYVR5cGUiXSl9fWNvbnN0IHJ5PUNvbnRlbnRWaXNpdG9yO2NsYXNzIEhlYWRlckNvbnRlbnQgZXh0ZW5kcyBTdS5TaHtzdGF0aWMgcHJpbWFyeUNsYXNzPSJoZWFkZXItY29udGVudCI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChIZWFkZXJDb250ZW50LnByaW1hcnlDbGFzcyksdGhpcy5jbGFzc2VzLnB1c2goImNvbnRlbnQiKX19Y29uc3Qgbnk9SGVhZGVyQ29udGVudDtjb25zdCBzeT1jbGFzcyBDb250ZW50VmlzaXRvcl9Db250ZW50VmlzaXRvciBleHRlbmRzIHJ5e2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgbnl9fTtjbGFzcyBzY2hlbWFfU2NoZW1hVmlzaXRvciBleHRlbmRzKE1peGluKHVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBXZix0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiU2NoZW1hIl0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwfX1jb25zdCBveT1zY2hlbWFfU2NoZW1hVmlzaXRvcixpeT1SZi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkpTT05TY2hlbWEuZml4ZWRGaWVsZHMuYWxsT2Y7Y29uc3QgYXk9Y2xhc3MgQWxsT2ZWaXNpdG9yX0FsbE9mVmlzaXRvciBleHRlbmRzIGl5e0FycmF5RWxlbWVudChzKXtjb25zdCBvPWl5LnByb3RvdHlwZS5BcnJheUVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiB0aGlzLmVsZW1lbnQuZmlsdGVyKEdtKS5mb3JFYWNoKChzPT57cy5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsInNjaGVtYSIpfSkpLG99fSxjeT1SZi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkpTT05TY2hlbWEuZml4ZWRGaWVsZHMuYW55T2Y7Y29uc3QgbHk9Y2xhc3MgQW55T2ZWaXNpdG9yX0FueU9mVmlzaXRvciBleHRlbmRzIGN5e0FycmF5RWxlbWVudChzKXtjb25zdCBvPWN5LnByb3RvdHlwZS5BcnJheUVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiB0aGlzLmVsZW1lbnQuZmlsdGVyKEdtKS5mb3JFYWNoKChzPT57cy5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsInNjaGVtYSIpfSkpLG99fSx1eT1SZi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkpTT05TY2hlbWEuZml4ZWRGaWVsZHMub25lT2Y7Y29uc3QgcHk9Y2xhc3MgT25lT2ZWaXNpdG9yX09uZU9mVmlzaXRvciBleHRlbmRzIHV5e0FycmF5RWxlbWVudChzKXtjb25zdCBvPXV5LnByb3RvdHlwZS5BcnJheUVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiB0aGlzLmVsZW1lbnQuZmlsdGVyKEdtKS5mb3JFYWNoKChzPT57cy5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsInNjaGVtYSIpfSkpLG99fSxoeT1SZi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkpTT05TY2hlbWEuZml4ZWRGaWVsZHMuaXRlbXM7Y29uc3QgZHk9Y2xhc3MgSXRlbXNWaXNpdG9yX0l0ZW1zVmlzaXRvciBleHRlbmRzIGh5e09iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1oeS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIEdtKHRoaXMuZWxlbWVudCkmJnRoaXMuZWxlbWVudC5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsInNjaGVtYSIpLG99QXJyYXlFbGVtZW50KHMpe3JldHVybiB0aGlzLmVudGVyKHMpfX0sZnk9UmYudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5KU09OU2NoZW1hLmZpeGVkRmllbGRzLnByb3BlcnRpZXM7Y29uc3QgbXk9Y2xhc3MgUHJvcGVydGllc1Zpc2l0b3JfUHJvcGVydGllc1Zpc2l0b3IgZXh0ZW5kcyBmeXtPYmplY3RFbGVtZW50KHMpe2NvbnN0IG89ZnkucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiB0aGlzLmVsZW1lbnQuZmlsdGVyKEdtKS5mb3JFYWNoKChzPT57cy5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsInNjaGVtYSIpfSkpLG99fSxneT1SZi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkpTT05TY2hlbWEuZml4ZWRGaWVsZHMudHlwZTtjb25zdCB5eT1jbGFzcyBUeXBlVmlzaXRvcl9UeXBlVmlzaXRvciBleHRlbmRzIGd5e0FycmF5RWxlbWVudChzKXtyZXR1cm4gdGhpcy5lbnRlcihzKX19LHZ5PVJmLnZpc2l0b3JzLkpTT05TY2hlbWFPckpTT05SZWZlcmVuY2VWaXNpdG9yO2NvbnN0IGJ5PWNsYXNzIFNjaGVtYU9yUmVmZXJlbmNlVmlzaXRvcl9TY2hlbWFPclJlZmVyZW5jZVZpc2l0b3IgZXh0ZW5kcyB2eXtPYmplY3RFbGVtZW50KHMpe2NvbnN0IG89dnkucHJvdG90eXBlLmVudGVyLmNhbGwodGhpcyxzKTtyZXR1cm4gR20odGhpcy5lbGVtZW50KSYmdGhpcy5lbGVtZW50LnNldE1ldGFQcm9wZXJ0eSgicmVmZXJlbmNlZC1lbGVtZW50Iiwic2NoZW1hIiksb319O2NsYXNzIERpc2NyaW1pbmF0b3JWaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IEpwLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJEaXNjcmltaW5hdG9yIl0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSExfX1jb25zdCBfeT1EaXNjcmltaW5hdG9yVmlzaXRvcjtjbGFzcyBEaXNjcmltaW5hdG9yTWFwcGluZyBleHRlbmRzIFN1LlNoe3N0YXRpYyBwcmltYXJ5Q2xhc3M9ImRpc2NyaW1pbmF0b3ItbWFwcGluZyI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChEaXNjcmltaW5hdG9yTWFwcGluZy5wcmltYXJ5Q2xhc3MpfX1jb25zdCBTeT1EaXNjcmltaW5hdG9yTWFwcGluZztjbGFzcyBNYXBwaW5nVmlzaXRvciBleHRlbmRzKE1peGluKEVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBTeSx0aGlzLnNwZWNQYXRoPWZjKFsidmFsdWUiXSl9fWNvbnN0IEV5PU1hcHBpbmdWaXNpdG9yO2NsYXNzIFhtbFZpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgZW0sdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIlhNTCJdKSx0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz0hMH19Y29uc3Qgd3k9WG1sVmlzaXRvcjtjbGFzcyBQYXJhbWV0ZXJFeGFtcGxlcyBleHRlbmRzIFN1LlNoe3N0YXRpYyBwcmltYXJ5Q2xhc3M9InBhcmFtZXRlci1leGFtcGxlcyI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChQYXJhbWV0ZXJFeGFtcGxlcy5wcmltYXJ5Q2xhc3MpLHRoaXMuY2xhc3Nlcy5wdXNoKCJleGFtcGxlcyIpfX1jb25zdCB4eT1QYXJhbWV0ZXJFeGFtcGxlcztjb25zdCBreT1jbGFzcyBwYXJhbWV0ZXJfRXhhbXBsZXNWaXNpdG9yX0V4YW1wbGVzVmlzaXRvciBleHRlbmRzIGZne2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgeHl9fTtjbGFzcyBQYXJhbWV0ZXJDb250ZW50IGV4dGVuZHMgU3UuU2h7c3RhdGljIHByaW1hcnlDbGFzcz0icGFyYW1ldGVyLWNvbnRlbnQiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goUGFyYW1ldGVyQ29udGVudC5wcmltYXJ5Q2xhc3MpLHRoaXMuY2xhc3Nlcy5wdXNoKCJjb250ZW50Iil9fWNvbnN0IE95PVBhcmFtZXRlckNvbnRlbnQ7Y29uc3QgQ3k9Y2xhc3MgcGFyYW1ldGVyX0NvbnRlbnRWaXNpdG9yX0NvbnRlbnRWaXNpdG9yIGV4dGVuZHMgcnl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBPeX19O2NsYXNzIENvbXBvbmVudHNTY2hlbWFzIGV4dGVuZHMgU3UuU2h7c3RhdGljIHByaW1hcnlDbGFzcz0iY29tcG9uZW50cy1zY2hlbWFzIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKENvbXBvbmVudHNTY2hlbWFzLnByaW1hcnlDbGFzcyl9fWNvbnN0IEF5PUNvbXBvbmVudHNTY2hlbWFzO2NsYXNzIFNjaGVtYXNWaXNpdG9yIGV4dGVuZHMoTWl4aW4oRW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IEF5LHRoaXMuc3BlY1BhdGg9cz0+aXNSZWZlcmVuY2VMaWtlRWxlbWVudChzKT9bImRvY3VtZW50Iiwib2JqZWN0cyIsIlJlZmVyZW5jZSJdOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiU2NoZW1hIl19T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPUVtLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmZpbHRlcihHbSkuZm9yRWFjaCgocz0+e3Muc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJzY2hlbWEiKX0pKSxvfX1jb25zdCBqeT1TY2hlbWFzVmlzaXRvcjtjbGFzcyBDb21wb25lbnRzUmVzcG9uc2VzIGV4dGVuZHMgU3UuU2h7c3RhdGljIHByaW1hcnlDbGFzcz0iY29tcG9uZW50cy1yZXNwb25zZXMiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goQ29tcG9uZW50c1Jlc3BvbnNlcy5wcmltYXJ5Q2xhc3MpfX1jb25zdCBJeT1Db21wb25lbnRzUmVzcG9uc2VzO2NsYXNzIFJlc3BvbnNlc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihFbSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgSXksdGhpcy5zcGVjUGF0aD1zPT5pc1JlZmVyZW5jZUxpa2VFbGVtZW50KHMpP1siZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVmZXJlbmNlIl06WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZXNwb25zZSJdfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1FbS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIHRoaXMuZWxlbWVudC5maWx0ZXIoR20pLmZvckVhY2goKHM9PntzLnNldE1ldGFQcm9wZXJ0eSgicmVmZXJlbmNlZC1lbGVtZW50IiwicmVzcG9uc2UiKX0pKSx0aGlzLmVsZW1lbnQuZmlsdGVyKFhtKS5mb3JFYWNoKCgocyxvKT0+e3Muc2V0TWV0YVByb3BlcnR5KCJodHRwLXN0YXR1cy1jb2RlIixzZXJpYWxpemVyc192YWx1ZShvKSl9KSksb319Y29uc3QgUHk9UmVzcG9uc2VzVmlzaXRvcjtjbGFzcyBDb21wb25lbnRzUGFyYW1ldGVycyBleHRlbmRzIFN1LlNoe3N0YXRpYyBwcmltYXJ5Q2xhc3M9ImNvbXBvbmVudHMtcGFyYW1ldGVycyI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChDb21wb25lbnRzUGFyYW1ldGVycy5wcmltYXJ5Q2xhc3MpLHRoaXMuY2xhc3Nlcy5wdXNoKCJwYXJhbWV0ZXJzIil9fWNvbnN0IFR5PUNvbXBvbmVudHNQYXJhbWV0ZXJzO2NsYXNzIFBhcmFtZXRlcnNWaXNpdG9yX1BhcmFtZXRlcnNWaXNpdG9yIGV4dGVuZHMoTWl4aW4oRW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFR5LHRoaXMuc3BlY1BhdGg9cz0+aXNSZWZlcmVuY2VMaWtlRWxlbWVudChzKT9bImRvY3VtZW50Iiwib2JqZWN0cyIsIlJlZmVyZW5jZSJdOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiUGFyYW1ldGVyIl19T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPUVtLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmZpbHRlcihHbSkuZm9yRWFjaCgocz0+e3Muc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJwYXJhbWV0ZXIiKX0pKSxvfX1jb25zdCBOeT1QYXJhbWV0ZXJzVmlzaXRvcl9QYXJhbWV0ZXJzVmlzaXRvcjtjbGFzcyBDb21wb25lbnRzRXhhbXBsZXMgZXh0ZW5kcyBTdS5TaHtzdGF0aWMgcHJpbWFyeUNsYXNzPSJjb21wb25lbnRzLWV4YW1wbGVzIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKENvbXBvbmVudHNFeGFtcGxlcy5wcmltYXJ5Q2xhc3MpLHRoaXMuY2xhc3Nlcy5wdXNoKCJleGFtcGxlcyIpfX1jb25zdCBNeT1Db21wb25lbnRzRXhhbXBsZXM7Y2xhc3MgY29tcG9uZW50c19FeGFtcGxlc1Zpc2l0b3JfRXhhbXBsZXNWaXNpdG9yIGV4dGVuZHMoTWl4aW4oRW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IE15LHRoaXMuc3BlY1BhdGg9cz0+aXNSZWZlcmVuY2VMaWtlRWxlbWVudChzKT9bImRvY3VtZW50Iiwib2JqZWN0cyIsIlJlZmVyZW5jZSJdOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiRXhhbXBsZSJdfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1FbS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIHRoaXMuZWxlbWVudC5maWx0ZXIoR20pLmZvckVhY2goKHM9PntzLnNldE1ldGFQcm9wZXJ0eSgicmVmZXJlbmNlZC1lbGVtZW50IiwiZXhhbXBsZSIpfSkpLG99fWNvbnN0IFJ5PWNvbXBvbmVudHNfRXhhbXBsZXNWaXNpdG9yX0V4YW1wbGVzVmlzaXRvcjtjbGFzcyBDb21wb25lbnRzUmVxdWVzdEJvZGllcyBleHRlbmRzIFN1LlNoe3N0YXRpYyBwcmltYXJ5Q2xhc3M9ImNvbXBvbmVudHMtcmVxdWVzdC1ib2RpZXMiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goQ29tcG9uZW50c1JlcXVlc3RCb2RpZXMucHJpbWFyeUNsYXNzKX19Y29uc3QgRHk9Q29tcG9uZW50c1JlcXVlc3RCb2RpZXM7Y2xhc3MgUmVxdWVzdEJvZGllc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihFbSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgRHksdGhpcy5zcGVjUGF0aD1zPT5pc1JlZmVyZW5jZUxpa2VFbGVtZW50KHMpP1siZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVmZXJlbmNlIl06WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZXF1ZXN0Qm9keSJdfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1FbS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIHRoaXMuZWxlbWVudC5maWx0ZXIoR20pLmZvckVhY2goKHM9PntzLnNldE1ldGFQcm9wZXJ0eSgicmVmZXJlbmNlZC1lbGVtZW50IiwicmVxdWVzdEJvZHkiKX0pKSxvfX1jb25zdCBMeT1SZXF1ZXN0Qm9kaWVzVmlzaXRvcjtjbGFzcyBDb21wb25lbnRzSGVhZGVycyBleHRlbmRzIFN1LlNoe3N0YXRpYyBwcmltYXJ5Q2xhc3M9ImNvbXBvbmVudHMtaGVhZGVycyI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChDb21wb25lbnRzSGVhZGVycy5wcmltYXJ5Q2xhc3MpfX1jb25zdCBGeT1Db21wb25lbnRzSGVhZGVycztjbGFzcyBIZWFkZXJzVmlzaXRvciBleHRlbmRzKE1peGluKEVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBGeSx0aGlzLnNwZWNQYXRoPXM9PmlzUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiXTpbImRvY3VtZW50Iiwib2JqZWN0cyIsIkhlYWRlciJdfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1FbS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIHRoaXMuZWxlbWVudC5maWx0ZXIoR20pLmZvckVhY2goKHM9PntzLnNldE1ldGFQcm9wZXJ0eSgicmVmZXJlbmNlZC1lbGVtZW50IiwiaGVhZGVyIil9KSksdGhpcy5lbGVtZW50LmZpbHRlcihCbSkuZm9yRWFjaCgoKHMsbyk9PntzLnNldE1ldGFQcm9wZXJ0eSgiaGVhZGVyLW5hbWUiLHNlcmlhbGl6ZXJzX3ZhbHVlKG8pKX0pKSxvfX1jb25zdCBCeT1IZWFkZXJzVmlzaXRvcjtjbGFzcyBDb21wb25lbnRzU2VjdXJpdHlTY2hlbWVzIGV4dGVuZHMgU3UuU2h7c3RhdGljIHByaW1hcnlDbGFzcz0iY29tcG9uZW50cy1zZWN1cml0eS1zY2hlbWVzIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKENvbXBvbmVudHNTZWN1cml0eVNjaGVtZXMucHJpbWFyeUNsYXNzKX19Y29uc3QgJHk9Q29tcG9uZW50c1NlY3VyaXR5U2NoZW1lcztjbGFzcyBTZWN1cml0eVNjaGVtZXNWaXNpdG9yIGV4dGVuZHMoTWl4aW4oRW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3ICR5LHRoaXMuc3BlY1BhdGg9cz0+aXNSZWZlcmVuY2VMaWtlRWxlbWVudChzKT9bImRvY3VtZW50Iiwib2JqZWN0cyIsIlJlZmVyZW5jZSJdOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiU2VjdXJpdHlTY2hlbWUiXX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89RW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiB0aGlzLmVsZW1lbnQuZmlsdGVyKEdtKS5mb3JFYWNoKChzPT57cy5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsInNlY3VyaXR5U2NoZW1lIil9KSksb319Y29uc3QgcXk9U2VjdXJpdHlTY2hlbWVzVmlzaXRvcjtjbGFzcyBDb21wb25lbnRzTGlua3MgZXh0ZW5kcyBTdS5TaHtzdGF0aWMgcHJpbWFyeUNsYXNzPSJjb21wb25lbnRzLWxpbmtzIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKENvbXBvbmVudHNMaW5rcy5wcmltYXJ5Q2xhc3MpfX1jb25zdCBWeT1Db21wb25lbnRzTGlua3M7Y2xhc3MgTGlua3NWaXNpdG9yX0xpbmtzVmlzaXRvciBleHRlbmRzKE1peGluKEVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBWeSx0aGlzLnNwZWNQYXRoPXM9PmlzUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiXTpbImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmsiXX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89RW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiB0aGlzLmVsZW1lbnQuZmlsdGVyKEdtKS5mb3JFYWNoKChzPT57cy5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsImxpbmsiKX0pKSxvfX1jb25zdCBVeT1MaW5rc1Zpc2l0b3JfTGlua3NWaXNpdG9yO2NsYXNzIENvbXBvbmVudHNDYWxsYmFja3MgZXh0ZW5kcyBTdS5TaHtzdGF0aWMgcHJpbWFyeUNsYXNzPSJjb21wb25lbnRzLWNhbGxiYWNrcyI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChDb21wb25lbnRzQ2FsbGJhY2tzLnByaW1hcnlDbGFzcyl9fWNvbnN0IHp5PUNvbXBvbmVudHNDYWxsYmFja3M7Y2xhc3MgQ2FsbGJhY2tzVmlzaXRvciBleHRlbmRzKE1peGluKEVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyB6eSx0aGlzLnNwZWNQYXRoPXM9PmlzUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiXTpbImRvY3VtZW50Iiwib2JqZWN0cyIsIkNhbGxiYWNrIl19T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPUVtLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmZpbHRlcihHbSkuZm9yRWFjaCgocz0+e3Muc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJjYWxsYmFjayIpfSkpLG99fWNvbnN0IFd5PUNhbGxiYWNrc1Zpc2l0b3I7Y2xhc3MgRXhhbXBsZVZpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgS3AsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIkV4YW1wbGUiXSksdGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM9ITB9T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPXVtLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gSXUodGhpcy5lbGVtZW50LmV4dGVybmFsVmFsdWUpJiZ0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJyZWZlcmVuY2UtZWxlbWVudCIpLG99fWNvbnN0IEp5PUV4YW1wbGVWaXNpdG9yO2NvbnN0IEh5PWNsYXNzIEV4dGVybmFsVmFsdWVWaXNpdG9yIGV4dGVuZHMgcm17U3RyaW5nRWxlbWVudChzKXtjb25zdCBvPXN1cGVyLmVudGVyKHMpO3JldHVybiB0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJyZWZlcmVuY2UtdmFsdWUiKSxvfX07Y2xhc3MgRXh0ZXJuYWxEb2N1bWVudGF0aW9uVmlzaXRvciBleHRlbmRzKE1peGluKHVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBHcCx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiRXh0ZXJuYWxEb2N1bWVudGF0aW9uIl0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwfX1jb25zdCBLeT1FeHRlcm5hbERvY3VtZW50YXRpb25WaXNpdG9yO2NsYXNzIGVuY29kaW5nX0VuY29kaW5nVmlzaXRvciBleHRlbmRzKE1peGluKHVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBIcCx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiRW5jb2RpbmciXSksdGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM9ITB9T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPXVtLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gTXUodGhpcy5lbGVtZW50LmhlYWRlcnMpJiZ0aGlzLmVsZW1lbnQuaGVhZGVycy5maWx0ZXIoQm0pLmZvckVhY2goKChzLG8pPT57cy5zZXRNZXRhUHJvcGVydHkoImhlYWRlci1uYW1lIixzZXJpYWxpemVyc192YWx1ZShvKSl9KSksb319Y29uc3QgR3k9ZW5jb2RpbmdfRW5jb2RpbmdWaXNpdG9yO2NsYXNzIEVuY29kaW5nSGVhZGVycyBleHRlbmRzIFN1LlNoe3N0YXRpYyBwcmltYXJ5Q2xhc3M9ImVuY29kaW5nLWhlYWRlcnMiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goRW5jb2RpbmdIZWFkZXJzLnByaW1hcnlDbGFzcyl9fWNvbnN0IFl5PUVuY29kaW5nSGVhZGVycztjbGFzcyBIZWFkZXJzVmlzaXRvcl9IZWFkZXJzVmlzaXRvciBleHRlbmRzKE1peGluKEVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBZeSx0aGlzLnNwZWNQYXRoPXM9PmlzUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiXTpbImRvY3VtZW50Iiwib2JqZWN0cyIsIkhlYWRlciJdfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1FbS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIHRoaXMuZWxlbWVudC5maWx0ZXIoR20pLmZvckVhY2goKHM9PntzLnNldE1ldGFQcm9wZXJ0eSgicmVmZXJlbmNlZC1lbGVtZW50IiwiaGVhZGVyIil9KSksdGhpcy5lbGVtZW50LmZvckVhY2goKChzLG8pPT57aWYoIUJtKHMpKXJldHVybjtjb25zdCBpPXNlcmlhbGl6ZXJzX3ZhbHVlKG8pO3Muc2V0TWV0YVByb3BlcnR5KCJoZWFkZXJOYW1lIixpKX0pKSxvfX1jb25zdCBYeT1IZWFkZXJzVmlzaXRvcl9IZWFkZXJzVmlzaXRvcjtjbGFzcyBQYXRoc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihTbSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgT2gsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIlBhdGhJdGVtIl0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwLHRoaXMuZmllbGRQYXR0ZXJuUHJlZGljYXRlPWVzX1R9T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPVNtLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmZpbHRlcihIbSkuZm9yRWFjaCgoKHMsbyk9PntvLmNsYXNzZXMucHVzaCgib3BlbmFwaS1wYXRoLXRlbXBsYXRlIiksby5jbGFzc2VzLnB1c2goInBhdGgtdGVtcGxhdGUiKSxzLnNldE1ldGFQcm9wZXJ0eSgicGF0aCIsY2xvbmVEZWVwKG8pKX0pKSxvfX1jb25zdCBReT1QYXRoc1Zpc2l0b3I7Y2xhc3MgUmVxdWVzdEJvZHlWaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IEloLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZXF1ZXN0Qm9keSJdKX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89dW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiBNdSh0aGlzLmVsZW1lbnQuY29udGVudFByb3ApJiZ0aGlzLmVsZW1lbnQuY29udGVudFByb3AuZmlsdGVyKG9nKS5mb3JFYWNoKCgocyxvKT0+e3Muc2V0TWV0YVByb3BlcnR5KCJtZWRpYS10eXBlIixzZXJpYWxpemVyc192YWx1ZShvKSl9KSksb319Y29uc3QgWnk9UmVxdWVzdEJvZHlWaXNpdG9yO2NsYXNzIFJlcXVlc3RCb2R5Q29udGVudCBleHRlbmRzIFN1LlNoe3N0YXRpYyBwcmltYXJ5Q2xhc3M9InJlcXVlc3QtYm9keS1jb250ZW50Ijtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKFJlcXVlc3RCb2R5Q29udGVudC5wcmltYXJ5Q2xhc3MpLHRoaXMuY2xhc3Nlcy5wdXNoKCJjb250ZW50Iil9fWNvbnN0IGV2PVJlcXVlc3RCb2R5Q29udGVudDtjb25zdCB0dj1jbGFzcyByZXF1ZXN0X2JvZHlfQ29udGVudFZpc2l0b3JfQ29udGVudFZpc2l0b3IgZXh0ZW5kcyByeXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IGV2fX07Y2xhc3MgQ2FsbGJhY2tWaXNpdG9yIGV4dGVuZHMoTWl4aW4oU20scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFVwLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJQYXRoSXRlbSJdKSx0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz0hMCx0aGlzLmZpZWxkUGF0dGVyblByZWRpY2F0ZT1zPT4veyg/PGV4cHJlc3Npb24+W159XXsxLDIwODN9KX0vLnRlc3QoU3RyaW5nKHMpKX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89RW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiB0aGlzLmVsZW1lbnQuZmlsdGVyKEhtKS5mb3JFYWNoKCgocyxvKT0+e3Muc2V0TWV0YVByb3BlcnR5KCJydW50aW1lLWV4cHJlc3Npb24iLHNlcmlhbGl6ZXJzX3ZhbHVlKG8pKX0pKSxvfX1jb25zdCBydj1DYWxsYmFja1Zpc2l0b3I7Y2xhc3MgUmVzcG9uc2VWaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFBoLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZXNwb25zZSJdKX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89dW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiBNdSh0aGlzLmVsZW1lbnQuY29udGVudFByb3ApJiZ0aGlzLmVsZW1lbnQuY29udGVudFByb3AuZmlsdGVyKG9nKS5mb3JFYWNoKCgocyxvKT0+e3Muc2V0TWV0YVByb3BlcnR5KCJtZWRpYS10eXBlIixzZXJpYWxpemVyc192YWx1ZShvKSl9KSksTXUodGhpcy5lbGVtZW50LmhlYWRlcnMpJiZ0aGlzLmVsZW1lbnQuaGVhZGVycy5maWx0ZXIoQm0pLmZvckVhY2goKChzLG8pPT57cy5zZXRNZXRhUHJvcGVydHkoImhlYWRlci1uYW1lIixzZXJpYWxpemVyc192YWx1ZShvKSl9KSksb319Y29uc3QgbnY9UmVzcG9uc2VWaXNpdG9yO2NsYXNzIFJlc3BvbnNlSGVhZGVycyBleHRlbmRzIFN1LlNoe3N0YXRpYyBwcmltYXJ5Q2xhc3M9InJlc3BvbnNlLWhlYWRlcnMiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goUmVzcG9uc2VIZWFkZXJzLnByaW1hcnlDbGFzcyl9fWNvbnN0IHN2PVJlc3BvbnNlSGVhZGVycztjbGFzcyByZXNwb25zZV9IZWFkZXJzVmlzaXRvcl9IZWFkZXJzVmlzaXRvciBleHRlbmRzKE1peGluKEVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBzdix0aGlzLnNwZWNQYXRoPXM9PmlzUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiXTpbImRvY3VtZW50Iiwib2JqZWN0cyIsIkhlYWRlciJdfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1FbS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIHRoaXMuZWxlbWVudC5maWx0ZXIoR20pLmZvckVhY2goKHM9PntzLnNldE1ldGFQcm9wZXJ0eSgicmVmZXJlbmNlZC1lbGVtZW50IiwiaGVhZGVyIil9KSksdGhpcy5lbGVtZW50LmZvckVhY2goKChzLG8pPT57aWYoIUJtKHMpKXJldHVybjtjb25zdCBpPXNlcmlhbGl6ZXJzX3ZhbHVlKG8pO3Muc2V0TWV0YVByb3BlcnR5KCJoZWFkZXItbmFtZSIsaSl9KSksb319Y29uc3Qgb3Y9cmVzcG9uc2VfSGVhZGVyc1Zpc2l0b3JfSGVhZGVyc1Zpc2l0b3I7Y2xhc3MgUmVzcG9uc2VDb250ZW50IGV4dGVuZHMgU3UuU2h7c3RhdGljIHByaW1hcnlDbGFzcz0icmVzcG9uc2UtY29udGVudCI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChSZXNwb25zZUNvbnRlbnQucHJpbWFyeUNsYXNzKSx0aGlzLmNsYXNzZXMucHVzaCgiY29udGVudCIpfX1jb25zdCBpdj1SZXNwb25zZUNvbnRlbnQ7Y29uc3QgYXY9Y2xhc3MgcmVzcG9uc2VfQ29udGVudFZpc2l0b3JfQ29udGVudFZpc2l0b3IgZXh0ZW5kcyByeXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IGl2fX07Y2xhc3MgUmVzcG9uc2VMaW5rcyBleHRlbmRzIFN1LlNoe3N0YXRpYyBwcmltYXJ5Q2xhc3M9InJlc3BvbnNlLWxpbmtzIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKFJlc3BvbnNlTGlua3MucHJpbWFyeUNsYXNzKX19Y29uc3QgY3Y9UmVzcG9uc2VMaW5rcztjbGFzcyByZXNwb25zZV9MaW5rc1Zpc2l0b3JfTGlua3NWaXNpdG9yIGV4dGVuZHMoTWl4aW4oRW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IGN2LHRoaXMuc3BlY1BhdGg9cz0+aXNSZWZlcmVuY2VMaWtlRWxlbWVudChzKT9bImRvY3VtZW50Iiwib2JqZWN0cyIsIlJlZmVyZW5jZSJdOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGluayJdfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1FbS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIHRoaXMuZWxlbWVudC5maWx0ZXIoR20pLmZvckVhY2goKHM9PntzLnNldE1ldGFQcm9wZXJ0eSgicmVmZXJlbmNlZC1lbGVtZW50IiwibGluayIpfSkpLG99fWNvbnN0IGx2PXJlc3BvbnNlX0xpbmtzVmlzaXRvcl9MaW5rc1Zpc2l0b3I7ZnVuY3Rpb24gX2lzTnVtYmVyKHMpe3JldHVybiJbb2JqZWN0IE51bWJlcl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHMpfXZhciB1dj1fY3VycnkyKChmdW5jdGlvbiByYW5nZShzLG8pe2lmKCFfaXNOdW1iZXIocyl8fCFfaXNOdW1iZXIobykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQm90aCBhcmd1bWVudHMgdG8gcmFuZ2UgbXVzdCBiZSBudW1iZXJzIik7Zm9yKHZhciBpPUFycmF5KHM8bz9vLXM6MCksYT1zPDA/bytNYXRoLmFicyhzKTpvLXMsdT0wO3U8YTspaVt1XT11K3MsdSs9MTtyZXR1cm4gaX0pKTtjb25zdCBwdj11djtmdW5jdGlvbiBoYXNPckFkZChzLG8saSl7dmFyIGEsdT10eXBlb2Ygcztzd2l0Y2godSl7Y2FzZSJzdHJpbmciOmNhc2UibnVtYmVyIjpyZXR1cm4gMD09PXMmJjEvcz09LTEvMD8hIWkuX2l0ZW1zWyItMCJdfHwobyYmKGkuX2l0ZW1zWyItMCJdPSEwKSwhMSk6bnVsbCE9PWkuX25hdGl2ZVNldD9vPyhhPWkuX25hdGl2ZVNldC5zaXplLGkuX25hdGl2ZVNldC5hZGQocyksaS5fbmF0aXZlU2V0LnNpemU9PT1hKTppLl9uYXRpdmVTZXQuaGFzKHMpOnUgaW4gaS5faXRlbXM/cyBpbiBpLl9pdGVtc1t1XXx8KG8mJihpLl9pdGVtc1t1XVtzXT0hMCksITEpOihvJiYoaS5faXRlbXNbdV09e30saS5faXRlbXNbdV1bc109ITApLCExKTtjYXNlImJvb2xlYW4iOmlmKHUgaW4gaS5faXRlbXMpe3ZhciBfPXM/MTowO3JldHVybiEhaS5faXRlbXNbdV1bX118fChvJiYoaS5faXRlbXNbdV1bX109ITApLCExKX1yZXR1cm4gbyYmKGkuX2l0ZW1zW3VdPXM/WyExLCEwXTpbITAsITFdKSwhMTtjYXNlImZ1bmN0aW9uIjpyZXR1cm4gbnVsbCE9PWkuX25hdGl2ZVNldD9vPyhhPWkuX25hdGl2ZVNldC5zaXplLGkuX25hdGl2ZVNldC5hZGQocyksaS5fbmF0aXZlU2V0LnNpemU9PT1hKTppLl9uYXRpdmVTZXQuaGFzKHMpOnUgaW4gaS5faXRlbXM/ISFfaW5jbHVkZXMocyxpLl9pdGVtc1t1XSl8fChvJiZpLl9pdGVtc1t1XS5wdXNoKHMpLCExKToobyYmKGkuX2l0ZW1zW3VdPVtzXSksITEpO2Nhc2UidW5kZWZpbmVkIjpyZXR1cm4hIWkuX2l0ZW1zW3VdfHwobyYmKGkuX2l0ZW1zW3VdPSEwKSwhMSk7Y2FzZSJvYmplY3QiOmlmKG51bGw9PT1zKXJldHVybiEhaS5faXRlbXMubnVsbHx8KG8mJihpLl9pdGVtcy5udWxsPSEwKSwhMSk7ZGVmYXVsdDpyZXR1cm4odT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocykpaW4gaS5faXRlbXM/ISFfaW5jbHVkZXMocyxpLl9pdGVtc1t1XSl8fChvJiZpLl9pdGVtc1t1XS5wdXNoKHMpLCExKToobyYmKGkuX2l0ZW1zW3VdPVtzXSksITEpfX1jb25zdCBodj1mdW5jdGlvbigpe2Z1bmN0aW9uIF9TZXQoKXt0aGlzLl9uYXRpdmVTZXQ9ImZ1bmN0aW9uIj09dHlwZW9mIFNldD9uZXcgU2V0Om51bGwsdGhpcy5faXRlbXM9e319cmV0dXJuIF9TZXQucHJvdG90eXBlLmFkZD1mdW5jdGlvbihzKXtyZXR1cm4haGFzT3JBZGQocywhMCx0aGlzKX0sX1NldC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHMpe3JldHVybiBoYXNPckFkZChzLCExLHRoaXMpfSxfU2V0fSgpO3ZhciBkdj1fY3VycnkyKChmdW5jdGlvbiBkaWZmZXJlbmNlKHMsbyl7Zm9yKHZhciBpPVtdLGE9MCx1PXMubGVuZ3RoLF89by5sZW5ndGgsdz1uZXcgaHYseD0wO3g8Xzt4Kz0xKXcuYWRkKG9beF0pO2Zvcig7YTx1Oyl3LmFkZChzW2FdKSYmKGlbaS5sZW5ndGhdPXNbYV0pLGErPTE7cmV0dXJuIGl9KSk7Y29uc3QgZnY9ZHY7Y2xhc3MgTWl4ZWRGaWVsZHNWaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0sU20pKXtzcGVjUGF0aEZpeGVkRmllbGRzO3NwZWNQYXRoUGF0dGVybmVkRmllbGRzO2NvbnN0cnVjdG9yKHtzcGVjUGF0aEZpeGVkRmllbGRzOnMsc3BlY1BhdGhQYXR0ZXJuZWRGaWVsZHM6bywuLi5pfSl7c3VwZXIoey4uLml9KSx0aGlzLnNwZWNQYXRoRml4ZWRGaWVsZHM9cyx0aGlzLnNwZWNQYXRoUGF0dGVybmVkRmllbGRzPW99T2JqZWN0RWxlbWVudChzKXtjb25zdHtzcGVjUGF0aDpvLGlnbm9yZWRGaWVsZHM6aX09dGhpczt0cnl7dGhpcy5zcGVjUGF0aD10aGlzLnNwZWNQYXRoRml4ZWRGaWVsZHM7Y29uc3Qgbz10aGlzLnJldHJpZXZlRml4ZWRGaWVsZHModGhpcy5zcGVjUGF0aChzKSk7dGhpcy5pZ25vcmVkRmllbGRzPVsuLi5pLC4uLmZ2KHMua2V5cygpLG8pXSx1bS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyksdGhpcy5zcGVjUGF0aD10aGlzLnNwZWNQYXRoUGF0dGVybmVkRmllbGRzLHRoaXMuaWdub3JlZEZpZWxkcz1vLFNtLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKX1jYXRjaChzKXt0aHJvdyB0aGlzLnNwZWNQYXRoPW8sc31yZXR1cm4gVXV9fWNvbnN0IG12PU1peGVkRmllbGRzVmlzaXRvcjtjbGFzcyByZXNwb25zZXNfUmVzcG9uc2VzVmlzaXRvciBleHRlbmRzKE1peGluKG12LHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBSaCx0aGlzLnNwZWNQYXRoRml4ZWRGaWVsZHM9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZXNwb25zZXMiXSksdGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM9ITAsdGhpcy5zcGVjUGF0aFBhdHRlcm5lZEZpZWxkcz1zPT5pc1JlZmVyZW5jZUxpa2VFbGVtZW50KHMpP1siZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVmZXJlbmNlIl06WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZXNwb25zZSJdLHRoaXMuZmllbGRQYXR0ZXJuUHJlZGljYXRlPXM9Pm5ldyBSZWdFeHAoYF4oMVhYfDJYWHwzWFh8NFhYfDVYWHwke3B2KDEwMCw2MDApLmpvaW4oInwiKX0pJGApLnRlc3QoU3RyaW5nKHMpKX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89bXYucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiB0aGlzLmVsZW1lbnQuZmlsdGVyKEdtKS5mb3JFYWNoKChzPT57cy5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsInJlc3BvbnNlIil9KSksdGhpcy5lbGVtZW50LmZpbHRlcihYbSkuZm9yRWFjaCgoKHMsbyk9Pntjb25zdCBpPWNsb25lRGVlcChvKTt0aGlzLmZpZWxkUGF0dGVyblByZWRpY2F0ZShzZXJpYWxpemVyc192YWx1ZShpKSkmJnMuc2V0TWV0YVByb3BlcnR5KCJodHRwLXN0YXR1cy1jb2RlIixpKX0pKSxvfX1jb25zdCBndj1yZXNwb25zZXNfUmVzcG9uc2VzVmlzaXRvcjtjbGFzcyBEZWZhdWx0VmlzaXRvciBleHRlbmRzKE1peGluKE5tLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5hbHRlcm5hdG9yPVt7cHJlZGljYXRlOmlzUmVmZXJlbmNlTGlrZUVsZW1lbnQsc3BlY1BhdGg6WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiXX0se3ByZWRpY2F0ZTplc19ULHNwZWNQYXRoOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVzcG9uc2UiXX1dfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1ObS5wcm90b3R5cGUuZW50ZXIuY2FsbCh0aGlzLHMpO3JldHVybiBHbSh0aGlzLmVsZW1lbnQpP3RoaXMuZWxlbWVudC5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsInJlc3BvbnNlIik6WG0odGhpcy5lbGVtZW50KSYmdGhpcy5lbGVtZW50LnNldE1ldGFQcm9wZXJ0eSgiaHR0cC1zdGF0dXMtY29kZSIsImRlZmF1bHQiKSxvfX1jb25zdCB5dj1EZWZhdWx0VmlzaXRvcjtjbGFzcyBPcGVyYXRpb25WaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IHZoLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJPcGVyYXRpb24iXSl9fWNvbnN0IHZ2PU9wZXJhdGlvblZpc2l0b3I7Y2xhc3MgT3BlcmF0aW9uVGFncyBleHRlbmRzIFN1LndFe3N0YXRpYyBwcmltYXJ5Q2xhc3M9Im9wZXJhdGlvbi10YWdzIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKE9wZXJhdGlvblRhZ3MucHJpbWFyeUNsYXNzKX19Y29uc3QgYnY9T3BlcmF0aW9uVGFncztjb25zdCBfdj1jbGFzcyBUYWdzVmlzaXRvciBleHRlbmRzIHJte2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgYnZ9QXJyYXlFbGVtZW50KHMpe3JldHVybiB0aGlzLmVsZW1lbnQ9dGhpcy5lbGVtZW50LmNvbmNhdChjbG9uZURlZXAocykpLFV1fX07Y2xhc3MgT3BlcmF0aW9uUGFyYW1ldGVycyBleHRlbmRzIFN1LndFe3N0YXRpYyBwcmltYXJ5Q2xhc3M9Im9wZXJhdGlvbi1wYXJhbWV0ZXJzIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKE9wZXJhdGlvblBhcmFtZXRlcnMucHJpbWFyeUNsYXNzKSx0aGlzLmNsYXNzZXMucHVzaCgicGFyYW1ldGVycyIpfX1jb25zdCBTdj1PcGVyYXRpb25QYXJhbWV0ZXJzO2NsYXNzIG9wZW5fYXBpXzNfMF9QYXJhbWV0ZXJzVmlzaXRvcl9QYXJhbWV0ZXJzVmlzaXRvciBleHRlbmRzKE1peGluKG5tLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBTdS53RSx0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJwYXJhbWV0ZXJzIil9QXJyYXlFbGVtZW50KHMpe3JldHVybiBzLmZvckVhY2goKHM9Pntjb25zdCBvPWlzUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiXTpbImRvY3VtZW50Iiwib2JqZWN0cyIsIlBhcmFtZXRlciJdLGk9dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQobyxzKTtHbShpKSYmaS5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsInBhcmFtZXRlciIpLHRoaXMuZWxlbWVudC5wdXNoKGkpfSkpLHRoaXMuY29weU1ldGFBbmRBdHRyaWJ1dGVzKHMsdGhpcy5lbGVtZW50KSxVdX19Y29uc3QgRXY9b3Blbl9hcGlfM18wX1BhcmFtZXRlcnNWaXNpdG9yX1BhcmFtZXRlcnNWaXNpdG9yO2NvbnN0IHd2PWNsYXNzIG9wZXJhdGlvbl9QYXJhbWV0ZXJzVmlzaXRvcl9QYXJhbWV0ZXJzVmlzaXRvciBleHRlbmRzIEV2e2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgU3Z9fTtjb25zdCB4dj1jbGFzcyBSZXF1ZXN0Qm9keVZpc2l0b3JfUmVxdWVzdEJvZHlWaXNpdG9yIGV4dGVuZHMgTm17Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5hbHRlcm5hdG9yPVt7cHJlZGljYXRlOmlzUmVmZXJlbmNlTGlrZUVsZW1lbnQsc3BlY1BhdGg6WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiXX0se3ByZWRpY2F0ZTplc19ULHNwZWNQYXRoOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVxdWVzdEJvZHkiXX1dfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1ObS5wcm90b3R5cGUuZW50ZXIuY2FsbCh0aGlzLHMpO3JldHVybiBHbSh0aGlzLmVsZW1lbnQpJiZ0aGlzLmVsZW1lbnQuc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJyZXF1ZXN0Qm9keSIpLG99fTtjbGFzcyBPcGVyYXRpb25DYWxsYmFja3MgZXh0ZW5kcyBTdS5TaHtzdGF0aWMgcHJpbWFyeUNsYXNzPSJvcGVyYXRpb24tY2FsbGJhY2tzIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKE9wZXJhdGlvbkNhbGxiYWNrcy5wcmltYXJ5Q2xhc3MpfX1jb25zdCBrdj1PcGVyYXRpb25DYWxsYmFja3M7Y2xhc3MgQ2FsbGJhY2tzVmlzaXRvcl9DYWxsYmFja3NWaXNpdG9yIGV4dGVuZHMoTWl4aW4oRW0scm0pKXtzcGVjUGF0aDtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IGt2LHRoaXMuc3BlY1BhdGg9cz0+aXNSZWZlcmVuY2VMaWtlRWxlbWVudChzKT9bImRvY3VtZW50Iiwib2JqZWN0cyIsIlJlZmVyZW5jZSJdOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiQ2FsbGJhY2siXX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89RW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiB0aGlzLmVsZW1lbnQuZmlsdGVyKEdtKS5mb3JFYWNoKChzPT57cy5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsImNhbGxiYWNrIil9KSksb319Y29uc3QgT3Y9Q2FsbGJhY2tzVmlzaXRvcl9DYWxsYmFja3NWaXNpdG9yO2NsYXNzIE9wZXJhdGlvblNlY3VyaXR5IGV4dGVuZHMgU3Uud0V7c3RhdGljIHByaW1hcnlDbGFzcz0ib3BlcmF0aW9uLXNlY3VyaXR5Ijtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKE9wZXJhdGlvblNlY3VyaXR5LnByaW1hcnlDbGFzcyksdGhpcy5jbGFzc2VzLnB1c2goInNlY3VyaXR5Iil9fWNvbnN0IEN2PU9wZXJhdGlvblNlY3VyaXR5O2NsYXNzIFNlY3VyaXR5VmlzaXRvcl9TZWN1cml0eVZpc2l0b3IgZXh0ZW5kcyhNaXhpbihubSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgQ3Z9QXJyYXlFbGVtZW50KHMpe3JldHVybiBzLmZvckVhY2goKHM9Pntjb25zdCBvPU11KHMpP1siZG9jdW1lbnQiLCJvYmplY3RzIiwiU2VjdXJpdHlSZXF1aXJlbWVudCJdOlsidmFsdWUiXSxpPXRoaXMudG9SZWZyYWN0ZWRFbGVtZW50KG8scyk7dGhpcy5lbGVtZW50LnB1c2goaSl9KSksdGhpcy5jb3B5TWV0YUFuZEF0dHJpYnV0ZXMocyx0aGlzLmVsZW1lbnQpLFV1fX1jb25zdCBBdj1TZWN1cml0eVZpc2l0b3JfU2VjdXJpdHlWaXNpdG9yO2NsYXNzIE9wZXJhdGlvblNlcnZlcnMgZXh0ZW5kcyBTdS53RXtzdGF0aWMgcHJpbWFyeUNsYXNzPSJvcGVyYXRpb24tc2VydmVycyI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChPcGVyYXRpb25TZXJ2ZXJzLnByaW1hcnlDbGFzcyksdGhpcy5jbGFzc2VzLnB1c2goInNlcnZlcnMiKX19Y29uc3QganY9T3BlcmF0aW9uU2VydmVycztjb25zdCBJdj1jbGFzcyBTZXJ2ZXJzVmlzaXRvcl9TZXJ2ZXJzVmlzaXRvciBleHRlbmRzIEFte2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcganZ9fTtjbGFzcyBQYXRoSXRlbVZpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgd2gsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIlBhdGhJdGVtIl0pfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz11bS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIHRoaXMuZWxlbWVudC5maWx0ZXIoV20pLmZvckVhY2goKChzLG8pPT57Y29uc3QgaT1jbG9uZURlZXAobyk7aS5jb250ZW50PXNlcmlhbGl6ZXJzX3ZhbHVlKGkpLnRvVXBwZXJDYXNlKCkscy5zZXRNZXRhUHJvcGVydHkoImh0dHAtbWV0aG9kIixpKX0pKSxJdSh0aGlzLmVsZW1lbnQuJHJlZikmJnRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goInJlZmVyZW5jZS1lbGVtZW50Iiksb319Y29uc3QgUHY9UGF0aEl0ZW1WaXNpdG9yO2NvbnN0IFR2PWNsYXNzIHBhdGhfaXRlbV8kUmVmVmlzaXRvcl8kUmVmVmlzaXRvciBleHRlbmRzIHJte1N0cmluZ0VsZW1lbnQocyl7Y29uc3Qgbz1zdXBlci5lbnRlcihzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgicmVmZXJlbmNlLXZhbHVlIiksb319O2NsYXNzIFBhdGhJdGVtU2VydmVycyBleHRlbmRzIFN1LndFe3N0YXRpYyBwcmltYXJ5Q2xhc3M9InBhdGgtaXRlbS1zZXJ2ZXJzIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKFBhdGhJdGVtU2VydmVycy5wcmltYXJ5Q2xhc3MpLHRoaXMuY2xhc3Nlcy5wdXNoKCJzZXJ2ZXJzIil9fWNvbnN0IE52PVBhdGhJdGVtU2VydmVycztjb25zdCBNdj1jbGFzcyBwYXRoX2l0ZW1fU2VydmVyc1Zpc2l0b3JfU2VydmVyc1Zpc2l0b3IgZXh0ZW5kcyBBbXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IE52fX07Y2xhc3MgUGF0aEl0ZW1QYXJhbWV0ZXJzIGV4dGVuZHMgU3Uud0V7c3RhdGljIHByaW1hcnlDbGFzcz0icGF0aC1pdGVtLXBhcmFtZXRlcnMiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goUGF0aEl0ZW1QYXJhbWV0ZXJzLnByaW1hcnlDbGFzcyksdGhpcy5jbGFzc2VzLnB1c2goInBhcmFtZXRlcnMiKX19Y29uc3QgUnY9UGF0aEl0ZW1QYXJhbWV0ZXJzO2NvbnN0IER2PWNsYXNzIHBhdGhfaXRlbV9QYXJhbWV0ZXJzVmlzaXRvcl9QYXJhbWV0ZXJzVmlzaXRvciBleHRlbmRzIEV2e2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgUnZ9fTtjbGFzcyBTZWN1cml0eVNjaGVtZVZpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgSGYsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIlNlY3VyaXR5U2NoZW1lIl0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwfX1jb25zdCBMdj1TZWN1cml0eVNjaGVtZVZpc2l0b3I7Y2xhc3MgT0F1dGhGbG93c1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgdWgsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIk9BdXRoRmxvd3MiXSksdGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM9ITB9fWNvbnN0IEZ2PU9BdXRoRmxvd3NWaXNpdG9yO2NsYXNzIE9BdXRoRmxvd1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgcmgsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIk9BdXRoRmxvdyJdKSx0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz0hMH19Y29uc3QgQnY9T0F1dGhGbG93VmlzaXRvcjtjbGFzcyBPQXV0aEZsb3dTY29wZXMgZXh0ZW5kcyBTdS5TaHtzdGF0aWMgcHJpbWFyeUNsYXNzPSJvYXV0aC1mbG93LXNjb3BlcyI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChPQXV0aEZsb3dTY29wZXMucHJpbWFyeUNsYXNzKX19Y29uc3QgJHY9T0F1dGhGbG93U2NvcGVzO2NsYXNzIFNjb3Blc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihFbSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgJHYsdGhpcy5zcGVjUGF0aD1mYyhbInZhbHVlIl0pfX1jb25zdCBxdj1TY29wZXNWaXNpdG9yO2NsYXNzIFRhZ3MgZXh0ZW5kcyBTdS53RXtzdGF0aWMgcHJpbWFyeUNsYXNzPSJ0YWdzIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKFRhZ3MucHJpbWFyeUNsYXNzKX19Y29uc3QgVnY9VGFncztjbGFzcyBUYWdzVmlzaXRvcl9UYWdzVmlzaXRvciBleHRlbmRzKE1peGluKG5tLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBWdn1BcnJheUVsZW1lbnQocyl7cmV0dXJuIHMuZm9yRWFjaCgocz0+e2NvbnN0IG89bG0ocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJUYWciXTpbInZhbHVlIl0saT10aGlzLnRvUmVmcmFjdGVkRWxlbWVudChvLHMpO3RoaXMuZWxlbWVudC5wdXNoKGkpfSkpLHRoaXMuY29weU1ldGFBbmRBdHRyaWJ1dGVzKHMsdGhpcy5lbGVtZW50KSxVdX19Y29uc3QgVXY9VGFnc1Zpc2l0b3JfVGFnc1Zpc2l0b3Ise2ZpeGVkRmllbGRzOnp2fT1SZi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkpTT05TY2hlbWEsV3Y9e3Zpc2l0b3JzOnt2YWx1ZTpybSxkb2N1bWVudDp7b2JqZWN0czp7T3BlbkFwaTp7JHZpc2l0b3I6cG0sZml4ZWRGaWVsZHM6e29wZW5hcGk6aG0saW5mbzp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL0luZm8ifSxzZXJ2ZXJzOkFtLHBhdGhzOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvUGF0aHMifSxjb21wb25lbnRzOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvQ29tcG9uZW50cyJ9LHNlY3VyaXR5OnFnLHRhZ3M6VXYsZXh0ZXJuYWxEb2NzOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvRXh0ZXJuYWxEb2N1bWVudGF0aW9uIn19fSxJbmZvOnskdmlzaXRvcjpmbSxmaXhlZEZpZWxkczp7dGl0bGU6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxkZXNjcmlwdGlvbjp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHRlcm1zT2ZTZXJ2aWNlOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sY29udGFjdDp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL0NvbnRhY3QifSxsaWNlbnNlOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvTGljZW5zZSJ9LHZlcnNpb246bW19fSxDb250YWN0OnskdmlzaXRvcjpnbSxmaXhlZEZpZWxkczp7bmFtZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHVybDp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGVtYWlsOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn19fSxMaWNlbnNlOnskdmlzaXRvcjp5bSxmaXhlZEZpZWxkczp7bmFtZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHVybDp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9fX0sU2VydmVyOnskdmlzaXRvcjprbSxmaXhlZEZpZWxkczp7dXJsOk9tLGRlc2NyaXB0aW9uOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sdmFyaWFibGVzOlBtfX0sU2VydmVyVmFyaWFibGU6eyR2aXNpdG9yOmptLGZpeGVkRmllbGRzOntlbnVtOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sZGVmYXVsdDp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGRlc2NyaXB0aW9uOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn19fSxDb21wb25lbnRzOnskdmlzaXRvcjpWZyxmaXhlZEZpZWxkczp7c2NoZW1hczpqeSxyZXNwb25zZXM6UHkscGFyYW1ldGVyczpOeSxleGFtcGxlczpSeSxyZXF1ZXN0Qm9kaWVzOkx5LGhlYWRlcnM6Qnksc2VjdXJpdHlTY2hlbWVzOnF5LGxpbmtzOlV5LGNhbGxiYWNrczpXeX19LFBhdGhzOnskdmlzaXRvcjpReX0sUGF0aEl0ZW06eyR2aXNpdG9yOlB2LGZpeGVkRmllbGRzOnskcmVmOlR2LHN1bW1hcnk6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxkZXNjcmlwdGlvbjp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGdldDp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL09wZXJhdGlvbiJ9LHB1dDp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL09wZXJhdGlvbiJ9LHBvc3Q6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9PcGVyYXRpb24ifSxkZWxldGU6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9PcGVyYXRpb24ifSxvcHRpb25zOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvT3BlcmF0aW9uIn0saGVhZDp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL09wZXJhdGlvbiJ9LHBhdGNoOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvT3BlcmF0aW9uIn0sdHJhY2U6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9PcGVyYXRpb24ifSxzZXJ2ZXJzOk12LHBhcmFtZXRlcnM6RHZ9fSxPcGVyYXRpb246eyR2aXNpdG9yOnZ2LGZpeGVkRmllbGRzOnt0YWdzOl92LHN1bW1hcnk6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxkZXNjcmlwdGlvbjp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGV4dGVybmFsRG9jczp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL0V4dGVybmFsRG9jdW1lbnRhdGlvbiJ9LG9wZXJhdGlvbklkOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0scGFyYW1ldGVyczp3dixyZXF1ZXN0Qm9keTp4dixyZXNwb25zZXM6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9SZXNwb25zZXMifSxjYWxsYmFja3M6T3YsZGVwcmVjYXRlZDp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHNlY3VyaXR5OkF2LHNlcnZlcnM6SXZ9fSxFeHRlcm5hbERvY3VtZW50YXRpb246eyR2aXNpdG9yOkt5LGZpeGVkRmllbGRzOntkZXNjcmlwdGlvbjp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHVybDp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9fX0sUGFyYW1ldGVyOnskdmlzaXRvcjpLZyxmaXhlZEZpZWxkczp7bmFtZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGluOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sZGVzY3JpcHRpb246eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxyZXF1aXJlZDp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGRlcHJlY2F0ZWQ6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxhbGxvd0VtcHR5VmFsdWU6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxzdHlsZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGV4cGxvZGU6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxhbGxvd1Jlc2VydmVkOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sc2NoZW1hOllnLGV4YW1wbGU6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxleGFtcGxlczpreSxjb250ZW50OkN5fX0sUmVxdWVzdEJvZHk6eyR2aXNpdG9yOlp5LGZpeGVkRmllbGRzOntkZXNjcmlwdGlvbjp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGNvbnRlbnQ6dHYscmVxdWlyZWQ6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifX19LE1lZGlhVHlwZTp7JHZpc2l0b3I6VG0sZml4ZWRGaWVsZHM6e3NjaGVtYTpwZyxleGFtcGxlOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sZXhhbXBsZXM6Z2csZW5jb2Rpbmc6X2d9fSxFbmNvZGluZzp7JHZpc2l0b3I6R3ksZml4ZWRGaWVsZHM6e2NvbnRlbnRUeXBlOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0saGVhZGVyczpYeSxzdHlsZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGV4cGxvZGU6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxhbGxvd1Jlc2VydmVkOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn19fSxSZXNwb25zZXM6eyR2aXNpdG9yOmd2LGZpeGVkRmllbGRzOntkZWZhdWx0Onl2fX0sUmVzcG9uc2U6eyR2aXNpdG9yOm52LGZpeGVkRmllbGRzOntkZXNjcmlwdGlvbjp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGhlYWRlcnM6b3YsY29udGVudDphdixsaW5rczpsdn19LENhbGxiYWNrOnskdmlzaXRvcjpydn0sRXhhbXBsZTp7JHZpc2l0b3I6SnksZml4ZWRGaWVsZHM6e3N1bW1hcnk6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxkZXNjcmlwdGlvbjp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHZhbHVlOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sZXh0ZXJuYWxWYWx1ZTpIeX19LExpbms6eyR2aXNpdG9yOnZtLGZpeGVkRmllbGRzOntvcGVyYXRpb25SZWY6Ym0sb3BlcmF0aW9uSWQ6X20scGFyYW1ldGVyczp4bSxyZXF1ZXN0Qm9keTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGRlc2NyaXB0aW9uOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sc2VydmVyOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvU2VydmVyIn19fSxIZWFkZXI6eyR2aXNpdG9yOlhnLGZpeGVkRmllbGRzOntkZXNjcmlwdGlvbjp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHJlcXVpcmVkOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sZGVwcmVjYXRlZDp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGFsbG93RW1wdHlWYWx1ZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHN0eWxlOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sZXhwbG9kZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGFsbG93UmVzZXJ2ZWQ6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxzY2hlbWE6WmcsZXhhbXBsZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGV4YW1wbGVzOnR5LGNvbnRlbnQ6c3l9fSxUYWc6eyR2aXNpdG9yOlVnLGZpeGVkRmllbGRzOntuYW1lOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sZGVzY3JpcHRpb246eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxleHRlcm5hbERvY3M6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9FeHRlcm5hbERvY3VtZW50YXRpb24ifX19LFJlZmVyZW5jZTp7JHZpc2l0b3I6emcsZml4ZWRGaWVsZHM6eyRyZWY6V2d9fSxKU09OU2NoZW1hOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvU2NoZW1hIn0sSlNPTlJlZmVyZW5jZTp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL1JlZmVyZW5jZSJ9LFNjaGVtYTp7JHZpc2l0b3I6b3ksZml4ZWRGaWVsZHM6e3RpdGxlOnp2LnRpdGxlLG11bHRpcGxlT2Y6enYubXVsdGlwbGVPZixtYXhpbXVtOnp2Lm1heGltdW0sZXhjbHVzaXZlTWF4aW11bTp6di5leGNsdXNpdmVNYXhpbXVtLG1pbmltdW06enYubWluaW11bSxleGNsdXNpdmVNaW5pbXVtOnp2LmV4Y2x1c2l2ZU1pbmltdW0sbWF4TGVuZ3RoOnp2Lm1heExlbmd0aCxtaW5MZW5ndGg6enYubWluTGVuZ3RoLHBhdHRlcm46enYucGF0dGVybixtYXhJdGVtczp6di5tYXhJdGVtcyxtaW5JdGVtczp6di5taW5JdGVtcyx1bmlxdWVJdGVtczp6di51bmlxdWVJdGVtcyxtYXhQcm9wZXJ0aWVzOnp2Lm1heFByb3BlcnRpZXMsbWluUHJvcGVydGllczp6di5taW5Qcm9wZXJ0aWVzLHJlcXVpcmVkOnp2LnJlcXVpcmVkLGVudW06enYuZW51bSx0eXBlOnl5LGFsbE9mOmF5LGFueU9mOmx5LG9uZU9mOnB5LG5vdDpieSxpdGVtczpkeSxwcm9wZXJ0aWVzOm15LGFkZGl0aW9uYWxQcm9wZXJ0aWVzOmJ5LGRlc2NyaXB0aW9uOnp2LmRlc2NyaXB0aW9uLGZvcm1hdDp6di5mb3JtYXQsZGVmYXVsdDp6di5kZWZhdWx0LG51bGxhYmxlOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sZGlzY3JpbWluYXRvcjp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL0Rpc2NyaW1pbmF0b3IifSx3cml0ZU9ubHk6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSx4bWw6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9YTUwifSxleHRlcm5hbERvY3M6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9FeHRlcm5hbERvY3VtZW50YXRpb24ifSxleGFtcGxlOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sZGVwcmVjYXRlZDp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9fX0sRGlzY3JpbWluYXRvcjp7JHZpc2l0b3I6X3ksZml4ZWRGaWVsZHM6e3Byb3BlcnR5TmFtZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LG1hcHBpbmc6RXl9fSxYTUw6eyR2aXNpdG9yOnd5LGZpeGVkRmllbGRzOntuYW1lOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sbmFtZXNwYWNlOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0scHJlZml4OnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sYXR0cmlidXRlOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sd3JhcHBlZDp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9fX0sU2VjdXJpdHlTY2hlbWU6eyR2aXNpdG9yOkx2LGZpeGVkRmllbGRzOnt0eXBlOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sZGVzY3JpcHRpb246eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxuYW1lOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0saW46eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxzY2hlbWU6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxiZWFyZXJGb3JtYXQ6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxmbG93czp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL09BdXRoRmxvd3MifSxvcGVuSWRDb25uZWN0VXJsOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn19fSxPQXV0aEZsb3dzOnskdmlzaXRvcjpGdixmaXhlZEZpZWxkczp7aW1wbGljaXQ6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9PQXV0aEZsb3cifSxwYXNzd29yZDp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL09BdXRoRmxvdyJ9LGNsaWVudENyZWRlbnRpYWxzOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvT0F1dGhGbG93In0sYXV0aG9yaXphdGlvbkNvZGU6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9PQXV0aEZsb3cifX19LE9BdXRoRmxvdzp7JHZpc2l0b3I6QnYsZml4ZWRGaWVsZHM6e2F1dGhvcml6YXRpb25Vcmw6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSx0b2tlblVybDp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHJlZnJlc2hVcmw6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxzY29wZXM6cXZ9fSxTZWN1cml0eVJlcXVpcmVtZW50OnskdmlzaXRvcjp4Z319LGV4dGVuc2lvbjp7JHZpc2l0b3I6ZG19fX19LHNyY190cmF2ZXJzYWxfdmlzaXRvcl9nZXROb2RlVHlwZT1zPT57aWYoanUocykpcmV0dXJuYCR7cy5lbGVtZW50LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3MuZWxlbWVudC5zbGljZSgxKX1FbGVtZW50YH0sSnY9e0NhbGxiYWNrRWxlbWVudDpbImNvbnRlbnQiXSxDb21wb25lbnRzRWxlbWVudDpbImNvbnRlbnQiXSxDb250YWN0RWxlbWVudDpbImNvbnRlbnQiXSxEaXNjcmltaW5hdG9yRWxlbWVudDpbImNvbnRlbnQiXSxFbmNvZGluZzpbImNvbnRlbnQiXSxFeGFtcGxlOlsiY29udGVudCJdLEV4dGVybmFsRG9jdW1lbnRhdGlvbkVsZW1lbnQ6WyJjb250ZW50Il0sSGVhZGVyRWxlbWVudDpbImNvbnRlbnQiXSxJbmZvRWxlbWVudDpbImNvbnRlbnQiXSxMaWNlbnNlRWxlbWVudDpbImNvbnRlbnQiXSxNZWRpYVR5cGVFbGVtZW50OlsiY29udGVudCJdLE9BdXRoRmxvd0VsZW1lbnQ6WyJjb250ZW50Il0sT0F1dGhGbG93c0VsZW1lbnQ6WyJjb250ZW50Il0sT3BlbkFwaTNfMEVsZW1lbnQ6WyJjb250ZW50Il0sT3BlcmF0aW9uRWxlbWVudDpbImNvbnRlbnQiXSxQYXJhbWV0ZXJFbGVtZW50OlsiY29udGVudCJdLFBhdGhJdGVtRWxlbWVudDpbImNvbnRlbnQiXSxQYXRoc0VsZW1lbnQ6WyJjb250ZW50Il0sUmVmZXJlbmNlRWxlbWVudDpbImNvbnRlbnQiXSxSZXF1ZXN0Qm9keUVsZW1lbnQ6WyJjb250ZW50Il0sUmVzcG9uc2VFbGVtZW50OlsiY29udGVudCJdLFJlc3BvbnNlc0VsZW1lbnQ6WyJjb250ZW50Il0sU2NoZW1hRWxlbWVudDpbImNvbnRlbnQiXSxTZWN1cml0eVJlcXVpcmVtZW50RWxlbWVudDpbImNvbnRlbnQiXSxTZWN1cml0eVNjaGVtZUVsZW1lbnQ6WyJjb250ZW50Il0sU2VydmVyRWxlbWVudDpbImNvbnRlbnQiXSxTZXJ2ZXJWYXJpYWJsZUVsZW1lbnQ6WyJjb250ZW50Il0sVGFnRWxlbWVudDpbImNvbnRlbnQiXSwuLi5LdX0sSHY9e25hbWVzcGFjZTpzPT57Y29uc3R7YmFzZTpvfT1zO3JldHVybiBvLnJlZ2lzdGVyKCJjYWxsYmFjayIsVXApLG8ucmVnaXN0ZXIoImNvbXBvbmVudHMiLHpwKSxvLnJlZ2lzdGVyKCJjb250YWN0IixXcCksby5yZWdpc3RlcigiZGlzY3JpbWluYXRvciIsSnApLG8ucmVnaXN0ZXIoImVuY29kaW5nIixIcCksby5yZWdpc3RlcigiZXhhbXBsZSIsS3ApLG8ucmVnaXN0ZXIoImV4dGVybmFsRG9jdW1lbnRhdGlvbiIsR3ApLG8ucmVnaXN0ZXIoImhlYWRlciIsWXApLG8ucmVnaXN0ZXIoImluZm8iLFhwKSxvLnJlZ2lzdGVyKCJsaWNlbnNlIixRcCksby5yZWdpc3RlcigibGluayIsWnApLG8ucmVnaXN0ZXIoIm1lZGlhVHlwZSIsdGgpLG8ucmVnaXN0ZXIoIm9BdXRoRmxvdyIscmgpLG8ucmVnaXN0ZXIoIm9BdXRoRmxvd3MiLHVoKSxvLnJlZ2lzdGVyKCJvcGVuYXBpIixkaCksby5yZWdpc3Rlcigib3BlbkFwaTNfMCIsZmgpLG8ucmVnaXN0ZXIoIm9wZXJhdGlvbiIsdmgpLG8ucmVnaXN0ZXIoInBhcmFtZXRlciIsX2gpLG8ucmVnaXN0ZXIoInBhdGhJdGVtIix3aCksby5yZWdpc3RlcigicGF0aHMiLE9oKSxvLnJlZ2lzdGVyKCJyZWZlcmVuY2UiLGpoKSxvLnJlZ2lzdGVyKCJyZXF1ZXN0Qm9keSIsSWgpLG8ucmVnaXN0ZXIoInJlc3BvbnNlIixQaCksby5yZWdpc3RlcigicmVzcG9uc2VzIixSaCksby5yZWdpc3Rlcigic2NoZW1hIixXZiksby5yZWdpc3Rlcigic2VjdXJpdHlSZXF1aXJlbWVudCIsSmYpLG8ucmVnaXN0ZXIoInNlY3VyaXR5U2NoZW1lIixIZiksby5yZWdpc3Rlcigic2VydmVyIixHZiksby5yZWdpc3Rlcigic2VydmVyVmFyaWFibGUiLFhmKSxvLnJlZ2lzdGVyKCJ0YWciLFFmKSxvLnJlZ2lzdGVyKCJ4bWwiLGVtKSxvfX0sS3Y9SHYsc3JjX3JlZnJhY3Rvcl90b29sYm94PSgpPT57Y29uc3Qgcz1jcmVhdGVOYW1lc3BhY2UoS3YpO3JldHVybntwcmVkaWNhdGVzOnsuLi5jZSxpc0VsZW1lbnQ6anUsaXNTdHJpbmdFbGVtZW50Okl1LGlzQXJyYXlFbGVtZW50OlJ1LGlzT2JqZWN0RWxlbWVudDpNdSxpc01lbWJlckVsZW1lbnQ6RHUsaW5jbHVkZXNDbGFzc2VzLGhhc0VsZW1lbnRTb3VyY2VNYXB9LG5hbWVzcGFjZTpzfX0sc3JjX3JlZnJhY3Rvcl9yZWZyYWN0PShzLHtzcGVjUGF0aDpvPVsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJPcGVuQXBpIiwiJHZpc2l0b3IiXSxwbHVnaW5zOmk9W119PXt9KT0+e2NvbnN0IGE9KDAsU3UuZSkocyksdT1kZXJlZmVyZW5jZShXdiksXz1uZXcodHAobyx1KSkoe3NwZWNPYmo6dX0pO3JldHVybiB2aXNpdG9yX3Zpc2l0KGEsXyksZGlzcGF0Y2hQbHVnaW5zU3luYyhfLmVsZW1lbnQsaSx7dG9vbGJveENyZWF0b3I6c3JjX3JlZnJhY3Rvcl90b29sYm94LHZpc2l0b3JPcHRpb25zOntrZXlNYXA6SnYsbm9kZVR5cGVHZXR0ZXI6c3JjX3RyYXZlcnNhbF92aXNpdG9yX2dldE5vZGVUeXBlfX0pfSxzcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3Rvcj1zPT4obyxpPXt9KT0+c3JjX3JlZnJhY3Rvcl9yZWZyYWN0KG8se3NwZWNQYXRoOnMsLi4uaX0pO1VwLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkNhbGxiYWNrIiwiJHZpc2l0b3IiXSksenAucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiQ29tcG9uZW50cyIsIiR2aXNpdG9yIl0pLFdwLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkNvbnRhY3QiLCIkdmlzaXRvciJdKSxLcC5yZWZyYWN0PXNyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJFeGFtcGxlIiwiJHZpc2l0b3IiXSksSnAucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiRGlzY3JpbWluYXRvciIsIiR2aXNpdG9yIl0pLEhwLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkVuY29kaW5nIiwiJHZpc2l0b3IiXSksR3AucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiRXh0ZXJuYWxEb2N1bWVudGF0aW9uIiwiJHZpc2l0b3IiXSksWXAucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSGVhZGVyIiwiJHZpc2l0b3IiXSksWHAucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSW5mbyIsIiR2aXNpdG9yIl0pLFFwLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpY2Vuc2UiLCIkdmlzaXRvciJdKSxacC5yZWZyYWN0PXNyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rIiwiJHZpc2l0b3IiXSksdGgucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTWVkaWFUeXBlIiwiJHZpc2l0b3IiXSkscmgucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiT0F1dGhGbG93IiwiJHZpc2l0b3IiXSksdWgucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiT0F1dGhGbG93cyIsIiR2aXNpdG9yIl0pLGRoLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIk9wZW5BcGkiLCJmaXhlZEZpZWxkcyIsIm9wZW5hcGkiXSksZmgucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiT3BlbkFwaSIsIiR2aXNpdG9yIl0pLHZoLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIk9wZXJhdGlvbiIsIiR2aXNpdG9yIl0pLF9oLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIlBhcmFtZXRlciIsIiR2aXNpdG9yIl0pLHdoLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIlBhdGhJdGVtIiwiJHZpc2l0b3IiXSksT2gucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiUGF0aHMiLCIkdmlzaXRvciJdKSxqaC5yZWZyYWN0PXNyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiLCIkdmlzaXRvciJdKSxJaC5yZWZyYWN0PXNyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJSZXF1ZXN0Qm9keSIsIiR2aXNpdG9yIl0pLFBoLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIlJlc3BvbnNlIiwiJHZpc2l0b3IiXSksUmgucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVzcG9uc2VzIiwiJHZpc2l0b3IiXSksV2YucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiU2NoZW1hIiwiJHZpc2l0b3IiXSksSmYucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiU2VjdXJpdHlSZXF1aXJlbWVudCIsIiR2aXNpdG9yIl0pLEhmLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIlNlY3VyaXR5U2NoZW1lIiwiJHZpc2l0b3IiXSksR2YucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiU2VydmVyIiwiJHZpc2l0b3IiXSksWGYucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiU2VydmVyVmFyaWFibGUiLCIkdmlzaXRvciJdKSxRZi5yZWZyYWN0PXNyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJUYWciLCIkdmlzaXRvciJdKSxlbS5yZWZyYWN0PXNyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJYTUwiLCIkdmlzaXRvciJdKTtjb25zdCBHdj1jbGFzcyBDYWxsYmFja19DYWxsYmFjayBleHRlbmRzIFVwe307Y29uc3QgWXY9Y2xhc3MgQ29tcG9uZW50c19Db21wb25lbnRzIGV4dGVuZHMgenB7Z2V0IHBhdGhJdGVtcygpe3JldHVybiB0aGlzLmdldCgicGF0aEl0ZW1zIil9c2V0IHBhdGhJdGVtcyhzKXt0aGlzLnNldCgicGF0aEl0ZW1zIixzKX19O2NvbnN0IFh2PWNsYXNzIENvbnRhY3RfQ29udGFjdCBleHRlbmRzIFdwe307Y29uc3QgUXY9Y2xhc3MgRGlzY3JpbWluYXRvcl9EaXNjcmltaW5hdG9yIGV4dGVuZHMgSnB7fTtjb25zdCBadj1jbGFzcyBFbmNvZGluZ19FbmNvZGluZyBleHRlbmRzIEhwe307Y29uc3QgZWI9Y2xhc3MgRXhhbXBsZV9FeGFtcGxlIGV4dGVuZHMgS3B7fTtjb25zdCB0Yj1jbGFzcyBFeHRlcm5hbERvY3VtZW50YXRpb25fRXh0ZXJuYWxEb2N1bWVudGF0aW9uIGV4dGVuZHMgR3B7fTtjb25zdCBuYj1jbGFzcyBIZWFkZXJfSGVhZGVyIGV4dGVuZHMgWXB7Z2V0IHNjaGVtYSgpe3JldHVybiB0aGlzLmdldCgic2NoZW1hIil9c2V0IHNjaGVtYShzKXt0aGlzLnNldCgic2NoZW1hIixzKX19O2NvbnN0IHBiPWNsYXNzIEluZm9fSW5mbyBleHRlbmRzIFhwe2dldCBsaWNlbnNlKCl7cmV0dXJuIHRoaXMuZ2V0KCJsaWNlbnNlIil9c2V0IGxpY2Vuc2Uocyl7dGhpcy5zZXQoImxpY2Vuc2UiLHMpfWdldCBzdW1tYXJ5KCl7cmV0dXJuIHRoaXMuZ2V0KCJzdW1tYXJ5Iil9c2V0IHN1bW1hcnkocyl7dGhpcy5zZXQoInN1bW1hcnkiLHMpfX07Y2xhc3MgSnNvblNjaGVtYURpYWxlY3QgZXh0ZW5kcyBTdS5PbXtzdGF0aWMgZGVmYXVsdD1uZXcgSnNvblNjaGVtYURpYWxlY3QoImh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzLzMuMS9kaWFsZWN0L2Jhc2UiKTtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0ianNvblNjaGVtYURpYWxlY3QifX1jb25zdCBtYj1Kc29uU2NoZW1hRGlhbGVjdDtjb25zdCB5Yj1jbGFzcyBMaWNlbnNlX0xpY2Vuc2UgZXh0ZW5kcyBRcHtnZXQgaWRlbnRpZmllcigpe3JldHVybiB0aGlzLmdldCgiaWRlbnRpZmllciIpfXNldCBpZGVudGlmaWVyKHMpe3RoaXMuc2V0KCJpZGVudGlmaWVyIixzKX19O2NvbnN0IF9iPWNsYXNzIExpbmtfTGluayBleHRlbmRzIFpwe307Y29uc3QgU2I9Y2xhc3MgTWVkaWFUeXBlX01lZGlhVHlwZSBleHRlbmRzIHRoe2dldCBzY2hlbWEoKXtyZXR1cm4gdGhpcy5nZXQoInNjaGVtYSIpfXNldCBzY2hlbWEocyl7dGhpcy5zZXQoInNjaGVtYSIscyl9fTtjb25zdCB3Yj1jbGFzcyBPQXV0aEZsb3dfT0F1dGhGbG93IGV4dGVuZHMgcmh7fTtjb25zdCBPYj1jbGFzcyBPQXV0aEZsb3dzX09BdXRoRmxvd3MgZXh0ZW5kcyB1aHt9O2NvbnN0IEFiPWNsYXNzIE9wZW5hcGlfT3BlbmFwaSBleHRlbmRzIGRoe307Y2xhc3MgT3BlbkFwaTNfMSBleHRlbmRzIFN1LlNoe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJvcGVuQXBpM18xIix0aGlzLmNsYXNzZXMucHVzaCgiYXBpIil9Z2V0IG9wZW5hcGkoKXtyZXR1cm4gdGhpcy5nZXQoIm9wZW5hcGkiKX1zZXQgb3BlbmFwaShzKXt0aGlzLnNldCgib3BlbmFwaSIscyl9Z2V0IGluZm8oKXtyZXR1cm4gdGhpcy5nZXQoImluZm8iKX1zZXQgaW5mbyhzKXt0aGlzLnNldCgiaW5mbyIscyl9Z2V0IGpzb25TY2hlbWFEaWFsZWN0KCl7cmV0dXJuIHRoaXMuZ2V0KCJqc29uU2NoZW1hRGlhbGVjdCIpfXNldCBqc29uU2NoZW1hRGlhbGVjdChzKXt0aGlzLnNldCgianNvblNjaGVtYURpYWxlY3QiLHMpfWdldCBzZXJ2ZXJzKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZXJ2ZXJzIil9c2V0IHNlcnZlcnMocyl7dGhpcy5zZXQoInNlcnZlcnMiLHMpfWdldCBwYXRocygpe3JldHVybiB0aGlzLmdldCgicGF0aHMiKX1zZXQgcGF0aHMocyl7dGhpcy5zZXQoInBhdGhzIixzKX1nZXQgY29tcG9uZW50cygpe3JldHVybiB0aGlzLmdldCgiY29tcG9uZW50cyIpfXNldCBjb21wb25lbnRzKHMpe3RoaXMuc2V0KCJjb21wb25lbnRzIixzKX1nZXQgc2VjdXJpdHkoKXtyZXR1cm4gdGhpcy5nZXQoInNlY3VyaXR5Iil9c2V0IHNlY3VyaXR5KHMpe3RoaXMuc2V0KCJzZWN1cml0eSIscyl9Z2V0IHRhZ3MoKXtyZXR1cm4gdGhpcy5nZXQoInRhZ3MiKX1zZXQgdGFncyhzKXt0aGlzLnNldCgidGFncyIscyl9Z2V0IGV4dGVybmFsRG9jcygpe3JldHVybiB0aGlzLmdldCgiZXh0ZXJuYWxEb2NzIil9c2V0IGV4dGVybmFsRG9jcyhzKXt0aGlzLnNldCgiZXh0ZXJuYWxEb2NzIixzKX1nZXQgd2ViaG9va3MoKXtyZXR1cm4gdGhpcy5nZXQoIndlYmhvb2tzIil9c2V0IHdlYmhvb2tzKHMpe3RoaXMuc2V0KCJ3ZWJob29rcyIscyl9fWNvbnN0IEliPU9wZW5BcGkzXzE7Y29uc3QgUGI9Y2xhc3MgT3BlcmF0aW9uX09wZXJhdGlvbiBleHRlbmRzIHZoe2dldCByZXF1ZXN0Qm9keSgpe3JldHVybiB0aGlzLmdldCgicmVxdWVzdEJvZHkiKX1zZXQgcmVxdWVzdEJvZHkocyl7dGhpcy5zZXQoInJlcXVlc3RCb2R5IixzKX19O2NvbnN0IE1iPWNsYXNzIFBhcmFtZXRlcl9QYXJhbWV0ZXIgZXh0ZW5kcyBfaHtnZXQgc2NoZW1hKCl7cmV0dXJuIHRoaXMuZ2V0KCJzY2hlbWEiKX1zZXQgc2NoZW1hKHMpe3RoaXMuc2V0KCJzY2hlbWEiLHMpfX07Y29uc3QgUmI9Y2xhc3MgUGF0aEl0ZW1fUGF0aEl0ZW0gZXh0ZW5kcyB3aHtnZXQgR0VUKCl7cmV0dXJuIHRoaXMuZ2V0KCJnZXQiKX1zZXQgR0VUKHMpe3RoaXMuc2V0KCJHRVQiLHMpfWdldCBQVVQoKXtyZXR1cm4gdGhpcy5nZXQoInB1dCIpfXNldCBQVVQocyl7dGhpcy5zZXQoIlBVVCIscyl9Z2V0IFBPU1QoKXtyZXR1cm4gdGhpcy5nZXQoInBvc3QiKX1zZXQgUE9TVChzKXt0aGlzLnNldCgiUE9TVCIscyl9Z2V0IERFTEVURSgpe3JldHVybiB0aGlzLmdldCgiZGVsZXRlIil9c2V0IERFTEVURShzKXt0aGlzLnNldCgiREVMRVRFIixzKX1nZXQgT1BUSU9OUygpe3JldHVybiB0aGlzLmdldCgib3B0aW9ucyIpfXNldCBPUFRJT05TKHMpe3RoaXMuc2V0KCJPUFRJT05TIixzKX1nZXQgSEVBRCgpe3JldHVybiB0aGlzLmdldCgiaGVhZCIpfXNldCBIRUFEKHMpe3RoaXMuc2V0KCJIRUFEIixzKX1nZXQgUEFUQ0goKXtyZXR1cm4gdGhpcy5nZXQoInBhdGNoIil9c2V0IFBBVENIKHMpe3RoaXMuc2V0KCJQQVRDSCIscyl9Z2V0IFRSQUNFKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0cmFjZSIpfXNldCBUUkFDRShzKXt0aGlzLnNldCgiVFJBQ0UiLHMpfX07Y29uc3QgTGI9Y2xhc3MgUGF0aHNfUGF0aHMgZXh0ZW5kcyBPaHt9O2NsYXNzIFJlZmVyZW5jZV9SZWZlcmVuY2UgZXh0ZW5kcyBqaHt9T2JqZWN0LmRlZmluZVByb3BlcnR5KFJlZmVyZW5jZV9SZWZlcmVuY2UucHJvdG90eXBlLCJkZXNjcmlwdGlvbiIse2dldCgpe3JldHVybiB0aGlzLmdldCgiZGVzY3JpcHRpb24iKX0sc2V0KHMpe3RoaXMuc2V0KCJkZXNjcmlwdGlvbiIscyl9LGVudW1lcmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVmZXJlbmNlX1JlZmVyZW5jZS5wcm90b3R5cGUsInN1bW1hcnkiLHtnZXQoKXtyZXR1cm4gdGhpcy5nZXQoInN1bW1hcnkiKX0sc2V0KHMpe3RoaXMuc2V0KCJzdW1tYXJ5IixzKX0sZW51bWVyYWJsZTohMH0pO2NvbnN0IHFiPVJlZmVyZW5jZV9SZWZlcmVuY2U7Y29uc3QgemI9Y2xhc3MgUmVxdWVzdEJvZHlfUmVxdWVzdEJvZHkgZXh0ZW5kcyBJaHt9O2NvbnN0IFFiPWNsYXNzIGVsZW1lbnRzX1Jlc3BvbnNlX1Jlc3BvbnNlIGV4dGVuZHMgUGh7fTtjb25zdCBlXz1jbGFzcyBSZXNwb25zZXNfUmVzcG9uc2VzIGV4dGVuZHMgUmh7fTtjb25zdCB0Xz1jbGFzcyBKU09OU2NoZW1hX0pTT05TY2hlbWEgZXh0ZW5kcyBMaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0iSlNPTlNjaGVtYURyYWZ0NiJ9Z2V0IGlkUHJvcCgpe3Rocm93IG5ldyBEaCgiaWQga2V5d29yZCBmcm9tIENvcmUgdm9jYWJ1bGFyeSBoYXMgYmVlbiByZW5hbWVkIHRvICRpZC4iKX1zZXQgaWRQcm9wKHMpe3Rocm93IG5ldyBEaCgiaWQga2V5d29yZCBmcm9tIENvcmUgdm9jYWJ1bGFyeSBoYXMgYmVlbiByZW5hbWVkIHRvICRpZC4iKX1nZXQgJGlkKCl7cmV0dXJuIHRoaXMuZ2V0KCIkaWQiKX1zZXQgJGlkKHMpe3RoaXMuc2V0KCIkaWQiLHMpfWdldCBleGNsdXNpdmVNYXhpbXVtKCl7cmV0dXJuIHRoaXMuZ2V0KCJleGNsdXNpdmVNYXhpbXVtIil9c2V0IGV4Y2x1c2l2ZU1heGltdW0ocyl7dGhpcy5zZXQoImV4Y2x1c2l2ZU1heGltdW0iLHMpfWdldCBleGNsdXNpdmVNaW5pbXVtKCl7cmV0dXJuIHRoaXMuZ2V0KCJleGNsdXNpdmVNaW5pbXVtIil9c2V0IGV4Y2x1c2l2ZU1pbmltdW0ocyl7dGhpcy5zZXQoImV4Y2x1c2l2ZU1pbmltdW0iLHMpfWdldCBjb250YWluc1Byb3AoKXtyZXR1cm4gdGhpcy5nZXQoImNvbnRhaW5zIil9c2V0IGNvbnRhaW5zUHJvcChzKXt0aGlzLnNldCgiY29udGFpbnMiLHMpfWdldCBpdGVtcygpe3JldHVybiB0aGlzLmdldCgiaXRlbXMiKX1zZXQgaXRlbXMocyl7dGhpcy5zZXQoIml0ZW1zIixzKX1nZXQgcHJvcGVydHlOYW1lcygpe3JldHVybiB0aGlzLmdldCgicHJvcGVydHlOYW1lcyIpfXNldCBwcm9wZXJ0eU5hbWVzKHMpe3RoaXMuc2V0KCJwcm9wZXJ0eU5hbWVzIixzKX1nZXQgY29uc3QoKXtyZXR1cm4gdGhpcy5nZXQoImNvbnN0Iil9c2V0IGNvbnN0KHMpe3RoaXMuc2V0KCJjb25zdCIscyl9Z2V0IG5vdCgpe3JldHVybiB0aGlzLmdldCgibm90Iil9c2V0IG5vdChzKXt0aGlzLnNldCgibm90IixzKX1nZXQgZXhhbXBsZXMoKXtyZXR1cm4gdGhpcy5nZXQoImV4YW1wbGVzIil9c2V0IGV4YW1wbGVzKHMpe3RoaXMuc2V0KCJleGFtcGxlcyIscyl9fTtjb25zdCByXz1jbGFzcyBMaW5rRGVzY3JpcHRpb25fTGlua0Rlc2NyaXB0aW9uIGV4dGVuZHMgSGh7Z2V0IGhyZWZTY2hlbWEoKXtyZXR1cm4gdGhpcy5nZXQoImhyZWZTY2hlbWEiKX1zZXQgaHJlZlNjaGVtYShzKXt0aGlzLnNldCgiaHJlZlNjaGVtYSIscyl9Z2V0IHRhcmdldFNjaGVtYSgpe3JldHVybiB0aGlzLmdldCgidGFyZ2V0U2NoZW1hIil9c2V0IHRhcmdldFNjaGVtYShzKXt0aGlzLnNldCgidGFyZ2V0U2NoZW1hIixzKX1nZXQgc2NoZW1hKCl7dGhyb3cgbmV3IERoKCJzY2hlbWEga2V5d29yZCBmcm9tIEh5cGVyLVNjaGVtYSB2b2NhYnVsYXJ5IGhhcyBiZWVuIHJlbmFtZWQgdG8gc3VibWlzc2lvblNjaGVtYS4iKX1zZXQgc2NoZW1hKHMpe3Rocm93IG5ldyBEaCgic2NoZW1hIGtleXdvcmQgZnJvbSBIeXBlci1TY2hlbWEgdm9jYWJ1bGFyeSBoYXMgYmVlbiByZW5hbWVkIHRvIHN1Ym1pc3Npb25TY2hlbWEuIil9Z2V0IHN1Ym1pc3Npb25TY2hlbWEoKXtyZXR1cm4gdGhpcy5nZXQoInN1Ym1pc3Npb25TY2hlbWEiKX1zZXQgc3VibWlzc2lvblNjaGVtYShzKXt0aGlzLnNldCgic3VibWlzc2lvblNjaGVtYSIscyl9Z2V0IG1ldGhvZCgpe3Rocm93IG5ldyBEaCgibWV0aG9kIGtleXdvcmQgZnJvbSBIeXBlci1TY2hlbWEgdm9jYWJ1bGFyeSBoYXMgYmVlbiByZW1vdmVkLiIpfXNldCBtZXRob2Qocyl7dGhyb3cgbmV3IERoKCJtZXRob2Qga2V5d29yZCBmcm9tIEh5cGVyLVNjaGVtYSB2b2NhYnVsYXJ5IGhhcyBiZWVuIHJlbW92ZWQuIil9Z2V0IGVuY1R5cGUoKXt0aHJvdyBuZXcgRGgoImVuY1R5cGUga2V5d29yZCBmcm9tIEh5cGVyLVNjaGVtYSB2b2NhYnVsYXJ5IGhhcyBiZWVuIHJlbmFtZWQgdG8gc3VibWlzc2lvbkVuY1R5cGUuIil9c2V0IGVuY1R5cGUocyl7dGhyb3cgbmV3IERoKCJlbmNUeXBlIGtleXdvcmQgZnJvbSBIeXBlci1TY2hlbWEgdm9jYWJ1bGFyeSBoYXMgYmVlbiByZW5hbWVkIHRvIHN1Ym1pc3Npb25FbmNUeXBlLiIpfWdldCBzdWJtaXNzaW9uRW5jVHlwZSgpe3JldHVybiB0aGlzLmdldCgic3VibWlzc2lvbkVuY1R5cGUiKX1zZXQgc3VibWlzc2lvbkVuY1R5cGUocyl7dGhpcy5zZXQoInN1Ym1pc3Npb25FbmNUeXBlIixzKX19O3ZhciBuXz1fY3VycnkzKChmdW5jdGlvbiBhc3NvY1BhdGgocyxvLGkpe2lmKDA9PT1zLmxlbmd0aClyZXR1cm4gbzt2YXIgYT1zWzBdO2lmKHMubGVuZ3RoPjEpe3ZhciB1PSFHaChpKSYmX2hhcyhhLGkpJiYib2JqZWN0Ij09dHlwZW9mIGlbYV0/aVthXTpYbyhzWzFdKT9bXTp7fTtvPWFzc29jUGF0aChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChzLDEpLG8sdSl9cmV0dXJuIGZ1bmN0aW9uIF9hc3NvYyhzLG8saSl7aWYoWG8ocykmJmNhKGkpKXt2YXIgYT1bXS5jb25jYXQoaSk7cmV0dXJuIGFbc109byxhfXZhciB1PXt9O2Zvcih2YXIgXyBpbiBpKXVbX109aVtfXTtyZXR1cm4gdVtzXT1vLHV9KGEsbyxpKX0pKTtjb25zdCBzXz1uXzt2YXIgb189X2N1cnJ5MygoZnVuY3Rpb24gcmVtb3ZlKHMsbyxpKXt2YXIgYT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChpLDApO3JldHVybiBhLnNwbGljZShzLG8pLGF9KSk7Y29uc3QgaV89b187dmFyIGFfPV9jdXJyeTMoKGZ1bmN0aW9uIGFzc29jKHMsbyxpKXtyZXR1cm4gc18oW3NdLG8saSl9KSk7Y29uc3QgY189YV87dmFyIGxfPV9jdXJyeTIoKGZ1bmN0aW9uIGRpc3NvY1BhdGgocyxvKXtpZihudWxsPT1vKXJldHVybiBvO3N3aXRjaChzLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBvO2Nhc2UgMTpyZXR1cm4gZnVuY3Rpb24gX2Rpc3NvYyhzLG8pe2lmKG51bGw9PW8pcmV0dXJuIG87aWYoWG8ocykmJmNhKG8pKXJldHVybiBpXyhzLDEsbyk7dmFyIGk9e307Zm9yKHZhciBhIGluIG8paVthXT1vW2FdO3JldHVybiBkZWxldGUgaVtzXSxpfShzWzBdLG8pO2RlZmF1bHQ6dmFyIGk9c1swXSxhPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHMsMSk7cmV0dXJuIG51bGw9PW9baV0/ZnVuY3Rpb24gX3NoYWxsb3dDbG9uZU9iamVjdChzLG8pe2lmKFhvKHMpJiZjYShvKSlyZXR1cm5bXS5jb25jYXQobyk7dmFyIGk9e307Zm9yKHZhciBhIGluIG8paVthXT1vW2FdO3JldHVybiBpfShpLG8pOmNfKGksZGlzc29jUGF0aChhLG9baV0pLG8pfX0pKTtjb25zdCB1Xz1sXztjb25zdCBwXz1jbGFzcyBqc29uX3NjaGVtYV9KU09OU2NoZW1hVmlzaXRvciBleHRlbmRzIFVke2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgdF99Z2V0IGRlZmF1bHREaWFsZWN0SWRlbnRpZmllcigpe3JldHVybiJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA2L3NjaGVtYSMifUJvb2xlYW5FbGVtZW50KHMpe2NvbnN0IG89dGhpcy5lbnRlcihzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgiYm9vbGVhbi1qc29uLXNjaGVtYSIpLG99aGFuZGxlU2NoZW1hSWRlbnRpZmllcihzLG89IiRpZCIpe3JldHVybiBzdXBlci5oYW5kbGVTY2hlbWFJZGVudGlmaWVyKHMsbyl9fTtjb25zdCBoXz1jbGFzcyBqc29uX3NjaGVtYV9JdGVtc1Zpc2l0b3JfSXRlbXNWaXNpdG9yIGV4dGVuZHMgV2R7Qm9vbGVhbkVsZW1lbnQocyl7cmV0dXJuIHRoaXMuZWxlbWVudD10aGlzLnRvUmVmcmFjdGVkRWxlbWVudChbImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiXSxzKSxVdX19O2NvbnN0IGRfPWNsYXNzIGpzb25fc2NoZW1hX0V4YW1wbGVzVmlzaXRvcl9FeGFtcGxlc1Zpc2l0b3IgZXh0ZW5kcyBfZHtBcnJheUVsZW1lbnQocyl7Y29uc3Qgbz10aGlzLmVudGVyKHMpO3JldHVybiB0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJqc29uLXNjaGVtYS1leGFtcGxlcyIpLG99fTtjb25zdCBmXz1jbGFzcyBsaW5rX2Rlc2NyaXB0aW9uX0xpbmtEZXNjcmlwdGlvblZpc2l0b3IgZXh0ZW5kcyBOZntjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IHJffX0sbV89cGlwZShzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsIiR2aXNpdG9yIl0scF8pLHVfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJpZCJdKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiJGlkIl0sUmYudmlzaXRvcnMudmFsdWUpLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJjb250YWlucyJdLFJmLnZpc2l0b3JzLkpTT05TY2hlbWFPckpTT05SZWZlcmVuY2VWaXNpdG9yKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiaXRlbXMiXSxoXyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsInByb3BlcnR5TmFtZXMiXSxSZi52aXNpdG9ycy5KU09OU2NoZW1hT3JKU09OUmVmZXJlbmNlVmlzaXRvciksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsImNvbnN0Il0sUmYudmlzaXRvcnMudmFsdWUpLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJleGFtcGxlcyJdLGRfKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiJHZpc2l0b3IiXSxmXyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsImZpeGVkRmllbGRzIiwiaHJlZlNjaGVtYSJdLFJmLnZpc2l0b3JzLkpTT05TY2hlbWFPckpTT05SZWZlcmVuY2VWaXNpdG9yKSx1XyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiZml4ZWRGaWVsZHMiLCJzY2hlbWEiXSksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsImZpeGVkRmllbGRzIiwic3VibWlzc2lvblNjaGVtYSJdLFJmLnZpc2l0b3JzLkpTT05TY2hlbWFPckpTT05SZWZlcmVuY2VWaXNpdG9yKSx1XyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiZml4ZWRGaWVsZHMiLCJtZXRob2QiXSksdV8oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsImZpeGVkRmllbGRzIiwiZW5jVHlwZSJdKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiZml4ZWRGaWVsZHMiLCJzdWJtaXNzaW9uRW5jVHlwZSJdLFJmLnZpc2l0b3JzLnZhbHVlKSkoUmYpLGdfPXtKU09OU2NoZW1hRHJhZnQ2RWxlbWVudDpbImNvbnRlbnQiXSxKU09OUmVmZXJlbmNlRWxlbWVudDpbImNvbnRlbnQiXSxNZWRpYUVsZW1lbnQ6WyJjb250ZW50Il0sTGlua0Rlc2NyaXB0aW9uRWxlbWVudDpbImNvbnRlbnQiXSwuLi5LdX0seV89aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiB0X3x8cyhhKSYmbygiSlNPTlNjaGVtYURyYWZ0NiIsYSkmJmkoIm9iamVjdCIsYSkpKSx2Xz1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIHJffHxzKGEpJiZvKCJsaW5rRGVzY3JpcHRpb24iLGEpJiZpKCJvYmplY3QiLGEpKSksYl89e25hbWVzcGFjZTpzPT57Y29uc3R7YmFzZTpvfT1zO3JldHVybiBvLnJlZ2lzdGVyKCJqU09OU2NoZW1hRHJhZnQ2Iix0Xyksby5yZWdpc3RlcigialNPTlJlZmVyZW5jZSIsRmgpLG8ucmVnaXN0ZXIoIm1lZGlhIixKaCksby5yZWdpc3RlcigibGlua0Rlc2NyaXB0aW9uIixyXyksb319LFNfPWJfLGFwaWRvbV9uc19qc29uX3NjaGVtYV9kcmFmdF82X3NyY19yZWZyYWN0b3JfdG9vbGJveD0oKT0+e2NvbnN0IHM9Y3JlYXRlTmFtZXNwYWNlKFNfKTtyZXR1cm57cHJlZGljYXRlczp7Li4ubGUsaXNTdHJpbmdFbGVtZW50Okl1fSxuYW1lc3BhY2U6c319LGFwaWRvbV9uc19qc29uX3NjaGVtYV9kcmFmdF82X3NyY19yZWZyYWN0b3JfcmVmcmFjdD0ocyx7c3BlY1BhdGg6bz1bInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsIiR2aXNpdG9yIl0scGx1Z2luczppPVtdLHNwZWNpZmljYXRpb25PYmo6YT1tX309e30pPT57Y29uc3QgdT0oMCxTdS5lKShzKSxfPWRlcmVmZXJlbmNlKGEpLHc9bmV3KHRwKG8sXykpKHtzcGVjT2JqOl99KTtyZXR1cm4gdmlzaXRvcl92aXNpdCh1LHcpLGRpc3BhdGNoUGx1Z2luc1N5bmMody5lbGVtZW50LGkse3Rvb2xib3hDcmVhdG9yOmFwaWRvbV9uc19qc29uX3NjaGVtYV9kcmFmdF82X3NyY19yZWZyYWN0b3JfdG9vbGJveCx2aXNpdG9yT3B0aW9uczp7a2V5TWFwOmdfLG5vZGVUeXBlR2V0dGVyOnRyYXZlcnNhbF92aXNpdG9yX2dldE5vZGVUeXBlfX0pfSxhcGlkb21fbnNfanNvbl9zY2hlbWFfZHJhZnRfNl9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3Rvcj1zPT4obyxpPXt9KT0+YXBpZG9tX25zX2pzb25fc2NoZW1hX2RyYWZ0XzZfc3JjX3JlZnJhY3Rvcl9yZWZyYWN0KG8se3NwZWNQYXRoOnMsLi4uaX0pO3RfLnJlZnJhY3Q9YXBpZG9tX25zX2pzb25fc2NoZW1hX2RyYWZ0XzZfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCIkdmlzaXRvciJdKSxyXy5yZWZyYWN0PWFwaWRvbV9uc19qc29uX3NjaGVtYV9kcmFmdF82X3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rRGVzY3JpcHRpb24iLCIkdmlzaXRvciJdKTtjb25zdCBFXz1jbGFzcyBlbGVtZW50c19KU09OU2NoZW1hX0pTT05TY2hlbWEgZXh0ZW5kcyB0X3tjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0iSlNPTlNjaGVtYURyYWZ0NyJ9Z2V0ICRjb21tZW50KCl7cmV0dXJuIHRoaXMuZ2V0KCIkY29tbWVudCIpfXNldCAkY29tbWVudChzKXt0aGlzLnNldCgiJGNvbW1lbnQiLHMpfWdldCBpdGVtcygpe3JldHVybiB0aGlzLmdldCgiaXRlbXMiKX1zZXQgaXRlbXMocyl7dGhpcy5zZXQoIml0ZW1zIixzKX1nZXQgaWYoKXtyZXR1cm4gdGhpcy5nZXQoImlmIil9c2V0IGlmKHMpe3RoaXMuc2V0KCJpZiIscyl9Z2V0IHRoZW4oKXtyZXR1cm4gdGhpcy5nZXQoInRoZW4iKX1zZXQgdGhlbihzKXt0aGlzLnNldCgidGhlbiIscyl9Z2V0IGVsc2UoKXtyZXR1cm4gdGhpcy5nZXQoImVsc2UiKX1zZXQgZWxzZShzKXt0aGlzLnNldCgiZWxzZSIscyl9Z2V0IG5vdCgpe3JldHVybiB0aGlzLmdldCgibm90Iil9c2V0IG5vdChzKXt0aGlzLnNldCgibm90IixzKX1nZXQgY29udGVudEVuY29kaW5nKCl7cmV0dXJuIHRoaXMuZ2V0KCJjb250ZW50RW5jb2RpbmciKX1zZXQgY29udGVudEVuY29kaW5nKHMpe3RoaXMuc2V0KCJjb250ZW50RW5jb2RpbmciLHMpfWdldCBjb250ZW50TWVkaWFUeXBlKCl7cmV0dXJuIHRoaXMuZ2V0KCJjb250ZW50TWVkaWFUeXBlIil9c2V0IGNvbnRlbnRNZWRpYVR5cGUocyl7dGhpcy5zZXQoImNvbnRlbnRNZWRpYVR5cGUiLHMpfWdldCBtZWRpYSgpe3Rocm93IG5ldyBEaCgnbWVkaWEga2V5d29yZCBmcm9tIEh5cGVyLVNjaGVtYSB2b2NhYnVsYXJ5IGhhcyBiZWVuIG1vdmVkIHRvIHZhbGlkYXRpb24gdm9jYWJ1bGFyeSBhcyAiY29udGVudE1lZGlhVHlwZSIgLyAiY29udGVudEVuY29kaW5nIicpfXNldCBtZWRpYShzKXt0aHJvdyBuZXcgRGgoJ21lZGlhIGtleXdvcmQgZnJvbSBIeXBlci1TY2hlbWEgdm9jYWJ1bGFyeSBoYXMgYmVlbiBtb3ZlZCB0byB2YWxpZGF0aW9uIHZvY2FidWxhcnkgYXMgImNvbnRlbnRNZWRpYVR5cGUiIC8gImNvbnRlbnRFbmNvZGluZyInKX1nZXQgd3JpdGVPbmx5KCl7cmV0dXJuIHRoaXMuZ2V0KCJ3cml0ZU9ubHkiKX1zZXQgd3JpdGVPbmx5KHMpe3RoaXMuc2V0KCJ3cml0ZU9ubHkiLHMpfX07Y29uc3Qgd189Y2xhc3MgZWxlbWVudHNfTGlua0Rlc2NyaXB0aW9uX0xpbmtEZXNjcmlwdGlvbiBleHRlbmRzIHJfe2dldCBhbmNob3IoKXtyZXR1cm4gdGhpcy5nZXQoImFuY2hvciIpfXNldCBhbmNob3Iocyl7dGhpcy5zZXQoImFuY2hvciIscyl9Z2V0IGFuY2hvclBvaW50ZXIoKXtyZXR1cm4gdGhpcy5nZXQoImFuY2hvclBvaW50ZXIiKX1zZXQgYW5jaG9yUG9pbnRlcihzKXt0aGlzLnNldCgiYW5jaG9yUG9pbnRlciIscyl9Z2V0IHRlbXBsYXRlUG9pbnRlcnMoKXtyZXR1cm4gdGhpcy5nZXQoInRlbXBsYXRlUG9pbnRlcnMiKX1zZXQgdGVtcGxhdGVQb2ludGVycyhzKXt0aGlzLnNldCgidGVtcGxhdGVQb2ludGVycyIscyl9Z2V0IHRlbXBsYXRlUmVxdWlyZWQoKXtyZXR1cm4gdGhpcy5nZXQoInRlbXBsYXRlUmVxdWlyZWQiKX1zZXQgdGVtcGxhdGVSZXF1aXJlZChzKXt0aGlzLnNldCgidGVtcGxhdGVSZXF1aXJlZCIscyl9Z2V0IHRhcmdldFNjaGVtYSgpe3JldHVybiB0aGlzLmdldCgidGFyZ2V0U2NoZW1hIil9c2V0IHRhcmdldFNjaGVtYShzKXt0aGlzLnNldCgidGFyZ2V0U2NoZW1hIixzKX1nZXQgbWVkaWFUeXBlKCl7dGhyb3cgbmV3IERoKCJtZWRpYVR5cGUga2V5d29yZCBmcm9tIEh5cGVyLVNjaGVtYSB2b2NhYnVsYXJ5IGhhcyBiZWVuIHJlbmFtZWQgdG8gdGFyZ2V0TWVkaWFUeXBlLiIpfXNldCBtZWRpYVR5cGUocyl7dGhyb3cgbmV3IERoKCJtZWRpYVR5cGUga2V5d29yZCBmcm9tIEh5cGVyLVNjaGVtYSB2b2NhYnVsYXJ5IGhhcyBiZWVuIHJlbmFtZWQgdG8gdGFyZ2V0TWVkaWFUeXBlLiIpfWdldCB0YXJnZXRNZWRpYVR5cGUoKXtyZXR1cm4gdGhpcy5nZXQoInRhcmdldE1lZGlhVHlwZSIpfXNldCB0YXJnZXRNZWRpYVR5cGUocyl7dGhpcy5zZXQoInRhcmdldE1lZGlhVHlwZSIscyl9Z2V0IHRhcmdldEhpbnRzKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0YXJnZXRIaW50cyIpfXNldCB0YXJnZXRIaW50cyhzKXt0aGlzLnNldCgidGFyZ2V0SGludHMiLHMpfWdldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLmdldCgiZGVzY3JpcHRpb24iKX1zZXQgZGVzY3JpcHRpb24ocyl7dGhpcy5zZXQoImRlc2NyaXB0aW9uIixzKX1nZXQgJGNvbW1lbnQoKXtyZXR1cm4gdGhpcy5nZXQoIiRjb21tZW50Iil9c2V0ICRjb21tZW50KHMpe3RoaXMuc2V0KCIkY29tbWVudCIscyl9Z2V0IGhyZWZTY2hlbWEoKXtyZXR1cm4gdGhpcy5nZXQoImhyZWZTY2hlbWEiKX1zZXQgaHJlZlNjaGVtYShzKXt0aGlzLnNldCgiaHJlZlNjaGVtYSIscyl9Z2V0IGhlYWRlclNjaGVtYSgpe3JldHVybiB0aGlzLmdldCgiaGVhZGVyU2NoZW1hIil9c2V0IGhlYWRlclNjaGVtYShzKXt0aGlzLnNldCgiaGVhZGVyU2NoZW1hIixzKX1nZXQgc3VibWlzc2lvblNjaGVtYSgpe3JldHVybiB0aGlzLmdldCgic3VibWlzc2lvblNjaGVtYSIpfXNldCBzdWJtaXNzaW9uU2NoZW1hKHMpe3RoaXMuc2V0KCJzdWJtaXNzaW9uU2NoZW1hIixzKX1nZXQgc3VibWlzc2lvbkVuY1R5cGUoKXt0aHJvdyBuZXcgRGgoInN1Ym1pc3Npb25FbmNUeXBlIGtleXdvcmQgZnJvbSBIeXBlci1TY2hlbWEgdm9jYWJ1bGFyeSBoYXMgYmVlbiByZW5hbWVkIHRvIHN1Ym1pc3Npb25NZWRpYVR5cGUuIil9c2V0IHN1Ym1pc3Npb25FbmNUeXBlKHMpe3Rocm93IG5ldyBEaCgic3VibWlzc2lvbkVuY1R5cGUga2V5d29yZCBmcm9tIEh5cGVyLVNjaGVtYSB2b2NhYnVsYXJ5IGhhcyBiZWVuIHJlbmFtZWQgdG8gc3VibWlzc2lvbk1lZGlhVHlwZS4iKX1nZXQgc3VibWlzc2lvbk1lZGlhVHlwZSgpe3JldHVybiB0aGlzLmdldCgic3VibWlzc2lvbk1lZGlhVHlwZSIpfXNldCBzdWJtaXNzaW9uTWVkaWFUeXBlKHMpe3RoaXMuc2V0KCJzdWJtaXNzaW9uTWVkaWFUeXBlIixzKX19O2NvbnN0IHhfPWNsYXNzIHZpc2l0b3JzX2pzb25fc2NoZW1hX0pTT05TY2hlbWFWaXNpdG9yIGV4dGVuZHMgcF97Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBFX31nZXQgZGVmYXVsdERpYWxlY3RJZGVudGlmaWVyKCl7cmV0dXJuImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyJ9fTtjb25zdCBrXz1jbGFzcyBqc29uX3NjaGVtYV9saW5rX2Rlc2NyaXB0aW9uX0xpbmtEZXNjcmlwdGlvblZpc2l0b3IgZXh0ZW5kcyBmX3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IHdffX0sT189cGlwZShzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsIiR2aXNpdG9yIl0seF8pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCIkY29tbWVudCJdLG1fLnZpc2l0b3JzLnZhbHVlKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiaWYiXSxtXy52aXNpdG9ycy5KU09OU2NoZW1hT3JKU09OUmVmZXJlbmNlVmlzaXRvciksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsInRoZW4iXSxtXy52aXNpdG9ycy5KU09OU2NoZW1hT3JKU09OUmVmZXJlbmNlVmlzaXRvciksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsImVsc2UiXSxtXy52aXNpdG9ycy5KU09OU2NoZW1hT3JKU09OUmVmZXJlbmNlVmlzaXRvciksdV8oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsIm1lZGlhIl0pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJjb250ZW50RW5jb2RpbmciXSxtXy52aXNpdG9ycy52YWx1ZSksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsImNvbnRlbnRNZWRpYVR5cGUiXSxtXy52aXNpdG9ycy52YWx1ZSksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsIndyaXRlT25seSJdLG1fLnZpc2l0b3JzLnZhbHVlKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiJHZpc2l0b3IiXSxrXyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsImZpeGVkRmllbGRzIiwiYW5jaG9yIl0sbV8udmlzaXRvcnMudmFsdWUpLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rRGVzY3JpcHRpb24iLCJmaXhlZEZpZWxkcyIsImFuY2hvclBvaW50ZXIiXSxtXy52aXNpdG9ycy52YWx1ZSksdV8oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsImZpeGVkRmllbGRzIiwibWVkaWFUeXBlIl0pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rRGVzY3JpcHRpb24iLCJmaXhlZEZpZWxkcyIsInRhcmdldE1lZGlhVHlwZSJdLG1fLnZpc2l0b3JzLnZhbHVlKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiZml4ZWRGaWVsZHMiLCJ0YXJnZXRIaW50cyJdLG1fLnZpc2l0b3JzLnZhbHVlKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiZml4ZWRGaWVsZHMiLCJkZXNjcmlwdGlvbiJdLG1fLnZpc2l0b3JzLnZhbHVlKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiZml4ZWRGaWVsZHMiLCIkY29tbWVudCJdLG1fLnZpc2l0b3JzLnZhbHVlKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiZml4ZWRGaWVsZHMiLCJoZWFkZXJTY2hlbWEiXSxtXy52aXNpdG9ycy5KU09OU2NoZW1hT3JKU09OUmVmZXJlbmNlVmlzaXRvciksdV8oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsImZpeGVkRmllbGRzIiwic3VibWlzc2lvbkVuY1R5cGUiXSksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsImZpeGVkRmllbGRzIiwic3VibWlzc2lvbk1lZGlhVHlwZSJdLG1fLnZpc2l0b3JzLnZhbHVlKSkobV8pLENfPXtKU09OU2NoZW1hRHJhZnQ3RWxlbWVudDpbImNvbnRlbnQiXSxKU09OUmVmZXJlbmNlRWxlbWVudDpbImNvbnRlbnQiXSxMaW5rRGVzY3JpcHRpb25FbGVtZW50OlsiY29udGVudCJdLC4uLkt1fSxBXz1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIEVffHxzKGEpJiZvKCJKU09OU2NoZW1hRHJhZnQ3IixhKSYmaSgib2JqZWN0IixhKSkpLGpfPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2Ygd198fHMoYSkmJm8oImxpbmtEZXNjcmlwdGlvbiIsYSkmJmkoIm9iamVjdCIsYSkpKSxJXz17bmFtZXNwYWNlOnM9Pntjb25zdHtiYXNlOm99PXM7cmV0dXJuIG8ucmVnaXN0ZXIoImpTT05TY2hlbWFEcmFmdDciLEVfKSxvLnJlZ2lzdGVyKCJqU09OUmVmZXJlbmNlIixGaCksby5yZWdpc3RlcigibGlua0Rlc2NyaXB0aW9uIix3Xyksb319LFBfPUlfLGFwaWRvbV9uc19qc29uX3NjaGVtYV9kcmFmdF83X3NyY19yZWZyYWN0b3JfdG9vbGJveD0oKT0+e2NvbnN0IHM9Y3JlYXRlTmFtZXNwYWNlKFBfKTtyZXR1cm57cHJlZGljYXRlczp7Li4ucGUsaXNTdHJpbmdFbGVtZW50Okl1fSxuYW1lc3BhY2U6c319LGFwaWRvbV9uc19qc29uX3NjaGVtYV9kcmFmdF83X3NyY19yZWZyYWN0b3JfcmVmcmFjdD0ocyx7c3BlY1BhdGg6bz1bInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsIiR2aXNpdG9yIl0scGx1Z2luczppPVtdLHNwZWNpZmljYXRpb25PYmo6YT1PX309e30pPT57Y29uc3QgdT0oMCxTdS5lKShzKSxfPWRlcmVmZXJlbmNlKGEpLHc9bmV3KHRwKG8sXykpKHtzcGVjT2JqOl99KTtyZXR1cm4gdmlzaXRvcl92aXNpdCh1LHcpLGRpc3BhdGNoUGx1Z2luc1N5bmMody5lbGVtZW50LGkse3Rvb2xib3hDcmVhdG9yOmFwaWRvbV9uc19qc29uX3NjaGVtYV9kcmFmdF83X3NyY19yZWZyYWN0b3JfdG9vbGJveCx2aXNpdG9yT3B0aW9uczp7a2V5TWFwOkNfLG5vZGVUeXBlR2V0dGVyOnRyYXZlcnNhbF92aXNpdG9yX2dldE5vZGVUeXBlfX0pfSxhcGlkb21fbnNfanNvbl9zY2hlbWFfZHJhZnRfN19zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3Rvcj1zPT4obyxpPXt9KT0+YXBpZG9tX25zX2pzb25fc2NoZW1hX2RyYWZ0Xzdfc3JjX3JlZnJhY3Rvcl9yZWZyYWN0KG8se3NwZWNQYXRoOnMsLi4uaX0pO0VfLnJlZnJhY3Q9YXBpZG9tX25zX2pzb25fc2NoZW1hX2RyYWZ0Xzdfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCIkdmlzaXRvciJdKSx3Xy5yZWZyYWN0PWFwaWRvbV9uc19qc29uX3NjaGVtYV9kcmFmdF83X3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rRGVzY3JpcHRpb24iLCIkdmlzaXRvciJdKTtjb25zdCBUXz1jbGFzcyBzcmNfZWxlbWVudHNfSlNPTlNjaGVtYV9KU09OU2NoZW1hIGV4dGVuZHMgRV97Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9IkpTT05TY2hlbWEyMDE5MDkifWdldCAkdm9jYWJ1bGFyeSgpe3JldHVybiB0aGlzLmdldCgiJHZvY2FidWxhcnkiKX1zZXQgJHZvY2FidWxhcnkocyl7dGhpcy5zZXQoIiR2b2NhYnVsYXJ5IixzKX1nZXQgJGFuY2hvcigpe3JldHVybiB0aGlzLmdldCgiJGFuY2hvciIpfXNldCAkYW5jaG9yKHMpe3RoaXMuc2V0KCIkYW5jaG9yIixzKX1nZXQgJHJlY3Vyc2l2ZUFuY2hvcigpe3JldHVybiB0aGlzLmdldCgiJHJlY3Vyc2l2ZUFuY2hvciIpfXNldCAkcmVjdXJzaXZlQW5jaG9yKHMpe3RoaXMuc2V0KCIkcmVjdXJzaXZlQW5jaG9yIixzKX1nZXQgJHJlY3Vyc2l2ZVJlZigpe3JldHVybiB0aGlzLmdldCgiJHJlY3Vyc2l2ZVJlZiIpfXNldCAkcmVjdXJzaXZlUmVmKHMpe3RoaXMuc2V0KCIkcmVjdXJzaXZlUmVmIixzKX1nZXQgJHJlZigpe3JldHVybiB0aGlzLmdldCgiJHJlZiIpfXNldCAkcmVmKHMpe3RoaXMuc2V0KCIkcmVmIixzKX1nZXQgJGRlZnMoKXtyZXR1cm4gdGhpcy5nZXQoIiRkZWZzIil9c2V0ICRkZWZzKHMpe3RoaXMuc2V0KCIkZGVmcyIscyl9Z2V0IGRlZmluaXRpb25zKCl7dGhyb3cgbmV3IERoKCJkZWZpbml0aW9ucyBrZXl3b3JkIGZyb20gVmFsaWRhdGlvbiB2b2NhYnVsYXJ5IGhhcyBiZWVuIHJlbmFtZWQgdG8gJGRlZnMuIil9c2V0IGRlZmluaXRpb25zKHMpe3Rocm93IG5ldyBEaCgiZGVmaW5pdGlvbnMga2V5d29yZCBmcm9tIFZhbGlkYXRpb24gdm9jYWJ1bGFyeSBoYXMgYmVlbiByZW5hbWVkIHRvICRkZWZzLiIpfWdldCBub3QoKXtyZXR1cm4gdGhpcy5nZXQoIm5vdCIpfXNldCBub3Qocyl7dGhpcy5zZXQoIm5vdCIscyl9Z2V0IGlmKCl7cmV0dXJuIHRoaXMuZ2V0KCJpZiIpfXNldCBpZihzKXt0aGlzLnNldCgiaWYiLHMpfWdldCB0aGVuKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0aGVuIil9c2V0IHRoZW4ocyl7dGhpcy5zZXQoInRoZW4iLHMpfWdldCBlbHNlKCl7cmV0dXJuIHRoaXMuZ2V0KCJlbHNlIil9c2V0IGVsc2Uocyl7dGhpcy5zZXQoImVsc2UiLHMpfWdldCBkZXBlbmRlbnRTY2hlbWFzKCl7cmV0dXJuIHRoaXMuZ2V0KCJkZXBlbmRlbnRTY2hlbWFzIil9c2V0IGRlcGVuZGVudFNjaGVtYXMocyl7dGhpcy5zZXQoImRlcGVuZGVudFNjaGVtYXMiLHMpfWdldCBkZXBlbmRlbmNpZXMoKXt0aHJvdyBuZXcgRGgoImRlcGVuZGVuY2llcyBrZXl3b3JkIGZyb20gVmFsaWRhdGlvbiB2b2NhYnVsYXJ5IGhhcyBiZWVuIHJlbmFtZWQgdG8gZGVwZW5kZW50U2NoZW1hcy4iKX1zZXQgZGVwZW5kZW5jaWVzKHMpe3Rocm93IG5ldyBEaCgiZGVwZW5kZW5jaWVzIGtleXdvcmQgZnJvbSBWYWxpZGF0aW9uIHZvY2FidWxhcnkgaGFzIGJlZW4gcmVuYW1lZCB0byBkZXBlbmRlbnRTY2hlbWFzLiIpfWdldCBpdGVtcygpe3JldHVybiB0aGlzLmdldCgiaXRlbXMiKX1zZXQgaXRlbXMocyl7dGhpcy5zZXQoIml0ZW1zIixzKX1nZXQgY29udGFpbnNQcm9wKCl7cmV0dXJuIHRoaXMuZ2V0KCJjb250YWlucyIpfXNldCBjb250YWluc1Byb3Aocyl7dGhpcy5zZXQoImNvbnRhaW5zIixzKX1nZXQgYWRkaXRpb25hbFByb3BlcnRpZXMoKXtyZXR1cm4gdGhpcy5nZXQoImFkZGl0aW9uYWxQcm9wZXJ0aWVzIil9c2V0IGFkZGl0aW9uYWxQcm9wZXJ0aWVzKHMpe3RoaXMuc2V0KCJhZGRpdGlvbmFsUHJvcGVydGllcyIscyl9Z2V0IGFkZGl0aW9uYWxJdGVtcygpe3JldHVybiB0aGlzLmdldCgiYWRkaXRpb25hbEl0ZW1zIil9c2V0IGFkZGl0aW9uYWxJdGVtcyhzKXt0aGlzLnNldCgiYWRkaXRpb25hbEl0ZW1zIixzKX1nZXQgcHJvcGVydHlOYW1lcygpe3JldHVybiB0aGlzLmdldCgicHJvcGVydHlOYW1lcyIpfXNldCBwcm9wZXJ0eU5hbWVzKHMpe3RoaXMuc2V0KCJwcm9wZXJ0eU5hbWVzIixzKX1nZXQgdW5ldmFsdWF0ZWRJdGVtcygpe3JldHVybiB0aGlzLmdldCgidW5ldmFsdWF0ZWRJdGVtcyIpfXNldCB1bmV2YWx1YXRlZEl0ZW1zKHMpe3RoaXMuc2V0KCJ1bmV2YWx1YXRlZEl0ZW1zIixzKX1nZXQgdW5ldmFsdWF0ZWRQcm9wZXJ0aWVzKCl7cmV0dXJuIHRoaXMuZ2V0KCJ1bmV2YWx1YXRlZFByb3BlcnRpZXMiKX1zZXQgdW5ldmFsdWF0ZWRQcm9wZXJ0aWVzKHMpe3RoaXMuc2V0KCJ1bmV2YWx1YXRlZFByb3BlcnRpZXMiLHMpfWdldCBtYXhDb250YWlucygpe3JldHVybiB0aGlzLmdldCgibWF4Q29udGFpbnMiKX1zZXQgbWF4Q29udGFpbnMocyl7dGhpcy5zZXQoIm1heENvbnRhaW5zIixzKX1nZXQgbWluQ29udGFpbnMoKXtyZXR1cm4gdGhpcy5nZXQoIm1pbkNvbnRhaW5zIil9c2V0IG1pbkNvbnRhaW5zKHMpe3RoaXMuc2V0KCJtaW5Db250YWlucyIscyl9Z2V0IGRlcGVuZGVudFJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuZ2V0KCJkZXBlbmRlbnRSZXF1aXJlZCIpfXNldCBkZXBlbmRlbnRSZXF1aXJlZChzKXt0aGlzLnNldCgiZGVwZW5kZW50UmVxdWlyZWQiLHMpfWdldCBkZXByZWNhdGVkKCl7cmV0dXJuIHRoaXMuZ2V0KCJkZXByZWNhdGVkIil9c2V0IGRlcHJlY2F0ZWQocyl7dGhpcy5zZXQoImRlcHJlY2F0ZWQiLHMpfWdldCBjb250ZW50U2NoZW1hKCl7cmV0dXJuIHRoaXMuZ2V0KCJjb250ZW50U2NoZW1hIil9c2V0IGNvbnRlbnRTY2hlbWEocyl7dGhpcy5zZXQoImNvbnRlbnRTY2hlbWEiLHMpfX07Y29uc3QgTl89Y2xhc3Mgc3JjX2VsZW1lbnRzX0xpbmtEZXNjcmlwdGlvbl9MaW5rRGVzY3JpcHRpb24gZXh0ZW5kcyB3X3tnZXQgdGFyZ2V0U2NoZW1hKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0YXJnZXRTY2hlbWEiKX1zZXQgdGFyZ2V0U2NoZW1hKHMpe3RoaXMuc2V0KCJ0YXJnZXRTY2hlbWEiLHMpfWdldCBocmVmU2NoZW1hKCl7cmV0dXJuIHRoaXMuZ2V0KCJocmVmU2NoZW1hIil9c2V0IGhyZWZTY2hlbWEocyl7dGhpcy5zZXQoImhyZWZTY2hlbWEiLHMpfWdldCBoZWFkZXJTY2hlbWEoKXtyZXR1cm4gdGhpcy5nZXQoImhlYWRlclNjaGVtYSIpfXNldCBoZWFkZXJTY2hlbWEocyl7dGhpcy5zZXQoImhlYWRlclNjaGVtYSIscyl9Z2V0IHN1Ym1pc3Npb25TY2hlbWEoKXtyZXR1cm4gdGhpcy5nZXQoInN1Ym1pc3Npb25TY2hlbWEiKX1zZXQgc3VibWlzc2lvblNjaGVtYShzKXt0aGlzLnNldCgic3VibWlzc2lvblNjaGVtYSIscyl9fTtjb25zdCBNXz1jbGFzcyByZWZyYWN0b3JfdmlzaXRvcnNfanNvbl9zY2hlbWFfSlNPTlNjaGVtYVZpc2l0b3IgZXh0ZW5kcyB4X3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFRffWdldCBkZWZhdWx0RGlhbGVjdElkZW50aWZpZXIoKXtyZXR1cm4iaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAxOS0wOS9zY2hlbWEifU9iamVjdEVsZW1lbnQocyl7dGhpcy5oYW5kbGVEaWFsZWN0SWRlbnRpZmllcihzKSx0aGlzLmhhbmRsZVNjaGVtYUlkZW50aWZpZXIocyksdGhpcy5wYXJlbnQ9dGhpcy5lbGVtZW50O2NvbnN0IG89RGQucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiBJdSh0aGlzLmVsZW1lbnQuJHJlZikmJih0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJyZWZlcmVuY2UtZWxlbWVudCIpLHRoaXMuZWxlbWVudC5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsInNjaGVtYSIpKSxvfX07Y29uc3QgUl89Y2xhc3MgJHZvY2FidWxhcnlWaXNpdG9yIGV4dGVuZHMgX2R7T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPXN1cGVyLmVudGVyKHMpO3JldHVybiB0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJqc29uLXNjaGVtYS0kdm9jYWJ1bGFyeSIpLG99fTtjb25zdCBEXz1jbGFzcyAkcmVmVmlzaXRvciBleHRlbmRzIF9ke1N0cmluZ0VsZW1lbnQocyl7Y29uc3Qgbz1zdXBlci5lbnRlcihzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgicmVmZXJlbmNlLXZhbHVlIiksb319O2NsYXNzICRkZWZzVmlzaXRvciBleHRlbmRzKE1peGluKEtkLExkLF9kKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBTdS5TaCx0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJqc29uLXNjaGVtYS0kZGVmcyIpLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIl0pfX1jb25zdCBMXz0kZGVmc1Zpc2l0b3I7Y2xhc3MganNvbl9zY2hlbWFfQWxsT2ZWaXNpdG9yX0FsbE9mVmlzaXRvciBleHRlbmRzKE1peGluKFJkLExkLF9kKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBTdS53RSx0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJqc29uLXNjaGVtYS1hbGxPZiIpfUFycmF5RWxlbWVudChzKXtyZXR1cm4gcy5mb3JFYWNoKChzPT57Y29uc3Qgbz10aGlzLnRvUmVmcmFjdGVkRWxlbWVudChbImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiXSxzKTt0aGlzLmVsZW1lbnQucHVzaChvKX0pKSx0aGlzLmNvcHlNZXRhQW5kQXR0cmlidXRlcyhzLHRoaXMuZWxlbWVudCksVXV9fWNvbnN0IEZfPWpzb25fc2NoZW1hX0FsbE9mVmlzaXRvcl9BbGxPZlZpc2l0b3I7Y2xhc3MganNvbl9zY2hlbWFfQW55T2ZWaXNpdG9yX0FueU9mVmlzaXRvciBleHRlbmRzKE1peGluKFJkLExkLF9kKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBTdS53RSx0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJqc29uLXNjaGVtYS1hbnlPZiIpfUFycmF5RWxlbWVudChzKXtyZXR1cm4gcy5mb3JFYWNoKChzPT57Y29uc3Qgbz10aGlzLnRvUmVmcmFjdGVkRWxlbWVudChbImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiXSxzKTt0aGlzLmVsZW1lbnQucHVzaChvKX0pKSx0aGlzLmNvcHlNZXRhQW5kQXR0cmlidXRlcyhzLHRoaXMuZWxlbWVudCksVXV9fWNvbnN0IEJfPWpzb25fc2NoZW1hX0FueU9mVmlzaXRvcl9BbnlPZlZpc2l0b3I7Y2xhc3MganNvbl9zY2hlbWFfT25lT2ZWaXNpdG9yX09uZU9mVmlzaXRvciBleHRlbmRzKE1peGluKFJkLExkLF9kKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBTdS53RSx0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJqc29uLXNjaGVtYS1vbmVPZiIpfUFycmF5RWxlbWVudChzKXtyZXR1cm4gcy5mb3JFYWNoKChzPT57Y29uc3Qgbz10aGlzLnRvUmVmcmFjdGVkRWxlbWVudChbImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiXSxzKTt0aGlzLmVsZW1lbnQucHVzaChvKX0pKSx0aGlzLmNvcHlNZXRhQW5kQXR0cmlidXRlcyhzLHRoaXMuZWxlbWVudCksVXV9fWNvbnN0ICRfPWpzb25fc2NoZW1hX09uZU9mVmlzaXRvcl9PbmVPZlZpc2l0b3I7Y2xhc3MgRGVwZW5kZW50U2NoZW1hc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihLZCxMZCxfZCkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgU3UuU2gsdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgianNvbi1zY2hlbWEtZGVwZW5kZW50U2NoZW1hcyIpLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIl0pfX1jb25zdCBxXz1EZXBlbmRlbnRTY2hlbWFzVmlzaXRvcjtjbGFzcyB2aXNpdG9yc19qc29uX3NjaGVtYV9JdGVtc1Zpc2l0b3JfSXRlbXNWaXNpdG9yIGV4dGVuZHMoTWl4aW4oUmQsTGQsX2QpKXtPYmplY3RFbGVtZW50KHMpe3JldHVybiB0aGlzLmVsZW1lbnQ9dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIl0scyksVXV9QXJyYXlFbGVtZW50KHMpe3JldHVybiB0aGlzLmVsZW1lbnQ9bmV3IFN1LndFLHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goImpzb24tc2NoZW1hLWl0ZW1zIikscy5mb3JFYWNoKChzPT57Y29uc3Qgbz10aGlzLnRvUmVmcmFjdGVkRWxlbWVudChbImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiXSxzKTt0aGlzLmVsZW1lbnQucHVzaChvKX0pKSx0aGlzLmNvcHlNZXRhQW5kQXR0cmlidXRlcyhzLHRoaXMuZWxlbWVudCksVXV9Qm9vbGVhbkVsZW1lbnQocyl7cmV0dXJuIHRoaXMuZWxlbWVudD10aGlzLnRvUmVmcmFjdGVkRWxlbWVudChbImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiXSxzKSxVdX19Y29uc3QgVl89dmlzaXRvcnNfanNvbl9zY2hlbWFfSXRlbXNWaXNpdG9yX0l0ZW1zVmlzaXRvcjtjbGFzcyBqc29uX3NjaGVtYV9Qcm9wZXJ0aWVzVmlzaXRvcl9Qcm9wZXJ0aWVzVmlzaXRvciBleHRlbmRzKE1peGluKEtkLExkLF9kKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBTdS5TaCx0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJqc29uLXNjaGVtYS1wcm9wZXJ0aWVzIiksdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiXSl9fWNvbnN0IFVfPWpzb25fc2NoZW1hX1Byb3BlcnRpZXNWaXNpdG9yX1Byb3BlcnRpZXNWaXNpdG9yO2NsYXNzIFBhdHRlcm5Qcm9wZXJ0aWVzVmlzaXRvcl9QYXR0ZXJuUHJvcGVydGllc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihLZCxMZCxfZCkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgU3UuU2gsdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgianNvbi1zY2hlbWEtcGF0dGVyblByb3BlcnRpZXMiKSx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSJdKX19Y29uc3Qgel89UGF0dGVyblByb3BlcnRpZXNWaXNpdG9yX1BhdHRlcm5Qcm9wZXJ0aWVzVmlzaXRvcjtjb25zdCBXXz1jbGFzcyBEZXBlbmRlbnRSZXF1aXJlZFZpc2l0b3IgZXh0ZW5kcyBfZHtPYmplY3RFbGVtZW50KHMpe2NvbnN0IG89c3VwZXIuZW50ZXIocyk7cmV0dXJuIHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goImpzb24tc2NoZW1hLWRlcGVuZGVudFJlcXVpcmVkIiksb319O2NvbnN0IEpfPWNsYXNzIHZpc2l0b3JzX2pzb25fc2NoZW1hX2xpbmtfZGVzY3JpcHRpb25fTGlua0Rlc2NyaXB0aW9uVmlzaXRvciBleHRlbmRzIGtfe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgTl99fSxIXz1waXBlKHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiJHZpc2l0b3IiXSxNXyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsIiR2b2NhYnVsYXJ5Il0sUl8pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCIkYW5jaG9yIl0sT18udmlzaXRvcnMudmFsdWUpLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCIkcmVjdXJzaXZlQW5jaG9yIl0sT18udmlzaXRvcnMudmFsdWUpLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCIkcmVjdXJzaXZlUmVmIl0sT18udmlzaXRvcnMudmFsdWUpLHVfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OUmVmZXJlbmNlIiwiJHZpc2l0b3IiXSksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsIiRyZWYiXSxEXyksdV8oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsImRlZmluaXRpb25zIl0pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCIkZGVmcyJdLExfKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiYWxsT2YiXSxGXyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsImFueU9mIl0sQl8pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJvbmVPZiJdLCRfKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwibm90Il0sTV8pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJpZiJdLE1fKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwidGhlbiJdLE1fKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiZWxzZSJdLE1fKSx1XyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiZGVwZW5kZW5jaWVzIl0pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJkZXBlbmRlbnRTY2hlbWFzIl0scV8pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJpdGVtcyJdLFZfKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiY29udGFpbnMiXSxNXyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsInByb3BlcnRpZXMiXSxVXyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsInBhdHRlcm5Qcm9wZXJ0aWVzIl0sel8pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJhZGRpdGlvbmFsUHJvcGVydGllcyJdLE1fKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiYWRkaXRpb25hbEl0ZW1zIl0sTV8pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJwcm9wZXJ0eU5hbWVzIl0sTV8pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJ1bmV2YWx1YXRlZEl0ZW1zIl0sTV8pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJ1bmV2YWx1YXRlZFByb3BlcnRpZXMiXSxNXyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsIm1heENvbnRhaW5zIl0sT18udmlzaXRvcnMudmFsdWUpLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJtaW5Db250YWlucyJdLE9fLnZpc2l0b3JzLnZhbHVlKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiZGVwZW5kZW50UmVxdWlyZWQiXSxXXyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsImRlcHJlY2F0ZWQiXSxPXy52aXNpdG9ycy52YWx1ZSksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsImNvbnRlbnRTY2hlbWEiXSxNXyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsIiR2aXNpdG9yIl0sSl8pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rRGVzY3JpcHRpb24iLCJmaXhlZEZpZWxkcyIsInRhcmdldFNjaGVtYSJdLE1fKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiZml4ZWRGaWVsZHMiLCJocmVmU2NoZW1hIl0sTV8pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rRGVzY3JpcHRpb24iLCJmaXhlZEZpZWxkcyIsImhlYWRlclNjaGVtYSJdLE1fKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiZml4ZWRGaWVsZHMiLCJzdWJtaXNzaW9uU2NoZW1hIl0sTV8pKShPXyksS189e0pTT05TY2hlbWEyMDE5MDlFbGVtZW50OlsiY29udGVudCJdLExpbmtEZXNjcmlwdGlvbkVsZW1lbnQ6WyJjb250ZW50Il0sLi4uS3V9LEdfPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgVF98fHMoYSkmJm8oIkpTT05TY2hlbWEyMDE5MDkiLGEpJiZpKCJvYmplY3QiLGEpKSksWV89aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBOX3x8cyhhKSYmbygibGlua0Rlc2NyaXB0aW9uIixhKSYmaSgib2JqZWN0IixhKSkpLFhfPXtuYW1lc3BhY2U6cz0+e2NvbnN0e2Jhc2U6b309cztyZXR1cm4gby5yZWdpc3RlcigialNPTlNjaGVtYTIwMTkwOSIsVF8pLG8ucmVnaXN0ZXIoImxpbmtEZXNjcmlwdGlvbiIsTl8pLG99fSxRXz1YXyxhcGlkb21fbnNfanNvbl9zY2hlbWFfMjAxOV8wOV9zcmNfcmVmcmFjdG9yX3Rvb2xib3g9KCk9Pntjb25zdCBzPWNyZWF0ZU5hbWVzcGFjZShRXyk7cmV0dXJue3ByZWRpY2F0ZXM6ey4uLmRlLGlzU3RyaW5nRWxlbWVudDpJdX0sbmFtZXNwYWNlOnN9fSxhcGlkb21fbnNfanNvbl9zY2hlbWFfMjAxOV8wOV9zcmNfcmVmcmFjdG9yX3JlZnJhY3Q9KHMse3NwZWNQYXRoOm89WyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCIkdmlzaXRvciJdLHBsdWdpbnM6aT1bXSxzcGVjaWZpY2F0aW9uT2JqOmE9SF99PXt9KT0+e2NvbnN0IHU9KDAsU3UuZSkocyksXz1kZXJlZmVyZW5jZShhKSx3PW5ldyh0cChvLF8pKSh7c3BlY09iajpffSk7cmV0dXJuIHZpc2l0b3JfdmlzaXQodSx3KSxkaXNwYXRjaFBsdWdpbnNTeW5jKHcuZWxlbWVudCxpLHt0b29sYm94Q3JlYXRvcjphcGlkb21fbnNfanNvbl9zY2hlbWFfMjAxOV8wOV9zcmNfcmVmcmFjdG9yX3Rvb2xib3gsdmlzaXRvck9wdGlvbnM6e2tleU1hcDpLXyxub2RlVHlwZUdldHRlcjp0cmF2ZXJzYWxfdmlzaXRvcl9nZXROb2RlVHlwZX19KX0sYXBpZG9tX25zX2pzb25fc2NoZW1hXzIwMTlfMDlfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3I9cz0+KG8saT17fSk9PmFwaWRvbV9uc19qc29uX3NjaGVtYV8yMDE5XzA5X3NyY19yZWZyYWN0b3JfcmVmcmFjdChvLHtzcGVjUGF0aDpzLC4uLml9KTtUXy5yZWZyYWN0PWFwaWRvbV9uc19qc29uX3NjaGVtYV8yMDE5XzA5X3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiJHZpc2l0b3IiXSksTl8ucmVmcmFjdD1hcGlkb21fbnNfanNvbl9zY2hlbWFfMjAxOV8wOV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiJHZpc2l0b3IiXSk7Y29uc3QgWl89Y2xhc3MgYXBpZG9tX25zX2pzb25fc2NoZW1hXzIwMjBfMTJfc3JjX2VsZW1lbnRzX0pTT05TY2hlbWFfSlNPTlNjaGVtYSBleHRlbmRzIFRfe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJKU09OU2NoZW1hMjAyMDEyIn1nZXQgJGR5bmFtaWNBbmNob3IoKXtyZXR1cm4gdGhpcy5nZXQoIiRkeW5hbWljQW5jaG9yIil9c2V0ICRkeW5hbWljQW5jaG9yKHMpe3RoaXMuc2V0KCIkZHluYW1pY0FuY2hvciIscyl9Z2V0ICRyZWN1cnNpdmVBbmNob3IoKXt0aHJvdyBuZXcgRGgoIiRyZWN1cnNpdmVBbmNob3Iga2V5d29yZCBmcm9tIENvcmUgdm9jYWJ1bGFyeSBoYXMgYmVlbiByZW5hbWVkIHRvICRkeW5hbWljQW5jaG9yLiIpfXNldCAkcmVjdXJzaXZlQW5jaG9yKHMpe3Rocm93IG5ldyBEaCgiJHJlY3Vyc2l2ZUFuY2hvciBrZXl3b3JkIGZyb20gQ29yZSB2b2NhYnVsYXJ5IGhhcyBiZWVuIHJlbmFtZWQgdG8gJGR5bmFtaWNBbmNob3IuIil9Z2V0ICRkeW5hbWljUmVmKCl7cmV0dXJuIHRoaXMuZ2V0KCIkZHluYW1pY1JlZiIpfXNldCAkZHluYW1pY1JlZihzKXt0aGlzLnNldCgiJGR5bmFtaWNSZWYiLHMpfWdldCAkcmVjdXJzaXZlUmVmKCl7dGhyb3cgbmV3IERoKCIkcmVjdXJzaXZlUmVmIGtleXdvcmQgZnJvbSBDb3JlIHZvY2FidWxhcnkgaGFzIGJlZW4gcmVuYW1lZCB0byAkZHluYW1pY1JlZi4iKX1zZXQgJHJlY3Vyc2l2ZVJlZihzKXt0aHJvdyBuZXcgRGgoIiRyZWN1cnNpdmVSZWYga2V5d29yZCBmcm9tIENvcmUgdm9jYWJ1bGFyeSBoYXMgYmVlbiByZW5hbWVkIHRvICRkeW5hbWljUmVmLiIpfWdldCBwcmVmaXhJdGVtcygpe3JldHVybiB0aGlzLmdldCgicHJlZml4SXRlbXMiKX1zZXQgcHJlZml4SXRlbXMocyl7dGhpcy5zZXQoInByZWZpeEl0ZW1zIixzKX19O2NvbnN0IGVTPWNsYXNzIGFwaWRvbV9uc19qc29uX3NjaGVtYV8yMDIwXzEyX3NyY19lbGVtZW50c19MaW5rRGVzY3JpcHRpb25fTGlua0Rlc2NyaXB0aW9uIGV4dGVuZHMgTl97Z2V0IHRhcmdldFNjaGVtYSgpe3JldHVybiB0aGlzLmdldCgidGFyZ2V0U2NoZW1hIil9c2V0IHRhcmdldFNjaGVtYShzKXt0aGlzLnNldCgidGFyZ2V0U2NoZW1hIixzKX1nZXQgaHJlZlNjaGVtYSgpe3JldHVybiB0aGlzLmdldCgiaHJlZlNjaGVtYSIpfXNldCBocmVmU2NoZW1hKHMpe3RoaXMuc2V0KCJocmVmU2NoZW1hIixzKX1nZXQgaGVhZGVyU2NoZW1hKCl7cmV0dXJuIHRoaXMuZ2V0KCJoZWFkZXJTY2hlbWEiKX1zZXQgaGVhZGVyU2NoZW1hKHMpe3RoaXMuc2V0KCJoZWFkZXJTY2hlbWEiLHMpfWdldCBzdWJtaXNzaW9uU2NoZW1hKCl7cmV0dXJuIHRoaXMuZ2V0KCJzdWJtaXNzaW9uU2NoZW1hIil9c2V0IHN1Ym1pc3Npb25TY2hlbWEocyl7dGhpcy5zZXQoInN1Ym1pc3Npb25TY2hlbWEiLHMpfX07Y29uc3QgdFM9Y2xhc3Mgc3JjX3JlZnJhY3Rvcl92aXNpdG9yc19qc29uX3NjaGVtYV9KU09OU2NoZW1hVmlzaXRvciBleHRlbmRzIE1fe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgWl99Z2V0IGRlZmF1bHREaWFsZWN0SWRlbnRpZmllcigpe3JldHVybiJodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3NjaGVtYSJ9fTtjbGFzcyBQcmVmaXhJdGVtc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihSZCxMZCxfZCkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgU3Uud0UsdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgianNvbi1zY2hlbWEtcHJlZml4SXRlbXMiKX1BcnJheUVsZW1lbnQocyl7cmV0dXJuIHMuZm9yRWFjaCgocz0+e2NvbnN0IG89dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIl0scyk7dGhpcy5lbGVtZW50LnB1c2gobyl9KSksdGhpcy5jb3B5TWV0YUFuZEF0dHJpYnV0ZXMocyx0aGlzLmVsZW1lbnQpLFV1fX1jb25zdCByUz1QcmVmaXhJdGVtc1Zpc2l0b3I7Y29uc3QgblM9Y2xhc3MgcmVmcmFjdG9yX3Zpc2l0b3JzX2pzb25fc2NoZW1hX2xpbmtfZGVzY3JpcHRpb25fTGlua0Rlc2NyaXB0aW9uVmlzaXRvciBleHRlbmRzIEpfe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgZVN9fSxzUz1waXBlKHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiJHZpc2l0b3IiXSx0UyksdV8oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsIiRyZWN1cnNpdmVBbmNob3IiXSksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsIiRkeW5hbWljQW5jaG9yIl0sSF8udmlzaXRvcnMudmFsdWUpLHVfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCIkcmVjdXJzaXZlUmVmIl0pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCIkZHluYW1pY1JlZiJdLEhfLnZpc2l0b3JzLnZhbHVlKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwibm90Il0sdFMpLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJpZiJdLHRTKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwidGhlbiJdLHRTKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiZWxzZSJdLHRTKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwicHJlZml4SXRlbXMiXSxyUyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsIml0ZW1zIl0sdFMpLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJjb250YWlucyJdLHRTKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiXSx0UyksdV8oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsImFkZGl0aW9uYWxJdGVtcyJdKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwicHJvcGVydHlOYW1lcyJdLHRTKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwidW5ldmFsdWF0ZWRJdGVtcyJdLHRTKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwidW5ldmFsdWF0ZWRQcm9wZXJ0aWVzIl0sdFMpLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJjb250ZW50U2NoZW1hIl0sdFMpLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rRGVzY3JpcHRpb24iLCIkdmlzaXRvciJdLG5TKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiZml4ZWRGaWVsZHMiLCJ0YXJnZXRTY2hlbWEiXSx0Uyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsImZpeGVkRmllbGRzIiwiaHJlZlNjaGVtYSJdLHRTKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiZml4ZWRGaWVsZHMiLCJoZWFkZXJTY2hlbWEiXSx0Uyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsImZpeGVkRmllbGRzIiwic3VibWlzc2lvblNjaGVtYSJdLHRTKSkoSF8pLG9TPXtKU09OU2NoZW1hMjAyMDEyRWxlbWVudDpbImNvbnRlbnQiXSxMaW5rRGVzY3JpcHRpb25FbGVtZW50OlsiY29udGVudCJdLC4uLkt1fSxpUz1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIFpffHxzKGEpJiZvKCJKU09OU2NoZW1hMjAyMDEyIixhKSYmaSgib2JqZWN0IixhKSkpLGFTPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgZVN8fHMoYSkmJm8oImxpbmtEZXNjcmlwdGlvbiIsYSkmJmkoIm9iamVjdCIsYSkpKSxjUz17bmFtZXNwYWNlOnM9Pntjb25zdHtiYXNlOm99PXM7cmV0dXJuIG8ucmVnaXN0ZXIoImpTT05TY2hlbWEyMDIwMTIiLFpfKSxvLnJlZ2lzdGVyKCJsaW5rRGVzY3JpcHRpb24iLGVTKSxvfX0sbFM9Y1MsYXBpZG9tX25zX2pzb25fc2NoZW1hXzIwMjBfMTJfc3JjX3JlZnJhY3Rvcl90b29sYm94PSgpPT57Y29uc3Qgcz1jcmVhdGVOYW1lc3BhY2UobFMpO3JldHVybntwcmVkaWNhdGVzOnsuLi5mZSxpc1N0cmluZ0VsZW1lbnQ6SXV9LG5hbWVzcGFjZTpzfX0sYXBpZG9tX25zX2pzb25fc2NoZW1hXzIwMjBfMTJfc3JjX3JlZnJhY3Rvcl9yZWZyYWN0PShzLHtzcGVjUGF0aDpvPVsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiJHZpc2l0b3IiXSxwbHVnaW5zOmk9W10sc3BlY2lmaWNhdGlvbk9iajphPXNTfT17fSk9Pntjb25zdCB1PSgwLFN1LmUpKHMpLF89ZGVyZWZlcmVuY2UoYSksdz1uZXcodHAobyxfKSkoe3NwZWNPYmo6X30pO3JldHVybiB2aXNpdG9yX3Zpc2l0KHUsdyksZGlzcGF0Y2hQbHVnaW5zU3luYyh3LmVsZW1lbnQsaSx7dG9vbGJveENyZWF0b3I6YXBpZG9tX25zX2pzb25fc2NoZW1hXzIwMjBfMTJfc3JjX3JlZnJhY3Rvcl90b29sYm94LHZpc2l0b3JPcHRpb25zOntrZXlNYXA6b1Msbm9kZVR5cGVHZXR0ZXI6dHJhdmVyc2FsX3Zpc2l0b3JfZ2V0Tm9kZVR5cGV9fSl9LGFwaWRvbV9uc19qc29uX3NjaGVtYV8yMDIwXzEyX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yPXM9PihvLGk9e30pPT5hcGlkb21fbnNfanNvbl9zY2hlbWFfMjAyMF8xMl9zcmNfcmVmcmFjdG9yX3JlZnJhY3Qobyx7c3BlY1BhdGg6cywuLi5pfSk7Wl8ucmVmcmFjdD1hcGlkb21fbnNfanNvbl9zY2hlbWFfMjAyMF8xMl9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsIiR2aXNpdG9yIl0pLGVTLnJlZnJhY3Q9YXBpZG9tX25zX2pzb25fc2NoZW1hXzIwMjBfMTJfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsIiR2aXNpdG9yIl0pO2NvbnN0IHVTPWNsYXNzIGVsZW1lbnRzX1NjaGVtYV9TY2hlbWEgZXh0ZW5kcyBaX3tjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0ic2NoZW1hIn1nZXQgZGlzY3JpbWluYXRvcigpe3JldHVybiB0aGlzLmdldCgiZGlzY3JpbWluYXRvciIpfXNldCBkaXNjcmltaW5hdG9yKHMpe3RoaXMuc2V0KCJkaXNjcmltaW5hdG9yIixzKX1nZXQgeG1sKCl7cmV0dXJuIHRoaXMuZ2V0KCJ4bWwiKX1zZXQgeG1sKHMpe3RoaXMuc2V0KCJ4bWwiLHMpfWdldCBleHRlcm5hbERvY3MoKXtyZXR1cm4gdGhpcy5nZXQoImV4dGVybmFsRG9jcyIpfXNldCBleHRlcm5hbERvY3Mocyl7dGhpcy5zZXQoImV4dGVybmFsRG9jcyIscyl9Z2V0IGV4YW1wbGUoKXtyZXR1cm4gdGhpcy5nZXQoImV4YW1wbGUiKX1zZXQgZXhhbXBsZShzKXt0aGlzLnNldCgiZXhhbXBsZSIscyl9fTtjb25zdCBwUz1jbGFzcyBTZWN1cml0eVJlcXVpcmVtZW50X1NlY3VyaXR5UmVxdWlyZW1lbnQgZXh0ZW5kcyBKZnt9O2NvbnN0IGhTPWNsYXNzIFNlY3VyaXR5U2NoZW1lX1NlY3VyaXR5U2NoZW1lIGV4dGVuZHMgSGZ7fTtjb25zdCBkUz1jbGFzcyBTZXJ2ZXJfU2VydmVyIGV4dGVuZHMgR2Z7fTtjb25zdCBmUz1jbGFzcyBTZXJ2ZXJWYXJpYWJsZV9TZXJ2ZXJWYXJpYWJsZSBleHRlbmRzIFhme307Y29uc3QgbVM9Y2xhc3MgVGFnX1RhZyBleHRlbmRzIFFme307Y29uc3QgZ1M9Y2xhc3MgWG1sX1htbCBleHRlbmRzIGVte307Y2xhc3MgT3BlbkFwaTNfMVZpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgSWIsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIk9wZW5BcGkiXSksdGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM9ITAsdGhpcy5vcGVuQXBpU2VtYW50aWNFbGVtZW50PXRoaXMuZWxlbWVudH1PYmplY3RFbGVtZW50KHMpe3JldHVybiB0aGlzLm9wZW5BcGlHZW5lcmljRWxlbWVudD1zLHVtLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKX19Y29uc3QgeVM9T3BlbkFwaTNfMVZpc2l0b3IsdlM9V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5JbmZvLiR2aXNpdG9yO2NvbnN0IGJTPWNsYXNzIGluZm9fSW5mb1Zpc2l0b3IgZXh0ZW5kcyB2U3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IHBifX0sX1M9V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5Db250YWN0LiR2aXNpdG9yO2NvbnN0IFNTPWNsYXNzIGNvbnRhY3RfQ29udGFjdFZpc2l0b3IgZXh0ZW5kcyBfU3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFh2fX0sRVM9V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5MaWNlbnNlLiR2aXNpdG9yO2NvbnN0IHdTPWNsYXNzIGxpY2Vuc2VfTGljZW5zZVZpc2l0b3IgZXh0ZW5kcyBFU3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IHlifX0seFM9V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5MaW5rLiR2aXNpdG9yO2NvbnN0IGtTPWNsYXNzIGxpbmtfTGlua1Zpc2l0b3IgZXh0ZW5kcyB4U3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IF9ifX07Y2xhc3MgSnNvblNjaGVtYURpYWxlY3RWaXNpdG9yIGV4dGVuZHMoTWl4aW4obm0scm0pKXtTdHJpbmdFbGVtZW50KHMpe2NvbnN0IG89bmV3IG1iKHNlcmlhbGl6ZXJzX3ZhbHVlKHMpKTtyZXR1cm4gdGhpcy5jb3B5TWV0YUFuZEF0dHJpYnV0ZXMocyxvKSx0aGlzLmVsZW1lbnQ9byxVdX19Y29uc3QgT1M9SnNvblNjaGVtYURpYWxlY3RWaXNpdG9yLENTPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuU2VydmVyLiR2aXNpdG9yO2NvbnN0IEFTPWNsYXNzIHNlcnZlcl9TZXJ2ZXJWaXNpdG9yIGV4dGVuZHMgQ1N7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBkU319LGpTPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuU2VydmVyVmFyaWFibGUuJHZpc2l0b3I7Y29uc3QgSVM9Y2xhc3Mgc2VydmVyX3ZhcmlhYmxlX1NlcnZlclZhcmlhYmxlVmlzaXRvciBleHRlbmRzIGpTe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgZlN9fSxQUz1Xdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLk1lZGlhVHlwZS4kdmlzaXRvcjtjb25zdCBUUz1jbGFzcyBtZWRpYV90eXBlX01lZGlhVHlwZVZpc2l0b3IgZXh0ZW5kcyBQU3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFNifX0sTlM9V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5TZWN1cml0eVJlcXVpcmVtZW50LiR2aXNpdG9yO2NvbnN0IE1TPWNsYXNzIHNlY3VyaXR5X3JlcXVpcmVtZW50X1NlY3VyaXR5UmVxdWlyZW1lbnRWaXNpdG9yIGV4dGVuZHMgTlN7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBwU319LFJTPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuQ29tcG9uZW50cy4kdmlzaXRvcjtjb25zdCBEUz1jbGFzcyBjb21wb25lbnRzX0NvbXBvbmVudHNWaXNpdG9yIGV4dGVuZHMgUlN7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBZdn19LExTPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuVGFnLiR2aXNpdG9yO2NvbnN0IEZTPWNsYXNzIHRhZ19UYWdWaXNpdG9yIGV4dGVuZHMgTFN7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBtU319LEJTPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUmVmZXJlbmNlLiR2aXNpdG9yO2NvbnN0ICRTPWNsYXNzIHJlZmVyZW5jZV9SZWZlcmVuY2VWaXNpdG9yIGV4dGVuZHMgQlN7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBxYn19LHFTPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUGFyYW1ldGVyLiR2aXNpdG9yO2NvbnN0IFZTPWNsYXNzIHBhcmFtZXRlcl9QYXJhbWV0ZXJWaXNpdG9yIGV4dGVuZHMgcVN7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBNYn19LFVTPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuSGVhZGVyLiR2aXNpdG9yO2NvbnN0IHpTPWNsYXNzIGhlYWRlcl9IZWFkZXJWaXNpdG9yIGV4dGVuZHMgVVN7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBuYn19LFdTPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgR3Z8fHMoYSkmJm8oImNhbGxiYWNrIixhKSYmaSgib2JqZWN0IixhKSkpLEpTPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgWXZ8fHMoYSkmJm8oImNvbXBvbmVudHMiLGEpJiZpKCJvYmplY3QiLGEpKSksSFM9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBYdnx8cyhhKSYmbygiY29udGFjdCIsYSkmJmkoIm9iamVjdCIsYSkpKSxLUz1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIGVifHxzKGEpJiZvKCJleGFtcGxlIixhKSYmaSgib2JqZWN0IixhKSkpLEdTPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgdGJ8fHMoYSkmJm8oImV4dGVybmFsRG9jdW1lbnRhdGlvbiIsYSkmJmkoIm9iamVjdCIsYSkpKSxZUz1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIG5ifHxzKGEpJiZvKCJoZWFkZXIiLGEpJiZpKCJvYmplY3QiLGEpKSksWFM9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBwYnx8cyhhKSYmbygiaW5mbyIsYSkmJmkoIm9iamVjdCIsYSkpKSxRUz1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIG1ifHxzKGEpJiZvKCJqc29uU2NoZW1hRGlhbGVjdCIsYSkmJmkoInN0cmluZyIsYSkpKSxaUz1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIHlifHxzKGEpJiZvKCJsaWNlbnNlIixhKSYmaSgib2JqZWN0IixhKSkpLGVFPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgX2J8fHMoYSkmJm8oImxpbmsiLGEpJiZpKCJvYmplY3QiLGEpKSksdEU9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBBYnx8cyhhKSYmbygib3BlbmFwaSIsYSkmJmkoInN0cmluZyIsYSkpKSxyRT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOmksaGFzQ2xhc3M6YX0pPT51PT51IGluc3RhbmNlb2YgSWJ8fHModSkmJm8oIm9wZW5BcGkzXzEiLHUpJiZpKCJvYmplY3QiLHUpJiZhKCJhcGkiLHUpKSksbkU9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBQYnx8cyhhKSYmbygib3BlcmF0aW9uIixhKSYmaSgib2JqZWN0IixhKSkpLHNFPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgTWJ8fHMoYSkmJm8oInBhcmFtZXRlciIsYSkmJmkoIm9iamVjdCIsYSkpKSxvRT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIFJifHxzKGEpJiZvKCJwYXRoSXRlbSIsYSkmJmkoIm9iamVjdCIsYSkpKSxpc1BhdGhJdGVtRWxlbWVudEV4dGVybmFsPXM9PntpZighb0UocykpcmV0dXJuITE7aWYoIUl1KHMuJHJlZikpcmV0dXJuITE7Y29uc3Qgbz1zZXJpYWxpemVyc192YWx1ZShzLiRyZWYpO3JldHVybiJzdHJpbmciPT10eXBlb2YgbyYmby5sZW5ndGg+MCYmIW8uc3RhcnRzV2l0aCgiIyIpfSxpRT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIExifHxzKGEpJiZvKCJwYXRocyIsYSkmJmkoIm9iamVjdCIsYSkpKSxhRT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIHFifHxzKGEpJiZvKCJyZWZlcmVuY2UiLGEpJiZpKCJvYmplY3QiLGEpKSksaXNSZWZlcmVuY2VFbGVtZW50RXh0ZXJuYWw9cz0+e2lmKCFhRShzKSlyZXR1cm4hMTtpZighSXUocy4kcmVmKSlyZXR1cm4hMTtjb25zdCBvPXNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZik7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBvJiZvLmxlbmd0aD4wJiYhby5zdGFydHNXaXRoKCIjIil9LGNFPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgemJ8fHMoYSkmJm8oInJlcXVlc3RCb2R5IixhKSYmaSgib2JqZWN0IixhKSkpLGxFPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgUWJ8fHMoYSkmJm8oInJlc3BvbnNlIixhKSYmaSgib2JqZWN0IixhKSkpLHVFPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgZV98fHMoYSkmJm8oInJlc3BvbnNlcyIsYSkmJmkoIm9iamVjdCIsYSkpKSxwRT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIHVTfHxzKGEpJiZvKCJzY2hlbWEiLGEpJiZpKCJvYmplY3QiLGEpKSkscHJlZGljYXRlc19pc0Jvb2xlYW5Kc29uU2NoZW1hRWxlbWVudD1zPT5OdShzKSYmcy5jbGFzc2VzLmluY2x1ZGVzKCJib29sZWFuLWpzb24tc2NoZW1hIiksaEU9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBwU3x8cyhhKSYmbygic2VjdXJpdHlSZXF1aXJlbWVudCIsYSkmJmkoIm9iamVjdCIsYSkpKSxkRT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIGhTfHxzKGEpJiZvKCJzZWN1cml0eVNjaGVtZSIsYSkmJmkoIm9iamVjdCIsYSkpKSxmRT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIGRTfHxzKGEpJiZvKCJzZXJ2ZXIiLGEpJiZpKCJvYmplY3QiLGEpKSksbUU9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBmU3x8cyhhKSYmbygic2VydmVyVmFyaWFibGUiLGEpJiZpKCJvYmplY3QiLGEpKSksZ0U9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBTYnx8cyhhKSYmbygibWVkaWFUeXBlIixhKSYmaSgib2JqZWN0IixhKSkpO2NsYXNzIG9wZW5fYXBpXzNfMV9zY2hlbWFfU2NoZW1hVmlzaXRvciBleHRlbmRzKE1peGluKHVtLExkLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyB1Uyx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiU2NoZW1hIl0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwLHRoaXMuanNvblNjaGVtYURlZmF1bHREaWFsZWN0PW1iLmRlZmF1bHQsdGhpcy5wYXNzaW5nT3B0aW9uc05hbWVzLnB1c2goInBhcmVudCIpfU9iamVjdEVsZW1lbnQocyl7dGhpcy5oYW5kbGVEaWFsZWN0SWRlbnRpZmllcihzKSx0aGlzLmhhbmRsZVNjaGVtYUlkZW50aWZpZXIocyksdGhpcy5wYXJlbnQ9dGhpcy5lbGVtZW50O2NvbnN0IG89dW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiBJdSh0aGlzLmVsZW1lbnQuJHJlZikmJih0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJyZWZlcmVuY2UtZWxlbWVudCIpLHRoaXMuZWxlbWVudC5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsInNjaGVtYSIpKSxvfUJvb2xlYW5FbGVtZW50KHMpe3JldHVybiB0Uy5wcm90b3R5cGUuQm9vbGVhbkVsZW1lbnQuY2FsbCh0aGlzLHMpfWdldCBkZWZhdWx0RGlhbGVjdElkZW50aWZpZXIoKXtsZXQgcztyZXR1cm4gcz12b2lkIDAhPT10aGlzLm9wZW5BcGlTZW1hbnRpY0VsZW1lbnQmJlFTKHRoaXMub3BlbkFwaVNlbWFudGljRWxlbWVudC5qc29uU2NoZW1hRGlhbGVjdCk/c2VyaWFsaXplcnNfdmFsdWUodGhpcy5vcGVuQXBpU2VtYW50aWNFbGVtZW50Lmpzb25TY2hlbWFEaWFsZWN0KTp2b2lkIDAhPT10aGlzLm9wZW5BcGlHZW5lcmljRWxlbWVudCYmSXUodGhpcy5vcGVuQXBpR2VuZXJpY0VsZW1lbnQuZ2V0KCJqc29uU2NoZW1hRGlhbGVjdCIpKT9zZXJpYWxpemVyc192YWx1ZSh0aGlzLm9wZW5BcGlHZW5lcmljRWxlbWVudC5nZXQoImpzb25TY2hlbWFEaWFsZWN0IikpOnNlcmlhbGl6ZXJzX3ZhbHVlKHRoaXMuanNvblNjaGVtYURlZmF1bHREaWFsZWN0KSxzfWhhbmRsZURpYWxlY3RJZGVudGlmaWVyKHMpe3JldHVybiB0Uy5wcm90b3R5cGUuaGFuZGxlRGlhbGVjdElkZW50aWZpZXIuY2FsbCh0aGlzLHMpfWhhbmRsZVNjaGVtYUlkZW50aWZpZXIocyl7cmV0dXJuIHRTLnByb3RvdHlwZS5oYW5kbGVTY2hlbWFJZGVudGlmaWVyLmNhbGwodGhpcyxzKX19Y29uc3QgeUU9b3Blbl9hcGlfM18xX3NjaGVtYV9TY2hlbWFWaXNpdG9yO2NvbnN0IHZFPWNsYXNzICRkZWZzVmlzaXRvcl8kZGVmc1Zpc2l0b3IgZXh0ZW5kcyBMX3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLnBhc3NpbmdPcHRpb25zTmFtZXMucHVzaCgicGFyZW50Iil9fTtjb25zdCBiRT1jbGFzcyBzY2hlbWFfQWxsT2ZWaXNpdG9yX0FsbE9mVmlzaXRvciBleHRlbmRzIEZfe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMucGFzc2luZ09wdGlvbnNOYW1lcy5wdXNoKCJwYXJlbnQiKX19O2NvbnN0IF9FPWNsYXNzIHNjaGVtYV9BbnlPZlZpc2l0b3JfQW55T2ZWaXNpdG9yIGV4dGVuZHMgQl97Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5wYXNzaW5nT3B0aW9uc05hbWVzLnB1c2goInBhcmVudCIpfX07Y29uc3QgU0U9Y2xhc3Mgc2NoZW1hX09uZU9mVmlzaXRvcl9PbmVPZlZpc2l0b3IgZXh0ZW5kcyAkX3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLnBhc3NpbmdPcHRpb25zTmFtZXMucHVzaCgicGFyZW50Iil9fTtjb25zdCBFRT1jbGFzcyBEZXBlbmRlbnRTY2hlbWFzVmlzaXRvcl9EZXBlbmRlbnRTY2hlbWFzVmlzaXRvciBleHRlbmRzIHFfe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMucGFzc2luZ09wdGlvbnNOYW1lcy5wdXNoKCJwYXJlbnQiKX19O2NvbnN0IHdFPWNsYXNzIFByZWZpeEl0ZW1zVmlzaXRvcl9QcmVmaXhJdGVtc1Zpc2l0b3IgZXh0ZW5kcyByU3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLnBhc3NpbmdPcHRpb25zTmFtZXMucHVzaCgicGFyZW50Iil9fTtjb25zdCB4RT1jbGFzcyBzY2hlbWFfUHJvcGVydGllc1Zpc2l0b3JfUHJvcGVydGllc1Zpc2l0b3IgZXh0ZW5kcyBVX3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLnBhc3NpbmdPcHRpb25zTmFtZXMucHVzaCgicGFyZW50Iil9fTtjb25zdCBrRT1jbGFzcyBzY2hlbWFfUGF0dGVyblByb3BlcnRpZXNWaXNpdG9yX1BhdHRlcm5Qcm9wZXJ0aWVzVmlzaXRvciBleHRlbmRzIHpfe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMucGFzc2luZ09wdGlvbnNOYW1lcy5wdXNoKCJwYXJlbnQiKX19LE9FPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuRGlzY3JpbWluYXRvci4kdmlzaXRvcjtjb25zdCBDRT1jbGFzcyBkaXN0cmltaW5hdG9yX0Rpc2NyaW1pbmF0b3JWaXNpdG9yIGV4dGVuZHMgT0V7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBRdix0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz0hMH19LEFFPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuWE1MLiR2aXNpdG9yO2NvbnN0IGpFPWNsYXNzIHhtbF9YbWxWaXNpdG9yIGV4dGVuZHMgQUV7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBnU319O2NsYXNzIFNjaGVtYXNWaXNpdG9yX1NjaGVtYXNWaXNpdG9yIGV4dGVuZHMoTWl4aW4oRW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IEF5LHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJTY2hlbWEiXSl9fWNvbnN0IElFPVNjaGVtYXNWaXNpdG9yX1NjaGVtYXNWaXNpdG9yO2NsYXNzIENvbXBvbmVudHNQYXRoSXRlbXMgZXh0ZW5kcyBTdS5TaHtzdGF0aWMgcHJpbWFyeUNsYXNzPSJjb21wb25lbnRzLXBhdGgtaXRlbXMiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goQ29tcG9uZW50c1BhdGhJdGVtcy5wcmltYXJ5Q2xhc3MpfX1jb25zdCBQRT1Db21wb25lbnRzUGF0aEl0ZW1zO2NsYXNzIFBhdGhJdGVtc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihFbSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgUEUsdGhpcy5zcGVjUGF0aD1zPT5pc1JlZmVyZW5jZUxpa2VFbGVtZW50KHMpP1siZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVmZXJlbmNlIl06WyJkb2N1bWVudCIsIm9iamVjdHMiLCJQYXRoSXRlbSJdfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1FbS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIHRoaXMuZWxlbWVudC5maWx0ZXIoYUUpLmZvckVhY2goKHM9PntzLnNldE1ldGFQcm9wZXJ0eSgicmVmZXJlbmNlZC1lbGVtZW50IiwicGF0aEl0ZW0iKX0pKSxvfX1jb25zdCBURT1QYXRoSXRlbXNWaXNpdG9yLE5FPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuRXhhbXBsZS4kdmlzaXRvcjtjb25zdCBNRT1jbGFzcyBleGFtcGxlX0V4YW1wbGVWaXNpdG9yIGV4dGVuZHMgTkV7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBlYn19LFJFPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuRXh0ZXJuYWxEb2N1bWVudGF0aW9uLiR2aXNpdG9yO2NvbnN0IERFPWNsYXNzIGV4dGVybmFsX2RvY3VtZW50YXRpb25fRXh0ZXJuYWxEb2N1bWVudGF0aW9uVmlzaXRvciBleHRlbmRzIFJFe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgdGJ9fSxMRT1Xdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkVuY29kaW5nLiR2aXNpdG9yO2NvbnN0IEZFPWNsYXNzIG9wZW5fYXBpXzNfMV9lbmNvZGluZ19FbmNvZGluZ1Zpc2l0b3IgZXh0ZW5kcyBMRXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFp2fX0sQkU9V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5QYXRocy4kdmlzaXRvcjtjb25zdCAkRT1jbGFzcyBwYXRoc19QYXRoc1Zpc2l0b3IgZXh0ZW5kcyBCRXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IExifX0scUU9V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5SZXF1ZXN0Qm9keS4kdmlzaXRvcjtjb25zdCBWRT1jbGFzcyByZXF1ZXN0X2JvZHlfUmVxdWVzdEJvZHlWaXNpdG9yIGV4dGVuZHMgcUV7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyB6Yn19LFVFPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuQ2FsbGJhY2suJHZpc2l0b3I7Y29uc3QgekU9Y2xhc3MgY2FsbGJhY2tfQ2FsbGJhY2tWaXNpdG9yIGV4dGVuZHMgVUV7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBHdix0aGlzLnNwZWNQYXRoPXM9PmlzUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiXTpbImRvY3VtZW50Iiwib2JqZWN0cyIsIlBhdGhJdGVtIl19T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPVVFLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmZpbHRlcihhRSkuZm9yRWFjaCgocz0+e3Muc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJwYXRoSXRlbSIpfSkpLG99fSxXRT1Xdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlJlc3BvbnNlLiR2aXNpdG9yO2NvbnN0IEpFPWNsYXNzIHJlc3BvbnNlX1Jlc3BvbnNlVmlzaXRvciBleHRlbmRzIFdFe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgUWJ9fSxIRT1Xdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlJlc3BvbnNlcy4kdmlzaXRvcjtjb25zdCBLRT1jbGFzcyBvcGVuX2FwaV8zXzFfcmVzcG9uc2VzX1Jlc3BvbnNlc1Zpc2l0b3IgZXh0ZW5kcyBIRXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IGVffX0sR0U9V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5PcGVyYXRpb24uJHZpc2l0b3I7Y29uc3QgWUU9Y2xhc3Mgb3BlcmF0aW9uX09wZXJhdGlvblZpc2l0b3IgZXh0ZW5kcyBHRXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFBifX0sWEU9V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5QYXRoSXRlbS4kdmlzaXRvcjtjb25zdCBRRT1jbGFzcyBwYXRoX2l0ZW1fUGF0aEl0ZW1WaXNpdG9yIGV4dGVuZHMgWEV7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBSYn19LFpFPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuU2VjdXJpdHlTY2hlbWUuJHZpc2l0b3I7Y29uc3QgZXc9Y2xhc3Mgc2VjdXJpdHlfc2NoZW1lX1NlY3VyaXR5U2NoZW1lVmlzaXRvciBleHRlbmRzIFpFe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgaFN9fSx0dz1Xdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLk9BdXRoRmxvd3MuJHZpc2l0b3I7Y29uc3Qgcnc9Y2xhc3Mgb2F1dGhfZmxvd3NfT0F1dGhGbG93c1Zpc2l0b3IgZXh0ZW5kcyB0d3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IE9ifX0sbnc9V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5PQXV0aEZsb3cuJHZpc2l0b3I7Y29uc3Qgc3c9Y2xhc3Mgb2F1dGhfZmxvd19PQXV0aEZsb3dWaXNpdG9yIGV4dGVuZHMgbnd7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyB3Yn19O2NsYXNzIFdlYmhvb2tzIGV4dGVuZHMgU3UuU2h7c3RhdGljIHByaW1hcnlDbGFzcz0id2ViaG9va3MiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goV2ViaG9va3MucHJpbWFyeUNsYXNzKX19Y29uc3Qgb3c9V2ViaG9va3M7Y2xhc3MgV2ViaG9va3NWaXNpdG9yIGV4dGVuZHMoTWl4aW4oRW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IG93LHRoaXMuc3BlY1BhdGg9cz0+aXNSZWZlcmVuY2VMaWtlRWxlbWVudChzKT9bImRvY3VtZW50Iiwib2JqZWN0cyIsIlJlZmVyZW5jZSJdOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiUGF0aEl0ZW0iXX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89RW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiB0aGlzLmVsZW1lbnQuZmlsdGVyKGFFKS5mb3JFYWNoKChzPT57cy5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsInBhdGhJdGVtIil9KSksdGhpcy5lbGVtZW50LmZpbHRlcihvRSkuZm9yRWFjaCgoKHMsbyk9PntzLnNldE1ldGFQcm9wZXJ0eSgid2ViaG9vay1uYW1lIixzZXJpYWxpemVyc192YWx1ZShvKSl9KSksb319Y29uc3QgaXc9V2ViaG9va3NWaXNpdG9yLHtKU09OU2NoZW1hOmF3LExpbmtEZXNjcmlwdGlvbjpjd309c1MudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cyxsdz17dmlzaXRvcnM6e3ZhbHVlOld2LnZpc2l0b3JzLnZhbHVlLGRvY3VtZW50OntvYmplY3RzOntPcGVuQXBpOnskdmlzaXRvcjp5UyxmaXhlZEZpZWxkczp7b3BlbmFwaTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLk9wZW5BcGkuZml4ZWRGaWVsZHMub3BlbmFwaSxpbmZvOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvSW5mbyJ9LGpzb25TY2hlbWFEaWFsZWN0Ok9TLHNlcnZlcnM6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5PcGVuQXBpLmZpeGVkRmllbGRzLnNlcnZlcnMscGF0aHM6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9QYXRocyJ9LHdlYmhvb2tzOml3LGNvbXBvbmVudHM6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9Db21wb25lbnRzIn0sc2VjdXJpdHk6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5PcGVuQXBpLmZpeGVkRmllbGRzLnNlY3VyaXR5LHRhZ3M6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5PcGVuQXBpLmZpeGVkRmllbGRzLnRhZ3MsZXh0ZXJuYWxEb2NzOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvRXh0ZXJuYWxEb2N1bWVudGF0aW9uIn19fSxJbmZvOnskdmlzaXRvcjpiUyxmaXhlZEZpZWxkczp7dGl0bGU6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5JbmZvLmZpeGVkRmllbGRzLnRpdGxlLGRlc2NyaXB0aW9uOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuSW5mby5maXhlZEZpZWxkcy5kZXNjcmlwdGlvbixzdW1tYXJ5OnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sdGVybXNPZlNlcnZpY2U6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5JbmZvLmZpeGVkRmllbGRzLnRlcm1zT2ZTZXJ2aWNlLGNvbnRhY3Q6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9Db250YWN0In0sbGljZW5zZTp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL0xpY2Vuc2UifSx2ZXJzaW9uOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuSW5mby5maXhlZEZpZWxkcy52ZXJzaW9ufX0sQ29udGFjdDp7JHZpc2l0b3I6U1MsZml4ZWRGaWVsZHM6e25hbWU6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5Db250YWN0LmZpeGVkRmllbGRzLm5hbWUsdXJsOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuQ29udGFjdC5maXhlZEZpZWxkcy51cmwsZW1haWw6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5Db250YWN0LmZpeGVkRmllbGRzLmVtYWlsfX0sTGljZW5zZTp7JHZpc2l0b3I6d1MsZml4ZWRGaWVsZHM6e25hbWU6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5MaWNlbnNlLmZpeGVkRmllbGRzLm5hbWUsaWRlbnRpZmllcjp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHVybDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkxpY2Vuc2UuZml4ZWRGaWVsZHMudXJsfX0sU2VydmVyOnskdmlzaXRvcjpBUyxmaXhlZEZpZWxkczp7dXJsOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuU2VydmVyLmZpeGVkRmllbGRzLnVybCxkZXNjcmlwdGlvbjpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlNlcnZlci5maXhlZEZpZWxkcy5kZXNjcmlwdGlvbix2YXJpYWJsZXM6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5TZXJ2ZXIuZml4ZWRGaWVsZHMudmFyaWFibGVzfX0sU2VydmVyVmFyaWFibGU6eyR2aXNpdG9yOklTLGZpeGVkRmllbGRzOntlbnVtOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuU2VydmVyVmFyaWFibGUuZml4ZWRGaWVsZHMuZW51bSxkZWZhdWx0Old2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuU2VydmVyVmFyaWFibGUuZml4ZWRGaWVsZHMuZGVmYXVsdCxkZXNjcmlwdGlvbjpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlNlcnZlclZhcmlhYmxlLmZpeGVkRmllbGRzLmRlc2NyaXB0aW9ufX0sQ29tcG9uZW50czp7JHZpc2l0b3I6RFMsZml4ZWRGaWVsZHM6e3NjaGVtYXM6SUUscmVzcG9uc2VzOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuQ29tcG9uZW50cy5maXhlZEZpZWxkcy5yZXNwb25zZXMscGFyYW1ldGVyczpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkNvbXBvbmVudHMuZml4ZWRGaWVsZHMucGFyYW1ldGVycyxleGFtcGxlczpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkNvbXBvbmVudHMuZml4ZWRGaWVsZHMuZXhhbXBsZXMscmVxdWVzdEJvZGllczpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkNvbXBvbmVudHMuZml4ZWRGaWVsZHMucmVxdWVzdEJvZGllcyxoZWFkZXJzOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuQ29tcG9uZW50cy5maXhlZEZpZWxkcy5oZWFkZXJzLHNlY3VyaXR5U2NoZW1lczpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkNvbXBvbmVudHMuZml4ZWRGaWVsZHMuc2VjdXJpdHlTY2hlbWVzLGxpbmtzOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuQ29tcG9uZW50cy5maXhlZEZpZWxkcy5saW5rcyxjYWxsYmFja3M6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5Db21wb25lbnRzLmZpeGVkRmllbGRzLmNhbGxiYWNrcyxwYXRoSXRlbXM6VEV9fSxQYXRoczp7JHZpc2l0b3I6JEV9LFBhdGhJdGVtOnskdmlzaXRvcjpRRSxmaXhlZEZpZWxkczp7JHJlZjpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlBhdGhJdGVtLmZpeGVkRmllbGRzLiRyZWYsc3VtbWFyeTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlBhdGhJdGVtLmZpeGVkRmllbGRzLnN1bW1hcnksZGVzY3JpcHRpb246V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5QYXRoSXRlbS5maXhlZEZpZWxkcy5kZXNjcmlwdGlvbixnZXQ6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9PcGVyYXRpb24ifSxwdXQ6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9PcGVyYXRpb24ifSxwb3N0OnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvT3BlcmF0aW9uIn0sZGVsZXRlOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvT3BlcmF0aW9uIn0sb3B0aW9uczp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL09wZXJhdGlvbiJ9LGhlYWQ6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9PcGVyYXRpb24ifSxwYXRjaDp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL09wZXJhdGlvbiJ9LHRyYWNlOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvT3BlcmF0aW9uIn0sc2VydmVyczpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlBhdGhJdGVtLmZpeGVkRmllbGRzLnNlcnZlcnMscGFyYW1ldGVyczpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlBhdGhJdGVtLmZpeGVkRmllbGRzLnBhcmFtZXRlcnN9fSxPcGVyYXRpb246eyR2aXNpdG9yOllFLGZpeGVkRmllbGRzOnt0YWdzOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuT3BlcmF0aW9uLmZpeGVkRmllbGRzLnRhZ3Msc3VtbWFyeTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLk9wZXJhdGlvbi5maXhlZEZpZWxkcy5zdW1tYXJ5LGRlc2NyaXB0aW9uOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuT3BlcmF0aW9uLmZpeGVkRmllbGRzLmRlc2NyaXB0aW9uLGV4dGVybmFsRG9jczp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL0V4dGVybmFsRG9jdW1lbnRhdGlvbiJ9LG9wZXJhdGlvbklkOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuT3BlcmF0aW9uLmZpeGVkRmllbGRzLm9wZXJhdGlvbklkLHBhcmFtZXRlcnM6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5PcGVyYXRpb24uZml4ZWRGaWVsZHMucGFyYW1ldGVycyxyZXF1ZXN0Qm9keTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLk9wZXJhdGlvbi5maXhlZEZpZWxkcy5yZXF1ZXN0Qm9keSxyZXNwb25zZXM6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9SZXNwb25zZXMifSxjYWxsYmFja3M6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5PcGVyYXRpb24uZml4ZWRGaWVsZHMuY2FsbGJhY2tzLGRlcHJlY2F0ZWQ6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5PcGVyYXRpb24uZml4ZWRGaWVsZHMuZGVwcmVjYXRlZCxzZWN1cml0eTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLk9wZXJhdGlvbi5maXhlZEZpZWxkcy5zZWN1cml0eSxzZXJ2ZXJzOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuT3BlcmF0aW9uLmZpeGVkRmllbGRzLnNlcnZlcnN9fSxFeHRlcm5hbERvY3VtZW50YXRpb246eyR2aXNpdG9yOkRFLGZpeGVkRmllbGRzOntkZXNjcmlwdGlvbjpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkV4dGVybmFsRG9jdW1lbnRhdGlvbi5maXhlZEZpZWxkcy5kZXNjcmlwdGlvbix1cmw6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5FeHRlcm5hbERvY3VtZW50YXRpb24uZml4ZWRGaWVsZHMudXJsfX0sUGFyYW1ldGVyOnskdmlzaXRvcjpWUyxmaXhlZEZpZWxkczp7bmFtZTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlBhcmFtZXRlci5maXhlZEZpZWxkcy5uYW1lLGluOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUGFyYW1ldGVyLmZpeGVkRmllbGRzLmluLGRlc2NyaXB0aW9uOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUGFyYW1ldGVyLmZpeGVkRmllbGRzLmRlc2NyaXB0aW9uLHJlcXVpcmVkOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUGFyYW1ldGVyLmZpeGVkRmllbGRzLnJlcXVpcmVkLGRlcHJlY2F0ZWQ6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5QYXJhbWV0ZXIuZml4ZWRGaWVsZHMuZGVwcmVjYXRlZCxhbGxvd0VtcHR5VmFsdWU6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5QYXJhbWV0ZXIuZml4ZWRGaWVsZHMuYWxsb3dFbXB0eVZhbHVlLHN0eWxlOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUGFyYW1ldGVyLmZpeGVkRmllbGRzLnN0eWxlLGV4cGxvZGU6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5QYXJhbWV0ZXIuZml4ZWRGaWVsZHMuZXhwbG9kZSxhbGxvd1Jlc2VydmVkOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUGFyYW1ldGVyLmZpeGVkRmllbGRzLmFsbG93UmVzZXJ2ZWQsc2NoZW1hOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvU2NoZW1hIn0sZXhhbXBsZTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlBhcmFtZXRlci5maXhlZEZpZWxkcy5leGFtcGxlLGV4YW1wbGVzOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUGFyYW1ldGVyLmZpeGVkRmllbGRzLmV4YW1wbGVzLGNvbnRlbnQ6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5QYXJhbWV0ZXIuZml4ZWRGaWVsZHMuY29udGVudH19LFJlcXVlc3RCb2R5OnskdmlzaXRvcjpWRSxmaXhlZEZpZWxkczp7ZGVzY3JpcHRpb246V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5SZXF1ZXN0Qm9keS5maXhlZEZpZWxkcy5kZXNjcmlwdGlvbixjb250ZW50Old2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUmVxdWVzdEJvZHkuZml4ZWRGaWVsZHMuY29udGVudCxyZXF1aXJlZDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlJlcXVlc3RCb2R5LmZpeGVkRmllbGRzLnJlcXVpcmVkfX0sTWVkaWFUeXBlOnskdmlzaXRvcjpUUyxmaXhlZEZpZWxkczp7c2NoZW1hOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvU2NoZW1hIn0sZXhhbXBsZTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLk1lZGlhVHlwZS5maXhlZEZpZWxkcy5leGFtcGxlLGV4YW1wbGVzOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuTWVkaWFUeXBlLmZpeGVkRmllbGRzLmV4YW1wbGVzLGVuY29kaW5nOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuTWVkaWFUeXBlLmZpeGVkRmllbGRzLmVuY29kaW5nfX0sRW5jb2Rpbmc6eyR2aXNpdG9yOkZFLGZpeGVkRmllbGRzOntjb250ZW50VHlwZTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkVuY29kaW5nLmZpeGVkRmllbGRzLmNvbnRlbnRUeXBlLGhlYWRlcnM6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5FbmNvZGluZy5maXhlZEZpZWxkcy5oZWFkZXJzLHN0eWxlOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuRW5jb2RpbmcuZml4ZWRGaWVsZHMuc3R5bGUsZXhwbG9kZTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkVuY29kaW5nLmZpeGVkRmllbGRzLmV4cGxvZGUsYWxsb3dSZXNlcnZlZDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkVuY29kaW5nLmZpeGVkRmllbGRzLmFsbG93UmVzZXJ2ZWR9fSxSZXNwb25zZXM6eyR2aXNpdG9yOktFLGZpeGVkRmllbGRzOntkZWZhdWx0Old2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUmVzcG9uc2VzLmZpeGVkRmllbGRzLmRlZmF1bHR9fSxSZXNwb25zZTp7JHZpc2l0b3I6SkUsZml4ZWRGaWVsZHM6e2Rlc2NyaXB0aW9uOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUmVzcG9uc2UuZml4ZWRGaWVsZHMuZGVzY3JpcHRpb24saGVhZGVyczpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlJlc3BvbnNlLmZpeGVkRmllbGRzLmhlYWRlcnMsY29udGVudDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlJlc3BvbnNlLmZpeGVkRmllbGRzLmNvbnRlbnQsbGlua3M6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5SZXNwb25zZS5maXhlZEZpZWxkcy5saW5rc319LENhbGxiYWNrOnskdmlzaXRvcjp6RX0sRXhhbXBsZTp7JHZpc2l0b3I6TUUsZml4ZWRGaWVsZHM6e3N1bW1hcnk6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5FeGFtcGxlLmZpeGVkRmllbGRzLnN1bW1hcnksZGVzY3JpcHRpb246V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5FeGFtcGxlLmZpeGVkRmllbGRzLmRlc2NyaXB0aW9uLHZhbHVlOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuRXhhbXBsZS5maXhlZEZpZWxkcy52YWx1ZSxleHRlcm5hbFZhbHVlOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuRXhhbXBsZS5maXhlZEZpZWxkcy5leHRlcm5hbFZhbHVlfX0sTGluazp7JHZpc2l0b3I6a1MsZml4ZWRGaWVsZHM6e29wZXJhdGlvblJlZjpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkxpbmsuZml4ZWRGaWVsZHMub3BlcmF0aW9uUmVmLG9wZXJhdGlvbklkOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuTGluay5maXhlZEZpZWxkcy5vcGVyYXRpb25JZCxwYXJhbWV0ZXJzOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuTGluay5maXhlZEZpZWxkcy5wYXJhbWV0ZXJzLHJlcXVlc3RCb2R5Old2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuTGluay5maXhlZEZpZWxkcy5yZXF1ZXN0Qm9keSxkZXNjcmlwdGlvbjpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkxpbmsuZml4ZWRGaWVsZHMuZGVzY3JpcHRpb24sc2VydmVyOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvU2VydmVyIn19fSxIZWFkZXI6eyR2aXNpdG9yOnpTLGZpeGVkRmllbGRzOntkZXNjcmlwdGlvbjpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkhlYWRlci5maXhlZEZpZWxkcy5kZXNjcmlwdGlvbixyZXF1aXJlZDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkhlYWRlci5maXhlZEZpZWxkcy5yZXF1aXJlZCxkZXByZWNhdGVkOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuSGVhZGVyLmZpeGVkRmllbGRzLmRlcHJlY2F0ZWQsYWxsb3dFbXB0eVZhbHVlOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuSGVhZGVyLmZpeGVkRmllbGRzLmFsbG93RW1wdHlWYWx1ZSxzdHlsZTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkhlYWRlci5maXhlZEZpZWxkcy5zdHlsZSxleHBsb2RlOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuSGVhZGVyLmZpeGVkRmllbGRzLmV4cGxvZGUsYWxsb3dSZXNlcnZlZDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkhlYWRlci5maXhlZEZpZWxkcy5hbGxvd1Jlc2VydmVkLHNjaGVtYTp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL1NjaGVtYSJ9LGV4YW1wbGU6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5IZWFkZXIuZml4ZWRGaWVsZHMuZXhhbXBsZSxleGFtcGxlczpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkhlYWRlci5maXhlZEZpZWxkcy5leGFtcGxlcyxjb250ZW50Old2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuSGVhZGVyLmZpeGVkRmllbGRzLmNvbnRlbnR9fSxUYWc6eyR2aXNpdG9yOkZTLGZpeGVkRmllbGRzOntuYW1lOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuVGFnLmZpeGVkRmllbGRzLm5hbWUsZGVzY3JpcHRpb246V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5UYWcuZml4ZWRGaWVsZHMuZGVzY3JpcHRpb24sZXh0ZXJuYWxEb2NzOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvRXh0ZXJuYWxEb2N1bWVudGF0aW9uIn19fSxSZWZlcmVuY2U6eyR2aXNpdG9yOiRTLGZpeGVkRmllbGRzOnskcmVmOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUmVmZXJlbmNlLmZpeGVkRmllbGRzLiRyZWYsc3VtbWFyeTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGRlc2NyaXB0aW9uOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn19fSxKU09OU2NoZW1hOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvU2NoZW1hIn0sTGlua0Rlc2NyaXB0aW9uOnsuLi5jd30sU2NoZW1hOnskdmlzaXRvcjp5RSxmaXhlZEZpZWxkczp7Li4uYXcuZml4ZWRGaWVsZHMsJGRlZnM6dkUsYWxsT2Y6YkUsYW55T2Y6X0Usb25lT2Y6U0Usbm90OnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvU2NoZW1hIn0saWY6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9TY2hlbWEifSx0aGVuOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvU2NoZW1hIn0sZWxzZTp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL1NjaGVtYSJ9LGRlcGVuZGVudFNjaGVtYXM6RUUscHJlZml4SXRlbXM6d0UsaXRlbXM6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9TY2hlbWEifSxjb250YWluczp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL1NjaGVtYSJ9LHByb3BlcnRpZXM6eEUscGF0dGVyblByb3BlcnRpZXM6a0UsYWRkaXRpb25hbFByb3BlcnRpZXM6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9TY2hlbWEifSxwcm9wZXJ0eU5hbWVzOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvU2NoZW1hIn0sdW5ldmFsdWF0ZWRJdGVtczp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL1NjaGVtYSJ9LHVuZXZhbHVhdGVkUHJvcGVydGllczp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL1NjaGVtYSJ9LGNvbnRlbnRTY2hlbWE6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9TY2hlbWEifSxkaXNjcmltaW5hdG9yOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvRGlzY3JpbWluYXRvciJ9LHhtbDp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL1hNTCJ9LGV4dGVybmFsRG9jczp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL0V4dGVybmFsRG9jdW1lbnRhdGlvbiJ9LGV4YW1wbGU6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifX19LERpc2NyaW1pbmF0b3I6eyR2aXNpdG9yOkNFLGZpeGVkRmllbGRzOntwcm9wZXJ0eU5hbWU6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5EaXNjcmltaW5hdG9yLmZpeGVkRmllbGRzLnByb3BlcnR5TmFtZSxtYXBwaW5nOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuRGlzY3JpbWluYXRvci5maXhlZEZpZWxkcy5tYXBwaW5nfX0sWE1MOnskdmlzaXRvcjpqRSxmaXhlZEZpZWxkczp7bmFtZTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlhNTC5maXhlZEZpZWxkcy5uYW1lLG5hbWVzcGFjZTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlhNTC5maXhlZEZpZWxkcy5uYW1lc3BhY2UscHJlZml4Old2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuWE1MLmZpeGVkRmllbGRzLnByZWZpeCxhdHRyaWJ1dGU6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5YTUwuZml4ZWRGaWVsZHMuYXR0cmlidXRlLHdyYXBwZWQ6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5YTUwuZml4ZWRGaWVsZHMud3JhcHBlZH19LFNlY3VyaXR5U2NoZW1lOnskdmlzaXRvcjpldyxmaXhlZEZpZWxkczp7dHlwZTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlNlY3VyaXR5U2NoZW1lLmZpeGVkRmllbGRzLnR5cGUsZGVzY3JpcHRpb246V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5TZWN1cml0eVNjaGVtZS5maXhlZEZpZWxkcy5kZXNjcmlwdGlvbixuYW1lOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuU2VjdXJpdHlTY2hlbWUuZml4ZWRGaWVsZHMubmFtZSxpbjpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlNlY3VyaXR5U2NoZW1lLmZpeGVkRmllbGRzLmluLHNjaGVtZTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlNlY3VyaXR5U2NoZW1lLmZpeGVkRmllbGRzLnNjaGVtZSxiZWFyZXJGb3JtYXQ6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5TZWN1cml0eVNjaGVtZS5maXhlZEZpZWxkcy5iZWFyZXJGb3JtYXQsZmxvd3M6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9PQXV0aEZsb3dzIn0sb3BlbklkQ29ubmVjdFVybDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlNlY3VyaXR5U2NoZW1lLmZpeGVkRmllbGRzLm9wZW5JZENvbm5lY3RVcmx9fSxPQXV0aEZsb3dzOnskdmlzaXRvcjpydyxmaXhlZEZpZWxkczp7aW1wbGljaXQ6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9PQXV0aEZsb3cifSxwYXNzd29yZDp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL09BdXRoRmxvdyJ9LGNsaWVudENyZWRlbnRpYWxzOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvT0F1dGhGbG93In0sYXV0aG9yaXphdGlvbkNvZGU6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9PQXV0aEZsb3cifX19LE9BdXRoRmxvdzp7JHZpc2l0b3I6c3csZml4ZWRGaWVsZHM6e2F1dGhvcml6YXRpb25Vcmw6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5PQXV0aEZsb3cuZml4ZWRGaWVsZHMuYXV0aG9yaXphdGlvblVybCx0b2tlblVybDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLk9BdXRoRmxvdy5maXhlZEZpZWxkcy50b2tlblVybCxyZWZyZXNoVXJsOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuT0F1dGhGbG93LmZpeGVkRmllbGRzLnJlZnJlc2hVcmwsc2NvcGVzOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuT0F1dGhGbG93LmZpeGVkRmllbGRzLnNjb3Blc319LFNlY3VyaXR5UmVxdWlyZW1lbnQ6eyR2aXNpdG9yOk1TfX0sZXh0ZW5zaW9uOnskdmlzaXRvcjpXdi52aXNpdG9ycy5kb2N1bWVudC5leHRlbnNpb24uJHZpc2l0b3J9fX19LGFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfdHJhdmVyc2FsX3Zpc2l0b3JfZ2V0Tm9kZVR5cGU9cz0+e2lmKGp1KHMpKXJldHVybmAke3MuZWxlbWVudC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStzLmVsZW1lbnQuc2xpY2UoMSl9RWxlbWVudGB9LHV3PXtDYWxsYmFja0VsZW1lbnQ6WyJjb250ZW50Il0sQ29tcG9uZW50c0VsZW1lbnQ6WyJjb250ZW50Il0sQ29udGFjdEVsZW1lbnQ6WyJjb250ZW50Il0sRGlzY3JpbWluYXRvckVsZW1lbnQ6WyJjb250ZW50Il0sRW5jb2Rpbmc6WyJjb250ZW50Il0sRXhhbXBsZTpbImNvbnRlbnQiXSxFeHRlcm5hbERvY3VtZW50YXRpb25FbGVtZW50OlsiY29udGVudCJdLEhlYWRlckVsZW1lbnQ6WyJjb250ZW50Il0sSW5mb0VsZW1lbnQ6WyJjb250ZW50Il0sTGljZW5zZUVsZW1lbnQ6WyJjb250ZW50Il0sTWVkaWFUeXBlRWxlbWVudDpbImNvbnRlbnQiXSxPQXV0aEZsb3dFbGVtZW50OlsiY29udGVudCJdLE9BdXRoRmxvd3NFbGVtZW50OlsiY29udGVudCJdLE9wZW5BcGkzXzFFbGVtZW50OlsiY29udGVudCJdLE9wZXJhdGlvbkVsZW1lbnQ6WyJjb250ZW50Il0sUGFyYW1ldGVyRWxlbWVudDpbImNvbnRlbnQiXSxQYXRoSXRlbUVsZW1lbnQ6WyJjb250ZW50Il0sUGF0aHNFbGVtZW50OlsiY29udGVudCJdLFJlZmVyZW5jZUVsZW1lbnQ6WyJjb250ZW50Il0sUmVxdWVzdEJvZHlFbGVtZW50OlsiY29udGVudCJdLFJlc3BvbnNlRWxlbWVudDpbImNvbnRlbnQiXSxSZXNwb25zZXNFbGVtZW50OlsiY29udGVudCJdLFNjaGVtYUVsZW1lbnQ6WyJjb250ZW50Il0sU2VjdXJpdHlSZXF1aXJlbWVudEVsZW1lbnQ6WyJjb250ZW50Il0sU2VjdXJpdHlTY2hlbWVFbGVtZW50OlsiY29udGVudCJdLFNlcnZlckVsZW1lbnQ6WyJjb250ZW50Il0sU2VydmVyVmFyaWFibGVFbGVtZW50OlsiY29udGVudCJdLFRhZ0VsZW1lbnQ6WyJjb250ZW50Il0sLi4uS3V9LHB3PXtuYW1lc3BhY2U6cz0+e2NvbnN0e2Jhc2U6b309cztyZXR1cm4gby5yZWdpc3RlcigiY2FsbGJhY2siLEd2KSxvLnJlZ2lzdGVyKCJjb21wb25lbnRzIixZdiksby5yZWdpc3RlcigiY29udGFjdCIsWHYpLG8ucmVnaXN0ZXIoImRpc2NyaW1pbmF0b3IiLFF2KSxvLnJlZ2lzdGVyKCJlbmNvZGluZyIsWnYpLG8ucmVnaXN0ZXIoImV4YW1wbGUiLGViKSxvLnJlZ2lzdGVyKCJleHRlcm5hbERvY3VtZW50YXRpb24iLHRiKSxvLnJlZ2lzdGVyKCJoZWFkZXIiLG5iKSxvLnJlZ2lzdGVyKCJpbmZvIixwYiksby5yZWdpc3RlcigianNvblNjaGVtYURpYWxlY3QiLG1iKSxvLnJlZ2lzdGVyKCJsaWNlbnNlIix5Yiksby5yZWdpc3RlcigibGluayIsX2IpLG8ucmVnaXN0ZXIoIm1lZGlhVHlwZSIsU2IpLG8ucmVnaXN0ZXIoIm9BdXRoRmxvdyIsd2IpLG8ucmVnaXN0ZXIoIm9BdXRoRmxvd3MiLE9iKSxvLnJlZ2lzdGVyKCJvcGVuYXBpIixBYiksby5yZWdpc3Rlcigib3BlbkFwaTNfMSIsSWIpLG8ucmVnaXN0ZXIoIm9wZXJhdGlvbiIsUGIpLG8ucmVnaXN0ZXIoInBhcmFtZXRlciIsTWIpLG8ucmVnaXN0ZXIoInBhdGhJdGVtIixSYiksby5yZWdpc3RlcigicGF0aHMiLExiKSxvLnJlZ2lzdGVyKCJyZWZlcmVuY2UiLHFiKSxvLnJlZ2lzdGVyKCJyZXF1ZXN0Qm9keSIsemIpLG8ucmVnaXN0ZXIoInJlc3BvbnNlIixRYiksby5yZWdpc3RlcigicmVzcG9uc2VzIixlXyksby5yZWdpc3Rlcigic2NoZW1hIix1Uyksby5yZWdpc3Rlcigic2VjdXJpdHlSZXF1aXJlbWVudCIscFMpLG8ucmVnaXN0ZXIoInNlY3VyaXR5U2NoZW1lIixoUyksby5yZWdpc3Rlcigic2VydmVyIixkUyksby5yZWdpc3Rlcigic2VydmVyVmFyaWFibGUiLGZTKSxvLnJlZ2lzdGVyKCJ0YWciLG1TKSxvLnJlZ2lzdGVyKCJ4bWwiLGdTKSxvfX0saHc9cHcsYW5jZXN0b3JMaW5lYWdlVG9KU09OUG9pbnRlcj1zPT57Y29uc3Qgbz1zLnJlZHVjZSgoKG8saSxhKT0+e2lmKER1KGkpKXtjb25zdCBzPVN0cmluZyhzZXJpYWxpemVyc192YWx1ZShpLmtleSkpO28ucHVzaChzKX1lbHNlIGlmKFJ1KHNbYS0yXSkpe2NvbnN0IHU9U3RyaW5nKHNbYS0yXS5jb250ZW50LmluZGV4T2YoaSkpO28ucHVzaCh1KX1yZXR1cm4gb30pLFtdKTtyZXR1cm4gZXNfY29tcGlsZShvKX0sYXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfdG9vbGJveD0oKT0+e2NvbnN0IHM9Y3JlYXRlTmFtZXNwYWNlKGh3KTtyZXR1cm57cHJlZGljYXRlczp7Li4ueWUsaXNFbGVtZW50Omp1LGlzU3RyaW5nRWxlbWVudDpJdSxpc0FycmF5RWxlbWVudDpSdSxpc09iamVjdEVsZW1lbnQ6TXUsaXNNZW1iZXJFbGVtZW50OkR1LGlzU2VydmVyc0VsZW1lbnQ6bGcsaW5jbHVkZXNDbGFzc2VzLGhhc0VsZW1lbnRTb3VyY2VNYXB9LGFuY2VzdG9yTGluZWFnZVRvSlNPTlBvaW50ZXIsbmFtZXNwYWNlOnN9fSxhcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9yZWZyYWN0PShzLHtzcGVjUGF0aDpvPVsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJPcGVuQXBpIiwiJHZpc2l0b3IiXSxwbHVnaW5zOmk9W119PXt9KT0+e2NvbnN0IGE9KDAsU3UuZSkocyksdT1kZXJlZmVyZW5jZShsdyksXz1uZXcodHAobyx1KSkoe3NwZWNPYmo6dX0pO3JldHVybiB2aXNpdG9yX3Zpc2l0KGEsXyksZGlzcGF0Y2hQbHVnaW5zU3luYyhfLmVsZW1lbnQsaSx7dG9vbGJveENyZWF0b3I6YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfdG9vbGJveCx2aXNpdG9yT3B0aW9uczp7a2V5TWFwOnV3LG5vZGVUeXBlR2V0dGVyOmFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfdHJhdmVyc2FsX3Zpc2l0b3JfZ2V0Tm9kZVR5cGV9fSl9LGFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3Rvcj1zPT4obyxpPXt9KT0+YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfcmVmcmFjdChvLHtzcGVjUGF0aDpzLC4uLml9KTtHdi5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiQ2FsbGJhY2siLCIkdmlzaXRvciJdKSxZdi5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiQ29tcG9uZW50cyIsIiR2aXNpdG9yIl0pLFh2LnJlZnJhY3Q9YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJDb250YWN0IiwiJHZpc2l0b3IiXSksZWIucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkV4YW1wbGUiLCIkdmlzaXRvciJdKSxRdi5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiRGlzY3JpbWluYXRvciIsIiR2aXNpdG9yIl0pLFp2LnJlZnJhY3Q9YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJFbmNvZGluZyIsIiR2aXNpdG9yIl0pLHRiLnJlZnJhY3Q9YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJFeHRlcm5hbERvY3VtZW50YXRpb24iLCIkdmlzaXRvciJdKSxuYi5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSGVhZGVyIiwiJHZpc2l0b3IiXSkscGIucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkluZm8iLCIkdmlzaXRvciJdKSxtYi5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiT3BlbkFwaSIsImZpeGVkRmllbGRzIiwianNvblNjaGVtYURpYWxlY3QiXSkseWIucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpY2Vuc2UiLCIkdmlzaXRvciJdKSxfYi5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGluayIsIiR2aXNpdG9yIl0pLFNiLnJlZnJhY3Q9YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJNZWRpYVR5cGUiLCIkdmlzaXRvciJdKSx3Yi5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiT0F1dGhGbG93IiwiJHZpc2l0b3IiXSksT2IucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIk9BdXRoRmxvd3MiLCIkdmlzaXRvciJdKSxBYi5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiT3BlbkFwaSIsImZpeGVkRmllbGRzIiwib3BlbmFwaSJdKSxJYi5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiT3BlbkFwaSIsIiR2aXNpdG9yIl0pLFBiLnJlZnJhY3Q9YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJPcGVyYXRpb24iLCIkdmlzaXRvciJdKSxNYi5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiUGFyYW1ldGVyIiwiJHZpc2l0b3IiXSksUmIucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIlBhdGhJdGVtIiwiJHZpc2l0b3IiXSksTGIucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIlBhdGhzIiwiJHZpc2l0b3IiXSkscWIucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIlJlZmVyZW5jZSIsIiR2aXNpdG9yIl0pLHpiLnJlZnJhY3Q9YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJSZXF1ZXN0Qm9keSIsIiR2aXNpdG9yIl0pLFFiLnJlZnJhY3Q9YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJSZXNwb25zZSIsIiR2aXNpdG9yIl0pLGVfLnJlZnJhY3Q9YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJSZXNwb25zZXMiLCIkdmlzaXRvciJdKSx1Uy5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiU2NoZW1hIiwiJHZpc2l0b3IiXSkscFMucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIlNlY3VyaXR5UmVxdWlyZW1lbnQiLCIkdmlzaXRvciJdKSxoUy5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiU2VjdXJpdHlTY2hlbWUiLCIkdmlzaXRvciJdKSxkUy5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiU2VydmVyIiwiJHZpc2l0b3IiXSksZlMucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIlNlcnZlclZhcmlhYmxlIiwiJHZpc2l0b3IiXSksbVMucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIlRhZyIsIiR2aXNpdG9yIl0pLGdTLnJlZnJhY3Q9YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJYTUwiLCIkdmlzaXRvciJdKTtjb25zdCBkdz1jbGFzcyBOb3RJbXBsZW1lbnRlZEVycm9yIGV4dGVuZHMgRGh7fTtjb25zdCBmdz1jbGFzcyBNZWRpYVR5cGVzIGV4dGVuZHMgQXJyYXl7dW5rbm93bk1lZGlhVHlwZT0iYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIjtmaWx0ZXJCeUZvcm1hdCgpe3Rocm93IG5ldyBkdygiZmlsdGVyQnlGb3JtYXQgbWV0aG9kIGluIE1lZGlhVHlwZXMgY2xhc3MgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4iKX1maW5kQnkoKXt0aHJvdyBuZXcgZHcoImZpbmRCeSBtZXRob2QgaW4gTWVkaWFUeXBlcyBjbGFzcyBpcyBub3QgeWV0IGltcGxlbWVudGVkLiIpfWxhdGVzdCgpe3Rocm93IG5ldyBkdygibGF0ZXN0IG1ldGhvZCBpbiBNZWRpYVR5cGVzIGNsYXNzIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuIil9fTtjbGFzcyBPcGVuQVBJTWVkaWFUeXBlcyBleHRlbmRzIGZ3e2ZpbHRlckJ5Rm9ybWF0KHM9ImdlbmVyaWMiKXtjb25zdCBvPSJnZW5lcmljIj09PXM/Im9wZW5hcGk7dmVyc2lvbiI6cztyZXR1cm4gdGhpcy5maWx0ZXIoKHM9PnMuaW5jbHVkZXMobykpKX1maW5kQnkocz0iMy4xLjAiLG89ImdlbmVyaWMiKXtjb25zdCBpPSJnZW5lcmljIj09PW8/YHZuZC5vYWkub3BlbmFwaTt2ZXJzaW9uPSR7c31gOmB2bmQub2FpLm9wZW5hcGkrJHtvfTt2ZXJzaW9uPSR7c31gO3JldHVybiB0aGlzLmZpbmQoKHM9PnMuaW5jbHVkZXMoaSkpKXx8dGhpcy51bmtub3duTWVkaWFUeXBlfWxhdGVzdChzPSJnZW5lcmljIil7cmV0dXJuIEJhKHRoaXMuZmlsdGVyQnlGb3JtYXQocykpfX1jb25zdCBtdz1uZXcgT3BlbkFQSU1lZGlhVHlwZXMoImFwcGxpY2F0aW9uL3ZuZC5vYWkub3BlbmFwaTt2ZXJzaW9uPTMuMS4wIiwiYXBwbGljYXRpb24vdm5kLm9haS5vcGVuYXBpK2pzb247dmVyc2lvbj0zLjEuMCIsImFwcGxpY2F0aW9uL3ZuZC5vYWkub3BlbmFwaSt5YW1sO3ZlcnNpb249My4xLjAiKTtjb25zdCBndz1jbGFzcyBzcmNfUmVmZXJlbmNlX1JlZmVyZW5jZXt1cmk7ZGVwdGg7dmFsdWU7cmVmU2V0O2Vycm9ycztjb25zdHJ1Y3Rvcih7dXJpOnMsZGVwdGg6bz0wLHJlZlNldDppLHZhbHVlOmF9KXt0aGlzLnVyaT1zLHRoaXMudmFsdWU9YSx0aGlzLmRlcHRoPW8sdGhpcy5yZWZTZXQ9aSx0aGlzLmVycm9ycz1bXX19O2NvbnN0IHl3PWNsYXNzIFJlZmVyZW5jZVNldHtyb290UmVmO3JlZnM7Y2lyY3VsYXI7Y29uc3RydWN0b3Ioe3JlZnM6cz1bXSxjaXJjdWxhcjpvPSExfT17fSl7dGhpcy5yZWZzPVtdLHRoaXMuY2lyY3VsYXI9byxzLmZvckVhY2godGhpcy5hZGQuYmluZCh0aGlzKSl9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy5yZWZzLmxlbmd0aH1hZGQocyl7cmV0dXJuIHRoaXMuaGFzKHMpfHwodGhpcy5yZWZzLnB1c2gocyksdGhpcy5yb290UmVmPXZvaWQgMD09PXRoaXMucm9vdFJlZj9zOnRoaXMucm9vdFJlZixzLnJlZlNldD10aGlzKSx0aGlzfW1lcmdlKHMpe2Zvcihjb25zdCBvIG9mIHMudmFsdWVzKCkpdGhpcy5hZGQobyk7cmV0dXJuIHRoaXN9aGFzKHMpe2NvbnN0IG89SmMocyk/czpzLnVyaTtyZXR1cm4gX2ModGhpcy5maW5kKChzPT5zLnVyaT09PW8pKSl9ZmluZChzKXtyZXR1cm4gdGhpcy5yZWZzLmZpbmQocyl9KnZhbHVlcygpe3lpZWxkKnRoaXMucmVmc31jbGVhbigpe3RoaXMucmVmcy5mb3JFYWNoKChzPT57cy5yZWZTZXQ9dm9pZCAwfSkpLHRoaXMucm9vdFJlZj12b2lkIDAsdGhpcy5yZWZzLmxlbmd0aD0wfX07ZnVuY3Rpb24gX2lkZW50aXR5KHMpe3JldHVybiBzfWNvbnN0IHZ3PV9jdXJyeTEoX2lkZW50aXR5KSxidz17cGFyc2U6e21lZGlhVHlwZToidGV4dC9wbGFpbiIscGFyc2VyczpbXSxwYXJzZXJPcHRzOnt9fSxyZXNvbHZlOntiYXNlVVJJOiIiLHJlc29sdmVyczpbXSxyZXNvbHZlck9wdHM6e30sc3RyYXRlZ2llczpbXSxzdHJhdGVneU9wdHM6e30saW50ZXJuYWw6ITAsZXh0ZXJuYWw6ITAsbWF4RGVwdGg6MS8wfSxkZXJlZmVyZW5jZTp7c3RyYXRlZ2llczpbXSxzdHJhdGVneU9wdHM6e30scmVmU2V0Om51bGwsbWF4RGVwdGg6MS8wLGNpcmN1bGFyOiJpZ25vcmUiLGNpcmN1bGFyUmVwbGFjZXI6dncsaW1tdXRhYmxlOiEwfSxidW5kbGU6e3N0cmF0ZWdpZXM6W10scmVmU2V0Om51bGwsbWF4RGVwdGg6MS8wfX07Y29uc3QgX3c9X2N1cnJ5MigoZnVuY3Rpb24gbGVucyhzLG8pe3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIGNjKChmdW5jdGlvbihzKXtyZXR1cm4gbyhzLGEpfSksaShzKGEpKSl9fX0pKTt2YXIgSWRlbnRpdHk9ZnVuY3Rpb24ocyl7cmV0dXJue3ZhbHVlOnMsbWFwOmZ1bmN0aW9uKG8pe3JldHVybiBJZGVudGl0eShvKHMpKX19fSxTdz1fY3VycnkzKChmdW5jdGlvbiBvdmVyKHMsbyxpKXtyZXR1cm4gcygoZnVuY3Rpb24ocyl7cmV0dXJuIElkZW50aXR5KG8ocykpfSkpKGkpLnZhbHVlfSkpO2NvbnN0IEV3PVN3O2NvbnN0IHd3PW5hKCIiKSx4dz1fdyh0cChbInJlc29sdmUiLCJiYXNlVVJJIl0pLHNfKFsicmVzb2x2ZSIsImJhc2VVUkkiXSkpLGJhc2VVUklEZWZhdWx0PXM9Pnd3KHMpP3VybF9jd2QoKTpzLHV0aWxfbWVyZ2U9KHMsbyk9Pntjb25zdCBpPWVwKHMsbyk7cmV0dXJuIEV3KHh3LGJhc2VVUklEZWZhdWx0LGkpfTtjb25zdCBrdz1jbGFzcyBGaWxlX0ZpbGV7dXJpO21lZGlhVHlwZTtkYXRhO3BhcnNlUmVzdWx0O2NvbnN0cnVjdG9yKHt1cmk6cyxtZWRpYVR5cGU6bz0idGV4dC9wbGFpbiIsZGF0YTppLHBhcnNlUmVzdWx0OmF9KXt0aGlzLnVyaT1zLHRoaXMubWVkaWFUeXBlPW8sdGhpcy5kYXRhPWksdGhpcy5wYXJzZVJlc3VsdD1hfWdldCBleHRlbnNpb24oKXtyZXR1cm4gSmModGhpcy51cmkpPyhzPT57Y29uc3Qgbz1zLmxhc3RJbmRleE9mKCIuIik7cmV0dXJuIG8+PTA/cy5zdWJzdHJpbmcobykudG9Mb3dlckNhc2UoKToiIn0pKHRoaXMudXJpKToiIn10b1N0cmluZygpe2lmKCJzdHJpbmciPT10eXBlb2YgdGhpcy5kYXRhKXJldHVybiB0aGlzLmRhdGE7aWYodGhpcy5kYXRhIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fFsiQXJyYXlCdWZmZXIiXS5pbmNsdWRlcyhyYSh0aGlzLmRhdGEpKXx8QXJyYXlCdWZmZXIuaXNWaWV3KHRoaXMuZGF0YSkpe3JldHVybiBuZXcgVGV4dERlY29kZXIoInV0Zi04IikuZGVjb2RlKHRoaXMuZGF0YSl9cmV0dXJuIFN0cmluZyh0aGlzLmRhdGEpfX07Y29uc3QgT3c9Y2xhc3MgUGx1Z2luRXJyb3IgZXh0ZW5kcyBLb3twbHVnaW47Y29uc3RydWN0b3IocyxvKXtzdXBlcihzLHtjYXVzZTpvLmNhdXNlfSksdGhpcy5wbHVnaW49by5wbHVnaW59fSxwbHVnaW5zX2ZpbHRlcj1hc3luYyhzLG8saSk9Pntjb25zdCBhPWF3YWl0IFByb21pc2UuYWxsKGkubWFwKGhwKFtzXSxvKSkpO3JldHVybiBpLmZpbHRlcigoKHMsbyk9PmFbb10pKX0scnVuPWFzeW5jKHMsbyxpKT0+e2xldCBhO2Zvcihjb25zdCB1IG9mIGkpdHJ5e2NvbnN0IGk9YXdhaXQgdVtzXS5jYWxsKHUsLi4ubyk7cmV0dXJue3BsdWdpbjp1LHJlc3VsdDppfX1jYXRjaChzKXthPW5ldyBPdygiRXJyb3Igd2hpbGUgcnVubmluZyBwbHVnaW4iLHtjYXVzZTpzLHBsdWdpbjp1fSl9cmV0dXJuIFByb21pc2UucmVqZWN0KGEpfTtjb25zdCBDdz1jbGFzcyBEZXJlZmVyZW5jZUVycm9yIGV4dGVuZHMgS297fTtjb25zdCBBdz1jbGFzcyBVbm1hdGNoZWREZXJlZmVyZW5jZVN0cmF0ZWd5RXJyb3IgZXh0ZW5kcyBDd3t9LGRlcmVmZXJlbmNlQXBpRE9NPWFzeW5jKHMsbyk9PntsZXQgaT1zLGE9ITE7aWYoIXF1KHMpKXtjb25zdCBvPWNsb25lU2hhbGxvdyhzKTtvLmNsYXNzZXMucHVzaCgicmVzdWx0IiksaT1uZXcgQ3UoW29dKSxhPSEwfWNvbnN0IHU9bmV3IGt3KHt1cmk6by5yZXNvbHZlLmJhc2VVUkkscGFyc2VSZXN1bHQ6aSxtZWRpYVR5cGU6by5wYXJzZS5tZWRpYVR5cGV9KSxfPWF3YWl0IHBsdWdpbnNfZmlsdGVyKCJjYW5EZXJlZmVyZW5jZSIsW3Usb10sby5kZXJlZmVyZW5jZS5zdHJhdGVnaWVzKTtpZihjcChfKSl0aHJvdyBuZXcgQXcodS51cmkpO3RyeXtjb25zdHtyZXN1bHQ6c309YXdhaXQgcnVuKCJkZXJlZmVyZW5jZSIsW3Usb10sXyk7cmV0dXJuIGE/cy5nZXQoMCk6c31jYXRjaChzKXt0aHJvdyBuZXcgQ3coYEVycm9yIHdoaWxlIGRlcmVmZXJlbmNpbmcgZmlsZSAiJHt1LnVyaX0iYCx7Y2F1c2U6c30pfX07Y29uc3Qganc9Y2xhc3MgUGFyc2VFcnJvciBleHRlbmRzIEtve307Y29uc3QgSXc9Y2xhc3MgUGFyc2VyRXJyb3IgZXh0ZW5kcyBqd3t9O2NvbnN0IFB3PWNsYXNzIFBhcnNlcl9QYXJzZXJ7bmFtZTthbGxvd0VtcHR5O3NvdXJjZU1hcDtmaWxlRXh0ZW5zaW9uczttZWRpYVR5cGVzO2NvbnN0cnVjdG9yKHtuYW1lOnMsYWxsb3dFbXB0eTpvPSEwLHNvdXJjZU1hcDppPSExLGZpbGVFeHRlbnNpb25zOmE9W10sbWVkaWFUeXBlczp1PVtdfSl7dGhpcy5uYW1lPXMsdGhpcy5hbGxvd0VtcHR5PW8sdGhpcy5zb3VyY2VNYXA9aSx0aGlzLmZpbGVFeHRlbnNpb25zPWEsdGhpcy5tZWRpYVR5cGVzPXV9fTtjb25zdCBUdz1jbGFzcyBCaW5hcnlQYXJzZXIgZXh0ZW5kcyBQd3tjb25zdHJ1Y3RvcihzKXtzdXBlcih7Li4ubnVsbCE9cz9zOnt9LG5hbWU6ImJpbmFyeSJ9KX1jYW5QYXJzZShzKXtyZXR1cm4gMD09PXRoaXMuZmlsZUV4dGVuc2lvbnMubGVuZ3RofHx0aGlzLmZpbGVFeHRlbnNpb25zLmluY2x1ZGVzKHMuZXh0ZW5zaW9uKX1wYXJzZShzKXt0cnl7Y29uc3Qgbz11bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQocy50b1N0cmluZygpKSksaT1idG9hKG8pLGE9bmV3IEN1O2lmKDAhPT1pLmxlbmd0aCl7Y29uc3Qgcz1uZXcgU3UuT20oaSk7cy5jbGFzc2VzLnB1c2goInJlc3VsdCIpLGEucHVzaChzKX1yZXR1cm4gYX1jYXRjaChvKXt0aHJvdyBuZXcgSXcoYEVycm9yIHBhcnNpbmcgIiR7cy51cml9ImAse2NhdXNlOm99KX19fTtjb25zdCBOdz1jbGFzcyBSZXNvbHZlU3RyYXRlZ3l7bmFtZTtjb25zdHJ1Y3Rvcih7bmFtZTpzfSl7dGhpcy5uYW1lPXN9fTtjb25zdCBNdz1jbGFzcyBPcGVuQVBJM18xUmVzb2x2ZVN0cmF0ZWd5IGV4dGVuZHMgTnd7Y29uc3RydWN0b3Iocyl7c3VwZXIoey4uLm51bGwhPXM/czp7fSxuYW1lOiJvcGVuYXBpLTMtMSJ9KX1jYW5SZXNvbHZlKHMsbyl7Y29uc3QgaT1vLmRlcmVmZXJlbmNlLnN0cmF0ZWdpZXMuZmluZCgocz0+Im9wZW5hcGktMy0xIj09PXMubmFtZSkpO3JldHVybiB2b2lkIDAhPT1pJiZpLmNhbkRlcmVmZXJlbmNlKHMsbyl9YXN5bmMgcmVzb2x2ZShzLG8pe2NvbnN0IGk9by5kZXJlZmVyZW5jZS5zdHJhdGVnaWVzLmZpbmQoKHM9PiJvcGVuYXBpLTMtMSI9PT1zLm5hbWUpKTtpZih2b2lkIDA9PT1pKXRocm93IG5ldyBBdygnIm9wZW5hcGktMy0xIiBkZXJlZmVyZW5jZSBzdHJhdGVneSBpcyBub3QgYXZhaWxhYmxlLicpO2NvbnN0IGE9bmV3IHl3LHU9dXRpbF9tZXJnZShvLHtyZXNvbHZlOntpbnRlcm5hbDohMX0sZGVyZWZlcmVuY2U6e3JlZlNldDphfX0pO3JldHVybiBhd2FpdCBpLmRlcmVmZXJlbmNlKHMsdSksYX19O2NvbnN0IFJ3PWNsYXNzIFJlc29sdmVye25hbWU7Y29uc3RydWN0b3Ioe25hbWU6c30pe3RoaXMubmFtZT1zfX07Y29uc3QgRHc9Y2xhc3MgSFRUUFJlc29sdmVyIGV4dGVuZHMgUnd7dGltZW91dDtyZWRpcmVjdHM7d2l0aENyZWRlbnRpYWxzO2NvbnN0cnVjdG9yKHMpe2NvbnN0e25hbWU6bz0iaHR0cC1yZXNvbHZlciIsdGltZW91dDppPTVlMyxyZWRpcmVjdHM6YT01LHdpdGhDcmVkZW50aWFsczp1PSExfT1udWxsIT1zP3M6e307c3VwZXIoe25hbWU6b30pLHRoaXMudGltZW91dD1pLHRoaXMucmVkaXJlY3RzPWEsdGhpcy53aXRoQ3JlZGVudGlhbHM9dX1jYW5SZWFkKHMpe3JldHVybiBpc0h0dHBVcmwocy51cmkpfX07Y29uc3QgTHc9Y2xhc3MgUmVzb2x2ZUVycm9yIGV4dGVuZHMgS297fTtjb25zdCBGdz1jbGFzcyBSZXNvbHZlckVycm9yIGV4dGVuZHMgTHd7fSx7QWJvcnRDb250cm9sbGVyOkJ3LEFib3J0U2lnbmFsOiR3fT1nbG9iYWxUaGlzO3ZvaWQgMD09PWdsb2JhbFRoaXMuQWJvcnRDb250cm9sbGVyJiYoZ2xvYmFsVGhpcy5BYm9ydENvbnRyb2xsZXI9QncpLHZvaWQgMD09PWdsb2JhbFRoaXMuQWJvcnRTaWduYWwmJihnbG9iYWxUaGlzLkFib3J0U2lnbmFsPSR3KTtjb25zdCBxdz1jbGFzcyBIVFRQUmVzb2x2ZXJTd2FnZ2VyQ2xpZW50IGV4dGVuZHMgRHd7c3dhZ2dlckhUVFBDbGllbnQ9aHR0cF9odHRwO3N3YWdnZXJIVFRQQ2xpZW50Q29uZmlnO2NvbnN0cnVjdG9yKHtzd2FnZ2VySFRUUENsaWVudDpzPWh0dHBfaHR0cCxzd2FnZ2VySFRUUENsaWVudENvbmZpZzpvPXt9LC4uLml9PXt9KXtzdXBlcih7Li4uaSxuYW1lOiJodHRwLXN3YWdnZXItY2xpZW50In0pLHRoaXMuc3dhZ2dlckhUVFBDbGllbnQ9cyx0aGlzLnN3YWdnZXJIVFRQQ2xpZW50Q29uZmlnPW99Z2V0SHR0cENsaWVudCgpe3JldHVybiB0aGlzLnN3YWdnZXJIVFRQQ2xpZW50fWFzeW5jIHJlYWQocyl7Y29uc3Qgbz10aGlzLmdldEh0dHBDbGllbnQoKSxpPW5ldyBBYm9ydENvbnRyb2xsZXIse3NpZ25hbDphfT1pLHU9c2V0VGltZW91dCgoKCk9PntpLmFib3J0KCl9KSx0aGlzLnRpbWVvdXQpLF89dGhpcy5nZXRIdHRwQ2xpZW50KCkud2l0aENyZWRlbnRpYWxzfHx0aGlzLndpdGhDcmVkZW50aWFscz8iaW5jbHVkZSI6InNhbWUtb3JpZ2luIix3PTA9PT10aGlzLnJlZGlyZWN0cz8iZXJyb3IiOiJmb2xsb3ciLHg9dGhpcy5yZWRpcmVjdHM+MD90aGlzLnJlZGlyZWN0czp2b2lkIDA7dHJ5e3JldHVybihhd2FpdCBvKHt1cmw6cy51cmksc2lnbmFsOmEsdXNlckZldGNoOmFzeW5jKHMsbyk9PntsZXQgaT1hd2FpdCBmZXRjaChzLG8pO3RyeXtpLmhlYWRlcnMuZGVsZXRlKCJDb250ZW50LVR5cGUiKX1jYXRjaHtpPW5ldyBSZXNwb25zZShpLmJvZHksey4uLmksaGVhZGVyczpuZXcgSGVhZGVycyhpLmhlYWRlcnMpfSksaS5oZWFkZXJzLmRlbGV0ZSgiQ29udGVudC1UeXBlIil9cmV0dXJuIGl9LGNyZWRlbnRpYWxzOl8scmVkaXJlY3Q6dyxmb2xsb3c6eCwuLi50aGlzLnN3YWdnZXJIVFRQQ2xpZW50Q29uZmlnfSkpLnRleHQuYXJyYXlCdWZmZXIoKX1jYXRjaChvKXt0aHJvdyBuZXcgRncoYEVycm9yIGRvd25sb2FkaW5nICIke3MudXJpfSJgLHtjYXVzZTpvfSl9ZmluYWxseXtjbGVhclRpbWVvdXQodSl9fX0sdHJhbnNmb3JtZXJzX2Zyb209KHMsbz1mcCk9PntpZihKYyhzKSl0cnl7cmV0dXJuIG8uZnJvbVJlZnJhY3QoSlNPTi5wYXJzZShzKSl9Y2F0Y2h7fXJldHVybiBmdShzKSYmaWQoImVsZW1lbnQiLHMpP28uZnJvbVJlZnJhY3Qocyk6by50b0VsZW1lbnQocyl9O2NvbnN0IFZ3PWNsYXNzIEpTT05QYXJzZXIgZXh0ZW5kcyBQd3tjb25zdHJ1Y3RvcihzPXt9KXtzdXBlcih7bmFtZToianNvbi1zd2FnZ2VyLWNsaWVudCIsbWVkaWFUeXBlczpbImFwcGxpY2F0aW9uL2pzb24iXSwuLi5zfSl9YXN5bmMgY2FuUGFyc2Uocyl7Y29uc3Qgbz0wPT09dGhpcy5maWxlRXh0ZW5zaW9ucy5sZW5ndGh8fHRoaXMuZmlsZUV4dGVuc2lvbnMuaW5jbHVkZXMocy5leHRlbnNpb24pLGk9dGhpcy5tZWRpYVR5cGVzLmluY2x1ZGVzKHMubWVkaWFUeXBlKTtpZighbylyZXR1cm4hMTtpZihpKXJldHVybiEwO2lmKCFpKXRyeXtyZXR1cm4gSlNPTi5wYXJzZShzLnRvU3RyaW5nKCkpLCEwfWNhdGNoKHMpe3JldHVybiExfXJldHVybiExfWFzeW5jIHBhcnNlKHMpe2lmKHRoaXMuc291cmNlTWFwKXRocm93IG5ldyBJdygianNvbi1zd2FnZ2VyLWNsaWVudCBwYXJzZXIgcGx1Z2luIGRvZXNuJ3Qgc3VwcG9ydCBzb3VyY2VNYXBzIG9wdGlvbiIpO2NvbnN0IG89bmV3IEN1LGk9cy50b1N0cmluZygpO2lmKHRoaXMuYWxsb3dFbXB0eSYmIiI9PT1pLnRyaW0oKSlyZXR1cm4gbzt0cnl7Y29uc3Qgcz10cmFuc2Zvcm1lcnNfZnJvbShKU09OLnBhcnNlKGkpKTtyZXR1cm4gcy5jbGFzc2VzLnB1c2goInJlc3VsdCIpLG8ucHVzaChzKSxvfWNhdGNoKG8pe3Rocm93IG5ldyBJdyhgRXJyb3IgcGFyc2luZyAiJHtzLnVyaX0iYCx7Y2F1c2U6b30pfX19O2NvbnN0IFV3PWNsYXNzIFlBTUxQYXJzZXIgZXh0ZW5kcyBQd3tjb25zdHJ1Y3RvcihzPXt9KXtzdXBlcih7bmFtZToieWFtbC0xLTItc3dhZ2dlci1jbGllbnQiLG1lZGlhVHlwZXM6WyJ0ZXh0L3lhbWwiLCJhcHBsaWNhdGlvbi95YW1sIl0sLi4uc30pfWFzeW5jIGNhblBhcnNlKHMpe2NvbnN0IG89MD09PXRoaXMuZmlsZUV4dGVuc2lvbnMubGVuZ3RofHx0aGlzLmZpbGVFeHRlbnNpb25zLmluY2x1ZGVzKHMuZXh0ZW5zaW9uKSxpPXRoaXMubWVkaWFUeXBlcy5pbmNsdWRlcyhzLm1lZGlhVHlwZSk7aWYoIW8pcmV0dXJuITE7aWYoaSlyZXR1cm4hMDtpZighaSl0cnl7cmV0dXJuIGZuLmxvYWQocy50b1N0cmluZygpLHtzY2hlbWE6cm59KSwhMH1jYXRjaChzKXtyZXR1cm4hMX1yZXR1cm4hMX1hc3luYyBwYXJzZShzKXtpZih0aGlzLnNvdXJjZU1hcCl0aHJvdyBuZXcgSXcoInlhbWwtMS0yLXN3YWdnZXItY2xpZW50IHBhcnNlciBwbHVnaW4gZG9lc24ndCBzdXBwb3J0IHNvdXJjZU1hcHMgb3B0aW9uIik7Y29uc3Qgbz1uZXcgQ3UsaT1zLnRvU3RyaW5nKCk7dHJ5e2NvbnN0IHM9Zm4ubG9hZChpLHtzY2hlbWE6cm59KTtpZih0aGlzLmFsbG93RW1wdHkmJnZvaWQgMD09PXMpcmV0dXJuIG87Y29uc3QgYT10cmFuc2Zvcm1lcnNfZnJvbShzKTtyZXR1cm4gYS5jbGFzc2VzLnB1c2goInJlc3VsdCIpLG8ucHVzaChhKSxvfWNhdGNoKG8pe3Rocm93IG5ldyBJdyhgRXJyb3IgcGFyc2luZyAiJHtzLnVyaX0iYCx7Y2F1c2U6b30pfX19O2NvbnN0IHp3PWNsYXNzIE9wZW5BUElKU09OM18xUGFyc2VyIGV4dGVuZHMgUHd7ZGV0ZWN0aW9uUmVnRXhwPS8ib3BlbmFwaSJccyo6XHMqIig/PHZlcnNpb25fanNvbj4zXC4xXC4oPzpbMS05XVxkKnwwKSkiLztjb25zdHJ1Y3RvcihzPXt9KXtzdXBlcih7bmFtZToib3BlbmFwaS1qc29uLTMtMS1zd2FnZ2VyLWNsaWVudCIsbWVkaWFUeXBlczpuZXcgT3BlbkFQSU1lZGlhVHlwZXMoLi4ubXcuZmlsdGVyQnlGb3JtYXQoImdlbmVyaWMiKSwuLi5tdy5maWx0ZXJCeUZvcm1hdCgianNvbiIpKSwuLi5zfSl9YXN5bmMgY2FuUGFyc2Uocyl7Y29uc3Qgbz0wPT09dGhpcy5maWxlRXh0ZW5zaW9ucy5sZW5ndGh8fHRoaXMuZmlsZUV4dGVuc2lvbnMuaW5jbHVkZXMocy5leHRlbnNpb24pLGk9dGhpcy5tZWRpYVR5cGVzLmluY2x1ZGVzKHMubWVkaWFUeXBlKTtpZighbylyZXR1cm4hMTtpZihpKXJldHVybiEwO2lmKCFpKXRyeXtjb25zdCBvPXMudG9TdHJpbmcoKTtyZXR1cm4gSlNPTi5wYXJzZShvKSx0aGlzLmRldGVjdGlvblJlZ0V4cC50ZXN0KG8pfWNhdGNoKHMpe3JldHVybiExfXJldHVybiExfWFzeW5jIHBhcnNlKHMpe2lmKHRoaXMuc291cmNlTWFwKXRocm93IG5ldyBJdygib3BlbmFwaS1qc29uLTMtMS1zd2FnZ2VyLWNsaWVudCBwYXJzZXIgcGx1Z2luIGRvZXNuJ3Qgc3VwcG9ydCBzb3VyY2VNYXBzIG9wdGlvbiIpO2NvbnN0IG89bmV3IEN1LGk9cy50b1N0cmluZygpO2lmKHRoaXMuYWxsb3dFbXB0eSYmIiI9PT1pLnRyaW0oKSlyZXR1cm4gbzt0cnl7Y29uc3Qgcz1KU09OLnBhcnNlKGkpLGE9SWIucmVmcmFjdChzLHRoaXMucmVmcmFjdG9yT3B0cyk7cmV0dXJuIGEuY2xhc3Nlcy5wdXNoKCJyZXN1bHQiKSxvLnB1c2goYSksb31jYXRjaChvKXt0aHJvdyBuZXcgSXcoYEVycm9yIHBhcnNpbmcgIiR7cy51cml9ImAse2NhdXNlOm99KX19fTtjb25zdCBXdz1jbGFzcyBPcGVuQVBJWUFNTDMxUGFyc2VyIGV4dGVuZHMgUHd7ZGV0ZWN0aW9uUmVnRXhwPS8oPzxZQU1MPl4oWyInXT8pb3BlbmFwaVwyXHMqOlxzKihbIiddPykoPzx2ZXJzaW9uX3lhbWw+M1wuMVwuKD86WzEtOV1cZCp8MCkpXDMoPzpccyt8JCkpfCg/PEpTT04+Im9wZW5hcGkiXHMqOlxzKiIoPzx2ZXJzaW9uX2pzb24+M1wuMVwuKD86WzEtOV1cZCp8MCkpIikvbTtjb25zdHJ1Y3RvcihzPXt9KXtzdXBlcih7bmFtZToib3BlbmFwaS15YW1sLTMtMS1zd2FnZ2VyLWNsaWVudCIsbWVkaWFUeXBlczpuZXcgT3BlbkFQSU1lZGlhVHlwZXMoLi4ubXcuZmlsdGVyQnlGb3JtYXQoImdlbmVyaWMiKSwuLi5tdy5maWx0ZXJCeUZvcm1hdCgieWFtbCIpKSwuLi5zfSl9YXN5bmMgY2FuUGFyc2Uocyl7Y29uc3Qgbz0wPT09dGhpcy5maWxlRXh0ZW5zaW9ucy5sZW5ndGh8fHRoaXMuZmlsZUV4dGVuc2lvbnMuaW5jbHVkZXMocy5leHRlbnNpb24pLGk9dGhpcy5tZWRpYVR5cGVzLmluY2x1ZGVzKHMubWVkaWFUeXBlKTtpZighbylyZXR1cm4hMTtpZihpKXJldHVybiEwO2lmKCFpKXRyeXtjb25zdCBvPXMudG9TdHJpbmcoKTtyZXR1cm4gZm4ubG9hZChvKSx0aGlzLmRldGVjdGlvblJlZ0V4cC50ZXN0KG8pfWNhdGNoKHMpe3JldHVybiExfXJldHVybiExfWFzeW5jIHBhcnNlKHMpe2lmKHRoaXMuc291cmNlTWFwKXRocm93IG5ldyBJdygib3BlbmFwaS15YW1sLTMtMS1zd2FnZ2VyLWNsaWVudCBwYXJzZXIgcGx1Z2luIGRvZXNuJ3Qgc3VwcG9ydCBzb3VyY2VNYXBzIG9wdGlvbiIpO2NvbnN0IG89bmV3IEN1LGk9cy50b1N0cmluZygpO3RyeXtjb25zdCBzPWZuLmxvYWQoaSx7c2NoZW1hOnJufSk7aWYodGhpcy5hbGxvd0VtcHR5JiZ2b2lkIDA9PT1zKXJldHVybiBvO2NvbnN0IGE9SWIucmVmcmFjdChzLHRoaXMucmVmcmFjdG9yT3B0cyk7cmV0dXJuIGEuY2xhc3Nlcy5wdXNoKCJyZXN1bHQiKSxvLnB1c2goYSksb31jYXRjaChvKXt0aHJvdyBuZXcgSXcoYEVycm9yIHBhcnNpbmcgIiR7cy51cml9ImAse2NhdXNlOm99KX19fTtjb25zdCBKdz1fY3VycnkzKChmdW5jdGlvbiBwcm9wRXEocyxvLGkpe3JldHVybiBuYShzLERhKG8saSkpfSkpO2NvbnN0IEh3PWNsYXNzIERlcmVmZXJlbmNlU3RyYXRlZ3l7bmFtZTtjb25zdHJ1Y3Rvcih7bmFtZTpzfSl7dGhpcy5uYW1lPXN9fTtjb25zdCBLdz1fY3VycnkyKChmdW5jdGlvbiBub25lKHMsbyl7cmV0dXJuIHh1KF9jb21wbGVtZW50KHMpLG8pfSkpO3ZhciBHdz1fX3dlYnBhY2tfcmVxdWlyZV9fKDgwNjgpO2NvbnN0IFl3PWNsYXNzIEVsZW1lbnRJZGVudGl0eUVycm9yIGV4dGVuZHMgR297dmFsdWU7Y29uc3RydWN0b3IocyxvKXtzdXBlcihzLG8pLHZvaWQgMCE9PW8mJih0aGlzLnZhbHVlPW8udmFsdWUpfX07Y2xhc3MgSWRlbnRpdHlNYW5hZ2Vye3V1aWQ7aWRlbnRpdHlNYXA7Y29uc3RydWN0b3Ioe2xlbmd0aDpzPTZ9PXt9KXt0aGlzLnV1aWQ9bmV3IEd3KHtsZW5ndGg6c30pLHRoaXMuaWRlbnRpdHlNYXA9bmV3IFdlYWtNYXB9aWRlbnRpZnkocyl7aWYoIWp1KHMpKXRocm93IG5ldyBZdygiQ2Fubm90IG5vdCBpZGVudGlmeSB0aGUgZWxlbWVudC4gYGVsZW1lbnRgIGlzIG5laXRoZXIgc3RydWN0dXJhbGx5IGNvbXBhdGlibGUgbm9yIGEgc3ViY2xhc3Mgb2YgYW4gRWxlbWVudCBjbGFzcy4iLHt2YWx1ZTpzfSk7aWYocy5tZXRhLmhhc0tleSgiaWQiKSYmSXUocy5tZXRhLmdldCgiaWQiKSkmJiFzLm1ldGEuZ2V0KCJpZCIpLmVxdWFscygiIikpcmV0dXJuIHMuaWQ7aWYodGhpcy5pZGVudGl0eU1hcC5oYXMocykpcmV0dXJuIHRoaXMuaWRlbnRpdHlNYXAuZ2V0KHMpO2NvbnN0IG89bmV3IFN1Lk9tKHRoaXMuZ2VuZXJhdGVJZCgpKTtyZXR1cm4gdGhpcy5pZGVudGl0eU1hcC5zZXQocyxvKSxvfWZvcmdldChzKXtyZXR1cm4hIXRoaXMuaWRlbnRpdHlNYXAuaGFzKHMpJiYodGhpcy5pZGVudGl0eU1hcC5kZWxldGUocyksITApfWdlbmVyYXRlSWQoKXtyZXR1cm4gdGhpcy51dWlkLnJhbmRvbVVVSUQoKX19bmV3IElkZW50aXR5TWFuYWdlcjtjb25zdCBYdz1fY3VycnkzKChmdW5jdGlvbiBwYXRoT3IocyxvLGkpe3JldHVybiBOYShzLF9wYXRoKG8saSkpfSkpLHRyYXZlcnNhbF9maW5kPShzLG8pPT57Y29uc3QgaT1uZXcgUHJlZGljYXRlVmlzaXRvcih7cHJlZGljYXRlOnMscmV0dXJuT25UcnVlOlV1fSk7cmV0dXJuIHZpc2l0b3JfdmlzaXQobyxpKSxYdyh2b2lkIDAsWzBdLGkucmVzdWx0KX07Y29uc3QgUXc9Y2xhc3MgSnNvblNjaGVtYSRhbmNob3JFcnJvciBleHRlbmRzIEtve307Y29uc3QgWnc9Y2xhc3MgRXZhbHVhdGlvbkpzb25TY2hlbWEkYW5jaG9yRXJyb3IgZXh0ZW5kcyBRd3t9O2NvbnN0IGV4PWNsYXNzIEludmFsaWRKc29uU2NoZW1hJGFuY2hvckVycm9yIGV4dGVuZHMgUXd7Y29uc3RydWN0b3Iocyl7c3VwZXIoYEludmFsaWQgSlNPTiBTY2hlbWEgJGFuY2hvciAiJHtzfSIuYCl9fSxpc0FuY2hvcj1zPT4vXltBLVphLXpfXVtBLVphLXpfMC05Li1dKiQvLnRlc3QocyksdXJpVG9BbmNob3I9cz0+e2NvbnN0IG89Z2V0SGFzaChzKTtyZXR1cm4gZGQoIiMiLG8pfSwkYW5jaG9yX2V2YWx1YXRlPShzLG8pPT57Y29uc3QgaT0ocz0+e2lmKCFpc0FuY2hvcihzKSl0aHJvdyBuZXcgZXgocyk7cmV0dXJuIHN9KShzKSxhPXRyYXZlcnNhbF9maW5kKChzPT5wRShzKSYmc2VyaWFsaXplcnNfdmFsdWUocy4kYW5jaG9yKT09PWkpLG8pO2lmKGJjKGEpKXRocm93IG5ldyBadyhgRXZhbHVhdGlvbiBmYWlsZWQgb24gdG9rZW46ICIke2l9ImApO3JldHVybiBhfSx0cmF2ZXJzYWxfZmlsdGVyPShzLG8pPT57Y29uc3QgaT1uZXcgUHJlZGljYXRlVmlzaXRvcih7cHJlZGljYXRlOnN9KTtyZXR1cm4gdmlzaXRvcl92aXNpdChvLGkpLG5ldyBTdS5HNihpLnJlc3VsdCl9O2NvbnN0IHR4PWNsYXNzIEpzb25TY2hlbWFVcmlFcnJvciBleHRlbmRzIEtve307Y29uc3Qgcng9Y2xhc3MgRXZhbHVhdGlvbkpzb25TY2hlbWFVcmlFcnJvciBleHRlbmRzIHR4e30scmVzb2x2ZVNjaGVtYSRyZWZGaWVsZD0ocyxvKT0+e2lmKHZvaWQgMD09PW8uJHJlZilyZXR1cm47Y29uc3QgaT1nZXRIYXNoKHNlcmlhbGl6ZXJzX3ZhbHVlKG8uJHJlZikpLGE9c2VyaWFsaXplcnNfdmFsdWUoby5tZXRhLmdldCgiYW5jZXN0b3JzU2NoZW1hSWRlbnRpZmllcnMiKSksdT1DYSgoKHMsbyk9PnJlc29sdmUocyxzYW5pdGl6ZShzdHJpcEhhc2gobykpKSkscyxbLi4uYSxzZXJpYWxpemVyc192YWx1ZShvLiRyZWYpXSk7cmV0dXJuYCR7dX0keyIjIj09PWk/IiI6aX1gfSxyZWZyYWN0VG9TY2hlbWFFbGVtZW50PXM9PntpZihyZWZyYWN0VG9TY2hlbWFFbGVtZW50LmNhY2hlLmhhcyhzKSlyZXR1cm4gcmVmcmFjdFRvU2NoZW1hRWxlbWVudC5jYWNoZS5nZXQocyk7Y29uc3Qgbz11Uy5yZWZyYWN0KHMpO3JldHVybiByZWZyYWN0VG9TY2hlbWFFbGVtZW50LmNhY2hlLnNldChzLG8pLG99O3JlZnJhY3RUb1NjaGVtYUVsZW1lbnQuY2FjaGU9bmV3IFdlYWtNYXA7Y29uc3QgbWF5YmVSZWZyYWN0VG9TY2hlbWFFbGVtZW50PXM9PmlzUHJpbWl0aXZlRWxlbWVudChzKT9yZWZyYWN0VG9TY2hlbWFFbGVtZW50KHMpOnMsdXJpX2V2YWx1YXRlPShzLG8pPT57Y29uc3R7Y2FjaGU6aX09dXJpX2V2YWx1YXRlLGE9c3RyaXBIYXNoKHMpLGlzU2NoZW1hRWxlbWVudFdpdGgkaWQ9cz0+cEUocykmJnZvaWQgMCE9PXMuJGlkO2lmKCFpLmhhcyhvKSl7Y29uc3Qgcz10cmF2ZXJzYWxfZmlsdGVyKGlzU2NoZW1hRWxlbWVudFdpdGgkaWQsbyk7aS5zZXQobyxBcnJheS5mcm9tKHMpKX1jb25zdCB1PWkuZ2V0KG8pLmZpbmQoKHM9Pntjb25zdCBvPSgocyxvKT0+e2lmKHZvaWQgMD09PW8uJGlkKXJldHVybjtjb25zdCBpPXNlcmlhbGl6ZXJzX3ZhbHVlKG8ubWV0YS5nZXQoImFuY2VzdG9yc1NjaGVtYUlkZW50aWZpZXJzIikpO3JldHVybiBDYSgoKHMsbyk9PnJlc29sdmUocyxzYW5pdGl6ZShzdHJpcEhhc2gobykpKSkscyxpKX0pKGEscyk7cmV0dXJuIG89PT1hfSkpO2lmKGJjKHUpKXRocm93IG5ldyByeChgRXZhbHVhdGlvbiBmYWlsZWQgb24gVVJJOiAiJHtzfSJgKTtyZXR1cm4gaXNBbmNob3IodXJpVG9BbmNob3IocykpPyRhbmNob3JfZXZhbHVhdGUodXJpVG9BbmNob3IocyksdSk6YXBpZG9tX2V2YWx1YXRlKHUsZnJvbVVSSVJlZmVyZW5jZShzKSl9O3VyaV9ldmFsdWF0ZS5jYWNoZT1uZXcgV2Vha01hcDtjb25zdCBueD1jbGFzcyBNYXhpbXVtRGVyZWZlcmVuY2VEZXB0aEVycm9yIGV4dGVuZHMgQ3d7fTtjb25zdCBzeD1jbGFzcyBNYXhpbXVtUmVzb2x2ZURlcHRoRXJyb3IgZXh0ZW5kcyBMd3t9O2NvbnN0IG94PWNsYXNzIFVubWF0Y2hlZFJlc29sdmVyRXJyb3IgZXh0ZW5kcyBGd3t9LGFwaWRvbV9yZWZlcmVuY2Vfc3JjX3BhcnNlPWFzeW5jKHMsbyk9Pntjb25zdCBpPW5ldyBrdyh7dXJpOnNhbml0aXplKHN0cmlwSGFzaChzKSksbWVkaWFUeXBlOm8ucGFyc2UubWVkaWFUeXBlfSksYT1hd2FpdChhc3luYyhzLG8pPT57Y29uc3QgaT1vLnJlc29sdmUucmVzb2x2ZXJzLm1hcCgocz0+e2NvbnN0IGk9T2JqZWN0LmNyZWF0ZShzKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihpLG8ucmVzb2x2ZS5yZXNvbHZlck9wdHMpfSkpLGE9YXdhaXQgcGx1Z2luc19maWx0ZXIoImNhblJlYWQiLFtzLG9dLGkpO2lmKGNwKGEpKXRocm93IG5ldyBveChzLnVyaSk7dHJ5e2NvbnN0e3Jlc3VsdDpvfT1hd2FpdCBydW4oInJlYWQiLFtzXSxhKTtyZXR1cm4gb31jYXRjaChvKXt0aHJvdyBuZXcgTHcoYEVycm9yIHdoaWxlIHJlYWRpbmcgZmlsZSAiJHtzLnVyaX0iYCx7Y2F1c2U6b30pfX0pKGksbyk7cmV0dXJuKGFzeW5jKHMsbyk9Pntjb25zdCBpPW8ucGFyc2UucGFyc2Vycy5tYXAoKHM9Pntjb25zdCBpPU9iamVjdC5jcmVhdGUocyk7cmV0dXJuIE9iamVjdC5hc3NpZ24oaSxvLnBhcnNlLnBhcnNlck9wdHMpfSkpLGE9YXdhaXQgcGx1Z2luc19maWx0ZXIoImNhblBhcnNlIixbcyxvXSxpKTtpZihjcChhKSl0aHJvdyBuZXcgb3gocy51cmkpO3RyeXtjb25zdHtwbHVnaW46aSxyZXN1bHQ6dX09YXdhaXQgcnVuKCJwYXJzZSIsW3Msb10sYSk7cmV0dXJuIWkuYWxsb3dFbXB0eSYmdS5pc0VtcHR5P1Byb21pc2UucmVqZWN0KG5ldyBqdyhgRXJyb3Igd2hpbGUgcGFyc2luZyBmaWxlICIke3MudXJpfSIuIEZpbGUgaXMgZW1wdHkuYCkpOnV9Y2F0Y2gobyl7dGhyb3cgbmV3IGp3KGBFcnJvciB3aGlsZSBwYXJzaW5nIGZpbGUgIiR7cy51cml9ImAse2NhdXNlOm99KX19KShuZXcga3coey4uLmksZGF0YTphfSksbyl9O2NsYXNzIEFuY2VzdG9yTGluZWFnZSBleHRlbmRzIEFycmF5e2luY2x1ZGVzQ3ljbGUocyl7cmV0dXJuIHRoaXMuZmlsdGVyKChvPT5vLmhhcyhzKSkpLmxlbmd0aD4xfWluY2x1ZGVzKHMsbyl7cmV0dXJuIHMgaW5zdGFuY2VvZiBTZXQ/c3VwZXIuaW5jbHVkZXMocyxvKTp0aGlzLnNvbWUoKG89Pm8uaGFzKHMpKSl9ZmluZEl0ZW0ocyl7Zm9yKGNvbnN0IG8gb2YgdGhpcylmb3IoY29uc3QgaSBvZiBvKWlmKGp1KGkpJiZzKGkpKXJldHVybiBpfX1jb25zdCBpeD12aXNpdG9yX3Zpc2l0W1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLnByb21pc2lmeS5jdXN0b20iKV0sYXg9bmV3IElkZW50aXR5TWFuYWdlcixtdXRhdGlvblJlcGxhY2VyPShzLG8saSxhKT0+e0R1KGEpP2EudmFsdWU9czpBcnJheS5pc0FycmF5KGEpJiYoYVtpXT1zKX07Y2xhc3MgT3BlbkFQSTNfMURlcmVmZXJlbmNlVmlzaXRvcntpbmRpcmVjdGlvbnM7bmFtZXNwYWNlO3JlZmVyZW5jZTtvcHRpb25zO2FuY2VzdG9ycztyZWZyYWN0Q2FjaGU7Y29uc3RydWN0b3Ioe3JlZmVyZW5jZTpzLG5hbWVzcGFjZTpvLG9wdGlvbnM6aSxpbmRpcmVjdGlvbnM6YT1bXSxhbmNlc3RvcnM6dT1uZXcgQW5jZXN0b3JMaW5lYWdlLHJlZnJhY3RDYWNoZTpfPW5ldyBNYXB9KXt0aGlzLmluZGlyZWN0aW9ucz1hLHRoaXMubmFtZXNwYWNlPW8sdGhpcy5yZWZlcmVuY2U9cyx0aGlzLm9wdGlvbnM9aSx0aGlzLmFuY2VzdG9ycz1uZXcgQW5jZXN0b3JMaW5lYWdlKC4uLnUpLHRoaXMucmVmcmFjdENhY2hlPV99dG9CYXNlVVJJKHMpe3JldHVybiByZXNvbHZlKHRoaXMucmVmZXJlbmNlLnVyaSxzYW5pdGl6ZShzdHJpcEhhc2gocykpKX1hc3luYyB0b1JlZmVyZW5jZShzKXtpZih0aGlzLnJlZmVyZW5jZS5kZXB0aD49dGhpcy5vcHRpb25zLnJlc29sdmUubWF4RGVwdGgpdGhyb3cgbmV3IHN4KGBNYXhpbXVtIHJlc29sdXRpb24gZGVwdGggb2YgJHt0aGlzLm9wdGlvbnMucmVzb2x2ZS5tYXhEZXB0aH0gaGFzIGJlZW4gZXhjZWVkZWQgYnkgZmlsZSAiJHt0aGlzLnJlZmVyZW5jZS51cml9ImApO2NvbnN0IG89dGhpcy50b0Jhc2VVUkkocykse3JlZlNldDppfT10aGlzLnJlZmVyZW5jZTtpZihpLmhhcyhvKSlyZXR1cm4gaS5maW5kKEp3KG8sInVyaSIpKTtjb25zdCBhPWF3YWl0IGFwaWRvbV9yZWZlcmVuY2Vfc3JjX3BhcnNlKHVuc2FuaXRpemUobyksey4uLnRoaXMub3B0aW9ucyxwYXJzZTp7Li4udGhpcy5vcHRpb25zLnBhcnNlLG1lZGlhVHlwZToidGV4dC9wbGFpbiJ9fSksdT1uZXcgZ3coe3VyaTpvLHZhbHVlOmNsb25lRGVlcChhKSxkZXB0aDp0aGlzLnJlZmVyZW5jZS5kZXB0aCsxfSk7aWYoaS5hZGQodSksdGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLmltbXV0YWJsZSl7Y29uc3Qgcz1uZXcgZ3coe3VyaTpgaW1tdXRhYmxlOi8vJHtvfWAsdmFsdWU6YSxkZXB0aDp0aGlzLnJlZmVyZW5jZS5kZXB0aCsxfSk7aS5hZGQocyl9cmV0dXJuIHV9dG9BbmNlc3RvckxpbmVhZ2Uocyl7Y29uc3Qgbz1uZXcgU2V0KHMuZmlsdGVyKGp1KSk7cmV0dXJuW25ldyBBbmNlc3RvckxpbmVhZ2UoLi4udGhpcy5hbmNlc3RvcnMsbyksb119YXN5bmMgUmVmZXJlbmNlRWxlbWVudChzLG8saSxhLHUsXyl7aWYodGhpcy5pbmRpcmVjdGlvbnMuaW5jbHVkZXMocykpcmV0dXJuITE7Y29uc3Rbdyx4XT10aGlzLnRvQW5jZXN0b3JMaW5lYWdlKFsuLi51LGldKSxDPXRoaXMudG9CYXNlVVJJKHNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZikpLGo9c3RyaXBIYXNoKHRoaXMucmVmZXJlbmNlLnVyaSk9PT1DLEw9IWo7aWYoIXRoaXMub3B0aW9ucy5yZXNvbHZlLmludGVybmFsJiZqKXJldHVybiExO2lmKCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5leHRlcm5hbCYmTClyZXR1cm4hMTtjb25zdCBCPWF3YWl0IHRoaXMudG9SZWZlcmVuY2Uoc2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKSksJD1yZXNvbHZlKEMsc2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKSk7dGhpcy5pbmRpcmVjdGlvbnMucHVzaChzKTtjb25zdCBWPWZyb21VUklSZWZlcmVuY2UoJCk7bGV0IFU9YXBpZG9tX2V2YWx1YXRlKEIudmFsdWUucmVzdWx0LFYpO2lmKFUuaWQ9YXguaWRlbnRpZnkoVSksaXNQcmltaXRpdmVFbGVtZW50KFUpKXtjb25zdCBvPXNlcmlhbGl6ZXJzX3ZhbHVlKHMubWV0YS5nZXQoInJlZmVyZW5jZWQtZWxlbWVudCIpKSxpPWAke299LSR7c2VyaWFsaXplcnNfdmFsdWUoYXguaWRlbnRpZnkoVSkpfWA7aWYodGhpcy5yZWZyYWN0Q2FjaGUuaGFzKGkpKVU9dGhpcy5yZWZyYWN0Q2FjaGUuZ2V0KGkpO2Vsc2UgaWYoaXNSZWZlcmVuY2VMaWtlRWxlbWVudChVKSlVPXFiLnJlZnJhY3QoVSksVS5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsbyksdGhpcy5yZWZyYWN0Q2FjaGUuc2V0KGksVSk7ZWxzZXtVPXRoaXMubmFtZXNwYWNlLmdldEVsZW1lbnRDbGFzcyhvKS5yZWZyYWN0KFUpLHRoaXMucmVmcmFjdENhY2hlLnNldChpLFUpfX1pZihzPT09VSl0aHJvdyBuZXcgS28oIlJlY3Vyc2l2ZSBSZWZlcmVuY2UgT2JqZWN0IGRldGVjdGVkIik7aWYodGhpcy5pbmRpcmVjdGlvbnMubGVuZ3RoPnRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5tYXhEZXB0aCl0aHJvdyBuZXcgbngoYE1heGltdW0gZGVyZWZlcmVuY2UgZGVwdGggb2YgIiR7dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLm1heERlcHRofSIgaGFzIGJlZW4gZXhjZWVkZWQgaW4gZmlsZSAiJHt0aGlzLnJlZmVyZW5jZS51cml9ImApO2lmKHcuaW5jbHVkZXMoVSkpe2lmKEIucmVmU2V0LmNpcmN1bGFyPSEwLCJlcnJvciI9PT10aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UuY2lyY3VsYXIpdGhyb3cgbmV3IEtvKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQiKTtpZigicmVwbGFjZSI9PT10aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UuY2lyY3VsYXIpe3ZhciB6LFk7Y29uc3Qgbz1uZXcgU3Uuc0koVS5pZCx7dHlwZToicmVmZXJlbmNlIix1cmk6Qi51cmksJHJlZjpzZXJpYWxpemVyc192YWx1ZShzLiRyZWYpfSksYT0obnVsbCE9PSh6PW51bGw9PT0oWT10aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2Uuc3RyYXRlZ3lPcHRzWyJvcGVuYXBpLTMtMSJdKXx8dm9pZCAwPT09WT92b2lkIDA6WS5jaXJjdWxhclJlcGxhY2VyKSYmdm9pZCAwIT09ej96OnRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5jaXJjdWxhclJlcGxhY2VyKShvKTtyZXR1cm4gXy5yZXBsYWNlV2l0aChhLG11dGF0aW9uUmVwbGFjZXIpLCFpJiZhfX1jb25zdCBaPXN0cmlwSGFzaChCLnJlZlNldC5yb290UmVmLnVyaSkhPT1CLnVyaSxlZT1bImVycm9yIiwicmVwbGFjZSJdLmluY2x1ZGVzKHRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5jaXJjdWxhcik7aWYoKEx8fFp8fGFFKFUpfHxlZSkmJiF3LmluY2x1ZGVzQ3ljbGUoVSkpe3guYWRkKHMpO2NvbnN0IG89bmV3IE9wZW5BUEkzXzFEZXJlZmVyZW5jZVZpc2l0b3Ioe3JlZmVyZW5jZTpCLG5hbWVzcGFjZTp0aGlzLm5hbWVzcGFjZSxpbmRpcmVjdGlvbnM6Wy4uLnRoaXMuaW5kaXJlY3Rpb25zXSxvcHRpb25zOnRoaXMub3B0aW9ucyxyZWZyYWN0Q2FjaGU6dGhpcy5yZWZyYWN0Q2FjaGUsYW5jZXN0b3JzOnd9KTtVPWF3YWl0IGl4KFUsbyx7a2V5TWFwOnV3LG5vZGVUeXBlR2V0dGVyOmFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfdHJhdmVyc2FsX3Zpc2l0b3JfZ2V0Tm9kZVR5cGV9KSx4LmRlbGV0ZShzKX10aGlzLmluZGlyZWN0aW9ucy5wb3AoKTtjb25zdCBpZT1jbG9uZVNoYWxsb3coVSk7cmV0dXJuIGllLnNldE1ldGFQcm9wZXJ0eSgiaWQiLGF4LmdlbmVyYXRlSWQoKSksaWUuc2V0TWV0YVByb3BlcnR5KCJyZWYtZmllbGRzIix7JHJlZjpzZXJpYWxpemVyc192YWx1ZShzLiRyZWYpLGRlc2NyaXB0aW9uOnNlcmlhbGl6ZXJzX3ZhbHVlKHMuZGVzY3JpcHRpb24pLHN1bW1hcnk6c2VyaWFsaXplcnNfdmFsdWUocy5zdW1tYXJ5KX0pLGllLnNldE1ldGFQcm9wZXJ0eSgicmVmLW9yaWdpbiIsQi51cmkpLGllLnNldE1ldGFQcm9wZXJ0eSgicmVmLXJlZmVyZW5jaW5nLWVsZW1lbnQtaWQiLGNsb25lRGVlcChheC5pZGVudGlmeShzKSkpLE11KFUpJiZNdShpZSkmJihzLmhhc0tleSgiZGVzY3JpcHRpb24iKSYmImRlc2NyaXB0aW9uImluIFUmJihpZS5yZW1vdmUoImRlc2NyaXB0aW9uIiksaWUuc2V0KCJkZXNjcmlwdGlvbiIscy5nZXQoImRlc2NyaXB0aW9uIikpKSxzLmhhc0tleSgic3VtbWFyeSIpJiYic3VtbWFyeSJpbiBVJiYoaWUucmVtb3ZlKCJzdW1tYXJ5IiksaWUuc2V0KCJzdW1tYXJ5IixzLmdldCgic3VtbWFyeSIpKSkpLF8ucmVwbGFjZVdpdGgoaWUsbXV0YXRpb25SZXBsYWNlciksIWkmJmllfWFzeW5jIFBhdGhJdGVtRWxlbWVudChzLG8saSxhLHUsXyl7aWYoIUl1KHMuJHJlZikpcmV0dXJuO2lmKHRoaXMuaW5kaXJlY3Rpb25zLmluY2x1ZGVzKHMpKXJldHVybiExO2NvbnN0W3cseF09dGhpcy50b0FuY2VzdG9yTGluZWFnZShbLi4udSxpXSksQz10aGlzLnRvQmFzZVVSSShzZXJpYWxpemVyc192YWx1ZShzLiRyZWYpKSxqPXN0cmlwSGFzaCh0aGlzLnJlZmVyZW5jZS51cmkpPT09QyxMPSFqO2lmKCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5pbnRlcm5hbCYmailyZXR1cm47aWYoIXRoaXMub3B0aW9ucy5yZXNvbHZlLmV4dGVybmFsJiZMKXJldHVybjtjb25zdCBCPWF3YWl0IHRoaXMudG9SZWZlcmVuY2Uoc2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKSksJD1yZXNvbHZlKEMsc2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKSk7dGhpcy5pbmRpcmVjdGlvbnMucHVzaChzKTtjb25zdCBWPWZyb21VUklSZWZlcmVuY2UoJCk7bGV0IFU9YXBpZG9tX2V2YWx1YXRlKEIudmFsdWUucmVzdWx0LFYpO2lmKFUuaWQ9YXguaWRlbnRpZnkoVSksaXNQcmltaXRpdmVFbGVtZW50KFUpKXtjb25zdCBzPWBwYXRoLWl0ZW0tJHtzZXJpYWxpemVyc192YWx1ZShheC5pZGVudGlmeShVKSl9YDt0aGlzLnJlZnJhY3RDYWNoZS5oYXMocyk/VT10aGlzLnJlZnJhY3RDYWNoZS5nZXQocyk6KFU9UmIucmVmcmFjdChVKSx0aGlzLnJlZnJhY3RDYWNoZS5zZXQocyxVKSl9aWYocz09PVUpdGhyb3cgbmV3IEtvKCJSZWN1cnNpdmUgUGF0aCBJdGVtIE9iamVjdCByZWZlcmVuY2UgZGV0ZWN0ZWQiKTtpZih0aGlzLmluZGlyZWN0aW9ucy5sZW5ndGg+dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLm1heERlcHRoKXRocm93IG5ldyBueChgTWF4aW11bSBkZXJlZmVyZW5jZSBkZXB0aCBvZiAiJHt0aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UubWF4RGVwdGh9IiBoYXMgYmVlbiBleGNlZWRlZCBpbiBmaWxlICIke3RoaXMucmVmZXJlbmNlLnVyaX0iYCk7aWYody5pbmNsdWRlcyhVKSl7aWYoQi5yZWZTZXQuY2lyY3VsYXI9ITAsImVycm9yIj09PXRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5jaXJjdWxhcil0aHJvdyBuZXcgS28oIkNpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCIpO2lmKCJyZXBsYWNlIj09PXRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5jaXJjdWxhcil7dmFyIHosWTtjb25zdCBvPW5ldyBTdS5zSShVLmlkLHt0eXBlOiJwYXRoLWl0ZW0iLHVyaTpCLnVyaSwkcmVmOnNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZil9KSxhPShudWxsIT09KHo9bnVsbD09PShZPXRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5zdHJhdGVneU9wdHNbIm9wZW5hcGktMy0xIl0pfHx2b2lkIDA9PT1ZP3ZvaWQgMDpZLmNpcmN1bGFyUmVwbGFjZXIpJiZ2b2lkIDAhPT16P3o6dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLmNpcmN1bGFyUmVwbGFjZXIpKG8pO3JldHVybiBfLnJlcGxhY2VXaXRoKGEsbXV0YXRpb25SZXBsYWNlciksIWkmJmF9fWNvbnN0IFo9c3RyaXBIYXNoKEIucmVmU2V0LnJvb3RSZWYudXJpKSE9PUIudXJpLGVlPVsiZXJyb3IiLCJyZXBsYWNlIl0uaW5jbHVkZXModGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLmNpcmN1bGFyKTtpZigoTHx8Wnx8b0UoVSkmJkl1KFUuJHJlZil8fGVlKSYmIXcuaW5jbHVkZXNDeWNsZShVKSl7eC5hZGQocyk7Y29uc3Qgbz1uZXcgT3BlbkFQSTNfMURlcmVmZXJlbmNlVmlzaXRvcih7cmVmZXJlbmNlOkIsbmFtZXNwYWNlOnRoaXMubmFtZXNwYWNlLGluZGlyZWN0aW9uczpbLi4udGhpcy5pbmRpcmVjdGlvbnNdLG9wdGlvbnM6dGhpcy5vcHRpb25zLHJlZnJhY3RDYWNoZTp0aGlzLnJlZnJhY3RDYWNoZSxhbmNlc3RvcnM6d30pO1U9YXdhaXQgaXgoVSxvLHtrZXlNYXA6dXcsbm9kZVR5cGVHZXR0ZXI6YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY190cmF2ZXJzYWxfdmlzaXRvcl9nZXROb2RlVHlwZX0pLHguZGVsZXRlKHMpfWlmKHRoaXMuaW5kaXJlY3Rpb25zLnBvcCgpLG9FKFUpKXtjb25zdCBvPW5ldyBSYihbLi4uVS5jb250ZW50XSxjbG9uZURlZXAoVS5tZXRhKSxjbG9uZURlZXAoVS5hdHRyaWJ1dGVzKSk7by5zZXRNZXRhUHJvcGVydHkoImlkIixheC5nZW5lcmF0ZUlkKCkpLHMuZm9yRWFjaCgoKHMsaSxhKT0+e28ucmVtb3ZlKHNlcmlhbGl6ZXJzX3ZhbHVlKGkpKSxvLmNvbnRlbnQucHVzaChhKX0pKSxvLnJlbW92ZSgiJHJlZiIpLG8uc2V0TWV0YVByb3BlcnR5KCJyZWYtZmllbGRzIix7JHJlZjpzZXJpYWxpemVyc192YWx1ZShzLiRyZWYpfSksby5zZXRNZXRhUHJvcGVydHkoInJlZi1vcmlnaW4iLEIudXJpKSxvLnNldE1ldGFQcm9wZXJ0eSgicmVmLXJlZmVyZW5jaW5nLWVsZW1lbnQtaWQiLGNsb25lRGVlcChheC5pZGVudGlmeShzKSkpLFU9b31yZXR1cm4gXy5yZXBsYWNlV2l0aChVLG11dGF0aW9uUmVwbGFjZXIpLGk/dm9pZCAwOlV9YXN5bmMgTGlua0VsZW1lbnQocyxvLGksYSx1LF8pe2lmKCFJdShzLm9wZXJhdGlvblJlZikmJiFJdShzLm9wZXJhdGlvbklkKSlyZXR1cm47aWYoSXUocy5vcGVyYXRpb25SZWYpJiZJdShzLm9wZXJhdGlvbklkKSl0aHJvdyBuZXcgS28oIkxpbmtFbGVtZW50IG9wZXJhdGlvblJlZiBhbmQgb3BlcmF0aW9uSWQgZmllbGRzIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIik7bGV0IHc7aWYoSXUocy5vcGVyYXRpb25SZWYpKXt2YXIgeDtjb25zdCBvPWZyb21VUklSZWZlcmVuY2Uoc2VyaWFsaXplcnNfdmFsdWUocy5vcGVyYXRpb25SZWYpKSxhPXRoaXMudG9CYXNlVVJJKHNlcmlhbGl6ZXJzX3ZhbHVlKHMub3BlcmF0aW9uUmVmKSksdT1zdHJpcEhhc2godGhpcy5yZWZlcmVuY2UudXJpKT09PWEsQz0hdTtpZighdGhpcy5vcHRpb25zLnJlc29sdmUuaW50ZXJuYWwmJnUpcmV0dXJuO2lmKCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5leHRlcm5hbCYmQylyZXR1cm47Y29uc3Qgaj1hd2FpdCB0aGlzLnRvUmVmZXJlbmNlKHNlcmlhbGl6ZXJzX3ZhbHVlKHMub3BlcmF0aW9uUmVmKSk7aWYodz1hcGlkb21fZXZhbHVhdGUoai52YWx1ZS5yZXN1bHQsbyksaXNQcmltaXRpdmVFbGVtZW50KHcpKXtjb25zdCBzPWBvcGVyYXRpb24tJHtzZXJpYWxpemVyc192YWx1ZShheC5pZGVudGlmeSh3KSl9YDt0aGlzLnJlZnJhY3RDYWNoZS5oYXMocyk/dz10aGlzLnJlZnJhY3RDYWNoZS5nZXQocyk6KHc9UGIucmVmcmFjdCh3KSx0aGlzLnJlZnJhY3RDYWNoZS5zZXQocyx3KSl9dz1jbG9uZVNoYWxsb3codyksdy5zZXRNZXRhUHJvcGVydHkoInJlZi1vcmlnaW4iLGoudXJpKTtjb25zdCBMPWNsb25lU2hhbGxvdyhzKTtyZXR1cm4gbnVsbD09PSh4PUwub3BlcmF0aW9uUmVmKXx8dm9pZCAwPT09eHx8eC5tZXRhLnNldCgib3BlcmF0aW9uIix3KSxfLnJlcGxhY2VXaXRoKEwsbXV0YXRpb25SZXBsYWNlciksaT92b2lkIDA6TH1pZihJdShzLm9wZXJhdGlvbklkKSl7dmFyIEM7Y29uc3Qgbz1zZXJpYWxpemVyc192YWx1ZShzLm9wZXJhdGlvbklkKSxhPWF3YWl0IHRoaXMudG9SZWZlcmVuY2UodW5zYW5pdGl6ZSh0aGlzLnJlZmVyZW5jZS51cmkpKTtpZih3PXRyYXZlcnNhbF9maW5kKChzPT5uRShzKSYmanUocy5vcGVyYXRpb25JZCkmJnMub3BlcmF0aW9uSWQuZXF1YWxzKG8pKSxhLnZhbHVlLnJlc3VsdCksYmModykpdGhyb3cgbmV3IEtvKGBPcGVyYXRpb25FbGVtZW50KG9wZXJhdGlvbklkPSR7b30pIG5vdCBmb3VuZC5gKTtjb25zdCB1PWNsb25lU2hhbGxvdyhzKTtyZXR1cm4gbnVsbD09PShDPXUub3BlcmF0aW9uSWQpfHx2b2lkIDA9PT1DfHxDLm1ldGEuc2V0KCJvcGVyYXRpb24iLHcpLF8ucmVwbGFjZVdpdGgodSxtdXRhdGlvblJlcGxhY2VyKSxpP3ZvaWQgMDp1fX1hc3luYyBFeGFtcGxlRWxlbWVudChzLG8saSxhLHUsXyl7aWYoIUl1KHMuZXh0ZXJuYWxWYWx1ZSkpcmV0dXJuO2lmKHMuaGFzS2V5KCJ2YWx1ZSIpJiZJdShzLmV4dGVybmFsVmFsdWUpKXRocm93IG5ldyBLbygiRXhhbXBsZUVsZW1lbnQgdmFsdWUgYW5kIGV4dGVybmFsVmFsdWUgZmllbGRzIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIik7Y29uc3Qgdz10aGlzLnRvQmFzZVVSSShzZXJpYWxpemVyc192YWx1ZShzLmV4dGVybmFsVmFsdWUpKSx4PXN0cmlwSGFzaCh0aGlzLnJlZmVyZW5jZS51cmkpPT09dyxDPSF4O2lmKCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5pbnRlcm5hbCYmeClyZXR1cm47aWYoIXRoaXMub3B0aW9ucy5yZXNvbHZlLmV4dGVybmFsJiZDKXJldHVybjtjb25zdCBqPWF3YWl0IHRoaXMudG9SZWZlcmVuY2Uoc2VyaWFsaXplcnNfdmFsdWUocy5leHRlcm5hbFZhbHVlKSksTD1jbG9uZVNoYWxsb3coai52YWx1ZS5yZXN1bHQpO0wuc2V0TWV0YVByb3BlcnR5KCJyZWYtb3JpZ2luIixqLnVyaSk7Y29uc3QgQj1jbG9uZVNoYWxsb3cocyk7cmV0dXJuIEIudmFsdWU9TCxfLnJlcGxhY2VXaXRoKEIsbXV0YXRpb25SZXBsYWNlciksaT92b2lkIDA6Qn1hc3luYyBTY2hlbWFFbGVtZW50KHMsbyxpLGEsdSxfKXtpZighSXUocy4kcmVmKSlyZXR1cm47aWYodGhpcy5pbmRpcmVjdGlvbnMuaW5jbHVkZXMocykpcmV0dXJuITE7Y29uc3Rbdyx4XT10aGlzLnRvQW5jZXN0b3JMaW5lYWdlKFsuLi51LGldKTtsZXQgQz1hd2FpdCB0aGlzLnRvUmVmZXJlbmNlKHVuc2FuaXRpemUodGhpcy5yZWZlcmVuY2UudXJpKSkse3VyaTpqfT1DO2NvbnN0IEw9cmVzb2x2ZVNjaGVtYSRyZWZGaWVsZChqLHMpLEI9c3RyaXBIYXNoKEwpLCQ9bmV3IGt3KHt1cmk6Qn0pLFY9S3coKHM9PnMuY2FuUmVhZCgkKSksdGhpcy5vcHRpb25zLnJlc29sdmUucmVzb2x2ZXJzKSxVPSFWO2xldCB6LFk9c3RyaXBIYXNoKHRoaXMucmVmZXJlbmNlLnVyaSk9PT1MLFo9IVk7dGhpcy5pbmRpcmVjdGlvbnMucHVzaChzKTt0cnl7aWYoVnx8VSl7aj10aGlzLnRvQmFzZVVSSShMKTtjb25zdCBzPUwsbz1tYXliZVJlZnJhY3RUb1NjaGVtYUVsZW1lbnQoQy52YWx1ZS5yZXN1bHQpO2lmKHo9dXJpX2V2YWx1YXRlKHMsbyksej1tYXliZVJlZnJhY3RUb1NjaGVtYUVsZW1lbnQoeiksei5pZD1heC5pZGVudGlmeSh6KSwhdGhpcy5vcHRpb25zLnJlc29sdmUuaW50ZXJuYWwmJlkpcmV0dXJuO2lmKCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5leHRlcm5hbCYmWilyZXR1cm59ZWxzZXtpZihqPXRoaXMudG9CYXNlVVJJKEwpLFk9c3RyaXBIYXNoKHRoaXMucmVmZXJlbmNlLnVyaSk9PT1qLFo9IVksIXRoaXMub3B0aW9ucy5yZXNvbHZlLmludGVybmFsJiZZKXJldHVybjtpZighdGhpcy5vcHRpb25zLnJlc29sdmUuZXh0ZXJuYWwmJlopcmV0dXJuO0M9YXdhaXQgdGhpcy50b1JlZmVyZW5jZSh1bnNhbml0aXplKEwpKTtjb25zdCBzPWZyb21VUklSZWZlcmVuY2UoTCksbz1tYXliZVJlZnJhY3RUb1NjaGVtYUVsZW1lbnQoQy52YWx1ZS5yZXN1bHQpO3o9YXBpZG9tX2V2YWx1YXRlKG8scyksej1tYXliZVJlZnJhY3RUb1NjaGVtYUVsZW1lbnQoeiksei5pZD1heC5pZGVudGlmeSh6KX19Y2F0Y2gocyl7aWYoIShVJiZzIGluc3RhbmNlb2YgcngpKXRocm93IHM7aWYoaXNBbmNob3IodXJpVG9BbmNob3IoTCkpKXtpZihZPXN0cmlwSGFzaCh0aGlzLnJlZmVyZW5jZS51cmkpPT09aixaPSFZLCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5pbnRlcm5hbCYmWSlyZXR1cm47aWYoIXRoaXMub3B0aW9ucy5yZXNvbHZlLmV4dGVybmFsJiZaKXJldHVybjtDPWF3YWl0IHRoaXMudG9SZWZlcmVuY2UodW5zYW5pdGl6ZShMKSk7Y29uc3Qgcz11cmlUb0FuY2hvcihMKSxvPW1heWJlUmVmcmFjdFRvU2NoZW1hRWxlbWVudChDLnZhbHVlLnJlc3VsdCk7ej0kYW5jaG9yX2V2YWx1YXRlKHMsbyksej1tYXliZVJlZnJhY3RUb1NjaGVtYUVsZW1lbnQoeiksei5pZD1heC5pZGVudGlmeSh6KX1lbHNle2lmKGo9dGhpcy50b0Jhc2VVUkkoTCksWT1zdHJpcEhhc2godGhpcy5yZWZlcmVuY2UudXJpKT09PWosWj0hWSwhdGhpcy5vcHRpb25zLnJlc29sdmUuaW50ZXJuYWwmJlkpcmV0dXJuO2lmKCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5leHRlcm5hbCYmWilyZXR1cm47Qz1hd2FpdCB0aGlzLnRvUmVmZXJlbmNlKHVuc2FuaXRpemUoTCkpO2NvbnN0IHM9ZnJvbVVSSVJlZmVyZW5jZShMKSxvPW1heWJlUmVmcmFjdFRvU2NoZW1hRWxlbWVudChDLnZhbHVlLnJlc3VsdCk7ej1hcGlkb21fZXZhbHVhdGUobyxzKSx6PW1heWJlUmVmcmFjdFRvU2NoZW1hRWxlbWVudCh6KSx6LmlkPWF4LmlkZW50aWZ5KHopfX1pZihzPT09eil0aHJvdyBuZXcgS28oIlJlY3Vyc2l2ZSBTY2hlbWEgT2JqZWN0IHJlZmVyZW5jZSBkZXRlY3RlZCIpO2lmKHRoaXMuaW5kaXJlY3Rpb25zLmxlbmd0aD50aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UubWF4RGVwdGgpdGhyb3cgbmV3IG54KGBNYXhpbXVtIGRlcmVmZXJlbmNlIGRlcHRoIG9mICIke3RoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5tYXhEZXB0aH0iIGhhcyBiZWVuIGV4Y2VlZGVkIGluIGZpbGUgIiR7dGhpcy5yZWZlcmVuY2UudXJpfSJgKTtpZih3LmluY2x1ZGVzKHopKXtpZihDLnJlZlNldC5jaXJjdWxhcj0hMCwiZXJyb3IiPT09dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLmNpcmN1bGFyKXRocm93IG5ldyBLbygiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIik7aWYoInJlcGxhY2UiPT09dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLmNpcmN1bGFyKXt2YXIgZWUsaWU7Y29uc3Qgbz1uZXcgU3Uuc0koei5pZCx7dHlwZToianNvbi1zY2hlbWEiLHVyaTpDLnVyaSwkcmVmOnNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZil9KSxhPShudWxsIT09KGVlPW51bGw9PT0oaWU9dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLnN0cmF0ZWd5T3B0c1sib3BlbmFwaS0zLTEiXSl8fHZvaWQgMD09PWllP3ZvaWQgMDppZS5jaXJjdWxhclJlcGxhY2VyKSYmdm9pZCAwIT09ZWU/ZWU6dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLmNpcmN1bGFyUmVwbGFjZXIpKG8pO3JldHVybiBfLnJlcGxhY2VXaXRoKGEsbXV0YXRpb25SZXBsYWNlciksIWkmJmF9fWNvbnN0IGFlPXN0cmlwSGFzaChDLnJlZlNldC5yb290UmVmLnVyaSkhPT1DLnVyaSxjZT1bImVycm9yIiwicmVwbGFjZSJdLmluY2x1ZGVzKHRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5jaXJjdWxhcik7aWYoKFp8fGFlfHxwRSh6KSYmSXUoei4kcmVmKXx8Y2UpJiYhdy5pbmNsdWRlc0N5Y2xlKHopKXt4LmFkZChzKTtjb25zdCBvPW5ldyBPcGVuQVBJM18xRGVyZWZlcmVuY2VWaXNpdG9yKHtyZWZlcmVuY2U6QyxuYW1lc3BhY2U6dGhpcy5uYW1lc3BhY2UsaW5kaXJlY3Rpb25zOlsuLi50aGlzLmluZGlyZWN0aW9uc10sb3B0aW9uczp0aGlzLm9wdGlvbnMscmVmcmFjdENhY2hlOnRoaXMucmVmcmFjdENhY2hlLGFuY2VzdG9yczp3fSk7ej1hd2FpdCBpeCh6LG8se2tleU1hcDp1dyxub2RlVHlwZUdldHRlcjphcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3RyYXZlcnNhbF92aXNpdG9yX2dldE5vZGVUeXBlfSkseC5kZWxldGUocyl9aWYodGhpcy5pbmRpcmVjdGlvbnMucG9wKCkscHJlZGljYXRlc19pc0Jvb2xlYW5Kc29uU2NoZW1hRWxlbWVudCh6KSl7Y29uc3Qgbz1jbG9uZURlZXAoeik7cmV0dXJuIG8uc2V0TWV0YVByb3BlcnR5KCJpZCIsYXguZ2VuZXJhdGVJZCgpKSxvLnNldE1ldGFQcm9wZXJ0eSgicmVmLWZpZWxkcyIseyRyZWY6c2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKX0pLG8uc2V0TWV0YVByb3BlcnR5KCJyZWYtb3JpZ2luIixDLnVyaSksby5zZXRNZXRhUHJvcGVydHkoInJlZi1yZWZlcmVuY2luZy1lbGVtZW50LWlkIixjbG9uZURlZXAoYXguaWRlbnRpZnkocykpKSxfLnJlcGxhY2VXaXRoKG8sbXV0YXRpb25SZXBsYWNlciksIWkmJm99aWYocEUoeikpe2NvbnN0IG89bmV3IHVTKFsuLi56LmNvbnRlbnRdLGNsb25lRGVlcCh6Lm1ldGEpLGNsb25lRGVlcCh6LmF0dHJpYnV0ZXMpKTtvLnNldE1ldGFQcm9wZXJ0eSgiaWQiLGF4LmdlbmVyYXRlSWQoKSkscy5mb3JFYWNoKCgocyxpLGEpPT57by5yZW1vdmUoc2VyaWFsaXplcnNfdmFsdWUoaSkpLG8uY29udGVudC5wdXNoKGEpfSkpLG8ucmVtb3ZlKCIkcmVmIiksby5zZXRNZXRhUHJvcGVydHkoInJlZi1maWVsZHMiLHskcmVmOnNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZil9KSxvLnNldE1ldGFQcm9wZXJ0eSgicmVmLW9yaWdpbiIsQy51cmkpLG8uc2V0TWV0YVByb3BlcnR5KCJyZWYtcmVmZXJlbmNpbmctZWxlbWVudC1pZCIsY2xvbmVEZWVwKGF4LmlkZW50aWZ5KHMpKSksej1vfXJldHVybiBfLnJlcGxhY2VXaXRoKHosbXV0YXRpb25SZXBsYWNlciksaT92b2lkIDA6en19Y29uc3QgY3g9T3BlbkFQSTNfMURlcmVmZXJlbmNlVmlzaXRvcixseD12aXNpdG9yX3Zpc2l0W1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLnByb21pc2lmeS5jdXN0b20iKV07Y29uc3QgdXg9Y2xhc3MgT3BlbkFQSTNfMURlcmVmZXJlbmNlU3RyYXRlZ3kgZXh0ZW5kcyBId3tjb25zdHJ1Y3RvcihzKXtzdXBlcih7Li4ubnVsbCE9cz9zOnt9LG5hbWU6Im9wZW5hcGktMy0xIn0pfWNhbkRlcmVmZXJlbmNlKHMpe3ZhciBvO3JldHVybiJ0ZXh0L3BsYWluIiE9PXMubWVkaWFUeXBlP213LmluY2x1ZGVzKHMubWVkaWFUeXBlKTpyRShudWxsPT09KG89cy5wYXJzZVJlc3VsdCl8fHZvaWQgMD09PW8/dm9pZCAwOm8ucmVzdWx0KX1hc3luYyBkZXJlZmVyZW5jZShzLG8pe3ZhciBpO2NvbnN0IGE9Y3JlYXRlTmFtZXNwYWNlKGh3KSx1PW51bGwhPT0oaT1vLmRlcmVmZXJlbmNlLnJlZlNldCkmJnZvaWQgMCE9PWk/aTpuZXcgeXcsXz1uZXcgeXc7bGV0IHcseD11O3UuaGFzKHMudXJpKT93PXUuZmluZChKdyhzLnVyaSwidXJpIikpOih3PW5ldyBndyh7dXJpOnMudXJpLHZhbHVlOnMucGFyc2VSZXN1bHR9KSx1LmFkZCh3KSksby5kZXJlZmVyZW5jZS5pbW11dGFibGUmJih1LnJlZnMubWFwKChzPT5uZXcgZ3coey4uLnMsdmFsdWU6Y2xvbmVEZWVwKHMudmFsdWUpfSkpKS5mb3JFYWNoKChzPT5fLmFkZChzKSkpLHc9Xy5maW5kKChvPT5vLnVyaT09PXMudXJpKSkseD1fKTtjb25zdCBDPW5ldyBjeCh7cmVmZXJlbmNlOncsbmFtZXNwYWNlOmEsb3B0aW9uczpvfSksaj1hd2FpdCBseCh4LnJvb3RSZWYudmFsdWUsQyx7a2V5TWFwOnV3LG5vZGVUeXBlR2V0dGVyOmFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfdHJhdmVyc2FsX3Zpc2l0b3JfZ2V0Tm9kZVR5cGV9KTtyZXR1cm4gby5kZXJlZmVyZW5jZS5pbW11dGFibGUmJl8ucmVmcy5maWx0ZXIoKHM9PnMudXJpLnN0YXJ0c1dpdGgoImltbXV0YWJsZTovLyIpKSkubWFwKChzPT5uZXcgZ3coey4uLnMsdXJpOnMudXJpLnJlcGxhY2UoL15pbW11dGFibGU6XC9cLy8sIiIpfSkpKS5mb3JFYWNoKChzPT51LmFkZChzKSkpLG51bGw9PT1vLmRlcmVmZXJlbmNlLnJlZlNldCYmdS5jbGVhbigpLF8uY2xlYW4oKSxqfX0sdG9fcGF0aD1zPT57Y29uc3Qgbz0ocz0+cy5zbGljZSgyKSkocyk7cmV0dXJuIG8ucmVkdWNlKCgocyxpLGEpPT57aWYoRHUoaSkpe2NvbnN0IG89U3RyaW5nKHNlcmlhbGl6ZXJzX3ZhbHVlKGkua2V5KSk7cy5wdXNoKG8pfWVsc2UgaWYoUnUob1thLTJdKSl7Y29uc3QgdT1vW2EtMl0uY29udGVudC5pbmRleE9mKGkpO3MucHVzaCh1KX1yZXR1cm4gc30pLFtdKX07Y29uc3QgcHg9Y2xhc3MgTW9kZWxQcm9wZXJ0eU1hY3JvVmlzaXRvcnttb2RlbFByb3BlcnR5TWFjcm87b3B0aW9ucztTY2hlbWFFbGVtZW50PXtsZWF2ZToocyxvLGksYSx1KT0+e3ZvaWQgMCE9PXMucHJvcGVydGllcyYmTXUocy5wcm9wZXJ0aWVzKSYmcy5wcm9wZXJ0aWVzLmZvckVhY2goKG89PntpZihNdShvKSl0cnl7Y29uc3Qgcz10aGlzLm1vZGVsUHJvcGVydHlNYWNybyhzZXJpYWxpemVyc192YWx1ZShvKSk7by5zZXQoImRlZmF1bHQiLHMpfWNhdGNoKG8pe3ZhciBhLF87Y29uc3Qgdz1uZXcgRXJyb3Iobyx7Y2F1c2U6b30pO3cuZnVsbFBhdGg9Wy4uLnRvX3BhdGgoWy4uLnUsaSxzXSksInByb3BlcnRpZXMiXSxudWxsPT09KGE9dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLmRlcmVmZXJlbmNlT3B0cyl8fHZvaWQgMD09PWF8fG51bGw9PT0oYT1hLmVycm9ycyl8fHZvaWQgMD09PWF8fG51bGw9PT0oXz1hLnB1c2gpfHx2b2lkIDA9PT1ffHxfLmNhbGwoYSx3KX19KSl9fTtjb25zdHJ1Y3Rvcih7bW9kZWxQcm9wZXJ0eU1hY3JvOnMsb3B0aW9uczpvfSl7dGhpcy5tb2RlbFByb3BlcnR5TWFjcm89cyx0aGlzLm9wdGlvbnM9b319O3ZhciBoeD1mdW5jdGlvbigpe2Z1bmN0aW9uIFhVbmlxV2l0aChzLG8pe3RoaXMueGY9byx0aGlzLnByZWQ9cyx0aGlzLml0ZW1zPVtdfXJldHVybiBYVW5pcVdpdGgucHJvdG90eXBlWyJAQHRyYW5zZHVjZXIvaW5pdCJdPV94ZkJhc2VfaW5pdCxYVW5pcVdpdGgucHJvdG90eXBlWyJAQHRyYW5zZHVjZXIvcmVzdWx0Il09X3hmQmFzZV9yZXN1bHQsWFVuaXFXaXRoLnByb3RvdHlwZVsiQEB0cmFuc2R1Y2VyL3N0ZXAiXT1mdW5jdGlvbihzLG8pe3JldHVybiBfaW5jbHVkZXNXaXRoKHRoaXMucHJlZCxvLHRoaXMuaXRlbXMpP3M6KHRoaXMuaXRlbXMucHVzaChvKSx0aGlzLnhmWyJAQHRyYW5zZHVjZXIvc3RlcCJdKHMsbykpfSxYVW5pcVdpdGh9KCk7ZnVuY3Rpb24gX3h1bmlxV2l0aChzKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIG5ldyBoeChzLG8pfX12YXIgZHg9X2N1cnJ5MihfZGlzcGF0Y2hhYmxlKFtdLF94dW5pcVdpdGgsKGZ1bmN0aW9uKHMsbyl7Zm9yKHZhciBpLGE9MCx1PW8ubGVuZ3RoLF89W107YTx1OylfaW5jbHVkZXNXaXRoKHMsaT1vW2FdLF8pfHwoX1tfLmxlbmd0aF09aSksYSs9MTtyZXR1cm4gX30pKSk7Y29uc3QgZng9ZHg7Y29uc3QgbXg9Y2xhc3MgYWxsX29mX0FsbE9mVmlzaXRvcntvcHRpb25zO1NjaGVtYUVsZW1lbnQ9e2xlYXZlKHMsbyxpLGEsdSl7aWYodm9pZCAwPT09cy5hbGxPZilyZXR1cm47aWYoIVJ1KHMuYWxsT2YpKXt2YXIgXyx3O2NvbnN0IG89bmV3IFR5cGVFcnJvcigiYWxsT2YgbXVzdCBiZSBhbiBhcnJheSIpO3JldHVybiBvLmZ1bGxQYXRoPVsuLi50b19wYXRoKFsuLi51LGksc10pLCJhbGxPZiJdLHZvaWQobnVsbD09PShfPXRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5kZXJlZmVyZW5jZU9wdHMpfHx2b2lkIDA9PT1ffHxudWxsPT09KF89Xy5lcnJvcnMpfHx2b2lkIDA9PT1ffHxudWxsPT09KHc9Xy5wdXNoKXx8dm9pZCAwPT09d3x8dy5jYWxsKF8sbykpfWlmKHMuYWxsT2YuaXNFbXB0eSlyZXR1cm4gdm9pZCBzLnJlbW92ZSgiYWxsT2YiKTtpZighcy5hbGxPZi5jb250ZW50LmV2ZXJ5KHBFKSl7dmFyIHgsQztjb25zdCBvPW5ldyBUeXBlRXJyb3IoIkVsZW1lbnRzIGluIGFsbE9mIG11c3QgYmUgb2JqZWN0cyIpO3JldHVybiBvLmZ1bGxQYXRoPVsuLi50b19wYXRoKFsuLi51LGksc10pLCJhbGxPZiJdLHZvaWQobnVsbD09PSh4PXRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5kZXJlZmVyZW5jZU9wdHMpfHx2b2lkIDA9PT14fHxudWxsPT09KHg9eC5lcnJvcnMpfHx2b2lkIDA9PT14fHxudWxsPT09KEM9eC5wdXNoKXx8dm9pZCAwPT09Q3x8Qy5jYWxsKHgsbykpfWZvcig7cy5oYXNLZXkoImFsbE9mIik7KXtjb25zdHthbGxPZjpvfT1zO3MucmVtb3ZlKCJhbGxPZiIpO2NvbnN0IGk9eWQuYWxsKFsuLi5vLmNvbnRlbnQsc10se2N1c3RvbU1lcmdlOnM9PiJlbnVtIj09PXNlcmlhbGl6ZXJzX3ZhbHVlKHMpPyhzLG8pPT57aWYoaW5jbHVkZXNDbGFzc2VzKFsianNvbi1zY2hlbWEtZW51bSJdLHMpJiZpbmNsdWRlc0NsYXNzZXMoWyJqc29uLXNjaGVtYS1lbnVtIl0sbykpe2NvbnN0IGFyZUVsZW1lbnRzRXF1YWw9KHMsbyk9PiEoUnUocyl8fFJ1KG8pfHxNdShzKXx8TXUobykpJiZzLmVxdWFscyhzZXJpYWxpemVyc192YWx1ZShvKSksaT1jbG9uZVNoYWxsb3cocyk7cmV0dXJuIGkuY29udGVudD1meChhcmVFbGVtZW50c0VxdWFsKShbLi4ucy5jb250ZW50LC4uLm8uY29udGVudF0pLGl9cmV0dXJuIHlkKHMsbyl9OnlkfSk7aWYocy5oYXNLZXkoIiQkcmVmIil8fGkucmVtb3ZlKCIkJHJlZiIpLHMuaGFzS2V5KCJleGFtcGxlIikpe2NvbnN0IG89aS5nZXRNZW1iZXIoImV4YW1wbGUiKTtvJiYoby52YWx1ZT1zLmdldCgiZXhhbXBsZSIpKX1pZihzLmhhc0tleSgiZXhhbXBsZXMiKSl7Y29uc3Qgbz1pLmdldE1lbWJlcigiZXhhbXBsZXMiKTtvJiYoby52YWx1ZT1zLmdldCgiZXhhbXBsZXMiKSl9cy5jb250ZW50PWkuY29udGVudH19fTtjb25zdHJ1Y3Rvcih7b3B0aW9uczpzfSl7dGhpcy5vcHRpb25zPXN9fTtjb25zdCBneD1jbGFzcyBQYXJhbWV0ZXJNYWNyb1Zpc2l0b3J7cGFyYW1ldGVyTWFjcm87b3B0aW9uczsjbjtPcGVyYXRpb25FbGVtZW50PXtlbnRlcjpzPT57dGhpcy4jbj1zfSxsZWF2ZTooKT0+e3RoaXMuI249dm9pZCAwfX07UGFyYW1ldGVyRWxlbWVudD17bGVhdmU6KHMsbyxpLGEsdSk9Pntjb25zdCBfPXRoaXMuI24/c2VyaWFsaXplcnNfdmFsdWUodGhpcy4jbik6bnVsbCx3PXNlcmlhbGl6ZXJzX3ZhbHVlKHMpO3RyeXtjb25zdCBvPXRoaXMucGFyYW1ldGVyTWFjcm8oXyx3KTtzLnNldCgiZGVmYXVsdCIsbyl9Y2F0Y2gocyl7dmFyIHgsQztjb25zdCBvPW5ldyBFcnJvcihzLHtjYXVzZTpzfSk7by5mdWxsUGF0aD10b19wYXRoKFsuLi51LGldKSxudWxsPT09KHg9dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLmRlcmVmZXJlbmNlT3B0cyl8fHZvaWQgMD09PXh8fG51bGw9PT0oeD14LmVycm9ycyl8fHZvaWQgMD09PXh8fG51bGw9PT0oQz14LnB1c2gpfHx2b2lkIDA9PT1DfHxDLmNhbGwoeCxvKX19fTtjb25zdHJ1Y3Rvcih7cGFyYW1ldGVyTWFjcm86cyxvcHRpb25zOm99KXt0aGlzLnBhcmFtZXRlck1hY3JvPXMsdGhpcy5vcHRpb25zPW99fSxnZXRfcm9vdF9jYXVzZT1zPT57aWYobnVsbD09cy5jYXVzZSlyZXR1cm4gcztsZXR7Y2F1c2U6b309cztmb3IoO251bGwhPW8uY2F1c2U7KW89by5jYXVzZTtyZXR1cm4gb307Y29uc3QgeXg9Y2xhc3MgU2NoZW1hUmVmRXJyb3IgZXh0ZW5kcyBHb3t9LHt3cmFwRXJyb3I6dnh9PVhsLGJ4PXZpc2l0b3JfdmlzaXRbU3ltYm9sLmZvcigibm9kZWpzLnV0aWwucHJvbWlzaWZ5LmN1c3RvbSIpXSxfeD1uZXcgSWRlbnRpdHlNYW5hZ2VyLGRlcmVmZXJlbmNlX211dGF0aW9uUmVwbGFjZXI9KHMsbyxpLGEpPT57RHUoYSk/YS52YWx1ZT1zOkFycmF5LmlzQXJyYXkoYSkmJihhW2ldPXMpfTtjbGFzcyBPcGVuQVBJM18xU3dhZ2dlckNsaWVudERlcmVmZXJlbmNlVmlzaXRvciBleHRlbmRzIGN4e3VzZUNpcmN1bGFyU3RydWN0dXJlczthbGxvd01ldGFQYXRjaGVzO2Jhc2VQYXRoO2NvbnN0cnVjdG9yKHthbGxvd01ldGFQYXRjaGVzOnM9ITAsdXNlQ2lyY3VsYXJTdHJ1Y3R1cmVzOm89ITEsYmFzZVBhdGg6aT1udWxsLC4uLmF9KXtzdXBlcihhKSx0aGlzLmFsbG93TWV0YVBhdGNoZXM9cyx0aGlzLnVzZUNpcmN1bGFyU3RydWN0dXJlcz1vLHRoaXMuYmFzZVBhdGg9aX1hc3luYyBSZWZlcmVuY2VFbGVtZW50KHMsbyxpLGEsdSxfKXt0cnl7aWYodGhpcy5pbmRpcmVjdGlvbnMuaW5jbHVkZXMocykpcmV0dXJuITE7Y29uc3RbbyxhXT10aGlzLnRvQW5jZXN0b3JMaW5lYWdlKFsuLi51LGldKSxqPXRoaXMudG9CYXNlVVJJKHNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZikpLEw9c3RyaXBIYXNoKHRoaXMucmVmZXJlbmNlLnVyaSk9PT1qLEI9IUw7aWYoIXRoaXMub3B0aW9ucy5yZXNvbHZlLmludGVybmFsJiZMKXJldHVybiExO2lmKCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5leHRlcm5hbCYmQilyZXR1cm4hMTtjb25zdCAkPWF3YWl0IHRoaXMudG9SZWZlcmVuY2Uoc2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKSksVj1yZXNvbHZlKGosc2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKSk7dGhpcy5pbmRpcmVjdGlvbnMucHVzaChzKTtjb25zdCBVPWZyb21VUklSZWZlcmVuY2UoVik7bGV0IHo9YXBpZG9tX2V2YWx1YXRlKCQudmFsdWUucmVzdWx0LFUpO2lmKHouaWQ9X3guaWRlbnRpZnkoeiksaXNQcmltaXRpdmVFbGVtZW50KHopKXtjb25zdCBvPXNlcmlhbGl6ZXJzX3ZhbHVlKHMubWV0YS5nZXQoInJlZmVyZW5jZWQtZWxlbWVudCIpKSxpPWAke299LSR7c2VyaWFsaXplcnNfdmFsdWUoX3guaWRlbnRpZnkoeikpfWA7aWYodGhpcy5yZWZyYWN0Q2FjaGUuaGFzKGkpKXo9dGhpcy5yZWZyYWN0Q2FjaGUuZ2V0KGkpO2Vsc2UgaWYoaXNSZWZlcmVuY2VMaWtlRWxlbWVudCh6KSl6PXFiLnJlZnJhY3Qoeiksei5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsbyksdGhpcy5yZWZyYWN0Q2FjaGUuc2V0KGkseik7ZWxzZXt6PXRoaXMubmFtZXNwYWNlLmdldEVsZW1lbnRDbGFzcyhvKS5yZWZyYWN0KHopLHRoaXMucmVmcmFjdENhY2hlLnNldChpLHopfX1pZihzPT09eil0aHJvdyBuZXcgS28oIlJlY3Vyc2l2ZSBSZWZlcmVuY2UgT2JqZWN0IGRldGVjdGVkIik7aWYodGhpcy5pbmRpcmVjdGlvbnMubGVuZ3RoPnRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5tYXhEZXB0aCl0aHJvdyBuZXcgbngoYE1heGltdW0gZGVyZWZlcmVuY2UgZGVwdGggb2YgIiR7dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLm1heERlcHRofSIgaGFzIGJlZW4gZXhjZWVkZWQgaW4gZmlsZSAiJHt0aGlzLnJlZmVyZW5jZS51cml9ImApO2lmKG8uaW5jbHVkZXMoeikpe2lmKCQucmVmU2V0LmNpcmN1bGFyPSEwLCJlcnJvciI9PT10aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UuY2lyY3VsYXIpdGhyb3cgbmV3IEtvKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQiKTtpZigicmVwbGFjZSI9PT10aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UuY2lyY3VsYXIpe3ZhciB3LHg7Y29uc3Qgbz1uZXcgU3Uuc0koei5pZCx7dHlwZToicmVmZXJlbmNlIix1cmk6JC51cmksJHJlZjpzZXJpYWxpemVyc192YWx1ZShzLiRyZWYpLGJhc2VVUkk6VixyZWZlcmVuY2luZ0VsZW1lbnQ6c30pLGE9KG51bGwhPT0odz1udWxsPT09KHg9dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLnN0cmF0ZWd5T3B0c1sib3BlbmFwaS0zLTEiXSl8fHZvaWQgMD09PXg/dm9pZCAwOnguY2lyY3VsYXJSZXBsYWNlcikmJnZvaWQgMCE9PXc/dzp0aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UuY2lyY3VsYXJSZXBsYWNlcikobyk7cmV0dXJuIF8ucmVwbGFjZVdpdGgobyxkZXJlZmVyZW5jZV9tdXRhdGlvblJlcGxhY2VyKSwhaSYmYX19Y29uc3QgWT1zdHJpcEhhc2goJC5yZWZTZXQucm9vdFJlZi51cmkpIT09JC51cmksWj1bImVycm9yIiwicmVwbGFjZSJdLmluY2x1ZGVzKHRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5jaXJjdWxhcik7aWYoKEJ8fFl8fGFFKHopfHxaKSYmIW8uaW5jbHVkZXNDeWNsZSh6KSl7dmFyIEM7YS5hZGQocyk7Y29uc3QgXz1uZXcgT3BlbkFQSTNfMVN3YWdnZXJDbGllbnREZXJlZmVyZW5jZVZpc2l0b3Ioe3JlZmVyZW5jZTokLG5hbWVzcGFjZTp0aGlzLm5hbWVzcGFjZSxpbmRpcmVjdGlvbnM6Wy4uLnRoaXMuaW5kaXJlY3Rpb25zXSxvcHRpb25zOnRoaXMub3B0aW9ucyxyZWZyYWN0Q2FjaGU6dGhpcy5yZWZyYWN0Q2FjaGUsYW5jZXN0b3JzOm8sYWxsb3dNZXRhUGF0Y2hlczp0aGlzLmFsbG93TWV0YVBhdGNoZXMsdXNlQ2lyY3VsYXJTdHJ1Y3R1cmVzOnRoaXMudXNlQ2lyY3VsYXJTdHJ1Y3R1cmVzLGJhc2VQYXRoOm51bGwhPT0oQz10aGlzLmJhc2VQYXRoKSYmdm9pZCAwIT09Qz9DOlsuLi50b19wYXRoKFsuLi51LGksc10pLCIkcmVmIl19KTt6PWF3YWl0IGJ4KHosXyx7a2V5TWFwOnV3LG5vZGVUeXBlR2V0dGVyOmFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfdHJhdmVyc2FsX3Zpc2l0b3JfZ2V0Tm9kZVR5cGV9KSxhLmRlbGV0ZShzKX10aGlzLmluZGlyZWN0aW9ucy5wb3AoKTtjb25zdCBlZT1jbG9uZVNoYWxsb3coeik7aWYoZWUuc2V0TWV0YVByb3BlcnR5KCJyZWYtZmllbGRzIix7JHJlZjpzZXJpYWxpemVyc192YWx1ZShzLiRyZWYpLGRlc2NyaXB0aW9uOnNlcmlhbGl6ZXJzX3ZhbHVlKHMuZGVzY3JpcHRpb24pLHN1bW1hcnk6c2VyaWFsaXplcnNfdmFsdWUocy5zdW1tYXJ5KX0pLGVlLnNldE1ldGFQcm9wZXJ0eSgicmVmLW9yaWdpbiIsJC51cmkpLGVlLnNldE1ldGFQcm9wZXJ0eSgicmVmLXJlZmVyZW5jaW5nLWVsZW1lbnQtaWQiLGNsb25lRGVlcChfeC5pZGVudGlmeShzKSkpLE11KHopJiYocy5oYXNLZXkoImRlc2NyaXB0aW9uIikmJiJkZXNjcmlwdGlvbiJpbiB6JiYoZWUucmVtb3ZlKCJkZXNjcmlwdGlvbiIpLGVlLnNldCgiZGVzY3JpcHRpb24iLHMuZ2V0KCJkZXNjcmlwdGlvbiIpKSkscy5oYXNLZXkoInN1bW1hcnkiKSYmInN1bW1hcnkiaW4geiYmKGVlLnJlbW92ZSgic3VtbWFyeSIpLGVlLnNldCgic3VtbWFyeSIscy5nZXQoInN1bW1hcnkiKSkpKSx0aGlzLmFsbG93TWV0YVBhdGNoZXMmJk11KGVlKSYmIWVlLmhhc0tleSgiJCRyZWYiKSl7Y29uc3Qgcz1yZXNvbHZlKGosVik7ZWUuc2V0KCIkJHJlZiIscyl9cmV0dXJuIF8ucmVwbGFjZVdpdGgoZWUsZGVyZWZlcmVuY2VfbXV0YXRpb25SZXBsYWNlciksIWkmJmVlfWNhdGNoKG8pe3ZhciBqLEwsQjtjb25zdCBhPWdldF9yb290X2NhdXNlKG8pLF89dngoYSx7YmFzZURvYzp0aGlzLnJlZmVyZW5jZS51cmksJHJlZjpzZXJpYWxpemVyc192YWx1ZShzLiRyZWYpLHBvaW50ZXI6ZnJvbVVSSVJlZmVyZW5jZShzZXJpYWxpemVyc192YWx1ZShzLiRyZWYpKSxmdWxsUGF0aDpudWxsIT09KGo9dGhpcy5iYXNlUGF0aCkmJnZvaWQgMCE9PWo/ajpbLi4udG9fcGF0aChbLi4udSxpLHNdKSwiJHJlZiJdfSk7cmV0dXJuIHZvaWQobnVsbD09PShMPXRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5kZXJlZmVyZW5jZU9wdHMpfHx2b2lkIDA9PT1MfHxudWxsPT09KEw9TC5lcnJvcnMpfHx2b2lkIDA9PT1MfHxudWxsPT09KEI9TC5wdXNoKXx8dm9pZCAwPT09Qnx8Qi5jYWxsKEwsXykpfX1hc3luYyBQYXRoSXRlbUVsZW1lbnQocyxvLGksYSx1LF8pe3RyeXtpZighSXUocy4kcmVmKSlyZXR1cm47aWYodGhpcy5pbmRpcmVjdGlvbnMuaW5jbHVkZXMocykpcmV0dXJuITE7aWYoaW5jbHVkZXNDbGFzc2VzKFsiY3ljbGUiXSxzLiRyZWYpKXJldHVybiExO2NvbnN0W28sYV09dGhpcy50b0FuY2VzdG9yTGluZWFnZShbLi4udSxpXSksaj10aGlzLnRvQmFzZVVSSShzZXJpYWxpemVyc192YWx1ZShzLiRyZWYpKSxMPXN0cmlwSGFzaCh0aGlzLnJlZmVyZW5jZS51cmkpPT09aixCPSFMO2lmKCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5pbnRlcm5hbCYmTClyZXR1cm47aWYoIXRoaXMub3B0aW9ucy5yZXNvbHZlLmV4dGVybmFsJiZCKXJldHVybjtjb25zdCAkPWF3YWl0IHRoaXMudG9SZWZlcmVuY2Uoc2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKSksVj1yZXNvbHZlKGosc2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKSk7dGhpcy5pbmRpcmVjdGlvbnMucHVzaChzKTtjb25zdCBVPWZyb21VUklSZWZlcmVuY2UoVik7bGV0IHo9YXBpZG9tX2V2YWx1YXRlKCQudmFsdWUucmVzdWx0LFUpO2lmKHouaWQ9X3guaWRlbnRpZnkoeiksaXNQcmltaXRpdmVFbGVtZW50KHopKXtjb25zdCBzPWBwYXRoLWl0ZW0tJHtzZXJpYWxpemVyc192YWx1ZShfeC5pZGVudGlmeSh6KSl9YDt0aGlzLnJlZnJhY3RDYWNoZS5oYXMocyk/ej10aGlzLnJlZnJhY3RDYWNoZS5nZXQocyk6KHo9UmIucmVmcmFjdCh6KSx0aGlzLnJlZnJhY3RDYWNoZS5zZXQocyx6KSl9aWYocz09PXopdGhyb3cgbmV3IEtvKCJSZWN1cnNpdmUgUGF0aCBJdGVtIE9iamVjdCByZWZlcmVuY2UgZGV0ZWN0ZWQiKTtpZih0aGlzLmluZGlyZWN0aW9ucy5sZW5ndGg+dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLm1heERlcHRoKXRocm93IG5ldyBueChgTWF4aW11bSBkZXJlZmVyZW5jZSBkZXB0aCBvZiAiJHt0aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UubWF4RGVwdGh9IiBoYXMgYmVlbiBleGNlZWRlZCBpbiBmaWxlICIke3RoaXMucmVmZXJlbmNlLnVyaX0iYCk7aWYoby5pbmNsdWRlcyh6KSl7aWYoJC5yZWZTZXQuY2lyY3VsYXI9ITAsImVycm9yIj09PXRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5jaXJjdWxhcil0aHJvdyBuZXcgS28oIkNpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCIpO2lmKCJyZXBsYWNlIj09PXRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5jaXJjdWxhcil7dmFyIHcseDtjb25zdCBvPW5ldyBTdS5zSSh6LmlkLHt0eXBlOiJwYXRoLWl0ZW0iLHVyaTokLnVyaSwkcmVmOnNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZiksYmFzZVVSSTpWLHJlZmVyZW5jaW5nRWxlbWVudDpzfSksYT0obnVsbCE9PSh3PW51bGw9PT0oeD10aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2Uuc3RyYXRlZ3lPcHRzWyJvcGVuYXBpLTMtMSJdKXx8dm9pZCAwPT09eD92b2lkIDA6eC5jaXJjdWxhclJlcGxhY2VyKSYmdm9pZCAwIT09dz93OnRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5jaXJjdWxhclJlcGxhY2VyKShvKTtyZXR1cm4gXy5yZXBsYWNlV2l0aChvLGRlcmVmZXJlbmNlX211dGF0aW9uUmVwbGFjZXIpLCFpJiZhfX1jb25zdCBZPXN0cmlwSGFzaCgkLnJlZlNldC5yb290UmVmLnVyaSkhPT0kLnVyaSxaPVsiZXJyb3IiLCJyZXBsYWNlIl0uaW5jbHVkZXModGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLmNpcmN1bGFyKTtpZigoQnx8WXx8b0UoeikmJkl1KHouJHJlZil8fFopJiYhby5pbmNsdWRlc0N5Y2xlKHopKXt2YXIgQzthLmFkZChzKTtjb25zdCBfPW5ldyBPcGVuQVBJM18xU3dhZ2dlckNsaWVudERlcmVmZXJlbmNlVmlzaXRvcih7cmVmZXJlbmNlOiQsbmFtZXNwYWNlOnRoaXMubmFtZXNwYWNlLGluZGlyZWN0aW9uczpbLi4udGhpcy5pbmRpcmVjdGlvbnNdLG9wdGlvbnM6dGhpcy5vcHRpb25zLGFuY2VzdG9yczpvLGFsbG93TWV0YVBhdGNoZXM6dGhpcy5hbGxvd01ldGFQYXRjaGVzLHVzZUNpcmN1bGFyU3RydWN0dXJlczp0aGlzLnVzZUNpcmN1bGFyU3RydWN0dXJlcyxiYXNlUGF0aDpudWxsIT09KEM9dGhpcy5iYXNlUGF0aCkmJnZvaWQgMCE9PUM/QzpbLi4udG9fcGF0aChbLi4udSxpLHNdKSwiJHJlZiJdfSk7ej1hd2FpdCBieCh6LF8se2tleU1hcDp1dyxub2RlVHlwZUdldHRlcjphcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3RyYXZlcnNhbF92aXNpdG9yX2dldE5vZGVUeXBlfSksYS5kZWxldGUocyl9aWYodGhpcy5pbmRpcmVjdGlvbnMucG9wKCksb0Uoeikpe2NvbnN0IG89bmV3IFJiKFsuLi56LmNvbnRlbnRdLGNsb25lRGVlcCh6Lm1ldGEpLGNsb25lRGVlcCh6LmF0dHJpYnV0ZXMpKTtpZihzLmZvckVhY2goKChzLGksYSk9PntvLnJlbW92ZShzZXJpYWxpemVyc192YWx1ZShpKSksby5jb250ZW50LnB1c2goYSl9KSksby5yZW1vdmUoIiRyZWYiKSxvLnNldE1ldGFQcm9wZXJ0eSgicmVmLWZpZWxkcyIseyRyZWY6c2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKX0pLG8uc2V0TWV0YVByb3BlcnR5KCJyZWYtb3JpZ2luIiwkLnVyaSksby5zZXRNZXRhUHJvcGVydHkoInJlZi1yZWZlcmVuY2luZy1lbGVtZW50LWlkIixjbG9uZURlZXAoX3guaWRlbnRpZnkocykpKSx0aGlzLmFsbG93TWV0YVBhdGNoZXMmJnZvaWQgMD09PW8uZ2V0KCIkJHJlZiIpKXtjb25zdCBzPXJlc29sdmUoaixWKTtvLnNldCgiJCRyZWYiLHMpfXo9b31yZXR1cm4gXy5yZXBsYWNlV2l0aCh6LGRlcmVmZXJlbmNlX211dGF0aW9uUmVwbGFjZXIpLGk/dm9pZCAwOnp9Y2F0Y2gobyl7dmFyIGosTCxCO2NvbnN0IGE9Z2V0X3Jvb3RfY2F1c2UobyksXz12eChhLHtiYXNlRG9jOnRoaXMucmVmZXJlbmNlLnVyaSwkcmVmOnNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZikscG9pbnRlcjpmcm9tVVJJUmVmZXJlbmNlKHNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZikpLGZ1bGxQYXRoOm51bGwhPT0oaj10aGlzLmJhc2VQYXRoKSYmdm9pZCAwIT09aj9qOlsuLi50b19wYXRoKFsuLi51LGksc10pLCIkcmVmIl19KTtyZXR1cm4gdm9pZChudWxsPT09KEw9dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLmRlcmVmZXJlbmNlT3B0cyl8fHZvaWQgMD09PUx8fG51bGw9PT0oTD1MLmVycm9ycyl8fHZvaWQgMD09PUx8fG51bGw9PT0oQj1MLnB1c2gpfHx2b2lkIDA9PT1CfHxCLmNhbGwoTCxfKSl9fWFzeW5jIFNjaGVtYUVsZW1lbnQocyxvLGksYSx1LF8pe3RyeXtpZighSXUocy4kcmVmKSlyZXR1cm47aWYodGhpcy5pbmRpcmVjdGlvbnMuaW5jbHVkZXMocykpcmV0dXJuITE7Y29uc3RbbyxhXT10aGlzLnRvQW5jZXN0b3JMaW5lYWdlKFsuLi51LGldKTtsZXQgaj1hd2FpdCB0aGlzLnRvUmVmZXJlbmNlKHVuc2FuaXRpemUodGhpcy5yZWZlcmVuY2UudXJpKSkse3VyaTpMfT1qO2NvbnN0IEI9cmVzb2x2ZVNjaGVtYSRyZWZGaWVsZChMLHMpLCQ9c3RyaXBIYXNoKEIpLFY9bmV3IGt3KHt1cmk6JH0pLFU9IXRoaXMub3B0aW9ucy5yZXNvbHZlLnJlc29sdmVycy5zb21lKChzPT5zLmNhblJlYWQoVikpKSx6PSFVO2xldCBZLFo9c3RyaXBIYXNoKHRoaXMucmVmZXJlbmNlLnVyaSk9PT1CLGVlPSFaO3RoaXMuaW5kaXJlY3Rpb25zLnB1c2gocyk7dHJ5e2lmKFV8fHope0w9dGhpcy50b0Jhc2VVUkkoQik7Y29uc3Qgcz1CLG89bWF5YmVSZWZyYWN0VG9TY2hlbWFFbGVtZW50KGoudmFsdWUucmVzdWx0KTtpZihZPXVyaV9ldmFsdWF0ZShzLG8pLFk9bWF5YmVSZWZyYWN0VG9TY2hlbWFFbGVtZW50KFkpLFkuaWQ9X3guaWRlbnRpZnkoWSksIXRoaXMub3B0aW9ucy5yZXNvbHZlLmludGVybmFsJiZaKXJldHVybjtpZighdGhpcy5vcHRpb25zLnJlc29sdmUuZXh0ZXJuYWwmJmVlKXJldHVybn1lbHNle2lmKEw9dGhpcy50b0Jhc2VVUkkoQiksWj1zdHJpcEhhc2godGhpcy5yZWZlcmVuY2UudXJpKT09PUwsZWU9IVosIXRoaXMub3B0aW9ucy5yZXNvbHZlLmludGVybmFsJiZaKXJldHVybjtpZighdGhpcy5vcHRpb25zLnJlc29sdmUuZXh0ZXJuYWwmJmVlKXJldHVybjtqPWF3YWl0IHRoaXMudG9SZWZlcmVuY2UodW5zYW5pdGl6ZShCKSk7Y29uc3Qgcz1mcm9tVVJJUmVmZXJlbmNlKEIpLG89bWF5YmVSZWZyYWN0VG9TY2hlbWFFbGVtZW50KGoudmFsdWUucmVzdWx0KTtZPWFwaWRvbV9ldmFsdWF0ZShvLHMpLFk9bWF5YmVSZWZyYWN0VG9TY2hlbWFFbGVtZW50KFkpLFkuaWQ9X3guaWRlbnRpZnkoWSl9fWNhdGNoKHMpe2lmKCEoeiYmcyBpbnN0YW5jZW9mIHJ4KSl0aHJvdyBzO2lmKGlzQW5jaG9yKHVyaVRvQW5jaG9yKEIpKSl7aWYoWj1zdHJpcEhhc2godGhpcy5yZWZlcmVuY2UudXJpKT09PUwsZWU9IVosIXRoaXMub3B0aW9ucy5yZXNvbHZlLmludGVybmFsJiZaKXJldHVybjtpZighdGhpcy5vcHRpb25zLnJlc29sdmUuZXh0ZXJuYWwmJmVlKXJldHVybjtqPWF3YWl0IHRoaXMudG9SZWZlcmVuY2UodW5zYW5pdGl6ZShCKSk7Y29uc3Qgcz11cmlUb0FuY2hvcihCKSxvPW1heWJlUmVmcmFjdFRvU2NoZW1hRWxlbWVudChqLnZhbHVlLnJlc3VsdCk7WT0kYW5jaG9yX2V2YWx1YXRlKHMsbyksWT1tYXliZVJlZnJhY3RUb1NjaGVtYUVsZW1lbnQoWSksWS5pZD1feC5pZGVudGlmeShZKX1lbHNle2lmKEw9dGhpcy50b0Jhc2VVUkkoc2VyaWFsaXplcnNfdmFsdWUoQikpLFo9c3RyaXBIYXNoKHRoaXMucmVmZXJlbmNlLnVyaSk9PT1MLGVlPSFaLCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5pbnRlcm5hbCYmWilyZXR1cm47aWYoIXRoaXMub3B0aW9ucy5yZXNvbHZlLmV4dGVybmFsJiZlZSlyZXR1cm47aj1hd2FpdCB0aGlzLnRvUmVmZXJlbmNlKHVuc2FuaXRpemUoQikpO2NvbnN0IHM9ZnJvbVVSSVJlZmVyZW5jZShCKSxvPW1heWJlUmVmcmFjdFRvU2NoZW1hRWxlbWVudChqLnZhbHVlLnJlc3VsdCk7WT1hcGlkb21fZXZhbHVhdGUobyxzKSxZPW1heWJlUmVmcmFjdFRvU2NoZW1hRWxlbWVudChZKSxZLmlkPV94LmlkZW50aWZ5KFkpfX1pZihzPT09WSl0aHJvdyBuZXcgS28oIlJlY3Vyc2l2ZSBTY2hlbWEgT2JqZWN0IHJlZmVyZW5jZSBkZXRlY3RlZCIpO2lmKHRoaXMuaW5kaXJlY3Rpb25zLmxlbmd0aD50aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UubWF4RGVwdGgpdGhyb3cgbmV3IG54KGBNYXhpbXVtIGRlcmVmZXJlbmNlIGRlcHRoIG9mICIke3RoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5tYXhEZXB0aH0iIGhhcyBiZWVuIGV4Y2VlZGVkIGluIGZpbGUgIiR7dGhpcy5yZWZlcmVuY2UudXJpfSJgKTtpZihvLmluY2x1ZGVzKFkpKXtpZihqLnJlZlNldC5jaXJjdWxhcj0hMCwiZXJyb3IiPT09dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLmNpcmN1bGFyKXRocm93IG5ldyBLbygiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIik7aWYoInJlcGxhY2UiPT09dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLmNpcmN1bGFyKXt2YXIgdyx4O2NvbnN0IG89bmV3IFN1LnNJKFkuaWQse3R5cGU6Impzb24tc2NoZW1hIix1cmk6ai51cmksJHJlZjpzZXJpYWxpemVyc192YWx1ZShzLiRyZWYpLGJhc2VVUkk6cmVzb2x2ZShMLEIpLHJlZmVyZW5jaW5nRWxlbWVudDpzfSksYT0obnVsbCE9PSh3PW51bGw9PT0oeD10aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2Uuc3RyYXRlZ3lPcHRzWyJvcGVuYXBpLTMtMSJdKXx8dm9pZCAwPT09eD92b2lkIDA6eC5jaXJjdWxhclJlcGxhY2VyKSYmdm9pZCAwIT09dz93OnRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5jaXJjdWxhclJlcGxhY2VyKShvKTtyZXR1cm4gXy5yZXBsYWNlV2l0aChhLGRlcmVmZXJlbmNlX211dGF0aW9uUmVwbGFjZXIpLCFpJiZhfX1jb25zdCBpZT1zdHJpcEhhc2goai5yZWZTZXQucm9vdFJlZi51cmkpIT09ai51cmksYWU9WyJlcnJvciIsInJlcGxhY2UiXS5pbmNsdWRlcyh0aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UuY2lyY3VsYXIpO2lmKChlZXx8aWV8fHBFKFkpJiZJdShZLiRyZWYpfHxhZSkmJiFvLmluY2x1ZGVzQ3ljbGUoWSkpe3ZhciBDO2EuYWRkKHMpO2NvbnN0IF89bmV3IE9wZW5BUEkzXzFTd2FnZ2VyQ2xpZW50RGVyZWZlcmVuY2VWaXNpdG9yKHtyZWZlcmVuY2U6aixuYW1lc3BhY2U6dGhpcy5uYW1lc3BhY2UsaW5kaXJlY3Rpb25zOlsuLi50aGlzLmluZGlyZWN0aW9uc10sb3B0aW9uczp0aGlzLm9wdGlvbnMsdXNlQ2lyY3VsYXJTdHJ1Y3R1cmVzOnRoaXMudXNlQ2lyY3VsYXJTdHJ1Y3R1cmVzLGFsbG93TWV0YVBhdGNoZXM6dGhpcy5hbGxvd01ldGFQYXRjaGVzLGFuY2VzdG9yczpvLGJhc2VQYXRoOm51bGwhPT0oQz10aGlzLmJhc2VQYXRoKSYmdm9pZCAwIT09Qz9DOlsuLi50b19wYXRoKFsuLi51LGksc10pLCIkcmVmIl19KTtZPWF3YWl0IGJ4KFksXyx7a2V5TWFwOnV3LG5vZGVUeXBlR2V0dGVyOmFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfdHJhdmVyc2FsX3Zpc2l0b3JfZ2V0Tm9kZVR5cGV9KSxhLmRlbGV0ZShzKX1pZih0aGlzLmluZGlyZWN0aW9ucy5wb3AoKSxwcmVkaWNhdGVzX2lzQm9vbGVhbkpzb25TY2hlbWFFbGVtZW50KFkpKXtjb25zdCBvPWNsb25lRGVlcChZKTtyZXR1cm4gby5zZXRNZXRhUHJvcGVydHkoInJlZi1maWVsZHMiLHskcmVmOnNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZil9KSxvLnNldE1ldGFQcm9wZXJ0eSgicmVmLW9yaWdpbiIsai51cmkpLG8uc2V0TWV0YVByb3BlcnR5KCJyZWYtcmVmZXJlbmNpbmctZWxlbWVudC1pZCIsY2xvbmVEZWVwKF94LmlkZW50aWZ5KHMpKSksXy5yZXBsYWNlV2l0aChvLGRlcmVmZXJlbmNlX211dGF0aW9uUmVwbGFjZXIpLCFpJiZvfWlmKHBFKFkpKXtjb25zdCBvPW5ldyB1UyhbLi4uWS5jb250ZW50XSxjbG9uZURlZXAoWS5tZXRhKSxjbG9uZURlZXAoWS5hdHRyaWJ1dGVzKSk7aWYocy5mb3JFYWNoKCgocyxpLGEpPT57by5yZW1vdmUoc2VyaWFsaXplcnNfdmFsdWUoaSkpLG8uY29udGVudC5wdXNoKGEpfSkpLG8ucmVtb3ZlKCIkcmVmIiksby5zZXRNZXRhUHJvcGVydHkoInJlZi1maWVsZHMiLHskcmVmOnNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZil9KSxvLnNldE1ldGFQcm9wZXJ0eSgicmVmLW9yaWdpbiIsai51cmkpLG8uc2V0TWV0YVByb3BlcnR5KCJyZWYtcmVmZXJlbmNpbmctZWxlbWVudC1pZCIsY2xvbmVEZWVwKF94LmlkZW50aWZ5KHMpKSksdGhpcy5hbGxvd01ldGFQYXRjaGVzJiZ2b2lkIDA9PT1vLmdldCgiJCRyZWYiKSl7Y29uc3Qgcz1yZXNvbHZlKEwsQik7by5zZXQoIiQkcmVmIixzKX1ZPW99cmV0dXJuIF8ucmVwbGFjZVdpdGgoWSxkZXJlZmVyZW5jZV9tdXRhdGlvblJlcGxhY2VyKSxpP3ZvaWQgMDpZfWNhdGNoKG8pe3ZhciBqLEwsQjtjb25zdCBhPWdldF9yb290X2NhdXNlKG8pLF89bmV3IHl4KGBDb3VsZCBub3QgcmVzb2x2ZSByZWZlcmVuY2U6ICR7YS5tZXNzYWdlfWAse2Jhc2VEb2M6dGhpcy5yZWZlcmVuY2UudXJpLCRyZWY6c2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKSxmdWxsUGF0aDpudWxsIT09KGo9dGhpcy5iYXNlUGF0aCkmJnZvaWQgMCE9PWo/ajpbLi4udG9fcGF0aChbLi4udSxpLHNdKSwiJHJlZiJdLGNhdXNlOmF9KTtyZXR1cm4gdm9pZChudWxsPT09KEw9dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLmRlcmVmZXJlbmNlT3B0cyl8fHZvaWQgMD09PUx8fG51bGw9PT0oTD1MLmVycm9ycyl8fHZvaWQgMD09PUx8fG51bGw9PT0oQj1MLnB1c2gpfHx2b2lkIDA9PT1CfHxCLmNhbGwoTCxfKSl9fWFzeW5jIExpbmtFbGVtZW50KCl7fWFzeW5jIEV4YW1wbGVFbGVtZW50KHMsbyxpLGEsdSxfKXt0cnl7cmV0dXJuIGF3YWl0IHN1cGVyLkV4YW1wbGVFbGVtZW50KHMsbyxpLGEsdSxfKX1jYXRjaChvKXt2YXIgdyx4LEM7Y29uc3QgYT1nZXRfcm9vdF9jYXVzZShvKSxfPXZ4KGEse2Jhc2VEb2M6dGhpcy5yZWZlcmVuY2UudXJpLGV4dGVybmFsVmFsdWU6c2VyaWFsaXplcnNfdmFsdWUocy5leHRlcm5hbFZhbHVlKSxmdWxsUGF0aDpudWxsIT09KHc9dGhpcy5iYXNlUGF0aCkmJnZvaWQgMCE9PXc/dzpbLi4udG9fcGF0aChbLi4udSxpLHNdKSwiZXh0ZXJuYWxWYWx1ZSJdfSk7cmV0dXJuIHZvaWQobnVsbD09PSh4PXRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5kZXJlZmVyZW5jZU9wdHMpfHx2b2lkIDA9PT14fHxudWxsPT09KHg9eC5lcnJvcnMpfHx2b2lkIDA9PT14fHxudWxsPT09KEM9eC5wdXNoKXx8dm9pZCAwPT09Q3x8Qy5jYWxsKHgsXykpfX19Y29uc3QgU3g9T3BlbkFQSTNfMVN3YWdnZXJDbGllbnREZXJlZmVyZW5jZVZpc2l0b3IsRXg9bWVyZ2VBbGxbU3ltYm9sLmZvcigibm9kZWpzLnV0aWwucHJvbWlzaWZ5LmN1c3RvbSIpXTtjb25zdCB3eD1jbGFzcyBSb290VmlzaXRvcntjb25zdHJ1Y3Rvcih7cGFyYW1ldGVyTWFjcm86cyxtb2RlbFByb3BlcnR5TWFjcm86byxtb2RlOmksb3B0aW9uczphLC4uLnV9KXtjb25zdCBfPVtdO18ucHVzaChuZXcgU3goey4uLnUsb3B0aW9uczphfSkpLCJmdW5jdGlvbiI9PXR5cGVvZiBvJiZfLnB1c2gobmV3IHB4KHttb2RlbFByb3BlcnR5TWFjcm86byxvcHRpb25zOmF9KSksInN0cmljdCIhPT1pJiZfLnB1c2gobmV3IG14KHtvcHRpb25zOmF9KSksImZ1bmN0aW9uIj09dHlwZW9mIHMmJl8ucHVzaChuZXcgZ3goe3BhcmFtZXRlck1hY3JvOnMsb3B0aW9uczphfSkpO2NvbnN0IHc9RXgoXyx7bm9kZVR5cGVHZXR0ZXI6YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY190cmF2ZXJzYWxfdmlzaXRvcl9nZXROb2RlVHlwZX0pO09iamVjdC5hc3NpZ24odGhpcyx3KX19LHh4PXZpc2l0b3JfdmlzaXRbU3ltYm9sLmZvcigibm9kZWpzLnV0aWwucHJvbWlzaWZ5LmN1c3RvbSIpXTtjb25zdCBreD1jbGFzcyBPcGVuQVBJM18xU3dhZ2dlckNsaWVudERlcmVmZXJlbmNlU3RyYXRlZ3kgZXh0ZW5kcyB1eHthbGxvd01ldGFQYXRjaGVzO3BhcmFtZXRlck1hY3JvO21vZGVsUHJvcGVydHlNYWNybzttb2RlO2FuY2VzdG9ycztjb25zdHJ1Y3Rvcih7YWxsb3dNZXRhUGF0Y2hlczpzPSExLHBhcmFtZXRlck1hY3JvOm89bnVsbCxtb2RlbFByb3BlcnR5TWFjcm86aT1udWxsLG1vZGU6YT0ibm9uLXN0cmljdCIsYW5jZXN0b3JzOnU9W10sLi4uX309e30pe3N1cGVyKHsuLi5ffSksdGhpcy5uYW1lPSJvcGVuYXBpLTMtMS1zd2FnZ2VyLWNsaWVudCIsdGhpcy5hbGxvd01ldGFQYXRjaGVzPXMsdGhpcy5wYXJhbWV0ZXJNYWNybz1vLHRoaXMubW9kZWxQcm9wZXJ0eU1hY3JvPWksdGhpcy5tb2RlPWEsdGhpcy5hbmNlc3RvcnM9Wy4uLnVdfWFzeW5jIGRlcmVmZXJlbmNlKHMsbyl7dmFyIGk7Y29uc3QgYT1jcmVhdGVOYW1lc3BhY2UoaHcpLHU9bnVsbCE9PShpPW8uZGVyZWZlcmVuY2UucmVmU2V0KSYmdm9pZCAwIT09aT9pOm5ldyB5dyxfPW5ldyB5dztsZXQgdyx4PXU7dS5oYXMocy51cmkpP3c9dS5maW5kKChvPT5vLnVyaT09PXMudXJpKSk6KHc9bmV3IGd3KHt1cmk6cy51cmksdmFsdWU6cy5wYXJzZVJlc3VsdH0pLHUuYWRkKHcpKSxvLmRlcmVmZXJlbmNlLmltbXV0YWJsZSYmKHUucmVmcy5tYXAoKHM9Pm5ldyBndyh7Li4ucyx2YWx1ZTpjbG9uZURlZXAocy52YWx1ZSl9KSkpLmZvckVhY2goKHM9Pl8uYWRkKHMpKSksdz1fLmZpbmQoKG89Pm8udXJpPT09cy51cmkpKSx4PV8pO2NvbnN0IEM9bmV3IHd4KHtyZWZlcmVuY2U6dyxuYW1lc3BhY2U6YSxvcHRpb25zOm8sYWxsb3dNZXRhUGF0Y2hlczp0aGlzLmFsbG93TWV0YVBhdGNoZXMsYW5jZXN0b3JzOnRoaXMuYW5jZXN0b3JzLG1vZGVsUHJvcGVydHlNYWNybzp0aGlzLm1vZGVsUHJvcGVydHlNYWNybyxtb2RlOnRoaXMubW9kZSxwYXJhbWV0ZXJNYWNybzp0aGlzLnBhcmFtZXRlck1hY3JvfSksaj1hd2FpdCB4eCh4LnJvb3RSZWYudmFsdWUsQyx7a2V5TWFwOnV3LG5vZGVUeXBlR2V0dGVyOmFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfdHJhdmVyc2FsX3Zpc2l0b3JfZ2V0Tm9kZVR5cGV9KTtyZXR1cm4gby5kZXJlZmVyZW5jZS5pbW11dGFibGUmJl8ucmVmcy5maWx0ZXIoKHM9PnMudXJpLnN0YXJ0c1dpdGgoImltbXV0YWJsZTovLyIpKSkubWFwKChzPT5uZXcgZ3coey4uLnMsdXJpOnMudXJpLnJlcGxhY2UoL15pbW11dGFibGU6XC9cLy8sIiIpfSkpKS5mb3JFYWNoKChzPT51LmFkZChzKSkpLG51bGw9PT1vLmRlcmVmZXJlbmNlLnJlZlNldCYmdS5jbGVhbigpLF8uY2xlYW4oKSxqfX0sY2lyY3VsYXJSZXBsYWNlcj1zPT57Y29uc3Qgbz1zZXJpYWxpemVyc192YWx1ZShzLm1ldGEuZ2V0KCJiYXNlVVJJIikpLGk9cy5tZXRhLmdldCgicmVmZXJlbmNpbmdFbGVtZW50Iik7cmV0dXJuIG5ldyBTdS5TaCh7JHJlZjpvfSxjbG9uZURlZXAoaS5tZXRhKSxjbG9uZURlZXAoaS5hdHRyaWJ1dGVzKSl9LHJlc29sdmVPcGVuQVBJMzFTdHJhdGVneT1hc3luYyBzPT57Y29uc3R7c3BlYzpvLHRpbWVvdXQ6aSxyZWRpcmVjdHM6YSxyZXF1ZXN0SW50ZXJjZXB0b3I6dSxyZXNwb25zZUludGVyY2VwdG9yOl8scGF0aERpc2NyaW1pbmF0b3I6dz1bXSxhbGxvd01ldGFQYXRjaGVzOng9ITEsdXNlQ2lyY3VsYXJTdHJ1Y3R1cmVzOkM9ITEsc2tpcE5vcm1hbGl6YXRpb246aj0hMSxwYXJhbWV0ZXJNYWNybzpMPW51bGwsbW9kZWxQcm9wZXJ0eU1hY3JvOkI9bnVsbCxtb2RlOiQ9Im5vbi1zdHJpY3QiLHN0cmF0ZWdpZXM6Vn09czt0cnl7Y29uc3R7Y2FjaGU6VX09cmVzb2x2ZU9wZW5BUEkzMVN0cmF0ZWd5LHo9Vi5maW5kKChzPT5zLm1hdGNoKG8pKSksWT1pc0h0dHBVcmwodXJsX2N3ZCgpKT91cmxfY3dkKCk6TGwsWj1vcHRpb25zX3JldHJpZXZhbFVSSShzKSxlZT1yZXNvbHZlKFksWik7bGV0IGllO1UuaGFzKG8pP2llPVUuZ2V0KG8pOihpZT1JYi5yZWZyYWN0KG8pLGllLmNsYXNzZXMucHVzaCgicmVzdWx0IiksVS5zZXQobyxpZSkpO2NvbnN0IGFlPW5ldyBDdShbaWVdKSxjZT1lc19jb21waWxlKHcpLGxlPSIiPT09Y2U/IiI6YCMke2NlfWAscGU9YXBpZG9tX2V2YWx1YXRlKGllLGNlKSxkZT1uZXcgZ3coe3VyaTplZSx2YWx1ZTphZX0pLGZlPW5ldyB5dyh7cmVmczpbZGVdfSk7IiIhPT1jZSYmKGZlLnJvb3RSZWY9dm9pZCAwKTtjb25zdCB5ZT1bbmV3IFNldChbcGVdKV0sYmU9W10sX2U9YXdhaXQoYXN5bmMocyxvPXt9KT0+e2NvbnN0IGk9dXRpbF9tZXJnZShidyxvKTtyZXR1cm4gZGVyZWZlcmVuY2VBcGlET00ocyxpKX0pKHBlLHtyZXNvbHZlOntiYXNlVVJJOmAke2VlfSR7bGV9YCxyZXNvbHZlcnM6W25ldyBxdyh7dGltZW91dDppfHwxZTQscmVkaXJlY3RzOmF8fDEwfSldLHJlc29sdmVyT3B0czp7c3dhZ2dlckhUVFBDbGllbnRDb25maWc6e3JlcXVlc3RJbnRlcmNlcHRvcjp1LHJlc3BvbnNlSW50ZXJjZXB0b3I6X319LHN0cmF0ZWdpZXM6W25ldyBNd119LHBhcnNlOnttZWRpYVR5cGU6bXcubGF0ZXN0KCkscGFyc2VyczpbbmV3IHp3KHthbGxvd0VtcHR5OiExLHNvdXJjZU1hcDohMX0pLG5ldyBXdyh7YWxsb3dFbXB0eTohMSxzb3VyY2VNYXA6ITF9KSxuZXcgVncoe2FsbG93RW1wdHk6ITEsc291cmNlTWFwOiExfSksbmV3IFV3KHthbGxvd0VtcHR5OiExLHNvdXJjZU1hcDohMX0pLG5ldyBUdyh7YWxsb3dFbXB0eTohMSxzb3VyY2VNYXA6ITF9KV19LGRlcmVmZXJlbmNlOnttYXhEZXB0aDoxMDAsc3RyYXRlZ2llczpbbmV3IGt4KHthbGxvd01ldGFQYXRjaGVzOngsdXNlQ2lyY3VsYXJTdHJ1Y3R1cmVzOkMscGFyYW1ldGVyTWFjcm86TCxtb2RlbFByb3BlcnR5TWFjcm86Qixtb2RlOiQsYW5jZXN0b3JzOnllfSldLHJlZlNldDpmZSxkZXJlZmVyZW5jZU9wdHM6e2Vycm9yczpiZX0saW1tdXRhYmxlOiExLGNpcmN1bGFyOkM/Imlnbm9yZSI6InJlcGxhY2UiLGNpcmN1bGFyUmVwbGFjZXI6Qz9idy5kZXJlZmVyZW5jZS5jaXJjdWxhclJlcGxhY2VyOmNpcmN1bGFyUmVwbGFjZXJ9fSksU2U9KChzLG8saSk9Pm5ldyBncCh7ZWxlbWVudDppfSkudHJhbnNjbHVkZShzLG8pKShwZSxfZSxpZSksd2U9aj9TZTp6Lm5vcm1hbGl6ZShTZSk7cmV0dXJue3NwZWM6c2VyaWFsaXplcnNfdmFsdWUod2UpLGVycm9yczpiZX19Y2F0Y2gocyl7aWYocyBpbnN0YW5jZW9mIExwKXJldHVybntzcGVjOm8sZXJyb3JzOltdfTt0aHJvdyBzfX07cmVzb2x2ZU9wZW5BUEkzMVN0cmF0ZWd5LmNhY2hlPW5ldyBXZWFrTWFwO2NvbnN0IE94PXJlc29sdmVPcGVuQVBJMzFTdHJhdGVneTtmdW5jdGlvbiBfY2xvbmUocyxvLGkpe2lmKGl8fChpPW5ldyBDeCksZnVuY3Rpb24gX2lzUHJpbWl0aXZlKHMpe3ZhciBvPXR5cGVvZiBzO3JldHVybiBudWxsPT1zfHwib2JqZWN0IiE9byYmImZ1bmN0aW9uIiE9b30ocykpcmV0dXJuIHM7dmFyIGE9ZnVuY3Rpb24gY29weShhKXt2YXIgdT1pLmdldChzKTtpZih1KXJldHVybiB1O2Zvcih2YXIgXyBpbiBpLnNldChzLGEpLHMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsXykmJihhW19dPW8/X2Nsb25lKHNbX10sITAsaSk6c1tfXSk7cmV0dXJuIGF9O3N3aXRjaChyYShzKSl7Y2FzZSJPYmplY3QiOnJldHVybiBhKE9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKHMpKSk7Y2FzZSJBcnJheSI6cmV0dXJuIGEoQXJyYXkocy5sZW5ndGgpKTtjYXNlIkRhdGUiOnJldHVybiBuZXcgRGF0ZShzLnZhbHVlT2YoKSk7Y2FzZSJSZWdFeHAiOnJldHVybiBfY2xvbmVSZWdFeHAocyk7Y2FzZSJJbnQ4QXJyYXkiOmNhc2UiVWludDhBcnJheSI6Y2FzZSJVaW50OENsYW1wZWRBcnJheSI6Y2FzZSJJbnQxNkFycmF5IjpjYXNlIlVpbnQxNkFycmF5IjpjYXNlIkludDMyQXJyYXkiOmNhc2UiVWludDMyQXJyYXkiOmNhc2UiRmxvYXQzMkFycmF5IjpjYXNlIkZsb2F0NjRBcnJheSI6Y2FzZSJCaWdJbnQ2NEFycmF5IjpjYXNlIkJpZ1VpbnQ2NEFycmF5IjpyZXR1cm4gcy5zbGljZSgpO2RlZmF1bHQ6cmV0dXJuIHN9fXZhciBDeD1mdW5jdGlvbigpe2Z1bmN0aW9uIF9PYmplY3RNYXAoKXt0aGlzLm1hcD17fSx0aGlzLmxlbmd0aD0wfXJldHVybiBfT2JqZWN0TWFwLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24ocyxvKXt2YXIgaT10aGlzLmhhc2gocyksYT10aGlzLm1hcFtpXTthfHwodGhpcy5tYXBbaV09YT1bXSksYS5wdXNoKFtzLG9dKSx0aGlzLmxlbmd0aCs9MX0sX09iamVjdE1hcC5wcm90b3R5cGUuaGFzaD1mdW5jdGlvbihzKXt2YXIgbz1bXTtmb3IodmFyIGkgaW4gcylvLnB1c2goT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHNbaV0pKTtyZXR1cm4gby5qb2luKCl9LF9PYmplY3RNYXAucHJvdG90eXBlLmdldD1mdW5jdGlvbihzKXtpZih0aGlzLmxlbmd0aDw9MTgwKWZvcih2YXIgbyBpbiB0aGlzLm1hcClmb3IodmFyIGk9dGhpcy5tYXBbb10sYT0wO2E8aS5sZW5ndGg7YSs9MSl7aWYoKF89aVthXSlbMF09PT1zKXJldHVybiBfWzFdfWVsc2V7dmFyIHU9dGhpcy5oYXNoKHMpO2lmKGk9dGhpcy5tYXBbdV0pZm9yKGE9MDthPGkubGVuZ3RoO2ErPTEpe3ZhciBfO2lmKChfPWlbYV0pWzBdPT09cylyZXR1cm4gX1sxXX19fSxfT2JqZWN0TWFwfSgpLEF4PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gWFJlZHVjZUJ5KHMsbyxpLGEpe3RoaXMudmFsdWVGbj1zLHRoaXMudmFsdWVBY2M9byx0aGlzLmtleUZuPWksdGhpcy54Zj1hLHRoaXMuaW5wdXRzPXt9fXJldHVybiBYUmVkdWNlQnkucHJvdG90eXBlWyJAQHRyYW5zZHVjZXIvaW5pdCJdPV94ZkJhc2VfaW5pdCxYUmVkdWNlQnkucHJvdG90eXBlWyJAQHRyYW5zZHVjZXIvcmVzdWx0Il09ZnVuY3Rpb24ocyl7dmFyIG87Zm9yKG8gaW4gdGhpcy5pbnB1dHMpaWYoX2hhcyhvLHRoaXMuaW5wdXRzKSYmKHM9dGhpcy54ZlsiQEB0cmFuc2R1Y2VyL3N0ZXAiXShzLHRoaXMuaW5wdXRzW29dKSlbIkBAdHJhbnNkdWNlci9yZWR1Y2VkIl0pe3M9c1siQEB0cmFuc2R1Y2VyL3ZhbHVlIl07YnJlYWt9cmV0dXJuIHRoaXMuaW5wdXRzPW51bGwsdGhpcy54ZlsiQEB0cmFuc2R1Y2VyL3Jlc3VsdCJdKHMpfSxYUmVkdWNlQnkucHJvdG90eXBlWyJAQHRyYW5zZHVjZXIvc3RlcCJdPWZ1bmN0aW9uKHMsbyl7dmFyIGk9dGhpcy5rZXlGbihvKTtyZXR1cm4gdGhpcy5pbnB1dHNbaV09dGhpcy5pbnB1dHNbaV18fFtpLF9jbG9uZSh0aGlzLnZhbHVlQWNjLCExKV0sdGhpcy5pbnB1dHNbaV1bMV09dGhpcy52YWx1ZUZuKHRoaXMuaW5wdXRzW2ldWzFdLG8pLHN9LFhSZWR1Y2VCeX0oKTtmdW5jdGlvbiBfeHJlZHVjZUJ5KHMsbyxpKXtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBBeChzLG8saSxhKX19dmFyIGp4PV9jdXJyeU4oNCxbXSxfZGlzcGF0Y2hhYmxlKFtdLF94cmVkdWNlQnksKGZ1bmN0aW9uIHJlZHVjZUJ5KHMsbyxpLGEpe3ZhciB1PV94d3JhcCgoZnVuY3Rpb24oYSx1KXt2YXIgXz1pKHUpLHc9cyhfaGFzKF8sYSk/YVtfXTpfY2xvbmUobywhMSksdSk7cmV0dXJuIHcmJndbIkBAdHJhbnNkdWNlci9yZWR1Y2VkIl0/X3JlZHVjZWQoYSk6KGFbX109dyxhKX0pKTtyZXR1cm4gd2EodSx7fSxhKX0pKSk7Y29uc3QgSXg9X2N1cnJ5MihfY2hlY2tGb3JNZXRob2QoImdyb3VwQnkiLGp4KChmdW5jdGlvbihzLG8pe3JldHVybiBzLnB1c2gobyksc30pLFtdKSkpO2NvbnN0IFB4PWNsYXNzIE5vcm1hbGl6ZVN0b3JhZ2V7aW50ZXJuYWxTdG9yZTtjb25zdHJ1Y3RvcihzLG8saSl7dGhpcy5zdG9yYWdlRWxlbWVudD1zLHRoaXMuc3RvcmFnZUZpZWxkPW8sdGhpcy5zdG9yYWdlU3ViRmllbGQ9aX1nZXQgc3RvcmUoKXtpZighdGhpcy5pbnRlcm5hbFN0b3JlKXtsZXQgcz10aGlzLnN0b3JhZ2VFbGVtZW50LmdldCh0aGlzLnN0b3JhZ2VGaWVsZCk7TXUocyl8fChzPW5ldyBTdS5TaCx0aGlzLnN0b3JhZ2VFbGVtZW50LnNldCh0aGlzLnN0b3JhZ2VGaWVsZCxzKSk7bGV0IG89cy5nZXQodGhpcy5zdG9yYWdlU3ViRmllbGQpO1J1KG8pfHwobz1uZXcgU3Uud0Uscy5zZXQodGhpcy5zdG9yYWdlU3ViRmllbGQsbykpLHRoaXMuaW50ZXJuYWxTdG9yZT1vfXJldHVybiB0aGlzLmludGVybmFsU3RvcmV9YXBwZW5kKHMpe3RoaXMuaW5jbHVkZXMocyl8fHRoaXMuc3RvcmUucHVzaChzKX1pbmNsdWRlcyhzKXtyZXR1cm4gdGhpcy5zdG9yZS5pbmNsdWRlcyhzKX19LHJlbW92ZVNwYWNlcz1zPT5zLnJlcGxhY2UoL1xzL2csIiIpLG5vcm1hbGl6ZV9vcGVyYXRpb25faWRzX3JlcGxhY2VTcGVjaWFsQ2hhcnNXaXRoVW5kZXJzY29yZT1zPT5zLnJlcGxhY2UoL1xXL2dpLCJfIiksbm9ybWFsaXplT3BlcmF0aW9uSWQ9KHMsbyxpKT0+e2NvbnN0IGE9cmVtb3ZlU3BhY2VzKHMpO3JldHVybiBhLmxlbmd0aD4wP25vcm1hbGl6ZV9vcGVyYXRpb25faWRzX3JlcGxhY2VTcGVjaWFsQ2hhcnNXaXRoVW5kZXJzY29yZShhKTooKHMsbyk9PmAke25vcm1hbGl6ZV9vcGVyYXRpb25faWRzX3JlcGxhY2VTcGVjaWFsQ2hhcnNXaXRoVW5kZXJzY29yZShyZW1vdmVTcGFjZXMoby50b0xvd2VyQ2FzZSgpKSl9JHtub3JtYWxpemVfb3BlcmF0aW9uX2lkc19yZXBsYWNlU3BlY2lhbENoYXJzV2l0aFVuZGVyc2NvcmUocmVtb3ZlU3BhY2VzKHMpKX1gKShvLGkpfSxub3JtYWxpemVfb3BlcmF0aW9uX2lkcz0oe3N0b3JhZ2VGaWVsZDpzPSJ4LW5vcm1hbGl6ZWQiLG9wZXJhdGlvbklkTm9ybWFsaXplcjpvPW5vcm1hbGl6ZU9wZXJhdGlvbklkfT17fSk9Pmk9Pntjb25zdHtwcmVkaWNhdGVzOmEsYW5jZXN0b3JMaW5lYWdlVG9KU09OUG9pbnRlcjp1LG5hbWVzcGFjZTpffT1pLHc9W10seD1bXSxDPVtdO2xldCBqO3JldHVybnt2aXNpdG9yOntPcGVuQXBpM18xRWxlbWVudDp7ZW50ZXIobyl7aj1uZXcgUHgobyxzLCJvcGVyYXRpb24taWRzIil9LGxlYXZlKCl7Y29uc3Qgcz1JeCgocz0+c2VyaWFsaXplcnNfdmFsdWUocy5vcGVyYXRpb25JZCkpLHgpO09iamVjdC5lbnRyaWVzKHMpLmZvckVhY2goKChbcyxvXSk9PntBcnJheS5pc0FycmF5KG8pJiYoby5sZW5ndGg8PTF8fG8uZm9yRWFjaCgoKG8saSk9Pntjb25zdCBhPWAke3N9JHtpKzF9YDtvLm9wZXJhdGlvbklkPW5ldyBfLmVsZW1lbnRzLlN0cmluZyhhKX0pKSl9KSksQy5mb3JFYWNoKChzPT57aWYodm9pZCAwPT09cy5vcGVyYXRpb25JZClyZXR1cm47Y29uc3Qgbz1TdHJpbmcoc2VyaWFsaXplcnNfdmFsdWUocy5vcGVyYXRpb25JZCkpLGk9eC5maW5kKChzPT5zZXJpYWxpemVyc192YWx1ZShzLm1ldGEuZ2V0KCJvcmlnaW5hbE9wZXJhdGlvbklkIikpPT09bykpO3ZvaWQgMCE9PWkmJihzLm9wZXJhdGlvbklkPWNsb25lRGVlcC5zYWZlKGkub3BlcmF0aW9uSWQpLHMubWV0YS5zZXQoIm9yaWdpbmFsT3BlcmF0aW9uSWQiLG8pLHMuc2V0KCJfX29yaWdpbmFsT3BlcmF0aW9uSWQiLG8pKX0pKSx4Lmxlbmd0aD0wLEMubGVuZ3RoPTAsaj12b2lkIDB9fSxQYXRoSXRlbUVsZW1lbnQ6e2VudGVyKHMpe2NvbnN0IG89TmEoInBhdGgiLHNlcmlhbGl6ZXJzX3ZhbHVlKHMubWV0YS5nZXQoInBhdGgiKSkpO3cucHVzaChvKX0sbGVhdmUoKXt3LnBvcCgpfX0sT3BlcmF0aW9uRWxlbWVudDp7ZW50ZXIocyxpLGEsQyxMKXtpZih2b2lkIDA9PT1zLm9wZXJhdGlvbklkKXJldHVybjtjb25zdCBCPXUoWy4uLkwsYSxzXSk7aWYoai5pbmNsdWRlcyhCKSlyZXR1cm47Y29uc3QgJD1TdHJpbmcoc2VyaWFsaXplcnNfdmFsdWUocy5vcGVyYXRpb25JZCkpLFY9QmEodyksVT1OYSgibWV0aG9kIixzZXJpYWxpemVyc192YWx1ZShzLm1ldGEuZ2V0KCJodHRwLW1ldGhvZCIpKSksej1vKCQsVixVKTskIT09eiYmKHMub3BlcmF0aW9uSWQ9bmV3IF8uZWxlbWVudHMuU3RyaW5nKHopLHMuc2V0KCJfX29yaWdpbmFsT3BlcmF0aW9uSWQiLCQpLHMubWV0YS5zZXQoIm9yaWdpbmFsT3BlcmF0aW9uSWQiLCQpLHgucHVzaChzKSxqLmFwcGVuZChCKSl9fSxMaW5rRWxlbWVudDp7bGVhdmUocyl7YS5pc0xpbmtFbGVtZW50KHMpJiZ2b2lkIDAhPT1zLm9wZXJhdGlvbklkJiZDLnB1c2gocyl9fX19fSxub3JtYWxpemVfcGFyYW1ldGVycz0oe3N0b3JhZ2VGaWVsZDpzPSJ4LW5vcm1hbGl6ZWQifT17fSk9Pm89Pntjb25zdHtwcmVkaWNhdGVzOmksYW5jZXN0b3JMaW5lYWdlVG9KU09OUG9pbnRlcjphfT1vLHBhcmFtZXRlckVxdWFscz0ocyxvKT0+ISFpLmlzUGFyYW1ldGVyRWxlbWVudChzKSYmKCEhaS5pc1BhcmFtZXRlckVsZW1lbnQobykmJighIWkuaXNTdHJpbmdFbGVtZW50KHMubmFtZSkmJighIWkuaXNTdHJpbmdFbGVtZW50KHMuaW4pJiYoISFpLmlzU3RyaW5nRWxlbWVudChvLm5hbWUpJiYoISFpLmlzU3RyaW5nRWxlbWVudChvLmluKSYmKHNlcmlhbGl6ZXJzX3ZhbHVlKHMubmFtZSk9PT1zZXJpYWxpemVyc192YWx1ZShvLm5hbWUpJiZzZXJpYWxpemVyc192YWx1ZShzLmluKT09PXNlcmlhbGl6ZXJzX3ZhbHVlKG8uaW4pKSkpKSkpLHU9W107bGV0IF87cmV0dXJue3Zpc2l0b3I6e09wZW5BcGkzXzFFbGVtZW50OntlbnRlcihvKXtfPW5ldyBQeChvLHMsInBhcmFtZXRlcnMiKX0sbGVhdmUoKXtfPXZvaWQgMH19LFBhdGhJdGVtRWxlbWVudDp7ZW50ZXIocyxvLGEsXyx3KXtpZih3LnNvbWUoaS5pc0NvbXBvbmVudHNFbGVtZW50KSlyZXR1cm47Y29uc3R7cGFyYW1ldGVyczp4fT1zO2kuaXNBcnJheUVsZW1lbnQoeCk/dS5wdXNoKFsuLi54LmNvbnRlbnRdKTp1LnB1c2goW10pfSxsZWF2ZSgpe3UucG9wKCl9fSxPcGVyYXRpb25FbGVtZW50OntsZWF2ZShzLG8saSx3LHgpe2NvbnN0IEM9QmEodSk7aWYoIUFycmF5LmlzQXJyYXkoQyl8fDA9PT1DLmxlbmd0aClyZXR1cm47Y29uc3Qgaj1hKFsuLi54LGksc10pO2lmKF8uaW5jbHVkZXMoaikpcmV0dXJuO2NvbnN0IEw9WHcoW10sWyJwYXJhbWV0ZXJzIiwiY29udGVudCJdLHMpLEI9ZngocGFyYW1ldGVyRXF1YWxzLFsuLi5MLC4uLkNdKTtzLnBhcmFtZXRlcnM9bmV3IFN2KEIpLF8uYXBwZW5kKGopfX19fX0sbm9ybWFsaXplX3NlY3VyaXR5X3JlcXVpcmVtZW50cz0oe3N0b3JhZ2VGaWVsZDpzPSJ4LW5vcm1hbGl6ZWQifT17fSk9Pm89Pntjb25zdHtwcmVkaWNhdGVzOmksYW5jZXN0b3JMaW5lYWdlVG9KU09OUG9pbnRlcjphfT1vO2xldCB1LF87cmV0dXJue3Zpc2l0b3I6e09wZW5BcGkzXzFFbGVtZW50OntlbnRlcihvKXtfPW5ldyBQeChvLHMsInNlY3VyaXR5LXJlcXVpcmVtZW50cyIpLGkuaXNBcnJheUVsZW1lbnQoby5zZWN1cml0eSkmJih1PW8uc2VjdXJpdHkpfSxsZWF2ZSgpe189dm9pZCAwLHU9dm9pZCAwfX0sT3BlcmF0aW9uRWxlbWVudDp7bGVhdmUocyxvLHcseCxDKXtpZihDLnNvbWUoaS5pc0NvbXBvbmVudHNFbGVtZW50KSlyZXR1cm47Y29uc3Qgaj1hKFsuLi5DLHcsc10pO2lmKF8uaW5jbHVkZXMoaikpcmV0dXJuO3ZhciBMO3ZvaWQgMD09PXMuc2VjdXJpdHkmJnZvaWQgMCE9PXUmJihzLnNlY3VyaXR5PW5ldyBDdihudWxsPT09KEw9dSl8fHZvaWQgMD09PUw/dm9pZCAwOkwuY29udGVudCksXy5hcHBlbmQoaikpfX19fX0sbm9ybWFsaXplX3BhcmFtZXRlcl9leGFtcGxlcz0oe3N0b3JhZ2VGaWVsZDpzPSJ4LW5vcm1hbGl6ZWQifT17fSk9Pm89Pntjb25zdHtwcmVkaWNhdGVzOmksYW5jZXN0b3JMaW5lYWdlVG9KU09OUG9pbnRlcjphfT1vO2xldCB1O3JldHVybnt2aXNpdG9yOntPcGVuQXBpM18xRWxlbWVudDp7ZW50ZXIobyl7dT1uZXcgUHgobyxzLCJwYXJhbWV0ZXItZXhhbXBsZXMiKX0sbGVhdmUoKXt1PXZvaWQgMH19LFBhcmFtZXRlckVsZW1lbnQ6e2xlYXZlKHMsbyxfLHcseCl7dmFyIEMsajtpZih4LnNvbWUoaS5pc0NvbXBvbmVudHNFbGVtZW50KSlyZXR1cm47aWYodm9pZCAwPT09cy5zY2hlbWF8fCFpLmlzU2NoZW1hRWxlbWVudChzLnNjaGVtYSkpcmV0dXJuO2lmKHZvaWQgMD09PShudWxsPT09KEM9cy5zY2hlbWEpfHx2b2lkIDA9PT1DP3ZvaWQgMDpDLmV4YW1wbGUpJiZ2b2lkIDA9PT0obnVsbD09PShqPXMuc2NoZW1hKXx8dm9pZCAwPT09aj92b2lkIDA6ai5leGFtcGxlcykpcmV0dXJuO2NvbnN0IEw9YShbLi4ueCxfLHNdKTtpZighdS5pbmNsdWRlcyhMKSl7aWYodm9pZCAwIT09cy5leGFtcGxlcyYmaS5pc09iamVjdEVsZW1lbnQocy5leGFtcGxlcykpe2NvbnN0IG89cy5leGFtcGxlcy5tYXAoKHM9PmNsb25lRGVlcC5zYWZlKHMudmFsdWUpKSk7cmV0dXJuIHZvaWQgMCE9PXMuc2NoZW1hLmV4YW1wbGVzJiYocy5zY2hlbWEuc2V0KCJleGFtcGxlcyIsbyksdS5hcHBlbmQoTCkpLHZvaWQodm9pZCAwIT09cy5zY2hlbWEuZXhhbXBsZSYmKHMuc2NoZW1hLnNldCgiZXhhbXBsZSIsb1swXSksdS5hcHBlbmQoTCkpKX12b2lkIDAhPT1zLmV4YW1wbGUmJih2b2lkIDAhPT1zLnNjaGVtYS5leGFtcGxlcyYmKHMuc2NoZW1hLnNldCgiZXhhbXBsZXMiLFtjbG9uZURlZXAocy5leGFtcGxlKV0pLHUuYXBwZW5kKEwpKSx2b2lkIDAhPT1zLnNjaGVtYS5leGFtcGxlJiYocy5zY2hlbWEuc2V0KCJleGFtcGxlIixjbG9uZURlZXAocy5leGFtcGxlKSksdS5hcHBlbmQoTCkpKX19fX19fSxub3JtYWxpemVfaGVhZGVyX2V4YW1wbGVzPSh7c3RvcmFnZUZpZWxkOnM9Ingtbm9ybWFsaXplZCJ9PXt9KT0+bz0+e2NvbnN0e3ByZWRpY2F0ZXM6aSxhbmNlc3RvckxpbmVhZ2VUb0pTT05Qb2ludGVyOmF9PW87bGV0IHU7cmV0dXJue3Zpc2l0b3I6e09wZW5BcGkzXzFFbGVtZW50OntlbnRlcihvKXt1PW5ldyBQeChvLHMsImhlYWRlci1leGFtcGxlcyIpfSxsZWF2ZSgpe3U9dm9pZCAwfX0sSGVhZGVyRWxlbWVudDp7bGVhdmUocyxvLF8sdyx4KXt2YXIgQyxqO2lmKHguc29tZShpLmlzQ29tcG9uZW50c0VsZW1lbnQpKXJldHVybjtpZih2b2lkIDA9PT1zLnNjaGVtYXx8IWkuaXNTY2hlbWFFbGVtZW50KHMuc2NoZW1hKSlyZXR1cm47aWYodm9pZCAwPT09KG51bGw9PT0oQz1zLnNjaGVtYSl8fHZvaWQgMD09PUM/dm9pZCAwOkMuZXhhbXBsZSkmJnZvaWQgMD09PShudWxsPT09KGo9cy5zY2hlbWEpfHx2b2lkIDA9PT1qP3ZvaWQgMDpqLmV4YW1wbGVzKSlyZXR1cm47Y29uc3QgTD1hKFsuLi54LF8sc10pO2lmKCF1LmluY2x1ZGVzKEwpKXtpZih2b2lkIDAhPT1zLmV4YW1wbGVzJiZpLmlzT2JqZWN0RWxlbWVudChzLmV4YW1wbGVzKSl7Y29uc3Qgbz1zLmV4YW1wbGVzLm1hcCgocz0+Y2xvbmVEZWVwLnNhZmUocy52YWx1ZSkpKTtyZXR1cm4gdm9pZCAwIT09cy5zY2hlbWEuZXhhbXBsZXMmJihzLnNjaGVtYS5zZXQoImV4YW1wbGVzIixvKSx1LmFwcGVuZChMKSksdm9pZCh2b2lkIDAhPT1zLnNjaGVtYS5leGFtcGxlJiYocy5zY2hlbWEuc2V0KCJleGFtcGxlIixvWzBdKSx1LmFwcGVuZChMKSkpfXZvaWQgMCE9PXMuZXhhbXBsZSYmKHZvaWQgMCE9PXMuc2NoZW1hLmV4YW1wbGVzJiYocy5zY2hlbWEuc2V0KCJleGFtcGxlcyIsW2Nsb25lRGVlcChzLmV4YW1wbGUpXSksdS5hcHBlbmQoTCkpLHZvaWQgMCE9PXMuc2NoZW1hLmV4YW1wbGUmJihzLnNjaGVtYS5zZXQoImV4YW1wbGUiLGNsb25lRGVlcChzLmV4YW1wbGUpKSx1LmFwcGVuZChMKSkpfX19fX19LG9wZW5hcGlfM18xX2FwaWRvbV9ub3JtYWxpemU9cz0+e2lmKCFNdShzKSlyZXR1cm4gcztjb25zdCBvPVtub3JtYWxpemVfb3BlcmF0aW9uX2lkcyh7b3BlcmF0aW9uSWROb3JtYWxpemVyOihzLG8saSk9Pm9wSWQoe29wZXJhdGlvbklkOnN9LG8saSx7djJPcGVyYXRpb25JZENvbXBhdGliaWxpdHlNb2RlOiExfSl9KSxub3JtYWxpemVfcGFyYW1ldGVycygpLG5vcm1hbGl6ZV9zZWN1cml0eV9yZXF1aXJlbWVudHMoKSxub3JtYWxpemVfcGFyYW1ldGVyX2V4YW1wbGVzKCksbm9ybWFsaXplX2hlYWRlcl9leGFtcGxlcygpXTtyZXR1cm4gZGlzcGF0Y2hQbHVnaW5zU3luYyhzLG8se3Rvb2xib3hDcmVhdG9yOmFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX3Rvb2xib3gsdmlzaXRvck9wdGlvbnM6e2tleU1hcDp1dyxub2RlVHlwZUdldHRlcjphcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3RyYXZlcnNhbF92aXNpdG9yX2dldE5vZGVUeXBlfX0pfSxUeD17bmFtZToib3BlbmFwaS0zLTEtYXBpZG9tIixtYXRjaDpzPT5pc09wZW5BUEkzMShzKSxub3JtYWxpemUocyl7aWYoIWp1KHMpJiZmdShzKSYmIXMuJCRub3JtYWxpemVkKXtjb25zdCBpPShvPW9wZW5hcGlfM18xX2FwaWRvbV9ub3JtYWxpemUscz0+e2NvbnN0IGk9SWIucmVmcmFjdChzKTtpLmNsYXNzZXMucHVzaCgicmVzdWx0Iik7Y29uc3QgYT1vKGkpLHU9c2VyaWFsaXplcnNfdmFsdWUoYSk7cmV0dXJuIE94LmNhY2hlLnNldCh1LGEpLHNlcmlhbGl6ZXJzX3ZhbHVlKGEpfSkocyk7cmV0dXJuIGkuJCRub3JtYWxpemVkPSEwLGl9dmFyIG87cmV0dXJuIGp1KHMpP29wZW5hcGlfM18xX2FwaWRvbV9ub3JtYWxpemUocyk6c30scmVzb2x2ZTphc3luYyBzPT5PeChzKX0sTng9VHgsbWFrZVJlc29sdmU9cz0+YXN5bmMgbz0+KGFzeW5jIHM9Pntjb25zdHtzcGVjOm8scmVxdWVzdEludGVyY2VwdG9yOmkscmVzcG9uc2VJbnRlcmNlcHRvcjphfT1zLHU9b3B0aW9uc19yZXRyaWV2YWxVUkkocyksXz1vcHRpb25zX2h0dHBDbGllbnQocyksdz1vfHxhd2FpdCBtYWtlRmV0Y2hKU09OKF8se3JlcXVlc3RJbnRlcmNlcHRvcjppLHJlc3BvbnNlSW50ZXJjZXB0b3I6YX0pKHUpLHg9ey4uLnMsc3BlYzp3fTtyZXR1cm4gcy5zdHJhdGVnaWVzLmZpbmQoKHM9PnMubWF0Y2godykpKS5yZXNvbHZlKHgpfSkoey4uLnMsLi4ub30pLE14PW1ha2VSZXNvbHZlKHtzdHJhdGVnaWVzOltfdSx2dSxndV19KTtjb25zdCBzZXJ2ZXJfdXJsX3RlbXBsYXRlPShzLG8saSxhLHUpPT57aWYocz09PUVwLlNFTV9QUkUpe2lmKCExPT09QXJyYXkuaXNBcnJheSh1KSl0aHJvdyBuZXcgRXJyb3IoInBhcnNlcidzIHVzZXIgZGF0YSBtdXN0IGJlIGFuIGFycmF5Iik7dS5wdXNoKFsic2VydmVyLXVybC10ZW1wbGF0ZSIsU3AuY2hhcnNUb1N0cmluZyhvLGksYSldKX1yZXR1cm4gRXAuU0VNX09LfSxjYWxsYmFja3Nfc2VydmVyX3ZhcmlhYmxlPShzLG8saSxhLHUpPT57aWYocz09PUVwLlNFTV9QUkUpe2lmKCExPT09QXJyYXkuaXNBcnJheSh1KSl0aHJvdyBuZXcgRXJyb3IoInBhcnNlcidzIHVzZXIgZGF0YSBtdXN0IGJlIGFuIGFycmF5Iik7dS5wdXNoKFsic2VydmVyLXZhcmlhYmxlIixTcC5jaGFyc1RvU3RyaW5nKG8saSxhKV0pfXJldHVybiBFcC5TRU1fT0t9LHNlcnZlcl92YXJpYWJsZV9uYW1lPShzLG8saSxhLHUpPT57aWYocz09PUVwLlNFTV9QUkUpe2lmKCExPT09QXJyYXkuaXNBcnJheSh1KSl0aHJvdyBuZXcgRXJyb3IoInBhcnNlcidzIHVzZXIgZGF0YSBtdXN0IGJlIGFuIGFycmF5Iik7dS5wdXNoKFsic2VydmVyLXZhcmlhYmxlLW5hbWUiLFNwLmNoYXJzVG9TdHJpbmcobyxpLGEpXSl9cmV0dXJuIEVwLlNFTV9PS30sY2FsbGJhY2tzX2xpdGVyYWxzPShzLG8saSxhLHUpPT57aWYocz09PUVwLlNFTV9QUkUpe2lmKCExPT09QXJyYXkuaXNBcnJheSh1KSl0aHJvdyBuZXcgRXJyb3IoInBhcnNlcidzIHVzZXIgZGF0YSBtdXN0IGJlIGFuIGFycmF5Iik7dS5wdXNoKFsibGl0ZXJhbHMiLFNwLmNoYXJzVG9TdHJpbmcobyxpLGEpXSl9cmV0dXJuIEVwLlNFTV9PS30sUng9bmV3IGZ1bmN0aW9uIHNlcnZlcl91cmxfdGVtcGxhdGluZ19ncmFtbWFyKCl7dGhpcy5ncmFtbWFyT2JqZWN0PSJncmFtbWFyT2JqZWN0Iix0aGlzLnJ1bGVzPVtdLHRoaXMucnVsZXNbMF09e25hbWU6InNlcnZlci11cmwtdGVtcGxhdGUiLGxvd2VyOiJzZXJ2ZXItdXJsLXRlbXBsYXRlIixpbmRleDowLGlzQmtyOiExfSx0aGlzLnJ1bGVzWzFdPXtuYW1lOiJzZXJ2ZXItdmFyaWFibGUiLGxvd2VyOiJzZXJ2ZXItdmFyaWFibGUiLGluZGV4OjEsaXNCa3I6ITF9LHRoaXMucnVsZXNbMl09e25hbWU6InNlcnZlci12YXJpYWJsZS1uYW1lIixsb3dlcjoic2VydmVyLXZhcmlhYmxlLW5hbWUiLGluZGV4OjIsaXNCa3I6ITF9LHRoaXMucnVsZXNbM109e25hbWU6ImxpdGVyYWxzIixsb3dlcjoibGl0ZXJhbHMiLGluZGV4OjMsaXNCa3I6ITF9LHRoaXMucnVsZXNbNF09e25hbWU6IkRJR0lUIixsb3dlcjoiZGlnaXQiLGluZGV4OjQsaXNCa3I6ITF9LHRoaXMucnVsZXNbNV09e25hbWU6IkhFWERJRyIsbG93ZXI6ImhleGRpZyIsaW5kZXg6NSxpc0JrcjohMX0sdGhpcy5ydWxlc1s2XT17bmFtZToicGN0LWVuY29kZWQiLGxvd2VyOiJwY3QtZW5jb2RlZCIsaW5kZXg6Nixpc0JrcjohMX0sdGhpcy5ydWxlc1s3XT17bmFtZToidWNzY2hhciIsbG93ZXI6InVjc2NoYXIiLGluZGV4OjcsaXNCa3I6ITF9LHRoaXMucnVsZXNbOF09e25hbWU6Imlwcml2YXRlIixsb3dlcjoiaXByaXZhdGUiLGluZGV4OjgsaXNCa3I6ITF9LHRoaXMudWR0cz1bXSx0aGlzLnJ1bGVzWzBdLm9wY29kZXM9W10sdGhpcy5ydWxlc1swXS5vcGNvZGVzWzBdPXt0eXBlOjMsbWluOjEsbWF4OjEvMH0sdGhpcy5ydWxlc1swXS5vcGNvZGVzWzFdPXt0eXBlOjEsY2hpbGRyZW46WzIsM119LHRoaXMucnVsZXNbMF0ub3Bjb2Rlc1syXT17dHlwZTo0LGluZGV4OjN9LHRoaXMucnVsZXNbMF0ub3Bjb2Rlc1szXT17dHlwZTo0LGluZGV4OjF9LHRoaXMucnVsZXNbMV0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzFdLm9wY29kZXNbMF09e3R5cGU6MixjaGlsZHJlbjpbMSwyLDNdfSx0aGlzLnJ1bGVzWzFdLm9wY29kZXNbMV09e3R5cGU6NyxzdHJpbmc6WzEyM119LHRoaXMucnVsZXNbMV0ub3Bjb2Rlc1syXT17dHlwZTo0LGluZGV4OjJ9LHRoaXMucnVsZXNbMV0ub3Bjb2Rlc1szXT17dHlwZTo3LHN0cmluZzpbMTI1XX0sdGhpcy5ydWxlc1syXS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMl0ub3Bjb2Rlc1swXT17dHlwZTozLG1pbjoxLG1heDoxLzB9LHRoaXMucnVsZXNbMl0ub3Bjb2Rlc1sxXT17dHlwZToxLGNoaWxkcmVuOlsyLDMsNF19LHRoaXMucnVsZXNbMl0ub3Bjb2Rlc1syXT17dHlwZTo1LG1pbjowLG1heDoxMjJ9LHRoaXMucnVsZXNbMl0ub3Bjb2Rlc1szXT17dHlwZTo2LHN0cmluZzpbMTI0XX0sdGhpcy5ydWxlc1syXS5vcGNvZGVzWzRdPXt0eXBlOjUsbWluOjEyNixtYXg6MTExNDExMX0sdGhpcy5ydWxlc1szXS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbM10ub3Bjb2Rlc1swXT17dHlwZTozLG1pbjoxLG1heDoxLzB9LHRoaXMucnVsZXNbM10ub3Bjb2Rlc1sxXT17dHlwZToxLGNoaWxkcmVuOlsyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTNdfSx0aGlzLnJ1bGVzWzNdLm9wY29kZXNbMl09e3R5cGU6NixzdHJpbmc6WzMzXX0sdGhpcy5ydWxlc1szXS5vcGNvZGVzWzNdPXt0eXBlOjUsbWluOjM1LG1heDozNn0sdGhpcy5ydWxlc1szXS5vcGNvZGVzWzRdPXt0eXBlOjUsbWluOjM4LG1heDo1OX0sdGhpcy5ydWxlc1szXS5vcGNvZGVzWzVdPXt0eXBlOjYsc3RyaW5nOls2MV19LHRoaXMucnVsZXNbM10ub3Bjb2Rlc1s2XT17dHlwZTo1LG1pbjo2MyxtYXg6OTF9LHRoaXMucnVsZXNbM10ub3Bjb2Rlc1s3XT17dHlwZTo2LHN0cmluZzpbOTNdfSx0aGlzLnJ1bGVzWzNdLm9wY29kZXNbOF09e3R5cGU6NixzdHJpbmc6Wzk1XX0sdGhpcy5ydWxlc1szXS5vcGNvZGVzWzldPXt0eXBlOjUsbWluOjk3LG1heDoxMjJ9LHRoaXMucnVsZXNbM10ub3Bjb2Rlc1sxMF09e3R5cGU6NixzdHJpbmc6WzEyNl19LHRoaXMucnVsZXNbM10ub3Bjb2Rlc1sxMV09e3R5cGU6NCxpbmRleDo3fSx0aGlzLnJ1bGVzWzNdLm9wY29kZXNbMTJdPXt0eXBlOjQsaW5kZXg6OH0sdGhpcy5ydWxlc1szXS5vcGNvZGVzWzEzXT17dHlwZTo0LGluZGV4OjZ9LHRoaXMucnVsZXNbNF0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzRdLm9wY29kZXNbMF09e3R5cGU6NSxtaW46NDgsbWF4OjU3fSx0aGlzLnJ1bGVzWzVdLm9wY29kZXM9W10sdGhpcy5ydWxlc1s1XS5vcGNvZGVzWzBdPXt0eXBlOjEsY2hpbGRyZW46WzEsMiwzLDQsNSw2LDddfSx0aGlzLnJ1bGVzWzVdLm9wY29kZXNbMV09e3R5cGU6NCxpbmRleDo0fSx0aGlzLnJ1bGVzWzVdLm9wY29kZXNbMl09e3R5cGU6NyxzdHJpbmc6Wzk3XX0sdGhpcy5ydWxlc1s1XS5vcGNvZGVzWzNdPXt0eXBlOjcsc3RyaW5nOls5OF19LHRoaXMucnVsZXNbNV0ub3Bjb2Rlc1s0XT17dHlwZTo3LHN0cmluZzpbOTldfSx0aGlzLnJ1bGVzWzVdLm9wY29kZXNbNV09e3R5cGU6NyxzdHJpbmc6WzEwMF19LHRoaXMucnVsZXNbNV0ub3Bjb2Rlc1s2XT17dHlwZTo3LHN0cmluZzpbMTAxXX0sdGhpcy5ydWxlc1s1XS5vcGNvZGVzWzddPXt0eXBlOjcsc3RyaW5nOlsxMDJdfSx0aGlzLnJ1bGVzWzZdLm9wY29kZXM9W10sdGhpcy5ydWxlc1s2XS5vcGNvZGVzWzBdPXt0eXBlOjIsY2hpbGRyZW46WzEsMiwzXX0sdGhpcy5ydWxlc1s2XS5vcGNvZGVzWzFdPXt0eXBlOjcsc3RyaW5nOlszN119LHRoaXMucnVsZXNbNl0ub3Bjb2Rlc1syXT17dHlwZTo0LGluZGV4OjV9LHRoaXMucnVsZXNbNl0ub3Bjb2Rlc1szXT17dHlwZTo0LGluZGV4OjV9LHRoaXMucnVsZXNbN10ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzddLm9wY29kZXNbMF09e3R5cGU6MSxjaGlsZHJlbjpbMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTddfSx0aGlzLnJ1bGVzWzddLm9wY29kZXNbMV09e3R5cGU6NSxtaW46MTYwLG1heDo1NTI5NX0sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzJdPXt0eXBlOjUsbWluOjYzNzQ0LG1heDo2NDk3NX0sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzNdPXt0eXBlOjUsbWluOjY1MDA4LG1heDo2NTUxOX0sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzRdPXt0eXBlOjUsbWluOjY1NTM2LG1heDoxMzEwNjl9LHRoaXMucnVsZXNbN10ub3Bjb2Rlc1s1XT17dHlwZTo1LG1pbjoxMzEwNzIsbWF4OjE5NjYwNX0sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzZdPXt0eXBlOjUsbWluOjE5NjYwOCxtYXg6MjYyMTQxfSx0aGlzLnJ1bGVzWzddLm9wY29kZXNbN109e3R5cGU6NSxtaW46MjYyMTQ0LG1heDozMjc2Nzd9LHRoaXMucnVsZXNbN10ub3Bjb2Rlc1s4XT17dHlwZTo1LG1pbjozMjc2ODAsbWF4OjM5MzIxM30sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzldPXt0eXBlOjUsbWluOjM5MzIxNixtYXg6NDU4NzQ5fSx0aGlzLnJ1bGVzWzddLm9wY29kZXNbMTBdPXt0eXBlOjUsbWluOjQ1ODc1MixtYXg6NTI0Mjg1fSx0aGlzLnJ1bGVzWzddLm9wY29kZXNbMTFdPXt0eXBlOjUsbWluOjUyNDI4OCxtYXg6NTg5ODIxfSx0aGlzLnJ1bGVzWzddLm9wY29kZXNbMTJdPXt0eXBlOjUsbWluOjU4OTgyNCxtYXg6NjU1MzU3fSx0aGlzLnJ1bGVzWzddLm9wY29kZXNbMTNdPXt0eXBlOjUsbWluOjY1NTM2MCxtYXg6NzIwODkzfSx0aGlzLnJ1bGVzWzddLm9wY29kZXNbMTRdPXt0eXBlOjUsbWluOjcyMDg5NixtYXg6Nzg2NDI5fSx0aGlzLnJ1bGVzWzddLm9wY29kZXNbMTVdPXt0eXBlOjUsbWluOjc4NjQzMixtYXg6ODUxOTY1fSx0aGlzLnJ1bGVzWzddLm9wY29kZXNbMTZdPXt0eXBlOjUsbWluOjg1MTk2OCxtYXg6OTE3NTAxfSx0aGlzLnJ1bGVzWzddLm9wY29kZXNbMTddPXt0eXBlOjUsbWluOjkyMTYwMCxtYXg6OTgzMDM3fSx0aGlzLnJ1bGVzWzhdLm9wY29kZXM9W10sdGhpcy5ydWxlc1s4XS5vcGNvZGVzWzBdPXt0eXBlOjEsY2hpbGRyZW46WzEsMiwzXX0sdGhpcy5ydWxlc1s4XS5vcGNvZGVzWzFdPXt0eXBlOjUsbWluOjU3MzQ0LG1heDo2Mzc0M30sdGhpcy5ydWxlc1s4XS5vcGNvZGVzWzJdPXt0eXBlOjUsbWluOjk4MzA0MCxtYXg6MTA0ODU3M30sdGhpcy5ydWxlc1s4XS5vcGNvZGVzWzNdPXt0eXBlOjUsbWluOjEwNDg1NzYsbWF4OjExMTQxMDl9LHRoaXMudG9TdHJpbmc9ZnVuY3Rpb24gdG9TdHJpbmcoKXtsZXQgcz0iIjtyZXR1cm4gcys9IjsgT3BlbkFQSSBTZXJ2ZXIgVVJMIHRlbXBsYXRpbmcgQUJORiBzeW50YXhcbiIscys9InNlcnZlci11cmwtdGVtcGxhdGUgICAgPSAxKiggbGl0ZXJhbHMgLyBzZXJ2ZXItdmFyaWFibGUgKSA7IHZhcmlhbnQgb2YgaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzY1NzAjc2VjdGlvbi0yXG4iLHMrPSdzZXJ2ZXItdmFyaWFibGUgICAgICAgID0gInsiIHNlcnZlci12YXJpYWJsZS1uYW1lICJ9IlxuJyxzKz0ic2VydmVyLXZhcmlhYmxlLW5hbWUgICA9IDEqKCAleDAwLTdBIC8gJXg3QyAvICV4N0UtMTBGRkZGICkgOyBldmVyeSBVVEY4IGNoYXJhY3RlciBleGNlcHQgeyBhbmQgfSAoZnJvbSBPcGVuQVBJKVxuIixzKz0iXG4iLHMrPSI7IGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM2NTcwI3NlY3Rpb24tMi4xXG4iLHMrPSI7IGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL2VycmF0YS9laWQ2OTM3XG4iLHMrPSJsaXRlcmFscyAgICAgICAgICAgICAgID0gMSooICV4MjEgLyAleDIzLTI0IC8gJXgyNi0zQiAvICV4M0QgLyAleDNGLTVCXG4iLHMrPSIgICAgICAgICAgICAgICAgICAgICAgIC8gJXg1RCAvICV4NUYgLyAleDYxLTdBIC8gJXg3RSAvIHVjc2NoYXIgLyBpcHJpdmF0ZVxuIixzKz0iICAgICAgICAgICAgICAgICAgICAgICAvIHBjdC1lbmNvZGVkKVxuIixzKz0iICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgYW55IFVuaWNvZGUgY2hhcmFjdGVyIGV4Y2VwdDogQ1RMLCBTUCxcbiIscys9JyAgICAgICAgICAgICAgICAgICAgICAgICAgICA7ICBEUVVPVEUsICIlIiAoYXNpZGUgZnJvbSBwY3QtZW5jb2RlZCksXG4nLHMrPScgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyAgIjwiLCAiPiIsICJcXCIsICJeIiwgImAiLCAieyIsICJ8IiwgIn0iXG4nLHMrPSJcbiIscys9IjsgaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzY1NzAjc2VjdGlvbi0xLjVcbiIscys9IkRJR0lUICAgICAgICAgID0gICV4MzAtMzkgICAgICAgICAgICAgOyAwLTlcbiIscys9J0hFWERJRyAgICAgICAgID0gIERJR0lUIC8gIkEiIC8gIkIiIC8gIkMiIC8gIkQiIC8gIkUiIC8gIkYiIDsgY2FzZS1pbnNlbnNpdGl2ZVxuJyxzKz0iXG4iLHMrPSdwY3QtZW5jb2RlZCAgICA9ICAiJSIgSEVYRElHIEhFWERJR1xuJyxzKz0iXG4iLHMrPSJ1Y3NjaGFyICAgICAgICA9ICAleEEwLUQ3RkYgLyAleEY5MDAtRkRDRiAvICV4RkRGMC1GRkVGXG4iLHMrPSIgICAgICAgICAgICAgICAvICAleDEwMDAwLTFGRkZEIC8gJXgyMDAwMC0yRkZGRCAvICV4MzAwMDAtM0ZGRkRcbiIscys9IiAgICAgICAgICAgICAgIC8gICV4NDAwMDAtNEZGRkQgLyAleDUwMDAwLTVGRkZEIC8gJXg2MDAwMC02RkZGRFxuIixzKz0iICAgICAgICAgICAgICAgLyAgJXg3MDAwMC03RkZGRCAvICV4ODAwMDAtOEZGRkQgLyAleDkwMDAwLTlGRkZEXG4iLHMrPSIgICAgICAgICAgICAgICAvICAleEEwMDAwLUFGRkZEIC8gJXhCMDAwMC1CRkZGRCAvICV4QzAwMDAtQ0ZGRkRcbiIscys9IiAgICAgICAgICAgICAgIC8gICV4RDAwMDAtREZGRkQgLyAleEUxMDAwLUVGRkZEXG4iLHMrPSJcbiIscys9Imlwcml2YXRlICAgICAgID0gICV4RTAwMC1GOEZGIC8gJXhGMDAwMC1GRkZGRCAvICV4MTAwMDAwLTEwRkZGRFxuIiwnOyBPcGVuQVBJIFNlcnZlciBVUkwgdGVtcGxhdGluZyBBQk5GIHN5bnRheFxuc2VydmVyLXVybC10ZW1wbGF0ZSAgICA9IDEqKCBsaXRlcmFscyAvIHNlcnZlci12YXJpYWJsZSApIDsgdmFyaWFudCBvZiBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNjU3MCNzZWN0aW9uLTJcbnNlcnZlci12YXJpYWJsZSAgICAgICAgPSAieyIgc2VydmVyLXZhcmlhYmxlLW5hbWUgIn0iXG5zZXJ2ZXItdmFyaWFibGUtbmFtZSAgID0gMSooICV4MDAtN0EgLyAleDdDIC8gJXg3RS0xMEZGRkYgKSA7IGV2ZXJ5IFVURjggY2hhcmFjdGVyIGV4Y2VwdCB7IGFuZCB9IChmcm9tIE9wZW5BUEkpXG5cbjsgaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzY1NzAjc2VjdGlvbi0yLjFcbjsgaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvZXJyYXRhL2VpZDY5MzdcbmxpdGVyYWxzICAgICAgICAgICAgICAgPSAxKiggJXgyMSAvICV4MjMtMjQgLyAleDI2LTNCIC8gJXgzRCAvICV4M0YtNUJcbiAgICAgICAgICAgICAgICAgICAgICAgLyAleDVEIC8gJXg1RiAvICV4NjEtN0EgLyAleDdFIC8gdWNzY2hhciAvIGlwcml2YXRlXG4gICAgICAgICAgICAgICAgICAgICAgIC8gcGN0LWVuY29kZWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBhbnkgVW5pY29kZSBjaGFyYWN0ZXIgZXhjZXB0OiBDVEwsIFNQLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgIERRVU9URSwgIiUiIChhc2lkZSBmcm9tIHBjdC1lbmNvZGVkKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA7ICAiPCIsICI+IiwgIlxcIiwgIl4iLCAiYCIsICJ7IiwgInwiLCAifSJcblxuOyBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNjU3MCNzZWN0aW9uLTEuNVxuRElHSVQgICAgICAgICAgPSAgJXgzMC0zOSAgICAgICAgICAgICA7IDAtOVxuSEVYRElHICAgICAgICAgPSAgRElHSVQgLyAiQSIgLyAiQiIgLyAiQyIgLyAiRCIgLyAiRSIgLyAiRiIgOyBjYXNlLWluc2Vuc2l0aXZlXG5cbnBjdC1lbmNvZGVkICAgID0gICIlIiBIRVhESUcgSEVYRElHXG5cbnVjc2NoYXIgICAgICAgID0gICV4QTAtRDdGRiAvICV4RjkwMC1GRENGIC8gJXhGREYwLUZGRUZcbiAgICAgICAgICAgICAgIC8gICV4MTAwMDAtMUZGRkQgLyAleDIwMDAwLTJGRkZEIC8gJXgzMDAwMC0zRkZGRFxuICAgICAgICAgICAgICAgLyAgJXg0MDAwMC00RkZGRCAvICV4NTAwMDAtNUZGRkQgLyAleDYwMDAwLTZGRkZEXG4gICAgICAgICAgICAgICAvICAleDcwMDAwLTdGRkZEIC8gJXg4MDAwMC04RkZGRCAvICV4OTAwMDAtOUZGRkRcbiAgICAgICAgICAgICAgIC8gICV4QTAwMDAtQUZGRkQgLyAleEIwMDAwLUJGRkZEIC8gJXhDMDAwMC1DRkZGRFxuICAgICAgICAgICAgICAgLyAgJXhEMDAwMC1ERkZGRCAvICV4RTEwMDAtRUZGRkRcblxuaXByaXZhdGUgICAgICAgPSAgJXhFMDAwLUY4RkYgLyAleEYwMDAwLUZGRkZEIC8gJXgxMDAwMDAtMTBGRkZEXG4nfX0sb3BlbmFwaV9zZXJ2ZXJfdXJsX3RlbXBsYXRpbmdfZXNfcGFyc2U9cz0+e2NvbnN0IG89bmV3IHlwO28uYXN0PW5ldyB2cCxvLmFzdC5jYWxsYmFja3NbInNlcnZlci11cmwtdGVtcGxhdGUiXT1zZXJ2ZXJfdXJsX3RlbXBsYXRlLG8uYXN0LmNhbGxiYWNrc1sic2VydmVyLXZhcmlhYmxlIl09Y2FsbGJhY2tzX3NlcnZlcl92YXJpYWJsZSxvLmFzdC5jYWxsYmFja3NbInNlcnZlci12YXJpYWJsZS1uYW1lIl09c2VydmVyX3ZhcmlhYmxlX25hbWUsby5hc3QuY2FsbGJhY2tzLmxpdGVyYWxzPWNhbGxiYWNrc19saXRlcmFscztyZXR1cm57cmVzdWx0Om8ucGFyc2UoUngsInNlcnZlci11cmwtdGVtcGxhdGUiLHMpLGFzdDpvLmFzdH19LG9wZW5hcGlfc2VydmVyX3VybF90ZW1wbGF0aW5nX2VzX3Rlc3Q9KHMse3N0cmljdDpvPSExfT17fSk9Pnt0cnl7Y29uc3QgaT1vcGVuYXBpX3NlcnZlcl91cmxfdGVtcGxhdGluZ19lc19wYXJzZShzKTtpZighaS5yZXN1bHQuc3VjY2VzcylyZXR1cm4hMTtjb25zdCBhPVtdO2kuYXN0LnRyYW5zbGF0ZShhKTtjb25zdCB1PWEuc29tZSgoKFtzXSk9PiJzZXJ2ZXItdmFyaWFibGUiPT09cykpO2lmKCFvJiYhdSl0cnl7cmV0dXJuIG5ldyBVUkwocywiaHR0cHM6Ly92bGFkaW1pcmdvcmVqLmNvbSIpLCEwfWNhdGNoe3JldHVybiExfXJldHVybiFvfHx1fWNhdGNoe3JldHVybiExfX0sZW5jb2RlU2VydmVyVmFyaWFibGU9cz0+KHM9Pnt0cnl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBzJiZkZWNvZGVVUklDb21wb25lbnQocykhPT1zfWNhdGNoe3JldHVybiExfX0pKHMpP3M6ZW5jb2RlVVJJQ29tcG9uZW50KHMpLnJlcGxhY2UoLyU1Qi9nLCJbIikucmVwbGFjZSgvJTVEL2csIl0iKSxEeD1bImxpdGVyYWxzIiwic2VydmVyLXZhcmlhYmxlLW5hbWUiXSxlc19zdWJzdGl0dXRlPShzLG8saT17fSk9Pntjb25zdCBhPXsuLi57ZW5jb2RlcjplbmNvZGVTZXJ2ZXJWYXJpYWJsZX0sLi4uaX0sdT1vcGVuYXBpX3NlcnZlcl91cmxfdGVtcGxhdGluZ19lc19wYXJzZShzKTtpZighdS5yZXN1bHQuc3VjY2VzcylyZXR1cm4gcztjb25zdCBfPVtdO3UuYXN0LnRyYW5zbGF0ZShfKTtjb25zdCB3PV8uZmlsdGVyKCgoW3NdKT0+RHguaW5jbHVkZXMocykpKS5tYXAoKChbcyxpXSk9PiJzZXJ2ZXItdmFyaWFibGUtbmFtZSI9PT1zP09iamVjdC5oYXNPd24obyxpKT9hLmVuY29kZXIob1tpXSxpKTpgeyR7aX19YDppKSk7cmV0dXJuIHcuam9pbigiIil9O2Z1bmN0aW9uIHBhdGhfdGVtcGxhdGluZ19ncmFtbWFyKCl7dGhpcy5ncmFtbWFyT2JqZWN0PSJncmFtbWFyT2JqZWN0Iix0aGlzLnJ1bGVzPVtdLHRoaXMucnVsZXNbMF09e25hbWU6InBhdGgtdGVtcGxhdGUiLGxvd2VyOiJwYXRoLXRlbXBsYXRlIixpbmRleDowLGlzQmtyOiExfSx0aGlzLnJ1bGVzWzFdPXtuYW1lOiJwYXRoLXNlZ21lbnQiLGxvd2VyOiJwYXRoLXNlZ21lbnQiLGluZGV4OjEsaXNCa3I6ITF9LHRoaXMucnVsZXNbMl09e25hbWU6InNsYXNoIixsb3dlcjoic2xhc2giLGluZGV4OjIsaXNCa3I6ITF9LHRoaXMucnVsZXNbM109e25hbWU6InBhdGgtbGl0ZXJhbCIsbG93ZXI6InBhdGgtbGl0ZXJhbCIsaW5kZXg6Myxpc0JrcjohMX0sdGhpcy5ydWxlc1s0XT17bmFtZToidGVtcGxhdGUtZXhwcmVzc2lvbiIsbG93ZXI6InRlbXBsYXRlLWV4cHJlc3Npb24iLGluZGV4OjQsaXNCa3I6ITF9LHRoaXMucnVsZXNbNV09e25hbWU6InRlbXBsYXRlLWV4cHJlc3Npb24tcGFyYW0tbmFtZSIsbG93ZXI6InRlbXBsYXRlLWV4cHJlc3Npb24tcGFyYW0tbmFtZSIsaW5kZXg6NSxpc0JrcjohMX0sdGhpcy5ydWxlc1s2XT17bmFtZToicGNoYXIiLGxvd2VyOiJwY2hhciIsaW5kZXg6Nixpc0JrcjohMX0sdGhpcy5ydWxlc1s3XT17bmFtZToidW5yZXNlcnZlZCIsbG93ZXI6InVucmVzZXJ2ZWQiLGluZGV4OjcsaXNCa3I6ITF9LHRoaXMucnVsZXNbOF09e25hbWU6InBjdC1lbmNvZGVkIixsb3dlcjoicGN0LWVuY29kZWQiLGluZGV4OjgsaXNCa3I6ITF9LHRoaXMucnVsZXNbOV09e25hbWU6InN1Yi1kZWxpbXMiLGxvd2VyOiJzdWItZGVsaW1zIixpbmRleDo5LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzEwXT17bmFtZToiQUxQSEEiLGxvd2VyOiJhbHBoYSIsaW5kZXg6MTAsaXNCa3I6ITF9LHRoaXMucnVsZXNbMTFdPXtuYW1lOiJESUdJVCIsbG93ZXI6ImRpZ2l0IixpbmRleDoxMSxpc0JrcjohMX0sdGhpcy5ydWxlc1sxMl09e25hbWU6IkhFWERJRyIsbG93ZXI6ImhleGRpZyIsaW5kZXg6MTIsaXNCa3I6ITF9LHRoaXMudWR0cz1bXSx0aGlzLnJ1bGVzWzBdLm9wY29kZXM9W10sdGhpcy5ydWxlc1swXS5vcGNvZGVzWzBdPXt0eXBlOjIsY2hpbGRyZW46WzEsMiw2XX0sdGhpcy5ydWxlc1swXS5vcGNvZGVzWzFdPXt0eXBlOjQsaW5kZXg6Mn0sdGhpcy5ydWxlc1swXS5vcGNvZGVzWzJdPXt0eXBlOjMsbWluOjAsbWF4OjEvMH0sdGhpcy5ydWxlc1swXS5vcGNvZGVzWzNdPXt0eXBlOjIsY2hpbGRyZW46WzQsNV19LHRoaXMucnVsZXNbMF0ub3Bjb2Rlc1s0XT17dHlwZTo0LGluZGV4OjF9LHRoaXMucnVsZXNbMF0ub3Bjb2Rlc1s1XT17dHlwZTo0LGluZGV4OjJ9LHRoaXMucnVsZXNbMF0ub3Bjb2Rlc1s2XT17dHlwZTozLG1pbjowLG1heDoxfSx0aGlzLnJ1bGVzWzBdLm9wY29kZXNbN109e3R5cGU6NCxpbmRleDoxfSx0aGlzLnJ1bGVzWzFdLm9wY29kZXM9W10sdGhpcy5ydWxlc1sxXS5vcGNvZGVzWzBdPXt0eXBlOjMsbWluOjEsbWF4OjEvMH0sdGhpcy5ydWxlc1sxXS5vcGNvZGVzWzFdPXt0eXBlOjEsY2hpbGRyZW46WzIsM119LHRoaXMucnVsZXNbMV0ub3Bjb2Rlc1syXT17dHlwZTo0LGluZGV4OjN9LHRoaXMucnVsZXNbMV0ub3Bjb2Rlc1szXT17dHlwZTo0LGluZGV4OjR9LHRoaXMucnVsZXNbMl0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzJdLm9wY29kZXNbMF09e3R5cGU6NyxzdHJpbmc6WzQ3XX0sdGhpcy5ydWxlc1szXS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbM10ub3Bjb2Rlc1swXT17dHlwZTozLG1pbjoxLG1heDoxLzB9LHRoaXMucnVsZXNbM10ub3Bjb2Rlc1sxXT17dHlwZTo0LGluZGV4OjZ9LHRoaXMucnVsZXNbNF0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzRdLm9wY29kZXNbMF09e3R5cGU6MixjaGlsZHJlbjpbMSwyLDNdfSx0aGlzLnJ1bGVzWzRdLm9wY29kZXNbMV09e3R5cGU6NyxzdHJpbmc6WzEyM119LHRoaXMucnVsZXNbNF0ub3Bjb2Rlc1syXT17dHlwZTo0LGluZGV4OjV9LHRoaXMucnVsZXNbNF0ub3Bjb2Rlc1szXT17dHlwZTo3LHN0cmluZzpbMTI1XX0sdGhpcy5ydWxlc1s1XS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbNV0ub3Bjb2Rlc1swXT17dHlwZTozLG1pbjoxLG1heDoxLzB9LHRoaXMucnVsZXNbNV0ub3Bjb2Rlc1sxXT17dHlwZToxLGNoaWxkcmVuOlsyLDMsNF19LHRoaXMucnVsZXNbNV0ub3Bjb2Rlc1syXT17dHlwZTo1LG1pbjowLG1heDoxMjJ9LHRoaXMucnVsZXNbNV0ub3Bjb2Rlc1szXT17dHlwZTo2LHN0cmluZzpbMTI0XX0sdGhpcy5ydWxlc1s1XS5vcGNvZGVzWzRdPXt0eXBlOjUsbWluOjEyNixtYXg6MTExNDExMX0sdGhpcy5ydWxlc1s2XS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbNl0ub3Bjb2Rlc1swXT17dHlwZToxLGNoaWxkcmVuOlsxLDIsMyw0LDVdfSx0aGlzLnJ1bGVzWzZdLm9wY29kZXNbMV09e3R5cGU6NCxpbmRleDo3fSx0aGlzLnJ1bGVzWzZdLm9wY29kZXNbMl09e3R5cGU6NCxpbmRleDo4fSx0aGlzLnJ1bGVzWzZdLm9wY29kZXNbM109e3R5cGU6NCxpbmRleDo5fSx0aGlzLnJ1bGVzWzZdLm9wY29kZXNbNF09e3R5cGU6NyxzdHJpbmc6WzU4XX0sdGhpcy5ydWxlc1s2XS5vcGNvZGVzWzVdPXt0eXBlOjcsc3RyaW5nOls2NF19LHRoaXMucnVsZXNbN10ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzddLm9wY29kZXNbMF09e3R5cGU6MSxjaGlsZHJlbjpbMSwyLDMsNCw1LDZdfSx0aGlzLnJ1bGVzWzddLm9wY29kZXNbMV09e3R5cGU6NCxpbmRleDoxMH0sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzJdPXt0eXBlOjQsaW5kZXg6MTF9LHRoaXMucnVsZXNbN10ub3Bjb2Rlc1szXT17dHlwZTo3LHN0cmluZzpbNDVdfSx0aGlzLnJ1bGVzWzddLm9wY29kZXNbNF09e3R5cGU6NyxzdHJpbmc6WzQ2XX0sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzVdPXt0eXBlOjcsc3RyaW5nOls5NV19LHRoaXMucnVsZXNbN10ub3Bjb2Rlc1s2XT17dHlwZTo3LHN0cmluZzpbMTI2XX0sdGhpcy5ydWxlc1s4XS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbOF0ub3Bjb2Rlc1swXT17dHlwZToyLGNoaWxkcmVuOlsxLDIsM119LHRoaXMucnVsZXNbOF0ub3Bjb2Rlc1sxXT17dHlwZTo3LHN0cmluZzpbMzddfSx0aGlzLnJ1bGVzWzhdLm9wY29kZXNbMl09e3R5cGU6NCxpbmRleDoxMn0sdGhpcy5ydWxlc1s4XS5vcGNvZGVzWzNdPXt0eXBlOjQsaW5kZXg6MTJ9LHRoaXMucnVsZXNbOV0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzldLm9wY29kZXNbMF09e3R5cGU6MSxjaGlsZHJlbjpbMSwyLDMsNCw1LDYsNyw4LDksMTAsMTFdfSx0aGlzLnJ1bGVzWzldLm9wY29kZXNbMV09e3R5cGU6NyxzdHJpbmc6WzMzXX0sdGhpcy5ydWxlc1s5XS5vcGNvZGVzWzJdPXt0eXBlOjcsc3RyaW5nOlszNl19LHRoaXMucnVsZXNbOV0ub3Bjb2Rlc1szXT17dHlwZTo3LHN0cmluZzpbMzhdfSx0aGlzLnJ1bGVzWzldLm9wY29kZXNbNF09e3R5cGU6NyxzdHJpbmc6WzM5XX0sdGhpcy5ydWxlc1s5XS5vcGNvZGVzWzVdPXt0eXBlOjcsc3RyaW5nOls0MF19LHRoaXMucnVsZXNbOV0ub3Bjb2Rlc1s2XT17dHlwZTo3LHN0cmluZzpbNDFdfSx0aGlzLnJ1bGVzWzldLm9wY29kZXNbN109e3R5cGU6NyxzdHJpbmc6WzQyXX0sdGhpcy5ydWxlc1s5XS5vcGNvZGVzWzhdPXt0eXBlOjcsc3RyaW5nOls0M119LHRoaXMucnVsZXNbOV0ub3Bjb2Rlc1s5XT17dHlwZTo3LHN0cmluZzpbNDRdfSx0aGlzLnJ1bGVzWzldLm9wY29kZXNbMTBdPXt0eXBlOjcsc3RyaW5nOls1OV19LHRoaXMucnVsZXNbOV0ub3Bjb2Rlc1sxMV09e3R5cGU6NyxzdHJpbmc6WzYxXX0sdGhpcy5ydWxlc1sxMF0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzEwXS5vcGNvZGVzWzBdPXt0eXBlOjEsY2hpbGRyZW46WzEsMl19LHRoaXMucnVsZXNbMTBdLm9wY29kZXNbMV09e3R5cGU6NSxtaW46NjUsbWF4OjkwfSx0aGlzLnJ1bGVzWzEwXS5vcGNvZGVzWzJdPXt0eXBlOjUsbWluOjk3LG1heDoxMjJ9LHRoaXMucnVsZXNbMTFdLm9wY29kZXM9W10sdGhpcy5ydWxlc1sxMV0ub3Bjb2Rlc1swXT17dHlwZTo1LG1pbjo0OCxtYXg6NTd9LHRoaXMucnVsZXNbMTJdLm9wY29kZXM9W10sdGhpcy5ydWxlc1sxMl0ub3Bjb2Rlc1swXT17dHlwZToxLGNoaWxkcmVuOlsxLDIsMyw0LDUsNiw3XX0sdGhpcy5ydWxlc1sxMl0ub3Bjb2Rlc1sxXT17dHlwZTo0LGluZGV4OjExfSx0aGlzLnJ1bGVzWzEyXS5vcGNvZGVzWzJdPXt0eXBlOjcsc3RyaW5nOls5N119LHRoaXMucnVsZXNbMTJdLm9wY29kZXNbM109e3R5cGU6NyxzdHJpbmc6Wzk4XX0sdGhpcy5ydWxlc1sxMl0ub3Bjb2Rlc1s0XT17dHlwZTo3LHN0cmluZzpbOTldfSx0aGlzLnJ1bGVzWzEyXS5vcGNvZGVzWzVdPXt0eXBlOjcsc3RyaW5nOlsxMDBdfSx0aGlzLnJ1bGVzWzEyXS5vcGNvZGVzWzZdPXt0eXBlOjcsc3RyaW5nOlsxMDFdfSx0aGlzLnJ1bGVzWzEyXS5vcGNvZGVzWzddPXt0eXBlOjcsc3RyaW5nOlsxMDJdfSx0aGlzLnRvU3RyaW5nPWZ1bmN0aW9uIHRvU3RyaW5nKCl7bGV0IHM9IiI7cmV0dXJuIHMrPSI7IE9wZW5BUEkgUGF0aCBUZW1wbGF0aW5nIEFCTkYgc3ludGF4XG4iLHMrPSI7IHZhcmlhbnQgb2YgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMy4zXG4iLHMrPSJwYXRoLXRlbXBsYXRlICAgICAgICAgICAgICAgICAgPSBzbGFzaCAqKCBwYXRoLXNlZ21lbnQgc2xhc2ggKSBbIHBhdGgtc2VnbWVudCBdXG4iLHMrPSJwYXRoLXNlZ21lbnQgICAgICAgICAgICAgICAgICAgPSAxKiggcGF0aC1saXRlcmFsIC8gdGVtcGxhdGUtZXhwcmVzc2lvbiApXG4iLHMrPSdzbGFzaCAgICAgICAgICAgICAgICAgICAgICAgICAgPSAiLyJcbicscys9InBhdGgtbGl0ZXJhbCAgICAgICAgICAgICAgICAgICA9IDEqcGNoYXJcbiIscys9J3RlbXBsYXRlLWV4cHJlc3Npb24gICAgICAgICAgICA9ICJ7IiB0ZW1wbGF0ZS1leHByZXNzaW9uLXBhcmFtLW5hbWUgIn0iXG4nLHMrPSJ0ZW1wbGF0ZS1leHByZXNzaW9uLXBhcmFtLW5hbWUgPSAxKiggJXgwMC03QSAvICV4N0MgLyAleDdFLTEwRkZGRiApIDsgZXZlcnkgVVRGOCBjaGFyYWN0ZXIgZXhjZXB0IHsgYW5kIH0gKGZyb20gT3BlbkFQSSlcbiIscys9IlxuIixzKz0iOyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzM5ODYjc2VjdGlvbi0zLjNcbiIscys9J3BjaGFyICAgICAgICAgICAgICAgPSB1bnJlc2VydmVkIC8gcGN0LWVuY29kZWQgLyBzdWItZGVsaW1zIC8gIjoiIC8gIkAiXG4nLHMrPSd1bnJlc2VydmVkICAgICAgICAgID0gQUxQSEEgLyBESUdJVCAvICItIiAvICIuIiAvICJfIiAvICJ+IlxuJyxzKz0iICAgICAgICAgICAgICAgICAgICA7IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTIuM1xuIixzKz0ncGN0LWVuY29kZWQgICAgICAgICA9ICIlIiBIRVhESUcgSEVYRElHXG4nLHMrPSIgICAgICAgICAgICAgICAgICAgIDsgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMi4xXG4iLHMrPSdzdWItZGVsaW1zICAgICAgICAgID0gIiEiIC8gIiQiIC8gIiYiIC8gIlwnIiAvICIoIiAvICIpIlxuJyxzKz0nICAgICAgICAgICAgICAgICAgICAvICIqIiAvICIrIiAvICIsIiAvICI7IiAvICI9IlxuJyxzKz0iICAgICAgICAgICAgICAgICAgICA7IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTIuMlxuIixzKz0iXG4iLHMrPSI7IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNTIzNCNhcHBlbmRpeC1CLjFcbiIscys9IkFMUEhBICAgICAgICAgICAgICAgPSAleDQxLTVBIC8gJXg2MS03QSAgIDsgQS1aIC8gYS16XG4iLHMrPSJESUdJVCAgICAgICAgICAgICAgID0gJXgzMC0zOSAgICAgICAgICAgIDsgMC05XG4iLHMrPSdIRVhESUcgICAgICAgICAgICAgID0gRElHSVQgLyAiQSIgLyAiQiIgLyAiQyIgLyAiRCIgLyAiRSIgLyAiRiJcbicsJzsgT3BlbkFQSSBQYXRoIFRlbXBsYXRpbmcgQUJORiBzeW50YXhcbjsgdmFyaWFudCBvZiBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzM5ODYjc2VjdGlvbi0zLjNcbnBhdGgtdGVtcGxhdGUgICAgICAgICAgICAgICAgICA9IHNsYXNoICooIHBhdGgtc2VnbWVudCBzbGFzaCApIFsgcGF0aC1zZWdtZW50IF1cbnBhdGgtc2VnbWVudCAgICAgICAgICAgICAgICAgICA9IDEqKCBwYXRoLWxpdGVyYWwgLyB0ZW1wbGF0ZS1leHByZXNzaW9uIClcbnNsYXNoICAgICAgICAgICAgICAgICAgICAgICAgICA9ICIvIlxucGF0aC1saXRlcmFsICAgICAgICAgICAgICAgICAgID0gMSpwY2hhclxudGVtcGxhdGUtZXhwcmVzc2lvbiAgICAgICAgICAgID0gInsiIHRlbXBsYXRlLWV4cHJlc3Npb24tcGFyYW0tbmFtZSAifSJcbnRlbXBsYXRlLWV4cHJlc3Npb24tcGFyYW0tbmFtZSA9IDEqKCAleDAwLTdBIC8gJXg3QyAvICV4N0UtMTBGRkZGICkgOyBldmVyeSBVVEY4IGNoYXJhY3RlciBleGNlcHQgeyBhbmQgfSAoZnJvbSBPcGVuQVBJKVxuXG47IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTMuM1xucGNoYXIgICAgICAgICAgICAgICA9IHVucmVzZXJ2ZWQgLyBwY3QtZW5jb2RlZCAvIHN1Yi1kZWxpbXMgLyAiOiIgLyAiQCJcbnVucmVzZXJ2ZWQgICAgICAgICAgPSBBTFBIQSAvIERJR0lUIC8gIi0iIC8gIi4iIC8gIl8iIC8gIn4iXG4gICAgICAgICAgICAgICAgICAgIDsgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMi4zXG5wY3QtZW5jb2RlZCAgICAgICAgID0gIiUiIEhFWERJRyBIRVhESUdcbiAgICAgICAgICAgICAgICAgICAgOyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzM5ODYjc2VjdGlvbi0yLjFcbnN1Yi1kZWxpbXMgICAgICAgICAgPSAiISIgLyAiJCIgLyAiJiIgLyAiXCciIC8gIigiIC8gIikiXG4gICAgICAgICAgICAgICAgICAgIC8gIioiIC8gIisiIC8gIiwiIC8gIjsiIC8gIj0iXG4gICAgICAgICAgICAgICAgICAgIDsgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMi4yXG5cbjsgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM1MjM0I2FwcGVuZGl4LUIuMVxuQUxQSEEgICAgICAgICAgICAgICA9ICV4NDEtNUEgLyAleDYxLTdBICAgOyBBLVogLyBhLXpcbkRJR0lUICAgICAgICAgICAgICAgPSAleDMwLTM5ICAgICAgICAgICAgOyAwLTlcbkhFWERJRyAgICAgICAgICAgICAgPSBESUdJVCAvICJBIiAvICJCIiAvICJDIiAvICJEIiAvICJFIiAvICJGIlxuJ319Y29uc3QgY2FsbGJhY2tzX3NsYXNoPShzLG8saSxhLHUpPT4ocz09PUVwLlNFTV9QUkU/dS5wdXNoKFsic2xhc2giLFNwLmNoYXJzVG9TdHJpbmcobyxpLGEpXSk6RXAuU0VNX1BPU1QsRXAuU0VNX09LKSxwYXRoX3RlbXBsYXRlPShzLG8saSxhLHUpPT57aWYocz09PUVwLlNFTV9QUkUpe2lmKCExPT09QXJyYXkuaXNBcnJheSh1KSl0aHJvdyBuZXcgRXJyb3IoInBhcnNlcidzIHVzZXIgZGF0YSBtdXN0IGJlIGFuIGFycmF5Iik7dS5wdXNoKFsicGF0aC10ZW1wbGF0ZSIsU3AuY2hhcnNUb1N0cmluZyhvLGksYSldKX1yZXR1cm4gRXAuU0VNX09LfSxwYXRoX2xpdGVyYWw9KHMsbyxpLGEsdSk9PihzPT09RXAuU0VNX1BSRT91LnB1c2goWyJwYXRoLWxpdGVyYWwiLFNwLmNoYXJzVG9TdHJpbmcobyxpLGEpXSk6RXAuU0VNX1BPU1QsRXAuU0VNX09LKSx0ZW1wbGF0ZV9leHByZXNzaW9uPShzLG8saSxhLHUpPT4ocz09PUVwLlNFTV9QUkU/dS5wdXNoKFsidGVtcGxhdGUtZXhwcmVzc2lvbiIsU3AuY2hhcnNUb1N0cmluZyhvLGksYSldKTpFcC5TRU1fUE9TVCxFcC5TRU1fT0spLHRlbXBsYXRlX2V4cHJlc3Npb25fcGFyYW1fbmFtZT0ocyxvLGksYSx1KT0+KHM9PT1FcC5TRU1fUFJFP3UucHVzaChbInRlbXBsYXRlLWV4cHJlc3Npb24tcGFyYW0tbmFtZSIsU3AuY2hhcnNUb1N0cmluZyhvLGksYSldKTpFcC5TRU1fUE9TVCxFcC5TRU1fT0spLEx4PW5ldyBwYXRoX3RlbXBsYXRpbmdfZ3JhbW1hcixvcGVuYXBpX3BhdGhfdGVtcGxhdGluZ19lc19wYXJzZT1zPT57Y29uc3Qgbz1uZXcgeXA7by5hc3Q9bmV3IHZwLG8uYXN0LmNhbGxiYWNrc1sicGF0aC10ZW1wbGF0ZSJdPXBhdGhfdGVtcGxhdGUsby5hc3QuY2FsbGJhY2tzLnNsYXNoPWNhbGxiYWNrc19zbGFzaCxvLmFzdC5jYWxsYmFja3NbInBhdGgtbGl0ZXJhbCJdPXBhdGhfbGl0ZXJhbCxvLmFzdC5jYWxsYmFja3NbInRlbXBsYXRlLWV4cHJlc3Npb24iXT10ZW1wbGF0ZV9leHByZXNzaW9uLG8uYXN0LmNhbGxiYWNrc1sidGVtcGxhdGUtZXhwcmVzc2lvbi1wYXJhbS1uYW1lIl09dGVtcGxhdGVfZXhwcmVzc2lvbl9wYXJhbV9uYW1lO3JldHVybntyZXN1bHQ6by5wYXJzZShMeCwicGF0aC10ZW1wbGF0ZSIscyksYXN0Om8uYXN0fX0sZW5jb2RlUGF0aENvbXBvbmVudD1zPT4ocz0+e3RyeXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHMmJmRlY29kZVVSSUNvbXBvbmVudChzKSE9PXN9Y2F0Y2h7cmV0dXJuITF9fSkocyk/czplbmNvZGVVUklDb21wb25lbnQocykucmVwbGFjZSgvJTVCL2csIlsiKS5yZXBsYWNlKC8lNUQvZywiXSIpLEZ4PVsic2xhc2giLCJwYXRoLWxpdGVyYWwiLCJ0ZW1wbGF0ZS1leHByZXNzaW9uLXBhcmFtLW5hbWUiXSxlc19yZXNvbHZlPShzLG8saT17fSk9Pntjb25zdCBhPXsuLi57ZW5jb2RlcjplbmNvZGVQYXRoQ29tcG9uZW50fSwuLi5pfSx1PW9wZW5hcGlfcGF0aF90ZW1wbGF0aW5nX2VzX3BhcnNlKHMpO2lmKCF1LnJlc3VsdC5zdWNjZXNzKXJldHVybiBzO2NvbnN0IF89W107dS5hc3QudHJhbnNsYXRlKF8pO2NvbnN0IHc9Xy5maWx0ZXIoKChbc10pPT5GeC5pbmNsdWRlcyhzKSkpLm1hcCgoKFtzLGldKT0+InRlbXBsYXRlLWV4cHJlc3Npb24tcGFyYW0tbmFtZSI9PT1zP09iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLGkpP2EuZW5jb2RlcihvW2ldLGkpOmB7JHtpfX1gOmkpKTtyZXR1cm4gdy5qb2luKCIiKX0sQng9KG5ldyBwYXRoX3RlbXBsYXRpbmdfZ3JhbW1hcixuZXcgeXAse2JvZHk6ZnVuY3Rpb24gYm9keUJ1aWxkZXIoe3JlcTpzLHZhbHVlOm99KXt2b2lkIDAhPT1vJiYocy5ib2R5PW8pfSxoZWFkZXI6ZnVuY3Rpb24gaGVhZGVyQnVpbGRlcih7cmVxOnMscGFyYW1ldGVyOm8sdmFsdWU6aX0pe3MuaGVhZGVycz1zLmhlYWRlcnN8fHt9LHZvaWQgMCE9PWkmJihzLmhlYWRlcnNbby5uYW1lXT1pKX0scXVlcnk6ZnVuY3Rpb24gcXVlcnlCdWlsZGVyKHtyZXE6cyx2YWx1ZTpvLHBhcmFtZXRlcjppfSl7cy5xdWVyeT1zLnF1ZXJ5fHx7fSwhMT09PW8mJiJib29sZWFuIj09PWkudHlwZSYmKG89ImZhbHNlIik7MD09PW8mJlsibnVtYmVyIiwiaW50ZWdlciJdLmluZGV4T2YoaS50eXBlKT4tMSYmKG89IjAiKTtpZihvKXMucXVlcnlbaS5uYW1lXT17Y29sbGVjdGlvbkZvcm1hdDppLmNvbGxlY3Rpb25Gb3JtYXQsdmFsdWU6b307ZWxzZSBpZihpLmFsbG93RW1wdHlWYWx1ZSYmdm9pZCAwIT09byl7Y29uc3Qgbz1pLm5hbWU7cy5xdWVyeVtvXT1zLnF1ZXJ5W29dfHx7fSxzLnF1ZXJ5W29dLmFsbG93RW1wdHlWYWx1ZT0hMH19LHBhdGg6ZnVuY3Rpb24gcGF0aEJ1aWxkZXIoe3JlcTpzLHZhbHVlOm8scGFyYW1ldGVyOmksYmFzZVVSTDphfSl7aWYodm9pZCAwIT09byl7Y29uc3QgdT1zLnVybC5yZXBsYWNlKGEsIiIpLF89ZXNfcmVzb2x2ZSh1LHtbaS5uYW1lXTpvfSk7cy51cmw9YStffX0sZm9ybURhdGE6ZnVuY3Rpb24gZm9ybURhdGFCdWlsZGVyKHtyZXE6cyx2YWx1ZTpvLHBhcmFtZXRlcjppfSl7ITE9PT1vJiYiYm9vbGVhbiI9PT1pLnR5cGUmJihvPSJmYWxzZSIpOzA9PT1vJiZbIm51bWJlciIsImludGVnZXIiXS5pbmRleE9mKGkudHlwZSk+LTEmJihvPSIwIik7aWYobylzLmZvcm09cy5mb3JtfHx7fSxzLmZvcm1baS5uYW1lXT17Y29sbGVjdGlvbkZvcm1hdDppLmNvbGxlY3Rpb25Gb3JtYXQsdmFsdWU6b307ZWxzZSBpZihpLmFsbG93RW1wdHlWYWx1ZSYmdm9pZCAwIT09byl7cy5mb3JtPXMuZm9ybXx8e307Y29uc3Qgbz1pLm5hbWU7cy5mb3JtW29dPXMuZm9ybVtvXXx8e30scy5mb3JtW29dLmFsbG93RW1wdHlWYWx1ZT0hMH19fSk7ZnVuY3Rpb24gc2VyaWFsaXplKHMsbyl7cmV0dXJuIG8uaW5jbHVkZXMoImFwcGxpY2F0aW9uL2pzb24iKT8ic3RyaW5nIj09dHlwZW9mIHM/czooQXJyYXkuaXNBcnJheShzKSYmKHM9cy5tYXAoKHM9Pnt0cnl7cmV0dXJuIEpTT04ucGFyc2Uocyl9Y2F0Y2gobyl7cmV0dXJuIHN9fSkpKSxKU09OLnN0cmluZ2lmeShzKSk6U3RyaW5nKHMpfWZ1bmN0aW9uIGdyYW1tYXJfZ3JhbW1hcigpe3RoaXMuZ3JhbW1hck9iamVjdD0iZ3JhbW1hck9iamVjdCIsdGhpcy5ydWxlcz1bXSx0aGlzLnJ1bGVzWzBdPXtuYW1lOiJsZW5pZW50LWNvb2tpZS1zdHJpbmciLGxvd2VyOiJsZW5pZW50LWNvb2tpZS1zdHJpbmciLGluZGV4OjAsaXNCa3I6ITF9LHRoaXMucnVsZXNbMV09e25hbWU6ImxlbmllbnQtY29va2llLWVudHJ5Iixsb3dlcjoibGVuaWVudC1jb29raWUtZW50cnkiLGluZGV4OjEsaXNCa3I6ITF9LHRoaXMucnVsZXNbMl09e25hbWU6ImxlbmllbnQtY29va2llLXBhaXIiLGxvd2VyOiJsZW5pZW50LWNvb2tpZS1wYWlyIixpbmRleDoyLGlzQmtyOiExfSx0aGlzLnJ1bGVzWzNdPXtuYW1lOiJsZW5pZW50LWNvb2tpZS1wYWlyLWludmFsaWQiLGxvd2VyOiJsZW5pZW50LWNvb2tpZS1wYWlyLWludmFsaWQiLGluZGV4OjMsaXNCa3I6ITF9LHRoaXMucnVsZXNbNF09e25hbWU6ImxlbmllbnQtY29va2llLW5hbWUiLGxvd2VyOiJsZW5pZW50LWNvb2tpZS1uYW1lIixpbmRleDo0LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzVdPXtuYW1lOiJsZW5pZW50LWNvb2tpZS12YWx1ZSIsbG93ZXI6ImxlbmllbnQtY29va2llLXZhbHVlIixpbmRleDo1LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzZdPXtuYW1lOiJsZW5pZW50LXF1b3RlZC12YWx1ZSIsbG93ZXI6ImxlbmllbnQtcXVvdGVkLXZhbHVlIixpbmRleDo2LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzddPXtuYW1lOiJsZW5pZW50LXF1b3RlZC1jaGFyIixsb3dlcjoibGVuaWVudC1xdW90ZWQtY2hhciIsaW5kZXg6Nyxpc0JrcjohMX0sdGhpcy5ydWxlc1s4XT17bmFtZToibGVuaWVudC1jb29raWUtb2N0ZXQiLGxvd2VyOiJsZW5pZW50LWNvb2tpZS1vY3RldCIsaW5kZXg6OCxpc0JrcjohMX0sdGhpcy5ydWxlc1s5XT17bmFtZToiY29va2llLXN0cmluZyIsbG93ZXI6ImNvb2tpZS1zdHJpbmciLGluZGV4OjksaXNCa3I6ITF9LHRoaXMucnVsZXNbMTBdPXtuYW1lOiJjb29raWUtcGFpciIsbG93ZXI6ImNvb2tpZS1wYWlyIixpbmRleDoxMCxpc0JrcjohMX0sdGhpcy5ydWxlc1sxMV09e25hbWU6ImNvb2tpZS1uYW1lIixsb3dlcjoiY29va2llLW5hbWUiLGluZGV4OjExLGlzQmtyOiExfSx0aGlzLnJ1bGVzWzEyXT17bmFtZToiY29va2llLXZhbHVlIixsb3dlcjoiY29va2llLXZhbHVlIixpbmRleDoxMixpc0JrcjohMX0sdGhpcy5ydWxlc1sxM109e25hbWU6ImNvb2tpZS1vY3RldCIsbG93ZXI6ImNvb2tpZS1vY3RldCIsaW5kZXg6MTMsaXNCa3I6ITF9LHRoaXMucnVsZXNbMTRdPXtuYW1lOiJPV1MiLGxvd2VyOiJvd3MiLGluZGV4OjE0LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzE1XT17bmFtZToidG9rZW4iLGxvd2VyOiJ0b2tlbiIsaW5kZXg6MTUsaXNCa3I6ITF9LHRoaXMucnVsZXNbMTZdPXtuYW1lOiJ0Y2hhciIsbG93ZXI6InRjaGFyIixpbmRleDoxNixpc0JrcjohMX0sdGhpcy5ydWxlc1sxN109e25hbWU6IkNIQVIiLGxvd2VyOiJjaGFyIixpbmRleDoxNyxpc0JrcjohMX0sdGhpcy5ydWxlc1sxOF09e25hbWU6IkNUTCIsbG93ZXI6ImN0bCIsaW5kZXg6MTgsaXNCa3I6ITF9LHRoaXMucnVsZXNbMTldPXtuYW1lOiJzZXBhcmF0b3JzIixsb3dlcjoic2VwYXJhdG9ycyIsaW5kZXg6MTksaXNCa3I6ITF9LHRoaXMucnVsZXNbMjBdPXtuYW1lOiJTUCIsbG93ZXI6InNwIixpbmRleDoyMCxpc0JrcjohMX0sdGhpcy5ydWxlc1syMV09e25hbWU6IkhUIixsb3dlcjoiaHQiLGluZGV4OjIxLGlzQmtyOiExfSx0aGlzLnJ1bGVzWzIyXT17bmFtZToiQUxQSEEiLGxvd2VyOiJhbHBoYSIsaW5kZXg6MjIsaXNCa3I6ITF9LHRoaXMucnVsZXNbMjNdPXtuYW1lOiJESUdJVCIsbG93ZXI6ImRpZ2l0IixpbmRleDoyMyxpc0JrcjohMX0sdGhpcy5ydWxlc1syNF09e25hbWU6IkRRVU9URSIsbG93ZXI6ImRxdW90ZSIsaW5kZXg6MjQsaXNCa3I6ITF9LHRoaXMucnVsZXNbMjVdPXtuYW1lOiJXU1AiLGxvd2VyOiJ3c3AiLGluZGV4OjI1LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzI2XT17bmFtZToiSFRBQiIsbG93ZXI6Imh0YWIiLGluZGV4OjI2LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzI3XT17bmFtZToiQ1JMRiIsbG93ZXI6ImNybGYiLGluZGV4OjI3LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzI4XT17bmFtZToiQ1IiLGxvd2VyOiJjciIsaW5kZXg6MjgsaXNCa3I6ITF9LHRoaXMucnVsZXNbMjldPXtuYW1lOiJMRiIsbG93ZXI6ImxmIixpbmRleDoyOSxpc0JrcjohMX0sdGhpcy51ZHRzPVtdLHRoaXMucnVsZXNbMF0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzBdLm9wY29kZXNbMF09e3R5cGU6MixjaGlsZHJlbjpbMSwyXX0sdGhpcy5ydWxlc1swXS5vcGNvZGVzWzFdPXt0eXBlOjQsaW5kZXg6MX0sdGhpcy5ydWxlc1swXS5vcGNvZGVzWzJdPXt0eXBlOjMsbWluOjAsbWF4OjEvMH0sdGhpcy5ydWxlc1swXS5vcGNvZGVzWzNdPXt0eXBlOjIsY2hpbGRyZW46WzQsNSw2XX0sdGhpcy5ydWxlc1swXS5vcGNvZGVzWzRdPXt0eXBlOjcsc3RyaW5nOls1OV19LHRoaXMucnVsZXNbMF0ub3Bjb2Rlc1s1XT17dHlwZTo0LGluZGV4OjE0fSx0aGlzLnJ1bGVzWzBdLm9wY29kZXNbNl09e3R5cGU6NCxpbmRleDoxfSx0aGlzLnJ1bGVzWzFdLm9wY29kZXM9W10sdGhpcy5ydWxlc1sxXS5vcGNvZGVzWzBdPXt0eXBlOjEsY2hpbGRyZW46WzEsMl19LHRoaXMucnVsZXNbMV0ub3Bjb2Rlc1sxXT17dHlwZTo0LGluZGV4OjJ9LHRoaXMucnVsZXNbMV0ub3Bjb2Rlc1syXT17dHlwZTo0LGluZGV4OjN9LHRoaXMucnVsZXNbMl0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzJdLm9wY29kZXNbMF09e3R5cGU6MixjaGlsZHJlbjpbMSwyLDMsNCw1LDYsN119LHRoaXMucnVsZXNbMl0ub3Bjb2Rlc1sxXT17dHlwZTo0LGluZGV4OjE0fSx0aGlzLnJ1bGVzWzJdLm9wY29kZXNbMl09e3R5cGU6NCxpbmRleDo0fSx0aGlzLnJ1bGVzWzJdLm9wY29kZXNbM109e3R5cGU6NCxpbmRleDoxNH0sdGhpcy5ydWxlc1syXS5vcGNvZGVzWzRdPXt0eXBlOjcsc3RyaW5nOls2MV19LHRoaXMucnVsZXNbMl0ub3Bjb2Rlc1s1XT17dHlwZTo0LGluZGV4OjE0fSx0aGlzLnJ1bGVzWzJdLm9wY29kZXNbNl09e3R5cGU6NCxpbmRleDo1fSx0aGlzLnJ1bGVzWzJdLm9wY29kZXNbN109e3R5cGU6NCxpbmRleDoxNH0sdGhpcy5ydWxlc1szXS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbM10ub3Bjb2Rlc1swXT17dHlwZToyLGNoaWxkcmVuOlsxLDIsNF19LHRoaXMucnVsZXNbM10ub3Bjb2Rlc1sxXT17dHlwZTo0LGluZGV4OjE0fSx0aGlzLnJ1bGVzWzNdLm9wY29kZXNbMl09e3R5cGU6MyxtaW46MSxtYXg6MS8wfSx0aGlzLnJ1bGVzWzNdLm9wY29kZXNbM109e3R5cGU6NCxpbmRleDoxNn0sdGhpcy5ydWxlc1szXS5vcGNvZGVzWzRdPXt0eXBlOjQsaW5kZXg6MTR9LHRoaXMucnVsZXNbNF0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzRdLm9wY29kZXNbMF09e3R5cGU6MyxtaW46MSxtYXg6MS8wfSx0aGlzLnJ1bGVzWzRdLm9wY29kZXNbMV09e3R5cGU6MSxjaGlsZHJlbjpbMiwzLDRdfSx0aGlzLnJ1bGVzWzRdLm9wY29kZXNbMl09e3R5cGU6NSxtaW46MzMsbWF4OjU4fSx0aGlzLnJ1bGVzWzRdLm9wY29kZXNbM109e3R5cGU6NixzdHJpbmc6WzYwXX0sdGhpcy5ydWxlc1s0XS5vcGNvZGVzWzRdPXt0eXBlOjUsbWluOjYyLG1heDoxMjZ9LHRoaXMucnVsZXNbNV0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzVdLm9wY29kZXNbMF09e3R5cGU6MSxjaGlsZHJlbjpbMSw2XX0sdGhpcy5ydWxlc1s1XS5vcGNvZGVzWzFdPXt0eXBlOjIsY2hpbGRyZW46WzIsM119LHRoaXMucnVsZXNbNV0ub3Bjb2Rlc1syXT17dHlwZTo0LGluZGV4OjZ9LHRoaXMucnVsZXNbNV0ub3Bjb2Rlc1szXT17dHlwZTozLG1pbjowLG1heDoxfSx0aGlzLnJ1bGVzWzVdLm9wY29kZXNbNF09e3R5cGU6MyxtaW46MCxtYXg6MS8wfSx0aGlzLnJ1bGVzWzVdLm9wY29kZXNbNV09e3R5cGU6NCxpbmRleDo4fSx0aGlzLnJ1bGVzWzVdLm9wY29kZXNbNl09e3R5cGU6MyxtaW46MCxtYXg6MS8wfSx0aGlzLnJ1bGVzWzVdLm9wY29kZXNbN109e3R5cGU6NCxpbmRleDo4fSx0aGlzLnJ1bGVzWzZdLm9wY29kZXM9W10sdGhpcy5ydWxlc1s2XS5vcGNvZGVzWzBdPXt0eXBlOjIsY2hpbGRyZW46WzEsMiw0XX0sdGhpcy5ydWxlc1s2XS5vcGNvZGVzWzFdPXt0eXBlOjQsaW5kZXg6MjR9LHRoaXMucnVsZXNbNl0ub3Bjb2Rlc1syXT17dHlwZTozLG1pbjowLG1heDoxLzB9LHRoaXMucnVsZXNbNl0ub3Bjb2Rlc1szXT17dHlwZTo0LGluZGV4Ojd9LHRoaXMucnVsZXNbNl0ub3Bjb2Rlc1s0XT17dHlwZTo0LGluZGV4OjI0fSx0aGlzLnJ1bGVzWzddLm9wY29kZXM9W10sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzBdPXt0eXBlOjEsY2hpbGRyZW46WzEsMl19LHRoaXMucnVsZXNbN10ub3Bjb2Rlc1sxXT17dHlwZTo1LG1pbjozMixtYXg6MzN9LHRoaXMucnVsZXNbN10ub3Bjb2Rlc1syXT17dHlwZTo1LG1pbjozNSxtYXg6MTI2fSx0aGlzLnJ1bGVzWzhdLm9wY29kZXM9W10sdGhpcy5ydWxlc1s4XS5vcGNvZGVzWzBdPXt0eXBlOjEsY2hpbGRyZW46WzEsMiwzXX0sdGhpcy5ydWxlc1s4XS5vcGNvZGVzWzFdPXt0eXBlOjUsbWluOjMzLG1heDo0M30sdGhpcy5ydWxlc1s4XS5vcGNvZGVzWzJdPXt0eXBlOjUsbWluOjQ1LG1heDo1OH0sdGhpcy5ydWxlc1s4XS5vcGNvZGVzWzNdPXt0eXBlOjUsbWluOjYwLG1heDoxMjZ9LHRoaXMucnVsZXNbOV0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzldLm9wY29kZXNbMF09e3R5cGU6MixjaGlsZHJlbjpbMSwyXX0sdGhpcy5ydWxlc1s5XS5vcGNvZGVzWzFdPXt0eXBlOjQsaW5kZXg6MTB9LHRoaXMucnVsZXNbOV0ub3Bjb2Rlc1syXT17dHlwZTozLG1pbjowLG1heDoxLzB9LHRoaXMucnVsZXNbOV0ub3Bjb2Rlc1szXT17dHlwZToyLGNoaWxkcmVuOls0LDUsNl19LHRoaXMucnVsZXNbOV0ub3Bjb2Rlc1s0XT17dHlwZTo3LHN0cmluZzpbNTldfSx0aGlzLnJ1bGVzWzldLm9wY29kZXNbNV09e3R5cGU6NCxpbmRleDoyMH0sdGhpcy5ydWxlc1s5XS5vcGNvZGVzWzZdPXt0eXBlOjQsaW5kZXg6MTB9LHRoaXMucnVsZXNbMTBdLm9wY29kZXM9W10sdGhpcy5ydWxlc1sxMF0ub3Bjb2Rlc1swXT17dHlwZToyLGNoaWxkcmVuOlsxLDIsM119LHRoaXMucnVsZXNbMTBdLm9wY29kZXNbMV09e3R5cGU6NCxpbmRleDoxMX0sdGhpcy5ydWxlc1sxMF0ub3Bjb2Rlc1syXT17dHlwZTo3LHN0cmluZzpbNjFdfSx0aGlzLnJ1bGVzWzEwXS5vcGNvZGVzWzNdPXt0eXBlOjQsaW5kZXg6MTJ9LHRoaXMucnVsZXNbMTFdLm9wY29kZXM9W10sdGhpcy5ydWxlc1sxMV0ub3Bjb2Rlc1swXT17dHlwZTo0LGluZGV4OjE1fSx0aGlzLnJ1bGVzWzEyXS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMTJdLm9wY29kZXNbMF09e3R5cGU6MSxjaGlsZHJlbjpbMSw2XX0sdGhpcy5ydWxlc1sxMl0ub3Bjb2Rlc1sxXT17dHlwZToyLGNoaWxkcmVuOlsyLDMsNV19LHRoaXMucnVsZXNbMTJdLm9wY29kZXNbMl09e3R5cGU6NCxpbmRleDoyNH0sdGhpcy5ydWxlc1sxMl0ub3Bjb2Rlc1szXT17dHlwZTozLG1pbjowLG1heDoxLzB9LHRoaXMucnVsZXNbMTJdLm9wY29kZXNbNF09e3R5cGU6NCxpbmRleDoxM30sdGhpcy5ydWxlc1sxMl0ub3Bjb2Rlc1s1XT17dHlwZTo0LGluZGV4OjI0fSx0aGlzLnJ1bGVzWzEyXS5vcGNvZGVzWzZdPXt0eXBlOjMsbWluOjAsbWF4OjEvMH0sdGhpcy5ydWxlc1sxMl0ub3Bjb2Rlc1s3XT17dHlwZTo0LGluZGV4OjEzfSx0aGlzLnJ1bGVzWzEzXS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMTNdLm9wY29kZXNbMF09e3R5cGU6MSxjaGlsZHJlbjpbMSwyLDMsNCw1XX0sdGhpcy5ydWxlc1sxM10ub3Bjb2Rlc1sxXT17dHlwZTo2LHN0cmluZzpbMzNdfSx0aGlzLnJ1bGVzWzEzXS5vcGNvZGVzWzJdPXt0eXBlOjUsbWluOjM1LG1heDo0M30sdGhpcy5ydWxlc1sxM10ub3Bjb2Rlc1szXT17dHlwZTo1LG1pbjo0NSxtYXg6NTh9LHRoaXMucnVsZXNbMTNdLm9wY29kZXNbNF09e3R5cGU6NSxtaW46NjAsbWF4OjkxfSx0aGlzLnJ1bGVzWzEzXS5vcGNvZGVzWzVdPXt0eXBlOjUsbWluOjkzLG1heDoxMjZ9LHRoaXMucnVsZXNbMTRdLm9wY29kZXM9W10sdGhpcy5ydWxlc1sxNF0ub3Bjb2Rlc1swXT17dHlwZTozLG1pbjowLG1heDoxLzB9LHRoaXMucnVsZXNbMTRdLm9wY29kZXNbMV09e3R5cGU6MixjaGlsZHJlbjpbMiw0XX0sdGhpcy5ydWxlc1sxNF0ub3Bjb2Rlc1syXT17dHlwZTozLG1pbjowLG1heDoxfSx0aGlzLnJ1bGVzWzE0XS5vcGNvZGVzWzNdPXt0eXBlOjQsaW5kZXg6Mjd9LHRoaXMucnVsZXNbMTRdLm9wY29kZXNbNF09e3R5cGU6NCxpbmRleDoyNX0sdGhpcy5ydWxlc1sxNV0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzE1XS5vcGNvZGVzWzBdPXt0eXBlOjMsbWluOjEsbWF4OjEvMH0sdGhpcy5ydWxlc1sxNV0ub3Bjb2Rlc1sxXT17dHlwZTo0LGluZGV4OjE2fSx0aGlzLnJ1bGVzWzE2XS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMTZdLm9wY29kZXNbMF09e3R5cGU6MSxjaGlsZHJlbjpbMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTddfSx0aGlzLnJ1bGVzWzE2XS5vcGNvZGVzWzFdPXt0eXBlOjcsc3RyaW5nOlszM119LHRoaXMucnVsZXNbMTZdLm9wY29kZXNbMl09e3R5cGU6NyxzdHJpbmc6WzM1XX0sdGhpcy5ydWxlc1sxNl0ub3Bjb2Rlc1szXT17dHlwZTo3LHN0cmluZzpbMzZdfSx0aGlzLnJ1bGVzWzE2XS5vcGNvZGVzWzRdPXt0eXBlOjcsc3RyaW5nOlszN119LHRoaXMucnVsZXNbMTZdLm9wY29kZXNbNV09e3R5cGU6NyxzdHJpbmc6WzM4XX0sdGhpcy5ydWxlc1sxNl0ub3Bjb2Rlc1s2XT17dHlwZTo3LHN0cmluZzpbMzldfSx0aGlzLnJ1bGVzWzE2XS5vcGNvZGVzWzddPXt0eXBlOjcsc3RyaW5nOls0Ml19LHRoaXMucnVsZXNbMTZdLm9wY29kZXNbOF09e3R5cGU6NyxzdHJpbmc6WzQzXX0sdGhpcy5ydWxlc1sxNl0ub3Bjb2Rlc1s5XT17dHlwZTo3LHN0cmluZzpbNDVdfSx0aGlzLnJ1bGVzWzE2XS5vcGNvZGVzWzEwXT17dHlwZTo3LHN0cmluZzpbNDZdfSx0aGlzLnJ1bGVzWzE2XS5vcGNvZGVzWzExXT17dHlwZTo3LHN0cmluZzpbOTRdfSx0aGlzLnJ1bGVzWzE2XS5vcGNvZGVzWzEyXT17dHlwZTo3LHN0cmluZzpbOTVdfSx0aGlzLnJ1bGVzWzE2XS5vcGNvZGVzWzEzXT17dHlwZTo3LHN0cmluZzpbOTZdfSx0aGlzLnJ1bGVzWzE2XS5vcGNvZGVzWzE0XT17dHlwZTo3LHN0cmluZzpbMTI0XX0sdGhpcy5ydWxlc1sxNl0ub3Bjb2Rlc1sxNV09e3R5cGU6NyxzdHJpbmc6WzEyNl19LHRoaXMucnVsZXNbMTZdLm9wY29kZXNbMTZdPXt0eXBlOjQsaW5kZXg6MjN9LHRoaXMucnVsZXNbMTZdLm9wY29kZXNbMTddPXt0eXBlOjQsaW5kZXg6MjJ9LHRoaXMucnVsZXNbMTddLm9wY29kZXM9W10sdGhpcy5ydWxlc1sxN10ub3Bjb2Rlc1swXT17dHlwZTo1LG1pbjoxLG1heDoxMjd9LHRoaXMucnVsZXNbMThdLm9wY29kZXM9W10sdGhpcy5ydWxlc1sxOF0ub3Bjb2Rlc1swXT17dHlwZToxLGNoaWxkcmVuOlsxLDJdfSx0aGlzLnJ1bGVzWzE4XS5vcGNvZGVzWzFdPXt0eXBlOjUsbWluOjAsbWF4OjMxfSx0aGlzLnJ1bGVzWzE4XS5vcGNvZGVzWzJdPXt0eXBlOjYsc3RyaW5nOlsxMjddfSx0aGlzLnJ1bGVzWzE5XS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMTldLm9wY29kZXNbMF09e3R5cGU6MSxjaGlsZHJlbjpbMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTldfSx0aGlzLnJ1bGVzWzE5XS5vcGNvZGVzWzFdPXt0eXBlOjcsc3RyaW5nOls0MF19LHRoaXMucnVsZXNbMTldLm9wY29kZXNbMl09e3R5cGU6NyxzdHJpbmc6WzQxXX0sdGhpcy5ydWxlc1sxOV0ub3Bjb2Rlc1szXT17dHlwZTo3LHN0cmluZzpbNjBdfSx0aGlzLnJ1bGVzWzE5XS5vcGNvZGVzWzRdPXt0eXBlOjcsc3RyaW5nOls2Ml19LHRoaXMucnVsZXNbMTldLm9wY29kZXNbNV09e3R5cGU6NyxzdHJpbmc6WzY0XX0sdGhpcy5ydWxlc1sxOV0ub3Bjb2Rlc1s2XT17dHlwZTo3LHN0cmluZzpbNDRdfSx0aGlzLnJ1bGVzWzE5XS5vcGNvZGVzWzddPXt0eXBlOjcsc3RyaW5nOls1OV19LHRoaXMucnVsZXNbMTldLm9wY29kZXNbOF09e3R5cGU6NyxzdHJpbmc6WzU4XX0sdGhpcy5ydWxlc1sxOV0ub3Bjb2Rlc1s5XT17dHlwZTo3LHN0cmluZzpbOTJdfSx0aGlzLnJ1bGVzWzE5XS5vcGNvZGVzWzEwXT17dHlwZTo2LHN0cmluZzpbMzRdfSx0aGlzLnJ1bGVzWzE5XS5vcGNvZGVzWzExXT17dHlwZTo3LHN0cmluZzpbNDddfSx0aGlzLnJ1bGVzWzE5XS5vcGNvZGVzWzEyXT17dHlwZTo3LHN0cmluZzpbOTFdfSx0aGlzLnJ1bGVzWzE5XS5vcGNvZGVzWzEzXT17dHlwZTo3LHN0cmluZzpbOTNdfSx0aGlzLnJ1bGVzWzE5XS5vcGNvZGVzWzE0XT17dHlwZTo3LHN0cmluZzpbNjNdfSx0aGlzLnJ1bGVzWzE5XS5vcGNvZGVzWzE1XT17dHlwZTo3LHN0cmluZzpbNjFdfSx0aGlzLnJ1bGVzWzE5XS5vcGNvZGVzWzE2XT17dHlwZTo3LHN0cmluZzpbMTIzXX0sdGhpcy5ydWxlc1sxOV0ub3Bjb2Rlc1sxN109e3R5cGU6NyxzdHJpbmc6WzEyNV19LHRoaXMucnVsZXNbMTldLm9wY29kZXNbMThdPXt0eXBlOjQsaW5kZXg6MjB9LHRoaXMucnVsZXNbMTldLm9wY29kZXNbMTldPXt0eXBlOjQsaW5kZXg6MjF9LHRoaXMucnVsZXNbMjBdLm9wY29kZXM9W10sdGhpcy5ydWxlc1syMF0ub3Bjb2Rlc1swXT17dHlwZTo2LHN0cmluZzpbMzJdfSx0aGlzLnJ1bGVzWzIxXS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMjFdLm9wY29kZXNbMF09e3R5cGU6NixzdHJpbmc6WzldfSx0aGlzLnJ1bGVzWzIyXS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMjJdLm9wY29kZXNbMF09e3R5cGU6MSxjaGlsZHJlbjpbMSwyXX0sdGhpcy5ydWxlc1syMl0ub3Bjb2Rlc1sxXT17dHlwZTo1LG1pbjo2NSxtYXg6OTB9LHRoaXMucnVsZXNbMjJdLm9wY29kZXNbMl09e3R5cGU6NSxtaW46OTcsbWF4OjEyMn0sdGhpcy5ydWxlc1syM10ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzIzXS5vcGNvZGVzWzBdPXt0eXBlOjUsbWluOjQ4LG1heDo1N30sdGhpcy5ydWxlc1syNF0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzI0XS5vcGNvZGVzWzBdPXt0eXBlOjYsc3RyaW5nOlszNF19LHRoaXMucnVsZXNbMjVdLm9wY29kZXM9W10sdGhpcy5ydWxlc1syNV0ub3Bjb2Rlc1swXT17dHlwZToxLGNoaWxkcmVuOlsxLDJdfSx0aGlzLnJ1bGVzWzI1XS5vcGNvZGVzWzFdPXt0eXBlOjQsaW5kZXg6MjB9LHRoaXMucnVsZXNbMjVdLm9wY29kZXNbMl09e3R5cGU6NCxpbmRleDoyNn0sdGhpcy5ydWxlc1syNl0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzI2XS5vcGNvZGVzWzBdPXt0eXBlOjYsc3RyaW5nOls5XX0sdGhpcy5ydWxlc1syN10ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzI3XS5vcGNvZGVzWzBdPXt0eXBlOjIsY2hpbGRyZW46WzEsMl19LHRoaXMucnVsZXNbMjddLm9wY29kZXNbMV09e3R5cGU6NCxpbmRleDoyOH0sdGhpcy5ydWxlc1syN10ub3Bjb2Rlc1syXT17dHlwZTo0LGluZGV4OjI5fSx0aGlzLnJ1bGVzWzI4XS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMjhdLm9wY29kZXNbMF09e3R5cGU6NixzdHJpbmc6WzEzXX0sdGhpcy5ydWxlc1syOV0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzI5XS5vcGNvZGVzWzBdPXt0eXBlOjYsc3RyaW5nOlsxMF19LHRoaXMudG9TdHJpbmc9ZnVuY3Rpb24gdG9TdHJpbmcoKXtsZXQgcz0iIjtyZXR1cm4gcys9IjsgTGVuaWVudCB2ZXJzaW9uIG9mIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNjI2NSNzZWN0aW9uLTQuMi4xXG4iLHMrPSdsZW5pZW50LWNvb2tpZS1zdHJpbmcgICAgICAgID0gbGVuaWVudC1jb29raWUtZW50cnkgKiggIjsiIE9XUyBsZW5pZW50LWNvb2tpZS1lbnRyeSApXG4nLHMrPSJsZW5pZW50LWNvb2tpZS1lbnRyeSAgICAgICAgID0gbGVuaWVudC1jb29raWUtcGFpciAvIGxlbmllbnQtY29va2llLXBhaXItaW52YWxpZFxuIixzKz0nbGVuaWVudC1jb29raWUtcGFpciAgICAgICAgICA9IE9XUyBsZW5pZW50LWNvb2tpZS1uYW1lIE9XUyAiPSIgT1dTIGxlbmllbnQtY29va2llLXZhbHVlIE9XU1xuJyxzKz0nbGVuaWVudC1jb29raWUtcGFpci1pbnZhbGlkICA9IE9XUyAxKnRjaGFyIE9XUyA7IEFsbG93IGZvciBzdGFuZGFsb25lIGVudHJpZXMgbGlrZSAiZml6eiIgdG8gYmUgaWdub3JlZFxuJyxzKz0nbGVuaWVudC1jb29raWUtbmFtZSAgICAgICAgICA9IDEqKCAleDIxLTNBIC8gJXgzQyAvICV4M0UtN0UgKSA7IEFsbG93IGFsbCBwcmludGFibGUgVVMtQVNDSUkgZXhjZXB0ICI9IlxuJyxzKz0ibGVuaWVudC1jb29raWUtdmFsdWUgICAgICAgICA9IGxlbmllbnQtcXVvdGVkLXZhbHVlIFsgKmxlbmllbnQtY29va2llLW9jdGV0IF0gLyAqbGVuaWVudC1jb29raWUtb2N0ZXRcbiIscys9ImxlbmllbnQtcXVvdGVkLXZhbHVlICAgICAgICAgPSBEUVVPVEUgKiggbGVuaWVudC1xdW90ZWQtY2hhciApIERRVU9URVxuIixzKz0ibGVuaWVudC1xdW90ZWQtY2hhciAgICAgICAgICA9ICV4MjAtMjEgLyAleDIzLTdFIDsgQWxsb3cgYWxsIHByaW50YWJsZSBVUy1BU0NJSSBleGNlcHQgRFFVT1RFXG4iLHMrPSJsZW5pZW50LWNvb2tpZS1vY3RldCAgICAgICAgID0gJXgyMS0yQiAvICV4MkQtM0EgLyAleDNDLTdFXG4iLHMrPSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgQWxsb3cgYWxsIHByaW50YWJsZSBjaGFyYWN0ZXJzIGV4Y2VwdCBDVExzLCBzZW1pY29sb24gYW5kIFNQXG4iLHMrPSJcbiIscys9IjsgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM2MjY1I3NlY3Rpb24tNC4yLjFcbiIscys9J2Nvb2tpZS1zdHJpbmcgICAgID0gY29va2llLXBhaXIgKiggIjsiIFNQIGNvb2tpZS1wYWlyIClcbicscys9IlxuIixzKz0iOyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzYyNjUjc2VjdGlvbi00LjEuMVxuIixzKz0iOyBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9lcnJhdGEvZWlkNTUxOFxuIixzKz0nY29va2llLXBhaXIgICAgICAgPSBjb29raWUtbmFtZSAiPSIgY29va2llLXZhbHVlXG4nLHMrPSJjb29raWUtbmFtZSAgICAgICA9IHRva2VuXG4iLHMrPSJjb29raWUtdmFsdWUgICAgICA9ICggRFFVT1RFICpjb29raWUtb2N0ZXQgRFFVT1RFICkgLyAqY29va2llLW9jdGV0XG4iLHMrPSIgICAgICAgICAgICAgICAgICA7IGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL2VycmF0YS9laWQ4MjQyXG4iLHMrPSJjb29raWUtb2N0ZXQgICAgICA9ICV4MjEgLyAleDIzLTJCIC8gJXgyRC0zQSAvICV4M0MtNUIgLyAleDVELTdFXG4iLHMrPSIgICAgICAgICAgICAgICAgICAgICAgIDsgVVMtQVNDSUkgY2hhcmFjdGVycyBleGNsdWRpbmcgQ1RMcyxcbiIscys9IiAgICAgICAgICAgICAgICAgICAgICAgOyB3aGl0ZXNwYWNlLCBEUVVPVEUsIGNvbW1hLCBzZW1pY29sb24sXG4iLHMrPSIgICAgICAgICAgICAgICAgICAgICAgIDsgYW5kIGJhY2tzbGFzaFxuIixzKz0iXG4iLHMrPSI7IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNjI2NSNzZWN0aW9uLTIuMlxuIixzKz0nT1dTICAgICAgICAgICAgPSAqKCBbIENSTEYgXSBXU1AgKSA7ICJvcHRpb25hbCIgd2hpdGVzcGFjZVxuJyxzKz0iXG4iLHMrPSI7IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjOTExMCNzZWN0aW9uLTUuNi4yXG4iLHMrPSJ0b2tlbiAgICAgICAgICA9IDEqKHRjaGFyKVxuIixzKz0ndGNoYXIgICAgICAgICAgPSAiISIgLyAiIyIgLyAiJCIgLyAiJSIgLyAiJiIgLyAiXCciIC8gIioiXG4nLHMrPScgICAgICAgICAgICAgICAgIC8gIisiIC8gIi0iIC8gIi4iIC8gIl4iIC8gIl8iIC8gImAiIC8gInwiIC8gIn4iXG4nLHMrPSIgICAgICAgICAgICAgICAgIC8gRElHSVQgLyBBTFBIQVxuIixzKz0iICAgICAgICAgICAgICAgICA7IGFueSBWQ0hBUiwgZXhjZXB0IGRlbGltaXRlcnNcbiIscys9IlxuIixzKz0iOyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzI2MTYjc2VjdGlvbi0yLjJcbiIscys9IkNIQVIgICAgICAgICAgID0gJXgwMS03RiA7IGFueSBVUy1BU0NJSSBjaGFyYWN0ZXIgKG9jdGV0cyAwIC0gMTI3KVxuIixzKz0iQ1RMICAgICAgICAgICAgPSAleDAwLTFGIC8gJXg3RiA7IGFueSBVUy1BU0NJSSBjb250cm9sIGNoYXJhY3RlclxuIixzKz0nc2VwYXJhdG9ycyAgICAgPSAiKCIgLyAiKSIgLyAiPCIgLyAiPiIgLyAiQCIgLyAiLCIgLyAiOyIgLyAiOiIgLyAiXFwiIC8gJXgyMiAvICIvIiAvICJbIiAvICJdIiAvICI/IiAvICI9IiAvICJ7IiAvICJ9IiAvIFNQIC8gSFRcbicscys9IlNQICAgICAgICAgICAgID0gJXgyMCA7IFVTLUFTQ0lJIFNQLCBzcGFjZSAoMzIpXG4iLHMrPSJIVCAgICAgICAgICAgICA9ICV4MDkgOyBVUy1BU0NJSSBIVCwgaG9yaXpvbnRhbC10YWIgKDkpXG4iLHMrPSJcbiIscys9IjsgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM1MjM0I2FwcGVuZGl4LUIuMVxuIixzKz0iQUxQSEEgICAgICAgICAgPSAgJXg0MS01QSAvICV4NjEtN0EgOyBBLVogLyBhLXpcbiIscys9IkRJR0lUICAgICAgICAgID0gICV4MzAtMzkgOyAwLTlcbiIscys9J0RRVU9URSAgICAgICAgID0gICV4MjIgOyAiIChEb3VibGUgUXVvdGUpXG4nLHMrPSJXU1AgICAgICAgICAgICA9ICBTUCAvIEhUQUIgOyB3aGl0ZSBzcGFjZVxuIixzKz0iSFRBQiAgICAgICAgICAgPSAgJXgwOSA7IGhvcml6b250YWwgdGFiXG4iLHMrPSJDUkxGICAgICAgICAgICA9ICBDUiBMRiA7IEludGVybmV0IHN0YW5kYXJkIG5ld2xpbmVcbiIscys9IkNSICAgICAgICAgICAgID0gICV4MEQgOyBjYXJyaWFnZSByZXR1cm5cbiIscys9IkxGICAgICAgICAgICAgID0gICV4MEEgOyBsaW5lZmVlZFxuIiwnOyBMZW5pZW50IHZlcnNpb24gb2YgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM2MjY1I3NlY3Rpb24tNC4yLjFcbmxlbmllbnQtY29va2llLXN0cmluZyAgICAgICAgPSBsZW5pZW50LWNvb2tpZS1lbnRyeSAqKCAiOyIgT1dTIGxlbmllbnQtY29va2llLWVudHJ5IClcbmxlbmllbnQtY29va2llLWVudHJ5ICAgICAgICAgPSBsZW5pZW50LWNvb2tpZS1wYWlyIC8gbGVuaWVudC1jb29raWUtcGFpci1pbnZhbGlkXG5sZW5pZW50LWNvb2tpZS1wYWlyICAgICAgICAgID0gT1dTIGxlbmllbnQtY29va2llLW5hbWUgT1dTICI9IiBPV1MgbGVuaWVudC1jb29raWUtdmFsdWUgT1dTXG5sZW5pZW50LWNvb2tpZS1wYWlyLWludmFsaWQgID0gT1dTIDEqdGNoYXIgT1dTIDsgQWxsb3cgZm9yIHN0YW5kYWxvbmUgZW50cmllcyBsaWtlICJmaXp6IiB0byBiZSBpZ25vcmVkXG5sZW5pZW50LWNvb2tpZS1uYW1lICAgICAgICAgID0gMSooICV4MjEtM0EgLyAleDNDIC8gJXgzRS03RSApIDsgQWxsb3cgYWxsIHByaW50YWJsZSBVUy1BU0NJSSBleGNlcHQgIj0iXG5sZW5pZW50LWNvb2tpZS12YWx1ZSAgICAgICAgID0gbGVuaWVudC1xdW90ZWQtdmFsdWUgWyAqbGVuaWVudC1jb29raWUtb2N0ZXQgXSAvICpsZW5pZW50LWNvb2tpZS1vY3RldFxubGVuaWVudC1xdW90ZWQtdmFsdWUgICAgICAgICA9IERRVU9URSAqKCBsZW5pZW50LXF1b3RlZC1jaGFyICkgRFFVT1RFXG5sZW5pZW50LXF1b3RlZC1jaGFyICAgICAgICAgID0gJXgyMC0yMSAvICV4MjMtN0UgOyBBbGxvdyBhbGwgcHJpbnRhYmxlIFVTLUFTQ0lJIGV4Y2VwdCBEUVVPVEVcbmxlbmllbnQtY29va2llLW9jdGV0ICAgICAgICAgPSAleDIxLTJCIC8gJXgyRC0zQSAvICV4M0MtN0VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBBbGxvdyBhbGwgcHJpbnRhYmxlIGNoYXJhY3RlcnMgZXhjZXB0IENUTHMsIHNlbWljb2xvbiBhbmQgU1BcblxuOyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzYyNjUjc2VjdGlvbi00LjIuMVxuY29va2llLXN0cmluZyAgICAgPSBjb29raWUtcGFpciAqKCAiOyIgU1AgY29va2llLXBhaXIgKVxuXG47IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNjI2NSNzZWN0aW9uLTQuMS4xXG47IGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL2VycmF0YS9laWQ1NTE4XG5jb29raWUtcGFpciAgICAgICA9IGNvb2tpZS1uYW1lICI9IiBjb29raWUtdmFsdWVcbmNvb2tpZS1uYW1lICAgICAgID0gdG9rZW5cbmNvb2tpZS12YWx1ZSAgICAgID0gKCBEUVVPVEUgKmNvb2tpZS1vY3RldCBEUVVPVEUgKSAvICpjb29raWUtb2N0ZXRcbiAgICAgICAgICAgICAgICAgIDsgaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvZXJyYXRhL2VpZDgyNDJcbmNvb2tpZS1vY3RldCAgICAgID0gJXgyMSAvICV4MjMtMkIgLyAleDJELTNBIC8gJXgzQy01QiAvICV4NUQtN0VcbiAgICAgICAgICAgICAgICAgICAgICAgOyBVUy1BU0NJSSBjaGFyYWN0ZXJzIGV4Y2x1ZGluZyBDVExzLFxuICAgICAgICAgICAgICAgICAgICAgICA7IHdoaXRlc3BhY2UsIERRVU9URSwgY29tbWEsIHNlbWljb2xvbixcbiAgICAgICAgICAgICAgICAgICAgICAgOyBhbmQgYmFja3NsYXNoXG5cbjsgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM2MjY1I3NlY3Rpb24tMi4yXG5PV1MgICAgICAgICAgICA9ICooIFsgQ1JMRiBdIFdTUCApIDsgIm9wdGlvbmFsIiB3aGl0ZXNwYWNlXG5cbjsgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM5MTEwI3NlY3Rpb24tNS42LjJcbnRva2VuICAgICAgICAgID0gMSoodGNoYXIpXG50Y2hhciAgICAgICAgICA9ICIhIiAvICIjIiAvICIkIiAvICIlIiAvICImIiAvICJcJyIgLyAiKiJcbiAgICAgICAgICAgICAgICAgLyAiKyIgLyAiLSIgLyAiLiIgLyAiXiIgLyAiXyIgLyAiYCIgLyAifCIgLyAifiJcbiAgICAgICAgICAgICAgICAgLyBESUdJVCAvIEFMUEhBXG4gICAgICAgICAgICAgICAgIDsgYW55IFZDSEFSLCBleGNlcHQgZGVsaW1pdGVyc1xuXG47IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjMjYxNiNzZWN0aW9uLTIuMlxuQ0hBUiAgICAgICAgICAgPSAleDAxLTdGIDsgYW55IFVTLUFTQ0lJIGNoYXJhY3RlciAob2N0ZXRzIDAgLSAxMjcpXG5DVEwgICAgICAgICAgICA9ICV4MDAtMUYgLyAleDdGIDsgYW55IFVTLUFTQ0lJIGNvbnRyb2wgY2hhcmFjdGVyXG5zZXBhcmF0b3JzICAgICA9ICIoIiAvICIpIiAvICI8IiAvICI+IiAvICJAIiAvICIsIiAvICI7IiAvICI6IiAvICJcXCIgLyAleDIyIC8gIi8iIC8gIlsiIC8gIl0iIC8gIj8iIC8gIj0iIC8gInsiIC8gIn0iIC8gU1AgLyBIVFxuU1AgICAgICAgICAgICAgPSAleDIwIDsgVVMtQVNDSUkgU1AsIHNwYWNlICgzMilcbkhUICAgICAgICAgICAgID0gJXgwOSA7IFVTLUFTQ0lJIEhULCBob3Jpem9udGFsLXRhYiAoOSlcblxuOyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzUyMzQjYXBwZW5kaXgtQi4xXG5BTFBIQSAgICAgICAgICA9ICAleDQxLTVBIC8gJXg2MS03QSA7IEEtWiAvIGEtelxuRElHSVQgICAgICAgICAgPSAgJXgzMC0zOSA7IDAtOVxuRFFVT1RFICAgICAgICAgPSAgJXgyMiA7ICIgKERvdWJsZSBRdW90ZSlcbldTUCAgICAgICAgICAgID0gIFNQIC8gSFRBQiA7IHdoaXRlIHNwYWNlXG5IVEFCICAgICAgICAgICA9ICAleDA5IDsgaG9yaXpvbnRhbCB0YWJcbkNSTEYgICAgICAgICAgID0gIENSIExGIDsgSW50ZXJuZXQgc3RhbmRhcmQgbmV3bGluZVxuQ1IgICAgICAgICAgICAgPSAgJXgwRCA7IGNhcnJpYWdlIHJldHVyblxuTEYgICAgICAgICAgICAgPSAgJXgwQSA7IGxpbmVmZWVkXG4nfX1uZXcgZ3JhbW1hcl9ncmFtbWFyO2NvbnN0IHV0aWxzX3BlcmNlbnRFbmNvZGVDaGFyPXM9PntpZigic3RyaW5nIiE9dHlwZW9mIHN8fDEhPT1bLi4uc10ubGVuZ3RoKXRocm93IG5ldyBUeXBlRXJyb3IoIklucHV0IG11c3QgYmUgYSBzaW5nbGUgY2hhcmFjdGVyIHN0cmluZy4iKTtjb25zdCBvPXMuY29kZVBvaW50QXQoMCk7cmV0dXJuIG88PTEyNz9gJSR7by50b1N0cmluZygxNikudG9VcHBlckNhc2UoKS5wYWRTdGFydCgyLCIwIil9YDplbmNvZGVVUklDb21wb25lbnQocyl9LHV0aWxzX2lzUXVvdGVkPXM9PnMubGVuZ3RoPj0yJiZzLnN0YXJ0c1dpdGgoJyInKSYmcy5lbmRzV2l0aCgnIicpLHV0aWxzX3VucXVvdGU9cz0+dXRpbHNfaXNRdW90ZWQocyk/cy5zbGljZSgxLC0xKTpzLHV0aWxzX3F1b3RlPXM9PmAiJHtzfSJgLHV0aWxzX2lkZW50aXR5PXM9PnMsJHg9bmV3IHlwLHF4PW5ldyBncmFtbWFyX2dyYW1tYXIsdGVzdF9jb29raWVfdmFsdWU9KHMse3N0cmljdDpvPSEwLHF1b3RlZDppPW51bGx9PXt9KT0+e3RyeXtjb25zdCBhPW8/ImNvb2tpZS12YWx1ZSI6ImxlbmllbnQtY29va2llLXZhbHVlIix1PSR4LnBhcnNlKHF4LGEscyk7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgaT91LnN1Y2Nlc3MmJmk9PT11dGlsc19pc1F1b3RlZChzKTp1LnN1Y2Nlc3N9Y2F0Y2h7cmV0dXJuITF9fSxiYXNlNjRfYnJvd3Nlcj1zPT57Y29uc3Qgbz0obmV3IFRleHRFbmNvZGVyKS5lbmNvZGUocykucmVkdWNlKCgocyxvKT0+cytTdHJpbmcuZnJvbUNoYXJDb2RlKG8pKSwiIik7cmV0dXJuIGJ0b2Eobyl9LGNvb2tpZV92YWx1ZV9zdHJpY3RfYmFzZTY0PShzLG89YmFzZTY0X2Jyb3dzZXIpPT57Y29uc3QgaT1TdHJpbmcocyk7aWYodGVzdF9jb29raWVfdmFsdWUoaSkpcmV0dXJuIGk7Y29uc3QgYT11dGlsc19pc1F1b3RlZChpKSx1PW8oYT91dGlsc191bnF1b3RlKGkpOmkpO3JldHVybiBhP3V0aWxzX3F1b3RlKHUpOnV9LGJhc2U2NHVybF9icm93c2VyPXM9PihzPT5zLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIikucmVwbGFjZSgvPSskL2csIiIpKShiYXNlNjRfYnJvd3NlcihzKSksY29va2llX3ZhbHVlX3N0cmljdF9iYXNlNjR1cmw9cz0+Y29va2llX3ZhbHVlX3N0cmljdF9iYXNlNjQocyxiYXNlNjR1cmxfYnJvd3NlciksVng9bmV3IHlwLFV4PW5ldyBncmFtbWFyX2dyYW1tYXIsdGVzdF9jb29raWVfbmFtZT0ocyx7c3RyaWN0Om89ITB9PXt9KT0+e3RyeXtjb25zdCBpPW8/ImNvb2tpZS1uYW1lIjoibGVuaWVudC1jb29raWUtbmFtZSI7cmV0dXJuIFZ4LnBhcnNlKFV4LGkscykuc3VjY2Vzc31jYXRjaHtyZXR1cm4hMX19LGNvb2tpZV9uYW1lX3N0cmljdD1zPT57aWYoIXRlc3RfY29va2llX25hbWUocykpdGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBjb29raWUgbmFtZTogJHtzfWApfSxjb29raWVfdmFsdWVfc3RyaWN0PXM9PntpZighdGVzdF9jb29raWVfdmFsdWUocykpdGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBjb29raWUgdmFsdWU6ICR7c31gKX0seng9e2VuY29kZXJzOntuYW1lOnV0aWxzX2lkZW50aXR5LHZhbHVlOmNvb2tpZV92YWx1ZV9zdHJpY3RfYmFzZTY0dXJsfSx2YWxpZGF0b3JzOntuYW1lOmNvb2tpZV9uYW1lX3N0cmljdCx2YWx1ZTpjb29raWVfdmFsdWVfc3RyaWN0fX0sc2V0X2Nvb2tpZV9zZXJpYWxpemU9KHMsbyxpPXt9KT0+e2NvbnN0IGE9ey4uLnp4LC4uLmksZW5jb2RlcnM6ey4uLnp4LmVuY29kZXJzLC4uLmkuZW5jb2RlcnN9LHZhbGlkYXRvcnM6ey4uLnp4LnZhbGlkYXRvcnMsLi4uaS52YWxpZGF0b3JzfX0sdT1hLmVuY29kZXJzLm5hbWUocyksXz1hLmVuY29kZXJzLnZhbHVlKG8pO3JldHVybiBhLnZhbGlkYXRvcnMubmFtZSh1KSxhLnZhbGlkYXRvcnMudmFsdWUoXyksYCR7dX09JHtffWB9LGNvb2tpZV9zZXJpYWxpemU9KHMsbz17fSk9PihBcnJheS5pc0FycmF5KHMpP3M6Im9iamVjdCI9PXR5cGVvZiBzJiZudWxsIT09cz9PYmplY3QuZW50cmllcyhzKTpbXSkubWFwKCgoW3MsaV0pPT5zZXRfY29va2llX3NlcmlhbGl6ZShzLGksbykpKS5qb2luKCI7ICIpLFd4PW5ldyB5cCxKeD1uZXcgZ3JhbW1hcl9ncmFtbWFyLGNvb2tpZV92YWx1ZV9zdHJpY3RfcGVyY2VudD1zPT57Y29uc3Qgbz1TdHJpbmcocyk7aWYodGVzdF9jb29raWVfdmFsdWUobykpcmV0dXJuIG87Y29uc3QgaT11dGlsc19pc1F1b3RlZChvKSxhPWk/dXRpbHNfdW5xdW90ZShvKTpvO2xldCB1PSIiO2Zvcihjb25zdCBzIG9mIGEpdSs9V3gucGFyc2UoSngsImNvb2tpZS1vY3RldCIscykuc3VjY2Vzcz9zOnV0aWxzX3BlcmNlbnRFbmNvZGVDaGFyKHMpO3JldHVybiBpP3V0aWxzX3F1b3RlKHUpOnV9LEh4PShuZXcgeXAsbmV3IGdyYW1tYXJfZ3JhbW1hcixzPT57aWYoIXRlc3RfY29va2llX25hbWUocyx7c3RyaWN0OiExfSkpdGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBjb29raWUgbmFtZTogJHtzfWApfSksdmFsdWVQZXJjZW50RW5jb2Rlcj1zPT5jb29raWVfdmFsdWVfc3RyaWN0X3BlcmNlbnQocykucmVwbGFjZSgvWz0mXS9ndSwocz0+Ij0iPT09cz8iJTNEIjoiJTI2IikpLGhlbHBlcnNfY29va2llX3NlcmlhbGl6ZT0ocyxvPXt9KT0+Y29va2llX3NlcmlhbGl6ZShzLGVwKHtlbmNvZGVyczp7bmFtZTp1dGlsc19pZGVudGl0eSx2YWx1ZTp2YWx1ZVBlcmNlbnRFbmNvZGVyfSx2YWxpZGF0b3JzOntuYW1lOkh4LHZhbHVlOmNvb2tpZV92YWx1ZV9zdHJpY3R9fSxvKSk7ZnVuY3Rpb24gcGFyYW1ldGVyX2J1aWxkZXJzX3BhdGgoe3JlcTpzLHZhbHVlOm8scGFyYW1ldGVyOmksYmFzZVVSTDphfSl7Y29uc3R7bmFtZTp1LHN0eWxlOl8sZXhwbG9kZTp3LGNvbnRlbnQ6eH09aTtpZih2b2lkIDA9PT1vKXJldHVybjtjb25zdCBDPXMudXJsLnJlcGxhY2UoYSwiIik7bGV0IGo7aWYoeCl7Y29uc3Qgcz1PYmplY3Qua2V5cyh4KVswXTtqPWVzX3Jlc29sdmUoQyx7W3VdOm99LHtlbmNvZGVyOm89PmVuY29kZUNoYXJhY3RlcnMoc2VyaWFsaXplKG8scykpfSl9ZWxzZSBqPWVzX3Jlc29sdmUoQyx7W3VdOm99LHtlbmNvZGVyOnM9PnN0eWxpemUoe2tleTppLm5hbWUsdmFsdWU6cyxzdHlsZTpffHwic2ltcGxlIixleHBsb2RlOm51bGwhPXcmJncsZXNjYXBlOiJyZXNlcnZlZCJ9KX0pO3MudXJsPWEran1mdW5jdGlvbiBxdWVyeSh7cmVxOnMsdmFsdWU6byxwYXJhbWV0ZXI6aX0pe2lmKHMucXVlcnk9cy5xdWVyeXx8e30sdm9pZCAwIT09byYmaS5jb250ZW50KXtjb25zdCBhPXNlcmlhbGl6ZShvLE9iamVjdC5rZXlzKGkuY29udGVudClbMF0pO2lmKGEpcy5xdWVyeVtpLm5hbWVdPWE7ZWxzZSBpZihpLmFsbG93RW1wdHlWYWx1ZSl7Y29uc3Qgbz1pLm5hbWU7cy5xdWVyeVtvXT1zLnF1ZXJ5W29dfHx7fSxzLnF1ZXJ5W29dLmFsbG93RW1wdHlWYWx1ZT0hMH19ZWxzZSBpZighMT09PW8mJihvPSJmYWxzZSIpLDA9PT1vJiYobz0iMCIpLG8pe2NvbnN0e3N0eWxlOmEsZXhwbG9kZTp1LGFsbG93UmVzZXJ2ZWQ6X309aTtzLnF1ZXJ5W2kubmFtZV09e3ZhbHVlOm8sc2VyaWFsaXphdGlvbk9wdGlvbjp7c3R5bGU6YSxleHBsb2RlOnUsYWxsb3dSZXNlcnZlZDpffX19ZWxzZSBpZihpLmFsbG93RW1wdHlWYWx1ZSYmdm9pZCAwIT09byl7Y29uc3Qgbz1pLm5hbWU7cy5xdWVyeVtvXT1zLnF1ZXJ5W29dfHx7fSxzLnF1ZXJ5W29dLmFsbG93RW1wdHlWYWx1ZT0hMH19Y29uc3QgS3g9WyJhY2NlcHQiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC10eXBlIl07ZnVuY3Rpb24gcGFyYW1ldGVyX2J1aWxkZXJzX2hlYWRlcih7cmVxOnMscGFyYW1ldGVyOm8sdmFsdWU6aX0pe2lmKHMuaGVhZGVycz1zLmhlYWRlcnN8fHt9LCEoS3guaW5kZXhPZihvLm5hbWUudG9Mb3dlckNhc2UoKSk+LTEpKWlmKHZvaWQgMCE9PWkmJm8uY29udGVudCl7Y29uc3QgYT1PYmplY3Qua2V5cyhvLmNvbnRlbnQpWzBdO3MuaGVhZGVyc1tvLm5hbWVdPXNlcmlhbGl6ZShpLGEpfWVsc2Ugdm9pZCAwPT09aXx8QXJyYXkuaXNBcnJheShpKSYmMD09PWkubGVuZ3RofHwocy5oZWFkZXJzW28ubmFtZV09c3R5bGl6ZSh7a2V5Om8ubmFtZSx2YWx1ZTppLHN0eWxlOm8uc3R5bGV8fCJzaW1wbGUiLGV4cGxvZGU6dm9pZCAwIT09by5leHBsb2RlJiZvLmV4cGxvZGUsZXNjYXBlOiExfSkpfWZ1bmN0aW9uIGNvb2tpZSh7cmVxOnMscGFyYW1ldGVyOm8sdmFsdWU6aX0pe2NvbnN0e25hbWU6YX09bztpZihzLmhlYWRlcnM9cy5oZWFkZXJzfHx7fSx2b2lkIDAhPT1pJiZvLmNvbnRlbnQpe2NvbnN0IHU9c2VyaWFsaXplKGksT2JqZWN0LmtleXMoby5jb250ZW50KVswXSk7cy5oZWFkZXJzLkNvb2tpZT1oZWxwZXJzX2Nvb2tpZV9zZXJpYWxpemUoe1thXTp1fSl9ZWxzZSBpZih2b2lkIDAhPT1pJiYoIUFycmF5LmlzQXJyYXkoaSl8fDAhPT1pLmxlbmd0aCkpe3ZhciB1O2NvbnN0IF89c3R5bGl6ZSh7a2V5Om8ubmFtZSx2YWx1ZTppLGVzY2FwZTohMSxzdHlsZTpvLnN0eWxlfHwiZm9ybSIsZXhwbG9kZTpudWxsIT09KHU9by5leHBsb2RlKSYmdm9pZCAwIT09dSYmdX0pLHc9QXJyYXkuaXNBcnJheShpKSYmby5leHBsb2RlP2Ake2F9PSR7X31gOl87cy5oZWFkZXJzLkNvb2tpZT1oZWxwZXJzX2Nvb2tpZV9zZXJpYWxpemUoe1thXTp3fSl9fWNvbnN0IEd4PSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOndpbmRvdyx7YnRvYTpZeH09R3gsWHg9WXg7ZnVuY3Rpb24gYnVpbGRSZXF1ZXN0KHMsbyl7Y29uc3R7b3BlcmF0aW9uOmkscmVxdWVzdEJvZHk6YSxzZWN1cml0aWVzOnUsc3BlYzpfLGF0dGFjaENvbnRlbnRUeXBlRm9yRW1wdHlQYXlsb2FkOnd9PXM7bGV0e3JlcXVlc3RDb250ZW50VHlwZTp4fT1zO289ZnVuY3Rpb24gYXBwbHlTZWN1cml0aWVzKHtyZXF1ZXN0OnMsc2VjdXJpdGllczpvPXt9LG9wZXJhdGlvbjppPXt9LHNwZWM6YX0pe3ZhciB1O2NvbnN0IF89ey4uLnN9LHthdXRob3JpemVkOnc9e319PW8seD1pLnNlY3VyaXR5fHxhLnNlY3VyaXR5fHxbXSxDPXcmJiEhT2JqZWN0LmtleXModykubGVuZ3RoLGo9KG51bGw9PWF8fG51bGw9PT0odT1hLmNvbXBvbmVudHMpfHx2b2lkIDA9PT11P3ZvaWQgMDp1LnNlY3VyaXR5U2NoZW1lcyl8fHt9O2lmKF8uaGVhZGVycz1fLmhlYWRlcnN8fHt9LF8ucXVlcnk9Xy5xdWVyeXx8e30sIU9iamVjdC5rZXlzKG8pLmxlbmd0aHx8IUN8fCF4fHxBcnJheS5pc0FycmF5KGkuc2VjdXJpdHkpJiYhaS5zZWN1cml0eS5sZW5ndGgpcmV0dXJuIHM7cmV0dXJuIHguZm9yRWFjaCgocz0+e09iamVjdC5rZXlzKHMpLmZvckVhY2goKHM9Pntjb25zdCBvPXdbc10saT1qW3NdO2lmKCFvKXJldHVybjtjb25zdCBhPW8udmFsdWV8fG8se3R5cGU6dX09aTtpZihvKWlmKCJhcGlLZXkiPT09dSkicXVlcnkiPT09aS5pbiYmKF8ucXVlcnlbaS5uYW1lXT1hKSwiaGVhZGVyIj09PWkuaW4mJihfLmhlYWRlcnNbaS5uYW1lXT1hKSwiY29va2llIj09PWkuaW4mJihfLmNvb2tpZXNbaS5uYW1lXT1hKTtlbHNlIGlmKCJodHRwIj09PXUpe2lmKC9eYmFzaWMkL2kudGVzdChpLnNjaGVtZSkpe2NvbnN0IHM9YS51c2VybmFtZXx8IiIsbz1hLnBhc3N3b3JkfHwiIixpPVh4KGAke3N9OiR7b31gKTtfLmhlYWRlcnMuQXV0aG9yaXphdGlvbj1gQmFzaWMgJHtpfWB9L15iZWFyZXIkL2kudGVzdChpLnNjaGVtZSkmJihfLmhlYWRlcnMuQXV0aG9yaXphdGlvbj1gQmVhcmVyICR7YX1gKX1lbHNlIGlmKCJvYXV0aDIiPT09dXx8Im9wZW5JZENvbm5lY3QiPT09dSl7Y29uc3Qgcz1vLnRva2VufHx7fSxhPXNbaVsieC10b2tlbk5hbWUiXXx8ImFjY2Vzc190b2tlbiJdO2xldCB1PXMudG9rZW5fdHlwZTt1JiYiYmVhcmVyIiE9PXUudG9Mb3dlckNhc2UoKXx8KHU9IkJlYXJlciIpLF8uaGVhZGVycy5BdXRob3JpemF0aW9uPWAke3V9ICR7YX1gfX0pKX0pKSxffSh7cmVxdWVzdDpvLHNlY3VyaXRpZXM6dSxvcGVyYXRpb246aSxzcGVjOl99KTtjb25zdCBDPWkucmVxdWVzdEJvZHl8fHt9LGo9T2JqZWN0LmtleXMoQy5jb250ZW50fHx7fSksTD14JiZqLmluZGV4T2YoeCk+LTE7aWYoYXx8dyl7aWYoeCYmTClvLmhlYWRlcnNbIkNvbnRlbnQtVHlwZSJdPXg7ZWxzZSBpZigheCl7Y29uc3Qgcz1qWzBdO3MmJihvLmhlYWRlcnNbIkNvbnRlbnQtVHlwZSJdPXMseD1zKX19ZWxzZSB4JiZMJiYoby5oZWFkZXJzWyJDb250ZW50LVR5cGUiXT14KTtpZighcy5yZXNwb25zZUNvbnRlbnRUeXBlJiZpLnJlc3BvbnNlcyl7Y29uc3Qgcz1PYmplY3QuZW50cmllcyhpLnJlc3BvbnNlcykuZmlsdGVyKCgoW3Msb10pPT57Y29uc3QgaT1wYXJzZUludChzLDEwKTtyZXR1cm4gaT49MjAwJiZpPDMwMCYmZnUoby5jb250ZW50KX0pKS5yZWR1Y2UoKChzLFssb10pPT5zLmNvbmNhdChPYmplY3Qua2V5cyhvLmNvbnRlbnQpKSksW10pO3MubGVuZ3RoPjAmJihvLmhlYWRlcnMuYWNjZXB0PXMuam9pbigiLCAiKSl9aWYoYSlpZih4KXtpZihqLmluZGV4T2YoeCk+LTEpaWYoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCI9PT14fHwibXVsdGlwYXJ0L2Zvcm0tZGF0YSI9PT14KWlmKCJvYmplY3QiPT10eXBlb2YgYSl7dmFyIEIsJDtjb25zdCBzPW51bGwhPT0oQj1udWxsPT09KCQ9Qy5jb250ZW50W3hdKXx8dm9pZCAwPT09JD92b2lkIDA6JC5lbmNvZGluZykmJnZvaWQgMCE9PUI/Qjp7fTtvLmZvcm09e30sT2JqZWN0LmtleXMoYSkuZm9yRWFjaCgoaT0+e2xldCB1O3RyeXt1PUpTT04ucGFyc2UoYVtpXSl9Y2F0Y2h7dT1hW2ldfW8uZm9ybVtpXT17dmFsdWU6dSxlbmNvZGluZzpzW2ldfHx7fX19KSl9ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGEpe3ZhciBWLFU7Y29uc3Qgcz1udWxsIT09KFY9bnVsbD09PShVPUMuY29udGVudFt4XSl8fHZvaWQgMD09PVU/dm9pZCAwOlUuZW5jb2RpbmcpJiZ2b2lkIDAhPT1WP1Y6e307dHJ5e28uZm9ybT17fTtjb25zdCBpPUpTT04ucGFyc2UoYSk7T2JqZWN0LmVudHJpZXMoaSkuZm9yRWFjaCgoKFtpLGFdKT0+e28uZm9ybVtpXT17dmFsdWU6YSxlbmNvZGluZzpzW2ldfHx7fX19KSl9Y2F0Y2h7by5mb3JtPWF9fWVsc2Ugby5mb3JtPWE7ZWxzZSBvLmJvZHk9YX1lbHNlIG8uYm9keT1hO3JldHVybiBvfWZ1bmN0aW9uIGJ1aWxkX3JlcXVlc3RfYnVpbGRSZXF1ZXN0KHMsbyl7Y29uc3R7c3BlYzppLG9wZXJhdGlvbjphLHNlY3VyaXRpZXM6dSxyZXF1ZXN0Q29udGVudFR5cGU6XyxyZXNwb25zZUNvbnRlbnRUeXBlOncsYXR0YWNoQ29udGVudFR5cGVGb3JFbXB0eVBheWxvYWQ6eH09cztpZihvPWZ1bmN0aW9uIGJ1aWxkX3JlcXVlc3RfYXBwbHlTZWN1cml0aWVzKHtyZXF1ZXN0OnMsc2VjdXJpdGllczpvPXt9LG9wZXJhdGlvbjppPXt9LHNwZWM6YX0pe2NvbnN0IHU9ey4uLnN9LHthdXRob3JpemVkOl89e30sc3BlY1NlY3VyaXR5Onc9W119PW8seD1pLnNlY3VyaXR5fHx3LEM9XyYmISFPYmplY3Qua2V5cyhfKS5sZW5ndGgsaj1hLnNlY3VyaXR5RGVmaW5pdGlvbnM7aWYodS5oZWFkZXJzPXUuaGVhZGVyc3x8e30sdS5xdWVyeT11LnF1ZXJ5fHx7fSwhT2JqZWN0LmtleXMobykubGVuZ3RofHwhQ3x8IXh8fEFycmF5LmlzQXJyYXkoaS5zZWN1cml0eSkmJiFpLnNlY3VyaXR5Lmxlbmd0aClyZXR1cm4gcztyZXR1cm4geC5mb3JFYWNoKChzPT57T2JqZWN0LmtleXMocykuZm9yRWFjaCgocz0+e2NvbnN0IG89X1tzXTtpZighbylyZXR1cm47Y29uc3R7dG9rZW46aX09byxhPW8udmFsdWV8fG8sdz1qW3NdLHt0eXBlOnh9PXcsQz13WyJ4LXRva2VuTmFtZSJdfHwiYWNjZXNzX3Rva2VuIixMPWkmJmlbQ107bGV0IEI9aSYmaS50b2tlbl90eXBlO2lmKG8paWYoImFwaUtleSI9PT14KXtjb25zdCBzPSJxdWVyeSI9PT13LmluPyJxdWVyeSI6ImhlYWRlcnMiO3Vbc109dVtzXXx8e30sdVtzXVt3Lm5hbWVdPWF9ZWxzZSBpZigiYmFzaWMiPT09eClpZihhLmhlYWRlcil1LmhlYWRlcnMuYXV0aG9yaXphdGlvbj1hLmhlYWRlcjtlbHNle2NvbnN0IHM9YS51c2VybmFtZXx8IiIsbz1hLnBhc3N3b3JkfHwiIjthLmJhc2U2ND1YeChgJHtzfToke299YCksdS5oZWFkZXJzLmF1dGhvcml6YXRpb249YEJhc2ljICR7YS5iYXNlNjR9YH1lbHNlIm9hdXRoMiI9PT14JiZMJiYoQj1CJiYiYmVhcmVyIiE9PUIudG9Mb3dlckNhc2UoKT9COiJCZWFyZXIiLHUuaGVhZGVycy5hdXRob3JpemF0aW9uPWAke0J9ICR7TH1gKX0pKX0pKSx1fSh7cmVxdWVzdDpvLHNlY3VyaXRpZXM6dSxvcGVyYXRpb246YSxzcGVjOml9KSxvLmJvZHl8fG8uZm9ybXx8eClfP28uaGVhZGVyc1siQ29udGVudC1UeXBlIl09XzpBcnJheS5pc0FycmF5KGEuY29uc3VtZXMpP1tvLmhlYWRlcnNbIkNvbnRlbnQtVHlwZSJdXT1hLmNvbnN1bWVzOkFycmF5LmlzQXJyYXkoaS5jb25zdW1lcyk/W28uaGVhZGVyc1siQ29udGVudC1UeXBlIl1dPWkuY29uc3VtZXM6YS5wYXJhbWV0ZXJzJiZhLnBhcmFtZXRlcnMuZmlsdGVyKChzPT4iZmlsZSI9PT1zLnR5cGUpKS5sZW5ndGg/by5oZWFkZXJzWyJDb250ZW50LVR5cGUiXT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSI6YS5wYXJhbWV0ZXJzJiZhLnBhcmFtZXRlcnMuZmlsdGVyKChzPT4iZm9ybURhdGEiPT09cy5pbikpLmxlbmd0aCYmKG8uaGVhZGVyc1siQ29udGVudC1UeXBlIl09ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpO2Vsc2UgaWYoXyl7Y29uc3Qgcz1hLnBhcmFtZXRlcnMmJmEucGFyYW1ldGVycy5maWx0ZXIoKHM9PiJib2R5Ij09PXMuaW4pKS5sZW5ndGg+MCxpPWEucGFyYW1ldGVycyYmYS5wYXJhbWV0ZXJzLmZpbHRlcigocz0+ImZvcm1EYXRhIj09PXMuaW4pKS5sZW5ndGg+MDsoc3x8aSkmJihvLmhlYWRlcnNbIkNvbnRlbnQtVHlwZSJdPV8pfXJldHVybiF3JiZBcnJheS5pc0FycmF5KGEucHJvZHVjZXMpJiZhLnByb2R1Y2VzLmxlbmd0aD4wJiYoby5oZWFkZXJzLmFjY2VwdD1hLnByb2R1Y2VzLmpvaW4oIiwgIikpLG99ZnVuY3Rpb24gaWRGcm9tUGF0aE1ldGhvZExlZ2FjeShzLG8pe3JldHVybmAke28udG9Mb3dlckNhc2UoKX0tJHtzfWB9Y29uc3QgYXJyYXlPckVtcHR5PXM9PkFycmF5LmlzQXJyYXkocyk/czpbXSxmaW5kT2JqZWN0T3JBcnJheVNjaGVtYT0ocyx7cmVjdXJzZTpvPSEwLGRlcHRoOmk9MX09e30pPT57aWYoZnUocykpe2lmKCJvYmplY3QiPT09cy50eXBlfHwiYXJyYXkiPT09cy50eXBlfHxBcnJheS5pc0FycmF5KHMudHlwZSkmJihzLnR5cGUuaW5jbHVkZXMoIm9iamVjdCIpfHxzLnR5cGUuaW5jbHVkZXMoImFycmF5IikpKXJldHVybiBzO2lmKCEoaT5CbCkmJm8pe2NvbnN0IGE9QXJyYXkuaXNBcnJheShzLm9uZU9mKT9zLm9uZU9mLmZpbmQoKHM9PmZpbmRPYmplY3RPckFycmF5U2NoZW1hKHMse3JlY3Vyc2U6byxkZXB0aDppKzF9KSkpOnZvaWQgMDtpZihhKXJldHVybiBhO2NvbnN0IHU9QXJyYXkuaXNBcnJheShzLmFueU9mKT9zLmFueU9mLmZpbmQoKHM9PmZpbmRPYmplY3RPckFycmF5U2NoZW1hKHMse3JlY3Vyc2U6byxkZXB0aDppKzF9KSkpOnZvaWQgMDtpZih1KXJldHVybiB1fX19LHBhcnNlSnNvbk9iamVjdE9yQXJyYXk9KHt2YWx1ZTpzLHNpbGVudEZhaWw6bz0hMX0pPT57dHJ5e2NvbnN0IGk9SlNPTi5wYXJzZShzKTtpZihmdShpKXx8QXJyYXkuaXNBcnJheShpKSlyZXR1cm4gaTtpZighbyl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIEpTT04gc2VyaWFsaXplZCBvYmplY3Qgb3IgYXJyYXkiKX1jYXRjaHtpZighbyl0aHJvdyBuZXcgRXJyb3IoIkNvdWxkIG5vdCBwYXJzZSBwYXJhbWV0ZXIgdmFsdWUgc3RyaW5nIGFzIEpTT04gT2JqZWN0IG9yIEpTT04gQXJyYXkiKX1yZXR1cm4gc30scGFyc2VVUklSZWZlcmVuY2U9cz0+e3RyeXtyZXR1cm4gbmV3IFVSTChzKX1jYXRjaHtjb25zdCBvPW5ldyBVUkwocyxMbCksaT1TdHJpbmcocykuc3RhcnRzV2l0aCgiLyIpP28ucGF0aG5hbWU6by5wYXRobmFtZS5zdWJzdHJpbmcoMSk7cmV0dXJue2hhc2g6by5oYXNoLGhvc3Q6IiIsaG9zdG5hbWU6IiIsaHJlZjoiIixvcmlnaW46IiIscGFzc3dvcmQ6IiIscGF0aG5hbWU6aSxwb3J0OiIiLHByb3RvY29sOiIiLHNlYXJjaDpvLnNlYXJjaCxzZWFyY2hQYXJhbXM6by5zZWFyY2hQYXJhbXN9fX07Y2xhc3MgT3BlcmF0aW9uTm90Rm91bmRFcnJvciBleHRlbmRzIEdve31jb25zdCBReD17YnVpbGRSZXF1ZXN0OmV4ZWN1dGVfYnVpbGRSZXF1ZXN0fTtmdW5jdGlvbiBleGVjdXRlX2V4ZWN1dGUoe2h0dHA6cyxmZXRjaDpvLHNwZWM6aSxvcGVyYXRpb25JZDphLHBhdGhOYW1lOnUsbWV0aG9kOl8scGFyYW1ldGVyczp3LHNlY3VyaXRpZXM6eCwuLi5DfSl7Y29uc3Qgaj1zfHxvfHxodHRwX2h0dHA7dSYmXyYmIWEmJihhPWlkRnJvbVBhdGhNZXRob2RMZWdhY3kodSxfKSk7Y29uc3QgTD1ReC5idWlsZFJlcXVlc3Qoe3NwZWM6aSxvcGVyYXRpb25JZDphLHBhcmFtZXRlcnM6dyxzZWN1cml0aWVzOngsaHR0cDpqLC4uLkN9KTtyZXR1cm4gTC5ib2R5JiYoZnUoTC5ib2R5KXx8QXJyYXkuaXNBcnJheShMLmJvZHkpKSYmKEwuYm9keT1KU09OLnN0cmluZ2lmeShMLmJvZHkpKSxqKEwpfWZ1bmN0aW9uIGV4ZWN1dGVfYnVpbGRSZXF1ZXN0KHMpe2NvbnN0e3NwZWM6byxvcGVyYXRpb25JZDppLHJlc3BvbnNlQ29udGVudFR5cGU6YSxzY2hlbWU6dSxyZXF1ZXN0SW50ZXJjZXB0b3I6XyxyZXNwb25zZUludGVyY2VwdG9yOncsY29udGV4dFVybDp4LHVzZXJGZXRjaDpDLHNlcnZlcjpqLHNlcnZlclZhcmlhYmxlczpMLGh0dHA6QixzaWduYWw6JCxzZXJ2ZXJWYXJpYWJsZUVuY29kZXI6Vn09cztsZXR7cGFyYW1ldGVyczpVLHBhcmFtZXRlckJ1aWxkZXJzOnosYmFzZVVSTDpZfT1zO2NvbnN0IFo9aXNPcGVuQVBJMyhvKTt6fHwoej1aP2JlOkJ4KTtsZXQgZWU9e3VybDoiIixjcmVkZW50aWFsczpCJiZCLndpdGhDcmVkZW50aWFscz8iaW5jbHVkZSI6InNhbWUtb3JpZ2luIixoZWFkZXJzOnt9LGNvb2tpZXM6e319OyQmJihlZS5zaWduYWw9JCksXyYmKGVlLnJlcXVlc3RJbnRlcmNlcHRvcj1fKSx3JiYoZWUucmVzcG9uc2VJbnRlcmNlcHRvcj13KSxDJiYoZWUudXNlckZldGNoPUMpO2NvbnN0IGllPWZ1bmN0aW9uIGdldE9wZXJhdGlvblJhdyhzLG8pe3JldHVybiBzJiZzLnBhdGhzP2Z1bmN0aW9uIGZpbmRPcGVyYXRpb24ocyxvKXtyZXR1cm4gZnVuY3Rpb24gZWFjaE9wZXJhdGlvbihzLG8saSl7aWYoIXN8fCJvYmplY3QiIT10eXBlb2Ygc3x8IXMucGF0aHN8fCJvYmplY3QiIT10eXBlb2Ygcy5wYXRocylyZXR1cm4gbnVsbDtjb25zdHtwYXRoczphfT1zO2Zvcihjb25zdCB1IGluIGEpZm9yKGNvbnN0IF8gaW4gYVt1XSl7aWYoIlBBUkFNRVRFUlMiPT09Xy50b1VwcGVyQ2FzZSgpKWNvbnRpbnVlO2NvbnN0IHc9YVt1XVtfXTtpZighd3x8Im9iamVjdCIhPXR5cGVvZiB3KWNvbnRpbnVlO2NvbnN0IHg9e3NwZWM6cyxwYXRoTmFtZTp1LG1ldGhvZDpfLnRvVXBwZXJDYXNlKCksb3BlcmF0aW9uOnd9LEM9byh4KTtpZihpJiZDKXJldHVybiB4fX0ocyxvLCEwKXx8bnVsbH0ocywoKHtwYXRoTmFtZTpzLG1ldGhvZDppLG9wZXJhdGlvbjphfSk9PntpZighYXx8Im9iamVjdCIhPXR5cGVvZiBhKXJldHVybiExO2NvbnN0IHU9YS5vcGVyYXRpb25JZDtyZXR1cm5bb3BJZChhLHMsaSksaWRGcm9tUGF0aE1ldGhvZExlZ2FjeShzLGkpLHVdLnNvbWUoKHM9PnMmJnM9PT1vKSl9KSk6bnVsbH0obyxpKTtpZighaWUpdGhyb3cgbmV3IE9wZXJhdGlvbk5vdEZvdW5kRXJyb3IoYE9wZXJhdGlvbiAke2l9IG5vdCBmb3VuZGApO2NvbnN0e29wZXJhdGlvbjphZT17fSxtZXRob2Q6Y2UscGF0aE5hbWU6bGV9PWllO2lmKFk9bnVsbCE9WT9ZOmZ1bmN0aW9uIGJhc2VVcmwocyl7Y29uc3Qgbz1pc09wZW5BUEkzKHMuc3BlYyk7cmV0dXJuIG8/ZnVuY3Rpb24gb2FzM0Jhc2VVcmwoe3NwZWM6cyxwYXRoTmFtZTpvLG1ldGhvZDppLHNlcnZlcjphLGNvbnRleHRVcmw6dSxzZXJ2ZXJWYXJpYWJsZXM6Xz17fSxzZXJ2ZXJWYXJpYWJsZUVuY29kZXI6d30pe3ZhciB4LEM7bGV0IGosTD1bXSxCPSIiO2NvbnN0ICQ9bnVsbD09c3x8bnVsbD09PSh4PXMucGF0aHMpfHx2b2lkIDA9PT14fHxudWxsPT09KHg9eFtvXSl8fHZvaWQgMD09PXh8fG51bGw9PT0oeD14WyhpfHwiIikudG9Mb3dlckNhc2UoKV0pfHx2b2lkIDA9PT14P3ZvaWQgMDp4LnNlcnZlcnMsVj1udWxsPT1zfHxudWxsPT09KEM9cy5wYXRocyl8fHZvaWQgMD09PUN8fG51bGw9PT0oQz1DW29dKXx8dm9pZCAwPT09Qz92b2lkIDA6Qy5zZXJ2ZXJzLFU9bnVsbD09cz92b2lkIDA6cy5zZXJ2ZXJzO0w9aXNOb25FbXB0eVNlcnZlckxpc3QoJCk/JDppc05vbkVtcHR5U2VydmVyTGlzdChWKT9WOmlzTm9uRW1wdHlTZXJ2ZXJMaXN0KFUpP1U6W0ZsXSxhJiYoaj1MLmZpbmQoKHM9PnMudXJsPT09YSkpLGomJihCPWEpKTtCfHwoW2pdPUwsQj1qLnVybCk7aWYob3BlbmFwaV9zZXJ2ZXJfdXJsX3RlbXBsYXRpbmdfZXNfdGVzdChCLHtzdHJpY3Q6ITB9KSl7Y29uc3Qgcz1PYmplY3QuZW50cmllcyh7Li4uai52YXJpYWJsZXN9KS5yZWR1Y2UoKChzLFtvLGldKT0+KHNbb109aS5kZWZhdWx0LHMpKSx7fSk7Qj1lc19zdWJzdGl0dXRlKEIsey4uLnMsLi4uX30se2VuY29kZXI6ImZ1bmN0aW9uIj09dHlwZW9mIHc/dzp2d30pfXJldHVybiBmdW5jdGlvbiBidWlsZE9hczNVcmxXaXRoQ29udGV4dChzPSIiLG89IiIpe2NvbnN0IGk9cGFyc2VVUklSZWZlcmVuY2UocyYmbz9yZXNvbHZlKG8scyk6cyksYT1wYXJzZVVSSVJlZmVyZW5jZShvKSx1PXN0cmlwTm9uQWxwaGEoaS5wcm90b2NvbCl8fHN0cmlwTm9uQWxwaGEoYS5wcm90b2NvbCksXz1pLmhvc3R8fGEuaG9zdCx3PWkucGF0aG5hbWU7bGV0IHg7eD11JiZfP2Ake3V9Oi8vJHtfK3d9YDp3O3JldHVybiIvIj09PXhbeC5sZW5ndGgtMV0/eC5zbGljZSgwLC0xKTp4fShCLHUpfShzKTpmdW5jdGlvbiBzd2FnZ2VyMkJhc2VVcmwoe3NwZWM6cyxzY2hlbWU6byxjb250ZXh0VXJsOmk9IiJ9KXtjb25zdCBhPXBhcnNlVVJJUmVmZXJlbmNlKGkpLHU9QXJyYXkuaXNBcnJheShzLnNjaGVtZXMpP3Muc2NoZW1lc1swXTpudWxsLF89b3x8dXx8c3RyaXBOb25BbHBoYShhLnByb3RvY29sKXx8Imh0dHAiLHc9cy5ob3N0fHxhLmhvc3R8fCIiLHg9cy5iYXNlUGF0aHx8IiI7bGV0IEM7Qz1fJiZ3P2Ake199Oi8vJHt3K3h9YDp4O3JldHVybiIvIj09PUNbQy5sZW5ndGgtMV0/Qy5zbGljZSgwLC0xKTpDfShzKX0oe3NwZWM6byxzY2hlbWU6dSxjb250ZXh0VXJsOngsc2VydmVyOmosc2VydmVyVmFyaWFibGVzOkwscGF0aE5hbWU6bGUsbWV0aG9kOmNlLHNlcnZlclZhcmlhYmxlRW5jb2RlcjpWfSksZWUudXJsKz1ZLCFpKXJldHVybiBkZWxldGUgZWUuY29va2llcyxlZTtlZS51cmwrPWxlLGVlLm1ldGhvZD1gJHtjZX1gLnRvVXBwZXJDYXNlKCksVT1VfHx7fTtjb25zdCBwZT1vLnBhdGhzW2xlXXx8e307YSYmKGVlLmhlYWRlcnMuYWNjZXB0PWEpO2NvbnN0IGRlPShzPT57Y29uc3Qgbz17fTtzLmZvckVhY2goKHM9PntvW3MuaW5dfHwob1tzLmluXT17fSksb1tzLmluXVtzLm5hbWVdPXN9KSk7Y29uc3QgaT1bXTtyZXR1cm4gT2JqZWN0LmtleXMobykuZm9yRWFjaCgocz0+e09iamVjdC5rZXlzKG9bc10pLmZvckVhY2goKGE9PntpLnB1c2gob1tzXVthXSl9KSl9KSksaX0pKFtdLmNvbmNhdChhcnJheU9yRW1wdHkoYWUucGFyYW1ldGVycykpLmNvbmNhdChhcnJheU9yRW1wdHkocGUucGFyYW1ldGVycykpKTtkZS5mb3JFYWNoKChzPT57Y29uc3QgaT16W3MuaW5dO2xldCBhO2lmKCJib2R5Ij09PXMuaW4mJnMuc2NoZW1hJiZzLnNjaGVtYS5wcm9wZXJ0aWVzJiYoYT1VKSxhPXMmJnMubmFtZSYmVVtzLm5hbWVdLHZvaWQgMD09PWE/YT1zJiZzLm5hbWUmJlVbYCR7cy5pbn0uJHtzLm5hbWV9YF06KChzLG8pPT5vLmZpbHRlcigobz0+by5uYW1lPT09cykpKShzLm5hbWUsZGUpLmxlbmd0aD4xJiZjb25zb2xlLndhcm4oYFBhcmFtZXRlciAnJHtzLm5hbWV9JyBpcyBhbWJpZ3VvdXMgYmVjYXVzZSB0aGUgZGVmaW5lZCBzcGVjIGhhcyBtb3JlIHRoYW4gb25lIHBhcmFtZXRlciB3aXRoIHRoZSBuYW1lOiAnJHtzLm5hbWV9JyBhbmQgdGhlIHBhc3NlZC1pbiBwYXJhbWV0ZXIgdmFsdWVzIGRpZCBub3QgZGVmaW5lIGFuICdpbicgdmFsdWUuYCksbnVsbCE9PWEpe2lmKHZvaWQgMCE9PXMuZGVmYXVsdCYmdm9pZCAwPT09YSYmKGE9cy5kZWZhdWx0KSx2b2lkIDA9PT1hJiZzLnJlcXVpcmVkJiYhcy5hbGxvd0VtcHR5VmFsdWUpdGhyb3cgbmV3IEVycm9yKGBSZXF1aXJlZCBwYXJhbWV0ZXIgJHtzLm5hbWV9IGlzIG5vdCBwcm92aWRlZGApO1omJiJzdHJpbmciPT10eXBlb2YgYSYmKGlkKCJ0eXBlIixzLnNjaGVtYSkmJiJzdHJpbmciPT10eXBlb2Ygcy5zY2hlbWEudHlwZSYmZmluZE9iamVjdE9yQXJyYXlTY2hlbWEocy5zY2hlbWEse3JlY3Vyc2U6ITF9KT9hPXBhcnNlSnNvbk9iamVjdE9yQXJyYXkoe3ZhbHVlOmEsc2lsZW50RmFpbDohMX0pOihpZCgidHlwZSIscy5zY2hlbWEpJiZBcnJheS5pc0FycmF5KHMuc2NoZW1hLnR5cGUpJiZmaW5kT2JqZWN0T3JBcnJheVNjaGVtYShzLnNjaGVtYSx7cmVjdXJzZTohMX0pfHwhaWQoInR5cGUiLHMuc2NoZW1hKSYmZmluZE9iamVjdE9yQXJyYXlTY2hlbWEocy5zY2hlbWEse3JlY3Vyc2U6ITB9KSkmJihhPXBhcnNlSnNvbk9iamVjdE9yQXJyYXkoe3ZhbHVlOmEsc2lsZW50RmFpbDohMH0pKSksaSYmaSh7cmVxOmVlLHBhcmFtZXRlcjpzLHZhbHVlOmEsb3BlcmF0aW9uOmFlLHNwZWM6byxiYXNlVVJMOll9KX19KSk7Y29uc3QgZmU9ey4uLnMsb3BlcmF0aW9uOmFlfTtpZihlZT1aP2J1aWxkUmVxdWVzdChmZSxlZSk6YnVpbGRfcmVxdWVzdF9idWlsZFJlcXVlc3QoZmUsZWUpLGVlLmNvb2tpZXMmJk9iamVjdC5rZXlzKGVlLmNvb2tpZXMpLmxlbmd0aD4wKXtjb25zdCBzPWhlbHBlcnNfY29va2llX3NlcmlhbGl6ZShlZS5jb29raWVzKTtOZChlZS5oZWFkZXJzLkNvb2tpZSk/ZWUuaGVhZGVycy5Db29raWUrPWA7ICR7c31gOmVlLmhlYWRlcnMuQ29va2llPXN9cmV0dXJuIGVlLmNvb2tpZXMmJmRlbGV0ZSBlZS5jb29raWVzLHNlcmlhbGl6ZVJlcXVlc3QoZWUpfWNvbnN0IHN0cmlwTm9uQWxwaGE9cz0+cz9zLnJlcGxhY2UoL1xXL2csIiIpOm51bGw7Y29uc3QgaXNOb25FbXB0eVNlcnZlckxpc3Q9cz0+QXJyYXkuaXNBcnJheShzKSYmcy5sZW5ndGg+MDtjb25zdCBtYWtlUmVzb2x2ZVN1YnRyZWU9cz0+YXN5bmMobyxpLGE9e30pPT4oYXN5bmMocyxvLGk9e30pPT57Y29uc3R7cmV0dXJuRW50aXJlVHJlZTphLGJhc2VEb2M6dSxyZXF1ZXN0SW50ZXJjZXB0b3I6XyxyZXNwb25zZUludGVyY2VwdG9yOncscGFyYW1ldGVyTWFjcm86eCxtb2RlbFByb3BlcnR5TWFjcm86Qyx1c2VDaXJjdWxhclN0cnVjdHVyZXM6aixzdHJhdGVnaWVzOkx9PWksQj17c3BlYzpzLHBhdGhEaXNjcmltaW5hdG9yOm8sYmFzZURvYzp1LHJlcXVlc3RJbnRlcmNlcHRvcjpfLHJlc3BvbnNlSW50ZXJjZXB0b3I6dyxwYXJhbWV0ZXJNYWNybzp4LG1vZGVsUHJvcGVydHlNYWNybzpDLHVzZUNpcmN1bGFyU3RydWN0dXJlczpqLHN0cmF0ZWdpZXM6TH0sJD1MLmZpbmQoKG89Pm8ubWF0Y2gocykpKS5ub3JtYWxpemUocyksVj1hd2FpdCBNeCh7c3BlYzokLC4uLkIsYWxsb3dNZXRhUGF0Y2hlczohMCxza2lwTm9ybWFsaXphdGlvbjohaXNPcGVuQVBJMzEocyl9KTtyZXR1cm4hYSYmQXJyYXkuaXNBcnJheShvKSYmby5sZW5ndGgmJihWLnNwZWM9by5yZWR1Y2UoKChzLG8pPT5udWxsPT1zP3ZvaWQgMDpzW29dKSxWLnNwZWMpfHxudWxsKSxWfSkobyxpLHsuLi5zLC4uLmF9KSxaeD0obWFrZVJlc29sdmVTdWJ0cmVlKHtzdHJhdGVnaWVzOltfdSx2dSxndV19KSwocyxvKT0+KC4uLmkpPT57cyguLi5pKTtjb25zdCBhPW8uZ2V0Q29uZmlncygpLndpdGhDcmVkZW50aWFscztvLmZuLmZldGNoLndpdGhDcmVkZW50aWFscz1hfSk7ZnVuY3Rpb24gc3dhZ2dlcl9jbGllbnQoe2NvbmZpZ3M6cyxnZXRDb25maWdzOm99KXtyZXR1cm57Zm46e2ZldGNoOihpPWh0dHBfaHR0cCxhPXMucHJlRmV0Y2gsdT1zLnBvc3RGZXRjaCx1PXV8fChzPT5zKSxhPWF8fChzPT5zKSxzPT4oInN0cmluZyI9PXR5cGVvZiBzJiYocz17dXJsOnN9KSxzPXNlcmlhbGl6ZVJlcXVlc3Qocykscz1hKHMpLHUoaShzKSkpKSxidWlsZFJlcXVlc3Q6ZXhlY3V0ZV9idWlsZFJlcXVlc3QsZXhlY3V0ZTpleGVjdXRlX2V4ZWN1dGUscmVzb2x2ZTptYWtlUmVzb2x2ZSh7c3RyYXRlZ2llczpbTngsX3UsdnUsZ3VdfSkscmVzb2x2ZVN1YnRyZWU6YXN5bmMocyxpLGE9e30pPT57Y29uc3QgdT1vKCksXz17bW9kZWxQcm9wZXJ0eU1hY3JvOnUubW9kZWxQcm9wZXJ0eU1hY3JvLHBhcmFtZXRlck1hY3JvOnUucGFyYW1ldGVyTWFjcm8scmVxdWVzdEludGVyY2VwdG9yOnUucmVxdWVzdEludGVyY2VwdG9yLHJlc3BvbnNlSW50ZXJjZXB0b3I6dS5yZXNwb25zZUludGVyY2VwdG9yLHN0cmF0ZWdpZXM6W054LF91LHZ1LGd1XX07cmV0dXJuIG1ha2VSZXNvbHZlU3VidHJlZShfKShzLGksYSl9LHNlcmlhbGl6ZVJlczpzZXJpYWxpemVSZXNwb25zZSxvcElkfSxzdGF0ZVBsdWdpbnM6e2NvbmZpZ3M6e3dyYXBBY3Rpb25zOntsb2FkZWQ6Wnh9fX19O3ZhciBpLGEsdX1mdW5jdGlvbiB1dGlsKCl7cmV0dXJue2ZuOntzaGFsbG93RXF1YWxLZXlzLHNhbml0aXplVXJsfX19dmFyIHRrPV9fd2VicGFja19yZXF1aXJlX18oNDA5NjEpLHJrPShfX3dlYnBhY2tfcmVxdWlyZV9fKDc4NDE4KSxSZS52ZXJzaW9uLnN0YXJ0c1dpdGgoIjE5IikpLG5rPVN5bWJvbC5mb3Iocms/InJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50IjoicmVhY3QuZWxlbWVudCIpLHNrPVN5bWJvbC5mb3IoInJlYWN0LnBvcnRhbCIpLG9rPVN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50IiksbGs9U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSx1az1TeW1ib2wuZm9yKCJyZWFjdC5wcm9maWxlciIpLHBrPVN5bWJvbC5mb3IoInJlYWN0LmNvbnN1bWVyIiksZms9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLG1rPVN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIikseWs9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKSx2az1TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZV9saXN0IiksX2s9U3ltYm9sLmZvcigicmVhY3QubWVtbyIpLHdrPVN5bWJvbC5mb3IoInJlYWN0LmxhenkiKSx4az1tayxBaz1faztmdW5jdGlvbiB0eXBlT2Yocyl7aWYoIm9iamVjdCI9PXR5cGVvZiBzJiZudWxsIT09cyl7Y29uc3R7JCR0eXBlb2Y6b309cztzd2l0Y2gobyl7Y2FzZSBuazpzd2l0Y2gocz1zLnR5cGUpe2Nhc2Ugb2s6Y2FzZSB1azpjYXNlIGxrOmNhc2UgeWs6Y2FzZSB2azpyZXR1cm4gcztkZWZhdWx0OnN3aXRjaChzPXMmJnMuJCR0eXBlb2Ype2Nhc2UgZms6Y2FzZSBtazpjYXNlIHdrOmNhc2UgX2s6Y2FzZSBwazpyZXR1cm4gcztkZWZhdWx0OnJldHVybiBvfX1jYXNlIHNrOnJldHVybiBvfX19ZnVuY3Rpb24gcHVyZUZpbmFsUHJvcHNTZWxlY3RvckZhY3RvcnkocyxvLGksYSx7YXJlU3RhdGVzRXF1YWw6dSxhcmVPd25Qcm9wc0VxdWFsOl8sYXJlU3RhdGVQcm9wc0VxdWFsOnd9KXtsZXQgeCxDLGosTCxCLCQ9ITE7ZnVuY3Rpb24gaGFuZGxlU3Vic2VxdWVudENhbGxzKCQsVil7Y29uc3QgVT0hXyhWLEMpLHo9IXUoJCx4LFYsQyk7cmV0dXJuIHg9JCxDPVYsVSYmej9mdW5jdGlvbiBoYW5kbGVOZXdQcm9wc0FuZE5ld1N0YXRlKCl7cmV0dXJuIGo9cyh4LEMpLG8uZGVwZW5kc09uT3duUHJvcHMmJihMPW8oYSxDKSksQj1pKGosTCxDKSxCfSgpOlU/ZnVuY3Rpb24gaGFuZGxlTmV3UHJvcHMoKXtyZXR1cm4gcy5kZXBlbmRzT25Pd25Qcm9wcyYmKGo9cyh4LEMpKSxvLmRlcGVuZHNPbk93blByb3BzJiYoTD1vKGEsQykpLEI9aShqLEwsQyksQn0oKTp6P2Z1bmN0aW9uIGhhbmRsZU5ld1N0YXRlKCl7Y29uc3Qgbz1zKHgsQyksYT0hdyhvLGopO3JldHVybiBqPW8sYSYmKEI9aShqLEwsQykpLEJ9KCk6Qn1yZXR1cm4gZnVuY3Rpb24gcHVyZUZpbmFsUHJvcHNTZWxlY3Rvcih1LF8pe3JldHVybiAkP2hhbmRsZVN1YnNlcXVlbnRDYWxscyh1LF8pOmZ1bmN0aW9uIGhhbmRsZUZpcnN0Q2FsbCh1LF8pe3JldHVybiB4PXUsQz1fLGo9cyh4LEMpLEw9byhhLEMpLEI9aShqLEwsQyksJD0hMCxCfSh1LF8pfX1mdW5jdGlvbiB3cmFwTWFwVG9Qcm9wc0NvbnN0YW50KHMpe3JldHVybiBmdW5jdGlvbiBpbml0Q29uc3RhbnRTZWxlY3RvcihvKXtjb25zdCBpPXMobyk7ZnVuY3Rpb24gY29uc3RhbnRTZWxlY3Rvcigpe3JldHVybiBpfXJldHVybiBjb25zdGFudFNlbGVjdG9yLmRlcGVuZHNPbk93blByb3BzPSExLGNvbnN0YW50U2VsZWN0b3J9fWZ1bmN0aW9uIGdldERlcGVuZHNPbk93blByb3BzKHMpe3JldHVybiBzLmRlcGVuZHNPbk93blByb3BzP0Jvb2xlYW4ocy5kZXBlbmRzT25Pd25Qcm9wcyk6MSE9PXMubGVuZ3RofWZ1bmN0aW9uIHdyYXBNYXBUb1Byb3BzRnVuYyhzLG8pe3JldHVybiBmdW5jdGlvbiBpbml0UHJveHlTZWxlY3RvcihvLHtkaXNwbGF5TmFtZTppfSl7Y29uc3QgYT1mdW5jdGlvbiBtYXBUb1Byb3BzUHJveHkocyxvKXtyZXR1cm4gYS5kZXBlbmRzT25Pd25Qcm9wcz9hLm1hcFRvUHJvcHMocyxvKTphLm1hcFRvUHJvcHMocyx2b2lkIDApfTtyZXR1cm4gYS5kZXBlbmRzT25Pd25Qcm9wcz0hMCxhLm1hcFRvUHJvcHM9ZnVuY3Rpb24gZGV0ZWN0RmFjdG9yeUFuZFZlcmlmeShvLGkpe2EubWFwVG9Qcm9wcz1zLGEuZGVwZW5kc09uT3duUHJvcHM9Z2V0RGVwZW5kc09uT3duUHJvcHMocyk7bGV0IHU9YShvLGkpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB1JiYoYS5tYXBUb1Byb3BzPXUsYS5kZXBlbmRzT25Pd25Qcm9wcz1nZXREZXBlbmRzT25Pd25Qcm9wcyh1KSx1PWEobyxpKSksdX0sYX19ZnVuY3Rpb24gY3JlYXRlSW52YWxpZEFyZ0ZhY3RvcnkocyxvKXtyZXR1cm4oaSxhKT0+e3Rocm93IG5ldyBFcnJvcihgSW52YWxpZCB2YWx1ZSBvZiB0eXBlICR7dHlwZW9mIHN9IGZvciAke299IGFyZ3VtZW50IHdoZW4gY29ubmVjdGluZyBjb21wb25lbnQgJHthLndyYXBwZWRDb21wb25lbnROYW1lfS5gKX19ZnVuY3Rpb24gZGVmYXVsdE1lcmdlUHJvcHMocyxvLGkpe3JldHVybnsuLi5pLC4uLnMsLi4ub319ZnVuY3Rpb24gZGVmYXVsdE5vb3BCYXRjaChzKXtzKCl9dmFyIEJrPXtub3RpZnkoKXt9LGdldDooKT0+W119O2Z1bmN0aW9uIGNyZWF0ZVN1YnNjcmlwdGlvbihzLG8pe2xldCBpLGE9QmssdT0wLF89ITE7ZnVuY3Rpb24gaGFuZGxlQ2hhbmdlV3JhcHBlcigpe3cub25TdGF0ZUNoYW5nZSYmdy5vblN0YXRlQ2hhbmdlKCl9ZnVuY3Rpb24gdHJ5U3Vic2NyaWJlKCl7dSsrLGl8fChpPW8/by5hZGROZXN0ZWRTdWIoaGFuZGxlQ2hhbmdlV3JhcHBlcik6cy5zdWJzY3JpYmUoaGFuZGxlQ2hhbmdlV3JhcHBlciksYT1mdW5jdGlvbiBjcmVhdGVMaXN0ZW5lckNvbGxlY3Rpb24oKXtsZXQgcz1udWxsLG89bnVsbDtyZXR1cm57Y2xlYXIoKXtzPW51bGwsbz1udWxsfSxub3RpZnkoKXtkZWZhdWx0Tm9vcEJhdGNoKCgoKT0+e2xldCBvPXM7Zm9yKDtvOylvLmNhbGxiYWNrKCksbz1vLm5leHR9KSl9LGdldCgpe2NvbnN0IG89W107bGV0IGk9cztmb3IoO2k7KW8ucHVzaChpKSxpPWkubmV4dDtyZXR1cm4gb30sc3Vic2NyaWJlKGkpe2xldCBhPSEwO2NvbnN0IHU9bz17Y2FsbGJhY2s6aSxuZXh0Om51bGwscHJldjpvfTtyZXR1cm4gdS5wcmV2P3UucHJldi5uZXh0PXU6cz11LGZ1bmN0aW9uIHVuc3Vic2NyaWJlKCl7YSYmbnVsbCE9PXMmJihhPSExLHUubmV4dD91Lm5leHQucHJldj11LnByZXY6bz11LnByZXYsdS5wcmV2P3UucHJldi5uZXh0PXUubmV4dDpzPXUubmV4dCl9fX19KCkpfWZ1bmN0aW9uIHRyeVVuc3Vic2NyaWJlKCl7dS0tLGkmJjA9PT11JiYoaSgpLGk9dm9pZCAwLGEuY2xlYXIoKSxhPUJrKX1jb25zdCB3PXthZGROZXN0ZWRTdWI6ZnVuY3Rpb24gYWRkTmVzdGVkU3ViKHMpe3RyeVN1YnNjcmliZSgpO2NvbnN0IG89YS5zdWJzY3JpYmUocyk7bGV0IGk9ITE7cmV0dXJuKCk9PntpfHwoaT0hMCxvKCksdHJ5VW5zdWJzY3JpYmUoKSl9fSxub3RpZnlOZXN0ZWRTdWJzOmZ1bmN0aW9uIG5vdGlmeU5lc3RlZFN1YnMoKXthLm5vdGlmeSgpfSxoYW5kbGVDaGFuZ2VXcmFwcGVyLGlzU3Vic2NyaWJlZDpmdW5jdGlvbiBpc1N1YnNjcmliZWQoKXtyZXR1cm4gX30sdHJ5U3Vic2NyaWJlOmZ1bmN0aW9uIHRyeVN1YnNjcmliZVNlbGYoKXtffHwoXz0hMCx0cnlTdWJzY3JpYmUoKSl9LHRyeVVuc3Vic2NyaWJlOmZ1bmN0aW9uIHRyeVVuc3Vic2NyaWJlU2VsZigpe18mJihfPSExLHRyeVVuc3Vic2NyaWJlKCkpfSxnZXRMaXN0ZW5lcnM6KCk9PmF9O3JldHVybiB3fXZhciBxaz0oKCk9PiEoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3d8fHZvaWQgMD09PXdpbmRvdy5kb2N1bWVudHx8dm9pZCAwPT09d2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpKSgpLFZrPSgoKT0+InVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJiJSZWFjdE5hdGl2ZSI9PT1uYXZpZ2F0b3IucHJvZHVjdCkoKSx6az0oKCk9PnFrfHxWaz9SZS51c2VMYXlvdXRFZmZlY3Q6UmUudXNlRWZmZWN0KSgpO2Z1bmN0aW9uIGlzKHMsbyl7cmV0dXJuIHM9PT1vPzAhPT1zfHwwIT09b3x8MS9zPT0xL286cyE9cyYmbyE9b31mdW5jdGlvbiBzaGFsbG93RXF1YWwocyxvKXtpZihpcyhzLG8pKXJldHVybiEwO2lmKCJvYmplY3QiIT10eXBlb2Ygc3x8bnVsbD09PXN8fCJvYmplY3QiIT10eXBlb2Ygb3x8bnVsbD09PW8pcmV0dXJuITE7Y29uc3QgaT1PYmplY3Qua2V5cyhzKSxhPU9iamVjdC5rZXlzKG8pO2lmKGkubGVuZ3RoIT09YS5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBhPTA7YTxpLmxlbmd0aDthKyspaWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLGlbYV0pfHwhaXMoc1tpW2FdXSxvW2lbYV1dKSlyZXR1cm4hMTtyZXR1cm4hMH12YXIgZU89e2NoaWxkQ29udGV4dFR5cGVzOiEwLGNvbnRleHRUeXBlOiEwLGNvbnRleHRUeXBlczohMCxkZWZhdWx0UHJvcHM6ITAsZGlzcGxheU5hbWU6ITAsZ2V0RGVmYXVsdFByb3BzOiEwLGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcjohMCxnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM6ITAsbWl4aW5zOiEwLHByb3BUeXBlczohMCx0eXBlOiEwfSx0Tz17bmFtZTohMCxsZW5ndGg6ITAscHJvdG90eXBlOiEwLGNhbGxlcjohMCxjYWxsZWU6ITAsYXJndW1lbnRzOiEwLGFyaXR5OiEwfSxyTz17JCR0eXBlb2Y6ITAsY29tcGFyZTohMCxkZWZhdWx0UHJvcHM6ITAsZGlzcGxheU5hbWU6ITAscHJvcFR5cGVzOiEwLHR5cGU6ITB9LG5PPXtbeGtdOnskJHR5cGVvZjohMCxyZW5kZXI6ITAsZGVmYXVsdFByb3BzOiEwLGRpc3BsYXlOYW1lOiEwLHByb3BUeXBlczohMH0sW0FrXTpyT307ZnVuY3Rpb24gZ2V0U3RhdGljcyhzKXtyZXR1cm4gZnVuY3Rpb24gaXNNZW1vKHMpe3JldHVybiB0eXBlT2Yocyk9PT1fa30ocyk/ck86bk9bcy4kJHR5cGVvZl18fGVPfXZhciBzTz1PYmplY3QuZGVmaW5lUHJvcGVydHksb089T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMsaU89T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxhTz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGNPPU9iamVjdC5nZXRQcm90b3R5cGVPZixsTz1PYmplY3QucHJvdG90eXBlO2Z1bmN0aW9uIGhvaXN0Tm9uUmVhY3RTdGF0aWNzKHMsbyl7aWYoInN0cmluZyIhPXR5cGVvZiBvKXtpZihsTyl7Y29uc3QgaT1jTyhvKTtpJiZpIT09bE8mJmhvaXN0Tm9uUmVhY3RTdGF0aWNzKHMsaSl9bGV0IGk9b08obyk7aU8mJihpPWkuY29uY2F0KGlPKG8pKSk7Y29uc3QgYT1nZXRTdGF0aWNzKHMpLHU9Z2V0U3RhdGljcyhvKTtmb3IobGV0IF89MDtfPGkubGVuZ3RoOysrXyl7Y29uc3Qgdz1pW19dO2lmKCEodE9bd118fHUmJnVbd118fGEmJmFbd10pKXtjb25zdCBpPWFPKG8sdyk7dHJ5e3NPKHMsdyxpKX1jYXRjaChzKXt9fX19cmV0dXJuIHN9dmFyIHVPPVN5bWJvbC5mb3IoInJlYWN0LXJlZHV4LWNvbnRleHQiKSxwTz0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM/Z2xvYmFsVGhpczp7fTtmdW5jdGlvbiBnZXRDb250ZXh0KCl7aWYoIVJlLmNyZWF0ZUNvbnRleHQpcmV0dXJue307Y29uc3Qgcz1wT1t1T10/Pz1uZXcgTWFwO2xldCBvPXMuZ2V0KFJlLmNyZWF0ZUNvbnRleHQpO3JldHVybiBvfHwobz1SZS5jcmVhdGVDb250ZXh0KG51bGwpLHMuc2V0KFJlLmNyZWF0ZUNvbnRleHQsbykpLG99dmFyIGhPPWdldENvbnRleHQoKSxkTz1bbnVsbCxudWxsXTtmdW5jdGlvbiBjYXB0dXJlV3JhcHBlclByb3BzKHMsbyxpLGEsdSxfKXtzLmN1cnJlbnQ9YSxpLmN1cnJlbnQ9ITEsdS5jdXJyZW50JiYodS5jdXJyZW50PW51bGwsXygpKX1mdW5jdGlvbiBzdHJpY3RFcXVhbChzLG8pe3JldHVybiBzPT09b312YXIgZk89ZnVuY3Rpb24gY29ubmVjdChzLG8saSx7cHVyZTphLGFyZVN0YXRlc0VxdWFsOnU9c3RyaWN0RXF1YWwsYXJlT3duUHJvcHNFcXVhbDpfPXNoYWxsb3dFcXVhbCxhcmVTdGF0ZVByb3BzRXF1YWw6dz1zaGFsbG93RXF1YWwsYXJlTWVyZ2VkUHJvcHNFcXVhbDp4PXNoYWxsb3dFcXVhbCxmb3J3YXJkUmVmOkM9ITEsY29udGV4dDpqPWhPfT17fSl7Y29uc3QgTD1qLEI9ZnVuY3Rpb24gbWFwU3RhdGVUb1Byb3BzRmFjdG9yeShzKXtyZXR1cm4gcz8iZnVuY3Rpb24iPT10eXBlb2Ygcz93cmFwTWFwVG9Qcm9wc0Z1bmMocyk6Y3JlYXRlSW52YWxpZEFyZ0ZhY3RvcnkocywibWFwU3RhdGVUb1Byb3BzIik6d3JhcE1hcFRvUHJvcHNDb25zdGFudCgoKCk9Pih7fSkpKX0ocyksJD1mdW5jdGlvbiBtYXBEaXNwYXRjaFRvUHJvcHNGYWN0b3J5KHMpe3JldHVybiBzJiYib2JqZWN0Ij09dHlwZW9mIHM/d3JhcE1hcFRvUHJvcHNDb25zdGFudCgobz0+ZnVuY3Rpb24gcmVhY3RfcmVkdXhfYmluZEFjdGlvbkNyZWF0b3JzKHMsbyl7Y29uc3QgaT17fTtmb3IoY29uc3QgYSBpbiBzKXtjb25zdCB1PXNbYV07ImZ1bmN0aW9uIj09dHlwZW9mIHUmJihpW2FdPSguLi5zKT0+byh1KC4uLnMpKSl9cmV0dXJuIGl9KHMsbykpKTpzPyJmdW5jdGlvbiI9PXR5cGVvZiBzP3dyYXBNYXBUb1Byb3BzRnVuYyhzKTpjcmVhdGVJbnZhbGlkQXJnRmFjdG9yeShzLCJtYXBEaXNwYXRjaFRvUHJvcHMiKTp3cmFwTWFwVG9Qcm9wc0NvbnN0YW50KChzPT4oe2Rpc3BhdGNoOnN9KSkpfShvKSxWPWZ1bmN0aW9uIG1lcmdlUHJvcHNGYWN0b3J5KHMpe3JldHVybiBzPyJmdW5jdGlvbiI9PXR5cGVvZiBzP2Z1bmN0aW9uIHdyYXBNZXJnZVByb3BzRnVuYyhzKXtyZXR1cm4gZnVuY3Rpb24gaW5pdE1lcmdlUHJvcHNQcm94eShvLHtkaXNwbGF5TmFtZTppLGFyZU1lcmdlZFByb3BzRXF1YWw6YX0pe2xldCB1LF89ITE7cmV0dXJuIGZ1bmN0aW9uIG1lcmdlUHJvcHNQcm94eShvLGksdyl7Y29uc3QgeD1zKG8saSx3KTtyZXR1cm4gXz9hKHgsdSl8fCh1PXgpOihfPSEwLHU9eCksdX19fShzKTpjcmVhdGVJbnZhbGlkQXJnRmFjdG9yeShzLCJtZXJnZVByb3BzIik6KCk9PmRlZmF1bHRNZXJnZVByb3BzfShpKSxVPUJvb2xlYW4ocyk7cmV0dXJuIHM9Pntjb25zdCBvPXMuZGlzcGxheU5hbWV8fHMubmFtZXx8IkNvbXBvbmVudCIsaT1gQ29ubmVjdCgke299KWAsYT17c2hvdWxkSGFuZGxlU3RhdGVDaGFuZ2VzOlUsZGlzcGxheU5hbWU6aSx3cmFwcGVkQ29tcG9uZW50TmFtZTpvLFdyYXBwZWRDb21wb25lbnQ6cyxpbml0TWFwU3RhdGVUb1Byb3BzOkIsaW5pdE1hcERpc3BhdGNoVG9Qcm9wczokLGluaXRNZXJnZVByb3BzOlYsYXJlU3RhdGVzRXF1YWw6dSxhcmVTdGF0ZVByb3BzRXF1YWw6dyxhcmVPd25Qcm9wc0VxdWFsOl8sYXJlTWVyZ2VkUHJvcHNFcXVhbDp4fTtmdW5jdGlvbiBDb25uZWN0RnVuY3Rpb24obyl7Y29uc3RbaSx1LF9dPVJlLnVzZU1lbW8oKCgpPT57Y29uc3R7cmVhY3RSZWR1eEZvcndhcmRlZFJlZjpzLC4uLml9PW87cmV0dXJuW28uY29udGV4dCxzLGldfSksW29dKSx3PVJlLnVzZU1lbW8oKCgpPT5MKSxbaSxMXSkseD1SZS51c2VDb250ZXh0KHcpLEM9Qm9vbGVhbihvLnN0b3JlKSYmQm9vbGVhbihvLnN0b3JlLmdldFN0YXRlKSYmQm9vbGVhbihvLnN0b3JlLmRpc3BhdGNoKSxqPUJvb2xlYW4oeCkmJkJvb2xlYW4oeC5zdG9yZSk7Y29uc3QgQj1DP28uc3RvcmU6eC5zdG9yZSwkPWo/eC5nZXRTZXJ2ZXJTdGF0ZTpCLmdldFN0YXRlLFY9UmUudXNlTWVtbygoKCk9PmZ1bmN0aW9uIGZpbmFsUHJvcHNTZWxlY3RvckZhY3Rvcnkocyx7aW5pdE1hcFN0YXRlVG9Qcm9wczpvLGluaXRNYXBEaXNwYXRjaFRvUHJvcHM6aSxpbml0TWVyZ2VQcm9wczphLC4uLnV9KXtyZXR1cm4gcHVyZUZpbmFsUHJvcHNTZWxlY3RvckZhY3RvcnkobyhzLHUpLGkocyx1KSxhKHMsdSkscyx1KX0oQi5kaXNwYXRjaCxhKSksW0JdKSxbeixZXT1SZS51c2VNZW1vKCgoKT0+e2lmKCFVKXJldHVybiBkTztjb25zdCBzPWNyZWF0ZVN1YnNjcmlwdGlvbihCLEM/dm9pZCAwOnguc3Vic2NyaXB0aW9uKSxvPXMubm90aWZ5TmVzdGVkU3Vicy5iaW5kKHMpO3JldHVybltzLG9dfSksW0IsQyx4XSksWj1SZS51c2VNZW1vKCgoKT0+Qz94OnsuLi54LHN1YnNjcmlwdGlvbjp6fSksW0MseCx6XSksZWU9UmUudXNlUmVmKHZvaWQgMCksaWU9UmUudXNlUmVmKF8pLGFlPVJlLnVzZVJlZih2b2lkIDApLGNlPVJlLnVzZVJlZighMSksbGU9UmUudXNlUmVmKCExKSxwZT1SZS51c2VSZWYodm9pZCAwKTt6aygoKCk9PihsZS5jdXJyZW50PSEwLCgpPT57bGUuY3VycmVudD0hMX0pKSxbXSk7Y29uc3QgZGU9UmUudXNlTWVtbygoKCk9PigpPT5hZS5jdXJyZW50JiZfPT09aWUuY3VycmVudD9hZS5jdXJyZW50OlYoQi5nZXRTdGF0ZSgpLF8pKSxbQixfXSksZmU9UmUudXNlTWVtbygoKCk9PnM9Pno/ZnVuY3Rpb24gc3Vic2NyaWJlVXBkYXRlcyhzLG8saSxhLHUsXyx3LHgsQyxqLEwpe2lmKCFzKXJldHVybigpPT57fTtsZXQgQj0hMSwkPW51bGw7Y29uc3QgY2hlY2tGb3JVcGRhdGVzPSgpPT57aWYoQnx8IXguY3VycmVudClyZXR1cm47Y29uc3Qgcz1vLmdldFN0YXRlKCk7bGV0IGksVjt0cnl7aT1hKHMsdS5jdXJyZW50KX1jYXRjaChzKXtWPXMsJD1zfVZ8fCgkPW51bGwpLGk9PT1fLmN1cnJlbnQ/dy5jdXJyZW50fHxqKCk6KF8uY3VycmVudD1pLEMuY3VycmVudD1pLHcuY3VycmVudD0hMCxMKCkpfTtyZXR1cm4gaS5vblN0YXRlQ2hhbmdlPWNoZWNrRm9yVXBkYXRlcyxpLnRyeVN1YnNjcmliZSgpLGNoZWNrRm9yVXBkYXRlcygpLCgpPT57aWYoQj0hMCxpLnRyeVVuc3Vic2NyaWJlKCksaS5vblN0YXRlQ2hhbmdlPW51bGwsJCl0aHJvdyAkfX0oVSxCLHosVixpZSxlZSxjZSxsZSxhZSxZLHMpOigpPT57fSksW3pdKTtsZXQgeWU7IWZ1bmN0aW9uIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3RXaXRoQXJncyhzLG8saSl7emsoKCgpPT5zKC4uLm8pKSxpKX0oY2FwdHVyZVdyYXBwZXJQcm9wcyxbaWUsZWUsY2UsXyxhZSxZXSk7dHJ5e3llPVJlLnVzZVN5bmNFeHRlcm5hbFN0b3JlKGZlLGRlLCQ/KCk9PlYoJCgpLF8pOmRlKX1jYXRjaChzKXt0aHJvdyBwZS5jdXJyZW50JiYocy5tZXNzYWdlKz1gXG5UaGUgZXJyb3IgbWF5IGJlIGNvcnJlbGF0ZWQgd2l0aCB0aGlzIHByZXZpb3VzIGVycm9yOlxuJHtwZS5jdXJyZW50LnN0YWNrfVxuXG5gKSxzfXprKCgoKT0+e3BlLmN1cnJlbnQ9dm9pZCAwLGFlLmN1cnJlbnQ9dm9pZCAwLGVlLmN1cnJlbnQ9eWV9KSk7Y29uc3QgYmU9UmUudXNlTWVtbygoKCk9PlJlLmNyZWF0ZUVsZW1lbnQocyx7Li4ueWUscmVmOnV9KSksW3Uscyx5ZV0pO3JldHVybiBSZS51c2VNZW1vKCgoKT0+VT9SZS5jcmVhdGVFbGVtZW50KHcuUHJvdmlkZXIse3ZhbHVlOlp9LGJlKTpiZSksW3csYmUsWl0pfWNvbnN0IGo9UmUubWVtbyhDb25uZWN0RnVuY3Rpb24pO2lmKGouV3JhcHBlZENvbXBvbmVudD1zLGouZGlzcGxheU5hbWU9Q29ubmVjdEZ1bmN0aW9uLmRpc3BsYXlOYW1lPWksQyl7Y29uc3Qgbz1SZS5mb3J3YXJkUmVmKChmdW5jdGlvbiBmb3J3YXJkQ29ubmVjdFJlZihzLG8pe3JldHVybiBSZS5jcmVhdGVFbGVtZW50KGosey4uLnMscmVhY3RSZWR1eEZvcndhcmRlZFJlZjpvfSl9KSk7cmV0dXJuIG8uZGlzcGxheU5hbWU9aSxvLldyYXBwZWRDb21wb25lbnQ9cyxob2lzdE5vblJlYWN0U3RhdGljcyhvLHMpfXJldHVybiBob2lzdE5vblJlYWN0U3RhdGljcyhqLHMpfX07dmFyIG1PPWZ1bmN0aW9uIFByb3ZpZGVyKHMpe2NvbnN0e2NoaWxkcmVuOm8sY29udGV4dDppLHNlcnZlclN0YXRlOmEsc3RvcmU6dX09cyxfPVJlLnVzZU1lbW8oKCgpPT57Y29uc3Qgcz1jcmVhdGVTdWJzY3JpcHRpb24odSk7cmV0dXJue3N0b3JlOnUsc3Vic2NyaXB0aW9uOnMsZ2V0U2VydmVyU3RhdGU6YT8oKT0+YTp2b2lkIDB9fSksW3UsYV0pLHc9UmUudXNlTWVtbygoKCk9PnUuZ2V0U3RhdGUoKSksW3VdKTt6aygoKCk9Pntjb25zdHtzdWJzY3JpcHRpb246c309XztyZXR1cm4gcy5vblN0YXRlQ2hhbmdlPXMubm90aWZ5TmVzdGVkU3VicyxzLnRyeVN1YnNjcmliZSgpLHchPT11LmdldFN0YXRlKCkmJnMubm90aWZ5TmVzdGVkU3VicygpLCgpPT57cy50cnlVbnN1YnNjcmliZSgpLHMub25TdGF0ZUNoYW5nZT12b2lkIDB9fSksW18sd10pO2NvbnN0IHg9aXx8aE87cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoeC5Qcm92aWRlcix7dmFsdWU6X30sbyl9O3ZhciBnTz1fX3dlYnBhY2tfcmVxdWlyZV9fKDgzNDg4KSx5Tz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oZ08pO2NvbnN0IHdpdGhTeXN0ZW09cz0+bz0+e2NvbnN0e2ZuOml9PXMoKTtjbGFzcyBXaXRoU3lzdGVtIGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe3JldHVybiBSZS5jcmVhdGVFbGVtZW50KG8sTW4oKSh7fSxzKCksdGhpcy5wcm9wcyx0aGlzLmNvbnRleHQpKX19cmV0dXJuIFdpdGhTeXN0ZW0uZGlzcGxheU5hbWU9YFdpdGhTeXN0ZW0oJHtpLmdldERpc3BsYXlOYW1lKG8pfSlgLFdpdGhTeXN0ZW19LHdpdGhSb290PShzLG8pPT5pPT57Y29uc3R7Zm46YX09cygpO2NsYXNzIFdpdGhSb290IGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe3JldHVybiBSZS5jcmVhdGVFbGVtZW50KG1PLHtzdG9yZTpvfSxSZS5jcmVhdGVFbGVtZW50KGksTW4oKSh7fSx0aGlzLnByb3BzLHRoaXMuY29udGV4dCkpKX19cmV0dXJuIFdpdGhSb290LmRpc3BsYXlOYW1lPWBXaXRoUm9vdCgke2EuZ2V0RGlzcGxheU5hbWUoaSl9KWAsV2l0aFJvb3R9LHdpdGhDb25uZWN0PShzLG8saSk9PmNvbXBvc2UoaT93aXRoUm9vdChzLGkpOnlPKCksZk8oKChpLGEpPT57Y29uc3QgdT17Li4uYSwuLi5zKCl9LF89by5wcm90b3R5cGU/Lm1hcFN0YXRlVG9Qcm9wc3x8KHM9Pih7c3RhdGU6c30pKTtyZXR1cm4gXyhpLHUpfSkpLHdpdGhTeXN0ZW0ocykpKG8pLGhhbmRsZVByb3BzPShzLG8saSxhKT0+e2Zvcihjb25zdCB1IGluIG8pe2NvbnN0IF89b1t1XTsiZnVuY3Rpb24iPT10eXBlb2YgXyYmXyhpW3VdLGFbdV0scygpKX19LHdpdGhNYXBwZWRDb250YWluZXI9KHMsbyxpKT0+KG8sYSk9Pntjb25zdHtmbjp1fT1zKCksXz1pKG8sInJvb3QiKTtjbGFzcyBXaXRoTWFwcGVkQ29udGFpbmVyIGV4dGVuZHMgUmUuQ29tcG9uZW50e2NvbnN0cnVjdG9yKG8saSl7c3VwZXIobyxpKSxoYW5kbGVQcm9wcyhzLGEsbyx7fSl9VU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobyl7aGFuZGxlUHJvcHMocyxhLG8sdGhpcy5wcm9wcyl9cmVuZGVyKCl7Y29uc3Qgcz1HdCgpKHRoaXMucHJvcHMsYT9PYmplY3Qua2V5cyhhKTpbXSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoXyxzKX19cmV0dXJuIFdpdGhNYXBwZWRDb250YWluZXIuZGlzcGxheU5hbWU9YFdpdGhNYXBwZWRDb250YWluZXIoJHt1LmdldERpc3BsYXlOYW1lKF8pfSlgLFdpdGhNYXBwZWRDb250YWluZXJ9LHJlbmRlcj0ocyxvLGksYSk9PnU9Pntjb25zdCBfPWkocyxvLGEpKCJBcHAiLCJyb290Iikse2NyZWF0ZVJvb3Q6d309dGs7dyh1KS5yZW5kZXIoUmUuY3JlYXRlRWxlbWVudChfLG51bGwpKX0sZ2V0Q29tcG9uZW50PShzLG8saSk9PihhLHUsXz17fSk9PntpZigic3RyaW5nIiE9dHlwZW9mIGEpdGhyb3cgbmV3IFR5cGVFcnJvcigiTmVlZCBhIHN0cmluZywgdG8gZmV0Y2ggYSBjb21wb25lbnQuIFdhcyBnaXZlbiBhICIrdHlwZW9mIGEpO2NvbnN0IHc9aShhKTtyZXR1cm4gdz91PyJyb290Ij09PXU/d2l0aENvbm5lY3Qocyx3LG8oKSk6d2l0aENvbm5lY3Qocyx3KTp3OihfLmZhaWxTaWxlbnRseXx8cygpLmxvZy53YXJuKCJDb3VsZCBub3QgZmluZCBjb21wb25lbnQ6IixhKSxudWxsKX0sZ2V0RGlzcGxheU5hbWU9cz0+cy5kaXNwbGF5TmFtZXx8cy5uYW1lfHwiQ29tcG9uZW50Iix2aWV3PSh7Z2V0Q29tcG9uZW50czpzLGdldFN0b3JlOm8sZ2V0U3lzdGVtOml9KT0+e2NvbnN0IGE9KHU9Z2V0Q29tcG9uZW50KGksbyxzKSxJdCh1LCgoLi4ucyk9PkpTT04uc3RyaW5naWZ5KHMpKSkpO3ZhciB1O2NvbnN0IF89KHM9PnV0aWxzX21lbW9pemVOKHMsKCguLi5zKT0+cykpKSh3aXRoTWFwcGVkQ29udGFpbmVyKGksMCxhKSk7cmV0dXJue3Jvb3RJbmplY3RzOntnZXRDb21wb25lbnQ6YSxtYWtlTWFwcGVkQ29udGFpbmVyOl8scmVuZGVyOnJlbmRlcihpLG8sZ2V0Q29tcG9uZW50LHMpfSxmbjp7Z2V0RGlzcGxheU5hbWV9fX0sdmlld19sZWdhY3k9KHtSZWFjdDpzLGdldFN5c3RlbTpvLGdldFN0b3JlOmksZ2V0Q29tcG9uZW50czphfSk9Pntjb25zdCB1PXt9LF89cGFyc2VJbnQocz8udmVyc2lvbiwxMCk7cmV0dXJuIF8+PTE2JiZfPDE4JiYodS5yZW5kZXI9KChzLG8saSxhKT0+dT0+e2NvbnN0IF89aShzLG8sYSkoIkFwcCIsInJvb3QiKTt0ay5yZW5kZXIoUmUuY3JlYXRlRWxlbWVudChfLG51bGwpLHUpfSkobyxpLGdldENvbXBvbmVudCxhKSkse3Jvb3RJbmplY3RzOnV9fTtmdW5jdGlvbiBkb3dubG9hZFVybFBsdWdpbihzKXtsZXR7Zm46b309cztjb25zdCBpPXtkb3dubG9hZDpzPT4oe2VyckFjdGlvbnM6aSxzcGVjU2VsZWN0b3JzOmEsc3BlY0FjdGlvbnM6dSxnZXRDb25maWdzOl99KT0+e2xldHtmZXRjaDp3fT1vO2NvbnN0IHg9XygpO2Z1bmN0aW9uIG5leHQobyl7aWYobyBpbnN0YW5jZW9mIEVycm9yfHxvLnN0YXR1cz49NDAwKXJldHVybiB1LnVwZGF0ZUxvYWRpbmdTdGF0dXMoImZhaWxlZCIpLGkubmV3VGhyb3duRXJyKE9iamVjdC5hc3NpZ24obmV3IEVycm9yKChvLm1lc3NhZ2V8fG8uc3RhdHVzVGV4dCkrIiAiK3MpLHtzb3VyY2U6ImZldGNoIn0pKSx2b2lkKCFvLnN0YXR1cyYmbyBpbnN0YW5jZW9mIEVycm9yJiZmdW5jdGlvbiBjaGVja1Bvc3NpYmxlRmFpbFJlYXNvbnMoKXt0cnl7bGV0IG87aWYoIlVSTCJpbiBsdD9vPW5ldyBVUkwocyk6KG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLG8uaHJlZj1zKSwiaHR0cHM6IiE9PW8ucHJvdG9jb2wmJiJodHRwczoiPT09bHQubG9jYXRpb24ucHJvdG9jb2wpe2NvbnN0IHM9T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoYFBvc3NpYmxlIG1peGVkLWNvbnRlbnQgaXNzdWU/IFRoZSBwYWdlIHdhcyBsb2FkZWQgb3ZlciBodHRwczovLyBidXQgYSAke28ucHJvdG9jb2x9Ly8gVVJMIHdhcyBzcGVjaWZpZWQuIENoZWNrIHRoYXQgeW91IGFyZSBub3QgYXR0ZW1wdGluZyB0byBsb2FkIG1peGVkIGNvbnRlbnQuYCkse3NvdXJjZToiZmV0Y2gifSk7cmV0dXJuIHZvaWQgaS5uZXdUaHJvd25FcnIocyl9aWYoby5vcmlnaW4hPT1sdC5sb2NhdGlvbi5vcmlnaW4pe2NvbnN0IHM9T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoYFBvc3NpYmxlIGNyb3NzLW9yaWdpbiAoQ09SUykgaXNzdWU/IFRoZSBVUkwgb3JpZ2luICgke28ub3JpZ2lufSkgZG9lcyBub3QgbWF0Y2ggdGhlIHBhZ2UgKCR7bHQubG9jYXRpb24ub3JpZ2lufSkuIENoZWNrIHRoZSBzZXJ2ZXIgcmV0dXJucyB0aGUgY29ycmVjdCAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctKicgaGVhZGVycy5gKSx7c291cmNlOiJmZXRjaCJ9KTtpLm5ld1Rocm93bkVycihzKX19Y2F0Y2gocyl7cmV0dXJufX0oKSk7dS51cGRhdGVMb2FkaW5nU3RhdHVzKCJzdWNjZXNzIiksdS51cGRhdGVTcGVjKG8udGV4dCksYS51cmwoKSE9PXMmJnUudXBkYXRlVXJsKHMpfXM9c3x8YS51cmwoKSx1LnVwZGF0ZUxvYWRpbmdTdGF0dXMoImxvYWRpbmciKSxpLmNsZWFyKHtzb3VyY2U6ImZldGNoIn0pLHcoe3VybDpzLGxvYWRTcGVjOiEwLHJlcXVlc3RJbnRlcmNlcHRvcjp4LnJlcXVlc3RJbnRlcmNlcHRvcnx8KHM9PnMpLHJlc3BvbnNlSW50ZXJjZXB0b3I6eC5yZXNwb25zZUludGVyY2VwdG9yfHwocz0+cyksY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sKi8qIn19KS50aGVuKG5leHQsbmV4dCl9LHVwZGF0ZUxvYWRpbmdTdGF0dXM6cz0+e2xldCBvPVtudWxsLCJsb2FkaW5nIiwiZmFpbGVkIiwic3VjY2VzcyIsImZhaWxlZENvbmZpZyJdO3JldHVybi0xPT09by5pbmRleE9mKHMpJiZjb25zb2xlLmVycm9yKGBFcnJvcjogJHtzfSBpcyBub3Qgb25lIG9mICR7SlNPTi5zdHJpbmdpZnkobyl9YCkse3R5cGU6InNwZWNfdXBkYXRlX2xvYWRpbmdfc3RhdHVzIixwYXlsb2FkOnN9fX07bGV0IGE9e2xvYWRpbmdTdGF0dXM6VnQoKHM9PnN8fCgwLHplLk1hcCkoKSksKHM9PnMuZ2V0KCJsb2FkaW5nU3RhdHVzIil8fG51bGwpKX07cmV0dXJue3N0YXRlUGx1Z2luczp7c3BlYzp7YWN0aW9uczppLHJlZHVjZXJzOntzcGVjX3VwZGF0ZV9sb2FkaW5nX3N0YXR1czoocyxvKT0+InN0cmluZyI9PXR5cGVvZiBvLnBheWxvYWQ/cy5zZXQoImxvYWRpbmdTdGF0dXMiLG8ucGF5bG9hZCk6c30sc2VsZWN0b3JzOmF9fX19ZnVuY3Rpb24gYXJyYXlMaWtlVG9BcnJheV9hcnJheUxpa2VUb0FycmF5KHMsbyl7KG51bGw9PW98fG8+cy5sZW5ndGgpJiYobz1zLmxlbmd0aCk7Zm9yKHZhciBpPTAsYT1BcnJheShvKTtpPG87aSsrKWFbaV09c1tpXTtyZXR1cm4gYX1mdW5jdGlvbiB0b0NvbnN1bWFibGVBcnJheV90b0NvbnN1bWFibGVBcnJheShzKXtyZXR1cm4gZnVuY3Rpb24gYXJyYXlXaXRob3V0SG9sZXNfYXJyYXlXaXRob3V0SG9sZXMocyl7aWYoQXJyYXkuaXNBcnJheShzKSlyZXR1cm4gYXJyYXlMaWtlVG9BcnJheV9hcnJheUxpa2VUb0FycmF5KHMpfShzKXx8ZnVuY3Rpb24gaXRlcmFibGVUb0FycmF5X2l0ZXJhYmxlVG9BcnJheShzKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9c1tTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1zWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20ocyl9KHMpfHxmdW5jdGlvbiB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheV91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShzLG8pe2lmKHMpe2lmKCJzdHJpbmciPT10eXBlb2YgcylyZXR1cm4gYXJyYXlMaWtlVG9BcnJheV9hcnJheUxpa2VUb0FycmF5KHMsbyk7dmFyIGk9e30udG9TdHJpbmcuY2FsbChzKS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PWkmJnMuY29uc3RydWN0b3ImJihpPXMuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1pfHwiU2V0Ij09PWk/QXJyYXkuZnJvbShzKToiQXJndW1lbnRzIj09PWl8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGkpP2FycmF5TGlrZVRvQXJyYXlfYXJyYXlMaWtlVG9BcnJheShzLG8pOnZvaWQgMH19KHMpfHxmdW5jdGlvbiBub25JdGVyYWJsZVNwcmVhZF9ub25JdGVyYWJsZVNwcmVhZCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIHR5cGVvZl90eXBlb2Yocyl7cmV0dXJuIHR5cGVvZl90eXBlb2Y9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24ocyl7cmV0dXJuIHR5cGVvZiBzfTpmdW5jdGlvbihzKXtyZXR1cm4gcyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmcy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmcyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHN9LHR5cGVvZl90eXBlb2Yocyl9ZnVuY3Rpb24gdG9Qcm9wZXJ0eUtleShzKXt2YXIgbz1mdW5jdGlvbiB0b1ByaW1pdGl2ZShzLG8pe2lmKCJvYmplY3QiIT10eXBlb2ZfdHlwZW9mKHMpfHwhcylyZXR1cm4gczt2YXIgaT1zW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09aSl7dmFyIGE9aS5jYWxsKHMsb3x8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mX3R5cGVvZihhKSlyZXR1cm4gYTt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PW8/U3RyaW5nOk51bWJlcikocyl9KHMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2ZfdHlwZW9mKG8pP286bysiIn1mdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eV9kZWZpbmVQcm9wZXJ0eShzLG8saSl7cmV0dXJuKG89dG9Qcm9wZXJ0eUtleShvKSlpbiBzP09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLG8se3ZhbHVlOmksZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpzW29dPWksc31mdW5jdGlvbiBleHRlbmRzX2V4dGVuZHMoKXtyZXR1cm4gZXh0ZW5kc19leHRlbmRzPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24ocyl7Zm9yKHZhciBvPTE7bzxhcmd1bWVudHMubGVuZ3RoO28rKyl7dmFyIGk9YXJndW1lbnRzW29dO2Zvcih2YXIgYSBpbiBpKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChpLGEpJiYoc1thXT1pW2FdKX1yZXR1cm4gc30sZXh0ZW5kc19leHRlbmRzLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBjcmVhdGVfZWxlbWVudF9vd25LZXlzKHMsbyl7dmFyIGk9T2JqZWN0LmtleXMocyk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtvJiYoYT1hLmZpbHRlcigoZnVuY3Rpb24obyl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocyxvKS5lbnVtZXJhYmxlfSkpKSxpLnB1c2guYXBwbHkoaSxhKX1yZXR1cm4gaX1mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKHMpe2Zvcih2YXIgbz0xO288YXJndW1lbnRzLmxlbmd0aDtvKyspe3ZhciBpPW51bGwhPWFyZ3VtZW50c1tvXT9hcmd1bWVudHNbb106e307byUyP2NyZWF0ZV9lbGVtZW50X293bktleXMoT2JqZWN0KGkpLCEwKS5mb3JFYWNoKChmdW5jdGlvbihvKXtkZWZpbmVQcm9wZXJ0eV9kZWZpbmVQcm9wZXJ0eShzLG8saVtvXSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMocyxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhpKSk6Y3JlYXRlX2VsZW1lbnRfb3duS2V5cyhPYmplY3QoaSkpLmZvckVhY2goKGZ1bmN0aW9uKG8pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLG8sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLG8pKX0pKX1yZXR1cm4gc312YXIgdk89e307ZnVuY3Rpb24gY3JlYXRlU3R5bGVPYmplY3Qocyl7dmFyIG89YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LGk9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDA7cmV0dXJuIGZ1bmN0aW9uIGdldENsYXNzTmFtZUNvbWJpbmF0aW9ucyhzKXtpZigwPT09cy5sZW5ndGh8fDE9PT1zLmxlbmd0aClyZXR1cm4gczt2YXIgbz1zLmpvaW4oIi4iKTtyZXR1cm4gdk9bb118fCh2T1tvXT1mdW5jdGlvbiBwb3dlclNldFBlcm11dGF0aW9ucyhzKXt2YXIgbz1zLmxlbmd0aDtyZXR1cm4gMD09PW98fDE9PT1vP3M6Mj09PW8/W3NbMF0sc1sxXSwiIi5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzFdKSwiIi5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzBdKV06Mz09PW8/W3NbMF0sc1sxXSxzWzJdLCIiLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMV0pLCIiLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMl0pLCIiLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMF0pLCIiLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMl0pLCIiLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbMF0pLCIiLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbMV0pLCIiLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1syXSksIiIuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzFdKSwiIi5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMl0pLCIiLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1swXSksIiIuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzFdKSwiIi5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMF0pXTpvPj00P1tzWzBdLHNbMV0sc1syXSxzWzNdLCIiLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMV0pLCIiLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMl0pLCIiLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbM10pLCIiLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMF0pLCIiLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMl0pLCIiLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbM10pLCIiLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbMF0pLCIiLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbMV0pLCIiLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbM10pLCIiLmNvbmNhdChzWzNdLCIuIikuY29uY2F0KHNbMF0pLCIiLmNvbmNhdChzWzNdLCIuIikuY29uY2F0KHNbMV0pLCIiLmNvbmNhdChzWzNdLCIuIikuY29uY2F0KHNbMl0pLCIiLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1syXSksIiIuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzNdKSwiIi5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbMV0pLCIiLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1szXSksIiIuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzFdKSwiIi5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzNdLCIuIikuY29uY2F0KHNbMl0pLCIiLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1syXSksIiIuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzNdKSwiIi5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbMF0pLCIiLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1szXSksIiIuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzBdKSwiIi5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzNdLCIuIikuY29uY2F0KHNbMl0pLCIiLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1sxXSksIiIuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzNdKSwiIi5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMF0pLCIiLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1szXSksIiIuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzBdKSwiIi5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzNdLCIuIikuY29uY2F0KHNbMV0pLCIiLmNvbmNhdChzWzNdLCIuIikuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1sxXSksIiIuY29uY2F0KHNbM10sIi4iKS5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzJdKSwiIi5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMF0pLCIiLmNvbmNhdChzWzNdLCIuIikuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1syXSksIiIuY29uY2F0KHNbM10sIi4iKS5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzBdKSwiIi5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbMV0pLCIiLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzNdKSwiIi5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbM10sIi4iKS5jb25jYXQoc1syXSksIiIuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbM10pLCIiLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzFdKSwiIi5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzNdLCIuIikuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1syXSksIiIuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbMV0pLCIiLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzNdKSwiIi5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbM10sIi4iKS5jb25jYXQoc1syXSksIiIuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbM10pLCIiLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzBdKSwiIi5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzNdLCIuIikuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1syXSksIiIuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbMF0pLCIiLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzNdKSwiIi5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbM10sIi4iKS5jb25jYXQoc1sxXSksIiIuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbM10pLCIiLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzBdKSwiIi5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzNdLCIuIikuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1sxXSksIiIuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMF0pLCIiLmNvbmNhdChzWzNdLCIuIikuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzJdKSwiIi5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1sxXSksIiIuY29uY2F0KHNbM10sIi4iKS5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMl0pLCIiLmNvbmNhdChzWzNdLCIuIikuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzBdKSwiIi5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1sxXSksIiIuY29uY2F0KHNbM10sIi4iKS5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMF0pXTp2b2lkIDB9KHMpKSx2T1tvXX0ocy5maWx0ZXIoKGZ1bmN0aW9uKHMpe3JldHVybiJ0b2tlbiIhPT1zfSkpKS5yZWR1Y2UoKGZ1bmN0aW9uKHMsbyl7cmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSxzKSxpW29dKX0pLG8pfWZ1bmN0aW9uIGNyZWF0ZUNsYXNzTmFtZVN0cmluZyhzKXtyZXR1cm4gcy5qb2luKCIgIil9ZnVuY3Rpb24gY3JlYXRlRWxlbWVudChzKXt2YXIgbz1zLm5vZGUsaT1zLnN0eWxlc2hlZXQsYT1zLnN0eWxlLHU9dm9pZCAwPT09YT97fTphLF89cy51c2VJbmxpbmVTdHlsZXMsdz1zLmtleSx4PW8ucHJvcGVydGllcyxDPW8udHlwZSxqPW8udGFnTmFtZSxMPW8udmFsdWU7aWYoInRleHQiPT09QylyZXR1cm4gTDtpZihqKXt2YXIgQiwkPWZ1bmN0aW9uIGNyZWF0ZUNoaWxkcmVuKHMsbyl7dmFyIGk9MDtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIGkrPTEsYS5tYXAoKGZ1bmN0aW9uKGEsdSl7cmV0dXJuIGNyZWF0ZUVsZW1lbnQoe25vZGU6YSxzdHlsZXNoZWV0OnMsdXNlSW5saW5lU3R5bGVzOm8sa2V5OiJjb2RlLXNlZ21lbnQtIi5jb25jYXQoaSwiLSIpLmNvbmNhdCh1KX0pfSkpfX0oaSxfKTtpZihfKXt2YXIgVj1PYmplY3Qua2V5cyhpKS5yZWR1Y2UoKGZ1bmN0aW9uKHMsbyl7cmV0dXJuIG8uc3BsaXQoIi4iKS5mb3JFYWNoKChmdW5jdGlvbihvKXtzLmluY2x1ZGVzKG8pfHxzLnB1c2gobyl9KSksc30pLFtdKSxVPXguY2xhc3NOYW1lJiZ4LmNsYXNzTmFtZS5pbmNsdWRlcygidG9rZW4iKT9bInRva2VuIl06W10sej14LmNsYXNzTmFtZSYmVS5jb25jYXQoeC5jbGFzc05hbWUuZmlsdGVyKChmdW5jdGlvbihzKXtyZXR1cm4hVi5pbmNsdWRlcyhzKX0pKSk7Qj1fb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30seCkse30se2NsYXNzTmFtZTpjcmVhdGVDbGFzc05hbWVTdHJpbmcoeil8fHZvaWQgMCxzdHlsZTpjcmVhdGVTdHlsZU9iamVjdCh4LmNsYXNzTmFtZSxPYmplY3QuYXNzaWduKHt9LHguc3R5bGUsdSksaSl9KX1lbHNlIEI9X29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LHgpLHt9LHtjbGFzc05hbWU6Y3JlYXRlQ2xhc3NOYW1lU3RyaW5nKHguY2xhc3NOYW1lKX0pO3ZhciBZPSQoby5jaGlsZHJlbik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoaixleHRlbmRzX2V4dGVuZHMoe2tleTp3fSxCKSxZKX19dmFyIGJPPVsibGFuZ3VhZ2UiLCJjaGlsZHJlbiIsInN0eWxlIiwiY3VzdG9tU3R5bGUiLCJjb2RlVGFnUHJvcHMiLCJ1c2VJbmxpbmVTdHlsZXMiLCJzaG93TGluZU51bWJlcnMiLCJzaG93SW5saW5lTGluZU51bWJlcnMiLCJzdGFydGluZ0xpbmVOdW1iZXIiLCJsaW5lTnVtYmVyQ29udGFpbmVyU3R5bGUiLCJsaW5lTnVtYmVyU3R5bGUiLCJ3cmFwTGluZXMiLCJ3cmFwTG9uZ0xpbmVzIiwibGluZVByb3BzIiwicmVuZGVyZXIiLCJQcmVUYWciLCJDb2RlVGFnIiwiY29kZSIsImFzdEdlbmVyYXRvciJdO2Z1bmN0aW9uIGhpZ2hsaWdodF9vd25LZXlzKHMsbyl7dmFyIGk9T2JqZWN0LmtleXMocyk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtvJiYoYT1hLmZpbHRlcigoZnVuY3Rpb24obyl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocyxvKS5lbnVtZXJhYmxlfSkpKSxpLnB1c2guYXBwbHkoaSxhKX1yZXR1cm4gaX1mdW5jdGlvbiBoaWdobGlnaHRfb2JqZWN0U3ByZWFkKHMpe2Zvcih2YXIgbz0xO288YXJndW1lbnRzLmxlbmd0aDtvKyspe3ZhciBpPW51bGwhPWFyZ3VtZW50c1tvXT9hcmd1bWVudHNbb106e307byUyP2hpZ2hsaWdodF9vd25LZXlzKE9iamVjdChpKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24obyl7ZGVmaW5lUHJvcGVydHlfZGVmaW5lUHJvcGVydHkocyxvLGlbb10pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHMsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoaSkpOmhpZ2hsaWdodF9vd25LZXlzKE9iamVjdChpKSkuZm9yRWFjaCgoZnVuY3Rpb24obyl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHMsbyxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksbykpfSkpfXJldHVybiBzfXZhciBfTz0vXG4vZztmdW5jdGlvbiBBbGxMaW5lTnVtYmVycyhzKXt2YXIgbz1zLmNvZGVTdHJpbmcsaT1zLmNvZGVTdHlsZSxhPXMuY29udGFpbmVyU3R5bGUsdT12b2lkIDA9PT1hP3tmbG9hdDoibGVmdCIscGFkZGluZ1JpZ2h0OiIxMHB4In06YSxfPXMubnVtYmVyU3R5bGUsdz12b2lkIDA9PT1fP3t9Ol8seD1zLnN0YXJ0aW5nTGluZU51bWJlcjtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiY29kZSIse3N0eWxlOk9iamVjdC5hc3NpZ24oe30saSx1KX0sZnVuY3Rpb24gZ2V0QWxsTGluZU51bWJlcnMocyl7dmFyIG89cy5saW5lcyxpPXMuc3RhcnRpbmdMaW5lTnVtYmVyLGE9cy5zdHlsZTtyZXR1cm4gby5tYXAoKGZ1bmN0aW9uKHMsbyl7dmFyIHU9bytpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7a2V5OiJsaW5lLSIuY29uY2F0KG8pLGNsYXNzTmFtZToicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyLWxpbmUtbnVtYmVyIixzdHlsZToiZnVuY3Rpb24iPT10eXBlb2YgYT9hKHUpOmF9LCIiLmNvbmNhdCh1LCJcbiIpKX0pKX0oe2xpbmVzOm8ucmVwbGFjZSgvXG4kLywiIikuc3BsaXQoIlxuIiksc3R5bGU6dyxzdGFydGluZ0xpbmVOdW1iZXI6eH0pKX1mdW5jdGlvbiBnZXRJbmxpbmVMaW5lTnVtYmVyKHMsbyl7cmV0dXJue3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InNwYW4iLHByb3BlcnRpZXM6e2tleToibGluZS1udW1iZXItLSIuY29uY2F0KHMpLGNsYXNzTmFtZTpbImNvbW1lbnQiLCJsaW5lbnVtYmVyIiwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyLWxpbmUtbnVtYmVyIl0sc3R5bGU6b30sY2hpbGRyZW46W3t0eXBlOiJ0ZXh0Iix2YWx1ZTpzfV19fWZ1bmN0aW9uIGFzc2VtYmxlTGluZU51bWJlclN0eWxlcyhzLG8saSl7dmFyIGEsdT17ZGlzcGxheToiaW5saW5lLWJsb2NrIixtaW5XaWR0aDooYT1pLCIiLmNvbmNhdChhLnRvU3RyaW5nKCkubGVuZ3RoLCIuMjVlbSIpKSxwYWRkaW5nUmlnaHQ6IjFlbSIsdGV4dEFsaWduOiJyaWdodCIsdXNlclNlbGVjdDoibm9uZSJ9LF89ImZ1bmN0aW9uIj09dHlwZW9mIHM/cyhvKTpzO3JldHVybiBoaWdobGlnaHRfb2JqZWN0U3ByZWFkKGhpZ2hsaWdodF9vYmplY3RTcHJlYWQoe30sdSksXyl9ZnVuY3Rpb24gY3JlYXRlTGluZUVsZW1lbnQocyl7dmFyIG89cy5jaGlsZHJlbixpPXMubGluZU51bWJlcixhPXMubGluZU51bWJlclN0eWxlLHU9cy5sYXJnZXN0TGluZU51bWJlcixfPXMuc2hvd0lubGluZUxpbmVOdW1iZXJzLHc9cy5saW5lUHJvcHMseD12b2lkIDA9PT13P3t9OncsQz1zLmNsYXNzTmFtZSxqPXZvaWQgMD09PUM/W106QyxMPXMuc2hvd0xpbmVOdW1iZXJzLEI9cy53cmFwTG9uZ0xpbmVzLCQ9cy53cmFwTGluZXMsVj12b2lkIDAhPT0kJiYkP2hpZ2hsaWdodF9vYmplY3RTcHJlYWQoe30sImZ1bmN0aW9uIj09dHlwZW9mIHg/eChpKTp4KTp7fTtpZihWLmNsYXNzTmFtZT1WLmNsYXNzTmFtZT9bXS5jb25jYXQodG9Db25zdW1hYmxlQXJyYXlfdG9Db25zdW1hYmxlQXJyYXkoVi5jbGFzc05hbWUudHJpbSgpLnNwbGl0KC9ccysvKSksdG9Db25zdW1hYmxlQXJyYXlfdG9Db25zdW1hYmxlQXJyYXkoaikpOmosaSYmXyl7dmFyIFU9YXNzZW1ibGVMaW5lTnVtYmVyU3R5bGVzKGEsaSx1KTtvLnVuc2hpZnQoZ2V0SW5saW5lTGluZU51bWJlcihpLFUpKX1yZXR1cm4gQiZMJiYoVi5zdHlsZT1oaWdobGlnaHRfb2JqZWN0U3ByZWFkKHtkaXNwbGF5OiJmbGV4In0sVi5zdHlsZSkpLHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzcGFuIixwcm9wZXJ0aWVzOlYsY2hpbGRyZW46b319ZnVuY3Rpb24gZmxhdHRlbkNvZGVUcmVlKHMpe2Zvcih2YXIgbz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W10saT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06W10sYT0wO2E8cy5sZW5ndGg7YSsrKXt2YXIgdT1zW2FdO2lmKCJ0ZXh0Ij09PXUudHlwZSlpLnB1c2goY3JlYXRlTGluZUVsZW1lbnQoe2NoaWxkcmVuOlt1XSxjbGFzc05hbWU6dG9Db25zdW1hYmxlQXJyYXlfdG9Db25zdW1hYmxlQXJyYXkobmV3IFNldChvKSl9KSk7ZWxzZSBpZih1LmNoaWxkcmVuKXt2YXIgXz1vLmNvbmNhdCh1LnByb3BlcnRpZXMuY2xhc3NOYW1lKTtmbGF0dGVuQ29kZVRyZWUodS5jaGlsZHJlbixfKS5mb3JFYWNoKChmdW5jdGlvbihzKXtyZXR1cm4gaS5wdXNoKHMpfSkpfX1yZXR1cm4gaX1mdW5jdGlvbiBwcm9jZXNzTGluZXMocyxvLGksYSx1LF8sdyx4LEMpe3ZhciBqLEw9ZmxhdHRlbkNvZGVUcmVlKHMudmFsdWUpLEI9W10sJD0tMSxWPTA7ZnVuY3Rpb24gY3JlYXRlTGluZShzLF8pe3ZhciBqPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpbXTtyZXR1cm4gb3x8ai5sZW5ndGg+MD9mdW5jdGlvbiBjcmVhdGVXcmFwcGVkTGluZShzLF8pe3JldHVybiBjcmVhdGVMaW5lRWxlbWVudCh7Y2hpbGRyZW46cyxsaW5lTnVtYmVyOl8sbGluZU51bWJlclN0eWxlOngsbGFyZ2VzdExpbmVOdW1iZXI6dyxzaG93SW5saW5lTGluZU51bWJlcnM6dSxsaW5lUHJvcHM6aSxjbGFzc05hbWU6YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOltdLHNob3dMaW5lTnVtYmVyczphLHdyYXBMb25nTGluZXM6Qyx3cmFwTGluZXM6b30pfShzLF8saik6ZnVuY3Rpb24gY3JlYXRlVW53cmFwcGVkTGluZShzLG8pe2lmKGEmJm8mJnUpe3ZhciBpPWFzc2VtYmxlTGluZU51bWJlclN0eWxlcyh4LG8sdyk7cy51bnNoaWZ0KGdldElubGluZUxpbmVOdW1iZXIobyxpKSl9cmV0dXJuIHN9KHMsXyl9Zm9yKHZhciBVPWZ1bmN0aW9uIF9sb29wKCl7dmFyIHM9TFtWXSxvPXMuY2hpbGRyZW5bMF0udmFsdWUsaT1mdW5jdGlvbiBnZXROZXdMaW5lcyhzKXtyZXR1cm4gcy5tYXRjaChfTyl9KG8pO2lmKGkpe3ZhciB1PW8uc3BsaXQoIlxuIik7dS5mb3JFYWNoKChmdW5jdGlvbihvLGkpe3ZhciB3PWEmJkIubGVuZ3RoK18seD17dHlwZToidGV4dCIsdmFsdWU6IiIuY29uY2F0KG8sIlxuIil9O2lmKDA9PT1pKXt2YXIgQz1jcmVhdGVMaW5lKEwuc2xpY2UoJCsxLFYpLmNvbmNhdChjcmVhdGVMaW5lRWxlbWVudCh7Y2hpbGRyZW46W3hdLGNsYXNzTmFtZTpzLnByb3BlcnRpZXMuY2xhc3NOYW1lfSkpLHcpO0IucHVzaChDKX1lbHNlIGlmKGk9PT11Lmxlbmd0aC0xKXt2YXIgaj1MW1YrMV0mJkxbVisxXS5jaGlsZHJlbiYmTFtWKzFdLmNoaWxkcmVuWzBdLFU9e3R5cGU6InRleHQiLHZhbHVlOiIiLmNvbmNhdChvKX07aWYoail7dmFyIHo9Y3JlYXRlTGluZUVsZW1lbnQoe2NoaWxkcmVuOltVXSxjbGFzc05hbWU6cy5wcm9wZXJ0aWVzLmNsYXNzTmFtZX0pO0wuc3BsaWNlKFYrMSwwLHopfWVsc2V7dmFyIFk9Y3JlYXRlTGluZShbVV0sdyxzLnByb3BlcnRpZXMuY2xhc3NOYW1lKTtCLnB1c2goWSl9fWVsc2V7dmFyIFo9Y3JlYXRlTGluZShbeF0sdyxzLnByb3BlcnRpZXMuY2xhc3NOYW1lKTtCLnB1c2goWil9fSkpLCQ9Vn1WKyt9O1Y8TC5sZW5ndGg7KVUoKTtpZigkIT09TC5sZW5ndGgtMSl7dmFyIHo9TC5zbGljZSgkKzEsTC5sZW5ndGgpO2lmKHomJnoubGVuZ3RoKXt2YXIgWT1jcmVhdGVMaW5lKHosYSYmQi5sZW5ndGgrXyk7Qi5wdXNoKFkpfX1yZXR1cm4gbz9COihqPVtdKS5jb25jYXQuYXBwbHkoaixCKX1mdW5jdGlvbiBkZWZhdWx0UmVuZGVyZXIocyl7dmFyIG89cy5yb3dzLGk9cy5zdHlsZXNoZWV0LGE9cy51c2VJbmxpbmVTdHlsZXM7cmV0dXJuIG8ubWFwKChmdW5jdGlvbihzLG8pe3JldHVybiBjcmVhdGVFbGVtZW50KHtub2RlOnMsc3R5bGVzaGVldDppLHVzZUlubGluZVN0eWxlczphLGtleToiY29kZS1zZWdlbWVudCIuY29uY2F0KG8pfSl9KSl9ZnVuY3Rpb24gaXNIaWdobGlnaHRKcyhzKXtyZXR1cm4gcyYmdm9pZCAwIT09cy5oaWdobGlnaHRBdXRvfXZhciBTTz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQzNzY4KSxFTz1mdW5jdGlvbiBoaWdobGlnaHQocyxvKXtyZXR1cm4gZnVuY3Rpb24gU3ludGF4SGlnaGxpZ2h0ZXIoaSl7dmFyIGE9aS5sYW5ndWFnZSx1PWkuY2hpbGRyZW4sXz1pLnN0eWxlLHc9dm9pZCAwPT09Xz9vOl8seD1pLmN1c3RvbVN0eWxlLEM9dm9pZCAwPT09eD97fTp4LGo9aS5jb2RlVGFnUHJvcHMsTD12b2lkIDA9PT1qP3tjbGFzc05hbWU6YT8ibGFuZ3VhZ2UtIi5jb25jYXQoYSk6dm9pZCAwLHN0eWxlOmhpZ2hsaWdodF9vYmplY3RTcHJlYWQoaGlnaGxpZ2h0X29iamVjdFNwcmVhZCh7fSx3Wydjb2RlW2NsYXNzKj0ibGFuZ3VhZ2UtIl0nXSksd1snY29kZVtjbGFzcyo9Imxhbmd1YWdlLScuY29uY2F0KGEsJyJdJyldKX06aixCPWkudXNlSW5saW5lU3R5bGVzLCQ9dm9pZCAwPT09Qnx8QixWPWkuc2hvd0xpbmVOdW1iZXJzLFU9dm9pZCAwIT09ViYmVix6PWkuc2hvd0lubGluZUxpbmVOdW1iZXJzLFk9dm9pZCAwPT09enx8eixaPWkuc3RhcnRpbmdMaW5lTnVtYmVyLGVlPXZvaWQgMD09PVo/MTpaLGllPWkubGluZU51bWJlckNvbnRhaW5lclN0eWxlLGFlPWkubGluZU51bWJlclN0eWxlLGNlPXZvaWQgMD09PWFlP3t9OmFlLGxlPWkud3JhcExpbmVzLHBlPWkud3JhcExvbmdMaW5lcyxkZT12b2lkIDAhPT1wZSYmcGUsZmU9aS5saW5lUHJvcHMseWU9dm9pZCAwPT09ZmU/e306ZmUsYmU9aS5yZW5kZXJlcixfZT1pLlByZVRhZyxTZT12b2lkIDA9PT1fZT8icHJlIjpfZSx3ZT1pLkNvZGVUYWcseGU9dm9pZCAwPT09d2U/ImNvZGUiOndlLFBlPWkuY29kZSxUZT12b2lkIDA9PT1QZT8oQXJyYXkuaXNBcnJheSh1KT91WzBdOnUpfHwiIjpQZSwkZT1pLmFzdEdlbmVyYXRvcixxZT1mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMocyxvKXtpZihudWxsPT1zKXJldHVybnt9O3ZhciBpLGEsdT1mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzLG8pe2lmKG51bGw9PXMpcmV0dXJue307dmFyIGk9e307Zm9yKHZhciBhIGluIHMpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChzLGEpKXtpZigtMSE9PW8uaW5kZXhPZihhKSljb250aW51ZTtpW2FdPXNbYV19cmV0dXJuIGl9KHMsbyk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIF89T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtmb3IoYT0wO2E8Xy5sZW5ndGg7YSsrKWk9X1thXSwtMT09PW8uaW5kZXhPZihpKSYme30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLGkpJiYodVtpXT1zW2ldKX1yZXR1cm4gdX0oaSxiTyk7JGU9JGV8fHM7dmFyIHplPVU/UmUuY3JlYXRlRWxlbWVudChBbGxMaW5lTnVtYmVycyx7Y29udGFpbmVyU3R5bGU6aWUsY29kZVN0eWxlOkwuc3R5bGV8fHt9LG51bWJlclN0eWxlOmNlLHN0YXJ0aW5nTGluZU51bWJlcjplZSxjb2RlU3RyaW5nOlRlfSk6bnVsbCxXZT13LmhsanN8fHdbJ3ByZVtjbGFzcyo9Imxhbmd1YWdlLSJdJ118fHtiYWNrZ3JvdW5kQ29sb3I6IiNmZmYifSxIZT1pc0hpZ2hsaWdodEpzKCRlKT8iaGxqcyI6InByaXNtanMiLFllPSQ/T2JqZWN0LmFzc2lnbih7fSxxZSx7c3R5bGU6T2JqZWN0LmFzc2lnbih7fSxXZSxDKX0pOk9iamVjdC5hc3NpZ24oe30scWUse2NsYXNzTmFtZTpxZS5jbGFzc05hbWU/IiIuY29uY2F0KEhlLCIgIikuY29uY2F0KHFlLmNsYXNzTmFtZSk6SGUsc3R5bGU6T2JqZWN0LmFzc2lnbih7fSxDKX0pO2lmKEwuc3R5bGU9aGlnaGxpZ2h0X29iamVjdFNwcmVhZChkZT97d2hpdGVTcGFjZToicHJlLXdyYXAifTp7d2hpdGVTcGFjZToicHJlIn0sTC5zdHlsZSksISRlKXJldHVybiBSZS5jcmVhdGVFbGVtZW50KFNlLFllLHplLFJlLmNyZWF0ZUVsZW1lbnQoeGUsTCxUZSkpOyh2b2lkIDA9PT1sZSYmYmV8fGRlKSYmKGxlPSEwKSxiZT1iZXx8ZGVmYXVsdFJlbmRlcmVyO3ZhciBYZT1be3R5cGU6InRleHQiLHZhbHVlOlRlfV0sUWU9ZnVuY3Rpb24gZ2V0Q29kZVRyZWUocyl7dmFyIG89cy5hc3RHZW5lcmF0b3IsaT1zLmxhbmd1YWdlLGE9cy5jb2RlLHU9cy5kZWZhdWx0Q29kZVZhbHVlO2lmKGlzSGlnaGxpZ2h0SnMobykpe3ZhciBfPWZ1bmN0aW9uKHMsbyl7cmV0dXJuLTEhPT1zLmxpc3RMYW5ndWFnZXMoKS5pbmRleE9mKG8pfShvLGkpO3JldHVybiJ0ZXh0Ij09PWk/e3ZhbHVlOnUsbGFuZ3VhZ2U6InRleHQifTpfP28uaGlnaGxpZ2h0KGksYSk6by5oaWdobGlnaHRBdXRvKGEpfXRyeXtyZXR1cm4gaSYmInRleHQiIT09aT97dmFsdWU6by5oaWdobGlnaHQoYSxpKX06e3ZhbHVlOnV9fWNhdGNoKHMpe3JldHVybnt2YWx1ZTp1fX19KHthc3RHZW5lcmF0b3I6JGUsbGFuZ3VhZ2U6YSxjb2RlOlRlLGRlZmF1bHRDb2RlVmFsdWU6WGV9KTtudWxsPT09UWUubGFuZ3VhZ2UmJihRZS52YWx1ZT1YZSk7dmFyIGV0PVFlLnZhbHVlLmxlbmd0aDsxPT09ZXQmJiJ0ZXh0Ij09PVFlLnZhbHVlWzBdLnR5cGUmJihldD1RZS52YWx1ZVswXS52YWx1ZS5zcGxpdCgiXG4iKS5sZW5ndGgpO3ZhciB0dD1wcm9jZXNzTGluZXMoUWUsbGUseWUsVSxZLGVlLGV0K2VlLGNlLGRlKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChTZSxZZSxSZS5jcmVhdGVFbGVtZW50KHhlLEwsIVkmJnplLGJlKHtyb3dzOnR0LHN0eWxlc2hlZXQ6dyx1c2VJbmxpbmVTdHlsZXM6JH0pKSl9fShTTyx7fSk7RU8ucmVnaXN0ZXJMYW5ndWFnZT1TTy5yZWdpc3Rlckxhbmd1YWdlO2NvbnN0IHdPPUVPO3ZhciB4Tz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk1MDg5KTtjb25zdCBrTz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oeE8pKCk7dmFyIE9PPV9fd2VicGFja19yZXF1aXJlX18oNjU3NzIpO2NvbnN0IENPPV9fd2VicGFja19yZXF1aXJlX18ubihPTykoKTt2YXIgQU89X193ZWJwYWNrX3JlcXVpcmVfXygxNzI4NSk7Y29uc3Qgak89X193ZWJwYWNrX3JlcXVpcmVfXy5uKEFPKSgpO3ZhciBJTz1fX3dlYnBhY2tfcmVxdWlyZV9fKDM1MzQ0KTtjb25zdCBQTz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oSU8pKCk7dmFyIFRPPV9fd2VicGFja19yZXF1aXJlX18oMTc1MzMpO2NvbnN0IE5PPV9fd2VicGFja19yZXF1aXJlX18ubihUTykoKTt2YXIgTU89X193ZWJwYWNrX3JlcXVpcmVfXyg3MzQwMik7Y29uc3QgUk89X193ZWJwYWNrX3JlcXVpcmVfXy5uKE1PKSgpO3ZhciBETz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI2NTcxKTtjb25zdCBMTz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oRE8pKCksYWZ0ZXJfbG9hZD0oKT0+e3dPLnJlZ2lzdGVyTGFuZ3VhZ2UoImpzb24iLENPKSx3Ty5yZWdpc3Rlckxhbmd1YWdlKCJqcyIsa08pLHdPLnJlZ2lzdGVyTGFuZ3VhZ2UoInhtbCIsak8pLHdPLnJlZ2lzdGVyTGFuZ3VhZ2UoInlhbWwiLE5PKSx3Ty5yZWdpc3Rlckxhbmd1YWdlKCJodHRwIixSTyksd08ucmVnaXN0ZXJMYW5ndWFnZSgiYmFzaCIsUE8pLHdPLnJlZ2lzdGVyTGFuZ3VhZ2UoInBvd2Vyc2hlbGwiLExPKSx3Ty5yZWdpc3Rlckxhbmd1YWdlKCJqYXZhc2NyaXB0IixrTyl9LEZPPXtobGpzOntkaXNwbGF5OiJibG9jayIsb3ZlcmZsb3dYOiJhdXRvIixwYWRkaW5nOiIwLjVlbSIsYmFja2dyb3VuZDoiIzMzMyIsY29sb3I6IndoaXRlIn0sImhsanMtbmFtZSI6e2ZvbnRXZWlnaHQ6ImJvbGQifSwiaGxqcy1zdHJvbmciOntmb250V2VpZ2h0OiJib2xkIn0sImhsanMtY29kZSI6e2ZvbnRTdHlsZToiaXRhbGljIixjb2xvcjoiIzg4OCJ9LCJobGpzLWVtcGhhc2lzIjp7Zm9udFN0eWxlOiJpdGFsaWMifSwiaGxqcy10YWciOntjb2xvcjoiIzYyYzhmMyJ9LCJobGpzLXZhcmlhYmxlIjp7Y29sb3I6IiNhZGU1ZmMifSwiaGxqcy10ZW1wbGF0ZS12YXJpYWJsZSI6e2NvbG9yOiIjYWRlNWZjIn0sImhsanMtc2VsZWN0b3ItaWQiOntjb2xvcjoiI2FkZTVmYyJ9LCJobGpzLXNlbGVjdG9yLWNsYXNzIjp7Y29sb3I6IiNhZGU1ZmMifSwiaGxqcy1zdHJpbmciOntjb2xvcjoiI2EyZmNhMiJ9LCJobGpzLWJ1bGxldCI6e2NvbG9yOiIjZDM2MzYzIn0sImhsanMtdHlwZSI6e2NvbG9yOiIjZmZhIn0sImhsanMtdGl0bGUiOntjb2xvcjoiI2ZmYSJ9LCJobGpzLXNlY3Rpb24iOntjb2xvcjoiI2ZmYSJ9LCJobGpzLWF0dHJpYnV0ZSI6e2NvbG9yOiIjZmZhIn0sImhsanMtcXVvdGUiOntjb2xvcjoiI2ZmYSJ9LCJobGpzLWJ1aWx0X2luIjp7Y29sb3I6IiNmZmEifSwiaGxqcy1idWlsdGluLW5hbWUiOntjb2xvcjoiI2ZmYSJ9LCJobGpzLW51bWJlciI6e2NvbG9yOiIjZDM2MzYzIn0sImhsanMtc3ltYm9sIjp7Y29sb3I6IiNkMzYzNjMifSwiaGxqcy1rZXl3b3JkIjp7Y29sb3I6IiNmY2MyOGMifSwiaGxqcy1zZWxlY3Rvci10YWciOntjb2xvcjoiI2ZjYzI4YyJ9LCJobGpzLWxpdGVyYWwiOntjb2xvcjoiI2ZjYzI4YyJ9LCJobGpzLWNvbW1lbnQiOntjb2xvcjoiIzg4OCJ9LCJobGpzLWRlbGV0aW9uIjp7Y29sb3I6IiMzMzMiLGJhY2tncm91bmRDb2xvcjoiI2ZjOWI5YiJ9LCJobGpzLXJlZ2V4cCI6e2NvbG9yOiIjYzZiNGYwIn0sImhsanMtbGluayI6e2NvbG9yOiIjYzZiNGYwIn0sImhsanMtbWV0YSI6e2NvbG9yOiIjZmM5YjliIn0sImhsanMtYWRkaXRpb24iOntiYWNrZ3JvdW5kQ29sb3I6IiNhMmZjYTIiLGNvbG9yOiIjMzMzIn19LEJPPXthZ2F0ZTpGTyxhcnRhOntobGpzOntkaXNwbGF5OiJibG9jayIsb3ZlcmZsb3dYOiJhdXRvIixwYWRkaW5nOiIwLjVlbSIsYmFja2dyb3VuZDoiIzIyMiIsY29sb3I6IiNhYWEifSwiaGxqcy1zdWJzdCI6e2NvbG9yOiIjYWFhIn0sImhsanMtc2VjdGlvbiI6e2NvbG9yOiIjZmZmIixmb250V2VpZ2h0OiJib2xkIn0sImhsanMtY29tbWVudCI6e2NvbG9yOiIjNDQ0In0sImhsanMtcXVvdGUiOntjb2xvcjoiIzQ0NCJ9LCJobGpzLW1ldGEiOntjb2xvcjoiIzQ0NCJ9LCJobGpzLXN0cmluZyI6e2NvbG9yOiIjZmZjYzMzIn0sImhsanMtc3ltYm9sIjp7Y29sb3I6IiNmZmNjMzMifSwiaGxqcy1idWxsZXQiOntjb2xvcjoiI2ZmY2MzMyJ9LCJobGpzLXJlZ2V4cCI6e2NvbG9yOiIjZmZjYzMzIn0sImhsanMtbnVtYmVyIjp7Y29sb3I6IiMwMGNjNjYifSwiaGxqcy1hZGRpdGlvbiI6e2NvbG9yOiIjMDBjYzY2In0sImhsanMtYnVpbHRfaW4iOntjb2xvcjoiIzMyYWFlZSJ9LCJobGpzLWJ1aWx0aW4tbmFtZSI6e2NvbG9yOiIjMzJhYWVlIn0sImhsanMtbGl0ZXJhbCI6e2NvbG9yOiIjMzJhYWVlIn0sImhsanMtdHlwZSI6e2NvbG9yOiIjMzJhYWVlIn0sImhsanMtdGVtcGxhdGUtdmFyaWFibGUiOntjb2xvcjoiIzMyYWFlZSJ9LCJobGpzLWF0dHJpYnV0ZSI6e2NvbG9yOiIjMzJhYWVlIn0sImhsanMtbGluayI6e2NvbG9yOiIjMzJhYWVlIn0sImhsanMta2V5d29yZCI6e2NvbG9yOiIjNjY0NGFhIn0sImhsanMtc2VsZWN0b3ItdGFnIjp7Y29sb3I6IiM2NjQ0YWEifSwiaGxqcy1uYW1lIjp7Y29sb3I6IiM2NjQ0YWEifSwiaGxqcy1zZWxlY3Rvci1pZCI6e2NvbG9yOiIjNjY0NGFhIn0sImhsanMtc2VsZWN0b3ItY2xhc3MiOntjb2xvcjoiIzY2NDRhYSJ9LCJobGpzLXRpdGxlIjp7Y29sb3I6IiNiYjExNjYifSwiaGxqcy12YXJpYWJsZSI6e2NvbG9yOiIjYmIxMTY2In0sImhsanMtZGVsZXRpb24iOntjb2xvcjoiI2JiMTE2NiJ9LCJobGpzLXRlbXBsYXRlLXRhZyI6e2NvbG9yOiIjYmIxMTY2In0sImhsanMtZG9jdGFnIjp7Zm9udFdlaWdodDoiYm9sZCJ9LCJobGpzLXN0cm9uZyI6e2ZvbnRXZWlnaHQ6ImJvbGQifSwiaGxqcy1lbXBoYXNpcyI6e2ZvbnRTdHlsZToiaXRhbGljIn19LG1vbm9rYWk6e2hsanM6e2Rpc3BsYXk6ImJsb2NrIixvdmVyZmxvd1g6ImF1dG8iLHBhZGRpbmc6IjAuNWVtIixiYWNrZ3JvdW5kOiIjMjcyODIyIixjb2xvcjoiI2RkZCJ9LCJobGpzLXRhZyI6e2NvbG9yOiIjZjkyNjcyIn0sImhsanMta2V5d29yZCI6e2NvbG9yOiIjZjkyNjcyIixmb250V2VpZ2h0OiJib2xkIn0sImhsanMtc2VsZWN0b3ItdGFnIjp7Y29sb3I6IiNmOTI2NzIiLGZvbnRXZWlnaHQ6ImJvbGQifSwiaGxqcy1saXRlcmFsIjp7Y29sb3I6IiNmOTI2NzIiLGZvbnRXZWlnaHQ6ImJvbGQifSwiaGxqcy1zdHJvbmciOntjb2xvcjoiI2Y5MjY3MiJ9LCJobGpzLW5hbWUiOntjb2xvcjoiI2Y5MjY3MiJ9LCJobGpzLWNvZGUiOntjb2xvcjoiIzY2ZDllZiJ9LCJobGpzLWNsYXNzIC5obGpzLXRpdGxlIjp7Y29sb3I6IndoaXRlIn0sImhsanMtYXR0cmlidXRlIjp7Y29sb3I6IiNiZjc5ZGIifSwiaGxqcy1zeW1ib2wiOntjb2xvcjoiI2JmNzlkYiJ9LCJobGpzLXJlZ2V4cCI6e2NvbG9yOiIjYmY3OWRiIn0sImhsanMtbGluayI6e2NvbG9yOiIjYmY3OWRiIn0sImhsanMtc3RyaW5nIjp7Y29sb3I6IiNhNmUyMmUifSwiaGxqcy1idWxsZXQiOntjb2xvcjoiI2E2ZTIyZSJ9LCJobGpzLXN1YnN0Ijp7Y29sb3I6IiNhNmUyMmUifSwiaGxqcy10aXRsZSI6e2NvbG9yOiIjYTZlMjJlIixmb250V2VpZ2h0OiJib2xkIn0sImhsanMtc2VjdGlvbiI6e2NvbG9yOiIjYTZlMjJlIixmb250V2VpZ2h0OiJib2xkIn0sImhsanMtZW1waGFzaXMiOntjb2xvcjoiI2E2ZTIyZSJ9LCJobGpzLXR5cGUiOntjb2xvcjoiI2E2ZTIyZSIsZm9udFdlaWdodDoiYm9sZCJ9LCJobGpzLWJ1aWx0X2luIjp7Y29sb3I6IiNhNmUyMmUifSwiaGxqcy1idWlsdGluLW5hbWUiOntjb2xvcjoiI2E2ZTIyZSJ9LCJobGpzLXNlbGVjdG9yLWF0dHIiOntjb2xvcjoiI2E2ZTIyZSJ9LCJobGpzLXNlbGVjdG9yLXBzZXVkbyI6e2NvbG9yOiIjYTZlMjJlIn0sImhsanMtYWRkaXRpb24iOntjb2xvcjoiI2E2ZTIyZSJ9LCJobGpzLXZhcmlhYmxlIjp7Y29sb3I6IiNhNmUyMmUifSwiaGxqcy10ZW1wbGF0ZS10YWciOntjb2xvcjoiI2E2ZTIyZSJ9LCJobGpzLXRlbXBsYXRlLXZhcmlhYmxlIjp7Y29sb3I6IiNhNmUyMmUifSwiaGxqcy1jb21tZW50Ijp7Y29sb3I6IiM3NTcxNWUifSwiaGxqcy1xdW90ZSI6e2NvbG9yOiIjNzU3MTVlIn0sImhsanMtZGVsZXRpb24iOntjb2xvcjoiIzc1NzE1ZSJ9LCJobGpzLW1ldGEiOntjb2xvcjoiIzc1NzE1ZSJ9LCJobGpzLWRvY3RhZyI6e2ZvbnRXZWlnaHQ6ImJvbGQifSwiaGxqcy1zZWxlY3Rvci1pZCI6e2ZvbnRXZWlnaHQ6ImJvbGQifX0sbm9yZDp7aGxqczp7ZGlzcGxheToiYmxvY2siLG92ZXJmbG93WDoiYXV0byIscGFkZGluZzoiMC41ZW0iLGJhY2tncm91bmQ6IiMyRTM0NDAiLGNvbG9yOiIjRDhERUU5In0sImhsanMtc3Vic3QiOntjb2xvcjoiI0Q4REVFOSJ9LCJobGpzLXNlbGVjdG9yLXRhZyI6e2NvbG9yOiIjODFBMUMxIn0sImhsanMtc2VsZWN0b3ItaWQiOntjb2xvcjoiIzhGQkNCQiIsZm9udFdlaWdodDoiYm9sZCJ9LCJobGpzLXNlbGVjdG9yLWNsYXNzIjp7Y29sb3I6IiM4RkJDQkIifSwiaGxqcy1zZWxlY3Rvci1hdHRyIjp7Y29sb3I6IiM4RkJDQkIifSwiaGxqcy1zZWxlY3Rvci1wc2V1ZG8iOntjb2xvcjoiIzg4QzBEMCJ9LCJobGpzLWFkZGl0aW9uIjp7YmFja2dyb3VuZENvbG9yOiJyZ2JhKDE2MywgMTkwLCAxNDAsIDAuNSkifSwiaGxqcy1kZWxldGlvbiI6e2JhY2tncm91bmRDb2xvcjoicmdiYSgxOTEsIDk3LCAxMDYsIDAuNSkifSwiaGxqcy1idWlsdF9pbiI6e2NvbG9yOiIjOEZCQ0JCIn0sImhsanMtdHlwZSI6e2NvbG9yOiIjOEZCQ0JCIn0sImhsanMtY2xhc3MiOntjb2xvcjoiIzhGQkNCQiJ9LCJobGpzLWZ1bmN0aW9uIjp7Y29sb3I6IiM4OEMwRDAifSwiaGxqcy1mdW5jdGlvbiA+IC5obGpzLXRpdGxlIjp7Y29sb3I6IiM4OEMwRDAifSwiaGxqcy1rZXl3b3JkIjp7Y29sb3I6IiM4MUExQzEifSwiaGxqcy1saXRlcmFsIjp7Y29sb3I6IiM4MUExQzEifSwiaGxqcy1zeW1ib2wiOntjb2xvcjoiIzgxQTFDMSJ9LCJobGpzLW51bWJlciI6e2NvbG9yOiIjQjQ4RUFEIn0sImhsanMtcmVnZXhwIjp7Y29sb3I6IiNFQkNCOEIifSwiaGxqcy1zdHJpbmciOntjb2xvcjoiI0EzQkU4QyJ9LCJobGpzLXRpdGxlIjp7Y29sb3I6IiM4RkJDQkIifSwiaGxqcy1wYXJhbXMiOntjb2xvcjoiI0Q4REVFOSJ9LCJobGpzLWJ1bGxldCI6e2NvbG9yOiIjODFBMUMxIn0sImhsanMtY29kZSI6e2NvbG9yOiIjOEZCQ0JCIn0sImhsanMtZW1waGFzaXMiOntmb250U3R5bGU6Iml0YWxpYyJ9LCJobGpzLWZvcm11bGEiOntjb2xvcjoiIzhGQkNCQiJ9LCJobGpzLXN0cm9uZyI6e2ZvbnRXZWlnaHQ6ImJvbGQifSwiaGxqcy1saW5rOmhvdmVyIjp7dGV4dERlY29yYXRpb246InVuZGVybGluZSJ9LCJobGpzLXF1b3RlIjp7Y29sb3I6IiM0QzU2NkEifSwiaGxqcy1jb21tZW50Ijp7Y29sb3I6IiM0QzU2NkEifSwiaGxqcy1kb2N0YWciOntjb2xvcjoiIzhGQkNCQiJ9LCJobGpzLW1ldGEiOntjb2xvcjoiIzVFODFBQyJ9LCJobGpzLW1ldGEta2V5d29yZCI6e2NvbG9yOiIjNUU4MUFDIn0sImhsanMtbWV0YS1zdHJpbmciOntjb2xvcjoiI0EzQkU4QyJ9LCJobGpzLWF0dHIiOntjb2xvcjoiIzhGQkNCQiJ9LCJobGpzLWF0dHJpYnV0ZSI6e2NvbG9yOiIjRDhERUU5In0sImhsanMtYnVpbHRpbi1uYW1lIjp7Y29sb3I6IiM4MUExQzEifSwiaGxqcy1uYW1lIjp7Y29sb3I6IiM4MUExQzEifSwiaGxqcy1zZWN0aW9uIjp7Y29sb3I6IiM4OEMwRDAifSwiaGxqcy10YWciOntjb2xvcjoiIzgxQTFDMSJ9LCJobGpzLXZhcmlhYmxlIjp7Y29sb3I6IiNEOERFRTkifSwiaGxqcy10ZW1wbGF0ZS12YXJpYWJsZSI6e2NvbG9yOiIjRDhERUU5In0sImhsanMtdGVtcGxhdGUtdGFnIjp7Y29sb3I6IiM1RTgxQUMifSwiYWJuZiAuaGxqcy1hdHRyaWJ1dGUiOntjb2xvcjoiIzg4QzBEMCJ9LCJhYm5mIC5obGpzLXN5bWJvbCI6e2NvbG9yOiIjRUJDQjhCIn0sImFwYWNoZSAuaGxqcy1hdHRyaWJ1dGUiOntjb2xvcjoiIzg4QzBEMCJ9LCJhcGFjaGUgLmhsanMtc2VjdGlvbiI6e2NvbG9yOiIjODFBMUMxIn0sImFyZHVpbm8gLmhsanMtYnVpbHRfaW4iOntjb2xvcjoiIzg4QzBEMCJ9LCJhc3BlY3RqIC5obGpzLW1ldGEiOntjb2xvcjoiI0QwODc3MCJ9LCJhc3BlY3RqID4gLmhsanMtdGl0bGUiOntjb2xvcjoiIzg4QzBEMCJ9LCJibmYgLmhsanMtYXR0cmlidXRlIjp7Y29sb3I6IiM4RkJDQkIifSwiY2xvanVyZSAuaGxqcy1uYW1lIjp7Y29sb3I6IiM4OEMwRDAifSwiY2xvanVyZSAuaGxqcy1zeW1ib2wiOntjb2xvcjoiI0VCQ0I4QiJ9LCJjb3EgLmhsanMtYnVpbHRfaW4iOntjb2xvcjoiIzg4QzBEMCJ9LCJjcHAgLmhsanMtbWV0YS1zdHJpbmciOntjb2xvcjoiIzhGQkNCQiJ9LCJjc3MgLmhsanMtYnVpbHRfaW4iOntjb2xvcjoiIzg4QzBEMCJ9LCJjc3MgLmhsanMta2V5d29yZCI6e2NvbG9yOiIjRDA4NzcwIn0sImRpZmYgLmhsanMtbWV0YSI6e2NvbG9yOiIjOEZCQ0JCIn0sImVibmYgLmhsanMtYXR0cmlidXRlIjp7Y29sb3I6IiM4RkJDQkIifSwiZ2xzbCAuaGxqcy1idWlsdF9pbiI6e2NvbG9yOiIjODhDMEQwIn0sImdyb292eSAuaGxqcy1tZXRhOm5vdCg6Zmlyc3QtY2hpbGQpIjp7Y29sb3I6IiNEMDg3NzAifSwiaGF4ZSAuaGxqcy1tZXRhIjp7Y29sb3I6IiNEMDg3NzAifSwiamF2YSAuaGxqcy1tZXRhIjp7Y29sb3I6IiNEMDg3NzAifSwibGRpZiAuaGxqcy1hdHRyaWJ1dGUiOntjb2xvcjoiIzhGQkNCQiJ9LCJsaXNwIC5obGpzLW5hbWUiOntjb2xvcjoiIzg4QzBEMCJ9LCJsdWEgLmhsanMtYnVpbHRfaW4iOntjb2xvcjoiIzg4QzBEMCJ9LCJtb29uc2NyaXB0IC5obGpzLWJ1aWx0X2luIjp7Y29sb3I6IiM4OEMwRDAifSwibmdpbnggLmhsanMtYXR0cmlidXRlIjp7Y29sb3I6IiM4OEMwRDAifSwibmdpbnggLmhsanMtc2VjdGlvbiI6e2NvbG9yOiIjNUU4MUFDIn0sInBmIC5obGpzLWJ1aWx0X2luIjp7Y29sb3I6IiM4OEMwRDAifSwicHJvY2Vzc2luZyAuaGxqcy1idWlsdF9pbiI6e2NvbG9yOiIjODhDMEQwIn0sInNjc3MgLmhsanMta2V5d29yZCI6e2NvbG9yOiIjODFBMUMxIn0sInN0eWx1cyAuaGxqcy1rZXl3b3JkIjp7Y29sb3I6IiM4MUExQzEifSwic3dpZnQgLmhsanMtbWV0YSI6e2NvbG9yOiIjRDA4NzcwIn0sInZpbSAuaGxqcy1idWlsdF9pbiI6e2NvbG9yOiIjODhDMEQwIixmb250U3R5bGU6Iml0YWxpYyJ9LCJ5YW1sIC5obGpzLW1ldGEiOntjb2xvcjoiI0QwODc3MCJ9fSxvYnNpZGlhbjp7aGxqczp7ZGlzcGxheToiYmxvY2siLG92ZXJmbG93WDoiYXV0byIscGFkZGluZzoiMC41ZW0iLGJhY2tncm91bmQ6IiMyODJiMmUiLGNvbG9yOiIjZTBlMmU0In0sImhsanMta2V5d29yZCI6e2NvbG9yOiIjOTNjNzYzIixmb250V2VpZ2h0OiJib2xkIn0sImhsanMtc2VsZWN0b3ItdGFnIjp7Y29sb3I6IiM5M2M3NjMiLGZvbnRXZWlnaHQ6ImJvbGQifSwiaGxqcy1saXRlcmFsIjp7Y29sb3I6IiM5M2M3NjMiLGZvbnRXZWlnaHQ6ImJvbGQifSwiaGxqcy1zZWxlY3Rvci1pZCI6e2NvbG9yOiIjOTNjNzYzIn0sImhsanMtbnVtYmVyIjp7Y29sb3I6IiNmZmNkMjIifSwiaGxqcy1hdHRyaWJ1dGUiOntjb2xvcjoiIzY2OGJiMCJ9LCJobGpzLWNvZGUiOntjb2xvcjoid2hpdGUifSwiaGxqcy1jbGFzcyAuaGxqcy10aXRsZSI6e2NvbG9yOiJ3aGl0ZSJ9LCJobGpzLXNlY3Rpb24iOntjb2xvcjoid2hpdGUiLGZvbnRXZWlnaHQ6ImJvbGQifSwiaGxqcy1yZWdleHAiOntjb2xvcjoiI2QzOTc0NSJ9LCJobGpzLWxpbmsiOntjb2xvcjoiI2QzOTc0NSJ9LCJobGpzLW1ldGEiOntjb2xvcjoiIzU1NzE4MiJ9LCJobGpzLXRhZyI6e2NvbG9yOiIjOGNiYmFkIn0sImhsanMtbmFtZSI6e2NvbG9yOiIjOGNiYmFkIixmb250V2VpZ2h0OiJib2xkIn0sImhsanMtYnVsbGV0Ijp7Y29sb3I6IiM4Y2JiYWQifSwiaGxqcy1zdWJzdCI6e2NvbG9yOiIjOGNiYmFkIn0sImhsanMtZW1waGFzaXMiOntjb2xvcjoiIzhjYmJhZCJ9LCJobGpzLXR5cGUiOntjb2xvcjoiIzhjYmJhZCIsZm9udFdlaWdodDoiYm9sZCJ9LCJobGpzLWJ1aWx0X2luIjp7Y29sb3I6IiM4Y2JiYWQifSwiaGxqcy1zZWxlY3Rvci1hdHRyIjp7Y29sb3I6IiM4Y2JiYWQifSwiaGxqcy1zZWxlY3Rvci1wc2V1ZG8iOntjb2xvcjoiIzhjYmJhZCJ9LCJobGpzLWFkZGl0aW9uIjp7Y29sb3I6IiM4Y2JiYWQifSwiaGxqcy12YXJpYWJsZSI6e2NvbG9yOiIjOGNiYmFkIn0sImhsanMtdGVtcGxhdGUtdGFnIjp7Y29sb3I6IiM4Y2JiYWQifSwiaGxqcy10ZW1wbGF0ZS12YXJpYWJsZSI6e2NvbG9yOiIjOGNiYmFkIn0sImhsanMtc3RyaW5nIjp7Y29sb3I6IiNlYzc2MDAifSwiaGxqcy1zeW1ib2wiOntjb2xvcjoiI2VjNzYwMCJ9LCJobGpzLWNvbW1lbnQiOntjb2xvcjoiIzgxOGU5NiJ9LCJobGpzLXF1b3RlIjp7Y29sb3I6IiM4MThlOTYifSwiaGxqcy1kZWxldGlvbiI6e2NvbG9yOiIjODE4ZTk2In0sImhsanMtc2VsZWN0b3ItY2xhc3MiOntjb2xvcjoiI0EwODJCRCJ9LCJobGpzLWRvY3RhZyI6e2ZvbnRXZWlnaHQ6ImJvbGQifSwiaGxqcy10aXRsZSI6e2ZvbnRXZWlnaHQ6ImJvbGQifSwiaGxqcy1zdHJvbmciOntmb250V2VpZ2h0OiJib2xkIn19LCJ0b21vcnJvdy1uaWdodCI6eyJobGpzLWNvbW1lbnQiOntjb2xvcjoiIzk2OTg5NiJ9LCJobGpzLXF1b3RlIjp7Y29sb3I6IiM5Njk4OTYifSwiaGxqcy12YXJpYWJsZSI6e2NvbG9yOiIjY2M2NjY2In0sImhsanMtdGVtcGxhdGUtdmFyaWFibGUiOntjb2xvcjoiI2NjNjY2NiJ9LCJobGpzLXRhZyI6e2NvbG9yOiIjY2M2NjY2In0sImhsanMtbmFtZSI6e2NvbG9yOiIjY2M2NjY2In0sImhsanMtc2VsZWN0b3ItaWQiOntjb2xvcjoiI2NjNjY2NiJ9LCJobGpzLXNlbGVjdG9yLWNsYXNzIjp7Y29sb3I6IiNjYzY2NjYifSwiaGxqcy1yZWdleHAiOntjb2xvcjoiI2NjNjY2NiJ9LCJobGpzLWRlbGV0aW9uIjp7Y29sb3I6IiNjYzY2NjYifSwiaGxqcy1udW1iZXIiOntjb2xvcjoiI2RlOTM1ZiJ9LCJobGpzLWJ1aWx0X2luIjp7Y29sb3I6IiNkZTkzNWYifSwiaGxqcy1idWlsdGluLW5hbWUiOntjb2xvcjoiI2RlOTM1ZiJ9LCJobGpzLWxpdGVyYWwiOntjb2xvcjoiI2RlOTM1ZiJ9LCJobGpzLXR5cGUiOntjb2xvcjoiI2RlOTM1ZiJ9LCJobGpzLXBhcmFtcyI6e2NvbG9yOiIjZGU5MzVmIn0sImhsanMtbWV0YSI6e2NvbG9yOiIjZGU5MzVmIn0sImhsanMtbGluayI6e2NvbG9yOiIjZGU5MzVmIn0sImhsanMtYXR0cmlidXRlIjp7Y29sb3I6IiNmMGM2NzQifSwiaGxqcy1zdHJpbmciOntjb2xvcjoiI2I1YmQ2OCJ9LCJobGpzLXN5bWJvbCI6e2NvbG9yOiIjYjViZDY4In0sImhsanMtYnVsbGV0Ijp7Y29sb3I6IiNiNWJkNjgifSwiaGxqcy1hZGRpdGlvbiI6e2NvbG9yOiIjYjViZDY4In0sImhsanMtdGl0bGUiOntjb2xvcjoiIzgxYTJiZSJ9LCJobGpzLXNlY3Rpb24iOntjb2xvcjoiIzgxYTJiZSJ9LCJobGpzLWtleXdvcmQiOntjb2xvcjoiI2IyOTRiYiJ9LCJobGpzLXNlbGVjdG9yLXRhZyI6e2NvbG9yOiIjYjI5NGJiIn0saGxqczp7ZGlzcGxheToiYmxvY2siLG92ZXJmbG93WDoiYXV0byIsYmFja2dyb3VuZDoiIzFkMWYyMSIsY29sb3I6IiNjNWM4YzYiLHBhZGRpbmc6IjAuNWVtIn0sImhsanMtZW1waGFzaXMiOntmb250U3R5bGU6Iml0YWxpYyJ9LCJobGpzLXN0cm9uZyI6e2ZvbnRXZWlnaHQ6ImJvbGQifX0saWRlYTp7aGxqczp7ZGlzcGxheToiYmxvY2siLG92ZXJmbG93WDoiYXV0byIscGFkZGluZzoiMC41ZW0iLGNvbG9yOiIjMDAwIixiYWNrZ3JvdW5kOiIjZmZmIn0sImhsanMtc3Vic3QiOntmb250V2VpZ2h0OiJub3JtYWwiLGNvbG9yOiIjMDAwIn0sImhsanMtdGl0bGUiOntmb250V2VpZ2h0OiJub3JtYWwiLGNvbG9yOiIjMDAwIn0sImhsanMtY29tbWVudCI6e2NvbG9yOiIjODA4MDgwIixmb250U3R5bGU6Iml0YWxpYyJ9LCJobGpzLXF1b3RlIjp7Y29sb3I6IiM4MDgwODAiLGZvbnRTdHlsZToiaXRhbGljIn0sImhsanMtbWV0YSI6e2NvbG9yOiIjODA4MDAwIn0sImhsanMtdGFnIjp7YmFja2dyb3VuZDoiI2VmZWZlZiJ9LCJobGpzLXNlY3Rpb24iOntmb250V2VpZ2h0OiJib2xkIixjb2xvcjoiIzAwMDA4MCJ9LCJobGpzLW5hbWUiOntmb250V2VpZ2h0OiJib2xkIixjb2xvcjoiIzAwMDA4MCJ9LCJobGpzLWxpdGVyYWwiOntmb250V2VpZ2h0OiJib2xkIixjb2xvcjoiIzAwMDA4MCJ9LCJobGpzLWtleXdvcmQiOntmb250V2VpZ2h0OiJib2xkIixjb2xvcjoiIzAwMDA4MCJ9LCJobGpzLXNlbGVjdG9yLXRhZyI6e2ZvbnRXZWlnaHQ6ImJvbGQiLGNvbG9yOiIjMDAwMDgwIn0sImhsanMtdHlwZSI6e2ZvbnRXZWlnaHQ6ImJvbGQiLGNvbG9yOiIjMDAwMDgwIn0sImhsanMtc2VsZWN0b3ItaWQiOntmb250V2VpZ2h0OiJib2xkIixjb2xvcjoiIzAwMDA4MCJ9LCJobGpzLXNlbGVjdG9yLWNsYXNzIjp7Zm9udFdlaWdodDoiYm9sZCIsY29sb3I6IiMwMDAwODAifSwiaGxqcy1hdHRyaWJ1dGUiOntmb250V2VpZ2h0OiJib2xkIixjb2xvcjoiIzAwMDBmZiJ9LCJobGpzLW51bWJlciI6e2ZvbnRXZWlnaHQ6Im5vcm1hbCIsY29sb3I6IiMwMDAwZmYifSwiaGxqcy1yZWdleHAiOntmb250V2VpZ2h0OiJub3JtYWwiLGNvbG9yOiIjMDAwMGZmIn0sImhsanMtbGluayI6e2ZvbnRXZWlnaHQ6Im5vcm1hbCIsY29sb3I6IiMwMDAwZmYifSwiaGxqcy1zdHJpbmciOntjb2xvcjoiIzAwODAwMCIsZm9udFdlaWdodDoiYm9sZCJ9LCJobGpzLXN5bWJvbCI6e2NvbG9yOiIjMDAwIixiYWNrZ3JvdW5kOiIjZDBlZGVkIixmb250U3R5bGU6Iml0YWxpYyJ9LCJobGpzLWJ1bGxldCI6e2NvbG9yOiIjMDAwIixiYWNrZ3JvdW5kOiIjZDBlZGVkIixmb250U3R5bGU6Iml0YWxpYyJ9LCJobGpzLWZvcm11bGEiOntjb2xvcjoiIzAwMCIsYmFja2dyb3VuZDoiI2QwZWRlZCIsZm9udFN0eWxlOiJpdGFsaWMifSwiaGxqcy1kb2N0YWciOnt0ZXh0RGVjb3JhdGlvbjoidW5kZXJsaW5lIn0sImhsanMtdmFyaWFibGUiOntjb2xvcjoiIzY2MGU3YSJ9LCJobGpzLXRlbXBsYXRlLXZhcmlhYmxlIjp7Y29sb3I6IiM2NjBlN2EifSwiaGxqcy1hZGRpdGlvbiI6e2JhY2tncm91bmQ6IiNiYWVlYmEifSwiaGxqcy1kZWxldGlvbiI6e2JhY2tncm91bmQ6IiNmZmM4YmQifSwiaGxqcy1lbXBoYXNpcyI6e2ZvbnRTdHlsZToiaXRhbGljIn0sImhsanMtc3Ryb25nIjp7Zm9udFdlaWdodDoiYm9sZCJ9fX0sJE89Rk8sY29tcG9uZW50c19TeW50YXhIaWdobGlnaHRlcj0oe2xhbmd1YWdlOnMsY2xhc3NOYW1lOm89IiIsZ2V0Q29uZmlnczppLHN5bnRheEhpZ2hsaWdodGluZzphPXt9LGNoaWxkcmVuOnU9IiJ9KT0+e2NvbnN0IF89aSgpLnN5bnRheEhpZ2hsaWdodC50aGVtZSx7c3R5bGVzOncsZGVmYXVsdFN0eWxlOnh9PWEsQz13Py5bX10/P3g7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQod08se2xhbmd1YWdlOnMsY2xhc3NOYW1lOm8sc3R5bGU6Q30sdSl9O3ZhciBxTz1fX3dlYnBhY2tfcmVxdWlyZV9fKDU0MTkpLFZPPV9fd2VicGFja19yZXF1aXJlX18ubihxTyk7Y29uc3QgY29tcG9uZW50c19IaWdobGlnaHRDb2RlPSh7ZmlsZU5hbWU6cz0icmVzcG9uc2UudHh0IixjbGFzc05hbWU6byxkb3dubG9hZGFibGU6aSxnZXRDb21wb25lbnQ6YSxjYW5Db3B5OnUsbGFuZ3VhZ2U6XyxjaGlsZHJlbjp3fSk9Pntjb25zdCB4PSgwLFJlLnVzZVJlZikobnVsbCksQz1hKCJTeW50YXhIaWdobGlnaHRlciIsITApLGhhbmRsZVByZXZlbnRZU2Nyb2xsaW5nQmV5b25kRWxlbWVudD1zPT57Y29uc3R7dGFyZ2V0Om8sZGVsdGFZOml9PXMse3Njcm9sbEhlaWdodDphLG9mZnNldEhlaWdodDp1LHNjcm9sbFRvcDpffT1vO2E+dSYmKDA9PT1fJiZpPDB8fHUrXz49YSYmaT4wKSYmcy5wcmV2ZW50RGVmYXVsdCgpfTtyZXR1cm4oMCxSZS51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IHM9QXJyYXkuZnJvbSh4LmN1cnJlbnQuY2hpbGROb2RlcykuZmlsdGVyKChzPT4hIXMubm9kZVR5cGUmJnMuY2xhc3NMaXN0LmNvbnRhaW5zKCJtaWNyb2xpZ2h0IikpKTtyZXR1cm4gcy5mb3JFYWNoKChzPT5zLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNld2hlZWwiLGhhbmRsZVByZXZlbnRZU2Nyb2xsaW5nQmV5b25kRWxlbWVudCx7cGFzc2l2ZTohMX0pKSksKCk9PntzLmZvckVhY2goKHM9PnMucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V3aGVlbCIsaGFuZGxlUHJldmVudFlTY3JvbGxpbmdCZXlvbmRFbGVtZW50KSkpfX0pLFt3LG8sX10pLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaGlnaGxpZ2h0LWNvZGUiLHJlZjp4fSx1JiZSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImNvcHktdG8tY2xpcGJvYXJkIn0sUmUuY3JlYXRlRWxlbWVudChIbi5Db3B5VG9DbGlwYm9hcmQse3RleHQ6d30sUmUuY3JlYXRlRWxlbWVudCgiYnV0dG9uIixudWxsKSkpLGk/UmUuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7Y2xhc3NOYW1lOiJkb3dubG9hZC1jb250ZW50cyIsb25DbGljazooKT0+e1ZPKCkodyxzKX19LCJEb3dubG9hZCIpOm51bGwsUmUuY3JlYXRlRWxlbWVudChDLHtsYW5ndWFnZTpfLGNsYXNzTmFtZTpKbigpKG8sIm1pY3JvbGlnaHQiKSxyZW5kZXJQbGFpblRleHQ6KHtjaGlsZHJlbjpzLFBsYWluVGV4dFZpZXdlcjppfSk9PlJlLmNyZWF0ZUVsZW1lbnQoaSx7Y2xhc3NOYW1lOm99LHMpfSx3KSl9LGNvbXBvbmVudHNfUGxhaW5UZXh0Vmlld2VyPSh7Y2xhc3NOYW1lOnM9IiIsY2hpbGRyZW46b30pPT5SZS5jcmVhdGVFbGVtZW50KCJwcmUiLHtjbGFzc05hbWU6Sm4oKSgibWljcm9saWdodCIscyl9LG8pLHdyYXBfY29tcG9uZW50c19TeW50YXhIaWdobGlnaHRlcj0ocyxvKT0+KHtyZW5kZXJQbGFpblRleHQ6aSxjaGlsZHJlbjphLC4uLnV9KT0+e2NvbnN0IF89by5nZXRDb25maWdzKCkuc3ludGF4SGlnaGxpZ2h0LmFjdGl2YXRlZCx3PW8uZ2V0Q29tcG9uZW50KCJQbGFpblRleHRWaWV3ZXIiKTtyZXR1cm4gX3x8ImZ1bmN0aW9uIiE9dHlwZW9mIGk/Xz9SZS5jcmVhdGVFbGVtZW50KHMsdSxhKTpSZS5jcmVhdGVFbGVtZW50KHcsbnVsbCxhKTppKHtjaGlsZHJlbjphLFBsYWluVGV4dFZpZXdlcjp3fSl9LFN5bnRheEhpZ2hsaWdodGluZ1BsdWdpbjE9KCk9Pih7YWZ0ZXJMb2FkOmFmdGVyX2xvYWQscm9vdEluamVjdHM6e3N5bnRheEhpZ2hsaWdodGluZzp7c3R5bGVzOkJPLGRlZmF1bHRTdHlsZTokT319LGNvbXBvbmVudHM6e1N5bnRheEhpZ2hsaWdodGVyOmNvbXBvbmVudHNfU3ludGF4SGlnaGxpZ2h0ZXIsSGlnaGxpZ2h0Q29kZTpjb21wb25lbnRzX0hpZ2hsaWdodENvZGUsUGxhaW5UZXh0Vmlld2VyOmNvbXBvbmVudHNfUGxhaW5UZXh0Vmlld2VyfX0pLFN5bnRheEhpZ2hsaWdodGluZ1BsdWdpbjI9KCk9Pih7d3JhcENvbXBvbmVudHM6e1N5bnRheEhpZ2hsaWdodGVyOndyYXBfY29tcG9uZW50c19TeW50YXhIaWdobGlnaHRlcn19KSxzeW50YXhfaGlnaGxpZ2h0aW5nPSgpPT5bU3ludGF4SGlnaGxpZ2h0aW5nUGx1Z2luMSxTeW50YXhIaWdobGlnaHRpbmdQbHVnaW4yXSx2ZXJzaW9uc19hZnRlcl9sb2FkPSgpPT57Y29uc3R7R0lUX0RJUlRZOnMsR0lUX0NPTU1JVDpvLFBBQ0tBR0VfVkVSU0lPTjppLEJVSUxEX1RJTUU6YX09e1BBQ0tBR0VfVkVSU0lPTjoiNS4yNC4yIixHSVRfQ09NTUlUOiJnZjcxNGFmZjEiLEdJVF9ESVJUWTohMCxCVUlMRF9USU1FOiJNb24sIDE2IEp1biAyMDI1IDEyOjQ5OjA4IEdNVCJ9O2x0LnZlcnNpb25zPWx0LnZlcnNpb25zfHx7fSxsdC52ZXJzaW9ucy5zd2FnZ2VyVUk9e3ZlcnNpb246aSxnaXRSZXZpc2lvbjpvLGdpdERpcnR5OnMsYnVpbGRUaW1lc3RhbXA6YX19LHZlcnNpb25zPSgpPT4oe2FmdGVyTG9hZDp2ZXJzaW9uc19hZnRlcl9sb2FkfSk7dmFyIFVPPV9fd2VicGFja19yZXF1aXJlX18oNDcyNDgpLHpPPV9fd2VicGFja19yZXF1aXJlX18ubihVTyk7Y29uc3QgV089Y29uc29sZS5lcnJvcix3aXRoRXJyb3JCb3VuZGFyeT1zPT5vPT57Y29uc3R7Z2V0Q29tcG9uZW50OmksZm46YX09cygpLHU9aSgiRXJyb3JCb3VuZGFyeSIpLF89YS5nZXREaXNwbGF5TmFtZShvKTtjbGFzcyBXaXRoRXJyb3JCb3VuZGFyeSBleHRlbmRzIFJlLkNvbXBvbmVudHtyZW5kZXIoKXtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCh1LHt0YXJnZXROYW1lOl8sZ2V0Q29tcG9uZW50OmksZm46YX0sUmUuY3JlYXRlRWxlbWVudChvLE1uKCkoe30sdGhpcy5wcm9wcyx0aGlzLmNvbnRleHQpKSl9fXZhciB3O3JldHVybiBXaXRoRXJyb3JCb3VuZGFyeS5kaXNwbGF5TmFtZT1gV2l0aEVycm9yQm91bmRhcnkoJHtffSlgLCh3PW8pLnByb3RvdHlwZSYmdy5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCYmKFdpdGhFcnJvckJvdW5kYXJ5LnByb3RvdHlwZS5tYXBTdGF0ZVRvUHJvcHM9by5wcm90b3R5cGUubWFwU3RhdGVUb1Byb3BzKSxXaXRoRXJyb3JCb3VuZGFyeX0sZmFsbGJhY2s9KHtuYW1lOnN9KT0+UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJmYWxsYmFjayJ9LCLwn5ixICIsUmUuY3JlYXRlRWxlbWVudCgiaSIsbnVsbCwiQ291bGQgbm90IHJlbmRlciAiLCJ0Ij09PXM/InRoaXMgY29tcG9uZW50IjpzLCIsIHNlZSB0aGUgY29uc29sZS4iKSk7Y2xhc3MgRXJyb3JCb3VuZGFyeSBleHRlbmRzIFJlLkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXt0YXJnZXROYW1lOiJ0aGlzIGNvbXBvbmVudCIsZ2V0Q29tcG9uZW50OigpPT5mYWxsYmFjayxmbjp7Y29tcG9uZW50RGlkQ2F0Y2g6V099LGNoaWxkcmVuOm51bGx9O3N0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3Iocyl7cmV0dXJue2hhc0Vycm9yOiEwLGVycm9yOnN9fWNvbnN0cnVjdG9yKC4uLnMpe3N1cGVyKC4uLnMpLHRoaXMuc3RhdGU9e2hhc0Vycm9yOiExLGVycm9yOm51bGx9fWNvbXBvbmVudERpZENhdGNoKHMsbyl7dGhpcy5wcm9wcy5mbi5jb21wb25lbnREaWRDYXRjaChzLG8pfXJlbmRlcigpe2NvbnN0e2dldENvbXBvbmVudDpzLHRhcmdldE5hbWU6byxjaGlsZHJlbjppfT10aGlzLnByb3BzO2lmKHRoaXMuc3RhdGUuaGFzRXJyb3Ipe2NvbnN0IGk9cygiRmFsbGJhY2siKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChpLHtuYW1lOm99KX1yZXR1cm4gaX19Y29uc3QgSk89RXJyb3JCb3VuZGFyeSxzYWZlX3JlbmRlcj0oe2NvbXBvbmVudExpc3Q6cz1bXSxmdWxsT3ZlcnJpZGU6bz0hMX09e30pPT4oe2dldFN5c3RlbTppfSk9Pntjb25zdCBhPW8/czpbIkFwcCIsIkJhc2VMYXlvdXQiLCJWZXJzaW9uUHJhZ21hRmlsdGVyIiwiSW5mb0NvbnRhaW5lciIsIlNlcnZlcnNDb250YWluZXIiLCJTY2hlbWVzQ29udGFpbmVyIiwiQXV0aG9yaXplQnRuQ29udGFpbmVyIiwiRmlsdGVyQ29udGFpbmVyIiwiT3BlcmF0aW9ucyIsIk9wZXJhdGlvbkNvbnRhaW5lciIsInBhcmFtZXRlcnMiLCJyZXNwb25zZXMiLCJPcGVyYXRpb25TZXJ2ZXJzIiwiTW9kZWxzIiwiTW9kZWxXcmFwcGVyIiwuLi5zXSx1PXpPKCkoYSxBcnJheShhLmxlbmd0aCkuZmlsbCgoKHMse2ZuOm99KT0+by53aXRoRXJyb3JCb3VuZGFyeShzKSkpKTtyZXR1cm57Zm46e2NvbXBvbmVudERpZENhdGNoOldPLHdpdGhFcnJvckJvdW5kYXJ5OndpdGhFcnJvckJvdW5kYXJ5KGkpfSxjb21wb25lbnRzOntFcnJvckJvdW5kYXJ5OkpPLEZhbGxiYWNrOmZhbGxiYWNrfSx3cmFwQ29tcG9uZW50czp1fX07Y2xhc3MgQXBwIGV4dGVuZHMgUmUuQ29tcG9uZW50e2dldExheW91dCgpe2NvbnN0e2dldENvbXBvbmVudDpzLGxheW91dFNlbGVjdG9yczpvfT10aGlzLnByb3BzLGk9by5jdXJyZW50KCksYT1zKGksITApO3JldHVybiBhfHwoKCk9PlJlLmNyZWF0ZUVsZW1lbnQoImgxIixudWxsLCcgTm8gbGF5b3V0IGRlZmluZWQgZm9yICInLGksJyIgJykpfXJlbmRlcigpe2NvbnN0IHM9dGhpcy5nZXRMYXlvdXQoKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChzLG51bGwpfX1jb25zdCBITz1BcHA7Y2xhc3MgQXV0aG9yaXphdGlvblBvcHVwIGV4dGVuZHMgUmUuQ29tcG9uZW50e2Nsb3NlPSgpPT57bGV0e2F1dGhBY3Rpb25zOnN9PXRoaXMucHJvcHM7cy5zaG93RGVmaW5pdGlvbnMoITEpfTtyZW5kZXIoKXtsZXR7YXV0aFNlbGVjdG9yczpzLGF1dGhBY3Rpb25zOm8sZ2V0Q29tcG9uZW50OmksZXJyU2VsZWN0b3JzOmEsc3BlY1NlbGVjdG9yczp1LGZuOntBU1Q6Xz17fX19PXRoaXMucHJvcHMsdz1zLnNob3duRGVmaW5pdGlvbnMoKTtjb25zdCB4PWkoImF1dGhzIiksQz1pKCJDbG9zZUljb24iKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJkaWFsb2ctdXgifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImJhY2tkcm9wLXV4In0pLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibW9kYWwtdXgifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im1vZGFsLWRpYWxvZy11eCJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibW9kYWwtdXgtaW5uZXIifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im1vZGFsLXV4LWhlYWRlciJ9LFJlLmNyZWF0ZUVsZW1lbnQoImgzIixudWxsLCJBdmFpbGFibGUgYXV0aG9yaXphdGlvbnMiKSxSZS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiY2xvc2UtbW9kYWwiLG9uQ2xpY2s6dGhpcy5jbG9zZX0sUmUuY3JlYXRlRWxlbWVudChDLG51bGwpKSksUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJtb2RhbC11eC1jb250ZW50In0sdy52YWx1ZVNlcSgpLm1hcCgoKHcsQyk9PlJlLmNyZWF0ZUVsZW1lbnQoeCx7a2V5OkMsQVNUOl8sZGVmaW5pdGlvbnM6dyxnZXRDb21wb25lbnQ6aSxlcnJTZWxlY3RvcnM6YSxhdXRoU2VsZWN0b3JzOnMsYXV0aEFjdGlvbnM6byxzcGVjU2VsZWN0b3JzOnV9KSkpKSkpKSl9fWNsYXNzIEF1dGhvcml6ZUJ0biBleHRlbmRzIFJlLkNvbXBvbmVudHtyZW5kZXIoKXtsZXR7aXNBdXRob3JpemVkOnMsc2hvd1BvcHVwOm8sb25DbGljazppLGdldENvbXBvbmVudDphfT10aGlzLnByb3BzO2NvbnN0IHU9YSgiYXV0aG9yaXphdGlvblBvcHVwIiwhMCksXz1hKCJMb2NrQXV0aEljb24iLCEwKSx3PWEoIlVubG9ja0F1dGhJY29uIiwhMCk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiYXV0aC13cmFwcGVyIn0sUmUuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7Y2xhc3NOYW1lOnM/ImJ0biBhdXRob3JpemUgbG9ja2VkIjoiYnRuIGF1dGhvcml6ZSB1bmxvY2tlZCIsb25DbGljazppfSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCJBdXRob3JpemUiKSxzP1JlLmNyZWF0ZUVsZW1lbnQoXyxudWxsKTpSZS5jcmVhdGVFbGVtZW50KHcsbnVsbCkpLG8mJlJlLmNyZWF0ZUVsZW1lbnQodSxudWxsKSl9fWNsYXNzIEF1dGhvcml6ZUJ0bkNvbnRhaW5lciBleHRlbmRzIFJlLkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHthdXRoQWN0aW9uczpzLGF1dGhTZWxlY3RvcnM6byxzcGVjU2VsZWN0b3JzOmksZ2V0Q29tcG9uZW50OmF9PXRoaXMucHJvcHMsdT1pLnNlY3VyaXR5RGVmaW5pdGlvbnMoKSxfPW8uZGVmaW5pdGlvbnNUb0F1dGhvcml6ZSgpLHc9YSgiYXV0aG9yaXplQnRuIik7cmV0dXJuIHU/UmUuY3JlYXRlRWxlbWVudCh3LHtvbkNsaWNrOigpPT5zLnNob3dEZWZpbml0aW9ucyhfKSxpc0F1dGhvcml6ZWQ6ISFvLmF1dGhvcml6ZWQoKS5zaXplLHNob3dQb3B1cDohIW8uc2hvd25EZWZpbml0aW9ucygpLGdldENvbXBvbmVudDphfSk6bnVsbH19Y2xhc3MgQXV0aG9yaXplT3BlcmF0aW9uQnRuIGV4dGVuZHMgUmUuQ29tcG9uZW50e29uQ2xpY2s9cz0+e3Muc3RvcFByb3BhZ2F0aW9uKCk7bGV0e29uQ2xpY2s6b309dGhpcy5wcm9wcztvJiZvKCl9O3JlbmRlcigpe2xldHtpc0F1dGhvcml6ZWQ6cyxnZXRDb21wb25lbnQ6b309dGhpcy5wcm9wcztjb25zdCBpPW8oIkxvY2tBdXRoT3BlcmF0aW9uSWNvbiIsITApLGE9bygiVW5sb2NrQXV0aE9wZXJhdGlvbkljb24iLCEwKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7Y2xhc3NOYW1lOiJhdXRob3JpemF0aW9uX19idG4iLCJhcmlhLWxhYmVsIjpzPyJhdXRob3JpemF0aW9uIGJ1dHRvbiBsb2NrZWQiOiJhdXRob3JpemF0aW9uIGJ1dHRvbiB1bmxvY2tlZCIsb25DbGljazp0aGlzLm9uQ2xpY2t9LHM/UmUuY3JlYXRlRWxlbWVudChpLHtjbGFzc05hbWU6ImxvY2tlZCJ9KTpSZS5jcmVhdGVFbGVtZW50KGEse2NsYXNzTmFtZToidW5sb2NrZWQifSkpfX1jbGFzcyBBdXRocyBleHRlbmRzIFJlLkNvbXBvbmVudHtjb25zdHJ1Y3RvcihzLG8pe3N1cGVyKHMsbyksdGhpcy5zdGF0ZT17fX1vbkF1dGhDaGFuZ2U9cz0+e2xldHtuYW1lOm99PXM7dGhpcy5zZXRTdGF0ZSh7W29dOnN9KX07c3VibWl0QXV0aD1zPT57cy5wcmV2ZW50RGVmYXVsdCgpO2xldHthdXRoQWN0aW9uczpvfT10aGlzLnByb3BzO28uYXV0aG9yaXplV2l0aFBlcnNpc3RPcHRpb24odGhpcy5zdGF0ZSl9O2xvZ291dENsaWNrPXM9PntzLnByZXZlbnREZWZhdWx0KCk7bGV0e2F1dGhBY3Rpb25zOm8sZGVmaW5pdGlvbnM6aX09dGhpcy5wcm9wcyxhPWkubWFwKCgocyxvKT0+bykpLnRvQXJyYXkoKTt0aGlzLnNldFN0YXRlKGEucmVkdWNlKCgocyxvKT0+KHNbb109IiIscykpLHt9KSksby5sb2dvdXRXaXRoUGVyc2lzdE9wdGlvbihhKX07Y2xvc2U9cz0+e3MucHJldmVudERlZmF1bHQoKTtsZXR7YXV0aEFjdGlvbnM6b309dGhpcy5wcm9wcztvLnNob3dEZWZpbml0aW9ucyghMSl9O3JlbmRlcigpe2xldHtkZWZpbml0aW9uczpzLGdldENvbXBvbmVudDpvLGF1dGhTZWxlY3RvcnM6aSxlcnJTZWxlY3RvcnM6YX09dGhpcy5wcm9wcztjb25zdCB1PW8oIkF1dGhJdGVtIiksXz1vKCJvYXV0aDIiLCEwKSx3PW8oIkJ1dHRvbiIpO2xldCB4PWkuYXV0aG9yaXplZCgpLEM9cy5maWx0ZXIoKChzLG8pPT4hIXguZ2V0KG8pKSksaj1zLmZpbHRlcigocz0+Im9hdXRoMiIhPT1zLmdldCgidHlwZSIpKSksTD1zLmZpbHRlcigocz0+Im9hdXRoMiI9PT1zLmdldCgidHlwZSIpKSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiYXV0aC1jb250YWluZXIifSwhIWouc2l6ZSYmUmUuY3JlYXRlRWxlbWVudCgiZm9ybSIse29uU3VibWl0OnRoaXMuc3VibWl0QXV0aH0sai5tYXAoKChzLF8pPT5SZS5jcmVhdGVFbGVtZW50KHUse2tleTpfLHNjaGVtYTpzLG5hbWU6XyxnZXRDb21wb25lbnQ6byxvbkF1dGhDaGFuZ2U6dGhpcy5vbkF1dGhDaGFuZ2UsYXV0aG9yaXplZDp4LGVyclNlbGVjdG9yczphLGF1dGhTZWxlY3RvcnM6aX0pKSkudG9BcnJheSgpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiYXV0aC1idG4td3JhcHBlciJ9LGouc2l6ZT09PUMuc2l6ZT9SZS5jcmVhdGVFbGVtZW50KHcse2NsYXNzTmFtZToiYnRuIG1vZGFsLWJ0biBhdXRoIixvbkNsaWNrOnRoaXMubG9nb3V0Q2xpY2ssImFyaWEtbGFiZWwiOiJSZW1vdmUgYXV0aG9yaXphdGlvbiJ9LCJMb2dvdXQiKTpSZS5jcmVhdGVFbGVtZW50KHcse3R5cGU6InN1Ym1pdCIsY2xhc3NOYW1lOiJidG4gbW9kYWwtYnRuIGF1dGggYXV0aG9yaXplIiwiYXJpYS1sYWJlbCI6IkFwcGx5IGNyZWRlbnRpYWxzIn0sIkF1dGhvcml6ZSIpLFJlLmNyZWF0ZUVsZW1lbnQodyx7Y2xhc3NOYW1lOiJidG4gbW9kYWwtYnRuIGF1dGggYnRuLWRvbmUiLG9uQ2xpY2s6dGhpcy5jbG9zZX0sIkNsb3NlIikpKSxMJiZMLnNpemU/UmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToic2NvcGUtZGVmIn0sUmUuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiU2NvcGVzIGFyZSB1c2VkIHRvIGdyYW50IGFuIGFwcGxpY2F0aW9uIGRpZmZlcmVudCBsZXZlbHMgb2YgYWNjZXNzIHRvIGRhdGEgb24gYmVoYWxmIG9mIHRoZSBlbmQgdXNlci4gRWFjaCBBUEkgbWF5IGRlY2xhcmUgb25lIG9yIG1vcmUgc2NvcGVzLiIpLFJlLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIkFQSSByZXF1aXJlcyB0aGUgZm9sbG93aW5nIHNjb3Blcy4gU2VsZWN0IHdoaWNoIG9uZXMgeW91IHdhbnQgdG8gZ3JhbnQgdG8gU3dhZ2dlciBVSS4iKSkscy5maWx0ZXIoKHM9PiJvYXV0aDIiPT09cy5nZXQoInR5cGUiKSkpLm1hcCgoKHMsbyk9PlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleTpvfSxSZS5jcmVhdGVFbGVtZW50KF8se2F1dGhvcml6ZWQ6eCxzY2hlbWE6cyxuYW1lOm99KSkpKS50b0FycmF5KCkpOm51bGwpfX1jbGFzcyBhdXRoX2l0ZW1fQXV0aHMgZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7bGV0e3NjaGVtYTpzLG5hbWU6byxnZXRDb21wb25lbnQ6aSxvbkF1dGhDaGFuZ2U6YSxhdXRob3JpemVkOnUsZXJyU2VsZWN0b3JzOl8sYXV0aFNlbGVjdG9yczp3fT10aGlzLnByb3BzO2NvbnN0IHg9aSgiYXBpS2V5QXV0aCIpLEM9aSgiYmFzaWNBdXRoIik7bGV0IGo7Y29uc3QgTD1zLmdldCgidHlwZSIpO3N3aXRjaChMKXtjYXNlImFwaUtleSI6aj1SZS5jcmVhdGVFbGVtZW50KHgse2tleTpvLHNjaGVtYTpzLG5hbWU6byxlcnJTZWxlY3RvcnM6XyxhdXRob3JpemVkOnUsZ2V0Q29tcG9uZW50Omksb25DaGFuZ2U6YSxhdXRoU2VsZWN0b3JzOnd9KTticmVhaztjYXNlImJhc2ljIjpqPVJlLmNyZWF0ZUVsZW1lbnQoQyx7a2V5Om8sc2NoZW1hOnMsbmFtZTpvLGVyclNlbGVjdG9yczpfLGF1dGhvcml6ZWQ6dSxnZXRDb21wb25lbnQ6aSxvbkNoYW5nZTphLGF1dGhTZWxlY3RvcnM6d30pO2JyZWFrO2RlZmF1bHQ6aj1SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6b30sIlVua25vd24gc2VjdXJpdHkgZGVmaW5pdGlvbiB0eXBlICIsTCl9cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleTpgJHtvfS1qdW1wYH0sail9fWNsYXNzIEF1dGhFcnJvciBleHRlbmRzIFJlLkNvbXBvbmVudHtyZW5kZXIoKXtsZXR7ZXJyb3I6c309dGhpcy5wcm9wcyxvPXMuZ2V0KCJsZXZlbCIpLGk9cy5nZXQoIm1lc3NhZ2UiKSxhPXMuZ2V0KCJzb3VyY2UiKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvcnMifSxSZS5jcmVhdGVFbGVtZW50KCJiIixudWxsLGEsIiAiLG8pLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsaSkpfX1jbGFzcyBBcGlLZXlBdXRoIGV4dGVuZHMgUmUuQ29tcG9uZW50e2NvbnN0cnVjdG9yKHMsbyl7c3VwZXIocyxvKTtsZXR7bmFtZTppLHNjaGVtYTphfT10aGlzLnByb3BzLHU9dGhpcy5nZXRWYWx1ZSgpO3RoaXMuc3RhdGU9e25hbWU6aSxzY2hlbWE6YSx2YWx1ZTp1fX1nZXRWYWx1ZSgpe2xldHtuYW1lOnMsYXV0aG9yaXplZDpvfT10aGlzLnByb3BzO3JldHVybiBvJiZvLmdldEluKFtzLCJ2YWx1ZSJdKX1vbkNoYW5nZT1zPT57bGV0e29uQ2hhbmdlOm99PXRoaXMucHJvcHMsaT1zLnRhcmdldC52YWx1ZSxhPU9iamVjdC5hc3NpZ24oe30sdGhpcy5zdGF0ZSx7dmFsdWU6aX0pO3RoaXMuc2V0U3RhdGUoYSksbyhhKX07cmVuZGVyKCl7bGV0e3NjaGVtYTpzLGdldENvbXBvbmVudDpvLGVyclNlbGVjdG9yczppLG5hbWU6YSxhdXRoU2VsZWN0b3JzOnV9PXRoaXMucHJvcHM7Y29uc3QgXz1vKCJJbnB1dCIpLHc9bygiUm93IikseD1vKCJDb2wiKSxDPW8oImF1dGhFcnJvciIpLGo9bygiTWFya2Rvd24iLCEwKSxMPW8oIkp1bXBUb1BhdGgiLCEwKSxCPXUuc2VsZWN0QXV0aFBhdGgoYSk7bGV0ICQ9dGhpcy5nZXRWYWx1ZSgpLFY9aS5hbGxFcnJvcnMoKS5maWx0ZXIoKHM9PnMuZ2V0KCJhdXRoSWQiKT09PWEpKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsYXx8cy5nZXQoIm5hbWUiKSksIsKgKGFwaUtleSkiLFJlLmNyZWF0ZUVsZW1lbnQoTCx7cGF0aDpCfSkpLCQmJlJlLmNyZWF0ZUVsZW1lbnQoImg2IixudWxsLCJBdXRob3JpemVkIiksUmUuY3JlYXRlRWxlbWVudCh3LG51bGwsUmUuY3JlYXRlRWxlbWVudChqLHtzb3VyY2U6cy5nZXQoImRlc2NyaXB0aW9uIil9KSksUmUuY3JlYXRlRWxlbWVudCh3LG51bGwsUmUuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiTmFtZTogIixSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLHMuZ2V0KCJuYW1lIikpKSksUmUuY3JlYXRlRWxlbWVudCh3LG51bGwsUmUuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiSW46ICIsUmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCxzLmdldCgiaW4iKSkpKSxSZS5jcmVhdGVFbGVtZW50KHcsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6ImFwaV9rZXlfdmFsdWUifSwiVmFsdWU6IiksJD9SZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCIgKioqKioqICIpOlJlLmNyZWF0ZUVsZW1lbnQoeCxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoXyx7aWQ6ImFwaV9rZXlfdmFsdWUiLHR5cGU6InRleHQiLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2UsYXV0b0ZvY3VzOiEwfSkpKSxWLnZhbHVlU2VxKCkubWFwKCgocyxvKT0+UmUuY3JlYXRlRWxlbWVudChDLHtlcnJvcjpzLGtleTpvfSkpKSl9fWNsYXNzIEJhc2ljQXV0aCBleHRlbmRzIFJlLkNvbXBvbmVudHtjb25zdHJ1Y3RvcihzLG8pe3N1cGVyKHMsbyk7bGV0e3NjaGVtYTppLG5hbWU6YX09dGhpcy5wcm9wcyx1PXRoaXMuZ2V0VmFsdWUoKS51c2VybmFtZTt0aGlzLnN0YXRlPXtuYW1lOmEsc2NoZW1hOmksdmFsdWU6dT97dXNlcm5hbWU6dX06e319fWdldFZhbHVlKCl7bGV0e2F1dGhvcml6ZWQ6cyxuYW1lOm99PXRoaXMucHJvcHM7cmV0dXJuIHMmJnMuZ2V0SW4oW28sInZhbHVlIl0pfHx7fX1vbkNoYW5nZT1zPT57bGV0e29uQ2hhbmdlOm99PXRoaXMucHJvcHMse3ZhbHVlOmksbmFtZTphfT1zLnRhcmdldCx1PXRoaXMuc3RhdGUudmFsdWU7dVthXT1pLHRoaXMuc2V0U3RhdGUoe3ZhbHVlOnV9KSxvKHRoaXMuc3RhdGUpfTtyZW5kZXIoKXtsZXR7c2NoZW1hOnMsZ2V0Q29tcG9uZW50Om8sbmFtZTppLGVyclNlbGVjdG9yczphLGF1dGhTZWxlY3RvcnM6dX09dGhpcy5wcm9wcztjb25zdCBfPW8oIklucHV0Iiksdz1vKCJSb3ciKSx4PW8oIkNvbCIpLEM9bygiYXV0aEVycm9yIiksaj1vKCJKdW1wVG9QYXRoIiwhMCksTD1vKCJNYXJrZG93biIsITApLEI9dS5zZWxlY3RBdXRoUGF0aChpKTtsZXQgJD10aGlzLmdldFZhbHVlKCkudXNlcm5hbWUsVj1hLmFsbEVycm9ycygpLmZpbHRlcigocz0+cy5nZXQoImF1dGhJZCIpPT09aSkpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsIkJhc2ljIGF1dGhvcml6YXRpb24iLFJlLmNyZWF0ZUVsZW1lbnQoaix7cGF0aDpCfSkpLCQmJlJlLmNyZWF0ZUVsZW1lbnQoImg2IixudWxsLCJBdXRob3JpemVkIiksUmUuY3JlYXRlRWxlbWVudCh3LG51bGwsUmUuY3JlYXRlRWxlbWVudChMLHtzb3VyY2U6cy5nZXQoImRlc2NyaXB0aW9uIil9KSksUmUuY3JlYXRlRWxlbWVudCh3LG51bGwsUmUuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtodG1sRm9yOiJhdXRoX3VzZXJuYW1lIn0sIlVzZXJuYW1lOiIpLCQ/UmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwiICIsJCwiICIpOlJlLmNyZWF0ZUVsZW1lbnQoeCxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoXyx7aWQ6ImF1dGhfdXNlcm5hbWUiLHR5cGU6InRleHQiLHJlcXVpcmVkOiJyZXF1aXJlZCIsbmFtZToidXNlcm5hbWUiLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2UsYXV0b0ZvY3VzOiEwfSkpKSxSZS5jcmVhdGVFbGVtZW50KHcsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6ImF1dGhfcGFzc3dvcmQifSwiUGFzc3dvcmQ6IiksJD9SZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCIgKioqKioqICIpOlJlLmNyZWF0ZUVsZW1lbnQoeCxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoXyx7aWQ6ImF1dGhfcGFzc3dvcmQiLGF1dG9Db21wbGV0ZToibmV3LXBhc3N3b3JkIixuYW1lOiJwYXNzd29yZCIsdHlwZToicGFzc3dvcmQiLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2V9KSkpLFYudmFsdWVTZXEoKS5tYXAoKChzLG8pPT5SZS5jcmVhdGVFbGVtZW50KEMse2Vycm9yOnMsa2V5Om99KSkpKX19ZnVuY3Rpb24gZXhhbXBsZV9FeGFtcGxlKHMpe2NvbnN0e2V4YW1wbGU6byxzaG93VmFsdWU6aSxnZXRDb21wb25lbnQ6YX09cyx1PWEoIk1hcmtkb3duIiwhMCksXz1hKCJIaWdobGlnaHRDb2RlIiwhMCk7cmV0dXJuIG8mJnplLk1hcC5pc01hcChvKT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImV4YW1wbGUifSxvLmdldCgiZGVzY3JpcHRpb24iKT9SZS5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIix7Y2xhc3NOYW1lOiJleGFtcGxlX19zZWN0aW9uIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJleGFtcGxlX19zZWN0aW9uLWhlYWRlciJ9LCJFeGFtcGxlIERlc2NyaXB0aW9uIiksUmUuY3JlYXRlRWxlbWVudCgicCIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KHUse3NvdXJjZTpvLmdldCgiZGVzY3JpcHRpb24iKX0pKSk6bnVsbCxpJiZvLmhhcygidmFsdWUiKT9SZS5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIix7Y2xhc3NOYW1lOiJleGFtcGxlX19zZWN0aW9uIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJleGFtcGxlX19zZWN0aW9uLWhlYWRlciJ9LCJFeGFtcGxlIFZhbHVlIiksUmUuY3JlYXRlRWxlbWVudChfLG51bGwsc3RyaW5naWZ5KG8uZ2V0KCJ2YWx1ZSIpKSkpOm51bGwpOm51bGx9Y2xhc3MgRXhhbXBsZXNTZWxlY3QgZXh0ZW5kcyBSZS5QdXJlQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9e2V4YW1wbGVzOigwLHplLk1hcCkoe30pLG9uU2VsZWN0OiguLi5zKT0+Y29uc29sZS5sb2coIkRFQlVHOiBFeGFtcGxlc1NlbGVjdCB3YXMgbm90IGdpdmVuIGFuIG9uU2VsZWN0IGNhbGxiYWNrIiwuLi5zKSxjdXJyZW50RXhhbXBsZUtleTpudWxsLHNob3dMYWJlbHM6ITB9O19vblNlbGVjdD0ocyx7aXNTeW50aGV0aWNDaGFuZ2U6bz0hMX09e30pPT57ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMucHJvcHMub25TZWxlY3QmJnRoaXMucHJvcHMub25TZWxlY3Qocyx7aXNTeW50aGV0aWNDaGFuZ2U6b30pfTtfb25Eb21TZWxlY3Q9cz0+e2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLnByb3BzLm9uU2VsZWN0KXtjb25zdCBvPXMudGFyZ2V0LnNlbGVjdGVkT3B0aW9uc1swXS5nZXRBdHRyaWJ1dGUoInZhbHVlIik7dGhpcy5fb25TZWxlY3Qobyx7aXNTeW50aGV0aWNDaGFuZ2U6ITF9KX19O2dldEN1cnJlbnRFeGFtcGxlPSgpPT57Y29uc3R7ZXhhbXBsZXM6cyxjdXJyZW50RXhhbXBsZUtleTpvfT10aGlzLnByb3BzLGk9cy5nZXQobyksYT1zLmtleVNlcSgpLmZpcnN0KCksdT1zLmdldChhKTtyZXR1cm4gaXx8dXx8KDAsemUuTWFwKSh7fSl9O2NvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7b25TZWxlY3Q6cyxleGFtcGxlczpvfT10aGlzLnByb3BzO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBzKXtjb25zdCBzPW8uZmlyc3QoKSxpPW8ua2V5T2Yocyk7dGhpcy5fb25TZWxlY3QoaSx7aXNTeW50aGV0aWNDaGFuZ2U6ITB9KX19VU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMocyl7Y29uc3R7Y3VycmVudEV4YW1wbGVLZXk6byxleGFtcGxlczppfT1zO2lmKGkhPT10aGlzLnByb3BzLmV4YW1wbGVzJiYhaS5oYXMobykpe2NvbnN0IHM9aS5maXJzdCgpLG89aS5rZXlPZihzKTt0aGlzLl9vblNlbGVjdChvLHtpc1N5bnRoZXRpY0NoYW5nZTohMH0pfX1yZW5kZXIoKXtjb25zdHtleGFtcGxlczpzLGN1cnJlbnRFeGFtcGxlS2V5Om8saXNWYWx1ZU1vZGlmaWVkOmksaXNNb2RpZmllZFZhbHVlQXZhaWxhYmxlOmEsc2hvd0xhYmVsczp1fT10aGlzLnByb3BzO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImV4YW1wbGVzLXNlbGVjdCJ9LHU/UmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiZXhhbXBsZXMtc2VsZWN0X19zZWN0aW9uLWxhYmVsIn0sIkV4YW1wbGVzOiAiKTpudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIse2NsYXNzTmFtZToiZXhhbXBsZXMtc2VsZWN0LWVsZW1lbnQiLG9uQ2hhbmdlOnRoaXMuX29uRG9tU2VsZWN0LHZhbHVlOmEmJmk/Il9fTU9ESUZJRURfX1ZBTFVFX18iOm98fCIifSxhP1JlLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIse3ZhbHVlOiJfX01PRElGSUVEX19WQUxVRV9fIn0sIltNb2RpZmllZCB2YWx1ZV0iKTpudWxsLHMubWFwKCgocyxvKT0+UmUuY3JlYXRlRWxlbWVudCgib3B0aW9uIix7a2V5Om8sdmFsdWU6b30semUuTWFwLmlzTWFwKHMpJiZzLmdldCgic3VtbWFyeSIpfHxvKSkpLnZhbHVlU2VxKCkpKX19Y29uc3Qgc3RyaW5naWZ5VW5sZXNzTGlzdD1zPT56ZS5MaXN0LmlzTGlzdChzKT9zOnN0cmluZ2lmeShzKTtjbGFzcyBFeGFtcGxlc1NlbGVjdFZhbHVlUmV0YWluZXIgZXh0ZW5kcyBSZS5QdXJlQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9e3VzZXJIYXNFZGl0ZWRCb2R5OiExLGV4YW1wbGVzOigwLHplLk1hcCkoe30pLGN1cnJlbnROYW1lc3BhY2U6Il9fREVGQVVMVF9fTkFNRVNQQUNFX18iLHNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnOigpPT57fSxvblNlbGVjdDooLi4ucyk9PmNvbnNvbGUubG9nKCJFeGFtcGxlc1NlbGVjdFZhbHVlUmV0YWluZXI6IG5vIGBvblNlbGVjdGAgZnVuY3Rpb24gd2FzIHByb3ZpZGVkIiwuLi5zKSx1cGRhdGVWYWx1ZTooLi4ucyk9PmNvbnNvbGUubG9nKCJFeGFtcGxlc1NlbGVjdFZhbHVlUmV0YWluZXI6IG5vIGB1cGRhdGVWYWx1ZWAgZnVuY3Rpb24gd2FzIHByb3ZpZGVkIiwuLi5zKX07Y29uc3RydWN0b3Iocyl7c3VwZXIocyk7Y29uc3Qgbz10aGlzLl9nZXRDdXJyZW50RXhhbXBsZVZhbHVlKCk7dGhpcy5zdGF0ZT17W3MuY3VycmVudE5hbWVzcGFjZV06KDAsemUuTWFwKSh7bGFzdFVzZXJFZGl0ZWRWYWx1ZTp0aGlzLnByb3BzLmN1cnJlbnRVc2VySW5wdXRWYWx1ZSxsYXN0RG93bnN0cmVhbVZhbHVlOm8saXNNb2RpZmllZFZhbHVlU2VsZWN0ZWQ6dGhpcy5wcm9wcy51c2VySGFzRWRpdGVkQm9keXx8dGhpcy5wcm9wcy5jdXJyZW50VXNlcklucHV0VmFsdWUhPT1vfSl9fWNvbXBvbmVudFdpbGxVbm1vdW50KCl7dGhpcy5wcm9wcy5zZXRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlRmxhZyghMSl9X2dldFN0YXRlRm9yQ3VycmVudE5hbWVzcGFjZT0oKT0+e2NvbnN0e2N1cnJlbnROYW1lc3BhY2U6c309dGhpcy5wcm9wcztyZXR1cm4odGhpcy5zdGF0ZVtzXXx8KDAsemUuTWFwKSgpKS50b09iamVjdCgpfTtfc2V0U3RhdGVGb3JDdXJyZW50TmFtZXNwYWNlPXM9Pntjb25zdHtjdXJyZW50TmFtZXNwYWNlOm99PXRoaXMucHJvcHM7cmV0dXJuIHRoaXMuX3NldFN0YXRlRm9yTmFtZXNwYWNlKG8scyl9O19zZXRTdGF0ZUZvck5hbWVzcGFjZT0ocyxvKT0+e2NvbnN0IGk9KHRoaXMuc3RhdGVbc118fCgwLHplLk1hcCkoKSkubWVyZ2VEZWVwKG8pO3JldHVybiB0aGlzLnNldFN0YXRlKHtbc106aX0pfTtfaXNDdXJyZW50VXNlcklucHV0U2FtZUFzRXhhbXBsZVZhbHVlPSgpPT57Y29uc3R7Y3VycmVudFVzZXJJbnB1dFZhbHVlOnN9PXRoaXMucHJvcHM7cmV0dXJuIHRoaXMuX2dldEN1cnJlbnRFeGFtcGxlVmFsdWUoKT09PXN9O19nZXRWYWx1ZUZvckV4YW1wbGU9KHMsbyk9Pntjb25zdHtleGFtcGxlczppfT1vfHx0aGlzLnByb3BzO3JldHVybiBzdHJpbmdpZnlVbmxlc3NMaXN0KChpfHwoMCx6ZS5NYXApKHt9KSkuZ2V0SW4oW3MsInZhbHVlIl0pKX07X2dldEN1cnJlbnRFeGFtcGxlVmFsdWU9cz0+e2NvbnN0e2N1cnJlbnRLZXk6b309c3x8dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5fZ2V0VmFsdWVGb3JFeGFtcGxlKG8sc3x8dGhpcy5wcm9wcyl9O19vbkV4YW1wbGVzU2VsZWN0PShzLHtpc1N5bnRoZXRpY0NoYW5nZTpvfT17fSwuLi5pKT0+e2NvbnN0e29uU2VsZWN0OmEsdXBkYXRlVmFsdWU6dSxjdXJyZW50VXNlcklucHV0VmFsdWU6Xyx1c2VySGFzRWRpdGVkQm9keTp3fT10aGlzLnByb3BzLHtsYXN0VXNlckVkaXRlZFZhbHVlOnh9PXRoaXMuX2dldFN0YXRlRm9yQ3VycmVudE5hbWVzcGFjZSgpLEM9dGhpcy5fZ2V0VmFsdWVGb3JFeGFtcGxlKHMpO2lmKCJfX01PRElGSUVEX19WQUxVRV9fIj09PXMpcmV0dXJuIHUoc3RyaW5naWZ5VW5sZXNzTGlzdCh4KSksdGhpcy5fc2V0U3RhdGVGb3JDdXJyZW50TmFtZXNwYWNlKHtpc01vZGlmaWVkVmFsdWVTZWxlY3RlZDohMH0pOyJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhKHMse2lzU3ludGhldGljQ2hhbmdlOm99LC4uLmkpLHRoaXMuX3NldFN0YXRlRm9yQ3VycmVudE5hbWVzcGFjZSh7bGFzdERvd25zdHJlYW1WYWx1ZTpDLGlzTW9kaWZpZWRWYWx1ZVNlbGVjdGVkOm8mJnd8fCEhXyYmXyE9PUN9KSxvfHwiZnVuY3Rpb24iPT10eXBlb2YgdSYmdShzdHJpbmdpZnlVbmxlc3NMaXN0KEMpKX07VU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMocyl7Y29uc3R7Y3VycmVudFVzZXJJbnB1dFZhbHVlOm8sZXhhbXBsZXM6aSxvblNlbGVjdDphLHVzZXJIYXNFZGl0ZWRCb2R5OnV9PXMse2xhc3RVc2VyRWRpdGVkVmFsdWU6XyxsYXN0RG93bnN0cmVhbVZhbHVlOnd9PXRoaXMuX2dldFN0YXRlRm9yQ3VycmVudE5hbWVzcGFjZSgpLHg9dGhpcy5fZ2V0VmFsdWVGb3JFeGFtcGxlKHMuY3VycmVudEtleSxzKSxDPWkuZmlsdGVyKChzPT56ZS5NYXAuaXNNYXAocykmJihzLmdldCgidmFsdWUiKT09PW98fHN0cmluZ2lmeShzLmdldCgidmFsdWUiKSk9PT1vKSkpO2lmKEMuc2l6ZSl7bGV0IG87bz1DLmhhcyhzLmN1cnJlbnRLZXkpP3MuY3VycmVudEtleTpDLmtleVNlcSgpLmZpcnN0KCksYShvLHtpc1N5bnRoZXRpY0NoYW5nZTohMH0pfWVsc2UgbyE9PXRoaXMucHJvcHMuY3VycmVudFVzZXJJbnB1dFZhbHVlJiZvIT09XyYmbyE9PXcmJih0aGlzLnByb3BzLnNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnKCEwKSx0aGlzLl9zZXRTdGF0ZUZvck5hbWVzcGFjZShzLmN1cnJlbnROYW1lc3BhY2Use2xhc3RVc2VyRWRpdGVkVmFsdWU6cy5jdXJyZW50VXNlcklucHV0VmFsdWUsaXNNb2RpZmllZFZhbHVlU2VsZWN0ZWQ6dXx8byE9PXh9KSl9cmVuZGVyKCl7Y29uc3R7Y3VycmVudFVzZXJJbnB1dFZhbHVlOnMsZXhhbXBsZXM6byxjdXJyZW50S2V5OmksZ2V0Q29tcG9uZW50OmEsdXNlckhhc0VkaXRlZEJvZHk6dX09dGhpcy5wcm9wcyx7bGFzdERvd25zdHJlYW1WYWx1ZTpfLGxhc3RVc2VyRWRpdGVkVmFsdWU6dyxpc01vZGlmaWVkVmFsdWVTZWxlY3RlZDp4fT10aGlzLl9nZXRTdGF0ZUZvckN1cnJlbnROYW1lc3BhY2UoKSxDPWEoIkV4YW1wbGVzU2VsZWN0Iik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoQyx7ZXhhbXBsZXM6byxjdXJyZW50RXhhbXBsZUtleTppLG9uU2VsZWN0OnRoaXMuX29uRXhhbXBsZXNTZWxlY3QsaXNNb2RpZmllZFZhbHVlQXZhaWxhYmxlOiEhdyYmdyE9PV8saXNWYWx1ZU1vZGlmaWVkOnZvaWQgMCE9PXMmJngmJnMhPT10aGlzLl9nZXRDdXJyZW50RXhhbXBsZVZhbHVlKCl8fHV9KX19ZnVuY3Rpb24gb2F1dGgyX2F1dGhvcml6ZV9hdXRob3JpemUoe2F1dGg6cyxhdXRoQWN0aW9uczpvLGVyckFjdGlvbnM6aSxjb25maWdzOmEsYXV0aENvbmZpZ3M6dT17fSxjdXJyZW50U2VydmVyOl99KXtsZXR7c2NoZW1hOncsc2NvcGVzOngsbmFtZTpDLGNsaWVudElkOmp9PXMsTD13LmdldCgiZmxvdyIpLEI9W107c3dpdGNoKEwpe2Nhc2UicGFzc3dvcmQiOnJldHVybiB2b2lkIG8uYXV0aG9yaXplUGFzc3dvcmQocyk7Y2FzZSJhcHBsaWNhdGlvbiI6Y2FzZSJjbGllbnRDcmVkZW50aWFscyI6Y2FzZSJjbGllbnRfY3JlZGVudGlhbHMiOnJldHVybiB2b2lkIG8uYXV0aG9yaXplQXBwbGljYXRpb24ocyk7Y2FzZSJhY2Nlc3NDb2RlIjpjYXNlImF1dGhvcml6YXRpb25Db2RlIjpjYXNlImF1dGhvcml6YXRpb25fY29kZSI6Qi5wdXNoKCJyZXNwb25zZV90eXBlPWNvZGUiKTticmVhaztjYXNlImltcGxpY2l0IjpCLnB1c2goInJlc3BvbnNlX3R5cGU9dG9rZW4iKX0ic3RyaW5nIj09dHlwZW9mIGomJkIucHVzaCgiY2xpZW50X2lkPSIrZW5jb2RlVVJJQ29tcG9uZW50KGopKTtsZXQgJD1hLm9hdXRoMlJlZGlyZWN0VXJsO2lmKHZvaWQgMD09PSQpcmV0dXJuIHZvaWQgaS5uZXdBdXRoRXJyKHthdXRoSWQ6Qyxzb3VyY2U6InZhbGlkYXRpb24iLGxldmVsOiJlcnJvciIsbWVzc2FnZToib2F1dGgyUmVkaXJlY3RVcmwgY29uZmlndXJhdGlvbiBpcyBub3QgcGFzc2VkLiBPYXV0aDIgYXV0aG9yaXphdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkLiJ9KTtCLnB1c2goInJlZGlyZWN0X3VyaT0iK2VuY29kZVVSSUNvbXBvbmVudCgkKSk7bGV0IFY9W107aWYoQXJyYXkuaXNBcnJheSh4KT9WPXg6V2UoKS5MaXN0LmlzTGlzdCh4KSYmKFY9eC50b0FycmF5KCkpLFYubGVuZ3RoPjApe2xldCBzPXUuc2NvcGVTZXBhcmF0b3J8fCIgIjtCLnB1c2goInNjb3BlPSIrZW5jb2RlVVJJQ29tcG9uZW50KFYuam9pbihzKSkpfWxldCBVPXV0aWxzX2J0b2EobmV3IERhdGUpO2lmKEIucHVzaCgic3RhdGU9IitlbmNvZGVVUklDb21wb25lbnQoVSkpLHZvaWQgMCE9PXUucmVhbG0mJkIucHVzaCgicmVhbG09IitlbmNvZGVVUklDb21wb25lbnQodS5yZWFsbSkpLCgiYXV0aG9yaXphdGlvbkNvZGUiPT09THx8ImF1dGhvcml6YXRpb25fY29kZSI9PT1MfHwiYWNjZXNzQ29kZSI9PT1MKSYmdS51c2VQa2NlV2l0aEF1dGhvcml6YXRpb25Db2RlR3JhbnQpe2NvbnN0IG89ZnVuY3Rpb24gZ2VuZXJhdGVDb2RlVmVyaWZpZXIoKXtyZXR1cm4gYjY0dG9CNjRVcmxFbmNvZGVkKHh0KCkoMzIpLnRvU3RyaW5nKCJiYXNlNjQiKSl9KCksaT1mdW5jdGlvbiBjcmVhdGVDb2RlQ2hhbGxlbmdlKHMpe3JldHVybiBiNjR0b0I2NFVybEVuY29kZWQoT3QoKSgic2hhMjU2IikudXBkYXRlKHMpLmRpZ2VzdCgiYmFzZTY0IikpfShvKTtCLnB1c2goImNvZGVfY2hhbGxlbmdlPSIraSksQi5wdXNoKCJjb2RlX2NoYWxsZW5nZV9tZXRob2Q9UzI1NiIpLHMuY29kZVZlcmlmaWVyPW99bGV0e2FkZGl0aW9uYWxRdWVyeVN0cmluZ1BhcmFtczp6fT11O2ZvcihsZXQgcyBpbiB6KXZvaWQgMCE9PXpbc10mJkIucHVzaChbcyx6W3NdXS5tYXAoZW5jb2RlVVJJQ29tcG9uZW50KS5qb2luKCI9IikpO2NvbnN0IFk9dy5nZXQoImF1dGhvcml6YXRpb25VcmwiKTtsZXQgWjtaPV8/TnQoKShzYW5pdGl6ZVVybChZKSxfLCEwKS50b1N0cmluZygpOnNhbml0aXplVXJsKFkpO2xldCBlZSxpZT1bWixCLmpvaW4oIiYiKV0uam9pbigic3RyaW5nIiE9dHlwZW9mIFl8fFkuaW5jbHVkZXMoIj8iKT8iJiI6Ij8iKTtlZT0iaW1wbGljaXQiPT09TD9vLnByZUF1dGhvcml6ZUltcGxpY2l0OnUudXNlQmFzaWNBdXRoZW50aWNhdGlvbldpdGhBY2Nlc3NDb2RlR3JhbnQ/by5hdXRob3JpemVBY2Nlc3NDb2RlV2l0aEJhc2ljQXV0aGVudGljYXRpb246by5hdXRob3JpemVBY2Nlc3NDb2RlV2l0aEZvcm1QYXJhbXMsby5hdXRoUG9wdXAoaWUse2F1dGg6cyxzdGF0ZTpVLHJlZGlyZWN0VXJsOiQsY2FsbGJhY2s6ZWUsZXJyQ2I6aS5uZXdBdXRoRXJyfSl9Y2xhc3MgT2F1dGgyIGV4dGVuZHMgUmUuQ29tcG9uZW50e2NvbnN0cnVjdG9yKHMsbyl7c3VwZXIocyxvKTtsZXR7bmFtZTppLHNjaGVtYTphLGF1dGhvcml6ZWQ6dSxhdXRoU2VsZWN0b3JzOl99PXRoaXMucHJvcHMsdz11JiZ1LmdldChpKSx4PV8uZ2V0Q29uZmlncygpfHx7fSxDPXcmJncuZ2V0KCJ1c2VybmFtZSIpfHwiIixqPXcmJncuZ2V0KCJjbGllbnRJZCIpfHx4LmNsaWVudElkfHwiIixMPXcmJncuZ2V0KCJjbGllbnRTZWNyZXQiKXx8eC5jbGllbnRTZWNyZXR8fCIiLEI9dyYmdy5nZXQoInBhc3N3b3JkVHlwZSIpfHwiYmFzaWMiLCQ9dyYmdy5nZXQoInNjb3BlcyIpfHx4LnNjb3Blc3x8W107InN0cmluZyI9PXR5cGVvZiAkJiYoJD0kLnNwbGl0KHguc2NvcGVTZXBhcmF0b3J8fCIgIikpLHRoaXMuc3RhdGU9e2FwcE5hbWU6eC5hcHBOYW1lLG5hbWU6aSxzY2hlbWE6YSxzY29wZXM6JCxjbGllbnRJZDpqLGNsaWVudFNlY3JldDpMLHVzZXJuYW1lOkMscGFzc3dvcmQ6IiIscGFzc3dvcmRUeXBlOkJ9fWNsb3NlPXM9PntzLnByZXZlbnREZWZhdWx0KCk7bGV0e2F1dGhBY3Rpb25zOm99PXRoaXMucHJvcHM7by5zaG93RGVmaW5pdGlvbnMoITEpfTthdXRob3JpemU9KCk9PntsZXR7YXV0aEFjdGlvbnM6cyxlcnJBY3Rpb25zOm8sZ2V0Q29uZmlnczppLGF1dGhTZWxlY3RvcnM6YSxvYXMzU2VsZWN0b3JzOnV9PXRoaXMucHJvcHMsXz1pKCksdz1hLmdldENvbmZpZ3MoKTtvLmNsZWFyKHthdXRoSWQ6bmFtZSx0eXBlOiJhdXRoIixzb3VyY2U6ImF1dGgifSksb2F1dGgyX2F1dGhvcml6ZV9hdXRob3JpemUoe2F1dGg6dGhpcy5zdGF0ZSxjdXJyZW50U2VydmVyOnUuc2VydmVyRWZmZWN0aXZlVmFsdWUodS5zZWxlY3RlZFNlcnZlcigpKSxhdXRoQWN0aW9uczpzLGVyckFjdGlvbnM6byxjb25maWdzOl8sYXV0aENvbmZpZ3M6d30pfTtvblNjb3BlQ2hhbmdlPXM9PntsZXR7dGFyZ2V0Om99PXMse2NoZWNrZWQ6aX09byxhPW8uZGF0YXNldC52YWx1ZTtpZihpJiYtMT09PXRoaXMuc3RhdGUuc2NvcGVzLmluZGV4T2YoYSkpe2xldCBzPXRoaXMuc3RhdGUuc2NvcGVzLmNvbmNhdChbYV0pO3RoaXMuc2V0U3RhdGUoe3Njb3BlczpzfSl9ZWxzZSFpJiZ0aGlzLnN0YXRlLnNjb3Blcy5pbmRleE9mKGEpPi0xJiZ0aGlzLnNldFN0YXRlKHtzY29wZXM6dGhpcy5zdGF0ZS5zY29wZXMuZmlsdGVyKChzPT5zIT09YSkpfSl9O29uSW5wdXRDaGFuZ2U9cz0+e2xldHt0YXJnZXQ6e2RhdGFzZXQ6e25hbWU6b30sdmFsdWU6aX19PXMsYT17W29dOml9O3RoaXMuc2V0U3RhdGUoYSl9O3NlbGVjdFNjb3Blcz1zPT57cy50YXJnZXQuZGF0YXNldC5hbGw/dGhpcy5zZXRTdGF0ZSh7c2NvcGVzOkFycmF5LmZyb20oKHRoaXMucHJvcHMuc2NoZW1hLmdldCgiYWxsb3dlZFNjb3BlcyIpfHx0aGlzLnByb3BzLnNjaGVtYS5nZXQoInNjb3BlcyIpKS5rZXlzKCkpfSk6dGhpcy5zZXRTdGF0ZSh7c2NvcGVzOltdfSl9O2xvZ291dD1zPT57cy5wcmV2ZW50RGVmYXVsdCgpO2xldHthdXRoQWN0aW9uczpvLGVyckFjdGlvbnM6aSxuYW1lOmF9PXRoaXMucHJvcHM7aS5jbGVhcih7YXV0aElkOmEsdHlwZToiYXV0aCIsc291cmNlOiJhdXRoIn0pLG8ubG9nb3V0V2l0aFBlcnNpc3RPcHRpb24oW2FdKX07cmVuZGVyKCl7bGV0e3NjaGVtYTpzLGdldENvbXBvbmVudDpvLGF1dGhTZWxlY3RvcnM6aSxlcnJTZWxlY3RvcnM6YSxuYW1lOnUsc3BlY1NlbGVjdG9yczpffT10aGlzLnByb3BzO2NvbnN0IHc9bygiSW5wdXQiKSx4PW8oIlJvdyIpLEM9bygiQ29sIiksaj1vKCJCdXR0b24iKSxMPW8oImF1dGhFcnJvciIpLEI9bygiSnVtcFRvUGF0aCIsITApLCQ9bygiTWFya2Rvd24iLCEwKSxWPW8oIkluaXRpYWxpemVkSW5wdXQiKSx7aXNPQVMzOlV9PV87bGV0IHo9VSgpP3MuZ2V0KCJvcGVuSWRDb25uZWN0VXJsIik6bnVsbDtjb25zdCBZPSJpbXBsaWNpdCIsWj0icGFzc3dvcmQiLGVlPVUoKT96PyJhdXRob3JpemF0aW9uX2NvZGUiOiJhdXRob3JpemF0aW9uQ29kZSI6ImFjY2Vzc0NvZGUiLGllPVUoKT96PyJjbGllbnRfY3JlZGVudGlhbHMiOiJjbGllbnRDcmVkZW50aWFscyI6ImFwcGxpY2F0aW9uIixhZT1pLnNlbGVjdEF1dGhQYXRoKHUpO2xldCBjZT0hIShpLmdldENvbmZpZ3MoKXx8e30pLnVzZVBrY2VXaXRoQXV0aG9yaXphdGlvbkNvZGVHcmFudCxsZT1zLmdldCgiZmxvdyIpLHBlPWxlPT09ZWUmJmNlP2xlKyIgd2l0aCBQS0NFIjpsZSxkZT1zLmdldCgiYWxsb3dlZFNjb3BlcyIpfHxzLmdldCgic2NvcGVzIiksZmU9ISFpLmF1dGhvcml6ZWQoKS5nZXQodSkseWU9YS5hbGxFcnJvcnMoKS5maWx0ZXIoKHM9PnMuZ2V0KCJhdXRoSWQiKT09PXUpKSxiZT0heWUuZmlsdGVyKChzPT4idmFsaWRhdGlvbiI9PT1zLmdldCgic291cmNlIikpKS5zaXplLF9lPXMuZ2V0KCJkZXNjcmlwdGlvbiIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsdSwiIChPQXV0aDIsICIscGUsIikgIixSZS5jcmVhdGVFbGVtZW50KEIse3BhdGg6YWV9KSksdGhpcy5zdGF0ZS5hcHBOYW1lP1JlLmNyZWF0ZUVsZW1lbnQoImg1IixudWxsLCJBcHBsaWNhdGlvbjogIix0aGlzLnN0YXRlLmFwcE5hbWUsIiAiKTpudWxsLF9lJiZSZS5jcmVhdGVFbGVtZW50KCQse3NvdXJjZTpzLmdldCgiZGVzY3JpcHRpb24iKX0pLGZlJiZSZS5jcmVhdGVFbGVtZW50KCJoNiIsbnVsbCwiQXV0aG9yaXplZCIpLHomJlJlLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIk9wZW5JRCBDb25uZWN0IFVSTDogIixSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLHopKSwobGU9PT1ZfHxsZT09PWVlKSYmUmUuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiQXV0aG9yaXphdGlvbiBVUkw6ICIsUmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCxzLmdldCgiYXV0aG9yaXphdGlvblVybCIpKSksKGxlPT09Wnx8bGU9PT1lZXx8bGU9PT1pZSkmJlJlLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIlRva2VuIFVSTDoiLFJlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIiAiLHMuZ2V0KCJ0b2tlblVybCIpKSksUmUuY3JlYXRlRWxlbWVudCgicCIse2NsYXNzTmFtZToiZmxvdyJ9LCJGbG93OiAiLFJlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwscGUpKSxsZSE9PVo/bnVsbDpSZS5jcmVhdGVFbGVtZW50KHgsbnVsbCxSZS5jcmVhdGVFbGVtZW50KHgsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6Im9hdXRoX3VzZXJuYW1lIn0sInVzZXJuYW1lOiIpLGZlP1JlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIiAiLHRoaXMuc3RhdGUudXNlcm5hbWUsIiAiKTpSZS5jcmVhdGVFbGVtZW50KEMse3RhYmxldDoxMCxkZXNrdG9wOjEwfSxSZS5jcmVhdGVFbGVtZW50KCJpbnB1dCIse2lkOiJvYXV0aF91c2VybmFtZSIsdHlwZToidGV4dCIsImRhdGEtbmFtZSI6InVzZXJuYW1lIixvbkNoYW5nZTp0aGlzLm9uSW5wdXRDaGFuZ2UsYXV0b0ZvY3VzOiEwfSkpKSxSZS5jcmVhdGVFbGVtZW50KHgsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6Im9hdXRoX3Bhc3N3b3JkIn0sInBhc3N3b3JkOiIpLGZlP1JlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIiAqKioqKiogIik6UmUuY3JlYXRlRWxlbWVudChDLHt0YWJsZXQ6MTAsZGVza3RvcDoxMH0sUmUuY3JlYXRlRWxlbWVudCgiaW5wdXQiLHtpZDoib2F1dGhfcGFzc3dvcmQiLHR5cGU6InBhc3N3b3JkIiwiZGF0YS1uYW1lIjoicGFzc3dvcmQiLG9uQ2hhbmdlOnRoaXMub25JbnB1dENoYW5nZX0pKSksUmUuY3JlYXRlRWxlbWVudCh4LG51bGwsUmUuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtodG1sRm9yOiJwYXNzd29yZF90eXBlIn0sIkNsaWVudCBjcmVkZW50aWFscyBsb2NhdGlvbjoiKSxmZT9SZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCIgIix0aGlzLnN0YXRlLnBhc3N3b3JkVHlwZSwiICIpOlJlLmNyZWF0ZUVsZW1lbnQoQyx7dGFibGV0OjEwLGRlc2t0b3A6MTB9LFJlLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIse2lkOiJwYXNzd29yZF90eXBlIiwiZGF0YS1uYW1lIjoicGFzc3dvcmRUeXBlIixvbkNoYW5nZTp0aGlzLm9uSW5wdXRDaGFuZ2V9LFJlLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIse3ZhbHVlOiJiYXNpYyJ9LCJBdXRob3JpemF0aW9uIGhlYWRlciIpLFJlLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIse3ZhbHVlOiJyZXF1ZXN0LWJvZHkifSwiUmVxdWVzdCBib2R5IikpKSkpLChsZT09PWllfHxsZT09PVl8fGxlPT09ZWV8fGxlPT09WikmJighZmV8fGZlJiZ0aGlzLnN0YXRlLmNsaWVudElkKSYmUmUuY3JlYXRlRWxlbWVudCh4LG51bGwsUmUuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtodG1sRm9yOmBjbGllbnRfaWRfJHtsZX1gfSwiY2xpZW50X2lkOiIpLGZlP1JlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIiAqKioqKiogIik6UmUuY3JlYXRlRWxlbWVudChDLHt0YWJsZXQ6MTAsZGVza3RvcDoxMH0sUmUuY3JlYXRlRWxlbWVudChWLHtpZDpgY2xpZW50X2lkXyR7bGV9YCx0eXBlOiJ0ZXh0IixyZXF1aXJlZDpsZT09PVosaW5pdGlhbFZhbHVlOnRoaXMuc3RhdGUuY2xpZW50SWQsImRhdGEtbmFtZSI6ImNsaWVudElkIixvbkNoYW5nZTp0aGlzLm9uSW5wdXRDaGFuZ2V9KSkpLChsZT09PWllfHxsZT09PWVlfHxsZT09PVopJiZSZS5jcmVhdGVFbGVtZW50KHgsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6YGNsaWVudF9zZWNyZXRfJHtsZX1gfSwiY2xpZW50X3NlY3JldDoiKSxmZT9SZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCIgKioqKioqICIpOlJlLmNyZWF0ZUVsZW1lbnQoQyx7dGFibGV0OjEwLGRlc2t0b3A6MTB9LFJlLmNyZWF0ZUVsZW1lbnQoVix7aWQ6YGNsaWVudF9zZWNyZXRfJHtsZX1gLGluaXRpYWxWYWx1ZTp0aGlzLnN0YXRlLmNsaWVudFNlY3JldCx0eXBlOiJwYXNzd29yZCIsImRhdGEtbmFtZSI6ImNsaWVudFNlY3JldCIsb25DaGFuZ2U6dGhpcy5vbklucHV0Q2hhbmdlfSkpKSwhZmUmJmRlJiZkZS5zaXplP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToic2NvcGVzIn0sUmUuY3JlYXRlRWxlbWVudCgiaDIiLG51bGwsIlNjb3BlczoiLFJlLmNyZWF0ZUVsZW1lbnQoImEiLHtvbkNsaWNrOnRoaXMuc2VsZWN0U2NvcGVzLCJkYXRhLWFsbCI6ITB9LCJzZWxlY3QgYWxsIiksUmUuY3JlYXRlRWxlbWVudCgiYSIse29uQ2xpY2s6dGhpcy5zZWxlY3RTY29wZXN9LCJzZWxlY3Qgbm9uZSIpKSxkZS5tYXAoKChzLG8pPT5SZS5jcmVhdGVFbGVtZW50KHgse2tleTpvfSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImNoZWNrYm94In0sUmUuY3JlYXRlRWxlbWVudCh3LHsiZGF0YS12YWx1ZSI6byxpZDpgJHtvfS0ke2xlfS1jaGVja2JveC0ke3RoaXMuc3RhdGUubmFtZX1gLGRpc2FibGVkOmZlLGNoZWNrZWQ6dGhpcy5zdGF0ZS5zY29wZXMuaW5jbHVkZXMobyksdHlwZToiY2hlY2tib3giLG9uQ2hhbmdlOnRoaXMub25TY29wZUNoYW5nZX0pLFJlLmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjpgJHtvfS0ke2xlfS1jaGVja2JveC0ke3RoaXMuc3RhdGUubmFtZX1gfSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJpdGVtIn0pLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidGV4dCJ9LFJlLmNyZWF0ZUVsZW1lbnQoInAiLHtjbGFzc05hbWU6Im5hbWUifSxvKSxSZS5jcmVhdGVFbGVtZW50KCJwIix7Y2xhc3NOYW1lOiJkZXNjcmlwdGlvbiJ9LHMpKSkpKSkpLnRvQXJyYXkoKSk6bnVsbCx5ZS52YWx1ZVNlcSgpLm1hcCgoKHMsbyk9PlJlLmNyZWF0ZUVsZW1lbnQoTCx7ZXJyb3I6cyxrZXk6b30pKSksUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJhdXRoLWJ0bi13cmFwcGVyIn0sYmUmJihmZT9SZS5jcmVhdGVFbGVtZW50KGose2NsYXNzTmFtZToiYnRuIG1vZGFsLWJ0biBhdXRoIGF1dGhvcml6ZSIsb25DbGljazp0aGlzLmxvZ291dCwiYXJpYS1sYWJlbCI6IlJlbW92ZSBhdXRob3JpemF0aW9uIn0sIkxvZ291dCIpOlJlLmNyZWF0ZUVsZW1lbnQoaix7Y2xhc3NOYW1lOiJidG4gbW9kYWwtYnRuIGF1dGggYXV0aG9yaXplIixvbkNsaWNrOnRoaXMuYXV0aG9yaXplLCJhcmlhLWxhYmVsIjoiQXBwbHkgZ2l2ZW4gT0F1dGgyIGNyZWRlbnRpYWxzIn0sIkF1dGhvcml6ZSIpKSxSZS5jcmVhdGVFbGVtZW50KGose2NsYXNzTmFtZToiYnRuIG1vZGFsLWJ0biBhdXRoIGJ0bi1kb25lIixvbkNsaWNrOnRoaXMuY2xvc2V9LCJDbG9zZSIpKSl9fWNsYXNzIENsZWFyIGV4dGVuZHMgUmUuQ29tcG9uZW50e29uQ2xpY2s9KCk9PntsZXR7c3BlY0FjdGlvbnM6cyxwYXRoOm8sbWV0aG9kOml9PXRoaXMucHJvcHM7cy5jbGVhclJlc3BvbnNlKG8saSkscy5jbGVhclJlcXVlc3QobyxpKX07cmVuZGVyKCl7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse2NsYXNzTmFtZToiYnRuIGJ0bi1jbGVhciBvcGJsb2NrLWNvbnRyb2xfX2J0biIsb25DbGljazp0aGlzLm9uQ2xpY2t9LCJDbGVhciIpfX1jb25zdCBsaXZlX3Jlc3BvbnNlX0hlYWRlcnM9KHtoZWFkZXJzOnN9KT0+UmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImg1IixudWxsLCJSZXNwb25zZSBoZWFkZXJzIiksUmUuY3JlYXRlRWxlbWVudCgicHJlIix7Y2xhc3NOYW1lOiJtaWNyb2xpZ2h0In0scykpLER1cmF0aW9uPSh7ZHVyYXRpb246c30pPT5SZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiaDUiLG51bGwsIlJlcXVlc3QgZHVyYXRpb24iKSxSZS5jcmVhdGVFbGVtZW50KCJwcmUiLHtjbGFzc05hbWU6Im1pY3JvbGlnaHQifSxzLCIgbXMiKSk7Y2xhc3MgTGl2ZVJlc3BvbnNlIGV4dGVuZHMgUmUuQ29tcG9uZW50e3Nob3VsZENvbXBvbmVudFVwZGF0ZShzKXtyZXR1cm4gdGhpcy5wcm9wcy5yZXNwb25zZSE9PXMucmVzcG9uc2V8fHRoaXMucHJvcHMucGF0aCE9PXMucGF0aHx8dGhpcy5wcm9wcy5tZXRob2QhPT1zLm1ldGhvZHx8dGhpcy5wcm9wcy5kaXNwbGF5UmVxdWVzdER1cmF0aW9uIT09cy5kaXNwbGF5UmVxdWVzdER1cmF0aW9ufXJlbmRlcigpe2NvbnN0e3Jlc3BvbnNlOnMsZ2V0Q29tcG9uZW50Om8sZ2V0Q29uZmlnczppLGRpc3BsYXlSZXF1ZXN0RHVyYXRpb246YSxzcGVjU2VsZWN0b3JzOnUscGF0aDpfLG1ldGhvZDp3fT10aGlzLnByb3BzLHtzaG93TXV0YXRlZFJlcXVlc3Q6eCxyZXF1ZXN0U25pcHBldHNFbmFibGVkOkN9PWkoKSxqPXg/dS5tdXRhdGVkUmVxdWVzdEZvcihfLHcpOnUucmVxdWVzdEZvcihfLHcpLEw9cy5nZXQoInN0YXR1cyIpLEI9ai5nZXQoInVybCIpLCQ9cy5nZXQoImhlYWRlcnMiKS50b0pTKCksVj1zLmdldCgibm90RG9jdW1lbnRlZCIpLFU9cy5nZXQoImVycm9yIiksej1zLmdldCgidGV4dCIpLFk9cy5nZXQoImR1cmF0aW9uIiksWj1PYmplY3Qua2V5cygkKSxlZT0kWyJjb250ZW50LXR5cGUiXXx8JFsiQ29udGVudC1UeXBlIl0saWU9bygicmVzcG9uc2VCb2R5IiksYWU9Wi5tYXAoKHM9Pnt2YXIgbz1BcnJheS5pc0FycmF5KCRbc10pPyRbc10uam9pbigpOiRbc107cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6ImhlYWRlcmxpbmUiLGtleTpzfSwiICIscywiOiAiLG8sIiAiKX0pKSxjZT0wIT09YWUubGVuZ3RoLGxlPW8oIk1hcmtkb3duIiwhMCkscGU9bygiUmVxdWVzdFNuaXBwZXRzIiwhMCksZGU9bygiY3VybCIsITApO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsaiYmQz9SZS5jcmVhdGVFbGVtZW50KHBlLHtyZXF1ZXN0Omp9KTpSZS5jcmVhdGVFbGVtZW50KGRlLHtyZXF1ZXN0Omp9KSxCJiZSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJyZXF1ZXN0LXVybCJ9LFJlLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLCJSZXF1ZXN0IFVSTCIpLFJlLmNyZWF0ZUVsZW1lbnQoInByZSIse2NsYXNzTmFtZToibWljcm9saWdodCJ9LEIpKSksUmUuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsIlNlcnZlciByZXNwb25zZSIpLFJlLmNyZWF0ZUVsZW1lbnQoInRhYmxlIix7Y2xhc3NOYW1lOiJyZXNwb25zZXMtdGFibGUgbGl2ZS1yZXNwb25zZXMtdGFibGUifSxSZS5jcmVhdGVFbGVtZW50KCJ0aGVhZCIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJ0ciIse2NsYXNzTmFtZToicmVzcG9uc2VzLWhlYWRlciJ9LFJlLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJjb2xfaGVhZGVyIHJlc3BvbnNlLWNvbF9zdGF0dXMifSwiQ29kZSIpLFJlLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJjb2xfaGVhZGVyIHJlc3BvbnNlLWNvbF9kZXNjcmlwdGlvbiJ9LCJEZXRhaWxzIikpKSxSZS5jcmVhdGVFbGVtZW50KCJ0Ym9keSIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJ0ciIse2NsYXNzTmFtZToicmVzcG9uc2UifSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToicmVzcG9uc2UtY29sX3N0YXR1cyJ9LEwsVj9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InJlc3BvbnNlLXVuZG9jdW1lbnRlZCJ9LFJlLmNyZWF0ZUVsZW1lbnQoImkiLG51bGwsIiBVbmRvY3VtZW50ZWQgIikpOm51bGwpLFJlLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJyZXNwb25zZS1jb2xfZGVzY3JpcHRpb24ifSxVP1JlLmNyZWF0ZUVsZW1lbnQobGUse3NvdXJjZTpgJHsiIiE9PXMuZ2V0KCJuYW1lIik/YCR7cy5nZXQoIm5hbWUiKX06IGA6IiJ9JHtzLmdldCgibWVzc2FnZSIpfWB9KTpudWxsLHo/UmUuY3JlYXRlRWxlbWVudChpZSx7Y29udGVudDp6LGNvbnRlbnRUeXBlOmVlLHVybDpCLGhlYWRlcnM6JCxnZXRDb25maWdzOmksZ2V0Q29tcG9uZW50Om99KTpudWxsLGNlP1JlLmNyZWF0ZUVsZW1lbnQobGl2ZV9yZXNwb25zZV9IZWFkZXJzLHtoZWFkZXJzOmFlfSk6bnVsbCxhJiZZP1JlLmNyZWF0ZUVsZW1lbnQoRHVyYXRpb24se2R1cmF0aW9uOll9KTpudWxsKSkpKSl9fWNsYXNzIE9ubGluZVZhbGlkYXRvckJhZGdlIGV4dGVuZHMgUmUuQ29tcG9uZW50e2NvbnN0cnVjdG9yKHMsbyl7c3VwZXIocyxvKTtsZXR7Z2V0Q29uZmlnczppfT1zLHt2YWxpZGF0b3JVcmw6YX09aSgpO3RoaXMuc3RhdGU9e3VybDp0aGlzLmdldERlZmluaXRpb25VcmwoKSx2YWxpZGF0b3JVcmw6dm9pZCAwPT09YT8iaHR0cHM6Ly92YWxpZGF0b3Iuc3dhZ2dlci5pby92YWxpZGF0b3IiOmF9fWdldERlZmluaXRpb25Vcmw9KCk9PntsZXR7c3BlY1NlbGVjdG9yczpzfT10aGlzLnByb3BzO3JldHVybiBuZXcoTnQoKSkocy51cmwoKSxsdC5sb2NhdGlvbikudG9TdHJpbmcoKX07VU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMocyl7bGV0e2dldENvbmZpZ3M6b309cyx7dmFsaWRhdG9yVXJsOml9PW8oKTt0aGlzLnNldFN0YXRlKHt1cmw6dGhpcy5nZXREZWZpbml0aW9uVXJsKCksdmFsaWRhdG9yVXJsOnZvaWQgMD09PWk/Imh0dHBzOi8vdmFsaWRhdG9yLnN3YWdnZXIuaW8vdmFsaWRhdG9yIjppfSl9cmVuZGVyKCl7bGV0e2dldENvbmZpZ3M6c309dGhpcy5wcm9wcyx7c3BlYzpvfT1zKCksaT1zYW5pdGl6ZVVybCh0aGlzLnN0YXRlLnZhbGlkYXRvclVybCk7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBvJiZPYmplY3Qua2V5cyhvKS5sZW5ndGg/bnVsbDp0aGlzLnN0YXRlLnVybCYmcmVxdWlyZXNWYWxpZGF0aW9uVVJMKHRoaXMuc3RhdGUudmFsaWRhdG9yVXJsKSYmcmVxdWlyZXNWYWxpZGF0aW9uVVJMKHRoaXMuc3RhdGUudXJsKT9SZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJmbG9hdC1yaWdodCJ9LFJlLmNyZWF0ZUVsZW1lbnQoImEiLHt0YXJnZXQ6Il9ibGFuayIscmVsOiJub29wZW5lciBub3JlZmVycmVyIixocmVmOmAke2l9L2RlYnVnP3VybD0ke2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLnN0YXRlLnVybCl9YH0sUmUuY3JlYXRlRWxlbWVudChWYWxpZGF0b3JJbWFnZSx7c3JjOmAke2l9P3VybD0ke2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLnN0YXRlLnVybCl9YCxhbHQ6Ik9ubGluZSB2YWxpZGF0b3IgYmFkZ2UifSkpKTpudWxsfX1jbGFzcyBWYWxpZGF0b3JJbWFnZSBleHRlbmRzIFJlLkNvbXBvbmVudHtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLnN0YXRlPXtsb2FkZWQ6ITEsZXJyb3I6ITF9fWNvbXBvbmVudERpZE1vdW50KCl7Y29uc3Qgcz1uZXcgSW1hZ2U7cy5vbmxvYWQ9KCk9Pnt0aGlzLnNldFN0YXRlKHtsb2FkZWQ6ITB9KX0scy5vbmVycm9yPSgpPT57dGhpcy5zZXRTdGF0ZSh7ZXJyb3I6ITB9KX0scy5zcmM9dGhpcy5wcm9wcy5zcmN9VU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMocyl7aWYocy5zcmMhPT10aGlzLnByb3BzLnNyYyl7Y29uc3Qgbz1uZXcgSW1hZ2U7by5vbmxvYWQ9KCk9Pnt0aGlzLnNldFN0YXRlKHtsb2FkZWQ6ITB9KX0sby5vbmVycm9yPSgpPT57dGhpcy5zZXRTdGF0ZSh7ZXJyb3I6ITB9KX0sby5zcmM9cy5zcmN9fXJlbmRlcigpe3JldHVybiB0aGlzLnN0YXRlLmVycm9yP1JlLmNyZWF0ZUVsZW1lbnQoImltZyIse2FsdDoiRXJyb3IifSk6dGhpcy5zdGF0ZS5sb2FkZWQ/UmUuY3JlYXRlRWxlbWVudCgiaW1nIix7c3JjOnRoaXMucHJvcHMuc3JjLGFsdDp0aGlzLnByb3BzLmFsdH0pOm51bGx9fWNsYXNzIE9wZXJhdGlvbnMgZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7bGV0e3NwZWNTZWxlY3RvcnM6c309dGhpcy5wcm9wcztjb25zdCBvPXMudGFnZ2VkT3BlcmF0aW9ucygpO3JldHVybiAwPT09by5zaXplP1JlLmNyZWF0ZUVsZW1lbnQoImgzIixudWxsLCIgTm8gb3BlcmF0aW9ucyBkZWZpbmVkIGluIHNwZWMhIik6UmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLG8ubWFwKHRoaXMucmVuZGVyT3BlcmF0aW9uVGFnKS50b0FycmF5KCksby5zaXplPDE/UmUuY3JlYXRlRWxlbWVudCgiaDMiLG51bGwsIiBObyBvcGVyYXRpb25zIGRlZmluZWQgaW4gc3BlYyEgIik6bnVsbCl9cmVuZGVyT3BlcmF0aW9uVGFnPShzLG8pPT57Y29uc3R7c3BlY1NlbGVjdG9yczppLGdldENvbXBvbmVudDphLG9hczNTZWxlY3RvcnM6dSxsYXlvdXRTZWxlY3RvcnM6XyxsYXlvdXRBY3Rpb25zOncsZ2V0Q29uZmlnczp4fT10aGlzLnByb3BzLEM9aS52YWxpZE9wZXJhdGlvbk1ldGhvZHMoKSxqPWEoIk9wZXJhdGlvbkNvbnRhaW5lciIsITApLEw9YSgiT3BlcmF0aW9uVGFnIiksQj1zLmdldCgib3BlcmF0aW9ucyIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KEwse2tleToib3BlcmF0aW9uLSIrbyx0YWdPYmo6cyx0YWc6byxvYXMzU2VsZWN0b3JzOnUsbGF5b3V0U2VsZWN0b3JzOl8sbGF5b3V0QWN0aW9uczp3LGdldENvbmZpZ3M6eCxnZXRDb21wb25lbnQ6YSxzcGVjVXJsOmkudXJsKCl9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BlcmF0aW9uLXRhZy1jb250ZW50In0sQi5tYXAoKHM9Pntjb25zdCBpPXMuZ2V0KCJwYXRoIiksYT1zLmdldCgibWV0aG9kIiksdT1XZSgpLkxpc3QoWyJwYXRocyIsaSxhXSk7cmV0dXJuLTE9PT1DLmluZGV4T2YoYSk/bnVsbDpSZS5jcmVhdGVFbGVtZW50KGose2tleTpgJHtpfS0ke2F9YCxzcGVjUGF0aDp1LG9wOnMscGF0aDppLG1ldGhvZDphLHRhZzpvfSl9KSkudG9BcnJheSgpKSl9fWNsYXNzIE9wZXJhdGlvblRhZyBleHRlbmRzIFJlLkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXt0YWdPYmo6V2UoKS5mcm9tSlMoe30pLHRhZzoiIn07cmVuZGVyKCl7Y29uc3R7dGFnT2JqOnMsdGFnOm8sY2hpbGRyZW46aSxvYXMzU2VsZWN0b3JzOmEsbGF5b3V0U2VsZWN0b3JzOnUsbGF5b3V0QWN0aW9uczpfLGdldENvbmZpZ3M6dyxnZXRDb21wb25lbnQ6eCxzcGVjVXJsOkN9PXRoaXMucHJvcHM7bGV0e2RvY0V4cGFuc2lvbjpqLGRlZXBMaW5raW5nOkx9PXcoKTtjb25zdCBCPXgoIkNvbGxhcHNlIiksJD14KCJNYXJrZG93biIsITApLFY9eCgiRGVlcExpbmsiKSxVPXgoIkxpbmsiKSx6PXgoIkFycm93VXBJY29uIiksWT14KCJBcnJvd0Rvd25JY29uIik7bGV0IFosZWU9cy5nZXRJbihbInRhZ0RldGFpbHMiLCJkZXNjcmlwdGlvbiJdLG51bGwpLGllPXMuZ2V0SW4oWyJ0YWdEZXRhaWxzIiwiZXh0ZXJuYWxEb2NzIiwiZGVzY3JpcHRpb24iXSksYWU9cy5nZXRJbihbInRhZ0RldGFpbHMiLCJleHRlcm5hbERvY3MiLCJ1cmwiXSk7Wj1pc0Z1bmMoYSkmJmlzRnVuYyhhLnNlbGVjdGVkU2VydmVyKT9zYWZlQnVpbGRVcmwoYWUsQyx7c2VsZWN0ZWRTZXJ2ZXI6YS5zZWxlY3RlZFNlcnZlcigpfSk6YWU7bGV0IGNlPVsib3BlcmF0aW9ucy10YWciLG9dLGxlPXUuaXNTaG93bihjZSwiZnVsbCI9PT1qfHwibGlzdCI9PT1qKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmxlPyJvcGJsb2NrLXRhZy1zZWN0aW9uIGlzLW9wZW4iOiJvcGJsb2NrLXRhZy1zZWN0aW9uIn0sUmUuY3JlYXRlRWxlbWVudCgiaDMiLHtvbkNsaWNrOigpPT5fLnNob3coY2UsIWxlKSxjbGFzc05hbWU6ZWU/Im9wYmxvY2stdGFnIjoib3BibG9jay10YWcgbm8tZGVzYyIsaWQ6Y2UubWFwKChzPT5lc2NhcGVEZWVwTGlua1BhdGgocykpKS5qb2luKCItIiksImRhdGEtdGFnIjpvLCJkYXRhLWlzLW9wZW4iOmxlfSxSZS5jcmVhdGVFbGVtZW50KFYse2VuYWJsZWQ6TCxpc1Nob3duOmxlLHBhdGg6Y3JlYXRlRGVlcExpbmtQYXRoKG8pLHRleHQ6b30pLGVlP1JlLmNyZWF0ZUVsZW1lbnQoInNtYWxsIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoJCx7c291cmNlOmVlfSkpOlJlLmNyZWF0ZUVsZW1lbnQoInNtYWxsIixudWxsKSxaP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaW5mb19fZXh0ZXJuYWxkb2NzIn0sUmUuY3JlYXRlRWxlbWVudCgic21hbGwiLG51bGwsUmUuY3JlYXRlRWxlbWVudChVLHtocmVmOnNhbml0aXplVXJsKFopLG9uQ2xpY2s6cz0+cy5zdG9wUHJvcGFnYXRpb24oKSx0YXJnZXQ6Il9ibGFuayJ9LGllfHxaKSkpOm51bGwsUmUuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7ImFyaWEtZXhwYW5kZWQiOmxlLGNsYXNzTmFtZToiZXhwYW5kLW9wZXJhdGlvbiIsdGl0bGU6bGU/IkNvbGxhcHNlIG9wZXJhdGlvbiI6IkV4cGFuZCBvcGVyYXRpb24iLG9uQ2xpY2s6KCk9Pl8uc2hvdyhjZSwhbGUpfSxsZT9SZS5jcmVhdGVFbGVtZW50KHose2NsYXNzTmFtZToiYXJyb3cifSk6UmUuY3JlYXRlRWxlbWVudChZLHtjbGFzc05hbWU6ImFycm93In0pKSksUmUuY3JlYXRlRWxlbWVudChCLHtpc09wZW5lZDpsZX0saSkpfX1jbGFzcyBvcGVyYXRpb25fT3BlcmF0aW9uIGV4dGVuZHMgUmUuUHVyZUNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXtvcGVyYXRpb246bnVsbCxyZXNwb25zZTpudWxsLHJlcXVlc3Q6bnVsbCxzcGVjUGF0aDooMCx6ZS5MaXN0KSgpLHN1bW1hcnk6IiJ9O3JlbmRlcigpe2xldHtzcGVjUGF0aDpzLHJlc3BvbnNlOm8scmVxdWVzdDppLHRvZ2dsZVNob3duOmEsb25UcnlvdXRDbGljazp1LG9uUmVzZXRDbGljazpfLG9uQ2FuY2VsQ2xpY2s6dyxvbkV4ZWN1dGU6eCxmbjpDLGdldENvbXBvbmVudDpqLGdldENvbmZpZ3M6TCxzcGVjQWN0aW9uczpCLHNwZWNTZWxlY3RvcnM6JCxhdXRoQWN0aW9uczpWLGF1dGhTZWxlY3RvcnM6VSxvYXMzQWN0aW9uczp6LG9hczNTZWxlY3RvcnM6WX09dGhpcy5wcm9wcyxaPXRoaXMucHJvcHMub3BlcmF0aW9uLHtkZXByZWNhdGVkOmVlLGlzU2hvd246aWUscGF0aDphZSxtZXRob2Q6Y2Usb3A6bGUsdGFnOnBlLG9wZXJhdGlvbklkOmRlLGFsbG93VHJ5SXRPdXQ6ZmUsZGlzcGxheVJlcXVlc3REdXJhdGlvbjp5ZSx0cnlJdE91dEVuYWJsZWQ6YmUsZXhlY3V0ZUluUHJvZ3Jlc3M6X2V9PVoudG9KUygpLHtkZXNjcmlwdGlvbjpTZSxleHRlcm5hbERvY3M6d2Usc2NoZW1lczp4ZX09bGU7Y29uc3QgUGU9d2U/c2FmZUJ1aWxkVXJsKHdlLnVybCwkLnVybCgpLHtzZWxlY3RlZFNlcnZlcjpZLnNlbGVjdGVkU2VydmVyKCl9KToiIjtsZXQgVGU9Wi5nZXRJbihbIm9wIl0pLCRlPVRlLmdldCgicmVzcG9uc2VzIikscWU9ZnVuY3Rpb24gZ2V0TGlzdChzLG8pe2lmKCFXZSgpLkl0ZXJhYmxlLmlzSXRlcmFibGUocykpcmV0dXJuIFdlKCkuTGlzdCgpO2xldCBpPXMuZ2V0SW4oQXJyYXkuaXNBcnJheShvKT9vOltvXSk7cmV0dXJuIFdlKCkuTGlzdC5pc0xpc3QoaSk/aTpXZSgpLkxpc3QoKX0oVGUsWyJwYXJhbWV0ZXJzIl0pLHplPSQub3BlcmF0aW9uU2NoZW1lKGFlLGNlKSxIZT1bIm9wZXJhdGlvbnMiLHBlLGRlXSxZZT1nZXRFeHRlbnNpb25zKFRlKTtjb25zdCBYZT1qKCJyZXNwb25zZXMiKSxRZT1qKCJwYXJhbWV0ZXJzIiksZXQ9aigiZXhlY3V0ZSIpLHR0PWooImNsZWFyIikscnQ9aigiQ29sbGFwc2UiKSxudD1qKCJNYXJrZG93biIsITApLHN0PWooInNjaGVtZXMiKSxvdD1qKCJPcGVyYXRpb25TZXJ2ZXJzIiksaXQ9aigiT3BlcmF0aW9uRXh0IiksYXQ9aigiT3BlcmF0aW9uU3VtbWFyeSIpLGN0PWooIkxpbmsiKSx7c2hvd0V4dGVuc2lvbnM6bHR9PUwoKTtpZigkZSYmbyYmby5zaXplPjApe2xldCBzPSEkZS5nZXQoU3RyaW5nKG8uZ2V0KCJzdGF0dXMiKSkpJiYhJGUuZ2V0KCJkZWZhdWx0Iik7bz1vLnNldCgibm90RG9jdW1lbnRlZCIscyl9bGV0IHV0PVthZSxjZV07Y29uc3QgcHQ9JC52YWxpZGF0aW9uRXJyb3JzKFthZSxjZV0pO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ZWU/Im9wYmxvY2sgb3BibG9jay1kZXByZWNhdGVkIjppZT9gb3BibG9jayBvcGJsb2NrLSR7Y2V9IGlzLW9wZW5gOmBvcGJsb2NrIG9wYmxvY2stJHtjZX1gLGlkOmVzY2FwZURlZXBMaW5rUGF0aChIZS5qb2luKCItIikpfSxSZS5jcmVhdGVFbGVtZW50KGF0LHtvcGVyYXRpb25Qcm9wczpaLGlzU2hvd246aWUsdG9nZ2xlU2hvd246YSxnZXRDb21wb25lbnQ6aixhdXRoQWN0aW9uczpWLGF1dGhTZWxlY3RvcnM6VSxzcGVjUGF0aDpzfSksUmUuY3JlYXRlRWxlbWVudChydCx7aXNPcGVuZWQ6aWV9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1ib2R5In0sVGUmJlRlLnNpemV8fG51bGw9PT1UZT9udWxsOlJlLmNyZWF0ZUVsZW1lbnQocm9sbGluZ19sb2FkLHtoZWlnaHQ6IjMycHgiLHdpZHRoOiIzMnB4IixjbGFzc05hbWU6Im9wYmxvY2stbG9hZGluZy1hbmltYXRpb24ifSksZWUmJlJlLmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXRpdGxlX25vcm1hbCJ9LCIgV2FybmluZzogRGVwcmVjYXRlZCIpLFNlJiZSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stZGVzY3JpcHRpb24td3JhcHBlciJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1kZXNjcmlwdGlvbiJ9LFJlLmNyZWF0ZUVsZW1lbnQobnQse3NvdXJjZTpTZX0pKSksUGU/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLWV4dGVybmFsLWRvY3Mtd3JhcHBlciJ9LFJlLmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXRpdGxlX25vcm1hbCJ9LCJGaW5kIG1vcmUgZGV0YWlscyIpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1leHRlcm5hbC1kb2NzIn0sd2UuZGVzY3JpcHRpb24mJlJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im9wYmxvY2stZXh0ZXJuYWwtZG9jc19fZGVzY3JpcHRpb24ifSxSZS5jcmVhdGVFbGVtZW50KG50LHtzb3VyY2U6d2UuZGVzY3JpcHRpb259KSksUmUuY3JlYXRlRWxlbWVudChjdCx7dGFyZ2V0OiJfYmxhbmsiLGNsYXNzTmFtZToib3BibG9jay1leHRlcm5hbC1kb2NzX19saW5rIixocmVmOnNhbml0aXplVXJsKFBlKX0sUGUpKSk6bnVsbCxUZSYmVGUuc2l6ZT9SZS5jcmVhdGVFbGVtZW50KFFlLHtwYXJhbWV0ZXJzOnFlLHNwZWNQYXRoOnMucHVzaCgicGFyYW1ldGVycyIpLG9wZXJhdGlvbjpUZSxvbkNoYW5nZUtleTp1dCxvblRyeW91dENsaWNrOnUsb25SZXNldENsaWNrOl8sb25DYW5jZWxDbGljazp3LHRyeUl0T3V0RW5hYmxlZDpiZSxhbGxvd1RyeUl0T3V0OmZlLGZuOkMsZ2V0Q29tcG9uZW50Omosc3BlY0FjdGlvbnM6QixzcGVjU2VsZWN0b3JzOiQscGF0aE1ldGhvZDpbYWUsY2VdLGdldENvbmZpZ3M6TCxvYXMzQWN0aW9uczp6LG9hczNTZWxlY3RvcnM6WX0pOm51bGwsYmU/UmUuY3JlYXRlRWxlbWVudChvdCx7Z2V0Q29tcG9uZW50OmoscGF0aDphZSxtZXRob2Q6Y2Usb3BlcmF0aW9uU2VydmVyczpUZS5nZXQoInNlcnZlcnMiKSxwYXRoU2VydmVyczokLnBhdGhzKCkuZ2V0SW4oW2FlLCJzZXJ2ZXJzIl0pLGdldFNlbGVjdGVkU2VydmVyOlkuc2VsZWN0ZWRTZXJ2ZXIsc2V0U2VsZWN0ZWRTZXJ2ZXI6ei5zZXRTZWxlY3RlZFNlcnZlcixzZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlOnouc2V0U2VydmVyVmFyaWFibGVWYWx1ZSxnZXRTZXJ2ZXJWYXJpYWJsZTpZLnNlcnZlclZhcmlhYmxlVmFsdWUsZ2V0RWZmZWN0aXZlU2VydmVyVmFsdWU6WS5zZXJ2ZXJFZmZlY3RpdmVWYWx1ZX0pOm51bGwsYmUmJmZlJiZ4ZSYmeGUuc2l6ZT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc2NoZW1lcyJ9LFJlLmNyZWF0ZUVsZW1lbnQoc3Qse3NjaGVtZXM6eGUscGF0aDphZSxtZXRob2Q6Y2Usc3BlY0FjdGlvbnM6QixjdXJyZW50U2NoZW1lOnplfSkpOm51bGwsIWJlfHwhZmV8fHB0Lmxlbmd0aDw9MD9udWxsOlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidmFsaWRhdGlvbi1lcnJvcnMgZXJyb3JzLXdyYXBwZXIifSwiUGxlYXNlIGNvcnJlY3QgdGhlIGZvbGxvd2luZyB2YWxpZGF0aW9uIGVycm9ycyBhbmQgdHJ5IGFnYWluLiIsUmUuY3JlYXRlRWxlbWVudCgidWwiLG51bGwscHQubWFwKCgocyxvKT0+UmUuY3JlYXRlRWxlbWVudCgibGkiLHtrZXk6b30sIiAiLHMsIiAiKSkpKSksUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmJlJiZvJiZmZT8iYnRuLWdyb3VwIjoiZXhlY3V0ZS13cmFwcGVyIn0sYmUmJmZlP1JlLmNyZWF0ZUVsZW1lbnQoZXQse29wZXJhdGlvbjpUZSxzcGVjQWN0aW9uczpCLHNwZWNTZWxlY3RvcnM6JCxvYXMzU2VsZWN0b3JzOlksb2FzM0FjdGlvbnM6eixwYXRoOmFlLG1ldGhvZDpjZSxvbkV4ZWN1dGU6eCxkaXNhYmxlZDpfZX0pOm51bGwsYmUmJm8mJmZlP1JlLmNyZWF0ZUVsZW1lbnQodHQse3NwZWNBY3Rpb25zOkIscGF0aDphZSxtZXRob2Q6Y2V9KTpudWxsKSxfZT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImxvYWRpbmctY29udGFpbmVyIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJsb2FkaW5nIn0pKTpudWxsLCRlP1JlLmNyZWF0ZUVsZW1lbnQoWGUse3Jlc3BvbnNlczokZSxyZXF1ZXN0OmksdHJ5SXRPdXRSZXNwb25zZTpvLGdldENvbXBvbmVudDpqLGdldENvbmZpZ3M6TCxzcGVjU2VsZWN0b3JzOiQsb2FzM0FjdGlvbnM6eixvYXMzU2VsZWN0b3JzOlksc3BlY0FjdGlvbnM6Qixwcm9kdWNlczokLnByb2R1Y2VzT3B0aW9uc0ZvcihbYWUsY2VdKSxwcm9kdWNlc1ZhbHVlOiQuY3VycmVudFByb2R1Y2VzRm9yKFthZSxjZV0pLHNwZWNQYXRoOnMucHVzaCgicmVzcG9uc2VzIikscGF0aDphZSxtZXRob2Q6Y2UsZGlzcGxheVJlcXVlc3REdXJhdGlvbjp5ZSxmbjpDfSk6bnVsbCxsdCYmWWUuc2l6ZT9SZS5jcmVhdGVFbGVtZW50KGl0LHtleHRlbnNpb25zOlllLGdldENvbXBvbmVudDpqfSk6bnVsbCkpKX19Y2xhc3MgT3BlcmF0aW9uQ29udGFpbmVyIGV4dGVuZHMgUmUuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihzLG8pe3N1cGVyKHMsbyk7Y29uc3R7dHJ5SXRPdXRFbmFibGVkOml9PXMuZ2V0Q29uZmlncygpO3RoaXMuc3RhdGU9e3RyeUl0T3V0RW5hYmxlZDppLGV4ZWN1dGVJblByb2dyZXNzOiExfX1zdGF0aWMgZGVmYXVsdFByb3BzPXtzaG93U3VtbWFyeTohMCxyZXNwb25zZTpudWxsLGFsbG93VHJ5SXRPdXQ6ITAsZGlzcGxheU9wZXJhdGlvbklkOiExLGRpc3BsYXlSZXF1ZXN0RHVyYXRpb246ITF9O21hcFN0YXRlVG9Qcm9wcyhzLG8pe2NvbnN0e29wOmksbGF5b3V0U2VsZWN0b3JzOmEsZ2V0Q29uZmlnczp1fT1vLHtkb2NFeHBhbnNpb246XyxkZWVwTGlua2luZzp3LGRpc3BsYXlPcGVyYXRpb25JZDp4LGRpc3BsYXlSZXF1ZXN0RHVyYXRpb246QyxzdXBwb3J0ZWRTdWJtaXRNZXRob2RzOmp9PXUoKSxMPWEuc2hvd1N1bW1hcnkoKSxCPWkuZ2V0SW4oWyJvcGVyYXRpb24iLCJfX29yaWdpbmFsT3BlcmF0aW9uSWQiXSl8fGkuZ2V0SW4oWyJvcGVyYXRpb24iLCJvcGVyYXRpb25JZCJdKXx8b3BJZChpLmdldCgib3BlcmF0aW9uIiksby5wYXRoLG8ubWV0aG9kKXx8aS5nZXQoImlkIiksJD1bIm9wZXJhdGlvbnMiLG8udGFnLEJdLFY9ai5pbmRleE9mKG8ubWV0aG9kKT49MCYmKHZvaWQgMD09PW8uYWxsb3dUcnlJdE91dD9vLnNwZWNTZWxlY3RvcnMuYWxsb3dUcnlJdE91dEZvcihvLnBhdGgsby5tZXRob2QpOm8uYWxsb3dUcnlJdE91dCksVT1pLmdldEluKFsib3BlcmF0aW9uIiwic2VjdXJpdHkiXSl8fG8uc3BlY1NlbGVjdG9ycy5zZWN1cml0eSgpO3JldHVybntvcGVyYXRpb25JZDpCLGlzRGVlcExpbmtpbmdFbmFibGVkOncsc2hvd1N1bW1hcnk6TCxkaXNwbGF5T3BlcmF0aW9uSWQ6eCxkaXNwbGF5UmVxdWVzdER1cmF0aW9uOkMsYWxsb3dUcnlJdE91dDpWLHNlY3VyaXR5OlUsaXNBdXRob3JpemVkOm8uYXV0aFNlbGVjdG9ycy5pc0F1dGhvcml6ZWQoVSksaXNTaG93bjphLmlzU2hvd24oJCwiZnVsbCI9PT1fKSxqdW1wVG9LZXk6YHBhdGhzLiR7by5wYXRofS4ke28ubWV0aG9kfWAscmVzcG9uc2U6by5zcGVjU2VsZWN0b3JzLnJlc3BvbnNlRm9yKG8ucGF0aCxvLm1ldGhvZCkscmVxdWVzdDpvLnNwZWNTZWxlY3RvcnMucmVxdWVzdEZvcihvLnBhdGgsby5tZXRob2QpfX1jb21wb25lbnREaWRNb3VudCgpe2NvbnN0e2lzU2hvd246c309dGhpcy5wcm9wcyxvPXRoaXMuZ2V0UmVzb2x2ZWRTdWJ0cmVlKCk7cyYmdm9pZCAwPT09byYmdGhpcy5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKCl9VU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMocyl7Y29uc3R7cmVzcG9uc2U6byxpc1Nob3duOml9PXMsYT10aGlzLmdldFJlc29sdmVkU3VidHJlZSgpO28hPT10aGlzLnByb3BzLnJlc3BvbnNlJiZ0aGlzLnNldFN0YXRlKHtleGVjdXRlSW5Qcm9ncmVzczohMX0pLGkmJnZvaWQgMD09PWEmJnRoaXMucmVxdWVzdFJlc29sdmVkU3VidHJlZSgpfXRvZ2dsZVNob3duPSgpPT57bGV0e2xheW91dEFjdGlvbnM6cyx0YWc6byxvcGVyYXRpb25JZDppLGlzU2hvd246YX09dGhpcy5wcm9wcztjb25zdCB1PXRoaXMuZ2V0UmVzb2x2ZWRTdWJ0cmVlKCk7YXx8dm9pZCAwIT09dXx8dGhpcy5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKCkscy5zaG93KFsib3BlcmF0aW9ucyIsbyxpXSwhYSl9O29uQ2FuY2VsQ2xpY2s9KCk9Pnt0aGlzLnNldFN0YXRlKHt0cnlJdE91dEVuYWJsZWQ6IXRoaXMuc3RhdGUudHJ5SXRPdXRFbmFibGVkfSl9O29uVHJ5b3V0Q2xpY2s9KCk9Pnt0aGlzLnNldFN0YXRlKHt0cnlJdE91dEVuYWJsZWQ6IXRoaXMuc3RhdGUudHJ5SXRPdXRFbmFibGVkfSl9O29uUmVzZXRDbGljaz1zPT57Y29uc3Qgbz10aGlzLnByb3BzLm9hczNTZWxlY3RvcnMuc2VsZWN0RGVmYXVsdFJlcXVlc3RCb2R5VmFsdWUoLi4ucyk7dGhpcy5wcm9wcy5vYXMzQWN0aW9ucy5zZXRSZXF1ZXN0Qm9keVZhbHVlKHt2YWx1ZTpvLHBhdGhNZXRob2Q6c30pfTtvbkV4ZWN1dGU9KCk9Pnt0aGlzLnNldFN0YXRlKHtleGVjdXRlSW5Qcm9ncmVzczohMH0pfTtnZXRSZXNvbHZlZFN1YnRyZWU9KCk9Pntjb25zdHtzcGVjU2VsZWN0b3JzOnMscGF0aDpvLG1ldGhvZDppLHNwZWNQYXRoOmF9PXRoaXMucHJvcHM7cmV0dXJuIGE/cy5zcGVjUmVzb2x2ZWRTdWJ0cmVlKGEudG9KUygpKTpzLnNwZWNSZXNvbHZlZFN1YnRyZWUoWyJwYXRocyIsbyxpXSl9O3JlcXVlc3RSZXNvbHZlZFN1YnRyZWU9KCk9Pntjb25zdHtzcGVjQWN0aW9uczpzLHBhdGg6byxtZXRob2Q6aSxzcGVjUGF0aDphfT10aGlzLnByb3BzO3JldHVybiBhP3MucmVxdWVzdFJlc29sdmVkU3VidHJlZShhLnRvSlMoKSk6cy5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKFsicGF0aHMiLG8saV0pfTtyZW5kZXIoKXtsZXR7b3A6cyx0YWc6byxwYXRoOmksbWV0aG9kOmEsc2VjdXJpdHk6dSxpc0F1dGhvcml6ZWQ6XyxvcGVyYXRpb25JZDp3LHNob3dTdW1tYXJ5OngsaXNTaG93bjpDLGp1bXBUb0tleTpqLGFsbG93VHJ5SXRPdXQ6TCxyZXNwb25zZTpCLHJlcXVlc3Q6JCxkaXNwbGF5T3BlcmF0aW9uSWQ6VixkaXNwbGF5UmVxdWVzdER1cmF0aW9uOlUsaXNEZWVwTGlua2luZ0VuYWJsZWQ6eixzcGVjUGF0aDpZLHNwZWNTZWxlY3RvcnM6WixzcGVjQWN0aW9uczplZSxnZXRDb21wb25lbnQ6aWUsZ2V0Q29uZmlnczphZSxsYXlvdXRTZWxlY3RvcnM6Y2UsbGF5b3V0QWN0aW9uczpsZSxhdXRoQWN0aW9uczpwZSxhdXRoU2VsZWN0b3JzOmRlLG9hczNBY3Rpb25zOmZlLG9hczNTZWxlY3RvcnM6eWUsZm46YmV9PXRoaXMucHJvcHM7Y29uc3QgX2U9aWUoIm9wZXJhdGlvbiIpLFNlPXRoaXMuZ2V0UmVzb2x2ZWRTdWJ0cmVlKCl8fCgwLHplLk1hcCkoKSx3ZT0oMCx6ZS5mcm9tSlMpKHtvcDpTZSx0YWc6byxwYXRoOmksc3VtbWFyeTpzLmdldEluKFsib3BlcmF0aW9uIiwic3VtbWFyeSJdKXx8IiIsZGVwcmVjYXRlZDpTZS5nZXQoImRlcHJlY2F0ZWQiKXx8cy5nZXRJbihbIm9wZXJhdGlvbiIsImRlcHJlY2F0ZWQiXSl8fCExLG1ldGhvZDphLHNlY3VyaXR5OnUsaXNBdXRob3JpemVkOl8sb3BlcmF0aW9uSWQ6dyxvcmlnaW5hbE9wZXJhdGlvbklkOlNlLmdldEluKFsib3BlcmF0aW9uIiwiX19vcmlnaW5hbE9wZXJhdGlvbklkIl0pLHNob3dTdW1tYXJ5OngsaXNTaG93bjpDLGp1bXBUb0tleTpqLGFsbG93VHJ5SXRPdXQ6TCxyZXF1ZXN0OiQsZGlzcGxheU9wZXJhdGlvbklkOlYsZGlzcGxheVJlcXVlc3REdXJhdGlvbjpVLGlzRGVlcExpbmtpbmdFbmFibGVkOnosZXhlY3V0ZUluUHJvZ3Jlc3M6dGhpcy5zdGF0ZS5leGVjdXRlSW5Qcm9ncmVzcyx0cnlJdE91dEVuYWJsZWQ6dGhpcy5zdGF0ZS50cnlJdE91dEVuYWJsZWR9KTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChfZSx7b3BlcmF0aW9uOndlLHJlc3BvbnNlOkIscmVxdWVzdDokLGlzU2hvd246Qyx0b2dnbGVTaG93bjp0aGlzLnRvZ2dsZVNob3duLG9uVHJ5b3V0Q2xpY2s6dGhpcy5vblRyeW91dENsaWNrLG9uUmVzZXRDbGljazp0aGlzLm9uUmVzZXRDbGljayxvbkNhbmNlbENsaWNrOnRoaXMub25DYW5jZWxDbGljayxvbkV4ZWN1dGU6dGhpcy5vbkV4ZWN1dGUsc3BlY1BhdGg6WSxzcGVjQWN0aW9uczplZSxzcGVjU2VsZWN0b3JzOlosb2FzM0FjdGlvbnM6ZmUsb2FzM1NlbGVjdG9yczp5ZSxsYXlvdXRBY3Rpb25zOmxlLGxheW91dFNlbGVjdG9yczpjZSxhdXRoQWN0aW9uczpwZSxhdXRoU2VsZWN0b3JzOmRlLGdldENvbXBvbmVudDppZSxnZXRDb25maWdzOmFlLGZuOmJlfSl9fXZhciBLTz1fX3dlYnBhY2tfcmVxdWlyZV9fKDEzMjIyKSxHTz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oS08pO2NsYXNzIE9wZXJhdGlvblN1bW1hcnkgZXh0ZW5kcyBSZS5QdXJlQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9e29wZXJhdGlvblByb3BzOm51bGwsc3BlY1BhdGg6KDAsemUuTGlzdCkoKSxzdW1tYXJ5OiIifTtyZW5kZXIoKXtsZXR7aXNTaG93bjpzLHRvZ2dsZVNob3duOm8sZ2V0Q29tcG9uZW50OmksYXV0aEFjdGlvbnM6YSxhdXRoU2VsZWN0b3JzOnUsb3BlcmF0aW9uUHJvcHM6XyxzcGVjUGF0aDp3fT10aGlzLnByb3BzLHtzdW1tYXJ5OngsaXNBdXRob3JpemVkOkMsbWV0aG9kOmosb3A6TCxzaG93U3VtbWFyeTpCLHBhdGg6JCxvcGVyYXRpb25JZDpWLG9yaWdpbmFsT3BlcmF0aW9uSWQ6VSxkaXNwbGF5T3BlcmF0aW9uSWQ6en09Xy50b0pTKCkse3N1bW1hcnk6WX09TCxaPV8uZ2V0KCJzZWN1cml0eSIpO2NvbnN0IGVlPWkoImF1dGhvcml6ZU9wZXJhdGlvbkJ0biIsITApLGllPWkoIk9wZXJhdGlvblN1bW1hcnlNZXRob2QiKSxhZT1pKCJPcGVyYXRpb25TdW1tYXJ5UGF0aCIpLGNlPWkoIkp1bXBUb1BhdGgiLCEwKSxsZT1pKCJDb3B5VG9DbGlwYm9hcmRCdG4iLCEwKSxwZT1pKCJBcnJvd1VwSWNvbiIpLGRlPWkoIkFycm93RG93bkljb24iKSxmZT1aJiYhIVouY291bnQoKSx5ZT1mZSYmMT09PVouc2l6ZSYmWi5maXJzdCgpLmlzRW1wdHkoKSxiZT0hZmV8fHllO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YG9wYmxvY2stc3VtbWFyeSBvcGJsb2NrLXN1bW1hcnktJHtqfWB9LFJlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIseyJhcmlhLWV4cGFuZGVkIjpzLGNsYXNzTmFtZToib3BibG9jay1zdW1tYXJ5LWNvbnRyb2wiLG9uQ2xpY2s6b30sUmUuY3JlYXRlRWxlbWVudChpZSx7bWV0aG9kOmp9KSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc3VtbWFyeS1wYXRoLWRlc2NyaXB0aW9uLXdyYXBwZXIifSxSZS5jcmVhdGVFbGVtZW50KGFlLHtnZXRDb21wb25lbnQ6aSxvcGVyYXRpb25Qcm9wczpfLHNwZWNQYXRoOnd9KSxCP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1zdW1tYXJ5LWRlc2NyaXB0aW9uIn0sR08oKShZfHx4KSk6bnVsbCkseiYmKFV8fFYpP1JlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im9wYmxvY2stc3VtbWFyeS1vcGVyYXRpb24taWQifSxVfHxWKTpudWxsKSxSZS5jcmVhdGVFbGVtZW50KGxlLHt0ZXh0VG9Db3B5OmAke3cuZ2V0KDEpfWB9KSxiZT9udWxsOlJlLmNyZWF0ZUVsZW1lbnQoZWUse2lzQXV0aG9yaXplZDpDLG9uQ2xpY2s6KCk9Pntjb25zdCBzPXUuZGVmaW5pdGlvbnNGb3JSZXF1aXJlbWVudHMoWik7YS5zaG93RGVmaW5pdGlvbnMocyl9fSksUmUuY3JlYXRlRWxlbWVudChjZSx7cGF0aDp3fSksUmUuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7ImFyaWEtbGFiZWwiOmAke2p9ICR7JC5yZXBsYWNlKC9cLy9nLCLigIsvIil9YCxjbGFzc05hbWU6Im9wYmxvY2stY29udHJvbC1hcnJvdyIsImFyaWEtZXhwYW5kZWQiOnMsdGFiSW5kZXg6Ii0xIixvbkNsaWNrOm99LHM/UmUuY3JlYXRlRWxlbWVudChwZSx7Y2xhc3NOYW1lOiJhcnJvdyJ9KTpSZS5jcmVhdGVFbGVtZW50KGRlLHtjbGFzc05hbWU6ImFycm93In0pKSl9fWNsYXNzIE9wZXJhdGlvblN1bW1hcnlNZXRob2QgZXh0ZW5kcyBSZS5QdXJlQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9e29wZXJhdGlvblByb3BzOm51bGx9O3JlbmRlcigpe2xldHttZXRob2Q6c309dGhpcy5wcm9wcztyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToib3BibG9jay1zdW1tYXJ5LW1ldGhvZCJ9LHMudG9VcHBlckNhc2UoKSl9fWNsYXNzIE9wZXJhdGlvblN1bW1hcnlQYXRoIGV4dGVuZHMgUmUuUHVyZUNvbXBvbmVudHtyZW5kZXIoKXtsZXR7Z2V0Q29tcG9uZW50OnMsb3BlcmF0aW9uUHJvcHM6b309dGhpcy5wcm9wcyx7ZGVwcmVjYXRlZDppLGlzU2hvd246YSxwYXRoOnUsdGFnOl8sb3BlcmF0aW9uSWQ6dyxpc0RlZXBMaW5raW5nRW5hYmxlZDp4fT1vLnRvSlMoKTtjb25zdCBDPXUuc3BsaXQoLyg/PVwvKS9nKTtmb3IobGV0IHM9MTtzPEMubGVuZ3RoO3MrPTIpQy5zcGxpY2UocywwLFJlLmNyZWF0ZUVsZW1lbnQoIndiciIse2tleTpzfSkpO2NvbnN0IGo9cygiRGVlcExpbmsiKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTppPyJvcGJsb2NrLXN1bW1hcnktcGF0aF9fZGVwcmVjYXRlZCI6Im9wYmxvY2stc3VtbWFyeS1wYXRoIiwiZGF0YS1wYXRoIjp1fSxSZS5jcmVhdGVFbGVtZW50KGose2VuYWJsZWQ6eCxpc1Nob3duOmEscGF0aDpjcmVhdGVEZWVwTGlua1BhdGgoYCR7X30vJHt3fWApLHRleHQ6Q30pKX19Y29uc3Qgb3BlcmF0aW9uX2V4dGVuc2lvbnM9KHtleHRlbnNpb25zOnMsZ2V0Q29tcG9uZW50Om99KT0+e2xldCBpPW8oIk9wZXJhdGlvbkV4dFJvdyIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc2VjdGlvbiJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1zZWN0aW9uLWhlYWRlciJ9LFJlLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLCJFeHRlbnNpb25zIikpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidGFibGUtY29udGFpbmVyIn0sUmUuY3JlYXRlRWxlbWVudCgidGFibGUiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgidGhlYWQiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgidHIiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6ImNvbF9oZWFkZXIifSwiRmllbGQiKSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToiY29sX2hlYWRlciJ9LCJWYWx1ZSIpKSksUmUuY3JlYXRlRWxlbWVudCgidGJvZHkiLG51bGwscy5lbnRyeVNlcSgpLm1hcCgoKFtzLG9dKT0+UmUuY3JlYXRlRWxlbWVudChpLHtrZXk6YCR7c30tJHtvfWAseEtleTpzLHhWYWw6b30pKSkpKSkpfSxvcGVyYXRpb25fZXh0ZW5zaW9uX3Jvdz0oe3hLZXk6cyx4VmFsOm99KT0+e2NvbnN0IGk9bz9vLnRvSlM/by50b0pTKCk6bzpudWxsO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJ0ciIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxzKSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxKU09OLnN0cmluZ2lmeShpKSkpfTtmdW5jdGlvbiBjcmVhdGVIdG1sUmVhZHlJZChzLG89Il8iKXtyZXR1cm4gcy5yZXBsYWNlKC9bXlx3LV0vZyxvKX1jbGFzcyByZXNwb25zZXNfUmVzcG9uc2VzIGV4dGVuZHMgUmUuQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9e3RyeUl0T3V0UmVzcG9uc2U6bnVsbCxwcm9kdWNlczooMCx6ZS5mcm9tSlMpKFsiYXBwbGljYXRpb24vanNvbiJdKSxkaXNwbGF5UmVxdWVzdER1cmF0aW9uOiExfTtvbkNoYW5nZVByb2R1Y2VzV3JhcHBlcj1zPT50aGlzLnByb3BzLnNwZWNBY3Rpb25zLmNoYW5nZVByb2R1Y2VzVmFsdWUoW3RoaXMucHJvcHMucGF0aCx0aGlzLnByb3BzLm1ldGhvZF0scyk7b25SZXNwb25zZUNvbnRlbnRUeXBlQ2hhbmdlPSh7Y29udHJvbHNBY2NlcHRIZWFkZXI6cyx2YWx1ZTpvfSk9Pntjb25zdHtvYXMzQWN0aW9uczppLHBhdGg6YSxtZXRob2Q6dX09dGhpcy5wcm9wcztzJiZpLnNldFJlc3BvbnNlQ29udGVudFR5cGUoe3ZhbHVlOm8scGF0aDphLG1ldGhvZDp1fSl9O3JlbmRlcigpe2xldHtyZXNwb25zZXM6cyx0cnlJdE91dFJlc3BvbnNlOm8sZ2V0Q29tcG9uZW50OmksZ2V0Q29uZmlnczphLHNwZWNTZWxlY3RvcnM6dSxmbjpfLHByb2R1Y2VzVmFsdWU6dyxkaXNwbGF5UmVxdWVzdER1cmF0aW9uOngsc3BlY1BhdGg6QyxwYXRoOmosbWV0aG9kOkwsb2FzM1NlbGVjdG9yczpCLG9hczNBY3Rpb25zOiR9PXRoaXMucHJvcHMsVj1mdW5jdGlvbiBkZWZhdWx0U3RhdHVzQ29kZShzKXtsZXQgbz1zLmtleVNlcSgpO3JldHVybiBvLmNvbnRhaW5zKGp0KT9qdDpvLmZpbHRlcigocz0+IjIiPT09KHMrIiIpWzBdKSkuc29ydCgpLmZpcnN0KCl9KHMpO2NvbnN0IFU9aSgiY29udGVudFR5cGUiKSx6PWkoImxpdmVSZXNwb25zZSIpLFk9aSgicmVzcG9uc2UiKTtsZXQgWj10aGlzLnByb3BzLnByb2R1Y2VzJiZ0aGlzLnByb3BzLnByb2R1Y2VzLnNpemU/dGhpcy5wcm9wcy5wcm9kdWNlczpyZXNwb25zZXNfUmVzcG9uc2VzLmRlZmF1bHRQcm9wcy5wcm9kdWNlcztjb25zdCBlZT11LmlzT0FTMygpP2Z1bmN0aW9uIGdldEFjY2VwdENvbnRyb2xsaW5nUmVzcG9uc2Uocyl7aWYoIVdlKCkuT3JkZXJlZE1hcC5pc09yZGVyZWRNYXAocykpcmV0dXJuIG51bGw7aWYoIXMuc2l6ZSlyZXR1cm4gbnVsbDtjb25zdCBvPXMuZmluZCgoKHMsbyk9Pm8uc3RhcnRzV2l0aCgiMiIpJiZPYmplY3Qua2V5cyhzLmdldCgiY29udGVudCIpfHx7fSkubGVuZ3RoPjApKSxpPXMuZ2V0KCJkZWZhdWx0Iil8fFdlKCkuT3JkZXJlZE1hcCgpLGE9KGkuZ2V0KCJjb250ZW50Iil8fFdlKCkuT3JkZXJlZE1hcCgpKS5rZXlTZXEoKS50b0pTKCkubGVuZ3RoP2k6bnVsbDtyZXR1cm4gb3x8YX0ocyk6bnVsbCxpZT1jcmVhdGVIdG1sUmVhZHlJZChgJHtMfSR7an1fcmVzcG9uc2VzYCksYWU9YCR7aWV9X3NlbGVjdGA7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicmVzcG9uc2VzLXdyYXBwZXIifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc2VjdGlvbi1oZWFkZXIifSxSZS5jcmVhdGVFbGVtZW50KCJoNCIsbnVsbCwiUmVzcG9uc2VzIiksdS5pc09BUzMoKT9udWxsOlJlLmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjphZX0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCwiUmVzcG9uc2UgY29udGVudCB0eXBlIiksUmUuY3JlYXRlRWxlbWVudChVLHt2YWx1ZTp3LGFyaWFDb250cm9sczppZSxhcmlhTGFiZWw6IlJlc3BvbnNlIGNvbnRlbnQgdHlwZSIsY2xhc3NOYW1lOiJleGVjdXRlLWNvbnRlbnQtdHlwZSIsY29udGVudFR5cGVzOlosY29udHJvbElkOmFlLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2VQcm9kdWNlc1dyYXBwZXJ9KSkpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicmVzcG9uc2VzLWlubmVyIn0sbz9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCh6LHtyZXNwb25zZTpvLGdldENvbXBvbmVudDppLGdldENvbmZpZ3M6YSxzcGVjU2VsZWN0b3JzOnUscGF0aDp0aGlzLnByb3BzLnBhdGgsbWV0aG9kOnRoaXMucHJvcHMubWV0aG9kLGRpc3BsYXlSZXF1ZXN0RHVyYXRpb246eH0pLFJlLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLCJSZXNwb25zZXMiKSk6bnVsbCxSZS5jcmVhdGVFbGVtZW50KCJ0YWJsZSIseyJhcmlhLWxpdmUiOiJwb2xpdGUiLGNsYXNzTmFtZToicmVzcG9uc2VzLXRhYmxlIixpZDppZSxyb2xlOiJyZWdpb24ifSxSZS5jcmVhdGVFbGVtZW50KCJ0aGVhZCIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJ0ciIse2NsYXNzTmFtZToicmVzcG9uc2VzLWhlYWRlciJ9LFJlLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJjb2xfaGVhZGVyIHJlc3BvbnNlLWNvbF9zdGF0dXMifSwiQ29kZSIpLFJlLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJjb2xfaGVhZGVyIHJlc3BvbnNlLWNvbF9kZXNjcmlwdGlvbiJ9LCJEZXNjcmlwdGlvbiIpLHUuaXNPQVMzKCk/UmUuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6ImNvbCBjb2xfaGVhZGVyIHJlc3BvbnNlLWNvbF9saW5rcyJ9LCJMaW5rcyIpOm51bGwpKSxSZS5jcmVhdGVFbGVtZW50KCJ0Ym9keSIsbnVsbCxzLmVudHJ5U2VxKCkubWFwKCgoW3MseF0pPT57bGV0IFU9byYmby5nZXQoInN0YXR1cyIpPT1zPyJyZXNwb25zZV9jdXJyZW50IjoiIjtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChZLHtrZXk6cyxwYXRoOmosbWV0aG9kOkwsc3BlY1BhdGg6Qy5wdXNoKHMpLGlzRGVmYXVsdDpWPT09cyxmbjpfLGNsYXNzTmFtZTpVLGNvZGU6cyxyZXNwb25zZTp4LHNwZWNTZWxlY3RvcnM6dSxjb250cm9sc0FjY2VwdEhlYWRlcjp4PT09ZWUsb25Db250ZW50VHlwZUNoYW5nZTp0aGlzLm9uUmVzcG9uc2VDb250ZW50VHlwZUNoYW5nZSxjb250ZW50VHlwZTp3LGdldENvbmZpZ3M6YSxhY3RpdmVFeGFtcGxlc0tleTpCLmFjdGl2ZUV4YW1wbGVzTWVtYmVyKGosTCwicmVzcG9uc2VzIixzKSxvYXMzQWN0aW9uczokLGdldENvbXBvbmVudDppfSl9KSkudG9BcnJheSgpKSkpKX19ZnVuY3Rpb24gZ2V0S25vd25TeW50YXhIaWdobGlnaHRlckxhbmd1YWdlKHMpe2NvbnN0IG89ZnVuY3Rpb24gY2FuSnNvblBhcnNlKHMpe3RyeXtyZXR1cm4hIUpTT04ucGFyc2Uocyl9Y2F0Y2gocyl7cmV0dXJuIG51bGx9fShzKTtyZXR1cm4gbz8ianNvbiI6bnVsbH1jbGFzcyByZXNwb25zZV9SZXNwb25zZSBleHRlbmRzIFJlLkNvbXBvbmVudHtjb25zdHJ1Y3RvcihzLG8pe3N1cGVyKHMsbyksdGhpcy5zdGF0ZT17cmVzcG9uc2VDb250ZW50VHlwZToiIn19c3RhdGljIGRlZmF1bHRQcm9wcz17cmVzcG9uc2U6KDAsemUuZnJvbUpTKSh7fSksb25Db250ZW50VHlwZUNoYW5nZTooKT0+e319O19vbkNvbnRlbnRUeXBlQ2hhbmdlPXM9Pntjb25zdHtvbkNvbnRlbnRUeXBlQ2hhbmdlOm8sY29udHJvbHNBY2NlcHRIZWFkZXI6aX09dGhpcy5wcm9wczt0aGlzLnNldFN0YXRlKHtyZXNwb25zZUNvbnRlbnRUeXBlOnN9KSxvKHt2YWx1ZTpzLGNvbnRyb2xzQWNjZXB0SGVhZGVyOml9KX07Z2V0VGFyZ2V0RXhhbXBsZXNLZXk9KCk9Pntjb25zdHtyZXNwb25zZTpzLGNvbnRlbnRUeXBlOm8sYWN0aXZlRXhhbXBsZXNLZXk6aX09dGhpcy5wcm9wcyxhPXRoaXMuc3RhdGUucmVzcG9uc2VDb250ZW50VHlwZXx8byx1PXMuZ2V0SW4oWyJjb250ZW50IixhXSwoMCx6ZS5NYXApKHt9KSkuZ2V0KCJleGFtcGxlcyIsbnVsbCkua2V5U2VxKCkuZmlyc3QoKTtyZXR1cm4gaXx8dX07cmVuZGVyKCl7bGV0e3BhdGg6cyxtZXRob2Q6byxjb2RlOmkscmVzcG9uc2U6YSxjbGFzc05hbWU6dSxzcGVjUGF0aDpfLGZuOncsZ2V0Q29tcG9uZW50OngsZ2V0Q29uZmlnczpDLHNwZWNTZWxlY3RvcnM6aixjb250ZW50VHlwZTpMLGNvbnRyb2xzQWNjZXB0SGVhZGVyOkIsb2FzM0FjdGlvbnM6JH09dGhpcy5wcm9wcyx7aW5mZXJTY2hlbWE6VixnZXRTYW1wbGVTY2hlbWE6VX09dyx6PWouaXNPQVMzKCk7Y29uc3R7c2hvd0V4dGVuc2lvbnM6WX09QygpO2xldCBaPVk/Z2V0RXh0ZW5zaW9ucyhhKTpudWxsLGVlPWEuZ2V0KCJoZWFkZXJzIiksaWU9YS5nZXQoImxpbmtzIik7Y29uc3QgYWU9eCgiUmVzcG9uc2VFeHRlbnNpb24iKSxjZT14KCJoZWFkZXJzIiksbGU9eCgiSGlnaGxpZ2h0Q29kZSIsITApLHBlPXgoIm1vZGVsRXhhbXBsZSIpLGRlPXgoIk1hcmtkb3duIiwhMCksZmU9eCgib3BlcmF0aW9uTGluayIpLHllPXgoImNvbnRlbnRUeXBlIiksYmU9eCgiRXhhbXBsZXNTZWxlY3QiKSxfZT14KCJFeGFtcGxlIik7dmFyIFNlLHdlO2NvbnN0IHhlPXRoaXMuc3RhdGUucmVzcG9uc2VDb250ZW50VHlwZXx8TCxQZT1hLmdldEluKFsiY29udGVudCIseGVdLCgwLHplLk1hcCkoe30pKSxUZT1QZS5nZXQoImV4YW1wbGVzIixudWxsKTtpZih6KXtjb25zdCBzPVBlLmdldCgic2NoZW1hIik7U2U9cz9WKHMudG9KUygpKTpudWxsLHdlPXM/KDAsemUuTGlzdCkoWyJjb250ZW50Iix0aGlzLnN0YXRlLnJlc3BvbnNlQ29udGVudFR5cGUsInNjaGVtYSJdKTpffWVsc2UgU2U9YS5nZXQoInNjaGVtYSIpLHdlPWEuaGFzKCJzY2hlbWEiKT9fLnB1c2goInNjaGVtYSIpOl87bGV0ICRlLHFlLFdlPSExLEhlPXtpbmNsdWRlUmVhZE9ubHk6ITB9O2lmKHopaWYocWU9UGUuZ2V0KCJzY2hlbWEiKT8udG9KUygpLHplLk1hcC5pc01hcChUZSkmJiFUZS5pc0VtcHR5KCkpe2NvbnN0IHM9dGhpcy5nZXRUYXJnZXRFeGFtcGxlc0tleSgpLGdldE1lZGlhVHlwZUV4YW1wbGU9cz0+emUuTWFwLmlzTWFwKHMpP3MuZ2V0KCJ2YWx1ZSIpOnZvaWQgMDskZT1nZXRNZWRpYVR5cGVFeGFtcGxlKFRlLmdldChzLCgwLHplLk1hcCkoe30pKSksdm9pZCAwPT09JGUmJigkZT1nZXRNZWRpYVR5cGVFeGFtcGxlKFRlLnZhbHVlcygpLm5leHQoKS52YWx1ZSkpLFdlPSEwfWVsc2Ugdm9pZCAwIT09UGUuZ2V0KCJleGFtcGxlIikmJigkZT1QZS5nZXQoImV4YW1wbGUiKSxXZT0hMCk7ZWxzZXtxZT1TZSxIZT17Li4uSGUsaW5jbHVkZVdyaXRlT25seTohMH07Y29uc3Qgcz1hLmdldEluKFsiZXhhbXBsZXMiLHhlXSk7cyYmKCRlPXMsV2U9ITApfWNvbnN0IFllPSgocyxvKT0+e2lmKG51bGw9PXMpcmV0dXJuIG51bGw7Y29uc3QgaT1nZXRLbm93blN5bnRheEhpZ2hsaWdodGVyTGFuZ3VhZ2Uocyk/Impzb24iOm51bGw7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KG8se2NsYXNzTmFtZToiZXhhbXBsZSIsbGFuZ3VhZ2U6aX0sc3RyaW5naWZ5KHMpKSl9KShVKHFlLHhlLEhlLFdlPyRlOnZvaWQgMCksbGUpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJ0ciIse2NsYXNzTmFtZToicmVzcG9uc2UgIisodXx8IiIpLCJkYXRhLWNvZGUiOml9LFJlLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJyZXNwb25zZS1jb2xfc3RhdHVzIn0saSksUmUuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6InJlc3BvbnNlLWNvbF9kZXNjcmlwdGlvbiJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicmVzcG9uc2UtY29sX2Rlc2NyaXB0aW9uX19pbm5lciJ9LFJlLmNyZWF0ZUVsZW1lbnQoZGUse3NvdXJjZTphLmdldCgiZGVzY3JpcHRpb24iKX0pKSxZJiZaLnNpemU/Wi5lbnRyeVNlcSgpLm1hcCgoKFtzLG9dKT0+UmUuY3JlYXRlRWxlbWVudChhZSx7a2V5OmAke3N9LSR7b31gLHhLZXk6cyx4VmFsOm99KSkpOm51bGwseiYmYS5nZXQoImNvbnRlbnQiKT9SZS5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIix7Y2xhc3NOYW1lOiJyZXNwb25zZS1jb250cm9scyJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpKbigpKCJyZXNwb25zZS1jb250cm9sLW1lZGlhLXR5cGUiLHsicmVzcG9uc2UtY29udHJvbC1tZWRpYS10eXBlLS1hY2NlcHQtY29udHJvbGxlciI6Qn0pfSxSZS5jcmVhdGVFbGVtZW50KCJzbWFsbCIse2NsYXNzTmFtZToicmVzcG9uc2UtY29udHJvbC1tZWRpYS10eXBlX190aXRsZSJ9LCJNZWRpYSB0eXBlIiksUmUuY3JlYXRlRWxlbWVudCh5ZSx7dmFsdWU6dGhpcy5zdGF0ZS5yZXNwb25zZUNvbnRlbnRUeXBlLGNvbnRlbnRUeXBlczphLmdldCgiY29udGVudCIpP2EuZ2V0KCJjb250ZW50Iikua2V5U2VxKCk6KDAsemUuU2VxKSgpLG9uQ2hhbmdlOnRoaXMuX29uQ29udGVudFR5cGVDaGFuZ2UsYXJpYUxhYmVsOiJNZWRpYSBUeXBlIn0pLEI/UmUuY3JlYXRlRWxlbWVudCgic21hbGwiLHtjbGFzc05hbWU6InJlc3BvbnNlLWNvbnRyb2wtbWVkaWEtdHlwZV9fYWNjZXB0LW1lc3NhZ2UifSwiQ29udHJvbHMgIixSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJBY2NlcHQiKSwiIGhlYWRlci4iKTpudWxsKSx6ZS5NYXAuaXNNYXAoVGUpJiYhVGUuaXNFbXB0eSgpP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicmVzcG9uc2UtY29udHJvbC1leGFtcGxlcyJ9LFJlLmNyZWF0ZUVsZW1lbnQoInNtYWxsIix7Y2xhc3NOYW1lOiJyZXNwb25zZS1jb250cm9sLWV4YW1wbGVzX190aXRsZSJ9LCJFeGFtcGxlcyIpLFJlLmNyZWF0ZUVsZW1lbnQoYmUse2V4YW1wbGVzOlRlLGN1cnJlbnRFeGFtcGxlS2V5OnRoaXMuZ2V0VGFyZ2V0RXhhbXBsZXNLZXkoKSxvblNlbGVjdDphPT4kLnNldEFjdGl2ZUV4YW1wbGVzTWVtYmVyKHtuYW1lOmEscGF0aE1ldGhvZDpbcyxvXSxjb250ZXh0VHlwZToicmVzcG9uc2VzIixjb250ZXh0TmFtZTppfSksc2hvd0xhYmVsczohMX0pKTpudWxsKTpudWxsLFllfHxTZT9SZS5jcmVhdGVFbGVtZW50KHBlLHtzcGVjUGF0aDp3ZSxnZXRDb21wb25lbnQ6eCxnZXRDb25maWdzOkMsc3BlY1NlbGVjdG9yczpqLHNjaGVtYTpmcm9tSlNPcmRlcmVkKFNlKSxleGFtcGxlOlllLGluY2x1ZGVSZWFkT25seTohMH0pOm51bGwseiYmVGU/UmUuY3JlYXRlRWxlbWVudChfZSx7ZXhhbXBsZTpUZS5nZXQodGhpcy5nZXRUYXJnZXRFeGFtcGxlc0tleSgpLCgwLHplLk1hcCkoe30pKSxnZXRDb21wb25lbnQ6eCxnZXRDb25maWdzOkMsb21pdFZhbHVlOiEwfSk6bnVsbCxlZT9SZS5jcmVhdGVFbGVtZW50KGNlLHtoZWFkZXJzOmVlLGdldENvbXBvbmVudDp4fSk6bnVsbCksej9SZS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToicmVzcG9uc2UtY29sX2xpbmtzIn0saWU/aWUudG9TZXEoKS5lbnRyeVNlcSgpLm1hcCgoKFtzLG9dKT0+UmUuY3JlYXRlRWxlbWVudChmZSx7a2V5OnMsbmFtZTpzLGxpbms6byxnZXRDb21wb25lbnQ6eH0pKSk6UmUuY3JlYXRlRWxlbWVudCgiaSIsbnVsbCwiTm8gbGlua3MiKSk6bnVsbCl9fWNvbnN0IHJlc3BvbnNlX2V4dGVuc2lvbj0oe3hLZXk6cyx4VmFsOm99KT0+UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJyZXNwb25zZV9fZXh0ZW5zaW9uIn0scywiOiAiLFN0cmluZyhvKSk7dmFyIFlPPV9fd2VicGFja19yZXF1aXJlX18oMjY2NTcpLFhPPV9fd2VicGFja19yZXF1aXJlX18ubihZTyksUU89X193ZWJwYWNrX3JlcXVpcmVfXyg4MDIxOCksWk89X193ZWJwYWNrX3JlcXVpcmVfXy5uKFFPKTtjbGFzcyBSZXNwb25zZUJvZHkgZXh0ZW5kcyBSZS5QdXJlQ29tcG9uZW50e3N0YXRlPXtwYXJzZWRDb250ZW50Om51bGx9O3VwZGF0ZVBhcnNlZENvbnRlbnQ9cz0+e2NvbnN0e2NvbnRlbnQ6b309dGhpcy5wcm9wcztpZihzIT09bylpZihvJiZvIGluc3RhbmNlb2YgQmxvYil7dmFyIGk9bmV3IEZpbGVSZWFkZXI7aS5vbmxvYWQ9KCk9Pnt0aGlzLnNldFN0YXRlKHtwYXJzZWRDb250ZW50OmkucmVzdWx0fSl9LGkucmVhZEFzVGV4dChvKX1lbHNlIHRoaXMuc2V0U3RhdGUoe3BhcnNlZENvbnRlbnQ6by50b1N0cmluZygpfSl9O2NvbXBvbmVudERpZE1vdW50KCl7dGhpcy51cGRhdGVQYXJzZWRDb250ZW50KG51bGwpfWNvbXBvbmVudERpZFVwZGF0ZShzKXt0aGlzLnVwZGF0ZVBhcnNlZENvbnRlbnQocy5jb250ZW50KX1yZW5kZXIoKXtsZXR7Y29udGVudDpzLGNvbnRlbnRUeXBlOm8sdXJsOmksaGVhZGVyczphPXt9LGdldENvbXBvbmVudDp1fT10aGlzLnByb3BzO2NvbnN0e3BhcnNlZENvbnRlbnQ6X309dGhpcy5zdGF0ZSx3PXUoIkhpZ2hsaWdodENvZGUiLCEwKSx4PSJyZXNwb25zZV8iKyhuZXcgRGF0ZSkuZ2V0VGltZSgpO2xldCBDLGo7aWYoaT1pfHwiIiwoL15hcHBsaWNhdGlvblwvb2N0ZXQtc3RyZWFtL2kudGVzdChvKXx8YVsiQ29udGVudC1EaXNwb3NpdGlvbiJdJiYvYXR0YWNobWVudC9pLnRlc3QoYVsiQ29udGVudC1EaXNwb3NpdGlvbiJdKXx8YVsiY29udGVudC1kaXNwb3NpdGlvbiJdJiYvYXR0YWNobWVudC9pLnRlc3QoYVsiY29udGVudC1kaXNwb3NpdGlvbiJdKXx8YVsiQ29udGVudC1EZXNjcmlwdGlvbiJdJiYvRmlsZSBUcmFuc2Zlci9pLnRlc3QoYVsiQ29udGVudC1EZXNjcmlwdGlvbiJdKXx8YVsiY29udGVudC1kZXNjcmlwdGlvbiJdJiYvRmlsZSBUcmFuc2Zlci9pLnRlc3QoYVsiY29udGVudC1kZXNjcmlwdGlvbiJdKSkmJihzLnNpemU+MHx8cy5sZW5ndGg+MCkpaWYoIkJsb2IiaW4gd2luZG93KXtsZXQgdT1vfHwidGV4dC9odG1sIixfPXMgaW5zdGFuY2VvZiBCbG9iP3M6bmV3IEJsb2IoW3NdLHt0eXBlOnV9KSx3PXdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKF8pLHg9W3UsaS5zdWJzdHIoaS5sYXN0SW5kZXhPZigiLyIpKzEpLHddLmpvaW4oIjoiKSxDPWFbImNvbnRlbnQtZGlzcG9zaXRpb24iXXx8YVsiQ29udGVudC1EaXNwb3NpdGlvbiJdO2lmKHZvaWQgMCE9PUMpe2xldCBzPWZ1bmN0aW9uIGV4dHJhY3RGaWxlTmFtZUZyb21Db250ZW50RGlzcG9zaXRpb25IZWFkZXIocyl7bGV0IG87aWYoWy9maWxlbmFtZVwqPVteJ10rJ1x3KiciKFteIl0rKSI7Py9pLC9maWxlbmFtZVwqPVteJ10rJ1x3KicoW147XSspOz8vaSwvZmlsZW5hbWU9IihbXjtdKik7PyIvaSwvZmlsZW5hbWU9KFteO10qKTs/L2ldLnNvbWUoKGk9PihvPWkuZXhlYyhzKSxudWxsIT09bykpKSxudWxsIT09byYmby5sZW5ndGg+MSl0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChvWzFdKX1jYXRjaChzKXtjb25zb2xlLmVycm9yKHMpfXJldHVybiBudWxsfShDKTtudWxsIT09cyYmKHg9cyl9aj1sdC5uYXZpZ2F0b3ImJmx0Lm5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJhIix7aHJlZjp3LG9uQ2xpY2s6KCk9Pmx0Lm5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKF8seCl9LCJEb3dubG9hZCBmaWxlIikpOlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJhIix7aHJlZjp3LGRvd25sb2FkOnh9LCJEb3dubG9hZCBmaWxlIikpfWVsc2Ugaj1SZS5jcmVhdGVFbGVtZW50KCJwcmUiLHtjbGFzc05hbWU6Im1pY3JvbGlnaHQifSwiRG93bmxvYWQgaGVhZGVycyBkZXRlY3RlZCBidXQgeW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgZG93bmxvYWRpbmcgYmluYXJ5IHZpYSBYSFIgKEJsb2IpLiIpO2Vsc2UgaWYoL2pzb24vaS50ZXN0KG8pKXtsZXQgbz1udWxsO2dldEtub3duU3ludGF4SGlnaGxpZ2h0ZXJMYW5ndWFnZShzKSYmKG89Impzb24iKTt0cnl7Qz1KU09OLnN0cmluZ2lmeShKU09OLnBhcnNlKHMpLG51bGwsIiAgIil9Y2F0Y2gobyl7Qz0iY2FuJ3QgcGFyc2UgSlNPTi4gIFJhdyByZXN1bHQ6XG5cbiIrc31qPVJlLmNyZWF0ZUVsZW1lbnQodyx7bGFuZ3VhZ2U6byxkb3dubG9hZGFibGU6ITAsZmlsZU5hbWU6YCR7eH0uanNvbmAsY2FuQ29weTohMH0sQyl9ZWxzZS94bWwvaS50ZXN0KG8pPyhDPVhPKCkocyx7dGV4dE5vZGVzT25TYW1lTGluZTohMCxpbmRlbnRvcjoiICAifSksaj1SZS5jcmVhdGVFbGVtZW50KHcse2Rvd25sb2FkYWJsZTohMCxmaWxlTmFtZTpgJHt4fS54bWxgLGNhbkNvcHk6ITB9LEMpKTpqPSJ0ZXh0L2h0bWwiPT09Wk8oKShvKXx8L3RleHRcL3BsYWluLy50ZXN0KG8pP1JlLmNyZWF0ZUVsZW1lbnQodyx7ZG93bmxvYWRhYmxlOiEwLGZpbGVOYW1lOmAke3h9Lmh0bWxgLGNhbkNvcHk6ITB9LHMpOiJ0ZXh0L2NzdiI9PT1aTygpKG8pfHwvdGV4dFwvY3N2Ly50ZXN0KG8pP1JlLmNyZWF0ZUVsZW1lbnQodyx7ZG93bmxvYWRhYmxlOiEwLGZpbGVOYW1lOmAke3h9LmNzdmAsY2FuQ29weTohMH0scyk6L15pbWFnZVwvL2kudGVzdChvKT9vLmluY2x1ZGVzKCJzdmciKT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsIiAiLHMsIiAiKTpSZS5jcmVhdGVFbGVtZW50KCJpbWciLHtzcmM6d2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwocyl9KTovXmF1ZGlvXC8vaS50ZXN0KG8pP1JlLmNyZWF0ZUVsZW1lbnQoInByZSIse2NsYXNzTmFtZToibWljcm9saWdodCJ9LFJlLmNyZWF0ZUVsZW1lbnQoImF1ZGlvIix7Y29udHJvbHM6ITAsa2V5Oml9LFJlLmNyZWF0ZUVsZW1lbnQoInNvdXJjZSIse3NyYzppLHR5cGU6b30pKSk6InN0cmluZyI9PXR5cGVvZiBzP1JlLmNyZWF0ZUVsZW1lbnQodyx7ZG93bmxvYWRhYmxlOiEwLGZpbGVOYW1lOmAke3h9LnR4dGAsY2FuQ29weTohMH0scyk6cy5zaXplPjA/Xz9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgicCIse2NsYXNzTmFtZToiaSJ9LCJVbnJlY29nbml6ZWQgcmVzcG9uc2UgdHlwZTsgZGlzcGxheWluZyBjb250ZW50IGFzIHRleHQuIiksUmUuY3JlYXRlRWxlbWVudCh3LHtkb3dubG9hZGFibGU6ITAsZmlsZU5hbWU6YCR7eH0udHh0YCxjYW5Db3B5OiEwfSxfKSk6UmUuY3JlYXRlRWxlbWVudCgicCIse2NsYXNzTmFtZToiaSJ9LCJVbnJlY29nbml6ZWQgcmVzcG9uc2UgdHlwZTsgdW5hYmxlIHRvIGRpc3BsYXkuIik6bnVsbDtyZXR1cm4gaj9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiaDUiLG51bGwsIlJlc3BvbnNlIGJvZHkiKSxqKTpudWxsfX1jbGFzcyBQYXJhbWV0ZXJzIGV4dGVuZHMgUmUuQ29tcG9uZW50e2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuc3RhdGU9e2NhbGxiYWNrVmlzaWJsZTohMSxwYXJhbWV0ZXJzVmlzaWJsZTohMH19c3RhdGljIGRlZmF1bHRQcm9wcz17b25UcnlvdXRDbGljazpGdW5jdGlvbi5wcm90b3R5cGUsb25DYW5jZWxDbGljazpGdW5jdGlvbi5wcm90b3R5cGUsdHJ5SXRPdXRFbmFibGVkOiExLGFsbG93VHJ5SXRPdXQ6ITAsb25DaGFuZ2VLZXk6W10sc3BlY1BhdGg6W119O29uQ2hhbmdlPShzLG8saSk9PntsZXR7c3BlY0FjdGlvbnM6e2NoYW5nZVBhcmFtQnlJZGVudGl0eTphfSxvbkNoYW5nZUtleTp1fT10aGlzLnByb3BzO2EodSxzLG8saSl9O29uQ2hhbmdlQ29uc3VtZXNXcmFwcGVyPXM9PntsZXR7c3BlY0FjdGlvbnM6e2NoYW5nZUNvbnN1bWVzVmFsdWU6b30sb25DaGFuZ2VLZXk6aX09dGhpcy5wcm9wcztvKGkscyl9O3RvZ2dsZVRhYj1zPT4icGFyYW1ldGVycyI9PT1zP3RoaXMuc2V0U3RhdGUoe3BhcmFtZXRlcnNWaXNpYmxlOiEwLGNhbGxiYWNrVmlzaWJsZTohMX0pOiJjYWxsYmFja3MiPT09cz90aGlzLnNldFN0YXRlKHtjYWxsYmFja1Zpc2libGU6ITAscGFyYW1ldGVyc1Zpc2libGU6ITF9KTp2b2lkIDA7b25DaGFuZ2VNZWRpYVR5cGU9KHt2YWx1ZTpzLHBhdGhNZXRob2Q6b30pPT57bGV0e3NwZWNBY3Rpb25zOmksb2FzM1NlbGVjdG9yczphLG9hczNBY3Rpb25zOnV9PXRoaXMucHJvcHM7Y29uc3QgXz1hLmhhc1VzZXJFZGl0ZWRCb2R5KC4uLm8pLHc9YS5zaG91bGRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlKC4uLm8pO3Uuc2V0UmVxdWVzdENvbnRlbnRUeXBlKHt2YWx1ZTpzLHBhdGhNZXRob2Q6b30pLHUuaW5pdFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcih7cGF0aE1ldGhvZDpvfSksX3x8KHd8fHUuc2V0UmVxdWVzdEJvZHlWYWx1ZSh7dmFsdWU6dm9pZCAwLHBhdGhNZXRob2Q6b30pLGkuY2xlYXJSZXNwb25zZSguLi5vKSxpLmNsZWFyUmVxdWVzdCguLi5vKSxpLmNsZWFyVmFsaWRhdGVQYXJhbXMobykpfTtyZW5kZXIoKXtsZXR7b25UcnlvdXRDbGljazpzLG9uUmVzZXRDbGljazpvLHBhcmFtZXRlcnM6aSxhbGxvd1RyeUl0T3V0OmEsdHJ5SXRPdXRFbmFibGVkOnUsc3BlY1BhdGg6Xyxmbjp3LGdldENvbXBvbmVudDp4LGdldENvbmZpZ3M6QyxzcGVjU2VsZWN0b3JzOmosc3BlY0FjdGlvbnM6TCxwYXRoTWV0aG9kOkIsb2FzM0FjdGlvbnM6JCxvYXMzU2VsZWN0b3JzOlYsb3BlcmF0aW9uOlV9PXRoaXMucHJvcHM7Y29uc3Qgej14KCJwYXJhbWV0ZXJSb3ciKSxZPXgoIlRyeUl0T3V0QnV0dG9uIiksWj14KCJjb250ZW50VHlwZSIpLGVlPXgoIkNhbGxiYWNrcyIsITApLGllPXgoIlJlcXVlc3RCb2R5IiwhMCksYWU9dSYmYSxjZT1qLmlzT0FTMygpLGxlPWAke2NyZWF0ZUh0bWxSZWFkeUlkKGAke0JbMV19JHtCWzBdfV9yZXF1ZXN0c2ApfV9zZWxlY3RgLHBlPVUuZ2V0KCJyZXF1ZXN0Qm9keSIpLGRlPU9iamVjdC52YWx1ZXMoaS5yZWR1Y2UoKChzLG8pPT57aWYoemUuTWFwLmlzTWFwKG8pKXtjb25zdCBpPW8uZ2V0KCJpbiIpO3NbaV0/Pz1bXSxzW2ldLnB1c2gobyl9cmV0dXJuIHN9KSx7fSkpLnJlZHVjZSgoKHMsbyk9PnMuY29uY2F0KG8pKSxbXSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1zZWN0aW9uIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXNlY3Rpb24taGVhZGVyIn0sY2U/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJ0YWItaGVhZGVyIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7b25DbGljazooKT0+dGhpcy50b2dnbGVUYWIoInBhcmFtZXRlcnMiKSxjbGFzc05hbWU6YHRhYi1pdGVtICR7dGhpcy5zdGF0ZS5wYXJhbWV0ZXJzVmlzaWJsZSYmImFjdGl2ZSJ9YH0sUmUuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6Im9wYmxvY2stdGl0bGUifSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCJQYXJhbWV0ZXJzIikpKSxVLmdldCgiY2FsbGJhY2tzIik/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7b25DbGljazooKT0+dGhpcy50b2dnbGVUYWIoImNhbGxiYWNrcyIpLGNsYXNzTmFtZTpgdGFiLWl0ZW0gJHt0aGlzLnN0YXRlLmNhbGxiYWNrVmlzaWJsZSYmImFjdGl2ZSJ9YH0sUmUuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6Im9wYmxvY2stdGl0bGUifSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCJDYWxsYmFja3MiKSkpOm51bGwpOlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidGFiLWhlYWRlciJ9LFJlLmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXRpdGxlIn0sIlBhcmFtZXRlcnMiKSksYT9SZS5jcmVhdGVFbGVtZW50KFkse2lzT0FTMzpqLmlzT0FTMygpLGhhc1VzZXJFZGl0ZWRCb2R5OlYuaGFzVXNlckVkaXRlZEJvZHkoLi4uQiksZW5hYmxlZDp1LG9uQ2FuY2VsQ2xpY2s6dGhpcy5wcm9wcy5vbkNhbmNlbENsaWNrLG9uVHJ5b3V0Q2xpY2s6cyxvblJlc2V0Q2xpY2s6KCk9Pm8oQil9KTpudWxsKSx0aGlzLnN0YXRlLnBhcmFtZXRlcnNWaXNpYmxlP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicGFyYW1ldGVycy1jb250YWluZXIifSxkZS5sZW5ndGg/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJ0YWJsZS1jb250YWluZXIifSxSZS5jcmVhdGVFbGVtZW50KCJ0YWJsZSIse2NsYXNzTmFtZToicGFyYW1ldGVycyJ9LFJlLmNyZWF0ZUVsZW1lbnQoInRoZWFkIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInRyIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInRoIix7Y2xhc3NOYW1lOiJjb2xfaGVhZGVyIHBhcmFtZXRlcnMtY29sX25hbWUifSwiTmFtZSIpLFJlLmNyZWF0ZUVsZW1lbnQoInRoIix7Y2xhc3NOYW1lOiJjb2xfaGVhZGVyIHBhcmFtZXRlcnMtY29sX2Rlc2NyaXB0aW9uIn0sIkRlc2NyaXB0aW9uIikpKSxSZS5jcmVhdGVFbGVtZW50KCJ0Ym9keSIsbnVsbCxkZS5tYXAoKChzLG8pPT5SZS5jcmVhdGVFbGVtZW50KHose2ZuOncsc3BlY1BhdGg6Xy5wdXNoKG8udG9TdHJpbmcoKSksZ2V0Q29tcG9uZW50OngsZ2V0Q29uZmlnczpDLHJhd1BhcmFtOnMscGFyYW06ai5wYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkoQixzKSxrZXk6YCR7cy5nZXQoImluIil9LiR7cy5nZXQoIm5hbWUiKX1gLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2Usb25DaGFuZ2VDb25zdW1lczp0aGlzLm9uQ2hhbmdlQ29uc3VtZXNXcmFwcGVyLHNwZWNTZWxlY3RvcnM6aixzcGVjQWN0aW9uczpMLG9hczNBY3Rpb25zOiQsb2FzM1NlbGVjdG9yczpWLHBhdGhNZXRob2Q6Qixpc0V4ZWN1dGU6YWV9KSkpKSkpOlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1kZXNjcmlwdGlvbi13cmFwcGVyIn0sUmUuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiTm8gcGFyYW1ldGVycyIpKSk6bnVsbCx0aGlzLnN0YXRlLmNhbGxiYWNrVmlzaWJsZT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImNhbGxiYWNrcy1jb250YWluZXIgb3BibG9jay1kZXNjcmlwdGlvbi13cmFwcGVyIn0sUmUuY3JlYXRlRWxlbWVudChlZSx7Y2FsbGJhY2tzOigwLHplLk1hcCkoVS5nZXQoImNhbGxiYWNrcyIpKSxzcGVjUGF0aDpfLnNsaWNlKDAsLTEpLnB1c2goImNhbGxiYWNrcyIpfSkpOm51bGwsY2UmJnBlJiZ0aGlzLnN0YXRlLnBhcmFtZXRlcnNWaXNpYmxlJiZSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc2VjdGlvbiBvcGJsb2NrLXNlY3Rpb24tcmVxdWVzdC1ib2R5In0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXNlY3Rpb24taGVhZGVyIn0sUmUuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6YG9wYmxvY2stdGl0bGUgcGFyYW1ldGVyX19uYW1lICR7cGUuZ2V0KCJyZXF1aXJlZCIpJiYicmVxdWlyZWQifWB9LCJSZXF1ZXN0IGJvZHkiKSxSZS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2lkOmxlfSxSZS5jcmVhdGVFbGVtZW50KFose3ZhbHVlOlYucmVxdWVzdENvbnRlbnRUeXBlKC4uLkIpLGNvbnRlbnRUeXBlczpwZS5nZXQoImNvbnRlbnQiLCgwLHplLkxpc3QpKCkpLmtleVNlcSgpLG9uQ2hhbmdlOnM9Pnt0aGlzLm9uQ2hhbmdlTWVkaWFUeXBlKHt2YWx1ZTpzLHBhdGhNZXRob2Q6Qn0pfSxjbGFzc05hbWU6ImJvZHktcGFyYW0tY29udGVudC10eXBlIixhcmlhTGFiZWw6IlJlcXVlc3QgY29udGVudCB0eXBlIixjb250cm9sSWQ6bGV9KSkpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1kZXNjcmlwdGlvbi13cmFwcGVyIn0sUmUuY3JlYXRlRWxlbWVudChpZSx7c2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWc6cz0+JC5zZXRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlRmxhZyh7dmFsdWU6cyxwYXRoTWV0aG9kOkJ9KSx1c2VySGFzRWRpdGVkQm9keTpWLmhhc1VzZXJFZGl0ZWRCb2R5KC4uLkIpLHNwZWNQYXRoOl8uc2xpY2UoMCwtMSkucHVzaCgicmVxdWVzdEJvZHkiKSxyZXF1ZXN0Qm9keTpwZSxyZXF1ZXN0Qm9keVZhbHVlOlYucmVxdWVzdEJvZHlWYWx1ZSguLi5CKSxyZXF1ZXN0Qm9keUluY2x1c2lvblNldHRpbmc6Vi5yZXF1ZXN0Qm9keUluY2x1c2lvblNldHRpbmcoLi4uQikscmVxdWVzdEJvZHlFcnJvcnM6Vi5yZXF1ZXN0Qm9keUVycm9ycyguLi5CKSxpc0V4ZWN1dGU6YWUsZ2V0Q29uZmlnczpDLGFjdGl2ZUV4YW1wbGVzS2V5OlYuYWN0aXZlRXhhbXBsZXNNZW1iZXIoLi4uQiwicmVxdWVzdEJvZHkiLCJyZXF1ZXN0Qm9keSIpLHVwZGF0ZUFjdGl2ZUV4YW1wbGVzS2V5OnM9Pnt0aGlzLnByb3BzLm9hczNBY3Rpb25zLnNldEFjdGl2ZUV4YW1wbGVzTWVtYmVyKHtuYW1lOnMscGF0aE1ldGhvZDp0aGlzLnByb3BzLnBhdGhNZXRob2QsY29udGV4dFR5cGU6InJlcXVlc3RCb2R5Iixjb250ZXh0TmFtZToicmVxdWVzdEJvZHkifSl9LG9uQ2hhbmdlOihzLG8pPT57aWYobyl7Y29uc3QgaT1WLnJlcXVlc3RCb2R5VmFsdWUoLi4uQiksYT16ZS5NYXAuaXNNYXAoaSk/aTooMCx6ZS5NYXApKCk7cmV0dXJuICQuc2V0UmVxdWVzdEJvZHlWYWx1ZSh7cGF0aE1ldGhvZDpCLHZhbHVlOmEuc2V0SW4obyxzKX0pfSQuc2V0UmVxdWVzdEJvZHlWYWx1ZSh7dmFsdWU6cyxwYXRoTWV0aG9kOkJ9KX0sb25DaGFuZ2VJbmNsdWRlRW1wdHk6KHMsbyk9PnskLnNldFJlcXVlc3RCb2R5SW5jbHVzaW9uKHtwYXRoTWV0aG9kOkIsdmFsdWU6byxuYW1lOnN9KX0sY29udGVudFR5cGU6Vi5yZXF1ZXN0Q29udGVudFR5cGUoLi4uQil9KSkpKX19Y29uc3QgcGFyYW1ldGVyX2V4dGVuc2lvbj0oe3hLZXk6cyx4VmFsOm99KT0+UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJwYXJhbWV0ZXJfX2V4dGVuc2lvbiJ9LHMsIjogIixTdHJpbmcobykpLGVDPXtvbkNoYW5nZTooKT0+e30saXNJbmNsdWRlZE9wdGlvbnM6e319O2NsYXNzIFBhcmFtZXRlckluY2x1ZGVFbXB0eSBleHRlbmRzIFJlLkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPWVDO2NvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7aXNJbmNsdWRlZE9wdGlvbnM6cyxvbkNoYW5nZTpvfT10aGlzLnByb3BzLHtzaG91bGREaXNwYXRjaEluaXQ6aSxkZWZhdWx0VmFsdWU6YX09cztpJiZvKGEpfW9uQ2hlY2tib3hDaGFuZ2U9cz0+e2NvbnN0e29uQ2hhbmdlOm99PXRoaXMucHJvcHM7byhzLnRhcmdldC5jaGVja2VkKX07cmVuZGVyKCl7bGV0e2lzSW5jbHVkZWQ6cyxpc0Rpc2FibGVkOm99PXRoaXMucHJvcHM7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6ImluY2x1ZGVfZW1wdHlfdmFsdWUiLGNsYXNzTmFtZTpKbigpKCJwYXJhbWV0ZXJfX2VtcHR5X3ZhbHVlX3RvZ2dsZSIse2Rpc2FibGVkOm99KX0sUmUuY3JlYXRlRWxlbWVudCgiaW5wdXQiLHtpZDoiaW5jbHVkZV9lbXB0eV92YWx1ZSIsdHlwZToiY2hlY2tib3giLGRpc2FibGVkOm8sY2hlY2tlZDohbyYmcyxvbkNoYW5nZTp0aGlzLm9uQ2hlY2tib3hDaGFuZ2V9KSwiU2VuZCBlbXB0eSB2YWx1ZSIpKX19Y2xhc3MgUGFyYW1ldGVyUm93IGV4dGVuZHMgUmUuQ29tcG9uZW50e2NvbnN0cnVjdG9yKHMsbyl7c3VwZXIocyxvKSx0aGlzLnNldERlZmF1bHRWYWx1ZSgpfVVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHMpe2xldCBvLHtzcGVjU2VsZWN0b3JzOmkscGF0aE1ldGhvZDphLHJhd1BhcmFtOnV9PXMsXz1pLmlzT0FTMygpLHc9aS5wYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkoYSx1KXx8bmV3IHplLk1hcDtpZih3PXcuaXNFbXB0eSgpP3U6dyxfKXtsZXR7c2NoZW1hOnN9PWdldFBhcmFtZXRlclNjaGVtYSh3LHtpc09BUzM6X30pO289cz9zLmdldCgiZW51bSIpOnZvaWQgMH1lbHNlIG89dz93LmdldCgiZW51bSIpOnZvaWQgMDtsZXQgeCxDPXc/dy5nZXQoInZhbHVlIik6dm9pZCAwO3ZvaWQgMCE9PUM/eD1DOnUuZ2V0KCJyZXF1aXJlZCIpJiZvJiZvLnNpemUmJih4PW8uZmlyc3QoKSksdm9pZCAwIT09eCYmeCE9PUMmJnRoaXMub25DaGFuZ2VXcmFwcGVyKGZ1bmN0aW9uIG51bWJlclRvU3RyaW5nKHMpe3JldHVybiJudW1iZXIiPT10eXBlb2Ygcz9zLnRvU3RyaW5nKCk6c30oeCkpLHRoaXMuc2V0RGVmYXVsdFZhbHVlKCl9b25DaGFuZ2VXcmFwcGVyPShzLG89ITEpPT57bGV0IGkse29uQ2hhbmdlOmEscmF3UGFyYW06dX09dGhpcy5wcm9wcztyZXR1cm4gaT0iIj09PXN8fHMmJjA9PT1zLnNpemU/bnVsbDpzLGEodSxpLG8pfTtfb25FeGFtcGxlU2VsZWN0PXM9Pnt0aGlzLnByb3BzLm9hczNBY3Rpb25zLnNldEFjdGl2ZUV4YW1wbGVzTWVtYmVyKHtuYW1lOnMscGF0aE1ldGhvZDp0aGlzLnByb3BzLnBhdGhNZXRob2QsY29udGV4dFR5cGU6InBhcmFtZXRlcnMiLGNvbnRleHROYW1lOnRoaXMuZ2V0UGFyYW1LZXkoKX0pfTtvbkNoYW5nZUluY2x1ZGVFbXB0eT1zPT57bGV0e3NwZWNBY3Rpb25zOm8scGFyYW06aSxwYXRoTWV0aG9kOmF9PXRoaXMucHJvcHM7Y29uc3QgdT1pLmdldCgibmFtZSIpLF89aS5nZXQoImluIik7cmV0dXJuIG8udXBkYXRlRW1wdHlQYXJhbUluY2x1c2lvbihhLHUsXyxzKX07c2V0RGVmYXVsdFZhbHVlPSgpPT57bGV0e3NwZWNTZWxlY3RvcnM6cyxwYXRoTWV0aG9kOm8scmF3UGFyYW06aSxvYXMzU2VsZWN0b3JzOmEsZm46dX09dGhpcy5wcm9wcztjb25zdCBfPXMucGFyYW1ldGVyV2l0aE1ldGFCeUlkZW50aXR5KG8saSl8fCgwLHplLk1hcCkoKTtsZXR7c2NoZW1hOnd9PWdldFBhcmFtZXRlclNjaGVtYShfLHtpc09BUzM6cy5pc09BUzMoKX0pO2NvbnN0IHg9Xy5nZXQoImNvbnRlbnQiLCgwLHplLk1hcCkoKSkua2V5U2VxKCkuZmlyc3QoKSxDPXc/dS5nZXRTYW1wbGVTY2hlbWEody50b0pTKCkseCx7aW5jbHVkZVdyaXRlT25seTohMH0pOm51bGw7aWYoXyYmdm9pZCAwPT09Xy5nZXQoInZhbHVlIikmJiJib2R5IiE9PV8uZ2V0KCJpbiIpKXtsZXQgaTtpZihzLmlzU3dhZ2dlcjIoKSlpPXZvaWQgMCE9PV8uZ2V0KCJ4LWV4YW1wbGUiKT9fLmdldCgieC1leGFtcGxlIik6dm9pZCAwIT09Xy5nZXRJbihbInNjaGVtYSIsImV4YW1wbGUiXSk/Xy5nZXRJbihbInNjaGVtYSIsImV4YW1wbGUiXSk6dyYmdy5nZXRJbihbImRlZmF1bHQiXSk7ZWxzZSBpZihzLmlzT0FTMygpKXt3PXRoaXMuY29tcG9zZUpzb25TY2hlbWEodyk7Y29uc3Qgcz1hLmFjdGl2ZUV4YW1wbGVzTWVtYmVyKC4uLm8sInBhcmFtZXRlcnMiLHRoaXMuZ2V0UGFyYW1LZXkoKSk7aT12b2lkIDAhPT1fLmdldEluKFsiZXhhbXBsZXMiLHMsInZhbHVlIl0pP18uZ2V0SW4oWyJleGFtcGxlcyIscywidmFsdWUiXSk6dm9pZCAwIT09Xy5nZXRJbihbImNvbnRlbnQiLHgsImV4YW1wbGUiXSk/Xy5nZXRJbihbImNvbnRlbnQiLHgsImV4YW1wbGUiXSk6dm9pZCAwIT09Xy5nZXQoImV4YW1wbGUiKT9fLmdldCgiZXhhbXBsZSIpOnZvaWQgMCE9PSh3JiZ3LmdldCgiZXhhbXBsZSIpKT93JiZ3LmdldCgiZXhhbXBsZSIpOnZvaWQgMCE9PSh3JiZ3LmdldCgiZGVmYXVsdCIpKT93JiZ3LmdldCgiZGVmYXVsdCIpOl8uZ2V0KCJkZWZhdWx0Iil9dm9pZCAwPT09aXx8emUuTGlzdC5pc0xpc3QoaSl8fChpPXN0cmluZ2lmeShpKSk7Y29uc3Qgaj11LmdldFNjaGVtYU9iamVjdFR5cGUodyksTD11LmdldFNjaGVtYU9iamVjdFR5cGUodz8uZ2V0KCJpdGVtcyIpKTt2b2lkIDAhPT1pP3RoaXMub25DaGFuZ2VXcmFwcGVyKGkpOiJvYmplY3QiPT09aiYmQyYmIV8uZ2V0KCJleGFtcGxlcyIpP3RoaXMub25DaGFuZ2VXcmFwcGVyKHplLkxpc3QuaXNMaXN0KEMpP0M6c3RyaW5naWZ5KEMpKToiYXJyYXkiPT09aiYmIm9iamVjdCI9PT1MJiZDJiYhXy5nZXQoImV4YW1wbGVzIikmJnRoaXMub25DaGFuZ2VXcmFwcGVyKHplLkxpc3QuaXNMaXN0KEMpP0M6KDAsemUuTGlzdCkoSlNPTi5wYXJzZShDKSkpfX07Z2V0UGFyYW1LZXkoKXtjb25zdHtwYXJhbTpzfT10aGlzLnByb3BzO3JldHVybiBzP2Ake3MuZ2V0KCJuYW1lIil9LSR7cy5nZXQoImluIil9YDpudWxsfWNvbXBvc2VKc29uU2NoZW1hKHMpe2NvbnN0e2ZuOm99PXRoaXMucHJvcHMsaT1zLmdldCgib25lT2YiKT8uZ2V0KDApPy50b0pTKCksYT1zLmdldCgiYW55T2YiKT8uZ2V0KDApPy50b0pTKCk7cmV0dXJuKDAsemUuZnJvbUpTKShvLm1lcmdlSnNvblNjaGVtYShzLnRvSlMoKSxpPz9hPz97fSkpfXJlbmRlcigpe2xldHtwYXJhbTpzLHJhd1BhcmFtOm8sZ2V0Q29tcG9uZW50OmksZ2V0Q29uZmlnczphLGlzRXhlY3V0ZTp1LGZuOl8sb25DaGFuZ2VDb25zdW1lczp3LHNwZWNTZWxlY3RvcnM6eCxwYXRoTWV0aG9kOkMsc3BlY1BhdGg6aixvYXMzU2VsZWN0b3JzOkx9PXRoaXMucHJvcHMsQj14LmlzT0FTMygpO2NvbnN0e3Nob3dFeHRlbnNpb25zOiQsc2hvd0NvbW1vbkV4dGVuc2lvbnM6Vn09YSgpO2lmKHN8fChzPW8pLCFvKXJldHVybiBudWxsO2NvbnN0IFU9aSgiSnNvblNjaGVtYUZvcm0iKSx6PWkoIlBhcmFtQm9keSIpO2xldCBZPXMuZ2V0KCJpbiIpLFo9ImJvZHkiIT09WT9udWxsOlJlLmNyZWF0ZUVsZW1lbnQoeix7Z2V0Q29tcG9uZW50OmksZ2V0Q29uZmlnczphLGZuOl8scGFyYW06cyxjb25zdW1lczp4LmNvbnN1bWVzT3B0aW9uc0ZvcihDKSxjb25zdW1lc1ZhbHVlOnguY29udGVudFR5cGVWYWx1ZXMoQykuZ2V0KCJyZXF1ZXN0Q29udGVudFR5cGUiKSxvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlV3JhcHBlcixvbkNoYW5nZUNvbnN1bWVzOncsaXNFeGVjdXRlOnUsc3BlY1NlbGVjdG9yczp4LHBhdGhNZXRob2Q6Q30pO2NvbnN0IGVlPWkoIm1vZGVsRXhhbXBsZSIpLGllPWkoIk1hcmtkb3duIiwhMCksYWU9aSgiUGFyYW1ldGVyRXh0IiksY2U9aSgiUGFyYW1ldGVySW5jbHVkZUVtcHR5IiksbGU9aSgiRXhhbXBsZXNTZWxlY3RWYWx1ZVJldGFpbmVyIikscGU9aSgiRXhhbXBsZSIpO2xldHtzY2hlbWE6ZGV9PWdldFBhcmFtZXRlclNjaGVtYShzLHtpc09BUzM6Qn0pLGZlPXgucGFyYW1ldGVyV2l0aE1ldGFCeUlkZW50aXR5KEMsbyl8fCgwLHplLk1hcCkoKTtCJiYoZGU9dGhpcy5jb21wb3NlSnNvblNjaGVtYShkZSkpO2xldCB5ZT1kZT9kZS5nZXQoImZvcm1hdCIpOm51bGwsYmU9ImZvcm1EYXRhIj09PVksX2U9IkZvcm1EYXRhImluIGx0LFNlPXMuZ2V0KCJyZXF1aXJlZCIpO2NvbnN0IHdlPV8uZ2V0U2NoZW1hT2JqZWN0VHlwZShkZSkseGU9Xy5nZXRTY2hlbWFPYmplY3RUeXBlKGRlPy5nZXQoIml0ZW1zIikpLFBlPV8uZ2V0U2NoZW1hT2JqZWN0VHlwZUxhYmVsKGRlKSxUZT0hWiYmIm9iamVjdCI9PT13ZSwkZT0hWiYmIm9iamVjdCI9PT14ZTtsZXQgcWUsV2UsSGUsWWUsWGU9ZmU/ZmUuZ2V0KCJ2YWx1ZSIpOiIiLFFlPVY/Z2V0Q29tbW9uRXh0ZW5zaW9ucyhkZSk6bnVsbCxldD0kP2dldEV4dGVuc2lvbnMocyk6bnVsbCx0dD0hMTt2b2lkIDAhPT1zJiZkZSYmKHFlPWRlLmdldCgiaXRlbXMiKSksdm9pZCAwIT09cWU/KFdlPXFlLmdldCgiZW51bSIpLEhlPXFlLmdldCgiZGVmYXVsdCIpKTpkZSYmKFdlPWRlLmdldCgiZW51bSIpKSxXZSYmV2Uuc2l6ZSYmV2Uuc2l6ZT4wJiYodHQ9ITApLHZvaWQgMCE9PXMmJihkZSYmKEhlPWRlLmdldCgiZGVmYXVsdCIpKSx2b2lkIDA9PT1IZSYmKEhlPXMuZ2V0KCJkZWZhdWx0IikpLFllPXMuZ2V0KCJleGFtcGxlIiksdm9pZCAwPT09WWUmJihZZT1zLmdldCgieC1leGFtcGxlIikpKTtjb25zdCBydD1aP251bGw6UmUuY3JlYXRlRWxlbWVudChVLHtmbjpfLGdldENvbXBvbmVudDppLHZhbHVlOlhlLHJlcXVpcmVkOlNlLGRpc2FibGVkOiF1LGRlc2NyaXB0aW9uOnMuZ2V0KCJuYW1lIiksb25DaGFuZ2U6dGhpcy5vbkNoYW5nZVdyYXBwZXIsZXJyb3JzOmZlLmdldCgiZXJyb3JzIiksc2NoZW1hOmRlfSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoInRyIix7ImRhdGEtcGFyYW0tbmFtZSI6cy5nZXQoIm5hbWUiKSwiZGF0YS1wYXJhbS1pbiI6cy5nZXQoImluIil9LFJlLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJwYXJhbWV0ZXJzLWNvbF9uYW1lIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlNlPyJwYXJhbWV0ZXJfX25hbWUgcmVxdWlyZWQiOiJwYXJhbWV0ZXJfX25hbWUifSxzLmdldCgibmFtZSIpLFNlP1JlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsIsKgKiIpOm51bGwpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicGFyYW1ldGVyX190eXBlIn0sUGUseWUmJlJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6InByb3AtZm9ybWF0In0sIigkIix5ZSwiKSIpKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InBhcmFtZXRlcl9fZGVwcmVjYXRlZCJ9LEImJnMuZ2V0KCJkZXByZWNhdGVkIik/ImRlcHJlY2F0ZWQiOm51bGwpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicGFyYW1ldGVyX19pbiJ9LCIoIixzLmdldCgiaW4iKSwiKSIpKSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToicGFyYW1ldGVycy1jb2xfZGVzY3JpcHRpb24ifSxzLmdldCgiZGVzY3JpcHRpb24iKT9SZS5jcmVhdGVFbGVtZW50KGllLHtzb3VyY2U6cy5nZXQoImRlc2NyaXB0aW9uIil9KTpudWxsLCFaJiZ1fHwhdHQ/bnVsbDpSZS5jcmVhdGVFbGVtZW50KGllLHtjbGFzc05hbWU6InBhcmFtZXRlcl9fZW51bSIsc291cmNlOiI8aT5BdmFpbGFibGUgdmFsdWVzPC9pPiA6ICIrV2UubWFwKChmdW5jdGlvbihzKXtyZXR1cm4gc30pKS50b0FycmF5KCkubWFwKFN0cmluZykuam9pbigiLCAiKX0pLCFaJiZ1fHx2b2lkIDA9PT1IZT9udWxsOlJlLmNyZWF0ZUVsZW1lbnQoaWUse2NsYXNzTmFtZToicGFyYW1ldGVyX19kZWZhdWx0Iixzb3VyY2U6IjxpPkRlZmF1bHQgdmFsdWU8L2k+IDogIitIZX0pLCFaJiZ1fHx2b2lkIDA9PT1ZZT9udWxsOlJlLmNyZWF0ZUVsZW1lbnQoaWUse3NvdXJjZToiPGk+RXhhbXBsZTwvaT4gOiAiK1llfSksYmUmJiFfZSYmUmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLCJFcnJvcjogeW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgRm9ybURhdGEiKSxCJiZzLmdldCgiZXhhbXBsZXMiKT9SZS5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIix7Y2xhc3NOYW1lOiJwYXJhbWV0ZXItY29udHJvbHMifSxSZS5jcmVhdGVFbGVtZW50KGxlLHtleGFtcGxlczpzLmdldCgiZXhhbXBsZXMiKSxvblNlbGVjdDp0aGlzLl9vbkV4YW1wbGVTZWxlY3QsdXBkYXRlVmFsdWU6dGhpcy5vbkNoYW5nZVdyYXBwZXIsZ2V0Q29tcG9uZW50OmksZGVmYXVsdFRvRmlyc3RFeGFtcGxlOiEwLGN1cnJlbnRLZXk6TC5hY3RpdmVFeGFtcGxlc01lbWJlciguLi5DLCJwYXJhbWV0ZXJzIix0aGlzLmdldFBhcmFtS2V5KCkpLGN1cnJlbnRVc2VySW5wdXRWYWx1ZTpYZX0pKTpudWxsLFRlfHwkZT9SZS5jcmVhdGVFbGVtZW50KGVlLHtnZXRDb21wb25lbnQ6aSxzcGVjUGF0aDpqLnB1c2goInNjaGVtYSIpLGdldENvbmZpZ3M6YSxpc0V4ZWN1dGU6dSxzcGVjU2VsZWN0b3JzOngsc2NoZW1hOmRlLGV4YW1wbGU6cnR9KTpydCxaJiZkZT9SZS5jcmVhdGVFbGVtZW50KGVlLHtnZXRDb21wb25lbnQ6aSxzcGVjUGF0aDpqLnB1c2goInNjaGVtYSIpLGdldENvbmZpZ3M6YSxpc0V4ZWN1dGU6dSxzcGVjU2VsZWN0b3JzOngsc2NoZW1hOmRlLGV4YW1wbGU6WixpbmNsdWRlV3JpdGVPbmx5OiEwfSk6bnVsbCwhWiYmdSYmcy5nZXQoImFsbG93RW1wdHlWYWx1ZSIpP1JlLmNyZWF0ZUVsZW1lbnQoY2Use29uQ2hhbmdlOnRoaXMub25DaGFuZ2VJbmNsdWRlRW1wdHksaXNJbmNsdWRlZDp4LnBhcmFtZXRlckluY2x1c2lvblNldHRpbmdGb3IoQyxzLmdldCgibmFtZSIpLHMuZ2V0KCJpbiIpKSxpc0Rpc2FibGVkOiFpc0VtcHR5VmFsdWUoWGUpfSk6bnVsbCxCJiZzLmdldCgiZXhhbXBsZXMiKT9SZS5jcmVhdGVFbGVtZW50KHBlLHtleGFtcGxlOnMuZ2V0SW4oWyJleGFtcGxlcyIsTC5hY3RpdmVFeGFtcGxlc01lbWJlciguLi5DLCJwYXJhbWV0ZXJzIix0aGlzLmdldFBhcmFtS2V5KCkpXSksZ2V0Q29tcG9uZW50OmksZ2V0Q29uZmlnczphfSk6bnVsbCxWJiZRZS5zaXplP1FlLmVudHJ5U2VxKCkubWFwKCgoW3Msb10pPT5SZS5jcmVhdGVFbGVtZW50KGFlLHtrZXk6YCR7c30tJHtvfWAseEtleTpzLHhWYWw6b30pKSk6bnVsbCwkJiZldC5zaXplP2V0LmVudHJ5U2VxKCkubWFwKCgoW3Msb10pPT5SZS5jcmVhdGVFbGVtZW50KGFlLHtrZXk6YCR7c30tJHtvfWAseEtleTpzLHhWYWw6b30pKSk6bnVsbCkpfX1jbGFzcyBFeGVjdXRlIGV4dGVuZHMgUmUuQ29tcG9uZW50e2hhbmRsZVZhbGlkYXRlUGFyYW1ldGVycz0oKT0+e2xldHtzcGVjU2VsZWN0b3JzOnMsc3BlY0FjdGlvbnM6byxwYXRoOmksbWV0aG9kOmF9PXRoaXMucHJvcHM7cmV0dXJuIG8udmFsaWRhdGVQYXJhbXMoW2ksYV0pLHMudmFsaWRhdGVCZWZvcmVFeGVjdXRlKFtpLGFdKX07aGFuZGxlVmFsaWRhdGVSZXF1ZXN0Qm9keT0oKT0+e2xldHtwYXRoOnMsbWV0aG9kOm8sc3BlY1NlbGVjdG9yczppLG9hczNTZWxlY3RvcnM6YSxvYXMzQWN0aW9uczp1fT10aGlzLnByb3BzLF89e21pc3NpbmdCb2R5VmFsdWU6ITEsbWlzc2luZ1JlcXVpcmVkS2V5czpbXX07dS5jbGVhclJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcih7cGF0aDpzLG1ldGhvZDpvfSk7bGV0IHc9aS5nZXRPQVMzUmVxdWlyZWRSZXF1ZXN0Qm9keUNvbnRlbnRUeXBlKFtzLG9dKSx4PWEucmVxdWVzdEJvZHlWYWx1ZShzLG8pLEM9YS52YWxpZGF0ZUJlZm9yZUV4ZWN1dGUoW3Msb10pLGo9YS5yZXF1ZXN0Q29udGVudFR5cGUocyxvKTtpZighQylyZXR1cm4gXy5taXNzaW5nQm9keVZhbHVlPSEwLHUuc2V0UmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yKHtwYXRoOnMsbWV0aG9kOm8sdmFsaWRhdGlvbkVycm9yczpffSksITE7aWYoIXcpcmV0dXJuITA7bGV0IEw9YS52YWxpZGF0ZVNoYWxsb3dSZXF1aXJlZCh7b2FzM1JlcXVpcmVkUmVxdWVzdEJvZHlDb250ZW50VHlwZTp3LG9hczNSZXF1ZXN0Q29udGVudFR5cGU6aixvYXMzUmVxdWVzdEJvZHlWYWx1ZTp4fSk7cmV0dXJuIUx8fEwubGVuZ3RoPDF8fChMLmZvckVhY2goKHM9PntfLm1pc3NpbmdSZXF1aXJlZEtleXMucHVzaChzKX0pKSx1LnNldFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcih7cGF0aDpzLG1ldGhvZDpvLHZhbGlkYXRpb25FcnJvcnM6X30pLCExKX07aGFuZGxlVmFsaWRhdGlvblJlc3VsdFBhc3M9KCk9PntsZXR7c3BlY0FjdGlvbnM6cyxvcGVyYXRpb246byxwYXRoOmksbWV0aG9kOmF9PXRoaXMucHJvcHM7dGhpcy5wcm9wcy5vbkV4ZWN1dGUmJnRoaXMucHJvcHMub25FeGVjdXRlKCkscy5leGVjdXRlKHtvcGVyYXRpb246byxwYXRoOmksbWV0aG9kOmF9KX07aGFuZGxlVmFsaWRhdGlvblJlc3VsdEZhaWw9KCk9PntsZXR7c3BlY0FjdGlvbnM6cyxwYXRoOm8sbWV0aG9kOml9PXRoaXMucHJvcHM7cy5jbGVhclZhbGlkYXRlUGFyYW1zKFtvLGldKSxzZXRUaW1lb3V0KCgoKT0+e3MudmFsaWRhdGVQYXJhbXMoW28saV0pfSksNDApfTtoYW5kbGVWYWxpZGF0aW9uUmVzdWx0PXM9PntzP3RoaXMuaGFuZGxlVmFsaWRhdGlvblJlc3VsdFBhc3MoKTp0aGlzLmhhbmRsZVZhbGlkYXRpb25SZXN1bHRGYWlsKCl9O29uQ2xpY2s9KCk9PntsZXQgcz10aGlzLmhhbmRsZVZhbGlkYXRlUGFyYW1ldGVycygpLG89dGhpcy5oYW5kbGVWYWxpZGF0ZVJlcXVlc3RCb2R5KCksaT1zJiZvO3RoaXMuaGFuZGxlVmFsaWRhdGlvblJlc3VsdChpKX07b25DaGFuZ2VQcm9kdWNlc1dyYXBwZXI9cz0+dGhpcy5wcm9wcy5zcGVjQWN0aW9ucy5jaGFuZ2VQcm9kdWNlc1ZhbHVlKFt0aGlzLnByb3BzLnBhdGgsdGhpcy5wcm9wcy5tZXRob2RdLHMpO3JlbmRlcigpe2NvbnN0e2Rpc2FibGVkOnN9PXRoaXMucHJvcHM7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse2NsYXNzTmFtZToiYnRuIGV4ZWN1dGUgb3BibG9jay1jb250cm9sX19idG4iLG9uQ2xpY2s6dGhpcy5vbkNsaWNrLGRpc2FibGVkOnN9LCJFeGVjdXRlIil9fWNsYXNzIGhlYWRlcnNfSGVhZGVycyBleHRlbmRzIFJlLkNvbXBvbmVudHtyZW5kZXIoKXtsZXR7aGVhZGVyczpzLGdldENvbXBvbmVudDpvfT10aGlzLnByb3BzO2NvbnN0IGk9bygiUHJvcGVydHkiKSxhPW8oIk1hcmtkb3duIiwhMCk7cmV0dXJuIHMmJnMuc2l6ZT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImhlYWRlcnMtd3JhcHBlciJ9LFJlLmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJoZWFkZXJzX190aXRsZSJ9LCJIZWFkZXJzOiIpLFJlLmNyZWF0ZUVsZW1lbnQoInRhYmxlIix7Y2xhc3NOYW1lOiJoZWFkZXJzIn0sUmUuY3JlYXRlRWxlbWVudCgidGhlYWQiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgidHIiLHtjbGFzc05hbWU6ImhlYWRlci1yb3cifSxSZS5jcmVhdGVFbGVtZW50KCJ0aCIse2NsYXNzTmFtZToiaGVhZGVyLWNvbCJ9LCJOYW1lIiksUmUuY3JlYXRlRWxlbWVudCgidGgiLHtjbGFzc05hbWU6ImhlYWRlci1jb2wifSwiRGVzY3JpcHRpb24iKSxSZS5jcmVhdGVFbGVtZW50KCJ0aCIse2NsYXNzTmFtZToiaGVhZGVyLWNvbCJ9LCJUeXBlIikpKSxSZS5jcmVhdGVFbGVtZW50KCJ0Ym9keSIsbnVsbCxzLmVudHJ5U2VxKCkubWFwKCgoW3Msb10pPT57aWYoIVdlKCkuTWFwLmlzTWFwKG8pKXJldHVybiBudWxsO2NvbnN0IHU9by5nZXQoImRlc2NyaXB0aW9uIiksXz1vLmdldEluKFsic2NoZW1hIl0pP28uZ2V0SW4oWyJzY2hlbWEiLCJ0eXBlIl0pOm8uZ2V0SW4oWyJ0eXBlIl0pLHc9by5nZXRJbihbInNjaGVtYSIsImV4YW1wbGUiXSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoInRyIix7a2V5OnN9LFJlLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJoZWFkZXItY29sIn0scyksUmUuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6ImhlYWRlci1jb2wifSx1P1JlLmNyZWF0ZUVsZW1lbnQoYSx7c291cmNlOnV9KTpudWxsKSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToiaGVhZGVyLWNvbCJ9LF8sIiAiLHc/UmUuY3JlYXRlRWxlbWVudChpLHtwcm9wS2V5OiJFeGFtcGxlIixwcm9wVmFsOncscHJvcENsYXNzOiJoZWFkZXItZXhhbXBsZSJ9KTpudWxsKSl9KSkudG9BcnJheSgpKSkpOm51bGx9fWNsYXNzIEVycm9ycyBleHRlbmRzIFJlLkNvbXBvbmVudHtyZW5kZXIoKXtsZXR7ZWRpdG9yQWN0aW9uczpzLGVyclNlbGVjdG9yczpvLGxheW91dFNlbGVjdG9yczppLGxheW91dEFjdGlvbnM6YSxnZXRDb21wb25lbnQ6dX09dGhpcy5wcm9wcztjb25zdCBfPXUoIkNvbGxhcHNlIik7aWYocyYmcy5qdW1wVG9MaW5lKXZhciB3PXMuanVtcFRvTGluZTtsZXQgeD1vLmFsbEVycm9ycygpLmZpbHRlcigocz0+InRocm93biI9PT1zLmdldCgidHlwZSIpfHwiZXJyb3IiPT09cy5nZXQoImxldmVsIikpKTtpZigheHx8eC5jb3VudCgpPDEpcmV0dXJuIG51bGw7bGV0IEM9aS5pc1Nob3duKFsiZXJyb3JQYW5lIl0sITApLGo9eC5zb3J0QnkoKHM9PnMuZ2V0KCJsaW5lIikpKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgicHJlIix7Y2xhc3NOYW1lOiJlcnJvcnMtd3JhcHBlciJ9LFJlLmNyZWF0ZUVsZW1lbnQoImhncm91cCIse2NsYXNzTmFtZToiZXJyb3IifSxSZS5jcmVhdGVFbGVtZW50KCJoNCIse2NsYXNzTmFtZToiZXJyb3JzX190aXRsZSJ9LCJFcnJvcnMiKSxSZS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtjbGFzc05hbWU6ImJ0biBlcnJvcnNfX2NsZWFyLWJ0biIsb25DbGljazooKT0+YS5zaG93KFsiZXJyb3JQYW5lIl0sIUMpfSxDPyJIaWRlIjoiU2hvdyIpKSxSZS5jcmVhdGVFbGVtZW50KF8se2lzT3BlbmVkOkMsYW5pbWF0ZWQ6ITB9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZXJyb3JzIn0sai5tYXAoKChzLG8pPT57bGV0IGk9cy5nZXQoInR5cGUiKTtyZXR1cm4idGhyb3duIj09PWl8fCJhdXRoIj09PWk/UmUuY3JlYXRlRWxlbWVudChUaHJvd25FcnJvckl0ZW0se2tleTpvLGVycm9yOnMuZ2V0KCJlcnJvciIpfHxzLGp1bXBUb0xpbmU6d30pOiJzcGVjIj09PWk/UmUuY3JlYXRlRWxlbWVudChTcGVjRXJyb3JJdGVtLHtrZXk6byxlcnJvcjpzLGp1bXBUb0xpbmU6d30pOnZvaWQgMH0pKSkpKX19Y29uc3QgVGhyb3duRXJyb3JJdGVtPSh7ZXJyb3I6cyxqdW1wVG9MaW5lOm99KT0+e2lmKCFzKXJldHVybiBudWxsO2xldCBpPXMuZ2V0KCJsaW5lIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZXJyb3Itd3JhcHBlciJ9LHM/UmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLHMuZ2V0KCJzb3VyY2UiKSYmcy5nZXQoImxldmVsIik/dG9UaXRsZUNhc2Uocy5nZXQoInNvdXJjZSIpKSsiICIrcy5nZXQoImxldmVsIik6IiIscy5nZXQoInBhdGgiKT9SZS5jcmVhdGVFbGVtZW50KCJzbWFsbCIsbnVsbCwiIGF0ICIscy5nZXQoInBhdGgiKSk6bnVsbCksUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibWVzc2FnZSB0aHJvd24ifSxzLmdldCgibWVzc2FnZSIpKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImVycm9yLWxpbmUifSxpJiZvP1JlLmNyZWF0ZUVsZW1lbnQoImEiLHtvbkNsaWNrOm8uYmluZChudWxsLGkpfSwiSnVtcCB0byBsaW5lICIsaSk6bnVsbCkpOm51bGwpfSxTcGVjRXJyb3JJdGVtPSh7ZXJyb3I6cyxqdW1wVG9MaW5lOm89bnVsbH0pPT57bGV0IGk9bnVsbDtyZXR1cm4gcy5nZXQoInBhdGgiKT9pPXplLkxpc3QuaXNMaXN0KHMuZ2V0KCJwYXRoIikpP1JlLmNyZWF0ZUVsZW1lbnQoInNtYWxsIixudWxsLCJhdCAiLHMuZ2V0KCJwYXRoIikuam9pbigiLiIpKTpSZS5jcmVhdGVFbGVtZW50KCJzbWFsbCIsbnVsbCwiYXQgIixzLmdldCgicGF0aCIpKTpzLmdldCgibGluZSIpJiYhbyYmKGk9UmUuY3JlYXRlRWxlbWVudCgic21hbGwiLG51bGwsIm9uIGxpbmUgIixzLmdldCgibGluZSIpKSksUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvci13cmFwcGVyIn0scz9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsdG9UaXRsZUNhc2Uocy5nZXQoInNvdXJjZSIpKSsiICIrcy5nZXQoImxldmVsIiksIsKgIixpKSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtZXNzYWdlIn0scy5nZXQoIm1lc3NhZ2UiKSksUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvci1saW5lIn0sbz9SZS5jcmVhdGVFbGVtZW50KCJhIix7b25DbGljazpvLmJpbmQobnVsbCxzLmdldCgibGluZSIpKX0sIkp1bXAgdG8gbGluZSAiLHMuZ2V0KCJsaW5lIikpOm51bGwpKTpudWxsKX07ZnVuY3Rpb24gdG9UaXRsZUNhc2Uocyl7cmV0dXJuKHN8fCIiKS5zcGxpdCgiICIpLm1hcCgocz0+c1swXS50b1VwcGVyQ2FzZSgpK3Muc2xpY2UoMSkpKS5qb2luKCIgIil9Y29uc3QgY29udGVudF90eXBlX25vb3A9KCk9Pnt9O2NsYXNzIENvbnRlbnRUeXBlIGV4dGVuZHMgUmUuQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9e29uQ2hhbmdlOmNvbnRlbnRfdHlwZV9ub29wLHZhbHVlOm51bGwsY29udGVudFR5cGVzOigwLHplLmZyb21KUykoWyJhcHBsaWNhdGlvbi9qc29uIl0pfTtjb21wb25lbnREaWRNb3VudCgpe3RoaXMucHJvcHMuY29udGVudFR5cGVzJiZ0aGlzLnByb3BzLm9uQ2hhbmdlKHRoaXMucHJvcHMuY29udGVudFR5cGVzLmZpcnN0KCkpfVVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHMpe3MuY29udGVudFR5cGVzJiZzLmNvbnRlbnRUeXBlcy5zaXplJiYocy5jb250ZW50VHlwZXMuaW5jbHVkZXMocy52YWx1ZSl8fHMub25DaGFuZ2Uocy5jb250ZW50VHlwZXMuZmlyc3QoKSkpfW9uQ2hhbmdlV3JhcHBlcj1zPT50aGlzLnByb3BzLm9uQ2hhbmdlKHMudGFyZ2V0LnZhbHVlKTtyZW5kZXIoKXtsZXR7YXJpYUNvbnRyb2xzOnMsYXJpYUxhYmVsOm8sY2xhc3NOYW1lOmksY29udGVudFR5cGVzOmEsY29udHJvbElkOnUsdmFsdWU6X309dGhpcy5wcm9wcztyZXR1cm4gYSYmYS5zaXplP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiY29udGVudC10eXBlLXdyYXBwZXIgIisoaXx8IiIpfSxSZS5jcmVhdGVFbGVtZW50KCJzZWxlY3QiLHsiYXJpYS1jb250cm9scyI6cywiYXJpYS1sYWJlbCI6byxjbGFzc05hbWU6ImNvbnRlbnQtdHlwZSIsaWQ6dSxvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlV3JhcHBlcix2YWx1ZTpffHwiIn0sYS5tYXAoKHM9PlJlLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIse2tleTpzLHZhbHVlOnN9LHMpKSkudG9BcnJheSgpKSk6bnVsbH19ZnVuY3Rpb24geGNsYXNzKC4uLnMpe3JldHVybiBzLmZpbHRlcigocz0+ISFzKSkuam9pbigiICIpLnRyaW0oKX1jbGFzcyBDb250YWluZXIgZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7bGV0e2Z1bGxzY3JlZW46cyxmdWxsOm8sLi4uaX09dGhpcy5wcm9wcztpZihzKXJldHVybiBSZS5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIixpKTtsZXQgYT0ic3dhZ2dlci1jb250YWluZXIiKyhvPyItZnVsbCI6IiIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIixNbigpKHt9LGkse2NsYXNzTmFtZTp4Y2xhc3MoaS5jbGFzc05hbWUsYSl9KSl9fWNvbnN0IHRDPXttb2JpbGU6IiIsdGFibGV0OiItdGFibGV0IixkZXNrdG9wOiItZGVza3RvcCIsbGFyZ2U6Ii1oZCJ9O2NsYXNzIENvbCBleHRlbmRzIFJlLkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHtoaWRlOnMsa2VlcENvbnRlbnRzOm8sbW9iaWxlOmksdGFibGV0OmEsZGVza3RvcDp1LGxhcmdlOl8sLi4ud309dGhpcy5wcm9wcztpZihzJiYhbylyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCk7bGV0IHg9W107Zm9yKGxldCBzIGluIHRDKXtpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRDLHMpKWNvbnRpbnVlO2xldCBvPXRDW3NdO2lmKHMgaW4gdGhpcy5wcm9wcyl7bGV0IGk9dGhpcy5wcm9wc1tzXTtpZihpPDEpe3gucHVzaCgibm9uZSIrbyk7Y29udGludWV9eC5wdXNoKCJibG9jayIrbykseC5wdXNoKCJjb2wtIitpK28pfX1zJiZ4LnB1c2goImhpZGRlbiIpO2xldCBDPXhjbGFzcyh3LmNsYXNzTmFtZSwuLi54KTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIsTW4oKSh7fSx3LHtjbGFzc05hbWU6Q30pKX19Y2xhc3MgUm93IGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLE1uKCkoe30sdGhpcy5wcm9wcyx7Y2xhc3NOYW1lOnhjbGFzcyh0aGlzLnByb3BzLmNsYXNzTmFtZSwid3JhcHBlciIpfSkpfX1jbGFzcyBCdXR0b24gZXh0ZW5kcyBSZS5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17Y2xhc3NOYW1lOiIifTtyZW5kZXIoKXtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiYnV0dG9uIixNbigpKHt9LHRoaXMucHJvcHMse2NsYXNzTmFtZTp4Y2xhc3ModGhpcy5wcm9wcy5jbGFzc05hbWUsImJ1dHRvbiIpfSkpfX1jb25zdCBUZXh0QXJlYT1zPT5SZS5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIscyksSW5wdXQ9cz0+UmUuY3JlYXRlRWxlbWVudCgiaW5wdXQiLHMpO2NsYXNzIFNlbGVjdCBleHRlbmRzIFJlLkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXttdWx0aXBsZTohMSxhbGxvd0VtcHR5VmFsdWU6ITB9O2NvbnN0cnVjdG9yKHMsbyl7bGV0IGk7c3VwZXIocyxvKSxpPXMudmFsdWU/cy52YWx1ZTpzLm11bHRpcGxlP1siIl06IiIsdGhpcy5zdGF0ZT17dmFsdWU6aX19b25DaGFuZ2U9cz0+e2xldCBvLHtvbkNoYW5nZTppLG11bHRpcGxlOmF9PXRoaXMucHJvcHMsdT1bXS5zbGljZS5jYWxsKHMudGFyZ2V0Lm9wdGlvbnMpO289YT91LmZpbHRlcigoZnVuY3Rpb24ocyl7cmV0dXJuIHMuc2VsZWN0ZWR9KSkubWFwKChmdW5jdGlvbihzKXtyZXR1cm4gcy52YWx1ZX0pKTpzLnRhcmdldC52YWx1ZSx0aGlzLnNldFN0YXRlKHt2YWx1ZTpvfSksaSYmaShvKX07VU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMocyl7cy52YWx1ZSE9PXRoaXMucHJvcHMudmFsdWUmJnRoaXMuc2V0U3RhdGUoe3ZhbHVlOnMudmFsdWV9KX1yZW5kZXIoKXtsZXR7YWxsb3dlZFZhbHVlczpzLG11bHRpcGxlOm8sYWxsb3dFbXB0eVZhbHVlOmksZGlzYWJsZWQ6YX09dGhpcy5wcm9wcyx1PXRoaXMuc3RhdGUudmFsdWU/LnRvSlM/LigpfHx0aGlzLnN0YXRlLnZhbHVlO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJzZWxlY3QiLHtjbGFzc05hbWU6dGhpcy5wcm9wcy5jbGFzc05hbWUsbXVsdGlwbGU6byx2YWx1ZTp1LG9uQ2hhbmdlOnRoaXMub25DaGFuZ2UsZGlzYWJsZWQ6YX0saT9SZS5jcmVhdGVFbGVtZW50KCJvcHRpb24iLHt2YWx1ZToiIn0sIi0tIik6bnVsbCxzLm1hcCgoZnVuY3Rpb24ocyxvKXtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgib3B0aW9uIix7a2V5Om8sdmFsdWU6U3RyaW5nKHMpfSxTdHJpbmcocykpfSkpKX19Y2xhc3MgbGF5b3V0X3V0aWxzX0xpbmsgZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImEiLE1uKCkoe30sdGhpcy5wcm9wcyx7cmVsOiJub29wZW5lciBub3JlZmVycmVyIixjbGFzc05hbWU6eGNsYXNzKHRoaXMucHJvcHMuY2xhc3NOYW1lLCJsaW5rIil9KSl9fWNvbnN0IE5vTWFyZ2luPSh7Y2hpbGRyZW46c30pPT5SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im5vLW1hcmdpbiJ9LCIgIixzLCIgIik7Y2xhc3MgQ29sbGFwc2UgZXh0ZW5kcyBSZS5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17aXNPcGVuZWQ6ITEsYW5pbWF0ZWQ6ITF9O3JlbmRlck5vdEFuaW1hdGVkKCl7cmV0dXJuIHRoaXMucHJvcHMuaXNPcGVuZWQ/UmUuY3JlYXRlRWxlbWVudChOb01hcmdpbixudWxsLHRoaXMucHJvcHMuY2hpbGRyZW4pOlJlLmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0IixudWxsKX1yZW5kZXIoKXtsZXR7YW5pbWF0ZWQ6cyxpc09wZW5lZDpvLGNoaWxkcmVuOml9PXRoaXMucHJvcHM7cmV0dXJuIHM/KGk9bz9pOm51bGwsUmUuY3JlYXRlRWxlbWVudChOb01hcmdpbixudWxsLGkpKTp0aGlzLnJlbmRlck5vdEFuaW1hdGVkKCl9fWNsYXNzIE92ZXJ2aWV3IGV4dGVuZHMgUmUuQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLnMpe3N1cGVyKC4uLnMpLHRoaXMuc2V0VGFnU2hvd249dGhpcy5fc2V0VGFnU2hvd24uYmluZCh0aGlzKX1fc2V0VGFnU2hvd24ocyxvKXt0aGlzLnByb3BzLmxheW91dEFjdGlvbnMuc2hvdyhzLG8pfXNob3dPcChzLG8pe2xldHtsYXlvdXRBY3Rpb25zOml9PXRoaXMucHJvcHM7aS5zaG93KHMsbyl9cmVuZGVyKCl7bGV0e3NwZWNTZWxlY3RvcnM6cyxsYXlvdXRTZWxlY3RvcnM6byxsYXlvdXRBY3Rpb25zOmksZ2V0Q29tcG9uZW50OmF9PXRoaXMucHJvcHMsdT1zLnRhZ2dlZE9wZXJhdGlvbnMoKTtjb25zdCBfPWEoIkNvbGxhcHNlIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJoNCIse2NsYXNzTmFtZToib3ZlcnZpZXctdGl0bGUifSwiT3ZlcnZpZXciKSx1Lm1hcCgoKHMsYSk9PntsZXQgdT1zLmdldCgib3BlcmF0aW9ucyIpLHc9WyJvdmVydmlldy10YWdzIixhXSx4PW8uaXNTaG93bih3LCEwKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5OiJvdmVydmlldy0iK2F9LFJlLmNyZWF0ZUVsZW1lbnQoImg0Iix7b25DbGljazooKT0+aS5zaG93KHcsIXgpLGNsYXNzTmFtZToibGluayBvdmVydmlldy10YWcifSwiICIseD8iLSI6IisiLGEpLFJlLmNyZWF0ZUVsZW1lbnQoXyx7aXNPcGVuZWQ6eCxhbmltYXRlZDohMH0sdS5tYXAoKHM9PntsZXR7cGF0aDphLG1ldGhvZDp1LGlkOl99PXMudG9PYmplY3QoKSx3PSJvcGVyYXRpb25zIix4PV8sQz1vLmlzU2hvd24oW3cseF0pO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KE9wZXJhdGlvbkxpbmsse2tleTpfLHBhdGg6YSxtZXRob2Q6dSxpZDphKyItIit1LHNob3duOkMsc2hvd09wSWQ6eCxzaG93T3BJZFByZWZpeDp3LGhyZWY6YCNvcGVyYXRpb24tJHt4fWAsb25DbGljazppLnNob3d9KX0pKS50b0FycmF5KCkpKX0pKS50b0FycmF5KCksdS5zaXplPDEmJlJlLmNyZWF0ZUVsZW1lbnQoImgzIixudWxsLCIgTm8gb3BlcmF0aW9ucyBkZWZpbmVkIGluIHNwZWMhICIpKX19Y2xhc3MgT3BlcmF0aW9uTGluayBleHRlbmRzIFJlLkNvbXBvbmVudHtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLm9uQ2xpY2s9dGhpcy5fb25DbGljay5iaW5kKHRoaXMpfV9vbkNsaWNrKCl7bGV0e3Nob3dPcElkOnMsc2hvd09wSWRQcmVmaXg6byxvbkNsaWNrOmksc2hvd246YX09dGhpcy5wcm9wcztpKFtvLHNdLCFhKX1yZW5kZXIoKXtsZXR7aWQ6cyxtZXRob2Q6byxzaG93bjppLGhyZWY6YX09dGhpcy5wcm9wcztyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChsYXlvdXRfdXRpbHNfTGluayx7aHJlZjphLG9uQ2xpY2s6dGhpcy5vbkNsaWNrLGNsYXNzTmFtZToiYmxvY2sgb3BibG9jay1saW5rICIrKGk/InNob3duIjoiIil9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJzbWFsbCIse2NsYXNzTmFtZTpgYm9sZC1sYWJlbC0ke299YH0sby50b1VwcGVyQ2FzZSgpKSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJib2xkLWxhYmVsIn0scykpKX19Y2xhc3MgSW5pdGlhbGl6ZWRJbnB1dCBleHRlbmRzIFJlLkNvbXBvbmVudHtjb21wb25lbnREaWRNb3VudCgpe3RoaXMucHJvcHMuaW5pdGlhbFZhbHVlJiYodGhpcy5pbnB1dFJlZi52YWx1ZT10aGlzLnByb3BzLmluaXRpYWxWYWx1ZSl9cmVuZGVyKCl7Y29uc3R7dmFsdWU6cyxkZWZhdWx0VmFsdWU6byxpbml0aWFsVmFsdWU6aSwuLi5hfT10aGlzLnByb3BzO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJpbnB1dCIsTW4oKSh7fSxhLHtyZWY6cz0+dGhpcy5pbnB1dFJlZj1zfSkpfX1jbGFzcyBJbmZvQmFzZVBhdGggZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7aG9zdDpzLGJhc2VQYXRoOm99PXRoaXMucHJvcHM7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoInByZSIse2NsYXNzTmFtZToiYmFzZS11cmwifSwiWyBCYXNlIFVSTDogIixzLG8sIiBdIil9fWNsYXNzIEluZm9VcmwgZXh0ZW5kcyBSZS5QdXJlQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e3VybDpzLGdldENvbXBvbmVudDpvfT10aGlzLnByb3BzLGk9bygiTGluayIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KGkse3RhcmdldDoiX2JsYW5rIixocmVmOnNhbml0aXplVXJsKHMpfSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJ1cmwifSwiICIscykpfX1jbGFzcyBpbmZvX0luZm8gZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7aW5mbzpzLHVybDpvLGhvc3Q6aSxiYXNlUGF0aDphLGdldENvbXBvbmVudDp1LGV4dGVybmFsRG9jczpfLHNlbGVjdGVkU2VydmVyOncsdXJsOnh9PXRoaXMucHJvcHMsQz1zLmdldCgidmVyc2lvbiIpLGo9cy5nZXQoImRlc2NyaXB0aW9uIiksTD1zLmdldCgidGl0bGUiKSxCPXNhZmVCdWlsZFVybChzLmdldCgidGVybXNPZlNlcnZpY2UiKSx4LHtzZWxlY3RlZFNlcnZlcjp3fSksJD1zLmdldCgiY29udGFjdCIpLFY9cy5nZXQoImxpY2Vuc2UiKSxVPXNhZmVCdWlsZFVybChfJiZfLmdldCgidXJsIikseCx7c2VsZWN0ZWRTZXJ2ZXI6d30pLHo9XyYmXy5nZXQoImRlc2NyaXB0aW9uIiksWT11KCJNYXJrZG93biIsITApLFo9dSgiTGluayIpLGVlPXUoIlZlcnNpb25TdGFtcCIpLGllPXUoIk9wZW5BUElWZXJzaW9uIiksYWU9dSgiSW5mb1VybCIpLGNlPXUoIkluZm9CYXNlUGF0aCIpLGxlPXUoIkxpY2Vuc2UiKSxwZT11KCJDb250YWN0Iik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaW5mbyJ9LFJlLmNyZWF0ZUVsZW1lbnQoImhncm91cCIse2NsYXNzTmFtZToibWFpbiJ9LFJlLmNyZWF0ZUVsZW1lbnQoImgyIix7Y2xhc3NOYW1lOiJ0aXRsZSJ9LEwsUmUuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxDJiZSZS5jcmVhdGVFbGVtZW50KGVlLHt2ZXJzaW9uOkN9KSxSZS5jcmVhdGVFbGVtZW50KGllLHtvYXNWZXJzaW9uOiIyLjAifSkpKSxpfHxhP1JlLmNyZWF0ZUVsZW1lbnQoY2Use2hvc3Q6aSxiYXNlUGF0aDphfSk6bnVsbCxvJiZSZS5jcmVhdGVFbGVtZW50KGFlLHtnZXRDb21wb25lbnQ6dSx1cmw6b30pKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImRlc2NyaXB0aW9uIn0sUmUuY3JlYXRlRWxlbWVudChZLHtzb3VyY2U6an0pKSxCJiZSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm9fX3RvcyJ9LFJlLmNyZWF0ZUVsZW1lbnQoWix7dGFyZ2V0OiJfYmxhbmsiLGhyZWY6c2FuaXRpemVVcmwoQil9LCJUZXJtcyBvZiBzZXJ2aWNlIikpLCQ/LnNpemU+MCYmUmUuY3JlYXRlRWxlbWVudChwZSx7Z2V0Q29tcG9uZW50OnUsZGF0YTokLHNlbGVjdGVkU2VydmVyOncsdXJsOm99KSxWPy5zaXplPjAmJlJlLmNyZWF0ZUVsZW1lbnQobGUse2dldENvbXBvbmVudDp1LGxpY2Vuc2U6VixzZWxlY3RlZFNlcnZlcjp3LHVybDpvfSksVT9SZS5jcmVhdGVFbGVtZW50KFose2NsYXNzTmFtZToiaW5mb19fZXh0ZG9jcyIsdGFyZ2V0OiJfYmxhbmsiLGhyZWY6c2FuaXRpemVVcmwoVSl9LHp8fFUpOm51bGwpfX1jb25zdCByQz1pbmZvX0luZm87Y2xhc3MgSW5mb0NvbnRhaW5lciBleHRlbmRzIFJlLkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHtzcGVjU2VsZWN0b3JzOnMsZ2V0Q29tcG9uZW50Om8sb2FzM1NlbGVjdG9yczppfT10aGlzLnByb3BzLGE9cy5pbmZvKCksdT1zLnVybCgpLF89cy5iYXNlUGF0aCgpLHc9cy5ob3N0KCkseD1zLmV4dGVybmFsRG9jcygpLEM9aS5zZWxlY3RlZFNlcnZlcigpLGo9bygiaW5mbyIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsYSYmYS5jb3VudCgpP1JlLmNyZWF0ZUVsZW1lbnQoaix7aW5mbzphLHVybDp1LGhvc3Q6dyxiYXNlUGF0aDpfLGV4dGVybmFsRG9jczp4LGdldENvbXBvbmVudDpvLHNlbGVjdGVkU2VydmVyOkN9KTpudWxsKX19Y2xhc3MgY29udGFjdF9Db250YWN0IGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e2RhdGE6cyxnZXRDb21wb25lbnQ6byxzZWxlY3RlZFNlcnZlcjppLHVybDphfT10aGlzLnByb3BzLHU9cy5nZXQoIm5hbWUiLCJ0aGUgZGV2ZWxvcGVyIiksXz1zYWZlQnVpbGRVcmwocy5nZXQoInVybCIpLGEse3NlbGVjdGVkU2VydmVyOml9KSx3PXMuZ2V0KCJlbWFpbCIpLHg9bygiTGluayIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm9fX2NvbnRhY3QifSxfJiZSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCh4LHtocmVmOnNhbml0aXplVXJsKF8pLHRhcmdldDoiX2JsYW5rIn0sdSwiIC0gV2Vic2l0ZSIpKSx3JiZSZS5jcmVhdGVFbGVtZW50KHgse2hyZWY6c2FuaXRpemVVcmwoYG1haWx0bzoke3d9YCl9LF8/YFNlbmQgZW1haWwgdG8gJHt1fWA6YENvbnRhY3QgJHt1fWApKX19Y29uc3QgbkM9Y29udGFjdF9Db250YWN0O2NsYXNzIGxpY2Vuc2VfTGljZW5zZSBleHRlbmRzIFJlLkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHtsaWNlbnNlOnMsZ2V0Q29tcG9uZW50Om8sc2VsZWN0ZWRTZXJ2ZXI6aSx1cmw6YX09dGhpcy5wcm9wcyx1PXMuZ2V0KCJuYW1lIiwiTGljZW5zZSIpLF89c2FmZUJ1aWxkVXJsKHMuZ2V0KCJ1cmwiKSxhLHtzZWxlY3RlZFNlcnZlcjppfSksdz1vKCJMaW5rIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaW5mb19fbGljZW5zZSJ9LF8/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJpbmZvX19saWNlbnNlX191cmwifSxSZS5jcmVhdGVFbGVtZW50KHcse3RhcmdldDoiX2JsYW5rIixocmVmOnNhbml0aXplVXJsKF8pfSx1KSk6UmUuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCx1KSl9fWNvbnN0IHNDPWxpY2Vuc2VfTGljZW5zZTtjbGFzcyBKdW1wVG9QYXRoIGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe3JldHVybiBudWxsfX1jbGFzcyBDb3B5VG9DbGlwYm9hcmRCdG4gZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7bGV0e2dldENvbXBvbmVudDpzfT10aGlzLnByb3BzO2NvbnN0IG89cygiQ29weUljb24iKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJ2aWV3LWxpbmUtbGluayBjb3B5LXRvLWNsaXBib2FyZCIsdGl0bGU6IkNvcHkgdG8gY2xpcGJvYXJkIn0sUmUuY3JlYXRlRWxlbWVudChIbi5Db3B5VG9DbGlwYm9hcmQse3RleHQ6dGhpcy5wcm9wcy50ZXh0VG9Db3B5fSxSZS5jcmVhdGVFbGVtZW50KG8sbnVsbCkpKX19Y2xhc3MgRm9vdGVyIGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImZvb3RlciJ9KX19Y2xhc3MgRmlsdGVyQ29udGFpbmVyIGV4dGVuZHMgUmUuQ29tcG9uZW50e29uRmlsdGVyQ2hhbmdlPXM9Pntjb25zdHt0YXJnZXQ6e3ZhbHVlOm99fT1zO3RoaXMucHJvcHMubGF5b3V0QWN0aW9ucy51cGRhdGVGaWx0ZXIobyl9O3JlbmRlcigpe2NvbnN0e3NwZWNTZWxlY3RvcnM6cyxsYXlvdXRTZWxlY3RvcnM6byxnZXRDb21wb25lbnQ6aX09dGhpcy5wcm9wcyxhPWkoIkNvbCIpLHU9ImxvYWRpbmciPT09cy5sb2FkaW5nU3RhdHVzKCksXz0iZmFpbGVkIj09PXMubG9hZGluZ1N0YXR1cygpLHc9by5jdXJyZW50RmlsdGVyKCkseD1bIm9wZXJhdGlvbi1maWx0ZXItaW5wdXQiXTtyZXR1cm4gXyYmeC5wdXNoKCJmYWlsZWQiKSx1JiZ4LnB1c2goImxvYWRpbmciKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsITE9PT13P251bGw6UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJmaWx0ZXItY29udGFpbmVyIn0sUmUuY3JlYXRlRWxlbWVudChhLHtjbGFzc05hbWU6ImZpbHRlciB3cmFwcGVyIixtb2JpbGU6MTJ9LFJlLmNyZWF0ZUVsZW1lbnQoImlucHV0Iix7Y2xhc3NOYW1lOnguam9pbigiICIpLHBsYWNlaG9sZGVyOiJGaWx0ZXIgYnkgdGFnIix0eXBlOiJ0ZXh0IixvbkNoYW5nZTp0aGlzLm9uRmlsdGVyQ2hhbmdlLHZhbHVlOiJzdHJpbmciPT10eXBlb2Ygdz93OiIiLGRpc2FibGVkOnV9KSkpKX19Y29uc3Qgb0M9RnVuY3Rpb24ucHJvdG90eXBlO2NsYXNzIFBhcmFtQm9keSBleHRlbmRzIFJlLlB1cmVDb21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wPXtjb25zdW1lczooMCx6ZS5mcm9tSlMpKFsiYXBwbGljYXRpb24vanNvbiJdKSxwYXJhbTooMCx6ZS5mcm9tSlMpKHt9KSxvbkNoYW5nZTpvQyxvbkNoYW5nZUNvbnN1bWVzOm9DfTtjb25zdHJ1Y3RvcihzLG8pe3N1cGVyKHMsbyksdGhpcy5zdGF0ZT17aXNFZGl0Qm94OiExLHZhbHVlOiIifX1jb21wb25lbnREaWRNb3VudCgpe3RoaXMudXBkYXRlVmFsdWVzLmNhbGwodGhpcyx0aGlzLnByb3BzKX1VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhzKXt0aGlzLnVwZGF0ZVZhbHVlcy5jYWxsKHRoaXMscyl9dXBkYXRlVmFsdWVzPXM9PntsZXR7cGFyYW06byxpc0V4ZWN1dGU6aSxjb25zdW1lc1ZhbHVlOmE9IiJ9PXMsdT0veG1sL2kudGVzdChhKSxfPS9qc29uL2kudGVzdChhKSx3PXU/by5nZXQoInZhbHVlX3htbCIpOm8uZ2V0KCJ2YWx1ZSIpO2lmKHZvaWQgMCE9PXcpe2xldCBzPSF3JiZfPyJ7fSI6dzt0aGlzLnNldFN0YXRlKHt2YWx1ZTpzfSksdGhpcy5vbkNoYW5nZShzLHtpc1htbDp1LGlzRWRpdEJveDppfSl9ZWxzZSB1P3RoaXMub25DaGFuZ2UodGhpcy5zYW1wbGUoInhtbCIpLHtpc1htbDp1LGlzRWRpdEJveDppfSk6dGhpcy5vbkNoYW5nZSh0aGlzLnNhbXBsZSgpLHtpc0VkaXRCb3g6aX0pfTtzYW1wbGU9cz0+e2xldHtwYXJhbTpvLGZuOml9PXRoaXMucHJvcHMsYT1pLmluZmVyU2NoZW1hKG8udG9KUygpKTtyZXR1cm4gaS5nZXRTYW1wbGVTY2hlbWEoYSxzLHtpbmNsdWRlV3JpdGVPbmx5OiEwfSl9O29uQ2hhbmdlPShzLHtpc0VkaXRCb3g6byxpc1htbDppfSk9Pnt0aGlzLnNldFN0YXRlKHt2YWx1ZTpzLGlzRWRpdEJveDpvfSksdGhpcy5fb25DaGFuZ2UocyxpKX07X29uQ2hhbmdlPShzLG8pPT57KHRoaXMucHJvcHMub25DaGFuZ2V8fG9DKShzLG8pfTtoYW5kbGVPbkNoYW5nZT1zPT57Y29uc3R7Y29uc3VtZXNWYWx1ZTpvfT10aGlzLnByb3BzLGk9L3htbC9pLnRlc3QobyksYT1zLnRhcmdldC52YWx1ZTt0aGlzLm9uQ2hhbmdlKGEse2lzWG1sOmksaXNFZGl0Qm94OnRoaXMuc3RhdGUuaXNFZGl0Qm94fSl9O3RvZ2dsZUlzRWRpdEJveD0oKT0+dGhpcy5zZXRTdGF0ZSgocz0+KHtpc0VkaXRCb3g6IXMuaXNFZGl0Qm94fSkpKTtyZW5kZXIoKXtsZXR7b25DaGFuZ2VDb25zdW1lczpzLHBhcmFtOm8saXNFeGVjdXRlOmksc3BlY1NlbGVjdG9yczphLHBhdGhNZXRob2Q6dSxnZXRDb21wb25lbnQ6X309dGhpcy5wcm9wcztjb25zdCB3PV8oIkJ1dHRvbiIpLHg9XygiVGV4dEFyZWEiKSxDPV8oIkhpZ2hsaWdodENvZGUiLCEwKSxqPV8oImNvbnRlbnRUeXBlIik7bGV0IEw9KGE/YS5wYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkodSxvKTpvKS5nZXQoImVycm9ycyIsKDAsemUuTGlzdCkoKSksQj1hLmNvbnRlbnRUeXBlVmFsdWVzKHUpLmdldCgicmVxdWVzdENvbnRlbnRUeXBlIiksJD10aGlzLnByb3BzLmNvbnN1bWVzJiZ0aGlzLnByb3BzLmNvbnN1bWVzLnNpemU/dGhpcy5wcm9wcy5jb25zdW1lczpQYXJhbUJvZHkuZGVmYXVsdFByb3AuY29uc3VtZXMse3ZhbHVlOlYsaXNFZGl0Qm94OlV9PXRoaXMuc3RhdGUsej1udWxsO2dldEtub3duU3ludGF4SGlnaGxpZ2h0ZXJMYW5ndWFnZShWKSYmKHo9Impzb24iKTtjb25zdCBZPWAke2NyZWF0ZUh0bWxSZWFkeUlkKGAke3VbMV19JHt1WzBdfV9wYXJhbWV0ZXJzYCl9X3NlbGVjdGA7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiYm9keS1wYXJhbSIsImRhdGEtcGFyYW0tbmFtZSI6by5nZXQoIm5hbWUiKSwiZGF0YS1wYXJhbS1pbiI6by5nZXQoImluIil9LFUmJmk/UmUuY3JlYXRlRWxlbWVudCh4LHtjbGFzc05hbWU6ImJvZHktcGFyYW1fX3RleHQiKyhMLmNvdW50KCk/IiBpbnZhbGlkIjoiIiksdmFsdWU6VixvbkNoYW5nZTp0aGlzLmhhbmRsZU9uQ2hhbmdlfSk6ViYmUmUuY3JlYXRlRWxlbWVudChDLHtjbGFzc05hbWU6ImJvZHktcGFyYW1fX2V4YW1wbGUiLGxhbmd1YWdlOnp9LFYpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiYm9keS1wYXJhbS1vcHRpb25zIn0saT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImJvZHktcGFyYW0tZWRpdCJ9LFJlLmNyZWF0ZUVsZW1lbnQodyx7Y2xhc3NOYW1lOlU/ImJ0biBjYW5jZWwgYm9keS1wYXJhbV9fZXhhbXBsZS1lZGl0IjoiYnRuIGVkaXQgYm9keS1wYXJhbV9fZXhhbXBsZS1lZGl0IixvbkNsaWNrOnRoaXMudG9nZ2xlSXNFZGl0Qm94fSxVPyJDYW5jZWwiOiJFZGl0IikpOm51bGwsUmUuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtodG1sRm9yOll9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsIlBhcmFtZXRlciBjb250ZW50IHR5cGUiKSxSZS5jcmVhdGVFbGVtZW50KGose3ZhbHVlOkIsY29udGVudFR5cGVzOiQsb25DaGFuZ2U6cyxjbGFzc05hbWU6ImJvZHktcGFyYW0tY29udGVudC10eXBlIixhcmlhTGFiZWw6IlBhcmFtZXRlciBjb250ZW50IHR5cGUiLGNvbnRyb2xJZDpZfSkpKSl9fWNsYXNzIEN1cmwgZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7cmVxdWVzdDpzLGdldENvbXBvbmVudDpvfT10aGlzLnByb3BzLGk9cmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfY3VybF9iYXNoKHMpLGE9bygiU3ludGF4SGlnaGxpZ2h0ZXIiLCEwKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJjdXJsLWNvbW1hbmQifSxSZS5jcmVhdGVFbGVtZW50KCJoNCIsbnVsbCwiQ3VybCIpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiY29weS10by1jbGlwYm9hcmQifSxSZS5jcmVhdGVFbGVtZW50KEhuLkNvcHlUb0NsaXBib2FyZCx7dGV4dDppfSxSZS5jcmVhdGVFbGVtZW50KCJidXR0b24iLG51bGwpKSksUmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoYSx7bGFuZ3VhZ2U6ImJhc2giLGNsYXNzTmFtZToiY3VybCBtaWNyb2xpZ2h0IixyZW5kZXJQbGFpblRleHQ6KHtjaGlsZHJlbjpzLFBsYWluVGV4dFZpZXdlcjpvfSk9PlJlLmNyZWF0ZUVsZW1lbnQobyx7Y2xhc3NOYW1lOiJjdXJsIn0scyl9LGkpKSl9fWNvbnN0IHByb3BlcnR5PSh7cHJvcEtleTpzLHByb3BWYWw6byxwcm9wQ2xhc3M6aX0pPT5SZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOml9LFJlLmNyZWF0ZUVsZW1lbnQoImJyIixudWxsKSxzLCI6ICIsU3RyaW5nKG8pKTtjbGFzcyBUcnlJdE91dEJ1dHRvbiBleHRlbmRzIFJlLkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXtvblRyeW91dENsaWNrOkZ1bmN0aW9uLnByb3RvdHlwZSxvbkNhbmNlbENsaWNrOkZ1bmN0aW9uLnByb3RvdHlwZSxvblJlc2V0Q2xpY2s6RnVuY3Rpb24ucHJvdG90eXBlLGVuYWJsZWQ6ITEsaGFzVXNlckVkaXRlZEJvZHk6ITEsaXNPQVMzOiExfTtyZW5kZXIoKXtjb25zdHtvblRyeW91dENsaWNrOnMsb25DYW5jZWxDbGljazpvLG9uUmVzZXRDbGljazppLGVuYWJsZWQ6YSxoYXNVc2VyRWRpdGVkQm9keTp1LGlzT0FTMzpffT10aGlzLnByb3BzLHc9XyYmdTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnc/InRyeS1vdXQgYnRuLWdyb3VwIjoidHJ5LW91dCJ9LGE/UmUuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7Y2xhc3NOYW1lOiJidG4gdHJ5LW91dF9fYnRuIGNhbmNlbCIsb25DbGljazpvfSwiQ2FuY2VsIik6UmUuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7Y2xhc3NOYW1lOiJidG4gdHJ5LW91dF9fYnRuIixvbkNsaWNrOnN9LCJUcnkgaXQgb3V0ICIpLHcmJlJlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse2NsYXNzTmFtZToiYnRuIHRyeS1vdXRfX2J0biByZXNldCIsb25DbGljazppfSwiUmVzZXQiKSl9fWNsYXNzIFZlcnNpb25QcmFnbWFGaWx0ZXIgZXh0ZW5kcyBSZS5QdXJlQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9e2Fsc29TaG93Om51bGwsY2hpbGRyZW46bnVsbCxieXBhc3M6ITF9O3JlbmRlcigpe2NvbnN0e2J5cGFzczpzLGlzU3dhZ2dlcjI6byxpc09BUzM6aSxhbHNvU2hvdzphfT10aGlzLnByb3BzO3JldHVybiBzP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCx0aGlzLnByb3BzLmNoaWxkcmVuKTpvJiZpP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidmVyc2lvbi1wcmFnbWEifSxhLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidmVyc2lvbi1wcmFnbWFfX21lc3NhZ2UgdmVyc2lvbi1wcmFnbWFfX21lc3NhZ2UtLWFtYmlndW91cyJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJoMyIsbnVsbCwiVW5hYmxlIHRvIHJlbmRlciB0aGlzIGRlZmluaXRpb24iKSxSZS5jcmVhdGVFbGVtZW50KCJwIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsInN3YWdnZXIiKSwiIGFuZCAiLFJlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIm9wZW5hcGkiKSwiIGZpZWxkcyBjYW5ub3QgYmUgcHJlc2VudCBpbiB0aGUgc2FtZSBTd2FnZ2VyIG9yIE9wZW5BUEkgZGVmaW5pdGlvbi4gUGxlYXNlIHJlbW92ZSBvbmUgb2YgdGhlIGZpZWxkcy4iKSxSZS5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJTdXBwb3J0ZWQgdmVyc2lvbiBmaWVsZHMgYXJlICIsUmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwic3dhZ2dlcjogIiwnIjIuMCInKSwiIGFuZCB0aG9zZSB0aGF0IG1hdGNoICIsUmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwib3BlbmFwaTogMy4wLm4iKSwiIChmb3IgZXhhbXBsZSwgIixSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJvcGVuYXBpOiAzLjAuNCIpLCIpLiIpKSkpOm98fGk/UmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLHRoaXMucHJvcHMuY2hpbGRyZW4pOlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidmVyc2lvbi1wcmFnbWEifSxhLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidmVyc2lvbi1wcmFnbWFfX21lc3NhZ2UgdmVyc2lvbi1wcmFnbWFfX21lc3NhZ2UtLW1pc3NpbmcifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiaDMiLG51bGwsIlVuYWJsZSB0byByZW5kZXIgdGhpcyBkZWZpbml0aW9uIiksUmUuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiVGhlIHByb3ZpZGVkIGRlZmluaXRpb24gZG9lcyBub3Qgc3BlY2lmeSBhIHZhbGlkIHZlcnNpb24gZmllbGQuIiksUmUuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiUGxlYXNlIGluZGljYXRlIGEgdmFsaWQgU3dhZ2dlciBvciBPcGVuQVBJIHZlcnNpb24gZmllbGQuIFN1cHBvcnRlZCB2ZXJzaW9uIGZpZWxkcyBhcmUgIixSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJzd2FnZ2VyOiAiLCciMi4wIicpLCIgYW5kIHRob3NlIHRoYXQgbWF0Y2ggIixSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJvcGVuYXBpOiAzLjAubiIpLCIgKGZvciBleGFtcGxlLCAiLFJlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIm9wZW5hcGk6IDMuMC40IiksIikuIikpKSl9fWNvbnN0IHZlcnNpb25fc3RhbXA9KHt2ZXJzaW9uOnN9KT0+UmUuY3JlYXRlRWxlbWVudCgic21hbGwiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgicHJlIix7Y2xhc3NOYW1lOiJ2ZXJzaW9uIn0sIiAiLHMsIiAiKSksb3BlbmFwaV92ZXJzaW9uPSh7b2FzVmVyc2lvbjpzfSk9PlJlLmNyZWF0ZUVsZW1lbnQoInNtYWxsIix7Y2xhc3NOYW1lOiJ2ZXJzaW9uLXN0YW1wIn0sUmUuY3JlYXRlRWxlbWVudCgicHJlIix7Y2xhc3NOYW1lOiJ2ZXJzaW9uIn0sIk9BUyAiLHMpKSxkZWVwX2xpbms9KHtlbmFibGVkOnMscGF0aDpvLHRleHQ6aX0pPT5SZS5jcmVhdGVFbGVtZW50KCJhIix7Y2xhc3NOYW1lOiJub3N0eWxlIixvbkNsaWNrOnM/cz0+cy5wcmV2ZW50RGVmYXVsdCgpOm51bGwsaHJlZjpzP2AjLyR7b31gOm51bGx9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsaSkpLHN2Z19hc3NldHM9KCk9PlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhtbG5zWGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLGNsYXNzTmFtZToic3ZnLWFzc2V0cyJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRlZnMiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgic3ltYm9sIix7dmlld0JveDoiMCAwIDIwIDIwIixpZDoidW5sb2NrZWQifSxSZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE1LjggOEgxNFY1LjZDMTQgMi43MDMgMTIuNjY1IDEgMTAgMSA3LjMzNCAxIDYgMi43MDMgNiA1LjZWNmgydi0uODAxQzggMy43NTQgOC43OTcgMyAxMCAzYzEuMjAzIDAgMiAuNzU0IDIgMi4xOTlWOEg0Yy0uNTUzIDAtMSAuNjQ2LTEgMS4xOTlWMTdjMCAuNTQ5LjQyOCAxLjEzOS45NTEgMS4zMDdsMS4xOTcuMzg3QzUuNjcyIDE4Ljg2MSA2LjU1IDE5IDcuMSAxOWg1LjhjLjU0OSAwIDEuNDI4LS4xMzkgMS45NTEtLjMwN2wxLjE5Ni0uMzg3Yy41MjQtLjE2Ny45NTMtLjc1Ny45NTMtMS4zMDZWOS4xOTlDMTcgOC42NDYgMTYuMzUyIDggMTUuOCA4eiJ9KSksUmUuY3JlYXRlRWxlbWVudCgic3ltYm9sIix7dmlld0JveDoiMCAwIDIwIDIwIixpZDoibG9ja2VkIn0sUmUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xNS44IDhIMTRWNS42QzE0IDIuNzAzIDEyLjY2NSAxIDEwIDEgNy4zMzQgMSA2IDIuNzAzIDYgNS42VjhINGMtLjU1MyAwLTEgLjY0Ni0xIDEuMTk5VjE3YzAgLjU0OS40MjggMS4xMzkuOTUxIDEuMzA3bDEuMTk3LjM4N0M1LjY3MiAxOC44NjEgNi41NSAxOSA3LjEgMTloNS44Yy41NDkgMCAxLjQyOC0uMTM5IDEuOTUxLS4zMDdsMS4xOTYtLjM4N2MuNTI0LS4xNjcuOTUzLS43NTcuOTUzLTEuMzA2VjkuMTk5QzE3IDguNjQ2IDE2LjM1MiA4IDE1LjggOHpNMTIgOEg4VjUuMTk5QzggMy43NTQgOC43OTcgMyAxMCAzYzEuMjAzIDAgMiAuNzU0IDIgMi4xOTlWOHoifSkpLFJlLmNyZWF0ZUVsZW1lbnQoInN5bWJvbCIse3ZpZXdCb3g6IjAgMCAyMCAyMCIsaWQ6ImNsb3NlIn0sUmUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xNC4zNDggMTQuODQ5Yy0uNDY5LjQ2OS0xLjIyOS40NjktMS42OTcgMEwxMCAxMS44MTlsLTIuNjUxIDMuMDI5Yy0uNDY5LjQ2OS0xLjIyOS40NjktMS42OTcgMC0uNDY5LS40NjktLjQ2OS0xLjIyOSAwLTEuNjk3bDIuNzU4LTMuMTUtMi43NTktMy4xNTJjLS40NjktLjQ2OS0uNDY5LTEuMjI4IDAtMS42OTcuNDY5LS40NjkgMS4yMjgtLjQ2OSAxLjY5NyAwTDEwIDguMTgzbDIuNjUxLTMuMDMxYy40NjktLjQ2OSAxLjIyOC0uNDY5IDEuNjk3IDAgLjQ2OS40NjkuNDY5IDEuMjI5IDAgMS42OTdsLTIuNzU4IDMuMTUyIDIuNzU4IDMuMTVjLjQ2OS40NjkuNDY5IDEuMjI5IDAgMS42OTh6In0pKSxSZS5jcmVhdGVFbGVtZW50KCJzeW1ib2wiLHt2aWV3Qm94OiIwIDAgMjAgMjAiLGlkOiJsYXJnZS1hcnJvdyJ9LFJlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTMuMjUgMTBMNi4xMDkgMi41OGMtLjI2OC0uMjctLjI2OC0uNzA3IDAtLjk3OS4yNjgtLjI3LjcwMS0uMjcuOTY5IDBsNy44MyA3LjkwOGMuMjY4LjI3MS4yNjguNzA5IDAgLjk3OWwtNy44MyA3LjkwOGMtLjI2OC4yNzEtLjcwMS4yNy0uOTY5IDAtLjI2OC0uMjY5LS4yNjgtLjcwNyAwLS45NzlMMTMuMjUgMTB6In0pKSxSZS5jcmVhdGVFbGVtZW50KCJzeW1ib2wiLHt2aWV3Qm94OiIwIDAgMjAgMjAiLGlkOiJsYXJnZS1hcnJvdy1kb3duIn0sUmUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xNy40MTggNi4xMDljLjI3Mi0uMjY4LjcwOS0uMjY4Ljk3OSAwcy4yNzEuNzAxIDAgLjk2OWwtNy45MDggNy44M2MtLjI3LjI2OC0uNzA3LjI2OC0uOTc5IDBsLTcuOTA4LTcuODNjLS4yNy0uMjY4LS4yNy0uNzAxIDAtLjk2OS4yNzEtLjI2OC43MDktLjI2OC45NzkgMEwxMCAxMy4yNWw3LjQxOC03LjE0MXoifSkpLFJlLmNyZWF0ZUVsZW1lbnQoInN5bWJvbCIse3ZpZXdCb3g6IjAgMCAyMCAyMCIsaWQ6ImxhcmdlLWFycm93LXVwIn0sUmUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0gMTcuNDE4IDE0LjkwOCBDIDE3LjY5IDE1LjE3NiAxOC4xMjcgMTUuMTc2IDE4LjM5NyAxNC45MDggQyAxOC42NjcgMTQuNjQgMTguNjY4IDE0LjIwNyAxOC4zOTcgMTMuOTM5IEwgMTAuNDg5IDYuMTA5IEMgMTAuMjE5IDUuODQxIDkuNzgyIDUuODQxIDkuNTEgNi4xMDkgTCAxLjYwMiAxMy45MzkgQyAxLjMzMiAxNC4yMDcgMS4zMzIgMTQuNjQgMS42MDIgMTQuOTA4IEMgMS44NzMgMTUuMTc2IDIuMzExIDE1LjE3NiAyLjU4MSAxNC45MDggTCAxMCA3Ljc2NyBMIDE3LjQxOCAxNC45MDggWiJ9KSksUmUuY3JlYXRlRWxlbWVudCgic3ltYm9sIix7dmlld0JveDoiMCAwIDI0IDI0IixpZDoianVtcC10byJ9LFJlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTkgN3Y0SDUuODNsMy41OC0zLjU5TDggNmwtNiA2IDYgNiAxLjQxLTEuNDFMNS44MyAxM0gyMVY3eiJ9KSksUmUuY3JlYXRlRWxlbWVudCgic3ltYm9sIix7dmlld0JveDoiMCAwIDI0IDI0IixpZDoiZXhwYW5kIn0sUmUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMCAxOGg0di0yaC00djJ6TTMgNnYyaDE4VjZIM3ptMyA3aDEydi0ySDZ2MnoifSkpLFJlLmNyZWF0ZUVsZW1lbnQoInN5bWJvbCIse3ZpZXdCb3g6IjAgMCAxNSAxNiIsaWQ6ImNvcHkifSxSZS5jcmVhdGVFbGVtZW50KCJnIix7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoMiwgLTEpIn0sUmUuY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6IiNmZmZmZmYiLGZpbGxSdWxlOiJldmVub2RkIixkOiJNMiAxM2g0djFIMnYtMXptNS02SDJ2MWg1Vjd6bTIgM1Y4bC0zIDMgMyAzdi0yaDV2LTJIOXpNNC41IDlIMnYxaDIuNVY5ek0yIDEyaDIuNXYtMUgydjF6bTkgMWgxdjJjLS4wMi4yOC0uMTEuNTItLjMuNy0uMTkuMTgtLjQyLjI4LS43LjNIMWMtLjU1IDAtMS0uNDUtMS0xVjRjMC0uNTUuNDUtMSAxLTFoM2MwLTEuMTEuODktMiAyLTIgMS4xMSAwIDIgLjg5IDIgMmgzYy41NSAwIDEgLjQ1IDEgMXY1aC0xVjZIMXY5aDEwdi0yek0yIDVoOGMwLS41NS0uNDUtMS0xLTFIOGMtLjU1IDAtMS0uNDUtMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxLS40NSAxLTEgMUgzYy0uNTUgMC0xIC40NS0xIDF6In0pKSkpKSk7dmFyIGlDO2Z1bmN0aW9uIGRlY29kZUVudGl0eShzKXtyZXR1cm4oaUM9aUN8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIikpLmlubmVySFRNTD0iJiIrcysiOyIsaUMudmFsdWV9dmFyIGFDPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gaW5kZXhfYnJvd3Nlcl9oYXMocyxvKXtyZXR1cm4hIXMmJmFDLmNhbGwocyxvKX1mdW5jdGlvbiBpbmRleF9icm93c2VyX2Fzc2lnbihzKXtyZXR1cm5bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKS5mb3JFYWNoKChmdW5jdGlvbihvKXtpZihvKXtpZigib2JqZWN0IiE9dHlwZW9mIG8pdGhyb3cgbmV3IFR5cGVFcnJvcihvKyJtdXN0IGJlIG9iamVjdCIpO09iamVjdC5rZXlzKG8pLmZvckVhY2goKGZ1bmN0aW9uKGkpe3NbaV09b1tpXX0pKX19KSksc312YXIgY0M9L1xcKFtcXCEiIyQlJicoKSorLC5cLzo7PD0+P0BbXF1eX2B7fH1+LV0pL2c7ZnVuY3Rpb24gdW5lc2NhcGVNZChzKXtyZXR1cm4gcy5pbmRleE9mKCJcXCIpPDA/czpzLnJlcGxhY2UoY0MsIiQxIil9ZnVuY3Rpb24gaXNWYWxpZEVudGl0eUNvZGUocyl7cmV0dXJuIShzPj01NTI5NiYmczw9NTczNDMpJiYoIShzPj02NDk3NiYmczw9NjUwMDcpJiYoISEoNjU1MzUmfnMmJjY1NTM0IT0oNjU1MzUmcykpJiYoIShzPj0wJiZzPD04KSYmKDExIT09cyYmKCEocz49MTQmJnM8PTMxKSYmKCEocz49MTI3JiZzPD0xNTkpJiYhKHM+MTExNDExMSkpKSkpKSl9ZnVuY3Rpb24gZnJvbUNvZGVQb2ludChzKXtpZihzPjY1NTM1KXt2YXIgbz01NTI5NisoKHMtPTY1NTM2KT4+MTApLGk9NTYzMjArKDEwMjMmcyk7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUobyxpKX1yZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShzKX12YXIgbEM9LyYoW2EteiNdW2EtejAtOV17MSwzMX0pOy9naSx1Qz0vXiMoKD86eFthLWYwLTldezEsOH18WzAtOV17MSw4fSkpL2k7ZnVuY3Rpb24gcmVwbGFjZUVudGl0eVBhdHRlcm4ocyxvKXt2YXIgaT0wLGE9ZGVjb2RlRW50aXR5KG8pO3JldHVybiBvIT09YT9hOjM1PT09by5jaGFyQ29kZUF0KDApJiZ1Qy50ZXN0KG8pJiZpc1ZhbGlkRW50aXR5Q29kZShpPSJ4Ij09PW9bMV0udG9Mb3dlckNhc2UoKT9wYXJzZUludChvLnNsaWNlKDIpLDE2KTpwYXJzZUludChvLnNsaWNlKDEpLDEwKSk/ZnJvbUNvZGVQb2ludChpKTpzfWZ1bmN0aW9uIHJlcGxhY2VFbnRpdGllcyhzKXtyZXR1cm4gcy5pbmRleE9mKCImIik8MD9zOnMucmVwbGFjZShsQyxyZXBsYWNlRW50aXR5UGF0dGVybil9dmFyIHBDPS9bJjw+Il0vLGhDPS9bJjw+Il0vZyxkQz17IiYiOiImYW1wOyIsIjwiOiImbHQ7IiwiPiI6IiZndDsiLCciJzoiJnF1b3Q7In07ZnVuY3Rpb24gcmVwbGFjZVVuc2FmZUNoYXIocyl7cmV0dXJuIGRDW3NdfWZ1bmN0aW9uIGVzY2FwZUh0bWwocyl7cmV0dXJuIHBDLnRlc3Qocyk/cy5yZXBsYWNlKGhDLHJlcGxhY2VVbnNhZmVDaGFyKTpzfXZhciBmQz17fTtmdW5jdGlvbiBuZXh0VG9rZW4ocyxvKXtyZXR1cm4rK28+PXMubGVuZ3RoLTI/bzoicGFyYWdyYXBoX29wZW4iPT09c1tvXS50eXBlJiZzW29dLnRpZ2h0JiYiaW5saW5lIj09PXNbbysxXS50eXBlJiYwPT09c1tvKzFdLmNvbnRlbnQubGVuZ3RoJiYicGFyYWdyYXBoX2Nsb3NlIj09PXNbbysyXS50eXBlJiZzW28rMl0udGlnaHQ/bmV4dFRva2VuKHMsbysyKTpvfWZDLmJsb2NrcXVvdGVfb3Blbj1mdW5jdGlvbigpe3JldHVybiI8YmxvY2txdW90ZT5cbiJ9LGZDLmJsb2NrcXVvdGVfY2xvc2U9ZnVuY3Rpb24ocyxvKXtyZXR1cm4iPC9ibG9ja3F1b3RlPiIrbUMocyxvKX0sZkMuY29kZT1mdW5jdGlvbihzLG8pe3JldHVybiBzW29dLmJsb2NrPyI8cHJlPjxjb2RlPiIrZXNjYXBlSHRtbChzW29dLmNvbnRlbnQpKyI8L2NvZGU+PC9wcmU+IittQyhzLG8pOiI8Y29kZT4iK2VzY2FwZUh0bWwoc1tvXS5jb250ZW50KSsiPC9jb2RlPiJ9LGZDLmZlbmNlPWZ1bmN0aW9uKHMsbyxpLGEsdSl7dmFyIF8sdyx4PXNbb10sQz0iIixqPWkubGFuZ1ByZWZpeDtpZih4LnBhcmFtcyl7aWYodz0oXz14LnBhcmFtcy5zcGxpdCgvXHMrL2cpKS5qb2luKCIgIiksaW5kZXhfYnJvd3Nlcl9oYXModS5ydWxlcy5mZW5jZV9jdXN0b20sX1swXSkpcmV0dXJuIHUucnVsZXMuZmVuY2VfY3VzdG9tW19bMF1dKHMsbyxpLGEsdSk7Qz0nIGNsYXNzPSInK2orZXNjYXBlSHRtbChyZXBsYWNlRW50aXRpZXModW5lc2NhcGVNZCh3KSkpKyciJ31yZXR1cm4iPHByZT48Y29kZSIrQysiPiIrKGkuaGlnaGxpZ2h0JiZpLmhpZ2hsaWdodC5hcHBseShpLmhpZ2hsaWdodCxbeC5jb250ZW50XS5jb25jYXQoXykpfHxlc2NhcGVIdG1sKHguY29udGVudCkpKyI8L2NvZGU+PC9wcmU+IittQyhzLG8pfSxmQy5mZW5jZV9jdXN0b209e30sZkMuaGVhZGluZ19vcGVuPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIjxoIitzW29dLmhMZXZlbCsiPiJ9LGZDLmhlYWRpbmdfY2xvc2U9ZnVuY3Rpb24ocyxvKXtyZXR1cm4iPC9oIitzW29dLmhMZXZlbCsiPlxuIn0sZkMuaHI9ZnVuY3Rpb24ocyxvLGkpe3JldHVybihpLnhodG1sT3V0PyI8aHIgLz4iOiI8aHI+IikrbUMocyxvKX0sZkMuYnVsbGV0X2xpc3Rfb3Blbj1mdW5jdGlvbigpe3JldHVybiI8dWw+XG4ifSxmQy5idWxsZXRfbGlzdF9jbG9zZT1mdW5jdGlvbihzLG8pe3JldHVybiI8L3VsPiIrbUMocyxvKX0sZkMubGlzdF9pdGVtX29wZW49ZnVuY3Rpb24oKXtyZXR1cm4iPGxpPiJ9LGZDLmxpc3RfaXRlbV9jbG9zZT1mdW5jdGlvbigpe3JldHVybiI8L2xpPlxuIn0sZkMub3JkZXJlZF9saXN0X29wZW49ZnVuY3Rpb24ocyxvKXt2YXIgaT1zW29dO3JldHVybiI8b2wiKyhpLm9yZGVyPjE/JyBzdGFydD0iJytpLm9yZGVyKyciJzoiIikrIj5cbiJ9LGZDLm9yZGVyZWRfbGlzdF9jbG9zZT1mdW5jdGlvbihzLG8pe3JldHVybiI8L29sPiIrbUMocyxvKX0sZkMucGFyYWdyYXBoX29wZW49ZnVuY3Rpb24ocyxvKXtyZXR1cm4gc1tvXS50aWdodD8iIjoiPHA+In0sZkMucGFyYWdyYXBoX2Nsb3NlPWZ1bmN0aW9uKHMsbyl7dmFyIGk9IShzW29dLnRpZ2h0JiZvJiYiaW5saW5lIj09PXNbby0xXS50eXBlJiYhc1tvLTFdLmNvbnRlbnQpO3JldHVybihzW29dLnRpZ2h0PyIiOiI8L3A+IikrKGk/bUMocyxvKToiIil9LGZDLmxpbmtfb3Blbj1mdW5jdGlvbihzLG8saSl7dmFyIGE9c1tvXS50aXRsZT8nIHRpdGxlPSInK2VzY2FwZUh0bWwocmVwbGFjZUVudGl0aWVzKHNbb10udGl0bGUpKSsnIic6IiIsdT1pLmxpbmtUYXJnZXQ/JyB0YXJnZXQ9IicraS5saW5rVGFyZ2V0KyciJzoiIjtyZXR1cm4nPGEgaHJlZj0iJytlc2NhcGVIdG1sKHNbb10uaHJlZikrJyInK2ErdSsiPiJ9LGZDLmxpbmtfY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4iPC9hPiJ9LGZDLmltYWdlPWZ1bmN0aW9uKHMsbyxpKXt2YXIgYT0nIHNyYz0iJytlc2NhcGVIdG1sKHNbb10uc3JjKSsnIicsdT1zW29dLnRpdGxlPycgdGl0bGU9IicrZXNjYXBlSHRtbChyZXBsYWNlRW50aXRpZXMoc1tvXS50aXRsZSkpKyciJzoiIjtyZXR1cm4iPGltZyIrYSsoJyBhbHQ9IicrKHNbb10uYWx0P2VzY2FwZUh0bWwocmVwbGFjZUVudGl0aWVzKHVuZXNjYXBlTWQoc1tvXS5hbHQpKSk6IiIpKyciJykrdSsoaS54aHRtbE91dD8iIC8iOiIiKSsiPiJ9LGZDLnRhYmxlX29wZW49ZnVuY3Rpb24oKXtyZXR1cm4iPHRhYmxlPlxuIn0sZkMudGFibGVfY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4iPC90YWJsZT5cbiJ9LGZDLnRoZWFkX29wZW49ZnVuY3Rpb24oKXtyZXR1cm4iPHRoZWFkPlxuIn0sZkMudGhlYWRfY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4iPC90aGVhZD5cbiJ9LGZDLnRib2R5X29wZW49ZnVuY3Rpb24oKXtyZXR1cm4iPHRib2R5PlxuIn0sZkMudGJvZHlfY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4iPC90Ym9keT5cbiJ9LGZDLnRyX29wZW49ZnVuY3Rpb24oKXtyZXR1cm4iPHRyPiJ9LGZDLnRyX2Nsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIjwvdHI+XG4ifSxmQy50aF9vcGVuPWZ1bmN0aW9uKHMsbyl7dmFyIGk9c1tvXTtyZXR1cm4iPHRoIisoaS5hbGlnbj8nIHN0eWxlPSJ0ZXh0LWFsaWduOicraS5hbGlnbisnIic6IiIpKyI+In0sZkMudGhfY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4iPC90aD4ifSxmQy50ZF9vcGVuPWZ1bmN0aW9uKHMsbyl7dmFyIGk9c1tvXTtyZXR1cm4iPHRkIisoaS5hbGlnbj8nIHN0eWxlPSJ0ZXh0LWFsaWduOicraS5hbGlnbisnIic6IiIpKyI+In0sZkMudGRfY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4iPC90ZD4ifSxmQy5zdHJvbmdfb3Blbj1mdW5jdGlvbigpe3JldHVybiI8c3Ryb25nPiJ9LGZDLnN0cm9uZ19jbG9zZT1mdW5jdGlvbigpe3JldHVybiI8L3N0cm9uZz4ifSxmQy5lbV9vcGVuPWZ1bmN0aW9uKCl7cmV0dXJuIjxlbT4ifSxmQy5lbV9jbG9zZT1mdW5jdGlvbigpe3JldHVybiI8L2VtPiJ9LGZDLmRlbF9vcGVuPWZ1bmN0aW9uKCl7cmV0dXJuIjxkZWw+In0sZkMuZGVsX2Nsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIjwvZGVsPiJ9LGZDLmluc19vcGVuPWZ1bmN0aW9uKCl7cmV0dXJuIjxpbnM+In0sZkMuaW5zX2Nsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIjwvaW5zPiJ9LGZDLm1hcmtfb3Blbj1mdW5jdGlvbigpe3JldHVybiI8bWFyaz4ifSxmQy5tYXJrX2Nsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIjwvbWFyaz4ifSxmQy5zdWI9ZnVuY3Rpb24ocyxvKXtyZXR1cm4iPHN1Yj4iK2VzY2FwZUh0bWwoc1tvXS5jb250ZW50KSsiPC9zdWI+In0sZkMuc3VwPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIjxzdXA+Iitlc2NhcGVIdG1sKHNbb10uY29udGVudCkrIjwvc3VwPiJ9LGZDLmhhcmRicmVhaz1mdW5jdGlvbihzLG8saSl7cmV0dXJuIGkueGh0bWxPdXQ/IjxiciAvPlxuIjoiPGJyPlxuIn0sZkMuc29mdGJyZWFrPWZ1bmN0aW9uKHMsbyxpKXtyZXR1cm4gaS5icmVha3M/aS54aHRtbE91dD8iPGJyIC8+XG4iOiI8YnI+XG4iOiJcbiJ9LGZDLnRleHQ9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gZXNjYXBlSHRtbChzW29dLmNvbnRlbnQpfSxmQy5odG1sYmxvY2s9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gc1tvXS5jb250ZW50fSxmQy5odG1sdGFnPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHNbb10uY29udGVudH0sZkMuYWJicl9vcGVuPWZ1bmN0aW9uKHMsbyl7cmV0dXJuJzxhYmJyIHRpdGxlPSInK2VzY2FwZUh0bWwocmVwbGFjZUVudGl0aWVzKHNbb10udGl0bGUpKSsnIj4nfSxmQy5hYmJyX2Nsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIjwvYWJicj4ifSxmQy5mb290bm90ZV9yZWY9ZnVuY3Rpb24ocyxvKXt2YXIgaT1OdW1iZXIoc1tvXS5pZCsxKS50b1N0cmluZygpLGE9ImZucmVmIitpO3JldHVybiBzW29dLnN1YklkPjAmJihhKz0iOiIrc1tvXS5zdWJJZCksJzxzdXAgY2xhc3M9ImZvb3Rub3RlLXJlZiI+PGEgaHJlZj0iI2ZuJytpKyciIGlkPSInK2ErJyI+WycraSsiXTwvYT48L3N1cD4ifSxmQy5mb290bm90ZV9ibG9ja19vcGVuPWZ1bmN0aW9uKHMsbyxpKXtyZXR1cm4oaS54aHRtbE91dD8nPGhyIGNsYXNzPSJmb290bm90ZXMtc2VwIiAvPlxuJzonPGhyIGNsYXNzPSJmb290bm90ZXMtc2VwIj5cbicpKyc8c2VjdGlvbiBjbGFzcz0iZm9vdG5vdGVzIj5cbjxvbCBjbGFzcz0iZm9vdG5vdGVzLWxpc3QiPlxuJ30sZkMuZm9vdG5vdGVfYmxvY2tfY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4iPC9vbD5cbjwvc2VjdGlvbj5cbiJ9LGZDLmZvb3Rub3RlX29wZW49ZnVuY3Rpb24ocyxvKXtyZXR1cm4nPGxpIGlkPSJmbicrTnVtYmVyKHNbb10uaWQrMSkudG9TdHJpbmcoKSsnIiAgY2xhc3M9ImZvb3Rub3RlLWl0ZW0iPid9LGZDLmZvb3Rub3RlX2Nsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIjwvbGk+XG4ifSxmQy5mb290bm90ZV9hbmNob3I9ZnVuY3Rpb24ocyxvKXt2YXIgaT0iZm5yZWYiK051bWJlcihzW29dLmlkKzEpLnRvU3RyaW5nKCk7cmV0dXJuIHNbb10uc3ViSWQ+MCYmKGkrPSI6IitzW29dLnN1YklkKSwnIDxhIGhyZWY9IiMnK2krJyIgY2xhc3M9ImZvb3Rub3RlLWJhY2tyZWYiPuKGqTwvYT4nfSxmQy5kbF9vcGVuPWZ1bmN0aW9uKCl7cmV0dXJuIjxkbD5cbiJ9LGZDLmR0X29wZW49ZnVuY3Rpb24oKXtyZXR1cm4iPGR0PiJ9LGZDLmRkX29wZW49ZnVuY3Rpb24oKXtyZXR1cm4iPGRkPiJ9LGZDLmRsX2Nsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIjwvZGw+XG4ifSxmQy5kdF9jbG9zZT1mdW5jdGlvbigpe3JldHVybiI8L2R0PlxuIn0sZkMuZGRfY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4iPC9kZD5cbiJ9O3ZhciBtQz1mQy5nZXRCcmVhaz1mdW5jdGlvbiBnZXRCcmVhayhzLG8pe3JldHVybihvPW5leHRUb2tlbihzLG8pKTxzLmxlbmd0aCYmImxpc3RfaXRlbV9jbG9zZSI9PT1zW29dLnR5cGU/IiI6IlxuIn07ZnVuY3Rpb24gUmVuZGVyZXIoKXt0aGlzLnJ1bGVzPWluZGV4X2Jyb3dzZXJfYXNzaWduKHt9LGZDKSx0aGlzLmdldEJyZWFrPWZDLmdldEJyZWFrfWZ1bmN0aW9uIFJ1bGVyKCl7dGhpcy5fX3J1bGVzX189W10sdGhpcy5fX2NhY2hlX189bnVsbH1mdW5jdGlvbiBTdGF0ZUlubGluZShzLG8saSxhLHUpe3RoaXMuc3JjPXMsdGhpcy5lbnY9YSx0aGlzLm9wdGlvbnM9aSx0aGlzLnBhcnNlcj1vLHRoaXMudG9rZW5zPXUsdGhpcy5wb3M9MCx0aGlzLnBvc01heD10aGlzLnNyYy5sZW5ndGgsdGhpcy5sZXZlbD0wLHRoaXMucGVuZGluZz0iIix0aGlzLnBlbmRpbmdMZXZlbD0wLHRoaXMuY2FjaGU9W10sdGhpcy5pc0luTGFiZWw9ITEsdGhpcy5saW5rTGV2ZWw9MCx0aGlzLmxpbmtDb250ZW50PSIiLHRoaXMubGFiZWxVbm1hdGNoZWRTY29wZXM9MH1mdW5jdGlvbiBwYXJzZUxpbmtMYWJlbChzLG8pe3ZhciBpLGEsdSxfPS0xLHc9cy5wb3NNYXgseD1zLnBvcyxDPXMuaXNJbkxhYmVsO2lmKHMuaXNJbkxhYmVsKXJldHVybi0xO2lmKHMubGFiZWxVbm1hdGNoZWRTY29wZXMpcmV0dXJuIHMubGFiZWxVbm1hdGNoZWRTY29wZXMtLSwtMTtmb3Iocy5wb3M9bysxLHMuaXNJbkxhYmVsPSEwLGk9MTtzLnBvczx3Oyl7aWYoOTE9PT0odT1zLnNyYy5jaGFyQ29kZUF0KHMucG9zKSkpaSsrO2Vsc2UgaWYoOTM9PT11JiYwPT09LS1pKXthPSEwO2JyZWFrfXMucGFyc2VyLnNraXBUb2tlbihzKX1yZXR1cm4gYT8oXz1zLnBvcyxzLmxhYmVsVW5tYXRjaGVkU2NvcGVzPTApOnMubGFiZWxVbm1hdGNoZWRTY29wZXM9aS0xLHMucG9zPXgscy5pc0luTGFiZWw9QyxffWZ1bmN0aW9uIHBhcnNlQWJicihzLG8saSxhKXt2YXIgdSxfLHcseCxDLGo7aWYoNDIhPT1zLmNoYXJDb2RlQXQoMCkpcmV0dXJuLTE7aWYoOTEhPT1zLmNoYXJDb2RlQXQoMSkpcmV0dXJuLTE7aWYoLTE9PT1zLmluZGV4T2YoIl06IikpcmV0dXJuLTE7aWYoKF89cGFyc2VMaW5rTGFiZWwodT1uZXcgU3RhdGVJbmxpbmUocyxvLGksYSxbXSksMSkpPDB8fDU4IT09cy5jaGFyQ29kZUF0KF8rMSkpcmV0dXJuLTE7Zm9yKHg9dS5wb3NNYXgsdz1fKzI7dzx4JiYxMCE9PXUuc3JjLmNoYXJDb2RlQXQodyk7dysrKTtyZXR1cm4gQz1zLnNsaWNlKDIsXyksMD09PShqPXMuc2xpY2UoXysyLHcpLnRyaW0oKSkubGVuZ3RoPy0xOihhLmFiYnJldmlhdGlvbnN8fChhLmFiYnJldmlhdGlvbnM9e30pLHZvaWQgMD09PWEuYWJicmV2aWF0aW9uc1siOiIrQ10mJihhLmFiYnJldmlhdGlvbnNbIjoiK0NdPWopLHcpfWZ1bmN0aW9uIG5vcm1hbGl6ZUxpbmsocyl7dmFyIG89cmVwbGFjZUVudGl0aWVzKHMpO3RyeXtvPWRlY29kZVVSSShvKX1jYXRjaChzKXt9cmV0dXJuIGVuY29kZVVSSShvKX1mdW5jdGlvbiBwYXJzZUxpbmtEZXN0aW5hdGlvbihzLG8pe3ZhciBpLGEsdSxfPW8sdz1zLnBvc01heDtpZig2MD09PXMuc3JjLmNoYXJDb2RlQXQobykpe2ZvcihvKys7bzx3Oyl7aWYoMTA9PT0oaT1zLnNyYy5jaGFyQ29kZUF0KG8pKSlyZXR1cm4hMTtpZig2Mj09PWkpcmV0dXJuIHU9bm9ybWFsaXplTGluayh1bmVzY2FwZU1kKHMuc3JjLnNsaWNlKF8rMSxvKSkpLCEhcy5wYXJzZXIudmFsaWRhdGVMaW5rKHUpJiYocy5wb3M9bysxLHMubGlua0NvbnRlbnQ9dSwhMCk7OTI9PT1pJiZvKzE8dz9vKz0yOm8rK31yZXR1cm4hMX1mb3IoYT0wO288dyYmMzIhPT0oaT1zLnNyYy5jaGFyQ29kZUF0KG8pKSYmIShpPDMyfHwxMjc9PT1pKTspaWYoOTI9PT1pJiZvKzE8dylvKz0yO2Vsc2V7aWYoNDA9PT1pJiYrK2E+MSlicmVhaztpZig0MT09PWkmJi0tYTwwKWJyZWFrO28rK31yZXR1cm4gXyE9PW8mJih1PXVuZXNjYXBlTWQocy5zcmMuc2xpY2UoXyxvKSksISFzLnBhcnNlci52YWxpZGF0ZUxpbmsodSkmJihzLmxpbmtDb250ZW50PXUscy5wb3M9bywhMCkpfWZ1bmN0aW9uIHBhcnNlTGlua1RpdGxlKHMsbyl7dmFyIGksYT1vLHU9cy5wb3NNYXgsXz1zLnNyYy5jaGFyQ29kZUF0KG8pO2lmKDM0IT09XyYmMzkhPT1fJiY0MCE9PV8pcmV0dXJuITE7Zm9yKG8rKyw0MD09PV8mJihfPTQxKTtvPHU7KXtpZigoaT1zLnNyYy5jaGFyQ29kZUF0KG8pKT09PV8pcmV0dXJuIHMucG9zPW8rMSxzLmxpbmtDb250ZW50PXVuZXNjYXBlTWQocy5zcmMuc2xpY2UoYSsxLG8pKSwhMDs5Mj09PWkmJm8rMTx1P28rPTI6bysrfXJldHVybiExfWZ1bmN0aW9uIG5vcm1hbGl6ZVJlZmVyZW5jZShzKXtyZXR1cm4gcy50cmltKCkucmVwbGFjZSgvXHMrL2csIiAiKS50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uIHBhcnNlUmVmZXJlbmNlKHMsbyxpLGEpe3ZhciB1LF8sdyx4LEMsaixMLEIsJDtpZig5MSE9PXMuY2hhckNvZGVBdCgwKSlyZXR1cm4tMTtpZigtMT09PXMuaW5kZXhPZigiXToiKSlyZXR1cm4tMTtpZigoXz1wYXJzZUxpbmtMYWJlbCh1PW5ldyBTdGF0ZUlubGluZShzLG8saSxhLFtdKSwwKSk8MHx8NTghPT1zLmNoYXJDb2RlQXQoXysxKSlyZXR1cm4tMTtmb3IoeD11LnBvc01heCx3PV8rMjt3PHgmJigzMj09PShDPXUuc3JjLmNoYXJDb2RlQXQodykpfHwxMD09PUMpO3crKyk7aWYoIXBhcnNlTGlua0Rlc3RpbmF0aW9uKHUsdykpcmV0dXJuLTE7Zm9yKEw9dS5saW5rQ29udGVudCxqPXc9dS5wb3Msdys9MTt3PHgmJigzMj09PShDPXUuc3JjLmNoYXJDb2RlQXQodykpfHwxMD09PUMpO3crKyk7Zm9yKHc8eCYmaiE9PXcmJnBhcnNlTGlua1RpdGxlKHUsdyk/KEI9dS5saW5rQ29udGVudCx3PXUucG9zKTooQj0iIix3PWopO3c8eCYmMzI9PT11LnNyYy5jaGFyQ29kZUF0KHcpOyl3Kys7cmV0dXJuIHc8eCYmMTAhPT11LnNyYy5jaGFyQ29kZUF0KHcpPy0xOigkPW5vcm1hbGl6ZVJlZmVyZW5jZShzLnNsaWNlKDEsXykpLHZvaWQgMD09PWEucmVmZXJlbmNlc1skXSYmKGEucmVmZXJlbmNlc1skXT17dGl0bGU6QixocmVmOkx9KSx3KX1SZW5kZXJlci5wcm90b3R5cGUucmVuZGVySW5saW5lPWZ1bmN0aW9uKHMsbyxpKXtmb3IodmFyIGE9dGhpcy5ydWxlcyx1PXMubGVuZ3RoLF89MCx3PSIiO3UtLTspdys9YVtzW19dLnR5cGVdKHMsXysrLG8saSx0aGlzKTtyZXR1cm4gd30sUmVuZGVyZXIucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihzLG8saSl7Zm9yKHZhciBhPXRoaXMucnVsZXMsdT1zLmxlbmd0aCxfPS0xLHc9IiI7KytfPHU7KSJpbmxpbmUiPT09c1tfXS50eXBlP3crPXRoaXMucmVuZGVySW5saW5lKHNbX10uY2hpbGRyZW4sbyxpKTp3Kz1hW3NbX10udHlwZV0ocyxfLG8saSx0aGlzKTtyZXR1cm4gd30sUnVsZXIucHJvdG90eXBlLl9fZmluZF9fPWZ1bmN0aW9uKHMpe2Zvcih2YXIgbz10aGlzLl9fcnVsZXNfXy5sZW5ndGgsaT0tMTtvLS07KWlmKHRoaXMuX19ydWxlc19fWysraV0ubmFtZT09PXMpcmV0dXJuIGk7cmV0dXJuLTF9LFJ1bGVyLnByb3RvdHlwZS5fX2NvbXBpbGVfXz1mdW5jdGlvbigpe3ZhciBzPXRoaXMsbz1bIiJdO3MuX19ydWxlc19fLmZvckVhY2goKGZ1bmN0aW9uKHMpe3MuZW5hYmxlZCYmcy5hbHQuZm9yRWFjaCgoZnVuY3Rpb24ocyl7by5pbmRleE9mKHMpPDAmJm8ucHVzaChzKX0pKX0pKSxzLl9fY2FjaGVfXz17fSxvLmZvckVhY2goKGZ1bmN0aW9uKG8pe3MuX19jYWNoZV9fW29dPVtdLHMuX19ydWxlc19fLmZvckVhY2goKGZ1bmN0aW9uKGkpe2kuZW5hYmxlZCYmKG8mJmkuYWx0LmluZGV4T2Yobyk8MHx8cy5fX2NhY2hlX19bb10ucHVzaChpLmZuKSl9KSl9KSl9LFJ1bGVyLnByb3RvdHlwZS5hdD1mdW5jdGlvbihzLG8saSl7dmFyIGE9dGhpcy5fX2ZpbmRfXyhzKSx1PWl8fHt9O2lmKC0xPT09YSl0aHJvdyBuZXcgRXJyb3IoIlBhcnNlciBydWxlIG5vdCBmb3VuZDogIitzKTt0aGlzLl9fcnVsZXNfX1thXS5mbj1vLHRoaXMuX19ydWxlc19fW2FdLmFsdD11LmFsdHx8W10sdGhpcy5fX2NhY2hlX189bnVsbH0sUnVsZXIucHJvdG90eXBlLmJlZm9yZT1mdW5jdGlvbihzLG8saSxhKXt2YXIgdT10aGlzLl9fZmluZF9fKHMpLF89YXx8e307aWYoLTE9PT11KXRocm93IG5ldyBFcnJvcigiUGFyc2VyIHJ1bGUgbm90IGZvdW5kOiAiK3MpO3RoaXMuX19ydWxlc19fLnNwbGljZSh1LDAse25hbWU6byxlbmFibGVkOiEwLGZuOmksYWx0Ol8uYWx0fHxbXX0pLHRoaXMuX19jYWNoZV9fPW51bGx9LFJ1bGVyLnByb3RvdHlwZS5hZnRlcj1mdW5jdGlvbihzLG8saSxhKXt2YXIgdT10aGlzLl9fZmluZF9fKHMpLF89YXx8e307aWYoLTE9PT11KXRocm93IG5ldyBFcnJvcigiUGFyc2VyIHJ1bGUgbm90IGZvdW5kOiAiK3MpO3RoaXMuX19ydWxlc19fLnNwbGljZSh1KzEsMCx7bmFtZTpvLGVuYWJsZWQ6ITAsZm46aSxhbHQ6Xy5hbHR8fFtdfSksdGhpcy5fX2NhY2hlX189bnVsbH0sUnVsZXIucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24ocyxvLGkpe3ZhciBhPWl8fHt9O3RoaXMuX19ydWxlc19fLnB1c2goe25hbWU6cyxlbmFibGVkOiEwLGZuOm8sYWx0OmEuYWx0fHxbXX0pLHRoaXMuX19jYWNoZV9fPW51bGx9LFJ1bGVyLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24ocyxvKXtzPUFycmF5LmlzQXJyYXkocyk/czpbc10sbyYmdGhpcy5fX3J1bGVzX18uZm9yRWFjaCgoZnVuY3Rpb24ocyl7cy5lbmFibGVkPSExfSkpLHMuZm9yRWFjaCgoZnVuY3Rpb24ocyl7dmFyIG89dGhpcy5fX2ZpbmRfXyhzKTtpZihvPDApdGhyb3cgbmV3IEVycm9yKCJSdWxlcyBtYW5hZ2VyOiBpbnZhbGlkIHJ1bGUgbmFtZSAiK3MpO3RoaXMuX19ydWxlc19fW29dLmVuYWJsZWQ9ITB9KSx0aGlzKSx0aGlzLl9fY2FjaGVfXz1udWxsfSxSdWxlci5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbihzKXsocz1BcnJheS5pc0FycmF5KHMpP3M6W3NdKS5mb3JFYWNoKChmdW5jdGlvbihzKXt2YXIgbz10aGlzLl9fZmluZF9fKHMpO2lmKG88MCl0aHJvdyBuZXcgRXJyb3IoIlJ1bGVzIG1hbmFnZXI6IGludmFsaWQgcnVsZSBuYW1lICIrcyk7dGhpcy5fX3J1bGVzX19bb10uZW5hYmxlZD0hMX0pLHRoaXMpLHRoaXMuX19jYWNoZV9fPW51bGx9LFJ1bGVyLnByb3RvdHlwZS5nZXRSdWxlcz1mdW5jdGlvbihzKXtyZXR1cm4gbnVsbD09PXRoaXMuX19jYWNoZV9fJiZ0aGlzLl9fY29tcGlsZV9fKCksdGhpcy5fX2NhY2hlX19bc118fFtdfSxTdGF0ZUlubGluZS5wcm90b3R5cGUucHVzaFBlbmRpbmc9ZnVuY3Rpb24oKXt0aGlzLnRva2Vucy5wdXNoKHt0eXBlOiJ0ZXh0Iixjb250ZW50OnRoaXMucGVuZGluZyxsZXZlbDp0aGlzLnBlbmRpbmdMZXZlbH0pLHRoaXMucGVuZGluZz0iIn0sU3RhdGVJbmxpbmUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24ocyl7dGhpcy5wZW5kaW5nJiZ0aGlzLnB1c2hQZW5kaW5nKCksdGhpcy50b2tlbnMucHVzaChzKSx0aGlzLnBlbmRpbmdMZXZlbD10aGlzLmxldmVsfSxTdGF0ZUlubGluZS5wcm90b3R5cGUuY2FjaGVTZXQ9ZnVuY3Rpb24ocyxvKXtmb3IodmFyIGk9dGhpcy5jYWNoZS5sZW5ndGg7aTw9cztpKyspdGhpcy5jYWNoZS5wdXNoKDApO3RoaXMuY2FjaGVbc109b30sU3RhdGVJbmxpbmUucHJvdG90eXBlLmNhY2hlR2V0PWZ1bmN0aW9uKHMpe3JldHVybiBzPHRoaXMuY2FjaGUubGVuZ3RoP3RoaXMuY2FjaGVbc106MH07dmFyIGdDPSIgXG4oKVtdJ1wiLiwhPy0iO2Z1bmN0aW9uIHJlZ0VzY2FwZShzKXtyZXR1cm4gcy5yZXBsYWNlKC8oWy0oKVxbXF17fSs/Ki4kXF58LDojPCFcXF0pL2csIlxcJDEiKX12YXIgeUM9L1wrLXxcLlwufFw/XD9cP1w/fCEhISF8LCx8LS0vLHZDPS9cKChjfHRtfHJ8cClcKS9naSxiQz17YzoiwqkiLHI6IsKuIixwOiLCpyIsdG06IuKEoiJ9O2Z1bmN0aW9uIHJlcGxhY2VTY29wZWRBYmJyKHMpe3JldHVybiBzLmluZGV4T2YoIigiKTwwP3M6cy5yZXBsYWNlKHZDLChmdW5jdGlvbihzLG8pe3JldHVybiBiQ1tvLnRvTG93ZXJDYXNlKCldfSkpfXZhciBfQz0vWyciXS8sU0M9L1snIl0vZyxFQz0vWy1ccygpXFtcXV0vO2Z1bmN0aW9uIGlzTGV0dGVyKHMsbyl7cmV0dXJuIShvPDB8fG8+PXMubGVuZ3RoKSYmIUVDLnRlc3Qoc1tvXSl9ZnVuY3Rpb24gcmVwbGFjZUF0KHMsbyxpKXtyZXR1cm4gcy5zdWJzdHIoMCxvKStpK3Muc3Vic3RyKG8rMSl9dmFyIHdDPVtbImJsb2NrIixmdW5jdGlvbiBibG9jayhzKXtzLmlubGluZU1vZGU/cy50b2tlbnMucHVzaCh7dHlwZToiaW5saW5lIixjb250ZW50OnMuc3JjLnJlcGxhY2UoL1xuL2csIiAiKS50cmltKCksbGV2ZWw6MCxsaW5lczpbMCwxXSxjaGlsZHJlbjpbXX0pOnMuYmxvY2sucGFyc2Uocy5zcmMscy5vcHRpb25zLHMuZW52LHMudG9rZW5zKX1dLFsiYWJiciIsZnVuY3Rpb24gYWJicihzKXt2YXIgbyxpLGEsdSxfPXMudG9rZW5zO2lmKCFzLmlubGluZU1vZGUpZm9yKG89MSxpPV8ubGVuZ3RoLTE7bzxpO28rKylpZigicGFyYWdyYXBoX29wZW4iPT09X1tvLTFdLnR5cGUmJiJpbmxpbmUiPT09X1tvXS50eXBlJiYicGFyYWdyYXBoX2Nsb3NlIj09PV9bbysxXS50eXBlKXtmb3IoYT1fW29dLmNvbnRlbnQ7YS5sZW5ndGgmJiEoKHU9cGFyc2VBYmJyKGEscy5pbmxpbmUscy5vcHRpb25zLHMuZW52KSk8MCk7KWE9YS5zbGljZSh1KS50cmltKCk7X1tvXS5jb250ZW50PWEsYS5sZW5ndGh8fChfW28tMV0udGlnaHQ9ITAsX1tvKzFdLnRpZ2h0PSEwKX19XSxbInJlZmVyZW5jZXMiLGZ1bmN0aW9uIHJlZmVyZW5jZXMocyl7dmFyIG8saSxhLHUsXz1zLnRva2VucztpZihzLmVudi5yZWZlcmVuY2VzPXMuZW52LnJlZmVyZW5jZXN8fHt9LCFzLmlubGluZU1vZGUpZm9yKG89MSxpPV8ubGVuZ3RoLTE7bzxpO28rKylpZigiaW5saW5lIj09PV9bb10udHlwZSYmInBhcmFncmFwaF9vcGVuIj09PV9bby0xXS50eXBlJiYicGFyYWdyYXBoX2Nsb3NlIj09PV9bbysxXS50eXBlKXtmb3IoYT1fW29dLmNvbnRlbnQ7YS5sZW5ndGgmJiEoKHU9cGFyc2VSZWZlcmVuY2UoYSxzLmlubGluZSxzLm9wdGlvbnMscy5lbnYpKTwwKTspYT1hLnNsaWNlKHUpLnRyaW0oKTtfW29dLmNvbnRlbnQ9YSxhLmxlbmd0aHx8KF9bby0xXS50aWdodD0hMCxfW28rMV0udGlnaHQ9ITApfX1dLFsiaW5saW5lIixmdW5jdGlvbiBpbmxpbmUocyl7dmFyIG8saSxhLHU9cy50b2tlbnM7Zm9yKGk9MCxhPXUubGVuZ3RoO2k8YTtpKyspImlubGluZSI9PT0obz11W2ldKS50eXBlJiZzLmlubGluZS5wYXJzZShvLmNvbnRlbnQscy5vcHRpb25zLHMuZW52LG8uY2hpbGRyZW4pfV0sWyJmb290bm90ZV90YWlsIixmdW5jdGlvbiBmb290bm90ZV9ibG9jayhzKXt2YXIgbyxpLGEsdSxfLHcseCxDLGosTD0wLEI9ITEsJD17fTtpZihzLmVudi5mb290bm90ZXMmJihzLnRva2Vucz1zLnRva2Vucy5maWx0ZXIoKGZ1bmN0aW9uKHMpe3JldHVybiJmb290bm90ZV9yZWZlcmVuY2Vfb3BlbiI9PT1zLnR5cGU/KEI9ITAsQz1bXSxqPXMubGFiZWwsITEpOiJmb290bm90ZV9yZWZlcmVuY2VfY2xvc2UiPT09cy50eXBlPyhCPSExLCRbIjoiK2pdPUMsITEpOihCJiZDLnB1c2gocyksIUIpfSkpLHMuZW52LmZvb3Rub3Rlcy5saXN0KSl7Zm9yKHc9cy5lbnYuZm9vdG5vdGVzLmxpc3Qscy50b2tlbnMucHVzaCh7dHlwZToiZm9vdG5vdGVfYmxvY2tfb3BlbiIsbGV2ZWw6TCsrfSksbz0wLGk9dy5sZW5ndGg7bzxpO28rKyl7Zm9yKHMudG9rZW5zLnB1c2goe3R5cGU6ImZvb3Rub3RlX29wZW4iLGlkOm8sbGV2ZWw6TCsrfSksd1tvXS50b2tlbnM/KCh4PVtdKS5wdXNoKHt0eXBlOiJwYXJhZ3JhcGhfb3BlbiIsdGlnaHQ6ITEsbGV2ZWw6TCsrfSkseC5wdXNoKHt0eXBlOiJpbmxpbmUiLGNvbnRlbnQ6IiIsbGV2ZWw6TCxjaGlsZHJlbjp3W29dLnRva2Vuc30pLHgucHVzaCh7dHlwZToicGFyYWdyYXBoX2Nsb3NlIix0aWdodDohMSxsZXZlbDotLUx9KSk6d1tvXS5sYWJlbCYmKHg9JFsiOiIrd1tvXS5sYWJlbF0pLHMudG9rZW5zPXMudG9rZW5zLmNvbmNhdCh4KSxfPSJwYXJhZ3JhcGhfY2xvc2UiPT09cy50b2tlbnNbcy50b2tlbnMubGVuZ3RoLTFdLnR5cGU/cy50b2tlbnMucG9wKCk6bnVsbCx1PXdbb10uY291bnQ+MD93W29dLmNvdW50OjEsYT0wO2E8dTthKyspcy50b2tlbnMucHVzaCh7dHlwZToiZm9vdG5vdGVfYW5jaG9yIixpZDpvLHN1YklkOmEsbGV2ZWw6TH0pO18mJnMudG9rZW5zLnB1c2goXykscy50b2tlbnMucHVzaCh7dHlwZToiZm9vdG5vdGVfY2xvc2UiLGxldmVsOi0tTH0pfXMudG9rZW5zLnB1c2goe3R5cGU6ImZvb3Rub3RlX2Jsb2NrX2Nsb3NlIixsZXZlbDotLUx9KX19XSxbImFiYnIyIixmdW5jdGlvbiBhYmJyMihzKXt2YXIgbyxpLGEsdSxfLHcseCxDLGosTCxCLCQsVj1zLnRva2VucztpZihzLmVudi5hYmJyZXZpYXRpb25zKWZvcihzLmVudi5hYmJyUmVnRXhwfHwoJD0iKF58WyIrZ0Muc3BsaXQoIiIpLm1hcChyZWdFc2NhcGUpLmpvaW4oIiIpKyJdKSgiK09iamVjdC5rZXlzKHMuZW52LmFiYnJldmlhdGlvbnMpLm1hcCgoZnVuY3Rpb24ocyl7cmV0dXJuIHMuc3Vic3RyKDEpfSkpLnNvcnQoKGZ1bmN0aW9uKHMsbyl7cmV0dXJuIG8ubGVuZ3RoLXMubGVuZ3RofSkpLm1hcChyZWdFc2NhcGUpLmpvaW4oInwiKSsiKSgkfFsiK2dDLnNwbGl0KCIiKS5tYXAocmVnRXNjYXBlKS5qb2luKCIiKSsiXSkiLHMuZW52LmFiYnJSZWdFeHA9bmV3IFJlZ0V4cCgkLCJnIikpLEw9cy5lbnYuYWJiclJlZ0V4cCxpPTAsYT1WLmxlbmd0aDtpPGE7aSsrKWlmKCJpbmxpbmUiPT09VltpXS50eXBlKWZvcihvPSh1PVZbaV0uY2hpbGRyZW4pLmxlbmd0aC0xO28+PTA7by0tKWlmKCJ0ZXh0Ij09PShfPXVbb10pLnR5cGUpe2ZvcihDPTAsdz1fLmNvbnRlbnQsTC5sYXN0SW5kZXg9MCxqPV8ubGV2ZWwseD1bXTtCPUwuZXhlYyh3KTspTC5sYXN0SW5kZXg+QyYmeC5wdXNoKHt0eXBlOiJ0ZXh0Iixjb250ZW50Oncuc2xpY2UoQyxCLmluZGV4K0JbMV0ubGVuZ3RoKSxsZXZlbDpqfSkseC5wdXNoKHt0eXBlOiJhYmJyX29wZW4iLHRpdGxlOnMuZW52LmFiYnJldmlhdGlvbnNbIjoiK0JbMl1dLGxldmVsOmorK30pLHgucHVzaCh7dHlwZToidGV4dCIsY29udGVudDpCWzJdLGxldmVsOmp9KSx4LnB1c2goe3R5cGU6ImFiYnJfY2xvc2UiLGxldmVsOi0tan0pLEM9TC5sYXN0SW5kZXgtQlszXS5sZW5ndGg7eC5sZW5ndGgmJihDPHcubGVuZ3RoJiZ4LnB1c2goe3R5cGU6InRleHQiLGNvbnRlbnQ6dy5zbGljZShDKSxsZXZlbDpqfSksVltpXS5jaGlsZHJlbj11PVtdLmNvbmNhdCh1LnNsaWNlKDAsbykseCx1LnNsaWNlKG8rMSkpKX19XSxbInJlcGxhY2VtZW50cyIsZnVuY3Rpb24gaW5kZXhfYnJvd3Nlcl9yZXBsYWNlKHMpe3ZhciBvLGksYSx1LF87aWYocy5vcHRpb25zLnR5cG9ncmFwaGVyKWZvcihfPXMudG9rZW5zLmxlbmd0aC0xO18+PTA7Xy0tKWlmKCJpbmxpbmUiPT09cy50b2tlbnNbX10udHlwZSlmb3Iobz0odT1zLnRva2Vuc1tfXS5jaGlsZHJlbikubGVuZ3RoLTE7bz49MDtvLS0pInRleHQiPT09KGk9dVtvXSkudHlwZSYmKGE9cmVwbGFjZVNjb3BlZEFiYnIoYT1pLmNvbnRlbnQpLHlDLnRlc3QoYSkmJihhPWEucmVwbGFjZSgvXCstL2csIsKxIikucmVwbGFjZSgvXC57Mix9L2csIuKApiIpLnJlcGxhY2UoLyhbPyFdKeKApi9nLCIkMS4uIikucmVwbGFjZSgvKFs/IV0pezQsfS9nLCIkMSQxJDEiKS5yZXBsYWNlKC8sezIsfS9nLCIsIikucmVwbGFjZSgvKF58W14tXSktLS0oW14tXXwkKS9nbSwiJDHigJQkMiIpLnJlcGxhY2UoLyhefFxzKS0tKFxzfCQpL2dtLCIkMeKAkyQyIikucmVwbGFjZSgvKF58W14tXHNdKS0tKFteLVxzXXwkKS9nbSwiJDHigJMkMiIpKSxpLmNvbnRlbnQ9YSl9XSxbInNtYXJ0cXVvdGVzIixmdW5jdGlvbiBzbWFydHF1b3RlcyhzKXt2YXIgbyxpLGEsdSxfLHcseCxDLGosTCxCLCQsVixVLHosWSxaO2lmKHMub3B0aW9ucy50eXBvZ3JhcGhlcilmb3IoWj1bXSx6PXMudG9rZW5zLmxlbmd0aC0xO3o+PTA7ei0tKWlmKCJpbmxpbmUiPT09cy50b2tlbnNbel0udHlwZSlmb3IoWT1zLnRva2Vuc1t6XS5jaGlsZHJlbixaLmxlbmd0aD0wLG89MDtvPFkubGVuZ3RoO28rKylpZigidGV4dCI9PT0oaT1ZW29dKS50eXBlJiYhX0MudGVzdChpLnRleHQpKXtmb3IoeD1ZW29dLmxldmVsLFY9Wi5sZW5ndGgtMTtWPj0wJiYhKFpbVl0ubGV2ZWw8PXgpO1YtLSk7Wi5sZW5ndGg9VisxLF89MCx3PShhPWkuY29udGVudCkubGVuZ3RoO2U6Zm9yKDtfPHcmJihTQy5sYXN0SW5kZXg9Xyx1PVNDLmV4ZWMoYSkpOylpZihDPSFpc0xldHRlcihhLHUuaW5kZXgtMSksXz11LmluZGV4KzEsVT0iJyI9PT11WzBdLChqPSFpc0xldHRlcihhLF8pKXx8Qyl7aWYoQj0haiwkPSFDKWZvcihWPVoubGVuZ3RoLTE7Vj49MCYmKEw9WltWXSwhKFpbVl0ubGV2ZWw8eCkpO1YtLSlpZihMLnNpbmdsZT09PVUmJlpbVl0ubGV2ZWw9PT14KXtMPVpbVl0sVT8oWVtMLnRva2VuXS5jb250ZW50PXJlcGxhY2VBdChZW0wudG9rZW5dLmNvbnRlbnQsTC5wb3Mscy5vcHRpb25zLnF1b3Rlc1syXSksaS5jb250ZW50PXJlcGxhY2VBdChpLmNvbnRlbnQsdS5pbmRleCxzLm9wdGlvbnMucXVvdGVzWzNdKSk6KFlbTC50b2tlbl0uY29udGVudD1yZXBsYWNlQXQoWVtMLnRva2VuXS5jb250ZW50LEwucG9zLHMub3B0aW9ucy5xdW90ZXNbMF0pLGkuY29udGVudD1yZXBsYWNlQXQoaS5jb250ZW50LHUuaW5kZXgscy5vcHRpb25zLnF1b3Rlc1sxXSkpLFoubGVuZ3RoPVY7Y29udGludWUgZX1CP1oucHVzaCh7dG9rZW46byxwb3M6dS5pbmRleCxzaW5nbGU6VSxsZXZlbDp4fSk6JCYmVSYmKGkuY29udGVudD1yZXBsYWNlQXQoaS5jb250ZW50LHUuaW5kZXgsIuKAmSIpKX1lbHNlIFUmJihpLmNvbnRlbnQ9cmVwbGFjZUF0KGkuY29udGVudCx1LmluZGV4LCLigJkiKSl9fV1dO2Z1bmN0aW9uIENvcmUoKXt0aGlzLm9wdGlvbnM9e30sdGhpcy5ydWxlcj1uZXcgUnVsZXI7Zm9yKHZhciBzPTA7czx3Qy5sZW5ndGg7cysrKXRoaXMucnVsZXIucHVzaCh3Q1tzXVswXSx3Q1tzXVsxXSl9ZnVuY3Rpb24gU3RhdGVCbG9jayhzLG8saSxhLHUpe3ZhciBfLHcseCxDLGosTCxCO2Zvcih0aGlzLnNyYz1zLHRoaXMucGFyc2VyPW8sdGhpcy5vcHRpb25zPWksdGhpcy5lbnY9YSx0aGlzLnRva2Vucz11LHRoaXMuYk1hcmtzPVtdLHRoaXMuZU1hcmtzPVtdLHRoaXMudFNoaWZ0PVtdLHRoaXMuYmxrSW5kZW50PTAsdGhpcy5saW5lPTAsdGhpcy5saW5lTWF4PTAsdGhpcy50aWdodD0hMSx0aGlzLnBhcmVudFR5cGU9InJvb3QiLHRoaXMuZGRJbmRlbnQ9LTEsdGhpcy5sZXZlbD0wLHRoaXMucmVzdWx0PSIiLEw9MCxCPSExLHg9Qz1MPTAsaj0odz10aGlzLnNyYykubGVuZ3RoO0M8ajtDKyspe2lmKF89dy5jaGFyQ29kZUF0KEMpLCFCKXtpZigzMj09PV8pe0wrKztjb250aW51ZX1CPSEwfTEwIT09XyYmQyE9PWotMXx8KDEwIT09XyYmQysrLHRoaXMuYk1hcmtzLnB1c2goeCksdGhpcy5lTWFya3MucHVzaChDKSx0aGlzLnRTaGlmdC5wdXNoKEwpLEI9ITEsTD0wLHg9QysxKX10aGlzLmJNYXJrcy5wdXNoKHcubGVuZ3RoKSx0aGlzLmVNYXJrcy5wdXNoKHcubGVuZ3RoKSx0aGlzLnRTaGlmdC5wdXNoKDApLHRoaXMubGluZU1heD10aGlzLmJNYXJrcy5sZW5ndGgtMX1mdW5jdGlvbiBza2lwQnVsbGV0TGlzdE1hcmtlcihzLG8pe3ZhciBpLGEsdTtyZXR1cm4oYT1zLmJNYXJrc1tvXStzLnRTaGlmdFtvXSk+PSh1PXMuZU1hcmtzW29dKXx8NDIhPT0oaT1zLnNyYy5jaGFyQ29kZUF0KGErKykpJiY0NSE9PWkmJjQzIT09aXx8YTx1JiYzMiE9PXMuc3JjLmNoYXJDb2RlQXQoYSk/LTE6YX1mdW5jdGlvbiBza2lwT3JkZXJlZExpc3RNYXJrZXIocyxvKXt2YXIgaSxhPXMuYk1hcmtzW29dK3MudFNoaWZ0W29dLHU9cy5lTWFya3Nbb107aWYoYSsxPj11KXJldHVybi0xO2lmKChpPXMuc3JjLmNoYXJDb2RlQXQoYSsrKSk8NDh8fGk+NTcpcmV0dXJuLTE7Zm9yKDs7KXtpZihhPj11KXJldHVybi0xO2lmKCEoKGk9cy5zcmMuY2hhckNvZGVBdChhKyspKT49NDgmJmk8PTU3KSl7aWYoNDE9PT1pfHw0Nj09PWkpYnJlYWs7cmV0dXJuLTF9fXJldHVybiBhPHUmJjMyIT09cy5zcmMuY2hhckNvZGVBdChhKT8tMTphfUNvcmUucHJvdG90eXBlLnByb2Nlc3M9ZnVuY3Rpb24ocyl7dmFyIG8saSxhO2ZvcihvPTAsaT0oYT10aGlzLnJ1bGVyLmdldFJ1bGVzKCIiKSkubGVuZ3RoO288aTtvKyspYVtvXShzKX0sU3RhdGVCbG9jay5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbiBpc0VtcHR5KHMpe3JldHVybiB0aGlzLmJNYXJrc1tzXSt0aGlzLnRTaGlmdFtzXT49dGhpcy5lTWFya3Nbc119LFN0YXRlQmxvY2sucHJvdG90eXBlLnNraXBFbXB0eUxpbmVzPWZ1bmN0aW9uIHNraXBFbXB0eUxpbmVzKHMpe2Zvcih2YXIgbz10aGlzLmxpbmVNYXg7czxvJiYhKHRoaXMuYk1hcmtzW3NdK3RoaXMudFNoaWZ0W3NdPHRoaXMuZU1hcmtzW3NdKTtzKyspO3JldHVybiBzfSxTdGF0ZUJsb2NrLnByb3RvdHlwZS5za2lwU3BhY2VzPWZ1bmN0aW9uIHNraXBTcGFjZXMocyl7Zm9yKHZhciBvPXRoaXMuc3JjLmxlbmd0aDtzPG8mJjMyPT09dGhpcy5zcmMuY2hhckNvZGVBdChzKTtzKyspO3JldHVybiBzfSxTdGF0ZUJsb2NrLnByb3RvdHlwZS5za2lwQ2hhcnM9ZnVuY3Rpb24gc2tpcENoYXJzKHMsbyl7Zm9yKHZhciBpPXRoaXMuc3JjLmxlbmd0aDtzPGkmJnRoaXMuc3JjLmNoYXJDb2RlQXQocyk9PT1vO3MrKyk7cmV0dXJuIHN9LFN0YXRlQmxvY2sucHJvdG90eXBlLnNraXBDaGFyc0JhY2s9ZnVuY3Rpb24gc2tpcENoYXJzQmFjayhzLG8saSl7aWYoczw9aSlyZXR1cm4gcztmb3IoO3M+aTspaWYobyE9PXRoaXMuc3JjLmNoYXJDb2RlQXQoLS1zKSlyZXR1cm4gcysxO3JldHVybiBzfSxTdGF0ZUJsb2NrLnByb3RvdHlwZS5nZXRMaW5lcz1mdW5jdGlvbiBnZXRMaW5lcyhzLG8saSxhKXt2YXIgdSxfLHcseCxDLGo9cztpZihzPj1vKXJldHVybiIiO2lmKGorMT09PW8pcmV0dXJuIF89dGhpcy5iTWFya3Nbal0rTWF0aC5taW4odGhpcy50U2hpZnRbal0saSksdz1hP3RoaXMuZU1hcmtzW2pdKzE6dGhpcy5lTWFya3Nbal0sdGhpcy5zcmMuc2xpY2UoXyx3KTtmb3IoeD1uZXcgQXJyYXkoby1zKSx1PTA7ajxvO2orKyx1KyspKEM9dGhpcy50U2hpZnRbal0pPmkmJihDPWkpLEM8MCYmKEM9MCksXz10aGlzLmJNYXJrc1tqXStDLHc9aisxPG98fGE/dGhpcy5lTWFya3Nbal0rMTp0aGlzLmVNYXJrc1tqXSx4W3VdPXRoaXMuc3JjLnNsaWNlKF8sdyk7cmV0dXJuIHguam9pbigiIil9O3ZhciB4Qz17fTtbImFydGljbGUiLCJhc2lkZSIsImJ1dHRvbiIsImJsb2NrcXVvdGUiLCJib2R5IiwiY2FudmFzIiwiY2FwdGlvbiIsImNvbCIsImNvbGdyb3VwIiwiZGQiLCJkaXYiLCJkbCIsImR0IiwiZW1iZWQiLCJmaWVsZHNldCIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb290ZXIiLCJmb3JtIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaGVhZGVyIiwiaGdyb3VwIiwiaHIiLCJpZnJhbWUiLCJsaSIsIm1hcCIsIm9iamVjdCIsIm9sIiwib3V0cHV0IiwicCIsInByZSIsInByb2dyZXNzIiwic2NyaXB0Iiwic2VjdGlvbiIsInN0eWxlIiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGV4dGFyZWEiLCJ0Zm9vdCIsInRoIiwidHIiLCJ0aGVhZCIsInVsIiwidmlkZW8iXS5mb3JFYWNoKChmdW5jdGlvbihzKXt4Q1tzXT0hMH0pKTt2YXIga0M9L148KFthLXpBLVpdezEsMTV9KVtcc1wvPl0vLE9DPS9ePFwvKFthLXpBLVpdezEsMTV9KVtccz5dLztmdW5jdGlvbiBpbmRleF9icm93c2VyX2dldExpbmUocyxvKXt2YXIgaT1zLmJNYXJrc1tvXStzLmJsa0luZGVudCxhPXMuZU1hcmtzW29dO3JldHVybiBzLnNyYy5zdWJzdHIoaSxhLWkpfWZ1bmN0aW9uIHNraXBNYXJrZXIocyxvKXt2YXIgaSxhLHU9cy5iTWFya3Nbb10rcy50U2hpZnRbb10sXz1zLmVNYXJrc1tvXTtyZXR1cm4gdT49X3x8MTI2IT09KGE9cy5zcmMuY2hhckNvZGVBdCh1KyspKSYmNTghPT1hfHx1PT09KGk9cy5za2lwU3BhY2VzKHUpKXx8aT49Xz8tMTppfXZhciBDQz1bWyJjb2RlIixmdW5jdGlvbiBjb2RlKHMsbyxpKXt2YXIgYSx1O2lmKHMudFNoaWZ0W29dLXMuYmxrSW5kZW50PDQpcmV0dXJuITE7Zm9yKHU9YT1vKzE7YTxpOylpZihzLmlzRW1wdHkoYSkpYSsrO2Vsc2V7aWYoIShzLnRTaGlmdFthXS1zLmJsa0luZGVudD49NCkpYnJlYWs7dT0rK2F9cmV0dXJuIHMubGluZT1hLHMudG9rZW5zLnB1c2goe3R5cGU6ImNvZGUiLGNvbnRlbnQ6cy5nZXRMaW5lcyhvLHUsNCtzLmJsa0luZGVudCwhMCksYmxvY2s6ITAsbGluZXM6W28scy5saW5lXSxsZXZlbDpzLmxldmVsfSksITB9XSxbImZlbmNlcyIsZnVuY3Rpb24gZmVuY2VzKHMsbyxpLGEpe3ZhciB1LF8sdyx4LEMsaj0hMSxMPXMuYk1hcmtzW29dK3MudFNoaWZ0W29dLEI9cy5lTWFya3Nbb107aWYoTCszPkIpcmV0dXJuITE7aWYoMTI2IT09KHU9cy5zcmMuY2hhckNvZGVBdChMKSkmJjk2IT09dSlyZXR1cm4hMTtpZihDPUwsKF89KEw9cy5za2lwQ2hhcnMoTCx1KSktQyk8MylyZXR1cm4hMTtpZigodz1zLnNyYy5zbGljZShMLEIpLnRyaW0oKSkuaW5kZXhPZigiYCIpPj0wKXJldHVybiExO2lmKGEpcmV0dXJuITA7Zm9yKHg9bzshKCsreD49aSkmJiEoKEw9Qz1zLmJNYXJrc1t4XStzLnRTaGlmdFt4XSk8KEI9cy5lTWFya3NbeF0pJiZzLnRTaGlmdFt4XTxzLmJsa0luZGVudCk7KWlmKHMuc3JjLmNoYXJDb2RlQXQoTCk9PT11JiYhKHMudFNoaWZ0W3hdLXMuYmxrSW5kZW50Pj00fHwoTD1zLnNraXBDaGFycyhMLHUpKS1DPF98fChMPXMuc2tpcFNwYWNlcyhMKSk8Qikpe2o9ITA7YnJlYWt9cmV0dXJuIF89cy50U2hpZnRbb10scy5saW5lPXgrKGo/MTowKSxzLnRva2Vucy5wdXNoKHt0eXBlOiJmZW5jZSIscGFyYW1zOncsY29udGVudDpzLmdldExpbmVzKG8rMSx4LF8sITApLGxpbmVzOltvLHMubGluZV0sbGV2ZWw6cy5sZXZlbH0pLCEwfSxbInBhcmFncmFwaCIsImJsb2NrcXVvdGUiLCJsaXN0Il1dLFsiYmxvY2txdW90ZSIsZnVuY3Rpb24gYmxvY2txdW90ZShzLG8saSxhKXt2YXIgdSxfLHcseCxDLGosTCxCLCQsVixVLHo9cy5iTWFya3Nbb10rcy50U2hpZnRbb10sWT1zLmVNYXJrc1tvXTtpZih6PlkpcmV0dXJuITE7aWYoNjIhPT1zLnNyYy5jaGFyQ29kZUF0KHorKykpcmV0dXJuITE7aWYocy5sZXZlbD49cy5vcHRpb25zLm1heE5lc3RpbmcpcmV0dXJuITE7aWYoYSlyZXR1cm4hMDtmb3IoMzI9PT1zLnNyYy5jaGFyQ29kZUF0KHopJiZ6KyssQz1zLmJsa0luZGVudCxzLmJsa0luZGVudD0wLHg9W3MuYk1hcmtzW29dXSxzLmJNYXJrc1tvXT16LF89KHo9ejxZP3Muc2tpcFNwYWNlcyh6KTp6KT49WSx3PVtzLnRTaGlmdFtvXV0scy50U2hpZnRbb109ei1zLmJNYXJrc1tvXSxCPXMucGFyc2VyLnJ1bGVyLmdldFJ1bGVzKCJibG9ja3F1b3RlIiksdT1vKzE7dTxpJiYhKCh6PXMuYk1hcmtzW3VdK3MudFNoaWZ0W3VdKT49KFk9cy5lTWFya3NbdV0pKTt1KyspaWYoNjIhPT1zLnNyYy5jaGFyQ29kZUF0KHorKykpe2lmKF8pYnJlYWs7Zm9yKFU9ITEsJD0wLFY9Qi5sZW5ndGg7JDxWOyQrKylpZihCWyRdKHMsdSxpLCEwKSl7VT0hMDticmVha31pZihVKWJyZWFrO3gucHVzaChzLmJNYXJrc1t1XSksdy5wdXNoKHMudFNoaWZ0W3VdKSxzLnRTaGlmdFt1XT0tMTMzN31lbHNlIDMyPT09cy5zcmMuY2hhckNvZGVBdCh6KSYmeisrLHgucHVzaChzLmJNYXJrc1t1XSkscy5iTWFya3NbdV09eixfPSh6PXo8WT9zLnNraXBTcGFjZXMoeik6eik+PVksdy5wdXNoKHMudFNoaWZ0W3VdKSxzLnRTaGlmdFt1XT16LXMuYk1hcmtzW3VdO2ZvcihqPXMucGFyZW50VHlwZSxzLnBhcmVudFR5cGU9ImJsb2NrcXVvdGUiLHMudG9rZW5zLnB1c2goe3R5cGU6ImJsb2NrcXVvdGVfb3BlbiIsbGluZXM6TD1bbywwXSxsZXZlbDpzLmxldmVsKyt9KSxzLnBhcnNlci50b2tlbml6ZShzLG8sdSkscy50b2tlbnMucHVzaCh7dHlwZToiYmxvY2txdW90ZV9jbG9zZSIsbGV2ZWw6LS1zLmxldmVsfSkscy5wYXJlbnRUeXBlPWosTFsxXT1zLmxpbmUsJD0wOyQ8dy5sZW5ndGg7JCsrKXMuYk1hcmtzWyQrb109eFskXSxzLnRTaGlmdFskK29dPXdbJF07cmV0dXJuIHMuYmxrSW5kZW50PUMsITB9LFsicGFyYWdyYXBoIiwiYmxvY2txdW90ZSIsImxpc3QiXV0sWyJociIsZnVuY3Rpb24gaHIocyxvLGksYSl7dmFyIHUsXyx3LHg9cy5iTWFya3Nbb10sQz1zLmVNYXJrc1tvXTtpZigoeCs9cy50U2hpZnRbb10pPkMpcmV0dXJuITE7aWYoNDIhPT0odT1zLnNyYy5jaGFyQ29kZUF0KHgrKykpJiY0NSE9PXUmJjk1IT09dSlyZXR1cm4hMTtmb3IoXz0xO3g8Qzspe2lmKCh3PXMuc3JjLmNoYXJDb2RlQXQoeCsrKSkhPT11JiYzMiE9PXcpcmV0dXJuITE7dz09PXUmJl8rK31yZXR1cm4hKF88MykmJihhfHwocy5saW5lPW8rMSxzLnRva2Vucy5wdXNoKHt0eXBlOiJociIsbGluZXM6W28scy5saW5lXSxsZXZlbDpzLmxldmVsfSkpLCEwKX0sWyJwYXJhZ3JhcGgiLCJibG9ja3F1b3RlIiwibGlzdCJdXSxbImxpc3QiLGZ1bmN0aW9uIGluZGV4X2Jyb3dzZXJfbGlzdChzLG8saSxhKXt2YXIgdSxfLHcseCxDLGosTCxCLCQsVixVLHosWSxaLGVlLGllLGFlLGNlLGxlLHBlLGRlLGZlPSEwO2lmKChCPXNraXBPcmRlcmVkTGlzdE1hcmtlcihzLG8pKT49MCl6PSEwO2Vsc2V7aWYoISgoQj1za2lwQnVsbGV0TGlzdE1hcmtlcihzLG8pKT49MCkpcmV0dXJuITE7ej0hMX1pZihzLmxldmVsPj1zLm9wdGlvbnMubWF4TmVzdGluZylyZXR1cm4hMTtpZihVPXMuc3JjLmNoYXJDb2RlQXQoQi0xKSxhKXJldHVybiEwO2ZvcihaPXMudG9rZW5zLmxlbmd0aCx6PyhMPXMuYk1hcmtzW29dK3MudFNoaWZ0W29dLFY9TnVtYmVyKHMuc3JjLnN1YnN0cihMLEItTC0xKSkscy50b2tlbnMucHVzaCh7dHlwZToib3JkZXJlZF9saXN0X29wZW4iLG9yZGVyOlYsbGluZXM6aWU9W28sMF0sbGV2ZWw6cy5sZXZlbCsrfSkpOnMudG9rZW5zLnB1c2goe3R5cGU6ImJ1bGxldF9saXN0X29wZW4iLGxpbmVzOmllPVtvLDBdLGxldmVsOnMubGV2ZWwrK30pLHU9byxlZT0hMSxjZT1zLnBhcnNlci5ydWxlci5nZXRSdWxlcygibGlzdCIpOyEoISh1PGkpfHwoKCQ9KFk9cy5za2lwU3BhY2VzKEIpKT49cy5lTWFya3NbdV0/MTpZLUIpPjQmJigkPTEpLCQ8MSYmKCQ9MSksXz1CLXMuYk1hcmtzW3VdKyQscy50b2tlbnMucHVzaCh7dHlwZToibGlzdF9pdGVtX29wZW4iLGxpbmVzOmFlPVtvLDBdLGxldmVsOnMubGV2ZWwrK30pLHg9cy5ibGtJbmRlbnQsQz1zLnRpZ2h0LHc9cy50U2hpZnRbb10saj1zLnBhcmVudFR5cGUscy50U2hpZnRbb109WS1zLmJNYXJrc1tvXSxzLmJsa0luZGVudD1fLHMudGlnaHQ9ITAscy5wYXJlbnRUeXBlPSJsaXN0IixzLnBhcnNlci50b2tlbml6ZShzLG8saSwhMCkscy50aWdodCYmIWVlfHwoZmU9ITEpLGVlPXMubGluZS1vPjEmJnMuaXNFbXB0eShzLmxpbmUtMSkscy5ibGtJbmRlbnQ9eCxzLnRTaGlmdFtvXT13LHMudGlnaHQ9QyxzLnBhcmVudFR5cGU9aixzLnRva2Vucy5wdXNoKHt0eXBlOiJsaXN0X2l0ZW1fY2xvc2UiLGxldmVsOi0tcy5sZXZlbH0pLHU9bz1zLmxpbmUsYWVbMV09dSxZPXMuYk1hcmtzW29dLHU+PWkpfHxzLmlzRW1wdHkodSl8fHMudFNoaWZ0W3VdPHMuYmxrSW5kZW50KTspe2ZvcihkZT0hMSxsZT0wLHBlPWNlLmxlbmd0aDtsZTxwZTtsZSsrKWlmKGNlW2xlXShzLHUsaSwhMCkpe2RlPSEwO2JyZWFrfWlmKGRlKWJyZWFrO2lmKHope2lmKChCPXNraXBPcmRlcmVkTGlzdE1hcmtlcihzLHUpKTwwKWJyZWFrfWVsc2UgaWYoKEI9c2tpcEJ1bGxldExpc3RNYXJrZXIocyx1KSk8MClicmVhaztpZihVIT09cy5zcmMuY2hhckNvZGVBdChCLTEpKWJyZWFrfXJldHVybiBzLnRva2Vucy5wdXNoKHt0eXBlOno/Im9yZGVyZWRfbGlzdF9jbG9zZSI6ImJ1bGxldF9saXN0X2Nsb3NlIixsZXZlbDotLXMubGV2ZWx9KSxpZVsxXT11LHMubGluZT11LGZlJiZmdW5jdGlvbiBtYXJrVGlnaHRQYXJhZ3JhcGhzKHMsbyl7dmFyIGksYSx1PXMubGV2ZWwrMjtmb3IoaT1vKzIsYT1zLnRva2Vucy5sZW5ndGgtMjtpPGE7aSsrKXMudG9rZW5zW2ldLmxldmVsPT09dSYmInBhcmFncmFwaF9vcGVuIj09PXMudG9rZW5zW2ldLnR5cGUmJihzLnRva2Vuc1tpKzJdLnRpZ2h0PSEwLHMudG9rZW5zW2ldLnRpZ2h0PSEwLGkrPTIpfShzLFopLCEwfSxbInBhcmFncmFwaCIsImJsb2NrcXVvdGUiXV0sWyJmb290bm90ZSIsZnVuY3Rpb24gZm9vdG5vdGUocyxvLGksYSl7dmFyIHUsXyx3LHgsQyxqPXMuYk1hcmtzW29dK3MudFNoaWZ0W29dLEw9cy5lTWFya3Nbb107aWYoais0PkwpcmV0dXJuITE7aWYoOTEhPT1zLnNyYy5jaGFyQ29kZUF0KGopKXJldHVybiExO2lmKDk0IT09cy5zcmMuY2hhckNvZGVBdChqKzEpKXJldHVybiExO2lmKHMubGV2ZWw+PXMub3B0aW9ucy5tYXhOZXN0aW5nKXJldHVybiExO2Zvcih4PWorMjt4PEw7eCsrKXtpZigzMj09PXMuc3JjLmNoYXJDb2RlQXQoeCkpcmV0dXJuITE7aWYoOTM9PT1zLnNyYy5jaGFyQ29kZUF0KHgpKWJyZWFrfXJldHVybiB4IT09aisyJiYoISh4KzE+PUx8fDU4IT09cy5zcmMuY2hhckNvZGVBdCgrK3gpKSYmKGF8fCh4Kysscy5lbnYuZm9vdG5vdGVzfHwocy5lbnYuZm9vdG5vdGVzPXt9KSxzLmVudi5mb290bm90ZXMucmVmc3x8KHMuZW52LmZvb3Rub3Rlcy5yZWZzPXt9KSxDPXMuc3JjLnNsaWNlKGorMix4LTIpLHMuZW52LmZvb3Rub3Rlcy5yZWZzWyI6IitDXT0tMSxzLnRva2Vucy5wdXNoKHt0eXBlOiJmb290bm90ZV9yZWZlcmVuY2Vfb3BlbiIsbGFiZWw6QyxsZXZlbDpzLmxldmVsKyt9KSx1PXMuYk1hcmtzW29dLF89cy50U2hpZnRbb10sdz1zLnBhcmVudFR5cGUscy50U2hpZnRbb109cy5za2lwU3BhY2VzKHgpLXgscy5iTWFya3Nbb109eCxzLmJsa0luZGVudCs9NCxzLnBhcmVudFR5cGU9ImZvb3Rub3RlIixzLnRTaGlmdFtvXTxzLmJsa0luZGVudCYmKHMudFNoaWZ0W29dKz1zLmJsa0luZGVudCxzLmJNYXJrc1tvXS09cy5ibGtJbmRlbnQpLHMucGFyc2VyLnRva2VuaXplKHMsbyxpLCEwKSxzLnBhcmVudFR5cGU9dyxzLmJsa0luZGVudC09NCxzLnRTaGlmdFtvXT1fLHMuYk1hcmtzW29dPXUscy50b2tlbnMucHVzaCh7dHlwZToiZm9vdG5vdGVfcmVmZXJlbmNlX2Nsb3NlIixsZXZlbDotLXMubGV2ZWx9KSksITApKX0sWyJwYXJhZ3JhcGgiXV0sWyJoZWFkaW5nIixmdW5jdGlvbiBoZWFkaW5nKHMsbyxpLGEpe3ZhciB1LF8sdyx4PXMuYk1hcmtzW29dK3MudFNoaWZ0W29dLEM9cy5lTWFya3Nbb107aWYoeD49QylyZXR1cm4hMTtpZigzNSE9PSh1PXMuc3JjLmNoYXJDb2RlQXQoeCkpfHx4Pj1DKXJldHVybiExO2ZvcihfPTEsdT1zLnNyYy5jaGFyQ29kZUF0KCsreCk7MzU9PT11JiZ4PEMmJl88PTY7KV8rKyx1PXMuc3JjLmNoYXJDb2RlQXQoKyt4KTtyZXR1cm4hKF8+Nnx8eDxDJiYzMiE9PXUpJiYoYXx8KEM9cy5za2lwQ2hhcnNCYWNrKEMsMzIseCksKHc9cy5za2lwQ2hhcnNCYWNrKEMsMzUseCkpPngmJjMyPT09cy5zcmMuY2hhckNvZGVBdCh3LTEpJiYoQz13KSxzLmxpbmU9bysxLHMudG9rZW5zLnB1c2goe3R5cGU6ImhlYWRpbmdfb3BlbiIsaExldmVsOl8sbGluZXM6W28scy5saW5lXSxsZXZlbDpzLmxldmVsfSkseDxDJiZzLnRva2Vucy5wdXNoKHt0eXBlOiJpbmxpbmUiLGNvbnRlbnQ6cy5zcmMuc2xpY2UoeCxDKS50cmltKCksbGV2ZWw6cy5sZXZlbCsxLGxpbmVzOltvLHMubGluZV0sY2hpbGRyZW46W119KSxzLnRva2Vucy5wdXNoKHt0eXBlOiJoZWFkaW5nX2Nsb3NlIixoTGV2ZWw6XyxsZXZlbDpzLmxldmVsfSkpLCEwKX0sWyJwYXJhZ3JhcGgiLCJibG9ja3F1b3RlIl1dLFsibGhlYWRpbmciLGZ1bmN0aW9uIGxoZWFkaW5nKHMsbyxpKXt2YXIgYSx1LF8sdz1vKzE7cmV0dXJuISh3Pj1pKSYmKCEocy50U2hpZnRbd108cy5ibGtJbmRlbnQpJiYoIShzLnRTaGlmdFt3XS1zLmJsa0luZGVudD4zKSYmKCEoKHU9cy5iTWFya3Nbd10rcy50U2hpZnRbd10pPj0oXz1zLmVNYXJrc1t3XSkpJiYoKDQ1PT09KGE9cy5zcmMuY2hhckNvZGVBdCh1KSl8fDYxPT09YSkmJih1PXMuc2tpcENoYXJzKHUsYSksISgodT1zLnNraXBTcGFjZXModSkpPF8pJiYodT1zLmJNYXJrc1tvXStzLnRTaGlmdFtvXSxzLmxpbmU9dysxLHMudG9rZW5zLnB1c2goe3R5cGU6ImhlYWRpbmdfb3BlbiIsaExldmVsOjYxPT09YT8xOjIsbGluZXM6W28scy5saW5lXSxsZXZlbDpzLmxldmVsfSkscy50b2tlbnMucHVzaCh7dHlwZToiaW5saW5lIixjb250ZW50OnMuc3JjLnNsaWNlKHUscy5lTWFya3Nbb10pLnRyaW0oKSxsZXZlbDpzLmxldmVsKzEsbGluZXM6W28scy5saW5lLTFdLGNoaWxkcmVuOltdfSkscy50b2tlbnMucHVzaCh7dHlwZToiaGVhZGluZ19jbG9zZSIsaExldmVsOjYxPT09YT8xOjIsbGV2ZWw6cy5sZXZlbH0pLCEwKSkpKSkpfV0sWyJodG1sYmxvY2siLGZ1bmN0aW9uIGh0bWxibG9jayhzLG8saSxhKXt2YXIgdSxfLHcseD1zLmJNYXJrc1tvXSxDPXMuZU1hcmtzW29dLGo9cy50U2hpZnRbb107aWYoeCs9aiwhcy5vcHRpb25zLmh0bWwpcmV0dXJuITE7aWYoaj4zfHx4KzI+PUMpcmV0dXJuITE7aWYoNjAhPT1zLnNyYy5jaGFyQ29kZUF0KHgpKXJldHVybiExO2lmKDMzPT09KHU9cy5zcmMuY2hhckNvZGVBdCh4KzEpKXx8NjM9PT11KXtpZihhKXJldHVybiEwfWVsc2V7aWYoNDchPT11JiYhZnVuY3Rpb24gaXNMZXR0ZXIkMShzKXt2YXIgbz0zMnxzO3JldHVybiBvPj05NyYmbzw9MTIyfSh1KSlyZXR1cm4hMTtpZig0Nz09PXUpe2lmKCEoXz1zLnNyYy5zbGljZSh4LEMpLm1hdGNoKE9DKSkpcmV0dXJuITF9ZWxzZSBpZighKF89cy5zcmMuc2xpY2UoeCxDKS5tYXRjaChrQykpKXJldHVybiExO2lmKCEwIT09eENbX1sxXS50b0xvd2VyQ2FzZSgpXSlyZXR1cm4hMTtpZihhKXJldHVybiEwfWZvcih3PW8rMTt3PHMubGluZU1heCYmIXMuaXNFbXB0eSh3KTspdysrO3JldHVybiBzLmxpbmU9dyxzLnRva2Vucy5wdXNoKHt0eXBlOiJodG1sYmxvY2siLGxldmVsOnMubGV2ZWwsbGluZXM6W28scy5saW5lXSxjb250ZW50OnMuZ2V0TGluZXMobyx3LDAsITApfSksITB9LFsicGFyYWdyYXBoIiwiYmxvY2txdW90ZSJdXSxbInRhYmxlIixmdW5jdGlvbiB0YWJsZShzLG8saSxhKXt2YXIgdSxfLHcseCxDLGosTCxCLCQsVixVO2lmKG8rMj5pKXJldHVybiExO2lmKEM9bysxLHMudFNoaWZ0W0NdPHMuYmxrSW5kZW50KXJldHVybiExO2lmKCh3PXMuYk1hcmtzW0NdK3MudFNoaWZ0W0NdKT49cy5lTWFya3NbQ10pcmV0dXJuITE7aWYoMTI0IT09KHU9cy5zcmMuY2hhckNvZGVBdCh3KSkmJjQ1IT09dSYmNTghPT11KXJldHVybiExO2lmKF89aW5kZXhfYnJvd3Nlcl9nZXRMaW5lKHMsbysxKSwhL15bLTp8IF0rJC8udGVzdChfKSlyZXR1cm4hMTtpZigoaj1fLnNwbGl0KCJ8IikpPD0yKXJldHVybiExO2ZvcihCPVtdLHg9MDt4PGoubGVuZ3RoO3grKyl7aWYoISgkPWpbeF0udHJpbSgpKSl7aWYoMD09PXh8fHg9PT1qLmxlbmd0aC0xKWNvbnRpbnVlO3JldHVybiExfWlmKCEvXjo/LSs6PyQvLnRlc3QoJCkpcmV0dXJuITE7NTg9PT0kLmNoYXJDb2RlQXQoJC5sZW5ndGgtMSk/Qi5wdXNoKDU4PT09JC5jaGFyQ29kZUF0KDApPyJjZW50ZXIiOiJyaWdodCIpOjU4PT09JC5jaGFyQ29kZUF0KDApP0IucHVzaCgibGVmdCIpOkIucHVzaCgiIil9aWYoLTE9PT0oXz1pbmRleF9icm93c2VyX2dldExpbmUocyxvKS50cmltKCkpLmluZGV4T2YoInwiKSlyZXR1cm4hMTtpZihqPV8ucmVwbGFjZSgvXlx8fFx8JC9nLCIiKS5zcGxpdCgifCIpLEIubGVuZ3RoIT09ai5sZW5ndGgpcmV0dXJuITE7aWYoYSlyZXR1cm4hMDtmb3Iocy50b2tlbnMucHVzaCh7dHlwZToidGFibGVfb3BlbiIsbGluZXM6Vj1bbywwXSxsZXZlbDpzLmxldmVsKyt9KSxzLnRva2Vucy5wdXNoKHt0eXBlOiJ0aGVhZF9vcGVuIixsaW5lczpbbyxvKzFdLGxldmVsOnMubGV2ZWwrK30pLHMudG9rZW5zLnB1c2goe3R5cGU6InRyX29wZW4iLGxpbmVzOltvLG8rMV0sbGV2ZWw6cy5sZXZlbCsrfSkseD0wO3g8ai5sZW5ndGg7eCsrKXMudG9rZW5zLnB1c2goe3R5cGU6InRoX29wZW4iLGFsaWduOkJbeF0sbGluZXM6W28sbysxXSxsZXZlbDpzLmxldmVsKyt9KSxzLnRva2Vucy5wdXNoKHt0eXBlOiJpbmxpbmUiLGNvbnRlbnQ6alt4XS50cmltKCksbGluZXM6W28sbysxXSxsZXZlbDpzLmxldmVsLGNoaWxkcmVuOltdfSkscy50b2tlbnMucHVzaCh7dHlwZToidGhfY2xvc2UiLGxldmVsOi0tcy5sZXZlbH0pO2ZvcihzLnRva2Vucy5wdXNoKHt0eXBlOiJ0cl9jbG9zZSIsbGV2ZWw6LS1zLmxldmVsfSkscy50b2tlbnMucHVzaCh7dHlwZToidGhlYWRfY2xvc2UiLGxldmVsOi0tcy5sZXZlbH0pLHMudG9rZW5zLnB1c2goe3R5cGU6InRib2R5X29wZW4iLGxpbmVzOlU9W28rMiwwXSxsZXZlbDpzLmxldmVsKyt9KSxDPW8rMjtDPGkmJiEocy50U2hpZnRbQ108cy5ibGtJbmRlbnQpJiYtMSE9PShfPWluZGV4X2Jyb3dzZXJfZ2V0TGluZShzLEMpLnRyaW0oKSkuaW5kZXhPZigifCIpO0MrKyl7Zm9yKGo9Xy5yZXBsYWNlKC9eXHx8XHwkL2csIiIpLnNwbGl0KCJ8Iikscy50b2tlbnMucHVzaCh7dHlwZToidHJfb3BlbiIsbGV2ZWw6cy5sZXZlbCsrfSkseD0wO3g8ai5sZW5ndGg7eCsrKXMudG9rZW5zLnB1c2goe3R5cGU6InRkX29wZW4iLGFsaWduOkJbeF0sbGV2ZWw6cy5sZXZlbCsrfSksTD1qW3hdLnN1YnN0cmluZygxMjQ9PT1qW3hdLmNoYXJDb2RlQXQoMCk/MTowLDEyND09PWpbeF0uY2hhckNvZGVBdChqW3hdLmxlbmd0aC0xKT9qW3hdLmxlbmd0aC0xOmpbeF0ubGVuZ3RoKS50cmltKCkscy50b2tlbnMucHVzaCh7dHlwZToiaW5saW5lIixjb250ZW50OkwsbGV2ZWw6cy5sZXZlbCxjaGlsZHJlbjpbXX0pLHMudG9rZW5zLnB1c2goe3R5cGU6InRkX2Nsb3NlIixsZXZlbDotLXMubGV2ZWx9KTtzLnRva2Vucy5wdXNoKHt0eXBlOiJ0cl9jbG9zZSIsbGV2ZWw6LS1zLmxldmVsfSl9cmV0dXJuIHMudG9rZW5zLnB1c2goe3R5cGU6InRib2R5X2Nsb3NlIixsZXZlbDotLXMubGV2ZWx9KSxzLnRva2Vucy5wdXNoKHt0eXBlOiJ0YWJsZV9jbG9zZSIsbGV2ZWw6LS1zLmxldmVsfSksVlsxXT1VWzFdPUMscy5saW5lPUMsITB9LFsicGFyYWdyYXBoIl1dLFsiZGVmbGlzdCIsZnVuY3Rpb24gZGVmbGlzdChzLG8saSxhKXt2YXIgdSxfLHcseCxDLGosTCxCLCQsVixVLHosWSxaO2lmKGEpcmV0dXJuIShzLmRkSW5kZW50PDApJiZza2lwTWFya2VyKHMsbyk+PTA7aWYoTD1vKzEscy5pc0VtcHR5KEwpJiYrK0w+aSlyZXR1cm4hMTtpZihzLnRTaGlmdFtMXTxzLmJsa0luZGVudClyZXR1cm4hMTtpZigodT1za2lwTWFya2VyKHMsTCkpPDApcmV0dXJuITE7aWYocy5sZXZlbD49cy5vcHRpb25zLm1heE5lc3RpbmcpcmV0dXJuITE7aj1zLnRva2Vucy5sZW5ndGgscy50b2tlbnMucHVzaCh7dHlwZToiZGxfb3BlbiIsbGluZXM6Qz1bbywwXSxsZXZlbDpzLmxldmVsKyt9KSx3PW8sXz1MO2U6Zm9yKDs7KXtmb3IoWj0hMCxZPSExLHMudG9rZW5zLnB1c2goe3R5cGU6ImR0X29wZW4iLGxpbmVzOlt3LHddLGxldmVsOnMubGV2ZWwrK30pLHMudG9rZW5zLnB1c2goe3R5cGU6ImlubGluZSIsY29udGVudDpzLmdldExpbmVzKHcsdysxLHMuYmxrSW5kZW50LCExKS50cmltKCksbGV2ZWw6cy5sZXZlbCsxLGxpbmVzOlt3LHddLGNoaWxkcmVuOltdfSkscy50b2tlbnMucHVzaCh7dHlwZToiZHRfY2xvc2UiLGxldmVsOi0tcy5sZXZlbH0pOzspe2lmKHMudG9rZW5zLnB1c2goe3R5cGU6ImRkX29wZW4iLGxpbmVzOng9W0wsMF0sbGV2ZWw6cy5sZXZlbCsrfSksej1zLnRpZ2h0LCQ9cy5kZEluZGVudCxCPXMuYmxrSW5kZW50LFU9cy50U2hpZnRbX10sVj1zLnBhcmVudFR5cGUscy5ibGtJbmRlbnQ9cy5kZEluZGVudD1zLnRTaGlmdFtfXSsyLHMudFNoaWZ0W19dPXUtcy5iTWFya3NbX10scy50aWdodD0hMCxzLnBhcmVudFR5cGU9ImRlZmxpc3QiLHMucGFyc2VyLnRva2VuaXplKHMsXyxpLCEwKSxzLnRpZ2h0JiYhWXx8KFo9ITEpLFk9cy5saW5lLV8+MSYmcy5pc0VtcHR5KHMubGluZS0xKSxzLnRTaGlmdFtfXT1VLHMudGlnaHQ9eixzLnBhcmVudFR5cGU9VixzLmJsa0luZGVudD1CLHMuZGRJbmRlbnQ9JCxzLnRva2Vucy5wdXNoKHt0eXBlOiJkZF9jbG9zZSIsbGV2ZWw6LS1zLmxldmVsfSkseFsxXT1MPXMubGluZSxMPj1pKWJyZWFrIGU7aWYocy50U2hpZnRbTF08cy5ibGtJbmRlbnQpYnJlYWsgZTtpZigodT1za2lwTWFya2VyKHMsTCkpPDApYnJlYWs7Xz1MfWlmKEw+PWkpYnJlYWs7aWYodz1MLHMuaXNFbXB0eSh3KSlicmVhaztpZihzLnRTaGlmdFt3XTxzLmJsa0luZGVudClicmVhaztpZigoXz13KzEpPj1pKWJyZWFrO2lmKHMuaXNFbXB0eShfKSYmXysrLF8+PWkpYnJlYWs7aWYocy50U2hpZnRbX108cy5ibGtJbmRlbnQpYnJlYWs7aWYoKHU9c2tpcE1hcmtlcihzLF8pKTwwKWJyZWFrfXJldHVybiBzLnRva2Vucy5wdXNoKHt0eXBlOiJkbF9jbG9zZSIsbGV2ZWw6LS1zLmxldmVsfSksQ1sxXT1MLHMubGluZT1MLFomJmZ1bmN0aW9uIG1hcmtUaWdodFBhcmFncmFwaHMkMShzLG8pe3ZhciBpLGEsdT1zLmxldmVsKzI7Zm9yKGk9bysyLGE9cy50b2tlbnMubGVuZ3RoLTI7aTxhO2krKylzLnRva2Vuc1tpXS5sZXZlbD09PXUmJiJwYXJhZ3JhcGhfb3BlbiI9PT1zLnRva2Vuc1tpXS50eXBlJiYocy50b2tlbnNbaSsyXS50aWdodD0hMCxzLnRva2Vuc1tpXS50aWdodD0hMCxpKz0yKX0ocyxqKSwhMH0sWyJwYXJhZ3JhcGgiXV0sWyJwYXJhZ3JhcGgiLGZ1bmN0aW9uIHBhcmFncmFwaChzLG8pe3ZhciBpLGEsdSxfLHcseCxDPW8rMTtpZihDPChpPXMubGluZU1heCkmJiFzLmlzRW1wdHkoQykpZm9yKHg9cy5wYXJzZXIucnVsZXIuZ2V0UnVsZXMoInBhcmFncmFwaCIpO0M8aSYmIXMuaXNFbXB0eShDKTtDKyspaWYoIShzLnRTaGlmdFtDXS1zLmJsa0luZGVudD4zKSl7Zm9yKHU9ITEsXz0wLHc9eC5sZW5ndGg7Xzx3O18rKylpZih4W19dKHMsQyxpLCEwKSl7dT0hMDticmVha31pZih1KWJyZWFrfXJldHVybiBhPXMuZ2V0TGluZXMobyxDLHMuYmxrSW5kZW50LCExKS50cmltKCkscy5saW5lPUMsYS5sZW5ndGgmJihzLnRva2Vucy5wdXNoKHt0eXBlOiJwYXJhZ3JhcGhfb3BlbiIsdGlnaHQ6ITEsbGluZXM6W28scy5saW5lXSxsZXZlbDpzLmxldmVsfSkscy50b2tlbnMucHVzaCh7dHlwZToiaW5saW5lIixjb250ZW50OmEsbGV2ZWw6cy5sZXZlbCsxLGxpbmVzOltvLHMubGluZV0sY2hpbGRyZW46W119KSxzLnRva2Vucy5wdXNoKHt0eXBlOiJwYXJhZ3JhcGhfY2xvc2UiLHRpZ2h0OiExLGxldmVsOnMubGV2ZWx9KSksITB9XV07ZnVuY3Rpb24gUGFyc2VyQmxvY2soKXt0aGlzLnJ1bGVyPW5ldyBSdWxlcjtmb3IodmFyIHM9MDtzPENDLmxlbmd0aDtzKyspdGhpcy5ydWxlci5wdXNoKENDW3NdWzBdLENDW3NdWzFdLHthbHQ6KENDW3NdWzJdfHxbXSkuc2xpY2UoKX0pfVBhcnNlckJsb2NrLnByb3RvdHlwZS50b2tlbml6ZT1mdW5jdGlvbihzLG8saSl7Zm9yKHZhciBhLHU9dGhpcy5ydWxlci5nZXRSdWxlcygiIiksXz11Lmxlbmd0aCx3PW8seD0hMTt3PGkmJihzLmxpbmU9dz1zLnNraXBFbXB0eUxpbmVzKHcpLCEodz49aSkpJiYhKHMudFNoaWZ0W3ddPHMuYmxrSW5kZW50KTspe2ZvcihhPTA7YTxfJiYhdVthXShzLHcsaSwhMSk7YSsrKTtpZihzLnRpZ2h0PSF4LHMuaXNFbXB0eShzLmxpbmUtMSkmJih4PSEwKSwodz1zLmxpbmUpPGkmJnMuaXNFbXB0eSh3KSl7aWYoeD0hMCwrK3c8aSYmImxpc3QiPT09cy5wYXJlbnRUeXBlJiZzLmlzRW1wdHkodykpYnJlYWs7cy5saW5lPXd9fX07dmFyIEFDPS9bXG5cdF0vZyxqQz0vXHJbXG5cdTAwODVdfFtcdTI0MjRcdTIwMjhcdTAwODVdL2csSUM9L1x1MDBhMC9nO2Z1bmN0aW9uIGlzVGVybWluYXRvckNoYXIocyl7c3dpdGNoKHMpe2Nhc2UgMTA6Y2FzZSA5MjpjYXNlIDk2OmNhc2UgNDI6Y2FzZSA5NTpjYXNlIDk0OmNhc2UgOTE6Y2FzZSA5MzpjYXNlIDMzOmNhc2UgMzg6Y2FzZSA2MDpjYXNlIDYyOmNhc2UgMTIzOmNhc2UgMTI1OmNhc2UgMzY6Y2FzZSAzNzpjYXNlIDY0OmNhc2UgMTI2OmNhc2UgNDM6Y2FzZSA2MTpjYXNlIDU4OnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fVBhcnNlckJsb2NrLnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbihzLG8saSxhKXt2YXIgdSxfPTAsdz0wO2lmKCFzKXJldHVybltdOyhzPShzPXMucmVwbGFjZShJQywiICIpKS5yZXBsYWNlKGpDLCJcbiIpKS5pbmRleE9mKCJcdCIpPj0wJiYocz1zLnJlcGxhY2UoQUMsKGZ1bmN0aW9uKG8saSl7dmFyIGE7cmV0dXJuIDEwPT09cy5jaGFyQ29kZUF0KGkpPyhfPWkrMSx3PTAsbyk6KGE9IiAgICAiLnNsaWNlKChpLV8tdyklNCksdz1pLV8rMSxhKX0pKSksdT1uZXcgU3RhdGVCbG9jayhzLHRoaXMsbyxpLGEpLHRoaXMudG9rZW5pemUodSx1LmxpbmUsdS5saW5lTWF4KX07Zm9yKHZhciBQQz1bXSxUQz0wO1RDPDI1NjtUQysrKVBDLnB1c2goMCk7ZnVuY3Rpb24gaXNBbHBoYU51bShzKXtyZXR1cm4gcz49NDgmJnM8PTU3fHxzPj02NSYmczw9OTB8fHM+PTk3JiZzPD0xMjJ9ZnVuY3Rpb24gc2NhbkRlbGltcyhzLG8pe3ZhciBpLGEsdSxfPW8sdz0hMCx4PSEwLEM9cy5wb3NNYXgsaj1zLnNyYy5jaGFyQ29kZUF0KG8pO2ZvcihpPW8+MD9zLnNyYy5jaGFyQ29kZUF0KG8tMSk6LTE7XzxDJiZzLnNyYy5jaGFyQ29kZUF0KF8pPT09ajspXysrO3JldHVybiBfPj1DJiYodz0hMSksKHU9Xy1vKT49ND93PXg9ITE6KDMyIT09KGE9XzxDP3Muc3JjLmNoYXJDb2RlQXQoXyk6LTEpJiYxMCE9PWF8fCh3PSExKSwzMiE9PWkmJjEwIT09aXx8KHg9ITEpLDk1PT09aiYmKGlzQWxwaGFOdW0oaSkmJih3PSExKSxpc0FscGhhTnVtKGEpJiYoeD0hMSkpKSx7Y2FuX29wZW46dyxjYW5fY2xvc2U6eCxkZWxpbXM6dX19IlxcIVwiIyQlJicoKSorLC4vOjs8PT4/QFtdXl9ge3x9fi0iLnNwbGl0KCIiKS5mb3JFYWNoKChmdW5jdGlvbihzKXtQQ1tzLmNoYXJDb2RlQXQoMCldPTF9KSk7dmFyIE5DPS9cXChbIFxcISIjJCUmJygpKissLlwvOjs8PT4/QFtcXV5fYHt8fX4tXSkvZzt2YXIgTUM9L1xcKFsgXFwhIiMkJSYnKCkqKywuXC86Ozw9Pj9AW1xdXl9ge3x9fi1dKS9nO3ZhciBSQz1bImNvYXAiLCJkb2kiLCJqYXZhc2NyaXB0IiwiYWFhIiwiYWFhcyIsImFib3V0IiwiYWNhcCIsImNhcCIsImNpZCIsImNyaWQiLCJkYXRhIiwiZGF2IiwiZGljdCIsImRucyIsImZpbGUiLCJmdHAiLCJnZW8iLCJnbyIsImdvcGhlciIsImgzMjMiLCJodHRwIiwiaHR0cHMiLCJpYXgiLCJpY2FwIiwiaW0iLCJpbWFwIiwiaW5mbyIsImlwcCIsImlyaXMiLCJpcmlzLmJlZXAiLCJpcmlzLnhwYyIsImlyaXMueHBjcyIsImlyaXMubHd6IiwibGRhcCIsIm1haWx0byIsIm1pZCIsIm1zcnAiLCJtc3JwcyIsIm10cXAiLCJtdXBkYXRlIiwibmV3cyIsIm5mcyIsIm5pIiwibmloIiwibm50cCIsIm9wYXF1ZWxvY2t0b2tlbiIsInBvcCIsInByZXMiLCJydHNwIiwic2VydmljZSIsInNlc3Npb24iLCJzaHR0cCIsInNpZXZlIiwic2lwIiwic2lwcyIsInNtcyIsInNubXAiLCJzb2FwLmJlZXAiLCJzb2FwLmJlZXBzIiwidGFnIiwidGVsIiwidGVsbmV0IiwidGZ0cCIsInRoaXNtZXNzYWdlIiwidG4zMjcwIiwidGlwIiwidHYiLCJ1cm4iLCJ2ZW1taSIsIndzIiwid3NzIiwieGNvbiIsInhjb24tdXNlcmlkIiwieG1scnBjLmJlZXAiLCJ4bWxycGMuYmVlcHMiLCJ4bXBwIiwiejM5LjUwciIsInozOS41MHMiLCJhZGl1bXh0cmEiLCJhZnAiLCJhZnMiLCJhaW0iLCJhcHQiLCJhdHRhY2htZW50IiwiYXciLCJiZXNoYXJlIiwiYml0Y29pbiIsImJvbG8iLCJjYWxsdG8iLCJjaHJvbWUiLCJjaHJvbWUtZXh0ZW5zaW9uIiwiY29tLWV2ZW50YnJpdGUtYXR0ZW5kZWUiLCJjb250ZW50IiwiY3ZzIiwiZGxuYS1wbGF5c2luZ2xlIiwiZGxuYS1wbGF5Y29udGFpbmVyIiwiZHRuIiwiZHZiIiwiZWQyayIsImZhY2V0aW1lIiwiZmVlZCIsImZpbmdlciIsImZpc2giLCJnZyIsImdpdCIsImdpem1vcHJvamVjdCIsImd0YWxrIiwiaGNwIiwiaWNvbiIsImlwbiIsImlyYyIsImlyYzYiLCJpcmNzIiwiaXRtcyIsImphciIsImptcyIsImtleXBhcmMiLCJsYXN0Zm0iLCJsZGFwcyIsIm1hZ25ldCIsIm1hcHMiLCJtYXJrZXQiLCJtZXNzYWdlIiwibW1zIiwibXMtaGVscCIsIm1zbmltIiwibXVtYmxlIiwibXZuIiwibm90ZXMiLCJvaWQiLCJwYWxtIiwicGFwYXJhenppIiwicGxhdGZvcm0iLCJwcm94eSIsInBzeWMiLCJxdWVyeSIsInJlcyIsInJlc291cmNlIiwicm1pIiwicnN5bmMiLCJydG1wIiwic2Vjb25kbGlmZSIsInNmdHAiLCJzZ24iLCJza3lwZSIsInNtYiIsInNvbGRhdCIsInNwb3RpZnkiLCJzc2giLCJzdGVhbSIsInN2biIsInRlYW1zcGVhayIsInRoaW5ncyIsInVkcCIsInVucmVhbCIsInV0MjAwNCIsInZlbnRyaWxvIiwidmlldy1zb3VyY2UiLCJ3ZWJjYWwiLCJ3dGFpIiwid3ljaXd5ZyIsInhmaXJlIiwieHJpIiwieW1zZ3IiXSxEQz0vXjwoW2EtekEtWjAtOS4hIyQlJicqK1wvPT9eX2B7fH1+LV0rQFthLXpBLVowLTldKD86W2EtekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pPyg/OlwuW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KSopPi8sTEM9L148KFthLXpBLVouXC1dezEsMjV9KTooW148Plx4MDAtXHgyMF0qKT4vO2Z1bmN0aW9uIHJlcGxhY2UkMShzLG8pe3JldHVybiBzPXMuc291cmNlLG89b3x8IiIsZnVuY3Rpb24gc2VsZihpLGEpe3JldHVybiBpPyhhPWEuc291cmNlfHxhLHM9cy5yZXBsYWNlKGksYSksc2VsZik6bmV3IFJlZ0V4cChzLG8pfX12YXIgRkM9cmVwbGFjZSQxKC8oPzp1bnF1b3RlZHxzaW5nbGVfcXVvdGVkfGRvdWJsZV9xdW90ZWQpLykoInVucXVvdGVkIiwvW14iJz08PmBceDAwLVx4MjBdKy8pKCJzaW5nbGVfcXVvdGVkIiwvJ1teJ10qJy8pKCJkb3VibGVfcXVvdGVkIiwvIlteIl0qIi8pKCksQkM9cmVwbGFjZSQxKC8oPzpccythdHRyX25hbWUoPzpccyo9XHMqYXR0cl92YWx1ZSk/KS8pKCJhdHRyX25hbWUiLC9bYS16QS1aXzpdW2EtekEtWjAtOTouXy1dKi8pKCJhdHRyX3ZhbHVlIixGQykoKSwkQz1yZXBsYWNlJDEoLzxbQS1aYS16XVtBLVphLXowLTldKmF0dHJpYnV0ZSpccypcLz8+LykoImF0dHJpYnV0ZSIsQkMpKCkscUM9cmVwbGFjZSQxKC9eKD86b3Blbl90YWd8Y2xvc2VfdGFnfGNvbW1lbnR8cHJvY2Vzc2luZ3xkZWNsYXJhdGlvbnxjZGF0YSkvKSgib3Blbl90YWciLCRDKSgiY2xvc2VfdGFnIiwvPFwvW0EtWmEtel1bQS1aYS16MC05XSpccyo+LykoImNvbW1lbnQiLC88IS0tLS0+fDwhLS0oPzotP1tePi1dKSg/Oi0/W14tXSkqLS0+LykoInByb2Nlc3NpbmciLC88Wz9dLio/Wz9dPi8pKCJkZWNsYXJhdGlvbiIsLzwhW0EtWl0rXHMrW14+XSo+LykoImNkYXRhIiwvPCFcW0NEQVRBXFtbXHNcU10qP1xdXF0+LykoKTt2YXIgVkM9L14mIygoPzp4W2EtZjAtOV17MSw4fXxbMC05XXsxLDh9KSk7L2ksVUM9L14mKFthLXpdW2EtejAtOV17MSwzMX0pOy9pO3ZhciB6Qz1bWyJ0ZXh0IixmdW5jdGlvbiBpbmRleF9icm93c2VyX3RleHQocyxvKXtmb3IodmFyIGk9cy5wb3M7aTxzLnBvc01heCYmIWlzVGVybWluYXRvckNoYXIocy5zcmMuY2hhckNvZGVBdChpKSk7KWkrKztyZXR1cm4gaSE9PXMucG9zJiYob3x8KHMucGVuZGluZys9cy5zcmMuc2xpY2Uocy5wb3MsaSkpLHMucG9zPWksITApfV0sWyJuZXdsaW5lIixmdW5jdGlvbiBuZXdsaW5lKHMsbyl7dmFyIGksYSx1PXMucG9zO2lmKDEwIT09cy5zcmMuY2hhckNvZGVBdCh1KSlyZXR1cm4hMTtpZihpPXMucGVuZGluZy5sZW5ndGgtMSxhPXMucG9zTWF4LCFvKWlmKGk+PTAmJjMyPT09cy5wZW5kaW5nLmNoYXJDb2RlQXQoaSkpaWYoaT49MSYmMzI9PT1zLnBlbmRpbmcuY2hhckNvZGVBdChpLTEpKXtmb3IodmFyIF89aS0yO18+PTA7Xy0tKWlmKDMyIT09cy5wZW5kaW5nLmNoYXJDb2RlQXQoXykpe3MucGVuZGluZz1zLnBlbmRpbmcuc3Vic3RyaW5nKDAsXysxKTticmVha31zLnB1c2goe3R5cGU6ImhhcmRicmVhayIsbGV2ZWw6cy5sZXZlbH0pfWVsc2Ugcy5wZW5kaW5nPXMucGVuZGluZy5zbGljZSgwLC0xKSxzLnB1c2goe3R5cGU6InNvZnRicmVhayIsbGV2ZWw6cy5sZXZlbH0pO2Vsc2Ugcy5wdXNoKHt0eXBlOiJzb2Z0YnJlYWsiLGxldmVsOnMubGV2ZWx9KTtmb3IodSsrO3U8YSYmMzI9PT1zLnNyYy5jaGFyQ29kZUF0KHUpOyl1Kys7cmV0dXJuIHMucG9zPXUsITB9XSxbImVzY2FwZSIsZnVuY3Rpb24gaW5kZXhfYnJvd3Nlcl9lc2NhcGUocyxvKXt2YXIgaSxhPXMucG9zLHU9cy5wb3NNYXg7aWYoOTIhPT1zLnNyYy5jaGFyQ29kZUF0KGEpKXJldHVybiExO2lmKCsrYTx1KXtpZigoaT1zLnNyYy5jaGFyQ29kZUF0KGEpKTwyNTYmJjAhPT1QQ1tpXSlyZXR1cm4gb3x8KHMucGVuZGluZys9cy5zcmNbYV0pLHMucG9zKz0yLCEwO2lmKDEwPT09aSl7Zm9yKG98fHMucHVzaCh7dHlwZToiaGFyZGJyZWFrIixsZXZlbDpzLmxldmVsfSksYSsrO2E8dSYmMzI9PT1zLnNyYy5jaGFyQ29kZUF0KGEpOylhKys7cmV0dXJuIHMucG9zPWEsITB9fXJldHVybiBvfHwocy5wZW5kaW5nKz0iXFwiKSxzLnBvcysrLCEwfV0sWyJiYWNrdGlja3MiLGZ1bmN0aW9uIGJhY2t0aWNrcyhzLG8pe3ZhciBpLGEsdSxfLHcseD1zLnBvcztpZig5NiE9PXMuc3JjLmNoYXJDb2RlQXQoeCkpcmV0dXJuITE7Zm9yKGk9eCx4KyssYT1zLnBvc01heDt4PGEmJjk2PT09cy5zcmMuY2hhckNvZGVBdCh4KTspeCsrO2Zvcih1PXMuc3JjLnNsaWNlKGkseCksXz13PXg7LTEhPT0oXz1zLnNyYy5pbmRleE9mKCJgIix3KSk7KXtmb3Iodz1fKzE7dzxhJiY5Nj09PXMuc3JjLmNoYXJDb2RlQXQodyk7KXcrKztpZih3LV89PT11Lmxlbmd0aClyZXR1cm4gb3x8cy5wdXNoKHt0eXBlOiJjb2RlIixjb250ZW50OnMuc3JjLnNsaWNlKHgsXykucmVwbGFjZSgvWyBcbl0rL2csIiAiKS50cmltKCksYmxvY2s6ITEsbGV2ZWw6cy5sZXZlbH0pLHMucG9zPXcsITB9cmV0dXJuIG98fChzLnBlbmRpbmcrPXUpLHMucG9zKz11Lmxlbmd0aCwhMH1dLFsiZGVsIixmdW5jdGlvbiBkZWwocyxvKXt2YXIgaSxhLHUsXyx3LHg9cy5wb3NNYXgsQz1zLnBvcztpZigxMjYhPT1zLnNyYy5jaGFyQ29kZUF0KEMpKXJldHVybiExO2lmKG8pcmV0dXJuITE7aWYoQys0Pj14KXJldHVybiExO2lmKDEyNiE9PXMuc3JjLmNoYXJDb2RlQXQoQysxKSlyZXR1cm4hMTtpZihzLmxldmVsPj1zLm9wdGlvbnMubWF4TmVzdGluZylyZXR1cm4hMTtpZihfPUM+MD9zLnNyYy5jaGFyQ29kZUF0KEMtMSk6LTEsdz1zLnNyYy5jaGFyQ29kZUF0KEMrMiksMTI2PT09XylyZXR1cm4hMTtpZigxMjY9PT13KXJldHVybiExO2lmKDMyPT09d3x8MTA9PT13KXJldHVybiExO2ZvcihhPUMrMjthPHgmJjEyNj09PXMuc3JjLmNoYXJDb2RlQXQoYSk7KWErKztpZihhPkMrMylyZXR1cm4gcy5wb3MrPWEtQyxvfHwocy5wZW5kaW5nKz1zLnNyYy5zbGljZShDLGEpKSwhMDtmb3Iocy5wb3M9QysyLHU9MTtzLnBvcysxPHg7KXtpZigxMjY9PT1zLnNyYy5jaGFyQ29kZUF0KHMucG9zKSYmMTI2PT09cy5zcmMuY2hhckNvZGVBdChzLnBvcysxKSYmKF89cy5zcmMuY2hhckNvZGVBdChzLnBvcy0xKSwxMjYhPT0odz1zLnBvcysyPHg/cy5zcmMuY2hhckNvZGVBdChzLnBvcysyKTotMSkmJjEyNiE9PV8mJigzMiE9PV8mJjEwIT09Xz91LS06MzIhPT13JiYxMCE9PXcmJnUrKyx1PD0wKSkpe2k9ITA7YnJlYWt9cy5wYXJzZXIuc2tpcFRva2VuKHMpfXJldHVybiBpPyhzLnBvc01heD1zLnBvcyxzLnBvcz1DKzIsb3x8KHMucHVzaCh7dHlwZToiZGVsX29wZW4iLGxldmVsOnMubGV2ZWwrK30pLHMucGFyc2VyLnRva2VuaXplKHMpLHMucHVzaCh7dHlwZToiZGVsX2Nsb3NlIixsZXZlbDotLXMubGV2ZWx9KSkscy5wb3M9cy5wb3NNYXgrMixzLnBvc01heD14LCEwKToocy5wb3M9QywhMSl9XSxbImlucyIsZnVuY3Rpb24gaW5zKHMsbyl7dmFyIGksYSx1LF8sdyx4PXMucG9zTWF4LEM9cy5wb3M7aWYoNDMhPT1zLnNyYy5jaGFyQ29kZUF0KEMpKXJldHVybiExO2lmKG8pcmV0dXJuITE7aWYoQys0Pj14KXJldHVybiExO2lmKDQzIT09cy5zcmMuY2hhckNvZGVBdChDKzEpKXJldHVybiExO2lmKHMubGV2ZWw+PXMub3B0aW9ucy5tYXhOZXN0aW5nKXJldHVybiExO2lmKF89Qz4wP3Muc3JjLmNoYXJDb2RlQXQoQy0xKTotMSx3PXMuc3JjLmNoYXJDb2RlQXQoQysyKSw0Mz09PV8pcmV0dXJuITE7aWYoNDM9PT13KXJldHVybiExO2lmKDMyPT09d3x8MTA9PT13KXJldHVybiExO2ZvcihhPUMrMjthPHgmJjQzPT09cy5zcmMuY2hhckNvZGVBdChhKTspYSsrO2lmKGEhPT1DKzIpcmV0dXJuIHMucG9zKz1hLUMsb3x8KHMucGVuZGluZys9cy5zcmMuc2xpY2UoQyxhKSksITA7Zm9yKHMucG9zPUMrMix1PTE7cy5wb3MrMTx4Oyl7aWYoNDM9PT1zLnNyYy5jaGFyQ29kZUF0KHMucG9zKSYmNDM9PT1zLnNyYy5jaGFyQ29kZUF0KHMucG9zKzEpJiYoXz1zLnNyYy5jaGFyQ29kZUF0KHMucG9zLTEpLDQzIT09KHc9cy5wb3MrMjx4P3Muc3JjLmNoYXJDb2RlQXQocy5wb3MrMik6LTEpJiY0MyE9PV8mJigzMiE9PV8mJjEwIT09Xz91LS06MzIhPT13JiYxMCE9PXcmJnUrKyx1PD0wKSkpe2k9ITA7YnJlYWt9cy5wYXJzZXIuc2tpcFRva2VuKHMpfXJldHVybiBpPyhzLnBvc01heD1zLnBvcyxzLnBvcz1DKzIsb3x8KHMucHVzaCh7dHlwZToiaW5zX29wZW4iLGxldmVsOnMubGV2ZWwrK30pLHMucGFyc2VyLnRva2VuaXplKHMpLHMucHVzaCh7dHlwZToiaW5zX2Nsb3NlIixsZXZlbDotLXMubGV2ZWx9KSkscy5wb3M9cy5wb3NNYXgrMixzLnBvc01heD14LCEwKToocy5wb3M9QywhMSl9XSxbIm1hcmsiLGZ1bmN0aW9uIG1hcmsocyxvKXt2YXIgaSxhLHUsXyx3LHg9cy5wb3NNYXgsQz1zLnBvcztpZig2MSE9PXMuc3JjLmNoYXJDb2RlQXQoQykpcmV0dXJuITE7aWYobylyZXR1cm4hMTtpZihDKzQ+PXgpcmV0dXJuITE7aWYoNjEhPT1zLnNyYy5jaGFyQ29kZUF0KEMrMSkpcmV0dXJuITE7aWYocy5sZXZlbD49cy5vcHRpb25zLm1heE5lc3RpbmcpcmV0dXJuITE7aWYoXz1DPjA/cy5zcmMuY2hhckNvZGVBdChDLTEpOi0xLHc9cy5zcmMuY2hhckNvZGVBdChDKzIpLDYxPT09XylyZXR1cm4hMTtpZig2MT09PXcpcmV0dXJuITE7aWYoMzI9PT13fHwxMD09PXcpcmV0dXJuITE7Zm9yKGE9QysyO2E8eCYmNjE9PT1zLnNyYy5jaGFyQ29kZUF0KGEpOylhKys7aWYoYSE9PUMrMilyZXR1cm4gcy5wb3MrPWEtQyxvfHwocy5wZW5kaW5nKz1zLnNyYy5zbGljZShDLGEpKSwhMDtmb3Iocy5wb3M9QysyLHU9MTtzLnBvcysxPHg7KXtpZig2MT09PXMuc3JjLmNoYXJDb2RlQXQocy5wb3MpJiY2MT09PXMuc3JjLmNoYXJDb2RlQXQocy5wb3MrMSkmJihfPXMuc3JjLmNoYXJDb2RlQXQocy5wb3MtMSksNjEhPT0odz1zLnBvcysyPHg/cy5zcmMuY2hhckNvZGVBdChzLnBvcysyKTotMSkmJjYxIT09XyYmKDMyIT09XyYmMTAhPT1fP3UtLTozMiE9PXcmJjEwIT09dyYmdSsrLHU8PTApKSl7aT0hMDticmVha31zLnBhcnNlci5za2lwVG9rZW4ocyl9cmV0dXJuIGk/KHMucG9zTWF4PXMucG9zLHMucG9zPUMrMixvfHwocy5wdXNoKHt0eXBlOiJtYXJrX29wZW4iLGxldmVsOnMubGV2ZWwrK30pLHMucGFyc2VyLnRva2VuaXplKHMpLHMucHVzaCh7dHlwZToibWFya19jbG9zZSIsbGV2ZWw6LS1zLmxldmVsfSkpLHMucG9zPXMucG9zTWF4KzIscy5wb3NNYXg9eCwhMCk6KHMucG9zPUMsITEpfV0sWyJlbXBoYXNpcyIsZnVuY3Rpb24gZW1waGFzaXMocyxvKXt2YXIgaSxhLHUsXyx3LHgsQyxqPXMucG9zTWF4LEw9cy5wb3MsQj1zLnNyYy5jaGFyQ29kZUF0KEwpO2lmKDk1IT09QiYmNDIhPT1CKXJldHVybiExO2lmKG8pcmV0dXJuITE7aWYoaT0oQz1zY2FuRGVsaW1zKHMsTCkpLmRlbGltcywhQy5jYW5fb3BlbilyZXR1cm4gcy5wb3MrPWksb3x8KHMucGVuZGluZys9cy5zcmMuc2xpY2UoTCxzLnBvcykpLCEwO2lmKHMubGV2ZWw+PXMub3B0aW9ucy5tYXhOZXN0aW5nKXJldHVybiExO2ZvcihzLnBvcz1MK2kseD1baV07cy5wb3M8ajspaWYocy5zcmMuY2hhckNvZGVBdChzLnBvcykhPT1CKXMucGFyc2VyLnNraXBUb2tlbihzKTtlbHNle2lmKGE9KEM9c2NhbkRlbGltcyhzLHMucG9zKSkuZGVsaW1zLEMuY2FuX2Nsb3NlKXtmb3IoXz14LnBvcCgpLHc9YTtfIT09dzspe2lmKHc8Xyl7eC5wdXNoKF8tdyk7YnJlYWt9aWYody09XywwPT09eC5sZW5ndGgpYnJlYWs7cy5wb3MrPV8sXz14LnBvcCgpfWlmKDA9PT14Lmxlbmd0aCl7aT1fLHU9ITA7YnJlYWt9cy5wb3MrPWE7Y29udGludWV9Qy5jYW5fb3BlbiYmeC5wdXNoKGEpLHMucG9zKz1hfXJldHVybiB1PyhzLnBvc01heD1zLnBvcyxzLnBvcz1MK2ksb3x8KDIhPT1pJiYzIT09aXx8cy5wdXNoKHt0eXBlOiJzdHJvbmdfb3BlbiIsbGV2ZWw6cy5sZXZlbCsrfSksMSE9PWkmJjMhPT1pfHxzLnB1c2goe3R5cGU6ImVtX29wZW4iLGxldmVsOnMubGV2ZWwrK30pLHMucGFyc2VyLnRva2VuaXplKHMpLDEhPT1pJiYzIT09aXx8cy5wdXNoKHt0eXBlOiJlbV9jbG9zZSIsbGV2ZWw6LS1zLmxldmVsfSksMiE9PWkmJjMhPT1pfHxzLnB1c2goe3R5cGU6InN0cm9uZ19jbG9zZSIsbGV2ZWw6LS1zLmxldmVsfSkpLHMucG9zPXMucG9zTWF4K2kscy5wb3NNYXg9aiwhMCk6KHMucG9zPUwsITEpfV0sWyJzdWIiLGZ1bmN0aW9uIHN1YihzLG8pe3ZhciBpLGEsdT1zLnBvc01heCxfPXMucG9zO2lmKDEyNiE9PXMuc3JjLmNoYXJDb2RlQXQoXykpcmV0dXJuITE7aWYobylyZXR1cm4hMTtpZihfKzI+PXUpcmV0dXJuITE7aWYocy5sZXZlbD49cy5vcHRpb25zLm1heE5lc3RpbmcpcmV0dXJuITE7Zm9yKHMucG9zPV8rMTtzLnBvczx1Oyl7aWYoMTI2PT09cy5zcmMuY2hhckNvZGVBdChzLnBvcykpe2k9ITA7YnJlYWt9cy5wYXJzZXIuc2tpcFRva2VuKHMpfXJldHVybiBpJiZfKzEhPT1zLnBvcz8oYT1zLnNyYy5zbGljZShfKzEscy5wb3MpKS5tYXRjaCgvKF58W15cXF0pKFxcXFwpKlxzLyk/KHMucG9zPV8sITEpOihzLnBvc01heD1zLnBvcyxzLnBvcz1fKzEsb3x8cy5wdXNoKHt0eXBlOiJzdWIiLGxldmVsOnMubGV2ZWwsY29udGVudDphLnJlcGxhY2UoTkMsIiQxIil9KSxzLnBvcz1zLnBvc01heCsxLHMucG9zTWF4PXUsITApOihzLnBvcz1fLCExKX1dLFsic3VwIixmdW5jdGlvbiBzdXAocyxvKXt2YXIgaSxhLHU9cy5wb3NNYXgsXz1zLnBvcztpZig5NCE9PXMuc3JjLmNoYXJDb2RlQXQoXykpcmV0dXJuITE7aWYobylyZXR1cm4hMTtpZihfKzI+PXUpcmV0dXJuITE7aWYocy5sZXZlbD49cy5vcHRpb25zLm1heE5lc3RpbmcpcmV0dXJuITE7Zm9yKHMucG9zPV8rMTtzLnBvczx1Oyl7aWYoOTQ9PT1zLnNyYy5jaGFyQ29kZUF0KHMucG9zKSl7aT0hMDticmVha31zLnBhcnNlci5za2lwVG9rZW4ocyl9cmV0dXJuIGkmJl8rMSE9PXMucG9zPyhhPXMuc3JjLnNsaWNlKF8rMSxzLnBvcykpLm1hdGNoKC8oXnxbXlxcXSkoXFxcXCkqXHMvKT8ocy5wb3M9XywhMSk6KHMucG9zTWF4PXMucG9zLHMucG9zPV8rMSxvfHxzLnB1c2goe3R5cGU6InN1cCIsbGV2ZWw6cy5sZXZlbCxjb250ZW50OmEucmVwbGFjZShNQywiJDEiKX0pLHMucG9zPXMucG9zTWF4KzEscy5wb3NNYXg9dSwhMCk6KHMucG9zPV8sITEpfV0sWyJsaW5rcyIsZnVuY3Rpb24gbGlua3MocyxvKXt2YXIgaSxhLHUsXyx3LHgsQyxqLEw9ITEsQj1zLnBvcywkPXMucG9zTWF4LFY9cy5wb3MsVT1zLnNyYy5jaGFyQ29kZUF0KFYpO2lmKDMzPT09VSYmKEw9ITAsVT1zLnNyYy5jaGFyQ29kZUF0KCsrVikpLDkxIT09VSlyZXR1cm4hMTtpZihzLmxldmVsPj1zLm9wdGlvbnMubWF4TmVzdGluZylyZXR1cm4hMTtpZihpPVYrMSwoYT1wYXJzZUxpbmtMYWJlbChzLFYpKTwwKXJldHVybiExO2lmKCh4PWErMSk8JCYmNDA9PT1zLnNyYy5jaGFyQ29kZUF0KHgpKXtmb3IoeCsrO3g8JCYmKDMyPT09KGo9cy5zcmMuY2hhckNvZGVBdCh4KSl8fDEwPT09aik7eCsrKTtpZih4Pj0kKXJldHVybiExO2ZvcihWPXgscGFyc2VMaW5rRGVzdGluYXRpb24ocyx4KT8oXz1zLmxpbmtDb250ZW50LHg9cy5wb3MpOl89IiIsVj14O3g8JCYmKDMyPT09KGo9cy5zcmMuY2hhckNvZGVBdCh4KSl8fDEwPT09aik7eCsrKTtpZih4PCQmJlYhPT14JiZwYXJzZUxpbmtUaXRsZShzLHgpKWZvcih3PXMubGlua0NvbnRlbnQseD1zLnBvczt4PCQmJigzMj09PShqPXMuc3JjLmNoYXJDb2RlQXQoeCkpfHwxMD09PWopO3grKyk7ZWxzZSB3PSIiO2lmKHg+PSR8fDQxIT09cy5zcmMuY2hhckNvZGVBdCh4KSlyZXR1cm4gcy5wb3M9QiwhMTt4Kyt9ZWxzZXtpZihzLmxpbmtMZXZlbD4wKXJldHVybiExO2Zvcig7eDwkJiYoMzI9PT0oaj1zLnNyYy5jaGFyQ29kZUF0KHgpKXx8MTA9PT1qKTt4KyspO2lmKHg8JCYmOTE9PT1zLnNyYy5jaGFyQ29kZUF0KHgpJiYoVj14KzEsKHg9cGFyc2VMaW5rTGFiZWwocyx4KSk+PTA/dT1zLnNyYy5zbGljZShWLHgrKyk6eD1WLTEpLHV8fCh2b2lkIDA9PT11JiYoeD1hKzEpLHU9cy5zcmMuc2xpY2UoaSxhKSksIShDPXMuZW52LnJlZmVyZW5jZXNbbm9ybWFsaXplUmVmZXJlbmNlKHUpXSkpcmV0dXJuIHMucG9zPUIsITE7Xz1DLmhyZWYsdz1DLnRpdGxlfXJldHVybiBvfHwocy5wb3M9aSxzLnBvc01heD1hLEw/cy5wdXNoKHt0eXBlOiJpbWFnZSIsc3JjOl8sdGl0bGU6dyxhbHQ6cy5zcmMuc3Vic3RyKGksYS1pKSxsZXZlbDpzLmxldmVsfSk6KHMucHVzaCh7dHlwZToibGlua19vcGVuIixocmVmOl8sdGl0bGU6dyxsZXZlbDpzLmxldmVsKyt9KSxzLmxpbmtMZXZlbCsrLHMucGFyc2VyLnRva2VuaXplKHMpLHMubGlua0xldmVsLS0scy5wdXNoKHt0eXBlOiJsaW5rX2Nsb3NlIixsZXZlbDotLXMubGV2ZWx9KSkpLHMucG9zPXgscy5wb3NNYXg9JCwhMH1dLFsiZm9vdG5vdGVfaW5saW5lIixmdW5jdGlvbiBmb290bm90ZV9pbmxpbmUocyxvKXt2YXIgaSxhLHUsXyx3PXMucG9zTWF4LHg9cy5wb3M7cmV0dXJuISh4KzI+PXcpJiYoOTQ9PT1zLnNyYy5jaGFyQ29kZUF0KHgpJiYoOTE9PT1zLnNyYy5jaGFyQ29kZUF0KHgrMSkmJighKHMubGV2ZWw+PXMub3B0aW9ucy5tYXhOZXN0aW5nKSYmKGk9eCsyLCEoKGE9cGFyc2VMaW5rTGFiZWwocyx4KzEpKTwwKSYmKG98fChzLmVudi5mb290bm90ZXN8fChzLmVudi5mb290bm90ZXM9e30pLHMuZW52LmZvb3Rub3Rlcy5saXN0fHwocy5lbnYuZm9vdG5vdGVzLmxpc3Q9W10pLHU9cy5lbnYuZm9vdG5vdGVzLmxpc3QubGVuZ3RoLHMucG9zPWkscy5wb3NNYXg9YSxzLnB1c2goe3R5cGU6ImZvb3Rub3RlX3JlZiIsaWQ6dSxsZXZlbDpzLmxldmVsfSkscy5saW5rTGV2ZWwrKyxfPXMudG9rZW5zLmxlbmd0aCxzLnBhcnNlci50b2tlbml6ZShzKSxzLmVudi5mb290bm90ZXMubGlzdFt1XT17dG9rZW5zOnMudG9rZW5zLnNwbGljZShfKX0scy5saW5rTGV2ZWwtLSkscy5wb3M9YSsxLHMucG9zTWF4PXcsITApKSkpKX1dLFsiZm9vdG5vdGVfcmVmIixmdW5jdGlvbiBmb290bm90ZV9yZWYocyxvKXt2YXIgaSxhLHUsXyx3PXMucG9zTWF4LHg9cy5wb3M7aWYoeCszPncpcmV0dXJuITE7aWYoIXMuZW52LmZvb3Rub3Rlc3x8IXMuZW52LmZvb3Rub3Rlcy5yZWZzKXJldHVybiExO2lmKDkxIT09cy5zcmMuY2hhckNvZGVBdCh4KSlyZXR1cm4hMTtpZig5NCE9PXMuc3JjLmNoYXJDb2RlQXQoeCsxKSlyZXR1cm4hMTtpZihzLmxldmVsPj1zLm9wdGlvbnMubWF4TmVzdGluZylyZXR1cm4hMTtmb3IoYT14KzI7YTx3O2ErKyl7aWYoMzI9PT1zLnNyYy5jaGFyQ29kZUF0KGEpKXJldHVybiExO2lmKDEwPT09cy5zcmMuY2hhckNvZGVBdChhKSlyZXR1cm4hMTtpZig5Mz09PXMuc3JjLmNoYXJDb2RlQXQoYSkpYnJlYWt9cmV0dXJuIGEhPT14KzImJighKGE+PXcpJiYoYSsrLGk9cy5zcmMuc2xpY2UoeCsyLGEtMSksdm9pZCAwIT09cy5lbnYuZm9vdG5vdGVzLnJlZnNbIjoiK2ldJiYob3x8KHMuZW52LmZvb3Rub3Rlcy5saXN0fHwocy5lbnYuZm9vdG5vdGVzLmxpc3Q9W10pLHMuZW52LmZvb3Rub3Rlcy5yZWZzWyI6IitpXTwwPyh1PXMuZW52LmZvb3Rub3Rlcy5saXN0Lmxlbmd0aCxzLmVudi5mb290bm90ZXMubGlzdFt1XT17bGFiZWw6aSxjb3VudDowfSxzLmVudi5mb290bm90ZXMucmVmc1siOiIraV09dSk6dT1zLmVudi5mb290bm90ZXMucmVmc1siOiIraV0sXz1zLmVudi5mb290bm90ZXMubGlzdFt1XS5jb3VudCxzLmVudi5mb290bm90ZXMubGlzdFt1XS5jb3VudCsrLHMucHVzaCh7dHlwZToiZm9vdG5vdGVfcmVmIixpZDp1LHN1YklkOl8sbGV2ZWw6cy5sZXZlbH0pKSxzLnBvcz1hLHMucG9zTWF4PXcsITApKSl9XSxbImF1dG9saW5rIixmdW5jdGlvbiBhdXRvbGluayhzLG8pe3ZhciBpLGEsdSxfLHcseD1zLnBvcztyZXR1cm4gNjA9PT1zLnNyYy5jaGFyQ29kZUF0KHgpJiYoISgoaT1zLnNyYy5zbGljZSh4KSkuaW5kZXhPZigiPiIpPDApJiYoKGE9aS5tYXRjaChMQykpPyEoUkMuaW5kZXhPZihhWzFdLnRvTG93ZXJDYXNlKCkpPDApJiYodz1ub3JtYWxpemVMaW5rKF89YVswXS5zbGljZSgxLC0xKSksISFzLnBhcnNlci52YWxpZGF0ZUxpbmsoXykmJihvfHwocy5wdXNoKHt0eXBlOiJsaW5rX29wZW4iLGhyZWY6dyxsZXZlbDpzLmxldmVsfSkscy5wdXNoKHt0eXBlOiJ0ZXh0Iixjb250ZW50Ol8sbGV2ZWw6cy5sZXZlbCsxfSkscy5wdXNoKHt0eXBlOiJsaW5rX2Nsb3NlIixsZXZlbDpzLmxldmVsfSkpLHMucG9zKz1hWzBdLmxlbmd0aCwhMCkpOiEhKHU9aS5tYXRjaChEQykpJiYodz1ub3JtYWxpemVMaW5rKCJtYWlsdG86IisoXz11WzBdLnNsaWNlKDEsLTEpKSksISFzLnBhcnNlci52YWxpZGF0ZUxpbmsodykmJihvfHwocy5wdXNoKHt0eXBlOiJsaW5rX29wZW4iLGhyZWY6dyxsZXZlbDpzLmxldmVsfSkscy5wdXNoKHt0eXBlOiJ0ZXh0Iixjb250ZW50Ol8sbGV2ZWw6cy5sZXZlbCsxfSkscy5wdXNoKHt0eXBlOiJsaW5rX2Nsb3NlIixsZXZlbDpzLmxldmVsfSkpLHMucG9zKz11WzBdLmxlbmd0aCwhMCkpKSl9XSxbImh0bWx0YWciLGZ1bmN0aW9uIGh0bWx0YWcocyxvKXt2YXIgaSxhLHUsXz1zLnBvcztyZXR1cm4hIXMub3B0aW9ucy5odG1sJiYodT1zLnBvc01heCwhKDYwIT09cy5zcmMuY2hhckNvZGVBdChfKXx8XysyPj11KSYmKCEoMzMhPT0oaT1zLnNyYy5jaGFyQ29kZUF0KF8rMSkpJiY2MyE9PWkmJjQ3IT09aSYmIWZ1bmN0aW9uIGlzTGV0dGVyJDIocyl7dmFyIG89MzJ8cztyZXR1cm4gbz49OTcmJm88PTEyMn0oaSkpJiYoISEoYT1zLnNyYy5zbGljZShfKS5tYXRjaChxQykpJiYob3x8cy5wdXNoKHt0eXBlOiJodG1sdGFnIixjb250ZW50OnMuc3JjLnNsaWNlKF8sXythWzBdLmxlbmd0aCksbGV2ZWw6cy5sZXZlbH0pLHMucG9zKz1hWzBdLmxlbmd0aCwhMCkpKSl9XSxbImVudGl0eSIsZnVuY3Rpb24gZW50aXR5KHMsbyl7dmFyIGksYSx1PXMucG9zLF89cy5wb3NNYXg7aWYoMzghPT1zLnNyYy5jaGFyQ29kZUF0KHUpKXJldHVybiExO2lmKHUrMTxfKWlmKDM1PT09cy5zcmMuY2hhckNvZGVBdCh1KzEpKXtpZihhPXMuc3JjLnNsaWNlKHUpLm1hdGNoKFZDKSlyZXR1cm4gb3x8KGk9IngiPT09YVsxXVswXS50b0xvd2VyQ2FzZSgpP3BhcnNlSW50KGFbMV0uc2xpY2UoMSksMTYpOnBhcnNlSW50KGFbMV0sMTApLHMucGVuZGluZys9aXNWYWxpZEVudGl0eUNvZGUoaSk/ZnJvbUNvZGVQb2ludChpKTpmcm9tQ29kZVBvaW50KDY1NTMzKSkscy5wb3MrPWFbMF0ubGVuZ3RoLCEwfWVsc2UgaWYoYT1zLnNyYy5zbGljZSh1KS5tYXRjaChVQykpe3ZhciB3PWRlY29kZUVudGl0eShhWzFdKTtpZihhWzFdIT09dylyZXR1cm4gb3x8KHMucGVuZGluZys9dykscy5wb3MrPWFbMF0ubGVuZ3RoLCEwfXJldHVybiBvfHwocy5wZW5kaW5nKz0iJiIpLHMucG9zKyssITB9XV07ZnVuY3Rpb24gUGFyc2VySW5saW5lKCl7dGhpcy5ydWxlcj1uZXcgUnVsZXI7Zm9yKHZhciBzPTA7czx6Qy5sZW5ndGg7cysrKXRoaXMucnVsZXIucHVzaCh6Q1tzXVswXSx6Q1tzXVsxXSk7dGhpcy52YWxpZGF0ZUxpbms9dmFsaWRhdGVMaW5rfWZ1bmN0aW9uIHZhbGlkYXRlTGluayhzKXt2YXIgbz1zLnRyaW0oKS50b0xvd2VyQ2FzZSgpO3JldHVybi0xPT09KG89cmVwbGFjZUVudGl0aWVzKG8pKS5pbmRleE9mKCI6Iil8fC0xPT09WyJ2YnNjcmlwdCIsImphdmFzY3JpcHQiLCJmaWxlIiwiZGF0YSJdLmluZGV4T2Yoby5zcGxpdCgiOiIpWzBdKX1QYXJzZXJJbmxpbmUucHJvdG90eXBlLnNraXBUb2tlbj1mdW5jdGlvbihzKXt2YXIgbyxpLGE9dGhpcy5ydWxlci5nZXRSdWxlcygiIiksdT1hLmxlbmd0aCxfPXMucG9zO2lmKChpPXMuY2FjaGVHZXQoXykpPjApcy5wb3M9aTtlbHNle2ZvcihvPTA7bzx1O28rKylpZihhW29dKHMsITApKXJldHVybiB2b2lkIHMuY2FjaGVTZXQoXyxzLnBvcyk7cy5wb3MrKyxzLmNhY2hlU2V0KF8scy5wb3MpfX0sUGFyc2VySW5saW5lLnByb3RvdHlwZS50b2tlbml6ZT1mdW5jdGlvbihzKXtmb3IodmFyIG8saSxhPXRoaXMucnVsZXIuZ2V0UnVsZXMoIiIpLHU9YS5sZW5ndGgsXz1zLnBvc01heDtzLnBvczxfOyl7Zm9yKGk9MDtpPHUmJiEobz1hW2ldKHMsITEpKTtpKyspO2lmKG8pe2lmKHMucG9zPj1fKWJyZWFrfWVsc2Ugcy5wZW5kaW5nKz1zLnNyY1tzLnBvcysrXX1zLnBlbmRpbmcmJnMucHVzaFBlbmRpbmcoKX0sUGFyc2VySW5saW5lLnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbihzLG8saSxhKXt2YXIgdT1uZXcgU3RhdGVJbmxpbmUocyx0aGlzLG8saSxhKTt0aGlzLnRva2VuaXplKHUpfTt2YXIgV0M9e2RlZmF1bHQ6e29wdGlvbnM6e2h0bWw6ITEseGh0bWxPdXQ6ITEsYnJlYWtzOiExLGxhbmdQcmVmaXg6Imxhbmd1YWdlLSIsbGlua1RhcmdldDoiIix0eXBvZ3JhcGhlcjohMSxxdW90ZXM6IuKAnOKAneKAmOKAmSIsaGlnaGxpZ2h0Om51bGwsbWF4TmVzdGluZzoyMH0sY29tcG9uZW50czp7Y29yZTp7cnVsZXM6WyJibG9jayIsImlubGluZSIsInJlZmVyZW5jZXMiLCJyZXBsYWNlbWVudHMiLCJzbWFydHF1b3RlcyIsInJlZmVyZW5jZXMiLCJhYmJyMiIsImZvb3Rub3RlX3RhaWwiXX0sYmxvY2s6e3J1bGVzOlsiYmxvY2txdW90ZSIsImNvZGUiLCJmZW5jZXMiLCJmb290bm90ZSIsImhlYWRpbmciLCJociIsImh0bWxibG9jayIsImxoZWFkaW5nIiwibGlzdCIsInBhcmFncmFwaCIsInRhYmxlIl19LGlubGluZTp7cnVsZXM6WyJhdXRvbGluayIsImJhY2t0aWNrcyIsImRlbCIsImVtcGhhc2lzIiwiZW50aXR5IiwiZXNjYXBlIiwiZm9vdG5vdGVfcmVmIiwiaHRtbHRhZyIsImxpbmtzIiwibmV3bGluZSIsInRleHQiXX19fSxmdWxsOntvcHRpb25zOntodG1sOiExLHhodG1sT3V0OiExLGJyZWFrczohMSxsYW5nUHJlZml4OiJsYW5ndWFnZS0iLGxpbmtUYXJnZXQ6IiIsdHlwb2dyYXBoZXI6ITEscXVvdGVzOiLigJzigJ3igJjigJkiLGhpZ2hsaWdodDpudWxsLG1heE5lc3Rpbmc6MjB9LGNvbXBvbmVudHM6e2NvcmU6e30sYmxvY2s6e30saW5saW5lOnt9fX0sY29tbW9ubWFyazp7b3B0aW9uczp7aHRtbDohMCx4aHRtbE91dDohMCxicmVha3M6ITEsbGFuZ1ByZWZpeDoibGFuZ3VhZ2UtIixsaW5rVGFyZ2V0OiIiLHR5cG9ncmFwaGVyOiExLHF1b3Rlczoi4oCc4oCd4oCY4oCZIixoaWdobGlnaHQ6bnVsbCxtYXhOZXN0aW5nOjIwfSxjb21wb25lbnRzOntjb3JlOntydWxlczpbImJsb2NrIiwiaW5saW5lIiwicmVmZXJlbmNlcyIsImFiYnIyIl19LGJsb2NrOntydWxlczpbImJsb2NrcXVvdGUiLCJjb2RlIiwiZmVuY2VzIiwiaGVhZGluZyIsImhyIiwiaHRtbGJsb2NrIiwibGhlYWRpbmciLCJsaXN0IiwicGFyYWdyYXBoIl19LGlubGluZTp7cnVsZXM6WyJhdXRvbGluayIsImJhY2t0aWNrcyIsImVtcGhhc2lzIiwiZW50aXR5IiwiZXNjYXBlIiwiaHRtbHRhZyIsImxpbmtzIiwibmV3bGluZSIsInRleHQiXX19fX07ZnVuY3Rpb24gU3RhdGVDb3JlKHMsbyxpKXt0aGlzLnNyYz1vLHRoaXMuZW52PWksdGhpcy5vcHRpb25zPXMub3B0aW9ucyx0aGlzLnRva2Vucz1bXSx0aGlzLmlubGluZU1vZGU9ITEsdGhpcy5pbmxpbmU9cy5pbmxpbmUsdGhpcy5ibG9jaz1zLmJsb2NrLHRoaXMucmVuZGVyZXI9cy5yZW5kZXJlcix0aGlzLnR5cG9ncmFwaGVyPXMudHlwb2dyYXBoZXJ9ZnVuY3Rpb24gUmVtYXJrYWJsZShzLG8peyJzdHJpbmciIT10eXBlb2YgcyYmKG89cyxzPSJkZWZhdWx0IiksbyYmbnVsbCE9by5saW5raWZ5JiZjb25zb2xlLndhcm4oImxpbmtpZnkgb3B0aW9uIGlzIHJlbW92ZWQuIFVzZSBsaW5raWZ5IHBsdWdpbiBpbnN0ZWFkOlxuXG5pbXBvcnQgUmVtYXJrYWJsZSBmcm9tICdyZW1hcmthYmxlJztcbmltcG9ydCBsaW5raWZ5IGZyb20gJ3JlbWFya2FibGUvbGlua2lmeSc7XG5uZXcgUmVtYXJrYWJsZSgpLnVzZShsaW5raWZ5KVxuIiksdGhpcy5pbmxpbmU9bmV3IFBhcnNlcklubGluZSx0aGlzLmJsb2NrPW5ldyBQYXJzZXJCbG9jayx0aGlzLmNvcmU9bmV3IENvcmUsdGhpcy5yZW5kZXJlcj1uZXcgUmVuZGVyZXIsdGhpcy5ydWxlcj1uZXcgUnVsZXIsdGhpcy5vcHRpb25zPXt9LHRoaXMuY29uZmlndXJlKFdDW3NdKSx0aGlzLnNldChvfHx7fSl9UmVtYXJrYWJsZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHMpe2luZGV4X2Jyb3dzZXJfYXNzaWduKHRoaXMub3B0aW9ucyxzKX0sUmVtYXJrYWJsZS5wcm90b3R5cGUuY29uZmlndXJlPWZ1bmN0aW9uKHMpe3ZhciBvPXRoaXM7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJXcm9uZyBgcmVtYXJrYWJsZWAgcHJlc2V0LCBjaGVjayBuYW1lL2NvbnRlbnQiKTtzLm9wdGlvbnMmJm8uc2V0KHMub3B0aW9ucykscy5jb21wb25lbnRzJiZPYmplY3Qua2V5cyhzLmNvbXBvbmVudHMpLmZvckVhY2goKGZ1bmN0aW9uKGkpe3MuY29tcG9uZW50c1tpXS5ydWxlcyYmb1tpXS5ydWxlci5lbmFibGUocy5jb21wb25lbnRzW2ldLnJ1bGVzLCEwKX0pKX0sUmVtYXJrYWJsZS5wcm90b3R5cGUudXNlPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHModGhpcyxvKSx0aGlzfSxSZW1hcmthYmxlLnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbihzLG8pe3ZhciBpPW5ldyBTdGF0ZUNvcmUodGhpcyxzLG8pO3JldHVybiB0aGlzLmNvcmUucHJvY2VzcyhpKSxpLnRva2Vuc30sUmVtYXJrYWJsZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIG89b3x8e30sdGhpcy5yZW5kZXJlci5yZW5kZXIodGhpcy5wYXJzZShzLG8pLHRoaXMub3B0aW9ucyxvKX0sUmVtYXJrYWJsZS5wcm90b3R5cGUucGFyc2VJbmxpbmU9ZnVuY3Rpb24ocyxvKXt2YXIgaT1uZXcgU3RhdGVDb3JlKHRoaXMscyxvKTtyZXR1cm4gaS5pbmxpbmVNb2RlPSEwLHRoaXMuY29yZS5wcm9jZXNzKGkpLGkudG9rZW5zfSxSZW1hcmthYmxlLnByb3RvdHlwZS5yZW5kZXJJbmxpbmU9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gbz1vfHx7fSx0aGlzLnJlbmRlcmVyLnJlbmRlcih0aGlzLnBhcnNlSW5saW5lKHMsbyksdGhpcy5vcHRpb25zLG8pfTtmdW5jdGlvbiBpbmRleE9mKHMsbyl7aWYoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpcmV0dXJuIHMuaW5kZXhPZihvKTtmb3IodmFyIGk9MCxhPXMubGVuZ3RoO2k8YTtpKyspaWYoc1tpXT09PW8pcmV0dXJuIGk7cmV0dXJuLTF9ZnVuY3Rpb24gdXRpbHNfcmVtb3ZlKHMsbyl7Zm9yKHZhciBpPXMubGVuZ3RoLTE7aT49MDtpLS0pITA9PT1vKHNbaV0pJiZzLnNwbGljZShpLDEpfWZ1bmN0aW9uIHRocm93VW5oYW5kbGVkQ2FzZUVycm9yKHMpe3Rocm93IG5ldyBFcnJvcigiVW5oYW5kbGVkIGNhc2UgZm9yIHZhbHVlOiAnIi5jb25jYXQocywiJyIpKX12YXIgSkM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBIdG1sVGFnKHMpe3ZvaWQgMD09PXMmJihzPXt9KSx0aGlzLnRhZ05hbWU9IiIsdGhpcy5hdHRycz17fSx0aGlzLmlubmVySFRNTD0iIix0aGlzLndoaXRlc3BhY2VSZWdleD0vXHMrLyx0aGlzLnRhZ05hbWU9cy50YWdOYW1lfHwiIix0aGlzLmF0dHJzPXMuYXR0cnN8fHt9LHRoaXMuaW5uZXJIVE1MPXMuaW5uZXJIdG1sfHxzLmlubmVySFRNTHx8IiJ9cmV0dXJuIEh0bWxUYWcucHJvdG90eXBlLnNldFRhZ05hbWU9ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMudGFnTmFtZT1zLHRoaXN9LEh0bWxUYWcucHJvdG90eXBlLmdldFRhZ05hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50YWdOYW1lfHwiIn0sSHRtbFRhZy5wcm90b3R5cGUuc2V0QXR0cj1mdW5jdGlvbihzLG8pe3JldHVybiB0aGlzLmdldEF0dHJzKClbc109byx0aGlzfSxIdG1sVGFnLnByb3RvdHlwZS5nZXRBdHRyPWZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLmdldEF0dHJzKClbc119LEh0bWxUYWcucHJvdG90eXBlLnNldEF0dHJzPWZ1bmN0aW9uKHMpe3JldHVybiBPYmplY3QuYXNzaWduKHRoaXMuZ2V0QXR0cnMoKSxzKSx0aGlzfSxIdG1sVGFnLnByb3RvdHlwZS5nZXRBdHRycz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmF0dHJzfHwodGhpcy5hdHRycz17fSl9LEh0bWxUYWcucHJvdG90eXBlLnNldENsYXNzPWZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLnNldEF0dHIoImNsYXNzIixzKX0sSHRtbFRhZy5wcm90b3R5cGUuYWRkQ2xhc3M9ZnVuY3Rpb24ocyl7Zm9yKHZhciBvLGk9dGhpcy5nZXRDbGFzcygpLGE9dGhpcy53aGl0ZXNwYWNlUmVnZXgsdT1pP2kuc3BsaXQoYSk6W10sXz1zLnNwbGl0KGEpO289Xy5zaGlmdCgpOyktMT09PWluZGV4T2YodSxvKSYmdS5wdXNoKG8pO3JldHVybiB0aGlzLmdldEF0dHJzKCkuY2xhc3M9dS5qb2luKCIgIiksdGhpc30sSHRtbFRhZy5wcm90b3R5cGUucmVtb3ZlQ2xhc3M9ZnVuY3Rpb24ocyl7Zm9yKHZhciBvLGk9dGhpcy5nZXRDbGFzcygpLGE9dGhpcy53aGl0ZXNwYWNlUmVnZXgsdT1pP2kuc3BsaXQoYSk6W10sXz1zLnNwbGl0KGEpO3UubGVuZ3RoJiYobz1fLnNoaWZ0KCkpOyl7dmFyIHc9aW5kZXhPZih1LG8pOy0xIT09dyYmdS5zcGxpY2UodywxKX1yZXR1cm4gdGhpcy5nZXRBdHRycygpLmNsYXNzPXUuam9pbigiICIpLHRoaXN9LEh0bWxUYWcucHJvdG90eXBlLmdldENsYXNzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0QXR0cnMoKS5jbGFzc3x8IiJ9LEh0bWxUYWcucHJvdG90eXBlLmhhc0NsYXNzPWZ1bmN0aW9uKHMpe3JldHVybi0xIT09KCIgIit0aGlzLmdldENsYXNzKCkrIiAiKS5pbmRleE9mKCIgIitzKyIgIil9LEh0bWxUYWcucHJvdG90eXBlLnNldElubmVySFRNTD1mdW5jdGlvbihzKXtyZXR1cm4gdGhpcy5pbm5lckhUTUw9cyx0aGlzfSxIdG1sVGFnLnByb3RvdHlwZS5zZXRJbm5lckh0bWw9ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMuc2V0SW5uZXJIVE1MKHMpfSxIdG1sVGFnLnByb3RvdHlwZS5nZXRJbm5lckhUTUw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbm5lckhUTUx8fCIifSxIdG1sVGFnLnByb3RvdHlwZS5nZXRJbm5lckh0bWw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRJbm5lckhUTUwoKX0sSHRtbFRhZy5wcm90b3R5cGUudG9BbmNob3JTdHJpbmc9ZnVuY3Rpb24oKXt2YXIgcz10aGlzLmdldFRhZ05hbWUoKSxvPXRoaXMuYnVpbGRBdHRyc1N0cigpO3JldHVyblsiPCIscyxvPW8/IiAiK286IiIsIj4iLHRoaXMuZ2V0SW5uZXJIdG1sKCksIjwvIixzLCI+Il0uam9pbigiIil9LEh0bWxUYWcucHJvdG90eXBlLmJ1aWxkQXR0cnNTdHI9ZnVuY3Rpb24oKXtpZighdGhpcy5hdHRycylyZXR1cm4iIjt2YXIgcz10aGlzLmdldEF0dHJzKCksbz1bXTtmb3IodmFyIGkgaW4gcylzLmhhc093blByb3BlcnR5KGkpJiZvLnB1c2goaSsnPSInK3NbaV0rJyInKTtyZXR1cm4gby5qb2luKCIgIil9LEh0bWxUYWd9KCk7dmFyIEhDPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQW5jaG9yVGFnQnVpbGRlcihzKXt2b2lkIDA9PT1zJiYocz17fSksdGhpcy5uZXdXaW5kb3c9ITEsdGhpcy50cnVuY2F0ZT17fSx0aGlzLmNsYXNzTmFtZT0iIix0aGlzLm5ld1dpbmRvdz1zLm5ld1dpbmRvd3x8ITEsdGhpcy50cnVuY2F0ZT1zLnRydW5jYXRlfHx7fSx0aGlzLmNsYXNzTmFtZT1zLmNsYXNzTmFtZXx8IiJ9cmV0dXJuIEFuY2hvclRhZ0J1aWxkZXIucHJvdG90eXBlLmJ1aWxkPWZ1bmN0aW9uKHMpe3JldHVybiBuZXcgSkMoe3RhZ05hbWU6ImEiLGF0dHJzOnRoaXMuY3JlYXRlQXR0cnMocyksaW5uZXJIdG1sOnRoaXMucHJvY2Vzc0FuY2hvclRleHQocy5nZXRBbmNob3JUZXh0KCkpfSl9LEFuY2hvclRhZ0J1aWxkZXIucHJvdG90eXBlLmNyZWF0ZUF0dHJzPWZ1bmN0aW9uKHMpe3ZhciBvPXtocmVmOnMuZ2V0QW5jaG9ySHJlZigpfSxpPXRoaXMuY3JlYXRlQ3NzQ2xhc3Mocyk7cmV0dXJuIGkmJihvLmNsYXNzPWkpLHRoaXMubmV3V2luZG93JiYoby50YXJnZXQ9Il9ibGFuayIsby5yZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiKSx0aGlzLnRydW5jYXRlJiZ0aGlzLnRydW5jYXRlLmxlbmd0aCYmdGhpcy50cnVuY2F0ZS5sZW5ndGg8cy5nZXRBbmNob3JUZXh0KCkubGVuZ3RoJiYoby50aXRsZT1zLmdldEFuY2hvckhyZWYoKSksb30sQW5jaG9yVGFnQnVpbGRlci5wcm90b3R5cGUuY3JlYXRlQ3NzQ2xhc3M9ZnVuY3Rpb24ocyl7dmFyIG89dGhpcy5jbGFzc05hbWU7aWYobyl7Zm9yKHZhciBpPVtvXSxhPXMuZ2V0Q3NzQ2xhc3NTdWZmaXhlcygpLHU9MCxfPWEubGVuZ3RoO3U8Xzt1KyspaS5wdXNoKG8rIi0iK2FbdV0pO3JldHVybiBpLmpvaW4oIiAiKX1yZXR1cm4iIn0sQW5jaG9yVGFnQnVpbGRlci5wcm90b3R5cGUucHJvY2Vzc0FuY2hvclRleHQ9ZnVuY3Rpb24ocyl7cmV0dXJuIHM9dGhpcy5kb1RydW5jYXRlKHMpfSxBbmNob3JUYWdCdWlsZGVyLnByb3RvdHlwZS5kb1RydW5jYXRlPWZ1bmN0aW9uKHMpe3ZhciBvPXRoaXMudHJ1bmNhdGU7aWYoIW98fCFvLmxlbmd0aClyZXR1cm4gczt2YXIgaT1vLmxlbmd0aCxhPW8ubG9jYXRpb247cmV0dXJuInNtYXJ0Ij09PWE/ZnVuY3Rpb24gdHJ1bmNhdGVTbWFydChzLG8saSl7dmFyIGEsdTtudWxsPT1pPyhpPSImaGVsbGlwOyIsdT0zLGE9OCk6KHU9aS5sZW5ndGgsYT1pLmxlbmd0aCk7dmFyIGJ1aWxkVXJsPWZ1bmN0aW9uKHMpe3ZhciBvPSIiO3JldHVybiBzLnNjaGVtZSYmcy5ob3N0JiYobys9cy5zY2hlbWUrIjovLyIpLHMuaG9zdCYmKG8rPXMuaG9zdCkscy5wYXRoJiYobys9Ii8iK3MucGF0aCkscy5xdWVyeSYmKG8rPSI/IitzLnF1ZXJ5KSxzLmZyYWdtZW50JiYobys9IiMiK3MuZnJhZ21lbnQpLG99LGJ1aWxkU2VnbWVudD1mdW5jdGlvbihzLG8pe3ZhciBhPW8vMix1PU1hdGguY2VpbChhKSxfPS0xKk1hdGguZmxvb3IoYSksdz0iIjtyZXR1cm4gXzwwJiYodz1zLnN1YnN0cihfKSkscy5zdWJzdHIoMCx1KStpK3d9O2lmKHMubGVuZ3RoPD1vKXJldHVybiBzO3ZhciBfPW8tdSx3PWZ1bmN0aW9uKHMpe3ZhciBvPXt9LGk9cyxhPWkubWF0Y2goL14oW2Etel0rKTpcL1wvL2kpO3JldHVybiBhJiYoby5zY2hlbWU9YVsxXSxpPWkuc3Vic3RyKGFbMF0ubGVuZ3RoKSksKGE9aS5tYXRjaCgvXiguKj8pKD89KFw/fCN8XC98JCkpL2kpKSYmKG8uaG9zdD1hWzFdLGk9aS5zdWJzdHIoYVswXS5sZW5ndGgpKSwoYT1pLm1hdGNoKC9eXC8oLio/KSg/PShcP3wjfCQpKS9pKSkmJihvLnBhdGg9YVsxXSxpPWkuc3Vic3RyKGFbMF0ubGVuZ3RoKSksKGE9aS5tYXRjaCgvXlw/KC4qPykoPz0oI3wkKSkvaSkpJiYoby5xdWVyeT1hWzFdLGk9aS5zdWJzdHIoYVswXS5sZW5ndGgpKSwoYT1pLm1hdGNoKC9eIyguKj8pJC9pKSkmJihvLmZyYWdtZW50PWFbMV0pLG99KHMpO2lmKHcucXVlcnkpe3ZhciB4PXcucXVlcnkubWF0Y2goL14oLio/KSg/PShcP3xcIykpKC4qPykkL2kpO3gmJih3LnF1ZXJ5PXcucXVlcnkuc3Vic3RyKDAseFsxXS5sZW5ndGgpLHM9YnVpbGRVcmwodykpfWlmKHMubGVuZ3RoPD1vKXJldHVybiBzO2lmKHcuaG9zdCYmKHcuaG9zdD13Lmhvc3QucmVwbGFjZSgvXnd3d1wuLywiIikscz1idWlsZFVybCh3KSkscy5sZW5ndGg8PW8pcmV0dXJuIHM7dmFyIEM9IiI7aWYody5ob3N0JiYoQys9dy5ob3N0KSxDLmxlbmd0aD49XylyZXR1cm4gdy5ob3N0Lmxlbmd0aD09bz8ody5ob3N0LnN1YnN0cigwLG8tdSkraSkuc3Vic3RyKDAsXythKTpidWlsZFNlZ21lbnQoQyxfKS5zdWJzdHIoMCxfK2EpO3ZhciBqPSIiO2lmKHcucGF0aCYmKGorPSIvIit3LnBhdGgpLHcucXVlcnkmJihqKz0iPyIrdy5xdWVyeSksail7aWYoKEMraikubGVuZ3RoPj1fKXJldHVybihDK2opLmxlbmd0aD09bz8oQytqKS5zdWJzdHIoMCxvKTooQytidWlsZFNlZ21lbnQoaixfLUMubGVuZ3RoKSkuc3Vic3RyKDAsXythKTtDKz1qfWlmKHcuZnJhZ21lbnQpe3ZhciBMPSIjIit3LmZyYWdtZW50O2lmKChDK0wpLmxlbmd0aD49XylyZXR1cm4oQytMKS5sZW5ndGg9PW8/KEMrTCkuc3Vic3RyKDAsbyk6KEMrYnVpbGRTZWdtZW50KEwsXy1DLmxlbmd0aCkpLnN1YnN0cigwLF8rYSk7Qys9TH1pZih3LnNjaGVtZSYmdy5ob3N0KXt2YXIgQj13LnNjaGVtZSsiOi8vIjtpZigoQytCKS5sZW5ndGg8XylyZXR1cm4oQitDKS5zdWJzdHIoMCxvKX1pZihDLmxlbmd0aDw9bylyZXR1cm4gQzt2YXIgJD0iIjtyZXR1cm4gXz4wJiYoJD1DLnN1YnN0cigtMSpNYXRoLmZsb29yKF8vMikpKSwoQy5zdWJzdHIoMCxNYXRoLmNlaWwoXy8yKSkraSskKS5zdWJzdHIoMCxfK2EpfShzLGkpOiJtaWRkbGUiPT09YT9mdW5jdGlvbiB0cnVuY2F0ZU1pZGRsZShzLG8saSl7aWYocy5sZW5ndGg8PW8pcmV0dXJuIHM7dmFyIGEsdTtudWxsPT1pPyhpPSImaGVsbGlwOyIsYT04LHU9Myk6KGE9aS5sZW5ndGgsdT1pLmxlbmd0aCk7dmFyIF89by11LHc9IiI7cmV0dXJuIF8+MCYmKHc9cy5zdWJzdHIoLTEqTWF0aC5mbG9vcihfLzIpKSksKHMuc3Vic3RyKDAsTWF0aC5jZWlsKF8vMikpK2krdykuc3Vic3RyKDAsXythKX0ocyxpKTpmdW5jdGlvbiB0cnVuY2F0ZUVuZChzLG8saSl7cmV0dXJuIGZ1bmN0aW9uIGVsbGlwc2lzKHMsbyxpKXt2YXIgYTtyZXR1cm4gcy5sZW5ndGg+byYmKG51bGw9PWk/KGk9IiZoZWxsaXA7IixhPTMpOmE9aS5sZW5ndGgscz1zLnN1YnN0cmluZygwLG8tYSkraSksc30ocyxvLGkpfShzLGkpfSxBbmNob3JUYWdCdWlsZGVyfSgpLEtDPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gTWF0Y2gocyl7dGhpcy5fX2pzZHVja0R1bW15RG9jUHJvcD1udWxsLHRoaXMubWF0Y2hlZFRleHQ9IiIsdGhpcy5vZmZzZXQ9MCx0aGlzLnRhZ0J1aWxkZXI9cy50YWdCdWlsZGVyLHRoaXMubWF0Y2hlZFRleHQ9cy5tYXRjaGVkVGV4dCx0aGlzLm9mZnNldD1zLm9mZnNldH1yZXR1cm4gTWF0Y2gucHJvdG90eXBlLmdldE1hdGNoZWRUZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF0Y2hlZFRleHR9LE1hdGNoLnByb3RvdHlwZS5zZXRPZmZzZXQ9ZnVuY3Rpb24ocyl7dGhpcy5vZmZzZXQ9c30sTWF0Y2gucHJvdG90eXBlLmdldE9mZnNldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9mZnNldH0sTWF0Y2gucHJvdG90eXBlLmdldENzc0NsYXNzU3VmZml4ZXM9ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5nZXRUeXBlKCldfSxNYXRjaC5wcm90b3R5cGUuYnVpbGRUYWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50YWdCdWlsZGVyLmJ1aWxkKHRoaXMpfSxNYXRjaH0oKSxleHRlbmRTdGF0aWNzPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIGV4dGVuZFN0YXRpY3M9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHMsbyl7cy5fX3Byb3RvX189b318fGZ1bmN0aW9uKHMsbyl7Zm9yKHZhciBpIGluIG8pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8saSkmJihzW2ldPW9baV0pfSxleHRlbmRTdGF0aWNzKHMsbyl9O2Z1bmN0aW9uIHRzbGliX2VzNl9leHRlbmRzKHMsbyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG8mJm51bGwhPT1vKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcobykrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gX18oKXt0aGlzLmNvbnN0cnVjdG9yPXN9ZXh0ZW5kU3RhdGljcyhzLG8pLHMucHJvdG90eXBlPW51bGw9PT1vP09iamVjdC5jcmVhdGUobyk6KF9fLnByb3RvdHlwZT1vLnByb3RvdHlwZSxuZXcgX18pfXZhciBfX2Fzc2lnbj1mdW5jdGlvbigpe3JldHVybiBfX2Fzc2lnbj1PYmplY3QuYXNzaWdufHxmdW5jdGlvbiBfX2Fzc2lnbihzKXtmb3IodmFyIG8saT0xLGE9YXJndW1lbnRzLmxlbmd0aDtpPGE7aSsrKWZvcih2YXIgdSBpbiBvPWFyZ3VtZW50c1tpXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobyx1KSYmKHNbdV09b1t1XSk7cmV0dXJuIHN9LF9fYXNzaWduLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07T2JqZWN0LmNyZWF0ZTtPYmplY3QuY3JlYXRlOyJmdW5jdGlvbiI9PXR5cGVvZiBTdXBwcmVzc2VkRXJyb3ImJlN1cHByZXNzZWRFcnJvcjt2YXIgR0MsWUM9ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gRW1haWxNYXRjaChvKXt2YXIgaT1zLmNhbGwodGhpcyxvKXx8dGhpcztyZXR1cm4gaS5lbWFpbD0iIixpLmVtYWlsPW8uZW1haWwsaX1yZXR1cm4gdHNsaWJfZXM2X2V4dGVuZHMoRW1haWxNYXRjaCxzKSxFbWFpbE1hdGNoLnByb3RvdHlwZS5nZXRUeXBlPWZ1bmN0aW9uKCl7cmV0dXJuImVtYWlsIn0sRW1haWxNYXRjaC5wcm90b3R5cGUuZ2V0RW1haWw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbWFpbH0sRW1haWxNYXRjaC5wcm90b3R5cGUuZ2V0QW5jaG9ySHJlZj1mdW5jdGlvbigpe3JldHVybiJtYWlsdG86Iit0aGlzLmVtYWlsfSxFbWFpbE1hdGNoLnByb3RvdHlwZS5nZXRBbmNob3JUZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW1haWx9LEVtYWlsTWF0Y2h9KEtDKSxYQz1mdW5jdGlvbihzKXtmdW5jdGlvbiBIYXNodGFnTWF0Y2gobyl7dmFyIGk9cy5jYWxsKHRoaXMsbyl8fHRoaXM7cmV0dXJuIGkuc2VydmljZU5hbWU9IiIsaS5oYXNodGFnPSIiLGkuc2VydmljZU5hbWU9by5zZXJ2aWNlTmFtZSxpLmhhc2h0YWc9by5oYXNodGFnLGl9cmV0dXJuIHRzbGliX2VzNl9leHRlbmRzKEhhc2h0YWdNYXRjaCxzKSxIYXNodGFnTWF0Y2gucHJvdG90eXBlLmdldFR5cGU9ZnVuY3Rpb24oKXtyZXR1cm4iaGFzaHRhZyJ9LEhhc2h0YWdNYXRjaC5wcm90b3R5cGUuZ2V0U2VydmljZU5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXJ2aWNlTmFtZX0sSGFzaHRhZ01hdGNoLnByb3RvdHlwZS5nZXRIYXNodGFnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzaHRhZ30sSGFzaHRhZ01hdGNoLnByb3RvdHlwZS5nZXRBbmNob3JIcmVmPWZ1bmN0aW9uKCl7dmFyIHM9dGhpcy5zZXJ2aWNlTmFtZSxvPXRoaXMuaGFzaHRhZztzd2l0Y2gocyl7Y2FzZSJ0d2l0dGVyIjpyZXR1cm4iaHR0cHM6Ly90d2l0dGVyLmNvbS9oYXNodGFnLyIrbztjYXNlImZhY2Vib29rIjpyZXR1cm4iaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL2hhc2h0YWcvIitvO2Nhc2UiaW5zdGFncmFtIjpyZXR1cm4iaHR0cHM6Ly9pbnN0YWdyYW0uY29tL2V4cGxvcmUvdGFncy8iK287Y2FzZSJ0aWt0b2siOnJldHVybiJodHRwczovL3d3dy50aWt0b2suY29tL3RhZy8iK287ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gc2VydmljZSBuYW1lIHRvIHBvaW50IGhhc2h0YWcgdG86ICIrcyl9fSxIYXNodGFnTWF0Y2gucHJvdG90eXBlLmdldEFuY2hvclRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4iIyIrdGhpcy5oYXNodGFnfSxIYXNodGFnTWF0Y2h9KEtDKSxRQz1mdW5jdGlvbihzKXtmdW5jdGlvbiBNZW50aW9uTWF0Y2gobyl7dmFyIGk9cy5jYWxsKHRoaXMsbyl8fHRoaXM7cmV0dXJuIGkuc2VydmljZU5hbWU9InR3aXR0ZXIiLGkubWVudGlvbj0iIixpLm1lbnRpb249by5tZW50aW9uLGkuc2VydmljZU5hbWU9by5zZXJ2aWNlTmFtZSxpfXJldHVybiB0c2xpYl9lczZfZXh0ZW5kcyhNZW50aW9uTWF0Y2gscyksTWVudGlvbk1hdGNoLnByb3RvdHlwZS5nZXRUeXBlPWZ1bmN0aW9uKCl7cmV0dXJuIm1lbnRpb24ifSxNZW50aW9uTWF0Y2gucHJvdG90eXBlLmdldE1lbnRpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZW50aW9ufSxNZW50aW9uTWF0Y2gucHJvdG90eXBlLmdldFNlcnZpY2VOYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VydmljZU5hbWV9LE1lbnRpb25NYXRjaC5wcm90b3R5cGUuZ2V0QW5jaG9ySHJlZj1mdW5jdGlvbigpe3N3aXRjaCh0aGlzLnNlcnZpY2VOYW1lKXtjYXNlInR3aXR0ZXIiOnJldHVybiJodHRwczovL3R3aXR0ZXIuY29tLyIrdGhpcy5tZW50aW9uO2Nhc2UiaW5zdGFncmFtIjpyZXR1cm4iaHR0cHM6Ly9pbnN0YWdyYW0uY29tLyIrdGhpcy5tZW50aW9uO2Nhc2Uic291bmRjbG91ZCI6cmV0dXJuImh0dHBzOi8vc291bmRjbG91ZC5jb20vIit0aGlzLm1lbnRpb247Y2FzZSJ0aWt0b2siOnJldHVybiJodHRwczovL3d3dy50aWt0b2suY29tL0AiK3RoaXMubWVudGlvbjtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5rbm93biBzZXJ2aWNlIG5hbWUgdG8gcG9pbnQgbWVudGlvbiB0bzogIit0aGlzLnNlcnZpY2VOYW1lKX19LE1lbnRpb25NYXRjaC5wcm90b3R5cGUuZ2V0QW5jaG9yVGV4dD1mdW5jdGlvbigpe3JldHVybiJAIit0aGlzLm1lbnRpb259LE1lbnRpb25NYXRjaC5wcm90b3R5cGUuZ2V0Q3NzQ2xhc3NTdWZmaXhlcz1mdW5jdGlvbigpe3ZhciBvPXMucHJvdG90eXBlLmdldENzc0NsYXNzU3VmZml4ZXMuY2FsbCh0aGlzKSxpPXRoaXMuZ2V0U2VydmljZU5hbWUoKTtyZXR1cm4gaSYmby5wdXNoKGkpLG99LE1lbnRpb25NYXRjaH0oS0MpLFpDPWZ1bmN0aW9uKHMpe2Z1bmN0aW9uIFBob25lTWF0Y2gobyl7dmFyIGk9cy5jYWxsKHRoaXMsbyl8fHRoaXM7cmV0dXJuIGkubnVtYmVyPSIiLGkucGx1c1NpZ249ITEsaS5udW1iZXI9by5udW1iZXIsaS5wbHVzU2lnbj1vLnBsdXNTaWduLGl9cmV0dXJuIHRzbGliX2VzNl9leHRlbmRzKFBob25lTWF0Y2gscyksUGhvbmVNYXRjaC5wcm90b3R5cGUuZ2V0VHlwZT1mdW5jdGlvbigpe3JldHVybiJwaG9uZSJ9LFBob25lTWF0Y2gucHJvdG90eXBlLmdldFBob25lTnVtYmVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubnVtYmVyfSxQaG9uZU1hdGNoLnByb3RvdHlwZS5nZXROdW1iZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRQaG9uZU51bWJlcigpfSxQaG9uZU1hdGNoLnByb3RvdHlwZS5nZXRBbmNob3JIcmVmPWZ1bmN0aW9uKCl7cmV0dXJuInRlbDoiKyh0aGlzLnBsdXNTaWduPyIrIjoiIikrdGhpcy5udW1iZXJ9LFBob25lTWF0Y2gucHJvdG90eXBlLmdldEFuY2hvclRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXRjaGVkVGV4dH0sUGhvbmVNYXRjaH0oS0MpLGVBPWZ1bmN0aW9uKHMpe2Z1bmN0aW9uIFVybE1hdGNoKG8pe3ZhciBpPXMuY2FsbCh0aGlzLG8pfHx0aGlzO3JldHVybiBpLnVybD0iIixpLnVybE1hdGNoVHlwZT0ic2NoZW1lIixpLnByb3RvY29sVXJsTWF0Y2g9ITEsaS5wcm90b2NvbFJlbGF0aXZlTWF0Y2g9ITEsaS5zdHJpcFByZWZpeD17c2NoZW1lOiEwLHd3dzohMH0saS5zdHJpcFRyYWlsaW5nU2xhc2g9ITAsaS5kZWNvZGVQZXJjZW50RW5jb2Rpbmc9ITAsaS5zY2hlbWVQcmVmaXhSZWdleD0vXihodHRwcz86XC9cLyk/L2ksaS53d3dQcmVmaXhSZWdleD0vXihodHRwcz86XC9cLyk/KHd3d1wuKT8vaSxpLnByb3RvY29sUmVsYXRpdmVSZWdleD0vXlwvXC8vLGkucHJvdG9jb2xQcmVwZW5kZWQ9ITEsaS51cmxNYXRjaFR5cGU9by51cmxNYXRjaFR5cGUsaS51cmw9by51cmwsaS5wcm90b2NvbFVybE1hdGNoPW8ucHJvdG9jb2xVcmxNYXRjaCxpLnByb3RvY29sUmVsYXRpdmVNYXRjaD1vLnByb3RvY29sUmVsYXRpdmVNYXRjaCxpLnN0cmlwUHJlZml4PW8uc3RyaXBQcmVmaXgsaS5zdHJpcFRyYWlsaW5nU2xhc2g9by5zdHJpcFRyYWlsaW5nU2xhc2gsaS5kZWNvZGVQZXJjZW50RW5jb2Rpbmc9by5kZWNvZGVQZXJjZW50RW5jb2RpbmcsaX1yZXR1cm4gdHNsaWJfZXM2X2V4dGVuZHMoVXJsTWF0Y2gscyksVXJsTWF0Y2gucHJvdG90eXBlLmdldFR5cGU9ZnVuY3Rpb24oKXtyZXR1cm4idXJsIn0sVXJsTWF0Y2gucHJvdG90eXBlLmdldFVybE1hdGNoVHlwZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnVybE1hdGNoVHlwZX0sVXJsTWF0Y2gucHJvdG90eXBlLmdldFVybD1mdW5jdGlvbigpe3ZhciBzPXRoaXMudXJsO3JldHVybiB0aGlzLnByb3RvY29sUmVsYXRpdmVNYXRjaHx8dGhpcy5wcm90b2NvbFVybE1hdGNofHx0aGlzLnByb3RvY29sUHJlcGVuZGVkfHwocz10aGlzLnVybD0iaHR0cDovLyIrcyx0aGlzLnByb3RvY29sUHJlcGVuZGVkPSEwKSxzfSxVcmxNYXRjaC5wcm90b3R5cGUuZ2V0QW5jaG9ySHJlZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFVybCgpLnJlcGxhY2UoLyZhbXA7L2csIiYiKX0sVXJsTWF0Y2gucHJvdG90eXBlLmdldEFuY2hvclRleHQ9ZnVuY3Rpb24oKXt2YXIgcz10aGlzLmdldE1hdGNoZWRUZXh0KCk7cmV0dXJuIHRoaXMucHJvdG9jb2xSZWxhdGl2ZU1hdGNoJiYocz10aGlzLnN0cmlwUHJvdG9jb2xSZWxhdGl2ZVByZWZpeChzKSksdGhpcy5zdHJpcFByZWZpeC5zY2hlbWUmJihzPXRoaXMuc3RyaXBTY2hlbWVQcmVmaXgocykpLHRoaXMuc3RyaXBQcmVmaXgud3d3JiYocz10aGlzLnN0cmlwV3d3UHJlZml4KHMpKSx0aGlzLnN0cmlwVHJhaWxpbmdTbGFzaCYmKHM9dGhpcy5yZW1vdmVUcmFpbGluZ1NsYXNoKHMpKSx0aGlzLmRlY29kZVBlcmNlbnRFbmNvZGluZyYmKHM9dGhpcy5yZW1vdmVQZXJjZW50RW5jb2RpbmcocykpLHN9LFVybE1hdGNoLnByb3RvdHlwZS5zdHJpcFNjaGVtZVByZWZpeD1mdW5jdGlvbihzKXtyZXR1cm4gcy5yZXBsYWNlKHRoaXMuc2NoZW1lUHJlZml4UmVnZXgsIiIpfSxVcmxNYXRjaC5wcm90b3R5cGUuc3RyaXBXd3dQcmVmaXg9ZnVuY3Rpb24ocyl7cmV0dXJuIHMucmVwbGFjZSh0aGlzLnd3d1ByZWZpeFJlZ2V4LCIkMSIpfSxVcmxNYXRjaC5wcm90b3R5cGUuc3RyaXBQcm90b2NvbFJlbGF0aXZlUHJlZml4PWZ1bmN0aW9uKHMpe3JldHVybiBzLnJlcGxhY2UodGhpcy5wcm90b2NvbFJlbGF0aXZlUmVnZXgsIiIpfSxVcmxNYXRjaC5wcm90b3R5cGUucmVtb3ZlVHJhaWxpbmdTbGFzaD1mdW5jdGlvbihzKXtyZXR1cm4iLyI9PT1zLmNoYXJBdChzLmxlbmd0aC0xKSYmKHM9cy5zbGljZSgwLC0xKSksc30sVXJsTWF0Y2gucHJvdG90eXBlLnJlbW92ZVBlcmNlbnRFbmNvZGluZz1mdW5jdGlvbihzKXt2YXIgbz1zLnJlcGxhY2UoLyUyMi9naSwiJnF1b3Q7IikucmVwbGFjZSgvJTI2L2dpLCImYW1wOyIpLnJlcGxhY2UoLyUyNy9naSwiJiMzOTsiKS5yZXBsYWNlKC8lM0MvZ2ksIiZsdDsiKS5yZXBsYWNlKC8lM0UvZ2ksIiZndDsiKTt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChvKX1jYXRjaChzKXtyZXR1cm4gb319LFVybE1hdGNofShLQyksdEE9ZnVuY3Rpb24gdEEocyl7dGhpcy5fX2pzZHVja0R1bW15RG9jUHJvcD1udWxsLHRoaXMudGFnQnVpbGRlcj1zLnRhZ0J1aWxkZXJ9LHJBPS9bQS1aYS16XS8sbkE9L1tcZF0vLHNBPS9bXERdLyxvQT0vXHMvLGlBPS9bJyJdLyxhQT0vW1x4MDAtXHgxRlx4N0ZdLyxjQT0vQS1aYS16XHhBQVx4QjVceEJBXHhDMC1ceEQ2XHhEOC1ceEY2XHhGOC1cdTAyQzFcdTAyQzYtXHUwMkQxXHUwMkUwLVx1MDJFNFx1MDJFQ1x1MDJFRVx1MDM3MC1cdTAzNzRcdTAzNzZcdTAzNzdcdTAzN0EtXHUwMzdEXHUwMzdGXHUwMzg2XHUwMzg4LVx1MDM4QVx1MDM4Q1x1MDM4RS1cdTAzQTFcdTAzQTMtXHUwM0Y1XHUwM0Y3LVx1MDQ4MVx1MDQ4QS1cdTA1MkZcdTA1MzEtXHUwNTU2XHUwNTU5XHUwNTYxLVx1MDU4N1x1MDVEMC1cdTA1RUFcdTA1RjAtXHUwNUYyXHUwNjIwLVx1MDY0QVx1MDY2RVx1MDY2Rlx1MDY3MS1cdTA2RDNcdTA2RDVcdTA2RTVcdTA2RTZcdTA2RUVcdTA2RUZcdTA2RkEtXHUwNkZDXHUwNkZGXHUwNzEwXHUwNzEyLVx1MDcyRlx1MDc0RC1cdTA3QTVcdTA3QjFcdTA3Q0EtXHUwN0VBXHUwN0Y0XHUwN0Y1XHUwN0ZBXHUwODAwLVx1MDgxNVx1MDgxQVx1MDgyNFx1MDgyOFx1MDg0MC1cdTA4NThcdTA4QTAtXHUwOEI0XHUwOEI2LVx1MDhCRFx1MDkwNC1cdTA5MzlcdTA5M0RcdTA5NTBcdTA5NTgtXHUwOTYxXHUwOTcxLVx1MDk4MFx1MDk4NS1cdTA5OENcdTA5OEZcdTA5OTBcdTA5OTMtXHUwOUE4XHUwOUFBLVx1MDlCMFx1MDlCMlx1MDlCNi1cdTA5QjlcdTA5QkRcdTA5Q0VcdTA5RENcdTA5RERcdTA5REYtXHUwOUUxXHUwOUYwXHUwOUYxXHUwQTA1LVx1MEEwQVx1MEEwRlx1MEExMFx1MEExMy1cdTBBMjhcdTBBMkEtXHUwQTMwXHUwQTMyXHUwQTMzXHUwQTM1XHUwQTM2XHUwQTM4XHUwQTM5XHUwQTU5LVx1MEE1Q1x1MEE1RVx1MEE3Mi1cdTBBNzRcdTBBODUtXHUwQThEXHUwQThGLVx1MEE5MVx1MEE5My1cdTBBQThcdTBBQUEtXHUwQUIwXHUwQUIyXHUwQUIzXHUwQUI1LVx1MEFCOVx1MEFCRFx1MEFEMFx1MEFFMFx1MEFFMVx1MEFGOVx1MEIwNS1cdTBCMENcdTBCMEZcdTBCMTBcdTBCMTMtXHUwQjI4XHUwQjJBLVx1MEIzMFx1MEIzMlx1MEIzM1x1MEIzNS1cdTBCMzlcdTBCM0RcdTBCNUNcdTBCNURcdTBCNUYtXHUwQjYxXHUwQjcxXHUwQjgzXHUwQjg1LVx1MEI4QVx1MEI4RS1cdTBCOTBcdTBCOTItXHUwQjk1XHUwQjk5XHUwQjlBXHUwQjlDXHUwQjlFXHUwQjlGXHUwQkEzXHUwQkE0XHUwQkE4LVx1MEJBQVx1MEJBRS1cdTBCQjlcdTBCRDBcdTBDMDUtXHUwQzBDXHUwQzBFLVx1MEMxMFx1MEMxMi1cdTBDMjhcdTBDMkEtXHUwQzM5XHUwQzNEXHUwQzU4LVx1MEM1QVx1MEM2MFx1MEM2MVx1MEM4MFx1MEM4NS1cdTBDOENcdTBDOEUtXHUwQzkwXHUwQzkyLVx1MENBOFx1MENBQS1cdTBDQjNcdTBDQjUtXHUwQ0I5XHUwQ0JEXHUwQ0RFXHUwQ0UwXHUwQ0UxXHUwQ0YxXHUwQ0YyXHUwRDA1LVx1MEQwQ1x1MEQwRS1cdTBEMTBcdTBEMTItXHUwRDNBXHUwRDNEXHUwRDRFXHUwRDU0LVx1MEQ1Nlx1MEQ1Ri1cdTBENjFcdTBEN0EtXHUwRDdGXHUwRDg1LVx1MEQ5Nlx1MEQ5QS1cdTBEQjFcdTBEQjMtXHUwREJCXHUwREJEXHUwREMwLVx1MERDNlx1MEUwMS1cdTBFMzBcdTBFMzJcdTBFMzNcdTBFNDAtXHUwRTQ2XHUwRTgxXHUwRTgyXHUwRTg0XHUwRTg3XHUwRTg4XHUwRThBXHUwRThEXHUwRTk0LVx1MEU5N1x1MEU5OS1cdTBFOUZcdTBFQTEtXHUwRUEzXHUwRUE1XHUwRUE3XHUwRUFBXHUwRUFCXHUwRUFELVx1MEVCMFx1MEVCMlx1MEVCM1x1MEVCRFx1MEVDMC1cdTBFQzRcdTBFQzZcdTBFREMtXHUwRURGXHUwRjAwXHUwRjQwLVx1MEY0N1x1MEY0OS1cdTBGNkNcdTBGODgtXHUwRjhDXHUxMDAwLVx1MTAyQVx1MTAzRlx1MTA1MC1cdTEwNTVcdTEwNUEtXHUxMDVEXHUxMDYxXHUxMDY1XHUxMDY2XHUxMDZFLVx1MTA3MFx1MTA3NS1cdTEwODFcdTEwOEVcdTEwQTAtXHUxMEM1XHUxMEM3XHUxMENEXHUxMEQwLVx1MTBGQVx1MTBGQy1cdTEyNDhcdTEyNEEtXHUxMjREXHUxMjUwLVx1MTI1Nlx1MTI1OFx1MTI1QS1cdTEyNURcdTEyNjAtXHUxMjg4XHUxMjhBLVx1MTI4RFx1MTI5MC1cdTEyQjBcdTEyQjItXHUxMkI1XHUxMkI4LVx1MTJCRVx1MTJDMFx1MTJDMi1cdTEyQzVcdTEyQzgtXHUxMkQ2XHUxMkQ4LVx1MTMxMFx1MTMxMi1cdTEzMTVcdTEzMTgtXHUxMzVBXHUxMzgwLVx1MTM4Rlx1MTNBMC1cdTEzRjVcdTEzRjgtXHUxM0ZEXHUxNDAxLVx1MTY2Q1x1MTY2Ri1cdTE2N0ZcdTE2ODEtXHUxNjlBXHUxNkEwLVx1MTZFQVx1MTZGMS1cdTE2RjhcdTE3MDAtXHUxNzBDXHUxNzBFLVx1MTcxMVx1MTcyMC1cdTE3MzFcdTE3NDAtXHUxNzUxXHUxNzYwLVx1MTc2Q1x1MTc2RS1cdTE3NzBcdTE3ODAtXHUxN0IzXHUxN0Q3XHUxN0RDXHUxODIwLVx1MTg3N1x1MTg4MC1cdTE4ODRcdTE4ODctXHUxOEE4XHUxOEFBXHUxOEIwLVx1MThGNVx1MTkwMC1cdTE5MUVcdTE5NTAtXHUxOTZEXHUxOTcwLVx1MTk3NFx1MTk4MC1cdTE5QUJcdTE5QjAtXHUxOUM5XHUxQTAwLVx1MUExNlx1MUEyMC1cdTFBNTRcdTFBQTdcdTFCMDUtXHUxQjMzXHUxQjQ1LVx1MUI0Qlx1MUI4My1cdTFCQTBcdTFCQUVcdTFCQUZcdTFCQkEtXHUxQkU1XHUxQzAwLVx1MUMyM1x1MUM0RC1cdTFDNEZcdTFDNUEtXHUxQzdEXHUxQzgwLVx1MUM4OFx1MUNFOS1cdTFDRUNcdTFDRUUtXHUxQ0YxXHUxQ0Y1XHUxQ0Y2XHUxRDAwLVx1MURCRlx1MUUwMC1cdTFGMTVcdTFGMTgtXHUxRjFEXHUxRjIwLVx1MUY0NVx1MUY0OC1cdTFGNERcdTFGNTAtXHUxRjU3XHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGLVx1MUY3RFx1MUY4MC1cdTFGQjRcdTFGQjYtXHUxRkJDXHUxRkJFXHUxRkMyLVx1MUZDNFx1MUZDNi1cdTFGQ0NcdTFGRDAtXHUxRkQzXHUxRkQ2LVx1MUZEQlx1MUZFMC1cdTFGRUNcdTFGRjItXHUxRkY0XHUxRkY2LVx1MUZGQ1x1MjA3MVx1MjA3Rlx1MjA5MC1cdTIwOUNcdTIxMDJcdTIxMDdcdTIxMEEtXHUyMTEzXHUyMTE1XHUyMTE5LVx1MjExRFx1MjEyNFx1MjEyNlx1MjEyOFx1MjEyQS1cdTIxMkRcdTIxMkYtXHUyMTM5XHUyMTNDLVx1MjEzRlx1MjE0NS1cdTIxNDlcdTIxNEVcdTIxODNcdTIxODRcdTJDMDAtXHUyQzJFXHUyQzMwLVx1MkM1RVx1MkM2MC1cdTJDRTRcdTJDRUItXHUyQ0VFXHUyQ0YyXHUyQ0YzXHUyRDAwLVx1MkQyNVx1MkQyN1x1MkQyRFx1MkQzMC1cdTJENjdcdTJENkZcdTJEODAtXHUyRDk2XHUyREEwLVx1MkRBNlx1MkRBOC1cdTJEQUVcdTJEQjAtXHUyREI2XHUyREI4LVx1MkRCRVx1MkRDMC1cdTJEQzZcdTJEQzgtXHUyRENFXHUyREQwLVx1MkRENlx1MkREOC1cdTJEREVcdTJFMkZcdTMwMDVcdTMwMDZcdTMwMzEtXHUzMDM1XHUzMDNCXHUzMDNDXHUzMDQxLVx1MzA5Nlx1MzA5RC1cdTMwOUZcdTMwQTEtXHUzMEZBXHUzMEZDLVx1MzBGRlx1MzEwNS1cdTMxMkRcdTMxMzEtXHUzMThFXHUzMUEwLVx1MzFCQVx1MzFGMC1cdTMxRkZcdTM0MDAtXHU0REI1XHU0RTAwLVx1OUZENVx1QTAwMC1cdUE0OENcdUE0RDAtXHVBNEZEXHVBNTAwLVx1QTYwQ1x1QTYxMC1cdUE2MUZcdUE2MkFcdUE2MkJcdUE2NDAtXHVBNjZFXHVBNjdGLVx1QTY5RFx1QTZBMC1cdUE2RTVcdUE3MTctXHVBNzFGXHVBNzIyLVx1QTc4OFx1QTc4Qi1cdUE3QUVcdUE3QjAtXHVBN0I3XHVBN0Y3LVx1QTgwMVx1QTgwMy1cdUE4MDVcdUE4MDctXHVBODBBXHVBODBDLVx1QTgyMlx1QTg0MC1cdUE4NzNcdUE4ODItXHVBOEIzXHVBOEYyLVx1QThGN1x1QThGQlx1QThGRFx1QTkwQS1cdUE5MjVcdUE5MzAtXHVBOTQ2XHVBOTYwLVx1QTk3Q1x1QTk4NC1cdUE5QjJcdUE5Q0ZcdUE5RTAtXHVBOUU0XHVBOUU2LVx1QTlFRlx1QTlGQS1cdUE5RkVcdUFBMDAtXHVBQTI4XHVBQTQwLVx1QUE0Mlx1QUE0NC1cdUFBNEJcdUFBNjAtXHVBQTc2XHVBQTdBXHVBQTdFLVx1QUFBRlx1QUFCMVx1QUFCNVx1QUFCNlx1QUFCOS1cdUFBQkRcdUFBQzBcdUFBQzJcdUFBREItXHVBQUREXHVBQUUwLVx1QUFFQVx1QUFGMi1cdUFBRjRcdUFCMDEtXHVBQjA2XHVBQjA5LVx1QUIwRVx1QUIxMS1cdUFCMTZcdUFCMjAtXHVBQjI2XHVBQjI4LVx1QUIyRVx1QUIzMC1cdUFCNUFcdUFCNUMtXHVBQjY1XHVBQjcwLVx1QUJFMlx1QUMwMC1cdUQ3QTNcdUQ3QjAtXHVEN0M2XHVEN0NCLVx1RDdGQlx1RjkwMC1cdUZBNkRcdUZBNzAtXHVGQUQ5XHVGQjAwLVx1RkIwNlx1RkIxMy1cdUZCMTdcdUZCMURcdUZCMUYtXHVGQjI4XHVGQjJBLVx1RkIzNlx1RkIzOC1cdUZCM0NcdUZCM0VcdUZCNDBcdUZCNDFcdUZCNDNcdUZCNDRcdUZCNDYtXHVGQkIxXHVGQkQzLVx1RkQzRFx1RkQ1MC1cdUZEOEZcdUZEOTItXHVGREM3XHVGREYwLVx1RkRGQlx1RkU3MC1cdUZFNzRcdUZFNzYtXHVGRUZDXHVGRjIxLVx1RkYzQVx1RkY0MS1cdUZGNUFcdUZGNjYtXHVGRkJFXHVGRkMyLVx1RkZDN1x1RkZDQS1cdUZGQ0ZcdUZGRDItXHVGRkQ3XHVGRkRBLVx1RkZEQy8uc291cmNlLGxBPWNBKy9cdTI3MDAtXHUyN2JmXHVkZGU2LVx1ZGRmZlx1ZDgwMC1cdWRiZmZcdWRjMDAtXHVkZmZmXHVmZTBlXHVmZTBmXHUwMzAwLVx1MDM2Zlx1ZmUyMC1cdWZlMjNcdTIwZDAtXHUyMGYwXHVkODNjXHVkZmZiLVx1ZGZmZlx1MjAwZFx1MzI5OVx1MzI5N1x1MzAzZFx1MzAzMFx1MjRjMlx1ZDgzY1x1ZGQ3MC1cdWRkNzFcdWRkN2UtXHVkZDdmXHVkZDhlXHVkZDkxLVx1ZGQ5YVx1ZGRlNi1cdWRkZmZcdWRlMDEtXHVkZTAyXHVkZTFhXHVkZTJmXHVkZTMyLVx1ZGUzYVx1ZGU1MC1cdWRlNTFcdTIwM2NcdTIwNDlcdTI1YWEtXHUyNWFiXHUyNWI2XHUyNWMwXHUyNWZiLVx1MjVmZVx1MDBhOVx1MDBhZVx1MjEyMlx1MjEzOVx1ZGMwNFx1MjYwMC1cdTI2RkZcdTJiMDVcdTJiMDZcdTJiMDdcdTJiMWJcdTJiMWNcdTJiNTBcdTJiNTVcdTIzMWFcdTIzMWJcdTIzMjhcdTIzY2ZcdTIzZTktXHUyM2YzXHUyM2Y4LVx1MjNmYVx1ZGNjZlx1MjkzNVx1MjkzNFx1MjE5MC1cdTIxZmYvLnNvdXJjZSsvXHUwMzAwLVx1MDM2Rlx1MDQ4My1cdTA0ODlcdTA1OTEtXHUwNUJEXHUwNUJGXHUwNUMxXHUwNUMyXHUwNUM0XHUwNUM1XHUwNUM3XHUwNjEwLVx1MDYxQVx1MDY0Qi1cdTA2NUZcdTA2NzBcdTA2RDYtXHUwNkRDXHUwNkRGLVx1MDZFNFx1MDZFN1x1MDZFOFx1MDZFQS1cdTA2RURcdTA3MTFcdTA3MzAtXHUwNzRBXHUwN0E2LVx1MDdCMFx1MDdFQi1cdTA3RjNcdTA4MTYtXHUwODE5XHUwODFCLVx1MDgyM1x1MDgyNS1cdTA4MjdcdTA4MjktXHUwODJEXHUwODU5LVx1MDg1Qlx1MDhENC1cdTA4RTFcdTA4RTMtXHUwOTAzXHUwOTNBLVx1MDkzQ1x1MDkzRS1cdTA5NEZcdTA5NTEtXHUwOTU3XHUwOTYyXHUwOTYzXHUwOTgxLVx1MDk4M1x1MDlCQ1x1MDlCRS1cdTA5QzRcdTA5QzdcdTA5QzhcdTA5Q0ItXHUwOUNEXHUwOUQ3XHUwOUUyXHUwOUUzXHUwQTAxLVx1MEEwM1x1MEEzQ1x1MEEzRS1cdTBBNDJcdTBBNDdcdTBBNDhcdTBBNEItXHUwQTREXHUwQTUxXHUwQTcwXHUwQTcxXHUwQTc1XHUwQTgxLVx1MEE4M1x1MEFCQ1x1MEFCRS1cdTBBQzVcdTBBQzctXHUwQUM5XHUwQUNCLVx1MEFDRFx1MEFFMlx1MEFFM1x1MEIwMS1cdTBCMDNcdTBCM0NcdTBCM0UtXHUwQjQ0XHUwQjQ3XHUwQjQ4XHUwQjRCLVx1MEI0RFx1MEI1Nlx1MEI1N1x1MEI2Mlx1MEI2M1x1MEI4Mlx1MEJCRS1cdTBCQzJcdTBCQzYtXHUwQkM4XHUwQkNBLVx1MEJDRFx1MEJEN1x1MEMwMC1cdTBDMDNcdTBDM0UtXHUwQzQ0XHUwQzQ2LVx1MEM0OFx1MEM0QS1cdTBDNERcdTBDNTVcdTBDNTZcdTBDNjJcdTBDNjNcdTBDODEtXHUwQzgzXHUwQ0JDXHUwQ0JFLVx1MENDNFx1MENDNi1cdTBDQzhcdTBDQ0EtXHUwQ0NEXHUwQ0Q1XHUwQ0Q2XHUwQ0UyXHUwQ0UzXHUwRDAxLVx1MEQwM1x1MEQzRS1cdTBENDRcdTBENDYtXHUwRDQ4XHUwRDRBLVx1MEQ0RFx1MEQ1N1x1MEQ2Mlx1MEQ2M1x1MEQ4Mlx1MEQ4M1x1MERDQVx1MERDRi1cdTBERDRcdTBERDZcdTBERDgtXHUwRERGXHUwREYyXHUwREYzXHUwRTMxXHUwRTM0LVx1MEUzQVx1MEU0Ny1cdTBFNEVcdTBFQjFcdTBFQjQtXHUwRUI5XHUwRUJCXHUwRUJDXHUwRUM4LVx1MEVDRFx1MEYxOFx1MEYxOVx1MEYzNVx1MEYzN1x1MEYzOVx1MEYzRVx1MEYzRlx1MEY3MS1cdTBGODRcdTBGODZcdTBGODdcdTBGOEQtXHUwRjk3XHUwRjk5LVx1MEZCQ1x1MEZDNlx1MTAyQi1cdTEwM0VcdTEwNTYtXHUxMDU5XHUxMDVFLVx1MTA2MFx1MTA2Mi1cdTEwNjRcdTEwNjctXHUxMDZEXHUxMDcxLVx1MTA3NFx1MTA4Mi1cdTEwOERcdTEwOEZcdTEwOUEtXHUxMDlEXHUxMzVELVx1MTM1Rlx1MTcxMi1cdTE3MTRcdTE3MzItXHUxNzM0XHUxNzUyXHUxNzUzXHUxNzcyXHUxNzczXHUxN0I0LVx1MTdEM1x1MTdERFx1MTgwQi1cdTE4MERcdTE4ODVcdTE4ODZcdTE4QTlcdTE5MjAtXHUxOTJCXHUxOTMwLVx1MTkzQlx1MUExNy1cdTFBMUJcdTFBNTUtXHUxQTVFXHUxQTYwLVx1MUE3Q1x1MUE3Rlx1MUFCMC1cdTFBQkVcdTFCMDAtXHUxQjA0XHUxQjM0LVx1MUI0NFx1MUI2Qi1cdTFCNzNcdTFCODAtXHUxQjgyXHUxQkExLVx1MUJBRFx1MUJFNi1cdTFCRjNcdTFDMjQtXHUxQzM3XHUxQ0QwLVx1MUNEMlx1MUNENC1cdTFDRThcdTFDRURcdTFDRjItXHUxQ0Y0XHUxQ0Y4XHUxQ0Y5XHUxREMwLVx1MURGNVx1MURGQi1cdTFERkZcdTIwRDAtXHUyMEYwXHUyQ0VGLVx1MkNGMVx1MkQ3Rlx1MkRFMC1cdTJERkZcdTMwMkEtXHUzMDJGXHUzMDk5XHUzMDlBXHVBNjZGLVx1QTY3Mlx1QTY3NC1cdUE2N0RcdUE2OUVcdUE2OUZcdUE2RjBcdUE2RjFcdUE4MDJcdUE4MDZcdUE4MEJcdUE4MjMtXHVBODI3XHVBODgwXHVBODgxXHVBOEI0LVx1QThDNVx1QThFMC1cdUE4RjFcdUE5MjYtXHVBOTJEXHVBOTQ3LVx1QTk1M1x1QTk4MC1cdUE5ODNcdUE5QjMtXHVBOUMwXHVBOUU1XHVBQTI5LVx1QUEzNlx1QUE0M1x1QUE0Q1x1QUE0RFx1QUE3Qi1cdUFBN0RcdUFBQjBcdUFBQjItXHVBQUI0XHVBQUI3XHVBQUI4XHVBQUJFXHVBQUJGXHVBQUMxXHVBQUVCLVx1QUFFRlx1QUFGNVx1QUFGNlx1QUJFMy1cdUFCRUFcdUFCRUNcdUFCRURcdUZCMUVcdUZFMDAtXHVGRTBGXHVGRTIwLVx1RkUyRi8uc291cmNlLHVBPS8wLTlcdTA2NjAtXHUwNjY5XHUwNkYwLVx1MDZGOVx1MDdDMC1cdTA3QzlcdTA5NjYtXHUwOTZGXHUwOUU2LVx1MDlFRlx1MEE2Ni1cdTBBNkZcdTBBRTYtXHUwQUVGXHUwQjY2LVx1MEI2Rlx1MEJFNi1cdTBCRUZcdTBDNjYtXHUwQzZGXHUwQ0U2LVx1MENFRlx1MEQ2Ni1cdTBENkZcdTBERTYtXHUwREVGXHUwRTUwLVx1MEU1OVx1MEVEMC1cdTBFRDlcdTBGMjAtXHUwRjI5XHUxMDQwLVx1MTA0OVx1MTA5MC1cdTEwOTlcdTE3RTAtXHUxN0U5XHUxODEwLVx1MTgxOVx1MTk0Ni1cdTE5NEZcdTE5RDAtXHUxOUQ5XHUxQTgwLVx1MUE4OVx1MUE5MC1cdTFBOTlcdTFCNTAtXHUxQjU5XHUxQkIwLVx1MUJCOVx1MUM0MC1cdTFDNDlcdTFDNTAtXHUxQzU5XHVBNjIwLVx1QTYyOVx1QThEMC1cdUE4RDlcdUE5MDAtXHVBOTA5XHVBOUQwLVx1QTlEOVx1QTlGMC1cdUE5RjlcdUFBNTAtXHVBQTU5XHVBQkYwLVx1QUJGOVx1RkYxMC1cdUZGMTkvLnNvdXJjZSxwQT1sQSt1QSxoQT1sQSt1QSxkQT1uZXcgUmVnRXhwKCJbIi5jb25jYXQoaEEsIl0iKSksZkE9Iig/OlsiK3VBKyJdezEsM31cXC4pezN9WyIrdUErIl17MSwzfSIsbUE9IlsiK2hBKyJdKD86WyIraEErIlxcLV9dezAsNjF9WyIraEErIl0pPyIsZ2V0RG9tYWluTGFiZWxTdHI9ZnVuY3Rpb24ocyl7cmV0dXJuIig/PSgiK21BKyIpKVxcIitzfSxnZXREb21haW5OYW1lU3RyPWZ1bmN0aW9uKHMpe3JldHVybiIoPzoiK2dldERvbWFpbkxhYmVsU3RyKHMpKyIoPzpcXC4iK2dldERvbWFpbkxhYmVsU3RyKHMrMSkrIil7MCwxMjZ9fCIrZkErIikifSxnQT0obmV3IFJlZ0V4cCgiWyIraEErIi5cXC1dKlsiK2hBKyJcXC1dIiksZEEpLHlBPS8oPzp4bi0tdmVybWdlbnNiZXJhdHVuZy1wd2J8eG4tLXZlcm1nZW5zYmVyYXRlci1jdGJ8eG4tLWNsY2hjMGVhMGIyZzJhOWdjZHx4bi0tdzRyODVlbDhmaHU1ZG5yYXxub3J0aHdlc3Rlcm5tdXR1YWx8dHJhdmVsZXJzaW5zdXJhbmNlfHZlcm3DtmdlbnNiZXJhdHVuZ3x4bi0tNXN1MzRqOTM2YmdzZ3x4bi0tYmNrMWI5YTVkcmU0Y3x4bi0tbWdiYWgxYTNoamtyZHx4bi0tbWdiYWk5YXpncXA2anx4bi0tbWdiZXJwNGE1ZDRhcnx4bi0teGtjMmRsM2E1ZWUwaHx2ZXJtw7ZnZW5zYmVyYXRlcnx4bi0tZnp5czhkNjl1dmdtfHhuLS1tZ2JhN2MwYmJuMGF8eG4tLW1nYmNwcTZncGExYXx4bi0teGtjMmFsM2h5ZTJhfGFtZXJpY2FuZXhwcmVzc3xrZXJyeXByb3BlcnRpZXN8c2FuZHZpa2Nvcm9tYW50fHhuLS1pMWI2YjFhNmEyZXx4bi0ta2NyeDc3ZDF4NGF8eG4tLWxnYmJhdDFhZDhqfHhuLS1tZ2JhM2E0ZjE2YXx4bi0tbWdiYWFrYzdkdmZ8eG4tLW1nYmMwYTlhemNnfHhuLS1ucXY3ZnMwMGVtYXxhbWVyaWNhbmZhbWlseXxiYW5hbmFyZXB1YmxpY3xjYW5jZXJyZXNlYXJjaHxjb29raW5nY2hhbm5lbHxrZXJyeWxvZ2lzdGljc3x3ZWF0aGVyY2hhbm5lbHx4bi0tNTRiN2Z0YTBjY3x4bi0tNnFxOTg2YjN4bHx4bi0tODBhcWVjZHIxYXx4bi0tYjR3NjA1ZmVyZHx4bi0tZmlxMjI4YzVoc3x4bi0taDJicmVnM2V2ZXx4bi0tamxxNDgwbjJyZ3x4bi0tamxxNjF1OXc3Ynx4bi0tbWdiYTNhM2VqdHx4bi0tbWdiYWFtN2E4aHx4bi0tbWdiYXloN2dwYXx4bi0tbWdiYmgxYTcxZXx4bi0tbWdiY2E3ZHpkb3x4bi0tbWdiaTRlY2V4cHx4bi0tbWdieDRjZDBhYnx4bi0tcnZjMWUwYW0zZXxpbnRlcm5hdGlvbmFsfGxpZmVpbnN1cmFuY2V8dHJhdmVsY2hhbm5lbHx3b2x0ZXJza2x1d2VyfHhuLS1jY2t3Y3hldGR8eG4tLWVja3ZkdGM5ZHx4bi0tZnBjcmo5YzNkfHhuLS1memMyYzllMmN8eG4tLWgyYnJqOWM4Y3x4bi0tdGlxNDl4cXlqfHhuLS15ZnJvNGk2N298eG4tLXlnYmkyYW1teHxjb25zdHJ1Y3Rpb258bHBsZmluYW5jaWFsfHNjaG9sYXJzaGlwc3x2ZXJzaWNoZXJ1bmd8eG4tLTNlMGI3MDdlfHhuLS00NWJyNWN5bHx4bi0tNGRicmswY2V8eG4tLTgwYWR4aGtzfHhuLS04MGFzZWhkYnx4bi0tOHkwYTA2M2F8eG4tLWdja3IzZjBmfHhuLS1tZ2I5YXdiZnx4bi0tbWdiYWIyYmR8eG4tLW1nYmd1ODJhfHhuLS1tZ2JwbDJmaHx4bi0tbWdidDNkaGR8eG4tLW1rMWJ1NDRjfHhuLS1uZ2JjNWF6ZHx4bi0tbmdiZTllMGF8eG4tLW9nYnBmOGZsfHhuLS1xY2thMXBtY3xhY2NvdW50YW50c3xiYXJjbGF5Y2FyZHxibGFja2ZyaWRheXxibG9ja2J1c3RlcnxicmlkZ2VzdG9uZXxjYWx2aW5rbGVpbnxjb250cmFjdG9yc3xjcmVkaXR1bmlvbnxlbmdpbmVlcmluZ3xlbnRlcnByaXNlc3xmb29kbmV0d29ya3xpbnZlc3RtZW50c3xrZXJyeWhvdGVsc3xsYW1ib3JnaGluaXxtb3RvcmN5Y2xlc3xvbGF5YW5ncm91cHxwaG90b2dyYXBoeXxwbGF5c3RhdGlvbnxwcm9kdWN0aW9uc3xwcm9ncmVzc2l2ZXxyZWR1bWJyZWxsYXx3aWxsaWFtaGlsbHx4bi0tMTFiNGMzZHx4bi0tMWNrMmUxYnx4bi0tMXFxdzIzYXx4bi0tMnNjcmo5Y3x4bi0tM2JzdDAwbXx4bi0tM2RzNDQzZ3x4bi0tM2hjcmo5Y3x4bi0tNDJjMmQ5YXx4bi0tNDVicmo5Y3x4bi0tNTVxdzQyZ3x4bi0tNmZyejgyZ3x4bi0tODBhbzIxYXx4bi0tOWtydDAwYXx4bi0tY2NrMmIzYnx4bi0tY3pyNjk0Ynx4bi0tZDFhY2ozYnx4bi0tZWZ2eTg4aHx4bi0tZmN0NDI5a3x4bi0tZmpxNzIwYXx4bi0tZmx3MzUxZXx4bi0tZzJ4eDQ4Y3x4bi0tZ2Vjcmo5Y3x4bi0tZ2szYXQxZXx4bi0taDJicmo5Y3x4bi0taHh0ODE0ZXx4bi0taW1yNTEzbnx4bi0tajZ3MTkzZ3x4bi0tanZyMTg5bXx4bi0ta3BydzEzZHx4bi0ta3ByeTU3ZHx4bi0tbWdiYmgxYXx4bi0tbWdidHgyYnx4bi0tbWl4ODkxZnx4bi0tbnlxeTI2YXx4bi0tb3R1Nzk2ZHx4bi0tcGdiczBkaHx4bi0tcTlqeWI0Y3x4bi0tcmhxdjk2Z3x4bi0tcm92dTg4Ynx4bi0tczlicmo5Y3x4bi0tc2VzNTU0Z3x4bi0tdDYwYjU2YXx4bi0tdnVxODYxYnx4bi0tdzRyczQwbHx4bi0teGhxNTIxYnx4bi0temZyMTY0Ynzgrprgrr/grpngr43grpXgrqrgr43grqrgr4LgrrDgr418YWNjb3VudGFudHxhcGFydG1lbnRzfGFzc29jaWF0ZXN8YmFza2V0YmFsbHxibnBwYXJpYmFzfGJvZWhyaW5nZXJ8Y2FwaXRhbG9uZXxjb25zdWx0aW5nfGNyZWRpdGNhcmR8Y3Vpc2luZWxsYXxldXJvdmlzaW9ufGV4dHJhc3BhY2V8Zm91bmRhdGlvbnxoZWFsdGhjYXJlfGltbW9iaWxpZW58aW5kdXN0cmllc3xtYW5hZ2VtZW50fG1pdHN1YmlzaGl8bmV4dGRpcmVjdHxwcm9wZXJ0aWVzfHByb3RlY3Rpb258cHJ1ZGVudGlhbHxyZWFsZXN0YXRlfHJlcHVibGljYW58cmVzdGF1cmFudHxzY2hhZWZmbGVyfHRhdGFtb3RvcnN8dGVjaG5vbG9neXx1bml2ZXJzaXR5fHZsYWFuZGVyZW58dm9sa3N3YWdlbnx4bi0tMzBycjd5fHhuLS0zcHh1OGt8eG4tLTQ1cTExY3x4bi0tNGdicmltfHhuLS01NXF4NWR8eG4tLTV0em01Z3x4bi0tODBhc3dnfHhuLS05MGEzYWN8eG4tLTlkYnEyYXx4bi0tOWV0NTJ1fHhuLS1jMmJyN2d8eG4tLWNnNGJraXx4bi0tY3pyczB0fHhuLS1jenJ1MmR8eG4tLWZpcTY0Ynx4bi0tZmlxczhzfHhuLS1maXF6OXN8eG4tLWlvMGE3aXx4bi0ta3B1dDNpfHhuLS1teHRxMW18eG4tLW8zY3c0aHx4bi0tcHNzeTJ1fHhuLS1xN2NlNmF8eG4tLXVudXA0eXx4bi0td2diaDFjfHhuLS13Z2JsNmF8eG4tLXk5YTNhcXxhY2NlbnR1cmV8YWxmYXJvbWVvfGFsbGZpbmFuenxhbXN0ZXJkYW18YW5hbHl0aWNzfGFxdWFyZWxsZXxiYXJjZWxvbmF8Ymxvb21iZXJnfGNocmlzdG1hc3xjb21tdW5pdHl8ZGlyZWN0b3J5fGVkdWNhdGlvbnxlcXVpcG1lbnR8ZmFpcndpbmRzfGZpbmFuY2lhbHxmaXJlc3RvbmV8ZnJlc2VuaXVzfGZyb250ZG9vcnxmdXJuaXR1cmV8Z29sZHBvaW50fGhpc2FtaXRzdXxob21lZGVwb3R8aG9tZWdvb2RzfGhvbWVzZW5zZXxpbnN0aXR1dGV8aW5zdXJhbmNlfGt1b2tncm91cHxsYW5jYXN0ZXJ8bGFuZHJvdmVyfGxpZmVzdHlsZXxtYXJrZXRpbmd8bWFyc2hhbGxzfG1lbGJvdXJuZXxtaWNyb3NvZnR8cGFuYXNvbmljfHBhc3NhZ2Vuc3xwcmFtZXJpY2F8cmljaGFyZGxpfHNoYW5ncmlsYXxzb2x1dGlvbnN8c3RhdGViYW5rfHN0YXRlZmFybXxzdG9ja2hvbG18dHJhdmVsZXJzfHZhY2F0aW9uc3x4bi0tOTBhaXN8eG4tLWMxYXZnfHhuLS1kMWFsZnx4bi0tZTFhNGN8eG4tLWZoYmVpfHhuLS1qMWFlZnx4bi0tajFhbWh8eG4tLWwxYWNjfHhuLS1uZ2JyeHx4bi0tbnF2N2Z8eG4tLXAxYWNmfHhuLS1xeGE2YXx4bi0tdGNrd2V8eG4tLXZocXV2fHlvZG9iYXNoaXzZhdmI2LHZitiq2KfZhtmK2Kd8YWJ1ZGhhYml8YWlyZm9yY2V8YWxsc3RhdGV8YXR0b3JuZXl8YmFyY2xheXN8YmFyZWZvb3R8YmFyZ2FpbnN8YmFzZWJhbGx8Ym91dGlxdWV8YnJhZGVzY298YnJvYWR3YXl8YnJ1c3NlbHN8YnVpbGRlcnN8YnVzaW5lc3N8Y2FwZXRvd258Y2F0ZXJpbmd8Y2F0aG9saWN8Y2lwcmlhbml8Y2l0eWVhdHN8Y2xlYW5pbmd8Y2xpbmlxdWV8Y2xvdGhpbmd8Y29tbWJhbmt8Y29tcHV0ZXJ8ZGVsaXZlcnl8ZGVsb2l0dGV8ZGVtb2NyYXR8ZGlhbW9uZHN8ZGlzY291bnR8ZGlzY292ZXJ8ZG93bmxvYWR8ZW5naW5lZXJ8ZXJpY3Nzb258ZXRpc2FsYXR8ZXhjaGFuZ2V8ZmVlZGJhY2t8ZmlkZWxpdHl8ZmlybWRhbGV8Zm9vdGJhbGx8ZnJvbnRpZXJ8Z29vZHllYXJ8Z3JhaW5nZXJ8Z3JhcGhpY3N8Z3VhcmRpYW58aGRmY2Jhbmt8aGVsc2lua2l8aG9sZGluZ3N8aG9zcGl0YWx8aW5maW5pdGl8aXBpcmFuZ2F8aXN0YW5idWx8anBtb3JnYW58bGlnaHRpbmd8bHVuZGJlY2t8bWFycmlvdHR8bWFzZXJhdGl8bWNraW5zZXl8bWVtb3JpYWx8bWVyY2ttc2R8bW9ydGdhZ2V8b2JzZXJ2ZXJ8cGFydG5lcnN8cGhhcm1hY3l8cGljdHVyZXN8cGx1bWJpbmd8cHJvcGVydHl8cmVkc3RvbmV8cmVsaWFuY2V8c2FhcmxhbmR8c2Ftc2NsdWJ8c2VjdXJpdHl8c2VydmljZXN8c2hvcHBpbmd8c2hvd3RpbWV8c29mdGJhbmt8c29mdHdhcmV8c3RjZ3JvdXB8c3VwcGxpZXN8dHJhaW5pbmd8dmFuZ3VhcmR8dmVudHVyZXN8dmVyaXNpZ258d29vZHNpZGV8eG4tLTkwYWV8eG4tLW5vZGV8eG4tLXAxYWl8eG4tLXF4YW18eW9rb2hhbWF82KfZhNiz2LnZiNiv2YrYqXxhYm9nYWRvfGFjYWRlbXl8YWdha2hhbnxhbGliYWJhfGFuZHJvaWR8YXRobGV0YXxhdWN0aW9ufGF1ZGlibGV8YXVzcG9zdHxhdmlhbmNhfGJhbmFtZXh8YmF1aGF1c3xiZW50bGV5fGJlc3RidXl8Ym9va2luZ3xicm90aGVyfGJ1Z2F0dGl8Y2FwaXRhbHxjYXJhdmFufGNhcmVlcnN8Y2hhbm5lbHxjaGFyaXR5fGNoaW50YWl8Y2l0YWRlbHxjbHVibWVkfGNvbGxlZ2V8Y29sb2duZXxjb21jYXN0fGNvbXBhbnl8Y29tcGFyZXxjb250YWN0fGNvb2tpbmd8Y29yc2ljYXxjb3VudHJ5fGNvdXBvbnN8Y291cnNlc3xjcmlja2V0fGNydWlzZXN8ZGVudGlzdHxkaWdpdGFsfGRvbWFpbnN8ZXhwb3NlZHxleHByZXNzfGZhcm1lcnN8ZmFzaGlvbnxmZXJyYXJpfGZlcnJlcm98ZmluYW5jZXxmaXNoaW5nfGZpdG5lc3N8ZmxpZ2h0c3xmbG9yaXN0fGZsb3dlcnN8Zm9yc2FsZXxmcm9nYW5zfGZ1aml0c3V8Z2FsbGVyeXxnZW50aW5nfGdvZGFkZHl8Z3JvY2VyeXxndWl0YXJzfGhhbWJ1cmd8aGFuZ291dHxoaXRhY2hpfGhvbGlkYXl8aG9zdGluZ3xob3RlbGVzfGhvdG1haWx8aHl1bmRhaXxpc21haWxpfGpld2Vscnl8anVuaXBlcnxraXRjaGVufGtvbWF0c3V8bGFjYWl4YXxsYW54ZXNzfGxhc2FsbGV8bGF0cm9iZXxsZWNsZXJjfGxpbWl0ZWR8bGluY29sbnxtYXJrZXRzfG1vbnN0ZXJ8bmV0YmFua3xuZXRmbGl4fG5ldHdvcmt8bmV1c3Rhcnxva2luYXdhfG9sZG5hdnl8b3JnYW5pY3xvcmlnaW5zfHBoaWxpcHN8cGlvbmVlcnxwb2xpdGllfHJlYWx0b3J8cmVjaXBlc3xyZW50YWxzfHJldmlld3N8cmV4cm90aHxzYW1zdW5nfHNhbmR2aWt8c2NobWlkdHxzY2h3YXJ6fHNjaWVuY2V8c2hpa3NoYXxzaW5nbGVzfHN0YXBsZXN8c3RvcmFnZXxzdXBwb3J0fHN1cmdlcnl8c3lzdGVtc3x0ZW1hc2VrfHRoZWF0ZXJ8dGhlYXRyZXx0aWNrZXRzfHRpZmZhbnl8dG9zaGliYXx0cmFkaW5nfHdhbG1hcnR8d2FuZ2dvdXx3YXRjaGVzfHdlYXRoZXJ8d2Vic2l0ZXx3ZWRkaW5nfHdob3N3aG98d2luZG93c3x3aW5uZXJzfHhmaW5pdHl8eWFtYXh1bnx5b3V0dWJlfHp1ZXJpY2h80LrQsNGC0L7Qu9C40Lp82KfYqti12KfZhNin2Kp82KfZhNio2K3YsdmK2YZ82KfZhNis2LLYp9im2LF82KfZhNi52YTZitin2YZ82b7Yp9qp2LPYqtin2YZ82YPYp9ir2YjZhNmK2YN84K6H4K6o4K+N4K6k4K6/4K6v4K6+fGFiYXJ0aHxhYmJvdHR8YWJidmllfGFmcmljYXxhZ2VuY3l8YWlyYnVzfGFpcnRlbHxhbGlwYXl8YWxzYWNlfGFsc3RvbXxhbWF6b258YW5xdWFufGFyYW1jb3xhdXRob3J8YmF5ZXJufGJlYXV0eXxiZXJsaW58YmhhcnRpfGJvc3Rpa3xib3N0b258YnJva2VyfGNhbWVyYXxjYXJlZXJ8Y2FzaW5vfGNlbnRlcnxjaGFuZWx8Y2hyb21lfGNodXJjaHxjaXJjbGV8Y2xhaW1zfGNsaW5pY3xjb2ZmZWV8Y29tc2VjfGNvbmRvc3xjb3Vwb258Y3JlZGl0fGNydWlzZXxkYXRpbmd8ZGF0c3VufGRlYWxlcnxkZWdyZWV8ZGVudGFsfGRlc2lnbnxkaXJlY3R8ZG9jdG9yfGR1bmxvcHxkdXBvbnR8ZHVyYmFufGVtZXJja3xlbmVyZ3l8ZXN0YXRlfGV2ZW50c3xleHBlcnR8ZmFtaWx5fGZsaWNrcnxmdXRib2x8Z2FsbHVwfGdhcmRlbnxnZW9yZ2V8Z2l2aW5nfGdsb2JhbHxnb29nbGV8Z3JhdGlzfGhlYWx0aHxoZXJtZXN8aGlwaG9wfGhvY2tleXxob3RlbHN8aHVnaGVzfGltYW1hdHxpbnN1cmV8aW50dWl0fGphZ3Vhcnxqb2J1cmd8anVlZ29zfGthdWZlbnxraW5kZXJ8a2luZGxlfGtvc2hlcnxsYW5jaWF8bGF0aW5vfGxhd3llcnxsZWZyYWt8bGl2aW5nfGxvY2tlcnxsb25kb258bHV4dXJ5fG1hZHJpZHxtYWlzb258bWFrZXVwfG1hcmtldHxtYXR0ZWx8bW9iaWxlfG1vbmFzaHxtb3Jtb258bW9zY293fG11c2V1bXxtdXR1YWx8bmFnb3lhfG5hdHVyYXxuaXNzYW58bmlzc2F5fG5vcnRvbnxub3dydXp8b2ZmaWNlfG9sYXlhbnxvbmxpbmV8b3JhY2xlfG9yYW5nZXxvdHN1a2F8cGZpemVyfHBob3Rvc3xwaHlzaW98cGljdGV0fHF1ZWJlY3xyYWNpbmd8cmVhbHR5fHJlaXNlbnxyZXBhaXJ8cmVwb3J0fHJldmlld3xyb2NoZXJ8cm9nZXJzfHJ5dWt5dXxzYWZldHl8c2FrdXJhfHNhbm9maXxzY2hvb2x8c2NodWxlfHNlYXJjaHxzZWN1cmV8c2VsZWN0fHNob3VqaXxzb2NjZXJ8c29jaWFsfHN0cmVhbXxzdHVkaW98c3VwcGx5fHN1enVraXxzd2F0Y2h8c3lkbmV5fHRhaXBlaXx0YW9iYW98dGFyZ2V0fHRhdHRvb3x0ZW5uaXN8dGllbmRhfHRqbWF4eHx0a21heHh8dG95b3RhfHRyYXZlbHx1bmljb218dmlhamVzfHZpa2luZ3x2aWxsYXN8dmlyZ2lufHZpc2lvbnx2b3Rpbmd8dm95YWdlfHZ1ZWxvc3x3YWx0ZXJ8d2ViY2FtfHhpaHVhbnx5YWNodHN8eWFuZGV4fHphcHBvc3zQvNC+0YHQutCy0LB80L7QvdC70LDQudC9fNin2KjZiNi42KjZinzYp9ix2KfZhdmD2Yh82KfZhNin2LHYr9mGfNin2YTZhdi62LHYqHzYp9mF2KfYsdin2Kp82YHZhNiz2LfZitmGfNmF2YTZitiz2YrYp3zgpK3gpL7gpLDgpKTgpK7gpY184K6H4K6y4K6Z4K+N4K6V4K+IfOODleOCoeODg+OCt+ODp+ODs3xhY3RvcnxhZHVsdHxhZXRuYXxhbWZhbXxhbWljYXxhcHBsZXxhcmNoaXxhdWRpb3xhdXRvc3xhenVyZXxiYWlkdXxiZWF0c3xiaWJsZXxiaW5nb3xibGFja3xib2F0c3xib3NjaHxidWlsZHxjYW5vbnxjYXJkc3xjaGFzZXxjaGVhcHxjaXNjb3xjaXRpY3xjbGlja3xjbG91ZHxjb2FjaHxjb2Rlc3xjcm93bnxjeW1ydXxkYWJ1cnxkYW5jZXxkZWFsc3xkZWx0YXxkcml2ZXxkdWJhaXxlYXJ0aHxlZGVrYXxlbWFpbHxlcHNvbnxmYWl0aHxmZWRleHxmaW5hbHxmb3JleHxmb3J1bXxnYWxsb3xnYW1lc3xnaWZ0c3xnaXZlc3xnbGFzc3xnbG9ib3xnbWFpbHxncmVlbnxncmlwZXxncm91cHxndWNjaXxndWlkZXxob21lc3xob25kYXxob3JzZXxob3VzZXxoeWF0dHxpa2Fub3xpcmlzaHxqZXR6dHxrb2VsbnxreW90b3xsYW1lcnxsZWFzZXxsZWdhbHxsZXh1c3xsaWxseXxsaW5kZXxsaXBzeXxsb2Fuc3xsb2N1c3xsb3R0ZXxsb3R0b3xtYWN5c3xtYW5nb3xtZWRpYXxtaWFtaXxtb25leXxtb3ZpZXxtdXNpY3xuZXh1c3xuaWtvbnxuaW5qYXxub2tpYXxub3d0dnxvbWVnYXxvc2FrYXxwYXJpc3xwYXJ0c3xwYXJ0eXxwaG9uZXxwaG90b3xwaXp6YXxwbGFjZXxwb2tlcnxwcmF4aXxwcmVzc3xwcmltZXxwcm9tb3xxdWVzdHxyYWRpb3xyZWhhYnxyZWlzZXxyaWNvaHxyb2Nrc3xyb2Rlb3xydWdieXxzYWxvbnxzZW5lcnxzZXZlbnxzaGFycHxzaGVsbHxzaG9lc3xza3lwZXxzbGluZ3xzbWFydHxzbWlsZXxzb2xhcnxzcGFjZXxzcG9ydHxzdGFkYXxzdG9yZXxzdHVkeXxzdHlsZXxzdWNrc3xzd2lzc3x0YXRhcnx0aXJlc3x0aXJvbHx0bWFsbHx0b2RheXx0b2t5b3x0b29sc3x0b3JheXx0b3RhbHx0b3Vyc3x0cmFkZXx0cnVzdHx0dW5lc3x0dXNodXx1YmFua3x2ZWdhc3x2aWRlb3x2b2RrYXx2b2x2b3x3YWxlc3x3YXRjaHx3ZWJlcnx3ZWlib3x3b3Jrc3x3b3JsZHx4ZXJveHx5YWhvb3zXmdep16jXkNecfNin24zYsdin2YZ82KjYp9iy2KfYsXzYqNq+2KfYsdiqfNiz2YjYr9in2YZ82LPZiNix2YrYqXzZh9mF2LHYp9mHfOCkreCkvuCksOCli+CkpHzgpLjgpILgpJfgpKDgpKh84Kas4Ka+4KaC4Kay4Ka+fOCwreCwvuCwsOCwpOCxjXzgtK3gtL7gtLDgtKTgtIJ85ZiJ6YeM5aSn6YWS5bqXfGFhcnB8YWJsZXxhZGFjfGFlcm98YWtkbnxhbGx5fGFtZXh8YXJhYnxhcm15fGFycGF8YXJ0ZXxhc2RhfGFzaWF8YXVkaXxhdXRvfGJhYnl8YmFuZHxiYW5rfGJidmF8YmVlcnxiZXN0fGJpa2V8YmluZ3xibG9nfGJsdWV8Ym9mYXxib25kfGJvb2t8YnV6enxjYWZlfGNhbGx8Y2FtcHxjYXJlfGNhcnN8Y2FzYXxjYXNlfGNhc2h8Y2JyZXxjZXJufGNoYXR8Y2l0aXxjaXR5fGNsdWJ8Y29vbHxjb29wfGN5b3V8ZGF0YXxkYXRlfGRjbGt8ZGVhbHxkZWxsfGRlc2l8ZGlldHxkaXNofGRvY3N8ZHZhZ3xlcm5pfGZhZ2V8ZmFpbHxmYW5zfGZhcm18ZmFzdHxmaWF0fGZpZG98ZmlsbXxmaXJlfGZpc2h8Zmxpcnxmb29kfGZvcmR8ZnJlZXxmdW5kfGdhbWV8Z2JpenxnZW50fGdnZWV8Z2lmdHxnbWJofGdvbGR8Z29sZnxnb29nfGd1Z2V8Z3VydXxoYWlyfGhhdXN8aGRmY3xoZWxwfGhlcmV8aGd0dnxob3N0fGhzYmN8aWNiY3xpZWVlfGltZGJ8aW1tb3xpbmZvfGl0YXV8amF2YXxqZWVwfGpvYnN8anByc3xrZGRpfGtpZHN8a2l3aXxrcG1nfGtyZWR8bGFuZHxsZWdvfGxnYnR8bGlkbHxsaWZlfGxpa2V8bGltb3xsaW5rfGxpdmV8bG9hbnxsb2Z0fGxvdmV8bHRkYXxsdXhlfG1haWZ8bWVldHxtZW1lfG1lbnV8bWluaXxtaW50fG1vYml8bW9kYXxtb3RvfG5hbWV8bmF2eXxuZXdzfG5leHR8bmljb3xuaWtlfG9sbG98b3BlbnxwYWdlfHBhcnN8cGNjd3xwaWNzfHBpbmd8cGlua3xwbGF5fHBsdXN8cG9obHxwb3JufHBvc3R8cHJvZHxwcm9mfHFwb258cmVhZHxyZWl0fHJlbnR8cmVzdHxyaWNofHJvb218cnN2cHxydWhyfHNhZmV8c2FsZXxzYXJsfHNhdmV8c2F4b3xzY290fHNlYXR8c2Vla3xzZXh5fHNoYXd8c2hpYXxzaG9wfHNob3d8c2lsa3xzaW5hfHNpdGV8c2tpbnxzbmNmfHNvaHV8c29uZ3xzb255fHNwb3R8c3RhcnxzdXJmfHRhbGt8dGF4aXx0ZWFtfHRlY2h8dGV2YXx0aWFhfHRpcHN8dG93bnx0b3lzfHR1YmV8dmFuYXx2aXNhfHZpdmF8dml2b3x2b3RlfHZvdG98d2FuZ3x3ZWlyfHdpZW58d2lraXx3aW5lfHdvcmt8eGJveHx5b2dhfHphcmF8emVyb3x6b25lfNC00LXRgtC4fNGB0LDQudGCfNio2KfYsdiqfNio2YrYqtmDfNqA2KfYsdiqfNiq2YjZhtizfNi02KjZg9ipfNi52LHYp9mCfNi52YXYp9mGfNmF2YjZgti5fOCkreCkvuCksOCkpHzgpq3gpr7gprDgpqR84Kat4Ka+4Kew4KakfOCoreCovuCosOCopHzgqq3gqr7gqrDgqqR84Kyt4Ky+4Kyw4KykfOCyreCyvuCysOCypHzgtr3gtoLgtprgt49844Ki44Oe44K+44OzfOOCsOODvOOCsOODq3zjgq/jg6njgqbjg4l844Od44Kk44Oz44OIfOe7hOe7h+acuuaehHzpm7voqIrnm4jnp5F86aaZ5qC86YeM5ouJfGFhYXxhYmJ8YWJjfGFjb3xhZHN8YWVnfGFmbHxhaWd8YW56fGFvbHxhcHB8YXJ0fGF3c3xheGF8YmFyfGJiY3xiYnR8YmNnfGJjbnxiZXR8YmlkfGJpb3xiaXp8Ym1zfGJtd3xib218Ym9vfGJvdHxib3h8YnV5fGJ6aHxjYWJ8Y2FsfGNhbXxjYXJ8Y2F0fGNiYXxjYm58Y2JzfGNlb3xjZmF8Y2ZkfGNvbXxjcGF8Y3JzfGRhZHxkYXl8ZGRzfGRldnxkaGx8ZGl5fGRucHxkb2d8ZG90fGR0dnxkdnJ8ZWF0fGVjb3xlZHV8ZXNxfGV1c3xmYW58Zml0fGZseXxmb298Zm94fGZybHxmdHJ8ZnVufGZ5aXxnYWx8Z2FwfGdheXxnZG58Z2VhfGdsZXxnbW98Z214fGdvb3xnb3B8Z290fGdvdnxoYm98aGl2fGhrdHxob3R8aG93fGlibXxpY2V8aWN1fGlmbXxpbmN8aW5nfGlua3xpbnR8aXN0fGl0dnxqY2J8amlvfGpsbHxqbXB8am5qfGpvdHxqb3l8a2ZofGtpYXxraW18a3BufGtyZHxsYXR8bGF3fGxkc3xsbGN8bGxwfGxvbHxscGx8bHRkfG1hbnxtYXB8bWJhfG1lZHxtZW58bWlsfG1pdHxtbGJ8bWxzfG1tYXxtb2V8bW9pfG1vbXxtb3Z8bXNkfG10bnxtdHJ8bmFifG5iYXxuZWN8bmV0fG5ld3xuZmx8bmdvfG5oa3xub3d8bnJhfG5yd3xudHR8bnljfG9iaXxvbmV8b25nfG9ubHxvb298b3JnfG90dHxvdmh8cGF5fHBldHxwaGR8cGlkfHBpbnxwbmN8cHJvfHBydXxwdWJ8cHdjfHJlZHxyZW58cmlsfHJpb3xyaXB8cnVufHJ3ZXxzYXB8c2FzfHNiaXxzYnN8c2NhfHNjYnxzZXN8c2V3fHNleHxzZnJ8c2tpfHNreXxzb3l8c3BhfHNybHxzdGN8dGFifHRheHx0Y2l8dGRrfHRlbHx0aGR8dGp4fHRvcHx0cnZ8dHVpfHR2c3x1YnN8dW5vfHVvbHx1cHN8dmV0fHZpZ3x2aW58dmlwfHdlZHx3aW58d21lfHdvd3x3dGN8d3RmfHhpbnx4eHh8eHl6fHlvdXx5dW58emlwfNCx0LXQu3zQutC+0Lx80pvQsNC3fNC80LrQtHzQvNC+0L180L7RgNCzfNGA0YPRgXzRgdGA0LF80YPQutGAfNWw1aHVtXzXp9eV15182LnYsdiofNmC2LfYsXzZg9mI2YV82YXYtdixfOCkleClieCkrnzgpKjgpYfgpJ984LiE4Lit4LihfOC5hOC4l+C4onzguqXgurLguqd844K544OI44KifOOCu+ODvOODq3zjgb/jgpPjgap85Lit5paH572RfOS6mumprOmAinzlpKnkuLvmlZl85oiR54ix5L2gfOaWsOWKoOWdoXzmt6HpqazplKF86K+65Z+65LqafOmjnuWIqea1pnxhY3xhZHxhZXxhZnxhZ3xhaXxhbHxhbXxhb3xhcXxhcnxhc3xhdHxhdXxhd3xheHxhenxiYXxiYnxiZHxiZXxiZnxiZ3xiaHxiaXxianxibXxibnxib3xicnxic3xidHxidnxid3xieXxienxjYXxjY3xjZHxjZnxjZ3xjaHxjaXxja3xjbHxjbXxjbnxjb3xjcnxjdXxjdnxjd3xjeHxjeXxjenxkZXxkanxka3xkbXxkb3xkenxlY3xlZXxlZ3xlcnxlc3xldHxldXxmaXxmanxma3xmbXxmb3xmcnxnYXxnYnxnZHxnZXxnZnxnZ3xnaHxnaXxnbHxnbXxnbnxncHxncXxncnxnc3xndHxndXxnd3xneXxoa3xobXxobnxocnxodHxodXxpZHxpZXxpbHxpbXxpbnxpb3xpcXxpcnxpc3xpdHxqZXxqbXxqb3xqcHxrZXxrZ3xraHxraXxrbXxrbnxrcHxrcnxrd3xreXxrenxsYXxsYnxsY3xsaXxsa3xscnxsc3xsdHxsdXxsdnxseXxtYXxtY3xtZHxtZXxtZ3xtaHxta3xtbHxtbXxtbnxtb3xtcHxtcXxtcnxtc3xtdHxtdXxtdnxtd3xteHxteXxtenxuYXxuY3xuZXxuZnxuZ3xuaXxubHxub3xucHxucnxudXxuenxvbXxwYXxwZXxwZnxwZ3xwaHxwa3xwbHxwbXxwbnxwcnxwc3xwdHxwd3xweXxxYXxyZXxyb3xyc3xydXxyd3xzYXxzYnxzY3xzZHxzZXxzZ3xzaHxzaXxzanxza3xzbHxzbXxzbnxzb3xzcnxzc3xzdHxzdXxzdnxzeHxzeXxzenx0Y3x0ZHx0Znx0Z3x0aHx0anx0a3x0bHx0bXx0bnx0b3x0cnx0dHx0dnx0d3x0enx1YXx1Z3x1a3x1c3x1eXx1enx2YXx2Y3x2ZXx2Z3x2aXx2bnx2dXx3Znx3c3x5ZXx5dHx6YXx6bXx6d3zOtc67fM61z4V80LHQs3zQtdGOfNGA0YR84YOS4YOUfOuLt+uEt3zri7fsu7R87IK87ISxfO2VnOq1rXzjgrPjg6B85LiW55WMfOS4reS/oXzkuK3lm7185Lit5ZyLfOS8geS4mnzkvZvlsbF85L+h5oGvfOWBpeW6t3zlhavljaZ85YWs5Y+4fOWFrOebinzlj7Dmub585Y+w54GjfOWVhuWfjnzllYblupd85ZWG5qCHfOWYiemHjHzlnKjnur985aSn5ou/fOWoseS5kHzlrrbpm7t85bm/5LicfOW+ruWNmnzmhYjlloR85omL5py6fOaLm+iBmHzmlL/liqF85pS/5bqcfOaWsOmXu3zml7blsJp85pu457GNfOacuuaehHzmuLjmiI985r6z6ZaAfOeCueeci3znp7vliqh8572R5Z2AfOe9keW6l3znvZHnq5l8572R57ucfOiBlOmAmnzosLfmrYx86LSt54mpfOmAmuiyqXzpm4blm6J86aOf5ZOBfOmkkOWOhXzpppnmuK8pLyx2QT1uZXcgUmVnRXhwKCJbIi5jb25jYXQoaEEsIiEjJCUmJyorLz0/Xl9ge3x9fi1dIikpLGJBPW5ldyBSZWdFeHAoIl4iLmNvbmNhdCh5QS5zb3VyY2UsIiQiKSksX0E9ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gRW1haWxNYXRjaGVyKCl7dmFyIG89bnVsbCE9PXMmJnMuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBvLmxvY2FsUGFydENoYXJSZWdleD12QSxvLnN0cmljdFRsZFJlZ2V4PWJBLG99cmV0dXJuIHRzbGliX2VzNl9leHRlbmRzKEVtYWlsTWF0Y2hlcixzKSxFbWFpbE1hdGNoZXIucHJvdG90eXBlLnBhcnNlTWF0Y2hlcz1mdW5jdGlvbihzKXtmb3IodmFyIG89dGhpcy50YWdCdWlsZGVyLGk9dGhpcy5sb2NhbFBhcnRDaGFyUmVnZXgsYT10aGlzLnN0cmljdFRsZFJlZ2V4LHU9W10sXz1zLmxlbmd0aCx3PW5ldyBTQSx4PXttOiJhIixhOiJpIixpOiJsIixsOiJ0Iix0OiJvIixvOiI6In0sQz0wLGo9MCxMPXc7QzxfOyl7dmFyIEI9cy5jaGFyQXQoQyk7c3dpdGNoKGope2Nhc2UgMDpzdGF0ZU5vbkVtYWlsQWRkcmVzcyhCKTticmVhaztjYXNlIDE6c3RhdGVNYWlsVG8ocy5jaGFyQXQoQy0xKSxCKTticmVhaztjYXNlIDI6c3RhdGVMb2NhbFBhcnQoQik7YnJlYWs7Y2FzZSAzOnN0YXRlTG9jYWxQYXJ0RG90KEIpO2JyZWFrO2Nhc2UgNDpzdGF0ZUF0U2lnbihCKTticmVhaztjYXNlIDU6c3RhdGVEb21haW5DaGFyKEIpO2JyZWFrO2Nhc2UgNjpzdGF0ZURvbWFpbkh5cGhlbihCKTticmVhaztjYXNlIDc6c3RhdGVEb21haW5Eb3QoQik7YnJlYWs7ZGVmYXVsdDp0aHJvd1VuaGFuZGxlZENhc2VFcnJvcihqKX1DKyt9cmV0dXJuIGNhcHR1cmVNYXRjaElmVmFsaWRBbmRSZXNldCgpLHU7ZnVuY3Rpb24gc3RhdGVOb25FbWFpbEFkZHJlc3Mocyl7Im0iPT09cz9iZWdpbkVtYWlsTWF0Y2goMSk6aS50ZXN0KHMpJiZiZWdpbkVtYWlsTWF0Y2goKX1mdW5jdGlvbiBzdGF0ZU1haWxUbyhzLG8peyI6Ij09PXM/aS50ZXN0KG8pPyhqPTIsTD1uZXcgU0EoX19hc3NpZ24oX19hc3NpZ24oe30sTCkse2hhc01haWx0b1ByZWZpeDohMH0pKSk6cmVzZXRUb05vbkVtYWlsTWF0Y2hTdGF0ZSgpOnhbc109PT1vfHwoaS50ZXN0KG8pP2o9MjoiLiI9PT1vP2o9MzoiQCI9PT1vP2o9NDpyZXNldFRvTm9uRW1haWxNYXRjaFN0YXRlKCkpfWZ1bmN0aW9uIHN0YXRlTG9jYWxQYXJ0KHMpeyIuIj09PXM/aj0zOiJAIj09PXM/aj00OmkudGVzdChzKXx8cmVzZXRUb05vbkVtYWlsTWF0Y2hTdGF0ZSgpfWZ1bmN0aW9uIHN0YXRlTG9jYWxQYXJ0RG90KHMpeyIuIj09PXN8fCJAIj09PXM/cmVzZXRUb05vbkVtYWlsTWF0Y2hTdGF0ZSgpOmkudGVzdChzKT9qPTI6cmVzZXRUb05vbkVtYWlsTWF0Y2hTdGF0ZSgpfWZ1bmN0aW9uIHN0YXRlQXRTaWduKHMpe2dBLnRlc3Qocyk/aj01OnJlc2V0VG9Ob25FbWFpbE1hdGNoU3RhdGUoKX1mdW5jdGlvbiBzdGF0ZURvbWFpbkNoYXIocyl7Ii4iPT09cz9qPTc6Ii0iPT09cz9qPTY6Z0EudGVzdChzKXx8Y2FwdHVyZU1hdGNoSWZWYWxpZEFuZFJlc2V0KCl9ZnVuY3Rpb24gc3RhdGVEb21haW5IeXBoZW4ocyl7Ii0iPT09c3x8Ii4iPT09cz9jYXB0dXJlTWF0Y2hJZlZhbGlkQW5kUmVzZXQoKTpnQS50ZXN0KHMpP2o9NTpjYXB0dXJlTWF0Y2hJZlZhbGlkQW5kUmVzZXQoKX1mdW5jdGlvbiBzdGF0ZURvbWFpbkRvdChzKXsiLiI9PT1zfHwiLSI9PT1zP2NhcHR1cmVNYXRjaElmVmFsaWRBbmRSZXNldCgpOmdBLnRlc3Qocyk/KGo9NSxMPW5ldyBTQShfX2Fzc2lnbihfX2Fzc2lnbih7fSxMKSx7aGFzRG9tYWluRG90OiEwfSkpKTpjYXB0dXJlTWF0Y2hJZlZhbGlkQW5kUmVzZXQoKX1mdW5jdGlvbiBiZWdpbkVtYWlsTWF0Y2gocyl7dm9pZCAwPT09cyYmKHM9Miksaj1zLEw9bmV3IFNBKHtpZHg6Q30pfWZ1bmN0aW9uIHJlc2V0VG9Ob25FbWFpbE1hdGNoU3RhdGUoKXtqPTAsTD13fWZ1bmN0aW9uIGNhcHR1cmVNYXRjaElmVmFsaWRBbmRSZXNldCgpe2lmKEwuaGFzRG9tYWluRG90KXt2YXIgaT1zLnNsaWNlKEwuaWR4LEMpOy9bLS5dJC8udGVzdChpKSYmKGk9aS5zbGljZSgwLC0xKSk7dmFyIF89TC5oYXNNYWlsdG9QcmVmaXg/aS5zbGljZSg3KTppOyhmdW5jdGlvbiBkb2VzRW1haWxIYXZlVmFsaWRUbGQocyl7dmFyIG89cy5zcGxpdCgiLiIpLnBvcCgpfHwiIixpPW8udG9Mb3dlckNhc2UoKTtyZXR1cm4gYS50ZXN0KGkpfSkoXykmJnUucHVzaChuZXcgWUMoe3RhZ0J1aWxkZXI6byxtYXRjaGVkVGV4dDppLG9mZnNldDpMLmlkeCxlbWFpbDpffSkpfXJlc2V0VG9Ob25FbWFpbE1hdGNoU3RhdGUoKX19LEVtYWlsTWF0Y2hlcn0odEEpLFNBPWZ1bmN0aW9uIFNBKHMpe3ZvaWQgMD09PXMmJihzPXt9KSx0aGlzLmlkeD12b2lkIDAhPT1zLmlkeD9zLmlkeDotMSx0aGlzLmhhc01haWx0b1ByZWZpeD0hIXMuaGFzTWFpbHRvUHJlZml4LHRoaXMuaGFzRG9tYWluRG90PSEhcy5oYXNEb21haW5Eb3R9LEVBPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gVXJsTWF0Y2hWYWxpZGF0b3IoKXt9cmV0dXJuIFVybE1hdGNoVmFsaWRhdG9yLmlzVmFsaWQ9ZnVuY3Rpb24ocyxvKXtyZXR1cm4hKG8mJiF0aGlzLmlzVmFsaWRVcmlTY2hlbWUobyl8fHRoaXMudXJsTWF0Y2hEb2VzTm90SGF2ZVByb3RvY29sT3JEb3QocyxvKXx8dGhpcy51cmxNYXRjaERvZXNOb3RIYXZlQXRMZWFzdE9uZVdvcmRDaGFyKHMsbykmJiF0aGlzLmlzVmFsaWRJcEFkZHJlc3Mocyl8fHRoaXMuY29udGFpbnNNdWx0aXBsZURvdHMocykpfSxVcmxNYXRjaFZhbGlkYXRvci5pc1ZhbGlkSXBBZGRyZXNzPWZ1bmN0aW9uKHMpe3ZhciBvPW5ldyBSZWdFeHAodGhpcy5oYXNGdWxsUHJvdG9jb2xSZWdleC5zb3VyY2UrdGhpcy5pcFJlZ2V4LnNvdXJjZSk7cmV0dXJuIG51bGwhPT1zLm1hdGNoKG8pfSxVcmxNYXRjaFZhbGlkYXRvci5jb250YWluc011bHRpcGxlRG90cz1mdW5jdGlvbihzKXt2YXIgbz1zO3JldHVybiB0aGlzLmhhc0Z1bGxQcm90b2NvbFJlZ2V4LnRlc3QocykmJihvPXMuc3BsaXQoIjovLyIpWzFdKSxvLnNwbGl0KCIvIilbMF0uaW5kZXhPZigiLi4iKT4tMX0sVXJsTWF0Y2hWYWxpZGF0b3IuaXNWYWxpZFVyaVNjaGVtZT1mdW5jdGlvbihzKXt2YXIgbz1zLm1hdGNoKHRoaXMudXJpU2NoZW1lUmVnZXgpLGk9byYmb1swXS50b0xvd2VyQ2FzZSgpO3JldHVybiJqYXZhc2NyaXB0OiIhPT1pJiYidmJzY3JpcHQ6IiE9PWl9LFVybE1hdGNoVmFsaWRhdG9yLnVybE1hdGNoRG9lc05vdEhhdmVQcm90b2NvbE9yRG90PWZ1bmN0aW9uKHMsbyl7cmV0dXJuISghc3x8byYmdGhpcy5oYXNGdWxsUHJvdG9jb2xSZWdleC50ZXN0KG8pfHwtMSE9PXMuaW5kZXhPZigiLiIpKX0sVXJsTWF0Y2hWYWxpZGF0b3IudXJsTWF0Y2hEb2VzTm90SGF2ZUF0TGVhc3RPbmVXb3JkQ2hhcj1mdW5jdGlvbihzLG8pe3JldHVybiEoIXN8fCFvKSYmKCF0aGlzLmhhc0Z1bGxQcm90b2NvbFJlZ2V4LnRlc3QobykmJiF0aGlzLmhhc1dvcmRDaGFyQWZ0ZXJQcm90b2NvbFJlZ2V4LnRlc3QocykpfSxVcmxNYXRjaFZhbGlkYXRvci5oYXNGdWxsUHJvdG9jb2xSZWdleD0vXltBLVphLXpdWy0uK0EtWmEtejAtOV0qOlwvXC8vLFVybE1hdGNoVmFsaWRhdG9yLnVyaVNjaGVtZVJlZ2V4PS9eW0EtWmEtel1bLS4rQS1aYS16MC05XSo6LyxVcmxNYXRjaFZhbGlkYXRvci5oYXNXb3JkQ2hhckFmdGVyUHJvdG9jb2xSZWdleD1uZXcgUmVnRXhwKCI6W15cXHNdKj9bIitjQSsiXSIpLFVybE1hdGNoVmFsaWRhdG9yLmlwUmVnZXg9L1swLTldWzAtOV0/WzAtOV0/XC5bMC05XVswLTldP1swLTldP1wuWzAtOV1bMC05XT9bMC05XT9cLlswLTldWzAtOV0/WzAtOV0/KDpbMC05XSopP1wvPyQvLFVybE1hdGNoVmFsaWRhdG9yfSgpLHdBPShHQz1uZXcgUmVnRXhwKCJbLz8jXSg/OlsiK2hBKyJcXC0rJkAjLyU9fl8oKXwnJCpcXFtcXF17fT8hOiwuO17inJNdKlsiK2hBKyJcXC0rJkAjLyU9fl8oKXwnJCpcXFtcXF17feKck10pPyIpLG5ldyBSZWdFeHAoWyIoPzoiLCIoIiwvKD86W0EtWmEtel1bLS4rQS1aYS16MC05XXswLDYzfTooPyFbQS1aYS16XVstLitBLVphLXowLTldezAsNjN9OlwvXC8pKD8hXGQrXC8/KSg/OlwvXC8pPykvLnNvdXJjZSxnZXREb21haW5OYW1lU3RyKDIpLCIpIiwifCIsIigiLCIoLy8pPyIsLyg/Ond3d1wuKS8uc291cmNlLGdldERvbWFpbk5hbWVTdHIoNiksIikiLCJ8IiwiKCIsIigvLyk/IixnZXREb21haW5OYW1lU3RyKDEwKSsiXFwuIix5QS5zb3VyY2UsIig/IVstIitwQSsiXSkiLCIpIiwiKSIsIig/OjpbMC05XSspPyIsIig/OiIrR0Muc291cmNlKyIpPyJdLmpvaW4oIiIpLCJnaSIpKSx4QT1uZXcgUmVnRXhwKCJbIitoQSsiXSIpLGtBPWZ1bmN0aW9uKHMpe2Z1bmN0aW9uIFVybE1hdGNoZXIobyl7dmFyIGk9cy5jYWxsKHRoaXMsbyl8fHRoaXM7cmV0dXJuIGkuc3RyaXBQcmVmaXg9e3NjaGVtZTohMCx3d3c6ITB9LGkuc3RyaXBUcmFpbGluZ1NsYXNoPSEwLGkuZGVjb2RlUGVyY2VudEVuY29kaW5nPSEwLGkubWF0Y2hlclJlZ2V4PXdBLGkud29yZENoYXJSZWdFeHA9eEEsaS5zdHJpcFByZWZpeD1vLnN0cmlwUHJlZml4LGkuc3RyaXBUcmFpbGluZ1NsYXNoPW8uc3RyaXBUcmFpbGluZ1NsYXNoLGkuZGVjb2RlUGVyY2VudEVuY29kaW5nPW8uZGVjb2RlUGVyY2VudEVuY29kaW5nLGl9cmV0dXJuIHRzbGliX2VzNl9leHRlbmRzKFVybE1hdGNoZXIscyksVXJsTWF0Y2hlci5wcm90b3R5cGUucGFyc2VNYXRjaGVzPWZ1bmN0aW9uKHMpe2Zvcih2YXIgbyxpPXRoaXMubWF0Y2hlclJlZ2V4LGE9dGhpcy5zdHJpcFByZWZpeCx1PXRoaXMuc3RyaXBUcmFpbGluZ1NsYXNoLF89dGhpcy5kZWNvZGVQZXJjZW50RW5jb2Rpbmcsdz10aGlzLnRhZ0J1aWxkZXIseD1bXSxfbG9vcF8xPWZ1bmN0aW9uKCl7dmFyIGk9b1swXSxqPW9bMV0sTD1vWzRdLEI9b1s1XSwkPW9bOV0sVj1vLmluZGV4LFU9Qnx8JCx6PXMuY2hhckF0KFYtMSk7aWYoIUVBLmlzVmFsaWQoaSxqKSlyZXR1cm4iY29udGludWUiO2lmKFY+MCYmIkAiPT09eilyZXR1cm4iY29udGludWUiO2lmKFY+MCYmVSYmQy53b3JkQ2hhclJlZ0V4cC50ZXN0KHopKXJldHVybiJjb250aW51ZSI7aWYoL1w/JC8udGVzdChpKSYmKGk9aS5zdWJzdHIoMCxpLmxlbmd0aC0xKSksQy5tYXRjaEhhc1VuYmFsYW5jZWRDbG9zaW5nUGFyZW4oaSkpaT1pLnN1YnN0cigwLGkubGVuZ3RoLTEpO2Vsc2V7dmFyIFk9Qy5tYXRjaEhhc0ludmFsaWRDaGFyQWZ0ZXJUbGQoaSxqKTtZPi0xJiYoaT1pLnN1YnN0cigwLFkpKX12YXIgWj1bImh0dHA6Ly8iLCJodHRwczovLyJdLmZpbmQoKGZ1bmN0aW9uKHMpe3JldHVybiEhaiYmLTEhPT1qLmluZGV4T2Yocyl9KSk7aWYoWil7dmFyIGVlPWkuaW5kZXhPZihaKTtpPWkuc3Vic3RyKGVlKSxqPWouc3Vic3RyKGVlKSxWKz1lZX12YXIgaWU9aj8ic2NoZW1lIjpMPyJ3d3ciOiJ0bGQiLGFlPSEhajt4LnB1c2gobmV3IGVBKHt0YWdCdWlsZGVyOncsbWF0Y2hlZFRleHQ6aSxvZmZzZXQ6Vix1cmxNYXRjaFR5cGU6aWUsdXJsOmkscHJvdG9jb2xVcmxNYXRjaDphZSxwcm90b2NvbFJlbGF0aXZlTWF0Y2g6ISFVLHN0cmlwUHJlZml4OmEsc3RyaXBUcmFpbGluZ1NsYXNoOnUsZGVjb2RlUGVyY2VudEVuY29kaW5nOl99KSl9LEM9dGhpcztudWxsIT09KG89aS5leGVjKHMpKTspX2xvb3BfMSgpO3JldHVybiB4fSxVcmxNYXRjaGVyLnByb3RvdHlwZS5tYXRjaEhhc1VuYmFsYW5jZWRDbG9zaW5nUGFyZW49ZnVuY3Rpb24ocyl7dmFyIG8saT1zLmNoYXJBdChzLmxlbmd0aC0xKTtpZigiKSI9PT1pKW89IigiO2Vsc2UgaWYoIl0iPT09aSlvPSJbIjtlbHNle2lmKCJ9IiE9PWkpcmV0dXJuITE7bz0ieyJ9Zm9yKHZhciBhPTAsdT0wLF89cy5sZW5ndGgtMTt1PF87dSsrKXt2YXIgdz1zLmNoYXJBdCh1KTt3PT09bz9hKys6dz09PWkmJihhPU1hdGgubWF4KGEtMSwwKSl9cmV0dXJuIDA9PT1hfSxVcmxNYXRjaGVyLnByb3RvdHlwZS5tYXRjaEhhc0ludmFsaWRDaGFyQWZ0ZXJUbGQ9ZnVuY3Rpb24ocyxvKXtpZighcylyZXR1cm4tMTt2YXIgaT0wO28mJihpPXMuaW5kZXhPZigiOiIpLHM9cy5zbGljZShpKSk7dmFyIGE9bmV3IFJlZ0V4cCgiXigoLj8vLyk/Wy0uIitoQSsiXSpbLSIraEErIl1cXC5bLSIraEErIl0rKSIpLmV4ZWMocyk7cmV0dXJuIG51bGw9PT1hPy0xOihpKz1hWzFdLmxlbmd0aCxzPXMuc2xpY2UoYVsxXS5sZW5ndGgpLC9eW14tLkEtWmEtejAtOTpcLz8jXS8udGVzdChzKT9pOi0xKX0sVXJsTWF0Y2hlcn0odEEpLE9BPW5ldyBSZWdFeHAoIltfIi5jb25jYXQoaEEsIl0iKSksQ0E9ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gSGFzaHRhZ01hdGNoZXIobyl7dmFyIGk9cy5jYWxsKHRoaXMsbyl8fHRoaXM7cmV0dXJuIGkuc2VydmljZU5hbWU9InR3aXR0ZXIiLGkuc2VydmljZU5hbWU9by5zZXJ2aWNlTmFtZSxpfXJldHVybiB0c2xpYl9lczZfZXh0ZW5kcyhIYXNodGFnTWF0Y2hlcixzKSxIYXNodGFnTWF0Y2hlci5wcm90b3R5cGUucGFyc2VNYXRjaGVzPWZ1bmN0aW9uKHMpe2Zvcih2YXIgbz10aGlzLnRhZ0J1aWxkZXIsaT10aGlzLnNlcnZpY2VOYW1lLGE9W10sdT1zLmxlbmd0aCxfPTAsdz0tMSx4PTA7Xzx1Oyl7dmFyIEM9cy5jaGFyQXQoXyk7c3dpdGNoKHgpe2Nhc2UgMDpzdGF0ZU5vbmUoQyk7YnJlYWs7Y2FzZSAxOnN0YXRlTm9uSGFzaHRhZ1dvcmRDaGFyKEMpO2JyZWFrO2Nhc2UgMjpzdGF0ZUhhc2h0YWdIYXNoQ2hhcihDKTticmVhaztjYXNlIDM6c3RhdGVIYXNodGFnVGV4dENoYXIoQyk7YnJlYWs7ZGVmYXVsdDp0aHJvd1VuaGFuZGxlZENhc2VFcnJvcih4KX1fKyt9cmV0dXJuIGNhcHR1cmVNYXRjaElmVmFsaWQoKSxhO2Z1bmN0aW9uIHN0YXRlTm9uZShzKXsiIyI9PT1zPyh4PTIsdz1fKTpkQS50ZXN0KHMpJiYoeD0xKX1mdW5jdGlvbiBzdGF0ZU5vbkhhc2h0YWdXb3JkQ2hhcihzKXtkQS50ZXN0KHMpfHwoeD0wKX1mdW5jdGlvbiBzdGF0ZUhhc2h0YWdIYXNoQ2hhcihzKXt4PU9BLnRlc3Qocyk/MzpkQS50ZXN0KHMpPzE6MH1mdW5jdGlvbiBzdGF0ZUhhc2h0YWdUZXh0Q2hhcihzKXtPQS50ZXN0KHMpfHwoY2FwdHVyZU1hdGNoSWZWYWxpZCgpLHc9LTEseD1kQS50ZXN0KHMpPzE6MCl9ZnVuY3Rpb24gY2FwdHVyZU1hdGNoSWZWYWxpZCgpe2lmKHc+LTEmJl8tdzw9MTQwKXt2YXIgdT1zLnNsaWNlKHcsXykseD1uZXcgWEMoe3RhZ0J1aWxkZXI6byxtYXRjaGVkVGV4dDp1LG9mZnNldDp3LHNlcnZpY2VOYW1lOmksaGFzaHRhZzp1LnNsaWNlKDEpfSk7YS5wdXNoKHgpfX19LEhhc2h0YWdNYXRjaGVyfSh0QSksQUE9WyJ0d2l0dGVyIiwiZmFjZWJvb2siLCJpbnN0YWdyYW0iLCJ0aWt0b2siXSxqQT1uZXcgUmVnRXhwKCIiLmNvbmNhdCgvKD86KD86KD86KFwrKT9cZHsxLDN9Wy1cMDQwLl0/KT9cKD9cZHszfVwpP1stXDA0MC5dP1xkezN9Wy1cMDQwLl0/XGR7NH0pfCg/OihcKykoPzo5Wzk3Nl1cZHw4Wzk4NzUzMF1cZHw2Wzk4N11cZHw1WzkwXVxkfDQyXGR8M1s4NzVdXGR8Mls5ODY1NDMyMV1cZHw5Wzg1NDMyMTBdfDhbNjQyMV18Nls2NTQzMjEwXXw1Wzg3NjU0MzIxXXw0Wzk4NzY1NDMxMF18M1s5NjQzMjEwXXwyWzcwXXw3fDEpWy1cMDQwLl0/KD86XGRbLVwwNDAuXT8pezYsMTJ9XGQrKSkoWyw7XStbMC05XSsjPykqLy5zb3VyY2UsInwiKS5jb25jYXQoLygwKFsxLTldezF9LT9bMS05XVxkezN9fFsxLTldezJ9LT9cZHszfXxbMS05XXsyfVxkezF9LT9cZHsyfXxbMS05XXsyfVxkezJ9LT9cZHsxfSktP1xkezR9fDBbNzg5XTAtP1xkezR9LT9cZHs0fXwwNTAtP1xkezR9LT9cZHs0fSkvLnNvdXJjZSksImciKSxJQT1mdW5jdGlvbihzKXtmdW5jdGlvbiBQaG9uZU1hdGNoZXIoKXt2YXIgbz1udWxsIT09cyYmcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIG8ubWF0Y2hlclJlZ2V4PWpBLG99cmV0dXJuIHRzbGliX2VzNl9leHRlbmRzKFBob25lTWF0Y2hlcixzKSxQaG9uZU1hdGNoZXIucHJvdG90eXBlLnBhcnNlTWF0Y2hlcz1mdW5jdGlvbihzKXtmb3IodmFyIG8saT10aGlzLm1hdGNoZXJSZWdleCxhPXRoaXMudGFnQnVpbGRlcix1PVtdO251bGwhPT0obz1pLmV4ZWMocykpOyl7dmFyIF89b1swXSx3PV8ucmVwbGFjZSgvW14wLTksOyNdL2csIiIpLHg9ISghb1sxXSYmIW9bMl0pLEM9MD09by5pbmRleD8iIjpzLnN1YnN0cihvLmluZGV4LTEsMSksaj1zLnN1YnN0cihvLmluZGV4K18ubGVuZ3RoLDEpLEw9IUMubWF0Y2goL1xkLykmJiFqLm1hdGNoKC9cZC8pO3RoaXMudGVzdE1hdGNoKG9bM10pJiZ0aGlzLnRlc3RNYXRjaChfKSYmTCYmdS5wdXNoKG5ldyBaQyh7dGFnQnVpbGRlcjphLG1hdGNoZWRUZXh0Ol8sb2Zmc2V0Om8uaW5kZXgsbnVtYmVyOncscGx1c1NpZ246eH0pKX1yZXR1cm4gdX0sUGhvbmVNYXRjaGVyLnByb3RvdHlwZS50ZXN0TWF0Y2g9ZnVuY3Rpb24ocyl7cmV0dXJuIHNBLnRlc3Qocyl9LFBob25lTWF0Y2hlcn0odEEpLFBBPW5ldyBSZWdFeHAoIkBbXyIuY29uY2F0KGhBLCJdezEsNTB9KD8hW18iKS5jb25jYXQoaEEsIl0pIiksImciKSxUQT1uZXcgUmVnRXhwKCJAW18uIi5jb25jYXQoaEEsIl17MSwzMH0oPyFbXyIpLmNvbmNhdChoQSwiXSkiKSwiZyIpLE5BPW5ldyBSZWdFeHAoIkBbLV8uIi5jb25jYXQoaEEsIl17MSw1MH0oPyFbLV8iKS5jb25jYXQoaEEsIl0pIiksImciKSxNQT1uZXcgUmVnRXhwKCJAW18uIi5jb25jYXQoaEEsIl17MSwyM31bXyIpLmNvbmNhdChoQSwiXSg/IVtfIikuY29uY2F0KGhBLCJdKSIpLCJnIiksUkE9bmV3IFJlZ0V4cCgiW14iK2hBKyJdIiksREE9ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gTWVudGlvbk1hdGNoZXIobyl7dmFyIGk9cy5jYWxsKHRoaXMsbyl8fHRoaXM7cmV0dXJuIGkuc2VydmljZU5hbWU9InR3aXR0ZXIiLGkubWF0Y2hlclJlZ2V4ZXM9e3R3aXR0ZXI6UEEsaW5zdGFncmFtOlRBLHNvdW5kY2xvdWQ6TkEsdGlrdG9rOk1BfSxpLm5vbldvcmRDaGFyUmVnZXg9UkEsaS5zZXJ2aWNlTmFtZT1vLnNlcnZpY2VOYW1lLGl9cmV0dXJuIHRzbGliX2VzNl9leHRlbmRzKE1lbnRpb25NYXRjaGVyLHMpLE1lbnRpb25NYXRjaGVyLnByb3RvdHlwZS5wYXJzZU1hdGNoZXM9ZnVuY3Rpb24ocyl7dmFyIG8saT10aGlzLnNlcnZpY2VOYW1lLGE9dGhpcy5tYXRjaGVyUmVnZXhlc1t0aGlzLnNlcnZpY2VOYW1lXSx1PXRoaXMubm9uV29yZENoYXJSZWdleCxfPXRoaXMudGFnQnVpbGRlcix3PVtdO2lmKCFhKXJldHVybiB3O2Zvcig7bnVsbCE9PShvPWEuZXhlYyhzKSk7KXt2YXIgeD1vLmluZGV4LEM9cy5jaGFyQXQoeC0xKTtpZigwPT09eHx8dS50ZXN0KEMpKXt2YXIgaj1vWzBdLnJlcGxhY2UoL1wuKyQvZywiIiksTD1qLnNsaWNlKDEpO3cucHVzaChuZXcgUUMoe3RhZ0J1aWxkZXI6XyxtYXRjaGVkVGV4dDpqLG9mZnNldDp4LHNlcnZpY2VOYW1lOmksbWVudGlvbjpMfSkpfX1yZXR1cm4gd30sTWVudGlvbk1hdGNoZXJ9KHRBKTtmdW5jdGlvbiBwYXJzZUh0bWwocyxvKXtmb3IodmFyIGk9by5vbk9wZW5UYWcsYT1vLm9uQ2xvc2VUYWcsdT1vLm9uVGV4dCxfPW8ub25Db21tZW50LHc9by5vbkRvY3R5cGUseD1uZXcgTEEsQz0wLGo9cy5sZW5ndGgsTD0wLEI9MCwkPXg7QzxqOyl7dmFyIFY9cy5jaGFyQXQoQyk7c3dpdGNoKEwpe2Nhc2UgMDpzdGF0ZURhdGEoVik7YnJlYWs7Y2FzZSAxOnN0YXRlVGFnT3BlbihWKTticmVhaztjYXNlIDI6c3RhdGVFbmRUYWdPcGVuKFYpO2JyZWFrO2Nhc2UgMzpzdGF0ZVRhZ05hbWUoVik7YnJlYWs7Y2FzZSA0OnN0YXRlQmVmb3JlQXR0cmlidXRlTmFtZShWKTticmVhaztjYXNlIDU6c3RhdGVBdHRyaWJ1dGVOYW1lKFYpO2JyZWFrO2Nhc2UgNjpzdGF0ZUFmdGVyQXR0cmlidXRlTmFtZShWKTticmVhaztjYXNlIDc6c3RhdGVCZWZvcmVBdHRyaWJ1dGVWYWx1ZShWKTticmVhaztjYXNlIDg6c3RhdGVBdHRyaWJ1dGVWYWx1ZURvdWJsZVF1b3RlZChWKTticmVhaztjYXNlIDk6c3RhdGVBdHRyaWJ1dGVWYWx1ZVNpbmdsZVF1b3RlZChWKTticmVhaztjYXNlIDEwOnN0YXRlQXR0cmlidXRlVmFsdWVVbnF1b3RlZChWKTticmVhaztjYXNlIDExOnN0YXRlQWZ0ZXJBdHRyaWJ1dGVWYWx1ZVF1b3RlZChWKTticmVhaztjYXNlIDEyOnN0YXRlU2VsZkNsb3NpbmdTdGFydFRhZyhWKTticmVhaztjYXNlIDEzOnN0YXRlTWFya3VwRGVjbGFyYXRpb25PcGVuKFYpO2JyZWFrO2Nhc2UgMTQ6c3RhdGVDb21tZW50U3RhcnQoVik7YnJlYWs7Y2FzZSAxNTpzdGF0ZUNvbW1lbnRTdGFydERhc2goVik7YnJlYWs7Y2FzZSAxNjpzdGF0ZUNvbW1lbnQoVik7YnJlYWs7Y2FzZSAxNzpzdGF0ZUNvbW1lbnRFbmREYXNoKFYpO2JyZWFrO2Nhc2UgMTg6c3RhdGVDb21tZW50RW5kKFYpO2JyZWFrO2Nhc2UgMTk6c3RhdGVDb21tZW50RW5kQmFuZyhWKTticmVhaztjYXNlIDIwOnN0YXRlRG9jdHlwZShWKTticmVhaztkZWZhdWx0OnRocm93VW5oYW5kbGVkQ2FzZUVycm9yKEwpfUMrK31mdW5jdGlvbiBzdGF0ZURhdGEocyl7IjwiPT09cyYmc3RhcnROZXdUYWcoKX1mdW5jdGlvbiBzdGF0ZVRhZ09wZW4ocyl7IiEiPT09cz9MPTEzOiIvIj09PXM/KEw9MiwkPW5ldyBMQShfX2Fzc2lnbihfX2Fzc2lnbih7fSwkKSx7aXNDbG9zaW5nOiEwfSkpKToiPCI9PT1zP3N0YXJ0TmV3VGFnKCk6ckEudGVzdChzKT8oTD0zLCQ9bmV3IExBKF9fYXNzaWduKF9fYXNzaWduKHt9LCQpLHtpc09wZW5pbmc6ITB9KSkpOihMPTAsJD14KX1mdW5jdGlvbiBzdGF0ZVRhZ05hbWUocyl7b0EudGVzdChzKT8oJD1uZXcgTEEoX19hc3NpZ24oX19hc3NpZ24oe30sJCkse25hbWU6Y2FwdHVyZVRhZ05hbWUoKX0pKSxMPTQpOiI8Ij09PXM/c3RhcnROZXdUYWcoKToiLyI9PT1zPygkPW5ldyBMQShfX2Fzc2lnbihfX2Fzc2lnbih7fSwkKSx7bmFtZTpjYXB0dXJlVGFnTmFtZSgpfSkpLEw9MTIpOiI+Ij09PXM/KCQ9bmV3IExBKF9fYXNzaWduKF9fYXNzaWduKHt9LCQpLHtuYW1lOmNhcHR1cmVUYWdOYW1lKCl9KSksZW1pdFRhZ0FuZFByZXZpb3VzVGV4dE5vZGUoKSk6ckEudGVzdChzKXx8bkEudGVzdChzKXx8IjoiPT09c3x8cmVzZXRUb0RhdGFTdGF0ZSgpfWZ1bmN0aW9uIHN0YXRlRW5kVGFnT3BlbihzKXsiPiI9PT1zP3Jlc2V0VG9EYXRhU3RhdGUoKTpyQS50ZXN0KHMpP0w9MzpyZXNldFRvRGF0YVN0YXRlKCl9ZnVuY3Rpb24gc3RhdGVCZWZvcmVBdHRyaWJ1dGVOYW1lKHMpe29BLnRlc3Qocyl8fCgiLyI9PT1zP0w9MTI6Ij4iPT09cz9lbWl0VGFnQW5kUHJldmlvdXNUZXh0Tm9kZSgpOiI8Ij09PXM/c3RhcnROZXdUYWcoKToiPSI9PT1zfHxpQS50ZXN0KHMpfHxhQS50ZXN0KHMpP3Jlc2V0VG9EYXRhU3RhdGUoKTpMPTUpfWZ1bmN0aW9uIHN0YXRlQXR0cmlidXRlTmFtZShzKXtvQS50ZXN0KHMpP0w9NjoiLyI9PT1zP0w9MTI6Ij0iPT09cz9MPTc6Ij4iPT09cz9lbWl0VGFnQW5kUHJldmlvdXNUZXh0Tm9kZSgpOiI8Ij09PXM/c3RhcnROZXdUYWcoKTppQS50ZXN0KHMpJiZyZXNldFRvRGF0YVN0YXRlKCl9ZnVuY3Rpb24gc3RhdGVBZnRlckF0dHJpYnV0ZU5hbWUocyl7b0EudGVzdChzKXx8KCIvIj09PXM/TD0xMjoiPSI9PT1zP0w9NzoiPiI9PT1zP2VtaXRUYWdBbmRQcmV2aW91c1RleHROb2RlKCk6IjwiPT09cz9zdGFydE5ld1RhZygpOmlBLnRlc3Qocyk/cmVzZXRUb0RhdGFTdGF0ZSgpOkw9NSl9ZnVuY3Rpb24gc3RhdGVCZWZvcmVBdHRyaWJ1dGVWYWx1ZShzKXtvQS50ZXN0KHMpfHwoJyInPT09cz9MPTg6IiciPT09cz9MPTk6L1s+PWBdLy50ZXN0KHMpP3Jlc2V0VG9EYXRhU3RhdGUoKToiPCI9PT1zP3N0YXJ0TmV3VGFnKCk6TD0xMCl9ZnVuY3Rpb24gc3RhdGVBdHRyaWJ1dGVWYWx1ZURvdWJsZVF1b3RlZChzKXsnIic9PT1zJiYoTD0xMSl9ZnVuY3Rpb24gc3RhdGVBdHRyaWJ1dGVWYWx1ZVNpbmdsZVF1b3RlZChzKXsiJyI9PT1zJiYoTD0xMSl9ZnVuY3Rpb24gc3RhdGVBdHRyaWJ1dGVWYWx1ZVVucXVvdGVkKHMpe29BLnRlc3Qocyk/TD00OiI+Ij09PXM/ZW1pdFRhZ0FuZFByZXZpb3VzVGV4dE5vZGUoKToiPCI9PT1zJiZzdGFydE5ld1RhZygpfWZ1bmN0aW9uIHN0YXRlQWZ0ZXJBdHRyaWJ1dGVWYWx1ZVF1b3RlZChzKXtvQS50ZXN0KHMpP0w9NDoiLyI9PT1zP0w9MTI6Ij4iPT09cz9lbWl0VGFnQW5kUHJldmlvdXNUZXh0Tm9kZSgpOiI8Ij09PXM/c3RhcnROZXdUYWcoKTooTD00LGZ1bmN0aW9uIHJlY29uc3VtZUN1cnJlbnRDaGFyYWN0ZXIoKXtDLS19KCkpfWZ1bmN0aW9uIHN0YXRlU2VsZkNsb3NpbmdTdGFydFRhZyhzKXsiPiI9PT1zPygkPW5ldyBMQShfX2Fzc2lnbihfX2Fzc2lnbih7fSwkKSx7aXNDbG9zaW5nOiEwfSkpLGVtaXRUYWdBbmRQcmV2aW91c1RleHROb2RlKCkpOkw9NH1mdW5jdGlvbiBzdGF0ZU1hcmt1cERlY2xhcmF0aW9uT3BlbihvKXsiLS0iPT09cy5zdWJzdHIoQywyKT8oQys9MiwkPW5ldyBMQShfX2Fzc2lnbihfX2Fzc2lnbih7fSwkKSx7dHlwZToiY29tbWVudCJ9KSksTD0xNCk6IkRPQ1RZUEUiPT09cy5zdWJzdHIoQyw3KS50b1VwcGVyQ2FzZSgpPyhDKz03LCQ9bmV3IExBKF9fYXNzaWduKF9fYXNzaWduKHt9LCQpLHt0eXBlOiJkb2N0eXBlIn0pKSxMPTIwKTpyZXNldFRvRGF0YVN0YXRlKCl9ZnVuY3Rpb24gc3RhdGVDb21tZW50U3RhcnQocyl7Ii0iPT09cz9MPTE1OiI+Ij09PXM/cmVzZXRUb0RhdGFTdGF0ZSgpOkw9MTZ9ZnVuY3Rpb24gc3RhdGVDb21tZW50U3RhcnREYXNoKHMpeyItIj09PXM/TD0xODoiPiI9PT1zP3Jlc2V0VG9EYXRhU3RhdGUoKTpMPTE2fWZ1bmN0aW9uIHN0YXRlQ29tbWVudChzKXsiLSI9PT1zJiYoTD0xNyl9ZnVuY3Rpb24gc3RhdGVDb21tZW50RW5kRGFzaChzKXtMPSItIj09PXM/MTg6MTZ9ZnVuY3Rpb24gc3RhdGVDb21tZW50RW5kKHMpeyI+Ij09PXM/ZW1pdFRhZ0FuZFByZXZpb3VzVGV4dE5vZGUoKToiISI9PT1zP0w9MTk6Ii0iPT09c3x8KEw9MTYpfWZ1bmN0aW9uIHN0YXRlQ29tbWVudEVuZEJhbmcocyl7Ii0iPT09cz9MPTE3OiI+Ij09PXM/ZW1pdFRhZ0FuZFByZXZpb3VzVGV4dE5vZGUoKTpMPTE2fWZ1bmN0aW9uIHN0YXRlRG9jdHlwZShzKXsiPiI9PT1zP2VtaXRUYWdBbmRQcmV2aW91c1RleHROb2RlKCk6IjwiPT09cyYmc3RhcnROZXdUYWcoKX1mdW5jdGlvbiByZXNldFRvRGF0YVN0YXRlKCl7TD0wLCQ9eH1mdW5jdGlvbiBzdGFydE5ld1RhZygpe0w9MSwkPW5ldyBMQSh7aWR4OkN9KX1mdW5jdGlvbiBlbWl0VGFnQW5kUHJldmlvdXNUZXh0Tm9kZSgpe3ZhciBvPXMuc2xpY2UoQiwkLmlkeCk7byYmdShvLEIpLCJjb21tZW50Ij09PSQudHlwZT9fKCQuaWR4KToiZG9jdHlwZSI9PT0kLnR5cGU/dygkLmlkeCk6KCQuaXNPcGVuaW5nJiZpKCQubmFtZSwkLmlkeCksJC5pc0Nsb3NpbmcmJmEoJC5uYW1lLCQuaWR4KSkscmVzZXRUb0RhdGFTdGF0ZSgpLEI9QysxfWZ1bmN0aW9uIGNhcHR1cmVUYWdOYW1lKCl7dmFyIG89JC5pZHgrKCQuaXNDbG9zaW5nPzI6MSk7cmV0dXJuIHMuc2xpY2UobyxDKS50b0xvd2VyQ2FzZSgpfUI8QyYmZnVuY3Rpb24gZW1pdFRleHQoKXt2YXIgbz1zLnNsaWNlKEIsQyk7dShvLEIpLEI9QysxfSgpfXZhciBMQT1mdW5jdGlvbiBMQShzKXt2b2lkIDA9PT1zJiYocz17fSksdGhpcy5pZHg9dm9pZCAwIT09cy5pZHg/cy5pZHg6LTEsdGhpcy50eXBlPXMudHlwZXx8InRhZyIsdGhpcy5uYW1lPXMubmFtZXx8IiIsdGhpcy5pc09wZW5pbmc9ISFzLmlzT3BlbmluZyx0aGlzLmlzQ2xvc2luZz0hIXMuaXNDbG9zaW5nfSxGQT1mdW5jdGlvbigpe2Z1bmN0aW9uIEF1dG9saW5rZXIocyl7dm9pZCAwPT09cyYmKHM9e30pLHRoaXMudmVyc2lvbj1BdXRvbGlua2VyLnZlcnNpb24sdGhpcy51cmxzPXt9LHRoaXMuZW1haWw9ITAsdGhpcy5waG9uZT0hMCx0aGlzLmhhc2h0YWc9ITEsdGhpcy5tZW50aW9uPSExLHRoaXMubmV3V2luZG93PSEwLHRoaXMuc3RyaXBQcmVmaXg9e3NjaGVtZTohMCx3d3c6ITB9LHRoaXMuc3RyaXBUcmFpbGluZ1NsYXNoPSEwLHRoaXMuZGVjb2RlUGVyY2VudEVuY29kaW5nPSEwLHRoaXMudHJ1bmNhdGU9e2xlbmd0aDowLGxvY2F0aW9uOiJlbmQifSx0aGlzLmNsYXNzTmFtZT0iIix0aGlzLnJlcGxhY2VGbj1udWxsLHRoaXMuY29udGV4dD12b2lkIDAsdGhpcy5zYW5pdGl6ZUh0bWw9ITEsdGhpcy5tYXRjaGVycz1udWxsLHRoaXMudGFnQnVpbGRlcj1udWxsLHRoaXMudXJscz10aGlzLm5vcm1hbGl6ZVVybHNDZmcocy51cmxzKSx0aGlzLmVtYWlsPSJib29sZWFuIj09dHlwZW9mIHMuZW1haWw/cy5lbWFpbDp0aGlzLmVtYWlsLHRoaXMucGhvbmU9ImJvb2xlYW4iPT10eXBlb2Ygcy5waG9uZT9zLnBob25lOnRoaXMucGhvbmUsdGhpcy5oYXNodGFnPXMuaGFzaHRhZ3x8dGhpcy5oYXNodGFnLHRoaXMubWVudGlvbj1zLm1lbnRpb258fHRoaXMubWVudGlvbix0aGlzLm5ld1dpbmRvdz0iYm9vbGVhbiI9PXR5cGVvZiBzLm5ld1dpbmRvdz9zLm5ld1dpbmRvdzp0aGlzLm5ld1dpbmRvdyx0aGlzLnN0cmlwUHJlZml4PXRoaXMubm9ybWFsaXplU3RyaXBQcmVmaXhDZmcocy5zdHJpcFByZWZpeCksdGhpcy5zdHJpcFRyYWlsaW5nU2xhc2g9ImJvb2xlYW4iPT10eXBlb2Ygcy5zdHJpcFRyYWlsaW5nU2xhc2g/cy5zdHJpcFRyYWlsaW5nU2xhc2g6dGhpcy5zdHJpcFRyYWlsaW5nU2xhc2gsdGhpcy5kZWNvZGVQZXJjZW50RW5jb2Rpbmc9ImJvb2xlYW4iPT10eXBlb2Ygcy5kZWNvZGVQZXJjZW50RW5jb2Rpbmc/cy5kZWNvZGVQZXJjZW50RW5jb2Rpbmc6dGhpcy5kZWNvZGVQZXJjZW50RW5jb2RpbmcsdGhpcy5zYW5pdGl6ZUh0bWw9cy5zYW5pdGl6ZUh0bWx8fCExO3ZhciBvPXRoaXMubWVudGlvbjtpZighMSE9PW8mJi0xPT09WyJ0d2l0dGVyIiwiaW5zdGFncmFtIiwic291bmRjbG91ZCIsInRpa3RvayJdLmluZGV4T2YobykpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGBtZW50aW9uYCBjZmcgJyIuY29uY2F0KG8sIicgLSBzZWUgZG9jcyIpKTt2YXIgaT10aGlzLmhhc2h0YWc7aWYoITEhPT1pJiYtMT09PUFBLmluZGV4T2YoaSkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGBoYXNodGFnYCBjZmcgJyIuY29uY2F0KGksIicgLSBzZWUgZG9jcyIpKTt0aGlzLnRydW5jYXRlPXRoaXMubm9ybWFsaXplVHJ1bmNhdGVDZmcocy50cnVuY2F0ZSksdGhpcy5jbGFzc05hbWU9cy5jbGFzc05hbWV8fHRoaXMuY2xhc3NOYW1lLHRoaXMucmVwbGFjZUZuPXMucmVwbGFjZUZufHx0aGlzLnJlcGxhY2VGbix0aGlzLmNvbnRleHQ9cy5jb250ZXh0fHx0aGlzfXJldHVybiBBdXRvbGlua2VyLmxpbms9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gbmV3IEF1dG9saW5rZXIobykubGluayhzKX0sQXV0b2xpbmtlci5wYXJzZT1mdW5jdGlvbihzLG8pe3JldHVybiBuZXcgQXV0b2xpbmtlcihvKS5wYXJzZShzKX0sQXV0b2xpbmtlci5wcm90b3R5cGUubm9ybWFsaXplVXJsc0NmZz1mdW5jdGlvbihzKXtyZXR1cm4gbnVsbD09cyYmKHM9ITApLCJib29sZWFuIj09dHlwZW9mIHM/e3NjaGVtZU1hdGNoZXM6cyx3d3dNYXRjaGVzOnMsdGxkTWF0Y2hlczpzfTp7c2NoZW1lTWF0Y2hlczoiYm9vbGVhbiIhPXR5cGVvZiBzLnNjaGVtZU1hdGNoZXN8fHMuc2NoZW1lTWF0Y2hlcyx3d3dNYXRjaGVzOiJib29sZWFuIiE9dHlwZW9mIHMud3d3TWF0Y2hlc3x8cy53d3dNYXRjaGVzLHRsZE1hdGNoZXM6ImJvb2xlYW4iIT10eXBlb2Ygcy50bGRNYXRjaGVzfHxzLnRsZE1hdGNoZXN9fSxBdXRvbGlua2VyLnByb3RvdHlwZS5ub3JtYWxpemVTdHJpcFByZWZpeENmZz1mdW5jdGlvbihzKXtyZXR1cm4gbnVsbD09cyYmKHM9ITApLCJib29sZWFuIj09dHlwZW9mIHM/e3NjaGVtZTpzLHd3dzpzfTp7c2NoZW1lOiJib29sZWFuIiE9dHlwZW9mIHMuc2NoZW1lfHxzLnNjaGVtZSx3d3c6ImJvb2xlYW4iIT10eXBlb2Ygcy53d3d8fHMud3d3fX0sQXV0b2xpbmtlci5wcm90b3R5cGUubm9ybWFsaXplVHJ1bmNhdGVDZmc9ZnVuY3Rpb24ocyl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBzP3tsZW5ndGg6cyxsb2NhdGlvbjoiZW5kIn06ZnVuY3Rpb24gZGVmYXVsdHMocyxvKXtmb3IodmFyIGkgaW4gbylvLmhhc093blByb3BlcnR5KGkpJiZ2b2lkIDA9PT1zW2ldJiYoc1tpXT1vW2ldKTtyZXR1cm4gc30oc3x8e30se2xlbmd0aDpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksbG9jYXRpb246ImVuZCJ9KX0sQXV0b2xpbmtlci5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24ocyl7dmFyIG89dGhpcyxpPVsiYSIsInN0eWxlIiwic2NyaXB0Il0sYT0wLHU9W107cmV0dXJuIHBhcnNlSHRtbChzLHtvbk9wZW5UYWc6ZnVuY3Rpb24ocyl7aS5pbmRleE9mKHMpPj0wJiZhKyt9LG9uVGV4dDpmdW5jdGlvbihzLGkpe2lmKDA9PT1hKXt2YXIgXz1mdW5jdGlvbiBzcGxpdEFuZENhcHR1cmUocyxvKXtpZighby5nbG9iYWwpdGhyb3cgbmV3IEVycm9yKCJgc3BsaXRSZWdleGAgbXVzdCBoYXZlIHRoZSAnZycgZmxhZyBzZXQiKTtmb3IodmFyIGksYT1bXSx1PTA7aT1vLmV4ZWMocyk7KWEucHVzaChzLnN1YnN0cmluZyh1LGkuaW5kZXgpKSxhLnB1c2goaVswXSksdT1pLmluZGV4K2lbMF0ubGVuZ3RoO3JldHVybiBhLnB1c2gocy5zdWJzdHJpbmcodSkpLGF9KHMsLygmbmJzcDt8JiMxNjA7fCZsdDt8JiM2MDt8Jmd0O3wmIzYyO3wmcXVvdDt8JiMzNDt8JiMzOTspL2dpKSx3PWk7Xy5mb3JFYWNoKChmdW5jdGlvbihzLGkpe2lmKGklMj09MCl7dmFyIGE9by5wYXJzZVRleHQocyx3KTt1LnB1c2guYXBwbHkodSxhKX13Kz1zLmxlbmd0aH0pKX19LG9uQ2xvc2VUYWc6ZnVuY3Rpb24ocyl7aS5pbmRleE9mKHMpPj0wJiYoYT1NYXRoLm1heChhLTEsMCkpfSxvbkNvbW1lbnQ6ZnVuY3Rpb24ocyl7fSxvbkRvY3R5cGU6ZnVuY3Rpb24ocyl7fX0pLHU9dGhpcy5jb21wYWN0TWF0Y2hlcyh1KSx1PXRoaXMucmVtb3ZlVW53YW50ZWRNYXRjaGVzKHUpfSxBdXRvbGlua2VyLnByb3RvdHlwZS5jb21wYWN0TWF0Y2hlcz1mdW5jdGlvbihzKXtzLnNvcnQoKGZ1bmN0aW9uKHMsbyl7cmV0dXJuIHMuZ2V0T2Zmc2V0KCktby5nZXRPZmZzZXQoKX0pKTtmb3IodmFyIG89MDtvPHMubGVuZ3RoLTE7KXt2YXIgaT1zW29dLGE9aS5nZXRPZmZzZXQoKSx1PWkuZ2V0TWF0Y2hlZFRleHQoKS5sZW5ndGgsXz1hK3U7aWYobysxPHMubGVuZ3RoKXtpZihzW28rMV0uZ2V0T2Zmc2V0KCk9PT1hKXt2YXIgdz1zW28rMV0uZ2V0TWF0Y2hlZFRleHQoKS5sZW5ndGg+dT9vOm8rMTtzLnNwbGljZSh3LDEpO2NvbnRpbnVlfWlmKHNbbysxXS5nZXRPZmZzZXQoKTxfKXtzLnNwbGljZShvKzEsMSk7Y29udGludWV9fW8rK31yZXR1cm4gc30sQXV0b2xpbmtlci5wcm90b3R5cGUucmVtb3ZlVW53YW50ZWRNYXRjaGVzPWZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLmhhc2h0YWd8fHV0aWxzX3JlbW92ZShzLChmdW5jdGlvbihzKXtyZXR1cm4iaGFzaHRhZyI9PT1zLmdldFR5cGUoKX0pKSx0aGlzLmVtYWlsfHx1dGlsc19yZW1vdmUocywoZnVuY3Rpb24ocyl7cmV0dXJuImVtYWlsIj09PXMuZ2V0VHlwZSgpfSkpLHRoaXMucGhvbmV8fHV0aWxzX3JlbW92ZShzLChmdW5jdGlvbihzKXtyZXR1cm4icGhvbmUiPT09cy5nZXRUeXBlKCl9KSksdGhpcy5tZW50aW9ufHx1dGlsc19yZW1vdmUocywoZnVuY3Rpb24ocyl7cmV0dXJuIm1lbnRpb24iPT09cy5nZXRUeXBlKCl9KSksdGhpcy51cmxzLnNjaGVtZU1hdGNoZXN8fHV0aWxzX3JlbW92ZShzLChmdW5jdGlvbihzKXtyZXR1cm4idXJsIj09PXMuZ2V0VHlwZSgpJiYic2NoZW1lIj09PXMuZ2V0VXJsTWF0Y2hUeXBlKCl9KSksdGhpcy51cmxzLnd3d01hdGNoZXN8fHV0aWxzX3JlbW92ZShzLChmdW5jdGlvbihzKXtyZXR1cm4idXJsIj09PXMuZ2V0VHlwZSgpJiYid3d3Ij09PXMuZ2V0VXJsTWF0Y2hUeXBlKCl9KSksdGhpcy51cmxzLnRsZE1hdGNoZXN8fHV0aWxzX3JlbW92ZShzLChmdW5jdGlvbihzKXtyZXR1cm4idXJsIj09PXMuZ2V0VHlwZSgpJiYidGxkIj09PXMuZ2V0VXJsTWF0Y2hUeXBlKCl9KSksc30sQXV0b2xpbmtlci5wcm90b3R5cGUucGFyc2VUZXh0PWZ1bmN0aW9uKHMsbyl7dm9pZCAwPT09byYmKG89MCksbz1vfHwwO2Zvcih2YXIgaT10aGlzLmdldE1hdGNoZXJzKCksYT1bXSx1PTAsXz1pLmxlbmd0aDt1PF87dSsrKXtmb3IodmFyIHc9aVt1XS5wYXJzZU1hdGNoZXMocykseD0wLEM9dy5sZW5ndGg7eDxDO3grKyl3W3hdLnNldE9mZnNldChvK3dbeF0uZ2V0T2Zmc2V0KCkpO2EucHVzaC5hcHBseShhLHcpfXJldHVybiBhfSxBdXRvbGlua2VyLnByb3RvdHlwZS5saW5rPWZ1bmN0aW9uKHMpe2lmKCFzKXJldHVybiIiO3RoaXMuc2FuaXRpemVIdG1sJiYocz1zLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpKTtmb3IodmFyIG89dGhpcy5wYXJzZShzKSxpPVtdLGE9MCx1PTAsXz1vLmxlbmd0aDt1PF87dSsrKXt2YXIgdz1vW3VdO2kucHVzaChzLnN1YnN0cmluZyhhLHcuZ2V0T2Zmc2V0KCkpKSxpLnB1c2godGhpcy5jcmVhdGVNYXRjaFJldHVyblZhbCh3KSksYT13LmdldE9mZnNldCgpK3cuZ2V0TWF0Y2hlZFRleHQoKS5sZW5ndGh9cmV0dXJuIGkucHVzaChzLnN1YnN0cmluZyhhKSksaS5qb2luKCIiKX0sQXV0b2xpbmtlci5wcm90b3R5cGUuY3JlYXRlTWF0Y2hSZXR1cm5WYWw9ZnVuY3Rpb24ocyl7dmFyIG87cmV0dXJuIHRoaXMucmVwbGFjZUZuJiYobz10aGlzLnJlcGxhY2VGbi5jYWxsKHRoaXMuY29udGV4dCxzKSksInN0cmluZyI9PXR5cGVvZiBvP286ITE9PT1vP3MuZ2V0TWF0Y2hlZFRleHQoKTpvIGluc3RhbmNlb2YgSkM/by50b0FuY2hvclN0cmluZygpOnMuYnVpbGRUYWcoKS50b0FuY2hvclN0cmluZygpfSxBdXRvbGlua2VyLnByb3RvdHlwZS5nZXRNYXRjaGVycz1mdW5jdGlvbigpe2lmKHRoaXMubWF0Y2hlcnMpcmV0dXJuIHRoaXMubWF0Y2hlcnM7dmFyIHM9dGhpcy5nZXRUYWdCdWlsZGVyKCksbz1bbmV3IENBKHt0YWdCdWlsZGVyOnMsc2VydmljZU5hbWU6dGhpcy5oYXNodGFnfSksbmV3IF9BKHt0YWdCdWlsZGVyOnN9KSxuZXcgSUEoe3RhZ0J1aWxkZXI6c30pLG5ldyBEQSh7dGFnQnVpbGRlcjpzLHNlcnZpY2VOYW1lOnRoaXMubWVudGlvbn0pLG5ldyBrQSh7dGFnQnVpbGRlcjpzLHN0cmlwUHJlZml4OnRoaXMuc3RyaXBQcmVmaXgsc3RyaXBUcmFpbGluZ1NsYXNoOnRoaXMuc3RyaXBUcmFpbGluZ1NsYXNoLGRlY29kZVBlcmNlbnRFbmNvZGluZzp0aGlzLmRlY29kZVBlcmNlbnRFbmNvZGluZ30pXTtyZXR1cm4gdGhpcy5tYXRjaGVycz1vfSxBdXRvbGlua2VyLnByb3RvdHlwZS5nZXRUYWdCdWlsZGVyPWZ1bmN0aW9uKCl7dmFyIHM9dGhpcy50YWdCdWlsZGVyO3JldHVybiBzfHwocz10aGlzLnRhZ0J1aWxkZXI9bmV3IEhDKHtuZXdXaW5kb3c6dGhpcy5uZXdXaW5kb3csdHJ1bmNhdGU6dGhpcy50cnVuY2F0ZSxjbGFzc05hbWU6dGhpcy5jbGFzc05hbWV9KSksc30sQXV0b2xpbmtlci52ZXJzaW9uPSIzLjE2LjIiLEF1dG9saW5rZXIuQW5jaG9yVGFnQnVpbGRlcj1IQyxBdXRvbGlua2VyLkh0bWxUYWc9SkMsQXV0b2xpbmtlci5tYXRjaGVyPXtFbWFpbDpfQSxIYXNodGFnOkNBLE1hdGNoZXI6dEEsTWVudGlvbjpEQSxQaG9uZTpJQSxVcmw6a0F9LEF1dG9saW5rZXIubWF0Y2g9e0VtYWlsOllDLEhhc2h0YWc6WEMsTWF0Y2g6S0MsTWVudGlvbjpRQyxQaG9uZTpaQyxVcmw6ZUF9LEF1dG9saW5rZXJ9KCk7Y29uc3QgQkE9RkE7dmFyICRBPS93d3d8QHxcOlwvXC8vO2Z1bmN0aW9uIGlzTGlua09wZW4ocyl7cmV0dXJuL148YVs+XHNdL2kudGVzdChzKX1mdW5jdGlvbiBpc0xpbmtDbG9zZShzKXtyZXR1cm4vXjxcL2Fccyo+L2kudGVzdChzKX1mdW5jdGlvbiBjcmVhdGVMaW5raWZpZXIoKXt2YXIgcz1bXSxvPW5ldyBCQSh7c3RyaXBQcmVmaXg6ITEsdXJsOiEwLGVtYWlsOiEwLHJlcGxhY2VGbjpmdW5jdGlvbihvKXtzd2l0Y2goby5nZXRUeXBlKCkpe2Nhc2UidXJsIjpzLnB1c2goe3RleHQ6by5tYXRjaGVkVGV4dCx1cmw6by5nZXRVcmwoKX0pO2JyZWFrO2Nhc2UiZW1haWwiOnMucHVzaCh7dGV4dDpvLm1hdGNoZWRUZXh0LHVybDoibWFpbHRvOiIrby5nZXRFbWFpbCgpLnJlcGxhY2UoL15tYWlsdG86L2ksIiIpfSl9cmV0dXJuITF9fSk7cmV0dXJue2xpbmtzOnMsYXV0b2xpbmtlcjpvfX1mdW5jdGlvbiBwYXJzZVRva2VucyhzKXt2YXIgbyxpLGEsdSxfLHcseCxDLGosTCxCLCQsVixVPXMudG9rZW5zLHo9bnVsbDtmb3IoaT0wLGE9VS5sZW5ndGg7aTxhO2krKylpZigiaW5saW5lIj09PVVbaV0udHlwZSlmb3IoQj0wLG89KHU9VVtpXS5jaGlsZHJlbikubGVuZ3RoLTE7bz49MDtvLS0paWYoImxpbmtfY2xvc2UiIT09KF89dVtvXSkudHlwZSl7aWYoImh0bWx0YWciPT09Xy50eXBlJiYoaXNMaW5rT3BlbihfLmNvbnRlbnQpJiZCPjAmJkItLSxpc0xpbmtDbG9zZShfLmNvbnRlbnQpJiZCKyspLCEoQj4wKSYmInRleHQiPT09Xy50eXBlJiYkQS50ZXN0KF8uY29udGVudCkpe2lmKHp8fCgkPSh6PWNyZWF0ZUxpbmtpZmllcigpKS5saW5rcyxWPXouYXV0b2xpbmtlciksdz1fLmNvbnRlbnQsJC5sZW5ndGg9MCxWLmxpbmsodyksISQubGVuZ3RoKWNvbnRpbnVlO2Zvcih4PVtdLEw9Xy5sZXZlbCxDPTA7QzwkLmxlbmd0aDtDKyspcy5pbmxpbmUudmFsaWRhdGVMaW5rKCRbQ10udXJsKSYmKChqPXcuaW5kZXhPZigkW0NdLnRleHQpKSYmeC5wdXNoKHt0eXBlOiJ0ZXh0Iixjb250ZW50Oncuc2xpY2UoMCxqKSxsZXZlbDpMfSkseC5wdXNoKHt0eXBlOiJsaW5rX29wZW4iLGhyZWY6JFtDXS51cmwsdGl0bGU6IiIsbGV2ZWw6TCsrfSkseC5wdXNoKHt0eXBlOiJ0ZXh0Iixjb250ZW50OiRbQ10udGV4dCxsZXZlbDpMfSkseC5wdXNoKHt0eXBlOiJsaW5rX2Nsb3NlIixsZXZlbDotLUx9KSx3PXcuc2xpY2UoaiskW0NdLnRleHQubGVuZ3RoKSk7dy5sZW5ndGgmJngucHVzaCh7dHlwZToidGV4dCIsY29udGVudDp3LGxldmVsOkx9KSxVW2ldLmNoaWxkcmVuPXU9W10uY29uY2F0KHUuc2xpY2UoMCxvKSx4LHUuc2xpY2UobysxKSl9fWVsc2UgZm9yKG8tLTt1W29dLmxldmVsIT09Xy5sZXZlbCYmImxpbmtfb3BlbiIhPT11W29dLnR5cGU7KW8tLX1mdW5jdGlvbiBsaW5raWZ5KHMpe3MuY29yZS5ydWxlci5wdXNoKCJsaW5raWZ5IixwYXJzZVRva2Vucyl9Y29uc3R7ZW50cmllczpxQSxzZXRQcm90b3R5cGVPZjpWQSxpc0Zyb3plbjpVQSxnZXRQcm90b3R5cGVPZjp6QSxnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6V0F9PU9iamVjdDtsZXR7ZnJlZXplOkpBLHNlYWw6SEEsY3JlYXRlOktBfT1PYmplY3Qse2FwcGx5OkdBLGNvbnN0cnVjdDpZQX09InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0O0pBfHwoSkE9ZnVuY3Rpb24gZnJlZXplKHMpe3JldHVybiBzfSksSEF8fChIQT1mdW5jdGlvbiBzZWFsKHMpe3JldHVybiBzfSksR0F8fChHQT1mdW5jdGlvbiBhcHBseShzLG8saSl7cmV0dXJuIHMuYXBwbHkobyxpKX0pLFlBfHwoWUE9ZnVuY3Rpb24gY29uc3RydWN0KHMsbyl7cmV0dXJuIG5ldyBzKC4uLm8pfSk7Y29uc3QgWEE9dW5hcHBseShBcnJheS5wcm90b3R5cGUuZm9yRWFjaCksUUE9dW5hcHBseShBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpLFpBPXVuYXBwbHkoQXJyYXkucHJvdG90eXBlLnBvcCksZWo9dW5hcHBseShBcnJheS5wcm90b3R5cGUucHVzaCksZmo9dW5hcHBseShBcnJheS5wcm90b3R5cGUuc3BsaWNlKSxtaj11bmFwcGx5KFN0cmluZy5wcm90b3R5cGUudG9Mb3dlckNhc2UpLF9qPXVuYXBwbHkoU3RyaW5nLnByb3RvdHlwZS50b1N0cmluZyksQ2o9dW5hcHBseShTdHJpbmcucHJvdG90eXBlLm1hdGNoKSxBaj11bmFwcGx5KFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSksTmo9dW5hcHBseShTdHJpbmcucHJvdG90eXBlLmluZGV4T2YpLEJqPXVuYXBwbHkoU3RyaW5nLnByb3RvdHlwZS50cmltKSwkaj11bmFwcGx5KE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpLHpqPXVuYXBwbHkoUmVnRXhwLnByb3RvdHlwZS50ZXN0KSxKaj1mdW5jdGlvbiB1bmNvbnN0cnVjdChzKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIG89YXJndW1lbnRzLmxlbmd0aCxpPW5ldyBBcnJheShvKSxhPTA7YTxvO2ErKylpW2FdPWFyZ3VtZW50c1thXTtyZXR1cm4gWUEocyxpKX19KFR5cGVFcnJvcik7ZnVuY3Rpb24gdW5hcHBseShzKXtyZXR1cm4gZnVuY3Rpb24obyl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGgsYT1uZXcgQXJyYXkoaT4xP2ktMTowKSx1PTE7dTxpO3UrKylhW3UtMV09YXJndW1lbnRzW3VdO3JldHVybiBHQShzLG8sYSl9fWZ1bmN0aW9uIGFkZFRvU2V0KHMsbyl7bGV0IGk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm1qO1ZBJiZWQShzLG51bGwpO2xldCBhPW8ubGVuZ3RoO2Zvcig7YS0tOyl7bGV0IHU9b1thXTtpZigic3RyaW5nIj09dHlwZW9mIHUpe2NvbnN0IHM9aSh1KTtzIT09dSYmKFVBKG8pfHwob1thXT1zKSx1PXMpfXNbdV09ITB9cmV0dXJuIHN9ZnVuY3Rpb24gcHVyaWZ5X2VzX2NsZWFuQXJyYXkocyl7Zm9yKGxldCBvPTA7bzxzLmxlbmd0aDtvKyspeyRqKHMsbyl8fChzW29dPW51bGwpfXJldHVybiBzfWZ1bmN0aW9uIGNsb25lKHMpe2NvbnN0IG89S0EobnVsbCk7Zm9yKGNvbnN0W2ksYV1vZiBxQShzKSl7JGoocyxpKSYmKEFycmF5LmlzQXJyYXkoYSk/b1tpXT1wdXJpZnlfZXNfY2xlYW5BcnJheShhKTphJiYib2JqZWN0Ij09dHlwZW9mIGEmJmEuY29uc3RydWN0b3I9PT1PYmplY3Q/b1tpXT1jbG9uZShhKTpvW2ldPWEpfXJldHVybiBvfWZ1bmN0aW9uIGxvb2t1cEdldHRlcihzLG8pe2Zvcig7bnVsbCE9PXM7KXtjb25zdCBpPVdBKHMsbyk7aWYoaSl7aWYoaS5nZXQpcmV0dXJuIHVuYXBwbHkoaS5nZXQpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBpLnZhbHVlKXJldHVybiB1bmFwcGx5KGkudmFsdWUpfXM9ekEocyl9cmV0dXJuIGZ1bmN0aW9uIGZhbGxiYWNrVmFsdWUoKXtyZXR1cm4gbnVsbH19Y29uc3QgS2o9SkEoWyJhIiwiYWJiciIsImFjcm9ueW0iLCJhZGRyZXNzIiwiYXJlYSIsImFydGljbGUiLCJhc2lkZSIsImF1ZGlvIiwiYiIsImJkaSIsImJkbyIsImJpZyIsImJsaW5rIiwiYmxvY2txdW90ZSIsImJvZHkiLCJiciIsImJ1dHRvbiIsImNhbnZhcyIsImNhcHRpb24iLCJjZW50ZXIiLCJjaXRlIiwiY29kZSIsImNvbCIsImNvbGdyb3VwIiwiY29udGVudCIsImRhdGEiLCJkYXRhbGlzdCIsImRkIiwiZGVjb3JhdG9yIiwiZGVsIiwiZGV0YWlscyIsImRmbiIsImRpYWxvZyIsImRpciIsImRpdiIsImRsIiwiZHQiLCJlbGVtZW50IiwiZW0iLCJmaWVsZHNldCIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb250IiwiZm9vdGVyIiwiZm9ybSIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhlYWQiLCJoZWFkZXIiLCJoZ3JvdXAiLCJociIsImh0bWwiLCJpIiwiaW1nIiwiaW5wdXQiLCJpbnMiLCJrYmQiLCJsYWJlbCIsImxlZ2VuZCIsImxpIiwibWFpbiIsIm1hcCIsIm1hcmsiLCJtYXJxdWVlIiwibWVudSIsIm1lbnVpdGVtIiwibWV0ZXIiLCJuYXYiLCJub2JyIiwib2wiLCJvcHRncm91cCIsIm9wdGlvbiIsIm91dHB1dCIsInAiLCJwaWN0dXJlIiwicHJlIiwicHJvZ3Jlc3MiLCJxIiwicnAiLCJydCIsInJ1YnkiLCJzIiwic2FtcCIsInNlY3Rpb24iLCJzZWxlY3QiLCJzaGFkb3ciLCJzbWFsbCIsInNvdXJjZSIsInNwYWNlciIsInNwYW4iLCJzdHJpa2UiLCJzdHJvbmciLCJzdHlsZSIsInN1YiIsInN1bW1hcnkiLCJzdXAiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0ZW1wbGF0ZSIsInRleHRhcmVhIiwidGZvb3QiLCJ0aCIsInRoZWFkIiwidGltZSIsInRyIiwidHJhY2siLCJ0dCIsInUiLCJ1bCIsInZhciIsInZpZGVvIiwid2JyIl0pLEdqPUpBKFsic3ZnIiwiYSIsImFsdGdseXBoIiwiYWx0Z2x5cGhkZWYiLCJhbHRnbHlwaGl0ZW0iLCJhbmltYXRlY29sb3IiLCJhbmltYXRlbW90aW9uIiwiYW5pbWF0ZXRyYW5zZm9ybSIsImNpcmNsZSIsImNsaXBwYXRoIiwiZGVmcyIsImRlc2MiLCJlbGxpcHNlIiwiZmlsdGVyIiwiZm9udCIsImciLCJnbHlwaCIsImdseXBocmVmIiwiaGtlcm4iLCJpbWFnZSIsImxpbmUiLCJsaW5lYXJncmFkaWVudCIsIm1hcmtlciIsIm1hc2siLCJtZXRhZGF0YSIsIm1wYXRoIiwicGF0aCIsInBhdHRlcm4iLCJwb2x5Z29uIiwicG9seWxpbmUiLCJyYWRpYWxncmFkaWVudCIsInJlY3QiLCJzdG9wIiwic3R5bGUiLCJzd2l0Y2giLCJzeW1ib2wiLCJ0ZXh0IiwidGV4dHBhdGgiLCJ0aXRsZSIsInRyZWYiLCJ0c3BhbiIsInZpZXciLCJ2a2VybiJdKSxYaj1KQShbImZlQmxlbmQiLCJmZUNvbG9yTWF0cml4IiwiZmVDb21wb25lbnRUcmFuc2ZlciIsImZlQ29tcG9zaXRlIiwiZmVDb252b2x2ZU1hdHJpeCIsImZlRGlmZnVzZUxpZ2h0aW5nIiwiZmVEaXNwbGFjZW1lbnRNYXAiLCJmZURpc3RhbnRMaWdodCIsImZlRHJvcFNoYWRvdyIsImZlRmxvb2QiLCJmZUZ1bmNBIiwiZmVGdW5jQiIsImZlRnVuY0ciLCJmZUZ1bmNSIiwiZmVHYXVzc2lhbkJsdXIiLCJmZUltYWdlIiwiZmVNZXJnZSIsImZlTWVyZ2VOb2RlIiwiZmVNb3JwaG9sb2d5IiwiZmVPZmZzZXQiLCJmZVBvaW50TGlnaHQiLCJmZVNwZWN1bGFyTGlnaHRpbmciLCJmZVNwb3RMaWdodCIsImZlVGlsZSIsImZlVHVyYnVsZW5jZSJdKSxlST1KQShbImFuaW1hdGUiLCJjb2xvci1wcm9maWxlIiwiY3Vyc29yIiwiZGlzY2FyZCIsImZvbnQtZmFjZSIsImZvbnQtZmFjZS1mb3JtYXQiLCJmb250LWZhY2UtbmFtZSIsImZvbnQtZmFjZS1zcmMiLCJmb250LWZhY2UtdXJpIiwiZm9yZWlnbm9iamVjdCIsImhhdGNoIiwiaGF0Y2hwYXRoIiwibWVzaCIsIm1lc2hncmFkaWVudCIsIm1lc2hwYXRjaCIsIm1lc2hyb3ciLCJtaXNzaW5nLWdseXBoIiwic2NyaXB0Iiwic2V0Iiwic29saWRjb2xvciIsInVua25vd24iLCJ1c2UiXSksdEk9SkEoWyJtYXRoIiwibWVuY2xvc2UiLCJtZXJyb3IiLCJtZmVuY2VkIiwibWZyYWMiLCJtZ2x5cGgiLCJtaSIsIm1sYWJlbGVkdHIiLCJtbXVsdGlzY3JpcHRzIiwibW4iLCJtbyIsIm1vdmVyIiwibXBhZGRlZCIsIm1waGFudG9tIiwibXJvb3QiLCJtcm93IiwibXMiLCJtc3BhY2UiLCJtc3FydCIsIm1zdHlsZSIsIm1zdWIiLCJtc3VwIiwibXN1YnN1cCIsIm10YWJsZSIsIm10ZCIsIm10ZXh0IiwibXRyIiwibXVuZGVyIiwibXVuZGVyb3ZlciIsIm1wcmVzY3JpcHRzIl0pLHJJPUpBKFsibWFjdGlvbiIsIm1hbGlnbmdyb3VwIiwibWFsaWdubWFyayIsIm1sb25nZGl2IiwibXNjYXJyaWVzIiwibXNjYXJyeSIsIm1zZ3JvdXAiLCJtc3RhY2siLCJtc2xpbmUiLCJtc3JvdyIsInNlbWFudGljcyIsImFubm90YXRpb24iLCJhbm5vdGF0aW9uLXhtbCIsIm1wcmVzY3JpcHRzIiwibm9uZSJdKSxuST1KQShbIiN0ZXh0Il0pLHNJPUpBKFsiYWNjZXB0IiwiYWN0aW9uIiwiYWxpZ24iLCJhbHQiLCJhdXRvY2FwaXRhbGl6ZSIsImF1dG9jb21wbGV0ZSIsImF1dG9waWN0dXJlaW5waWN0dXJlIiwiYXV0b3BsYXkiLCJiYWNrZ3JvdW5kIiwiYmdjb2xvciIsImJvcmRlciIsImNhcHR1cmUiLCJjZWxscGFkZGluZyIsImNlbGxzcGFjaW5nIiwiY2hlY2tlZCIsImNpdGUiLCJjbGFzcyIsImNsZWFyIiwiY29sb3IiLCJjb2xzIiwiY29sc3BhbiIsImNvbnRyb2xzIiwiY29udHJvbHNsaXN0IiwiY29vcmRzIiwiY3Jvc3NvcmlnaW4iLCJkYXRldGltZSIsImRlY29kaW5nIiwiZGVmYXVsdCIsImRpciIsImRpc2FibGVkIiwiZGlzYWJsZXBpY3R1cmVpbnBpY3R1cmUiLCJkaXNhYmxlcmVtb3RlcGxheWJhY2siLCJkb3dubG9hZCIsImRyYWdnYWJsZSIsImVuY3R5cGUiLCJlbnRlcmtleWhpbnQiLCJmYWNlIiwiZm9yIiwiaGVhZGVycyIsImhlaWdodCIsImhpZGRlbiIsImhpZ2giLCJocmVmIiwiaHJlZmxhbmciLCJpZCIsImlucHV0bW9kZSIsImludGVncml0eSIsImlzbWFwIiwia2luZCIsImxhYmVsIiwibGFuZyIsImxpc3QiLCJsb2FkaW5nIiwibG9vcCIsImxvdyIsIm1heCIsIm1heGxlbmd0aCIsIm1lZGlhIiwibWV0aG9kIiwibWluIiwibWlubGVuZ3RoIiwibXVsdGlwbGUiLCJtdXRlZCIsIm5hbWUiLCJub25jZSIsIm5vc2hhZGUiLCJub3ZhbGlkYXRlIiwibm93cmFwIiwib3BlbiIsIm9wdGltdW0iLCJwYXR0ZXJuIiwicGxhY2Vob2xkZXIiLCJwbGF5c2lubGluZSIsInBvcG92ZXIiLCJwb3BvdmVydGFyZ2V0IiwicG9wb3ZlcnRhcmdldGFjdGlvbiIsInBvc3RlciIsInByZWxvYWQiLCJwdWJkYXRlIiwicmFkaW9ncm91cCIsInJlYWRvbmx5IiwicmVsIiwicmVxdWlyZWQiLCJyZXYiLCJyZXZlcnNlZCIsInJvbGUiLCJyb3dzIiwicm93c3BhbiIsInNwZWxsY2hlY2siLCJzY29wZSIsInNlbGVjdGVkIiwic2hhcGUiLCJzaXplIiwic2l6ZXMiLCJzcGFuIiwic3JjbGFuZyIsInN0YXJ0Iiwic3JjIiwic3Jjc2V0Iiwic3RlcCIsInN0eWxlIiwic3VtbWFyeSIsInRhYmluZGV4IiwidGl0bGUiLCJ0cmFuc2xhdGUiLCJ0eXBlIiwidXNlbWFwIiwidmFsaWduIiwidmFsdWUiLCJ3aWR0aCIsIndyYXAiLCJ4bWxucyIsInNsb3QiXSksb0k9SkEoWyJhY2NlbnQtaGVpZ2h0IiwiYWNjdW11bGF0ZSIsImFkZGl0aXZlIiwiYWxpZ25tZW50LWJhc2VsaW5lIiwiYW1wbGl0dWRlIiwiYXNjZW50IiwiYXR0cmlidXRlbmFtZSIsImF0dHJpYnV0ZXR5cGUiLCJhemltdXRoIiwiYmFzZWZyZXF1ZW5jeSIsImJhc2VsaW5lLXNoaWZ0IiwiYmVnaW4iLCJiaWFzIiwiYnkiLCJjbGFzcyIsImNsaXAiLCJjbGlwcGF0aHVuaXRzIiwiY2xpcC1wYXRoIiwiY2xpcC1ydWxlIiwiY29sb3IiLCJjb2xvci1pbnRlcnBvbGF0aW9uIiwiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIiwiY29sb3ItcHJvZmlsZSIsImNvbG9yLXJlbmRlcmluZyIsImN4IiwiY3kiLCJkIiwiZHgiLCJkeSIsImRpZmZ1c2Vjb25zdGFudCIsImRpcmVjdGlvbiIsImRpc3BsYXkiLCJkaXZpc29yIiwiZHVyIiwiZWRnZW1vZGUiLCJlbGV2YXRpb24iLCJlbmQiLCJleHBvbmVudCIsImZpbGwiLCJmaWxsLW9wYWNpdHkiLCJmaWxsLXJ1bGUiLCJmaWx0ZXIiLCJmaWx0ZXJ1bml0cyIsImZsb29kLWNvbG9yIiwiZmxvb2Qtb3BhY2l0eSIsImZvbnQtZmFtaWx5IiwiZm9udC1zaXplIiwiZm9udC1zaXplLWFkanVzdCIsImZvbnQtc3RyZXRjaCIsImZvbnQtc3R5bGUiLCJmb250LXZhcmlhbnQiLCJmb250LXdlaWdodCIsImZ4IiwiZnkiLCJnMSIsImcyIiwiZ2x5cGgtbmFtZSIsImdseXBocmVmIiwiZ3JhZGllbnR1bml0cyIsImdyYWRpZW50dHJhbnNmb3JtIiwiaGVpZ2h0IiwiaHJlZiIsImlkIiwiaW1hZ2UtcmVuZGVyaW5nIiwiaW4iLCJpbjIiLCJpbnRlcmNlcHQiLCJrIiwiazEiLCJrMiIsImszIiwiazQiLCJrZXJuaW5nIiwia2V5cG9pbnRzIiwia2V5c3BsaW5lcyIsImtleXRpbWVzIiwibGFuZyIsImxlbmd0aGFkanVzdCIsImxldHRlci1zcGFjaW5nIiwia2VybmVsbWF0cml4Iiwia2VybmVsdW5pdGxlbmd0aCIsImxpZ2h0aW5nLWNvbG9yIiwibG9jYWwiLCJtYXJrZXItZW5kIiwibWFya2VyLW1pZCIsIm1hcmtlci1zdGFydCIsIm1hcmtlcmhlaWdodCIsIm1hcmtlcnVuaXRzIiwibWFya2Vyd2lkdGgiLCJtYXNrY29udGVudHVuaXRzIiwibWFza3VuaXRzIiwibWF4IiwibWFzayIsIm1lZGlhIiwibWV0aG9kIiwibW9kZSIsIm1pbiIsIm5hbWUiLCJudW1vY3RhdmVzIiwib2Zmc2V0Iiwib3BlcmF0b3IiLCJvcGFjaXR5Iiwib3JkZXIiLCJvcmllbnQiLCJvcmllbnRhdGlvbiIsIm9yaWdpbiIsIm92ZXJmbG93IiwicGFpbnQtb3JkZXIiLCJwYXRoIiwicGF0aGxlbmd0aCIsInBhdHRlcm5jb250ZW50dW5pdHMiLCJwYXR0ZXJudHJhbnNmb3JtIiwicGF0dGVybnVuaXRzIiwicG9pbnRzIiwicHJlc2VydmVhbHBoYSIsInByZXNlcnZlYXNwZWN0cmF0aW8iLCJwcmltaXRpdmV1bml0cyIsInIiLCJyeCIsInJ5IiwicmFkaXVzIiwicmVmeCIsInJlZnkiLCJyZXBlYXRjb3VudCIsInJlcGVhdGR1ciIsInJlc3RhcnQiLCJyZXN1bHQiLCJyb3RhdGUiLCJzY2FsZSIsInNlZWQiLCJzaGFwZS1yZW5kZXJpbmciLCJzbG9wZSIsInNwZWN1bGFyY29uc3RhbnQiLCJzcGVjdWxhcmV4cG9uZW50Iiwic3ByZWFkbWV0aG9kIiwic3RhcnRvZmZzZXQiLCJzdGRkZXZpYXRpb24iLCJzdGl0Y2h0aWxlcyIsInN0b3AtY29sb3IiLCJzdG9wLW9wYWNpdHkiLCJzdHJva2UtZGFzaGFycmF5Iiwic3Ryb2tlLWRhc2hvZmZzZXQiLCJzdHJva2UtbGluZWNhcCIsInN0cm9rZS1saW5lam9pbiIsInN0cm9rZS1taXRlcmxpbWl0Iiwic3Ryb2tlLW9wYWNpdHkiLCJzdHJva2UiLCJzdHJva2Utd2lkdGgiLCJzdHlsZSIsInN1cmZhY2VzY2FsZSIsInN5c3RlbWxhbmd1YWdlIiwidGFiaW5kZXgiLCJ0YWJsZXZhbHVlcyIsInRhcmdldHgiLCJ0YXJnZXR5IiwidHJhbnNmb3JtIiwidHJhbnNmb3JtLW9yaWdpbiIsInRleHQtYW5jaG9yIiwidGV4dC1kZWNvcmF0aW9uIiwidGV4dC1yZW5kZXJpbmciLCJ0ZXh0bGVuZ3RoIiwidHlwZSIsInUxIiwidTIiLCJ1bmljb2RlIiwidmFsdWVzIiwidmlld2JveCIsInZpc2liaWxpdHkiLCJ2ZXJzaW9uIiwidmVydC1hZHYteSIsInZlcnQtb3JpZ2luLXgiLCJ2ZXJ0LW9yaWdpbi15Iiwid2lkdGgiLCJ3b3JkLXNwYWNpbmciLCJ3cmFwIiwid3JpdGluZy1tb2RlIiwieGNoYW5uZWxzZWxlY3RvciIsInljaGFubmVsc2VsZWN0b3IiLCJ4IiwieDEiLCJ4MiIsInhtbG5zIiwieSIsInkxIiwieTIiLCJ6Iiwiem9vbWFuZHBhbiJdKSxpST1KQShbImFjY2VudCIsImFjY2VudHVuZGVyIiwiYWxpZ24iLCJiZXZlbGxlZCIsImNsb3NlIiwiY29sdW1uc2FsaWduIiwiY29sdW1ubGluZXMiLCJjb2x1bW5zcGFuIiwiZGVub21hbGlnbiIsImRlcHRoIiwiZGlyIiwiZGlzcGxheSIsImRpc3BsYXlzdHlsZSIsImVuY29kaW5nIiwiZmVuY2UiLCJmcmFtZSIsImhlaWdodCIsImhyZWYiLCJpZCIsImxhcmdlb3AiLCJsZW5ndGgiLCJsaW5ldGhpY2tuZXNzIiwibHNwYWNlIiwibHF1b3RlIiwibWF0aGJhY2tncm91bmQiLCJtYXRoY29sb3IiLCJtYXRoc2l6ZSIsIm1hdGh2YXJpYW50IiwibWF4c2l6ZSIsIm1pbnNpemUiLCJtb3ZhYmxlbGltaXRzIiwibm90YXRpb24iLCJudW1hbGlnbiIsIm9wZW4iLCJyb3dhbGlnbiIsInJvd2xpbmVzIiwicm93c3BhY2luZyIsInJvd3NwYW4iLCJyc3BhY2UiLCJycXVvdGUiLCJzY3JpcHRsZXZlbCIsInNjcmlwdG1pbnNpemUiLCJzY3JpcHRzaXplbXVsdGlwbGllciIsInNlbGVjdGlvbiIsInNlcGFyYXRvciIsInNlcGFyYXRvcnMiLCJzdHJldGNoeSIsInN1YnNjcmlwdHNoaWZ0Iiwic3Vwc2NyaXB0c2hpZnQiLCJzeW1tZXRyaWMiLCJ2b2Zmc2V0Iiwid2lkdGgiLCJ4bWxucyJdKSxhST1KQShbInhsaW5rOmhyZWYiLCJ4bWw6aWQiLCJ4bGluazp0aXRsZSIsInhtbDpzcGFjZSIsInhtbG5zOnhsaW5rIl0pLGNJPUhBKC9ce1x7W1x3XFddKnxbXHdcV10qXH1cfS9nbSksbEk9SEEoLzwlW1x3XFddKnxbXHdcV10qJT4vZ20pLHVJPUhBKC9cJFx7W1x3XFddKi9nbSkscEk9SEEoL15kYXRhLVtcLVx3Llx1MDBCNy1cdUZGRkZdKyQvKSxoST1IQSgvXmFyaWEtW1wtXHddKyQvKSxkST1IQSgvXig/Oig/Oig/OmZ8aHQpdHBzP3xtYWlsdG98dGVsfGNhbGx0b3xzbXN8Y2lkfHhtcHApOnxbXmEtel18W2EteisuXC1dKyg/OlteYS16Ky5cLTpdfCQpKS9pKSxmST1IQSgvXig/Olx3K3NjcmlwdHxkYXRhKTovaSksbUk9SEEoL1tcdTAwMDAtXHUwMDIwXHUwMEEwXHUxNjgwXHUxODBFXHUyMDAwLVx1MjAyOVx1MjA1Rlx1MzAwMF0vZyksZ0k9SEEoL15odG1sJC9pKSx5ST1IQSgvXlthLXpdWy5cd10qKC1bLlx3XSspKyQvaSk7dmFyIHZJPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLEFSSUFfQVRUUjpoSSxBVFRSX1dISVRFU1BBQ0U6bUksQ1VTVE9NX0VMRU1FTlQ6eUksREFUQV9BVFRSOnBJLERPQ1RZUEVfTkFNRTpnSSxFUkJfRVhQUjpsSSxJU19BTExPV0VEX1VSSTpkSSxJU19TQ1JJUFRfT1JfREFUQTpmSSxNVVNUQUNIRV9FWFBSOmNJLFRNUExJVF9FWFBSOnVJfSk7Y29uc3QgYkk9MSxfST0zLFNJPTcsRUk9OCx3ST05LHhJPWZ1bmN0aW9uIGdldEdsb2JhbCgpe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93P251bGw6d2luZG93fTt2YXIga0k9ZnVuY3Rpb24gY3JlYXRlRE9NUHVyaWZ5KCl7bGV0IHM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnhJKCk7Y29uc3QgRE9NUHVyaWZ5PXM9PmNyZWF0ZURPTVB1cmlmeShzKTtpZihET01QdXJpZnkudmVyc2lvbj0iMy4yLjQiLERPTVB1cmlmeS5yZW1vdmVkPVtdLCFzfHwhcy5kb2N1bWVudHx8cy5kb2N1bWVudC5ub2RlVHlwZSE9PXdJfHwhcy5FbGVtZW50KXJldHVybiBET01QdXJpZnkuaXNTdXBwb3J0ZWQ9ITEsRE9NUHVyaWZ5O2xldHtkb2N1bWVudDpvfT1zO2NvbnN0IGk9byxhPWkuY3VycmVudFNjcmlwdCx7RG9jdW1lbnRGcmFnbWVudDp1LEhUTUxUZW1wbGF0ZUVsZW1lbnQ6XyxOb2RlOncsRWxlbWVudDp4LE5vZGVGaWx0ZXI6QyxOYW1lZE5vZGVNYXA6aj1zLk5hbWVkTm9kZU1hcHx8cy5Nb3pOYW1lZEF0dHJNYXAsSFRNTEZvcm1FbGVtZW50OkwsRE9NUGFyc2VyOkIsdHJ1c3RlZFR5cGVzOiR9PXMsVj14LnByb3RvdHlwZSxVPWxvb2t1cEdldHRlcihWLCJjbG9uZU5vZGUiKSx6PWxvb2t1cEdldHRlcihWLCJyZW1vdmUiKSxZPWxvb2t1cEdldHRlcihWLCJuZXh0U2libGluZyIpLFo9bG9va3VwR2V0dGVyKFYsImNoaWxkTm9kZXMiKSxlZT1sb29rdXBHZXR0ZXIoViwicGFyZW50Tm9kZSIpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBfKXtjb25zdCBzPW8uY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtzLmNvbnRlbnQmJnMuY29udGVudC5vd25lckRvY3VtZW50JiYobz1zLmNvbnRlbnQub3duZXJEb2N1bWVudCl9bGV0IGllLGFlPSIiO2NvbnN0e2ltcGxlbWVudGF0aW9uOmNlLGNyZWF0ZU5vZGVJdGVyYXRvcjpsZSxjcmVhdGVEb2N1bWVudEZyYWdtZW50OnBlLGdldEVsZW1lbnRzQnlUYWdOYW1lOmRlfT1vLHtpbXBvcnROb2RlOmZlfT1pO2xldCB5ZT17YWZ0ZXJTYW5pdGl6ZUF0dHJpYnV0ZXM6W10sYWZ0ZXJTYW5pdGl6ZUVsZW1lbnRzOltdLGFmdGVyU2FuaXRpemVTaGFkb3dET006W10sYmVmb3JlU2FuaXRpemVBdHRyaWJ1dGVzOltdLGJlZm9yZVNhbml0aXplRWxlbWVudHM6W10sYmVmb3JlU2FuaXRpemVTaGFkb3dET006W10sdXBvblNhbml0aXplQXR0cmlidXRlOltdLHVwb25TYW5pdGl6ZUVsZW1lbnQ6W10sdXBvblNhbml0aXplU2hhZG93Tm9kZTpbXX07RE9NUHVyaWZ5LmlzU3VwcG9ydGVkPSJmdW5jdGlvbiI9PXR5cGVvZiBxQSYmImZ1bmN0aW9uIj09dHlwZW9mIGVlJiZjZSYmdm9pZCAwIT09Y2UuY3JlYXRlSFRNTERvY3VtZW50O2NvbnN0e01VU1RBQ0hFX0VYUFI6YmUsRVJCX0VYUFI6X2UsVE1QTElUX0VYUFI6U2UsREFUQV9BVFRSOndlLEFSSUFfQVRUUjp4ZSxJU19TQ1JJUFRfT1JfREFUQTpQZSxBVFRSX1dISVRFU1BBQ0U6VGUsQ1VTVE9NX0VMRU1FTlQ6UmV9PXZJO2xldHtJU19BTExPV0VEX1VSSTokZX09dkkscWU9bnVsbDtjb25zdCB6ZT1hZGRUb1NldCh7fSxbLi4uS2osLi4uR2osLi4uWGosLi4udEksLi4ubkldKTtsZXQgV2U9bnVsbDtjb25zdCBIZT1hZGRUb1NldCh7fSxbLi4uc0ksLi4ub0ksLi4uaUksLi4uYUldKTtsZXQgWWU9T2JqZWN0LnNlYWwoS0EobnVsbCx7dGFnTmFtZUNoZWNrOnt3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMCx2YWx1ZTpudWxsfSxhdHRyaWJ1dGVOYW1lQ2hlY2s6e3dyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLHZhbHVlOm51bGx9LGFsbG93Q3VzdG9taXplZEJ1aWx0SW5FbGVtZW50czp7d3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITAsdmFsdWU6ITF9fSkpLFhlPW51bGwsUWU9bnVsbCxldD0hMCx0dD0hMCxydD0hMSxudD0hMCxzdD0hMSxvdD0hMCxpdD0hMSxhdD0hMSxjdD0hMSxsdD0hMSx1dD0hMSxwdD0hMSxodD0hMCxkdD0hMSxtdD0hMCxndD0hMSx5dD17fSx2dD1udWxsO2NvbnN0IGJ0PWFkZFRvU2V0KHt9LFsiYW5ub3RhdGlvbi14bWwiLCJhdWRpbyIsImNvbGdyb3VwIiwiZGVzYyIsImZvcmVpZ25vYmplY3QiLCJoZWFkIiwiaWZyYW1lIiwibWF0aCIsIm1pIiwibW4iLCJtbyIsIm1zIiwibXRleHQiLCJub2VtYmVkIiwibm9mcmFtZXMiLCJub3NjcmlwdCIsInBsYWludGV4dCIsInNjcmlwdCIsInN0eWxlIiwic3ZnIiwidGVtcGxhdGUiLCJ0aGVhZCIsInRpdGxlIiwidmlkZW8iLCJ4bXAiXSk7bGV0IF90PW51bGw7Y29uc3QgU3Q9YWRkVG9TZXQoe30sWyJhdWRpbyIsInZpZGVvIiwiaW1nIiwic291cmNlIiwiaW1hZ2UiLCJ0cmFjayJdKTtsZXQgRXQ9bnVsbDtjb25zdCB3dD1hZGRUb1NldCh7fSxbImFsdCIsImNsYXNzIiwiZm9yIiwiaWQiLCJsYWJlbCIsIm5hbWUiLCJwYXR0ZXJuIiwicGxhY2Vob2xkZXIiLCJyb2xlIiwic3VtbWFyeSIsInRpdGxlIiwidmFsdWUiLCJzdHlsZSIsInhtbG5zIl0pLHh0PSJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIixrdD0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLE90PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIjtsZXQgQ3Q9T3QsQXQ9ITEsanQ9bnVsbDtjb25zdCBJdD1hZGRUb1NldCh7fSxbeHQsa3QsT3RdLF9qKTtsZXQgUHQ9YWRkVG9TZXQoe30sWyJtaSIsIm1vIiwibW4iLCJtcyIsIm10ZXh0Il0pLFR0PWFkZFRvU2V0KHt9LFsiYW5ub3RhdGlvbi14bWwiXSk7Y29uc3QgTnQ9YWRkVG9TZXQoe30sWyJ0aXRsZSIsInN0eWxlIiwiZm9udCIsImEiLCJzY3JpcHQiXSk7bGV0IE10PW51bGw7Y29uc3QgUnQ9WyJhcHBsaWNhdGlvbi94aHRtbCt4bWwiLCJ0ZXh0L2h0bWwiXTtsZXQgRHQ9bnVsbCxMdD1udWxsO2NvbnN0IEZ0PW8uY3JlYXRlRWxlbWVudCgiZm9ybSIpLEJ0PWZ1bmN0aW9uIGlzUmVnZXhPckZ1bmN0aW9uKHMpe3JldHVybiBzIGluc3RhbmNlb2YgUmVnRXhwfHxzIGluc3RhbmNlb2YgRnVuY3Rpb259LCR0PWZ1bmN0aW9uIF9wYXJzZUNvbmZpZygpe2xldCBzPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtpZighTHR8fEx0IT09cyl7aWYocyYmIm9iamVjdCI9PXR5cGVvZiBzfHwocz17fSkscz1jbG9uZShzKSxNdD0tMT09PVJ0LmluZGV4T2Yocy5QQVJTRVJfTUVESUFfVFlQRSk/InRleHQvaHRtbCI6cy5QQVJTRVJfTUVESUFfVFlQRSxEdD0iYXBwbGljYXRpb24veGh0bWwreG1sIj09PU10P19qOm1qLHFlPSRqKHMsIkFMTE9XRURfVEFHUyIpP2FkZFRvU2V0KHt9LHMuQUxMT1dFRF9UQUdTLER0KTp6ZSxXZT0kaihzLCJBTExPV0VEX0FUVFIiKT9hZGRUb1NldCh7fSxzLkFMTE9XRURfQVRUUixEdCk6SGUsanQ9JGoocywiQUxMT1dFRF9OQU1FU1BBQ0VTIik/YWRkVG9TZXQoe30scy5BTExPV0VEX05BTUVTUEFDRVMsX2opOkl0LEV0PSRqKHMsIkFERF9VUklfU0FGRV9BVFRSIik/YWRkVG9TZXQoY2xvbmUod3QpLHMuQUREX1VSSV9TQUZFX0FUVFIsRHQpOnd0LF90PSRqKHMsIkFERF9EQVRBX1VSSV9UQUdTIik/YWRkVG9TZXQoY2xvbmUoU3QpLHMuQUREX0RBVEFfVVJJX1RBR1MsRHQpOlN0LHZ0PSRqKHMsIkZPUkJJRF9DT05URU5UUyIpP2FkZFRvU2V0KHt9LHMuRk9SQklEX0NPTlRFTlRTLER0KTpidCxYZT0kaihzLCJGT1JCSURfVEFHUyIpP2FkZFRvU2V0KHt9LHMuRk9SQklEX1RBR1MsRHQpOnt9LFFlPSRqKHMsIkZPUkJJRF9BVFRSIik/YWRkVG9TZXQoe30scy5GT1JCSURfQVRUUixEdCk6e30seXQ9ISEkaihzLCJVU0VfUFJPRklMRVMiKSYmcy5VU0VfUFJPRklMRVMsZXQ9ITEhPT1zLkFMTE9XX0FSSUFfQVRUUix0dD0hMSE9PXMuQUxMT1dfREFUQV9BVFRSLHJ0PXMuQUxMT1dfVU5LTk9XTl9QUk9UT0NPTFN8fCExLG50PSExIT09cy5BTExPV19TRUxGX0NMT1NFX0lOX0FUVFIsc3Q9cy5TQUZFX0ZPUl9URU1QTEFURVN8fCExLG90PSExIT09cy5TQUZFX0ZPUl9YTUwsaXQ9cy5XSE9MRV9ET0NVTUVOVHx8ITEsbHQ9cy5SRVRVUk5fRE9NfHwhMSx1dD1zLlJFVFVSTl9ET01fRlJBR01FTlR8fCExLHB0PXMuUkVUVVJOX1RSVVNURURfVFlQRXx8ITEsY3Q9cy5GT1JDRV9CT0RZfHwhMSxodD0hMSE9PXMuU0FOSVRJWkVfRE9NLGR0PXMuU0FOSVRJWkVfTkFNRURfUFJPUFN8fCExLG10PSExIT09cy5LRUVQX0NPTlRFTlQsZ3Q9cy5JTl9QTEFDRXx8ITEsJGU9cy5BTExPV0VEX1VSSV9SRUdFWFB8fGRJLEN0PXMuTkFNRVNQQUNFfHxPdCxQdD1zLk1BVEhNTF9URVhUX0lOVEVHUkFUSU9OX1BPSU5UU3x8UHQsVHQ9cy5IVE1MX0lOVEVHUkFUSU9OX1BPSU5UU3x8VHQsWWU9cy5DVVNUT01fRUxFTUVOVF9IQU5ETElOR3x8e30scy5DVVNUT01fRUxFTUVOVF9IQU5ETElORyYmQnQocy5DVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2spJiYoWWUudGFnTmFtZUNoZWNrPXMuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrKSxzLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HJiZCdChzLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmF0dHJpYnV0ZU5hbWVDaGVjaykmJihZZS5hdHRyaWJ1dGVOYW1lQ2hlY2s9cy5DVVNUT01fRUxFTUVOVF9IQU5ETElORy5hdHRyaWJ1dGVOYW1lQ2hlY2spLHMuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcmJiJib29sZWFuIj09dHlwZW9mIHMuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcuYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzJiYoWWUuYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzPXMuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcuYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzKSxzdCYmKHR0PSExKSx1dCYmKGx0PSEwKSx5dCYmKHFlPWFkZFRvU2V0KHt9LG5JKSxXZT1bXSwhMD09PXl0Lmh0bWwmJihhZGRUb1NldChxZSxLaiksYWRkVG9TZXQoV2Usc0kpKSwhMD09PXl0LnN2ZyYmKGFkZFRvU2V0KHFlLEdqKSxhZGRUb1NldChXZSxvSSksYWRkVG9TZXQoV2UsYUkpKSwhMD09PXl0LnN2Z0ZpbHRlcnMmJihhZGRUb1NldChxZSxYaiksYWRkVG9TZXQoV2Usb0kpLGFkZFRvU2V0KFdlLGFJKSksITA9PT15dC5tYXRoTWwmJihhZGRUb1NldChxZSx0SSksYWRkVG9TZXQoV2UsaUkpLGFkZFRvU2V0KFdlLGFJKSkpLHMuQUREX1RBR1MmJihxZT09PXplJiYocWU9Y2xvbmUocWUpKSxhZGRUb1NldChxZSxzLkFERF9UQUdTLER0KSkscy5BRERfQVRUUiYmKFdlPT09SGUmJihXZT1jbG9uZShXZSkpLGFkZFRvU2V0KFdlLHMuQUREX0FUVFIsRHQpKSxzLkFERF9VUklfU0FGRV9BVFRSJiZhZGRUb1NldChFdCxzLkFERF9VUklfU0FGRV9BVFRSLER0KSxzLkZPUkJJRF9DT05URU5UUyYmKHZ0PT09YnQmJih2dD1jbG9uZSh2dCkpLGFkZFRvU2V0KHZ0LHMuRk9SQklEX0NPTlRFTlRTLER0KSksbXQmJihxZVsiI3RleHQiXT0hMCksaXQmJmFkZFRvU2V0KHFlLFsiaHRtbCIsImhlYWQiLCJib2R5Il0pLHFlLnRhYmxlJiYoYWRkVG9TZXQocWUsWyJ0Ym9keSJdKSxkZWxldGUgWGUudGJvZHkpLHMuVFJVU1RFRF9UWVBFU19QT0xJQ1kpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBzLlRSVVNURURfVFlQRVNfUE9MSUNZLmNyZWF0ZUhUTUwpdGhyb3cgSmooJ1RSVVNURURfVFlQRVNfUE9MSUNZIGNvbmZpZ3VyYXRpb24gb3B0aW9uIG11c3QgcHJvdmlkZSBhICJjcmVhdGVIVE1MIiBob29rLicpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBzLlRSVVNURURfVFlQRVNfUE9MSUNZLmNyZWF0ZVNjcmlwdFVSTCl0aHJvdyBKaignVFJVU1RFRF9UWVBFU19QT0xJQ1kgY29uZmlndXJhdGlvbiBvcHRpb24gbXVzdCBwcm92aWRlIGEgImNyZWF0ZVNjcmlwdFVSTCIgaG9vay4nKTtpZT1zLlRSVVNURURfVFlQRVNfUE9MSUNZLGFlPWllLmNyZWF0ZUhUTUwoIiIpfWVsc2Ugdm9pZCAwPT09aWUmJihpZT1mdW5jdGlvbiBfY3JlYXRlVHJ1c3RlZFR5cGVzUG9saWN5KHMsbyl7aWYoIm9iamVjdCIhPXR5cGVvZiBzfHwiZnVuY3Rpb24iIT10eXBlb2Ygcy5jcmVhdGVQb2xpY3kpcmV0dXJuIG51bGw7bGV0IGk9bnVsbDtjb25zdCBhPSJkYXRhLXR0LXBvbGljeS1zdWZmaXgiO28mJm8uaGFzQXR0cmlidXRlKGEpJiYoaT1vLmdldEF0dHJpYnV0ZShhKSk7Y29uc3QgdT0iZG9tcHVyaWZ5IisoaT8iIyIraToiIik7dHJ5e3JldHVybiBzLmNyZWF0ZVBvbGljeSh1LHtjcmVhdGVIVE1MOnM9PnMsY3JlYXRlU2NyaXB0VVJMOnM9PnN9KX1jYXRjaChzKXtyZXR1cm4gY29uc29sZS53YXJuKCJUcnVzdGVkVHlwZXMgcG9saWN5ICIrdSsiIGNvdWxkIG5vdCBiZSBjcmVhdGVkLiIpLG51bGx9fSgkLGEpKSxudWxsIT09aWUmJiJzdHJpbmciPT10eXBlb2YgYWUmJihhZT1pZS5jcmVhdGVIVE1MKCIiKSk7SkEmJkpBKHMpLEx0PXN9fSxxdD1hZGRUb1NldCh7fSxbLi4uR2osLi4uWGosLi4uZUldKSxWdD1hZGRUb1NldCh7fSxbLi4udEksLi4uckldKSxVdD1mdW5jdGlvbiBfZm9yY2VSZW1vdmUocyl7ZWooRE9NUHVyaWZ5LnJlbW92ZWQse2VsZW1lbnQ6c30pO3RyeXtlZShzKS5yZW1vdmVDaGlsZChzKX1jYXRjaChvKXt6KHMpfX0senQ9ZnVuY3Rpb24gX3JlbW92ZUF0dHJpYnV0ZShzLG8pe3RyeXtlaihET01QdXJpZnkucmVtb3ZlZCx7YXR0cmlidXRlOm8uZ2V0QXR0cmlidXRlTm9kZShzKSxmcm9tOm99KX1jYXRjaChzKXtlaihET01QdXJpZnkucmVtb3ZlZCx7YXR0cmlidXRlOm51bGwsZnJvbTpvfSl9aWYoby5yZW1vdmVBdHRyaWJ1dGUocyksImlzIj09PXMpaWYobHR8fHV0KXRyeXtVdChvKX1jYXRjaChzKXt9ZWxzZSB0cnl7by5zZXRBdHRyaWJ1dGUocywiIil9Y2F0Y2gocyl7fX0sV3Q9ZnVuY3Rpb24gX2luaXREb2N1bWVudChzKXtsZXQgaT1udWxsLGE9bnVsbDtpZihjdClzPSI8cmVtb3ZlPjwvcmVtb3ZlPiIrcztlbHNle2NvbnN0IG89Q2oocywvXltcclxuXHQgXSsvKTthPW8mJm9bMF19ImFwcGxpY2F0aW9uL3hodG1sK3htbCI9PT1NdCYmQ3Q9PT1PdCYmKHM9JzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48L2hlYWQ+PGJvZHk+JytzKyI8L2JvZHk+PC9odG1sPiIpO2NvbnN0IHU9aWU/aWUuY3JlYXRlSFRNTChzKTpzO2lmKEN0PT09T3QpdHJ5e2k9KG5ldyBCKS5wYXJzZUZyb21TdHJpbmcodSxNdCl9Y2F0Y2gocyl7fWlmKCFpfHwhaS5kb2N1bWVudEVsZW1lbnQpe2k9Y2UuY3JlYXRlRG9jdW1lbnQoQ3QsInRlbXBsYXRlIixudWxsKTt0cnl7aS5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MPUF0P2FlOnV9Y2F0Y2gocyl7fX1jb25zdCBfPWkuYm9keXx8aS5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuIHMmJmEmJl8uaW5zZXJ0QmVmb3JlKG8uY3JlYXRlVGV4dE5vZGUoYSksXy5jaGlsZE5vZGVzWzBdfHxudWxsKSxDdD09PU90P2RlLmNhbGwoaSxpdD8iaHRtbCI6ImJvZHkiKVswXTppdD9pLmRvY3VtZW50RWxlbWVudDpffSxKdD1mdW5jdGlvbiBfY3JlYXRlTm9kZUl0ZXJhdG9yKHMpe3JldHVybiBsZS5jYWxsKHMub3duZXJEb2N1bWVudHx8cyxzLEMuU0hPV19FTEVNRU5UfEMuU0hPV19DT01NRU5UfEMuU0hPV19URVhUfEMuU0hPV19QUk9DRVNTSU5HX0lOU1RSVUNUSU9OfEMuU0hPV19DREFUQV9TRUNUSU9OLG51bGwpfSxIdD1mdW5jdGlvbiBfaXNDbG9iYmVyZWQocyl7cmV0dXJuIHMgaW5zdGFuY2VvZiBMJiYoInN0cmluZyIhPXR5cGVvZiBzLm5vZGVOYW1lfHwic3RyaW5nIiE9dHlwZW9mIHMudGV4dENvbnRlbnR8fCJmdW5jdGlvbiIhPXR5cGVvZiBzLnJlbW92ZUNoaWxkfHwhKHMuYXR0cmlidXRlcyBpbnN0YW5jZW9mIGopfHwiZnVuY3Rpb24iIT10eXBlb2Ygcy5yZW1vdmVBdHRyaWJ1dGV8fCJmdW5jdGlvbiIhPXR5cGVvZiBzLnNldEF0dHJpYnV0ZXx8InN0cmluZyIhPXR5cGVvZiBzLm5hbWVzcGFjZVVSSXx8ImZ1bmN0aW9uIiE9dHlwZW9mIHMuaW5zZXJ0QmVmb3JlfHwiZnVuY3Rpb24iIT10eXBlb2Ygcy5oYXNDaGlsZE5vZGVzKX0sS3Q9ZnVuY3Rpb24gX2lzTm9kZShzKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdyYmcyBpbnN0YW5jZW9mIHd9O2Z1bmN0aW9uIF9leGVjdXRlSG9va3MocyxvLGkpe1hBKHMsKHM9PntzLmNhbGwoRE9NUHVyaWZ5LG8saSxMdCl9KSl9Y29uc3QgR3Q9ZnVuY3Rpb24gX3Nhbml0aXplRWxlbWVudHMocyl7bGV0IG89bnVsbDtpZihfZXhlY3V0ZUhvb2tzKHllLmJlZm9yZVNhbml0aXplRWxlbWVudHMscyxudWxsKSxIdChzKSlyZXR1cm4gVXQocyksITA7Y29uc3QgaT1EdChzLm5vZGVOYW1lKTtpZihfZXhlY3V0ZUhvb2tzKHllLnVwb25TYW5pdGl6ZUVsZW1lbnQscyx7dGFnTmFtZTppLGFsbG93ZWRUYWdzOnFlfSkscy5oYXNDaGlsZE5vZGVzKCkmJiFLdChzLmZpcnN0RWxlbWVudENoaWxkKSYmemooLzxbL1x3XS9nLHMuaW5uZXJIVE1MKSYmemooLzxbL1x3XS9nLHMudGV4dENvbnRlbnQpKXJldHVybiBVdChzKSwhMDtpZihzLm5vZGVUeXBlPT09U0kpcmV0dXJuIFV0KHMpLCEwO2lmKG90JiZzLm5vZGVUeXBlPT09RUkmJnpqKC88Wy9cd10vZyxzLmRhdGEpKXJldHVybiBVdChzKSwhMDtpZighcWVbaV18fFhlW2ldKXtpZighWGVbaV0mJlh0KGkpKXtpZihZZS50YWdOYW1lQ2hlY2sgaW5zdGFuY2VvZiBSZWdFeHAmJnpqKFllLnRhZ05hbWVDaGVjayxpKSlyZXR1cm4hMTtpZihZZS50YWdOYW1lQ2hlY2sgaW5zdGFuY2VvZiBGdW5jdGlvbiYmWWUudGFnTmFtZUNoZWNrKGkpKXJldHVybiExfWlmKG10JiYhdnRbaV0pe2NvbnN0IG89ZWUocyl8fHMucGFyZW50Tm9kZSxpPVoocyl8fHMuY2hpbGROb2RlcztpZihpJiZvKXtmb3IobGV0IGE9aS5sZW5ndGgtMTthPj0wOy0tYSl7Y29uc3QgdT1VKGlbYV0sITApO3UuX19yZW1vdmFsQ291bnQ9KHMuX19yZW1vdmFsQ291bnR8fDApKzEsby5pbnNlcnRCZWZvcmUodSxZKHMpKX19fXJldHVybiBVdChzKSwhMH1yZXR1cm4gcyBpbnN0YW5jZW9mIHgmJiFmdW5jdGlvbiBfY2hlY2tWYWxpZE5hbWVzcGFjZShzKXtsZXQgbz1lZShzKTtvJiZvLnRhZ05hbWV8fChvPXtuYW1lc3BhY2VVUkk6Q3QsdGFnTmFtZToidGVtcGxhdGUifSk7Y29uc3QgaT1taihzLnRhZ05hbWUpLGE9bWooby50YWdOYW1lKTtyZXR1cm4hIWp0W3MubmFtZXNwYWNlVVJJXSYmKHMubmFtZXNwYWNlVVJJPT09a3Q/by5uYW1lc3BhY2VVUkk9PT1PdD8ic3ZnIj09PWk6by5uYW1lc3BhY2VVUkk9PT14dD8ic3ZnIj09PWkmJigiYW5ub3RhdGlvbi14bWwiPT09YXx8UHRbYV0pOkJvb2xlYW4ocXRbaV0pOnMubmFtZXNwYWNlVVJJPT09eHQ/by5uYW1lc3BhY2VVUkk9PT1PdD8ibWF0aCI9PT1pOm8ubmFtZXNwYWNlVVJJPT09a3Q/Im1hdGgiPT09aSYmVHRbYV06Qm9vbGVhbihWdFtpXSk6cy5uYW1lc3BhY2VVUkk9PT1PdD8hKG8ubmFtZXNwYWNlVVJJPT09a3QmJiFUdFthXSkmJiEoby5uYW1lc3BhY2VVUkk9PT14dCYmIVB0W2FdKSYmIVZ0W2ldJiYoTnRbaV18fCFxdFtpXSk6ISgiYXBwbGljYXRpb24veGh0bWwreG1sIiE9PU10fHwhanRbcy5uYW1lc3BhY2VVUkldKSl9KHMpPyhVdChzKSwhMCk6Im5vc2NyaXB0IiE9PWkmJiJub2VtYmVkIiE9PWkmJiJub2ZyYW1lcyIhPT1pfHwhemooLzxcL25vKHNjcmlwdHxlbWJlZHxmcmFtZXMpL2kscy5pbm5lckhUTUwpPyhzdCYmcy5ub2RlVHlwZT09PV9JJiYobz1zLnRleHRDb250ZW50LFhBKFtiZSxfZSxTZV0sKHM9PntvPUFqKG8scywiICIpfSkpLHMudGV4dENvbnRlbnQhPT1vJiYoZWooRE9NUHVyaWZ5LnJlbW92ZWQse2VsZW1lbnQ6cy5jbG9uZU5vZGUoKX0pLHMudGV4dENvbnRlbnQ9bykpLF9leGVjdXRlSG9va3MoeWUuYWZ0ZXJTYW5pdGl6ZUVsZW1lbnRzLHMsbnVsbCksITEpOihVdChzKSwhMCl9LFl0PWZ1bmN0aW9uIF9pc1ZhbGlkQXR0cmlidXRlKHMsaSxhKXtpZihodCYmKCJpZCI9PT1pfHwibmFtZSI9PT1pKSYmKGEgaW4gb3x8YSBpbiBGdCkpcmV0dXJuITE7aWYodHQmJiFRZVtpXSYmemood2UsaSkpO2Vsc2UgaWYoZXQmJnpqKHhlLGkpKTtlbHNlIGlmKCFXZVtpXXx8UWVbaV0pe2lmKCEoWHQocykmJihZZS50YWdOYW1lQ2hlY2sgaW5zdGFuY2VvZiBSZWdFeHAmJnpqKFllLnRhZ05hbWVDaGVjayxzKXx8WWUudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgRnVuY3Rpb24mJlllLnRhZ05hbWVDaGVjayhzKSkmJihZZS5hdHRyaWJ1dGVOYW1lQ2hlY2sgaW5zdGFuY2VvZiBSZWdFeHAmJnpqKFllLmF0dHJpYnV0ZU5hbWVDaGVjayxpKXx8WWUuYXR0cmlidXRlTmFtZUNoZWNrIGluc3RhbmNlb2YgRnVuY3Rpb24mJlllLmF0dHJpYnV0ZU5hbWVDaGVjayhpKSl8fCJpcyI9PT1pJiZZZS5hbGxvd0N1c3RvbWl6ZWRCdWlsdEluRWxlbWVudHMmJihZZS50YWdOYW1lQ2hlY2sgaW5zdGFuY2VvZiBSZWdFeHAmJnpqKFllLnRhZ05hbWVDaGVjayxhKXx8WWUudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgRnVuY3Rpb24mJlllLnRhZ05hbWVDaGVjayhhKSkpKXJldHVybiExfWVsc2UgaWYoRXRbaV0pO2Vsc2UgaWYoemooJGUsQWooYSxUZSwiIikpKTtlbHNlIGlmKCJzcmMiIT09aSYmInhsaW5rOmhyZWYiIT09aSYmImhyZWYiIT09aXx8InNjcmlwdCI9PT1zfHwwIT09TmooYSwiZGF0YToiKXx8IV90W3NdKXtpZihydCYmIXpqKFBlLEFqKGEsVGUsIiIpKSk7ZWxzZSBpZihhKXJldHVybiExfWVsc2U7cmV0dXJuITB9LFh0PWZ1bmN0aW9uIF9pc0Jhc2ljQ3VzdG9tRWxlbWVudChzKXtyZXR1cm4iYW5ub3RhdGlvbi14bWwiIT09cyYmQ2oocyxSZSl9LFF0PWZ1bmN0aW9uIF9zYW5pdGl6ZUF0dHJpYnV0ZXMocyl7X2V4ZWN1dGVIb29rcyh5ZS5iZWZvcmVTYW5pdGl6ZUF0dHJpYnV0ZXMscyxudWxsKTtjb25zdHthdHRyaWJ1dGVzOm99PXM7aWYoIW98fEh0KHMpKXJldHVybjtjb25zdCBpPXthdHRyTmFtZToiIixhdHRyVmFsdWU6IiIsa2VlcEF0dHI6ITAsYWxsb3dlZEF0dHJpYnV0ZXM6V2UsZm9yY2VLZWVwQXR0cjp2b2lkIDB9O2xldCBhPW8ubGVuZ3RoO2Zvcig7YS0tOyl7Y29uc3QgdT1vW2FdLHtuYW1lOl8sbmFtZXNwYWNlVVJJOncsdmFsdWU6eH09dSxDPUR0KF8pO2xldCBqPSJ2YWx1ZSI9PT1fP3g6QmooeCk7aWYoaS5hdHRyTmFtZT1DLGkuYXR0clZhbHVlPWosaS5rZWVwQXR0cj0hMCxpLmZvcmNlS2VlcEF0dHI9dm9pZCAwLF9leGVjdXRlSG9va3MoeWUudXBvblNhbml0aXplQXR0cmlidXRlLHMsaSksaj1pLmF0dHJWYWx1ZSwhZHR8fCJpZCIhPT1DJiYibmFtZSIhPT1DfHwoenQoXyxzKSxqPSJ1c2VyLWNvbnRlbnQtIitqKSxvdCYmemooLygoLS0hP3xdKT4pfDxcLyhzdHlsZXx0aXRsZSkvaSxqKSl7enQoXyxzKTtjb250aW51ZX1pZihpLmZvcmNlS2VlcEF0dHIpY29udGludWU7aWYoenQoXyxzKSwhaS5rZWVwQXR0ciljb250aW51ZTtpZighbnQmJnpqKC9cLz4vaSxqKSl7enQoXyxzKTtjb250aW51ZX1zdCYmWEEoW2JlLF9lLFNlXSwocz0+e2o9QWooaixzLCIgIil9KSk7Y29uc3QgTD1EdChzLm5vZGVOYW1lKTtpZihZdChMLEMsaikpe2lmKGllJiYib2JqZWN0Ij09dHlwZW9mICQmJiJmdW5jdGlvbiI9PXR5cGVvZiAkLmdldEF0dHJpYnV0ZVR5cGUpaWYodyk7ZWxzZSBzd2l0Y2goJC5nZXRBdHRyaWJ1dGVUeXBlKEwsQykpe2Nhc2UiVHJ1c3RlZEhUTUwiOmo9aWUuY3JlYXRlSFRNTChqKTticmVhaztjYXNlIlRydXN0ZWRTY3JpcHRVUkwiOmo9aWUuY3JlYXRlU2NyaXB0VVJMKGopfXRyeXt3P3Muc2V0QXR0cmlidXRlTlModyxfLGopOnMuc2V0QXR0cmlidXRlKF8saiksSHQocyk/VXQocyk6WkEoRE9NUHVyaWZ5LnJlbW92ZWQpfWNhdGNoKHMpe319fV9leGVjdXRlSG9va3MoeWUuYWZ0ZXJTYW5pdGl6ZUF0dHJpYnV0ZXMscyxudWxsKX0sWnQ9ZnVuY3Rpb24gX3Nhbml0aXplU2hhZG93RE9NKHMpe2xldCBvPW51bGw7Y29uc3QgaT1KdChzKTtmb3IoX2V4ZWN1dGVIb29rcyh5ZS5iZWZvcmVTYW5pdGl6ZVNoYWRvd0RPTSxzLG51bGwpO289aS5uZXh0Tm9kZSgpOylfZXhlY3V0ZUhvb2tzKHllLnVwb25TYW5pdGl6ZVNoYWRvd05vZGUsbyxudWxsKSxHdChvKSxRdChvKSxvLmNvbnRlbnQgaW5zdGFuY2VvZiB1JiZfc2FuaXRpemVTaGFkb3dET00oby5jb250ZW50KTtfZXhlY3V0ZUhvb2tzKHllLmFmdGVyU2FuaXRpemVTaGFkb3dET00scyxudWxsKX07cmV0dXJuIERPTVB1cmlmeS5zYW5pdGl6ZT1mdW5jdGlvbihzKXtsZXQgbz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sYT1udWxsLF89bnVsbCx4PW51bGwsQz1udWxsO2lmKEF0PSFzLEF0JiYocz0iXHgzYyEtLVx4M2UiKSwic3RyaW5nIiE9dHlwZW9mIHMmJiFLdChzKSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHMudG9TdHJpbmcpdGhyb3cgSmooInRvU3RyaW5nIGlzIG5vdCBhIGZ1bmN0aW9uIik7aWYoInN0cmluZyIhPXR5cGVvZihzPXMudG9TdHJpbmcoKSkpdGhyb3cgSmooImRpcnR5IGlzIG5vdCBhIHN0cmluZywgYWJvcnRpbmciKX1pZighRE9NUHVyaWZ5LmlzU3VwcG9ydGVkKXJldHVybiBzO2lmKGF0fHwkdChvKSxET01QdXJpZnkucmVtb3ZlZD1bXSwic3RyaW5nIj09dHlwZW9mIHMmJihndD0hMSksZ3Qpe2lmKHMubm9kZU5hbWUpe2NvbnN0IG89RHQocy5ub2RlTmFtZSk7aWYoIXFlW29dfHxYZVtvXSl0aHJvdyBKaigicm9vdCBub2RlIGlzIGZvcmJpZGRlbiBhbmQgY2Fubm90IGJlIHNhbml0aXplZCBpbi1wbGFjZSIpfX1lbHNlIGlmKHMgaW5zdGFuY2VvZiB3KWE9V3QoIlx4M2MhLS0tLVx4M2UiKSxfPWEub3duZXJEb2N1bWVudC5pbXBvcnROb2RlKHMsITApLF8ubm9kZVR5cGU9PT1iSSYmIkJPRFkiPT09Xy5ub2RlTmFtZXx8IkhUTUwiPT09Xy5ub2RlTmFtZT9hPV86YS5hcHBlbmRDaGlsZChfKTtlbHNle2lmKCFsdCYmIXN0JiYhaXQmJi0xPT09cy5pbmRleE9mKCI8IikpcmV0dXJuIGllJiZwdD9pZS5jcmVhdGVIVE1MKHMpOnM7aWYoYT1XdChzKSwhYSlyZXR1cm4gbHQ/bnVsbDpwdD9hZToiIn1hJiZjdCYmVXQoYS5maXJzdENoaWxkKTtjb25zdCBqPUp0KGd0P3M6YSk7Zm9yKDt4PWoubmV4dE5vZGUoKTspR3QoeCksUXQoeCkseC5jb250ZW50IGluc3RhbmNlb2YgdSYmWnQoeC5jb250ZW50KTtpZihndClyZXR1cm4gcztpZihsdCl7aWYodXQpZm9yKEM9cGUuY2FsbChhLm93bmVyRG9jdW1lbnQpO2EuZmlyc3RDaGlsZDspQy5hcHBlbmRDaGlsZChhLmZpcnN0Q2hpbGQpO2Vsc2UgQz1hO3JldHVybihXZS5zaGFkb3dyb290fHxXZS5zaGFkb3dyb290bW9kZSkmJihDPWZlLmNhbGwoaSxDLCEwKSksQ31sZXQgTD1pdD9hLm91dGVySFRNTDphLmlubmVySFRNTDtyZXR1cm4gaXQmJnFlWyIhZG9jdHlwZSJdJiZhLm93bmVyRG9jdW1lbnQmJmEub3duZXJEb2N1bWVudC5kb2N0eXBlJiZhLm93bmVyRG9jdW1lbnQuZG9jdHlwZS5uYW1lJiZ6aihnSSxhLm93bmVyRG9jdW1lbnQuZG9jdHlwZS5uYW1lKSYmKEw9IjwhRE9DVFlQRSAiK2Eub3duZXJEb2N1bWVudC5kb2N0eXBlLm5hbWUrIj5cbiIrTCksc3QmJlhBKFtiZSxfZSxTZV0sKHM9PntMPUFqKEwscywiICIpfSkpLGllJiZwdD9pZS5jcmVhdGVIVE1MKEwpOkx9LERPTVB1cmlmeS5zZXRDb25maWc9ZnVuY3Rpb24oKXskdChhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30pLGF0PSEwfSxET01QdXJpZnkuY2xlYXJDb25maWc9ZnVuY3Rpb24oKXtMdD1udWxsLGF0PSExfSxET01QdXJpZnkuaXNWYWxpZEF0dHJpYnV0ZT1mdW5jdGlvbihzLG8saSl7THR8fCR0KHt9KTtjb25zdCBhPUR0KHMpLHU9RHQobyk7cmV0dXJuIFl0KGEsdSxpKX0sRE9NUHVyaWZ5LmFkZEhvb2s9ZnVuY3Rpb24ocyxvKXsiZnVuY3Rpb24iPT10eXBlb2YgbyYmZWooeWVbc10sbyl9LERPTVB1cmlmeS5yZW1vdmVIb29rPWZ1bmN0aW9uKHMsbyl7aWYodm9pZCAwIT09byl7Y29uc3QgaT1RQSh5ZVtzXSxvKTtyZXR1cm4tMT09PWk/dm9pZCAwOmZqKHllW3NdLGksMSlbMF19cmV0dXJuIFpBKHllW3NdKX0sRE9NUHVyaWZ5LnJlbW92ZUhvb2tzPWZ1bmN0aW9uKHMpe3llW3NdPVtdfSxET01QdXJpZnkucmVtb3ZlQWxsSG9va3M9ZnVuY3Rpb24oKXt5ZT17YWZ0ZXJTYW5pdGl6ZUF0dHJpYnV0ZXM6W10sYWZ0ZXJTYW5pdGl6ZUVsZW1lbnRzOltdLGFmdGVyU2FuaXRpemVTaGFkb3dET006W10sYmVmb3JlU2FuaXRpemVBdHRyaWJ1dGVzOltdLGJlZm9yZVNhbml0aXplRWxlbWVudHM6W10sYmVmb3JlU2FuaXRpemVTaGFkb3dET006W10sdXBvblNhbml0aXplQXR0cmlidXRlOltdLHVwb25TYW5pdGl6ZUVsZW1lbnQ6W10sdXBvblNhbml0aXplU2hhZG93Tm9kZTpbXX19LERPTVB1cmlmeX0oKTtrSS5hZGRIb29rJiZrSS5hZGRIb29rKCJiZWZvcmVTYW5pdGl6ZUVsZW1lbnRzIiwoZnVuY3Rpb24ocyl7cmV0dXJuIHMuaHJlZiYmcy5zZXRBdHRyaWJ1dGUoInJlbCIsIm5vb3BlbmVyIG5vcmVmZXJyZXIiKSxzfSkpO2NvbnN0IE9JPWZ1bmN0aW9uIE1hcmtkb3duKHtzb3VyY2U6cyxjbGFzc05hbWU6bz0iIixnZXRDb25maWdzOmk9KCk9Pih7dXNlVW5zYWZlTWFya2Rvd246ITF9KX0pe2lmKCJzdHJpbmciIT10eXBlb2YgcylyZXR1cm4gbnVsbDtjb25zdCBhPW5ldyBSZW1hcmthYmxlKHtodG1sOiEwLHR5cG9ncmFwaGVyOiEwLGJyZWFrczohMCxsaW5rVGFyZ2V0OiJfYmxhbmsifSkudXNlKGxpbmtpZnkpO2EuY29yZS5ydWxlci5kaXNhYmxlKFsicmVwbGFjZW1lbnRzIiwic21hcnRxdW90ZXMiXSk7Y29uc3R7dXNlVW5zYWZlTWFya2Rvd246dX09aSgpLF89YS5yZW5kZXIocyksdz1zYW5pdGl6ZXIoXyx7dXNlVW5zYWZlTWFya2Rvd246dX0pO3JldHVybiBzJiZfJiZ3P1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpKbigpKG8sIm1hcmtkb3duIiksZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDp3fX0pOm51bGx9O2Z1bmN0aW9uIHNhbml0aXplcihzLHt1c2VVbnNhZmVNYXJrZG93bjpvPSExfT17fSl7Y29uc3QgaT1vLGE9bz9bXTpbInN0eWxlIiwiY2xhc3MiXTtyZXR1cm4gbyYmIXNhbml0aXplci5oYXNXYXJuZWRBYm91dERlcHJlY2F0aW9uJiYoY29uc29sZS53YXJuKCJ1c2VVbnNhZmVNYXJrZG93biBkaXNwbGF5IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIGlzIGRlcHJlY2F0ZWQgc2luY2UgPjMuMjYuMCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHY0LjAuMC4iKSxzYW5pdGl6ZXIuaGFzV2FybmVkQWJvdXREZXByZWNhdGlvbj0hMCksa0kuc2FuaXRpemUocyx7QUREX0FUVFI6WyJ0YXJnZXQiXSxGT1JCSURfVEFHUzpbInN0eWxlIiwiZm9ybSJdLEFMTE9XX0RBVEFfQVRUUjppLEZPUkJJRF9BVFRSOmF9KX1zYW5pdGl6ZXIuaGFzV2FybmVkQWJvdXREZXByZWNhdGlvbj0hMTtjbGFzcyBCYXNlTGF5b3V0IGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e2VyclNlbGVjdG9yczpzLHNwZWNTZWxlY3RvcnM6byxnZXRDb21wb25lbnQ6aX09dGhpcy5wcm9wcyxhPWkoIlN2Z0Fzc2V0cyIpLHU9aSgiSW5mb0NvbnRhaW5lciIsITApLF89aSgiVmVyc2lvblByYWdtYUZpbHRlciIpLHc9aSgib3BlcmF0aW9ucyIsITApLHg9aSgiTW9kZWxzIiwhMCksQz1pKCJXZWJob29rcyIsITApLGo9aSgiUm93IiksTD1pKCJDb2wiKSxCPWkoImVycm9ycyIsITApLCQ9aSgiU2VydmVyc0NvbnRhaW5lciIsITApLFY9aSgiU2NoZW1lc0NvbnRhaW5lciIsITApLFU9aSgiQXV0aG9yaXplQnRuQ29udGFpbmVyIiwhMCksej1pKCJGaWx0ZXJDb250YWluZXIiLCEwKSxZPW8uaXNTd2FnZ2VyMigpLFo9by5pc09BUzMoKSxlZT1vLmlzT0FTMzEoKSxpZT0hby5zcGVjU3RyKCksYWU9by5sb2FkaW5nU3RhdHVzKCk7bGV0IGNlPW51bGw7aWYoImxvYWRpbmciPT09YWUmJihjZT1SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm8ifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImxvYWRpbmctY29udGFpbmVyIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJsb2FkaW5nIn0pKSkpLCJmYWlsZWQiPT09YWUmJihjZT1SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm8ifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImxvYWRpbmctY29udGFpbmVyIn0sUmUuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6InRpdGxlIn0sIkZhaWxlZCB0byBsb2FkIEFQSSBkZWZpbml0aW9uLiIpLFJlLmNyZWF0ZUVsZW1lbnQoQixudWxsKSkpKSwiZmFpbGVkQ29uZmlnIj09PWFlKXtjb25zdCBvPXMubGFzdEVycm9yKCksaT1vP28uZ2V0KCJtZXNzYWdlIik6IiI7Y2U9UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJpbmZvIGZhaWxlZC1jb25maWcifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImxvYWRpbmctY29udGFpbmVyIn0sUmUuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6InRpdGxlIn0sIkZhaWxlZCB0byBsb2FkIHJlbW90ZSBjb25maWd1cmF0aW9uLiIpLFJlLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsaSkpKX1pZighY2UmJmllJiYoY2U9UmUuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsIk5vIEFQSSBkZWZpbml0aW9uIHByb3ZpZGVkLiIpKSxjZSlyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJzd2FnZ2VyLXVpIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJsb2FkaW5nLWNvbnRhaW5lciJ9LGNlKSk7Y29uc3QgbGU9by5zZXJ2ZXJzKCkscGU9by5zY2hlbWVzKCksZGU9bGUmJmxlLnNpemUsZmU9cGUmJnBlLnNpemUseWU9ISFvLnNlY3VyaXR5RGVmaW5pdGlvbnMoKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJzd2FnZ2VyLXVpIn0sUmUuY3JlYXRlRWxlbWVudChhLG51bGwpLFJlLmNyZWF0ZUVsZW1lbnQoXyx7aXNTd2FnZ2VyMjpZLGlzT0FTMzpaLGFsc29TaG93OlJlLmNyZWF0ZUVsZW1lbnQoQixudWxsKX0sUmUuY3JlYXRlRWxlbWVudChCLG51bGwpLFJlLmNyZWF0ZUVsZW1lbnQoaix7Y2xhc3NOYW1lOiJpbmZvcm1hdGlvbi1jb250YWluZXIifSxSZS5jcmVhdGVFbGVtZW50KEwse21vYmlsZToxMn0sUmUuY3JlYXRlRWxlbWVudCh1LG51bGwpKSksZGV8fGZlfHx5ZT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InNjaGVtZS1jb250YWluZXIifSxSZS5jcmVhdGVFbGVtZW50KEwse2NsYXNzTmFtZToic2NoZW1lcyB3cmFwcGVyIixtb2JpbGU6MTJ9LGRlfHxmZT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InNjaGVtZXMtc2VydmVyLWNvbnRhaW5lciJ9LGRlP1JlLmNyZWF0ZUVsZW1lbnQoJCxudWxsKTpudWxsLGZlP1JlLmNyZWF0ZUVsZW1lbnQoVixudWxsKTpudWxsKTpudWxsLHllP1JlLmNyZWF0ZUVsZW1lbnQoVSxudWxsKTpudWxsKSk6bnVsbCxSZS5jcmVhdGVFbGVtZW50KHosbnVsbCksUmUuY3JlYXRlRWxlbWVudChqLG51bGwsUmUuY3JlYXRlRWxlbWVudChMLHttb2JpbGU6MTIsZGVza3RvcDoxMn0sUmUuY3JlYXRlRWxlbWVudCh3LG51bGwpKSksZWUmJlJlLmNyZWF0ZUVsZW1lbnQoaix7Y2xhc3NOYW1lOiJ3ZWJob29rcy1jb250YWluZXIifSxSZS5jcmVhdGVFbGVtZW50KEwse21vYmlsZToxMixkZXNrdG9wOjEyfSxSZS5jcmVhdGVFbGVtZW50KEMsbnVsbCkpKSxSZS5jcmVhdGVFbGVtZW50KGosbnVsbCxSZS5jcmVhdGVFbGVtZW50KEwse21vYmlsZToxMixkZXNrdG9wOjEyfSxSZS5jcmVhdGVFbGVtZW50KHgsbnVsbCkpKSkpfX1jb25zdCBjb3JlX2NvbXBvbmVudHM9KCk9Pih7Y29tcG9uZW50czp7QXBwOkhPLGF1dGhvcml6YXRpb25Qb3B1cDpBdXRob3JpemF0aW9uUG9wdXAsYXV0aG9yaXplQnRuOkF1dGhvcml6ZUJ0bixBdXRob3JpemVCdG5Db250YWluZXIsYXV0aG9yaXplT3BlcmF0aW9uQnRuOkF1dGhvcml6ZU9wZXJhdGlvbkJ0bixhdXRoczpBdXRocyxBdXRoSXRlbTphdXRoX2l0ZW1fQXV0aHMsYXV0aEVycm9yOkF1dGhFcnJvcixvYXV0aDI6T2F1dGgyLGFwaUtleUF1dGg6QXBpS2V5QXV0aCxiYXNpY0F1dGg6QmFzaWNBdXRoLGNsZWFyOkNsZWFyLGxpdmVSZXNwb25zZTpMaXZlUmVzcG9uc2UsSW5pdGlhbGl6ZWRJbnB1dCxpbmZvOnJDLEluZm9Db250YWluZXIsSW5mb1VybCxJbmZvQmFzZVBhdGgsQ29udGFjdDpuQyxMaWNlbnNlOnNDLEp1bXBUb1BhdGgsQ29weVRvQ2xpcGJvYXJkQnRuLG9ubGluZVZhbGlkYXRvckJhZGdlOk9ubGluZVZhbGlkYXRvckJhZGdlLG9wZXJhdGlvbnM6T3BlcmF0aW9ucyxvcGVyYXRpb246b3BlcmF0aW9uX09wZXJhdGlvbixPcGVyYXRpb25TdW1tYXJ5LE9wZXJhdGlvblN1bW1hcnlNZXRob2QsT3BlcmF0aW9uU3VtbWFyeVBhdGgscmVzcG9uc2VzOnJlc3BvbnNlc19SZXNwb25zZXMscmVzcG9uc2U6cmVzcG9uc2VfUmVzcG9uc2UsUmVzcG9uc2VFeHRlbnNpb246cmVzcG9uc2VfZXh0ZW5zaW9uLHJlc3BvbnNlQm9keTpSZXNwb25zZUJvZHkscGFyYW1ldGVyczpQYXJhbWV0ZXJzLHBhcmFtZXRlclJvdzpQYXJhbWV0ZXJSb3csZXhlY3V0ZTpFeGVjdXRlLGhlYWRlcnM6aGVhZGVyc19IZWFkZXJzLGVycm9yczpFcnJvcnMsY29udGVudFR5cGU6Q29udGVudFR5cGUsb3ZlcnZpZXc6T3ZlcnZpZXcsZm9vdGVyOkZvb3RlcixGaWx0ZXJDb250YWluZXIsUGFyYW1Cb2R5LGN1cmw6Q3VybCxQcm9wZXJ0eTpwcm9wZXJ0eSxUcnlJdE91dEJ1dHRvbixNYXJrZG93bjpPSSxCYXNlTGF5b3V0LFZlcnNpb25QcmFnbWFGaWx0ZXIsVmVyc2lvblN0YW1wOnZlcnNpb25fc3RhbXAsT3BlcmF0aW9uRXh0Om9wZXJhdGlvbl9leHRlbnNpb25zLE9wZXJhdGlvbkV4dFJvdzpvcGVyYXRpb25fZXh0ZW5zaW9uX3JvdyxQYXJhbWV0ZXJFeHQ6cGFyYW1ldGVyX2V4dGVuc2lvbixQYXJhbWV0ZXJJbmNsdWRlRW1wdHksT3BlcmF0aW9uVGFnLE9wZXJhdGlvbkNvbnRhaW5lcixPcGVuQVBJVmVyc2lvbjpvcGVuYXBpX3ZlcnNpb24sRGVlcExpbms6ZGVlcF9saW5rLFN2Z0Fzc2V0czpzdmdfYXNzZXRzLEV4YW1wbGU6ZXhhbXBsZV9FeGFtcGxlLEV4YW1wbGVzU2VsZWN0LEV4YW1wbGVzU2VsZWN0VmFsdWVSZXRhaW5lcn19KSxmb3JtX2NvbXBvbmVudHM9KCk9Pih7Y29tcG9uZW50czp7Li4uX2V9fSksYmFzZT0oKT0+W2NvbmZpZ3NQbHVnaW4sdXRpbCxsb2dzLHZpZXcsdmlld19sZWdhY3kscGx1Z2luc19zcGVjLGVycixpY29ucyxwbHVnaW5zX2xheW91dCxqc29uX3NjaGVtYV81LGpzb25fc2NoZW1hXzVfc2FtcGxlcyxjb3JlX2NvbXBvbmVudHMsZm9ybV9jb21wb25lbnRzLHN3YWdnZXJfY2xpZW50LGF1dGgsZG93bmxvYWRVcmxQbHVnaW4sZGVlcF9saW5raW5nLGZpbHRlcixvbl9jb21wbGV0ZSxwbHVnaW5zX3JlcXVlc3Rfc25pcHBldHMsc3ludGF4X2hpZ2hsaWdodGluZyx2ZXJzaW9ucyxzYWZlX3JlbmRlcigpXSxDST0oMCx6ZS5NYXApKCk7ZnVuY3Rpb24gb25seU9BUzMocyl7cmV0dXJuKG8saSk9PiguLi5hKT0+e2lmKGkuZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5pc09BUzMoKSl7Y29uc3Qgbz1zKC4uLmEpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBvP28oaSk6b31yZXR1cm4gbyguLi5hKX19Y29uc3QgQUk9b25seU9BUzMoeHMoKShudWxsKSksakk9b25seU9BUzMoKChzLG8pPT5zPT5zLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuZmluZFNjaGVtYShvKSkpLElJPW9ubHlPQVMzKCgoKT0+cz0+e2NvbnN0IG89cy5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLnNwZWNKc29uKCkuZ2V0SW4oWyJjb21wb25lbnRzIiwic2NoZW1hcyJdKTtyZXR1cm4gemUuTWFwLmlzTWFwKG8pP286Q0l9KSksUEk9b25seU9BUzMoKCgpPT5zPT5zLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuc3BlY0pzb24oKS5oYXNJbihbInNlcnZlcnMiLDBdKSkpLFRJPW9ubHlPQVMzKFZ0KE5zLChzPT5zLmdldEluKFsiY29tcG9uZW50cyIsInNlY3VyaXR5U2NoZW1lcyJdKXx8bnVsbCkpKSx3cmFwX3NlbGVjdG9yc192YWxpZE9wZXJhdGlvbk1ldGhvZHM9KHMsbyk9PihpLC4uLmEpPT5vLnNwZWNTZWxlY3RvcnMuaXNPQVMzKCk/by5vYXMzU2VsZWN0b3JzLnZhbGlkT3BlcmF0aW9uTWV0aG9kcygpOnMoLi4uYSksTkk9QUksTUk9QUksUkk9QUksREk9QUksTEk9QUk7Y29uc3QgRkk9ZnVuY3Rpb24gd3JhcF9zZWxlY3RvcnNfb25seU9BUzMocyl7cmV0dXJuKG8saSk9PiguLi5hKT0+e2lmKGkuZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5pc09BUzMoKSl7bGV0IG89aS5nZXRTdGF0ZSgpLmdldEluKFsic3BlYyIsInJlc29sdmVkU3VidHJlZXMiLCJjb21wb25lbnRzIiwic2VjdXJpdHlTY2hlbWVzIl0pO3JldHVybiBzKGksbywuLi5hKX1yZXR1cm4gbyguLi5hKX19KFZ0KChzPT5zKSwoKHtzcGVjU2VsZWN0b3JzOnN9KT0+cy5zZWN1cml0eURlZmluaXRpb25zKCkpLCgocyxvKT0+e2xldCBpPSgwLHplLkxpc3QpKCk7cmV0dXJuIG8/KG8uZW50cnlTZXEoKS5mb3JFYWNoKCgoW3Msb10pPT57Y29uc3QgYT1vPy5nZXQoInR5cGUiKTtpZigib2F1dGgyIj09PWEmJm8uZ2V0KCJmbG93cyIpLmVudHJ5U2VxKCkuZm9yRWFjaCgoKFthLHVdKT0+e2xldCBfPSgwLHplLmZyb21KUykoe2Zsb3c6YSxhdXRob3JpemF0aW9uVXJsOnUuZ2V0KCJhdXRob3JpemF0aW9uVXJsIiksdG9rZW5Vcmw6dS5nZXQoInRva2VuVXJsIiksc2NvcGVzOnUuZ2V0KCJzY29wZXMiKSx0eXBlOm8uZ2V0KCJ0eXBlIiksZGVzY3JpcHRpb246by5nZXQoImRlc2NyaXB0aW9uIil9KTtpPWkucHVzaChuZXcgemUuTWFwKHtbc106Xy5maWx0ZXIoKHM9PnZvaWQgMCE9PXMpKX0pKX0pKSwiaHR0cCIhPT1hJiYiYXBpS2V5IiE9PWF8fChpPWkucHVzaChuZXcgemUuTWFwKHtbc106b30pKSksIm9wZW5JZENvbm5lY3QiPT09YSYmby5nZXQoIm9wZW5JZENvbm5lY3REYXRhIikpe2xldCBhPW8uZ2V0KCJvcGVuSWRDb25uZWN0RGF0YSIpOyhhLmdldCgiZ3JhbnRfdHlwZXNfc3VwcG9ydGVkIil8fFsiYXV0aG9yaXphdGlvbl9jb2RlIiwiaW1wbGljaXQiXSkuZm9yRWFjaCgodT0+e2xldCBfPWEuZ2V0KCJzY29wZXNfc3VwcG9ydGVkIikmJmEuZ2V0KCJzY29wZXNfc3VwcG9ydGVkIikucmVkdWNlKCgocyxvKT0+cy5zZXQobywiIikpLG5ldyB6ZS5NYXApLHc9KDAsemUuZnJvbUpTKSh7Zmxvdzp1LGF1dGhvcml6YXRpb25Vcmw6YS5nZXQoImF1dGhvcml6YXRpb25fZW5kcG9pbnQiKSx0b2tlblVybDphLmdldCgidG9rZW5fZW5kcG9pbnQiKSxzY29wZXM6Xyx0eXBlOiJvYXV0aDIiLG9wZW5JZENvbm5lY3RVcmw6by5nZXQoIm9wZW5JZENvbm5lY3RVcmwiKX0pO2k9aS5wdXNoKG5ldyB6ZS5NYXAoe1tzXTp3LmZpbHRlcigocz0+dm9pZCAwIT09cykpfSkpfSkpfX0pKSxpKTppfSkpKTtmdW5jdGlvbiBPQVMzQ29tcG9uZW50V3JhcEZhY3Rvcnkocyl7cmV0dXJuKG8saSk9PmE9PiJmdW5jdGlvbiI9PXR5cGVvZiBpLnNwZWNTZWxlY3RvcnM/LmlzT0FTMz9pLnNwZWNTZWxlY3RvcnMuaXNPQVMzKCk/UmUuY3JlYXRlRWxlbWVudChzLE1uKCkoe30sYSxpLHtPcmk6b30pKTpSZS5jcmVhdGVFbGVtZW50KG8sYSk6KGNvbnNvbGUud2FybigiT0FTMyB3cmFwcGVyOiBjb3VsZG4ndCBnZXQgc3BlYyIpLG51bGwpfWNvbnN0IEJJPSgwLHplLk1hcCkoKSxzZWxlY3RvcnNfaXNTd2FnZ2VyMj0oKT0+cz0+ZnVuY3Rpb24gaXNTd2FnZ2VyMihzKXtjb25zdCBvPXMuZ2V0KCJzd2FnZ2VyIik7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBvJiYiMi4wIj09PW99KHMuZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpKSxzZWxlY3RvcnNfaXNPQVMzMD0oKT0+cz0+ZnVuY3Rpb24gaXNPQVMzMChzKXtjb25zdCBvPXMuZ2V0KCJvcGVuYXBpIik7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBvJiYvXjNcLjBcLig/OlsxLTldXGQqfDApJC8udGVzdChvKX0ocy5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLnNwZWNKc29uKCkpLHNlbGVjdG9yc19pc09BUzM9KCk9PnM9PnMuZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5pc09BUzMwKCk7ZnVuY3Rpb24gc2VsZWN0b3JzX29ubHlPQVMzKHMpe3JldHVybihvLC4uLmkpPT5hPT57aWYoYS5zcGVjU2VsZWN0b3JzLmlzT0FTMygpKXtjb25zdCB1PXMobywuLi5pKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdT91KGEpOnV9cmV0dXJuIG51bGx9fWNvbnN0ICRJPXNlbGVjdG9yc19vbmx5T0FTMygoKCk9PnM9PnMuc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpLmdldCgic2VydmVycyIsQkkpKSksZmluZFNjaGVtYT0ocyxvKT0+e2NvbnN0IGk9cy5nZXRJbihbInJlc29sdmVkU3VidHJlZXMiLCJjb21wb25lbnRzIiwic2NoZW1hcyIsb10sbnVsbCksYT1zLmdldEluKFsianNvbiIsImNvbXBvbmVudHMiLCJzY2hlbWFzIixvXSxudWxsKTtyZXR1cm4gaXx8YXx8bnVsbH0scUk9c2VsZWN0b3JzX29ubHlPQVMzKCgocyx7Y2FsbGJhY2tzOm8sc3BlY1BhdGg6aX0pPT5zPT57Y29uc3QgYT1zLnNwZWNTZWxlY3RvcnMudmFsaWRPcGVyYXRpb25NZXRob2RzKCk7cmV0dXJuIHplLk1hcC5pc01hcChvKT9vLnJlZHVjZSgoKHMsbyx1KT0+e2lmKCF6ZS5NYXAuaXNNYXAobykpcmV0dXJuIHM7Y29uc3QgXz1vLnJlZHVjZSgoKHMsbyxfKT0+e2lmKCF6ZS5NYXAuaXNNYXAobykpcmV0dXJuIHM7Y29uc3Qgdz1vLmVudHJ5U2VxKCkuZmlsdGVyKCgoW3NdKT0+YS5pbmNsdWRlcyhzKSkpLm1hcCgoKFtzLG9dKT0+KHtvcGVyYXRpb246KDAsemUuTWFwKSh7b3BlcmF0aW9uOm99KSxtZXRob2Q6cyxwYXRoOl8sY2FsbGJhY2tOYW1lOnUsc3BlY1BhdGg6aS5jb25jYXQoW3UsXyxzXSl9KSkpO3JldHVybiBzLmNvbmNhdCh3KX0pLCgwLHplLkxpc3QpKCkpO3JldHVybiBzLmNvbmNhdChfKX0pLCgwLHplLkxpc3QpKCkpLmdyb3VwQnkoKHM9PnMuY2FsbGJhY2tOYW1lKSkubWFwKChzPT5zLnRvQXJyYXkoKSkpLnRvT2JqZWN0KCk6e319KSksY2FsbGJhY2tzPSh7Y2FsbGJhY2tzOnMsc3BlY1BhdGg6byxzcGVjU2VsZWN0b3JzOmksZ2V0Q29tcG9uZW50OmF9KT0+e2NvbnN0IHU9aS5jYWxsYmFja3NPcGVyYXRpb25zKHtjYWxsYmFja3M6cyxzcGVjUGF0aDpvfSksXz1PYmplY3Qua2V5cyh1KSx3PWEoIk9wZXJhdGlvbkNvbnRhaW5lciIsITApO3JldHVybiAwPT09Xy5sZW5ndGg/UmUuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCwiTm8gY2FsbGJhY2tzIik6UmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLF8ubWFwKChzPT5SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6YCR7c31gfSxSZS5jcmVhdGVFbGVtZW50KCJoMiIsbnVsbCxzKSx1W3NdLm1hcCgobz0+UmUuY3JlYXRlRWxlbWVudCh3LHtrZXk6YCR7c30tJHtvLnBhdGh9LSR7by5tZXRob2R9YCxvcDpvLm9wZXJhdGlvbix0YWc6ImNhbGxiYWNrcyIsbWV0aG9kOm8ubWV0aG9kLHBhdGg6by5wYXRoLHNwZWNQYXRoOm8uc3BlY1BhdGgsYWxsb3dUcnlJdE91dDohMX0pKSkpKSkpfSxnZXREZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZT0ocyxvLGksYSk9Pntjb25zdCB1PXMuZ2V0SW4oWyJjb250ZW50IixvXSk/PygwLHplLk9yZGVyZWRNYXApKCksXz11LmdldCgic2NoZW1hIiwoMCx6ZS5PcmRlcmVkTWFwKSgpKS50b0pTKCksdz12b2lkIDAhPT11LmdldCgiZXhhbXBsZXMiKSx4PXUuZ2V0KCJleGFtcGxlIiksQz13P3UuZ2V0SW4oWyJleGFtcGxlcyIsaSwidmFsdWUiXSk6eDtyZXR1cm4gc3RyaW5naWZ5KGEuZ2V0U2FtcGxlU2NoZW1hKF8sbyx7aW5jbHVkZVdyaXRlT25seTohMH0sQykpfSxjb21wb25lbnRzX3JlcXVlc3RfYm9keT0oe3VzZXJIYXNFZGl0ZWRCb2R5OnMscmVxdWVzdEJvZHk6byxyZXF1ZXN0Qm9keVZhbHVlOmkscmVxdWVzdEJvZHlJbmNsdXNpb25TZXR0aW5nOmEscmVxdWVzdEJvZHlFcnJvcnM6dSxnZXRDb21wb25lbnQ6XyxnZXRDb25maWdzOncsc3BlY1NlbGVjdG9yczp4LGZuOkMsY29udGVudFR5cGU6aixpc0V4ZWN1dGU6TCxzcGVjUGF0aDpCLG9uQ2hhbmdlOiQsb25DaGFuZ2VJbmNsdWRlRW1wdHk6VixhY3RpdmVFeGFtcGxlc0tleTpVLHVwZGF0ZUFjdGl2ZUV4YW1wbGVzS2V5Onosc2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWc6WX0pPT57Y29uc3QgaGFuZGxlRmlsZT1zPT57JChzLnRhcmdldC5maWxlc1swXSl9LHNldElzSW5jbHVkZWRPcHRpb25zPXM9PntsZXQgbz17a2V5OnMsc2hvdWxkRGlzcGF0Y2hJbml0OiExLGRlZmF1bHRWYWx1ZTohMH07cmV0dXJuIm5vIHZhbHVlIj09PWEuZ2V0KHMsIm5vIHZhbHVlIikmJihvLnNob3VsZERpc3BhdGNoSW5pdD0hMCksb30sWj1fKCJNYXJrZG93biIsITApLGVlPV8oIm1vZGVsRXhhbXBsZSIpLGllPV8oIlJlcXVlc3RCb2R5RWRpdG9yIiksYWU9XygiSGlnaGxpZ2h0Q29kZSIsITApLGNlPV8oIkV4YW1wbGVzU2VsZWN0VmFsdWVSZXRhaW5lciIpLGxlPV8oIkV4YW1wbGUiKSxwZT1fKCJQYXJhbWV0ZXJJbmNsdWRlRW1wdHkiKSx7c2hvd0NvbW1vbkV4dGVuc2lvbnM6ZGV9PXcoKSxmZT1vPy5nZXQoImRlc2NyaXB0aW9uIik/P251bGwseWU9bz8uZ2V0KCJjb250ZW50Iik/P25ldyB6ZS5PcmRlcmVkTWFwO2o9anx8eWUua2V5U2VxKCkuZmlyc3QoKXx8IiI7Y29uc3QgYmU9eWUuZ2V0KGopPz8oMCx6ZS5PcmRlcmVkTWFwKSgpLF9lPWJlLmdldCgic2NoZW1hIiwoMCx6ZS5PcmRlcmVkTWFwKSgpKSxTZT1iZS5nZXQoImV4YW1wbGVzIixudWxsKSx3ZT1TZT8ubWFwKCgocyxpKT0+e2NvbnN0IGE9cz8uZ2V0KCJ2YWx1ZSIsbnVsbCk7cmV0dXJuIGEmJihzPXMuc2V0KCJ2YWx1ZSIsZ2V0RGVmYXVsdFJlcXVlc3RCb2R5VmFsdWUobyxqLGksQyksYSkpLHN9KSk7dT16ZS5MaXN0LmlzTGlzdCh1KT91OigwLHplLkxpc3QpKCk7aWYoQy5pc0ZpbGVVcGxvYWRJbnRlbmRlZChiZT8uZ2V0KCJzY2hlbWEiKSxqKSl7Y29uc3Qgcz1fKCJJbnB1dCIpO3JldHVybiBMP1JlLmNyZWF0ZUVsZW1lbnQocyx7dHlwZToiZmlsZSIsb25DaGFuZ2U6aGFuZGxlRmlsZX0pOlJlLmNyZWF0ZUVsZW1lbnQoImkiLG51bGwsIkV4YW1wbGUgdmFsdWVzIGFyZSBub3QgYXZhaWxhYmxlIGZvciAiLFJlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsaiksIiBtZWRpYSB0eXBlcy4iKX1pZighYmUuc2l6ZSlyZXR1cm4gbnVsbDtpZihDLmhhc1NjaGVtYVR5cGUoYmUuZ2V0KCJzY2hlbWEiKSwib2JqZWN0IikmJigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIj09PWp8fDA9PT1qLmluZGV4T2YoIm11bHRpcGFydC8iKSkmJl9lLmdldCgicHJvcGVydGllcyIsKDAsemUuT3JkZXJlZE1hcCkoKSkuc2l6ZT4wKXtjb25zdCBzPV8oIkpzb25TY2hlbWFGb3JtIiksbz1fKCJQYXJhbWV0ZXJFeHQiKSxqPV9lLmdldCgicHJvcGVydGllcyIsKDAsemUuT3JkZXJlZE1hcCkoKSk7cmV0dXJuIGk9emUuTWFwLmlzTWFwKGkpP2k6KDAsemUuT3JkZXJlZE1hcCkoKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InRhYmxlLWNvbnRhaW5lciJ9LGZlJiZSZS5jcmVhdGVFbGVtZW50KFose3NvdXJjZTpmZX0pLFJlLmNyZWF0ZUVsZW1lbnQoInRhYmxlIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInRib2R5IixudWxsLHplLk1hcC5pc01hcChqKSYmai5lbnRyeVNlcSgpLm1hcCgoKFtqLFVdKT0+e2lmKFUuZ2V0KCJyZWFkT25seSIpKXJldHVybjtjb25zdCB6PVUuZ2V0KCJvbmVPZiIpPy5nZXQoMCk/LnRvSlMoKSxZPVUuZ2V0KCJhbnlPZiIpPy5nZXQoMCk/LnRvSlMoKTtVPSgwLHplLmZyb21KUykoQy5tZXJnZUpzb25TY2hlbWEoVS50b0pTKCksej8/WT8/e30pKTtsZXQgaWU9ZGU/Z2V0Q29tbW9uRXh0ZW5zaW9ucyhVKTpudWxsO2NvbnN0IGFlPV9lLmdldCgicmVxdWlyZWQiLCgwLHplLkxpc3QpKCkpLmluY2x1ZGVzKGopLGNlPUMuZ2V0U2NoZW1hT2JqZWN0VHlwZShVKSxsZT1DLmdldFNjaGVtYU9iamVjdFR5cGVMYWJlbChVKSxmZT1DLmdldFNjaGVtYU9iamVjdFR5cGUoVT8uZ2V0KCJpdGVtcyIpKSx5ZT1VLmdldCgiZm9ybWF0IiksYmU9VS5nZXQoImRlc2NyaXB0aW9uIiksU2U9aS5nZXRJbihbaiwidmFsdWUiXSksd2U9aS5nZXRJbihbaiwiZXJyb3JzIl0pfHx1LHhlPWEuZ2V0KGopfHwhMTtsZXQgUGU9Qy5nZXRTYW1wbGVTY2hlbWEoVSwhMSx7aW5jbHVkZVdyaXRlT25seTohMH0pOyExPT09UGUmJihQZT0iZmFsc2UiKSwwPT09UGUmJihQZT0iMCIpLCJzdHJpbmciIT10eXBlb2YgUGUmJiJvYmplY3QiPT09Y2UmJihQZT1zdHJpbmdpZnkoUGUpKSwic3RyaW5nIj09dHlwZW9mIFBlJiYiYXJyYXkiPT09Y2UmJihQZT1KU09OLnBhcnNlKFBlKSk7Y29uc3QgVGU9Qy5pc0ZpbGVVcGxvYWRJbnRlbmRlZChVKSwkZT1SZS5jcmVhdGVFbGVtZW50KHMse2ZuOkMsZGlzcGF0Y2hJbml0aWFsVmFsdWU6IVRlLHNjaGVtYTpVLGRlc2NyaXB0aW9uOmosZ2V0Q29tcG9uZW50Ol8sdmFsdWU6dm9pZCAwPT09U2U/UGU6U2UscmVxdWlyZWQ6YWUsZXJyb3JzOndlLG9uQ2hhbmdlOnM9PnskKHMsW2pdKX19KTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgidHIiLHtrZXk6aixjbGFzc05hbWU6InBhcmFtZXRlcnMiLCJkYXRhLXByb3BlcnR5LW5hbWUiOmp9LFJlLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJwYXJhbWV0ZXJzLWNvbF9uYW1lIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmFlPyJwYXJhbWV0ZXJfX25hbWUgcmVxdWlyZWQiOiJwYXJhbWV0ZXJfX25hbWUifSxqLGFlP1JlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsIsKgKiIpOm51bGwpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicGFyYW1ldGVyX190eXBlIn0sbGUseWUmJlJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6InByb3AtZm9ybWF0In0sIigkIix5ZSwiKSIpLGRlJiZpZS5zaXplP2llLmVudHJ5U2VxKCkubWFwKCgoW3MsaV0pPT5SZS5jcmVhdGVFbGVtZW50KG8se2tleTpgJHtzfS0ke2l9YCx4S2V5OnMseFZhbDppfSkpKTpudWxsKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InBhcmFtZXRlcl9fZGVwcmVjYXRlZCJ9LFUuZ2V0KCJkZXByZWNhdGVkIik/ImRlcHJlY2F0ZWQiOm51bGwpKSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToicGFyYW1ldGVycy1jb2xfZGVzY3JpcHRpb24ifSxSZS5jcmVhdGVFbGVtZW50KFose3NvdXJjZTpiZX0pLEw/UmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLCJvYmplY3QiPT09Y2V8fCJvYmplY3QiPT09ZmU/UmUuY3JlYXRlRWxlbWVudChlZSx7Z2V0Q29tcG9uZW50Ol8sc3BlY1BhdGg6Qi5wdXNoKCJzY2hlbWEiKSxnZXRDb25maWdzOncsaXNFeGVjdXRlOkwsc3BlY1NlbGVjdG9yczp4LHNjaGVtYTpVLGV4YW1wbGU6JGV9KTokZSxhZT9udWxsOlJlLmNyZWF0ZUVsZW1lbnQocGUse29uQ2hhbmdlOnM9PlYoaixzKSxpc0luY2x1ZGVkOnhlLGlzSW5jbHVkZWRPcHRpb25zOnNldElzSW5jbHVkZWRPcHRpb25zKGopLGlzRGlzYWJsZWQ6QXJyYXkuaXNBcnJheShTZSk/MCE9PVNlLmxlbmd0aDohaXNFbXB0eVZhbHVlKFNlKX0pKTpudWxsKSl9KSkpKSl9Y29uc3QgeGU9Z2V0RGVmYXVsdFJlcXVlc3RCb2R5VmFsdWUobyxqLFUsQyk7bGV0IFBlPW51bGw7Z2V0S25vd25TeW50YXhIaWdobGlnaHRlckxhbmd1YWdlKHhlKSYmKFBlPSJqc29uIik7Y29uc3QgVGU9TD9SZS5jcmVhdGVFbGVtZW50KGllLHt2YWx1ZTppLGVycm9yczp1LGRlZmF1bHRWYWx1ZTp4ZSxvbkNoYW5nZTokLGdldENvbXBvbmVudDpffSk6UmUuY3JlYXRlRWxlbWVudChhZSx7Y2xhc3NOYW1lOiJib2R5LXBhcmFtX19leGFtcGxlIixsYW5ndWFnZTpQZX0sc3RyaW5naWZ5KGkpfHx4ZSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxmZSYmUmUuY3JlYXRlRWxlbWVudChaLHtzb3VyY2U6ZmV9KSx3ZT9SZS5jcmVhdGVFbGVtZW50KGNlLHt1c2VySGFzRWRpdGVkQm9keTpzLGV4YW1wbGVzOndlLGN1cnJlbnRLZXk6VSxjdXJyZW50VXNlcklucHV0VmFsdWU6aSxvblNlbGVjdDpzPT57eihzKX0sdXBkYXRlVmFsdWU6JCxkZWZhdWx0VG9GaXJzdEV4YW1wbGU6ITAsZ2V0Q29tcG9uZW50Ol8sc2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWc6WX0pOm51bGwsUmUuY3JlYXRlRWxlbWVudChlZSx7Z2V0Q29tcG9uZW50Ol8sZ2V0Q29uZmlnczp3LHNwZWNTZWxlY3RvcnM6eCxleHBhbmREZXB0aDoxLGlzRXhlY3V0ZTpMLHNjaGVtYTpiZS5nZXQoInNjaGVtYSIpLHNwZWNQYXRoOkIucHVzaCgiY29udGVudCIsaiksZXhhbXBsZTpUZSxpbmNsdWRlV3JpdGVPbmx5OiEwfSksd2U/UmUuY3JlYXRlRWxlbWVudChsZSx7ZXhhbXBsZTp3ZS5nZXQoVSksZ2V0Q29tcG9uZW50Ol8sZ2V0Q29uZmlnczp3fSk6bnVsbCl9O2NsYXNzIG9wZXJhdGlvbl9saW5rX09wZXJhdGlvbkxpbmsgZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7bGluazpzLG5hbWU6byxnZXRDb21wb25lbnQ6aX09dGhpcy5wcm9wcyxhPWkoIk1hcmtkb3duIiwhMCk7bGV0IHU9cy5nZXQoIm9wZXJhdGlvbklkIil8fHMuZ2V0KCJvcGVyYXRpb25SZWYiKSxfPXMuZ2V0KCJwYXJhbWV0ZXJzIikmJnMuZ2V0KCJwYXJhbWV0ZXJzIikudG9KUygpLHc9cy5nZXQoImRlc2NyaXB0aW9uIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BlcmF0aW9uLWxpbmsifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImRlc2NyaXB0aW9uIn0sUmUuY3JlYXRlRWxlbWVudCgiYiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLG8pKSx3P1JlLmNyZWF0ZUVsZW1lbnQoYSx7c291cmNlOnd9KTpudWxsKSxSZS5jcmVhdGVFbGVtZW50KCJwcmUiLG51bGwsIk9wZXJhdGlvbiBgIix1LCJgIixSZS5jcmVhdGVFbGVtZW50KCJiciIsbnVsbCksUmUuY3JlYXRlRWxlbWVudCgiYnIiLG51bGwpLCJQYXJhbWV0ZXJzICIsZnVuY3Rpb24gcGFkU3RyaW5nKHMsbyl7aWYoInN0cmluZyIhPXR5cGVvZiBvKXJldHVybiIiO3JldHVybiBvLnNwbGl0KCJcbiIpLm1hcCgoKG8saSk9Pmk+MD9BcnJheShzKzEpLmpvaW4oIiAiKStvOm8pKS5qb2luKCJcbiIpfSgwLEpTT04uc3RyaW5naWZ5KF8sbnVsbCwyKSl8fCJ7fSIsUmUuY3JlYXRlRWxlbWVudCgiYnIiLG51bGwpKSl9fWNvbnN0IFZJPW9wZXJhdGlvbl9saW5rX09wZXJhdGlvbkxpbmssY29tcG9uZW50c19zZXJ2ZXJzPSh7c2VydmVyczpzLGN1cnJlbnRTZXJ2ZXI6byxzZXRTZWxlY3RlZFNlcnZlcjppLHNldFNlcnZlclZhcmlhYmxlVmFsdWU6YSxnZXRTZXJ2ZXJWYXJpYWJsZTp1LGdldEVmZmVjdGl2ZVNlcnZlclZhbHVlOl99KT0+e2NvbnN0IHc9KHMuZmluZCgocz0+cy5nZXQoInVybCIpPT09bykpfHwoMCx6ZS5PcmRlcmVkTWFwKSgpKS5nZXQoInZhcmlhYmxlcyIpfHwoMCx6ZS5PcmRlcmVkTWFwKSgpLHg9MCE9PXcuc2l6ZTsoMCxSZS51c2VFZmZlY3QpKCgoKT0+e298fGkocy5maXJzdCgpPy5nZXQoInVybCIpKX0pLFtdKSwoMCxSZS51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IHU9cy5maW5kKChzPT5zLmdldCgidXJsIik9PT1vKSk7aWYoIXUpcmV0dXJuIHZvaWQgaShzLmZpcnN0KCkuZ2V0KCJ1cmwiKSk7KHUuZ2V0KCJ2YXJpYWJsZXMiKXx8KDAsemUuT3JkZXJlZE1hcCkoKSkubWFwKCgocyxpKT0+e2Eoe3NlcnZlcjpvLGtleTppLHZhbDpzLmdldCgiZGVmYXVsdCIpfHwiIn0pfSkpfSksW28sc10pO2NvbnN0IEM9KDAsUmUudXNlQ2FsbGJhY2spKChzPT57aShzLnRhcmdldC52YWx1ZSl9KSxbaV0pLGo9KDAsUmUudXNlQ2FsbGJhY2spKChzPT57Y29uc3QgaT1zLnRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEtdmFyaWFibGUiKSx1PXMudGFyZ2V0LnZhbHVlO2Eoe3NlcnZlcjpvLGtleTppLHZhbDp1fSl9KSxbYSxvXSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToic2VydmVycyJ9LFJlLmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjoic2VydmVycyJ9LFJlLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIse29uQ2hhbmdlOkMsdmFsdWU6byxpZDoic2VydmVycyJ9LHMudmFsdWVTZXEoKS5tYXAoKHM9PlJlLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIse3ZhbHVlOnMuZ2V0KCJ1cmwiKSxrZXk6cy5nZXQoInVybCIpfSxzLmdldCgidXJsIikscy5nZXQoImRlc2NyaXB0aW9uIikmJmAgLSAke3MuZ2V0KCJkZXNjcmlwdGlvbiIpfWApKSkudG9BcnJheSgpKSkseCYmUmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiY29tcHV0ZWQtdXJsIn0sIkNvbXB1dGVkIFVSTDoiLFJlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsXyhvKSkpLFJlLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLCJTZXJ2ZXIgdmFyaWFibGVzIiksUmUuY3JlYXRlRWxlbWVudCgidGFibGUiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgidGJvZHkiLG51bGwsdy5lbnRyeVNlcSgpLm1hcCgoKFtzLGldKT0+UmUuY3JlYXRlRWxlbWVudCgidHIiLHtrZXk6c30sUmUuY3JlYXRlRWxlbWVudCgidGQiLG51bGwscyksUmUuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsaS5nZXQoImVudW0iKT9SZS5jcmVhdGVFbGVtZW50KCJzZWxlY3QiLHsiZGF0YS12YXJpYWJsZSI6cyxvbkNoYW5nZTpqfSxpLmdldCgiZW51bSIpLm1hcCgoaT0+UmUuY3JlYXRlRWxlbWVudCgib3B0aW9uIix7c2VsZWN0ZWQ6aT09PXUobyxzKSxrZXk6aSx2YWx1ZTppfSxpKSkpKTpSZS5jcmVhdGVFbGVtZW50KCJpbnB1dCIse3R5cGU6InRleHQiLHZhbHVlOnUobyxzKXx8IiIsb25DaGFuZ2U6aiwiZGF0YS12YXJpYWJsZSI6c30pKSkpKSkpKSl9O2NsYXNzIFNlcnZlcnNDb250YWluZXIgZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7c3BlY1NlbGVjdG9yczpzLG9hczNTZWxlY3RvcnM6byxvYXMzQWN0aW9uczppLGdldENvbXBvbmVudDphfT10aGlzLnByb3BzLHU9cy5zZXJ2ZXJzKCksXz1hKCJTZXJ2ZXJzIik7cmV0dXJuIHUmJnUuc2l6ZT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToic2VydmVycy10aXRsZSJ9LCJTZXJ2ZXJzIiksUmUuY3JlYXRlRWxlbWVudChfLHtzZXJ2ZXJzOnUsY3VycmVudFNlcnZlcjpvLnNlbGVjdGVkU2VydmVyKCksc2V0U2VsZWN0ZWRTZXJ2ZXI6aS5zZXRTZWxlY3RlZFNlcnZlcixzZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlOmkuc2V0U2VydmVyVmFyaWFibGVWYWx1ZSxnZXRTZXJ2ZXJWYXJpYWJsZTpvLnNlcnZlclZhcmlhYmxlVmFsdWUsZ2V0RWZmZWN0aXZlU2VydmVyVmFsdWU6by5zZXJ2ZXJFZmZlY3RpdmVWYWx1ZX0pKTpudWxsfX1jb25zdCBVST1GdW5jdGlvbi5wcm90b3R5cGU7Y2xhc3MgUmVxdWVzdEJvZHlFZGl0b3IgZXh0ZW5kcyBSZS5QdXJlQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9e29uQ2hhbmdlOlVJLHVzZXJIYXNFZGl0ZWRCb2R5OiExfTtjb25zdHJ1Y3RvcihzLG8pe3N1cGVyKHMsbyksdGhpcy5zdGF0ZT17dmFsdWU6c3RyaW5naWZ5KHMudmFsdWUpfHxzLmRlZmF1bHRWYWx1ZX0scy5vbkNoYW5nZShzLnZhbHVlKX1hcHBseURlZmF1bHRWYWx1ZT1zPT57Y29uc3R7b25DaGFuZ2U6byxkZWZhdWx0VmFsdWU6aX09c3x8dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5zZXRTdGF0ZSh7dmFsdWU6aX0pLG8oaSl9O29uQ2hhbmdlPXM9Pnt0aGlzLnByb3BzLm9uQ2hhbmdlKHN0cmluZ2lmeShzKSl9O29uRG9tQ2hhbmdlPXM9Pntjb25zdCBvPXMudGFyZ2V0LnZhbHVlO3RoaXMuc2V0U3RhdGUoe3ZhbHVlOm99LCgoKT0+dGhpcy5vbkNoYW5nZShvKSkpfTtVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhzKXt0aGlzLnByb3BzLnZhbHVlIT09cy52YWx1ZSYmcy52YWx1ZSE9PXRoaXMuc3RhdGUudmFsdWUmJnRoaXMuc2V0U3RhdGUoe3ZhbHVlOnN0cmluZ2lmeShzLnZhbHVlKX0pLCFzLnZhbHVlJiZzLmRlZmF1bHRWYWx1ZSYmdGhpcy5zdGF0ZS52YWx1ZSYmdGhpcy5hcHBseURlZmF1bHRWYWx1ZShzKX1yZW5kZXIoKXtsZXR7Z2V0Q29tcG9uZW50OnMsZXJyb3JzOm99PXRoaXMucHJvcHMse3ZhbHVlOml9PXRoaXMuc3RhdGUsYT1vLnNpemU+MDtjb25zdCB1PXMoIlRleHRBcmVhIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiYm9keS1wYXJhbSJ9LFJlLmNyZWF0ZUVsZW1lbnQodSx7Y2xhc3NOYW1lOkpuKCkoImJvZHktcGFyYW1fX3RleHQiLHtpbnZhbGlkOmF9KSx0aXRsZTpvLnNpemU/by5qb2luKCIsICIpOiIiLHZhbHVlOmksb25DaGFuZ2U6dGhpcy5vbkRvbUNoYW5nZX0pKX19Y2xhc3MgSHR0cEF1dGggZXh0ZW5kcyBSZS5Db21wb25lbnR7Y29uc3RydWN0b3IocyxvKXtzdXBlcihzLG8pO2xldHtuYW1lOmksc2NoZW1hOmF9PXRoaXMucHJvcHMsdT10aGlzLmdldFZhbHVlKCk7dGhpcy5zdGF0ZT17bmFtZTppLHNjaGVtYTphLHZhbHVlOnV9fWdldFZhbHVlKCl7bGV0e25hbWU6cyxhdXRob3JpemVkOm99PXRoaXMucHJvcHM7cmV0dXJuIG8mJm8uZ2V0SW4oW3MsInZhbHVlIl0pfW9uQ2hhbmdlPXM9PntsZXR7b25DaGFuZ2U6b309dGhpcy5wcm9wcyx7dmFsdWU6aSxuYW1lOmF9PXMudGFyZ2V0LHU9T2JqZWN0LmFzc2lnbih7fSx0aGlzLnN0YXRlLnZhbHVlKTthP3VbYV09aTp1PWksdGhpcy5zZXRTdGF0ZSh7dmFsdWU6dX0sKCgpPT5vKHRoaXMuc3RhdGUpKSl9O3JlbmRlcigpe2xldHtzY2hlbWE6cyxnZXRDb21wb25lbnQ6byxlcnJTZWxlY3RvcnM6aSxuYW1lOmEsYXV0aFNlbGVjdG9yczp1fT10aGlzLnByb3BzO2NvbnN0IF89bygiSW5wdXQiKSx3PW8oIlJvdyIpLHg9bygiQ29sIiksQz1vKCJhdXRoRXJyb3IiKSxqPW8oIk1hcmtkb3duIiwhMCksTD1vKCJKdW1wVG9QYXRoIiwhMCksQj0ocy5nZXQoInNjaGVtZSIpfHwiIikudG9Mb3dlckNhc2UoKSwkPXUuc2VsZWN0QXV0aFBhdGgoYSk7bGV0IFY9dGhpcy5nZXRWYWx1ZSgpLFU9aS5hbGxFcnJvcnMoKS5maWx0ZXIoKHM9PnMuZ2V0KCJhdXRoSWQiKT09PWEpKTtpZigiYmFzaWMiPT09Qil7bGV0IG89Vj9WLmdldCgidXNlcm5hbWUiKTpudWxsO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCxhKSwiwqAgKGh0dHAsIEJhc2ljKSIsUmUuY3JlYXRlRWxlbWVudChMLHtwYXRoOiR9KSksbyYmUmUuY3JlYXRlRWxlbWVudCgiaDYiLG51bGwsIkF1dGhvcml6ZWQiKSxSZS5jcmVhdGVFbGVtZW50KHcsbnVsbCxSZS5jcmVhdGVFbGVtZW50KGose3NvdXJjZTpzLmdldCgiZGVzY3JpcHRpb24iKX0pKSxSZS5jcmVhdGVFbGVtZW50KHcsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6ImF1dGgtYmFzaWMtdXNlcm5hbWUifSwiVXNlcm5hbWU6Iiksbz9SZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCIgIixvLCIgIik6UmUuY3JlYXRlRWxlbWVudCh4LG51bGwsUmUuY3JlYXRlRWxlbWVudChfLHtpZDoiYXV0aC1iYXNpYy11c2VybmFtZSIsdHlwZToidGV4dCIscmVxdWlyZWQ6InJlcXVpcmVkIixuYW1lOiJ1c2VybmFtZSIsImFyaWEtbGFiZWwiOiJhdXRoLWJhc2ljLXVzZXJuYW1lIixvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlLGF1dG9Gb2N1czohMH0pKSksUmUuY3JlYXRlRWxlbWVudCh3LG51bGwsUmUuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtodG1sRm9yOiJhdXRoLWJhc2ljLXBhc3N3b3JkIn0sIlBhc3N3b3JkOiIpLG8/UmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwiICoqKioqKiAiKTpSZS5jcmVhdGVFbGVtZW50KHgsbnVsbCxSZS5jcmVhdGVFbGVtZW50KF8se2lkOiJhdXRoLWJhc2ljLXBhc3N3b3JkIixhdXRvQ29tcGxldGU6Im5ldy1wYXNzd29yZCIsbmFtZToicGFzc3dvcmQiLHR5cGU6InBhc3N3b3JkIiwiYXJpYS1sYWJlbCI6ImF1dGgtYmFzaWMtcGFzc3dvcmQiLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2V9KSkpLFUudmFsdWVTZXEoKS5tYXAoKChzLG8pPT5SZS5jcmVhdGVFbGVtZW50KEMse2Vycm9yOnMsa2V5Om99KSkpKX1yZXR1cm4iYmVhcmVyIj09PUI/UmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsYSksIsKgIChodHRwLCBCZWFyZXIpIixSZS5jcmVhdGVFbGVtZW50KEwse3BhdGg6JH0pKSxWJiZSZS5jcmVhdGVFbGVtZW50KCJoNiIsbnVsbCwiQXV0aG9yaXplZCIpLFJlLmNyZWF0ZUVsZW1lbnQodyxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoaix7c291cmNlOnMuZ2V0KCJkZXNjcmlwdGlvbiIpfSkpLFJlLmNyZWF0ZUVsZW1lbnQodyxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjoiYXV0aC1iZWFyZXItdmFsdWUifSwiVmFsdWU6IiksVj9SZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCIgKioqKioqICIpOlJlLmNyZWF0ZUVsZW1lbnQoeCxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoXyx7aWQ6ImF1dGgtYmVhcmVyLXZhbHVlIix0eXBlOiJ0ZXh0IiwiYXJpYS1sYWJlbCI6ImF1dGgtYmVhcmVyLXZhbHVlIixvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlLGF1dG9Gb2N1czohMH0pKSksVS52YWx1ZVNlcSgpLm1hcCgoKHMsbyk9PlJlLmNyZWF0ZUVsZW1lbnQoQyx7ZXJyb3I6cyxrZXk6b30pKSkpOlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJlbSIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJiIixudWxsLGEpLCIgSFRUUCBhdXRoZW50aWNhdGlvbjogdW5zdXBwb3J0ZWQgc2NoZW1lICIsYCcke0J9J2ApKX19Y2xhc3Mgb3BlcmF0aW9uX3NlcnZlcnNfT3BlcmF0aW9uU2VydmVycyBleHRlbmRzIFJlLkNvbXBvbmVudHtzZXRTZWxlY3RlZFNlcnZlcj1zPT57Y29uc3R7cGF0aDpvLG1ldGhvZDppfT10aGlzLnByb3BzO3JldHVybiB0aGlzLmZvcmNlVXBkYXRlKCksdGhpcy5wcm9wcy5zZXRTZWxlY3RlZFNlcnZlcihzLGAke299OiR7aX1gKX07c2V0U2VydmVyVmFyaWFibGVWYWx1ZT1zPT57Y29uc3R7cGF0aDpvLG1ldGhvZDppfT10aGlzLnByb3BzO3JldHVybiB0aGlzLmZvcmNlVXBkYXRlKCksdGhpcy5wcm9wcy5zZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlKHsuLi5zLG5hbWVzcGFjZTpgJHtvfToke2l9YH0pfTtnZXRTZWxlY3RlZFNlcnZlcj0oKT0+e2NvbnN0e3BhdGg6cyxtZXRob2Q6b309dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5wcm9wcy5nZXRTZWxlY3RlZFNlcnZlcihgJHtzfToke299YCl9O2dldFNlcnZlclZhcmlhYmxlPShzLG8pPT57Y29uc3R7cGF0aDppLG1ldGhvZDphfT10aGlzLnByb3BzO3JldHVybiB0aGlzLnByb3BzLmdldFNlcnZlclZhcmlhYmxlKHtuYW1lc3BhY2U6YCR7aX06JHthfWAsc2VydmVyOnN9LG8pfTtnZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZT1zPT57Y29uc3R7cGF0aDpvLG1ldGhvZDppfT10aGlzLnByb3BzO3JldHVybiB0aGlzLnByb3BzLmdldEVmZmVjdGl2ZVNlcnZlclZhbHVlKHtzZXJ2ZXI6cyxuYW1lc3BhY2U6YCR7b306JHtpfWB9KX07cmVuZGVyKCl7Y29uc3R7b3BlcmF0aW9uU2VydmVyczpzLHBhdGhTZXJ2ZXJzOm8sZ2V0Q29tcG9uZW50Oml9PXRoaXMucHJvcHM7aWYoIXMmJiFvKXJldHVybiBudWxsO2NvbnN0IGE9aSgiU2VydmVycyIpLHU9c3x8byxfPXM/Im9wZXJhdGlvbiI6InBhdGgiO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc2VjdGlvbiBvcGVyYXRpb24tc2VydmVycyJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1zZWN0aW9uLWhlYWRlciJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidGFiLWhlYWRlciJ9LFJlLmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXRpdGxlIn0sIlNlcnZlcnMiKSkpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1kZXNjcmlwdGlvbi13cmFwcGVyIn0sUmUuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6Im1lc3NhZ2UifSwiVGhlc2UgIixfLCItbGV2ZWwgb3B0aW9ucyBvdmVycmlkZSB0aGUgZ2xvYmFsIHNlcnZlciBvcHRpb25zLiIpLFJlLmNyZWF0ZUVsZW1lbnQoYSx7c2VydmVyczp1LGN1cnJlbnRTZXJ2ZXI6dGhpcy5nZXRTZWxlY3RlZFNlcnZlcigpLHNldFNlbGVjdGVkU2VydmVyOnRoaXMuc2V0U2VsZWN0ZWRTZXJ2ZXIsc2V0U2VydmVyVmFyaWFibGVWYWx1ZTp0aGlzLnNldFNlcnZlclZhcmlhYmxlVmFsdWUsZ2V0U2VydmVyVmFyaWFibGU6dGhpcy5nZXRTZXJ2ZXJWYXJpYWJsZSxnZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZTp0aGlzLmdldEVmZmVjdGl2ZVNlcnZlclZhbHVlfSkpKX19Y29uc3Qgekk9e0NhbGxiYWNrczpjYWxsYmFja3MsSHR0cEF1dGgsUmVxdWVzdEJvZHk6Y29tcG9uZW50c19yZXF1ZXN0X2JvZHksU2VydmVyczpjb21wb25lbnRzX3NlcnZlcnMsU2VydmVyc0NvbnRhaW5lcixSZXF1ZXN0Qm9keUVkaXRvcixPcGVyYXRpb25TZXJ2ZXJzOm9wZXJhdGlvbl9zZXJ2ZXJzX09wZXJhdGlvblNlcnZlcnMsb3BlcmF0aW9uTGluazpWSX0sV0k9bmV3IFJlbWFya2FibGUoImNvbW1vbm1hcmsiKTtXSS5ibG9jay5ydWxlci5lbmFibGUoWyJ0YWJsZSJdKSxXSS5zZXQoe2xpbmtUYXJnZXQ6Il9ibGFuayJ9KTtjb25zdCBKST1PQVMzQ29tcG9uZW50V3JhcEZhY3RvcnkoKCh7c291cmNlOnMsY2xhc3NOYW1lOm89IiIsZ2V0Q29uZmlnczppPSgpPT4oe3VzZVVuc2FmZU1hcmtkb3duOiExfSl9KT0+e2lmKCJzdHJpbmciIT10eXBlb2YgcylyZXR1cm4gbnVsbDtpZihzKXtjb25zdHt1c2VVbnNhZmVNYXJrZG93bjphfT1pKCksdT1zYW5pdGl6ZXIoV0kucmVuZGVyKHMpLHt1c2VVbnNhZmVNYXJrZG93bjphfSk7bGV0IF87cmV0dXJuInN0cmluZyI9PXR5cGVvZiB1JiYoXz11LnRyaW0oKSksUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDpffSxjbGFzc05hbWU6Sm4oKShvLCJyZW5kZXJlZE1hcmtkb3duIil9KX1yZXR1cm4gbnVsbH0pKSxIST1PQVMzQ29tcG9uZW50V3JhcEZhY3RvcnkoKCh7T3JpOnMsLi4ub30pPT57Y29uc3R7c2NoZW1hOmksZ2V0Q29tcG9uZW50OmEsZXJyU2VsZWN0b3JzOnUsYXV0aG9yaXplZDpfLG9uQXV0aENoYW5nZTp3LG5hbWU6eCxhdXRoU2VsZWN0b3JzOkN9PW8saj1hKCJIdHRwQXV0aCIpO3JldHVybiJodHRwIj09PWkuZ2V0KCJ0eXBlIik/UmUuY3JlYXRlRWxlbWVudChqLHtrZXk6eCxzY2hlbWE6aSxuYW1lOngsZXJyU2VsZWN0b3JzOnUsYXV0aG9yaXplZDpfLGdldENvbXBvbmVudDphLG9uQ2hhbmdlOncsYXV0aFNlbGVjdG9yczpDfSk6UmUuY3JlYXRlRWxlbWVudChzLG8pfSkpLEtJPU9BUzNDb21wb25lbnRXcmFwRmFjdG9yeShPbmxpbmVWYWxpZGF0b3JCYWRnZSk7Y2xhc3MgTW9kZWxDb21wb25lbnQgZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7bGV0e2dldENvbmZpZ3M6cyxzY2hlbWE6byxPcmk6aX09dGhpcy5wcm9wcyxhPVsibW9kZWwtYm94Il0sdT1udWxsO3JldHVybiEwPT09by5nZXQoImRlcHJlY2F0ZWQiKSYmKGEucHVzaCgiZGVwcmVjYXRlZCIpLHU9UmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWwtZGVwcmVjYXRlZC13YXJuaW5nIn0sIkRlcHJlY2F0ZWQ6IikpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTphLmpvaW4oIiAiKX0sdSxSZS5jcmVhdGVFbGVtZW50KGksTW4oKSh7fSx0aGlzLnByb3BzLHtnZXRDb25maWdzOnMsZGVwdGg6MSxleHBhbmREZXB0aDp0aGlzLnByb3BzLmV4cGFuZERlcHRofHwwfSkpKX19Y29uc3QgR0k9T0FTM0NvbXBvbmVudFdyYXBGYWN0b3J5KE1vZGVsQ29tcG9uZW50KSxZST1PQVMzQ29tcG9uZW50V3JhcEZhY3RvcnkoKCh7T3JpOnMsLi4ub30pPT57Y29uc3R7c2NoZW1hOmksZ2V0Q29tcG9uZW50OmEsZXJyb3JzOnUsb25DaGFuZ2U6Xyxmbjp3fT1vLHg9dy5pc0ZpbGVVcGxvYWRJbnRlbmRlZChpKSxDPWEoIklucHV0Iik7cmV0dXJuIHg/UmUuY3JlYXRlRWxlbWVudChDLHt0eXBlOiJmaWxlIixjbGFzc05hbWU6dS5sZW5ndGg/ImludmFsaWQiOiIiLHRpdGxlOnUubGVuZ3RoP3U6IiIsb25DaGFuZ2U6cz0+e18ocy50YXJnZXQuZmlsZXNbMF0pfSxkaXNhYmxlZDpzLmlzRGlzYWJsZWR9KTpSZS5jcmVhdGVFbGVtZW50KHMsbyl9KSksWEk9e01hcmtkb3duOkpJLEF1dGhJdGVtOkhJLE9wZW5BUElWZXJzaW9uOmZ1bmN0aW9uIE9BUzMwQ29tcG9uZW50V3JhcEZhY3Rvcnkocyl7cmV0dXJuKG8saSk9PmE9PiJmdW5jdGlvbiI9PXR5cGVvZiBpLnNwZWNTZWxlY3RvcnM/LmlzT0FTMzA/aS5zcGVjU2VsZWN0b3JzLmlzT0FTMzAoKT9SZS5jcmVhdGVFbGVtZW50KHMsTW4oKSh7fSxhLGkse09yaTpvfSkpOlJlLmNyZWF0ZUVsZW1lbnQobyxhKTooY29uc29sZS53YXJuKCJPQVMzMCB3cmFwcGVyOiBjb3VsZG4ndCBnZXQgc3BlYyIpLG51bGwpfSgocz0+e2NvbnN0e09yaTpvfT1zO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KG8se29hc1ZlcnNpb246IjMuMCJ9KX0pKSxKc29uU2NoZW1hX3N0cmluZzpZSSxtb2RlbDpHSSxvbmxpbmVWYWxpZGF0b3JCYWRnZTpLSX0sUUk9Im9hczNfc2V0X3NlcnZlcnMiLFpJPSJvYXMzX3NldF9yZXF1ZXN0X2JvZHlfdmFsdWUiLGVQPSJvYXMzX3NldF9yZXF1ZXN0X2JvZHlfcmV0YWluX2ZsYWciLHRQPSJvYXMzX3NldF9yZXF1ZXN0X2JvZHlfaW5jbHVzaW9uIixyUD0ib2FzM19zZXRfYWN0aXZlX2V4YW1wbGVzX21lbWJlciIsblA9Im9hczNfc2V0X3JlcXVlc3RfY29udGVudF90eXBlIixzUD0ib2FzM19zZXRfcmVzcG9uc2VfY29udGVudF90eXBlIixvUD0ib2FzM19zZXRfc2VydmVyX3ZhcmlhYmxlX3ZhbHVlIixpUD0ib2FzM19zZXRfcmVxdWVzdF9ib2R5X3ZhbGlkYXRlX2Vycm9yIixhUD0ib2FzM19jbGVhcl9yZXF1ZXN0X2JvZHlfdmFsaWRhdGVfZXJyb3IiLGNQPSJvYXMzX2NsZWFyX3JlcXVlc3RfYm9keV92YWx1ZSI7ZnVuY3Rpb24gc2V0U2VsZWN0ZWRTZXJ2ZXIocyxvKXtyZXR1cm57dHlwZTpRSSxwYXlsb2FkOntzZWxlY3RlZFNlcnZlclVybDpzLG5hbWVzcGFjZTpvfX19ZnVuY3Rpb24gc2V0UmVxdWVzdEJvZHlWYWx1ZSh7dmFsdWU6cyxwYXRoTWV0aG9kOm99KXtyZXR1cm57dHlwZTpaSSxwYXlsb2FkOnt2YWx1ZTpzLHBhdGhNZXRob2Q6b319fWNvbnN0IHNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnPSh7dmFsdWU6cyxwYXRoTWV0aG9kOm99KT0+KHt0eXBlOmVQLHBheWxvYWQ6e3ZhbHVlOnMscGF0aE1ldGhvZDpvfX0pO2Z1bmN0aW9uIHNldFJlcXVlc3RCb2R5SW5jbHVzaW9uKHt2YWx1ZTpzLHBhdGhNZXRob2Q6byxuYW1lOml9KXtyZXR1cm57dHlwZTp0UCxwYXlsb2FkOnt2YWx1ZTpzLHBhdGhNZXRob2Q6byxuYW1lOml9fX1mdW5jdGlvbiBzZXRBY3RpdmVFeGFtcGxlc01lbWJlcih7bmFtZTpzLHBhdGhNZXRob2Q6byxjb250ZXh0VHlwZTppLGNvbnRleHROYW1lOmF9KXtyZXR1cm57dHlwZTpyUCxwYXlsb2FkOntuYW1lOnMscGF0aE1ldGhvZDpvLGNvbnRleHRUeXBlOmksY29udGV4dE5hbWU6YX19fWZ1bmN0aW9uIHNldFJlcXVlc3RDb250ZW50VHlwZSh7dmFsdWU6cyxwYXRoTWV0aG9kOm99KXtyZXR1cm57dHlwZTpuUCxwYXlsb2FkOnt2YWx1ZTpzLHBhdGhNZXRob2Q6b319fWZ1bmN0aW9uIHNldFJlc3BvbnNlQ29udGVudFR5cGUoe3ZhbHVlOnMscGF0aDpvLG1ldGhvZDppfSl7cmV0dXJue3R5cGU6c1AscGF5bG9hZDp7dmFsdWU6cyxwYXRoOm8sbWV0aG9kOml9fX1mdW5jdGlvbiBzZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlKHtzZXJ2ZXI6cyxuYW1lc3BhY2U6byxrZXk6aSx2YWw6YX0pe3JldHVybnt0eXBlOm9QLHBheWxvYWQ6e3NlcnZlcjpzLG5hbWVzcGFjZTpvLGtleTppLHZhbDphfX19Y29uc3Qgc2V0UmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yPSh7cGF0aDpzLG1ldGhvZDpvLHZhbGlkYXRpb25FcnJvcnM6aX0pPT4oe3R5cGU6aVAscGF5bG9hZDp7cGF0aDpzLG1ldGhvZDpvLHZhbGlkYXRpb25FcnJvcnM6aX19KSxjbGVhclJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcj0oe3BhdGg6cyxtZXRob2Q6b30pPT4oe3R5cGU6YVAscGF5bG9hZDp7cGF0aDpzLG1ldGhvZDpvfX0pLGluaXRSZXF1ZXN0Qm9keVZhbGlkYXRlRXJyb3I9KHtwYXRoTWV0aG9kOnN9KT0+KHt0eXBlOmFQLHBheWxvYWQ6e3BhdGg6c1swXSxtZXRob2Q6c1sxXX19KSxjbGVhclJlcXVlc3RCb2R5VmFsdWU9KHtwYXRoTWV0aG9kOnN9KT0+KHt0eXBlOmNQLHBheWxvYWQ6e3BhdGhNZXRob2Q6c319KTt2YXIgbFA9X193ZWJwYWNrX3JlcXVpcmVfXyg2MDY4MCksdVA9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGxQKTtjb25zdCBvYXMzX3NlbGVjdG9yc19vbmx5T0FTMz1zPT4obywuLi5pKT0+YT0+e2lmKGEuZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5pc09BUzMoKSl7Y29uc3QgdT1zKG8sLi4uaSk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHU/dShhKTp1fXJldHVybiBudWxsfTtjb25zdCBwUD1vYXMzX3NlbGVjdG9yc19vbmx5T0FTMygoKHMsbyk9Pntjb25zdCBpPW8/W28sInNlbGVjdGVkU2VydmVyIl06WyJzZWxlY3RlZFNlcnZlciJdO3JldHVybiBzLmdldEluKGkpfHwiIn0pKSxoUD1vYXMzX3NlbGVjdG9yc19vbmx5T0FTMygoKHMsbyxpKT0+cy5nZXRJbihbInJlcXVlc3REYXRhIixvLGksImJvZHlWYWx1ZSJdKXx8bnVsbCkpLGRQPW9hczNfc2VsZWN0b3JzX29ubHlPQVMzKCgocyxvLGkpPT5zLmdldEluKFsicmVxdWVzdERhdGEiLG8saSwicmV0YWluQm9keVZhbHVlIl0pfHwhMSkpLHNlbGVjdERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlPShzLG8saSk9PnM9Pntjb25zdHtvYXMzU2VsZWN0b3JzOmEsc3BlY1NlbGVjdG9yczp1LGZuOl99PXMuZ2V0U3lzdGVtKCk7aWYodS5pc09BUzMoKSl7Y29uc3Qgcz1hLnJlcXVlc3RDb250ZW50VHlwZShvLGkpO2lmKHMpcmV0dXJuIGdldERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlKHUuc3BlY1Jlc29sdmVkU3VidHJlZShbInBhdGhzIixvLGksInJlcXVlc3RCb2R5Il0pLHMsYS5hY3RpdmVFeGFtcGxlc01lbWJlcihvLGksInJlcXVlc3RCb2R5IiwicmVxdWVzdEJvZHkiKSxfKX1yZXR1cm4gbnVsbH0sZlA9b2FzM19zZWxlY3RvcnNfb25seU9BUzMoKChzLG8saSk9PnM9Pntjb25zdHtvYXMzU2VsZWN0b3JzOmEsc3BlY1NlbGVjdG9yczp1LGZuOl99PXM7bGV0IHc9ITE7Y29uc3QgeD1hLnJlcXVlc3RDb250ZW50VHlwZShvLGkpO2xldCBDPWEucmVxdWVzdEJvZHlWYWx1ZShvLGkpO2NvbnN0IGo9dS5zcGVjUmVzb2x2ZWRTdWJ0cmVlKFsicGF0aHMiLG8saSwicmVxdWVzdEJvZHkiXSk7aWYoIWopcmV0dXJuITE7aWYoemUuTWFwLmlzTWFwKEMpJiYoQz1zdHJpbmdpZnkoQy5tYXBFbnRyaWVzKChzPT56ZS5NYXAuaXNNYXAoc1sxXSk/W3NbMF0sc1sxXS5nZXQoInZhbHVlIildOnMpKS50b0pTKCkpKSx6ZS5MaXN0LmlzTGlzdChDKSYmKEM9c3RyaW5naWZ5KEMpKSx4KXtjb25zdCBzPWdldERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlKGoseCxhLmFjdGl2ZUV4YW1wbGVzTWVtYmVyKG8saSwicmVxdWVzdEJvZHkiLCJyZXF1ZXN0Qm9keSIpLF8pO3c9ISFDJiZDIT09c31yZXR1cm4gd30pKSxtUD1vYXMzX3NlbGVjdG9yc19vbmx5T0FTMygoKHMsbyxpKT0+cy5nZXRJbihbInJlcXVlc3REYXRhIixvLGksImJvZHlJbmNsdXNpb24iXSl8fCgwLHplLk1hcCkoKSkpLGdQPW9hczNfc2VsZWN0b3JzX29ubHlPQVMzKCgocyxvLGkpPT5zLmdldEluKFsicmVxdWVzdERhdGEiLG8saSwiZXJyb3JzIl0pfHxudWxsKSkseVA9b2FzM19zZWxlY3RvcnNfb25seU9BUzMoKChzLG8saSxhLHUpPT5zLmdldEluKFsiZXhhbXBsZXMiLG8saSxhLHUsImFjdGl2ZUV4YW1wbGUiXSl8fG51bGwpKSx2UD1vYXMzX3NlbGVjdG9yc19vbmx5T0FTMygoKHMsbyxpKT0+cy5nZXRJbihbInJlcXVlc3REYXRhIixvLGksInJlcXVlc3RDb250ZW50VHlwZSJdKXx8bnVsbCkpLGJQPW9hczNfc2VsZWN0b3JzX29ubHlPQVMzKCgocyxvLGkpPT5zLmdldEluKFsicmVxdWVzdERhdGEiLG8saSwicmVzcG9uc2VDb250ZW50VHlwZSJdKXx8bnVsbCkpLF9QPW9hczNfc2VsZWN0b3JzX29ubHlPQVMzKCgocyxvLGkpPT57bGV0IGE7aWYoInN0cmluZyIhPXR5cGVvZiBvKXtjb25zdHtzZXJ2ZXI6cyxuYW1lc3BhY2U6dX09bzthPXU/W3UsInNlcnZlclZhcmlhYmxlVmFsdWVzIixzLGldOlsic2VydmVyVmFyaWFibGVWYWx1ZXMiLHMsaV19ZWxzZXthPVsic2VydmVyVmFyaWFibGVWYWx1ZXMiLG8saV19cmV0dXJuIHMuZ2V0SW4oYSl8fG51bGx9KSksU1A9b2FzM19zZWxlY3RvcnNfb25seU9BUzMoKChzLG8pPT57bGV0IGk7aWYoInN0cmluZyIhPXR5cGVvZiBvKXtjb25zdHtzZXJ2ZXI6cyxuYW1lc3BhY2U6YX09bztpPWE/W2EsInNlcnZlclZhcmlhYmxlVmFsdWVzIixzXTpbInNlcnZlclZhcmlhYmxlVmFsdWVzIixzXX1lbHNle2k9WyJzZXJ2ZXJWYXJpYWJsZVZhbHVlcyIsb119cmV0dXJuIHMuZ2V0SW4oaSl8fCgwLHplLk9yZGVyZWRNYXApKCl9KSksRVA9b2FzM19zZWxlY3RvcnNfb25seU9BUzMoKChzLG8pPT57dmFyIGksYTtpZigic3RyaW5nIiE9dHlwZW9mIG8pe2NvbnN0e3NlcnZlcjp1LG5hbWVzcGFjZTpffT1vO2E9dSxpPV8/cy5nZXRJbihbXywic2VydmVyVmFyaWFibGVWYWx1ZXMiLGFdKTpzLmdldEluKFsic2VydmVyVmFyaWFibGVWYWx1ZXMiLGFdKX1lbHNlIGE9byxpPXMuZ2V0SW4oWyJzZXJ2ZXJWYXJpYWJsZVZhbHVlcyIsYV0pO2k9aXx8KDAsemUuT3JkZXJlZE1hcCkoKTtsZXQgdT1hO3JldHVybiBpLm1hcCgoKHMsbyk9Pnt1PXUucmVwbGFjZShuZXcgUmVnRXhwKGB7JHt1UCgpKG8pfX1gLCJnIikscyl9KSksdX0pKSx3UD1mdW5jdGlvbiB2YWxpZGF0ZVJlcXVlc3RCb2R5SXNSZXF1aXJlZChzKXtyZXR1cm4oLi4ubyk9Pmk9Pntjb25zdCBhPWkuZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpO2xldCB1PVsuLi5vXVsxXXx8W107cmV0dXJuIWEuZ2V0SW4oWyJwYXRocyIsLi4udSwicmVxdWVzdEJvZHkiLCJyZXF1aXJlZCJdKXx8cyguLi5vKX19KCgocyxvKT0+KChzLG8pPT4obz1vfHxbXSwhIXMuZ2V0SW4oWyJyZXF1ZXN0RGF0YSIsLi4ubywiYm9keVZhbHVlIl0pKSkocyxvKSkpLHZhbGlkYXRlU2hhbGxvd1JlcXVpcmVkPShzLHtvYXMzUmVxdWlyZWRSZXF1ZXN0Qm9keUNvbnRlbnRUeXBlOm8sb2FzM1JlcXVlc3RDb250ZW50VHlwZTppLG9hczNSZXF1ZXN0Qm9keVZhbHVlOmF9KT0+e2xldCB1PVtdO2lmKCF6ZS5NYXAuaXNNYXAoYSkpcmV0dXJuIHU7bGV0IF89W107cmV0dXJuIE9iamVjdC5rZXlzKG8ucmVxdWVzdENvbnRlbnRUeXBlKS5mb3JFYWNoKChzPT57aWYocz09PWkpe28ucmVxdWVzdENvbnRlbnRUeXBlW3NdLmZvckVhY2goKHM9PntfLmluZGV4T2Yocyk8MCYmXy5wdXNoKHMpfSkpfX0pKSxfLmZvckVhY2goKHM9PnthLmdldEluKFtzLCJ2YWx1ZSJdKXx8dS5wdXNoKHMpfSkpLHV9LHhQPXhzKCkoWyJnZXQiLCJwdXQiLCJwb3N0IiwiZGVsZXRlIiwib3B0aW9ucyIsImhlYWQiLCJwYXRjaCIsInRyYWNlIl0pLGtQPXtbUUldOihzLHtwYXlsb2FkOntzZWxlY3RlZFNlcnZlclVybDpvLG5hbWVzcGFjZTppfX0pPT57Y29uc3QgYT1pP1tpLCJzZWxlY3RlZFNlcnZlciJdOlsic2VsZWN0ZWRTZXJ2ZXIiXTtyZXR1cm4gcy5zZXRJbihhLG8pfSxbWkldOihzLHtwYXlsb2FkOnt2YWx1ZTpvLHBhdGhNZXRob2Q6aX19KT0+e2xldFthLHVdPWk7aWYoIXplLk1hcC5pc01hcChvKSlyZXR1cm4gcy5zZXRJbihbInJlcXVlc3REYXRhIixhLHUsImJvZHlWYWx1ZSJdLG8pO2xldCBfLHc9cy5nZXRJbihbInJlcXVlc3REYXRhIixhLHUsImJvZHlWYWx1ZSJdKXx8KDAsemUuTWFwKSgpO3plLk1hcC5pc01hcCh3KXx8KHc9KDAsemUuTWFwKSgpKTtjb25zdFsuLi54XT1vLmtleXMoKTtyZXR1cm4geC5mb3JFYWNoKChzPT57bGV0IGk9by5nZXRJbihbc10pO3cuaGFzKHMpJiZ6ZS5NYXAuaXNNYXAoaSl8fChfPXcuc2V0SW4oW3MsInZhbHVlIl0saSkpfSkpLHMuc2V0SW4oWyJyZXF1ZXN0RGF0YSIsYSx1LCJib2R5VmFsdWUiXSxfKX0sW2VQXToocyx7cGF5bG9hZDp7dmFsdWU6byxwYXRoTWV0aG9kOml9fSk9PntsZXRbYSx1XT1pO3JldHVybiBzLnNldEluKFsicmVxdWVzdERhdGEiLGEsdSwicmV0YWluQm9keVZhbHVlIl0sbyl9LFt0UF06KHMse3BheWxvYWQ6e3ZhbHVlOm8scGF0aE1ldGhvZDppLG5hbWU6YX19KT0+e2xldFt1LF9dPWk7cmV0dXJuIHMuc2V0SW4oWyJyZXF1ZXN0RGF0YSIsdSxfLCJib2R5SW5jbHVzaW9uIixhXSxvKX0sW3JQXToocyx7cGF5bG9hZDp7bmFtZTpvLHBhdGhNZXRob2Q6aSxjb250ZXh0VHlwZTphLGNvbnRleHROYW1lOnV9fSk9PntsZXRbXyx3XT1pO3JldHVybiBzLnNldEluKFsiZXhhbXBsZXMiLF8sdyxhLHUsImFjdGl2ZUV4YW1wbGUiXSxvKX0sW25QXToocyx7cGF5bG9hZDp7dmFsdWU6byxwYXRoTWV0aG9kOml9fSk9PntsZXRbYSx1XT1pO3JldHVybiBzLnNldEluKFsicmVxdWVzdERhdGEiLGEsdSwicmVxdWVzdENvbnRlbnRUeXBlIl0sbyl9LFtzUF06KHMse3BheWxvYWQ6e3ZhbHVlOm8scGF0aDppLG1ldGhvZDphfX0pPT5zLnNldEluKFsicmVxdWVzdERhdGEiLGksYSwicmVzcG9uc2VDb250ZW50VHlwZSJdLG8pLFtvUF06KHMse3BheWxvYWQ6e3NlcnZlcjpvLG5hbWVzcGFjZTppLGtleTphLHZhbDp1fX0pPT57Y29uc3QgXz1pP1tpLCJzZXJ2ZXJWYXJpYWJsZVZhbHVlcyIsbyxhXTpbInNlcnZlclZhcmlhYmxlVmFsdWVzIixvLGFdO3JldHVybiBzLnNldEluKF8sdSl9LFtpUF06KHMse3BheWxvYWQ6e3BhdGg6byxtZXRob2Q6aSx2YWxpZGF0aW9uRXJyb3JzOmF9fSk9PntsZXQgdT1bXTtpZih1LnB1c2goIlJlcXVpcmVkIGZpZWxkIGlzIG5vdCBwcm92aWRlZCIpLGEubWlzc2luZ0JvZHlWYWx1ZSlyZXR1cm4gcy5zZXRJbihbInJlcXVlc3REYXRhIixvLGksImVycm9ycyJdLCgwLHplLmZyb21KUykodSkpO2lmKGEubWlzc2luZ1JlcXVpcmVkS2V5cyYmYS5taXNzaW5nUmVxdWlyZWRLZXlzLmxlbmd0aD4wKXtjb25zdHttaXNzaW5nUmVxdWlyZWRLZXlzOl99PWE7cmV0dXJuIHMudXBkYXRlSW4oWyJyZXF1ZXN0RGF0YSIsbyxpLCJib2R5VmFsdWUiXSwoMCx6ZS5mcm9tSlMpKHt9KSwocz0+Xy5yZWR1Y2UoKChzLG8pPT5zLnNldEluKFtvLCJlcnJvcnMiXSwoMCx6ZS5mcm9tSlMpKHUpKSkscykpKX1yZXR1cm4gY29uc29sZS53YXJuKCJ1bmV4cGVjdGVkIHJlc3VsdDogU0VUX1JFUVVFU1RfQk9EWV9WQUxJREFURV9FUlJPUiIpLHN9LFthUF06KHMse3BheWxvYWQ6e3BhdGg6byxtZXRob2Q6aX19KT0+e2NvbnN0IGE9cy5nZXRJbihbInJlcXVlc3REYXRhIixvLGksImJvZHlWYWx1ZSJdKTtpZighemUuTWFwLmlzTWFwKGEpKXJldHVybiBzLnNldEluKFsicmVxdWVzdERhdGEiLG8saSwiZXJyb3JzIl0sKDAsemUuZnJvbUpTKShbXSkpO2NvbnN0Wy4uLnVdPWEua2V5cygpO3JldHVybiB1P3MudXBkYXRlSW4oWyJyZXF1ZXN0RGF0YSIsbyxpLCJib2R5VmFsdWUiXSwoMCx6ZS5mcm9tSlMpKHt9KSwocz0+dS5yZWR1Y2UoKChzLG8pPT5zLnNldEluKFtvLCJlcnJvcnMiXSwoMCx6ZS5mcm9tSlMpKFtdKSkpLHMpKSk6c30sW2NQXToocyx7cGF5bG9hZDp7cGF0aE1ldGhvZDpvfX0pPT57bGV0W2ksYV09bztjb25zdCB1PXMuZ2V0SW4oWyJyZXF1ZXN0RGF0YSIsaSxhLCJib2R5VmFsdWUiXSk7cmV0dXJuIHU/emUuTWFwLmlzTWFwKHUpP3Muc2V0SW4oWyJyZXF1ZXN0RGF0YSIsaSxhLCJib2R5VmFsdWUiXSwoMCx6ZS5NYXApKCkpOnMuc2V0SW4oWyJyZXF1ZXN0RGF0YSIsaSxhLCJib2R5VmFsdWUiXSwiIik6c319O2Z1bmN0aW9uIG9hczMoe2dldFN5c3RlbTpzfSl7Y29uc3Qgbz0ocz0+KG8saT1udWxsKT0+e2NvbnN0e2dldENvbmZpZ3M6YSxmbjp1fT1zKCkse2ZpbGVVcGxvYWRNZWRpYVR5cGVzOl99PWEoKTtpZigic3RyaW5nIj09dHlwZW9mIGkmJl8uc29tZSgocz0+aS5zdGFydHNXaXRoKHMpKSkpcmV0dXJuITA7Y29uc3Qgdz16ZS5NYXAuaXNNYXAobyk7aWYoIXcmJiFhcygpKG8pKXJldHVybiExO2NvbnN0IHg9dz9vLmdldCgiZm9ybWF0Iik6by5mb3JtYXQ7cmV0dXJuIHUuaGFzU2NoZW1hVHlwZShvLCJzdHJpbmciKSYmWyJiaW5hcnkiLCJieXRlIl0uaW5jbHVkZXMoeCl9KShzKTtyZXR1cm57Y29tcG9uZW50czp6SSx3cmFwQ29tcG9uZW50czpYSSxzdGF0ZVBsdWdpbnM6e3NwZWM6e3dyYXBTZWxlY3RvcnM6U2Usc2VsZWN0b3JzOnhlfSxhdXRoOnt3cmFwU2VsZWN0b3JzOndlfSxvYXMzOnthY3Rpb25zOnsuLi5QZX0scmVkdWNlcnM6a1Asc2VsZWN0b3JzOnsuLi5UZX19fSxmbjp7aXNGaWxlVXBsb2FkSW50ZW5kZWQ6byxpc0ZpbGVVcGxvYWRJbnRlbmRlZE9BUzMwOm99fX1jb25zdCB3ZWJob29rcz0oe3NwZWNTZWxlY3RvcnM6cyxnZXRDb21wb25lbnQ6b30pPT57Y29uc3QgaT1zLnNlbGVjdFdlYmhvb2tzT3BlcmF0aW9ucygpLGE9T2JqZWN0LmtleXMoaSksdT1vKCJPcGVyYXRpb25Db250YWluZXIiLCEwKTtyZXR1cm4gMD09PWEubGVuZ3RoP251bGw6UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJ3ZWJob29rcyJ9LFJlLmNyZWF0ZUVsZW1lbnQoImgyIixudWxsLCJXZWJob29rcyIpLGEubWFwKChzPT5SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6YCR7c30td2ViaG9va2B9LGlbc10ubWFwKChvPT5SZS5jcmVhdGVFbGVtZW50KHUse2tleTpgJHtzfS0ke28ubWV0aG9kfS13ZWJob29rYCxvcDpvLm9wZXJhdGlvbix0YWc6IndlYmhvb2tzIixtZXRob2Q6by5tZXRob2QscGF0aDpzLHNwZWNQYXRoOigwLHplLkxpc3QpKG8uc3BlY1BhdGgpLGFsbG93VHJ5SXRPdXQ6ITF9KSkpKSkpKX0sb2FzMzFfY29tcG9uZW50c19saWNlbnNlPSh7Z2V0Q29tcG9uZW50OnMsc3BlY1NlbGVjdG9yczpvfSk9Pntjb25zdCBpPW8uc2VsZWN0TGljZW5zZU5hbWVGaWVsZCgpLGE9by5zZWxlY3RMaWNlbnNlVXJsKCksdT1zKCJMaW5rIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaW5mb19fbGljZW5zZSJ9LGE/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJpbmZvX19saWNlbnNlX191cmwifSxSZS5jcmVhdGVFbGVtZW50KHUse3RhcmdldDoiX2JsYW5rIixocmVmOnNhbml0aXplVXJsKGEpfSxpKSk6UmUuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxpKSl9LG9hczMxX2NvbXBvbmVudHNfY29udGFjdD0oe2dldENvbXBvbmVudDpzLHNwZWNTZWxlY3RvcnM6b30pPT57Y29uc3QgaT1vLnNlbGVjdENvbnRhY3ROYW1lRmllbGQoKSxhPW8uc2VsZWN0Q29udGFjdFVybCgpLHU9by5zZWxlY3RDb250YWN0RW1haWxGaWVsZCgpLF89cygiTGluayIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm9fX2NvbnRhY3QifSxhJiZSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudChfLHtocmVmOnNhbml0aXplVXJsKGEpLHRhcmdldDoiX2JsYW5rIn0saSwiIC0gV2Vic2l0ZSIpKSx1JiZSZS5jcmVhdGVFbGVtZW50KF8se2hyZWY6c2FuaXRpemVVcmwoYG1haWx0bzoke3V9YCl9LGE/YFNlbmQgZW1haWwgdG8gJHtpfWA6YENvbnRhY3QgJHtpfWApKX0sb2FzMzFfY29tcG9uZW50c19pbmZvPSh7Z2V0Q29tcG9uZW50OnMsc3BlY1NlbGVjdG9yczpvfSk9Pntjb25zdCBpPW8udmVyc2lvbigpLGE9by51cmwoKSx1PW8uYmFzZVBhdGgoKSxfPW8uaG9zdCgpLHc9by5zZWxlY3RJbmZvU3VtbWFyeUZpZWxkKCkseD1vLnNlbGVjdEluZm9EZXNjcmlwdGlvbkZpZWxkKCksQz1vLnNlbGVjdEluZm9UaXRsZUZpZWxkKCksaj1vLnNlbGVjdEluZm9UZXJtc09mU2VydmljZVVybCgpLEw9by5zZWxlY3RFeHRlcm5hbERvY3NVcmwoKSxCPW8uc2VsZWN0RXh0ZXJuYWxEb2NzRGVzY3JpcHRpb25GaWVsZCgpLCQ9by5jb250YWN0KCksVj1vLmxpY2Vuc2UoKSxVPXMoIk1hcmtkb3duIiwhMCksej1zKCJMaW5rIiksWT1zKCJWZXJzaW9uU3RhbXAiKSxaPXMoIk9wZW5BUElWZXJzaW9uIiksZWU9cygiSW5mb1VybCIpLGllPXMoIkluZm9CYXNlUGF0aCIpLGFlPXMoIkxpY2Vuc2UiLCEwKSxjZT1zKCJDb250YWN0IiwhMCksbGU9cygiSnNvblNjaGVtYURpYWxlY3QiLCEwKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJpbmZvIn0sUmUuY3JlYXRlRWxlbWVudCgiaGdyb3VwIix7Y2xhc3NOYW1lOiJtYWluIn0sUmUuY3JlYXRlRWxlbWVudCgiaDIiLHtjbGFzc05hbWU6InRpdGxlIn0sQyxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLGkmJlJlLmNyZWF0ZUVsZW1lbnQoWSx7dmVyc2lvbjppfSksUmUuY3JlYXRlRWxlbWVudChaLHtvYXNWZXJzaW9uOiIzLjEifSkpKSwoX3x8dSkmJlJlLmNyZWF0ZUVsZW1lbnQoaWUse2hvc3Q6XyxiYXNlUGF0aDp1fSksYSYmUmUuY3JlYXRlRWxlbWVudChlZSx7Z2V0Q29tcG9uZW50OnMsdXJsOmF9KSksdyYmUmUuY3JlYXRlRWxlbWVudCgicCIse2NsYXNzTmFtZToiaW5mb19fc3VtbWFyeSJ9LHcpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaW5mb19fZGVzY3JpcHRpb24gZGVzY3JpcHRpb24ifSxSZS5jcmVhdGVFbGVtZW50KFUse3NvdXJjZTp4fSkpLGomJlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaW5mb19fdG9zIn0sUmUuY3JlYXRlRWxlbWVudCh6LHt0YXJnZXQ6Il9ibGFuayIsaHJlZjpzYW5pdGl6ZVVybChqKX0sIlRlcm1zIG9mIHNlcnZpY2UiKSksJC5zaXplPjAmJlJlLmNyZWF0ZUVsZW1lbnQoY2UsbnVsbCksVi5zaXplPjAmJlJlLmNyZWF0ZUVsZW1lbnQoYWUsbnVsbCksTCYmUmUuY3JlYXRlRWxlbWVudCh6LHtjbGFzc05hbWU6ImluZm9fX2V4dGRvY3MiLHRhcmdldDoiX2JsYW5rIixocmVmOnNhbml0aXplVXJsKEwpfSxCfHxMKSxSZS5jcmVhdGVFbGVtZW50KGxlLG51bGwpKX0sanNvbl9zY2hlbWFfZGlhbGVjdD0oe2dldENvbXBvbmVudDpzLHNwZWNTZWxlY3RvcnM6b30pPT57Y29uc3QgaT1vLnNlbGVjdEpzb25TY2hlbWFEaWFsZWN0RmllbGQoKSxhPW8uc2VsZWN0SnNvblNjaGVtYURpYWxlY3REZWZhdWx0KCksdT1zKCJMaW5rIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoUmUuRnJhZ21lbnQsbnVsbCxpJiZpPT09YSYmUmUuY3JlYXRlRWxlbWVudCgicCIse2NsYXNzTmFtZToiaW5mb19fanNvbnNjaGVtYWRpYWxlY3QifSwiSlNPTiBTY2hlbWEgZGlhbGVjdDoiLCIgIixSZS5jcmVhdGVFbGVtZW50KHUse3RhcmdldDoiX2JsYW5rIixocmVmOnNhbml0aXplVXJsKGkpfSxpKSksaSYmaSE9PWEmJlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZXJyb3Itd3JhcHBlciJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibm8tbWFyZ2luIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvcnMifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImVycm9ycy13cmFwcGVyIn0sUmUuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6ImNlbnRlciJ9LCJXYXJuaW5nIiksUmUuY3JlYXRlRWxlbWVudCgicCIse2NsYXNzTmFtZToibWVzc2FnZSJ9LFJlLmNyZWF0ZUVsZW1lbnQoInN0cm9uZyIsbnVsbCwiT3BlbkFQSS5qc29uU2NoZW1hRGlhbGVjdCIpLCIgZmllbGQgY29udGFpbnMgYSB2YWx1ZSBkaWZmZXJlbnQgZnJvbSB0aGUgZGVmYXVsdCB2YWx1ZSBvZiIsIiAiLFJlLmNyZWF0ZUVsZW1lbnQodSx7dGFyZ2V0OiJfYmxhbmsiLGhyZWY6YX0sYSksIi4gVmFsdWVzIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IG9uZSBhcmUgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQuIFBsZWFzZSBlaXRoZXIgb21pdCB0aGUgZmllbGQgb3IgcHJvdmlkZSBpdCB3aXRoIHRoZSBkZWZhdWx0IHZhbHVlLiIpKSkpKSl9LHZlcnNpb25fcHJhZ21hX2ZpbHRlcj0oe2J5cGFzczpzLGlzU3dhZ2dlcjI6byxpc09BUzM6aSxpc09BUzMxOmEsYWxzb1Nob3c6dSxjaGlsZHJlbjpffSk9PnM/UmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLF8pOm8mJihpfHxhKT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InZlcnNpb24tcHJhZ21hIn0sdSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InZlcnNpb24tcHJhZ21hX19tZXNzYWdlIHZlcnNpb24tcHJhZ21hX19tZXNzYWdlLS1hbWJpZ3VvdXMifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiaDMiLG51bGwsIlVuYWJsZSB0byByZW5kZXIgdGhpcyBkZWZpbml0aW9uIiksUmUuY3JlYXRlRWxlbWVudCgicCIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJzd2FnZ2VyIiksIiBhbmQgIixSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJvcGVuYXBpIiksIiBmaWVsZHMgY2Fubm90IGJlIHByZXNlbnQgaW4gdGhlIHNhbWUgU3dhZ2dlciBvciBPcGVuQVBJIGRlZmluaXRpb24uIFBsZWFzZSByZW1vdmUgb25lIG9mIHRoZSBmaWVsZHMuIiksUmUuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiU3VwcG9ydGVkIHZlcnNpb24gZmllbGRzIGFyZSAiLFJlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsJ3N3YWdnZXI6ICIyLjAiJyksIiBhbmQgdGhvc2UgdGhhdCBtYXRjaCAiLFJlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIm9wZW5hcGk6IDMueC55IiksIiAoZm9yIGV4YW1wbGUsIiwiICIsUmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwib3BlbmFwaTogMy4xLjAiKSwiKS4iKSkpKTpvfHxpfHxhP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxfKTpSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InZlcnNpb24tcHJhZ21hIn0sdSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InZlcnNpb24tcHJhZ21hX19tZXNzYWdlIHZlcnNpb24tcHJhZ21hX19tZXNzYWdlLS1taXNzaW5nIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImgzIixudWxsLCJVbmFibGUgdG8gcmVuZGVyIHRoaXMgZGVmaW5pdGlvbiIpLFJlLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIlRoZSBwcm92aWRlZCBkZWZpbml0aW9uIGRvZXMgbm90IHNwZWNpZnkgYSB2YWxpZCB2ZXJzaW9uIGZpZWxkLiIpLFJlLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIlBsZWFzZSBpbmRpY2F0ZSBhIHZhbGlkIFN3YWdnZXIgb3IgT3BlbkFQSSB2ZXJzaW9uIGZpZWxkLiBTdXBwb3J0ZWQgdmVyc2lvbiBmaWVsZHMgYXJlICIsUmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwnc3dhZ2dlcjogIjIuMCInKSwiIGFuZCB0aG9zZSB0aGF0IG1hdGNoICIsUmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwib3BlbmFwaTogMy54LnkiKSwiIChmb3IgZXhhbXBsZSwiLCIgIixSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJvcGVuYXBpOiAzLjEuMCIpLCIpLiIpKSkpLGdldE1vZGVsTmFtZT1zPT4ic3RyaW5nIj09dHlwZW9mIHMmJnMuaW5jbHVkZXMoIiMvY29tcG9uZW50cy9zY2hlbWFzLyIpPyhzPT57Y29uc3Qgbz1zLnJlcGxhY2UoL34xL2csIi8iKS5yZXBsYWNlKC9+MC9nLCJ+Iik7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQobyl9Y2F0Y2h7cmV0dXJuIG99fSkocy5yZXBsYWNlKC9eLiojXC9jb21wb25lbnRzXC9zY2hlbWFzXC8vLCIiKSk6bnVsbCxPUD0oMCxSZS5mb3J3YXJkUmVmKSgoKHtzY2hlbWE6cyxnZXRDb21wb25lbnQ6byxvblRvZ2dsZTppPSgpPT57fSxzcGVjUGF0aDphfSx1KT0+e2NvbnN0IF89bygiSlNPTlNjaGVtYTIwMjAxMiIpLHc9Z2V0TW9kZWxOYW1lKHMuZ2V0KCIkJHJlZiIpKSx4PSgwLFJlLnVzZUNhbGxiYWNrKSgoKHMsbyk9PntpKHcsbyl9KSxbdyxpXSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoXyx7bmFtZTp3LHNjaGVtYTpzLnRvSlMoKSxyZWY6dSxvbkV4cGFuZDp4LGlkZW50aWZpZXI6YS50b0pTKCkuam9pbigiXyIpfSl9KSksQ1A9T1AsbW9kZWxzPSh7c3BlY0FjdGlvbnM6cyxzcGVjU2VsZWN0b3JzOm8sbGF5b3V0U2VsZWN0b3JzOmksbGF5b3V0QWN0aW9uczphLGdldENvbXBvbmVudDp1LGdldENvbmZpZ3M6Xyxmbjp3fSk9Pntjb25zdCB4PW8uc2VsZWN0U2NoZW1hcygpLEM9T2JqZWN0LmtleXMoeCkubGVuZ3RoPjAsaj1bImNvbXBvbmVudHMiLCJzY2hlbWFzIl0se2RvY0V4cGFuc2lvbjpMLGRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aDpCfT1fKCksJD1CPjAmJiJub25lIiE9PUwsVj1pLmlzU2hvd24oaiwkKSxVPXUoIkNvbGxhcHNlIiksej11KCJKU09OU2NoZW1hMjAyMDEyIiksWT11KCJBcnJvd1VwSWNvbiIpLFo9dSgiQXJyb3dEb3duSWNvbiIpLHtnZXRUaXRsZTplZX09dy5qc29uU2NoZW1hMjAyMDEyLnVzZUZuKCk7KDAsUmUudXNlRWZmZWN0KSgoKCk9Pntjb25zdCBpPVYmJkI+MSxhPW51bGwhPW8uc3BlY1Jlc29sdmVkU3VidHJlZShqKTtpJiYhYSYmcy5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKGopfSksW1YsQl0pO2NvbnN0IGllPSgwLFJlLnVzZUNhbGxiYWNrKSgoKCk9PnthLnNob3coaiwhVil9KSxbVl0pLGFlPSgwLFJlLnVzZUNhbGxiYWNrKSgocz0+e251bGwhPT1zJiZhLnJlYWR5VG9TY3JvbGwoaixzKX0pLFtdKSxoYW5kbGVKU09OU2NoZW1hMjAyMDEyUmVmPXM9Pm89PntudWxsIT09byYmYS5yZWFkeVRvU2Nyb2xsKFsuLi5qLHNdLG8pfSxoYW5kbGVKU09OU2NoZW1hMjAyMDEyRXhwYW5kPWk9PihhLHUpPT57aWYodSl7Y29uc3QgYT1bLi4uaixpXTtudWxsIT1vLnNwZWNSZXNvbHZlZFN1YnRyZWUoYSl8fHMucmVxdWVzdFJlc29sdmVkU3VidHJlZShbLi4uaixpXSl9fTtyZXR1cm4hQ3x8QjwwP251bGw6UmUuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIse2NsYXNzTmFtZTpKbigpKCJtb2RlbHMiLHsiaXMtb3BlbiI6Vn0pLHJlZjphZX0sUmUuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7ImFyaWEtZXhwYW5kZWQiOlYsY2xhc3NOYW1lOiJtb2RlbHMtY29udHJvbCIsb25DbGljazppZX0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCwiU2NoZW1hcyIpLFY/UmUuY3JlYXRlRWxlbWVudChZLG51bGwpOlJlLmNyZWF0ZUVsZW1lbnQoWixudWxsKSkpLFJlLmNyZWF0ZUVsZW1lbnQoVSx7aXNPcGVuZWQ6Vn0sT2JqZWN0LmVudHJpZXMoeCkubWFwKCgoW3Msb10pPT57Y29uc3QgaT1lZShvLHtsb29rdXA6ImJhc2ljIn0pfHxzO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KHose2tleTpzLHJlZjpoYW5kbGVKU09OU2NoZW1hMjAyMDEyUmVmKHMpLHNjaGVtYTpvLG5hbWU6aSxvbkV4cGFuZDpoYW5kbGVKU09OU2NoZW1hMjAyMDEyRXhwYW5kKHMpfSl9KSkpKX0sbXV0dWFsX3Rsc19hdXRoPSh7c2NoZW1hOnMsZ2V0Q29tcG9uZW50Om8sbmFtZTppLGF1dGhTZWxlY3RvcnM6YX0pPT57Y29uc3QgdT1vKCJKdW1wVG9QYXRoIiwhMCksXz1hLnNlbGVjdEF1dGhQYXRoKGkpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsaSwiIChtdXR1YWxUTFMpICIsUmUuY3JlYXRlRWxlbWVudCh1LHtwYXRoOl99KSksUmUuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiTXV0dWFsIFRMUyBpcyByZXF1aXJlZCBieSB0aGlzIEFQSS9PcGVyYXRpb24uIENlcnRpZmljYXRlcyBhcmUgbWFuYWdlZCB2aWEgeW91ciBPcGVyYXRpbmcgU3lzdGVtIGFuZC9vciB5b3VyIGJyb3dzZXIuIiksUmUuY3JlYXRlRWxlbWVudCgicCIsbnVsbCxzLmdldCgiZGVzY3JpcHRpb24iKSkpfTtjbGFzcyBhdXRoc19BdXRocyBleHRlbmRzIFJlLkNvbXBvbmVudHtjb25zdHJ1Y3RvcihzLG8pe3N1cGVyKHMsbyksdGhpcy5zdGF0ZT17fX1vbkF1dGhDaGFuZ2U9cz0+e2xldHtuYW1lOm99PXM7dGhpcy5zZXRTdGF0ZSh7W29dOnN9KX07c3VibWl0QXV0aD1zPT57cy5wcmV2ZW50RGVmYXVsdCgpO2xldHthdXRoQWN0aW9uczpvfT10aGlzLnByb3BzO28uYXV0aG9yaXplV2l0aFBlcnNpc3RPcHRpb24odGhpcy5zdGF0ZSl9O2xvZ291dENsaWNrPXM9PntzLnByZXZlbnREZWZhdWx0KCk7bGV0e2F1dGhBY3Rpb25zOm8sZGVmaW5pdGlvbnM6aX09dGhpcy5wcm9wcyxhPWkubWFwKCgocyxvKT0+bykpLnRvQXJyYXkoKTt0aGlzLnNldFN0YXRlKGEucmVkdWNlKCgocyxvKT0+KHNbb109IiIscykpLHt9KSksby5sb2dvdXRXaXRoUGVyc2lzdE9wdGlvbihhKX07Y2xvc2U9cz0+e3MucHJldmVudERlZmF1bHQoKTtsZXR7YXV0aEFjdGlvbnM6b309dGhpcy5wcm9wcztvLnNob3dEZWZpbml0aW9ucyghMSl9O3JlbmRlcigpe2xldHtkZWZpbml0aW9uczpzLGdldENvbXBvbmVudDpvLGF1dGhTZWxlY3RvcnM6aSxlcnJTZWxlY3RvcnM6YX09dGhpcy5wcm9wcztjb25zdCB1PW8oIkF1dGhJdGVtIiksXz1vKCJvYXV0aDIiLCEwKSx3PW8oIkJ1dHRvbiIpLHg9aS5hdXRob3JpemVkKCksQz1zLmZpbHRlcigoKHMsbyk9PiEheC5nZXQobykpKSxqPXMuZmlsdGVyKChzPT4ib2F1dGgyIiE9PXMuZ2V0KCJ0eXBlIikmJiJtdXR1YWxUTFMiIT09cy5nZXQoInR5cGUiKSkpLEw9cy5maWx0ZXIoKHM9PiJvYXV0aDIiPT09cy5nZXQoInR5cGUiKSkpLEI9cy5maWx0ZXIoKHM9PiJtdXR1YWxUTFMiPT09cy5nZXQoInR5cGUiKSkpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImF1dGgtY29udGFpbmVyIn0sai5zaXplPjAmJlJlLmNyZWF0ZUVsZW1lbnQoImZvcm0iLHtvblN1Ym1pdDp0aGlzLnN1Ym1pdEF1dGh9LGoubWFwKCgocyxfKT0+UmUuY3JlYXRlRWxlbWVudCh1LHtrZXk6XyxzY2hlbWE6cyxuYW1lOl8sZ2V0Q29tcG9uZW50Om8sb25BdXRoQ2hhbmdlOnRoaXMub25BdXRoQ2hhbmdlLGF1dGhvcml6ZWQ6eCxlcnJTZWxlY3RvcnM6YSxhdXRoU2VsZWN0b3JzOml9KSkpLnRvQXJyYXkoKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImF1dGgtYnRuLXdyYXBwZXIifSxqLnNpemU9PT1DLnNpemU/UmUuY3JlYXRlRWxlbWVudCh3LHtjbGFzc05hbWU6ImJ0biBtb2RhbC1idG4gYXV0aCIsb25DbGljazp0aGlzLmxvZ291dENsaWNrLCJhcmlhLWxhYmVsIjoiUmVtb3ZlIGF1dGhvcml6YXRpb24ifSwiTG9nb3V0Iik6UmUuY3JlYXRlRWxlbWVudCh3LHt0eXBlOiJzdWJtaXQiLGNsYXNzTmFtZToiYnRuIG1vZGFsLWJ0biBhdXRoIGF1dGhvcml6ZSIsImFyaWEtbGFiZWwiOiJBcHBseSBjcmVkZW50aWFscyJ9LCJBdXRob3JpemUiKSxSZS5jcmVhdGVFbGVtZW50KHcse2NsYXNzTmFtZToiYnRuIG1vZGFsLWJ0biBhdXRoIGJ0bi1kb25lIixvbkNsaWNrOnRoaXMuY2xvc2V9LCJDbG9zZSIpKSksTC5zaXplPjA/UmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToic2NvcGUtZGVmIn0sUmUuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiU2NvcGVzIGFyZSB1c2VkIHRvIGdyYW50IGFuIGFwcGxpY2F0aW9uIGRpZmZlcmVudCBsZXZlbHMgb2YgYWNjZXNzIHRvIGRhdGEgb24gYmVoYWxmIG9mIHRoZSBlbmQgdXNlci4gRWFjaCBBUEkgbWF5IGRlY2xhcmUgb25lIG9yIG1vcmUgc2NvcGVzLiIpLFJlLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIkFQSSByZXF1aXJlcyB0aGUgZm9sbG93aW5nIHNjb3Blcy4gU2VsZWN0IHdoaWNoIG9uZXMgeW91IHdhbnQgdG8gZ3JhbnQgdG8gU3dhZ2dlciBVSS4iKSkscy5maWx0ZXIoKHM9PiJvYXV0aDIiPT09cy5nZXQoInR5cGUiKSkpLm1hcCgoKHMsbyk9PlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleTpvfSxSZS5jcmVhdGVFbGVtZW50KF8se2F1dGhvcml6ZWQ6eCxzY2hlbWE6cyxuYW1lOm99KSkpKS50b0FycmF5KCkpOm51bGwsQi5zaXplPjAmJlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxCLm1hcCgoKHMsXyk9PlJlLmNyZWF0ZUVsZW1lbnQodSx7a2V5Ol8sc2NoZW1hOnMsbmFtZTpfLGdldENvbXBvbmVudDpvLG9uQXV0aENoYW5nZTp0aGlzLm9uQXV0aENoYW5nZSxhdXRob3JpemVkOngsZXJyU2VsZWN0b3JzOmEsYXV0aFNlbGVjdG9yczppfSkpKS50b0FycmF5KCkpKX19Y29uc3QgQVA9YXV0aHNfQXV0aHMsaXNPQVMzMT1zPT57Y29uc3Qgbz1zLmdldCgib3BlbmFwaSIpO3JldHVybiJzdHJpbmciPT10eXBlb2YgbyYmL14zXC4xXC4oPzpbMS05XVxkKnwwKSQvLnRlc3Qobyl9LGZuX2NyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yPXM9PihvLC4uLmkpPT5hPT57aWYoYS5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLmlzT0FTMzEoKSl7Y29uc3QgdT1zKG8sLi4uaSk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHU/dShhKTp1fXJldHVybiBudWxsfSxjcmVhdGVPbmx5T0FTMzFTZWxlY3RvcldyYXBwZXI9cz0+KG8saSk9PihhLC4uLnUpPT57aWYoaS5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLmlzT0FTMzEoKSl7Y29uc3QgXz1zKGEsLi4udSk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIF8/XyhvLGkpOl99cmV0dXJuIG8oLi4udSl9LGZuX2NyZWF0ZVN5c3RlbVNlbGVjdG9yPXM9PihvLC4uLmkpPT5hPT57Y29uc3QgdT1zKG8sYSwuLi5pKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdT91KGEpOnV9LGNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXI9cz0+KG8saSk9PmE9Pmkuc3BlY1NlbGVjdG9ycy5pc09BUzMxKCk/UmUuY3JlYXRlRWxlbWVudChzLE1uKCkoe30sYSx7b3JpZ2luYWxDb21wb25lbnQ6byxnZXRTeXN0ZW06aS5nZXRTeXN0ZW19KSk6UmUuY3JlYXRlRWxlbWVudChvLGEpLHdyYXBPQVMzMUZuPShzLG8pPT57Y29uc3R7Zm46aSxzcGVjU2VsZWN0b3JzOmF9PW87cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhzKS5tYXAoKChbcyxvXSk9Pntjb25zdCB1PWlbc107cmV0dXJuW3MsKC4uLnMpPT5hLmlzT0FTMzEoKT9vKC4uLnMpOiJmdW5jdGlvbiI9PXR5cGVvZiB1P3UoLi4ucyk6dm9pZCAwXX0pKSl9LGpQPWNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoKCh7Z2V0U3lzdGVtOnN9KT0+e2NvbnN0IG89cygpLmdldENvbXBvbmVudCgiT0FTMzFMaWNlbnNlIiwhMCk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQobyxudWxsKX0pKSxJUD1jcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyKCgoe2dldFN5c3RlbTpzfSk9Pntjb25zdCBvPXMoKS5nZXRDb21wb25lbnQoIk9BUzMxQ29udGFjdCIsITApO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KG8sbnVsbCl9KSksUFA9Y3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcigoKHtnZXRTeXN0ZW06c30pPT57Y29uc3Qgbz1zKCkuZ2V0Q29tcG9uZW50KCJPQVMzMUluZm8iLCEwKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChvLG51bGwpfSkpLGdldFByb3BlcnRpZXM9KHMse2luY2x1ZGVSZWFkT25seTpvLGluY2x1ZGVXcml0ZU9ubHk6aX0pPT57aWYoIXM/LnByb3BlcnRpZXMpcmV0dXJue307Y29uc3QgYT1PYmplY3QuZW50cmllcyhzLnByb3BlcnRpZXMpLmZpbHRlcigoKFssc10pPT4oISghMD09PXM/LnJlYWRPbmx5KXx8bykmJighKCEwPT09cz8ud3JpdGVPbmx5KXx8aSkpKTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKGEpfSxtYWtlR2V0U2NoZW1hS2V5d29yZHM9cz0+e2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBzKXJldHVybiBudWxsO2NvbnN0IG89cygpO3JldHVybigpPT5bLi4ubywiZGlzY3JpbWluYXRvciIsInhtbCIsImV4dGVybmFsRG9jcyIsImV4YW1wbGUiLCIkJHJlZiJdfSxUUD1jcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyKCgoe2dldFN5c3RlbTpzLC4uLm99KT0+e2NvbnN0IGk9cygpLHtnZXRDb21wb25lbnQ6YSxmbjp1LGdldENvbmZpZ3M6X309aSx3PV8oKSx4PWEoIk9BUzMxTW9kZWwiKSxDPWEoIndpdGhKU09OU2NoZW1hMjAyMDEyU3lzdGVtQ29udGV4dCIpO3JldHVybiBUUC5Nb2RlbFdpdGhKU09OU2NoZW1hQ29udGV4dD8/PUMoeCx7Y29uZmlnOntkZWZhdWx0JHNjaGVtYToiaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvMy4xL2RpYWxlY3QvYmFzZSIsZGVmYXVsdEV4cGFuZGVkTGV2ZWxzOncuZGVmYXVsdE1vZGVsRXhwYW5kRGVwdGgsaW5jbHVkZVJlYWRPbmx5Om8uaW5jbHVkZVJlYWRPbmx5LGluY2x1ZGVXcml0ZU9ubHk6by5pbmNsdWRlV3JpdGVPbmx5fSxmbjp7Z2V0UHJvcGVydGllczp1Lmpzb25TY2hlbWEyMDIwMTIuZ2V0UHJvcGVydGllcyxpc0V4cGFuZGFibGU6dS5qc29uU2NoZW1hMjAyMDEyLmlzRXhwYW5kYWJsZSxnZXRTY2hlbWFLZXl3b3JkczptYWtlR2V0U2NoZW1hS2V5d29yZHModS5qc29uU2NoZW1hMjAyMDEyLmdldFNjaGVtYUtleXdvcmRzKX19KSxSZS5jcmVhdGVFbGVtZW50KFRQLk1vZGVsV2l0aEpTT05TY2hlbWFDb250ZXh0LG8pfSkpLE5QPVRQLE1QPWNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoKCh7Z2V0U3lzdGVtOnN9KT0+e2NvbnN0e2dldENvbXBvbmVudDpvLGZuOmksZ2V0Q29uZmlnczphfT1zKCksdT1hKCk7aWYoTVAuTW9kZWxzV2l0aEpTT05TY2hlbWFDb250ZXh0KXJldHVybiBSZS5jcmVhdGVFbGVtZW50KE1QLk1vZGVsc1dpdGhKU09OU2NoZW1hQ29udGV4dCxudWxsKTtjb25zdCBfPW8oIk9BUzMxTW9kZWxzIiwhMCksdz1vKCJ3aXRoSlNPTlNjaGVtYTIwMjAxMlN5c3RlbUNvbnRleHQiKTtyZXR1cm4gTVAuTW9kZWxzV2l0aEpTT05TY2hlbWFDb250ZXh0Pz89dyhfLHtjb25maWc6e2RlZmF1bHQkc2NoZW1hOiJodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy8zLjEvZGlhbGVjdC9iYXNlIixkZWZhdWx0RXhwYW5kZWRMZXZlbHM6dS5kZWZhdWx0TW9kZWxzRXhwYW5kRGVwdGgtMSxpbmNsdWRlUmVhZE9ubHk6ITAsaW5jbHVkZVdyaXRlT25seTohMH0sZm46e2dldFByb3BlcnRpZXM6aS5qc29uU2NoZW1hMjAyMDEyLmdldFByb3BlcnRpZXMsaXNFeHBhbmRhYmxlOmkuanNvblNjaGVtYTIwMjAxMi5pc0V4cGFuZGFibGUsZ2V0U2NoZW1hS2V5d29yZHM6bWFrZUdldFNjaGVtYUtleXdvcmRzKGkuanNvblNjaGVtYTIwMjAxMi5nZXRTY2hlbWFLZXl3b3Jkcyl9fSksUmUuY3JlYXRlRWxlbWVudChNUC5Nb2RlbHNXaXRoSlNPTlNjaGVtYUNvbnRleHQsbnVsbCl9KSk7TVAuTW9kZWxzV2l0aEpTT05TY2hlbWFDb250ZXh0PW51bGw7Y29uc3QgUlA9TVAsd3JhcF9jb21wb25lbnRzX3ZlcnNpb25fcHJhZ21hX2ZpbHRlcj0ocyxvKT0+cz0+e2NvbnN0IGk9by5zcGVjU2VsZWN0b3JzLmlzT0FTMzEoKSxhPW8uZ2V0Q29tcG9uZW50KCJPQVMzMVZlcnNpb25QcmFnbWFGaWx0ZXIiKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChhLE1uKCkoe2lzT0FTMzE6aX0scykpfSxEUD1jcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyKCgoe29yaWdpbmFsQ29tcG9uZW50OnMsLi4ub30pPT57Y29uc3R7Z2V0Q29tcG9uZW50Omksc2NoZW1hOmEsbmFtZTp1fT1vLF89aSgiTXV0dWFsVExTQXV0aCIsITApO3JldHVybiJtdXR1YWxUTFMiPT09YS5nZXQoInR5cGUiKT9SZS5jcmVhdGVFbGVtZW50KF8se3NjaGVtYTphLG5hbWU6dX0pOlJlLmNyZWF0ZUVsZW1lbnQocyxvKX0pKSxMUD1EUCxGUD1jcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyKCgoe2dldFN5c3RlbTpzLC4uLm99KT0+e2NvbnN0IGk9cygpLmdldENvbXBvbmVudCgiT0FTMzFBdXRocyIsITApO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KGksbyl9KSksQlA9KDAsemUuTWFwKSgpLCRQPVZ0KCgocyxvKT0+by5zcGVjU2VsZWN0b3JzLnNwZWNKc29uKCkpLGlzT0FTMzEpLHNlbGVjdG9yc193ZWJob29rcz0oKT0+cz0+e2NvbnN0IG89cy5zcGVjU2VsZWN0b3JzLnNwZWNKc29uKCkuZ2V0KCJ3ZWJob29rcyIpO3JldHVybiB6ZS5NYXAuaXNNYXAobyk/bzpCUH0scVA9VnQoWyhzLG8pPT5vLnNwZWNTZWxlY3RvcnMud2ViaG9va3MoKSwocyxvKT0+by5zcGVjU2VsZWN0b3JzLnZhbGlkT3BlcmF0aW9uTWV0aG9kcygpLChzLG8pPT5vLnNwZWNTZWxlY3RvcnMuc3BlY1Jlc29sdmVkU3VidHJlZShbIndlYmhvb2tzIl0pXSwoKHMsbyk9PnMucmVkdWNlKCgocyxpLGEpPT57aWYoIXplLk1hcC5pc01hcChpKSlyZXR1cm4gcztjb25zdCB1PWkuZW50cnlTZXEoKS5maWx0ZXIoKChbc10pPT5vLmluY2x1ZGVzKHMpKSkubWFwKCgoW3Msb10pPT4oe29wZXJhdGlvbjooMCx6ZS5NYXApKHtvcGVyYXRpb246b30pLG1ldGhvZDpzLHBhdGg6YSxzcGVjUGF0aDpbIndlYmhvb2tzIixhLHNdfSkpKTtyZXR1cm4gcy5jb25jYXQodSl9KSwoMCx6ZS5MaXN0KSgpKS5ncm91cEJ5KChzPT5zLnBhdGgpKS5tYXAoKHM9PnMudG9BcnJheSgpKSkudG9PYmplY3QoKSkpLHNlbGVjdG9yc19saWNlbnNlPSgpPT5zPT57Y29uc3Qgbz1zLnNwZWNTZWxlY3RvcnMuaW5mbygpLmdldCgibGljZW5zZSIpO3JldHVybiB6ZS5NYXAuaXNNYXAobyk/bzpCUH0sc2VsZWN0TGljZW5zZU5hbWVGaWVsZD0oKT0+cz0+cy5zcGVjU2VsZWN0b3JzLmxpY2Vuc2UoKS5nZXQoIm5hbWUiLCJMaWNlbnNlIiksc2VsZWN0TGljZW5zZVVybEZpZWxkPSgpPT5zPT5zLnNwZWNTZWxlY3RvcnMubGljZW5zZSgpLmdldCgidXJsIiksVlA9VnQoWyhzLG8pPT5vLnNwZWNTZWxlY3RvcnMudXJsKCksKHMsbyk9Pm8ub2FzM1NlbGVjdG9ycy5zZWxlY3RlZFNlcnZlcigpLChzLG8pPT5vLnNwZWNTZWxlY3RvcnMuc2VsZWN0TGljZW5zZVVybEZpZWxkKCldLCgocyxvLGkpPT57aWYoaSlyZXR1cm4gc2FmZUJ1aWxkVXJsKGkscyx7c2VsZWN0ZWRTZXJ2ZXI6b30pfSkpLHNlbGVjdExpY2Vuc2VJZGVudGlmaWVyRmllbGQ9KCk9PnM9PnMuc3BlY1NlbGVjdG9ycy5saWNlbnNlKCkuZ2V0KCJpZGVudGlmaWVyIiksc2VsZWN0b3JzX2NvbnRhY3Q9KCk9PnM9Pntjb25zdCBvPXMuc3BlY1NlbGVjdG9ycy5pbmZvKCkuZ2V0KCJjb250YWN0Iik7cmV0dXJuIHplLk1hcC5pc01hcChvKT9vOkJQfSxzZWxlY3RDb250YWN0TmFtZUZpZWxkPSgpPT5zPT5zLnNwZWNTZWxlY3RvcnMuY29udGFjdCgpLmdldCgibmFtZSIsInRoZSBkZXZlbG9wZXIiKSxzZWxlY3RDb250YWN0RW1haWxGaWVsZD0oKT0+cz0+cy5zcGVjU2VsZWN0b3JzLmNvbnRhY3QoKS5nZXQoImVtYWlsIiksc2VsZWN0Q29udGFjdFVybEZpZWxkPSgpPT5zPT5zLnNwZWNTZWxlY3RvcnMuY29udGFjdCgpLmdldCgidXJsIiksVVA9VnQoWyhzLG8pPT5vLnNwZWNTZWxlY3RvcnMudXJsKCksKHMsbyk9Pm8ub2FzM1NlbGVjdG9ycy5zZWxlY3RlZFNlcnZlcigpLChzLG8pPT5vLnNwZWNTZWxlY3RvcnMuc2VsZWN0Q29udGFjdFVybEZpZWxkKCldLCgocyxvLGkpPT57aWYoaSlyZXR1cm4gc2FmZUJ1aWxkVXJsKGkscyx7c2VsZWN0ZWRTZXJ2ZXI6b30pfSkpLHNlbGVjdEluZm9UaXRsZUZpZWxkPSgpPT5zPT5zLnNwZWNTZWxlY3RvcnMuaW5mbygpLmdldCgidGl0bGUiKSxzZWxlY3RJbmZvU3VtbWFyeUZpZWxkPSgpPT5zPT5zLnNwZWNTZWxlY3RvcnMuaW5mbygpLmdldCgic3VtbWFyeSIpLHNlbGVjdEluZm9EZXNjcmlwdGlvbkZpZWxkPSgpPT5zPT5zLnNwZWNTZWxlY3RvcnMuaW5mbygpLmdldCgiZGVzY3JpcHRpb24iKSxzZWxlY3RJbmZvVGVybXNPZlNlcnZpY2VGaWVsZD0oKT0+cz0+cy5zcGVjU2VsZWN0b3JzLmluZm8oKS5nZXQoInRlcm1zT2ZTZXJ2aWNlIikselA9VnQoWyhzLG8pPT5vLnNwZWNTZWxlY3RvcnMudXJsKCksKHMsbyk9Pm8ub2FzM1NlbGVjdG9ycy5zZWxlY3RlZFNlcnZlcigpLChzLG8pPT5vLnNwZWNTZWxlY3RvcnMuc2VsZWN0SW5mb1Rlcm1zT2ZTZXJ2aWNlRmllbGQoKV0sKChzLG8saSk9PntpZihpKXJldHVybiBzYWZlQnVpbGRVcmwoaSxzLHtzZWxlY3RlZFNlcnZlcjpvfSl9KSksc2VsZWN0RXh0ZXJuYWxEb2NzRGVzY3JpcHRpb25GaWVsZD0oKT0+cz0+cy5zcGVjU2VsZWN0b3JzLmV4dGVybmFsRG9jcygpLmdldCgiZGVzY3JpcHRpb24iKSxzZWxlY3RFeHRlcm5hbERvY3NVcmxGaWVsZD0oKT0+cz0+cy5zcGVjU2VsZWN0b3JzLmV4dGVybmFsRG9jcygpLmdldCgidXJsIiksV1A9VnQoWyhzLG8pPT5vLnNwZWNTZWxlY3RvcnMudXJsKCksKHMsbyk9Pm8ub2FzM1NlbGVjdG9ycy5zZWxlY3RlZFNlcnZlcigpLChzLG8pPT5vLnNwZWNTZWxlY3RvcnMuc2VsZWN0RXh0ZXJuYWxEb2NzVXJsRmllbGQoKV0sKChzLG8saSk9PntpZihpKXJldHVybiBzYWZlQnVpbGRVcmwoaSxzLHtzZWxlY3RlZFNlcnZlcjpvfSl9KSksc2VsZWN0SnNvblNjaGVtYURpYWxlY3RGaWVsZD0oKT0+cz0+cy5zcGVjU2VsZWN0b3JzLnNwZWNKc29uKCkuZ2V0KCJqc29uU2NoZW1hRGlhbGVjdCIpLHNlbGVjdEpzb25TY2hlbWFEaWFsZWN0RGVmYXVsdD0oKT0+Imh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzLzMuMS9kaWFsZWN0L2Jhc2UiLEpQPVZ0KCgocyxvKT0+by5zcGVjU2VsZWN0b3JzLmRlZmluaXRpb25zKCkpLCgocyxvKT0+by5zcGVjU2VsZWN0b3JzLnNwZWNSZXNvbHZlZFN1YnRyZWUoWyJjb21wb25lbnRzIiwic2NoZW1hcyJdKSksKChzLG8pPT56ZS5NYXAuaXNNYXAocyk/emUuTWFwLmlzTWFwKG8pP09iamVjdC5lbnRyaWVzKHMudG9KUygpKS5yZWR1Y2UoKChzLFtpLGFdKT0+e2NvbnN0IHU9by5nZXQoaSk7cmV0dXJuIHNbaV09dT8udG9KUygpfHxhLHN9KSx7fSk6cy50b0pTKCk6e30pKSx3cmFwX3NlbGVjdG9yc19pc09BUzM9KHMsbyk9PihpLC4uLmEpPT5vLnNwZWNTZWxlY3RvcnMuaXNPQVMzMSgpfHxzKC4uLmEpLEhQPWNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yV3JhcHBlcigoKCk9PihzLG8pPT5vLm9hczMxU2VsZWN0b3JzLnNlbGVjdExpY2Vuc2VVcmwoKSkpLEtQPWNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yV3JhcHBlcigoKCk9PihzLG8pPT57Y29uc3QgaT1vLnNwZWNTZWxlY3RvcnMuc2VjdXJpdHlEZWZpbml0aW9ucygpO2xldCBhPXMoKTtyZXR1cm4gaT8oaS5lbnRyeVNlcSgpLmZvckVhY2goKChbcyxvXSk9Pntjb25zdCBpPW8/LmdldCgidHlwZSIpOyJtdXR1YWxUTFMiPT09aSYmKGE9YS5wdXNoKG5ldyB6ZS5NYXAoe1tzXTpvfSkpKX0pKSxhKTphfSkpLEdQPVZ0KFsocyxvKT0+by5zcGVjU2VsZWN0b3JzLnVybCgpLChzLG8pPT5vLm9hczNTZWxlY3RvcnMuc2VsZWN0ZWRTZXJ2ZXIoKSwocyxvKT0+by5zcGVjU2VsZWN0b3JzLnNlbGVjdExpY2Vuc2VVcmxGaWVsZCgpLChzLG8pPT5vLnNwZWNTZWxlY3RvcnMuc2VsZWN0TGljZW5zZUlkZW50aWZpZXJGaWVsZCgpXSwoKHMsbyxpLGEpPT5pP3NhZmVCdWlsZFVybChpLHMse3NlbGVjdGVkU2VydmVyOm99KTphP2BodHRwczovL3NwZHgub3JnL2xpY2Vuc2VzLyR7YX0uaHRtbGA6dm9pZCAwKSksa2V5d29yZHNfRXhhbXBsZT0oe3NjaGVtYTpzLGdldFN5c3RlbTpvfSk9Pntjb25zdHtmbjppLGdldENvbXBvbmVudDphfT1vKCkse2hhc0tleXdvcmQ6dX09aS5qc29uU2NoZW1hMjAyMDEyLnVzZUZuKCksXz1hKCJKU09OU2NoZW1hMjAyMDEySlNPTlZpZXdlciIpO3JldHVybiB1KHMsImV4YW1wbGUiKT9SZS5jcmVhdGVFbGVtZW50KF8se25hbWU6IkV4YW1wbGUiLHZhbHVlOnMuZXhhbXBsZSxjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWV4YW1wbGUifSk6bnVsbH0sa2V5d29yZHNfWG1sPSh7c2NoZW1hOnMsZ2V0U3lzdGVtOm99KT0+e2NvbnN0IGk9cz8ueG1sfHx7fSx7Zm46YSxnZXRDb21wb25lbnQ6dSxnZXRDb25maWdzOl99PW8oKSx7c2hvd0V4dGVuc2lvbnM6d309XygpLHt1c2VDb21wb25lbnQ6eCx1c2VJc0V4cGFuZGVkOkMsdXNlUGF0aDpqLHVzZUxldmVsOkx9PWEuanNvblNjaGVtYTIwMjAxMix7cGF0aDpCfT1qKCJ4bWwiKSx7aXNFeHBhbmRlZDokLHNldEV4cGFuZGVkOlYsc2V0Q29sbGFwc2VkOlV9PUMoInhtbCIpLFt6LFldPUwoKSxaPXc/Z2V0RXh0ZW5zaW9ucyhpKTpbXSxlZT0hIShpLm5hbWV8fGkubmFtZXNwYWNlfHxpLnByZWZpeHx8Wi5sZW5ndGg+MCksaWU9eCgiQWNjb3JkaW9uIiksYWU9eCgiRXhwYW5kRGVlcEJ1dHRvbiIpLGNlPXUoIk9wZW5BUEkzMUV4dGVuc2lvbnMiKSxsZT11KCJKU09OU2NoZW1hMjAyMDEyUGF0aENvbnRleHQiKSgpLHBlPXUoIkpTT05TY2hlbWEyMDIwMTJMZXZlbENvbnRleHQiKSgpLGRlPSgwLFJlLnVzZUNhbGxiYWNrKSgoKCk9PnskP1UoKTpWKCl9KSxbJCxWLFVdKSxmZT0oMCxSZS51c2VDYWxsYmFjaykoKChzLG8pPT57bz9WKHtkZWVwOiEwfSk6VSh7ZGVlcDohMH0pfSksW1YsVV0pO3JldHVybiAwPT09T2JqZWN0LmtleXMoaSkubGVuZ3RoP251bGw6UmUuY3JlYXRlRWxlbWVudChsZS5Qcm92aWRlcix7dmFsdWU6Qn0sUmUuY3JlYXRlRWxlbWVudChwZS5Qcm92aWRlcix7dmFsdWU6WX0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS14bWwiLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjp6fSxlZT9SZS5jcmVhdGVFbGVtZW50KFJlLkZyYWdtZW50LG51bGwsUmUuY3JlYXRlRWxlbWVudChpZSx7ZXhwYW5kZWQ6JCxvbkNoYW5nZTpkZX0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sIlhNTCIpKSxSZS5jcmVhdGVFbGVtZW50KGFlLHtleHBhbmRlZDokLG9uQ2xpY2s6ZmV9KSk6UmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sIlhNTCIpLCEwPT09aS5hdHRyaWJ1dGUmJlJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLW11dGVkIn0sImF0dHJpYnV0ZSIpLCEwPT09aS53cmFwcGVkJiZSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1tdXRlZCJ9LCJ3cmFwcGVkIiksUmUuY3JlYXRlRWxlbWVudCgic3Ryb25nIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5In0sIm9iamVjdCIpLFJlLmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOkpuKCkoImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4iLHsianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkIjohJH0pfSwkJiZSZS5jcmVhdGVFbGVtZW50KFJlLkZyYWdtZW50LG51bGwsaS5uYW1lJiZSZS5jcmVhdGVFbGVtZW50KCJsaSIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCJ9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCJuYW1lIiksUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxpLm5hbWUpKSksaS5uYW1lc3BhY2UmJlJlLmNyZWF0ZUVsZW1lbnQoImxpIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQifSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwibmFtZXNwYWNlIiksUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxpLm5hbWVzcGFjZSkpKSxpLnByZWZpeCYmUmUuY3JlYXRlRWxlbWVudCgibGkiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHkifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCJ9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCJwcmVmaXgiKSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeSJ9LGkucHJlZml4KSkpKSxaLmxlbmd0aD4wJiZSZS5jcmVhdGVFbGVtZW50KGNlLHtvcGVuQVBJU3BlY09iajppLG9wZW5BUElFeHRlbnNpb25zOlosZ2V0U3lzdGVtOm99KSkpKSl9LERpc2NyaW1pbmF0b3JfRGlzY3JpbWluYXRvck1hcHBpbmc9KHtkaXNjcmltaW5hdG9yOnN9KT0+e2NvbnN0IG89cz8ubWFwcGluZ3x8e307cmV0dXJuIDA9PT1PYmplY3Qua2V5cyhvKS5sZW5ndGg/bnVsbDpPYmplY3QuZW50cmllcyhvKS5tYXAoKChbcyxvXSk9PlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleTpgJHtzfS0ke299YCxjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCJ9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LHMpLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0sbykpKSl9LGtleXdvcmRzX0Rpc2NyaW1pbmF0b3JfRGlzY3JpbWluYXRvcj0oe3NjaGVtYTpzLGdldFN5c3RlbTpvfSk9Pntjb25zdCBpPXM/LmRpc2NyaW1pbmF0b3J8fHt9LHtmbjphLGdldENvbXBvbmVudDp1LGdldENvbmZpZ3M6X309bygpLHtzaG93RXh0ZW5zaW9uczp3fT1fKCkse3VzZUNvbXBvbmVudDp4LHVzZUlzRXhwYW5kZWQ6Qyx1c2VQYXRoOmosdXNlTGV2ZWw6TH09YS5qc29uU2NoZW1hMjAyMDEyLEI9ImRpc2NyaW1pbmF0b3IiLHtwYXRoOiR9PWooQikse2lzRXhwYW5kZWQ6VixzZXRFeHBhbmRlZDpVLHNldENvbGxhcHNlZDp6fT1DKEIpLFtZLFpdPUwoKSxlZT13P2dldEV4dGVuc2lvbnMoaSk6W10saWU9ISEoaS5tYXBwaW5nfHxlZS5sZW5ndGg+MCksYWU9eCgiQWNjb3JkaW9uIiksY2U9eCgiRXhwYW5kRGVlcEJ1dHRvbiIpLGxlPXUoIk9wZW5BUEkzMUV4dGVuc2lvbnMiKSxwZT11KCJKU09OU2NoZW1hMjAyMDEyUGF0aENvbnRleHQiKSgpLGRlPXUoIkpTT05TY2hlbWEyMDIwMTJMZXZlbENvbnRleHQiKSgpLGZlPSgwLFJlLnVzZUNhbGxiYWNrKSgoKCk9PntWP3ooKTpVKCl9KSxbVixVLHpdKSx5ZT0oMCxSZS51c2VDYWxsYmFjaykoKChzLG8pPT57bz9VKHtkZWVwOiEwfSk6eih7ZGVlcDohMH0pfSksW1Usel0pO3JldHVybiAwPT09T2JqZWN0LmtleXMoaSkubGVuZ3RoP251bGw6UmUuY3JlYXRlRWxlbWVudChwZS5Qcm92aWRlcix7dmFsdWU6JH0sUmUuY3JlYXRlRWxlbWVudChkZS5Qcm92aWRlcix7dmFsdWU6Wn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kaXNjcmltaW5hdG9yIiwiZGF0YS1qc29uLXNjaGVtYS1sZXZlbCI6WX0saWU/UmUuY3JlYXRlRWxlbWVudChSZS5GcmFnbWVudCxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoYWUse2V4cGFuZGVkOlYsb25DaGFuZ2U6ZmV9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCJEaXNjcmltaW5hdG9yIikpLFJlLmNyZWF0ZUVsZW1lbnQoY2Use2V4cGFuZGVkOlYsb25DbGljazp5ZX0pKTpSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiRGlzY3JpbWluYXRvciIpLGkucHJvcGVydHlOYW1lJiZSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1tdXRlZCJ9LGkucHJvcGVydHlOYW1lKSxSZS5jcmVhdGVFbGVtZW50KCJzdHJvbmciLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnkifSwib2JqZWN0IiksUmUuY3JlYXRlRWxlbWVudCgidWwiLHtjbGFzc05hbWU6Sm4oKSgianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbiIseyJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWQiOiFWfSl9LFYmJlJlLmNyZWF0ZUVsZW1lbnQoImxpIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sUmUuY3JlYXRlRWxlbWVudChEaXNjcmltaW5hdG9yX0Rpc2NyaW1pbmF0b3JNYXBwaW5nLHtkaXNjcmltaW5hdG9yOml9KSksZWUubGVuZ3RoPjAmJlJlLmNyZWF0ZUVsZW1lbnQobGUse29wZW5BUElTcGVjT2JqOmksb3BlbkFQSUV4dGVuc2lvbnM6ZWUsZ2V0U3lzdGVtOm99KSkpKSl9LGtleXdvcmRzX09wZW5BUElFeHRlbnNpb25zPSh7b3BlbkFQSVNwZWNPYmo6cyxnZXRTeXN0ZW06byxvcGVuQVBJRXh0ZW5zaW9uczppfSk9Pntjb25zdHtmbjphfT1vKCkse3VzZUNvbXBvbmVudDp1fT1hLmpzb25TY2hlbWEyMDIwMTIsXz11KCJKU09OVmlld2VyIik7cmV0dXJuIGkubWFwKChvPT5SZS5jcmVhdGVFbGVtZW50KF8se2tleTpvLG5hbWU6byx2YWx1ZTpzW29dLGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlci1leHRlbnNpb24ta2V5d29yZCJ9KSkpfSxrZXl3b3Jkc19FeHRlcm5hbERvY3M9KHtzY2hlbWE6cyxnZXRTeXN0ZW06b30pPT57Y29uc3QgaT1zPy5leHRlcm5hbERvY3N8fHt9LHtmbjphLGdldENvbXBvbmVudDp1LGdldENvbmZpZ3M6X309bygpLHtzaG93RXh0ZW5zaW9uczp3fT1fKCkse3VzZUNvbXBvbmVudDp4LHVzZUlzRXhwYW5kZWQ6Qyx1c2VQYXRoOmosdXNlTGV2ZWw6TH09YS5qc29uU2NoZW1hMjAyMDEyLEI9ImV4dGVybmFsRG9jcyIse3BhdGg6JH09aihCKSx7aXNFeHBhbmRlZDpWLHNldEV4cGFuZGVkOlUsc2V0Q29sbGFwc2VkOnp9PUMoQiksW1ksWl09TCgpLGVlPXc/Z2V0RXh0ZW5zaW9ucyhpKTpbXSxpZT0hIShpLmRlc2NyaXB0aW9ufHxpLnVybHx8ZWUubGVuZ3RoPjApLGFlPXgoIkFjY29yZGlvbiIpLGNlPXgoIkV4cGFuZERlZXBCdXR0b24iKSxsZT11KCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlc2NyaXB0aW9uIikscGU9dSgiTGluayIpLGRlPXUoIk9wZW5BUEkzMUV4dGVuc2lvbnMiKSxmZT11KCJKU09OU2NoZW1hMjAyMDEyUGF0aENvbnRleHQiKSgpLHllPXUoIkpTT05TY2hlbWEyMDIwMTJMZXZlbENvbnRleHQiKSgpLGJlPSgwLFJlLnVzZUNhbGxiYWNrKSgoKCk9PntWP3ooKTpVKCl9KSxbVixVLHpdKSxfZT0oMCxSZS51c2VDYWxsYmFjaykoKChzLG8pPT57bz9VKHtkZWVwOiEwfSk6eih7ZGVlcDohMH0pfSksW1Usel0pO3JldHVybiAwPT09T2JqZWN0LmtleXMoaSkubGVuZ3RoP251bGw6UmUuY3JlYXRlRWxlbWVudChmZS5Qcm92aWRlcix7dmFsdWU6JH0sUmUuY3JlYXRlRWxlbWVudCh5ZS5Qcm92aWRlcix7dmFsdWU6Wn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1leHRlcm5hbERvY3MiLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjpZfSxpZT9SZS5jcmVhdGVFbGVtZW50KFJlLkZyYWdtZW50LG51bGwsUmUuY3JlYXRlRWxlbWVudChhZSx7ZXhwYW5kZWQ6VixvbkNoYW5nZTpiZX0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sIkV4dGVybmFsIGRvY3VtZW50YXRpb24iKSksUmUuY3JlYXRlRWxlbWVudChjZSx7ZXhwYW5kZWQ6VixvbkNsaWNrOl9lfSkpOlJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCJFeHRlcm5hbCBkb2N1bWVudGF0aW9uIiksUmUuY3JlYXRlRWxlbWVudCgic3Ryb25nIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5In0sIm9iamVjdCIpLFJlLmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOkpuKCkoImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4iLHsianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkIjohVn0pfSxWJiZSZS5jcmVhdGVFbGVtZW50KFJlLkZyYWdtZW50LG51bGwsaS5kZXNjcmlwdGlvbiYmUmUuY3JlYXRlRWxlbWVudCgibGkiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHkifSxSZS5jcmVhdGVFbGVtZW50KGxlLHtzY2hlbWE6aSxnZXRTeXN0ZW06b30pKSxpLnVybCYmUmUuY3JlYXRlRWxlbWVudCgibGkiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHkifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQifSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwidXJsIiksUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxSZS5jcmVhdGVFbGVtZW50KHBlLHt0YXJnZXQ6Il9ibGFuayIsaHJlZjpzYW5pdGl6ZVVybChpLnVybCl9LGkudXJsKSkpKSksZWUubGVuZ3RoPjAmJlJlLmNyZWF0ZUVsZW1lbnQoZGUse29wZW5BUElTcGVjT2JqOmksb3BlbkFQSUV4dGVuc2lvbnM6ZWUsZ2V0U3lzdGVtOm99KSkpKSl9LGtleXdvcmRzX0Rlc2NyaXB0aW9uPSh7c2NoZW1hOnMsZ2V0U3lzdGVtOm99KT0+e2lmKCFzPy5kZXNjcmlwdGlvbilyZXR1cm4gbnVsbDtjb25zdHtnZXRDb21wb25lbnQ6aX09bygpLGE9aSgiTWFya2Rvd24iKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kZXNjcmlwdGlvbiJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1jb3JlLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTItY29yZS1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0sUmUuY3JlYXRlRWxlbWVudChhLHtzb3VyY2U6cy5kZXNjcmlwdGlvbn0pKSl9LFlQPWNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoa2V5d29yZHNfRGVzY3JpcHRpb24pLFhQPWNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoKCh7c2NoZW1hOnMsZ2V0U3lzdGVtOm8sb3JpZ2luYWxDb21wb25lbnQ6aX0pPT57Y29uc3R7Z2V0Q29tcG9uZW50OmF9PW8oKSx1PWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGlzY3JpbWluYXRvciIpLF89YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRYbWwiKSx3PWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXhhbXBsZSIpLHg9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFeHRlcm5hbERvY3MiKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChSZS5GcmFnbWVudCxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoaSx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KHUse3NjaGVtYTpzLGdldFN5c3RlbTpvfSksUmUuY3JlYXRlRWxlbWVudChfLHtzY2hlbWE6cyxnZXRTeXN0ZW06b30pLFJlLmNyZWF0ZUVsZW1lbnQoeCx7c2NoZW1hOnMsZ2V0U3lzdGVtOm99KSxSZS5jcmVhdGVFbGVtZW50KHcse3NjaGVtYTpzLGdldFN5c3RlbTpvfSkpfSkpLFFQPVhQLGtleXdvcmRzX1Byb3BlcnRpZXM9KHtzY2hlbWE6cyxnZXRTeXN0ZW06b30pPT57Y29uc3R7Zm46aSxnZXRDb21wb25lbnQ6YX09bygpLHt1c2VDb21wb25lbnQ6dSx1c2VQYXRoOl99PWkuanNvblNjaGVtYTIwMjAxMix7Z2V0RGVwZW5kZW50UmVxdWlyZWQ6dyxnZXRQcm9wZXJ0aWVzOnh9PWkuanNvblNjaGVtYTIwMjAxMi51c2VGbigpLEM9aS5qc29uU2NoZW1hMjAyMDEyLnVzZUNvbmZpZygpLGo9QXJyYXkuaXNBcnJheShzPy5yZXF1aXJlZCk/cy5yZXF1aXJlZDpbXSx7cGF0aDpMfT1fKCJwcm9wZXJ0aWVzIiksQj11KCJKU09OU2NoZW1hIiksJD1hKCJKU09OU2NoZW1hMjAyMDEyUGF0aENvbnRleHQiKSgpLFY9eChzLEMpO3JldHVybiAwPT09T2JqZWN0LmtleXMoVikubGVuZ3RoP251bGw6UmUuY3JlYXRlRWxlbWVudCgkLlByb3ZpZGVyLHt2YWx1ZTpMfSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLXByb3BlcnRpZXMifSxSZS5jcmVhdGVFbGVtZW50KCJ1bCIsbnVsbCxPYmplY3QuZW50cmllcyhWKS5tYXAoKChbbyxpXSk9Pntjb25zdCBhPWouaW5jbHVkZXMobyksdT13KG8scyk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5Om8sY2xhc3NOYW1lOkpuKCkoImpzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHkiLHsianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eS0tcmVxdWlyZWQiOmF9KX0sUmUuY3JlYXRlRWxlbWVudChCLHtuYW1lOm8sc2NoZW1hOmksZGVwZW5kZW50UmVxdWlyZWQ6dX0pKX0pKSkpKX0sWlA9Y3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcihrZXl3b3Jkc19Qcm9wZXJ0aWVzKTtjb25zdCBlVD1mdW5jdGlvbiBvYXMzMV9hZnRlcl9sb2FkX2FmdGVyTG9hZCh7Zm46cyxnZXRTeXN0ZW06b30pe2lmKHMuanNvblNjaGVtYTIwMjAxMil7Y29uc3QgaT0oKHMsbyk9Pntjb25zdHtmbjppfT1vKCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHMpcmV0dXJuIG51bGw7Y29uc3R7aGFzS2V5d29yZDphfT1pLmpzb25TY2hlbWEyMDIwMTI7cmV0dXJuIG89PnMobyl8fGEobywiZXhhbXBsZSIpfHxvPy54bWx8fG8/LmRpc2NyaW1pbmF0b3J8fG8/LmV4dGVybmFsRG9jc30pKHMuanNvblNjaGVtYTIwMjAxMi5pc0V4cGFuZGFibGUsbyk7T2JqZWN0LmFzc2lnbih0aGlzLmZuLmpzb25TY2hlbWEyMDIwMTIse2lzRXhwYW5kYWJsZTppLGdldFByb3BlcnRpZXN9KX1pZigiZnVuY3Rpb24iPT10eXBlb2Ygcy5zYW1wbGVGcm9tU2NoZW1hJiZzLmpzb25TY2hlbWEyMDIwMTIpe2NvbnN0IGk9d3JhcE9BUzMxRm4oe3NhbXBsZUZyb21TY2hlbWE6cy5qc29uU2NoZW1hMjAyMDEyLnNhbXBsZUZyb21TY2hlbWEsc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWM6cy5qc29uU2NoZW1hMjAyMDEyLnNhbXBsZUZyb21TY2hlbWFHZW5lcmljLGNyZWF0ZVhNTEV4YW1wbGU6cy5qc29uU2NoZW1hMjAyMDEyLmNyZWF0ZVhNTEV4YW1wbGUsbWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hOnMuanNvblNjaGVtYTIwMjAxMi5tZW1vaXplZFNhbXBsZUZyb21TY2hlbWEsbWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlOnMuanNvblNjaGVtYTIwMjAxMi5tZW1vaXplZENyZWF0ZVhNTEV4YW1wbGUsZ2V0SnNvblNhbXBsZVNjaGVtYTpzLmpzb25TY2hlbWEyMDIwMTIuZ2V0SnNvblNhbXBsZVNjaGVtYSxnZXRZYW1sU2FtcGxlU2NoZW1hOnMuanNvblNjaGVtYTIwMjAxMi5nZXRZYW1sU2FtcGxlU2NoZW1hLGdldFhtbFNhbXBsZVNjaGVtYTpzLmpzb25TY2hlbWEyMDIwMTIuZ2V0WG1sU2FtcGxlU2NoZW1hLGdldFNhbXBsZVNjaGVtYTpzLmpzb25TY2hlbWEyMDIwMTIuZ2V0U2FtcGxlU2NoZW1hLG1lcmdlSnNvblNjaGVtYTpzLmpzb25TY2hlbWEyMDIwMTIubWVyZ2VKc29uU2NoZW1hLGdldFNjaGVtYU9iamVjdFR5cGVMYWJlbDpvPT5zLmpzb25TY2hlbWEyMDIwMTIuZ2V0VHlwZShpbW11dGFibGVUb0pTKG8pKSxnZXRTY2hlbWFPYmplY3RUeXBlOm89PnMuanNvblNjaGVtYTIwMjAxMi5mb2xkVHlwZShpbW11dGFibGVUb0pTKG8pPy50eXBlKX0sbygpKTtPYmplY3QuYXNzaWduKHRoaXMuZm4saSl9Y29uc3QgaT0ocz0+KG8saT1udWxsKT0+e2NvbnN0e2ZuOmF9PXMoKTtpZihhLmlzRmlsZVVwbG9hZEludGVuZGVkT0FTMzAobyxpKSlyZXR1cm4hMDtjb25zdCB1PXplLk1hcC5pc01hcChvKTtpZighdSYmIWFzKCkobykpcmV0dXJuITE7Y29uc3QgXz11P28uZ2V0KCJjb250ZW50TWVkaWFUeXBlIik6by5jb250ZW50TWVkaWFUeXBlLHc9dT9vLmdldCgiY29udGVudEVuY29kaW5nIik6by5jb250ZW50RW5jb2Rpbmc7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBfJiYiIiE9PV98fCJzdHJpbmciPT10eXBlb2YgdyYmIiIhPT13fSkobykse2lzRmlsZVVwbG9hZEludGVuZGVkOmF9PXdyYXBPQVMzMUZuKHtpc0ZpbGVVcGxvYWRJbnRlbmRlZDppfSxvKCkpO2lmKHRoaXMuZm4uaXNGaWxlVXBsb2FkSW50ZW5kZWQ9YSx0aGlzLmZuLmlzRmlsZVVwbG9hZEludGVuZGVkT0FTMzE9aSxzLmpzb25TY2hlbWEyMDIwMTIpe2NvbnN0e2hhc1NjaGVtYVR5cGU6aX09d3JhcE9BUzMxRm4oe2hhc1NjaGVtYVR5cGU6cy5qc29uU2NoZW1hMjAyMDEyLmhhc1NjaGVtYVR5cGV9LG8oKSk7dGhpcy5mbi5oYXNTY2hlbWFUeXBlPWl9fSxvYXMzMT0oe2ZuOnN9KT0+e2NvbnN0IG89cy5jcmVhdGVTeXN0ZW1TZWxlY3Rvcnx8Zm5fY3JlYXRlU3lzdGVtU2VsZWN0b3IsaT1zLmNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yfHxmbl9jcmVhdGVPbmx5T0FTMzFTZWxlY3RvcjtyZXR1cm57YWZ0ZXJMb2FkOmVULGZuOntpc09BUzMxLGNyZWF0ZVN5c3RlbVNlbGVjdG9yOmZuX2NyZWF0ZVN5c3RlbVNlbGVjdG9yLGNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yOmZuX2NyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yfSxjb21wb25lbnRzOntXZWJob29rczp3ZWJob29rcyxKc29uU2NoZW1hRGlhbGVjdDpqc29uX3NjaGVtYV9kaWFsZWN0LE11dHVhbFRMU0F1dGg6bXV0dWFsX3Rsc19hdXRoLE9BUzMxSW5mbzpvYXMzMV9jb21wb25lbnRzX2luZm8sT0FTMzFMaWNlbnNlOm9hczMxX2NvbXBvbmVudHNfbGljZW5zZSxPQVMzMUNvbnRhY3Q6b2FzMzFfY29tcG9uZW50c19jb250YWN0LE9BUzMxVmVyc2lvblByYWdtYUZpbHRlcjp2ZXJzaW9uX3ByYWdtYV9maWx0ZXIsT0FTMzFNb2RlbDpDUCxPQVMzMU1vZGVsczptb2RlbHMsT0FTMzFBdXRoczpBUCxKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4YW1wbGU6a2V5d29yZHNfRXhhbXBsZSxKU09OU2NoZW1hMjAyMDEyS2V5d29yZFhtbDprZXl3b3Jkc19YbWwsSlNPTlNjaGVtYTIwMjAxMktleXdvcmREaXNjcmltaW5hdG9yOmtleXdvcmRzX0Rpc2NyaW1pbmF0b3JfRGlzY3JpbWluYXRvcixKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4dGVybmFsRG9jczprZXl3b3Jkc19FeHRlcm5hbERvY3MsT3BlbkFQSTMxRXh0ZW5zaW9uczprZXl3b3Jkc19PcGVuQVBJRXh0ZW5zaW9uc30sd3JhcENvbXBvbmVudHM6e0luZm9Db250YWluZXI6UFAsTGljZW5zZTpqUCxDb250YWN0OklQLFZlcnNpb25QcmFnbWFGaWx0ZXI6d3JhcF9jb21wb25lbnRzX3ZlcnNpb25fcHJhZ21hX2ZpbHRlcixNb2RlbDpOUCxNb2RlbHM6UlAsQXV0aEl0ZW06TFAsYXV0aHM6RlAsSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXNjcmlwdGlvbjpZUCxKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4YW1wbGVzOlFQLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUHJvcGVydGllczpaUH0sc3RhdGVQbHVnaW5zOnthdXRoOnt3cmFwU2VsZWN0b3JzOntkZWZpbml0aW9uc1RvQXV0aG9yaXplOktQfX0sc3BlYzp7c2VsZWN0b3JzOntpc09BUzMxOm8oJFApLGxpY2Vuc2U6c2VsZWN0b3JzX2xpY2Vuc2Usc2VsZWN0TGljZW5zZU5hbWVGaWVsZCxzZWxlY3RMaWNlbnNlVXJsRmllbGQsc2VsZWN0TGljZW5zZUlkZW50aWZpZXJGaWVsZDppKHNlbGVjdExpY2Vuc2VJZGVudGlmaWVyRmllbGQpLHNlbGVjdExpY2Vuc2VVcmw6byhWUCksY29udGFjdDpzZWxlY3RvcnNfY29udGFjdCxzZWxlY3RDb250YWN0TmFtZUZpZWxkLHNlbGVjdENvbnRhY3RFbWFpbEZpZWxkLHNlbGVjdENvbnRhY3RVcmxGaWVsZCxzZWxlY3RDb250YWN0VXJsOm8oVVApLHNlbGVjdEluZm9UaXRsZUZpZWxkLHNlbGVjdEluZm9TdW1tYXJ5RmllbGQ6aShzZWxlY3RJbmZvU3VtbWFyeUZpZWxkKSxzZWxlY3RJbmZvRGVzY3JpcHRpb25GaWVsZCxzZWxlY3RJbmZvVGVybXNPZlNlcnZpY2VGaWVsZCxzZWxlY3RJbmZvVGVybXNPZlNlcnZpY2VVcmw6byh6UCksc2VsZWN0RXh0ZXJuYWxEb2NzRGVzY3JpcHRpb25GaWVsZCxzZWxlY3RFeHRlcm5hbERvY3NVcmxGaWVsZCxzZWxlY3RFeHRlcm5hbERvY3NVcmw6byhXUCksd2ViaG9va3M6aShzZWxlY3RvcnNfd2ViaG9va3MpLHNlbGVjdFdlYmhvb2tzT3BlcmF0aW9uczppKG8ocVApKSxzZWxlY3RKc29uU2NoZW1hRGlhbGVjdEZpZWxkLHNlbGVjdEpzb25TY2hlbWFEaWFsZWN0RGVmYXVsdCxzZWxlY3RTY2hlbWFzOm8oSlApfSx3cmFwU2VsZWN0b3JzOntpc09BUzM6d3JhcF9zZWxlY3RvcnNfaXNPQVMzLHNlbGVjdExpY2Vuc2VVcmw6SFB9fSxvYXMzMTp7c2VsZWN0b3JzOntzZWxlY3RMaWNlbnNlVXJsOmkobyhHUCkpfX19fX0sdFQ9ZXMoKS5vYmplY3QsclQ9ZXMoKS5ib29sLG5UPShlcygpLm9uZU9mVHlwZShbdFQsclRdKSwoMCxSZS5jcmVhdGVDb250ZXh0KShudWxsKSk7blQuZGlzcGxheU5hbWU9IkpTT05TY2hlbWFDb250ZXh0Ijtjb25zdCBzVD0oMCxSZS5jcmVhdGVDb250ZXh0KSgwKTtzVC5kaXNwbGF5TmFtZT0iSlNPTlNjaGVtYUxldmVsQ29udGV4dCI7Y29uc3Qgb1Q9KDAsUmUuY3JlYXRlQ29udGV4dCkobmV3IFNldCksaVQ9KDAsUmUuY3JlYXRlQ29udGV4dCkoW10pO2NsYXNzIEpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGV7c3RhdGljIENvbGxhcHNlZD0iY29sbGFwc2VkIjtzdGF0aWMgRXhwYW5kZWQ9ImV4cGFuZGVkIjtzdGF0aWMgRGVlcGx5RXhwYW5kZWQ9ImRlZXBseS1leHBhbmRlZCJ9Y29uc3QgdXNlQ29uZmlnPSgpPT57Y29uc3R7Y29uZmlnOnN9PSgwLFJlLnVzZUNvbnRleHQpKG5UKTtyZXR1cm4gc30sdXNlQ29tcG9uZW50PXM9Pntjb25zdHtjb21wb25lbnRzOm99PSgwLFJlLnVzZUNvbnRleHQpKG5UKTtyZXR1cm4gb1tzXXx8bnVsbH0sdXNlRm49KHM9dm9pZCAwKT0+e2NvbnN0e2ZuOm99PSgwLFJlLnVzZUNvbnRleHQpKG5UKTtyZXR1cm4gdm9pZCAwIT09cz9vW3NdOm99LHVzZUpTT05TY2hlbWFDb250ZXh0U3RhdGU9KCk9Pntjb25zdFssc109KDAsUmUudXNlU3RhdGUpKG51bGwpLHtzdGF0ZTpvfT0oMCxSZS51c2VDb250ZXh0KShuVCk7cmV0dXJue3N0YXRlOm8sc2V0U3RhdGU6aT0+e2kobykscyh7fSl9fX0sdXNlTGV2ZWw9KCk9Pntjb25zdCBzPSgwLFJlLnVzZUNvbnRleHQpKHNUKTtyZXR1cm5bcyxzKzFdfSx1c2VQYXRoPXM9Pntjb25zdCBvPSgwLFJlLnVzZUNvbnRleHQpKGlUKSx7c2V0U3RhdGU6aX09dXNlSlNPTlNjaGVtYUNvbnRleHRTdGF0ZSgpLGE9InN0cmluZyI9PXR5cGVvZiBzP1suLi5vLHNdOm87cmV0dXJue3BhdGg6YSxwYXRoTXV0YXRvcjoocyxvPXtkZWVwOiExfSk9Pntjb25zdCB1PWEudG9TdHJpbmcoKSx1cGRhdGVGbj1vPT57by5wYXRoc1t1XT1zLHM9PT1KU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkNvbGxhcHNlZCYmT2JqZWN0LmtleXMoby5wYXRocykuZm9yRWFjaCgocz0+e3Muc3RhcnRzV2l0aCh1KSYmby5wYXRoc1tzXT09PUpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuRGVlcGx5RXhwYW5kZWQmJihvLnBhdGhzW3NdPUpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuRXhwYW5kZWQpfSkpfSx1cGRhdGVEZWVwRm49bz0+e09iamVjdC5rZXlzKG8ucGF0aHMpLmZvckVhY2goKGk9PntpLnN0YXJ0c1dpdGgodSkmJihvLnBhdGhzW2ldPXMpfSkpfTtvLmRlZXA/aSh1cGRhdGVEZWVwRm4pOmkodXBkYXRlRm4pfX19LHVzZUlzRXhwYW5kZWQ9cz0+e2NvbnN0W29dPXVzZUxldmVsKCkse2RlZmF1bHRFeHBhbmRlZExldmVsczppfT11c2VDb25maWcoKSx7cGF0aDphLHBhdGhNdXRhdG9yOnV9PXVzZVBhdGgocykse3BhdGg6X309dXNlUGF0aCgpLHtzdGF0ZTp3fT11c2VKU09OU2NoZW1hQ29udGV4dFN0YXRlKCkseD13LnBhdGhzW2EudG9TdHJpbmcoKV0sQz13LnBhdGhzW18udG9TdHJpbmcoKV0/P3cucGF0aHNbXy5zbGljZSgwLC0xKS50b1N0cmluZygpXSxqPXg/PyhpLW8+MD9KU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkV4cGFuZGVkOkpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuQ29sbGFwc2VkKSxMPWohPT1KU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkNvbGxhcHNlZDsoMCxSZS51c2VFZmZlY3QpKCgoKT0+e3UoQz09PUpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuRGVlcGx5RXhwYW5kZWQ/SlNPTlNjaGVtYUlzRXhwYW5kZWRTdGF0ZS5EZWVwbHlFeHBhbmRlZDpqKX0pLFtDXSk7cmV0dXJue2lzRXhwYW5kZWQ6TCxzZXRFeHBhbmRlZDooMCxSZS51c2VDYWxsYmFjaykoKChzPXtkZWVwOiExfSk9Pnt1KHMuZGVlcD9KU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkRlZXBseUV4cGFuZGVkOkpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuRXhwYW5kZWQpfSksW10pLHNldENvbGxhcHNlZDooMCxSZS51c2VDYWxsYmFjaykoKChzPXtkZWVwOiExfSk9Pnt1KEpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuQ29sbGFwc2VkLHMpfSksW10pfX0sdXNlUmVuZGVyZWRTY2hlbWFzPShzPXZvaWQgMCk9PntpZih2b2lkIDA9PT1zKXJldHVybigwLFJlLnVzZUNvbnRleHQpKG9UKTtjb25zdCBvPSgwLFJlLnVzZUNvbnRleHQpKG9UKTtyZXR1cm4gbmV3IFNldChbLi4ubyxzXSl9LGFUPSgwLFJlLmZvcndhcmRSZWYpKCgoe3NjaGVtYTpzLG5hbWU6bz0iIixkZXBlbmRlbnRSZXF1aXJlZDppPVtdLG9uRXhwYW5kOmE9KCk9Pnt9LGlkZW50aWZpZXI6dT0iIn0sXyk9Pntjb25zdCB3PXVzZUZuKCkseD11fHxzPy4kaWR8fG8se3BhdGg6Q309dXNlUGF0aCh4KSx7aXNFeHBhbmRlZDpqLHNldEV4cGFuZGVkOkwsc2V0Q29sbGFwc2VkOkJ9PXVzZUlzRXhwYW5kZWQoeCksWyQsVl09dXNlTGV2ZWwoKSxVPSgoKT0+e2NvbnN0W3NdPXVzZUxldmVsKCk7cmV0dXJuIHM+MH0pKCksej13LmlzRXhwYW5kYWJsZShzKXx8aS5sZW5ndGg+MCxZPShzPT51c2VSZW5kZXJlZFNjaGVtYXMoKS5oYXMocykpKHMpLFo9dXNlUmVuZGVyZWRTY2hlbWFzKHMpLGVlPXcuc3RyaW5naWZ5Q29uc3RyYWludHMocyksaWU9dXNlQ29tcG9uZW50KCJBY2NvcmRpb24iKSxhZT11c2VDb21wb25lbnQoIktleXdvcmQkc2NoZW1hIiksY2U9dXNlQ29tcG9uZW50KCJLZXl3b3JkJHZvY2FidWxhcnkiKSxsZT11c2VDb21wb25lbnQoIktleXdvcmQkaWQiKSxwZT11c2VDb21wb25lbnQoIktleXdvcmQkYW5jaG9yIiksZGU9dXNlQ29tcG9uZW50KCJLZXl3b3JkJGR5bmFtaWNBbmNob3IiKSxmZT11c2VDb21wb25lbnQoIktleXdvcmQkcmVmIikseWU9dXNlQ29tcG9uZW50KCJLZXl3b3JkJGR5bmFtaWNSZWYiKSxiZT11c2VDb21wb25lbnQoIktleXdvcmQkZGVmcyIpLF9lPXVzZUNvbXBvbmVudCgiS2V5d29yZCRjb21tZW50IiksU2U9dXNlQ29tcG9uZW50KCJLZXl3b3JkQWxsT2YiKSx3ZT11c2VDb21wb25lbnQoIktleXdvcmRBbnlPZiIpLHhlPXVzZUNvbXBvbmVudCgiS2V5d29yZE9uZU9mIiksUGU9dXNlQ29tcG9uZW50KCJLZXl3b3JkTm90IiksVGU9dXNlQ29tcG9uZW50KCJLZXl3b3JkSWYiKSwkZT11c2VDb21wb25lbnQoIktleXdvcmRUaGVuIikscWU9dXNlQ29tcG9uZW50KCJLZXl3b3JkRWxzZSIpLHplPXVzZUNvbXBvbmVudCgiS2V5d29yZERlcGVuZGVudFNjaGVtYXMiKSxXZT11c2VDb21wb25lbnQoIktleXdvcmRQcmVmaXhJdGVtcyIpLEhlPXVzZUNvbXBvbmVudCgiS2V5d29yZEl0ZW1zIiksWWU9dXNlQ29tcG9uZW50KCJLZXl3b3JkQ29udGFpbnMiKSxYZT11c2VDb21wb25lbnQoIktleXdvcmRQcm9wZXJ0aWVzIiksUWU9dXNlQ29tcG9uZW50KCJLZXl3b3JkUGF0dGVyblByb3BlcnRpZXMiKSxldD11c2VDb21wb25lbnQoIktleXdvcmRBZGRpdGlvbmFsUHJvcGVydGllcyIpLHR0PXVzZUNvbXBvbmVudCgiS2V5d29yZFByb3BlcnR5TmFtZXMiKSxydD11c2VDb21wb25lbnQoIktleXdvcmRVbmV2YWx1YXRlZEl0ZW1zIiksbnQ9dXNlQ29tcG9uZW50KCJLZXl3b3JkVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzIiksc3Q9dXNlQ29tcG9uZW50KCJLZXl3b3JkVHlwZSIpLG90PXVzZUNvbXBvbmVudCgiS2V5d29yZEVudW0iKSxpdD11c2VDb21wb25lbnQoIktleXdvcmRDb25zdCIpLGF0PXVzZUNvbXBvbmVudCgiS2V5d29yZENvbnN0cmFpbnQiKSxjdD11c2VDb21wb25lbnQoIktleXdvcmREZXBlbmRlbnRSZXF1aXJlZCIpLGx0PXVzZUNvbXBvbmVudCgiS2V5d29yZENvbnRlbnRTY2hlbWEiKSx1dD11c2VDb21wb25lbnQoIktleXdvcmRUaXRsZSIpLHB0PXVzZUNvbXBvbmVudCgiS2V5d29yZERlc2NyaXB0aW9uIiksaHQ9dXNlQ29tcG9uZW50KCJLZXl3b3JkRGVmYXVsdCIpLGR0PXVzZUNvbXBvbmVudCgiS2V5d29yZERlcHJlY2F0ZWQiKSxtdD11c2VDb21wb25lbnQoIktleXdvcmRSZWFkT25seSIpLGd0PXVzZUNvbXBvbmVudCgiS2V5d29yZFdyaXRlT25seSIpLHl0PXVzZUNvbXBvbmVudCgiS2V5d29yZEV4YW1wbGVzIiksdnQ9dXNlQ29tcG9uZW50KCJFeHRlbnNpb25LZXl3b3JkcyIpLGJ0PXVzZUNvbXBvbmVudCgiRXhwYW5kRGVlcEJ1dHRvbiIpLF90PSgwLFJlLnVzZUNhbGxiYWNrKSgoKHMsbyk9PntvP0woKTpCKCksYShzLG8sITEpfSksW2EsTCxCXSksU3Q9KDAsUmUudXNlQ2FsbGJhY2spKCgocyxvKT0+e28/TCh7ZGVlcDohMH0pOkIoe2RlZXA6ITB9KSxhKHMsbywhMCl9KSxbYSxMLEJdKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChpVC5Qcm92aWRlcix7dmFsdWU6Q30sUmUuY3JlYXRlRWxlbWVudChzVC5Qcm92aWRlcix7dmFsdWU6Vn0sUmUuY3JlYXRlRWxlbWVudChvVC5Qcm92aWRlcix7dmFsdWU6Wn0sUmUuY3JlYXRlRWxlbWVudCgiYXJ0aWNsZSIse3JlZjpfLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjokLGNsYXNzTmFtZTpKbigpKCJqc29uLXNjaGVtYS0yMDIwLTEyIix7Impzb24tc2NoZW1hLTIwMjAtMTItLWVtYmVkZGVkIjpVLCJqc29uLXNjaGVtYS0yMDIwLTEyLS1jaXJjdWxhciI6WX0pfSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItaGVhZCJ9LHomJiFZP1JlLmNyZWF0ZUVsZW1lbnQoUmUuRnJhZ21lbnQsbnVsbCxSZS5jcmVhdGVFbGVtZW50KGllLHtleHBhbmRlZDpqLG9uQ2hhbmdlOl90fSxSZS5jcmVhdGVFbGVtZW50KHV0LHt0aXRsZTpvLHNjaGVtYTpzfSkpLFJlLmNyZWF0ZUVsZW1lbnQoYnQse2V4cGFuZGVkOmosb25DbGljazpTdH0pKTpSZS5jcmVhdGVFbGVtZW50KHV0LHt0aXRsZTpvLHNjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudChkdCx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KG10LHtzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQoZ3Qse3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudChzdCx7c2NoZW1hOnMsaXNDaXJjdWxhcjpZfSksZWUubGVuZ3RoPjAmJmVlLm1hcCgocz0+UmUuY3JlYXRlRWxlbWVudChhdCx7a2V5OmAke3Muc2NvcGV9LSR7cy52YWx1ZX1gLGNvbnN0cmFpbnQ6c30pKSkpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpKbigpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWJvZHkiLHsianNvbi1zY2hlbWEtMjAyMC0xMi1ib2R5LS1jb2xsYXBzZWQiOiFqfSl9LGomJlJlLmNyZWF0ZUVsZW1lbnQoUmUuRnJhZ21lbnQsbnVsbCxSZS5jcmVhdGVFbGVtZW50KHB0LHtzY2hlbWE6c30pLCFZJiZ6JiZSZS5jcmVhdGVFbGVtZW50KFJlLkZyYWdtZW50LG51bGwsUmUuY3JlYXRlRWxlbWVudChYZSx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KFFlLHtzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQoZXQse3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudChudCx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KHR0LHtzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQoU2Use3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudCh3ZSx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KHhlLHtzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQoUGUse3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudChUZSx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KCRlLHtzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQocWUse3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudCh6ZSx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KFdlLHtzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQoSGUse3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudChydCx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KFllLHtzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQobHQse3NjaGVtYTpzfSkpLFJlLmNyZWF0ZUVsZW1lbnQob3Qse3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudChpdCx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KGN0LHtzY2hlbWE6cyxkZXBlbmRlbnRSZXF1aXJlZDppfSksUmUuY3JlYXRlRWxlbWVudChodCx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KHl0LHtzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQoYWUse3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudChjZSx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KGxlLHtzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQocGUse3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudChkZSx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KGZlLHtzY2hlbWE6c30pLCFZJiZ6JiZSZS5jcmVhdGVFbGVtZW50KGJlLHtzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQoeWUse3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudChfZSx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KHZ0LHtzY2hlbWE6c30pKSkpKSkpfSkpLGNUPWFULGtleXdvcmRzXyRzY2hlbWE9KHtzY2hlbWE6c30pPT5zPy4kc2NoZW1hP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJHNjaGVtYSJ9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCIkc2NoZW1hIiksUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxzLiRzY2hlbWEpKTpudWxsLCR2b2NhYnVsYXJ5XyR2b2NhYnVsYXJ5PSh7c2NoZW1hOnN9KT0+e2NvbnN0IG89IiR2b2NhYnVsYXJ5Iix7cGF0aDppfT11c2VQYXRoKG8pLHtpc0V4cGFuZGVkOmEsc2V0RXhwYW5kZWQ6dSxzZXRDb2xsYXBzZWQ6X309dXNlSXNFeHBhbmRlZChvKSx3PXVzZUNvbXBvbmVudCgiQWNjb3JkaW9uIikseD0oMCxSZS51c2VDYWxsYmFjaykoKCgpPT57YT9fKCk6dSgpfSksW2EsdSxfXSk7cmV0dXJuIHM/LiR2b2NhYnVsYXJ5PyJvYmplY3QiIT10eXBlb2Ygcy4kdm9jYWJ1bGFyeT9udWxsOlJlLmNyZWF0ZUVsZW1lbnQoaVQuUHJvdmlkZXIse3ZhbHVlOml9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJHZvY2FidWxhcnkifSxSZS5jcmVhdGVFbGVtZW50KHcse2V4cGFuZGVkOmEsb25DaGFuZ2U6eH0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sIiR2b2NhYnVsYXJ5IikpLFJlLmNyZWF0ZUVsZW1lbnQoInN0cm9uZyIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeSJ9LCJvYmplY3QiKSxSZS5jcmVhdGVFbGVtZW50KCJ1bCIsbnVsbCxhJiZPYmplY3QuZW50cmllcyhzLiR2b2NhYnVsYXJ5KS5tYXAoKChbcyxvXSk9PlJlLmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OnMsY2xhc3NOYW1lOkpuKCkoImpzb24tc2NoZW1hLTIwMjAtMTItJHZvY2FidWxhcnktdXJpIix7Impzb24tc2NoZW1hLTIwMjAtMTItJHZvY2FidWxhcnktdXJpLS1kaXNhYmxlZCI6IW99KX0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxzKSkpKSkpKTpudWxsfSxrZXl3b3Jkc18kaWQ9KHtzY2hlbWE6c30pPT5zPy4kaWQ/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS0kaWQifSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiJGlkIiksUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxzLiRpZCkpOm51bGwsa2V5d29yZHNfJGFuY2hvcj0oe3NjaGVtYTpzfSk9PnM/LiRhbmNob3I/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS0kYW5jaG9yIn0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sIiRhbmNob3IiKSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeSJ9LHMuJGFuY2hvcikpOm51bGwsa2V5d29yZHNfJGR5bmFtaWNBbmNob3I9KHtzY2hlbWE6c30pPT5zPy4kZHluYW1pY0FuY2hvcj9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLSRkeW5hbWljQW5jaG9yIn0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sIiRkeW5hbWljQW5jaG9yIiksUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxzLiRkeW5hbWljQW5jaG9yKSk6bnVsbCxrZXl3b3Jkc18kcmVmPSh7c2NoZW1hOnN9KT0+cz8uJHJlZj9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLSRyZWYifSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiJHJlZiIpLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0scy4kcmVmKSk6bnVsbCxrZXl3b3Jkc18kZHluYW1pY1JlZj0oe3NjaGVtYTpzfSk9PnM/LiRkeW5hbWljUmVmP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJGR5bmFtaWNSZWYifSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiJGR5bmFtaWNSZWYiKSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeSJ9LHMuJGR5bmFtaWNSZWYpKTpudWxsLGtleXdvcmRzXyRkZWZzPSh7c2NoZW1hOnN9KT0+e2NvbnN0IG89cz8uJGRlZnN8fHt9LGk9IiRkZWZzIix7cGF0aDphfT11c2VQYXRoKGkpLHtpc0V4cGFuZGVkOnUsc2V0RXhwYW5kZWQ6XyxzZXRDb2xsYXBzZWQ6d309dXNlSXNFeHBhbmRlZChpKSxbeCxDXT11c2VMZXZlbCgpLGo9dXNlQ29tcG9uZW50KCJBY2NvcmRpb24iKSxMPXVzZUNvbXBvbmVudCgiRXhwYW5kRGVlcEJ1dHRvbiIpLEI9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIiksJD0oMCxSZS51c2VDYWxsYmFjaykoKCgpPT57dT93KCk6XygpfSksW3UsXyx3XSksVj0oMCxSZS51c2VDYWxsYmFjaykoKChzLG8pPT57bz9fKHtkZWVwOiEwfSk6dyh7ZGVlcDohMH0pfSksW18sd10pO3JldHVybiAwPT09T2JqZWN0LmtleXMobykubGVuZ3RoP251bGw6UmUuY3JlYXRlRWxlbWVudChpVC5Qcm92aWRlcix7dmFsdWU6YX0sUmUuY3JlYXRlRWxlbWVudChzVC5Qcm92aWRlcix7dmFsdWU6Q30sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS0kZGVmcyIsImRhdGEtanNvbi1zY2hlbWEtbGV2ZWwiOnh9LFJlLmNyZWF0ZUVsZW1lbnQoaix7ZXhwYW5kZWQ6dSxvbkNoYW5nZTokfSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiJGRlZnMiKSksUmUuY3JlYXRlRWxlbWVudChMLHtleHBhbmRlZDp1LG9uQ2xpY2s6Vn0pLFJlLmNyZWF0ZUVsZW1lbnQoInN0cm9uZyIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeSJ9LCJvYmplY3QiKSxSZS5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZTpKbigpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuIix7Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4tLWNvbGxhcHNlZCI6IXV9KX0sdSYmUmUuY3JlYXRlRWxlbWVudChSZS5GcmFnbWVudCxudWxsLE9iamVjdC5lbnRyaWVzKG8pLm1hcCgoKFtzLG9dKT0+UmUuY3JlYXRlRWxlbWVudCgibGkiLHtrZXk6cyxjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHkifSxSZS5jcmVhdGVFbGVtZW50KEIse25hbWU6cyxzY2hlbWE6b30pKSkpKSkpKSl9LGtleXdvcmRzXyRjb21tZW50PSh7c2NoZW1hOnN9KT0+cz8uJGNvbW1lbnQ/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS0kY29tbWVudCJ9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCIkY29tbWVudCIpLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0scy4kY29tbWVudCkpOm51bGwsa2V5d29yZHNfQWxsT2Y9KHtzY2hlbWE6c30pPT57Y29uc3Qgbz1zPy5hbGxPZnx8W10saT11c2VGbigpLGE9ImFsbE9mIix7cGF0aDp1fT11c2VQYXRoKGEpLHtpc0V4cGFuZGVkOl8sc2V0RXhwYW5kZWQ6dyxzZXRDb2xsYXBzZWQ6eH09dXNlSXNFeHBhbmRlZChhKSxbQyxqXT11c2VMZXZlbCgpLEw9dXNlQ29tcG9uZW50KCJBY2NvcmRpb24iKSxCPXVzZUNvbXBvbmVudCgiRXhwYW5kRGVlcEJ1dHRvbiIpLCQ9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIiksVj11c2VDb21wb25lbnQoIktleXdvcmRUeXBlIiksVT0oMCxSZS51c2VDYWxsYmFjaykoKCgpPT57Xz94KCk6dygpfSksW18sdyx4XSksej0oMCxSZS51c2VDYWxsYmFjaykoKChzLG8pPT57bz93KHtkZWVwOiEwfSk6eCh7ZGVlcDohMH0pfSksW3cseF0pO3JldHVybiBBcnJheS5pc0FycmF5KG8pJiYwIT09by5sZW5ndGg/UmUuY3JlYXRlRWxlbWVudChpVC5Qcm92aWRlcix7dmFsdWU6dX0sUmUuY3JlYXRlRWxlbWVudChzVC5Qcm92aWRlcix7dmFsdWU6an0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1hbGxPZiIsImRhdGEtanNvbi1zY2hlbWEtbGV2ZWwiOkN9LFJlLmNyZWF0ZUVsZW1lbnQoTCx7ZXhwYW5kZWQ6XyxvbkNoYW5nZTpVfSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIkFsbCBvZiIpKSxSZS5jcmVhdGVFbGVtZW50KEIse2V4cGFuZGVkOl8sb25DbGljazp6fSksUmUuY3JlYXRlRWxlbWVudChWLHtzY2hlbWE6e2FsbE9mOm99fSksUmUuY3JlYXRlRWxlbWVudCgidWwiLHtjbGFzc05hbWU6Sm4oKSgianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbiIseyJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWQiOiFffSl9LF8mJlJlLmNyZWF0ZUVsZW1lbnQoUmUuRnJhZ21lbnQsbnVsbCxvLm1hcCgoKHMsbyk9PlJlLmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OmAjJHtvfWAsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sUmUuY3JlYXRlRWxlbWVudCgkLHtuYW1lOmAjJHtvfSAke2kuZ2V0VGl0bGUocyl9YCxzY2hlbWE6c30pKSkpKSkpKSk6bnVsbH0sa2V5d29yZHNfQW55T2Y9KHtzY2hlbWE6c30pPT57Y29uc3Qgbz1zPy5hbnlPZnx8W10saT11c2VGbigpLGE9ImFueU9mIix7cGF0aDp1fT11c2VQYXRoKGEpLHtpc0V4cGFuZGVkOl8sc2V0RXhwYW5kZWQ6dyxzZXRDb2xsYXBzZWQ6eH09dXNlSXNFeHBhbmRlZChhKSxbQyxqXT11c2VMZXZlbCgpLEw9dXNlQ29tcG9uZW50KCJBY2NvcmRpb24iKSxCPXVzZUNvbXBvbmVudCgiRXhwYW5kRGVlcEJ1dHRvbiIpLCQ9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIiksVj11c2VDb21wb25lbnQoIktleXdvcmRUeXBlIiksVT0oMCxSZS51c2VDYWxsYmFjaykoKCgpPT57Xz94KCk6dygpfSksW18sdyx4XSksej0oMCxSZS51c2VDYWxsYmFjaykoKChzLG8pPT57bz93KHtkZWVwOiEwfSk6eCh7ZGVlcDohMH0pfSksW3cseF0pO3JldHVybiBBcnJheS5pc0FycmF5KG8pJiYwIT09by5sZW5ndGg/UmUuY3JlYXRlRWxlbWVudChpVC5Qcm92aWRlcix7dmFsdWU6dX0sUmUuY3JlYXRlRWxlbWVudChzVC5Qcm92aWRlcix7dmFsdWU6an0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1hbnlPZiIsImRhdGEtanNvbi1zY2hlbWEtbGV2ZWwiOkN9LFJlLmNyZWF0ZUVsZW1lbnQoTCx7ZXhwYW5kZWQ6XyxvbkNoYW5nZTpVfSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIkFueSBvZiIpKSxSZS5jcmVhdGVFbGVtZW50KEIse2V4cGFuZGVkOl8sb25DbGljazp6fSksUmUuY3JlYXRlRWxlbWVudChWLHtzY2hlbWE6e2FueU9mOm99fSksUmUuY3JlYXRlRWxlbWVudCgidWwiLHtjbGFzc05hbWU6Sm4oKSgianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbiIseyJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWQiOiFffSl9LF8mJlJlLmNyZWF0ZUVsZW1lbnQoUmUuRnJhZ21lbnQsbnVsbCxvLm1hcCgoKHMsbyk9PlJlLmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OmAjJHtvfWAsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sUmUuY3JlYXRlRWxlbWVudCgkLHtuYW1lOmAjJHtvfSAke2kuZ2V0VGl0bGUocyl9YCxzY2hlbWE6c30pKSkpKSkpKSk6bnVsbH0sa2V5d29yZHNfT25lT2Y9KHtzY2hlbWE6c30pPT57Y29uc3Qgbz1zPy5vbmVPZnx8W10saT11c2VGbigpLGE9Im9uZU9mIix7cGF0aDp1fT11c2VQYXRoKGEpLHtpc0V4cGFuZGVkOl8sc2V0RXhwYW5kZWQ6dyxzZXRDb2xsYXBzZWQ6eH09dXNlSXNFeHBhbmRlZChhKSxbQyxqXT11c2VMZXZlbCgpLEw9dXNlQ29tcG9uZW50KCJBY2NvcmRpb24iKSxCPXVzZUNvbXBvbmVudCgiRXhwYW5kRGVlcEJ1dHRvbiIpLCQ9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIiksVj11c2VDb21wb25lbnQoIktleXdvcmRUeXBlIiksVT0oMCxSZS51c2VDYWxsYmFjaykoKCgpPT57Xz94KCk6dygpfSksW18sdyx4XSksej0oMCxSZS51c2VDYWxsYmFjaykoKChzLG8pPT57bz93KHtkZWVwOiEwfSk6eCh7ZGVlcDohMH0pfSksW3cseF0pO3JldHVybiBBcnJheS5pc0FycmF5KG8pJiYwIT09by5sZW5ndGg/UmUuY3JlYXRlRWxlbWVudChpVC5Qcm92aWRlcix7dmFsdWU6dX0sUmUuY3JlYXRlRWxlbWVudChzVC5Qcm92aWRlcix7dmFsdWU6an0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1vbmVPZiIsImRhdGEtanNvbi1zY2hlbWEtbGV2ZWwiOkN9LFJlLmNyZWF0ZUVsZW1lbnQoTCx7ZXhwYW5kZWQ6XyxvbkNoYW5nZTpVfSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIk9uZSBvZiIpKSxSZS5jcmVhdGVFbGVtZW50KEIse2V4cGFuZGVkOl8sb25DbGljazp6fSksUmUuY3JlYXRlRWxlbWVudChWLHtzY2hlbWE6e29uZU9mOm99fSksUmUuY3JlYXRlRWxlbWVudCgidWwiLHtjbGFzc05hbWU6Sm4oKSgianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbiIseyJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWQiOiFffSl9LF8mJlJlLmNyZWF0ZUVsZW1lbnQoUmUuRnJhZ21lbnQsbnVsbCxvLm1hcCgoKHMsbyk9PlJlLmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OmAjJHtvfWAsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sUmUuY3JlYXRlRWxlbWVudCgkLHtuYW1lOmAjJHtvfSAke2kuZ2V0VGl0bGUocyl9YCxzY2hlbWE6c30pKSkpKSkpKSk6bnVsbH0sa2V5d29yZHNfTm90PSh7c2NoZW1hOnN9KT0+e2NvbnN0IG89dXNlRm4oKSxpPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpO2lmKCFvLmhhc0tleXdvcmQocywibm90IikpcmV0dXJuIG51bGw7Y29uc3QgYT1SZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIk5vdCIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLW5vdCJ9LFJlLmNyZWF0ZUVsZW1lbnQoaSx7bmFtZTphLHNjaGVtYTpzLm5vdCxpZGVudGlmaWVyOiJub3QifSkpfSxrZXl3b3Jkc19JZj0oe3NjaGVtYTpzfSk9Pntjb25zdCBvPXVzZUZuKCksaT11c2VDb21wb25lbnQoIkpTT05TY2hlbWEiKTtpZighby5oYXNLZXl3b3JkKHMsImlmIikpcmV0dXJuIG51bGw7Y29uc3QgYT1SZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIklmIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0taWYifSxSZS5jcmVhdGVFbGVtZW50KGkse25hbWU6YSxzY2hlbWE6cy5pZixpZGVudGlmaWVyOiJpZiJ9KSl9LGtleXdvcmRzX1RoZW49KHtzY2hlbWE6c30pPT57Y29uc3Qgbz11c2VGbigpLGk9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIik7aWYoIW8uaGFzS2V5d29yZChzLCJ0aGVuIikpcmV0dXJuIG51bGw7Y29uc3QgYT1SZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIlRoZW4iKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS10aGVuIn0sUmUuY3JlYXRlRWxlbWVudChpLHtuYW1lOmEsc2NoZW1hOnMudGhlbixpZGVudGlmaWVyOiJ0aGVuIn0pKX0sa2V5d29yZHNfRWxzZT0oe3NjaGVtYTpzfSk9Pntjb25zdCBvPXVzZUZuKCksaT11c2VDb21wb25lbnQoIkpTT05TY2hlbWEiKTtpZighby5oYXNLZXl3b3JkKHMsImVsc2UiKSlyZXR1cm4gbnVsbDtjb25zdCBhPVJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnkifSwiRWxzZSIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWlmIn0sUmUuY3JlYXRlRWxlbWVudChpLHtuYW1lOmEsc2NoZW1hOnMuZWxzZSxpZGVudGlmaWVyOiJlbHNlIn0pKX0sa2V5d29yZHNfRGVwZW5kZW50U2NoZW1hcz0oe3NjaGVtYTpzfSk9Pntjb25zdCBvPXM/LmRlcGVuZGVudFNjaGVtYXN8fFtdLGk9ImRlcGVuZGVudFNjaGVtYXMiLHtwYXRoOmF9PXVzZVBhdGgoaSkse2lzRXhwYW5kZWQ6dSxzZXRFeHBhbmRlZDpfLHNldENvbGxhcHNlZDp3fT11c2VJc0V4cGFuZGVkKGkpLFt4LENdPXVzZUxldmVsKCksaj11c2VDb21wb25lbnQoIkFjY29yZGlvbiIpLEw9dXNlQ29tcG9uZW50KCJFeHBhbmREZWVwQnV0dG9uIiksQj11c2VDb21wb25lbnQoIkpTT05TY2hlbWEiKSwkPSgwLFJlLnVzZUNhbGxiYWNrKSgoKCk9Pnt1P3coKTpfKCl9KSxbdSxfLHddKSxWPSgwLFJlLnVzZUNhbGxiYWNrKSgoKHMsbyk9PntvP18oe2RlZXA6ITB9KTp3KHtkZWVwOiEwfSl9KSxbXyx3XSk7cmV0dXJuIm9iamVjdCIhPXR5cGVvZiBvfHwwPT09T2JqZWN0LmtleXMobykubGVuZ3RoP251bGw6UmUuY3JlYXRlRWxlbWVudChpVC5Qcm92aWRlcix7dmFsdWU6YX0sUmUuY3JlYXRlRWxlbWVudChzVC5Qcm92aWRlcix7dmFsdWU6Q30sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kZXBlbmRlbnRTY2hlbWFzIiwiZGF0YS1qc29uLXNjaGVtYS1sZXZlbCI6eH0sUmUuY3JlYXRlRWxlbWVudChqLHtleHBhbmRlZDp1LG9uQ2hhbmdlOiR9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnkifSwiRGVwZW5kZW50IHNjaGVtYXMiKSksUmUuY3JlYXRlRWxlbWVudChMLHtleHBhbmRlZDp1LG9uQ2xpY2s6Vn0pLFJlLmNyZWF0ZUVsZW1lbnQoInN0cm9uZyIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeSJ9LCJvYmplY3QiKSxSZS5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZTpKbigpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuIix7Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4tLWNvbGxhcHNlZCI6IXV9KX0sdSYmUmUuY3JlYXRlRWxlbWVudChSZS5GcmFnbWVudCxudWxsLE9iamVjdC5lbnRyaWVzKG8pLm1hcCgoKFtzLG9dKT0+UmUuY3JlYXRlRWxlbWVudCgibGkiLHtrZXk6cyxjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHkifSxSZS5jcmVhdGVFbGVtZW50KEIse25hbWU6cyxzY2hlbWE6b30pKSkpKSkpKSl9LGtleXdvcmRzX1ByZWZpeEl0ZW1zPSh7c2NoZW1hOnN9KT0+e2NvbnN0IG89cz8ucHJlZml4SXRlbXN8fFtdLGk9dXNlRm4oKSxhPSJwcmVmaXhJdGVtcyIse3BhdGg6dX09dXNlUGF0aChhKSx7aXNFeHBhbmRlZDpfLHNldEV4cGFuZGVkOncsc2V0Q29sbGFwc2VkOnh9PXVzZUlzRXhwYW5kZWQoYSksW0Msal09dXNlTGV2ZWwoKSxMPXVzZUNvbXBvbmVudCgiQWNjb3JkaW9uIiksQj11c2VDb21wb25lbnQoIkV4cGFuZERlZXBCdXR0b24iKSwkPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpLFY9dXNlQ29tcG9uZW50KCJLZXl3b3JkVHlwZSIpLFU9KDAsUmUudXNlQ2FsbGJhY2spKCgoKT0+e18/eCgpOncoKX0pLFtfLHcseF0pLHo9KDAsUmUudXNlQ2FsbGJhY2spKCgocyxvKT0+e28/dyh7ZGVlcDohMH0pOngoe2RlZXA6ITB9KX0pLFt3LHhdKTtyZXR1cm4gQXJyYXkuaXNBcnJheShvKSYmMCE9PW8ubGVuZ3RoP1JlLmNyZWF0ZUVsZW1lbnQoaVQuUHJvdmlkZXIse3ZhbHVlOnV9LFJlLmNyZWF0ZUVsZW1lbnQoc1QuUHJvdmlkZXIse3ZhbHVlOmp9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tcHJlZml4SXRlbXMiLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjpDfSxSZS5jcmVhdGVFbGVtZW50KEwse2V4cGFuZGVkOl8sb25DaGFuZ2U6VX0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJQcmVmaXggaXRlbXMiKSksUmUuY3JlYXRlRWxlbWVudChCLHtleHBhbmRlZDpfLG9uQ2xpY2s6en0pLFJlLmNyZWF0ZUVsZW1lbnQoVix7c2NoZW1hOntwcmVmaXhJdGVtczpvfX0pLFJlLmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOkpuKCkoImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4iLHsianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkIjohX30pfSxfJiZSZS5jcmVhdGVFbGVtZW50KFJlLkZyYWdtZW50LG51bGwsby5tYXAoKChzLG8pPT5SZS5jcmVhdGVFbGVtZW50KCJsaSIse2tleTpgIyR7b31gLGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSJ9LFJlLmNyZWF0ZUVsZW1lbnQoJCx7bmFtZTpgIyR7b30gJHtpLmdldFRpdGxlKHMpfWAsc2NoZW1hOnN9KSkpKSkpKSkpOm51bGx9LGtleXdvcmRzX0l0ZW1zPSh7c2NoZW1hOnN9KT0+e2NvbnN0IG89dXNlRm4oKSxpPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpO2lmKCFvLmhhc0tleXdvcmQocywiaXRlbXMiKSlyZXR1cm4gbnVsbDtjb25zdCBhPVJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnkifSwiSXRlbXMiKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1pdGVtcyJ9LFJlLmNyZWF0ZUVsZW1lbnQoaSx7bmFtZTphLHNjaGVtYTpzLml0ZW1zLGlkZW50aWZpZXI6Iml0ZW1zIn0pKX0sa2V5d29yZHNfQ29udGFpbnM9KHtzY2hlbWE6c30pPT57Y29uc3Qgbz11c2VGbigpLGk9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIik7aWYoIW8uaGFzS2V5d29yZChzLCJjb250YWlucyIpKXJldHVybiBudWxsO2NvbnN0IGE9UmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJDb250YWlucyIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWNvbnRhaW5zIn0sUmUuY3JlYXRlRWxlbWVudChpLHtuYW1lOmEsc2NoZW1hOnMuY29udGFpbnMsaWRlbnRpZmllcjoiY29udGFpbnMifSkpfSxrZXl3b3Jkc19Qcm9wZXJ0aWVzX1Byb3BlcnRpZXM9KHtzY2hlbWE6c30pPT57Y29uc3Qgbz11c2VGbigpLGk9cz8ucHJvcGVydGllc3x8e30sYT1BcnJheS5pc0FycmF5KHM/LnJlcXVpcmVkKT9zLnJlcXVpcmVkOltdLHU9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIikse3BhdGg6X309dXNlUGF0aCgicHJvcGVydGllcyIpO3JldHVybiAwPT09T2JqZWN0LmtleXMoaSkubGVuZ3RoP251bGw6UmUuY3JlYXRlRWxlbWVudChpVC5Qcm92aWRlcix7dmFsdWU6X30sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1wcm9wZXJ0aWVzIn0sUmUuY3JlYXRlRWxlbWVudCgidWwiLG51bGwsT2JqZWN0LmVudHJpZXMoaSkubWFwKCgoW2ksX10pPT57Y29uc3Qgdz1hLmluY2x1ZGVzKGkpLHg9by5nZXREZXBlbmRlbnRSZXF1aXJlZChpLHMpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJsaSIse2tleTppLGNsYXNzTmFtZTpKbigpKCJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5Iix7Impzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHktLXJlcXVpcmVkIjp3fSl9LFJlLmNyZWF0ZUVsZW1lbnQodSx7bmFtZTppLHNjaGVtYTpfLGRlcGVuZGVudFJlcXVpcmVkOnh9KSl9KSkpKSl9LFBhdHRlcm5Qcm9wZXJ0aWVzX1BhdHRlcm5Qcm9wZXJ0aWVzPSh7c2NoZW1hOnN9KT0+e2NvbnN0IG89cz8ucGF0dGVyblByb3BlcnRpZXN8fHt9LGk9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIikse3BhdGg6YX09dXNlUGF0aCgicGF0dGVyblByb3BlcnRpZXMiKTtyZXR1cm4gMD09PU9iamVjdC5rZXlzKG8pLmxlbmd0aD9udWxsOlJlLmNyZWF0ZUVsZW1lbnQoaVQuUHJvdmlkZXIse3ZhbHVlOmF9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tcGF0dGVyblByb3BlcnRpZXMifSxSZS5jcmVhdGVFbGVtZW50KCJ1bCIsbnVsbCxPYmplY3QuZW50cmllcyhvKS5tYXAoKChbcyxvXSk9PlJlLmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OnMsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sUmUuY3JlYXRlRWxlbWVudChpLHtuYW1lOnMsc2NoZW1hOm99KSkpKSkpKX0sa2V5d29yZHNfQWRkaXRpb25hbFByb3BlcnRpZXM9KHtzY2hlbWE6c30pPT57Y29uc3Qgbz11c2VGbigpLGk9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIik7aWYoIW8uaGFzS2V5d29yZChzLCJhZGRpdGlvbmFsUHJvcGVydGllcyIpKXJldHVybiBudWxsO2NvbnN0IGE9UmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJBZGRpdGlvbmFsIHByb3BlcnRpZXMiKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1hZGRpdGlvbmFsUHJvcGVydGllcyJ9LCEwPT09cy5hZGRpdGlvbmFsUHJvcGVydGllcz9SZS5jcmVhdGVFbGVtZW50KFJlLkZyYWdtZW50LG51bGwsYSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5In0sImFsbG93ZWQiKSk6ITE9PT1zLmFkZGl0aW9uYWxQcm9wZXJ0aWVzP1JlLmNyZWF0ZUVsZW1lbnQoUmUuRnJhZ21lbnQsbnVsbCxhLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnkifSwiZm9yYmlkZGVuIikpOlJlLmNyZWF0ZUVsZW1lbnQoaSx7bmFtZTphLHNjaGVtYTpzLmFkZGl0aW9uYWxQcm9wZXJ0aWVzLGlkZW50aWZpZXI6ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIn0pKX0sa2V5d29yZHNfUHJvcGVydHlOYW1lcz0oe3NjaGVtYTpzfSk9Pntjb25zdCBvPXVzZUZuKCksaT11c2VDb21wb25lbnQoIkpTT05TY2hlbWEiKSxhPVJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnkifSwiUHJvcGVydHkgbmFtZXMiKTtyZXR1cm4gby5oYXNLZXl3b3JkKHMsInByb3BlcnR5TmFtZXMiKT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLXByb3BlcnR5TmFtZXMifSxSZS5jcmVhdGVFbGVtZW50KGkse25hbWU6YSxzY2hlbWE6cy5wcm9wZXJ0eU5hbWVzLGlkZW50aWZpZXI6InByb3BlcnR5TmFtZXMifSkpOm51bGx9LGtleXdvcmRzX1VuZXZhbHVhdGVkSXRlbXM9KHtzY2hlbWE6c30pPT57Y29uc3Qgbz11c2VGbigpLGk9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIik7aWYoIW8uaGFzS2V5d29yZChzLCJ1bmV2YWx1YXRlZEl0ZW1zIikpcmV0dXJuIG51bGw7Y29uc3QgYT1SZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIlVuZXZhbHVhdGVkIGl0ZW1zIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tdW5ldmFsdWF0ZWRJdGVtcyJ9LFJlLmNyZWF0ZUVsZW1lbnQoaSx7bmFtZTphLHNjaGVtYTpzLnVuZXZhbHVhdGVkSXRlbXMsaWRlbnRpZmllcjoidW5ldmFsdWF0ZWRJdGVtcyJ9KSl9LGtleXdvcmRzX1VuZXZhbHVhdGVkUHJvcGVydGllcz0oe3NjaGVtYTpzfSk9Pntjb25zdCBvPXVzZUZuKCksaT11c2VDb21wb25lbnQoIkpTT05TY2hlbWEiKTtpZighby5oYXNLZXl3b3JkKHMsInVuZXZhbHVhdGVkUHJvcGVydGllcyIpKXJldHVybiBudWxsO2NvbnN0IGE9UmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJVbmV2YWx1YXRlZCBwcm9wZXJ0aWVzIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tdW5ldmFsdWF0ZWRQcm9wZXJ0aWVzIn0sUmUuY3JlYXRlRWxlbWVudChpLHtuYW1lOmEsc2NoZW1hOnMudW5ldmFsdWF0ZWRQcm9wZXJ0aWVzLGlkZW50aWZpZXI6InVuZXZhbHVhdGVkUHJvcGVydGllcyJ9KSl9LGtleXdvcmRzX1R5cGU9KHtzY2hlbWE6cyxpc0NpcmN1bGFyOm89ITF9KT0+e2NvbnN0IGk9dXNlRm4oKS5nZXRUeXBlKHMpLGE9bz8iIFtjaXJjdWxhcl0iOiIiO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJzdHJvbmciLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnkifSxgJHtpfSR7YX1gKX0sRW51bV9FbnVtPSh7c2NoZW1hOnN9KT0+e2NvbnN0IG89dXNlQ29tcG9uZW50KCJKU09OVmlld2VyIik7cmV0dXJuIEFycmF5LmlzQXJyYXkocz8uZW51bSk/UmUuY3JlYXRlRWxlbWVudChvLHtuYW1lOiJFbnVtIix2YWx1ZTpzLmVudW0sY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1lbnVtIn0pOm51bGx9LENvbnN0X0NvbnN0PSh7c2NoZW1hOnN9KT0+e2NvbnN0IG89dXNlRm4oKSxpPXVzZUNvbXBvbmVudCgiSlNPTlZpZXdlciIpO3JldHVybiBvLmhhc0tleXdvcmQocywiY29uc3QiKT9SZS5jcmVhdGVFbGVtZW50KGkse25hbWU6IkNvbnN0Iix2YWx1ZTpzLmNvbnN0LGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tY29uc3QifSk6bnVsbH0sZm5fdXBwZXJGaXJzdD1zPT4ic3RyaW5nIj09dHlwZW9mIHM/YCR7cy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke3Muc2xpY2UoMSl9YDpzLG1ha2VHZXRUaXRsZT1zPT4obyx7bG9va3VwOmk9ImV4dGVuZGVkIn09e30pPT57Y29uc3QgYT1zKCk7aWYobnVsbCE9bz8udGl0bGUpcmV0dXJuIGEudXBwZXJGaXJzdChTdHJpbmcoby50aXRsZSkpO2lmKCJleHRlbmRlZCI9PT1pKXtpZihudWxsIT1vPy4kYW5jaG9yKXJldHVybiBhLnVwcGVyRmlyc3QoU3RyaW5nKG8uJGFuY2hvcikpO2lmKG51bGwhPW8/LiRpZClyZXR1cm4gU3RyaW5nKG8uJGlkKX1yZXR1cm4iIn0sbWFrZUdldFR5cGU9cz0+e2NvbnN0IGdldFR5cGU9KG8saT1uZXcgV2Vha1NldCk9Pntjb25zdCBhPXMoKTtpZihudWxsPT1vKXJldHVybiJhbnkiO2lmKGEuaXNCb29sZWFuSlNPTlNjaGVtYShvKSlyZXR1cm4gbz8iYW55IjoibmV2ZXIiO2lmKCJvYmplY3QiIT10eXBlb2YgbylyZXR1cm4iYW55IjtpZihpLmhhcyhvKSlyZXR1cm4iYW55IjtpLmFkZChvKTtjb25zdHt0eXBlOnUscHJlZml4SXRlbXM6XyxpdGVtczp3fT1vLGdldEFycmF5VHlwZT0oKT0+e2lmKEFycmF5LmlzQXJyYXkoXykpe2NvbnN0IHM9Xy5tYXAoKHM9PmdldFR5cGUocyxpKSkpLG89dz9nZXRUeXBlKHcsaSk6ImFueSI7cmV0dXJuYGFycmF5PFske3Muam9pbigiLCAiKX1dLCAke299PmB9aWYodyl7cmV0dXJuYGFycmF5PCR7Z2V0VHlwZSh3LGkpfT5gfXJldHVybiJhcnJheTxhbnk+In07aWYoby5ub3QmJiJhbnkiPT09Z2V0VHlwZShvLm5vdCkpcmV0dXJuIm5ldmVyIjtjb25zdCBoYW5kbGVDb21iaW5pbmdLZXl3b3Jkcz0ocyxhKT0+e2lmKEFycmF5LmlzQXJyYXkob1tzXSkpe3JldHVybmAoJHtvW3NdLm1hcCgocz0+Z2V0VHlwZShzLGkpKSkuam9pbihhKX0pYH1yZXR1cm4gbnVsbH0seD1bQXJyYXkuaXNBcnJheSh1KT91Lm1hcCgocz0+ImFycmF5Ij09PXM/Z2V0QXJyYXlUeXBlKCk6cykpLmpvaW4oIiB8ICIpOiJhcnJheSI9PT11P2dldEFycmF5VHlwZSgpOlsibnVsbCIsImJvb2xlYW4iLCJvYmplY3QiLCJhcnJheSIsIm51bWJlciIsImludGVnZXIiLCJzdHJpbmciXS5pbmNsdWRlcyh1KT91OigoKT0+e2lmKE9iamVjdC5oYXNPd24obywicHJlZml4SXRlbXMiKXx8T2JqZWN0Lmhhc093bihvLCJpdGVtcyIpfHxPYmplY3QuaGFzT3duKG8sImNvbnRhaW5zIikpcmV0dXJuIGdldEFycmF5VHlwZSgpO2lmKE9iamVjdC5oYXNPd24obywicHJvcGVydGllcyIpfHxPYmplY3QuaGFzT3duKG8sImFkZGl0aW9uYWxQcm9wZXJ0aWVzIil8fE9iamVjdC5oYXNPd24obywicGF0dGVyblByb3BlcnRpZXMiKSlyZXR1cm4ib2JqZWN0IjtpZihbImludDMyIiwiaW50NjQiXS5pbmNsdWRlcyhvLmZvcm1hdCkpcmV0dXJuImludGVnZXIiO2lmKFsiZmxvYXQiLCJkb3VibGUiXS5pbmNsdWRlcyhvLmZvcm1hdCkpcmV0dXJuIm51bWJlciI7aWYoT2JqZWN0Lmhhc093bihvLCJtaW5pbXVtIil8fE9iamVjdC5oYXNPd24obywibWF4aW11bSIpfHxPYmplY3QuaGFzT3duKG8sImV4Y2x1c2l2ZU1pbmltdW0iKXx8T2JqZWN0Lmhhc093bihvLCJleGNsdXNpdmVNYXhpbXVtIil8fE9iamVjdC5oYXNPd24obywibXVsdGlwbGVPZiIpKXJldHVybiJudW1iZXIgfCBpbnRlZ2VyIjtpZihPYmplY3QuaGFzT3duKG8sInBhdHRlcm4iKXx8T2JqZWN0Lmhhc093bihvLCJmb3JtYXQiKXx8T2JqZWN0Lmhhc093bihvLCJtaW5MZW5ndGgiKXx8T2JqZWN0Lmhhc093bihvLCJtYXhMZW5ndGgiKXx8T2JqZWN0Lmhhc093bihvLCJjb250ZW50RW5jb2RpbmciKXx8T2JqZWN0Lmhhc093bihvLCJjb250ZW50TWVkaWFUeXBlIikpcmV0dXJuInN0cmluZyI7aWYodm9pZCAwIT09by5jb25zdCl7aWYobnVsbD09PW8uY29uc3QpcmV0dXJuIm51bGwiO2lmKCJib29sZWFuIj09dHlwZW9mIG8uY29uc3QpcmV0dXJuImJvb2xlYW4iO2lmKCJudW1iZXIiPT10eXBlb2Ygby5jb25zdClyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihvLmNvbnN0KT8iaW50ZWdlciI6Im51bWJlciI7aWYoInN0cmluZyI9PXR5cGVvZiBvLmNvbnN0KXJldHVybiJzdHJpbmciO2lmKEFycmF5LmlzQXJyYXkoby5jb25zdCkpcmV0dXJuImFycmF5PGFueT4iO2lmKCJvYmplY3QiPT10eXBlb2Ygby5jb25zdClyZXR1cm4ib2JqZWN0In1yZXR1cm4gbnVsbH0pKCksaGFuZGxlQ29tYmluaW5nS2V5d29yZHMoIm9uZU9mIiwiIHwgIiksaGFuZGxlQ29tYmluaW5nS2V5d29yZHMoImFueU9mIiwiIHwgIiksaGFuZGxlQ29tYmluaW5nS2V5d29yZHMoImFsbE9mIiwiICYgIildLmZpbHRlcihCb29sZWFuKS5qb2luKCIgfCAiKTtyZXR1cm4gaS5kZWxldGUobykseHx8ImFueSJ9O3JldHVybiBnZXRUeXBlfSxpc0Jvb2xlYW5KU09OU2NoZW1hPXM9PiJib29sZWFuIj09dHlwZW9mIHMsaGFzS2V5d29yZD0ocyxvKT0+bnVsbCE9PXMmJiJvYmplY3QiPT10eXBlb2YgcyYmT2JqZWN0Lmhhc093bihzLG8pLGZuX21ha2VJc0V4cGFuZGFibGU9cz0+bz0+e2NvbnN0IGk9cygpO3JldHVybiBvPy4kc2NoZW1hfHxvPy4kdm9jYWJ1bGFyeXx8bz8uJGlkfHxvPy4kYW5jaG9yfHxvPy4kZHluYW1pY0FuY2hvcnx8bz8uJHJlZnx8bz8uJGR5bmFtaWNSZWZ8fG8/LiRkZWZzfHxvPy4kY29tbWVudHx8bz8uYWxsT2Z8fG8/LmFueU9mfHxvPy5vbmVPZnx8aS5oYXNLZXl3b3JkKG8sIm5vdCIpfHxpLmhhc0tleXdvcmQobywiaWYiKXx8aS5oYXNLZXl3b3JkKG8sInRoZW4iKXx8aS5oYXNLZXl3b3JkKG8sImVsc2UiKXx8bz8uZGVwZW5kZW50U2NoZW1hc3x8bz8ucHJlZml4SXRlbXN8fGkuaGFzS2V5d29yZChvLCJpdGVtcyIpfHxpLmhhc0tleXdvcmQobywiY29udGFpbnMiKXx8bz8ucHJvcGVydGllc3x8bz8ucGF0dGVyblByb3BlcnRpZXN8fGkuaGFzS2V5d29yZChvLCJhZGRpdGlvbmFsUHJvcGVydGllcyIpfHxpLmhhc0tleXdvcmQobywicHJvcGVydHlOYW1lcyIpfHxpLmhhc0tleXdvcmQobywidW5ldmFsdWF0ZWRJdGVtcyIpfHxpLmhhc0tleXdvcmQobywidW5ldmFsdWF0ZWRQcm9wZXJ0aWVzIil8fG8/LmRlc2NyaXB0aW9ufHxvPy5lbnVtfHxpLmhhc0tleXdvcmQobywiY29uc3QiKXx8aS5oYXNLZXl3b3JkKG8sImNvbnRlbnRTY2hlbWEiKXx8aS5oYXNLZXl3b3JkKG8sImRlZmF1bHQiKXx8bz8uZXhhbXBsZXN8fGkuZ2V0RXh0ZW5zaW9uS2V5d29yZHMobykubGVuZ3RoPjB9LGZuX3N0cmluZ2lmeT1zPT5udWxsPT09c3x8WyJudW1iZXIiLCJiaWdpbnQiLCJib29sZWFuIl0uaW5jbHVkZXModHlwZW9mIHMpP1N0cmluZyhzKTpBcnJheS5pc0FycmF5KHMpP2BbJHtzLm1hcChmbl9zdHJpbmdpZnkpLmpvaW4oIiwgIil9XWA6SlNPTi5zdHJpbmdpZnkocyksc3RyaW5naWZ5Q29uc3RyYWludFJhbmdlPShzLG8saSk9Pntjb25zdCBhPSJudW1iZXIiPT10eXBlb2Ygbyx1PSJudW1iZXIiPT10eXBlb2YgaTtyZXR1cm4gYSYmdT9vPT09aT9gJHtvfSAke3N9YDpgWyR7b30sICR7aX1dICR7c31gOmE/YOKJpSAke299ICR7c31gOnU/YOKJpCAke2l9ICR7c31gOm51bGx9LHN0cmluZ2lmeUNvbnN0cmFpbnRzPXM9Pntjb25zdCBvPVtdLGk9KHM9PntpZigibnVtYmVyIiE9dHlwZW9mIHM/Lm11bHRpcGxlT2YpcmV0dXJuIG51bGw7aWYocy5tdWx0aXBsZU9mPD0wKXJldHVybiBudWxsO2lmKDE9PT1zLm11bHRpcGxlT2YpcmV0dXJuIG51bGw7Y29uc3R7bXVsdGlwbGVPZjpvfT1zO2lmKE51bWJlci5pc0ludGVnZXIobykpcmV0dXJuYG11bHRpcGxlIG9mICR7b31gO2NvbnN0IGk9MTAqKm8udG9TdHJpbmcoKS5zcGxpdCgiLiIpWzFdLmxlbmd0aDtyZXR1cm5gbXVsdGlwbGUgb2YgJHtvKml9LyR7aX1gfSkocyk7bnVsbCE9PWkmJm8ucHVzaCh7c2NvcGU6Im51bWJlciIsdmFsdWU6aX0pO2NvbnN0IGE9KHM9Pntjb25zdCBvPXM/Lm1pbmltdW0saT1zPy5tYXhpbXVtLGE9cz8uZXhjbHVzaXZlTWluaW11bSx1PXM/LmV4Y2x1c2l2ZU1heGltdW0sXz0ibnVtYmVyIj09dHlwZW9mIG8sdz0ibnVtYmVyIj09dHlwZW9mIGkseD0ibnVtYmVyIj09dHlwZW9mIGEsQz0ibnVtYmVyIj09dHlwZW9mIHUsaj14JiYoIV98fG88YSksTD1DJiYoIXd8fGk+dSk7aWYoKF98fHgpJiYod3x8QykpcmV0dXJuYCR7aj8iKCI6IlsifSR7aj9hOm99LCAke0w/dTppfSR7TD8iKSI6Il0ifWA7aWYoX3x8eClyZXR1cm5gJHtqPyI+Ijoi4omlIn0gJHtqP2E6b31gO2lmKHd8fEMpcmV0dXJuYCR7TD8iPCI6IuKJpCJ9ICR7TD91Oml9YDtyZXR1cm4gbnVsbH0pKHMpO251bGwhPT1hJiZvLnB1c2goe3Njb3BlOiJudW1iZXIiLHZhbHVlOmF9KSxzPy5mb3JtYXQmJm8ucHVzaCh7c2NvcGU6InN0cmluZyIsdmFsdWU6cy5mb3JtYXR9KTtjb25zdCB1PXN0cmluZ2lmeUNvbnN0cmFpbnRSYW5nZSgiY2hhcmFjdGVycyIscz8ubWluTGVuZ3RoLHM/Lm1heExlbmd0aCk7bnVsbCE9PXUmJm8ucHVzaCh7c2NvcGU6InN0cmluZyIsdmFsdWU6dX0pLHM/LnBhdHRlcm4mJm8ucHVzaCh7c2NvcGU6InN0cmluZyIsdmFsdWU6YG1hdGNoZXMgJHtzPy5wYXR0ZXJufWB9KSxzPy5jb250ZW50TWVkaWFUeXBlJiZvLnB1c2goe3Njb3BlOiJzdHJpbmciLHZhbHVlOmBtZWRpYSB0eXBlOiAke3MuY29udGVudE1lZGlhVHlwZX1gfSkscz8uY29udGVudEVuY29kaW5nJiZvLnB1c2goe3Njb3BlOiJzdHJpbmciLHZhbHVlOmBlbmNvZGluZzogJHtzLmNvbnRlbnRFbmNvZGluZ31gfSk7Y29uc3QgXz1zdHJpbmdpZnlDb25zdHJhaW50UmFuZ2Uocz8udW5pcXVlSXRlbXM/InVuaXF1ZSBpdGVtcyI6Iml0ZW1zIixzPy5taW5JdGVtcyxzPy5tYXhJdGVtcyk7bnVsbCE9PV8mJm8ucHVzaCh7c2NvcGU6ImFycmF5Iix2YWx1ZTpffSkscz8udW5pcXVlSXRlbXMmJiFfJiZvLnB1c2goe3Njb3BlOiJhcnJheSIsdmFsdWU6InVuaXF1ZSJ9KTtjb25zdCB3PXN0cmluZ2lmeUNvbnN0cmFpbnRSYW5nZSgiY29udGFpbmVkIGl0ZW1zIixzPy5taW5Db250YWlucyxzPy5tYXhDb250YWlucyk7bnVsbCE9PXcmJm8ucHVzaCh7c2NvcGU6ImFycmF5Iix2YWx1ZTp3fSk7Y29uc3QgeD1zdHJpbmdpZnlDb25zdHJhaW50UmFuZ2UoInByb3BlcnRpZXMiLHM/Lm1pblByb3BlcnRpZXMscz8ubWF4UHJvcGVydGllcyk7cmV0dXJuIG51bGwhPT14JiZvLnB1c2goe3Njb3BlOiJvYmplY3QiLHZhbHVlOnh9KSxvfSxnZXREZXBlbmRlbnRSZXF1aXJlZD0ocyxvKT0+bz8uZGVwZW5kZW50UmVxdWlyZWQ/QXJyYXkuZnJvbShPYmplY3QuZW50cmllcyhvLmRlcGVuZGVudFJlcXVpcmVkKS5yZWR1Y2UoKChvLFtpLGFdKT0+QXJyYXkuaXNBcnJheShhKSYmYS5pbmNsdWRlcyhzKT8oby5hZGQoaSksbyk6byksbmV3IFNldCkpOltdLGZuX2lzUGxhaW5PYmplY3Q9cz0+Im9iamVjdCI9PXR5cGVvZiBzJiZudWxsIT09cyYmIUFycmF5LmlzQXJyYXkocykmJihudWxsPT09T2JqZWN0LmdldFByb3RvdHlwZU9mKHMpfHxPYmplY3QuZ2V0UHJvdG90eXBlT2Yocyk9PT1PYmplY3QucHJvdG90eXBlKSxnZXRTY2hlbWFLZXl3b3Jkcz0oKT0+WyIkc2NoZW1hIiwiJHZvY2FidWxhcnkiLCIkaWQiLCIkYW5jaG9yIiwiJGR5bmFtaWNBbmNob3IiLCIkZHluYW1pY1JlZiIsIiRyZWYiLCIkZGVmcyIsIiRjb21tZW50IiwiYWxsT2YiLCJhbnlPZiIsIm9uZU9mIiwibm90IiwiaWYiLCJ0aGVuIiwiZWxzZSIsImRlcGVuZGVudFNjaGVtYXMiLCJwcmVmaXhJdGVtcyIsIml0ZW1zIiwiY29udGFpbnMiLCJwcm9wZXJ0aWVzIiwicGF0dGVyblByb3BlcnRpZXMiLCJhZGRpdGlvbmFsUHJvcGVydGllcyIsInByb3BlcnR5TmFtZXMiLCJ1bmV2YWx1YXRlZEl0ZW1zIiwidW5ldmFsdWF0ZWRQcm9wZXJ0aWVzIiwidHlwZSIsImVudW0iLCJjb25zdCIsIm11bHRpcGxlT2YiLCJtYXhpbXVtIiwiZXhjbHVzaXZlTWF4aW11bSIsIm1pbmltdW0iLCJleGNsdXNpdmVNaW5pbXVtIiwibWF4TGVuZ3RoIiwibWluTGVuZ3RoIiwicGF0dGVybiIsIm1heEl0ZW1zIiwibWluSXRlbXMiLCJ1bmlxdWVJdGVtcyIsIm1heENvbnRhaW5zIiwibWluQ29udGFpbnMiLCJtYXhQcm9wZXJ0aWVzIiwibWluUHJvcGVydGllcyIsInJlcXVpcmVkIiwiZGVwZW5kZW50UmVxdWlyZWQiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiZGVmYXVsdCIsImRlcHJlY2F0ZWQiLCJyZWFkT25seSIsIndyaXRlT25seSIsImV4YW1wbGVzIiwiZm9ybWF0IiwiY29udGVudEVuY29kaW5nIiwiY29udGVudE1lZGlhVHlwZSIsImNvbnRlbnRTY2hlbWEiXSxtYWtlR2V0RXh0ZW5zaW9uS2V5d29yZHM9cz0+bz0+e2NvbnN0IGk9cygpLmdldFNjaGVtYUtleXdvcmRzKCk7cmV0dXJuIGZuX2lzUGxhaW5PYmplY3Qobyk/KChzLG8pPT57Y29uc3QgaT1uZXcgU2V0KG8pO3JldHVybiBzLmZpbHRlcigocz0+IWkuaGFzKHMpKSl9KShPYmplY3Qua2V5cyhvKSxpKTpbXX0sZm5faGFzU2NoZW1hVHlwZT0ocyxvKT0+e2NvbnN0IGk9emUuTWFwLmlzTWFwKHMpO2lmKCFpJiYhZm5faXNQbGFpbk9iamVjdChzKSlyZXR1cm4hMTtjb25zdCBoYXNUeXBlPXM9Pm89PT1zfHxBcnJheS5pc0FycmF5KG8pJiZvLmluY2x1ZGVzKHMpLGE9aT9zLmdldCgidHlwZSIpOnMudHlwZTtyZXR1cm4gemUuTGlzdC5pc0xpc3QoYSl8fEFycmF5LmlzQXJyYXkoYSk/YS5zb21lKChzPT5oYXNUeXBlKHMpKSk6aGFzVHlwZShhKX0sQ29uc3RyYWludD0oe2NvbnN0cmFpbnQ6c30pPT5mbl9pc1BsYWluT2JqZWN0KHMpJiYic3RyaW5nIj09dHlwZW9mIHMuc2NvcGUmJiJzdHJpbmciPT10eXBlb2Ygcy52YWx1ZT9SZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmBqc29uLXNjaGVtYS0yMDIwLTEyX19jb25zdHJhaW50IGpzb24tc2NoZW1hLTIwMjAtMTJfX2NvbnN0cmFpbnQtLSR7cy5zY29wZX1gfSxzLnZhbHVlKTpudWxsLGxUPVJlLm1lbW8oQ29uc3RyYWludCksRGVwZW5kZW50UmVxdWlyZWRfRGVwZW5kZW50UmVxdWlyZWQ9KHtkZXBlbmRlbnRSZXF1aXJlZDpzfSk9PkFycmF5LmlzQXJyYXkocykmJjAhPT1zLmxlbmd0aD9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWRlcGVuZGVudFJlcXVpcmVkIn0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJSZXF1aXJlZCB3aGVuIGRlZmluZWQiKSxSZS5jcmVhdGVFbGVtZW50KCJ1bCIsbnVsbCxzLm1hcCgocz0+UmUuY3JlYXRlRWxlbWVudCgibGkiLHtrZXk6c30sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS13YXJuaW5nIn0scykpKSkpKTpudWxsLGtleXdvcmRzX0NvbnRlbnRTY2hlbWE9KHtzY2hlbWE6c30pPT57Y29uc3Qgbz11c2VGbigpLGk9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIik7aWYoIW8uaGFzS2V5d29yZChzLCJjb250ZW50U2NoZW1hIikpcmV0dXJuIG51bGw7Y29uc3QgYT1SZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIkNvbnRlbnQgc2NoZW1hIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tY29udGVudFNjaGVtYSJ9LFJlLmNyZWF0ZUVsZW1lbnQoaSx7bmFtZTphLHNjaGVtYTpzLmNvbnRlbnRTY2hlbWEsaWRlbnRpZmllcjoiY29udGVudFNjaGVtYSJ9KSl9LFRpdGxlX1RpdGxlPSh7dGl0bGU6cz0iIixzY2hlbWE6b30pPT57Y29uc3QgaT11c2VGbigpLGE9c3x8aS5nZXRUaXRsZShvKTtyZXR1cm4gYT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX3RpdGxlIn0sYSk6bnVsbH0sa2V5d29yZHNfRGVzY3JpcHRpb25fRGVzY3JpcHRpb249KHtzY2hlbWE6c30pPT5zPy5kZXNjcmlwdGlvbj9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWRlc2NyaXB0aW9uIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWNvcmUta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1jb3JlLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxzLmRlc2NyaXB0aW9uKSk6bnVsbCxEZWZhdWx0X0RlZmF1bHQ9KHtzY2hlbWE6c30pPT57Y29uc3Qgbz11c2VGbigpLGk9dXNlQ29tcG9uZW50KCJKU09OVmlld2VyIik7cmV0dXJuIG8uaGFzS2V5d29yZChzLCJkZWZhdWx0Iik/UmUuY3JlYXRlRWxlbWVudChpLHtuYW1lOiJEZWZhdWx0Iix2YWx1ZTpzLmRlZmF1bHQsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kZWZhdWx0In0pOm51bGx9LGtleXdvcmRzX0RlcHJlY2F0ZWQ9KHtzY2hlbWE6c30pPT4hMCE9PXM/LmRlcHJlY2F0ZWQ/bnVsbDpSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS13YXJuaW5nIn0sImRlcHJlY2F0ZWQiKSxrZXl3b3Jkc19SZWFkT25seT0oe3NjaGVtYTpzfSk9PiEwIT09cz8ucmVhZE9ubHk/bnVsbDpSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1tdXRlZCJ9LCJyZWFkLW9ubHkiKSxrZXl3b3Jkc19Xcml0ZU9ubHk9KHtzY2hlbWE6c30pPT4hMCE9PXM/LndyaXRlT25seT9udWxsOlJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLW11dGVkIn0sIndyaXRlLW9ubHkiKSxrZXl3b3Jkc19FeGFtcGxlc19FeGFtcGxlcz0oe3NjaGVtYTpzfSk9Pntjb25zdCBvPXM/LmV4YW1wbGVzfHxbXSxpPXVzZUNvbXBvbmVudCgiSlNPTlZpZXdlciIpO3JldHVybiBBcnJheS5pc0FycmF5KG8pJiYwIT09by5sZW5ndGg/UmUuY3JlYXRlRWxlbWVudChpLHtuYW1lOiJFeGFtcGxlcyIsdmFsdWU6cy5leGFtcGxlcyxjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWV4YW1wbGVzIn0pOm51bGx9LEV4dGVuc2lvbktleXdvcmRzX0V4dGVuc2lvbktleXdvcmRzPSh7c2NoZW1hOnN9KT0+e2NvbnN0IG89dXNlRm4oKSxpPSJFeHRlbnNpb25LZXl3b3JkcyIse3BhdGg6YX09dXNlUGF0aChpKSx7aXNFeHBhbmRlZDp1LHNldEV4cGFuZGVkOl8sc2V0Q29sbGFwc2VkOnd9PXVzZUlzRXhwYW5kZWQoaSksW3gsQ109dXNlTGV2ZWwoKSxqPXVzZUNvbXBvbmVudCgiQWNjb3JkaW9uIiksTD11c2VDb21wb25lbnQoIkV4cGFuZERlZXBCdXR0b24iKSxCPXVzZUNvbXBvbmVudCgiSlNPTlZpZXdlciIpLHtzaG93RXh0ZW5zaW9uS2V5d29yZHM6JH09dXNlQ29uZmlnKCksVj1vLmdldEV4dGVuc2lvbktleXdvcmRzKHMpLFU9KDAsUmUudXNlQ2FsbGJhY2spKCgoKT0+e3U/dygpOl8oKX0pLFt1LF8sd10pLHo9KDAsUmUudXNlQ2FsbGJhY2spKCgocyxvKT0+e28/Xyh7ZGVlcDohMH0pOncoe2RlZXA6ITB9KX0pLFtfLHddKTtyZXR1cm4gJCYmMCE9PVYubGVuZ3RoP1JlLmNyZWF0ZUVsZW1lbnQoaVQuUHJvdmlkZXIse3ZhbHVlOmF9LFJlLmNyZWF0ZUVsZW1lbnQoc1QuUHJvdmlkZXIse3ZhbHVlOkN9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZXh0ZW5zaW9uLWtleXdvcmRzIiwiZGF0YS1qc29uLXNjaGVtYS1sZXZlbCI6eH0sUmUuY3JlYXRlRWxlbWVudChqLHtleHBhbmRlZDp1LG9uQ2hhbmdlOlV9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLWV4dGVuc2lvbiJ9LCJFeHRlbnNpb24gS2V5d29yZHMiKSksUmUuY3JlYXRlRWxlbWVudChMLHtleHBhbmRlZDp1LG9uQ2xpY2s6en0pLFJlLmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOkpuKCkoImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4iLHsianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkIjohdX0pfSx1JiZSZS5jcmVhdGVFbGVtZW50KFJlLkZyYWdtZW50LG51bGwsVi5tYXAoKG89PlJlLmNyZWF0ZUVsZW1lbnQoQix7a2V5Om8sbmFtZTpvLHZhbHVlOnNbb10sY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyLWV4dGVuc2lvbi1rZXl3b3JkIn0pKSkpKSkpKTpudWxsfSxKU09OVmlld2VyPSh7bmFtZTpzLHZhbHVlOm8sY2xhc3NOYW1lOml9KT0+e2NvbnN0IGE9dXNlRm4oKSx7cGF0aDp1fT11c2VQYXRoKHMpLHtpc0V4cGFuZGVkOl8sc2V0RXhwYW5kZWQ6dyxzZXRDb2xsYXBzZWQ6eH09dXNlSXNFeHBhbmRlZChzKSxbQyxqXT11c2VMZXZlbCgpLEw9dXNlQ29tcG9uZW50KCJBY2NvcmRpb24iKSxCPXVzZUNvbXBvbmVudCgiRXhwYW5kRGVlcEJ1dHRvbiIpLCQ9InN0cmluZyI9PXR5cGVvZiBvfHwibnVtYmVyIj09dHlwZW9mIG98fCJiaWdpbnQiPT10eXBlb2Ygb3x8ImJvb2xlYW4iPT10eXBlb2Ygb3x8InN5bWJvbCI9PXR5cGVvZiBvfHxudWxsPT1vLFY9KHM9PmZuX2lzUGxhaW5PYmplY3QocykmJjA9PT1PYmplY3Qua2V5cyhzKS5sZW5ndGgpKG8pfHwocz0+QXJyYXkuaXNBcnJheShzKSYmMD09PXMubGVuZ3RoKShvKSxVPSgwLFJlLnVzZUNhbGxiYWNrKSgoKCk9PntfP3goKTp3KCl9KSxbXyx3LHhdKSx6PSgwLFJlLnVzZUNhbGxiYWNrKSgoKHMsbyk9PntvP3coe2RlZXA6ITB9KTp4KHtkZWVwOiEwfSl9KSxbdyx4XSk7cmV0dXJuICQ/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkpuKCkoImpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXIiLGkpfSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX25hbWUtLXNlY29uZGFyeSJ9LHMpLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX3ZhbHVlLS1zZWNvbmRhcnkifSxhLnN0cmluZ2lmeShvKSkpOlY/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkpuKCkoImpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXIiLGkpfSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX25hbWUtLXNlY29uZGFyeSJ9LHMpLFJlLmNyZWF0ZUVsZW1lbnQoInN0cm9uZyIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeSJ9LEFycmF5LmlzQXJyYXkobyk/ImVtcHR5IGFycmF5IjoiZW1wdHkgb2JqZWN0IikpOlJlLmNyZWF0ZUVsZW1lbnQoaVQuUHJvdmlkZXIse3ZhbHVlOnV9LFJlLmNyZWF0ZUVsZW1lbnQoc1QuUHJvdmlkZXIse3ZhbHVlOmp9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpKbigpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyIixpKSwiZGF0YS1qc29uLXNjaGVtYS1sZXZlbCI6Q30sUmUuY3JlYXRlRWxlbWVudChMLHtleHBhbmRlZDpfLG9uQ2hhbmdlOlV9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fbmFtZS0tc2Vjb25kYXJ5In0scykpLFJlLmNyZWF0ZUVsZW1lbnQoQix7ZXhwYW5kZWQ6XyxvbkNsaWNrOnp9KSxSZS5jcmVhdGVFbGVtZW50KCJzdHJvbmciLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnkifSxBcnJheS5pc0FycmF5KG8pPyJhcnJheSI6Im9iamVjdCIpLFJlLmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOkpuKCkoImpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX2NoaWxkcmVuIix7Impzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX2NoaWxkcmVuLS1jb2xsYXBzZWQiOiFffSl9LF8mJlJlLmNyZWF0ZUVsZW1lbnQoUmUuRnJhZ21lbnQsbnVsbCxBcnJheS5pc0FycmF5KG8pP28ubWFwKCgocyxvKT0+UmUuY3JlYXRlRWxlbWVudCgibGkiLHtrZXk6YCMke299YCxjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHkifSxSZS5jcmVhdGVFbGVtZW50KEpTT05WaWV3ZXIse25hbWU6YCMke299YCx2YWx1ZTpzLGNsYXNzTmFtZTppfSkpKSk6T2JqZWN0LmVudHJpZXMobykubWFwKCgoW3Msb10pPT5SZS5jcmVhdGVFbGVtZW50KCJsaSIse2tleTpzLGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSJ9LFJlLmNyZWF0ZUVsZW1lbnQoSlNPTlZpZXdlcix7bmFtZTpzLHZhbHVlOm8sY2xhc3NOYW1lOml9KSkpKSkpKSkpfSx1VD1KU09OVmlld2VyLEFjY29yZGlvbl9BY2NvcmRpb249KHtleHBhbmRlZDpzPSExLGNoaWxkcmVuOm8sb25DaGFuZ2U6aX0pPT57Y29uc3QgYT11c2VDb21wb25lbnQoIkNoZXZyb25SaWdodEljb24iKSx1PSgwLFJlLnVzZUNhbGxiYWNrKSgobz0+e2kobywhcyl9KSxbcyxpXSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWFjY29yZGlvbiIsb25DbGljazp1fSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItYWNjb3JkaW9uX19jaGlsZHJlbiJ9LG8pLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Sm4oKSgianNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb25fX2ljb24iLHsianNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb25fX2ljb24tLWV4cGFuZGVkIjpzLCJqc29uLXNjaGVtYS0yMDIwLTEyLWFjY29yZGlvbl9faWNvbi0tY29sbGFwc2VkIjohc30pfSxSZS5jcmVhdGVFbGVtZW50KGEsbnVsbCkpKX0sRXhwYW5kRGVlcEJ1dHRvbl9FeHBhbmREZWVwQnV0dG9uPSh7ZXhwYW5kZWQ6cyxvbkNsaWNrOm99KT0+e2NvbnN0IGk9KDAsUmUudXNlQ2FsbGJhY2spKChpPT57byhpLCFzKX0pLFtzLG9dKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItZXhwYW5kLWRlZXAtYnV0dG9uIixvbkNsaWNrOml9LHM/IkNvbGxhcHNlIGFsbCI6IkV4cGFuZCBhbGwiKX0saWNvbnNfQ2hldnJvblJpZ2h0PSgpPT5SZS5jcmVhdGVFbGVtZW50KCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOiIyNCIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0In0sUmUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMCA2TDguNTkgNy40MSAxMy4xNyAxMmwtNC41OCA0LjU5TDEwIDE4bDYtNnoifSkpLHdpdGhKU09OU2NoZW1hQ29udGV4dD0ocyxvPXt9KT0+e2NvbnN0IGk9e2NvbXBvbmVudHM6e0pTT05TY2hlbWE6Y1QsS2V5d29yZCRzY2hlbWE6a2V5d29yZHNfJHNjaGVtYSxLZXl3b3JkJHZvY2FidWxhcnk6JHZvY2FidWxhcnlfJHZvY2FidWxhcnksS2V5d29yZCRpZDprZXl3b3Jkc18kaWQsS2V5d29yZCRhbmNob3I6a2V5d29yZHNfJGFuY2hvcixLZXl3b3JkJGR5bmFtaWNBbmNob3I6a2V5d29yZHNfJGR5bmFtaWNBbmNob3IsS2V5d29yZCRyZWY6a2V5d29yZHNfJHJlZixLZXl3b3JkJGR5bmFtaWNSZWY6a2V5d29yZHNfJGR5bmFtaWNSZWYsS2V5d29yZCRkZWZzOmtleXdvcmRzXyRkZWZzLEtleXdvcmQkY29tbWVudDprZXl3b3Jkc18kY29tbWVudCxLZXl3b3JkQWxsT2Y6a2V5d29yZHNfQWxsT2YsS2V5d29yZEFueU9mOmtleXdvcmRzX0FueU9mLEtleXdvcmRPbmVPZjprZXl3b3Jkc19PbmVPZixLZXl3b3JkTm90OmtleXdvcmRzX05vdCxLZXl3b3JkSWY6a2V5d29yZHNfSWYsS2V5d29yZFRoZW46a2V5d29yZHNfVGhlbixLZXl3b3JkRWxzZTprZXl3b3Jkc19FbHNlLEtleXdvcmREZXBlbmRlbnRTY2hlbWFzOmtleXdvcmRzX0RlcGVuZGVudFNjaGVtYXMsS2V5d29yZFByZWZpeEl0ZW1zOmtleXdvcmRzX1ByZWZpeEl0ZW1zLEtleXdvcmRJdGVtczprZXl3b3Jkc19JdGVtcyxLZXl3b3JkQ29udGFpbnM6a2V5d29yZHNfQ29udGFpbnMsS2V5d29yZFByb3BlcnRpZXM6a2V5d29yZHNfUHJvcGVydGllc19Qcm9wZXJ0aWVzLEtleXdvcmRQYXR0ZXJuUHJvcGVydGllczpQYXR0ZXJuUHJvcGVydGllc19QYXR0ZXJuUHJvcGVydGllcyxLZXl3b3JkQWRkaXRpb25hbFByb3BlcnRpZXM6a2V5d29yZHNfQWRkaXRpb25hbFByb3BlcnRpZXMsS2V5d29yZFByb3BlcnR5TmFtZXM6a2V5d29yZHNfUHJvcGVydHlOYW1lcyxLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtczprZXl3b3Jkc19VbmV2YWx1YXRlZEl0ZW1zLEtleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXM6a2V5d29yZHNfVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzLEtleXdvcmRUeXBlOmtleXdvcmRzX1R5cGUsS2V5d29yZEVudW06RW51bV9FbnVtLEtleXdvcmRDb25zdDpDb25zdF9Db25zdCxLZXl3b3JkQ29uc3RyYWludDpsVCxLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQ6RGVwZW5kZW50UmVxdWlyZWRfRGVwZW5kZW50UmVxdWlyZWQsS2V5d29yZENvbnRlbnRTY2hlbWE6a2V5d29yZHNfQ29udGVudFNjaGVtYSxLZXl3b3JkVGl0bGU6VGl0bGVfVGl0bGUsS2V5d29yZERlc2NyaXB0aW9uOmtleXdvcmRzX0Rlc2NyaXB0aW9uX0Rlc2NyaXB0aW9uLEtleXdvcmREZWZhdWx0OkRlZmF1bHRfRGVmYXVsdCxLZXl3b3JkRGVwcmVjYXRlZDprZXl3b3Jkc19EZXByZWNhdGVkLEtleXdvcmRSZWFkT25seTprZXl3b3Jkc19SZWFkT25seSxLZXl3b3JkV3JpdGVPbmx5OmtleXdvcmRzX1dyaXRlT25seSxLZXl3b3JkRXhhbXBsZXM6a2V5d29yZHNfRXhhbXBsZXNfRXhhbXBsZXMsRXh0ZW5zaW9uS2V5d29yZHM6RXh0ZW5zaW9uS2V5d29yZHNfRXh0ZW5zaW9uS2V5d29yZHMsSlNPTlZpZXdlcjp1VCxBY2NvcmRpb246QWNjb3JkaW9uX0FjY29yZGlvbixFeHBhbmREZWVwQnV0dG9uOkV4cGFuZERlZXBCdXR0b25fRXhwYW5kRGVlcEJ1dHRvbixDaGV2cm9uUmlnaHRJY29uOmljb25zX0NoZXZyb25SaWdodCwuLi5vLmNvbXBvbmVudHN9LGNvbmZpZzp7ZGVmYXVsdCRzY2hlbWE6Imh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMjAtMTIvc2NoZW1hIixkZWZhdWx0RXhwYW5kZWRMZXZlbHM6MCxzaG93RXh0ZW5zaW9uS2V5d29yZHM6ITAsLi4uby5jb25maWd9LGZuOnt1cHBlckZpcnN0OmZuX3VwcGVyRmlyc3QsZ2V0VGl0bGU6bWFrZUdldFRpdGxlKHVzZUZuKSxnZXRUeXBlOm1ha2VHZXRUeXBlKHVzZUZuKSxpc0Jvb2xlYW5KU09OU2NoZW1hLGhhc0tleXdvcmQsaXNFeHBhbmRhYmxlOmZuX21ha2VJc0V4cGFuZGFibGUodXNlRm4pLHN0cmluZ2lmeTpmbl9zdHJpbmdpZnksc3RyaW5naWZ5Q29uc3RyYWludHMsZ2V0RGVwZW5kZW50UmVxdWlyZWQsZ2V0U2NoZW1hS2V5d29yZHMsZ2V0RXh0ZW5zaW9uS2V5d29yZHM6bWFrZUdldEV4dGVuc2lvbktleXdvcmRzKHVzZUZuKSwuLi5vLmZufSxzdGF0ZTp7cGF0aHM6e319fSxIT0M9bz0+UmUuY3JlYXRlRWxlbWVudChuVC5Qcm92aWRlcix7dmFsdWU6aX0sUmUuY3JlYXRlRWxlbWVudChzLG8pKTtyZXR1cm4gSE9DLmNvbnRleHRzPXtKU09OU2NoZW1hQ29udGV4dDpuVH0sSE9DLmRpc3BsYXlOYW1lPXMuZGlzcGxheU5hbWUsSE9DfSxtYWtlV2l0aEpTT05TY2hlbWFTeXN0ZW1Db250ZXh0PSh7Z2V0U3lzdGVtOnN9KT0+KG8saT17fSk9Pntjb25zdHtnZXRDb21wb25lbnQ6YSxnZXRDb25maWdzOnV9PXMoKSxfPXUoKSx3PWEoIkpTT05TY2hlbWEyMDIwMTIiKSx4PWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJHNjaGVtYSIpLEM9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkdm9jYWJ1bGFyeSIpLGo9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkaWQiKSxMPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGFuY2hvciIpLEI9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkZHluYW1pY0FuY2hvciIpLCQ9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkcmVmIiksVj1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRkeW5hbWljUmVmIiksVT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRkZWZzIiksej1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRjb21tZW50IiksWT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEFsbE9mIiksWj1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEFueU9mIiksZWU9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRPbmVPZiIpLGllPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkTm90IiksYWU9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRJZiIpLGNlPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVGhlbiIpLGxlPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRWxzZSIpLHBlPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwZW5kZW50U2NoZW1hcyIpLGRlPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUHJlZml4SXRlbXMiKSxmZT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEl0ZW1zIikseWU9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRDb250YWlucyIpLGJlPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUHJvcGVydGllcyIpLF9lPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUGF0dGVyblByb3BlcnRpZXMiKSxTZT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEFkZGl0aW9uYWxQcm9wZXJ0aWVzIiksd2U9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRQcm9wZXJ0eU5hbWVzIikseGU9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRVbmV2YWx1YXRlZEl0ZW1zIiksUGU9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXMiKSxUZT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFR5cGUiKSxSZT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEVudW0iKSwkZT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZENvbnN0IikscWU9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRDb25zdHJhaW50IiksemU9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXBlbmRlbnRSZXF1aXJlZCIpLFdlPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29udGVudFNjaGVtYSIpLEhlPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVGl0bGUiKSxZZT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlc2NyaXB0aW9uIiksWGU9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZWZhdWx0IiksUWU9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXByZWNhdGVkIiksZXQ9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRSZWFkT25seSIpLHR0PWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkV3JpdGVPbmx5IikscnQ9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFeGFtcGxlcyIpLG50PWEoIkpTT05TY2hlbWEyMDIwMTJFeHRlbnNpb25LZXl3b3JkcyIpLHN0PWEoIkpTT05TY2hlbWEyMDIwMTJKU09OVmlld2VyIiksb3Q9YSgiSlNPTlNjaGVtYTIwMjAxMkFjY29yZGlvbiIpLGl0PWEoIkpTT05TY2hlbWEyMDIwMTJFeHBhbmREZWVwQnV0dG9uIiksYXQ9YSgiSlNPTlNjaGVtYTIwMjAxMkNoZXZyb25SaWdodEljb24iKTtyZXR1cm4gd2l0aEpTT05TY2hlbWFDb250ZXh0KG8se2NvbXBvbmVudHM6e0pTT05TY2hlbWE6dyxLZXl3b3JkJHNjaGVtYTp4LEtleXdvcmQkdm9jYWJ1bGFyeTpDLEtleXdvcmQkaWQ6aixLZXl3b3JkJGFuY2hvcjpMLEtleXdvcmQkZHluYW1pY0FuY2hvcjpCLEtleXdvcmQkcmVmOiQsS2V5d29yZCRkeW5hbWljUmVmOlYsS2V5d29yZCRkZWZzOlUsS2V5d29yZCRjb21tZW50OnosS2V5d29yZEFsbE9mOlksS2V5d29yZEFueU9mOlosS2V5d29yZE9uZU9mOmVlLEtleXdvcmROb3Q6aWUsS2V5d29yZElmOmFlLEtleXdvcmRUaGVuOmNlLEtleXdvcmRFbHNlOmxlLEtleXdvcmREZXBlbmRlbnRTY2hlbWFzOnBlLEtleXdvcmRQcmVmaXhJdGVtczpkZSxLZXl3b3JkSXRlbXM6ZmUsS2V5d29yZENvbnRhaW5zOnllLEtleXdvcmRQcm9wZXJ0aWVzOmJlLEtleXdvcmRQYXR0ZXJuUHJvcGVydGllczpfZSxLZXl3b3JkQWRkaXRpb25hbFByb3BlcnRpZXM6U2UsS2V5d29yZFByb3BlcnR5TmFtZXM6d2UsS2V5d29yZFVuZXZhbHVhdGVkSXRlbXM6eGUsS2V5d29yZFVuZXZhbHVhdGVkUHJvcGVydGllczpQZSxLZXl3b3JkVHlwZTpUZSxLZXl3b3JkRW51bTpSZSxLZXl3b3JkQ29uc3Q6JGUsS2V5d29yZENvbnN0cmFpbnQ6cWUsS2V5d29yZERlcGVuZGVudFJlcXVpcmVkOnplLEtleXdvcmRDb250ZW50U2NoZW1hOldlLEtleXdvcmRUaXRsZTpIZSxLZXl3b3JkRGVzY3JpcHRpb246WWUsS2V5d29yZERlZmF1bHQ6WGUsS2V5d29yZERlcHJlY2F0ZWQ6UWUsS2V5d29yZFJlYWRPbmx5OmV0LEtleXdvcmRXcml0ZU9ubHk6dHQsS2V5d29yZEV4YW1wbGVzOnJ0LEV4dGVuc2lvbktleXdvcmRzOm50LEpTT05WaWV3ZXI6c3QsQWNjb3JkaW9uOm90LEV4cGFuZERlZXBCdXR0b246aXQsQ2hldnJvblJpZ2h0SWNvbjphdCwuLi5pLmNvbXBvbmVudHN9LGNvbmZpZzp7c2hvd0V4dGVuc2lvbktleXdvcmRzOl8uc2hvd0V4dGVuc2lvbnMsLi4uaS5jb25maWd9LGZuOnsuLi5pLmZufX0pfSxqc29uX3NjaGVtYV8yMDIwXzEyPSh7Z2V0U3lzdGVtOnMsZm46b30pPT57Y29uc3QgZm5BY2Nlc3Nvcj0oKT0+KHt1cHBlckZpcnN0Om8udXBwZXJGaXJzdCwuLi5vLmpzb25TY2hlbWEyMDIwMTJ9KTtyZXR1cm57Y29tcG9uZW50czp7SlNPTlNjaGVtYTIwMjAxMjpjVCxKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRzY2hlbWE6a2V5d29yZHNfJHNjaGVtYSxKU09OU2NoZW1hMjAyMDEyS2V5d29yZCR2b2NhYnVsYXJ5OiR2b2NhYnVsYXJ5XyR2b2NhYnVsYXJ5LEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGlkOmtleXdvcmRzXyRpZCxKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRhbmNob3I6a2V5d29yZHNfJGFuY2hvcixKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRkeW5hbWljQW5jaG9yOmtleXdvcmRzXyRkeW5hbWljQW5jaG9yLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJHJlZjprZXl3b3Jkc18kcmVmLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGR5bmFtaWNSZWY6a2V5d29yZHNfJGR5bmFtaWNSZWYsSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkZGVmczprZXl3b3Jkc18kZGVmcyxKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRjb21tZW50OmtleXdvcmRzXyRjb21tZW50LEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQWxsT2Y6a2V5d29yZHNfQWxsT2YsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBbnlPZjprZXl3b3Jkc19BbnlPZixKU09OU2NoZW1hMjAyMDEyS2V5d29yZE9uZU9mOmtleXdvcmRzX09uZU9mLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkTm90OmtleXdvcmRzX05vdCxKU09OU2NoZW1hMjAyMDEyS2V5d29yZElmOmtleXdvcmRzX0lmLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVGhlbjprZXl3b3Jkc19UaGVuLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRWxzZTprZXl3b3Jkc19FbHNlLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwZW5kZW50U2NoZW1hczprZXl3b3Jkc19EZXBlbmRlbnRTY2hlbWFzLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUHJlZml4SXRlbXM6a2V5d29yZHNfUHJlZml4SXRlbXMsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRJdGVtczprZXl3b3Jkc19JdGVtcyxKU09OU2NoZW1hMjAyMDEyS2V5d29yZENvbnRhaW5zOmtleXdvcmRzX0NvbnRhaW5zLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUHJvcGVydGllczprZXl3b3Jkc19Qcm9wZXJ0aWVzX1Byb3BlcnRpZXMsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRQYXR0ZXJuUHJvcGVydGllczpQYXR0ZXJuUHJvcGVydGllc19QYXR0ZXJuUHJvcGVydGllcyxKU09OU2NoZW1hMjAyMDEyS2V5d29yZEFkZGl0aW9uYWxQcm9wZXJ0aWVzOmtleXdvcmRzX0FkZGl0aW9uYWxQcm9wZXJ0aWVzLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUHJvcGVydHlOYW1lczprZXl3b3Jkc19Qcm9wZXJ0eU5hbWVzLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtczprZXl3b3Jkc19VbmV2YWx1YXRlZEl0ZW1zLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzOmtleXdvcmRzX1VuZXZhbHVhdGVkUHJvcGVydGllcyxKU09OU2NoZW1hMjAyMDEyS2V5d29yZFR5cGU6a2V5d29yZHNfVHlwZSxKU09OU2NoZW1hMjAyMDEyS2V5d29yZEVudW06RW51bV9FbnVtLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29uc3Q6Q29uc3RfQ29uc3QsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRDb25zdHJhaW50OmxULEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQ6RGVwZW5kZW50UmVxdWlyZWRfRGVwZW5kZW50UmVxdWlyZWQsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRDb250ZW50U2NoZW1hOmtleXdvcmRzX0NvbnRlbnRTY2hlbWEsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRUaXRsZTpUaXRsZV9UaXRsZSxKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlc2NyaXB0aW9uOmtleXdvcmRzX0Rlc2NyaXB0aW9uX0Rlc2NyaXB0aW9uLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVmYXVsdDpEZWZhdWx0X0RlZmF1bHQsSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXByZWNhdGVkOmtleXdvcmRzX0RlcHJlY2F0ZWQsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRSZWFkT25seTprZXl3b3Jkc19SZWFkT25seSxKU09OU2NoZW1hMjAyMDEyS2V5d29yZFdyaXRlT25seTprZXl3b3Jkc19Xcml0ZU9ubHksSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFeGFtcGxlczprZXl3b3Jkc19FeGFtcGxlc19FeGFtcGxlcyxKU09OU2NoZW1hMjAyMDEyRXh0ZW5zaW9uS2V5d29yZHM6RXh0ZW5zaW9uS2V5d29yZHNfRXh0ZW5zaW9uS2V5d29yZHMsSlNPTlNjaGVtYTIwMjAxMkpTT05WaWV3ZXI6dVQsSlNPTlNjaGVtYTIwMjAxMkFjY29yZGlvbjpBY2NvcmRpb25fQWNjb3JkaW9uLEpTT05TY2hlbWEyMDIwMTJFeHBhbmREZWVwQnV0dG9uOkV4cGFuZERlZXBCdXR0b25fRXhwYW5kRGVlcEJ1dHRvbixKU09OU2NoZW1hMjAyMDEyQ2hldnJvblJpZ2h0SWNvbjppY29uc19DaGV2cm9uUmlnaHQsd2l0aEpTT05TY2hlbWEyMDIwMTJDb250ZXh0OndpdGhKU09OU2NoZW1hQ29udGV4dCx3aXRoSlNPTlNjaGVtYTIwMjAxMlN5c3RlbUNvbnRleHQ6bWFrZVdpdGhKU09OU2NoZW1hU3lzdGVtQ29udGV4dChzKCkpLEpTT05TY2hlbWEyMDIwMTJQYXRoQ29udGV4dDooKT0+aVQsSlNPTlNjaGVtYTIwMjAxMkxldmVsQ29udGV4dDooKT0+c1R9LGZuOnt1cHBlckZpcnN0OmZuX3VwcGVyRmlyc3QsanNvblNjaGVtYTIwMjAxMjp7Z2V0VGl0bGU6bWFrZUdldFRpdGxlKGZuQWNjZXNzb3IpLGdldFR5cGU6bWFrZUdldFR5cGUoZm5BY2Nlc3NvciksaXNFeHBhbmRhYmxlOmZuX21ha2VJc0V4cGFuZGFibGUoZm5BY2Nlc3NvciksaXNCb29sZWFuSlNPTlNjaGVtYSxoYXNLZXl3b3JkLHVzZUZuLHVzZUNvbmZpZyx1c2VDb21wb25lbnQsdXNlSXNFeHBhbmRlZCx1c2VQYXRoLHVzZUxldmVsLGdldFNjaGVtYUtleXdvcmRzLGdldEV4dGVuc2lvbktleXdvcmRzOm1ha2VHZXRFeHRlbnNpb25LZXl3b3JkcyhmbkFjY2Vzc29yKSxoYXNTY2hlbWFUeXBlOmZuX2hhc1NjaGVtYVR5cGV9fX19LGFycmF5PShzLHtzYW1wbGU6bz1bXX09e30pPT4oKHMsbz17fSk9Pntjb25zdHttaW5JdGVtczppLG1heEl0ZW1zOmEsdW5pcXVlSXRlbXM6dX09byx7Y29udGFpbnM6XyxtaW5Db250YWluczp3LG1heENvbnRhaW5zOnh9PW87bGV0IEM9Wy4uLnNdO2lmKG51bGwhPV8mJiJvYmplY3QiPT10eXBlb2YgXyl7aWYoTnVtYmVyLmlzSW50ZWdlcih3KSYmdz4xKXtjb25zdCBzPUMuYXQoMCk7Zm9yKGxldCBvPTE7bzx3O28rPTEpQy51bnNoaWZ0KHMpfU51bWJlci5pc0ludGVnZXIoeCl9aWYoTnVtYmVyLmlzSW50ZWdlcihhKSYmYT4wJiYoQz1zLnNsaWNlKDAsYSkpLE51bWJlci5pc0ludGVnZXIoaSkmJmk+MClmb3IobGV0IHM9MDtDLmxlbmd0aDxpO3MrPTEpQy5wdXNoKENbcyVDLmxlbmd0aF0pO3JldHVybiEwPT09dSYmKEM9QXJyYXkuZnJvbShuZXcgU2V0KEMpKSksQ30pKG8scyksb2JqZWN0PSgpPT57dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKX0sYnl0ZXM9cz0+eHQoKShzKSxyYW5kb21fcGljaz1zPT5zLmF0KDApLHByZWRpY2F0ZXNfaXNCb29sZWFuSlNPTlNjaGVtYT1zPT4iYm9vbGVhbiI9PXR5cGVvZiBzLGlzSlNPTlNjaGVtYU9iamVjdD1zPT5hcygpKHMpLGlzSlNPTlNjaGVtYT1zPT5wcmVkaWNhdGVzX2lzQm9vbGVhbkpTT05TY2hlbWEocyl8fGlzSlNPTlNjaGVtYU9iamVjdChzKTtjb25zdCBwVD1jbGFzcyBSZWdpc3RyeXtkYXRhPXt9O3JlZ2lzdGVyKHMsbyl7dGhpcy5kYXRhW3NdPW99dW5yZWdpc3RlcihzKXt2b2lkIDA9PT1zP3RoaXMuZGF0YT17fTpkZWxldGUgdGhpcy5kYXRhW3NdfWdldChzKXtyZXR1cm4gdGhpcy5kYXRhW3NdfX0saW50MzI9KCk9PjAsaW50NjQ9KCk9PjAsZ2VuZXJhdG9yc19mbG9hdD0oKT0+LjEsZ2VuZXJhdG9yc19kb3VibGU9KCk9Pi4xLGVtYWlsPSgpPT4idXNlckBleGFtcGxlLmNvbSIsaWRuX2VtYWlsPSgpPT4i7Iuk66GAQGV4YW1wbGUuY29tIixob3N0bmFtZT0oKT0+ImV4YW1wbGUuY29tIixpZG5faG9zdG5hbWU9KCk9PiLsi6TroYAuY29tIixpcHY0PSgpPT4iMTk4LjUxLjEwMC40MiIsaXB2Nj0oKT0+IjIwMDE6MGRiODo1Yjk2OjAwMDA6MDAwMDo0MjZmOjhlMTc6NjQyYSIsdXJpPSgpPT4iaHR0cHM6Ly9leGFtcGxlLmNvbS8iLHVyaV9yZWZlcmVuY2U9KCk9PiJwYXRoL2luZGV4Lmh0bWwiLGlyaT0oKT0+Imh0dHBzOi8v7Iuk66GALmNvbS8iLGlyaV9yZWZlcmVuY2U9KCk9PiJwYXRoL+yLpOuhgC5odG1sIix1dWlkPSgpPT4iM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2Iix1cmlfdGVtcGxhdGU9KCk9PiJodHRwczovL2V4YW1wbGUuY29tL2RpY3Rpb25hcnkve3Rlcm06MX0ve3Rlcm19IixnZW5lcmF0b3JzX2pzb25fcG9pbnRlcj0oKT0+Ii9hL2IvYyIscmVsYXRpdmVfanNvbl9wb2ludGVyPSgpPT4iMS8wIixkYXRlX3RpbWU9KCk9PihuZXcgRGF0ZSkudG9JU09TdHJpbmcoKSxkYXRlPSgpPT4obmV3IERhdGUpLnRvSVNPU3RyaW5nKCkuc3Vic3RyaW5nKDAsMTApLHRpbWU9KCk9PihuZXcgRGF0ZSkudG9JU09TdHJpbmcoKS5zdWJzdHJpbmcoMTEpLGR1cmF0aW9uPSgpPT4iUDNEIixnZW5lcmF0b3JzX3Bhc3N3b3JkPSgpPT4iKioqKioqKioiLHJlZ2V4PSgpPT4iXlthLXpdKyQiO2NvbnN0IGhUPW5ldyBjbGFzcyBGb3JtYXRSZWdpc3RyeSBleHRlbmRzIHBUeyNzPXtpbnQzMixpbnQ2NCxmbG9hdDpnZW5lcmF0b3JzX2Zsb2F0LGRvdWJsZTpnZW5lcmF0b3JzX2RvdWJsZSxlbWFpbCwiaWRuLWVtYWlsIjppZG5fZW1haWwsaG9zdG5hbWUsImlkbi1ob3N0bmFtZSI6aWRuX2hvc3RuYW1lLGlwdjQsaXB2Nix1cmksInVyaS1yZWZlcmVuY2UiOnVyaV9yZWZlcmVuY2UsaXJpLCJpcmktcmVmZXJlbmNlIjppcmlfcmVmZXJlbmNlLHV1aWQsInVyaS10ZW1wbGF0ZSI6dXJpX3RlbXBsYXRlLCJqc29uLXBvaW50ZXIiOmdlbmVyYXRvcnNfanNvbl9wb2ludGVyLCJyZWxhdGl2ZS1qc29uLXBvaW50ZXIiOnJlbGF0aXZlX2pzb25fcG9pbnRlciwiZGF0ZS10aW1lIjpkYXRlX3RpbWUsZGF0ZSx0aW1lLGR1cmF0aW9uLHBhc3N3b3JkOmdlbmVyYXRvcnNfcGFzc3dvcmQscmVnZXh9O2RhdGE9ey4uLnRoaXMuI3N9O2dldCBkZWZhdWx0cygpe3JldHVybnsuLi50aGlzLiNzfX19LGZvcm1hdEFQST0ocyxvKT0+ImZ1bmN0aW9uIj09dHlwZW9mIG8/aFQucmVnaXN0ZXIocyxvKTpudWxsPT09bz9oVC51bnJlZ2lzdGVyKHMpOmhULmdldChzKTtmb3JtYXRBUEkuZ2V0RGVmYXVsdHM9KCk9PmhULmRlZmF1bHRzO2NvbnN0IGRUPWZvcm1hdEFQSTt2YXIgZlQ9X193ZWJwYWNrX3JlcXVpcmVfXyg0ODI4NykuQnVmZmVyO2NvbnN0IF83Yml0PXM9PmZULmZyb20ocykudG9TdHJpbmcoImFzY2lpIik7dmFyIG1UPV9fd2VicGFja19yZXF1aXJlX18oNDgyODcpLkJ1ZmZlcjtjb25zdCBfOGJpdD1zPT5tVC5mcm9tKHMpLnRvU3RyaW5nKCJ1dGY4Iik7dmFyIGdUPV9fd2VicGFja19yZXF1aXJlX18oNDgyODcpLkJ1ZmZlcjtjb25zdCBlbmNvZGVyc19iaW5hcnk9cz0+Z1QuZnJvbShzKS50b1N0cmluZygiYmluYXJ5IikscXVvdGVkX3ByaW50YWJsZT1zPT57bGV0IG89IiI7Zm9yKGxldCBpPTA7aTxzLmxlbmd0aDtpKyspe2NvbnN0IGE9cy5jaGFyQ29kZUF0KGkpO2lmKDYxPT09YSlvKz0iPTNEIjtlbHNlIGlmKGE+PTMzJiZhPD02MHx8YT49NjImJmE8PTEyNnx8OT09PWF8fDMyPT09YSlvKz1zLmNoYXJBdChpKTtlbHNlIGlmKDEzPT09YXx8MTA9PT1hKW8rPSJcclxuIjtlbHNlIGlmKGE+MTI2KXtjb25zdCBhPXVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChzLmNoYXJBdChpKSkpO2ZvcihsZXQgcz0wO3M8YS5sZW5ndGg7cysrKW8rPSI9IisoIjAiK2EuY2hhckNvZGVBdChzKS50b1N0cmluZygxNikpLnNsaWNlKC0yKS50b1VwcGVyQ2FzZSgpfWVsc2Ugbys9Ij0iKygiMCIrYS50b1N0cmluZygxNikpLnNsaWNlKC0yKS50b1VwcGVyQ2FzZSgpfXJldHVybiBvfTt2YXIgeVQ9X193ZWJwYWNrX3JlcXVpcmVfXyg0ODI4NykuQnVmZmVyO2NvbnN0IGJhc2UxNj1zPT55VC5mcm9tKHMpLnRvU3RyaW5nKCJoZXgiKTt2YXIgdlQ9X193ZWJwYWNrX3JlcXVpcmVfXyg0ODI4NykuQnVmZmVyO2NvbnN0IGJhc2UzMj1zPT57Y29uc3Qgbz12VC5mcm9tKHMpLnRvU3RyaW5nKCJ1dGY4IiksaT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1NjciO2xldCBhPTAsdT0iIixfPTAsdz0wO2ZvcihsZXQgcz0wO3M8by5sZW5ndGg7cysrKWZvcihfPV88PDh8by5jaGFyQ29kZUF0KHMpLHcrPTg7dz49NTspdSs9aS5jaGFyQXQoXz4+PnctNSYzMSksdy09NTt3PjAmJih1Kz1pLmNoYXJBdChfPDw1LXcmMzEpLGE9KDgtOCpvLmxlbmd0aCU1KSU1KTtmb3IobGV0IHM9MDtzPGE7cysrKXUrPSI9IjtyZXR1cm4gdX07dmFyIGJUPV9fd2VicGFja19yZXF1aXJlX18oNDgyODcpLkJ1ZmZlcjtjb25zdCBiYXNlNjQ9cz0+YlQuZnJvbShzKS50b1N0cmluZygiYmFzZTY0Iik7dmFyIF9UPV9fd2VicGFja19yZXF1aXJlX18oNDgyODcpLkJ1ZmZlcjtjb25zdCBiYXNlNjR1cmw9cz0+X1QuZnJvbShzKS50b1N0cmluZygiYmFzZTY0dXJsIik7Y29uc3QgU1Q9bmV3IGNsYXNzIEVuY29kZXJSZWdpc3RyeSBleHRlbmRzIHBUeyNzPXsiN2JpdCI6XzdiaXQsIjhiaXQiOl84Yml0LGJpbmFyeTplbmNvZGVyc19iaW5hcnksInF1b3RlZC1wcmludGFibGUiOnF1b3RlZF9wcmludGFibGUsYmFzZTE2LGJhc2UzMixiYXNlNjQsYmFzZTY0dXJsfTtkYXRhPXsuLi50aGlzLiNzfTtnZXQgZGVmYXVsdHMoKXtyZXR1cm57Li4udGhpcy4jc319fSxlbmNvZGVyQVBJPShzLG8pPT4iZnVuY3Rpb24iPT10eXBlb2Ygbz9TVC5yZWdpc3RlcihzLG8pOm51bGw9PT1vP1NULnVucmVnaXN0ZXIocyk6U1QuZ2V0KHMpO2VuY29kZXJBUEkuZ2V0RGVmYXVsdHM9KCk9PlNULmRlZmF1bHRzO2NvbnN0IEVUPWVuY29kZXJBUEksd1Q9eyJ0ZXh0L3BsYWluIjooKT0+InN0cmluZyIsInRleHQvY3NzIjooKT0+Ii5zZWxlY3RvciB7IGJvcmRlcjogMXB4IHNvbGlkIHJlZCB9IiwidGV4dC9jc3YiOigpPT4idmFsdWUxLHZhbHVlMix2YWx1ZTMiLCJ0ZXh0L2h0bWwiOigpPT4iPHA+Y29udGVudDwvcD4iLCJ0ZXh0L2NhbGVuZGFyIjooKT0+IkJFR0lOOlZDQUxFTkRBUiIsInRleHQvamF2YXNjcmlwdCI6KCk9PiJjb25zb2xlLmRpcignSGVsbG8gd29ybGQhJyk7IiwidGV4dC94bWwiOigpPT4nPHBlcnNvbiBhZ2U9IjMwIj5Kb2huIERvZTwvcGVyc29uPicsInRleHQvKiI6KCk9PiJzdHJpbmcifSx4VD17ImltYWdlLyoiOigpPT5ieXRlcygyNSkudG9TdHJpbmcoImJpbmFyeSIpfSxrVD17ImF1ZGlvLyoiOigpPT5ieXRlcygyNSkudG9TdHJpbmcoImJpbmFyeSIpfSxPVD17InZpZGVvLyoiOigpPT5ieXRlcygyNSkudG9TdHJpbmcoImJpbmFyeSIpfSxDVD17ImFwcGxpY2F0aW9uL2pzb24iOigpPT4neyJrZXkiOiJ2YWx1ZSJ9JywiYXBwbGljYXRpb24vbGQranNvbiI6KCk9Pid7Im5hbWUiOiAiSm9obiBEb2UifScsImFwcGxpY2F0aW9uL3gtaHR0cGQtcGhwIjooKT0+Ijw/cGhwIGVjaG8gJzxwPkhlbGxvIFdvcmxkITwvcD4nOyA/PiIsImFwcGxpY2F0aW9uL3J0ZiI6KCk9PlN0cmluZy5yYXdge1xydGYxXGFkZWZsYW5nMTAyNVxhbnNpXGFuc2ljcGcxMjUyXHVjMWAsImFwcGxpY2F0aW9uL3gtc2giOigpPT4nZWNobyAiSGVsbG8gV29ybGQhIicsImFwcGxpY2F0aW9uL3hodG1sK3htbCI6KCk9PiI8cD5jb250ZW50PC9wPiIsImFwcGxpY2F0aW9uLyoiOigpPT5ieXRlcygyNSkudG9TdHJpbmcoImJpbmFyeSIpfTtjb25zdCBBVD1uZXcgY2xhc3MgTWVkaWFUeXBlUmVnaXN0cnkgZXh0ZW5kcyBwVHsjcz17Li4ud1QsLi4ueFQsLi4ua1QsLi4uT1QsLi4uQ1R9O2RhdGE9ey4uLnRoaXMuI3N9O2dldCBkZWZhdWx0cygpe3JldHVybnsuLi50aGlzLiNzfX19LG1lZGlhVHlwZUFQST0ocyxvKT0+e2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBvKXJldHVybiBBVC5yZWdpc3RlcihzLG8pO2lmKG51bGw9PT1vKXJldHVybiBBVC51bnJlZ2lzdGVyKHMpO2NvbnN0IGk9cy5zcGxpdCgiOyIpLmF0KDApLGE9YCR7aS5zcGxpdCgiLyIpLmF0KDApfS8qYDtyZXR1cm4gQVQuZ2V0KHMpfHxBVC5nZXQoaSl8fEFULmdldChhKX07bWVkaWFUeXBlQVBJLmdldERlZmF1bHRzPSgpPT5BVC5kZWZhdWx0cztjb25zdCBqVD1tZWRpYVR5cGVBUEksYXBwbHlTdHJpbmdDb25zdHJhaW50cz0ocyxvPXt9KT0+e2NvbnN0e21heExlbmd0aDppLG1pbkxlbmd0aDphfT1vO2xldCB1PXM7aWYoTnVtYmVyLmlzSW50ZWdlcihpKSYmaT4wJiYodT11LnNsaWNlKDAsaSkpLE51bWJlci5pc0ludGVnZXIoYSkmJmE+MCl7bGV0IHM9MDtmb3IoO3UubGVuZ3RoPGE7KXUrPXVbcysrJXUubGVuZ3RoXX1yZXR1cm4gdX0sdHlwZXNfc3RyaW5nPShzLHtzYW1wbGU6b309e30pPT57Y29uc3R7Y29udGVudEVuY29kaW5nOmksY29udGVudE1lZGlhVHlwZTphLGNvbnRlbnRTY2hlbWE6dX09cyx7cGF0dGVybjpfLGZvcm1hdDp3fT1zLHg9RVQoaSl8fHlPKCk7bGV0IEM7cmV0dXJuIEM9InN0cmluZyI9PXR5cGVvZiBfP2FwcGx5U3RyaW5nQ29uc3RyYWludHMoKHM9Pnt0cnl7Y29uc3Qgbz0vKD88PSg/PCFcXClceykoXGR7Myx9KSg/PVx9KXwoPzw9KD88IVxcKVx7XGQqLCkoXGR7Myx9KSg/PVx9KXwoPzw9KD88IVxcKVx7KShcZHszLH0pKD89LFxkKlx9KS9nLGk9cy5yZXBsYWNlKG8sIjEwMCIpLGE9bmV3KHBzKCkpKGkpO3JldHVybiBhLm1heD0xMDAsYS5nZW4oKX1jYXRjaHtyZXR1cm4ic3RyaW5nIn19KShfKSxzKToic3RyaW5nIj09dHlwZW9mIHc/KHM9Pntjb25zdHtmb3JtYXQ6b309cyxpPWRUKG8pO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBpP2kocyk6InN0cmluZyJ9KShzKTppc0pTT05TY2hlbWEodSkmJiJzdHJpbmciPT10eXBlb2YgYSYmdm9pZCAwIT09bz9BcnJheS5pc0FycmF5KG8pfHwib2JqZWN0Ij09dHlwZW9mIG8/SlNPTi5zdHJpbmdpZnkobyk6YXBwbHlTdHJpbmdDb25zdHJhaW50cyhTdHJpbmcobykscyk6InN0cmluZyI9PXR5cGVvZiBhPyhzPT57Y29uc3R7Y29udGVudE1lZGlhVHlwZTpvfT1zLGk9alQobyk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGk/aShzKToic3RyaW5nIn0pKHMpOmFwcGx5U3RyaW5nQ29uc3RyYWludHMoInN0cmluZyIscykseChDKX0sYXBwbHlOdW1iZXJDb25zdHJhaW50cz0ocyxvPXt9KT0+e2NvbnN0e21pbmltdW06aSxtYXhpbXVtOmEsZXhjbHVzaXZlTWluaW11bTp1LGV4Y2x1c2l2ZU1heGltdW06X309byx7bXVsdGlwbGVPZjp3fT1vLHg9TnVtYmVyLmlzSW50ZWdlcihzKT8xOk51bWJlci5FUFNJTE9OO2xldCBDPSJudW1iZXIiPT10eXBlb2YgaT9pOm51bGwsaj0ibnVtYmVyIj09dHlwZW9mIGE/YTpudWxsLEw9cztpZigibnVtYmVyIj09dHlwZW9mIHUmJihDPW51bGwhPT1DP01hdGgubWF4KEMsdSt4KTp1K3gpLCJudW1iZXIiPT10eXBlb2YgXyYmKGo9bnVsbCE9PWo/TWF0aC5taW4oaixfLXgpOl8teCksTD1DPmomJnN8fEN8fGp8fEwsIm51bWJlciI9PXR5cGVvZiB3JiZ3PjApe2NvbnN0IHM9TCV3O0w9MD09PXM/TDpMK3ctc31yZXR1cm4gTH0sdHlwZXNfbnVtYmVyPXM9Pntjb25zdHtmb3JtYXQ6b309cztsZXQgaTtyZXR1cm4gaT0ic3RyaW5nIj09dHlwZW9mIG8/KHM9Pntjb25zdHtmb3JtYXQ6b309cyxpPWRUKG8pO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBpP2kocyk6MH0pKHMpOjAsYXBwbHlOdW1iZXJDb25zdHJhaW50cyhpLHMpfSx0eXBlc19pbnRlZ2VyPXM9Pntjb25zdHtmb3JtYXQ6b309cztsZXQgaTtyZXR1cm4gaT0ic3RyaW5nIj09dHlwZW9mIG8/KHM9Pntjb25zdHtmb3JtYXQ6b309cyxpPWRUKG8pO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBpKXJldHVybiBpKHMpO3N3aXRjaChvKXtjYXNlImludDMyIjpyZXR1cm4gaW50MzIoKTtjYXNlImludDY0IjpyZXR1cm4gaW50NjQoKX1yZXR1cm4gMH0pKHMpOjAsYXBwbHlOdW1iZXJDb25zdHJhaW50cyhpLHMpfSx0eXBlc19ib29sZWFuPXM9PiJib29sZWFuIiE9dHlwZW9mIHMuZGVmYXVsdHx8cy5kZWZhdWx0LElUPW5ldyBQcm94eSh7YXJyYXksb2JqZWN0LHN0cmluZzp0eXBlc19zdHJpbmcsbnVtYmVyOnR5cGVzX251bWJlcixpbnRlZ2VyOnR5cGVzX2ludGVnZXIsYm9vbGVhbjp0eXBlc19ib29sZWFuLG51bGw6KCk9Pm51bGx9LHtnZXQ6KHMsbyk9PiJzdHJpbmciPT10eXBlb2YgbyYmT2JqZWN0Lmhhc093bihzLG8pP3Nbb106KCk9PmBVbmtub3duIFR5cGU6ICR7b31gfSksUFQ9WyJhcnJheSIsIm9iamVjdCIsIm51bWJlciIsImludGVnZXIiLCJzdHJpbmciLCJib29sZWFuIiwibnVsbCJdLGhhc0V4YW1wbGU9cz0+e2lmKCFpc0pTT05TY2hlbWFPYmplY3QocykpcmV0dXJuITE7Y29uc3R7ZXhhbXBsZXM6byxleGFtcGxlOmksZGVmYXVsdDphfT1zO3JldHVybiEhKEFycmF5LmlzQXJyYXkobykmJm8ubGVuZ3RoPj0xKXx8KHZvaWQgMCE9PWF8fHZvaWQgMCE9PWkpfSxleHRyYWN0RXhhbXBsZT1zPT57aWYoIWlzSlNPTlNjaGVtYU9iamVjdChzKSlyZXR1cm4gbnVsbDtjb25zdHtleGFtcGxlczpvLGV4YW1wbGU6aSxkZWZhdWx0OmF9PXM7cmV0dXJuIEFycmF5LmlzQXJyYXkobykmJm8ubGVuZ3RoPj0xP28uYXQoMCk6dm9pZCAwIT09YT9hOnZvaWQgMCE9PWk/aTp2b2lkIDB9LFRUPXthcnJheTpbIml0ZW1zIiwicHJlZml4SXRlbXMiLCJjb250YWlucyIsIm1heENvbnRhaW5zIiwibWluQ29udGFpbnMiLCJtYXhJdGVtcyIsIm1pbkl0ZW1zIiwidW5pcXVlSXRlbXMiLCJ1bmV2YWx1YXRlZEl0ZW1zIl0sb2JqZWN0OlsicHJvcGVydGllcyIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwicGF0dGVyblByb3BlcnRpZXMiLCJwcm9wZXJ0eU5hbWVzIiwibWluUHJvcGVydGllcyIsIm1heFByb3BlcnRpZXMiLCJyZXF1aXJlZCIsImRlcGVuZGVudFNjaGVtYXMiLCJkZXBlbmRlbnRSZXF1aXJlZCIsInVuZXZhbHVhdGVkUHJvcGVydGllcyJdLHN0cmluZzpbInBhdHRlcm4iLCJmb3JtYXQiLCJtaW5MZW5ndGgiLCJtYXhMZW5ndGgiLCJjb250ZW50RW5jb2RpbmciLCJjb250ZW50TWVkaWFUeXBlIiwiY29udGVudFNjaGVtYSJdLGludGVnZXI6WyJtaW5pbXVtIiwibWF4aW11bSIsImV4Y2x1c2l2ZU1pbmltdW0iLCJleGNsdXNpdmVNYXhpbXVtIiwibXVsdGlwbGVPZiJdfTtUVC5udW1iZXI9VFQuaW50ZWdlcjtjb25zdCBOVD0ic3RyaW5nIixpbmZlclR5cGVGcm9tVmFsdWU9cz0+dm9pZCAwPT09cz9udWxsOm51bGw9PT1zPyJudWxsIjpBcnJheS5pc0FycmF5KHMpPyJhcnJheSI6TnVtYmVyLmlzSW50ZWdlcihzKT8iaW50ZWdlciI6dHlwZW9mIHMsZm9sZFR5cGU9cz0+e2lmKEFycmF5LmlzQXJyYXkocykmJnMubGVuZ3RoPj0xKXtpZihzLmluY2x1ZGVzKCJhcnJheSIpKXJldHVybiJhcnJheSI7aWYocy5pbmNsdWRlcygib2JqZWN0IikpcmV0dXJuIm9iamVjdCI7e2NvbnN0IG89cy5maWx0ZXIoKHM9PiJudWxsIiE9PXMpKSxpPXJhbmRvbV9waWNrKG8ubGVuZ3RoPjA/bzpzKTtpZihQVC5pbmNsdWRlcyhpKSlyZXR1cm4gaX19cmV0dXJuIFBULmluY2x1ZGVzKHMpP3M6bnVsbH0saW5mZXJUeXBlPShzLG89bmV3IFdlYWtTZXQpPT57aWYoIWlzSlNPTlNjaGVtYU9iamVjdChzKSlyZXR1cm4gTlQ7aWYoby5oYXMocykpcmV0dXJuIE5UO28uYWRkKHMpO2xldHt0eXBlOmksY29uc3Q6YX09cztpZihpPWZvbGRUeXBlKGkpLCJzdHJpbmciIT10eXBlb2YgaSl7Y29uc3Qgbz1PYmplY3Qua2V5cyhUVCk7ZTpmb3IobGV0IGE9MDthPG8ubGVuZ3RoO2ErPTEpe2NvbnN0IHU9b1thXSxfPVRUW3VdO2ZvcihsZXQgbz0wO288Xy5sZW5ndGg7bys9MSl7Y29uc3QgYT1fW29dO2lmKE9iamVjdC5oYXNPd24ocyxhKSl7aT11O2JyZWFrIGV9fX19aWYoInN0cmluZyIhPXR5cGVvZiBpJiZ2b2lkIDAhPT1hKXtjb25zdCBzPWluZmVyVHlwZUZyb21WYWx1ZShhKTtpPSJzdHJpbmciPT10eXBlb2Ygcz9zOml9aWYoInN0cmluZyIhPXR5cGVvZiBpKXtjb25zdCBjb21iaW5lVHlwZXM9aT0+e2lmKEFycmF5LmlzQXJyYXkoc1tpXSkpe2NvbnN0IGE9c1tpXS5tYXAoKHM9PmluZmVyVHlwZShzLG8pKSk7cmV0dXJuIGZvbGRUeXBlKGEpfXJldHVybiBudWxsfSxhPWNvbWJpbmVUeXBlcygiYWxsT2YiKSx1PWNvbWJpbmVUeXBlcygiYW55T2YiKSxfPWNvbWJpbmVUeXBlcygib25lT2YiKSx3PXMubm90P2luZmVyVHlwZShzLm5vdCxvKTpudWxsOyhhfHx1fHxffHx3KSYmKGk9Zm9sZFR5cGUoW2EsdSxfLHddLmZpbHRlcihCb29sZWFuKSkpfWlmKCJzdHJpbmciIT10eXBlb2YgaSYmaGFzRXhhbXBsZShzKSl7Y29uc3Qgbz1leHRyYWN0RXhhbXBsZShzKSxhPWluZmVyVHlwZUZyb21WYWx1ZShvKTtpPSJzdHJpbmciPT10eXBlb2YgYT9hOml9cmV0dXJuIG8uZGVsZXRlKHMpLGl8fE5UfSx0eXBlX2dldFR5cGU9cz0+aW5mZXJUeXBlKHMpLHR5cGVDYXN0PXM9PnByZWRpY2F0ZXNfaXNCb29sZWFuSlNPTlNjaGVtYShzKT8ocz0+ITE9PT1zP3tub3Q6e319Ont9KShzKTppc0pTT05TY2hlbWFPYmplY3Qocyk/czp7fSxtZXJnZV9tZXJnZT0ocyxvLGk9e30pPT57aWYocHJlZGljYXRlc19pc0Jvb2xlYW5KU09OU2NoZW1hKHMpJiYhMD09PXMpcmV0dXJuITA7aWYocHJlZGljYXRlc19pc0Jvb2xlYW5KU09OU2NoZW1hKHMpJiYhMT09PXMpcmV0dXJuITE7aWYocHJlZGljYXRlc19pc0Jvb2xlYW5KU09OU2NoZW1hKG8pJiYhMD09PW8pcmV0dXJuITA7aWYocHJlZGljYXRlc19pc0Jvb2xlYW5KU09OU2NoZW1hKG8pJiYhMT09PW8pcmV0dXJuITE7aWYoIWlzSlNPTlNjaGVtYShzKSlyZXR1cm4gbztpZighaXNKU09OU2NoZW1hKG8pKXJldHVybiBzO2NvbnN0IGE9ey4uLm8sLi4uc307aWYoby50eXBlJiZzLnR5cGUmJkFycmF5LmlzQXJyYXkoby50eXBlKSYmInN0cmluZyI9PXR5cGVvZiBvLnR5cGUpe2NvbnN0IGk9bm9ybWFsaXplQXJyYXkoby50eXBlKS5jb25jYXQocy50eXBlKTthLnR5cGU9QXJyYXkuZnJvbShuZXcgU2V0KGkpKX1pZihBcnJheS5pc0FycmF5KG8ucmVxdWlyZWQpJiZBcnJheS5pc0FycmF5KHMucmVxdWlyZWQpJiYoYS5yZXF1aXJlZD1bLi4ubmV3IFNldChbLi4ucy5yZXF1aXJlZCwuLi5vLnJlcXVpcmVkXSldKSxvLnByb3BlcnRpZXMmJnMucHJvcGVydGllcyl7Y29uc3QgdT1uZXcgU2V0KFsuLi5PYmplY3Qua2V5cyhvLnByb3BlcnRpZXMpLC4uLk9iamVjdC5rZXlzKHMucHJvcGVydGllcyldKTthLnByb3BlcnRpZXM9e307Zm9yKGNvbnN0IF8gb2YgdSl7Y29uc3QgdT1vLnByb3BlcnRpZXNbX118fHt9LHc9cy5wcm9wZXJ0aWVzW19dfHx7fTt1LnJlYWRPbmx5JiYhaS5pbmNsdWRlUmVhZE9ubHl8fHUud3JpdGVPbmx5JiYhaS5pbmNsdWRlV3JpdGVPbmx5P2EucmVxdWlyZWQ9KGEucmVxdWlyZWR8fFtdKS5maWx0ZXIoKHM9PnMhPT1fKSk6YS5wcm9wZXJ0aWVzW19dPW1lcmdlX21lcmdlKHcsdSxpKX19cmV0dXJuIGlzSlNPTlNjaGVtYShvLml0ZW1zKSYmaXNKU09OU2NoZW1hKHMuaXRlbXMpJiYoYS5pdGVtcz1tZXJnZV9tZXJnZShzLml0ZW1zLG8uaXRlbXMsaSkpLGlzSlNPTlNjaGVtYShvLmNvbnRhaW5zKSYmaXNKU09OU2NoZW1hKHMuY29udGFpbnMpJiYoYS5jb250YWlucz1tZXJnZV9tZXJnZShzLmNvbnRhaW5zLG8uY29udGFpbnMsaSkpLGlzSlNPTlNjaGVtYShvLmNvbnRlbnRTY2hlbWEpJiZpc0pTT05TY2hlbWEocy5jb250ZW50U2NoZW1hKSYmKGEuY29udGVudFNjaGVtYT1tZXJnZV9tZXJnZShzLmNvbnRlbnRTY2hlbWEsby5jb250ZW50U2NoZW1hLGkpKSxhfSxNVD1tZXJnZV9tZXJnZSxtYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljPShzLG89e30saT12b2lkIDAsYT0hMSk9PntpZihudWxsPT1zJiZ2b2lkIDA9PT1pKXJldHVybjsiZnVuY3Rpb24iPT10eXBlb2Ygcz8udG9KUyYmKHM9cy50b0pTKCkpLHM9dHlwZUNhc3Qocyk7bGV0IHU9dm9pZCAwIT09aXx8aGFzRXhhbXBsZShzKTtjb25zdCBfPSF1JiZBcnJheS5pc0FycmF5KHMub25lT2YpJiZzLm9uZU9mLmxlbmd0aD4wLHc9IXUmJkFycmF5LmlzQXJyYXkocy5hbnlPZikmJnMuYW55T2YubGVuZ3RoPjA7aWYoIXUmJihffHx3KSl7Y29uc3QgaT10eXBlQ2FzdChyYW5kb21fcGljayhfP3Mub25lT2Y6cy5hbnlPZikpOyEocz1NVChzLGksbykpLnhtbCYmaS54bWwmJihzLnhtbD1pLnhtbCksaGFzRXhhbXBsZShzKSYmaGFzRXhhbXBsZShpKSYmKHU9ITApfWNvbnN0IHg9e307bGV0e3htbDpDLHByb3BlcnRpZXM6aixhZGRpdGlvbmFsUHJvcGVydGllczpMLGl0ZW1zOkIsY29udGFpbnM6JH09c3x8e30sVj10eXBlX2dldFR5cGUocykse2luY2x1ZGVSZWFkT25seTpVLGluY2x1ZGVXcml0ZU9ubHk6en09bztDPUN8fHt9O2xldCBZLHtuYW1lOloscHJlZml4OmVlLG5hbWVzcGFjZTppZX09QyxhZT17fTtpZihPYmplY3QuaGFzT3duKHMsInR5cGUiKXx8KHMudHlwZT1WKSxhJiYoWj1afHwibm90YWduYW1lIixZPShlZT9gJHtlZX06YDoiIikrWixpZSkpe3hbZWU/YHhtbG5zOiR7ZWV9YDoieG1sbnMiXT1pZX1hJiYoYWVbWV09W10pO2NvbnN0IGNlPW9iamVjdGlmeShqKTtsZXQgbGUscGU9MDtjb25zdCBoYXNFeGNlZWRlZE1heFByb3BlcnRpZXM9KCk9Pk51bWJlci5pc0ludGVnZXIocy5tYXhQcm9wZXJ0aWVzKSYmcy5tYXhQcm9wZXJ0aWVzPjAmJnBlPj1zLm1heFByb3BlcnRpZXMsY2FuQWRkUHJvcGVydHk9bz0+IShOdW1iZXIuaXNJbnRlZ2VyKHMubWF4UHJvcGVydGllcykmJnMubWF4UHJvcGVydGllcz4wKXx8IWhhc0V4Y2VlZGVkTWF4UHJvcGVydGllcygpJiYoIShvPT4hQXJyYXkuaXNBcnJheShzLnJlcXVpcmVkKXx8MD09PXMucmVxdWlyZWQubGVuZ3RofHwhcy5yZXF1aXJlZC5pbmNsdWRlcyhvKSkobyl8fHMubWF4UHJvcGVydGllcy1wZS0oKCk9PntpZighQXJyYXkuaXNBcnJheShzLnJlcXVpcmVkKXx8MD09PXMucmVxdWlyZWQubGVuZ3RoKXJldHVybiAwO2xldCBvPTA7cmV0dXJuIGE/cy5yZXF1aXJlZC5mb3JFYWNoKChzPT5vKz12b2lkIDA9PT1hZVtzXT8wOjEpKTpzLnJlcXVpcmVkLmZvckVhY2goKHM9PntvKz12b2lkIDA9PT1hZVtZXT8uZmluZCgobz0+dm9pZCAwIT09b1tzXSkpPzA6MX0pKSxzLnJlcXVpcmVkLmxlbmd0aC1vfSkoKT4wKTtpZihsZT1hPyhpLHU9dm9pZCAwKT0+e2lmKHMmJmNlW2ldKXtpZihjZVtpXS54bWw9Y2VbaV0ueG1sfHx7fSxjZVtpXS54bWwuYXR0cmlidXRlKXtjb25zdCBzPUFycmF5LmlzQXJyYXkoY2VbaV0uZW51bSk/cmFuZG9tX3BpY2soY2VbaV0uZW51bSk6dm9pZCAwO2lmKGhhc0V4YW1wbGUoY2VbaV0pKXhbY2VbaV0ueG1sLm5hbWV8fGldPWV4dHJhY3RFeGFtcGxlKGNlW2ldKTtlbHNlIGlmKHZvaWQgMCE9PXMpeFtjZVtpXS54bWwubmFtZXx8aV09cztlbHNle2NvbnN0IHM9dHlwZUNhc3QoY2VbaV0pLGE9dHlwZV9nZXRUeXBlKHMpLF89Y2VbaV0ueG1sLm5hbWV8fGk7aWYoImFycmF5Ij09PWEpe2NvbnN0IHM9bWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhjZVtpXSxvLHUsITEpO3hbX109cy5tYXAoKHM9PmFzKCkocyk/IlVua25vd25UeXBlT2JqZWN0IjpBcnJheS5pc0FycmF5KHMpPyJVbmtub3duVHlwZUFycmF5IjpzKSkuam9pbigiICIpfWVsc2UgeFtfXT0ib2JqZWN0Ij09PWE/IlVua25vd25UeXBlT2JqZWN0IjpJVFthXShzKX1yZXR1cm59Y2VbaV0ueG1sLm5hbWU9Y2VbaV0ueG1sLm5hbWV8fGl9ZWxzZSBjZVtpXXx8ITE9PT1MfHwoY2VbaV09e3htbDp7bmFtZTppfX0pO2xldCBfPW1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoY2VbaV0sbyx1LGEpO2NhbkFkZFByb3BlcnR5KGkpJiYocGUrKyxBcnJheS5pc0FycmF5KF8pP2FlW1ldPWFlW1ldLmNvbmNhdChfKTphZVtZXS5wdXNoKF8pKX06KGksdSk9PntpZihjYW5BZGRQcm9wZXJ0eShpKSl7aWYoYXMoKShzLmRpc2NyaW1pbmF0b3I/Lm1hcHBpbmcpJiZzLmRpc2NyaW1pbmF0b3IucHJvcGVydHlOYW1lPT09aSYmInN0cmluZyI9PXR5cGVvZiBzLiQkcmVmKXtmb3IoY29uc3QgbyBpbiBzLmRpc2NyaW1pbmF0b3IubWFwcGluZylpZigtMSE9PXMuJCRyZWYuc2VhcmNoKHMuZGlzY3JpbWluYXRvci5tYXBwaW5nW29dKSl7YWVbaV09bzticmVha319ZWxzZSBhZVtpXT1tYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKGNlW2ldLG8sdSxhKTtwZSsrfX0sdSl7bGV0IHU7aWYodT12b2lkIDAhPT1pP2k6ZXh0cmFjdEV4YW1wbGUocyksIWEpe2lmKCJudW1iZXIiPT10eXBlb2YgdSYmInN0cmluZyI9PT1WKXJldHVybmAke3V9YDtpZigic3RyaW5nIiE9dHlwZW9mIHV8fCJzdHJpbmciPT09VilyZXR1cm4gdTt0cnl7cmV0dXJuIEpTT04ucGFyc2UodSl9Y2F0Y2h7cmV0dXJuIHV9fWlmKCJhcnJheSI9PT1WKXtpZighQXJyYXkuaXNBcnJheSh1KSl7aWYoInN0cmluZyI9PXR5cGVvZiB1KXJldHVybiB1O3U9W3VdfWxldCBpPVtdO3JldHVybiBpc0pTT05TY2hlbWFPYmplY3QoQikmJihCLnhtbD1CLnhtbHx8Q3x8e30sQi54bWwubmFtZT1CLnhtbC5uYW1lfHxDLm5hbWUsaT11Lm1hcCgocz0+bWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhCLG8scyxhKSkpKSxpc0pTT05TY2hlbWFPYmplY3QoJCkmJigkLnhtbD0kLnhtbHx8Q3x8e30sJC54bWwubmFtZT0kLnhtbC5uYW1lfHxDLm5hbWUsaT1bbWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYygkLG8sdm9pZCAwLGEpLC4uLmldKSxpPUlULmFycmF5KHMse3NhbXBsZTppfSksQy53cmFwcGVkPyhhZVtZXT1pLGRzKCkoeCl8fGFlW1ldLnB1c2goe19hdHRyOnh9KSk6YWU9aSxhZX1pZigib2JqZWN0Ij09PVYpe2lmKCJzdHJpbmciPT10eXBlb2YgdSlyZXR1cm4gdTtmb3IoY29uc3QgcyBpbiB1KU9iamVjdC5oYXNPd24odSxzKSYmKGNlW3NdPy5yZWFkT25seSYmIVV8fGNlW3NdPy53cml0ZU9ubHkmJiF6fHwoY2Vbc10/LnhtbD8uYXR0cmlidXRlP3hbY2Vbc10ueG1sLm5hbWV8fHNdPXVbc106bGUocyx1W3NdKSkpO3JldHVybiBkcygpKHgpfHxhZVtZXS5wdXNoKHtfYXR0cjp4fSksYWV9cmV0dXJuIGFlW1ldPWRzKCkoeCk/dTpbe19hdHRyOnh9LHVdLGFlfWlmKCJhcnJheSI9PT1WKXtsZXQgaT1bXTtpZihpc0pTT05TY2hlbWFPYmplY3QoJCkpaWYoYSYmKCQueG1sPSQueG1sfHxzLnhtbHx8e30sJC54bWwubmFtZT0kLnhtbC5uYW1lfHxDLm5hbWUpLEFycmF5LmlzQXJyYXkoJC5hbnlPZikpe2NvbnN0e2FueU9mOnMsLi4udX09QjtpLnB1c2goLi4uJC5hbnlPZi5tYXAoKHM9Pm1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoTVQocyx1LG8pLG8sdm9pZCAwLGEpKSkpfWVsc2UgaWYoQXJyYXkuaXNBcnJheSgkLm9uZU9mKSl7Y29uc3R7b25lT2Y6cywuLi51fT1CO2kucHVzaCguLi4kLm9uZU9mLm1hcCgocz0+bWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhNVChzLHUsbyksbyx2b2lkIDAsYSkpKSl9ZWxzZXtpZighKCFhfHxhJiZDLndyYXBwZWQpKXJldHVybiBtYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKCQsbyx2b2lkIDAsYSk7aS5wdXNoKG1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoJCxvLHZvaWQgMCxhKSl9aWYoaXNKU09OU2NoZW1hT2JqZWN0KEIpKWlmKGEmJihCLnhtbD1CLnhtbHx8cy54bWx8fHt9LEIueG1sLm5hbWU9Qi54bWwubmFtZXx8Qy5uYW1lKSxBcnJheS5pc0FycmF5KEIuYW55T2YpKXtjb25zdHthbnlPZjpzLC4uLnV9PUI7aS5wdXNoKC4uLkIuYW55T2YubWFwKChzPT5tYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKE1UKHMsdSxvKSxvLHZvaWQgMCxhKSkpKX1lbHNlIGlmKEFycmF5LmlzQXJyYXkoQi5vbmVPZikpe2NvbnN0e29uZU9mOnMsLi4udX09QjtpLnB1c2goLi4uQi5vbmVPZi5tYXAoKHM9Pm1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoTVQocyx1LG8pLG8sdm9pZCAwLGEpKSkpfWVsc2V7aWYoISghYXx8YSYmQy53cmFwcGVkKSlyZXR1cm4gbWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhCLG8sdm9pZCAwLGEpO2kucHVzaChtYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKEIsbyx2b2lkIDAsYSkpfXJldHVybiBpPUlULmFycmF5KHMse3NhbXBsZTppfSksYSYmQy53cmFwcGVkPyhhZVtZXT1pLGRzKCkoeCl8fGFlW1ldLnB1c2goe19hdHRyOnh9KSxhZSk6aX1pZigib2JqZWN0Ij09PVYpe2ZvcihsZXQgcyBpbiBjZSlPYmplY3QuaGFzT3duKGNlLHMpJiYoY2Vbc10/LmRlcHJlY2F0ZWR8fGNlW3NdPy5yZWFkT25seSYmIVV8fGNlW3NdPy53cml0ZU9ubHkmJiF6fHxsZShzKSk7aWYoYSYmeCYmYWVbWV0ucHVzaCh7X2F0dHI6eH0pLGhhc0V4Y2VlZGVkTWF4UHJvcGVydGllcygpKXJldHVybiBhZTtpZihwcmVkaWNhdGVzX2lzQm9vbGVhbkpTT05TY2hlbWEoTCkmJkwpYT9hZVtZXS5wdXNoKHthZGRpdGlvbmFsUHJvcDoiQW55dGhpbmcgY2FuIGJlIGhlcmUifSk6YWUuYWRkaXRpb25hbFByb3AxPXt9LHBlKys7ZWxzZSBpZihpc0pTT05TY2hlbWFPYmplY3QoTCkpe2NvbnN0IGk9TCx1PW1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoaSxvLHZvaWQgMCxhKTtpZihhJiYic3RyaW5nIj09dHlwZW9mIGk/LnhtbD8ubmFtZSYmIm5vdGFnbmFtZSIhPT1pPy54bWw/Lm5hbWUpYWVbWV0ucHVzaCh1KTtlbHNle2NvbnN0IG89TnVtYmVyLmlzSW50ZWdlcihzLm1pblByb3BlcnRpZXMpJiZzLm1pblByb3BlcnRpZXM+MCYmcGU8cy5taW5Qcm9wZXJ0aWVzP3MubWluUHJvcGVydGllcy1wZTozO2ZvcihsZXQgcz0xO3M8PW87cysrKXtpZihoYXNFeGNlZWRlZE1heFByb3BlcnRpZXMoKSlyZXR1cm4gYWU7aWYoYSl7Y29uc3Qgbz17fTtvWyJhZGRpdGlvbmFsUHJvcCIrc109dS5ub3RhZ25hbWUsYWVbWV0ucHVzaChvKX1lbHNlIGFlWyJhZGRpdGlvbmFsUHJvcCIrc109dTtwZSsrfX19cmV0dXJuIGFlfWxldCBkZTtpZih2b2lkIDAhPT1zLmNvbnN0KWRlPXMuY29uc3Q7ZWxzZSBpZihzJiZBcnJheS5pc0FycmF5KHMuZW51bSkpZGU9cmFuZG9tX3BpY2sobm9ybWFsaXplQXJyYXkocy5lbnVtKSk7ZWxzZXtjb25zdCBpPWlzSlNPTlNjaGVtYU9iamVjdChzLmNvbnRlbnRTY2hlbWEpP21haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMocy5jb250ZW50U2NoZW1hLG8sdm9pZCAwLGEpOnZvaWQgMDtkZT1JVFtWXShzLHtzYW1wbGU6aX0pfXJldHVybiBhPyhhZVtZXT1kcygpKHgpP2RlOlt7X2F0dHI6eH0sZGVdLGFlKTpkZX0sbWFpbl9jcmVhdGVYTUxFeGFtcGxlPShzLG8saSk9Pntjb25zdCBhPW1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMocyxvLGksITApO2lmKGEpcmV0dXJuInN0cmluZyI9PXR5cGVvZiBhP2E6bHMoKShhLHtkZWNsYXJhdGlvbjohMCxpbmRlbnQ6Ilx0In0pfSxtYWluX3NhbXBsZUZyb21TY2hlbWE9KHMsbyxpKT0+bWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhzLG8saSwhMSksbWFpbl9yZXNvbHZlcj0ocyxvLGkpPT5bcyxKU09OLnN0cmluZ2lmeShvKSxKU09OLnN0cmluZ2lmeShpKV0sUlQ9dXRpbHNfbWVtb2l6ZU4obWFpbl9jcmVhdGVYTUxFeGFtcGxlLG1haW5fcmVzb2x2ZXIpLERUPXV0aWxzX21lbW9pemVOKG1haW5fc2FtcGxlRnJvbVNjaGVtYSxtYWluX3Jlc29sdmVyKTtjb25zdCBMVD1uZXcgY2xhc3MgT3B0aW9uUmVnaXN0cnkgZXh0ZW5kcyBwVHsjcz17fTtkYXRhPXsuLi50aGlzLiNzfTtnZXQgZGVmYXVsdHMoKXtyZXR1cm57Li4udGhpcy4jc319fSxhcGlfb3B0aW9uQVBJPShzLG8pPT4odm9pZCAwIT09byYmTFQucmVnaXN0ZXIocyxvKSxMVC5nZXQocykpLEZUPVt7d2hlbjovanNvbi8sc2hvdWxkU3RyaW5naWZ5VHlwZXM6WyJzdHJpbmciXX1dLEJUPVsib2JqZWN0Il0sZm5fZ2V0X2pzb25fc2FtcGxlX3NjaGVtYT1zPT4obyxpLGEsdSk9Pntjb25zdHtmbjpffT1zKCksdz1fLmpzb25TY2hlbWEyMDIwMTIubWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hKG8saSx1KSx4PXR5cGVvZiB3LEM9RlQucmVkdWNlKCgocyxvKT0+by53aGVuLnRlc3QoYSk/Wy4uLnMsLi4uby5zaG91bGRTdHJpbmdpZnlUeXBlc106cyksQlQpO3JldHVybiBndCgpKEMsKHM9PnM9PT14KSk/SlNPTi5zdHJpbmdpZnkodyxudWxsLDIpOnd9LGZuX2dldF95YW1sX3NhbXBsZV9zY2hlbWE9cz0+KG8saSxhLHUpPT57Y29uc3R7Zm46X309cygpLHc9Xy5qc29uU2NoZW1hMjAyMDEyLmdldEpzb25TYW1wbGVTY2hlbWEobyxpLGEsdSk7bGV0IHg7dHJ5e3g9Zm4uZHVtcChmbi5sb2FkKHcpLHtsaW5lV2lkdGg6LTF9LHtzY2hlbWE6cm59KSwiXG4iPT09eFt4Lmxlbmd0aC0xXSYmKHg9eC5zbGljZSgwLHgubGVuZ3RoLTEpKX1jYXRjaChzKXtyZXR1cm4gY29uc29sZS5lcnJvcihzKSwiZXJyb3I6IGNvdWxkIG5vdCBnZW5lcmF0ZSB5YW1sIGV4YW1wbGUifXJldHVybiB4LnJlcGxhY2UoL1x0L2csIiAgIil9LGZuX2dldF94bWxfc2FtcGxlX3NjaGVtYT1zPT4obyxpLGEpPT57Y29uc3R7Zm46dX09cygpO2lmKG8mJiFvLnhtbCYmKG8ueG1sPXt9KSxvJiYhby54bWwubmFtZSl7aWYoIW8uJCRyZWYmJihvLnR5cGV8fG8uaXRlbXN8fG8ucHJvcGVydGllc3x8by5hZGRpdGlvbmFsUHJvcGVydGllcykpcmV0dXJuJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+XG5ceDNjIS0tIFhNTCBleGFtcGxlIGNhbm5vdCBiZSBnZW5lcmF0ZWQ7IHJvb3QgZWxlbWVudCBuYW1lIGlzIHVuZGVmaW5lZCAtLVx4M2UnO2lmKG8uJCRyZWYpe2xldCBzPW8uJCRyZWYubWF0Y2goL1xTKlwvKFxTKykkLyk7by54bWwubmFtZT1zWzFdfX1yZXR1cm4gdS5qc29uU2NoZW1hMjAyMDEyLm1lbW9pemVkQ3JlYXRlWE1MRXhhbXBsZShvLGksYSl9LGZuX2dldF9zYW1wbGVfc2NoZW1hPXM9PihvLGk9IiIsYT17fSx1PXZvaWQgMCk9Pntjb25zdHtmbjpffT1zKCk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG8/LnRvSlMmJihvPW8udG9KUygpKSwiZnVuY3Rpb24iPT10eXBlb2YgdT8udG9KUyYmKHU9dS50b0pTKCkpLC94bWwvLnRlc3QoaSk/Xy5qc29uU2NoZW1hMjAyMDEyLmdldFhtbFNhbXBsZVNjaGVtYShvLGEsdSk6Lyh5YW1sfHltbCkvLnRlc3QoaSk/Xy5qc29uU2NoZW1hMjAyMDEyLmdldFlhbWxTYW1wbGVTY2hlbWEobyxhLGksdSk6Xy5qc29uU2NoZW1hMjAyMDEyLmdldEpzb25TYW1wbGVTY2hlbWEobyxhLGksdSl9LGpzb25fc2NoZW1hXzIwMjBfMTJfc2FtcGxlcz0oe2dldFN5c3RlbTpzfSk9Pntjb25zdCBvPWZuX2dldF9qc29uX3NhbXBsZV9zY2hlbWEocyksaT1mbl9nZXRfeWFtbF9zYW1wbGVfc2NoZW1hKHMpLGE9Zm5fZ2V0X3htbF9zYW1wbGVfc2NoZW1hKHMpLHU9Zm5fZ2V0X3NhbXBsZV9zY2hlbWEocyk7cmV0dXJue2ZuOntqc29uU2NoZW1hMjAyMDEyOntzYW1wbGVGcm9tU2NoZW1hOm1haW5fc2FtcGxlRnJvbVNjaGVtYSxzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYzptYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljLHNhbXBsZU9wdGlvbkFQSTphcGlfb3B0aW9uQVBJLHNhbXBsZUVuY29kZXJBUEk6RVQsc2FtcGxlRm9ybWF0QVBJOmRULHNhbXBsZU1lZGlhVHlwZUFQSTpqVCxjcmVhdGVYTUxFeGFtcGxlOm1haW5fY3JlYXRlWE1MRXhhbXBsZSxtZW1vaXplZFNhbXBsZUZyb21TY2hlbWE6RFQsbWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlOlJULGdldEpzb25TYW1wbGVTY2hlbWE6byxnZXRZYW1sU2FtcGxlU2NoZW1hOmksZ2V0WG1sU2FtcGxlU2NoZW1hOmEsZ2V0U2FtcGxlU2NoZW1hOnUsbWVyZ2VKc29uU2NoZW1hOk1ULGZvbGRUeXBlfX19fTtmdW5jdGlvbiBQcmVzZXRBcGlzKCl7cmV0dXJuW2Jhc2Usb2FzMyxqc29uX3NjaGVtYV8yMDIwXzEyLGpzb25fc2NoZW1hXzIwMjBfMTJfc2FtcGxlcyxvYXMzMV19Y29uc3QgaW5saW5lX3BsdWdpbj1zPT4oKT0+KHtmbjpzLmZuLGNvbXBvbmVudHM6cy5jb21wb25lbnRzfSksZmFjdG9yaXphdGlvbl9zeXN0ZW09cz0+e2NvbnN0IG89WWUoKSh7bGF5b3V0OntsYXlvdXQ6cy5sYXlvdXQsZmlsdGVyOnMuZmlsdGVyfSxzcGVjOntzcGVjOiIiLHVybDpzLnVybH0scmVxdWVzdFNuaXBwZXRzOnMucmVxdWVzdFNuaXBwZXRzfSxzLmluaXRpYWxTdGF0ZSk7aWYocy5pbml0aWFsU3RhdGUpZm9yKGNvbnN0W2ksYV1vZiBPYmplY3QuZW50cmllcyhzLmluaXRpYWxTdGF0ZSkpdm9pZCAwPT09YSYmZGVsZXRlIG9baV07cmV0dXJue3N5c3RlbTp7Y29uZmlnczpzLmNvbmZpZ3N9LHBsdWdpbnM6cy5wcmVzZXRzLHN0YXRlOm99fSxzb3VyY2VzX3F1ZXJ5PSgpPT5zPT57Y29uc3Qgbz1zLnF1ZXJ5Q29uZmlnRW5hYmxlZD8oKCk9Pntjb25zdCBzPW5ldyBVUkxTZWFyY2hQYXJhbXMobHQubG9jYXRpb24uc2VhcmNoKTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHMpfSkoKTp7fTtyZXR1cm4gT2JqZWN0LmVudHJpZXMobykucmVkdWNlKCgocyxbbyxpXSk9PigiY29uZmlnIj09PW8/cy5jb25maWdVcmw9aToidXJscy5wcmltYXJ5TmFtZSI9PT1vP3Nbb109aTpzPWNvKCkocyxvLGkpLHMpKSx7fSl9LHNvdXJjZXNfdXJsPSh7dXJsOnMsc3lzdGVtOm99KT0+YXN5bmMgaT0+e2lmKCFzKXJldHVybnt9O2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBvLmNvbmZpZ3NBY3Rpb25zPy5nZXRDb25maWdCeVVybClyZXR1cm57fTtjb25zdCBhPSgoKT0+e2NvbnN0IHM9e307cmV0dXJuIHMucHJvbWlzZT1uZXcgUHJvbWlzZSgoKG8saSk9PntzLnJlc29sdmU9byxzLnJlamVjdD1pfSkpLHN9KSgpO3JldHVybiBvLmNvbmZpZ3NBY3Rpb25zLmdldENvbmZpZ0J5VXJsKHt1cmw6cyxsb2FkUmVtb3RlQ29uZmlnOiEwLHJlcXVlc3RJbnRlcmNlcHRvcjppLnJlcXVlc3RJbnRlcmNlcHRvcixyZXNwb25zZUludGVyY2VwdG9yOmkucmVzcG9uc2VJbnRlcmNlcHRvcn0sKHM9PnthLnJlc29sdmUocyl9KSksYS5wcm9taXNlfSxydW50aW1lPSgpPT4oKT0+e2NvbnN0IHM9e307cmV0dXJuIGdsb2JhbFRoaXMubG9jYXRpb24mJihzLm9hdXRoMlJlZGlyZWN0VXJsPWAke2dsb2JhbFRoaXMubG9jYXRpb24ucHJvdG9jb2x9Ly8ke2dsb2JhbFRoaXMubG9jYXRpb24uaG9zdH0ke2dsb2JhbFRoaXMubG9jYXRpb24ucGF0aG5hbWUuc3Vic3RyaW5nKDAsZ2xvYmFsVGhpcy5sb2NhdGlvbi5wYXRobmFtZS5sYXN0SW5kZXhPZigiLyIpKX0vb2F1dGgyLXJlZGlyZWN0Lmh0bWxgKSxzfSwkVD1PYmplY3QuZnJlZXplKHtkb21faWQ6bnVsbCxkb21Ob2RlOm51bGwsc3BlYzp7fSx1cmw6IiIsdXJsczpudWxsLGNvbmZpZ1VybDpudWxsLGxheW91dDoiQmFzZUxheW91dCIsZG9jRXhwYW5zaW9uOiJsaXN0IixtYXhEaXNwbGF5ZWRUYWdzOi0xLGZpbHRlcjohMSx2YWxpZGF0b3JVcmw6Imh0dHBzOi8vdmFsaWRhdG9yLnN3YWdnZXIuaW8vdmFsaWRhdG9yIixvYXV0aDJSZWRpcmVjdFVybDp2b2lkIDAscGVyc2lzdEF1dGhvcml6YXRpb246ITEsY29uZmlnczp7fSxkaXNwbGF5T3BlcmF0aW9uSWQ6ITEsZGlzcGxheVJlcXVlc3REdXJhdGlvbjohMSxkZWVwTGlua2luZzohMSx0cnlJdE91dEVuYWJsZWQ6ITEscmVxdWVzdEludGVyY2VwdG9yOnM9PihzLmN1cmxPcHRpb25zPVtdLHMpLHJlc3BvbnNlSW50ZXJjZXB0b3I6cz0+cyxzaG93TXV0YXRlZFJlcXVlc3Q6ITAsZGVmYXVsdE1vZGVsUmVuZGVyaW5nOiJleGFtcGxlIixkZWZhdWx0TW9kZWxFeHBhbmREZXB0aDoxLGRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aDoxLHNob3dFeHRlbnNpb25zOiExLHNob3dDb21tb25FeHRlbnNpb25zOiExLHdpdGhDcmVkZW50aWFsczohMSxyZXF1ZXN0U25pcHBldHNFbmFibGVkOiExLHJlcXVlc3RTbmlwcGV0czp7Z2VuZXJhdG9yczp7Y3VybF9iYXNoOnt0aXRsZToiY1VSTCAoYmFzaCkiLHN5bnRheDoiYmFzaCJ9LGN1cmxfcG93ZXJzaGVsbDp7dGl0bGU6ImNVUkwgKFBvd2VyU2hlbGwpIixzeW50YXg6InBvd2Vyc2hlbGwifSxjdXJsX2NtZDp7dGl0bGU6ImNVUkwgKENNRCkiLHN5bnRheDoiYmFzaCJ9fSxkZWZhdWx0RXhwYW5kZWQ6ITAsbGFuZ3VhZ2VzOm51bGx9LHN1cHBvcnRlZFN1Ym1pdE1ldGhvZHM6WyJnZXQiLCJwdXQiLCJwb3N0IiwiZGVsZXRlIiwib3B0aW9ucyIsImhlYWQiLCJwYXRjaCIsInRyYWNlIl0scXVlcnlDb25maWdFbmFibGVkOiExLHByZXNldHM6W1ByZXNldEFwaXNdLHBsdWdpbnM6W10saW5pdGlhbFN0YXRlOnt9LGZuOnt9LGNvbXBvbmVudHM6e30sc3ludGF4SGlnaGxpZ2h0OnthY3RpdmF0ZWQ6ITAsdGhlbWU6ImFnYXRlIn0sb3BlcmF0aW9uc1NvcnRlcjpudWxsLHRhZ3NTb3J0ZXI6bnVsbCxvbkNvbXBsZXRlOm51bGwsbW9kZWxQcm9wZXJ0eU1hY3JvOm51bGwscGFyYW1ldGVyTWFjcm86bnVsbCxmaWxlVXBsb2FkTWVkaWFUeXBlczpbImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsImltYWdlLyIsImF1ZGlvLyIsInZpZGVvLyJdLHVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcjpudWxsfSk7dmFyIHFUPV9fd2VicGFja19yZXF1aXJlX18oNjE0NDgpLFZUPV9fd2VicGFja19yZXF1aXJlX18ubihxVCksVVQ9X193ZWJwYWNrX3JlcXVpcmVfXyg3NzczMSkselQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKFVUKTtjb25zdCB0eXBlX2Nhc3RlcnNfYXJyYXk9KHMsbz1bXSk9PkFycmF5LmlzQXJyYXkocyk/czpvLHR5cGVfY2FzdGVyc19ib29sZWFuPShzLG89ITEpPT4hMD09PXN8fCJ0cnVlIj09PXN8fDE9PT1zfHwiMSI9PT1zfHwhMSE9PXMmJiJmYWxzZSIhPT1zJiYwIT09cyYmIjAiIT09cyYmbyxkb21fbm9kZT1zPT5udWxsPT09c3x8Im51bGwiPT09cz9udWxsOnMsdHlwZV9jYXN0ZXJzX2ZpbHRlcj1zPT57Y29uc3Qgbz1TdHJpbmcocyk7cmV0dXJuIHR5cGVfY2FzdGVyc19ib29sZWFuKHMsbyl9LHR5cGVfY2FzdGVyc19mdW5jdGlvbj0ocyxvKT0+ImZ1bmN0aW9uIj09dHlwZW9mIHM/czpvLG51bGxhYmxlX2FycmF5PXM9PkFycmF5LmlzQXJyYXkocyk/czpudWxsLG51bGxhYmxlX2Z1bmN0aW9uPXM9PiJmdW5jdGlvbiI9PXR5cGVvZiBzP3M6bnVsbCxudWxsYWJsZV9zdHJpbmc9cz0+bnVsbD09PXN8fCJudWxsIj09PXM/bnVsbDpTdHJpbmcocyksdHlwZV9jYXN0ZXJzX251bWJlcj0ocyxvPS0xKT0+e2NvbnN0IGk9cGFyc2VJbnQocywxMCk7cmV0dXJuIE51bWJlci5pc05hTihpKT9vOml9LHR5cGVfY2FzdGVyc19vYmplY3Q9KHMsbz17fSk9PmFzKCkocyk/czpvLHNvcnRlcj1zPT4iZnVuY3Rpb24iPT10eXBlb2Ygc3x8InN0cmluZyI9PXR5cGVvZiBzP3M6bnVsbCx0eXBlX2Nhc3RlcnNfc3RyaW5nPXM9PlN0cmluZyhzKSxzeW50YXhfaGlnaGxpZ2h0PShzLG8pPT5hcygpKHMpP3M6ITE9PT1zfHwiZmFsc2UiPT09c3x8MD09PXN8fCIwIj09PXM/e2FjdGl2YXRlZDohMX06byx1bmRlZmluZWRfc3RyaW5nPXM9PnZvaWQgMD09PXN8fCJ1bmRlZmluZWQiPT09cz92b2lkIDA6U3RyaW5nKHMpLFdUPXtjb21wb25lbnRzOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19vYmplY3R9LGNvbmZpZ3M6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX29iamVjdH0sY29uZmlnVXJsOnt0eXBlQ2FzdGVyOm51bGxhYmxlX3N0cmluZ30sZGVlcExpbmtpbmc6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX2Jvb2xlYW4sZGVmYXVsdFZhbHVlOiRULmRlZXBMaW5raW5nfSxkZWZhdWx0TW9kZWxFeHBhbmREZXB0aDp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfbnVtYmVyLGRlZmF1bHRWYWx1ZTokVC5kZWZhdWx0TW9kZWxFeHBhbmREZXB0aH0sZGVmYXVsdE1vZGVsUmVuZGVyaW5nOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19zdHJpbmd9LGRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aDp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfbnVtYmVyLGRlZmF1bHRWYWx1ZTokVC5kZWZhdWx0TW9kZWxzRXhwYW5kRGVwdGh9LGRpc3BsYXlPcGVyYXRpb25JZDp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfYm9vbGVhbixkZWZhdWx0VmFsdWU6JFQuZGlzcGxheU9wZXJhdGlvbklkfSxkaXNwbGF5UmVxdWVzdER1cmF0aW9uOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19ib29sZWFuLGRlZmF1bHRWYWx1ZTokVC5kaXNwbGF5UmVxdWVzdER1cmF0aW9ufSxkb2NFeHBhbnNpb246e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX3N0cmluZ30sZG9tX2lkOnt0eXBlQ2FzdGVyOm51bGxhYmxlX3N0cmluZ30sZG9tTm9kZTp7dHlwZUNhc3Rlcjpkb21fbm9kZX0sZmlsZVVwbG9hZE1lZGlhVHlwZXM6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX2FycmF5LGRlZmF1bHRWYWx1ZTokVC5maWxlVXBsb2FkTWVkaWFUeXBlc30sZmlsdGVyOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19maWx0ZXJ9LGZuOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19vYmplY3R9LGluaXRpYWxTdGF0ZTp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfb2JqZWN0fSxsYXlvdXQ6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX3N0cmluZ30sbWF4RGlzcGxheWVkVGFnczp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfbnVtYmVyLGRlZmF1bHRWYWx1ZTokVC5tYXhEaXNwbGF5ZWRUYWdzfSxtb2RlbFByb3BlcnR5TWFjcm86e3R5cGVDYXN0ZXI6bnVsbGFibGVfZnVuY3Rpb259LG9hdXRoMlJlZGlyZWN0VXJsOnt0eXBlQ2FzdGVyOnVuZGVmaW5lZF9zdHJpbmd9LG9uQ29tcGxldGU6e3R5cGVDYXN0ZXI6bnVsbGFibGVfZnVuY3Rpb259LG9wZXJhdGlvbnNTb3J0ZXI6e3R5cGVDYXN0ZXI6c29ydGVyfSxwYXJhbWF0ZXJNYWNybzp7dHlwZUNhc3RlcjpudWxsYWJsZV9mdW5jdGlvbn0scGVyc2lzdEF1dGhvcml6YXRpb246e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX2Jvb2xlYW4sZGVmYXVsdFZhbHVlOiRULnBlcnNpc3RBdXRob3JpemF0aW9ufSxwbHVnaW5zOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19hcnJheSxkZWZhdWx0VmFsdWU6JFQucGx1Z2luc30scHJlc2V0czp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfYXJyYXksZGVmYXVsdFZhbHVlOiRULnByZXNldHN9LHJlcXVlc3RJbnRlcmNlcHRvcjp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfZnVuY3Rpb24sZGVmYXVsdFZhbHVlOiRULnJlcXVlc3RJbnRlcmNlcHRvcn0scmVxdWVzdFNuaXBwZXRzOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19vYmplY3QsZGVmYXVsdFZhbHVlOiRULnJlcXVlc3RTbmlwcGV0c30scmVxdWVzdFNuaXBwZXRzRW5hYmxlZDp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfYm9vbGVhbixkZWZhdWx0VmFsdWU6JFQucmVxdWVzdFNuaXBwZXRzRW5hYmxlZH0scmVzcG9uc2VJbnRlcmNlcHRvcjp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfZnVuY3Rpb24sZGVmYXVsdFZhbHVlOiRULnJlc3BvbnNlSW50ZXJjZXB0b3J9LHNob3dDb21tb25FeHRlbnNpb25zOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19ib29sZWFuLGRlZmF1bHRWYWx1ZTokVC5zaG93Q29tbW9uRXh0ZW5zaW9uc30sc2hvd0V4dGVuc2lvbnM6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX2Jvb2xlYW4sZGVmYXVsdFZhbHVlOiRULnNob3dFeHRlbnNpb25zfSxzaG93TXV0YXRlZFJlcXVlc3Q6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX2Jvb2xlYW4sZGVmYXVsdFZhbHVlOiRULnNob3dNdXRhdGVkUmVxdWVzdH0sc3BlYzp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfb2JqZWN0LGRlZmF1bHRWYWx1ZTokVC5zcGVjfSxzdXBwb3J0ZWRTdWJtaXRNZXRob2RzOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19hcnJheSxkZWZhdWx0VmFsdWU6JFQuc3VwcG9ydGVkU3VibWl0TWV0aG9kc30sc3ludGF4SGlnaGxpZ2h0Ont0eXBlQ2FzdGVyOnN5bnRheF9oaWdobGlnaHQsZGVmYXVsdFZhbHVlOiRULnN5bnRheEhpZ2hsaWdodH0sInN5bnRheEhpZ2hsaWdodC5hY3RpdmF0ZWQiOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19ib29sZWFuLGRlZmF1bHRWYWx1ZTokVC5zeW50YXhIaWdobGlnaHQuYWN0aXZhdGVkfSwic3ludGF4SGlnaGxpZ2h0LnRoZW1lIjp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfc3RyaW5nfSx0YWdzU29ydGVyOnt0eXBlQ2FzdGVyOnNvcnRlcn0sdHJ5SXRPdXRFbmFibGVkOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19ib29sZWFuLGRlZmF1bHRWYWx1ZTokVC50cnlJdE91dEVuYWJsZWR9LHVybDp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfc3RyaW5nfSx1cmxzOnt0eXBlQ2FzdGVyOm51bGxhYmxlX2FycmF5fSwidXJscy5wcmltYXJ5TmFtZSI6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX3N0cmluZ30sdmFsaWRhdG9yVXJsOnt0eXBlQ2FzdGVyOm51bGxhYmxlX3N0cmluZ30sd2l0aENyZWRlbnRpYWxzOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19ib29sZWFuLGRlZmF1bHRWYWx1ZTokVC53aXRoQ3JlZGVudGlhbHN9LHVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcjp7dHlwZUNhc3RlcjpudWxsYWJsZV9mdW5jdGlvbn19LHR5cGVfY2FzdD1zPT5PYmplY3QuZW50cmllcyhXVCkucmVkdWNlKCgocyxbbyx7dHlwZUNhc3RlcjppLGRlZmF1bHRWYWx1ZTphfV0pPT57aWYoVlQoKShzLG8pKXtjb25zdCB1PWkoQW4oKShzLG8pLGEpO3M9elQoKShvLHUscyl9cmV0dXJuIHN9KSx7Li4uc30pLGNvbmZpZ19tZXJnZT0ocywuLi5vKT0+e2xldCBpPVN5bWJvbC5mb3IoImRvbU5vZGUiKSxhPVN5bWJvbC5mb3IoInByaW1hcnlOYW1lIik7Y29uc3QgdT1bXTtmb3IoY29uc3QgcyBvZiBvKXtjb25zdCBvPXsuLi5zfTtPYmplY3QuaGFzT3duKG8sImRvbU5vZGUiKSYmKGk9by5kb21Ob2RlLGRlbGV0ZSBvLmRvbU5vZGUpLE9iamVjdC5oYXNPd24obywidXJscy5wcmltYXJ5TmFtZSIpPyhhPW9bInVybHMucHJpbWFyeU5hbWUiXSxkZWxldGUgb1sidXJscy5wcmltYXJ5TmFtZSJdKTpBcnJheS5pc0FycmF5KG8udXJscykmJk9iamVjdC5oYXNPd24oby51cmxzLCJwcmltYXJ5TmFtZSIpJiYoYT1vLnVybHMucHJpbWFyeU5hbWUsZGVsZXRlIG8udXJscy5wcmltYXJ5TmFtZSksdS5wdXNoKG8pfWNvbnN0IF89WWUoKShzLC4uLnUpO3JldHVybiBpIT09U3ltYm9sLmZvcigiZG9tTm9kZSIpJiYoXy5kb21Ob2RlPWkpLGEhPT1TeW1ib2wuZm9yKCJwcmltYXJ5TmFtZSIpJiZBcnJheS5pc0FycmF5KF8udXJscykmJihfLnVybHMucHJpbWFyeU5hbWU9YSksdHlwZV9jYXN0KF8pfTtmdW5jdGlvbiBTd2FnZ2VyVUkocyl7Y29uc3Qgbz1zb3VyY2VzX3F1ZXJ5KCkocyksaT1ydW50aW1lKCkoKSxhPVN3YWdnZXJVSS5jb25maWcubWVyZ2Uoe30sU3dhZ2dlclVJLmNvbmZpZy5kZWZhdWx0cyxpLHMsbyksdT1mYWN0b3JpemF0aW9uX3N5c3RlbShhKSxfPWlubGluZV9wbHVnaW4oYSksdz1uZXcgU3RvcmUodSk7dy5yZWdpc3RlcihbYS5wbHVnaW5zLF9dKTtjb25zdCB4PXcuZ2V0U3lzdGVtKCkscGVyc2lzdENvbmZpZ3M9cz0+e3cuc2V0Q29uZmlncyhzKSx4LmNvbmZpZ3NBY3Rpb25zLmxvYWRlZCgpfSx1cGRhdGVTcGVjPXM9Pnshby51cmwmJiJvYmplY3QiPT10eXBlb2Ygcy5zcGVjJiZPYmplY3Qua2V5cyhzLnNwZWMpLmxlbmd0aD4wPyh4LnNwZWNBY3Rpb25zLnVwZGF0ZVVybCgiIikseC5zcGVjQWN0aW9ucy51cGRhdGVMb2FkaW5nU3RhdHVzKCJzdWNjZXNzIikseC5zcGVjQWN0aW9ucy51cGRhdGVTcGVjKEpTT04uc3RyaW5naWZ5KHMuc3BlYykpKToiZnVuY3Rpb24iPT10eXBlb2YgeC5zcGVjQWN0aW9ucy5kb3dubG9hZCYmcy51cmwmJiFzLnVybHMmJih4LnNwZWNBY3Rpb25zLnVwZGF0ZVVybChzLnVybCkseC5zcGVjQWN0aW9ucy5kb3dubG9hZChzLnVybCkpfSxyZW5kZXI9cz0+e2lmKHMuZG9tTm9kZSl4LnJlbmRlcihzLmRvbU5vZGUsIkFwcCIpO2Vsc2UgaWYocy5kb21faWQpe2NvbnN0IG89ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzLmRvbV9pZCk7eC5yZW5kZXIobywiQXBwIil9ZWxzZSBudWxsPT09cy5kb21faWR8fG51bGw9PT1zLmRvbU5vZGV8fGNvbnNvbGUuZXJyb3IoIlNraXBwZWQgcmVuZGVyaW5nOiBubyBgZG9tX2lkYCBvciBgZG9tTm9kZWAgd2FzIHNwZWNpZmllZCIpfTtyZXR1cm4gYS5jb25maWdVcmw/KChhc3luYygpPT57Y29uc3R7Y29uZmlnVXJsOnN9PWEsaT1hd2FpdCBzb3VyY2VzX3VybCh7dXJsOnMsc3lzdGVtOnh9KShhKSx1PVN3YWdnZXJVSS5jb25maWcubWVyZ2Uoe30sYSxpLG8pO3BlcnNpc3RDb25maWdzKHUpLG51bGwhPT1pJiZ1cGRhdGVTcGVjKHUpLHJlbmRlcih1KX0pKCkseCk6KHBlcnNpc3RDb25maWdzKGEpLHVwZGF0ZVNwZWMoYSkscmVuZGVyKGEpLHgpfVN3YWdnZXJVSS5TeXN0ZW09U3RvcmUsU3dhZ2dlclVJLmNvbmZpZz17ZGVmYXVsdHM6JFQsbWVyZ2U6Y29uZmlnX21lcmdlLHR5cGVDYXN0OnR5cGVfY2FzdCx0eXBlQ2FzdE1hcHBpbmdzOldUfSxTd2FnZ2VyVUkucHJlc2V0cz17YmFzZSxhcGlzOlByZXNldEFwaXN9LFN3YWdnZXJVSS5wbHVnaW5zPXtBdXRoOmF1dGgsQ29uZmlnczpjb25maWdzUGx1Z2luLERlZXBMaW5pbmc6ZGVlcF9saW5raW5nLEVycjplcnIsRmlsdGVyOmZpbHRlcixJY29uczppY29ucyxKU09OU2NoZW1hNTpqc29uX3NjaGVtYV81LEpTT05TY2hlbWE1U2FtcGxlczpqc29uX3NjaGVtYV81X3NhbXBsZXMsSlNPTlNjaGVtYTIwMjAxMjpqc29uX3NjaGVtYV8yMDIwXzEyLEpTT05TY2hlbWEyMDIwMTJTYW1wbGVzOmpzb25fc2NoZW1hXzIwMjBfMTJfc2FtcGxlcyxMYXlvdXQ6cGx1Z2luc19sYXlvdXQsTG9nczpsb2dzLE9wZW5BUEkzMDpvYXMzLE9wZW5BUEkzMTpvYXMzLE9uQ29tcGxldGU6b25fY29tcGxldGUsUmVxdWVzdFNuaXBwZXRzOnBsdWdpbnNfcmVxdWVzdF9zbmlwcGV0cyxTcGVjOnBsdWdpbnNfc3BlYyxTd2FnZ2VyQ2xpZW50OnN3YWdnZXJfY2xpZW50LFV0aWw6dXRpbCxWaWV3OnZpZXcsVmlld0xlZ2FjeTp2aWV3X2xlZ2FjeSxEb3dubG9hZFVybDpkb3dubG9hZFVybFBsdWdpbixTeW50YXhIaWdobGlnaHRpbmc6c3ludGF4X2hpZ2hsaWdodGluZyxWZXJzaW9uczp2ZXJzaW9ucyxTYWZlUmVuZGVyOnNhZmVfcmVuZGVyfTtjb25zdCBKVD1Td2FnZ2VyVUl9KSgpLGk9aS5kZWZhdWx0fSkoKSkpOw==</File>
        <File Location="var/httpd/htdocs/js/thirdparty/swagger/swagger-ui-bundle.js.map" Permission="660" Encode="Base64">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RUFBUSxJQUNoRCxFQUFRLElBQU0sRUFBUSxJQUFLLEVBQVEsSUFBSyxFQUFRLElBQ2hELEVBQVEsSUFBTSxFQUFRLElBQUssRUFBUSxJQUFLLEVBQVEsSUFDaEQsRUFBUSxJQUFNLEVBQVEsSUFDdEIsRUFBUSxJQUFNLEVBQVEsSUFBSyxFQUFRLElBQUssRUFBUSxJQUFLLEVBQVEsSUFBSyxFQUFRLElBQzFFLEVBQVEsSUFBTSxFQUFRLElBQUssRUFBUSxJQUFLLEVBQVEsSUFBSyxFQUFRLElBQUssRUFBUSxJQUMxRSxFQUFRLElBQU0sRUFBUSxJQUFLLEVBQVEsSUFBSyxFQUFRLElBQ2hELEVBQVEsSUFBTSxFQUFRLElBQUssRUFBUSxJQUFLLEVBQVEsSUFDaEQsRUFBUSxJQUFNLEVBQVEsSUFBSyxFQUFRLElBQ25DLEVBQVEsS0FBTSxFQUFRLEtBQ3RCLEVBQVEsS0FBTSxFQUFRLEtBQ3RCLEVBQVEsS0FFUixFQUFVLElBQU0sRUFBVSxJQUFLLEVBQVUsSUFDekMsRUFBVSxJQUFNLEVBQVUsSUFBSyxFQUFVLElBQ3pDLEVBQVUsSUFBTSxFQUFVLElBQUssRUFBVSxJQUFLLEVBQVUsSUFDeEQsRUFBVSxJQUFNLEVBQVUsSUFBSyxFQUFVLElBQUssRUFBVSxJQUN4RCxFQUFVLElBQU0sRUFBVSxJQUFLLEVBQVUsSUFBSyxFQUFVLElBQ3hELEVBQVUsSUFBTSxFQUFVLElBQUssRUFBVSxJQUFLLEVBQVUsSUFBSyxFQUFVLElBQ3ZFLEVBQVUsSUFBTSxFQUFVLElBQUssRUFBVSxJQUFLLEVBQVUsSUFBSyxFQUFVLElBQ3ZFLEVBQVUsSUFBTSxFQUFVLElBQUssRUFBVSxJQUFLLEVBQVUsSUFDeEQsRUFBVSxJQUFNLEVBQVUsSUFBSyxFQUFVLElBQUssRUFBVSxJQUN4RCxFQUFVLElBQU0sRUFBVSxJQUFLLEVBQVUsSUFBSyxFQUFVLElBQ3hELEVBQVUsSUFBTSxFQUFVLElBQUssRUFBVSxJQUFLLEVBQVUsSUFBSyxFQUFVLElBQ3ZFLEVBQVUsSUFBTSxFQUFVLElBQUssRUFBVSxJQUFLLEVBQVUsSUFB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LEVBRTdCLElBQWRxRyxFQUVLLENBQUNyRyxFQUFJLEdBQUlBLEVBQUksR0FBSSxHQUFHZ0ssT0FBT2hLLEVBQUksR0FBSSxLQUFLZ0ssT0FBT2hLLEVBQUksSUFBSyxHQUFHZ0ssT0FBT2hLLEVBQUksR0FBSSxLQUFLZ0ssT0FBT2hLLEVBQUksS0FHakYsSUFBZHFHLEVBQ0ssQ0FBQ3JHLEVBQUksR0FBSUEsRUFBSSxHQUFJQSxFQUFJLEdBQUksR0FBR2dLLE9BQU9oSyxFQUFJLEdBQUksS0FBS2dLLE9BQU9oSyxFQUFJLElBQUssR0FBR2dLLE9BQU9oSyxFQUFJLEdBQUksS0FBS2dLLE9BQU9oSyxFQUFJLElBQUssR0FBR2dLLE9BQU9oSyxFQUFJLEdBQUksS0FBS2dLLE9BQU9oSyxFQUFJLElBQUssR0FBR2dLLE9BQU9oSyxFQUFJLEdBQUksS0FBS2dLLE9BQU9oSyxFQUFJLElBQUssR0FBR2dLLE9BQU9oSyxFQUFJLEdBQUksS0FBS2dLLE9BQU9oSyxFQUFJLElBQUssR0FBR2dLLE9BQU9oSyxFQUFJLEdBQUksS0FBS2dLLE9BQU9oSyxFQUFJLElBQUssR0FBR2dLLE9BQU9oSyxFQUFJLEdBQUksS0FBS2dLLE9BQU9oSyxFQUFJLEdBQUksS0FBS2dLLE9BQU9oSyxFQUFJLElBQUssR0FBR2dLLE9BQU9oSyxFQUFJLEdBQUksS0FBS2dLLE9BQU9oSyxFQUFJLEdBQUksS0FBS2dLLE9BQU9oSyxFQUFJLElBQUssR0FBR2dLLE9BQU9oSyxFQUFJLEdBQUksS0FBS2dLLE9BQU9oSyxFQUFJLEdBQUksS0FBS2dLLE9BQU9oSyxFQUFJLElBQUssR0FBR2dLLE9BQU9oSyxFQUFJLEdBQUksS0FBS2dLLE9BQU9oSyxFQUFJLEdBQUksS0FBS2dLLE9BQU9oSyxFQUFJLElBQUssR0FBR2dLLE9BQU9oSyxFQUFJLEdBQUksS0FBS2dLLE9BQU9oSyxFQUFJLEdBQUksS0FBS2dLLE9BQU9oSyxFQUFJLElBQUssR0FBR2dLLE9BQU9oSyxFQUFJLEdBQUksS0FBS2dLLE9BQU9oSyxFQUFJLEdBQUksS0FBS2dLLE9BQU9oSyxFQUFJLEtBR3JtQnFHLEdBQWEsRUFHUixDQUFDckcsRUFBSSxHQUFJQSxFQUFJLEdBQUlBLEVBQUksR0FBSUEsRUFBSSxHQUFJLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxHQUFJLEtBQUtnSyxPQUFPaEssRUFBSSxJQUFLLEdBQUdn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aW9uIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS93ZWJwYWNrL3J1bnRpbWUvY3JlYXRlIGZha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQGJyYWludHJlZS9zYW5pdGl6ZS11cmwvZGlzdC9jb25zdGFudHMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0BicmFpbnRyZWUvc2FuaXRpemUtdXJsL2Rpc3QvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2Jhc2U2NC1qcy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvYnVmZmVyL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jYWxsLWJpbmQvY2FsbEJvdW5kLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jYWxsLWJpbmQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2Nvb2tpZS9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29weS10by1jbGlwYm9hcmQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2Nzcy5lc2NhcGUvY3NzLmVzY2FwZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvZGVlcC1leHRlbmQvbGliL2RlZXAtZXh0ZW5kLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9kZWVwbWVyZ2UvZGlzdC9janMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2RlZmluZS1kYXRhLXByb3BlcnR5L2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9kb21wdXJpZnkvZGlzdC9wdXJpZnkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2RyYW5nZS9saWIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2VzLWRlZmluZS1wcm9wZXJ0eS9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvZXMtZXJyb3JzL2V2YWwuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2VzLWVycm9ycy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvZXMtZXJyb3JzL3JhbmdlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9lcy1lcnJvcnMvcmVmLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9lcy1lcnJvcnMvc3ludGF4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9lcy1lcnJvcnMvdHlwZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvZXMtZXJyb3JzL3VyaS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvZXZlbnRzL2V2ZW50cy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvZmF1bHQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2Zvcm1hdC9mb3JtYXQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2Z1bmN0aW9uLWJpbmQvaW1wbGVtZW50YXRpb24uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2Z1bmN0aW9uLWJpbmQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2dldC1pbnRyaW5zaWMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2dvcGQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2hhcy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvaGFzLXByb3RvL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9oYXMtc3ltYm9scy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvaGFzLXN5bWJvbHMvc2hhbXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2hhc293bi9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9jb3JlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9iYXNoLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9odHRwLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9qYXZhc2NyaXB0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9qc29uLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wb3dlcnNoZWxsLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy94bWwuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3lhbWwuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2llZWU3NTQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2ltbXV0YWJsZS9kaXN0L2ltbXV0YWJsZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvaW5oZXJpdHMvaW5oZXJpdHNfYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvanMtZmlsZS1kb3dubG9hZC9maWxlLWRvd25sb2FkLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2guZGVib3VuY2UvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fRGF0YVZpZXcuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fSGFzaC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19MYXp5V3JhcHBlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19MaXN0Q2FjaGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fTG9kYXNoV3JhcHBlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19NYXAuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fTWFwQ2FjaGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fUHJvbWlzZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19TZXQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fU2V0Q2FjaGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fU3RhY2suanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fU3ltYm9sLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX1VpbnQ4QXJyYXkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fV2Vha01hcC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hcHBseS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hcnJheUVhY2guanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXJyYXlGaWx0ZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXJyYXlJbmNsdWRlcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hcnJheUxpa2VLZXlzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2FycmF5TWFwLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2FycmF5UHVzaC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hcnJheVJlZHVjZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hcnJheVNvbWUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXNjaWlUb0FycmF5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2FzY2lpV29yZHMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXNzaWduTWVyZ2VWYWx1ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hc3NpZ25WYWx1ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hc3NvY0luZGV4T2YuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUFzc2lnbi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlQXNzaWduSW4uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUFzc2lnblZhbHVlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VDbG9uZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlQ3JlYXRlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VFYWNoLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VGaW5kSW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUZsYXR0ZW4uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUZvci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlRm9yT3duLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VHZXQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUdldEFsbEtleXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUdldFRhZy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSGFzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VIYXNJbi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSW5kZXhPZi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSXNBcmd1bWVudHMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzRXF1YWwuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzRXF1YWxEZWVwLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc01hcC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSXNNYXRjaC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSXNOYU4uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzTmF0aXZlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc1NldC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSXNUeXBlZEFycmF5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJdGVyYXRlZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlS2V5cy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlS2V5c0luLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VMb2Rhc2guanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZU1hdGNoZXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZU1hdGNoZXNQcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlTWVyZ2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZU1lcmdlRGVlcC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlUHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVByb3BlcnR5RGVlcC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlUHJvcGVydHlPZi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlUmVkdWNlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VSZXN0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VTZXQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVNldERhdGEuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVNldFRvU3RyaW5nLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VTbGljZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlU29tZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlVGltZXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVRvU3RyaW5nLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VUcmltLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VVbmFyeS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlVW5zZXQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVppcE9iamVjdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jYWNoZUhhcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jYXN0UGF0aC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jYXN0U2xpY2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY2xvbmVBcnJheUJ1ZmZlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jbG9uZUJ1ZmZlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jbG9uZURhdGFWaWV3LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Nsb25lUmVnRXhwLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Nsb25lU3ltYm9sLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Nsb25lVHlwZWRBcnJheS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jb21wb3NlQXJncy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jb21wb3NlQXJnc1JpZ2h0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NvcHlBcnJheS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jb3B5T2JqZWN0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NvcHlTeW1ib2xzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NvcHlTeW1ib2xzSW4uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY29yZUpzRGF0YS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jb3VudEhvbGRlcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3JlYXRlQXNzaWduZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3JlYXRlQmFzZUVhY2guanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3JlYXRlQmFzZUZvci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jcmVhdGVCaW5kLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NyZWF0ZUNhc2VGaXJzdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jcmVhdGVDb21wb3VuZGVyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NyZWF0ZUN0b3IuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3JlYXRlQ3VycnkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3JlYXRlRmluZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jcmVhdGVIeWJyaWQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3JlYXRlUGFydGlhbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jcmVhdGVSZWN1cnJ5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NyZWF0ZVdyYXAuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3VzdG9tT21pdENsb25lLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2RlYnVyckxldHRlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19kZWZpbmVQcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19lcXVhbEFycmF5cy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19lcXVhbEJ5VGFnLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2VxdWFsT2JqZWN0cy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19mbGF0UmVzdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19mcmVlR2xvYmFsLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldEFsbEtleXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0QWxsS2V5c0luLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldERhdGEuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0RnVuY05hbWUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0SG9sZGVyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldE1hcERhdGEuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0TWF0Y2hEYXRhLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldE5hdGl2ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRQcm90b3R5cGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0UmF3VGFnLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldFN5bWJvbHMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0U3ltYm9sc0luLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldFRhZy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRWYWx1ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRXcmFwRGV0YWlscy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19oYXNQYXRoLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2hhc1VuaWNvZGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faGFzVW5pY29kZVdvcmQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faGFzaENsZWFyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2hhc2hEZWxldGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faGFzaEdldC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19oYXNoSGFzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2hhc2hTZXQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faW5pdENsb25lQXJyYXkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faW5pdENsb25lQnlUYWcuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faW5pdENsb25lT2JqZWN0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2luc2VydFdyYXBEZXRhaWxzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2lzRmxhdHRlbmFibGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faXNJbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19pc0l0ZXJhdGVlQ2FsbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19pc0tleS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19pc0tleWFibGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faXNMYXppYWJsZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19pc01hc2tlZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19pc1Byb3RvdHlwZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19pc1N0cmljdENvbXBhcmFibGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbGlzdENhY2hlQ2xlYXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbGlzdENhY2hlRGVsZXRlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2xpc3RDYWNoZUdldC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19saXN0Q2FjaGVIYXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbGlzdENhY2hlU2V0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX21hcENhY2hlQ2xlYXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWFwQ2FjaGVEZWxldGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWFwQ2FjaGVHZXQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWFwQ2FjaGVIYXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWFwQ2FjaGVTZXQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWFwVG9BcnJheS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19tYXRjaGVzU3RyaWN0Q29tcGFyYWJsZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19tZW1vaXplQ2FwcGVkLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX21lcmdlRGF0YS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19tZXRhTWFwLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX25hdGl2ZUNyZWF0ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19uYXRpdmVLZXlzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX25hdGl2ZUtleXNJbi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19ub2RlVXRpbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19vYmplY3RUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19vdmVyQXJnLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX292ZXJSZXN0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3BhcmVudC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19yZWFsTmFtZXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fcmVvcmRlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19yZXBsYWNlSG9sZGVycy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19yb290LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3NhZmVHZXQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fc2V0Q2FjaGVBZGQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fc2V0Q2FjaGVIYXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fc2V0RGF0YS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19zZXRUb0FycmF5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3NldFRvU3RyaW5nLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3NldFdyYXBUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19zaG9ydE91dC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19zdGFja0NsZWFyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3N0YWNrRGVsZXRlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3N0YWNrR2V0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3N0YWNrSGFzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3N0YWNrU2V0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3N0cmljdEluZGV4T2YuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fc3RyaW5nVG9BcnJheS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19zdHJpbmdUb1BhdGguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fdG9LZXkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fdG9Tb3VyY2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fdHJpbW1lZEVuZEluZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3VuaWNvZGVUb0FycmF5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3VuaWNvZGVXb3Jkcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL191cGRhdGVXcmFwRGV0YWlscy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL193cmFwcGVyQ2xvbmUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9hcnkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9jYW1lbENhc2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9jYXBpdGFsaXplLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvY2xvbmUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9jb25zdGFudC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2N1cnJ5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvZGVib3VuY2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9kZWJ1cnIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9lcS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2VzY2FwZVJlZ0V4cC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2ZpbmQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9maW5kSW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9mbGF0dGVuLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvZnAvX2Jhc2VDb252ZXJ0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvZnAvX21hcHBpbmcuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9mcC9fdXRpbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2ZwL2Fzc29jUGF0aC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2ZwL2NvbnZlcnQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9mcC9wbGFjZWhvbGRlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2ZwL3NldC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2dldC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2hhcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2hhc0luLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaWRlbnRpdHkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0FyZ3VtZW50cy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzQXJyYXkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0FycmF5TGlrZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzQXJyYXlMaWtlT2JqZWN0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNCb29sZWFuLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNCdWZmZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0VtcHR5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNFcXVhbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzRXJyb3IuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0Z1bmN0aW9uLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNMZW5ndGguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc01hcC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzTnVsbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzTnVtYmVyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNPYmplY3QuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc09iamVjdExpa2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc1BsYWluT2JqZWN0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNTZXQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc1N0cmluZy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzU3ltYm9sLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNUeXBlZEFycmF5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNXZWFrTWFwLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXRlcmF0ZWUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9rZXlzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gva2V5c0luLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvbGFzdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL21lbW9pemUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9tZXJnZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL25lZ2F0ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL25vb3AuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9ub3cuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9vbWl0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9yZWFyZy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL3JlZHVjZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL3NldC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL3NvbWUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9zdHViQXJyYXkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9zdHViRmFsc2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC90b0Zpbml0ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL3RvSW50ZWdlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL3RvTG93ZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC90b051bWJlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL3RvUGF0aC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL3RvUGxhaW5PYmplY3QuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC90b1N0cmluZy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL3VwcGVyRmlyc3QuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC93b3Jkcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbG9kYXNoL3dyYXBwZXJMb2Rhc2guanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC96aXBPYmplY3QuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2xvd2xpZ2h0L2xpYi9jb3JlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9taW5pbS9saWIvQXJyYXlTbGljZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbWluaW0vbGliL0tleVZhbHVlUGFpci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbWluaW0vbGliL05hbWVzcGFjZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbWluaW0vbGliL09iamVjdFNsaWNlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9taW5pbS9saWIvZWxlbWVudHMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL21pbmltL2xpYi9lbGVtZW50cy9MaW5rRWxlbWVudC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbWluaW0vbGliL2VsZW1lbnRzL1JlZkVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL21pbmltL2xpYi9taW5pbS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbWluaW0vbGliL3ByaW1pdGl2ZXMvQXJyYXlFbGVtZW50LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9taW5pbS9saWIvcHJpbWl0aXZlcy9Cb29sZWFuRWxlbWVudC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbWluaW0vbGliL3ByaW1pdGl2ZXMvRWxlbWVudC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbWluaW0vbGliL3ByaW1pdGl2ZXMvTWVtYmVyRWxlbWVudC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvbWluaW0vbGliL3ByaW1pdGl2ZXMvTnVsbEVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL21pbmltL2xpYi9wcmltaXRpdmVzL051bWJlckVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL21pbmltL2xpYi9wcmltaXRpdmVzL09iamVjdEVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL21pbmltL2xpYi9wcmltaXRpdmVzL1N0cmluZ0VsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL21pbmltL2xpYi9zZXJpYWxpc2Vycy9KU09OMDZTZXJpYWxpc2VyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9taW5pbS9saWIvc2VyaWFsaXNlcnMvSlNPTlNlcmlhbGlzZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL29iamVjdC1pbnNwZWN0L2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9wcm9jZXNzL2Jyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvZmFjdG9yeVdpdGhUaHJvd2luZ1NoaW1zLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcXMvbGliL2Zvcm1hdHMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3FzL2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcXMvbGliL3BhcnNlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9xcy9saWIvc3RyaW5naWZ5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9xcy9saWIvdXRpbHMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3F1ZXJ5c3RyaW5naWZ5L2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW5kZXhwL2xpYi9yYW5kZXhwLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW5kb21ieXRlcy9icm93c2VyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yZWFjdC1jb3B5LXRvLWNsaXBib2FyZC9saWIvQ29tcG9uZW50LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yZWFjdC1jb3B5LXRvLWNsaXBib2FyZC9saWIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRlYm91bmNlLWlucHV0L2xpYi9Db21wb25lbnQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRlYm91bmNlLWlucHV0L2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcy9kaXN0L0ltbXV0YWJsZVByb3BUeXBlcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmVhY3QvY2pzL3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yZWFjdC9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2Vycm9ycy1icm93c2VyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vbGliL19zdHJlYW1fZHVwbGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vbGliL19zdHJlYW1fcGFzc3Rocm91Z2guanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JlYWRhYmxlLXN0cmVhbS9saWIvX3N0cmVhbV9yZWFkYWJsZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9fc3RyZWFtX3RyYW5zZm9ybS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9fc3RyZWFtX3dyaXRhYmxlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vbGliL2ludGVybmFsL3N0cmVhbXMvYXN5bmNfaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JlYWRhYmxlLXN0cmVhbS9saWIvaW50ZXJuYWwvc3RyZWFtcy9idWZmZXJfbGlzdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9pbnRlcm5hbC9zdHJlYW1zL2Rlc3Ryb3kuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JlYWRhYmxlLXN0cmVhbS9saWIvaW50ZXJuYWwvc3RyZWFtcy9lbmQtb2Ytc3RyZWFtLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vbGliL2ludGVybmFsL3N0cmVhbXMvZnJvbS1icm93c2VyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vbGliL2ludGVybmFsL3N0cmVhbXMvcGlwZWxpbmUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JlYWRhYmxlLXN0cmVhbS9saWIvaW50ZXJuYWwvc3RyZWFtcy9zdGF0ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9pbnRlcm5hbC9zdHJlYW1zL3N0cmVhbS1icm93c2VyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yZWR1eC1pbW11dGFibGUvZGlzdC9jb21iaW5lUmVkdWNlcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JlZHV4LWltbXV0YWJsZS9kaXN0L2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yZWR1eC1pbW11dGFibGUvZGlzdC91dGlsaXRpZXMvZ2V0U3RhdGVOYW1lLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yZWR1eC1pbW11dGFibGUvZGlzdC91dGlsaXRpZXMvZ2V0VW5leHBlY3RlZEludm9jYXRpb25QYXJhbWV0ZXJNZXNzYWdlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yZWR1eC1pbW11dGFibGUvZGlzdC91dGlsaXRpZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JlZHV4LWltbXV0YWJsZS9kaXN0L3V0aWxpdGllcy92YWxpZGF0ZU5leHRTdGF0ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmVwZWF0LXN0cmluZy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmVxdWlyZXMtcG9ydC9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmV0L2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmV0L2xpYi9wb3NpdGlvbnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JldC9saWIvc2V0cy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmV0L2xpYi90eXBlcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmV0L2xpYi91dGlsLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zYWZlLWJ1ZmZlci9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3NjaGVkdWxlci9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc2VyaWFsaXplLWVycm9yL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zZXQtZnVuY3Rpb24tbGVuZ3RoL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zaGEuanMvaGFzaC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc2hhLmpzL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zaGEuanMvc2hhLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zaGEuanMvc2hhMS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc2hhLmpzL3NoYTIyNC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc2hhLmpzL3NoYTI1Ni5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc2hhLmpzL3NoYTM4NC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc2hhLmpzL3NoYTUxMi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc2hvcnQtdW5pcXVlLWlkL2Rpc3Qvc2hvcnQtdW5pcXVlLWlkLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zaWRlLWNoYW5uZWwvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N0YW1waXQvZGlzdC9zdGFtcGl0Lm1pbi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc3RyZWFtLWJyb3dzZXJpZnkvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N0cmluZ19kZWNvZGVyL2xpYi9zdHJpbmdfZGVjb2Rlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvdG9nZ2xlLXNlbGVjdGlvbi9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvdHJhdmVyc2UvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3VybC1wYXJzZS9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvdXNlLXN5bmMtZXh0ZXJuYWwtc3RvcmUvY2pzL3VzZS1zeW5jLWV4dGVybmFsLXN0b3JlLXdpdGgtc2VsZWN0b3IucHJvZHVjdGlvbi5taW4uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3VzZS1zeW5jLWV4dGVybmFsLXN0b3JlL3dpdGgtc2VsZWN0b3IuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3V0aWwtZGVwcmVjYXRlL2Jyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3htbC1idXQtcHJldHRpZXIvZGlzdC9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMveG1sL2xpYi9lc2NhcGVGb3JYTUwuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3htbC9saWIveG1sLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy96ZW5zY3JvbGwvemVuc2Nyb2xsLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMvYWdncmVnYXRlLWVycm9yLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS1jb3JlanMzL2hlbHBlcnMvZXh0ZW5kcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY2xhc3NuYW1lcy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2FjdHVhbC9hZ2dyZWdhdGUtZXJyb3IuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9hY3R1YWwvaW5zdGFuY2UvYmluZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2FjdHVhbC9vYmplY3QvYXNzaWduLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvYWdncmVnYXRlLWVycm9yLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvZnVuY3Rpb24vdmlydHVhbC9iaW5kLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvaW5zdGFuY2UvYmluZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL29iamVjdC9hc3NpZ24uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9mZWF0dXJlcy9hZ2dyZWdhdGUtZXJyb3IuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9mZWF0dXJlcy9pbnN0YW5jZS9iaW5kLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZmVhdHVyZXMvb2JqZWN0L2Fzc2lnbi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2Z1bGwvYWdncmVnYXRlLWVycm9yLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZnVsbC9pbnN0YW5jZS9iaW5kLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZnVsbC9vYmplY3QvYXNzaWduLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2EtY2FsbGFibGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYS1wb3NzaWJsZS1wcm90b3R5cGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYWRkLXRvLXVuc2NvcGFibGVzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2FuLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9hcnJheS1pbmNsdWRlcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9hcnJheS1zbGljZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9jbGFzc29mLXJhdy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9jbGFzc29mLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2NvcHktY29uc3RydWN0b3ItcHJvcGVydGllcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9jb3JyZWN0LXByb3RvdHlwZS1nZXR0ZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvY3JlYXRlLWl0ZXItcmVzdWx0LW9iamVjdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3IuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2RlZmluZS1nbG9iYWwtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZGVzY3JpcHRvcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZG9jdW1lbnQtYWxsLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2RvbS1pdGVyYWJsZXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZW5naW5lLXVzZXItYWdlbnQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZW5naW5lLXY4LXZlcnNpb24uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZW51bS1idWcta2V5cy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9lcnJvci1zdGFjay1jbGVhci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9lcnJvci1zdGFjay1pbnN0YWxsLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Vycm9yLXN0YWNrLWluc3RhbGxhYmxlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2V4cG9ydC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9mYWlscy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9mdW5jdGlvbi1hcHBseS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLWNvbnRleHQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1uYXRpdmUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9mdW5jdGlvbi1jYWxsLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Z1bmN0aW9uLW5hbWUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzLWFjY2Vzc29yLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcy1jbGF1c2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2dldC1idWlsdC1pbi1wcm90b3R5cGUtbWV0aG9kLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2dldC1idWlsdC1pbi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9nZXQtaXRlcmF0b3ItbWV0aG9kLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2dldC1pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9nZXQtbWV0aG9kLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2dsb2JhbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2hpZGRlbi1rZXlzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2h0bWwuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaWU4LWRvbS1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaW5kZXhlZC1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaW5oZXJpdC1pZi1yZXF1aXJlZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pbnN0YWxsLWVycm9yLWNhdXNlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2lzLWFycmF5LWl0ZXJhdG9yLW1ldGhvZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pcy1jYWxsYWJsZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pcy1mb3JjZWQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtbnVsbC1vci11bmRlZmluZWQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtb2JqZWN0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2lzLXB1cmUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtc3ltYm9sLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2l0ZXJhdGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXRlcmF0b3ItY2xvc2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXRlcmF0b3ItY3JlYXRlLWNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2l0ZXJhdG9yLWRlZmluZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pdGVyYXRvcnMtY29yZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pdGVyYXRvcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvbGVuZ3RoLW9mLWFycmF5LWxpa2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvbWF0aC10cnVuYy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9ub3JtYWxpemUtc3RyaW5nLWFyZ3VtZW50LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1hc3NpZ24uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnRpZXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWdldC1wcm90b3R5cGUtb2YuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3Qta2V5cy1pbnRlcm5hbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3Qta2V5cy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtcHJvcGVydHktaXMtZW51bWVyYWJsZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3Qtc2V0LXByb3RvdHlwZS1vZi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtdG8tc3RyaW5nLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29yZGluYXJ5LXRvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vd24ta2V5cy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9wYXRoLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3Byb3h5LWFjY2Vzc29yLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9zZXQtdG8tc3RyaW5nLXRhZy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9zaGFyZWQta2V5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3NoYXJlZC1zdG9yZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9zaGFyZWQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvc3RyaW5nLW11bHRpYnl0ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9zeW1ib2wtY29uc3RydWN0b3ItZGV0ZWN0aW9uLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3RvLWludGVnZXItb3ItaW5maW5pdHkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8tbGVuZ3RoLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3RvLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90by1wcmltaXRpdmUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8tcHJvcGVydHkta2V5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3RvLXN0cmluZy10YWctc3VwcG9ydC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdHJ5LXRvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy91aWQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdXNlLXN5bWJvbC1hcy11aWQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdjgtcHJvdG90eXBlLWRlZmluZS1idWcuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvd2Vhay1tYXAtYmFzaWMtZGV0ZWN0aW9uLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3dyYXAtZXJyb3ItY29uc3RydWN0b3Itd2l0aC1jYXVzZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuYWdncmVnYXRlLWVycm9yLmNhdXNlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5hZ2dyZWdhdGUtZXJyb3IuY29uc3RydWN0b3IuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLmFnZ3JlZ2F0ZS1lcnJvci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuYXJyYXkuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLmVycm9yLmNhdXNlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5mdW5jdGlvbi5iaW5kLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5vYmplY3QuYXNzaWduLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzbmV4dC5hZ2dyZWdhdGUtZXJyb3IuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvYWdncmVnYXRlLWVycm9yLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL2luc3RhbmNlL2JpbmQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvb2JqZWN0L2Fzc2lnbi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlL3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlL3dlYnBhY2svcnVudGltZS9nbG9iYWwiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlL3dlYnBhY2svcnVudGltZS9ub2RlIG1vZHVsZSBkZWNvcmF0b3IiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JlZHV4L2Rpc3QvcmVkdXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvZXJyL2FjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvd2luZG93LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3V0aWxzL2dldC1wYXJhbWV0ZXItc2NoZW1hLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3V0aWxzL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3N5c3RlbS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2F1dGgvYWN0aW9ucy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2F1dGgvcmVkdWNlcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3Jlc2VsZWN0L2Rpc3QvcmVzZWxlY3QubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvYXV0aC9zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9hdXRoL3NwZWMtZXh0ZW5zaW9ucy93cmFwLWFjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9hdXRoL2NvbmZpZ3MtZXh0ZW5zaW9ucy93cmFwLWFjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9hdXRoL3dyYXAtYWN0aW9ucy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2F1dGgvY29tcG9uZW50cy9sb2NrLWF1dGgtaWNvbi5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9hdXRoL2NvbXBvbmVudHMvdW5sb2NrLWF1dGgtaWNvbi5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9hdXRoL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9qcy15YW1sL2Rpc3QvanMteWFtbC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9jb25maWdzL2FjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9jb25maWdzL2ZuLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvY29uZmlncy9zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9jb25maWdzL3JlZHVjZXJzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvY29uZmlncy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2RlZXAtbGlua2luZy9oZWxwZXJzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvZGVlcC1saW5raW5nL2xheW91dC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2RlZXAtbGlua2luZy9vcGVyYXRpb24td3JhcHBlci5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9kZWVwLWxpbmtpbmcvb3BlcmF0aW9uLXRhZy13cmFwcGVyLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2RlZXAtbGlua2luZy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2Vyci9lcnJvci10cmFuc2Zvcm1lcnMvdHJhbnNmb3JtZXJzL25vdC1vZi10eXBlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvZXJyL2Vycm9yLXRyYW5zZm9ybWVycy90cmFuc2Zvcm1lcnMvcGFyYW1ldGVyLW9uZW9mLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvZXJyL2Vycm9yLXRyYW5zZm9ybWVycy9ob29rLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvZXJyL3JlZHVjZXJzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvZXJyL3NlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2Vyci9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2ZpbHRlci9vcHNGaWx0ZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9maWx0ZXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9pY29ucy9jb21wb25lbnRzL2Fycm93LXVwLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2ljb25zL2NvbXBvbmVudHMvYXJyb3ctZG93bi5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9pY29ucy9jb21wb25lbnRzL2Fycm93LmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2ljb25zL2NvbXBvbmVudHMvY2xvc2UuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvaWNvbnMvY29tcG9uZW50cy9jb3B5LmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2ljb25zL2NvbXBvbmVudHMvbG9jay5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9pY29ucy9jb21wb25lbnRzL3VubG9jay5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9pY29ucy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2xheW91dC9hY3Rpb25zLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvbGF5b3V0L3JlZHVjZXJzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvbGF5b3V0L3NlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2xheW91dC9zcGVjLWV4dGVuc2lvbnMvd3JhcC1zZWxlY3Rvci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2xheW91dC9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2xvZ3MvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9vbi1jb21wbGV0ZS9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL3JlcXVlc3Qtc25pcHBldHMvZm4uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9yZXF1ZXN0LXNuaXBwZXRzL3NlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL3JlcXVlc3Qtc25pcHBldHMvcmVxdWVzdC1zbmlwcGV0cy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9yZXF1ZXN0LXNuaXBwZXRzL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtNS9jb21wb25lbnRzL21vZGVsLWNvbGxhcHNlLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUvY29tcG9uZW50cy9tb2RlbC1leGFtcGxlLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUvY29tcG9uZW50cy9tb2RlbC13cmFwcGVyLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmVhY3QtaW1tdXRhYmxlLXB1cmUtY29tcG9uZW50L2xpYi9yZWFjdC1pbW11dGFibGUtcHVyZS1jb21wb25lbnQuZXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvYXNzZXRzL3JvbGxpbmctbG9hZC5zdmciLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvbW9kZWwuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtNS9jb21wb25lbnRzL21vZGVscy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvZW51bS1tb2RlbC5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvb2JqZWN0LW1vZGVsLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUvY29tcG9uZW50cy9hcnJheS1tb2RlbC5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvcHJpbWl0aXZlLW1vZGVsLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUvY29tcG9uZW50cy9zY2hlbWVzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUvY29udGFpbmVycy9zY2hlbWVzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUvY29tcG9uZW50cy9qc29uLXNjaGVtYS1jb21wb25lbnRzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvdXRpbHMvbWVtb2l6ZU4uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01LXNhbXBsZXMvZm4vaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01LXNhbXBsZXMvZm4vZ2V0LWpzb24tc2FtcGxlLXNjaGVtYS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUtc2FtcGxlcy9mbi9nZXQteWFtbC1zYW1wbGUtc2NoZW1hLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtNS1zYW1wbGVzL2ZuL2dldC14bWwtc2FtcGxlLXNjaGVtYS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUtc2FtcGxlcy9mbi9nZXQtc2FtcGxlLXNjaGVtYS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUtc2FtcGxlcy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL3NwZWMvc2VsZWN0b3JzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvc3BlYy9hY3Rpb25zLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvc3BlYy9yZWR1Y2Vycy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL3NwZWMvd3JhcC1hY3Rpb25zLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvc3BlYy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvZmFzdC1qc29uLXBhdGNoL21vZHVsZS9oZWxwZXJzLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvZmFzdC1qc29uLXBhdGNoL21vZHVsZS9jb3JlLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvZmFzdC1qc29uLXBhdGNoL21vZHVsZS9kdXBsZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9mYXN0LWpzb24tcGF0Y2gvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9zcGVjbWFwL2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2lzUGxhY2Vob2xkZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19jdXJyeTEuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19jdXJyeTIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19jdXJyeTMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc0ludGVnZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc1N0cmluZy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvbnRoLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9wYXRocy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvcGF0aC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvcGF0aFNhdGlzZmllcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2Nsb25lUmVnRXhwLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fYXJyYXlGcm9tSXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pbmNsdWRlc1dpdGguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19oYXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19vYmplY3RJcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2lzQXJndW1lbnRzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9rZXlzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy90eXBlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fZXF1YWxzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fZnVuY3Rpb25OYW1lLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9lcXVhbHMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pbmNsdWRlcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2luZGV4T2YuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19tYXAuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19xdW90ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3RvSVNPU3RyaW5nLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fY29tcGxlbWVudC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2FycmF5UmVkdWNlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faXNBcnJheS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2Rpc3BhdGNoYWJsZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2lzVHJhbnNmb3JtZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc09iamVjdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3hmQmFzZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3hmaWx0ZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ZpbHRlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2ZpbHRlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvcmVqZWN0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fdG9TdHJpbmcuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3RvU3RyaW5nLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy90ZXN0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faXNSZWdFeHAuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19hcml0eS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3BpcGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc0FycmF5TGlrZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2NyZWF0ZVJlZHVjZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3hBcnJheVJlZHVjZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvYmluZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3hSZWR1Y2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL194d3JhcC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvcmVkdWNlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fY2hlY2tGb3JNZXRob2QuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3NsaWNlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy90YWlsLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9waXBlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9kZWZhdWx0VG8uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3Byb3AuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3Byb3BPci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvbGFzdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2N1cnJ5Ti5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvY3VycnlOLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9jdXJyeS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2lzRnVuY3Rpb24uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludm9rZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3NwbGl0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fZHJvcExhc3RXaGlsZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3hkcm9wTGFzdFdoaWxlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9kcm9wTGFzdFdoaWxlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9qb2luLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9mbGlwLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2luY2x1ZGVkLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbmNsdWRlcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy90cmltQ2hhcnNFbmQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19yZWR1Y2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL194bWFwLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9tYXAuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2FwLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fY29uY2F0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9saWZ0Ti5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvbGlmdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvY29tcGxlbWVudC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvbm90LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9hbHdheXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvc3R1YlVuZGVmaW5lZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy9pc1VuZGVmaW5lZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy9pc05vdFVuZGVmaW5lZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvbWF4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9wbHVjay5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvYW55UGFzcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaWRlbnRpY2FsLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2lzR2VuZXJhdG9yRnVuY3Rpb24uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaXNBc3luY0Z1bmN0aW9uLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2lzRnVuY3Rpb24uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3JlcGxhY2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaXNSZWdFeHAuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3doZW4uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaXNTdHJpbmcuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvZXNjYXBlUmVnRXhwLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2ludGVybmFsL3BvbnlmaWxscy9TdHJpbmcucmVwbGFjZUFsbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy9yZXBsYWNlQWxsLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy91dGlsL3VybC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL2hlbHBlcnMvZmV0Y2gtcG9ueWZpbGwuYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvc3BlY21hcC9saWIvY3JlYXRlLWVycm9yLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9oZWxwZXJzL2ZldGNoLXBvbHlmaWxsLmJyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL2NvbnN0YW50cy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvc3BlY21hcC9oZWxwZXJzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9zcGVjbWFwL2xpYi9yZWZzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9zcGVjbWFwL2xpYi9hbGwtb2YuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3NwZWNtYXAvbGliL3BhcmFtZXRlcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3NwZWNtYXAvbGliL3Byb3BlcnRpZXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3NwZWNtYXAvbGliL2NvbnRleHQtdHJlZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvc3BlY21hcC9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvaGVscGVycy9yZXBsYWNlLXNwZWNpYWwtY2hhcnMtd2l0aC11bmRlcnNjb3JlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9oZWxwZXJzL29wLWlkLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9oZWxwZXJzL2lkLWZyb20tcGF0aC1tZXRob2QvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvZ2VuZXJpYy9ub3JtYWxpemUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3V0aWxzL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9leGVjdXRlL29hczMvc3R5bGUtc2VyaWFsaXplci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvaHR0cC9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvdXRpbHMvb3B0aW9ucy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvc3RyYXRlZ2llcy9nZW5lcmljL3Jlc29sdmUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvZ2VuZXJpYy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvaGVscGVycy9vcGVuYXBpLXByZWRpY2F0ZXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvb3BlbmFwaS0yL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9zdHJhdGVnaWVzL29wZW5hcGktMi9yZXNvbHZlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9zdHJhdGVnaWVzL29wZW5hcGktMy0wL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9zdHJhdGVnaWVzL29wZW5hcGktMy0wL3Jlc29sdmUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL1QuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL0YuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tZXJyb3IvZXMvQXBpRE9NQWdncmVnYXRlRXJyb3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWVycm9yL2VzL0FwaURPTUVycm9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1lcnJvci9lcy9BcGlET01TdHJ1Y3R1cmVkRXJyb3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWFzdC9lcy90cmF2ZXJzYWwvdmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19yZWR1Y2VkLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9feGFsbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvYWxsLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWNvcmUvZXMvZWxlbWVudHMvQW5ub3RhdGlvbi5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy9lbGVtZW50cy9Db21tZW50Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL2VsZW1lbnRzL1BhcnNlUmVzdWx0Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL2VsZW1lbnRzL1NvdXJjZU1hcC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy9wcmVkaWNhdGVzL2hlbHBlcnMubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWNvcmUvZXMvcHJlZGljYXRlcy9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy9jbG9uZS9lcnJvcnMvQ2xvbmVFcnJvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy9jbG9uZS9lcnJvcnMvRGVlcENsb25lRXJyb3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWNvcmUvZXMvY2xvbmUvZXJyb3JzL1NoYWxsb3dDbG9uZUVycm9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL2Nsb25lL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL3RyYXZlcnNhbC92aXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL3RyYW5zZm9ybWVycy9zZXJpYWxpemVycy92YWx1ZS92aXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL3RyYW5zZm9ybWVycy9zZXJpYWxpemVycy92YWx1ZS9hc3QvZXBoZW1lcmFsLWFycmF5Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL3RyYW5zZm9ybWVycy9zZXJpYWxpemVycy92YWx1ZS9hc3QvZXBoZW1lcmFsLW9iamVjdC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy90cmFuc2Zvcm1lcnMvc2VyaWFsaXplcnMvdmFsdWUvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9tZXJnZVdpdGhLZXkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL21lcmdlRGVlcFdpdGhLZXkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL21lcmdlRGVlcFJpZ2h0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbml0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9hcHBseS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy9pc05vdEZ1bmN0aW9uLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9hbmQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2JvdGguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2VtcHR5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faXNUeXBlZEFycmF5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pc0VtcHR5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2lzQXJyYXkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaXNFbXB0eUFycmF5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2ludm9rZUFyZ3MuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaXNOdWxsLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2lzTm90TnVsbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy9pbnRlcm5hbC9pc09mVHlwZU9iamVjdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy9pc09iakxpa2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaXNQbGFpbk9iai5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL25hbWVzcGFjZS5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy9yZWZyYWN0b3IvdG9vbGJveC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy9yZWZyYWN0b3IvcGx1Z2lucy9kaXNwYXRjaGVyL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL3JlZnJhY3Rvci9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy9yZWZyYWN0b3IvcmVnaXN0cmF0aW9uLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL3RyYW5zY2x1ZGVyL1RyYW5zY2x1ZGVyLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1qc29uLXBvaW50ZXIvZXMvZXNjYXBlLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1qc29uLXBvaW50ZXIvZXMvZXJyb3JzL0pzb25Qb2ludGVyRXJyb3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWpzb24tcG9pbnRlci9lcy9lcnJvcnMvQ29tcGlsYXRpb25Kc29uUG9pbnRlckVycm9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1qc29uLXBvaW50ZXIvZXMvY29tcGlsZS5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2NvbnZlcmdlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faWRlbnRpdHkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2lkZW50aXR5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2ludGVybmFsL3BvbnlmaWxscy9OdW1iZXIuaXNGaW5pdGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaXNOdW1iZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaXNGaW5pdGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaW50ZXJuYWwvcG9ueWZpbGxzL051bWJlci5pc0ludGVnZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaXNJbnRlZ2VyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9feHRha2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3Rha2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3N0YXJ0c1dpdGguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaXNFbXB0eVN0cmluZy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3hkcm9wV2hpbGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2Ryb3BXaGlsZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy90cmltQ2hhcnNTdGFydC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1qc29uLXBvaW50ZXIvZXMvdW5lc2NhcGUubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWpzb24tcG9pbnRlci9lcy9lcnJvcnMvSW52YWxpZEpzb25Qb2ludGVyRXJyb3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWpzb24tcG9pbnRlci9lcy9wYXJzZS5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tanNvbi1wb2ludGVyL2VzL2Vycm9ycy9FdmFsdWF0aW9uSnNvblBvaW50ZXJFcnJvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tanNvbi1wb2ludGVyL2VzL2V2YWx1YXRlLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9DYWxsYmFjay5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvQ29tcG9uZW50cy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvQ29udGFjdC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvRGlzY3JpbWluYXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvRW5jb2RpbmcubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL0V4YW1wbGUubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL0V4dGVybmFsRG9jdW1lbnRhdGlvbi5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvSGVhZGVyLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9JbmZvLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9MaWNlbnNlLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9MaW5rLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9NZWRpYVR5cGUubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL09BdXRoRmxvdy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvT0F1dGhGbG93cy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvT3BlbmFwaS5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvT3BlbkFwaTMtMC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvT3BlcmF0aW9uLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9QYXJhbWV0ZXIubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL1BhdGhJdGVtLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9QYXRocy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvUmVmZXJlbmNlLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9SZXF1ZXN0Qm9keS5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvUmVzcG9uc2UubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL1Jlc3BvbnNlcy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tZXJyb3IvZXMvVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9lbGVtZW50cy9KU09OU2NoZW1hLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL2VsZW1lbnRzL0pTT05SZWZlcmVuY2UubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvZWxlbWVudHMvTWVkaWEubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvZWxlbWVudHMvTGlua0Rlc2NyaXB0aW9uLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvbWFwT2JqSW5kZXhlZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaXNOaWwuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2hhc1BhdGguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2hhcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvcHJvcFNhdGlzZmllcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL3V0aWwubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWNvcmUvZXMvbWVyZ2UvZGVlcG1lcmdlLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9WaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9GYWxsYmFja1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL25vb3AuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3BpY2suanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvU3BlY2lmaWNhdGlvblZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2dlbmVyaWNzL0ZpeGVkRmllbGRzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL0lkVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvJHNjaGVtYVZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL011bHRpcGxlT2ZWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9NYXhpbXVtVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvRXhjbHVzaXZlTWF4aW11bVZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL01pbmltdW1WaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9FeGNsdXNpdmVNaW5pbXVtVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvTWF4TGVuZ3RoVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvTWluTGVuZ3RoVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvUGF0dGVyblZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL1BhcmVudFNjaGVtYUF3YXJlVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvcHJlZGljYXRlcy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvSXRlbXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9NYXhJdGVtc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL01pbkl0ZW1zVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvVW5pcXVlSXRlbXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9NYXhQcm9wZXJ0aWVzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvTWluUHJvcGVydGllc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL1JlcXVpcmVkVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2FsbFBhc3MuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL29yLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2lzTm90T2JqLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2lzT2JqLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9laXRoZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaXNOb3RFbXB0eS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy9pc05vbkVtcHR5U3RyaW5nLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2dlbmVyaWNzL1BhdHRlcm5lZEZpZWxkc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2dlbmVyaWNzL01hcFZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL1Byb3BlcnRpZXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9QYXR0ZXJuUHJvcGVydGllc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL0RlcGVuZGVuY2llc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL0VudW1WaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9UeXBlVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvQWxsT2ZWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9BbnlPZlZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL09uZU9mVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvRGVmaW5pdGlvbnNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9UaXRsZVZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL0Rlc2NyaXB0aW9uVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvRGVmYXVsdFZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL0Zvcm1hdFZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL0Jhc2VWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9MaW5rc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL1JlYWRPbmx5VmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvanNvbi1yZWZlcmVuY2UvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL2pzb24tcmVmZXJlbmNlLyRSZWZWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaWZFbHNlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9jb21wYXJhdG9yLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9zb3J0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9oZWFkLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9yZWR1Y2VkLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2lzTm90TmlsLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2lzTm9uRW1wdHlBcnJheS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy9kaXNwYXRjaC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9nZW5lcmljcy9BbHRlcm5hdGluZ1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL0pTT05TY2hlbWFPckpTT05SZWZlcmVuY2VWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci9zcGVjaWZpY2F0aW9uLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9tZWRpYS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvbWVkaWEvQmluYXJ5RW5jb2RpbmdWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9tZWRpYS9UeXBlVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvbGluay1kZXNjcmlwdGlvbi9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvbGluay1kZXNjcmlwdGlvbi9IcmVmVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvbGluay1kZXNjcmlwdGlvbi9SZWxWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9saW5rLWRlc2NyaXB0aW9uL1RpdGxlVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvbGluay1kZXNjcmlwdGlvbi9NZWRpYVR5cGVWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9saW5rLWRlc2NyaXB0aW9uL01ldGhvZFZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL2xpbmstZGVzY3JpcHRpb24vRW5jVHlwZVZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvdHJhdmVyc2FsL3Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcHJlZGljYXRlcy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9uYW1lc3BhY2UubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Rvb2xib3gubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci9yZWdpc3RyYXRpb24ubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL1NjaGVtYS5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvU2VjdXJpdHlSZXF1aXJlbWVudC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvU2VjdXJpdHlTY2hlbWUubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL1NlcnZlci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvU2VydmVyVmFyaWFibGUubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL1RhZy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvWG1sLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvdHMtbWl4ZXIvZGlzdC9lc20vaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9GYWxsYmFja1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9TcGVjaWZpY2F0aW9uVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3ByZWRpY2F0ZXMubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9nZW5lcmljcy9GaXhlZEZpZWxkc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvT3BlbmFwaVZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9TcGVjaWZpY2F0aW9uRXh0ZW5zaW9uVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9pbmZvL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2luZm8vVmVyc2lvblZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvY29udGFjdC9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9saWNlbnNlL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2xpbmsvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvbGluay9PcGVyYXRpb25SZWZWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2xpbmsvT3BlcmF0aW9uSWRWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvZ2VuZXJpY3MvUGF0dGVybmVkRmllbGRzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2dlbmVyaWNzL01hcFZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvTGlua1BhcmFtZXRlcnMubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvbGluay9QYXJhbWV0ZXJzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9zZXJ2ZXIvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvc2VydmVyL1VybFZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvU2VydmVycy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9TZXJ2ZXJzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9zZXJ2ZXItdmFyaWFibGUvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvU2VydmVyVmFyaWFibGVzLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3NlcnZlci9WYXJpYWJsZXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL21lZGlhLXR5cGUvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9nZW5lcmljcy9BbHRlcm5hdGluZ1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3ByZWRpY2F0ZXMubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvbWVkaWEtdHlwZS9TY2hlbWFWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL0V4YW1wbGVzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9NZWRpYVR5cGVFeGFtcGxlcy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9tZWRpYS10eXBlL0V4YW1wbGVzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9NZWRpYVR5cGVFbmNvZGluZy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9tZWRpYS10eXBlL0VuY29kaW5nVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9zZWN1cml0eS1yZXF1aXJlbWVudC9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9TZWN1cml0eS5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9TZWN1cml0eVZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvY29tcG9uZW50cy9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC90YWcvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvcmVmZXJlbmNlL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3JlZmVyZW5jZS8kUmVmVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9wYXJhbWV0ZXIvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvcGFyYW1ldGVyL1NjaGVtYVZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvaGVhZGVyL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2hlYWRlci9TY2hlbWFWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9uY2VzL0hlYWRlckV4YW1wbGVzLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2hlYWRlci9FeGFtcGxlc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvQ29udGVudFZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvSGVhZGVyQ29udGVudC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9oZWFkZXIvQ29udGVudFZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvc2NoZW1hL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3NjaGVtYS9BbGxPZlZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvc2NoZW1hL0FueU9mVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9zY2hlbWEvT25lT2ZWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3NjaGVtYS9JdGVtc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvc2NoZW1hL1Byb3BlcnRpZXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3NjaGVtYS9UeXBlVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9zY2hlbWEvU2NoZW1hT3JSZWZlcmVuY2VWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2Rpc3RyaW1pbmF0b3IvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvRGlzY3JpbWluYXRvck1hcHBpbmcubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvZGlzdHJpbWluYXRvci9NYXBwaW5nVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC94bWwvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvUGFyYW1ldGVyRXhhbXBsZXMubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvcGFyYW1ldGVyL0V4YW1wbGVzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9QYXJhbWV0ZXJDb250ZW50Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3BhcmFtZXRlci9Db250ZW50VmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9Db21wb25lbnRzU2NoZW1hcy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9jb21wb25lbnRzL1NjaGVtYXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9uY2VzL0NvbXBvbmVudHNSZXNwb25zZXMubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvY29tcG9uZW50cy9SZXNwb25zZXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9uY2VzL0NvbXBvbmVudHNQYXJhbWV0ZXJzLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2NvbXBvbmVudHMvUGFyYW1ldGVyc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvQ29tcG9uZW50c0V4YW1wbGVzLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2NvbXBvbmVudHMvRXhhbXBsZXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9uY2VzL0NvbXBvbmVudHNSZXF1ZXN0Qm9kaWVzLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2NvbXBvbmVudHMvUmVxdWVzdEJvZGllc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvQ29tcG9uZW50c0hlYWRlcnMubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvY29tcG9uZW50cy9IZWFkZXJzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9Db21wb25lbnRzU2VjdXJpdHlTY2hlbWVzLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2NvbXBvbmVudHMvU2VjdXJpdHlTY2hlbWVzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9Db21wb25lbnRzTGlua3MubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvY29tcG9uZW50cy9MaW5rc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvQ29tcG9uZW50c0NhbGxiYWNrcy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9jb21wb25lbnRzL0NhbGxiYWNrc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvZXhhbXBsZS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9leGFtcGxlL0V4dGVybmFsVmFsdWVWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2V4dGVybmFsLWRvY3VtZW50YXRpb24vaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvZW5jb2RpbmcvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvRW5jb2RpbmdIZWFkZXJzLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2VuY29kaW5nL0hlYWRlcnNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3BhdGhzL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3JlcXVlc3QtYm9keS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9SZXF1ZXN0Qm9keUNvbnRlbnQubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvcmVxdWVzdC1ib2R5L0NvbnRlbnRWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2NhbGxiYWNrL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3Jlc3BvbnNlL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9uY2VzL1Jlc3BvbnNlSGVhZGVycy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9yZXNwb25zZS9IZWFkZXJzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9SZXNwb25zZUNvbnRlbnQubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvcmVzcG9uc2UvQ29udGVudFZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvUmVzcG9uc2VMaW5rcy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9yZXNwb25zZS9MaW5rc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faXNOdW1iZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3JhbmdlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fU2V0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9kaWZmZXJlbmNlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9nZW5lcmljcy9NaXhlZEZpZWxkc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvcmVzcG9uc2VzL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3Jlc3BvbnNlcy9EZWZhdWx0VmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9vcGVyYXRpb24vaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvT3BlcmF0aW9uVGFncy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9vcGVyYXRpb24vVGFnc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvT3BlcmF0aW9uUGFyYW1ldGVycy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9QYXJhbWV0ZXJzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9vcGVyYXRpb24vUGFyYW1ldGVyc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvb3BlcmF0aW9uL1JlcXVlc3RCb2R5VmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9PcGVyYXRpb25DYWxsYmFja3MubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvb3BlcmF0aW9uL0NhbGxiYWNrc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvT3BlcmF0aW9uU2VjdXJpdHkubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvb3BlcmF0aW9uL1NlY3VyaXR5VmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9PcGVyYXRpb25TZXJ2ZXJzLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL29wZXJhdGlvbi9TZXJ2ZXJzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9wYXRoLWl0ZW0vaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvcGF0aC1pdGVtLyRSZWZWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9uY2VzL1BhdGhJdGVtU2VydmVycy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9wYXRoLWl0ZW0vU2VydmVyc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvUGF0aEl0ZW1QYXJhbWV0ZXJzLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3BhdGgtaXRlbS9QYXJhbWV0ZXJzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9zZWN1cml0eS1zY2hlbWUvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvb2F1dGgtZmxvd3MvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvb2F1dGgtZmxvdy9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9PQXV0aEZsb3dTY29wZXMubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvb2F1dGgtZmxvdy9TY29wZXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9uY2VzL1RhZ3MubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvVGFnc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci9zcGVjaWZpY2F0aW9uLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy90cmF2ZXJzYWwvdmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvbmFtZXNwYWNlLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdG9vbGJveC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvcmVnaXN0cmF0aW9uLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9lbGVtZW50cy9DYWxsYmFjay5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvQ29tcG9uZW50cy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvQ29udGFjdC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvRGlzY3JpbWluYXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvRW5jb2RpbmcubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL0V4YW1wbGUubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL0V4dGVybmFsRG9jdW1lbnRhdGlvbi5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvSGVhZGVyLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9lbGVtZW50cy9JbmZvLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9lbGVtZW50cy9Kc29uU2NoZW1hRGlhbGVjdC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvTGljZW5zZS5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvTGluay5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvTWVkaWFUeXBlLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9lbGVtZW50cy9PQXV0aEZsb3cubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL09BdXRoRmxvd3MubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL09wZW5hcGkubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL09wZW5BcGkzLTEubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL09wZXJhdGlvbi5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvUGFyYW1ldGVyLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9lbGVtZW50cy9QYXRoSXRlbS5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvUGF0aHMubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL1JlZmVyZW5jZS5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvUmVxdWVzdEJvZHkubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL1Jlc3BvbnNlLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9lbGVtZW50cy9SZXNwb25zZXMubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL1NjaGVtYS5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvU2VjdXJpdHlSZXF1aXJlbWVudC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvU2VjdXJpdHlTY2hlbWUubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL1NlcnZlci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvU2VydmVyVmFyaWFibGUubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL1RhZy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvWG1sLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL2luZm8vaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvY29udGFjdC9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9saWNlbnNlL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL2xpbmsvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvSnNvblNjaGVtYURpYWxlY3RWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3NlcnZlci9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9zZXJ2ZXItdmFyaWFibGUvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvbWVkaWEtdHlwZS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9zZWN1cml0eS1yZXF1aXJlbWVudC9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9jb21wb25lbnRzL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3RhZy9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9yZWZlcmVuY2UvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvcGFyYW1ldGVyL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL2hlYWRlci9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcHJlZGljYXRlcy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9zY2hlbWEvUGFyZW50U2NoZW1hQXdhcmVWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3NjaGVtYS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9zY2hlbWEvJHZvY2FidWxhcnlWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3NjaGVtYS8kcmVmVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9zY2hlbWEvJGRlZnNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3NjaGVtYS9BbGxPZlZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvc2NoZW1hL0FueU9mVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9zY2hlbWEvT25lT2ZWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3NjaGVtYS9EZXBlbmRlbnRTY2hlbWFzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9zY2hlbWEvUHJlZml4SXRlbXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3NjaGVtYS9Qcm9wZXJ0aWVzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9zY2hlbWEvUGF0dGVyblByb3BlcnRpZXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3NjaGVtYS9UeXBlVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9zY2hlbWEvRW51bVZpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvc2NoZW1hL0RlcGVuZGVudFJlcXVpcmVkVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9zY2hlbWEvRXhhbXBsZXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL2Rpc3RyaW1pbmF0b3IvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEveG1sL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL2NvbXBvbmVudHMvU2NoZW1hc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL25jZXMvQ29tcG9uZW50c1BhdGhJdGVtcy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9jb21wb25lbnRzL1BhdGhJdGVtc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvZXhhbXBsZS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9leHRlcm5hbC1kb2N1bWVudGF0aW9uL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL2VuY29kaW5nL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3BhdGhzL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3JlcXVlc3QtYm9keS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9jYWxsYmFjay9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9yZXNwb25zZS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9yZXNwb25zZXMvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvb3BlcmF0aW9uL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3BhdGgtaXRlbS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9zZWN1cml0eS1zY2hlbWUvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvb2F1dGgtZmxvd3MvaW5kZXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvb2F1dGgtZmxvdy9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvbmNlcy9XZWJob29rcy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9XZWJob29rc1Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci9zcGVjaWZpY2F0aW9uLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy90cmF2ZXJzYWwvdmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvbmFtZXNwYWNlLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdG9vbGJveC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvcmVnaXN0cmF0aW9uLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1lcnJvci9lcy9Ob3RJbXBsZW1lbnRlZEVycm9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL21lZGlhLXR5cGVzLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9tZWRpYS10eXBlcy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tcmVmZXJlbmNlL2VzL1JlZmVyZW5jZS5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3Byb3BFcS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvUmVmZXJlbmNlU2V0Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvb3B0aW9ucy9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2xlbnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2Fzc29jUGF0aC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2Fzc29jLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9vdmVyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9vcHRpb25zL3V0aWwubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy91dGlsL0ZpbGUubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9lcnJvcnMvUGx1Z2luRXJyb3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy91dGlsL3BsdWdpbnMubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9lcnJvcnMvRGVyZWZlcmVuY2VFcnJvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tcmVmZXJlbmNlL2VzL2Vycm9ycy9Vbm1hdGNoZWREZXJlZmVyZW5jZVN0cmF0ZWd5RXJyb3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9kZXJlZmVyZW5jZS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tcmVmZXJlbmNlL2VzL2Vycm9ycy9QYXJzZUVycm9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvZXJyb3JzL1BhcnNlckVycm9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvcGFyc2UvcGFyc2Vycy9QYXJzZXIubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9wYXJzZS9wYXJzZXJzL2JpbmFyeS9pbmRleC1icm93c2VyLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvcmVzb2x2ZS9zdHJhdGVnaWVzL1Jlc29sdmVTdHJhdGVneS5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tcmVmZXJlbmNlL2VzL3Jlc29sdmUvc3RyYXRlZ2llcy9vcGVuYXBpLTMtMS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19jbG9uZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3hyZWR1Y2VCeS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvcmVkdWNlQnkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2dyb3VwQnkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3BsdWdpbnMvbm9ybWFsaXplLW9wZXJhdGlvbi1pZHMubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9wYXRoT3IuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL194dW5pcVdpdGguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3VuaXFXaXRoLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci9wbHVnaW5zL25vcm1hbGl6ZS1wYXJhbWV0ZXJzLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvcGx1Z2lucy9ub3JtYWxpemUtc2VjdXJpdHktcmVxdWlyZW1lbnRzLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvcGx1Z2lucy9ub3JtYWxpemUtc2VydmVycy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3BsdWdpbnMvbm9ybWFsaXplLXBhcmFtZXRlci1leGFtcGxlcy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3BsdWdpbnMvbm9ybWFsaXplLWhlYWRlci1leGFtcGxlcy5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvb3BlbmFwaS0zLTEtYXBpZG9tL25vcm1hbGl6ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvcmVzb2x2ZS9yZXNvbHZlcnMvUmVzb2x2ZXIubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9yZXNvbHZlL3Jlc29sdmVycy9IdHRwUmVzb2x2ZXIubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9lcnJvcnMvUmVzb2x2ZUVycm9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvZXJyb3JzL1Jlc29sdmVyRXJyb3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9oZWxwZXJzL2Fib3J0Y29udHJvbGxlci1wb255ZmlsbC5icm93c2VyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9oZWxwZXJzL2Fib3J0Y29udHJvbGxlci1wb2x5ZmlsbC5icm93c2VyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9hcGlkb20vcmVmZXJlbmNlL3Jlc29sdmUvcmVzb2x2ZXJzL2h0dHAtc3dhZ2dlci1jbGllbnQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy90cmFuc2Zvcm1lcnMvZnJvbS5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL2FwaWRvbS9yZWZlcmVuY2UvcGFyc2UvcGFyc2Vycy9qc29uL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9hcGlkb20vcmVmZXJlbmNlL3BhcnNlL3BhcnNlcnMveWFtbC0xLTIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL2FwaWRvbS9yZWZlcmVuY2UvcGFyc2UvcGFyc2Vycy9vcGVuYXBpLWpzb24tMy0xL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9hcGlkb20vcmVmZXJlbmNlL3BhcnNlL3BhcnNlcnMvb3BlbmFwaS15YW1sLTMtMS9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvZGVyZWZlcmVuY2Uvc3RyYXRlZ2llcy9EZXJlZmVyZW5jZVN0cmF0ZWd5Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvbm9uZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL2lkZW50aXR5L2Vycm9ycy9FbGVtZW50SWRlbnRpdHlFcnJvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy9pZGVudGl0eS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy90cmF2ZXJzYWwvZmluZC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tcmVmZXJlbmNlL2VzL2Vycm9ycy9Kc29uU2NoZW1hJGFuY2hvckVycm9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvZXJyb3JzL0V2YWx1YXRpb25Kc29uU2NoZW1hJGFuY2hvckVycm9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvZXJyb3JzL0ludmFsaWRKc29uU2NoZW1hJGFuY2hvckVycm9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvZGVyZWZlcmVuY2Uvc3RyYXRlZ2llcy9vcGVuYXBpLTMtMS9zZWxlY3RvcnMvJGFuY2hvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy90cmF2ZXJzYWwvZmlsdGVyLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvZXJyb3JzL0pzb25TY2hlbWFVcmlFcnJvci5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tcmVmZXJlbmNlL2VzL2Vycm9ycy9FdmFsdWF0aW9uSnNvblNjaGVtYVVyaUVycm9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvZGVyZWZlcmVuY2Uvc3RyYXRlZ2llcy9vcGVuYXBpLTMtMS91dGlsLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvZGVyZWZlcmVuY2Uvc3RyYXRlZ2llcy9vcGVuYXBpLTMtMS9zZWxlY3RvcnMvdXJpLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvZXJyb3JzL01heGltdW1EZXJlZmVyZW5jZURlcHRoRXJyb3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9lcnJvcnMvTWF4aW11bVJlc29sdmVEZXB0aEVycm9yLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvZXJyb3JzL1VubWF0Y2hlZFJlc29sdmVyRXJyb3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9wYXJzZS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tcmVmZXJlbmNlL2VzL3Jlc29sdmUvdXRpbC5tanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tcmVmZXJlbmNlL2VzL2RlcmVmZXJlbmNlL3V0aWwubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9kZXJlZmVyZW5jZS9zdHJhdGVnaWVzL29wZW5hcGktMy0xL3Zpc2l0b3IubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9kZXJlZmVyZW5jZS9zdHJhdGVnaWVzL29wZW5hcGktMy0xL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvYXBpZG9tL3JlZmVyZW5jZS9kZXJlZmVyZW5jZS9zdHJhdGVnaWVzL29wZW5hcGktMy0xLXN3YWdnZXItY2xpZW50L3V0aWxzL3RvLXBhdGguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL2FwaWRvbS9yZWZlcmVuY2UvZGVyZWZlcmVuY2Uvc3RyYXRlZ2llcy9vcGVuYXBpLTMtMS1zd2FnZ2VyLWNsaWVudC91dGlscy9nZXQtcm9vdC1jYXVzZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvYXBpZG9tL3JlZmVyZW5jZS9kZXJlZmVyZW5jZS9zdHJhdGVnaWVzL29wZW5hcGktMy0xLXN3YWdnZXItY2xpZW50L2Vycm9ycy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvYXBpZG9tL3JlZmVyZW5jZS9kZXJlZmVyZW5jZS9zdHJhdGVnaWVzL29wZW5hcGktMy0xLXN3YWdnZXItY2xpZW50L3Zpc2l0b3JzL2RlcmVmZXJlbmNlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9hcGlkb20vcmVmZXJlbmNlL2RlcmVmZXJlbmNlL3N0cmF0ZWdpZXMvb3BlbmFwaS0zLTEtc3dhZ2dlci1jbGllbnQvdXRpbHMvY29tcG9zZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvYXBpZG9tL3JlZmVyZW5jZS9kZXJlZmVyZW5jZS9zdHJhdGVnaWVzL29wZW5hcGktMy0xLXN3YWdnZXItY2xpZW50L3Zpc2l0b3JzL3BhcmFtZXRlcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL2FwaWRvbS9yZWZlcmVuY2UvZGVyZWZlcmVuY2Uvc3RyYXRlZ2llcy9vcGVuYXBpLTMtMS1zd2FnZ2VyLWNsaWVudC92aXNpdG9ycy9wcm9wZXJ0aWVzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9hcGlkb20vcmVmZXJlbmNlL2RlcmVmZXJlbmNlL3N0cmF0ZWdpZXMvb3BlbmFwaS0zLTEtc3dhZ2dlci1jbGllbnQvdmlzaXRvcnMvYWxsLW9mLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9hcGlkb20vcmVmZXJlbmNlL2RlcmVmZXJlbmNlL3N0cmF0ZWdpZXMvb3BlbmFwaS0zLTEtc3dhZ2dlci1jbGllbnQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvb3BlbmFwaS0zLTEtYXBpZG9tL3Jlc29sdmUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tcmVmZXJlbmNlL2VzL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL3RyYW5zY2x1ZGVyL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvc3RyYXRlZ2llcy9vcGVuYXBpLTMtMS1hcGlkb20vaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9ub2RlX21vZHVsZXMvaXMtcGxhaW4tb2JqZWN0L2Rpc3QvaXMtcGxhaW4tb2JqZWN0Lm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvZXhlY3V0ZS9zd2FnZ2VyMi9wYXJhbWV0ZXItYnVpbGRlcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL2V4ZWN1dGUvb2FzMy9jb250ZW50LXNlcmlhbGl6ZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL2V4ZWN1dGUvb2FzMy9wYXJhbWV0ZXItYnVpbGRlcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL2hlbHBlcnMvYnRvYS5icm93c2VyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9leGVjdXRlL29hczMvYnVpbGQtcmVxdWVzdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvZXhlY3V0ZS9zd2FnZ2VyMi9idWlsZC1yZXF1ZXN0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9oZWxwZXJzL2lkLWZyb20tcGF0aC1tZXRob2QvbGVnYWN5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9leGVjdXRlL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9oZWxwZXJzL2dldC1vcGVyYXRpb24tcmF3LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9oZWxwZXJzL2ZpbmQtb3BlcmF0aW9uLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9oZWxwZXJzL2VhY2gtb3BlcmF0aW9uLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9zdWJ0cmVlLXJlc29sdmVyL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvc3dhZ2dlci1jbGllbnQvY29uZmlncy13cmFwLWFjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9zd2FnZ2VyLWNsaWVudC9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL3V0aWwvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXJlZHV4L2Rpc3QvcmVhY3QtcmVkdXgubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvdmlldy9yb290LWluamVjdHMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvdmlldy9mbi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL3ZpZXcvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy92aWV3LWxlZ2FjeS9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL3ZpZXctbGVnYWN5L3Jvb3QtaW5qZWN0cy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9kb3dubG9hZC11cmwvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hcnJheUxpa2VUb0FycmF5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b0NvbnN1bWFibGVBcnJheS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRob3V0SG9sZXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2l0ZXJhYmxlVG9BcnJheS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL25vbkl0ZXJhYmxlU3ByZWFkLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2YuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvUHJvcGVydHlLZXkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvUHJpbWl0aXZlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2NyZWF0ZS1lbGVtZW50LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vY2hlY2tGb3JMaXN0ZWRMYW5ndWFnZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2hpZ2hsaWdodC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xpZ2h0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL2hsanMvamF2YXNjcmlwdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL2pzb24uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy94bWwuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy9iYXNoLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL2hsanMveWFtbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL2h0dHAuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy9wb3dlcnNoZWxsLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvc3ludGF4LWhpZ2hsaWdodGluZy9hZnRlci1sb2FkLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvYWdhdGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9zeW50YXgtaGlnaGxpZ2h0aW5nL3Jvb3QtaW5qZWN0cy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL3N0eWxlcy9obGpzL2FydGEuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9zdHlsZXMvaGxqcy9tb25va2FpLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvbm9yZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL3N0eWxlcy9obGpzL29ic2lkaWFuLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvdG9tb3Jyb3ctbmlnaHQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9zdHlsZXMvaGxqcy9pZGVhLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvc3ludGF4LWhpZ2hsaWdodGluZy9jb21wb25lbnRzL1N5bnRheEhpZ2hsaWdodGVyLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL3N5bnRheC1oaWdobGlnaHRpbmcvY29tcG9uZW50cy9IaWdobGlnaHRDb2RlLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL3N5bnRheC1oaWdobGlnaHRpbmcvY29tcG9uZW50cy9QbGFpblRleHRWaWV3ZXIuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvc3ludGF4LWhpZ2hsaWdodGluZy93cmFwLWNvbXBvbmVudHMvU3ludGF4SGlnaGxpZ2h0ZXIuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvc3ludGF4LWhpZ2hsaWdodGluZy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL3ZlcnNpb25zL2FmdGVyLWxvYWQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy92ZXJzaW9ucy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL3NhZmUtcmVuZGVyL2ZuLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL3NhZmUtcmVuZGVyL2NvbXBvbmVudHMvZmFsbGJhY2suanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvc2FmZS1yZW5kZXIvY29tcG9uZW50cy9lcnJvci1ib3VuZGFyeS5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9zYWZlLXJlbmRlci9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb21wb25lbnRzL2FwcC5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9hdXRoL2F1dGhvcml6YXRpb24tcG9wdXAuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvYXV0aC9hdXRob3JpemUtYnRuLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb250YWluZXJzL2F1dGhvcml6ZS1idG4uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvYXV0aC9hdXRob3JpemUtb3BlcmF0aW9uLWJ0bi5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9hdXRoL2F1dGhzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb21wb25lbnRzL2F1dGgvYXV0aC1pdGVtLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb21wb25lbnRzL2F1dGgvZXJyb3IuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvYXV0aC9hcGkta2V5LWF1dGguanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvYXV0aC9iYXNpYy1hdXRoLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb21wb25lbnRzL2V4YW1wbGUuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvZXhhbXBsZXMtc2VsZWN0LmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb21wb25lbnRzL2V4YW1wbGVzLXNlbGVjdC12YWx1ZS1yZXRhaW5lci5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvb2F1dGgyLWF1dGhvcml6ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb21wb25lbnRzL2F1dGgvb2F1dGgyLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb21wb25lbnRzL2NsZWFyLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb21wb25lbnRzL2xpdmUtcmVzcG9uc2UuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvb25saW5lLXZhbGlkYXRvci1iYWRnZS5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9vcGVyYXRpb25zLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS91dGlscy91cmwuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9vcGVyYXRpb24tdGFnLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb21wb25lbnRzL29wZXJhdGlvbi5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29udGFpbmVycy9PcGVyYXRpb25Db250YWluZXIuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvb3BlcmF0aW9uLXN1bW1hcnkuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvb3BlcmF0aW9uLXN1bW1hcnktbWV0aG9kLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb21wb25lbnRzL29wZXJhdGlvbi1zdW1tYXJ5LXBhdGguanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvb3BlcmF0aW9uLWV4dGVuc2lvbnMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvb3BlcmF0aW9uLWV4dGVuc2lvbi1yb3cuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3V0aWxzL2NyZWF0ZS1odG1sLXJlYWR5LWlkLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvcmVzcG9uc2VzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS91dGlscy9qc29uUGFyc2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9yZXNwb25zZS5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9yZXNwb25zZS1leHRlbnNpb24uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvcmVzcG9uc2UtYm9keS5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9wYXJhbWV0ZXJzL3BhcmFtZXRlcnMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvcGFyYW1ldGVyLWV4dGVuc2lvbi5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9wYXJhbWV0ZXItaW5jbHVkZS1lbXB0eS5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9wYXJhbWV0ZXItcm93LmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb21wb25lbnRzL2V4ZWN1dGUuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvaGVhZGVycy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9lcnJvcnMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvY29udGVudC10eXBlLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb21wb25lbnRzL2xheW91dC11dGlscy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9vdmVydmlldy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9pbml0aWFsaXplZC1pbnB1dC5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9pbmZvLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb250YWluZXJzL2luZm8uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvY29udGFjdC5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9saWNlbnNlLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb21wb25lbnRzL2p1bXAtdG8tcGF0aC5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9jb3B5LXRvLWNsaXBib2FyZC1idG4uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvZm9vdGVyLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb250YWluZXJzL2ZpbHRlci5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9wYXJhbS1ib2R5LmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb21wb25lbnRzL2N1cmwuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvcHJvcGVydHkuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvdHJ5LWl0LW91dC1idXR0b24uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvdmVyc2lvbi1wcmFnbWEtZmlsdGVyLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb21wb25lbnRzL3ZlcnNpb24tc3RhbXAuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvb3BlbmFwaS12ZXJzaW9uLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb21wb25lbnRzL2RlZXAtbGluay5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9zdmctYXNzZXRzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvcmVtYXJrYWJsZS9kaXN0L2VzbS9pbmRleC5icm93c2VyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9hdXRvbGlua2VyL2Rpc3QvZXMyMDE1L3V0aWxzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9hdXRvbGlua2VyL2Rpc3QvZXMyMDE1L2h0bWwtdGFnLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9hdXRvbGlua2VyL2Rpc3QvZXMyMDE1L2FuY2hvci10YWctYnVpbGRlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvYXV0b2xpbmtlci9kaXN0L2VzMjAxNS90cnVuY2F0ZS90cnVuY2F0ZS1zbWFydC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvYXV0b2xpbmtlci9kaXN0L2VzMjAxNS90cnVuY2F0ZS90cnVuY2F0ZS1taWRkbGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2F1dG9saW5rZXIvZGlzdC9lczIwMTUvdHJ1bmNhdGUvdHJ1bmNhdGUtZW5kLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9hdXRvbGlua2VyL2Rpc3QvZXMyMDE1L21hdGNoL21hdGNoLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy90c2xpYi90c2xpYi5lczYubWpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9hdXRvbGlua2VyL2Rpc3QvZXMyMDE1L21hdGNoL2VtYWlsLW1hdGNoLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9hdXRvbGlua2VyL2Rpc3QvZXMyMDE1L21hdGNoZXIvdXJsLW1hdGNoZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2F1dG9saW5rZXIvZGlzdC9lczIwMTUvbWF0Y2gvaGFzaHRhZy1tYXRjaC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvYXV0b2xpbmtlci9kaXN0L2VzMjAxNS9tYXRjaC9tZW50aW9uLW1hdGNoLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9hdXRvbGlua2VyL2Rpc3QvZXMyMDE1L21hdGNoL3Bob25lLW1hdGNoLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9hdXRvbGlua2VyL2Rpc3QvZXMyMDE1L21hdGNoL3VybC1tYXRjaC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvYXV0b2xpbmtlci9kaXN0L2VzMjAxNS9tYXRjaGVyL21hdGNoZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2F1dG9saW5rZXIvZGlzdC9lczIwMTUvcmVnZXgtbGliLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9hdXRvbGlua2VyL2Rpc3QvZXMyMDE1L21hdGNoZXIvdGxkLXJlZ2V4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9hdXRvbGlua2VyL2Rpc3QvZXMyMDE1L21hdGNoZXIvZW1haWwtbWF0Y2hlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvYXV0b2xpbmtlci9kaXN0L2VzMjAxNS9tYXRjaGVyL3VybC1tYXRjaC12YWxpZGF0b3IuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2F1dG9saW5rZXIvZGlzdC9lczIwMTUvbWF0Y2hlci9oYXNodGFnLW1hdGNoZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2F1dG9saW5rZXIvZGlzdC9lczIwMTUvbWF0Y2hlci9waG9uZS1tYXRjaGVyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9hdXRvbGlua2VyL2Rpc3QvZXMyMDE1L21hdGNoZXIvbWVudGlvbi1tYXRjaGVyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9hdXRvbGlua2VyL2Rpc3QvZXMyMDE1L2h0bWxQYXJzZXIvcGFyc2UtaHRtbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9ub2RlX21vZHVsZXMvYXV0b2xpbmtlci9kaXN0L2VzMjAxNS9hdXRvbGlua2VyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL25vZGVfbW9kdWxlcy9hdXRvbGlua2VyL2Rpc3QvZXMyMDE1L3ZlcnNpb24uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL2F1dG9saW5rZXIvZGlzdC9lczIwMTUvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vbm9kZV9tb2R1bGVzL3JlbWFya2FibGUvZGlzdC9lc20vbGlua2lmeS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb21wb25lbnRzL3Byb3ZpZGVycy9tYXJrZG93bi5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9sYXlvdXRzL2Jhc2UuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3ByZXNldHMvYmFzZS9wbHVnaW5zL2NvcmUtY29tcG9uZW50cy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wcmVzZXRzL2Jhc2UvcGx1Z2lucy9mb3JtLWNvbXBvbmVudHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcHJlc2V0cy9iYXNlL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9zcGVjLWV4dGVuc2lvbnMvd3JhcC1zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL2F1dGgtZXh0ZW5zaW9ucy93cmFwLXNlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvaGVscGVycy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL3NwZWMtZXh0ZW5zaW9ucy9zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL2NvbXBvbmVudHMvY2FsbGJhY2tzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvY29tcG9uZW50cy9yZXF1ZXN0LWJvZHkuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9jb21wb25lbnRzL29wZXJhdGlvbi1saW5rLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvY29tcG9uZW50cy9zZXJ2ZXJzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvY29tcG9uZW50cy9zZXJ2ZXJzLWNvbnRhaW5lci5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL2NvbXBvbmVudHMvcmVxdWVzdC1ib2R5LWVkaXRvci5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL2NvbXBvbmVudHMvYXV0aC9odHRwLWF1dGguanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9jb21wb25lbnRzL29wZXJhdGlvbi1zZXJ2ZXJzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvY29tcG9uZW50cy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvd3JhcC1jb21wb25lbnRzL21hcmtkb3duLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvd3JhcC1jb21wb25lbnRzL2F1dGgvYXV0aC1pdGVtLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvd3JhcC1jb21wb25lbnRzL29ubGluZS12YWxpZGF0b3ItYmFkZ2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL3dyYXAtY29tcG9uZW50cy9tb2RlbC5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL3dyYXAtY29tcG9uZW50cy9qc29uLXNjaGVtYS1zdHJpbmcuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy93cmFwLWNvbXBvbmVudHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL3dyYXAtY29tcG9uZW50cy9vcGVuYXBpLXZlcnNpb24uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9hY3Rpb25zLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL3JlZHVjZXJzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2NvbXBvbmVudHMvd2ViaG9va3MuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvY29tcG9uZW50cy9saWNlbnNlLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2NvbXBvbmVudHMvY29udGFjdC5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9jb21wb25lbnRzL2luZm8uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvY29tcG9uZW50cy9qc29uLXNjaGVtYS1kaWFsZWN0LmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2NvbXBvbmVudHMvdmVyc2lvbi1wcmFnbWEtZmlsdGVyLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2NvbXBvbmVudHMvbW9kZWwvbW9kZWwuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvY29tcG9uZW50cy9tb2RlbHMvbW9kZWxzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2NvbXBvbmVudHMvYXV0aC9tdXR1YWwtdGxzLWF1dGguanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvY29tcG9uZW50cy9hdXRoL2F1dGhzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2ZuLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvd3JhcC1jb21wb25lbnRzL2xpY2Vuc2UuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvd3JhcC1jb21wb25lbnRzL2NvbnRhY3QuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvd3JhcC1jb21wb25lbnRzL2luZm8uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvd3JhcC1jb21wb25lbnRzL21vZGVsLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL3dyYXAtY29tcG9uZW50cy9tb2RlbHMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvd3JhcC1jb21wb25lbnRzL3ZlcnNpb24tcHJhZ21hLWZpbHRlci5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS93cmFwLWNvbXBvbmVudHMvYXV0aC9hdXRoLWl0ZW0uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvd3JhcC1jb21wb25lbnRzL2F1dGhzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL3NwZWMtZXh0ZW5zaW9ucy9zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9zcGVjLWV4dGVuc2lvbnMvd3JhcC1zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9hdXRoLWV4dGVuc2lvbnMvd3JhcC1zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvY29tcG9uZW50cy9rZXl3b3Jkcy9FeGFtcGxlLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2pzb24tc2NoZW1hLTIwMjAtMTItZXh0ZW5zaW9ucy9jb21wb25lbnRzL2tleXdvcmRzL1htbC5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvY29tcG9uZW50cy9rZXl3b3Jkcy9EaXNjcmltaW5hdG9yL0Rpc2NyaW1pbmF0b3JNYXBwaW5nLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2pzb24tc2NoZW1hLTIwMjAtMTItZXh0ZW5zaW9ucy9jb21wb25lbnRzL2tleXdvcmRzL0Rpc2NyaW1pbmF0b3IvRGlzY3JpbWluYXRvci5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvY29tcG9uZW50cy9rZXl3b3Jkcy9FeHRlcm5hbERvY3MuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvanNvbi1zY2hlbWEtMjAyMC0xMi1leHRlbnNpb25zL2NvbXBvbmVudHMva2V5d29yZHMvRGVzY3JpcHRpb24uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvanNvbi1zY2hlbWEtMjAyMC0xMi1leHRlbnNpb25zL3dyYXAtY29tcG9uZW50cy9rZXl3b3Jkcy9EZXNjcmlwdGlvbi5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvd3JhcC1jb21wb25lbnRzL2tleXdvcmRzL0RlZmF1bHQuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvanNvbi1zY2hlbWEtMjAyMC0xMi1leHRlbnNpb25zL2NvbXBvbmVudHMva2V5d29yZHMvUHJvcGVydGllcy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvd3JhcC1jb21wb25lbnRzL2tleXdvcmRzL1Byb3BlcnRpZXMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvanNvbi1zY2hlbWEtMjAyMC0xMi1leHRlbnNpb25zL2ZuLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvYWZ0ZXItbG9hZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9wcm9wLXR5cGVzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb250ZXh0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9ob29rcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9KU09OU2NoZW1hL0pTT05TY2hlbWEuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzLyRzY2hlbWEuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzLyR2b2NhYnVsYXJ5LyR2b2NhYnVsYXJ5LmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy8kaWQuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzLyRhbmNob3IuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzLyRkeW5hbWljQW5jaG9yLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy8kcmVmLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy8kZHluYW1pY1JlZi5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvJGRlZnMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzLyRjb21tZW50LmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9BbGxPZi5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvQW55T2YuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL09uZU9mLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9Ob3QuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0lmLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9UaGVuLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9FbHNlLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9EZXBlbmRlbnRTY2hlbWFzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9QcmVmaXhJdGVtcy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvSXRlbXMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0NvbnRhaW5zLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9Qcm9wZXJ0aWVzL1Byb3BlcnRpZXMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL1BhdHRlcm5Qcm9wZXJ0aWVzL1BhdHRlcm5Qcm9wZXJ0aWVzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9BZGRpdGlvbmFsUHJvcGVydGllcy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvUHJvcGVydHlOYW1lcy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvVW5ldmFsdWF0ZWRJdGVtcy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9UeXBlLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9FbnVtL0VudW0uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0NvbnN0LmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9Db25zdHJhaW50L0NvbnN0cmFpbnQuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0RlcGVuZGVudFJlcXVpcmVkL0RlcGVuZGVudFJlcXVpcmVkLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9Db250ZW50U2NoZW1hLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9UaXRsZS9UaXRsZS5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvRGVzY3JpcHRpb24vRGVzY3JpcHRpb24uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0RlZmF1bHQuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0RlcHJlY2F0ZWQuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL1JlYWRPbmx5LmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9Xcml0ZU9ubHkuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL0FjY29yZGlvbi9BY2NvcmRpb24uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL0V4cGFuZERlZXBCdXR0b24vRXhwYW5kRGVlcEJ1dHRvbi5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMvaWNvbnMvQ2hldnJvblJpZ2h0LmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvZm4uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2hvYy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL3R5cGVzL2FycmF5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL3R5cGVzL29iamVjdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9jb3JlL3JhbmRvbS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9jb3JlL3ByZWRpY2F0ZXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vY2xhc3MvUmVnaXN0cnkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9pbnQzMi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2ludDY0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvZmxvYXQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9kb3VibGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9lbWFpbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2lkbi1lbWFpbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2hvc3RuYW1lLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvaWRuLWhvc3RuYW1lLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvaXB2NC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2lwdjYuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy91cmkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy91cmktcmVmZXJlbmNlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvaXJpLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvaXJpLXJlZmVyZW5jZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL3V1aWQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy91cmktdGVtcGxhdGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9qc29uLXBvaW50ZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9yZWxhdGl2ZS1qc29uLXBvaW50ZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9kYXRlLXRpbWUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9kYXRlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvdGltZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2R1cmF0aW9uLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvcGFzc3dvcmQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9yZWdleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9jbGFzcy9Gb3JtYXRSZWdpc3RyeS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9hcGkvZm9ybWF0QVBJLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2VuY29kZXJzLzdiaXQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZW5jb2RlcnMvOGJpdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9lbmNvZGVycy9iaW5hcnkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZW5jb2RlcnMvcXVvdGVkLXByaW50YWJsZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9lbmNvZGVycy9iYXNlMTYuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZW5jb2RlcnMvYmFzZTMyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2VuY29kZXJzL2Jhc2U2NC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9lbmNvZGVycy9iYXNlNjR1cmwuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vY2xhc3MvRW5jb2RlclJlZ2lzdHJ5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2FwaS9lbmNvZGVyQVBJLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvbWVkaWEtdHlwZXMvdGV4dC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL21lZGlhLXR5cGVzL2ltYWdlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvbWVkaWEtdHlwZXMvYXVkaW8uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9tZWRpYS10eXBlcy92aWRlby5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL21lZGlhLXR5cGVzL2FwcGxpY2F0aW9uLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2NsYXNzL01lZGlhVHlwZVJlZ2lzdHJ5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2FwaS9tZWRpYVR5cGVBUEkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vdHlwZXMvc3RyaW5nLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL3R5cGVzL251bWJlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi90eXBlcy9pbnRlZ2VyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL3R5cGVzL2Jvb2xlYW4uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vdHlwZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vdHlwZXMvbnVsbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9jb3JlL2NvbnN0YW50cy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9jb3JlL2V4YW1wbGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vY29yZS90eXBlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2NvcmUvdXRpbHMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vY29yZS9tZXJnZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9tYWluLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2NsYXNzL09wdGlvblJlZ2lzdHJ5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2FwaS9vcHRpb25BUEkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2V0LWpzb24tc2FtcGxlLXNjaGVtYS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZXQteWFtbC1zYW1wbGUtc2NoZW1hLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dldC14bWwtc2FtcGxlLXNjaGVtYS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZXQtc2FtcGxlLXNjaGVtYS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9wcmVzZXRzL2FwaXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29uZmlnL2ZhY3Rvcml6YXRpb24vaW5saW5lLXBsdWdpbi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb25maWcvZmFjdG9yaXphdGlvbi9zdG9yZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb25maWcvc291cmNlcy9xdWVyeS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb25maWcvc291cmNlcy91cmwuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29uZmlnL3NvdXJjZXMvcnVudGltZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb25maWcvZGVmYXVsdHMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvYXJyYXkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvYm9vbGVhbi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb25maWcvdHlwZS1jYXN0L3R5cGUtY2FzdGVycy9kb20tbm9kZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb25maWcvdHlwZS1jYXN0L3R5cGUtY2FzdGVycy9maWx0ZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvbnVsbGFibGUtYXJyYXkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvbnVsbGFibGUtc3RyaW5nLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbmZpZy90eXBlLWNhc3QvdHlwZS1jYXN0ZXJzL251bWJlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb25maWcvdHlwZS1jYXN0L3R5cGUtY2FzdGVycy9vYmplY3QuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvc3RyaW5nLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbmZpZy90eXBlLWNhc3QvdHlwZS1jYXN0ZXJzL3N5bnRheC1oaWdobGlnaHQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvdW5kZWZpbmVkLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlCdW5kbGUvLi9zcmMvY29yZS9jb25maWcvdHlwZS1jYXN0L21hcHBpbmdzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2NvbmZpZy90eXBlLWNhc3QvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQnVuZGxlLy4vc3JjL2NvcmUvY29uZmlnL21lcmdlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9jb3JlL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUJ1bmRsZS8uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJ3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsInJvb3QiLCJmYWN0b3J5IiwiZXhwb3J0cyIsIm1vZHVsZSIsImRlZmluZSIsImFtZCIsInRoaXMiLCJsZWFmUHJvdG90eXBlcyIsImdldFByb3RvIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsIkJMQU5LX1VSTCIsInJlbGF0aXZlRmlyc3RDaGFyYWN0ZXJzIiwidXJsU2NoZW1lUmVnZXgiLCJjdHJsQ2hhcmFjdGVyc1JlZ2V4IiwiaHRtbEN0cmxFbnRpdHlSZWdleCIsImh0bWxFbnRpdGllc1JlZ2V4IiwiaW52YWxpZFByb3RvY29sUmVnZXgiLCJjb25zdGFudHNfMSIsInNhbml0aXplVXJsIiwidXJsIiwiY2hhcnNUb0RlY29kZSIsInN0ciIsImRlY29kZWRVcmwiLCJyZXBsYWNlIiwibWF0Y2giLCJkZWMiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJ0cmltIiwibGVuZ3RoIiwic2FuaXRpemVkVXJsIiwiaXNSZWxhdGl2ZVVybFdpdGhvdXRQcm90b2NvbCIsImluZGV4T2YiLCJ1cmxTY2hlbWVQYXJzZVJlc3VsdHMiLCJ1cmxTY2hlbWUiLCJ0ZXN0IiwiYnl0ZUxlbmd0aCIsImI2NCIsImxlbnMiLCJnZXRMZW5zIiwidmFsaWRMZW4iLCJwbGFjZUhvbGRlcnNMZW4iLCJ0b0J5dGVBcnJheSIsInRtcCIsImkiLCJhcnIiLCJBcnIiLCJfYnl0ZUxlbmd0aCIsImN1ckJ5dGUiLCJsZW4iLCJyZXZMb29rdXAiLCJjaGFyQ29kZUF0IiwiZnJvbUJ5dGVBcnJheSIsInVpbnQ4IiwiZXh0cmFCeXRlcyIsInBhcnRzIiwibWF4Q2h1bmtMZW5ndGgiLCJsZW4yIiwicHVzaCIsImVuY29kZUNodW5rIiwibG9va3VwIiwiam9pbiIsIlVpbnQ4QXJyYXkiLCJBcnJheSIsImNvZGUiLCJFcnJvciIsInN0YXJ0IiwiZW5kIiwibnVtIiwib3V0cHV0IiwiYmFzZTY0IiwiaWVlZTc1NCIsImN1c3RvbUluc3BlY3RTeW1ib2wiLCJTeW1ib2wiLCJCdWZmZXIiLCJTbG93QnVmZmVyIiwiYWxsb2MiLCJJTlNQRUNUX01BWF9CWVRFUyIsIktfTUFYX0xFTkdUSCIsImNyZWF0ZUJ1ZmZlciIsIlJhbmdlRXJyb3IiLCJidWYiLCJzZXRQcm90b3R5cGVPZiIsInByb3RvdHlwZSIsImFyZyIsImVuY29kaW5nT3JPZmZzZXQiLCJUeXBlRXJyb3IiLCJhbGxvY1Vuc2FmZSIsImZyb20iLCJmcm9tU3RyaW5nIiwic3RyaW5nIiwiZW5jb2RpbmciLCJpc0VuY29kaW5nIiwiYWN0dWFsIiwid3JpdGUiLCJzbGljZSIsIkFycmF5QnVmZmVyIiwiaXNWaWV3IiwiZnJvbUFycmF5VmlldyIsImFycmF5VmlldyIsImlzSW5zdGFuY2UiLCJjb3B5IiwiZnJvbUFycmF5QnVmZmVyIiwiYnVmZmVyIiwiYnl0ZU9mZnNldCIsImZyb21BcnJheUxpa2UiLCJTaGFyZWRBcnJheUJ1ZmZlciIsInZhbHVlT2YiLCJiIiwiZnJvbU9iamVjdCIsIm9iaiIsImlzQnVmZmVyIiwiY2hlY2tlZCIsInVuZGVmaW5lZCIsIm51bWJlcklzTmFOIiwidHlwZSIsImlzQXJyYXkiLCJkYXRhIiwidG9QcmltaXRpdmUiLCJhc3NlcnRTaXplIiwic2l6ZSIsImFycmF5IiwidG9TdHJpbmciLCJtdXN0TWF0Y2giLCJhcmd1bWVudHMiLCJsb3dlcmVkQ2FzZSIsInV0ZjhUb0J5dGVzIiwiYmFzZTY0VG9CeXRlcyIsInRvTG93ZXJDYXNlIiwic2xvd1RvU3RyaW5nIiwiaGV4U2xpY2UiLCJ1dGY4U2xpY2UiLCJhc2NpaVNsaWNlIiwibGF0aW4xU2xpY2UiLCJiYXNlNjRTbGljZSIsInV0ZjE2bGVTbGljZSIsInN3YXAiLCJuIiwibSIsImJpZGlyZWN0aW9uYWxJbmRleE9mIiwidmFsIiwiZGlyIiwiYXJyYXlJbmRleE9mIiwiY2FsbCIsImxhc3RJbmRleE9mIiwiaW5kZXhTaXplIiwiYXJyTGVuZ3RoIiwidmFsTGVuZ3RoIiwicmVhZCIsInJlYWRVSW50MTZCRSIsImZvdW5kSW5kZXgiLCJmb3VuZCIsImoiLCJoZXhXcml0ZSIsIm9mZnNldCIsIk51bWJlciIsInJlbWFpbmluZyIsInN0ckxlbiIsInBhcnNlZCIsInBhcnNlSW50Iiwic3Vic3RyIiwidXRmOFdyaXRlIiwiYmxpdEJ1ZmZlciIsImFzY2lpV3JpdGUiLCJhc2NpaVRvQnl0ZXMiLCJieXRlQXJyYXkiLCJiYXNlNjRXcml0ZSIsInVjczJXcml0ZSIsInV0ZjE2bGVUb0J5dGVzIiwidW5pdHMiLCJjIiwiaGkiLCJsbyIsIk1hdGgiLCJtaW4iLCJyZXMiLCJmaXJzdEJ5dGUiLCJjb2RlUG9pbnQiLCJieXRlc1BlclNlcXVlbmNlIiwic2Vjb25kQnl0ZSIsInRoaXJkQnl0ZSIsImZvdXJ0aEJ5dGUiLCJ0ZW1wQ29kZVBvaW50IiwiZGVjb2RlQ29kZVBvaW50c0FycmF5IiwiY29kZVBvaW50cyIsIk1BWF9BUkdVTUVOVFNfTEVOR1RIIiwiYXBwbHkiLCJrTWF4TGVuZ3RoIiwiVFlQRURfQVJSQVlfU1VQUE9SVCIsInR5cGVkQXJyYXlTdXBwb3J0IiwicHJvdG8iLCJmb28iLCJlIiwiY29uc29sZSIsImVycm9yIiwiZW51bWVyYWJsZSIsImdldCIsInBvb2xTaXplIiwiZmlsbCIsImFsbG9jVW5zYWZlU2xvdyIsIl9pc0J1ZmZlciIsImNvbXBhcmUiLCJhIiwieCIsInkiLCJjb25jYXQiLCJsaXN0IiwicG9zIiwic2V0Iiwic3dhcDE2Iiwic3dhcDMyIiwic3dhcDY0IiwidG9Mb2NhbGVTdHJpbmciLCJlcXVhbHMiLCJpbnNwZWN0IiwibWF4IiwidGFyZ2V0IiwidGhpc1N0YXJ0IiwidGhpc0VuZCIsInRoaXNDb3B5IiwidGFyZ2V0Q29weSIsImluY2x1ZGVzIiwiaXNGaW5pdGUiLCJ0b0pTT04iLCJfYXJyIiwicmV0Iiwib3V0IiwiaGV4U2xpY2VMb29rdXBUYWJsZSIsImJ5dGVzIiwiY2hlY2tPZmZzZXQiLCJleHQiLCJjaGVja0ludCIsIndydEJpZ1VJbnQ2NExFIiwiY2hlY2tJbnRCSSIsIkJpZ0ludCIsIndydEJpZ1VJbnQ2NEJFIiwiY2hlY2tJRUVFNzU0Iiwid3JpdGVGbG9hdCIsImxpdHRsZUVuZGlhbiIsIm5vQXNzZXJ0Iiwid3JpdGVEb3VibGUiLCJuZXdCdWYiLCJzdWJhcnJheSIsInJlYWRVaW50TEUiLCJyZWFkVUludExFIiwibXVsIiwicmVhZFVpbnRCRSIsInJlYWRVSW50QkUiLCJyZWFkVWludDgiLCJyZWFkVUludDgiLCJyZWFkVWludDE2TEUiLCJyZWFkVUludDE2TEUiLCJyZWFkVWludDE2QkUiLCJyZWFkVWludDMyTEUiLCJyZWFkVUludDMyTEUiLCJyZWFkVWludDMyQkUiLCJyZWFkVUludDMyQkUiLCJyZWFkQmlnVUludDY0TEUiLCJkZWZpbmVCaWdJbnRNZXRob2QiLCJ2YWxpZGF0ZU51bWJlciIsImZpcnN0IiwibGFzdCIsImJvdW5kc0Vycm9yIiwicmVhZEJpZ1VJbnQ2NEJFIiwicmVhZEludExFIiwicG93IiwicmVhZEludEJFIiwicmVhZEludDgiLCJyZWFkSW50MTZMRSIsInJlYWRJbnQxNkJFIiwicmVhZEludDMyTEUiLCJyZWFkSW50MzJCRSIsInJlYWRCaWdJbnQ2NExFIiwicmVhZEJpZ0ludDY0QkUiLCJyZWFkRmxvYXRMRSIsInJlYWRGbG9hdEJFIiwicmVhZERvdWJsZUxFIiwicmVhZERvdWJsZUJFIiwid3JpdGVVaW50TEUiLCJ3cml0ZVVJbnRMRSIsIndyaXRlVWludEJFIiwid3JpdGVVSW50QkUiLCJ3cml0ZVVpbnQ4Iiwid3JpdGVVSW50OCIsIndyaXRlVWludDE2TEUiLCJ3cml0ZVVJbnQxNkxFIiwid3JpdGVVaW50MTZCRSIsIndyaXRlVUludDE2QkUiLCJ3cml0ZVVpbnQzMkxFIiwid3JpdGVVSW50MzJMRSIsIndyaXRlVWludDMyQkUiLCJ3cml0ZVVJbnQzMkJFIiwid3JpdGVCaWdVSW50NjRMRSIsIndyaXRlQmlnVUludDY0QkUiLCJ3cml0ZUludExFIiwibGltaXQiLCJzdWIiLCJ3cml0ZUludEJFIiwid3JpdGVJbnQ4Iiwid3JpdGVJbnQxNkxFIiwid3JpdGVJbnQxNkJFIiwid3JpdGVJbnQzMkxFIiwid3JpdGVJbnQzMkJFIiwid3JpdGVCaWdJbnQ2NExFIiwid3JpdGVCaWdJbnQ2NEJFIiwid3JpdGVGbG9hdExFIiwid3JpdGVGbG9hdEJFIiwid3JpdGVEb3VibGVMRSIsIndyaXRlRG91YmxlQkUiLCJ0YXJnZXRTdGFydCIsImNvcHlXaXRoaW4iLCJlcnJvcnMiLCJFIiwic3ltIiwiZ2V0TWVzc2FnZSIsIkJhc2UiLCJOb2RlRXJyb3IiLCJjb25zdHJ1Y3RvciIsInN1cGVyIiwid3JpdGFibGUiLCJjb25maWd1cmFibGUiLCJuYW1lIiwic3RhY2siLCJtZXNzYWdlIiwiYWRkTnVtZXJpY2FsU2VwYXJhdG9yIiwicmFuZ2UiLCJFUlJfT1VUX09GX1JBTkdFIiwiY2hlY2tCb3VuZHMiLCJFUlJfSU5WQUxJRF9BUkdfVFlQRSIsImZsb29yIiwiRVJSX0JVRkZFUl9PVVRfT0ZfQk9VTkRTIiwiaW5wdXQiLCJtc2ciLCJyZWNlaXZlZCIsImlzSW50ZWdlciIsImFicyIsIklOVkFMSURfQkFTRTY0X1JFIiwiSW5maW5pdHkiLCJsZWFkU3Vycm9nYXRlIiwiYmFzZTY0Y2xlYW4iLCJzcGxpdCIsInNyYyIsImRzdCIsImFscGhhYmV0IiwidGFibGUiLCJpMTYiLCJmbiIsIkJ1ZmZlckJpZ0ludE5vdERlZmluZWQiLCJHZXRJbnRyaW5zaWMiLCJjYWxsQmluZCIsIiRpbmRleE9mIiwiY2FsbEJvdW5kSW50cmluc2ljIiwiYWxsb3dNaXNzaW5nIiwiaW50cmluc2ljIiwiYmluZCIsInNldEZ1bmN0aW9uTGVuZ3RoIiwiJFR5cGVFcnJvciIsIiRhcHBseSIsIiRjYWxsIiwiJHJlZmxlY3RBcHBseSIsIiRkZWZpbmVQcm9wZXJ0eSIsIiRtYXgiLCJvcmlnaW5hbEZ1bmN0aW9uIiwiZnVuYyIsImFwcGx5QmluZCIsInBhcnNlIiwib3B0aW9ucyIsImRlY29kZSIsImluZGV4IiwiZXFJZHgiLCJlbmRJZHgiLCJrZXkiLCJ0cnlEZWNvZGUiLCJzZXJpYWxpemUiLCJvcHQiLCJlbmMiLCJlbmNvZGUiLCJmaWVsZENvbnRlbnRSZWdFeHAiLCJtYXhBZ2UiLCJpc05hTiIsImRvbWFpbiIsInBhdGgiLCJleHBpcmVzIiwiaXNEYXRlIiwiX190b1N0cmluZyIsIkRhdGUiLCJ0b1VUQ1N0cmluZyIsImh0dHBPbmx5Iiwic2VjdXJlIiwicGFydGl0aW9uZWQiLCJwcmlvcml0eSIsInNhbWVTaXRlIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiZGVzZWxlY3RDdXJyZW50IiwiY2xpcGJvYXJkVG9JRTExRm9ybWF0dGluZyIsInRleHQiLCJkZWJ1ZyIsInJlc2VsZWN0UHJldmlvdXMiLCJzZWxlY3Rpb24iLCJtYXJrIiwic3VjY2VzcyIsImRvY3VtZW50IiwiY3JlYXRlUmFuZ2UiLCJnZXRTZWxlY3Rpb24iLCJjcmVhdGVFbGVtZW50IiwidGV4dENvbnRlbnQiLCJhcmlhSGlkZGVuIiwic3R5bGUiLCJhbGwiLCJwb3NpdGlvbiIsInRvcCIsImNsaXAiLCJ3aGl0ZVNwYWNlIiwid2Via2l0VXNlclNlbGVjdCIsIk1velVzZXJTZWxlY3QiLCJtc1VzZXJTZWxlY3QiLCJ1c2VyU2VsZWN0IiwiYWRkRXZlbnRMaXN0ZW5lciIsInN0b3BQcm9wYWdhdGlvbiIsImZvcm1hdCIsInByZXZlbnREZWZhdWx0IiwiY2xpcGJvYXJkRGF0YSIsIndhcm4iLCJ3aW5kb3ciLCJjbGVhckRhdGEiLCJzZXREYXRhIiwib25Db3B5IiwiYm9keSIsImFwcGVuZENoaWxkIiwic2VsZWN0Tm9kZUNvbnRlbnRzIiwiYWRkUmFuZ2UiLCJleGVjQ29tbWFuZCIsImVyciIsImNvcHlLZXkiLCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiLCJwcm9tcHQiLCJyZW1vdmVSYW5nZSIsInJlbW92ZUFsbFJhbmdlcyIsInJlbW92ZUNoaWxkIiwiZyIsIkNTUyIsImVzY2FwZSIsImNzc0VzY2FwZSIsImNvZGVVbml0IiwicmVzdWx0IiwiZmlyc3RDb2RlVW5pdCIsImNoYXJBdCIsImlzU3BlY2lmaWNWYWx1ZSIsIlJlZ0V4cCIsImNsb25lU3BlY2lmaWNWYWx1ZSIsImdldFRpbWUiLCJkZWVwQ2xvbmVBcnJheSIsImNsb25lIiwiZm9yRWFjaCIsIml0ZW0iLCJkZWVwRXh0ZW5kIiwic2FmZUdldFByb3BlcnR5Iiwib2JqZWN0IiwicHJvcGVydHkiLCJrZXlzIiwiaXNNZXJnZWFibGVPYmplY3QiLCJpc05vbk51bGxPYmplY3QiLCJpc1NwZWNpYWwiLCJzdHJpbmdWYWx1ZSIsImlzUmVhY3RFbGVtZW50IiwiJCR0eXBlb2YiLCJSRUFDVF9FTEVNRU5UX1RZUEUiLCJmb3IiLCJjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZCIsImRlZXBtZXJnZSIsImVtcHR5VGFyZ2V0IiwiZGVmYXVsdEFycmF5TWVyZ2UiLCJzb3VyY2UiLCJtYXAiLCJlbGVtZW50IiwiZ2V0S2V5cyIsImdldEVudW1lcmFibGVPd25Qcm9wZXJ0eVN5bWJvbHMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJzeW1ib2wiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInByb3BlcnR5SXNPbk9iamVjdCIsIl8iLCJtZXJnZU9iamVjdCIsImRlc3RpbmF0aW9uIiwicHJvcGVydHlJc1Vuc2FmZSIsImhhc093blByb3BlcnR5IiwiZ2V0TWVyZ2VGdW5jdGlvbiIsImN1c3RvbU1lcmdlIiwiYXJyYXlNZXJnZSIsInNvdXJjZUlzQXJyYXkiLCJkZWVwbWVyZ2VBbGwiLCJyZWR1Y2UiLCJwcmV2IiwibmV4dCIsImRlZXBtZXJnZV8xIiwiJFN5bnRheEVycm9yIiwiZ29wZCIsImRlZmluZURhdGFQcm9wZXJ0eSIsIm5vbkVudW1lcmFibGUiLCJub25Xcml0YWJsZSIsIm5vbkNvbmZpZ3VyYWJsZSIsImxvb3NlIiwiZGVzYyIsImVudHJpZXMiLCJpc0Zyb3plbiIsImdldFByb3RvdHlwZU9mIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZnJlZXplIiwic2VhbCIsImNyZWF0ZSIsImNvbnN0cnVjdCIsIlJlZmxlY3QiLCJmdW4iLCJ0aGlzVmFsdWUiLCJhcmdzIiwiRnVuYyIsImFycmF5Rm9yRWFjaCIsInVuYXBwbHkiLCJhcnJheVBvcCIsInBvcCIsImFycmF5UHVzaCIsInN0cmluZ1RvTG93ZXJDYXNlIiwic3RyaW5nVG9TdHJpbmciLCJzdHJpbmdNYXRjaCIsInN0cmluZ1JlcGxhY2UiLCJzdHJpbmdJbmRleE9mIiwic3RyaW5nVHJpbSIsIm9iamVjdEhhc093blByb3BlcnR5IiwicmVnRXhwVGVzdCIsInR5cGVFcnJvckNyZWF0ZSIsInVuY29uc3RydWN0IiwidGhpc0FyZyIsIl9sZW4iLCJfa2V5IiwiX2xlbjIiLCJfa2V5MiIsImFkZFRvU2V0IiwidHJhbnNmb3JtQ2FzZUZ1bmMiLCJsIiwibGNFbGVtZW50IiwiY2xlYW5BcnJheSIsIm5ld09iamVjdCIsImxvb2t1cEdldHRlciIsInByb3AiLCJmYWxsYmFja1ZhbHVlIiwiaHRtbCQxIiwic3ZnJDEiLCJzdmdGaWx0ZXJzIiwic3ZnRGlzYWxsb3dlZCIsIm1hdGhNbCQxIiwibWF0aE1sRGlzYWxsb3dlZCIsImh0bWwiLCJzdmciLCJtYXRoTWwiLCJ4bWwiLCJNVVNUQUNIRV9FWFBSIiwiRVJCX0VYUFIiLCJUTVBMSVRfRVhQUiIsIkRBVEFfQVRUUiIsIkFSSUFfQVRUUiIsIklTX0FMTE9XRURfVVJJIiwiSVNfU0NSSVBUX09SX0RBVEEiLCJBVFRSX1dISVRFU1BBQ0UiLCJET0NUWVBFX05BTUUiLCJDVVNUT01fRUxFTUVOVCIsIkVYUFJFU1NJT05TIiwiX19wcm90b19fIiwiZ2V0R2xvYmFsIiwiX2NyZWF0ZVRydXN0ZWRUeXBlc1BvbGljeSIsInRydXN0ZWRUeXBlcyIsInB1cmlmeUhvc3RFbGVtZW50IiwiY3JlYXRlUG9saWN5Iiwic3VmZml4IiwiQVRUUl9OQU1FIiwiaGFzQXR0cmlidXRlIiwiZ2V0QXR0cmlidXRlIiwicG9saWN5TmFtZSIsImNyZWF0ZUhUTUwiLCJjcmVhdGVTY3JpcHRVUkwiLCJzY3JpcHRVcmwiLCJjcmVhdGVET01QdXJpZnkiLCJET01QdXJpZnkiLCJ2ZXJzaW9uIiwicmVtb3ZlZCIsIm5vZGVUeXBlIiwiaXNTdXBwb3J0ZWQiLCJvcmlnaW5hbERvY3VtZW50IiwiY3VycmVudFNjcmlwdCIsIkRvY3VtZW50RnJhZ21lbnQiLCJIVE1MVGVtcGxhdGVFbGVtZW50IiwiTm9kZSIsIkVsZW1lbnQiLCJOb2RlRmlsdGVyIiwiTmFtZWROb2RlTWFwIiwiTW96TmFtZWRBdHRyTWFwIiwiSFRNTEZvcm1FbGVtZW50IiwiRE9NUGFyc2VyIiwiRWxlbWVudFByb3RvdHlwZSIsImNsb25lTm9kZSIsImdldE5leHRTaWJsaW5nIiwiZ2V0Q2hpbGROb2RlcyIsImdldFBhcmVudE5vZGUiLCJ0ZW1wbGF0ZSIsImNvbnRlbnQiLCJvd25lckRvY3VtZW50IiwidHJ1c3RlZFR5cGVzUG9saWN5IiwiZW1wdHlIVE1MIiwiaW1wbGVtZW50YXRpb24iLCJjcmVhdGVOb2RlSXRlcmF0b3IiLCJjcmVhdGVEb2N1bWVudEZyYWdtZW50IiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJpbXBvcnROb2RlIiwiaG9va3MiLCJjcmVhdGVIVE1MRG9jdW1lbnQiLCJJU19BTExPV0VEX1VSSSQxIiwiQUxMT1dFRF9UQUdTIiwiREVGQVVMVF9BTExPV0VEX1RBR1MiLCJBTExPV0VEX0FUVFIiLCJERUZBVUxUX0FMTE9XRURfQVRUUiIsIkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HIiwidGFnTmFtZUNoZWNrIiwiYXR0cmlidXRlTmFtZUNoZWNrIiwiYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzIiwiRk9SQklEX1RBR1MiLCJGT1JCSURfQVRUUiIsIkFMTE9XX0FSSUFfQVRUUiIsIkFMTE9XX0RBVEFfQVRUUiIsIkFMTE9XX1VOS05PV05fUFJPVE9DT0xTIiwiQUxMT1dfU0VMRl9DTE9TRV9JTl9BVFRSIiwiU0FGRV9GT1JfVEVNUExBVEVTIiwiU0FGRV9GT1JfWE1MIiwiV0hPTEVfRE9DVU1FTlQiLCJTRVRfQ09ORklHIiwiRk9SQ0VfQk9EWSIsIlJFVFVSTl9ET00iLCJSRVRVUk5fRE9NX0ZSQUdNRU5UIiwiUkVUVVJOX1RSVVNURURfVFlQRSIsIlNBTklUSVpFX0RPTSIsIlNBTklUSVpFX05BTUVEX1BST1BTIiwiU0FOSVRJWkVfTkFNRURfUFJPUFNfUFJFRklYIiwiS0VFUF9DT05URU5UIiwiSU5fUExBQ0UiLCJVU0VfUFJPRklMRVMiLCJGT1JCSURfQ09OVEVOVFMiLCJERUZBVUxUX0ZPUkJJRF9DT05URU5UUyIsIkRBVEFfVVJJX1RBR1MiLCJERUZBVUxUX0RBVEFfVVJJX1RBR1MiLCJVUklfU0FGRV9BVFRSSUJVVEVTIiwiREVGQVVMVF9VUklfU0FGRV9BVFRSSUJVVEVTIiwiTUFUSE1MX05BTUVTUEFDRSIsIlNWR19OQU1FU1BBQ0UiLCJIVE1MX05BTUVTUEFDRSIsIk5BTUVTUEFDRSIsIklTX0VNUFRZX0lOUFVUIiwiQUxMT1dFRF9OQU1FU1BBQ0VTIiwiREVGQVVMVF9BTExPV0VEX05BTUVTUEFDRVMiLCJQQVJTRVJfTUVESUFfVFlQRSIsIlNVUFBPUlRFRF9QQVJTRVJfTUVESUFfVFlQRVMiLCJERUZBVUxUX1BBUlNFUl9NRURJQV9UWVBFIiwiQ09ORklHIiwiZm9ybUVsZW1lbnQiLCJpc1JlZ2V4T3JGdW5jdGlvbiIsInRlc3RWYWx1ZSIsIkZ1bmN0aW9uIiwiX3BhcnNlQ29uZmlnIiwiY2ZnIiwiQUREX1VSSV9TQUZFX0FUVFIiLCJBRERfREFUQV9VUklfVEFHUyIsIkFMTE9XRURfVVJJX1JFR0VYUCIsIkFERF9UQUdTIiwiQUREX0FUVFIiLCJ0Ym9keSIsIlRSVVNURURfVFlQRVNfUE9MSUNZIiwiTUFUSE1MX1RFWFRfSU5URUdSQVRJT05fUE9JTlRTIiwiSFRNTF9JTlRFR1JBVElPTl9QT0lOVFMiLCJDT01NT05fU1ZHX0FORF9IVE1MX0VMRU1FTlRTIiwiQUxMX1NWR19UQUdTIiwiQUxMX01BVEhNTF9UQUdTIiwiX2NoZWNrVmFsaWROYW1lc3BhY2UiLCJwYXJlbnQiLCJ0YWdOYW1lIiwibmFtZXNwYWNlVVJJIiwicGFyZW50VGFnTmFtZSIsIkJvb2xlYW4iLCJfZm9yY2VSZW1vdmUiLCJub2RlIiwicGFyZW50Tm9kZSIsInJlbW92ZSIsIl9yZW1vdmVBdHRyaWJ1dGUiLCJhdHRyaWJ1dGUiLCJnZXRBdHRyaWJ1dGVOb2RlIiwicmVtb3ZlQXR0cmlidXRlIiwic2V0QXR0cmlidXRlIiwiX2luaXREb2N1bWVudCIsImRpcnR5IiwiZG9jIiwibGVhZGluZ1doaXRlc3BhY2UiLCJtYXRjaGVzIiwiZGlydHlQYXlsb2FkIiwicGFyc2VGcm9tU3RyaW5nIiwiZG9jdW1lbnRFbGVtZW50IiwiY3JlYXRlRG9jdW1lbnQiLCJpbm5lckhUTUwiLCJpbnNlcnRCZWZvcmUiLCJjcmVhdGVUZXh0Tm9kZSIsImNoaWxkTm9kZXMiLCJfY3JlYXRlTm9kZUl0ZXJhdG9yIiwiU0hPV19FTEVNRU5UIiwiU0hPV19DT01NRU5UIiwiU0hPV19URVhUIiwiU0hPV19QUk9DRVNTSU5HX0lOU1RSVUNUSU9OIiwiU0hPV19DREFUQV9TRUNUSU9OIiwiX2lzQ2xvYmJlcmVkIiwiZWxtIiwibm9kZU5hbWUiLCJhdHRyaWJ1dGVzIiwiaGFzQ2hpbGROb2RlcyIsIl9pc05vZGUiLCJfZXhlY3V0ZUhvb2siLCJlbnRyeVBvaW50IiwiY3VycmVudE5vZGUiLCJob29rIiwiX3Nhbml0aXplRWxlbWVudHMiLCJhbGxvd2VkVGFncyIsImZpcnN0RWxlbWVudENoaWxkIiwiX2lzQmFzaWNDdXN0b21FbGVtZW50IiwiZXhwciIsIl9pc1ZhbGlkQXR0cmlidXRlIiwibGNUYWciLCJsY05hbWUiLCJfc2FuaXRpemVBdHRyaWJ1dGVzIiwiaG9va0V2ZW50IiwiYXR0ck5hbWUiLCJhdHRyVmFsdWUiLCJrZWVwQXR0ciIsImFsbG93ZWRBdHRyaWJ1dGVzIiwiYXR0ciIsImZvcmNlS2VlcEF0dHIiLCJnZXRBdHRyaWJ1dGVUeXBlIiwic2V0QXR0cmlidXRlTlMiLCJfc2FuaXRpemVTaGFkb3dET00iLCJmcmFnbWVudCIsInNoYWRvd05vZGUiLCJzaGFkb3dJdGVyYXRvciIsIm5leHROb2RlIiwic2FuaXRpemUiLCJpbXBvcnRlZE5vZGUiLCJyZXR1cm5Ob2RlIiwiZmlyc3RDaGlsZCIsIm5vZGVJdGVyYXRvciIsInNoYWRvd3Jvb3QiLCJzaGFkb3dyb290bW9kZSIsInNlcmlhbGl6ZWRIVE1MIiwib3V0ZXJIVE1MIiwiZG9jdHlwZSIsInNldENvbmZpZyIsImNsZWFyQ29uZmlnIiwiaXNWYWxpZEF0dHJpYnV0ZSIsInRhZyIsImFkZEhvb2siLCJob29rRnVuY3Rpb24iLCJyZW1vdmVIb29rIiwicmVtb3ZlSG9va3MiLCJyZW1vdmVBbGxIb29rcyIsIlN1YlJhbmdlIiwibG93IiwiaGlnaCIsIm92ZXJsYXBzIiwidG91Y2hlcyIsImFkZCIsInN1YnRyYWN0IiwiRFJhbmdlIiwicmFuZ2VzIiwiX3VwZGF0ZV9sZW5ndGgiLCJwcmV2aW91cyIsIl9hZGQiLCJzdWJyYW5nZSIsIm5ld1JhbmdlcyIsIl9zdWJ0cmFjdCIsImludGVyc2VjdCIsIl9pbnRlcnNlY3QiLCJudW1iZXJzIiwic3VicmFuZ2VzIiwiRXZhbEVycm9yIiwiUmVmZXJlbmNlRXJyb3IiLCJTeW50YXhFcnJvciIsIlVSSUVycm9yIiwiUmVmbGVjdE93bktleXMiLCJSIiwiUmVmbGVjdEFwcGx5IiwicmVjZWl2ZXIiLCJvd25LZXlzIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsIk51bWJlcklzTmFOIiwiRXZlbnRFbWl0dGVyIiwiaW5pdCIsIm9uY2UiLCJlbWl0dGVyIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJlcnJvckxpc3RlbmVyIiwicmVtb3ZlTGlzdGVuZXIiLCJyZXNvbHZlciIsImV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lciIsImFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyIiwiaGFuZGxlciIsImZsYWdzIiwib24iLCJfZXZlbnRzIiwiX2V2ZW50c0NvdW50IiwiX21heExpc3RlbmVycyIsImRlZmF1bHRNYXhMaXN0ZW5lcnMiLCJjaGVja0xpc3RlbmVyIiwibGlzdGVuZXIiLCJfZ2V0TWF4TGlzdGVuZXJzIiwidGhhdCIsIl9hZGRMaXN0ZW5lciIsInByZXBlbmQiLCJldmVudHMiLCJleGlzdGluZyIsIm5ld0xpc3RlbmVyIiwiZW1pdCIsInVuc2hpZnQiLCJ3YXJuZWQiLCJ3IiwiY291bnQiLCJQcm9jZXNzRW1pdFdhcm5pbmciLCJ3YXJuaW5nIiwib25jZVdyYXBwZXIiLCJmaXJlZCIsIndyYXBGbiIsIl9vbmNlV3JhcCIsInN0YXRlIiwid3JhcHBlZCIsIl9saXN0ZW5lcnMiLCJ1bndyYXAiLCJldmxpc3RlbmVyIiwidW53cmFwTGlzdGVuZXJzIiwiYXJyYXlDbG9uZSIsImxpc3RlbmVyQ291bnQiLCJ3cmFwTGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwic2V0TWF4TGlzdGVuZXJzIiwiZ2V0TWF4TGlzdGVuZXJzIiwiZG9FcnJvciIsImVyIiwiY29udGV4dCIsImxpc3RlbmVycyIsImFkZExpc3RlbmVyIiwicHJlcGVuZExpc3RlbmVyIiwicHJlcGVuZE9uY2VMaXN0ZW5lciIsIm9yaWdpbmFsTGlzdGVuZXIiLCJzaGlmdCIsInNwbGljZU9uZSIsIm9mZiIsInJlbW92ZUFsbExpc3RlbmVycyIsInJhd0xpc3RlbmVycyIsImV2ZW50TmFtZXMiLCJmb3JtYXR0ZXIiLCJmYXVsdCIsIkVDb25zdHJ1Y3RvciIsIkZvcm1hdHRlZEVycm9yIiwiZGlzcGxheU5hbWUiLCJldmFsIiwicmVmZXJlbmNlIiwic3ludGF4IiwidXJpIiwibmFtZXNwYWNlIiwiZm10IiwicHJlY2lzaW9uIiwiYXJnSW5kZXgiLCJlc2NhcGVkIiwibGVhZGluZ1plcm8iLCJuZXh0QXJnIiwic2x1cnBOdW1iZXIiLCJkaWdpdHMiLCJwYXJzZUZsb2F0IiwidG9GaXhlZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0b1VwcGVyQ2FzZSIsInZzcHJpbnRmIiwicmVwbGFjZW1lbnRzIiwibG9nIiwicHJpbnRmIiwidG9TdHIiLCJjb25jYXR0eSIsImJvdW5kIiwic2xpY3kiLCJhcnJMaWtlIiwiYm91bmRMZW5ndGgiLCJib3VuZEFyZ3MiLCJqb2luZXIiLCJqb2lueSIsIkVtcHR5IiwiJEVycm9yIiwiJEV2YWxFcnJvciIsIiRSYW5nZUVycm9yIiwiJFJlZmVyZW5jZUVycm9yIiwiJFVSSUVycm9yIiwiJEZ1bmN0aW9uIiwiZ2V0RXZhbGxlZENvbnN0cnVjdG9yIiwiZXhwcmVzc2lvblN5bnRheCIsIiRnT1BEIiwidGhyb3dUeXBlRXJyb3IiLCJUaHJvd1R5cGVFcnJvciIsImNhbGxlZVRocm93cyIsImdPUER0aHJvd3MiLCJoYXNTeW1ib2xzIiwiaGFzUHJvdG8iLCJuZWVkc0V2YWwiLCJUeXBlZEFycmF5IiwiSU5UUklOU0lDUyIsIkFnZ3JlZ2F0ZUVycm9yIiwiaXRlcmF0b3IiLCJBdG9taWNzIiwiQmlnSW50NjRBcnJheSIsIkJpZ1VpbnQ2NEFycmF5IiwiRGF0YVZpZXciLCJkZWNvZGVVUkkiLCJlbmNvZGVVUkkiLCJGbG9hdDMyQXJyYXkiLCJGbG9hdDY0QXJyYXkiLCJGaW5hbGl6YXRpb25SZWdpc3RyeSIsIkludDhBcnJheSIsIkludDE2QXJyYXkiLCJJbnQzMkFycmF5IiwiTWFwIiwiUHJveHkiLCJTZXQiLCJVaW50OENsYW1wZWRBcnJheSIsIlVpbnQxNkFycmF5IiwiVWludDMyQXJyYXkiLCJXZWFrTWFwIiwiV2Vha1JlZiIsIldlYWtTZXQiLCJlcnJvclByb3RvIiwiZG9FdmFsIiwiZ2VuIiwiTEVHQUNZX0FMSUFTRVMiLCJoYXNPd24iLCIkY29uY2F0IiwiJHNwbGljZUFwcGx5Iiwic3BsaWNlIiwiJHJlcGxhY2UiLCIkc3RyU2xpY2UiLCIkZXhlYyIsImV4ZWMiLCJyZVByb3BOYW1lIiwicmVFc2NhcGVDaGFyIiwiZ2V0QmFzZUludHJpbnNpYyIsImFsaWFzIiwiaW50cmluc2ljTmFtZSIsInN0cmluZ1RvUGF0aCIsIm51bWJlciIsInF1b3RlIiwic3ViU3RyaW5nIiwiaW50cmluc2ljQmFzZU5hbWUiLCJpbnRyaW5zaWNSZWFsTmFtZSIsInNraXBGdXJ0aGVyQ2FjaGluZyIsImlzT3duIiwicGFydCIsImhhc1Byb3BlcnR5RGVzY3JpcHRvcnMiLCJoYXNBcnJheUxlbmd0aERlZmluZUJ1ZyIsIiRPYmplY3QiLCJvcmlnU3ltYm9sIiwiaGFzU3ltYm9sU2hhbSIsImhhc05hdGl2ZVN5bWJvbHMiLCJzeW1PYmoiLCJzeW1zIiwiZGVzY3JpcHRvciIsIiRoYXNPd24iLCJkZWVwRnJlZXplIiwiY2xlYXIiLCJkZWxldGUiLCJkZWVwRnJlZXplRXM2IiwiX2RlZmF1bHQiLCJkZWZhdWx0IiwiUmVzcG9uc2UiLCJtb2RlIiwiaXNNYXRjaElnbm9yZWQiLCJpZ25vcmVNYXRjaCIsImVzY2FwZUhUTUwiLCJpbmhlcml0Iiwib3JpZ2luYWwiLCJvYmplY3RzIiwiZW1pdHNXcmFwcGluZ1RhZ3MiLCJraW5kIiwiSFRNTFJlbmRlcmVyIiwicGFyc2VUcmVlIiwiY2xhc3NQcmVmaXgiLCJ3YWxrIiwiYWRkVGV4dCIsIm9wZW5Ob2RlIiwiY2xhc3NOYW1lIiwic3VibGFuZ3VhZ2UiLCJzcGFuIiwiY2xvc2VOb2RlIiwiVG9rZW5UcmVlIiwicm9vdE5vZGUiLCJjaGlsZHJlbiIsImNsb3NlQWxsTm9kZXMiLCJidWlsZGVyIiwiX3dhbGsiLCJjaGlsZCIsIl9jb2xsYXBzZSIsImV2ZXJ5IiwiZWwiLCJUb2tlblRyZWVFbWl0dGVyIiwiYWRkS2V5d29yZCIsImFkZFN1Ymxhbmd1YWdlIiwidG9IVE1MIiwiZmluYWxpemUiLCJyZSIsIkJBQ0tSRUZfUkUiLCJJREVOVF9SRSIsIlVOREVSU0NPUkVfSURFTlRfUkUiLCJOVU1CRVJfUkUiLCJDX05VTUJFUl9SRSIsIkJJTkFSWV9OVU1CRVJfUkUiLCJCQUNLU0xBU0hfRVNDQVBFIiwiYmVnaW4iLCJyZWxldmFuY2UiLCJBUE9TX1NUUklOR19NT0RFIiwiaWxsZWdhbCIsImNvbnRhaW5zIiwiUVVPVEVfU1RSSU5HX01PREUiLCJQSFJBU0FMX1dPUkRTX01PREUiLCJDT01NRU5UIiwibW9kZU9wdGlvbnMiLCJDX0xJTkVfQ09NTUVOVF9NT0RFIiwiQ19CTE9DS19DT01NRU5UX01PREUiLCJIQVNIX0NPTU1FTlRfTU9ERSIsIk5VTUJFUl9NT0RFIiwiQ19OVU1CRVJfTU9ERSIsIkJJTkFSWV9OVU1CRVJfTU9ERSIsIkNTU19OVU1CRVJfTU9ERSIsIlJFR0VYUF9NT0RFIiwiVElUTEVfTU9ERSIsIlVOREVSU0NPUkVfVElUTEVfTU9ERSIsIk1FVEhPRF9HVUFSRCIsIk1PREVTIiwiTUFUQ0hfTk9USElOR19SRSIsIlJFX1NUQVJURVJTX1JFIiwiU0hFQkFORyIsIm9wdHMiLCJiZWdpblNoZWJhbmciLCJiaW5hcnkiLCJyZXNwIiwiRU5EX1NBTUVfQVNfQkVHSU4iLCJhc3NpZ24iLCJfYmVnaW5NYXRjaCIsInNraXBJZmhhc1ByZWNlZGluZ0RvdCIsInJlc3BvbnNlIiwiYmVnaW5LZXl3b3JkcyIsIl9fYmVmb3JlQmVnaW4iLCJrZXl3b3JkcyIsImNvbXBpbGVJbGxlZ2FsIiwiX3BhcmVudCIsImVpdGhlciIsImNvbXBpbGVNYXRjaCIsImNvbXBpbGVSZWxldmFuY2UiLCJDT01NT05fS0VZV09SRFMiLCJERUZBVUxUX0tFWVdPUkRfQ0xBU1NOQU1FIiwiY29tcGlsZUtleXdvcmRzIiwicmF3S2V5d29yZHMiLCJjYXNlSW5zZW5zaXRpdmUiLCJjb21waWxlZEtleXdvcmRzIiwiY29tcGlsZUxpc3QiLCJrZXl3b3JkTGlzdCIsImtleXdvcmQiLCJwYWlyIiwic2NvcmVGb3JLZXl3b3JkIiwicHJvdmlkZWRTY29yZSIsImNvbW1vbktleXdvcmQiLCJjb21waWxlTGFuZ3VhZ2UiLCJsYW5ndWFnZSIsInBsdWdpbnMiLCJsYW5nUmUiLCJnbG9iYWwiLCJjYXNlX2luc2Vuc2l0aXZlIiwiTXVsdGlSZWdleCIsIm1hdGNoSW5kZXhlcyIsInJlZ2V4ZXMiLCJtYXRjaEF0IiwiYWRkUnVsZSIsImNvdW50TWF0Y2hHcm91cHMiLCJjb21waWxlIiwidGVybWluYXRvcnMiLCJtYXRjaGVyUmUiLCJyZWdleHBzIiwic2VwYXJhdG9yIiwibnVtQ2FwdHVyZXMiLCJyZWdleCIsInN1YnN0cmluZyIsImxhc3RJbmRleCIsInMiLCJmaW5kSW5kZXgiLCJtYXRjaERhdGEiLCJSZXN1bWFibGVNdWx0aVJlZ2V4IiwicnVsZXMiLCJtdWx0aVJlZ2V4ZXMiLCJyZWdleEluZGV4IiwiZ2V0TWF0Y2hlciIsIm1hdGNoZXIiLCJyZXN1bWluZ1NjYW5BdFNhbWVQb3NpdGlvbiIsImNvbnNpZGVyQWxsIiwibTIiLCJjb21waWxlckV4dGVuc2lvbnMiLCJjbGFzc05hbWVBbGlhc2VzIiwiY29tcGlsZU1vZGUiLCJjbW9kZSIsImlzQ29tcGlsZWQiLCJrZXl3b3JkUGF0dGVybiIsIiRwYXR0ZXJuIiwibGV4ZW1lcyIsImtleXdvcmRQYXR0ZXJuUmUiLCJiZWdpblJlIiwiZW5kU2FtZUFzQmVnaW4iLCJlbmRzV2l0aFBhcmVudCIsImVuZFJlIiwidGVybWluYXRvckVuZCIsImlsbGVnYWxSZSIsImV4cGFuZE9yQ2xvbmVNb2RlIiwidmFyaWFudHMiLCJjYWNoZWRWYXJpYW50cyIsInZhcmlhbnQiLCJkZXBlbmRlbmN5T25QYXJlbnQiLCJzdGFydHMiLCJidWlsZE1vZGVSZWdleCIsIm1tIiwidGVybSIsInJ1bGUiLCJCdWlsZFZ1ZVBsdWdpbiIsImhsanMiLCJDb21wb25lbnQiLCJwcm9wcyIsImRldGVjdGVkTGFuZ3VhZ2UiLCJ1bmtub3duTGFuZ3VhZ2UiLCJjb21wdXRlZCIsImhpZ2hsaWdodGVkIiwiYXV0b0RldGVjdCIsImdldExhbmd1YWdlIiwiaGlnaGxpZ2h0QXV0byIsImhpZ2hsaWdodCIsImlnbm9yZUlsbGVnYWxzIiwiaGFzVmFsdWVPckVtcHR5QXR0cmlidXRlIiwiYXV0b2RldGVjdCIsInJlbmRlciIsImNsYXNzIiwiZG9tUHJvcHMiLCJWdWVQbHVnaW4iLCJpbnN0YWxsIiwiVnVlIiwiY29tcG9uZW50IiwibWVyZ2VIVE1MUGx1Z2luIiwib3JpZ2luYWxTdHJlYW0iLCJub2RlU3RyZWFtIiwicmVzdWx0Tm9kZSIsIm1lcmdlU3RyZWFtcyIsInByb2Nlc3NlZCIsIm5vZGVTdGFjayIsInNlbGVjdFN0cmVhbSIsImV2ZW50Iiwib3BlbiIsImF0dHJpYnV0ZVN0cmluZyIsImNsb3NlIiwic3RyZWFtIiwicmV2ZXJzZSIsIl9ub2RlU3RyZWFtIiwibmV4dFNpYmxpbmciLCJub2RlVmFsdWUiLCJzZWVuRGVwcmVjYXRpb25zIiwiZGVwcmVjYXRlZCIsImVzY2FwZSQxIiwiaW5oZXJpdCQxIiwiTk9fTUFUQ0giLCJsYW5ndWFnZXMiLCJhbGlhc2VzIiwiU0FGRV9NT0RFIiwiZml4TWFya3VwUmUiLCJMQU5HVUFHRV9OT1RfRk9VTkQiLCJQTEFJTlRFWFRfTEFOR1VBR0UiLCJkaXNhYmxlQXV0b2RldGVjdCIsIm5vSGlnaGxpZ2h0UmUiLCJsYW5ndWFnZURldGVjdFJlIiwidGFiUmVwbGFjZSIsInVzZUJSIiwiX19lbWl0dGVyIiwic2hvdWxkTm90SGlnaGxpZ2h0IiwibGFuZ3VhZ2VOYW1lIiwiY29kZU9ybGFuZ3VhZ2VOYW1lIiwib3B0aW9uc09yQ29kZSIsImNvbnRpbnVhdGlvbiIsImZpcmUiLCJfaGlnaGxpZ2h0IiwiY29kZVRvSGlnaGxpZ2h0Iiwia2V5d29yZERhdGEiLCJtYXRjaFRleHQiLCJwcm9jZXNzQnVmZmVyIiwic3ViTGFuZ3VhZ2UiLCJwcm9jZXNzU3ViTGFuZ3VhZ2UiLCJtb2RlQnVmZmVyIiwiY29udGludWF0aW9ucyIsInByb2Nlc3NLZXl3b3JkcyIsImtleXdvcmRSZWxldmFuY2UiLCJzdGFydHNXaXRoIiwiY3NzQ2xhc3MiLCJzdGFydE5ld01vZGUiLCJlbmRPZk1vZGUiLCJtYXRjaFBsdXNSZW1haW5kZXIiLCJtYXRjaGVkIiwibGV4ZW1lIiwiZW5kc1BhcmVudCIsImRvSWdub3JlIiwicmVzdW1lU2NhbkF0U2FtZVBvc2l0aW9uIiwiZG9CZWdpbk1hdGNoIiwibmV3TW9kZSIsImJlZm9yZUNhbGxiYWNrcyIsImNiIiwic2tpcCIsImV4Y2x1ZGVCZWdpbiIsInJldHVybkJlZ2luIiwiZG9FbmRNYXRjaCIsImVuZE1vZGUiLCJvcmlnaW4iLCJyZXR1cm5FbmQiLCJleGNsdWRlRW5kIiwibGFzdE1hdGNoIiwicHJvY2Vzc0xleGVtZSIsInRleHRCZWZvcmVNYXRjaCIsImJhZFJ1bGUiLCJpdGVyYXRpb25zIiwibWQiLCJwcm9jZXNzQ29udGludWF0aW9ucyIsImN1cnJlbnQiLCJwcm9jZXNzZWRDb3VudCIsImlsbGVnYWxCeSIsInNvZmFyIiwiZXJyb3JSYWlzZWQiLCJsYW5ndWFnZVN1YnNldCIsInBsYWludGV4dCIsImp1c3RUZXh0SGlnaGxpZ2h0UmVzdWx0IiwicmVzdWx0cyIsImF1dG9EZXRlY3Rpb24iLCJzb3J0ZWQiLCJzb3J0Iiwic3VwZXJzZXRPZiIsImJlc3QiLCJzZWNvbmRCZXN0Iiwic2Vjb25kX2Jlc3QiLCJiclBsdWdpbiIsIlRBQl9SRVBMQUNFX1JFIiwidGFiUmVwbGFjZVBsdWdpbiIsImhpZ2hsaWdodEVsZW1lbnQiLCJibG9ja0xhbmd1YWdlIiwiYmxvY2siLCJjbGFzc2VzIiwiZmluZCIsIl9jbGFzcyIsInVwZGF0ZUNsYXNzTmFtZSIsImN1cnJlbnRMYW5nIiwicmVzdWx0TGFuZyIsImNsYXNzTGlzdCIsInJlbGF2YW5jZSIsImluaXRIaWdobGlnaHRpbmciLCJjYWxsZWQiLCJxdWVyeVNlbGVjdG9yQWxsIiwid2FudHNIaWdobGlnaHQiLCJoaWdobGlnaHRBbGwiLCJyZWFkeVN0YXRlIiwicmVnaXN0ZXJBbGlhc2VzIiwiYWxpYXNMaXN0IiwibGFuZyIsInBsdWdpbiIsImJvb3QiLCJmaXhNYXJrdXAiLCJkZXByZWNhdGVGaXhNYXJrdXAiLCJoaWdobGlnaHRCbG9jayIsImRlcHJlY2F0ZUhpZ2hsaWdodEJsb2NrIiwiY29uZmlndXJlIiwidXNlck9wdGlvbnMiLCJpbml0SGlnaGxpZ2h0aW5nT25Mb2FkIiwicmVnaXN0ZXJMYW5ndWFnZSIsImxhbmd1YWdlRGVmaW5pdGlvbiIsImVycm9yJDEiLCJyYXdEZWZpbml0aW9uIiwidW5yZWdpc3Rlckxhbmd1YWdlIiwibGlzdExhbmd1YWdlcyIsInJlcXVpcmVMYW5ndWFnZSIsImFkZFBsdWdpbiIsInVwZ3JhZGVQbHVnaW5BUEkiLCJ2dWVQbHVnaW4iLCJkZWJ1Z01vZGUiLCJzYWZlTW9kZSIsInZlcnNpb25TdHJpbmciLCJITEpTIiwiYmFzaCIsIlZBUiIsIkJSQUNFRF9WQVIiLCJTVUJTVCIsIkhFUkVfRE9DIiwiUVVPVEVfU1RSSU5HIiwiQVJJVEhNRVRJQyIsIktOT1dOX1NIRUJBTkciLCJGVU5DVElPTiIsImxpdGVyYWwiLCJidWlsdF9pbiIsImh0dHAiLCJWRVJTSU9OIiwiSEVBREVSIiwiSEVBREVSU19BTkRfQk9EWSIsIktFWVdPUkRTIiwiTElURVJBTFMiLCJCVUlMVF9JTlMiLCJsb29rYWhlYWQiLCJqYXZhc2NyaXB0IiwiSURFTlRfUkUkMSIsIkZSQUdNRU5UIiwiWE1MX1RBRyIsImlzVHJ1bHlPcGVuaW5nVGFnIiwiYWZ0ZXJNYXRjaEluZGV4IiwibmV4dENoYXIiLCJhZnRlciIsImhhc0Nsb3NpbmdUYWciLCJLRVlXT1JEUyQxIiwiZGVjaW1hbERpZ2l0cyIsImZyYWMiLCJkZWNpbWFsSW50ZWdlciIsIk5VTUJFUiIsIkhUTUxfVEVNUExBVEUiLCJDU1NfVEVNUExBVEUiLCJURU1QTEFURV9TVFJJTkciLCJTVUJTVF9JTlRFUk5BTFMiLCJTVUJTVF9BTkRfQ09NTUVOVFMiLCJQQVJBTVNfQ09OVEFJTlMiLCJQQVJBTVMiLCJsYWJlbCIsImpzb24iLCJBTExPV0VEX0NPTU1FTlRTIiwiVFlQRVMiLCJWQUxVRV9DT05UQUlORVIiLCJPQkpFQ1QiLCJBUlJBWSIsInBvd2Vyc2hlbGwiLCJCQUNLVElDS19FU0NBUEUiLCJBUE9TX1NUUklORyIsIlBTX0NPTU1FTlQiLCJDTURMRVRTIiwiUFNfQ0xBU1MiLCJQU19GVU5DVElPTiIsIlBTX1VTSU5HIiwiUFNfQVJHVU1FTlRTIiwiUFNfTUVUSE9EUyIsIkdFTlRMRU1BTlNfU0VUIiwiUFNfVFlQRSIsIlRBR19OQU1FX1JFIiwib3B0aW9uYWwiLCJYTUxfRU5USVRJRVMiLCJYTUxfTUVUQV9LRVlXT1JEUyIsIlhNTF9NRVRBX1BBUl9LRVlXT1JEUyIsIkFQT1NfTUVUQV9TVFJJTkdfTU9ERSIsIlFVT1RFX01FVEFfU1RSSU5HX01PREUiLCJUQUdfSU5URVJOQUxTIiwieWFtbCIsIlVSSV9DSEFSQUNURVJTIiwiU1RSSU5HIiwiQ09OVEFJTkVSX1NUUklORyIsIlRJTUVTVEFNUCIsIlZBTFVFX01PREVTIiwiaXNMRSIsIm1MZW4iLCJuQnl0ZXMiLCJlTGVuIiwiZU1heCIsImVCaWFzIiwibkJpdHMiLCJkIiwiTmFOIiwicnQiLCJMTjIiLCJTTElDRSQwIiwiY3JlYXRlQ2xhc3MiLCJjdG9yIiwic3VwZXJDbGFzcyIsIkl0ZXJhYmxlIiwiaXNJdGVyYWJsZSIsIlNlcSIsIktleWVkSXRlcmFibGUiLCJpc0tleWVkIiwiS2V5ZWRTZXEiLCJJbmRleGVkSXRlcmFibGUiLCJpc0luZGV4ZWQiLCJJbmRleGVkU2VxIiwiU2V0SXRlcmFibGUiLCJpc0Fzc29jaWF0aXZlIiwiU2V0U2VxIiwibWF5YmVJdGVyYWJsZSIsIklTX0lURVJBQkxFX1NFTlRJTkVMIiwibWF5YmVLZXllZCIsIklTX0tFWUVEX1NFTlRJTkVMIiwibWF5YmVJbmRleGVkIiwiSVNfSU5ERVhFRF9TRU5USU5FTCIsIm1heWJlQXNzb2NpYXRpdmUiLCJpc09yZGVyZWQiLCJtYXliZU9yZGVyZWQiLCJJU19PUkRFUkVEX1NFTlRJTkVMIiwiS2V5ZWQiLCJJbmRleGVkIiwiREVMRVRFIiwiU0hJRlQiLCJTSVpFIiwiTUFTSyIsIk5PVF9TRVQiLCJDSEFOR0VfTEVOR1RIIiwiRElEX0FMVEVSIiwiTWFrZVJlZiIsInJlZiIsIlNldFJlZiIsIk93bmVySUQiLCJhcnJDb3B5IiwibmV3QXJyIiwiaWkiLCJlbnN1cmVTaXplIiwiaXRlciIsIl9faXRlcmF0ZSIsInJldHVyblRydWUiLCJ3cmFwSW5kZXgiLCJ1aW50MzJJbmRleCIsIndob2xlU2xpY2UiLCJyZXNvbHZlQmVnaW4iLCJyZXNvbHZlSW5kZXgiLCJyZXNvbHZlRW5kIiwiZGVmYXVsdEluZGV4IiwiSVRFUkFURV9LRVlTIiwiSVRFUkFURV9WQUxVRVMiLCJJVEVSQVRFX0VOVFJJRVMiLCJSRUFMX0lURVJBVE9SX1NZTUJPTCIsIkZBVVhfSVRFUkFUT1JfU1lNQk9MIiwiSVRFUkFUT1JfU1lNQk9MIiwiSXRlcmF0b3IiLCJpdGVyYXRvclZhbHVlIiwiayIsInYiLCJpdGVyYXRvclJlc3VsdCIsImRvbmUiLCJpdGVyYXRvckRvbmUiLCJoYXNJdGVyYXRvciIsImdldEl0ZXJhdG9yRm4iLCJpc0l0ZXJhdG9yIiwibWF5YmVJdGVyYXRvciIsImdldEl0ZXJhdG9yIiwiaXRlcmFibGUiLCJpdGVyYXRvckZuIiwiaXNBcnJheUxpa2UiLCJlbXB0eVNlcXVlbmNlIiwidG9TZXEiLCJzZXFGcm9tVmFsdWUiLCJ0b0tleWVkU2VxIiwiZnJvbUVudHJ5U2VxIiwia2V5ZWRTZXFGcm9tVmFsdWUiLCJlbnRyeVNlcSIsInRvSW5kZXhlZFNlcSIsImluZGV4ZWRTZXFGcm9tVmFsdWUiLCJ0b1NldFNlcSIsIktFWVMiLCJWQUxVRVMiLCJFTlRSSUVTIiwidG9Tb3VyY2UiLCJvZiIsImNhY2hlUmVzdWx0IiwiX2NhY2hlIiwiX19pdGVyYXRlVW5jYWNoZWQiLCJ0b0FycmF5Iiwic2VxSXRlcmF0ZSIsIl9faXRlcmF0b3IiLCJzZXFJdGVyYXRvciIsImlzU2VxIiwiRU1QVFlfU0VRIiwiRU1QVFlfUkVQRUFUIiwiRU1QVFlfUkFOR0UiLCJJU19TRVFfU0VOVElORUwiLCJBcnJheVNlcSIsIl9hcnJheSIsIk9iamVjdFNlcSIsIl9vYmplY3QiLCJfa2V5cyIsIkl0ZXJhYmxlU2VxIiwiX2l0ZXJhYmxlIiwiSXRlcmF0b3JTZXEiLCJfaXRlcmF0b3IiLCJfaXRlcmF0b3JDYWNoZSIsIm1heWJlU2VxIiwic2VxIiwibWF5YmVJbmRleGVkU2VxRnJvbVZhbHVlIiwidXNlS2V5cyIsImNhY2hlIiwibWF4SW5kZXgiLCJlbnRyeSIsIl9faXRlcmF0b3JVbmNhY2hlZCIsImZyb21KUyIsImNvbnZlcnRlciIsImZyb21KU1dpdGgiLCJmcm9tSlNEZWZhdWx0IiwicGFyZW50SlNPTiIsImlzUGxhaW5PYmoiLCJ0b0xpc3QiLCJ0b01hcCIsImlzIiwidmFsdWVBIiwidmFsdWVCIiwiZGVlcEVxdWFsIiwiX19oYXNoIiwibm90QXNzb2NpYXRpdmUiLCJmbGlwcGVkIiwiYWxsRXF1YWwiLCJiU2l6ZSIsImhhcyIsIlJlcGVhdCIsInRpbWVzIiwiX3ZhbHVlIiwiaW52YXJpYW50IiwiY29uZGl0aW9uIiwiUmFuZ2UiLCJzdGVwIiwiX3N0YXJ0IiwiX2VuZCIsIl9zdGVwIiwiY2VpbCIsIkNvbGxlY3Rpb24iLCJLZXllZENvbGxlY3Rpb24iLCJJbmRleGVkQ29sbGVjdGlvbiIsIlNldENvbGxlY3Rpb24iLCJub3RTZXRWYWx1ZSIsInNlYXJjaFZhbHVlIiwidGhpcyQwIiwib3RoZXIiLCJwb3NzaWJsZUluZGV4Iiwib2Zmc2V0VmFsdWUiLCJpbXVsIiwic21pIiwiaTMyIiwiaGFzaCIsIm8iLCJoIiwiU1RSSU5HX0hBU0hfQ0FDSEVfTUlOX1NUUkxFTiIsImNhY2hlZEhhc2hTdHJpbmciLCJoYXNoU3RyaW5nIiwiaGFzaENvZGUiLCJoYXNoSlNPYmoiLCJzdHJpbmdIYXNoQ2FjaGUiLCJTVFJJTkdfSEFTSF9DQUNIRV9TSVpFIiwiU1RSSU5HX0hBU0hfQ0FDSEVfTUFYX1NJWkUiLCJ1c2luZ1dlYWtNYXAiLCJ3ZWFrTWFwIiwiVUlEX0hBU0hfS0VZIiwiY2FuRGVmaW5lUHJvcGVydHkiLCJnZXRJRU5vZGVIYXNoIiwib2JqSGFzaFVJRCIsImlzRXh0ZW5zaWJsZSIsInVuaXF1ZUlEIiwiYXNzZXJ0Tm90SW5maW5pdGUiLCJlbXB0eU1hcCIsImlzTWFwIiwid2l0aE11dGF0aW9ucyIsIm1heWJlTWFwIiwiSVNfTUFQX1NFTlRJTkVMIiwia2V5VmFsdWVzIiwiX3Jvb3QiLCJ1cGRhdGVNYXAiLCJzZXRJbiIsImtleVBhdGgiLCJ1cGRhdGVJbiIsImRlbGV0ZUluIiwidXBkYXRlIiwidXBkYXRlciIsInVwZGF0ZWRWYWx1ZSIsInVwZGF0ZUluRGVlcE1hcCIsImZvcmNlSXRlcmF0b3IiLCJfX293bmVySUQiLCJfX2FsdGVyZWQiLCJtZXJnZSIsIm1lcmdlSW50b01hcFdpdGgiLCJtZXJnZVdpdGgiLCJtZXJnZXIiLCJtZXJnZUluIiwiaXRlcnMiLCJtZXJnZURlZXAiLCJkZWVwTWVyZ2VyIiwibWVyZ2VEZWVwV2l0aCIsImRlZXBNZXJnZXJXaXRoIiwibWVyZ2VEZWVwSW4iLCJjb21wYXJhdG9yIiwiT3JkZXJlZE1hcCIsInNvcnRGYWN0b3J5Iiwic29ydEJ5IiwibWFwcGVyIiwibXV0YWJsZSIsImFzTXV0YWJsZSIsIndhc0FsdGVyZWQiLCJfX2Vuc3VyZU93bmVyIiwiYXNJbW11dGFibGUiLCJNYXBJdGVyYXRvciIsIml0ZXJhdGUiLCJvd25lcklEIiwibWFrZU1hcCIsIkVNUFRZX01BUCIsIk1hcFByb3RvdHlwZSIsIkFycmF5TWFwTm9kZSIsIkJpdG1hcEluZGV4ZWROb2RlIiwiYml0bWFwIiwibm9kZXMiLCJIYXNoQXJyYXlNYXBOb2RlIiwiSGFzaENvbGxpc2lvbk5vZGUiLCJrZXlIYXNoIiwiVmFsdWVOb2RlIiwiX3R5cGUiLCJfcmV2ZXJzZSIsIl9zdGFjayIsIm1hcEl0ZXJhdG9yRnJhbWUiLCJtYXBJdGVyYXRvclZhbHVlIiwiX19wcmV2IiwibmV3Um9vdCIsIm5ld1NpemUiLCJkaWRDaGFuZ2VTaXplIiwiZGlkQWx0ZXIiLCJ1cGRhdGVOb2RlIiwiaXNMZWFmTm9kZSIsIm1lcmdlSW50b05vZGUiLCJuZXdOb2RlIiwiaWR4MSIsImlkeDIiLCJjcmVhdGVOb2RlcyIsInBhY2tOb2RlcyIsImV4Y2x1ZGluZyIsInBhY2tlZElJIiwicGFja2VkTm9kZXMiLCJiaXQiLCJleHBhbmROb2RlcyIsImluY2x1ZGluZyIsImV4cGFuZGVkTm9kZXMiLCJpdGVyYWJsZXMiLCJtZXJnZUludG9Db2xsZWN0aW9uV2l0aCIsIm5leHRWYWx1ZSIsImNvbGxlY3Rpb24iLCJtZXJnZUludG9NYXAiLCJrZXlQYXRoSXRlciIsImlzTm90U2V0IiwiZXhpc3RpbmdWYWx1ZSIsIm5ld1ZhbHVlIiwibmV4dEV4aXN0aW5nIiwibmV4dFVwZGF0ZWQiLCJwb3BDb3VudCIsImlkeCIsImNhbkVkaXQiLCJuZXdBcnJheSIsInNwbGljZUluIiwibmV3TGVuIiwic3BsaWNlT3V0IiwicmVtb3ZlSW4iLCJleGlzdHMiLCJNQVhfQVJSQVlfTUFQX1NJWkUiLCJpc0VkaXRhYmxlIiwibmV3RW50cmllcyIsImtleUhhc2hGcmFnIiwiTUFYX0JJVE1BUF9JTkRFWEVEX1NJWkUiLCJuZXdCaXRtYXAiLCJuZXdOb2RlcyIsIm5ld0NvdW50IiwiTUlOX0hBU0hfQVJSQVlfTUFQX1NJWkUiLCJrZXlNYXRjaCIsInN1Yk5vZGUiLCJMaXN0IiwiZW1wdHkiLCJlbXB0eUxpc3QiLCJpc0xpc3QiLCJtYWtlTGlzdCIsIlZOb2RlIiwic2V0U2l6ZSIsIm1heWJlTGlzdCIsIklTX0xJU1RfU0VOVElORUwiLCJsaXN0Tm9kZUZvciIsIl9vcmlnaW4iLCJ1cGRhdGVMaXN0IiwiaW5zZXJ0IiwiX2NhcGFjaXR5IiwiX2xldmVsIiwiX3RhaWwiLCJ2YWx1ZXMiLCJvbGRTaXplIiwic2V0TGlzdEJvdW5kcyIsIm1lcmdlSW50b0xpc3RXaXRoIiwiaXRlcmF0ZUxpc3QiLCJET05FIiwiTGlzdFByb3RvdHlwZSIsInJlbW92ZUJlZm9yZSIsImxldmVsIiwib3JpZ2luSW5kZXgiLCJuZXdDaGlsZCIsInJlbW92aW5nRmlyc3QiLCJvbGRDaGlsZCIsImVkaXRhYmxlIiwiZWRpdGFibGVWTm9kZSIsInJlbW92ZUFmdGVyIiwic2l6ZUluZGV4IiwiRU1QVFlfTElTVCIsIkVNUFRZX09SREVSRURfTUFQIiwibGVmdCIsInJpZ2h0IiwidGFpbFBvcyIsImdldFRhaWxPZmZzZXQiLCJ0YWlsIiwiaXRlcmF0ZU5vZGVPckxlYWYiLCJpdGVyYXRlTGVhZiIsIml0ZXJhdGVOb2RlIiwidG8iLCJjYXBhY2l0eSIsIm5ld1RhaWwiLCJ1cGRhdGVWTm9kZSIsIm5vZGVIYXMiLCJsb3dlck5vZGUiLCJuZXdMb3dlck5vZGUiLCJyYXdJbmRleCIsIm93bmVyIiwib2xkT3JpZ2luIiwib2xkQ2FwYWNpdHkiLCJuZXdPcmlnaW4iLCJuZXdDYXBhY2l0eSIsIm5ld0xldmVsIiwib2Zmc2V0U2hpZnQiLCJvbGRUYWlsT2Zmc2V0IiwibmV3VGFpbE9mZnNldCIsIm9sZFRhaWwiLCJiZWdpbkluZGV4IiwibWF4U2l6ZSIsImVtcHR5T3JkZXJlZE1hcCIsImlzT3JkZXJlZE1hcCIsIm1heWJlT3JkZXJlZE1hcCIsIm1ha2VPcmRlcmVkTWFwIiwib21hcCIsIl9tYXAiLCJfbGlzdCIsInVwZGF0ZU9yZGVyZWRNYXAiLCJuZXdNYXAiLCJuZXdMaXN0IiwiZmxpcCIsIlRvS2V5ZWRTZXF1ZW5jZSIsImluZGV4ZWQiLCJfaXRlciIsIl91c2VLZXlzIiwiVG9JbmRleGVkU2VxdWVuY2UiLCJUb1NldFNlcXVlbmNlIiwiRnJvbUVudHJpZXNTZXF1ZW5jZSIsImZsaXBGYWN0b3J5IiwiZmxpcFNlcXVlbmNlIiwibWFrZVNlcXVlbmNlIiwicmV2ZXJzZWRTZXF1ZW5jZSIsImNhY2hlUmVzdWx0VGhyb3VnaCIsIm1hcEZhY3RvcnkiLCJtYXBwZWRTZXF1ZW5jZSIsInJldmVyc2VGYWN0b3J5IiwiZmlsdGVyRmFjdG9yeSIsInByZWRpY2F0ZSIsImZpbHRlclNlcXVlbmNlIiwiY291bnRCeUZhY3RvcnkiLCJncm91cGVyIiwiZ3JvdXBzIiwiZ3JvdXBCeUZhY3RvcnkiLCJpc0tleWVkSXRlciIsImNvZXJjZSIsIml0ZXJhYmxlQ2xhc3MiLCJyZWlmeSIsInNsaWNlRmFjdG9yeSIsIm9yaWdpbmFsU2l6ZSIsInJlc29sdmVkQmVnaW4iLCJyZXNvbHZlZEVuZCIsInNsaWNlU2l6ZSIsInJlc29sdmVkU2l6ZSIsInNsaWNlU2VxIiwic2tpcHBlZCIsImlzU2tpcHBpbmciLCJ0YWtlV2hpbGVGYWN0b3J5IiwidGFrZVNlcXVlbmNlIiwiaXRlcmF0aW5nIiwic2tpcFdoaWxlRmFjdG9yeSIsInNraXBTZXF1ZW5jZSIsInNraXBwaW5nIiwiY29uY2F0RmFjdG9yeSIsImlzS2V5ZWRJdGVyYWJsZSIsInNpbmdsZXRvbiIsImNvbmNhdFNlcSIsImZsYXR0ZW4iLCJzdW0iLCJmbGF0dGVuRmFjdG9yeSIsImRlcHRoIiwiZmxhdFNlcXVlbmNlIiwic3RvcHBlZCIsImZsYXREZWVwIiwiY3VycmVudERlcHRoIiwiZmxhdE1hcEZhY3RvcnkiLCJpbnRlcnBvc2VGYWN0b3J5IiwiaW50ZXJwb3NlZFNlcXVlbmNlIiwiZGVmYXVsdENvbXBhcmF0b3IiLCJtYXhGYWN0b3J5IiwibWF4Q29tcGFyZSIsImNvbXAiLCJ6aXBXaXRoRmFjdG9yeSIsImtleUl0ZXIiLCJ6aXBwZXIiLCJ6aXBTZXF1ZW5jZSIsIml0ZXJhdG9ycyIsImlzRG9uZSIsInN0ZXBzIiwic29tZSIsInZhbGlkYXRlRW50cnkiLCJyZXNvbHZlU2l6ZSIsIlJlY29yZCIsImRlZmF1bHRWYWx1ZXMiLCJoYXNJbml0aWFsaXplZCIsIlJlY29yZFR5cGUiLCJzZXRQcm9wcyIsIlJlY29yZFR5cGVQcm90b3R5cGUiLCJfbmFtZSIsIl9kZWZhdWx0VmFsdWVzIiwiUmVjb3JkUHJvdG90eXBlIiwidmFsdWVTZXEiLCJpbmRleGVkSXRlcmFibGUiLCJyZWNvcmROYW1lIiwiZGVmYXVsdFZhbCIsIl9lbXB0eSIsIm1ha2VSZWNvcmQiLCJsaWtlUmVjb3JkIiwicmVjb3JkIiwibmFtZXMiLCJzZXRQcm9wIiwiZW1wdHlTZXQiLCJpc1NldCIsIm1heWJlU2V0IiwiSVNfU0VUX1NFTlRJTkVMIiwiZnJvbUtleXMiLCJrZXlTZXEiLCJ1cGRhdGVTZXQiLCJ1bmlvbiIsIm9yaWdpbmFsU2V0IiwiT3JkZXJlZFNldCIsIl9fbWFrZSIsIkVNUFRZX1NFVCIsIlNldFByb3RvdHlwZSIsIl9fZW1wdHkiLCJtYWtlU2V0IiwiZW1wdHlPcmRlcmVkU2V0IiwiaXNPcmRlcmVkU2V0IiwibWF5YmVPcmRlcmVkU2V0IiwiRU1QVFlfT1JERVJFRF9TRVQiLCJPcmRlcmVkU2V0UHJvdG90eXBlIiwibWFrZU9yZGVyZWRTZXQiLCJTdGFjayIsImVtcHR5U3RhY2siLCJpc1N0YWNrIiwidW5zaGlmdEFsbCIsIm1heWJlU3RhY2siLCJJU19TVEFDS19TRU5USU5FTCIsImhlYWQiLCJfaGVhZCIsInBlZWsiLCJtYWtlU3RhY2siLCJwdXNoQWxsIiwiRU1QVFlfU1RBQ0siLCJTdGFja1Byb3RvdHlwZSIsIm1peGluIiwibWV0aG9kcyIsImtleUNvcGllciIsInRvSlMiLCJfX3RvSlMiLCJ0b09iamVjdCIsInRvT3JkZXJlZE1hcCIsInRvT3JkZXJlZFNldCIsInRvU2V0IiwidG9TdGFjayIsIl9fdG9TdHJpbmdNYXBwZXIiLCJyZXR1cm5WYWx1ZSIsImZpbmRFbnRyeSIsInNpZGVFZmZlY3QiLCJqb2luZWQiLCJpc0ZpcnN0IiwicmVkdWNlciIsImluaXRpYWxSZWR1Y3Rpb24iLCJyZWR1Y3Rpb24iLCJ1c2VGaXJzdCIsInJlZHVjZVJpZ2h0IiwicmV2ZXJzZWQiLCJub3QiLCJidXRMYXN0IiwiaXNFbXB0eSIsImNvdW50QnkiLCJlbnRyaWVzU2VxdWVuY2UiLCJlbnRyeU1hcHBlciIsImZpbHRlck5vdCIsImZpbmRLZXkiLCJmaW5kTGFzdCIsImZpbmRMYXN0RW50cnkiLCJmaW5kTGFzdEtleSIsImZsYXRNYXAiLCJzZWFyY2hLZXkiLCJnZXRJbiIsInNlYXJjaEtleVBhdGgiLCJuZXN0ZWQiLCJncm91cEJ5IiwiaGFzSW4iLCJpc1N1YnNldCIsImlzU3VwZXJzZXQiLCJrZXlPZiIsImtleU1hcHBlciIsImxhc3RLZXlPZiIsIm1heEJ5IiwibmVnIiwiZGVmYXVsdE5lZ0NvbXBhcmF0b3IiLCJtaW5CeSIsInJlc3QiLCJhbW91bnQiLCJza2lwTGFzdCIsInNraXBXaGlsZSIsInNraXBVbnRpbCIsInRha2UiLCJ0YWtlTGFzdCIsInRha2VXaGlsZSIsInRha2VVbnRpbCIsImhhc2hJdGVyYWJsZSIsIkl0ZXJhYmxlUHJvdG90eXBlIiwicXVvdGVTdHJpbmciLCJjaGFpbiIsIm1hcEVudHJpZXMiLCJtYXBLZXlzIiwiS2V5ZWRJdGVyYWJsZVByb3RvdHlwZSIsImRlZmF1bHRaaXBwZXIiLCJvcmRlcmVkIiwia2V5ZWQiLCJtdXJtdXJIYXNoT2ZTaXplIiwiaGFzaE1lcmdlIiwicmVtb3ZlTnVtIiwibnVtQXJncyIsInNwbGljZWQiLCJmaW5kTGFzdEluZGV4IiwiaW50ZXJwb3NlIiwiaW50ZXJsZWF2ZSIsInppcHBlZCIsImludGVybGVhdmVkIiwiemlwIiwiemlwV2l0aCIsImluaGVyaXRzIiwic3VwZXJDdG9yIiwic3VwZXJfIiwiVGVtcEN0b3IiLCJmaWxlbmFtZSIsIm1pbWUiLCJib20iLCJibG9iIiwiQmxvYiIsIm1zU2F2ZUJsb2IiLCJibG9iVVJMIiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwid2Via2l0VVJMIiwidGVtcExpbmsiLCJkaXNwbGF5IiwiaHJlZiIsImRvd25sb2FkIiwiY2xpY2siLCJzZXRUaW1lb3V0IiwicmV2b2tlT2JqZWN0VVJMIiwiTkFOIiwic3ltYm9sVGFnIiwicmVUcmltIiwicmVJc0JhZEhleCIsInJlSXNCaW5hcnkiLCJyZUlzT2N0YWwiLCJmcmVlUGFyc2VJbnQiLCJmcmVlR2xvYmFsIiwiZnJlZVNlbGYiLCJzZWxmIiwib2JqZWN0VG9TdHJpbmciLCJuYXRpdmVNYXgiLCJuYXRpdmVNaW4iLCJub3ciLCJpc09iamVjdCIsInRvTnVtYmVyIiwiaXNTeW1ib2wiLCJpc09iamVjdExpa2UiLCJpc0JpbmFyeSIsImRlYm91bmNlIiwid2FpdCIsImxhc3RBcmdzIiwibGFzdFRoaXMiLCJtYXhXYWl0IiwidGltZXJJZCIsImxhc3RDYWxsVGltZSIsImxhc3RJbnZva2VUaW1lIiwibGVhZGluZyIsIm1heGluZyIsInRyYWlsaW5nIiwiaW52b2tlRnVuYyIsInRpbWUiLCJzaG91bGRJbnZva2UiLCJ0aW1lU2luY2VMYXN0Q2FsbCIsInRpbWVyRXhwaXJlZCIsInRyYWlsaW5nRWRnZSIsInJlbWFpbmluZ1dhaXQiLCJkZWJvdW5jZWQiLCJpc0ludm9raW5nIiwibGVhZGluZ0VkZ2UiLCJjYW5jZWwiLCJjbGVhclRpbWVvdXQiLCJmbHVzaCIsImdldE5hdGl2ZSIsImhhc2hDbGVhciIsImhhc2hEZWxldGUiLCJoYXNoR2V0IiwiaGFzaEhhcyIsImhhc2hTZXQiLCJIYXNoIiwiYmFzZUNyZWF0ZSIsImJhc2VMb2Rhc2giLCJMYXp5V3JhcHBlciIsIl9fd3JhcHBlZF9fIiwiX19hY3Rpb25zX18iLCJfX2Rpcl9fIiwiX19maWx0ZXJlZF9fIiwiX19pdGVyYXRlZXNfXyIsIl9fdGFrZUNvdW50X18iLCJfX3ZpZXdzX18iLCJsaXN0Q2FjaGVDbGVhciIsImxpc3RDYWNoZURlbGV0ZSIsImxpc3RDYWNoZUdldCIsImxpc3RDYWNoZUhhcyIsImxpc3RDYWNoZVNldCIsIkxpc3RDYWNoZSIsIkxvZGFzaFdyYXBwZXIiLCJjaGFpbkFsbCIsIl9fY2hhaW5fXyIsIl9faW5kZXhfXyIsIl9fdmFsdWVzX18iLCJtYXBDYWNoZUNsZWFyIiwibWFwQ2FjaGVEZWxldGUiLCJtYXBDYWNoZUdldCIsIm1hcENhY2hlSGFzIiwibWFwQ2FjaGVTZXQiLCJNYXBDYWNoZSIsInNldENhY2hlQWRkIiwic2V0Q2FjaGVIYXMiLCJTZXRDYWNoZSIsIl9fZGF0YV9fIiwic3RhY2tDbGVhciIsInN0YWNrRGVsZXRlIiwic3RhY2tHZXQiLCJzdGFja0hhcyIsInN0YWNrU2V0IiwiYXJyYXlFYWNoIiwiaXRlcmF0ZWUiLCJhcnJheUZpbHRlciIsInJlc0luZGV4IiwiYmFzZUluZGV4T2YiLCJhcnJheUluY2x1ZGVzIiwiYmFzZVRpbWVzIiwiaXNBcmd1bWVudHMiLCJpc0luZGV4IiwiaXNUeXBlZEFycmF5IiwiYXJyYXlMaWtlS2V5cyIsImluaGVyaXRlZCIsImlzQXJyIiwiaXNBcmciLCJpc0J1ZmYiLCJpc1R5cGUiLCJza2lwSW5kZXhlcyIsImFycmF5TWFwIiwiYXJyYXlSZWR1Y2UiLCJhY2N1bXVsYXRvciIsImluaXRBY2N1bSIsImFycmF5U29tZSIsImFzY2lpVG9BcnJheSIsInJlQXNjaWlXb3JkIiwiYXNjaWlXb3JkcyIsImJhc2VBc3NpZ25WYWx1ZSIsImVxIiwiYXNzaWduTWVyZ2VWYWx1ZSIsImFzc2lnblZhbHVlIiwib2JqVmFsdWUiLCJhc3NvY0luZGV4T2YiLCJjb3B5T2JqZWN0IiwiYmFzZUFzc2lnbiIsImtleXNJbiIsImJhc2VBc3NpZ25JbiIsImNsb25lQnVmZmVyIiwiY29weUFycmF5IiwiY29weVN5bWJvbHMiLCJjb3B5U3ltYm9sc0luIiwiZ2V0QWxsS2V5cyIsImdldEFsbEtleXNJbiIsImdldFRhZyIsImluaXRDbG9uZUFycmF5IiwiaW5pdENsb25lQnlUYWciLCJpbml0Q2xvbmVPYmplY3QiLCJhcmdzVGFnIiwiZnVuY1RhZyIsIm9iamVjdFRhZyIsImNsb25lYWJsZVRhZ3MiLCJiYXNlQ2xvbmUiLCJiaXRtYXNrIiwiY3VzdG9taXplciIsImlzRGVlcCIsImlzRmxhdCIsImlzRnVsbCIsImlzRnVuYyIsInN0YWNrZWQiLCJzdWJWYWx1ZSIsIm9iamVjdENyZWF0ZSIsImJhc2VGb3JPd24iLCJiYXNlRWFjaCIsImNyZWF0ZUJhc2VFYWNoIiwiYmFzZUZpbmRJbmRleCIsImZyb21JbmRleCIsImZyb21SaWdodCIsImlzRmxhdHRlbmFibGUiLCJiYXNlRmxhdHRlbiIsImlzU3RyaWN0IiwiYmFzZUZvciIsImNyZWF0ZUJhc2VGb3IiLCJjYXN0UGF0aCIsInRvS2V5IiwiYmFzZUdldCIsImJhc2VHZXRBbGxLZXlzIiwia2V5c0Z1bmMiLCJzeW1ib2xzRnVuYyIsImdldFJhd1RhZyIsInN5bVRvU3RyaW5nVGFnIiwidG9TdHJpbmdUYWciLCJiYXNlR2V0VGFnIiwiYmFzZUhhcyIsImJhc2VIYXNJbiIsImJhc2VJc05hTiIsInN0cmljdEluZGV4T2YiLCJiYXNlSXNBcmd1bWVudHMiLCJiYXNlSXNFcXVhbERlZXAiLCJiYXNlSXNFcXVhbCIsImVxdWFsQXJyYXlzIiwiZXF1YWxCeVRhZyIsImVxdWFsT2JqZWN0cyIsImFycmF5VGFnIiwiZXF1YWxGdW5jIiwib2JqSXNBcnIiLCJvdGhJc0FyciIsIm9ialRhZyIsIm90aFRhZyIsIm9iaklzT2JqIiwib3RoSXNPYmoiLCJpc1NhbWVUYWciLCJvYmpJc1dyYXBwZWQiLCJvdGhJc1dyYXBwZWQiLCJvYmpVbndyYXBwZWQiLCJvdGhVbndyYXBwZWQiLCJiYXNlSXNNYXAiLCJiYXNlSXNNYXRjaCIsIm5vQ3VzdG9taXplciIsInNyY1ZhbHVlIiwiQ09NUEFSRV9QQVJUSUFMX0ZMQUciLCJpc0Z1bmN0aW9uIiwiaXNNYXNrZWQiLCJyZUlzSG9zdEN0b3IiLCJmdW5jUHJvdG8iLCJvYmplY3RQcm90byIsImZ1bmNUb1N0cmluZyIsInJlSXNOYXRpdmUiLCJiYXNlSXNOYXRpdmUiLCJiYXNlSXNTZXQiLCJpc0xlbmd0aCIsInR5cGVkQXJyYXlUYWdzIiwiYmFzZUlzVHlwZWRBcnJheSIsImJhc2VNYXRjaGVzIiwiYmFzZU1hdGNoZXNQcm9wZXJ0eSIsImlkZW50aXR5IiwiYmFzZUl0ZXJhdGVlIiwiaXNQcm90b3R5cGUiLCJuYXRpdmVLZXlzIiwiYmFzZUtleXMiLCJuYXRpdmVLZXlzSW4iLCJiYXNlS2V5c0luIiwiaXNQcm90byIsImdldE1hdGNoRGF0YSIsIm1hdGNoZXNTdHJpY3RDb21wYXJhYmxlIiwiaXNLZXkiLCJpc1N0cmljdENvbXBhcmFibGUiLCJiYXNlTWVyZ2VEZWVwIiwic2FmZUdldCIsImJhc2VNZXJnZSIsInNyY0luZGV4IiwiY2xvbmVUeXBlZEFycmF5IiwiaXNBcnJheUxpa2VPYmplY3QiLCJpc1BsYWluT2JqZWN0IiwidG9QbGFpbk9iamVjdCIsIm1lcmdlRnVuYyIsImlzQ29tbW9uIiwiaXNUeXBlZCIsImJhc2VQcm9wZXJ0eSIsImJhc2VQcm9wZXJ0eURlZXAiLCJiYXNlUHJvcGVydHlPZiIsImJhc2VSZWR1Y2UiLCJlYWNoRnVuYyIsIm92ZXJSZXN0Iiwic2V0VG9TdHJpbmciLCJiYXNlUmVzdCIsImJhc2VTZXQiLCJtZXRhTWFwIiwiYmFzZVNldERhdGEiLCJjb25zdGFudCIsImJhc2VTZXRUb1N0cmluZyIsImJhc2VTbGljZSIsImJhc2VTb21lIiwic3ltYm9sUHJvdG8iLCJzeW1ib2xUb1N0cmluZyIsImJhc2VUb1N0cmluZyIsInRyaW1tZWRFbmRJbmRleCIsInJlVHJpbVN0YXJ0IiwiYmFzZVRyaW0iLCJiYXNlVW5hcnkiLCJiYXNlVW5zZXQiLCJiYXNlWmlwT2JqZWN0IiwiYXNzaWduRnVuYyIsInZhbHNMZW5ndGgiLCJjYWNoZUhhcyIsImNhc3RTbGljZSIsImNsb25lQXJyYXlCdWZmZXIiLCJhcnJheUJ1ZmZlciIsImZyZWVFeHBvcnRzIiwiZnJlZU1vZHVsZSIsImNsb25lRGF0YVZpZXciLCJkYXRhVmlldyIsInJlRmxhZ3MiLCJjbG9uZVJlZ0V4cCIsInJlZ2V4cCIsInN5bWJvbFZhbHVlT2YiLCJjbG9uZVN5bWJvbCIsInR5cGVkQXJyYXkiLCJjb21wb3NlQXJncyIsInBhcnRpYWxzIiwiaG9sZGVycyIsImlzQ3VycmllZCIsImFyZ3NJbmRleCIsImFyZ3NMZW5ndGgiLCJob2xkZXJzTGVuZ3RoIiwibGVmdEluZGV4IiwibGVmdExlbmd0aCIsInJhbmdlTGVuZ3RoIiwiaXNVbmN1cnJpZWQiLCJjb21wb3NlQXJnc1JpZ2h0IiwiaG9sZGVyc0luZGV4IiwicmlnaHRJbmRleCIsInJpZ2h0TGVuZ3RoIiwiaXNOZXciLCJnZXRTeW1ib2xzIiwiZ2V0U3ltYm9sc0luIiwiY29yZUpzRGF0YSIsImNvdW50SG9sZGVycyIsInBsYWNlaG9sZGVyIiwiaXNJdGVyYXRlZUNhbGwiLCJjcmVhdGVBc3NpZ25lciIsImFzc2lnbmVyIiwic291cmNlcyIsImd1YXJkIiwiY3JlYXRlQ3RvciIsImNyZWF0ZUJpbmQiLCJpc0JpbmQiLCJDdG9yIiwid3JhcHBlciIsImhhc1VuaWNvZGUiLCJzdHJpbmdUb0FycmF5IiwiY3JlYXRlQ2FzZUZpcnN0IiwibWV0aG9kTmFtZSIsInN0clN5bWJvbHMiLCJjaHIiLCJkZWJ1cnIiLCJ3b3JkcyIsInJlQXBvcyIsImNyZWF0ZUNvbXBvdW5kZXIiLCJjYWxsYmFjayIsInRoaXNCaW5kaW5nIiwiY3JlYXRlSHlicmlkIiwiY3JlYXRlUmVjdXJyeSIsImdldEhvbGRlciIsInJlcGxhY2VIb2xkZXJzIiwiY3JlYXRlQ3VycnkiLCJhcml0eSIsImNyZWF0ZUZpbmQiLCJmaW5kSW5kZXhGdW5jIiwicmVvcmRlciIsInBhcnRpYWxzUmlnaHQiLCJob2xkZXJzUmlnaHQiLCJhcmdQb3MiLCJhcnkiLCJpc0FyeSIsImlzQmluZEtleSIsImlzRmxpcCIsImhvbGRlcnNDb3VudCIsIm5ld0hvbGRlcnMiLCJjcmVhdGVQYXJ0aWFsIiwiaXNMYXppYWJsZSIsInNldFdyYXBUb1N0cmluZyIsIndyYXBGdW5jIiwiaXNDdXJyeSIsIm5ld0RhdGEiLCJnZXREYXRhIiwibWVyZ2VEYXRhIiwidG9JbnRlZ2VyIiwiY3JlYXRlV3JhcCIsImN1c3RvbU9taXRDbG9uZSIsImRlYnVyckxldHRlciIsImlzUGFydGlhbCIsIm90aExlbmd0aCIsImFyclN0YWNrZWQiLCJvdGhTdGFja2VkIiwic2VlbiIsImFyclZhbHVlIiwib3RoVmFsdWUiLCJjb21wYXJlZCIsIm90aEluZGV4IiwibWFwVG9BcnJheSIsInNldFRvQXJyYXkiLCJjb252ZXJ0Iiwib2JqUHJvcHMiLCJvYmpMZW5ndGgiLCJvYmpTdGFja2VkIiwic2tpcEN0b3IiLCJvYmpDdG9yIiwib3RoQ3RvciIsImZsYXRSZXN0Iiwibm9vcCIsInJlYWxOYW1lcyIsImdldEZ1bmNOYW1lIiwib3RoZXJGdW5jIiwiaXNLZXlhYmxlIiwiZ2V0TWFwRGF0YSIsImdldFZhbHVlIiwiZ2V0UHJvdG90eXBlIiwib3ZlckFyZyIsIm5hdGl2ZU9iamVjdFRvU3RyaW5nIiwidW5tYXNrZWQiLCJzdHViQXJyYXkiLCJuYXRpdmVHZXRTeW1ib2xzIiwibWFwVGFnIiwicHJvbWlzZVRhZyIsInNldFRhZyIsIndlYWtNYXBUYWciLCJkYXRhVmlld1RhZyIsImRhdGFWaWV3Q3RvclN0cmluZyIsIm1hcEN0b3JTdHJpbmciLCJwcm9taXNlQ3RvclN0cmluZyIsInNldEN0b3JTdHJpbmciLCJ3ZWFrTWFwQ3RvclN0cmluZyIsImN0b3JTdHJpbmciLCJyZVdyYXBEZXRhaWxzIiwicmVTcGxpdERldGFpbHMiLCJnZXRXcmFwRGV0YWlscyIsImhhc1BhdGgiLCJoYXNGdW5jIiwicmVIYXNVbmljb2RlIiwicmVIYXNVbmljb2RlV29yZCIsImhhc1VuaWNvZGVXb3JkIiwibmF0aXZlQ3JlYXRlIiwicmVXcmFwQ29tbWVudCIsImluc2VydFdyYXBEZXRhaWxzIiwiZGV0YWlscyIsInNwcmVhZGFibGVTeW1ib2wiLCJpc0NvbmNhdFNwcmVhZGFibGUiLCJyZUlzVWludCIsInJlSXNEZWVwUHJvcCIsInJlSXNQbGFpblByb3AiLCJsb2Rhc2giLCJmdW5jTmFtZSIsInVpZCIsIm1hc2tTcmNLZXkiLCJJRV9QUk9UTyIsIm1lbW9pemUiLCJtZW1vaXplQ2FwcGVkIiwiUExBQ0VIT0xERVIiLCJXUkFQX0FSWV9GTEFHIiwic3JjQml0bWFzayIsIm5ld0JpdG1hc2siLCJpc0NvbWJvIiwiZnJlZVByb2Nlc3MiLCJwcm9jZXNzIiwibm9kZVV0aWwiLCJ0eXBlcyIsInJlcXVpcmUiLCJiaW5kaW5nIiwidHJhbnNmb3JtIiwib3RoZXJBcmdzIiwiaW5kZXhlcyIsIm9sZEFycmF5Iiwic2hvcnRPdXQiLCJ1cGRhdGVXcmFwRGV0YWlscyIsIm5hdGl2ZU5vdyIsImxhc3RDYWxsZWQiLCJzdGFtcCIsInBhaXJzIiwiTEFSR0VfQVJSQVlfU0laRSIsInVuaWNvZGVUb0FycmF5IiwicmVXaGl0ZXNwYWNlIiwicnNBc3RyYWxSYW5nZSIsInJzQXN0cmFsIiwicnNDb21ibyIsInJzRml0eiIsInJzTm9uQXN0cmFsIiwicnNSZWdpb25hbCIsInJzU3VyclBhaXIiLCJyZU9wdE1vZCIsInJzT3B0VmFyIiwicnNTZXEiLCJyc1N5bWJvbCIsInJlVW5pY29kZSIsInJzRGluZ2JhdFJhbmdlIiwicnNMb3dlclJhbmdlIiwicnNVcHBlclJhbmdlIiwicnNCcmVha1JhbmdlIiwicnNNYXRoT3BSYW5nZSIsInJzQnJlYWsiLCJyc0RpZ2l0cyIsInJzRGluZ2JhdCIsInJzTG93ZXIiLCJyc01pc2MiLCJyc1VwcGVyIiwicnNNaXNjTG93ZXIiLCJyc01pc2NVcHBlciIsInJzT3B0Q29udHJMb3dlciIsInJzT3B0Q29udHJVcHBlciIsInJzTW9kaWZpZXIiLCJyc0Vtb2ppIiwicmVVbmljb2RlV29yZCIsInVuaWNvZGVXb3JkcyIsIndyYXBGbGFncyIsIndyYXBwZXJDbG9uZSIsImNhcGl0YWxpemUiLCJjYW1lbENhc2UiLCJ3b3JkIiwidXBwZXJGaXJzdCIsImN1cnJ5IiwidGltZVdhaXRpbmciLCJyZUxhdGluIiwicmVDb21ib01hcmsiLCJyZVJlZ0V4cENoYXIiLCJyZUhhc1JlZ0V4cENoYXIiLCJlc2NhcGVSZWdFeHAiLCJtYXBwaW5nIiwiZmFsbGJhY2tIb2xkZXIiLCJiYXNlQXJ5IiwiY2xvbmVBcnJheSIsIndyYXBJbW11dGFibGUiLCJjbG9uZXIiLCJiYXNlQ29udmVydCIsInV0aWwiLCJpc0xpYiIsImlzT2JqIiwiY29uZmlnIiwiY2FwIiwiZml4ZWQiLCJpbW11dGFibGUiLCJyZWFyZyIsImRlZmF1bHRIb2xkZXIiLCJmb3JjZUN1cnJ5IiwiZm9yY2VGaXhlZCIsImZvcmNlUmVhcmciLCJwcmlzdGluZSIsInJ1bkluQ29udGV4dCIsImhlbHBlcnMiLCJpc0Vycm9yIiwiaXNXZWFrTWFwIiwidG9QYXRoIiwiZWFjaCIsImFyeU1ldGhvZEtleXMiLCJhcnlNZXRob2QiLCJ3cmFwcGVycyIsImNhc3RBcnJheSIsIm50aEFyZyIsImNhc3RDYXAiLCJpdGVyYXRlZVJlYXJnIiwiYmFzZUFyaXR5IiwiaXRlcmF0ZWVBcnkiLCJjYXN0Rml4ZWQiLCJza2lwRml4ZWQiLCJtZXRob2RTcHJlYWQiLCJmbGF0U3ByZWFkIiwiY2FzdFJlYXJnIiwic2tpcFJlYXJnIiwibWV0aG9kUmVhcmciLCJhcnlSZWFyZyIsImNsb25lQnlQYXRoIiwiY3JlYXRlQ29udmVydGVyIiwicmVhbE5hbWUiLCJhbGlhc1RvUmVhbCIsInJlbWFwIiwib2xkT3B0aW9ucyIsIm5ld1V0aWwiLCJuZXdGdW5jIiwibmV3T3B0aW9ucyIsIndyYXAiLCJtdXRhdGUiLCJjcmVhdGVDbG9uZXIiLCJhcnlLZXkiLCJvdGhlck5hbWUiLCJhZnRlclJlYXJnIiwiY2FzdEN1cnJ5IiwiY29udmVydExpYiIsInJlYWxUb0FsaWFzIiwiZGVmYXVsdFZhbHVlIiwiaXNCb29sZWFuIiwic3R1YkZhbHNlIiwiaXNFcXVhbCIsIm5vZGVJc01hcCIsImlzTnVsbCIsImlzTnVtYmVyIiwib2JqZWN0Q3RvclN0cmluZyIsIm5vZGVJc1NldCIsImlzU3RyaW5nIiwibm9kZUlzVHlwZWRBcnJheSIsIm1lbW9pemVkIiwiQ2FjaGUiLCJuZWdhdGUiLCJvbWl0IiwicGF0aHMiLCJDTE9ORV9ERUVQX0ZMQUciLCJJTkZJTklUWSIsInRvRmluaXRlIiwicmVtYWluZGVyIiwidG9Mb3dlciIsInBhdHRlcm4iLCJ6aXBPYmplY3QiLCJzZXR0aW5ncyIsInN1YnNldCIsInByZWZpeCIsImRlZmF1bHRQcmVmaXgiLCJyZWdpc3RlckFsaWFzIiwiRW1pdHRlciIsInByb3BlcnRpZXMiLCJ0b0h0bWxOb29wIiwiYmVmb3JlIiwiY29lcmNlRWxlbWVudE1hdGNoaW5nQ2FsbGJhY2siLCJleHRlbmQiLCJBcnJheVNsaWNlIiwiZWxlbWVudHMiLCJ0b1ZhbHVlIiwiY29tcGFjdE1hcCIsImluaXRpYWxWYWx1ZSIsInJlZnJhY3QiLCJLZXlWYWx1ZVBhaXIiLCJKU09OU2VyaWFsaXNlciIsIk5hbWVzcGFjZSIsImVsZW1lbnRNYXAiLCJlbGVtZW50RGV0ZWN0aW9uIiwibm9EZWZhdWx0IiwidXNlRGVmYXVsdCIsIl9hdHRyaWJ1dGVFbGVtZW50S2V5cyIsIl9hdHRyaWJ1dGVFbGVtZW50QXJyYXlLZXlzIiwidXNlIiwiYmFzZSIsImxvYWQiLCJyZWdpc3RlciIsIk51bGxFbGVtZW50IiwiU3RyaW5nRWxlbWVudCIsIk51bWJlckVsZW1lbnQiLCJCb29sZWFuRWxlbWVudCIsIkFycmF5RWxlbWVudCIsIk9iamVjdEVsZW1lbnQiLCJNZW1iZXJFbGVtZW50IiwiUmVmRWxlbWVudCIsIkxpbmtFbGVtZW50IiwiZGV0ZWN0IiwiRWxlbWVudENsYXNzIiwiX2VsZW1lbnRzIiwidW5yZWdpc3RlciIsImdpdmVuUHJlcGVuZCIsInRvRWxlbWVudCIsImdldEVsZW1lbnRDbGFzcyIsImZyb21SZWZyYWN0Iiwic2VyaWFsaXNlciIsImRlc2VyaWFsaXNlIiwidG9SZWZyYWN0Iiwic2VyaWFsaXNlIiwicGFzY2FsIiwiT2JqZWN0U2xpY2UiLCJtZW1iZXIiLCJtZXRhIiwicmVsYXRpb24iLCJwcmltaXRpdmUiLCJpbmRleE9yS2V5IiwiZ2V0SW5kZXgiLCJzdGFydEluZGV4IiwibWVtbyIsImZpbmRFbGVtZW50cyIsImdpdmVuT3B0aW9ucyIsInJlY3Vyc2l2ZSIsImtleU9ySW5kZXgiLCJmaW5kQnlFbGVtZW50IiwiZmluZEJ5Q2xhc3MiLCJnZXRCeUlkIiwiaWQiLCJzZWNvbmQiLCJfbWV0YSIsIl9hdHRyaWJ1dGVzIiwidG9SZWYiLCJmaW5kUmVjdXJzaXZlIiwiZWxlbWVudE5hbWVzIiwiZWxlbWVudE5hbWUiLCJhcHBlbmQiLCJjaGVja0VsZW1lbnQiLCJpdGVtcyIsInBhcmVudEVsZW1lbnRzIiwicGFyZW50cyIsIm5hbWVzSW5kZXgiLCJnZXRNZXRhUHJvcGVydHkiLCJoYXNLZXkiLCJzZXRNZXRhUHJvcGVydHkiLCJfc3RvcmVkRWxlbWVudCIsIl9jb250ZW50IiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImxpbmtzIiwicmVjdXJzaXZlQ2hpbGRyZW4iLCJnZXRNZW1iZXIiLCJnZXRLZXkiLCJrZXlPck9iamVjdCIsIm9iamVjdEtleSIsIkpTT04wNlNlcmlhbGlzZXIiLCJ2YXJpYWJsZSIsInBheWxvYWQiLCJzZXJpYWxpc2VPYmplY3QiLCJpc0VudW0iLCJlbnVtU2VyaWFsaXNlQXR0cmlidXRlcyIsImVudW1TZXJpYWxpc2VDb250ZW50Iiwic2VyaWFsaXNlQ29udGVudCIsInNob3VsZFNlcmlhbGlzZUNvbnRlbnQiLCJyZWZTZXJpYWxpc2VDb250ZW50Iiwic291cmNlTWFwU2VyaWFsaXNlQ29udGVudCIsImRhdGFTdHJ1Y3R1cmVTZXJpYWxpc2VDb250ZW50IiwiZW51bWVyYXRpb25zIiwic2FtcGxlcyIsInNhbXBsZSIsImVudW1lcmF0aW9uIiwiTnVsbCIsImRlc2VyaWFsaXNlT2JqZWN0IiwiZGVzZXJpYWxpc2VDb250ZW50IiwiZXhpc3RpbmdTYW1wbGVzIiwiZXhpc3RpbmdTYW1wbGUiLCJlbnVtRWxlbWVudCIsImRlZmF1bHRFbGVtZW50IiwibWV0YWRhdGEiLCJzaG91bGRSZWZyYWN0IiwiY29udmVydEtleVRvUmVmcmFjdCIsInNlcmlhbGlzZUVudW0iLCJzdWJJdGVtIiwic3ViU3ViSXRlbSIsImtleVZhbHVlIiwiaGFzTWFwIiwibWFwU2l6ZURlc2NyaXB0b3IiLCJtYXBTaXplIiwibWFwRm9yRWFjaCIsImhhc1NldCIsInNldFNpemVEZXNjcmlwdG9yIiwic2V0Rm9yRWFjaCIsIndlYWtNYXBIYXMiLCJ3ZWFrU2V0SGFzIiwid2Vha1JlZkRlcmVmIiwiZGVyZWYiLCJib29sZWFuVmFsdWVPZiIsImZ1bmN0aW9uVG9TdHJpbmciLCIkbWF0Y2giLCIkc2xpY2UiLCIkdG9VcHBlckNhc2UiLCIkdG9Mb3dlckNhc2UiLCIkdGVzdCIsIiRqb2luIiwiJGFyclNsaWNlIiwiJGZsb29yIiwiYmlnSW50VmFsdWVPZiIsImdPUFMiLCJzeW1Ub1N0cmluZyIsImhhc1NoYW1tZWRTeW1ib2xzIiwiaXNFbnVtZXJhYmxlIiwiZ1BPIiwiTyIsImFkZE51bWVyaWNTZXBhcmF0b3IiLCJzZXBSZWdleCIsImludCIsImludFN0ciIsInV0aWxJbnNwZWN0IiwiaW5zcGVjdEN1c3RvbSIsImN1c3RvbSIsImluc3BlY3RTeW1ib2wiLCJ3cmFwUXVvdGVzIiwiZGVmYXVsdFN0eWxlIiwicXVvdGVDaGFyIiwicXVvdGVTdHlsZSIsImlzUmVnRXhwIiwiaW5zcGVjdF8iLCJtYXhTdHJpbmdMZW5ndGgiLCJjdXN0b21JbnNwZWN0IiwiaW5kZW50IiwibnVtZXJpY1NlcGFyYXRvciIsImluc3BlY3RTdHJpbmciLCJiaWdJbnRTdHIiLCJtYXhEZXB0aCIsImdldEluZGVudCIsImJhc2VJbmRlbnQiLCJub0luZGVudCIsIm5ld09wdHMiLCJuYW1lT2YiLCJmIiwiYXJyT2JqS2V5cyIsInN5bVN0cmluZyIsIm1hcmtCb3hlZCIsImlzRWxlbWVudCIsIkhUTUxFbGVtZW50IiwiYXR0cnMiLCJ4cyIsInNpbmdsZUxpbmVWYWx1ZXMiLCJpbmRlbnRlZEpvaW4iLCJjYXVzZSIsIm1hcFBhcnRzIiwiY29sbGVjdGlvbk9mIiwic2V0UGFydHMiLCJ3ZWFrQ29sbGVjdGlvbk9mIiwiaXNXZWFrU2V0IiwiaXNXZWFrUmVmIiwiaXNCaWdJbnQiLCJ5cyIsInByb3RvVGFnIiwic3RyaW5nVGFnIiwidHJhaWxlciIsImxvd2J5dGUiLCJsaW5lSm9pbmVyIiwic3ltTWFwIiwiY2FjaGVkU2V0VGltZW91dCIsImNhY2hlZENsZWFyVGltZW91dCIsImRlZmF1bHRTZXRUaW1vdXQiLCJkZWZhdWx0Q2xlYXJUaW1lb3V0IiwicnVuVGltZW91dCIsImN1cnJlbnRRdWV1ZSIsInF1ZXVlIiwiZHJhaW5pbmciLCJxdWV1ZUluZGV4IiwiY2xlYW5VcE5leHRUaWNrIiwiZHJhaW5RdWV1ZSIsInRpbWVvdXQiLCJydW4iLCJydW5DbGVhclRpbWVvdXQiLCJtYXJrZXIiLCJJdGVtIiwibmV4dFRpY2siLCJicm93c2VyIiwiZW52IiwiYXJndiIsInZlcnNpb25zIiwiY3dkIiwiY2hkaXIiLCJ1bWFzayIsIlJlYWN0UHJvcFR5cGVzU2VjcmV0IiwiZW1wdHlGdW5jdGlvbiIsImVtcHR5RnVuY3Rpb25XaXRoUmVzZXQiLCJyZXNldFdhcm5pbmdDYWNoZSIsInNoaW0iLCJwcm9wTmFtZSIsImNvbXBvbmVudE5hbWUiLCJsb2NhdGlvbiIsInByb3BGdWxsTmFtZSIsInNlY3JldCIsImdldFNoaW0iLCJpc1JlcXVpcmVkIiwiUmVhY3RQcm9wVHlwZXMiLCJiaWdpbnQiLCJib29sIiwiYW55IiwiYXJyYXlPZiIsImVsZW1lbnRUeXBlIiwiaW5zdGFuY2VPZiIsIm9iamVjdE9mIiwib25lT2YiLCJvbmVPZlR5cGUiLCJzaGFwZSIsImV4YWN0IiwiY2hlY2tQcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJwZXJjZW50VHdlbnRpZXMiLCJGb3JtYXQiLCJmb3JtYXR0ZXJzIiwiUkZDMTczOCIsIlJGQzM5ODYiLCJmb3JtYXRzIiwidXRpbHMiLCJkZWZhdWx0cyIsImFsbG93RG90cyIsImFsbG93UHJvdG90eXBlcyIsImFsbG93U3BhcnNlIiwiYXJyYXlMaW1pdCIsImNoYXJzZXQiLCJjaGFyc2V0U2VudGluZWwiLCJjb21tYSIsImRlY29kZXIiLCJkZWxpbWl0ZXIiLCJpZ25vcmVRdWVyeVByZWZpeCIsImludGVycHJldE51bWVyaWNFbnRpdGllcyIsInBhcmFtZXRlckxpbWl0IiwicGFyc2VBcnJheXMiLCJwbGFpbk9iamVjdHMiLCJzdHJpY3ROdWxsSGFuZGxpbmciLCIkMCIsIm51bWJlclN0ciIsInBhcnNlQXJyYXlWYWx1ZSIsInBhcnNlS2V5cyIsInBhcnNlUXVlcnlTdHJpbmdLZXlzIiwiZ2l2ZW5LZXkiLCJ2YWx1ZXNQYXJzZWQiLCJzZWdtZW50IiwibGVhZiIsImNsZWFuUm9vdCIsInBhcnNlT2JqZWN0Iiwibm9ybWFsaXplUGFyc2VPcHRpb25zIiwidGVtcE9iaiIsInBhcnNlUXVlcnlTdHJpbmdWYWx1ZXMiLCJjbGVhblN0ciIsInNraXBJbmRleCIsImJyYWNrZXRFcXVhbHNQb3MiLCJlbmNvZGVkVmFsIiwiY29tYmluZSIsInBhcnNlVmFsdWVzIiwibmV3T2JqIiwiY29tcGFjdCIsImdldFNpZGVDaGFubmVsIiwiYXJyYXlQcmVmaXhHZW5lcmF0b3JzIiwiYnJhY2tldHMiLCJpbmRpY2VzIiwicmVwZWF0IiwicHVzaFRvQXJyYXkiLCJ2YWx1ZU9yQXJyYXkiLCJ0b0lTTyIsInRvSVNPU3RyaW5nIiwiZGVmYXVsdEZvcm1hdCIsImFkZFF1ZXJ5UHJlZml4IiwiZW5jb2RlciIsImVuY29kZVZhbHVlc09ubHkiLCJzZXJpYWxpemVEYXRlIiwiZGF0ZSIsInNraXBOdWxscyIsInNlbnRpbmVsIiwiZ2VuZXJhdGVBcnJheVByZWZpeCIsImNvbW1hUm91bmRUcmlwIiwic2lkZUNoYW5uZWwiLCJ0bXBTYyIsImZpbmRGbGFnIiwiaXNOb25OdWxsaXNoUHJpbWl0aXZlIiwidmFsdWVzQXJyYXkiLCJ2YWx1ZXNKb2luZWQiLCJvYmpLZXlzIiwiYWRqdXN0ZWRQcmVmaXgiLCJrZXlQcmVmaXgiLCJ2YWx1ZVNpZGVDaGFubmVsIiwibm9ybWFsaXplU3RyaW5naWZ5T3B0aW9ucyIsImFycmF5Rm9ybWF0IiwiaGV4VGFibGUiLCJhcnJheVRvT2JqZWN0IiwiYXNzaWduU2luZ2xlU291cmNlIiwiYWNjIiwicmVmcyIsImNvbXBhY3RRdWV1ZSIsImNvbXBhY3RlZCIsInN0cldpdGhvdXRQbHVzIiwidW5lc2NhcGUiLCJkZWZhdWx0RW5jb2RlciIsIm1hcHBlZCIsIm1lcmdlVGFyZ2V0IiwidGFyZ2V0SXRlbSIsInF1ZXJ5c3RyaW5naWZ5IiwicXVlcnlzdHJpbmciLCJxdWVyeSIsInBhcnNlciIsIlJhbmRFeHAiLCJfc2V0RGVmYXVsdHMiLCJpZ25vcmVDYXNlIiwibXVsdGlsaW5lIiwidG9rZW5zIiwiZGVmYXVsdFJhbmdlIiwicmFuZEludCIsIl9nZW4iLCJ0b2tlbiIsIlJPT1QiLCJHUk9VUCIsImZvbGxvd2VkQnkiLCJub3RGb2xsb3dlZEJ5IiwicmVtZW1iZXIiLCJncm91cE51bWJlciIsIl9yYW5kU2VsZWN0IiwiUE9TSVRJT04iLCJTRVQiLCJleHBhbmRlZFNldCIsIl9leHBhbmQiLCJSRVBFVElUSU9OIiwiUkVGRVJFTkNFIiwiQ0hBUiIsIl9yYW5kQm9vbCIsIl90b090aGVyQ2FzZSIsIlJBTkdFIiwiZHJhbmdlIiwib3RoZXJDYXNlQ29kZSIsInJhbmRvbSIsIl9yYW5nZSIsInJhbmRleHAiLCJfcmFuZGV4cCIsInN1Z2FyIiwiTUFYX0JZVEVTIiwiTUFYX1VJTlQzMiIsImNyeXB0byIsIm1zQ3J5cHRvIiwiZ2V0UmFuZG9tVmFsdWVzIiwicmFuZG9tQnl0ZXMiLCJnZW5lcmF0ZWQiLCJvbGRCcm93c2VyIiwiX3R5cGVvZiIsIkNvcHlUb0NsaXBib2FyZCIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29weVRvQ2xpcGJvYXJkIiwiX2V4Y2x1ZGVkIiwiX19lc01vZHVsZSIsImVudW1lcmFibGVPbmx5Iiwic3ltYm9scyIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsImV4Y2x1ZGVkIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJzb3VyY2VLZXlzIiwic291cmNlU3ltYm9sS2V5cyIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwiX3NldFByb3RvdHlwZU9mIiwicCIsIl9jcmVhdGVTdXBlciIsIkRlcml2ZWQiLCJoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsInNoYW0iLCJfY3JlYXRlU3VwZXJJbnRlcm5hbCIsIlN1cGVyIiwiX2dldFByb3RvdHlwZU9mIiwiTmV3VGFyZ2V0IiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiX1JlYWN0JFB1cmVDb21wb25lbnQiLCJfaW5oZXJpdHMiLCJzdWJDbGFzcyIsIl9zdXBlciIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrIiwiaW5zdGFuY2UiLCJDb25zdHJ1Y3RvciIsIl90aGlzJHByb3BzIiwiZWxlbSIsIkNoaWxkcmVuIiwib25seSIsIm9uQ2xpY2siLCJfY3JlYXRlQ2xhc3MiLCJwcm90b1Byb3BzIiwic3RhdGljUHJvcHMiLCJfdGhpcyRwcm9wczIiLCJjbG9uZUVsZW1lbnQiLCJQdXJlQ29tcG9uZW50IiwiRGVib3VuY2VJbnB1dCIsIl9sb2Rhc2giLCJwZXJzaXN0Iiwib2xkVmFsdWUiLCJtaW5MZW5ndGgiLCJzZXRTdGF0ZSIsIm5vdGlmeSIsImZvcmNlTm90aWZ5Iiwib25LZXlEb3duIiwib25CbHVyIiwiZGVib3VuY2VUaW1lb3V0IiwiZG9Ob3RpZnkiLCJkZWJvdW5jZWRDaGFuZ2VGdW5jIiwiaXNEZWJvdW5jaW5nIiwib25DaGFuZ2UiLCJfZGVib3VuY2VUaW1lb3V0MiIsImNyZWF0ZU5vdGlmaWVyIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwib2xkVGltZW91dCIsInN0YXRlVmFsdWUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsIm1heWJlT25LZXlEb3duIiwibWF5YmVPbkJsdXIiLCJmb3JjZU5vdGlmeUJ5RW50ZXIiLCJmb3JjZU5vdGlmeU9uQmx1ciIsImlucHV0UmVmIiwibWF5YmVSZWYiLCJhYSIsImNhIiwiZGEiLCJlYSIsImZhIiwiaGEiLCJpYSIsImphIiwia2EiLCJsYSIsIm1hIiwiYWNjZXB0c0Jvb2xlYW5zIiwiYXR0cmlidXRlTmFtZSIsImF0dHJpYnV0ZU5hbWVzcGFjZSIsIm11c3RVc2VQcm9wZXJ0eSIsInByb3BlcnR5TmFtZSIsInNhbml0aXplVVJMIiwicmVtb3ZlRW1wdHlTdHJpbmciLCJ6IiwicmEiLCJzYSIsInRhIiwicWEiLCJwYSIsIm9hIiwieGxpbmtIcmVmIiwidWEiLCJfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCIsInZhIiwid2EiLCJ5YSIsInphIiwiQWEiLCJCYSIsIkNhIiwiRGEiLCJFYSIsIkZhIiwiR2EiLCJIYSIsIklhIiwiSmEiLCJLYSIsIkxhIiwiQSIsIk1hIiwiTmEiLCJPYSIsInByZXBhcmVTdGFja1RyYWNlIiwiUGEiLCJRYSIsIl9jb250ZXh0IiwiX3BheWxvYWQiLCJfaW5pdCIsIlJhIiwiU2EiLCJUYSIsIlZhIiwiX3ZhbHVlVHJhY2tlciIsIlVhIiwic2V0VmFsdWUiLCJzdG9wVHJhY2tpbmciLCJXYSIsIlhhIiwiYWN0aXZlRWxlbWVudCIsIllhIiwiZGVmYXVsdENoZWNrZWQiLCJfd3JhcHBlclN0YXRlIiwiaW5pdGlhbENoZWNrZWQiLCJaYSIsImNvbnRyb2xsZWQiLCJhYiIsImJiIiwiZGIiLCJlYiIsImZiIiwic2VsZWN0ZWQiLCJkZWZhdWx0U2VsZWN0ZWQiLCJkaXNhYmxlZCIsImdiIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJoYiIsImliIiwiamIiLCJrYiIsImxiIiwibWIiLCJuYiIsIk1TQXBwIiwiZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24iLCJvYiIsImxhc3RDaGlsZCIsInBiIiwiYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQiLCJhc3BlY3RSYXRpbyIsImJvcmRlckltYWdlT3V0c2V0IiwiYm9yZGVySW1hZ2VTbGljZSIsImJvcmRlckltYWdlV2lkdGgiLCJib3hGbGV4IiwiYm94RmxleEdyb3VwIiwiYm94T3JkaW5hbEdyb3VwIiwiY29sdW1uQ291bnQiLCJjb2x1bW5zIiwiZmxleCIsImZsZXhHcm93IiwiZmxleFBvc2l0aXZlIiwiZmxleFNocmluayIsImZsZXhOZWdhdGl2ZSIsImZsZXhPcmRlciIsImdyaWRBcmVhIiwiZ3JpZFJvdyIsImdyaWRSb3dFbmQiLCJncmlkUm93U3BhbiIsImdyaWRSb3dTdGFydCIsImdyaWRDb2x1bW4iLCJncmlkQ29sdW1uRW5kIiwiZ3JpZENvbHVtblNwYW4iLCJncmlkQ29sdW1uU3RhcnQiLCJmb250V2VpZ2h0IiwibGluZUNsYW1wIiwibGluZUhlaWdodCIsIm9wYWNpdHkiLCJvcmRlciIsIm9ycGhhbnMiLCJ0YWJTaXplIiwid2lkb3dzIiwiekluZGV4Iiwiem9vbSIsImZpbGxPcGFjaXR5IiwiZmxvb2RPcGFjaXR5Iiwic3RvcE9wYWNpdHkiLCJzdHJva2VEYXNoYXJyYXkiLCJzdHJva2VEYXNob2Zmc2V0Iiwic3Ryb2tlTWl0ZXJsaW1pdCIsInN0cm9rZU9wYWNpdHkiLCJzdHJva2VXaWR0aCIsInFiIiwicmIiLCJzYiIsInNldFByb3BlcnR5IiwidGIiLCJtZW51aXRlbSIsImFyZWEiLCJiciIsImNvbCIsImVtYmVkIiwiaHIiLCJpbWciLCJrZXlnZW4iLCJsaW5rIiwicGFyYW0iLCJ0cmFjayIsIndiciIsInViIiwidmIiLCJ3YiIsInhiIiwic3JjRWxlbWVudCIsImNvcnJlc3BvbmRpbmdVc2VFbGVtZW50IiwieWIiLCJ6YiIsIkFiIiwiQmIiLCJDYiIsInN0YXRlTm9kZSIsIkRiIiwiRWIiLCJGYiIsIkdiIiwiSGIiLCJJYiIsIkpiIiwiS2IiLCJMYiIsIk1iIiwiTmIiLCJvbkVycm9yIiwiT2IiLCJQYiIsIlFiIiwiUmIiLCJTYiIsIlRiIiwiVmIiLCJhbHRlcm5hdGUiLCJyZXR1cm4iLCJXYiIsIm1lbW9pemVkU3RhdGUiLCJkZWh5ZHJhdGVkIiwiWGIiLCJaYiIsIlliIiwic2libGluZyIsIiRiIiwiYWMiLCJ1bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrIiwiYmMiLCJ1bnN0YWJsZV9jYW5jZWxDYWxsYmFjayIsImNjIiwidW5zdGFibGVfc2hvdWxkWWllbGQiLCJkYyIsInVuc3RhYmxlX3JlcXVlc3RQYWludCIsIkIiLCJ1bnN0YWJsZV9ub3ciLCJlYyIsInVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsIiwiZmMiLCJ1bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eSIsImdjIiwidW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHkiLCJoYyIsInVuc3RhYmxlX05vcm1hbFByaW9yaXR5IiwiaWMiLCJ1bnN0YWJsZV9Mb3dQcmlvcml0eSIsImpjIiwidW5zdGFibGVfSWRsZVByaW9yaXR5Iiwia2MiLCJsYyIsIm9jIiwiY2x6MzIiLCJuYyIsInBjIiwicWMiLCJyYyIsInNjIiwidGMiLCJ1YyIsInBlbmRpbmdMYW5lcyIsInN1c3BlbmRlZExhbmVzIiwicGluZ2VkTGFuZXMiLCJlbnRhbmdsZWRMYW5lcyIsImVudGFuZ2xlbWVudHMiLCJ2YyIsInhjIiwieWMiLCJ6YyIsIkFjIiwiZXZlbnRUaW1lcyIsIkNjIiwiQyIsIkRjIiwiRWMiLCJGYyIsIkdjIiwiSGMiLCJJYyIsIkpjIiwiS2MiLCJMYyIsIk1jIiwiTmMiLCJPYyIsIlBjIiwiUWMiLCJSYyIsIlNjIiwicG9pbnRlcklkIiwiVGMiLCJuYXRpdmVFdmVudCIsImJsb2NrZWRPbiIsImRvbUV2ZW50TmFtZSIsImV2ZW50U3lzdGVtRmxhZ3MiLCJ0YXJnZXRDb250YWluZXJzIiwiVmMiLCJXYyIsImlzRGVoeWRyYXRlZCIsImNvbnRhaW5lckluZm8iLCJYYyIsIlljIiwiZGlzcGF0Y2hFdmVudCIsIlpjIiwiJGMiLCJhZCIsImJkIiwiY2QiLCJSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyIsImRkIiwiZWQiLCJ0cmFuc2l0aW9uIiwiZmQiLCJnZCIsImhkIiwiVWMiLCJqZCIsImtkIiwibGQiLCJuZCIsIm9kIiwia2V5Q29kZSIsImNoYXJDb2RlIiwicGQiLCJxZCIsInJkIiwiX3JlYWN0TmFtZSIsIl90YXJnZXRJbnN0IiwiY3VycmVudFRhcmdldCIsImlzRGVmYXVsdFByZXZlbnRlZCIsImRlZmF1bHRQcmV2ZW50ZWQiLCJpc1Byb3BhZ2F0aW9uU3RvcHBlZCIsImNhbmNlbEJ1YmJsZSIsImlzUGVyc2lzdGVudCIsIndkIiwieGQiLCJ5ZCIsInNkIiwiZXZlbnRQaGFzZSIsImJ1YmJsZXMiLCJjYW5jZWxhYmxlIiwidGltZVN0YW1wIiwiaXNUcnVzdGVkIiwidGQiLCJ1ZCIsInZpZXciLCJkZXRhaWwiLCJ2ZCIsIkFkIiwic2NyZWVuWCIsInNjcmVlblkiLCJjbGllbnRYIiwiY2xpZW50WSIsInBhZ2VYIiwicGFnZVkiLCJjdHJsS2V5Iiwic2hpZnRLZXkiLCJhbHRLZXkiLCJtZXRhS2V5IiwiZ2V0TW9kaWZpZXJTdGF0ZSIsInpkIiwiYnV0dG9uIiwiYnV0dG9ucyIsInJlbGF0ZWRUYXJnZXQiLCJmcm9tRWxlbWVudCIsIm1vdmVtZW50WCIsIm1vdmVtZW50WSIsIkJkIiwiRGQiLCJkYXRhVHJhbnNmZXIiLCJGZCIsIkhkIiwiYW5pbWF0aW9uTmFtZSIsImVsYXBzZWRUaW1lIiwicHNldWRvRWxlbWVudCIsIklkIiwiSmQiLCJMZCIsIk1kIiwiRXNjIiwiU3BhY2ViYXIiLCJMZWZ0IiwiVXAiLCJSaWdodCIsIkRvd24iLCJEZWwiLCJXaW4iLCJNZW51IiwiQXBwcyIsIlNjcm9sbCIsIk1velByaW50YWJsZUtleSIsIk5kIiwiT2QiLCJBbHQiLCJDb250cm9sIiwiTWV0YSIsIlNoaWZ0IiwiUGQiLCJRZCIsImxvY2FsZSIsIndoaWNoIiwiUmQiLCJUZCIsIndpZHRoIiwiaGVpZ2h0IiwicHJlc3N1cmUiLCJ0YW5nZW50aWFsUHJlc3N1cmUiLCJ0aWx0WCIsInRpbHRZIiwidHdpc3QiLCJwb2ludGVyVHlwZSIsImlzUHJpbWFyeSIsIlZkIiwidGFyZ2V0VG91Y2hlcyIsImNoYW5nZWRUb3VjaGVzIiwiWGQiLCJZZCIsImRlbHRhWCIsIndoZWVsRGVsdGFYIiwiZGVsdGFZIiwid2hlZWxEZWx0YVkiLCJ3aGVlbERlbHRhIiwiZGVsdGFaIiwiZGVsdGFNb2RlIiwiWmQiLCIkZCIsImFlIiwiYmUiLCJkb2N1bWVudE1vZGUiLCJjZSIsImRlIiwiZWUiLCJmZSIsImdlIiwiaGUiLCJpZSIsImxlIiwiY29sb3IiLCJkYXRldGltZSIsImVtYWlsIiwibW9udGgiLCJwYXNzd29yZCIsInNlYXJjaCIsInRlbCIsIndlZWsiLCJtZSIsIm5lIiwib2UiLCJwZSIsInFlIiwic2UiLCJ0ZSIsInVlIiwidmUiLCJ3ZSIsInhlIiwieWUiLCJ6ZSIsIm9uaW5wdXQiLCJBZSIsImRldGFjaEV2ZW50IiwiQmUiLCJDZSIsImF0dGFjaEV2ZW50IiwiRGUiLCJFZSIsIkZlIiwiSGUiLCJHZSIsIkllIiwiSmUiLCJLZSIsIkxlIiwiY29tcGFyZURvY3VtZW50UG9zaXRpb24iLCJNZSIsIkhUTUxJRnJhbWVFbGVtZW50IiwiY29udGVudFdpbmRvdyIsIk5lIiwiY29udGVudEVkaXRhYmxlIiwiT2UiLCJmb2N1c2VkRWxlbSIsInNlbGVjdGlvblJhbmdlIiwic2VsZWN0aW9uU3RhcnQiLCJzZWxlY3Rpb25FbmQiLCJkZWZhdWx0VmlldyIsInJhbmdlQ291bnQiLCJhbmNob3JOb2RlIiwiYW5jaG9yT2Zmc2V0IiwiZm9jdXNOb2RlIiwiZm9jdXNPZmZzZXQiLCJzZXRTdGFydCIsInNldEVuZCIsInNjcm9sbExlZnQiLCJzY3JvbGxUb3AiLCJmb2N1cyIsIlBlIiwiUWUiLCJSZSIsIlNlIiwiVGUiLCJVZSIsIlZlIiwiV2UiLCJhbmltYXRpb25lbmQiLCJhbmltYXRpb25pdGVyYXRpb24iLCJhbmltYXRpb25zdGFydCIsInRyYW5zaXRpb25lbmQiLCJYZSIsIlllIiwiWmUiLCJhbmltYXRpb24iLCIkZSIsImFmIiwiYmYiLCJjZiIsImRmIiwiZWYiLCJmZiIsImdmIiwiaGYiLCJsZiIsIm1mIiwibmYiLCJVYiIsIkQiLCJwZiIsInFmIiwicmYiLCJzZiIsImNhcHR1cmUiLCJwYXNzaXZlIiwidCIsIkoiLCJ1IiwiRiIsInRmIiwidWYiLCJwYXJlbnRXaW5kb3ciLCJ2ZiIsIndmIiwibmEiLCJ4YSIsIiRhIiwiYmEiLCJqZSIsImtlIiwiY2hhciIsInhmIiwieWYiLCJ6ZiIsIkFmIiwiQmYiLCJDZiIsIkRmIiwiRWYiLCJfX2h0bWwiLCJGZiIsIkdmIiwiSGYiLCJKZiIsInF1ZXVlTWljcm90YXNrIiwidGhlbiIsImNhdGNoIiwiSWYiLCJLZiIsIkxmIiwiTWYiLCJwcmV2aW91c1NpYmxpbmciLCJOZiIsIk9mIiwiUGYiLCJRZiIsIlJmIiwiU2YiLCJUZiIsIlVmIiwiRyIsIlZmIiwiSCIsIldmIiwiWGYiLCJZZiIsImNvbnRleHRUeXBlcyIsIl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQiLCJfX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dCIsIlpmIiwiY2hpbGRDb250ZXh0VHlwZXMiLCIkZiIsImFnIiwiYmciLCJnZXRDaGlsZENvbnRleHQiLCJjZyIsIl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0IiwiZGciLCJlZyIsImZnIiwiZ2ciLCJoZyIsImpnIiwia2ciLCJsZyIsIm1nIiwibmciLCJvZyIsInBnIiwicWciLCJyZyIsInNnIiwidGciLCJ1ZyIsInZnIiwid2ciLCJ4ZyIsInlnIiwiSSIsInpnIiwiQWciLCJCZyIsImRlbGV0aW9ucyIsIkNnIiwicGVuZGluZ1Byb3BzIiwib3ZlcmZsb3ciLCJ0cmVlQ29udGV4dCIsInJldHJ5TGFuZSIsIkRnIiwiRWciLCJGZyIsIkdnIiwibWVtb2l6ZWRQcm9wcyIsIkhnIiwiSWciLCJKZyIsIktnIiwiTGciLCJkZWZhdWx0UHJvcHMiLCJNZyIsIk5nIiwiT2ciLCJQZyIsIlFnIiwiUmciLCJfY3VycmVudFZhbHVlIiwiU2ciLCJjaGlsZExhbmVzIiwiVGciLCJkZXBlbmRlbmNpZXMiLCJmaXJzdENvbnRleHQiLCJsYW5lcyIsIlVnIiwiVmciLCJtZW1vaXplZFZhbHVlIiwiV2ciLCJYZyIsIllnIiwiWmciLCIkZyIsImFoIiwidXBkYXRlUXVldWUiLCJiYXNlU3RhdGUiLCJmaXJzdEJhc2VVcGRhdGUiLCJsYXN0QmFzZVVwZGF0ZSIsInNoYXJlZCIsInBlbmRpbmciLCJlZmZlY3RzIiwiYmgiLCJjaCIsImV2ZW50VGltZSIsImxhbmUiLCJkaCIsIksiLCJlaCIsImZoIiwiZ2giLCJxIiwiciIsImhoIiwiaWgiLCJqaCIsImtoIiwibmgiLCJpc01vdW50ZWQiLCJfcmVhY3RJbnRlcm5hbHMiLCJlbnF1ZXVlU2V0U3RhdGUiLCJMIiwibGgiLCJtaCIsImVucXVldWVSZXBsYWNlU3RhdGUiLCJlbnF1ZXVlRm9yY2VVcGRhdGUiLCJvaCIsInNob3VsZENvbXBvbmVudFVwZGF0ZSIsImlzUHVyZVJlYWN0Q29tcG9uZW50IiwicGgiLCJjb250ZXh0VHlwZSIsInFoIiwiY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyIsIlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIiwicmgiLCJnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMiLCJnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSIsIlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQiLCJjb21wb25lbnRXaWxsTW91bnQiLCJjb21wb25lbnREaWRNb3VudCIsInNoIiwiX293bmVyIiwiX3N0cmluZ1JlZiIsInRoIiwidWgiLCJ2aCIsIndoIiwieGgiLCJ5aCIsInpoIiwiQWgiLCJCaCIsIkNoIiwiRGgiLCJFaCIsIkZoIiwiR2giLCJIaCIsIkloIiwiSmgiLCJLaCIsIkxoIiwiTSIsIk1oIiwicmV2ZWFsT3JkZXIiLCJOaCIsIk9oIiwiX3dvcmtJblByb2dyZXNzVmVyc2lvblByaW1hcnkiLCJQaCIsIlJlYWN0Q3VycmVudERpc3BhdGNoZXIiLCJRaCIsIlJoIiwiTiIsIlAiLCJTaCIsIlRoIiwiVWgiLCJWaCIsIlEiLCJXaCIsIlhoIiwiWWgiLCJaaCIsIiRoIiwiYWkiLCJiaSIsImNpIiwiYmFzZVF1ZXVlIiwiZGkiLCJlaSIsImZpIiwibGFzdFJlbmRlcmVkUmVkdWNlciIsImFjdGlvbiIsImhhc0VhZ2VyU3RhdGUiLCJlYWdlclN0YXRlIiwibGFzdFJlbmRlcmVkU3RhdGUiLCJkaXNwYXRjaCIsImdpIiwiamkiLCJraSIsImdldFNuYXBzaG90IiwibGkiLCJtaSIsIm5pIiwibGFzdEVmZmVjdCIsInN0b3JlcyIsIm9pIiwicGkiLCJxaSIsInJpIiwiZGVzdHJveSIsImRlcHMiLCJzaSIsInRpIiwidWkiLCJ2aSIsIndpIiwieGkiLCJ5aSIsInppIiwiQWkiLCJCaSIsIkNpIiwiRGkiLCJFaSIsIkZpIiwiR2kiLCJIaSIsIklpIiwiSmkiLCJyZWFkQ29udGV4dCIsInVzZUNhbGxiYWNrIiwidXNlQ29udGV4dCIsInVzZUVmZmVjdCIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJ1c2VJbnNlcnRpb25FZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVkdWNlciIsInVzZVJlZiIsInVzZVN0YXRlIiwidXNlRGVidWdWYWx1ZSIsInVzZURlZmVycmVkVmFsdWUiLCJ1c2VUcmFuc2l0aW9uIiwidXNlTXV0YWJsZVNvdXJjZSIsInVzZVN5bmNFeHRlcm5hbFN0b3JlIiwidXNlSWQiLCJ1bnN0YWJsZV9pc05ld1JlY29uY2lsZXIiLCJpZGVudGlmaWVyUHJlZml4IiwiS2kiLCJkaWdlc3QiLCJMaSIsIk1pIiwiTmkiLCJPaSIsIlBpIiwiUWkiLCJSaSIsImdldERlcml2ZWRTdGF0ZUZyb21FcnJvciIsImNvbXBvbmVudERpZENhdGNoIiwiU2kiLCJjb21wb25lbnRTdGFjayIsIlRpIiwicGluZ0NhY2hlIiwiVWkiLCJWaSIsIldpIiwiWGkiLCJSZWFjdEN1cnJlbnRPd25lciIsIllpIiwiWmkiLCIkaSIsImFqIiwiYmoiLCJjaiIsImRqIiwiZWoiLCJiYXNlTGFuZXMiLCJjYWNoZVBvb2wiLCJ0cmFuc2l0aW9ucyIsImZqIiwiZ2oiLCJoaiIsImlqIiwiamoiLCJVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSIsImNvbXBvbmVudFdpbGxVcGRhdGUiLCJraiIsImxqIiwicGVuZGluZ0NvbnRleHQiLCJtaiIsIkFqIiwiQmoiLCJDaiIsIkRqIiwibmoiLCJvaiIsInBqIiwiZmFsbGJhY2siLCJxaiIsInJqIiwic2oiLCJ0aiIsImRhdGFzZXQiLCJkZ3N0IiwidWoiLCJ2aiIsIl9yZWFjdFJldHJ5Iiwic3VidHJlZUZsYWdzIiwid2oiLCJ4aiIsImlzQmFja3dhcmRzIiwicmVuZGVyaW5nIiwicmVuZGVyaW5nU3RhcnRUaW1lIiwidGFpbE1vZGUiLCJ5aiIsIkVqIiwiUyIsIkZqIiwiR2oiLCJ3YXNNdWx0aXBsZSIsIm11bHRpcGxlIiwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIiwib25jbGljayIsImNyZWF0ZUVsZW1lbnROUyIsImF1dG9Gb2N1cyIsIlQiLCJIaiIsIklqIiwiSmoiLCJLaiIsIlUiLCJMaiIsIlYiLCJNaiIsIlciLCJOaiIsIk9qIiwiUWoiLCJSaiIsIlNqIiwiVGoiLCJVaiIsIlZqIiwiV2oiLCJfcmVhY3RSb290Q29udGFpbmVyIiwiWGoiLCJYIiwiWWoiLCJaaiIsImFrIiwib25Db21taXRGaWJlclVubW91bnQiLCJiayIsImNrIiwiZGsiLCJlayIsImZrIiwiaXNIaWRkZW4iLCJnayIsImhrIiwiaWsiLCJqayIsImtrIiwibGsiLCJfX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZSIsIldrIiwibWsiLCJuayIsIm9rIiwicGsiLCJZIiwiWiIsInFrIiwicmsiLCJzayIsInRrIiwidWsiLCJ2ayIsIndrIiwieGsiLCJ5ayIsInprIiwiQWsiLCJCayIsIkNrIiwiRGsiLCJFayIsImNhbGxiYWNrTm9kZSIsIndjIiwiZXhwaXJhdGlvblRpbWVzIiwiZXhwaXJlZExhbmVzIiwiY2FsbGJhY2tQcmlvcml0eSIsImlnIiwiRmsiLCJHayIsIkhrIiwiSWsiLCJKayIsIktrIiwiTGsiLCJNayIsIk5rIiwiT2siLCJQayIsImZpbmlzaGVkV29yayIsImZpbmlzaGVkTGFuZXMiLCJRayIsInRpbWVvdXRIYW5kbGUiLCJSayIsIlNrIiwiVGsiLCJVayIsIlZrIiwiWGsiLCJCYyIsIm11dGFibGVSZWFkTGFuZXMiLCJQaiIsIm1jIiwib25Db21taXRGaWJlclJvb3QiLCJvblJlY292ZXJhYmxlRXJyb3IiLCJvblBvc3RDb21taXRGaWJlclJvb3QiLCJZayIsIlprIiwiYWwiLCJpc1JlYWN0Q29tcG9uZW50IiwicGVuZGluZ0NoaWxkcmVuIiwiYmwiLCJtdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhIiwiY2wiLCJwZW5kaW5nU3VzcGVuc2VCb3VuZGFyaWVzIiwiZmwiLCJnbCIsImhsIiwiaWwiLCJqbCIsInpqIiwiJGsiLCJsbCIsInJlcG9ydEVycm9yIiwibWwiLCJfaW50ZXJuYWxSb290IiwibmwiLCJvbCIsInBsIiwicWwiLCJzbCIsInJsIiwidW5tb3VudCIsInVuc3RhYmxlX3NjaGVkdWxlSHlkcmF0aW9uIiwiZm9ybSIsInRsIiwidXNpbmdDbGllbnRFbnRyeVBvaW50IiwiRXZlbnRzIiwidWwiLCJmaW5kRmliZXJCeUhvc3RJbnN0YW5jZSIsImJ1bmRsZVR5cGUiLCJyZW5kZXJlclBhY2thZ2VOYW1lIiwidmwiLCJyZW5kZXJlckNvbmZpZyIsIm92ZXJyaWRlSG9va1N0YXRlIiwib3ZlcnJpZGVIb29rU3RhdGVEZWxldGVQYXRoIiwib3ZlcnJpZGVIb29rU3RhdGVSZW5hbWVQYXRoIiwib3ZlcnJpZGVQcm9wcyIsIm92ZXJyaWRlUHJvcHNEZWxldGVQYXRoIiwib3ZlcnJpZGVQcm9wc1JlbmFtZVBhdGgiLCJzZXRFcnJvckhhbmRsZXIiLCJzZXRTdXNwZW5zZUhhbmRsZXIiLCJzY2hlZHVsZVVwZGF0ZSIsImN1cnJlbnREaXNwYXRjaGVyUmVmIiwiZmluZEhvc3RJbnN0YW5jZUJ5RmliZXIiLCJrbCIsImZpbmRIb3N0SW5zdGFuY2VzRm9yUmVmcmVzaCIsInNjaGVkdWxlUmVmcmVzaCIsInNjaGVkdWxlUm9vdCIsInNldFJlZnJlc2hIYW5kbGVyIiwiZ2V0Q3VycmVudEZpYmVyIiwicmVjb25jaWxlclZlcnNpb24iLCJfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18iLCJ3bCIsImlzRGlzYWJsZWQiLCJzdXBwb3J0c0ZpYmVyIiwiaW5qZWN0IiwiY3JlYXRlUG9ydGFsIiwiZGwiLCJjcmVhdGVSb290IiwidW5zdGFibGVfc3RyaWN0TW9kZSIsImZpbmRET01Ob2RlIiwiZmx1c2hTeW5jIiwiaHlkcmF0ZSIsImh5ZHJhdGVSb290IiwiaHlkcmF0ZWRTb3VyY2VzIiwiX2dldFZlcnNpb24iLCJfc291cmNlIiwidW5tb3VudENvbXBvbmVudEF0Tm9kZSIsInVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzIiwidW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXIiLCJjaGVja0RDRSIsIkltbXV0YWJsZVByb3BUeXBlcyIsIkltbXV0YWJsZSIsIkFOT05ZTU9VUyIsInByb2R1Y3Rpb25UeXBlQ2hlY2tlciIsImdldFByb2R1Y3Rpb25UeXBlQ2hlY2tlciIsImdldFByb3BUeXBlIiwicHJvcFZhbHVlIiwicHJvcFR5cGUiLCJjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlciIsInZhbGlkYXRlIiwiY2hlY2tUeXBlIiwiY2hhaW5lZENoZWNrVHlwZSIsImNyZWF0ZUl0ZXJhYmxlU3ViY2xhc3NUeXBlQ2hlY2tlciIsInN1YmNsYXNzTmFtZSIsInZhbGlkYXRvciIsImNyZWF0ZUltbXV0YWJsZVR5cGVDaGVja2VyIiwiaW1tdXRhYmxlQ2xhc3NOYW1lIiwiaW1tdXRhYmxlQ2xhc3NUeXBlVmFsaWRhdG9yIiwibGlzdE9mIiwibWFwT2YiLCJvcmRlcmVkTWFwT2YiLCJzZXRPZiIsIm9yZGVyZWRTZXRPZiIsInN0YWNrT2YiLCJpdGVyYWJsZU9mIiwicmVjb3JkT2YiLCJtYXBDb250YWlucyIsIm9yZGVyZWRNYXBDb250YWlucyIsIm9yZGVyZWRNYXAiLCJvcmRlcmVkU2V0IiwiZm9yY2VVcGRhdGUiLCJfX3NlbGYiLCJfX3NvdXJjZSIsIl9zdGF0dXMiLCJfcmVzdWx0IiwiRnJhZ21lbnQiLCJQcm9maWxlciIsIlN0cmljdE1vZGUiLCJTdXNwZW5zZSIsImNyZWF0ZUNvbnRleHQiLCJfY3VycmVudFZhbHVlMiIsIl90aHJlYWRDb3VudCIsIlByb3ZpZGVyIiwiQ29uc3VtZXIiLCJfZGVmYXVsdFZhbHVlIiwiX2dsb2JhbE5hbWUiLCJjcmVhdGVGYWN0b3J5IiwiY3JlYXRlUmVmIiwiZm9yd2FyZFJlZiIsImlzVmFsaWRFbGVtZW50IiwibGF6eSIsInN0YXJ0VHJhbnNpdGlvbiIsInVuc3RhYmxlX2FjdCIsImNvZGVzIiwiY3JlYXRlRXJyb3JUeXBlIiwiX0Jhc2UiLCJhcmcxIiwiYXJnMiIsImFyZzMiLCJfaW5oZXJpdHNMb29zZSIsImV4cGVjdGVkIiwidGhpbmciLCJkZXRlcm1pbmVyIiwiZW5kc1dpdGgiLCJ0aGlzX2xlbiIsIm9iamVjdEtleXMiLCJEdXBsZXgiLCJSZWFkYWJsZSIsIldyaXRhYmxlIiwibWV0aG9kIiwiYWxsb3dIYWxmT3BlbiIsInJlYWRhYmxlIiwib25lbmQiLCJfd3JpdGFibGVTdGF0ZSIsImVuZGVkIiwib25FbmROVCIsImhpZ2hXYXRlck1hcmsiLCJnZXRCdWZmZXIiLCJfcmVhZGFibGVTdGF0ZSIsImRlc3Ryb3llZCIsIlBhc3NUaHJvdWdoIiwiVHJhbnNmb3JtIiwiX3RyYW5zZm9ybSIsImNodW5rIiwiUmVhZGFibGVTdGF0ZSIsIkVFbGlzdGVuZXJDb3VudCIsIlN0cmVhbSIsIk91clVpbnQ4QXJyYXkiLCJkZWJ1Z1V0aWwiLCJkZWJ1Z2xvZyIsIlN0cmluZ0RlY29kZXIiLCJjcmVhdGVSZWFkYWJsZVN0cmVhbUFzeW5jSXRlcmF0b3IiLCJCdWZmZXJMaXN0IiwiZGVzdHJveUltcGwiLCJnZXRIaWdoV2F0ZXJNYXJrIiwiX3JlcXVpcmUkY29kZXMiLCJFUlJfU1RSRUFNX1BVU0hfQUZURVJfRU9GIiwiRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQiLCJFUlJfU1RSRUFNX1VOU0hJRlRfQUZURVJfRU5EX0VWRU5UIiwiZXJyb3JPckRlc3Ryb3kiLCJrUHJveHlFdmVudHMiLCJpc0R1cGxleCIsIm9iamVjdE1vZGUiLCJyZWFkYWJsZU9iamVjdE1vZGUiLCJwaXBlcyIsInBpcGVzQ291bnQiLCJmbG93aW5nIiwiZW5kRW1pdHRlZCIsInJlYWRpbmciLCJzeW5jIiwibmVlZFJlYWRhYmxlIiwiZW1pdHRlZFJlYWRhYmxlIiwicmVhZGFibGVMaXN0ZW5pbmciLCJyZXN1bWVTY2hlZHVsZWQiLCJwYXVzZWQiLCJlbWl0Q2xvc2UiLCJhdXRvRGVzdHJveSIsImRlZmF1bHRFbmNvZGluZyIsImF3YWl0RHJhaW4iLCJyZWFkaW5nTW9yZSIsIl9yZWFkIiwiX2Rlc3Ryb3kiLCJyZWFkYWJsZUFkZENodW5rIiwiYWRkVG9Gcm9udCIsInNraXBDaHVua0NoZWNrIiwib25Fb2ZDaHVuayIsImVtaXRSZWFkYWJsZSIsImVtaXRSZWFkYWJsZV8iLCJjaHVua0ludmFsaWQiLCJfaXNVaW50OEFycmF5IiwiX3VpbnQ4QXJyYXlUb0J1ZmZlciIsImFkZENodW5rIiwibWF5YmVSZWFkTW9yZSIsIl91bmRlc3Ryb3kiLCJ1bmRlc3Ryb3kiLCJpc1BhdXNlZCIsInNldEVuY29kaW5nIiwiTUFYX0hXTSIsImhvd011Y2hUb1JlYWQiLCJjb21wdXRlTmV3SGlnaFdhdGVyTWFyayIsImZsb3ciLCJtYXliZVJlYWRNb3JlXyIsInVwZGF0ZVJlYWRhYmxlTGlzdGVuaW5nIiwicmVzdW1lIiwiblJlYWRpbmdOZXh0VGljayIsInJlc3VtZV8iLCJmcm9tTGlzdCIsImNvbnN1bWUiLCJlbmRSZWFkYWJsZSIsImVuZFJlYWRhYmxlTlQiLCJ3U3RhdGUiLCJmaW5pc2hlZCIsIm5PcmlnIiwiZG9SZWFkIiwicGlwZSIsImRlc3QiLCJwaXBlT3B0cyIsImVuZEZuIiwic3Rkb3V0Iiwic3RkZXJyIiwidW5waXBlIiwib251bnBpcGUiLCJ1bnBpcGVJbmZvIiwiaGFzVW5waXBlZCIsImNsZWFudXAiLCJvbmNsb3NlIiwib25maW5pc2giLCJvbmRyYWluIiwib25lcnJvciIsIm9uZGF0YSIsImNsZWFuZWRVcCIsIm5lZWREcmFpbiIsInBpcGVPbkRyYWluIiwicGlwZU9uRHJhaW5GdW5jdGlvblJlc3VsdCIsInBhdXNlIiwiZGVzdHMiLCJldiIsIm1ldGhvZFdyYXAiLCJtZXRob2RXcmFwUmV0dXJuRnVuY3Rpb24iLCJhc3luY0l0ZXJhdG9yIiwiX2Zyb21MaXN0IiwiRVJSX01VTFRJUExFX0NBTExCQUNLIiwiRVJSX1RSQU5TRk9STV9BTFJFQURZX1RSQU5TRk9STUlORyIsIkVSUl9UUkFOU0ZPUk1fV0lUSF9MRU5HVEhfMCIsImFmdGVyVHJhbnNmb3JtIiwidHMiLCJfdHJhbnNmb3JtU3RhdGUiLCJ0cmFuc2Zvcm1pbmciLCJ3cml0ZWNiIiwid3JpdGVjaHVuayIsInJzIiwibmVlZFRyYW5zZm9ybSIsIndyaXRlZW5jb2RpbmciLCJfZmx1c2giLCJwcmVmaW5pc2giLCJfd3JpdGUiLCJlcnIyIiwiQ29ya2VkUmVxdWVzdCIsImZpbmlzaCIsIm9uQ29ya2VkRmluaXNoIiwiY29ya1JlcSIsInBlbmRpbmdjYiIsImNvcmtlZFJlcXVlc3RzRnJlZSIsIldyaXRhYmxlU3RhdGUiLCJpbnRlcm5hbFV0aWwiLCJkZXByZWNhdGUiLCJyZWFsSGFzSW5zdGFuY2UiLCJFUlJfU1RSRUFNX0NBTk5PVF9QSVBFIiwiRVJSX1NUUkVBTV9ERVNUUk9ZRUQiLCJFUlJfU1RSRUFNX05VTExfVkFMVUVTIiwiRVJSX1NUUkVBTV9XUklURV9BRlRFUl9FTkQiLCJFUlJfVU5LTk9XTl9FTkNPRElORyIsIm5vcCIsIndyaXRhYmxlT2JqZWN0TW9kZSIsImZpbmFsQ2FsbGVkIiwiZW5kaW5nIiwibm9EZWNvZGUiLCJkZWNvZGVTdHJpbmdzIiwid3JpdGluZyIsImNvcmtlZCIsImJ1ZmZlclByb2Nlc3NpbmciLCJvbndyaXRlIiwib253cml0ZVN0YXRlVXBkYXRlIiwid3JpdGVsZW4iLCJvbndyaXRlRXJyb3IiLCJmaW5pc2hNYXliZSIsImVycm9yRW1pdHRlZCIsIm5lZWRGaW5pc2giLCJidWZmZXJlZFJlcXVlc3QiLCJjbGVhckJ1ZmZlciIsImFmdGVyV3JpdGUiLCJsYXN0QnVmZmVyZWRSZXF1ZXN0IiwicHJlZmluaXNoZWQiLCJidWZmZXJlZFJlcXVlc3RDb3VudCIsIndyaXRldiIsIl93cml0ZXYiLCJmaW5hbCIsIl9maW5hbCIsImRvV3JpdGUiLCJvbndyaXRlRHJhaW4iLCJob2xkZXIiLCJhbGxCdWZmZXJzIiwiaXNCdWYiLCJjYWxsRmluYWwiLCJuZWVkIiwiclN0YXRlIiwid3JpdGFibGVTdGF0ZUJ1ZmZlckdldHRlciIsImhhc0luc3RhbmNlIiwid3JpdGVBZnRlckVuZCIsInZhbGlkQ2h1bmsiLCJ3cml0ZU9yQnVmZmVyIiwibmV3Q2h1bmsiLCJkZWNvZGVDaHVuayIsImNvcmsiLCJ1bmNvcmsiLCJzZXREZWZhdWx0RW5jb2RpbmciLCJlbmRXcml0YWJsZSIsIl9PYmplY3Qkc2V0UHJvdG90eXBlTyIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiaGludCIsInByaW0iLCJrTGFzdFJlc29sdmUiLCJrTGFzdFJlamVjdCIsImtFcnJvciIsImtFbmRlZCIsImtMYXN0UHJvbWlzZSIsImtIYW5kbGVQcm9taXNlIiwia1N0cmVhbSIsImNyZWF0ZUl0ZXJSZXN1bHQiLCJyZWFkQW5kUmVzb2x2ZSIsIm9uUmVhZGFibGUiLCJBc3luY0l0ZXJhdG9yUHJvdG90eXBlIiwiUmVhZGFibGVTdHJlYW1Bc3luY0l0ZXJhdG9yUHJvdG90eXBlIiwicHJvbWlzZSIsImxhc3RQcm9taXNlIiwid3JhcEZvck5leHQiLCJfcmV0dXJuIiwiX3RoaXMyIiwiX09iamVjdCRjcmVhdGUiLCJoYXNTdHJpbmdzIiwiX2dldFN0cmluZyIsIl9nZXRCdWZmZXIiLCJlbWl0RXJyb3JBbmRDbG9zZU5UIiwiZW1pdEVycm9yTlQiLCJlbWl0Q2xvc2VOVCIsInJlYWRhYmxlRGVzdHJveWVkIiwid3JpdGFibGVEZXN0cm95ZWQiLCJFUlJfU1RSRUFNX1BSRU1BVFVSRV9DTE9TRSIsImVvcyIsIm9ubGVnYWN5ZmluaXNoIiwid3JpdGFibGVFbmRlZCIsInJlYWRhYmxlRW5kZWQiLCJvbnJlcXVlc3QiLCJyZXEiLCJpc1JlcXVlc3QiLCJzZXRIZWFkZXIiLCJhYm9ydCIsIkVSUl9NSVNTSU5HX0FSR1MiLCJwaXBlbGluZSIsInN0cmVhbXMiLCJwb3BDYWxsYmFjayIsImRlc3Ryb3lzIiwiZGVzdHJveWVyIiwiY2xvc2VkIiwiRVJSX0lOVkFMSURfT1BUX1ZBTFVFIiwiZHVwbGV4S2V5IiwiaHdtIiwiaGlnaFdhdGVyTWFya0Zyb20iLCJfaW1tdXRhYmxlMiIsIl91dGlsaXRpZXMiLCJyZWR1Y2VycyIsImdldERlZmF1bHRTdGF0ZSIsInJlZHVjZXJLZXlzIiwiaW5wdXRTdGF0ZSIsInRlbXBvcmFyeVN0YXRlIiwicmVkdWNlck5hbWUiLCJuZXh0RG9tYWluU3RhdGUiLCJ2YWxpZGF0ZU5leHRTdGF0ZSIsIl9jb21iaW5lUmVkdWNlcnMzIiwiX2dldFN0YXRlTmFtZTIiLCJyZWR1Y2VyTmFtZXMiLCJzdGF0ZU5hbWUiLCJpc0ltbXV0YWJsZSIsInVuZXhwZWN0ZWRTdGF0ZVByb3BlcnR5TmFtZXMiLCJnZXRVbmV4cGVjdGVkSW52b2NhdGlvblBhcmFtZXRlck1lc3NhZ2UiLCJnZXRTdGF0ZU5hbWUiLCJfZ2V0U3RhdGVOYW1lMyIsIl9nZXRVbmV4cGVjdGVkSW52b2NhdGlvblBhcmFtZXRlck1lc3NhZ2UzIiwiX3ZhbGlkYXRlTmV4dFN0YXRlMyIsIm5leHRTdGF0ZSIsInJlcXVpcmVkIiwicG9ydCIsInByb3RvY29sIiwic2V0cyIsInBvc2l0aW9ucyIsInJlZ2V4cFN0ciIsImxhc3RHcm91cCIsImdyb3VwU3RhY2siLCJyZXBlYXRFcnIiLCJzdHJUb0NoYXJzIiwid29yZEJvdW5kYXJ5Iiwibm9uV29yZEJvdW5kYXJ5Iiwibm90V29yZHMiLCJpbnRzIiwibm90SW50cyIsIndoaXRlc3BhY2UiLCJub3RXaGl0ZXNwYWNlIiwiY2xhc3NUb2tlbnMiLCJ0b2tlbml6ZUNsYXNzIiwiYW55Q2hhciIsImdyb3VwIiwiSU5UUyIsIldPUkRTIiwiV0hJVEVTUEFDRSIsIlNMU0giLCJsYnMiLCJhMTYiLCJiMTYiLCJjOCIsImRjdHJsIiwiZXNsc2giLCJjb3B5UHJvcHMiLCJTYWZlQnVmZmVyIiwic29ydEluZGV4IiwicGVyZm9ybWFuY2UiLCJzZXRJbW1lZGlhdGUiLCJzdGFydFRpbWUiLCJleHBpcmF0aW9uVGltZSIsInByaW9yaXR5TGV2ZWwiLCJzY2hlZHVsaW5nIiwiaXNJbnB1dFBlbmRpbmciLCJNZXNzYWdlQ2hhbm5lbCIsInBvcnQyIiwicG9ydDEiLCJvbm1lc3NhZ2UiLCJwb3N0TWVzc2FnZSIsInVuc3RhYmxlX1Byb2ZpbGluZyIsInVuc3RhYmxlX2NvbnRpbnVlRXhlY3V0aW9uIiwidW5zdGFibGVfZm9yY2VGcmFtZVJhdGUiLCJ1bnN0YWJsZV9nZXRGaXJzdENhbGxiYWNrTm9kZSIsInVuc3RhYmxlX25leHQiLCJ1bnN0YWJsZV9wYXVzZUV4ZWN1dGlvbiIsInVuc3RhYmxlX3J1bldpdGhQcmlvcml0eSIsImRlbGF5IiwidW5zdGFibGVfd3JhcENhbGxiYWNrIiwiTm9uRXJyb3IiLCJfcHJlcGFyZVN1cGVyTWVzc2FnZSIsImNhcHR1cmVTdGFja1RyYWNlIiwiY29tbW9uUHJvcGVydGllcyIsImlzQ2FsbGVkIiwiZGVzdHJveUNpcmN1bGFyIiwidG9fIiwiZm9yY2VFbnVtZXJhYmxlIiwic2VyaWFsaXplRXJyb3IiLCJQT1NJVElWRV9JTkZJTklUWSIsImRlc2VyaWFsaXplRXJyb3IiLCJuZXdFcnJvciIsImhhc0Rlc2NyaXB0b3JzIiwiZ09QRCIsImZ1bmN0aW9uTGVuZ3RoSXNDb25maWd1cmFibGUiLCJmdW5jdGlvbkxlbmd0aElzV3JpdGFibGUiLCJibG9ja1NpemUiLCJmaW5hbFNpemUiLCJfYmxvY2siLCJfZmluYWxTaXplIiwiX2Jsb2NrU2l6ZSIsImFjY3VtIiwiYXNzaWduZWQiLCJfdXBkYXRlIiwicmVtIiwiYml0cyIsImxvd0JpdHMiLCJoaWdoQml0cyIsIl9oYXNoIiwiU0hBIiwiYWxnb3JpdGhtIiwiQWxnb3JpdGhtIiwic2hhIiwic2hhMSIsInNoYTIyNCIsInNoYTI1NiIsInNoYTM4NCIsInNoYTUxMiIsIlNoYSIsIl93Iiwicm90bDMwIiwiZnQiLCJfYSIsIl9iIiwiX2MiLCJfZCIsIl9lIiwiU2hhMSIsInJvdGw1IiwiU2hhMjU2IiwiU2hhMjI0IiwiX2YiLCJfZyIsIl9oIiwibWFqIiwic2lnbWEwIiwic2lnbWExIiwiZ2FtbWEwIiwiVDEiLCJUMiIsIlNIQTUxMiIsIlNoYTM4NCIsIl9haCIsIl9iaCIsIl9jaCIsIl9kaCIsIl9laCIsIl9maCIsIl9naCIsIl9oaCIsIl9hbCIsIl9ibCIsIl9jbCIsIl9kbCIsIl9lbCIsIl9mbCIsIl9nbCIsIl9obCIsIndyaXRlSW50NjRCRSIsIlNoYTUxMiIsInhsIiwiR2FtbWEwIiwiR2FtbWEwbCIsIkdhbW1hMSIsIkdhbW1hMWwiLCJnZXRDYXJyeSIsImdhbW1hMGwiLCJnYW1tYTEiLCJnYW1tYTFsIiwiV2k3aCIsIldpN2wiLCJXaTE2aCIsIldpMTZsIiwiV2lsIiwiV2loIiwibWFqaCIsIm1hamwiLCJzaWdtYTBoIiwic2lnbWEwbCIsInNpZ21hMWgiLCJzaWdtYTFsIiwiS2loIiwiS2lsIiwiY2hoIiwiY2hsIiwidDFsIiwidDFoIiwidDJsIiwidDJoIiwiU2hvcnRVbmlxdWVJZCIsIl9fZGVmUHJvcCIsIl9fZ2V0T3duUHJvcERlc2MiLCJfX2dldE93blByb3BOYW1lcyIsIl9fZ2V0T3duUHJvcFN5bWJvbHMiLCJfX2hhc093blByb3AiLCJfX3Byb3BJc0VudW0iLCJfX2RlZk5vcm1hbFByb3AiLCJfX3NwcmVhZFZhbHVlcyIsIl9fcHVibGljRmllbGQiLCJzcmNfZXhwb3J0cyIsIl9fZXhwb3J0IiwiREVGQVVMVF9PUFRJT05TIiwiREVGQVVMVF9VVUlEX0xFTkdUSCIsImRpY3Rpb25hcnkiLCJzaHVmZmxlIiwiY291bnRlciIsIl9TaG9ydFVuaXF1ZUlkIiwiYXJnT3B0aW9ucyIsIl9kaWdpdF9maXJzdF9hc2NpaSIsIl9kaWdpdF9sYXN0X2FzY2lpIiwibG93ZXJDYXNlIiwiX2FscGhhX2xvd2VyX2ZpcnN0X2FzY2lpIiwiX2FscGhhX2xvd2VyX2xhc3RfYXNjaWkiLCJ1cHBlckNhc2UiLCJfYWxwaGFfdXBwZXJfZmlyc3RfYXNjaWkiLCJfYWxwaGFfdXBwZXJfbGFzdF9hc2NpaSIsImRlY0RpZ2l0cyIsImFscGhhRGlnaXRzIiwiX2hleF9sYXN0X2FzY2lpIiwiX251bWJlcl9kaWN0X3JhbmdlcyIsIl9hbHBoYV9kaWN0X3JhbmdlcyIsIl9hbHBoYV9sb3dlcl9kaWN0X3JhbmdlcyIsIl9hbHBoYV91cHBlcl9kaWN0X3JhbmdlcyIsIl9hbHBoYW51bV9kaWN0X3JhbmdlcyIsIl9hbHBoYW51bV9sb3dlcl9kaWN0X3JhbmdlcyIsIl9hbHBoYW51bV91cHBlcl9kaWN0X3JhbmdlcyIsIl9oZXhfZGljdF9yYW5nZXMiLCJmaW5hbEFyZ3MiLCJmaW5hbERpY3QiLCJkaWN0SW5kZXgiLCJyYW5nZXNOYW1lIiwiX2RpY3RfcmFuZ2VzIiwicmFuZ2VUeXBlIiwicmFuZ2VUeXBlS2V5IiwiZGljdFJhbmdlIiwibG93ZXJCb3VuZCIsInVwcGVyQm91bmQiLCJQUk9CQUJJTElUWSIsImRpY3QiLCJkaWN0TGVuZ3RoIiwic2V0Q291bnRlciIsInNlcXVlbnRpYWxVVUlEIiwiY291bnRlckRpdiIsImNvdW50ZXJSZW0iLCJ0cnVuYyIsInV1aWRMZW5ndGgiLCJyYW5kb21VVUlEIiwicmFuZG9tUGFydElkeCIsImZvcm1hdHRlZFVVSUQiLCJmbk1hcCIsInBhZFN0YXJ0Iiwicm91bmRzIiwiYXZhaWxhYmxlVVVJRHMiLCJzcXJ0IiwiUEkiLCJhcHByb3hNYXhCZWZvcmVDb2xsaXNpb24iLCJzY29yZSIsImZpbmFsTGVuZ3RoIiwiaGV4U3RhbXAiLCJpZExlbmd0aCIsInJuZElkeCIsInJvdW5kIiwic3VpZCIsIl9tIiwicDEiLCJwMiIsInNldERpY3Rpb25hcnkiLCJybmQiLCJjb2xsaXNpb25Qcm9iYWJpbGl0eSIsInVuaXF1ZW5lc3MiLCJnZXRWZXJzaW9uIiwicGFyc2VTdGFtcCIsIm1vZCIsImV4Y2VwdCIsIl9fY29weVByb3BzIiwiY2FsbEJvdW5kIiwiJFdlYWtNYXAiLCIkTWFwIiwiJHdlYWtNYXBHZXQiLCIkd2Vha01hcFNldCIsIiR3ZWFrTWFwSGFzIiwiJG1hcEdldCIsIiRtYXBTZXQiLCIkbWFwSGFzIiwibGlzdEdldE5vZGUiLCJjdXJyIiwiJHdtIiwiJG0iLCIkbyIsImNoYW5uZWwiLCJhc3NlcnQiLCJsaXN0R2V0IiwibGlzdEhhcyIsImxpc3RTZXQiLCJzdGF0aWNzIiwiY29uZiIsImNvbXBvc2FibGVzIiwic3RhbXBpdCIsIkVFIiwiX2lzU3RkaW8iLCJkaWRPbkVuZCIsIm5vcm1hbGl6ZUVuY29kaW5nIiwibmVuYyIsIl9ub3JtYWxpemVFbmNvZGluZyIsInJldHJpZWQiLCJ1dGYxNlRleHQiLCJ1dGYxNkVuZCIsImZpbGxMYXN0IiwidXRmOEZpbGxMYXN0IiwiYmFzZTY0VGV4dCIsImJhc2U2NEVuZCIsInNpbXBsZVdyaXRlIiwic2ltcGxlRW5kIiwibGFzdE5lZWQiLCJsYXN0VG90YWwiLCJsYXN0Q2hhciIsInV0ZjhDaGVja0J5dGUiLCJieXRlIiwidXRmOENoZWNrRXh0cmFCeXRlcyIsInV0ZjhFbmQiLCJ1dGY4VGV4dCIsInRvdGFsIiwidXRmOENoZWNrSW5jb21wbGV0ZSIsImFjdGl2ZSIsImdldFJhbmdlQXQiLCJibHVyIiwidG9TIiwib3duRW51bWVyYWJsZUtleXMiLCJhbGl2ZSIsIndhbGtlciIsIm5vZGVfIiwibW9kaWZpZXJzIiwia2VlcEdvaW5nIiwiaXNSb290IiwiY2lyY3VsYXIiLCJzdG9wSGVyZSIsInByZSIsInBvc3QiLCJzdG9wIiwidXBkYXRlU3RhdGUiLCJpc0xlYWYiLCJub3RMZWFmIiwibm90Um9vdCIsImlzTGFzdCIsIlRyYXZlcnNlIiwidHJhdmVyc2UiLCJwcyIsInFzIiwiY29udHJvbE9yV2hpdGVzcGFjZSIsIkNSSFRMRiIsInNsYXNoZXMiLCJwcm90b2NvbHJlIiwid2luZG93c0RyaXZlTGV0dGVyIiwidHJpbUxlZnQiLCJhZGRyZXNzIiwiaWdub3JlIiwibG9sY2F0aW9uIiwibG9jIiwiZmluYWxkZXN0aW5hdGlvbiIsIlVybCIsInBhdGhuYW1lIiwic2NoZW1lIiwiZXh0cmFjdFByb3RvY29sIiwiZm9yd2FyZFNsYXNoZXMiLCJvdGhlclNsYXNoZXMiLCJzbGFzaGVzQ291bnQiLCJyZWxhdGl2ZSIsImV4dHJhY3RlZCIsImluc3RydWN0aW9uIiwiaW5zdHJ1Y3Rpb25zIiwidXAiLCJob3N0IiwiaG9zdG5hbWUiLCJ1c2VybmFtZSIsImF1dGgiLCJpbnMiLCJ1c2VTeW5jRXh0ZXJuYWxTdG9yZVdpdGhTZWxlY3RvciIsImhhc1ZhbHVlIiwibG9jYWxTdG9yYWdlIiwidHJhY2UiLCJpc0Nsb3NpbmdUYWciLCJpc1NlbGZDbG9zaW5nVGFnIiwiaXNPcGVuaW5nVGFnIiwiaXNUYWciLCJnZXRUeXBlIiwiaW5kZW50b3IiLCJ0ZXh0Tm9kZXNPblNhbWVMaW5lIiwiaW5kaWNlc1RvUmVtb3ZlIiwicmF3UmVzdWx0IiwibGV4ZXIiLCJ4bWxTdHIiLCJzcGxpdE9uVGFncyIsImxpbmUiLCJpbmRlbnRhdGlvbiIsIm9uZUJlZm9yZSIsInR3b0JlZm9yZSIsIlhNTF9DSEFSQUNURVJfTUFQIiwiZXNjYXBlRm9yWE1MIiwiaW5kZW50X2NvdW50IiwiaW5kZW50X3NwYWNlcyIsImNyZWF0ZV9pbmRlbnQiLCJjaGFyYWN0ZXIiLCJfZWxlbSIsImljb3VudCIsImluZGVudHMiLCJpbnRlcnJ1cHQiLCJpc1N0cmluZ0NvbnRlbnQiLCJnZXRfYXR0cmlidXRlcyIsIl9hdHRyIiwiX2NkYXRhIiwicHJvY2VlZCIsImludGVycnVwdGVkIiwiaW5zdGFudCIsImRlY2xhcmF0aW9uIiwiYWRkWG1sRGVjbGFyYXRpb24iLCJzdGFuZGFsb25lIiwiaXNOYXRpdmVTbW9vdGhTY3JvbGxFbmFibGVkT24iLCJnZXRDb21wdXRlZFN0eWxlIiwibWFrZVNjcm9sbGVyIiwiY29udGFpbmVyIiwiZGVmYXVsdER1cmF0aW9uIiwiZWRnZU9mZnNldCIsInNjcm9sbFRpbWVvdXRJZCIsInNldFNjcm9sbFRpbWVvdXRJZCIsInN0b3BTY3JvbGwiLCJnZXRUb3BXaXRoRWRnZU9mZnNldCIsImdldFRvcE9mIiwic2Nyb2xsVG9ZIiwidGFyZ2V0WSIsImR1cmF0aW9uIiwib25Eb25lIiwidG9ZIiwic3RhcnRZIiwiZ2V0WSIsImRpc3RhbmNlIiwibG9vcFNjcm9sbCIsImdldEhlaWdodCIsInNjcm9sbEhlaWdodCIsInNjcm9sbFRvRWxlbSIsInNjcm9sbEludG9WaWV3IiwiZWxlbUhlaWdodCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImVsZW1Cb3R0b20iLCJjb250YWluZXJIZWlnaHQiLCJjb250YWluZXJCb3R0b20iLCJzY3JvbGxUb0NlbnRlck9mIiwic2V0dXAiLCJuZXdEZWZhdWx0RHVyYXRpb24iLCJuZXdFZGdlT2Zmc2V0IiwiaW50b1ZpZXciLCJjZW50ZXIiLCJtb3ZpbmciLCJkb2NFbGVtIiwiZ2V0RG9jWSIsInNjcm9sbFkiLCJ6ZW5zY3JvbGwiLCJzY3JvbGxpbmdFbGVtZW50Iiwic2Nyb2xsVG8iLCJpbm5lckhlaWdodCIsImNsaWVudEhlaWdodCIsIm9mZnNldFRvcCIsImNyZWF0ZVNjcm9sbGVyIiwic2Nyb2xsQ29udGFpbmVyIiwibm9aZW5zbW9vdGgiLCJpc0hpc3RvcnlTdXBwb3J0ZWQiLCJoaXN0b3J5IiwiaXNTY3JvbGxSZXN0b3JhdGlvblN1cHBvcnRlZCIsInNjcm9sbFJlc3RvcmF0aW9uIiwiemVuc2Nyb2xsWSIsInRhcmdldEVsZW0iLCJnZXRFbGVtZW50QnlJZCIsImRpZmYiLCJSRV9ub1plbnNtb290aCIsImFuY2hvciIsImhpc3RvcnlTdGF0ZSIsInJlcGxhY2VTdGF0ZSIsInB1c2hTdGF0ZSIsIl9PYmplY3QkYXNzaWduIiwiX2JpbmRJbnN0YW5jZVByb3BlcnR5IiwiX2V4dGVuZHMiLCJjbGFzc05hbWVzIiwiYXBwZW5kQ2xhc3MiLCJwYXJzZVZhbHVlIiwibmV3Q2xhc3MiLCJnZXRCdWlsdEluUHJvdG90eXBlTWV0aG9kIiwiaXNQcm90b3R5cGVPZiIsIkZ1bmN0aW9uUHJvdG90eXBlIiwiaXQiLCJvd24iLCJpc0NhbGxhYmxlIiwidHJ5VG9TdHJpbmciLCJhcmd1bWVudCIsIiRTdHJpbmciLCJ0b0luZGV4ZWRPYmplY3QiLCJ0b0Fic29sdXRlSW5kZXgiLCJsZW5ndGhPZkFycmF5TGlrZSIsImNyZWF0ZU1ldGhvZCIsIklTX0lOQ0xVREVTIiwiJHRoaXMiLCJ1bmN1cnJ5VGhpcyIsInN0cmluZ1NsaWNlIiwiVE9fU1RSSU5HX1RBR19TVVBQT1JUIiwiY2xhc3NvZlJhdyIsIlRPX1NUUklOR19UQUciLCJ3ZWxsS25vd25TeW1ib2wiLCJDT1JSRUNUX0FSR1VNRU5UUyIsInRyeUdldCIsImNhbGxlZSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZSIsImRlZmluZVByb3BlcnR5TW9kdWxlIiwiZXhjZXB0aW9ucyIsImZhaWxzIiwiREVTQ1JJUFRPUlMiLCJjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IiLCJjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkiLCJkb2N1bWVudEFsbCIsIklTX0hUTUxEREEiLCJFWElTVFMiLCJDU1NSdWxlTGlzdCIsIkNTU1N0eWxlRGVjbGFyYXRpb24iLCJDU1NWYWx1ZUxpc3QiLCJDbGllbnRSZWN0TGlzdCIsIkRPTVJlY3RMaXN0IiwiRE9NU3RyaW5nTGlzdCIsIkRPTVRva2VuTGlzdCIsIkRhdGFUcmFuc2Zlckl0ZW1MaXN0IiwiRmlsZUxpc3QiLCJIVE1MQWxsQ29sbGVjdGlvbiIsIkhUTUxDb2xsZWN0aW9uIiwiSFRNTFNlbGVjdEVsZW1lbnQiLCJNZWRpYUxpc3QiLCJNaW1lVHlwZUFycmF5IiwiTm9kZUxpc3QiLCJQYWludFJlcXVlc3RMaXN0IiwiUGx1Z2luIiwiUGx1Z2luQXJyYXkiLCJTVkdMZW5ndGhMaXN0IiwiU1ZHTnVtYmVyTGlzdCIsIlNWR1BhdGhTZWdMaXN0IiwiU1ZHUG9pbnRMaXN0IiwiU1ZHU3RyaW5nTGlzdCIsIlNWR1RyYW5zZm9ybUxpc3QiLCJTb3VyY2VCdWZmZXJMaXN0IiwiU3R5bGVTaGVldExpc3QiLCJUZXh0VHJhY2tDdWVMaXN0IiwiVGV4dFRyYWNrTGlzdCIsIlRvdWNoTGlzdCIsIkRlbm8iLCJ2OCIsIlRFU1QiLCJWOF9PUl9DSEFLUkFfU1RBQ0tfRU5UUlkiLCJJU19WOF9PUl9DSEFLUkFfU1RBQ0siLCJkcm9wRW50cmllcyIsImNsZWFyRXJyb3JTdGFjayIsIkVSUk9SX1NUQUNLX0lOU1RBTExBQkxFIiwiaXNGb3JjZWQiLCJ3cmFwQ29uc3RydWN0b3IiLCJOYXRpdmVDb25zdHJ1Y3RvciIsIldyYXBwZXIiLCJGT1JDRUQiLCJVU0VfTkFUSVZFIiwiVklSVFVBTF9QUk9UT1RZUEUiLCJzb3VyY2VQcm9wZXJ0eSIsInRhcmdldFByb3BlcnR5IiwibmF0aXZlUHJvcGVydHkiLCJyZXN1bHRQcm9wZXJ0eSIsIlRBUkdFVCIsIkdMT0JBTCIsIlNUQVRJQyIsInN0YXQiLCJQUk9UTyIsIm5hdGl2ZVNvdXJjZSIsInRhcmdldFByb3RvdHlwZSIsImZvcmNlZCIsImRvbnRDYWxsR2V0U2V0IiwicmVhbCIsIk5BVElWRV9CSU5EIiwiYUNhbGxhYmxlIiwiYXJyYXlTbGljZSIsImZhY3RvcmllcyIsIlByb3RvdHlwZSIsInBhcnRBcmdzIiwiYm91bmRGdW5jdGlvbiIsImdldERlc2NyaXB0b3IiLCJQUk9QRVIiLCJzb21ldGhpbmciLCJDT05GSUdVUkFCTEUiLCJ1bmN1cnJ5VGhpc1dpdGhCaW5kIiwiQ09OU1RSVUNUT1IiLCJNRVRIT0QiLCJwdXJlTWV0aG9kIiwiTmF0aXZlUHJvdG90eXBlIiwiYUZ1bmN0aW9uIiwiY2xhc3NvZiIsImdldE1ldGhvZCIsImlzTnVsbE9yVW5kZWZpbmVkIiwiSXRlcmF0b3JzIiwiSVRFUkFUT1IiLCJhbk9iamVjdCIsImdldEl0ZXJhdG9yTWV0aG9kIiwidXNpbmdJdGVyYXRvciIsIml0ZXJhdG9yTWV0aG9kIiwiY2hlY2siLCJnbG9iYWxUaGlzIiwiZ2V0QnVpbHRJbiIsImR1bW15IiwiTmV3VGFyZ2V0UHJvdG90eXBlIiwiTkFUSVZFX1dFQUtfTUFQIiwic2hhcmVkS2V5IiwiaGlkZGVuS2V5cyIsIk9CSkVDVF9BTFJFQURZX0lOSVRJQUxJWkVEIiwic3RvcmUiLCJmYWNhZGUiLCJTVEFURSIsImVuZm9yY2UiLCJnZXR0ZXJGb3IiLCJUWVBFIiwiQXJyYXlQcm90b3R5cGUiLCIkZG9jdW1lbnRBbGwiLCJyZXBsYWNlbWVudCIsImZlYXR1cmUiLCJkZXRlY3Rpb24iLCJub3JtYWxpemUiLCJQT0xZRklMTCIsIk5BVElWRSIsIlVTRV9TWU1CT0xfQVNfVUlEIiwiJFN5bWJvbCIsImlzQXJyYXlJdGVyYXRvck1ldGhvZCIsIml0ZXJhdG9yQ2xvc2UiLCJSZXN1bHQiLCJSZXN1bHRQcm90b3R5cGUiLCJ1bmJvdW5kRnVuY3Rpb24iLCJpdGVyRm4iLCJBU19FTlRSSUVTIiwiSVNfUkVDT1JEIiwiSVNfSVRFUkFUT1IiLCJJTlRFUlJVUFRFRCIsImNhbGxGbiIsImlubmVyUmVzdWx0IiwiaW5uZXJFcnJvciIsIkl0ZXJhdG9yUHJvdG90eXBlIiwic2V0VG9TdHJpbmdUYWciLCJyZXR1cm5UaGlzIiwiSXRlcmF0b3JDb25zdHJ1Y3RvciIsIk5BTUUiLCJFTlVNRVJBQkxFX05FWFQiLCIkIiwiSVNfUFVSRSIsIkZ1bmN0aW9uTmFtZSIsImNyZWF0ZUl0ZXJhdG9yQ29uc3RydWN0b3IiLCJkZWZpbmVCdWlsdEluIiwiSXRlcmF0b3JzQ29yZSIsIlBST1BFUl9GVU5DVElPTl9OQU1FIiwiQ09ORklHVVJBQkxFX0ZVTkNUSU9OX05BTUUiLCJCVUdHWV9TQUZBUklfSVRFUkFUT1JTIiwiREVGQVVMVCIsIklTX1NFVCIsIkN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSIsIktFWSIsImdldEl0ZXJhdGlvbk1ldGhvZCIsIktJTkQiLCJkZWZhdWx0SXRlcmF0b3IiLCJJTkNPUlJFQ1RfVkFMVUVTX05BTUUiLCJuYXRpdmVJdGVyYXRvciIsImFueU5hdGl2ZUl0ZXJhdG9yIiwiUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlIiwiYXJyYXlJdGVyYXRvciIsInRvTGVuZ3RoIiwiJGRlZmF1bHQiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZU1vZHVsZSIsIkluZGV4ZWRPYmplY3QiLCIkYXNzaWduIiwiYXJndW1lbnRzTGVuZ3RoIiwiYWN0aXZlWERvY3VtZW50IiwiZGVmaW5lUHJvcGVydGllc01vZHVsZSIsImVudW1CdWdLZXlzIiwiZG9jdW1lbnRDcmVhdGVFbGVtZW50IiwiUFJPVE9UWVBFIiwiU0NSSVBUIiwiRW1wdHlDb25zdHJ1Y3RvciIsInNjcmlwdFRhZyIsIkxUIiwiTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWCIsInRlbXAiLCJOdWxsUHJvdG9PYmplY3QiLCJBY3RpdmVYT2JqZWN0IiwiaWZyYW1lRG9jdW1lbnQiLCJpZnJhbWUiLCJKUyIsIlByb3BlcnRpZXMiLCJWOF9QUk9UT1RZUEVfREVGSU5FX0JVRyIsIklFOF9ET01fREVGSU5FIiwidG9Qcm9wZXJ0eUtleSIsIiRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJFTlVNRVJBQkxFIiwiV1JJVEFCTEUiLCJBdHRyaWJ1dGVzIiwiaW50ZXJuYWxPYmplY3RLZXlzIiwiQ09SUkVDVF9QUk9UT1RZUEVfR0VUVEVSIiwiT2JqZWN0UHJvdG90eXBlIiwiJHByb3BlcnR5SXNFbnVtZXJhYmxlIiwiTkFTSE9STl9CVUciLCJ1bmN1cnJ5VGhpc0FjY2Vzc29yIiwiYVBvc3NpYmxlUHJvdG90eXBlIiwic2V0dGVyIiwiQ09SUkVDVF9TRVRURVIiLCJwcmVmIiwiZ2V0T3duUHJvcGVydHlOYW1lc01vZHVsZSIsIlRhcmdldCIsIlNvdXJjZSIsIlRBRyIsIlNFVF9NRVRIT0QiLCJkZWZpbmVHbG9iYWxQcm9wZXJ0eSIsIlNIQVJFRCIsImNvcHlyaWdodCIsImxpY2Vuc2UiLCJ0b0ludGVnZXJPckluZmluaXR5IiwicmVxdWlyZU9iamVjdENvZXJjaWJsZSIsIkNPTlZFUlRfVE9fU1RSSU5HIiwiY29kZUF0IiwiVjhfVkVSU0lPTiIsImludGVnZXIiLCJvcmRpbmFyeVRvUHJpbWl0aXZlIiwiVE9fUFJJTUlUSVZFIiwiZXhvdGljVG9QcmltIiwicG9zdGZpeCIsIk5BVElWRV9TWU1CT0wiLCJXZWxsS25vd25TeW1ib2xzU3RvcmUiLCJjcmVhdGVXZWxsS25vd25TeW1ib2wiLCJ3aXRob3V0U2V0dGVyIiwiY29weUNvbnN0cnVjdG9yUHJvcGVydGllcyIsInByb3h5QWNjZXNzb3IiLCJpbmhlcml0SWZSZXF1aXJlZCIsIm5vcm1hbGl6ZVN0cmluZ0FyZ3VtZW50IiwiaW5zdGFsbEVycm9yQ2F1c2UiLCJpbnN0YWxsRXJyb3JTdGFjayIsIkZVTExfTkFNRSIsIklTX0FHR1JFR0FURV9FUlJPUiIsIlNUQUNLX1RSQUNFX0xJTUlUIiwiT1BUSU9OU19QT1NJVElPTiIsIkVSUk9SX05BTUUiLCJPcmlnaW5hbEVycm9yIiwiT3JpZ2luYWxFcnJvclByb3RvdHlwZSIsIkJhc2VFcnJvciIsIldyYXBwZWRFcnJvciIsIndyYXBFcnJvckNvbnN0cnVjdG9yV2l0aENhdXNlIiwiQUdHUkVHQVRFX0VSUk9SIiwiJEFnZ3JlZ2F0ZUVycm9yIiwiQWdncmVnYXRlRXJyb3JQcm90b3R5cGUiLCJlcnJvcnNBcnJheSIsImFkZFRvVW5zY29wYWJsZXMiLCJJbnRlcm5hbFN0YXRlTW9kdWxlIiwiZGVmaW5lSXRlcmF0b3IiLCJjcmVhdGVJdGVyUmVzdWx0T2JqZWN0IiwiQVJSQVlfSVRFUkFUT1IiLCJzZXRJbnRlcm5hbFN0YXRlIiwiZ2V0SW50ZXJuYWxTdGF0ZSIsIml0ZXJhdGVkIiwiQXJndW1lbnRzIiwiV0VCX0FTU0VNQkxZIiwiV2ViQXNzZW1ibHkiLCJleHBvcnRHbG9iYWxFcnJvckNhdXNlV3JhcHBlciIsImV4cG9ydFdlYkFzc2VtYmx5RXJyb3JDYXVzZVdyYXBwZXIiLCJDb21waWxlRXJyb3IiLCJMaW5rRXJyb3IiLCJSdW50aW1lRXJyb3IiLCJTVFJJTkdfSVRFUkFUT1IiLCJwb2ludCIsIkRPTUl0ZXJhYmxlcyIsIkNPTExFQ1RJT05fTkFNRSIsIl9fd2VicGFja19tb2R1bGVfY2FjaGVfXyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImNhY2hlZE1vZHVsZSIsImxvYWRlZCIsIl9fd2VicGFja19tb2R1bGVzX18iLCJnZXR0ZXIiLCJucyIsImRlZiIsImRlZmluaXRpb24iLCJubWQiLCJmb3JtYXRQcm9kRXJyb3JNZXNzYWdlIiwic3ltYm9sX29ic2VydmFibGVfZGVmYXVsdCIsIm9ic2VydmFibGUiLCJyYW5kb21TdHJpbmciLCJhY3Rpb25UeXBlc19kZWZhdWx0IiwiSU5JVCIsIlJFUExBQ0UiLCJQUk9CRV9VTktOT1dOX0FDVElPTiIsImNyZWF0ZVN0b3JlIiwicHJlbG9hZGVkU3RhdGUiLCJlbmhhbmNlciIsImN1cnJlbnRSZWR1Y2VyIiwiY3VycmVudFN0YXRlIiwiY3VycmVudExpc3RlbmVycyIsIm5leHRMaXN0ZW5lcnMiLCJsaXN0ZW5lcklkQ291bnRlciIsImlzRGlzcGF0Y2hpbmciLCJlbnN1cmVDYW5NdXRhdGVOZXh0TGlzdGVuZXJzIiwiZ2V0U3RhdGUiLCJzdWJzY3JpYmUiLCJpc1N1YnNjcmliZWQiLCJsaXN0ZW5lcklkIiwidW5zdWJzY3JpYmUiLCJyZXBsYWNlUmVkdWNlciIsIm5leHRSZWR1Y2VyIiwib3V0ZXJTdWJzY3JpYmUiLCJvYnNlcnZlciIsIm9ic2VydmVTdGF0ZSIsIm9ic2VydmVyQXNPYnNlcnZlciIsImJpbmRBY3Rpb25DcmVhdG9yIiwiYWN0aW9uQ3JlYXRvciIsImNvbXBvc2UiLCJmdW5jcyIsIk5FV19USFJPV05fRVJSIiwiTkVXX1RIUk9XTl9FUlJfQkFUQ0giLCJORVdfU1BFQ19FUlIiLCJORVdfU1BFQ19FUlJfQkFUQ0giLCJORVdfQVVUSF9FUlIiLCJDTEVBUiIsIkNMRUFSX0JZIiwibmV3VGhyb3duRXJyIiwibmV3VGhyb3duRXJyQmF0Y2giLCJuZXdTcGVjRXJyIiwibmV3U3BlY0VyckJhdGNoIiwiZXJyQXJyYXkiLCJuZXdBdXRoRXJyIiwiY2xlYXJCeSIsIm1ha2VXaW5kb3ciLCJ3aW4iLCJGaWxlIiwiRm9ybURhdGEiLCJzd2FnZ2VyMlNjaGVtYUtleXMiLCJJbSIsImdldFBhcmFtZXRlclNjaGVtYSIsInBhcmFtZXRlciIsImlzT0FTMyIsInNjaGVtYSIsInBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGUiLCJERUZBVUxUX1JFU1BPTlNFX0tFWSIsIm1heWJlIiwib2JqZWN0aWZ5IiwiZnJvbUpTT3JkZXJlZCIsImpzIiwib2JqV2l0aEhhc2hlZEtleXMiLCJjcmVhdGVPYmpXaXRoSGFzaGVkS2V5cyIsImZkT2JqIiwiaGFzaElkeCIsInRyYWNrS2V5cyIsImNvbnRhaW5zTXVsdGlwbGUiLCJub3JtYWxpemVBcnJheSIsImlzRm4iLCJfbWVtb2l6ZSIsIm9iak1hcCIsIm9ialJlZHVjZSIsInN5c3RlbVRodW5rTWlkZGxld2FyZSIsImdldFN5c3RlbSIsInZhbGlkYXRlVmFsdWVCeVNjaGVtYSIsInJlcXVpcmVkQnlQYXJhbSIsImJ5cGFzc1JlcXVpcmVkQ2hlY2siLCJudWxsYWJsZSIsInJlcXVpcmVkQnlTY2hlbWEiLCJtYXhpbXVtIiwibWluaW11bSIsIm1heExlbmd0aCIsInVuaXF1ZUl0ZW1zIiwibWF4SXRlbXMiLCJtaW5JdGVtcyIsInNjaGVtYVJlcXVpcmVzVmFsdWUiLCJyZXF1aXJlc0Z1cnRoZXJWYWxpZGF0aW9uIiwiaXNWYWxpZE51bGxhYmxlIiwic3RyaW5nQ2hlY2siLCJhcnJheUNoZWNrIiwiYXJyYXlMaXN0Q2hlY2siLCJwYXNzZWRBbnlDaGVjayIsIm9iamVjdFZhbCIsInByb3BLZXkiLCJlcnJzIiwidmFsaWRhdGVQYXR0ZXJuIiwicnhQYXR0ZXJuIiwidmFsaWRhdGVNaW5JdGVtcyIsInZhbGlkYXRlTWF4SXRlbXMiLCJuZWVkUmVtb3ZlIiwiZXJyb3JQZXJJdGVtIiwidmFsaWRhdGVVbmlxdWVJdGVtcyIsImVycm9yc1BlckluZGV4IiwidmFsaWRhdGVNYXhMZW5ndGgiLCJ2YWxpZGF0ZU1pbkxlbmd0aCIsInZhbGlkYXRlTWF4aW11bSIsInZhbGlkYXRlTWluaW11bSIsInZhbGlkYXRlRGF0ZVRpbWUiLCJ2YWxpZGF0ZUd1aWQiLCJ2YWxpZGF0ZVN0cmluZyIsInZhbGlkYXRlQm9vbGVhbiIsInZhbGlkYXRlSW50ZWdlciIsInZhbGlkYXRlRmlsZSIsImJ0b2EiLCJzb3J0ZXJzIiwib3BlcmF0aW9uc1NvcnRlciIsImFscGhhIiwibG9jYWxlQ29tcGFyZSIsInRhZ3NTb3J0ZXIiLCJidWlsZEZvcm1EYXRhIiwiZm9ybUFyciIsInNoYWxsb3dFcXVhbEtleXMiLCJicmFpbnRyZWVTYW5pdGl6ZVVybCIsInJlcXVpcmVzVmFsaWRhdGlvblVSTCIsImNyZWF0ZURlZXBMaW5rUGF0aCIsImVzY2FwZURlZXBMaW5rUGF0aCIsImdldEV4dGVuc2lvbnMiLCJkZWZPYmoiLCJnZXRDb21tb25FeHRlbnNpb25zIiwiZGVlcGx5U3RyaXBLZXkiLCJrZXlUb1N0cmlwIiwicGFyYW1Ub0lkZW50aWZpZXIiLCJyZXR1cm5BbGwiLCJhbGxvd0hhc2hlcyIsInBhcmFtTmFtZSIsInBhcmFtSW4iLCJnZW5lcmF0ZWRJZGVudGlmaWVycyIsInBhcmFtVG9WYWx1ZSIsInBhcmFtVmFsdWVzIiwiYjY0dG9CNjRVcmxFbmNvZGVkIiwiaXNFbXB0eVZhbHVlIiwiaWRGbiIsImNyZWF0ZVN0b3JlV2l0aE1pZGRsZXdhcmUiLCJyb290UmVkdWNlciIsImluaXRpYWxTdGF0ZSIsIm1pZGRsd2FyZXMiLCJfX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9DT01QT1NFX18iLCJhcHBseU1pZGRsZXdhcmUiLCJtaWRkbGV3YXJlcyIsImNyZWF0ZVN0b3JlMiIsIm1pZGRsZXdhcmVBUEkiLCJtaWRkbGV3YXJlIiwiU3RvcmUiLCJwbHVnaW5zT3B0aW9ucyIsInN5c3RlbSIsImNvbmZpZ3MiLCJjb21wb25lbnRzIiwicm9vdEluamVjdHMiLCJzdGF0ZVBsdWdpbnMiLCJib3VuZFN5c3RlbSIsInRvb2xib3giLCJfZ2V0U3lzdGVtIiwiY29uZmlndXJlU3RvcmUiLCJidWlsZFN5c3RlbSIsImdldFN0b3JlIiwicmVidWlsZCIsInBsdWdpblN5c3RlbSIsImNvbWJpbmVQbHVnaW5zIiwic3lzdGVtRXh0ZW5kIiwiY2FsbEFmdGVyTG9hZCIsImJ1aWxkUmVkdWNlciIsImdldFJvb3RJbmplY3RzIiwiZ2V0V3JhcHBlZEFuZEJvdW5kQWN0aW9ucyIsImdldFdyYXBwZWRBbmRCb3VuZFNlbGVjdG9ycyIsImdldFN0YXRlVGh1bmtzIiwiZ2V0Rm4iLCJnZXRDb25maWdzIiwicmVidWlsZFJlZHVjZXIiLCJnZXRDb21wb25lbnRzIiwiX2dldENvbmZpZ3MiLCJSZWFjdCIsInNldENvbmZpZ3MiLCJzdGF0ZXMiLCJhbGxSZWR1Y2VycyIsInJlZHVjZXJTeXN0ZW0iLCJtYWtlUmVkdWNlciIsInJlZHVjZXJPYmoiLCJyZWRGbiIsIndyYXBXaXRoVHJ5Q2F0Y2giLCJjb21iaW5lUmVkdWNlcnMiLCJ1cE5hbWUiLCJnZXRTZWxlY3RvcnMiLCJnZXRBY3Rpb25zIiwiYWN0aW9ucyIsImFjdGlvbk5hbWUiLCJnZXRCb3VuZEFjdGlvbnMiLCJhY3Rpb25Hcm91cE5hbWUiLCJ3cmFwQWN0aW9ucyIsIm5ld0FjdGlvbiIsImdldEJvdW5kU2VsZWN0b3JzIiwic2VsZWN0b3JzIiwic2VsZWN0b3JHcm91cE5hbWUiLCJ3cmFwU2VsZWN0b3JzIiwic2VsZWN0b3IiLCJzZWxlY3Rvck5hbWUiLCJ3cmFwcGVkU2VsZWN0b3IiLCJnZXRTdGF0ZXMiLCJvcmkiLCJjcmVhdG9yIiwiYmluZEFjdGlvbkNyZWF0b3JzIiwiYWN0aW9uQ3JlYXRvcnMiLCJib3VuZEFjdGlvbkNyZWF0b3JzIiwiZ2V0TWFwU3RhdGVUb1Byb3BzIiwiZ2V0TWFwRGlzcGF0Y2hUb1Byb3BzIiwiZXh0cmFzIiwicGx1Z2luT3B0aW9ucyIsInBsdWdpbkxvYWRUeXBlIiwiaGFzTG9hZGVkIiwiY2FsbGVkU29tZXRoaW5nIiwiYWZ0ZXJMb2FkIiwid3JhcENvbXBvbmVudHMiLCJ3cmFwcGVyRm4iLCJuYW1lc3BhY2VPYmoiLCJsb2dFcnJvcnMiLCJTSE9XX0FVVEhfUE9QVVAiLCJBVVRIT1JJWkUiLCJMT0dPVVQiLCJQUkVfQVVUSE9SSVpFX09BVVRIMiIsIkFVVEhPUklaRV9PQVVUSDIiLCJWQUxJREFURSIsIkNPTkZJR1VSRV9BVVRIIiwiUkVTVE9SRV9BVVRIT1JJWkFUSU9OIiwic2hvd0RlZmluaXRpb25zIiwiYXV0aG9yaXplIiwiYXV0aG9yaXplV2l0aFBlcnNpc3RPcHRpb24iLCJhdXRoQWN0aW9ucyIsInBlcnNpc3RBdXRob3JpemF0aW9uSWZOZWVkZWQiLCJsb2dvdXQiLCJsb2dvdXRXaXRoUGVyc2lzdE9wdGlvbiIsInByZUF1dGhvcml6ZUltcGxpY2l0IiwiZXJyQWN0aW9ucyIsImlzVmFsaWQiLCJzd2FnZ2VyVUlSZWRpcmVjdE9hdXRoMiIsImF1dGhJZCIsImF1dGhvcml6ZU9hdXRoMldpdGhQZXJzaXN0T3B0aW9uIiwiYXV0aG9yaXplT2F1dGgyIiwiYXV0aG9yaXplUGFzc3dvcmQiLCJwYXNzd29yZFR5cGUiLCJjbGllbnRJZCIsImNsaWVudFNlY3JldCIsImdyYW50X3R5cGUiLCJzY29wZSIsInNjb3BlcyIsImhlYWRlcnMiLCJzZXRDbGllbnRJZEFuZFNlY3JldCIsImNsaWVudF9pZCIsImNsaWVudF9zZWNyZXQiLCJBdXRob3JpemF0aW9uIiwiYXV0aG9yaXplUmVxdWVzdCIsImF1dGhvcml6ZUFwcGxpY2F0aW9uIiwiYXV0aG9yaXplQWNjZXNzQ29kZVdpdGhGb3JtUGFyYW1zIiwicmVkaXJlY3RVcmwiLCJjb2RlVmVyaWZpZXIiLCJyZWRpcmVjdF91cmkiLCJjb2RlX3ZlcmlmaWVyIiwiYXV0aG9yaXplQWNjZXNzQ29kZVdpdGhCYXNpY0F1dGhlbnRpY2F0aW9uIiwib2FzM1NlbGVjdG9ycyIsInNwZWNTZWxlY3RvcnMiLCJhdXRoU2VsZWN0b3JzIiwicGFyc2VkVXJsIiwiYWRkaXRpb25hbFF1ZXJ5U3RyaW5nUGFyYW1zIiwiZmluYWxTZXJ2ZXJVcmwiLCJzZXJ2ZXJFZmZlY3RpdmVWYWx1ZSIsInNlbGVjdGVkU2VydmVyIiwicGFyc2VVcmwiLCJmZXRjaFVybCIsIl9oZWFkZXJzIiwiZmV0Y2giLCJyZXF1ZXN0SW50ZXJjZXB0b3IiLCJyZXNwb25zZUludGVyY2VwdG9yIiwicGFyc2VFcnJvciIsInN0YXR1c1RleHQiLCJlcnJEYXRhIiwianNvblJlc3BvbnNlIiwiZXJyb3JfZGVzY3JpcHRpb24iLCJqc29uRXJyb3IiLCJjb25maWd1cmVBdXRoIiwicmVzdG9yZUF1dGhvcml6YXRpb24iLCJwZXJzaXN0QXV0aG9yaXphdGlvbiIsImF1dGhvcml6ZWQiLCJzZXRJdGVtIiwiYXV0aFBvcHVwIiwic2VjdXJpdGllcyIsInNlY3VyaXR5IiwiaGVhZGVyIiwicGFyc2VkQXV0aCIsImFzc2VydElzRnVuY3Rpb24iLCJlcnJvck1lc3NhZ2UiLCJlbnN1cmVJc0FycmF5IiwiZ2V0RGVwZW5kZW5jaWVzIiwiY3JlYXRlU2VsZWN0b3JBcmdzIiwiYXNzZXJ0SXNBcnJheU9mRnVuY3Rpb25zIiwiaXRlbVR5cGVzIiwiUmVmIiwiVU5URVJNSU5BVEVEIiwiVEVSTUlOQVRFRCIsImNyZWF0ZUNhY2hlTm9kZSIsIndlYWtNYXBNZW1vaXplIiwiZm5Ob2RlIiwicmVzdWx0RXF1YWxpdHlDaGVjayIsImxhc3RSZXN1bHQiLCJyZXN1bHRzQ291bnQiLCJjYWNoZU5vZGUiLCJvYmplY3RDYWNoZSIsIm9iamVjdE5vZGUiLCJwcmltaXRpdmVDYWNoZSIsInByaW1pdGl2ZU5vZGUiLCJ0ZXJtaW5hdGVkTm9kZSIsImxhc3RSZXN1bHRWYWx1ZSIsImNsZWFyQ2FjaGUiLCJyZXNldFJlc3VsdHNDb3VudCIsImNyZWF0ZVNlbGVjdG9yQ3JlYXRvciIsIm1lbW9pemVPck9wdGlvbnMiLCJtZW1vaXplT3B0aW9uc0Zyb21BcmdzIiwiY3JlYXRlU2VsZWN0b3JDcmVhdG9yT3B0aW9ucyIsIm1lbW9pemVPcHRpb25zIiwiY3JlYXRlU2VsZWN0b3IyIiwicmVjb21wdXRhdGlvbnMiLCJkZXBlbmRlbmN5UmVjb21wdXRhdGlvbnMiLCJkaXJlY3RseVBhc3NlZE9wdGlvbnMiLCJyZXN1bHRGdW5jIiwiY29tYmluZWRPcHRpb25zIiwiYXJnc01lbW9pemUiLCJhcmdzTWVtb2l6ZU9wdGlvbnMiLCJkZXZNb2RlQ2hlY2tzIiwiZmluYWxNZW1vaXplT3B0aW9ucyIsImZpbmFsQXJnc01lbW9pemVPcHRpb25zIiwibWVtb2l6ZWRSZXN1bHRGdW5jIiwicmVjb21wdXRhdGlvbldyYXBwZXIiLCJkZXBlbmRlbmNpZXNDaGVja2VyIiwiaW5wdXRTZWxlY3RvclJlc3VsdHMiLCJjb2xsZWN0SW5wdXRTZWxlY3RvclJlc3VsdHMiLCJpbnB1dFNlbGVjdG9yQXJncyIsInJlc2V0RGVwZW5kZW5jeVJlY29tcHV0YXRpb25zIiwicmVzZXRSZWNvbXB1dGF0aW9ucyIsIndpdGhUeXBlcyIsImNyZWF0ZVNlbGVjdG9yIiwiY3JlYXRlU3RydWN0dXJlZFNlbGVjdG9yIiwiaW5wdXRTZWxlY3RvcnNPYmplY3QiLCJzZWxlY3RvckNyZWF0b3IiLCJhc3NlcnRJc09iamVjdCIsImlucHV0U2VsZWN0b3JLZXlzIiwiY29tcG9zaXRpb24iLCJzaG93bkRlZmluaXRpb25zIiwiZGVmaW5pdGlvbnNUb0F1dGhvcml6ZSIsImRlZmluaXRpb25zIiwic2VjdXJpdHlEZWZpbml0aW9ucyIsImdldERlZmluaXRpb25zQnlOYW1lcyIsImFsbG93ZWRTY29wZXMiLCJkZWZpbml0aW9uc0ZvclJlcXVpcmVtZW50cyIsImFsbERlZmluaXRpb25zIiwic2VjIiwic2VjdXJpdHlTY29wZXMiLCJkZWZpbml0aW9uU2NvcGVzIiwiaXNBdXRob3JpemVkIiwiZXhlY3V0ZSIsIm9yaUFjdGlvbiIsIm9wZXJhdGlvbiIsInNwZWNTZWN1cml0eSIsImdldEl0ZW0iLCJpc0FwaUtleUF1dGgiLCJpc0luQ29va2llIiwiY29va2llIiwiYXV0aG9yaXplZE5hbWUiLCJjb29raWVOYW1lIiwiTG9ja0F1dGhJY29uIiwibWFwU3RhdGVUb1Byb3BzIiwib3duUHJvcHMiLCJnZXRDb21wb25lbnQiLCJMb2NrSWNvbiIsIlVubG9ja0F1dGhJY29uIiwiVW5sb2NrSWNvbiIsImluaXRPQXV0aCIsInByZWF1dGhvcml6ZUFwaUtleSIsInByZWF1dGhvcml6ZUJhc2ljIiwiTG9ja0F1dGhPcGVyYXRpb25JY29uIiwiVW5sb2NrQXV0aE9wZXJhdGlvbkljb24iLCJ3cmFwcGVkQXV0aG9yaXplQWN0aW9uIiwid3JhcHBlZExvZ291dEFjdGlvbiIsInNwZWMiLCJzcGVjSnNvbiIsImRlZmluaXRpb25CYXNlIiwiaXNOb3RoaW5nIiwic3ViamVjdCIsInJlcGVhdF8xIiwiY3ljbGUiLCJpc05lZ2F0aXZlWmVyb18xIiwiaXNOZWdhdGl2ZVplcm8iLCJORUdBVElWRV9JTkZJTklUWSIsImNvbW1vbiIsInNlcXVlbmNlIiwiZm9ybWF0RXJyb3IiLCJleGNlcHRpb24iLCJ3aGVyZSIsInJlYXNvbiIsImNvbHVtbiIsInNuaXBwZXQiLCJZQU1MRXhjZXB0aW9uJDEiLCJnZXRMaW5lIiwibGluZVN0YXJ0IiwibGluZUVuZCIsIm1heExpbmVMZW5ndGgiLCJtYXhIYWxmTGVuZ3RoIiwibWFrZVNuaXBwZXQiLCJsaW5lc0JlZm9yZSIsImxpbmVzQWZ0ZXIiLCJsaW5lU3RhcnRzIiwibGluZUVuZHMiLCJmb3VuZExpbmVObyIsImxpbmVOb0xlbmd0aCIsIlRZUEVfQ09OU1RSVUNUT1JfT1BUSU9OUyIsIllBTUxfTk9ERV9LSU5EUyIsIlR5cGUkMSIsInJlcHJlc2VudCIsInJlcHJlc2VudE5hbWUiLCJtdWx0aSIsInN0eWxlQWxpYXNlcyIsImNvbXBpbGVTdHlsZUFsaWFzZXMiLCJjdXJyZW50VHlwZSIsIm5ld0luZGV4IiwicHJldmlvdXNUeXBlIiwicHJldmlvdXNJbmRleCIsIlNjaGVtYSQxIiwiaW1wbGljaXQiLCJleHBsaWNpdCIsInR5cGUkMSIsImxvYWRLaW5kIiwiY29tcGlsZWRJbXBsaWNpdCIsImNvbXBpbGVkRXhwbGljaXQiLCJjb21waWxlZFR5cGVNYXAiLCJjb21waWxlTWFwIiwic2NhbGFyIiwiY29sbGVjdFR5cGUiLCJmYWlsc2FmZSIsIl9udWxsIiwicmVzb2x2ZVlhbWxOdWxsIiwiY29uc3RydWN0WWFtbE51bGwiLCJjYW5vbmljYWwiLCJsb3dlcmNhc2UiLCJ1cHBlcmNhc2UiLCJjYW1lbGNhc2UiLCJyZXNvbHZlWWFtbEJvb2xlYW4iLCJjb25zdHJ1Y3RZYW1sQm9vbGVhbiIsImlzT2N0Q29kZSIsImlzRGVjQ29kZSIsInJlc29sdmVZYW1sSW50ZWdlciIsImhhc0RpZ2l0cyIsImNvbnN0cnVjdFlhbWxJbnRlZ2VyIiwic2lnbiIsIm9jdGFsIiwiZGVjaW1hbCIsImhleGFkZWNpbWFsIiwiWUFNTF9GTE9BVF9QQVRURVJOIiwiU0NJRU5USUZJQ19XSVRIT1VUX0RPVCIsInJlc29sdmVZYW1sRmxvYXQiLCJjb25zdHJ1Y3RZYW1sRmxvYXQiLCJpc0Zsb2F0IiwicmVwcmVzZW50WWFtbEZsb2F0IiwiY29yZSIsIllBTUxfREFURV9SRUdFWFAiLCJZQU1MX1RJTUVTVEFNUF9SRUdFWFAiLCJ0aW1lc3RhbXAiLCJyZXNvbHZlWWFtbFRpbWVzdGFtcCIsImNvbnN0cnVjdFlhbWxUaW1lc3RhbXAiLCJ5ZWFyIiwiZGF5IiwiaG91ciIsIm1pbnV0ZSIsImZyYWN0aW9uIiwiZGVsdGEiLCJVVEMiLCJzZXRUaW1lIiwicmVwcmVzZW50WWFtbFRpbWVzdGFtcCIsInJlc29sdmVZYW1sTWVyZ2UiLCJCQVNFNjRfTUFQIiwicmVzb2x2ZVlhbWxCaW5hcnkiLCJiaXRsZW4iLCJjb25zdHJ1Y3RZYW1sQmluYXJ5IiwidGFpbGJpdHMiLCJyZXByZXNlbnRZYW1sQmluYXJ5IiwiX2hhc093blByb3BlcnR5JDMiLCJfdG9TdHJpbmckMiIsInJlc29sdmVZYW1sT21hcCIsInBhaXJLZXkiLCJwYWlySGFzS2V5IiwiY29uc3RydWN0WWFtbE9tYXAiLCJfdG9TdHJpbmckMSIsInJlc29sdmVZYW1sUGFpcnMiLCJjb25zdHJ1Y3RZYW1sUGFpcnMiLCJfaGFzT3duUHJvcGVydHkkMiIsInJlc29sdmVZYW1sU2V0IiwiY29uc3RydWN0WWFtbFNldCIsIl9oYXNPd25Qcm9wZXJ0eSQxIiwiQ09OVEVYVF9GTE9XX0lOIiwiQ09OVEVYVF9GTE9XX09VVCIsIkNPTlRFWFRfQkxPQ0tfSU4iLCJDT05URVhUX0JMT0NLX09VVCIsIkNIT01QSU5HX0NMSVAiLCJDSE9NUElOR19TVFJJUCIsIkNIT01QSU5HX0tFRVAiLCJQQVRURVJOX05PTl9QUklOVEFCTEUiLCJQQVRURVJOX05PTl9BU0NJSV9MSU5FX0JSRUFLUyIsIlBBVFRFUk5fRkxPV19JTkRJQ0FUT1JTIiwiUEFUVEVSTl9UQUdfSEFORExFIiwiUEFUVEVSTl9UQUdfVVJJIiwiaXNfRU9MIiwiaXNfV0hJVEVfU1BBQ0UiLCJpc19XU19PUl9FT0wiLCJpc19GTE9XX0lORElDQVRPUiIsImZyb21IZXhDb2RlIiwic2ltcGxlRXNjYXBlU2VxdWVuY2UiLCJjaGFyRnJvbUNvZGVwb2ludCIsInNpbXBsZUVzY2FwZUNoZWNrIiwic2ltcGxlRXNjYXBlTWFwIiwiU3RhdGUkMSIsIm9uV2FybmluZyIsImxlZ2FjeSIsImltcGxpY2l0VHlwZXMiLCJ0eXBlTWFwIiwibGluZUluZGVudCIsImZpcnN0VGFiSW5MaW5lIiwiZG9jdW1lbnRzIiwiZ2VuZXJhdGVFcnJvciIsInRocm93RXJyb3IiLCJ0aHJvd1dhcm5pbmciLCJkaXJlY3RpdmVIYW5kbGVycyIsIllBTUwiLCJoYW5kbGVZYW1sRGlyZWN0aXZlIiwibWFqb3IiLCJtaW5vciIsImNoZWNrTGluZUJyZWFrcyIsImhhbmRsZVRhZ0RpcmVjdGl2ZSIsImhhbmRsZSIsInRhZ01hcCIsImNhcHR1cmVTZWdtZW50IiwiY2hlY2tKc29uIiwiX3Bvc2l0aW9uIiwiX2xlbmd0aCIsIl9jaGFyYWN0ZXIiLCJtZXJnZU1hcHBpbmdzIiwib3ZlcnJpZGFibGVLZXlzIiwicXVhbnRpdHkiLCJzdG9yZU1hcHBpbmdQYWlyIiwia2V5VGFnIiwia2V5Tm9kZSIsInZhbHVlTm9kZSIsInN0YXJ0TGluZSIsInN0YXJ0TGluZVN0YXJ0Iiwic3RhcnRQb3MiLCJyZWFkTGluZUJyZWFrIiwic2tpcFNlcGFyYXRpb25TcGFjZSIsImFsbG93Q29tbWVudHMiLCJjaGVja0luZGVudCIsImxpbmVCcmVha3MiLCJ0ZXN0RG9jdW1lbnRTZXBhcmF0b3IiLCJ3cml0ZUZvbGRlZExpbmVzIiwicmVhZEJsb2NrU2VxdWVuY2UiLCJub2RlSW5kZW50IiwiX2xpbmUiLCJfdGFnIiwiX2FuY2hvciIsImRldGVjdGVkIiwiYW5jaG9yTWFwIiwiY29tcG9zZU5vZGUiLCJyZWFkVGFnUHJvcGVydHkiLCJ0YWdIYW5kbGUiLCJpc1ZlcmJhdGltIiwiaXNOYW1lZCIsInJlYWRBbmNob3JQcm9wZXJ0eSIsInBhcmVudEluZGVudCIsIm5vZGVDb250ZXh0IiwiYWxsb3dUb1NlZWsiLCJhbGxvd0NvbXBhY3QiLCJhbGxvd0Jsb2NrU3R5bGVzIiwiYWxsb3dCbG9ja1NjYWxhcnMiLCJhbGxvd0Jsb2NrQ29sbGVjdGlvbnMiLCJ0eXBlSW5kZXgiLCJ0eXBlUXVhbnRpdHkiLCJ0eXBlTGlzdCIsImZsb3dJbmRlbnQiLCJibG9ja0luZGVudCIsImluZGVudFN0YXR1cyIsImF0TmV3TGluZSIsImhhc0NvbnRlbnQiLCJyZWFkQmxvY2tNYXBwaW5nIiwiZm9sbG93aW5nIiwiX2tleUxpbmUiLCJfa2V5TGluZVN0YXJ0IiwiX2tleVBvcyIsImF0RXhwbGljaXRLZXkiLCJyZWFkRmxvd0NvbGxlY3Rpb24iLCJfbGluZVN0YXJ0IiwiX3BvcyIsInRlcm1pbmF0b3IiLCJpc1BhaXIiLCJpc0V4cGxpY2l0UGFpciIsImlzTWFwcGluZyIsInJlYWROZXh0IiwicmVhZEJsb2NrU2NhbGFyIiwiY2FwdHVyZVN0YXJ0IiwiZm9sZGluZyIsImNob21waW5nIiwiZGlkUmVhZENvbnRlbnQiLCJkZXRlY3RlZEluZGVudCIsInRleHRJbmRlbnQiLCJlbXB0eUxpbmVzIiwiYXRNb3JlSW5kZW50ZWQiLCJyZWFkU2luZ2xlUXVvdGVkU2NhbGFyIiwiY2FwdHVyZUVuZCIsInJlYWREb3VibGVRdW90ZWRTY2FsYXIiLCJoZXhMZW5ndGgiLCJoZXhSZXN1bHQiLCJyZWFkQWxpYXMiLCJyZWFkUGxhaW5TY2FsYXIiLCJ3aXRoaW5GbG93Q29sbGVjdGlvbiIsImhhc1BlbmRpbmdDb250ZW50IiwiX2xpbmVJbmRlbnQiLCJfa2luZCIsInJlYWREb2N1bWVudCIsImRpcmVjdGl2ZU5hbWUiLCJkaXJlY3RpdmVBcmdzIiwiZG9jdW1lbnRTdGFydCIsImhhc0RpcmVjdGl2ZXMiLCJsb2FkRG9jdW1lbnRzIiwibnVsbHBvcyIsImxvYWRlciIsImxvYWRBbGwiLCJsb2FkQWxsJDEiLCJsb2FkJDEiLCJfdG9TdHJpbmciLCJfaGFzT3duUHJvcGVydHkiLCJDSEFSX0JPTSIsIkNIQVJfVEFCIiwiQ0hBUl9MSU5FX0ZFRUQiLCJDSEFSX0NBUlJJQUdFX1JFVFVSTiIsIkNIQVJfU1BBQ0UiLCJDSEFSX0VYQ0xBTUFUSU9OIiwiQ0hBUl9ET1VCTEVfUVVPVEUiLCJDSEFSX1NIQVJQIiwiQ0hBUl9QRVJDRU5UIiwiQ0hBUl9BTVBFUlNBTkQiLCJDSEFSX1NJTkdMRV9RVU9URSIsIkNIQVJfQVNURVJJU0siLCJDSEFSX0NPTU1BIiwiQ0hBUl9NSU5VUyIsIkNIQVJfQ09MT04iLCJDSEFSX0VRVUFMUyIsIkNIQVJfR1JFQVRFUl9USEFOIiwiQ0hBUl9RVUVTVElPTiIsIkNIQVJfQ09NTUVSQ0lBTF9BVCIsIkNIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVCIsIkNIQVJfUklHSFRfU1FVQVJFX0JSQUNLRVQiLCJDSEFSX0dSQVZFX0FDQ0VOVCIsIkNIQVJfTEVGVF9DVVJMWV9CUkFDS0VUIiwiQ0hBUl9WRVJUSUNBTF9MSU5FIiwiQ0hBUl9SSUdIVF9DVVJMWV9CUkFDS0VUIiwiRVNDQVBFX1NFUVVFTkNFUyIsIkRFUFJFQ0FURURfQk9PTEVBTlNfU1lOVEFYIiwiREVQUkVDQVRFRF9CQVNFNjBfU1lOVEFYIiwiZW5jb2RlSGV4IiwiUVVPVElOR19UWVBFX1NJTkdMRSIsIlFVT1RJTkdfVFlQRV9ET1VCTEUiLCJTdGF0ZSIsIm5vQXJyYXlJbmRlbnQiLCJza2lwSW52YWxpZCIsImZsb3dMZXZlbCIsInN0eWxlTWFwIiwiY29tcGlsZVN0eWxlTWFwIiwic29ydEtleXMiLCJsaW5lV2lkdGgiLCJub1JlZnMiLCJub0NvbXBhdE1vZGUiLCJjb25kZW5zZUZsb3ciLCJxdW90aW5nVHlwZSIsImZvcmNlUXVvdGVzIiwicmVwbGFjZXIiLCJleHBsaWNpdFR5cGVzIiwiZHVwbGljYXRlcyIsInVzZWREdXBsaWNhdGVzIiwiaW5kZW50U3RyaW5nIiwic3BhY2VzIiwiaW5kIiwiZ2VuZXJhdGVOZXh0TGluZSIsImlzV2hpdGVzcGFjZSIsImlzUHJpbnRhYmxlIiwiaXNOc0NoYXJPcldoaXRlc3BhY2UiLCJpc1BsYWluU2FmZSIsImluYmxvY2siLCJjSXNOc0NoYXJPcldoaXRlc3BhY2UiLCJjSXNOc0NoYXIiLCJjb2RlUG9pbnRBdCIsIm5lZWRJbmRlbnRJbmRpY2F0b3IiLCJTVFlMRV9QTEFJTiIsIlNUWUxFX1NJTkdMRSIsIlNUWUxFX0xJVEVSQUwiLCJTVFlMRV9GT0xERUQiLCJTVFlMRV9ET1VCTEUiLCJjaG9vc2VTY2FsYXJTdHlsZSIsInNpbmdsZUxpbmVPbmx5IiwiaW5kZW50UGVyTGV2ZWwiLCJ0ZXN0QW1iaWd1b3VzVHlwZSIsInByZXZDaGFyIiwiaGFzTGluZUJyZWFrIiwiaGFzRm9sZGFibGVMaW5lIiwic2hvdWxkVHJhY2tXaWR0aCIsInByZXZpb3VzTGluZUJyZWFrIiwicGxhaW4iLCJpc1BsYWluU2FmZUZpcnN0IiwiaXNQbGFpblNhZmVMYXN0Iiwid3JpdGVTY2FsYXIiLCJpc2tleSIsImR1bXAiLCJ0ZXN0QW1iaWd1aXR5IiwidGVzdEltcGxpY2l0UmVzb2x2aW5nIiwiYmxvY2tIZWFkZXIiLCJkcm9wRW5kaW5nTmV3bGluZSIsImZvbGRTdHJpbmciLCJtb3JlSW5kZW50ZWQiLCJsaW5lUmUiLCJuZXh0TEYiLCJmb2xkTGluZSIsInByZXZNb3JlSW5kZW50ZWQiLCJlc2NhcGVTdHJpbmciLCJlc2NhcGVTZXEiLCJpbmRlbnRJbmRpY2F0b3IiLCJicmVha1JlIiwid3JpdGVCbG9ja1NlcXVlbmNlIiwid3JpdGVOb2RlIiwiZGV0ZWN0VHlwZSIsImlzYmxvY2tzZXEiLCJ0YWdTdHIiLCJkdXBsaWNhdGVJbmRleCIsImR1cGxpY2F0ZSIsIm9iamVjdE9yQXJyYXkiLCJ3cml0ZUJsb2NrTWFwcGluZyIsIm9iamVjdFZhbHVlIiwiZXhwbGljaXRQYWlyIiwicGFpckJ1ZmZlciIsIm9iamVjdEtleUxpc3QiLCJ3cml0ZUZsb3dNYXBwaW5nIiwid3JpdGVGbG93U2VxdWVuY2UiLCJnZXREdXBsaWNhdGVSZWZlcmVuY2VzIiwiZHVwbGljYXRlc0luZGV4ZXMiLCJpbnNwZWN0Tm9kZSIsImR1bXBfMSIsImR1bXAkMSIsInJlbmFtZWQiLCJUeXBlIiwiU2NoZW1hIiwiRkFJTFNBRkVfU0NIRU1BIiwiSlNPTl9TQ0hFTUEiLCJDT1JFX1NDSEVNQSIsIkRFRkFVTFRfU0NIRU1BIiwiWUFNTEV4Y2VwdGlvbiIsImZsb2F0IiwibnVsbCIsInNhZmVMb2FkIiwic2FmZUxvYWRBbGwiLCJzYWZlRHVtcCIsIlVQREFURV9DT05GSUdTIiwiVE9HR0xFX0NPTkZJR1MiLCJjb25maWdOYW1lIiwiY29uZmlnVmFsdWUiLCJ0b2dnbGUiLCJkb3dubG9hZENvbmZpZyIsImdldENvbmZpZ0J5VXJsIiwic3BlY0FjdGlvbnMiLCJjb25maWdzQWN0aW9ucyIsInN0YXR1cyIsInVwZGF0ZUxvYWRpbmdTdGF0dXMiLCJ1cGRhdGVVcmwiLCJwYXJzZUNvbmZpZyIsIm9yaVZhbCIsImNvbmZpZ3NQbHVnaW4iLCJzZXRIYXNoIiwiU0NST0xMX1RPIiwiQ0xFQVJfU0NST0xMX1RPIiwiZ2V0U2Nyb2xsUGFyZW50IiwiaW5jbHVkZUhpZGRlbiIsIkxBU1RfUkVTT1JUIiwiZXhjbHVkZVN0YXRpY1BhcmVudCIsIm92ZXJmbG93UmVnZXgiLCJwYXJlbnRFbGVtZW50Iiwib3ZlcmZsb3dZIiwib3ZlcmZsb3dYIiwibGF5b3V0Iiwic2Nyb2xsVG9FbGVtZW50IiwiY2xlYXJTY3JvbGxUbyIsInJlYWR5VG9TY3JvbGwiLCJpc1Nob3duS2V5Iiwic2Nyb2xsVG9LZXkiLCJsYXlvdXRTZWxlY3RvcnMiLCJnZXRTY3JvbGxUb0tleSIsImxheW91dEFjdGlvbnMiLCJwYXJzZURlZXBMaW5rSGFzaCIsInJhd0hhc2giLCJkZWVwTGlua2luZyIsImhhc2hBcnJheSIsImlzU2hvd25LZXlGcm9tVXJsSGFzaEFycmF5IiwidGFnSWQiLCJtYXliZU9wZXJhdGlvbklkIiwidGFnSXNTaG93bktleSIsInNob3ciLCJ1cmxIYXNoQXJyYXkiLCJvcGVyYXRpb25JZCIsInVybEhhc2hBcnJheUZyb21Jc1Nob3duS2V5IiwidG9rZW5BcnJheSIsInNob3duIiwiYXNzZXROYW1lIiwiT3JpIiwiT3BlcmF0aW9uV3JhcHBlciIsIm9uTG9hZCIsIk9wZXJhdGlvblRhZ1dyYXBwZXIiLCJPcGVyYXRpb25UYWciLCJzZWVrU3RyIiwibWFrZU5ld01lc3NhZ2UiLCJqc1NwZWMiLCJlcnJvclRyYW5zZm9ybWVycyIsIk5vdE9mVHlwZSIsIlBhcmFtZXRlck9uZU9mIiwidHJhbnNmb3JtRXJyb3JzIiwiaW5wdXRzIiwidHJhbnNmb3JtZWRFcnJvcnMiLCJ0cmFuc2Zvcm1lciIsIkRFRkFVTFRfRVJST1JfU1RSVUNUVVJFIiwiYWxsRXJyb3JzIiwibGFzdEVycm9yIiwibmV3RXJyb3JzIiwiZXJyVmFsdWUiLCJmaWx0ZXJWYWx1ZSIsInRhZ2dlZE9wcyIsInBocmFzZSIsInRhZ09iaiIsIm9wc0ZpbHRlciIsIkFycm93VXAiLCJ4bWxucyIsInZpZXdCb3giLCJmb2N1c2FibGUiLCJBcnJvd0Rvd24iLCJBcnJvdyIsIkNsb3NlIiwiQ29weSIsImZpbGxSdWxlIiwiTG9jayIsIlVubG9jayIsIkljb25zUGx1Z2luIiwiQXJyb3dVcEljb24iLCJBcnJvd0Rvd25JY29uIiwiQXJyb3dJY29uIiwiQ2xvc2VJY29uIiwiQ29weUljb24iLCJVUERBVEVfTEFZT1VUIiwiVVBEQVRFX0ZJTFRFUiIsIlVQREFURV9NT0RFIiwiU0hPVyIsInVwZGF0ZUxheW91dCIsInVwZGF0ZUZpbHRlciIsImNoYW5nZU1vZGUiLCJpc1Nob3duIiwidGhpbmdUb1Nob3ciLCJjdXJyZW50RmlsdGVyIiwid2hhdE1vZGUiLCJzaG93U3VtbWFyeSIsInRhZ2dlZE9wZXJhdGlvbnMiLCJvcmlTZWxlY3RvciIsIm1heERpc3BsYXllZFRhZ3MiLCJsZXZlbHMiLCJnZXRMZXZlbCIsImxvZ0xldmVsIiwibG9nTGV2ZWxJbnQiLCJpbmZvIiwiZW5nYWdlZCIsInVwZGF0ZVNwZWMiLCJ1cGRhdGVKc29uU3BlYyIsIm9uQ29tcGxldGUiLCJleHRyYWN0S2V5IiwiZXNjYXBlU2hlbGwiLCJlc2NhcGVDTUQiLCJlc2NhcGVQb3dlcnNoZWxsIiwiY3VybGlmeSIsInJlcXVlc3QiLCJuZXdMaW5lIiwiaXNNdWx0aXBhcnRGb3JtRGF0YVJlcXVlc3QiLCJjdXJsaWZpZWQiLCJhZGRXb3JkcyIsImFkZFdvcmRzV2l0aG91dExlYWRpbmdTcGFjZSIsImFkZE5ld0xpbmUiLCJhZGRJbmRlbnQiLCJleHRyYWN0ZWRLZXkiLCJyZXFCb2R5IiwiZ2V0U3RyaW5nQm9keU9mTWFwIiwiY3VybGlmeVRvSm9pbiIsInJlcXVlc3RTbmlwcGV0R2VuZXJhdG9yX2N1cmxfcG93ZXJzaGVsbCIsInJlcXVlc3RTbmlwcGV0R2VuZXJhdG9yX2N1cmxfYmFzaCIsInJlcXVlc3RTbmlwcGV0R2VuZXJhdG9yX2N1cmxfY21kIiwiZ2V0R2VuZXJhdG9ycyIsImxhbmd1YWdlS2V5cyIsImdlbmVyYXRvcnMiLCJnZXRTbmlwcGV0R2VuZXJhdG9ycyIsImdlbkZuIiwiZ2V0R2VuRm4iLCJnZXRBY3RpdmVMYW5ndWFnZSIsImdldERlZmF1bHRFeHBhbmRlZCIsImN1cnNvciIsImJhY2tncm91bmRDb2xvciIsInBhZGRpbmdCb3R0b20iLCJwYWRkaW5nVG9wIiwiYm9yZGVyIiwiYm9yZGVyUmFkaXVzIiwiYm94U2hhZG93IiwiYm9yZGVyQm90dG9tIiwiYWN0aXZlU3R5bGUiLCJtYXJnaW5Ub3AiLCJtYXJnaW5SaWdodCIsIm1hcmdpbkxlZnQiLCJSZXF1ZXN0U25pcHBldHMiLCJyZXF1ZXN0U25pcHBldHNTZWxlY3RvcnMiLCJyb290UmVmIiwiU3ludGF4SGlnaGxpZ2h0ZXIiLCJhY3RpdmVMYW5ndWFnZSIsInNldEFjdGl2ZUxhbmd1YWdlIiwiaXNFeHBhbmRlZCIsInNldElzRXhwYW5kZWQiLCJzbmlwcGV0R2VuZXJhdG9ycyIsImFjdGl2ZUdlbmVyYXRvciIsImhhbmRsZVNldElzRXhwYW5kZWQiLCJoYW5kbGVHZXRCdG5TdHlsZSIsImhhbmRsZVByZXZlbnRZU2Nyb2xsaW5nQmV5b25kRWxlbWVudCIsImNvbnRlbnRIZWlnaHQiLCJvZmZzZXRIZWlnaHQiLCJ2aXNpYmxlSGVpZ2h0IiwianVzdGlmeUNvbnRlbnQiLCJhbGlnbkl0ZW1zIiwibWFyZ2luQm90dG9tIiwiYmFja2dyb3VuZCIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ1JpZ2h0IiwiaGFuZGxlR2VuQ2hhbmdlIiwicmVuZGVyUGxhaW5UZXh0IiwiUGxhaW5UZXh0Vmlld2VyIiwicmVxdWVzdFNuaXBwZXRzIiwiTW9kZWxDb2xsYXBzZSIsInN0YXRpYyIsImNvbGxhcHNlZENvbnRlbnQiLCJleHBhbmRlZCIsIm9uVG9nZ2xlIiwiaGlkZVNlbGZPbkV4cGFuZCIsInNwZWNQYXRoIiwibW9kZWxOYW1lIiwibmV4dFByb3BzIiwidG9nZ2xlQ29sbGFwc2VkIiwidXNlVGFicyIsImluaXRpYWxUYWIiLCJpc0V4ZWN1dGUiLCJleGFtcGxlIiwidGFicyIsIm1vZGVsIiwidGFiIiwicHJldklzRXhlY3V0ZSIsInVzZVByZXZpb3VzIiwiYWN0aXZlVGFiIiwic2V0QWN0aXZlVGFiIiwiaGFuZGxlVGFiQ2hhbmdlIiwib25UYWJDaGFuZ2UiLCJNb2RlbEV4YW1wbGUiLCJpbmNsdWRlV3JpdGVPbmx5IiwiaW5jbHVkZVJlYWRPbmx5IiwiZGVmYXVsdE1vZGVsUmVuZGVyaW5nIiwiZGVmYXVsdE1vZGVsRXhwYW5kRGVwdGgiLCJNb2RlbFdyYXBwZXIiLCJIaWdobGlnaHRDb2RlIiwiZXhhbXBsZVRhYklkIiwiZXhhbXBsZVBhbmVsSWQiLCJtb2RlbFRhYklkIiwibW9kZWxQYW5lbElkIiwicm9sZSIsImN4IiwiaW5hY3RpdmUiLCJ0YWJJbmRleCIsImV4cGFuZERlcHRoIiwiZnVsbFBhdGgiLCJNb2RlbCIsImlzSW52YWxpZCIsImlzTWFwTGlrZSIsImNoZWNrSXRlbSIsImNyZWF0ZUNoZWNrZXIiLCJjaGVja2xpc3QiLCJfb2JqZWN0U3ByZWFkMiIsIl9SZWFjdCRDb21wb25lbnQiLCJJbW11dGFibGVQdXJlQ29tcG9uZW50IiwidXBkYXRlT25Qcm9wcyIsInVwZGF0ZU9uU3RhdGVzIiwiX2NpcmNsZSIsInByZXNlcnZlQXNwZWN0UmF0aW8iLCJiYWNrZ3JvdW5kSW1hZ2UiLCJiYWNrZ3JvdW5kUG9zaXRpb24iLCJiYWNrZ3JvdW5kUmVwZWF0IiwiY3kiLCJzdHJva2UiLCJjYWxjTW9kZSIsImR1ciIsImtleVRpbWVzIiwicmVwZWF0Q291bnQiLCJkZWNvZGVSZWZOYW1lIiwidW5lc2NhcGVkIiwiSW1Qcm9wVHlwZXMiLCJpc1JlZiIsImdldE1vZGVsTmFtZSIsImdldFJlZlNjaGVtYSIsImZpbmREZWZpbml0aW9uIiwiT2JqZWN0TW9kZWwiLCJBcnJheU1vZGVsIiwiUHJpbWl0aXZlTW9kZWwiLCIkJHJlZiIsIiRyZWYiLCJyZWZOYW1lIiwicmVmU2NoZW1hIiwiUm9sbGluZ0xvYWRTVkciLCJNb2RlbHMiLCJnZXRTY2hlbWFCYXNlUGF0aCIsImdldENvbGxhcHNlZENvbnRlbnQiLCJoYW5kbGVUb2dnbGUiLCJyZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlIiwib25Mb2FkTW9kZWxzIiwib25Mb2FkTW9kZWwiLCJkb2NFeHBhbnNpb24iLCJkZWZhdWx0TW9kZWxzRXhwYW5kRGVwdGgiLCJzcGVjUGF0aEJhc2UiLCJzaG93TW9kZWxzIiwiQ29sbGFwc2UiLCJKdW1wVG9QYXRoIiwiaXNPcGVuZWQiLCJzY2hlbWFWYWx1ZSIsInNwZWNSZXNvbHZlZFN1YnRyZWUiLCJyYXdTY2hlbWFWYWx1ZSIsInJhd1NjaGVtYSIsIkVudW1Nb2RlbCIsIm90aGVyUHJvcHMiLCJzaG93RXh0ZW5zaW9ucyIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwicmVxdWlyZWRQcm9wZXJ0aWVzIiwiaW5mb1Byb3BlcnRpZXMiLCJleHRlcm5hbERvY3NVcmwiLCJleHRlcm5hbERvY3NEZXNjcmlwdGlvbiIsIk1hcmtkb3duIiwiUHJvcGVydHkiLCJMaW5rIiwiSnVtcFRvUGF0aFNlY3Rpb24iLCJhbGxPZiIsImFueU9mIiwidGl0bGVFbCIsImlzRGVwcmVjYXRlZCIsIm5vcm1hbGl6ZWRWYWx1ZSIsInByb3BWYWwiLCJwcm9wQ2xhc3MiLCJQcmltaXRpdmUiLCJlbnVtQXJyYXkiLCJleHRlbnNpb25zIiwiU2NoZW1lcyIsInNjaGVtZXMiLCJzZXRTY2hlbWUiLCJjdXJyZW50U2NoZW1lIiwiaHRtbEZvciIsIlNjaGVtZXNDb250YWluZXIiLCJvcGVyYXRpb25TY2hlbWUiLCJKc29uU2NoZW1hRGVmYXVsdFByb3BzIiwia2V5TmFtZSIsIkpzb25TY2hlbWFGb3JtIiwiZGlzcGF0Y2hJbml0aWFsVmFsdWUiLCJnZXRDb21wb25lbnRTaWxlbnRseSIsImZhaWxTaWxlbnRseSIsIkNvbXAiLCJKc29uU2NoZW1hX3N0cmluZyIsImZpbGVzIiwib25FbnVtQ2hhbmdlIiwiZW51bVZhbHVlIiwic2NoZW1hSW4iLCJTZWxlY3QiLCJhbGxvd2VkVmFsdWVzIiwiYWxsb3dFbXB0eVZhbHVlIiwiSW5wdXQiLCJKc29uU2NoZW1hX2FycmF5IiwidmFsdWVPckVtcHR5TGlzdCIsIm9uSXRlbUNoYW5nZSIsIml0ZW1WYWwiLCJyZW1vdmVJdGVtIiwiYWRkSXRlbSIsImdldFNhbXBsZVNjaGVtYSIsImFycmF5RXJyb3JzIiwibmVlZHNSZW1vdmVFcnJvciIsInNob3VsZFJlbmRlclZhbHVlIiwic2NoZW1hSXRlbXNFbnVtIiwic2NoZW1hSXRlbXNUeXBlIiwic2NoZW1hSXRlbXNGb3JtYXQiLCJzY2hlbWFJdGVtc1NjaGVtYSIsIkFycmF5SXRlbXNDb21wb25lbnQiLCJpc0FycmF5SXRlbVRleHQiLCJpc0FycmF5SXRlbUZpbGUiLCJCdXR0b24iLCJpdGVtRXJyb3JzIiwiSnNvblNjaGVtYUFycmF5SXRlbUZpbGUiLCJKc29uU2NoZW1hQXJyYXlJdGVtVGV4dCIsIm9uRmlsZUNoYW5nZSIsIkpzb25TY2hlbWFfYm9vbGVhbiIsImJvb2xlYW5WYWx1ZSIsInN0cmluZ2lmeU9iamVjdEVycm9ycyIsInN0cmluZ0Vycm9yIiwiY3VycmVudEVycm9yIiwiSnNvblNjaGVtYV9vYmplY3QiLCJoYW5kbGVPbkNoYW5nZSIsImlucHV0VmFsdWUiLCJUZXh0QXJlYSIsImludmFsaWQiLCJKU09OU2NoZW1hNVBsdWdpbiIsIm1vZGVsRXhhbXBsZSIsIkpTT05TY2hlbWFDb21wb25lbnRzIiwic2hhbGxvd0FycmF5RXF1YWxzIiwiZm91bmRLZXkiLCJtZW1vaXplTiIsIk9yaWdpbmFsQ2FjaGUiLCJwcmltaXRpdmVzIiwiZ2VuZXJhdGVTdHJpbmdGcm9tUmVnZXgiLCJzdHJpbmdfZW1haWwiLCJzdHJpbmdfZGF0ZS10aW1lIiwic3RyaW5nX2RhdGUiLCJzdHJpbmdfdXVpZCIsInN0cmluZ19ob3N0bmFtZSIsInN0cmluZ19pcHY0Iiwic3RyaW5nX2lwdjYiLCJudW1iZXJfZmxvYXQiLCJzYW5pdGl6ZVJlZiIsIm9iamVjdENvbnRyYWN0cyIsImFycmF5Q29udHJhY3RzIiwibnVtYmVyQ29udHJhY3RzIiwic3RyaW5nQ29udHJhY3RzIiwibWVyZ2VKc29uU2NoZW1hIiwibWVyZ2VkIiwic2V0SWZOb3REZWZpbmVkSW5UYXJnZXQiLCJyZWFkT25seSIsIndyaXRlT25seSIsInNhbXBsZUZyb21TY2hlbWFHZW5lcmljIiwiZXhhbXBsZU92ZXJyaWRlIiwicmVzcGVjdFhNTCIsInVzZVBsYWluVmFsdWUiLCJoYXNPbmVPZiIsImhhc0FueU9mIiwic2NoZW1hVG9BZGQiLCJzY2hlbWFIYXNBbnkiLCJlbnVtIiwiaGFuZGxlTWluTWF4SXRlbXMiLCJzYW1wbGVBcnJheSIsImFkZFByb3BlcnR5VG9SZXN1bHQiLCJwcm9wZXJ0eUFkZGVkQ291bnRlciIsImhhc0V4Y2VlZGVkTWF4UHJvcGVydGllcyIsIm1heFByb3BlcnRpZXMiLCJjYW5BZGRQcm9wZXJ0eSIsImlzT3B0aW9uYWxQcm9wZXJ0eSIsInJlcXVpcmVkUHJvcGVydGllc1RvQWRkIiwiYWRkZWRDb3VudCIsIm92ZXJyaWRlRSIsImVudW1BdHRyVmFsIiwiYXR0ckV4YW1wbGUiLCJhdHRyRGVmYXVsdCIsImRpc2NyaW1pbmF0b3IiLCJpdGVtU2NoZW1hIiwiaXRlbVNhbXBsZXMiLCJhZGRpdGlvbmFsUHJvcCIsImFkZGl0aW9uYWxQcm9wMSIsImFkZGl0aW9uYWxQcm9wcyIsImFkZGl0aW9uYWxQcm9wU2FtcGxlIiwidG9HZW5lcmF0ZUNvdW50IiwibWluUHJvcGVydGllcyIsImV4Y2x1c2l2ZU1pbmltdW0iLCJleGNsdXNpdmVNYXhpbXVtIiwiaW5mZXJTY2hlbWEiLCJjcmVhdGVYTUxFeGFtcGxlIiwiWE1MIiwic2FtcGxlRnJvbVNjaGVtYSIsIm1lbW9pemVkQ3JlYXRlWE1MRXhhbXBsZSIsIm1lbW9pemVkU2FtcGxlRnJvbVNjaGVtYSIsInNob3VsZFN0cmluZ2lmeVR5cGVzQ29uZmlnIiwid2hlbiIsInNob3VsZFN0cmluZ2lmeVR5cGVzIiwiZGVmYXVsdFN0cmluZ2lmeVR5cGVzIiwiY29udGVudFR5cGUiLCJyZXNUeXBlIiwidHlwZXNUb1N0cmluZ2lmeSIsIm5leHRDb25maWciLCJqc29uRXhhbXBsZSIsImdldEpzb25TYW1wbGVTY2hlbWEiLCJ5YW1sU3RyaW5nIiwiZ2V0WG1sU2FtcGxlU2NoZW1hIiwiZ2V0WWFtbFNhbXBsZVNjaGVtYSIsIkpTT05TY2hlbWE1U2FtcGxlc1BsdWdpbiIsIm1ha2VHZXRKc29uU2FtcGxlU2NoZW1hIiwibWFrZUdldFlhbWxTYW1wbGVTY2hlbWEiLCJtYWtlR2V0WG1sU2FtcGxlU2NoZW1hIiwibWFrZUdldFNhbXBsZVNjaGVtYSIsImpzb25TY2hlbWE1IiwiT1BFUkFUSU9OX01FVEhPRFMiLCJzcGVjU3RyIiwic3BlY1NvdXJjZSIsInNwZWNKUyIsInNwZWNSZXNvbHZlZCIsIm1lcmdlckZuIiwib2xkVmFsIiwibmV3VmFsIiwic3BlY0pzb25XaXRoUmVzb2x2ZWRTdWJ0cmVlcyIsInJldHVyblNlbGZPck5ld01hcCIsImV4dGVybmFsRG9jcyIsInNlbXZlciIsInZhbGlkT3BlcmF0aW9uTWV0aG9kcyIsIm9wZXJhdGlvbnMiLCJwYXRoTmFtZSIsImNvbnN1bWVzIiwicHJvZHVjZXMiLCJyZXNvbHZlZFJlcyIsInVucmVzb2x2ZWRSZXMiLCJiYXNlUGF0aCIsIm9wZXJhdGlvbnNXaXRoUm9vdEluaGVyaXRlZCIsIm9wcyIsIm9wIiwidGFncyIsInRhZ0RldGFpbHMiLCJvcGVyYXRpb25zV2l0aFRhZ3MiLCJ0YWdnZWRNYXAiLCJhciIsInRhZ0EiLCJ0YWdCIiwic29ydEZuIiwicmVzcG9uc2VzIiwicmVxdWVzdHMiLCJtdXRhdGVkUmVxdWVzdHMiLCJyZXNwb25zZUZvciIsInJlcXVlc3RGb3IiLCJtdXRhdGVkUmVxdWVzdEZvciIsImFsbG93VHJ5SXRPdXRGb3IiLCJwYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkiLCJwYXRoTWV0aG9kIiwib3BQYXJhbXMiLCJtZXRhUGFyYW1zIiwiY3VycmVudFBhcmFtIiwiaW5OYW1lS2V5ZWRNZXRhIiwiaGFzaEtleWVkTWV0YSIsInBhcmFtZXRlckluY2x1c2lvblNldHRpbmdGb3IiLCJwYXJhbUtleSIsInBhcmFtZXRlcldpdGhNZXRhIiwib3BlcmF0aW9uV2l0aE1ldGEiLCJtZXJnZWRQYXJhbXMiLCJnZXRQYXJhbWV0ZXIiLCJpblR5cGUiLCJoYXNIb3N0IiwicGFyYW1ldGVyVmFsdWVzIiwiaXNYbWwiLCJwYXJhbWV0ZXJzSW5jbHVkZUluIiwicGFyYW1ldGVycyIsImluVmFsdWUiLCJwYXJhbWV0ZXJzSW5jbHVkZVR5cGUiLCJ0eXBlVmFsdWUiLCJjb250ZW50VHlwZVZhbHVlcyIsInByb2R1Y2VzVmFsdWUiLCJjdXJyZW50UHJvZHVjZXNGb3IiLCJyZXF1ZXN0Q29udGVudFR5cGUiLCJyZXNwb25zZUNvbnRlbnRUeXBlIiwiY3VycmVudFByb2R1Y2VzVmFsdWUiLCJmaXJzdFByb2R1Y2VzQXJyYXlJdGVtIiwicHJvZHVjZXNPcHRpb25zRm9yIiwib3BlcmF0aW9uUHJvZHVjZXMiLCJwYXRoSXRlbVByb2R1Y2VzIiwiZ2xvYmFsUHJvZHVjZXMiLCJjb25zdW1lc09wdGlvbnNGb3IiLCJvcGVyYXRpb25Db25zdW1lcyIsInBhdGhJdGVtQ29uc3VtZXMiLCJnbG9iYWxDb25zdW1lcyIsIm1hdGNoUmVzdWx0IiwiY2FuRXhlY3V0ZVNjaGVtZSIsInZhbGlkYXRpb25FcnJvcnMiLCJnZXRFcnJvcnNXaXRoUGF0aHMiLCJnZXROZXN0ZWRFcnJvcnNXaXRoUGF0aHMiLCJjdXJyUGF0aCIsInZhbGlkYXRlQmVmb3JlRXhlY3V0ZSIsImdldE9BUzNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGUiLCJyZXF1aXJlZE9iaiIsInJlcXVlc3RCb2R5IiwiaXNNZWRpYVR5cGVTY2hlbWFQcm9wZXJ0aWVzRXF1YWwiLCJjdXJyZW50TWVkaWFUeXBlIiwidGFyZ2V0TWVkaWFUeXBlIiwicmVxdWVzdEJvZHlDb250ZW50IiwiY3VycmVudE1lZGlhVHlwZVNjaGVtYVByb3BlcnRpZXMiLCJ0YXJnZXRNZWRpYVR5cGVTY2hlbWFQcm9wZXJ0aWVzIiwiVVBEQVRFX1NQRUMiLCJVUERBVEVfVVJMIiwiVVBEQVRFX0pTT04iLCJVUERBVEVfUEFSQU0iLCJVUERBVEVfRU1QVFlfUEFSQU1fSU5DTFVTSU9OIiwiVkFMSURBVEVfUEFSQU1TIiwiU0VUX1JFU1BPTlNFIiwiU0VUX1JFUVVFU1QiLCJTRVRfTVVUQVRFRF9SRVFVRVNUIiwiTE9HX1JFUVVFU1QiLCJDTEVBUl9SRVNQT05TRSIsIkNMRUFSX1JFUVVFU1QiLCJDTEVBUl9WQUxJREFURV9QQVJBTVMiLCJVUERBVEVfT1BFUkFUSU9OX01FVEFfVkFMVUUiLCJVUERBVEVfUkVTT0xWRUQiLCJVUERBVEVfUkVTT0xWRURfU1VCVFJFRSIsIlNFVF9TQ0hFTUUiLCJjbGVhblNwZWMiLCJ1cGRhdGVSZXNvbHZlZCIsInBhcnNlVG9Kc29uIiwiaGFzV2FybmVkQWJvdXRSZXNvbHZlU3BlY0RlcHJlY2F0aW9uIiwicmVzb2x2ZVNwZWMiLCJBU1QiLCJtb2RlbFByb3BlcnR5TWFjcm8iLCJwYXJhbWV0ZXJNYWNybyIsImdldExpbmVOdW1iZXJGb3JQYXRoIiwiYmFzZURvYyIsImJhc2VVUkkiLCJwcmVwYXJlZEVycm9ycyIsInJlcXVlc3RCYXRjaCIsImRlYlJlc29sdmVTdWJ0cmVlcyIsInN5c3RlbVBhcnRpdGlvbmVkQmF0Y2hlcyIsImFzeW5jIiwic3lzdGVtUmVxdWVzdEJhdGNoIiwicmVzb2x2ZVN1YnRyZWUiLCJlcnJTZWxlY3RvcnMiLCJiYXRjaFJlc3VsdCIsInJlc3VsdE1hcCIsInNwZWNXaXRoQ3VycmVudFN1YnRyZWVzIiwib2lkY1NjaGVtZSIsIm9wZW5JZENvbm5lY3RVcmwiLCJvcGVuSWRDb25uZWN0RGF0YSIsImFzc29jUGF0aCIsIkltbXV0YWJsZU1hcCIsInVwZGF0ZVJlc29sdmVkU3VidHJlZSIsImJhdGNoZWRQYXRoIiwiYmF0Y2hlZFN5c3RlbSIsImNoYW5nZVBhcmFtIiwiY2hhbmdlUGFyYW1CeUlkZW50aXR5IiwiaW52YWxpZGF0ZVJlc29sdmVkU3VidHJlZUNhY2hlIiwidmFsaWRhdGVQYXJhbXMiLCJ1cGRhdGVFbXB0eVBhcmFtSW5jbHVzaW9uIiwiaW5jbHVkZUVtcHR5VmFsdWUiLCJjbGVhclZhbGlkYXRlUGFyYW1zIiwiY2hhbmdlQ29uc3VtZXNWYWx1ZSIsImNoYW5nZVByb2R1Y2VzVmFsdWUiLCJzZXRSZXNwb25zZSIsInNldFJlcXVlc3QiLCJzZXRNdXRhdGVkUmVxdWVzdCIsImxvZ1JlcXVlc3QiLCJleGVjdXRlUmVxdWVzdCIsInBhcmFtVmFsdWUiLCJjb250ZXh0VXJsIiwib3BJZCIsInNlcnZlciIsIm5hbWVzcGFjZVZhcmlhYmxlcyIsInNlcnZlclZhcmlhYmxlcyIsImdsb2JhbFZhcmlhYmxlcyIsInJlcXVlc3RCb2R5VmFsdWUiLCJyZXF1ZXN0Qm9keUluY2x1c2lvblNldHRpbmciLCJwYXJzZWRSZXF1ZXN0IiwiYnVpbGRSZXF1ZXN0IiwibXV0YXRlZFJlcXVlc3QiLCJwYXJzZWRNdXRhdGVkUmVxdWVzdCIsImNsZWFyUmVzcG9uc2UiLCJjbGVhclJlcXVlc3QiLCJ2YWx1ZUtleSIsInBhcmFtTWV0YSIsImlzRW1wdHlWYWx1ZUluY2x1ZGVkIiwidmFsaWRhdGVQYXJhbSIsInBhcmFtUmVxdWlyZWQiLCJwYXJhbURldGFpbHMiLCJzdGF0dXNDb2RlIiwibmV3U3RhdGUiLCJvcGVyYXRpb25QYXRoIiwibWV0YVBhdGgiLCJwYXRoSXRlbXMiLCJTcGVjUGx1Z2luIiwiX19leHRlbmRzIiwiZXh0ZW5kU3RhdGljcyIsIl9fIiwiX29iamVjdEtleXMiLCJrZXlzXzEiLCJfZGVlcENsb25lIiwiZXNjYXBlUGF0aENvbXBvbmVudCIsInVuZXNjYXBlUGF0aENvbXBvbmVudCIsImhhc1VuZGVmaW5lZCIsImlfMSIsIm9iaktleXNMZW5ndGgiLCJwYXRjaEVycm9yTWVzc2FnZUZvcm1hdHRlciIsIm1lc3NhZ2VQYXJ0cyIsIlBhdGNoRXJyb3IiLCJ0cmVlIiwiX25ld1RhcmdldCIsIkpzb25QYXRjaEVycm9yIiwiZGVlcENsb25lIiwib2JqT3BzIiwibmV3RG9jdW1lbnQiLCJtb3ZlIiwiZ2V0VmFsdWVCeVBvaW50ZXIiLCJvcmlnaW5hbFZhbHVlIiwiYXBwbHlPcGVyYXRpb24iLCJ2YWx1ZVRvQ29weSIsIl9hcmVFcXVhbHMiLCJfZ2V0IiwiYXJyT3BzIiwicG9pbnRlciIsImdldE9yaWdpbmFsRGVzdGluYXRpb24iLCJ2YWxpZGF0ZU9wZXJhdGlvbiIsIm11dGF0ZURvY3VtZW50IiwiYmFuUHJvdG90eXBlTW9kaWZpY2F0aW9ucyIsImV4aXN0aW5nUGF0aEZyYWdtZW50IiwidmFsaWRhdGVGdW5jdGlvbiIsImFwcGx5UGF0Y2giLCJwYXRjaCIsImxlbmd0aF8xIiwiYXBwbHlSZWR1Y2VyIiwib3BlcmF0aW9uUmVzdWx0IiwicGF0aExlbiIsImV4aXN0aW5nUGF0aExlbiIsImV4dGVybmFsVmFsaWRhdG9yIiwiYXJyQSIsImFyckIiLCJiZWZvcmVEaWN0IiwiTWlycm9yIiwib2JzZXJ2ZXJzIiwiT2JzZXJ2ZXJJbmZvIiwidW5vYnNlcnZlIiwib2JzZXJ2ZSIsIm1pcnJvciIsImdldE1pcnJvciIsIm9ic2VydmVySW5mbyIsImdldE9ic2VydmVyRnJvbU1pcnJvciIsImRpcnR5Q2hlY2siLCJnZW5lcmF0ZSIsImZhc3RDaGVjayIsInBhdGNoZXMiLCJyZW1vdmVPYnNlcnZlckZyb21NaXJyb3IiLCJpbnZlcnRpYmxlIiwiX2dlbmVyYXRlIiwibmV3S2V5cyIsIm9sZEtleXMiLCJkZWxldGVkIiwidHJlZTEiLCJ0cmVlMiIsIm5vcm1hbGl6ZUpTT05QYXRoIiwiZ2V0SW5CeUpzb25QYXRoIiwiY3VycmVudFZhbHVlIiwiYWxsb3dNZXRhUGF0Y2hlcyIsImlzQWRkaXRpdmVNdXRhdGlvbiIsInBhcmVudFBhdGhNYXRjaCIsImZ1bGx5Tm9ybWFsaXplQXJyYXkiLCJpc1Byb21pc2UiLCJmb3JFYWNoTmV3IiwibXV0YXRpb25zIiwiZm9yRWFjaE5ld1BhdGNoIiwiZm9yRWFjaE5ld1ByaW1pdGl2ZSIsImZvckVhY2hQcmltaXRpdmUiLCJpc0pzb25QYXRjaCIsImlzQ29udGV4dFBhdGNoIiwiaXNQYXRjaCIsImlzTXV0YXRpb24iLCJpc0dlbmVyYXRvciIsIm11dGF0aW9uIiwibmV3UmVzdWx0cyIsImFycmF5UmVzdWx0cyIsIm1vcmVSZXN1bHRzIiwianNvblBhdGgiLCJfaXNQbGFjZWhvbGRlciIsIl9jdXJyeTEiLCJmMSIsIl9jdXJyeTIiLCJmMiIsIl9jdXJyeTMiLCJmMyIsIl9pc0ludGVnZXIiLCJfaXNTdHJpbmciLCJudGgiLCJwYXRoc0FycmF5IiwicGF0aEFyIiwicGF0aFNhdGlzZmllcyIsInByZWQiLCJwcm9wUGF0aCIsIl9jbG9uZVJlZ0V4cCIsInN0aWNreSIsInVuaWNvZGUiLCJkb3RBbGwiLCJfYXJyYXlGcm9tSXRlcmF0b3IiLCJfaW5jbHVkZXNXaXRoIiwiX2hhcyIsIl9vYmplY3RJcyIsIl9pc0FyZ3VtZW50cyIsImhhc0VudW1CdWciLCJub25FbnVtZXJhYmxlUHJvcHMiLCJoYXNBcmdzRW51bUJ1ZyIsIm5JZHgiLCJrcyIsImNoZWNrQXJnc0xlbmd0aCIsIl91bmlxQ29udGVudEVxdWFscyIsImFJdGVyYXRvciIsImJJdGVyYXRvciIsInN0YWNrQSIsInN0YWNrQiIsIl9lcXVhbHMiLCJhSXRlbSIsInR5cGVBIiwiX2Z1bmN0aW9uTmFtZSIsImtleXNBIiwiZXh0ZW5kZWRTdGFja0EiLCJleHRlbmRlZFN0YWNrQiIsIl9pbmNsdWRlcyIsIl9pbmRleE9mIiwiaW5mIiwiZnVuY3RvciIsIl9xdW90ZSIsInBhZCIsIl90b0lTT1N0cmluZyIsImdldFVUQ0Z1bGxZZWFyIiwiZ2V0VVRDTW9udGgiLCJnZXRVVENEYXRlIiwiZ2V0VVRDSG91cnMiLCJnZXRVVENNaW51dGVzIiwiZ2V0VVRDU2Vjb25kcyIsImdldFVUQ01pbGxpc2Vjb25kcyIsIl9jb21wbGVtZW50IiwiX2FycmF5UmVkdWNlIiwiX2lzQXJyYXkiLCJfZGlzcGF0Y2hhYmxlIiwibWV0aG9kTmFtZXMiLCJ0cmFuc2R1Y2VyQ3JlYXRvciIsIl9pc1RyYW5zZm9ybWVyIiwidHJhbnNkdWNlciIsIl9pc09iamVjdCIsIlhGaWx0ZXIiLCJfeGZCYXNlIiwiX3hmaWx0ZXIiLCJmaWx0ZXJhYmxlIiwiX2ZpbHRlciIsInJlY3VyIiwibWFwUGFpcnMiLCJyZXByIiwiX2lzUmVnRXhwIiwiX2FyaXR5IiwiYTAiLCJhMSIsImEyIiwiYTMiLCJhNCIsImE1IiwiYTYiLCJhNyIsImE4IiwiYTkiLCJfcGlwZSIsInN5bUl0ZXJhdG9yIiwiX2NyZWF0ZVJlZHVjZSIsIm1ldGhvZFJlZHVjZSIsIml0ZXJhYmxlUmVkdWNlIiwiX3JlZHVjZSIsIl94QXJyYXlSZWR1Y2UiLCJ0aGlzT2JqIiwiX3hJdGVyYWJsZVJlZHVjZSIsIl94TWV0aG9kUmVkdWNlIiwiWFdyYXAiLCJfeHdyYXAiLCJfY2hlY2tGb3JNZXRob2QiLCJtZXRob2RuYW1lIiwidG9JbmRleCIsImRlZmF1bHRUbyIsInByb3BPciIsIl9jdXJyeU4iLCJjb21iaW5lZCIsImFyZ3NJZHgiLCJjb21iaW5lZElkeCIsImhhc1BsYWNlaG9sZGVyIiwiY3VycnlOIiwiX2lzRnVuY3Rpb24iLCJpbnZva2VyIiwiZHJvcExhc3RXaGlsZSIsIlhEcm9wTGFzdFdoaWxlIiwicmV0YWluZWQiLCJyZXRhaW4iLCJfeGRyb3BMYXN0V2hpbGUiLCJjaGFycyIsIl9pdGVyYWJsZVJlZHVjZSIsIl9tZXRob2RSZWR1Y2UiLCJYTWFwIiwiX3htYXAiLCJhcCIsImFwcGx5RiIsImFwcGx5WCIsIl9jb25jYXQiLCJzZXQxIiwic2V0MiIsImxlbjEiLCJsaWZ0TiIsImxpZnRlZCIsImxpZnQiLCJhbHdheXMiLCJzYWZlTWF4IiwibWF4QnlWYWx1ZSIsIm1heEJ5VHlwZSIsInN0cmluZ0EiLCJtYXhCeVN0cmluZ1ZhbHVlIiwicGx1Y2siLCJhbnlQYXNzIiwicHJlZHMiLCJpZGVudGljYWwiLCJ1bmFyeUlkZW50aWNhbCIsIndoZW5UcnVlRm4iLCJjaGVja1ZhbHVlIiwidmFsdWVOYW1lIiwicmVwbGFjZUFsbCIsInJlcGxhY2VWYWx1ZSIsImNoZWNrQXJndW1lbnRzIiwiY2hlY2tTZWFyY2hWYWx1ZSIsInJlcGxhY2VBbGxQb255ZmlsbCIsInJlcGxhY2VBbGxJbnZva2VyIiwiaXNXaW5kb3dzIiwiZ2V0UHJvdG9jb2wiLCJpc0ZpbGVTeXN0ZW1QYXRoIiwiaXNIdHRwVXJsIiwidG9GaWxlU3lzdGVtUGF0aCIsInVybERlY29kZVBhdHRlcm5zIiwia2VlcEZpbGVQcm90b2NvbCIsImlzV2luZG93c1ByZWRpY2F0ZSIsImlzRmlsZVVybCIsImdldEhhc2giLCJoYXNoSW5kZXgiLCJzdHJpcEhhc2giLCJoYXNoU3RyaXBwZWRVcmkiLCJyZXNvbHZlZFVybCIsInVybEVuY29kZVBhdHRlcm5zIiwiZnJvbUZpbGVTeXN0ZW1QYXRoIiwidW5zYW5pdGl6ZSIsIkhlYWRlcnMiLCJSZXF1ZXN0IiwiQUNDRVBUX0hFQURFUl9WQUxVRV9GT1JfRE9DVU1FTlRTIiwiREVGQVVMVF9CQVNFX1VSTCIsIkRFRkFVTFRfT1BFTkFQSV8zX1NFUlZFUiIsImZyZWVseU5hbWVkS2V5UGFyZW50cyIsIm5vbkZyZWVseU5hbWVkS2V5R3JhbmRwYXJlbnRzIiwiZnJlZWx5TmFtZWRQYXRocyIsImZyZWVseU5hbWVkQW5jZXN0b3JzIiwiaXNGcmVlbHlOYW1lZCIsInBhcmVudFBhdGgiLCJwYXJlbnRLZXkiLCJncmFuZHBhcmVudEtleSIsInBhcmVudFN0ciIsImFic29sdXRpZnlQb2ludGVyIiwiYmFzZVVybCIsInVybFBhcnQiLCJmcmFnbWVudFBhcnQiLCJzYWZlQmFzZVVybCIsInNhZmVVcmxQYXJ0IiwibmV3UmVmVXJsUGFydCIsImFic29sdXRlQmFzZVVybCIsInJhd1JlZlVybFBhcnQiLCJBQlNPTFVURV9VUkxfUkVHRVhQIiwiSlNPTlJlZkVycm9yIiwiZXh0cmEiLCJvcmlFcnJvciIsIm9yaWdpbmFsRXJyb3IiLCJkb2NDYWNoZSIsInNwZWNtYXBSZWZzIiwic2tpcFJlc29sdXRpb25UZXN0Rm5zIiwic3BlY21hcCIsInNwZWNtYXBJbnN0YW5jZSIsImdldEluc3RhbmNlIiwic2hvdWxkU2tpcFJlc29sdXRpb24iLCJnZXRDb250ZXh0Iiwic3BsaXRTdHJpbmciLCJyZWZQYXRoIiwicHJvbU9yVmFsIiwiYWJzb2x1dGVpZnkiLCJ3cmFwRXJyb3IiLCJwb2ludGVyQWxyZWFkeUluUGF0aCIsInBhcmVudFBvaW50ZXIiLCJhcnJheVRvSnNvblBvaW50ZXIiLCJlc2NhcGVKc29uUG9pbnRlclRva2VuIiwiZnVsbHlRdWFsaWZpZWRQb2ludGVyIiwic2FmZVBhcmVudFBvaW50ZXIiLCJyb290RG9jIiwiY29udGV4dFRyZWUiLCJwb2ludGVySXNBUGFyZW50IiwiaGFzSW5kaXJlY3RDeWNsZSIsInVzZUNpcmN1bGFyU3RydWN0dXJlcyIsImFic29sdXRpZmllZFJlZiIsImpzb25Qb2ludGVyVG9BcnJheSIsImV4dHJhY3RGcm9tRG9jIiwiX192YWx1ZSIsInBhdGNoVmFsdWVBbHJlYWR5SW5QYXRoIiwiYW5jZXN0b3JzIiwicG9pbnRUb0FuY2VzdG9yIiwiZ2V0RG9jIiwiZmV0Y2hKU09OIiwiZG9jUGF0aCIsIkFjY2VwdCIsImxvYWRTcGVjIiwiZXh0cmFjdCIsInVuZXNjYXBlSnNvblBvaW50ZXJUb2tlbiIsIl9kb2MiLCJVUkxTZWFyY2hQYXJhbXMiLCJwb2ludGVyQm91bmRhcnlDaGFyIiwibGFzdFBhcmVudENoYXIiLCJhbHJlYWR5QWRkRXJyb3IiLCJvcmlnaW5hbERlZmluaXRpb25PYmoiLCJ0b01lcmdlIiwiYWJzb2x1dGVSZWZQYXRjaGVzIiwiZ2VuZXJhdGVBYnNvbHV0ZVJlZlBhdGNoZXMiLCJnZXRCYXNlVXJsRm9yTm9kZVBhdGgiLCJ0YXJnZXRLZXlzIiwibm9kZVBhdGgiLCJhYnNvbHV0aWZpZWRSZWZWYWx1ZSIsIm9wUGF0aCIsIkNvbnRleHRUcmVlIiwiZ2V0UGFyZW50IiwiYnJhbmNoIiwicHJvdG9WYWx1ZSIsImVuc3VyZUV4aXN0cyIsIlNwZWNNYXAiLCJnZXRQbHVnaW5OYW1lIiwicGx1Z2luTmFtZSIsImdldFBhdGNoZXNPZlR5cGUiLCJkZWJ1Z0xldmVsIiwicGx1Z2luSGlzdG9yeSIsInByb21pc2VkUGF0Y2hlcyIsInNob3dEZWJ1ZyIsImFsbFBhdGNoZXMiLCJwbHVnaW5Qcm9wIiwibGliTWV0aG9kcyIsIl9nZXRDb250ZXh0IiwiaGFzUnVuIiwiX2hhc1J1biIsIndyYXBwZWRQbHVnaW5zIiwid3JhcFBsdWdpbiIsInVwZGF0ZVBhdGNoZXMiLCJ2ZXJib3NlIiwicGF0aERpc2NyaW1pbmF0b3IiLCJjdHgiLCJjcmVhdGVLZXlCYXNlZFBsdWdpbiIsInBsdWdpbk9iaiIsImlzU3ViUGF0aCIsInRlc3RlZCIsImdlbmVyYXRvciIsInJlZkNhY2hlIiwicGFyZW50SW5kZXgiLCJpbmRleE9mRmlyc3RQcm9wZXJ0aWVzIiwiaXNSb290UHJvcGVydGllcyIsInRyYXZlcnNlZCIsInVwZGF0ZWRQYXRoIiwib2JqUmVmIiwiaXNXaXRoaW5QYXRoRGlzY3JpbWluYXRvciIsIm5leHRQbHVnaW4iLCJnZXRNdXRhdGlvbnNGb3JQbHVnaW4iLCJuZXh0UHJvbWlzZWRQYXRjaCIsInJhY2UiLCJnZXRQbHVnaW5IaXN0b3J5IiwiZ2V0UGx1Z2luUnVuQ291bnQiLCJnZXRQbHVnaW5IaXN0b3J5VGlwIiwiZ2V0UGx1Z2luTXV0YXRpb25JbmRleCIsIm11dGF0aW9uSW5kZXgiLCJ1cGRhdGVQbHVnaW5IaXN0b3J5IiwicHJvbWlzZWRQYXRjaFRoZW4iLCJzZXRDb250ZXh0IiwidXBkYXRlTXV0YXRpb25zIiwicmVtb3ZlUHJvbWlzZWRQYXRjaCIsInByb21pc2VkUGF0Y2giLCJnZXRNdXRhdGlvbnMiLCJnZXRDdXJyZW50TXV0YXRpb25zIiwiZ2V0Q3VycmVudFBsdWdpbiIsInRpcCIsImN1cnJlbnRQbHVnaW4iLCJnZXRMaWIiLCJuZXh0UHJvbWlzZSIsInBsdWdpbkNvdW50IiwicHJvbWlzZXMiLCJleGVjdXRlUGx1Z2luIiwibGFzdE11dGF0aW9uSW5kZXgiLCJ5aWVsZGVkUGF0Y2hlcyIsInYyT3BlcmF0aW9uSWRDb21wYXRpYmlsaXR5TW9kZSIsImlkRnJvbVBhdGhNZXRob2QiLCJwYXJzZWRTcGVjIiwiJCRub3JtYWxpemVkIiwicGF0aFBhcmFtZXRlcnMiLCJvaWQiLCJvcExpc3QiLCJfX29yaWdpbmFsT3BlcmF0aW9uSWQiLCJpbmhlcml0c0xpc3QiLCJ0b0JlSW5oZXJpdCIsImluaGVyaXROYW1lIiwib3BQYXJhbSIsIm1ha2VGZXRjaEpTT04iLCJjcmVkZW50aWFscyIsIndpdGhDcmVkZW50aWFscyIsImlzUmZjMzk4NlJlc2VydmVkIiwiaXNSZmMzOTg2VW5yZXNlcnZlZCIsImVuY29kZUNoYXJhY3RlcnMiLCJjaGFyYWN0ZXJTZXQiLCJUZXh0RW5jb2RlciIsImVuY29kZWRCeXRlIiwic3R5bGl6ZSIsImVuY29kZUFycmF5IiwiZXhwbG9kZSIsInZhbHVlRW5jb2RlciIsImVuY29kZU9iamVjdCIsInZhbHVlS2V5cyIsImVuY29kZVByaW1pdGl2ZSIsInNlcmlhbGl6ZVJlcyIsIm1lcmdlSW5RdWVyeU9yRm9ybSIsImhlYWRlck5hbWUiLCJ1c2VyRmV0Y2giLCJyZXNFcnJvciIsInJlc3BvbnNlRXJyb3IiLCJzaG91bGREb3dubG9hZEFzVGV4dCIsIm9yaVJlcyIsInNlcmlhbGl6ZUhlYWRlcnMiLCJ1c2VUZXh0IiwicGFyc2VCb2R5Iiwic2VyaWFsaXplSGVhZGVyVmFsdWUiLCJpc0ZpbGUiLCJuYXZpZ2F0b3JPYmoiLCJwcm9kdWN0IiwiaXNBcnJheU9mRmlsZSIsIlNUWUxFX1NFUEFSQVRPUlMiLCJzcGFjZURlbGltaXRlZCIsInBpcGVEZWxpbWl0ZWQiLCJTRVBBUkFUT1JTIiwiY3N2Iiwic3N2IiwidHN2IiwiRmlsZVdpdGhEYXRhIiwiZm9ybWF0S2V5VmFsdWUiLCJza2lwRW5jb2RpbmciLCJjb2xsZWN0aW9uRm9ybWF0Iiwic2VyaWFsaXphdGlvbk9wdGlvbiIsImVuY29kZUZuIiwiZW5jb2RlZEtleSIsImZvcm1hdEtleVZhbHVlQnlTZXJpYWxpemF0aW9uT3B0aW9uIiwiYWxsb3dSZXNlcnZlZCIsImVuY29kZWRKc29uIiwiZW5jb2RlZERhdGEiLCJlbmNvZGVLZXlGbiIsImVuY29kZUZvcm1PclF1ZXJ5IiwiZW5jb2RlZFF1ZXJ5IiwicGFyYW1ldGVyTmFtZSIsImhhc0ZpbGUiLCJmb3JtZGF0YSIsInJlcUZvcm0iLCJmb3JtRGF0YSIsIm9yaVNlYXJjaCIsIm5ld1N0ciIsIm9yaVF1ZXJ5IiwiZmluYWxTdHIiLCJzdHJzIiwiam9pblNlYXJjaCIsIl9yZWYiLCJfZ2xvYmFsVGhpcyRkb2N1bWVudCIsInJldHJpZXZhbFVSTCIsInJlc29sdmVHZW5lcmljU3RyYXRlZ3kiLCJza2lwTm9ybWFsaXphdGlvbiIsInJldHJpZXZhbFVSSSIsImh0dHBDbGllbnQiLCJkb1Jlc29sdmUiLCJfc3BlYyIsInBsdWdzIiwibWFwU3BlYyIsImdlbmVyaWNTdHJhdGVneSIsIm5vcm1hbGl6ZWQiLCJpc09wZW5BUEkzMCIsIm9wZW5hcGkiLCJpc09wZW5BUEkzMSIsImlzT3BlbkFQSTMiLCJvcGVuQXBpMlN0cmF0ZWd5Iiwic3dhZ2dlciIsImlzT3BlbkFQSTIiLCJyZXNvbHZlT3BlbkFQSTJTdHJhdGVneSIsIm9wZW5BcGkzMFN0cmF0ZWd5IiwicmVzb2x2ZU9wZW5BUEkzMFN0cmF0ZWd5IiwiQXBpRE9NQWdncmVnYXRlRXJyb3IiLCJBcGlET01FcnJvciIsIkFwaURPTVN0cnVjdHVyZWRFcnJvciIsInN0cnVjdHVyZWRPcHRpb25zIiwiY2F1c2VsZXNzT3B0aW9ucyIsImdldFZpc2l0Rm4iLCJ2aXNpdG9yIiwiaXNMZWF2aW5nIiwidHlwZVZpc2l0b3IiLCJ0eXBlU3BlY2lmaWNWaXNpdG9yIiwibGVhdmUiLCJlbnRlciIsInNwZWNpZmljVmlzaXRvciIsInNwZWNpZmljVHlwZVZpc2l0b3IiLCJCUkVBSyIsImdldE5vZGVUeXBlIiwiaXNOb2RlIiwibWVyZ2VBbGwiLCJ2aXNpdG9ycyIsInZpc2l0Rm5HZXR0ZXIiLCJub2RlVHlwZUdldHRlciIsImJyZWFrU3ltYm9sIiwiZGVsZXRlTm9kZVN5bWJvbCIsInNraXBWaXNpdGluZ05vZGVTeW1ib2wiLCJleHBvc2VFZGl0cyIsInNraXBTeW1ib2wiLCJoYXNDaGFuZ2VkIiwidmlzaXRGbiIsInZpc2l0Iiwia2V5TWFwIiwibm9kZVByZWRpY2F0ZSIsIm5vZGVDbG9uZUZuIiwiZGV0ZWN0Q3ljbGVzIiwidmlzaXRvcktleXMiLCJpbkFycmF5IiwiZWRpdHMiLCJpc0VkaXRlZCIsImVkaXRPZmZzZXQiLCJlZGl0S2V5IiwiZWRpdFZhbHVlIiwiYXJyYXlLZXkiLCJzdGF0ZUtleSIsIl92aXNpdG9yS2V5cyRub2RlVHlwZSIsIl92aXNpdG9yS2V5cyRub2RlVHlwZTIiLCJfcmVkdWNlZCIsIlhBbGwiLCJfeGFsbCIsIkFubm90YXRpb24iLCJDb21tZW50IiwiUGFyc2VSZXN1bHQiLCJhcGkiLCJhbm5vdGF0aW9ucyIsIndhcm5pbmdzIiwicmVwbGFjZVJlc3VsdCIsInNlYXJjaEluZGV4IiwiU291cmNlTWFwIiwicG9zaXRpb25TdGFydCIsInBvc2l0aW9uRW5kIiwicm93IiwiaGFzTWV0aG9kIiwiaGFzQmFzaWNFbGVtZW50UHJvcHMiLCJwcmltaXRpdmVFcSIsImhhc0NsYXNzIiwiY2xzIiwiaXNFbGVtZW50VHlwZSIsInByZWRpY2F0ZUNyZWF0b3IiLCJpc1N0cmluZ0VsZW1lbnQiLCJpc051bWJlckVsZW1lbnQiLCJpc051bGxFbGVtZW50IiwiaXNCb29sZWFuRWxlbWVudCIsImlzT2JqZWN0RWxlbWVudCIsImlzQXJyYXlFbGVtZW50IiwiaXNNZW1iZXJFbGVtZW50IiwiaXNMaW5rRWxlbWVudCIsImlzUmVmRWxlbWVudCIsImlzQW5ub3RhdGlvbkVsZW1lbnQiLCJpc0NvbW1lbnRFbGVtZW50IiwiaXNQYXJzZVJlc3VsdEVsZW1lbnQiLCJpc1NvdXJjZU1hcEVsZW1lbnQiLCJpc1ByaW1pdGl2ZUVsZW1lbnQiLCJoYXNFbGVtZW50U291cmNlTWFwIiwiaW5jbHVkZXNTeW1ib2xzIiwiZWxlbWVudFN5bWJvbHMiLCJpbmNsdWRlc0NsYXNzZXMiLCJDbG9uZUVycm9yIiwiRGVlcENsb25lRXJyb3IiLCJTaGFsbG93Q2xvbmVFcnJvciIsImNsb25lRGVlcCIsInZpc2l0ZWQiLCJwYXNzVGhyb3VnaE9wdGlvbnMiLCJrZXlDb3B5IiwidmFsdWVDb3B5IiwiY2xvbmVTaGFsbG93Iiwic2FmZSIsImNsb25lU2hhbGxvd0tleVZhbHVlUGFpciIsImtleVZhbHVlUGFpciIsImNsb25lU2hhbGxvd0VsZW1lbnQiLCJvYmplY3RTbGljZSIsImNsb25lU2hhbGxvd09iamVjdFNsaWNlIiwiY2xvbmVTaGFsbG93QXJyYXlTbGljZSIsImtleU1hcERlZmF1bHQiLCJQYXJzZVJlc3VsdEVsZW1lbnQiLCJQcmVkaWNhdGVWaXNpdG9yIiwicmV0dXJuT25UcnVlIiwicmV0dXJuT25GYWxzZSIsIkVwaGVtZXJhbE9iamVjdCIsIkVwaGVtZXJhbEFycmF5IiwidG9SZWZlcmVuY2UiLCJmcm9tRW50cmllcyIsIlZpc2l0b3IiLCJyZWZlcmVuY2VzIiwiZXBoZW1lcmFsIiwiX2FuY2VzdG9ycyIsIm1lcmdlV2l0aEtleSIsIm1lcmdlRGVlcFdpdGhLZXkiLCJsT2JqIiwick9iaiIsImxWYWwiLCJyVmFsIiwibWVyZ2VEZWVwUmlnaHQiLCJhbmQiLCJib3RoIiwiX2JvdGgiLCJfaXNUeXBlZEFycmF5IiwiaW52b2tlQXJncyIsIm1wYXRoIiwiYm91bmRNZXRob2QiLCJpc09mVHlwZU9iamVjdCIsImlzT2JqZWN0Q29uc3RydWN0b3IiLCJoYXNPYmplY3RDb25zdHJ1Y3RvciIsImNyZWF0ZU5hbWVzcGFjZSIsIm5hbWVzcGFjZVBsdWdpbiIsIm5hbWVzcGFjZUluc3RhbmNlIiwicHJlZGljYXRlcyIsImRlZmF1bHREaXNwYXRjaFBsdWdpbnNPcHRpb25zIiwidG9vbGJveENyZWF0b3IiLCJ2aXNpdG9yT3B0aW9ucyIsImRpc3BhdGNoUGx1Z2luc1N5bmMiLCJtZXJnZWRPcHRpb25zIiwicGx1Z2luc1NwZWNzIiwibWVyZ2VkUGx1Z2luc1Zpc2l0b3IiLCJuZXdFbGVtZW50IiwibWVyZ2VBbGxWaXNpdG9yc0FzeW5jIiwidmlzaXRBc3luYyIsImFsbFNldHRsZWQiLCJjcmVhdGVSZWZyYWN0b3IiLCJjb21wdXRlRWRnZXMiLCJlZGdlcyIsImNoaWxkRWxlbWVudCIsInRyYW5zY2x1ZGUiLCJfdGhpcyRlZGdlcyIsIm9iamVjdEVsZW1lbnQiLCJ0cmFuc2NsdWRlQ2hpbGRPZk9iamVjdEVsZW1lbnQiLCJhcnJheUVsZW1lbnQiLCJ0cmFuc2NsdWRlQ2hpbGRPZkFycmF5RWxlbWVudCIsIm1lbWJlckVsZW1lbnQiLCJ0cmFuc2NsdWRlQ2hpbGRPZk1lbWJlckVsZW1lbnQiLCJKc29uUG9pbnRlckVycm9yIiwiQ29tcGlsYXRpb25Kc29uUG9pbnRlckVycm9yIiwiY29udmVyZ2UiLCJmbnMiLCJfaWRlbnRpdHkiLCJpc0Zpbml0ZVBvbnlmaWxsIiwiaXNJbnRlZ2VyUG9ueWZpbGwiLCJYVGFrZSIsIl94dGFrZSIsIlhEcm9wV2hpbGUiLCJfeGRyb3BXaGlsZSIsImRyb3BXaGlsZSIsImVuY29kZWRVUklDb21wb25lbnQiLCJJbnZhbGlkSnNvblBvaW50ZXJFcnJvciIsInVyaVRvUG9pbnRlciIsIkV2YWx1YXRpb25Kc29uUG9pbnRlckVycm9yIiwiZmFpbGVkVG9rZW4iLCJmYWlsZWRUb2tlblBvc2l0aW9uIiwidG9rZW5Qb3NpdGlvbiIsIkNhbGxiYWNrIiwiQ29tcG9uZW50cyIsInNjaGVtYXMiLCJleGFtcGxlcyIsInJlcXVlc3RCb2RpZXMiLCJzZWN1cml0eVNjaGVtZXMiLCJjYWxsYmFja3MiLCJDb250YWN0IiwiRGlzY3JpbWluYXRvciIsIkVuY29kaW5nIiwiYWxsb3dlZFJlc2VydmVkIiwiRXhhbXBsZSIsInN1bW1hcnkiLCJleHRlcm5hbFZhbHVlIiwiRXh0ZXJuYWxEb2N1bWVudGF0aW9uIiwiSGVhZGVyIiwiY29udGVudFByb3AiLCJJbmZvIiwidGVybXNPZlNlcnZpY2UiLCJ0b3MiLCJjb250YWN0IiwiY29udGFjdEVsZW1lbnQiLCJsaWNlbnNlRWxlbWVudCIsIkxpY2Vuc2UiLCJvcGVyYXRpb25SZWYiLCJfdGhpcyRvcGVyYXRpb25SZWYiLCJfdGhpcyRvcGVyYXRpb25JZCIsIk1lZGlhVHlwZSIsIk9BdXRoRmxvdyIsImF1dGhvcml6YXRpb25VcmwiLCJ0b2tlblVybCIsInJlZnJlc2hVcmwiLCJPQXV0aEZsb3dzIiwiY2xpZW50Q3JlZGVudGlhbHMiLCJhdXRob3JpemF0aW9uQ29kZSIsIk9wZW5hcGkiLCJPcGVuQXBpM18wIiwic2VydmVycyIsIk9wZXJhdGlvbiIsIlBhcmFtZXRlciIsIlBhdGhJdGVtIiwiR0VUIiwiUFVUIiwiUE9TVCIsIk9QVElPTlMiLCJIRUFEIiwiUEFUQ0giLCJUUkFDRSIsIlBhdGhzIiwiUmVmZXJlbmNlIiwiUmVxdWVzdEJvZHkiLCJSZXNwb25zZXMiLCJVbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yIiwiSlNPTlNjaGVtYSIsImlkUHJvcCIsIiRzY2hlbWEiLCJtdWx0aXBsZU9mIiwiYWRkaXRpb25hbEl0ZW1zIiwicGF0dGVyblByb3BlcnRpZXMiLCJtZWRpYSIsIkpTT05SZWZlcmVuY2UiLCJNZWRpYSIsImJpbmFyeUVuY29kaW5nIiwiTGlua0Rlc2NyaXB0aW9uIiwicmVsIiwidGFyZ2V0U2NoZW1hIiwibWVkaWFUeXBlIiwiZW5jVHlwZSIsIm1hcE9iakluZGV4ZWQiLCJpc05pbCIsIl9wYXRoIiwicHJvcFNhdGlzZmllcyIsImRlcmVmZXJlbmNlIiwicm9vdE9iamVjdCIsImVtcHR5RWxlbWVudCIsImlzTWVyZ2VhYmxlRWxlbWVudCIsImdldE1ldGFNZXJnZUZ1bmN0aW9uIiwiY3VzdG9tTWV0YU1lcmdlIiwidGFyZ2V0TWV0YSIsImdldEF0dHJpYnV0ZXNNZXJnZUZ1bmN0aW9uIiwiY3VzdG9tQXR0cmlidXRlc01lcmdlIiwidGFyZ2V0QXR0cmlidXRlcyIsImFycmF5RWxlbWVudE1lcmdlIiwidGFyZ2V0RWxlbWVudCIsInNvdXJjZUVsZW1lbnQiLCJvYmplY3RFbGVtZW50TWVyZ2UiLCJjbG9uZWRNZW1iZXIiLCJ0YXJnZXRWYWx1ZSIsImtleUVsZW1lbnQiLCJfbWVyZ2VkT3B0aW9ucyRpc01lcmciLCJfbWVyZ2VkT3B0aW9ucyRhcnJheUUiLCJfbWVyZ2VkT3B0aW9ucyRvYmplY3QiLCJzb3VyY2VJc0FycmF5RWxlbWVudCIsIm1lcmdlZEVsZW1lbnQiLCJjb3B5TWV0YUFuZEF0dHJpYnV0ZXMiLCJwaWNrIiwic3BlY09iaiIsInBhc3NpbmdPcHRpb25zTmFtZXMiLCJyZXRyaWV2ZVBhc3NpbmdPcHRpb25zIiwicmV0cmlldmVGaXhlZEZpZWxkcyIsImZpeGVkRmllbGRzIiwicmV0cmlldmVWaXNpdG9yIiwicmV0cmlldmVWaXNpdG9ySW5zdGFuY2UiLCJwYXNzaW5nT3B0cyIsInRvUmVmcmFjdGVkRWxlbWVudCIsInZpc2l0b3JQcm90b3R5cGUiLCJmYWxsYmFja1Zpc2l0b3JQcm90b3R5cGUiLCJpZ25vcmVkRmllbGRzIiwiZmllbGRzIiwiZml4ZWRGaWVsZEVsZW1lbnQiLCJuZXdNZW1iZXJFbGVtZW50IiwiaXNKU09OUmVmZXJlbmNlTGlrZUVsZW1lbnQiLCJhbGxQYXNzIiwib3IiLCJfZWl0aGVyIiwiUGF0dGVybmVkRmllbGRzSnNvbk9iamVjdFZpc2l0b3IiLCJmaWVsZFBhdHRlcm5QcmVkaWNhdGUiLCJwYXR0ZXJuZWRGaWVsZEVsZW1lbnQiLCJzdHJpbmdFbGVtZW50IiwibGlua0Rlc2NyaXB0aW9uRWxlbWVudCIsImlmRWxzZSIsIm9uVHJ1ZSIsIm9uRmFsc2UiLCJfaWZFbHNlIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibWluTGVuIiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiYXJyMiIsImdldE1heEFyaXR5IiwiZGlzcGF0Y2hJbXBsIiwiZnVuY3Rpb25zIiwiQWx0ZXJuYXRpbmdWaXNpdG9yIiwiYWx0ZXJuYXRvciIsIkpTT05TY2hlbWFPckpTT05SZWZlcmVuY2VWaXNpdG9yIiwiJHZpc2l0b3IiLCJKU09OU2NoZW1hRHJhZnQ0RWxlbWVudCIsIkpTT05SZWZlcmVuY2VFbGVtZW50IiwiTWVkaWFFbGVtZW50IiwiTGlua0Rlc2NyaXB0aW9uRWxlbWVudCIsImlzSlNPTlNjaGVtYUVsZW1lbnQiLCJpc0pTT05SZWZlcmVuY2VFbGVtZW50IiwiaXNNZWRpYUVsZW1lbnQiLCJpc0xpbmtEZXNjcmlwdGlvbkVsZW1lbnQiLCJqc29uU2NoZW1hRHJhZnQ0Iiwic3BlY2lmaWNhdGlvbk9iaiIsInJlc29sdmVkU3BlYyIsInJvb3RWaXNpdG9yIiwiaWRQcm9wcyIsIlNlY3VyaXR5UmVxdWlyZW1lbnQiLCJTZWN1cml0eVNjaGVtZSIsImluVmFsIiwiYmVhcmVyRm9ybWF0IiwiZmxvd3MiLCJTZXJ2ZXIiLCJ2YXJpYWJsZXMiLCJTZXJ2ZXJWYXJpYWJsZSIsIlRhZyIsIlhtbCIsImV4Y2x1ZGUiLCJwcm90b0NoYWluIiwiY3VycmVudENoYWluIiwiaGFyZE1peFByb3RvcyIsImluZ3JlZGllbnRzIiwib2JqcyIsImNvbW1vblByb3RvIiwicHJvdG9DaGFpbnMiLCJwcm90b3MiLCJwb3RlbnRpYWxDb21tb25Qcm90byIsIm5lYXJlc3RDb21tb25Qcm90byIsIm1peGVkUHJvdG8iLCJ2aXNpdGVkUHJvdG9zIiwibmV3UHJvdG8iLCJ1bmlxdWUiLCJnZXRJbmdyZWRpZW50V2l0aFByb3AiLCJpbmdyZWRpZW50IiwicHJvdG9EZXB0aCIsInByb3Rvc0FyZUxlZnRUb1NlYXJjaCIsInNlYXJjaFRhcmdldCIsInByb3h5TWl4IiwiaW5ncmVkaWVudFdpdGhQcm9wIiwiZGVsZXRlUHJvcGVydHkiLCJtaXhpbnMiLCJnZXRNaXhpbnNGb3JDbGFzcyIsImNsYXp6IiwibWVyZ2VPYmplY3RzT2ZEZWNvcmF0b3JzIiwibzEiLCJvMiIsImFsbEtleXMiLCJtZXJnZWRPYmplY3QiLCJtZXJnZVByb3BlcnR5QW5kTWV0aG9kRGVjb3JhdG9ycyIsImQxIiwiZDIiLCJtZXJnZURlY29yYXRvcnMiLCJkZWNvcmF0b3JzIiwiZGVlcERlY29yYXRvclNlYXJjaCIsImRlY29yYXRvcnNGb3JDbGFzc0NoYWluIiwiYWxsQ2xhc3NlcyIsImZyb250aWVyIiwicHJvdG9DaGFpbkNsYXNzZXMiLCJuZXdDbGFzc2VzIiwiZmluZEFsbENvbnN0aXR1ZW50Q2xhc3NlcyIsImdldERlY29yYXRvcnNGb3JDbGFzcyIsImRlY29yYXRvcnNGb3JDbGFzcyIsIk1peGluIiwiY29uc3RydWN0b3JzIiwicHJvdG90eXBlcyIsImluaXRGdW5jdGlvbk5hbWUiLCJpbml0RnVuY3Rpb25zIiwiZXh0cmFQcm90byIsImluaXRGdW5jdGlvbiIsIk1peGVkQ2xhc3MiLCJEZWNvcmF0ZWRNaXhlZENsYXNzIiwiY2xhc3NEZWNvcmF0b3JzIiwiZGlyZWN0RGVjb3JhdG9yU2VhcmNoIiwiZGVjb3JhdG9yIiwiYXBwbHlQcm9wQW5kTWV0aG9kRGVjb3JhdG9ycyIsIm1peGVkQ2xhc3MiLCJjb25zdGl0dWVudHMiLCJwcm9wQW5kTWV0aG9kRGVjb3JhdG9ycyIsInByb3BEZWNvcmF0b3JzIiwibWV0aG9kRGVjb3JhdG9ycyIsIm9wZW5BcGlHZW5lcmljRWxlbWVudCIsIm9wZW5BcGlTZW1hbnRpY0VsZW1lbnQiLCJpc1JlZmVyZW5jZUxpa2VFbGVtZW50IiwiaXNTZXJ2ZXJMaWtlRWxlbWVudCIsImlzVGFnTGlrZUVsZW1lbnQiLCJpc09wZW5BcGlFeHRlbnNpb24iLCJjYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnMiLCJzcGVjaWZpY2F0aW9uRXh0ZW5zaW9uUHJlZGljYXRlIiwiZXh0ZW5zaW9uRWxlbWVudCIsIk9wZW5BcGkzXzBWaXNpdG9yIiwiT3BlbmFwaVZpc2l0b3IiLCJvcGVuYXBpRWxlbWVudCIsIlNwZWNpZmljYXRpb25FeHRlbnNpb25WaXNpdG9yIiwiSW5mb1Zpc2l0b3IiLCJWZXJzaW9uVmlzaXRvciIsIkNvbnRhY3RWaXNpdG9yIiwiTGljZW5zZVZpc2l0b3IiLCJMaW5rVmlzaXRvciIsIk9wZXJhdGlvblJlZlZpc2l0b3IiLCJPcGVyYXRpb25JZFZpc2l0b3IiLCJMaW5rUGFyYW1ldGVycyIsInByaW1hcnlDbGFzcyIsIlBhcmFtZXRlcnNWaXNpdG9yIiwiU2VydmVyVmlzaXRvciIsIlVybFZpc2l0b3IiLCJTZXJ2ZXJzIiwiU2VydmVyc1Zpc2l0b3IiLCJTZXJ2ZXJWYXJpYWJsZVZpc2l0b3IiLCJTZXJ2ZXJWYXJpYWJsZXMiLCJWYXJpYWJsZXNWaXNpdG9yIiwiaXNDYWxsYmFja0VsZW1lbnQiLCJpc0NvbXBvbmVudHNFbGVtZW50IiwiaXNDb250YWN0RWxlbWVudCIsImlzRXhhbXBsZUVsZW1lbnQiLCJpc0V4dGVybmFsRG9jdW1lbnRhdGlvbkVsZW1lbnQiLCJpc0hlYWRlckVsZW1lbnQiLCJpc0luZm9FbGVtZW50IiwiaXNMaWNlbnNlRWxlbWVudCIsImlzT3BlbmFwaUVsZW1lbnQiLCJpc09wZW5BcGkzXzBFbGVtZW50IiwiaXNPcGVyYXRpb25FbGVtZW50IiwiaXNQYXJhbWV0ZXJFbGVtZW50IiwiaXNQYXRoSXRlbUVsZW1lbnQiLCJpc1BhdGhzRWxlbWVudCIsImlzUmVmZXJlbmNlRWxlbWVudCIsImlzUmVxdWVzdEJvZHlFbGVtZW50IiwiaXNSZXNwb25zZUVsZW1lbnQiLCJpc1Jlc3BvbnNlc0VsZW1lbnQiLCJpc1NjaGVtYUVsZW1lbnQiLCJpc0Jvb2xlYW5Kc29uU2NoZW1hRWxlbWVudCIsImlzU2VjdXJpdHlSZXF1aXJlbWVudEVsZW1lbnQiLCJpc1NlY3VyaXR5U2NoZW1lRWxlbWVudCIsImlzU2VydmVyRWxlbWVudCIsImlzU2VydmVyVmFyaWFibGVFbGVtZW50IiwiaXNNZWRpYVR5cGVFbGVtZW50IiwiaXNTZXJ2ZXJzRWxlbWVudCIsIlNjaGVtYVZpc2l0b3IiLCJFeGFtcGxlc1Zpc2l0b3IiLCJyZWZlcmVuY2VFbGVtZW50IiwiTWVkaWFUeXBlRXhhbXBsZXMiLCJNZWRpYVR5cGVFbmNvZGluZyIsIkVuY29kaW5nVmlzaXRvciIsIlNlY3VyaXR5UmVxdWlyZW1lbnRWaXNpdG9yIiwiU2VjdXJpdHkiLCJTZWN1cml0eVZpc2l0b3IiLCJDb21wb25lbnRzVmlzaXRvciIsIlRhZ1Zpc2l0b3IiLCJSZWZlcmVuY2VWaXNpdG9yIiwiUGFyYW1ldGVyVmlzaXRvciIsIm1lZGlhVHlwZUVsZW1lbnQiLCJIZWFkZXJWaXNpdG9yIiwiSGVhZGVyRXhhbXBsZXMiLCJDb250ZW50VmlzaXRvciIsIkhlYWRlckNvbnRlbnQiLCJKU09OU2NoZW1hQWxsT2ZWaXNpdG9yIiwiSlNPTlNjaGVtYUFueU9mVmlzaXRvciIsIkpTT05TY2hlbWFPbmVPZlZpc2l0b3IiLCJKU09OU2NoZW1hSXRlbXNWaXNpdG9yIiwiSlNPTlNjaGVtYVByb3BlcnRpZXNWaXNpdG9yIiwiSlNPTlNjaGVtYVR5cGVWaXNpdG9yIiwiRGlzY3JpbWluYXRvclZpc2l0b3IiLCJEaXNjcmltaW5hdG9yTWFwcGluZyIsIk1hcHBpbmdWaXNpdG9yIiwiWG1sVmlzaXRvciIsIlBhcmFtZXRlckV4YW1wbGVzIiwiUGFyYW1ldGVyQ29udGVudCIsIkNvbXBvbmVudHNTY2hlbWFzIiwiU2NoZW1hc1Zpc2l0b3IiLCJDb21wb25lbnRzUmVzcG9uc2VzIiwiUmVzcG9uc2VzVmlzaXRvciIsIkNvbXBvbmVudHNQYXJhbWV0ZXJzIiwiQ29tcG9uZW50c0V4YW1wbGVzIiwiQ29tcG9uZW50c1JlcXVlc3RCb2RpZXMiLCJSZXF1ZXN0Qm9kaWVzVmlzaXRvciIsIkNvbXBvbmVudHNIZWFkZXJzIiwiSGVhZGVyc1Zpc2l0b3IiLCJDb21wb25lbnRzU2VjdXJpdHlTY2hlbWVzIiwiU2VjdXJpdHlTY2hlbWVzVmlzaXRvciIsIkNvbXBvbmVudHNMaW5rcyIsIkNvbXBvbmVudHNDYWxsYmFja3MiLCJDYWxsYmFja3NWaXNpdG9yIiwiRXhhbXBsZVZpc2l0b3IiLCJFeHRlcm5hbFZhbHVlVmlzaXRvciIsIkV4dGVybmFsRG9jdW1lbnRhdGlvblZpc2l0b3IiLCJoZWFkZXJFbGVtZW50IiwiRW5jb2RpbmdIZWFkZXJzIiwiUGF0aHNWaXNpdG9yIiwicGF0aEl0ZW1FbGVtZW50IiwiUmVxdWVzdEJvZHlWaXNpdG9yIiwiUmVxdWVzdEJvZHlDb250ZW50IiwiQ2FsbGJhY2tWaXNpdG9yIiwiUmVzcG9uc2VWaXNpdG9yIiwiUmVzcG9uc2VIZWFkZXJzIiwiUmVzcG9uc2VDb250ZW50IiwiUmVzcG9uc2VMaW5rcyIsIl9pc051bWJlciIsImhhc09yQWRkIiwic2hvdWxkQWRkIiwicHJldlNpemUiLCJfaXRlbXMiLCJfbmF0aXZlU2V0IiwiYklkeCIsIl9TZXQiLCJkaWZmZXJlbmNlIiwiZmlyc3RMZW4iLCJzZWNvbmRMZW4iLCJ0b0ZpbHRlck91dCIsIk1peGVkRmllbGRzVmlzaXRvciIsInNwZWNQYXRoRml4ZWRGaWVsZHMiLCJzcGVjUGF0aFBhdHRlcm5lZEZpZWxkcyIsImh0dHBTdGF0dXNDb2RlIiwiT3BlcmF0aW9uVmlzaXRvciIsIk9wZXJhdGlvblRhZ3MiLCJUYWdzVmlzaXRvciIsIk9wZXJhdGlvblBhcmFtZXRlcnMiLCJPcGVyYXRpb25DYWxsYmFja3MiLCJPcGVyYXRpb25TZWN1cml0eSIsIk9wZXJhdGlvblNlcnZlcnMiLCJQYXRoSXRlbVZpc2l0b3IiLCJvcGVyYXRpb25FbGVtZW50IiwiaHR0cE1ldGhvZEVsZW1lbnRDSSIsImh0dHBNZXRob2RFbGVtZW50Q1MiLCJQYXRoSXRlbVNlcnZlcnMiLCJQYXRoSXRlbVBhcmFtZXRlcnMiLCJTZWN1cml0eVNjaGVtZVZpc2l0b3IiLCJPQXV0aEZsb3dzVmlzaXRvciIsIk9BdXRoRmxvd1Zpc2l0b3IiLCJPQXV0aEZsb3dTY29wZXMiLCJTY29wZXNWaXNpdG9yIiwiVGFncyIsImpzb25TY2hlbWFGaXhlZEZpZWxkcyIsIk9wZW5BcGkiLCJwdXQiLCJpbiIsImV4dGVuc2lvbiIsIkNhbGxiYWNrRWxlbWVudCIsIkNvbXBvbmVudHNFbGVtZW50IiwiQ29udGFjdEVsZW1lbnQiLCJEaXNjcmltaW5hdG9yRWxlbWVudCIsIkV4dGVybmFsRG9jdW1lbnRhdGlvbkVsZW1lbnQiLCJIZWFkZXJFbGVtZW50IiwiSW5mb0VsZW1lbnQiLCJMaWNlbnNlRWxlbWVudCIsIk1lZGlhVHlwZUVsZW1lbnQiLCJPQXV0aEZsb3dFbGVtZW50IiwiT0F1dGhGbG93c0VsZW1lbnQiLCJPcGVuQXBpM18wRWxlbWVudCIsIk9wZXJhdGlvbkVsZW1lbnQiLCJQYXJhbWV0ZXJFbGVtZW50IiwiUGF0aEl0ZW1FbGVtZW50IiwiUGF0aHNFbGVtZW50IiwiUmVmZXJlbmNlRWxlbWVudCIsIlJlcXVlc3RCb2R5RWxlbWVudCIsIlJlc3BvbnNlRWxlbWVudCIsIlJlc3BvbnNlc0VsZW1lbnQiLCJTY2hlbWFFbGVtZW50IiwiU2VjdXJpdHlSZXF1aXJlbWVudEVsZW1lbnQiLCJTZWN1cml0eVNjaGVtZUVsZW1lbnQiLCJTZXJ2ZXJFbGVtZW50IiwiU2VydmVyVmFyaWFibGVFbGVtZW50IiwiVGFnRWxlbWVudCIsIm9wZW5BcGkzXzAiLCJKc29uU2NoZW1hRGlhbGVjdCIsImlkZW50aWZpZXIiLCJPcGVuQXBpM18xIiwianNvblNjaGVtYURpYWxlY3QiLCJ3ZWJob29rcyIsIiR2b2NhYnVsYXJ5IiwiJGlkIiwiJGFuY2hvciIsIiRkeW5hbWljQW5jaG9yIiwiJGR5bmFtaWNSZWYiLCIkZGVmcyIsIiRjb21tZW50IiwiaWZTY2hlbWEiLCJ0aGVuU2NoZW1hIiwiZWxzZVNjaGVtYSIsImRlcGVuZGVudFNjaGVtYXMiLCJwcmVmaXhJdGVtcyIsImNvbnRhaW5zUHJvcCIsInByb3BlcnR5TmFtZXMiLCJ1bmV2YWx1YXRlZEl0ZW1zIiwidW5ldmFsdWF0ZWRQcm9wZXJ0aWVzIiwiZW51bVZhbCIsImNvbnN0VmFsIiwibWF4Q29udGFpbnMiLCJtaW5Db250YWlucyIsImRlcGVuZGVudFJlcXVpcmVkIiwiY29udGVudEVuY29kaW5nIiwiY29udGVudE1lZGlhVHlwZSIsImNvbnRlbnRTY2hlbWEiLCJPcGVuQXBpM18xVmlzaXRvciIsIkJhc2VJbmZvVmlzaXRvciIsIkJhc2VDb250YWN0VmlzaXRvciIsIkJhc2VMaWNlbnNlVmlzaXRvciIsIkJhc2VMaW5rVmlzaXRvciIsIkpzb25TY2hlbWFEaWFsZWN0VmlzaXRvciIsImpzb25TY2hlbWFEaWFsZWN0RWxlbWVudCIsIkJhc2VTZXJ2ZXJWaXNpdG9yIiwiQmFzZVNlcnZlclZhcmlhYmxlVmlzaXRvciIsIkJhc2VNZWRpYVR5cGVWaXNpdG9yIiwiQmFzZVNlY3VyaXR5UmVxdWlyZW1lbnRWaXNpdG9yIiwiQmFzZUNvbXBvbmVudHNWaXNpdG9yIiwiQmFzZVRhZ1Zpc2l0b3IiLCJCYXNlUmVmZXJlbmNlVmlzaXRvciIsIkJhc2VQYXJhbWV0ZXJWaXNpdG9yIiwiQmFzZUhlYWRlclZpc2l0b3IiLCJpc0pzb25TY2hlbWFEaWFsZWN0RWxlbWVudCIsImlzT3BlbkFwaTNfMUVsZW1lbnQiLCJpc1BhdGhJdGVtRWxlbWVudEV4dGVybmFsIiwiaXNSZWZlcmVuY2VFbGVtZW50RXh0ZXJuYWwiLCJqc29uU2NoZW1hRGVmYXVsdERpYWxlY3QiLCJoYW5kbGUkc2NoZW1hIiwiaGFuZGxlJGlkIiwiYm9vbGVhbkVsZW1lbnQiLCJnZXRKc29uU2NoZW1hRGlhbGVjdCIsImluaGVyaXRlZCRzY2hlbWEiLCJpbmhlcml0ZWQkaWQiLCIkdm9jYWJ1bGFyeVZpc2l0b3IiLCIkcmVmVmlzaXRvciIsIiRkZWZzVmlzaXRvciIsInNjaGVtYUVsZW1lbnQiLCJEZXBlbmRlbnRTY2hlbWFzVmlzaXRvciIsIlByZWZpeEl0ZW1zVmlzaXRvciIsIkRlcGVuZGVudFJlcXVpcmVkVmlzaXRvciIsIkJhc2VEaXNjcmltaW5hdG9yVmlzaXRvciIsIkJhc2VYTUxWaXNpdG9yIiwiQ29tcG9uZW50c1BhdGhJdGVtcyIsIlBhdGhJdGVtc1Zpc2l0b3IiLCJCYXNlRXhhbXBsZVZpc2l0b3IiLCJCYXNlRXh0ZXJuYWxEb2N1bWVudGF0aW9uVmlzaXRvciIsIkJhc2VFbmNvZGluZ1Zpc2l0b3IiLCJCYXNlUGF0aHNWaXNpdG9yIiwiQmFzZVJlcXVlc3RCb2R5VmlzaXRvciIsIkJhc2VDYWxsYmFja1Zpc2l0b3IiLCJCYXNlUmVzcG9uc2VWaXNpdG9yIiwiQmFzZVJlc3BvbnNlc1Zpc2l0b3IiLCJCYXNlT3BlcmF0aW9uVmlzaXRvciIsIkJhc2VQYXRoSXRlbVZpc2l0b3IiLCJCYXNlU2VjdXJpdHlTY2hlbWVWaXNpdG9yIiwiQmFzZU9BdXRoRmxvd3NWaXNpdG9yIiwiQmFzZU9BdXRoRmxvd1Zpc2l0b3IiLCJXZWJob29rcyIsIldlYmhvb2tzVmlzaXRvciIsImlmIiwiZWxzZSIsImNvbnN0IiwiT3BlbkFwaTNfMUVsZW1lbnQiLCJvcGVuQXBpM18xIiwiTm90SW1wbGVtZW50ZWRFcnJvciIsIk1lZGlhVHlwZXMiLCJ1bmtub3duTWVkaWFUeXBlIiwiZmlsdGVyQnlGb3JtYXQiLCJmaW5kQnkiLCJsYXRlc3QiLCJPcGVuQVBJTWVkaWFUeXBlcyIsImVmZmVjdGl2ZUZvcm1hdCIsInJlZlNldCIsInByb3BFcSIsIlJlZmVyZW5jZVNldCIsImFub3RoZXJSZWZTZXQiLCJjbGVhbiIsInBhcnNlcnMiLCJwYXJzZXJPcHRzIiwicmVzb2x2ZXJzIiwicmVzb2x2ZXJPcHRzIiwic3RyYXRlZ2llcyIsInN0cmF0ZWd5T3B0cyIsImludGVybmFsIiwiZXh0ZXJuYWwiLCJjaXJjdWxhclJlcGxhY2VyIiwiYnVuZGxlIiwidG9GdW5jdG9yRm4iLCJuZXh0T2JqIiwiX2Fzc29jIiwiSWRlbnRpdHkiLCJvdmVyIiwiYmFzZVVSSUxlbnMiLCJiYXNlVVJJRGVmYXVsdCIsIndpdGhvdXREZWZhdWx0cyIsInBhcnNlUmVzdWx0IiwibGFzdERvdFBvc2l0aW9uIiwiVGV4dERlY29kZXIiLCJQbHVnaW5FcnJvciIsInBsdWdpblJlc3VsdHMiLCJEZXJlZmVyZW5jZUVycm9yIiwiVW5tYXRjaGVkRGVyZWZlcmVuY2VTdHJhdGVneUVycm9yIiwiZGVyZWZlcmVuY2VBcGlET00iLCJzdXJyb2dhdGVXcmFwcGluZyIsImVsZW1lbnRDbG9uZSIsImZpbGUiLCJkZXJlZmVyZW5jZVN0cmF0ZWdpZXMiLCJQYXJzZUVycm9yIiwiUGFyc2VyRXJyb3IiLCJQYXJzZXIiLCJhbGxvd0VtcHR5Iiwic291cmNlTWFwIiwiZmlsZUV4dGVuc2lvbnMiLCJtZWRpYVR5cGVzIiwiY2FuUGFyc2UiLCJiaW5hcnlTdHJpbmciLCJiYXNlNjRTdHJpbmciLCJwYXJzZVJlc3VsdEVsZW1lbnQiLCJiYXNlNjRTdHJpbmdFbGVtZW50IiwiUmVzb2x2ZVN0cmF0ZWd5IiwiY2FuUmVzb2x2ZSIsImRlcmVmZXJlbmNlU3RyYXRlZ3kiLCJzdHJhdGVneSIsImNhbkRlcmVmZXJlbmNlIiwiX2Nsb25lIiwiZGVlcCIsIl9PYmplY3RNYXAiLCJfaXNQcmltaXRpdmUiLCJjb3BpZWRWYWx1ZSIsImNhY2hlZENvcHkiLCJoYXNoZWRLZXkiLCJidWNrZXQiLCJYUmVkdWNlQnkiLCJ2YWx1ZUZuIiwidmFsdWVBY2MiLCJrZXlGbiIsIl94cmVkdWNlQnkiLCJyZWR1Y2VCeSIsImVsdCIsInJlbW92ZVNwYWNlcyIsIm5vcm1hbGl6ZU9wZXJhdGlvbklkIiwid2l0aG91dFNwYWNlcyIsImNyZWF0ZU5vcm1hbGl6ZWRPcGVyYXRpb25JZCIsIm9wZXJhdGlvbklkTm9ybWFsaXplciIsIm5vcm1hbGl6ZWRPcGVyYXRpb25zIiwibm9ybWFsaXplZE9wZXJhdGlvbkdyb3VwcyIsIm5vcm1hbGl6ZWRPcGVyYXRpb25JZCIsIm9wZXJhdGlvbkVsZW1lbnRzIiwiaW5kZXhlZE5vcm1hbGl6ZWRPcGVyYXRpb25JZCIsImxpbmtFbGVtZW50IiwibGlua09wZXJhdGlvbklkIiwibm9ybWFsaXplZE9wZXJhdGlvbkVsZW1lbnQiLCJvcmlnaW5hbE9wZXJhdGlvbklkIiwicGF0aE9yIiwiWFVuaXFXaXRoIiwiX3h1bmlxV2l0aCIsInVuaXFXaXRoIiwicGFyYW1ldGVyRXF1YWxzIiwicGFyYW1ldGVyMSIsInBhcmFtZXRlcjIiLCJwYXRoSXRlbVBhcmFtZXRlcnMiLCJwYXJlbnRQYXRoSXRlbVBhcmFtZXRlcnMiLCJvcGVyYXRpb25QYXJhbWV0ZXJzIiwibWVyZ2VkUGFyYW1ldGVycyIsInRvcExldmVsU2VjdXJpdHkiLCJfdG9wTGV2ZWxTZWN1cml0eSIsImlzU2VydmVyc1VuZGVmaW5lZCIsImlzU2VydmVyc0FycmF5RWxlbWVudCIsImlzU2VydmVyc0VtcHR5IiwiZGVmYXVsdFNlcnZlciIsInBhcmVudE9wZW5hcGlFbGVtZW50IiwiX3BhcmVudE9wZW5hcGlFbGVtZW50Iiwib3BlbmFwaVNlcnZlcnNDb250ZW50Iiwib3BlbmFwaVNlcnZlcnMiLCJwYXJlbnRQYXRoSXRlbUVsZW1lbnQiLCJfcGFyZW50UGF0aEl0ZW1FbGVtZW4iLCJwYXRoSXRlbVNlcnZlcnNDb250ZW50IiwicGF0aEl0ZW1TZXJ2ZXJzIiwicGFyYW1ldGVyRWxlbWVudCIsIl9wYXJhbWV0ZXJFbGVtZW50JHNjaCIsIl9wYXJhbWV0ZXJFbGVtZW50JHNjaDIiLCJfaGVhZGVyRWxlbWVudCRzY2hlbWEiLCJfaGVhZGVyRWxlbWVudCRzY2hlbWEyIiwicG9qb0FkYXB0ZXIiLCJub3JtYWxpemVGbiIsIm9wZW5BcGlFbGVtZW50IiwiUmVzb2x2ZXIiLCJjYW5SZWFkIiwicmVkaXJlY3RzIiwiZ2V0SHR0cENsaWVudCIsIlJlc29sdmVFcnJvciIsIlJlc29sdmVyRXJyb3IiLCJBYm9ydENvbnRyb2xsZXIiLCJBYm9ydFNpZ25hbCIsInN3YWdnZXJIVFRQQ2xpZW50Iiwic3dhZ2dlckhUVFBDbGllbnRDb25maWciLCJjbGllbnQiLCJjb250cm9sbGVyIiwic2lnbmFsIiwidGltZW91dElEIiwicmVkaXJlY3QiLCJmb2xsb3ciLCJyZXNvdXJjZSIsImhhc1N1cHBvcnRlZEZpbGVFeHRlbnNpb24iLCJoYXNTdXBwb3J0ZWRNZWRpYVR5cGUiLCJwb2pvIiwiZGV0ZWN0aW9uUmVnRXhwIiwicmVmcmFjdG9yT3B0cyIsIm5vbmUiLCJFbGVtZW50SWRlbnRpdHlFcnJvciIsIklkZW50aXR5TWFuYWdlciIsInV1aWQiLCJpZGVudGl0eU1hcCIsImlkZW50aWZ5IiwiZ2VuZXJhdGVJZCIsImZvcmdldCIsIkpzb25TY2hlbWEkYW5jaG9yRXJyb3IiLCJFdmFsdWF0aW9uSnNvblNjaGVtYSRhbmNob3JFcnJvciIsIkludmFsaWRKc29uU2NoZW1hJGFuY2hvckVycm9yIiwiaXNBbmNob3IiLCJ1cmlUb0FuY2hvciIsIkpzb25TY2hlbWFVcmlFcnJvciIsIkV2YWx1YXRpb25Kc29uU2NoZW1hVXJpRXJyb3IiLCJyZXNvbHZlU2NoZW1hJHJlZkZpZWxkIiwiJHJlZkJhc2VVUkkiLCJyZWZyYWN0VG9TY2hlbWFFbGVtZW50IiwicmVmcmFjdGVkIiwibWF5YmVSZWZyYWN0VG9TY2hlbWFFbGVtZW50IiwidXJpU3RyaXBwZWRIYXNoIiwiaXNTY2hlbWFFbGVtZW50V2l0aCRpZCIsInNjaGVtYU9iamVjdEVsZW1lbnRzIiwiJGlkQmFzZVVSSSIsInJlc29sdmVTY2hlbWEkaWRGaWVsZCIsImZyYWdtZW50RXZhbHVhdGUiLCJNYXhpbXVtRGVyZWZlcmVuY2VEZXB0aEVycm9yIiwiTWF4aW11bVJlc29sdmVEZXB0aEVycm9yIiwiVW5tYXRjaGVkUmVzb2x2ZXJFcnJvciIsIm9wdHNCb3VuZFJlc29sdmVycyIsImNsb25lZFJlc29sdmVyIiwib3B0c0JvdW5kUGFyc2VycyIsImNsb25lZFBhcnNlciIsInBhcnNlRmlsZSIsIkFuY2VzdG9yTGluZWFnZSIsImluY2x1ZGVzQ3ljbGUiLCJzZWFyY2hFbGVtZW50IiwiZmluZEl0ZW0iLCJpZGVudGl0eU1hbmFnZXIiLCJPcGVuQXBpM18xRGVyZWZlcmVuY2VWaXNpdG9yIiwiaW5kaXJlY3Rpb25zIiwicmVmcmFjdENhY2hlIiwidG9CYXNlVVJJIiwibXV0YWJsZVJlZmVyZW5jZSIsImltbXV0YWJsZVJlZmVyZW5jZSIsInRvQW5jZXN0b3JMaW5lYWdlIiwiZGlyZWN0QW5jZXN0b3JzIiwicmVmZXJlbmNpbmdFbGVtZW50IiwiYW5jZXN0b3JzTGluZWFnZSIsImlzSW50ZXJuYWxSZWZlcmVuY2UiLCJpc0V4dGVybmFsUmVmZXJlbmNlIiwianNvblBvaW50ZXIiLCJyZWZlcmVuY2VkRWxlbWVudCIsInJlZmVyZW5jZWRFbGVtZW50VHlwZSIsImNhY2hlS2V5IiwiX3RoaXMkb3B0aW9ucyRkZXJlZmVyIiwiX3RoaXMkb3B0aW9ucyRkZXJlZmVyMiIsInJlZkVsZW1lbnQiLCJpc05vblJvb3REb2N1bWVudCIsInNob3VsZERldGVjdENpcmN1bGFyIiwiX3RoaXMkb3B0aW9ucyRkZXJlZmVyMyIsIl90aGlzJG9wdGlvbnMkZGVyZWZlcjQiLCJfbGlua0VsZW1lbnRDb3B5JG9wZXIiLCJsaW5rRWxlbWVudENvcHkiLCJfbGlua0VsZW1lbnRDb3B5JG9wZXIyIiwiRXhhbXBsZUVsZW1lbnQiLCJleGFtcGxlRWxlbWVudCIsInZhbHVlRWxlbWVudCIsImV4YW1wbGVFbGVtZW50Q29weSIsIiRyZWZCYXNlVVJJU3RyaXBwZWRIYXNoIiwiaXNVbmtub3duVVJJIiwiaXNVUkwiLCJyZWZlcmVuY2VBc1NjaGVtYSIsIl90aGlzJG9wdGlvbnMkZGVyZWZlcjUiLCJfdGhpcyRvcHRpb25zJGRlcmVmZXI2IiwiYm9vbGVhbkpzb25TY2hlbWFFbGVtZW50IiwiT3BlbkFwaTNfMURlcmVmZXJlbmNlU3RyYXRlZ3kiLCJfZmlsZSRwYXJzZVJlc3VsdCIsIl9vcHRpb25zJGRlcmVmZXJlbmNlJCIsImltbXV0YWJsZVJlZlNldCIsIm11dGFibGVSZWZzU2V0IiwiZGVyZWZlcmVuY2VkRWxlbWVudCIsImVsZW1lbnRQYXRoIiwiZWxlbWVudFBhdGhTYW5pdGl6ZWQiLCJ0cmltUGFyc2VSZXN1bHQiLCJTY2hlbWFSZWZFcnJvciIsIk9wZW5BcGkzXzFTd2FnZ2VyQ2xpZW50RGVyZWZlcmVuY2VWaXNpdG9yIiwiX3RoaXMkYmFzZVBhdGgiLCJfdGhpcyRiYXNlUGF0aDIiLCJyb290Q2F1c2UiLCJ3cmFwcGVkRXJyb3IiLCJkZXJlZmVyZW5jZU9wdHMiLCJfdGhpcyRiYXNlUGF0aDMiLCJfdGhpcyRiYXNlUGF0aDQiLCJfdGhpcyRvcHRpb25zJGRlcmVmZXI3IiwiX3RoaXMkb3B0aW9ucyRkZXJlZmVyOCIsIl90aGlzJG9wdGlvbnMkZGVyZWZlcjkiLCJfdGhpcyRvcHRpb25zJGRlcmVmZXIxMCIsIl90aGlzJGJhc2VQYXRoNSIsIm1lcmdlVmlzaXRvciIsIl90aGlzJGJhc2VQYXRoNiIsIl90aGlzJG9wdGlvbnMkZGVyZWZlcjExIiwiX3RoaXMkb3B0aW9ucyRkZXJlZmVyMTIiLCJfdGhpcyRiYXNlUGF0aDciLCJfdGhpcyRvcHRpb25zJGRlcmVmZXIxMyIsIl90aGlzJG9wdGlvbnMkZGVyZWZlcjE0IiwibWFjcm9PcGVyYXRpb24iLCJwb2pvT3BlcmF0aW9uIiwicG9qb1BhcmFtZXRlciIsIm1hY3JvVmFsdWUiLCJtYWNyb0Vycm9yIiwiTW9kZWxQcm9wZXJ0eU1hY3JvVmlzaXRvciIsImFsbE9mTWVyZ2VkIiwiT3BlbkFwaTNfMVN3YWdnZXJDbGllbnREZXJlZmVyZW5jZVN0cmF0ZWd5IiwiZGVyZWZlcmVuY2VWaXNpdG9yIiwicGFyYW1ldGVyTWFjcm9WaXNpdG9yIiwibW9kZWxQcm9wZXJ0eU1hY3JvVmlzaXRvciIsImFsbE9mVmlzaXRvciIsInJlc29sdmVPcGVuQVBJMzFTdHJhdGVneSIsIm9wZW5BcGlQYXJzZVJlc3VsdEVsZW1lbnQiLCJqc29uUG9pbnRlclVSSSIsImZyYWdtZW50RWxlbWVudCIsIm9wZW5BcGlFbGVtZW50UmVmZXJlbmNlIiwiZGVyZWZlcmVuY2VkIiwidHJhbnNjbHVkZWQiLCJvcGVuQXBpMzFBcGlET01TdHJhdGVneSIsIm1ha2VSZXNvbHZlIiwiZGVmYXVsdE9wdGlvbnMiLCJyZXRyaWV2ZWRTcGVjIiwic3RyYXRlZ3lPcHRpb25zIiwic3RyZyIsImdlbmVyaWMiLCJwcm90IiwiYm9keUJ1aWxkZXIiLCJoZWFkZXJCdWlsZGVyIiwicXVlcnlCdWlsZGVyIiwicGF0aEJ1aWxkZXIiLCJmb3JtRGF0YUJ1aWxkZXIiLCJlZmZlY3RpdmVNZWRpYVR5cGUiLCJzdHlsZWRWYWx1ZSIsInNlcmlhbGl6ZWRWYWx1ZSIsIlBBUkFNRVRFUl9IRUFERVJfQkxBQ0tMSVNUIiwiQ29va2llIiwiZ2xvYmFsT2JqZWN0IiwiYXR0YWNoQ29udGVudFR5cGVGb3JFbXB0eVBheWxvYWQiLCJhcHBseVNlY3VyaXRpZXMiLCJfc3BlYyRjb21wb25lbnRzIiwic2VjdXJpdHlEZWYiLCJzZWN1cml0eU9iaiIsImNvb2tpZXMiLCJlbmNvZGVkIiwidG9rZW5WYWx1ZSIsInRva2VuVHlwZSIsInRva2VuX3R5cGUiLCJyZXF1ZXN0Qm9keURlZiIsInJlcXVlc3RCb2R5TWVkaWFUeXBlcyIsImlzRXhwbGljaXRDb250ZW50VHlwZVZhbGlkIiwiZmlyc3RNZWRpYVR5cGUiLCJhY2NlcHQiLCJfcmVxdWVzdEJvZHlEZWYkY29udGUiLCJfcmVxdWVzdEJvZHlEZWYkY29udGUyIiwidG9rZW5OYW1lIiwib2F1dGhUb2tlbiIsImF1dGhvcml6YXRpb24iLCJpc0JvZHlQYXJhbVByZXNlbnQiLCJpc0Zvcm1EYXRhUGFyYW1QcmVzZW50IiwiaWRGcm9tUGF0aE1ldGhvZExlZ2FjeSIsImFycmF5T3JFbXB0eSIsInBhcnNlVVJJUmVmZXJlbmNlIiwidXJpUmVmZXJlbmNlIiwicGFyc2VkVVJMIiwic2VhcmNoUGFyYW1zIiwiT3BlcmF0aW9uTm90Rm91bmRFcnJvciIsImZpbmRQYXJhbWV0ZXJzV2l0aE5hbWUiLCJkZWR1cGxpY2F0ZVBhcmFtZXRlcnMiLCJwYXJhbXNNYXAiLCJkZWR1cGVkUGFyYW1ldGVycyIsInVzZXJIdHRwIiwicGFyYW1ldGVyQnVpbGRlcnMiLCJzcGVjSXNPQVMzIiwib3BlcmF0aW9uUmF3IiwiZ2V0T3BlcmF0aW9uUmF3IiwiZmluZE9wZXJhdGlvbiIsImVhY2hPcGVyYXRpb24iLCJvcGVyYXRpb25PYmoiLCJjYlZhbHVlIiwicmF3T3BlcmF0aW9uSWQiLCJvYXMzQmFzZVVybCIsIl9zcGVjJHBhdGhzIiwiX3NwZWMkcGF0aHMyIiwic2VsZWN0ZWRTZXJ2ZXJPYmoiLCJzZWxlY3RlZFNlcnZlclVybCIsIm9wZXJhdGlvbkxldmVsU2VydmVycyIsInBhdGhJdGVtTGV2ZWxTZXJ2ZXJzIiwicm9vdExldmVsU2VydmVycyIsImlzTm9uRW1wdHlTZXJ2ZXJMaXN0Iiwic3J2IiwidmFyTmFtZXMiLCJnZXRWYXJpYWJsZVRlbXBsYXRlTmFtZXMiLCJ2YXJpYWJsZURlZmluaXRpb24iLCJ2YXJpYWJsZVZhbHVlIiwiYnVpbGRPYXMzVXJsV2l0aENvbnRleHQiLCJvdXJVcmwiLCJwYXJzZWRDb250ZXh0VXJsIiwiY29tcHV0ZWRTY2hlbWUiLCJzdHJpcE5vbkFscGhhIiwiY29tcHV0ZWRIb3N0IiwiY29tcHV0ZWRQYXRoIiwic3dhZ2dlcjJCYXNlVXJsIiwiZmlyc3RTY2hlbWVJblNwZWMiLCJjb21iaW5lZFBhcmFtZXRlcnMiLCJ2ZXJzaW9uU3BlY2lmaWNPcHRpb25zIiwiY29va2llU3RyaW5nIiwiY29va2llVmFsdWUiLCJtYWtlUmVzb2x2ZVN1YnRyZWUiLCJyZXR1cm5FbnRpcmVUcmVlIiwicmVzb2x2ZU9wdGlvbnMiLCJwYXRoU2VnbWVudCIsImh0dHBGbiIsIkh0dHAiLCJwcmVGZXRjaCIsInBvc3RGZXRjaCIsIm9wZW5BcGkzMUFwaURPTVJlc29sdmVTdHJhdGVneSIsIm9wZW5BcGkzMFJlc29sdmVTdHJhdGVneSIsIm9wZW5BcGkyUmVzb2x2ZVN0cmF0ZWd5IiwiZ2VuZXJpY1Jlc29sdmVTdHJhdGVneSIsImZyZXNoQ29uZmlncyIsIkNvbnRleHRLZXkiLCJnVCIsImNvbnRleHRNYXAiLCJyZWFsQ29udGV4dCIsIlJlYWN0UmVkdXhDb250ZXh0Iiwibm90SW5pdGlhbGl6ZWQiLCJSRUFDVF9QT1JUQUxfVFlQRSIsIlJFQUNUX0ZSQUdNRU5UX1RZUEUiLCJSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFIiwiUkVBQ1RfUFJPRklMRVJfVFlQRSIsIlJFQUNUX1BST1ZJREVSX1RZUEUiLCJSRUFDVF9DT05URVhUX1RZUEUiLCJSRUFDVF9TRVJWRVJfQ09OVEVYVF9UWVBFIiwiUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSIsIlJFQUNUX1NVU1BFTlNFX1RZUEUiLCJSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUiLCJSRUFDVF9NRU1PX1RZUEUiLCJSRUFDVF9MQVpZX1RZUEUiLCJGb3J3YXJkUmVmIiwiTWVtbyIsInR5cGVPZiIsIiQkdHlwZW9mVHlwZSIsInB1cmVGaW5hbFByb3BzU2VsZWN0b3JGYWN0b3J5IiwibWFwRGlzcGF0Y2hUb1Byb3BzIiwibWVyZ2VQcm9wcyIsImFyZVN0YXRlc0VxdWFsIiwiYXJlT3duUHJvcHNFcXVhbCIsImFyZVN0YXRlUHJvcHNFcXVhbCIsInN0YXRlUHJvcHMiLCJkaXNwYXRjaFByb3BzIiwibWVyZ2VkUHJvcHMiLCJoYXNSdW5BdExlYXN0T25jZSIsImhhbmRsZVN1YnNlcXVlbnRDYWxscyIsIm5leHRPd25Qcm9wcyIsInByb3BzQ2hhbmdlZCIsInN0YXRlQ2hhbmdlZCIsImhhbmRsZU5ld1Byb3BzQW5kTmV3U3RhdGUiLCJkZXBlbmRzT25Pd25Qcm9wcyIsImhhbmRsZU5ld1Byb3BzIiwiaGFuZGxlTmV3U3RhdGUiLCJuZXh0U3RhdGVQcm9wcyIsInN0YXRlUHJvcHNDaGFuZ2VkIiwicHVyZUZpbmFsUHJvcHNTZWxlY3RvciIsImhhbmRsZUZpcnN0Q2FsbCIsImZpcnN0U3RhdGUiLCJmaXJzdE93blByb3BzIiwid3JhcE1hcFRvUHJvcHNDb25zdGFudCIsImdldENvbnN0YW50IiwiaW5pdENvbnN0YW50U2VsZWN0b3IiLCJjb25zdGFudFNlbGVjdG9yIiwiZ2V0RGVwZW5kc09uT3duUHJvcHMiLCJtYXBUb1Byb3BzIiwid3JhcE1hcFRvUHJvcHNGdW5jIiwiaW5pdFByb3h5U2VsZWN0b3IiLCJwcm94eSIsIm1hcFRvUHJvcHNQcm94eSIsInN0YXRlT3JEaXNwYXRjaCIsImRldGVjdEZhY3RvcnlBbmRWZXJpZnkiLCJjcmVhdGVJbnZhbGlkQXJnRmFjdG9yeSIsIndyYXBwZWRDb21wb25lbnROYW1lIiwiZGVmYXVsdE1lcmdlUHJvcHMiLCJkZWZhdWx0Tm9vcEJhdGNoIiwibnVsbExpc3RlbmVycyIsImNyZWF0ZVN1YnNjcmlwdGlvbiIsInBhcmVudFN1YiIsInN1YnNjcmlwdGlvbnNBbW91bnQiLCJzZWxmU3Vic2NyaWJlZCIsImhhbmRsZUNoYW5nZVdyYXBwZXIiLCJzdWJzY3JpcHRpb24iLCJvblN0YXRlQ2hhbmdlIiwidHJ5U3Vic2NyaWJlIiwiYWRkTmVzdGVkU3ViIiwiY3JlYXRlTGlzdGVuZXJDb2xsZWN0aW9uIiwidHJ5VW5zdWJzY3JpYmUiLCJjbGVhbnVwTGlzdGVuZXIiLCJub3RpZnlOZXN0ZWRTdWJzIiwidHJ5U3Vic2NyaWJlU2VsZiIsInRyeVVuc3Vic2NyaWJlU2VsZiIsImdldExpc3RlbmVycyIsImNhblVzZURPTSIsImlzUmVhY3ROYXRpdmUiLCJ1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0Iiwic2hhbGxvd0VxdWFsIiwib2JqQSIsIm9iakIiLCJrZXlzQiIsIlJFQUNUX1NUQVRJQ1MiLCJnZXREZWZhdWx0UHJvcHMiLCJwcm9wVHlwZXMiLCJLTk9XTl9TVEFUSUNTIiwiY2FsbGVyIiwiTUVNT19TVEFUSUNTIiwiVFlQRV9TVEFUSUNTIiwiZ2V0U3RhdGljcyIsImlzTWVtbyIsIm9iamVjdFByb3RvdHlwZSIsImhvaXN0Tm9uUmVhY3RTdGF0aWNzIiwidGFyZ2V0Q29tcG9uZW50Iiwic291cmNlQ29tcG9uZW50IiwiaW5oZXJpdGVkQ29tcG9uZW50IiwidGFyZ2V0U3RhdGljcyIsInNvdXJjZVN0YXRpY3MiLCJOT19TVUJTQ1JJUFRJT05fQVJSQVkiLCJjYXB0dXJlV3JhcHBlclByb3BzIiwibGFzdFdyYXBwZXJQcm9wcyIsImxhc3RDaGlsZFByb3BzIiwicmVuZGVySXNTY2hlZHVsZWQiLCJ3cmFwcGVyUHJvcHMiLCJjaGlsZFByb3BzRnJvbVN0b3JlVXBkYXRlIiwic3RyaWN0RXF1YWwiLCJjb25uZWN0X2RlZmF1bHQiLCJjb25uZWN0IiwicHVyZSIsImFyZU1lcmdlZFByb3BzRXF1YWwiLCJDb250ZXh0IiwiaW5pdE1hcFN0YXRlVG9Qcm9wcyIsIm1hcFN0YXRlVG9Qcm9wc0ZhY3RvcnkiLCJpbml0TWFwRGlzcGF0Y2hUb1Byb3BzIiwibWFwRGlzcGF0Y2hUb1Byb3BzRmFjdG9yeSIsImluaXRNZXJnZVByb3BzIiwibWVyZ2VQcm9wc0ZhY3RvcnkiLCJ3cmFwTWVyZ2VQcm9wc0Z1bmMiLCJpbml0TWVyZ2VQcm9wc1Byb3h5IiwiaGFzUnVuT25jZSIsIm1lcmdlUHJvcHNQcm94eSIsIm5leHRNZXJnZWRQcm9wcyIsInNob3VsZEhhbmRsZVN0YXRlQ2hhbmdlcyIsIldyYXBwZWRDb21wb25lbnQiLCJzZWxlY3RvckZhY3RvcnlPcHRpb25zIiwiQ29ubmVjdEZ1bmN0aW9uIiwicHJvcHNDb250ZXh0IiwicmVhY3RSZWR1eEZvcndhcmRlZFJlZiIsInJlYWN0UmVkdXhGb3J3YXJkZWRSZWYyIiwid3JhcHBlclByb3BzMiIsIkNvbnRleHRUb1VzZSIsImNvbnRleHRWYWx1ZSIsImRpZFN0b3JlQ29tZUZyb21Qcm9wcyIsImRpZFN0b3JlQ29tZUZyb21Db250ZXh0IiwiZ2V0U2VydmVyU3RhdGUiLCJjaGlsZFByb3BzU2VsZWN0b3IiLCJmaW5hbFByb3BzU2VsZWN0b3JGYWN0b3J5Iiwic3Vic2NyaXB0aW9uMiIsIm5vdGlmeU5lc3RlZFN1YnMyIiwib3ZlcnJpZGRlbkNvbnRleHRWYWx1ZSIsImxhdGVzdFN1YnNjcmlwdGlvbkNhbGxiYWNrRXJyb3IiLCJhY3R1YWxDaGlsZFByb3BzU2VsZWN0b3IiLCJzdWJzY3JpYmVGb3JSZWFjdCIsInJlYWN0TGlzdGVuZXIiLCJzdWJzY3JpYmVVcGRhdGVzIiwiYWRkaXRpb25hbFN1YnNjcmliZUxpc3RlbmVyIiwiZGlkVW5zdWJzY3JpYmUiLCJsYXN0VGhyb3duRXJyb3IiLCJjaGVja0ZvclVwZGF0ZXMiLCJsYXRlc3RTdG9yZVN0YXRlIiwibmV3Q2hpbGRQcm9wcyIsImFjdHVhbENoaWxkUHJvcHMiLCJ1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0V2l0aEFyZ3MiLCJlZmZlY3RGdW5jIiwiZWZmZWN0QXJncyIsInJlbmRlcmVkV3JhcHBlZENvbXBvbmVudCIsIkNvbm5lY3QiLCJmb3J3YXJkZWQiLCJmb3J3YXJkQ29ubmVjdFJlZiIsIlByb3ZpZGVyX2RlZmF1bHQiLCJzZXJ2ZXJTdGF0ZSIsInN0YWJpbGl0eUNoZWNrIiwiaWRlbnRpdHlGdW5jdGlvbkNoZWNrIiwicHJldmlvdXNTdGF0ZSIsImluaXRpYWxpemVDb25uZWN0Iiwid2l0aFN5c3RlbSIsIldpdGhTeXN0ZW0iLCJnZXREaXNwbGF5TmFtZSIsIndpdGhSb290IiwicmVkdXhTdG9yZSIsIldpdGhSb290Iiwid2l0aENvbm5lY3QiLCJjdXN0b21NYXBTdGF0ZVRvUHJvcHMiLCJoYW5kbGVQcm9wcyIsIm9sZFByb3BzIiwid2l0aE1hcHBlZENvbnRhaW5lciIsIm1lbUdldENvbXBvbmVudCIsIldpdGhNYXBwZWRDb250YWluZXIiLCJjbGVhblByb3BzIiwiZG9tTm9kZSIsIkFwcCIsIlJlYWN0RE9NIiwidmlld1BsdWdpbiIsIm1lbW9pemVGb3JHZXRDb21wb25lbnQiLCJtZW1NYWtlTWFwcGVkQ29udGFpbmVyIiwibWVtb2l6ZUZvcldpdGhNYXBwZWRDb250YWluZXIiLCJtYWtlTWFwcGVkQ29udGFpbmVyIiwiVmlld0xlZ2FjeVBsdWdpbiIsInJlYWN0TWFqb3JWZXJzaW9uIiwiZG93bmxvYWRVcmxQbHVnaW4iLCJjaGVja1Bvc3NpYmxlRmFpbFJlYXNvbnMiLCJzcGVjVXJsIiwiZW51bXMiLCJsb2FkaW5nU3RhdHVzIiwic3BlY191cGRhdGVfbG9hZGluZ19zdGF0dXMiLCJjbGFzc05hbWVDb21iaW5hdGlvbnMiLCJjcmVhdGVTdHlsZU9iamVjdCIsImVsZW1lbnRTdHlsZSIsInN0eWxlc2hlZXQiLCJnZXRDbGFzc05hbWVDb21iaW5hdGlvbnMiLCJwb3dlclNldFBlcm11dGF0aW9ucyIsInN0eWxlT2JqZWN0IiwiY3JlYXRlQ2xhc3NOYW1lU3RyaW5nIiwiX3JlZiRzdHlsZSIsInVzZUlubGluZVN0eWxlcyIsIlRhZ05hbWUiLCJjaGlsZHJlbkNyZWF0b3IiLCJjcmVhdGVDaGlsZHJlbiIsImNoaWxkcmVuQ291bnQiLCJhbGxTdHlsZXNoZWV0U2VsZWN0b3JzIiwic3RhcnRpbmdDbGFzc05hbWUiLCJhc3RHZW5lcmF0b3IiLCJuZXdMaW5lUmVnZXgiLCJBbGxMaW5lTnVtYmVycyIsIl9yZWYyIiwiY29kZVN0cmluZyIsImNvZGVTdHlsZSIsIl9yZWYyJGNvbnRhaW5lclN0eWxlIiwiY29udGFpbmVyU3R5bGUiLCJfcmVmMiRudW1iZXJTdHlsZSIsIm51bWJlclN0eWxlIiwic3RhcnRpbmdMaW5lTnVtYmVyIiwiZ2V0QWxsTGluZU51bWJlcnMiLCJsaW5lcyIsImdldElubGluZUxpbmVOdW1iZXIiLCJsaW5lTnVtYmVyIiwiaW5saW5lTGluZU51bWJlclN0eWxlIiwiYXNzZW1ibGVMaW5lTnVtYmVyU3R5bGVzIiwibGluZU51bWJlclN0eWxlIiwibGFyZ2VzdExpbmVOdW1iZXIiLCJkZWZhdWx0TGluZU51bWJlclN0eWxlIiwibWluV2lkdGgiLCJ0ZXh0QWxpZ24iLCJjdXN0b21MaW5lTnVtYmVyU3R5bGUiLCJjcmVhdGVMaW5lRWxlbWVudCIsIl9yZWYzIiwic2hvd0lubGluZUxpbmVOdW1iZXJzIiwiX3JlZjMkbGluZVByb3BzIiwibGluZVByb3BzIiwiX3JlZjMkY2xhc3NOYW1lIiwic2hvd0xpbmVOdW1iZXJzIiwid3JhcExvbmdMaW5lcyIsImZsYXR0ZW5Db2RlVHJlZSIsIm5ld1RyZWUiLCJwcm9jZXNzTGluZXMiLCJjb2RlVHJlZSIsIndyYXBMaW5lcyIsIl9yZWY0IiwibGFzdExpbmVCcmVha0luZGV4IiwiY3JlYXRlTGluZSIsImNyZWF0ZVdyYXBwZWRMaW5lIiwiY3JlYXRlVW53cmFwcGVkTGluZSIsIl9sb29wIiwibmV3TGluZXMiLCJnZXROZXdMaW5lcyIsInNwbGl0VmFsdWUiLCJzdHJpbmdDaGlsZCIsImxhc3RMaW5lSW5QcmV2aW91c1NwYW4iLCJuZXdFbGVtIiwiX2xpbmUyIiwiX2xpbmUzIiwiZGVmYXVsdFJlbmRlcmVyIiwiX3JlZjUiLCJyb3dzIiwiaXNIaWdobGlnaHRKcyIsImRlZmF1bHRBc3RHZW5lcmF0b3IiLCJfcmVmNyIsIl9yZWY3JHN0eWxlIiwiX3JlZjckY3VzdG9tU3R5bGUiLCJjdXN0b21TdHlsZSIsIl9yZWY3JGNvZGVUYWdQcm9wcyIsImNvZGVUYWdQcm9wcyIsIl9yZWY3JHVzZUlubGluZVN0eWxlcyIsIl9yZWY3JHNob3dMaW5lTnVtYmVycyIsIl9yZWY3JHNob3dJbmxpbmVMaW5lTiIsIl9yZWY3JHN0YXJ0aW5nTGluZU51bSIsImxpbmVOdW1iZXJDb250YWluZXJTdHlsZSIsIl9yZWY3JGxpbmVOdW1iZXJTdHlsZSIsIl9yZWY3JHdyYXBMb25nTGluZXMiLCJfcmVmNyRsaW5lUHJvcHMiLCJyZW5kZXJlciIsIl9yZWY3JFByZVRhZyIsIlByZVRhZyIsIl9yZWY3JENvZGVUYWciLCJDb2RlVGFnIiwiX3JlZjckY29kZSIsImFsbExpbmVOdW1iZXJzIiwiZGVmYXVsdFByZVN0eWxlIiwiZ2VuZXJhdG9yQ2xhc3NOYW1lIiwicHJlUHJvcHMiLCJkZWZhdWx0Q29kZVZhbHVlIiwiZ2V0Q29kZVRyZWUiLCJfcmVmNiIsImhhc0xhbmd1YWdlIiwiY2hlY2tGb3JMaXN0ZWRMYW5ndWFnZSIsInN0eWxlcyIsImFnYXRlIiwiYXJ0YSIsIm1vbm9rYWkiLCJub3JkIiwib2JzaWRpYW4iLCJpZGVhIiwic3ludGF4SGlnaGxpZ2h0aW5nIiwidGhlbWUiLCJzeW50YXhIaWdobGlnaHQiLCJSZWFjdFN5bnRheEhpZ2hsaWdodGVyIiwiZmlsZU5hbWUiLCJkb3dubG9hZGFibGUiLCJjYW5Db3B5IiwiaGFuZGxlRG93bmxvYWQiLCJzYXZlQXMiLCJTeW50YXhIaWdobGlnaHRlcldyYXBwZXIiLCJPcmlnaW5hbCIsImNhblN5bnRheEhpZ2hsaWdodCIsImFjdGl2YXRlZCIsIlN5bnRheEhpZ2hsaWdodGluZ1BsdWdpbjEiLCJTeW50YXhIaWdobGlnaHRpbmdQbHVnaW4yIiwiU3ludGF4SGlnaGxpZ2h0aW5nUGx1Z2luIiwiR0lUX0RJUlRZIiwiR0lUX0NPTU1JVCIsIlBBQ0tBR0VfVkVSU0lPTiIsIkJVSUxEX1RJTUUiLCJidWlsZEluZm8iLCJzd2FnZ2VyVUkiLCJnaXRSZXZpc2lvbiIsImdpdERpcnR5IiwiYnVpbGRUaW1lc3RhbXAiLCJWZXJzaW9uc1BsdWdpbiIsIndpdGhFcnJvckJvdW5kYXJ5IiwiRXJyb3JCb3VuZGFyeSIsInRhcmdldE5hbWUiLCJXaXRoRXJyb3JCb3VuZGFyeSIsImlzQ2xhc3NDb21wb25lbnQiLCJGYWxsYmFjayIsImhhc0Vycm9yIiwiZXJyb3JJbmZvIiwiRmFsbGJhY2tDb21wb25lbnQiLCJzYWZlUmVuZGVyUGx1Z2luIiwiY29tcG9uZW50TGlzdCIsImZ1bGxPdmVycmlkZSIsIm1lcmdlZENvbXBvbmVudExpc3QiLCJ3cmFwRmFjdG9yeSIsImdldExheW91dCIsImxheW91dE5hbWUiLCJMYXlvdXQiLCJBdXRob3JpemF0aW9uUG9wdXAiLCJBdXRocyIsIkF1dGhvcml6ZUJ0biIsInNob3dQb3B1cCIsIkF1dGhvcml6ZUJ0bkNvbnRhaW5lciIsImF1dGhvcml6YWJsZURlZmluaXRpb25zIiwiQXV0aG9yaXplT3BlcmF0aW9uQnRuIiwib25BdXRoQ2hhbmdlIiwic3VibWl0QXV0aCIsImxvZ291dENsaWNrIiwiYXV0aHMiLCJBdXRoSXRlbSIsIk9hdXRoMiIsImF1dGhvcml6ZWRBdXRoIiwibm9uT2F1dGhEZWZpbml0aW9ucyIsIm9hdXRoRGVmaW5pdGlvbnMiLCJvblN1Ym1pdCIsIkFwaUtleUF1dGgiLCJCYXNpY0F1dGgiLCJhdXRoRWwiLCJBdXRoRXJyb3IiLCJSb3ciLCJDb2wiLCJhdXRvQ29tcGxldGUiLCJzaG93VmFsdWUiLCJFeGFtcGxlc1NlbGVjdCIsIm9uU2VsZWN0IiwiY3VycmVudEV4YW1wbGVLZXkiLCJzaG93TGFiZWxzIiwiX29uU2VsZWN0IiwiaXNTeW50aGV0aWNDaGFuZ2UiLCJfb25Eb21TZWxlY3QiLCJzZWxlY3RlZE9wdGlvbnMiLCJnZXRDdXJyZW50RXhhbXBsZSIsImN1cnJlbnRFeGFtcGxlUGVyUHJvcHMiLCJmaXJzdEV4YW1wbGVzS2V5IiwiZmlyc3RFeGFtcGxlIiwiZmlyc3RFeGFtcGxlS2V5IiwiaXNWYWx1ZU1vZGlmaWVkIiwiaXNNb2RpZmllZFZhbHVlQXZhaWxhYmxlIiwiZXhhbXBsZU5hbWUiLCJzdHJpbmdpZnlVbmxlc3NMaXN0IiwiRXhhbXBsZXNTZWxlY3RWYWx1ZVJldGFpbmVyIiwidXNlckhhc0VkaXRlZEJvZHkiLCJjdXJyZW50TmFtZXNwYWNlIiwic2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWciLCJ1cGRhdGVWYWx1ZSIsInZhbHVlRnJvbUV4YW1wbGUiLCJfZ2V0Q3VycmVudEV4YW1wbGVWYWx1ZSIsImxhc3RVc2VyRWRpdGVkVmFsdWUiLCJjdXJyZW50VXNlcklucHV0VmFsdWUiLCJsYXN0RG93bnN0cmVhbVZhbHVlIiwiaXNNb2RpZmllZFZhbHVlU2VsZWN0ZWQiLCJfZ2V0U3RhdGVGb3JDdXJyZW50TmFtZXNwYWNlIiwiX3NldFN0YXRlRm9yQ3VycmVudE5hbWVzcGFjZSIsIl9zZXRTdGF0ZUZvck5hbWVzcGFjZSIsIm5ld1N0YXRlRm9yTmFtZXNwYWNlIiwiX2lzQ3VycmVudFVzZXJJbnB1dFNhbWVBc0V4YW1wbGVWYWx1ZSIsIl9nZXRWYWx1ZUZvckV4YW1wbGUiLCJleGFtcGxlS2V5IiwiY3VycmVudEtleSIsIl9vbkV4YW1wbGVzU2VsZWN0IiwidmFsdWVGcm9tQ3VycmVudEV4YW1wbGUiLCJleGFtcGxlc01hdGNoaW5nTmV3VmFsdWUiLCJhdXRoQ29uZmlncyIsImN1cnJlbnRTZXJ2ZXIiLCJvYXV0aDJSZWRpcmVjdFVybCIsInNjb3Blc0FycmF5Iiwic2NvcGVTZXBhcmF0b3IiLCJyZWFsbSIsInVzZVBrY2VXaXRoQXV0aG9yaXphdGlvbkNvZGVHcmFudCIsImdlbmVyYXRlQ29kZVZlcmlmaWVyIiwiY29kZUNoYWxsZW5nZSIsImNyZWF0ZUNvZGVDaGFsbGVuZ2UiLCJzaGFKcyIsInNhbml0aXplZEF1dGhvcml6YXRpb25VcmwiLCJ1c2VCYXNpY0F1dGhlbnRpY2F0aW9uV2l0aEFjY2Vzc0NvZGVHcmFudCIsImVyckNiIiwiYXBwTmFtZSIsIm9hdXRoMkF1dGhvcml6ZSIsIm9uU2NvcGVDaGFuZ2UiLCJuZXdTY29wZXMiLCJvbklucHV0Q2hhbmdlIiwic2VsZWN0U2NvcGVzIiwiSW5pdGlhbGl6ZWRJbnB1dCIsIm9pZGNVcmwiLCJBVVRIX0ZMT1dfSU1QTElDSVQiLCJBVVRIX0ZMT1dfUEFTU1dPUkQiLCJBVVRIX0ZMT1dfQUNDRVNTX0NPREUiLCJBVVRIX0ZMT1dfQVBQTElDQVRJT04iLCJpc1BrY2VDb2RlR3JhbnQiLCJmbG93VG9EaXNwbGF5IiwidGFibGV0IiwiZGVza3RvcCIsIkNsZWFyIiwiRHVyYXRpb24iLCJMaXZlUmVzcG9uc2UiLCJkaXNwbGF5UmVxdWVzdER1cmF0aW9uIiwic2hvd011dGF0ZWRSZXF1ZXN0IiwicmVxdWVzdFNuaXBwZXRzRW5hYmxlZCIsImN1cmxSZXF1ZXN0Iiwibm90RG9jdW1lbnRlZCIsImhlYWRlcnNLZXlzIiwiUmVzcG9uc2VCb2R5IiwicmV0dXJuT2JqZWN0Iiwiam9pbmVkSGVhZGVycyIsImhhc0hlYWRlcnMiLCJDdXJsIiwiT25saW5lVmFsaWRhdG9yQmFkZ2UiLCJ2YWxpZGF0b3JVcmwiLCJnZXREZWZpbml0aW9uVXJsIiwic2FuaXRpemVkVmFsaWRhdG9yVXJsIiwiVmFsaWRhdG9ySW1hZ2UiLCJhbHQiLCJJbWFnZSIsIm9ubG9hZCIsIk9wZXJhdGlvbnMiLCJyZW5kZXJPcGVyYXRpb25UYWciLCJPcGVyYXRpb25Db250YWluZXIiLCJpc0Fic29sdXRlVXJsIiwiYnVpbGRCYXNlVXJsIiwiYWRkUHJvdG9jb2wiLCJzYWZlQnVpbGRVcmwiLCJidWlsZFVybCIsIkRlZXBMaW5rIiwidGFnRXh0ZXJuYWxEb2NzVXJsIiwidGFnRGVzY3JpcHRpb24iLCJ0YWdFeHRlcm5hbERvY3NEZXNjcmlwdGlvbiIsInJhd1RhZ0V4dGVybmFsRG9jc1VybCIsInNob3dUYWciLCJlbmFibGVkIiwidG9nZ2xlU2hvd24iLCJvblRyeW91dENsaWNrIiwib25SZXNldENsaWNrIiwib25DYW5jZWxDbGljayIsIm9uRXhlY3V0ZSIsIm9hczNBY3Rpb25zIiwib3BlcmF0aW9uUHJvcHMiLCJhbGxvd1RyeUl0T3V0IiwidHJ5SXRPdXRFbmFibGVkIiwiZXhlY3V0ZUluUHJvZ3Jlc3MiLCJnZXRMaXN0IiwiUGFyYW1ldGVycyIsIkV4ZWN1dGUiLCJPcGVyYXRpb25FeHQiLCJPcGVyYXRpb25TdW1tYXJ5Iiwib25DaGFuZ2VLZXkiLCJvcGVyYXRpb25TZXJ2ZXJzIiwicGF0aFNlcnZlcnMiLCJnZXRTZWxlY3RlZFNlcnZlciIsInNldFNlbGVjdGVkU2VydmVyIiwic2V0U2VydmVyVmFyaWFibGVWYWx1ZSIsImdldFNlcnZlclZhcmlhYmxlIiwic2VydmVyVmFyaWFibGVWYWx1ZSIsImdldEVmZmVjdGl2ZVNlcnZlclZhbHVlIiwidHJ5SXRPdXRSZXNwb25zZSIsImRpc3BsYXlPcGVyYXRpb25JZCIsInN1cHBvcnRlZFN1Ym1pdE1ldGhvZHMiLCJpc0RlZXBMaW5raW5nRW5hYmxlZCIsImp1bXBUb0tleSIsInJlc29sdmVkU3VidHJlZSIsImdldFJlc29sdmVkU3VidHJlZSIsImRlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlIiwic2VsZWN0RGVmYXVsdFJlcXVlc3RCb2R5VmFsdWUiLCJzZXRSZXF1ZXN0Qm9keVZhbHVlIiwidW5yZXNvbHZlZE9wIiwicmVzb2x2ZWRTdW1tYXJ5IiwiT3BlcmF0aW9uU3VtbWFyeU1ldGhvZCIsIk9wZXJhdGlvblN1bW1hcnlQYXRoIiwiQ29weVRvQ2xpcGJvYXJkQnRuIiwiaGFzU2VjdXJpdHkiLCJzZWN1cml0eUlzT3B0aW9uYWwiLCJhbGxvd0Fub255bW91cyIsInRleHRUb0NvcHkiLCJhcHBsaWNhYmxlRGVmaW5pdGlvbnMiLCJwYXRoUGFydHMiLCJPcGVyYXRpb25FeHRSb3ciLCJ4S2V5IiwieFZhbCIsInhOb3JtYWxpemVkVmFsdWUiLCJjcmVhdGVIdG1sUmVhZHlJZCIsIm9uQ2hhbmdlUHJvZHVjZXNXcmFwcGVyIiwib25SZXNwb25zZUNvbnRlbnRUeXBlQ2hhbmdlIiwiY29udHJvbHNBY2NlcHRIZWFkZXIiLCJzZXRSZXNwb25zZUNvbnRlbnRUeXBlIiwiZGVmYXVsdENvZGUiLCJkZWZhdWx0U3RhdHVzQ29kZSIsIkNvbnRlbnRUeXBlIiwiYWNjZXB0Q29udHJvbGxpbmdSZXNwb25zZSIsImdldEFjY2VwdENvbnRyb2xsaW5nUmVzcG9uc2UiLCJzdWl0YWJsZTJ4eFJlc3BvbnNlIiwiZGVmYXVsdFJlc3BvbnNlIiwic3VpdGFibGVEZWZhdWx0UmVzcG9uc2UiLCJyZWdpb25JZCIsImNvbnRyb2xJZCIsImFyaWFDb250cm9scyIsImFyaWFMYWJlbCIsImNvbnRlbnRUeXBlcyIsImlzRGVmYXVsdCIsIm9uQ29udGVudFR5cGVDaGFuZ2UiLCJhY3RpdmVFeGFtcGxlc0tleSIsImFjdGl2ZUV4YW1wbGVzTWVtYmVyIiwiZ2V0S25vd25TeW50YXhIaWdobGlnaHRlckxhbmd1YWdlIiwiaXNWYWxpZEpzb24iLCJjYW5Kc29uUGFyc2UiLCJfb25Db250ZW50VHlwZUNoYW5nZSIsImdldFRhcmdldEV4YW1wbGVzS2V5IiwiYWN0aXZlQ29udGVudFR5cGUiLCJSZXNwb25zZUV4dGVuc2lvbiIsIk9wZXJhdGlvbkxpbmsiLCJzcGVjUGF0aFdpdGhQb3NzaWJsZVNjaGVtYSIsImFjdGl2ZU1lZGlhVHlwZSIsImV4YW1wbGVzRm9yTWVkaWFUeXBlIiwib2FzM1NjaGVtYUZvckNvbnRlbnRUeXBlIiwibWVkaWFUeXBlRXhhbXBsZSIsInNhbXBsZVNjaGVtYSIsInNob3VsZE92ZXJyaWRlU2NoZW1hRXhhbXBsZSIsInNhbXBsZUdlbkNvbmZpZyIsInRhcmdldEV4YW1wbGVzS2V5IiwiZ2V0TWVkaWFUeXBlRXhhbXBsZSIsInRhcmdldEV4YW1wbGUiLCJvbGRPQVNNZWRpYVR5cGVFeGFtcGxlIiwiZ2V0RXhhbXBsZUNvbXBvbmVudCIsInNhbXBsZVJlc3BvbnNlIiwic2V0QWN0aXZlRXhhbXBsZXNNZW1iZXIiLCJjb250ZXh0TmFtZSIsIm9taXRWYWx1ZSIsInBhcnNlZENvbnRlbnQiLCJ1cGRhdGVQYXJzZWRDb250ZW50IiwicHJldkNvbnRlbnQiLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwicmVhZEFzVGV4dCIsImRvd25sb2FkTmFtZSIsImJvZHlFbCIsImRpc3Bvc2l0aW9uIiwicmVzcG9uc2VGaWxlbmFtZSIsImV4dHJhY3RGaWxlTmFtZUZyb21Db250ZW50RGlzcG9zaXRpb25IZWFkZXIiLCJtc1NhdmVPck9wZW5CbG9iIiwiZm9ybWF0WG1sIiwiY29udHJvbHMiLCJjYWxsYmFja1Zpc2libGUiLCJwYXJhbWV0ZXJzVmlzaWJsZSIsIm9uQ2hhbmdlQ29uc3VtZXNXcmFwcGVyIiwidG9nZ2xlVGFiIiwib25DaGFuZ2VNZWRpYVR5cGUiLCJoYXNVc2VyRWRpdGVkQm9keSIsInNob3VsZFJldGFpblJlcXVlc3RCb2R5VmFsdWUiLCJzZXRSZXF1ZXN0Q29udGVudFR5cGUiLCJpbml0UmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yIiwiUGFyYW1ldGVyUm93IiwiVHJ5SXRPdXRCdXR0b24iLCJDYWxsYmFja3MiLCJncm91cGVkUGFyYW1ldGVyc0FyciIsInJhd1BhcmFtIiwib25DaGFuZ2VDb25zdW1lcyIsInJlcXVlc3RCb2R5RXJyb3JzIiwidXBkYXRlQWN0aXZlRXhhbXBsZXNLZXkiLCJsYXN0VmFsdWUiLCJ1c2FibGVWYWx1ZSIsIm9uQ2hhbmdlSW5jbHVkZUVtcHR5Iiwic2V0UmVxdWVzdEJvZHlJbmNsdXNpb24iLCJQYXJhbWV0ZXJFeHQiLCJQYXJhbWV0ZXJJbmNsdWRlRW1wdHlEZWZhdWx0UHJvcHMiLCJpc0luY2x1ZGVkT3B0aW9ucyIsIlBhcmFtZXRlckluY2x1ZGVFbXB0eSIsInNob3VsZERpc3BhdGNoSW5pdCIsIm9uQ2hlY2tib3hDaGFuZ2UiLCJpc0luY2x1ZGVkIiwic2V0RGVmYXVsdFZhbHVlIiwib25DaGFuZ2VXcmFwcGVyIiwibnVtYmVyVG9TdHJpbmciLCJ2YWx1ZUZvclVwc3RyZWFtIiwiX29uRXhhbXBsZVNlbGVjdCIsImdldFBhcmFtS2V5IiwicGFyYW1XaXRoTWV0YSIsInBhcmFtZXRlck1lZGlhVHlwZSIsImdlbmVyYXRlZFNhbXBsZVZhbHVlIiwiaXNTd2FnZ2VyMiIsInNob3dDb21tb25FeHRlbnNpb25zIiwiUGFyYW1Cb2R5IiwiYm9keVBhcmFtIiwiY29uc3VtZXNWYWx1ZSIsInBhcmFtSXRlbXMiLCJwYXJhbUVudW0iLCJwYXJhbURlZmF1bHRWYWx1ZSIsInBhcmFtRXhhbXBsZSIsIml0ZW1UeXBlIiwiaXNGb3JtRGF0YSIsImlzRm9ybURhdGFTdXBwb3J0ZWQiLCJjb21tb25FeHQiLCJpc0Rpc3BsYXlQYXJhbUVudW0iLCJkZWZhdWx0VG9GaXJzdEV4YW1wbGUiLCJoYW5kbGVWYWxpZGF0ZVBhcmFtZXRlcnMiLCJoYW5kbGVWYWxpZGF0ZVJlcXVlc3RCb2R5IiwibWlzc2luZ0JvZHlWYWx1ZSIsIm1pc3NpbmdSZXF1aXJlZEtleXMiLCJjbGVhclJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvciIsIm9hczNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGUiLCJvYXMzUmVxdWVzdEJvZHlWYWx1ZSIsIm9hczNWYWxpZGF0ZUJlZm9yZUV4ZWN1dGVTdWNjZXNzIiwib2FzM1JlcXVlc3RDb250ZW50VHlwZSIsInNldFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvciIsInZhbGlkYXRlU2hhbGxvd1JlcXVpcmVkIiwibWlzc2luZ0tleSIsImhhbmRsZVZhbGlkYXRpb25SZXN1bHRQYXNzIiwiaGFuZGxlVmFsaWRhdGlvblJlc3VsdEZhaWwiLCJoYW5kbGVWYWxpZGF0aW9uUmVzdWx0IiwiaXNQYXNzIiwicGFyYW1zUmVzdWx0IiwicmVxdWVzdEJvZHlSZXN1bHQiLCJzY2hlbWFFeGFtcGxlIiwiRXJyb3JzIiwiZWRpdG9yQWN0aW9ucyIsImp1bXBUb0xpbmUiLCJhbGxFcnJvcnNUb0Rpc3BsYXkiLCJpc1Zpc2libGUiLCJzb3J0ZWRKU0Vycm9ycyIsInRvZ2dsZVZpc2liaWxpdHkiLCJhbmltYXRlZCIsIlRocm93bkVycm9ySXRlbSIsIlNwZWNFcnJvckl0ZW0iLCJlcnJvckxpbmUiLCJ0b1RpdGxlQ2FzZSIsImxvY2F0aW9uTWVzc2FnZSIsInhjbGFzcyIsIkNvbnRhaW5lciIsImZ1bGxzY3JlZW4iLCJmdWxsIiwiY29udGFpbmVyQ2xhc3MiLCJERVZJQ0VTIiwiaGlkZSIsImtlZXBDb250ZW50cyIsIm1vYmlsZSIsImxhcmdlIiwiY2xhc3Nlc0FyIiwiZGV2aWNlIiwiZGV2aWNlQ2xhc3MiLCJvcHRpb24iLCJOb01hcmdpbiIsInJlbmRlck5vdEFuaW1hdGVkIiwiT3ZlcnZpZXciLCJzZXRUYWdTaG93biIsIl9zZXRUYWdTaG93biIsInNob3dUYWdJZCIsInNob3dPcCIsInRvZ2dsZVNob3ciLCJzaG93T3BJZFByZWZpeCIsInNob3dPcElkIiwiX29uQ2xpY2siLCJJbmZvQmFzZVBhdGgiLCJJbmZvVXJsIiwidGVybXNPZlNlcnZpY2VVcmwiLCJjb250YWN0RGF0YSIsImxpY2Vuc2VEYXRhIiwiVmVyc2lvblN0YW1wIiwiT3BlbkFQSVZlcnNpb24iLCJvYXNWZXJzaW9uIiwiSW5mb0NvbnRhaW5lciIsIkZvb3RlciIsIkZpbHRlckNvbnRhaW5lciIsIm9uRmlsdGVyQ2hhbmdlIiwiaXNMb2FkaW5nIiwiaXNGYWlsZWQiLCJOT09QIiwiaXNFZGl0Qm94IiwidXBkYXRlVmFsdWVzIiwiaXNKc29uIiwiX29uQ2hhbmdlIiwidG9nZ2xlSXNFZGl0Qm94IiwiZGVmYXVsdFByb3AiLCJjdXJsIiwic2hvd1Jlc2V0IiwiVmVyc2lvblByYWdtYUZpbHRlciIsImFsc29TaG93IiwiYnlwYXNzIiwiU3ZnQXNzZXRzIiwieG1sbnNYbGluayIsImRlY29kZUVudGl0eSIsIlVORVNDQVBFX01EX1JFIiwidW5lc2NhcGVNZCIsImlzVmFsaWRFbnRpdHlDb2RlIiwiZnJvbUNvZGVQb2ludCIsInN1cnJvZ2F0ZTEiLCJzdXJyb2dhdGUyIiwiTkFNRURfRU5USVRZX1JFIiwiRElHSVRBTF9FTlRJVFlfVEVTVF9SRSIsInJlcGxhY2VFbnRpdHlQYXR0ZXJuIiwiZGVjb2RlZCIsInJlcGxhY2VFbnRpdGllcyIsIkhUTUxfRVNDQVBFX1RFU1RfUkUiLCJIVE1MX0VTQ0FQRV9SRVBMQUNFX1JFIiwiSFRNTF9SRVBMQUNFTUVOVFMiLCJyZXBsYWNlVW5zYWZlQ2hhciIsImVzY2FwZUh0bWwiLCJuZXh0VG9rZW4iLCJ0aWdodCIsImJsb2NrcXVvdGVfb3BlbiIsImJsb2NrcXVvdGVfY2xvc2UiLCJnZXRCcmVhayIsImZlbmNlIiwiZmVuY2VzIiwiZmVuY2VOYW1lIiwibGFuZ0NsYXNzIiwibGFuZ1ByZWZpeCIsInBhcmFtcyIsImZlbmNlX2N1c3RvbSIsImhlYWRpbmdfb3BlbiIsImhMZXZlbCIsImhlYWRpbmdfY2xvc2UiLCJ4aHRtbE91dCIsImJ1bGxldF9saXN0X29wZW4iLCJidWxsZXRfbGlzdF9jbG9zZSIsImxpc3RfaXRlbV9vcGVuIiwibGlzdF9pdGVtX2Nsb3NlIiwib3JkZXJlZF9saXN0X29wZW4iLCJvcmRlcmVkX2xpc3RfY2xvc2UiLCJwYXJhZ3JhcGhfb3BlbiIsInBhcmFncmFwaF9jbG9zZSIsImFkZEJyZWFrIiwibGlua19vcGVuIiwibGlua1RhcmdldCIsImxpbmtfY2xvc2UiLCJpbWFnZSIsInRhYmxlX29wZW4iLCJ0YWJsZV9jbG9zZSIsInRoZWFkX29wZW4iLCJ0aGVhZF9jbG9zZSIsInRib2R5X29wZW4iLCJ0Ym9keV9jbG9zZSIsInRyX29wZW4iLCJ0cl9jbG9zZSIsInRoX29wZW4iLCJhbGlnbiIsInRoX2Nsb3NlIiwidGRfb3BlbiIsInRkX2Nsb3NlIiwic3Ryb25nX29wZW4iLCJzdHJvbmdfY2xvc2UiLCJlbV9vcGVuIiwiZW1fY2xvc2UiLCJkZWxfb3BlbiIsImRlbF9jbG9zZSIsImluc19vcGVuIiwiaW5zX2Nsb3NlIiwibWFya19vcGVuIiwibWFya19jbG9zZSIsInN1cCIsImhhcmRicmVhayIsInNvZnRicmVhayIsImJyZWFrcyIsImh0bWxibG9jayIsImh0bWx0YWciLCJhYmJyX29wZW4iLCJhYmJyX2Nsb3NlIiwiZm9vdG5vdGVfcmVmIiwic3ViSWQiLCJmb290bm90ZV9ibG9ja19vcGVuIiwiZm9vdG5vdGVfYmxvY2tfY2xvc2UiLCJmb290bm90ZV9vcGVuIiwiZm9vdG5vdGVfY2xvc2UiLCJmb290bm90ZV9hbmNob3IiLCJkbF9vcGVuIiwiZHRfb3BlbiIsImRkX29wZW4iLCJkbF9jbG9zZSIsImR0X2Nsb3NlIiwiZGRfY2xvc2UiLCJSZW5kZXJlciIsIlJ1bGVyIiwiX19ydWxlc19fIiwiX19jYWNoZV9fIiwiU3RhdGVJbmxpbmUiLCJwYXJzZXJJbmxpbmUiLCJvdXRUb2tlbnMiLCJwb3NNYXgiLCJwZW5kaW5nTGV2ZWwiLCJpc0luTGFiZWwiLCJsaW5rTGV2ZWwiLCJsaW5rQ29udGVudCIsImxhYmVsVW5tYXRjaGVkU2NvcGVzIiwicGFyc2VMaW5rTGFiZWwiLCJsYWJlbEVuZCIsIm9sZFBvcyIsIm9sZEZsYWciLCJza2lwVG9rZW4iLCJwYXJzZUFiYnIiLCJhYmJyZXZpYXRpb25zIiwibm9ybWFsaXplTGluayIsInBhcnNlTGlua0Rlc3RpbmF0aW9uIiwidmFsaWRhdGVMaW5rIiwicGFyc2VMaW5rVGl0bGUiLCJub3JtYWxpemVSZWZlcmVuY2UiLCJwYXJzZVJlZmVyZW5jZSIsInJlbmRlcklubGluZSIsIl9ydWxlcyIsIl9fZmluZF9fIiwiX19jb21waWxlX18iLCJjaGFpbnMiLCJhbHROYW1lIiwiYXQiLCJiZWZvcmVOYW1lIiwicnVsZU5hbWUiLCJhZnRlck5hbWUiLCJlbmFibGUiLCJzdHJpY3QiLCJkaXNhYmxlIiwiZ2V0UnVsZXMiLCJjaGFpbk5hbWUiLCJwdXNoUGVuZGluZyIsImNhY2hlU2V0IiwiY2FjaGVHZXQiLCJQVU5DVF9DSEFSUyIsInJlZ0VzY2FwZSIsIlJBUkVfUkUiLCJTQ09QRURfQUJCUl9SRSIsIlNDT1BFRF9BQkJSIiwicmVwbGFjZVNjb3BlZEFiYnIiLCJRVU9URV9URVNUX1JFIiwiUVVPVEVfUkUiLCJQVU5DVF9SRSIsImlzTGV0dGVyIiwicmVwbGFjZUF0IiwiaW5saW5lTW9kZSIsImFiYnIiLCJpbmxpbmUiLCJ0b2siLCJmb290bm90ZV9ibG9jayIsImxhc3RQYXJhZ3JhcGgiLCJjdXJyZW50TGFiZWwiLCJpbnNpZGVSZWYiLCJyZWZUb2tlbnMiLCJmb290bm90ZXMiLCJhYmJyMiIsInJlZyIsInJlZ1RleHQiLCJibG9ja1Rva2VucyIsImFiYnJSZWdFeHAiLCJpbmxpbmVUb2tlbnMiLCJibGtJZHgiLCJ0eXBvZ3JhcGhlciIsInNtYXJ0cXVvdGVzIiwidGhpc0xldmVsIiwibGFzdFNwYWNlIiwibmV4dFNwYWNlIiwiY2FuT3BlbiIsImNhbkNsb3NlIiwiaXNTaW5nbGUiLCJPVVRFUiIsInNpbmdsZSIsInF1b3RlcyIsIkNvcmUiLCJydWxlciIsIlN0YXRlQmxvY2siLCJpbmRlbnRfZm91bmQiLCJiTWFya3MiLCJlTWFya3MiLCJ0U2hpZnQiLCJibGtJbmRlbnQiLCJsaW5lTWF4IiwicGFyZW50VHlwZSIsImRkSW5kZW50Iiwic2tpcEJ1bGxldExpc3RNYXJrZXIiLCJza2lwT3JkZXJlZExpc3RNYXJrZXIiLCJza2lwRW1wdHlMaW5lcyIsInNraXBTcGFjZXMiLCJza2lwQ2hhcnMiLCJza2lwQ2hhcnNCYWNrIiwiZ2V0TGluZXMiLCJrZWVwTGFzdExGIiwiaHRtbF9ibG9ja3MiLCJIVE1MX1RBR19PUEVOX1JFIiwiSFRNTF9UQUdfQ0xPU0VfUkUiLCJza2lwTWFya2VyIiwiX3J1bGVzJDEiLCJlbmRMaW5lIiwibmV4dExpbmUiLCJzaWxlbnQiLCJtZW0iLCJoYXZlRW5kTWFya2VyIiwiYmxvY2txdW90ZSIsImxhc3RMaW5lRW1wdHkiLCJvbGRUU2hpZnQiLCJvbGRCTWFya3MiLCJvbGRJbmRlbnQiLCJvbGRQYXJlbnRUeXBlIiwidGVybWluYXRvclJ1bGVzIiwidGVybWluYXRlIiwibWF4TmVzdGluZyIsInRva2VuaXplIiwiY250Iiwib2xkVGlnaHQiLCJwb3NBZnRlck1hcmtlciIsImluZGVudEFmdGVyTWFya2VyIiwibWFya2VyVmFsdWUiLCJtYXJrZXJDaGFyQ29kZSIsImNvbnRlbnRTdGFydCIsImxpc3RUb2tJZHgiLCJwcmV2RW1wdHlFbmQiLCJsaXN0TGluZXMiLCJpdGVtTGluZXMiLCJtYXJrVGlnaHRQYXJhZ3JhcGhzIiwiZm9vdG5vdGUiLCJvbGRCTWFyayIsImhlYWRpbmciLCJsaGVhZGluZyIsImlzTGV0dGVyJDEiLCJsaW5lVGV4dCIsImNlbGwiLCJhbGlnbnMiLCJ0YWJsZUxpbmVzIiwidGJvZHlMaW5lcyIsImRlZmxpc3QiLCJkZExpbmUiLCJkdExpbmUiLCJvbGREREluZGVudCIsIm1hcmtUaWdodFBhcmFncmFwaHMkMSIsInBhcmFncmFwaCIsIlBhcnNlckJsb2NrIiwiaGFzRW1wdHlMaW5lcyIsIlRBQlNfU0NBTl9SRSIsIk5FV0xJTkVTX1JFIiwiU1BBQ0VTX1JFIiwiaXNUZXJtaW5hdG9yQ2hhciIsImxhc3RUYWJQb3MiLCJFU0NBUEVEIiwiaXNBbHBoYU51bSIsInNjYW5EZWxpbXMiLCJjYW5fb3BlbiIsImNhbl9jbG9zZSIsImRlbGltcyIsIlVORVNDQVBFX1JFIiwiVU5FU0NBUEVfUkUkMSIsInVybF9zY2hlbWFzIiwiRU1BSUxfUkUiLCJBVVRPTElOS19SRSIsInJlcGxhY2UkMSIsImF0dHJfdmFsdWUiLCJvcGVuX3RhZyIsIkhUTUxfVEFHX1JFIiwiRElHSVRBTF9SRSIsIk5BTUVEX1JFIiwiX3J1bGVzJDIiLCJuZXdsaW5lIiwicG1heCIsImJhY2t0aWNrcyIsIm1hdGNoU3RhcnQiLCJtYXRjaEVuZCIsImRlbCIsImVtcGhhc2lzIiwic3RhcnRDb3VudCIsIm9sZENvdW50IiwibGFiZWxTdGFydCIsImlzSW1hZ2UiLCJmb290bm90ZV9pbmxpbmUiLCJmb290bm90ZUlkIiwib2xkTGVuZ3RoIiwiZm9vdG5vdGVTdWJJZCIsImF1dG9saW5rIiwibGlua01hdGNoIiwiZW1haWxNYXRjaCIsImZ1bGxVcmwiLCJpc0xldHRlciQyIiwiZW50aXR5IiwiUGFyc2VySW5saW5lIiwiY2FjaGVkX3BvcyIsIlN0YXRlQ29yZSIsIlJlbWFya2FibGUiLCJwcmVzZXQiLCJsaW5raWZ5IiwicHJlc2V0cyIsInBhcnNlSW5saW5lIiwidGhyb3dVbmhhbmRsZWRDYXNlRXJyb3IiLCJ0aGVWYWx1ZSIsIkh0bWxUYWciLCJ3aGl0ZXNwYWNlUmVnZXgiLCJpbm5lckh0bWwiLCJzZXRUYWdOYW1lIiwiZ2V0VGFnTmFtZSIsInNldEF0dHIiLCJnZXRBdHRycyIsImdldEF0dHIiLCJzZXRBdHRycyIsInNldENsYXNzIiwiYWRkQ2xhc3MiLCJjbGFzc0F0dHIiLCJnZXRDbGFzcyIsInJlbW92ZUNsYXNzIiwicmVtb3ZlQ2xhc3NlcyIsInNldElubmVySFRNTCIsInNldElubmVySHRtbCIsImdldElubmVySFRNTCIsImdldElubmVySHRtbCIsInRvQW5jaG9yU3RyaW5nIiwiYXR0cnNTdHIiLCJidWlsZEF0dHJzU3RyIiwiYXR0cnNBcnIiLCJBbmNob3JUYWdCdWlsZGVyIiwibmV3V2luZG93IiwidHJ1bmNhdGUiLCJidWlsZCIsImNyZWF0ZUF0dHJzIiwicHJvY2Vzc0FuY2hvclRleHQiLCJnZXRBbmNob3JUZXh0IiwiZ2V0QW5jaG9ySHJlZiIsImNyZWF0ZUNzc0NsYXNzIiwicmV0dXJuQ2xhc3NlcyIsImNzc0NsYXNzU3VmZml4ZXMiLCJnZXRDc3NDbGFzc1N1ZmZpeGVzIiwiYW5jaG9yVGV4dCIsImRvVHJ1bmNhdGUiLCJ0cnVuY2F0ZUxlbmd0aCIsInRydW5jYXRlTG9jYXRpb24iLCJ0cnVuY2F0ZVNtYXJ0IiwidHJ1bmNhdGVMZW4iLCJlbGxpcHNpc0NoYXJzIiwiZWxsaXBzaXNMZW5ndGhCZWZvcmVQYXJzaW5nIiwiZWxsaXBzaXNMZW5ndGgiLCJ1cmxPYmoiLCJidWlsZFNlZ21lbnQiLCJyZW1haW5pbmdBdmFpbGFibGVMZW5ndGgiLCJyZW1haW5pbmdBdmFpbGFibGVMZW5ndGhIYWxmIiwic3RhcnRPZmZzZXQiLCJlbmRPZmZzZXQiLCJhdmFpbGFibGVMZW5ndGgiLCJ1cmxTdWIiLCJwYXJzZV91cmwiLCJtYXRjaFF1ZXJ5IiwicGF0aEFuZFF1ZXJ5IiwidHJ1bmNhdGVNaWRkbGUiLCJ0cnVuY2F0ZUVuZCIsImVsbGlwc2lzIiwiTWF0Y2giLCJfX2pzZHVja0R1bW15RG9jUHJvcCIsIm1hdGNoZWRUZXh0IiwidGFnQnVpbGRlciIsImdldE1hdGNoZWRUZXh0Iiwic2V0T2Zmc2V0IiwiZ2V0T2Zmc2V0IiwiYnVpbGRUYWciLCJfX2Fzc2lnbiIsIlN1cHByZXNzZWRFcnJvciIsInVybFN1ZmZpeFJlZ2V4IiwiRW1haWxNYXRjaCIsImdldEVtYWlsIiwiSGFzaHRhZ01hdGNoIiwic2VydmljZU5hbWUiLCJoYXNodGFnIiwiZ2V0U2VydmljZU5hbWUiLCJnZXRIYXNodGFnIiwiTWVudGlvbk1hdGNoIiwibWVudGlvbiIsImdldE1lbnRpb24iLCJQaG9uZU1hdGNoIiwicGx1c1NpZ24iLCJnZXRQaG9uZU51bWJlciIsImdldE51bWJlciIsIlVybE1hdGNoIiwidXJsTWF0Y2hUeXBlIiwicHJvdG9jb2xVcmxNYXRjaCIsInByb3RvY29sUmVsYXRpdmVNYXRjaCIsInN0cmlwUHJlZml4Iiwid3d3Iiwic3RyaXBUcmFpbGluZ1NsYXNoIiwiZGVjb2RlUGVyY2VudEVuY29kaW5nIiwic2NoZW1lUHJlZml4UmVnZXgiLCJ3d3dQcmVmaXhSZWdleCIsInByb3RvY29sUmVsYXRpdmVSZWdleCIsInByb3RvY29sUHJlcGVuZGVkIiwiZ2V0VXJsTWF0Y2hUeXBlIiwiZ2V0VXJsIiwic3RyaXBQcm90b2NvbFJlbGF0aXZlUHJlZml4Iiwic3RyaXBTY2hlbWVQcmVmaXgiLCJzdHJpcFd3d1ByZWZpeCIsInJlbW92ZVRyYWlsaW5nU2xhc2giLCJyZW1vdmVQZXJjZW50RW5jb2RpbmciLCJwcmVQcm9jZXNzZWRFbnRpdHlBbmNob3JUZXh0IiwiTWF0Y2hlciIsImxldHRlclJlIiwiZGlnaXRSZSIsIm5vbkRpZ2l0UmUiLCJ3aGl0ZXNwYWNlUmUiLCJxdW90ZVJlIiwiY29udHJvbENoYXJzUmUiLCJhbHBoYUNoYXJzU3RyIiwiYWxwaGFDaGFyc0FuZE1hcmtzU3RyIiwiZGVjaW1hbE51bWJlcnNTdHIiLCJhbHBoYU51bWVyaWNDaGFyc1N0ciIsImFscGhhTnVtZXJpY0FuZE1hcmtzQ2hhcnNTdHIiLCJhbHBoYU51bWVyaWNBbmRNYXJrc0NoYXJSZSIsImlwU3RyIiwiZG9tYWluTGFiZWxTdHIiLCJnZXREb21haW5MYWJlbFN0ciIsImdldERvbWFpbk5hbWVTdHIiLCJkb21haW5OYW1lQ2hhclJlZ2V4IiwidGxkUmVnZXgiLCJsb2NhbFBhcnRDaGFyUmVnZXgiLCJzdHJpY3RUbGRSZWdleCIsIkVtYWlsTWF0Y2hlciIsInBhcnNlTWF0Y2hlcyIsIm5vQ3VycmVudEVtYWlsTWF0Y2giLCJDdXJyZW50RW1haWxNYXRjaCIsIm1haWx0b1RyYW5zaXRpb25zIiwiY2hhcklkeCIsImN1cnJlbnRFbWFpbE1hdGNoIiwic3RhdGVOb25FbWFpbEFkZHJlc3MiLCJzdGF0ZU1haWxUbyIsInN0YXRlTG9jYWxQYXJ0Iiwic3RhdGVMb2NhbFBhcnREb3QiLCJzdGF0ZUF0U2lnbiIsInN0YXRlRG9tYWluQ2hhciIsInN0YXRlRG9tYWluSHlwaGVuIiwic3RhdGVEb21haW5Eb3QiLCJjYXB0dXJlTWF0Y2hJZlZhbGlkQW5kUmVzZXQiLCJiZWdpbkVtYWlsTWF0Y2giLCJoYXNNYWlsdG9QcmVmaXgiLCJyZXNldFRvTm9uRW1haWxNYXRjaFN0YXRlIiwiaGFzRG9tYWluRG90IiwiZW1haWxBZGRyZXNzIiwiZG9lc0VtYWlsSGF2ZVZhbGlkVGxkIiwiZW1haWxBZGRyZXNzVGxkIiwiZW1haWxBZGRyZXNzTm9ybWFsaXplZCIsIlVybE1hdGNoVmFsaWRhdG9yIiwidXJsTWF0Y2giLCJpc1ZhbGlkVXJpU2NoZW1lIiwidXJsTWF0Y2hEb2VzTm90SGF2ZVByb3RvY29sT3JEb3QiLCJ1cmxNYXRjaERvZXNOb3RIYXZlQXRMZWFzdE9uZVdvcmRDaGFyIiwiaXNWYWxpZElwQWRkcmVzcyIsImNvbnRhaW5zTXVsdGlwbGVEb3RzIiwidXJpU2NoZW1lTWF0Y2giLCJuZXdSZWdleCIsImhhc0Z1bGxQcm90b2NvbFJlZ2V4IiwiaXBSZWdleCIsInN0cmluZ0JlZm9yZVNsYXNoIiwidXJpU2NoZW1lTWF0Y2hBcnIiLCJ1cmlTY2hlbWVSZWdleCIsInVyaVNjaGVtZSIsImhhc1dvcmRDaGFyQWZ0ZXJQcm90b2NvbFJlZ2V4IiwibWF0Y2hlclJlZ2V4Iiwid29yZENoYXJSZWdFeHAiLCJVcmxNYXRjaGVyIiwiX2xvb3BfMSIsIm1hdGNoU3RyIiwic2NoZW1lVXJsTWF0Y2giLCJ3d3dVcmxNYXRjaCIsInd3d1Byb3RvY29sUmVsYXRpdmVNYXRjaCIsInRsZFByb3RvY29sUmVsYXRpdmVNYXRjaCIsInRoaXNfMSIsIm1hdGNoSGFzVW5iYWxhbmNlZENsb3NpbmdQYXJlbiIsIm1hdGNoSGFzSW52YWxpZENoYXJBZnRlclRsZCIsImZvdW5kQ29tbW9uU2NoZW1lIiwiY29tbW9uU2NoZW1lIiwiaW5kZXhPZlNjaGVtZVN0YXJ0Iiwic3RhcnRDaGFyIiwiZW5kQ2hhciIsIm51bU9wZW5CcmFjZXMiLCJoYXNodGFnVGV4dENoYXJSZSIsIkhhc2h0YWdNYXRjaGVyIiwiaGFzaENoYXJJZHgiLCJzdGF0ZU5vbmUiLCJzdGF0ZU5vbkhhc2h0YWdXb3JkQ2hhciIsInN0YXRlSGFzaHRhZ0hhc2hDaGFyIiwic3RhdGVIYXNodGFnVGV4dENoYXIiLCJjYXB0dXJlTWF0Y2hJZlZhbGlkIiwiaGFzaHRhZ1NlcnZpY2VzIiwicGhvbmVNYXRjaGVyUmVnZXgiLCJQaG9uZU1hdGNoZXIiLCJjbGVhbk51bWJlciIsImNvbnRleHRDbGVhciIsInRlc3RNYXRjaCIsInR3aXR0ZXJSZWdleCIsImluc3RhZ3JhbVJlZ2V4Iiwic291bmRjbG91ZFJlZ2V4IiwidGlrdG9rUmVnZXgiLCJub25Xb3JkQ2hhclJlZ2V4IiwiTWVudGlvbk1hdGNoZXIiLCJtYXRjaGVyUmVnZXhlcyIsInR3aXR0ZXIiLCJpbnN0YWdyYW0iLCJzb3VuZGNsb3VkIiwidGlrdG9rIiwicGFyc2VIdG1sIiwib25PcGVuVGFnIiwib25DbG9zZVRhZyIsIm9uVGV4dCIsIm9uQ29tbWVudCIsIm9uRG9jdHlwZSIsIm5vQ3VycmVudFRhZyIsIkN1cnJlbnRUYWciLCJjdXJyZW50RGF0YUlkeCIsImN1cnJlbnRUYWciLCJzdGF0ZURhdGEiLCJzdGF0ZVRhZ09wZW4iLCJzdGF0ZUVuZFRhZ09wZW4iLCJzdGF0ZVRhZ05hbWUiLCJzdGF0ZUJlZm9yZUF0dHJpYnV0ZU5hbWUiLCJzdGF0ZUF0dHJpYnV0ZU5hbWUiLCJzdGF0ZUFmdGVyQXR0cmlidXRlTmFtZSIsInN0YXRlQmVmb3JlQXR0cmlidXRlVmFsdWUiLCJzdGF0ZUF0dHJpYnV0ZVZhbHVlRG91YmxlUXVvdGVkIiwic3RhdGVBdHRyaWJ1dGVWYWx1ZVNpbmdsZVF1b3RlZCIsInN0YXRlQXR0cmlidXRlVmFsdWVVbnF1b3RlZCIsInN0YXRlQWZ0ZXJBdHRyaWJ1dGVWYWx1ZVF1b3RlZCIsInN0YXRlU2VsZkNsb3NpbmdTdGFydFRhZyIsInN0YXRlTWFya3VwRGVjbGFyYXRpb25PcGVuIiwic3RhdGVDb21tZW50U3RhcnQiLCJzdGF0ZUNvbW1lbnRTdGFydERhc2giLCJzdGF0ZUNvbW1lbnQiLCJzdGF0ZUNvbW1lbnRFbmREYXNoIiwic3RhdGVDb21tZW50RW5kIiwic3RhdGVDb21tZW50RW5kQmFuZyIsInN0YXRlRG9jdHlwZSIsInN0YXJ0TmV3VGFnIiwiaXNDbG9zaW5nIiwiaXNPcGVuaW5nIiwiY2FwdHVyZVRhZ05hbWUiLCJlbWl0VGFnQW5kUHJldmlvdXNUZXh0Tm9kZSIsInJlc2V0VG9EYXRhU3RhdGUiLCJyZWNvbnN1bWVDdXJyZW50Q2hhcmFjdGVyIiwidGV4dEJlZm9yZVRhZyIsInN0YXJ0SWR4IiwiZW1pdFRleHQiLCJBdXRvbGlua2VyIiwidXJscyIsInBob25lIiwicmVwbGFjZUZuIiwic2FuaXRpemVIdG1sIiwibWF0Y2hlcnMiLCJub3JtYWxpemVVcmxzQ2ZnIiwibm9ybWFsaXplU3RyaXBQcmVmaXhDZmciLCJub3JtYWxpemVUcnVuY2F0ZUNmZyIsInRleHRPckh0bWwiLCJzY2hlbWVNYXRjaGVzIiwid3d3TWF0Y2hlcyIsInRsZE1hdGNoZXMiLCJza2lwVGFnTmFtZXMiLCJza2lwVGFnc1N0YWNrQ291bnQiLCJ0ZXh0U3BsaXQiLCJzcGxpdEFuZENhcHR1cmUiLCJzcGxpdFJlZ2V4IiwibGFzdElkeCIsImN1cnJlbnRPZmZzZXRfMSIsInNwbGl0VGV4dCIsInRleHROb2RlTWF0Y2hlcyIsInBhcnNlVGV4dCIsImNvbXBhY3RNYXRjaGVzIiwicmVtb3ZlVW53YW50ZWRNYXRjaGVzIiwibWF0Y2hlZFRleHRMZW5ndGgiLCJyZW1vdmVJZHgiLCJnZXRNYXRjaGVycyIsIm51bU1hdGNoZXJzIiwidGV4dE1hdGNoZXMiLCJudW1UZXh0TWF0Y2hlcyIsIm5ld0h0bWwiLCJjcmVhdGVNYXRjaFJldHVyblZhbCIsInJlcGxhY2VGblJlc3VsdCIsImdldFRhZ0J1aWxkZXIiLCJFbWFpbCIsIkhhc2h0YWciLCJNZW50aW9uIiwiUGhvbmUiLCJMSU5LX1NDQU5fUkUiLCJpc0xpbmtPcGVuIiwiaXNMaW5rQ2xvc2UiLCJjcmVhdGVMaW5raWZpZXIiLCJhdXRvbGlua2VyIiwicGFyc2VUb2tlbnMiLCJsbiIsImh0bWxMaW5rTGV2ZWwiLCJsaW5raWZpZXIiLCJEb21QdXJpZnkiLCJ1c2VVbnNhZmVNYXJrZG93biIsInNhbml0aXplZCIsInNhbml0aXplciIsImhhc1dhcm5lZEFib3V0RGVwcmVjYXRpb24iLCJCYXNlTGF5b3V0IiwiU2VydmVyc0NvbnRhaW5lciIsImlzT0FTMzEiLCJpc1NwZWNFbXB0eSIsImxvYWRpbmdNZXNzYWdlIiwibGFzdEVyciIsImxhc3RFcnJNc2ciLCJoYXNTZXJ2ZXJzIiwiaGFzU2NoZW1lcyIsImhhc1NlY3VyaXR5RGVmaW5pdGlvbnMiLCJDb3JlQ29tcG9uZW50c1BsdWdpbiIsImF1dGhvcml6YXRpb25Qb3B1cCIsImF1dGhvcml6ZUJ0biIsImF1dGhvcml6ZU9wZXJhdGlvbkJ0biIsImF1dGhFcnJvciIsIm9hdXRoMiIsImFwaUtleUF1dGgiLCJiYXNpY0F1dGgiLCJsaXZlUmVzcG9uc2UiLCJvbmxpbmVWYWxpZGF0b3JCYWRnZSIsInJlc3BvbnNlQm9keSIsInBhcmFtZXRlclJvdyIsIm92ZXJ2aWV3IiwiZm9vdGVyIiwiRm9ybUNvbXBvbmVudHNQbHVnaW4iLCJMYXlvdXRVdGlscyIsIkJhc2VQcmVzZXQiLCJDb25maWdzUGx1Z2luIiwiVXRpbFBsdWdpbiIsIkxvZ3NQbHVnaW4iLCJWaWV3UGx1Z2luIiwiRXJyUGx1Z2luIiwiTGF5b3V0UGx1Z2luIiwiU3dhZ2dlckNsaWVudFBsdWdpbiIsIkF1dGhQbHVnaW4iLCJEb3dubG9hZFVybFBsdWdpbiIsIkRlZXBMaW5raW5nUGx1Z2luIiwiRmlsdGVyUGx1Z2luIiwiT25Db21wbGV0ZVBsdWdpbiIsIlJlcXVlc3RTbmlwcGV0c1BsdWdpbiIsIlNhZmVSZW5kZXJQbHVnaW4iLCJvbmx5T0FTMyIsIk9BUzNOdWxsU2VsZWN0b3IiLCJzY2hlbWFOYW1lIiwiZmluZFNjaGVtYSIsInJlc29sdmVkU2NoZW1lcyIsImRlZk5hbWUiLCJmbG93S2V5IiwiZmxvd1ZhbCIsInRyYW5zbGF0ZWREZWYiLCJvaWRjRGF0YSIsImdyYW50IiwidHJhbnNsYXRlZFNjb3BlcyIsImN1ciIsIk9BUzNDb21wb25lbnRXcmFwRmFjdG9yeSIsInN3YWdnZXJWZXJzaW9uIiwiaXNTd2FnZ2VyMkhlbHBlciIsImlzT0FTMzAiLCJpc09BUzMwSGVscGVyIiwic2VsZWN0ZWRWYWx1ZSIsInJlc29sdmVkU2NoZW1hIiwidW5yZXNvbHZlZFNjaGVtYSIsImNhbGxiYWNrc09wZXJhdGlvbnMiLCJhbGxPcGVyYXRpb25zIiwiY2FsbGJhY2tOYW1lIiwiY2FsbGJhY2tPcGVyYXRpb25zIiwiY2FsbGJhY2tPcHMiLCJwYXRoSXRlbSIsImV4cHJlc3Npb24iLCJwYXRoSXRlbU9wZXJhdGlvbnMiLCJvcGVyYXRpb25EVE8iLCJvcGVyYXRpb25EVE9zIiwiY2FsbGJhY2tOYW1lcyIsImdldERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlIiwibWVkaWFUeXBlVmFsdWUiLCJoYXNFeGFtcGxlc0tleSIsImV4YW1wbGVTY2hlbWEiLCJoYW5kbGVGaWxlIiwic2V0SXNJbmNsdWRlZE9wdGlvbnMiLCJSZXF1ZXN0Qm9keUVkaXRvciIsInJlcXVlc3RCb2R5RGVzY3JpcHRpb24iLCJzY2hlbWFGb3JNZWRpYVR5cGUiLCJyYXdFeGFtcGxlc09mTWVkaWFUeXBlIiwic2FtcGxlRm9yTWVkaWFUeXBlIiwiaXNPYmplY3RDb250ZW50IiwiaXNCaW5hcnlGb3JtYXQiLCJpc0Jhc2U2NEZvcm1hdCIsImJvZHlQcm9wZXJ0aWVzIiwiY3VycmVudEVycm9ycyIsImluY2x1ZGVkIiwic2FtcGxlUmVxdWVzdEJvZHkiLCJ0YXJnZXRPcCIsInBhZFN0cmluZyIsImN1cnJlbnRTZXJ2ZXJWYXJpYWJsZURlZnMiLCJzaG91bGRTaG93VmFyaWFibGVVSSIsImN1cnJlbnRTZXJ2ZXJEZWZpbml0aW9uIiwiaGFuZGxlU2VydmVyQ2hhbmdlIiwiaGFuZGxlU2VydmVyVmFyaWFibGVDaGFuZ2UiLCJ2YXJpYWJsZU5hbWUiLCJuZXdWYXJpYWJsZVZhbHVlIiwiYXBwbHlEZWZhdWx0VmFsdWUiLCJvbkRvbUNoYW5nZSIsIkh0dHBBdXRoIiwic2VydmVyc1RvRGlzcGxheSIsImRpc3BsYXlpbmciLCJvcGVyYXRpb25MaW5rIiwidHJpbW1lZCIsIk1vZGVsQ29tcG9uZW50IiwiT0FTMzBDb21wb25lbnRXcmFwRmFjdG9yeSIsIlVQREFURV9TRUxFQ1RFRF9TRVJWRVIiLCJVUERBVEVfUkVRVUVTVF9CT0RZX1ZBTFVFIiwiVVBEQVRFX1JFUVVFU1RfQk9EWV9WQUxVRV9SRVRBSU5fRkxBRyIsIlVQREFURV9SRVFVRVNUX0JPRFlfSU5DTFVTSU9OIiwiVVBEQVRFX0FDVElWRV9FWEFNUExFU19NRU1CRVIiLCJVUERBVEVfUkVRVUVTVF9DT05URU5UX1RZUEUiLCJVUERBVEVfUkVTUE9OU0VfQ09OVEVOVF9UWVBFIiwiVVBEQVRFX1NFUlZFUl9WQVJJQUJMRV9WQUxVRSIsIlNFVF9SRVFVRVNUX0JPRFlfVkFMSURBVEVfRVJST1IiLCJDTEVBUl9SRVFVRVNUX0JPRFlfVkFMSURBVEVfRVJST1IiLCJDTEVBUl9SRVFVRVNUX0JPRFlfVkFMVUUiLCJjbGVhclJlcXVlc3RCb2R5VmFsdWUiLCJ1c2VyRWRpdGVkUmVxdWVzdEJvZHkiLCJrdiIsImN1cnJlbnRNZWRpYVR5cGVEZWZhdWx0Qm9keVZhbHVlIiwibG9jYXRpb25EYXRhIiwidmFyVmFsdWVzIiwic2VydmVyVmFsdWUiLCJ2YWxpZGF0ZVJlcXVlc3RCb2R5SXNSZXF1aXJlZCIsInZhbGlkYXRlUmVxdWVzdEJvZHlWYWx1ZUV4aXN0cyIsInJlcXVpcmVkS2V5cyIsInJlcXVpcmVkS2V5IiwiY3VycmVudFZhbCIsInZhbHVlS2V5VmFsIiwibWlzc2luZ0tleVZhbHVlcyIsImJvZHlWYWx1ZSIsImN1cnJlbnRNaXNzaW5nS2V5IiwiYm9keVZhbHVlcyIsInNwZWNXcmFwU2VsZWN0b3JzIiwiYXV0aFdyYXBTZWxlY3RvcnMiLCJvYXMzIiwic2VsZWN0V2ViaG9va3NPcGVyYXRpb25zIiwicGF0aEl0ZW1OYW1lcyIsInBhdGhJdGVtTmFtZSIsInNlbGVjdExpY2Vuc2VOYW1lRmllbGQiLCJzZWxlY3RMaWNlbnNlVXJsIiwic2VsZWN0Q29udGFjdE5hbWVGaWVsZCIsInNlbGVjdENvbnRhY3RVcmwiLCJzZWxlY3RDb250YWN0RW1haWxGaWVsZCIsInNlbGVjdEluZm9TdW1tYXJ5RmllbGQiLCJzZWxlY3RJbmZvRGVzY3JpcHRpb25GaWVsZCIsInNlbGVjdEluZm9UaXRsZUZpZWxkIiwic2VsZWN0SW5mb1Rlcm1zT2ZTZXJ2aWNlVXJsIiwic2VsZWN0RXh0ZXJuYWxEb2NzVXJsIiwiZXh0ZXJuYWxEb2NzRGVzYyIsInNlbGVjdEV4dGVybmFsRG9jc0Rlc2NyaXB0aW9uRmllbGQiLCJzZWxlY3RKc29uU2NoZW1hRGlhbGVjdEZpZWxkIiwianNvblNjaGVtYURpYWxlY3REZWZhdWx0Iiwic2VsZWN0SnNvblNjaGVtYURpYWxlY3REZWZhdWx0IiwiSlNPTlNjaGVtYTIwMjAxMiIsImhhbmRsZUV4cGFuZCIsIm9uRXhwYW5kIiwic2VsZWN0U2NoZW1hcyIsImhhc1NjaGVtYXMiLCJzY2hlbWFzUGF0aCIsImlzT3BlbkRlZmF1bHQiLCJpc09wZW4iLCJnZXRUaXRsZSIsImpzb25TY2hlbWEyMDIwMTIiLCJ1c2VGbiIsImlzT3BlbkFuZEV4cGFuZGVkIiwiaXNSZXNvbHZlZCIsImhhbmRsZU1vZGVsc0V4cGFuZCIsImhhbmRsZU1vZGVsc1JlZiIsImhhbmRsZUpTT05TY2hlbWEyMDIwMTJSZWYiLCJoYW5kbGVKU09OU2NoZW1hMjAyMDEyRXhwYW5kIiwic2NoZW1hUGF0aCIsIk11dHVhbFRMU0F1dGgiLCJtdXR1YWxUTFNEZWZpbml0aW9ucyIsImNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yIiwiY3JlYXRlT25seU9BUzMxU2VsZWN0b3JXcmFwcGVyIiwiY3JlYXRlU3lzdGVtU2VsZWN0b3IiLCJjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyIiwib3JpZ2luYWxDb21wb25lbnQiLCJPQVMzMUxpY2Vuc2UiLCJPQVMzMUNvbnRhY3QiLCJPQVMzMUluZm8iLCJLZXl3b3JkJHNjaGVtYSIsIktleXdvcmQkdm9jYWJ1bGFyeSIsIktleXdvcmQkaWQiLCJLZXl3b3JkJGFuY2hvciIsIktleXdvcmQkZHluYW1pY0FuY2hvciIsIktleXdvcmQkcmVmIiwiS2V5d29yZCRkeW5hbWljUmVmIiwiS2V5d29yZCRkZWZzIiwiS2V5d29yZCRjb21tZW50IiwiS2V5d29yZEFsbE9mIiwiS2V5d29yZEFueU9mIiwiS2V5d29yZE9uZU9mIiwiS2V5d29yZE5vdCIsIktleXdvcmRJZiIsIktleXdvcmRUaGVuIiwiS2V5d29yZEVsc2UiLCJLZXl3b3JkRGVwZW5kZW50U2NoZW1hcyIsIktleXdvcmRQcmVmaXhJdGVtcyIsIktleXdvcmRJdGVtcyIsIktleXdvcmRDb250YWlucyIsIktleXdvcmRQcm9wZXJ0aWVzIiwiS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzIiwiS2V5d29yZEFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiS2V5d29yZFByb3BlcnR5TmFtZXMiLCJLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtcyIsIktleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXMiLCJLZXl3b3JkVHlwZSIsIktleXdvcmRFbnVtIiwiS2V5d29yZENvbnN0IiwiS2V5d29yZENvbnN0cmFpbnQiLCJLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQiLCJLZXl3b3JkQ29udGVudFNjaGVtYSIsIktleXdvcmRUaXRsZSIsIktleXdvcmREZXNjcmlwdGlvbiIsIktleXdvcmREZWZhdWx0IiwiS2V5d29yZERlcHJlY2F0ZWQiLCJLZXl3b3JkUmVhZE9ubHkiLCJLZXl3b3JkV3JpdGVPbmx5IiwiQWNjb3JkaW9uIiwiRXhwYW5kRGVlcEJ1dHRvbiIsIkNoZXZyb25SaWdodEljb24iLCJNb2RlbFdpdGhKU09OU2NoZW1hQ29udGV4dCIsIndpdGhTY2hlbWFDb250ZXh0IiwiZGVmYXVsdCRzY2hlbWEiLCJkZWZhdWx0RXhwYW5kZWRMZXZlbHMiLCJpc0V4cGFuZGFibGUiLCJnZXRQcm9wZXJ0aWVzIiwiTW9kZWxzV3JhcHBlciIsIk1vZGVsc1dpdGhKU09OU2NoZW1hQ29udGV4dCIsIlZlcnNpb25QcmFnbWFGaWx0ZXJXcmFwcGVyIiwiT0FTMzFWZXJzaW9uUHJhZ21hRmlsdGVyIiwiT0FTMzFBdXRocyIsImlzT0FTMzFGbiIsInNlbGVjdExpY2Vuc2VVcmxGaWVsZCIsInNlbGVjdExpY2Vuc2VJZGVudGlmaWVyRmllbGQiLCJzZWxlY3RDb250YWN0VXJsRmllbGQiLCJzZWxlY3RJbmZvVGVybXNPZlNlcnZpY2VGaWVsZCIsInNlbGVjdEV4dGVybmFsRG9jc1VybEZpZWxkIiwicmF3U2NoZW1hcyIsInJlc29sdmVkU2NoZW1hcyIsIm9hczMxU2VsZWN0b3JzIiwiaGFzS2V5d29yZCIsInVzZUlzRXhwYW5kZWREZWVwbHkiLCJ1c2VDb21wb25lbnQiLCJpc0V4cGFuZGVkRGVlcGx5Iiwic2V0RXhwYW5kZWQiLCJleHBhbmRlZERlZXBseSIsInNldEV4cGFuZGVkRGVlcGx5IiwiSlNPTlNjaGVtYURlZXBFeHBhbnNpb25Db250ZXh0IiwiaGFuZGxlRXhwYW5zaW9uIiwiaGFuZGxlRXhwYW5zaW9uRGVlcCIsImV4cGFuZGVkRGVlcE5ldyIsIkV4dGVybmFsRG9jcyIsIkRlc2NyaXB0aW9uIiwiTWFya0Rvd24iLCJEZXNjcmlwdGlvbktleXdvcmQiLCJEZWZhdWx0V3JhcHBlciIsIktleXdvcmREaXNjcmltaW5hdG9yIiwiS2V5d29yZFhtbCIsIktleXdvcmRFeGFtcGxlIiwiS2V5d29yZEV4dGVybmFsRG9jcyIsImdldERlcGVuZGVudFJlcXVpcmVkIiwidXNlQ29uZmlnIiwicHJvcGVydHlTY2hlbWEiLCJQcm9wZXJ0aWVzS2V5d29yZCIsImZpbHRlcmVkUHJvcGVydGllcyIsIm1ha2VJc0V4cGFuZGFibGUiLCJ3cmFwcGVkRm5zIiwid3JhcE9BUzMxRm4iLCJzeXN0ZW1GbiIsIm5ld0ltcGwiLCJvcmlJbXBsIiwiaW1wbCIsIk9BUzMxUGx1Z2luIiwiY3JlYXRlU3lzdGVtU2VsZWN0b3JGbiIsImNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yRm4iLCJPQVMzMU1vZGVsIiwiT0FTMzFNb2RlbHMiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4YW1wbGUiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFhtbCIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGlzY3JpbWluYXRvciIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXh0ZXJuYWxEb2NzIiwiSW5mb1dyYXBwZXIiLCJMaWNlbnNlV3JhcHBlciIsIkNvbnRhY3RXcmFwcGVyIiwiQXV0aEl0ZW1XcmFwcGVyIiwiQXV0aHNXcmFwcGVyIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXNjcmlwdGlvbiIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVzY3JpcHRpb25XcmFwcGVyIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZWZhdWx0IiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZWZhdWx0V3JhcHBlciIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUHJvcGVydGllcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUHJvcGVydGllc1dyYXBwZXIiLCJkZWZpbml0aW9uc1RvQXV0aG9yaXplV3JhcHBlciIsInNlbGVjdElzT0FTMzEiLCJzZWxlY3RMaWNlbnNlIiwic2VsZWN0Q29udGFjdCIsInNlbGVjdFdlYmhvb2tzIiwiaXNPQVMzU2VsZWN0b3JXcmFwcGVyIiwic2VsZWN0TGljZW5zZVVybFdyYXBwZXIiLCJvYXMzMSIsInNlbGVjdE9BUzMxTGljZW5zZVVybCIsIm9iamVjdFNjaGVtYSIsImJvb2xlYW5TY2hlbWEiLCJKU09OU2NoZW1hQ29udGV4dCIsIkpTT05TY2hlbWFMZXZlbENvbnRleHQiLCJKU09OU2NoZW1hQ3ljbGVzQ29udGV4dCIsImZuTmFtZSIsInVzZUxldmVsIiwidXNlSXNFeHBhbmRlZCIsInVzZVJlbmRlcmVkU2NoZW1hcyIsInJlbmRlcmVkU2NoZW1hcyIsIm5leHRMZXZlbCIsImlzRW1iZWRkZWQiLCJ1c2VJc0VtYmVkZGVkIiwiaXNDaXJjdWxhciIsInVzZUlzQ2lyY3VsYXIiLCJjb25zdHJhaW50cyIsInN0cmluZ2lmeUNvbnN0cmFpbnRzIiwiZXhwYW5kZWROZXciLCJjb25zdHJhaW50IiwiQWxsT2YiLCJBbnlPZiIsIk9uZU9mIiwiTm90IiwiVGhlbiIsIkVsc2UiLCJEZXBlbmRlbnRTY2hlbWFzIiwiUHJlZml4SXRlbXMiLCJJdGVtcyIsIkNvbnRhaW5zIiwiUGF0dGVyblByb3BlcnRpZXMiLCJBZGRpdGlvbmFsUHJvcGVydGllcyIsIlByb3BlcnR5TmFtZXMiLCJVbmV2YWx1YXRlZEl0ZW1zIiwiVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzIiwiY2lyY3VsYXJTdWZmaXgiLCJFbnVtIiwic3RyaWdpZmllZEVsZW1lbnQiLCJDb25zdCIsIkNvbnN0cmFpbnQiLCJEZXBlbmRlbnRSZXF1aXJlZCIsIkNvbnRlbnRTY2hlbWEiLCJUaXRsZSIsInJlbmRlcmVkVGl0bGUiLCJEZWZhdWx0IiwiRGVwcmVjYXRlZCIsIlJlYWRPbmx5IiwiV3JpdGVPbmx5IiwiQ2hldnJvblJpZ2h0IiwicHJvY2Vzc2VkU2NoZW1hcyIsImlzQm9vbGVhbkpTT05TY2hlbWEiLCJnZXRBcnJheVR5cGUiLCJwcmVmaXhJdGVtc1R5cGVzIiwiaXRlbXNUeXBlIiwiaGFuZGxlQ29tYmluaW5nS2V5d29yZHMiLCJzdWJTY2hlbWEiLCJjb21iaW5lZFN0cmluZ3MiLCJpbmZlclR5cGUiLCJzdHJpbmdpZnlDb25zdHJhaW50UmFuZ2UiLCJoYXNNaW4iLCJoYXNNYXgiLCJzdHJpbmdpZnlDb25zdHJhaW50TXVsdGlwbGVPZiIsImZhY3RvciIsIm51bWJlclJhbmdlIiwic3RyaW5naWZ5Q29uc3RyYWludE51bWJlclJhbmdlIiwiaGFzTWluaW11bSIsImhhc01heGltdW0iLCJoYXNFeGNsdXNpdmVNaW5pbXVtIiwiaGFzRXhjbHVzaXZlTWF4aW11bSIsImlzTWluRXhjbHVzaXZlIiwiaXNNYXhFeGNsdXNpdmUiLCJzdHJpbmdSYW5nZSIsImFycmF5UmFuZ2UiLCJoYXNVbmlxdWVJdGVtcyIsImNvbnRhaW5zUmFuZ2UiLCJvYmplY3RSYW5nZSIsIndpdGhKU09OU2NoZW1hQ29udGV4dCIsIm92ZXJyaWRlcyIsIkhPQyIsImNvbnRleHRzIiwiSlNPTlNjaGVtYTIwMjAxMlBsdWdpbiIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJHNjaGVtYSIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJHZvY2FidWxhcnkiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRpZCIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGFuY2hvciIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGR5bmFtaWNBbmNob3IiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRyZWYiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRkeW5hbWljUmVmIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkZGVmcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGNvbW1lbnQiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEFsbE9mIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBbnlPZiIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkT25lT2YiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZE5vdCIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkSWYiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRoZW4iLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEVsc2UiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlcGVuZGVudFNjaGVtYXMiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByZWZpeEl0ZW1zIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRJdGVtcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29udGFpbnMiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBZGRpdGlvbmFsUHJvcGVydGllcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUHJvcGVydHlOYW1lcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRUeXBlIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFbnVtIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRDb25zdCIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29uc3RyYWludCIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZENvbnRlbnRTY2hlbWEiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRpdGxlIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXByZWNhdGVkIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRSZWFkT25seSIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkV3JpdGVPbmx5IiwiSlNPTlNjaGVtYTIwMjAxMkFjY29yZGlvbiIsIkpTT05TY2hlbWEyMDIwMTJFeHBhbmREZWVwQnV0dG9uIiwiSlNPTlNjaGVtYTIwMjAxMkNoZXZyb25SaWdodEljb24iLCJ3aXRoSlNPTlNjaGVtYTIwMjAxMkNvbnRleHQiLCJKU09OU2NoZW1hMjAyMDEyRGVlcEV4cGFuc2lvbkNvbnRleHQiLCJhcnJheVR5cGUiLCJhcHBseUFycmF5Q29uc3RyYWludHMiLCJjb25zdHJhaW5lZEFycmF5IiwiY29udGFpbnNJdGVtIiwib2JqZWN0VHlwZSIsImlzSlNPTlNjaGVtYU9iamVjdCIsImlzSlNPTlNjaGVtYSIsIlJlZ2lzdHJ5IiwiaW50MzJHZW5lcmF0b3IiLCJpbnQ2NEdlbmVyYXRvciIsImZsb2F0R2VuZXJhdG9yIiwiZG91YmxlR2VuZXJhdG9yIiwiZW1haWxHZW5lcmF0b3IiLCJpZG5FbWFpbEdlbmVyYXRvciIsImhvc3RuYW1lR2VuZXJhdG9yIiwiaWRuSG9zdG5hbWVHZW5lcmF0b3IiLCJpcHY0R2VuZXJhdG9yIiwiaXB2NkdlbmVyYXRvciIsInVyaUdlbmVyYXRvciIsInVyaVJlZmVyZW5jZUdlbmVyYXRvciIsImlyaUdlbmVyYXRvciIsImlyaVJlZmVyZW5jZUdlbmVyYXRvciIsInV1aWRHZW5lcmF0b3IiLCJ1cmlUZW1wbGF0ZUdlbmVyYXRvciIsImpzb25Qb2ludGVyR2VuZXJhdG9yIiwicmVsYXRpdmVKc29uUG9pbnRlckdlbmVyYXRvciIsImRhdGVUaW1lR2VuZXJhdG9yIiwiZGF0ZUdlbmVyYXRvciIsInRpbWVHZW5lcmF0b3IiLCJkdXJhdGlvbkdlbmVyYXRvciIsInBhc3N3b3JkR2VuZXJhdG9yIiwicmVnZXhHZW5lcmF0b3IiLCJyZWdpc3RyeSIsIkZvcm1hdFJlZ2lzdHJ5IiwiaW50MzIiLCJpbnQ2NCIsImRvdWJsZSIsImlwdjQiLCJpcHY2IiwiaXJpIiwiZm9ybWF0QVBJIiwiZ2V0RGVmYXVsdHMiLCJxdW90ZWRQcmludGFibGUiLCJ1dGY4IiwidXRmOFZhbHVlIiwiYmFzZTMyQWxwaGFiZXQiLCJwYWRkaW5nQ291bnQiLCJiYXNlMzJTdHIiLCJidWZmZXJMZW5ndGgiLCJFbmNvZGVyUmVnaXN0cnkiLCJlbmNvZGU3Yml0IiwiZW5jb2RlOGJpdCIsImVuY29kZUJpbmFyeSIsImVuY29kZVF1b3RlZFByaW50YWJsZSIsImJhc2UxNiIsImJhc2UzMiIsImJhc2U2NHVybCIsImVuY29kZXJBUEkiLCJlbmNvZGluZ05hbWUiLCJ0ZXh0L3BsYWluIiwidGV4dC9jc3MiLCJ0ZXh0L2NzdiIsInRleHQvaHRtbCIsInRleHQvY2FsZW5kYXIiLCJ0ZXh0L2phdmFzY3JpcHQiLCJ0ZXh0L3htbCIsInRleHQvKiIsImltYWdlLyoiLCJhdWRpby8qIiwidmlkZW8vKiIsImFwcGxpY2F0aW9uL2pzb24iLCJhcHBsaWNhdGlvbi9sZCtqc29uIiwiYXBwbGljYXRpb24veC1odHRwZC1waHAiLCJhcHBsaWNhdGlvbi9ydGYiLCJyYXciLCJhcHBsaWNhdGlvbi94LXNoIiwiYXBwbGljYXRpb24veGh0bWwreG1sIiwiYXBwbGljYXRpb24vKiIsIk1lZGlhVHlwZVJlZ2lzdHJ5IiwidGV4dE1lZGlhVHlwZXNHZW5lcmF0b3JzIiwiaW1hZ2VNZWRpYVR5cGVzR2VuZXJhdG9ycyIsImF1ZGlvTWVkaWFUeXBlc0dlbmVyYXRvcnMiLCJ2aWRlb01lZGlhVHlwZXNHZW5lcmF0b3JzIiwiYXBwbGljYXRpb25NZWRpYVR5cGVzR2VuZXJhdG9ycyIsIm1lZGlhVHlwZUFQSSIsIm1lZGlhVHlwZU5vUGFyYW1zIiwidG9wTGV2ZWxNZWRpYVR5cGUiLCJhcHBseVN0cmluZ0NvbnN0cmFpbnRzIiwiY29uc3RyYWluZWRTdHJpbmciLCJzdHJpbmdUeXBlIiwiZ2VuZXJhdGVkU3RyaW5nIiwiZ2VuZXJhdGVGb3JtYXQiLCJmb3JtYXRHZW5lcmF0b3IiLCJnZW5lcmF0ZU1lZGlhVHlwZSIsIm1lZGlhVHlwZUdlbmVyYXRvciIsImFwcGx5TnVtYmVyQ29uc3RyYWludHMiLCJlcHNpbG9uIiwiRVBTSUxPTiIsIm1pblZhbHVlIiwibWF4VmFsdWUiLCJjb25zdHJhaW5lZE51bWJlciIsImdlbmVyYXRlZE51bWJlciIsImdlbmVyYXRlZEludGVnZXIiLCJudW1iZXJUeXBlIiwiaW50ZWdlclR5cGUiLCJib29sZWFuIiwiYm9vbGVhblR5cGUiLCJudWxsVHlwZSIsIkFMTF9UWVBFUyIsImhhc0V4YW1wbGUiLCJleHRyYWN0RXhhbXBsZSIsImluZmVycmluZ0tleXdvcmRzIiwiZmFsbGJhY2tUeXBlIiwiaW5mZXJUeXBlRnJvbVZhbHVlIiwiZm9sZFR5cGUiLCJwaWNrZWRUeXBlIiwicmFuZG9tUGljayIsImluZmVycmluZ1R5cGVzIiwiaW5mZXJyaW5nVHlwZSIsImluZmVycmluZ1R5cGVLZXl3b3JkcyIsImluZmVycmluZ0tleXdvcmQiLCJjb25zdFR5cGUiLCJjb21iaW5lVHlwZXMiLCJjb21iaW5lZFR5cGVzIiwiZXhhbXBsZVR5cGUiLCJ0eXBlQ2FzdCIsImZyb21KU09OQm9vbGVhblNjaGVtYSIsIm1lcmdlZFR5cGUiLCJlbnN1cmVBcnJheSIsImFsbFByb3BlcnR5TmFtZXMiLCJwcm9wU2NoZW1hIiwicHJvcFNjaGVtYVR5cGUiLCJjb250YWluc1dpdGhvdXRBbnlPZiIsImFueU9mU2NoZW1hIiwiY29udGFpbnNXaXRob3V0T25lT2YiLCJvbmVPZlNjaGVtYSIsIml0ZW1zV2l0aG91dEFueU9mIiwiaXRlbXNXaXRob3V0T25lT2YiLCJjb250ZW50U2FtcGxlIiwiT3B0aW9uUmVnaXN0cnkiLCJvcHRpb25BUEkiLCJvcHRpb25OYW1lIiwib3B0aW9uVmFsdWUiLCJKU09OU2NoZW1hMjAyMDEyU2FtcGxlc1BsdWdpbiIsInNhbXBsZU9wdGlvbkFQSSIsInNhbXBsZUVuY29kZXJBUEkiLCJzYW1wbGVGb3JtYXRBUEkiLCJzYW1wbGVNZWRpYVR5cGVBUEkiLCJQcmVzZXRBcGlzIiwiT3BlbkFQSTMwUGx1Z2luIiwiT3BlbkFQSTMxUGx1Z2luIiwib3B0aW9uc0Zyb21RdWVyeSIsInVybFNlYXJjaFBhcmFtcyIsInF1ZXJ5Q29uZmlnRW5hYmxlZCIsInBhcnNlU2VhcmNoIiwib3B0aW9uc0Zyb21VUkwiLCJkZWZlcnJlZCIsImxvYWRSZW1vdGVDb25maWciLCJmZXRjaGVkT3B0aW9ucyIsIm9wdGlvbnNGcm9tUnVudGltZSIsImRvbV9pZCIsImNvbmZpZ1VybCIsImN1cmxfYmFzaCIsImN1cmxfcG93ZXJzaGVsbCIsImN1cmxfY21kIiwiZGVmYXVsdEV4cGFuZGVkIiwiQXBpc1ByZXNldCIsImFycmF5VHlwZUNhc3RlciIsImJvb2xlYW5UeXBlQ2FzdGVyIiwibnVtYmVyVHlwZUNhc3RlciIsInBhcnNlZFZhbHVlIiwib2JqZWN0VHlwZUNhc3RlciIsInN5bnRheEhpZ2hsaWdodFR5cGVDYXN0ZXIiLCJ0eXBlQ2FzdGVyIiwibnVsbGFibGVTdHJpbmdUeXBlQ2FzdGVyIiwic3RyaW5nVHlwZUNhc3RlciIsImRvbU5vZGVUeXBlQ2FzdGVyIiwiZmlsdGVyVHlwZUNhc3RlciIsInVuZGVmaW5lZFN0cmluZ1R5cGVDYXN0ZXIiLCJudWxsYWJsZUFycmF5VHlwZUNhc3RlciIsIm1hcHBpbmdzIiwib3B0aW9uUGF0aCIsImNhc3RlZCIsInByaW1hcnlOYW1lIiwic291cmNlc1dpdGhvdXRFeGNlcHRpb25zIiwic291cmNlV2l0aG91dEV4Y2VwdGlvbnMiLCJTd2FnZ2VyVUkiLCJxdWVyeU9wdGlvbnMiLCJydW50aW1lT3B0aW9ucyIsInN0b3JlT3B0aW9ucyIsInN0b3JlT3B0aW9uc0ZhY3Rvcml6YXRpb24iLCJJbmxpbmVQbHVnaW4iLCJpbmxpbmVQbHVnaW5PcHRpb25zRmFjdG9yaXphdGlvbiIsIlN5c3RlbSIsInVybE9wdGlvbnMiLCJ1cmxPcHRpb25zRmFpbGVkVG9GZXRjaCIsInF1ZXJ5U2VsZWN0b3IiLCJtZXJnZU9wdGlvbnMiLCJ0eXBlQ2FzdE9wdGlvbnMiLCJ0eXBlQ2FzdE1hcHBpbmdzIiwiYXBpcyIsIkF1dGgiLCJDb25maWdzIiwiRGVlcExpbmluZyIsIkVyciIsIkZpbHRlciIsIkljb25zIiwiSlNPTlNjaGVtYTUiLCJKU09OU2NoZW1hNVNhbXBsZXMiLCJKU09OU2NoZW1hMjAyMDEyU2FtcGxlcyIsIkxvZ3MiLCJPcGVuQVBJMzAiLCJPcGVuQVBJMzEiLCJPbkNvbXBsZXRlIiwiU3BlYyIsIlN3YWdnZXJDbGllbnQiLCJVdGlsIiwiVmlldyIsIlZpZXdMZWdhY3kiLCJEb3dubG9hZFVybCIsIlN5bnRheEhpZ2hsaWdodGluZyIsIlZlcnNpb25zIiwiU2FmZVJlbmRlciJdLCJzb3VyY2VSb290IjoiIn0=</File>
        <File Location="var/httpd/htdocs/js/thirdparty/swagger/swagger-ui-es-bundle-core.js" Permission="660" Encode="Base64">LyohIEZvciBsaWNlbnNlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgc3dhZ2dlci11aS1lcy1idW5kbGUtY29yZS5qcy5MSUNFTlNFLnR4dCAqLwppbXBvcnQqYXMgZSBmcm9tImllZWU3NTQiO2ltcG9ydCphcyB0IGZyb20iYmFzZTY0LWpzIjtpbXBvcnQqYXMgciBmcm9tInJlYWN0IjtpbXBvcnQqYXMgbiBmcm9tInJlZHV4IjtpbXBvcnQqYXMgYSBmcm9tImltbXV0YWJsZSI7aW1wb3J0KmFzIG8gZnJvbSJyZWR1eC1pbW11dGFibGUiO2ltcG9ydCphcyBzIGZyb20ic2VyaWFsaXplLWVycm9yIjtpbXBvcnQqYXMgbCBmcm9tImxvZGFzaC9tZXJnZSI7aW1wb3J0KmFzIGkgZnJvbSJsb2Rhc2gvY2FtZWxDYXNlIjtpbXBvcnQqYXMgYyBmcm9tImxvZGFzaC91cHBlckZpcnN0IjtpbXBvcnQqYXMgdSBmcm9tImxvZGFzaC9tZW1vaXplIjtpbXBvcnQqYXMgZCBmcm9tImxvZGFzaC9maW5kIjtpbXBvcnQqYXMgcCBmcm9tImxvZGFzaC9zb21lIjtpbXBvcnQqYXMgbSBmcm9tImxvZGFzaC9lcSI7aW1wb3J0KmFzIGYgZnJvbSJsb2Rhc2gvaXNGdW5jdGlvbiI7aW1wb3J0KmFzIGggZnJvbSJjc3MuZXNjYXBlIjtpbXBvcnQqYXMgZyBmcm9tInVybC1wYXJzZSI7aW1wb3J0KmFzIHkgZnJvbSJyZXNlbGVjdCI7aW1wb3J0KmFzIFMgZnJvbSJwcm9wLXR5cGVzIjtpbXBvcnQqYXMgXyBmcm9tImxvZGFzaC9vbWl0IjtpbXBvcnQqYXMgdiBmcm9tImpzLXlhbWwiO2ltcG9ydCphcyBiIGZyb20iemVuc2Nyb2xsIjtpbXBvcnQqYXMgdyBmcm9tInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXMiO2ltcG9ydCphcyBDIGZyb20ibG9kYXNoL3JlZHVjZSI7aW1wb3J0KmFzIHggZnJvbSJsb2Rhc2gvZ2V0IjtpbXBvcnQqYXMgTyBmcm9tIkBiYWJlbC9ydW50aW1lLWNvcmVqczMvaGVscGVycy9leHRlbmRzIjtpbXBvcnQqYXMgayBmcm9tImNsYXNzbmFtZXMiO2ltcG9ydCphcyBOIGZyb20icmVhY3QtY29weS10by1jbGlwYm9hcmQiO2ltcG9ydCphcyBBIGZyb20icmVhY3QtaW1tdXRhYmxlLXB1cmUtY29tcG9uZW50IjtpbXBvcnQqYXMgSSBmcm9tInJlYWN0LWRlYm91bmNlLWlucHV0IjtpbXBvcnQqYXMgaiBmcm9tImxvZGFzaC9pc1BsYWluT2JqZWN0IjtpbXBvcnQqYXMgUiBmcm9tInJhbmRleHAiO2ltcG9ydCphcyBUIGZyb20ibG9kYXNoL2lzRW1wdHkiO2ltcG9ydCphcyBQIGZyb20ibG9kYXNoL2NvbnN0YW50IjtpbXBvcnQqYXMgQiBmcm9tImxvZGFzaC9pc1N0cmluZyI7aW1wb3J0KmFzIE0gZnJvbSJsb2Rhc2gvZGVib3VuY2UiO2ltcG9ydCphcyBxIGZyb20ibG9kYXNoL3NldCI7aW1wb3J0KmFzIEwgZnJvbSJsb2Rhc2gvZnAvYXNzb2NQYXRoIjtpbXBvcnQqYXMgVSBmcm9tInN3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvZ2VuZXJpYyI7aW1wb3J0KmFzIEQgZnJvbSJzd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9zdHJhdGVnaWVzL29wZW5hcGktMiI7aW1wb3J0KmFzICQgZnJvbSJzd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9zdHJhdGVnaWVzL29wZW5hcGktMy0wIjtpbXBvcnQqYXMgViBmcm9tInN3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvb3BlbmFwaS0zLTEtYXBpZG9tIjtpbXBvcnQqYXMgSiBmcm9tInN3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyIjtpbXBvcnQqYXMgRiBmcm9tInN3YWdnZXItY2xpZW50L2VzL2V4ZWN1dGUiO2ltcG9ydCphcyB6IGZyb20ic3dhZ2dlci1jbGllbnQvZXMvaHR0cCI7aW1wb3J0KmFzIEsgZnJvbSJzd2FnZ2VyLWNsaWVudC9lcy9zdWJ0cmVlLXJlc29sdmVyIjtpbXBvcnQqYXMgVyBmcm9tInN3YWdnZXItY2xpZW50L2VzL2hlbHBlcnMiO2ltcG9ydCphcyBIIGZyb20icmVhY3QtZG9tIjtpbXBvcnQqYXMgRyBmcm9tInJlYWN0LXJlZHV4IjtpbXBvcnQqYXMgWCBmcm9tImxvZGFzaC9pZGVudGl0eSI7aW1wb3J0KmFzIFkgZnJvbSJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGlnaHQiO2ltcG9ydCphcyBRIGZyb20icmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL2phdmFzY3JpcHQiO2ltcG9ydCphcyBaIGZyb20icmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL2pzb24iO2ltcG9ydCphcyBlZSBmcm9tInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy94bWwiO2ltcG9ydCphcyB0ZSBmcm9tInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy9iYXNoIjtpbXBvcnQqYXMgcmUgZnJvbSJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL2hsanMveWFtbCI7aW1wb3J0KmFzIG5lIGZyb20icmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL2h0dHAiO2ltcG9ydCphcyBhZSBmcm9tInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy9wb3dlcnNoZWxsIjtpbXBvcnQqYXMgb2UgZnJvbSJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvYWdhdGUiO2ltcG9ydCphcyBzZSBmcm9tInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9zdHlsZXMvaGxqcy9hcnRhIjtpbXBvcnQqYXMgbGUgZnJvbSJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvbW9ub2thaSI7aW1wb3J0KmFzIGllIGZyb20icmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL3N0eWxlcy9obGpzL25vcmQiO2ltcG9ydCphcyBjZSBmcm9tInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9zdHlsZXMvaGxqcy9vYnNpZGlhbiI7aW1wb3J0KmFzIHVlIGZyb20icmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL3N0eWxlcy9obGpzL3RvbW9ycm93LW5pZ2h0IjtpbXBvcnQqYXMgZGUgZnJvbSJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvaWRlYSI7aW1wb3J0KmFzIHBlIGZyb20ianMtZmlsZS1kb3dubG9hZCI7aW1wb3J0KmFzIG1lIGZyb20ibG9kYXNoL3ppcE9iamVjdCI7aW1wb3J0KmFzIGZlIGZyb20ibG9kYXNoL3RvU3RyaW5nIjtpbXBvcnQqYXMgaGUgZnJvbSJ4bWwtYnV0LXByZXR0aWVyIjtpbXBvcnQqYXMgZ2UgZnJvbSJsb2Rhc2gvdG9Mb3dlciI7aW1wb3J0KmFzIHllIGZyb20icmVtYXJrYWJsZSI7aW1wb3J0KmFzIEVlIGZyb20icmVtYXJrYWJsZS9saW5raWZ5IjtpbXBvcnQqYXMgU2UgZnJvbSJkb21wdXJpZnkiO2ltcG9ydCphcyBfZSBmcm9tImxvZGFzaC9lc2NhcGVSZWdFeHAiO2ltcG9ydCphcyB2ZSBmcm9tImxvZGFzaC9oYXMiO2ltcG9ydCphcyBiZSBmcm9tImxvZGFzaC9mcC9zZXQiO3ZhciB3ZT17NzpmdW5jdGlvbihlKXt2YXIgdCxyPSJvYmplY3QiPT10eXBlb2YgUmVmbGVjdD9SZWZsZWN0Om51bGwsbj1yJiYiZnVuY3Rpb24iPT10eXBlb2Ygci5hcHBseT9yLmFwcGx5OmZ1bmN0aW9uIFJlZmxlY3RBcHBseShlLHQscil7cmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKGUsdCxyKX07dD1yJiYiZnVuY3Rpb24iPT10eXBlb2Ygci5vd25LZXlzP3Iub3duS2V5czpPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2Z1bmN0aW9uIFJlZmxlY3RPd25LZXlzKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhlKS5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKSl9OmZ1bmN0aW9uIFJlZmxlY3RPd25LZXlzKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhlKX07dmFyIGE9TnVtYmVyLmlzTmFOfHxmdW5jdGlvbiBOdW1iZXJJc05hTihlKXtyZXR1cm4gZSE9ZX07ZnVuY3Rpb24gRXZlbnRFbWl0dGVyKCl7RXZlbnRFbWl0dGVyLmluaXQuY2FsbCh0aGlzKX1lLmV4cG9ydHM9RXZlbnRFbWl0dGVyLGUuZXhwb3J0cy5vbmNlPWZ1bmN0aW9uIG9uY2UoZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbil7ZnVuY3Rpb24gZXJyb3JMaXN0ZW5lcihyKXtlLnJlbW92ZUxpc3RlbmVyKHQscmVzb2x2ZXIpLG4ocil9ZnVuY3Rpb24gcmVzb2x2ZXIoKXsiZnVuY3Rpb24iPT10eXBlb2YgZS5yZW1vdmVMaXN0ZW5lciYmZS5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLGVycm9yTGlzdGVuZXIpLHIoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKX1ldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZSx0LHJlc29sdmVyLHtvbmNlOiEwfSksImVycm9yIiE9PXQmJmZ1bmN0aW9uIGFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyKGUsdCxyKXsiZnVuY3Rpb24iPT10eXBlb2YgZS5vbiYmZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGUsImVycm9yIix0LHIpfShlLGVycm9yTGlzdGVuZXIse29uY2U6ITB9KX0pKX0sRXZlbnRFbWl0dGVyLkV2ZW50RW1pdHRlcj1FdmVudEVtaXR0ZXIsRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fZXZlbnRzPXZvaWQgMCxFdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHNDb3VudD0wLEV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycz12b2lkIDA7dmFyIG89MTA7ZnVuY3Rpb24gY2hlY2tMaXN0ZW5lcihlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgImxpc3RlbmVyIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24uIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgZSl9ZnVuY3Rpb24gX2dldE1heExpc3RlbmVycyhlKXtyZXR1cm4gdm9pZCAwPT09ZS5fbWF4TGlzdGVuZXJzP0V2ZW50RW1pdHRlci5kZWZhdWx0TWF4TGlzdGVuZXJzOmUuX21heExpc3RlbmVyc31mdW5jdGlvbiBfYWRkTGlzdGVuZXIoZSx0LHIsbil7dmFyIGEsbyxzO2lmKGNoZWNrTGlzdGVuZXIociksdm9pZCAwPT09KG89ZS5fZXZlbnRzKT8obz1lLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSxlLl9ldmVudHNDb3VudD0wKToodm9pZCAwIT09by5uZXdMaXN0ZW5lciYmKGUuZW1pdCgibmV3TGlzdGVuZXIiLHQsci5saXN0ZW5lcj9yLmxpc3RlbmVyOnIpLG89ZS5fZXZlbnRzKSxzPW9bdF0pLHZvaWQgMD09PXMpcz1vW3RdPXIsKytlLl9ldmVudHNDb3VudDtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBzP3M9b1t0XT1uP1tyLHNdOltzLHJdOm4/cy51bnNoaWZ0KHIpOnMucHVzaChyKSwoYT1fZ2V0TWF4TGlzdGVuZXJzKGUpKT4wJiZzLmxlbmd0aD5hJiYhcy53YXJuZWQpe3Mud2FybmVkPSEwO3ZhciBsPW5ldyBFcnJvcigiUG9zc2libGUgRXZlbnRFbWl0dGVyIG1lbW9yeSBsZWFrIGRldGVjdGVkLiAiK3MubGVuZ3RoKyIgIitTdHJpbmcodCkrIiBsaXN0ZW5lcnMgYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvIGluY3JlYXNlIGxpbWl0Iik7bC5uYW1lPSJNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmciLGwuZW1pdHRlcj1lLGwudHlwZT10LGwuY291bnQ9cy5sZW5ndGgsZnVuY3Rpb24gUHJvY2Vzc0VtaXRXYXJuaW5nKGUpe2NvbnNvbGUmJmNvbnNvbGUud2FybiYmY29uc29sZS53YXJuKGUpfShsKX1yZXR1cm4gZX1mdW5jdGlvbiBvbmNlV3JhcHBlcigpe2lmKCF0aGlzLmZpcmVkKXJldHVybiB0aGlzLnRhcmdldC5yZW1vdmVMaXN0ZW5lcih0aGlzLnR5cGUsdGhpcy53cmFwRm4pLHRoaXMuZmlyZWQ9ITAsMD09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5saXN0ZW5lci5jYWxsKHRoaXMudGFyZ2V0KTp0aGlzLmxpc3RlbmVyLmFwcGx5KHRoaXMudGFyZ2V0LGFyZ3VtZW50cyl9ZnVuY3Rpb24gX29uY2VXcmFwKGUsdCxyKXt2YXIgbj17ZmlyZWQ6ITEsd3JhcEZuOnZvaWQgMCx0YXJnZXQ6ZSx0eXBlOnQsbGlzdGVuZXI6cn0sYT1vbmNlV3JhcHBlci5iaW5kKG4pO3JldHVybiBhLmxpc3RlbmVyPXIsbi53cmFwRm49YSxhfWZ1bmN0aW9uIF9saXN0ZW5lcnMoZSx0LHIpe3ZhciBuPWUuX2V2ZW50cztpZih2b2lkIDA9PT1uKXJldHVybltdO3ZhciBhPW5bdF07cmV0dXJuIHZvaWQgMD09PWE/W106ImZ1bmN0aW9uIj09dHlwZW9mIGE/cj9bYS5saXN0ZW5lcnx8YV06W2FdOnI/ZnVuY3Rpb24gdW53cmFwTGlzdGVuZXJzKGUpe2Zvcih2YXIgdD1uZXcgQXJyYXkoZS5sZW5ndGgpLHI9MDtyPHQubGVuZ3RoOysrcil0W3JdPWVbcl0ubGlzdGVuZXJ8fGVbcl07cmV0dXJuIHR9KGEpOmFycmF5Q2xvbmUoYSxhLmxlbmd0aCl9ZnVuY3Rpb24gbGlzdGVuZXJDb3VudChlKXt2YXIgdD10aGlzLl9ldmVudHM7aWYodm9pZCAwIT09dCl7dmFyIHI9dFtlXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgcilyZXR1cm4gMTtpZih2b2lkIDAhPT1yKXJldHVybiByLmxlbmd0aH1yZXR1cm4gMH1mdW5jdGlvbiBhcnJheUNsb25lKGUsdCl7Zm9yKHZhciByPW5ldyBBcnJheSh0KSxuPTA7bjx0OysrbilyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGUsdCxyLG4pe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLm9uKW4ub25jZT9lLm9uY2UodCxyKTplLm9uKHQscik7ZWxzZXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZS5hZGRFdmVudExpc3RlbmVyKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAiZW1pdHRlciIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEV2ZW50RW1pdHRlci4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBlKTtlLmFkZEV2ZW50TGlzdGVuZXIodCwoZnVuY3Rpb24gd3JhcExpc3RlbmVyKGEpe24ub25jZSYmZS5yZW1vdmVFdmVudExpc3RlbmVyKHQsd3JhcExpc3RlbmVyKSxyKGEpfSkpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoRXZlbnRFbWl0dGVyLCJkZWZhdWx0TWF4TGlzdGVuZXJzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gb30sc2V0OmZ1bmN0aW9uKGUpe2lmKCJudW1iZXIiIT10eXBlb2YgZXx8ZTwwfHxhKGUpKXRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgImRlZmF1bHRNYXhMaXN0ZW5lcnMiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcrZSsiLiIpO289ZX19KSxFdmVudEVtaXR0ZXIuaW5pdD1mdW5jdGlvbigpe3ZvaWQgMCE9PXRoaXMuX2V2ZW50cyYmdGhpcy5fZXZlbnRzIT09T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLl9ldmVudHN8fCh0aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9ldmVudHNDb3VudD0wKSx0aGlzLl9tYXhMaXN0ZW5lcnM9dGhpcy5fbWF4TGlzdGVuZXJzfHx2b2lkIDB9LEV2ZW50RW1pdHRlci5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzPWZ1bmN0aW9uIHNldE1heExpc3RlbmVycyhlKXtpZigibnVtYmVyIiE9dHlwZW9mIGV8fGU8MHx8YShlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mICJuIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnK2UrIi4iKTtyZXR1cm4gdGhpcy5fbWF4TGlzdGVuZXJzPWUsdGhpc30sRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5nZXRNYXhMaXN0ZW5lcnM9ZnVuY3Rpb24gZ2V0TWF4TGlzdGVuZXJzKCl7cmV0dXJuIF9nZXRNYXhMaXN0ZW5lcnModGhpcyl9LEV2ZW50RW1pdHRlci5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbiBlbWl0KGUpe2Zvcih2YXIgdD1bXSxyPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0LnB1c2goYXJndW1lbnRzW3JdKTt2YXIgYT0iZXJyb3IiPT09ZSxvPXRoaXMuX2V2ZW50cztpZih2b2lkIDAhPT1vKWE9YSYmdm9pZCAwPT09by5lcnJvcjtlbHNlIGlmKCFhKXJldHVybiExO2lmKGEpe3ZhciBzO2lmKHQubGVuZ3RoPjAmJihzPXRbMF0pLHMgaW5zdGFuY2VvZiBFcnJvcil0aHJvdyBzO3ZhciBsPW5ldyBFcnJvcigiVW5oYW5kbGVkIGVycm9yLiIrKHM/IiAoIitzLm1lc3NhZ2UrIikiOiIiKSk7dGhyb3cgbC5jb250ZXh0PXMsbH12YXIgaT1vW2VdO2lmKHZvaWQgMD09PWkpcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGkpbihpLHRoaXMsdCk7ZWxzZXt2YXIgYz1pLmxlbmd0aCx1PWFycmF5Q2xvbmUoaSxjKTtmb3Iocj0wO3I8YzsrK3Ipbih1W3JdLHRoaXMsdCl9cmV0dXJuITB9LEV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXI9ZnVuY3Rpb24gYWRkTGlzdGVuZXIoZSx0KXtyZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsZSx0LCExKX0sRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbj1FdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyLEV2ZW50RW1pdHRlci5wcm90b3R5cGUucHJlcGVuZExpc3RlbmVyPWZ1bmN0aW9uIHByZXBlbmRMaXN0ZW5lcihlLHQpe3JldHVybiBfYWRkTGlzdGVuZXIodGhpcyxlLHQsITApfSxFdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24gb25jZShlLHQpe3JldHVybiBjaGVja0xpc3RlbmVyKHQpLHRoaXMub24oZSxfb25jZVdyYXAodGhpcyxlLHQpKSx0aGlzfSxFdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRPbmNlTGlzdGVuZXI9ZnVuY3Rpb24gcHJlcGVuZE9uY2VMaXN0ZW5lcihlLHQpe3JldHVybiBjaGVja0xpc3RlbmVyKHQpLHRoaXMucHJlcGVuZExpc3RlbmVyKGUsX29uY2VXcmFwKHRoaXMsZSx0KSksdGhpc30sRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj1mdW5jdGlvbiByZW1vdmVMaXN0ZW5lcihlLHQpe3ZhciByLG4sYSxvLHM7aWYoY2hlY2tMaXN0ZW5lcih0KSx2b2lkIDA9PT0obj10aGlzLl9ldmVudHMpKXJldHVybiB0aGlzO2lmKHZvaWQgMD09PShyPW5bZV0pKXJldHVybiB0aGlzO2lmKHI9PT10fHxyLmxpc3RlbmVyPT09dCkwPT0tLXRoaXMuX2V2ZW50c0NvdW50P3RoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpOihkZWxldGUgbltlXSxuLnJlbW92ZUxpc3RlbmVyJiZ0aGlzLmVtaXQoInJlbW92ZUxpc3RlbmVyIixlLHIubGlzdGVuZXJ8fHQpKTtlbHNlIGlmKCJmdW5jdGlvbiIhPXR5cGVvZiByKXtmb3IoYT0tMSxvPXIubGVuZ3RoLTE7bz49MDtvLS0paWYocltvXT09PXR8fHJbb10ubGlzdGVuZXI9PT10KXtzPXJbb10ubGlzdGVuZXIsYT1vO2JyZWFrfWlmKGE8MClyZXR1cm4gdGhpczswPT09YT9yLnNoaWZ0KCk6ZnVuY3Rpb24gc3BsaWNlT25lKGUsdCl7Zm9yKDt0KzE8ZS5sZW5ndGg7dCsrKWVbdF09ZVt0KzFdO2UucG9wKCl9KHIsYSksMT09PXIubGVuZ3RoJiYobltlXT1yWzBdKSx2b2lkIDAhPT1uLnJlbW92ZUxpc3RlbmVyJiZ0aGlzLmVtaXQoInJlbW92ZUxpc3RlbmVyIixlLHN8fHQpfXJldHVybiB0aGlzfSxFdmVudEVtaXR0ZXIucHJvdG90eXBlLm9mZj1FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyLEV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uIHJlbW92ZUFsbExpc3RlbmVycyhlKXt2YXIgdCxyLG47aWYodm9pZCAwPT09KHI9dGhpcy5fZXZlbnRzKSlyZXR1cm4gdGhpcztpZih2b2lkIDA9PT1yLnJlbW92ZUxpc3RlbmVyKXJldHVybiAwPT09YXJndW1lbnRzLmxlbmd0aD8odGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5fZXZlbnRzQ291bnQ9MCk6dm9pZCAwIT09cltlXSYmKDA9PS0tdGhpcy5fZXZlbnRzQ291bnQ/dGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCk6ZGVsZXRlIHJbZV0pLHRoaXM7aWYoMD09PWFyZ3VtZW50cy5sZW5ndGgpe3ZhciBhLG89T2JqZWN0LmtleXMocik7Zm9yKG49MDtuPG8ubGVuZ3RoOysrbikicmVtb3ZlTGlzdGVuZXIiIT09KGE9b1tuXSkmJnRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGEpO3JldHVybiB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygicmVtb3ZlTGlzdGVuZXIiKSx0aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9ldmVudHNDb3VudD0wLHRoaXN9aWYoImZ1bmN0aW9uIj09dHlwZW9mKHQ9cltlXSkpdGhpcy5yZW1vdmVMaXN0ZW5lcihlLHQpO2Vsc2UgaWYodm9pZCAwIT09dClmb3Iobj10Lmxlbmd0aC0xO24+PTA7bi0tKXRoaXMucmVtb3ZlTGlzdGVuZXIoZSx0W25dKTtyZXR1cm4gdGhpc30sRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lcnM9ZnVuY3Rpb24gbGlzdGVuZXJzKGUpe3JldHVybiBfbGlzdGVuZXJzKHRoaXMsZSwhMCl9LEV2ZW50RW1pdHRlci5wcm90b3R5cGUucmF3TGlzdGVuZXJzPWZ1bmN0aW9uIHJhd0xpc3RlbmVycyhlKXtyZXR1cm4gX2xpc3RlbmVycyh0aGlzLGUsITEpfSxFdmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudD1mdW5jdGlvbihlLHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlLmxpc3RlbmVyQ291bnQ/ZS5saXN0ZW5lckNvdW50KHQpOmxpc3RlbmVyQ291bnQuY2FsbChlLHQpfSxFdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVyQ291bnQ9bGlzdGVuZXJDb3VudCxFdmVudEVtaXR0ZXIucHJvdG90eXBlLmV2ZW50TmFtZXM9ZnVuY3Rpb24gZXZlbnROYW1lcygpe3JldHVybiB0aGlzLl9ldmVudHNDb3VudD4wP3QodGhpcy5fZXZlbnRzKTpbXX19LDQ4OmZ1bmN0aW9uKGUpe3ZhciB0PXt9O2Z1bmN0aW9uIGNyZWF0ZUVycm9yVHlwZShlLHIsbil7bnx8KG49RXJyb3IpO3ZhciBhPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIE5vZGVFcnJvcih0LG4sYSl7cmV0dXJuIGUuY2FsbCh0aGlzLGZ1bmN0aW9uIGdldE1lc3NhZ2UoZSx0LG4pe3JldHVybiJzdHJpbmciPT10eXBlb2Ygcj9yOnIoZSx0LG4pfSh0LG4sYSkpfHx0aGlzfXJldHVybiBmdW5jdGlvbiBfaW5oZXJpdHNMb29zZShlLHQpe2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5fX3Byb3RvX189dH0oTm9kZUVycm9yLGUpLE5vZGVFcnJvcn0obik7YS5wcm90b3R5cGUubmFtZT1uLm5hbWUsYS5wcm90b3R5cGUuY29kZT1lLHRbZV09YX1mdW5jdGlvbiBvbmVPZihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpe3ZhciByPWUubGVuZ3RoO3JldHVybiBlPWUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gU3RyaW5nKGUpfSkpLHI+Mj8ib25lIG9mICIuY29uY2F0KHQsIiAiKS5jb25jYXQoZS5zbGljZSgwLHItMSkuam9pbigiLCAiKSwiLCBvciAiKStlW3ItMV06Mj09PXI/Im9uZSBvZiAiLmNvbmNhdCh0LCIgIikuY29uY2F0KGVbMF0sIiBvciAiKS5jb25jYXQoZVsxXSk6Im9mICIuY29uY2F0KHQsIiAiKS5jb25jYXQoZVswXSl9cmV0dXJuIm9mICIuY29uY2F0KHQsIiAiKS5jb25jYXQoU3RyaW5nKGUpKX1jcmVhdGVFcnJvclR5cGUoIkVSUl9JTlZBTElEX09QVF9WQUxVRSIsKGZ1bmN0aW9uKGUsdCl7cmV0dXJuJ1RoZSB2YWx1ZSAiJyt0KyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAiJytlKyciJ30pLFR5cGVFcnJvciksY3JlYXRlRXJyb3JUeXBlKCJFUlJfSU5WQUxJRF9BUkdfVFlQRSIsKGZ1bmN0aW9uKGUsdCxyKXt2YXIgbixhO2lmKCJzdHJpbmciPT10eXBlb2YgdCYmZnVuY3Rpb24gc3RhcnRzV2l0aChlLHQscil7cmV0dXJuIGUuc3Vic3RyKCFyfHxyPDA/MDorcix0Lmxlbmd0aCk9PT10fSh0LCJub3QgIik/KG49Im11c3Qgbm90IGJlIix0PXQucmVwbGFjZSgvXm5vdCAvLCIiKSk6bj0ibXVzdCBiZSIsZnVuY3Rpb24gZW5kc1dpdGgoZSx0LHIpe3JldHVybih2b2lkIDA9PT1yfHxyPmUubGVuZ3RoKSYmKHI9ZS5sZW5ndGgpLGUuc3Vic3RyaW5nKHItdC5sZW5ndGgscik9PT10fShlLCIgYXJndW1lbnQiKSlhPSJUaGUgIi5jb25jYXQoZSwiICIpLmNvbmNhdChuLCIgIikuY29uY2F0KG9uZU9mKHQsInR5cGUiKSk7ZWxzZXt2YXIgbz1mdW5jdGlvbiBpbmNsdWRlcyhlLHQscil7cmV0dXJuIm51bWJlciIhPXR5cGVvZiByJiYocj0wKSwhKHIrdC5sZW5ndGg+ZS5sZW5ndGgpJiYtMSE9PWUuaW5kZXhPZih0LHIpfShlLCIuIik/InByb3BlcnR5IjoiYXJndW1lbnQiO2E9J1RoZSAiJy5jb25jYXQoZSwnIiAnKS5jb25jYXQobywiICIpLmNvbmNhdChuLCIgIikuY29uY2F0KG9uZU9mKHQsInR5cGUiKSl9cmV0dXJuIGErPSIuIFJlY2VpdmVkIHR5cGUgIi5jb25jYXQodHlwZW9mIHIpfSksVHlwZUVycm9yKSxjcmVhdGVFcnJvclR5cGUoIkVSUl9TVFJFQU1fUFVTSF9BRlRFUl9FT0YiLCJzdHJlYW0ucHVzaCgpIGFmdGVyIEVPRiIpLGNyZWF0ZUVycm9yVHlwZSgiRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQiLChmdW5jdGlvbihlKXtyZXR1cm4iVGhlICIrZSsiIG1ldGhvZCBpcyBub3QgaW1wbGVtZW50ZWQifSkpLGNyZWF0ZUVycm9yVHlwZSgiRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0UiLCJQcmVtYXR1cmUgY2xvc2UiKSxjcmVhdGVFcnJvclR5cGUoIkVSUl9TVFJFQU1fREVTVFJPWUVEIiwoZnVuY3Rpb24oZSl7cmV0dXJuIkNhbm5vdCBjYWxsICIrZSsiIGFmdGVyIGEgc3RyZWFtIHdhcyBkZXN0cm95ZWQifSkpLGNyZWF0ZUVycm9yVHlwZSgiRVJSX01VTFRJUExFX0NBTExCQUNLIiwiQ2FsbGJhY2sgY2FsbGVkIG11bHRpcGxlIHRpbWVzIiksY3JlYXRlRXJyb3JUeXBlKCJFUlJfU1RSRUFNX0NBTk5PVF9QSVBFIiwiQ2Fubm90IHBpcGUsIG5vdCByZWFkYWJsZSIpLGNyZWF0ZUVycm9yVHlwZSgiRVJSX1NUUkVBTV9XUklURV9BRlRFUl9FTkQiLCJ3cml0ZSBhZnRlciBlbmQiKSxjcmVhdGVFcnJvclR5cGUoIkVSUl9TVFJFQU1fTlVMTF9WQUxVRVMiLCJNYXkgbm90IHdyaXRlIG51bGwgdmFsdWVzIHRvIHN0cmVhbSIsVHlwZUVycm9yKSxjcmVhdGVFcnJvclR5cGUoIkVSUl9VTktOT1dOX0VOQ09ESU5HIiwoZnVuY3Rpb24oZSl7cmV0dXJuIlVua25vd24gZW5jb2Rpbmc6ICIrZX0pLFR5cGVFcnJvciksY3JlYXRlRXJyb3JUeXBlKCJFUlJfU1RSRUFNX1VOU0hJRlRfQUZURVJfRU5EX0VWRU5UIiwic3RyZWFtLnVuc2hpZnQoKSBhZnRlciBlbmQgZXZlbnQiKSxlLmV4cG9ydHMuRj10fSwxMDc6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNjk4KSxhPXIoMzkyKSxvPXIoODYxKS5CdWZmZXIscz1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XSxsPW5ldyBBcnJheSg2NCk7ZnVuY3Rpb24gU2hhMjU2KCl7dGhpcy5pbml0KCksdGhpcy5fdz1sLGEuY2FsbCh0aGlzLDY0LDU2KX1mdW5jdGlvbiBjaChlLHQscil7cmV0dXJuIHJeZSYodF5yKX1mdW5jdGlvbiBtYWooZSx0LHIpe3JldHVybiBlJnR8ciYoZXx0KX1mdW5jdGlvbiBzaWdtYTAoZSl7cmV0dXJuKGU+Pj4yfGU8PDMwKV4oZT4+PjEzfGU8PDE5KV4oZT4+PjIyfGU8PDEwKX1mdW5jdGlvbiBzaWdtYTEoZSl7cmV0dXJuKGU+Pj42fGU8PDI2KV4oZT4+PjExfGU8PDIxKV4oZT4+PjI1fGU8PDcpfWZ1bmN0aW9uIGdhbW1hMChlKXtyZXR1cm4oZT4+Pjd8ZTw8MjUpXihlPj4+MTh8ZTw8MTQpXmU+Pj4zfWZ1bmN0aW9uIGdhbW1hMShlKXtyZXR1cm4oZT4+PjE3fGU8PDE1KV4oZT4+PjE5fGU8PDEzKV5lPj4+MTB9bihTaGEyNTYsYSksU2hhMjU2LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2E9MTc3OTAzMzcwMyx0aGlzLl9iPTMxNDQxMzQyNzcsdGhpcy5fYz0xMDEzOTA0MjQyLHRoaXMuX2Q9Mjc3MzQ4MDc2Mix0aGlzLl9lPTEzNTk4OTMxMTksdGhpcy5fZj0yNjAwODIyOTI0LHRoaXMuX2c9NTI4NzM0NjM1LHRoaXMuX2g9MTU0MTQ1OTIyNSx0aGlzfSxTaGEyNTYucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMuX3cscj0wfHRoaXMuX2Esbj0wfHRoaXMuX2IsYT0wfHRoaXMuX2Msbz0wfHRoaXMuX2QsbD0wfHRoaXMuX2UsaT0wfHRoaXMuX2YsYz0wfHRoaXMuX2csdT0wfHRoaXMuX2gsZD0wO2Q8MTY7KytkKXRbZF09ZS5yZWFkSW50MzJCRSg0KmQpO2Zvcig7ZDw2NDsrK2QpdFtkXT1nYW1tYTEodFtkLTJdKSt0W2QtN10rZ2FtbWEwKHRbZC0xNV0pK3RbZC0xNl18MDtmb3IodmFyIHA9MDtwPDY0OysrcCl7dmFyIG09dStzaWdtYTEobCkrY2gobCxpLGMpK3NbcF0rdFtwXXwwLGY9c2lnbWEwKHIpK21haihyLG4sYSl8MDt1PWMsYz1pLGk9bCxsPW8rbXwwLG89YSxhPW4sbj1yLHI9bStmfDB9dGhpcy5fYT1yK3RoaXMuX2F8MCx0aGlzLl9iPW4rdGhpcy5fYnwwLHRoaXMuX2M9YSt0aGlzLl9jfDAsdGhpcy5fZD1vK3RoaXMuX2R8MCx0aGlzLl9lPWwrdGhpcy5fZXwwLHRoaXMuX2Y9aSt0aGlzLl9mfDAsdGhpcy5fZz1jK3RoaXMuX2d8MCx0aGlzLl9oPXUrdGhpcy5faHwwfSxTaGEyNTYucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIGU9by5hbGxvY1Vuc2FmZSgzMik7cmV0dXJuIGUud3JpdGVJbnQzMkJFKHRoaXMuX2EsMCksZS53cml0ZUludDMyQkUodGhpcy5fYiw0KSxlLndyaXRlSW50MzJCRSh0aGlzLl9jLDgpLGUud3JpdGVJbnQzMkJFKHRoaXMuX2QsMTIpLGUud3JpdGVJbnQzMkJFKHRoaXMuX2UsMTYpLGUud3JpdGVJbnQzMkJFKHRoaXMuX2YsMjApLGUud3JpdGVJbnQzMkJFKHRoaXMuX2csMjQpLGUud3JpdGVJbnQzMkJFKHRoaXMuX2gsMjgpLGV9LGUuZXhwb3J0cz1TaGEyNTZ9LDEyMzpmdW5jdGlvbihlLHQscil7dmFyIG49cig2MDYpLGE9cig0OTkpLG89cigzMTApLlN0cmVhbTtmdW5jdGlvbiByZXNvbHZlKGUsdCxyKXt2YXIgbixvPWZ1bmN0aW9uIGNyZWF0ZV9pbmRlbnQoZSx0KXtyZXR1cm4gbmV3IEFycmF5KHR8fDApLmpvaW4oZXx8IiIpfSh0LHI9cnx8MCkscz1lO2lmKCJvYmplY3QiPT10eXBlb2YgZSYmKChzPWVbbj1PYmplY3Qua2V5cyhlKVswXV0pJiZzLl9lbGVtKSlyZXR1cm4gcy5fZWxlbS5uYW1lPW4scy5fZWxlbS5pY291bnQ9cixzLl9lbGVtLmluZGVudD10LHMuX2VsZW0uaW5kZW50cz1vLHMuX2VsZW0uaW50ZXJydXB0PXMscy5fZWxlbTt2YXIgbCxpPVtdLGM9W107ZnVuY3Rpb24gZ2V0X2F0dHJpYnV0ZXMoZSl7T2JqZWN0LmtleXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7aS5wdXNoKGZ1bmN0aW9uIGF0dHJpYnV0ZShlLHQpe3JldHVybiBlKyc9IicrYSh0KSsnIid9KHQsZVt0XSkpfSkpfXN3aXRjaCh0eXBlb2Ygcyl7Y2FzZSJvYmplY3QiOmlmKG51bGw9PT1zKWJyZWFrO3MuX2F0dHImJmdldF9hdHRyaWJ1dGVzKHMuX2F0dHIpLHMuX2NkYXRhJiZjLnB1c2goKCI8IVtDREFUQVsiK3MuX2NkYXRhKS5yZXBsYWNlKC9cXVxdPi9nLCJdXV1dPjwhW0NEQVRBWz4iKSsiXV0+Iikscy5mb3JFYWNoJiYobD0hMSxjLnB1c2goIiIpLHMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7Im9iamVjdCI9PXR5cGVvZiBlPyJfYXR0ciI9PU9iamVjdC5rZXlzKGUpWzBdP2dldF9hdHRyaWJ1dGVzKGUuX2F0dHIpOmMucHVzaChyZXNvbHZlKGUsdCxyKzEpKTooYy5wb3AoKSxsPSEwLGMucHVzaChhKGUpKSl9KSksbHx8Yy5wdXNoKCIiKSk7YnJlYWs7ZGVmYXVsdDpjLnB1c2goYShzKSl9cmV0dXJue25hbWU6bixpbnRlcnJ1cHQ6ITEsYXR0cmlidXRlczppLGNvbnRlbnQ6YyxpY291bnQ6cixpbmRlbnRzOm8saW5kZW50OnR9fWZ1bmN0aW9uIGZvcm1hdChlLHQscil7aWYoIm9iamVjdCIhPXR5cGVvZiB0KXJldHVybiBlKCExLHQpO3ZhciBuPXQuaW50ZXJydXB0PzE6dC5jb250ZW50Lmxlbmd0aDtmdW5jdGlvbiBwcm9jZWVkKCl7Zm9yKDt0LmNvbnRlbnQubGVuZ3RoOyl7dmFyIGE9dC5jb250ZW50LnNoaWZ0KCk7aWYodm9pZCAwIT09YSl7aWYoaW50ZXJydXB0KGEpKXJldHVybjtmb3JtYXQoZSxhKX19ZSghMSwobj4xP3QuaW5kZW50czoiIikrKHQubmFtZT8iPC8iK3QubmFtZSsiPiI6IiIpKyh0LmluZGVudCYmIXI/IlxuIjoiIikpLHImJnIoKX1mdW5jdGlvbiBpbnRlcnJ1cHQodCl7cmV0dXJuISF0LmludGVycnVwdCYmKHQuaW50ZXJydXB0LmFwcGVuZD1lLHQuaW50ZXJydXB0LmVuZD1wcm9jZWVkLHQuaW50ZXJydXB0PSExLGUoITApLCEwKX1pZihlKCExLHQuaW5kZW50cysodC5uYW1lPyI8Iit0Lm5hbWU6IiIpKyh0LmF0dHJpYnV0ZXMubGVuZ3RoPyIgIit0LmF0dHJpYnV0ZXMuam9pbigiICIpOiIiKSsobj90Lm5hbWU/Ij4iOiIiOnQubmFtZT8iLz4iOiIiKSsodC5pbmRlbnQmJm4+MT8iXG4iOiIiKSksIW4pcmV0dXJuIGUoITEsdC5pbmRlbnQ/IlxuIjoiIik7aW50ZXJydXB0KHQpfHxwcm9jZWVkKCl9ZS5leHBvcnRzPWZ1bmN0aW9uIHhtbChlLHQpeyJvYmplY3QiIT10eXBlb2YgdCYmKHQ9e2luZGVudDp0fSk7dmFyIHI9dC5zdHJlYW0/bmV3IG86bnVsbCxhPSIiLHM9ITEsbD10LmluZGVudD8hMD09PXQuaW5kZW50PyIgICAgIjp0LmluZGVudDoiIixpPSEwO2Z1bmN0aW9uIGRlbGF5KGUpe2k/bi5uZXh0VGljayhlKTplKCl9ZnVuY3Rpb24gYXBwZW5kKGUsdCl7aWYodm9pZCAwIT09dCYmKGErPXQpLGUmJiFzJiYocj1yfHxuZXcgbyxzPSEwKSxlJiZzKXt2YXIgbj1hO2RlbGF5KChmdW5jdGlvbigpe3IuZW1pdCgiZGF0YSIsbil9KSksYT0iIn19ZnVuY3Rpb24gYWRkKGUsdCl7Zm9ybWF0KGFwcGVuZCxyZXNvbHZlKGUsbCxsPzE6MCksdCl9ZnVuY3Rpb24gZW5kKCl7aWYocil7dmFyIGU9YTtkZWxheSgoZnVuY3Rpb24oKXtyLmVtaXQoImRhdGEiLGUpLHIuZW1pdCgiZW5kIiksci5yZWFkYWJsZT0hMSxyLmVtaXQoImNsb3NlIil9KSl9fXJldHVybiBkZWxheSgoZnVuY3Rpb24oKXtpPSExfSkpLHQuZGVjbGFyYXRpb24mJmZ1bmN0aW9uIGFkZFhtbERlY2xhcmF0aW9uKGUpe3ZhciB0PXt2ZXJzaW9uOiIxLjAiLGVuY29kaW5nOmUuZW5jb2Rpbmd8fCJVVEYtOCJ9O2Uuc3RhbmRhbG9uZSYmKHQuc3RhbmRhbG9uZT1lLnN0YW5kYWxvbmUpLGFkZCh7Ij94bWwiOntfYXR0cjp0fX0pLGE9YS5yZXBsYWNlKCIvPiIsIj8+Iil9KHQuZGVjbGFyYXRpb24pLGUmJmUuZm9yRWFjaD9lLmZvckVhY2goKGZ1bmN0aW9uKHQscil7dmFyIG47cisxPT09ZS5sZW5ndGgmJihuPWVuZCksYWRkKHQsbil9KSk6YWRkKGUsZW5kKSxyPyhyLnJlYWRhYmxlPSEwLHIpOmF9LGUuZXhwb3J0cy5lbGVtZW50PWUuZXhwb3J0cy5FbGVtZW50PWZ1bmN0aW9uIGVsZW1lbnQoKXt2YXIgZT17X2VsZW06cmVzb2x2ZShBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKSxwdXNoOmZ1bmN0aW9uKGUpe2lmKCF0aGlzLmFwcGVuZCl0aHJvdyBuZXcgRXJyb3IoIm5vdCBhc3NpZ25lZCB0byBhIHBhcmVudCEiKTt2YXIgdD10aGlzLHI9dGhpcy5fZWxlbS5pbmRlbnQ7Zm9ybWF0KHRoaXMuYXBwZW5kLHJlc29sdmUoZSxyLHRoaXMuX2VsZW0uaWNvdW50KyhyPzE6MCkpLChmdW5jdGlvbigpe3QuYXBwZW5kKCEwKX0pKX0sY2xvc2U6ZnVuY3Rpb24oZSl7dm9pZCAwIT09ZSYmdGhpcy5wdXNoKGUpLHRoaXMuZW5kJiZ0aGlzLmVuZCgpfX07cmV0dXJuIGV9fSwxNDE6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoODYxKS5CdWZmZXIsYT1uLmlzRW5jb2Rpbmd8fGZ1bmN0aW9uKGUpe3N3aXRjaCgoZT0iIitlKSYmZS50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImJpbmFyeSI6Y2FzZSJiYXNlNjQiOmNhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpjYXNlInJhdyI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19O2Z1bmN0aW9uIFN0cmluZ0RlY29kZXIoZSl7dmFyIHQ7c3dpdGNoKHRoaXMuZW5jb2Rpbmc9ZnVuY3Rpb24gbm9ybWFsaXplRW5jb2RpbmcoZSl7dmFyIHQ9ZnVuY3Rpb24gX25vcm1hbGl6ZUVuY29kaW5nKGUpe2lmKCFlKXJldHVybiJ1dGY4Ijtmb3IodmFyIHQ7Oylzd2l0Y2goZSl7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4idXRmOCI7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiJ1dGYxNmxlIjtjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiJsYXRpbjEiO2Nhc2UiYmFzZTY0IjpjYXNlImFzY2lpIjpjYXNlImhleCI6cmV0dXJuIGU7ZGVmYXVsdDppZih0KXJldHVybjtlPSgiIitlKS50b0xvd2VyQ2FzZSgpLHQ9ITB9fShlKTtpZigic3RyaW5nIiE9dHlwZW9mIHQmJihuLmlzRW5jb2Rpbmc9PT1hfHwhYShlKSkpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK2UpO3JldHVybiB0fHxlfShlKSx0aGlzLmVuY29kaW5nKXtjYXNlInV0ZjE2bGUiOnRoaXMudGV4dD11dGYxNlRleHQsdGhpcy5lbmQ9dXRmMTZFbmQsdD00O2JyZWFrO2Nhc2UidXRmOCI6dGhpcy5maWxsTGFzdD11dGY4RmlsbExhc3QsdD00O2JyZWFrO2Nhc2UiYmFzZTY0Ijp0aGlzLnRleHQ9YmFzZTY0VGV4dCx0aGlzLmVuZD1iYXNlNjRFbmQsdD0zO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHRoaXMud3JpdGU9c2ltcGxlV3JpdGUsdm9pZCh0aGlzLmVuZD1zaW1wbGVFbmQpfXRoaXMubGFzdE5lZWQ9MCx0aGlzLmxhc3RUb3RhbD0wLHRoaXMubGFzdENoYXI9bi5hbGxvY1Vuc2FmZSh0KX1mdW5jdGlvbiB1dGY4Q2hlY2tCeXRlKGUpe3JldHVybiBlPD0xMjc/MDplPj41PT02PzI6ZT4+ND09MTQ/MzplPj4zPT0zMD80OmU+PjY9PTI/LTE6LTJ9ZnVuY3Rpb24gdXRmOEZpbGxMYXN0KGUpe3ZhciB0PXRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQscj1mdW5jdGlvbiB1dGY4Q2hlY2tFeHRyYUJ5dGVzKGUsdCxyKXtpZigxMjghPSgxOTImdFswXSkpcmV0dXJuIGUubGFzdE5lZWQ9MCwi77+9IjtpZihlLmxhc3ROZWVkPjEmJnQubGVuZ3RoPjEpe2lmKDEyOCE9KDE5MiZ0WzFdKSlyZXR1cm4gZS5sYXN0TmVlZD0xLCLvv70iO2lmKGUubGFzdE5lZWQ+MiYmdC5sZW5ndGg+MiYmMTI4IT0oMTkyJnRbMl0pKXJldHVybiBlLmxhc3ROZWVkPTIsIu+/vSJ9fSh0aGlzLGUpO3JldHVybiB2b2lkIDAhPT1yP3I6dGhpcy5sYXN0TmVlZDw9ZS5sZW5ndGg/KGUuY29weSh0aGlzLmxhc3RDaGFyLHQsMCx0aGlzLmxhc3ROZWVkKSx0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcsMCx0aGlzLmxhc3RUb3RhbCkpOihlLmNvcHkodGhpcy5sYXN0Q2hhcix0LDAsZS5sZW5ndGgpLHZvaWQodGhpcy5sYXN0TmVlZC09ZS5sZW5ndGgpKX1mdW5jdGlvbiB1dGYxNlRleHQoZSx0KXtpZigoZS5sZW5ndGgtdCklMj09MCl7dmFyIHI9ZS50b1N0cmluZygidXRmMTZsZSIsdCk7aWYocil7dmFyIG49ci5jaGFyQ29kZUF0KHIubGVuZ3RoLTEpO2lmKG4+PTU1Mjk2JiZuPD01NjMxOSlyZXR1cm4gdGhpcy5sYXN0TmVlZD0yLHRoaXMubGFzdFRvdGFsPTQsdGhpcy5sYXN0Q2hhclswXT1lW2UubGVuZ3RoLTJdLHRoaXMubGFzdENoYXJbMV09ZVtlLmxlbmd0aC0xXSxyLnNsaWNlKDAsLTEpfXJldHVybiByfXJldHVybiB0aGlzLmxhc3ROZWVkPTEsdGhpcy5sYXN0VG90YWw9Mix0aGlzLmxhc3RDaGFyWzBdPWVbZS5sZW5ndGgtMV0sZS50b1N0cmluZygidXRmMTZsZSIsdCxlLmxlbmd0aC0xKX1mdW5jdGlvbiB1dGYxNkVuZChlKXt2YXIgdD1lJiZlLmxlbmd0aD90aGlzLndyaXRlKGUpOiIiO2lmKHRoaXMubGFzdE5lZWQpe3ZhciByPXRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQ7cmV0dXJuIHQrdGhpcy5sYXN0Q2hhci50b1N0cmluZygidXRmMTZsZSIsMCxyKX1yZXR1cm4gdH1mdW5jdGlvbiBiYXNlNjRUZXh0KGUsdCl7dmFyIHI9KGUubGVuZ3RoLXQpJTM7cmV0dXJuIDA9PT1yP2UudG9TdHJpbmcoImJhc2U2NCIsdCk6KHRoaXMubGFzdE5lZWQ9My1yLHRoaXMubGFzdFRvdGFsPTMsMT09PXI/dGhpcy5sYXN0Q2hhclswXT1lW2UubGVuZ3RoLTFdOih0aGlzLmxhc3RDaGFyWzBdPWVbZS5sZW5ndGgtMl0sdGhpcy5sYXN0Q2hhclsxXT1lW2UubGVuZ3RoLTFdKSxlLnRvU3RyaW5nKCJiYXNlNjQiLHQsZS5sZW5ndGgtcikpfWZ1bmN0aW9uIGJhc2U2NEVuZChlKXt2YXIgdD1lJiZlLmxlbmd0aD90aGlzLndyaXRlKGUpOiIiO3JldHVybiB0aGlzLmxhc3ROZWVkP3QrdGhpcy5sYXN0Q2hhci50b1N0cmluZygiYmFzZTY0IiwwLDMtdGhpcy5sYXN0TmVlZCk6dH1mdW5jdGlvbiBzaW1wbGVXcml0ZShlKXtyZXR1cm4gZS50b1N0cmluZyh0aGlzLmVuY29kaW5nKX1mdW5jdGlvbiBzaW1wbGVFbmQoZSl7cmV0dXJuIGUmJmUubGVuZ3RoP3RoaXMud3JpdGUoZSk6IiJ9dC5JPVN0cmluZ0RlY29kZXIsU3RyaW5nRGVjb2Rlci5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybiIiO3ZhciB0LHI7aWYodGhpcy5sYXN0TmVlZCl7aWYodm9pZCAwPT09KHQ9dGhpcy5maWxsTGFzdChlKSkpcmV0dXJuIiI7cj10aGlzLmxhc3ROZWVkLHRoaXMubGFzdE5lZWQ9MH1lbHNlIHI9MDtyZXR1cm4gcjxlLmxlbmd0aD90P3QrdGhpcy50ZXh0KGUscik6dGhpcy50ZXh0KGUscik6dHx8IiJ9LFN0cmluZ0RlY29kZXIucHJvdG90eXBlLmVuZD1mdW5jdGlvbiB1dGY4RW5kKGUpe3ZhciB0PWUmJmUubGVuZ3RoP3RoaXMud3JpdGUoZSk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/dCsi77+9Ijp0fSxTdHJpbmdEZWNvZGVyLnByb3RvdHlwZS50ZXh0PWZ1bmN0aW9uIHV0ZjhUZXh0KGUsdCl7dmFyIHI9ZnVuY3Rpb24gdXRmOENoZWNrSW5jb21wbGV0ZShlLHQscil7dmFyIG49dC5sZW5ndGgtMTtpZihuPHIpcmV0dXJuIDA7dmFyIGE9dXRmOENoZWNrQnl0ZSh0W25dKTtpZihhPj0wKXJldHVybiBhPjAmJihlLmxhc3ROZWVkPWEtMSksYTtpZigtLW48cnx8LTI9PT1hKXJldHVybiAwO2lmKGE9dXRmOENoZWNrQnl0ZSh0W25dKSxhPj0wKXJldHVybiBhPjAmJihlLmxhc3ROZWVkPWEtMiksYTtpZigtLW48cnx8LTI9PT1hKXJldHVybiAwO2lmKGE9dXRmOENoZWNrQnl0ZSh0W25dKSxhPj0wKXJldHVybiBhPjAmJigyPT09YT9hPTA6ZS5sYXN0TmVlZD1hLTMpLGE7cmV0dXJuIDB9KHRoaXMsZSx0KTtpZighdGhpcy5sYXN0TmVlZClyZXR1cm4gZS50b1N0cmluZygidXRmOCIsdCk7dGhpcy5sYXN0VG90YWw9cjt2YXIgbj1lLmxlbmd0aC0oci10aGlzLmxhc3ROZWVkKTtyZXR1cm4gZS5jb3B5KHRoaXMubGFzdENoYXIsMCxuKSxlLnRvU3RyaW5nKCJ1dGY4Iix0LG4pfSxTdHJpbmdEZWNvZGVyLnByb3RvdHlwZS5maWxsTGFzdD1mdW5jdGlvbihlKXtpZih0aGlzLmxhc3ROZWVkPD1lLmxlbmd0aClyZXR1cm4gZS5jb3B5KHRoaXMubGFzdENoYXIsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLHRoaXMubGFzdE5lZWQpLHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGluZywwLHRoaXMubGFzdFRvdGFsKTtlLmNvcHkodGhpcy5sYXN0Q2hhcix0aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLDAsZS5sZW5ndGgpLHRoaXMubGFzdE5lZWQtPWUubGVuZ3RofX0sMTU3OmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiUmVhZGFibGUuZnJvbSBpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBicm93c2VyIil9fSwyMDk6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNjA2KSxhPTY1NTM2LG89NDI5NDk2NzI5NTt2YXIgcz1yKDg2MSkuQnVmZmVyLGw9ci5nLmNyeXB0b3x8ci5nLm1zQ3J5cHRvO2wmJmwuZ2V0UmFuZG9tVmFsdWVzP2UuZXhwb3J0cz1mdW5jdGlvbiByYW5kb21CeXRlcyhlLHQpe2lmKGU+byl0aHJvdyBuZXcgUmFuZ2VFcnJvcigicmVxdWVzdGVkIHRvbyBtYW55IHJhbmRvbSBieXRlcyIpO3ZhciByPXMuYWxsb2NVbnNhZmUoZSk7aWYoZT4wKWlmKGU+YSlmb3IodmFyIGk9MDtpPGU7aSs9YSlsLmdldFJhbmRvbVZhbHVlcyhyLnNsaWNlKGksaSthKSk7ZWxzZSBsLmdldFJhbmRvbVZhbHVlcyhyKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdClyZXR1cm4gbi5uZXh0VGljaygoZnVuY3Rpb24oKXt0KG51bGwscil9KSk7cmV0dXJuIHJ9OmUuZXhwb3J0cz1mdW5jdGlvbiBvbGRCcm93c2VyKCl7dGhyb3cgbmV3IEVycm9yKCJTZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyLlxuVXNlIENocm9tZSwgRmlyZWZveCBvciBJbnRlcm5ldCBFeHBsb3JlciAxMSIpfX0sMjM4OmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDQ4KS5GLkVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFO2Z1bmN0aW9uIG5vb3AoKXt9ZS5leHBvcnRzPWZ1bmN0aW9uIGVvcyhlLHQscil7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQpcmV0dXJuIGVvcyhlLG51bGwsdCk7dHx8KHQ9e30pLHI9ZnVuY3Rpb24gb25jZShlKXt2YXIgdD0hMTtyZXR1cm4gZnVuY3Rpb24oKXtpZighdCl7dD0hMDtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aCxuPW5ldyBBcnJheShyKSxhPTA7YTxyO2ErKyluW2FdPWFyZ3VtZW50c1thXTtlLmFwcGx5KHRoaXMsbil9fX0ocnx8bm9vcCk7dmFyIGE9dC5yZWFkYWJsZXx8ITEhPT10LnJlYWRhYmxlJiZlLnJlYWRhYmxlLG89dC53cml0YWJsZXx8ITEhPT10LndyaXRhYmxlJiZlLndyaXRhYmxlLHM9ZnVuY3Rpb24gb25sZWdhY3lmaW5pc2goKXtlLndyaXRhYmxlfHxpKCl9LGw9ZS5fd3JpdGFibGVTdGF0ZSYmZS5fd3JpdGFibGVTdGF0ZS5maW5pc2hlZCxpPWZ1bmN0aW9uIG9uZmluaXNoKCl7bz0hMSxsPSEwLGF8fHIuY2FsbChlKX0sYz1lLl9yZWFkYWJsZVN0YXRlJiZlLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0ZWQsdT1mdW5jdGlvbiBvbmVuZCgpe2E9ITEsYz0hMCxvfHxyLmNhbGwoZSl9LGQ9ZnVuY3Rpb24gb25lcnJvcih0KXtyLmNhbGwoZSx0KX0scD1mdW5jdGlvbiBvbmNsb3NlKCl7dmFyIHQ7cmV0dXJuIGEmJiFjPyhlLl9yZWFkYWJsZVN0YXRlJiZlLl9yZWFkYWJsZVN0YXRlLmVuZGVkfHwodD1uZXcgbiksci5jYWxsKGUsdCkpOm8mJiFsPyhlLl93cml0YWJsZVN0YXRlJiZlLl93cml0YWJsZVN0YXRlLmVuZGVkfHwodD1uZXcgbiksci5jYWxsKGUsdCkpOnZvaWQgMH0sbT1mdW5jdGlvbiBvbnJlcXVlc3QoKXtlLnJlcS5vbigiZmluaXNoIixpKX07cmV0dXJuIWZ1bmN0aW9uIGlzUmVxdWVzdChlKXtyZXR1cm4gZS5zZXRIZWFkZXImJiJmdW5jdGlvbiI9PXR5cGVvZiBlLmFib3J0fShlKT9vJiYhZS5fd3JpdGFibGVTdGF0ZSYmKGUub24oImVuZCIscyksZS5vbigiY2xvc2UiLHMpKTooZS5vbigiY29tcGxldGUiLGkpLGUub24oImFib3J0IixwKSxlLnJlcT9tKCk6ZS5vbigicmVxdWVzdCIsbSkpLGUub24oImVuZCIsdSksZS5vbigiZmluaXNoIixpKSwhMSE9PXQuZXJyb3ImJmUub24oImVycm9yIixkKSxlLm9uKCJjbG9zZSIscCksZnVuY3Rpb24oKXtlLnJlbW92ZUxpc3RlbmVyKCJjb21wbGV0ZSIsaSksZS5yZW1vdmVMaXN0ZW5lcigiYWJvcnQiLHApLGUucmVtb3ZlTGlzdGVuZXIoInJlcXVlc3QiLG0pLGUucmVxJiZlLnJlcS5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixpKSxlLnJlbW92ZUxpc3RlbmVyKCJlbmQiLHMpLGUucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixzKSxlLnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLGkpLGUucmVtb3ZlTGlzdGVuZXIoImVuZCIsdSksZS5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLGQpLGUucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixwKX19fSwyODc6ZnVuY3Rpb24oZSx0LHIpe2NvbnN0IG49cig5ODcpLGE9cigzNjIpLG89ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbC5mb3I/U3ltYm9sLmZvcigibm9kZWpzLnV0aWwuaW5zcGVjdC5jdXN0b20iKTpudWxsO3QuQnVmZmVyPUJ1ZmZlcix0LlNsb3dCdWZmZXI9ZnVuY3Rpb24gU2xvd0J1ZmZlcihlKXsrZSE9ZSYmKGU9MCk7cmV0dXJuIEJ1ZmZlci5hbGxvYygrZSl9LHQuSU5TUEVDVF9NQVhfQllURVM9NTA7Y29uc3Qgcz0yMTQ3NDgzNjQ3O2Z1bmN0aW9uIGNyZWF0ZUJ1ZmZlcihlKXtpZihlPnMpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJytlKyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKTtjb25zdCB0PW5ldyBVaW50OEFycmF5KGUpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YodCxCdWZmZXIucHJvdG90eXBlKSx0fWZ1bmN0aW9uIEJ1ZmZlcihlLHQscil7aWYoIm51bWJlciI9PXR5cGVvZiBlKXtpZigic3RyaW5nIj09dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJzdHJpbmciIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcuIFJlY2VpdmVkIHR5cGUgbnVtYmVyJyk7cmV0dXJuIGFsbG9jVW5zYWZlKGUpfXJldHVybiBmcm9tKGUsdCxyKX1mdW5jdGlvbiBmcm9tKGUsdCxyKXtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIGZ1bmN0aW9uIGZyb21TdHJpbmcoZSx0KXsic3RyaW5nIj09dHlwZW9mIHQmJiIiIT09dHx8KHQ9InV0ZjgiKTtpZighQnVmZmVyLmlzRW5jb2RpbmcodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIit0KTtjb25zdCByPTB8Ynl0ZUxlbmd0aChlLHQpO2xldCBuPWNyZWF0ZUJ1ZmZlcihyKTtjb25zdCBhPW4ud3JpdGUoZSx0KTthIT09ciYmKG49bi5zbGljZSgwLGEpKTtyZXR1cm4gbn0oZSx0KTtpZihBcnJheUJ1ZmZlci5pc1ZpZXcoZSkpcmV0dXJuIGZ1bmN0aW9uIGZyb21BcnJheVZpZXcoZSl7aWYoaXNJbnN0YW5jZShlLFVpbnQ4QXJyYXkpKXtjb25zdCB0PW5ldyBVaW50OEFycmF5KGUpO3JldHVybiBmcm9tQXJyYXlCdWZmZXIodC5idWZmZXIsdC5ieXRlT2Zmc2V0LHQuYnl0ZUxlbmd0aCl9cmV0dXJuIGZyb21BcnJheUxpa2UoZSl9KGUpO2lmKG51bGw9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgIit0eXBlb2YgZSk7aWYoaXNJbnN0YW5jZShlLEFycmF5QnVmZmVyKXx8ZSYmaXNJbnN0YW5jZShlLmJ1ZmZlcixBcnJheUJ1ZmZlcikpcmV0dXJuIGZyb21BcnJheUJ1ZmZlcihlLHQscik7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlciYmKGlzSW5zdGFuY2UoZSxTaGFyZWRBcnJheUJ1ZmZlcil8fGUmJmlzSW5zdGFuY2UoZS5idWZmZXIsU2hhcmVkQXJyYXlCdWZmZXIpKSlyZXR1cm4gZnJvbUFycmF5QnVmZmVyKGUsdCxyKTtpZigibnVtYmVyIj09dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJ2YWx1ZSIgYXJndW1lbnQgbXVzdCBub3QgYmUgb2YgdHlwZSBudW1iZXIuIFJlY2VpdmVkIHR5cGUgbnVtYmVyJyk7Y29uc3Qgbj1lLnZhbHVlT2YmJmUudmFsdWVPZigpO2lmKG51bGwhPW4mJm4hPT1lKXJldHVybiBCdWZmZXIuZnJvbShuLHQscik7Y29uc3QgYT1mdW5jdGlvbiBmcm9tT2JqZWN0KGUpe2lmKEJ1ZmZlci5pc0J1ZmZlcihlKSl7Y29uc3QgdD0wfGNoZWNrZWQoZS5sZW5ndGgpLHI9Y3JlYXRlQnVmZmVyKHQpO3JldHVybiAwPT09ci5sZW5ndGh8fGUuY29weShyLDAsMCx0KSxyfWlmKHZvaWQgMCE9PWUubGVuZ3RoKXJldHVybiJudW1iZXIiIT10eXBlb2YgZS5sZW5ndGh8fG51bWJlcklzTmFOKGUubGVuZ3RoKT9jcmVhdGVCdWZmZXIoMCk6ZnJvbUFycmF5TGlrZShlKTtpZigiQnVmZmVyIj09PWUudHlwZSYmQXJyYXkuaXNBcnJheShlLmRhdGEpKXJldHVybiBmcm9tQXJyYXlMaWtlKGUuZGF0YSl9KGUpO2lmKGEpcmV0dXJuIGE7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPVN5bWJvbC50b1ByaW1pdGl2ZSYmImZ1bmN0aW9uIj09dHlwZW9mIGVbU3ltYm9sLnRvUHJpbWl0aXZlXSlyZXR1cm4gQnVmZmVyLmZyb20oZVtTeW1ib2wudG9QcmltaXRpdmVdKCJzdHJpbmciKSx0LHIpO3Rocm93IG5ldyBUeXBlRXJyb3IoIlRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBBcnJheUJ1ZmZlciwgQXJyYXksIG9yIEFycmF5LWxpa2UgT2JqZWN0LiBSZWNlaXZlZCB0eXBlICIrdHlwZW9mIGUpfWZ1bmN0aW9uIGFzc2VydFNpemUoZSl7aWYoIm51bWJlciIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoJyJzaXplIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgbnVtYmVyJyk7aWYoZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgIicrZSsnIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gInNpemUiJyl9ZnVuY3Rpb24gYWxsb2NVbnNhZmUoZSl7cmV0dXJuIGFzc2VydFNpemUoZSksY3JlYXRlQnVmZmVyKGU8MD8wOjB8Y2hlY2tlZChlKSl9ZnVuY3Rpb24gZnJvbUFycmF5TGlrZShlKXtjb25zdCB0PWUubGVuZ3RoPDA/MDowfGNoZWNrZWQoZS5sZW5ndGgpLHI9Y3JlYXRlQnVmZmVyKHQpO2ZvcihsZXQgbj0wO248dDtuKz0xKXJbbl09MjU1JmVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gZnJvbUFycmF5QnVmZmVyKGUsdCxyKXtpZih0PDB8fGUuYnl0ZUxlbmd0aDx0KXRocm93IG5ldyBSYW5nZUVycm9yKCcib2Zmc2V0IiBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHMnKTtpZihlLmJ5dGVMZW5ndGg8dCsocnx8MCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJsZW5ndGgiIGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kcycpO2xldCBuO3JldHVybiBuPXZvaWQgMD09PXQmJnZvaWQgMD09PXI/bmV3IFVpbnQ4QXJyYXkoZSk6dm9pZCAwPT09cj9uZXcgVWludDhBcnJheShlLHQpOm5ldyBVaW50OEFycmF5KGUsdCxyKSxPYmplY3Quc2V0UHJvdG90eXBlT2YobixCdWZmZXIucHJvdG90eXBlKSxufWZ1bmN0aW9uIGNoZWNrZWQoZSl7aWYoZT49cyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXR0ZW1wdCB0byBhbGxvY2F0ZSBCdWZmZXIgbGFyZ2VyIHRoYW4gbWF4aW11bSBzaXplOiAweCIrcy50b1N0cmluZygxNikrIiBieXRlcyIpO3JldHVybiAwfGV9ZnVuY3Rpb24gYnl0ZUxlbmd0aChlLHQpe2lmKEJ1ZmZlci5pc0J1ZmZlcihlKSlyZXR1cm4gZS5sZW5ndGg7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KGUpfHxpc0luc3RhbmNlKGUsQXJyYXlCdWZmZXIpKXJldHVybiBlLmJ5dGVMZW5ndGg7aWYoInN0cmluZyIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAic3RyaW5nIiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBvciBBcnJheUJ1ZmZlci4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBlKTtjb25zdCByPWUubGVuZ3RoLG49YXJndW1lbnRzLmxlbmd0aD4yJiYhMD09PWFyZ3VtZW50c1syXTtpZighbiYmMD09PXIpcmV0dXJuIDA7bGV0IGE9ITE7Zm9yKDs7KXN3aXRjaCh0KXtjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiByO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIHV0ZjhUb0J5dGVzKGUpLmxlbmd0aDtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIDIqcjtjYXNlImhleCI6cmV0dXJuIHI+Pj4xO2Nhc2UiYmFzZTY0IjpyZXR1cm4gYmFzZTY0VG9CeXRlcyhlKS5sZW5ndGg7ZGVmYXVsdDppZihhKXJldHVybiBuPy0xOnV0ZjhUb0J5dGVzKGUpLmxlbmd0aDt0PSgiIit0KS50b0xvd2VyQ2FzZSgpLGE9ITB9fWZ1bmN0aW9uIHNsb3dUb1N0cmluZyhlLHQscil7bGV0IG49ITE7aWYoKHZvaWQgMD09PXR8fHQ8MCkmJih0PTApLHQ+dGhpcy5sZW5ndGgpcmV0dXJuIiI7aWYoKHZvaWQgMD09PXJ8fHI+dGhpcy5sZW5ndGgpJiYocj10aGlzLmxlbmd0aCkscjw9MClyZXR1cm4iIjtpZigocj4+Pj0wKTw9KHQ+Pj49MCkpcmV0dXJuIiI7Zm9yKGV8fChlPSJ1dGY4Iik7Oylzd2l0Y2goZSl7Y2FzZSJoZXgiOnJldHVybiBoZXhTbGljZSh0aGlzLHQscik7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4gdXRmOFNsaWNlKHRoaXMsdCxyKTtjYXNlImFzY2lpIjpyZXR1cm4gYXNjaWlTbGljZSh0aGlzLHQscik7Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gbGF0aW4xU2xpY2UodGhpcyx0LHIpO2Nhc2UiYmFzZTY0IjpyZXR1cm4gYmFzZTY0U2xpY2UodGhpcyx0LHIpO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gdXRmMTZsZVNsaWNlKHRoaXMsdCxyKTtkZWZhdWx0OmlmKG4pdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitlKTtlPShlKyIiKS50b0xvd2VyQ2FzZSgpLG49ITB9fWZ1bmN0aW9uIHN3YXAoZSx0LHIpe2NvbnN0IG49ZVt0XTtlW3RdPWVbcl0sZVtyXT1ufWZ1bmN0aW9uIGJpZGlyZWN0aW9uYWxJbmRleE9mKGUsdCxyLG4sYSl7aWYoMD09PWUubGVuZ3RoKXJldHVybi0xO2lmKCJzdHJpbmciPT10eXBlb2Ygcj8obj1yLHI9MCk6cj4yMTQ3NDgzNjQ3P3I9MjE0NzQ4MzY0NzpyPC0yMTQ3NDgzNjQ4JiYocj0tMjE0NzQ4MzY0OCksbnVtYmVySXNOYU4ocj0rcikmJihyPWE/MDplLmxlbmd0aC0xKSxyPDAmJihyPWUubGVuZ3RoK3IpLHI+PWUubGVuZ3RoKXtpZihhKXJldHVybi0xO3I9ZS5sZW5ndGgtMX1lbHNlIGlmKHI8MCl7aWYoIWEpcmV0dXJuLTE7cj0wfWlmKCJzdHJpbmciPT10eXBlb2YgdCYmKHQ9QnVmZmVyLmZyb20odCxuKSksQnVmZmVyLmlzQnVmZmVyKHQpKXJldHVybiAwPT09dC5sZW5ndGg/LTE6YXJyYXlJbmRleE9mKGUsdCxyLG4sYSk7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiB0Jj0yNTUsImZ1bmN0aW9uIj09dHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/YT9VaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoZSx0LHIpOlVpbnQ4QXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwoZSx0LHIpOmFycmF5SW5kZXhPZihlLFt0XSxyLG4sYSk7dGhyb3cgbmV3IFR5cGVFcnJvcigidmFsIG11c3QgYmUgc3RyaW5nLCBudW1iZXIgb3IgQnVmZmVyIil9ZnVuY3Rpb24gYXJyYXlJbmRleE9mKGUsdCxyLG4sYSl7bGV0IG8scz0xLGw9ZS5sZW5ndGgsaT10Lmxlbmd0aDtpZih2b2lkIDAhPT1uJiYoInVjczIiPT09KG49U3RyaW5nKG4pLnRvTG93ZXJDYXNlKCkpfHwidWNzLTIiPT09bnx8InV0ZjE2bGUiPT09bnx8InV0Zi0xNmxlIj09PW4pKXtpZihlLmxlbmd0aDwyfHx0Lmxlbmd0aDwyKXJldHVybi0xO3M9MixsLz0yLGkvPTIsci89Mn1mdW5jdGlvbiByZWFkKGUsdCl7cmV0dXJuIDE9PT1zP2VbdF06ZS5yZWFkVUludDE2QkUodCpzKX1pZihhKXtsZXQgbj0tMTtmb3Iobz1yO288bDtvKyspaWYocmVhZChlLG8pPT09cmVhZCh0LC0xPT09bj8wOm8tbikpe2lmKC0xPT09biYmKG49byksby1uKzE9PT1pKXJldHVybiBuKnN9ZWxzZS0xIT09biYmKG8tPW8tbiksbj0tMX1lbHNlIGZvcihyK2k+bCYmKHI9bC1pKSxvPXI7bz49MDtvLS0pe2xldCByPSEwO2ZvcihsZXQgbj0wO248aTtuKyspaWYocmVhZChlLG8rbikhPT1yZWFkKHQsbikpe3I9ITE7YnJlYWt9aWYocilyZXR1cm4gb31yZXR1cm4tMX1mdW5jdGlvbiBoZXhXcml0ZShlLHQscixuKXtyPU51bWJlcihyKXx8MDtjb25zdCBhPWUubGVuZ3RoLXI7bj8obj1OdW1iZXIobikpPmEmJihuPWEpOm49YTtjb25zdCBvPXQubGVuZ3RoO2xldCBzO2ZvcihuPm8vMiYmKG49by8yKSxzPTA7czxuOysrcyl7Y29uc3Qgbj1wYXJzZUludCh0LnN1YnN0cigyKnMsMiksMTYpO2lmKG51bWJlcklzTmFOKG4pKXJldHVybiBzO2VbcitzXT1ufXJldHVybiBzfWZ1bmN0aW9uIHV0ZjhXcml0ZShlLHQscixuKXtyZXR1cm4gYmxpdEJ1ZmZlcih1dGY4VG9CeXRlcyh0LGUubGVuZ3RoLXIpLGUscixuKX1mdW5jdGlvbiBhc2NpaVdyaXRlKGUsdCxyLG4pe3JldHVybiBibGl0QnVmZmVyKGZ1bmN0aW9uIGFzY2lpVG9CeXRlcyhlKXtjb25zdCB0PVtdO2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7KytyKXQucHVzaCgyNTUmZS5jaGFyQ29kZUF0KHIpKTtyZXR1cm4gdH0odCksZSxyLG4pfWZ1bmN0aW9uIGJhc2U2NFdyaXRlKGUsdCxyLG4pe3JldHVybiBibGl0QnVmZmVyKGJhc2U2NFRvQnl0ZXModCksZSxyLG4pfWZ1bmN0aW9uIHVjczJXcml0ZShlLHQscixuKXtyZXR1cm4gYmxpdEJ1ZmZlcihmdW5jdGlvbiB1dGYxNmxlVG9CeXRlcyhlLHQpe2xldCByLG4sYTtjb25zdCBvPVtdO2ZvcihsZXQgcz0wO3M8ZS5sZW5ndGgmJiEoKHQtPTIpPDApOysrcylyPWUuY2hhckNvZGVBdChzKSxuPXI+PjgsYT1yJTI1NixvLnB1c2goYSksby5wdXNoKG4pO3JldHVybiBvfSh0LGUubGVuZ3RoLXIpLGUscixuKX1mdW5jdGlvbiBiYXNlNjRTbGljZShlLHQscil7cmV0dXJuIDA9PT10JiZyPT09ZS5sZW5ndGg/bi5mcm9tQnl0ZUFycmF5KGUpOm4uZnJvbUJ5dGVBcnJheShlLnNsaWNlKHQscikpfWZ1bmN0aW9uIHV0ZjhTbGljZShlLHQscil7cj1NYXRoLm1pbihlLmxlbmd0aCxyKTtjb25zdCBuPVtdO2xldCBhPXQ7Zm9yKDthPHI7KXtjb25zdCB0PWVbYV07bGV0IG89bnVsbCxzPXQ+MjM5PzQ6dD4yMjM/Mzp0PjE5MT8yOjE7aWYoYStzPD1yKXtsZXQgcixuLGwsaTtzd2l0Y2gocyl7Y2FzZSAxOnQ8MTI4JiYobz10KTticmVhaztjYXNlIDI6cj1lW2ErMV0sMTI4PT0oMTkyJnIpJiYoaT0oMzEmdCk8PDZ8NjMmcixpPjEyNyYmKG89aSkpO2JyZWFrO2Nhc2UgMzpyPWVbYSsxXSxuPWVbYSsyXSwxMjg9PSgxOTImcikmJjEyOD09KDE5MiZuKSYmKGk9KDE1JnQpPDwxMnwoNjMmcik8PDZ8NjMmbixpPjIwNDcmJihpPDU1Mjk2fHxpPjU3MzQzKSYmKG89aSkpO2JyZWFrO2Nhc2UgNDpyPWVbYSsxXSxuPWVbYSsyXSxsPWVbYSszXSwxMjg9PSgxOTImcikmJjEyOD09KDE5MiZuKSYmMTI4PT0oMTkyJmwpJiYoaT0oMTUmdCk8PDE4fCg2MyZyKTw8MTJ8KDYzJm4pPDw2fDYzJmwsaT42NTUzNSYmaTwxMTE0MTEyJiYobz1pKSl9fW51bGw9PT1vPyhvPTY1NTMzLHM9MSk6bz42NTUzNSYmKG8tPTY1NTM2LG4ucHVzaChvPj4+MTAmMTAyM3w1NTI5Niksbz01NjMyMHwxMDIzJm8pLG4ucHVzaChvKSxhKz1zfXJldHVybiBmdW5jdGlvbiBkZWNvZGVDb2RlUG9pbnRzQXJyYXkoZSl7Y29uc3QgdD1lLmxlbmd0aDtpZih0PD1sKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyxlKTtsZXQgcj0iIixuPTA7Zm9yKDtuPHQ7KXIrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLGUuc2xpY2UobixuKz1sKSk7cmV0dXJuIHJ9KG4pfXQua01heExlbmd0aD1zLEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUPWZ1bmN0aW9uIHR5cGVkQXJyYXlTdXBwb3J0KCl7dHJ5e2NvbnN0IGU9bmV3IFVpbnQ4QXJyYXkoMSksdD17Zm9vOmZ1bmN0aW9uKCl7cmV0dXJuIDQyfX07cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZih0LFVpbnQ4QXJyYXkucHJvdG90eXBlKSxPYmplY3Quc2V0UHJvdG90eXBlT2YoZSx0KSw0Mj09PWUuZm9vKCl9Y2F0Y2goZSl7cmV0dXJuITF9fSgpLEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUfHwidW5kZWZpbmVkIj09dHlwZW9mIGNvbnNvbGV8fCJmdW5jdGlvbiIhPXR5cGVvZiBjb25zb2xlLmVycm9yfHxjb25zb2xlLmVycm9yKCJUaGlzIGJyb3dzZXIgbGFja3MgdHlwZWQgYXJyYXkgKFVpbnQ4QXJyYXkpIHN1cHBvcnQgd2hpY2ggaXMgcmVxdWlyZWQgYnkgYGJ1ZmZlcmAgdjUueC4gVXNlIGBidWZmZXJgIHY0LnggaWYgeW91IHJlcXVpcmUgb2xkIGJyb3dzZXIgc3VwcG9ydC4iKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQnVmZmVyLnByb3RvdHlwZSwicGFyZW50Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZihCdWZmZXIuaXNCdWZmZXIodGhpcykpcmV0dXJuIHRoaXMuYnVmZmVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShCdWZmZXIucHJvdG90eXBlLCJvZmZzZXQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKEJ1ZmZlci5pc0J1ZmZlcih0aGlzKSlyZXR1cm4gdGhpcy5ieXRlT2Zmc2V0fX0pLEJ1ZmZlci5wb29sU2l6ZT04MTkyLEJ1ZmZlci5mcm9tPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZnJvbShlLHQscil9LE9iamVjdC5zZXRQcm90b3R5cGVPZihCdWZmZXIucHJvdG90eXBlLFVpbnQ4QXJyYXkucHJvdG90eXBlKSxPYmplY3Quc2V0UHJvdG90eXBlT2YoQnVmZmVyLFVpbnQ4QXJyYXkpLEJ1ZmZlci5hbGxvYz1mdW5jdGlvbihlLHQscil7cmV0dXJuIGZ1bmN0aW9uIGFsbG9jKGUsdCxyKXtyZXR1cm4gYXNzZXJ0U2l6ZShlKSxlPD0wP2NyZWF0ZUJ1ZmZlcihlKTp2b2lkIDAhPT10PyJzdHJpbmciPT10eXBlb2Ygcj9jcmVhdGVCdWZmZXIoZSkuZmlsbCh0LHIpOmNyZWF0ZUJ1ZmZlcihlKS5maWxsKHQpOmNyZWF0ZUJ1ZmZlcihlKX0oZSx0LHIpfSxCdWZmZXIuYWxsb2NVbnNhZmU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFsbG9jVW5zYWZlKGUpfSxCdWZmZXIuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKGUpe3JldHVybiBhbGxvY1Vuc2FmZShlKX0sQnVmZmVyLmlzQnVmZmVyPWZ1bmN0aW9uIGlzQnVmZmVyKGUpe3JldHVybiBudWxsIT1lJiYhMD09PWUuX2lzQnVmZmVyJiZlIT09QnVmZmVyLnByb3RvdHlwZX0sQnVmZmVyLmNvbXBhcmU9ZnVuY3Rpb24gY29tcGFyZShlLHQpe2lmKGlzSW5zdGFuY2UoZSxVaW50OEFycmF5KSYmKGU9QnVmZmVyLmZyb20oZSxlLm9mZnNldCxlLmJ5dGVMZW5ndGgpKSxpc0luc3RhbmNlKHQsVWludDhBcnJheSkmJih0PUJ1ZmZlci5mcm9tKHQsdC5vZmZzZXQsdC5ieXRlTGVuZ3RoKSksIUJ1ZmZlci5pc0J1ZmZlcihlKXx8IUJ1ZmZlci5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgImJ1ZjEiLCAiYnVmMiIgYXJndW1lbnRzIG11c3QgYmUgb25lIG9mIHR5cGUgQnVmZmVyIG9yIFVpbnQ4QXJyYXknKTtpZihlPT09dClyZXR1cm4gMDtsZXQgcj1lLmxlbmd0aCxuPXQubGVuZ3RoO2ZvcihsZXQgYT0wLG89TWF0aC5taW4ocixuKTthPG87KythKWlmKGVbYV0hPT10W2FdKXtyPWVbYV0sbj10W2FdO2JyZWFrfXJldHVybiByPG4/LTE6bjxyPzE6MH0sQnVmZmVyLmlzRW5jb2Rpbmc9ZnVuY3Rpb24gaXNFbmNvZGluZyhlKXtzd2l0Y2goU3RyaW5nKGUpLnRvTG93ZXJDYXNlKCkpe2Nhc2UiaGV4IjpjYXNlInV0ZjgiOmNhc2UidXRmLTgiOmNhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6Y2FzZSJiYXNlNjQiOmNhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX0sQnVmZmVyLmNvbmNhdD1mdW5jdGlvbiBjb25jYXQoZSx0KXtpZighQXJyYXkuaXNBcnJheShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCcibGlzdCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJyk7aWYoMD09PWUubGVuZ3RoKXJldHVybiBCdWZmZXIuYWxsb2MoMCk7bGV0IHI7aWYodm9pZCAwPT09dClmb3IodD0wLHI9MDtyPGUubGVuZ3RoOysrcil0Kz1lW3JdLmxlbmd0aDtjb25zdCBuPUJ1ZmZlci5hbGxvY1Vuc2FmZSh0KTtsZXQgYT0wO2ZvcihyPTA7cjxlLmxlbmd0aDsrK3Ipe2xldCB0PWVbcl07aWYoaXNJbnN0YW5jZSh0LFVpbnQ4QXJyYXkpKWErdC5sZW5ndGg+bi5sZW5ndGg/KEJ1ZmZlci5pc0J1ZmZlcih0KXx8KHQ9QnVmZmVyLmZyb20odCkpLHQuY29weShuLGEpKTpVaW50OEFycmF5LnByb3RvdHlwZS5zZXQuY2FsbChuLHQsYSk7ZWxzZXtpZighQnVmZmVyLmlzQnVmZmVyKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTt0LmNvcHkobixhKX1hKz10Lmxlbmd0aH1yZXR1cm4gbn0sQnVmZmVyLmJ5dGVMZW5ndGg9Ynl0ZUxlbmd0aCxCdWZmZXIucHJvdG90eXBlLl9pc0J1ZmZlcj0hMCxCdWZmZXIucHJvdG90eXBlLnN3YXAxNj1mdW5jdGlvbiBzd2FwMTYoKXtjb25zdCBlPXRoaXMubGVuZ3RoO2lmKGUlMiE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDE2LWJpdHMiKTtmb3IobGV0IHQ9MDt0PGU7dCs9Milzd2FwKHRoaXMsdCx0KzEpO3JldHVybiB0aGlzfSxCdWZmZXIucHJvdG90eXBlLnN3YXAzMj1mdW5jdGlvbiBzd2FwMzIoKXtjb25zdCBlPXRoaXMubGVuZ3RoO2lmKGUlNCE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDMyLWJpdHMiKTtmb3IobGV0IHQ9MDt0PGU7dCs9NClzd2FwKHRoaXMsdCx0KzMpLHN3YXAodGhpcyx0KzEsdCsyKTtyZXR1cm4gdGhpc30sQnVmZmVyLnByb3RvdHlwZS5zd2FwNjQ9ZnVuY3Rpb24gc3dhcDY0KCl7Y29uc3QgZT10aGlzLmxlbmd0aDtpZihlJTghPTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA2NC1iaXRzIik7Zm9yKGxldCB0PTA7dDxlO3QrPTgpc3dhcCh0aGlzLHQsdCs3KSxzd2FwKHRoaXMsdCsxLHQrNiksc3dhcCh0aGlzLHQrMix0KzUpLHN3YXAodGhpcyx0KzMsdCs0KTtyZXR1cm4gdGhpc30sQnVmZmVyLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbiB0b1N0cmluZygpe2NvbnN0IGU9dGhpcy5sZW5ndGg7cmV0dXJuIDA9PT1lPyIiOjA9PT1hcmd1bWVudHMubGVuZ3RoP3V0ZjhTbGljZSh0aGlzLDAsZSk6c2xvd1RvU3RyaW5nLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sQnVmZmVyLnByb3RvdHlwZS50b0xvY2FsZVN0cmluZz1CdWZmZXIucHJvdG90eXBlLnRvU3RyaW5nLEJ1ZmZlci5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uIGVxdWFscyhlKXtpZighQnVmZmVyLmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIiKTtyZXR1cm4gdGhpcz09PWV8fDA9PT1CdWZmZXIuY29tcGFyZSh0aGlzLGUpfSxCdWZmZXIucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24gaW5zcGVjdCgpe2xldCBlPSIiO2NvbnN0IHI9dC5JTlNQRUNUX01BWF9CWVRFUztyZXR1cm4gZT10aGlzLnRvU3RyaW5nKCJoZXgiLDAscikucmVwbGFjZSgvKC57Mn0pL2csIiQxICIpLnRyaW0oKSx0aGlzLmxlbmd0aD5yJiYoZSs9IiAuLi4gIiksIjxCdWZmZXIgIitlKyI+In0sbyYmKEJ1ZmZlci5wcm90b3R5cGVbb109QnVmZmVyLnByb3RvdHlwZS5pbnNwZWN0KSxCdWZmZXIucHJvdG90eXBlLmNvbXBhcmU9ZnVuY3Rpb24gY29tcGFyZShlLHQscixuLGEpe2lmKGlzSW5zdGFuY2UoZSxVaW50OEFycmF5KSYmKGU9QnVmZmVyLmZyb20oZSxlLm9mZnNldCxlLmJ5dGVMZW5ndGgpKSwhQnVmZmVyLmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAidGFyZ2V0IiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5LiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIGUpO2lmKHZvaWQgMD09PXQmJih0PTApLHZvaWQgMD09PXImJihyPWU/ZS5sZW5ndGg6MCksdm9pZCAwPT09biYmKG49MCksdm9pZCAwPT09YSYmKGE9dGhpcy5sZW5ndGgpLHQ8MHx8cj5lLmxlbmd0aHx8bjwwfHxhPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJvdXQgb2YgcmFuZ2UgaW5kZXgiKTtpZihuPj1hJiZ0Pj1yKXJldHVybiAwO2lmKG4+PWEpcmV0dXJuLTE7aWYodD49cilyZXR1cm4gMTtpZih0aGlzPT09ZSlyZXR1cm4gMDtsZXQgbz0oYT4+Pj0wKS0obj4+Pj0wKSxzPShyPj4+PTApLSh0Pj4+PTApO2NvbnN0IGw9TWF0aC5taW4obyxzKSxpPXRoaXMuc2xpY2UobixhKSxjPWUuc2xpY2UodCxyKTtmb3IobGV0IGU9MDtlPGw7KytlKWlmKGlbZV0hPT1jW2VdKXtvPWlbZV0scz1jW2VdO2JyZWFrfXJldHVybiBvPHM/LTE6czxvPzE6MH0sQnVmZmVyLnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbiBpbmNsdWRlcyhlLHQscil7cmV0dXJuLTEhPT10aGlzLmluZGV4T2YoZSx0LHIpfSxCdWZmZXIucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24gaW5kZXhPZihlLHQscil7cmV0dXJuIGJpZGlyZWN0aW9uYWxJbmRleE9mKHRoaXMsZSx0LHIsITApfSxCdWZmZXIucHJvdG90eXBlLmxhc3RJbmRleE9mPWZ1bmN0aW9uIGxhc3RJbmRleE9mKGUsdCxyKXtyZXR1cm4gYmlkaXJlY3Rpb25hbEluZGV4T2YodGhpcyxlLHQsciwhMSl9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24gd3JpdGUoZSx0LHIsbil7aWYodm9pZCAwPT09dCluPSJ1dGY4IixyPXRoaXMubGVuZ3RoLHQ9MDtlbHNlIGlmKHZvaWQgMD09PXImJiJzdHJpbmciPT10eXBlb2YgdCluPXQscj10aGlzLmxlbmd0aCx0PTA7ZWxzZXtpZighaXNGaW5pdGUodCkpdGhyb3cgbmV3IEVycm9yKCJCdWZmZXIud3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0WywgbGVuZ3RoXSkgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIpO3Q+Pj49MCxpc0Zpbml0ZShyKT8ocj4+Pj0wLHZvaWQgMD09PW4mJihuPSJ1dGY4IikpOihuPXIscj12b2lkIDApfWNvbnN0IGE9dGhpcy5sZW5ndGgtdDtpZigodm9pZCAwPT09cnx8cj5hKSYmKHI9YSksZS5sZW5ndGg+MCYmKHI8MHx8dDwwKXx8dD50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXR0ZW1wdCB0byB3cml0ZSBvdXRzaWRlIGJ1ZmZlciBib3VuZHMiKTtufHwobj0idXRmOCIpO2xldCBvPSExO2Zvcig7Oylzd2l0Y2gobil7Y2FzZSJoZXgiOnJldHVybiBoZXhXcml0ZSh0aGlzLGUsdCxyKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiB1dGY4V3JpdGUodGhpcyxlLHQscik7Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gYXNjaWlXcml0ZSh0aGlzLGUsdCxyKTtjYXNlImJhc2U2NCI6cmV0dXJuIGJhc2U2NFdyaXRlKHRoaXMsZSx0LHIpO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gdWNzMldyaXRlKHRoaXMsZSx0LHIpO2RlZmF1bHQ6aWYobyl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK24pO249KCIiK24pLnRvTG93ZXJDYXNlKCksbz0hMH19LEJ1ZmZlci5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uIHRvSlNPTigpe3JldHVybnt0eXBlOiJCdWZmZXIiLGRhdGE6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fYXJyfHx0aGlzLDApfX07Y29uc3QgbD00MDk2O2Z1bmN0aW9uIGFzY2lpU2xpY2UoZSx0LHIpe2xldCBuPSIiO3I9TWF0aC5taW4oZS5sZW5ndGgscik7Zm9yKGxldCBhPXQ7YTxyOysrYSluKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDEyNyZlW2FdKTtyZXR1cm4gbn1mdW5jdGlvbiBsYXRpbjFTbGljZShlLHQscil7bGV0IG49IiI7cj1NYXRoLm1pbihlLmxlbmd0aCxyKTtmb3IobGV0IGE9dDthPHI7KythKW4rPVN0cmluZy5mcm9tQ2hhckNvZGUoZVthXSk7cmV0dXJuIG59ZnVuY3Rpb24gaGV4U2xpY2UoZSx0LHIpe2NvbnN0IG49ZS5sZW5ndGg7KCF0fHx0PDApJiYodD0wKSwoIXJ8fHI8MHx8cj5uKSYmKHI9bik7bGV0IGE9IiI7Zm9yKGxldCBuPXQ7bjxyOysrbilhKz11W2Vbbl1dO3JldHVybiBhfWZ1bmN0aW9uIHV0ZjE2bGVTbGljZShlLHQscil7Y29uc3Qgbj1lLnNsaWNlKHQscik7bGV0IGE9IiI7Zm9yKGxldCBlPTA7ZTxuLmxlbmd0aC0xO2UrPTIpYSs9U3RyaW5nLmZyb21DaGFyQ29kZShuW2VdKzI1NipuW2UrMV0pO3JldHVybiBhfWZ1bmN0aW9uIGNoZWNrT2Zmc2V0KGUsdCxyKXtpZihlJTEhPTB8fGU8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib2Zmc2V0IGlzIG5vdCB1aW50Iik7aWYoZSt0PnIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlRyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGgiKX1mdW5jdGlvbiBjaGVja0ludChlLHQscixuLGEsbyl7aWYoIUJ1ZmZlci5pc0J1ZmZlcihlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmZmVyIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIGluc3RhbmNlJyk7aWYodD5hfHx0PG8pdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpO2lmKHIrbj5lLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gd3J0QmlnVUludDY0TEUoZSx0LHIsbixhKXtjaGVja0ludEJJKHQsbixhLGUsciw3KTtsZXQgbz1OdW1iZXIodCZCaWdJbnQoNDI5NDk2NzI5NSkpO2VbcisrXT1vLG8+Pj04LGVbcisrXT1vLG8+Pj04LGVbcisrXT1vLG8+Pj04LGVbcisrXT1vO2xldCBzPU51bWJlcih0Pj5CaWdJbnQoMzIpJkJpZ0ludCg0Mjk0OTY3Mjk1KSk7cmV0dXJuIGVbcisrXT1zLHM+Pj04LGVbcisrXT1zLHM+Pj04LGVbcisrXT1zLHM+Pj04LGVbcisrXT1zLHJ9ZnVuY3Rpb24gd3J0QmlnVUludDY0QkUoZSx0LHIsbixhKXtjaGVja0ludEJJKHQsbixhLGUsciw3KTtsZXQgbz1OdW1iZXIodCZCaWdJbnQoNDI5NDk2NzI5NSkpO2Vbcis3XT1vLG8+Pj04LGVbcis2XT1vLG8+Pj04LGVbcis1XT1vLG8+Pj04LGVbcis0XT1vO2xldCBzPU51bWJlcih0Pj5CaWdJbnQoMzIpJkJpZ0ludCg0Mjk0OTY3Mjk1KSk7cmV0dXJuIGVbciszXT1zLHM+Pj04LGVbcisyXT1zLHM+Pj04LGVbcisxXT1zLHM+Pj04LGVbcl09cyxyKzh9ZnVuY3Rpb24gY2hlY2tJRUVFNzU0KGUsdCxyLG4sYSxvKXtpZihyK24+ZS5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpO2lmKHI8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gd3JpdGVGbG9hdChlLHQscixuLG8pe3JldHVybiB0PSt0LHI+Pj49MCxvfHxjaGVja0lFRUU3NTQoZSwwLHIsNCksYS53cml0ZShlLHQscixuLDIzLDQpLHIrNH1mdW5jdGlvbiB3cml0ZURvdWJsZShlLHQscixuLG8pe3JldHVybiB0PSt0LHI+Pj49MCxvfHxjaGVja0lFRUU3NTQoZSwwLHIsOCksYS53cml0ZShlLHQscixuLDUyLDgpLHIrOH1CdWZmZXIucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uIHNsaWNlKGUsdCl7Y29uc3Qgcj10aGlzLmxlbmd0aDsoZT1+fmUpPDA/KGUrPXIpPDAmJihlPTApOmU+ciYmKGU9ciksKHQ9dm9pZCAwPT09dD9yOn5+dCk8MD8odCs9cik8MCYmKHQ9MCk6dD5yJiYodD1yKSx0PGUmJih0PWUpO2NvbnN0IG49dGhpcy5zdWJhcnJheShlLHQpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YobixCdWZmZXIucHJvdG90eXBlKSxufSxCdWZmZXIucHJvdG90eXBlLnJlYWRVaW50TEU9QnVmZmVyLnByb3RvdHlwZS5yZWFkVUludExFPWZ1bmN0aW9uIHJlYWRVSW50TEUoZSx0LHIpe2U+Pj49MCx0Pj4+PTAscnx8Y2hlY2tPZmZzZXQoZSx0LHRoaXMubGVuZ3RoKTtsZXQgbj10aGlzW2VdLGE9MSxvPTA7Zm9yKDsrK288dCYmKGEqPTI1Nik7KW4rPXRoaXNbZStvXSphO3JldHVybiBufSxCdWZmZXIucHJvdG90eXBlLnJlYWRVaW50QkU9QnVmZmVyLnByb3RvdHlwZS5yZWFkVUludEJFPWZ1bmN0aW9uIHJlYWRVSW50QkUoZSx0LHIpe2U+Pj49MCx0Pj4+PTAscnx8Y2hlY2tPZmZzZXQoZSx0LHRoaXMubGVuZ3RoKTtsZXQgbj10aGlzW2UrLS10XSxhPTE7Zm9yKDt0PjAmJihhKj0yNTYpOyluKz10aGlzW2UrLS10XSphO3JldHVybiBufSxCdWZmZXIucHJvdG90eXBlLnJlYWRVaW50OD1CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbiByZWFkVUludDgoZSx0KXtyZXR1cm4gZT4+Pj0wLHR8fGNoZWNrT2Zmc2V0KGUsMSx0aGlzLmxlbmd0aCksdGhpc1tlXX0sQnVmZmVyLnByb3RvdHlwZS5yZWFkVWludDE2TEU9QnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDE2TEU9ZnVuY3Rpb24gcmVhZFVJbnQxNkxFKGUsdCl7cmV0dXJuIGU+Pj49MCx0fHxjaGVja09mZnNldChlLDIsdGhpcy5sZW5ndGgpLHRoaXNbZV18dGhpc1tlKzFdPDw4fSxCdWZmZXIucHJvdG90eXBlLnJlYWRVaW50MTZCRT1CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MTZCRT1mdW5jdGlvbiByZWFkVUludDE2QkUoZSx0KXtyZXR1cm4gZT4+Pj0wLHR8fGNoZWNrT2Zmc2V0KGUsMix0aGlzLmxlbmd0aCksdGhpc1tlXTw8OHx0aGlzW2UrMV19LEJ1ZmZlci5wcm90b3R5cGUucmVhZFVpbnQzMkxFPUJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQzMkxFPWZ1bmN0aW9uIHJlYWRVSW50MzJMRShlLHQpe3JldHVybiBlPj4+PTAsdHx8Y2hlY2tPZmZzZXQoZSw0LHRoaXMubGVuZ3RoKSwodGhpc1tlXXx0aGlzW2UrMV08PDh8dGhpc1tlKzJdPDwxNikrMTY3NzcyMTYqdGhpc1tlKzNdfSxCdWZmZXIucHJvdG90eXBlLnJlYWRVaW50MzJCRT1CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MzJCRT1mdW5jdGlvbiByZWFkVUludDMyQkUoZSx0KXtyZXR1cm4gZT4+Pj0wLHR8fGNoZWNrT2Zmc2V0KGUsNCx0aGlzLmxlbmd0aCksMTY3NzcyMTYqdGhpc1tlXSsodGhpc1tlKzFdPDwxNnx0aGlzW2UrMl08PDh8dGhpc1tlKzNdKX0sQnVmZmVyLnByb3RvdHlwZS5yZWFkQmlnVUludDY0TEU9ZGVmaW5lQmlnSW50TWV0aG9kKChmdW5jdGlvbiByZWFkQmlnVUludDY0TEUoZSl7dmFsaWRhdGVOdW1iZXIoZT4+Pj0wLCJvZmZzZXQiKTtjb25zdCB0PXRoaXNbZV0scj10aGlzW2UrN107dm9pZCAwIT09dCYmdm9pZCAwIT09cnx8Ym91bmRzRXJyb3IoZSx0aGlzLmxlbmd0aC04KTtjb25zdCBuPXQrMjU2KnRoaXNbKytlXSs2NTUzNip0aGlzWysrZV0rdGhpc1srK2VdKjIqKjI0LGE9dGhpc1srK2VdKzI1Nip0aGlzWysrZV0rNjU1MzYqdGhpc1srK2VdK3IqMioqMjQ7cmV0dXJuIEJpZ0ludChuKSsoQmlnSW50KGEpPDxCaWdJbnQoMzIpKX0pKSxCdWZmZXIucHJvdG90eXBlLnJlYWRCaWdVSW50NjRCRT1kZWZpbmVCaWdJbnRNZXRob2QoKGZ1bmN0aW9uIHJlYWRCaWdVSW50NjRCRShlKXt2YWxpZGF0ZU51bWJlcihlPj4+PTAsIm9mZnNldCIpO2NvbnN0IHQ9dGhpc1tlXSxyPXRoaXNbZSs3XTt2b2lkIDAhPT10JiZ2b2lkIDAhPT1yfHxib3VuZHNFcnJvcihlLHRoaXMubGVuZ3RoLTgpO2NvbnN0IG49dCoyKioyNCs2NTUzNip0aGlzWysrZV0rMjU2KnRoaXNbKytlXSt0aGlzWysrZV0sYT10aGlzWysrZV0qMioqMjQrNjU1MzYqdGhpc1srK2VdKzI1Nip0aGlzWysrZV0rcjtyZXR1cm4oQmlnSW50KG4pPDxCaWdJbnQoMzIpKStCaWdJbnQoYSl9KSksQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50TEU9ZnVuY3Rpb24gcmVhZEludExFKGUsdCxyKXtlPj4+PTAsdD4+Pj0wLHJ8fGNoZWNrT2Zmc2V0KGUsdCx0aGlzLmxlbmd0aCk7bGV0IG49dGhpc1tlXSxhPTEsbz0wO2Zvcig7KytvPHQmJihhKj0yNTYpOyluKz10aGlzW2Urb10qYTtyZXR1cm4gYSo9MTI4LG4+PWEmJihuLT1NYXRoLnBvdygyLDgqdCkpLG59LEJ1ZmZlci5wcm90b3R5cGUucmVhZEludEJFPWZ1bmN0aW9uIHJlYWRJbnRCRShlLHQscil7ZT4+Pj0wLHQ+Pj49MCxyfHxjaGVja09mZnNldChlLHQsdGhpcy5sZW5ndGgpO2xldCBuPXQsYT0xLG89dGhpc1tlKy0tbl07Zm9yKDtuPjAmJihhKj0yNTYpOylvKz10aGlzW2UrLS1uXSphO3JldHVybiBhKj0xMjgsbz49YSYmKG8tPU1hdGgucG93KDIsOCp0KSksb30sQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50OD1mdW5jdGlvbiByZWFkSW50OChlLHQpe3JldHVybiBlPj4+PTAsdHx8Y2hlY2tPZmZzZXQoZSwxLHRoaXMubGVuZ3RoKSwxMjgmdGhpc1tlXT8tMSooMjU1LXRoaXNbZV0rMSk6dGhpc1tlXX0sQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MTZMRT1mdW5jdGlvbiByZWFkSW50MTZMRShlLHQpe2U+Pj49MCx0fHxjaGVja09mZnNldChlLDIsdGhpcy5sZW5ndGgpO2NvbnN0IHI9dGhpc1tlXXx0aGlzW2UrMV08PDg7cmV0dXJuIDMyNzY4JnI/NDI5NDkwMTc2MHxyOnJ9LEJ1ZmZlci5wcm90b3R5cGUucmVhZEludDE2QkU9ZnVuY3Rpb24gcmVhZEludDE2QkUoZSx0KXtlPj4+PTAsdHx8Y2hlY2tPZmZzZXQoZSwyLHRoaXMubGVuZ3RoKTtjb25zdCByPXRoaXNbZSsxXXx0aGlzW2VdPDw4O3JldHVybiAzMjc2OCZyPzQyOTQ5MDE3NjB8cjpyfSxCdWZmZXIucHJvdG90eXBlLnJlYWRJbnQzMkxFPWZ1bmN0aW9uIHJlYWRJbnQzMkxFKGUsdCl7cmV0dXJuIGU+Pj49MCx0fHxjaGVja09mZnNldChlLDQsdGhpcy5sZW5ndGgpLHRoaXNbZV18dGhpc1tlKzFdPDw4fHRoaXNbZSsyXTw8MTZ8dGhpc1tlKzNdPDwyNH0sQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MzJCRT1mdW5jdGlvbiByZWFkSW50MzJCRShlLHQpe3JldHVybiBlPj4+PTAsdHx8Y2hlY2tPZmZzZXQoZSw0LHRoaXMubGVuZ3RoKSx0aGlzW2VdPDwyNHx0aGlzW2UrMV08PDE2fHRoaXNbZSsyXTw8OHx0aGlzW2UrM119LEJ1ZmZlci5wcm90b3R5cGUucmVhZEJpZ0ludDY0TEU9ZGVmaW5lQmlnSW50TWV0aG9kKChmdW5jdGlvbiByZWFkQmlnSW50NjRMRShlKXt2YWxpZGF0ZU51bWJlcihlPj4+PTAsIm9mZnNldCIpO2NvbnN0IHQ9dGhpc1tlXSxyPXRoaXNbZSs3XTt2b2lkIDAhPT10JiZ2b2lkIDAhPT1yfHxib3VuZHNFcnJvcihlLHRoaXMubGVuZ3RoLTgpO2NvbnN0IG49dGhpc1tlKzRdKzI1Nip0aGlzW2UrNV0rNjU1MzYqdGhpc1tlKzZdKyhyPDwyNCk7cmV0dXJuKEJpZ0ludChuKTw8QmlnSW50KDMyKSkrQmlnSW50KHQrMjU2KnRoaXNbKytlXSs2NTUzNip0aGlzWysrZV0rdGhpc1srK2VdKjIqKjI0KX0pKSxCdWZmZXIucHJvdG90eXBlLnJlYWRCaWdJbnQ2NEJFPWRlZmluZUJpZ0ludE1ldGhvZCgoZnVuY3Rpb24gcmVhZEJpZ0ludDY0QkUoZSl7dmFsaWRhdGVOdW1iZXIoZT4+Pj0wLCJvZmZzZXQiKTtjb25zdCB0PXRoaXNbZV0scj10aGlzW2UrN107dm9pZCAwIT09dCYmdm9pZCAwIT09cnx8Ym91bmRzRXJyb3IoZSx0aGlzLmxlbmd0aC04KTtjb25zdCBuPSh0PDwyNCkrNjU1MzYqdGhpc1srK2VdKzI1Nip0aGlzWysrZV0rdGhpc1srK2VdO3JldHVybihCaWdJbnQobik8PEJpZ0ludCgzMikpK0JpZ0ludCh0aGlzWysrZV0qMioqMjQrNjU1MzYqdGhpc1srK2VdKzI1Nip0aGlzWysrZV0rcil9KSksQnVmZmVyLnByb3RvdHlwZS5yZWFkRmxvYXRMRT1mdW5jdGlvbiByZWFkRmxvYXRMRShlLHQpe3JldHVybiBlPj4+PTAsdHx8Y2hlY2tPZmZzZXQoZSw0LHRoaXMubGVuZ3RoKSxhLnJlYWQodGhpcyxlLCEwLDIzLDQpfSxCdWZmZXIucHJvdG90eXBlLnJlYWRGbG9hdEJFPWZ1bmN0aW9uIHJlYWRGbG9hdEJFKGUsdCl7cmV0dXJuIGU+Pj49MCx0fHxjaGVja09mZnNldChlLDQsdGhpcy5sZW5ndGgpLGEucmVhZCh0aGlzLGUsITEsMjMsNCl9LEJ1ZmZlci5wcm90b3R5cGUucmVhZERvdWJsZUxFPWZ1bmN0aW9uIHJlYWREb3VibGVMRShlLHQpe3JldHVybiBlPj4+PTAsdHx8Y2hlY2tPZmZzZXQoZSw4LHRoaXMubGVuZ3RoKSxhLnJlYWQodGhpcyxlLCEwLDUyLDgpfSxCdWZmZXIucHJvdG90eXBlLnJlYWREb3VibGVCRT1mdW5jdGlvbiByZWFkRG91YmxlQkUoZSx0KXtyZXR1cm4gZT4+Pj0wLHR8fGNoZWNrT2Zmc2V0KGUsOCx0aGlzLmxlbmd0aCksYS5yZWFkKHRoaXMsZSwhMSw1Miw4KX0sQnVmZmVyLnByb3RvdHlwZS53cml0ZVVpbnRMRT1CdWZmZXIucHJvdG90eXBlLndyaXRlVUludExFPWZ1bmN0aW9uIHdyaXRlVUludExFKGUsdCxyLG4pe2lmKGU9K2UsdD4+Pj0wLHI+Pj49MCwhbil7Y2hlY2tJbnQodGhpcyxlLHQscixNYXRoLnBvdygyLDgqciktMSwwKX1sZXQgYT0xLG89MDtmb3IodGhpc1t0XT0yNTUmZTsrK288ciYmKGEqPTI1Nik7KXRoaXNbdCtvXT1lL2EmMjU1O3JldHVybiB0K3J9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVVaW50QkU9QnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnRCRT1mdW5jdGlvbiB3cml0ZVVJbnRCRShlLHQscixuKXtpZihlPStlLHQ+Pj49MCxyPj4+PTAsIW4pe2NoZWNrSW50KHRoaXMsZSx0LHIsTWF0aC5wb3coMiw4KnIpLTEsMCl9bGV0IGE9ci0xLG89MTtmb3IodGhpc1t0K2FdPTI1NSZlOy0tYT49MCYmKG8qPTI1Nik7KXRoaXNbdCthXT1lL28mMjU1O3JldHVybiB0K3J9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVVaW50OD1CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDg9ZnVuY3Rpb24gd3JpdGVVSW50OChlLHQscil7cmV0dXJuIGU9K2UsdD4+Pj0wLHJ8fGNoZWNrSW50KHRoaXMsZSx0LDEsMjU1LDApLHRoaXNbdF09MjU1JmUsdCsxfSxCdWZmZXIucHJvdG90eXBlLndyaXRlVWludDE2TEU9QnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQxNkxFPWZ1bmN0aW9uIHdyaXRlVUludDE2TEUoZSx0LHIpe3JldHVybiBlPStlLHQ+Pj49MCxyfHxjaGVja0ludCh0aGlzLGUsdCwyLDY1NTM1LDApLHRoaXNbdF09MjU1JmUsdGhpc1t0KzFdPWU+Pj44LHQrMn0sQnVmZmVyLnByb3RvdHlwZS53cml0ZVVpbnQxNkJFPUJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MTZCRT1mdW5jdGlvbiB3cml0ZVVJbnQxNkJFKGUsdCxyKXtyZXR1cm4gZT0rZSx0Pj4+PTAscnx8Y2hlY2tJbnQodGhpcyxlLHQsMiw2NTUzNSwwKSx0aGlzW3RdPWU+Pj44LHRoaXNbdCsxXT0yNTUmZSx0KzJ9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVVaW50MzJMRT1CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDMyTEU9ZnVuY3Rpb24gd3JpdGVVSW50MzJMRShlLHQscil7cmV0dXJuIGU9K2UsdD4+Pj0wLHJ8fGNoZWNrSW50KHRoaXMsZSx0LDQsNDI5NDk2NzI5NSwwKSx0aGlzW3QrM109ZT4+PjI0LHRoaXNbdCsyXT1lPj4+MTYsdGhpc1t0KzFdPWU+Pj44LHRoaXNbdF09MjU1JmUsdCs0fSxCdWZmZXIucHJvdG90eXBlLndyaXRlVWludDMyQkU9QnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQzMkJFPWZ1bmN0aW9uIHdyaXRlVUludDMyQkUoZSx0LHIpe3JldHVybiBlPStlLHQ+Pj49MCxyfHxjaGVja0ludCh0aGlzLGUsdCw0LDQyOTQ5NjcyOTUsMCksdGhpc1t0XT1lPj4+MjQsdGhpc1t0KzFdPWU+Pj4xNix0aGlzW3QrMl09ZT4+PjgsdGhpc1t0KzNdPTI1NSZlLHQrNH0sQnVmZmVyLnByb3RvdHlwZS53cml0ZUJpZ1VJbnQ2NExFPWRlZmluZUJpZ0ludE1ldGhvZCgoZnVuY3Rpb24gd3JpdGVCaWdVSW50NjRMRShlLHQ9MCl7cmV0dXJuIHdydEJpZ1VJbnQ2NExFKHRoaXMsZSx0LEJpZ0ludCgwKSxCaWdJbnQoIjB4ZmZmZmZmZmZmZmZmZmZmZiIpKX0pKSxCdWZmZXIucHJvdG90eXBlLndyaXRlQmlnVUludDY0QkU9ZGVmaW5lQmlnSW50TWV0aG9kKChmdW5jdGlvbiB3cml0ZUJpZ1VJbnQ2NEJFKGUsdD0wKXtyZXR1cm4gd3J0QmlnVUludDY0QkUodGhpcyxlLHQsQmlnSW50KDApLEJpZ0ludCgiMHhmZmZmZmZmZmZmZmZmZmZmIikpfSkpLEJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnRMRT1mdW5jdGlvbiB3cml0ZUludExFKGUsdCxyLG4pe2lmKGU9K2UsdD4+Pj0wLCFuKXtjb25zdCBuPU1hdGgucG93KDIsOCpyLTEpO2NoZWNrSW50KHRoaXMsZSx0LHIsbi0xLC1uKX1sZXQgYT0wLG89MSxzPTA7Zm9yKHRoaXNbdF09MjU1JmU7KythPHImJihvKj0yNTYpOyllPDAmJjA9PT1zJiYwIT09dGhpc1t0K2EtMV0mJihzPTEpLHRoaXNbdCthXT0oZS9vfDApLXMmMjU1O3JldHVybiB0K3J9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnRCRT1mdW5jdGlvbiB3cml0ZUludEJFKGUsdCxyLG4pe2lmKGU9K2UsdD4+Pj0wLCFuKXtjb25zdCBuPU1hdGgucG93KDIsOCpyLTEpO2NoZWNrSW50KHRoaXMsZSx0LHIsbi0xLC1uKX1sZXQgYT1yLTEsbz0xLHM9MDtmb3IodGhpc1t0K2FdPTI1NSZlOy0tYT49MCYmKG8qPTI1Nik7KWU8MCYmMD09PXMmJjAhPT10aGlzW3QrYSsxXSYmKHM9MSksdGhpc1t0K2FdPShlL298MCktcyYyNTU7cmV0dXJuIHQrcn0sQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDg9ZnVuY3Rpb24gd3JpdGVJbnQ4KGUsdCxyKXtyZXR1cm4gZT0rZSx0Pj4+PTAscnx8Y2hlY2tJbnQodGhpcyxlLHQsMSwxMjcsLTEyOCksZTwwJiYoZT0yNTUrZSsxKSx0aGlzW3RdPTI1NSZlLHQrMX0sQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDE2TEU9ZnVuY3Rpb24gd3JpdGVJbnQxNkxFKGUsdCxyKXtyZXR1cm4gZT0rZSx0Pj4+PTAscnx8Y2hlY2tJbnQodGhpcyxlLHQsMiwzMjc2NywtMzI3NjgpLHRoaXNbdF09MjU1JmUsdGhpc1t0KzFdPWU+Pj44LHQrMn0sQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDE2QkU9ZnVuY3Rpb24gd3JpdGVJbnQxNkJFKGUsdCxyKXtyZXR1cm4gZT0rZSx0Pj4+PTAscnx8Y2hlY2tJbnQodGhpcyxlLHQsMiwzMjc2NywtMzI3NjgpLHRoaXNbdF09ZT4+PjgsdGhpc1t0KzFdPTI1NSZlLHQrMn0sQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDMyTEU9ZnVuY3Rpb24gd3JpdGVJbnQzMkxFKGUsdCxyKXtyZXR1cm4gZT0rZSx0Pj4+PTAscnx8Y2hlY2tJbnQodGhpcyxlLHQsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSx0aGlzW3RdPTI1NSZlLHRoaXNbdCsxXT1lPj4+OCx0aGlzW3QrMl09ZT4+PjE2LHRoaXNbdCszXT1lPj4+MjQsdCs0fSxCdWZmZXIucHJvdG90eXBlLndyaXRlSW50MzJCRT1mdW5jdGlvbiB3cml0ZUludDMyQkUoZSx0LHIpe3JldHVybiBlPStlLHQ+Pj49MCxyfHxjaGVja0ludCh0aGlzLGUsdCw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLGU8MCYmKGU9NDI5NDk2NzI5NStlKzEpLHRoaXNbdF09ZT4+PjI0LHRoaXNbdCsxXT1lPj4+MTYsdGhpc1t0KzJdPWU+Pj44LHRoaXNbdCszXT0yNTUmZSx0KzR9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVCaWdJbnQ2NExFPWRlZmluZUJpZ0ludE1ldGhvZCgoZnVuY3Rpb24gd3JpdGVCaWdJbnQ2NExFKGUsdD0wKXtyZXR1cm4gd3J0QmlnVUludDY0TEUodGhpcyxlLHQsLUJpZ0ludCgiMHg4MDAwMDAwMDAwMDAwMDAwIiksQmlnSW50KCIweDdmZmZmZmZmZmZmZmZmZmYiKSl9KSksQnVmZmVyLnByb3RvdHlwZS53cml0ZUJpZ0ludDY0QkU9ZGVmaW5lQmlnSW50TWV0aG9kKChmdW5jdGlvbiB3cml0ZUJpZ0ludDY0QkUoZSx0PTApe3JldHVybiB3cnRCaWdVSW50NjRCRSh0aGlzLGUsdCwtQmlnSW50KCIweDgwMDAwMDAwMDAwMDAwMDAiKSxCaWdJbnQoIjB4N2ZmZmZmZmZmZmZmZmZmZiIpKX0pKSxCdWZmZXIucHJvdG90eXBlLndyaXRlRmxvYXRMRT1mdW5jdGlvbiB3cml0ZUZsb2F0TEUoZSx0LHIpe3JldHVybiB3cml0ZUZsb2F0KHRoaXMsZSx0LCEwLHIpfSxCdWZmZXIucHJvdG90eXBlLndyaXRlRmxvYXRCRT1mdW5jdGlvbiB3cml0ZUZsb2F0QkUoZSx0LHIpe3JldHVybiB3cml0ZUZsb2F0KHRoaXMsZSx0LCExLHIpfSxCdWZmZXIucHJvdG90eXBlLndyaXRlRG91YmxlTEU9ZnVuY3Rpb24gd3JpdGVEb3VibGVMRShlLHQscil7cmV0dXJuIHdyaXRlRG91YmxlKHRoaXMsZSx0LCEwLHIpfSxCdWZmZXIucHJvdG90eXBlLndyaXRlRG91YmxlQkU9ZnVuY3Rpb24gd3JpdGVEb3VibGVCRShlLHQscil7cmV0dXJuIHdyaXRlRG91YmxlKHRoaXMsZSx0LCExLHIpfSxCdWZmZXIucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24gY29weShlLHQscixuKXtpZighQnVmZmVyLmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoImFyZ3VtZW50IHNob3VsZCBiZSBhIEJ1ZmZlciIpO2lmKHJ8fChyPTApLG58fDA9PT1ufHwobj10aGlzLmxlbmd0aCksdD49ZS5sZW5ndGgmJih0PWUubGVuZ3RoKSx0fHwodD0wKSxuPjAmJm48ciYmKG49ciksbj09PXIpcmV0dXJuIDA7aWYoMD09PWUubGVuZ3RofHwwPT09dGhpcy5sZW5ndGgpcmV0dXJuIDA7aWYodDwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJ0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzIik7aWYocjwwfHxyPj10aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYobjwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJzb3VyY2VFbmQgb3V0IG9mIGJvdW5kcyIpO24+dGhpcy5sZW5ndGgmJihuPXRoaXMubGVuZ3RoKSxlLmxlbmd0aC10PG4tciYmKG49ZS5sZW5ndGgtdCtyKTtjb25zdCBhPW4tcjtyZXR1cm4gdGhpcz09PWUmJiJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluP3RoaXMuY29weVdpdGhpbih0LHIsbik6VWludDhBcnJheS5wcm90b3R5cGUuc2V0LmNhbGwoZSx0aGlzLnN1YmFycmF5KHIsbiksdCksYX0sQnVmZmVyLnByb3RvdHlwZS5maWxsPWZ1bmN0aW9uIGZpbGwoZSx0LHIsbil7aWYoInN0cmluZyI9PXR5cGVvZiBlKXtpZigic3RyaW5nIj09dHlwZW9mIHQ/KG49dCx0PTAscj10aGlzLmxlbmd0aCk6InN0cmluZyI9PXR5cGVvZiByJiYobj1yLHI9dGhpcy5sZW5ndGgpLHZvaWQgMCE9PW4mJiJzdHJpbmciIT10eXBlb2Ygbil0aHJvdyBuZXcgVHlwZUVycm9yKCJlbmNvZGluZyBtdXN0IGJlIGEgc3RyaW5nIik7aWYoInN0cmluZyI9PXR5cGVvZiBuJiYhQnVmZmVyLmlzRW5jb2RpbmcobikpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIituKTtpZigxPT09ZS5sZW5ndGgpe2NvbnN0IHQ9ZS5jaGFyQ29kZUF0KDApOygidXRmOCI9PT1uJiZ0PDEyOHx8ImxhdGluMSI9PT1uKSYmKGU9dCl9fWVsc2UibnVtYmVyIj09dHlwZW9mIGU/ZSY9MjU1OiJib29sZWFuIj09dHlwZW9mIGUmJihlPU51bWJlcihlKSk7aWYodDwwfHx0aGlzLmxlbmd0aDx0fHx0aGlzLmxlbmd0aDxyKXRocm93IG5ldyBSYW5nZUVycm9yKCJPdXQgb2YgcmFuZ2UgaW5kZXgiKTtpZihyPD10KXJldHVybiB0aGlzO2xldCBhO2lmKHQ+Pj49MCxyPXZvaWQgMD09PXI/dGhpcy5sZW5ndGg6cj4+PjAsZXx8KGU9MCksIm51bWJlciI9PXR5cGVvZiBlKWZvcihhPXQ7YTxyOysrYSl0aGlzW2FdPWU7ZWxzZXtjb25zdCBvPUJ1ZmZlci5pc0J1ZmZlcihlKT9lOkJ1ZmZlci5mcm9tKGUsbikscz1vLmxlbmd0aDtpZigwPT09cyl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgdmFsdWUgIicrZSsnIiBpcyBpbnZhbGlkIGZvciBhcmd1bWVudCAidmFsdWUiJyk7Zm9yKGE9MDthPHItdDsrK2EpdGhpc1thK3RdPW9bYSVzXX1yZXR1cm4gdGhpc307Y29uc3QgaT17fTtmdW5jdGlvbiBFKGUsdCxyKXtpW2VdPWNsYXNzIE5vZGVFcnJvciBleHRlbmRzIHJ7Y29uc3RydWN0b3IoKXtzdXBlcigpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJtZXNzYWdlIix7dmFsdWU6dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdGhpcy5uYW1lPWAke3RoaXMubmFtZX0gWyR7ZX1dYCx0aGlzLnN0YWNrLGRlbGV0ZSB0aGlzLm5hbWV9Z2V0IGNvZGUoKXtyZXR1cm4gZX1zZXQgY29kZShlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiY29kZSIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOmUsd3JpdGFibGU6ITB9KX10b1N0cmluZygpe3JldHVybmAke3RoaXMubmFtZX0gWyR7ZX1dOiAke3RoaXMubWVzc2FnZX1gfX19ZnVuY3Rpb24gYWRkTnVtZXJpY2FsU2VwYXJhdG9yKGUpe2xldCB0PSIiLHI9ZS5sZW5ndGg7Y29uc3Qgbj0iLSI9PT1lWzBdPzE6MDtmb3IoO3I+PW4rNDtyLT0zKXQ9YF8ke2Uuc2xpY2Uoci0zLHIpfSR7dH1gO3JldHVybmAke2Uuc2xpY2UoMCxyKX0ke3R9YH1mdW5jdGlvbiBjaGVja0ludEJJKGUsdCxyLG4sYSxvKXtpZihlPnJ8fGU8dCl7Y29uc3Qgbj0iYmlnaW50Ij09dHlwZW9mIHQ/Im4iOiIiO2xldCBhO3Rocm93IGE9bz4zPzA9PT10fHx0PT09QmlnSW50KDApP2A+PSAwJHtufSBhbmQgPCAyJHtufSAqKiAkezgqKG8rMSl9JHtufWA6YD49IC0oMiR7bn0gKiogJHs4KihvKzEpLTF9JHtufSkgYW5kIDwgMiAqKiAkezgqKG8rMSktMX0ke259YDpgPj0gJHt0fSR7bn0gYW5kIDw9ICR7cn0ke259YCxuZXcgaS5FUlJfT1VUX09GX1JBTkdFKCJ2YWx1ZSIsYSxlKX0hZnVuY3Rpb24gY2hlY2tCb3VuZHMoZSx0LHIpe3ZhbGlkYXRlTnVtYmVyKHQsIm9mZnNldCIpLHZvaWQgMCE9PWVbdF0mJnZvaWQgMCE9PWVbdCtyXXx8Ym91bmRzRXJyb3IodCxlLmxlbmd0aC0ocisxKSl9KG4sYSxvKX1mdW5jdGlvbiB2YWxpZGF0ZU51bWJlcihlLHQpe2lmKCJudW1iZXIiIT10eXBlb2YgZSl0aHJvdyBuZXcgaS5FUlJfSU5WQUxJRF9BUkdfVFlQRSh0LCJudW1iZXIiLGUpfWZ1bmN0aW9uIGJvdW5kc0Vycm9yKGUsdCxyKXtpZihNYXRoLmZsb29yKGUpIT09ZSl0aHJvdyB2YWxpZGF0ZU51bWJlcihlLHIpLG5ldyBpLkVSUl9PVVRfT0ZfUkFOR0Uocnx8Im9mZnNldCIsImFuIGludGVnZXIiLGUpO2lmKHQ8MCl0aHJvdyBuZXcgaS5FUlJfQlVGRkVSX09VVF9PRl9CT1VORFM7dGhyb3cgbmV3IGkuRVJSX09VVF9PRl9SQU5HRShyfHwib2Zmc2V0IixgPj0gJHtyPzE6MH0gYW5kIDw9ICR7dH1gLGUpfUUoIkVSUl9CVUZGRVJfT1VUX09GX0JPVU5EUyIsKGZ1bmN0aW9uKGUpe3JldHVybiBlP2Ake2V9IGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kc2A6IkF0dGVtcHQgdG8gYWNjZXNzIG1lbW9yeSBvdXRzaWRlIGJ1ZmZlciBib3VuZHMifSksUmFuZ2VFcnJvciksRSgiRVJSX0lOVkFMSURfQVJHX1RZUEUiLChmdW5jdGlvbihlLHQpe3JldHVybmBUaGUgIiR7ZX0iIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBudW1iZXIuIFJlY2VpdmVkIHR5cGUgJHt0eXBlb2YgdH1gfSksVHlwZUVycm9yKSxFKCJFUlJfT1VUX09GX1JBTkdFIiwoZnVuY3Rpb24oZSx0LHIpe2xldCBuPWBUaGUgdmFsdWUgb2YgIiR7ZX0iIGlzIG91dCBvZiByYW5nZS5gLGE9cjtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihyKSYmTWF0aC5hYnMocik+MioqMzI/YT1hZGROdW1lcmljYWxTZXBhcmF0b3IoU3RyaW5nKHIpKToiYmlnaW50Ij09dHlwZW9mIHImJihhPVN0cmluZyhyKSwocj5CaWdJbnQoMikqKkJpZ0ludCgzMil8fHI8LShCaWdJbnQoMikqKkJpZ0ludCgzMikpKSYmKGE9YWRkTnVtZXJpY2FsU2VwYXJhdG9yKGEpKSxhKz0ibiIpLG4rPWAgSXQgbXVzdCBiZSAke3R9LiBSZWNlaXZlZCAke2F9YCxufSksUmFuZ2VFcnJvcik7Y29uc3QgYz0vW14rLzAtOUEtWmEtei1fXS9nO2Z1bmN0aW9uIHV0ZjhUb0J5dGVzKGUsdCl7bGV0IHI7dD10fHwxLzA7Y29uc3Qgbj1lLmxlbmd0aDtsZXQgYT1udWxsO2NvbnN0IG89W107Zm9yKGxldCBzPTA7czxuOysrcyl7aWYocj1lLmNoYXJDb2RlQXQocykscj41NTI5NSYmcjw1NzM0NCl7aWYoIWEpe2lmKHI+NTYzMTkpeyh0LT0zKT4tMSYmby5wdXNoKDIzOSwxOTEsMTg5KTtjb250aW51ZX1pZihzKzE9PT1uKXsodC09Myk+LTEmJm8ucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9YT1yO2NvbnRpbnVlfWlmKHI8NTYzMjApeyh0LT0zKT4tMSYmby5wdXNoKDIzOSwxOTEsMTg5KSxhPXI7Y29udGludWV9cj02NTUzNisoYS01NTI5Njw8MTB8ci01NjMyMCl9ZWxzZSBhJiYodC09Myk+LTEmJm8ucHVzaCgyMzksMTkxLDE4OSk7aWYoYT1udWxsLHI8MTI4KXtpZigodC09MSk8MClicmVhaztvLnB1c2gocil9ZWxzZSBpZihyPDIwNDgpe2lmKCh0LT0yKTwwKWJyZWFrO28ucHVzaChyPj42fDE5Miw2MyZyfDEyOCl9ZWxzZSBpZihyPDY1NTM2KXtpZigodC09Myk8MClicmVhaztvLnB1c2gocj4+MTJ8MjI0LHI+PjYmNjN8MTI4LDYzJnJ8MTI4KX1lbHNle2lmKCEocjwxMTE0MTEyKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgY29kZSBwb2ludCIpO2lmKCh0LT00KTwwKWJyZWFrO28ucHVzaChyPj4xOHwyNDAscj4+MTImNjN8MTI4LHI+PjYmNjN8MTI4LDYzJnJ8MTI4KX19cmV0dXJuIG99ZnVuY3Rpb24gYmFzZTY0VG9CeXRlcyhlKXtyZXR1cm4gbi50b0J5dGVBcnJheShmdW5jdGlvbiBiYXNlNjRjbGVhbihlKXtpZigoZT0oZT1lLnNwbGl0KCI9IilbMF0pLnRyaW0oKS5yZXBsYWNlKGMsIiIpKS5sZW5ndGg8MilyZXR1cm4iIjtmb3IoO2UubGVuZ3RoJTQhPTA7KWUrPSI9IjtyZXR1cm4gZX0oZSkpfWZ1bmN0aW9uIGJsaXRCdWZmZXIoZSx0LHIsbil7bGV0IGE7Zm9yKGE9MDthPG4mJiEoYStyPj10Lmxlbmd0aHx8YT49ZS5sZW5ndGgpOysrYSl0W2Ercl09ZVthXTtyZXR1cm4gYX1mdW5jdGlvbiBpc0luc3RhbmNlKGUsdCl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0fHxudWxsIT1lJiZudWxsIT1lLmNvbnN0cnVjdG9yJiZudWxsIT1lLmNvbnN0cnVjdG9yLm5hbWUmJmUuY29uc3RydWN0b3IubmFtZT09PXQubmFtZX1mdW5jdGlvbiBudW1iZXJJc05hTihlKXtyZXR1cm4gZSE9ZX1jb25zdCB1PWZ1bmN0aW9uKCl7Y29uc3QgZT0iMDEyMzQ1Njc4OWFiY2RlZiIsdD1uZXcgQXJyYXkoMjU2KTtmb3IobGV0IHI9MDtyPDE2Oysrcil7Y29uc3Qgbj0xNipyO2ZvcihsZXQgYT0wO2E8MTY7KythKXRbbithXT1lW3JdK2VbYV19cmV0dXJuIHR9KCk7ZnVuY3Rpb24gZGVmaW5lQmlnSW50TWV0aG9kKGUpe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgQmlnSW50P0J1ZmZlckJpZ0ludE5vdERlZmluZWQ6ZX1mdW5jdGlvbiBCdWZmZXJCaWdJbnROb3REZWZpbmVkKCl7dGhyb3cgbmV3IEVycm9yKCJCaWdJbnQgbm90IHN1cHBvcnRlZCIpfX0sMjkxOmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDQ4KS5GLkVSUl9JTlZBTElEX09QVF9WQUxVRTtlLmV4cG9ydHM9e2dldEhpZ2hXYXRlck1hcms6ZnVuY3Rpb24gZ2V0SGlnaFdhdGVyTWFyayhlLHQscixhKXt2YXIgbz1mdW5jdGlvbiBoaWdoV2F0ZXJNYXJrRnJvbShlLHQscil7cmV0dXJuIG51bGwhPWUuaGlnaFdhdGVyTWFyaz9lLmhpZ2hXYXRlck1hcms6dD9lW3JdOm51bGx9KHQsYSxyKTtpZihudWxsIT1vKXtpZighaXNGaW5pdGUobyl8fE1hdGguZmxvb3IobykhPT1vfHxvPDApdGhyb3cgbmV3IG4oYT9yOiJoaWdoV2F0ZXJNYXJrIixvKTtyZXR1cm4gTWF0aC5mbG9vcihvKX1yZXR1cm4gZS5vYmplY3RNb2RlPzE2OjE2Mzg0fX19LDMxMDpmdW5jdGlvbihlLHQscil7ZS5leHBvcnRzPVN0cmVhbTt2YXIgbj1yKDcpLkV2ZW50RW1pdHRlcjtmdW5jdGlvbiBTdHJlYW0oKXtuLmNhbGwodGhpcyl9cig2OTgpKFN0cmVhbSxuKSxTdHJlYW0uUmVhZGFibGU9cig0MTIpLFN0cmVhbS5Xcml0YWJsZT1yKDcwOCksU3RyZWFtLkR1cGxleD1yKDM4MiksU3RyZWFtLlRyYW5zZm9ybT1yKDYxMCksU3RyZWFtLlBhc3NUaHJvdWdoPXIoNjAwKSxTdHJlYW0uZmluaXNoZWQ9cigyMzgpLFN0cmVhbS5waXBlbGluZT1yKDc1OCksU3RyZWFtLlN0cmVhbT1TdHJlYW0sU3RyZWFtLnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcztmdW5jdGlvbiBvbmRhdGEodCl7ZS53cml0YWJsZSYmITE9PT1lLndyaXRlKHQpJiZyLnBhdXNlJiZyLnBhdXNlKCl9ZnVuY3Rpb24gb25kcmFpbigpe3IucmVhZGFibGUmJnIucmVzdW1lJiZyLnJlc3VtZSgpfXIub24oImRhdGEiLG9uZGF0YSksZS5vbigiZHJhaW4iLG9uZHJhaW4pLGUuX2lzU3RkaW98fHQmJiExPT09dC5lbmR8fChyLm9uKCJlbmQiLG9uZW5kKSxyLm9uKCJjbG9zZSIsb25jbG9zZSkpO3ZhciBhPSExO2Z1bmN0aW9uIG9uZW5kKCl7YXx8KGE9ITAsZS5lbmQoKSl9ZnVuY3Rpb24gb25jbG9zZSgpe2F8fChhPSEwLCJmdW5jdGlvbiI9PXR5cGVvZiBlLmRlc3Ryb3kmJmUuZGVzdHJveSgpKX1mdW5jdGlvbiBvbmVycm9yKGUpe2lmKGNsZWFudXAoKSwwPT09bi5saXN0ZW5lckNvdW50KHRoaXMsImVycm9yIikpdGhyb3cgZX1mdW5jdGlvbiBjbGVhbnVwKCl7ci5yZW1vdmVMaXN0ZW5lcigiZGF0YSIsb25kYXRhKSxlLnJlbW92ZUxpc3RlbmVyKCJkcmFpbiIsb25kcmFpbiksci5yZW1vdmVMaXN0ZW5lcigiZW5kIixvbmVuZCksci5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLG9uY2xvc2UpLHIucmVtb3ZlTGlzdGVuZXIoImVycm9yIixvbmVycm9yKSxlLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsb25lcnJvciksci5yZW1vdmVMaXN0ZW5lcigiZW5kIixjbGVhbnVwKSxyLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsY2xlYW51cCksZS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLGNsZWFudXApfXJldHVybiByLm9uKCJlcnJvciIsb25lcnJvciksZS5vbigiZXJyb3IiLG9uZXJyb3IpLHIub24oImVuZCIsY2xlYW51cCksci5vbigiY2xvc2UiLGNsZWFudXApLGUub24oImNsb3NlIixjbGVhbnVwKSxlLmVtaXQoInBpcGUiLHIpLGV9fSwzNDA6ZnVuY3Rpb24oKXt9LDM0NTpmdW5jdGlvbihlLHQscil7ZS5leHBvcnRzPXIoNykuRXZlbnRFbWl0dGVyfSwzNjI6ZnVuY3Rpb24odCl7dC5leHBvcnRzPWV9LDM4MjpmdW5jdGlvbihlLHQscil7dmFyIG49cig2MDYpLGE9T2JqZWN0LmtleXN8fGZ1bmN0aW9uKGUpe3ZhciB0PVtdO2Zvcih2YXIgciBpbiBlKXQucHVzaChyKTtyZXR1cm4gdH07ZS5leHBvcnRzPUR1cGxleDt2YXIgbz1yKDQxMikscz1yKDcwOCk7cig2OTgpKER1cGxleCxvKTtmb3IodmFyIGw9YShzLnByb3RvdHlwZSksaT0wO2k8bC5sZW5ndGg7aSsrKXt2YXIgYz1sW2ldO0R1cGxleC5wcm90b3R5cGVbY118fChEdXBsZXgucHJvdG90eXBlW2NdPXMucHJvdG90eXBlW2NdKX1mdW5jdGlvbiBEdXBsZXgoZSl7aWYoISh0aGlzIGluc3RhbmNlb2YgRHVwbGV4KSlyZXR1cm4gbmV3IER1cGxleChlKTtvLmNhbGwodGhpcyxlKSxzLmNhbGwodGhpcyxlKSx0aGlzLmFsbG93SGFsZk9wZW49ITAsZSYmKCExPT09ZS5yZWFkYWJsZSYmKHRoaXMucmVhZGFibGU9ITEpLCExPT09ZS53cml0YWJsZSYmKHRoaXMud3JpdGFibGU9ITEpLCExPT09ZS5hbGxvd0hhbGZPcGVuJiYodGhpcy5hbGxvd0hhbGZPcGVuPSExLHRoaXMub25jZSgiZW5kIixvbmVuZCkpKX1mdW5jdGlvbiBvbmVuZCgpe3RoaXMuX3dyaXRhYmxlU3RhdGUuZW5kZWR8fG4ubmV4dFRpY2sob25FbmROVCx0aGlzKX1mdW5jdGlvbiBvbkVuZE5UKGUpe2UuZW5kKCl9T2JqZWN0LmRlZmluZVByb3BlcnR5KER1cGxleC5wcm90b3R5cGUsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uIGdldCgpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KER1cGxleC5wcm90b3R5cGUsIndyaXRhYmxlQnVmZmVyIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyKCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KER1cGxleC5wcm90b3R5cGUsIndyaXRhYmxlTGVuZ3RoIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUubGVuZ3RofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEdXBsZXgucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbiBnZXQoKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdm9pZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkJiZ0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZCl9LHNldDpmdW5jdGlvbiBzZXQoZSl7dm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdm9pZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPWUsdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ZSl9fSl9LDM5MjpmdW5jdGlvbihlLHQscil7dmFyIG49cig4NjEpLkJ1ZmZlcjtmdW5jdGlvbiBIYXNoKGUsdCl7dGhpcy5fYmxvY2s9bi5hbGxvYyhlKSx0aGlzLl9maW5hbFNpemU9dCx0aGlzLl9ibG9ja1NpemU9ZSx0aGlzLl9sZW49MH1IYXNoLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSx0KXsic3RyaW5nIj09dHlwZW9mIGUmJih0PXR8fCJ1dGY4IixlPW4uZnJvbShlLHQpKTtmb3IodmFyIHI9dGhpcy5fYmxvY2ssYT10aGlzLl9ibG9ja1NpemUsbz1lLmxlbmd0aCxzPXRoaXMuX2xlbixsPTA7bDxvOyl7Zm9yKHZhciBpPXMlYSxjPU1hdGgubWluKG8tbCxhLWkpLHU9MDt1PGM7dSsrKXJbaSt1XT1lW2wrdV07bCs9Yywocys9YyklYT09MCYmdGhpcy5fdXBkYXRlKHIpfXJldHVybiB0aGlzLl9sZW4rPW8sdGhpc30sSGFzaC5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2xlbiV0aGlzLl9ibG9ja1NpemU7dGhpcy5fYmxvY2tbdF09MTI4LHRoaXMuX2Jsb2NrLmZpbGwoMCx0KzEpLHQ+PXRoaXMuX2ZpbmFsU2l6ZSYmKHRoaXMuX3VwZGF0ZSh0aGlzLl9ibG9jayksdGhpcy5fYmxvY2suZmlsbCgwKSk7dmFyIHI9OCp0aGlzLl9sZW47aWYocjw9NDI5NDk2NzI5NSl0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKHIsdGhpcy5fYmxvY2tTaXplLTQpO2Vsc2V7dmFyIG49KDQyOTQ5NjcyOTUmcik+Pj4wLGE9KHItbikvNDI5NDk2NzI5Njt0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKGEsdGhpcy5fYmxvY2tTaXplLTgpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyQkUobix0aGlzLl9ibG9ja1NpemUtNCl9dGhpcy5fdXBkYXRlKHRoaXMuX2Jsb2NrKTt2YXIgbz10aGlzLl9oYXNoKCk7cmV0dXJuIGU/by50b1N0cmluZyhlKTpvfSxIYXNoLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfdXBkYXRlIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3MiKX0sZS5leHBvcnRzPUhhc2h9LDQxMjpmdW5jdGlvbihlLHQscil7dmFyIG4sYT1yKDYwNik7ZS5leHBvcnRzPVJlYWRhYmxlLFJlYWRhYmxlLlJlYWRhYmxlU3RhdGU9UmVhZGFibGVTdGF0ZTtyKDcpLkV2ZW50RW1pdHRlcjt2YXIgbz1mdW5jdGlvbiBFRWxpc3RlbmVyQ291bnQoZSx0KXtyZXR1cm4gZS5saXN0ZW5lcnModCkubGVuZ3RofSxzPXIoMzQ1KSxsPXIoMjg3KS5CdWZmZXIsaT0odm9pZCAwIT09ci5nP3IuZzoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30pLlVpbnQ4QXJyYXl8fGZ1bmN0aW9uKCl7fTt2YXIgYyx1PXIoODM4KTtjPXUmJnUuZGVidWdsb2c/dS5kZWJ1Z2xvZygic3RyZWFtIik6ZnVuY3Rpb24gZGVidWcoKXt9O3ZhciBkLHAsbSxmPXIoNzI2KSxoPXIoODk2KSxnPXIoMjkxKS5nZXRIaWdoV2F0ZXJNYXJrLHk9cig0OCkuRixTPXkuRVJSX0lOVkFMSURfQVJHX1RZUEUsXz15LkVSUl9TVFJFQU1fUFVTSF9BRlRFUl9FT0Ysdj15LkVSUl9NRVRIT0RfTk9UX0lNUExFTUVOVEVELGI9eS5FUlJfU1RSRUFNX1VOU0hJRlRfQUZURVJfRU5EX0VWRU5UO3IoNjk4KShSZWFkYWJsZSxzKTt2YXIgdz1oLmVycm9yT3JEZXN0cm95LEM9WyJlcnJvciIsImNsb3NlIiwiZGVzdHJveSIsInBhdXNlIiwicmVzdW1lIl07ZnVuY3Rpb24gUmVhZGFibGVTdGF0ZShlLHQsYSl7bj1ufHxyKDM4MiksZT1lfHx7fSwiYm9vbGVhbiIhPXR5cGVvZiBhJiYoYT10IGluc3RhbmNlb2YgbiksdGhpcy5vYmplY3RNb2RlPSEhZS5vYmplY3RNb2RlLGEmJih0aGlzLm9iamVjdE1vZGU9dGhpcy5vYmplY3RNb2RlfHwhIWUucmVhZGFibGVPYmplY3RNb2RlKSx0aGlzLmhpZ2hXYXRlck1hcms9Zyh0aGlzLGUsInJlYWRhYmxlSGlnaFdhdGVyTWFyayIsYSksdGhpcy5idWZmZXI9bmV3IGYsdGhpcy5sZW5ndGg9MCx0aGlzLnBpcGVzPW51bGwsdGhpcy5waXBlc0NvdW50PTAsdGhpcy5mbG93aW5nPW51bGwsdGhpcy5lbmRlZD0hMSx0aGlzLmVuZEVtaXR0ZWQ9ITEsdGhpcy5yZWFkaW5nPSExLHRoaXMuc3luYz0hMCx0aGlzLm5lZWRSZWFkYWJsZT0hMSx0aGlzLmVtaXR0ZWRSZWFkYWJsZT0hMSx0aGlzLnJlYWRhYmxlTGlzdGVuaW5nPSExLHRoaXMucmVzdW1lU2NoZWR1bGVkPSExLHRoaXMucGF1c2VkPSEwLHRoaXMuZW1pdENsb3NlPSExIT09ZS5lbWl0Q2xvc2UsdGhpcy5hdXRvRGVzdHJveT0hIWUuYXV0b0Rlc3Ryb3ksdGhpcy5kZXN0cm95ZWQ9ITEsdGhpcy5kZWZhdWx0RW5jb2Rpbmc9ZS5kZWZhdWx0RW5jb2Rpbmd8fCJ1dGY4Iix0aGlzLmF3YWl0RHJhaW49MCx0aGlzLnJlYWRpbmdNb3JlPSExLHRoaXMuZGVjb2Rlcj1udWxsLHRoaXMuZW5jb2Rpbmc9bnVsbCxlLmVuY29kaW5nJiYoZHx8KGQ9cigxNDEpLkkpLHRoaXMuZGVjb2Rlcj1uZXcgZChlLmVuY29kaW5nKSx0aGlzLmVuY29kaW5nPWUuZW5jb2RpbmcpfWZ1bmN0aW9uIFJlYWRhYmxlKGUpe2lmKG49bnx8cigzODIpLCEodGhpcyBpbnN0YW5jZW9mIFJlYWRhYmxlKSlyZXR1cm4gbmV3IFJlYWRhYmxlKGUpO3ZhciB0PXRoaXMgaW5zdGFuY2VvZiBuO3RoaXMuX3JlYWRhYmxlU3RhdGU9bmV3IFJlYWRhYmxlU3RhdGUoZSx0aGlzLHQpLHRoaXMucmVhZGFibGU9ITAsZSYmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLnJlYWQmJih0aGlzLl9yZWFkPWUucmVhZCksImZ1bmN0aW9uIj09dHlwZW9mIGUuZGVzdHJveSYmKHRoaXMuX2Rlc3Ryb3k9ZS5kZXN0cm95KSkscy5jYWxsKHRoaXMpfWZ1bmN0aW9uIHJlYWRhYmxlQWRkQ2h1bmsoZSx0LHIsbixhKXtjKCJyZWFkYWJsZUFkZENodW5rIix0KTt2YXIgbyxzPWUuX3JlYWRhYmxlU3RhdGU7aWYobnVsbD09PXQpcy5yZWFkaW5nPSExLGZ1bmN0aW9uIG9uRW9mQ2h1bmsoZSx0KXtpZihjKCJvbkVvZkNodW5rIiksdC5lbmRlZClyZXR1cm47aWYodC5kZWNvZGVyKXt2YXIgcj10LmRlY29kZXIuZW5kKCk7ciYmci5sZW5ndGgmJih0LmJ1ZmZlci5wdXNoKHIpLHQubGVuZ3RoKz10Lm9iamVjdE1vZGU/MTpyLmxlbmd0aCl9dC5lbmRlZD0hMCx0LnN5bmM/ZW1pdFJlYWRhYmxlKGUpOih0Lm5lZWRSZWFkYWJsZT0hMSx0LmVtaXR0ZWRSZWFkYWJsZXx8KHQuZW1pdHRlZFJlYWRhYmxlPSEwLGVtaXRSZWFkYWJsZV8oZSkpKX0oZSxzKTtlbHNlIGlmKGF8fChvPWZ1bmN0aW9uIGNodW5rSW52YWxpZChlLHQpe3ZhciByOyhmdW5jdGlvbiBfaXNVaW50OEFycmF5KGUpe3JldHVybiBsLmlzQnVmZmVyKGUpfHxlIGluc3RhbmNlb2YgaX0pKHQpfHwic3RyaW5nIj09dHlwZW9mIHR8fHZvaWQgMD09PXR8fGUub2JqZWN0TW9kZXx8KHI9bmV3IFMoImNodW5rIixbInN0cmluZyIsIkJ1ZmZlciIsIlVpbnQ4QXJyYXkiXSx0KSk7cmV0dXJuIHJ9KHMsdCkpLG8pdyhlLG8pO2Vsc2UgaWYocy5vYmplY3RNb2RlfHx0JiZ0Lmxlbmd0aD4wKWlmKCJzdHJpbmciPT10eXBlb2YgdHx8cy5vYmplY3RNb2RlfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk9PT1sLnByb3RvdHlwZXx8KHQ9ZnVuY3Rpb24gX3VpbnQ4QXJyYXlUb0J1ZmZlcihlKXtyZXR1cm4gbC5mcm9tKGUpfSh0KSksbilzLmVuZEVtaXR0ZWQ/dyhlLG5ldyBiKTphZGRDaHVuayhlLHMsdCwhMCk7ZWxzZSBpZihzLmVuZGVkKXcoZSxuZXcgXyk7ZWxzZXtpZihzLmRlc3Ryb3llZClyZXR1cm4hMTtzLnJlYWRpbmc9ITEscy5kZWNvZGVyJiYhcj8odD1zLmRlY29kZXIud3JpdGUodCkscy5vYmplY3RNb2RlfHwwIT09dC5sZW5ndGg/YWRkQ2h1bmsoZSxzLHQsITEpOm1heWJlUmVhZE1vcmUoZSxzKSk6YWRkQ2h1bmsoZSxzLHQsITEpfWVsc2Ugbnx8KHMucmVhZGluZz0hMSxtYXliZVJlYWRNb3JlKGUscykpO3JldHVybiFzLmVuZGVkJiYocy5sZW5ndGg8cy5oaWdoV2F0ZXJNYXJrfHwwPT09cy5sZW5ndGgpfWZ1bmN0aW9uIGFkZENodW5rKGUsdCxyLG4pe3QuZmxvd2luZyYmMD09PXQubGVuZ3RoJiYhdC5zeW5jPyh0LmF3YWl0RHJhaW49MCxlLmVtaXQoImRhdGEiLHIpKToodC5sZW5ndGgrPXQub2JqZWN0TW9kZT8xOnIubGVuZ3RoLG4/dC5idWZmZXIudW5zaGlmdChyKTp0LmJ1ZmZlci5wdXNoKHIpLHQubmVlZFJlYWRhYmxlJiZlbWl0UmVhZGFibGUoZSkpLG1heWJlUmVhZE1vcmUoZSx0KX1PYmplY3QuZGVmaW5lUHJvcGVydHkoUmVhZGFibGUucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbiBnZXQoKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbiBzZXQoZSl7dGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPWUpfX0pLFJlYWRhYmxlLnByb3RvdHlwZS5kZXN0cm95PWguZGVzdHJveSxSZWFkYWJsZS5wcm90b3R5cGUuX3VuZGVzdHJveT1oLnVuZGVzdHJveSxSZWFkYWJsZS5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24oZSx0KXt0KGUpfSxSZWFkYWJsZS5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihlLHQpe3ZhciByLG49dGhpcy5fcmVhZGFibGVTdGF0ZTtyZXR1cm4gbi5vYmplY3RNb2RlP3I9ITA6InN0cmluZyI9PXR5cGVvZiBlJiYoKHQ9dHx8bi5kZWZhdWx0RW5jb2RpbmcpIT09bi5lbmNvZGluZyYmKGU9bC5mcm9tKGUsdCksdD0iIikscj0hMCkscmVhZGFibGVBZGRDaHVuayh0aGlzLGUsdCwhMSxyKX0sUmVhZGFibGUucHJvdG90eXBlLnVuc2hpZnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHJlYWRhYmxlQWRkQ2h1bmsodGhpcyxlLG51bGwsITAsITEpfSxSZWFkYWJsZS5wcm90b3R5cGUuaXNQYXVzZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMT09PXRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZ30sUmVhZGFibGUucHJvdG90eXBlLnNldEVuY29kaW5nPWZ1bmN0aW9uKGUpe2R8fChkPXIoMTQxKS5JKTt2YXIgdD1uZXcgZChlKTt0aGlzLl9yZWFkYWJsZVN0YXRlLmRlY29kZXI9dCx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuY29kaW5nPXRoaXMuX3JlYWRhYmxlU3RhdGUuZGVjb2Rlci5lbmNvZGluZztmb3IodmFyIG49dGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXIuaGVhZCxhPSIiO251bGwhPT1uOylhKz10LndyaXRlKG4uZGF0YSksbj1uLm5leHQ7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyLmNsZWFyKCksIiIhPT1hJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlci5wdXNoKGEpLHRoaXMuX3JlYWRhYmxlU3RhdGUubGVuZ3RoPWEubGVuZ3RoLHRoaXN9O3ZhciB4PTEwNzM3NDE4MjQ7ZnVuY3Rpb24gaG93TXVjaFRvUmVhZChlLHQpe3JldHVybiBlPD0wfHwwPT09dC5sZW5ndGgmJnQuZW5kZWQ/MDp0Lm9iamVjdE1vZGU/MTplIT1lP3QuZmxvd2luZyYmdC5sZW5ndGg/dC5idWZmZXIuaGVhZC5kYXRhLmxlbmd0aDp0Lmxlbmd0aDooZT50LmhpZ2hXYXRlck1hcmsmJih0LmhpZ2hXYXRlck1hcms9ZnVuY3Rpb24gY29tcHV0ZU5ld0hpZ2hXYXRlck1hcmsoZSl7cmV0dXJuIGU+PXg/ZT14OihlLS0sZXw9ZT4+PjEsZXw9ZT4+PjIsZXw9ZT4+PjQsZXw9ZT4+PjgsZXw9ZT4+PjE2LGUrKyksZX0oZSkpLGU8PXQubGVuZ3RoP2U6dC5lbmRlZD90Lmxlbmd0aDoodC5uZWVkUmVhZGFibGU9ITAsMCkpfWZ1bmN0aW9uIGVtaXRSZWFkYWJsZShlKXt2YXIgdD1lLl9yZWFkYWJsZVN0YXRlO2MoImVtaXRSZWFkYWJsZSIsdC5uZWVkUmVhZGFibGUsdC5lbWl0dGVkUmVhZGFibGUpLHQubmVlZFJlYWRhYmxlPSExLHQuZW1pdHRlZFJlYWRhYmxlfHwoYygiZW1pdFJlYWRhYmxlIix0LmZsb3dpbmcpLHQuZW1pdHRlZFJlYWRhYmxlPSEwLGEubmV4dFRpY2soZW1pdFJlYWRhYmxlXyxlKSl9ZnVuY3Rpb24gZW1pdFJlYWRhYmxlXyhlKXt2YXIgdD1lLl9yZWFkYWJsZVN0YXRlO2MoImVtaXRSZWFkYWJsZV8iLHQuZGVzdHJveWVkLHQubGVuZ3RoLHQuZW5kZWQpLHQuZGVzdHJveWVkfHwhdC5sZW5ndGgmJiF0LmVuZGVkfHwoZS5lbWl0KCJyZWFkYWJsZSIpLHQuZW1pdHRlZFJlYWRhYmxlPSExKSx0Lm5lZWRSZWFkYWJsZT0hdC5mbG93aW5nJiYhdC5lbmRlZCYmdC5sZW5ndGg8PXQuaGlnaFdhdGVyTWFyayxmbG93KGUpfWZ1bmN0aW9uIG1heWJlUmVhZE1vcmUoZSx0KXt0LnJlYWRpbmdNb3JlfHwodC5yZWFkaW5nTW9yZT0hMCxhLm5leHRUaWNrKG1heWJlUmVhZE1vcmVfLGUsdCkpfWZ1bmN0aW9uIG1heWJlUmVhZE1vcmVfKGUsdCl7Zm9yKDshdC5yZWFkaW5nJiYhdC5lbmRlZCYmKHQubGVuZ3RoPHQuaGlnaFdhdGVyTWFya3x8dC5mbG93aW5nJiYwPT09dC5sZW5ndGgpOyl7dmFyIHI9dC5sZW5ndGg7aWYoYygibWF5YmVSZWFkTW9yZSByZWFkIDAiKSxlLnJlYWQoMCkscj09PXQubGVuZ3RoKWJyZWFrfXQucmVhZGluZ01vcmU9ITF9ZnVuY3Rpb24gdXBkYXRlUmVhZGFibGVMaXN0ZW5pbmcoZSl7dmFyIHQ9ZS5fcmVhZGFibGVTdGF0ZTt0LnJlYWRhYmxlTGlzdGVuaW5nPWUubGlzdGVuZXJDb3VudCgicmVhZGFibGUiKT4wLHQucmVzdW1lU2NoZWR1bGVkJiYhdC5wYXVzZWQ/dC5mbG93aW5nPSEwOmUubGlzdGVuZXJDb3VudCgiZGF0YSIpPjAmJmUucmVzdW1lKCl9ZnVuY3Rpb24gblJlYWRpbmdOZXh0VGljayhlKXtjKCJyZWFkYWJsZSBuZXh0dGljayByZWFkIDAiKSxlLnJlYWQoMCl9ZnVuY3Rpb24gcmVzdW1lXyhlLHQpe2MoInJlc3VtZSIsdC5yZWFkaW5nKSx0LnJlYWRpbmd8fGUucmVhZCgwKSx0LnJlc3VtZVNjaGVkdWxlZD0hMSxlLmVtaXQoInJlc3VtZSIpLGZsb3coZSksdC5mbG93aW5nJiYhdC5yZWFkaW5nJiZlLnJlYWQoMCl9ZnVuY3Rpb24gZmxvdyhlKXt2YXIgdD1lLl9yZWFkYWJsZVN0YXRlO2ZvcihjKCJmbG93Iix0LmZsb3dpbmcpO3QuZmxvd2luZyYmbnVsbCE9PWUucmVhZCgpOyk7fWZ1bmN0aW9uIGZyb21MaXN0KGUsdCl7cmV0dXJuIDA9PT10Lmxlbmd0aD9udWxsOih0Lm9iamVjdE1vZGU/cj10LmJ1ZmZlci5zaGlmdCgpOiFlfHxlPj10Lmxlbmd0aD8ocj10LmRlY29kZXI/dC5idWZmZXIuam9pbigiIik6MT09PXQuYnVmZmVyLmxlbmd0aD90LmJ1ZmZlci5maXJzdCgpOnQuYnVmZmVyLmNvbmNhdCh0Lmxlbmd0aCksdC5idWZmZXIuY2xlYXIoKSk6cj10LmJ1ZmZlci5jb25zdW1lKGUsdC5kZWNvZGVyKSxyKTt2YXIgcn1mdW5jdGlvbiBlbmRSZWFkYWJsZShlKXt2YXIgdD1lLl9yZWFkYWJsZVN0YXRlO2MoImVuZFJlYWRhYmxlIix0LmVuZEVtaXR0ZWQpLHQuZW5kRW1pdHRlZHx8KHQuZW5kZWQ9ITAsYS5uZXh0VGljayhlbmRSZWFkYWJsZU5ULHQsZSkpfWZ1bmN0aW9uIGVuZFJlYWRhYmxlTlQoZSx0KXtpZihjKCJlbmRSZWFkYWJsZU5UIixlLmVuZEVtaXR0ZWQsZS5sZW5ndGgpLCFlLmVuZEVtaXR0ZWQmJjA9PT1lLmxlbmd0aCYmKGUuZW5kRW1pdHRlZD0hMCx0LnJlYWRhYmxlPSExLHQuZW1pdCgiZW5kIiksZS5hdXRvRGVzdHJveSkpe3ZhciByPXQuX3dyaXRhYmxlU3RhdGU7KCFyfHxyLmF1dG9EZXN0cm95JiZyLmZpbmlzaGVkKSYmdC5kZXN0cm95KCl9fWZ1bmN0aW9uIGluZGV4T2YoZSx0KXtmb3IodmFyIHI9MCxuPWUubGVuZ3RoO3I8bjtyKyspaWYoZVtyXT09PXQpcmV0dXJuIHI7cmV0dXJuLTF9UmVhZGFibGUucHJvdG90eXBlLnJlYWQ9ZnVuY3Rpb24oZSl7YygicmVhZCIsZSksZT1wYXJzZUludChlLDEwKTt2YXIgdD10aGlzLl9yZWFkYWJsZVN0YXRlLHI9ZTtpZigwIT09ZSYmKHQuZW1pdHRlZFJlYWRhYmxlPSExKSwwPT09ZSYmdC5uZWVkUmVhZGFibGUmJigoMCE9PXQuaGlnaFdhdGVyTWFyaz90Lmxlbmd0aD49dC5oaWdoV2F0ZXJNYXJrOnQubGVuZ3RoPjApfHx0LmVuZGVkKSlyZXR1cm4gYygicmVhZDogZW1pdFJlYWRhYmxlIix0Lmxlbmd0aCx0LmVuZGVkKSwwPT09dC5sZW5ndGgmJnQuZW5kZWQ/ZW5kUmVhZGFibGUodGhpcyk6ZW1pdFJlYWRhYmxlKHRoaXMpLG51bGw7aWYoMD09PShlPWhvd011Y2hUb1JlYWQoZSx0KSkmJnQuZW5kZWQpcmV0dXJuIDA9PT10Lmxlbmd0aCYmZW5kUmVhZGFibGUodGhpcyksbnVsbDt2YXIgbixhPXQubmVlZFJlYWRhYmxlO3JldHVybiBjKCJuZWVkIHJlYWRhYmxlIixhKSwoMD09PXQubGVuZ3RofHx0Lmxlbmd0aC1lPHQuaGlnaFdhdGVyTWFyaykmJmMoImxlbmd0aCBsZXNzIHRoYW4gd2F0ZXJtYXJrIixhPSEwKSx0LmVuZGVkfHx0LnJlYWRpbmc/YygicmVhZGluZyBvciBlbmRlZCIsYT0hMSk6YSYmKGMoImRvIHJlYWQiKSx0LnJlYWRpbmc9ITAsdC5zeW5jPSEwLDA9PT10Lmxlbmd0aCYmKHQubmVlZFJlYWRhYmxlPSEwKSx0aGlzLl9yZWFkKHQuaGlnaFdhdGVyTWFyayksdC5zeW5jPSExLHQucmVhZGluZ3x8KGU9aG93TXVjaFRvUmVhZChyLHQpKSksbnVsbD09PShuPWU+MD9mcm9tTGlzdChlLHQpOm51bGwpPyh0Lm5lZWRSZWFkYWJsZT10Lmxlbmd0aDw9dC5oaWdoV2F0ZXJNYXJrLGU9MCk6KHQubGVuZ3RoLT1lLHQuYXdhaXREcmFpbj0wKSwwPT09dC5sZW5ndGgmJih0LmVuZGVkfHwodC5uZWVkUmVhZGFibGU9ITApLHIhPT1lJiZ0LmVuZGVkJiZlbmRSZWFkYWJsZSh0aGlzKSksbnVsbCE9PW4mJnRoaXMuZW1pdCgiZGF0YSIsbiksbn0sUmVhZGFibGUucHJvdG90eXBlLl9yZWFkPWZ1bmN0aW9uKGUpe3codGhpcyxuZXcgdigiX3JlYWQoKSIpKX0sUmVhZGFibGUucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLG49dGhpcy5fcmVhZGFibGVTdGF0ZTtzd2l0Y2gobi5waXBlc0NvdW50KXtjYXNlIDA6bi5waXBlcz1lO2JyZWFrO2Nhc2UgMTpuLnBpcGVzPVtuLnBpcGVzLGVdO2JyZWFrO2RlZmF1bHQ6bi5waXBlcy5wdXNoKGUpfW4ucGlwZXNDb3VudCs9MSxjKCJwaXBlIGNvdW50PSVkIG9wdHM9JWoiLG4ucGlwZXNDb3VudCx0KTt2YXIgcz0oIXR8fCExIT09dC5lbmQpJiZlIT09YS5zdGRvdXQmJmUhPT1hLnN0ZGVycj9vbmVuZDp1bnBpcGU7ZnVuY3Rpb24gb251bnBpcGUodCxhKXtjKCJvbnVucGlwZSIpLHQ9PT1yJiZhJiYhMT09PWEuaGFzVW5waXBlZCYmKGEuaGFzVW5waXBlZD0hMCxmdW5jdGlvbiBjbGVhbnVwKCl7YygiY2xlYW51cCIpLGUucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixvbmNsb3NlKSxlLnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLG9uZmluaXNoKSxlLnJlbW92ZUxpc3RlbmVyKCJkcmFpbiIsbCksZS5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLG9uZXJyb3IpLGUucmVtb3ZlTGlzdGVuZXIoInVucGlwZSIsb251bnBpcGUpLHIucmVtb3ZlTGlzdGVuZXIoImVuZCIsb25lbmQpLHIucmVtb3ZlTGlzdGVuZXIoImVuZCIsdW5waXBlKSxyLnJlbW92ZUxpc3RlbmVyKCJkYXRhIixvbmRhdGEpLGk9ITAsIW4uYXdhaXREcmFpbnx8ZS5fd3JpdGFibGVTdGF0ZSYmIWUuX3dyaXRhYmxlU3RhdGUubmVlZERyYWlufHxsKCl9KCkpfWZ1bmN0aW9uIG9uZW5kKCl7Yygib25lbmQiKSxlLmVuZCgpfW4uZW5kRW1pdHRlZD9hLm5leHRUaWNrKHMpOnIub25jZSgiZW5kIixzKSxlLm9uKCJ1bnBpcGUiLG9udW5waXBlKTt2YXIgbD1mdW5jdGlvbiBwaXBlT25EcmFpbihlKXtyZXR1cm4gZnVuY3Rpb24gcGlwZU9uRHJhaW5GdW5jdGlvblJlc3VsdCgpe3ZhciB0PWUuX3JlYWRhYmxlU3RhdGU7YygicGlwZU9uRHJhaW4iLHQuYXdhaXREcmFpbiksdC5hd2FpdERyYWluJiZ0LmF3YWl0RHJhaW4tLSwwPT09dC5hd2FpdERyYWluJiZvKGUsImRhdGEiKSYmKHQuZmxvd2luZz0hMCxmbG93KGUpKX19KHIpO2Uub24oImRyYWluIixsKTt2YXIgaT0hMTtmdW5jdGlvbiBvbmRhdGEodCl7Yygib25kYXRhIik7dmFyIGE9ZS53cml0ZSh0KTtjKCJkZXN0LndyaXRlIixhKSwhMT09PWEmJigoMT09PW4ucGlwZXNDb3VudCYmbi5waXBlcz09PWV8fG4ucGlwZXNDb3VudD4xJiYtMSE9PWluZGV4T2Yobi5waXBlcyxlKSkmJiFpJiYoYygiZmFsc2Ugd3JpdGUgcmVzcG9uc2UsIHBhdXNlIixuLmF3YWl0RHJhaW4pLG4uYXdhaXREcmFpbisrKSxyLnBhdXNlKCkpfWZ1bmN0aW9uIG9uZXJyb3IodCl7Yygib25lcnJvciIsdCksdW5waXBlKCksZS5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLG9uZXJyb3IpLDA9PT1vKGUsImVycm9yIikmJncoZSx0KX1mdW5jdGlvbiBvbmNsb3NlKCl7ZS5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixvbmZpbmlzaCksdW5waXBlKCl9ZnVuY3Rpb24gb25maW5pc2goKXtjKCJvbmZpbmlzaCIpLGUucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixvbmNsb3NlKSx1bnBpcGUoKX1mdW5jdGlvbiB1bnBpcGUoKXtjKCJ1bnBpcGUiKSxyLnVucGlwZShlKX1yZXR1cm4gci5vbigiZGF0YSIsb25kYXRhKSxmdW5jdGlvbiBwcmVwZW5kTGlzdGVuZXIoZSx0LHIpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLnByZXBlbmRMaXN0ZW5lcilyZXR1cm4gZS5wcmVwZW5kTGlzdGVuZXIodCxyKTtlLl9ldmVudHMmJmUuX2V2ZW50c1t0XT9BcnJheS5pc0FycmF5KGUuX2V2ZW50c1t0XSk/ZS5fZXZlbnRzW3RdLnVuc2hpZnQocik6ZS5fZXZlbnRzW3RdPVtyLGUuX2V2ZW50c1t0XV06ZS5vbih0LHIpfShlLCJlcnJvciIsb25lcnJvciksZS5vbmNlKCJjbG9zZSIsb25jbG9zZSksZS5vbmNlKCJmaW5pc2giLG9uZmluaXNoKSxlLmVtaXQoInBpcGUiLHIpLG4uZmxvd2luZ3x8KGMoInBpcGUgcmVzdW1lIiksci5yZXN1bWUoKSksZX0sUmVhZGFibGUucHJvdG90eXBlLnVucGlwZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9yZWFkYWJsZVN0YXRlLHI9e2hhc1VucGlwZWQ6ITF9O2lmKDA9PT10LnBpcGVzQ291bnQpcmV0dXJuIHRoaXM7aWYoMT09PXQucGlwZXNDb3VudClyZXR1cm4gZSYmZSE9PXQucGlwZXN8fChlfHwoZT10LnBpcGVzKSx0LnBpcGVzPW51bGwsdC5waXBlc0NvdW50PTAsdC5mbG93aW5nPSExLGUmJmUuZW1pdCgidW5waXBlIix0aGlzLHIpKSx0aGlzO2lmKCFlKXt2YXIgbj10LnBpcGVzLGE9dC5waXBlc0NvdW50O3QucGlwZXM9bnVsbCx0LnBpcGVzQ291bnQ9MCx0LmZsb3dpbmc9ITE7Zm9yKHZhciBvPTA7bzxhO28rKyluW29dLmVtaXQoInVucGlwZSIsdGhpcyx7aGFzVW5waXBlZDohMX0pO3JldHVybiB0aGlzfXZhciBzPWluZGV4T2YodC5waXBlcyxlKTtyZXR1cm4tMT09PXN8fCh0LnBpcGVzLnNwbGljZShzLDEpLHQucGlwZXNDb3VudC09MSwxPT09dC5waXBlc0NvdW50JiYodC5waXBlcz10LnBpcGVzWzBdKSxlLmVtaXQoInVucGlwZSIsdGhpcyxyKSksdGhpc30sUmVhZGFibGUucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGUsdCl7dmFyIHI9cy5wcm90b3R5cGUub24uY2FsbCh0aGlzLGUsdCksbj10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiJkYXRhIj09PWU/KG4ucmVhZGFibGVMaXN0ZW5pbmc9dGhpcy5saXN0ZW5lckNvdW50KCJyZWFkYWJsZSIpPjAsITEhPT1uLmZsb3dpbmcmJnRoaXMucmVzdW1lKCkpOiJyZWFkYWJsZSI9PT1lJiYobi5lbmRFbWl0dGVkfHxuLnJlYWRhYmxlTGlzdGVuaW5nfHwobi5yZWFkYWJsZUxpc3RlbmluZz1uLm5lZWRSZWFkYWJsZT0hMCxuLmZsb3dpbmc9ITEsbi5lbWl0dGVkUmVhZGFibGU9ITEsYygib24gcmVhZGFibGUiLG4ubGVuZ3RoLG4ucmVhZGluZyksbi5sZW5ndGg/ZW1pdFJlYWRhYmxlKHRoaXMpOm4ucmVhZGluZ3x8YS5uZXh0VGljayhuUmVhZGluZ05leHRUaWNrLHRoaXMpKSkscn0sUmVhZGFibGUucHJvdG90eXBlLmFkZExpc3RlbmVyPVJlYWRhYmxlLnByb3RvdHlwZS5vbixSZWFkYWJsZS5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj1zLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lci5jYWxsKHRoaXMsZSx0KTtyZXR1cm4icmVhZGFibGUiPT09ZSYmYS5uZXh0VGljayh1cGRhdGVSZWFkYWJsZUxpc3RlbmluZyx0aGlzKSxyfSxSZWFkYWJsZS5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uKGUpe3ZhciB0PXMucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuInJlYWRhYmxlIiE9PWUmJnZvaWQgMCE9PWV8fGEubmV4dFRpY2sodXBkYXRlUmVhZGFibGVMaXN0ZW5pbmcsdGhpcyksdH0sUmVhZGFibGUucHJvdG90eXBlLnJlc3VtZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMuX3JlYWRhYmxlU3RhdGU7cmV0dXJuIGUuZmxvd2luZ3x8KGMoInJlc3VtZSIpLGUuZmxvd2luZz0hZS5yZWFkYWJsZUxpc3RlbmluZyxmdW5jdGlvbiByZXN1bWUoZSx0KXt0LnJlc3VtZVNjaGVkdWxlZHx8KHQucmVzdW1lU2NoZWR1bGVkPSEwLGEubmV4dFRpY2socmVzdW1lXyxlLHQpKX0odGhpcyxlKSksZS5wYXVzZWQ9ITEsdGhpc30sUmVhZGFibGUucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKCl7cmV0dXJuIGMoImNhbGwgcGF1c2UgZmxvd2luZz0laiIsdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nKSwhMSE9PXRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyYmKGMoInBhdXNlIiksdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nPSExLHRoaXMuZW1pdCgicGF1c2UiKSksdGhpcy5fcmVhZGFibGVTdGF0ZS5wYXVzZWQ9ITAsdGhpc30sUmVhZGFibGUucHJvdG90eXBlLndyYXA9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxyPXRoaXMuX3JlYWRhYmxlU3RhdGUsbj0hMTtmb3IodmFyIGEgaW4gZS5vbigiZW5kIiwoZnVuY3Rpb24oKXtpZihjKCJ3cmFwcGVkIGVuZCIpLHIuZGVjb2RlciYmIXIuZW5kZWQpe3ZhciBlPXIuZGVjb2Rlci5lbmQoKTtlJiZlLmxlbmd0aCYmdC5wdXNoKGUpfXQucHVzaChudWxsKX0pKSxlLm9uKCJkYXRhIiwoZnVuY3Rpb24oYSl7KGMoIndyYXBwZWQgZGF0YSIpLHIuZGVjb2RlciYmKGE9ci5kZWNvZGVyLndyaXRlKGEpKSxyLm9iamVjdE1vZGUmJm51bGw9PWEpfHwoci5vYmplY3RNb2RlfHxhJiZhLmxlbmd0aCkmJih0LnB1c2goYSl8fChuPSEwLGUucGF1c2UoKSkpfSkpLGUpdm9pZCAwPT09dGhpc1thXSYmImZ1bmN0aW9uIj09dHlwZW9mIGVbYV0mJih0aGlzW2FdPWZ1bmN0aW9uIG1ldGhvZFdyYXAodCl7cmV0dXJuIGZ1bmN0aW9uIG1ldGhvZFdyYXBSZXR1cm5GdW5jdGlvbigpe3JldHVybiBlW3RdLmFwcGx5KGUsYXJndW1lbnRzKX19KGEpKTtmb3IodmFyIG89MDtvPEMubGVuZ3RoO28rKyllLm9uKENbb10sdGhpcy5lbWl0LmJpbmQodGhpcyxDW29dKSk7cmV0dXJuIHRoaXMuX3JlYWQ9ZnVuY3Rpb24odCl7Yygid3JhcHBlZCBfcmVhZCIsdCksbiYmKG49ITEsZS5yZXN1bWUoKSl9LHRoaXN9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihSZWFkYWJsZS5wcm90b3R5cGVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PXAmJihwPXIoOTU1KSkscCh0aGlzKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWFkYWJsZS5wcm90b3R5cGUsInJlYWRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uIGdldCgpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlYWRhYmxlLnByb3RvdHlwZSwicmVhZGFibGVCdWZmZXIiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbiBnZXQoKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlYWRhYmxlLnByb3RvdHlwZSwicmVhZGFibGVGbG93aW5nIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZ30sc2V0OmZ1bmN0aW9uIHNldChlKXt0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nPWUpfX0pLFJlYWRhYmxlLl9mcm9tTGlzdD1mcm9tTGlzdCxPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVhZGFibGUucHJvdG90eXBlLCJyZWFkYWJsZUxlbmd0aCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uIGdldCgpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmxlbmd0aH19KSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoUmVhZGFibGUuZnJvbT1mdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDA9PT1tJiYobT1yKDE1NykpLG0oUmVhZGFibGUsZSx0KX0pfSw0OTk6ZnVuY3Rpb24oZSl7dmFyIHQ9eyImIjoiJmFtcDsiLCciJzoiJnF1b3Q7IiwiJyI6IiZhcG9zOyIsIjwiOiImbHQ7IiwiPiI6IiZndDsifTtlLmV4cG9ydHM9ZnVuY3Rpb24gZXNjYXBlRm9yWE1MKGUpe3JldHVybiBlJiZlLnJlcGxhY2U/ZS5yZXBsYWNlKC8oWyYiPD4nXSkvZywoZnVuY3Rpb24oZSxyKXtyZXR1cm4gdFtyXX0pKTplfX0sNjAwOmZ1bmN0aW9uKGUsdCxyKXtlLmV4cG9ydHM9UGFzc1Rocm91Z2g7dmFyIG49cig2MTApO2Z1bmN0aW9uIFBhc3NUaHJvdWdoKGUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFBhc3NUaHJvdWdoKSlyZXR1cm4gbmV3IFBhc3NUaHJvdWdoKGUpO24uY2FsbCh0aGlzLGUpfXIoNjk4KShQYXNzVGhyb3VnaCxuKSxQYXNzVGhyb3VnaC5wcm90b3R5cGUuX3RyYW5zZm9ybT1mdW5jdGlvbihlLHQscil7cihudWxsLGUpfX0sNjA2OmZ1bmN0aW9uKGUpe3ZhciB0LHIsbj1lLmV4cG9ydHM9e307ZnVuY3Rpb24gZGVmYXVsdFNldFRpbW91dCgpe3Rocm93IG5ldyBFcnJvcigic2V0VGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCIpfWZ1bmN0aW9uIGRlZmF1bHRDbGVhclRpbWVvdXQoKXt0aHJvdyBuZXcgRXJyb3IoImNsZWFyVGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCIpfWZ1bmN0aW9uIHJ1blRpbWVvdXQoZSl7aWYodD09PXNldFRpbWVvdXQpcmV0dXJuIHNldFRpbWVvdXQoZSwwKTtpZigodD09PWRlZmF1bHRTZXRUaW1vdXR8fCF0KSYmc2V0VGltZW91dClyZXR1cm4gdD1zZXRUaW1lb3V0LHNldFRpbWVvdXQoZSwwKTt0cnl7cmV0dXJuIHQoZSwwKX1jYXRjaChyKXt0cnl7cmV0dXJuIHQuY2FsbChudWxsLGUsMCl9Y2F0Y2gocil7cmV0dXJuIHQuY2FsbCh0aGlzLGUsMCl9fX0hZnVuY3Rpb24oKXt0cnl7dD0iZnVuY3Rpb24iPT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0OmRlZmF1bHRTZXRUaW1vdXR9Y2F0Y2goZSl7dD1kZWZhdWx0U2V0VGltb3V0fXRyeXtyPSJmdW5jdGlvbiI9PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0OmRlZmF1bHRDbGVhclRpbWVvdXR9Y2F0Y2goZSl7cj1kZWZhdWx0Q2xlYXJUaW1lb3V0fX0oKTt2YXIgYSxvPVtdLHM9ITEsbD0tMTtmdW5jdGlvbiBjbGVhblVwTmV4dFRpY2soKXtzJiZhJiYocz0hMSxhLmxlbmd0aD9vPWEuY29uY2F0KG8pOmw9LTEsby5sZW5ndGgmJmRyYWluUXVldWUoKSl9ZnVuY3Rpb24gZHJhaW5RdWV1ZSgpe2lmKCFzKXt2YXIgZT1ydW5UaW1lb3V0KGNsZWFuVXBOZXh0VGljayk7cz0hMDtmb3IodmFyIHQ9by5sZW5ndGg7dDspe2ZvcihhPW8sbz1bXTsrK2w8dDspYSYmYVtsXS5ydW4oKTtsPS0xLHQ9by5sZW5ndGh9YT1udWxsLHM9ITEsZnVuY3Rpb24gcnVuQ2xlYXJUaW1lb3V0KGUpe2lmKHI9PT1jbGVhclRpbWVvdXQpcmV0dXJuIGNsZWFyVGltZW91dChlKTtpZigocj09PWRlZmF1bHRDbGVhclRpbWVvdXR8fCFyKSYmY2xlYXJUaW1lb3V0KXJldHVybiByPWNsZWFyVGltZW91dCxjbGVhclRpbWVvdXQoZSk7dHJ5e3JldHVybiByKGUpfWNhdGNoKHQpe3RyeXtyZXR1cm4gci5jYWxsKG51bGwsZSl9Y2F0Y2godCl7cmV0dXJuIHIuY2FsbCh0aGlzLGUpfX19KGUpfX1mdW5jdGlvbiBJdGVtKGUsdCl7dGhpcy5mdW49ZSx0aGlzLmFycmF5PXR9ZnVuY3Rpb24gbm9vcCgpe31uLm5leHRUaWNrPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoLTEpO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSlmb3IodmFyIHI9MTtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKXRbci0xXT1hcmd1bWVudHNbcl07by5wdXNoKG5ldyBJdGVtKGUsdCkpLDEhPT1vLmxlbmd0aHx8c3x8cnVuVGltZW91dChkcmFpblF1ZXVlKX0sSXRlbS5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKCl7dGhpcy5mdW4uYXBwbHkobnVsbCx0aGlzLmFycmF5KX0sbi50aXRsZT0iYnJvd3NlciIsbi5icm93c2VyPSEwLG4uZW52PXt9LG4uYXJndj1bXSxuLnZlcnNpb249IiIsbi52ZXJzaW9ucz17fSxuLm9uPW5vb3Asbi5hZGRMaXN0ZW5lcj1ub29wLG4ub25jZT1ub29wLG4ub2ZmPW5vb3Asbi5yZW1vdmVMaXN0ZW5lcj1ub29wLG4ucmVtb3ZlQWxsTGlzdGVuZXJzPW5vb3Asbi5lbWl0PW5vb3Asbi5wcmVwZW5kTGlzdGVuZXI9bm9vcCxuLnByZXBlbmRPbmNlTGlzdGVuZXI9bm9vcCxuLmxpc3RlbmVycz1mdW5jdGlvbihlKXtyZXR1cm5bXX0sbi5iaW5kaW5nPWZ1bmN0aW9uKGUpe3Rocm93IG5ldyBFcnJvcigicHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWQiKX0sbi5jd2Q9ZnVuY3Rpb24oKXtyZXR1cm4iLyJ9LG4uY2hkaXI9ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKCJwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQiKX0sbi51bWFzaz1mdW5jdGlvbigpe3JldHVybiAwfX0sNjEwOmZ1bmN0aW9uKGUsdCxyKXtlLmV4cG9ydHM9VHJhbnNmb3JtO3ZhciBuPXIoNDgpLkYsYT1uLkVSUl9NRVRIT0RfTk9UX0lNUExFTUVOVEVELG89bi5FUlJfTVVMVElQTEVfQ0FMTEJBQ0sscz1uLkVSUl9UUkFOU0ZPUk1fQUxSRUFEWV9UUkFOU0ZPUk1JTkcsbD1uLkVSUl9UUkFOU0ZPUk1fV0lUSF9MRU5HVEhfMCxpPXIoMzgyKTtmdW5jdGlvbiBhZnRlclRyYW5zZm9ybShlLHQpe3ZhciByPXRoaXMuX3RyYW5zZm9ybVN0YXRlO3IudHJhbnNmb3JtaW5nPSExO3ZhciBuPXIud3JpdGVjYjtpZihudWxsPT09bilyZXR1cm4gdGhpcy5lbWl0KCJlcnJvciIsbmV3IG8pO3Iud3JpdGVjaHVuaz1udWxsLHIud3JpdGVjYj1udWxsLG51bGwhPXQmJnRoaXMucHVzaCh0KSxuKGUpO3ZhciBhPXRoaXMuX3JlYWRhYmxlU3RhdGU7YS5yZWFkaW5nPSExLChhLm5lZWRSZWFkYWJsZXx8YS5sZW5ndGg8YS5oaWdoV2F0ZXJNYXJrKSYmdGhpcy5fcmVhZChhLmhpZ2hXYXRlck1hcmspfWZ1bmN0aW9uIFRyYW5zZm9ybShlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBUcmFuc2Zvcm0pKXJldHVybiBuZXcgVHJhbnNmb3JtKGUpO2kuY2FsbCh0aGlzLGUpLHRoaXMuX3RyYW5zZm9ybVN0YXRlPXthZnRlclRyYW5zZm9ybTphZnRlclRyYW5zZm9ybS5iaW5kKHRoaXMpLG5lZWRUcmFuc2Zvcm06ITEsdHJhbnNmb3JtaW5nOiExLHdyaXRlY2I6bnVsbCx3cml0ZWNodW5rOm51bGwsd3JpdGVlbmNvZGluZzpudWxsfSx0aGlzLl9yZWFkYWJsZVN0YXRlLm5lZWRSZWFkYWJsZT0hMCx0aGlzLl9yZWFkYWJsZVN0YXRlLnN5bmM9ITEsZSYmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLnRyYW5zZm9ybSYmKHRoaXMuX3RyYW5zZm9ybT1lLnRyYW5zZm9ybSksImZ1bmN0aW9uIj09dHlwZW9mIGUuZmx1c2gmJih0aGlzLl9mbHVzaD1lLmZsdXNoKSksdGhpcy5vbigicHJlZmluaXNoIixwcmVmaW5pc2gpfWZ1bmN0aW9uIHByZWZpbmlzaCgpe3ZhciBlPXRoaXM7ImZ1bmN0aW9uIiE9dHlwZW9mIHRoaXMuX2ZsdXNofHx0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD9kb25lKHRoaXMsbnVsbCxudWxsKTp0aGlzLl9mbHVzaCgoZnVuY3Rpb24odCxyKXtkb25lKGUsdCxyKX0pKX1mdW5jdGlvbiBkb25lKGUsdCxyKXtpZih0KXJldHVybiBlLmVtaXQoImVycm9yIix0KTtpZihudWxsIT1yJiZlLnB1c2gociksZS5fd3JpdGFibGVTdGF0ZS5sZW5ndGgpdGhyb3cgbmV3IGw7aWYoZS5fdHJhbnNmb3JtU3RhdGUudHJhbnNmb3JtaW5nKXRocm93IG5ldyBzO3JldHVybiBlLnB1c2gobnVsbCl9cig2OTgpKFRyYW5zZm9ybSxpKSxUcmFuc2Zvcm0ucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fdHJhbnNmb3JtU3RhdGUubmVlZFRyYW5zZm9ybT0hMSxpLnByb3RvdHlwZS5wdXNoLmNhbGwodGhpcyxlLHQpfSxUcmFuc2Zvcm0ucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24oZSx0LHIpe3IobmV3IGEoIl90cmFuc2Zvcm0oKSIpKX0sVHJhbnNmb3JtLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXRoaXMuX3RyYW5zZm9ybVN0YXRlO2lmKG4ud3JpdGVjYj1yLG4ud3JpdGVjaHVuaz1lLG4ud3JpdGVlbmNvZGluZz10LCFuLnRyYW5zZm9ybWluZyl7dmFyIGE9dGhpcy5fcmVhZGFibGVTdGF0ZTsobi5uZWVkVHJhbnNmb3JtfHxhLm5lZWRSZWFkYWJsZXx8YS5sZW5ndGg8YS5oaWdoV2F0ZXJNYXJrKSYmdGhpcy5fcmVhZChhLmhpZ2hXYXRlck1hcmspfX0sVHJhbnNmb3JtLnByb3RvdHlwZS5fcmVhZD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl90cmFuc2Zvcm1TdGF0ZTtudWxsPT09dC53cml0ZWNodW5rfHx0LnRyYW5zZm9ybWluZz90Lm5lZWRUcmFuc2Zvcm09ITA6KHQudHJhbnNmb3JtaW5nPSEwLHRoaXMuX3RyYW5zZm9ybSh0LndyaXRlY2h1bmssdC53cml0ZWVuY29kaW5nLHQuYWZ0ZXJUcmFuc2Zvcm0pKX0sVHJhbnNmb3JtLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihlLHQpe2kucHJvdG90eXBlLl9kZXN0cm95LmNhbGwodGhpcyxlLChmdW5jdGlvbihlKXt0KGUpfSkpfX0sNjQzOmZ1bmN0aW9uKGUsdCxyKXtmdW5jdGlvbiBjb25maWcoZSl7dHJ5e2lmKCFyLmcubG9jYWxTdG9yYWdlKXJldHVybiExfWNhdGNoKGUpe3JldHVybiExfXZhciB0PXIuZy5sb2NhbFN0b3JhZ2VbZV07cmV0dXJuIG51bGwhPXQmJiJ0cnVlIj09PVN0cmluZyh0KS50b0xvd2VyQ2FzZSgpfWUuZXhwb3J0cz1mdW5jdGlvbiBkZXByZWNhdGUoZSx0KXtpZihjb25maWcoIm5vRGVwcmVjYXRpb24iKSlyZXR1cm4gZTt2YXIgcj0hMTtyZXR1cm4gZnVuY3Rpb24gZGVwcmVjYXRlZCgpe2lmKCFyKXtpZihjb25maWcoInRocm93RGVwcmVjYXRpb24iKSl0aHJvdyBuZXcgRXJyb3IodCk7Y29uZmlnKCJ0cmFjZURlcHJlY2F0aW9uIik/Y29uc29sZS50cmFjZSh0KTpjb25zb2xlLndhcm4odCkscj0hMH1yZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX0sNjk4OmZ1bmN0aW9uKGUpeyJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuY3JlYXRlP2UuZXhwb3J0cz1mdW5jdGlvbiBpbmhlcml0cyhlLHQpe3QmJihlLnN1cGVyXz10LGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pKX06ZS5leHBvcnRzPWZ1bmN0aW9uIGluaGVyaXRzKGUsdCl7aWYodCl7ZS5zdXBlcl89dDt2YXIgVGVtcEN0b3I9ZnVuY3Rpb24oKXt9O1RlbXBDdG9yLnByb3RvdHlwZT10LnByb3RvdHlwZSxlLnByb3RvdHlwZT1uZXcgVGVtcEN0b3IsZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZX19fSw3MDg6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuLGE9cig2MDYpO2Z1bmN0aW9uIENvcmtlZFJlcXVlc3QoZSl7dmFyIHQ9dGhpczt0aGlzLm5leHQ9bnVsbCx0aGlzLmVudHJ5PW51bGwsdGhpcy5maW5pc2g9ZnVuY3Rpb24oKXshZnVuY3Rpb24gb25Db3JrZWRGaW5pc2goZSx0LHIpe3ZhciBuPWUuZW50cnk7ZS5lbnRyeT1udWxsO2Zvcig7bjspe3ZhciBhPW4uY2FsbGJhY2s7dC5wZW5kaW5nY2ItLSxhKHIpLG49bi5uZXh0fXQuY29ya2VkUmVxdWVzdHNGcmVlLm5leHQ9ZX0odCxlKX19ZS5leHBvcnRzPVdyaXRhYmxlLFdyaXRhYmxlLldyaXRhYmxlU3RhdGU9V3JpdGFibGVTdGF0ZTt2YXIgbz17ZGVwcmVjYXRlOnIoNjQzKX0scz1yKDM0NSksbD1yKDI4NykuQnVmZmVyLGk9KHZvaWQgMCE9PXIuZz9yLmc6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnt9KS5VaW50OEFycmF5fHxmdW5jdGlvbigpe307dmFyIGMsdT1yKDg5NiksZD1yKDI5MSkuZ2V0SGlnaFdhdGVyTWFyayxwPXIoNDgpLkYsbT1wLkVSUl9JTlZBTElEX0FSR19UWVBFLGY9cC5FUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCxoPXAuRVJSX01VTFRJUExFX0NBTExCQUNLLGc9cC5FUlJfU1RSRUFNX0NBTk5PVF9QSVBFLHk9cC5FUlJfU1RSRUFNX0RFU1RST1lFRCxTPXAuRVJSX1NUUkVBTV9OVUxMX1ZBTFVFUyxfPXAuRVJSX1NUUkVBTV9XUklURV9BRlRFUl9FTkQsdj1wLkVSUl9VTktOT1dOX0VOQ09ESU5HLGI9dS5lcnJvck9yRGVzdHJveTtmdW5jdGlvbiBub3AoKXt9ZnVuY3Rpb24gV3JpdGFibGVTdGF0ZShlLHQsbyl7bj1ufHxyKDM4MiksZT1lfHx7fSwiYm9vbGVhbiIhPXR5cGVvZiBvJiYobz10IGluc3RhbmNlb2YgbiksdGhpcy5vYmplY3RNb2RlPSEhZS5vYmplY3RNb2RlLG8mJih0aGlzLm9iamVjdE1vZGU9dGhpcy5vYmplY3RNb2RlfHwhIWUud3JpdGFibGVPYmplY3RNb2RlKSx0aGlzLmhpZ2hXYXRlck1hcms9ZCh0aGlzLGUsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIsbyksdGhpcy5maW5hbENhbGxlZD0hMSx0aGlzLm5lZWREcmFpbj0hMSx0aGlzLmVuZGluZz0hMSx0aGlzLmVuZGVkPSExLHRoaXMuZmluaXNoZWQ9ITEsdGhpcy5kZXN0cm95ZWQ9ITE7dmFyIHM9ITE9PT1lLmRlY29kZVN0cmluZ3M7dGhpcy5kZWNvZGVTdHJpbmdzPSFzLHRoaXMuZGVmYXVsdEVuY29kaW5nPWUuZGVmYXVsdEVuY29kaW5nfHwidXRmOCIsdGhpcy5sZW5ndGg9MCx0aGlzLndyaXRpbmc9ITEsdGhpcy5jb3JrZWQ9MCx0aGlzLnN5bmM9ITAsdGhpcy5idWZmZXJQcm9jZXNzaW5nPSExLHRoaXMub253cml0ZT1mdW5jdGlvbihlKXshZnVuY3Rpb24gb253cml0ZShlLHQpe3ZhciByPWUuX3dyaXRhYmxlU3RhdGUsbj1yLnN5bmMsbz1yLndyaXRlY2I7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG8pdGhyb3cgbmV3IGg7aWYoZnVuY3Rpb24gb253cml0ZVN0YXRlVXBkYXRlKGUpe2Uud3JpdGluZz0hMSxlLndyaXRlY2I9bnVsbCxlLmxlbmd0aC09ZS53cml0ZWxlbixlLndyaXRlbGVuPTB9KHIpLHQpIWZ1bmN0aW9uIG9ud3JpdGVFcnJvcihlLHQscixuLG8pey0tdC5wZW5kaW5nY2Iscj8oYS5uZXh0VGljayhvLG4pLGEubmV4dFRpY2soZmluaXNoTWF5YmUsZSx0KSxlLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxiKGUsbikpOihvKG4pLGUuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLGIoZSxuKSxmaW5pc2hNYXliZShlLHQpKX0oZSxyLG4sdCxvKTtlbHNle3ZhciBzPW5lZWRGaW5pc2gocil8fGUuZGVzdHJveWVkO3N8fHIuY29ya2VkfHxyLmJ1ZmZlclByb2Nlc3Npbmd8fCFyLmJ1ZmZlcmVkUmVxdWVzdHx8Y2xlYXJCdWZmZXIoZSxyKSxuP2EubmV4dFRpY2soYWZ0ZXJXcml0ZSxlLHIscyxvKTphZnRlcldyaXRlKGUscixzLG8pfX0odCxlKX0sdGhpcy53cml0ZWNiPW51bGwsdGhpcy53cml0ZWxlbj0wLHRoaXMuYnVmZmVyZWRSZXF1ZXN0PW51bGwsdGhpcy5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwsdGhpcy5wZW5kaW5nY2I9MCx0aGlzLnByZWZpbmlzaGVkPSExLHRoaXMuZXJyb3JFbWl0dGVkPSExLHRoaXMuZW1pdENsb3NlPSExIT09ZS5lbWl0Q2xvc2UsdGhpcy5hdXRvRGVzdHJveT0hIWUuYXV0b0Rlc3Ryb3ksdGhpcy5idWZmZXJlZFJlcXVlc3RDb3VudD0wLHRoaXMuY29ya2VkUmVxdWVzdHNGcmVlPW5ldyBDb3JrZWRSZXF1ZXN0KHRoaXMpfWZ1bmN0aW9uIFdyaXRhYmxlKGUpe3ZhciB0PXRoaXMgaW5zdGFuY2VvZihuPW58fHIoMzgyKSk7aWYoIXQmJiFjLmNhbGwoV3JpdGFibGUsdGhpcykpcmV0dXJuIG5ldyBXcml0YWJsZShlKTt0aGlzLl93cml0YWJsZVN0YXRlPW5ldyBXcml0YWJsZVN0YXRlKGUsdGhpcyx0KSx0aGlzLndyaXRhYmxlPSEwLGUmJigiZnVuY3Rpb24iPT10eXBlb2YgZS53cml0ZSYmKHRoaXMuX3dyaXRlPWUud3JpdGUpLCJmdW5jdGlvbiI9PXR5cGVvZiBlLndyaXRldiYmKHRoaXMuX3dyaXRldj1lLndyaXRldiksImZ1bmN0aW9uIj09dHlwZW9mIGUuZGVzdHJveSYmKHRoaXMuX2Rlc3Ryb3k9ZS5kZXN0cm95KSwiZnVuY3Rpb24iPT10eXBlb2YgZS5maW5hbCYmKHRoaXMuX2ZpbmFsPWUuZmluYWwpKSxzLmNhbGwodGhpcyl9ZnVuY3Rpb24gZG9Xcml0ZShlLHQscixuLGEsbyxzKXt0LndyaXRlbGVuPW4sdC53cml0ZWNiPXMsdC53cml0aW5nPSEwLHQuc3luYz0hMCx0LmRlc3Ryb3llZD90Lm9ud3JpdGUobmV3IHkoIndyaXRlIikpOnI/ZS5fd3JpdGV2KGEsdC5vbndyaXRlKTplLl93cml0ZShhLG8sdC5vbndyaXRlKSx0LnN5bmM9ITF9ZnVuY3Rpb24gYWZ0ZXJXcml0ZShlLHQscixuKXtyfHxmdW5jdGlvbiBvbndyaXRlRHJhaW4oZSx0KXswPT09dC5sZW5ndGgmJnQubmVlZERyYWluJiYodC5uZWVkRHJhaW49ITEsZS5lbWl0KCJkcmFpbiIpKX0oZSx0KSx0LnBlbmRpbmdjYi0tLG4oKSxmaW5pc2hNYXliZShlLHQpfWZ1bmN0aW9uIGNsZWFyQnVmZmVyKGUsdCl7dC5idWZmZXJQcm9jZXNzaW5nPSEwO3ZhciByPXQuYnVmZmVyZWRSZXF1ZXN0O2lmKGUuX3dyaXRldiYmciYmci5uZXh0KXt2YXIgbj10LmJ1ZmZlcmVkUmVxdWVzdENvdW50LGE9bmV3IEFycmF5KG4pLG89dC5jb3JrZWRSZXF1ZXN0c0ZyZWU7by5lbnRyeT1yO2Zvcih2YXIgcz0wLGw9ITA7cjspYVtzXT1yLHIuaXNCdWZ8fChsPSExKSxyPXIubmV4dCxzKz0xO2EuYWxsQnVmZmVycz1sLGRvV3JpdGUoZSx0LCEwLHQubGVuZ3RoLGEsIiIsby5maW5pc2gpLHQucGVuZGluZ2NiKyssdC5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwsby5uZXh0Pyh0LmNvcmtlZFJlcXVlc3RzRnJlZT1vLm5leHQsby5uZXh0PW51bGwpOnQuY29ya2VkUmVxdWVzdHNGcmVlPW5ldyBDb3JrZWRSZXF1ZXN0KHQpLHQuYnVmZmVyZWRSZXF1ZXN0Q291bnQ9MH1lbHNle2Zvcig7cjspe3ZhciBpPXIuY2h1bmssYz1yLmVuY29kaW5nLHU9ci5jYWxsYmFjaztpZihkb1dyaXRlKGUsdCwhMSx0Lm9iamVjdE1vZGU/MTppLmxlbmd0aCxpLGMsdSkscj1yLm5leHQsdC5idWZmZXJlZFJlcXVlc3RDb3VudC0tLHQud3JpdGluZylicmVha31udWxsPT09ciYmKHQubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsKX10LmJ1ZmZlcmVkUmVxdWVzdD1yLHQuYnVmZmVyUHJvY2Vzc2luZz0hMX1mdW5jdGlvbiBuZWVkRmluaXNoKGUpe3JldHVybiBlLmVuZGluZyYmMD09PWUubGVuZ3RoJiZudWxsPT09ZS5idWZmZXJlZFJlcXVlc3QmJiFlLmZpbmlzaGVkJiYhZS53cml0aW5nfWZ1bmN0aW9uIGNhbGxGaW5hbChlLHQpe2UuX2ZpbmFsKChmdW5jdGlvbihyKXt0LnBlbmRpbmdjYi0tLHImJmIoZSxyKSx0LnByZWZpbmlzaGVkPSEwLGUuZW1pdCgicHJlZmluaXNoIiksZmluaXNoTWF5YmUoZSx0KX0pKX1mdW5jdGlvbiBmaW5pc2hNYXliZShlLHQpe3ZhciByPW5lZWRGaW5pc2godCk7aWYociYmKGZ1bmN0aW9uIHByZWZpbmlzaChlLHQpe3QucHJlZmluaXNoZWR8fHQuZmluYWxDYWxsZWR8fCgiZnVuY3Rpb24iIT10eXBlb2YgZS5fZmluYWx8fHQuZGVzdHJveWVkPyh0LnByZWZpbmlzaGVkPSEwLGUuZW1pdCgicHJlZmluaXNoIikpOih0LnBlbmRpbmdjYisrLHQuZmluYWxDYWxsZWQ9ITAsYS5uZXh0VGljayhjYWxsRmluYWwsZSx0KSkpfShlLHQpLDA9PT10LnBlbmRpbmdjYiYmKHQuZmluaXNoZWQ9ITAsZS5lbWl0KCJmaW5pc2giKSx0LmF1dG9EZXN0cm95KSkpe3ZhciBuPWUuX3JlYWRhYmxlU3RhdGU7KCFufHxuLmF1dG9EZXN0cm95JiZuLmVuZEVtaXR0ZWQpJiZlLmRlc3Ryb3koKX1yZXR1cm4gcn1yKDY5OCkoV3JpdGFibGUscyksV3JpdGFibGVTdGF0ZS5wcm90b3R5cGUuZ2V0QnVmZmVyPWZ1bmN0aW9uIGdldEJ1ZmZlcigpe2Zvcih2YXIgZT10aGlzLmJ1ZmZlcmVkUmVxdWVzdCx0PVtdO2U7KXQucHVzaChlKSxlPWUubmV4dDtyZXR1cm4gdH0sZnVuY3Rpb24oKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFdyaXRhYmxlU3RhdGUucHJvdG90eXBlLCJidWZmZXIiLHtnZXQ6by5kZXByZWNhdGUoKGZ1bmN0aW9uIHdyaXRhYmxlU3RhdGVCdWZmZXJHZXR0ZXIoKXtyZXR1cm4gdGhpcy5nZXRCdWZmZXIoKX0pLCJfd3JpdGFibGVTdGF0ZS5idWZmZXIgaXMgZGVwcmVjYXRlZC4gVXNlIF93cml0YWJsZVN0YXRlLmdldEJ1ZmZlciBpbnN0ZWFkLiIsIkRFUDAwMDMiKX0pfWNhdGNoKGUpe319KCksImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmhhc0luc3RhbmNlJiYiZnVuY3Rpb24iPT10eXBlb2YgRnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0/KGM9RnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0sT2JqZWN0LmRlZmluZVByb3BlcnR5KFdyaXRhYmxlLFN5bWJvbC5oYXNJbnN0YW5jZSx7dmFsdWU6ZnVuY3Rpb24gdmFsdWUoZSl7cmV0dXJuISFjLmNhbGwodGhpcyxlKXx8dGhpcz09PVdyaXRhYmxlJiYoZSYmZS5fd3JpdGFibGVTdGF0ZSBpbnN0YW5jZW9mIFdyaXRhYmxlU3RhdGUpfX0pKTpjPWZ1bmN0aW9uIHJlYWxIYXNJbnN0YW5jZShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHRoaXN9LFdyaXRhYmxlLnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKCl7Yih0aGlzLG5ldyBnKX0sV3JpdGFibGUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGUsdCxyKXt2YXIgbj10aGlzLl93cml0YWJsZVN0YXRlLG89ITEscz0hbi5vYmplY3RNb2RlJiZmdW5jdGlvbiBfaXNVaW50OEFycmF5KGUpe3JldHVybiBsLmlzQnVmZmVyKGUpfHxlIGluc3RhbmNlb2YgaX0oZSk7cmV0dXJuIHMmJiFsLmlzQnVmZmVyKGUpJiYoZT1mdW5jdGlvbiBfdWludDhBcnJheVRvQnVmZmVyKGUpe3JldHVybiBsLmZyb20oZSl9KGUpKSwiZnVuY3Rpb24iPT10eXBlb2YgdCYmKHI9dCx0PW51bGwpLHM/dD0iYnVmZmVyIjp0fHwodD1uLmRlZmF1bHRFbmNvZGluZyksImZ1bmN0aW9uIiE9dHlwZW9mIHImJihyPW5vcCksbi5lbmRpbmc/ZnVuY3Rpb24gd3JpdGVBZnRlckVuZChlLHQpe3ZhciByPW5ldyBfO2IoZSxyKSxhLm5leHRUaWNrKHQscil9KHRoaXMscik6KHN8fGZ1bmN0aW9uIHZhbGlkQ2h1bmsoZSx0LHIsbil7dmFyIG87cmV0dXJuIG51bGw9PT1yP289bmV3IFM6InN0cmluZyI9PXR5cGVvZiByfHx0Lm9iamVjdE1vZGV8fChvPW5ldyBtKCJjaHVuayIsWyJzdHJpbmciLCJCdWZmZXIiXSxyKSksIW98fChiKGUsbyksYS5uZXh0VGljayhuLG8pLCExKX0odGhpcyxuLGUscikpJiYobi5wZW5kaW5nY2IrKyxvPWZ1bmN0aW9uIHdyaXRlT3JCdWZmZXIoZSx0LHIsbixhLG8pe2lmKCFyKXt2YXIgcz1mdW5jdGlvbiBkZWNvZGVDaHVuayhlLHQscil7ZS5vYmplY3RNb2RlfHwhMT09PWUuZGVjb2RlU3RyaW5nc3x8InN0cmluZyIhPXR5cGVvZiB0fHwodD1sLmZyb20odCxyKSk7cmV0dXJuIHR9KHQsbixhKTtuIT09cyYmKHI9ITAsYT0iYnVmZmVyIixuPXMpfXZhciBpPXQub2JqZWN0TW9kZT8xOm4ubGVuZ3RoO3QubGVuZ3RoKz1pO3ZhciBjPXQubGVuZ3RoPHQuaGlnaFdhdGVyTWFyaztjfHwodC5uZWVkRHJhaW49ITApO2lmKHQud3JpdGluZ3x8dC5jb3JrZWQpe3ZhciB1PXQubGFzdEJ1ZmZlcmVkUmVxdWVzdDt0Lmxhc3RCdWZmZXJlZFJlcXVlc3Q9e2NodW5rOm4sZW5jb2Rpbmc6YSxpc0J1ZjpyLGNhbGxiYWNrOm8sbmV4dDpudWxsfSx1P3UubmV4dD10Lmxhc3RCdWZmZXJlZFJlcXVlc3Q6dC5idWZmZXJlZFJlcXVlc3Q9dC5sYXN0QnVmZmVyZWRSZXF1ZXN0LHQuYnVmZmVyZWRSZXF1ZXN0Q291bnQrPTF9ZWxzZSBkb1dyaXRlKGUsdCwhMSxpLG4sYSxvKTtyZXR1cm4gY30odGhpcyxuLHMsZSx0LHIpKSxvfSxXcml0YWJsZS5wcm90b3R5cGUuY29yaz1mdW5jdGlvbigpe3RoaXMuX3dyaXRhYmxlU3RhdGUuY29ya2VkKyt9LFdyaXRhYmxlLnByb3RvdHlwZS51bmNvcms9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl93cml0YWJsZVN0YXRlO2UuY29ya2VkJiYoZS5jb3JrZWQtLSxlLndyaXRpbmd8fGUuY29ya2VkfHxlLmJ1ZmZlclByb2Nlc3Npbmd8fCFlLmJ1ZmZlcmVkUmVxdWVzdHx8Y2xlYXJCdWZmZXIodGhpcyxlKSl9LFdyaXRhYmxlLnByb3RvdHlwZS5zZXREZWZhdWx0RW5jb2Rpbmc9ZnVuY3Rpb24gc2V0RGVmYXVsdEVuY29kaW5nKGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSYmKGU9ZS50b0xvd2VyQ2FzZSgpKSwhKFsiaGV4IiwidXRmOCIsInV0Zi04IiwiYXNjaWkiLCJiaW5hcnkiLCJiYXNlNjQiLCJ1Y3MyIiwidWNzLTIiLCJ1dGYxNmxlIiwidXRmLTE2bGUiLCJyYXciXS5pbmRleE9mKChlKyIiKS50b0xvd2VyQ2FzZSgpKT4tMSkpdGhyb3cgbmV3IHYoZSk7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVmYXVsdEVuY29kaW5nPWUsdGhpc30sT2JqZWN0LmRlZmluZVByb3BlcnR5KFdyaXRhYmxlLnByb3RvdHlwZSwid3JpdGFibGVCdWZmZXIiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbiBnZXQoKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5nZXRCdWZmZXIoKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoV3JpdGFibGUucHJvdG90eXBlLCJ3cml0YWJsZUhpZ2hXYXRlck1hcmsiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbiBnZXQoKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLFdyaXRhYmxlLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oZSx0LHIpe3IobmV3IGYoIl93cml0ZSgpIikpfSxXcml0YWJsZS5wcm90b3R5cGUuX3dyaXRldj1udWxsLFdyaXRhYmxlLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXRoaXMuX3dyaXRhYmxlU3RhdGU7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGU/KHI9ZSxlPW51bGwsdD1udWxsKToiZnVuY3Rpb24iPT10eXBlb2YgdCYmKHI9dCx0PW51bGwpLG51bGwhPWUmJnRoaXMud3JpdGUoZSx0KSxuLmNvcmtlZCYmKG4uY29ya2VkPTEsdGhpcy51bmNvcmsoKSksbi5lbmRpbmd8fGZ1bmN0aW9uIGVuZFdyaXRhYmxlKGUsdCxyKXt0LmVuZGluZz0hMCxmaW5pc2hNYXliZShlLHQpLHImJih0LmZpbmlzaGVkP2EubmV4dFRpY2socik6ZS5vbmNlKCJmaW5pc2giLHIpKTt0LmVuZGVkPSEwLGUud3JpdGFibGU9ITF9KHRoaXMsbixyKSx0aGlzfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoV3JpdGFibGUucHJvdG90eXBlLCJ3cml0YWJsZUxlbmd0aCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uIGdldCgpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmxlbmd0aH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoV3JpdGFibGUucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbiBnZXQoKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbiBzZXQoZSl7dGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPWUpfX0pLFdyaXRhYmxlLnByb3RvdHlwZS5kZXN0cm95PXUuZGVzdHJveSxXcml0YWJsZS5wcm90b3R5cGUuX3VuZGVzdHJveT11LnVuZGVzdHJveSxXcml0YWJsZS5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24oZSx0KXt0KGUpfX0sNzEwOmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDY5OCksYT1yKDEwNyksbz1yKDM5Mikscz1yKDg2MSkuQnVmZmVyLGw9bmV3IEFycmF5KDY0KTtmdW5jdGlvbiBTaGEyMjQoKXt0aGlzLmluaXQoKSx0aGlzLl93PWwsby5jYWxsKHRoaXMsNjQsNTYpfW4oU2hhMjI0LGEpLFNoYTIyNC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPTMyMzgzNzEwMzIsdGhpcy5fYj05MTQxNTA2NjMsdGhpcy5fYz04MTI3MDI5OTksdGhpcy5fZD00MTQ0OTEyNjk3LHRoaXMuX2U9NDI5MDc3NTg1Nyx0aGlzLl9mPTE3NTA2MDMwMjUsdGhpcy5fZz0xNjk0MDc2ODM5LHRoaXMuX2g9MzIwNDA3NTQyOCx0aGlzfSxTaGEyMjQucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIGU9cy5hbGxvY1Vuc2FmZSgyOCk7cmV0dXJuIGUud3JpdGVJbnQzMkJFKHRoaXMuX2EsMCksZS53cml0ZUludDMyQkUodGhpcy5fYiw0KSxlLndyaXRlSW50MzJCRSh0aGlzLl9jLDgpLGUud3JpdGVJbnQzMkJFKHRoaXMuX2QsMTIpLGUud3JpdGVJbnQzMkJFKHRoaXMuX2UsMTYpLGUud3JpdGVJbnQzMkJFKHRoaXMuX2YsMjApLGUud3JpdGVJbnQzMkJFKHRoaXMuX2csMjQpLGV9LGUuZXhwb3J0cz1TaGEyMjR9LDcyNjpmdW5jdGlvbihlLHQscil7ZnVuY3Rpb24gb3duS2V5cyhlLHQpe3ZhciByPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKG49bi5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksci5wdXNoLmFwcGx5KHIsbil9cmV0dXJuIHJ9ZnVuY3Rpb24gX29iamVjdFNwcmVhZChlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgcj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj9vd25LZXlzKE9iamVjdChyKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7X2RlZmluZVByb3BlcnR5KGUsdCxyW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHIpKTpvd25LZXlzKE9iamVjdChyKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsdCkpfSkpfXJldHVybiBlfWZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShlLHQscil7cmV0dXJuKHQ9X3RvUHJvcGVydHlLZXkodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1yLGV9ZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXMoZSx0KXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49dFtyXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLF90b1Byb3BlcnR5S2V5KG4ua2V5KSxuKX19ZnVuY3Rpb24gX3RvUHJvcGVydHlLZXkoZSl7dmFyIHQ9ZnVuY3Rpb24gX3RvUHJpbWl0aXZlKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgcj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cil7dmFyIG49ci5jYWxsKGUsdHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIG4pcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT10P1N0cmluZzpOdW1iZXIpKGUpfShlLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHQ/dDpTdHJpbmcodCl9dmFyIG49cigyODcpLkJ1ZmZlcixhPXIoMzQwKS5pbnNwZWN0LG89YSYmYS5jdXN0b218fCJpbnNwZWN0IjtmdW5jdGlvbiBjb3B5QnVmZmVyKGUsdCxyKXtuLnByb3RvdHlwZS5jb3B5LmNhbGwoZSx0LHIpfWUuZXhwb3J0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIEJ1ZmZlckxpc3QoKXshZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsQnVmZmVyTGlzdCksdGhpcy5oZWFkPW51bGwsdGhpcy50YWlsPW51bGwsdGhpcy5sZW5ndGg9MH1yZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKGUsdCxyKXtyZXR1cm4gdCYmX2RlZmluZVByb3BlcnRpZXMoZS5wcm90b3R5cGUsdCksciYmX2RlZmluZVByb3BlcnRpZXMoZSxyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlfShCdWZmZXJMaXN0LFt7a2V5OiJwdXNoIix2YWx1ZTpmdW5jdGlvbiBwdXNoKGUpe3ZhciB0PXtkYXRhOmUsbmV4dDpudWxsfTt0aGlzLmxlbmd0aD4wP3RoaXMudGFpbC5uZXh0PXQ6dGhpcy5oZWFkPXQsdGhpcy50YWlsPXQsKyt0aGlzLmxlbmd0aH19LHtrZXk6InVuc2hpZnQiLHZhbHVlOmZ1bmN0aW9uIHVuc2hpZnQoZSl7dmFyIHQ9e2RhdGE6ZSxuZXh0OnRoaXMuaGVhZH07MD09PXRoaXMubGVuZ3RoJiYodGhpcy50YWlsPXQpLHRoaXMuaGVhZD10LCsrdGhpcy5sZW5ndGh9fSx7a2V5OiJzaGlmdCIsdmFsdWU6ZnVuY3Rpb24gc2hpZnQoKXtpZigwIT09dGhpcy5sZW5ndGgpe3ZhciBlPXRoaXMuaGVhZC5kYXRhO3JldHVybiAxPT09dGhpcy5sZW5ndGg/dGhpcy5oZWFkPXRoaXMudGFpbD1udWxsOnRoaXMuaGVhZD10aGlzLmhlYWQubmV4dCwtLXRoaXMubGVuZ3RoLGV9fX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uIGNsZWFyKCl7dGhpcy5oZWFkPXRoaXMudGFpbD1udWxsLHRoaXMubGVuZ3RoPTB9fSx7a2V5OiJqb2luIix2YWx1ZTpmdW5jdGlvbiBqb2luKGUpe2lmKDA9PT10aGlzLmxlbmd0aClyZXR1cm4iIjtmb3IodmFyIHQ9dGhpcy5oZWFkLHI9IiIrdC5kYXRhO3Q9dC5uZXh0OylyKz1lK3QuZGF0YTtyZXR1cm4gcn19LHtrZXk6ImNvbmNhdCIsdmFsdWU6ZnVuY3Rpb24gY29uY2F0KGUpe2lmKDA9PT10aGlzLmxlbmd0aClyZXR1cm4gbi5hbGxvYygwKTtmb3IodmFyIHQ9bi5hbGxvY1Vuc2FmZShlPj4+MCkscj10aGlzLmhlYWQsYT0wO3I7KWNvcHlCdWZmZXIoci5kYXRhLHQsYSksYSs9ci5kYXRhLmxlbmd0aCxyPXIubmV4dDtyZXR1cm4gdH19LHtrZXk6ImNvbnN1bWUiLHZhbHVlOmZ1bmN0aW9uIGNvbnN1bWUoZSx0KXt2YXIgcjtyZXR1cm4gZTx0aGlzLmhlYWQuZGF0YS5sZW5ndGg/KHI9dGhpcy5oZWFkLmRhdGEuc2xpY2UoMCxlKSx0aGlzLmhlYWQuZGF0YT10aGlzLmhlYWQuZGF0YS5zbGljZShlKSk6cj1lPT09dGhpcy5oZWFkLmRhdGEubGVuZ3RoP3RoaXMuc2hpZnQoKTp0P3RoaXMuX2dldFN0cmluZyhlKTp0aGlzLl9nZXRCdWZmZXIoZSkscn19LHtrZXk6ImZpcnN0Iix2YWx1ZTpmdW5jdGlvbiBmaXJzdCgpe3JldHVybiB0aGlzLmhlYWQuZGF0YX19LHtrZXk6Il9nZXRTdHJpbmciLHZhbHVlOmZ1bmN0aW9uIF9nZXRTdHJpbmcoZSl7dmFyIHQ9dGhpcy5oZWFkLHI9MSxuPXQuZGF0YTtmb3IoZS09bi5sZW5ndGg7dD10Lm5leHQ7KXt2YXIgYT10LmRhdGEsbz1lPmEubGVuZ3RoP2EubGVuZ3RoOmU7aWYobz09PWEubGVuZ3RoP24rPWE6bis9YS5zbGljZSgwLGUpLDA9PT0oZS09bykpe289PT1hLmxlbmd0aD8oKytyLHQubmV4dD90aGlzLmhlYWQ9dC5uZXh0OnRoaXMuaGVhZD10aGlzLnRhaWw9bnVsbCk6KHRoaXMuaGVhZD10LHQuZGF0YT1hLnNsaWNlKG8pKTticmVha30rK3J9cmV0dXJuIHRoaXMubGVuZ3RoLT1yLG59fSx7a2V5OiJfZ2V0QnVmZmVyIix2YWx1ZTpmdW5jdGlvbiBfZ2V0QnVmZmVyKGUpe3ZhciB0PW4uYWxsb2NVbnNhZmUoZSkscj10aGlzLmhlYWQsYT0xO2ZvcihyLmRhdGEuY29weSh0KSxlLT1yLmRhdGEubGVuZ3RoO3I9ci5uZXh0Oyl7dmFyIG89ci5kYXRhLHM9ZT5vLmxlbmd0aD9vLmxlbmd0aDplO2lmKG8uY29weSh0LHQubGVuZ3RoLWUsMCxzKSwwPT09KGUtPXMpKXtzPT09by5sZW5ndGg/KCsrYSxyLm5leHQ/dGhpcy5oZWFkPXIubmV4dDp0aGlzLmhlYWQ9dGhpcy50YWlsPW51bGwpOih0aGlzLmhlYWQ9cixyLmRhdGE9by5zbGljZShzKSk7YnJlYWt9KythfXJldHVybiB0aGlzLmxlbmd0aC09YSx0fX0se2tleTpvLHZhbHVlOmZ1bmN0aW9uIHZhbHVlKGUsdCl7cmV0dXJuIGEodGhpcyxfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sdCkse30se2RlcHRoOjAsY3VzdG9tSW5zcGVjdDohMX0pKX19XSksQnVmZmVyTGlzdH0oKX0sNzM3OmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDY5OCksYT1yKDM5Miksbz1yKDg2MSkuQnVmZmVyLHM9WzE1MTg1MDAyNDksMTg1OTc3NTM5MywtMTg5NDAwNzU4OCwtODk5NDk3NTE0XSxsPW5ldyBBcnJheSg4MCk7ZnVuY3Rpb24gU2hhMSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9bCxhLmNhbGwodGhpcyw2NCw1Nil9ZnVuY3Rpb24gcm90bDUoZSl7cmV0dXJuIGU8PDV8ZT4+PjI3fWZ1bmN0aW9uIHJvdGwzMChlKXtyZXR1cm4gZTw8MzB8ZT4+PjJ9ZnVuY3Rpb24gZnQoZSx0LHIsbil7cmV0dXJuIDA9PT1lP3Qmcnx+dCZuOjI9PT1lP3Qmcnx0Jm58ciZuOnRecl5ufW4oU2hhMSxhKSxTaGExLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4LHRoaXMuX2U9MzI4NTM3NzUyMCx0aGlzfSxTaGExLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxyPXRoaXMuX3csbj0wfHRoaXMuX2EsYT0wfHRoaXMuX2Isbz0wfHRoaXMuX2MsbD0wfHRoaXMuX2QsaT0wfHRoaXMuX2UsYz0wO2M8MTY7KytjKXJbY109ZS5yZWFkSW50MzJCRSg0KmMpO2Zvcig7Yzw4MDsrK2MpcltjXT0odD1yW2MtM11ecltjLThdXnJbYy0xNF1ecltjLTE2XSk8PDF8dD4+PjMxO2Zvcih2YXIgdT0wO3U8ODA7Kyt1KXt2YXIgZD1+fih1LzIwKSxwPXJvdGw1KG4pK2Z0KGQsYSxvLGwpK2krclt1XStzW2RdfDA7aT1sLGw9byxvPXJvdGwzMChhKSxhPW4sbj1wfXRoaXMuX2E9bit0aGlzLl9hfDAsdGhpcy5fYj1hK3RoaXMuX2J8MCx0aGlzLl9jPW8rdGhpcy5fY3wwLHRoaXMuX2Q9bCt0aGlzLl9kfDAsdGhpcy5fZT1pK3RoaXMuX2V8MH0sU2hhMS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgZT1vLmFsbG9jVW5zYWZlKDIwKTtyZXR1cm4gZS53cml0ZUludDMyQkUoMHx0aGlzLl9hLDApLGUud3JpdGVJbnQzMkJFKDB8dGhpcy5fYiw0KSxlLndyaXRlSW50MzJCRSgwfHRoaXMuX2MsOCksZS53cml0ZUludDMyQkUoMHx0aGlzLl9kLDEyKSxlLndyaXRlSW50MzJCRSgwfHRoaXMuX2UsMTYpLGV9LGUuZXhwb3J0cz1TaGExfSw3NTg6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuO3ZhciBhPXIoNDgpLkYsbz1hLkVSUl9NSVNTSU5HX0FSR1Mscz1hLkVSUl9TVFJFQU1fREVTVFJPWUVEO2Z1bmN0aW9uIG5vb3AoZSl7aWYoZSl0aHJvdyBlfWZ1bmN0aW9uIGNhbGwoZSl7ZSgpfWZ1bmN0aW9uIHBpcGUoZSx0KXtyZXR1cm4gZS5waXBlKHQpfWUuZXhwb3J0cz1mdW5jdGlvbiBwaXBlbGluZSgpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KGUpLGE9MDthPGU7YSsrKXRbYV09YXJndW1lbnRzW2FdO3ZhciBsLGk9ZnVuY3Rpb24gcG9wQ2FsbGJhY2soZSl7cmV0dXJuIGUubGVuZ3RoPyJmdW5jdGlvbiIhPXR5cGVvZiBlW2UubGVuZ3RoLTFdP25vb3A6ZS5wb3AoKTpub29wfSh0KTtpZihBcnJheS5pc0FycmF5KHRbMF0pJiYodD10WzBdKSx0Lmxlbmd0aDwyKXRocm93IG5ldyBvKCJzdHJlYW1zIik7dmFyIGM9dC5tYXAoKGZ1bmN0aW9uKGUsYSl7dmFyIG89YTx0Lmxlbmd0aC0xO3JldHVybiBmdW5jdGlvbiBkZXN0cm95ZXIoZSx0LGEsbyl7bz1mdW5jdGlvbiBvbmNlKGUpe3ZhciB0PSExO3JldHVybiBmdW5jdGlvbigpe3R8fCh0PSEwLGUuYXBwbHkodm9pZCAwLGFyZ3VtZW50cykpfX0obyk7dmFyIGw9ITE7ZS5vbigiY2xvc2UiLChmdW5jdGlvbigpe2w9ITB9KSksdm9pZCAwPT09biYmKG49cigyMzgpKSxuKGUse3JlYWRhYmxlOnQsd3JpdGFibGU6YX0sKGZ1bmN0aW9uKGUpe2lmKGUpcmV0dXJuIG8oZSk7bD0hMCxvKCl9KSk7dmFyIGk9ITE7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKCFsJiYhaSlyZXR1cm4gaT0hMCxmdW5jdGlvbiBpc1JlcXVlc3QoZSl7cmV0dXJuIGUuc2V0SGVhZGVyJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5hYm9ydH0oZSk/ZS5hYm9ydCgpOiJmdW5jdGlvbiI9PXR5cGVvZiBlLmRlc3Ryb3k/ZS5kZXN0cm95KCk6dm9pZCBvKHR8fG5ldyBzKCJwaXBlIikpfX0oZSxvLGE+MCwoZnVuY3Rpb24oZSl7bHx8KGw9ZSksZSYmYy5mb3JFYWNoKGNhbGwpLG98fChjLmZvckVhY2goY2FsbCksaShsKSl9KSl9KSk7cmV0dXJuIHQucmVkdWNlKHBpcGUpfX0sODAyOmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1lLmV4cG9ydHM9ZnVuY3Rpb24gU0hBKGUpe2U9ZS50b0xvd2VyQ2FzZSgpO3ZhciB0PW5bZV07aWYoIXQpdGhyb3cgbmV3IEVycm9yKGUrIiBpcyBub3Qgc3VwcG9ydGVkICh3ZSBhY2NlcHQgcHVsbCByZXF1ZXN0cykiKTtyZXR1cm4gbmV3IHR9O24uc2hhPXIoODE2KSxuLnNoYTE9cig3MzcpLG4uc2hhMjI0PXIoNzEwKSxuLnNoYTI1Nj1yKDEwNyksbi5zaGEzODQ9cig4MjcpLG4uc2hhNTEyPXIoODkwKX0sODE2OmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDY5OCksYT1yKDM5Miksbz1yKDg2MSkuQnVmZmVyLHM9WzE1MTg1MDAyNDksMTg1OTc3NTM5MywtMTg5NDAwNzU4OCwtODk5NDk3NTE0XSxsPW5ldyBBcnJheSg4MCk7ZnVuY3Rpb24gU2hhKCl7dGhpcy5pbml0KCksdGhpcy5fdz1sLGEuY2FsbCh0aGlzLDY0LDU2KX1mdW5jdGlvbiByb3RsMzAoZSl7cmV0dXJuIGU8PDMwfGU+Pj4yfWZ1bmN0aW9uIGZ0KGUsdCxyLG4pe3JldHVybiAwPT09ZT90JnJ8fnQmbjoyPT09ZT90JnJ8dCZufHImbjp0XnJebn1uKFNoYSxhKSxTaGEucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIwLHRoaXN9LFNoYS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihlKXtmb3IodmFyIHQscj10aGlzLl93LG49MHx0aGlzLl9hLGE9MHx0aGlzLl9iLG89MHx0aGlzLl9jLGw9MHx0aGlzLl9kLGk9MHx0aGlzLl9lLGM9MDtjPDE2OysrYylyW2NdPWUucmVhZEludDMyQkUoNCpjKTtmb3IoO2M8ODA7KytjKXJbY109cltjLTNdXnJbYy04XV5yW2MtMTRdXnJbYy0xNl07Zm9yKHZhciB1PTA7dTw4MDsrK3Upe3ZhciBkPX5+KHUvMjApLHA9MHwoKHQ9bik8PDV8dD4+PjI3KStmdChkLGEsbyxsKStpK3JbdV0rc1tkXTtpPWwsbD1vLG89cm90bDMwKGEpLGE9bixuPXB9dGhpcy5fYT1uK3RoaXMuX2F8MCx0aGlzLl9iPWErdGhpcy5fYnwwLHRoaXMuX2M9byt0aGlzLl9jfDAsdGhpcy5fZD1sK3RoaXMuX2R8MCx0aGlzLl9lPWkrdGhpcy5fZXwwfSxTaGEucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIGU9by5hbGxvY1Vuc2FmZSgyMCk7cmV0dXJuIGUud3JpdGVJbnQzMkJFKDB8dGhpcy5fYSwwKSxlLndyaXRlSW50MzJCRSgwfHRoaXMuX2IsNCksZS53cml0ZUludDMyQkUoMHx0aGlzLl9jLDgpLGUud3JpdGVJbnQzMkJFKDB8dGhpcy5fZCwxMiksZS53cml0ZUludDMyQkUoMHx0aGlzLl9lLDE2KSxlfSxlLmV4cG9ydHM9U2hhfSw4Mjc6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNjk4KSxhPXIoODkwKSxvPXIoMzkyKSxzPXIoODYxKS5CdWZmZXIsbD1uZXcgQXJyYXkoMTYwKTtmdW5jdGlvbiBTaGEzODQoKXt0aGlzLmluaXQoKSx0aGlzLl93PWwsby5jYWxsKHRoaXMsMTI4LDExMil9bihTaGEzODQsYSksU2hhMzg0LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FoPTM0MTgwNzAzNjUsdGhpcy5fYmg9MTY1NDI3MDI1MCx0aGlzLl9jaD0yNDM4NTI5MzcwLHRoaXMuX2RoPTM1NTQ2MjM2MCx0aGlzLl9laD0xNzMxNDA1NDE1LHRoaXMuX2ZoPTIzOTQxODAyMzEsdGhpcy5fZ2g9MzY3NTAwODUyNSx0aGlzLl9oaD0xMjAzMDYyODEzLHRoaXMuX2FsPTMyMzgzNzEwMzIsdGhpcy5fYmw9OTE0MTUwNjYzLHRoaXMuX2NsPTgxMjcwMjk5OSx0aGlzLl9kbD00MTQ0OTEyNjk3LHRoaXMuX2VsPTQyOTA3NzU4NTcsdGhpcy5fZmw9MTc1MDYwMzAyNSx0aGlzLl9nbD0xNjk0MDc2ODM5LHRoaXMuX2hsPTMyMDQwNzU0MjgsdGhpc30sU2hhMzg0LnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBlPXMuYWxsb2NVbnNhZmUoNDgpO2Z1bmN0aW9uIHdyaXRlSW50NjRCRSh0LHIsbil7ZS53cml0ZUludDMyQkUodCxuKSxlLndyaXRlSW50MzJCRShyLG4rNCl9cmV0dXJuIHdyaXRlSW50NjRCRSh0aGlzLl9haCx0aGlzLl9hbCwwKSx3cml0ZUludDY0QkUodGhpcy5fYmgsdGhpcy5fYmwsOCksd3JpdGVJbnQ2NEJFKHRoaXMuX2NoLHRoaXMuX2NsLDE2KSx3cml0ZUludDY0QkUodGhpcy5fZGgsdGhpcy5fZGwsMjQpLHdyaXRlSW50NjRCRSh0aGlzLl9laCx0aGlzLl9lbCwzMiksd3JpdGVJbnQ2NEJFKHRoaXMuX2ZoLHRoaXMuX2ZsLDQwKSxlfSxlLmV4cG9ydHM9U2hhMzg0fSw4Mzg6ZnVuY3Rpb24oKXt9LDg2MTpmdW5jdGlvbihlLHQscil7dmFyIG49cigyODcpLGE9bi5CdWZmZXI7ZnVuY3Rpb24gY29weVByb3BzKGUsdCl7Zm9yKHZhciByIGluIGUpdFtyXT1lW3JdfWZ1bmN0aW9uIFNhZmVCdWZmZXIoZSx0LHIpe3JldHVybiBhKGUsdCxyKX1hLmZyb20mJmEuYWxsb2MmJmEuYWxsb2NVbnNhZmUmJmEuYWxsb2NVbnNhZmVTbG93P2UuZXhwb3J0cz1uOihjb3B5UHJvcHMobix0KSx0LkJ1ZmZlcj1TYWZlQnVmZmVyKSxTYWZlQnVmZmVyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGEucHJvdG90eXBlKSxjb3B5UHJvcHMoYSxTYWZlQnVmZmVyKSxTYWZlQnVmZmVyLmZyb209ZnVuY3Rpb24oZSx0LHIpe2lmKCJudW1iZXIiPT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IG5vdCBiZSBhIG51bWJlciIpO3JldHVybiBhKGUsdCxyKX0sU2FmZUJ1ZmZlci5hbGxvYz1mdW5jdGlvbihlLHQscil7aWYoIm51bWJlciIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTt2YXIgbj1hKGUpO3JldHVybiB2b2lkIDAhPT10PyJzdHJpbmciPT10eXBlb2Ygcj9uLmZpbGwodCxyKTpuLmZpbGwodCk6bi5maWxsKDApLG59LFNhZmVCdWZmZXIuYWxsb2NVbnNhZmU9ZnVuY3Rpb24oZSl7aWYoIm51bWJlciIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gYShlKX0sU2FmZUJ1ZmZlci5hbGxvY1Vuc2FmZVNsb3c9ZnVuY3Rpb24oZSl7aWYoIm51bWJlciIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gbi5TbG93QnVmZmVyKGUpfX0sODkwOmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDY5OCksYT1yKDM5Miksbz1yKDg2MSkuQnVmZmVyLHM9WzExMTYzNTI0MDgsMzYwOTc2NzQ1OCwxODk5NDQ3NDQxLDYwMjg5MTcyNSwzMDQ5MzIzNDcxLDM5NjQ0ODQzOTksMzkyMTAwOTU3MywyMTczMjk1NTQ4LDk2MTk4NzE2Myw0MDgxNjI4NDcyLDE1MDg5NzA5OTMsMzA1MzgzNDI2NSwyNDUzNjM1NzQ4LDI5Mzc2NzE1NzksMjg3MDc2MzIyMSwzNjY0NjA5NTYwLDM2MjQzODEwODAsMjczNDg4MzM5NCwzMTA1OTg0MDEsMTE2NDk5NjU0Miw2MDcyMjUyNzgsMTMyMzYxMDc2NCwxNDI2ODgxOTg3LDM1OTAzMDQ5OTQsMTkyNTA3ODM4OCw0MDY4MTgyMzgzLDIxNjIwNzgyMDYsOTkxMzM2MTEzLDI2MTQ4ODgxMDMsNjMzODAzMzE3LDMyNDgyMjI1ODAsMzQ3OTc3NDg2OCwzODM1MzkwNDAxLDI2NjY2MTM0NTgsNDAyMjIyNDc3NCw5NDQ3MTExMzksMjY0MzQ3MDc4LDIzNDEyNjI3NzMsNjA0ODA3NjI4LDIwMDc4MDA5MzMsNzcwMjU1OTgzLDE0OTU5OTA5MDEsMTI0OTE1MDEyMiwxODU2NDMxMjM1LDE1NTUwODE2OTIsMzE3NTIxODEzMiwxOTk2MDY0OTg2LDIxOTg5NTA4MzcsMjU1NDIyMDg4MiwzOTk5NzE5MzM5LDI4MjE4MzQzNDksNzY2Nzg0MDE2LDI5NTI5OTY4MDgsMjU2NjU5NDg3OSwzMjEwMzEzNjcxLDMyMDMzMzc5NTYsMzMzNjU3MTg5MSwxMDM0NDU3MDI2LDM1ODQ1Mjg3MTEsMjQ2Njk0ODkwMSwxMTM5MjY5OTMsMzc1ODMyNjM4MywzMzgyNDE4OTUsMTY4NzE3OTM2LDY2NjMwNzIwNSwxMTg4MTc5OTY0LDc3MzUyOTkxMiwxNTQ2MDQ1NzM0LDEyOTQ3NTczNzIsMTUyMjgwNTQ4NSwxMzk2MTgyMjkxLDI2NDM4MzM4MjMsMTY5NTE4MzcwMCwyMzQzNTI3MzkwLDE5ODY2NjEwNTEsMTAxNDQ3NzQ4MCwyMTc3MDI2MzUwLDEyMDY3NTkxNDIsMjQ1Njk1NjAzNywzNDQwNzc2MjcsMjczMDQ4NTkyMSwxMjkwODYzNDYwLDI4MjAzMDI0MTEsMzE1ODQ1NDI3MywzMjU5NzMwODAwLDM1MDU5NTI2NTcsMzM0NTc2NDc3MSwxMDYyMTcwMDgsMzUxNjA2NTgxNywzNjA2MDA4MzQ0LDM2MDAzNTI4MDQsMTQzMjcyNTc3Niw0MDk0NTcxOTA5LDE0NjcwMzE1OTQsMjc1NDIzMzQ0LDg1MTE2OTcyMCw0MzAyMjc3MzQsMzEwMDgyMzc1Miw1MDY5NDg2MTYsMTM2MzI1ODE5NSw2NTkwNjA1NTYsMzc1MDY4NTU5Myw4ODM5OTc4NzcsMzc4NTA1MDI4MCw5NTgxMzk1NzEsMzMxODMwNzQyNywxMzIyODIyMjE4LDM4MTI3MjM0MDMsMTUzNzAwMjA2MywyMDAzMDM0OTk1LDE3NDc4NzM3NzksMzYwMjAzNjg5OSwxOTU1NTYyMjIyLDE1NzU5OTAwMTIsMjAyNDEwNDgxNSwxMTI1NTkyOTI4LDIyMjc3MzA0NTIsMjcxNjkwNDMwNiwyMzYxODUyNDI0LDQ0Mjc3NjA0NCwyNDI4NDM2NDc0LDU5MzY5ODM0NCwyNzU2NzM0MTg3LDM3MzMxMTAyNDksMzIwNDAzMTQ3OSwyOTk5MzUxNTczLDMzMjkzMjUyOTgsMzgxNTkyMDQyNywzMzkxNTY5NjE0LDM5MjgzODM5MDAsMzUxNTI2NzI3MSw1NjYyODA3MTEsMzk0MDE4NzYwNiwzNDU0MDY5NTM0LDQxMTg2MzAyNzEsNDAwMDIzOTk5MiwxMTY0MTg0NzQsMTkxNDEzODU1NCwxNzQyOTI0MjEsMjczMTA1NTI3MCwyODkzODAzNTYsMzIwMzk5MzAwNiw0NjAzOTMyNjksMzIwNjIwMzE1LDY4NTQ3MTczMyw1ODc0OTY4MzYsODUyMTQyOTcxLDEwODY3OTI4NTEsMTAxNzAzNjI5OCwzNjU1NDMxMDAsMTEyNjAwMDU4MCwyNjE4Mjk3Njc2LDEyODgwMzM0NzAsMzQwOTg1NTE1OCwxNTAxNTA1OTQ4LDQyMzQ1MDk4NjYsMTYwNzE2NzkxNSw5ODcxNjc0NjgsMTgxNjQwMjMxNiwxMjQ2MTg5NTkxXSxsPW5ldyBBcnJheSgxNjApO2Z1bmN0aW9uIFNoYTUxMigpe3RoaXMuaW5pdCgpLHRoaXMuX3c9bCxhLmNhbGwodGhpcywxMjgsMTEyKX1mdW5jdGlvbiBDaChlLHQscil7cmV0dXJuIHJeZSYodF5yKX1mdW5jdGlvbiBtYWooZSx0LHIpe3JldHVybiBlJnR8ciYoZXx0KX1mdW5jdGlvbiBzaWdtYTAoZSx0KXtyZXR1cm4oZT4+PjI4fHQ8PDQpXih0Pj4+MnxlPDwzMCleKHQ+Pj43fGU8PDI1KX1mdW5jdGlvbiBzaWdtYTEoZSx0KXtyZXR1cm4oZT4+PjE0fHQ8PDE4KV4oZT4+PjE4fHQ8PDE0KV4odD4+Pjl8ZTw8MjMpfWZ1bmN0aW9uIEdhbW1hMChlLHQpe3JldHVybihlPj4+MXx0PDwzMSleKGU+Pj44fHQ8PDI0KV5lPj4+N31mdW5jdGlvbiBHYW1tYTBsKGUsdCl7cmV0dXJuKGU+Pj4xfHQ8PDMxKV4oZT4+Pjh8dDw8MjQpXihlPj4+N3x0PDwyNSl9ZnVuY3Rpb24gR2FtbWExKGUsdCl7cmV0dXJuKGU+Pj4xOXx0PDwxMyleKHQ+Pj4yOXxlPDwzKV5lPj4+Nn1mdW5jdGlvbiBHYW1tYTFsKGUsdCl7cmV0dXJuKGU+Pj4xOXx0PDwxMyleKHQ+Pj4yOXxlPDwzKV4oZT4+PjZ8dDw8MjYpfWZ1bmN0aW9uIGdldENhcnJ5KGUsdCl7cmV0dXJuIGU+Pj4wPHQ+Pj4wPzE6MH1uKFNoYTUxMixhKSxTaGE1MTIucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWg9MTc3OTAzMzcwMyx0aGlzLl9iaD0zMTQ0MTM0Mjc3LHRoaXMuX2NoPTEwMTM5MDQyNDIsdGhpcy5fZGg9Mjc3MzQ4MDc2Mix0aGlzLl9laD0xMzU5ODkzMTE5LHRoaXMuX2ZoPTI2MDA4MjI5MjQsdGhpcy5fZ2g9NTI4NzM0NjM1LHRoaXMuX2hoPTE1NDE0NTkyMjUsdGhpcy5fYWw9NDA4OTIzNTcyMCx0aGlzLl9ibD0yMjI3ODczNTk1LHRoaXMuX2NsPTQyNzExNzU3MjMsdGhpcy5fZGw9MTU5NTc1MDEyOSx0aGlzLl9lbD0yOTE3NTY1MTM3LHRoaXMuX2ZsPTcyNTUxMTE5OSx0aGlzLl9nbD00MjE1Mzg5NTQ3LHRoaXMuX2hsPTMyNzAzMzIwOSx0aGlzfSxTaGE1MTIucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMuX3cscj0wfHRoaXMuX2FoLG49MHx0aGlzLl9iaCxhPTB8dGhpcy5fY2gsbz0wfHRoaXMuX2RoLGw9MHx0aGlzLl9laCxpPTB8dGhpcy5fZmgsYz0wfHRoaXMuX2doLHU9MHx0aGlzLl9oaCxkPTB8dGhpcy5fYWwscD0wfHRoaXMuX2JsLG09MHx0aGlzLl9jbCxmPTB8dGhpcy5fZGwsaD0wfHRoaXMuX2VsLGc9MHx0aGlzLl9mbCx5PTB8dGhpcy5fZ2wsUz0wfHRoaXMuX2hsLF89MDtfPDMyO18rPTIpdFtfXT1lLnJlYWRJbnQzMkJFKDQqXyksdFtfKzFdPWUucmVhZEludDMyQkUoNCpfKzQpO2Zvcig7XzwxNjA7Xys9Mil7dmFyIHY9dFtfLTMwXSxiPXRbXy0zMCsxXSx3PUdhbW1hMCh2LGIpLEM9R2FtbWEwbChiLHYpLHg9R2FtbWExKHY9dFtfLTRdLGI9dFtfLTQrMV0pLE89R2FtbWExbChiLHYpLGs9dFtfLTE0XSxOPXRbXy0xNCsxXSxBPXRbXy0zMl0sST10W18tMzIrMV0saj1DK058MCxSPXcraytnZXRDYXJyeShqLEMpfDA7Uj0oUj1SK3grZ2V0Q2Fycnkoaj1qK098MCxPKXwwKStBK2dldENhcnJ5KGo9aitJfDAsSSl8MCx0W19dPVIsdFtfKzFdPWp9Zm9yKHZhciBUPTA7VDwxNjA7VCs9Mil7Uj10W1RdLGo9dFtUKzFdO3ZhciBQPW1haihyLG4sYSksQj1tYWooZCxwLG0pLE09c2lnbWEwKHIsZCkscT1zaWdtYTAoZCxyKSxMPXNpZ21hMShsLGgpLFU9c2lnbWExKGgsbCksRD1zW1RdLCQ9c1tUKzFdLFY9Q2gobCxpLGMpLEo9Q2goaCxnLHkpLEY9UytVfDAsej11K0wrZ2V0Q2FycnkoRixTKXwwO3o9KHo9KHo9eitWK2dldENhcnJ5KEY9RitKfDAsSil8MCkrRCtnZXRDYXJyeShGPUYrJHwwLCQpfDApK1IrZ2V0Q2FycnkoRj1GK2p8MCxqKXwwO3ZhciBLPXErQnwwLFc9TStQK2dldENhcnJ5KEsscSl8MDt1PWMsUz15LGM9aSx5PWcsaT1sLGc9aCxsPW8reitnZXRDYXJyeShoPWYrRnwwLGYpfDAsbz1hLGY9bSxhPW4sbT1wLG49cixwPWQscj16K1crZ2V0Q2FycnkoZD1GK0t8MCxGKXwwfXRoaXMuX2FsPXRoaXMuX2FsK2R8MCx0aGlzLl9ibD10aGlzLl9ibCtwfDAsdGhpcy5fY2w9dGhpcy5fY2wrbXwwLHRoaXMuX2RsPXRoaXMuX2RsK2Z8MCx0aGlzLl9lbD10aGlzLl9lbCtofDAsdGhpcy5fZmw9dGhpcy5fZmwrZ3wwLHRoaXMuX2dsPXRoaXMuX2dsK3l8MCx0aGlzLl9obD10aGlzLl9obCtTfDAsdGhpcy5fYWg9dGhpcy5fYWgrcitnZXRDYXJyeSh0aGlzLl9hbCxkKXwwLHRoaXMuX2JoPXRoaXMuX2JoK24rZ2V0Q2FycnkodGhpcy5fYmwscCl8MCx0aGlzLl9jaD10aGlzLl9jaCthK2dldENhcnJ5KHRoaXMuX2NsLG0pfDAsdGhpcy5fZGg9dGhpcy5fZGgrbytnZXRDYXJyeSh0aGlzLl9kbCxmKXwwLHRoaXMuX2VoPXRoaXMuX2VoK2wrZ2V0Q2FycnkodGhpcy5fZWwsaCl8MCx0aGlzLl9maD10aGlzLl9maCtpK2dldENhcnJ5KHRoaXMuX2ZsLGcpfDAsdGhpcy5fZ2g9dGhpcy5fZ2grYytnZXRDYXJyeSh0aGlzLl9nbCx5KXwwLHRoaXMuX2hoPXRoaXMuX2hoK3UrZ2V0Q2FycnkodGhpcy5faGwsUyl8MH0sU2hhNTEyLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBlPW8uYWxsb2NVbnNhZmUoNjQpO2Z1bmN0aW9uIHdyaXRlSW50NjRCRSh0LHIsbil7ZS53cml0ZUludDMyQkUodCxuKSxlLndyaXRlSW50MzJCRShyLG4rNCl9cmV0dXJuIHdyaXRlSW50NjRCRSh0aGlzLl9haCx0aGlzLl9hbCwwKSx3cml0ZUludDY0QkUodGhpcy5fYmgsdGhpcy5fYmwsOCksd3JpdGVJbnQ2NEJFKHRoaXMuX2NoLHRoaXMuX2NsLDE2KSx3cml0ZUludDY0QkUodGhpcy5fZGgsdGhpcy5fZGwsMjQpLHdyaXRlSW50NjRCRSh0aGlzLl9laCx0aGlzLl9lbCwzMiksd3JpdGVJbnQ2NEJFKHRoaXMuX2ZoLHRoaXMuX2ZsLDQwKSx3cml0ZUludDY0QkUodGhpcy5fZ2gsdGhpcy5fZ2wsNDgpLHdyaXRlSW50NjRCRSh0aGlzLl9oaCx0aGlzLl9obCw1NiksZX0sZS5leHBvcnRzPVNoYTUxMn0sODk2OmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDYwNik7ZnVuY3Rpb24gZW1pdEVycm9yQW5kQ2xvc2VOVChlLHQpe2VtaXRFcnJvck5UKGUsdCksZW1pdENsb3NlTlQoZSl9ZnVuY3Rpb24gZW1pdENsb3NlTlQoZSl7ZS5fd3JpdGFibGVTdGF0ZSYmIWUuX3dyaXRhYmxlU3RhdGUuZW1pdENsb3NlfHxlLl9yZWFkYWJsZVN0YXRlJiYhZS5fcmVhZGFibGVTdGF0ZS5lbWl0Q2xvc2V8fGUuZW1pdCgiY2xvc2UiKX1mdW5jdGlvbiBlbWl0RXJyb3JOVChlLHQpe2UuZW1pdCgiZXJyb3IiLHQpfWUuZXhwb3J0cz17ZGVzdHJveTpmdW5jdGlvbiBkZXN0cm95KGUsdCl7dmFyIHI9dGhpcyxhPXRoaXMuX3JlYWRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkLG89dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ7cmV0dXJuIGF8fG8/KHQ/dChlKTplJiYodGhpcy5fd3JpdGFibGVTdGF0ZT90aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZHx8KHRoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLG4ubmV4dFRpY2soZW1pdEVycm9yTlQsdGhpcyxlKSk6bi5uZXh0VGljayhlbWl0RXJyb3JOVCx0aGlzLGUpKSx0aGlzKToodGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPSEwKSx0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX2Rlc3Ryb3koZXx8bnVsbCwoZnVuY3Rpb24oZSl7IXQmJmU/ci5fd3JpdGFibGVTdGF0ZT9yLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD9uLm5leHRUaWNrKGVtaXRDbG9zZU5ULHIpOihyLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxuLm5leHRUaWNrKGVtaXRFcnJvckFuZENsb3NlTlQscixlKSk6bi5uZXh0VGljayhlbWl0RXJyb3JBbmRDbG9zZU5ULHIsZSk6dD8obi5uZXh0VGljayhlbWl0Q2xvc2VOVCxyKSx0KGUpKTpuLm5leHRUaWNrKGVtaXRDbG9zZU5ULHIpfSkpLHRoaXMpfSx1bmRlc3Ryb3k6ZnVuY3Rpb24gdW5kZXN0cm95KCl7dGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPSExLHRoaXMuX3JlYWRhYmxlU3RhdGUucmVhZGluZz0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuZGVkPSExLHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZD0hMSksdGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZW5kZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRpbmc9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5maW5hbENhbGxlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLnByZWZpbmlzaGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZmluaXNoZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITEpfSxlcnJvck9yRGVzdHJveTpmdW5jdGlvbiBlcnJvck9yRGVzdHJveShlLHQpe3ZhciByPWUuX3JlYWRhYmxlU3RhdGUsbj1lLl93cml0YWJsZVN0YXRlO3ImJnIuYXV0b0Rlc3Ryb3l8fG4mJm4uYXV0b0Rlc3Ryb3k/ZS5kZXN0cm95KHQpOmUuZW1pdCgiZXJyb3IiLHQpfX19LDkxOTpmdW5jdGlvbihlLHQscil7dmFyIG49cigyODcpLkJ1ZmZlcjtmdW5jdGlvbiBpc1NwZWNpZmljVmFsdWUoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBufHxlIGluc3RhbmNlb2YgRGF0ZXx8ZSBpbnN0YW5jZW9mIFJlZ0V4cH1mdW5jdGlvbiBjbG9uZVNwZWNpZmljVmFsdWUoZSl7aWYoZSBpbnN0YW5jZW9mIG4pe3ZhciB0PW4uYWxsb2M/bi5hbGxvYyhlLmxlbmd0aCk6bmV3IG4oZS5sZW5ndGgpO3JldHVybiBlLmNvcHkodCksdH1pZihlIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gbmV3IERhdGUoZS5nZXRUaW1lKCkpO2lmKGUgaW5zdGFuY2VvZiBSZWdFeHApcmV0dXJuIG5ldyBSZWdFeHAoZSk7dGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHNpdHVhdGlvbiIpfWZ1bmN0aW9uIGRlZXBDbG9uZUFycmF5KGUpe3ZhciB0PVtdO3JldHVybiBlLmZvckVhY2goKGZ1bmN0aW9uKGUscil7Im9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZT9BcnJheS5pc0FycmF5KGUpP3Rbcl09ZGVlcENsb25lQXJyYXkoZSk6aXNTcGVjaWZpY1ZhbHVlKGUpP3Rbcl09Y2xvbmVTcGVjaWZpY1ZhbHVlKGUpOnRbcl09YSh7fSxlKTp0W3JdPWV9KSksdH1mdW5jdGlvbiBzYWZlR2V0UHJvcGVydHkoZSx0KXtyZXR1cm4iX19wcm90b19fIj09PXQ/dm9pZCAwOmVbdF19dmFyIGE9ZS5leHBvcnRzPWZ1bmN0aW9uKCl7aWYoYXJndW1lbnRzLmxlbmd0aDwxfHwib2JqZWN0IiE9dHlwZW9mIGFyZ3VtZW50c1swXSlyZXR1cm4hMTtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuIGFyZ3VtZW50c1swXTt2YXIgZSx0LHI9YXJndW1lbnRzWzBdO3JldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSkuZm9yRWFjaCgoZnVuY3Rpb24obil7Im9iamVjdCIhPXR5cGVvZiBufHxudWxsPT09bnx8QXJyYXkuaXNBcnJheShuKXx8T2JqZWN0LmtleXMobikuZm9yRWFjaCgoZnVuY3Rpb24obyl7cmV0dXJuIHQ9c2FmZUdldFByb3BlcnR5KHIsbyksKGU9c2FmZUdldFByb3BlcnR5KG4sbykpPT09cj92b2lkIDA6Im9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZT92b2lkKHJbb109ZSk6QXJyYXkuaXNBcnJheShlKT92b2lkKHJbb109ZGVlcENsb25lQXJyYXkoZSkpOmlzU3BlY2lmaWNWYWx1ZShlKT92b2lkKHJbb109Y2xvbmVTcGVjaWZpY1ZhbHVlKGUpKToib2JqZWN0IiE9dHlwZW9mIHR8fG51bGw9PT10fHxBcnJheS5pc0FycmF5KHQpP3ZvaWQocltvXT1hKHt9LGUpKTp2b2lkKHJbb109YSh0LGUpKX0pKX0pKSxyfX0sOTU1OmZ1bmN0aW9uKGUsdCxyKXt2YXIgbixhPXIoNjA2KTtmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkoZSx0LHIpe3JldHVybih0PWZ1bmN0aW9uIF90b1Byb3BlcnR5S2V5KGUpe3ZhciB0PWZ1bmN0aW9uIF90b1ByaW1pdGl2ZShlLHQpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIHI9ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXIpe3ZhciBuPXIuY2FsbChlLHR8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBuKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09dD9TdHJpbmc6TnVtYmVyKShlKX0oZSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6U3RyaW5nKHQpfSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPXIsZX12YXIgbz1yKDIzOCkscz1TeW1ib2woImxhc3RSZXNvbHZlIiksbD1TeW1ib2woImxhc3RSZWplY3QiKSxpPVN5bWJvbCgiZXJyb3IiKSxjPVN5bWJvbCgiZW5kZWQiKSx1PVN5bWJvbCgibGFzdFByb21pc2UiKSxkPVN5bWJvbCgiaGFuZGxlUHJvbWlzZSIpLHA9U3ltYm9sKCJzdHJlYW0iKTtmdW5jdGlvbiBjcmVhdGVJdGVyUmVzdWx0KGUsdCl7cmV0dXJue3ZhbHVlOmUsZG9uZTp0fX1mdW5jdGlvbiByZWFkQW5kUmVzb2x2ZShlKXt2YXIgdD1lW3NdO2lmKG51bGwhPT10KXt2YXIgcj1lW3BdLnJlYWQoKTtudWxsIT09ciYmKGVbdV09bnVsbCxlW3NdPW51bGwsZVtsXT1udWxsLHQoY3JlYXRlSXRlclJlc3VsdChyLCExKSkpfX1mdW5jdGlvbiBvblJlYWRhYmxlKGUpe2EubmV4dFRpY2socmVhZEFuZFJlc29sdmUsZSl9dmFyIG09T2JqZWN0LmdldFByb3RvdHlwZU9mKChmdW5jdGlvbigpe30pKSxmPU9iamVjdC5zZXRQcm90b3R5cGVPZigoX2RlZmluZVByb3BlcnR5KG49e2dldCBzdHJlYW0oKXtyZXR1cm4gdGhpc1twXX0sbmV4dDpmdW5jdGlvbiBuZXh0KCl7dmFyIGU9dGhpcyx0PXRoaXNbaV07aWYobnVsbCE9PXQpcmV0dXJuIFByb21pc2UucmVqZWN0KHQpO2lmKHRoaXNbY10pcmV0dXJuIFByb21pc2UucmVzb2x2ZShjcmVhdGVJdGVyUmVzdWx0KHZvaWQgMCwhMCkpO2lmKHRoaXNbcF0uZGVzdHJveWVkKXJldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCxyKXthLm5leHRUaWNrKChmdW5jdGlvbigpe2VbaV0/cihlW2ldKTp0KGNyZWF0ZUl0ZXJSZXN1bHQodm9pZCAwLCEwKSl9KSl9KSk7dmFyIHIsbj10aGlzW3VdO2lmKG4pcj1uZXcgUHJvbWlzZShmdW5jdGlvbiB3cmFwRm9yTmV4dChlLHQpe3JldHVybiBmdW5jdGlvbihyLG4pe2UudGhlbigoZnVuY3Rpb24oKXt0W2NdP3IoY3JlYXRlSXRlclJlc3VsdCh2b2lkIDAsITApKTp0W2RdKHIsbil9KSxuKX19KG4sdGhpcykpO2Vsc2V7dmFyIG89dGhpc1twXS5yZWFkKCk7aWYobnVsbCE9PW8pcmV0dXJuIFByb21pc2UucmVzb2x2ZShjcmVhdGVJdGVyUmVzdWx0KG8sITEpKTtyPW5ldyBQcm9taXNlKHRoaXNbZF0pfXJldHVybiB0aGlzW3VdPXIscn19LFN5bWJvbC5hc3luY0l0ZXJhdG9yLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLF9kZWZpbmVQcm9wZXJ0eShuLCJyZXR1cm4iLChmdW5jdGlvbiBfcmV0dXJuKCl7dmFyIGU9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQscil7ZVtwXS5kZXN0cm95KG51bGwsKGZ1bmN0aW9uKGUpe2U/cihlKTp0KGNyZWF0ZUl0ZXJSZXN1bHQodm9pZCAwLCEwKSl9KSl9KSl9KSksbiksbSk7ZS5leHBvcnRzPWZ1bmN0aW9uIGNyZWF0ZVJlYWRhYmxlU3RyZWFtQXN5bmNJdGVyYXRvcihlKXt2YXIgdCxyPU9iamVjdC5jcmVhdGUoZiwoX2RlZmluZVByb3BlcnR5KHQ9e30scCx7dmFsdWU6ZSx3cml0YWJsZTohMH0pLF9kZWZpbmVQcm9wZXJ0eSh0LHMse3ZhbHVlOm51bGwsd3JpdGFibGU6ITB9KSxfZGVmaW5lUHJvcGVydHkodCxsLHt2YWx1ZTpudWxsLHdyaXRhYmxlOiEwfSksX2RlZmluZVByb3BlcnR5KHQsaSx7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0pLF9kZWZpbmVQcm9wZXJ0eSh0LGMse3ZhbHVlOmUuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCx3cml0YWJsZTohMH0pLF9kZWZpbmVQcm9wZXJ0eSh0LGQse3ZhbHVlOmZ1bmN0aW9uIHZhbHVlKGUsdCl7dmFyIG49cltwXS5yZWFkKCk7bj8oclt1XT1udWxsLHJbc109bnVsbCxyW2xdPW51bGwsZShjcmVhdGVJdGVyUmVzdWx0KG4sITEpKSk6KHJbc109ZSxyW2xdPXQpfSx3cml0YWJsZTohMH0pLHQpKTtyZXR1cm4gclt1XT1udWxsLG8oZSwoZnVuY3Rpb24oZSl7aWYoZSYmIkVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFIiE9PWUuY29kZSl7dmFyIHQ9cltsXTtyZXR1cm4gbnVsbCE9PXQmJihyW3VdPW51bGwscltzXT1udWxsLHJbbF09bnVsbCx0KGUpKSx2b2lkKHJbaV09ZSl9dmFyIG49cltzXTtudWxsIT09biYmKHJbdV09bnVsbCxyW3NdPW51bGwscltsXT1udWxsLG4oY3JlYXRlSXRlclJlc3VsdCh2b2lkIDAsITApKSkscltjXT0hMH0pKSxlLm9uKCJyZWFkYWJsZSIsb25SZWFkYWJsZS5iaW5kKG51bGwscikpLHJ9fSw5ODc6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPXR9fSxDZT17fTtmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKGUpe3ZhciB0PUNlW2VdO2lmKHZvaWQgMCE9PXQpcmV0dXJuIHQuZXhwb3J0czt2YXIgcj1DZVtlXT17ZXhwb3J0czp7fX07cmV0dXJuIHdlW2VdKHIsci5leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pLHIuZXhwb3J0c31fX3dlYnBhY2tfcmVxdWlyZV9fLm49ZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIGUuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gZX07cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LHthOnR9KSx0fSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHIgaW4gdClfX3dlYnBhY2tfcmVxdWlyZV9fLm8odCxyKSYmIV9fd2VicGFja19yZXF1aXJlX18ubyhlLHIpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOiEwLGdldDp0W3JdfSl9LF9fd2VicGFja19yZXF1aXJlX18uZz1mdW5jdGlvbigpe2lmKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcylyZXR1cm4gZ2xvYmFsVGhpczt0cnl7cmV0dXJuIHRoaXN8fG5ldyBGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfWNhdGNoKGUpe2lmKCJvYmplY3QiPT10eXBlb2Ygd2luZG93KXJldHVybiB3aW5kb3d9fSgpLF9fd2VicGFja19yZXF1aXJlX18ubz1mdW5jdGlvbihlLHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KX0sX193ZWJwYWNrX3JlcXVpcmVfXy5yPWZ1bmN0aW9uKGUpeyJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9O3ZhciB4ZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeGUse0E6ZnVuY3Rpb24oKXtyZXR1cm4gWnN9fSk7dmFyIE9lPXt9O19fd2VicGFja19yZXF1aXJlX18ucihPZSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKE9lLHtDTEVBUjpmdW5jdGlvbigpe3JldHVybiBsdH0sQ0xFQVJfQlk6ZnVuY3Rpb24oKXtyZXR1cm4gaXR9LE5FV19BVVRIX0VSUjpmdW5jdGlvbigpe3JldHVybiBzdH0sTkVXX1NQRUNfRVJSOmZ1bmN0aW9uKCl7cmV0dXJuIGF0fSxORVdfU1BFQ19FUlJfQkFUQ0g6ZnVuY3Rpb24oKXtyZXR1cm4gb3R9LE5FV19USFJPV05fRVJSOmZ1bmN0aW9uKCl7cmV0dXJuIHJ0fSxORVdfVEhST1dOX0VSUl9CQVRDSDpmdW5jdGlvbigpe3JldHVybiBudH0sY2xlYXI6ZnVuY3Rpb24oKXtyZXR1cm4gY2xlYXJ9LGNsZWFyQnk6ZnVuY3Rpb24oKXtyZXR1cm4gY2xlYXJCeX0sbmV3QXV0aEVycjpmdW5jdGlvbigpe3JldHVybiBuZXdBdXRoRXJyfSxuZXdTcGVjRXJyOmZ1bmN0aW9uKCl7cmV0dXJuIG5ld1NwZWNFcnJ9LG5ld1NwZWNFcnJCYXRjaDpmdW5jdGlvbigpe3JldHVybiBuZXdTcGVjRXJyQmF0Y2h9LG5ld1Rocm93bkVycjpmdW5jdGlvbigpe3JldHVybiBuZXdUaHJvd25FcnJ9LG5ld1Rocm93bkVyckJhdGNoOmZ1bmN0aW9uKCl7cmV0dXJuIG5ld1Rocm93bkVyckJhdGNofX0pO3ZhciBrZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoa2UpLF9fd2VicGFja19yZXF1aXJlX18uZChrZSx7QVVUSE9SSVpFOmZ1bmN0aW9uKCl7cmV0dXJuIE50fSxBVVRIT1JJWkVfT0FVVEgyOmZ1bmN0aW9uKCl7cmV0dXJuIEl0fSxDT05GSUdVUkVfQVVUSDpmdW5jdGlvbigpe3JldHVybiBqdH0sTE9HT1VUOmZ1bmN0aW9uKCl7cmV0dXJuIEF0fSxSRVNUT1JFX0FVVEhPUklaQVRJT046ZnVuY3Rpb24oKXtyZXR1cm4gUnR9LFNIT1dfQVVUSF9QT1BVUDpmdW5jdGlvbigpe3JldHVybiBrdH0sYXV0aFBvcHVwOmZ1bmN0aW9uKCl7cmV0dXJuIGF1dGhQb3B1cH0sYXV0aG9yaXplOmZ1bmN0aW9uKCl7cmV0dXJuIGF1dGhvcml6ZX0sYXV0aG9yaXplQWNjZXNzQ29kZVdpdGhCYXNpY0F1dGhlbnRpY2F0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGF1dGhvcml6ZUFjY2Vzc0NvZGVXaXRoQmFzaWNBdXRoZW50aWNhdGlvbn0sYXV0aG9yaXplQWNjZXNzQ29kZVdpdGhGb3JtUGFyYW1zOmZ1bmN0aW9uKCl7cmV0dXJuIGF1dGhvcml6ZUFjY2Vzc0NvZGVXaXRoRm9ybVBhcmFtc30sYXV0aG9yaXplQXBwbGljYXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gYXV0aG9yaXplQXBwbGljYXRpb259LGF1dGhvcml6ZU9hdXRoMjpmdW5jdGlvbigpe3JldHVybiBhdXRob3JpemVPYXV0aDJ9LGF1dGhvcml6ZU9hdXRoMldpdGhQZXJzaXN0T3B0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGF1dGhvcml6ZU9hdXRoMldpdGhQZXJzaXN0T3B0aW9ufSxhdXRob3JpemVQYXNzd29yZDpmdW5jdGlvbigpe3JldHVybiBhdXRob3JpemVQYXNzd29yZH0sYXV0aG9yaXplUmVxdWVzdDpmdW5jdGlvbigpe3JldHVybiBhdXRob3JpemVSZXF1ZXN0fSxhdXRob3JpemVXaXRoUGVyc2lzdE9wdGlvbjpmdW5jdGlvbigpe3JldHVybiBhdXRob3JpemVXaXRoUGVyc2lzdE9wdGlvbn0sY29uZmlndXJlQXV0aDpmdW5jdGlvbigpe3JldHVybiBjb25maWd1cmVBdXRofSxsb2dvdXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbG9nb3V0fSxsb2dvdXRXaXRoUGVyc2lzdE9wdGlvbjpmdW5jdGlvbigpe3JldHVybiBsb2dvdXRXaXRoUGVyc2lzdE9wdGlvbn0scGVyc2lzdEF1dGhvcml6YXRpb25JZk5lZWRlZDpmdW5jdGlvbigpe3JldHVybiBwZXJzaXN0QXV0aG9yaXphdGlvbklmTmVlZGVkfSxwcmVBdXRob3JpemVJbXBsaWNpdDpmdW5jdGlvbigpe3JldHVybiBwcmVBdXRob3JpemVJbXBsaWNpdH0scmVzdG9yZUF1dGhvcml6YXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gcmVzdG9yZUF1dGhvcml6YXRpb259LHNob3dEZWZpbml0aW9uczpmdW5jdGlvbigpe3JldHVybiBzaG93RGVmaW5pdGlvbnN9fSk7dmFyIE5lPXt9O19fd2VicGFja19yZXF1aXJlX18ucihOZSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKE5lLHthdXRob3JpemVkOmZ1bmN0aW9uKCl7cmV0dXJuIHF0fSxkZWZpbml0aW9uc0ZvclJlcXVpcmVtZW50czpmdW5jdGlvbigpe3JldHVybiBkZWZpbml0aW9uc0ZvclJlcXVpcmVtZW50c30sZGVmaW5pdGlvbnNUb0F1dGhvcml6ZTpmdW5jdGlvbigpe3JldHVybiBNdH0sZ2V0Q29uZmlnczpmdW5jdGlvbigpe3JldHVybiBMdH0sZ2V0RGVmaW5pdGlvbnNCeU5hbWVzOmZ1bmN0aW9uKCl7cmV0dXJuIGdldERlZmluaXRpb25zQnlOYW1lc30saXNBdXRob3JpemVkOmZ1bmN0aW9uKCl7cmV0dXJuIGlzQXV0aG9yaXplZH0sc2VsZWN0QXV0aFBhdGg6ZnVuY3Rpb24oKXtyZXR1cm4gc2VsZWN0QXV0aFBhdGh9LHNob3duRGVmaW5pdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gQnR9fSk7dmFyIEFlPXt9O19fd2VicGFja19yZXF1aXJlX18ucihBZSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKEFlLHtUT0dHTEVfQ09ORklHUzpmdW5jdGlvbigpe3JldHVybiB6dH0sVVBEQVRFX0NPTkZJR1M6ZnVuY3Rpb24oKXtyZXR1cm4gRnR9LGRvd25sb2FkQ29uZmlnOmZ1bmN0aW9uKCl7cmV0dXJuIGRvd25sb2FkQ29uZmlnfSxnZXRDb25maWdCeVVybDpmdW5jdGlvbigpe3JldHVybiBnZXRDb25maWdCeVVybH0sbG9hZGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGFjdGlvbnNfbG9hZGVkfSx0b2dnbGU6ZnVuY3Rpb24oKXtyZXR1cm4gdG9nZ2xlfSx1cGRhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdXBkYXRlfX0pO3ZhciBJZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoSWUpLF9fd2VicGFja19yZXF1aXJlX18uZChJZSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGdldH19KTt2YXIgamU9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKGplKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoamUse3RyYW5zZm9ybTpmdW5jdGlvbigpe3JldHVybiB0cmFuc2Zvcm19fSk7dmFyIFJlPXt9O19fd2VicGFja19yZXF1aXJlX18ucihSZSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKFJlLHt0cmFuc2Zvcm06ZnVuY3Rpb24oKXtyZXR1cm4gcGFyYW1ldGVyX29uZW9mX3RyYW5zZm9ybX19KTt2YXIgVGU9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKFRlKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoVGUse2FsbEVycm9yczpmdW5jdGlvbigpe3JldHVybiBycn0sbGFzdEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIG5yfX0pO3ZhciBQZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoUGUpLF9fd2VicGFja19yZXF1aXJlX18uZChQZSx7U0hPVzpmdW5jdGlvbigpe3JldHVybiBpcn0sVVBEQVRFX0ZJTFRFUjpmdW5jdGlvbigpe3JldHVybiBzcn0sVVBEQVRFX0xBWU9VVDpmdW5jdGlvbigpe3JldHVybiBvcn0sVVBEQVRFX01PREU6ZnVuY3Rpb24oKXtyZXR1cm4gbHJ9LGNoYW5nZU1vZGU6ZnVuY3Rpb24oKXtyZXR1cm4gY2hhbmdlTW9kZX0sc2hvdzpmdW5jdGlvbigpe3JldHVybiBhY3Rpb25zX3Nob3d9LHVwZGF0ZUZpbHRlcjpmdW5jdGlvbigpe3JldHVybiB1cGRhdGVGaWx0ZXJ9LHVwZGF0ZUxheW91dDpmdW5jdGlvbigpe3JldHVybiB1cGRhdGVMYXlvdXR9fSk7dmFyIEJlPXt9O19fd2VicGFja19yZXF1aXJlX18ucihCZSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKEJlLHtjdXJyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIGN1cnJlbnR9LGN1cnJlbnRGaWx0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gY3VycmVudEZpbHRlcn0saXNTaG93bjpmdW5jdGlvbigpe3JldHVybiBpc1Nob3dufSxzaG93U3VtbWFyeTpmdW5jdGlvbigpe3JldHVybiB1cn0sd2hhdE1vZGU6ZnVuY3Rpb24oKXtyZXR1cm4gd2hhdE1vZGV9fSk7dmFyIE1lPXt9O19fd2VicGFja19yZXF1aXJlX18ucihNZSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKE1lLHt0YWdnZWRPcGVyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuIHRhZ2dlZE9wZXJhdGlvbnN9fSk7dmFyIHFlPXt9O19fd2VicGFja19yZXF1aXJlX18ucihxZSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKHFlLHtnZXRBY3RpdmVMYW5ndWFnZTpmdW5jdGlvbigpe3JldHVybiBtcn0sZ2V0RGVmYXVsdEV4cGFuZGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGZyfSxnZXRHZW5lcmF0b3JzOmZ1bmN0aW9uKCl7cmV0dXJuIHByfSxnZXRTbmlwcGV0R2VuZXJhdG9yczpmdW5jdGlvbigpe3JldHVybiBnZXRTbmlwcGV0R2VuZXJhdG9yc319KTt2YXIgTGU9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKExlKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoTGUse0pzb25TY2hlbWFBcnJheUl0ZW1GaWxlOmZ1bmN0aW9uKCl7cmV0dXJuIEpzb25TY2hlbWFBcnJheUl0ZW1GaWxlfSxKc29uU2NoZW1hQXJyYXlJdGVtVGV4dDpmdW5jdGlvbigpe3JldHVybiBKc29uU2NoZW1hQXJyYXlJdGVtVGV4dH0sSnNvblNjaGVtYUZvcm06ZnVuY3Rpb24oKXtyZXR1cm4gSnNvblNjaGVtYUZvcm19LEpzb25TY2hlbWFfYXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gSnNvblNjaGVtYV9hcnJheX0sSnNvblNjaGVtYV9ib29sZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIEpzb25TY2hlbWFfYm9vbGVhbn0sSnNvblNjaGVtYV9vYmplY3Q6ZnVuY3Rpb24oKXtyZXR1cm4gSnNvblNjaGVtYV9vYmplY3R9LEpzb25TY2hlbWFfc3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIEpzb25TY2hlbWFfc3RyaW5nfX0pO3ZhciBVZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoVWUpLF9fd2VicGFja19yZXF1aXJlX18uZChVZSx7YWxsb3dUcnlJdE91dEZvcjpmdW5jdGlvbigpe3JldHVybiBhbGxvd1RyeUl0T3V0Rm9yfSxiYXNlUGF0aDpmdW5jdGlvbigpe3JldHVybiBsbn0sY2FuRXhlY3V0ZVNjaGVtZTpmdW5jdGlvbigpe3JldHVybiBjYW5FeGVjdXRlU2NoZW1lfSxjb25zdW1lczpmdW5jdGlvbigpe3JldHVybiBybn0sY29uc3VtZXNPcHRpb25zRm9yOmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnN1bWVzT3B0aW9uc0Zvcn0sY29udGVudFR5cGVWYWx1ZXM6ZnVuY3Rpb24oKXtyZXR1cm4gY29udGVudFR5cGVWYWx1ZXN9LGN1cnJlbnRQcm9kdWNlc0ZvcjpmdW5jdGlvbigpe3JldHVybiBjdXJyZW50UHJvZHVjZXNGb3J9LGRlZmluaXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuIHNufSxleHRlcm5hbERvY3M6ZnVuY3Rpb24oKXtyZXR1cm4gWHJ9LGZpbmREZWZpbml0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGZpbmREZWZpbml0aW9ufSxnZXRPQVMzUmVxdWlyZWRSZXF1ZXN0Qm9keUNvbnRlbnRUeXBlOmZ1bmN0aW9uKCl7cmV0dXJuIGdldE9BUzNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGV9LGdldFBhcmFtZXRlcjpmdW5jdGlvbigpe3JldHVybiBnZXRQYXJhbWV0ZXJ9LGhhc0hvc3Q6ZnVuY3Rpb24oKXtyZXR1cm4geW59LGhvc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gY259LGluZm86ZnVuY3Rpb24oKXtyZXR1cm4gR3J9LGlzTWVkaWFUeXBlU2NoZW1hUHJvcGVydGllc0VxdWFsOmZ1bmN0aW9uKCl7cmV0dXJuIGlzTWVkaWFUeXBlU2NoZW1hUHJvcGVydGllc0VxdWFsfSxpc09BUzM6ZnVuY3Rpb24oKXtyZXR1cm4gSHJ9LGxhc3RFcnJvcjpmdW5jdGlvbigpe3JldHVybiBEcn0sbXV0YXRlZFJlcXVlc3RGb3I6ZnVuY3Rpb24oKXtyZXR1cm4gbXV0YXRlZFJlcXVlc3RGb3J9LG11dGF0ZWRSZXF1ZXN0czpmdW5jdGlvbigpe3JldHVybiBnbn0sb3BlcmF0aW9uU2NoZW1lOmZ1bmN0aW9uKCl7cmV0dXJuIG9wZXJhdGlvblNjaGVtZX0sb3BlcmF0aW9uV2l0aE1ldGE6ZnVuY3Rpb24oKXtyZXR1cm4gb3BlcmF0aW9uV2l0aE1ldGF9LG9wZXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdG59LG9wZXJhdGlvbnNXaXRoUm9vdEluaGVyaXRlZDpmdW5jdGlvbigpe3JldHVybiBkbn0sb3BlcmF0aW9uc1dpdGhUYWdzOmZ1bmN0aW9uKCl7cmV0dXJuIG1ufSxwYXJhbWV0ZXJJbmNsdXNpb25TZXR0aW5nRm9yOmZ1bmN0aW9uKCl7cmV0dXJuIHBhcmFtZXRlckluY2x1c2lvblNldHRpbmdGb3J9LHBhcmFtZXRlclZhbHVlczpmdW5jdGlvbigpe3JldHVybiBwYXJhbWV0ZXJWYWx1ZXN9LHBhcmFtZXRlcldpdGhNZXRhOmZ1bmN0aW9uKCl7cmV0dXJuIHBhcmFtZXRlcldpdGhNZXRhfSxwYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHk6ZnVuY3Rpb24oKXtyZXR1cm4gcGFyYW1ldGVyV2l0aE1ldGFCeUlkZW50aXR5fSxwYXJhbWV0ZXJzSW5jbHVkZUluOmZ1bmN0aW9uKCl7cmV0dXJuIHBhcmFtZXRlcnNJbmNsdWRlSW59LHBhcmFtZXRlcnNJbmNsdWRlVHlwZTpmdW5jdGlvbigpe3JldHVybiBwYXJhbWV0ZXJzSW5jbHVkZVR5cGV9LHBhdGhzOmZ1bmN0aW9uKCl7cmV0dXJuIFpyfSxwcm9kdWNlczpmdW5jdGlvbigpe3JldHVybiBubn0scHJvZHVjZXNPcHRpb25zRm9yOmZ1bmN0aW9uKCl7cmV0dXJuIHByb2R1Y2VzT3B0aW9uc0Zvcn0scmVxdWVzdEZvcjpmdW5jdGlvbigpe3JldHVybiByZXF1ZXN0Rm9yfSxyZXF1ZXN0czpmdW5jdGlvbigpe3JldHVybiBobn0scmVzcG9uc2VGb3I6ZnVuY3Rpb24oKXtyZXR1cm4gcmVzcG9uc2VGb3J9LHJlc3BvbnNlczpmdW5jdGlvbigpe3JldHVybiBmbn0sc2NoZW1lczpmdW5jdGlvbigpe3JldHVybiB1bn0sc2VjdXJpdHk6ZnVuY3Rpb24oKXtyZXR1cm4gYW59LHNlY3VyaXR5RGVmaW5pdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gb259LHNlbXZlcjpmdW5jdGlvbigpe3JldHVybiBRcn0sc3BlYzpmdW5jdGlvbigpe3JldHVybiBzcGVjfSxzcGVjSlM6ZnVuY3Rpb24oKXtyZXR1cm4genJ9LHNwZWNKc29uOmZ1bmN0aW9uKCl7cmV0dXJuIEZyfSxzcGVjSnNvbldpdGhSZXNvbHZlZFN1YnRyZWVzOmZ1bmN0aW9uKCl7cmV0dXJuIFdyfSxzcGVjUmVzb2x2ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gS3J9LHNwZWNSZXNvbHZlZFN1YnRyZWU6ZnVuY3Rpb24oKXtyZXR1cm4gc3BlY1Jlc29sdmVkU3VidHJlZX0sc3BlY1NvdXJjZTpmdW5jdGlvbigpe3JldHVybiBKcn0sc3BlY1N0cjpmdW5jdGlvbigpe3JldHVybiBWcn0sdGFnRGV0YWlsczpmdW5jdGlvbigpe3JldHVybiB0YWdEZXRhaWxzfSx0YWdnZWRPcGVyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuIHNlbGVjdG9yc190YWdnZWRPcGVyYXRpb25zfSx0YWdzOmZ1bmN0aW9uKCl7cmV0dXJuIHBufSx1cmw6ZnVuY3Rpb24oKXtyZXR1cm4gJHJ9LHZhbGlkT3BlcmF0aW9uTWV0aG9kczpmdW5jdGlvbigpe3JldHVybiBlbn0sdmFsaWRhdGVCZWZvcmVFeGVjdXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHZhbGlkYXRlQmVmb3JlRXhlY3V0ZX0sdmFsaWRhdGlvbkVycm9yczpmdW5jdGlvbigpe3JldHVybiB2YWxpZGF0aW9uRXJyb3JzfSx2ZXJzaW9uOmZ1bmN0aW9uKCl7cmV0dXJuIFlyfX0pO3ZhciBEZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoRGUpLF9fd2VicGFja19yZXF1aXJlX18uZChEZSx7Q0xFQVJfUkVRVUVTVDpmdW5jdGlvbigpe3JldHVybiBUbn0sQ0xFQVJfUkVTUE9OU0U6ZnVuY3Rpb24oKXtyZXR1cm4gUm59LENMRUFSX1ZBTElEQVRFX1BBUkFNUzpmdW5jdGlvbigpe3JldHVybiBQbn0sTE9HX1JFUVVFU1Q6ZnVuY3Rpb24oKXtyZXR1cm4gam59LFNFVF9NVVRBVEVEX1JFUVVFU1Q6ZnVuY3Rpb24oKXtyZXR1cm4gSW59LFNFVF9SRVFVRVNUOmZ1bmN0aW9uKCl7cmV0dXJuIEFufSxTRVRfUkVTUE9OU0U6ZnVuY3Rpb24oKXtyZXR1cm4gTm59LFNFVF9TQ0hFTUU6ZnVuY3Rpb24oKXtyZXR1cm4gTG59LFVQREFURV9FTVBUWV9QQVJBTV9JTkNMVVNJT046ZnVuY3Rpb24oKXtyZXR1cm4gT259LFVQREFURV9KU09OOmZ1bmN0aW9uKCl7cmV0dXJuIENufSxVUERBVEVfT1BFUkFUSU9OX01FVEFfVkFMVUU6ZnVuY3Rpb24oKXtyZXR1cm4gQm59LFVQREFURV9QQVJBTTpmdW5jdGlvbigpe3JldHVybiB4bn0sVVBEQVRFX1JFU09MVkVEOmZ1bmN0aW9uKCl7cmV0dXJuIE1ufSxVUERBVEVfUkVTT0xWRURfU1VCVFJFRTpmdW5jdGlvbigpe3JldHVybiBxbn0sVVBEQVRFX1NQRUM6ZnVuY3Rpb24oKXtyZXR1cm4gYm59LFVQREFURV9VUkw6ZnVuY3Rpb24oKXtyZXR1cm4gd259LFZBTElEQVRFX1BBUkFNUzpmdW5jdGlvbigpe3JldHVybiBrbn0sY2hhbmdlQ29uc3VtZXNWYWx1ZTpmdW5jdGlvbigpe3JldHVybiBjaGFuZ2VDb25zdW1lc1ZhbHVlfSxjaGFuZ2VQYXJhbTpmdW5jdGlvbigpe3JldHVybiBjaGFuZ2VQYXJhbX0sY2hhbmdlUGFyYW1CeUlkZW50aXR5OmZ1bmN0aW9uKCl7cmV0dXJuIGNoYW5nZVBhcmFtQnlJZGVudGl0eX0sY2hhbmdlUHJvZHVjZXNWYWx1ZTpmdW5jdGlvbigpe3JldHVybiBjaGFuZ2VQcm9kdWNlc1ZhbHVlfSxjbGVhclJlcXVlc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gY2xlYXJSZXF1ZXN0fSxjbGVhclJlc3BvbnNlOmZ1bmN0aW9uKCl7cmV0dXJuIGNsZWFyUmVzcG9uc2V9LGNsZWFyVmFsaWRhdGVQYXJhbXM6ZnVuY3Rpb24oKXtyZXR1cm4gY2xlYXJWYWxpZGF0ZVBhcmFtc30sZXhlY3V0ZTpmdW5jdGlvbigpe3JldHVybiBhY3Rpb25zX2V4ZWN1dGV9LGV4ZWN1dGVSZXF1ZXN0OmZ1bmN0aW9uKCl7cmV0dXJuIGV4ZWN1dGVSZXF1ZXN0fSxpbnZhbGlkYXRlUmVzb2x2ZWRTdWJ0cmVlQ2FjaGU6ZnVuY3Rpb24oKXtyZXR1cm4gaW52YWxpZGF0ZVJlc29sdmVkU3VidHJlZUNhY2hlfSxsb2dSZXF1ZXN0OmZ1bmN0aW9uKCl7cmV0dXJuIGxvZ1JlcXVlc3R9LHBhcnNlVG9Kc29uOmZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlVG9Kc29ufSxyZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlOmZ1bmN0aW9uKCl7cmV0dXJuIHJlcXVlc3RSZXNvbHZlZFN1YnRyZWV9LHJlc29sdmVTcGVjOmZ1bmN0aW9uKCl7cmV0dXJuIHJlc29sdmVTcGVjfSxzZXRNdXRhdGVkUmVxdWVzdDpmdW5jdGlvbigpe3JldHVybiBzZXRNdXRhdGVkUmVxdWVzdH0sc2V0UmVxdWVzdDpmdW5jdGlvbigpe3JldHVybiBzZXRSZXF1ZXN0fSxzZXRSZXNwb25zZTpmdW5jdGlvbigpe3JldHVybiBzZXRSZXNwb25zZX0sc2V0U2NoZW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHNldFNjaGVtZX0sdXBkYXRlRW1wdHlQYXJhbUluY2x1c2lvbjpmdW5jdGlvbigpe3JldHVybiB1cGRhdGVFbXB0eVBhcmFtSW5jbHVzaW9ufSx1cGRhdGVKc29uU3BlYzpmdW5jdGlvbigpe3JldHVybiB1cGRhdGVKc29uU3BlY30sdXBkYXRlUmVzb2x2ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdXBkYXRlUmVzb2x2ZWR9LHVwZGF0ZVJlc29sdmVkU3VidHJlZTpmdW5jdGlvbigpe3JldHVybiB1cGRhdGVSZXNvbHZlZFN1YnRyZWV9LHVwZGF0ZVNwZWM6ZnVuY3Rpb24oKXtyZXR1cm4gdXBkYXRlU3BlY30sdXBkYXRlVXJsOmZ1bmN0aW9uKCl7cmV0dXJuIHVwZGF0ZVVybH0sdmFsaWRhdGVQYXJhbXM6ZnVuY3Rpb24oKXtyZXR1cm4gdmFsaWRhdGVQYXJhbXN9fSk7dmFyICRlPXt9O19fd2VicGFja19yZXF1aXJlX18ucigkZSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKCRlLHtleGVjdXRlUmVxdWVzdDpmdW5jdGlvbigpe3JldHVybiB3cmFwX2FjdGlvbnNfZXhlY3V0ZVJlcXVlc3R9LHVwZGF0ZUpzb25TcGVjOmZ1bmN0aW9uKCl7cmV0dXJuIHdyYXBfYWN0aW9uc191cGRhdGVKc29uU3BlY30sdXBkYXRlU3BlYzpmdW5jdGlvbigpe3JldHVybiB3cmFwX2FjdGlvbnNfdXBkYXRlU3BlY30sdmFsaWRhdGVQYXJhbXM6ZnVuY3Rpb24oKXtyZXR1cm4gd3JhcF9hY3Rpb25zX3ZhbGlkYXRlUGFyYW1zfX0pO3ZhciBWZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoVmUpLF9fd2VicGFja19yZXF1aXJlX18uZChWZSx7QnV0dG9uOmZ1bmN0aW9uKCl7cmV0dXJuIEJ1dHRvbn0sQ29sOmZ1bmN0aW9uKCl7cmV0dXJuIENvbH0sQ29sbGFwc2U6ZnVuY3Rpb24oKXtyZXR1cm4gQ29sbGFwc2V9LENvbnRhaW5lcjpmdW5jdGlvbigpe3JldHVybiBDb250YWluZXJ9LElucHV0OmZ1bmN0aW9uKCl7cmV0dXJuIElucHV0fSxMaW5rOmZ1bmN0aW9uKCl7cmV0dXJuIExpbmt9LFJvdzpmdW5jdGlvbigpe3JldHVybiBSb3d9LFNlbGVjdDpmdW5jdGlvbigpe3JldHVybiBTZWxlY3R9LFRleHRBcmVhOmZ1bmN0aW9uKCl7cmV0dXJuIFRleHRBcmVhfX0pO3ZhciBKZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoSmUpLF9fd2VicGFja19yZXF1aXJlX18uZChKZSx7YmFzZVBhdGg6ZnVuY3Rpb24oKXtyZXR1cm4gSmF9LGNvbnN1bWVzOmZ1bmN0aW9uKCl7cmV0dXJuIEZhfSxkZWZpbml0aW9uczpmdW5jdGlvbigpe3JldHVybiBVYX0sZmluZERlZmluaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gTGF9LGhhc0hvc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gRGF9LGhvc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gVmF9LHByb2R1Y2VzOmZ1bmN0aW9uKCl7cmV0dXJuIHphfSxzY2hlbWVzOmZ1bmN0aW9uKCl7cmV0dXJuIEthfSxzZWN1cml0eURlZmluaXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuICRhfSx2YWxpZE9wZXJhdGlvbk1ldGhvZHM6ZnVuY3Rpb24oKXtyZXR1cm4gd3JhcF9zZWxlY3RvcnNfdmFsaWRPcGVyYXRpb25NZXRob2RzfX0pO3ZhciBGZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoRmUpLF9fd2VicGFja19yZXF1aXJlX18uZChGZSx7ZGVmaW5pdGlvbnNUb0F1dGhvcml6ZTpmdW5jdGlvbigpe3JldHVybiBXYX19KTt2YXIgemU9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKHplKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoemUse2NhbGxiYWNrc09wZXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gWGF9LGZpbmRTY2hlbWE6ZnVuY3Rpb24oKXtyZXR1cm4gZmluZFNjaGVtYX0saXNPQVMzOmZ1bmN0aW9uKCl7cmV0dXJuIHNlbGVjdG9yc19pc09BUzN9LGlzT0FTMzA6ZnVuY3Rpb24oKXtyZXR1cm4gc2VsZWN0b3JzX2lzT0FTMzB9LGlzU3dhZ2dlcjI6ZnVuY3Rpb24oKXtyZXR1cm4gc2VsZWN0b3JzX2lzU3dhZ2dlcjJ9LHNlcnZlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gR2F9fSk7dmFyIEtlPXt9O19fd2VicGFja19yZXF1aXJlX18ucihLZSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKEtlLHtDTEVBUl9SRVFVRVNUX0JPRFlfVkFMSURBVEVfRVJST1I6ZnVuY3Rpb24oKXtyZXR1cm4geW99LENMRUFSX1JFUVVFU1RfQk9EWV9WQUxVRTpmdW5jdGlvbigpe3JldHVybiBFb30sU0VUX1JFUVVFU1RfQk9EWV9WQUxJREFURV9FUlJPUjpmdW5jdGlvbigpe3JldHVybiBnb30sVVBEQVRFX0FDVElWRV9FWEFNUExFU19NRU1CRVI6ZnVuY3Rpb24oKXtyZXR1cm4gcG99LFVQREFURV9SRVFVRVNUX0JPRFlfSU5DTFVTSU9OOmZ1bmN0aW9uKCl7cmV0dXJuIHVvfSxVUERBVEVfUkVRVUVTVF9CT0RZX1ZBTFVFOmZ1bmN0aW9uKCl7cmV0dXJuIGlvfSxVUERBVEVfUkVRVUVTVF9CT0RZX1ZBTFVFX1JFVEFJTl9GTEFHOmZ1bmN0aW9uKCl7cmV0dXJuIGNvfSxVUERBVEVfUkVRVUVTVF9DT05URU5UX1RZUEU6ZnVuY3Rpb24oKXtyZXR1cm4gbW99LFVQREFURV9SRVNQT05TRV9DT05URU5UX1RZUEU6ZnVuY3Rpb24oKXtyZXR1cm4gZm99LFVQREFURV9TRUxFQ1RFRF9TRVJWRVI6ZnVuY3Rpb24oKXtyZXR1cm4gbG99LFVQREFURV9TRVJWRVJfVkFSSUFCTEVfVkFMVUU6ZnVuY3Rpb24oKXtyZXR1cm4gaG99LGNsZWFyUmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIGNsZWFyUmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yfSxjbGVhclJlcXVlc3RCb2R5VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gY2xlYXJSZXF1ZXN0Qm9keVZhbHVlfSxpbml0UmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIGluaXRSZXF1ZXN0Qm9keVZhbGlkYXRlRXJyb3J9LHNldEFjdGl2ZUV4YW1wbGVzTWVtYmVyOmZ1bmN0aW9uKCl7cmV0dXJuIHNldEFjdGl2ZUV4YW1wbGVzTWVtYmVyfSxzZXRSZXF1ZXN0Qm9keUluY2x1c2lvbjpmdW5jdGlvbigpe3JldHVybiBzZXRSZXF1ZXN0Qm9keUluY2x1c2lvbn0sc2V0UmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIHNldFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcn0sc2V0UmVxdWVzdEJvZHlWYWx1ZTpmdW5jdGlvbigpe3JldHVybiBzZXRSZXF1ZXN0Qm9keVZhbHVlfSxzZXRSZXF1ZXN0Q29udGVudFR5cGU6ZnVuY3Rpb24oKXtyZXR1cm4gc2V0UmVxdWVzdENvbnRlbnRUeXBlfSxzZXRSZXNwb25zZUNvbnRlbnRUeXBlOmZ1bmN0aW9uKCl7cmV0dXJuIHNldFJlc3BvbnNlQ29udGVudFR5cGV9LHNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnOmZ1bmN0aW9uKCl7cmV0dXJuIHNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnfSxzZXRTZWxlY3RlZFNlcnZlcjpmdW5jdGlvbigpe3JldHVybiBzZXRTZWxlY3RlZFNlcnZlcn0sc2V0U2VydmVyVmFyaWFibGVWYWx1ZTpmdW5jdGlvbigpe3JldHVybiBzZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlfX0pO3ZhciBXZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoV2UpLF9fd2VicGFja19yZXF1aXJlX18uZChXZSx7YWN0aXZlRXhhbXBsZXNNZW1iZXI6ZnVuY3Rpb24oKXtyZXR1cm4gT299LGhhc1VzZXJFZGl0ZWRCb2R5OmZ1bmN0aW9uKCl7cmV0dXJuIHdvfSxyZXF1ZXN0Qm9keUVycm9yczpmdW5jdGlvbigpe3JldHVybiB4b30scmVxdWVzdEJvZHlJbmNsdXNpb25TZXR0aW5nOmZ1bmN0aW9uKCl7cmV0dXJuIENvfSxyZXF1ZXN0Qm9keVZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHZvfSxyZXF1ZXN0Q29udGVudFR5cGU6ZnVuY3Rpb24oKXtyZXR1cm4ga299LHJlc3BvbnNlQ29udGVudFR5cGU6ZnVuY3Rpb24oKXtyZXR1cm4gTm99LHNlbGVjdERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHNlbGVjdERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlfSxzZWxlY3RlZFNlcnZlcjpmdW5jdGlvbigpe3JldHVybiBfb30sc2VydmVyRWZmZWN0aXZlVmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gam99LHNlcnZlclZhcmlhYmxlVmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gQW99LHNlcnZlclZhcmlhYmxlczpmdW5jdGlvbigpe3JldHVybiBJb30sc2hvdWxkUmV0YWluUmVxdWVzdEJvZHlWYWx1ZTpmdW5jdGlvbigpe3JldHVybiBib30sdmFsaWRPcGVyYXRpb25NZXRob2RzOmZ1bmN0aW9uKCl7cmV0dXJuIFRvfSx2YWxpZGF0ZUJlZm9yZUV4ZWN1dGU6ZnVuY3Rpb24oKXtyZXR1cm4gUm99LHZhbGlkYXRlU2hhbGxvd1JlcXVpcmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHZhbGlkYXRlU2hhbGxvd1JlcXVpcmVkfX0pO3ZhciBIZT1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe0NvbXBvbmVudDpmdW5jdGlvbigpe3JldHVybiByLkNvbXBvbmVudH0sUHVyZUNvbXBvbmVudDpmdW5jdGlvbigpe3JldHVybiByLlB1cmVDb21wb25lbnR9LGNyZWF0ZUNvbnRleHQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5jcmVhdGVDb250ZXh0fSxjcmVhdGVFbGVtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudH0sZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiByLmRlZmF1bHR9LGZvcndhcmRSZWY6ZnVuY3Rpb24oKXtyZXR1cm4gci5mb3J3YXJkUmVmfSx1c2VDYWxsYmFjazpmdW5jdGlvbigpe3JldHVybiByLnVzZUNhbGxiYWNrfSx1c2VDb250ZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHIudXNlQ29udGV4dH0sdXNlRWZmZWN0OmZ1bmN0aW9uKCl7cmV0dXJuIHIudXNlRWZmZWN0fSx1c2VNZW1vOmZ1bmN0aW9uKCl7cmV0dXJuIHIudXNlTWVtb30sdXNlUmVmOmZ1bmN0aW9uKCl7cmV0dXJuIHIudXNlUmVmfSx1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiByLnVzZVN0YXRlfX0pLEdlPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7YXBwbHlNaWRkbGV3YXJlOmZ1bmN0aW9uKCl7cmV0dXJuIG4uYXBwbHlNaWRkbGV3YXJlfSxiaW5kQWN0aW9uQ3JlYXRvcnM6ZnVuY3Rpb24oKXtyZXR1cm4gbi5iaW5kQWN0aW9uQ3JlYXRvcnN9LGNvbXBvc2U6ZnVuY3Rpb24oKXtyZXR1cm4gbi5jb21wb3NlfSxjcmVhdGVTdG9yZTpmdW5jdGlvbigpe3JldHVybiBuLmNyZWF0ZVN0b3JlfX0pLFhlPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7TGlzdDpmdW5jdGlvbigpe3JldHVybiBhLkxpc3R9LE1hcDpmdW5jdGlvbigpe3JldHVybiBhLk1hcH0sT3JkZXJlZE1hcDpmdW5jdGlvbigpe3JldHVybiBhLk9yZGVyZWRNYXB9LFNlcTpmdW5jdGlvbigpe3JldHVybiBhLlNlcX0sU2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEuU2V0fSxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIGEuZGVmYXVsdH0sZnJvbUpTOmZ1bmN0aW9uKCl7cmV0dXJuIGEuZnJvbUpTfX0pLFllPV9fd2VicGFja19yZXF1aXJlX18oOTE5KSxRZT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oWWUpLFplPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7Y29tYmluZVJlZHVjZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIG8uY29tYmluZVJlZHVjZXJzfX0pLGV0PWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7c2VyaWFsaXplRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gcy5zZXJpYWxpemVFcnJvcn19KSx0dD1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gbC5kZWZhdWx0fX0pO2NvbnN0IHJ0PSJlcnJfbmV3X3Rocm93bl9lcnIiLG50PSJlcnJfbmV3X3Rocm93bl9lcnJfYmF0Y2giLGF0PSJlcnJfbmV3X3NwZWNfZXJyIixvdD0iZXJyX25ld19zcGVjX2Vycl9iYXRjaCIsc3Q9ImVycl9uZXdfYXV0aF9lcnIiLGx0PSJlcnJfY2xlYXIiLGl0PSJlcnJfY2xlYXJfYnkiO2Z1bmN0aW9uIG5ld1Rocm93bkVycihlKXtyZXR1cm57dHlwZTpydCxwYXlsb2FkOigwLGV0LnNlcmlhbGl6ZUVycm9yKShlKX19ZnVuY3Rpb24gbmV3VGhyb3duRXJyQmF0Y2goZSl7cmV0dXJue3R5cGU6bnQscGF5bG9hZDplfX1mdW5jdGlvbiBuZXdTcGVjRXJyKGUpe3JldHVybnt0eXBlOmF0LHBheWxvYWQ6ZX19ZnVuY3Rpb24gbmV3U3BlY0VyckJhdGNoKGUpe3JldHVybnt0eXBlOm90LHBheWxvYWQ6ZX19ZnVuY3Rpb24gbmV3QXV0aEVycihlKXtyZXR1cm57dHlwZTpzdCxwYXlsb2FkOmV9fWZ1bmN0aW9uIGNsZWFyKGU9e30pe3JldHVybnt0eXBlOmx0LHBheWxvYWQ6ZX19ZnVuY3Rpb24gY2xlYXJCeShlPSgpPT4hMCl7cmV0dXJue3R5cGU6aXQscGF5bG9hZDplfX12YXIgY3Q9ZnVuY3Rpb24gbWFrZVdpbmRvdygpe3ZhciBlPXtsb2NhdGlvbjp7fSxoaXN0b3J5Ont9LG9wZW46KCk9Pnt9LGNsb3NlOigpPT57fSxGaWxlOmZ1bmN0aW9uKCl7fSxGb3JtRGF0YTpmdW5jdGlvbigpe319O2lmKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93KXJldHVybiBlO3RyeXtlPXdpbmRvdztmb3IodmFyIHQgb2ZbIkZpbGUiLCJCbG9iIiwiRm9ybURhdGEiXSl0IGluIHdpbmRvdyYmKGVbdF09d2luZG93W3RdKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfXJldHVybiBlfSgpLHV0PShmdW5jdGlvbihlKXt2YXIgdD17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKX0oe30pLGZ1bmN0aW9uKGUpe3ZhciB0PXt9O19fd2VicGFja19yZXF1aXJlX18uZCh0LGUpfSh7fSksZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LGUpLHR9KHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIHUuZGVmYXVsdH19KSksZHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LGUpLHR9KHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIGQuZGVmYXVsdH19KSxwdD1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gcC5kZWZhdWx0fX0pLG10PWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBtLmRlZmF1bHR9fSksaHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LGUpLHR9KHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIGYuZGVmYXVsdH19KSxndD1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gaC5kZWZhdWx0fX0pLHl0PV9fd2VicGFja19yZXF1aXJlX18oMjA5KSxFdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oeXQpLFN0PV9fd2VicGFja19yZXF1aXJlX18oODAyKSxfdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oU3QpO2NvbnN0IHZ0PVhlLmRlZmF1bHQuU2V0Lm9mKCJ0eXBlIiwiZm9ybWF0IiwiaXRlbXMiLCJkZWZhdWx0IiwibWF4aW11bSIsImV4Y2x1c2l2ZU1heGltdW0iLCJtaW5pbXVtIiwiZXhjbHVzaXZlTWluaW11bSIsIm1heExlbmd0aCIsIm1pbkxlbmd0aCIsInBhdHRlcm4iLCJtYXhJdGVtcyIsIm1pbkl0ZW1zIiwidW5pcXVlSXRlbXMiLCJlbnVtIiwibXVsdGlwbGVPZiIpO2Z1bmN0aW9uIGdldFBhcmFtZXRlclNjaGVtYShlLHtpc09BUzM6dH09e30pe2lmKCFYZS5kZWZhdWx0Lk1hcC5pc01hcChlKSlyZXR1cm57c2NoZW1hOlhlLmRlZmF1bHQuTWFwKCkscGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZTpudWxsfTtpZighdClyZXR1cm4iYm9keSI9PT1lLmdldCgiaW4iKT97c2NoZW1hOmUuZ2V0KCJzY2hlbWEiLFhlLmRlZmF1bHQuTWFwKCkpLHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGU6bnVsbH06e3NjaGVtYTplLmZpbHRlcigoKGUsdCk9PnZ0LmluY2x1ZGVzKHQpKSkscGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZTpudWxsfTtpZihlLmdldCgiY29udGVudCIpKXtjb25zdCB0PWUuZ2V0KCJjb250ZW50IixYZS5kZWZhdWx0Lk1hcCh7fSkpLmtleVNlcSgpLmZpcnN0KCk7cmV0dXJue3NjaGVtYTplLmdldEluKFsiY29udGVudCIsdCwic2NoZW1hIl0sWGUuZGVmYXVsdC5NYXAoKSkscGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZTp0fX1yZXR1cm57c2NoZW1hOmUuZ2V0KCJzY2hlbWEiKT9lLmdldCgic2NoZW1hIixYZS5kZWZhdWx0Lk1hcCgpKTpYZS5kZWZhdWx0Lk1hcCgpLHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGU6bnVsbH19dmFyIGJ0PV9fd2VicGFja19yZXF1aXJlX18oMjg3KS5CdWZmZXI7Y29uc3Qgd3Q9ImRlZmF1bHQiLGlzSW1tdXRhYmxlPWU9PlhlLmRlZmF1bHQuSXRlcmFibGUuaXNJdGVyYWJsZShlKSxpbW11dGFibGVUb0pTPWU9PmlzSW1tdXRhYmxlKGUpP2UudG9KUygpOmU7ZnVuY3Rpb24gb2JqZWN0aWZ5KGUpe3JldHVybiBpc09iamVjdChlKT9pbW11dGFibGVUb0pTKGUpOnt9fWZ1bmN0aW9uIGZyb21KU09yZGVyZWQoZSl7aWYoaXNJbW11dGFibGUoZSkpcmV0dXJuIGU7aWYoZSBpbnN0YW5jZW9mIGN0LkZpbGUpcmV0dXJuIGU7aWYoIWlzT2JqZWN0KGUpKXJldHVybiBlO2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIFhlLmRlZmF1bHQuU2VxKGUpLm1hcChmcm9tSlNPcmRlcmVkKS50b0xpc3QoKTtpZigoMCxodC5kZWZhdWx0KShlLmVudHJpZXMpKXtjb25zdCB0PWZ1bmN0aW9uIGNyZWF0ZU9ialdpdGhIYXNoZWRLZXlzKGUpe2lmKCEoMCxodC5kZWZhdWx0KShlLmVudHJpZXMpKXJldHVybiBlO2NvbnN0IHQ9e30scj0iXyoqW10iLG49e307Zm9yKGxldCBhIG9mIGUuZW50cmllcygpKWlmKHRbYVswXV18fG5bYVswXV0mJm5bYVswXV0uY29udGFpbnNNdWx0aXBsZSl7aWYoIW5bYVswXV0pe25bYVswXV09e2NvbnRhaW5zTXVsdGlwbGU6ITAsbGVuZ3RoOjF9LHRbYCR7YVswXX0ke3J9JHtuW2FbMF1dLmxlbmd0aH1gXT10W2FbMF1dLGRlbGV0ZSB0W2FbMF1dfW5bYVswXV0ubGVuZ3RoKz0xLHRbYCR7YVswXX0ke3J9JHtuW2FbMF1dLmxlbmd0aH1gXT1hWzFdfWVsc2UgdFthWzBdXT1hWzFdO3JldHVybiB0fShlKTtyZXR1cm4gWGUuZGVmYXVsdC5PcmRlcmVkTWFwKHQpLm1hcChmcm9tSlNPcmRlcmVkKX1yZXR1cm4gWGUuZGVmYXVsdC5PcmRlcmVkTWFwKGUpLm1hcChmcm9tSlNPcmRlcmVkKX1mdW5jdGlvbiBub3JtYWxpemVBcnJheShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lOltlXX1mdW5jdGlvbiBpc0ZuKGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlfWZ1bmN0aW9uIGlzT2JqZWN0KGUpe3JldHVybiEhZSYmIm9iamVjdCI9PXR5cGVvZiBlfWZ1bmN0aW9uIGlzRnVuYyhlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZX1mdW5jdGlvbiBpc0FycmF5KGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpfWNvbnN0IEN0PXV0LmRlZmF1bHQ7ZnVuY3Rpb24gb2JqTWFwKGUsdCl7cmV0dXJuIE9iamVjdC5rZXlzKGUpLnJlZHVjZSgoKHIsbik9PihyW25dPXQoZVtuXSxuKSxyKSkse30pfWZ1bmN0aW9uIG9ialJlZHVjZShlLHQpe3JldHVybiBPYmplY3Qua2V5cyhlKS5yZWR1Y2UoKChyLG4pPT57bGV0IGE9dChlW25dLG4pO3JldHVybiBhJiYib2JqZWN0Ij09dHlwZW9mIGEmJk9iamVjdC5hc3NpZ24ocixhKSxyfSkse30pfWZ1bmN0aW9uIHN5c3RlbVRodW5rTWlkZGxld2FyZShlKXtyZXR1cm4oe2Rpc3BhdGNoOnQsZ2V0U3RhdGU6cn0pPT50PT5yPT4iZnVuY3Rpb24iPT10eXBlb2Ygcj9yKGUoKSk6dChyKX1mdW5jdGlvbiB2YWxpZGF0ZVZhbHVlQnlTY2hlbWEoZSx0LHIsbixhKXtpZighdClyZXR1cm5bXTtsZXQgbz1bXSxzPXQuZ2V0KCJudWxsYWJsZSIpLGw9dC5nZXQoInJlcXVpcmVkIiksaT10LmdldCgibWF4aW11bSIpLGM9dC5nZXQoIm1pbmltdW0iKSx1PXQuZ2V0KCJ0eXBlIiksZD10LmdldCgiZm9ybWF0IikscD10LmdldCgibWF4TGVuZ3RoIiksbT10LmdldCgibWluTGVuZ3RoIiksZj10LmdldCgidW5pcXVlSXRlbXMiKSxoPXQuZ2V0KCJtYXhJdGVtcyIpLGc9dC5nZXQoIm1pbkl0ZW1zIikseT10LmdldCgicGF0dGVybiIpO2NvbnN0IFM9cnx8ITA9PT1sLF89bnVsbCE9ZSx2PVN8fF8mJiJhcnJheSI9PT11fHwhKCFTJiYhXyksYj1zJiZudWxsPT09ZTtpZihTJiYhXyYmIWImJiFuJiYhdSlyZXR1cm4gby5wdXNoKCJSZXF1aXJlZCBmaWVsZCBpcyBub3QgcHJvdmlkZWQiKSxvO2lmKGJ8fCF1fHwhdilyZXR1cm5bXTtsZXQgdz0ic3RyaW5nIj09PXUmJmUsQz0iYXJyYXkiPT09dSYmQXJyYXkuaXNBcnJheShlKSYmZS5sZW5ndGgseD0iYXJyYXkiPT09dSYmWGUuZGVmYXVsdC5MaXN0LmlzTGlzdChlKSYmZS5jb3VudCgpO2NvbnN0IE89W3csQyx4LCJhcnJheSI9PT11JiYic3RyaW5nIj09dHlwZW9mIGUmJmUsImZpbGUiPT09dSYmZSBpbnN0YW5jZW9mIGN0LkZpbGUsImJvb2xlYW4iPT09dSYmKGV8fCExPT09ZSksIm51bWJlciI9PT11JiYoZXx8MD09PWUpLCJpbnRlZ2VyIj09PXUmJihlfHwwPT09ZSksIm9iamVjdCI9PT11JiYib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lLCJvYmplY3QiPT09dSYmInN0cmluZyI9PXR5cGVvZiBlJiZlXS5zb21lKChlPT4hIWUpKTtpZihTJiYhTyYmIW4pcmV0dXJuIG8ucHVzaCgiUmVxdWlyZWQgZmllbGQgaXMgbm90IHByb3ZpZGVkIiksbztpZigib2JqZWN0Ij09PXUmJihudWxsPT09YXx8ImFwcGxpY2F0aW9uL2pzb24iPT09YSkpe2xldCByPWU7aWYoInN0cmluZyI9PXR5cGVvZiBlKXRyeXtyPUpTT04ucGFyc2UoZSl9Y2F0Y2goZSl7cmV0dXJuIG8ucHVzaCgiUGFyYW1ldGVyIHN0cmluZyB2YWx1ZSBtdXN0IGJlIHZhbGlkIEpTT04iKSxvfXQmJnQuaGFzKCJyZXF1aXJlZCIpJiZpc0Z1bmMobC5pc0xpc3QpJiZsLmlzTGlzdCgpJiZsLmZvckVhY2goKGU9Pnt2b2lkIDA9PT1yW2VdJiZvLnB1c2goe3Byb3BLZXk6ZSxlcnJvcjoiUmVxdWlyZWQgcHJvcGVydHkgbm90IGZvdW5kIn0pfSkpLHQmJnQuaGFzKCJwcm9wZXJ0aWVzIikmJnQuZ2V0KCJwcm9wZXJ0aWVzIikuZm9yRWFjaCgoKGUsdCk9Pntjb25zdCBzPXZhbGlkYXRlVmFsdWVCeVNjaGVtYShyW3RdLGUsITEsbixhKTtvLnB1c2goLi4ucy5tYXAoKGU9Pih7cHJvcEtleTp0LGVycm9yOmV9KSkpKX0pKX1pZih5KXtsZXQgdD0oKGUsdCk9PntpZighbmV3IFJlZ0V4cCh0KS50ZXN0KGUpKXJldHVybiJWYWx1ZSBtdXN0IGZvbGxvdyBwYXR0ZXJuICIrdH0pKGUseSk7dCYmby5wdXNoKHQpfWlmKGcmJiJhcnJheSI9PT11KXtsZXQgdD0oKGUsdCk9PntpZighZSYmdD49MXx8ZSYmZS5sZW5ndGg8dClyZXR1cm5gQXJyYXkgbXVzdCBjb250YWluIGF0IGxlYXN0ICR7dH0gaXRlbSR7MT09PXQ/IiI6InMifWB9KShlLGcpO3QmJm8ucHVzaCh0KX1pZihoJiYiYXJyYXkiPT09dSl7bGV0IHQ9KChlLHQpPT57aWYoZSYmZS5sZW5ndGg+dClyZXR1cm5gQXJyYXkgbXVzdCBub3QgY29udGFpbiBtb3JlIHRoZW4gJHt0fSBpdGVtJHsxPT09dD8iIjoicyJ9YH0pKGUsaCk7dCYmby5wdXNoKHtuZWVkUmVtb3ZlOiEwLGVycm9yOnR9KX1pZihmJiYiYXJyYXkiPT09dSl7bGV0IHQ9KChlLHQpPT57aWYoZSYmKCJ0cnVlIj09PXR8fCEwPT09dCkpe2NvbnN0IHQ9KDAsWGUuZnJvbUpTKShlKSxyPXQudG9TZXQoKTtpZihlLmxlbmd0aD5yLnNpemUpe2xldCBlPSgwLFhlLlNldCkoKTtpZih0LmZvckVhY2goKChyLG4pPT57dC5maWx0ZXIoKGU9PmlzRnVuYyhlLmVxdWFscyk/ZS5lcXVhbHMocik6ZT09PXIpKS5zaXplPjEmJihlPWUuYWRkKG4pKX0pKSwwIT09ZS5zaXplKXJldHVybiBlLm1hcCgoZT0+KHtpbmRleDplLGVycm9yOiJObyBkdXBsaWNhdGVzIGFsbG93ZWQuIn0pKSkudG9BcnJheSgpfX19KShlLGYpO3QmJm8ucHVzaCguLi50KX1pZihwfHwwPT09cCl7bGV0IHQ9KChlLHQpPT57aWYoZS5sZW5ndGg+dClyZXR1cm5gVmFsdWUgbXVzdCBiZSBubyBsb25nZXIgdGhhbiAke3R9IGNoYXJhY3RlciR7MSE9PXQ/InMiOiIifWB9KShlLHApO3QmJm8ucHVzaCh0KX1pZihtKXtsZXQgdD0oKGUsdCk9PntpZihlLmxlbmd0aDx0KXJldHVybmBWYWx1ZSBtdXN0IGJlIGF0IGxlYXN0ICR7dH0gY2hhcmFjdGVyJHsxIT09dD8icyI6IiJ9YH0pKGUsbSk7dCYmby5wdXNoKHQpfWlmKGl8fDA9PT1pKXtsZXQgdD0oKGUsdCk9PntpZihlPnQpcmV0dXJuYFZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICR7dH1gfSkoZSxpKTt0JiZvLnB1c2godCl9aWYoY3x8MD09PWMpe2xldCB0PSgoZSx0KT0+e2lmKGU8dClyZXR1cm5gVmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJHt0fWB9KShlLGMpO3QmJm8ucHVzaCh0KX1pZigic3RyaW5nIj09PXUpe2xldCB0O2lmKHQ9ImRhdGUtdGltZSI9PT1kPyhlPT57aWYoaXNOYU4oRGF0ZS5wYXJzZShlKSkpcmV0dXJuIlZhbHVlIG11c3QgYmUgYSBEYXRlVGltZSJ9KShlKToidXVpZCI9PT1kPyhlPT57aWYoZT1lLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSwhL15beyhdP1swLTlhLWZdezh9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezEyfVspfV0/JC8udGVzdChlKSlyZXR1cm4iVmFsdWUgbXVzdCBiZSBhIEd1aWQifSkoZSk6KGU9PntpZihlJiYic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIlZhbHVlIG11c3QgYmUgYSBzdHJpbmcifSkoZSksIXQpcmV0dXJuIG87by5wdXNoKHQpfWVsc2UgaWYoImJvb2xlYW4iPT09dSl7bGV0IHQ9KGU9PntpZigidHJ1ZSIhPT1lJiYiZmFsc2UiIT09ZSYmITAhPT1lJiYhMSE9PWUpcmV0dXJuIlZhbHVlIG11c3QgYmUgYSBib29sZWFuIn0pKGUpO2lmKCF0KXJldHVybiBvO28ucHVzaCh0KX1lbHNlIGlmKCJudW1iZXIiPT09dSl7bGV0IHQ9KGU9PntpZighL14tP1xkKyhcLj9cZCspPyQvLnRlc3QoZSkpcmV0dXJuIlZhbHVlIG11c3QgYmUgYSBudW1iZXIifSkoZSk7aWYoIXQpcmV0dXJuIG87by5wdXNoKHQpfWVsc2UgaWYoImludGVnZXIiPT09dSl7bGV0IHQ9KGU9PntpZighL14tP1xkKyQvLnRlc3QoZSkpcmV0dXJuIlZhbHVlIG11c3QgYmUgYW4gaW50ZWdlciJ9KShlKTtpZighdClyZXR1cm4gbztvLnB1c2godCl9ZWxzZSBpZigiYXJyYXkiPT09dSl7aWYoIUMmJiF4KXJldHVybiBvO2UmJmUuZm9yRWFjaCgoKGUscik9Pntjb25zdCBzPXZhbGlkYXRlVmFsdWVCeVNjaGVtYShlLHQuZ2V0KCJpdGVtcyIpLCExLG4sYSk7by5wdXNoKC4uLnMubWFwKChlPT4oe2luZGV4OnIsZXJyb3I6ZX0pKSkpfSkpfWVsc2UgaWYoImZpbGUiPT09dSl7bGV0IHQ9KGU9PntpZihlJiYhKGUgaW5zdGFuY2VvZiBjdC5GaWxlKSlyZXR1cm4iVmFsdWUgbXVzdCBiZSBhIGZpbGUifSkoZSk7aWYoIXQpcmV0dXJuIG87by5wdXNoKHQpfXJldHVybiBvfWNvbnN0IGJ0b2E9ZT0+e2xldCB0O3JldHVybiB0PWUgaW5zdGFuY2VvZiBidD9lOmJ0LmZyb20oZS50b1N0cmluZygpLCJ1dGYtOCIpLHQudG9TdHJpbmcoImJhc2U2NCIpfSx4dD17b3BlcmF0aW9uc1NvcnRlcjp7YWxwaGE6KGUsdCk9PmUuZ2V0KCJwYXRoIikubG9jYWxlQ29tcGFyZSh0LmdldCgicGF0aCIpKSxtZXRob2Q6KGUsdCk9PmUuZ2V0KCJtZXRob2QiKS5sb2NhbGVDb21wYXJlKHQuZ2V0KCJtZXRob2QiKSl9LHRhZ3NTb3J0ZXI6e2FscGhhOihlLHQpPT5lLmxvY2FsZUNvbXBhcmUodCl9fSxidWlsZEZvcm1EYXRhPWU9PntsZXQgdD1bXTtmb3IobGV0IHIgaW4gZSl7bGV0IG49ZVtyXTt2b2lkIDAhPT1uJiYiIiE9PW4mJnQucHVzaChbciwiPSIsZW5jb2RlVVJJQ29tcG9uZW50KG4pLnJlcGxhY2UoLyUyMC9nLCIrIildLmpvaW4oIiIpKX1yZXR1cm4gdC5qb2luKCImIil9LHNoYWxsb3dFcXVhbEtleXM9KGUsdCxyKT0+ISEoMCxkdC5kZWZhdWx0KShyLChyPT4oMCxtdC5kZWZhdWx0KShlW3JdLHRbcl0pKSk7ZnVuY3Rpb24gcmVxdWlyZXNWYWxpZGF0aW9uVVJMKGUpe3JldHVybiEoIWV8fGUuaW5kZXhPZigibG9jYWxob3N0Iik+PTB8fGUuaW5kZXhPZigiMTI3LjAuMC4xIik+PTB8fCJub25lIj09PWUpfWNvbnN0IGNyZWF0ZURlZXBMaW5rUGF0aD1lPT4ic3RyaW5nIj09dHlwZW9mIGV8fGUgaW5zdGFuY2VvZiBTdHJpbmc/ZS50cmltKCkucmVwbGFjZSgvXHMvZywiJTIwIik6IiIsZXNjYXBlRGVlcExpbmtQYXRoPWU9PigwLGd0LmRlZmF1bHQpKGNyZWF0ZURlZXBMaW5rUGF0aChlKS5yZXBsYWNlKC8lMjAvZywiXyIpKSxnZXRFeHRlbnNpb25zPWU9Pntjb25zdCB0PS9eeC0vO3JldHVybiBYZS5NYXAuaXNNYXAoZSk/ZS5maWx0ZXIoKChlLHIpPT50LnRlc3QocikpKTpPYmplY3Qua2V5cyhlKS5maWx0ZXIoKGU9PnQudGVzdChlKSkpfSxnZXRDb21tb25FeHRlbnNpb25zPWU9PmUuZmlsdGVyKCgoZSx0KT0+L15wYXR0ZXJufG1heExlbmd0aHxtaW5MZW5ndGh8bWF4aW11bXxtaW5pbXVtLy50ZXN0KHQpKSk7ZnVuY3Rpb24gZGVlcGx5U3RyaXBLZXkoZSx0LHI9KCk9PiEwKXtpZigib2JqZWN0IiE9dHlwZW9mIGV8fEFycmF5LmlzQXJyYXkoZSl8fG51bGw9PT1lfHwhdClyZXR1cm4gZTtjb25zdCBuPU9iamVjdC5hc3NpZ24oe30sZSk7cmV0dXJuIE9iamVjdC5rZXlzKG4pLmZvckVhY2goKGU9PntlPT09dCYmcihuW2VdLGUpP2RlbGV0ZSBuW2VdOm5bZV09ZGVlcGx5U3RyaXBLZXkobltlXSx0LHIpfSkpLG59ZnVuY3Rpb24gc3RyaW5naWZ5KGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSlyZXR1cm4gZTtpZihlJiZlLnRvSlMmJihlPWUudG9KUygpKSwib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lKXRyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSxudWxsLDIpfWNhdGNoKHQpe3JldHVybiBTdHJpbmcoZSl9cmV0dXJuIG51bGw9PWU/IiI6ZS50b1N0cmluZygpfWZ1bmN0aW9uIHBhcmFtVG9JZGVudGlmaWVyKGUse3JldHVybkFsbDp0PSExLGFsbG93SGFzaGVzOnI9ITB9PXt9KXtpZighWGUuZGVmYXVsdC5NYXAuaXNNYXAoZSkpdGhyb3cgbmV3IEVycm9yKCJwYXJhbVRvSWRlbnRpZmllcjogcmVjZWl2ZWQgYSBub24tSW0uTWFwIHBhcmFtZXRlciBhcyBpbnB1dCIpO2NvbnN0IG49ZS5nZXQoIm5hbWUiKSxhPWUuZ2V0KCJpbiIpO2xldCBvPVtdO3JldHVybiBlJiZlLmhhc2hDb2RlJiZhJiZuJiZyJiZvLnB1c2goYCR7YX0uJHtufS5oYXNoLSR7ZS5oYXNoQ29kZSgpfWApLGEmJm4mJm8ucHVzaChgJHthfS4ke259YCksby5wdXNoKG4pLHQ/bzpvWzBdfHwiIn1mdW5jdGlvbiBwYXJhbVRvVmFsdWUoZSx0KXtyZXR1cm4gcGFyYW1Ub0lkZW50aWZpZXIoZSx7cmV0dXJuQWxsOiEwfSkubWFwKChlPT50W2VdKSkuZmlsdGVyKChlPT52b2lkIDAhPT1lKSlbMF19ZnVuY3Rpb24gYjY0dG9CNjRVcmxFbmNvZGVkKGUpe3JldHVybiBlLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIikucmVwbGFjZSgvPS9nLCIiKX1jb25zdCBpc0VtcHR5VmFsdWU9ZT0+IWV8fCEoIWlzSW1tdXRhYmxlKGUpfHwhZS5pc0VtcHR5KCkpLGlkRm49ZT0+ZTtjbGFzcyBTdG9yZXtjb25zdHJ1Y3RvcihlPXt9KXtRZSgpKHRoaXMse3N0YXRlOnt9LHBsdWdpbnM6W10sc3lzdGVtOntjb25maWdzOnt9LGZuOnt9LGNvbXBvbmVudHM6e30scm9vdEluamVjdHM6e30sc3RhdGVQbHVnaW5zOnt9fSxib3VuZFN5c3RlbTp7fSx0b29sYm94Ont9fSxlKSx0aGlzLmdldFN5c3RlbT10aGlzLl9nZXRTeXN0ZW0uYmluZCh0aGlzKSx0aGlzLnN0b3JlPWZ1bmN0aW9uIGNvbmZpZ3VyZVN0b3JlKGUsdCxyKXtyZXR1cm4gZnVuY3Rpb24gY3JlYXRlU3RvcmVXaXRoTWlkZGxld2FyZShlLHQscil7bGV0IG49W3N5c3RlbVRodW5rTWlkZGxld2FyZShyKV07Y29uc3QgYT1jdC5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9DT01QT1NFX198fEdlLmNvbXBvc2U7cmV0dXJuKDAsR2UuY3JlYXRlU3RvcmUpKGUsdCxhKCgwLEdlLmFwcGx5TWlkZGxld2FyZSkoLi4ubikpKX0oZSx0LHIpfShpZEZuLCgwLFhlLmZyb21KUykodGhpcy5zdGF0ZSksdGhpcy5nZXRTeXN0ZW0pLHRoaXMuYnVpbGRTeXN0ZW0oITEpLHRoaXMucmVnaXN0ZXIodGhpcy5wbHVnaW5zKX1nZXRTdG9yZSgpe3JldHVybiB0aGlzLnN0b3JlfXJlZ2lzdGVyKGUsdD0hMCl7dmFyIHI9Y29tYmluZVBsdWdpbnMoZSx0aGlzLmdldFN5c3RlbSgpKTtzeXN0ZW1FeHRlbmQodGhpcy5zeXN0ZW0sciksdCYmdGhpcy5idWlsZFN5c3RlbSgpO2NhbGxBZnRlckxvYWQuY2FsbCh0aGlzLnN5c3RlbSxlLHRoaXMuZ2V0U3lzdGVtKCkpJiZ0aGlzLmJ1aWxkU3lzdGVtKCl9YnVpbGRTeXN0ZW0oZT0hMCl7bGV0IHQ9dGhpcy5nZXRTdG9yZSgpLmRpc3BhdGNoLHI9dGhpcy5nZXRTdG9yZSgpLmdldFN0YXRlO3RoaXMuYm91bmRTeXN0ZW09T2JqZWN0LmFzc2lnbih7fSx0aGlzLmdldFJvb3RJbmplY3RzKCksdGhpcy5nZXRXcmFwcGVkQW5kQm91bmRBY3Rpb25zKHQpLHRoaXMuZ2V0V3JhcHBlZEFuZEJvdW5kU2VsZWN0b3JzKHIsdGhpcy5nZXRTeXN0ZW0pLHRoaXMuZ2V0U3RhdGVUaHVua3MociksdGhpcy5nZXRGbigpLHRoaXMuZ2V0Q29uZmlncygpKSxlJiZ0aGlzLnJlYnVpbGRSZWR1Y2VyKCl9X2dldFN5c3RlbSgpe3JldHVybiB0aGlzLmJvdW5kU3lzdGVtfWdldFJvb3RJbmplY3RzKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe2dldFN5c3RlbTp0aGlzLmdldFN5c3RlbSxnZXRTdG9yZTp0aGlzLmdldFN0b3JlLmJpbmQodGhpcyksZ2V0Q29tcG9uZW50czp0aGlzLmdldENvbXBvbmVudHMuYmluZCh0aGlzKSxnZXRTdGF0ZTp0aGlzLmdldFN0b3JlKCkuZ2V0U3RhdGUsZ2V0Q29uZmlnczp0aGlzLl9nZXRDb25maWdzLmJpbmQodGhpcyksSW06WGUuZGVmYXVsdCxSZWFjdDpIZS5kZWZhdWx0fSx0aGlzLnN5c3RlbS5yb290SW5qZWN0c3x8e30pfV9nZXRDb25maWdzKCl7cmV0dXJuIHRoaXMuc3lzdGVtLmNvbmZpZ3N9Z2V0Q29uZmlncygpe3JldHVybntjb25maWdzOnRoaXMuc3lzdGVtLmNvbmZpZ3N9fXNldENvbmZpZ3MoZSl7dGhpcy5zeXN0ZW0uY29uZmlncz1lfXJlYnVpbGRSZWR1Y2VyKCl7dGhpcy5zdG9yZS5yZXBsYWNlUmVkdWNlcihmdW5jdGlvbiBidWlsZFJlZHVjZXIoZSx0KXtyZXR1cm4gZnVuY3Rpb24gYWxsUmVkdWNlcnMoZSx0KXtsZXQgcj1PYmplY3Qua2V5cyhlKS5yZWR1Y2UoKChyLG4pPT4ocltuXT1mdW5jdGlvbiBtYWtlUmVkdWNlcihlLHQpe3JldHVybihyPW5ldyBYZS5NYXAsbik9PntpZighZSlyZXR1cm4gcjtsZXQgYT1lW24udHlwZV07aWYoYSl7Y29uc3QgZT13cmFwV2l0aFRyeUNhdGNoKGEsdCkocixuKTtyZXR1cm4gbnVsbD09PWU/cjplfXJldHVybiByfX0oZVtuXSx0KSxyKSkse30pO2lmKCFPYmplY3Qua2V5cyhyKS5sZW5ndGgpcmV0dXJuIGlkRm47cmV0dXJuKDAsWmUuY29tYmluZVJlZHVjZXJzKShyKX0ob2JqTWFwKGUsKGU9PmUucmVkdWNlcnMpKSx0KX0odGhpcy5zeXN0ZW0uc3RhdGVQbHVnaW5zLHRoaXMuZ2V0U3lzdGVtKSl9Z2V0VHlwZShlKXtsZXQgdD1lWzBdLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKTtyZXR1cm4gb2JqUmVkdWNlKHRoaXMuc3lzdGVtLnN0YXRlUGx1Z2lucywoKHIsbik9PntsZXQgYT1yW2VdO2lmKGEpcmV0dXJue1tuK3RdOmF9fSkpfWdldFNlbGVjdG9ycygpe3JldHVybiB0aGlzLmdldFR5cGUoInNlbGVjdG9ycyIpfWdldEFjdGlvbnMoKXtyZXR1cm4gb2JqTWFwKHRoaXMuZ2V0VHlwZSgiYWN0aW9ucyIpLChlPT5vYmpSZWR1Y2UoZSwoKGUsdCk9PntpZihpc0ZuKGUpKXJldHVybntbdF06ZX19KSkpKX1nZXRXcmFwcGVkQW5kQm91bmRBY3Rpb25zKGUpe3JldHVybiBvYmpNYXAodGhpcy5nZXRCb3VuZEFjdGlvbnMoZSksKChlLHQpPT57bGV0IHI9dGhpcy5zeXN0ZW0uc3RhdGVQbHVnaW5zW3Quc2xpY2UoMCwtNyldLndyYXBBY3Rpb25zO3JldHVybiByP29iak1hcChlLCgoZSx0KT0+e2xldCBuPXJbdF07cmV0dXJuIG4/KEFycmF5LmlzQXJyYXkobil8fChuPVtuXSksbi5yZWR1Y2UoKChlLHQpPT57bGV0IG5ld0FjdGlvbj0oLi4ucik9PnQoZSx0aGlzLmdldFN5c3RlbSgpKSguLi5yKTtpZighaXNGbihuZXdBY3Rpb24pKXRocm93IG5ldyBUeXBlRXJyb3IoIndyYXBBY3Rpb25zIG5lZWRzIHRvIHJldHVybiBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIG5ldyBmdW5jdGlvbiAoaWUgdGhlIHdyYXBwZWQgYWN0aW9uKSIpO3JldHVybiB3cmFwV2l0aFRyeUNhdGNoKG5ld0FjdGlvbix0aGlzLmdldFN5c3RlbSl9KSxlfHxGdW5jdGlvbi5wcm90b3R5cGUpKTplfSkpOmV9KSl9Z2V0V3JhcHBlZEFuZEJvdW5kU2VsZWN0b3JzKGUsdCl7cmV0dXJuIG9iak1hcCh0aGlzLmdldEJvdW5kU2VsZWN0b3JzKGUsdCksKCh0LHIpPT57bGV0IG49W3Iuc2xpY2UoMCwtOSldLGE9dGhpcy5zeXN0ZW0uc3RhdGVQbHVnaW5zW25dLndyYXBTZWxlY3RvcnM7cmV0dXJuIGE/b2JqTWFwKHQsKCh0LHIpPT57bGV0IG89YVtyXTtyZXR1cm4gbz8oQXJyYXkuaXNBcnJheShvKXx8KG89W29dKSxvLnJlZHVjZSgoKHQscik9PntsZXQgd3JhcHBlZFNlbGVjdG9yPSguLi5hKT0+cih0LHRoaXMuZ2V0U3lzdGVtKCkpKGUoKS5nZXRJbihuKSwuLi5hKTtpZighaXNGbih3cmFwcGVkU2VsZWN0b3IpKXRocm93IG5ldyBUeXBlRXJyb3IoIndyYXBTZWxlY3RvciBuZWVkcyB0byByZXR1cm4gYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBuZXcgZnVuY3Rpb24gKGllIHRoZSB3cmFwcGVkIGFjdGlvbikiKTtyZXR1cm4gd3JhcHBlZFNlbGVjdG9yfSksdHx8RnVuY3Rpb24ucHJvdG90eXBlKSk6dH0pKTp0fSkpfWdldFN0YXRlcyhlKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy5zeXN0ZW0uc3RhdGVQbHVnaW5zKS5yZWR1Y2UoKCh0LHIpPT4odFtyXT1lLmdldChyKSx0KSkse30pfWdldFN0YXRlVGh1bmtzKGUpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLnN5c3RlbS5zdGF0ZVBsdWdpbnMpLnJlZHVjZSgoKHQscik9Pih0W3JdPSgpPT5lKCkuZ2V0KHIpLHQpKSx7fSl9Z2V0Rm4oKXtyZXR1cm57Zm46dGhpcy5zeXN0ZW0uZm59fWdldENvbXBvbmVudHMoZSl7Y29uc3QgdD10aGlzLnN5c3RlbS5jb21wb25lbnRzW2VdO3JldHVybiBBcnJheS5pc0FycmF5KHQpP3QucmVkdWNlKCgoZSx0KT0+dChlLHRoaXMuZ2V0U3lzdGVtKCkpKSk6dm9pZCAwIT09ZT90aGlzLnN5c3RlbS5jb21wb25lbnRzW2VdOnRoaXMuc3lzdGVtLmNvbXBvbmVudHN9Z2V0Qm91bmRTZWxlY3RvcnMoZSx0KXtyZXR1cm4gb2JqTWFwKHRoaXMuZ2V0U2VsZWN0b3JzKCksKChyLG4pPT57bGV0IGE9W24uc2xpY2UoMCwtOSldO3JldHVybiBvYmpNYXAociwocj0+KC4uLm4pPT57bGV0IG89d3JhcFdpdGhUcnlDYXRjaChyLHRoaXMuZ2V0U3lzdGVtKS5hcHBseShudWxsLFtlKCkuZ2V0SW4oYSksLi4ubl0pO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBvJiYobz13cmFwV2l0aFRyeUNhdGNoKG8sdGhpcy5nZXRTeXN0ZW0pKHQoKSkpLG99KSl9KSl9Z2V0Qm91bmRBY3Rpb25zKGUpe2U9ZXx8dGhpcy5nZXRTdG9yZSgpLmRpc3BhdGNoO2NvbnN0IHQ9dGhpcy5nZXRBY3Rpb25zKCkscHJvY2Vzcz1lPT4iZnVuY3Rpb24iIT10eXBlb2YgZT9vYmpNYXAoZSwoZT0+cHJvY2VzcyhlKSkpOiguLi50KT0+e3ZhciByPW51bGw7dHJ5e3I9ZSguLi50KX1jYXRjaChlKXtyPXt0eXBlOnJ0LGVycm9yOiEwLHBheWxvYWQ6KDAsZXQuc2VyaWFsaXplRXJyb3IpKGUpfX1maW5hbGx5e3JldHVybiByfX07cmV0dXJuIG9iak1hcCh0LCh0PT4oMCxHZS5iaW5kQWN0aW9uQ3JlYXRvcnMpKHByb2Nlc3ModCksZSkpKX1nZXRNYXBTdGF0ZVRvUHJvcHMoKXtyZXR1cm4oKT0+T2JqZWN0LmFzc2lnbih7fSx0aGlzLmdldFN5c3RlbSgpKX1nZXRNYXBEaXNwYXRjaFRvUHJvcHMoZSl7cmV0dXJuIHQ9PlFlKCkoe30sdGhpcy5nZXRXcmFwcGVkQW5kQm91bmRBY3Rpb25zKHQpLHRoaXMuZ2V0Rm4oKSxlKX19ZnVuY3Rpb24gY29tYmluZVBsdWdpbnMoZSx0KXtyZXR1cm4gaXNPYmplY3QoZSkmJiFpc0FycmF5KGUpPygwLHR0LmRlZmF1bHQpKHt9LGUpOmlzRnVuYyhlKT9jb21iaW5lUGx1Z2lucyhlKHQpLHQpOmlzQXJyYXkoZSk/ZS5tYXAoKGU9PmNvbWJpbmVQbHVnaW5zKGUsdCkpKS5yZWR1Y2Uoc3lzdGVtRXh0ZW5kLHtjb21wb25lbnRzOnQuZ2V0Q29tcG9uZW50cygpfSk6e319ZnVuY3Rpb24gY2FsbEFmdGVyTG9hZChlLHQse2hhc0xvYWRlZDpyfT17fSl7bGV0IG49cjtyZXR1cm4gaXNPYmplY3QoZSkmJiFpc0FycmF5KGUpJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5hZnRlckxvYWQmJihuPSEwLHdyYXBXaXRoVHJ5Q2F0Y2goZS5hZnRlckxvYWQsdC5nZXRTeXN0ZW0pLmNhbGwodGhpcyx0KSksaXNGdW5jKGUpP2NhbGxBZnRlckxvYWQuY2FsbCh0aGlzLGUodCksdCx7aGFzTG9hZGVkOm59KTppc0FycmF5KGUpP2UubWFwKChlPT5jYWxsQWZ0ZXJMb2FkLmNhbGwodGhpcyxlLHQse2hhc0xvYWRlZDpufSkpKTpufWZ1bmN0aW9uIHN5c3RlbUV4dGVuZChlPXt9LHQ9e30pe2lmKCFpc09iamVjdChlKSlyZXR1cm57fTtpZighaXNPYmplY3QodCkpcmV0dXJuIGU7dC53cmFwQ29tcG9uZW50cyYmKG9iak1hcCh0LndyYXBDb21wb25lbnRzLCgocixuKT0+e2NvbnN0IGE9ZS5jb21wb25lbnRzJiZlLmNvbXBvbmVudHNbbl07YSYmQXJyYXkuaXNBcnJheShhKT8oZS5jb21wb25lbnRzW25dPWEuY29uY2F0KFtyXSksZGVsZXRlIHQud3JhcENvbXBvbmVudHNbbl0pOmEmJihlLmNvbXBvbmVudHNbbl09W2Escl0sZGVsZXRlIHQud3JhcENvbXBvbmVudHNbbl0pfSkpLE9iamVjdC5rZXlzKHQud3JhcENvbXBvbmVudHMpLmxlbmd0aHx8ZGVsZXRlIHQud3JhcENvbXBvbmVudHMpO2NvbnN0e3N0YXRlUGx1Z2luczpyfT1lO2lmKGlzT2JqZWN0KHIpKWZvcihsZXQgZSBpbiByKXtjb25zdCBuPXJbZV07aWYoIWlzT2JqZWN0KG4pKWNvbnRpbnVlO2NvbnN0e3dyYXBBY3Rpb25zOmEsd3JhcFNlbGVjdG9yczpvfT1uO2lmKGlzT2JqZWN0KGEpKWZvcihsZXQgciBpbiBhKXtsZXQgbj1hW3JdO0FycmF5LmlzQXJyYXkobil8fChuPVtuXSxhW3JdPW4pLHQmJnQuc3RhdGVQbHVnaW5zJiZ0LnN0YXRlUGx1Z2luc1tlXSYmdC5zdGF0ZVBsdWdpbnNbZV0ud3JhcEFjdGlvbnMmJnQuc3RhdGVQbHVnaW5zW2VdLndyYXBBY3Rpb25zW3JdJiYodC5zdGF0ZVBsdWdpbnNbZV0ud3JhcEFjdGlvbnNbcl09YVtyXS5jb25jYXQodC5zdGF0ZVBsdWdpbnNbZV0ud3JhcEFjdGlvbnNbcl0pKX1pZihpc09iamVjdChvKSlmb3IobGV0IHIgaW4gbyl7bGV0IG49b1tyXTtBcnJheS5pc0FycmF5KG4pfHwobj1bbl0sb1tyXT1uKSx0JiZ0LnN0YXRlUGx1Z2lucyYmdC5zdGF0ZVBsdWdpbnNbZV0mJnQuc3RhdGVQbHVnaW5zW2VdLndyYXBTZWxlY3RvcnMmJnQuc3RhdGVQbHVnaW5zW2VdLndyYXBTZWxlY3RvcnNbcl0mJih0LnN0YXRlUGx1Z2luc1tlXS53cmFwU2VsZWN0b3JzW3JdPW9bcl0uY29uY2F0KHQuc3RhdGVQbHVnaW5zW2VdLndyYXBTZWxlY3RvcnNbcl0pKX19cmV0dXJuIFFlKCkoZSx0KX1mdW5jdGlvbiB3cmFwV2l0aFRyeUNhdGNoKGUsdCx7bG9nRXJyb3JzOnI9ITB9PXt9KXtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgZT9lOmZ1bmN0aW9uKC4uLm4pe3RyeXtyZXR1cm4gZS5jYWxsKHRoaXMsLi4ubil9Y2F0Y2goZSl7aWYocil7Y29uc3R7dW5jYXVnaHRFeGNlcHRpb25IYW5kbGVyOnJ9PXQoKS5nZXRDb25maWdzKCk7ImZ1bmN0aW9uIj09dHlwZW9mIHI/cihlKTpjb25zb2xlLmVycm9yKGUpfXJldHVybiBudWxsfX19dmFyIE90PWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBnLmRlZmF1bHR9fSk7Y29uc3Qga3Q9InNob3dfcG9wdXAiLE50PSJhdXRob3JpemUiLEF0PSJsb2dvdXQiLEl0PSJhdXRob3JpemVfb2F1dGgyIixqdD0iY29uZmlndXJlX2F1dGgiLFJ0PSJyZXN0b3JlX2F1dGhvcml6YXRpb24iO2Z1bmN0aW9uIHNob3dEZWZpbml0aW9ucyhlKXtyZXR1cm57dHlwZTprdCxwYXlsb2FkOmV9fWZ1bmN0aW9uIGF1dGhvcml6ZShlKXtyZXR1cm57dHlwZTpOdCxwYXlsb2FkOmV9fWNvbnN0IGF1dGhvcml6ZVdpdGhQZXJzaXN0T3B0aW9uPWU9Pih7YXV0aEFjdGlvbnM6dH0pPT57dC5hdXRob3JpemUoZSksdC5wZXJzaXN0QXV0aG9yaXphdGlvbklmTmVlZGVkKCl9O2Z1bmN0aW9uIGxvZ291dChlKXtyZXR1cm57dHlwZTpBdCxwYXlsb2FkOmV9fWNvbnN0IGxvZ291dFdpdGhQZXJzaXN0T3B0aW9uPWU9Pih7YXV0aEFjdGlvbnM6dH0pPT57dC5sb2dvdXQoZSksdC5wZXJzaXN0QXV0aG9yaXphdGlvbklmTmVlZGVkKCl9LHByZUF1dGhvcml6ZUltcGxpY2l0PWU9Pih7YXV0aEFjdGlvbnM6dCxlcnJBY3Rpb25zOnJ9KT0+e2xldHthdXRoOm4sdG9rZW46YSxpc1ZhbGlkOm99PWUse3NjaGVtYTpzLG5hbWU6bH09bixpPXMuZ2V0KCJmbG93Iik7ZGVsZXRlIGN0LnN3YWdnZXJVSVJlZGlyZWN0T2F1dGgyLCJhY2Nlc3NDb2RlIj09PWl8fG98fHIubmV3QXV0aEVycih7YXV0aElkOmwsc291cmNlOiJhdXRoIixsZXZlbDoid2FybmluZyIsbWVzc2FnZToiQXV0aG9yaXphdGlvbiBtYXkgYmUgdW5zYWZlLCBwYXNzZWQgc3RhdGUgd2FzIGNoYW5nZWQgaW4gc2VydmVyIFBhc3NlZCBzdGF0ZSB3YXNuJ3QgcmV0dXJuZWQgZnJvbSBhdXRoIHNlcnZlciJ9KSxhLmVycm9yP3IubmV3QXV0aEVycih7YXV0aElkOmwsc291cmNlOiJhdXRoIixsZXZlbDoiZXJyb3IiLG1lc3NhZ2U6SlNPTi5zdHJpbmdpZnkoYSl9KTp0LmF1dGhvcml6ZU9hdXRoMldpdGhQZXJzaXN0T3B0aW9uKHthdXRoOm4sdG9rZW46YX0pfTtmdW5jdGlvbiBhdXRob3JpemVPYXV0aDIoZSl7cmV0dXJue3R5cGU6SXQscGF5bG9hZDplfX1jb25zdCBhdXRob3JpemVPYXV0aDJXaXRoUGVyc2lzdE9wdGlvbj1lPT4oe2F1dGhBY3Rpb25zOnR9KT0+e3QuYXV0aG9yaXplT2F1dGgyKGUpLHQucGVyc2lzdEF1dGhvcml6YXRpb25JZk5lZWRlZCgpfSxhdXRob3JpemVQYXNzd29yZD1lPT4oe2F1dGhBY3Rpb25zOnR9KT0+e2xldHtzY2hlbWE6cixuYW1lOm4sdXNlcm5hbWU6YSxwYXNzd29yZDpvLHBhc3N3b3JkVHlwZTpzLGNsaWVudElkOmwsY2xpZW50U2VjcmV0Oml9PWUsYz17Z3JhbnRfdHlwZToicGFzc3dvcmQiLHNjb3BlOmUuc2NvcGVzLmpvaW4oIiAiKSx1c2VybmFtZTphLHBhc3N3b3JkOm99LHU9e307c3dpdGNoKHMpe2Nhc2UicmVxdWVzdC1ib2R5IjohZnVuY3Rpb24gc2V0Q2xpZW50SWRBbmRTZWNyZXQoZSx0LHIpe3QmJk9iamVjdC5hc3NpZ24oZSx7Y2xpZW50X2lkOnR9KTtyJiZPYmplY3QuYXNzaWduKGUse2NsaWVudF9zZWNyZXQ6cn0pfShjLGwsaSk7YnJlYWs7Y2FzZSJiYXNpYyI6dS5BdXRob3JpemF0aW9uPSJCYXNpYyAiK2J0b2EobCsiOiIraSk7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLndhcm4oYFdhcm5pbmc6IGludmFsaWQgcGFzc3dvcmRUeXBlICR7c30gd2FzIHBhc3NlZCwgbm90IGluY2x1ZGluZyBjbGllbnQgaWQgYW5kIHNlY3JldGApfXJldHVybiB0LmF1dGhvcml6ZVJlcXVlc3Qoe2JvZHk6YnVpbGRGb3JtRGF0YShjKSx1cmw6ci5nZXQoInRva2VuVXJsIiksbmFtZTpuLGhlYWRlcnM6dSxxdWVyeTp7fSxhdXRoOmV9KX07Y29uc3QgYXV0aG9yaXplQXBwbGljYXRpb249ZT0+KHthdXRoQWN0aW9uczp0fSk9PntsZXR7c2NoZW1hOnIsc2NvcGVzOm4sbmFtZTphLGNsaWVudElkOm8sY2xpZW50U2VjcmV0OnN9PWUsbD17QXV0aG9yaXphdGlvbjoiQmFzaWMgIitidG9hKG8rIjoiK3MpfSxpPXtncmFudF90eXBlOiJjbGllbnRfY3JlZGVudGlhbHMiLHNjb3BlOm4uam9pbigiICIpfTtyZXR1cm4gdC5hdXRob3JpemVSZXF1ZXN0KHtib2R5OmJ1aWxkRm9ybURhdGEoaSksbmFtZTphLHVybDpyLmdldCgidG9rZW5VcmwiKSxhdXRoOmUsaGVhZGVyczpsfSl9LGF1dGhvcml6ZUFjY2Vzc0NvZGVXaXRoRm9ybVBhcmFtcz0oe2F1dGg6ZSxyZWRpcmVjdFVybDp0fSk9Pih7YXV0aEFjdGlvbnM6cn0pPT57bGV0e3NjaGVtYTpuLG5hbWU6YSxjbGllbnRJZDpvLGNsaWVudFNlY3JldDpzLGNvZGVWZXJpZmllcjpsfT1lLGk9e2dyYW50X3R5cGU6ImF1dGhvcml6YXRpb25fY29kZSIsY29kZTplLmNvZGUsY2xpZW50X2lkOm8sY2xpZW50X3NlY3JldDpzLHJlZGlyZWN0X3VyaTp0LGNvZGVfdmVyaWZpZXI6bH07cmV0dXJuIHIuYXV0aG9yaXplUmVxdWVzdCh7Ym9keTpidWlsZEZvcm1EYXRhKGkpLG5hbWU6YSx1cmw6bi5nZXQoInRva2VuVXJsIiksYXV0aDplfSl9LGF1dGhvcml6ZUFjY2Vzc0NvZGVXaXRoQmFzaWNBdXRoZW50aWNhdGlvbj0oe2F1dGg6ZSxyZWRpcmVjdFVybDp0fSk9Pih7YXV0aEFjdGlvbnM6cn0pPT57bGV0e3NjaGVtYTpuLG5hbWU6YSxjbGllbnRJZDpvLGNsaWVudFNlY3JldDpzLGNvZGVWZXJpZmllcjpsfT1lLGk9e0F1dGhvcml6YXRpb246IkJhc2ljICIrYnRvYShvKyI6IitzKX0sYz17Z3JhbnRfdHlwZToiYXV0aG9yaXphdGlvbl9jb2RlIixjb2RlOmUuY29kZSxjbGllbnRfaWQ6byxyZWRpcmVjdF91cmk6dCxjb2RlX3ZlcmlmaWVyOmx9O3JldHVybiByLmF1dGhvcml6ZVJlcXVlc3Qoe2JvZHk6YnVpbGRGb3JtRGF0YShjKSxuYW1lOmEsdXJsOm4uZ2V0KCJ0b2tlblVybCIpLGF1dGg6ZSxoZWFkZXJzOml9KX0sYXV0aG9yaXplUmVxdWVzdD1lPT4oe2ZuOnQsZ2V0Q29uZmlnczpyLGF1dGhBY3Rpb25zOm4sZXJyQWN0aW9uczphLG9hczNTZWxlY3RvcnM6byxzcGVjU2VsZWN0b3JzOnMsYXV0aFNlbGVjdG9yczpsfSk9PntsZXQgaSx7Ym9keTpjLHF1ZXJ5OnU9e30saGVhZGVyczpkPXt9LG5hbWU6cCx1cmw6bSxhdXRoOmZ9PWUse2FkZGl0aW9uYWxRdWVyeVN0cmluZ1BhcmFtczpofT1sLmdldENvbmZpZ3MoKXx8e307aWYocy5pc09BUzMoKSl7bGV0IGU9by5zZXJ2ZXJFZmZlY3RpdmVWYWx1ZShvLnNlbGVjdGVkU2VydmVyKCkpO2k9KDAsT3QuZGVmYXVsdCkobSxlLCEwKX1lbHNlIGk9KDAsT3QuZGVmYXVsdCkobSxzLnVybCgpLCEwKTsib2JqZWN0Ij09dHlwZW9mIGgmJihpLnF1ZXJ5PU9iamVjdC5hc3NpZ24oe30saS5xdWVyeSxoKSk7Y29uc3QgZz1pLnRvU3RyaW5nKCk7bGV0IHk9T2JqZWN0LmFzc2lnbih7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoiLCJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLCJYLVJlcXVlc3RlZC1XaXRoIjoiWE1MSHR0cFJlcXVlc3QifSxkKTt0LmZldGNoKHt1cmw6ZyxtZXRob2Q6InBvc3QiLGhlYWRlcnM6eSxxdWVyeTp1LGJvZHk6YyxyZXF1ZXN0SW50ZXJjZXB0b3I6cigpLnJlcXVlc3RJbnRlcmNlcHRvcixyZXNwb25zZUludGVyY2VwdG9yOnIoKS5yZXNwb25zZUludGVyY2VwdG9yfSkudGhlbigoZnVuY3Rpb24oZSl7bGV0IHQ9SlNPTi5wYXJzZShlLmRhdGEpLHI9dCYmKHQuZXJyb3J8fCIiKSxvPXQmJih0LnBhcnNlRXJyb3J8fCIiKTtlLm9rP3J8fG8/YS5uZXdBdXRoRXJyKHthdXRoSWQ6cCxsZXZlbDoiZXJyb3IiLHNvdXJjZToiYXV0aCIsbWVzc2FnZTpKU09OLnN0cmluZ2lmeSh0KX0pOm4uYXV0aG9yaXplT2F1dGgyV2l0aFBlcnNpc3RPcHRpb24oe2F1dGg6Zix0b2tlbjp0fSk6YS5uZXdBdXRoRXJyKHthdXRoSWQ6cCxsZXZlbDoiZXJyb3IiLHNvdXJjZToiYXV0aCIsbWVzc2FnZTplLnN0YXR1c1RleHR9KX0pKS5jYXRjaCgoZT0+e2xldCB0PW5ldyBFcnJvcihlKS5tZXNzYWdlO2lmKGUucmVzcG9uc2UmJmUucmVzcG9uc2UuZGF0YSl7Y29uc3Qgcj1lLnJlc3BvbnNlLmRhdGE7dHJ5e2NvbnN0IGU9InN0cmluZyI9PXR5cGVvZiByP0pTT04ucGFyc2Uocik6cjtlLmVycm9yJiYodCs9YCwgZXJyb3I6ICR7ZS5lcnJvcn1gKSxlLmVycm9yX2Rlc2NyaXB0aW9uJiYodCs9YCwgZGVzY3JpcHRpb246ICR7ZS5lcnJvcl9kZXNjcmlwdGlvbn1gKX1jYXRjaChlKXt9fWEubmV3QXV0aEVycih7YXV0aElkOnAsbGV2ZWw6ImVycm9yIixzb3VyY2U6ImF1dGgiLG1lc3NhZ2U6dH0pfSkpfTtmdW5jdGlvbiBjb25maWd1cmVBdXRoKGUpe3JldHVybnt0eXBlOmp0LHBheWxvYWQ6ZX19ZnVuY3Rpb24gcmVzdG9yZUF1dGhvcml6YXRpb24oZSl7cmV0dXJue3R5cGU6UnQscGF5bG9hZDplfX1jb25zdCBwZXJzaXN0QXV0aG9yaXphdGlvbklmTmVlZGVkPSgpPT4oe2F1dGhTZWxlY3RvcnM6ZSxnZXRDb25maWdzOnR9KT0+e2lmKCF0KCkucGVyc2lzdEF1dGhvcml6YXRpb24pcmV0dXJuO2NvbnN0IHI9ZS5hdXRob3JpemVkKCkudG9KUygpO2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJhdXRob3JpemVkIixKU09OLnN0cmluZ2lmeShyKSl9LGF1dGhQb3B1cD0oZSx0KT0+KCk9PntjdC5zd2FnZ2VyVUlSZWRpcmVjdE9hdXRoMj10LGN0Lm9wZW4oZSl9O3ZhciBUdD17W2t0XTooZSx7cGF5bG9hZDp0fSk9PmUuc2V0KCJzaG93RGVmaW5pdGlvbnMiLHQpLFtOdF06KGUse3BheWxvYWQ6dH0pPT57bGV0IHI9KDAsWGUuZnJvbUpTKSh0KSxuPWUuZ2V0KCJhdXRob3JpemVkIil8fCgwLFhlLk1hcCkoKTtyZXR1cm4gci5lbnRyeVNlcSgpLmZvckVhY2goKChbdCxyXSk9PntpZighaXNGdW5jKHIuZ2V0SW4pKXJldHVybiBlLnNldCgiYXV0aG9yaXplZCIsbik7bGV0IGE9ci5nZXRJbihbInNjaGVtYSIsInR5cGUiXSk7aWYoImFwaUtleSI9PT1hfHwiaHR0cCI9PT1hKW49bi5zZXQodCxyKTtlbHNlIGlmKCJiYXNpYyI9PT1hKXtsZXQgZT1yLmdldEluKFsidmFsdWUiLCJ1c2VybmFtZSJdKSxhPXIuZ2V0SW4oWyJ2YWx1ZSIsInBhc3N3b3JkIl0pO249bi5zZXRJbihbdCwidmFsdWUiXSx7dXNlcm5hbWU6ZSxoZWFkZXI6IkJhc2ljICIrYnRvYShlKyI6IithKX0pLG49bi5zZXRJbihbdCwic2NoZW1hIl0sci5nZXQoInNjaGVtYSIpKX19KSksZS5zZXQoImF1dGhvcml6ZWQiLG4pfSxbSXRdOihlLHtwYXlsb2FkOnR9KT0+e2xldCByLHthdXRoOm4sdG9rZW46YX09dDtuLnRva2VuPU9iamVjdC5hc3NpZ24oe30sYSkscj0oMCxYZS5mcm9tSlMpKG4pO2xldCBvPWUuZ2V0KCJhdXRob3JpemVkIil8fCgwLFhlLk1hcCkoKTtyZXR1cm4gbz1vLnNldChyLmdldCgibmFtZSIpLHIpLGUuc2V0KCJhdXRob3JpemVkIixvKX0sW0F0XTooZSx7cGF5bG9hZDp0fSk9PntsZXQgcj1lLmdldCgiYXV0aG9yaXplZCIpLndpdGhNdXRhdGlvbnMoKGU9Pnt0LmZvckVhY2goKHQ9PntlLmRlbGV0ZSh0KX0pKX0pKTtyZXR1cm4gZS5zZXQoImF1dGhvcml6ZWQiLHIpfSxbanRdOihlLHtwYXlsb2FkOnR9KT0+ZS5zZXQoImNvbmZpZ3MiLHQpLFtSdF06KGUse3BheWxvYWQ6dH0pPT5lLnNldCgiYXV0aG9yaXplZCIsKDAsWGUuZnJvbUpTKSh0LmF1dGhvcml6ZWQpKX0sUHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LGUpLHR9KHtjcmVhdGVTZWxlY3RvcjpmdW5jdGlvbigpe3JldHVybiB5LmNyZWF0ZVNlbGVjdG9yfX0pO2NvbnN0IHN0YXRlPWU9PmUsQnQ9KDAsUHQuY3JlYXRlU2VsZWN0b3IpKHN0YXRlLChlPT5lLmdldCgic2hvd0RlZmluaXRpb25zIikpKSxNdD0oMCxQdC5jcmVhdGVTZWxlY3Rvcikoc3RhdGUsKCgpPT4oe3NwZWNTZWxlY3RvcnM6ZX0pPT57bGV0IHQ9ZS5zZWN1cml0eURlZmluaXRpb25zKCl8fCgwLFhlLk1hcCkoe30pLHI9KDAsWGUuTGlzdCkoKTtyZXR1cm4gdC5lbnRyeVNlcSgpLmZvckVhY2goKChbZSx0XSk9PntsZXQgbj0oMCxYZS5NYXApKCk7bj1uLnNldChlLHQpLHI9ci5wdXNoKG4pfSkpLHJ9KSksc2VsZWN0QXV0aFBhdGg9KGUsdCk9Pih7c3BlY1NlbGVjdG9yczplfSk9PigwLFhlLkxpc3QpKGUuaXNPQVMzKCk/WyJjb21wb25lbnRzIiwic2VjdXJpdHlTY2hlbWVzIix0XTpbInNlY3VyaXR5RGVmaW5pdGlvbnMiLHRdKSxnZXREZWZpbml0aW9uc0J5TmFtZXM9KGUsdCk9Pih7c3BlY1NlbGVjdG9yczplfSk9Pntjb25zb2xlLndhcm4oIldBUk5JTkc6IGdldERlZmluaXRpb25zQnlOYW1lcyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbi4iKTtsZXQgcj1lLnNlY3VyaXR5RGVmaW5pdGlvbnMoKSxuPSgwLFhlLkxpc3QpKCk7cmV0dXJuIHQudmFsdWVTZXEoKS5mb3JFYWNoKChlPT57bGV0IHQ9KDAsWGUuTWFwKSgpO2UuZW50cnlTZXEoKS5mb3JFYWNoKCgoW2Usbl0pPT57bGV0IGEsbz1yLmdldChlKTsib2F1dGgyIj09PW8uZ2V0KCJ0eXBlIikmJm4uc2l6ZSYmKGE9by5nZXQoInNjb3BlcyIpLGEua2V5U2VxKCkuZm9yRWFjaCgoZT0+e24uY29udGFpbnMoZSl8fChhPWEuZGVsZXRlKGUpKX0pKSxvPW8uc2V0KCJhbGxvd2VkU2NvcGVzIixhKSksdD10LnNldChlLG8pfSkpLG49bi5wdXNoKHQpfSkpLG59LGRlZmluaXRpb25zRm9yUmVxdWlyZW1lbnRzPShlLHQ9KDAsWGUuTGlzdCkoKSk9Pih7YXV0aFNlbGVjdG9yczplfSk9Pntjb25zdCByPWUuZGVmaW5pdGlvbnNUb0F1dGhvcml6ZSgpfHwoMCxYZS5MaXN0KSgpO2xldCBuPSgwLFhlLkxpc3QpKCk7cmV0dXJuIHIuZm9yRWFjaCgoZT0+e2xldCByPXQuZmluZCgodD0+dC5nZXQoZS5rZXlTZXEoKS5maXJzdCgpKSkpO3ImJihlLmZvckVhY2goKCh0LG4pPT57aWYoIm9hdXRoMiI9PT10LmdldCgidHlwZSIpKXtjb25zdCBhPXIuZ2V0KG4pO2xldCBvPXQuZ2V0KCJzY29wZXMiKTtYZS5MaXN0LmlzTGlzdChhKSYmWGUuTWFwLmlzTWFwKG8pJiYoby5rZXlTZXEoKS5mb3JFYWNoKChlPT57YS5jb250YWlucyhlKXx8KG89by5kZWxldGUoZSkpfSkpLGU9ZS5zZXQobix0LnNldCgic2NvcGVzIixvKSkpfX0pKSxuPW4ucHVzaChlKSl9KSksbn0scXQ9KDAsUHQuY3JlYXRlU2VsZWN0b3IpKHN0YXRlLChlPT5lLmdldCgiYXV0aG9yaXplZCIpfHwoMCxYZS5NYXApKCkpKSxpc0F1dGhvcml6ZWQ9KGUsdCk9Pih7YXV0aFNlbGVjdG9yczplfSk9PntsZXQgcj1lLmF1dGhvcml6ZWQoKTtyZXR1cm4gWGUuTGlzdC5pc0xpc3QodCk/ISF0LnRvSlMoKS5maWx0ZXIoKGU9Pi0xPT09T2JqZWN0LmtleXMoZSkubWFwKChlPT4hIXIuZ2V0KGUpKSkuaW5kZXhPZighMSkpKS5sZW5ndGg6bnVsbH0sTHQ9KDAsUHQuY3JlYXRlU2VsZWN0b3IpKHN0YXRlLChlPT5lLmdldCgiY29uZmlncyIpKSksZXhlY3V0ZT0oZSx7YXV0aFNlbGVjdG9yczp0LHNwZWNTZWxlY3RvcnM6cn0pPT4oe3BhdGg6bixtZXRob2Q6YSxvcGVyYXRpb246byxleHRyYXM6c30pPT57bGV0IGw9e2F1dGhvcml6ZWQ6dC5hdXRob3JpemVkKCkmJnQuYXV0aG9yaXplZCgpLnRvSlMoKSxkZWZpbml0aW9uczpyLnNlY3VyaXR5RGVmaW5pdGlvbnMoKSYmci5zZWN1cml0eURlZmluaXRpb25zKCkudG9KUygpLHNwZWNTZWN1cml0eTpyLnNlY3VyaXR5KCkmJnIuc2VjdXJpdHkoKS50b0pTKCl9O3JldHVybiBlKHtwYXRoOm4sbWV0aG9kOmEsb3BlcmF0aW9uOm8sc2VjdXJpdGllczpsLC4uLnN9KX0sbG9hZGVkPShlLHQpPT5yPT57Y29uc3R7Z2V0Q29uZmlnczpuLGF1dGhBY3Rpb25zOmF9PXQsbz1uKCk7aWYoZShyKSxvLnBlcnNpc3RBdXRob3JpemF0aW9uKXtjb25zdCBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJhdXRob3JpemVkIik7ZSYmYS5yZXN0b3JlQXV0aG9yaXphdGlvbih7YXV0aG9yaXplZDpKU09OLnBhcnNlKGUpfSl9fSx3cmFwX2FjdGlvbnNfYXV0aG9yaXplPShlLHQpPT5yPT57ZShyKTtpZih0LmdldENvbmZpZ3MoKS5wZXJzaXN0QXV0aG9yaXphdGlvbil0cnl7Y29uc3Rbe3NjaGVtYTplLHZhbHVlOnR9XT1PYmplY3QudmFsdWVzKHIpLG49ImFwaUtleSI9PT1lLmdldCgidHlwZSIpLGE9ImNvb2tpZSI9PT1lLmdldCgiaW4iKTtuJiZhJiYoZG9jdW1lbnQuY29va2llPWAke2UuZ2V0KCJuYW1lIil9PSR7dH07IFNhbWVTaXRlPU5vbmU7IFNlY3VyZWApfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoIkVycm9yIHBlcnNpc3RpbmcgY29va2llIGJhc2VkIGFwaUtleSBpbiBkb2N1bWVudC5jb29raWUuIixlKX19LHdyYXBfYWN0aW9uc19sb2dvdXQ9KGUsdCk9PnI9Pntjb25zdCBuPXQuZ2V0Q29uZmlncygpLGE9dC5hdXRoU2VsZWN0b3JzLmF1dGhvcml6ZWQoKTt0cnl7bi5wZXJzaXN0QXV0aG9yaXphdGlvbiYmQXJyYXkuaXNBcnJheShyKSYmci5mb3JFYWNoKChlPT57Y29uc3QgdD1hLmdldChlLHt9KSxyPSJhcGlLZXkiPT09dC5nZXRJbihbInNjaGVtYSIsInR5cGUiXSksbj0iY29va2llIj09PXQuZ2V0SW4oWyJzY2hlbWEiLCJpbiJdKTtpZihyJiZuKXtjb25zdCBlPXQuZ2V0SW4oWyJzY2hlbWEiLCJuYW1lIl0pO2RvY3VtZW50LmNvb2tpZT1gJHtlfT07IE1heC1BZ2U9LTk5OTk5OTk5YH19KSl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcigiRXJyb3IgZGVsZXRpbmcgY29va2llIGJhc2VkIGFwaUtleSBmcm9tIGRvY3VtZW50LmNvb2tpZS4iLGUpfWUocil9O3ZhciBVdD1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gUy5kZWZhdWx0fX0pLER0PWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBfLmRlZmF1bHR9fSk7Y2xhc3MgTG9ja0F1dGhJY29uIGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7bWFwU3RhdGVUb1Byb3BzKGUsdCl7cmV0dXJue3N0YXRlOmUsb3duUHJvcHM6KDAsRHQuZGVmYXVsdCkodCxPYmplY3Qua2V5cyh0LmdldFN5c3RlbSgpKSl9fXJlbmRlcigpe2NvbnN0e2dldENvbXBvbmVudDplLG93blByb3BzOnR9PXRoaXMucHJvcHMscj1lKCJMb2NrSWNvbiIpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocix0KX19dmFyICR0PUxvY2tBdXRoSWNvbjtjbGFzcyBVbmxvY2tBdXRoSWNvbiBleHRlbmRzIEhlLmRlZmF1bHQuQ29tcG9uZW50e21hcFN0YXRlVG9Qcm9wcyhlLHQpe3JldHVybntzdGF0ZTplLG93blByb3BzOigwLER0LmRlZmF1bHQpKHQsT2JqZWN0LmtleXModC5nZXRTeXN0ZW0oKSkpfX1yZW5kZXIoKXtjb25zdHtnZXRDb21wb25lbnQ6ZSxvd25Qcm9wczp0fT10aGlzLnByb3BzLHI9ZSgiVW5sb2NrSWNvbiIpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocix0KX19dmFyIFZ0PVVubG9ja0F1dGhJY29uO2Z1bmN0aW9uIGF1dGgoKXtyZXR1cm57YWZ0ZXJMb2FkKGUpe3RoaXMucm9vdEluamVjdHM9dGhpcy5yb290SW5qZWN0c3x8e30sdGhpcy5yb290SW5qZWN0cy5pbml0T0F1dGg9ZS5hdXRoQWN0aW9ucy5jb25maWd1cmVBdXRoLHRoaXMucm9vdEluamVjdHMucHJlYXV0aG9yaXplQXBpS2V5PXByZWF1dGhvcml6ZUFwaUtleS5iaW5kKG51bGwsZSksdGhpcy5yb290SW5qZWN0cy5wcmVhdXRob3JpemVCYXNpYz1wcmVhdXRob3JpemVCYXNpYy5iaW5kKG51bGwsZSl9LGNvbXBvbmVudHM6e0xvY2tBdXRoSWNvbjokdCxVbmxvY2tBdXRoSWNvbjpWdCxMb2NrQXV0aE9wZXJhdGlvbkljb246JHQsVW5sb2NrQXV0aE9wZXJhdGlvbkljb246VnR9LHN0YXRlUGx1Z2luczp7YXV0aDp7cmVkdWNlcnM6VHQsYWN0aW9uczprZSxzZWxlY3RvcnM6TmUsd3JhcEFjdGlvbnM6e2F1dGhvcml6ZTp3cmFwX2FjdGlvbnNfYXV0aG9yaXplLGxvZ291dDp3cmFwX2FjdGlvbnNfbG9nb3V0fX0sY29uZmlnczp7d3JhcEFjdGlvbnM6e2xvYWRlZH19LHNwZWM6e3dyYXBBY3Rpb25zOntleGVjdXRlfX19fX1mdW5jdGlvbiBwcmVhdXRob3JpemVCYXNpYyhlLHQscixuKXtjb25zdHthdXRoQWN0aW9uczp7YXV0aG9yaXplOmF9LHNwZWNTZWxlY3RvcnM6e3NwZWNKc29uOm8saXNPQVMzOnN9fT1lLGw9cygpP1siY29tcG9uZW50cyIsInNlY3VyaXR5U2NoZW1lcyJdOlsic2VjdXJpdHlEZWZpbml0aW9ucyJdLGk9bygpLmdldEluKFsuLi5sLHRdKTtyZXR1cm4gaT9hKHtbdF06e3ZhbHVlOnt1c2VybmFtZTpyLHBhc3N3b3JkOm59LHNjaGVtYTppLnRvSlMoKX19KTpudWxsfWZ1bmN0aW9uIHByZWF1dGhvcml6ZUFwaUtleShlLHQscil7Y29uc3R7YXV0aEFjdGlvbnM6e2F1dGhvcml6ZTpufSxzcGVjU2VsZWN0b3JzOntzcGVjSnNvbjphLGlzT0FTMzpvfX09ZSxzPW8oKT9bImNvbXBvbmVudHMiLCJzZWN1cml0eVNjaGVtZXMiXTpbInNlY3VyaXR5RGVmaW5pdGlvbnMiXSxsPWEoKS5nZXRJbihbLi4ucyx0XSk7cmV0dXJuIGw/bih7W3RdOnt2YWx1ZTpyLHNjaGVtYTpsLnRvSlMoKX19KTpudWxsfXZhciBKdD1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe0pTT05fU0NIRU1BOmZ1bmN0aW9uKCl7cmV0dXJuIHYuSlNPTl9TQ0hFTUF9LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdi5kZWZhdWx0fX0pO2NvbnN0IEZ0PSJjb25maWdzX3VwZGF0ZSIsenQ9ImNvbmZpZ3NfdG9nZ2xlIjtmdW5jdGlvbiB1cGRhdGUoZSx0KXtyZXR1cm57dHlwZTpGdCxwYXlsb2FkOntbZV06dH19fWZ1bmN0aW9uIHRvZ2dsZShlKXtyZXR1cm57dHlwZTp6dCxwYXlsb2FkOmV9fWNvbnN0IGFjdGlvbnNfbG9hZGVkPSgpPT4oKT0+e30sZG93bmxvYWRDb25maWc9ZT0+dD0+e2NvbnN0e2ZuOntmZXRjaDpyfX09dDtyZXR1cm4gcihlKX0sZ2V0Q29uZmlnQnlVcmw9KGUsdCk9PnI9Pntjb25zdHtzcGVjQWN0aW9uczpuLGNvbmZpZ3NBY3Rpb25zOmF9PXI7aWYoZSlyZXR1cm4gYS5kb3dubG9hZENvbmZpZyhlKS50aGVuKG5leHQsbmV4dCk7ZnVuY3Rpb24gbmV4dChhKXthIGluc3RhbmNlb2YgRXJyb3J8fGEuc3RhdHVzPj00MDA/KG4udXBkYXRlTG9hZGluZ1N0YXR1cygiZmFpbGVkQ29uZmlnIiksbi51cGRhdGVMb2FkaW5nU3RhdHVzKCJmYWlsZWRDb25maWciKSxuLnVwZGF0ZVVybCgiIiksY29uc29sZS5lcnJvcihhLnN0YXR1c1RleHQrIiAiK2UudXJsKSx0KG51bGwpKTp0KCgoZSx0KT0+e3RyeXtyZXR1cm4gSnQuZGVmYXVsdC5sb2FkKGUpfWNhdGNoKGUpe3JldHVybiB0JiZ0LmVyckFjdGlvbnMubmV3VGhyb3duRXJyKG5ldyBFcnJvcihlKSkse319fSkoYS50ZXh0LHIpKX19LGdldD0oZSx0KT0+ZS5nZXRJbihBcnJheS5pc0FycmF5KHQpP3Q6W3RdKTt2YXIgS3Q9e1tGdF06KGUsdCk9PmUubWVyZ2UoKDAsWGUuZnJvbUpTKSh0LnBheWxvYWQpKSxbenRdOihlLHQpPT57Y29uc3Qgcj10LnBheWxvYWQsbj1lLmdldChyKTtyZXR1cm4gZS5zZXQociwhbil9fTtmdW5jdGlvbiBjb25maWdzUGx1Z2luKCl7cmV0dXJue3N0YXRlUGx1Z2luczp7Y29uZmlnczp7cmVkdWNlcnM6S3QsYWN0aW9uczpBZSxzZWxlY3RvcnM6SWV9fX19Y29uc3Qgc2V0SGFzaD1lPT5lP2hpc3RvcnkucHVzaFN0YXRlKG51bGwsbnVsbCxgIyR7ZX1gKTp3aW5kb3cubG9jYXRpb24uaGFzaD0iIjt2YXIgV3Q9ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LGUpLHR9KHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIGIuZGVmYXVsdH19KTtjb25zdCBIdD0ibGF5b3V0X3Njcm9sbF90byIsR3Q9ImxheW91dF9jbGVhcl9zY3JvbGwiO3ZhciBYdD17Zm46e2dldFNjcm9sbFBhcmVudDpmdW5jdGlvbiBnZXRTY3JvbGxQYXJlbnQoZSx0KXtjb25zdCByPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtsZXQgbj1nZXRDb21wdXRlZFN0eWxlKGUpO2NvbnN0IGE9ImFic29sdXRlIj09PW4ucG9zaXRpb24sbz10Py8oYXV0b3xzY3JvbGx8aGlkZGVuKS86LyhhdXRvfHNjcm9sbCkvO2lmKCJmaXhlZCI9PT1uLnBvc2l0aW9uKXJldHVybiByO2ZvcihsZXQgdD1lO3Q9dC5wYXJlbnRFbGVtZW50OylpZihuPWdldENvbXB1dGVkU3R5bGUodCksKCFhfHwic3RhdGljIiE9PW4ucG9zaXRpb24pJiZvLnRlc3Qobi5vdmVyZmxvdytuLm92ZXJmbG93WStuLm92ZXJmbG93WCkpcmV0dXJuIHQ7cmV0dXJuIHJ9fSxzdGF0ZVBsdWdpbnM6e2xheW91dDp7YWN0aW9uczp7c2Nyb2xsVG9FbGVtZW50OihlLHQpPT5yPT57dHJ5e3Q9dHx8ci5mbi5nZXRTY3JvbGxQYXJlbnQoZSksV3QuZGVmYXVsdC5jcmVhdGVTY3JvbGxlcih0KS50byhlKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfX0sc2Nyb2xsVG86ZT0+KHt0eXBlOkh0LHBheWxvYWQ6QXJyYXkuaXNBcnJheShlKT9lOltlXX0pLGNsZWFyU2Nyb2xsVG86KCk9Pih7dHlwZTpHdH0pLHJlYWR5VG9TY3JvbGw6KGUsdCk9PnI9Pntjb25zdCBuPXIubGF5b3V0U2VsZWN0b3JzLmdldFNjcm9sbFRvS2V5KCk7WGUuZGVmYXVsdC5pcyhuLCgwLFhlLmZyb21KUykoZSkpJiYoci5sYXlvdXRBY3Rpb25zLnNjcm9sbFRvRWxlbWVudCh0KSxyLmxheW91dEFjdGlvbnMuY2xlYXJTY3JvbGxUbygpKX0scGFyc2VEZWVwTGlua0hhc2g6ZT0+KHtsYXlvdXRBY3Rpb25zOnQsbGF5b3V0U2VsZWN0b3JzOnIsZ2V0Q29uZmlnczpufSk9PntpZihuKCkuZGVlcExpbmtpbmcmJmUpe2xldCBuPWUuc2xpY2UoMSk7IiEiPT09blswXSYmKG49bi5zbGljZSgxKSksIi8iPT09blswXSYmKG49bi5zbGljZSgxKSk7Y29uc3QgYT1uLnNwbGl0KCIvIikubWFwKChlPT5lfHwiIikpLG89ci5pc1Nob3duS2V5RnJvbVVybEhhc2hBcnJheShhKSxbcyxsPSIiLGk9IiJdPW87aWYoIm9wZXJhdGlvbnMiPT09cyl7Y29uc3QgZT1yLmlzU2hvd25LZXlGcm9tVXJsSGFzaEFycmF5KFtsXSk7bC5pbmRleE9mKCJfIik+LTEmJihjb25zb2xlLndhcm4oIldhcm5pbmc6IGVzY2FwaW5nIGRlZXAgbGluayB3aGl0ZXNwYWNlIHdpdGggYF9gIHdpbGwgYmUgdW5zdXBwb3J0ZWQgaW4gdjQuMCwgdXNlIGAlMjBgIGluc3RlYWQuIiksdC5zaG93KGUubWFwKChlPT5lLnJlcGxhY2UoL18vZywiICIpKSksITApKSx0LnNob3coZSwhMCl9KGwuaW5kZXhPZigiXyIpPi0xfHxpLmluZGV4T2YoIl8iKT4tMSkmJihjb25zb2xlLndhcm4oIldhcm5pbmc6IGVzY2FwaW5nIGRlZXAgbGluayB3aGl0ZXNwYWNlIHdpdGggYF9gIHdpbGwgYmUgdW5zdXBwb3J0ZWQgaW4gdjQuMCwgdXNlIGAlMjBgIGluc3RlYWQuIiksdC5zaG93KG8ubWFwKChlPT5lLnJlcGxhY2UoL18vZywiICIpKSksITApKSx0LnNob3cobywhMCksdC5zY3JvbGxUbyhvKX19fSxzZWxlY3RvcnM6e2dldFNjcm9sbFRvS2V5OmU9PmUuZ2V0KCJzY3JvbGxUb0tleSIpLGlzU2hvd25LZXlGcm9tVXJsSGFzaEFycmF5KGUsdCl7Y29uc3RbcixuXT10O3JldHVybiBuP1sib3BlcmF0aW9ucyIscixuXTpyP1sib3BlcmF0aW9ucy10YWciLHJdOltdfSx1cmxIYXNoQXJyYXlGcm9tSXNTaG93bktleShlLHQpe2xldFtyLG4sYV09dDtyZXR1cm4ib3BlcmF0aW9ucyI9PXI/W24sYV06Im9wZXJhdGlvbnMtdGFnIj09cj9bbl06W119fSxyZWR1Y2Vyczp7W0h0XTooZSx0KT0+ZS5zZXQoInNjcm9sbFRvS2V5IixYZS5kZWZhdWx0LmZyb21KUyh0LnBheWxvYWQpKSxbR3RdOmU9PmUuZGVsZXRlKCJzY3JvbGxUb0tleSIpfSx3cmFwQWN0aW9uczp7c2hvdzooZSx7Z2V0Q29uZmlnczp0LGxheW91dFNlbGVjdG9yczpyfSk9PiguLi5uKT0+e2lmKGUoLi4ubiksdCgpLmRlZXBMaW5raW5nKXRyeXtsZXRbZSx0XT1uO2U9QXJyYXkuaXNBcnJheShlKT9lOltlXTtjb25zdCBhPXIudXJsSGFzaEFycmF5RnJvbUlzU2hvd25LZXkoZSk7aWYoIWEubGVuZ3RoKXJldHVybjtjb25zdFtvLHNdPWE7aWYoIXQpcmV0dXJuIHNldEhhc2goIi8iKTsyPT09YS5sZW5ndGg/c2V0SGFzaChjcmVhdGVEZWVwTGlua1BhdGgoYC8ke2VuY29kZVVSSUNvbXBvbmVudChvKX0vJHtlbmNvZGVVUklDb21wb25lbnQocyl9YCkpOjE9PT1hLmxlbmd0aCYmc2V0SGFzaChjcmVhdGVEZWVwTGlua1BhdGgoYC8ke2VuY29kZVVSSUNvbXBvbmVudChvKX1gKSl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX19fX19fSxZdD1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5kZWZhdWx0fX0pO3ZhciBvcGVyYXRpb25fd3JhcHBlcj0oZSx0KT0+Y2xhc3MgT3BlcmF0aW9uV3JhcHBlciBleHRlbmRzIEhlLmRlZmF1bHQuQ29tcG9uZW50e29uTG9hZD1lPT57Y29uc3R7b3BlcmF0aW9uOnJ9PXRoaXMucHJvcHMse3RhZzpuLG9wZXJhdGlvbklkOmF9PXIudG9PYmplY3QoKTtsZXR7aXNTaG93bktleTpvfT1yLnRvT2JqZWN0KCk7bz1vfHxbIm9wZXJhdGlvbnMiLG4sYV0sdC5sYXlvdXRBY3Rpb25zLnJlYWR5VG9TY3JvbGwobyxlKX07cmVuZGVyKCl7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse3JlZjp0aGlzLm9uTG9hZH0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGUsdGhpcy5wcm9wcykpfX07dmFyIG9wZXJhdGlvbl90YWdfd3JhcHBlcj0oZSx0KT0+Y2xhc3MgT3BlcmF0aW9uVGFnV3JhcHBlciBleHRlbmRzIEhlLmRlZmF1bHQuQ29tcG9uZW50e29uTG9hZD1lPT57Y29uc3R7dGFnOnJ9PXRoaXMucHJvcHMsbj1bIm9wZXJhdGlvbnMtdGFnIixyXTt0LmxheW91dEFjdGlvbnMucmVhZHlUb1Njcm9sbChuLGUpfTtyZW5kZXIoKXtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7cmVmOnRoaXMub25Mb2FkfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoZSx0aGlzLnByb3BzKSl9fTtmdW5jdGlvbiBkZWVwX2xpbmtpbmcoKXtyZXR1cm5bWHQse3N0YXRlUGx1Z2luczp7Y29uZmlnczp7d3JhcEFjdGlvbnM6e2xvYWRlZDooZSx0KT0+KC4uLnIpPT57ZSguLi5yKTtjb25zdCBuPWRlY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24uaGFzaCk7dC5sYXlvdXRBY3Rpb25zLnBhcnNlRGVlcExpbmtIYXNoKG4pfX19fSx3cmFwQ29tcG9uZW50czp7b3BlcmF0aW9uOm9wZXJhdGlvbl93cmFwcGVyLE9wZXJhdGlvblRhZzpvcGVyYXRpb25fdGFnX3dyYXBwZXJ9fV19dmFyIFF0PWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBDLmRlZmF1bHR9fSk7ZnVuY3Rpb24gdHJhbnNmb3JtKGUpe3JldHVybiBlLm1hcCgoZT0+e2xldCB0PSJpcyBub3Qgb2YgYSB0eXBlKHMpIixyPWUuZ2V0KCJtZXNzYWdlIikuaW5kZXhPZih0KTtpZihyPi0xKXtsZXQgdD1lLmdldCgibWVzc2FnZSIpLnNsaWNlKHIrMTkpLnNwbGl0KCIsIik7cmV0dXJuIGUuc2V0KCJtZXNzYWdlIixlLmdldCgibWVzc2FnZSIpLnNsaWNlKDAscikrZnVuY3Rpb24gbWFrZU5ld01lc3NhZ2UoZSl7cmV0dXJuIGUucmVkdWNlKCgoZSx0LHIsbik9PnI9PT1uLmxlbmd0aC0xJiZuLmxlbmd0aD4xP2UrIm9yICIrdDpuW3IrMV0mJm4ubGVuZ3RoPjI/ZSt0KyIsICI6bltyKzFdP2UrdCsiICI6ZSt0KSwic2hvdWxkIGJlIGEiKX0odCkpfXJldHVybiBlfSkpfXZhciBadD1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4geC5kZWZhdWx0fX0pO2Z1bmN0aW9uIHBhcmFtZXRlcl9vbmVvZl90cmFuc2Zvcm0oZSx7anNTcGVjOnR9KXtyZXR1cm4gZX1jb25zdCBlcj1bamUsUmVdO2Z1bmN0aW9uIHRyYW5zZm9ybUVycm9ycyhlKXtsZXQgdD17anNTcGVjOnt9fSxyPSgwLFF0LmRlZmF1bHQpKGVyLCgoZSxyKT0+e3RyeXtyZXR1cm4gci50cmFuc2Zvcm0oZSx0KS5maWx0ZXIoKGU9PiEhZSkpfWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJUcmFuc2Zvcm1lciBlcnJvcjoiLHQpLGV9fSksZSk7cmV0dXJuIHIuZmlsdGVyKChlPT4hIWUpKS5tYXAoKGU9PighZS5nZXQoImxpbmUiKSYmZS5nZXQoInBhdGgiKSxlKSkpfWxldCB0cj17bGluZTowLGxldmVsOiJlcnJvciIsbWVzc2FnZToiVW5rbm93biBlcnJvciJ9O2NvbnN0IHJyPSgwLFB0LmNyZWF0ZVNlbGVjdG9yKSgoZT0+ZSksKGU9PmUuZ2V0KCJlcnJvcnMiLCgwLFhlLkxpc3QpKCkpKSksbnI9KDAsUHQuY3JlYXRlU2VsZWN0b3IpKHJyLChlPT5lLmxhc3QoKSkpO2Z1bmN0aW9uIGVycihlKXtyZXR1cm57c3RhdGVQbHVnaW5zOntlcnI6e3JlZHVjZXJzOntbcnRdOihlLHtwYXlsb2FkOnR9KT0+e2xldCByPU9iamVjdC5hc3NpZ24odHIsdCx7dHlwZToidGhyb3duIn0pO3JldHVybiBlLnVwZGF0ZSgiZXJyb3JzIiwoZT0+KGV8fCgwLFhlLkxpc3QpKCkpLnB1c2goKDAsWGUuZnJvbUpTKShyKSkpKS51cGRhdGUoImVycm9ycyIsKGU9PnRyYW5zZm9ybUVycm9ycyhlKSkpfSxbbnRdOihlLHtwYXlsb2FkOnR9KT0+KHQ9dC5tYXAoKGU9PigwLFhlLmZyb21KUykoT2JqZWN0LmFzc2lnbih0cixlLHt0eXBlOiJ0aHJvd24ifSkpKSksZS51cGRhdGUoImVycm9ycyIsKGU9PihlfHwoMCxYZS5MaXN0KSgpKS5jb25jYXQoKDAsWGUuZnJvbUpTKSh0KSkpKS51cGRhdGUoImVycm9ycyIsKGU9PnRyYW5zZm9ybUVycm9ycyhlKSkpKSxbYXRdOihlLHtwYXlsb2FkOnR9KT0+e2xldCByPSgwLFhlLmZyb21KUykodCk7cmV0dXJuIHI9ci5zZXQoInR5cGUiLCJzcGVjIiksZS51cGRhdGUoImVycm9ycyIsKGU9PihlfHwoMCxYZS5MaXN0KSgpKS5wdXNoKCgwLFhlLmZyb21KUykocikpLnNvcnRCeSgoZT0+ZS5nZXQoImxpbmUiKSkpKSkudXBkYXRlKCJlcnJvcnMiLChlPT50cmFuc2Zvcm1FcnJvcnMoZSkpKX0sW290XTooZSx7cGF5bG9hZDp0fSk9Pih0PXQubWFwKChlPT4oMCxYZS5mcm9tSlMpKE9iamVjdC5hc3NpZ24odHIsZSx7dHlwZToic3BlYyJ9KSkpKSxlLnVwZGF0ZSgiZXJyb3JzIiwoZT0+KGV8fCgwLFhlLkxpc3QpKCkpLmNvbmNhdCgoMCxYZS5mcm9tSlMpKHQpKSkpLnVwZGF0ZSgiZXJyb3JzIiwoZT0+dHJhbnNmb3JtRXJyb3JzKGUpKSkpLFtzdF06KGUse3BheWxvYWQ6dH0pPT57bGV0IHI9KDAsWGUuZnJvbUpTKShPYmplY3QuYXNzaWduKHt9LHQpKTtyZXR1cm4gcj1yLnNldCgidHlwZSIsImF1dGgiKSxlLnVwZGF0ZSgiZXJyb3JzIiwoZT0+KGV8fCgwLFhlLkxpc3QpKCkpLnB1c2goKDAsWGUuZnJvbUpTKShyKSkpKS51cGRhdGUoImVycm9ycyIsKGU9PnRyYW5zZm9ybUVycm9ycyhlKSkpfSxbbHRdOihlLHtwYXlsb2FkOnR9KT0+e2lmKCF0fHwhZS5nZXQoImVycm9ycyIpKXJldHVybiBlO2xldCByPWUuZ2V0KCJlcnJvcnMiKS5maWx0ZXIoKGU9PmUua2V5U2VxKCkuZXZlcnkoKHI9Pntjb25zdCBuPWUuZ2V0KHIpLGE9dFtyXTtyZXR1cm4hYXx8biE9PWF9KSkpKTtyZXR1cm4gZS5tZXJnZSh7ZXJyb3JzOnJ9KX0sW2l0XTooZSx7cGF5bG9hZDp0fSk9PntpZighdHx8ImZ1bmN0aW9uIiE9dHlwZW9mIHQpcmV0dXJuIGU7bGV0IHI9ZS5nZXQoImVycm9ycyIpLmZpbHRlcigoZT0+dChlKSkpO3JldHVybiBlLm1lcmdlKHtlcnJvcnM6cn0pfX0sYWN0aW9uczpPZSxzZWxlY3RvcnM6VGV9fX19ZnVuY3Rpb24gb3BzRmlsdGVyKGUsdCl7cmV0dXJuIGUuZmlsdGVyKCgoZSxyKT0+LTEhPT1yLmluZGV4T2YodCkpKX1mdW5jdGlvbiBmaWx0ZXIoKXtyZXR1cm57Zm46e29wc0ZpbHRlcn19fXZhciBhcj1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gTy5kZWZhdWx0fX0pO3ZhciBhcnJvd191cD0oe2NsYXNzTmFtZTplPW51bGwsd2lkdGg6dD0yMCxoZWlnaHQ6cj0yMCwuLi5ufSk9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3ZnIiwoMCxhci5kZWZhdWx0KSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix2aWV3Qm94OiIwIDAgMjAgMjAiLGNsYXNzTmFtZTplLHdpZHRoOnQsaGVpZ2h0OnIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsZm9jdXNhYmxlOiJmYWxzZSJ9LG4pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0gMTcuNDE4IDE0LjkwOCBDIDE3LjY5IDE1LjE3NiAxOC4xMjcgMTUuMTc2IDE4LjM5NyAxNC45MDggQyAxOC42NjcgMTQuNjQgMTguNjY4IDE0LjIwNyAxOC4zOTcgMTMuOTM5IEwgMTAuNDg5IDYuMTA5IEMgMTAuMjE5IDUuODQxIDkuNzgyIDUuODQxIDkuNTEgNi4xMDkgTCAxLjYwMiAxMy45MzkgQyAxLjMzMiAxNC4yMDcgMS4zMzIgMTQuNjQgMS42MDIgMTQuOTA4IEMgMS44NzMgMTUuMTc2IDIuMzExIDE1LjE3NiAyLjU4MSAxNC45MDggTCAxMCA3Ljc2NyBMIDE3LjQxOCAxNC45MDggWiJ9KSk7dmFyIGFycm93X2Rvd249KHtjbGFzc05hbWU6ZT1udWxsLHdpZHRoOnQ9MjAsaGVpZ2h0OnI9MjAsLi4ubn0pPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInN2ZyIsKDAsYXIuZGVmYXVsdCkoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdmlld0JveDoiMCAwIDIwIDIwIixjbGFzc05hbWU6ZSx3aWR0aDp0LGhlaWdodDpyLCJhcmlhLWhpZGRlbiI6InRydWUiLGZvY3VzYWJsZToiZmFsc2UifSxuKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTcuNDE4IDYuMTA5Yy4yNzItLjI2OC43MDktLjI2OC45NzkgMHMuMjcxLjcwMSAwIC45NjlsLTcuOTA4IDcuODNjLS4yNy4yNjgtLjcwNy4yNjgtLjk3OSAwbC03LjkwOC03LjgzYy0uMjctLjI2OC0uMjctLjcwMSAwLS45NjkuMjcxLS4yNjguNzA5LS4yNjguOTc5IDBMMTAgMTMuMjVsNy40MTgtNy4xNDF6In0pKTt2YXIgYXJyb3c9KHtjbGFzc05hbWU6ZT1udWxsLHdpZHRoOnQ9MjAsaGVpZ2h0OnI9MjAsLi4ubn0pPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInN2ZyIsKDAsYXIuZGVmYXVsdCkoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdmlld0JveDoiMCAwIDIwIDIwIixjbGFzc05hbWU6ZSx3aWR0aDp0LGhlaWdodDpyLCJhcmlhLWhpZGRlbiI6InRydWUiLGZvY3VzYWJsZToiZmFsc2UifSxuKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTMuMjUgMTBMNi4xMDkgMi41OGMtLjI2OC0uMjctLjI2OC0uNzA3IDAtLjk3OS4yNjgtLjI3LjcwMS0uMjcuOTY5IDBsNy44MyA3LjkwOGMuMjY4LjI3MS4yNjguNzA5IDAgLjk3OWwtNy44MyA3LjkwOGMtLjI2OC4yNzEtLjcwMS4yNy0uOTY5IDAtLjI2OC0uMjY5LS4yNjgtLjcwNyAwLS45NzlMMTMuMjUgMTB6In0pKTt2YXIgY29tcG9uZW50c19jbG9zZT0oe2NsYXNzTmFtZTplPW51bGwsd2lkdGg6dD0yMCxoZWlnaHQ6cj0yMCwuLi5ufSk9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3ZnIiwoMCxhci5kZWZhdWx0KSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix2aWV3Qm94OiIwIDAgMjAgMjAiLGNsYXNzTmFtZTplLHdpZHRoOnQsaGVpZ2h0OnIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsZm9jdXNhYmxlOiJmYWxzZSJ9LG4pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xNC4zNDggMTQuODQ5Yy0uNDY5LjQ2OS0xLjIyOS40NjktMS42OTcgMEwxMCAxMS44MTlsLTIuNjUxIDMuMDI5Yy0uNDY5LjQ2OS0xLjIyOS40NjktMS42OTcgMC0uNDY5LS40NjktLjQ2OS0xLjIyOSAwLTEuNjk3bDIuNzU4LTMuMTUtMi43NTktMy4xNTJjLS40NjktLjQ2OS0uNDY5LTEuMjI4IDAtMS42OTcuNDY5LS40NjkgMS4yMjgtLjQ2OSAxLjY5NyAwTDEwIDguMTgzbDIuNjUxLTMuMDMxYy40NjktLjQ2OSAxLjIyOC0uNDY5IDEuNjk3IDAgLjQ2OS40NjkuNDY5IDEuMjI5IDAgMS42OTdsLTIuNzU4IDMuMTUyIDIuNzU4IDMuMTVjLjQ2OS40NjkuNDY5IDEuMjI5IDAgMS42OTh6In0pKTt2YXIgY29weT0oe2NsYXNzTmFtZTplPW51bGwsd2lkdGg6dD0xNSxoZWlnaHQ6cj0xNiwuLi5ufSk9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3ZnIiwoMCxhci5kZWZhdWx0KSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix2aWV3Qm94OiIwIDAgMTUgMTYiLGNsYXNzTmFtZTplLHdpZHRoOnQsaGVpZ2h0OnIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsZm9jdXNhYmxlOiJmYWxzZSJ9LG4pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZyIse3RyYW5zZm9ybToidHJhbnNsYXRlKDIsIC0xKSJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6IiNmZmZmZmYiLGZpbGxSdWxlOiJldmVub2RkIixkOiJNMiAxM2g0djFIMnYtMXptNS02SDJ2MWg1Vjd6bTIgM1Y4bC0zIDMgMyAzdi0yaDV2LTJIOXpNNC41IDlIMnYxaDIuNVY5ek0yIDEyaDIuNXYtMUgydjF6bTkgMWgxdjJjLS4wMi4yOC0uMTEuNTItLjMuNy0uMTkuMTgtLjQyLjI4LS43LjNIMWMtLjU1IDAtMS0uNDUtMS0xVjRjMC0uNTUuNDUtMSAxLTFoM2MwLTEuMTEuODktMiAyLTIgMS4xMSAwIDIgLjg5IDIgMmgzYy41NSAwIDEgLjQ1IDEgMXY1aC0xVjZIMXY5aDEwdi0yek0yIDVoOGMwLS41NS0uNDUtMS0xLTFIOGMtLjU1IDAtMS0uNDUtMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxLS40NSAxLTEgMUgzYy0uNTUgMC0xIC40NS0xIDF6In0pKSk7dmFyIGxvY2s9KHtjbGFzc05hbWU6ZT1udWxsLHdpZHRoOnQ9MjAsaGVpZ2h0OnI9MjAsLi4ubn0pPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInN2ZyIsKDAsYXIuZGVmYXVsdCkoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdmlld0JveDoiMCAwIDIwIDIwIixjbGFzc05hbWU6ZSx3aWR0aDp0LGhlaWdodDpyLCJhcmlhLWhpZGRlbiI6InRydWUiLGZvY3VzYWJsZToiZmFsc2UifSxuKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTUuOCA4SDE0VjUuNkMxNCAyLjcwMyAxMi42NjUgMSAxMCAxIDcuMzM0IDEgNiAyLjcwMyA2IDUuNlY4SDRjLS41NTMgMC0xIC42NDYtMSAxLjE5OVYxN2MwIC41NDkuNDI4IDEuMTM5Ljk1MSAxLjMwN2wxLjE5Ny4zODdDNS42NzIgMTguODYxIDYuNTUgMTkgNy4xIDE5aDUuOGMuNTQ5IDAgMS40MjgtLjEzOSAxLjk1MS0uMzA3bDEuMTk2LS4zODdjLjUyNC0uMTY3Ljk1My0uNzU3Ljk1My0xLjMwNlY5LjE5OUMxNyA4LjY0NiAxNi4zNTIgOCAxNS44IDh6TTEyIDhIOFY1LjE5OUM4IDMuNzU0IDguNzk3IDMgMTAgM2MxLjIwMyAwIDIgLjc1NCAyIDIuMTk5Vjh6In0pKTt2YXIgdW5sb2NrPSh7Y2xhc3NOYW1lOmU9bnVsbCx3aWR0aDp0PTIwLGhlaWdodDpyPTIwLC4uLm59KT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzdmciLCgwLGFyLmRlZmF1bHQpKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHZpZXdCb3g6IjAgMCAyMCAyMCIsY2xhc3NOYW1lOmUsd2lkdGg6dCxoZWlnaHQ6ciwiYXJpYS1oaWRkZW4iOiJ0cnVlIixmb2N1c2FibGU6ImZhbHNlIn0sbiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE1LjggOEgxNFY1LjZDMTQgMi43MDMgMTIuNjY1IDEgMTAgMSA3LjMzNCAxIDYgMi43MDMgNiA1LjZWNmgydi0uODAxQzggMy43NTQgOC43OTcgMyAxMCAzYzEuMjAzIDAgMiAuNzU0IDIgMi4xOTlWOEg0Yy0uNTUzIDAtMSAuNjQ2LTEgMS4xOTlWMTdjMCAuNTQ5LjQyOCAxLjEzOS45NTEgMS4zMDdsMS4xOTcuMzg3QzUuNjcyIDE4Ljg2MSA2LjU1IDE5IDcuMSAxOWg1LjhjLjU0OSAwIDEuNDI4LS4xMzkgMS45NTEtLjMwN2wxLjE5Ni0uMzg3Yy41MjQtLjE2Ny45NTMtLjc1Ny45NTMtMS4zMDZWOS4xOTlDMTcgOC42NDYgMTYuMzUyIDggMTUuOCA4eiJ9KSk7dmFyIGljb25zPSgpPT4oe2NvbXBvbmVudHM6e0Fycm93VXBJY29uOmFycm93X3VwLEFycm93RG93bkljb246YXJyb3dfZG93bixBcnJvd0ljb246YXJyb3csQ2xvc2VJY29uOmNvbXBvbmVudHNfY2xvc2UsQ29weUljb246Y29weSxMb2NrSWNvbjpsb2NrLFVubG9ja0ljb246dW5sb2NrfX0pO2NvbnN0IG9yPSJsYXlvdXRfdXBkYXRlX2xheW91dCIsc3I9ImxheW91dF91cGRhdGVfZmlsdGVyIixscj0ibGF5b3V0X3VwZGF0ZV9tb2RlIixpcj0ibGF5b3V0X3Nob3ciO2Z1bmN0aW9uIHVwZGF0ZUxheW91dChlKXtyZXR1cm57dHlwZTpvcixwYXlsb2FkOmV9fWZ1bmN0aW9uIHVwZGF0ZUZpbHRlcihlKXtyZXR1cm57dHlwZTpzcixwYXlsb2FkOmV9fWZ1bmN0aW9uIGFjdGlvbnNfc2hvdyhlLHQ9ITApe3JldHVybiBlPW5vcm1hbGl6ZUFycmF5KGUpLHt0eXBlOmlyLHBheWxvYWQ6e3RoaW5nOmUsc2hvd246dH19fWZ1bmN0aW9uIGNoYW5nZU1vZGUoZSx0PSIiKXtyZXR1cm4gZT1ub3JtYWxpemVBcnJheShlKSx7dHlwZTpscixwYXlsb2FkOnt0aGluZzplLG1vZGU6dH19fXZhciBjcj17W29yXTooZSx0KT0+ZS5zZXQoImxheW91dCIsdC5wYXlsb2FkKSxbc3JdOihlLHQpPT5lLnNldCgiZmlsdGVyIix0LnBheWxvYWQpLFtpcl06KGUsdCk9Pntjb25zdCByPXQucGF5bG9hZC5zaG93bixuPSgwLFhlLmZyb21KUykodC5wYXlsb2FkLnRoaW5nKTtyZXR1cm4gZS51cGRhdGUoInNob3duIiwoMCxYZS5mcm9tSlMpKHt9KSwoZT0+ZS5zZXQobixyKSkpfSxbbHJdOihlLHQpPT57bGV0IHI9dC5wYXlsb2FkLnRoaW5nLG49dC5wYXlsb2FkLm1vZGU7cmV0dXJuIGUuc2V0SW4oWyJtb2RlcyJdLmNvbmNhdChyKSwobnx8IiIpKyIiKX19O2NvbnN0IGN1cnJlbnQ9ZT0+ZS5nZXQoImxheW91dCIpLGN1cnJlbnRGaWx0ZXI9ZT0+ZS5nZXQoImZpbHRlciIpLGlzU2hvd249KGUsdCxyKT0+KHQ9bm9ybWFsaXplQXJyYXkodCksZS5nZXQoInNob3duIiwoMCxYZS5mcm9tSlMpKHt9KSkuZ2V0KCgwLFhlLmZyb21KUykodCkscikpLHdoYXRNb2RlPShlLHQscj0iIik9Pih0PW5vcm1hbGl6ZUFycmF5KHQpLGUuZ2V0SW4oWyJtb2RlcyIsLi4udF0scikpLHVyPSgwLFB0LmNyZWF0ZVNlbGVjdG9yKSgoZT0+ZSksKGU9PiFpc1Nob3duKGUsImVkaXRvciIpKSksdGFnZ2VkT3BlcmF0aW9ucz0oZSx0KT0+KHIsLi4ubik9PntsZXQgYT1lKHIsLi4ubik7Y29uc3R7Zm46byxsYXlvdXRTZWxlY3RvcnM6cyxnZXRDb25maWdzOmx9PXQuZ2V0U3lzdGVtKCksaT1sKCkse21heERpc3BsYXllZFRhZ3M6Y309aTtsZXQgdT1zLmN1cnJlbnRGaWx0ZXIoKTtyZXR1cm4gdSYmITAhPT11JiYoYT1vLm9wc0ZpbHRlcihhLHUpKSxjPj0wJiYoYT1hLnNsaWNlKDAsYykpLGF9O2Z1bmN0aW9uIHBsdWdpbnNfbGF5b3V0KCl7cmV0dXJue3N0YXRlUGx1Z2luczp7bGF5b3V0OntyZWR1Y2VyczpjcixhY3Rpb25zOlBlLHNlbGVjdG9yczpCZX0sc3BlYzp7d3JhcFNlbGVjdG9yczpNZX19fX1mdW5jdGlvbiBsb2dzKHtjb25maWdzOmV9KXtjb25zdCB0PXtkZWJ1ZzowLGluZm86MSxsb2c6Mix3YXJuOjMsZXJyb3I6NH0sZ2V0TGV2ZWw9ZT0+dFtlXXx8LTE7bGV0e2xvZ0xldmVsOnJ9PWUsbj1nZXRMZXZlbChyKTtmdW5jdGlvbiBsb2coZSwuLi50KXtnZXRMZXZlbChlKT49biYmY29uc29sZVtlXSguLi50KX1yZXR1cm4gbG9nLndhcm49bG9nLmJpbmQobnVsbCwid2FybiIpLGxvZy5lcnJvcj1sb2cuYmluZChudWxsLCJlcnJvciIpLGxvZy5pbmZvPWxvZy5iaW5kKG51bGwsImluZm8iKSxsb2cuZGVidWc9bG9nLmJpbmQobnVsbCwiZGVidWciKSx7cm9vdEluamVjdHM6e2xvZ319fWxldCBkcj0hMTtmdW5jdGlvbiBvbl9jb21wbGV0ZSgpe3JldHVybntzdGF0ZVBsdWdpbnM6e3NwZWM6e3dyYXBBY3Rpb25zOnt1cGRhdGVTcGVjOmU9PiguLi50KT0+KGRyPSEwLGUoLi4udCkpLHVwZGF0ZUpzb25TcGVjOihlLHQpPT4oLi4ucik9Pntjb25zdCBuPXQuZ2V0Q29uZmlncygpLm9uQ29tcGxldGU7cmV0dXJuIGRyJiYiZnVuY3Rpb24iPT10eXBlb2YgbiYmKHNldFRpbWVvdXQobiwwKSxkcj0hMSksZSguLi5yKX19fX19fWNvbnN0IGV4dHJhY3RLZXk9ZT0+e2NvbnN0IHQ9Il8qKltdIjtyZXR1cm4gZS5pbmRleE9mKHQpPDA/ZTplLnNwbGl0KHQpWzBdLnRyaW0oKX0sZXNjYXBlU2hlbGw9ZT0+Ii1kICI9PT1lfHwvXltfXC8tXS9nLnRlc3QoZSk/ZToiJyIrZS5yZXBsYWNlKC8nL2csIidcXCcnIikrIiciLGVzY2FwZUNNRD1lPT4iLWQgIj09PShlPWUucmVwbGFjZSgvXF4vZywiXl4iKS5yZXBsYWNlKC9cXCIvZywnXFxcXCInKS5yZXBsYWNlKC8iL2csJyIiJykucmVwbGFjZSgvXG4vZywiXlxuIikpP2UucmVwbGFjZSgvLWQgL2csIi1kIF5cbiIpOi9eW19cLy1dL2cudGVzdChlKT9lOiciJytlKyciJyxlc2NhcGVQb3dlcnNoZWxsPWU9PntpZigiLWQgIj09PWUpcmV0dXJuIGU7aWYoL1xuLy50ZXN0KGUpKXtyZXR1cm5gQCJcbiR7ZS5yZXBsYWNlKC9gL2csImBgIikucmVwbGFjZSgvXCQvZywiYCQiKX1cbiJAYH1pZighL15bX1wvLV0vLnRlc3QoZSkpe3JldHVybmAnJHtlLnJlcGxhY2UoLycvZywiJyciKX0nYH1yZXR1cm4gZX07Y29uc3QgY3VybGlmeT0oZSx0LHIsbj0iIik9PntsZXQgYT0hMSxvPSIiO2NvbnN0IGFkZFdvcmRzPSguLi5lKT0+bys9IiAiK2UubWFwKHQpLmpvaW4oIiAiKSxhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2U9KC4uLmUpPT5vKz1lLm1hcCh0KS5qb2luKCIgIiksYWRkTmV3TGluZT0oKT0+bys9YCAke3J9YCxhZGRJbmRlbnQ9KGU9MSk9Pm8rPSIgICIucmVwZWF0KGUpO2xldCBzPWUuZ2V0KCJoZWFkZXJzIik7bys9ImN1cmwiK247Y29uc3QgbD1lLmdldCgiY3VybE9wdGlvbnMiKTtpZihYZS5MaXN0LmlzTGlzdChsKSYmIWwuaXNFbXB0eSgpJiZhZGRXb3JkcyguLi5lLmdldCgiY3VybE9wdGlvbnMiKSksYWRkV29yZHMoIi1YIixlLmdldCgibWV0aG9kIikpLGFkZE5ld0xpbmUoKSxhZGRJbmRlbnQoKSxhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2UoYCR7ZS5nZXQoInVybCIpfWApLHMmJnMuc2l6ZSlmb3IobGV0IHQgb2YgZS5nZXQoImhlYWRlcnMiKS5lbnRyaWVzKCkpe2FkZE5ld0xpbmUoKSxhZGRJbmRlbnQoKTtsZXRbZSxyXT10O2FkZFdvcmRzV2l0aG91dExlYWRpbmdTcGFjZSgiLUgiLGAke2V9OiAke3J9YCksYT1hfHwvXmNvbnRlbnQtdHlwZSQvaS50ZXN0KGUpJiYvXm11bHRpcGFydFwvZm9ybS1kYXRhJC9pLnRlc3Qocil9Y29uc3QgaT1lLmdldCgiYm9keSIpO2lmKGkpaWYoYSYmWyJQT1NUIiwiUFVUIiwiUEFUQ0giXS5pbmNsdWRlcyhlLmdldCgibWV0aG9kIikpKWZvcihsZXRbZSx0XW9mIGkuZW50cnlTZXEoKSl7bGV0IHI9ZXh0cmFjdEtleShlKTthZGROZXdMaW5lKCksYWRkSW5kZW50KCksYWRkV29yZHNXaXRob3V0TGVhZGluZ1NwYWNlKCItRiIpLHQgaW5zdGFuY2VvZiBjdC5GaWxlJiYic3RyaW5nIj09dHlwZW9mIHQudmFsdWVPZigpP2FkZFdvcmRzKGAke3J9PSR7dC5kYXRhfSR7dC50eXBlP2A7dHlwZT0ke3QudHlwZX1gOiIifWApOnQgaW5zdGFuY2VvZiBjdC5GaWxlP2FkZFdvcmRzKGAke3J9PUAke3QubmFtZX0ke3QudHlwZT9gO3R5cGU9JHt0LnR5cGV9YDoiIn1gKTphZGRXb3JkcyhgJHtyfT0ke3R9YCl9ZWxzZSBpZihpIGluc3RhbmNlb2YgY3QuRmlsZSlhZGROZXdMaW5lKCksYWRkSW5kZW50KCksYWRkV29yZHNXaXRob3V0TGVhZGluZ1NwYWNlKGAtLWRhdGEtYmluYXJ5ICdAJHtpLm5hbWV9J2ApO2Vsc2V7YWRkTmV3TGluZSgpLGFkZEluZGVudCgpLGFkZFdvcmRzV2l0aG91dExlYWRpbmdTcGFjZSgiLWQgIik7bGV0IHQ9aTtYZS5NYXAuaXNNYXAodCk/YWRkV29yZHNXaXRob3V0TGVhZGluZ1NwYWNlKGZ1bmN0aW9uIGdldFN0cmluZ0JvZHlPZk1hcChlKXtsZXQgdD1bXTtmb3IobGV0W3Isbl1vZiBlLmdldCgiYm9keSIpLmVudHJ5U2VxKCkpe2xldCBlPWV4dHJhY3RLZXkocik7biBpbnN0YW5jZW9mIGN0LkZpbGU/dC5wdXNoKGAgICIke2V9Ijoge1xuICAgICJuYW1lIjogIiR7bi5uYW1lfSIke24udHlwZT9gLFxuICAgICJ0eXBlIjogIiR7bi50eXBlfSJgOiIifVxuICB9YCk6dC5wdXNoKGAgICIke2V9IjogJHtKU09OLnN0cmluZ2lmeShuLG51bGwsMikucmVwbGFjZSgvKFxyXG58XHJ8XG4pL2csIlxuICAiKX1gKX1yZXR1cm5ge1xuJHt0LmpvaW4oIixcbiIpfVxufWB9KGUpKTooInN0cmluZyIhPXR5cGVvZiB0JiYodD1KU09OLnN0cmluZ2lmeSh0KSksYWRkV29yZHNXaXRob3V0TGVhZGluZ1NwYWNlKHQpKX1lbHNlIGl8fCJQT1NUIiE9PWUuZ2V0KCJtZXRob2QiKXx8KGFkZE5ld0xpbmUoKSxhZGRJbmRlbnQoKSxhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2UoIi1kICcnIikpO3JldHVybiBvfSxyZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX3Bvd2Vyc2hlbGw9ZT0+Y3VybGlmeShlLGVzY2FwZVBvd2Vyc2hlbGwsImBcbiIsIi5leGUiKSxyZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX2Jhc2g9ZT0+Y3VybGlmeShlLGVzY2FwZVNoZWxsLCJcXFxuIikscmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfY3VybF9jbWQ9ZT0+Y3VybGlmeShlLGVzY2FwZUNNRCwiXlxuIikscmVxdWVzdF9zbmlwcGV0c19zZWxlY3RvcnNfc3RhdGU9ZT0+ZXx8KDAsWGUuTWFwKSgpLHByPSgwLFB0LmNyZWF0ZVNlbGVjdG9yKShyZXF1ZXN0X3NuaXBwZXRzX3NlbGVjdG9yc19zdGF0ZSwoZT0+e2NvbnN0IHQ9ZS5nZXQoImxhbmd1YWdlcyIpLHI9ZS5nZXQoImdlbmVyYXRvcnMiLCgwLFhlLk1hcCkoKSk7cmV0dXJuIXR8fHQuaXNFbXB0eSgpP3I6ci5maWx0ZXIoKChlLHIpPT50LmluY2x1ZGVzKHIpKSl9KSksZ2V0U25pcHBldEdlbmVyYXRvcnM9ZT0+KHtmbjp0fSk9PnByKGUpLm1hcCgoKGUscik9Pntjb25zdCBuPShlPT50W2ByZXF1ZXN0U25pcHBldEdlbmVyYXRvcl8ke2V9YF0pKHIpO3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiBuP251bGw6ZS5zZXQoImZuIixuKX0pKS5maWx0ZXIoKGU9PmUpKSxtcj0oMCxQdC5jcmVhdGVTZWxlY3RvcikocmVxdWVzdF9zbmlwcGV0c19zZWxlY3RvcnNfc3RhdGUsKGU9PmUuZ2V0KCJhY3RpdmVMYW5ndWFnZSIpKSksZnI9KDAsUHQuY3JlYXRlU2VsZWN0b3IpKHJlcXVlc3Rfc25pcHBldHNfc2VsZWN0b3JzX3N0YXRlLChlPT5lLmdldCgiZGVmYXVsdEV4cGFuZGVkIikpKTt2YXIgaHI9ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LGUpLHR9KHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIGsuZGVmYXVsdH19KSxncj1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe0NvcHlUb0NsaXBib2FyZDpmdW5jdGlvbigpe3JldHVybiBOLkNvcHlUb0NsaXBib2FyZH19KTtjb25zdCB5cj17Y3Vyc29yOiJwb2ludGVyIixsaW5lSGVpZ2h0OjEsZGlzcGxheToiaW5saW5lLWZsZXgiLGJhY2tncm91bmRDb2xvcjoicmdiKDI1MCwgMjUwLCAyNTApIixwYWRkaW5nQm90dG9tOiIwIixwYWRkaW5nVG9wOiIwIixib3JkZXI6IjFweCBzb2xpZCByZ2IoNTEsIDUxLCA1MSkiLGJvcmRlclJhZGl1czoiNHB4IDRweCAwIDAiLGJveFNoYWRvdzoibm9uZSIsYm9yZGVyQm90dG9tOiJub25lIn0sRXI9e2N1cnNvcjoicG9pbnRlciIsbGluZUhlaWdodDoxLGRpc3BsYXk6ImlubGluZS1mbGV4IixiYWNrZ3JvdW5kQ29sb3I6InJnYig1MSwgNTEsIDUxKSIsYm94U2hhZG93OiJub25lIixib3JkZXI6IjFweCBzb2xpZCByZ2IoNTEsIDUxLCA1MSkiLHBhZGRpbmdCb3R0b206IjAiLHBhZGRpbmdUb3A6IjAiLGJvcmRlclJhZGl1czoiNHB4IDRweCAwIDAiLG1hcmdpblRvcDoiLTVweCIsbWFyZ2luUmlnaHQ6Ii01cHgiLG1hcmdpbkxlZnQ6Ii01cHgiLHpJbmRleDoiOTk5OSIsYm9yZGVyQm90dG9tOiJub25lIn07dmFyIHJlcXVlc3Rfc25pcHBldHM9KHtyZXF1ZXN0OmUscmVxdWVzdFNuaXBwZXRzU2VsZWN0b3JzOnQsZ2V0Q29tcG9uZW50OnJ9KT0+e2NvbnN0IG49KDAsSGUudXNlUmVmKShudWxsKSxhPXIoIkFycm93VXBJY29uIiksbz1yKCJBcnJvd0Rvd25JY29uIikscz1yKCJTeW50YXhIaWdobGlnaHRlciIsITApLFtsLGldPSgwLEhlLnVzZVN0YXRlKSh0LmdldFNuaXBwZXRHZW5lcmF0b3JzKCk/LmtleVNlcSgpLmZpcnN0KCkpLFtjLHVdPSgwLEhlLnVzZVN0YXRlKSh0Py5nZXREZWZhdWx0RXhwYW5kZWQoKSksZD10LmdldFNuaXBwZXRHZW5lcmF0b3JzKCkscD1kLmdldChsKSxtPXAuZ2V0KCJmbiIpKGUpLGhhbmRsZVNldElzRXhwYW5kZWQ9KCk9Pnt1KCFjKX0saGFuZGxlR2V0QnRuU3R5bGU9ZT0+ZT09PWw/RXI6eXIsaGFuZGxlUHJldmVudFlTY3JvbGxpbmdCZXlvbmRFbGVtZW50PWU9Pntjb25zdHt0YXJnZXQ6dCxkZWx0YVk6cn09ZSx7c2Nyb2xsSGVpZ2h0Om4sb2Zmc2V0SGVpZ2h0OmEsc2Nyb2xsVG9wOm99PXQ7bj5hJiYoMD09PW8mJnI8MHx8YStvPj1uJiZyPjApJiZlLnByZXZlbnREZWZhdWx0KCl9O3JldHVybigwLEhlLnVzZUVmZmVjdCkoKCgpPT57fSksW10pLCgwLEhlLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgZT1BcnJheS5mcm9tKG4uY3VycmVudC5jaGlsZE5vZGVzKS5maWx0ZXIoKGU9PiEhZS5ub2RlVHlwZSYmZS5jbGFzc0xpc3Q/LmNvbnRhaW5zKCJjdXJsLWNvbW1hbmQiKSkpO3JldHVybiBlLmZvckVhY2goKGU9PmUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V3aGVlbCIsaGFuZGxlUHJldmVudFlTY3JvbGxpbmdCZXlvbmRFbGVtZW50LHtwYXNzaXZlOiExfSkpKSwoKT0+e2UuZm9yRWFjaCgoZT0+ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXdoZWVsIixoYW5kbGVQcmV2ZW50WVNjcm9sbGluZ0JleW9uZEVsZW1lbnQpKSl9fSksW2VdKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicmVxdWVzdC1zbmlwcGV0cyIscmVmOm59LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6e3dpZHRoOiIxMDAlIixkaXNwbGF5OiJmbGV4IixqdXN0aWZ5Q29udGVudDoiZmxleC1zdGFydCIsYWxpZ25JdGVtczoiY2VudGVyIixtYXJnaW5Cb3R0b206IjE1cHgifX0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJoNCIse29uQ2xpY2s6KCk9PmhhbmRsZVNldElzRXhwYW5kZWQoKSxzdHlsZTp7Y3Vyc29yOiJwb2ludGVyIn19LCJTbmlwcGV0cyIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7b25DbGljazooKT0+aGFuZGxlU2V0SXNFeHBhbmRlZCgpLHN0eWxlOntib3JkZXI6Im5vbmUiLGJhY2tncm91bmQ6Im5vbmUifSx0aXRsZTpjPyJDb2xsYXBzZSBvcGVyYXRpb24iOiJFeHBhbmQgb3BlcmF0aW9uIn0sYz9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobyx7Y2xhc3NOYW1lOiJhcnJvdyIsd2lkdGg6IjEwIixoZWlnaHQ6IjEwIn0pOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChhLHtjbGFzc05hbWU6ImFycm93Iix3aWR0aDoiMTAiLGhlaWdodDoiMTAifSkpKSxjJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiY3VybC1jb21tYW5kIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTp7cGFkZGluZ0xlZnQ6IjE1cHgiLHBhZGRpbmdSaWdodDoiMTBweCIsd2lkdGg6IjEwMCUiLGRpc3BsYXk6ImZsZXgifX0sZC5lbnRyeVNlcSgpLm1hcCgoKFtlLHRdKT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6KDAsaHIuZGVmYXVsdCkoImJ0biIse2FjdGl2ZTplPT09bH0pLHN0eWxlOmhhbmRsZUdldEJ0blN0eWxlKGUpLGtleTplLG9uQ2xpY2s6KCk9PihlPT57bCE9PWUmJmkoZSl9KShlKX0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJoNCIse3N0eWxlOmU9PT1sP3tjb2xvcjoid2hpdGUifTp7fX0sdC5nZXQoInRpdGxlIikpKSkpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiY29weS10by1jbGlwYm9hcmQifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoZ3IuQ29weVRvQ2xpcGJvYXJkLHt0ZXh0Om19LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIixudWxsKSkpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChzLHtsYW5ndWFnZTpwLmdldCgic3ludGF4IiksY2xhc3NOYW1lOiJjdXJsIG1pY3JvbGlnaHQiLHJlbmRlclBsYWluVGV4dDooe2NoaWxkcmVuOmUsUGxhaW5UZXh0Vmlld2VyOnR9KT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHQse2NsYXNzTmFtZToiY3VybCJ9LGUpfSxtKSkpKX0scGx1Z2luc19yZXF1ZXN0X3NuaXBwZXRzPSgpPT4oe2NvbXBvbmVudHM6e1JlcXVlc3RTbmlwcGV0czpyZXF1ZXN0X3NuaXBwZXRzfSxmbjp7cmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfY3VybF9iYXNoLHJlcXVlc3RTbmlwcGV0R2VuZXJhdG9yX2N1cmxfY21kLHJlcXVlc3RTbmlwcGV0R2VuZXJhdG9yX2N1cmxfcG93ZXJzaGVsbH0sc3RhdGVQbHVnaW5zOntyZXF1ZXN0U25pcHBldHM6e3NlbGVjdG9yczpxZX19fSk7Y2xhc3MgTW9kZWxDb2xsYXBzZSBleHRlbmRzIEhlLkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXtjb2xsYXBzZWRDb250ZW50OiJ7Li4ufSIsZXhwYW5kZWQ6ITEsdGl0bGU6bnVsbCxvblRvZ2dsZTooKT0+e30saGlkZVNlbGZPbkV4cGFuZDohMSxzcGVjUGF0aDpYZS5kZWZhdWx0Lkxpc3QoW10pfTtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCk7bGV0e2V4cGFuZGVkOnIsY29sbGFwc2VkQ29udGVudDpufT10aGlzLnByb3BzO3RoaXMuc3RhdGU9e2V4cGFuZGVkOnIsY29sbGFwc2VkQ29udGVudDpufHxNb2RlbENvbGxhcHNlLmRlZmF1bHRQcm9wcy5jb2xsYXBzZWRDb250ZW50fX1jb21wb25lbnREaWRNb3VudCgpe2NvbnN0e2hpZGVTZWxmT25FeHBhbmQ6ZSxleHBhbmRlZDp0LG1vZGVsTmFtZTpyfT10aGlzLnByb3BzO2UmJnQmJnRoaXMucHJvcHMub25Ub2dnbGUocix0KX1VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhlKXt0aGlzLnByb3BzLmV4cGFuZGVkIT09ZS5leHBhbmRlZCYmdGhpcy5zZXRTdGF0ZSh7ZXhwYW5kZWQ6ZS5leHBhbmRlZH0pfXRvZ2dsZUNvbGxhcHNlZD0oKT0+e3RoaXMucHJvcHMub25Ub2dnbGUmJnRoaXMucHJvcHMub25Ub2dnbGUodGhpcy5wcm9wcy5tb2RlbE5hbWUsIXRoaXMuc3RhdGUuZXhwYW5kZWQpLHRoaXMuc2V0U3RhdGUoe2V4cGFuZGVkOiF0aGlzLnN0YXRlLmV4cGFuZGVkfSl9O29uTG9hZD1lPT57aWYoZSYmdGhpcy5wcm9wcy5sYXlvdXRTZWxlY3RvcnMpe2NvbnN0IHQ9dGhpcy5wcm9wcy5sYXlvdXRTZWxlY3RvcnMuZ2V0U2Nyb2xsVG9LZXkoKTtYZS5kZWZhdWx0LmlzKHQsdGhpcy5wcm9wcy5zcGVjUGF0aCkmJnRoaXMudG9nZ2xlQ29sbGFwc2VkKCksdGhpcy5wcm9wcy5sYXlvdXRBY3Rpb25zLnJlYWR5VG9TY3JvbGwodGhpcy5wcm9wcy5zcGVjUGF0aCxlLnBhcmVudEVsZW1lbnQpfX07cmVuZGVyKCl7Y29uc3R7dGl0bGU6ZSxjbGFzc2VzOnR9PXRoaXMucHJvcHM7cmV0dXJuIHRoaXMuc3RhdGUuZXhwYW5kZWQmJnRoaXMucHJvcHMuaGlkZVNlbGZPbkV4cGFuZD9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6dHx8IiJ9LHRoaXMucHJvcHMuY2hpbGRyZW4pOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTp0fHwiIixyZWY6dGhpcy5vbkxvYWR9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7ImFyaWEtZXhwYW5kZWQiOnRoaXMuc3RhdGUuZXhwYW5kZWQsY2xhc3NOYW1lOiJtb2RlbC1ib3gtY29udHJvbCIsb25DbGljazp0aGlzLnRvZ2dsZUNvbGxhcHNlZH0sZSYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJwb2ludGVyIn0sZSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtb2RlbC10b2dnbGUiKyh0aGlzLnN0YXRlLmV4cGFuZGVkPyIiOiIgY29sbGFwc2VkIil9KSwhdGhpcy5zdGF0ZS5leHBhbmRlZCYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLHRoaXMuc3RhdGUuY29sbGFwc2VkQ29udGVudCkpLHRoaXMuc3RhdGUuZXhwYW5kZWQmJnRoaXMucHJvcHMuY2hpbGRyZW4pfX1jb25zdCB1c2VUYWJzPSh7aW5pdGlhbFRhYjplLGlzRXhlY3V0ZTp0LHNjaGVtYTpyLGV4YW1wbGU6bn0pPT57Y29uc3QgYT0oMCxIZS51c2VNZW1vKSgoKCk9Pih7ZXhhbXBsZToiZXhhbXBsZSIsbW9kZWw6Im1vZGVsIn0pKSxbXSksbz0oMCxIZS51c2VNZW1vKSgoKCk9Pk9iamVjdC5rZXlzKGEpKSxbYV0pLmluY2x1ZGVzKGUpJiZyJiYhdD9lOmEuZXhhbXBsZSxzPShlPT57Y29uc3QgdD0oMCxIZS51c2VSZWYpKCk7cmV0dXJuKDAsSGUudXNlRWZmZWN0KSgoKCk9Pnt0LmN1cnJlbnQ9ZX0pKSx0LmN1cnJlbnR9KSh0KSxbbCxpXT0oMCxIZS51c2VTdGF0ZSkobyksYz0oMCxIZS51c2VDYWxsYmFjaykoKGU9PntpKGUudGFyZ2V0LmRhdGFzZXQubmFtZSl9KSxbXSk7cmV0dXJuKDAsSGUudXNlRWZmZWN0KSgoKCk9PntzJiYhdCYmbiYmaShhLmV4YW1wbGUpfSksW3MsdCxuXSkse2FjdGl2ZVRhYjpsLG9uVGFiQ2hhbmdlOmMsdGFiczphfX07dmFyIG1vZGVsX2V4YW1wbGU9KHtzY2hlbWE6ZSxleGFtcGxlOnQsaXNFeGVjdXRlOnI9ITEsc3BlY1BhdGg6bixpbmNsdWRlV3JpdGVPbmx5OmE9ITEsaW5jbHVkZVJlYWRPbmx5Om89ITEsZ2V0Q29tcG9uZW50OnMsZ2V0Q29uZmlnczpsLHNwZWNTZWxlY3RvcnM6aX0pPT57Y29uc3R7ZGVmYXVsdE1vZGVsUmVuZGVyaW5nOmMsZGVmYXVsdE1vZGVsRXhwYW5kRGVwdGg6dX09bCgpLGQ9cygiTW9kZWxXcmFwcGVyIikscD1zKCJIaWdobGlnaHRDb2RlIiwhMCksbT1FdCgpKDUpLnRvU3RyaW5nKCJiYXNlNjQiKSxmPUV0KCkoNSkudG9TdHJpbmcoImJhc2U2NCIpLGg9RXQoKSg1KS50b1N0cmluZygiYmFzZTY0IiksZz1FdCgpKDUpLnRvU3RyaW5nKCJiYXNlNjQiKSx5PWkuaXNPQVMzKCkse2FjdGl2ZVRhYjpTLHRhYnM6XyxvblRhYkNoYW5nZTp2fT11c2VUYWJzKHtpbml0aWFsVGFiOmMsaXNFeGVjdXRlOnIsc2NoZW1hOmUsZXhhbXBsZTp0fSk7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJtb2RlbC1leGFtcGxlIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZToidGFiIixyb2xlOiJ0YWJsaXN0In0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJsaSIse2NsYXNzTmFtZTooMCxoci5kZWZhdWx0KSgidGFiaXRlbSIse2FjdGl2ZTpTPT09Xy5leGFtcGxlfSkscm9sZToicHJlc2VudGF0aW9uIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJidXR0b24iLHsiYXJpYS1jb250cm9scyI6ZiwiYXJpYS1zZWxlY3RlZCI6Uz09PV8uZXhhbXBsZSxjbGFzc05hbWU6InRhYmxpbmtzIiwiZGF0YS1uYW1lIjoiZXhhbXBsZSIsaWQ6bSxvbkNsaWNrOnYscm9sZToidGFiIn0scj8iRWRpdCBWYWx1ZSI6IkV4YW1wbGUgVmFsdWUiKSksZSYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJsaSIse2NsYXNzTmFtZTooMCxoci5kZWZhdWx0KSgidGFiaXRlbSIse2FjdGl2ZTpTPT09Xy5tb2RlbH0pLHJvbGU6InByZXNlbnRhdGlvbiJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7ImFyaWEtY29udHJvbHMiOmcsImFyaWEtc2VsZWN0ZWQiOlM9PT1fLm1vZGVsLGNsYXNzTmFtZTooMCxoci5kZWZhdWx0KSgidGFibGlua3MiLHtpbmFjdGl2ZTpyfSksImRhdGEtbmFtZSI6Im1vZGVsIixpZDpoLG9uQ2xpY2s6dixyb2xlOiJ0YWIifSx5PyJTY2hlbWEiOiJNb2RlbCIpKSksUz09PV8uZXhhbXBsZSYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHsiYXJpYS1oaWRkZW4iOlMhPT1fLmV4YW1wbGUsImFyaWEtbGFiZWxsZWRieSI6bSwiZGF0YS1uYW1lIjoiZXhhbXBsZVBhbmVsIixpZDpmLHJvbGU6InRhYnBhbmVsIix0YWJJbmRleDoiMCJ9LHR8fEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChwLG51bGwsIihubyBleGFtcGxlIGF2YWlsYWJsZSIpKSxTPT09Xy5tb2RlbCYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im1vZGVsLWNvbnRhaW5lciIsImFyaWEtaGlkZGVuIjpTPT09Xy5leGFtcGxlLCJhcmlhLWxhYmVsbGVkYnkiOmgsImRhdGEtbmFtZSI6Im1vZGVsUGFuZWwiLGlkOmcscm9sZToidGFicGFuZWwiLHRhYkluZGV4OiIwIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGQse3NjaGVtYTplLGdldENvbXBvbmVudDpzLGdldENvbmZpZ3M6bCxzcGVjU2VsZWN0b3JzOmksZXhwYW5kRGVwdGg6dSxzcGVjUGF0aDpuLGluY2x1ZGVSZWFkT25seTpvLGluY2x1ZGVXcml0ZU9ubHk6YX0pKSl9O2NsYXNzIE1vZGVsV3JhcHBlciBleHRlbmRzIEhlLkNvbXBvbmVudHtvblRvZ2dsZT0oZSx0KT0+e3RoaXMucHJvcHMubGF5b3V0QWN0aW9ucyYmdGhpcy5wcm9wcy5sYXlvdXRBY3Rpb25zLnNob3codGhpcy5wcm9wcy5mdWxsUGF0aCx0KX07cmVuZGVyKCl7bGV0e2dldENvbXBvbmVudDplLGdldENvbmZpZ3M6dH09dGhpcy5wcm9wcztjb25zdCByPWUoIk1vZGVsIik7bGV0IG47cmV0dXJuIHRoaXMucHJvcHMubGF5b3V0U2VsZWN0b3JzJiYobj10aGlzLnByb3BzLmxheW91dFNlbGVjdG9ycy5pc1Nob3duKHRoaXMucHJvcHMuZnVsbFBhdGgpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibW9kZWwtYm94In0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHIsKDAsYXIuZGVmYXVsdCkoe30sdGhpcy5wcm9wcyx7Z2V0Q29uZmlnczp0LGV4cGFuZGVkOm4sZGVwdGg6MSxvblRvZ2dsZTp0aGlzLm9uVG9nZ2xlLGV4cGFuZERlcHRoOnRoaXMucHJvcHMuZXhwYW5kRGVwdGh8fDB9KSkpfX12YXIgU3IsX3I9ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LGUpLHR9KHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIEEuZGVmYXVsdH19KTtmdW5jdGlvbiBfZXh0ZW5kcygpe3JldHVybiBfZXh0ZW5kcz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciByPWFyZ3VtZW50c1t0XTtmb3IodmFyIG4gaW4gcikoe30pLmhhc093blByb3BlcnR5LmNhbGwocixuKSYmKGVbbl09cltuXSl9cmV0dXJuIGV9LF9leHRlbmRzLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgcm9sbGluZ19sb2FkPWU9PkhlLmNyZWF0ZUVsZW1lbnQoInN2ZyIsX2V4dGVuZHMoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MjAwLGhlaWdodDoyMDAsY2xhc3NOYW1lOiJyb2xsaW5nLWxvYWRfc3ZnX19sZHMtcm9sbGluZyIscHJlc2VydmVBc3BlY3RSYXRpbzoieE1pZFlNaWQiLHN0eWxlOntiYWNrZ3JvdW5kSW1hZ2U6Im5vbmUiLGJhY2tncm91bmRQb3NpdGlvbjoiaW5pdGlhbCBpbml0aWFsIixiYWNrZ3JvdW5kUmVwZWF0OiJpbml0aWFsIGluaXRpYWwifSx2aWV3Qm94OiIwIDAgMTAwIDEwMCJ9LGUpLFNyfHwoU3I9SGUuY3JlYXRlRWxlbWVudCgiY2lyY2xlIix7Y3g6NTAsY3k6NTAscjozNSxmaWxsOiJub25lIixzdHJva2U6IiM1NTUiLHN0cm9rZURhc2hhcnJheToiMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4IixzdHJva2VXaWR0aDoxMH0sSGUuY3JlYXRlRWxlbWVudCgiYW5pbWF0ZVRyYW5zZm9ybSIse2F0dHJpYnV0ZU5hbWU6InRyYW5zZm9ybSIsYmVnaW46IjBzIixjYWxjTW9kZToibGluZWFyIixkdXI6IjFzIixrZXlUaW1lczoiMDsxIixyZXBlYXRDb3VudDoiaW5kZWZpbml0ZSIsdHlwZToicm90YXRlIix2YWx1ZXM6IjAgNTAgNTA7MzYwIDUwIDUwIn0pKSkpO2NvbnN0IGRlY29kZVJlZk5hbWU9ZT0+e2NvbnN0IHQ9ZS5yZXBsYWNlKC9+MS9nLCIvIikucmVwbGFjZSgvfjAvZywifiIpO3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHQpfWNhdGNoe3JldHVybiB0fX07Y2xhc3MgTW9kZWwgZXh0ZW5kcyBfci5kZWZhdWx0e3N0YXRpYyBwcm9wVHlwZXM9e3NjaGVtYTpZdC5kZWZhdWx0Lm1hcC5pc1JlcXVpcmVkLGdldENvbXBvbmVudDpVdC5kZWZhdWx0LmZ1bmMuaXNSZXF1aXJlZCxnZXRDb25maWdzOlV0LmRlZmF1bHQuZnVuYy5pc1JlcXVpcmVkLHNwZWNTZWxlY3RvcnM6VXQuZGVmYXVsdC5vYmplY3QuaXNSZXF1aXJlZCxuYW1lOlV0LmRlZmF1bHQuc3RyaW5nLGRpc3BsYXlOYW1lOlV0LmRlZmF1bHQuc3RyaW5nLGlzUmVmOlV0LmRlZmF1bHQuYm9vbCxyZXF1aXJlZDpVdC5kZWZhdWx0LmJvb2wsZXhwYW5kRGVwdGg6VXQuZGVmYXVsdC5udW1iZXIsZGVwdGg6VXQuZGVmYXVsdC5udW1iZXIsc3BlY1BhdGg6WXQuZGVmYXVsdC5saXN0LmlzUmVxdWlyZWQsaW5jbHVkZVJlYWRPbmx5OlV0LmRlZmF1bHQuYm9vbCxpbmNsdWRlV3JpdGVPbmx5OlV0LmRlZmF1bHQuYm9vbH07Z2V0TW9kZWxOYW1lPWU9Pi0xIT09ZS5pbmRleE9mKCIjL2RlZmluaXRpb25zLyIpP2RlY29kZVJlZk5hbWUoZS5yZXBsYWNlKC9eLiojXC9kZWZpbml0aW9uc1wvLywiIikpOi0xIT09ZS5pbmRleE9mKCIjL2NvbXBvbmVudHMvc2NoZW1hcy8iKT9kZWNvZGVSZWZOYW1lKGUucmVwbGFjZSgvXi4qI1wvY29tcG9uZW50c1wvc2NoZW1hc1wvLywiIikpOnZvaWQgMDtnZXRSZWZTY2hlbWE9ZT0+e2xldHtzcGVjU2VsZWN0b3JzOnR9PXRoaXMucHJvcHM7cmV0dXJuIHQuZmluZERlZmluaXRpb24oZSl9O3JlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6ZSxnZXRDb25maWdzOnQsc3BlY1NlbGVjdG9yczpyLHNjaGVtYTpuLHJlcXVpcmVkOmEsbmFtZTpvLGlzUmVmOnMsc3BlY1BhdGg6bCxkaXNwbGF5TmFtZTppLGluY2x1ZGVSZWFkT25seTpjLGluY2x1ZGVXcml0ZU9ubHk6dX09dGhpcy5wcm9wcztjb25zdCBkPWUoIk9iamVjdE1vZGVsIikscD1lKCJBcnJheU1vZGVsIiksbT1lKCJQcmltaXRpdmVNb2RlbCIpO2xldCBmPSJvYmplY3QiLGg9biYmbi5nZXQoIiQkcmVmIiksZz1uJiZuLmdldCgiJHJlZiIpO2lmKCFvJiZoJiYobz10aGlzLmdldE1vZGVsTmFtZShoKSksZyl7Y29uc3QgZT10aGlzLmdldE1vZGVsTmFtZShnKSx0PXRoaXMuZ2V0UmVmU2NoZW1hKGUpO1hlLk1hcC5pc01hcCh0KT8obj10Lm1lcmdlRGVlcChuKSxofHwobj1uLnNldCgiJCRyZWYiLGcpLGg9ZykpOlhlLk1hcC5pc01hcChuKSYmMT09PW4uc2l6ZSYmKG49bnVsbCxvPWcpfWlmKCFuKXJldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsIG1vZGVsLXRpdGxlIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtb2RlbC10aXRsZV9fdGV4dCJ9LGl8fG8pLCFnJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocm9sbGluZ19sb2FkLHtoZWlnaHQ6IjIwcHgiLHdpZHRoOiIyMHB4In0pKTtjb25zdCB5PXIuaXNPQVMzKCkmJm4uZ2V0KCJkZXByZWNhdGVkIik7c3dpdGNoKHM9dm9pZCAwIT09cz9zOiEhaCxmPW4mJm4uZ2V0KCJ0eXBlIil8fGYsZil7Y2FzZSJvYmplY3QiOnJldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoZCwoMCxhci5kZWZhdWx0KSh7Y2xhc3NOYW1lOiJvYmplY3QifSx0aGlzLnByb3BzLHtzcGVjUGF0aDpsLGdldENvbmZpZ3M6dCxzY2hlbWE6bixuYW1lOm8sZGVwcmVjYXRlZDp5LGlzUmVmOnMsaW5jbHVkZVJlYWRPbmx5OmMsaW5jbHVkZVdyaXRlT25seTp1fSkpO2Nhc2UiYXJyYXkiOnJldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocCwoMCxhci5kZWZhdWx0KSh7Y2xhc3NOYW1lOiJhcnJheSJ9LHRoaXMucHJvcHMse2dldENvbmZpZ3M6dCxzY2hlbWE6bixuYW1lOm8sZGVwcmVjYXRlZDp5LHJlcXVpcmVkOmEsaW5jbHVkZVJlYWRPbmx5OmMsaW5jbHVkZVdyaXRlT25seTp1fSkpO2RlZmF1bHQ6cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChtLCgwLGFyLmRlZmF1bHQpKHt9LHRoaXMucHJvcHMse2dldENvbXBvbmVudDplLGdldENvbmZpZ3M6dCxzY2hlbWE6bixuYW1lOm8sZGVwcmVjYXRlZDp5LHJlcXVpcmVkOmF9KSl9fX1jbGFzcyBNb2RlbHMgZXh0ZW5kcyBIZS5Db21wb25lbnR7Z2V0U2NoZW1hQmFzZVBhdGg9KCk9PnRoaXMucHJvcHMuc3BlY1NlbGVjdG9ycy5pc09BUzMoKT9bImNvbXBvbmVudHMiLCJzY2hlbWFzIl06WyJkZWZpbml0aW9ucyJdO2dldENvbGxhcHNlZENvbnRlbnQ9KCk9PiIgIjtoYW5kbGVUb2dnbGU9KGUsdCk9Pntjb25zdHtsYXlvdXRBY3Rpb25zOnJ9PXRoaXMucHJvcHM7ci5zaG93KFsuLi50aGlzLmdldFNjaGVtYUJhc2VQYXRoKCksZV0sdCksdCYmdGhpcy5wcm9wcy5zcGVjQWN0aW9ucy5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKFsuLi50aGlzLmdldFNjaGVtYUJhc2VQYXRoKCksZV0pfTtvbkxvYWRNb2RlbHM9ZT0+e2UmJnRoaXMucHJvcHMubGF5b3V0QWN0aW9ucy5yZWFkeVRvU2Nyb2xsKHRoaXMuZ2V0U2NoZW1hQmFzZVBhdGgoKSxlKX07b25Mb2FkTW9kZWw9ZT0+e2lmKGUpe2NvbnN0IHQ9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtbmFtZSIpO3RoaXMucHJvcHMubGF5b3V0QWN0aW9ucy5yZWFkeVRvU2Nyb2xsKFsuLi50aGlzLmdldFNjaGVtYUJhc2VQYXRoKCksdF0sZSl9fTtyZW5kZXIoKXtsZXR7c3BlY1NlbGVjdG9yczplLGdldENvbXBvbmVudDp0LGxheW91dFNlbGVjdG9yczpyLGxheW91dEFjdGlvbnM6bixnZXRDb25maWdzOmF9PXRoaXMucHJvcHMsbz1lLmRlZmluaXRpb25zKCkse2RvY0V4cGFuc2lvbjpzLGRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aDpsfT1hKCk7aWYoIW8uc2l6ZXx8bDwwKXJldHVybiBudWxsO2NvbnN0IGk9dGhpcy5nZXRTY2hlbWFCYXNlUGF0aCgpO2xldCBjPXIuaXNTaG93bihpLGw+MCYmIm5vbmUiIT09cyk7Y29uc3QgdT1lLmlzT0FTMygpLGQ9dCgiTW9kZWxXcmFwcGVyIikscD10KCJDb2xsYXBzZSIpLG09dCgiTW9kZWxDb2xsYXBzZSIpLGY9dCgiSnVtcFRvUGF0aCIsITApLGg9dCgiQXJyb3dVcEljb24iKSxnPXQoIkFycm93RG93bkljb24iKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIix7Y2xhc3NOYW1lOmM/Im1vZGVscyBpcy1vcGVuIjoibW9kZWxzIixyZWY6dGhpcy5vbkxvYWRNb2RlbHN9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJidXR0b24iLHsiYXJpYS1leHBhbmRlZCI6YyxjbGFzc05hbWU6Im1vZGVscy1jb250cm9sIixvbkNsaWNrOigpPT5uLnNob3coaSwhYyl9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCx1PyJTY2hlbWFzIjoiTW9kZWxzIiksYz9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoaCxudWxsKTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoZyxudWxsKSkpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChwLHtpc09wZW5lZDpjfSxvLmVudHJ5U2VxKCkubWFwKCgoW29dKT0+e2NvbnN0IHM9Wy4uLmksb10sYz1YZS5kZWZhdWx0Lkxpc3QocyksdT1lLnNwZWNSZXNvbHZlZFN1YnRyZWUocykscD1lLnNwZWNKc29uKCkuZ2V0SW4ocyksaD1YZS5NYXAuaXNNYXAodSk/dTpYZS5kZWZhdWx0Lk1hcCgpLGc9WGUuTWFwLmlzTWFwKHApP3A6WGUuZGVmYXVsdC5NYXAoKSx5PWguZ2V0KCJ0aXRsZSIpfHxnLmdldCgidGl0bGUiKXx8byxTPXIuaXNTaG93bihzLCExKTtTJiYwPT09aC5zaXplJiZnLnNpemU+MCYmdGhpcy5wcm9wcy5zcGVjQWN0aW9ucy5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKHMpO2NvbnN0IF89SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGQse25hbWU6byxleHBhbmREZXB0aDpsLHNjaGVtYTpofHxYZS5kZWZhdWx0Lk1hcCgpLGRpc3BsYXlOYW1lOnksZnVsbFBhdGg6cyxzcGVjUGF0aDpjLGdldENvbXBvbmVudDp0LHNwZWNTZWxlY3RvcnM6ZSxnZXRDb25maWdzOmEsbGF5b3V0U2VsZWN0b3JzOnIsbGF5b3V0QWN0aW9uczpuLGluY2x1ZGVSZWFkT25seTohMCxpbmNsdWRlV3JpdGVPbmx5OiEwfSksdj1IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsLWJveCJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWwgbW9kZWwtdGl0bGUifSx5KSk7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7aWQ6YG1vZGVsLSR7b31gLGNsYXNzTmFtZToibW9kZWwtY29udGFpbmVyIixrZXk6YG1vZGVscy1zZWN0aW9uLSR7b31gLCJkYXRhLW5hbWUiOm8scmVmOnRoaXMub25Mb2FkTW9kZWx9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWxzLWp1bXAtdG8tcGF0aCJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChmLHtwYXRoOmN9KSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG0se2NsYXNzZXM6Im1vZGVsLWJveCIsY29sbGFwc2VkQ29udGVudDp0aGlzLmdldENvbGxhcHNlZENvbnRlbnQobyksb25Ub2dnbGU6dGhpcy5oYW5kbGVUb2dnbGUsdGl0bGU6dixkaXNwbGF5TmFtZTp5LG1vZGVsTmFtZTpvLHNwZWNQYXRoOmMsbGF5b3V0U2VsZWN0b3JzOnIsbGF5b3V0QWN0aW9uczpuLGhpZGVTZWxmT25FeHBhbmQ6ITAsZXhwYW5kZWQ6bD4wJiZTfSxfKSl9KSkudG9BcnJheSgpKSl9fXZhciBlbnVtX21vZGVsPSh7dmFsdWU6ZSxnZXRDb21wb25lbnQ6dH0pPT57bGV0IHI9dCgiTW9kZWxDb2xsYXBzZSIpLG49SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCJBcnJheSBbICIsZS5jb3VudCgpLCIgXSIpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6InByb3AtZW51bSJ9LCJFbnVtOiIsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJiciIsbnVsbCksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHIse2NvbGxhcHNlZENvbnRlbnQ6bn0sIlsgIixlLm1hcChTdHJpbmcpLmpvaW4oIiwgIiksIiBdIikpfTtmdW5jdGlvbiBpc0Fic29sdXRlVXJsKGUpe3JldHVybiBlLm1hdGNoKC9eKD86W2Etel0rOik/XC9cLy9pKX1mdW5jdGlvbiBidWlsZEJhc2VVcmwoZSx0KXtyZXR1cm4gZT9pc0Fic29sdXRlVXJsKGUpP2Z1bmN0aW9uIGFkZFByb3RvY29sKGUpe3JldHVybiBlLm1hdGNoKC9eXC9cLy9pKT9gJHt3aW5kb3cubG9jYXRpb24ucHJvdG9jb2x9JHtlfWA6ZX0oZSk6bmV3IFVSTChlLHQpLmhyZWY6dH1mdW5jdGlvbiBzYWZlQnVpbGRVcmwoZSx0LHtzZWxlY3RlZFNlcnZlcjpyPSIifT17fSl7dHJ5e3JldHVybiBmdW5jdGlvbiBidWlsZFVybChlLHQse3NlbGVjdGVkU2VydmVyOnI9IiJ9PXt9KXtpZighZSlyZXR1cm47aWYoaXNBYnNvbHV0ZVVybChlKSlyZXR1cm4gZTtjb25zdCBuPWJ1aWxkQmFzZVVybChyLHQpO3JldHVybiBpc0Fic29sdXRlVXJsKG4pP25ldyBVUkwoZSxuKS5ocmVmOm5ldyBVUkwoZSx3aW5kb3cubG9jYXRpb24uaHJlZikuaHJlZn0oZSx0LHtzZWxlY3RlZFNlcnZlcjpyfSl9Y2F0Y2h7cmV0dXJufX1mdW5jdGlvbiBzYW5pdGl6ZVVybChlKXtpZigic3RyaW5nIiE9dHlwZW9mIGV8fCIiPT09ZS50cmltKCkpcmV0dXJuIiI7Y29uc3QgdD1lLnRyaW0oKSxyPSJhYm91dDpibGFuayI7dHJ5e2NvbnN0IGU9YGh0dHBzOi8vYmFzZSR7U3RyaW5nKE1hdGgucmFuZG9tKCkpLnNsaWNlKDIpfWAsbj1uZXcgVVJMKHQsZSksYT1uLnByb3RvY29sLnNsaWNlKDAsLTEpO3JldHVyblsiamF2YXNjcmlwdCIsImRhdGEiLCJ2YnNjcmlwdCJdLmluY2x1ZGVzKGEudG9Mb3dlckNhc2UoKSk/cjpuLm9yaWdpbj09PWU/dC5zdGFydHNXaXRoKCIvIik/YCR7bi5wYXRobmFtZX0ke24uc2VhcmNofSR7bi5oYXNofWA6dC5zdGFydHNXaXRoKCIuIik/YC4ke24ucGF0aG5hbWV9JHtuLnNlYXJjaH0ke24uaGFzaH1gOmAke24ucGF0aG5hbWUuc3Vic3RyaW5nKDEpfSR7bi5zZWFyY2h9JHtuLmhhc2h9YDpTdHJpbmcobil9Y2F0Y2h7cmV0dXJuIHJ9fWNsYXNzIE9iamVjdE1vZGVsIGV4dGVuZHMgSGUuQ29tcG9uZW50e3JlbmRlcigpe2xldHtzY2hlbWE6ZSxuYW1lOnQsZGlzcGxheU5hbWU6cixpc1JlZjpuLGdldENvbXBvbmVudDphLGdldENvbmZpZ3M6byxkZXB0aDpzLG9uVG9nZ2xlOmwsZXhwYW5kZWQ6aSxzcGVjUGF0aDpjLC4uLnV9PXRoaXMucHJvcHMse3NwZWNTZWxlY3RvcnM6ZCxleHBhbmREZXB0aDpwLGluY2x1ZGVSZWFkT25seTptLGluY2x1ZGVXcml0ZU9ubHk6Zn09dTtjb25zdHtpc09BUzM6aH09ZCxnPXM+Mnx8Mj09PXMmJiJpdGVtcyIhPT1jLmxhc3QoKTtpZighZSlyZXR1cm4gbnVsbDtjb25zdHtzaG93RXh0ZW5zaW9uczp5fT1vKCksUz15P2dldEV4dGVuc2lvbnMoZSk6KDAsWGUuTGlzdCkoKTtsZXQgXz1lLmdldCgiZGVzY3JpcHRpb24iKSx2PWUuZ2V0KCJwcm9wZXJ0aWVzIiksYj1lLmdldCgiYWRkaXRpb25hbFByb3BlcnRpZXMiKSx3PWUuZ2V0KCJ0aXRsZSIpfHxyfHx0LEM9ZS5nZXQoInJlcXVpcmVkIikseD1lLmZpbHRlcigoKGUsdCk9Pi0xIT09WyJtYXhQcm9wZXJ0aWVzIiwibWluUHJvcGVydGllcyIsIm51bGxhYmxlIiwiZXhhbXBsZSJdLmluZGV4T2YodCkpKSxPPWUuZ2V0KCJkZXByZWNhdGVkIiksaz1lLmdldEluKFsiZXh0ZXJuYWxEb2NzIiwidXJsIl0pLE49ZS5nZXRJbihbImV4dGVybmFsRG9jcyIsImRlc2NyaXB0aW9uIl0pO2NvbnN0IEE9YSgiSnVtcFRvUGF0aCIsITApLEk9YSgiTWFya2Rvd24iLCEwKSxqPWEoIk1vZGVsIiksUj1hKCJNb2RlbENvbGxhcHNlIiksVD1hKCJQcm9wZXJ0eSIpLFA9YSgiTGluayIpLEI9YSgiTW9kZWxFeHRlbnNpb25zIiksSnVtcFRvUGF0aFNlY3Rpb249KCk9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWwtanVtcC10by1wYXRoIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEEse3BhdGg6Y30pKSxNPUhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsInsiKSwiLi4uIixIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsIn0iKSxuP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChKdW1wVG9QYXRoU2VjdGlvbixudWxsKToiIikscT1kLmlzT0FTMygpP2UuZ2V0KCJhbGxPZiIpOm51bGwsTD1kLmlzT0FTMygpP2UuZ2V0KCJhbnlPZiIpOm51bGwsVT1kLmlzT0FTMygpP2UuZ2V0KCJvbmVPZiIpOm51bGwsRD1kLmlzT0FTMygpP2UuZ2V0KCJub3QiKTpudWxsLCQ9dyYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtb2RlbC10aXRsZSJ9LG4mJmUuZ2V0KCIkJHJlZiIpJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6KDAsaHIuZGVmYXVsdCkoIm1vZGVsLWhpbnQiLHsibW9kZWwtaGludC0tZW1iZWRkZWQiOmd9KX0sZS5nZXQoIiQkcmVmIikpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWwtdGl0bGVfX3RleHQifSx3KSk7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWwifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoUix7bW9kZWxOYW1lOnQsdGl0bGU6JCxvblRvZ2dsZTpsLGV4cGFuZGVkOiEhaXx8czw9cCxjb2xsYXBzZWRDb250ZW50Ok19LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiYnJhY2Utb3BlbiBvYmplY3QifSwieyIpLG4/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEp1bXBUb1BhdGhTZWN0aW9uLG51bGwpOm51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJpbm5lci1vYmplY3QifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRhYmxlIix7Y2xhc3NOYW1lOiJtb2RlbCJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGJvZHkiLG51bGwsXz9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRyIix7Y2xhc3NOYW1lOiJkZXNjcmlwdGlvbiJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsImRlc2NyaXB0aW9uOiIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEkse3NvdXJjZTpffSkpKTpudWxsLGsmJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidHIiLHtjbGFzc05hbWU6ImV4dGVybmFsLWRvY3MifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLCJleHRlcm5hbERvY3M6IiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoUCx7dGFyZ2V0OiJfYmxhbmsiLGhyZWY6c2FuaXRpemVVcmwoayl9LE58fGspKSksTz9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRyIix7Y2xhc3NOYW1lOiJwcm9wZXJ0eSJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsImRlcHJlY2F0ZWQ6IiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCwidHJ1ZSIpKTpudWxsLHYmJnYuc2l6ZT92LmVudHJ5U2VxKCkuZmlsdGVyKCgoWyxlXSk9PighZS5nZXQoInJlYWRPbmx5Iil8fG0pJiYoIWUuZ2V0KCJ3cml0ZU9ubHkiKXx8ZikpKS5tYXAoKChbZSxyXSk9PntsZXQgbj1oKCkmJnIuZ2V0KCJkZXByZWNhdGVkIiksbD1YZS5MaXN0LmlzTGlzdChDKSYmQy5jb250YWlucyhlKSxpPVsicHJvcGVydHktcm93Il07cmV0dXJuIG4mJmkucHVzaCgiZGVwcmVjYXRlZCIpLGwmJmkucHVzaCgicmVxdWlyZWQiKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRyIix7a2V5OmUsY2xhc3NOYW1lOmkuam9pbigiICIpfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLGUsbCYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJzdGFyIn0sIioiKSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoaiwoMCxhci5kZWZhdWx0KSh7a2V5OmBvYmplY3QtJHt0fS0ke2V9XyR7cn1gfSx1LHtyZXF1aXJlZDpsLGdldENvbXBvbmVudDphLHNwZWNQYXRoOmMucHVzaCgicHJvcGVydGllcyIsZSksZ2V0Q29uZmlnczpvLHNjaGVtYTpyLGRlcHRoOnMrMX0pKSkpfSkpLnRvQXJyYXkoKTpudWxsLDA9PT1TLnNpemU/bnVsbDpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoSGUuZGVmYXVsdC5GcmFnbWVudCxudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidHIiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCwiwqAiKSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEIse2V4dGVuc2lvbnM6Uyxwcm9wQ2xhc3M6ImV4dGVuc2lvbiJ9KSksYiYmYi5zaXplP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidHIiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCwiPCAqID46IiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoaiwoMCxhci5kZWZhdWx0KSh7fSx1LHtyZXF1aXJlZDohMSxnZXRDb21wb25lbnQ6YSxzcGVjUGF0aDpjLnB1c2goImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiksZ2V0Q29uZmlnczpvLHNjaGVtYTpiLGRlcHRoOnMrMX0pKSkpOm51bGwscT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRyIixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsImFsbE9mIC0+IiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxxLm1hcCgoKGUsdCk9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5OnR9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChqLCgwLGFyLmRlZmF1bHQpKHt9LHUse3JlcXVpcmVkOiExLGdldENvbXBvbmVudDphLHNwZWNQYXRoOmMucHVzaCgiYWxsT2YiLHQpLGdldENvbmZpZ3M6byxzY2hlbWE6ZSxkZXB0aDpzKzF9KSkpKSkpKTpudWxsLEw/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ciIsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLCJhbnlPZiAtPiIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsTC5tYXAoKChlLHQpPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleTp0fSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoaiwoMCxhci5kZWZhdWx0KSh7fSx1LHtyZXF1aXJlZDohMSxnZXRDb21wb25lbnQ6YSxzcGVjUGF0aDpjLnB1c2goImFueU9mIix0KSxnZXRDb25maWdzOm8sc2NoZW1hOmUsZGVwdGg6cysxfSkpKSkpKSk6bnVsbCxVP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidHIiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCwib25lT2YgLT4iKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLFUubWFwKCgoZSx0KT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6dH0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGosKDAsYXIuZGVmYXVsdCkoe30sdSx7cmVxdWlyZWQ6ITEsZ2V0Q29tcG9uZW50OmEsc3BlY1BhdGg6Yy5wdXNoKCJvbmVPZiIsdCksZ2V0Q29uZmlnczpvLHNjaGVtYTplLGRlcHRoOnMrMX0pKSkpKSkpOm51bGwsRD9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRyIixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsIm5vdCAtPiIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGosKDAsYXIuZGVmYXVsdCkoe30sdSx7cmVxdWlyZWQ6ITEsZ2V0Q29tcG9uZW50OmEsc3BlY1BhdGg6Yy5wdXNoKCJub3QiKSxnZXRDb25maWdzOm8sc2NoZW1hOkQsZGVwdGg6cysxfSkpKSkpOm51bGwpKSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJicmFjZS1jbG9zZSJ9LCJ9IikpLHguc2l6ZT94LmVudHJ5U2VxKCkubWFwKCgoW2UsdF0pPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoVCx7a2V5OmAke2V9LSR7dH1gLHByb3BLZXk6ZSxwcm9wVmFsOnQscHJvcENsYXNzOiJwcm9wZXJ0eSJ9KSkpOm51bGwpfX1jbGFzcyBBcnJheU1vZGVsIGV4dGVuZHMgSGUuQ29tcG9uZW50e3JlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6ZSxnZXRDb25maWdzOnQsc2NoZW1hOnIsZGVwdGg6bixleHBhbmREZXB0aDphLG5hbWU6byxkaXNwbGF5TmFtZTpzLHNwZWNQYXRoOmx9PXRoaXMucHJvcHMsaT1yLmdldCgiZGVzY3JpcHRpb24iKSxjPXIuZ2V0KCJpdGVtcyIpLHU9ci5nZXQoInRpdGxlIil8fHN8fG8sZD1yLmZpbHRlcigoKGUsdCk9Pi0xPT09WyJ0eXBlIiwiaXRlbXMiLCJkZXNjcmlwdGlvbiIsIiQkcmVmIiwiZXh0ZXJuYWxEb2NzIl0uaW5kZXhPZih0KSkpLHA9ci5nZXRJbihbImV4dGVybmFsRG9jcyIsInVybCJdKSxtPXIuZ2V0SW4oWyJleHRlcm5hbERvY3MiLCJkZXNjcmlwdGlvbiJdKTtjb25zdCBmPWUoIk1hcmtkb3duIiwhMCksaD1lKCJNb2RlbENvbGxhcHNlIiksZz1lKCJNb2RlbCIpLHk9ZSgiUHJvcGVydHkiKSxTPWUoIkxpbmsiKSxfPXUmJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWwtdGl0bGUifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsLXRpdGxlX190ZXh0In0sdSkpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGgse3RpdGxlOl8sZXhwYW5kZWQ6bjw9YSxjb2xsYXBzZWRDb250ZW50OiJbLi4uXSJ9LCJbIixkLnNpemU/ZC5lbnRyeVNlcSgpLm1hcCgoKFtlLHRdKT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHkse2tleTpgJHtlfS0ke3R9YCxwcm9wS2V5OmUscHJvcFZhbDp0LHByb3BDbGFzczoicHJvcGVydHkifSkpKTpudWxsLGk/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGYse3NvdXJjZTppfSk6ZC5zaXplP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJtYXJrZG93biJ9KTpudWxsLHAmJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJleHRlcm5hbC1kb2NzIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFMse3RhcmdldDoiX2JsYW5rIixocmVmOnNhbml0aXplVXJsKHApfSxtfHxwKSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChnLCgwLGFyLmRlZmF1bHQpKHt9LHRoaXMucHJvcHMse2dldENvbmZpZ3M6dCxzcGVjUGF0aDpsLnB1c2goIml0ZW1zIiksbmFtZTpudWxsLHNjaGVtYTpjLHJlcXVpcmVkOiExLGRlcHRoOm4rMX0pKSksIl0iKSl9fWNvbnN0IHZyPSJwcm9wZXJ0eSBwcmltaXRpdmUiO2NsYXNzIFByaW1pdGl2ZSBleHRlbmRzIEhlLkNvbXBvbmVudHtyZW5kZXIoKXtsZXR7c2NoZW1hOmUsZ2V0Q29tcG9uZW50OnQsZ2V0Q29uZmlnczpyLG5hbWU6bixkaXNwbGF5TmFtZTphLGRlcHRoOm8sZXhwYW5kRGVwdGg6c309dGhpcy5wcm9wcztjb25zdHtzaG93RXh0ZW5zaW9uczpsfT1yKCk7aWYoIWV8fCFlLmdldClyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwpO2xldCBpPWUuZ2V0KCJ0eXBlIiksYz1lLmdldCgiZm9ybWF0IiksdT1lLmdldCgieG1sIiksZD1lLmdldCgiZW51bSIpLHA9ZS5nZXQoInRpdGxlIil8fGF8fG4sbT1lLmdldCgiZGVzY3JpcHRpb24iKTtjb25zdCBmPWdldEV4dGVuc2lvbnMoZSk7bGV0IGg9ZS5maWx0ZXIoKChlLHQpPT4tMT09PVsiZW51bSIsInR5cGUiLCJmb3JtYXQiLCJkZXNjcmlwdGlvbiIsIiQkcmVmIiwiZXh0ZXJuYWxEb2NzIl0uaW5kZXhPZih0KSkpLmZpbHRlck5vdCgoKGUsdCk9PmYuaGFzKHQpKSksZz1lLmdldEluKFsiZXh0ZXJuYWxEb2NzIiwidXJsIl0pLHk9ZS5nZXRJbihbImV4dGVybmFsRG9jcyIsImRlc2NyaXB0aW9uIl0pO2NvbnN0IFM9dCgiTWFya2Rvd24iLCEwKSxfPXQoIkVudW1Nb2RlbCIpLHY9dCgiUHJvcGVydHkiKSxiPXQoIk1vZGVsQ29sbGFwc2UiKSx3PXQoIkxpbmsiKSxDPXQoIk1vZGVsRXh0ZW5zaW9ucyIpLHg9cCYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtb2RlbC10aXRsZSJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWwtdGl0bGVfX3RleHQifSxwKSk7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWwifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYix7dGl0bGU6eCxleHBhbmRlZDpvPD1zLGNvbGxhcHNlZENvbnRlbnQ6IlsuLi5dIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJwcm9wIn0sbiYmbz4xJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6InByb3AtbmFtZSJ9LHApLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToicHJvcC10eXBlIn0saSksYyYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJwcm9wLWZvcm1hdCJ9LCIoJCIsYywiKSIpLGguc2l6ZT9oLmVudHJ5U2VxKCkubWFwKCgoW2UsdF0pPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodix7a2V5OmAke2V9LSR7dH1gLHByb3BLZXk6ZSxwcm9wVmFsOnQscHJvcENsYXNzOnZyfSkpKTpudWxsLGwmJmYuc2l6ZT4wP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChDLHtleHRlbnNpb25zOmYscHJvcENsYXNzOmAke3ZyfSBleHRlbnNpb25gfSk6bnVsbCxtP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChTLHtzb3VyY2U6bX0pOm51bGwsZyYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImV4dGVybmFsLWRvY3MifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodyx7dGFyZ2V0OiJfYmxhbmsiLGhyZWY6c2FuaXRpemVVcmwoZyl9LHl8fGcpKSx1JiZ1LnNpemU/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiYnIiLG51bGwpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTp2cn0sInhtbDoiKSx1LmVudHJ5U2VxKCkubWFwKCgoW2UsdF0pPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtrZXk6YCR7ZX0tJHt0fWAsY2xhc3NOYW1lOnZyfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImJyIixudWxsKSwiwqDCoMKgIixlLCI6ICIsU3RyaW5nKHQpKSkpLnRvQXJyYXkoKSk6bnVsbCxkJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXyx7dmFsdWU6ZCxnZXRDb21wb25lbnQ6dH0pKSkpfX1jbGFzcyBTY2hlbWVzIGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7VU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpe2xldHtzY2hlbWVzOmV9PXRoaXMucHJvcHM7dGhpcy5zZXRTY2hlbWUoZS5maXJzdCgpKX1VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhlKXt0aGlzLnByb3BzLmN1cnJlbnRTY2hlbWUmJmUuc2NoZW1lcy5pbmNsdWRlcyh0aGlzLnByb3BzLmN1cnJlbnRTY2hlbWUpfHx0aGlzLnNldFNjaGVtZShlLnNjaGVtZXMuZmlyc3QoKSl9b25DaGFuZ2U9ZT0+e3RoaXMuc2V0U2NoZW1lKGUudGFyZ2V0LnZhbHVlKX07c2V0U2NoZW1lPWU9PntsZXR7cGF0aDp0LG1ldGhvZDpyLHNwZWNBY3Rpb25zOm59PXRoaXMucHJvcHM7bi5zZXRTY2hlbWUoZSx0LHIpfTtyZW5kZXIoKXtsZXR7c2NoZW1lczplLGN1cnJlbnRTY2hlbWU6dH09dGhpcy5wcm9wcztyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6InNjaGVtZXMifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6InNjaGVtZXMtdGl0bGUifSwiU2NoZW1lcyIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic2VsZWN0Iix7b25DaGFuZ2U6dGhpcy5vbkNoYW5nZSx2YWx1ZTp0LGlkOiJzY2hlbWVzIn0sZS52YWx1ZVNlcSgpLm1hcCgoZT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJvcHRpb24iLHt2YWx1ZTplLGtleTplfSxlKSkpLnRvQXJyYXkoKSkpfX1jbGFzcyBTY2hlbWVzQ29udGFpbmVyIGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7c3BlY0FjdGlvbnM6ZSxzcGVjU2VsZWN0b3JzOnQsZ2V0Q29tcG9uZW50OnJ9PXRoaXMucHJvcHMsbj10Lm9wZXJhdGlvblNjaGVtZSgpLGE9dC5zY2hlbWVzKCksbz1yKCJzY2hlbWVzIik7cmV0dXJuIGEmJmEuc2l6ZT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobyx7Y3VycmVudFNjaGVtZTpuLHNjaGVtZXM6YSxzcGVjQWN0aW9uczplfSk6bnVsbH19dmFyIGJyPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBJLmRlZmF1bHR9fSk7Y29uc3Qgd3I9e3ZhbHVlOiIiLG9uQ2hhbmdlOigpPT57fSxzY2hlbWE6e30sa2V5TmFtZToiIixyZXF1aXJlZDohMSxlcnJvcnM6KDAsWGUuTGlzdCkoKX07Y2xhc3MgSnNvblNjaGVtYUZvcm0gZXh0ZW5kcyBIZS5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz13cjtjb21wb25lbnREaWRNb3VudCgpe2NvbnN0e2Rpc3BhdGNoSW5pdGlhbFZhbHVlOmUsdmFsdWU6dCxvbkNoYW5nZTpyfT10aGlzLnByb3BzO2U/cih0KTohMT09PWUmJnIoIiIpfXJlbmRlcigpe2xldHtzY2hlbWE6ZSxlcnJvcnM6dCx2YWx1ZTpyLG9uQ2hhbmdlOm4sZ2V0Q29tcG9uZW50OmEsZm46byxkaXNhYmxlZDpzfT10aGlzLnByb3BzO2NvbnN0IGw9ZSYmZS5nZXQ/ZS5nZXQoImZvcm1hdCIpOm51bGwsaT1lJiZlLmdldD9lLmdldCgidHlwZSIpOm51bGwsYz1vLmdldFNjaGVtYU9iamVjdFR5cGUoZSksdT1vLmlzRmlsZVVwbG9hZEludGVuZGVkKGUpO2xldCBnZXRDb21wb25lbnRTaWxlbnRseT1lPT5hKGUsITEse2ZhaWxTaWxlbnRseTohMH0pLGQ9aT9nZXRDb21wb25lbnRTaWxlbnRseShsP2BKc29uU2NoZW1hXyR7aX1fJHtsfWA6YEpzb25TY2hlbWFfJHtpfWApOmEoIkpzb25TY2hlbWFfc3RyaW5nIik7cmV0dXJuIHV8fCFYZS5MaXN0LmlzTGlzdChpKXx8ImFycmF5IiE9PWMmJiJvYmplY3QiIT09Y3x8KGQ9YSgiSnNvblNjaGVtYV9vYmplY3QiKSksZHx8KGQ9YSgiSnNvblNjaGVtYV9zdHJpbmciKSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGQsKDAsYXIuZGVmYXVsdCkoe30sdGhpcy5wcm9wcyx7ZXJyb3JzOnQsZm46byxnZXRDb21wb25lbnQ6YSx2YWx1ZTpyLG9uQ2hhbmdlOm4sc2NoZW1hOmUsZGlzYWJsZWQ6c30pKX19Y2xhc3MgSnNvblNjaGVtYV9zdHJpbmcgZXh0ZW5kcyBIZS5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz13cjtvbkNoYW5nZT1lPT57Y29uc3QgdD10aGlzLnByb3BzLnNjaGVtYSYmImZpbGUiPT09dGhpcy5wcm9wcy5zY2hlbWEuZ2V0KCJ0eXBlIik/ZS50YXJnZXQuZmlsZXNbMF06ZS50YXJnZXQudmFsdWU7dGhpcy5wcm9wcy5vbkNoYW5nZSh0LHRoaXMucHJvcHMua2V5TmFtZSl9O29uRW51bUNoYW5nZT1lPT50aGlzLnByb3BzLm9uQ2hhbmdlKGUpO3JlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6ZSx2YWx1ZTp0LHNjaGVtYTpyLGVycm9yczpuLHJlcXVpcmVkOmEsZGVzY3JpcHRpb246byxkaXNhYmxlZDpzfT10aGlzLnByb3BzO2NvbnN0IGw9ciYmci5nZXQ/ci5nZXQoImVudW0iKTpudWxsLGk9ciYmci5nZXQ/ci5nZXQoImZvcm1hdCIpOm51bGwsYz1yJiZyLmdldD9yLmdldCgidHlwZSIpOm51bGwsdT1yJiZyLmdldD9yLmdldCgiaW4iKTpudWxsO2lmKHQ/KGlzSW1tdXRhYmxlKHQpfHwib2JqZWN0Ij09dHlwZW9mIHQpJiYodD1zdHJpbmdpZnkodCkpOnQ9IiIsbj1uLnRvSlM/bi50b0pTKCk6W10sbCl7Y29uc3Qgcj1lKCJTZWxlY3QiKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHIse2NsYXNzTmFtZTpuLmxlbmd0aD8iaW52YWxpZCI6IiIsdGl0bGU6bi5sZW5ndGg/bjoiIixhbGxvd2VkVmFsdWVzOlsuLi5sXSx2YWx1ZTp0LGFsbG93RW1wdHlWYWx1ZTohYSxkaXNhYmxlZDpzLG9uQ2hhbmdlOnRoaXMub25FbnVtQ2hhbmdlfSl9Y29uc3QgZD1zfHx1JiYiZm9ybURhdGEiPT09dSYmISgiRm9ybURhdGEiaW4gd2luZG93KSxwPWUoIklucHV0Iik7cmV0dXJuIGMmJiJmaWxlIj09PWM/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHAse3R5cGU6ImZpbGUiLGNsYXNzTmFtZTpuLmxlbmd0aD8iaW52YWxpZCI6IiIsdGl0bGU6bi5sZW5ndGg/bjoiIixvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlLGRpc2FibGVkOmR9KTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYnIuZGVmYXVsdCx7dHlwZTppJiYicGFzc3dvcmQiPT09aT8icGFzc3dvcmQiOiJ0ZXh0IixjbGFzc05hbWU6bi5sZW5ndGg/ImludmFsaWQiOiIiLHRpdGxlOm4ubGVuZ3RoP246IiIsdmFsdWU6dCxtaW5MZW5ndGg6MCxkZWJvdW5jZVRpbWVvdXQ6MzUwLHBsYWNlaG9sZGVyOm8sb25DaGFuZ2U6dGhpcy5vbkNoYW5nZSxkaXNhYmxlZDpkfSl9fWNsYXNzIEpzb25TY2hlbWFfYXJyYXkgZXh0ZW5kcyBIZS5QdXJlQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9d3I7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLHRoaXMuc3RhdGU9e3ZhbHVlOnZhbHVlT3JFbXB0eUxpc3QoZS52YWx1ZSksc2NoZW1hOmUuc2NoZW1hfX1VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhlKXtjb25zdCB0PXZhbHVlT3JFbXB0eUxpc3QoZS52YWx1ZSk7dCE9PXRoaXMuc3RhdGUudmFsdWUmJnRoaXMuc2V0U3RhdGUoe3ZhbHVlOnR9KSxlLnNjaGVtYSE9PXRoaXMuc3RhdGUuc2NoZW1hJiZ0aGlzLnNldFN0YXRlKHtzY2hlbWE6ZS5zY2hlbWF9KX1vbkNoYW5nZT0oKT0+e3RoaXMucHJvcHMub25DaGFuZ2UodGhpcy5zdGF0ZS52YWx1ZSl9O29uSXRlbUNoYW5nZT0oZSx0KT0+e3RoaXMuc2V0U3RhdGUoKCh7dmFsdWU6cn0pPT4oe3ZhbHVlOnIuc2V0KHQsZSl9KSksdGhpcy5vbkNoYW5nZSl9O3JlbW92ZUl0ZW09ZT0+e3RoaXMuc2V0U3RhdGUoKCh7dmFsdWU6dH0pPT4oe3ZhbHVlOnQuZGVsZXRlKGUpfSkpLHRoaXMub25DaGFuZ2UpfTthZGRJdGVtPSgpPT57Y29uc3R7Zm46ZX09dGhpcy5wcm9wcztsZXQgdD12YWx1ZU9yRW1wdHlMaXN0KHRoaXMuc3RhdGUudmFsdWUpO3RoaXMuc2V0U3RhdGUoKCgpPT4oe3ZhbHVlOnQucHVzaChlLmdldFNhbXBsZVNjaGVtYSh0aGlzLnN0YXRlLnNjaGVtYS5nZXQoIml0ZW1zIiksITEse2luY2x1ZGVXcml0ZU9ubHk6ITB9KSl9KSksdGhpcy5vbkNoYW5nZSl9O29uRW51bUNoYW5nZT1lPT57dGhpcy5zZXRTdGF0ZSgoKCk9Pih7dmFsdWU6ZX0pKSx0aGlzLm9uQ2hhbmdlKX07cmVuZGVyKCl7bGV0e2dldENvbXBvbmVudDplLHJlcXVpcmVkOnQsc2NoZW1hOnIsZXJyb3JzOm4sZm46YSxkaXNhYmxlZDpvfT10aGlzLnByb3BzO249bi50b0pTP24udG9KUygpOkFycmF5LmlzQXJyYXkobik/bjpbXTtjb25zdCBzPW4uZmlsdGVyKChlPT4ic3RyaW5nIj09dHlwZW9mIGUpKSxsPW4uZmlsdGVyKChlPT52b2lkIDAhPT1lLm5lZWRSZW1vdmUpKS5tYXAoKGU9PmUuZXJyb3IpKSxpPXRoaXMuc3RhdGUudmFsdWUsYz0hIShpJiZpLmNvdW50JiZpLmNvdW50KCk+MCksdT1yLmdldEluKFsiaXRlbXMiLCJlbnVtIl0pLGQ9ci5nZXQoIml0ZW1zIikscD1hLmdldFNjaGVtYU9iamVjdFR5cGUoZCksbT1hLmdldFNjaGVtYU9iamVjdFR5cGVMYWJlbChkKSxmPXIuZ2V0SW4oWyJpdGVtcyIsImZvcm1hdCJdKSxoPXIuZ2V0KCJpdGVtcyIpO2xldCBnLHk9ITEsUz0iZmlsZSI9PT1wfHwic3RyaW5nIj09PXAmJiJiaW5hcnkiPT09ZjtpZihwJiZmP2c9ZShgSnNvblNjaGVtYV8ke3B9XyR7Zn1gKToiYm9vbGVhbiIhPT1wJiYiYXJyYXkiIT09cCYmIm9iamVjdCIhPT1wfHwoZz1lKGBKc29uU2NoZW1hXyR7cH1gKSksIVhlLkxpc3QuaXNMaXN0KGQ/LmdldCgidHlwZSIpKXx8ImFycmF5IiE9PXAmJiJvYmplY3QiIT09cHx8KGc9ZSgiSnNvblNjaGVtYV9vYmplY3QiKSksZ3x8U3x8KHk9ITApLHUpe2NvbnN0IHI9ZSgiU2VsZWN0Iik7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChyLHtjbGFzc05hbWU6bi5sZW5ndGg/ImludmFsaWQiOiIiLHRpdGxlOm4ubGVuZ3RoP246IiIsbXVsdGlwbGU6ITAsdmFsdWU6aSxkaXNhYmxlZDpvLGFsbG93ZWRWYWx1ZXM6dSxhbGxvd0VtcHR5VmFsdWU6IXQsb25DaGFuZ2U6dGhpcy5vbkVudW1DaGFuZ2V9KX1jb25zdCBfPWUoIkJ1dHRvbiIpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtYXJyYXkifSxjP2kubWFwKCgodCxyKT0+e2NvbnN0IHM9KDAsWGUuZnJvbUpTKShbLi4ubi5maWx0ZXIoKGU9PmUuaW5kZXg9PT1yKSkubWFwKChlPT5lLmVycm9yKSldKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6cixjbGFzc05hbWU6Impzb24tc2NoZW1hLWZvcm0taXRlbSJ9LFM/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEpzb25TY2hlbWFBcnJheUl0ZW1GaWxlLHt2YWx1ZTp0LG9uQ2hhbmdlOmU9PnRoaXMub25JdGVtQ2hhbmdlKGUsciksZGlzYWJsZWQ6byxlcnJvcnM6cyxnZXRDb21wb25lbnQ6ZX0pOnk/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEpzb25TY2hlbWFBcnJheUl0ZW1UZXh0LHt2YWx1ZTp0LG9uQ2hhbmdlOmU9PnRoaXMub25JdGVtQ2hhbmdlKGUsciksZGlzYWJsZWQ6byxlcnJvcnM6c30pOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChnLCgwLGFyLmRlZmF1bHQpKHt9LHRoaXMucHJvcHMse3ZhbHVlOnQsb25DaGFuZ2U6ZT0+dGhpcy5vbkl0ZW1DaGFuZ2UoZSxyKSxkaXNhYmxlZDpvLGVycm9yczpzLHNjaGVtYTpoLGdldENvbXBvbmVudDplLGZuOmF9KSksbz9udWxsOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChfLHtjbGFzc05hbWU6YGJ0biBidG4tc20ganNvbi1zY2hlbWEtZm9ybS1pdGVtLXJlbW92ZSAke2wubGVuZ3RoPyJpbnZhbGlkIjpudWxsfWAsdGl0bGU6bC5sZW5ndGg/bDoiIixvbkNsaWNrOigpPT50aGlzLnJlbW92ZUl0ZW0ocil9LCIgLSAiKSl9KSk6bnVsbCxvP251bGw6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF8se2NsYXNzTmFtZTpgYnRuIGJ0bi1zbSBqc29uLXNjaGVtYS1mb3JtLWl0ZW0tYWRkICR7cy5sZW5ndGg/ImludmFsaWQiOm51bGx9YCx0aXRsZTpzLmxlbmd0aD9zOiIiLG9uQ2xpY2s6dGhpcy5hZGRJdGVtfSwiQWRkICIsbSwiIGl0ZW0iKSl9fWNsYXNzIEpzb25TY2hlbWFBcnJheUl0ZW1UZXh0IGV4dGVuZHMgSGUuQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9d3I7b25DaGFuZ2U9ZT0+e2NvbnN0IHQ9ZS50YXJnZXQudmFsdWU7dGhpcy5wcm9wcy5vbkNoYW5nZSh0LHRoaXMucHJvcHMua2V5TmFtZSl9O3JlbmRlcigpe2xldHt2YWx1ZTplLGVycm9yczp0LGRlc2NyaXB0aW9uOnIsZGlzYWJsZWQ6bn09dGhpcy5wcm9wcztyZXR1cm4gZT8oaXNJbW11dGFibGUoZSl8fCJvYmplY3QiPT10eXBlb2YgZSkmJihlPXN0cmluZ2lmeShlKSk6ZT0iIix0PXQudG9KUz90LnRvSlMoKTpbXSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYnIuZGVmYXVsdCx7dHlwZToidGV4dCIsY2xhc3NOYW1lOnQubGVuZ3RoPyJpbnZhbGlkIjoiIix0aXRsZTp0Lmxlbmd0aD90OiIiLHZhbHVlOmUsbWluTGVuZ3RoOjAsZGVib3VuY2VUaW1lb3V0OjM1MCxwbGFjZWhvbGRlcjpyLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2UsZGlzYWJsZWQ6bn0pfX1jbGFzcyBKc29uU2NoZW1hQXJyYXlJdGVtRmlsZSBleHRlbmRzIEhlLkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXdyO29uRmlsZUNoYW5nZT1lPT57Y29uc3QgdD1lLnRhcmdldC5maWxlc1swXTt0aGlzLnByb3BzLm9uQ2hhbmdlKHQsdGhpcy5wcm9wcy5rZXlOYW1lKX07cmVuZGVyKCl7bGV0e2dldENvbXBvbmVudDplLGVycm9yczp0LGRpc2FibGVkOnJ9PXRoaXMucHJvcHM7Y29uc3Qgbj1lKCJJbnB1dCIpLGE9cnx8ISgiRm9ybURhdGEiaW4gd2luZG93KTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG4se3R5cGU6ImZpbGUiLGNsYXNzTmFtZTp0Lmxlbmd0aD8iaW52YWxpZCI6IiIsdGl0bGU6dC5sZW5ndGg/dDoiIixvbkNoYW5nZTp0aGlzLm9uRmlsZUNoYW5nZSxkaXNhYmxlZDphfSl9fWNsYXNzIEpzb25TY2hlbWFfYm9vbGVhbiBleHRlbmRzIEhlLkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXdyO29uRW51bUNoYW5nZT1lPT50aGlzLnByb3BzLm9uQ2hhbmdlKGUpO3JlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6ZSx2YWx1ZTp0LGVycm9yczpyLHNjaGVtYTpuLHJlcXVpcmVkOmEsZGlzYWJsZWQ6b309dGhpcy5wcm9wcztyPXIudG9KUz9yLnRvSlMoKTpbXTtsZXQgcz1uJiZuLmdldD9uLmdldCgiZW51bSIpOm51bGwsbD0hc3x8IWEsaT0hcyYmWyJ0cnVlIiwiZmFsc2UiXTtjb25zdCBjPWUoIlNlbGVjdCIpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYyx7Y2xhc3NOYW1lOnIubGVuZ3RoPyJpbnZhbGlkIjoiIix0aXRsZTpyLmxlbmd0aD9yOiIiLHZhbHVlOlN0cmluZyh0KSxkaXNhYmxlZDpvLGFsbG93ZWRWYWx1ZXM6cz9bLi4uc106aSxhbGxvd0VtcHR5VmFsdWU6bCxvbkNoYW5nZTp0aGlzLm9uRW51bUNoYW5nZX0pfX1jb25zdCBzdHJpbmdpZnlPYmplY3RFcnJvcnM9ZT0+ZS5tYXAoKGU9Pntjb25zdCB0PXZvaWQgMCE9PWUucHJvcEtleT9lLnByb3BLZXk6ZS5pbmRleDtsZXQgcj0ic3RyaW5nIj09dHlwZW9mIGU/ZToic3RyaW5nIj09dHlwZW9mIGUuZXJyb3I/ZS5lcnJvcjpudWxsO2lmKCF0JiZyKXJldHVybiByO2xldCBuPWUuZXJyb3IsYT1gLyR7ZS5wcm9wS2V5fWA7Zm9yKDsib2JqZWN0Ij09dHlwZW9mIG47KXtjb25zdCBlPXZvaWQgMCE9PW4ucHJvcEtleT9uLnByb3BLZXk6bi5pbmRleDtpZih2b2lkIDA9PT1lKWJyZWFrO2lmKGErPWAvJHtlfWAsIW4uZXJyb3IpYnJlYWs7bj1uLmVycm9yfXJldHVybmAke2F9OiAke259YH0pKTtjbGFzcyBKc29uU2NoZW1hX29iamVjdCBleHRlbmRzIEhlLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoKXtzdXBlcigpfXN0YXRpYyBkZWZhdWx0UHJvcHM9d3I7b25DaGFuZ2U9ZT0+e3RoaXMucHJvcHMub25DaGFuZ2UoZSl9O2hhbmRsZU9uQ2hhbmdlPWU9Pntjb25zdCB0PWUudGFyZ2V0LnZhbHVlO3RoaXMub25DaGFuZ2UodCl9O3JlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6ZSx2YWx1ZTp0LGVycm9yczpyLGRpc2FibGVkOm59PXRoaXMucHJvcHM7Y29uc3QgYT1lKCJUZXh0QXJlYSIpO3JldHVybiByPXIudG9KUz9yLnRvSlMoKTpBcnJheS5pc0FycmF5KHIpP3I6W10sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGEse2NsYXNzTmFtZTooMCxoci5kZWZhdWx0KSh7aW52YWxpZDpyLmxlbmd0aH0pLHRpdGxlOnIubGVuZ3RoP3N0cmluZ2lmeU9iamVjdEVycm9ycyhyKS5qb2luKCIsICIpOiIiLHZhbHVlOnN0cmluZ2lmeSh0KSxkaXNhYmxlZDpuLG9uQ2hhbmdlOnRoaXMuaGFuZGxlT25DaGFuZ2V9KSl9fWZ1bmN0aW9uIHZhbHVlT3JFbXB0eUxpc3QoZSl7cmV0dXJuIFhlLkxpc3QuaXNMaXN0KGUpP2U6QXJyYXkuaXNBcnJheShlKT8oMCxYZS5mcm9tSlMpKGUpOigwLFhlLkxpc3QpKCl9Y29uc3QgTW9kZWxFeHRlbnNpb25zPSh7ZXh0ZW5zaW9uczplLHByb3BDbGFzczp0PSIifSk9PmUuZW50cnlTZXEoKS5tYXAoKChbZSxyXSk9Pntjb25zdCBuPWltbXV0YWJsZVRvSlMocik/P251bGw7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidHIiLHtrZXk6ZSxjbGFzc05hbWU6dH0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxlKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLEpTT04uc3RyaW5naWZ5KG4pKSl9KSkudG9BcnJheSgpO3ZhciBDcj1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gai5kZWZhdWx0fX0pO2NvbnN0IGhhc1NjaGVtYVR5cGU9KGUsdCk9Pntjb25zdCByPVhlLk1hcC5pc01hcChlKTtpZighciYmISgwLENyLmRlZmF1bHQpKGUpKXJldHVybiExO2NvbnN0IG49cj9lLmdldCgidHlwZSIpOmUudHlwZTtyZXR1cm4gdD09PW58fEFycmF5LmlzQXJyYXkodCkmJnQuaW5jbHVkZXMobil9LGdldFR5cGU9KGUsdD1uZXcgV2Vha1NldCk9PntpZihudWxsPT1lKXJldHVybiJhbnkiO2lmKHQuaGFzKGUpKXJldHVybiJhbnkiO3QuYWRkKGUpO2NvbnN0e3R5cGU6cixpdGVtczpufT1lO3JldHVybiBPYmplY3QuaGFzT3duKGUsIml0ZW1zIik/KCgpPT57aWYobilyZXR1cm5gYXJyYXk8JHtnZXRUeXBlKG4sdCl9PmA7cmV0dXJuImFycmF5PGFueT4ifSkoKTpyfSxnZXRTY2hlbWFPYmplY3RUeXBlTGFiZWw9ZT0+Z2V0VHlwZShpbW11dGFibGVUb0pTKGUpKTt2YXIganNvbl9zY2hlbWFfNT0oKT0+KHtjb21wb25lbnRzOnttb2RlbEV4YW1wbGU6bW9kZWxfZXhhbXBsZSxNb2RlbFdyYXBwZXIsTW9kZWxDb2xsYXBzZSxNb2RlbCxNb2RlbHMsRW51bU1vZGVsOmVudW1fbW9kZWwsT2JqZWN0TW9kZWwsQXJyYXlNb2RlbCxQcmltaXRpdmVNb2RlbDpQcmltaXRpdmUsTW9kZWxFeHRlbnNpb25zLHNjaGVtZXM6U2NoZW1lcyxTY2hlbWVzQ29udGFpbmVyLC4uLkxlfSxmbjp7aGFzU2NoZW1hVHlwZSxnZXRTY2hlbWFPYmplY3RUeXBlTGFiZWx9fSkseHI9X193ZWJwYWNrX3JlcXVpcmVfXygxMjMpLE9yPV9fd2VicGFja19yZXF1aXJlX18ubih4ciksa3I9ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LGUpLHR9KHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIFIuZGVmYXVsdH19KSxOcj1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gVC5kZWZhdWx0fX0pO2NvbnN0IHNoYWxsb3dBcnJheUVxdWFscz1lPT50PT5BcnJheS5pc0FycmF5KGUpJiZBcnJheS5pc0FycmF5KHQpJiZlLmxlbmd0aD09PXQubGVuZ3RoJiZlLmV2ZXJ5KCgoZSxyKT0+ZT09PXRbcl0pKSxsaXN0PSguLi5lKT0+ZTtjbGFzcyBDYWNoZSBleHRlbmRzIE1hcHtkZWxldGUoZSl7Y29uc3QgdD1BcnJheS5mcm9tKHRoaXMua2V5cygpKS5maW5kKHNoYWxsb3dBcnJheUVxdWFscyhlKSk7cmV0dXJuIHN1cGVyLmRlbGV0ZSh0KX1nZXQoZSl7Y29uc3QgdD1BcnJheS5mcm9tKHRoaXMua2V5cygpKS5maW5kKHNoYWxsb3dBcnJheUVxdWFscyhlKSk7cmV0dXJuIHN1cGVyLmdldCh0KX1oYXMoZSl7cmV0dXJuLTEhPT1BcnJheS5mcm9tKHRoaXMua2V5cygpKS5maW5kSW5kZXgoc2hhbGxvd0FycmF5RXF1YWxzKGUpKX19dmFyIHV0aWxzX21lbW9pemVOPShlLHQ9bGlzdCk9Pntjb25zdHtDYWNoZTpyfT11dC5kZWZhdWx0O3V0LmRlZmF1bHQuQ2FjaGU9Q2FjaGU7Y29uc3Qgbj0oMCx1dC5kZWZhdWx0KShlLHQpO3JldHVybiB1dC5kZWZhdWx0LkNhY2hlPXIsbn07Y29uc3QgQXI9e3N0cmluZzplPT5lLnBhdHRlcm4/KGU9Pnt0cnl7Y29uc3QgdD0vKD88PSg/PCFcXClceykoXGR7Myx9KSg/PVx9KXwoPzw9KD88IVxcKVx7XGQqLCkoXGR7Myx9KSg/PVx9KXwoPzw9KD88IVxcKVx7KShcZHszLH0pKD89LFxkKlx9KS9nLHI9ZS5yZXBsYWNlKHQsIjEwMCIpLG49bmV3IGtyLmRlZmF1bHQocik7cmV0dXJuIG4ubWF4PTEwMCxuLmdlbigpfWNhdGNoKGUpe3JldHVybiJzdHJpbmcifX0pKGUucGF0dGVybik6InN0cmluZyIsc3RyaW5nX2VtYWlsOigpPT4idXNlckBleGFtcGxlLmNvbSIsInN0cmluZ19kYXRlLXRpbWUiOigpPT4obmV3IERhdGUpLnRvSVNPU3RyaW5nKCksc3RyaW5nX2RhdGU6KCk9PihuZXcgRGF0ZSkudG9JU09TdHJpbmcoKS5zdWJzdHJpbmcoMCwxMCksc3RyaW5nX3RpbWU6KCk9PihuZXcgRGF0ZSkudG9JU09TdHJpbmcoKS5zdWJzdHJpbmcoMTEpLHN0cmluZ191dWlkOigpPT4iM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2IixzdHJpbmdfaG9zdG5hbWU6KCk9PiJleGFtcGxlLmNvbSIsc3RyaW5nX2lwdjQ6KCk9PiIxOTguNTEuMTAwLjQyIixzdHJpbmdfaXB2NjooKT0+IjIwMDE6MGRiODo1Yjk2OjAwMDA6MDAwMDo0MjZmOjhlMTc6NjQyYSIsbnVtYmVyOigpPT4wLG51bWJlcl9mbG9hdDooKT0+MCxpbnRlZ2VyOigpPT4wLGJvb2xlYW46ZT0+ImJvb2xlYW4iIT10eXBlb2YgZS5kZWZhdWx0fHxlLmRlZmF1bHR9LHByaW1pdGl2ZT1lPT57ZT1vYmplY3RpZnkoZSk7bGV0e3R5cGU6dCxmb3JtYXQ6cn09ZSxuPUFyW2Ake3R9XyR7cn1gXXx8QXJbdF07cmV0dXJuIGlzRnVuYyhuKT9uKGUpOiJVbmtub3duIFR5cGU6ICIrZS50eXBlfSxzYW5pdGl6ZVJlZj1lPT5kZWVwbHlTdHJpcEtleShlLCIkJHJlZiIsKGU9PiJzdHJpbmciPT10eXBlb2YgZSYmZS5pbmRleE9mKCIjIik+LTEpKSxJcj1bIm1heFByb3BlcnRpZXMiLCJtaW5Qcm9wZXJ0aWVzIl0sanI9WyJtaW5JdGVtcyIsIm1heEl0ZW1zIl0sUnI9WyJtaW5pbXVtIiwibWF4aW11bSIsImV4Y2x1c2l2ZU1pbmltdW0iLCJleGNsdXNpdmVNYXhpbXVtIl0sVHI9WyJtaW5MZW5ndGgiLCJtYXhMZW5ndGgiXSxtZXJnZUpzb25TY2hlbWE9KGUsdCxyPXt9KT0+e2NvbnN0IG49ey4uLmV9O2lmKFsiZXhhbXBsZSIsImRlZmF1bHQiLCJlbnVtIiwieG1sIiwidHlwZSIsLi4uSXIsLi4uanIsLi4uUnIsLi4uVHJdLmZvckVhY2goKGU9PihlPT57dm9pZCAwPT09bltlXSYmdm9pZCAwIT09dFtlXSYmKG5bZV09dFtlXSl9KShlKSkpLHZvaWQgMCE9PXQucmVxdWlyZWQmJkFycmF5LmlzQXJyYXkodC5yZXF1aXJlZCkmJih2b2lkIDAhPT1uLnJlcXVpcmVkJiZuLnJlcXVpcmVkLmxlbmd0aHx8KG4ucmVxdWlyZWQ9W10pLHQucmVxdWlyZWQuZm9yRWFjaCgoZT0+e24ucmVxdWlyZWQuaW5jbHVkZXMoZSl8fG4ucmVxdWlyZWQucHVzaChlKX0pKSksdC5wcm9wZXJ0aWVzKXtuLnByb3BlcnRpZXN8fChuLnByb3BlcnRpZXM9e30pO2xldCBlPW9iamVjdGlmeSh0LnByb3BlcnRpZXMpO2ZvcihsZXQgYSBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGEpJiYoZVthXSYmZVthXS5kZXByZWNhdGVkfHxlW2FdJiZlW2FdLnJlYWRPbmx5JiYhci5pbmNsdWRlUmVhZE9ubHl8fGVbYV0mJmVbYV0ud3JpdGVPbmx5JiYhci5pbmNsdWRlV3JpdGVPbmx5fHxuLnByb3BlcnRpZXNbYV18fChuLnByb3BlcnRpZXNbYV09ZVthXSwhdC5yZXF1aXJlZCYmQXJyYXkuaXNBcnJheSh0LnJlcXVpcmVkKSYmLTEhPT10LnJlcXVpcmVkLmluZGV4T2YoYSkmJihuLnJlcXVpcmVkP24ucmVxdWlyZWQucHVzaChhKTpuLnJlcXVpcmVkPVthXSkpKX1yZXR1cm4gdC5pdGVtcyYmKG4uaXRlbXN8fChuLml0ZW1zPXt9KSxuLml0ZW1zPW1lcmdlSnNvblNjaGVtYShuLml0ZW1zLHQuaXRlbXMscikpLG59LHNhbXBsZUZyb21TY2hlbWFHZW5lcmljPShlLHQ9e30scj12b2lkIDAsbj0hMSk9PntlJiZpc0Z1bmMoZS50b0pTKSYmKGU9ZS50b0pTKCkpO2xldCBhPXZvaWQgMCE9PXJ8fGUmJnZvaWQgMCE9PWUuZXhhbXBsZXx8ZSYmdm9pZCAwIT09ZS5kZWZhdWx0O2NvbnN0IG89IWEmJmUmJmUub25lT2YmJmUub25lT2YubGVuZ3RoPjAscz0hYSYmZSYmZS5hbnlPZiYmZS5hbnlPZi5sZW5ndGg+MDtpZighYSYmKG98fHMpKXtjb25zdCByPW9iamVjdGlmeShvP2Uub25lT2ZbMF06ZS5hbnlPZlswXSk7aWYoIShlPW1lcmdlSnNvblNjaGVtYShlLHIsdCkpLnhtbCYmci54bWwmJihlLnhtbD1yLnhtbCksdm9pZCAwIT09ZS5leGFtcGxlJiZ2b2lkIDAhPT1yLmV4YW1wbGUpYT0hMDtlbHNlIGlmKHIucHJvcGVydGllcyl7ZS5wcm9wZXJ0aWVzfHwoZS5wcm9wZXJ0aWVzPXt9KTtsZXQgbj1vYmplY3RpZnkoci5wcm9wZXJ0aWVzKTtmb3IobGV0IGEgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixhKSYmKG5bYV0mJm5bYV0uZGVwcmVjYXRlZHx8blthXSYmblthXS5yZWFkT25seSYmIXQuaW5jbHVkZVJlYWRPbmx5fHxuW2FdJiZuW2FdLndyaXRlT25seSYmIXQuaW5jbHVkZVdyaXRlT25seXx8ZS5wcm9wZXJ0aWVzW2FdfHwoZS5wcm9wZXJ0aWVzW2FdPW5bYV0sIXIucmVxdWlyZWQmJkFycmF5LmlzQXJyYXkoci5yZXF1aXJlZCkmJi0xIT09ci5yZXF1aXJlZC5pbmRleE9mKGEpJiYoZS5yZXF1aXJlZD9lLnJlcXVpcmVkLnB1c2goYSk6ZS5yZXF1aXJlZD1bYV0pKSl9fWNvbnN0IGw9e307bGV0e3htbDppLHR5cGU6YyxleGFtcGxlOnUscHJvcGVydGllczpkLGFkZGl0aW9uYWxQcm9wZXJ0aWVzOnAsaXRlbXM6bX09ZXx8e30se2luY2x1ZGVSZWFkT25seTpmLGluY2x1ZGVXcml0ZU9ubHk6aH09dDtpPWl8fHt9O2xldCBnLHtuYW1lOnkscHJlZml4OlMsbmFtZXNwYWNlOl99PWksdj17fTtpZihuJiYoeT15fHwibm90YWduYW1lIixnPShTP1MrIjoiOiIiKSt5LF8pKXtsW1M/InhtbG5zOiIrUzoieG1sbnMiXT1ffW4mJih2W2ddPVtdKTtjb25zdCBzY2hlbWFIYXNBbnk9dD0+dC5zb21lKCh0PT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KSkpO2UmJiFjJiYoZHx8cHx8c2NoZW1hSGFzQW55KElyKT9jPSJvYmplY3QiOm18fHNjaGVtYUhhc0FueShqcik/Yz0iYXJyYXkiOnNjaGVtYUhhc0FueShScik/KGM9Im51bWJlciIsZS50eXBlPSJudW1iZXIiKTphfHxlLmVudW18fChjPSJzdHJpbmciLGUudHlwZT0ic3RyaW5nIikpO2NvbnN0IGhhbmRsZU1pbk1heEl0ZW1zPXQ9PntpZihudWxsIT1lPy5tYXhJdGVtcyYmKHQ9dC5zbGljZSgwLGU/Lm1heEl0ZW1zKSksbnVsbCE9ZT8ubWluSXRlbXMpe2xldCByPTA7Zm9yKDt0Lmxlbmd0aDxlPy5taW5JdGVtczspdC5wdXNoKHRbcisrJXQubGVuZ3RoXSl9cmV0dXJuIHR9LGI9b2JqZWN0aWZ5KGQpO2xldCB3LEM9MDtjb25zdCBoYXNFeGNlZWRlZE1heFByb3BlcnRpZXM9KCk9PmUmJm51bGwhPT1lLm1heFByb3BlcnRpZXMmJnZvaWQgMCE9PWUubWF4UHJvcGVydGllcyYmQz49ZS5tYXhQcm9wZXJ0aWVzLGNhbkFkZFByb3BlcnR5PXQ9PiFlfHxudWxsPT09ZS5tYXhQcm9wZXJ0aWVzfHx2b2lkIDA9PT1lLm1heFByb3BlcnRpZXN8fCFoYXNFeGNlZWRlZE1heFByb3BlcnRpZXMoKSYmKCEodD0+IShlJiZlLnJlcXVpcmVkJiZlLnJlcXVpcmVkLmxlbmd0aCYmZS5yZXF1aXJlZC5pbmNsdWRlcyh0KSkpKHQpfHxlLm1heFByb3BlcnRpZXMtQy0oKCk9PntpZighZXx8IWUucmVxdWlyZWQpcmV0dXJuIDA7bGV0IHQ9MDtyZXR1cm4gbj9lLnJlcXVpcmVkLmZvckVhY2goKGU9PnQrPXZvaWQgMD09PXZbZV0/MDoxKSk6ZS5yZXF1aXJlZC5mb3JFYWNoKChlPT50Kz12b2lkIDA9PT12W2ddPy5maW5kKCh0PT52b2lkIDAhPT10W2VdKSk/MDoxKSksZS5yZXF1aXJlZC5sZW5ndGgtdH0pKCk+MCk7aWYodz1uPyhyLGE9dm9pZCAwKT0+e2lmKGUmJmJbcl0pe2lmKGJbcl0ueG1sPWJbcl0ueG1sfHx7fSxiW3JdLnhtbC5hdHRyaWJ1dGUpe2NvbnN0IGU9QXJyYXkuaXNBcnJheShiW3JdLmVudW0pP2Jbcl0uZW51bVswXTp2b2lkIDAsdD1iW3JdLmV4YW1wbGUsbj1iW3JdLmRlZmF1bHQ7cmV0dXJuIHZvaWQobFtiW3JdLnhtbC5uYW1lfHxyXT12b2lkIDAhPT10P3Q6dm9pZCAwIT09bj9uOnZvaWQgMCE9PWU/ZTpwcmltaXRpdmUoYltyXSkpfWJbcl0ueG1sLm5hbWU9YltyXS54bWwubmFtZXx8cn1lbHNlIGJbcl18fCExPT09cHx8KGJbcl09e3htbDp7bmFtZTpyfX0pO2xldCBvPXNhbXBsZUZyb21TY2hlbWFHZW5lcmljKGUmJmJbcl18fHZvaWQgMCx0LGEsbik7Y2FuQWRkUHJvcGVydHkocikmJihDKyssQXJyYXkuaXNBcnJheShvKT92W2ddPXZbZ10uY29uY2F0KG8pOnZbZ10ucHVzaChvKSl9OihyLGEpPT57aWYoY2FuQWRkUHJvcGVydHkocikpe2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLCJkaXNjcmltaW5hdG9yIikmJmUuZGlzY3JpbWluYXRvciYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGlzY3JpbWluYXRvciwibWFwcGluZyIpJiZlLmRpc2NyaW1pbmF0b3IubWFwcGluZyYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsIiQkcmVmIikmJmUuJCRyZWYmJmUuZGlzY3JpbWluYXRvci5wcm9wZXJ0eU5hbWU9PT1yKXtmb3IobGV0IHQgaW4gZS5kaXNjcmltaW5hdG9yLm1hcHBpbmcpaWYoLTEhPT1lLiQkcmVmLnNlYXJjaChlLmRpc2NyaW1pbmF0b3IubWFwcGluZ1t0XSkpe3Zbcl09dDticmVha319ZWxzZSB2W3JdPXNhbXBsZUZyb21TY2hlbWFHZW5lcmljKGJbcl0sdCxhLG4pO0MrK319LGEpe2xldCBhO2lmKGE9c2FuaXRpemVSZWYodm9pZCAwIT09cj9yOnZvaWQgMCE9PXU/dTplLmRlZmF1bHQpLCFuKXtpZigibnVtYmVyIj09dHlwZW9mIGEmJiJzdHJpbmciPT09YylyZXR1cm5gJHthfWA7aWYoInN0cmluZyIhPXR5cGVvZiBhfHwic3RyaW5nIj09PWMpcmV0dXJuIGE7dHJ5e3JldHVybiBKU09OLnBhcnNlKGEpfWNhdGNoKGUpe3JldHVybiBhfX1pZihlfHwoYz1BcnJheS5pc0FycmF5KGEpPyJhcnJheSI6dHlwZW9mIGEpLCJhcnJheSI9PT1jKXtpZighQXJyYXkuaXNBcnJheShhKSl7aWYoInN0cmluZyI9PXR5cGVvZiBhKXJldHVybiBhO2E9W2FdfWNvbnN0IHI9ZT9lLml0ZW1zOnZvaWQgMDtyJiYoci54bWw9ci54bWx8fGl8fHt9LHIueG1sLm5hbWU9ci54bWwubmFtZXx8aS5uYW1lKTtsZXQgbz1hLm1hcCgoZT0+c2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMocix0LGUsbikpKTtyZXR1cm4gbz1oYW5kbGVNaW5NYXhJdGVtcyhvKSxpLndyYXBwZWQ/KHZbZ109bywoMCxOci5kZWZhdWx0KShsKXx8dltnXS5wdXNoKHtfYXR0cjpsfSkpOnY9byx2fWlmKCJvYmplY3QiPT09Yyl7aWYoInN0cmluZyI9PXR5cGVvZiBhKXJldHVybiBhO2ZvcihsZXQgdCBpbiBhKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLHQpJiYoZSYmYlt0XSYmYlt0XS5yZWFkT25seSYmIWZ8fGUmJmJbdF0mJmJbdF0ud3JpdGVPbmx5JiYhaHx8KGUmJmJbdF0mJmJbdF0ueG1sJiZiW3RdLnhtbC5hdHRyaWJ1dGU/bFtiW3RdLnhtbC5uYW1lfHx0XT1hW3RdOncodCxhW3RdKSkpO3JldHVybigwLE5yLmRlZmF1bHQpKGwpfHx2W2ddLnB1c2goe19hdHRyOmx9KSx2fXJldHVybiB2W2ddPSgwLE5yLmRlZmF1bHQpKGwpP2E6W3tfYXR0cjpsfSxhXSx2fWlmKCJvYmplY3QiPT09Yyl7Zm9yKGxldCBlIGluIGIpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsZSkmJihiW2VdJiZiW2VdLmRlcHJlY2F0ZWR8fGJbZV0mJmJbZV0ucmVhZE9ubHkmJiFmfHxiW2VdJiZiW2VdLndyaXRlT25seSYmIWh8fHcoZSkpO2lmKG4mJmwmJnZbZ10ucHVzaCh7X2F0dHI6bH0pLGhhc0V4Y2VlZGVkTWF4UHJvcGVydGllcygpKXJldHVybiB2O2lmKCEwPT09cCluP3ZbZ10ucHVzaCh7YWRkaXRpb25hbFByb3A6IkFueXRoaW5nIGNhbiBiZSBoZXJlIn0pOnYuYWRkaXRpb25hbFByb3AxPXt9LEMrKztlbHNlIGlmKHApe2NvbnN0IHI9b2JqZWN0aWZ5KHApLGE9c2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMocix0LHZvaWQgMCxuKTtpZihuJiZyLnhtbCYmci54bWwubmFtZSYmIm5vdGFnbmFtZSIhPT1yLnhtbC5uYW1lKXZbZ10ucHVzaChhKTtlbHNle2NvbnN0IHQ9bnVsbCE9PWUubWluUHJvcGVydGllcyYmdm9pZCAwIT09ZS5taW5Qcm9wZXJ0aWVzJiZDPGUubWluUHJvcGVydGllcz9lLm1pblByb3BlcnRpZXMtQzozO2ZvcihsZXQgZT0xO2U8PXQ7ZSsrKXtpZihoYXNFeGNlZWRlZE1heFByb3BlcnRpZXMoKSlyZXR1cm4gdjtpZihuKXtjb25zdCB0PXt9O3RbImFkZGl0aW9uYWxQcm9wIitlXT1hLm5vdGFnbmFtZSx2W2ddLnB1c2godCl9ZWxzZSB2WyJhZGRpdGlvbmFsUHJvcCIrZV09YTtDKyt9fX1yZXR1cm4gdn1pZigiYXJyYXkiPT09Yyl7aWYoIW0pcmV0dXJuO2xldCByO2lmKG4mJihtLnhtbD1tLnhtbHx8ZT8ueG1sfHx7fSxtLnhtbC5uYW1lPW0ueG1sLm5hbWV8fGkubmFtZSksQXJyYXkuaXNBcnJheShtLmFueU9mKSlyPW0uYW55T2YubWFwKChlPT5zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhtZXJnZUpzb25TY2hlbWEoZSxtLHQpLHQsdm9pZCAwLG4pKSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KG0ub25lT2YpKXI9bS5vbmVPZi5tYXAoKGU9PnNhbXBsZUZyb21TY2hlbWFHZW5lcmljKG1lcmdlSnNvblNjaGVtYShlLG0sdCksdCx2b2lkIDAsbikpKTtlbHNle2lmKCEoIW58fG4mJmkud3JhcHBlZCkpcmV0dXJuIHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKG0sdCx2b2lkIDAsbik7cj1bc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMobSx0LHZvaWQgMCxuKV19cmV0dXJuIHI9aGFuZGxlTWluTWF4SXRlbXMociksbiYmaS53cmFwcGVkPyh2W2ddPXIsKDAsTnIuZGVmYXVsdCkobCl8fHZbZ10ucHVzaCh7X2F0dHI6bH0pLHYpOnJ9bGV0IHg7aWYoZSYmQXJyYXkuaXNBcnJheShlLmVudW0pKXg9bm9ybWFsaXplQXJyYXkoZS5lbnVtKVswXTtlbHNle2lmKCFlKXJldHVybjtpZih4PXByaW1pdGl2ZShlKSwibnVtYmVyIj09dHlwZW9mIHgpe2xldCB0PWUubWluaW11bTtudWxsIT10JiYoZS5leGNsdXNpdmVNaW5pbXVtJiZ0KysseD10KTtsZXQgcj1lLm1heGltdW07bnVsbCE9ciYmKGUuZXhjbHVzaXZlTWF4aW11bSYmci0tLHg9cil9aWYoInN0cmluZyI9PXR5cGVvZiB4JiYobnVsbCE9PWUubWF4TGVuZ3RoJiZ2b2lkIDAhPT1lLm1heExlbmd0aCYmKHg9eC5zbGljZSgwLGUubWF4TGVuZ3RoKSksbnVsbCE9PWUubWluTGVuZ3RoJiZ2b2lkIDAhPT1lLm1pbkxlbmd0aCkpe2xldCB0PTA7Zm9yKDt4Lmxlbmd0aDxlLm1pbkxlbmd0aDspeCs9eFt0KysleC5sZW5ndGhdfX1pZigiZmlsZSIhPT1jKXJldHVybiBuPyh2W2ddPSgwLE5yLmRlZmF1bHQpKGwpP3g6W3tfYXR0cjpsfSx4XSx2KTp4fSxpbmZlclNjaGVtYT1lPT4oZS5zY2hlbWEmJihlPWUuc2NoZW1hKSxlLnByb3BlcnRpZXMmJihlLnR5cGU9Im9iamVjdCIpLGUpLGNyZWF0ZVhNTEV4YW1wbGU9KGUsdCxyKT0+e2NvbnN0IG49c2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoZSx0LHIsITApO2lmKG4pcmV0dXJuInN0cmluZyI9PXR5cGVvZiBuP246T3IoKShuLHtkZWNsYXJhdGlvbjohMCxpbmRlbnQ6Ilx0In0pfSxzYW1wbGVGcm9tU2NoZW1hPShlLHQscik9PnNhbXBsZUZyb21TY2hlbWFHZW5lcmljKGUsdCxyLCExKSxyZXNvbHZlcj0oZSx0LHIpPT5bZSxKU09OLnN0cmluZ2lmeSh0KSxKU09OLnN0cmluZ2lmeShyKV0sUHI9dXRpbHNfbWVtb2l6ZU4oY3JlYXRlWE1MRXhhbXBsZSxyZXNvbHZlciksQnI9dXRpbHNfbWVtb2l6ZU4oc2FtcGxlRnJvbVNjaGVtYSxyZXNvbHZlciksZ2V0U2NoZW1hT2JqZWN0VHlwZT1lPT5pbW11dGFibGVUb0pTKGUpPy50eXBlPz8ic3RyaW5nIixNcj1be3doZW46L2pzb24vLHNob3VsZFN0cmluZ2lmeVR5cGVzOlsic3RyaW5nIl19XSxxcj1bIm9iamVjdCJdO3ZhciBnZXRfanNvbl9zYW1wbGVfc2NoZW1hPWU9Pih0LHIsbixhKT0+e2NvbnN0e2ZuOm99PWUoKSxzPW8ubWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hKHQscixhKSxsPXR5cGVvZiBzLGk9TXIucmVkdWNlKCgoZSx0KT0+dC53aGVuLnRlc3Qobik/Wy4uLmUsLi4udC5zaG91bGRTdHJpbmdpZnlUeXBlc106ZSkscXIpO3JldHVybigwLHB0LmRlZmF1bHQpKGksKGU9PmU9PT1sKSk/SlNPTi5zdHJpbmdpZnkocyxudWxsLDIpOnN9O3ZhciBnZXRfeWFtbF9zYW1wbGVfc2NoZW1hPWU9Pih0LHIsbixhKT0+e2NvbnN0e2ZuOm99PWUoKSxzPW8uZ2V0SnNvblNhbXBsZVNjaGVtYSh0LHIsbixhKTtsZXQgbDt0cnl7bD1KdC5kZWZhdWx0LmR1bXAoSnQuZGVmYXVsdC5sb2FkKHMpLHtsaW5lV2lkdGg6LTF9LHtzY2hlbWE6SnQuSlNPTl9TQ0hFTUF9KSwiXG4iPT09bFtsLmxlbmd0aC0xXSYmKGw9bC5zbGljZSgwLGwubGVuZ3RoLTEpKX1jYXRjaChlKXtyZXR1cm4gY29uc29sZS5lcnJvcihlKSwiZXJyb3I6IGNvdWxkIG5vdCBnZW5lcmF0ZSB5YW1sIGV4YW1wbGUifXJldHVybiBsLnJlcGxhY2UoL1x0L2csIiAgIil9O3ZhciBnZXRfeG1sX3NhbXBsZV9zY2hlbWE9ZT0+KHQscixuKT0+e2NvbnN0e2ZuOmF9PWUoKTtpZih0JiYhdC54bWwmJih0LnhtbD17fSksdCYmIXQueG1sLm5hbWUpe2lmKCF0LiQkcmVmJiYodC50eXBlfHx0Lml0ZW1zfHx0LnByb3BlcnRpZXN8fHQuYWRkaXRpb25hbFByb3BlcnRpZXMpKXJldHVybic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PlxuXHgzYyEtLSBYTUwgZXhhbXBsZSBjYW5ub3QgYmUgZ2VuZXJhdGVkOyByb290IGVsZW1lbnQgbmFtZSBpcyB1bmRlZmluZWQgLS1ceDNlJztpZih0LiQkcmVmKXtsZXQgZT10LiQkcmVmLm1hdGNoKC9cUypcLyhcUyspJC8pO3QueG1sLm5hbWU9ZVsxXX19cmV0dXJuIGEubWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlKHQscixuKX07dmFyIGdldF9zYW1wbGVfc2NoZW1hPWU9Pih0LHI9IiIsbj17fSxhPXZvaWQgMCk9Pntjb25zdHtmbjpvfT1lKCk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/LnRvSlMmJih0PXQudG9KUygpKSwiZnVuY3Rpb24iPT10eXBlb2YgYT8udG9KUyYmKGE9YS50b0pTKCkpLC94bWwvLnRlc3Qocik/by5nZXRYbWxTYW1wbGVTY2hlbWEodCxuLGEpOi8oeWFtbHx5bWwpLy50ZXN0KHIpP28uZ2V0WWFtbFNhbXBsZVNjaGVtYSh0LG4scixhKTpvLmdldEpzb25TYW1wbGVTY2hlbWEodCxuLHIsYSl9O3ZhciBqc29uX3NjaGVtYV81X3NhbXBsZXM9KHtnZXRTeXN0ZW06ZX0pPT57Y29uc3QgdD1nZXRfanNvbl9zYW1wbGVfc2NoZW1hKGUpLHI9Z2V0X3lhbWxfc2FtcGxlX3NjaGVtYShlKSxuPWdldF94bWxfc2FtcGxlX3NjaGVtYShlKSxhPWdldF9zYW1wbGVfc2NoZW1hKGUpO3JldHVybntmbjp7anNvblNjaGVtYTU6e2luZmVyU2NoZW1hLHNhbXBsZUZyb21TY2hlbWEsc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMsY3JlYXRlWE1MRXhhbXBsZSxtZW1vaXplZFNhbXBsZUZyb21TY2hlbWE6QnIsbWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlOlByLGdldEpzb25TYW1wbGVTY2hlbWE6dCxnZXRZYW1sU2FtcGxlU2NoZW1hOnIsZ2V0WG1sU2FtcGxlU2NoZW1hOm4sZ2V0U2FtcGxlU2NoZW1hOmEsbWVyZ2VKc29uU2NoZW1hfSxpbmZlclNjaGVtYSxzYW1wbGVGcm9tU2NoZW1hLHNhbXBsZUZyb21TY2hlbWFHZW5lcmljLGNyZWF0ZVhNTEV4YW1wbGUsbWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hOkJyLG1lbW9pemVkQ3JlYXRlWE1MRXhhbXBsZTpQcixnZXRKc29uU2FtcGxlU2NoZW1hOnQsZ2V0WWFtbFNhbXBsZVNjaGVtYTpyLGdldFhtbFNhbXBsZVNjaGVtYTpuLGdldFNhbXBsZVNjaGVtYTphLG1lcmdlSnNvblNjaGVtYSxnZXRTY2hlbWFPYmplY3RUeXBlfX19LExyPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBQLmRlZmF1bHR9fSk7Y29uc3QgVXI9WyJnZXQiLCJwdXQiLCJwb3N0IiwiZGVsZXRlIiwib3B0aW9ucyIsImhlYWQiLCJwYXRjaCIsInRyYWNlIl0sc3BlY19zZWxlY3RvcnNfc3RhdGU9ZT0+ZXx8KDAsWGUuTWFwKSgpLERyPSgwLFB0LmNyZWF0ZVNlbGVjdG9yKShzcGVjX3NlbGVjdG9yc19zdGF0ZSwoZT0+ZS5nZXQoImxhc3RFcnJvciIpKSksJHI9KDAsUHQuY3JlYXRlU2VsZWN0b3IpKHNwZWNfc2VsZWN0b3JzX3N0YXRlLChlPT5lLmdldCgidXJsIikpKSxWcj0oMCxQdC5jcmVhdGVTZWxlY3Rvcikoc3BlY19zZWxlY3RvcnNfc3RhdGUsKGU9PmUuZ2V0KCJzcGVjIil8fCIiKSksSnI9KDAsUHQuY3JlYXRlU2VsZWN0b3IpKHNwZWNfc2VsZWN0b3JzX3N0YXRlLChlPT5lLmdldCgic3BlY1NvdXJjZSIpfHwibm90LWVkaXRvciIpKSxGcj0oMCxQdC5jcmVhdGVTZWxlY3Rvcikoc3BlY19zZWxlY3RvcnNfc3RhdGUsKGU9PmUuZ2V0KCJqc29uIiwoMCxYZS5NYXApKCkpKSksenI9KDAsUHQuY3JlYXRlU2VsZWN0b3IpKEZyLChlPT5lLnRvSlMoKSkpLEtyPSgwLFB0LmNyZWF0ZVNlbGVjdG9yKShzcGVjX3NlbGVjdG9yc19zdGF0ZSwoZT0+ZS5nZXQoInJlc29sdmVkIiwoMCxYZS5NYXApKCkpKSksc3BlY1Jlc29sdmVkU3VidHJlZT0oZSx0KT0+ZS5nZXRJbihbInJlc29sdmVkU3VidHJlZXMiLC4uLnRdLHZvaWQgMCksbWVyZ2VyRm49KGUsdCk9PlhlLk1hcC5pc01hcChlKSYmWGUuTWFwLmlzTWFwKHQpP3QuZ2V0KCIkJHJlZiIpP3Q6KDAsWGUuT3JkZXJlZE1hcCkoKS5tZXJnZVdpdGgobWVyZ2VyRm4sZSx0KTp0LFdyPSgwLFB0LmNyZWF0ZVNlbGVjdG9yKShzcGVjX3NlbGVjdG9yc19zdGF0ZSwoZT0+KDAsWGUuT3JkZXJlZE1hcCkoKS5tZXJnZVdpdGgobWVyZ2VyRm4sZS5nZXQoImpzb24iKSxlLmdldCgicmVzb2x2ZWRTdWJ0cmVlcyIpKSkpLHNwZWM9ZT0+RnIoZSksSHI9KDAsUHQuY3JlYXRlU2VsZWN0b3IpKHNwZWMsKCgpPT4hMSkpLEdyPSgwLFB0LmNyZWF0ZVNlbGVjdG9yKShzcGVjLChlPT5yZXR1cm5TZWxmT3JOZXdNYXAoZSYmZS5nZXQoImluZm8iKSkpKSxYcj0oMCxQdC5jcmVhdGVTZWxlY3Rvcikoc3BlYywoZT0+cmV0dXJuU2VsZk9yTmV3TWFwKGUmJmUuZ2V0KCJleHRlcm5hbERvY3MiKSkpKSxZcj0oMCxQdC5jcmVhdGVTZWxlY3RvcikoR3IsKGU9PmUmJmUuZ2V0KCJ2ZXJzaW9uIikpKSxRcj0oMCxQdC5jcmVhdGVTZWxlY3RvcikoWXIsKGU9Pi92PyhbMC05XSopXC4oWzAtOV0qKVwuKFswLTldKikvaS5leGVjKGUpLnNsaWNlKDEpKSksWnI9KDAsUHQuY3JlYXRlU2VsZWN0b3IpKFdyLChlPT5lLmdldCgicGF0aHMiKSkpLGVuPSgwLExyLmRlZmF1bHQpKFsiZ2V0IiwicHV0IiwicG9zdCIsImRlbGV0ZSIsIm9wdGlvbnMiLCJoZWFkIiwicGF0Y2giXSksdG49KDAsUHQuY3JlYXRlU2VsZWN0b3IpKFpyLChlPT57bGV0IHQ9KDAsWGUuTGlzdCkoKTtyZXR1cm4hWGUuTWFwLmlzTWFwKGUpfHxlLmlzRW1wdHkoKXx8ZS5mb3JFYWNoKCgoZSxyKT0+e2lmKCFlfHwhZS5mb3JFYWNoKXJldHVybnt9O2UuZm9yRWFjaCgoKGUsbik9PntVci5pbmRleE9mKG4pPDB8fCh0PXQucHVzaCgoMCxYZS5mcm9tSlMpKHtwYXRoOnIsbWV0aG9kOm4sb3BlcmF0aW9uOmUsaWQ6YCR7bn0tJHtyfWB9KSkpfSkpfSkpLHR9KSkscm49KDAsUHQuY3JlYXRlU2VsZWN0b3IpKHNwZWMsKGU9PigwLFhlLlNldCkoZS5nZXQoImNvbnN1bWVzIikpKSksbm49KDAsUHQuY3JlYXRlU2VsZWN0b3IpKHNwZWMsKGU9PigwLFhlLlNldCkoZS5nZXQoInByb2R1Y2VzIikpKSksYW49KDAsUHQuY3JlYXRlU2VsZWN0b3IpKHNwZWMsKGU9PmUuZ2V0KCJzZWN1cml0eSIsKDAsWGUuTGlzdCkoKSkpKSxvbj0oMCxQdC5jcmVhdGVTZWxlY3Rvcikoc3BlYywoZT0+ZS5nZXQoInNlY3VyaXR5RGVmaW5pdGlvbnMiKSkpLGZpbmREZWZpbml0aW9uPShlLHQpPT57Y29uc3Qgcj1lLmdldEluKFsicmVzb2x2ZWRTdWJ0cmVlcyIsImRlZmluaXRpb25zIix0XSxudWxsKSxuPWUuZ2V0SW4oWyJqc29uIiwiZGVmaW5pdGlvbnMiLHRdLG51bGwpO3JldHVybiByfHxufHxudWxsfSxzbj0oMCxQdC5jcmVhdGVTZWxlY3Rvcikoc3BlYywoZT0+e2NvbnN0IHQ9ZS5nZXQoImRlZmluaXRpb25zIik7cmV0dXJuIFhlLk1hcC5pc01hcCh0KT90OigwLFhlLk1hcCkoKX0pKSxsbj0oMCxQdC5jcmVhdGVTZWxlY3Rvcikoc3BlYywoZT0+ZS5nZXQoImJhc2VQYXRoIikpKSxjbj0oMCxQdC5jcmVhdGVTZWxlY3Rvcikoc3BlYywoZT0+ZS5nZXQoImhvc3QiKSkpLHVuPSgwLFB0LmNyZWF0ZVNlbGVjdG9yKShzcGVjLChlPT5lLmdldCgic2NoZW1lcyIsKDAsWGUuTWFwKSgpKSkpLGRuPSgwLFB0LmNyZWF0ZVNlbGVjdG9yKShbdG4scm4sbm5dLCgoZSx0LHIpPT5lLm1hcCgoZT0+ZS51cGRhdGUoIm9wZXJhdGlvbiIsKGU9PlhlLk1hcC5pc01hcChlKT9lLndpdGhNdXRhdGlvbnMoKGU9PihlLmdldCgiY29uc3VtZXMiKXx8ZS51cGRhdGUoImNvbnN1bWVzIiwoZT0+KDAsWGUuU2V0KShlKS5tZXJnZSh0KSkpLGUuZ2V0KCJwcm9kdWNlcyIpfHxlLnVwZGF0ZSgicHJvZHVjZXMiLChlPT4oMCxYZS5TZXQpKGUpLm1lcmdlKHIpKSksZSkpKTooMCxYZS5NYXApKCkpKSkpKSkscG49KDAsUHQuY3JlYXRlU2VsZWN0b3IpKHNwZWMsKGU9Pntjb25zdCB0PWUuZ2V0KCJ0YWdzIiwoMCxYZS5MaXN0KSgpKTtyZXR1cm4gWGUuTGlzdC5pc0xpc3QodCk/dC5maWx0ZXIoKGU9PlhlLk1hcC5pc01hcChlKSkpOigwLFhlLkxpc3QpKCl9KSksdGFnRGV0YWlscz0oZSx0KT0+KHBuKGUpfHwoMCxYZS5MaXN0KSgpKS5maWx0ZXIoWGUuTWFwLmlzTWFwKS5maW5kKChlPT5lLmdldCgibmFtZSIpPT09dCksKDAsWGUuTWFwKSgpKSxtbj0oMCxQdC5jcmVhdGVTZWxlY3RvcikoZG4scG4sKChlLHQpPT5lLnJlZHVjZSgoKGUsdCk9PntsZXQgcj0oMCxYZS5TZXQpKHQuZ2V0SW4oWyJvcGVyYXRpb24iLCJ0YWdzIl0pKTtyZXR1cm4gci5jb3VudCgpPDE/ZS51cGRhdGUoImRlZmF1bHQiLCgwLFhlLkxpc3QpKCksKGU9PmUucHVzaCh0KSkpOnIucmVkdWNlKCgoZSxyKT0+ZS51cGRhdGUociwoMCxYZS5MaXN0KSgpLChlPT5lLnB1c2godCkpKSksZSl9KSx0LnJlZHVjZSgoKGUsdCk9PmUuc2V0KHQuZ2V0KCJuYW1lIiksKDAsWGUuTGlzdCkoKSkpLCgwLFhlLk9yZGVyZWRNYXApKCkpKSkpLHNlbGVjdG9yc190YWdnZWRPcGVyYXRpb25zPWU9Pih7Z2V0Q29uZmlnczp0fSk9PntsZXR7dGFnc1NvcnRlcjpyLG9wZXJhdGlvbnNTb3J0ZXI6bn09dCgpO3JldHVybiBtbihlKS5zb3J0QnkoKChlLHQpPT50KSwoKGUsdCk9PntsZXQgbj0iZnVuY3Rpb24iPT10eXBlb2Ygcj9yOnh0LnRhZ3NTb3J0ZXJbcl07cmV0dXJuIG4/bihlLHQpOm51bGx9KSkubWFwKCgodCxyKT0+e2xldCBhPSJmdW5jdGlvbiI9PXR5cGVvZiBuP246eHQub3BlcmF0aW9uc1NvcnRlcltuXSxvPWE/dC5zb3J0KGEpOnQ7cmV0dXJuKDAsWGUuTWFwKSh7dGFnRGV0YWlsczp0YWdEZXRhaWxzKGUsciksb3BlcmF0aW9uczpvfSl9KSl9LGZuPSgwLFB0LmNyZWF0ZVNlbGVjdG9yKShzcGVjX3NlbGVjdG9yc19zdGF0ZSwoZT0+ZS5nZXQoInJlc3BvbnNlcyIsKDAsWGUuTWFwKSgpKSkpLGhuPSgwLFB0LmNyZWF0ZVNlbGVjdG9yKShzcGVjX3NlbGVjdG9yc19zdGF0ZSwoZT0+ZS5nZXQoInJlcXVlc3RzIiwoMCxYZS5NYXApKCkpKSksZ249KDAsUHQuY3JlYXRlU2VsZWN0b3IpKHNwZWNfc2VsZWN0b3JzX3N0YXRlLChlPT5lLmdldCgibXV0YXRlZFJlcXVlc3RzIiwoMCxYZS5NYXApKCkpKSkscmVzcG9uc2VGb3I9KGUsdCxyKT0+Zm4oZSkuZ2V0SW4oW3Qscl0sbnVsbCkscmVxdWVzdEZvcj0oZSx0LHIpPT5obihlKS5nZXRJbihbdCxyXSxudWxsKSxtdXRhdGVkUmVxdWVzdEZvcj0oZSx0LHIpPT5nbihlKS5nZXRJbihbdCxyXSxudWxsKSxhbGxvd1RyeUl0T3V0Rm9yPSgpPT4hMCxwYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHk9KGUsdCxyKT0+e2NvbnN0IG49V3IoZSkuZ2V0SW4oWyJwYXRocyIsLi4udCwicGFyYW1ldGVycyJdLCgwLFhlLk9yZGVyZWRNYXApKCkpLGE9ZS5nZXRJbihbIm1ldGEiLCJwYXRocyIsLi4udCwicGFyYW1ldGVycyJdLCgwLFhlLk9yZGVyZWRNYXApKCkpO3JldHVybiBuLm1hcCgoZT0+e2NvbnN0IHQ9YS5nZXQoYCR7ci5nZXQoImluIil9LiR7ci5nZXQoIm5hbWUiKX1gKSxuPWEuZ2V0KGAke3IuZ2V0KCJpbiIpfS4ke3IuZ2V0KCJuYW1lIil9Lmhhc2gtJHtyLmhhc2hDb2RlKCl9YCk7cmV0dXJuKDAsWGUuT3JkZXJlZE1hcCkoKS5tZXJnZShlLHQsbil9KSkuZmluZCgoZT0+ZS5nZXQoImluIik9PT1yLmdldCgiaW4iKSYmZS5nZXQoIm5hbWUiKT09PXIuZ2V0KCJuYW1lIikpLCgwLFhlLk9yZGVyZWRNYXApKCkpfSxwYXJhbWV0ZXJJbmNsdXNpb25TZXR0aW5nRm9yPShlLHQscixuKT0+e2NvbnN0IGE9YCR7bn0uJHtyfWA7cmV0dXJuIGUuZ2V0SW4oWyJtZXRhIiwicGF0aHMiLC4uLnQsInBhcmFtZXRlcl9pbmNsdXNpb25zIixhXSwhMSl9LHBhcmFtZXRlcldpdGhNZXRhPShlLHQscixuKT0+e2NvbnN0IGE9V3IoZSkuZ2V0SW4oWyJwYXRocyIsLi4udCwicGFyYW1ldGVycyJdLCgwLFhlLk9yZGVyZWRNYXApKCkpLmZpbmQoKGU9PmUuZ2V0KCJpbiIpPT09biYmZS5nZXQoIm5hbWUiKT09PXIpLCgwLFhlLk9yZGVyZWRNYXApKCkpO3JldHVybiBwYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkoZSx0LGEpfSxvcGVyYXRpb25XaXRoTWV0YT0oZSx0LHIpPT57Y29uc3Qgbj1XcihlKS5nZXRJbihbInBhdGhzIix0LHJdLCgwLFhlLk9yZGVyZWRNYXApKCkpLGE9ZS5nZXRJbihbIm1ldGEiLCJwYXRocyIsdCxyXSwoMCxYZS5PcmRlcmVkTWFwKSgpKSxvPW4uZ2V0KCJwYXJhbWV0ZXJzIiwoMCxYZS5MaXN0KSgpKS5tYXAoKG49PnBhcmFtZXRlcldpdGhNZXRhQnlJZGVudGl0eShlLFt0LHJdLG4pKSk7cmV0dXJuKDAsWGUuT3JkZXJlZE1hcCkoKS5tZXJnZShuLGEpLnNldCgicGFyYW1ldGVycyIsbyl9O2Z1bmN0aW9uIGdldFBhcmFtZXRlcihlLHQscixuKXtyZXR1cm4gdD10fHxbXSxlLmdldEluKFsibWV0YSIsInBhdGhzIiwuLi50LCJwYXJhbWV0ZXJzIl0sKDAsWGUuZnJvbUpTKShbXSkpLmZpbmQoKGU9PlhlLk1hcC5pc01hcChlKSYmZS5nZXQoIm5hbWUiKT09PXImJmUuZ2V0KCJpbiIpPT09bikpfHwoMCxYZS5NYXApKCl9Y29uc3QgeW49KDAsUHQuY3JlYXRlU2VsZWN0b3IpKHNwZWMsKGU9Pntjb25zdCB0PWUuZ2V0KCJob3N0Iik7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiZ0Lmxlbmd0aD4wJiYiLyIhPT10WzBdfSkpO2Z1bmN0aW9uIHBhcmFtZXRlclZhbHVlcyhlLHQscil7cmV0dXJuIHQ9dHx8W10sb3BlcmF0aW9uV2l0aE1ldGEoZSwuLi50KS5nZXQoInBhcmFtZXRlcnMiLCgwLFhlLkxpc3QpKCkpLnJlZHVjZSgoKGUsdCk9PntsZXQgbj1yJiYiYm9keSI9PT10LmdldCgiaW4iKT90LmdldCgidmFsdWVfeG1sIik6dC5nZXQoInZhbHVlIik7cmV0dXJuIFhlLkxpc3QuaXNMaXN0KG4pJiYobj1uLmZpbHRlcigoZT0+IiIhPT1lKSkpLGUuc2V0KHBhcmFtVG9JZGVudGlmaWVyKHQse2FsbG93SGFzaGVzOiExfSksbil9KSwoMCxYZS5mcm9tSlMpKHt9KSl9ZnVuY3Rpb24gcGFyYW1ldGVyc0luY2x1ZGVJbihlLHQ9IiIpe2lmKFhlLkxpc3QuaXNMaXN0KGUpKXJldHVybiBlLnNvbWUoKGU9PlhlLk1hcC5pc01hcChlKSYmZS5nZXQoImluIik9PT10KSl9ZnVuY3Rpb24gcGFyYW1ldGVyc0luY2x1ZGVUeXBlKGUsdD0iIil7aWYoWGUuTGlzdC5pc0xpc3QoZSkpcmV0dXJuIGUuc29tZSgoZT0+WGUuTWFwLmlzTWFwKGUpJiZlLmdldCgidHlwZSIpPT09dCkpfWZ1bmN0aW9uIGNvbnRlbnRUeXBlVmFsdWVzKGUsdCl7dD10fHxbXTtsZXQgcj1XcihlKS5nZXRJbihbInBhdGhzIiwuLi50XSwoMCxYZS5mcm9tSlMpKHt9KSksbj1lLmdldEluKFsibWV0YSIsInBhdGhzIiwuLi50XSwoMCxYZS5mcm9tSlMpKHt9KSksYT1jdXJyZW50UHJvZHVjZXNGb3IoZSx0KTtjb25zdCBvPXIuZ2V0KCJwYXJhbWV0ZXJzIil8fG5ldyBYZS5MaXN0LHM9bi5nZXQoImNvbnN1bWVzX3ZhbHVlIik/bi5nZXQoImNvbnN1bWVzX3ZhbHVlIik6cGFyYW1ldGVyc0luY2x1ZGVUeXBlKG8sImZpbGUiKT8ibXVsdGlwYXJ0L2Zvcm0tZGF0YSI6cGFyYW1ldGVyc0luY2x1ZGVUeXBlKG8sImZvcm1EYXRhIik/ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCI6dm9pZCAwO3JldHVybigwLFhlLmZyb21KUykoe3JlcXVlc3RDb250ZW50VHlwZTpzLHJlc3BvbnNlQ29udGVudFR5cGU6YX0pfWZ1bmN0aW9uIGN1cnJlbnRQcm9kdWNlc0ZvcihlLHQpe3Q9dHx8W107Y29uc3Qgcj1XcihlKS5nZXRJbihbInBhdGhzIiwuLi50XSxudWxsKTtpZihudWxsPT09cilyZXR1cm47Y29uc3Qgbj1lLmdldEluKFsibWV0YSIsInBhdGhzIiwuLi50LCJwcm9kdWNlc192YWx1ZSJdLG51bGwpLGE9ci5nZXRJbihbInByb2R1Y2VzIiwwXSxudWxsKTtyZXR1cm4gbnx8YXx8ImFwcGxpY2F0aW9uL2pzb24ifWZ1bmN0aW9uIHByb2R1Y2VzT3B0aW9uc0ZvcihlLHQpe3Q9dHx8W107Y29uc3Qgcj1XcihlKSxuPXIuZ2V0SW4oWyJwYXRocyIsLi4udF0sbnVsbCk7aWYobnVsbD09PW4pcmV0dXJuO2NvbnN0W2FdPXQsbz1uLmdldCgicHJvZHVjZXMiLG51bGwpLHM9ci5nZXRJbihbInBhdGhzIixhLCJwcm9kdWNlcyJdLG51bGwpLGw9ci5nZXRJbihbInByb2R1Y2VzIl0sbnVsbCk7cmV0dXJuIG98fHN8fGx9ZnVuY3Rpb24gY29uc3VtZXNPcHRpb25zRm9yKGUsdCl7dD10fHxbXTtjb25zdCByPVdyKGUpLG49ci5nZXRJbihbInBhdGhzIiwuLi50XSxudWxsKTtpZihudWxsPT09bilyZXR1cm47Y29uc3RbYV09dCxvPW4uZ2V0KCJjb25zdW1lcyIsbnVsbCkscz1yLmdldEluKFsicGF0aHMiLGEsImNvbnN1bWVzIl0sbnVsbCksbD1yLmdldEluKFsiY29uc3VtZXMiXSxudWxsKTtyZXR1cm4gb3x8c3x8bH1jb25zdCBvcGVyYXRpb25TY2hlbWU9KGUsdCxyKT0+e2xldCBuPWUuZ2V0KCJ1cmwiKS5tYXRjaCgvXihbYS16XVthLXowLTkrXC0uXSopOi8pLGE9QXJyYXkuaXNBcnJheShuKT9uWzFdOm51bGw7cmV0dXJuIGUuZ2V0SW4oWyJzY2hlbWUiLHQscl0pfHxlLmdldEluKFsic2NoZW1lIiwiX2RlZmF1bHRTY2hlbWUiXSl8fGF8fCIifSxjYW5FeGVjdXRlU2NoZW1lPShlLHQscik9PlsiaHR0cCIsImh0dHBzIl0uaW5kZXhPZihvcGVyYXRpb25TY2hlbWUoZSx0LHIpKT4tMSx2YWxpZGF0aW9uRXJyb3JzPShlLHQpPT57dD10fHxbXTtjb25zdCByPWUuZ2V0SW4oWyJtZXRhIiwicGF0aHMiLC4uLnQsInBhcmFtZXRlcnMiXSwoMCxYZS5mcm9tSlMpKFtdKSksbj1bXTtpZigwPT09ci5sZW5ndGgpcmV0dXJuIG47Y29uc3QgZ2V0RXJyb3JzV2l0aFBhdGhzPShlLHQ9W10pPT57Y29uc3QgZ2V0TmVzdGVkRXJyb3JzV2l0aFBhdGhzPShlLHQpPT57Y29uc3Qgcj1bLi4udCxlLmdldCgicHJvcEtleSIpfHxlLmdldCgiaW5kZXgiKV07cmV0dXJuIFhlLk1hcC5pc01hcChlLmdldCgiZXJyb3IiKSk/Z2V0RXJyb3JzV2l0aFBhdGhzKGUuZ2V0KCJlcnJvciIpLHIpOntlcnJvcjplLmdldCgiZXJyb3IiKSxwYXRoOnJ9fTtyZXR1cm4gWGUuTGlzdC5pc0xpc3QoZSk/ZS5tYXAoKGU9PlhlLk1hcC5pc01hcChlKT9nZXROZXN0ZWRFcnJvcnNXaXRoUGF0aHMoZSx0KTp7ZXJyb3I6ZSxwYXRoOnR9KSk6Z2V0TmVzdGVkRXJyb3JzV2l0aFBhdGhzKGUsdCl9O3JldHVybiByLmZvckVhY2goKChlLHQpPT57Y29uc3Qgcj10LnNwbGl0KCIuIikuc2xpY2UoMSwtMSkuam9pbigiLiIpLGE9ZS5nZXQoImVycm9ycyIpO2lmKGEmJmEuY291bnQoKSl7Z2V0RXJyb3JzV2l0aFBhdGhzKGEpLmZvckVhY2goKCh7ZXJyb3I6ZSxwYXRoOnR9KT0+e24ucHVzaCgoKGUsdCxyKT0+YEZvciAnJHtyfSckeyh0PXQucmVkdWNlKCgoZSx0KT0+Im51bWJlciI9PXR5cGVvZiB0P2Ake2V9WyR7dH1dYDplP2Ake2V9LiR7dH1gOnQpLCIiKSk/YCBhdCBwYXRoICcke3R9J2A6IiJ9OiAke2V9LmApKGUsdCxyKSl9KSl9fSkpLG59LHZhbGlkYXRlQmVmb3JlRXhlY3V0ZT0oZSx0KT0+MD09PXZhbGlkYXRpb25FcnJvcnMoZSx0KS5sZW5ndGgsZ2V0T0FTM1JlcXVpcmVkUmVxdWVzdEJvZHlDb250ZW50VHlwZT0oZSx0KT0+e2xldCByPXtyZXF1ZXN0Qm9keTohMSxyZXF1ZXN0Q29udGVudFR5cGU6e319LG49ZS5nZXRJbihbInJlc29sdmVkU3VidHJlZXMiLCJwYXRocyIsLi4udCwicmVxdWVzdEJvZHkiXSwoMCxYZS5mcm9tSlMpKFtdKSk7cmV0dXJuIG4uc2l6ZTwxfHwobi5nZXRJbihbInJlcXVpcmVkIl0pJiYoci5yZXF1ZXN0Qm9keT1uLmdldEluKFsicmVxdWlyZWQiXSkpLG4uZ2V0SW4oWyJjb250ZW50Il0pLmVudHJ5U2VxKCkuZm9yRWFjaCgoZT0+e2NvbnN0IHQ9ZVswXTtpZihlWzFdLmdldEluKFsic2NoZW1hIiwicmVxdWlyZWQiXSkpe2NvbnN0IG49ZVsxXS5nZXRJbihbInNjaGVtYSIsInJlcXVpcmVkIl0pLnRvSlMoKTtyLnJlcXVlc3RDb250ZW50VHlwZVt0XT1ufX0pKSkscn0saXNNZWRpYVR5cGVTY2hlbWFQcm9wZXJ0aWVzRXF1YWw9KGUsdCxyLG4pPT57aWYoKHJ8fG4pJiZyPT09bilyZXR1cm4hMDtsZXQgYT1lLmdldEluKFsicmVzb2x2ZWRTdWJ0cmVlcyIsInBhdGhzIiwuLi50LCJyZXF1ZXN0Qm9keSIsImNvbnRlbnQiXSwoMCxYZS5mcm9tSlMpKFtdKSk7aWYoYS5zaXplPDJ8fCFyfHwhbilyZXR1cm4hMTtsZXQgbz1hLmdldEluKFtyLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIl0sKDAsWGUuZnJvbUpTKShbXSkpLHM9YS5nZXRJbihbbiwic2NoZW1hIiwicHJvcGVydGllcyJdLCgwLFhlLmZyb21KUykoW10pKTtyZXR1cm4hIW8uZXF1YWxzKHMpfTtmdW5jdGlvbiByZXR1cm5TZWxmT3JOZXdNYXAoZSl7cmV0dXJuIFhlLk1hcC5pc01hcChlKT9lOm5ldyBYZS5NYXB9dmFyIEVuPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBCLmRlZmF1bHR9fSksU249ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LGUpLHR9KHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIE0uZGVmYXVsdH19KSxfbj1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gcS5kZWZhdWx0fX0pLHZuPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBMLmRlZmF1bHR9fSk7Y29uc3QgYm49InNwZWNfdXBkYXRlX3NwZWMiLHduPSJzcGVjX3VwZGF0ZV91cmwiLENuPSJzcGVjX3VwZGF0ZV9qc29uIix4bj0ic3BlY191cGRhdGVfcGFyYW0iLE9uPSJzcGVjX3VwZGF0ZV9lbXB0eV9wYXJhbV9pbmNsdXNpb24iLGtuPSJzcGVjX3ZhbGlkYXRlX3BhcmFtIixObj0ic3BlY19zZXRfcmVzcG9uc2UiLEFuPSJzcGVjX3NldF9yZXF1ZXN0IixJbj0ic3BlY19zZXRfbXV0YXRlZF9yZXF1ZXN0Iixqbj0ic3BlY19sb2dfcmVxdWVzdCIsUm49InNwZWNfY2xlYXJfcmVzcG9uc2UiLFRuPSJzcGVjX2NsZWFyX3JlcXVlc3QiLFBuPSJzcGVjX2NsZWFyX3ZhbGlkYXRlX3BhcmFtIixCbj0ic3BlY191cGRhdGVfb3BlcmF0aW9uX21ldGFfdmFsdWUiLE1uPSJzcGVjX3VwZGF0ZV9yZXNvbHZlZCIscW49InNwZWNfdXBkYXRlX3Jlc29sdmVkX3N1YnRyZWUiLExuPSJzZXRfc2NoZW1lIix0b1N0cj1lPT4oMCxFbi5kZWZhdWx0KShlKT9lOiIiO2Z1bmN0aW9uIHVwZGF0ZVNwZWMoZSl7Y29uc3QgdD10b1N0cihlKS5yZXBsYWNlKC9cdC9nLCIgICIpO2lmKCJzdHJpbmciPT10eXBlb2YgZSlyZXR1cm57dHlwZTpibixwYXlsb2FkOnR9fWZ1bmN0aW9uIHVwZGF0ZVJlc29sdmVkKGUpe3JldHVybnt0eXBlOk1uLHBheWxvYWQ6ZX19ZnVuY3Rpb24gdXBkYXRlVXJsKGUpe3JldHVybnt0eXBlOnduLHBheWxvYWQ6ZX19ZnVuY3Rpb24gdXBkYXRlSnNvblNwZWMoZSl7cmV0dXJue3R5cGU6Q24scGF5bG9hZDplfX1jb25zdCBwYXJzZVRvSnNvbj1lPT4oe3NwZWNBY3Rpb25zOnQsc3BlY1NlbGVjdG9yczpyLGVyckFjdGlvbnM6bn0pPT57bGV0e3NwZWNTdHI6YX09cixvPW51bGw7dHJ5e2U9ZXx8YSgpLG4uY2xlYXIoe3NvdXJjZToicGFyc2VyIn0pLG89SnQuZGVmYXVsdC5sb2FkKGUse3NjaGVtYTpKdC5KU09OX1NDSEVNQX0pfWNhdGNoKGUpe3JldHVybiBjb25zb2xlLmVycm9yKGUpLG4ubmV3U3BlY0Vycih7c291cmNlOiJwYXJzZXIiLGxldmVsOiJlcnJvciIsbWVzc2FnZTplLnJlYXNvbixsaW5lOmUubWFyayYmZS5tYXJrLmxpbmU/ZS5tYXJrLmxpbmUrMTp2b2lkIDB9KX1yZXR1cm4gbyYmIm9iamVjdCI9PXR5cGVvZiBvP3QudXBkYXRlSnNvblNwZWMobyk6dC51cGRhdGVKc29uU3BlYyh7fSl9O2xldCBVbj0hMTtjb25zdCByZXNvbHZlU3BlYz0oZSx0KT0+KHtzcGVjQWN0aW9uczpyLHNwZWNTZWxlY3RvcnM6bixlcnJBY3Rpb25zOmEsZm46e2ZldGNoOm8scmVzb2x2ZTpzLEFTVDpsPXt9fSxnZXRDb25maWdzOml9KT0+e1VufHwoY29uc29sZS53YXJuKCJzcGVjQWN0aW9ucy5yZXNvbHZlU3BlYyBpcyBkZXByZWNhdGVkIHNpbmNlIHYzLjEwLjAgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB2NC4wLjA7IHVzZSByZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlIGluc3RlYWQhIiksVW49ITApO2NvbnN0e21vZGVsUHJvcGVydHlNYWNybzpjLHBhcmFtZXRlck1hY3JvOnUscmVxdWVzdEludGVyY2VwdG9yOmQscmVzcG9uc2VJbnRlcmNlcHRvcjpwfT1pKCk7dm9pZCAwPT09ZSYmKGU9bi5zcGVjSnNvbigpKSx2b2lkIDA9PT10JiYodD1uLnVybCgpKTtsZXQgbT1sLmdldExpbmVOdW1iZXJGb3JQYXRoP2wuZ2V0TGluZU51bWJlckZvclBhdGg6KCk9Pnt9LGY9bi5zcGVjU3RyKCk7cmV0dXJuIHMoe2ZldGNoOm8sc3BlYzplLGJhc2VEb2M6U3RyaW5nKG5ldyBVUkwodCxkb2N1bWVudC5iYXNlVVJJKSksbW9kZWxQcm9wZXJ0eU1hY3JvOmMscGFyYW1ldGVyTWFjcm86dSxyZXF1ZXN0SW50ZXJjZXB0b3I6ZCxyZXNwb25zZUludGVyY2VwdG9yOnB9KS50aGVuKCgoe3NwZWM6ZSxlcnJvcnM6dH0pPT57aWYoYS5jbGVhcih7dHlwZToidGhyb3duIn0pLEFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoPjApe2xldCBlPXQubWFwKChlPT4oY29uc29sZS5lcnJvcihlKSxlLmxpbmU9ZS5mdWxsUGF0aD9tKGYsZS5mdWxsUGF0aCk6bnVsbCxlLnBhdGg9ZS5mdWxsUGF0aD9lLmZ1bGxQYXRoLmpvaW4oIi4iKTpudWxsLGUubGV2ZWw9ImVycm9yIixlLnR5cGU9InRocm93biIsZS5zb3VyY2U9InJlc29sdmVyIixPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwibWVzc2FnZSIse2VudW1lcmFibGU6ITAsdmFsdWU6ZS5tZXNzYWdlfSksZSkpKTthLm5ld1Rocm93bkVyckJhdGNoKGUpfXJldHVybiByLnVwZGF0ZVJlc29sdmVkKGUpfSkpfTtsZXQgRG49W107Y29uc3QgJG49KDAsU24uZGVmYXVsdCkoKCgpPT57Y29uc3QgZT1Ebi5yZWR1Y2UoKChlLHtwYXRoOnQsc3lzdGVtOnJ9KT0+KGUuaGFzKHIpfHxlLnNldChyLFtdKSxlLmdldChyKS5wdXNoKHQpLGUpKSxuZXcgTWFwKTtEbj1bXSxlLmZvckVhY2goKGFzeW5jKGUsdCk9PntpZighdClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJkZWJSZXNvbHZlU3VidHJlZXM6IGRvbid0IGhhdmUgYSBzeXN0ZW0gdG8gb3BlcmF0ZSBvbiwgYWJvcnRpbmcuIik7aWYoIXQuZm4ucmVzb2x2ZVN1YnRyZWUpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiRXJyb3I6IFN3YWdnZXItQ2xpZW50IGRpZCBub3QgcHJvdmlkZSBhIGByZXNvbHZlU3VidHJlZWAgbWV0aG9kLCBkb2luZyBub3RoaW5nLiIpO2NvbnN0e2VyckFjdGlvbnM6cixlcnJTZWxlY3RvcnM6bixmbjp7cmVzb2x2ZVN1YnRyZWU6YSxmZXRjaDpvLEFTVDpzPXt9fSxzcGVjU2VsZWN0b3JzOmwsc3BlY0FjdGlvbnM6aX09dCxjPXMuZ2V0TGluZU51bWJlckZvclBhdGg/PygwLExyLmRlZmF1bHQpKHZvaWQgMCksdT1sLnNwZWNTdHIoKSx7bW9kZWxQcm9wZXJ0eU1hY3JvOmQscGFyYW1ldGVyTWFjcm86cCxyZXF1ZXN0SW50ZXJjZXB0b3I6bSxyZXNwb25zZUludGVyY2VwdG9yOmZ9PXQuZ2V0Q29uZmlncygpO3RyeXtjb25zdCB0PWF3YWl0IGUucmVkdWNlKChhc3luYyhlLHQpPT57bGV0e3Jlc3VsdE1hcDpzLHNwZWNXaXRoQ3VycmVudFN1YnRyZWVzOml9PWF3YWl0IGU7Y29uc3R7ZXJyb3JzOmgsc3BlYzpnfT1hd2FpdCBhKGksdCx7YmFzZURvYzpTdHJpbmcobmV3IFVSTChsLnVybCgpLGRvY3VtZW50LmJhc2VVUkkpKSxtb2RlbFByb3BlcnR5TWFjcm86ZCxwYXJhbWV0ZXJNYWNybzpwLHJlcXVlc3RJbnRlcmNlcHRvcjptLHJlc3BvbnNlSW50ZXJjZXB0b3I6Zn0pO2lmKG4uYWxsRXJyb3JzKCkuc2l6ZSYmci5jbGVhckJ5KChlPT4idGhyb3duIiE9PWUuZ2V0KCJ0eXBlIil8fCJyZXNvbHZlciIhPT1lLmdldCgic291cmNlIil8fCFlLmdldCgiZnVsbFBhdGgiKT8uZXZlcnkoKChlLHIpPT5lPT09dFtyXXx8dm9pZCAwPT09dFtyXSkpKSksQXJyYXkuaXNBcnJheShoKSYmaC5sZW5ndGg+MCl7bGV0IGU9aC5tYXAoKGU9PihlLmxpbmU9ZS5mdWxsUGF0aD9jKHUsZS5mdWxsUGF0aCk6bnVsbCxlLnBhdGg9ZS5mdWxsUGF0aD9lLmZ1bGxQYXRoLmpvaW4oIi4iKTpudWxsLGUubGV2ZWw9ImVycm9yIixlLnR5cGU9InRocm93biIsZS5zb3VyY2U9InJlc29sdmVyIixPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwibWVzc2FnZSIse2VudW1lcmFibGU6ITAsdmFsdWU6ZS5tZXNzYWdlfSksZSkpKTtyLm5ld1Rocm93bkVyckJhdGNoKGUpfXJldHVybiBnJiZsLmlzT0FTMygpJiYiY29tcG9uZW50cyI9PT10WzBdJiYic2VjdXJpdHlTY2hlbWVzIj09PXRbMV0mJmF3YWl0IFByb21pc2UuYWxsKE9iamVjdC52YWx1ZXMoZykuZmlsdGVyKChlPT4ib3BlbklkQ29ubmVjdCI9PT1lPy50eXBlKSkubWFwKChhc3luYyBlPT57Y29uc3QgdD17dXJsOmUub3BlbklkQ29ubmVjdFVybCxyZXF1ZXN0SW50ZXJjZXB0b3I6bSxyZXNwb25zZUludGVyY2VwdG9yOmZ9O3RyeXtjb25zdCByPWF3YWl0IG8odCk7ciBpbnN0YW5jZW9mIEVycm9yfHxyLnN0YXR1cz49NDAwP2NvbnNvbGUuZXJyb3Ioci5zdGF0dXNUZXh0KyIgIit0LnVybCk6ZS5vcGVuSWRDb25uZWN0RGF0YT1KU09OLnBhcnNlKHIudGV4dCl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX19KSkpLCgwLF9uLmRlZmF1bHQpKHMsdCxnKSxpPSgwLHZuLmRlZmF1bHQpKHQsZyxpKSx7cmVzdWx0TWFwOnMsc3BlY1dpdGhDdXJyZW50U3VidHJlZXM6aX19KSxQcm9taXNlLnJlc29sdmUoe3Jlc3VsdE1hcDoobC5zcGVjUmVzb2x2ZWRTdWJ0cmVlKFtdKXx8KDAsWGUuTWFwKSgpKS50b0pTKCksc3BlY1dpdGhDdXJyZW50U3VidHJlZXM6bC5zcGVjSlMoKX0pKTtpLnVwZGF0ZVJlc29sdmVkU3VidHJlZShbXSx0LnJlc3VsdE1hcCl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX19KSl9KSwzNSkscmVxdWVzdFJlc29sdmVkU3VidHJlZT1lPT50PT57RG4uZmluZCgoKHtwYXRoOnIsc3lzdGVtOm59KT0+bj09PXQmJnIudG9TdHJpbmcoKT09PWUudG9TdHJpbmcoKSkpfHwoRG4ucHVzaCh7cGF0aDplLHN5c3RlbTp0fSksJG4oKSl9O2Z1bmN0aW9uIGNoYW5nZVBhcmFtKGUsdCxyLG4sYSl7cmV0dXJue3R5cGU6eG4scGF5bG9hZDp7cGF0aDplLHZhbHVlOm4scGFyYW1OYW1lOnQscGFyYW1JbjpyLGlzWG1sOmF9fX1mdW5jdGlvbiBjaGFuZ2VQYXJhbUJ5SWRlbnRpdHkoZSx0LHIsbil7cmV0dXJue3R5cGU6eG4scGF5bG9hZDp7cGF0aDplLHBhcmFtOnQsdmFsdWU6cixpc1htbDpufX19Y29uc3QgdXBkYXRlUmVzb2x2ZWRTdWJ0cmVlPShlLHQpPT4oe3R5cGU6cW4scGF5bG9hZDp7cGF0aDplLHZhbHVlOnR9fSksaW52YWxpZGF0ZVJlc29sdmVkU3VidHJlZUNhY2hlPSgpPT4oe3R5cGU6cW4scGF5bG9hZDp7cGF0aDpbXSx2YWx1ZTooMCxYZS5NYXApKCl9fSksdmFsaWRhdGVQYXJhbXM9KGUsdCk9Pih7dHlwZTprbixwYXlsb2FkOntwYXRoTWV0aG9kOmUsaXNPQVMzOnR9fSksdXBkYXRlRW1wdHlQYXJhbUluY2x1c2lvbj0oZSx0LHIsbik9Pih7dHlwZTpPbixwYXlsb2FkOntwYXRoTWV0aG9kOmUscGFyYW1OYW1lOnQscGFyYW1JbjpyLGluY2x1ZGVFbXB0eVZhbHVlOm59fSk7ZnVuY3Rpb24gY2xlYXJWYWxpZGF0ZVBhcmFtcyhlKXtyZXR1cm57dHlwZTpQbixwYXlsb2FkOntwYXRoTWV0aG9kOmV9fX1mdW5jdGlvbiBjaGFuZ2VDb25zdW1lc1ZhbHVlKGUsdCl7cmV0dXJue3R5cGU6Qm4scGF5bG9hZDp7cGF0aDplLHZhbHVlOnQsa2V5OiJjb25zdW1lc192YWx1ZSJ9fX1mdW5jdGlvbiBjaGFuZ2VQcm9kdWNlc1ZhbHVlKGUsdCl7cmV0dXJue3R5cGU6Qm4scGF5bG9hZDp7cGF0aDplLHZhbHVlOnQsa2V5OiJwcm9kdWNlc192YWx1ZSJ9fX1jb25zdCBzZXRSZXNwb25zZT0oZSx0LHIpPT4oe3BheWxvYWQ6e3BhdGg6ZSxtZXRob2Q6dCxyZXM6cn0sdHlwZTpObn0pLHNldFJlcXVlc3Q9KGUsdCxyKT0+KHtwYXlsb2FkOntwYXRoOmUsbWV0aG9kOnQscmVxOnJ9LHR5cGU6QW59KSxzZXRNdXRhdGVkUmVxdWVzdD0oZSx0LHIpPT4oe3BheWxvYWQ6e3BhdGg6ZSxtZXRob2Q6dCxyZXE6cn0sdHlwZTpJbn0pLGxvZ1JlcXVlc3Q9ZT0+KHtwYXlsb2FkOmUsdHlwZTpqbn0pLGV4ZWN1dGVSZXF1ZXN0PWU9Pih7Zm46dCxzcGVjQWN0aW9uczpyLHNwZWNTZWxlY3RvcnM6bixnZXRDb25maWdzOmEsb2FzM1NlbGVjdG9yczpvfSk9PntsZXR7cGF0aE5hbWU6cyxtZXRob2Q6bCxvcGVyYXRpb246aX09ZSx7cmVxdWVzdEludGVyY2VwdG9yOmMscmVzcG9uc2VJbnRlcmNlcHRvcjp1fT1hKCksZD1pLnRvSlMoKTtpZihpJiZpLmdldCgicGFyYW1ldGVycyIpJiZpLmdldCgicGFyYW1ldGVycyIpLmZpbHRlcigoZT0+ZSYmITA9PT1lLmdldCgiYWxsb3dFbXB0eVZhbHVlIikpKS5mb3JFYWNoKCh0PT57aWYobi5wYXJhbWV0ZXJJbmNsdXNpb25TZXR0aW5nRm9yKFtzLGxdLHQuZ2V0KCJuYW1lIiksdC5nZXQoImluIikpKXtlLnBhcmFtZXRlcnM9ZS5wYXJhbWV0ZXJzfHx7fTtjb25zdCByPXBhcmFtVG9WYWx1ZSh0LGUucGFyYW1ldGVycyk7KCFyfHxyJiYwPT09ci5zaXplKSYmKGUucGFyYW1ldGVyc1t0LmdldCgibmFtZSIpXT0iIil9fSkpLGUuY29udGV4dFVybD0oMCxPdC5kZWZhdWx0KShuLnVybCgpKS50b1N0cmluZygpLGQmJmQub3BlcmF0aW9uSWQ/ZS5vcGVyYXRpb25JZD1kLm9wZXJhdGlvbklkOmQmJnMmJmwmJihlLm9wZXJhdGlvbklkPXQub3BJZChkLHMsbCkpLG4uaXNPQVMzKCkpe2NvbnN0IHQ9YCR7c306JHtsfWA7ZS5zZXJ2ZXI9by5zZWxlY3RlZFNlcnZlcih0KXx8by5zZWxlY3RlZFNlcnZlcigpO2NvbnN0IHI9by5zZXJ2ZXJWYXJpYWJsZXMoe3NlcnZlcjplLnNlcnZlcixuYW1lc3BhY2U6dH0pLnRvSlMoKSxuPW8uc2VydmVyVmFyaWFibGVzKHtzZXJ2ZXI6ZS5zZXJ2ZXJ9KS50b0pTKCk7ZS5zZXJ2ZXJWYXJpYWJsZXM9T2JqZWN0LmtleXMocikubGVuZ3RoP3I6bixlLnJlcXVlc3RDb250ZW50VHlwZT1vLnJlcXVlc3RDb250ZW50VHlwZShzLGwpLGUucmVzcG9uc2VDb250ZW50VHlwZT1vLnJlc3BvbnNlQ29udGVudFR5cGUocyxsKXx8IiovKiI7Y29uc3QgYT1vLnJlcXVlc3RCb2R5VmFsdWUocyxsKSxpPW8ucmVxdWVzdEJvZHlJbmNsdXNpb25TZXR0aW5nKHMsbCk7YSYmYS50b0pTP2UucmVxdWVzdEJvZHk9YS5tYXAoKGU9PlhlLk1hcC5pc01hcChlKT9lLmdldCgidmFsdWUiKTplKSkuZmlsdGVyKCgoZSx0KT0+KEFycmF5LmlzQXJyYXkoZSk/MCE9PWUubGVuZ3RoOiFpc0VtcHR5VmFsdWUoZSkpfHxpLmdldCh0KSkpLnRvSlMoKTplLnJlcXVlc3RCb2R5PWF9bGV0IHA9T2JqZWN0LmFzc2lnbih7fSxlKTtwPXQuYnVpbGRSZXF1ZXN0KHApLHIuc2V0UmVxdWVzdChlLnBhdGhOYW1lLGUubWV0aG9kLHApO2UucmVxdWVzdEludGVyY2VwdG9yPWFzeW5jIHQ9PntsZXQgbj1hd2FpdCBjLmFwcGx5KHZvaWQgMCxbdF0pLGE9T2JqZWN0LmFzc2lnbih7fSxuKTtyZXR1cm4gci5zZXRNdXRhdGVkUmVxdWVzdChlLnBhdGhOYW1lLGUubWV0aG9kLGEpLG59LGUucmVzcG9uc2VJbnRlcmNlcHRvcj11O2NvbnN0IG09RGF0ZS5ub3coKTtyZXR1cm4gdC5leGVjdXRlKGUpLnRoZW4oKHQ9Pnt0LmR1cmF0aW9uPURhdGUubm93KCktbSxyLnNldFJlc3BvbnNlKGUucGF0aE5hbWUsZS5tZXRob2QsdCl9KSkuY2F0Y2goKHQ9PnsiRmFpbGVkIHRvIGZldGNoIj09PXQubWVzc2FnZSYmKHQubmFtZT0iIix0Lm1lc3NhZ2U9JyoqRmFpbGVkIHRvIGZldGNoLioqICBcbioqUG9zc2libGUgUmVhc29uczoqKiBcbiAgLSBDT1JTIFxuICAtIE5ldHdvcmsgRmFpbHVyZSBcbiAgLSBVUkwgc2NoZW1lIG11c3QgYmUgImh0dHAiIG9yICJodHRwcyIgZm9yIENPUlMgcmVxdWVzdC4nKSxyLnNldFJlc3BvbnNlKGUucGF0aE5hbWUsZS5tZXRob2Qse2Vycm9yOiEwLGVycjp0fSl9KSl9LGFjdGlvbnNfZXhlY3V0ZT0oe3BhdGg6ZSxtZXRob2Q6dCwuLi5yfT17fSk9Pm49PntsZXR7Zm46e2ZldGNoOmF9LHNwZWNTZWxlY3RvcnM6byxzcGVjQWN0aW9uczpzfT1uLGw9by5zcGVjSnNvbldpdGhSZXNvbHZlZFN1YnRyZWVzKCkudG9KUygpLGk9by5vcGVyYXRpb25TY2hlbWUoZSx0KSx7cmVxdWVzdENvbnRlbnRUeXBlOmMscmVzcG9uc2VDb250ZW50VHlwZTp1fT1vLmNvbnRlbnRUeXBlVmFsdWVzKFtlLHRdKS50b0pTKCksZD0veG1sL2kudGVzdChjKSxwPW8ucGFyYW1ldGVyVmFsdWVzKFtlLHRdLGQpLnRvSlMoKTtyZXR1cm4gcy5leGVjdXRlUmVxdWVzdCh7Li4ucixmZXRjaDphLHNwZWM6bCxwYXRoTmFtZTplLG1ldGhvZDp0LHBhcmFtZXRlcnM6cCxyZXF1ZXN0Q29udGVudFR5cGU6YyxzY2hlbWU6aSxyZXNwb25zZUNvbnRlbnRUeXBlOnV9KX07ZnVuY3Rpb24gY2xlYXJSZXNwb25zZShlLHQpe3JldHVybnt0eXBlOlJuLHBheWxvYWQ6e3BhdGg6ZSxtZXRob2Q6dH19fWZ1bmN0aW9uIGNsZWFyUmVxdWVzdChlLHQpe3JldHVybnt0eXBlOlRuLHBheWxvYWQ6e3BhdGg6ZSxtZXRob2Q6dH19fWZ1bmN0aW9uIHNldFNjaGVtZShlLHQscil7cmV0dXJue3R5cGU6TG4scGF5bG9hZDp7c2NoZW1lOmUscGF0aDp0LG1ldGhvZDpyfX19dmFyIFZuPXtbYm5dOihlLHQpPT4ic3RyaW5nIj09dHlwZW9mIHQucGF5bG9hZD9lLnNldCgic3BlYyIsdC5wYXlsb2FkKTplLFt3bl06KGUsdCk9PmUuc2V0KCJ1cmwiLHQucGF5bG9hZCsiIiksW0NuXTooZSx0KT0+ZS5zZXQoImpzb24iLGZyb21KU09yZGVyZWQodC5wYXlsb2FkKSksW01uXTooZSx0KT0+ZS5zZXRJbihbInJlc29sdmVkIl0sZnJvbUpTT3JkZXJlZCh0LnBheWxvYWQpKSxbcW5dOihlLHQpPT57Y29uc3R7dmFsdWU6cixwYXRoOm59PXQucGF5bG9hZDtyZXR1cm4gZS5zZXRJbihbInJlc29sdmVkU3VidHJlZXMiLC4uLm5dLGZyb21KU09yZGVyZWQocikpfSxbeG5dOihlLHtwYXlsb2FkOnR9KT0+e2xldHtwYXRoOnIscGFyYW1OYW1lOm4scGFyYW1JbjphLHBhcmFtOm8sdmFsdWU6cyxpc1htbDpsfT10LGk9bz9wYXJhbVRvSWRlbnRpZmllcihvKTpgJHthfS4ke259YDtjb25zdCBjPWw/InZhbHVlX3htbCI6InZhbHVlIjtyZXR1cm4gZS5zZXRJbihbIm1ldGEiLCJwYXRocyIsLi4uciwicGFyYW1ldGVycyIsaSxjXSwoMCxYZS5mcm9tSlMpKHMpKX0sW09uXTooZSx7cGF5bG9hZDp0fSk9PntsZXR7cGF0aE1ldGhvZDpyLHBhcmFtTmFtZTpuLHBhcmFtSW46YSxpbmNsdWRlRW1wdHlWYWx1ZTpvfT10O2lmKCFufHwhYSlyZXR1cm4gY29uc29sZS53YXJuKCJXYXJuaW5nOiBVUERBVEVfRU1QVFlfUEFSQU1fSU5DTFVTSU9OIGNvdWxkIG5vdCBnZW5lcmF0ZSBhIHBhcmFtS2V5LiIpLGU7Y29uc3Qgcz1gJHthfS4ke259YDtyZXR1cm4gZS5zZXRJbihbIm1ldGEiLCJwYXRocyIsLi4uciwicGFyYW1ldGVyX2luY2x1c2lvbnMiLHNdLG8pfSxba25dOihlLHtwYXlsb2FkOntwYXRoTWV0aG9kOnQsaXNPQVMzOnJ9fSk9Pntjb25zdCBuPVdyKGUpLmdldEluKFsicGF0aHMiLC4uLnRdKSxhPXBhcmFtZXRlclZhbHVlcyhlLHQpLnRvSlMoKTtyZXR1cm4gZS51cGRhdGVJbihbIm1ldGEiLCJwYXRocyIsLi4udCwicGFyYW1ldGVycyJdLCgwLFhlLmZyb21KUykoe30pLChvPT5uLmdldCgicGFyYW1ldGVycyIsKDAsWGUuTGlzdCkoKSkucmVkdWNlKCgobixvKT0+e2NvbnN0IHM9cGFyYW1Ub1ZhbHVlKG8sYSksbD1wYXJhbWV0ZXJJbmNsdXNpb25TZXR0aW5nRm9yKGUsdCxvLmdldCgibmFtZSIpLG8uZ2V0KCJpbiIpKSxpPSgoZSx0LHtpc09BUzM6cj0hMSxieXBhc3NSZXF1aXJlZENoZWNrOm49ITF9PXt9KT0+e2xldCBhPWUuZ2V0KCJyZXF1aXJlZCIpLHtzY2hlbWE6byxwYXJhbWV0ZXJDb250ZW50TWVkaWFUeXBlOnN9PWdldFBhcmFtZXRlclNjaGVtYShlLHtpc09BUzM6cn0pO3JldHVybiB2YWxpZGF0ZVZhbHVlQnlTY2hlbWEodCxvLGEsbixzKX0pKG8scyx7YnlwYXNzUmVxdWlyZWRDaGVjazpsLGlzT0FTMzpyfSk7cmV0dXJuIG4uc2V0SW4oW3BhcmFtVG9JZGVudGlmaWVyKG8pLCJlcnJvcnMiXSwoMCxYZS5mcm9tSlMpKGkpKX0pLG8pKSl9LFtQbl06KGUse3BheWxvYWQ6e3BhdGhNZXRob2Q6dH19KT0+ZS51cGRhdGVJbihbIm1ldGEiLCJwYXRocyIsLi4udCwicGFyYW1ldGVycyJdLCgwLFhlLmZyb21KUykoW10pLChlPT5lLm1hcCgoZT0+ZS5zZXQoImVycm9ycyIsKDAsWGUuZnJvbUpTKShbXSkpKSkpKSxbTm5dOihlLHtwYXlsb2FkOntyZXM6dCxwYXRoOnIsbWV0aG9kOm59fSk9PntsZXQgYTthPXQuZXJyb3I/T2JqZWN0LmFzc2lnbih7ZXJyb3I6ITAsbmFtZTp0LmVyci5uYW1lLG1lc3NhZ2U6dC5lcnIubWVzc2FnZSxzdGF0dXNDb2RlOnQuZXJyLnN0YXR1c0NvZGV9LHQuZXJyLnJlc3BvbnNlKTp0LGEuaGVhZGVycz1hLmhlYWRlcnN8fHt9O2xldCBvPWUuc2V0SW4oWyJyZXNwb25zZXMiLHIsbl0sZnJvbUpTT3JkZXJlZChhKSk7cmV0dXJuIGN0LkJsb2ImJmEuZGF0YSBpbnN0YW5jZW9mIGN0LkJsb2ImJihvPW8uc2V0SW4oWyJyZXNwb25zZXMiLHIsbiwidGV4dCJdLGEuZGF0YSkpLG99LFtBbl06KGUse3BheWxvYWQ6e3JlcTp0LHBhdGg6cixtZXRob2Q6bn19KT0+ZS5zZXRJbihbInJlcXVlc3RzIixyLG5dLGZyb21KU09yZGVyZWQodCkpLFtJbl06KGUse3BheWxvYWQ6e3JlcTp0LHBhdGg6cixtZXRob2Q6bn19KT0+ZS5zZXRJbihbIm11dGF0ZWRSZXF1ZXN0cyIscixuXSxmcm9tSlNPcmRlcmVkKHQpKSxbQm5dOihlLHtwYXlsb2FkOntwYXRoOnQsdmFsdWU6cixrZXk6bn19KT0+e2xldCBhPVsicGF0aHMiLC4uLnRdLG89WyJtZXRhIiwicGF0aHMiLC4uLnRdO3JldHVybiBlLmdldEluKFsianNvbiIsLi4uYV0pfHxlLmdldEluKFsicmVzb2x2ZWQiLC4uLmFdKXx8ZS5nZXRJbihbInJlc29sdmVkU3VidHJlZXMiLC4uLmFdKT9lLnNldEluKFsuLi5vLG5dLCgwLFhlLmZyb21KUykocikpOmV9LFtSbl06KGUse3BheWxvYWQ6e3BhdGg6dCxtZXRob2Q6cn19KT0+ZS5kZWxldGVJbihbInJlc3BvbnNlcyIsdCxyXSksW1RuXTooZSx7cGF5bG9hZDp7cGF0aDp0LG1ldGhvZDpyfX0pPT5lLmRlbGV0ZUluKFsicmVxdWVzdHMiLHQscl0pLFtMbl06KGUse3BheWxvYWQ6e3NjaGVtZTp0LHBhdGg6cixtZXRob2Q6bn19KT0+ciYmbj9lLnNldEluKFsic2NoZW1lIixyLG5dLHQpOnJ8fG4/dm9pZCAwOmUuc2V0SW4oWyJzY2hlbWUiLCJfZGVmYXVsdFNjaGVtZSJdLHQpfTtjb25zdCB3cmFwX2FjdGlvbnNfdXBkYXRlU3BlYz0oZSx7c3BlY0FjdGlvbnM6dH0pPT4oLi4ucik9PntlKC4uLnIpLHQucGFyc2VUb0pzb24oLi4ucil9LHdyYXBfYWN0aW9uc191cGRhdGVKc29uU3BlYz0oZSx7c3BlY0FjdGlvbnM6dH0pPT4oLi4ucik9PntlKC4uLnIpLHQuaW52YWxpZGF0ZVJlc29sdmVkU3VidHJlZUNhY2hlKCk7Y29uc3Rbbl09cixhPSgwLFp0LmRlZmF1bHQpKG4sWyJwYXRocyJdKXx8e307T2JqZWN0LmtleXMoYSkuZm9yRWFjaCgoZT0+e2NvbnN0IHI9KDAsWnQuZGVmYXVsdCkoYSxbZV0pOygwLENyLmRlZmF1bHQpKHIpJiZyLiRyZWYmJnQucmVxdWVzdFJlc29sdmVkU3VidHJlZShbInBhdGhzIixlXSl9KSksdC5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKFsiY29tcG9uZW50cyIsInNlY3VyaXR5U2NoZW1lcyJdKX0sd3JhcF9hY3Rpb25zX2V4ZWN1dGVSZXF1ZXN0PShlLHtzcGVjQWN0aW9uczp0fSk9PnI9Pih0LmxvZ1JlcXVlc3QociksZShyKSksd3JhcF9hY3Rpb25zX3ZhbGlkYXRlUGFyYW1zPShlLHtzcGVjU2VsZWN0b3JzOnR9KT0+cj0+ZShyLHQuaXNPQVMzKCkpO3ZhciBwbHVnaW5zX3NwZWM9KCk9Pih7c3RhdGVQbHVnaW5zOntzcGVjOnt3cmFwQWN0aW9uczp7Li4uJGV9LHJlZHVjZXJzOnsuLi5Wbn0sYWN0aW9uczp7Li4uRGV9LHNlbGVjdG9yczp7Li4uVWV9fX19KSxKbj1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gVS5kZWZhdWx0fX0pLEZuPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBELmRlZmF1bHR9fSksem49ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LGUpLHR9KHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuICQuZGVmYXVsdH19KSxLbj1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gVi5kZWZhdWx0fX0pLFduPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7bWFrZVJlc29sdmU6ZnVuY3Rpb24oKXtyZXR1cm4gSi5tYWtlUmVzb2x2ZX19KSxIbj1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2J1aWxkUmVxdWVzdDpmdW5jdGlvbigpe3JldHVybiBGLmJ1aWxkUmVxdWVzdH0sZXhlY3V0ZTpmdW5jdGlvbigpe3JldHVybiBGLmV4ZWN1dGV9fSksR249ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LGUpLHR9KHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIHouZGVmYXVsdH0sbWFrZUh0dHA6ZnVuY3Rpb24oKXtyZXR1cm4gei5tYWtlSHR0cH0sc2VyaWFsaXplUmVzOmZ1bmN0aW9uKCl7cmV0dXJuIHouc2VyaWFsaXplUmVzfX0pLFhuPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7bWFrZVJlc29sdmVTdWJ0cmVlOmZ1bmN0aW9uKCl7cmV0dXJuIEsubWFrZVJlc29sdmVTdWJ0cmVlfX0pLFluPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7b3BJZDpmdW5jdGlvbigpe3JldHVybiBXLm9wSWR9fSk7Y29uc3QgY29uZmlnc193cmFwX2FjdGlvbnNfbG9hZGVkPShlLHQpPT4oLi4ucik9PntlKC4uLnIpO2NvbnN0IG49dC5nZXRDb25maWdzKCkud2l0aENyZWRlbnRpYWxzO3QuZm4uZmV0Y2gud2l0aENyZWRlbnRpYWxzPW59O2Z1bmN0aW9uIHN3YWdnZXJfY2xpZW50KHtjb25maWdzOmUsZ2V0Q29uZmlnczp0fSl7cmV0dXJue2ZuOntmZXRjaDooMCxHbi5tYWtlSHR0cCkoR24uZGVmYXVsdCxlLnByZUZldGNoLGUucG9zdEZldGNoKSxidWlsZFJlcXVlc3Q6SG4uYnVpbGRSZXF1ZXN0LGV4ZWN1dGU6SG4uZXhlY3V0ZSxyZXNvbHZlOigwLFduLm1ha2VSZXNvbHZlKSh7c3RyYXRlZ2llczpbS24uZGVmYXVsdCx6bi5kZWZhdWx0LEZuLmRlZmF1bHQsSm4uZGVmYXVsdF19KSxyZXNvbHZlU3VidHJlZTphc3luYyhlLHIsbj17fSk9Pntjb25zdCBhPXQoKSxvPXttb2RlbFByb3BlcnR5TWFjcm86YS5tb2RlbFByb3BlcnR5TWFjcm8scGFyYW1ldGVyTWFjcm86YS5wYXJhbWV0ZXJNYWNybyxyZXF1ZXN0SW50ZXJjZXB0b3I6YS5yZXF1ZXN0SW50ZXJjZXB0b3IscmVzcG9uc2VJbnRlcmNlcHRvcjphLnJlc3BvbnNlSW50ZXJjZXB0b3Isc3RyYXRlZ2llczpbS24uZGVmYXVsdCx6bi5kZWZhdWx0LEZuLmRlZmF1bHQsSm4uZGVmYXVsdF19O3JldHVybigwLFhuLm1ha2VSZXNvbHZlU3VidHJlZSkobykoZSxyLG4pfSxzZXJpYWxpemVSZXM6R24uc2VyaWFsaXplUmVzLG9wSWQ6WW4ub3BJZH0sc3RhdGVQbHVnaW5zOntjb25maWdzOnt3cmFwQWN0aW9uczp7bG9hZGVkOmNvbmZpZ3Nfd3JhcF9hY3Rpb25zX2xvYWRlZH19fX19ZnVuY3Rpb24gdXRpbCgpe3JldHVybntmbjp7c2hhbGxvd0VxdWFsS2V5cyxzYW5pdGl6ZVVybH19fXZhciBRbj1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gSC5kZWZhdWx0fX0pLFpuPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7UHJvdmlkZXI6ZnVuY3Rpb24oKXtyZXR1cm4gRy5Qcm92aWRlcn0sY29ubmVjdDpmdW5jdGlvbigpe3JldHVybiBHLmNvbm5lY3R9fSksZWE9ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LGUpLHR9KHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIFguZGVmYXVsdH19KTtjb25zdCB3aXRoU3lzdGVtPWU9PnQ9Pntjb25zdHtmbjpyfT1lKCk7Y2xhc3MgV2l0aFN5c3RlbSBleHRlbmRzIEhlLkNvbXBvbmVudHtyZW5kZXIoKXtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHQsKDAsYXIuZGVmYXVsdCkoe30sZSgpLHRoaXMucHJvcHMsdGhpcy5jb250ZXh0KSl9fXJldHVybiBXaXRoU3lzdGVtLmRpc3BsYXlOYW1lPWBXaXRoU3lzdGVtKCR7ci5nZXREaXNwbGF5TmFtZSh0KX0pYCxXaXRoU3lzdGVtfSx3aXRoUm9vdD0oZSx0KT0+cj0+e2NvbnN0e2ZuOm59PWUoKTtjbGFzcyBXaXRoUm9vdCBleHRlbmRzIEhlLkNvbXBvbmVudHtyZW5kZXIoKXtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFpuLlByb3ZpZGVyLHtzdG9yZTp0fSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQociwoMCxhci5kZWZhdWx0KSh7fSx0aGlzLnByb3BzLHRoaXMuY29udGV4dCkpKX19cmV0dXJuIFdpdGhSb290LmRpc3BsYXlOYW1lPWBXaXRoUm9vdCgke24uZ2V0RGlzcGxheU5hbWUocil9KWAsV2l0aFJvb3R9LHdpdGhDb25uZWN0PShlLHQscik9PigwLEdlLmNvbXBvc2UpKHI/d2l0aFJvb3QoZSxyKTplYS5kZWZhdWx0LCgwLFpuLmNvbm5lY3QpKCgocixuKT0+e2NvbnN0IGE9ey4uLm4sLi4uZSgpfSxvPXQucHJvdG90eXBlPy5tYXBTdGF0ZVRvUHJvcHN8fChlPT4oe3N0YXRlOmV9KSk7cmV0dXJuIG8ocixhKX0pKSx3aXRoU3lzdGVtKGUpKSh0KSxoYW5kbGVQcm9wcz0oZSx0LHIsbik9Pntmb3IoY29uc3QgYSBpbiB0KXtjb25zdCBvPXRbYV07ImZ1bmN0aW9uIj09dHlwZW9mIG8mJm8oclthXSxuW2FdLGUoKSl9fSx3aXRoTWFwcGVkQ29udGFpbmVyPShlLHQscik9Pih0LG4pPT57Y29uc3R7Zm46YX09ZSgpLG89cih0LCJyb290Iik7Y2xhc3MgV2l0aE1hcHBlZENvbnRhaW5lciBleHRlbmRzIEhlLkNvbXBvbmVudHtjb25zdHJ1Y3Rvcih0LHIpe3N1cGVyKHQsciksaGFuZGxlUHJvcHMoZSxuLHQse30pfVVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHQpe2hhbmRsZVByb3BzKGUsbix0LHRoaXMucHJvcHMpfXJlbmRlcigpe2NvbnN0IGU9KDAsRHQuZGVmYXVsdCkodGhpcy5wcm9wcyxuP09iamVjdC5rZXlzKG4pOltdKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG8sZSl9fXJldHVybiBXaXRoTWFwcGVkQ29udGFpbmVyLmRpc3BsYXlOYW1lPWBXaXRoTWFwcGVkQ29udGFpbmVyKCR7YS5nZXREaXNwbGF5TmFtZShvKX0pYCxXaXRoTWFwcGVkQ29udGFpbmVyfSxyZW5kZXI9KGUsdCxyLG4pPT5hPT57Y29uc3Qgbz1yKGUsdCxuKSgiQXBwIiwicm9vdCIpLHtjcmVhdGVSb290OnN9PVFuLmRlZmF1bHQ7cyhhKS5yZW5kZXIoSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG8sbnVsbCkpfSxnZXRDb21wb25lbnQ9KGUsdCxyKT0+KG4sYSxvPXt9KT0+e2lmKCJzdHJpbmciIT10eXBlb2Ygbil0aHJvdyBuZXcgVHlwZUVycm9yKCJOZWVkIGEgc3RyaW5nLCB0byBmZXRjaCBhIGNvbXBvbmVudC4gV2FzIGdpdmVuIGEgIit0eXBlb2Ygbik7Y29uc3Qgcz1yKG4pO3JldHVybiBzP2E/InJvb3QiPT09YT93aXRoQ29ubmVjdChlLHMsdCgpKTp3aXRoQ29ubmVjdChlLHMpOnM6KG8uZmFpbFNpbGVudGx5fHxlKCkubG9nLndhcm4oIkNvdWxkIG5vdCBmaW5kIGNvbXBvbmVudDoiLG4pLG51bGwpfSxnZXREaXNwbGF5TmFtZT1lPT5lLmRpc3BsYXlOYW1lfHxlLm5hbWV8fCJDb21wb25lbnQiO3ZhciB2aWV3PSh7Z2V0Q29tcG9uZW50czplLGdldFN0b3JlOnQsZ2V0U3lzdGVtOnJ9KT0+e2NvbnN0IG49KGE9Z2V0Q29tcG9uZW50KHIsdCxlKSxDdChhLCgoLi4uZSk9PkpTT04uc3RyaW5naWZ5KGUpKSkpO3ZhciBhO2NvbnN0IG89KGU9PnV0aWxzX21lbW9pemVOKGUsKCguLi5lKT0+ZSkpKSh3aXRoTWFwcGVkQ29udGFpbmVyKHIsMCxuKSk7cmV0dXJue3Jvb3RJbmplY3RzOntnZXRDb21wb25lbnQ6bixtYWtlTWFwcGVkQ29udGFpbmVyOm8scmVuZGVyOnJlbmRlcihyLHQsZ2V0Q29tcG9uZW50LGUpfSxmbjp7Z2V0RGlzcGxheU5hbWV9fX07dmFyIHZpZXdfbGVnYWN5PSh7UmVhY3Q6ZSxnZXRTeXN0ZW06dCxnZXRTdG9yZTpyLGdldENvbXBvbmVudHM6bn0pPT57Y29uc3QgYT17fSxvPXBhcnNlSW50KGU/LnZlcnNpb24sMTApO3JldHVybiBvPj0xNiYmbzwxOCYmKGEucmVuZGVyPSgoZSx0LHIsbik9PmE9Pntjb25zdCBvPXIoZSx0LG4pKCJBcHAiLCJyb290Iik7UW4uZGVmYXVsdC5yZW5kZXIoSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG8sbnVsbCksYSl9KSh0LHIsZ2V0Q29tcG9uZW50LG4pKSx7cm9vdEluamVjdHM6YX19O2Z1bmN0aW9uIGRvd25sb2FkVXJsUGx1Z2luKGUpe2xldHtmbjp0fT1lO2NvbnN0IHI9e2Rvd25sb2FkOmU9Pih7ZXJyQWN0aW9uczpyLHNwZWNTZWxlY3RvcnM6bixzcGVjQWN0aW9uczphLGdldENvbmZpZ3M6b30pPT57bGV0e2ZldGNoOnN9PXQ7Y29uc3QgbD1vKCk7ZnVuY3Rpb24gbmV4dCh0KXtpZih0IGluc3RhbmNlb2YgRXJyb3J8fHQuc3RhdHVzPj00MDApcmV0dXJuIGEudXBkYXRlTG9hZGluZ1N0YXR1cygiZmFpbGVkIiksci5uZXdUaHJvd25FcnIoT2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoKHQubWVzc2FnZXx8dC5zdGF0dXNUZXh0KSsiICIrZSkse3NvdXJjZToiZmV0Y2gifSkpLHZvaWQoIXQuc3RhdHVzJiZ0IGluc3RhbmNlb2YgRXJyb3ImJmZ1bmN0aW9uIGNoZWNrUG9zc2libGVGYWlsUmVhc29ucygpe3RyeXtsZXQgdDtpZigiVVJMImluIGN0P3Q9bmV3IFVSTChlKToodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksdC5ocmVmPWUpLCJodHRwczoiIT09dC5wcm90b2NvbCYmImh0dHBzOiI9PT1jdC5sb2NhdGlvbi5wcm90b2NvbCl7Y29uc3QgZT1PYmplY3QuYXNzaWduKG5ldyBFcnJvcihgUG9zc2libGUgbWl4ZWQtY29udGVudCBpc3N1ZT8gVGhlIHBhZ2Ugd2FzIGxvYWRlZCBvdmVyIGh0dHBzOi8vIGJ1dCBhICR7dC5wcm90b2NvbH0vLyBVUkwgd2FzIHNwZWNpZmllZC4gQ2hlY2sgdGhhdCB5b3UgYXJlIG5vdCBhdHRlbXB0aW5nIHRvIGxvYWQgbWl4ZWQgY29udGVudC5gKSx7c291cmNlOiJmZXRjaCJ9KTtyZXR1cm4gdm9pZCByLm5ld1Rocm93bkVycihlKX1pZih0Lm9yaWdpbiE9PWN0LmxvY2F0aW9uLm9yaWdpbil7Y29uc3QgZT1PYmplY3QuYXNzaWduKG5ldyBFcnJvcihgUG9zc2libGUgY3Jvc3Mtb3JpZ2luIChDT1JTKSBpc3N1ZT8gVGhlIFVSTCBvcmlnaW4gKCR7dC5vcmlnaW59KSBkb2VzIG5vdCBtYXRjaCB0aGUgcGFnZSAoJHtjdC5sb2NhdGlvbi5vcmlnaW59KS4gQ2hlY2sgdGhlIHNlcnZlciByZXR1cm5zIHRoZSBjb3JyZWN0ICdBY2Nlc3MtQ29udHJvbC1BbGxvdy0qJyBoZWFkZXJzLmApLHtzb3VyY2U6ImZldGNoIn0pO3IubmV3VGhyb3duRXJyKGUpfX1jYXRjaChlKXtyZXR1cm59fSgpKTthLnVwZGF0ZUxvYWRpbmdTdGF0dXMoInN1Y2Nlc3MiKSxhLnVwZGF0ZVNwZWModC50ZXh0KSxuLnVybCgpIT09ZSYmYS51cGRhdGVVcmwoZSl9ZT1lfHxuLnVybCgpLGEudXBkYXRlTG9hZGluZ1N0YXR1cygibG9hZGluZyIpLHIuY2xlYXIoe3NvdXJjZToiZmV0Y2gifSkscyh7dXJsOmUsbG9hZFNwZWM6ITAscmVxdWVzdEludGVyY2VwdG9yOmwucmVxdWVzdEludGVyY2VwdG9yfHwoZT0+ZSkscmVzcG9uc2VJbnRlcmNlcHRvcjpsLnJlc3BvbnNlSW50ZXJjZXB0b3J8fChlPT5lKSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwqLyoifX0pLnRoZW4obmV4dCxuZXh0KX0sdXBkYXRlTG9hZGluZ1N0YXR1czplPT57bGV0IHQ9W251bGwsImxvYWRpbmciLCJmYWlsZWQiLCJzdWNjZXNzIiwiZmFpbGVkQ29uZmlnIl07cmV0dXJuLTE9PT10LmluZGV4T2YoZSkmJmNvbnNvbGUuZXJyb3IoYEVycm9yOiAke2V9IGlzIG5vdCBvbmUgb2YgJHtKU09OLnN0cmluZ2lmeSh0KX1gKSx7dHlwZToic3BlY191cGRhdGVfbG9hZGluZ19zdGF0dXMiLHBheWxvYWQ6ZX19fTtsZXQgbj17bG9hZGluZ1N0YXR1czooMCxQdC5jcmVhdGVTZWxlY3RvcikoKGU9PmV8fCgwLFhlLk1hcCkoKSksKGU9PmUuZ2V0KCJsb2FkaW5nU3RhdHVzIil8fG51bGwpKX07cmV0dXJue3N0YXRlUGx1Z2luczp7c3BlYzp7YWN0aW9uczpyLHJlZHVjZXJzOntzcGVjX3VwZGF0ZV9sb2FkaW5nX3N0YXR1czooZSx0KT0+InN0cmluZyI9PXR5cGVvZiB0LnBheWxvYWQ/ZS5zZXQoImxvYWRpbmdTdGF0dXMiLHQucGF5bG9hZCk6ZX0sc2VsZWN0b3JzOm59fX19dmFyIHRhPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBZLmRlZmF1bHR9fSkscmE9ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LGUpLHR9KHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIFEuZGVmYXVsdH19KSxuYT1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5kZWZhdWx0fX0pLGFhPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBlZS5kZWZhdWx0fX0pLG9hPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiB0ZS5kZWZhdWx0fX0pLHNhPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiByZS5kZWZhdWx0fX0pLGxhPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBuZS5kZWZhdWx0fX0pLGlhPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBhZS5kZWZhdWx0fX0pO3ZhciBhZnRlcl9sb2FkPSgpPT57dGEuZGVmYXVsdC5yZWdpc3Rlckxhbmd1YWdlKCJqc29uIixuYS5kZWZhdWx0KSx0YS5kZWZhdWx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImpzIixyYS5kZWZhdWx0KSx0YS5kZWZhdWx0LnJlZ2lzdGVyTGFuZ3VhZ2UoInhtbCIsYWEuZGVmYXVsdCksdGEuZGVmYXVsdC5yZWdpc3Rlckxhbmd1YWdlKCJ5YW1sIixzYS5kZWZhdWx0KSx0YS5kZWZhdWx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImh0dHAiLGxhLmRlZmF1bHQpLHRhLmRlZmF1bHQucmVnaXN0ZXJMYW5ndWFnZSgiYmFzaCIsb2EuZGVmYXVsdCksdGEuZGVmYXVsdC5yZWdpc3Rlckxhbmd1YWdlKCJwb3dlcnNoZWxsIixpYS5kZWZhdWx0KSx0YS5kZWZhdWx0LnJlZ2lzdGVyTGFuZ3VhZ2UoImphdmFzY3JpcHQiLHJhLmRlZmF1bHQpfSxjYT1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gb2UuZGVmYXVsdH19KSx1YT1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gc2UuZGVmYXVsdH19KSxkYT1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gbGUuZGVmYXVsdH19KSxwYT1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gaWUuZGVmYXVsdH19KSxtYT1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gY2UuZGVmYXVsdH19KSxmYT1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdWUuZGVmYXVsdH19KSxoYT1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gZGUuZGVmYXVsdH19KTtjb25zdCBnYT17YWdhdGU6Y2EuZGVmYXVsdCxhcnRhOnVhLmRlZmF1bHQsbW9ub2thaTpkYS5kZWZhdWx0LG5vcmQ6cGEuZGVmYXVsdCxvYnNpZGlhbjptYS5kZWZhdWx0LCJ0b21vcnJvdy1uaWdodCI6ZmEuZGVmYXVsdCxpZGVhOmhhLmRlZmF1bHR9LHlhPWNhLmRlZmF1bHQ7dmFyIGNvbXBvbmVudHNfU3ludGF4SGlnaGxpZ2h0ZXI9KHtsYW5ndWFnZTplLGNsYXNzTmFtZTp0PSIiLGdldENvbmZpZ3M6cixzeW50YXhIaWdobGlnaHRpbmc6bj17fSxjaGlsZHJlbjphPSIifSk9Pntjb25zdCBvPXIoKS5zeW50YXhIaWdobGlnaHQudGhlbWUse3N0eWxlczpzLGRlZmF1bHRTdHlsZTpsfT1uLGk9cz8uW29dPz9sO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodGEuZGVmYXVsdCx7bGFuZ3VhZ2U6ZSxjbGFzc05hbWU6dCxzdHlsZTppfSxhKX0sRWE9ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LGUpLHR9KHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIHBlLmRlZmF1bHR9fSk7dmFyIGNvbXBvbmVudHNfSGlnaGxpZ2h0Q29kZT0oe2ZpbGVOYW1lOmU9InJlc3BvbnNlLnR4dCIsY2xhc3NOYW1lOnQsZG93bmxvYWRhYmxlOnIsZ2V0Q29tcG9uZW50Om4sY2FuQ29weTphLGxhbmd1YWdlOm8sY2hpbGRyZW46c30pPT57Y29uc3QgbD0oMCxIZS51c2VSZWYpKG51bGwpLGk9bigiU3ludGF4SGlnaGxpZ2h0ZXIiLCEwKSxoYW5kbGVQcmV2ZW50WVNjcm9sbGluZ0JleW9uZEVsZW1lbnQ9ZT0+e2NvbnN0e3RhcmdldDp0LGRlbHRhWTpyfT1lLHtzY3JvbGxIZWlnaHQ6bixvZmZzZXRIZWlnaHQ6YSxzY3JvbGxUb3A6b309dDtuPmEmJigwPT09byYmcjwwfHxhK28+PW4mJnI+MCkmJmUucHJldmVudERlZmF1bHQoKX07cmV0dXJuKDAsSGUudXNlRWZmZWN0KSgoKCk9Pntjb25zdCBlPUFycmF5LmZyb20obC5jdXJyZW50LmNoaWxkTm9kZXMpLmZpbHRlcigoZT0+ISFlLm5vZGVUeXBlJiZlLmNsYXNzTGlzdC5jb250YWlucygibWljcm9saWdodCIpKSk7cmV0dXJuIGUuZm9yRWFjaCgoZT0+ZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXdoZWVsIixoYW5kbGVQcmV2ZW50WVNjcm9sbGluZ0JleW9uZEVsZW1lbnQse3Bhc3NpdmU6ITF9KSkpLCgpPT57ZS5mb3JFYWNoKChlPT5lLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNld2hlZWwiLGhhbmRsZVByZXZlbnRZU2Nyb2xsaW5nQmV5b25kRWxlbWVudCkpKX19KSxbcyx0LG9dKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaGlnaGxpZ2h0LWNvZGUiLHJlZjpsfSxhJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiY29weS10by1jbGlwYm9hcmQifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoZ3IuQ29weVRvQ2xpcGJvYXJkLHt0ZXh0OnN9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIixudWxsKSkpLHI/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtjbGFzc05hbWU6ImRvd25sb2FkLWNvbnRlbnRzIixvbkNsaWNrOigpPT57KDAsRWEuZGVmYXVsdCkocyxlKX19LCJEb3dubG9hZCIpOm51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGkse2xhbmd1YWdlOm8sY2xhc3NOYW1lOigwLGhyLmRlZmF1bHQpKHQsIm1pY3JvbGlnaHQiKSxyZW5kZXJQbGFpblRleHQ6KHtjaGlsZHJlbjplLFBsYWluVGV4dFZpZXdlcjpyfSk9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChyLHtjbGFzc05hbWU6dH0sZSl9LHMpKX07dmFyIGNvbXBvbmVudHNfUGxhaW5UZXh0Vmlld2VyPSh7Y2xhc3NOYW1lOmU9IiIsY2hpbGRyZW46dH0pPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInByZSIse2NsYXNzTmFtZTooMCxoci5kZWZhdWx0KSgibWljcm9saWdodCIsZSl9LHQpO3ZhciB3cmFwX2NvbXBvbmVudHNfU3ludGF4SGlnaGxpZ2h0ZXI9KGUsdCk9Pih7cmVuZGVyUGxhaW5UZXh0OnIsY2hpbGRyZW46biwuLi5hfSk9Pntjb25zdCBvPXQuZ2V0Q29uZmlncygpLnN5bnRheEhpZ2hsaWdodC5hY3RpdmF0ZWQscz10LmdldENvbXBvbmVudCgiUGxhaW5UZXh0Vmlld2VyIik7cmV0dXJuIG98fCJmdW5jdGlvbiIhPXR5cGVvZiByP28/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGUsYSxuKTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocyxudWxsLG4pOnIoe2NoaWxkcmVuOm4sUGxhaW5UZXh0Vmlld2VyOnN9KX07Y29uc3QgU3ludGF4SGlnaGxpZ2h0aW5nUGx1Z2luMT0oKT0+KHthZnRlckxvYWQ6YWZ0ZXJfbG9hZCxyb290SW5qZWN0czp7c3ludGF4SGlnaGxpZ2h0aW5nOntzdHlsZXM6Z2EsZGVmYXVsdFN0eWxlOnlhfX0sY29tcG9uZW50czp7U3ludGF4SGlnaGxpZ2h0ZXI6Y29tcG9uZW50c19TeW50YXhIaWdobGlnaHRlcixIaWdobGlnaHRDb2RlOmNvbXBvbmVudHNfSGlnaGxpZ2h0Q29kZSxQbGFpblRleHRWaWV3ZXI6Y29tcG9uZW50c19QbGFpblRleHRWaWV3ZXJ9fSksU3ludGF4SGlnaGxpZ2h0aW5nUGx1Z2luMj0oKT0+KHt3cmFwQ29tcG9uZW50czp7U3ludGF4SGlnaGxpZ2h0ZXI6d3JhcF9jb21wb25lbnRzX1N5bnRheEhpZ2hsaWdodGVyfX0pO3ZhciBzeW50YXhfaGlnaGxpZ2h0aW5nPSgpPT5bU3ludGF4SGlnaGxpZ2h0aW5nUGx1Z2luMSxTeW50YXhIaWdobGlnaHRpbmdQbHVnaW4yXTt2YXIgdmVyc2lvbnNfYWZ0ZXJfbG9hZD0oKT0+e2NvbnN0e0dJVF9ESVJUWTplLEdJVF9DT01NSVQ6dCxQQUNLQUdFX1ZFUlNJT046cixCVUlMRF9USU1FOm59PXtQQUNLQUdFX1ZFUlNJT046IjUuMjQuMiIsR0lUX0NPTU1JVDoiZ2Y3MTRhZmYxIixHSVRfRElSVFk6ITAsQlVJTERfVElNRToiTW9uLCAxNiBKdW4gMjAyNSAxMjo0OTowOCBHTVQifTtjdC52ZXJzaW9ucz1jdC52ZXJzaW9uc3x8e30sY3QudmVyc2lvbnMuc3dhZ2dlclVJPXt2ZXJzaW9uOnIsZ2l0UmV2aXNpb246dCxnaXREaXJ0eTplLGJ1aWxkVGltZXN0YW1wOm59fTt2YXIgdmVyc2lvbnM9KCk9Pih7YWZ0ZXJMb2FkOnZlcnNpb25zX2FmdGVyX2xvYWR9KSxTYT1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gbWUuZGVmYXVsdH19KTtjb25zdCBfYT1jb25zb2xlLmVycm9yLHdpdGhFcnJvckJvdW5kYXJ5PWU9PnQ9Pntjb25zdHtnZXRDb21wb25lbnQ6cixmbjpufT1lKCksYT1yKCJFcnJvckJvdW5kYXJ5Iiksbz1uLmdldERpc3BsYXlOYW1lKHQpO2NsYXNzIFdpdGhFcnJvckJvdW5kYXJ5IGV4dGVuZHMgSGUuQ29tcG9uZW50e3JlbmRlcigpe3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYSx7dGFyZ2V0TmFtZTpvLGdldENvbXBvbmVudDpyLGZuOm59LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh0LCgwLGFyLmRlZmF1bHQpKHt9LHRoaXMucHJvcHMsdGhpcy5jb250ZXh0KSkpfX12YXIgcztyZXR1cm4gV2l0aEVycm9yQm91bmRhcnkuZGlzcGxheU5hbWU9YFdpdGhFcnJvckJvdW5kYXJ5KCR7b30pYCwocz10KS5wcm90b3R5cGUmJnMucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQmJihXaXRoRXJyb3JCb3VuZGFyeS5wcm90b3R5cGUubWFwU3RhdGVUb1Byb3BzPXQucHJvdG90eXBlLm1hcFN0YXRlVG9Qcm9wcyksV2l0aEVycm9yQm91bmRhcnl9O3ZhciBmYWxsYmFjaz0oe25hbWU6ZX0pPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZmFsbGJhY2sifSwi8J+YsSAiLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaSIsbnVsbCwiQ291bGQgbm90IHJlbmRlciAiLCJ0Ij09PWU/InRoaXMgY29tcG9uZW50IjplLCIsIHNlZSB0aGUgY29uc29sZS4iKSk7Y2xhc3MgRXJyb3JCb3VuZGFyeSBleHRlbmRzIEhlLkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXt0YXJnZXROYW1lOiJ0aGlzIGNvbXBvbmVudCIsZ2V0Q29tcG9uZW50OigpPT5mYWxsYmFjayxmbjp7Y29tcG9uZW50RGlkQ2F0Y2g6X2F9LGNoaWxkcmVuOm51bGx9O3N0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoZSl7cmV0dXJue2hhc0Vycm9yOiEwLGVycm9yOmV9fWNvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMuc3RhdGU9e2hhc0Vycm9yOiExLGVycm9yOm51bGx9fWNvbXBvbmVudERpZENhdGNoKGUsdCl7dGhpcy5wcm9wcy5mbi5jb21wb25lbnREaWRDYXRjaChlLHQpfXJlbmRlcigpe2NvbnN0e2dldENvbXBvbmVudDplLHRhcmdldE5hbWU6dCxjaGlsZHJlbjpyfT10aGlzLnByb3BzO2lmKHRoaXMuc3RhdGUuaGFzRXJyb3Ipe2NvbnN0IHI9ZSgiRmFsbGJhY2siKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHIse25hbWU6dH0pfXJldHVybiByfX12YXIgdmE9RXJyb3JCb3VuZGFyeTt2YXIgc2FmZV9yZW5kZXI9KHtjb21wb25lbnRMaXN0OmU9W10sZnVsbE92ZXJyaWRlOnQ9ITF9PXt9KT0+KHtnZXRTeXN0ZW06cn0pPT57Y29uc3Qgbj10P2U6WyJBcHAiLCJCYXNlTGF5b3V0IiwiVmVyc2lvblByYWdtYUZpbHRlciIsIkluZm9Db250YWluZXIiLCJTZXJ2ZXJzQ29udGFpbmVyIiwiU2NoZW1lc0NvbnRhaW5lciIsIkF1dGhvcml6ZUJ0bkNvbnRhaW5lciIsIkZpbHRlckNvbnRhaW5lciIsIk9wZXJhdGlvbnMiLCJPcGVyYXRpb25Db250YWluZXIiLCJwYXJhbWV0ZXJzIiwicmVzcG9uc2VzIiwiT3BlcmF0aW9uU2VydmVycyIsIk1vZGVscyIsIk1vZGVsV3JhcHBlciIsLi4uZV0sYT0oMCxTYS5kZWZhdWx0KShuLEFycmF5KG4ubGVuZ3RoKS5maWxsKCgoZSx7Zm46dH0pPT50LndpdGhFcnJvckJvdW5kYXJ5KGUpKSkpO3JldHVybntmbjp7Y29tcG9uZW50RGlkQ2F0Y2g6X2Esd2l0aEVycm9yQm91bmRhcnk6d2l0aEVycm9yQm91bmRhcnkocil9LGNvbXBvbmVudHM6e0Vycm9yQm91bmRhcnk6dmEsRmFsbGJhY2s6ZmFsbGJhY2t9LHdyYXBDb21wb25lbnRzOmF9fTtjbGFzcyBBcHAgZXh0ZW5kcyBIZS5kZWZhdWx0LkNvbXBvbmVudHtnZXRMYXlvdXQoKXtjb25zdHtnZXRDb21wb25lbnQ6ZSxsYXlvdXRTZWxlY3RvcnM6dH09dGhpcy5wcm9wcyxyPXQuY3VycmVudCgpLG49ZShyLCEwKTtyZXR1cm4gbnx8KCgpPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImgxIixudWxsLCcgTm8gbGF5b3V0IGRlZmluZWQgZm9yICInLHIsJyIgJykpfXJlbmRlcigpe2NvbnN0IGU9dGhpcy5nZXRMYXlvdXQoKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGUsbnVsbCl9fXZhciBiYT1BcHA7Y2xhc3MgQXV0aG9yaXphdGlvblBvcHVwIGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7Y2xvc2U9KCk9PntsZXR7YXV0aEFjdGlvbnM6ZX09dGhpcy5wcm9wcztlLnNob3dEZWZpbml0aW9ucyghMSl9O3JlbmRlcigpe2xldHthdXRoU2VsZWN0b3JzOmUsYXV0aEFjdGlvbnM6dCxnZXRDb21wb25lbnQ6cixlcnJTZWxlY3RvcnM6bixzcGVjU2VsZWN0b3JzOmEsZm46e0FTVDpvPXt9fX09dGhpcy5wcm9wcyxzPWUuc2hvd25EZWZpbml0aW9ucygpO2NvbnN0IGw9cigiYXV0aHMiKSxpPXIoIkNsb3NlSWNvbiIpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZGlhbG9nLXV4In0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImJhY2tkcm9wLXV4In0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJtb2RhbC11eCJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJtb2RhbC1kaWFsb2ctdXgifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibW9kYWwtdXgtaW5uZXIifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibW9kYWwtdXgtaGVhZGVyIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJoMyIsbnVsbCwiQXZhaWxhYmxlIGF1dGhvcml6YXRpb25zIiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiY2xvc2UtbW9kYWwiLG9uQ2xpY2s6dGhpcy5jbG9zZX0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGksbnVsbCkpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibW9kYWwtdXgtY29udGVudCJ9LHMudmFsdWVTZXEoKS5tYXAoKChzLGkpPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobCx7a2V5OmksQVNUOm8sZGVmaW5pdGlvbnM6cyxnZXRDb21wb25lbnQ6cixlcnJTZWxlY3RvcnM6bixhdXRoU2VsZWN0b3JzOmUsYXV0aEFjdGlvbnM6dCxzcGVjU2VsZWN0b3JzOmF9KSkpKSkpKSl9fWNsYXNzIEF1dGhvcml6ZUJ0biBleHRlbmRzIEhlLmRlZmF1bHQuQ29tcG9uZW50e3JlbmRlcigpe2xldHtpc0F1dGhvcml6ZWQ6ZSxzaG93UG9wdXA6dCxvbkNsaWNrOnIsZ2V0Q29tcG9uZW50Om59PXRoaXMucHJvcHM7Y29uc3QgYT1uKCJhdXRob3JpemF0aW9uUG9wdXAiLCEwKSxvPW4oIkxvY2tBdXRoSWNvbiIsITApLHM9bigiVW5sb2NrQXV0aEljb24iLCEwKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImF1dGgtd3JhcHBlciJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7Y2xhc3NOYW1lOmU/ImJ0biBhdXRob3JpemUgbG9ja2VkIjoiYnRuIGF1dGhvcml6ZSB1bmxvY2tlZCIsb25DbGljazpyfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsIkF1dGhvcml6ZSIpLGU/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG8sbnVsbCk6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHMsbnVsbCkpLHQmJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChhLG51bGwpKX19Y2xhc3MgQXV0aG9yaXplQnRuQ29udGFpbmVyIGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7YXV0aEFjdGlvbnM6ZSxhdXRoU2VsZWN0b3JzOnQsc3BlY1NlbGVjdG9yczpyLGdldENvbXBvbmVudDpufT10aGlzLnByb3BzLGE9ci5zZWN1cml0eURlZmluaXRpb25zKCksbz10LmRlZmluaXRpb25zVG9BdXRob3JpemUoKSxzPW4oImF1dGhvcml6ZUJ0biIpO3JldHVybiBhP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChzLHtvbkNsaWNrOigpPT5lLnNob3dEZWZpbml0aW9ucyhvKSxpc0F1dGhvcml6ZWQ6ISF0LmF1dGhvcml6ZWQoKS5zaXplLHNob3dQb3B1cDohIXQuc2hvd25EZWZpbml0aW9ucygpLGdldENvbXBvbmVudDpufSk6bnVsbH19Y2xhc3MgQXV0aG9yaXplT3BlcmF0aW9uQnRuIGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7b25DbGljaz1lPT57ZS5zdG9wUHJvcGFnYXRpb24oKTtsZXR7b25DbGljazp0fT10aGlzLnByb3BzO3QmJnQoKX07cmVuZGVyKCl7bGV0e2lzQXV0aG9yaXplZDplLGdldENvbXBvbmVudDp0fT10aGlzLnByb3BzO2NvbnN0IHI9dCgiTG9ja0F1dGhPcGVyYXRpb25JY29uIiwhMCksbj10KCJVbmxvY2tBdXRoT3BlcmF0aW9uSWNvbiIsITApO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse2NsYXNzTmFtZToiYXV0aG9yaXphdGlvbl9fYnRuIiwiYXJpYS1sYWJlbCI6ZT8iYXV0aG9yaXphdGlvbiBidXR0b24gbG9ja2VkIjoiYXV0aG9yaXphdGlvbiBidXR0b24gdW5sb2NrZWQiLG9uQ2xpY2s6dGhpcy5vbkNsaWNrfSxlP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChyLHtjbGFzc05hbWU6ImxvY2tlZCJ9KTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobix7Y2xhc3NOYW1lOiJ1bmxvY2tlZCJ9KSl9fWNsYXNzIEF1dGhzIGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLHRoaXMuc3RhdGU9e319b25BdXRoQ2hhbmdlPWU9PntsZXR7bmFtZTp0fT1lO3RoaXMuc2V0U3RhdGUoe1t0XTplfSl9O3N1Ym1pdEF1dGg9ZT0+e2UucHJldmVudERlZmF1bHQoKTtsZXR7YXV0aEFjdGlvbnM6dH09dGhpcy5wcm9wczt0LmF1dGhvcml6ZVdpdGhQZXJzaXN0T3B0aW9uKHRoaXMuc3RhdGUpfTtsb2dvdXRDbGljaz1lPT57ZS5wcmV2ZW50RGVmYXVsdCgpO2xldHthdXRoQWN0aW9uczp0LGRlZmluaXRpb25zOnJ9PXRoaXMucHJvcHMsbj1yLm1hcCgoKGUsdCk9PnQpKS50b0FycmF5KCk7dGhpcy5zZXRTdGF0ZShuLnJlZHVjZSgoKGUsdCk9PihlW3RdPSIiLGUpKSx7fSkpLHQubG9nb3V0V2l0aFBlcnNpc3RPcHRpb24obil9O2Nsb3NlPWU9PntlLnByZXZlbnREZWZhdWx0KCk7bGV0e2F1dGhBY3Rpb25zOnR9PXRoaXMucHJvcHM7dC5zaG93RGVmaW5pdGlvbnMoITEpfTtyZW5kZXIoKXtsZXR7ZGVmaW5pdGlvbnM6ZSxnZXRDb21wb25lbnQ6dCxhdXRoU2VsZWN0b3JzOnIsZXJyU2VsZWN0b3JzOm59PXRoaXMucHJvcHM7Y29uc3QgYT10KCJBdXRoSXRlbSIpLG89dCgib2F1dGgyIiwhMCkscz10KCJCdXR0b24iKTtsZXQgbD1yLmF1dGhvcml6ZWQoKSxpPWUuZmlsdGVyKCgoZSx0KT0+ISFsLmdldCh0KSkpLGM9ZS5maWx0ZXIoKGU9PiJvYXV0aDIiIT09ZS5nZXQoInR5cGUiKSkpLHU9ZS5maWx0ZXIoKGU9PiJvYXV0aDIiPT09ZS5nZXQoInR5cGUiKSkpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiYXV0aC1jb250YWluZXIifSwhIWMuc2l6ZSYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJmb3JtIix7b25TdWJtaXQ6dGhpcy5zdWJtaXRBdXRofSxjLm1hcCgoKGUsbyk9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChhLHtrZXk6byxzY2hlbWE6ZSxuYW1lOm8sZ2V0Q29tcG9uZW50OnQsb25BdXRoQ2hhbmdlOnRoaXMub25BdXRoQ2hhbmdlLGF1dGhvcml6ZWQ6bCxlcnJTZWxlY3RvcnM6bixhdXRoU2VsZWN0b3JzOnJ9KSkpLnRvQXJyYXkoKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiYXV0aC1idG4td3JhcHBlciJ9LGMuc2l6ZT09PWkuc2l6ZT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocyx7Y2xhc3NOYW1lOiJidG4gbW9kYWwtYnRuIGF1dGgiLG9uQ2xpY2s6dGhpcy5sb2dvdXRDbGljaywiYXJpYS1sYWJlbCI6IlJlbW92ZSBhdXRob3JpemF0aW9uIn0sIkxvZ291dCIpOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChzLHt0eXBlOiJzdWJtaXQiLGNsYXNzTmFtZToiYnRuIG1vZGFsLWJ0biBhdXRoIGF1dGhvcml6ZSIsImFyaWEtbGFiZWwiOiJBcHBseSBjcmVkZW50aWFscyJ9LCJBdXRob3JpemUiKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocyx7Y2xhc3NOYW1lOiJidG4gbW9kYWwtYnRuIGF1dGggYnRuLWRvbmUiLG9uQ2xpY2s6dGhpcy5jbG9zZX0sIkNsb3NlIikpKSx1JiZ1LnNpemU/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InNjb3BlLWRlZiJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiU2NvcGVzIGFyZSB1c2VkIHRvIGdyYW50IGFuIGFwcGxpY2F0aW9uIGRpZmZlcmVudCBsZXZlbHMgb2YgYWNjZXNzIHRvIGRhdGEgb24gYmVoYWxmIG9mIHRoZSBlbmQgdXNlci4gRWFjaCBBUEkgbWF5IGRlY2xhcmUgb25lIG9yIG1vcmUgc2NvcGVzLiIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiQVBJIHJlcXVpcmVzIHRoZSBmb2xsb3dpbmcgc2NvcGVzLiBTZWxlY3Qgd2hpY2ggb25lcyB5b3Ugd2FudCB0byBncmFudCB0byBTd2FnZ2VyIFVJLiIpKSxlLmZpbHRlcigoZT0+Im9hdXRoMiI9PT1lLmdldCgidHlwZSIpKSkubWFwKCgoZSx0KT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6dH0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG8se2F1dGhvcml6ZWQ6bCxzY2hlbWE6ZSxuYW1lOnR9KSkpKS50b0FycmF5KCkpOm51bGwpfX1jbGFzcyBhdXRoX2l0ZW1fQXV0aHMgZXh0ZW5kcyBIZS5kZWZhdWx0LkNvbXBvbmVudHtyZW5kZXIoKXtsZXR7c2NoZW1hOmUsbmFtZTp0LGdldENvbXBvbmVudDpyLG9uQXV0aENoYW5nZTpuLGF1dGhvcml6ZWQ6YSxlcnJTZWxlY3RvcnM6byxhdXRoU2VsZWN0b3JzOnN9PXRoaXMucHJvcHM7Y29uc3QgbD1yKCJhcGlLZXlBdXRoIiksaT1yKCJiYXNpY0F1dGgiKTtsZXQgYztjb25zdCB1PWUuZ2V0KCJ0eXBlIik7c3dpdGNoKHUpe2Nhc2UiYXBpS2V5IjpjPUhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChsLHtrZXk6dCxzY2hlbWE6ZSxuYW1lOnQsZXJyU2VsZWN0b3JzOm8sYXV0aG9yaXplZDphLGdldENvbXBvbmVudDpyLG9uQ2hhbmdlOm4sYXV0aFNlbGVjdG9yczpzfSk7YnJlYWs7Y2FzZSJiYXNpYyI6Yz1IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoaSx7a2V5OnQsc2NoZW1hOmUsbmFtZTp0LGVyclNlbGVjdG9yczpvLGF1dGhvcml6ZWQ6YSxnZXRDb21wb25lbnQ6cixvbkNoYW5nZTpuLGF1dGhTZWxlY3RvcnM6c30pO2JyZWFrO2RlZmF1bHQ6Yz1IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleTp0fSwiVW5rbm93biBzZWN1cml0eSBkZWZpbml0aW9uIHR5cGUgIix1KX1yZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6YCR7dH0tanVtcGB9LGMpfX1jbGFzcyBBdXRoRXJyb3IgZXh0ZW5kcyBIZS5kZWZhdWx0LkNvbXBvbmVudHtyZW5kZXIoKXtsZXR7ZXJyb3I6ZX09dGhpcy5wcm9wcyx0PWUuZ2V0KCJsZXZlbCIpLHI9ZS5nZXQoIm1lc3NhZ2UiKSxuPWUuZ2V0KCJzb3VyY2UiKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImVycm9ycyJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiYiIsbnVsbCxuLCIgIix0KSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwscikpfX1jbGFzcyBBcGlLZXlBdXRoIGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpO2xldHtuYW1lOnIsc2NoZW1hOm59PXRoaXMucHJvcHMsYT10aGlzLmdldFZhbHVlKCk7dGhpcy5zdGF0ZT17bmFtZTpyLHNjaGVtYTpuLHZhbHVlOmF9fWdldFZhbHVlKCl7bGV0e25hbWU6ZSxhdXRob3JpemVkOnR9PXRoaXMucHJvcHM7cmV0dXJuIHQmJnQuZ2V0SW4oW2UsInZhbHVlIl0pfW9uQ2hhbmdlPWU9PntsZXR7b25DaGFuZ2U6dH09dGhpcy5wcm9wcyxyPWUudGFyZ2V0LnZhbHVlLG49T2JqZWN0LmFzc2lnbih7fSx0aGlzLnN0YXRlLHt2YWx1ZTpyfSk7dGhpcy5zZXRTdGF0ZShuKSx0KG4pfTtyZW5kZXIoKXtsZXR7c2NoZW1hOmUsZ2V0Q29tcG9uZW50OnQsZXJyU2VsZWN0b3JzOnIsbmFtZTpuLGF1dGhTZWxlY3RvcnM6YX09dGhpcy5wcm9wcztjb25zdCBvPXQoIklucHV0Iikscz10KCJSb3ciKSxsPXQoIkNvbCIpLGk9dCgiYXV0aEVycm9yIiksYz10KCJNYXJrZG93biIsITApLHU9dCgiSnVtcFRvUGF0aCIsITApLGQ9YS5zZWxlY3RBdXRoUGF0aChuKTtsZXQgcD10aGlzLmdldFZhbHVlKCksbT1yLmFsbEVycm9ycygpLmZpbHRlcigoZT0+ZS5nZXQoImF1dGhJZCIpPT09bikpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCxufHxlLmdldCgibmFtZSIpKSwiwqAoYXBpS2V5KSIsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHUse3BhdGg6ZH0pKSxwJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImg2IixudWxsLCJBdXRob3JpemVkIiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHMsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYyx7c291cmNlOmUuZ2V0KCJkZXNjcmlwdGlvbiIpfSkpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChzLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJOYW1lOiAiLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCxlLmdldCgibmFtZSIpKSkpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChzLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJJbjogIixIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsZS5nZXQoImluIikpKSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHMsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjoiYXBpX2tleV92YWx1ZSJ9LCJWYWx1ZToiKSxwP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwiICoqKioqKiAiKTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobCxudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChvLHtpZDoiYXBpX2tleV92YWx1ZSIsdHlwZToidGV4dCIsb25DaGFuZ2U6dGhpcy5vbkNoYW5nZSxhdXRvRm9jdXM6ITB9KSkpLG0udmFsdWVTZXEoKS5tYXAoKChlLHQpPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoaSx7ZXJyb3I6ZSxrZXk6dH0pKSkpfX1jbGFzcyBCYXNpY0F1dGggZXh0ZW5kcyBIZS5kZWZhdWx0LkNvbXBvbmVudHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCk7bGV0e3NjaGVtYTpyLG5hbWU6bn09dGhpcy5wcm9wcyxhPXRoaXMuZ2V0VmFsdWUoKS51c2VybmFtZTt0aGlzLnN0YXRlPXtuYW1lOm4sc2NoZW1hOnIsdmFsdWU6YT97dXNlcm5hbWU6YX06e319fWdldFZhbHVlKCl7bGV0e2F1dGhvcml6ZWQ6ZSxuYW1lOnR9PXRoaXMucHJvcHM7cmV0dXJuIGUmJmUuZ2V0SW4oW3QsInZhbHVlIl0pfHx7fX1vbkNoYW5nZT1lPT57bGV0e29uQ2hhbmdlOnR9PXRoaXMucHJvcHMse3ZhbHVlOnIsbmFtZTpufT1lLnRhcmdldCxhPXRoaXMuc3RhdGUudmFsdWU7YVtuXT1yLHRoaXMuc2V0U3RhdGUoe3ZhbHVlOmF9KSx0KHRoaXMuc3RhdGUpfTtyZW5kZXIoKXtsZXR7c2NoZW1hOmUsZ2V0Q29tcG9uZW50OnQsbmFtZTpyLGVyclNlbGVjdG9yczpuLGF1dGhTZWxlY3RvcnM6YX09dGhpcy5wcm9wcztjb25zdCBvPXQoIklucHV0Iikscz10KCJSb3ciKSxsPXQoIkNvbCIpLGk9dCgiYXV0aEVycm9yIiksYz10KCJKdW1wVG9QYXRoIiwhMCksdT10KCJNYXJrZG93biIsITApLGQ9YS5zZWxlY3RBdXRoUGF0aChyKTtsZXQgcD10aGlzLmdldFZhbHVlKCkudXNlcm5hbWUsbT1uLmFsbEVycm9ycygpLmZpbHRlcigoZT0+ZS5nZXQoImF1dGhJZCIpPT09cikpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLCJCYXNpYyBhdXRob3JpemF0aW9uIixIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYyx7cGF0aDpkfSkpLHAmJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDYiLG51bGwsIkF1dGhvcml6ZWQiKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocyxudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh1LHtzb3VyY2U6ZS5nZXQoImRlc2NyaXB0aW9uIil9KSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHMsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjoiYXV0aF91c2VybmFtZSJ9LCJVc2VybmFtZToiKSxwP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwiICIscCwiICIpOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChsLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG8se2lkOiJhdXRoX3VzZXJuYW1lIix0eXBlOiJ0ZXh0IixyZXF1aXJlZDoicmVxdWlyZWQiLG5hbWU6InVzZXJuYW1lIixvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlLGF1dG9Gb2N1czohMH0pKSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHMsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjoiYXV0aF9wYXNzd29yZCJ9LCJQYXNzd29yZDoiKSxwP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwiICoqKioqKiAiKTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobCxudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChvLHtpZDoiYXV0aF9wYXNzd29yZCIsYXV0b0NvbXBsZXRlOiJuZXctcGFzc3dvcmQiLG5hbWU6InBhc3N3b3JkIix0eXBlOiJwYXNzd29yZCIsb25DaGFuZ2U6dGhpcy5vbkNoYW5nZX0pKSksbS52YWx1ZVNlcSgpLm1hcCgoKGUsdCk9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChpLHtlcnJvcjplLGtleTp0fSkpKSl9fWZ1bmN0aW9uIEV4YW1wbGUoZSl7Y29uc3R7ZXhhbXBsZTp0LHNob3dWYWx1ZTpyLGdldENvbXBvbmVudDpufT1lLGE9bigiTWFya2Rvd24iLCEwKSxvPW4oIkhpZ2hsaWdodENvZGUiLCEwKTtyZXR1cm4gdCYmWGUuTWFwLmlzTWFwKHQpP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJleGFtcGxlIn0sdC5nZXQoImRlc2NyaXB0aW9uIik/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIix7Y2xhc3NOYW1lOiJleGFtcGxlX19zZWN0aW9uIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImV4YW1wbGVfX3NlY3Rpb24taGVhZGVyIn0sIkV4YW1wbGUgRGVzY3JpcHRpb24iKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGEse3NvdXJjZTp0LmdldCgiZGVzY3JpcHRpb24iKX0pKSk6bnVsbCxyJiZ0LmhhcygidmFsdWUiKT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24iLHtjbGFzc05hbWU6ImV4YW1wbGVfX3NlY3Rpb24ifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZXhhbXBsZV9fc2VjdGlvbi1oZWFkZXIifSwiRXhhbXBsZSBWYWx1ZSIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChvLG51bGwsc3RyaW5naWZ5KHQuZ2V0KCJ2YWx1ZSIpKSkpOm51bGwpOm51bGx9Y2xhc3MgRXhhbXBsZXNTZWxlY3QgZXh0ZW5kcyBIZS5kZWZhdWx0LlB1cmVDb21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17ZXhhbXBsZXM6KDAsWGUuTWFwKSh7fSksb25TZWxlY3Q6KC4uLmUpPT5jb25zb2xlLmxvZygiREVCVUc6IEV4YW1wbGVzU2VsZWN0IHdhcyBub3QgZ2l2ZW4gYW4gb25TZWxlY3QgY2FsbGJhY2siLC4uLmUpLGN1cnJlbnRFeGFtcGxlS2V5Om51bGwsc2hvd0xhYmVsczohMH07X29uU2VsZWN0PShlLHtpc1N5bnRoZXRpY0NoYW5nZTp0PSExfT17fSk9PnsiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5wcm9wcy5vblNlbGVjdCYmdGhpcy5wcm9wcy5vblNlbGVjdChlLHtpc1N5bnRoZXRpY0NoYW5nZTp0fSl9O19vbkRvbVNlbGVjdD1lPT57aWYoImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMucHJvcHMub25TZWxlY3Qpe2NvbnN0IHQ9ZS50YXJnZXQuc2VsZWN0ZWRPcHRpb25zWzBdLmdldEF0dHJpYnV0ZSgidmFsdWUiKTt0aGlzLl9vblNlbGVjdCh0LHtpc1N5bnRoZXRpY0NoYW5nZTohMX0pfX07Z2V0Q3VycmVudEV4YW1wbGU9KCk9Pntjb25zdHtleGFtcGxlczplLGN1cnJlbnRFeGFtcGxlS2V5OnR9PXRoaXMucHJvcHMscj1lLmdldCh0KSxuPWUua2V5U2VxKCkuZmlyc3QoKSxhPWUuZ2V0KG4pO3JldHVybiByfHxhfHwoMCxYZS5NYXApKHt9KX07Y29tcG9uZW50RGlkTW91bnQoKXtjb25zdHtvblNlbGVjdDplLGV4YW1wbGVzOnR9PXRoaXMucHJvcHM7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUpe2NvbnN0IGU9dC5maXJzdCgpLHI9dC5rZXlPZihlKTt0aGlzLl9vblNlbGVjdChyLHtpc1N5bnRoZXRpY0NoYW5nZTohMH0pfX1VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhlKXtjb25zdHtjdXJyZW50RXhhbXBsZUtleTp0LGV4YW1wbGVzOnJ9PWU7aWYociE9PXRoaXMucHJvcHMuZXhhbXBsZXMmJiFyLmhhcyh0KSl7Y29uc3QgZT1yLmZpcnN0KCksdD1yLmtleU9mKGUpO3RoaXMuX29uU2VsZWN0KHQse2lzU3ludGhldGljQ2hhbmdlOiEwfSl9fXJlbmRlcigpe2NvbnN0e2V4YW1wbGVzOmUsY3VycmVudEV4YW1wbGVLZXk6dCxpc1ZhbHVlTW9kaWZpZWQ6cixpc01vZGlmaWVkVmFsdWVBdmFpbGFibGU6bixzaG93TGFiZWxzOmF9PXRoaXMucHJvcHM7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJleGFtcGxlcy1zZWxlY3QifSxhP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiZXhhbXBsZXMtc2VsZWN0X19zZWN0aW9uLWxhYmVsIn0sIkV4YW1wbGVzOiAiKTpudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic2VsZWN0Iix7Y2xhc3NOYW1lOiJleGFtcGxlcy1zZWxlY3QtZWxlbWVudCIsb25DaGFuZ2U6dGhpcy5fb25Eb21TZWxlY3QsdmFsdWU6biYmcj8iX19NT0RJRklFRF9fVkFMVUVfXyI6dHx8IiJ9LG4/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJvcHRpb24iLHt2YWx1ZToiX19NT0RJRklFRF9fVkFMVUVfXyJ9LCJbTW9kaWZpZWQgdmFsdWVdIik6bnVsbCxlLm1hcCgoKGUsdCk9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgib3B0aW9uIix7a2V5OnQsdmFsdWU6dH0sWGUuTWFwLmlzTWFwKGUpJiZlLmdldCgic3VtbWFyeSIpfHx0KSkpLnZhbHVlU2VxKCkpKX19Y29uc3Qgc3RyaW5naWZ5VW5sZXNzTGlzdD1lPT5YZS5MaXN0LmlzTGlzdChlKT9lOnN0cmluZ2lmeShlKTtjbGFzcyBFeGFtcGxlc1NlbGVjdFZhbHVlUmV0YWluZXIgZXh0ZW5kcyBIZS5kZWZhdWx0LlB1cmVDb21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17dXNlckhhc0VkaXRlZEJvZHk6ITEsZXhhbXBsZXM6KDAsWGUuTWFwKSh7fSksY3VycmVudE5hbWVzcGFjZToiX19ERUZBVUxUX19OQU1FU1BBQ0VfXyIsc2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWc6KCk9Pnt9LG9uU2VsZWN0OiguLi5lKT0+Y29uc29sZS5sb2coIkV4YW1wbGVzU2VsZWN0VmFsdWVSZXRhaW5lcjogbm8gYG9uU2VsZWN0YCBmdW5jdGlvbiB3YXMgcHJvdmlkZWQiLC4uLmUpLHVwZGF0ZVZhbHVlOiguLi5lKT0+Y29uc29sZS5sb2coIkV4YW1wbGVzU2VsZWN0VmFsdWVSZXRhaW5lcjogbm8gYHVwZGF0ZVZhbHVlYCBmdW5jdGlvbiB3YXMgcHJvdmlkZWQiLC4uLmUpfTtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTtjb25zdCB0PXRoaXMuX2dldEN1cnJlbnRFeGFtcGxlVmFsdWUoKTt0aGlzLnN0YXRlPXtbZS5jdXJyZW50TmFtZXNwYWNlXTooMCxYZS5NYXApKHtsYXN0VXNlckVkaXRlZFZhbHVlOnRoaXMucHJvcHMuY3VycmVudFVzZXJJbnB1dFZhbHVlLGxhc3REb3duc3RyZWFtVmFsdWU6dCxpc01vZGlmaWVkVmFsdWVTZWxlY3RlZDp0aGlzLnByb3BzLnVzZXJIYXNFZGl0ZWRCb2R5fHx0aGlzLnByb3BzLmN1cnJlbnRVc2VySW5wdXRWYWx1ZSE9PXR9KX19Y29tcG9uZW50V2lsbFVubW91bnQoKXt0aGlzLnByb3BzLnNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnKCExKX1fZ2V0U3RhdGVGb3JDdXJyZW50TmFtZXNwYWNlPSgpPT57Y29uc3R7Y3VycmVudE5hbWVzcGFjZTplfT10aGlzLnByb3BzO3JldHVybih0aGlzLnN0YXRlW2VdfHwoMCxYZS5NYXApKCkpLnRvT2JqZWN0KCl9O19zZXRTdGF0ZUZvckN1cnJlbnROYW1lc3BhY2U9ZT0+e2NvbnN0e2N1cnJlbnROYW1lc3BhY2U6dH09dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5fc2V0U3RhdGVGb3JOYW1lc3BhY2UodCxlKX07X3NldFN0YXRlRm9yTmFtZXNwYWNlPShlLHQpPT57Y29uc3Qgcj0odGhpcy5zdGF0ZVtlXXx8KDAsWGUuTWFwKSgpKS5tZXJnZURlZXAodCk7cmV0dXJuIHRoaXMuc2V0U3RhdGUoe1tlXTpyfSl9O19pc0N1cnJlbnRVc2VySW5wdXRTYW1lQXNFeGFtcGxlVmFsdWU9KCk9Pntjb25zdHtjdXJyZW50VXNlcklucHV0VmFsdWU6ZX09dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5fZ2V0Q3VycmVudEV4YW1wbGVWYWx1ZSgpPT09ZX07X2dldFZhbHVlRm9yRXhhbXBsZT0oZSx0KT0+e2NvbnN0e2V4YW1wbGVzOnJ9PXR8fHRoaXMucHJvcHM7cmV0dXJuIHN0cmluZ2lmeVVubGVzc0xpc3QoKHJ8fCgwLFhlLk1hcCkoe30pKS5nZXRJbihbZSwidmFsdWUiXSkpfTtfZ2V0Q3VycmVudEV4YW1wbGVWYWx1ZT1lPT57Y29uc3R7Y3VycmVudEtleTp0fT1lfHx0aGlzLnByb3BzO3JldHVybiB0aGlzLl9nZXRWYWx1ZUZvckV4YW1wbGUodCxlfHx0aGlzLnByb3BzKX07X29uRXhhbXBsZXNTZWxlY3Q9KGUse2lzU3ludGhldGljQ2hhbmdlOnR9PXt9LC4uLnIpPT57Y29uc3R7b25TZWxlY3Q6bix1cGRhdGVWYWx1ZTphLGN1cnJlbnRVc2VySW5wdXRWYWx1ZTpvLHVzZXJIYXNFZGl0ZWRCb2R5OnN9PXRoaXMucHJvcHMse2xhc3RVc2VyRWRpdGVkVmFsdWU6bH09dGhpcy5fZ2V0U3RhdGVGb3JDdXJyZW50TmFtZXNwYWNlKCksaT10aGlzLl9nZXRWYWx1ZUZvckV4YW1wbGUoZSk7aWYoIl9fTU9ESUZJRURfX1ZBTFVFX18iPT09ZSlyZXR1cm4gYShzdHJpbmdpZnlVbmxlc3NMaXN0KGwpKSx0aGlzLl9zZXRTdGF0ZUZvckN1cnJlbnROYW1lc3BhY2Uoe2lzTW9kaWZpZWRWYWx1ZVNlbGVjdGVkOiEwfSk7ImZ1bmN0aW9uIj09dHlwZW9mIG4mJm4oZSx7aXNTeW50aGV0aWNDaGFuZ2U6dH0sLi4uciksdGhpcy5fc2V0U3RhdGVGb3JDdXJyZW50TmFtZXNwYWNlKHtsYXN0RG93bnN0cmVhbVZhbHVlOmksaXNNb2RpZmllZFZhbHVlU2VsZWN0ZWQ6dCYmc3x8ISFvJiZvIT09aX0pLHR8fCJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhKHN0cmluZ2lmeVVubGVzc0xpc3QoaSkpfTtVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhlKXtjb25zdHtjdXJyZW50VXNlcklucHV0VmFsdWU6dCxleGFtcGxlczpyLG9uU2VsZWN0Om4sdXNlckhhc0VkaXRlZEJvZHk6YX09ZSx7bGFzdFVzZXJFZGl0ZWRWYWx1ZTpvLGxhc3REb3duc3RyZWFtVmFsdWU6c309dGhpcy5fZ2V0U3RhdGVGb3JDdXJyZW50TmFtZXNwYWNlKCksbD10aGlzLl9nZXRWYWx1ZUZvckV4YW1wbGUoZS5jdXJyZW50S2V5LGUpLGk9ci5maWx0ZXIoKGU9PlhlLk1hcC5pc01hcChlKSYmKGUuZ2V0KCJ2YWx1ZSIpPT09dHx8c3RyaW5naWZ5KGUuZ2V0KCJ2YWx1ZSIpKT09PXQpKSk7aWYoaS5zaXplKXtsZXQgdDt0PWkuaGFzKGUuY3VycmVudEtleSk/ZS5jdXJyZW50S2V5Omkua2V5U2VxKCkuZmlyc3QoKSxuKHQse2lzU3ludGhldGljQ2hhbmdlOiEwfSl9ZWxzZSB0IT09dGhpcy5wcm9wcy5jdXJyZW50VXNlcklucHV0VmFsdWUmJnQhPT1vJiZ0IT09cyYmKHRoaXMucHJvcHMuc2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWcoITApLHRoaXMuX3NldFN0YXRlRm9yTmFtZXNwYWNlKGUuY3VycmVudE5hbWVzcGFjZSx7bGFzdFVzZXJFZGl0ZWRWYWx1ZTplLmN1cnJlbnRVc2VySW5wdXRWYWx1ZSxpc01vZGlmaWVkVmFsdWVTZWxlY3RlZDphfHx0IT09bH0pKX1yZW5kZXIoKXtjb25zdHtjdXJyZW50VXNlcklucHV0VmFsdWU6ZSxleGFtcGxlczp0LGN1cnJlbnRLZXk6cixnZXRDb21wb25lbnQ6bix1c2VySGFzRWRpdGVkQm9keTphfT10aGlzLnByb3BzLHtsYXN0RG93bnN0cmVhbVZhbHVlOm8sbGFzdFVzZXJFZGl0ZWRWYWx1ZTpzLGlzTW9kaWZpZWRWYWx1ZVNlbGVjdGVkOmx9PXRoaXMuX2dldFN0YXRlRm9yQ3VycmVudE5hbWVzcGFjZSgpLGk9bigiRXhhbXBsZXNTZWxlY3QiKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGkse2V4YW1wbGVzOnQsY3VycmVudEV4YW1wbGVLZXk6cixvblNlbGVjdDp0aGlzLl9vbkV4YW1wbGVzU2VsZWN0LGlzTW9kaWZpZWRWYWx1ZUF2YWlsYWJsZTohIXMmJnMhPT1vLGlzVmFsdWVNb2RpZmllZDp2b2lkIDAhPT1lJiZsJiZlIT09dGhpcy5fZ2V0Q3VycmVudEV4YW1wbGVWYWx1ZSgpfHxhfSl9fWZ1bmN0aW9uIG9hdXRoMl9hdXRob3JpemVfYXV0aG9yaXplKHthdXRoOmUsYXV0aEFjdGlvbnM6dCxlcnJBY3Rpb25zOnIsY29uZmlnczpuLGF1dGhDb25maWdzOmE9e30sY3VycmVudFNlcnZlcjpvfSl7bGV0e3NjaGVtYTpzLHNjb3BlczpsLG5hbWU6aSxjbGllbnRJZDpjfT1lLHU9cy5nZXQoImZsb3ciKSxkPVtdO3N3aXRjaCh1KXtjYXNlInBhc3N3b3JkIjpyZXR1cm4gdm9pZCB0LmF1dGhvcml6ZVBhc3N3b3JkKGUpO2Nhc2UiYXBwbGljYXRpb24iOmNhc2UiY2xpZW50Q3JlZGVudGlhbHMiOmNhc2UiY2xpZW50X2NyZWRlbnRpYWxzIjpyZXR1cm4gdm9pZCB0LmF1dGhvcml6ZUFwcGxpY2F0aW9uKGUpO2Nhc2UiYWNjZXNzQ29kZSI6Y2FzZSJhdXRob3JpemF0aW9uQ29kZSI6Y2FzZSJhdXRob3JpemF0aW9uX2NvZGUiOmQucHVzaCgicmVzcG9uc2VfdHlwZT1jb2RlIik7YnJlYWs7Y2FzZSJpbXBsaWNpdCI6ZC5wdXNoKCJyZXNwb25zZV90eXBlPXRva2VuIil9InN0cmluZyI9PXR5cGVvZiBjJiZkLnB1c2goImNsaWVudF9pZD0iK2VuY29kZVVSSUNvbXBvbmVudChjKSk7bGV0IHA9bi5vYXV0aDJSZWRpcmVjdFVybDtpZih2b2lkIDA9PT1wKXJldHVybiB2b2lkIHIubmV3QXV0aEVycih7YXV0aElkOmksc291cmNlOiJ2YWxpZGF0aW9uIixsZXZlbDoiZXJyb3IiLG1lc3NhZ2U6Im9hdXRoMlJlZGlyZWN0VXJsIGNvbmZpZ3VyYXRpb24gaXMgbm90IHBhc3NlZC4gT2F1dGgyIGF1dGhvcml6YXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZC4ifSk7ZC5wdXNoKCJyZWRpcmVjdF91cmk9IitlbmNvZGVVUklDb21wb25lbnQocCkpO2xldCBtPVtdO2lmKEFycmF5LmlzQXJyYXkobCk/bT1sOlhlLmRlZmF1bHQuTGlzdC5pc0xpc3QobCkmJihtPWwudG9BcnJheSgpKSxtLmxlbmd0aD4wKXtsZXQgZT1hLnNjb3BlU2VwYXJhdG9yfHwiICI7ZC5wdXNoKCJzY29wZT0iK2VuY29kZVVSSUNvbXBvbmVudChtLmpvaW4oZSkpKX1sZXQgZj1idG9hKG5ldyBEYXRlKTtpZihkLnB1c2goInN0YXRlPSIrZW5jb2RlVVJJQ29tcG9uZW50KGYpKSx2b2lkIDAhPT1hLnJlYWxtJiZkLnB1c2goInJlYWxtPSIrZW5jb2RlVVJJQ29tcG9uZW50KGEucmVhbG0pKSwoImF1dGhvcml6YXRpb25Db2RlIj09PXV8fCJhdXRob3JpemF0aW9uX2NvZGUiPT09dXx8ImFjY2Vzc0NvZGUiPT09dSkmJmEudXNlUGtjZVdpdGhBdXRob3JpemF0aW9uQ29kZUdyYW50KXtjb25zdCB0PWZ1bmN0aW9uIGdlbmVyYXRlQ29kZVZlcmlmaWVyKCl7cmV0dXJuIGI2NHRvQjY0VXJsRW5jb2RlZChFdCgpKDMyKS50b1N0cmluZygiYmFzZTY0IikpfSgpLHI9ZnVuY3Rpb24gY3JlYXRlQ29kZUNoYWxsZW5nZShlKXtyZXR1cm4gYjY0dG9CNjRVcmxFbmNvZGVkKF90KCkoInNoYTI1NiIpLnVwZGF0ZShlKS5kaWdlc3QoImJhc2U2NCIpKX0odCk7ZC5wdXNoKCJjb2RlX2NoYWxsZW5nZT0iK3IpLGQucHVzaCgiY29kZV9jaGFsbGVuZ2VfbWV0aG9kPVMyNTYiKSxlLmNvZGVWZXJpZmllcj10fWxldHthZGRpdGlvbmFsUXVlcnlTdHJpbmdQYXJhbXM6aH09YTtmb3IobGV0IGUgaW4gaCl2b2lkIDAhPT1oW2VdJiZkLnB1c2goW2UsaFtlXV0ubWFwKGVuY29kZVVSSUNvbXBvbmVudCkuam9pbigiPSIpKTtjb25zdCBnPXMuZ2V0KCJhdXRob3JpemF0aW9uVXJsIik7bGV0IHk7eT1vPygwLE90LmRlZmF1bHQpKHNhbml0aXplVXJsKGcpLG8sITApLnRvU3RyaW5nKCk6c2FuaXRpemVVcmwoZyk7bGV0IFMsXz1beSxkLmpvaW4oIiYiKV0uam9pbigic3RyaW5nIiE9dHlwZW9mIGd8fGcuaW5jbHVkZXMoIj8iKT8iJiI6Ij8iKTtTPSJpbXBsaWNpdCI9PT11P3QucHJlQXV0aG9yaXplSW1wbGljaXQ6YS51c2VCYXNpY0F1dGhlbnRpY2F0aW9uV2l0aEFjY2Vzc0NvZGVHcmFudD90LmF1dGhvcml6ZUFjY2Vzc0NvZGVXaXRoQmFzaWNBdXRoZW50aWNhdGlvbjp0LmF1dGhvcml6ZUFjY2Vzc0NvZGVXaXRoRm9ybVBhcmFtcyx0LmF1dGhQb3B1cChfLHthdXRoOmUsc3RhdGU6ZixyZWRpcmVjdFVybDpwLGNhbGxiYWNrOlMsZXJyQ2I6ci5uZXdBdXRoRXJyfSl9Y2xhc3MgT2F1dGgyIGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpO2xldHtuYW1lOnIsc2NoZW1hOm4sYXV0aG9yaXplZDphLGF1dGhTZWxlY3RvcnM6b309dGhpcy5wcm9wcyxzPWEmJmEuZ2V0KHIpLGw9by5nZXRDb25maWdzKCl8fHt9LGk9cyYmcy5nZXQoInVzZXJuYW1lIil8fCIiLGM9cyYmcy5nZXQoImNsaWVudElkIil8fGwuY2xpZW50SWR8fCIiLHU9cyYmcy5nZXQoImNsaWVudFNlY3JldCIpfHxsLmNsaWVudFNlY3JldHx8IiIsZD1zJiZzLmdldCgicGFzc3dvcmRUeXBlIil8fCJiYXNpYyIscD1zJiZzLmdldCgic2NvcGVzIil8fGwuc2NvcGVzfHxbXTsic3RyaW5nIj09dHlwZW9mIHAmJihwPXAuc3BsaXQobC5zY29wZVNlcGFyYXRvcnx8IiAiKSksdGhpcy5zdGF0ZT17YXBwTmFtZTpsLmFwcE5hbWUsbmFtZTpyLHNjaGVtYTpuLHNjb3BlczpwLGNsaWVudElkOmMsY2xpZW50U2VjcmV0OnUsdXNlcm5hbWU6aSxwYXNzd29yZDoiIixwYXNzd29yZFR5cGU6ZH19Y2xvc2U9ZT0+e2UucHJldmVudERlZmF1bHQoKTtsZXR7YXV0aEFjdGlvbnM6dH09dGhpcy5wcm9wczt0LnNob3dEZWZpbml0aW9ucyghMSl9O2F1dGhvcml6ZT0oKT0+e2xldHthdXRoQWN0aW9uczplLGVyckFjdGlvbnM6dCxnZXRDb25maWdzOnIsYXV0aFNlbGVjdG9yczpuLG9hczNTZWxlY3RvcnM6YX09dGhpcy5wcm9wcyxvPXIoKSxzPW4uZ2V0Q29uZmlncygpO3QuY2xlYXIoe2F1dGhJZDpuYW1lLHR5cGU6ImF1dGgiLHNvdXJjZToiYXV0aCJ9KSxvYXV0aDJfYXV0aG9yaXplX2F1dGhvcml6ZSh7YXV0aDp0aGlzLnN0YXRlLGN1cnJlbnRTZXJ2ZXI6YS5zZXJ2ZXJFZmZlY3RpdmVWYWx1ZShhLnNlbGVjdGVkU2VydmVyKCkpLGF1dGhBY3Rpb25zOmUsZXJyQWN0aW9uczp0LGNvbmZpZ3M6byxhdXRoQ29uZmlnczpzfSl9O29uU2NvcGVDaGFuZ2U9ZT0+e2xldHt0YXJnZXQ6dH09ZSx7Y2hlY2tlZDpyfT10LG49dC5kYXRhc2V0LnZhbHVlO2lmKHImJi0xPT09dGhpcy5zdGF0ZS5zY29wZXMuaW5kZXhPZihuKSl7bGV0IGU9dGhpcy5zdGF0ZS5zY29wZXMuY29uY2F0KFtuXSk7dGhpcy5zZXRTdGF0ZSh7c2NvcGVzOmV9KX1lbHNlIXImJnRoaXMuc3RhdGUuc2NvcGVzLmluZGV4T2Yobik+LTEmJnRoaXMuc2V0U3RhdGUoe3Njb3Blczp0aGlzLnN0YXRlLnNjb3Blcy5maWx0ZXIoKGU9PmUhPT1uKSl9KX07b25JbnB1dENoYW5nZT1lPT57bGV0e3RhcmdldDp7ZGF0YXNldDp7bmFtZTp0fSx2YWx1ZTpyfX09ZSxuPXtbdF06cn07dGhpcy5zZXRTdGF0ZShuKX07c2VsZWN0U2NvcGVzPWU9PntlLnRhcmdldC5kYXRhc2V0LmFsbD90aGlzLnNldFN0YXRlKHtzY29wZXM6QXJyYXkuZnJvbSgodGhpcy5wcm9wcy5zY2hlbWEuZ2V0KCJhbGxvd2VkU2NvcGVzIil8fHRoaXMucHJvcHMuc2NoZW1hLmdldCgic2NvcGVzIikpLmtleXMoKSl9KTp0aGlzLnNldFN0YXRlKHtzY29wZXM6W119KX07bG9nb3V0PWU9PntlLnByZXZlbnREZWZhdWx0KCk7bGV0e2F1dGhBY3Rpb25zOnQsZXJyQWN0aW9uczpyLG5hbWU6bn09dGhpcy5wcm9wcztyLmNsZWFyKHthdXRoSWQ6bix0eXBlOiJhdXRoIixzb3VyY2U6ImF1dGgifSksdC5sb2dvdXRXaXRoUGVyc2lzdE9wdGlvbihbbl0pfTtyZW5kZXIoKXtsZXR7c2NoZW1hOmUsZ2V0Q29tcG9uZW50OnQsYXV0aFNlbGVjdG9yczpyLGVyclNlbGVjdG9yczpuLG5hbWU6YSxzcGVjU2VsZWN0b3JzOm99PXRoaXMucHJvcHM7Y29uc3Qgcz10KCJJbnB1dCIpLGw9dCgiUm93IiksaT10KCJDb2wiKSxjPXQoIkJ1dHRvbiIpLHU9dCgiYXV0aEVycm9yIiksZD10KCJKdW1wVG9QYXRoIiwhMCkscD10KCJNYXJrZG93biIsITApLG09dCgiSW5pdGlhbGl6ZWRJbnB1dCIpLHtpc09BUzM6Zn09bztsZXQgaD1mKCk/ZS5nZXQoIm9wZW5JZENvbm5lY3RVcmwiKTpudWxsO2NvbnN0IGc9ImltcGxpY2l0Iix5PSJwYXNzd29yZCIsUz1mKCk/aD8iYXV0aG9yaXphdGlvbl9jb2RlIjoiYXV0aG9yaXphdGlvbkNvZGUiOiJhY2Nlc3NDb2RlIixfPWYoKT9oPyJjbGllbnRfY3JlZGVudGlhbHMiOiJjbGllbnRDcmVkZW50aWFscyI6ImFwcGxpY2F0aW9uIix2PXIuc2VsZWN0QXV0aFBhdGgoYSk7bGV0IGI9ISEoci5nZXRDb25maWdzKCl8fHt9KS51c2VQa2NlV2l0aEF1dGhvcml6YXRpb25Db2RlR3JhbnQsdz1lLmdldCgiZmxvdyIpLEM9dz09PVMmJmI/dysiIHdpdGggUEtDRSI6dyx4PWUuZ2V0KCJhbGxvd2VkU2NvcGVzIil8fGUuZ2V0KCJzY29wZXMiKSxPPSEhci5hdXRob3JpemVkKCkuZ2V0KGEpLGs9bi5hbGxFcnJvcnMoKS5maWx0ZXIoKGU9PmUuZ2V0KCJhdXRoSWQiKT09PWEpKSxOPSFrLmZpbHRlcigoZT0+InZhbGlkYXRpb24iPT09ZS5nZXQoInNvdXJjZSIpKSkuc2l6ZSxBPWUuZ2V0KCJkZXNjcmlwdGlvbiIpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLGEsIiAoT0F1dGgyLCAiLEMsIikgIixIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoZCx7cGF0aDp2fSkpLHRoaXMuc3RhdGUuYXBwTmFtZT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImg1IixudWxsLCJBcHBsaWNhdGlvbjogIix0aGlzLnN0YXRlLmFwcE5hbWUsIiAiKTpudWxsLEEmJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChwLHtzb3VyY2U6ZS5nZXQoImRlc2NyaXB0aW9uIil9KSxPJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImg2IixudWxsLCJBdXRob3JpemVkIiksaCYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJPcGVuSUQgQ29ubmVjdCBVUkw6ICIsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLGgpKSwodz09PWd8fHc9PT1TKSYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJBdXRob3JpemF0aW9uIFVSTDogIixIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsZS5nZXQoImF1dGhvcml6YXRpb25VcmwiKSkpLCh3PT09eXx8dz09PVN8fHc9PT1fKSYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJUb2tlbiBVUkw6IixIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIiAiLGUuZ2V0KCJ0b2tlblVybCIpKSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwIix7Y2xhc3NOYW1lOiJmbG93In0sIkZsb3c6ICIsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLEMpKSx3IT09eT9udWxsOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChsLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGwsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjoib2F1dGhfdXNlcm5hbWUifSwidXNlcm5hbWU6IiksTz9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIiAiLHRoaXMuc3RhdGUudXNlcm5hbWUsIiAiKTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoaSx7dGFibGV0OjEwLGRlc2t0b3A6MTB9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaW5wdXQiLHtpZDoib2F1dGhfdXNlcm5hbWUiLHR5cGU6InRleHQiLCJkYXRhLW5hbWUiOiJ1c2VybmFtZSIsb25DaGFuZ2U6dGhpcy5vbklucHV0Q2hhbmdlLGF1dG9Gb2N1czohMH0pKSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGwsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjoib2F1dGhfcGFzc3dvcmQifSwicGFzc3dvcmQ6IiksTz9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIiAqKioqKiogIik6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGkse3RhYmxldDoxMCxkZXNrdG9wOjEwfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImlucHV0Iix7aWQ6Im9hdXRoX3Bhc3N3b3JkIix0eXBlOiJwYXNzd29yZCIsImRhdGEtbmFtZSI6InBhc3N3b3JkIixvbkNoYW5nZTp0aGlzLm9uSW5wdXRDaGFuZ2V9KSkpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChsLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6InBhc3N3b3JkX3R5cGUifSwiQ2xpZW50IGNyZWRlbnRpYWxzIGxvY2F0aW9uOiIpLE8/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCIgIix0aGlzLnN0YXRlLnBhc3N3b3JkVHlwZSwiICIpOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChpLHt0YWJsZXQ6MTAsZGVza3RvcDoxMH0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiLHtpZDoicGFzc3dvcmRfdHlwZSIsImRhdGEtbmFtZSI6InBhc3N3b3JkVHlwZSIsb25DaGFuZ2U6dGhpcy5vbklucHV0Q2hhbmdlfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIse3ZhbHVlOiJiYXNpYyJ9LCJBdXRob3JpemF0aW9uIGhlYWRlciIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgib3B0aW9uIix7dmFsdWU6InJlcXVlc3QtYm9keSJ9LCJSZXF1ZXN0IGJvZHkiKSkpKSksKHc9PT1ffHx3PT09Z3x8dz09PVN8fHc9PT15KSYmKCFPfHxPJiZ0aGlzLnN0YXRlLmNsaWVudElkKSYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGwsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjpgY2xpZW50X2lkXyR7d31gfSwiY2xpZW50X2lkOiIpLE8/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCIgKioqKioqICIpOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChpLHt0YWJsZXQ6MTAsZGVza3RvcDoxMH0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG0se2lkOmBjbGllbnRfaWRfJHt3fWAsdHlwZToidGV4dCIscmVxdWlyZWQ6dz09PXksaW5pdGlhbFZhbHVlOnRoaXMuc3RhdGUuY2xpZW50SWQsImRhdGEtbmFtZSI6ImNsaWVudElkIixvbkNoYW5nZTp0aGlzLm9uSW5wdXRDaGFuZ2V9KSkpLCh3PT09X3x8dz09PVN8fHc9PT15KSYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGwsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjpgY2xpZW50X3NlY3JldF8ke3d9YH0sImNsaWVudF9zZWNyZXQ6IiksTz9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIiAqKioqKiogIik6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGkse3RhYmxldDoxMCxkZXNrdG9wOjEwfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobSx7aWQ6YGNsaWVudF9zZWNyZXRfJHt3fWAsaW5pdGlhbFZhbHVlOnRoaXMuc3RhdGUuY2xpZW50U2VjcmV0LHR5cGU6InBhc3N3b3JkIiwiZGF0YS1uYW1lIjoiY2xpZW50U2VjcmV0IixvbkNoYW5nZTp0aGlzLm9uSW5wdXRDaGFuZ2V9KSkpLCFPJiZ4JiZ4LnNpemU/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InNjb3BlcyJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDIiLG51bGwsIlNjb3BlczoiLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiYSIse29uQ2xpY2s6dGhpcy5zZWxlY3RTY29wZXMsImRhdGEtYWxsIjohMH0sInNlbGVjdCBhbGwiKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImEiLHtvbkNsaWNrOnRoaXMuc2VsZWN0U2NvcGVzfSwic2VsZWN0IG5vbmUiKSkseC5tYXAoKChlLHQpPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobCx7a2V5OnR9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJjaGVja2JveCJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChzLHsiZGF0YS12YWx1ZSI6dCxpZDpgJHt0fS0ke3d9LWNoZWNrYm94LSR7dGhpcy5zdGF0ZS5uYW1lfWAsZGlzYWJsZWQ6TyxjaGVja2VkOnRoaXMuc3RhdGUuc2NvcGVzLmluY2x1ZGVzKHQpLHR5cGU6ImNoZWNrYm94IixvbkNoYW5nZTp0aGlzLm9uU2NvcGVDaGFuZ2V9KSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjpgJHt0fS0ke3d9LWNoZWNrYm94LSR7dGhpcy5zdGF0ZS5uYW1lfWB9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiaXRlbSJ9KSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidGV4dCJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgicCIse2NsYXNzTmFtZToibmFtZSJ9LHQpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgicCIse2NsYXNzTmFtZToiZGVzY3JpcHRpb24ifSxlKSkpKSkpKS50b0FycmF5KCkpOm51bGwsay52YWx1ZVNlcSgpLm1hcCgoKGUsdCk9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh1LHtlcnJvcjplLGtleTp0fSkpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiYXV0aC1idG4td3JhcHBlciJ9LE4mJihPP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChjLHtjbGFzc05hbWU6ImJ0biBtb2RhbC1idG4gYXV0aCBhdXRob3JpemUiLG9uQ2xpY2s6dGhpcy5sb2dvdXQsImFyaWEtbGFiZWwiOiJSZW1vdmUgYXV0aG9yaXphdGlvbiJ9LCJMb2dvdXQiKTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYyx7Y2xhc3NOYW1lOiJidG4gbW9kYWwtYnRuIGF1dGggYXV0aG9yaXplIixvbkNsaWNrOnRoaXMuYXV0aG9yaXplLCJhcmlhLWxhYmVsIjoiQXBwbHkgZ2l2ZW4gT0F1dGgyIGNyZWRlbnRpYWxzIn0sIkF1dGhvcml6ZSIpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYyx7Y2xhc3NOYW1lOiJidG4gbW9kYWwtYnRuIGF1dGggYnRuLWRvbmUiLG9uQ2xpY2s6dGhpcy5jbG9zZX0sIkNsb3NlIikpKX19Y2xhc3MgQ2xlYXIgZXh0ZW5kcyBIZS5Db21wb25lbnR7b25DbGljaz0oKT0+e2xldHtzcGVjQWN0aW9uczplLHBhdGg6dCxtZXRob2Q6cn09dGhpcy5wcm9wcztlLmNsZWFyUmVzcG9uc2UodCxyKSxlLmNsZWFyUmVxdWVzdCh0LHIpfTtyZW5kZXIoKXtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtjbGFzc05hbWU6ImJ0biBidG4tY2xlYXIgb3BibG9jay1jb250cm9sX19idG4iLG9uQ2xpY2s6dGhpcy5vbkNsaWNrfSwiQ2xlYXIiKX19Y29uc3QgSGVhZGVycz0oe2hlYWRlcnM6ZX0pPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImg1IixudWxsLCJSZXNwb25zZSBoZWFkZXJzIiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwcmUiLHtjbGFzc05hbWU6Im1pY3JvbGlnaHQifSxlKSksRHVyYXRpb249KHtkdXJhdGlvbjplfSk9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDUiLG51bGwsIlJlcXVlc3QgZHVyYXRpb24iKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInByZSIse2NsYXNzTmFtZToibWljcm9saWdodCJ9LGUsIiBtcyIpKTtjbGFzcyBMaXZlUmVzcG9uc2UgZXh0ZW5kcyBIZS5kZWZhdWx0LkNvbXBvbmVudHtzaG91bGRDb21wb25lbnRVcGRhdGUoZSl7cmV0dXJuIHRoaXMucHJvcHMucmVzcG9uc2UhPT1lLnJlc3BvbnNlfHx0aGlzLnByb3BzLnBhdGghPT1lLnBhdGh8fHRoaXMucHJvcHMubWV0aG9kIT09ZS5tZXRob2R8fHRoaXMucHJvcHMuZGlzcGxheVJlcXVlc3REdXJhdGlvbiE9PWUuZGlzcGxheVJlcXVlc3REdXJhdGlvbn1yZW5kZXIoKXtjb25zdHtyZXNwb25zZTplLGdldENvbXBvbmVudDp0LGdldENvbmZpZ3M6cixkaXNwbGF5UmVxdWVzdER1cmF0aW9uOm4sc3BlY1NlbGVjdG9yczphLHBhdGg6byxtZXRob2Q6c309dGhpcy5wcm9wcyx7c2hvd011dGF0ZWRSZXF1ZXN0OmwscmVxdWVzdFNuaXBwZXRzRW5hYmxlZDppfT1yKCksYz1sP2EubXV0YXRlZFJlcXVlc3RGb3IobyxzKTphLnJlcXVlc3RGb3IobyxzKSx1PWUuZ2V0KCJzdGF0dXMiKSxkPWMuZ2V0KCJ1cmwiKSxwPWUuZ2V0KCJoZWFkZXJzIikudG9KUygpLG09ZS5nZXQoIm5vdERvY3VtZW50ZWQiKSxmPWUuZ2V0KCJlcnJvciIpLGg9ZS5nZXQoInRleHQiKSxnPWUuZ2V0KCJkdXJhdGlvbiIpLHk9T2JqZWN0LmtleXMocCksUz1wWyJjb250ZW50LXR5cGUiXXx8cFsiQ29udGVudC1UeXBlIl0sXz10KCJyZXNwb25zZUJvZHkiKSx2PXkubWFwKChlPT57dmFyIHQ9QXJyYXkuaXNBcnJheShwW2VdKT9wW2VdLmpvaW4oKTpwW2VdO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6ImhlYWRlcmxpbmUiLGtleTplfSwiICIsZSwiOiAiLHQsIiAiKX0pKSxiPTAhPT12Lmxlbmd0aCx3PXQoIk1hcmtkb3duIiwhMCksQz10KCJSZXF1ZXN0U25pcHBldHMiLCEwKSx4PXQoImN1cmwiLCEwKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsYyYmaT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQyx7cmVxdWVzdDpjfSk6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHgse3JlcXVlc3Q6Y30pLGQmJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJyZXF1ZXN0LXVybCJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsIlJlcXVlc3QgVVJMIiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwcmUiLHtjbGFzc05hbWU6Im1pY3JvbGlnaHQifSxkKSkpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsIlNlcnZlciByZXNwb25zZSIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGFibGUiLHtjbGFzc05hbWU6InJlc3BvbnNlcy10YWJsZSBsaXZlLXJlc3BvbnNlcy10YWJsZSJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGhlYWQiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ciIse2NsYXNzTmFtZToicmVzcG9uc2VzLWhlYWRlciJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6ImNvbF9oZWFkZXIgcmVzcG9uc2UtY29sX3N0YXR1cyJ9LCJDb2RlIiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToiY29sX2hlYWRlciByZXNwb25zZS1jb2xfZGVzY3JpcHRpb24ifSwiRGV0YWlscyIpKSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRyIix7Y2xhc3NOYW1lOiJyZXNwb25zZSJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6InJlc3BvbnNlLWNvbF9zdGF0dXMifSx1LG0/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InJlc3BvbnNlLXVuZG9jdW1lbnRlZCJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaSIsbnVsbCwiIFVuZG9jdW1lbnRlZCAiKSk6bnVsbCksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToicmVzcG9uc2UtY29sX2Rlc2NyaXB0aW9uIn0sZj9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodyx7c291cmNlOmAkeyIiIT09ZS5nZXQoIm5hbWUiKT9gJHtlLmdldCgibmFtZSIpfTogYDoiIn0ke2UuZ2V0KCJtZXNzYWdlIil9YH0pOm51bGwsaD9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXyx7Y29udGVudDpoLGNvbnRlbnRUeXBlOlMsdXJsOmQsaGVhZGVyczpwLGdldENvbmZpZ3M6cixnZXRDb21wb25lbnQ6dH0pOm51bGwsYj9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoSGVhZGVycyx7aGVhZGVyczp2fSk6bnVsbCxuJiZnP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChEdXJhdGlvbix7ZHVyYXRpb246Z30pOm51bGwpKSkpKX19Y2xhc3MgT25saW5lVmFsaWRhdG9yQmFkZ2UgZXh0ZW5kcyBIZS5kZWZhdWx0LkNvbXBvbmVudHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCk7bGV0e2dldENvbmZpZ3M6cn09ZSx7dmFsaWRhdG9yVXJsOm59PXIoKTt0aGlzLnN0YXRlPXt1cmw6dGhpcy5nZXREZWZpbml0aW9uVXJsKCksdmFsaWRhdG9yVXJsOnZvaWQgMD09PW4/Imh0dHBzOi8vdmFsaWRhdG9yLnN3YWdnZXIuaW8vdmFsaWRhdG9yIjpufX1nZXREZWZpbml0aW9uVXJsPSgpPT57bGV0e3NwZWNTZWxlY3RvcnM6ZX09dGhpcy5wcm9wcztyZXR1cm4gbmV3IE90LmRlZmF1bHQoZS51cmwoKSxjdC5sb2NhdGlvbikudG9TdHJpbmcoKX07VU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoZSl7bGV0e2dldENvbmZpZ3M6dH09ZSx7dmFsaWRhdG9yVXJsOnJ9PXQoKTt0aGlzLnNldFN0YXRlKHt1cmw6dGhpcy5nZXREZWZpbml0aW9uVXJsKCksdmFsaWRhdG9yVXJsOnZvaWQgMD09PXI/Imh0dHBzOi8vdmFsaWRhdG9yLnN3YWdnZXIuaW8vdmFsaWRhdG9yIjpyfSl9cmVuZGVyKCl7bGV0e2dldENvbmZpZ3M6ZX09dGhpcy5wcm9wcyx7c3BlYzp0fT1lKCkscj1zYW5pdGl6ZVVybCh0aGlzLnN0YXRlLnZhbGlkYXRvclVybCk7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZPYmplY3Qua2V5cyh0KS5sZW5ndGg/bnVsbDp0aGlzLnN0YXRlLnVybCYmcmVxdWlyZXNWYWxpZGF0aW9uVVJMKHRoaXMuc3RhdGUudmFsaWRhdG9yVXJsKSYmcmVxdWlyZXNWYWxpZGF0aW9uVVJMKHRoaXMuc3RhdGUudXJsKT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6ImZsb2F0LXJpZ2h0In0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJhIix7dGFyZ2V0OiJfYmxhbmsiLHJlbDoibm9vcGVuZXIgbm9yZWZlcnJlciIsaHJlZjpgJHtyfS9kZWJ1Zz91cmw9JHtlbmNvZGVVUklDb21wb25lbnQodGhpcy5zdGF0ZS51cmwpfWB9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChWYWxpZGF0b3JJbWFnZSx7c3JjOmAke3J9P3VybD0ke2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLnN0YXRlLnVybCl9YCxhbHQ6Ik9ubGluZSB2YWxpZGF0b3IgYmFkZ2UifSkpKTpudWxsfX1jbGFzcyBWYWxpZGF0b3JJbWFnZSBleHRlbmRzIEhlLmRlZmF1bHQuQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMuc3RhdGU9e2xvYWRlZDohMSxlcnJvcjohMX19Y29tcG9uZW50RGlkTW91bnQoKXtjb25zdCBlPW5ldyBJbWFnZTtlLm9ubG9hZD0oKT0+e3RoaXMuc2V0U3RhdGUoe2xvYWRlZDohMH0pfSxlLm9uZXJyb3I9KCk9Pnt0aGlzLnNldFN0YXRlKHtlcnJvcjohMH0pfSxlLnNyYz10aGlzLnByb3BzLnNyY31VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhlKXtpZihlLnNyYyE9PXRoaXMucHJvcHMuc3JjKXtjb25zdCB0PW5ldyBJbWFnZTt0Lm9ubG9hZD0oKT0+e3RoaXMuc2V0U3RhdGUoe2xvYWRlZDohMH0pfSx0Lm9uZXJyb3I9KCk9Pnt0aGlzLnNldFN0YXRlKHtlcnJvcjohMH0pfSx0LnNyYz1lLnNyY319cmVuZGVyKCl7cmV0dXJuIHRoaXMuc3RhdGUuZXJyb3I/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJpbWciLHthbHQ6IkVycm9yIn0pOnRoaXMuc3RhdGUubG9hZGVkP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaW1nIix7c3JjOnRoaXMucHJvcHMuc3JjLGFsdDp0aGlzLnByb3BzLmFsdH0pOm51bGx9fWNsYXNzIE9wZXJhdGlvbnMgZXh0ZW5kcyBIZS5kZWZhdWx0LkNvbXBvbmVudHtyZW5kZXIoKXtsZXR7c3BlY1NlbGVjdG9yczplfT10aGlzLnByb3BzO2NvbnN0IHQ9ZS50YWdnZWRPcGVyYXRpb25zKCk7cmV0dXJuIDA9PT10LnNpemU/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJoMyIsbnVsbCwiIE5vIG9wZXJhdGlvbnMgZGVmaW5lZCBpbiBzcGVjISIpOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLHQubWFwKHRoaXMucmVuZGVyT3BlcmF0aW9uVGFnKS50b0FycmF5KCksdC5zaXplPDE/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJoMyIsbnVsbCwiIE5vIG9wZXJhdGlvbnMgZGVmaW5lZCBpbiBzcGVjISAiKTpudWxsKX1yZW5kZXJPcGVyYXRpb25UYWc9KGUsdCk9Pntjb25zdHtzcGVjU2VsZWN0b3JzOnIsZ2V0Q29tcG9uZW50Om4sb2FzM1NlbGVjdG9yczphLGxheW91dFNlbGVjdG9yczpvLGxheW91dEFjdGlvbnM6cyxnZXRDb25maWdzOmx9PXRoaXMucHJvcHMsaT1yLnZhbGlkT3BlcmF0aW9uTWV0aG9kcygpLGM9bigiT3BlcmF0aW9uQ29udGFpbmVyIiwhMCksdT1uKCJPcGVyYXRpb25UYWciKSxkPWUuZ2V0KCJvcGVyYXRpb25zIik7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh1LHtrZXk6Im9wZXJhdGlvbi0iK3QsdGFnT2JqOmUsdGFnOnQsb2FzM1NlbGVjdG9yczphLGxheW91dFNlbGVjdG9yczpvLGxheW91dEFjdGlvbnM6cyxnZXRDb25maWdzOmwsZ2V0Q29tcG9uZW50Om4sc3BlY1VybDpyLnVybCgpfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BlcmF0aW9uLXRhZy1jb250ZW50In0sZC5tYXAoKGU9Pntjb25zdCByPWUuZ2V0KCJwYXRoIiksbj1lLmdldCgibWV0aG9kIiksYT1YZS5kZWZhdWx0Lkxpc3QoWyJwYXRocyIscixuXSk7cmV0dXJuLTE9PT1pLmluZGV4T2Yobik/bnVsbDpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYyx7a2V5OmAke3J9LSR7bn1gLHNwZWNQYXRoOmEsb3A6ZSxwYXRoOnIsbWV0aG9kOm4sdGFnOnR9KX0pKS50b0FycmF5KCkpKX19Y2xhc3MgT3BlcmF0aW9uVGFnIGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17dGFnT2JqOlhlLmRlZmF1bHQuZnJvbUpTKHt9KSx0YWc6IiJ9O3JlbmRlcigpe2NvbnN0e3RhZ09iajplLHRhZzp0LGNoaWxkcmVuOnIsb2FzM1NlbGVjdG9yczpuLGxheW91dFNlbGVjdG9yczphLGxheW91dEFjdGlvbnM6byxnZXRDb25maWdzOnMsZ2V0Q29tcG9uZW50Omwsc3BlY1VybDppfT10aGlzLnByb3BzO2xldHtkb2NFeHBhbnNpb246YyxkZWVwTGlua2luZzp1fT1zKCk7Y29uc3QgZD1sKCJDb2xsYXBzZSIpLHA9bCgiTWFya2Rvd24iLCEwKSxtPWwoIkRlZXBMaW5rIiksZj1sKCJMaW5rIiksaD1sKCJBcnJvd1VwSWNvbiIpLGc9bCgiQXJyb3dEb3duSWNvbiIpO2xldCB5LFM9ZS5nZXRJbihbInRhZ0RldGFpbHMiLCJkZXNjcmlwdGlvbiJdLG51bGwpLF89ZS5nZXRJbihbInRhZ0RldGFpbHMiLCJleHRlcm5hbERvY3MiLCJkZXNjcmlwdGlvbiJdKSx2PWUuZ2V0SW4oWyJ0YWdEZXRhaWxzIiwiZXh0ZXJuYWxEb2NzIiwidXJsIl0pO3k9aXNGdW5jKG4pJiZpc0Z1bmMobi5zZWxlY3RlZFNlcnZlcik/c2FmZUJ1aWxkVXJsKHYsaSx7c2VsZWN0ZWRTZXJ2ZXI6bi5zZWxlY3RlZFNlcnZlcigpfSk6djtsZXQgYj1bIm9wZXJhdGlvbnMtdGFnIix0XSx3PWEuaXNTaG93bihiLCJmdWxsIj09PWN8fCJsaXN0Ij09PWMpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp3PyJvcGJsb2NrLXRhZy1zZWN0aW9uIGlzLW9wZW4iOiJvcGJsb2NrLXRhZy1zZWN0aW9uIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJoMyIse29uQ2xpY2s6KCk9Pm8uc2hvdyhiLCF3KSxjbGFzc05hbWU6Uz8ib3BibG9jay10YWciOiJvcGJsb2NrLXRhZyBuby1kZXNjIixpZDpiLm1hcCgoZT0+ZXNjYXBlRGVlcExpbmtQYXRoKGUpKSkuam9pbigiLSIpLCJkYXRhLXRhZyI6dCwiZGF0YS1pcy1vcGVuIjp3fSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobSx7ZW5hYmxlZDp1LGlzU2hvd246dyxwYXRoOmNyZWF0ZURlZXBMaW5rUGF0aCh0KSx0ZXh0OnR9KSxTP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic21hbGwiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHAse3NvdXJjZTpTfSkpOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic21hbGwiLG51bGwpLHk/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm9fX2V4dGVybmFsZG9jcyJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic21hbGwiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGYse2hyZWY6c2FuaXRpemVVcmwoeSksb25DbGljazplPT5lLnN0b3BQcm9wYWdhdGlvbigpLHRhcmdldDoiX2JsYW5rIn0sX3x8eSkpKTpudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7ImFyaWEtZXhwYW5kZWQiOncsY2xhc3NOYW1lOiJleHBhbmQtb3BlcmF0aW9uIix0aXRsZTp3PyJDb2xsYXBzZSBvcGVyYXRpb24iOiJFeHBhbmQgb3BlcmF0aW9uIixvbkNsaWNrOigpPT5vLnNob3coYiwhdyl9LHc/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGgse2NsYXNzTmFtZToiYXJyb3cifSk6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGcse2NsYXNzTmFtZToiYXJyb3cifSkpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoZCx7aXNPcGVuZWQ6d30scikpfX1jbGFzcyBPcGVyYXRpb24gZXh0ZW5kcyBIZS5QdXJlQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9e29wZXJhdGlvbjpudWxsLHJlc3BvbnNlOm51bGwscmVxdWVzdDpudWxsLHNwZWNQYXRoOigwLFhlLkxpc3QpKCksc3VtbWFyeToiIn07cmVuZGVyKCl7bGV0e3NwZWNQYXRoOmUscmVzcG9uc2U6dCxyZXF1ZXN0OnIsdG9nZ2xlU2hvd246bixvblRyeW91dENsaWNrOmEsb25SZXNldENsaWNrOm8sb25DYW5jZWxDbGljazpzLG9uRXhlY3V0ZTpsLGZuOmksZ2V0Q29tcG9uZW50OmMsZ2V0Q29uZmlnczp1LHNwZWNBY3Rpb25zOmQsc3BlY1NlbGVjdG9yczpwLGF1dGhBY3Rpb25zOm0sYXV0aFNlbGVjdG9yczpmLG9hczNBY3Rpb25zOmgsb2FzM1NlbGVjdG9yczpnfT10aGlzLnByb3BzLHk9dGhpcy5wcm9wcy5vcGVyYXRpb24se2RlcHJlY2F0ZWQ6Uyxpc1Nob3duOl8scGF0aDp2LG1ldGhvZDpiLG9wOncsdGFnOkMsb3BlcmF0aW9uSWQ6eCxhbGxvd1RyeUl0T3V0Ok8sZGlzcGxheVJlcXVlc3REdXJhdGlvbjprLHRyeUl0T3V0RW5hYmxlZDpOLGV4ZWN1dGVJblByb2dyZXNzOkF9PXkudG9KUygpLHtkZXNjcmlwdGlvbjpJLGV4dGVybmFsRG9jczpqLHNjaGVtZXM6Un09dztjb25zdCBUPWo/c2FmZUJ1aWxkVXJsKGoudXJsLHAudXJsKCkse3NlbGVjdGVkU2VydmVyOmcuc2VsZWN0ZWRTZXJ2ZXIoKX0pOiIiO2xldCBQPXkuZ2V0SW4oWyJvcCJdKSxCPVAuZ2V0KCJyZXNwb25zZXMiKSxNPWZ1bmN0aW9uIGdldExpc3QoZSx0KXtpZighWGUuZGVmYXVsdC5JdGVyYWJsZS5pc0l0ZXJhYmxlKGUpKXJldHVybiBYZS5kZWZhdWx0Lkxpc3QoKTtsZXQgcj1lLmdldEluKEFycmF5LmlzQXJyYXkodCk/dDpbdF0pO3JldHVybiBYZS5kZWZhdWx0Lkxpc3QuaXNMaXN0KHIpP3I6WGUuZGVmYXVsdC5MaXN0KCl9KFAsWyJwYXJhbWV0ZXJzIl0pLHE9cC5vcGVyYXRpb25TY2hlbWUodixiKSxMPVsib3BlcmF0aW9ucyIsQyx4XSxVPWdldEV4dGVuc2lvbnMoUCk7Y29uc3QgRD1jKCJyZXNwb25zZXMiKSwkPWMoInBhcmFtZXRlcnMiKSxWPWMoImV4ZWN1dGUiKSxKPWMoImNsZWFyIiksRj1jKCJDb2xsYXBzZSIpLHo9YygiTWFya2Rvd24iLCEwKSxLPWMoInNjaGVtZXMiKSxXPWMoIk9wZXJhdGlvblNlcnZlcnMiKSxIPWMoIk9wZXJhdGlvbkV4dCIpLEc9YygiT3BlcmF0aW9uU3VtbWFyeSIpLFg9YygiTGluayIpLHtzaG93RXh0ZW5zaW9uczpZfT11KCk7aWYoQiYmdCYmdC5zaXplPjApe2xldCBlPSFCLmdldChTdHJpbmcodC5nZXQoInN0YXR1cyIpKSkmJiFCLmdldCgiZGVmYXVsdCIpO3Q9dC5zZXQoIm5vdERvY3VtZW50ZWQiLGUpfWxldCBRPVt2LGJdO2NvbnN0IFo9cC52YWxpZGF0aW9uRXJyb3JzKFt2LGJdKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Uz8ib3BibG9jayBvcGJsb2NrLWRlcHJlY2F0ZWQiOl8/YG9wYmxvY2sgb3BibG9jay0ke2J9IGlzLW9wZW5gOmBvcGJsb2NrIG9wYmxvY2stJHtifWAsaWQ6ZXNjYXBlRGVlcExpbmtQYXRoKEwuam9pbigiLSIpKX0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEcse29wZXJhdGlvblByb3BzOnksaXNTaG93bjpfLHRvZ2dsZVNob3duOm4sZ2V0Q29tcG9uZW50OmMsYXV0aEFjdGlvbnM6bSxhdXRoU2VsZWN0b3JzOmYsc3BlY1BhdGg6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChGLHtpc09wZW5lZDpffSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1ib2R5In0sUCYmUC5zaXplfHxudWxsPT09UD9udWxsOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChyb2xsaW5nX2xvYWQse2hlaWdodDoiMzJweCIsd2lkdGg6IjMycHgiLGNsYXNzTmFtZToib3BibG9jay1sb2FkaW5nLWFuaW1hdGlvbiJ9KSxTJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXRpdGxlX25vcm1hbCJ9LCIgV2FybmluZzogRGVwcmVjYXRlZCIpLEkmJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLWRlc2NyaXB0aW9uLXdyYXBwZXIifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1kZXNjcmlwdGlvbiJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh6LHtzb3VyY2U6SX0pKSksVD9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1leHRlcm5hbC1kb2NzLXdyYXBwZXIifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXRpdGxlX25vcm1hbCJ9LCJGaW5kIG1vcmUgZGV0YWlscyIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLWV4dGVybmFsLWRvY3MifSxqLmRlc2NyaXB0aW9uJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im9wYmxvY2stZXh0ZXJuYWwtZG9jc19fZGVzY3JpcHRpb24ifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoeix7c291cmNlOmouZGVzY3JpcHRpb259KSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFgse3RhcmdldDoiX2JsYW5rIixjbGFzc05hbWU6Im9wYmxvY2stZXh0ZXJuYWwtZG9jc19fbGluayIsaHJlZjpzYW5pdGl6ZVVybChUKX0sVCkpKTpudWxsLFAmJlAuc2l6ZT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoJCx7cGFyYW1ldGVyczpNLHNwZWNQYXRoOmUucHVzaCgicGFyYW1ldGVycyIpLG9wZXJhdGlvbjpQLG9uQ2hhbmdlS2V5OlEsb25UcnlvdXRDbGljazphLG9uUmVzZXRDbGljazpvLG9uQ2FuY2VsQ2xpY2s6cyx0cnlJdE91dEVuYWJsZWQ6TixhbGxvd1RyeUl0T3V0Ok8sZm46aSxnZXRDb21wb25lbnQ6YyxzcGVjQWN0aW9uczpkLHNwZWNTZWxlY3RvcnM6cCxwYXRoTWV0aG9kOlt2LGJdLGdldENvbmZpZ3M6dSxvYXMzQWN0aW9uczpoLG9hczNTZWxlY3RvcnM6Z30pOm51bGwsTj9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoVyx7Z2V0Q29tcG9uZW50OmMscGF0aDp2LG1ldGhvZDpiLG9wZXJhdGlvblNlcnZlcnM6UC5nZXQoInNlcnZlcnMiKSxwYXRoU2VydmVyczpwLnBhdGhzKCkuZ2V0SW4oW3YsInNlcnZlcnMiXSksZ2V0U2VsZWN0ZWRTZXJ2ZXI6Zy5zZWxlY3RlZFNlcnZlcixzZXRTZWxlY3RlZFNlcnZlcjpoLnNldFNlbGVjdGVkU2VydmVyLHNldFNlcnZlclZhcmlhYmxlVmFsdWU6aC5zZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlLGdldFNlcnZlclZhcmlhYmxlOmcuc2VydmVyVmFyaWFibGVWYWx1ZSxnZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZTpnLnNlcnZlckVmZmVjdGl2ZVZhbHVlfSk6bnVsbCxOJiZPJiZSJiZSLnNpemU/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc2NoZW1lcyJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChLLHtzY2hlbWVzOlIscGF0aDp2LG1ldGhvZDpiLHNwZWNBY3Rpb25zOmQsY3VycmVudFNjaGVtZTpxfSkpOm51bGwsIU58fCFPfHxaLmxlbmd0aDw9MD9udWxsOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJ2YWxpZGF0aW9uLWVycm9ycyBlcnJvcnMtd3JhcHBlciJ9LCJQbGVhc2UgY29ycmVjdCB0aGUgZm9sbG93aW5nIHZhbGlkYXRpb24gZXJyb3JzIGFuZCB0cnkgYWdhaW4uIixIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInVsIixudWxsLFoubWFwKCgoZSx0KT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJsaSIse2tleTp0fSwiICIsZSwiICIpKSkpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpOJiZ0JiZPPyJidG4tZ3JvdXAiOiJleGVjdXRlLXdyYXBwZXIifSxOJiZPP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChWLHtvcGVyYXRpb246UCxzcGVjQWN0aW9uczpkLHNwZWNTZWxlY3RvcnM6cCxvYXMzU2VsZWN0b3JzOmcsb2FzM0FjdGlvbnM6aCxwYXRoOnYsbWV0aG9kOmIsb25FeGVjdXRlOmwsZGlzYWJsZWQ6QX0pOm51bGwsTiYmdCYmTz9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoSix7c3BlY0FjdGlvbnM6ZCxwYXRoOnYsbWV0aG9kOmJ9KTpudWxsKSxBP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJsb2FkaW5nLWNvbnRhaW5lciJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJsb2FkaW5nIn0pKTpudWxsLEI/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEQse3Jlc3BvbnNlczpCLHJlcXVlc3Q6cix0cnlJdE91dFJlc3BvbnNlOnQsZ2V0Q29tcG9uZW50OmMsZ2V0Q29uZmlnczp1LHNwZWNTZWxlY3RvcnM6cCxvYXMzQWN0aW9uczpoLG9hczNTZWxlY3RvcnM6ZyxzcGVjQWN0aW9uczpkLHByb2R1Y2VzOnAucHJvZHVjZXNPcHRpb25zRm9yKFt2LGJdKSxwcm9kdWNlc1ZhbHVlOnAuY3VycmVudFByb2R1Y2VzRm9yKFt2LGJdKSxzcGVjUGF0aDplLnB1c2goInJlc3BvbnNlcyIpLHBhdGg6dixtZXRob2Q6YixkaXNwbGF5UmVxdWVzdER1cmF0aW9uOmssZm46aX0pOm51bGwsWSYmVS5zaXplP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChILHtleHRlbnNpb25zOlUsZ2V0Q29tcG9uZW50OmN9KTpudWxsKSkpfX1jbGFzcyBPcGVyYXRpb25Db250YWluZXIgZXh0ZW5kcyBIZS5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KTtjb25zdHt0cnlJdE91dEVuYWJsZWQ6cn09ZS5nZXRDb25maWdzKCk7dGhpcy5zdGF0ZT17dHJ5SXRPdXRFbmFibGVkOnIsZXhlY3V0ZUluUHJvZ3Jlc3M6ITF9fXN0YXRpYyBkZWZhdWx0UHJvcHM9e3Nob3dTdW1tYXJ5OiEwLHJlc3BvbnNlOm51bGwsYWxsb3dUcnlJdE91dDohMCxkaXNwbGF5T3BlcmF0aW9uSWQ6ITEsZGlzcGxheVJlcXVlc3REdXJhdGlvbjohMX07bWFwU3RhdGVUb1Byb3BzKGUsdCl7Y29uc3R7b3A6cixsYXlvdXRTZWxlY3RvcnM6bixnZXRDb25maWdzOmF9PXQse2RvY0V4cGFuc2lvbjpvLGRlZXBMaW5raW5nOnMsZGlzcGxheU9wZXJhdGlvbklkOmwsZGlzcGxheVJlcXVlc3REdXJhdGlvbjppLHN1cHBvcnRlZFN1Ym1pdE1ldGhvZHM6Y309YSgpLHU9bi5zaG93U3VtbWFyeSgpLGQ9ci5nZXRJbihbIm9wZXJhdGlvbiIsIl9fb3JpZ2luYWxPcGVyYXRpb25JZCJdKXx8ci5nZXRJbihbIm9wZXJhdGlvbiIsIm9wZXJhdGlvbklkIl0pfHwoMCxZbi5vcElkKShyLmdldCgib3BlcmF0aW9uIiksdC5wYXRoLHQubWV0aG9kKXx8ci5nZXQoImlkIikscD1bIm9wZXJhdGlvbnMiLHQudGFnLGRdLG09Yy5pbmRleE9mKHQubWV0aG9kKT49MCYmKHZvaWQgMD09PXQuYWxsb3dUcnlJdE91dD90LnNwZWNTZWxlY3RvcnMuYWxsb3dUcnlJdE91dEZvcih0LnBhdGgsdC5tZXRob2QpOnQuYWxsb3dUcnlJdE91dCksZj1yLmdldEluKFsib3BlcmF0aW9uIiwic2VjdXJpdHkiXSl8fHQuc3BlY1NlbGVjdG9ycy5zZWN1cml0eSgpO3JldHVybntvcGVyYXRpb25JZDpkLGlzRGVlcExpbmtpbmdFbmFibGVkOnMsc2hvd1N1bW1hcnk6dSxkaXNwbGF5T3BlcmF0aW9uSWQ6bCxkaXNwbGF5UmVxdWVzdER1cmF0aW9uOmksYWxsb3dUcnlJdE91dDptLHNlY3VyaXR5OmYsaXNBdXRob3JpemVkOnQuYXV0aFNlbGVjdG9ycy5pc0F1dGhvcml6ZWQoZiksaXNTaG93bjpuLmlzU2hvd24ocCwiZnVsbCI9PT1vKSxqdW1wVG9LZXk6YHBhdGhzLiR7dC5wYXRofS4ke3QubWV0aG9kfWAscmVzcG9uc2U6dC5zcGVjU2VsZWN0b3JzLnJlc3BvbnNlRm9yKHQucGF0aCx0Lm1ldGhvZCkscmVxdWVzdDp0LnNwZWNTZWxlY3RvcnMucmVxdWVzdEZvcih0LnBhdGgsdC5tZXRob2QpfX1jb21wb25lbnREaWRNb3VudCgpe2NvbnN0e2lzU2hvd246ZX09dGhpcy5wcm9wcyx0PXRoaXMuZ2V0UmVzb2x2ZWRTdWJ0cmVlKCk7ZSYmdm9pZCAwPT09dCYmdGhpcy5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKCl9VU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoZSl7Y29uc3R7cmVzcG9uc2U6dCxpc1Nob3duOnJ9PWUsbj10aGlzLmdldFJlc29sdmVkU3VidHJlZSgpO3QhPT10aGlzLnByb3BzLnJlc3BvbnNlJiZ0aGlzLnNldFN0YXRlKHtleGVjdXRlSW5Qcm9ncmVzczohMX0pLHImJnZvaWQgMD09PW4mJnRoaXMucmVxdWVzdFJlc29sdmVkU3VidHJlZSgpfXRvZ2dsZVNob3duPSgpPT57bGV0e2xheW91dEFjdGlvbnM6ZSx0YWc6dCxvcGVyYXRpb25JZDpyLGlzU2hvd246bn09dGhpcy5wcm9wcztjb25zdCBhPXRoaXMuZ2V0UmVzb2x2ZWRTdWJ0cmVlKCk7bnx8dm9pZCAwIT09YXx8dGhpcy5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKCksZS5zaG93KFsib3BlcmF0aW9ucyIsdCxyXSwhbil9O29uQ2FuY2VsQ2xpY2s9KCk9Pnt0aGlzLnNldFN0YXRlKHt0cnlJdE91dEVuYWJsZWQ6IXRoaXMuc3RhdGUudHJ5SXRPdXRFbmFibGVkfSl9O29uVHJ5b3V0Q2xpY2s9KCk9Pnt0aGlzLnNldFN0YXRlKHt0cnlJdE91dEVuYWJsZWQ6IXRoaXMuc3RhdGUudHJ5SXRPdXRFbmFibGVkfSl9O29uUmVzZXRDbGljaz1lPT57Y29uc3QgdD10aGlzLnByb3BzLm9hczNTZWxlY3RvcnMuc2VsZWN0RGVmYXVsdFJlcXVlc3RCb2R5VmFsdWUoLi4uZSk7dGhpcy5wcm9wcy5vYXMzQWN0aW9ucy5zZXRSZXF1ZXN0Qm9keVZhbHVlKHt2YWx1ZTp0LHBhdGhNZXRob2Q6ZX0pfTtvbkV4ZWN1dGU9KCk9Pnt0aGlzLnNldFN0YXRlKHtleGVjdXRlSW5Qcm9ncmVzczohMH0pfTtnZXRSZXNvbHZlZFN1YnRyZWU9KCk9Pntjb25zdHtzcGVjU2VsZWN0b3JzOmUscGF0aDp0LG1ldGhvZDpyLHNwZWNQYXRoOm59PXRoaXMucHJvcHM7cmV0dXJuIG4/ZS5zcGVjUmVzb2x2ZWRTdWJ0cmVlKG4udG9KUygpKTplLnNwZWNSZXNvbHZlZFN1YnRyZWUoWyJwYXRocyIsdCxyXSl9O3JlcXVlc3RSZXNvbHZlZFN1YnRyZWU9KCk9Pntjb25zdHtzcGVjQWN0aW9uczplLHBhdGg6dCxtZXRob2Q6cixzcGVjUGF0aDpufT10aGlzLnByb3BzO3JldHVybiBuP2UucmVxdWVzdFJlc29sdmVkU3VidHJlZShuLnRvSlMoKSk6ZS5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKFsicGF0aHMiLHQscl0pfTtyZW5kZXIoKXtsZXR7b3A6ZSx0YWc6dCxwYXRoOnIsbWV0aG9kOm4sc2VjdXJpdHk6YSxpc0F1dGhvcml6ZWQ6byxvcGVyYXRpb25JZDpzLHNob3dTdW1tYXJ5OmwsaXNTaG93bjppLGp1bXBUb0tleTpjLGFsbG93VHJ5SXRPdXQ6dSxyZXNwb25zZTpkLHJlcXVlc3Q6cCxkaXNwbGF5T3BlcmF0aW9uSWQ6bSxkaXNwbGF5UmVxdWVzdER1cmF0aW9uOmYsaXNEZWVwTGlua2luZ0VuYWJsZWQ6aCxzcGVjUGF0aDpnLHNwZWNTZWxlY3RvcnM6eSxzcGVjQWN0aW9uczpTLGdldENvbXBvbmVudDpfLGdldENvbmZpZ3M6dixsYXlvdXRTZWxlY3RvcnM6YixsYXlvdXRBY3Rpb25zOncsYXV0aEFjdGlvbnM6QyxhdXRoU2VsZWN0b3JzOngsb2FzM0FjdGlvbnM6TyxvYXMzU2VsZWN0b3JzOmssZm46Tn09dGhpcy5wcm9wcztjb25zdCBBPV8oIm9wZXJhdGlvbiIpLEk9dGhpcy5nZXRSZXNvbHZlZFN1YnRyZWUoKXx8KDAsWGUuTWFwKSgpLGo9KDAsWGUuZnJvbUpTKSh7b3A6SSx0YWc6dCxwYXRoOnIsc3VtbWFyeTplLmdldEluKFsib3BlcmF0aW9uIiwic3VtbWFyeSJdKXx8IiIsZGVwcmVjYXRlZDpJLmdldCgiZGVwcmVjYXRlZCIpfHxlLmdldEluKFsib3BlcmF0aW9uIiwiZGVwcmVjYXRlZCJdKXx8ITEsbWV0aG9kOm4sc2VjdXJpdHk6YSxpc0F1dGhvcml6ZWQ6byxvcGVyYXRpb25JZDpzLG9yaWdpbmFsT3BlcmF0aW9uSWQ6SS5nZXRJbihbIm9wZXJhdGlvbiIsIl9fb3JpZ2luYWxPcGVyYXRpb25JZCJdKSxzaG93U3VtbWFyeTpsLGlzU2hvd246aSxqdW1wVG9LZXk6YyxhbGxvd1RyeUl0T3V0OnUscmVxdWVzdDpwLGRpc3BsYXlPcGVyYXRpb25JZDptLGRpc3BsYXlSZXF1ZXN0RHVyYXRpb246Zixpc0RlZXBMaW5raW5nRW5hYmxlZDpoLGV4ZWN1dGVJblByb2dyZXNzOnRoaXMuc3RhdGUuZXhlY3V0ZUluUHJvZ3Jlc3MsdHJ5SXRPdXRFbmFibGVkOnRoaXMuc3RhdGUudHJ5SXRPdXRFbmFibGVkfSk7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChBLHtvcGVyYXRpb246aixyZXNwb25zZTpkLHJlcXVlc3Q6cCxpc1Nob3duOmksdG9nZ2xlU2hvd246dGhpcy50b2dnbGVTaG93bixvblRyeW91dENsaWNrOnRoaXMub25UcnlvdXRDbGljayxvblJlc2V0Q2xpY2s6dGhpcy5vblJlc2V0Q2xpY2ssb25DYW5jZWxDbGljazp0aGlzLm9uQ2FuY2VsQ2xpY2ssb25FeGVjdXRlOnRoaXMub25FeGVjdXRlLHNwZWNQYXRoOmcsc3BlY0FjdGlvbnM6UyxzcGVjU2VsZWN0b3JzOnksb2FzM0FjdGlvbnM6TyxvYXMzU2VsZWN0b3JzOmssbGF5b3V0QWN0aW9uczp3LGxheW91dFNlbGVjdG9yczpiLGF1dGhBY3Rpb25zOkMsYXV0aFNlbGVjdG9yczp4LGdldENvbXBvbmVudDpfLGdldENvbmZpZ3M6dixmbjpOfSl9fXZhciB3YT1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQsZSksdH0oe2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gZmUuZGVmYXVsdH19KTtjbGFzcyBPcGVyYXRpb25TdW1tYXJ5IGV4dGVuZHMgSGUuUHVyZUNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXtvcGVyYXRpb25Qcm9wczpudWxsLHNwZWNQYXRoOigwLFhlLkxpc3QpKCksc3VtbWFyeToiIn07cmVuZGVyKCl7bGV0e2lzU2hvd246ZSx0b2dnbGVTaG93bjp0LGdldENvbXBvbmVudDpyLGF1dGhBY3Rpb25zOm4sYXV0aFNlbGVjdG9yczphLG9wZXJhdGlvblByb3BzOm8sc3BlY1BhdGg6c309dGhpcy5wcm9wcyx7c3VtbWFyeTpsLGlzQXV0aG9yaXplZDppLG1ldGhvZDpjLG9wOnUsc2hvd1N1bW1hcnk6ZCxwYXRoOnAsb3BlcmF0aW9uSWQ6bSxvcmlnaW5hbE9wZXJhdGlvbklkOmYsZGlzcGxheU9wZXJhdGlvbklkOmh9PW8udG9KUygpLHtzdW1tYXJ5Omd9PXUseT1vLmdldCgic2VjdXJpdHkiKTtjb25zdCBTPXIoImF1dGhvcml6ZU9wZXJhdGlvbkJ0biIsITApLF89cigiT3BlcmF0aW9uU3VtbWFyeU1ldGhvZCIpLHY9cigiT3BlcmF0aW9uU3VtbWFyeVBhdGgiKSxiPXIoIkp1bXBUb1BhdGgiLCEwKSx3PXIoIkNvcHlUb0NsaXBib2FyZEJ0biIsITApLEM9cigiQXJyb3dVcEljb24iKSx4PXIoIkFycm93RG93bkljb24iKSxPPXkmJiEheS5jb3VudCgpLGs9TyYmMT09PXkuc2l6ZSYmeS5maXJzdCgpLmlzRW1wdHkoKSxOPSFPfHxrO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgb3BibG9jay1zdW1tYXJ5IG9wYmxvY2stc3VtbWFyeS0ke2N9YH0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJidXR0b24iLHsiYXJpYS1leHBhbmRlZCI6ZSxjbGFzc05hbWU6Im9wYmxvY2stc3VtbWFyeS1jb250cm9sIixvbkNsaWNrOnR9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChfLHttZXRob2Q6Y30pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXN1bW1hcnktcGF0aC1kZXNjcmlwdGlvbi13cmFwcGVyIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHYse2dldENvbXBvbmVudDpyLG9wZXJhdGlvblByb3BzOm8sc3BlY1BhdGg6c30pLGQ/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc3VtbWFyeS1kZXNjcmlwdGlvbiJ9LCgwLHdhLmRlZmF1bHQpKGd8fGwpKTpudWxsKSxoJiYoZnx8bSk/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJvcGJsb2NrLXN1bW1hcnktb3BlcmF0aW9uLWlkIn0sZnx8bSk6bnVsbCksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHcse3RleHRUb0NvcHk6YCR7cy5nZXQoMSl9YH0pLE4/bnVsbDpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoUyx7aXNBdXRob3JpemVkOmksb25DbGljazooKT0+e2NvbnN0IGU9YS5kZWZpbml0aW9uc0ZvclJlcXVpcmVtZW50cyh5KTtuLnNob3dEZWZpbml0aW9ucyhlKX19KSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYix7cGF0aDpzfSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJidXR0b24iLHsiYXJpYS1sYWJlbCI6YCR7Y30gJHtwLnJlcGxhY2UoL1wvL2csIuKAiy8iKX1gLGNsYXNzTmFtZToib3BibG9jay1jb250cm9sLWFycm93IiwiYXJpYS1leHBhbmRlZCI6ZSx0YWJJbmRleDoiLTEiLG9uQ2xpY2s6dH0sZT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQyx7Y2xhc3NOYW1lOiJhcnJvdyJ9KTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoeCx7Y2xhc3NOYW1lOiJhcnJvdyJ9KSkpfX1jbGFzcyBPcGVyYXRpb25TdW1tYXJ5TWV0aG9kIGV4dGVuZHMgSGUuUHVyZUNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXtvcGVyYXRpb25Qcm9wczpudWxsfTtyZW5kZXIoKXtsZXR7bWV0aG9kOmV9PXRoaXMucHJvcHM7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToib3BibG9jay1zdW1tYXJ5LW1ldGhvZCJ9LGUudG9VcHBlckNhc2UoKSl9fWNsYXNzIE9wZXJhdGlvblN1bW1hcnlQYXRoIGV4dGVuZHMgSGUuUHVyZUNvbXBvbmVudHtyZW5kZXIoKXtsZXR7Z2V0Q29tcG9uZW50OmUsb3BlcmF0aW9uUHJvcHM6dH09dGhpcy5wcm9wcyx7ZGVwcmVjYXRlZDpyLGlzU2hvd246bixwYXRoOmEsdGFnOm8sb3BlcmF0aW9uSWQ6cyxpc0RlZXBMaW5raW5nRW5hYmxlZDpsfT10LnRvSlMoKTtjb25zdCBpPWEuc3BsaXQoLyg/PVwvKS9nKTtmb3IobGV0IGU9MTtlPGkubGVuZ3RoO2UrPTIpaS5zcGxpY2UoZSwwLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgid2JyIix7a2V5OmV9KSk7Y29uc3QgYz1lKCJEZWVwTGluayIpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cj8ib3BibG9jay1zdW1tYXJ5LXBhdGhfX2RlcHJlY2F0ZWQiOiJvcGJsb2NrLXN1bW1hcnktcGF0aCIsImRhdGEtcGF0aCI6YX0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGMse2VuYWJsZWQ6bCxpc1Nob3duOm4scGF0aDpjcmVhdGVEZWVwTGlua1BhdGgoYCR7b30vJHtzfWApLHRleHQ6aX0pKX19dmFyIG9wZXJhdGlvbl9leHRlbnNpb25zPSh7ZXh0ZW5zaW9uczplLGdldENvbXBvbmVudDp0fSk9PntsZXQgcj10KCJPcGVyYXRpb25FeHRSb3ciKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc2VjdGlvbiJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXNlY3Rpb24taGVhZGVyIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJoNCIsbnVsbCwiRXh0ZW5zaW9ucyIpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidGFibGUtY29udGFpbmVyIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRoZWFkIixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidHIiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToiY29sX2hlYWRlciJ9LCJGaWVsZCIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6ImNvbF9oZWFkZXIifSwiVmFsdWUiKSkpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGJvZHkiLG51bGwsZS5lbnRyeVNlcSgpLm1hcCgoKFtlLHRdKT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHIse2tleTpgJHtlfS0ke3R9YCx4S2V5OmUseFZhbDp0fSkpKSkpKSl9O3ZhciBvcGVyYXRpb25fZXh0ZW5zaW9uX3Jvdz0oe3hLZXk6ZSx4VmFsOnR9KT0+e2NvbnN0IHI9dD90LnRvSlM/dC50b0pTKCk6dDpudWxsO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRyIixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsZSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxKU09OLnN0cmluZ2lmeShyKSkpfTtmdW5jdGlvbiBjcmVhdGVIdG1sUmVhZHlJZChlLHQ9Il8iKXtyZXR1cm4gZS5yZXBsYWNlKC9bXlx3LV0vZyx0KX1jbGFzcyBSZXNwb25zZXMgZXh0ZW5kcyBIZS5kZWZhdWx0LkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXt0cnlJdE91dFJlc3BvbnNlOm51bGwscHJvZHVjZXM6KDAsWGUuZnJvbUpTKShbImFwcGxpY2F0aW9uL2pzb24iXSksZGlzcGxheVJlcXVlc3REdXJhdGlvbjohMX07b25DaGFuZ2VQcm9kdWNlc1dyYXBwZXI9ZT0+dGhpcy5wcm9wcy5zcGVjQWN0aW9ucy5jaGFuZ2VQcm9kdWNlc1ZhbHVlKFt0aGlzLnByb3BzLnBhdGgsdGhpcy5wcm9wcy5tZXRob2RdLGUpO29uUmVzcG9uc2VDb250ZW50VHlwZUNoYW5nZT0oe2NvbnRyb2xzQWNjZXB0SGVhZGVyOmUsdmFsdWU6dH0pPT57Y29uc3R7b2FzM0FjdGlvbnM6cixwYXRoOm4sbWV0aG9kOmF9PXRoaXMucHJvcHM7ZSYmci5zZXRSZXNwb25zZUNvbnRlbnRUeXBlKHt2YWx1ZTp0LHBhdGg6bixtZXRob2Q6YX0pfTtyZW5kZXIoKXtsZXR7cmVzcG9uc2VzOmUsdHJ5SXRPdXRSZXNwb25zZTp0LGdldENvbXBvbmVudDpyLGdldENvbmZpZ3M6bixzcGVjU2VsZWN0b3JzOmEsZm46byxwcm9kdWNlc1ZhbHVlOnMsZGlzcGxheVJlcXVlc3REdXJhdGlvbjpsLHNwZWNQYXRoOmkscGF0aDpjLG1ldGhvZDp1LG9hczNTZWxlY3RvcnM6ZCxvYXMzQWN0aW9uczpwfT10aGlzLnByb3BzLG09ZnVuY3Rpb24gZGVmYXVsdFN0YXR1c0NvZGUoZSl7bGV0IHQ9ZS5rZXlTZXEoKTtyZXR1cm4gdC5jb250YWlucyh3dCk/d3Q6dC5maWx0ZXIoKGU9PiIyIj09PShlKyIiKVswXSkpLnNvcnQoKS5maXJzdCgpfShlKTtjb25zdCBmPXIoImNvbnRlbnRUeXBlIiksaD1yKCJsaXZlUmVzcG9uc2UiKSxnPXIoInJlc3BvbnNlIik7bGV0IHk9dGhpcy5wcm9wcy5wcm9kdWNlcyYmdGhpcy5wcm9wcy5wcm9kdWNlcy5zaXplP3RoaXMucHJvcHMucHJvZHVjZXM6UmVzcG9uc2VzLmRlZmF1bHRQcm9wcy5wcm9kdWNlcztjb25zdCBTPWEuaXNPQVMzKCk/ZnVuY3Rpb24gZ2V0QWNjZXB0Q29udHJvbGxpbmdSZXNwb25zZShlKXtpZighWGUuZGVmYXVsdC5PcmRlcmVkTWFwLmlzT3JkZXJlZE1hcChlKSlyZXR1cm4gbnVsbDtpZighZS5zaXplKXJldHVybiBudWxsO2NvbnN0IHQ9ZS5maW5kKCgoZSx0KT0+dC5zdGFydHNXaXRoKCIyIikmJk9iamVjdC5rZXlzKGUuZ2V0KCJjb250ZW50Iil8fHt9KS5sZW5ndGg+MCkpLHI9ZS5nZXQoImRlZmF1bHQiKXx8WGUuZGVmYXVsdC5PcmRlcmVkTWFwKCksbj0oci5nZXQoImNvbnRlbnQiKXx8WGUuZGVmYXVsdC5PcmRlcmVkTWFwKCkpLmtleVNlcSgpLnRvSlMoKS5sZW5ndGg/cjpudWxsO3JldHVybiB0fHxufShlKTpudWxsLF89Y3JlYXRlSHRtbFJlYWR5SWQoYCR7dX0ke2N9X3Jlc3BvbnNlc2ApLHY9YCR7X31fc2VsZWN0YDtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InJlc3BvbnNlcy13cmFwcGVyIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc2VjdGlvbi1oZWFkZXIifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLCJSZXNwb25zZXMiKSxhLmlzT0FTMygpP251bGw6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6dn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCJSZXNwb25zZSBjb250ZW50IHR5cGUiKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoZix7dmFsdWU6cyxhcmlhQ29udHJvbHM6XyxhcmlhTGFiZWw6IlJlc3BvbnNlIGNvbnRlbnQgdHlwZSIsY2xhc3NOYW1lOiJleGVjdXRlLWNvbnRlbnQtdHlwZSIsY29udGVudFR5cGVzOnksY29udHJvbElkOnYsb25DaGFuZ2U6dGhpcy5vbkNoYW5nZVByb2R1Y2VzV3JhcHBlcn0pKSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InJlc3BvbnNlcy1pbm5lciJ9LHQ/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGgse3Jlc3BvbnNlOnQsZ2V0Q29tcG9uZW50OnIsZ2V0Q29uZmlnczpuLHNwZWNTZWxlY3RvcnM6YSxwYXRoOnRoaXMucHJvcHMucGF0aCxtZXRob2Q6dGhpcy5wcm9wcy5tZXRob2QsZGlzcGxheVJlcXVlc3REdXJhdGlvbjpsfSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJoNCIsbnVsbCwiUmVzcG9uc2VzIikpOm51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIseyJhcmlhLWxpdmUiOiJwb2xpdGUiLGNsYXNzTmFtZToicmVzcG9uc2VzLXRhYmxlIixpZDpfLHJvbGU6InJlZ2lvbiJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGhlYWQiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ciIse2NsYXNzTmFtZToicmVzcG9uc2VzLWhlYWRlciJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6ImNvbF9oZWFkZXIgcmVzcG9uc2UtY29sX3N0YXR1cyJ9LCJDb2RlIiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToiY29sX2hlYWRlciByZXNwb25zZS1jb2xfZGVzY3JpcHRpb24ifSwiRGVzY3JpcHRpb24iKSxhLmlzT0FTMygpP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6ImNvbCBjb2xfaGVhZGVyIHJlc3BvbnNlLWNvbF9saW5rcyJ9LCJMaW5rcyIpOm51bGwpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRib2R5IixudWxsLGUuZW50cnlTZXEoKS5tYXAoKChbZSxsXSk9PntsZXQgZj10JiZ0LmdldCgic3RhdHVzIik9PWU/InJlc3BvbnNlX2N1cnJlbnQiOiIiO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoZyx7a2V5OmUscGF0aDpjLG1ldGhvZDp1LHNwZWNQYXRoOmkucHVzaChlKSxpc0RlZmF1bHQ6bT09PWUsZm46byxjbGFzc05hbWU6Zixjb2RlOmUscmVzcG9uc2U6bCxzcGVjU2VsZWN0b3JzOmEsY29udHJvbHNBY2NlcHRIZWFkZXI6bD09PVMsb25Db250ZW50VHlwZUNoYW5nZTp0aGlzLm9uUmVzcG9uc2VDb250ZW50VHlwZUNoYW5nZSxjb250ZW50VHlwZTpzLGdldENvbmZpZ3M6bixhY3RpdmVFeGFtcGxlc0tleTpkLmFjdGl2ZUV4YW1wbGVzTWVtYmVyKGMsdSwicmVzcG9uc2VzIixlKSxvYXMzQWN0aW9uczpwLGdldENvbXBvbmVudDpyfSl9KSkudG9BcnJheSgpKSkpKX19ZnVuY3Rpb24gZ2V0S25vd25TeW50YXhIaWdobGlnaHRlckxhbmd1YWdlKGUpe3JldHVybiBmdW5jdGlvbiBjYW5Kc29uUGFyc2UoZSl7dHJ5e3JldHVybiEhSlNPTi5wYXJzZShlKX1jYXRjaChlKXtyZXR1cm4gbnVsbH19KGUpPyJqc29uIjpudWxsfWNsYXNzIFJlc3BvbnNlIGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLHRoaXMuc3RhdGU9e3Jlc3BvbnNlQ29udGVudFR5cGU6IiJ9fXN0YXRpYyBkZWZhdWx0UHJvcHM9e3Jlc3BvbnNlOigwLFhlLmZyb21KUykoe30pLG9uQ29udGVudFR5cGVDaGFuZ2U6KCk9Pnt9fTtfb25Db250ZW50VHlwZUNoYW5nZT1lPT57Y29uc3R7b25Db250ZW50VHlwZUNoYW5nZTp0LGNvbnRyb2xzQWNjZXB0SGVhZGVyOnJ9PXRoaXMucHJvcHM7dGhpcy5zZXRTdGF0ZSh7cmVzcG9uc2VDb250ZW50VHlwZTplfSksdCh7dmFsdWU6ZSxjb250cm9sc0FjY2VwdEhlYWRlcjpyfSl9O2dldFRhcmdldEV4YW1wbGVzS2V5PSgpPT57Y29uc3R7cmVzcG9uc2U6ZSxjb250ZW50VHlwZTp0LGFjdGl2ZUV4YW1wbGVzS2V5OnJ9PXRoaXMucHJvcHMsbj10aGlzLnN0YXRlLnJlc3BvbnNlQ29udGVudFR5cGV8fHQsYT1lLmdldEluKFsiY29udGVudCIsbl0sKDAsWGUuTWFwKSh7fSkpLmdldCgiZXhhbXBsZXMiLG51bGwpLmtleVNlcSgpLmZpcnN0KCk7cmV0dXJuIHJ8fGF9O3JlbmRlcigpe2xldHtwYXRoOmUsbWV0aG9kOnQsY29kZTpyLHJlc3BvbnNlOm4sY2xhc3NOYW1lOmEsc3BlY1BhdGg6byxmbjpzLGdldENvbXBvbmVudDpsLGdldENvbmZpZ3M6aSxzcGVjU2VsZWN0b3JzOmMsY29udGVudFR5cGU6dSxjb250cm9sc0FjY2VwdEhlYWRlcjpkLG9hczNBY3Rpb25zOnB9PXRoaXMucHJvcHMse2luZmVyU2NoZW1hOm0sZ2V0U2FtcGxlU2NoZW1hOmZ9PXMsaD1jLmlzT0FTMygpO2NvbnN0e3Nob3dFeHRlbnNpb25zOmd9PWkoKTtsZXQgeT1nP2dldEV4dGVuc2lvbnMobik6bnVsbCxTPW4uZ2V0KCJoZWFkZXJzIiksXz1uLmdldCgibGlua3MiKTtjb25zdCB2PWwoIlJlc3BvbnNlRXh0ZW5zaW9uIiksYj1sKCJoZWFkZXJzIiksdz1sKCJIaWdobGlnaHRDb2RlIiwhMCksQz1sKCJtb2RlbEV4YW1wbGUiKSx4PWwoIk1hcmtkb3duIiwhMCksTz1sKCJvcGVyYXRpb25MaW5rIiksaz1sKCJjb250ZW50VHlwZSIpLE49bCgiRXhhbXBsZXNTZWxlY3QiKSxBPWwoIkV4YW1wbGUiKTt2YXIgSSxqO2NvbnN0IFI9dGhpcy5zdGF0ZS5yZXNwb25zZUNvbnRlbnRUeXBlfHx1LFQ9bi5nZXRJbihbImNvbnRlbnQiLFJdLCgwLFhlLk1hcCkoe30pKSxQPVQuZ2V0KCJleGFtcGxlcyIsbnVsbCk7aWYoaCl7Y29uc3QgZT1ULmdldCgic2NoZW1hIik7ST1lP20oZS50b0pTKCkpOm51bGwsaj1lPygwLFhlLkxpc3QpKFsiY29udGVudCIsdGhpcy5zdGF0ZS5yZXNwb25zZUNvbnRlbnRUeXBlLCJzY2hlbWEiXSk6b31lbHNlIEk9bi5nZXQoInNjaGVtYSIpLGo9bi5oYXMoInNjaGVtYSIpP28ucHVzaCgic2NoZW1hIik6bztsZXQgQixNLHE9ITEsTD17aW5jbHVkZVJlYWRPbmx5OiEwfTtpZihoKWlmKE09VC5nZXQoInNjaGVtYSIpPy50b0pTKCksWGUuTWFwLmlzTWFwKFApJiYhUC5pc0VtcHR5KCkpe2NvbnN0IGU9dGhpcy5nZXRUYXJnZXRFeGFtcGxlc0tleSgpLGdldE1lZGlhVHlwZUV4YW1wbGU9ZT0+WGUuTWFwLmlzTWFwKGUpP2UuZ2V0KCJ2YWx1ZSIpOnZvaWQgMDtCPWdldE1lZGlhVHlwZUV4YW1wbGUoUC5nZXQoZSwoMCxYZS5NYXApKHt9KSkpLHZvaWQgMD09PUImJihCPWdldE1lZGlhVHlwZUV4YW1wbGUoUC52YWx1ZXMoKS5uZXh0KCkudmFsdWUpKSxxPSEwfWVsc2Ugdm9pZCAwIT09VC5nZXQoImV4YW1wbGUiKSYmKEI9VC5nZXQoImV4YW1wbGUiKSxxPSEwKTtlbHNle009SSxMPXsuLi5MLGluY2x1ZGVXcml0ZU9ubHk6ITB9O2NvbnN0IGU9bi5nZXRJbihbImV4YW1wbGVzIixSXSk7ZSYmKEI9ZSxxPSEwKX1jb25zdCBVPSgoZSx0KT0+e2lmKG51bGw9PWUpcmV0dXJuIG51bGw7Y29uc3Qgcj1nZXRLbm93blN5bnRheEhpZ2hsaWdodGVyTGFuZ3VhZ2UoZSk/Impzb24iOm51bGw7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh0LHtjbGFzc05hbWU6ImV4YW1wbGUiLGxhbmd1YWdlOnJ9LHN0cmluZ2lmeShlKSkpfSkoZihNLFIsTCxxP0I6dm9pZCAwKSx3KTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ciIse2NsYXNzTmFtZToicmVzcG9uc2UgIisoYXx8IiIpLCJkYXRhLWNvZGUiOnJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6InJlc3BvbnNlLWNvbF9zdGF0dXMifSxyKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJyZXNwb25zZS1jb2xfZGVzY3JpcHRpb24ifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicmVzcG9uc2UtY29sX2Rlc2NyaXB0aW9uX19pbm5lciJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh4LHtzb3VyY2U6bi5nZXQoImRlc2NyaXB0aW9uIil9KSksZyYmeS5zaXplP3kuZW50cnlTZXEoKS5tYXAoKChbZSx0XSk9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh2LHtrZXk6YCR7ZX0tJHt0fWAseEtleTplLHhWYWw6dH0pKSk6bnVsbCxoJiZuLmdldCgiY29udGVudCIpP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIse2NsYXNzTmFtZToicmVzcG9uc2UtY29udHJvbHMifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTooMCxoci5kZWZhdWx0KSgicmVzcG9uc2UtY29udHJvbC1tZWRpYS10eXBlIix7InJlc3BvbnNlLWNvbnRyb2wtbWVkaWEtdHlwZS0tYWNjZXB0LWNvbnRyb2xsZXIiOmR9KX0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzbWFsbCIse2NsYXNzTmFtZToicmVzcG9uc2UtY29udHJvbC1tZWRpYS10eXBlX190aXRsZSJ9LCJNZWRpYSB0eXBlIiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGsse3ZhbHVlOnRoaXMuc3RhdGUucmVzcG9uc2VDb250ZW50VHlwZSxjb250ZW50VHlwZXM6bi5nZXQoImNvbnRlbnQiKT9uLmdldCgiY29udGVudCIpLmtleVNlcSgpOigwLFhlLlNlcSkoKSxvbkNoYW5nZTp0aGlzLl9vbkNvbnRlbnRUeXBlQ2hhbmdlLGFyaWFMYWJlbDoiTWVkaWEgVHlwZSJ9KSxkP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic21hbGwiLHtjbGFzc05hbWU6InJlc3BvbnNlLWNvbnRyb2wtbWVkaWEtdHlwZV9fYWNjZXB0LW1lc3NhZ2UifSwiQ29udHJvbHMgIixIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIkFjY2VwdCIpLCIgaGVhZGVyLiIpOm51bGwpLFhlLk1hcC5pc01hcChQKSYmIVAuaXNFbXB0eSgpP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJyZXNwb25zZS1jb250cm9sLWV4YW1wbGVzIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzbWFsbCIse2NsYXNzTmFtZToicmVzcG9uc2UtY29udHJvbC1leGFtcGxlc19fdGl0bGUifSwiRXhhbXBsZXMiKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoTix7ZXhhbXBsZXM6UCxjdXJyZW50RXhhbXBsZUtleTp0aGlzLmdldFRhcmdldEV4YW1wbGVzS2V5KCksb25TZWxlY3Q6bj0+cC5zZXRBY3RpdmVFeGFtcGxlc01lbWJlcih7bmFtZTpuLHBhdGhNZXRob2Q6W2UsdF0sY29udGV4dFR5cGU6InJlc3BvbnNlcyIsY29udGV4dE5hbWU6cn0pLHNob3dMYWJlbHM6ITF9KSk6bnVsbCk6bnVsbCxVfHxJP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChDLHtzcGVjUGF0aDpqLGdldENvbXBvbmVudDpsLGdldENvbmZpZ3M6aSxzcGVjU2VsZWN0b3JzOmMsc2NoZW1hOmZyb21KU09yZGVyZWQoSSksZXhhbXBsZTpVLGluY2x1ZGVSZWFkT25seTohMH0pOm51bGwsaCYmUD9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQSx7ZXhhbXBsZTpQLmdldCh0aGlzLmdldFRhcmdldEV4YW1wbGVzS2V5KCksKDAsWGUuTWFwKSh7fSkpLGdldENvbXBvbmVudDpsLGdldENvbmZpZ3M6aSxvbWl0VmFsdWU6ITB9KTpudWxsLFM/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGIse2hlYWRlcnM6UyxnZXRDb21wb25lbnQ6bH0pOm51bGwpLGg/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToicmVzcG9uc2UtY29sX2xpbmtzIn0sXz9fLnRvU2VxKCkuZW50cnlTZXEoKS5tYXAoKChbZSx0XSk9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChPLHtrZXk6ZSxuYW1lOmUsbGluazp0LGdldENvbXBvbmVudDpsfSkpKTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImkiLG51bGwsIk5vIGxpbmtzIikpOm51bGwpfX12YXIgcmVzcG9uc2VfZXh0ZW5zaW9uPSh7eEtleTplLHhWYWw6dH0pPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicmVzcG9uc2VfX2V4dGVuc2lvbiJ9LGUsIjogIixTdHJpbmcodCkpLENhPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBoZS5kZWZhdWx0fX0pLHhhPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBnZS5kZWZhdWx0fX0pO2NsYXNzIFJlc3BvbnNlQm9keSBleHRlbmRzIEhlLmRlZmF1bHQuUHVyZUNvbXBvbmVudHtzdGF0ZT17cGFyc2VkQ29udGVudDpudWxsfTt1cGRhdGVQYXJzZWRDb250ZW50PWU9Pntjb25zdHtjb250ZW50OnR9PXRoaXMucHJvcHM7aWYoZSE9PXQpaWYodCYmdCBpbnN0YW5jZW9mIEJsb2Ipe3ZhciByPW5ldyBGaWxlUmVhZGVyO3Iub25sb2FkPSgpPT57dGhpcy5zZXRTdGF0ZSh7cGFyc2VkQ29udGVudDpyLnJlc3VsdH0pfSxyLnJlYWRBc1RleHQodCl9ZWxzZSB0aGlzLnNldFN0YXRlKHtwYXJzZWRDb250ZW50OnQudG9TdHJpbmcoKX0pfTtjb21wb25lbnREaWRNb3VudCgpe3RoaXMudXBkYXRlUGFyc2VkQ29udGVudChudWxsKX1jb21wb25lbnREaWRVcGRhdGUoZSl7dGhpcy51cGRhdGVQYXJzZWRDb250ZW50KGUuY29udGVudCl9cmVuZGVyKCl7bGV0e2NvbnRlbnQ6ZSxjb250ZW50VHlwZTp0LHVybDpyLGhlYWRlcnM6bj17fSxnZXRDb21wb25lbnQ6YX09dGhpcy5wcm9wcztjb25zdHtwYXJzZWRDb250ZW50Om99PXRoaXMuc3RhdGUscz1hKCJIaWdobGlnaHRDb2RlIiwhMCksbD0icmVzcG9uc2VfIisobmV3IERhdGUpLmdldFRpbWUoKTtsZXQgaSxjO2lmKHI9cnx8IiIsKC9eYXBwbGljYXRpb25cL29jdGV0LXN0cmVhbS9pLnRlc3QodCl8fG5bIkNvbnRlbnQtRGlzcG9zaXRpb24iXSYmL2F0dGFjaG1lbnQvaS50ZXN0KG5bIkNvbnRlbnQtRGlzcG9zaXRpb24iXSl8fG5bImNvbnRlbnQtZGlzcG9zaXRpb24iXSYmL2F0dGFjaG1lbnQvaS50ZXN0KG5bImNvbnRlbnQtZGlzcG9zaXRpb24iXSl8fG5bIkNvbnRlbnQtRGVzY3JpcHRpb24iXSYmL0ZpbGUgVHJhbnNmZXIvaS50ZXN0KG5bIkNvbnRlbnQtRGVzY3JpcHRpb24iXSl8fG5bImNvbnRlbnQtZGVzY3JpcHRpb24iXSYmL0ZpbGUgVHJhbnNmZXIvaS50ZXN0KG5bImNvbnRlbnQtZGVzY3JpcHRpb24iXSkpJiYoZS5zaXplPjB8fGUubGVuZ3RoPjApKWlmKCJCbG9iImluIHdpbmRvdyl7bGV0IGE9dHx8InRleHQvaHRtbCIsbz1lIGluc3RhbmNlb2YgQmxvYj9lOm5ldyBCbG9iKFtlXSx7dHlwZTphfSkscz13aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChvKSxsPVthLHIuc3Vic3RyKHIubGFzdEluZGV4T2YoIi8iKSsxKSxzXS5qb2luKCI6IiksaT1uWyJjb250ZW50LWRpc3Bvc2l0aW9uIl18fG5bIkNvbnRlbnQtRGlzcG9zaXRpb24iXTtpZih2b2lkIDAhPT1pKXtsZXQgZT1mdW5jdGlvbiBleHRyYWN0RmlsZU5hbWVGcm9tQ29udGVudERpc3Bvc2l0aW9uSGVhZGVyKGUpe2xldCB0O2lmKFsvZmlsZW5hbWVcKj1bXiddKydcdyonIihbXiJdKykiOz8vaSwvZmlsZW5hbWVcKj1bXiddKydcdyonKFteO10rKTs/L2ksL2ZpbGVuYW1lPSIoW147XSopOz8iL2ksL2ZpbGVuYW1lPShbXjtdKik7Py9pXS5zb21lKChyPT4odD1yLmV4ZWMoZSksbnVsbCE9PXQpKSksbnVsbCE9PXQmJnQubGVuZ3RoPjEpdHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQodFsxXSl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX1yZXR1cm4gbnVsbH0oaSk7bnVsbCE9PWUmJihsPWUpfWM9Y3QubmF2aWdhdG9yJiZjdC5uYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYj9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImEiLHtocmVmOnMsb25DbGljazooKT0+Y3QubmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IobyxsKX0sIkRvd25sb2FkIGZpbGUiKSk6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJhIix7aHJlZjpzLGRvd25sb2FkOmx9LCJEb3dubG9hZCBmaWxlIikpfWVsc2UgYz1IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInByZSIse2NsYXNzTmFtZToibWljcm9saWdodCJ9LCJEb3dubG9hZCBoZWFkZXJzIGRldGVjdGVkIGJ1dCB5b3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBkb3dubG9hZGluZyBiaW5hcnkgdmlhIFhIUiAoQmxvYikuIik7ZWxzZSBpZigvanNvbi9pLnRlc3QodCkpe2xldCB0PW51bGw7Z2V0S25vd25TeW50YXhIaWdobGlnaHRlckxhbmd1YWdlKGUpJiYodD0ianNvbiIpO3RyeXtpPUpTT04uc3RyaW5naWZ5KEpTT04ucGFyc2UoZSksbnVsbCwiICAiKX1jYXRjaCh0KXtpPSJjYW4ndCBwYXJzZSBKU09OLiAgUmF3IHJlc3VsdDpcblxuIitlfWM9SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHMse2xhbmd1YWdlOnQsZG93bmxvYWRhYmxlOiEwLGZpbGVOYW1lOmAke2x9Lmpzb25gLGNhbkNvcHk6ITB9LGkpfWVsc2UveG1sL2kudGVzdCh0KT8oaT0oMCxDYS5kZWZhdWx0KShlLHt0ZXh0Tm9kZXNPblNhbWVMaW5lOiEwLGluZGVudG9yOiIgICJ9KSxjPUhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChzLHtkb3dubG9hZGFibGU6ITAsZmlsZU5hbWU6YCR7bH0ueG1sYCxjYW5Db3B5OiEwfSxpKSk6Yz0idGV4dC9odG1sIj09PSgwLHhhLmRlZmF1bHQpKHQpfHwvdGV4dFwvcGxhaW4vLnRlc3QodCk/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHMse2Rvd25sb2FkYWJsZTohMCxmaWxlTmFtZTpgJHtsfS5odG1sYCxjYW5Db3B5OiEwfSxlKToidGV4dC9jc3YiPT09KDAseGEuZGVmYXVsdCkodCl8fC90ZXh0XC9jc3YvLnRlc3QodCk/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHMse2Rvd25sb2FkYWJsZTohMCxmaWxlTmFtZTpgJHtsfS5jc3ZgLGNhbkNvcHk6ITB9LGUpOi9eaW1hZ2VcLy9pLnRlc3QodCk/dC5pbmNsdWRlcygic3ZnIik/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsIiAiLGUsIiAiKTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImltZyIse3NyYzp3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChlKX0pOi9eYXVkaW9cLy9pLnRlc3QodCk/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwcmUiLHtjbGFzc05hbWU6Im1pY3JvbGlnaHQifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImF1ZGlvIix7Y29udHJvbHM6ITAsa2V5OnJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic291cmNlIix7c3JjOnIsdHlwZTp0fSkpKToic3RyaW5nIj09dHlwZW9mIGU/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHMse2Rvd25sb2FkYWJsZTohMCxmaWxlTmFtZTpgJHtsfS50eHRgLGNhbkNvcHk6ITB9LGUpOmUuc2l6ZT4wP28/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwIix7Y2xhc3NOYW1lOiJpIn0sIlVucmVjb2duaXplZCByZXNwb25zZSB0eXBlOyBkaXNwbGF5aW5nIGNvbnRlbnQgYXMgdGV4dC4iKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocyx7ZG93bmxvYWRhYmxlOiEwLGZpbGVOYW1lOmAke2x9LnR4dGAsY2FuQ29weTohMH0sbykpOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgicCIse2NsYXNzTmFtZToiaSJ9LCJVbnJlY29nbml6ZWQgcmVzcG9uc2UgdHlwZTsgdW5hYmxlIHRvIGRpc3BsYXkuIik6bnVsbDtyZXR1cm4gYz9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImg1IixudWxsLCJSZXNwb25zZSBib2R5IiksYyk6bnVsbH19Y2xhc3MgUGFyYW1ldGVycyBleHRlbmRzIEhlLkNvbXBvbmVudHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLnN0YXRlPXtjYWxsYmFja1Zpc2libGU6ITEscGFyYW1ldGVyc1Zpc2libGU6ITB9fXN0YXRpYyBkZWZhdWx0UHJvcHM9e29uVHJ5b3V0Q2xpY2s6RnVuY3Rpb24ucHJvdG90eXBlLG9uQ2FuY2VsQ2xpY2s6RnVuY3Rpb24ucHJvdG90eXBlLHRyeUl0T3V0RW5hYmxlZDohMSxhbGxvd1RyeUl0T3V0OiEwLG9uQ2hhbmdlS2V5OltdLHNwZWNQYXRoOltdfTtvbkNoYW5nZT0oZSx0LHIpPT57bGV0e3NwZWNBY3Rpb25zOntjaGFuZ2VQYXJhbUJ5SWRlbnRpdHk6bn0sb25DaGFuZ2VLZXk6YX09dGhpcy5wcm9wcztuKGEsZSx0LHIpfTtvbkNoYW5nZUNvbnN1bWVzV3JhcHBlcj1lPT57bGV0e3NwZWNBY3Rpb25zOntjaGFuZ2VDb25zdW1lc1ZhbHVlOnR9LG9uQ2hhbmdlS2V5OnJ9PXRoaXMucHJvcHM7dChyLGUpfTt0b2dnbGVUYWI9ZT0+InBhcmFtZXRlcnMiPT09ZT90aGlzLnNldFN0YXRlKHtwYXJhbWV0ZXJzVmlzaWJsZTohMCxjYWxsYmFja1Zpc2libGU6ITF9KToiY2FsbGJhY2tzIj09PWU/dGhpcy5zZXRTdGF0ZSh7Y2FsbGJhY2tWaXNpYmxlOiEwLHBhcmFtZXRlcnNWaXNpYmxlOiExfSk6dm9pZCAwO29uQ2hhbmdlTWVkaWFUeXBlPSh7dmFsdWU6ZSxwYXRoTWV0aG9kOnR9KT0+e2xldHtzcGVjQWN0aW9uczpyLG9hczNTZWxlY3RvcnM6bixvYXMzQWN0aW9uczphfT10aGlzLnByb3BzO2NvbnN0IG89bi5oYXNVc2VyRWRpdGVkQm9keSguLi50KSxzPW4uc2hvdWxkUmV0YWluUmVxdWVzdEJvZHlWYWx1ZSguLi50KTthLnNldFJlcXVlc3RDb250ZW50VHlwZSh7dmFsdWU6ZSxwYXRoTWV0aG9kOnR9KSxhLmluaXRSZXF1ZXN0Qm9keVZhbGlkYXRlRXJyb3Ioe3BhdGhNZXRob2Q6dH0pLG98fChzfHxhLnNldFJlcXVlc3RCb2R5VmFsdWUoe3ZhbHVlOnZvaWQgMCxwYXRoTWV0aG9kOnR9KSxyLmNsZWFyUmVzcG9uc2UoLi4udCksci5jbGVhclJlcXVlc3QoLi4udCksci5jbGVhclZhbGlkYXRlUGFyYW1zKHQpKX07cmVuZGVyKCl7bGV0e29uVHJ5b3V0Q2xpY2s6ZSxvblJlc2V0Q2xpY2s6dCxwYXJhbWV0ZXJzOnIsYWxsb3dUcnlJdE91dDpuLHRyeUl0T3V0RW5hYmxlZDphLHNwZWNQYXRoOm8sZm46cyxnZXRDb21wb25lbnQ6bCxnZXRDb25maWdzOmksc3BlY1NlbGVjdG9yczpjLHNwZWNBY3Rpb25zOnUscGF0aE1ldGhvZDpkLG9hczNBY3Rpb25zOnAsb2FzM1NlbGVjdG9yczptLG9wZXJhdGlvbjpmfT10aGlzLnByb3BzO2NvbnN0IGg9bCgicGFyYW1ldGVyUm93IiksZz1sKCJUcnlJdE91dEJ1dHRvbiIpLHk9bCgiY29udGVudFR5cGUiKSxTPWwoIkNhbGxiYWNrcyIsITApLF89bCgiUmVxdWVzdEJvZHkiLCEwKSx2PWEmJm4sYj1jLmlzT0FTMygpLHc9YCR7Y3JlYXRlSHRtbFJlYWR5SWQoYCR7ZFsxXX0ke2RbMF19X3JlcXVlc3RzYCl9X3NlbGVjdGAsQz1mLmdldCgicmVxdWVzdEJvZHkiKSx4PU9iamVjdC52YWx1ZXMoci5yZWR1Y2UoKChlLHQpPT57aWYoWGUuTWFwLmlzTWFwKHQpKXtjb25zdCByPXQuZ2V0KCJpbiIpO2Vbcl0/Pz1bXSxlW3JdLnB1c2godCl9cmV0dXJuIGV9KSx7fSkpLnJlZHVjZSgoKGUsdCk9PmUuY29uY2F0KHQpKSxbXSk7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXNlY3Rpb24ifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1zZWN0aW9uLWhlYWRlciJ9LGI/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InRhYi1oZWFkZXIifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse29uQ2xpY2s6KCk9PnRoaXMudG9nZ2xlVGFiKCJwYXJhbWV0ZXJzIiksY2xhc3NOYW1lOmB0YWItaXRlbSAke3RoaXMuc3RhdGUucGFyYW1ldGVyc1Zpc2libGUmJiJhY3RpdmUifWB9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6Im9wYmxvY2stdGl0bGUifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsIlBhcmFtZXRlcnMiKSkpLGYuZ2V0KCJjYWxsYmFja3MiKT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse29uQ2xpY2s6KCk9PnRoaXMudG9nZ2xlVGFiKCJjYWxsYmFja3MiKSxjbGFzc05hbWU6YHRhYi1pdGVtICR7dGhpcy5zdGF0ZS5jYWxsYmFja1Zpc2libGUmJiJhY3RpdmUifWB9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6Im9wYmxvY2stdGl0bGUifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsIkNhbGxiYWNrcyIpKSk6bnVsbCk6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InRhYi1oZWFkZXIifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXRpdGxlIn0sIlBhcmFtZXRlcnMiKSksbj9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoZyx7aXNPQVMzOmMuaXNPQVMzKCksaGFzVXNlckVkaXRlZEJvZHk6bS5oYXNVc2VyRWRpdGVkQm9keSguLi5kKSxlbmFibGVkOmEsb25DYW5jZWxDbGljazp0aGlzLnByb3BzLm9uQ2FuY2VsQ2xpY2ssb25UcnlvdXRDbGljazplLG9uUmVzZXRDbGljazooKT0+dChkKX0pOm51bGwpLHRoaXMuc3RhdGUucGFyYW1ldGVyc1Zpc2libGU/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InBhcmFtZXRlcnMtY29udGFpbmVyIn0seC5sZW5ndGg/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InRhYmxlLWNvbnRhaW5lciJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGFibGUiLHtjbGFzc05hbWU6InBhcmFtZXRlcnMifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRoZWFkIixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidHIiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0aCIse2NsYXNzTmFtZToiY29sX2hlYWRlciBwYXJhbWV0ZXJzLWNvbF9uYW1lIn0sIk5hbWUiKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRoIix7Y2xhc3NOYW1lOiJjb2xfaGVhZGVyIHBhcmFtZXRlcnMtY29sX2Rlc2NyaXB0aW9uIn0sIkRlc2NyaXB0aW9uIikpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRib2R5IixudWxsLHgubWFwKCgoZSx0KT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGgse2ZuOnMsc3BlY1BhdGg6by5wdXNoKHQudG9TdHJpbmcoKSksZ2V0Q29tcG9uZW50OmwsZ2V0Q29uZmlnczppLHJhd1BhcmFtOmUscGFyYW06Yy5wYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkoZCxlKSxrZXk6YCR7ZS5nZXQoImluIil9LiR7ZS5nZXQoIm5hbWUiKX1gLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2Usb25DaGFuZ2VDb25zdW1lczp0aGlzLm9uQ2hhbmdlQ29uc3VtZXNXcmFwcGVyLHNwZWNTZWxlY3RvcnM6YyxzcGVjQWN0aW9uczp1LG9hczNBY3Rpb25zOnAsb2FzM1NlbGVjdG9yczptLHBhdGhNZXRob2Q6ZCxpc0V4ZWN1dGU6dn0pKSkpKSk6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stZGVzY3JpcHRpb24td3JhcHBlciJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiTm8gcGFyYW1ldGVycyIpKSk6bnVsbCx0aGlzLnN0YXRlLmNhbGxiYWNrVmlzaWJsZT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiY2FsbGJhY2tzLWNvbnRhaW5lciBvcGJsb2NrLWRlc2NyaXB0aW9uLXdyYXBwZXIifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoUyx7Y2FsbGJhY2tzOigwLFhlLk1hcCkoZi5nZXQoImNhbGxiYWNrcyIpKSxzcGVjUGF0aDpvLnNsaWNlKDAsLTEpLnB1c2goImNhbGxiYWNrcyIpfSkpOm51bGwsYiYmQyYmdGhpcy5zdGF0ZS5wYXJhbWV0ZXJzVmlzaWJsZSYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc2VjdGlvbiBvcGJsb2NrLXNlY3Rpb24tcmVxdWVzdC1ib2R5In0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc2VjdGlvbi1oZWFkZXIifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOmBvcGJsb2NrLXRpdGxlIHBhcmFtZXRlcl9fbmFtZSAke0MuZ2V0KCJyZXF1aXJlZCIpJiYicmVxdWlyZWQifWB9LCJSZXF1ZXN0IGJvZHkiKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aWQ6d30sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHkse3ZhbHVlOm0ucmVxdWVzdENvbnRlbnRUeXBlKC4uLmQpLGNvbnRlbnRUeXBlczpDLmdldCgiY29udGVudCIsKDAsWGUuTGlzdCkoKSkua2V5U2VxKCksb25DaGFuZ2U6ZT0+e3RoaXMub25DaGFuZ2VNZWRpYVR5cGUoe3ZhbHVlOmUscGF0aE1ldGhvZDpkfSl9LGNsYXNzTmFtZToiYm9keS1wYXJhbS1jb250ZW50LXR5cGUiLGFyaWFMYWJlbDoiUmVxdWVzdCBjb250ZW50IHR5cGUiLGNvbnRyb2xJZDp3fSkpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1kZXNjcmlwdGlvbi13cmFwcGVyIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF8se3NldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnOmU9PnAuc2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWcoe3ZhbHVlOmUscGF0aE1ldGhvZDpkfSksdXNlckhhc0VkaXRlZEJvZHk6bS5oYXNVc2VyRWRpdGVkQm9keSguLi5kKSxzcGVjUGF0aDpvLnNsaWNlKDAsLTEpLnB1c2goInJlcXVlc3RCb2R5IikscmVxdWVzdEJvZHk6QyxyZXF1ZXN0Qm9keVZhbHVlOm0ucmVxdWVzdEJvZHlWYWx1ZSguLi5kKSxyZXF1ZXN0Qm9keUluY2x1c2lvblNldHRpbmc6bS5yZXF1ZXN0Qm9keUluY2x1c2lvblNldHRpbmcoLi4uZCkscmVxdWVzdEJvZHlFcnJvcnM6bS5yZXF1ZXN0Qm9keUVycm9ycyguLi5kKSxpc0V4ZWN1dGU6dixnZXRDb25maWdzOmksYWN0aXZlRXhhbXBsZXNLZXk6bS5hY3RpdmVFeGFtcGxlc01lbWJlciguLi5kLCJyZXF1ZXN0Qm9keSIsInJlcXVlc3RCb2R5IiksdXBkYXRlQWN0aXZlRXhhbXBsZXNLZXk6ZT0+e3RoaXMucHJvcHMub2FzM0FjdGlvbnMuc2V0QWN0aXZlRXhhbXBsZXNNZW1iZXIoe25hbWU6ZSxwYXRoTWV0aG9kOnRoaXMucHJvcHMucGF0aE1ldGhvZCxjb250ZXh0VHlwZToicmVxdWVzdEJvZHkiLGNvbnRleHROYW1lOiJyZXF1ZXN0Qm9keSJ9KX0sb25DaGFuZ2U6KGUsdCk9PntpZih0KXtjb25zdCByPW0ucmVxdWVzdEJvZHlWYWx1ZSguLi5kKSxuPVhlLk1hcC5pc01hcChyKT9yOigwLFhlLk1hcCkoKTtyZXR1cm4gcC5zZXRSZXF1ZXN0Qm9keVZhbHVlKHtwYXRoTWV0aG9kOmQsdmFsdWU6bi5zZXRJbih0LGUpfSl9cC5zZXRSZXF1ZXN0Qm9keVZhbHVlKHt2YWx1ZTplLHBhdGhNZXRob2Q6ZH0pfSxvbkNoYW5nZUluY2x1ZGVFbXB0eTooZSx0KT0+e3Auc2V0UmVxdWVzdEJvZHlJbmNsdXNpb24oe3BhdGhNZXRob2Q6ZCx2YWx1ZTp0LG5hbWU6ZX0pfSxjb250ZW50VHlwZTptLnJlcXVlc3RDb250ZW50VHlwZSguLi5kKX0pKSkpfX12YXIgcGFyYW1ldGVyX2V4dGVuc2lvbj0oe3hLZXk6ZSx4VmFsOnR9KT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InBhcmFtZXRlcl9fZXh0ZW5zaW9uIn0sZSwiOiAiLFN0cmluZyh0KSk7Y29uc3QgT2E9e29uQ2hhbmdlOigpPT57fSxpc0luY2x1ZGVkT3B0aW9uczp7fX07Y2xhc3MgUGFyYW1ldGVySW5jbHVkZUVtcHR5IGV4dGVuZHMgSGUuQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9T2E7Y29tcG9uZW50RGlkTW91bnQoKXtjb25zdHtpc0luY2x1ZGVkT3B0aW9uczplLG9uQ2hhbmdlOnR9PXRoaXMucHJvcHMse3Nob3VsZERpc3BhdGNoSW5pdDpyLGRlZmF1bHRWYWx1ZTpufT1lO3ImJnQobil9b25DaGVja2JveENoYW5nZT1lPT57Y29uc3R7b25DaGFuZ2U6dH09dGhpcy5wcm9wczt0KGUudGFyZ2V0LmNoZWNrZWQpfTtyZW5kZXIoKXtsZXR7aXNJbmNsdWRlZDplLGlzRGlzYWJsZWQ6dH09dGhpcy5wcm9wcztyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6ImluY2x1ZGVfZW1wdHlfdmFsdWUiLGNsYXNzTmFtZTooMCxoci5kZWZhdWx0KSgicGFyYW1ldGVyX19lbXB0eV92YWx1ZV90b2dnbGUiLHtkaXNhYmxlZDp0fSl9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaW5wdXQiLHtpZDoiaW5jbHVkZV9lbXB0eV92YWx1ZSIsdHlwZToiY2hlY2tib3giLGRpc2FibGVkOnQsY2hlY2tlZDohdCYmZSxvbkNoYW5nZTp0aGlzLm9uQ2hlY2tib3hDaGFuZ2V9KSwiU2VuZCBlbXB0eSB2YWx1ZSIpKX19Y2xhc3MgUGFyYW1ldGVyUm93IGV4dGVuZHMgSGUuQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLnNldERlZmF1bHRWYWx1ZSgpfVVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKGUpe2xldCB0LHtzcGVjU2VsZWN0b3JzOnIscGF0aE1ldGhvZDpuLHJhd1BhcmFtOmF9PWUsbz1yLmlzT0FTMygpLHM9ci5wYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkobixhKXx8bmV3IFhlLk1hcDtpZihzPXMuaXNFbXB0eSgpP2E6cyxvKXtsZXR7c2NoZW1hOmV9PWdldFBhcmFtZXRlclNjaGVtYShzLHtpc09BUzM6b30pO3Q9ZT9lLmdldCgiZW51bSIpOnZvaWQgMH1lbHNlIHQ9cz9zLmdldCgiZW51bSIpOnZvaWQgMDtsZXQgbCxpPXM/cy5nZXQoInZhbHVlIik6dm9pZCAwO3ZvaWQgMCE9PWk/bD1pOmEuZ2V0KCJyZXF1aXJlZCIpJiZ0JiZ0LnNpemUmJihsPXQuZmlyc3QoKSksdm9pZCAwIT09bCYmbCE9PWkmJnRoaXMub25DaGFuZ2VXcmFwcGVyKGZ1bmN0aW9uIG51bWJlclRvU3RyaW5nKGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZT9lLnRvU3RyaW5nKCk6ZX0obCkpLHRoaXMuc2V0RGVmYXVsdFZhbHVlKCl9b25DaGFuZ2VXcmFwcGVyPShlLHQ9ITEpPT57bGV0IHIse29uQ2hhbmdlOm4scmF3UGFyYW06YX09dGhpcy5wcm9wcztyZXR1cm4gcj0iIj09PWV8fGUmJjA9PT1lLnNpemU/bnVsbDplLG4oYSxyLHQpfTtfb25FeGFtcGxlU2VsZWN0PWU9Pnt0aGlzLnByb3BzLm9hczNBY3Rpb25zLnNldEFjdGl2ZUV4YW1wbGVzTWVtYmVyKHtuYW1lOmUscGF0aE1ldGhvZDp0aGlzLnByb3BzLnBhdGhNZXRob2QsY29udGV4dFR5cGU6InBhcmFtZXRlcnMiLGNvbnRleHROYW1lOnRoaXMuZ2V0UGFyYW1LZXkoKX0pfTtvbkNoYW5nZUluY2x1ZGVFbXB0eT1lPT57bGV0e3NwZWNBY3Rpb25zOnQscGFyYW06cixwYXRoTWV0aG9kOm59PXRoaXMucHJvcHM7Y29uc3QgYT1yLmdldCgibmFtZSIpLG89ci5nZXQoImluIik7cmV0dXJuIHQudXBkYXRlRW1wdHlQYXJhbUluY2x1c2lvbihuLGEsbyxlKX07c2V0RGVmYXVsdFZhbHVlPSgpPT57bGV0e3NwZWNTZWxlY3RvcnM6ZSxwYXRoTWV0aG9kOnQscmF3UGFyYW06cixvYXMzU2VsZWN0b3JzOm4sZm46YX09dGhpcy5wcm9wcztjb25zdCBvPWUucGFyYW1ldGVyV2l0aE1ldGFCeUlkZW50aXR5KHQscil8fCgwLFhlLk1hcCkoKTtsZXR7c2NoZW1hOnN9PWdldFBhcmFtZXRlclNjaGVtYShvLHtpc09BUzM6ZS5pc09BUzMoKX0pO2NvbnN0IGw9by5nZXQoImNvbnRlbnQiLCgwLFhlLk1hcCkoKSkua2V5U2VxKCkuZmlyc3QoKSxpPXM/YS5nZXRTYW1wbGVTY2hlbWEocy50b0pTKCksbCx7aW5jbHVkZVdyaXRlT25seTohMH0pOm51bGw7aWYobyYmdm9pZCAwPT09by5nZXQoInZhbHVlIikmJiJib2R5IiE9PW8uZ2V0KCJpbiIpKXtsZXQgcjtpZihlLmlzU3dhZ2dlcjIoKSlyPXZvaWQgMCE9PW8uZ2V0KCJ4LWV4YW1wbGUiKT9vLmdldCgieC1leGFtcGxlIik6dm9pZCAwIT09by5nZXRJbihbInNjaGVtYSIsImV4YW1wbGUiXSk/by5nZXRJbihbInNjaGVtYSIsImV4YW1wbGUiXSk6cyYmcy5nZXRJbihbImRlZmF1bHQiXSk7ZWxzZSBpZihlLmlzT0FTMygpKXtzPXRoaXMuY29tcG9zZUpzb25TY2hlbWEocyk7Y29uc3QgZT1uLmFjdGl2ZUV4YW1wbGVzTWVtYmVyKC4uLnQsInBhcmFtZXRlcnMiLHRoaXMuZ2V0UGFyYW1LZXkoKSk7cj12b2lkIDAhPT1vLmdldEluKFsiZXhhbXBsZXMiLGUsInZhbHVlIl0pP28uZ2V0SW4oWyJleGFtcGxlcyIsZSwidmFsdWUiXSk6dm9pZCAwIT09by5nZXRJbihbImNvbnRlbnQiLGwsImV4YW1wbGUiXSk/by5nZXRJbihbImNvbnRlbnQiLGwsImV4YW1wbGUiXSk6dm9pZCAwIT09by5nZXQoImV4YW1wbGUiKT9vLmdldCgiZXhhbXBsZSIpOnZvaWQgMCE9PShzJiZzLmdldCgiZXhhbXBsZSIpKT9zJiZzLmdldCgiZXhhbXBsZSIpOnZvaWQgMCE9PShzJiZzLmdldCgiZGVmYXVsdCIpKT9zJiZzLmdldCgiZGVmYXVsdCIpOm8uZ2V0KCJkZWZhdWx0Iil9dm9pZCAwPT09cnx8WGUuTGlzdC5pc0xpc3Qocil8fChyPXN0cmluZ2lmeShyKSk7Y29uc3QgYz1hLmdldFNjaGVtYU9iamVjdFR5cGUocyksdT1hLmdldFNjaGVtYU9iamVjdFR5cGUocz8uZ2V0KCJpdGVtcyIpKTt2b2lkIDAhPT1yP3RoaXMub25DaGFuZ2VXcmFwcGVyKHIpOiJvYmplY3QiPT09YyYmaSYmIW8uZ2V0KCJleGFtcGxlcyIpP3RoaXMub25DaGFuZ2VXcmFwcGVyKFhlLkxpc3QuaXNMaXN0KGkpP2k6c3RyaW5naWZ5KGkpKToiYXJyYXkiPT09YyYmIm9iamVjdCI9PT11JiZpJiYhby5nZXQoImV4YW1wbGVzIikmJnRoaXMub25DaGFuZ2VXcmFwcGVyKFhlLkxpc3QuaXNMaXN0KGkpP2k6KDAsWGUuTGlzdCkoSlNPTi5wYXJzZShpKSkpfX07Z2V0UGFyYW1LZXkoKXtjb25zdHtwYXJhbTplfT10aGlzLnByb3BzO3JldHVybiBlP2Ake2UuZ2V0KCJuYW1lIil9LSR7ZS5nZXQoImluIil9YDpudWxsfWNvbXBvc2VKc29uU2NoZW1hKGUpe2NvbnN0e2ZuOnR9PXRoaXMucHJvcHMscj1lLmdldCgib25lT2YiKT8uZ2V0KDApPy50b0pTKCksbj1lLmdldCgiYW55T2YiKT8uZ2V0KDApPy50b0pTKCk7cmV0dXJuKDAsWGUuZnJvbUpTKSh0Lm1lcmdlSnNvblNjaGVtYShlLnRvSlMoKSxyPz9uPz97fSkpfXJlbmRlcigpe2xldHtwYXJhbTplLHJhd1BhcmFtOnQsZ2V0Q29tcG9uZW50OnIsZ2V0Q29uZmlnczpuLGlzRXhlY3V0ZTphLGZuOm8sb25DaGFuZ2VDb25zdW1lczpzLHNwZWNTZWxlY3RvcnM6bCxwYXRoTWV0aG9kOmksc3BlY1BhdGg6YyxvYXMzU2VsZWN0b3JzOnV9PXRoaXMucHJvcHMsZD1sLmlzT0FTMygpO2NvbnN0e3Nob3dFeHRlbnNpb25zOnAsc2hvd0NvbW1vbkV4dGVuc2lvbnM6bX09bigpO2lmKGV8fChlPXQpLCF0KXJldHVybiBudWxsO2NvbnN0IGY9cigiSnNvblNjaGVtYUZvcm0iKSxoPXIoIlBhcmFtQm9keSIpO2xldCBnPWUuZ2V0KCJpbiIpLHk9ImJvZHkiIT09Zz9udWxsOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChoLHtnZXRDb21wb25lbnQ6cixnZXRDb25maWdzOm4sZm46byxwYXJhbTplLGNvbnN1bWVzOmwuY29uc3VtZXNPcHRpb25zRm9yKGkpLGNvbnN1bWVzVmFsdWU6bC5jb250ZW50VHlwZVZhbHVlcyhpKS5nZXQoInJlcXVlc3RDb250ZW50VHlwZSIpLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2VXcmFwcGVyLG9uQ2hhbmdlQ29uc3VtZXM6cyxpc0V4ZWN1dGU6YSxzcGVjU2VsZWN0b3JzOmwscGF0aE1ldGhvZDppfSk7Y29uc3QgUz1yKCJtb2RlbEV4YW1wbGUiKSxfPXIoIk1hcmtkb3duIiwhMCksdj1yKCJQYXJhbWV0ZXJFeHQiKSxiPXIoIlBhcmFtZXRlckluY2x1ZGVFbXB0eSIpLHc9cigiRXhhbXBsZXNTZWxlY3RWYWx1ZVJldGFpbmVyIiksQz1yKCJFeGFtcGxlIik7bGV0e3NjaGVtYTp4fT1nZXRQYXJhbWV0ZXJTY2hlbWEoZSx7aXNPQVMzOmR9KSxPPWwucGFyYW1ldGVyV2l0aE1ldGFCeUlkZW50aXR5KGksdCl8fCgwLFhlLk1hcCkoKTtkJiYoeD10aGlzLmNvbXBvc2VKc29uU2NoZW1hKHgpKTtsZXQgaz14P3guZ2V0KCJmb3JtYXQiKTpudWxsLE49ImZvcm1EYXRhIj09PWcsQT0iRm9ybURhdGEiaW4gY3QsST1lLmdldCgicmVxdWlyZWQiKTtjb25zdCBqPW8uZ2V0U2NoZW1hT2JqZWN0VHlwZSh4KSxSPW8uZ2V0U2NoZW1hT2JqZWN0VHlwZSh4Py5nZXQoIml0ZW1zIikpLFQ9by5nZXRTY2hlbWFPYmplY3RUeXBlTGFiZWwoeCksUD0heSYmIm9iamVjdCI9PT1qLEI9IXkmJiJvYmplY3QiPT09UjtsZXQgTSxxLEwsVSxEPU8/Ty5nZXQoInZhbHVlIik6IiIsJD1tP2dldENvbW1vbkV4dGVuc2lvbnMoeCk6bnVsbCxWPXA/Z2V0RXh0ZW5zaW9ucyhlKTpudWxsLEo9ITE7dm9pZCAwIT09ZSYmeCYmKE09eC5nZXQoIml0ZW1zIikpLHZvaWQgMCE9PU0/KHE9TS5nZXQoImVudW0iKSxMPU0uZ2V0KCJkZWZhdWx0IikpOngmJihxPXguZ2V0KCJlbnVtIikpLHEmJnEuc2l6ZSYmcS5zaXplPjAmJihKPSEwKSx2b2lkIDAhPT1lJiYoeCYmKEw9eC5nZXQoImRlZmF1bHQiKSksdm9pZCAwPT09TCYmKEw9ZS5nZXQoImRlZmF1bHQiKSksVT1lLmdldCgiZXhhbXBsZSIpLHZvaWQgMD09PVUmJihVPWUuZ2V0KCJ4LWV4YW1wbGUiKSkpO2NvbnN0IEY9eT9udWxsOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChmLHtmbjpvLGdldENvbXBvbmVudDpyLHZhbHVlOkQscmVxdWlyZWQ6SSxkaXNhYmxlZDohYSxkZXNjcmlwdGlvbjplLmdldCgibmFtZSIpLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2VXcmFwcGVyLGVycm9yczpPLmdldCgiZXJyb3JzIiksc2NoZW1hOnh9KTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ciIseyJkYXRhLXBhcmFtLW5hbWUiOmUuZ2V0KCJuYW1lIiksImRhdGEtcGFyYW0taW4iOmUuZ2V0KCJpbiIpfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJwYXJhbWV0ZXJzLWNvbF9uYW1lIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ST8icGFyYW1ldGVyX19uYW1lIHJlcXVpcmVkIjoicGFyYW1ldGVyX19uYW1lIn0sZS5nZXQoIm5hbWUiKSxJP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCwiwqAqIik6bnVsbCksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InBhcmFtZXRlcl9fdHlwZSJ9LFQsayYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJwcm9wLWZvcm1hdCJ9LCIoJCIsaywiKSIpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicGFyYW1ldGVyX19kZXByZWNhdGVkIn0sZCYmZS5nZXQoImRlcHJlY2F0ZWQiKT8iZGVwcmVjYXRlZCI6bnVsbCksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InBhcmFtZXRlcl9faW4ifSwiKCIsZS5nZXQoImluIiksIikiKSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToicGFyYW1ldGVycy1jb2xfZGVzY3JpcHRpb24ifSxlLmdldCgiZGVzY3JpcHRpb24iKT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXyx7c291cmNlOmUuZ2V0KCJkZXNjcmlwdGlvbiIpfSk6bnVsbCwheSYmYXx8IUo/bnVsbDpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXyx7Y2xhc3NOYW1lOiJwYXJhbWV0ZXJfX2VudW0iLHNvdXJjZToiPGk+QXZhaWxhYmxlIHZhbHVlczwvaT4gOiAiK3EubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKS50b0FycmF5KCkubWFwKFN0cmluZykuam9pbigiLCAiKX0pLCF5JiZhfHx2b2lkIDA9PT1MP251bGw6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF8se2NsYXNzTmFtZToicGFyYW1ldGVyX19kZWZhdWx0Iixzb3VyY2U6IjxpPkRlZmF1bHQgdmFsdWU8L2k+IDogIitMfSksIXkmJmF8fHZvaWQgMD09PVU/bnVsbDpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXyx7c291cmNlOiI8aT5FeGFtcGxlPC9pPiA6ICIrVX0pLE4mJiFBJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCwiRXJyb3I6IHlvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEZvcm1EYXRhIiksZCYmZS5nZXQoImV4YW1wbGVzIik/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIix7Y2xhc3NOYW1lOiJwYXJhbWV0ZXItY29udHJvbHMifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodyx7ZXhhbXBsZXM6ZS5nZXQoImV4YW1wbGVzIiksb25TZWxlY3Q6dGhpcy5fb25FeGFtcGxlU2VsZWN0LHVwZGF0ZVZhbHVlOnRoaXMub25DaGFuZ2VXcmFwcGVyLGdldENvbXBvbmVudDpyLGRlZmF1bHRUb0ZpcnN0RXhhbXBsZTohMCxjdXJyZW50S2V5OnUuYWN0aXZlRXhhbXBsZXNNZW1iZXIoLi4uaSwicGFyYW1ldGVycyIsdGhpcy5nZXRQYXJhbUtleSgpKSxjdXJyZW50VXNlcklucHV0VmFsdWU6RH0pKTpudWxsLFB8fEI/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFMse2dldENvbXBvbmVudDpyLHNwZWNQYXRoOmMucHVzaCgic2NoZW1hIiksZ2V0Q29uZmlnczpuLGlzRXhlY3V0ZTphLHNwZWNTZWxlY3RvcnM6bCxzY2hlbWE6eCxleGFtcGxlOkZ9KTpGLHkmJng/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFMse2dldENvbXBvbmVudDpyLHNwZWNQYXRoOmMucHVzaCgic2NoZW1hIiksZ2V0Q29uZmlnczpuLGlzRXhlY3V0ZTphLHNwZWNTZWxlY3RvcnM6bCxzY2hlbWE6eCxleGFtcGxlOnksaW5jbHVkZVdyaXRlT25seTohMH0pOm51bGwsIXkmJmEmJmUuZ2V0KCJhbGxvd0VtcHR5VmFsdWUiKT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYix7b25DaGFuZ2U6dGhpcy5vbkNoYW5nZUluY2x1ZGVFbXB0eSxpc0luY2x1ZGVkOmwucGFyYW1ldGVySW5jbHVzaW9uU2V0dGluZ0ZvcihpLGUuZ2V0KCJuYW1lIiksZS5nZXQoImluIikpLGlzRGlzYWJsZWQ6IWlzRW1wdHlWYWx1ZShEKX0pOm51bGwsZCYmZS5nZXQoImV4YW1wbGVzIik/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEMse2V4YW1wbGU6ZS5nZXRJbihbImV4YW1wbGVzIix1LmFjdGl2ZUV4YW1wbGVzTWVtYmVyKC4uLmksInBhcmFtZXRlcnMiLHRoaXMuZ2V0UGFyYW1LZXkoKSldKSxnZXRDb21wb25lbnQ6cixnZXRDb25maWdzOm59KTpudWxsLG0mJiQuc2l6ZT8kLmVudHJ5U2VxKCkubWFwKCgoW2UsdF0pPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodix7a2V5OmAke2V9LSR7dH1gLHhLZXk6ZSx4VmFsOnR9KSkpOm51bGwscCYmVi5zaXplP1YuZW50cnlTZXEoKS5tYXAoKChbZSx0XSk9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh2LHtrZXk6YCR7ZX0tJHt0fWAseEtleTplLHhWYWw6dH0pKSk6bnVsbCkpfX1jbGFzcyBFeGVjdXRlIGV4dGVuZHMgSGUuQ29tcG9uZW50e2hhbmRsZVZhbGlkYXRlUGFyYW1ldGVycz0oKT0+e2xldHtzcGVjU2VsZWN0b3JzOmUsc3BlY0FjdGlvbnM6dCxwYXRoOnIsbWV0aG9kOm59PXRoaXMucHJvcHM7cmV0dXJuIHQudmFsaWRhdGVQYXJhbXMoW3Isbl0pLGUudmFsaWRhdGVCZWZvcmVFeGVjdXRlKFtyLG5dKX07aGFuZGxlVmFsaWRhdGVSZXF1ZXN0Qm9keT0oKT0+e2xldHtwYXRoOmUsbWV0aG9kOnQsc3BlY1NlbGVjdG9yczpyLG9hczNTZWxlY3RvcnM6bixvYXMzQWN0aW9uczphfT10aGlzLnByb3BzLG89e21pc3NpbmdCb2R5VmFsdWU6ITEsbWlzc2luZ1JlcXVpcmVkS2V5czpbXX07YS5jbGVhclJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcih7cGF0aDplLG1ldGhvZDp0fSk7bGV0IHM9ci5nZXRPQVMzUmVxdWlyZWRSZXF1ZXN0Qm9keUNvbnRlbnRUeXBlKFtlLHRdKSxsPW4ucmVxdWVzdEJvZHlWYWx1ZShlLHQpLGk9bi52YWxpZGF0ZUJlZm9yZUV4ZWN1dGUoW2UsdF0pLGM9bi5yZXF1ZXN0Q29udGVudFR5cGUoZSx0KTtpZighaSlyZXR1cm4gby5taXNzaW5nQm9keVZhbHVlPSEwLGEuc2V0UmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yKHtwYXRoOmUsbWV0aG9kOnQsdmFsaWRhdGlvbkVycm9yczpvfSksITE7aWYoIXMpcmV0dXJuITA7bGV0IHU9bi52YWxpZGF0ZVNoYWxsb3dSZXF1aXJlZCh7b2FzM1JlcXVpcmVkUmVxdWVzdEJvZHlDb250ZW50VHlwZTpzLG9hczNSZXF1ZXN0Q29udGVudFR5cGU6YyxvYXMzUmVxdWVzdEJvZHlWYWx1ZTpsfSk7cmV0dXJuIXV8fHUubGVuZ3RoPDF8fCh1LmZvckVhY2goKGU9PntvLm1pc3NpbmdSZXF1aXJlZEtleXMucHVzaChlKX0pKSxhLnNldFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcih7cGF0aDplLG1ldGhvZDp0LHZhbGlkYXRpb25FcnJvcnM6b30pLCExKX07aGFuZGxlVmFsaWRhdGlvblJlc3VsdFBhc3M9KCk9PntsZXR7c3BlY0FjdGlvbnM6ZSxvcGVyYXRpb246dCxwYXRoOnIsbWV0aG9kOm59PXRoaXMucHJvcHM7dGhpcy5wcm9wcy5vbkV4ZWN1dGUmJnRoaXMucHJvcHMub25FeGVjdXRlKCksZS5leGVjdXRlKHtvcGVyYXRpb246dCxwYXRoOnIsbWV0aG9kOm59KX07aGFuZGxlVmFsaWRhdGlvblJlc3VsdEZhaWw9KCk9PntsZXR7c3BlY0FjdGlvbnM6ZSxwYXRoOnQsbWV0aG9kOnJ9PXRoaXMucHJvcHM7ZS5jbGVhclZhbGlkYXRlUGFyYW1zKFt0LHJdKSxzZXRUaW1lb3V0KCgoKT0+e2UudmFsaWRhdGVQYXJhbXMoW3Qscl0pfSksNDApfTtoYW5kbGVWYWxpZGF0aW9uUmVzdWx0PWU9PntlP3RoaXMuaGFuZGxlVmFsaWRhdGlvblJlc3VsdFBhc3MoKTp0aGlzLmhhbmRsZVZhbGlkYXRpb25SZXN1bHRGYWlsKCl9O29uQ2xpY2s9KCk9PntsZXQgZT10aGlzLmhhbmRsZVZhbGlkYXRlUGFyYW1ldGVycygpLHQ9dGhpcy5oYW5kbGVWYWxpZGF0ZVJlcXVlc3RCb2R5KCkscj1lJiZ0O3RoaXMuaGFuZGxlVmFsaWRhdGlvblJlc3VsdChyKX07b25DaGFuZ2VQcm9kdWNlc1dyYXBwZXI9ZT0+dGhpcy5wcm9wcy5zcGVjQWN0aW9ucy5jaGFuZ2VQcm9kdWNlc1ZhbHVlKFt0aGlzLnByb3BzLnBhdGgsdGhpcy5wcm9wcy5tZXRob2RdLGUpO3JlbmRlcigpe2NvbnN0e2Rpc2FibGVkOmV9PXRoaXMucHJvcHM7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7Y2xhc3NOYW1lOiJidG4gZXhlY3V0ZSBvcGJsb2NrLWNvbnRyb2xfX2J0biIsb25DbGljazp0aGlzLm9uQ2xpY2ssZGlzYWJsZWQ6ZX0sIkV4ZWN1dGUiKX19Y2xhc3MgaGVhZGVyc19IZWFkZXJzIGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7cmVuZGVyKCl7bGV0e2hlYWRlcnM6ZSxnZXRDb21wb25lbnQ6dH09dGhpcy5wcm9wcztjb25zdCByPXQoIlByb3BlcnR5Iiksbj10KCJNYXJrZG93biIsITApO3JldHVybiBlJiZlLnNpemU/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImhlYWRlcnMtd3JhcHBlciJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6ImhlYWRlcnNfX3RpdGxlIn0sIkhlYWRlcnM6IiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIse2NsYXNzTmFtZToiaGVhZGVycyJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGhlYWQiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ciIse2NsYXNzTmFtZToiaGVhZGVyLXJvdyJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGgiLHtjbGFzc05hbWU6ImhlYWRlci1jb2wifSwiTmFtZSIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGgiLHtjbGFzc05hbWU6ImhlYWRlci1jb2wifSwiRGVzY3JpcHRpb24iKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRoIix7Y2xhc3NOYW1lOiJoZWFkZXItY29sIn0sIlR5cGUiKSkpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGJvZHkiLG51bGwsZS5lbnRyeVNlcSgpLm1hcCgoKFtlLHRdKT0+e2lmKCFYZS5kZWZhdWx0Lk1hcC5pc01hcCh0KSlyZXR1cm4gbnVsbDtjb25zdCBhPXQuZ2V0KCJkZXNjcmlwdGlvbiIpLG89dC5nZXRJbihbInNjaGVtYSJdKT90LmdldEluKFsic2NoZW1hIiwidHlwZSJdKTp0LmdldEluKFsidHlwZSJdKSxzPXQuZ2V0SW4oWyJzY2hlbWEiLCJleGFtcGxlIl0pO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRyIix7a2V5OmV9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6ImhlYWRlci1jb2wifSxlKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJoZWFkZXItY29sIn0sYT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobix7c291cmNlOmF9KTpudWxsKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJoZWFkZXItY29sIn0sbywiICIscz9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocix7cHJvcEtleToiRXhhbXBsZSIscHJvcFZhbDpzLHByb3BDbGFzczoiaGVhZGVyLWV4YW1wbGUifSk6bnVsbCkpfSkpLnRvQXJyYXkoKSkpKTpudWxsfX1jbGFzcyBFcnJvcnMgZXh0ZW5kcyBIZS5kZWZhdWx0LkNvbXBvbmVudHtyZW5kZXIoKXtsZXR7ZWRpdG9yQWN0aW9uczplLGVyclNlbGVjdG9yczp0LGxheW91dFNlbGVjdG9yczpyLGxheW91dEFjdGlvbnM6bixnZXRDb21wb25lbnQ6YX09dGhpcy5wcm9wcztjb25zdCBvPWEoIkNvbGxhcHNlIik7aWYoZSYmZS5qdW1wVG9MaW5lKXZhciBzPWUuanVtcFRvTGluZTtsZXQgbD10LmFsbEVycm9ycygpLmZpbHRlcigoZT0+InRocm93biI9PT1lLmdldCgidHlwZSIpfHwiZXJyb3IiPT09ZS5nZXQoImxldmVsIikpKTtpZighbHx8bC5jb3VudCgpPDEpcmV0dXJuIG51bGw7bGV0IGk9ci5pc1Nob3duKFsiZXJyb3JQYW5lIl0sITApLGM9bC5zb3J0QnkoKGU9PmUuZ2V0KCJsaW5lIikpKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwcmUiLHtjbGFzc05hbWU6ImVycm9ycy13cmFwcGVyIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJoZ3JvdXAiLHtjbGFzc05hbWU6ImVycm9yIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJoNCIse2NsYXNzTmFtZToiZXJyb3JzX190aXRsZSJ9LCJFcnJvcnMiKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse2NsYXNzTmFtZToiYnRuIGVycm9yc19fY2xlYXItYnRuIixvbkNsaWNrOigpPT5uLnNob3coWyJlcnJvclBhbmUiXSwhaSl9LGk/IkhpZGUiOiJTaG93IikpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChvLHtpc09wZW5lZDppLGFuaW1hdGVkOiEwfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZXJyb3JzIn0sYy5tYXAoKChlLHQpPT57bGV0IHI9ZS5nZXQoInR5cGUiKTtyZXR1cm4idGhyb3duIj09PXJ8fCJhdXRoIj09PXI/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFRocm93bkVycm9ySXRlbSx7a2V5OnQsZXJyb3I6ZS5nZXQoImVycm9yIil8fGUsanVtcFRvTGluZTpzfSk6InNwZWMiPT09cj9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoU3BlY0Vycm9ySXRlbSx7a2V5OnQsZXJyb3I6ZSxqdW1wVG9MaW5lOnN9KTp2b2lkIDB9KSkpKSl9fWNvbnN0IFRocm93bkVycm9ySXRlbT0oe2Vycm9yOmUsanVtcFRvTGluZTp0fSk9PntpZighZSlyZXR1cm4gbnVsbDtsZXQgcj1lLmdldCgibGluZSIpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZXJyb3Itd3JhcHBlciJ9LGU/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJoNCIsbnVsbCxlLmdldCgic291cmNlIikmJmUuZ2V0KCJsZXZlbCIpP3RvVGl0bGVDYXNlKGUuZ2V0KCJzb3VyY2UiKSkrIiAiK2UuZ2V0KCJsZXZlbCIpOiIiLGUuZ2V0KCJwYXRoIik/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzbWFsbCIsbnVsbCwiIGF0ICIsZS5nZXQoInBhdGgiKSk6bnVsbCksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtZXNzYWdlIHRocm93biJ9LGUuZ2V0KCJtZXNzYWdlIikpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvci1saW5lIn0sciYmdD9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImEiLHtvbkNsaWNrOnQuYmluZChudWxsLHIpfSwiSnVtcCB0byBsaW5lICIscik6bnVsbCkpOm51bGwpfSxTcGVjRXJyb3JJdGVtPSh7ZXJyb3I6ZSxqdW1wVG9MaW5lOnQ9bnVsbH0pPT57bGV0IHI9bnVsbDtyZXR1cm4gZS5nZXQoInBhdGgiKT9yPVhlLkxpc3QuaXNMaXN0KGUuZ2V0KCJwYXRoIikpP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic21hbGwiLG51bGwsImF0ICIsZS5nZXQoInBhdGgiKS5qb2luKCIuIikpOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic21hbGwiLG51bGwsImF0ICIsZS5nZXQoInBhdGgiKSk6ZS5nZXQoImxpbmUiKSYmIXQmJihyPUhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic21hbGwiLG51bGwsIm9uIGxpbmUgIixlLmdldCgibGluZSIpKSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImVycm9yLXdyYXBwZXIifSxlP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsdG9UaXRsZUNhc2UoZS5nZXQoInNvdXJjZSIpKSsiICIrZS5nZXQoImxldmVsIiksIsKgIixyKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1lc3NhZ2UifSxlLmdldCgibWVzc2FnZSIpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZXJyb3ItbGluZSJ9LHQ/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJhIix7b25DbGljazp0LmJpbmQobnVsbCxlLmdldCgibGluZSIpKX0sIkp1bXAgdG8gbGluZSAiLGUuZ2V0KCJsaW5lIikpOm51bGwpKTpudWxsKX07ZnVuY3Rpb24gdG9UaXRsZUNhc2UoZSl7cmV0dXJuKGV8fCIiKS5zcGxpdCgiICIpLm1hcCgoZT0+ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSkpKS5qb2luKCIgIil9Y29uc3QgY29udGVudF90eXBlX25vb3A9KCk9Pnt9O2NsYXNzIENvbnRlbnRUeXBlIGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17b25DaGFuZ2U6Y29udGVudF90eXBlX25vb3AsdmFsdWU6bnVsbCxjb250ZW50VHlwZXM6KDAsWGUuZnJvbUpTKShbImFwcGxpY2F0aW9uL2pzb24iXSl9O2NvbXBvbmVudERpZE1vdW50KCl7dGhpcy5wcm9wcy5jb250ZW50VHlwZXMmJnRoaXMucHJvcHMub25DaGFuZ2UodGhpcy5wcm9wcy5jb250ZW50VHlwZXMuZmlyc3QoKSl9VU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoZSl7ZS5jb250ZW50VHlwZXMmJmUuY29udGVudFR5cGVzLnNpemUmJihlLmNvbnRlbnRUeXBlcy5pbmNsdWRlcyhlLnZhbHVlKXx8ZS5vbkNoYW5nZShlLmNvbnRlbnRUeXBlcy5maXJzdCgpKSl9b25DaGFuZ2VXcmFwcGVyPWU9PnRoaXMucHJvcHMub25DaGFuZ2UoZS50YXJnZXQudmFsdWUpO3JlbmRlcigpe2xldHthcmlhQ29udHJvbHM6ZSxhcmlhTGFiZWw6dCxjbGFzc05hbWU6cixjb250ZW50VHlwZXM6bixjb250cm9sSWQ6YSx2YWx1ZTpvfT10aGlzLnByb3BzO3JldHVybiBuJiZuLnNpemU/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImNvbnRlbnQtdHlwZS13cmFwcGVyICIrKHJ8fCIiKX0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiLHsiYXJpYS1jb250cm9scyI6ZSwiYXJpYS1sYWJlbCI6dCxjbGFzc05hbWU6ImNvbnRlbnQtdHlwZSIsaWQ6YSxvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlV3JhcHBlcix2YWx1ZTpvfHwiIn0sbi5tYXAoKGU9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgib3B0aW9uIix7a2V5OmUsdmFsdWU6ZX0sZSkpKS50b0FycmF5KCkpKTpudWxsfX1mdW5jdGlvbiB4Y2xhc3MoLi4uZSl7cmV0dXJuIGUuZmlsdGVyKChlPT4hIWUpKS5qb2luKCIgIikudHJpbSgpfWNsYXNzIENvbnRhaW5lciBleHRlbmRzIEhlLmRlZmF1bHQuQ29tcG9uZW50e3JlbmRlcigpe2xldHtmdWxsc2NyZWVuOmUsZnVsbDp0LC4uLnJ9PXRoaXMucHJvcHM7aWYoZSlyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIixyKTtsZXQgbj0ic3dhZ2dlci1jb250YWluZXIiKyh0PyItZnVsbCI6IiIpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24iLCgwLGFyLmRlZmF1bHQpKHt9LHIse2NsYXNzTmFtZTp4Y2xhc3Moci5jbGFzc05hbWUsbil9KSl9fWNvbnN0IGthPXttb2JpbGU6IiIsdGFibGV0OiItdGFibGV0IixkZXNrdG9wOiItZGVza3RvcCIsbGFyZ2U6Ii1oZCJ9O2NsYXNzIENvbCBleHRlbmRzIEhlLmRlZmF1bHQuQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e2hpZGU6ZSxrZWVwQ29udGVudHM6dCxtb2JpbGU6cix0YWJsZXQ6bixkZXNrdG9wOmEsbGFyZ2U6bywuLi5zfT10aGlzLnByb3BzO2lmKGUmJiF0KXJldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwpO2xldCBsPVtdO2ZvcihsZXQgZSBpbiBrYSl7aWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChrYSxlKSljb250aW51ZTtsZXQgdD1rYVtlXTtpZihlIGluIHRoaXMucHJvcHMpe2xldCByPXRoaXMucHJvcHNbZV07aWYocjwxKXtsLnB1c2goIm5vbmUiK3QpO2NvbnRpbnVlfWwucHVzaCgiYmxvY2siK3QpLGwucHVzaCgiY29sLSIrcit0KX19ZSYmbC5wdXNoKCJoaWRkZW4iKTtsZXQgaT14Y2xhc3Mocy5jbGFzc05hbWUsLi4ubCk7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIsKDAsYXIuZGVmYXVsdCkoe30scyx7Y2xhc3NOYW1lOml9KSl9fWNsYXNzIFJvdyBleHRlbmRzIEhlLmRlZmF1bHQuQ29tcG9uZW50e3JlbmRlcigpe3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIsKDAsYXIuZGVmYXVsdCkoe30sdGhpcy5wcm9wcyx7Y2xhc3NOYW1lOnhjbGFzcyh0aGlzLnByb3BzLmNsYXNzTmFtZSwid3JhcHBlciIpfSkpfX1jbGFzcyBCdXR0b24gZXh0ZW5kcyBIZS5kZWZhdWx0LkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXtjbGFzc05hbWU6IiJ9O3JlbmRlcigpe3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIsKDAsYXIuZGVmYXVsdCkoe30sdGhpcy5wcm9wcyx7Y2xhc3NOYW1lOnhjbGFzcyh0aGlzLnByb3BzLmNsYXNzTmFtZSwiYnV0dG9uIil9KSl9fWNvbnN0IFRleHRBcmVhPWU9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiLGUpLElucHV0PWU9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaW5wdXQiLGUpO2NsYXNzIFNlbGVjdCBleHRlbmRzIEhlLmRlZmF1bHQuQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9e211bHRpcGxlOiExLGFsbG93RW1wdHlWYWx1ZTohMH07Y29uc3RydWN0b3IoZSx0KXtsZXQgcjtzdXBlcihlLHQpLHI9ZS52YWx1ZT9lLnZhbHVlOmUubXVsdGlwbGU/WyIiXToiIix0aGlzLnN0YXRlPXt2YWx1ZTpyfX1vbkNoYW5nZT1lPT57bGV0IHQse29uQ2hhbmdlOnIsbXVsdGlwbGU6bn09dGhpcy5wcm9wcyxhPVtdLnNsaWNlLmNhbGwoZS50YXJnZXQub3B0aW9ucyk7dD1uP2EuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZS5zZWxlY3RlZH0pKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnZhbHVlfSkpOmUudGFyZ2V0LnZhbHVlLHRoaXMuc2V0U3RhdGUoe3ZhbHVlOnR9KSxyJiZyKHQpfTtVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhlKXtlLnZhbHVlIT09dGhpcy5wcm9wcy52YWx1ZSYmdGhpcy5zZXRTdGF0ZSh7dmFsdWU6ZS52YWx1ZX0pfXJlbmRlcigpe2xldHthbGxvd2VkVmFsdWVzOmUsbXVsdGlwbGU6dCxhbGxvd0VtcHR5VmFsdWU6cixkaXNhYmxlZDpufT10aGlzLnByb3BzLGE9dGhpcy5zdGF0ZS52YWx1ZT8udG9KUz8uKCl8fHRoaXMuc3RhdGUudmFsdWU7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic2VsZWN0Iix7Y2xhc3NOYW1lOnRoaXMucHJvcHMuY2xhc3NOYW1lLG11bHRpcGxlOnQsdmFsdWU6YSxvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlLGRpc2FibGVkOm59LHI/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJvcHRpb24iLHt2YWx1ZToiIn0sIi0tIik6bnVsbCxlLm1hcCgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJvcHRpb24iLHtrZXk6dCx2YWx1ZTpTdHJpbmcoZSl9LFN0cmluZyhlKSl9KSkpfX1jbGFzcyBMaW5rIGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7cmVuZGVyKCl7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiYSIsKDAsYXIuZGVmYXVsdCkoe30sdGhpcy5wcm9wcyx7cmVsOiJub29wZW5lciBub3JlZmVycmVyIixjbGFzc05hbWU6eGNsYXNzKHRoaXMucHJvcHMuY2xhc3NOYW1lLCJsaW5rIil9KSl9fWNvbnN0IE5vTWFyZ2luPSh7Y2hpbGRyZW46ZX0pPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibm8tbWFyZ2luIn0sIiAiLGUsIiAiKTtjbGFzcyBDb2xsYXBzZSBleHRlbmRzIEhlLmRlZmF1bHQuQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9e2lzT3BlbmVkOiExLGFuaW1hdGVkOiExfTtyZW5kZXJOb3RBbmltYXRlZCgpe3JldHVybiB0aGlzLnByb3BzLmlzT3BlbmVkP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChOb01hcmdpbixudWxsLHRoaXMucHJvcHMuY2hpbGRyZW4pOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiLG51bGwpfXJlbmRlcigpe2xldHthbmltYXRlZDplLGlzT3BlbmVkOnQsY2hpbGRyZW46cn09dGhpcy5wcm9wcztyZXR1cm4gZT8ocj10P3I6bnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoTm9NYXJnaW4sbnVsbCxyKSk6dGhpcy5yZW5kZXJOb3RBbmltYXRlZCgpfX1jbGFzcyBPdmVydmlldyBleHRlbmRzIEhlLmRlZmF1bHQuQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMuc2V0VGFnU2hvd249dGhpcy5fc2V0VGFnU2hvd24uYmluZCh0aGlzKX1fc2V0VGFnU2hvd24oZSx0KXt0aGlzLnByb3BzLmxheW91dEFjdGlvbnMuc2hvdyhlLHQpfXNob3dPcChlLHQpe2xldHtsYXlvdXRBY3Rpb25zOnJ9PXRoaXMucHJvcHM7ci5zaG93KGUsdCl9cmVuZGVyKCl7bGV0e3NwZWNTZWxlY3RvcnM6ZSxsYXlvdXRTZWxlY3RvcnM6dCxsYXlvdXRBY3Rpb25zOnIsZ2V0Q29tcG9uZW50Om59PXRoaXMucHJvcHMsYT1lLnRhZ2dlZE9wZXJhdGlvbnMoKTtjb25zdCBvPW4oIkNvbGxhcHNlIik7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6Im92ZXJ2aWV3LXRpdGxlIn0sIk92ZXJ2aWV3IiksYS5tYXAoKChlLG4pPT57bGV0IGE9ZS5nZXQoIm9wZXJhdGlvbnMiKSxzPVsib3ZlcnZpZXctdGFncyIsbl0sbD10LmlzU2hvd24ocywhMCk7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5OiJvdmVydmlldy0iK259LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDQiLHtvbkNsaWNrOigpPT5yLnNob3cocywhbCksY2xhc3NOYW1lOiJsaW5rIG92ZXJ2aWV3LXRhZyJ9LCIgIixsPyItIjoiKyIsbiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG8se2lzT3BlbmVkOmwsYW5pbWF0ZWQ6ITB9LGEubWFwKChlPT57bGV0e3BhdGg6bixtZXRob2Q6YSxpZDpvfT1lLnRvT2JqZWN0KCkscz0ib3BlcmF0aW9ucyIsbD1vLGk9dC5pc1Nob3duKFtzLGxdKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KE9wZXJhdGlvbkxpbmsse2tleTpvLHBhdGg6bixtZXRob2Q6YSxpZDpuKyItIithLHNob3duOmksc2hvd09wSWQ6bCxzaG93T3BJZFByZWZpeDpzLGhyZWY6YCNvcGVyYXRpb24tJHtsfWAsb25DbGljazpyLnNob3d9KX0pKS50b0FycmF5KCkpKX0pKS50b0FycmF5KCksYS5zaXplPDEmJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDMiLG51bGwsIiBObyBvcGVyYXRpb25zIGRlZmluZWQgaW4gc3BlYyEgIikpfX1jbGFzcyBPcGVyYXRpb25MaW5rIGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5vbkNsaWNrPXRoaXMuX29uQ2xpY2suYmluZCh0aGlzKX1fb25DbGljaygpe2xldHtzaG93T3BJZDplLHNob3dPcElkUHJlZml4OnQsb25DbGljazpyLHNob3duOm59PXRoaXMucHJvcHM7cihbdCxlXSwhbil9cmVuZGVyKCl7bGV0e2lkOmUsbWV0aG9kOnQsc2hvd246cixocmVmOm59PXRoaXMucHJvcHM7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChMaW5rLHtocmVmOm4sb25DbGljazp0aGlzLm9uQ2xpY2ssY2xhc3NOYW1lOiJibG9jayBvcGJsb2NrLWxpbmsgIisocj8ic2hvd24iOiIiKX0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzbWFsbCIse2NsYXNzTmFtZTpgYm9sZC1sYWJlbC0ke3R9YH0sdC50b1VwcGVyQ2FzZSgpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6ImJvbGQtbGFiZWwifSxlKSkpfX1jbGFzcyBJbml0aWFsaXplZElucHV0IGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLnByb3BzLmluaXRpYWxWYWx1ZSYmKHRoaXMuaW5wdXRSZWYudmFsdWU9dGhpcy5wcm9wcy5pbml0aWFsVmFsdWUpfXJlbmRlcigpe2NvbnN0e3ZhbHVlOmUsZGVmYXVsdFZhbHVlOnQsaW5pdGlhbFZhbHVlOnIsLi4ubn09dGhpcy5wcm9wcztyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJpbnB1dCIsKDAsYXIuZGVmYXVsdCkoe30sbix7cmVmOmU9PnRoaXMuaW5wdXRSZWY9ZX0pKX19Y2xhc3MgSW5mb0Jhc2VQYXRoIGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7aG9zdDplLGJhc2VQYXRoOnR9PXRoaXMucHJvcHM7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgicHJlIix7Y2xhc3NOYW1lOiJiYXNlLXVybCJ9LCJbIEJhc2UgVVJMOiAiLGUsdCwiIF0iKX19Y2xhc3MgSW5mb1VybCBleHRlbmRzIEhlLmRlZmF1bHQuUHVyZUNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHt1cmw6ZSxnZXRDb21wb25lbnQ6dH09dGhpcy5wcm9wcyxyPXQoIkxpbmsiKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHIse3RhcmdldDoiX2JsYW5rIixocmVmOnNhbml0aXplVXJsKGUpfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6InVybCJ9LCIgIixlKSl9fWNsYXNzIEluZm8gZXh0ZW5kcyBIZS5kZWZhdWx0LkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHtpbmZvOmUsdXJsOnQsaG9zdDpyLGJhc2VQYXRoOm4sZ2V0Q29tcG9uZW50OmEsZXh0ZXJuYWxEb2NzOm8sc2VsZWN0ZWRTZXJ2ZXI6cyx1cmw6bH09dGhpcy5wcm9wcyxpPWUuZ2V0KCJ2ZXJzaW9uIiksYz1lLmdldCgiZGVzY3JpcHRpb24iKSx1PWUuZ2V0KCJ0aXRsZSIpLGQ9c2FmZUJ1aWxkVXJsKGUuZ2V0KCJ0ZXJtc09mU2VydmljZSIpLGwse3NlbGVjdGVkU2VydmVyOnN9KSxwPWUuZ2V0KCJjb250YWN0IiksbT1lLmdldCgibGljZW5zZSIpLGY9c2FmZUJ1aWxkVXJsKG8mJm8uZ2V0KCJ1cmwiKSxsLHtzZWxlY3RlZFNlcnZlcjpzfSksaD1vJiZvLmdldCgiZGVzY3JpcHRpb24iKSxnPWEoIk1hcmtkb3duIiwhMCkseT1hKCJMaW5rIiksUz1hKCJWZXJzaW9uU3RhbXAiKSxfPWEoIk9wZW5BUElWZXJzaW9uIiksdj1hKCJJbmZvVXJsIiksYj1hKCJJbmZvQmFzZVBhdGgiKSx3PWEoIkxpY2Vuc2UiKSxDPWEoIkNvbnRhY3QiKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm8ifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImhncm91cCIse2NsYXNzTmFtZToibWFpbiJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDIiLHtjbGFzc05hbWU6InRpdGxlIn0sdSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsaSYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFMse3ZlcnNpb246aX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChfLHtvYXNWZXJzaW9uOiIyLjAifSkpKSxyfHxuP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChiLHtob3N0OnIsYmFzZVBhdGg6bn0pOm51bGwsdCYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHYse2dldENvbXBvbmVudDphLHVybDp0fSkpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJkZXNjcmlwdGlvbiJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChnLHtzb3VyY2U6Y30pKSxkJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaW5mb19fdG9zIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHkse3RhcmdldDoiX2JsYW5rIixocmVmOnNhbml0aXplVXJsKGQpfSwiVGVybXMgb2Ygc2VydmljZSIpKSxwPy5zaXplPjAmJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChDLHtnZXRDb21wb25lbnQ6YSxkYXRhOnAsc2VsZWN0ZWRTZXJ2ZXI6cyx1cmw6dH0pLG0/LnNpemU+MCYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHcse2dldENvbXBvbmVudDphLGxpY2Vuc2U6bSxzZWxlY3RlZFNlcnZlcjpzLHVybDp0fSksZj9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoeSx7Y2xhc3NOYW1lOiJpbmZvX19leHRkb2NzIix0YXJnZXQ6Il9ibGFuayIsaHJlZjpzYW5pdGl6ZVVybChmKX0saHx8Zik6bnVsbCl9fXZhciBOYT1JbmZvO2NsYXNzIEluZm9Db250YWluZXIgZXh0ZW5kcyBIZS5kZWZhdWx0LkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHtzcGVjU2VsZWN0b3JzOmUsZ2V0Q29tcG9uZW50OnQsb2FzM1NlbGVjdG9yczpyfT10aGlzLnByb3BzLG49ZS5pbmZvKCksYT1lLnVybCgpLG89ZS5iYXNlUGF0aCgpLHM9ZS5ob3N0KCksbD1lLmV4dGVybmFsRG9jcygpLGk9ci5zZWxlY3RlZFNlcnZlcigpLGM9dCgiaW5mbyIpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxuJiZuLmNvdW50KCk/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGMse2luZm86bix1cmw6YSxob3N0OnMsYmFzZVBhdGg6byxleHRlcm5hbERvY3M6bCxnZXRDb21wb25lbnQ6dCxzZWxlY3RlZFNlcnZlcjppfSk6bnVsbCl9fWNsYXNzIENvbnRhY3QgZXh0ZW5kcyBIZS5kZWZhdWx0LkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHtkYXRhOmUsZ2V0Q29tcG9uZW50OnQsc2VsZWN0ZWRTZXJ2ZXI6cix1cmw6bn09dGhpcy5wcm9wcyxhPWUuZ2V0KCJuYW1lIiwidGhlIGRldmVsb3BlciIpLG89c2FmZUJ1aWxkVXJsKGUuZ2V0KCJ1cmwiKSxuLHtzZWxlY3RlZFNlcnZlcjpyfSkscz1lLmdldCgiZW1haWwiKSxsPXQoIkxpbmsiKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm9fX2NvbnRhY3QifSxvJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobCx7aHJlZjpzYW5pdGl6ZVVybChvKSx0YXJnZXQ6Il9ibGFuayJ9LGEsIiAtIFdlYnNpdGUiKSkscyYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGwse2hyZWY6c2FuaXRpemVVcmwoYG1haWx0bzoke3N9YCl9LG8/YFNlbmQgZW1haWwgdG8gJHthfWA6YENvbnRhY3QgJHthfWApKX19dmFyIEFhPUNvbnRhY3Q7Y2xhc3MgTGljZW5zZSBleHRlbmRzIEhlLmRlZmF1bHQuQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e2xpY2Vuc2U6ZSxnZXRDb21wb25lbnQ6dCxzZWxlY3RlZFNlcnZlcjpyLHVybDpufT10aGlzLnByb3BzLGE9ZS5nZXQoIm5hbWUiLCJMaWNlbnNlIiksbz1zYWZlQnVpbGRVcmwoZS5nZXQoInVybCIpLG4se3NlbGVjdGVkU2VydmVyOnJ9KSxzPXQoIkxpbmsiKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm9fX2xpY2Vuc2UifSxvP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJpbmZvX19saWNlbnNlX191cmwifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocyx7dGFyZ2V0OiJfYmxhbmsiLGhyZWY6c2FuaXRpemVVcmwobyl9LGEpKTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsYSkpfX12YXIgSWE9TGljZW5zZTtjbGFzcyBKdW1wVG9QYXRoIGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7cmVuZGVyKCl7cmV0dXJuIG51bGx9fWNsYXNzIENvcHlUb0NsaXBib2FyZEJ0biBleHRlbmRzIEhlLmRlZmF1bHQuQ29tcG9uZW50e3JlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6ZX09dGhpcy5wcm9wcztjb25zdCB0PWUoIkNvcHlJY29uIik7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJ2aWV3LWxpbmUtbGluayBjb3B5LXRvLWNsaXBib2FyZCIsdGl0bGU6IkNvcHkgdG8gY2xpcGJvYXJkIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGdyLkNvcHlUb0NsaXBib2FyZCx7dGV4dDp0aGlzLnByb3BzLnRleHRUb0NvcHl9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh0LG51bGwpKSl9fWNsYXNzIEZvb3RlciBleHRlbmRzIEhlLmRlZmF1bHQuQ29tcG9uZW50e3JlbmRlcigpe3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZm9vdGVyIn0pfX1jbGFzcyBGaWx0ZXJDb250YWluZXIgZXh0ZW5kcyBIZS5kZWZhdWx0LkNvbXBvbmVudHtvbkZpbHRlckNoYW5nZT1lPT57Y29uc3R7dGFyZ2V0Ont2YWx1ZTp0fX09ZTt0aGlzLnByb3BzLmxheW91dEFjdGlvbnMudXBkYXRlRmlsdGVyKHQpfTtyZW5kZXIoKXtjb25zdHtzcGVjU2VsZWN0b3JzOmUsbGF5b3V0U2VsZWN0b3JzOnQsZ2V0Q29tcG9uZW50OnJ9PXRoaXMucHJvcHMsbj1yKCJDb2wiKSxhPSJsb2FkaW5nIj09PWUubG9hZGluZ1N0YXR1cygpLG89ImZhaWxlZCI9PT1lLmxvYWRpbmdTdGF0dXMoKSxzPXQuY3VycmVudEZpbHRlcigpLGw9WyJvcGVyYXRpb24tZmlsdGVyLWlucHV0Il07cmV0dXJuIG8mJmwucHVzaCgiZmFpbGVkIiksYSYmbC5wdXNoKCJsb2FkaW5nIiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsITE9PT1zP251bGw6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImZpbHRlci1jb250YWluZXIifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobix7Y2xhc3NOYW1lOiJmaWx0ZXIgd3JhcHBlciIsbW9iaWxlOjEyfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImlucHV0Iix7Y2xhc3NOYW1lOmwuam9pbigiICIpLHBsYWNlaG9sZGVyOiJGaWx0ZXIgYnkgdGFnIix0eXBlOiJ0ZXh0IixvbkNoYW5nZTp0aGlzLm9uRmlsdGVyQ2hhbmdlLHZhbHVlOiJzdHJpbmciPT10eXBlb2Ygcz9zOiIiLGRpc2FibGVkOmF9KSkpKX19Y29uc3QgamE9RnVuY3Rpb24ucHJvdG90eXBlO2NsYXNzIFBhcmFtQm9keSBleHRlbmRzIEhlLlB1cmVDb21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wPXtjb25zdW1lczooMCxYZS5mcm9tSlMpKFsiYXBwbGljYXRpb24vanNvbiJdKSxwYXJhbTooMCxYZS5mcm9tSlMpKHt9KSxvbkNoYW5nZTpqYSxvbkNoYW5nZUNvbnN1bWVzOmphfTtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCksdGhpcy5zdGF0ZT17aXNFZGl0Qm94OiExLHZhbHVlOiIifX1jb21wb25lbnREaWRNb3VudCgpe3RoaXMudXBkYXRlVmFsdWVzLmNhbGwodGhpcyx0aGlzLnByb3BzKX1VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhlKXt0aGlzLnVwZGF0ZVZhbHVlcy5jYWxsKHRoaXMsZSl9dXBkYXRlVmFsdWVzPWU9PntsZXR7cGFyYW06dCxpc0V4ZWN1dGU6cixjb25zdW1lc1ZhbHVlOm49IiJ9PWUsYT0veG1sL2kudGVzdChuKSxvPS9qc29uL2kudGVzdChuKSxzPWE/dC5nZXQoInZhbHVlX3htbCIpOnQuZ2V0KCJ2YWx1ZSIpO2lmKHZvaWQgMCE9PXMpe2xldCBlPSFzJiZvPyJ7fSI6czt0aGlzLnNldFN0YXRlKHt2YWx1ZTplfSksdGhpcy5vbkNoYW5nZShlLHtpc1htbDphLGlzRWRpdEJveDpyfSl9ZWxzZSBhP3RoaXMub25DaGFuZ2UodGhpcy5zYW1wbGUoInhtbCIpLHtpc1htbDphLGlzRWRpdEJveDpyfSk6dGhpcy5vbkNoYW5nZSh0aGlzLnNhbXBsZSgpLHtpc0VkaXRCb3g6cn0pfTtzYW1wbGU9ZT0+e2xldHtwYXJhbTp0LGZuOnJ9PXRoaXMucHJvcHMsbj1yLmluZmVyU2NoZW1hKHQudG9KUygpKTtyZXR1cm4gci5nZXRTYW1wbGVTY2hlbWEobixlLHtpbmNsdWRlV3JpdGVPbmx5OiEwfSl9O29uQ2hhbmdlPShlLHtpc0VkaXRCb3g6dCxpc1htbDpyfSk9Pnt0aGlzLnNldFN0YXRlKHt2YWx1ZTplLGlzRWRpdEJveDp0fSksdGhpcy5fb25DaGFuZ2UoZSxyKX07X29uQ2hhbmdlPShlLHQpPT57KHRoaXMucHJvcHMub25DaGFuZ2V8fGphKShlLHQpfTtoYW5kbGVPbkNoYW5nZT1lPT57Y29uc3R7Y29uc3VtZXNWYWx1ZTp0fT10aGlzLnByb3BzLHI9L3htbC9pLnRlc3QodCksbj1lLnRhcmdldC52YWx1ZTt0aGlzLm9uQ2hhbmdlKG4se2lzWG1sOnIsaXNFZGl0Qm94OnRoaXMuc3RhdGUuaXNFZGl0Qm94fSl9O3RvZ2dsZUlzRWRpdEJveD0oKT0+dGhpcy5zZXRTdGF0ZSgoZT0+KHtpc0VkaXRCb3g6IWUuaXNFZGl0Qm94fSkpKTtyZW5kZXIoKXtsZXR7b25DaGFuZ2VDb25zdW1lczplLHBhcmFtOnQsaXNFeGVjdXRlOnIsc3BlY1NlbGVjdG9yczpuLHBhdGhNZXRob2Q6YSxnZXRDb21wb25lbnQ6b309dGhpcy5wcm9wcztjb25zdCBzPW8oIkJ1dHRvbiIpLGw9bygiVGV4dEFyZWEiKSxpPW8oIkhpZ2hsaWdodENvZGUiLCEwKSxjPW8oImNvbnRlbnRUeXBlIik7bGV0IHU9KG4/bi5wYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkoYSx0KTp0KS5nZXQoImVycm9ycyIsKDAsWGUuTGlzdCkoKSksZD1uLmNvbnRlbnRUeXBlVmFsdWVzKGEpLmdldCgicmVxdWVzdENvbnRlbnRUeXBlIikscD10aGlzLnByb3BzLmNvbnN1bWVzJiZ0aGlzLnByb3BzLmNvbnN1bWVzLnNpemU/dGhpcy5wcm9wcy5jb25zdW1lczpQYXJhbUJvZHkuZGVmYXVsdFByb3AuY29uc3VtZXMse3ZhbHVlOm0saXNFZGl0Qm94OmZ9PXRoaXMuc3RhdGUsaD1udWxsO2dldEtub3duU3ludGF4SGlnaGxpZ2h0ZXJMYW5ndWFnZShtKSYmKGg9Impzb24iKTtjb25zdCBnPWAke2NyZWF0ZUh0bWxSZWFkeUlkKGAke2FbMV19JHthWzBdfV9wYXJhbWV0ZXJzYCl9X3NlbGVjdGA7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJib2R5LXBhcmFtIiwiZGF0YS1wYXJhbS1uYW1lIjp0LmdldCgibmFtZSIpLCJkYXRhLXBhcmFtLWluIjp0LmdldCgiaW4iKX0sZiYmcj9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobCx7Y2xhc3NOYW1lOiJib2R5LXBhcmFtX190ZXh0IisodS5jb3VudCgpPyIgaW52YWxpZCI6IiIpLHZhbHVlOm0sb25DaGFuZ2U6dGhpcy5oYW5kbGVPbkNoYW5nZX0pOm0mJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChpLHtjbGFzc05hbWU6ImJvZHktcGFyYW1fX2V4YW1wbGUiLGxhbmd1YWdlOmh9LG0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJib2R5LXBhcmFtLW9wdGlvbnMifSxyP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJib2R5LXBhcmFtLWVkaXQifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocyx7Y2xhc3NOYW1lOmY/ImJ0biBjYW5jZWwgYm9keS1wYXJhbV9fZXhhbXBsZS1lZGl0IjoiYnRuIGVkaXQgYm9keS1wYXJhbV9fZXhhbXBsZS1lZGl0IixvbkNsaWNrOnRoaXMudG9nZ2xlSXNFZGl0Qm94fSxmPyJDYW5jZWwiOiJFZGl0IikpOm51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6Z30sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCJQYXJhbWV0ZXIgY29udGVudCB0eXBlIiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGMse3ZhbHVlOmQsY29udGVudFR5cGVzOnAsb25DaGFuZ2U6ZSxjbGFzc05hbWU6ImJvZHktcGFyYW0tY29udGVudC10eXBlIixhcmlhTGFiZWw6IlBhcmFtZXRlciBjb250ZW50IHR5cGUiLGNvbnRyb2xJZDpnfSkpKSl9fWNsYXNzIEN1cmwgZXh0ZW5kcyBIZS5kZWZhdWx0LkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHtyZXF1ZXN0OmUsZ2V0Q29tcG9uZW50OnR9PXRoaXMucHJvcHMscj1yZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX2Jhc2goZSksbj10KCJTeW50YXhIaWdobGlnaHRlciIsITApO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiY3VybC1jb21tYW5kIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJoNCIsbnVsbCwiQ3VybCIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJjb3B5LXRvLWNsaXBib2FyZCJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChnci5Db3B5VG9DbGlwYm9hcmQse3RleHQ6cn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJidXR0b24iLG51bGwpKSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG4se2xhbmd1YWdlOiJiYXNoIixjbGFzc05hbWU6ImN1cmwgbWljcm9saWdodCIscmVuZGVyUGxhaW5UZXh0Oih7Y2hpbGRyZW46ZSxQbGFpblRleHRWaWV3ZXI6dH0pPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodCx7Y2xhc3NOYW1lOiJjdXJsIn0sZSl9LHIpKSl9fXZhciBwcm9wZXJ0eT0oe3Byb3BLZXk6ZSxwcm9wVmFsOnQscHJvcENsYXNzOnJ9KT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiYnIiLG51bGwpLGUsIjogIixTdHJpbmcodCkpO2NsYXNzIFRyeUl0T3V0QnV0dG9uIGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17b25UcnlvdXRDbGljazpGdW5jdGlvbi5wcm90b3R5cGUsb25DYW5jZWxDbGljazpGdW5jdGlvbi5wcm90b3R5cGUsb25SZXNldENsaWNrOkZ1bmN0aW9uLnByb3RvdHlwZSxlbmFibGVkOiExLGhhc1VzZXJFZGl0ZWRCb2R5OiExLGlzT0FTMzohMX07cmVuZGVyKCl7Y29uc3R7b25UcnlvdXRDbGljazplLG9uQ2FuY2VsQ2xpY2s6dCxvblJlc2V0Q2xpY2s6cixlbmFibGVkOm4saGFzVXNlckVkaXRlZEJvZHk6YSxpc09BUzM6b309dGhpcy5wcm9wcyxzPW8mJmE7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnM/InRyeS1vdXQgYnRuLWdyb3VwIjoidHJ5LW91dCJ9LG4/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtjbGFzc05hbWU6ImJ0biB0cnktb3V0X19idG4gY2FuY2VsIixvbkNsaWNrOnR9LCJDYW5jZWwiKTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse2NsYXNzTmFtZToiYnRuIHRyeS1vdXRfX2J0biIsb25DbGljazplfSwiVHJ5IGl0IG91dCAiKSxzJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse2NsYXNzTmFtZToiYnRuIHRyeS1vdXRfX2J0biByZXNldCIsb25DbGljazpyfSwiUmVzZXQiKSl9fWNsYXNzIFZlcnNpb25QcmFnbWFGaWx0ZXIgZXh0ZW5kcyBIZS5kZWZhdWx0LlB1cmVDb21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17YWxzb1Nob3c6bnVsbCxjaGlsZHJlbjpudWxsLGJ5cGFzczohMX07cmVuZGVyKCl7Y29uc3R7YnlwYXNzOmUsaXNTd2FnZ2VyMjp0LGlzT0FTMzpyLGFsc29TaG93Om59PXRoaXMucHJvcHM7cmV0dXJuIGU/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsdGhpcy5wcm9wcy5jaGlsZHJlbik6dCYmcj9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidmVyc2lvbi1wcmFnbWEifSxuLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJ2ZXJzaW9uLXByYWdtYV9fbWVzc2FnZSB2ZXJzaW9uLXByYWdtYV9fbWVzc2FnZS0tYW1iaWd1b3VzIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJoMyIsbnVsbCwiVW5hYmxlIHRvIHJlbmRlciB0aGlzIGRlZmluaXRpb24iKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJzd2FnZ2VyIiksIiBhbmQgIixIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIm9wZW5hcGkiKSwiIGZpZWxkcyBjYW5ub3QgYmUgcHJlc2VudCBpbiB0aGUgc2FtZSBTd2FnZ2VyIG9yIE9wZW5BUEkgZGVmaW5pdGlvbi4gUGxlYXNlIHJlbW92ZSBvbmUgb2YgdGhlIGZpZWxkcy4iKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIlN1cHBvcnRlZCB2ZXJzaW9uIGZpZWxkcyBhcmUgIixIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsInN3YWdnZXI6ICIsJyIyLjAiJyksIiBhbmQgdGhvc2UgdGhhdCBtYXRjaCAiLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwib3BlbmFwaTogMy4wLm4iKSwiIChmb3IgZXhhbXBsZSwgIixIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIm9wZW5hcGk6IDMuMC40IiksIikuIikpKSk6dHx8cj9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCx0aGlzLnByb3BzLmNoaWxkcmVuKTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidmVyc2lvbi1wcmFnbWEifSxuLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJ2ZXJzaW9uLXByYWdtYV9fbWVzc2FnZSB2ZXJzaW9uLXByYWdtYV9fbWVzc2FnZS0tbWlzc2luZyJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDMiLG51bGwsIlVuYWJsZSB0byByZW5kZXIgdGhpcyBkZWZpbml0aW9uIiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJUaGUgcHJvdmlkZWQgZGVmaW5pdGlvbiBkb2VzIG5vdCBzcGVjaWZ5IGEgdmFsaWQgdmVyc2lvbiBmaWVsZC4iKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIlBsZWFzZSBpbmRpY2F0ZSBhIHZhbGlkIFN3YWdnZXIgb3IgT3BlbkFQSSB2ZXJzaW9uIGZpZWxkLiBTdXBwb3J0ZWQgdmVyc2lvbiBmaWVsZHMgYXJlICIsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJzd2FnZ2VyOiAiLCciMi4wIicpLCIgYW5kIHRob3NlIHRoYXQgbWF0Y2ggIixIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIm9wZW5hcGk6IDMuMC5uIiksIiAoZm9yIGV4YW1wbGUsICIsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJvcGVuYXBpOiAzLjAuNCIpLCIpLiIpKSkpfX12YXIgdmVyc2lvbl9zdGFtcD0oe3ZlcnNpb246ZX0pPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNtYWxsIixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgicHJlIix7Y2xhc3NOYW1lOiJ2ZXJzaW9uIn0sIiAiLGUsIiAiKSk7dmFyIG9wZW5hcGlfdmVyc2lvbj0oe29hc1ZlcnNpb246ZX0pPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNtYWxsIix7Y2xhc3NOYW1lOiJ2ZXJzaW9uLXN0YW1wIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwcmUiLHtjbGFzc05hbWU6InZlcnNpb24ifSwiT0FTICIsZSkpO3ZhciBkZWVwX2xpbms9KHtlbmFibGVkOmUscGF0aDp0LHRleHQ6cn0pPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImEiLHtjbGFzc05hbWU6Im5vc3R5bGUiLG9uQ2xpY2s6ZT9lPT5lLnByZXZlbnREZWZhdWx0KCk6bnVsbCxocmVmOmU/YCMvJHt0fWA6bnVsbH0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLHIpKTt2YXIgc3ZnX2Fzc2V0cz0oKT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhtbG5zWGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLGNsYXNzTmFtZToic3ZnLWFzc2V0cyJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGVmcyIsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInN5bWJvbCIse3ZpZXdCb3g6IjAgMCAyMCAyMCIsaWQ6InVubG9ja2VkIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE1LjggOEgxNFY1LjZDMTQgMi43MDMgMTIuNjY1IDEgMTAgMSA3LjMzNCAxIDYgMi43MDMgNiA1LjZWNmgydi0uODAxQzggMy43NTQgOC43OTcgMyAxMCAzYzEuMjAzIDAgMiAuNzU0IDIgMi4xOTlWOEg0Yy0uNTUzIDAtMSAuNjQ2LTEgMS4xOTlWMTdjMCAuNTQ5LjQyOCAxLjEzOS45NTEgMS4zMDdsMS4xOTcuMzg3QzUuNjcyIDE4Ljg2MSA2LjU1IDE5IDcuMSAxOWg1LjhjLjU0OSAwIDEuNDI4LS4xMzkgMS45NTEtLjMwN2wxLjE5Ni0uMzg3Yy41MjQtLjE2Ny45NTMtLjc1Ny45NTMtMS4zMDZWOS4xOTlDMTcgOC42NDYgMTYuMzUyIDggMTUuOCA4eiJ9KSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzeW1ib2wiLHt2aWV3Qm94OiIwIDAgMjAgMjAiLGlkOiJsb2NrZWQifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTUuOCA4SDE0VjUuNkMxNCAyLjcwMyAxMi42NjUgMSAxMCAxIDcuMzM0IDEgNiAyLjcwMyA2IDUuNlY4SDRjLS41NTMgMC0xIC42NDYtMSAxLjE5OVYxN2MwIC41NDkuNDI4IDEuMTM5Ljk1MSAxLjMwN2wxLjE5Ny4zODdDNS42NzIgMTguODYxIDYuNTUgMTkgNy4xIDE5aDUuOGMuNTQ5IDAgMS40MjgtLjEzOSAxLjk1MS0uMzA3bDEuMTk2LS4zODdjLjUyNC0uMTY3Ljk1My0uNzU3Ljk1My0xLjMwNlY5LjE5OUMxNyA4LjY0NiAxNi4zNTIgOCAxNS44IDh6TTEyIDhIOFY1LjE5OUM4IDMuNzU0IDguNzk3IDMgMTAgM2MxLjIwMyAwIDIgLjc1NCAyIDIuMTk5Vjh6In0pKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInN5bWJvbCIse3ZpZXdCb3g6IjAgMCAyMCAyMCIsaWQ6ImNsb3NlIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE0LjM0OCAxNC44NDljLS40NjkuNDY5LTEuMjI5LjQ2OS0xLjY5NyAwTDEwIDExLjgxOWwtMi42NTEgMy4wMjljLS40NjkuNDY5LTEuMjI5LjQ2OS0xLjY5NyAwLS40NjktLjQ2OS0uNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtLjQ2OS0uNDY5LS40NjktMS4yMjggMC0xLjY5Ny40NjktLjQ2OSAxLjIyOC0uNDY5IDEuNjk3IDBMMTAgOC4xODNsMi42NTEtMy4wMzFjLjQ2OS0uNDY5IDEuMjI4LS40NjkgMS42OTcgMCAuNDY5LjQ2OS40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMuNDY5LjQ2OS40NjkgMS4yMjkgMCAxLjY5OHoifSkpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3ltYm9sIix7dmlld0JveDoiMCAwIDIwIDIwIixpZDoibGFyZ2UtYXJyb3cifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTMuMjUgMTBMNi4xMDkgMi41OGMtLjI2OC0uMjctLjI2OC0uNzA3IDAtLjk3OS4yNjgtLjI3LjcwMS0uMjcuOTY5IDBsNy44MyA3LjkwOGMuMjY4LjI3MS4yNjguNzA5IDAgLjk3OWwtNy44MyA3LjkwOGMtLjI2OC4yNzEtLjcwMS4yNy0uOTY5IDAtLjI2OC0uMjY5LS4yNjgtLjcwNyAwLS45NzlMMTMuMjUgMTB6In0pKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInN5bWJvbCIse3ZpZXdCb3g6IjAgMCAyMCAyMCIsaWQ6ImxhcmdlLWFycm93LWRvd24ifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTcuNDE4IDYuMTA5Yy4yNzItLjI2OC43MDktLjI2OC45NzkgMHMuMjcxLjcwMSAwIC45NjlsLTcuOTA4IDcuODNjLS4yNy4yNjgtLjcwNy4yNjgtLjk3OSAwbC03LjkwOC03LjgzYy0uMjctLjI2OC0uMjctLjcwMSAwLS45NjkuMjcxLS4yNjguNzA5LS4yNjguOTc5IDBMMTAgMTMuMjVsNy40MTgtNy4xNDF6In0pKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInN5bWJvbCIse3ZpZXdCb3g6IjAgMCAyMCAyMCIsaWQ6ImxhcmdlLWFycm93LXVwIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTSAxNy40MTggMTQuOTA4IEMgMTcuNjkgMTUuMTc2IDE4LjEyNyAxNS4xNzYgMTguMzk3IDE0LjkwOCBDIDE4LjY2NyAxNC42NCAxOC42NjggMTQuMjA3IDE4LjM5NyAxMy45MzkgTCAxMC40ODkgNi4xMDkgQyAxMC4yMTkgNS44NDEgOS43ODIgNS44NDEgOS41MSA2LjEwOSBMIDEuNjAyIDEzLjkzOSBDIDEuMzMyIDE0LjIwNyAxLjMzMiAxNC42NCAxLjYwMiAxNC45MDggQyAxLjg3MyAxNS4xNzYgMi4zMTEgMTUuMTc2IDIuNTgxIDE0LjkwOCBMIDEwIDcuNzY3IEwgMTcuNDE4IDE0LjkwOCBaIn0pKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInN5bWJvbCIse3ZpZXdCb3g6IjAgMCAyNCAyNCIsaWQ6Imp1bXAtdG8ifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTkgN3Y0SDUuODNsMy41OC0zLjU5TDggNmwtNiA2IDYgNiAxLjQxLTEuNDFMNS44MyAxM0gyMVY3eiJ9KSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzeW1ib2wiLHt2aWV3Qm94OiIwIDAgMjQgMjQiLGlkOiJleHBhbmQifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTAgMThoNHYtMmgtNHYyek0zIDZ2MmgxOFY2SDN6bTMgN2gxMnYtMkg2djJ6In0pKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInN5bWJvbCIse3ZpZXdCb3g6IjAgMCAxNSAxNiIsaWQ6ImNvcHkifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImciLHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgyLCAtMSkifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiIjZmZmZmZmIixmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTIgMTNoNHYxSDJ2LTF6bTUtNkgydjFoNVY3em0yIDNWOGwtMyAzIDMgM3YtMmg1di0ySDl6TTQuNSA5SDJ2MWgyLjVWOXpNMiAxMmgyLjV2LTFIMnYxem05IDFoMXYyYy0uMDIuMjgtLjExLjUyLS4zLjctLjE5LjE4LS40Mi4yOC0uNy4zSDFjLS41NSAwLTEtLjQ1LTEtMVY0YzAtLjU1LjQ1LTEgMS0xaDNjMC0xLjExLjg5LTIgMi0yIDEuMTEgMCAyIC44OSAyIDJoM2MuNTUgMCAxIC40NSAxIDF2NWgtMVY2SDF2OWgxMHYtMnpNMiA1aDhjMC0uNTUtLjQ1LTEtMS0xSDhjLS41NSAwLTEtLjQ1LTEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMS0uNDUgMS0xIDFIM2MtLjU1IDAtMSAuNDUtMSAxeiJ9KSkpKSkpLFJhPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7UmVtYXJrYWJsZTpmdW5jdGlvbigpe3JldHVybiB5ZS5SZW1hcmthYmxlfX0pLFRhPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7bGlua2lmeTpmdW5jdGlvbigpe3JldHVybiBFZS5saW5raWZ5fX0pLFBhPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQodCxlKSx0fSh7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBTZS5kZWZhdWx0fX0pO1BhLmRlZmF1bHQuYWRkSG9vayYmUGEuZGVmYXVsdC5hZGRIb29rKCJiZWZvcmVTYW5pdGl6ZUVsZW1lbnRzIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaHJlZiYmZS5zZXRBdHRyaWJ1dGUoInJlbCIsIm5vb3BlbmVyIG5vcmVmZXJyZXIiKSxlfSkpO3ZhciBCYT1mdW5jdGlvbiBNYXJrZG93bih7c291cmNlOmUsY2xhc3NOYW1lOnQ9IiIsZ2V0Q29uZmlnczpyPSgpPT4oe3VzZVVuc2FmZU1hcmtkb3duOiExfSl9KXtpZigic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIG51bGw7Y29uc3Qgbj1uZXcgUmEuUmVtYXJrYWJsZSh7aHRtbDohMCx0eXBvZ3JhcGhlcjohMCxicmVha3M6ITAsbGlua1RhcmdldDoiX2JsYW5rIn0pLnVzZShUYS5saW5raWZ5KTtuLmNvcmUucnVsZXIuZGlzYWJsZShbInJlcGxhY2VtZW50cyIsInNtYXJ0cXVvdGVzIl0pO2NvbnN0e3VzZVVuc2FmZU1hcmtkb3duOmF9PXIoKSxvPW4ucmVuZGVyKGUpLHM9c2FuaXRpemVyKG8se3VzZVVuc2FmZU1hcmtkb3duOmF9KTtyZXR1cm4gZSYmbyYmcz9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTooMCxoci5kZWZhdWx0KSh0LCJtYXJrZG93biIpLGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6c319KTpudWxsfTtmdW5jdGlvbiBzYW5pdGl6ZXIoZSx7dXNlVW5zYWZlTWFya2Rvd246dD0hMX09e30pe2NvbnN0IHI9dCxuPXQ/W106WyJzdHlsZSIsImNsYXNzIl07cmV0dXJuIHQmJiFzYW5pdGl6ZXIuaGFzV2FybmVkQWJvdXREZXByZWNhdGlvbiYmKGNvbnNvbGUud2FybigidXNlVW5zYWZlTWFya2Rvd24gZGlzcGxheSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBpcyBkZXByZWNhdGVkIHNpbmNlID4zLjI2LjAgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB2NC4wLjAuIiksc2FuaXRpemVyLmhhc1dhcm5lZEFib3V0RGVwcmVjYXRpb249ITApLFBhLmRlZmF1bHQuc2FuaXRpemUoZSx7QUREX0FUVFI6WyJ0YXJnZXQiXSxGT1JCSURfVEFHUzpbInN0eWxlIiwiZm9ybSJdLEFMTE9XX0RBVEFfQVRUUjpyLEZPUkJJRF9BVFRSOm59KX1zYW5pdGl6ZXIuaGFzV2FybmVkQWJvdXREZXByZWNhdGlvbj0hMTtjbGFzcyBCYXNlTGF5b3V0IGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7ZXJyU2VsZWN0b3JzOmUsc3BlY1NlbGVjdG9yczp0LGdldENvbXBvbmVudDpyfT10aGlzLnByb3BzLG49cigiU3ZnQXNzZXRzIiksYT1yKCJJbmZvQ29udGFpbmVyIiwhMCksbz1yKCJWZXJzaW9uUHJhZ21hRmlsdGVyIikscz1yKCJvcGVyYXRpb25zIiwhMCksbD1yKCJNb2RlbHMiLCEwKSxpPXIoIldlYmhvb2tzIiwhMCksYz1yKCJSb3ciKSx1PXIoIkNvbCIpLGQ9cigiZXJyb3JzIiwhMCkscD1yKCJTZXJ2ZXJzQ29udGFpbmVyIiwhMCksbT1yKCJTY2hlbWVzQ29udGFpbmVyIiwhMCksZj1yKCJBdXRob3JpemVCdG5Db250YWluZXIiLCEwKSxoPXIoIkZpbHRlckNvbnRhaW5lciIsITApLGc9dC5pc1N3YWdnZXIyKCkseT10LmlzT0FTMygpLFM9dC5pc09BUzMxKCksXz0hdC5zcGVjU3RyKCksdj10LmxvYWRpbmdTdGF0dXMoKTtsZXQgYj1udWxsO2lmKCJsb2FkaW5nIj09PXYmJihiPUhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJpbmZvIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImxvYWRpbmctY29udGFpbmVyIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImxvYWRpbmcifSkpKSksImZhaWxlZCI9PT12JiYoYj1IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaW5mbyJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJsb2FkaW5nLWNvbnRhaW5lciJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6InRpdGxlIn0sIkZhaWxlZCB0byBsb2FkIEFQSSBkZWZpbml0aW9uLiIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChkLG51bGwpKSkpLCJmYWlsZWRDb25maWciPT09dil7Y29uc3QgdD1lLmxhc3RFcnJvcigpLHI9dD90LmdldCgibWVzc2FnZSIpOiIiO2I9SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm8gZmFpbGVkLWNvbmZpZyJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJsb2FkaW5nLWNvbnRhaW5lciJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6InRpdGxlIn0sIkZhaWxlZCB0byBsb2FkIHJlbW90ZSBjb25maWd1cmF0aW9uLiIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgicCIsbnVsbCxyKSkpfWlmKCFiJiZfJiYoYj1IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLCJObyBBUEkgZGVmaW5pdGlvbiBwcm92aWRlZC4iKSksYilyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InN3YWdnZXItdWkifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibG9hZGluZy1jb250YWluZXIifSxiKSk7Y29uc3Qgdz10LnNlcnZlcnMoKSxDPXQuc2NoZW1lcygpLHg9dyYmdy5zaXplLE89QyYmQy5zaXplLGs9ISF0LnNlY3VyaXR5RGVmaW5pdGlvbnMoKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InN3YWdnZXItdWkifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobixudWxsKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobyx7aXNTd2FnZ2VyMjpnLGlzT0FTMzp5LGFsc29TaG93OkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChkLG51bGwpfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoZCxudWxsKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYyx7Y2xhc3NOYW1lOiJpbmZvcm1hdGlvbi1jb250YWluZXIifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodSx7bW9iaWxlOjEyfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYSxudWxsKSkpLHh8fE98fGs/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InNjaGVtZS1jb250YWluZXIifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodSx7Y2xhc3NOYW1lOiJzY2hlbWVzIHdyYXBwZXIiLG1vYmlsZToxMn0seHx8Tz9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToic2NoZW1lcy1zZXJ2ZXItY29udGFpbmVyIn0seD9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocCxudWxsKTpudWxsLE8/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG0sbnVsbCk6bnVsbCk6bnVsbCxrP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChmLG51bGwpOm51bGwpKTpudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChoLG51bGwpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChjLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHUse21vYmlsZToxMixkZXNrdG9wOjEyfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocyxudWxsKSkpLFMmJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChjLHtjbGFzc05hbWU6IndlYmhvb2tzLWNvbnRhaW5lciJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh1LHttb2JpbGU6MTIsZGVza3RvcDoxMn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGksbnVsbCkpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYyxudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh1LHttb2JpbGU6MTIsZGVza3RvcDoxMn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGwsbnVsbCkpKSkpfX12YXIgY29yZV9jb21wb25lbnRzPSgpPT4oe2NvbXBvbmVudHM6e0FwcDpiYSxhdXRob3JpemF0aW9uUG9wdXA6QXV0aG9yaXphdGlvblBvcHVwLGF1dGhvcml6ZUJ0bjpBdXRob3JpemVCdG4sQXV0aG9yaXplQnRuQ29udGFpbmVyLGF1dGhvcml6ZU9wZXJhdGlvbkJ0bjpBdXRob3JpemVPcGVyYXRpb25CdG4sYXV0aHM6QXV0aHMsQXV0aEl0ZW06YXV0aF9pdGVtX0F1dGhzLGF1dGhFcnJvcjpBdXRoRXJyb3Isb2F1dGgyOk9hdXRoMixhcGlLZXlBdXRoOkFwaUtleUF1dGgsYmFzaWNBdXRoOkJhc2ljQXV0aCxjbGVhcjpDbGVhcixsaXZlUmVzcG9uc2U6TGl2ZVJlc3BvbnNlLEluaXRpYWxpemVkSW5wdXQsaW5mbzpOYSxJbmZvQ29udGFpbmVyLEluZm9VcmwsSW5mb0Jhc2VQYXRoLENvbnRhY3Q6QWEsTGljZW5zZTpJYSxKdW1wVG9QYXRoLENvcHlUb0NsaXBib2FyZEJ0bixvbmxpbmVWYWxpZGF0b3JCYWRnZTpPbmxpbmVWYWxpZGF0b3JCYWRnZSxvcGVyYXRpb25zOk9wZXJhdGlvbnMsb3BlcmF0aW9uOk9wZXJhdGlvbixPcGVyYXRpb25TdW1tYXJ5LE9wZXJhdGlvblN1bW1hcnlNZXRob2QsT3BlcmF0aW9uU3VtbWFyeVBhdGgscmVzcG9uc2VzOlJlc3BvbnNlcyxyZXNwb25zZTpSZXNwb25zZSxSZXNwb25zZUV4dGVuc2lvbjpyZXNwb25zZV9leHRlbnNpb24scmVzcG9uc2VCb2R5OlJlc3BvbnNlQm9keSxwYXJhbWV0ZXJzOlBhcmFtZXRlcnMscGFyYW1ldGVyUm93OlBhcmFtZXRlclJvdyxleGVjdXRlOkV4ZWN1dGUsaGVhZGVyczpoZWFkZXJzX0hlYWRlcnMsZXJyb3JzOkVycm9ycyxjb250ZW50VHlwZTpDb250ZW50VHlwZSxvdmVydmlldzpPdmVydmlldyxmb290ZXI6Rm9vdGVyLEZpbHRlckNvbnRhaW5lcixQYXJhbUJvZHksY3VybDpDdXJsLFByb3BlcnR5OnByb3BlcnR5LFRyeUl0T3V0QnV0dG9uLE1hcmtkb3duOkJhLEJhc2VMYXlvdXQsVmVyc2lvblByYWdtYUZpbHRlcixWZXJzaW9uU3RhbXA6dmVyc2lvbl9zdGFtcCxPcGVyYXRpb25FeHQ6b3BlcmF0aW9uX2V4dGVuc2lvbnMsT3BlcmF0aW9uRXh0Um93Om9wZXJhdGlvbl9leHRlbnNpb25fcm93LFBhcmFtZXRlckV4dDpwYXJhbWV0ZXJfZXh0ZW5zaW9uLFBhcmFtZXRlckluY2x1ZGVFbXB0eSxPcGVyYXRpb25UYWcsT3BlcmF0aW9uQ29udGFpbmVyLE9wZW5BUElWZXJzaW9uOm9wZW5hcGlfdmVyc2lvbixEZWVwTGluazpkZWVwX2xpbmssU3ZnQXNzZXRzOnN2Z19hc3NldHMsRXhhbXBsZSxFeGFtcGxlc1NlbGVjdCxFeGFtcGxlc1NlbGVjdFZhbHVlUmV0YWluZXJ9fSk7dmFyIGZvcm1fY29tcG9uZW50cz0oKT0+KHtjb21wb25lbnRzOnsuLi5WZX19KTt2YXIgYmFzZT0oKT0+W2NvbmZpZ3NQbHVnaW4sdXRpbCxsb2dzLHZpZXcsdmlld19sZWdhY3kscGx1Z2luc19zcGVjLGVycixpY29ucyxwbHVnaW5zX2xheW91dCxqc29uX3NjaGVtYV81LGpzb25fc2NoZW1hXzVfc2FtcGxlcyxjb3JlX2NvbXBvbmVudHMsZm9ybV9jb21wb25lbnRzLHN3YWdnZXJfY2xpZW50LGF1dGgsZG93bmxvYWRVcmxQbHVnaW4sZGVlcF9saW5raW5nLGZpbHRlcixvbl9jb21wbGV0ZSxwbHVnaW5zX3JlcXVlc3Rfc25pcHBldHMsc3ludGF4X2hpZ2hsaWdodGluZyx2ZXJzaW9ucyxzYWZlX3JlbmRlcigpXTtjb25zdCBNYT0oMCxYZS5NYXApKCk7ZnVuY3Rpb24gb25seU9BUzMoZSl7cmV0dXJuKHQscik9PiguLi5uKT0+e2lmKHIuZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5pc09BUzMoKSl7Y29uc3QgdD1lKC4uLm4pO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Qocik6dH1yZXR1cm4gdCguLi5uKX19Y29uc3QgcWE9b25seU9BUzMoKDAsTHIuZGVmYXVsdCkobnVsbCkpLExhPW9ubHlPQVMzKCgoZSx0KT0+ZT0+ZS5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLmZpbmRTY2hlbWEodCkpKSxVYT1vbmx5T0FTMygoKCk9PmU9Pntjb25zdCB0PWUuZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpLmdldEluKFsiY29tcG9uZW50cyIsInNjaGVtYXMiXSk7cmV0dXJuIFhlLk1hcC5pc01hcCh0KT90Ok1hfSkpLERhPW9ubHlPQVMzKCgoKT0+ZT0+ZS5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLnNwZWNKc29uKCkuaGFzSW4oWyJzZXJ2ZXJzIiwwXSkpKSwkYT1vbmx5T0FTMygoMCxQdC5jcmVhdGVTZWxlY3RvcikoV3IsKGU9PmUuZ2V0SW4oWyJjb21wb25lbnRzIiwic2VjdXJpdHlTY2hlbWVzIl0pfHxudWxsKSkpLHdyYXBfc2VsZWN0b3JzX3ZhbGlkT3BlcmF0aW9uTWV0aG9kcz0oZSx0KT0+KHIsLi4ubik9PnQuc3BlY1NlbGVjdG9ycy5pc09BUzMoKT90Lm9hczNTZWxlY3RvcnMudmFsaWRPcGVyYXRpb25NZXRob2RzKCk6ZSguLi5uKSxWYT1xYSxKYT1xYSxGYT1xYSx6YT1xYSxLYT1xYTtjb25zdCBXYT1mdW5jdGlvbiB3cmFwX3NlbGVjdG9yc19vbmx5T0FTMyhlKXtyZXR1cm4odCxyKT0+KC4uLm4pPT57aWYoci5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLmlzT0FTMygpKXtsZXQgdD1yLmdldFN0YXRlKCkuZ2V0SW4oWyJzcGVjIiwicmVzb2x2ZWRTdWJ0cmVlcyIsImNvbXBvbmVudHMiLCJzZWN1cml0eVNjaGVtZXMiXSk7cmV0dXJuIGUocix0LC4uLm4pfXJldHVybiB0KC4uLm4pfX0oKDAsUHQuY3JlYXRlU2VsZWN0b3IpKChlPT5lKSwoKHtzcGVjU2VsZWN0b3JzOmV9KT0+ZS5zZWN1cml0eURlZmluaXRpb25zKCkpLCgoZSx0KT0+e2xldCByPSgwLFhlLkxpc3QpKCk7cmV0dXJuIHQ/KHQuZW50cnlTZXEoKS5mb3JFYWNoKCgoW2UsdF0pPT57Y29uc3Qgbj10Py5nZXQoInR5cGUiKTtpZigib2F1dGgyIj09PW4mJnQuZ2V0KCJmbG93cyIpLmVudHJ5U2VxKCkuZm9yRWFjaCgoKFtuLGFdKT0+e2xldCBvPSgwLFhlLmZyb21KUykoe2Zsb3c6bixhdXRob3JpemF0aW9uVXJsOmEuZ2V0KCJhdXRob3JpemF0aW9uVXJsIiksdG9rZW5Vcmw6YS5nZXQoInRva2VuVXJsIiksc2NvcGVzOmEuZ2V0KCJzY29wZXMiKSx0eXBlOnQuZ2V0KCJ0eXBlIiksZGVzY3JpcHRpb246dC5nZXQoImRlc2NyaXB0aW9uIil9KTtyPXIucHVzaChuZXcgWGUuTWFwKHtbZV06by5maWx0ZXIoKGU9PnZvaWQgMCE9PWUpKX0pKX0pKSwiaHR0cCIhPT1uJiYiYXBpS2V5IiE9PW58fChyPXIucHVzaChuZXcgWGUuTWFwKHtbZV06dH0pKSksIm9wZW5JZENvbm5lY3QiPT09biYmdC5nZXQoIm9wZW5JZENvbm5lY3REYXRhIikpe2xldCBuPXQuZ2V0KCJvcGVuSWRDb25uZWN0RGF0YSIpOyhuLmdldCgiZ3JhbnRfdHlwZXNfc3VwcG9ydGVkIil8fFsiYXV0aG9yaXphdGlvbl9jb2RlIiwiaW1wbGljaXQiXSkuZm9yRWFjaCgoYT0+e2xldCBvPW4uZ2V0KCJzY29wZXNfc3VwcG9ydGVkIikmJm4uZ2V0KCJzY29wZXNfc3VwcG9ydGVkIikucmVkdWNlKCgoZSx0KT0+ZS5zZXQodCwiIikpLG5ldyBYZS5NYXApLHM9KDAsWGUuZnJvbUpTKSh7ZmxvdzphLGF1dGhvcml6YXRpb25Vcmw6bi5nZXQoImF1dGhvcml6YXRpb25fZW5kcG9pbnQiKSx0b2tlblVybDpuLmdldCgidG9rZW5fZW5kcG9pbnQiKSxzY29wZXM6byx0eXBlOiJvYXV0aDIiLG9wZW5JZENvbm5lY3RVcmw6dC5nZXQoIm9wZW5JZENvbm5lY3RVcmwiKX0pO3I9ci5wdXNoKG5ldyBYZS5NYXAoe1tlXTpzLmZpbHRlcigoZT0+dm9pZCAwIT09ZSkpfSkpfSkpfX0pKSxyKTpyfSkpKTtmdW5jdGlvbiBPQVMzQ29tcG9uZW50V3JhcEZhY3RvcnkoZSl7cmV0dXJuKHQscik9Pm49PiJmdW5jdGlvbiI9PXR5cGVvZiByLnNwZWNTZWxlY3RvcnM/LmlzT0FTMz9yLnNwZWNTZWxlY3RvcnMuaXNPQVMzKCk/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGUsKDAsYXIuZGVmYXVsdCkoe30sbixyLHtPcmk6dH0pKTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodCxuKTooY29uc29sZS53YXJuKCJPQVMzIHdyYXBwZXI6IGNvdWxkbid0IGdldCBzcGVjIiksbnVsbCl9Y29uc3QgSGE9KDAsWGUuTWFwKSgpLHNlbGVjdG9yc19pc1N3YWdnZXIyPSgpPT5lPT5mdW5jdGlvbiBpc1N3YWdnZXIyKGUpe2NvbnN0IHQ9ZS5nZXQoInN3YWdnZXIiKTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJiIyLjAiPT09dH0oZS5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLnNwZWNKc29uKCkpLHNlbGVjdG9yc19pc09BUzMwPSgpPT5lPT5mdW5jdGlvbiBpc09BUzMwKGUpe2NvbnN0IHQ9ZS5nZXQoIm9wZW5hcGkiKTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJi9eM1wuMFwuKD86WzEtOV1cZCp8MCkkLy50ZXN0KHQpfShlLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuc3BlY0pzb24oKSksc2VsZWN0b3JzX2lzT0FTMz0oKT0+ZT0+ZS5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLmlzT0FTMzAoKTtmdW5jdGlvbiBzZWxlY3RvcnNfb25seU9BUzMoZSl7cmV0dXJuKHQsLi4ucik9Pm49PntpZihuLnNwZWNTZWxlY3RvcnMuaXNPQVMzKCkpe2NvbnN0IGE9ZSh0LC4uLnIpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBhP2Eobik6YX1yZXR1cm4gbnVsbH19Y29uc3QgR2E9c2VsZWN0b3JzX29ubHlPQVMzKCgoKT0+ZT0+ZS5zcGVjU2VsZWN0b3JzLnNwZWNKc29uKCkuZ2V0KCJzZXJ2ZXJzIixIYSkpKSxmaW5kU2NoZW1hPShlLHQpPT57Y29uc3Qgcj1lLmdldEluKFsicmVzb2x2ZWRTdWJ0cmVlcyIsImNvbXBvbmVudHMiLCJzY2hlbWFzIix0XSxudWxsKSxuPWUuZ2V0SW4oWyJqc29uIiwiY29tcG9uZW50cyIsInNjaGVtYXMiLHRdLG51bGwpO3JldHVybiByfHxufHxudWxsfSxYYT1zZWxlY3RvcnNfb25seU9BUzMoKChlLHtjYWxsYmFja3M6dCxzcGVjUGF0aDpyfSk9PmU9Pntjb25zdCBuPWUuc3BlY1NlbGVjdG9ycy52YWxpZE9wZXJhdGlvbk1ldGhvZHMoKTtyZXR1cm4gWGUuTWFwLmlzTWFwKHQpP3QucmVkdWNlKCgoZSx0LGEpPT57aWYoIVhlLk1hcC5pc01hcCh0KSlyZXR1cm4gZTtjb25zdCBvPXQucmVkdWNlKCgoZSx0LG8pPT57aWYoIVhlLk1hcC5pc01hcCh0KSlyZXR1cm4gZTtjb25zdCBzPXQuZW50cnlTZXEoKS5maWx0ZXIoKChbZV0pPT5uLmluY2x1ZGVzKGUpKSkubWFwKCgoW2UsdF0pPT4oe29wZXJhdGlvbjooMCxYZS5NYXApKHtvcGVyYXRpb246dH0pLG1ldGhvZDplLHBhdGg6byxjYWxsYmFja05hbWU6YSxzcGVjUGF0aDpyLmNvbmNhdChbYSxvLGVdKX0pKSk7cmV0dXJuIGUuY29uY2F0KHMpfSksKDAsWGUuTGlzdCkoKSk7cmV0dXJuIGUuY29uY2F0KG8pfSksKDAsWGUuTGlzdCkoKSkuZ3JvdXBCeSgoZT0+ZS5jYWxsYmFja05hbWUpKS5tYXAoKGU9PmUudG9BcnJheSgpKSkudG9PYmplY3QoKTp7fX0pKTt2YXIgY2FsbGJhY2tzPSh7Y2FsbGJhY2tzOmUsc3BlY1BhdGg6dCxzcGVjU2VsZWN0b3JzOnIsZ2V0Q29tcG9uZW50Om59KT0+e2NvbnN0IGE9ci5jYWxsYmFja3NPcGVyYXRpb25zKHtjYWxsYmFja3M6ZSxzcGVjUGF0aDp0fSksbz1PYmplY3Qua2V5cyhhKSxzPW4oIk9wZXJhdGlvbkNvbnRhaW5lciIsITApO3JldHVybiAwPT09by5sZW5ndGg/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCJObyBjYWxsYmFja3MiKTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxvLm1hcCgoZT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6YCR7ZX1gfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImgyIixudWxsLGUpLGFbZV0ubWFwKCh0PT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocyx7a2V5OmAke2V9LSR7dC5wYXRofS0ke3QubWV0aG9kfWAsb3A6dC5vcGVyYXRpb24sdGFnOiJjYWxsYmFja3MiLG1ldGhvZDp0Lm1ldGhvZCxwYXRoOnQucGF0aCxzcGVjUGF0aDp0LnNwZWNQYXRoLGFsbG93VHJ5SXRPdXQ6ITF9KSkpKSkpKX07Y29uc3QgZ2V0RGVmYXVsdFJlcXVlc3RCb2R5VmFsdWU9KGUsdCxyLG4pPT57Y29uc3QgYT1lLmdldEluKFsiY29udGVudCIsdF0pPz8oMCxYZS5PcmRlcmVkTWFwKSgpLG89YS5nZXQoInNjaGVtYSIsKDAsWGUuT3JkZXJlZE1hcCkoKSkudG9KUygpLHM9dm9pZCAwIT09YS5nZXQoImV4YW1wbGVzIiksbD1hLmdldCgiZXhhbXBsZSIpLGk9cz9hLmdldEluKFsiZXhhbXBsZXMiLHIsInZhbHVlIl0pOmw7cmV0dXJuIHN0cmluZ2lmeShuLmdldFNhbXBsZVNjaGVtYShvLHQse2luY2x1ZGVXcml0ZU9ubHk6ITB9LGkpKX07dmFyIHJlcXVlc3RfYm9keT0oe3VzZXJIYXNFZGl0ZWRCb2R5OmUscmVxdWVzdEJvZHk6dCxyZXF1ZXN0Qm9keVZhbHVlOnIscmVxdWVzdEJvZHlJbmNsdXNpb25TZXR0aW5nOm4scmVxdWVzdEJvZHlFcnJvcnM6YSxnZXRDb21wb25lbnQ6byxnZXRDb25maWdzOnMsc3BlY1NlbGVjdG9yczpsLGZuOmksY29udGVudFR5cGU6Yyxpc0V4ZWN1dGU6dSxzcGVjUGF0aDpkLG9uQ2hhbmdlOnAsb25DaGFuZ2VJbmNsdWRlRW1wdHk6bSxhY3RpdmVFeGFtcGxlc0tleTpmLHVwZGF0ZUFjdGl2ZUV4YW1wbGVzS2V5Omgsc2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWc6Z30pPT57Y29uc3QgaGFuZGxlRmlsZT1lPT57cChlLnRhcmdldC5maWxlc1swXSl9LHNldElzSW5jbHVkZWRPcHRpb25zPWU9PntsZXQgdD17a2V5OmUsc2hvdWxkRGlzcGF0Y2hJbml0OiExLGRlZmF1bHRWYWx1ZTohMH07cmV0dXJuIm5vIHZhbHVlIj09PW4uZ2V0KGUsIm5vIHZhbHVlIikmJih0LnNob3VsZERpc3BhdGNoSW5pdD0hMCksdH0seT1vKCJNYXJrZG93biIsITApLFM9bygibW9kZWxFeGFtcGxlIiksXz1vKCJSZXF1ZXN0Qm9keUVkaXRvciIpLHY9bygiSGlnaGxpZ2h0Q29kZSIsITApLGI9bygiRXhhbXBsZXNTZWxlY3RWYWx1ZVJldGFpbmVyIiksdz1vKCJFeGFtcGxlIiksQz1vKCJQYXJhbWV0ZXJJbmNsdWRlRW1wdHkiKSx7c2hvd0NvbW1vbkV4dGVuc2lvbnM6eH09cygpLE89dD8uZ2V0KCJkZXNjcmlwdGlvbiIpPz9udWxsLGs9dD8uZ2V0KCJjb250ZW50Iik/P25ldyBYZS5PcmRlcmVkTWFwO2M9Y3x8ay5rZXlTZXEoKS5maXJzdCgpfHwiIjtjb25zdCBOPWsuZ2V0KGMpPz8oMCxYZS5PcmRlcmVkTWFwKSgpLEE9Ti5nZXQoInNjaGVtYSIsKDAsWGUuT3JkZXJlZE1hcCkoKSksST1OLmdldCgiZXhhbXBsZXMiLG51bGwpLGo9ST8ubWFwKCgoZSxyKT0+e2NvbnN0IG49ZT8uZ2V0KCJ2YWx1ZSIsbnVsbCk7cmV0dXJuIG4mJihlPWUuc2V0KCJ2YWx1ZSIsZ2V0RGVmYXVsdFJlcXVlc3RCb2R5VmFsdWUodCxjLHIsaSksbikpLGV9KSk7YT1YZS5MaXN0LmlzTGlzdChhKT9hOigwLFhlLkxpc3QpKCk7aWYoaS5pc0ZpbGVVcGxvYWRJbnRlbmRlZChOPy5nZXQoInNjaGVtYSIpLGMpKXtjb25zdCBlPW8oIklucHV0Iik7cmV0dXJuIHU/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGUse3R5cGU6ImZpbGUiLG9uQ2hhbmdlOmhhbmRsZUZpbGV9KTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImkiLG51bGwsIkV4YW1wbGUgdmFsdWVzIGFyZSBub3QgYXZhaWxhYmxlIGZvciAiLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCxjKSwiIG1lZGlhIHR5cGVzLiIpfWlmKCFOLnNpemUpcmV0dXJuIG51bGw7aWYoaS5oYXNTY2hlbWFUeXBlKE4uZ2V0KCJzY2hlbWEiKSwib2JqZWN0IikmJigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIj09PWN8fDA9PT1jLmluZGV4T2YoIm11bHRpcGFydC8iKSkmJkEuZ2V0KCJwcm9wZXJ0aWVzIiwoMCxYZS5PcmRlcmVkTWFwKSgpKS5zaXplPjApe2NvbnN0IGU9bygiSnNvblNjaGVtYUZvcm0iKSx0PW8oIlBhcmFtZXRlckV4dCIpLGM9QS5nZXQoInByb3BlcnRpZXMiLCgwLFhlLk9yZGVyZWRNYXApKCkpO3JldHVybiByPVhlLk1hcC5pc01hcChyKT9yOigwLFhlLk9yZGVyZWRNYXApKCksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InRhYmxlLWNvbnRhaW5lciJ9LE8mJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh5LHtzb3VyY2U6T30pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGFibGUiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIsbnVsbCxYZS5NYXAuaXNNYXAoYykmJmMuZW50cnlTZXEoKS5tYXAoKChbYyxmXSk9PntpZihmLmdldCgicmVhZE9ubHkiKSlyZXR1cm47Y29uc3QgaD1mLmdldCgib25lT2YiKT8uZ2V0KDApPy50b0pTKCksZz1mLmdldCgiYW55T2YiKT8uZ2V0KDApPy50b0pTKCk7Zj0oMCxYZS5mcm9tSlMpKGkubWVyZ2VKc29uU2NoZW1hKGYudG9KUygpLGg/P2c/P3t9KSk7bGV0IF89eD9nZXRDb21tb25FeHRlbnNpb25zKGYpOm51bGw7Y29uc3Qgdj1BLmdldCgicmVxdWlyZWQiLCgwLFhlLkxpc3QpKCkpLmluY2x1ZGVzKGMpLGI9aS5nZXRTY2hlbWFPYmplY3RUeXBlKGYpLHc9aS5nZXRTY2hlbWFPYmplY3RUeXBlTGFiZWwoZiksTz1pLmdldFNjaGVtYU9iamVjdFR5cGUoZj8uZ2V0KCJpdGVtcyIpKSxrPWYuZ2V0KCJmb3JtYXQiKSxOPWYuZ2V0KCJkZXNjcmlwdGlvbiIpLEk9ci5nZXRJbihbYywidmFsdWUiXSksaj1yLmdldEluKFtjLCJlcnJvcnMiXSl8fGEsUj1uLmdldChjKXx8ITE7bGV0IFQ9aS5nZXRTYW1wbGVTY2hlbWEoZiwhMSx7aW5jbHVkZVdyaXRlT25seTohMH0pOyExPT09VCYmKFQ9ImZhbHNlIiksMD09PVQmJihUPSIwIiksInN0cmluZyIhPXR5cGVvZiBUJiYib2JqZWN0Ij09PWImJihUPXN0cmluZ2lmeShUKSksInN0cmluZyI9PXR5cGVvZiBUJiYiYXJyYXkiPT09YiYmKFQ9SlNPTi5wYXJzZShUKSk7Y29uc3QgUD1pLmlzRmlsZVVwbG9hZEludGVuZGVkKGYpLEI9SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGUse2ZuOmksZGlzcGF0Y2hJbml0aWFsVmFsdWU6IVAsc2NoZW1hOmYsZGVzY3JpcHRpb246YyxnZXRDb21wb25lbnQ6byx2YWx1ZTp2b2lkIDA9PT1JP1Q6SSxyZXF1aXJlZDp2LGVycm9yczpqLG9uQ2hhbmdlOmU9PntwKGUsW2NdKX19KTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ciIse2tleTpjLGNsYXNzTmFtZToicGFyYW1ldGVycyIsImRhdGEtcHJvcGVydHktbmFtZSI6Y30sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToicGFyYW1ldGVycy1jb2xfbmFtZSJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnY/InBhcmFtZXRlcl9fbmFtZSByZXF1aXJlZCI6InBhcmFtZXRlcl9fbmFtZSJ9LGMsdj9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsIsKgKiIpOm51bGwpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJwYXJhbWV0ZXJfX3R5cGUifSx3LGsmJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToicHJvcC1mb3JtYXQifSwiKCQiLGssIikiKSx4JiZfLnNpemU/Xy5lbnRyeVNlcSgpLm1hcCgoKFtlLHJdKT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHQse2tleTpgJHtlfS0ke3J9YCx4S2V5OmUseFZhbDpyfSkpKTpudWxsKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicGFyYW1ldGVyX19kZXByZWNhdGVkIn0sZi5nZXQoImRlcHJlY2F0ZWQiKT8iZGVwcmVjYXRlZCI6bnVsbCkpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6InBhcmFtZXRlcnMtY29sX2Rlc2NyaXB0aW9uIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHkse3NvdXJjZTpOfSksdT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCwib2JqZWN0Ij09PWJ8fCJvYmplY3QiPT09Tz9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoUyx7Z2V0Q29tcG9uZW50Om8sc3BlY1BhdGg6ZC5wdXNoKCJzY2hlbWEiKSxnZXRDb25maWdzOnMsaXNFeGVjdXRlOnUsc3BlY1NlbGVjdG9yczpsLHNjaGVtYTpmLGV4YW1wbGU6Qn0pOkIsdj9udWxsOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChDLHtvbkNoYW5nZTplPT5tKGMsZSksaXNJbmNsdWRlZDpSLGlzSW5jbHVkZWRPcHRpb25zOnNldElzSW5jbHVkZWRPcHRpb25zKGMpLGlzRGlzYWJsZWQ6QXJyYXkuaXNBcnJheShJKT8wIT09SS5sZW5ndGg6IWlzRW1wdHlWYWx1ZShJKX0pKTpudWxsKSl9KSkpKSl9Y29uc3QgUj1nZXREZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZSh0LGMsZixpKTtsZXQgVD1udWxsO2dldEtub3duU3ludGF4SGlnaGxpZ2h0ZXJMYW5ndWFnZShSKSYmKFQ9Impzb24iKTtjb25zdCBQPXU/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF8se3ZhbHVlOnIsZXJyb3JzOmEsZGVmYXVsdFZhbHVlOlIsb25DaGFuZ2U6cCxnZXRDb21wb25lbnQ6b30pOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh2LHtjbGFzc05hbWU6ImJvZHktcGFyYW1fX2V4YW1wbGUiLGxhbmd1YWdlOlR9LHN0cmluZ2lmeShyKXx8Uik7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLE8mJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh5LHtzb3VyY2U6T30pLGo/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGIse3VzZXJIYXNFZGl0ZWRCb2R5OmUsZXhhbXBsZXM6aixjdXJyZW50S2V5OmYsY3VycmVudFVzZXJJbnB1dFZhbHVlOnIsb25TZWxlY3Q6ZT0+e2goZSl9LHVwZGF0ZVZhbHVlOnAsZGVmYXVsdFRvRmlyc3RFeGFtcGxlOiEwLGdldENvbXBvbmVudDpvLHNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnOmd9KTpudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChTLHtnZXRDb21wb25lbnQ6byxnZXRDb25maWdzOnMsc3BlY1NlbGVjdG9yczpsLGV4cGFuZERlcHRoOjEsaXNFeGVjdXRlOnUsc2NoZW1hOk4uZ2V0KCJzY2hlbWEiKSxzcGVjUGF0aDpkLnB1c2goImNvbnRlbnQiLGMpLGV4YW1wbGU6UCxpbmNsdWRlV3JpdGVPbmx5OiEwfSksaj9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodyx7ZXhhbXBsZTpqLmdldChmKSxnZXRDb21wb25lbnQ6byxnZXRDb25maWdzOnN9KTpudWxsKX07Y2xhc3Mgb3BlcmF0aW9uX2xpbmtfT3BlcmF0aW9uTGluayBleHRlbmRzIEhlLkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHtsaW5rOmUsbmFtZTp0LGdldENvbXBvbmVudDpyfT10aGlzLnByb3BzLG49cigiTWFya2Rvd24iLCEwKTtsZXQgYT1lLmdldCgib3BlcmF0aW9uSWQiKXx8ZS5nZXQoIm9wZXJhdGlvblJlZiIpLG89ZS5nZXQoInBhcmFtZXRlcnMiKSYmZS5nZXQoInBhcmFtZXRlcnMiKS50b0pTKCkscz1lLmdldCgiZGVzY3JpcHRpb24iKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wZXJhdGlvbi1saW5rIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImRlc2NyaXB0aW9uIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJiIixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCx0KSkscz9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobix7c291cmNlOnN9KTpudWxsKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInByZSIsbnVsbCwiT3BlcmF0aW9uIGAiLGEsImAiLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiYnIiLG51bGwpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiYnIiLG51bGwpLCJQYXJhbWV0ZXJzICIsZnVuY3Rpb24gcGFkU3RyaW5nKGUsdCl7aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiIiO3JldHVybiB0LnNwbGl0KCJcbiIpLm1hcCgoKHQscik9PnI+MD9BcnJheShlKzEpLmpvaW4oIiAiKSt0OnQpKS5qb2luKCJcbiIpfSgwLEpTT04uc3RyaW5naWZ5KG8sbnVsbCwyKSl8fCJ7fSIsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJiciIsbnVsbCkpKX19dmFyIFlhPW9wZXJhdGlvbl9saW5rX09wZXJhdGlvbkxpbms7dmFyIGNvbXBvbmVudHNfc2VydmVycz0oe3NlcnZlcnM6ZSxjdXJyZW50U2VydmVyOnQsc2V0U2VsZWN0ZWRTZXJ2ZXI6cixzZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlOm4sZ2V0U2VydmVyVmFyaWFibGU6YSxnZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZTpvfSk9Pntjb25zdCBzPShlLmZpbmQoKGU9PmUuZ2V0KCJ1cmwiKT09PXQpKXx8KDAsWGUuT3JkZXJlZE1hcCkoKSkuZ2V0KCJ2YXJpYWJsZXMiKXx8KDAsWGUuT3JkZXJlZE1hcCkoKSxsPTAhPT1zLnNpemU7KDAsSGUudXNlRWZmZWN0KSgoKCk9Pnt0fHxyKGUuZmlyc3QoKT8uZ2V0KCJ1cmwiKSl9KSxbXSksKDAsSGUudXNlRWZmZWN0KSgoKCk9Pntjb25zdCBhPWUuZmluZCgoZT0+ZS5nZXQoInVybCIpPT09dCkpO2lmKCFhKXJldHVybiB2b2lkIHIoZS5maXJzdCgpLmdldCgidXJsIikpOyhhLmdldCgidmFyaWFibGVzIil8fCgwLFhlLk9yZGVyZWRNYXApKCkpLm1hcCgoKGUscik9PntuKHtzZXJ2ZXI6dCxrZXk6cix2YWw6ZS5nZXQoImRlZmF1bHQiKXx8IiJ9KX0pKX0pLFt0LGVdKTtjb25zdCBpPSgwLEhlLnVzZUNhbGxiYWNrKSgoZT0+e3IoZS50YXJnZXQudmFsdWUpfSksW3JdKSxjPSgwLEhlLnVzZUNhbGxiYWNrKSgoZT0+e2NvbnN0IHI9ZS50YXJnZXQuZ2V0QXR0cmlidXRlKCJkYXRhLXZhcmlhYmxlIiksYT1lLnRhcmdldC52YWx1ZTtuKHtzZXJ2ZXI6dCxrZXk6cix2YWw6YX0pfSksW24sdF0pO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToic2VydmVycyJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtodG1sRm9yOiJzZXJ2ZXJzIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiLHtvbkNoYW5nZTppLHZhbHVlOnQsaWQ6InNlcnZlcnMifSxlLnZhbHVlU2VxKCkubWFwKChlPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIse3ZhbHVlOmUuZ2V0KCJ1cmwiKSxrZXk6ZS5nZXQoInVybCIpfSxlLmdldCgidXJsIiksZS5nZXQoImRlc2NyaXB0aW9uIikmJmAgLSAke2UuZ2V0KCJkZXNjcmlwdGlvbiIpfWApKSkudG9BcnJheSgpKSksbCYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImNvbXB1dGVkLXVybCJ9LCJDb21wdXRlZCBVUkw6IixIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsbyh0KSkpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsIlNlcnZlciB2YXJpYWJsZXMiKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRhYmxlIixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGJvZHkiLG51bGwscy5lbnRyeVNlcSgpLm1hcCgoKFtlLHJdKT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ0ciIse2tleTplfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLGUpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsci5nZXQoImVudW0iKT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIseyJkYXRhLXZhcmlhYmxlIjplLG9uQ2hhbmdlOmN9LHIuZ2V0KCJlbnVtIikubWFwKChyPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIse3NlbGVjdGVkOnI9PT1hKHQsZSksa2V5OnIsdmFsdWU6cn0scikpKSk6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJpbnB1dCIse3R5cGU6InRleHQiLHZhbHVlOmEodCxlKXx8IiIsb25DaGFuZ2U6YywiZGF0YS12YXJpYWJsZSI6ZX0pKSkpKSkpKSl9O2NsYXNzIFNlcnZlcnNDb250YWluZXIgZXh0ZW5kcyBIZS5kZWZhdWx0LkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHtzcGVjU2VsZWN0b3JzOmUsb2FzM1NlbGVjdG9yczp0LG9hczNBY3Rpb25zOnIsZ2V0Q29tcG9uZW50Om59PXRoaXMucHJvcHMsYT1lLnNlcnZlcnMoKSxvPW4oIlNlcnZlcnMiKTtyZXR1cm4gYSYmYS5zaXplP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToic2VydmVycy10aXRsZSJ9LCJTZXJ2ZXJzIiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG8se3NlcnZlcnM6YSxjdXJyZW50U2VydmVyOnQuc2VsZWN0ZWRTZXJ2ZXIoKSxzZXRTZWxlY3RlZFNlcnZlcjpyLnNldFNlbGVjdGVkU2VydmVyLHNldFNlcnZlclZhcmlhYmxlVmFsdWU6ci5zZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlLGdldFNlcnZlclZhcmlhYmxlOnQuc2VydmVyVmFyaWFibGVWYWx1ZSxnZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZTp0LnNlcnZlckVmZmVjdGl2ZVZhbHVlfSkpOm51bGx9fWNvbnN0IFFhPUZ1bmN0aW9uLnByb3RvdHlwZTtjbGFzcyBSZXF1ZXN0Qm9keUVkaXRvciBleHRlbmRzIEhlLlB1cmVDb21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17b25DaGFuZ2U6UWEsdXNlckhhc0VkaXRlZEJvZHk6ITF9O2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLnN0YXRlPXt2YWx1ZTpzdHJpbmdpZnkoZS52YWx1ZSl8fGUuZGVmYXVsdFZhbHVlfSxlLm9uQ2hhbmdlKGUudmFsdWUpfWFwcGx5RGVmYXVsdFZhbHVlPWU9Pntjb25zdHtvbkNoYW5nZTp0LGRlZmF1bHRWYWx1ZTpyfT1lfHx0aGlzLnByb3BzO3JldHVybiB0aGlzLnNldFN0YXRlKHt2YWx1ZTpyfSksdChyKX07b25DaGFuZ2U9ZT0+e3RoaXMucHJvcHMub25DaGFuZ2Uoc3RyaW5naWZ5KGUpKX07b25Eb21DaGFuZ2U9ZT0+e2NvbnN0IHQ9ZS50YXJnZXQudmFsdWU7dGhpcy5zZXRTdGF0ZSh7dmFsdWU6dH0sKCgpPT50aGlzLm9uQ2hhbmdlKHQpKSl9O1VOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKGUpe3RoaXMucHJvcHMudmFsdWUhPT1lLnZhbHVlJiZlLnZhbHVlIT09dGhpcy5zdGF0ZS52YWx1ZSYmdGhpcy5zZXRTdGF0ZSh7dmFsdWU6c3RyaW5naWZ5KGUudmFsdWUpfSksIWUudmFsdWUmJmUuZGVmYXVsdFZhbHVlJiZ0aGlzLnN0YXRlLnZhbHVlJiZ0aGlzLmFwcGx5RGVmYXVsdFZhbHVlKGUpfXJlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6ZSxlcnJvcnM6dH09dGhpcy5wcm9wcyx7dmFsdWU6cn09dGhpcy5zdGF0ZSxuPXQuc2l6ZT4wO2NvbnN0IGE9ZSgiVGV4dEFyZWEiKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImJvZHktcGFyYW0ifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYSx7Y2xhc3NOYW1lOigwLGhyLmRlZmF1bHQpKCJib2R5LXBhcmFtX190ZXh0Iix7aW52YWxpZDpufSksdGl0bGU6dC5zaXplP3Quam9pbigiLCAiKToiIix2YWx1ZTpyLG9uQ2hhbmdlOnRoaXMub25Eb21DaGFuZ2V9KSl9fWNsYXNzIEh0dHBBdXRoIGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpO2xldHtuYW1lOnIsc2NoZW1hOm59PXRoaXMucHJvcHMsYT10aGlzLmdldFZhbHVlKCk7dGhpcy5zdGF0ZT17bmFtZTpyLHNjaGVtYTpuLHZhbHVlOmF9fWdldFZhbHVlKCl7bGV0e25hbWU6ZSxhdXRob3JpemVkOnR9PXRoaXMucHJvcHM7cmV0dXJuIHQmJnQuZ2V0SW4oW2UsInZhbHVlIl0pfW9uQ2hhbmdlPWU9PntsZXR7b25DaGFuZ2U6dH09dGhpcy5wcm9wcyx7dmFsdWU6cixuYW1lOm59PWUudGFyZ2V0LGE9T2JqZWN0LmFzc2lnbih7fSx0aGlzLnN0YXRlLnZhbHVlKTtuP2Fbbl09cjphPXIsdGhpcy5zZXRTdGF0ZSh7dmFsdWU6YX0sKCgpPT50KHRoaXMuc3RhdGUpKSl9O3JlbmRlcigpe2xldHtzY2hlbWE6ZSxnZXRDb21wb25lbnQ6dCxlcnJTZWxlY3RvcnM6cixuYW1lOm4sYXV0aFNlbGVjdG9yczphfT10aGlzLnByb3BzO2NvbnN0IG89dCgiSW5wdXQiKSxzPXQoIlJvdyIpLGw9dCgiQ29sIiksaT10KCJhdXRoRXJyb3IiKSxjPXQoIk1hcmtkb3duIiwhMCksdT10KCJKdW1wVG9QYXRoIiwhMCksZD0oZS5nZXQoInNjaGVtZSIpfHwiIikudG9Mb3dlckNhc2UoKSxwPWEuc2VsZWN0QXV0aFBhdGgobik7bGV0IG09dGhpcy5nZXRWYWx1ZSgpLGY9ci5hbGxFcnJvcnMoKS5maWx0ZXIoKGU9PmUuZ2V0KCJhdXRoSWQiKT09PW4pKTtpZigiYmFzaWMiPT09ZCl7bGV0IHQ9bT9tLmdldCgidXNlcm5hbWUiKTpudWxsO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCxuKSwiwqAgKGh0dHAsIEJhc2ljKSIsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHUse3BhdGg6cH0pKSx0JiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImg2IixudWxsLCJBdXRob3JpemVkIiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHMsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYyx7c291cmNlOmUuZ2V0KCJkZXNjcmlwdGlvbiIpfSkpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChzLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6ImF1dGgtYmFzaWMtdXNlcm5hbWUifSwiVXNlcm5hbWU6IiksdD9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIiAiLHQsIiAiKTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobCxudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChvLHtpZDoiYXV0aC1iYXNpYy11c2VybmFtZSIsdHlwZToidGV4dCIscmVxdWlyZWQ6InJlcXVpcmVkIixuYW1lOiJ1c2VybmFtZSIsImFyaWEtbGFiZWwiOiJhdXRoLWJhc2ljLXVzZXJuYW1lIixvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlLGF1dG9Gb2N1czohMH0pKSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHMsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjoiYXV0aC1iYXNpYy1wYXNzd29yZCJ9LCJQYXNzd29yZDoiKSx0P0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwiICoqKioqKiAiKTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobCxudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChvLHtpZDoiYXV0aC1iYXNpYy1wYXNzd29yZCIsYXV0b0NvbXBsZXRlOiJuZXctcGFzc3dvcmQiLG5hbWU6InBhc3N3b3JkIix0eXBlOiJwYXNzd29yZCIsImFyaWEtbGFiZWwiOiJhdXRoLWJhc2ljLXBhc3N3b3JkIixvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlfSkpKSxmLnZhbHVlU2VxKCkubWFwKCgoZSx0KT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGkse2Vycm9yOmUsa2V5OnR9KSkpKX1yZXR1cm4iYmVhcmVyIj09PWQ/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJoNCIsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsbiksIsKgIChodHRwLCBCZWFyZXIpIixIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodSx7cGF0aDpwfSkpLG0mJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDYiLG51bGwsIkF1dGhvcml6ZWQiKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocyxudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChjLHtzb3VyY2U6ZS5nZXQoImRlc2NyaXB0aW9uIil9KSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHMsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjoiYXV0aC1iZWFyZXItdmFsdWUifSwiVmFsdWU6IiksbT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIiAqKioqKiogIik6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGwsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobyx7aWQ6ImF1dGgtYmVhcmVyLXZhbHVlIix0eXBlOiJ0ZXh0IiwiYXJpYS1sYWJlbCI6ImF1dGgtYmVhcmVyLXZhbHVlIixvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlLGF1dG9Gb2N1czohMH0pKSksZi52YWx1ZVNlcSgpLm1hcCgoKGUsdCk9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChpLHtlcnJvcjplLGtleTp0fSkpKSk6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJlbSIsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImIiLG51bGwsbiksIiBIVFRQIGF1dGhlbnRpY2F0aW9uOiB1bnN1cHBvcnRlZCBzY2hlbWUgIixgJyR7ZH0nYCkpfX1jbGFzcyBPcGVyYXRpb25TZXJ2ZXJzIGV4dGVuZHMgSGUuZGVmYXVsdC5Db21wb25lbnR7c2V0U2VsZWN0ZWRTZXJ2ZXI9ZT0+e2NvbnN0e3BhdGg6dCxtZXRob2Q6cn09dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5mb3JjZVVwZGF0ZSgpLHRoaXMucHJvcHMuc2V0U2VsZWN0ZWRTZXJ2ZXIoZSxgJHt0fToke3J9YCl9O3NldFNlcnZlclZhcmlhYmxlVmFsdWU9ZT0+e2NvbnN0e3BhdGg6dCxtZXRob2Q6cn09dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5mb3JjZVVwZGF0ZSgpLHRoaXMucHJvcHMuc2V0U2VydmVyVmFyaWFibGVWYWx1ZSh7Li4uZSxuYW1lc3BhY2U6YCR7dH06JHtyfWB9KX07Z2V0U2VsZWN0ZWRTZXJ2ZXI9KCk9Pntjb25zdHtwYXRoOmUsbWV0aG9kOnR9PXRoaXMucHJvcHM7cmV0dXJuIHRoaXMucHJvcHMuZ2V0U2VsZWN0ZWRTZXJ2ZXIoYCR7ZX06JHt0fWApfTtnZXRTZXJ2ZXJWYXJpYWJsZT0oZSx0KT0+e2NvbnN0e3BhdGg6cixtZXRob2Q6bn09dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5wcm9wcy5nZXRTZXJ2ZXJWYXJpYWJsZSh7bmFtZXNwYWNlOmAke3J9OiR7bn1gLHNlcnZlcjplfSx0KX07Z2V0RWZmZWN0aXZlU2VydmVyVmFsdWU9ZT0+e2NvbnN0e3BhdGg6dCxtZXRob2Q6cn09dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5wcm9wcy5nZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZSh7c2VydmVyOmUsbmFtZXNwYWNlOmAke3R9OiR7cn1gfSl9O3JlbmRlcigpe2NvbnN0e29wZXJhdGlvblNlcnZlcnM6ZSxwYXRoU2VydmVyczp0LGdldENvbXBvbmVudDpyfT10aGlzLnByb3BzO2lmKCFlJiYhdClyZXR1cm4gbnVsbDtjb25zdCBuPXIoIlNlcnZlcnMiKSxhPWV8fHQsbz1lPyJvcGVyYXRpb24iOiJwYXRoIjtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc2VjdGlvbiBvcGVyYXRpb24tc2VydmVycyJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXNlY3Rpb24taGVhZGVyIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InRhYi1oZWFkZXIifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXRpdGxlIn0sIlNlcnZlcnMiKSkpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLWRlc2NyaXB0aW9uLXdyYXBwZXIifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJtZXNzYWdlIn0sIlRoZXNlICIsbywiLWxldmVsIG9wdGlvbnMgb3ZlcnJpZGUgdGhlIGdsb2JhbCBzZXJ2ZXIgb3B0aW9ucy4iKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobix7c2VydmVyczphLGN1cnJlbnRTZXJ2ZXI6dGhpcy5nZXRTZWxlY3RlZFNlcnZlcigpLHNldFNlbGVjdGVkU2VydmVyOnRoaXMuc2V0U2VsZWN0ZWRTZXJ2ZXIsc2V0U2VydmVyVmFyaWFibGVWYWx1ZTp0aGlzLnNldFNlcnZlclZhcmlhYmxlVmFsdWUsZ2V0U2VydmVyVmFyaWFibGU6dGhpcy5nZXRTZXJ2ZXJWYXJpYWJsZSxnZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZTp0aGlzLmdldEVmZmVjdGl2ZVNlcnZlclZhbHVlfSkpKX19dmFyIFphPXtDYWxsYmFja3M6Y2FsbGJhY2tzLEh0dHBBdXRoLFJlcXVlc3RCb2R5OnJlcXVlc3RfYm9keSxTZXJ2ZXJzOmNvbXBvbmVudHNfc2VydmVycyxTZXJ2ZXJzQ29udGFpbmVyLFJlcXVlc3RCb2R5RWRpdG9yLE9wZXJhdGlvblNlcnZlcnMsb3BlcmF0aW9uTGluazpZYX07Y29uc3QgZW89bmV3IFJhLlJlbWFya2FibGUoImNvbW1vbm1hcmsiKTtlby5ibG9jay5ydWxlci5lbmFibGUoWyJ0YWJsZSJdKSxlby5zZXQoe2xpbmtUYXJnZXQ6Il9ibGFuayJ9KTt2YXIgdG89T0FTM0NvbXBvbmVudFdyYXBGYWN0b3J5KCgoe3NvdXJjZTplLGNsYXNzTmFtZTp0PSIiLGdldENvbmZpZ3M6cj0oKT0+KHt1c2VVbnNhZmVNYXJrZG93bjohMX0pfSk9PntpZigic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIG51bGw7aWYoZSl7Y29uc3R7dXNlVW5zYWZlTWFya2Rvd246bn09cigpLGE9c2FuaXRpemVyKGVvLnJlbmRlcihlKSx7dXNlVW5zYWZlTWFya2Rvd246bn0pO2xldCBvO3JldHVybiJzdHJpbmciPT10eXBlb2YgYSYmKG89YS50cmltKCkpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDpvfSxjbGFzc05hbWU6KDAsaHIuZGVmYXVsdCkodCwicmVuZGVyZWRNYXJrZG93biIpfSl9cmV0dXJuIG51bGx9KSkscm89T0FTM0NvbXBvbmVudFdyYXBGYWN0b3J5KCgoe09yaTplLC4uLnR9KT0+e2NvbnN0e3NjaGVtYTpyLGdldENvbXBvbmVudDpuLGVyclNlbGVjdG9yczphLGF1dGhvcml6ZWQ6byxvbkF1dGhDaGFuZ2U6cyxuYW1lOmwsYXV0aFNlbGVjdG9yczppfT10LGM9bigiSHR0cEF1dGgiKTtyZXR1cm4iaHR0cCI9PT1yLmdldCgidHlwZSIpP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChjLHtrZXk6bCxzY2hlbWE6cixuYW1lOmwsZXJyU2VsZWN0b3JzOmEsYXV0aG9yaXplZDpvLGdldENvbXBvbmVudDpuLG9uQ2hhbmdlOnMsYXV0aFNlbGVjdG9yczppfSk6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGUsdCl9KSksbm89T0FTM0NvbXBvbmVudFdyYXBGYWN0b3J5KE9ubGluZVZhbGlkYXRvckJhZGdlKTtjbGFzcyBNb2RlbENvbXBvbmVudCBleHRlbmRzIEhlLkNvbXBvbmVudHtyZW5kZXIoKXtsZXR7Z2V0Q29uZmlnczplLHNjaGVtYTp0LE9yaTpyfT10aGlzLnByb3BzLG49WyJtb2RlbC1ib3giXSxhPW51bGw7cmV0dXJuITA9PT10LmdldCgiZGVwcmVjYXRlZCIpJiYobi5wdXNoKCJkZXByZWNhdGVkIiksYT1IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsLWRlcHJlY2F0ZWQtd2FybmluZyJ9LCJEZXByZWNhdGVkOiIpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpuLmpvaW4oIiAiKX0sYSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQociwoMCxhci5kZWZhdWx0KSh7fSx0aGlzLnByb3BzLHtnZXRDb25maWdzOmUsZGVwdGg6MSxleHBhbmREZXB0aDp0aGlzLnByb3BzLmV4cGFuZERlcHRofHwwfSkpKX19dmFyIGFvPU9BUzNDb21wb25lbnRXcmFwRmFjdG9yeShNb2RlbENvbXBvbmVudCksb289T0FTM0NvbXBvbmVudFdyYXBGYWN0b3J5KCgoe09yaTplLC4uLnR9KT0+e2NvbnN0e3NjaGVtYTpyLGdldENvbXBvbmVudDpuLGVycm9yczphLG9uQ2hhbmdlOm8sZm46c309dCxsPXMuaXNGaWxlVXBsb2FkSW50ZW5kZWQociksaT1uKCJJbnB1dCIpO3JldHVybiBsP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChpLHt0eXBlOiJmaWxlIixjbGFzc05hbWU6YS5sZW5ndGg/ImludmFsaWQiOiIiLHRpdGxlOmEubGVuZ3RoP2E6IiIsb25DaGFuZ2U6ZT0+e28oZS50YXJnZXQuZmlsZXNbMF0pfSxkaXNhYmxlZDplLmlzRGlzYWJsZWR9KTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoZSx0KX0pKSxzbz17TWFya2Rvd246dG8sQXV0aEl0ZW06cm8sT3BlbkFQSVZlcnNpb246ZnVuY3Rpb24gT0FTMzBDb21wb25lbnRXcmFwRmFjdG9yeShlKXtyZXR1cm4odCxyKT0+bj0+ImZ1bmN0aW9uIj09dHlwZW9mIHIuc3BlY1NlbGVjdG9ycz8uaXNPQVMzMD9yLnNwZWNTZWxlY3RvcnMuaXNPQVMzMCgpP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChlLCgwLGFyLmRlZmF1bHQpKHt9LG4scix7T3JpOnR9KSk6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHQsbik6KGNvbnNvbGUud2FybigiT0FTMzAgd3JhcHBlcjogY291bGRuJ3QgZ2V0IHNwZWMiKSxudWxsKX0oKGU9Pntjb25zdHtPcmk6dH09ZTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHQse29hc1ZlcnNpb246IjMuMCJ9KX0pKSxKc29uU2NoZW1hX3N0cmluZzpvbyxtb2RlbDphbyxvbmxpbmVWYWxpZGF0b3JCYWRnZTpub307Y29uc3QgbG89Im9hczNfc2V0X3NlcnZlcnMiLGlvPSJvYXMzX3NldF9yZXF1ZXN0X2JvZHlfdmFsdWUiLGNvPSJvYXMzX3NldF9yZXF1ZXN0X2JvZHlfcmV0YWluX2ZsYWciLHVvPSJvYXMzX3NldF9yZXF1ZXN0X2JvZHlfaW5jbHVzaW9uIixwbz0ib2FzM19zZXRfYWN0aXZlX2V4YW1wbGVzX21lbWJlciIsbW89Im9hczNfc2V0X3JlcXVlc3RfY29udGVudF90eXBlIixmbz0ib2FzM19zZXRfcmVzcG9uc2VfY29udGVudF90eXBlIixobz0ib2FzM19zZXRfc2VydmVyX3ZhcmlhYmxlX3ZhbHVlIixnbz0ib2FzM19zZXRfcmVxdWVzdF9ib2R5X3ZhbGlkYXRlX2Vycm9yIix5bz0ib2FzM19jbGVhcl9yZXF1ZXN0X2JvZHlfdmFsaWRhdGVfZXJyb3IiLEVvPSJvYXMzX2NsZWFyX3JlcXVlc3RfYm9keV92YWx1ZSI7ZnVuY3Rpb24gc2V0U2VsZWN0ZWRTZXJ2ZXIoZSx0KXtyZXR1cm57dHlwZTpsbyxwYXlsb2FkOntzZWxlY3RlZFNlcnZlclVybDplLG5hbWVzcGFjZTp0fX19ZnVuY3Rpb24gc2V0UmVxdWVzdEJvZHlWYWx1ZSh7dmFsdWU6ZSxwYXRoTWV0aG9kOnR9KXtyZXR1cm57dHlwZTppbyxwYXlsb2FkOnt2YWx1ZTplLHBhdGhNZXRob2Q6dH19fWNvbnN0IHNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnPSh7dmFsdWU6ZSxwYXRoTWV0aG9kOnR9KT0+KHt0eXBlOmNvLHBheWxvYWQ6e3ZhbHVlOmUscGF0aE1ldGhvZDp0fX0pO2Z1bmN0aW9uIHNldFJlcXVlc3RCb2R5SW5jbHVzaW9uKHt2YWx1ZTplLHBhdGhNZXRob2Q6dCxuYW1lOnJ9KXtyZXR1cm57dHlwZTp1byxwYXlsb2FkOnt2YWx1ZTplLHBhdGhNZXRob2Q6dCxuYW1lOnJ9fX1mdW5jdGlvbiBzZXRBY3RpdmVFeGFtcGxlc01lbWJlcih7bmFtZTplLHBhdGhNZXRob2Q6dCxjb250ZXh0VHlwZTpyLGNvbnRleHROYW1lOm59KXtyZXR1cm57dHlwZTpwbyxwYXlsb2FkOntuYW1lOmUscGF0aE1ldGhvZDp0LGNvbnRleHRUeXBlOnIsY29udGV4dE5hbWU6bn19fWZ1bmN0aW9uIHNldFJlcXVlc3RDb250ZW50VHlwZSh7dmFsdWU6ZSxwYXRoTWV0aG9kOnR9KXtyZXR1cm57dHlwZTptbyxwYXlsb2FkOnt2YWx1ZTplLHBhdGhNZXRob2Q6dH19fWZ1bmN0aW9uIHNldFJlc3BvbnNlQ29udGVudFR5cGUoe3ZhbHVlOmUscGF0aDp0LG1ldGhvZDpyfSl7cmV0dXJue3R5cGU6Zm8scGF5bG9hZDp7dmFsdWU6ZSxwYXRoOnQsbWV0aG9kOnJ9fX1mdW5jdGlvbiBzZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlKHtzZXJ2ZXI6ZSxuYW1lc3BhY2U6dCxrZXk6cix2YWw6bn0pe3JldHVybnt0eXBlOmhvLHBheWxvYWQ6e3NlcnZlcjplLG5hbWVzcGFjZTp0LGtleTpyLHZhbDpufX19Y29uc3Qgc2V0UmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yPSh7cGF0aDplLG1ldGhvZDp0LHZhbGlkYXRpb25FcnJvcnM6cn0pPT4oe3R5cGU6Z28scGF5bG9hZDp7cGF0aDplLG1ldGhvZDp0LHZhbGlkYXRpb25FcnJvcnM6cn19KSxjbGVhclJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcj0oe3BhdGg6ZSxtZXRob2Q6dH0pPT4oe3R5cGU6eW8scGF5bG9hZDp7cGF0aDplLG1ldGhvZDp0fX0pLGluaXRSZXF1ZXN0Qm9keVZhbGlkYXRlRXJyb3I9KHtwYXRoTWV0aG9kOmV9KT0+KHt0eXBlOnlvLHBheWxvYWQ6e3BhdGg6ZVswXSxtZXRob2Q6ZVsxXX19KSxjbGVhclJlcXVlc3RCb2R5VmFsdWU9KHtwYXRoTWV0aG9kOmV9KT0+KHt0eXBlOkVvLHBheWxvYWQ6e3BhdGhNZXRob2Q6ZX19KTt2YXIgU289ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LGUpLHR9KHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIF9lLmRlZmF1bHR9fSk7Y29uc3Qgb2FzM19zZWxlY3RvcnNfb25seU9BUzM9ZT0+KHQsLi4ucik9Pm49PntpZihuLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuaXNPQVMzKCkpe2NvbnN0IGE9ZSh0LC4uLnIpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBhP2Eobik6YX1yZXR1cm4gbnVsbH07Y29uc3QgX289b2FzM19zZWxlY3RvcnNfb25seU9BUzMoKChlLHQpPT57Y29uc3Qgcj10P1t0LCJzZWxlY3RlZFNlcnZlciJdOlsic2VsZWN0ZWRTZXJ2ZXIiXTtyZXR1cm4gZS5nZXRJbihyKXx8IiJ9KSksdm89b2FzM19zZWxlY3RvcnNfb25seU9BUzMoKChlLHQscik9PmUuZ2V0SW4oWyJyZXF1ZXN0RGF0YSIsdCxyLCJib2R5VmFsdWUiXSl8fG51bGwpKSxibz1vYXMzX3NlbGVjdG9yc19vbmx5T0FTMygoKGUsdCxyKT0+ZS5nZXRJbihbInJlcXVlc3REYXRhIix0LHIsInJldGFpbkJvZHlWYWx1ZSJdKXx8ITEpKSxzZWxlY3REZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZT0oZSx0LHIpPT5lPT57Y29uc3R7b2FzM1NlbGVjdG9yczpuLHNwZWNTZWxlY3RvcnM6YSxmbjpvfT1lLmdldFN5c3RlbSgpO2lmKGEuaXNPQVMzKCkpe2NvbnN0IGU9bi5yZXF1ZXN0Q29udGVudFR5cGUodCxyKTtpZihlKXJldHVybiBnZXREZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZShhLnNwZWNSZXNvbHZlZFN1YnRyZWUoWyJwYXRocyIsdCxyLCJyZXF1ZXN0Qm9keSJdKSxlLG4uYWN0aXZlRXhhbXBsZXNNZW1iZXIodCxyLCJyZXF1ZXN0Qm9keSIsInJlcXVlc3RCb2R5Iiksbyl9cmV0dXJuIG51bGx9LHdvPW9hczNfc2VsZWN0b3JzX29ubHlPQVMzKCgoZSx0LHIpPT5lPT57Y29uc3R7b2FzM1NlbGVjdG9yczpuLHNwZWNTZWxlY3RvcnM6YSxmbjpvfT1lO2xldCBzPSExO2NvbnN0IGw9bi5yZXF1ZXN0Q29udGVudFR5cGUodCxyKTtsZXQgaT1uLnJlcXVlc3RCb2R5VmFsdWUodCxyKTtjb25zdCBjPWEuc3BlY1Jlc29sdmVkU3VidHJlZShbInBhdGhzIix0LHIsInJlcXVlc3RCb2R5Il0pO2lmKCFjKXJldHVybiExO2lmKFhlLk1hcC5pc01hcChpKSYmKGk9c3RyaW5naWZ5KGkubWFwRW50cmllcygoZT0+WGUuTWFwLmlzTWFwKGVbMV0pP1tlWzBdLGVbMV0uZ2V0KCJ2YWx1ZSIpXTplKSkudG9KUygpKSksWGUuTGlzdC5pc0xpc3QoaSkmJihpPXN0cmluZ2lmeShpKSksbCl7Y29uc3QgZT1nZXREZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZShjLGwsbi5hY3RpdmVFeGFtcGxlc01lbWJlcih0LHIsInJlcXVlc3RCb2R5IiwicmVxdWVzdEJvZHkiKSxvKTtzPSEhaSYmaSE9PWV9cmV0dXJuIHN9KSksQ289b2FzM19zZWxlY3RvcnNfb25seU9BUzMoKChlLHQscik9PmUuZ2V0SW4oWyJyZXF1ZXN0RGF0YSIsdCxyLCJib2R5SW5jbHVzaW9uIl0pfHwoMCxYZS5NYXApKCkpKSx4bz1vYXMzX3NlbGVjdG9yc19vbmx5T0FTMygoKGUsdCxyKT0+ZS5nZXRJbihbInJlcXVlc3REYXRhIix0LHIsImVycm9ycyJdKXx8bnVsbCkpLE9vPW9hczNfc2VsZWN0b3JzX29ubHlPQVMzKCgoZSx0LHIsbixhKT0+ZS5nZXRJbihbImV4YW1wbGVzIix0LHIsbixhLCJhY3RpdmVFeGFtcGxlIl0pfHxudWxsKSksa289b2FzM19zZWxlY3RvcnNfb25seU9BUzMoKChlLHQscik9PmUuZ2V0SW4oWyJyZXF1ZXN0RGF0YSIsdCxyLCJyZXF1ZXN0Q29udGVudFR5cGUiXSl8fG51bGwpKSxObz1vYXMzX3NlbGVjdG9yc19vbmx5T0FTMygoKGUsdCxyKT0+ZS5nZXRJbihbInJlcXVlc3REYXRhIix0LHIsInJlc3BvbnNlQ29udGVudFR5cGUiXSl8fG51bGwpKSxBbz1vYXMzX3NlbGVjdG9yc19vbmx5T0FTMygoKGUsdCxyKT0+e2xldCBuO2lmKCJzdHJpbmciIT10eXBlb2YgdCl7Y29uc3R7c2VydmVyOmUsbmFtZXNwYWNlOmF9PXQ7bj1hP1thLCJzZXJ2ZXJWYXJpYWJsZVZhbHVlcyIsZSxyXTpbInNlcnZlclZhcmlhYmxlVmFsdWVzIixlLHJdfWVsc2V7bj1bInNlcnZlclZhcmlhYmxlVmFsdWVzIix0LHJdfXJldHVybiBlLmdldEluKG4pfHxudWxsfSkpLElvPW9hczNfc2VsZWN0b3JzX29ubHlPQVMzKCgoZSx0KT0+e2xldCByO2lmKCJzdHJpbmciIT10eXBlb2YgdCl7Y29uc3R7c2VydmVyOmUsbmFtZXNwYWNlOm59PXQ7cj1uP1tuLCJzZXJ2ZXJWYXJpYWJsZVZhbHVlcyIsZV06WyJzZXJ2ZXJWYXJpYWJsZVZhbHVlcyIsZV19ZWxzZXtyPVsic2VydmVyVmFyaWFibGVWYWx1ZXMiLHRdfXJldHVybiBlLmdldEluKHIpfHwoMCxYZS5PcmRlcmVkTWFwKSgpfSkpLGpvPW9hczNfc2VsZWN0b3JzX29ubHlPQVMzKCgoZSx0KT0+e3ZhciByLG47aWYoInN0cmluZyIhPXR5cGVvZiB0KXtjb25zdHtzZXJ2ZXI6YSxuYW1lc3BhY2U6b309dDtuPWEscj1vP2UuZ2V0SW4oW28sInNlcnZlclZhcmlhYmxlVmFsdWVzIixuXSk6ZS5nZXRJbihbInNlcnZlclZhcmlhYmxlVmFsdWVzIixuXSl9ZWxzZSBuPXQscj1lLmdldEluKFsic2VydmVyVmFyaWFibGVWYWx1ZXMiLG5dKTtyPXJ8fCgwLFhlLk9yZGVyZWRNYXApKCk7bGV0IGE9bjtyZXR1cm4gci5tYXAoKChlLHQpPT57YT1hLnJlcGxhY2UobmV3IFJlZ0V4cChgeyR7KDAsU28uZGVmYXVsdCkodCl9fWAsImciKSxlKX0pKSxhfSkpLFJvPWZ1bmN0aW9uIHZhbGlkYXRlUmVxdWVzdEJvZHlJc1JlcXVpcmVkKGUpe3JldHVybiguLi50KT0+cj0+e2NvbnN0IG49ci5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLnNwZWNKc29uKCk7bGV0IGE9Wy4uLnRdWzFdfHxbXTtyZXR1cm4hbi5nZXRJbihbInBhdGhzIiwuLi5hLCJyZXF1ZXN0Qm9keSIsInJlcXVpcmVkIl0pfHxlKC4uLnQpfX0oKChlLHQpPT4oKGUsdCk9Pih0PXR8fFtdLCEhZS5nZXRJbihbInJlcXVlc3REYXRhIiwuLi50LCJib2R5VmFsdWUiXSkpKShlLHQpKSksdmFsaWRhdGVTaGFsbG93UmVxdWlyZWQ9KGUse29hczNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGU6dCxvYXMzUmVxdWVzdENvbnRlbnRUeXBlOnIsb2FzM1JlcXVlc3RCb2R5VmFsdWU6bn0pPT57bGV0IGE9W107aWYoIVhlLk1hcC5pc01hcChuKSlyZXR1cm4gYTtsZXQgbz1bXTtyZXR1cm4gT2JqZWN0LmtleXModC5yZXF1ZXN0Q29udGVudFR5cGUpLmZvckVhY2goKGU9PntpZihlPT09cil7dC5yZXF1ZXN0Q29udGVudFR5cGVbZV0uZm9yRWFjaCgoZT0+e28uaW5kZXhPZihlKTwwJiZvLnB1c2goZSl9KSl9fSkpLG8uZm9yRWFjaCgoZT0+e24uZ2V0SW4oW2UsInZhbHVlIl0pfHxhLnB1c2goZSl9KSksYX0sVG89KDAsTHIuZGVmYXVsdCkoWyJnZXQiLCJwdXQiLCJwb3N0IiwiZGVsZXRlIiwib3B0aW9ucyIsImhlYWQiLCJwYXRjaCIsInRyYWNlIl0pO3ZhciBQbz17W2xvXTooZSx7cGF5bG9hZDp7c2VsZWN0ZWRTZXJ2ZXJVcmw6dCxuYW1lc3BhY2U6cn19KT0+e2NvbnN0IG49cj9bciwic2VsZWN0ZWRTZXJ2ZXIiXTpbInNlbGVjdGVkU2VydmVyIl07cmV0dXJuIGUuc2V0SW4obix0KX0sW2lvXTooZSx7cGF5bG9hZDp7dmFsdWU6dCxwYXRoTWV0aG9kOnJ9fSk9PntsZXRbbixhXT1yO2lmKCFYZS5NYXAuaXNNYXAodCkpcmV0dXJuIGUuc2V0SW4oWyJyZXF1ZXN0RGF0YSIsbixhLCJib2R5VmFsdWUiXSx0KTtsZXQgbyxzPWUuZ2V0SW4oWyJyZXF1ZXN0RGF0YSIsbixhLCJib2R5VmFsdWUiXSl8fCgwLFhlLk1hcCkoKTtYZS5NYXAuaXNNYXAocyl8fChzPSgwLFhlLk1hcCkoKSk7Y29uc3RbLi4ubF09dC5rZXlzKCk7cmV0dXJuIGwuZm9yRWFjaCgoZT0+e2xldCByPXQuZ2V0SW4oW2VdKTtzLmhhcyhlKSYmWGUuTWFwLmlzTWFwKHIpfHwobz1zLnNldEluKFtlLCJ2YWx1ZSJdLHIpKX0pKSxlLnNldEluKFsicmVxdWVzdERhdGEiLG4sYSwiYm9keVZhbHVlIl0sbyl9LFtjb106KGUse3BheWxvYWQ6e3ZhbHVlOnQscGF0aE1ldGhvZDpyfX0pPT57bGV0W24sYV09cjtyZXR1cm4gZS5zZXRJbihbInJlcXVlc3REYXRhIixuLGEsInJldGFpbkJvZHlWYWx1ZSJdLHQpfSxbdW9dOihlLHtwYXlsb2FkOnt2YWx1ZTp0LHBhdGhNZXRob2Q6cixuYW1lOm59fSk9PntsZXRbYSxvXT1yO3JldHVybiBlLnNldEluKFsicmVxdWVzdERhdGEiLGEsbywiYm9keUluY2x1c2lvbiIsbl0sdCl9LFtwb106KGUse3BheWxvYWQ6e25hbWU6dCxwYXRoTWV0aG9kOnIsY29udGV4dFR5cGU6bixjb250ZXh0TmFtZTphfX0pPT57bGV0W28sc109cjtyZXR1cm4gZS5zZXRJbihbImV4YW1wbGVzIixvLHMsbixhLCJhY3RpdmVFeGFtcGxlIl0sdCl9LFttb106KGUse3BheWxvYWQ6e3ZhbHVlOnQscGF0aE1ldGhvZDpyfX0pPT57bGV0W24sYV09cjtyZXR1cm4gZS5zZXRJbihbInJlcXVlc3REYXRhIixuLGEsInJlcXVlc3RDb250ZW50VHlwZSJdLHQpfSxbZm9dOihlLHtwYXlsb2FkOnt2YWx1ZTp0LHBhdGg6cixtZXRob2Q6bn19KT0+ZS5zZXRJbihbInJlcXVlc3REYXRhIixyLG4sInJlc3BvbnNlQ29udGVudFR5cGUiXSx0KSxbaG9dOihlLHtwYXlsb2FkOntzZXJ2ZXI6dCxuYW1lc3BhY2U6cixrZXk6bix2YWw6YX19KT0+e2NvbnN0IG89cj9bciwic2VydmVyVmFyaWFibGVWYWx1ZXMiLHQsbl06WyJzZXJ2ZXJWYXJpYWJsZVZhbHVlcyIsdCxuXTtyZXR1cm4gZS5zZXRJbihvLGEpfSxbZ29dOihlLHtwYXlsb2FkOntwYXRoOnQsbWV0aG9kOnIsdmFsaWRhdGlvbkVycm9yczpufX0pPT57bGV0IGE9W107aWYoYS5wdXNoKCJSZXF1aXJlZCBmaWVsZCBpcyBub3QgcHJvdmlkZWQiKSxuLm1pc3NpbmdCb2R5VmFsdWUpcmV0dXJuIGUuc2V0SW4oWyJyZXF1ZXN0RGF0YSIsdCxyLCJlcnJvcnMiXSwoMCxYZS5mcm9tSlMpKGEpKTtpZihuLm1pc3NpbmdSZXF1aXJlZEtleXMmJm4ubWlzc2luZ1JlcXVpcmVkS2V5cy5sZW5ndGg+MCl7Y29uc3R7bWlzc2luZ1JlcXVpcmVkS2V5czpvfT1uO3JldHVybiBlLnVwZGF0ZUluKFsicmVxdWVzdERhdGEiLHQsciwiYm9keVZhbHVlIl0sKDAsWGUuZnJvbUpTKSh7fSksKGU9Pm8ucmVkdWNlKCgoZSx0KT0+ZS5zZXRJbihbdCwiZXJyb3JzIl0sKDAsWGUuZnJvbUpTKShhKSkpLGUpKSl9cmV0dXJuIGNvbnNvbGUud2FybigidW5leHBlY3RlZCByZXN1bHQ6IFNFVF9SRVFVRVNUX0JPRFlfVkFMSURBVEVfRVJST1IiKSxlfSxbeW9dOihlLHtwYXlsb2FkOntwYXRoOnQsbWV0aG9kOnJ9fSk9Pntjb25zdCBuPWUuZ2V0SW4oWyJyZXF1ZXN0RGF0YSIsdCxyLCJib2R5VmFsdWUiXSk7aWYoIVhlLk1hcC5pc01hcChuKSlyZXR1cm4gZS5zZXRJbihbInJlcXVlc3REYXRhIix0LHIsImVycm9ycyJdLCgwLFhlLmZyb21KUykoW10pKTtjb25zdFsuLi5hXT1uLmtleXMoKTtyZXR1cm4gYT9lLnVwZGF0ZUluKFsicmVxdWVzdERhdGEiLHQsciwiYm9keVZhbHVlIl0sKDAsWGUuZnJvbUpTKSh7fSksKGU9PmEucmVkdWNlKCgoZSx0KT0+ZS5zZXRJbihbdCwiZXJyb3JzIl0sKDAsWGUuZnJvbUpTKShbXSkpKSxlKSkpOmV9LFtFb106KGUse3BheWxvYWQ6e3BhdGhNZXRob2Q6dH19KT0+e2xldFtyLG5dPXQ7Y29uc3QgYT1lLmdldEluKFsicmVxdWVzdERhdGEiLHIsbiwiYm9keVZhbHVlIl0pO3JldHVybiBhP1hlLk1hcC5pc01hcChhKT9lLnNldEluKFsicmVxdWVzdERhdGEiLHIsbiwiYm9keVZhbHVlIl0sKDAsWGUuTWFwKSgpKTplLnNldEluKFsicmVxdWVzdERhdGEiLHIsbiwiYm9keVZhbHVlIl0sIiIpOmV9fTtmdW5jdGlvbiBvYXMzKHtnZXRTeXN0ZW06ZX0pe2NvbnN0IHQ9KGU9Pih0LHI9bnVsbCk9Pntjb25zdHtnZXRDb25maWdzOm4sZm46YX09ZSgpLHtmaWxlVXBsb2FkTWVkaWFUeXBlczpvfT1uKCk7aWYoInN0cmluZyI9PXR5cGVvZiByJiZvLnNvbWUoKGU9PnIuc3RhcnRzV2l0aChlKSkpKXJldHVybiEwO2NvbnN0IHM9WGUuTWFwLmlzTWFwKHQpO2lmKCFzJiYhKDAsQ3IuZGVmYXVsdCkodCkpcmV0dXJuITE7Y29uc3QgbD1zP3QuZ2V0KCJmb3JtYXQiKTp0LmZvcm1hdDtyZXR1cm4gYS5oYXNTY2hlbWFUeXBlKHQsInN0cmluZyIpJiZbImJpbmFyeSIsImJ5dGUiXS5pbmNsdWRlcyhsKX0pKGUpO3JldHVybntjb21wb25lbnRzOlphLHdyYXBDb21wb25lbnRzOnNvLHN0YXRlUGx1Z2luczp7c3BlYzp7d3JhcFNlbGVjdG9yczpKZSxzZWxlY3RvcnM6emV9LGF1dGg6e3dyYXBTZWxlY3RvcnM6RmV9LG9hczM6e2FjdGlvbnM6ey4uLktlfSxyZWR1Y2VyczpQbyxzZWxlY3RvcnM6ey4uLldlfX19LGZuOntpc0ZpbGVVcGxvYWRJbnRlbmRlZDp0LGlzRmlsZVVwbG9hZEludGVuZGVkT0FTMzA6dH19fXZhciB3ZWJob29rcz0oe3NwZWNTZWxlY3RvcnM6ZSxnZXRDb21wb25lbnQ6dH0pPT57Y29uc3Qgcj1lLnNlbGVjdFdlYmhvb2tzT3BlcmF0aW9ucygpLG49T2JqZWN0LmtleXMociksYT10KCJPcGVyYXRpb25Db250YWluZXIiLCEwKTtyZXR1cm4gMD09PW4ubGVuZ3RoP251bGw6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IndlYmhvb2tzIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJoMiIsbnVsbCwiV2ViaG9va3MiKSxuLm1hcCgoZT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6YCR7ZX0td2ViaG9va2B9LHJbZV0ubWFwKCh0PT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYSx7a2V5OmAke2V9LSR7dC5tZXRob2R9LXdlYmhvb2tgLG9wOnQub3BlcmF0aW9uLHRhZzoid2ViaG9va3MiLG1ldGhvZDp0Lm1ldGhvZCxwYXRoOmUsc3BlY1BhdGg6KDAsWGUuTGlzdCkodC5zcGVjUGF0aCksYWxsb3dUcnlJdE91dDohMX0pKSkpKSkpfTt2YXIgY29tcG9uZW50c19saWNlbnNlPSh7Z2V0Q29tcG9uZW50OmUsc3BlY1NlbGVjdG9yczp0fSk9Pntjb25zdCByPXQuc2VsZWN0TGljZW5zZU5hbWVGaWVsZCgpLG49dC5zZWxlY3RMaWNlbnNlVXJsKCksYT1lKCJMaW5rIik7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJpbmZvX19saWNlbnNlIn0sbj9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaW5mb19fbGljZW5zZV9fdXJsIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGEse3RhcmdldDoiX2JsYW5rIixocmVmOnNhbml0aXplVXJsKG4pfSxyKSk6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLHIpKX07dmFyIGNvbXBvbmVudHNfY29udGFjdD0oe2dldENvbXBvbmVudDplLHNwZWNTZWxlY3RvcnM6dH0pPT57Y29uc3Qgcj10LnNlbGVjdENvbnRhY3ROYW1lRmllbGQoKSxuPXQuc2VsZWN0Q29udGFjdFVybCgpLGE9dC5zZWxlY3RDb250YWN0RW1haWxGaWVsZCgpLG89ZSgiTGluayIpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaW5mb19fY29udGFjdCJ9LG4mJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChvLHtocmVmOnNhbml0aXplVXJsKG4pLHRhcmdldDoiX2JsYW5rIn0sciwiIC0gV2Vic2l0ZSIpKSxhJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobyx7aHJlZjpzYW5pdGl6ZVVybChgbWFpbHRvOiR7YX1gKX0sbj9gU2VuZCBlbWFpbCB0byAke3J9YDpgQ29udGFjdCAke3J9YCkpfTt2YXIgb2FzMzFfY29tcG9uZW50c19pbmZvPSh7Z2V0Q29tcG9uZW50OmUsc3BlY1NlbGVjdG9yczp0fSk9Pntjb25zdCByPXQudmVyc2lvbigpLG49dC51cmwoKSxhPXQuYmFzZVBhdGgoKSxvPXQuaG9zdCgpLHM9dC5zZWxlY3RJbmZvU3VtbWFyeUZpZWxkKCksbD10LnNlbGVjdEluZm9EZXNjcmlwdGlvbkZpZWxkKCksaT10LnNlbGVjdEluZm9UaXRsZUZpZWxkKCksYz10LnNlbGVjdEluZm9UZXJtc09mU2VydmljZVVybCgpLHU9dC5zZWxlY3RFeHRlcm5hbERvY3NVcmwoKSxkPXQuc2VsZWN0RXh0ZXJuYWxEb2NzRGVzY3JpcHRpb25GaWVsZCgpLHA9dC5jb250YWN0KCksbT10LmxpY2Vuc2UoKSxmPWUoIk1hcmtkb3duIiwhMCksaD1lKCJMaW5rIiksZz1lKCJWZXJzaW9uU3RhbXAiKSx5PWUoIk9wZW5BUElWZXJzaW9uIiksUz1lKCJJbmZvVXJsIiksXz1lKCJJbmZvQmFzZVBhdGgiKSx2PWUoIkxpY2Vuc2UiLCEwKSxiPWUoIkNvbnRhY3QiLCEwKSx3PWUoIkpzb25TY2hlbWFEaWFsZWN0IiwhMCk7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJpbmZvIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJoZ3JvdXAiLHtjbGFzc05hbWU6Im1haW4ifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImgyIix7Y2xhc3NOYW1lOiJ0aXRsZSJ9LGksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLHImJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChnLHt2ZXJzaW9uOnJ9KSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoeSx7b2FzVmVyc2lvbjoiMy4xIn0pKSksKG98fGEpJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXyx7aG9zdDpvLGJhc2VQYXRoOmF9KSxuJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoUyx7Z2V0Q29tcG9uZW50OmUsdXJsOm59KSkscyYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwIix7Y2xhc3NOYW1lOiJpbmZvX19zdW1tYXJ5In0scyksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm9fX2Rlc2NyaXB0aW9uIGRlc2NyaXB0aW9uIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGYse3NvdXJjZTpsfSkpLGMmJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJpbmZvX190b3MifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoaCx7dGFyZ2V0OiJfYmxhbmsiLGhyZWY6c2FuaXRpemVVcmwoYyl9LCJUZXJtcyBvZiBzZXJ2aWNlIikpLHAuc2l6ZT4wJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYixudWxsKSxtLnNpemU+MCYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHYsbnVsbCksdSYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGgse2NsYXNzTmFtZToiaW5mb19fZXh0ZG9jcyIsdGFyZ2V0OiJfYmxhbmsiLGhyZWY6c2FuaXRpemVVcmwodSl9LGR8fHUpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh3LG51bGwpKX07dmFyIGpzb25fc2NoZW1hX2RpYWxlY3Q9KHtnZXRDb21wb25lbnQ6ZSxzcGVjU2VsZWN0b3JzOnR9KT0+e2NvbnN0IHI9dC5zZWxlY3RKc29uU2NoZW1hRGlhbGVjdEZpZWxkKCksbj10LnNlbGVjdEpzb25TY2hlbWFEaWFsZWN0RGVmYXVsdCgpLGE9ZSgiTGluayIpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoSGUuZGVmYXVsdC5GcmFnbWVudCxudWxsLHImJnI9PT1uJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInAiLHtjbGFzc05hbWU6ImluZm9fX2pzb25zY2hlbWFkaWFsZWN0In0sIkpTT04gU2NoZW1hIGRpYWxlY3Q6IiwiICIsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGEse3RhcmdldDoiX2JsYW5rIixocmVmOnNhbml0aXplVXJsKHIpfSxyKSksciYmciE9PW4mJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvci13cmFwcGVyIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im5vLW1hcmdpbiJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvcnMifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZXJyb3JzLXdyYXBwZXIifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJjZW50ZXIifSwiV2FybmluZyIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgicCIse2NsYXNzTmFtZToibWVzc2FnZSJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3Ryb25nIixudWxsLCJPcGVuQVBJLmpzb25TY2hlbWFEaWFsZWN0IiksIiBmaWVsZCBjb250YWlucyBhIHZhbHVlIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IHZhbHVlIG9mIiwiICIsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGEse3RhcmdldDoiX2JsYW5rIixocmVmOm59LG4pLCIuIFZhbHVlcyBkaWZmZXJlbnQgZnJvbSB0aGUgZGVmYXVsdCBvbmUgYXJlIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkLiBQbGVhc2UgZWl0aGVyIG9taXQgdGhlIGZpZWxkIG9yIHByb3ZpZGUgaXQgd2l0aCB0aGUgZGVmYXVsdCB2YWx1ZS4iKSkpKSkpfTt2YXIgdmVyc2lvbl9wcmFnbWFfZmlsdGVyPSh7YnlwYXNzOmUsaXNTd2FnZ2VyMjp0LGlzT0FTMzpyLGlzT0FTMzE6bixhbHNvU2hvdzphLGNoaWxkcmVuOm99KT0+ZT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxvKTp0JiYocnx8bik/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InZlcnNpb24tcHJhZ21hIn0sYSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidmVyc2lvbi1wcmFnbWFfX21lc3NhZ2UgdmVyc2lvbi1wcmFnbWFfX21lc3NhZ2UtLWFtYmlndW91cyJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDMiLG51bGwsIlVuYWJsZSB0byByZW5kZXIgdGhpcyBkZWZpbml0aW9uIiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwIixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwic3dhZ2dlciIpLCIgYW5kICIsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJvcGVuYXBpIiksIiBmaWVsZHMgY2Fubm90IGJlIHByZXNlbnQgaW4gdGhlIHNhbWUgU3dhZ2dlciBvciBPcGVuQVBJIGRlZmluaXRpb24uIFBsZWFzZSByZW1vdmUgb25lIG9mIHRoZSBmaWVsZHMuIiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJTdXBwb3J0ZWQgdmVyc2lvbiBmaWVsZHMgYXJlICIsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCdzd2FnZ2VyOiAiMi4wIicpLCIgYW5kIHRob3NlIHRoYXQgbWF0Y2ggIixIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIm9wZW5hcGk6IDMueC55IiksIiAoZm9yIGV4YW1wbGUsIiwiICIsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJvcGVuYXBpOiAzLjEuMCIpLCIpLiIpKSkpOnR8fHJ8fG4/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsbyk6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InZlcnNpb24tcHJhZ21hIn0sYSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidmVyc2lvbi1wcmFnbWFfX21lc3NhZ2UgdmVyc2lvbi1wcmFnbWFfX21lc3NhZ2UtLW1pc3NpbmcifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImgzIixudWxsLCJVbmFibGUgdG8gcmVuZGVyIHRoaXMgZGVmaW5pdGlvbiIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiVGhlIHByb3ZpZGVkIGRlZmluaXRpb24gZG9lcyBub3Qgc3BlY2lmeSBhIHZhbGlkIHZlcnNpb24gZmllbGQuIiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJQbGVhc2UgaW5kaWNhdGUgYSB2YWxpZCBTd2FnZ2VyIG9yIE9wZW5BUEkgdmVyc2lvbiBmaWVsZC4gU3VwcG9ydGVkIHZlcnNpb24gZmllbGRzIGFyZSAiLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwnc3dhZ2dlcjogIjIuMCInKSwiIGFuZCB0aG9zZSB0aGF0IG1hdGNoICIsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJvcGVuYXBpOiAzLngueSIpLCIgKGZvciBleGFtcGxlLCIsIiAiLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwib3BlbmFwaTogMy4xLjAiKSwiKS4iKSkpKTtjb25zdCBnZXRNb2RlbE5hbWU9ZT0+InN0cmluZyI9PXR5cGVvZiBlJiZlLmluY2x1ZGVzKCIjL2NvbXBvbmVudHMvc2NoZW1hcy8iKT8oZT0+e2NvbnN0IHQ9ZS5yZXBsYWNlKC9+MS9nLCIvIikucmVwbGFjZSgvfjAvZywifiIpO3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHQpfWNhdGNoe3JldHVybiB0fX0pKGUucmVwbGFjZSgvXi4qI1wvY29tcG9uZW50c1wvc2NoZW1hc1wvLywiIikpOm51bGwsQm89KDAsSGUuZm9yd2FyZFJlZikoKCh7c2NoZW1hOmUsZ2V0Q29tcG9uZW50OnQsb25Ub2dnbGU6cj0oKT0+e30sc3BlY1BhdGg6bn0sYSk9Pntjb25zdCBvPXQoIkpTT05TY2hlbWEyMDIwMTIiKSxzPWdldE1vZGVsTmFtZShlLmdldCgiJCRyZWYiKSksbD0oMCxIZS51c2VDYWxsYmFjaykoKChlLHQpPT57cihzLHQpfSksW3Mscl0pO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobyx7bmFtZTpzLHNjaGVtYTplLnRvSlMoKSxyZWY6YSxvbkV4cGFuZDpsLGlkZW50aWZpZXI6bi50b0pTKCkuam9pbigiXyIpfSl9KSk7dmFyIE1vPUJvO3ZhciBtb2RlbHM9KHtzcGVjQWN0aW9uczplLHNwZWNTZWxlY3RvcnM6dCxsYXlvdXRTZWxlY3RvcnM6cixsYXlvdXRBY3Rpb25zOm4sZ2V0Q29tcG9uZW50OmEsZ2V0Q29uZmlnczpvLGZuOnN9KT0+e2NvbnN0IGw9dC5zZWxlY3RTY2hlbWFzKCksaT1PYmplY3Qua2V5cyhsKS5sZW5ndGg+MCxjPVsiY29tcG9uZW50cyIsInNjaGVtYXMiXSx7ZG9jRXhwYW5zaW9uOnUsZGVmYXVsdE1vZGVsc0V4cGFuZERlcHRoOmR9PW8oKSxwPWQ+MCYmIm5vbmUiIT09dSxtPXIuaXNTaG93bihjLHApLGY9YSgiQ29sbGFwc2UiKSxoPWEoIkpTT05TY2hlbWEyMDIwMTIiKSxnPWEoIkFycm93VXBJY29uIikseT1hKCJBcnJvd0Rvd25JY29uIikse2dldFRpdGxlOlN9PXMuanNvblNjaGVtYTIwMjAxMi51c2VGbigpOygwLEhlLnVzZUVmZmVjdCkoKCgpPT57Y29uc3Qgcj1tJiZkPjEsbj1udWxsIT10LnNwZWNSZXNvbHZlZFN1YnRyZWUoYyk7ciYmIW4mJmUucmVxdWVzdFJlc29sdmVkU3VidHJlZShjKX0pLFttLGRdKTtjb25zdCBfPSgwLEhlLnVzZUNhbGxiYWNrKSgoKCk9PntuLnNob3coYywhbSl9KSxbbV0pLHY9KDAsSGUudXNlQ2FsbGJhY2spKChlPT57bnVsbCE9PWUmJm4ucmVhZHlUb1Njcm9sbChjLGUpfSksW10pLGhhbmRsZUpTT05TY2hlbWEyMDIwMTJSZWY9ZT0+dD0+e251bGwhPT10JiZuLnJlYWR5VG9TY3JvbGwoWy4uLmMsZV0sdCl9LGhhbmRsZUpTT05TY2hlbWEyMDIwMTJFeHBhbmQ9cj0+KG4sYSk9PntpZihhKXtjb25zdCBuPVsuLi5jLHJdO251bGwhPXQuc3BlY1Jlc29sdmVkU3VidHJlZShuKXx8ZS5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKFsuLi5jLHJdKX19O3JldHVybiFpfHxkPDA/bnVsbDpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24iLHtjbGFzc05hbWU6KDAsaHIuZGVmYXVsdCkoIm1vZGVscyIseyJpcy1vcGVuIjptfSkscmVmOnZ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJidXR0b24iLHsiYXJpYS1leHBhbmRlZCI6bSxjbGFzc05hbWU6Im1vZGVscy1jb250cm9sIixvbkNsaWNrOl99LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCwiU2NoZW1hcyIpLG0/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGcsbnVsbCk6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHksbnVsbCkpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoZix7aXNPcGVuZWQ6bX0sT2JqZWN0LmVudHJpZXMobCkubWFwKCgoW2UsdF0pPT57Y29uc3Qgcj1TKHQse2xvb2t1cDoiYmFzaWMifSl8fGU7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChoLHtrZXk6ZSxyZWY6aGFuZGxlSlNPTlNjaGVtYTIwMjAxMlJlZihlKSxzY2hlbWE6dCxuYW1lOnIsb25FeHBhbmQ6aGFuZGxlSlNPTlNjaGVtYTIwMjAxMkV4cGFuZChlKX0pfSkpKSl9O3ZhciBtdXR1YWxfdGxzX2F1dGg9KHtzY2hlbWE6ZSxnZXRDb21wb25lbnQ6dCxuYW1lOnIsYXV0aFNlbGVjdG9yczpufSk9Pntjb25zdCBhPXQoIkp1bXBUb1BhdGgiLCEwKSxvPW4uc2VsZWN0QXV0aFBhdGgocik7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsciwiIChtdXR1YWxUTFMpICIsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGEse3BhdGg6b30pKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIk11dHVhbCBUTFMgaXMgcmVxdWlyZWQgYnkgdGhpcyBBUEkvT3BlcmF0aW9uLiBDZXJ0aWZpY2F0ZXMgYXJlIG1hbmFnZWQgdmlhIHlvdXIgT3BlcmF0aW5nIFN5c3RlbSBhbmQvb3IgeW91ciBicm93c2VyLiIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgicCIsbnVsbCxlLmdldCgiZGVzY3JpcHRpb24iKSkpfTtjbGFzcyBhdXRoc19BdXRocyBleHRlbmRzIEhlLmRlZmF1bHQuQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLnN0YXRlPXt9fW9uQXV0aENoYW5nZT1lPT57bGV0e25hbWU6dH09ZTt0aGlzLnNldFN0YXRlKHtbdF06ZX0pfTtzdWJtaXRBdXRoPWU9PntlLnByZXZlbnREZWZhdWx0KCk7bGV0e2F1dGhBY3Rpb25zOnR9PXRoaXMucHJvcHM7dC5hdXRob3JpemVXaXRoUGVyc2lzdE9wdGlvbih0aGlzLnN0YXRlKX07bG9nb3V0Q2xpY2s9ZT0+e2UucHJldmVudERlZmF1bHQoKTtsZXR7YXV0aEFjdGlvbnM6dCxkZWZpbml0aW9uczpyfT10aGlzLnByb3BzLG49ci5tYXAoKChlLHQpPT50KSkudG9BcnJheSgpO3RoaXMuc2V0U3RhdGUobi5yZWR1Y2UoKChlLHQpPT4oZVt0XT0iIixlKSkse30pKSx0LmxvZ291dFdpdGhQZXJzaXN0T3B0aW9uKG4pfTtjbG9zZT1lPT57ZS5wcmV2ZW50RGVmYXVsdCgpO2xldHthdXRoQWN0aW9uczp0fT10aGlzLnByb3BzO3Quc2hvd0RlZmluaXRpb25zKCExKX07cmVuZGVyKCl7bGV0e2RlZmluaXRpb25zOmUsZ2V0Q29tcG9uZW50OnQsYXV0aFNlbGVjdG9yczpyLGVyclNlbGVjdG9yczpufT10aGlzLnByb3BzO2NvbnN0IGE9dCgiQXV0aEl0ZW0iKSxvPXQoIm9hdXRoMiIsITApLHM9dCgiQnV0dG9uIiksbD1yLmF1dGhvcml6ZWQoKSxpPWUuZmlsdGVyKCgoZSx0KT0+ISFsLmdldCh0KSkpLGM9ZS5maWx0ZXIoKGU9PiJvYXV0aDIiIT09ZS5nZXQoInR5cGUiKSYmIm11dHVhbFRMUyIhPT1lLmdldCgidHlwZSIpKSksdT1lLmZpbHRlcigoZT0+Im9hdXRoMiI9PT1lLmdldCgidHlwZSIpKSksZD1lLmZpbHRlcigoZT0+Im11dHVhbFRMUyI9PT1lLmdldCgidHlwZSIpKSk7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJhdXRoLWNvbnRhaW5lciJ9LGMuc2l6ZT4wJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImZvcm0iLHtvblN1Ym1pdDp0aGlzLnN1Ym1pdEF1dGh9LGMubWFwKCgoZSxvKT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGEse2tleTpvLHNjaGVtYTplLG5hbWU6byxnZXRDb21wb25lbnQ6dCxvbkF1dGhDaGFuZ2U6dGhpcy5vbkF1dGhDaGFuZ2UsYXV0aG9yaXplZDpsLGVyclNlbGVjdG9yczpuLGF1dGhTZWxlY3RvcnM6cn0pKSkudG9BcnJheSgpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJhdXRoLWJ0bi13cmFwcGVyIn0sYy5zaXplPT09aS5zaXplP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChzLHtjbGFzc05hbWU6ImJ0biBtb2RhbC1idG4gYXV0aCIsb25DbGljazp0aGlzLmxvZ291dENsaWNrLCJhcmlhLWxhYmVsIjoiUmVtb3ZlIGF1dGhvcml6YXRpb24ifSwiTG9nb3V0Iik6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHMse3R5cGU6InN1Ym1pdCIsY2xhc3NOYW1lOiJidG4gbW9kYWwtYnRuIGF1dGggYXV0aG9yaXplIiwiYXJpYS1sYWJlbCI6IkFwcGx5IGNyZWRlbnRpYWxzIn0sIkF1dGhvcml6ZSIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChzLHtjbGFzc05hbWU6ImJ0biBtb2RhbC1idG4gYXV0aCBidG4tZG9uZSIsb25DbGljazp0aGlzLmNsb3NlfSwiQ2xvc2UiKSkpLHUuc2l6ZT4wP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJzY29wZS1kZWYifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIlNjb3BlcyBhcmUgdXNlZCB0byBncmFudCBhbiBhcHBsaWNhdGlvbiBkaWZmZXJlbnQgbGV2ZWxzIG9mIGFjY2VzcyB0byBkYXRhIG9uIGJlaGFsZiBvZiB0aGUgZW5kIHVzZXIuIEVhY2ggQVBJIG1heSBkZWNsYXJlIG9uZSBvciBtb3JlIHNjb3Blcy4iKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIkFQSSByZXF1aXJlcyB0aGUgZm9sbG93aW5nIHNjb3Blcy4gU2VsZWN0IHdoaWNoIG9uZXMgeW91IHdhbnQgdG8gZ3JhbnQgdG8gU3dhZ2dlciBVSS4iKSksZS5maWx0ZXIoKGU9PiJvYXV0aDIiPT09ZS5nZXQoInR5cGUiKSkpLm1hcCgoKGUsdCk9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5OnR9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChvLHthdXRob3JpemVkOmwsc2NoZW1hOmUsbmFtZTp0fSkpKSkudG9BcnJheSgpKTpudWxsLGQuc2l6ZT4wJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxkLm1hcCgoKGUsbyk9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChhLHtrZXk6byxzY2hlbWE6ZSxuYW1lOm8sZ2V0Q29tcG9uZW50OnQsb25BdXRoQ2hhbmdlOnRoaXMub25BdXRoQ2hhbmdlLGF1dGhvcml6ZWQ6bCxlcnJTZWxlY3RvcnM6bixhdXRoU2VsZWN0b3JzOnJ9KSkpLnRvQXJyYXkoKSkpfX12YXIgcW89YXV0aHNfQXV0aHM7Y29uc3QgaXNPQVMzMT1lPT57Y29uc3QgdD1lLmdldCgib3BlbmFwaSIpO3JldHVybiJzdHJpbmciPT10eXBlb2YgdCYmL14zXC4xXC4oPzpbMS05XVxkKnwwKSQvLnRlc3QodCl9LGZuX2NyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yPWU9Pih0LC4uLnIpPT5uPT57aWYobi5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLmlzT0FTMzEoKSl7Y29uc3QgYT1lKHQsLi4ucik7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGE/YShuKTphfXJldHVybiBudWxsfSxjcmVhdGVPbmx5T0FTMzFTZWxlY3RvcldyYXBwZXI9ZT0+KHQscik9PihuLC4uLmEpPT57aWYoci5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLmlzT0FTMzEoKSl7Y29uc3Qgbz1lKG4sLi4uYSk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG8/byh0LHIpOm99cmV0dXJuIHQoLi4uYSl9LGZuX2NyZWF0ZVN5c3RlbVNlbGVjdG9yPWU9Pih0LC4uLnIpPT5uPT57Y29uc3QgYT1lKHQsbiwuLi5yKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYT9hKG4pOmF9LGNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXI9ZT0+KHQscik9Pm49PnIuc3BlY1NlbGVjdG9ycy5pc09BUzMxKCk/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGUsKDAsYXIuZGVmYXVsdCkoe30sbix7b3JpZ2luYWxDb21wb25lbnQ6dCxnZXRTeXN0ZW06ci5nZXRTeXN0ZW19KSk6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHQsbiksd3JhcE9BUzMxRm49KGUsdCk9Pntjb25zdHtmbjpyLHNwZWNTZWxlY3RvcnM6bn09dDtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGUpLm1hcCgoKFtlLHRdKT0+e2NvbnN0IGE9cltlXTtyZXR1cm5bZSwoLi4uZSk9Pm4uaXNPQVMzMSgpP3QoLi4uZSk6ImZ1bmN0aW9uIj09dHlwZW9mIGE/YSguLi5lKTp2b2lkIDBdfSkpKX07dmFyIExvPWNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoKCh7Z2V0U3lzdGVtOmV9KT0+e2NvbnN0IHQ9ZSgpLmdldENvbXBvbmVudCgiT0FTMzFMaWNlbnNlIiwhMCk7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh0LG51bGwpfSkpO3ZhciBVbz1jcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyKCgoe2dldFN5c3RlbTplfSk9Pntjb25zdCB0PWUoKS5nZXRDb21wb25lbnQoIk9BUzMxQ29udGFjdCIsITApO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodCxudWxsKX0pKTt2YXIgRG89Y3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcigoKHtnZXRTeXN0ZW06ZX0pPT57Y29uc3QgdD1lKCkuZ2V0Q29tcG9uZW50KCJPQVMzMUluZm8iLCEwKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHQsbnVsbCl9KSk7Y29uc3QgZ2V0UHJvcGVydGllcz0oZSx7aW5jbHVkZVJlYWRPbmx5OnQsaW5jbHVkZVdyaXRlT25seTpyfSk9PntpZighZT8ucHJvcGVydGllcylyZXR1cm57fTtjb25zdCBuPU9iamVjdC5lbnRyaWVzKGUucHJvcGVydGllcykuZmlsdGVyKCgoWyxlXSk9PighKCEwPT09ZT8ucmVhZE9ubHkpfHx0KSYmKCEoITA9PT1lPy53cml0ZU9ubHkpfHxyKSkpO3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMobil9LG1ha2VHZXRTY2hlbWFLZXl3b3Jkcz1lPT57aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpcmV0dXJuIG51bGw7Y29uc3QgdD1lKCk7cmV0dXJuKCk9PlsuLi50LCJkaXNjcmltaW5hdG9yIiwieG1sIiwiZXh0ZXJuYWxEb2NzIiwiZXhhbXBsZSIsIiQkcmVmIl19LCRvPWNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoKCh7Z2V0U3lzdGVtOmUsLi4udH0pPT57Y29uc3Qgcj1lKCkse2dldENvbXBvbmVudDpuLGZuOmEsZ2V0Q29uZmlnczpvfT1yLHM9bygpLGw9bigiT0FTMzFNb2RlbCIpLGk9bigid2l0aEpTT05TY2hlbWEyMDIwMTJTeXN0ZW1Db250ZXh0Iik7cmV0dXJuICRvLk1vZGVsV2l0aEpTT05TY2hlbWFDb250ZXh0Pz89aShsLHtjb25maWc6e2RlZmF1bHQkc2NoZW1hOiJodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy8zLjEvZGlhbGVjdC9iYXNlIixkZWZhdWx0RXhwYW5kZWRMZXZlbHM6cy5kZWZhdWx0TW9kZWxFeHBhbmREZXB0aCxpbmNsdWRlUmVhZE9ubHk6dC5pbmNsdWRlUmVhZE9ubHksaW5jbHVkZVdyaXRlT25seTp0LmluY2x1ZGVXcml0ZU9ubHl9LGZuOntnZXRQcm9wZXJ0aWVzOmEuanNvblNjaGVtYTIwMjAxMi5nZXRQcm9wZXJ0aWVzLGlzRXhwYW5kYWJsZTphLmpzb25TY2hlbWEyMDIwMTIuaXNFeHBhbmRhYmxlLGdldFNjaGVtYUtleXdvcmRzOm1ha2VHZXRTY2hlbWFLZXl3b3JkcyhhLmpzb25TY2hlbWEyMDIwMTIuZ2V0U2NoZW1hS2V5d29yZHMpfX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgkby5Nb2RlbFdpdGhKU09OU2NoZW1hQ29udGV4dCx0KX0pKTt2YXIgVm89JG87Y29uc3QgSm89Y3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcigoKHtnZXRTeXN0ZW06ZX0pPT57Y29uc3R7Z2V0Q29tcG9uZW50OnQsZm46cixnZXRDb25maWdzOm59PWUoKSxhPW4oKTtpZihKby5Nb2RlbHNXaXRoSlNPTlNjaGVtYUNvbnRleHQpcmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChKby5Nb2RlbHNXaXRoSlNPTlNjaGVtYUNvbnRleHQsbnVsbCk7Y29uc3Qgbz10KCJPQVMzMU1vZGVscyIsITApLHM9dCgid2l0aEpTT05TY2hlbWEyMDIwMTJTeXN0ZW1Db250ZXh0Iik7cmV0dXJuIEpvLk1vZGVsc1dpdGhKU09OU2NoZW1hQ29udGV4dD8/PXMobyx7Y29uZmlnOntkZWZhdWx0JHNjaGVtYToiaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvMy4xL2RpYWxlY3QvYmFzZSIsZGVmYXVsdEV4cGFuZGVkTGV2ZWxzOmEuZGVmYXVsdE1vZGVsc0V4cGFuZERlcHRoLTEsaW5jbHVkZVJlYWRPbmx5OiEwLGluY2x1ZGVXcml0ZU9ubHk6ITB9LGZuOntnZXRQcm9wZXJ0aWVzOnIuanNvblNjaGVtYTIwMjAxMi5nZXRQcm9wZXJ0aWVzLGlzRXhwYW5kYWJsZTpyLmpzb25TY2hlbWEyMDIwMTIuaXNFeHBhbmRhYmxlLGdldFNjaGVtYUtleXdvcmRzOm1ha2VHZXRTY2hlbWFLZXl3b3JkcyhyLmpzb25TY2hlbWEyMDIwMTIuZ2V0U2NoZW1hS2V5d29yZHMpfX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChKby5Nb2RlbHNXaXRoSlNPTlNjaGVtYUNvbnRleHQsbnVsbCl9KSk7Sm8uTW9kZWxzV2l0aEpTT05TY2hlbWFDb250ZXh0PW51bGw7dmFyIEZvPUpvO3ZhciB3cmFwX2NvbXBvbmVudHNfdmVyc2lvbl9wcmFnbWFfZmlsdGVyPShlLHQpPT5lPT57Y29uc3Qgcj10LnNwZWNTZWxlY3RvcnMuaXNPQVMzMSgpLG49dC5nZXRDb21wb25lbnQoIk9BUzMxVmVyc2lvblByYWdtYUZpbHRlciIpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobiwoMCxhci5kZWZhdWx0KSh7aXNPQVMzMTpyfSxlKSl9O2NvbnN0IHpvPWNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoKCh7b3JpZ2luYWxDb21wb25lbnQ6ZSwuLi50fSk9Pntjb25zdHtnZXRDb21wb25lbnQ6cixzY2hlbWE6bixuYW1lOmF9PXQsbz1yKCJNdXR1YWxUTFNBdXRoIiwhMCk7cmV0dXJuIm11dHVhbFRMUyI9PT1uLmdldCgidHlwZSIpP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChvLHtzY2hlbWE6bixuYW1lOmF9KTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoZSx0KX0pKTt2YXIgS289em87dmFyIFdvPWNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoKCh7Z2V0U3lzdGVtOmUsLi4udH0pPT57Y29uc3Qgcj1lKCkuZ2V0Q29tcG9uZW50KCJPQVMzMUF1dGhzIiwhMCk7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChyLHQpfSkpO2NvbnN0IEhvPSgwLFhlLk1hcCkoKSxHbz0oMCxQdC5jcmVhdGVTZWxlY3RvcikoKChlLHQpPT50LnNwZWNTZWxlY3RvcnMuc3BlY0pzb24oKSksaXNPQVMzMSksc2VsZWN0b3JzX3dlYmhvb2tzPSgpPT5lPT57Y29uc3QgdD1lLnNwZWNTZWxlY3RvcnMuc3BlY0pzb24oKS5nZXQoIndlYmhvb2tzIik7cmV0dXJuIFhlLk1hcC5pc01hcCh0KT90OkhvfSxYbz0oMCxQdC5jcmVhdGVTZWxlY3RvcikoWyhlLHQpPT50LnNwZWNTZWxlY3RvcnMud2ViaG9va3MoKSwoZSx0KT0+dC5zcGVjU2VsZWN0b3JzLnZhbGlkT3BlcmF0aW9uTWV0aG9kcygpLChlLHQpPT50LnNwZWNTZWxlY3RvcnMuc3BlY1Jlc29sdmVkU3VidHJlZShbIndlYmhvb2tzIl0pXSwoKGUsdCk9PmUucmVkdWNlKCgoZSxyLG4pPT57aWYoIVhlLk1hcC5pc01hcChyKSlyZXR1cm4gZTtjb25zdCBhPXIuZW50cnlTZXEoKS5maWx0ZXIoKChbZV0pPT50LmluY2x1ZGVzKGUpKSkubWFwKCgoW2UsdF0pPT4oe29wZXJhdGlvbjooMCxYZS5NYXApKHtvcGVyYXRpb246dH0pLG1ldGhvZDplLHBhdGg6bixzcGVjUGF0aDpbIndlYmhvb2tzIixuLGVdfSkpKTtyZXR1cm4gZS5jb25jYXQoYSl9KSwoMCxYZS5MaXN0KSgpKS5ncm91cEJ5KChlPT5lLnBhdGgpKS5tYXAoKGU9PmUudG9BcnJheSgpKSkudG9PYmplY3QoKSkpLHNlbGVjdG9yc19saWNlbnNlPSgpPT5lPT57Y29uc3QgdD1lLnNwZWNTZWxlY3RvcnMuaW5mbygpLmdldCgibGljZW5zZSIpO3JldHVybiBYZS5NYXAuaXNNYXAodCk/dDpIb30sc2VsZWN0TGljZW5zZU5hbWVGaWVsZD0oKT0+ZT0+ZS5zcGVjU2VsZWN0b3JzLmxpY2Vuc2UoKS5nZXQoIm5hbWUiLCJMaWNlbnNlIiksc2VsZWN0TGljZW5zZVVybEZpZWxkPSgpPT5lPT5lLnNwZWNTZWxlY3RvcnMubGljZW5zZSgpLmdldCgidXJsIiksWW89KDAsUHQuY3JlYXRlU2VsZWN0b3IpKFsoZSx0KT0+dC5zcGVjU2VsZWN0b3JzLnVybCgpLChlLHQpPT50Lm9hczNTZWxlY3RvcnMuc2VsZWN0ZWRTZXJ2ZXIoKSwoZSx0KT0+dC5zcGVjU2VsZWN0b3JzLnNlbGVjdExpY2Vuc2VVcmxGaWVsZCgpXSwoKGUsdCxyKT0+e2lmKHIpcmV0dXJuIHNhZmVCdWlsZFVybChyLGUse3NlbGVjdGVkU2VydmVyOnR9KX0pKSxzZWxlY3RMaWNlbnNlSWRlbnRpZmllckZpZWxkPSgpPT5lPT5lLnNwZWNTZWxlY3RvcnMubGljZW5zZSgpLmdldCgiaWRlbnRpZmllciIpLHNlbGVjdG9yc19jb250YWN0PSgpPT5lPT57Y29uc3QgdD1lLnNwZWNTZWxlY3RvcnMuaW5mbygpLmdldCgiY29udGFjdCIpO3JldHVybiBYZS5NYXAuaXNNYXAodCk/dDpIb30sc2VsZWN0Q29udGFjdE5hbWVGaWVsZD0oKT0+ZT0+ZS5zcGVjU2VsZWN0b3JzLmNvbnRhY3QoKS5nZXQoIm5hbWUiLCJ0aGUgZGV2ZWxvcGVyIiksc2VsZWN0Q29udGFjdEVtYWlsRmllbGQ9KCk9PmU9PmUuc3BlY1NlbGVjdG9ycy5jb250YWN0KCkuZ2V0KCJlbWFpbCIpLHNlbGVjdENvbnRhY3RVcmxGaWVsZD0oKT0+ZT0+ZS5zcGVjU2VsZWN0b3JzLmNvbnRhY3QoKS5nZXQoInVybCIpLFFvPSgwLFB0LmNyZWF0ZVNlbGVjdG9yKShbKGUsdCk9PnQuc3BlY1NlbGVjdG9ycy51cmwoKSwoZSx0KT0+dC5vYXMzU2VsZWN0b3JzLnNlbGVjdGVkU2VydmVyKCksKGUsdCk9PnQuc3BlY1NlbGVjdG9ycy5zZWxlY3RDb250YWN0VXJsRmllbGQoKV0sKChlLHQscik9PntpZihyKXJldHVybiBzYWZlQnVpbGRVcmwocixlLHtzZWxlY3RlZFNlcnZlcjp0fSl9KSksc2VsZWN0SW5mb1RpdGxlRmllbGQ9KCk9PmU9PmUuc3BlY1NlbGVjdG9ycy5pbmZvKCkuZ2V0KCJ0aXRsZSIpLHNlbGVjdEluZm9TdW1tYXJ5RmllbGQ9KCk9PmU9PmUuc3BlY1NlbGVjdG9ycy5pbmZvKCkuZ2V0KCJzdW1tYXJ5Iiksc2VsZWN0SW5mb0Rlc2NyaXB0aW9uRmllbGQ9KCk9PmU9PmUuc3BlY1NlbGVjdG9ycy5pbmZvKCkuZ2V0KCJkZXNjcmlwdGlvbiIpLHNlbGVjdEluZm9UZXJtc09mU2VydmljZUZpZWxkPSgpPT5lPT5lLnNwZWNTZWxlY3RvcnMuaW5mbygpLmdldCgidGVybXNPZlNlcnZpY2UiKSxabz0oMCxQdC5jcmVhdGVTZWxlY3RvcikoWyhlLHQpPT50LnNwZWNTZWxlY3RvcnMudXJsKCksKGUsdCk9PnQub2FzM1NlbGVjdG9ycy5zZWxlY3RlZFNlcnZlcigpLChlLHQpPT50LnNwZWNTZWxlY3RvcnMuc2VsZWN0SW5mb1Rlcm1zT2ZTZXJ2aWNlRmllbGQoKV0sKChlLHQscik9PntpZihyKXJldHVybiBzYWZlQnVpbGRVcmwocixlLHtzZWxlY3RlZFNlcnZlcjp0fSl9KSksc2VsZWN0RXh0ZXJuYWxEb2NzRGVzY3JpcHRpb25GaWVsZD0oKT0+ZT0+ZS5zcGVjU2VsZWN0b3JzLmV4dGVybmFsRG9jcygpLmdldCgiZGVzY3JpcHRpb24iKSxzZWxlY3RFeHRlcm5hbERvY3NVcmxGaWVsZD0oKT0+ZT0+ZS5zcGVjU2VsZWN0b3JzLmV4dGVybmFsRG9jcygpLmdldCgidXJsIiksZXM9KDAsUHQuY3JlYXRlU2VsZWN0b3IpKFsoZSx0KT0+dC5zcGVjU2VsZWN0b3JzLnVybCgpLChlLHQpPT50Lm9hczNTZWxlY3RvcnMuc2VsZWN0ZWRTZXJ2ZXIoKSwoZSx0KT0+dC5zcGVjU2VsZWN0b3JzLnNlbGVjdEV4dGVybmFsRG9jc1VybEZpZWxkKCldLCgoZSx0LHIpPT57aWYocilyZXR1cm4gc2FmZUJ1aWxkVXJsKHIsZSx7c2VsZWN0ZWRTZXJ2ZXI6dH0pfSkpLHNlbGVjdEpzb25TY2hlbWFEaWFsZWN0RmllbGQ9KCk9PmU9PmUuc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpLmdldCgianNvblNjaGVtYURpYWxlY3QiKSxzZWxlY3RKc29uU2NoZW1hRGlhbGVjdERlZmF1bHQ9KCk9PiJodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy8zLjEvZGlhbGVjdC9iYXNlIix0cz0oMCxQdC5jcmVhdGVTZWxlY3RvcikoKChlLHQpPT50LnNwZWNTZWxlY3RvcnMuZGVmaW5pdGlvbnMoKSksKChlLHQpPT50LnNwZWNTZWxlY3RvcnMuc3BlY1Jlc29sdmVkU3VidHJlZShbImNvbXBvbmVudHMiLCJzY2hlbWFzIl0pKSwoKGUsdCk9PlhlLk1hcC5pc01hcChlKT9YZS5NYXAuaXNNYXAodCk/T2JqZWN0LmVudHJpZXMoZS50b0pTKCkpLnJlZHVjZSgoKGUsW3Isbl0pPT57Y29uc3QgYT10LmdldChyKTtyZXR1cm4gZVtyXT1hPy50b0pTKCl8fG4sZX0pLHt9KTplLnRvSlMoKTp7fSkpLHdyYXBfc2VsZWN0b3JzX2lzT0FTMz0oZSx0KT0+KHIsLi4ubik9PnQuc3BlY1NlbGVjdG9ycy5pc09BUzMxKCl8fGUoLi4ubikscnM9Y3JlYXRlT25seU9BUzMxU2VsZWN0b3JXcmFwcGVyKCgoKT0+KGUsdCk9PnQub2FzMzFTZWxlY3RvcnMuc2VsZWN0TGljZW5zZVVybCgpKSksbnM9Y3JlYXRlT25seU9BUzMxU2VsZWN0b3JXcmFwcGVyKCgoKT0+KGUsdCk9Pntjb25zdCByPXQuc3BlY1NlbGVjdG9ycy5zZWN1cml0eURlZmluaXRpb25zKCk7bGV0IG49ZSgpO3JldHVybiByPyhyLmVudHJ5U2VxKCkuZm9yRWFjaCgoKFtlLHRdKT0+e2NvbnN0IHI9dD8uZ2V0KCJ0eXBlIik7Im11dHVhbFRMUyI9PT1yJiYobj1uLnB1c2gobmV3IFhlLk1hcCh7W2VdOnR9KSkpfSkpLG4pOm59KSksYXM9KDAsUHQuY3JlYXRlU2VsZWN0b3IpKFsoZSx0KT0+dC5zcGVjU2VsZWN0b3JzLnVybCgpLChlLHQpPT50Lm9hczNTZWxlY3RvcnMuc2VsZWN0ZWRTZXJ2ZXIoKSwoZSx0KT0+dC5zcGVjU2VsZWN0b3JzLnNlbGVjdExpY2Vuc2VVcmxGaWVsZCgpLChlLHQpPT50LnNwZWNTZWxlY3RvcnMuc2VsZWN0TGljZW5zZUlkZW50aWZpZXJGaWVsZCgpXSwoKGUsdCxyLG4pPT5yP3NhZmVCdWlsZFVybChyLGUse3NlbGVjdGVkU2VydmVyOnR9KTpuP2BodHRwczovL3NwZHgub3JnL2xpY2Vuc2VzLyR7bn0uaHRtbGA6dm9pZCAwKSk7dmFyIGtleXdvcmRzX0V4YW1wbGU9KHtzY2hlbWE6ZSxnZXRTeXN0ZW06dH0pPT57Y29uc3R7Zm46cixnZXRDb21wb25lbnQ6bn09dCgpLHtoYXNLZXl3b3JkOmF9PXIuanNvblNjaGVtYTIwMjAxMi51c2VGbigpLG89bigiSlNPTlNjaGVtYTIwMjAxMkpTT05WaWV3ZXIiKTtyZXR1cm4gYShlLCJleGFtcGxlIik/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG8se25hbWU6IkV4YW1wbGUiLHZhbHVlOmUuZXhhbXBsZSxjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWV4YW1wbGUifSk6bnVsbH07dmFyIGtleXdvcmRzX1htbD0oe3NjaGVtYTplLGdldFN5c3RlbTp0fSk9Pntjb25zdCByPWU/LnhtbHx8e30se2ZuOm4sZ2V0Q29tcG9uZW50OmEsZ2V0Q29uZmlnczpvfT10KCkse3Nob3dFeHRlbnNpb25zOnN9PW8oKSx7dXNlQ29tcG9uZW50OmwsdXNlSXNFeHBhbmRlZDppLHVzZVBhdGg6Yyx1c2VMZXZlbDp1fT1uLmpzb25TY2hlbWEyMDIwMTIse3BhdGg6ZH09YygieG1sIikse2lzRXhwYW5kZWQ6cCxzZXRFeHBhbmRlZDptLHNldENvbGxhcHNlZDpmfT1pKCJ4bWwiKSxbaCxnXT11KCkseT1zP2dldEV4dGVuc2lvbnMocik6W10sUz0hIShyLm5hbWV8fHIubmFtZXNwYWNlfHxyLnByZWZpeHx8eS5sZW5ndGg+MCksXz1sKCJBY2NvcmRpb24iKSx2PWwoIkV4cGFuZERlZXBCdXR0b24iKSxiPWEoIk9wZW5BUEkzMUV4dGVuc2lvbnMiKSx3PWEoIkpTT05TY2hlbWEyMDIwMTJQYXRoQ29udGV4dCIpKCksQz1hKCJKU09OU2NoZW1hMjAyMDEyTGV2ZWxDb250ZXh0IikoKSx4PSgwLEhlLnVzZUNhbGxiYWNrKSgoKCk9PntwP2YoKTptKCl9KSxbcCxtLGZdKSxPPSgwLEhlLnVzZUNhbGxiYWNrKSgoKGUsdCk9Pnt0P20oe2RlZXA6ITB9KTpmKHtkZWVwOiEwfSl9KSxbbSxmXSk7cmV0dXJuIDA9PT1PYmplY3Qua2V5cyhyKS5sZW5ndGg/bnVsbDpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQody5Qcm92aWRlcix7dmFsdWU6ZH0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEMuUHJvdmlkZXIse3ZhbHVlOmd9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS14bWwiLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjpofSxTP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChIZS5kZWZhdWx0LkZyYWdtZW50LG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF8se2V4cGFuZGVkOnAsb25DaGFuZ2U6eH0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiWE1MIikpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh2LHtleHBhbmRlZDpwLG9uQ2xpY2s6T30pKTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCJYTUwiKSwhMD09PXIuYXR0cmlidXRlJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLW11dGVkIn0sImF0dHJpYnV0ZSIpLCEwPT09ci53cmFwcGVkJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLW11dGVkIn0sIndyYXBwZWQiKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInN0cm9uZyIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeSJ9LCJvYmplY3QiKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOigwLGhyLmRlZmF1bHQpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuIix7Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4tLWNvbGxhcHNlZCI6IXB9KX0scCYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEhlLmRlZmF1bHQuRnJhZ21lbnQsbnVsbCxyLm5hbWUmJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgibGkiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHkifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sIm5hbWUiKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0sci5uYW1lKSkpLHIubmFtZXNwYWNlJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImxpIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sIm5hbWVzcGFjZSIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxyLm5hbWVzcGFjZSkpKSxyLnByZWZpeCYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJsaSIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCJwcmVmaXgiKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0sci5wcmVmaXgpKSkpLHkubGVuZ3RoPjAmJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChiLHtvcGVuQVBJU3BlY09iajpyLG9wZW5BUElFeHRlbnNpb25zOnksZ2V0U3lzdGVtOnR9KSkpKSl9O3ZhciBEaXNjcmltaW5hdG9yX0Rpc2NyaW1pbmF0b3JNYXBwaW5nPSh7ZGlzY3JpbWluYXRvcjplfSk9Pntjb25zdCB0PWU/Lm1hcHBpbmd8fHt9O3JldHVybiAwPT09T2JqZWN0LmtleXModCkubGVuZ3RoP251bGw6T2JqZWN0LmVudHJpZXModCkubWFwKCgoW2UsdF0pPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleTpgJHtlfS0ke3R9YCxjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sZSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeSJ9LHQpKSkpfTt2YXIgRGlzY3JpbWluYXRvcl9EaXNjcmltaW5hdG9yPSh7c2NoZW1hOmUsZ2V0U3lzdGVtOnR9KT0+e2NvbnN0IHI9ZT8uZGlzY3JpbWluYXRvcnx8e30se2ZuOm4sZ2V0Q29tcG9uZW50OmEsZ2V0Q29uZmlnczpvfT10KCkse3Nob3dFeHRlbnNpb25zOnN9PW8oKSx7dXNlQ29tcG9uZW50OmwsdXNlSXNFeHBhbmRlZDppLHVzZVBhdGg6Yyx1c2VMZXZlbDp1fT1uLmpzb25TY2hlbWEyMDIwMTIsZD0iZGlzY3JpbWluYXRvciIse3BhdGg6cH09YyhkKSx7aXNFeHBhbmRlZDptLHNldEV4cGFuZGVkOmYsc2V0Q29sbGFwc2VkOmh9PWkoZCksW2cseV09dSgpLFM9cz9nZXRFeHRlbnNpb25zKHIpOltdLF89ISEoci5tYXBwaW5nfHxTLmxlbmd0aD4wKSx2PWwoIkFjY29yZGlvbiIpLGI9bCgiRXhwYW5kRGVlcEJ1dHRvbiIpLHc9YSgiT3BlbkFQSTMxRXh0ZW5zaW9ucyIpLEM9YSgiSlNPTlNjaGVtYTIwMjAxMlBhdGhDb250ZXh0IikoKSx4PWEoIkpTT05TY2hlbWEyMDIwMTJMZXZlbENvbnRleHQiKSgpLE89KDAsSGUudXNlQ2FsbGJhY2spKCgoKT0+e20/aCgpOmYoKX0pLFttLGYsaF0pLGs9KDAsSGUudXNlQ2FsbGJhY2spKCgoZSx0KT0+e3Q/Zih7ZGVlcDohMH0pOmgoe2RlZXA6ITB9KX0pLFtmLGhdKTtyZXR1cm4gMD09PU9iamVjdC5rZXlzKHIpLmxlbmd0aD9udWxsOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChDLlByb3ZpZGVyLHt2YWx1ZTpwfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoeC5Qcm92aWRlcix7dmFsdWU6eX0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWRpc2NyaW1pbmF0b3IiLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjpnfSxfP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChIZS5kZWZhdWx0LkZyYWdtZW50LG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHYse2V4cGFuZGVkOm0sb25DaGFuZ2U6T30sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiRGlzY3JpbWluYXRvciIpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYix7ZXhwYW5kZWQ6bSxvbkNsaWNrOmt9KSk6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiRGlzY3JpbWluYXRvciIpLHIucHJvcGVydHlOYW1lJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLW11dGVkIn0sci5wcm9wZXJ0eU5hbWUpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3Ryb25nIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5In0sIm9iamVjdCIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidWwiLHtjbGFzc05hbWU6KDAsaHIuZGVmYXVsdCkoImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4iLHsianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkIjohbX0pfSxtJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImxpIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KERpc2NyaW1pbmF0b3JfRGlzY3JpbWluYXRvck1hcHBpbmcse2Rpc2NyaW1pbmF0b3I6cn0pKSxTLmxlbmd0aD4wJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodyx7b3BlbkFQSVNwZWNPYmo6cixvcGVuQVBJRXh0ZW5zaW9uczpTLGdldFN5c3RlbTp0fSkpKSkpfTt2YXIga2V5d29yZHNfT3BlbkFQSUV4dGVuc2lvbnM9KHtvcGVuQVBJU3BlY09iajplLGdldFN5c3RlbTp0LG9wZW5BUElFeHRlbnNpb25zOnJ9KT0+e2NvbnN0e2ZuOm59PXQoKSx7dXNlQ29tcG9uZW50OmF9PW4uanNvblNjaGVtYTIwMjAxMixvPWEoIkpTT05WaWV3ZXIiKTtyZXR1cm4gci5tYXAoKHQ9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChvLHtrZXk6dCxuYW1lOnQsdmFsdWU6ZVt0XSxjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXItZXh0ZW5zaW9uLWtleXdvcmQifSkpKX07dmFyIGtleXdvcmRzX0V4dGVybmFsRG9jcz0oe3NjaGVtYTplLGdldFN5c3RlbTp0fSk9Pntjb25zdCByPWU/LmV4dGVybmFsRG9jc3x8e30se2ZuOm4sZ2V0Q29tcG9uZW50OmEsZ2V0Q29uZmlnczpvfT10KCkse3Nob3dFeHRlbnNpb25zOnN9PW8oKSx7dXNlQ29tcG9uZW50OmwsdXNlSXNFeHBhbmRlZDppLHVzZVBhdGg6Yyx1c2VMZXZlbDp1fT1uLmpzb25TY2hlbWEyMDIwMTIsZD0iZXh0ZXJuYWxEb2NzIix7cGF0aDpwfT1jKGQpLHtpc0V4cGFuZGVkOm0sc2V0RXhwYW5kZWQ6ZixzZXRDb2xsYXBzZWQ6aH09aShkKSxbZyx5XT11KCksUz1zP2dldEV4dGVuc2lvbnMocik6W10sXz0hIShyLmRlc2NyaXB0aW9ufHxyLnVybHx8Uy5sZW5ndGg+MCksdj1sKCJBY2NvcmRpb24iKSxiPWwoIkV4cGFuZERlZXBCdXR0b24iKSx3PWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVzY3JpcHRpb24iKSxDPWEoIkxpbmsiKSx4PWEoIk9wZW5BUEkzMUV4dGVuc2lvbnMiKSxPPWEoIkpTT05TY2hlbWEyMDIwMTJQYXRoQ29udGV4dCIpKCksaz1hKCJKU09OU2NoZW1hMjAyMDEyTGV2ZWxDb250ZXh0IikoKSxOPSgwLEhlLnVzZUNhbGxiYWNrKSgoKCk9PnttP2goKTpmKCl9KSxbbSxmLGhdKSxBPSgwLEhlLnVzZUNhbGxiYWNrKSgoKGUsdCk9Pnt0P2Yoe2RlZXA6ITB9KTpoKHtkZWVwOiEwfSl9KSxbZixoXSk7cmV0dXJuIDA9PT1PYmplY3Qua2V5cyhyKS5sZW5ndGg/bnVsbDpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoTy5Qcm92aWRlcix7dmFsdWU6cH0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGsuUHJvdmlkZXIse3ZhbHVlOnl9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1leHRlcm5hbERvY3MiLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjpnfSxfP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChIZS5kZWZhdWx0LkZyYWdtZW50LG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHYse2V4cGFuZGVkOm0sb25DaGFuZ2U6Tn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiRXh0ZXJuYWwgZG9jdW1lbnRhdGlvbiIpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYix7ZXhwYW5kZWQ6bSxvbkNsaWNrOkF9KSk6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiRXh0ZXJuYWwgZG9jdW1lbnRhdGlvbiIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3Ryb25nIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5In0sIm9iamVjdCIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidWwiLHtjbGFzc05hbWU6KDAsaHIuZGVmYXVsdCkoImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4iLHsianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkIjohbX0pfSxtJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoSGUuZGVmYXVsdC5GcmFnbWVudCxudWxsLHIuZGVzY3JpcHRpb24mJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgibGkiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHkifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodyx7c2NoZW1hOnIsZ2V0U3lzdGVtOnR9KSksci51cmwmJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgibGkiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHkifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sInVybCIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQyx7dGFyZ2V0OiJfYmxhbmsiLGhyZWY6c2FuaXRpemVVcmwoci51cmwpfSxyLnVybCkpKSkpLFMubGVuZ3RoPjAmJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh4LHtvcGVuQVBJU3BlY09iajpyLG9wZW5BUElFeHRlbnNpb25zOlMsZ2V0U3lzdGVtOnR9KSkpKSl9O3ZhciBrZXl3b3Jkc19EZXNjcmlwdGlvbj0oe3NjaGVtYTplLGdldFN5c3RlbTp0fSk9PntpZighZT8uZGVzY3JpcHRpb24pcmV0dXJuIG51bGw7Y29uc3R7Z2V0Q29tcG9uZW50OnJ9PXQoKSxuPXIoIk1hcmtkb3duIik7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kZXNjcmlwdGlvbiJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWNvcmUta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1jb3JlLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobix7c291cmNlOmUuZGVzY3JpcHRpb259KSkpfTt2YXIgb3M9Y3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcihrZXl3b3Jkc19EZXNjcmlwdGlvbik7Y29uc3Qgc3M9Y3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcigoKHtzY2hlbWE6ZSxnZXRTeXN0ZW06dCxvcmlnaW5hbENvbXBvbmVudDpyfSk9Pntjb25zdHtnZXRDb21wb25lbnQ6bn09dCgpLGE9bigiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREaXNjcmltaW5hdG9yIiksbz1uKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFhtbCIpLHM9bigiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFeGFtcGxlIiksbD1uKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4dGVybmFsRG9jcyIpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoSGUuZGVmYXVsdC5GcmFnbWVudCxudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChyLHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChhLHtzY2hlbWE6ZSxnZXRTeXN0ZW06dH0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChvLHtzY2hlbWE6ZSxnZXRTeXN0ZW06dH0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChsLHtzY2hlbWE6ZSxnZXRTeXN0ZW06dH0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChzLHtzY2hlbWE6ZSxnZXRTeXN0ZW06dH0pKX0pKTt2YXIgbHM9c3M7dmFyIGtleXdvcmRzX1Byb3BlcnRpZXM9KHtzY2hlbWE6ZSxnZXRTeXN0ZW06dH0pPT57Y29uc3R7Zm46cixnZXRDb21wb25lbnQ6bn09dCgpLHt1c2VDb21wb25lbnQ6YSx1c2VQYXRoOm99PXIuanNvblNjaGVtYTIwMjAxMix7Z2V0RGVwZW5kZW50UmVxdWlyZWQ6cyxnZXRQcm9wZXJ0aWVzOmx9PXIuanNvblNjaGVtYTIwMjAxMi51c2VGbigpLGk9ci5qc29uU2NoZW1hMjAyMDEyLnVzZUNvbmZpZygpLGM9QXJyYXkuaXNBcnJheShlPy5yZXF1aXJlZCk/ZS5yZXF1aXJlZDpbXSx7cGF0aDp1fT1vKCJwcm9wZXJ0aWVzIiksZD1hKCJKU09OU2NoZW1hIikscD1uKCJKU09OU2NoZW1hMjAyMDEyUGF0aENvbnRleHQiKSgpLG09bChlLGkpO3JldHVybiAwPT09T2JqZWN0LmtleXMobSkubGVuZ3RoP251bGw6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHAuUHJvdmlkZXIse3ZhbHVlOnV9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1wcm9wZXJ0aWVzIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ1bCIsbnVsbCxPYmplY3QuZW50cmllcyhtKS5tYXAoKChbdCxyXSk9Pntjb25zdCBuPWMuaW5jbHVkZXModCksYT1zKHQsZSk7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgibGkiLHtrZXk6dCxjbGFzc05hbWU6KDAsaHIuZGVmYXVsdCkoImpzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHkiLHsianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eS0tcmVxdWlyZWQiOm59KX0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGQse25hbWU6dCxzY2hlbWE6cixkZXBlbmRlbnRSZXF1aXJlZDphfSkpfSkpKSkpfTt2YXIgaXM9Y3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcihrZXl3b3Jkc19Qcm9wZXJ0aWVzKTt2YXIgY3M9ZnVuY3Rpb24gb2FzMzFfYWZ0ZXJfbG9hZF9hZnRlckxvYWQoe2ZuOmUsZ2V0U3lzdGVtOnR9KXtpZihlLmpzb25TY2hlbWEyMDIwMTIpe2NvbnN0IHI9KChlLHQpPT57Y29uc3R7Zm46cn09dCgpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXJldHVybiBudWxsO2NvbnN0e2hhc0tleXdvcmQ6bn09ci5qc29uU2NoZW1hMjAyMDEyO3JldHVybiB0PT5lKHQpfHxuKHQsImV4YW1wbGUiKXx8dD8ueG1sfHx0Py5kaXNjcmltaW5hdG9yfHx0Py5leHRlcm5hbERvY3N9KShlLmpzb25TY2hlbWEyMDIwMTIuaXNFeHBhbmRhYmxlLHQpO09iamVjdC5hc3NpZ24odGhpcy5mbi5qc29uU2NoZW1hMjAyMDEyLHtpc0V4cGFuZGFibGU6cixnZXRQcm9wZXJ0aWVzfSl9aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUuc2FtcGxlRnJvbVNjaGVtYSYmZS5qc29uU2NoZW1hMjAyMDEyKXtjb25zdCByPXdyYXBPQVMzMUZuKHtzYW1wbGVGcm9tU2NoZW1hOmUuanNvblNjaGVtYTIwMjAxMi5zYW1wbGVGcm9tU2NoZW1hLHNhbXBsZUZyb21TY2hlbWFHZW5lcmljOmUuanNvblNjaGVtYTIwMjAxMi5zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyxjcmVhdGVYTUxFeGFtcGxlOmUuanNvblNjaGVtYTIwMjAxMi5jcmVhdGVYTUxFeGFtcGxlLG1lbW9pemVkU2FtcGxlRnJvbVNjaGVtYTplLmpzb25TY2hlbWEyMDIwMTIubWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hLG1lbW9pemVkQ3JlYXRlWE1MRXhhbXBsZTplLmpzb25TY2hlbWEyMDIwMTIubWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlLGdldEpzb25TYW1wbGVTY2hlbWE6ZS5qc29uU2NoZW1hMjAyMDEyLmdldEpzb25TYW1wbGVTY2hlbWEsZ2V0WWFtbFNhbXBsZVNjaGVtYTplLmpzb25TY2hlbWEyMDIwMTIuZ2V0WWFtbFNhbXBsZVNjaGVtYSxnZXRYbWxTYW1wbGVTY2hlbWE6ZS5qc29uU2NoZW1hMjAyMDEyLmdldFhtbFNhbXBsZVNjaGVtYSxnZXRTYW1wbGVTY2hlbWE6ZS5qc29uU2NoZW1hMjAyMDEyLmdldFNhbXBsZVNjaGVtYSxtZXJnZUpzb25TY2hlbWE6ZS5qc29uU2NoZW1hMjAyMDEyLm1lcmdlSnNvblNjaGVtYSxnZXRTY2hlbWFPYmplY3RUeXBlTGFiZWw6dD0+ZS5qc29uU2NoZW1hMjAyMDEyLmdldFR5cGUoaW1tdXRhYmxlVG9KUyh0KSksZ2V0U2NoZW1hT2JqZWN0VHlwZTp0PT5lLmpzb25TY2hlbWEyMDIwMTIuZm9sZFR5cGUoaW1tdXRhYmxlVG9KUyh0KT8udHlwZSl9LHQoKSk7T2JqZWN0LmFzc2lnbih0aGlzLmZuLHIpfWNvbnN0IHI9KGU9Pih0LHI9bnVsbCk9Pntjb25zdHtmbjpufT1lKCk7aWYobi5pc0ZpbGVVcGxvYWRJbnRlbmRlZE9BUzMwKHQscikpcmV0dXJuITA7Y29uc3QgYT1YZS5NYXAuaXNNYXAodCk7aWYoIWEmJiEoMCxDci5kZWZhdWx0KSh0KSlyZXR1cm4hMTtjb25zdCBvPWE/dC5nZXQoImNvbnRlbnRNZWRpYVR5cGUiKTp0LmNvbnRlbnRNZWRpYVR5cGUscz1hP3QuZ2V0KCJjb250ZW50RW5jb2RpbmciKTp0LmNvbnRlbnRFbmNvZGluZztyZXR1cm4ic3RyaW5nIj09dHlwZW9mIG8mJiIiIT09b3x8InN0cmluZyI9PXR5cGVvZiBzJiYiIiE9PXN9KSh0KSx7aXNGaWxlVXBsb2FkSW50ZW5kZWQ6bn09d3JhcE9BUzMxRm4oe2lzRmlsZVVwbG9hZEludGVuZGVkOnJ9LHQoKSk7aWYodGhpcy5mbi5pc0ZpbGVVcGxvYWRJbnRlbmRlZD1uLHRoaXMuZm4uaXNGaWxlVXBsb2FkSW50ZW5kZWRPQVMzMT1yLGUuanNvblNjaGVtYTIwMjAxMil7Y29uc3R7aGFzU2NoZW1hVHlwZTpyfT13cmFwT0FTMzFGbih7aGFzU2NoZW1hVHlwZTplLmpzb25TY2hlbWEyMDIwMTIuaGFzU2NoZW1hVHlwZX0sdCgpKTt0aGlzLmZuLmhhc1NjaGVtYVR5cGU9cn19O3ZhciBvYXMzMT0oe2ZuOmV9KT0+e2NvbnN0IHQ9ZS5jcmVhdGVTeXN0ZW1TZWxlY3Rvcnx8Zm5fY3JlYXRlU3lzdGVtU2VsZWN0b3Iscj1lLmNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yfHxmbl9jcmVhdGVPbmx5T0FTMzFTZWxlY3RvcjtyZXR1cm57YWZ0ZXJMb2FkOmNzLGZuOntpc09BUzMxLGNyZWF0ZVN5c3RlbVNlbGVjdG9yOmZuX2NyZWF0ZVN5c3RlbVNlbGVjdG9yLGNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yOmZuX2NyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yfSxjb21wb25lbnRzOntXZWJob29rczp3ZWJob29rcyxKc29uU2NoZW1hRGlhbGVjdDpqc29uX3NjaGVtYV9kaWFsZWN0LE11dHVhbFRMU0F1dGg6bXV0dWFsX3Rsc19hdXRoLE9BUzMxSW5mbzpvYXMzMV9jb21wb25lbnRzX2luZm8sT0FTMzFMaWNlbnNlOmNvbXBvbmVudHNfbGljZW5zZSxPQVMzMUNvbnRhY3Q6Y29tcG9uZW50c19jb250YWN0LE9BUzMxVmVyc2lvblByYWdtYUZpbHRlcjp2ZXJzaW9uX3ByYWdtYV9maWx0ZXIsT0FTMzFNb2RlbDpNbyxPQVMzMU1vZGVsczptb2RlbHMsT0FTMzFBdXRoczpxbyxKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4YW1wbGU6a2V5d29yZHNfRXhhbXBsZSxKU09OU2NoZW1hMjAyMDEyS2V5d29yZFhtbDprZXl3b3Jkc19YbWwsSlNPTlNjaGVtYTIwMjAxMktleXdvcmREaXNjcmltaW5hdG9yOkRpc2NyaW1pbmF0b3JfRGlzY3JpbWluYXRvcixKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4dGVybmFsRG9jczprZXl3b3Jkc19FeHRlcm5hbERvY3MsT3BlbkFQSTMxRXh0ZW5zaW9uczprZXl3b3Jkc19PcGVuQVBJRXh0ZW5zaW9uc30sd3JhcENvbXBvbmVudHM6e0luZm9Db250YWluZXI6RG8sTGljZW5zZTpMbyxDb250YWN0OlVvLFZlcnNpb25QcmFnbWFGaWx0ZXI6d3JhcF9jb21wb25lbnRzX3ZlcnNpb25fcHJhZ21hX2ZpbHRlcixNb2RlbDpWbyxNb2RlbHM6Rm8sQXV0aEl0ZW06S28sYXV0aHM6V28sSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXNjcmlwdGlvbjpvcyxKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4YW1wbGVzOmxzLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUHJvcGVydGllczppc30sc3RhdGVQbHVnaW5zOnthdXRoOnt3cmFwU2VsZWN0b3JzOntkZWZpbml0aW9uc1RvQXV0aG9yaXplOm5zfX0sc3BlYzp7c2VsZWN0b3JzOntpc09BUzMxOnQoR28pLGxpY2Vuc2U6c2VsZWN0b3JzX2xpY2Vuc2Usc2VsZWN0TGljZW5zZU5hbWVGaWVsZCxzZWxlY3RMaWNlbnNlVXJsRmllbGQsc2VsZWN0TGljZW5zZUlkZW50aWZpZXJGaWVsZDpyKHNlbGVjdExpY2Vuc2VJZGVudGlmaWVyRmllbGQpLHNlbGVjdExpY2Vuc2VVcmw6dChZbyksY29udGFjdDpzZWxlY3RvcnNfY29udGFjdCxzZWxlY3RDb250YWN0TmFtZUZpZWxkLHNlbGVjdENvbnRhY3RFbWFpbEZpZWxkLHNlbGVjdENvbnRhY3RVcmxGaWVsZCxzZWxlY3RDb250YWN0VXJsOnQoUW8pLHNlbGVjdEluZm9UaXRsZUZpZWxkLHNlbGVjdEluZm9TdW1tYXJ5RmllbGQ6cihzZWxlY3RJbmZvU3VtbWFyeUZpZWxkKSxzZWxlY3RJbmZvRGVzY3JpcHRpb25GaWVsZCxzZWxlY3RJbmZvVGVybXNPZlNlcnZpY2VGaWVsZCxzZWxlY3RJbmZvVGVybXNPZlNlcnZpY2VVcmw6dChabyksc2VsZWN0RXh0ZXJuYWxEb2NzRGVzY3JpcHRpb25GaWVsZCxzZWxlY3RFeHRlcm5hbERvY3NVcmxGaWVsZCxzZWxlY3RFeHRlcm5hbERvY3NVcmw6dChlcyksd2ViaG9va3M6cihzZWxlY3RvcnNfd2ViaG9va3MpLHNlbGVjdFdlYmhvb2tzT3BlcmF0aW9uczpyKHQoWG8pKSxzZWxlY3RKc29uU2NoZW1hRGlhbGVjdEZpZWxkLHNlbGVjdEpzb25TY2hlbWFEaWFsZWN0RGVmYXVsdCxzZWxlY3RTY2hlbWFzOnQodHMpfSx3cmFwU2VsZWN0b3JzOntpc09BUzM6d3JhcF9zZWxlY3RvcnNfaXNPQVMzLHNlbGVjdExpY2Vuc2VVcmw6cnN9fSxvYXMzMTp7c2VsZWN0b3JzOntzZWxlY3RMaWNlbnNlVXJsOnIodChhcykpfX19fX07Y29uc3QgdXM9VXQuZGVmYXVsdC5vYmplY3QsZHM9VXQuZGVmYXVsdC5ib29sLHBzPShVdC5kZWZhdWx0Lm9uZU9mVHlwZShbdXMsZHNdKSwoMCxIZS5jcmVhdGVDb250ZXh0KShudWxsKSk7cHMuZGlzcGxheU5hbWU9IkpTT05TY2hlbWFDb250ZXh0Ijtjb25zdCBtcz0oMCxIZS5jcmVhdGVDb250ZXh0KSgwKTttcy5kaXNwbGF5TmFtZT0iSlNPTlNjaGVtYUxldmVsQ29udGV4dCI7Y29uc3QgZnM9KDAsSGUuY3JlYXRlQ29udGV4dCkobmV3IFNldCksaHM9KDAsSGUuY3JlYXRlQ29udGV4dCkoW10pO2NsYXNzIEpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGV7c3RhdGljIENvbGxhcHNlZD0iY29sbGFwc2VkIjtzdGF0aWMgRXhwYW5kZWQ9ImV4cGFuZGVkIjtzdGF0aWMgRGVlcGx5RXhwYW5kZWQ9ImRlZXBseS1leHBhbmRlZCJ9Y29uc3QgdXNlQ29uZmlnPSgpPT57Y29uc3R7Y29uZmlnOmV9PSgwLEhlLnVzZUNvbnRleHQpKHBzKTtyZXR1cm4gZX0sdXNlQ29tcG9uZW50PWU9Pntjb25zdHtjb21wb25lbnRzOnR9PSgwLEhlLnVzZUNvbnRleHQpKHBzKTtyZXR1cm4gdFtlXXx8bnVsbH0sdXNlRm49KGU9dm9pZCAwKT0+e2NvbnN0e2ZuOnR9PSgwLEhlLnVzZUNvbnRleHQpKHBzKTtyZXR1cm4gdm9pZCAwIT09ZT90W2VdOnR9LHVzZUpTT05TY2hlbWFDb250ZXh0U3RhdGU9KCk9Pntjb25zdFssZV09KDAsSGUudXNlU3RhdGUpKG51bGwpLHtzdGF0ZTp0fT0oMCxIZS51c2VDb250ZXh0KShwcyk7cmV0dXJue3N0YXRlOnQsc2V0U3RhdGU6cj0+e3IodCksZSh7fSl9fX0sdXNlTGV2ZWw9KCk9Pntjb25zdCBlPSgwLEhlLnVzZUNvbnRleHQpKG1zKTtyZXR1cm5bZSxlKzFdfSx1c2VQYXRoPWU9Pntjb25zdCB0PSgwLEhlLnVzZUNvbnRleHQpKGhzKSx7c2V0U3RhdGU6cn09dXNlSlNPTlNjaGVtYUNvbnRleHRTdGF0ZSgpLG49InN0cmluZyI9PXR5cGVvZiBlP1suLi50LGVdOnQ7cmV0dXJue3BhdGg6bixwYXRoTXV0YXRvcjooZSx0PXtkZWVwOiExfSk9Pntjb25zdCBhPW4udG9TdHJpbmcoKSx1cGRhdGVGbj10PT57dC5wYXRoc1thXT1lLGU9PT1KU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkNvbGxhcHNlZCYmT2JqZWN0LmtleXModC5wYXRocykuZm9yRWFjaCgoZT0+e2Uuc3RhcnRzV2l0aChhKSYmdC5wYXRoc1tlXT09PUpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuRGVlcGx5RXhwYW5kZWQmJih0LnBhdGhzW2VdPUpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuRXhwYW5kZWQpfSkpfSx1cGRhdGVEZWVwRm49dD0+e09iamVjdC5rZXlzKHQucGF0aHMpLmZvckVhY2goKHI9PntyLnN0YXJ0c1dpdGgoYSkmJih0LnBhdGhzW3JdPWUpfSkpfTt0LmRlZXA/cih1cGRhdGVEZWVwRm4pOnIodXBkYXRlRm4pfX19LHVzZUlzRXhwYW5kZWQ9ZT0+e2NvbnN0W3RdPXVzZUxldmVsKCkse2RlZmF1bHRFeHBhbmRlZExldmVsczpyfT11c2VDb25maWcoKSx7cGF0aDpuLHBhdGhNdXRhdG9yOmF9PXVzZVBhdGgoZSkse3BhdGg6b309dXNlUGF0aCgpLHtzdGF0ZTpzfT11c2VKU09OU2NoZW1hQ29udGV4dFN0YXRlKCksbD1zLnBhdGhzW24udG9TdHJpbmcoKV0saT1zLnBhdGhzW28udG9TdHJpbmcoKV0/P3MucGF0aHNbby5zbGljZSgwLC0xKS50b1N0cmluZygpXSxjPWw/PyhyLXQ+MD9KU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkV4cGFuZGVkOkpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuQ29sbGFwc2VkKSx1PWMhPT1KU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkNvbGxhcHNlZDsoMCxIZS51c2VFZmZlY3QpKCgoKT0+e2EoaT09PUpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuRGVlcGx5RXhwYW5kZWQ/SlNPTlNjaGVtYUlzRXhwYW5kZWRTdGF0ZS5EZWVwbHlFeHBhbmRlZDpjKX0pLFtpXSk7cmV0dXJue2lzRXhwYW5kZWQ6dSxzZXRFeHBhbmRlZDooMCxIZS51c2VDYWxsYmFjaykoKChlPXtkZWVwOiExfSk9PnthKGUuZGVlcD9KU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkRlZXBseUV4cGFuZGVkOkpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuRXhwYW5kZWQpfSksW10pLHNldENvbGxhcHNlZDooMCxIZS51c2VDYWxsYmFjaykoKChlPXtkZWVwOiExfSk9PnthKEpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuQ29sbGFwc2VkLGUpfSksW10pfX0sdXNlUmVuZGVyZWRTY2hlbWFzPShlPXZvaWQgMCk9PntpZih2b2lkIDA9PT1lKXJldHVybigwLEhlLnVzZUNvbnRleHQpKGZzKTtjb25zdCB0PSgwLEhlLnVzZUNvbnRleHQpKGZzKTtyZXR1cm4gbmV3IFNldChbLi4udCxlXSl9LGdzPSgwLEhlLmZvcndhcmRSZWYpKCgoe3NjaGVtYTplLG5hbWU6dD0iIixkZXBlbmRlbnRSZXF1aXJlZDpyPVtdLG9uRXhwYW5kOm49KCk9Pnt9LGlkZW50aWZpZXI6YT0iIn0sbyk9Pntjb25zdCBzPXVzZUZuKCksbD1hfHxlPy4kaWR8fHQse3BhdGg6aX09dXNlUGF0aChsKSx7aXNFeHBhbmRlZDpjLHNldEV4cGFuZGVkOnUsc2V0Q29sbGFwc2VkOmR9PXVzZUlzRXhwYW5kZWQobCksW3AsbV09dXNlTGV2ZWwoKSxmPSgoKT0+e2NvbnN0W2VdPXVzZUxldmVsKCk7cmV0dXJuIGU+MH0pKCksaD1zLmlzRXhwYW5kYWJsZShlKXx8ci5sZW5ndGg+MCxnPShlPT51c2VSZW5kZXJlZFNjaGVtYXMoKS5oYXMoZSkpKGUpLHk9dXNlUmVuZGVyZWRTY2hlbWFzKGUpLFM9cy5zdHJpbmdpZnlDb25zdHJhaW50cyhlKSxfPXVzZUNvbXBvbmVudCgiQWNjb3JkaW9uIiksdj11c2VDb21wb25lbnQoIktleXdvcmQkc2NoZW1hIiksYj11c2VDb21wb25lbnQoIktleXdvcmQkdm9jYWJ1bGFyeSIpLHc9dXNlQ29tcG9uZW50KCJLZXl3b3JkJGlkIiksQz11c2VDb21wb25lbnQoIktleXdvcmQkYW5jaG9yIikseD11c2VDb21wb25lbnQoIktleXdvcmQkZHluYW1pY0FuY2hvciIpLE89dXNlQ29tcG9uZW50KCJLZXl3b3JkJHJlZiIpLGs9dXNlQ29tcG9uZW50KCJLZXl3b3JkJGR5bmFtaWNSZWYiKSxOPXVzZUNvbXBvbmVudCgiS2V5d29yZCRkZWZzIiksQT11c2VDb21wb25lbnQoIktleXdvcmQkY29tbWVudCIpLEk9dXNlQ29tcG9uZW50KCJLZXl3b3JkQWxsT2YiKSxqPXVzZUNvbXBvbmVudCgiS2V5d29yZEFueU9mIiksUj11c2VDb21wb25lbnQoIktleXdvcmRPbmVPZiIpLFQ9dXNlQ29tcG9uZW50KCJLZXl3b3JkTm90IiksUD11c2VDb21wb25lbnQoIktleXdvcmRJZiIpLEI9dXNlQ29tcG9uZW50KCJLZXl3b3JkVGhlbiIpLE09dXNlQ29tcG9uZW50KCJLZXl3b3JkRWxzZSIpLHE9dXNlQ29tcG9uZW50KCJLZXl3b3JkRGVwZW5kZW50U2NoZW1hcyIpLEw9dXNlQ29tcG9uZW50KCJLZXl3b3JkUHJlZml4SXRlbXMiKSxVPXVzZUNvbXBvbmVudCgiS2V5d29yZEl0ZW1zIiksRD11c2VDb21wb25lbnQoIktleXdvcmRDb250YWlucyIpLCQ9dXNlQ29tcG9uZW50KCJLZXl3b3JkUHJvcGVydGllcyIpLFY9dXNlQ29tcG9uZW50KCJLZXl3b3JkUGF0dGVyblByb3BlcnRpZXMiKSxKPXVzZUNvbXBvbmVudCgiS2V5d29yZEFkZGl0aW9uYWxQcm9wZXJ0aWVzIiksRj11c2VDb21wb25lbnQoIktleXdvcmRQcm9wZXJ0eU5hbWVzIiksej11c2VDb21wb25lbnQoIktleXdvcmRVbmV2YWx1YXRlZEl0ZW1zIiksSz11c2VDb21wb25lbnQoIktleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXMiKSxXPXVzZUNvbXBvbmVudCgiS2V5d29yZFR5cGUiKSxIPXVzZUNvbXBvbmVudCgiS2V5d29yZEVudW0iKSxHPXVzZUNvbXBvbmVudCgiS2V5d29yZENvbnN0IiksWD11c2VDb21wb25lbnQoIktleXdvcmRDb25zdHJhaW50IiksWT11c2VDb21wb25lbnQoIktleXdvcmREZXBlbmRlbnRSZXF1aXJlZCIpLFE9dXNlQ29tcG9uZW50KCJLZXl3b3JkQ29udGVudFNjaGVtYSIpLFo9dXNlQ29tcG9uZW50KCJLZXl3b3JkVGl0bGUiKSxlZT11c2VDb21wb25lbnQoIktleXdvcmREZXNjcmlwdGlvbiIpLHRlPXVzZUNvbXBvbmVudCgiS2V5d29yZERlZmF1bHQiKSxyZT11c2VDb21wb25lbnQoIktleXdvcmREZXByZWNhdGVkIiksbmU9dXNlQ29tcG9uZW50KCJLZXl3b3JkUmVhZE9ubHkiKSxhZT11c2VDb21wb25lbnQoIktleXdvcmRXcml0ZU9ubHkiKSxvZT11c2VDb21wb25lbnQoIktleXdvcmRFeGFtcGxlcyIpLHNlPXVzZUNvbXBvbmVudCgiRXh0ZW5zaW9uS2V5d29yZHMiKSxsZT11c2VDb21wb25lbnQoIkV4cGFuZERlZXBCdXR0b24iKSxpZT0oMCxIZS51c2VDYWxsYmFjaykoKChlLHQpPT57dD91KCk6ZCgpLG4oZSx0LCExKX0pLFtuLHUsZF0pLGNlPSgwLEhlLnVzZUNhbGxiYWNrKSgoKGUsdCk9Pnt0P3Uoe2RlZXA6ITB9KTpkKHtkZWVwOiEwfSksbihlLHQsITApfSksW24sdSxkXSk7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChocy5Qcm92aWRlcix7dmFsdWU6aX0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG1zLlByb3ZpZGVyLHt2YWx1ZTptfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoZnMuUHJvdmlkZXIse3ZhbHVlOnl9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiYXJ0aWNsZSIse3JlZjpvLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjpwLGNsYXNzTmFtZTooMCxoci5kZWZhdWx0KSgianNvbi1zY2hlbWEtMjAyMC0xMiIseyJqc29uLXNjaGVtYS0yMDIwLTEyLS1lbWJlZGRlZCI6ZiwianNvbi1zY2hlbWEtMjAyMC0xMi0tY2lyY3VsYXIiOmd9KX0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItaGVhZCJ9LGgmJiFnP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChIZS5kZWZhdWx0LkZyYWdtZW50LG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF8se2V4cGFuZGVkOmMsb25DaGFuZ2U6aWV9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChaLHt0aXRsZTp0LHNjaGVtYTplfSkpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChsZSx7ZXhwYW5kZWQ6YyxvbkNsaWNrOmNlfSkpOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChaLHt0aXRsZTp0LHNjaGVtYTplfSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHJlLHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChuZSx7c2NoZW1hOmV9KSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYWUse3NjaGVtYTplfSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFcse3NjaGVtYTplLGlzQ2lyY3VsYXI6Z30pLFMubGVuZ3RoPjAmJlMubWFwKChlPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoWCx7a2V5OmAke2Uuc2NvcGV9LSR7ZS52YWx1ZX1gLGNvbnN0cmFpbnQ6ZX0pKSkpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOigwLGhyLmRlZmF1bHQpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWJvZHkiLHsianNvbi1zY2hlbWEtMjAyMC0xMi1ib2R5LS1jb2xsYXBzZWQiOiFjfSl9LGMmJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChIZS5kZWZhdWx0LkZyYWdtZW50LG51bGwsSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGVlLHtzY2hlbWE6ZX0pLCFnJiZoJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoSGUuZGVmYXVsdC5GcmFnbWVudCxudWxsLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgkLHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChWLHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChKLHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChLLHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChGLHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChJLHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChqLHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChSLHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChULHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChQLHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChCLHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChNLHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChxLHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChMLHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChVLHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh6LHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChELHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChRLHtzY2hlbWE6ZX0pKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoSCx7c2NoZW1hOmV9KSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoRyx7c2NoZW1hOmV9KSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoWSx7c2NoZW1hOmUsZGVwZW5kZW50UmVxdWlyZWQ6cn0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh0ZSx7c2NoZW1hOmV9KSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQob2Use3NjaGVtYTplfSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHYse3NjaGVtYTplfSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGIse3NjaGVtYTplfSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHcse3NjaGVtYTplfSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEMse3NjaGVtYTplfSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHgse3NjaGVtYTplfSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KE8se3NjaGVtYTplfSksIWcmJmgmJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChOLHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChrLHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChBLHtzY2hlbWE6ZX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChzZSx7c2NoZW1hOmV9KSkpKSkpKX0pKTt2YXIgeXM9Z3M7dmFyIGtleXdvcmRzXyRzY2hlbWE9KHtzY2hlbWE6ZX0pPT5lPy4kc2NoZW1hP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS0kc2NoZW1hIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiJHNjaGVtYSIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxlLiRzY2hlbWEpKTpudWxsO3ZhciAkdm9jYWJ1bGFyeV8kdm9jYWJ1bGFyeT0oe3NjaGVtYTplfSk9Pntjb25zdCB0PSIkdm9jYWJ1bGFyeSIse3BhdGg6cn09dXNlUGF0aCh0KSx7aXNFeHBhbmRlZDpuLHNldEV4cGFuZGVkOmEsc2V0Q29sbGFwc2VkOm99PXVzZUlzRXhwYW5kZWQodCkscz11c2VDb21wb25lbnQoIkFjY29yZGlvbiIpLGw9KDAsSGUudXNlQ2FsbGJhY2spKCgoKT0+e24/bygpOmEoKX0pLFtuLGEsb10pO3JldHVybiBlPy4kdm9jYWJ1bGFyeT8ib2JqZWN0IiE9dHlwZW9mIGUuJHZvY2FidWxhcnk/bnVsbDpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoaHMuUHJvdmlkZXIse3ZhbHVlOnJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS0kdm9jYWJ1bGFyeSJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChzLHtleHBhbmRlZDpuLG9uQ2hhbmdlOmx9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sIiR2b2NhYnVsYXJ5IikpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3Ryb25nIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5In0sIm9iamVjdCIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidWwiLG51bGwsbiYmT2JqZWN0LmVudHJpZXMoZS4kdm9jYWJ1bGFyeSkubWFwKCgoW2UsdF0pPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OmUsY2xhc3NOYW1lOigwLGhyLmRlZmF1bHQpKCJqc29uLXNjaGVtYS0yMDIwLTEyLSR2b2NhYnVsYXJ5LXVyaSIseyJqc29uLXNjaGVtYS0yMDIwLTEyLSR2b2NhYnVsYXJ5LXVyaS0tZGlzYWJsZWQiOiF0fSl9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxlKSkpKSkpKTpudWxsfTt2YXIga2V5d29yZHNfJGlkPSh7c2NoZW1hOmV9KT0+ZT8uJGlkP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS0kaWQifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCIkaWQiKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0sZS4kaWQpKTpudWxsO3ZhciBrZXl3b3Jkc18kYW5jaG9yPSh7c2NoZW1hOmV9KT0+ZT8uJGFuY2hvcj9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJGFuY2hvciJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sIiRhbmNob3IiKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0sZS4kYW5jaG9yKSk6bnVsbDt2YXIga2V5d29yZHNfJGR5bmFtaWNBbmNob3I9KHtzY2hlbWE6ZX0pPT5lPy4kZHluYW1pY0FuY2hvcj9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJGR5bmFtaWNBbmNob3IifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCIkZHluYW1pY0FuY2hvciIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxlLiRkeW5hbWljQW5jaG9yKSk6bnVsbDt2YXIga2V5d29yZHNfJHJlZj0oe3NjaGVtYTplfSk9PmU/LiRyZWY/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLSRyZWYifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCIkcmVmIiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeSJ9LGUuJHJlZikpOm51bGw7dmFyIGtleXdvcmRzXyRkeW5hbWljUmVmPSh7c2NoZW1hOmV9KT0+ZT8uJGR5bmFtaWNSZWY/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLSRkeW5hbWljUmVmIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiJGR5bmFtaWNSZWYiKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0sZS4kZHluYW1pY1JlZikpOm51bGw7dmFyIGtleXdvcmRzXyRkZWZzPSh7c2NoZW1hOmV9KT0+e2NvbnN0IHQ9ZT8uJGRlZnN8fHt9LHI9IiRkZWZzIix7cGF0aDpufT11c2VQYXRoKHIpLHtpc0V4cGFuZGVkOmEsc2V0RXhwYW5kZWQ6byxzZXRDb2xsYXBzZWQ6c309dXNlSXNFeHBhbmRlZChyKSxbbCxpXT11c2VMZXZlbCgpLGM9dXNlQ29tcG9uZW50KCJBY2NvcmRpb24iKSx1PXVzZUNvbXBvbmVudCgiRXhwYW5kRGVlcEJ1dHRvbiIpLGQ9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIikscD0oMCxIZS51c2VDYWxsYmFjaykoKCgpPT57YT9zKCk6bygpfSksW2EsbyxzXSksbT0oMCxIZS51c2VDYWxsYmFjaykoKChlLHQpPT57dD9vKHtkZWVwOiEwfSk6cyh7ZGVlcDohMH0pfSksW28sc10pO3JldHVybiAwPT09T2JqZWN0LmtleXModCkubGVuZ3RoP251bGw6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGhzLlByb3ZpZGVyLHt2YWx1ZTpufSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobXMuUHJvdmlkZXIse3ZhbHVlOml9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS0kZGVmcyIsImRhdGEtanNvbi1zY2hlbWEtbGV2ZWwiOmx9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChjLHtleHBhbmRlZDphLG9uQ2hhbmdlOnB9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sIiRkZWZzIikpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh1LHtleHBhbmRlZDphLG9uQ2xpY2s6bX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3Ryb25nIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5In0sIm9iamVjdCIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidWwiLHtjbGFzc05hbWU6KDAsaHIuZGVmYXVsdCkoImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4iLHsianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkIjohYX0pfSxhJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoSGUuZGVmYXVsdC5GcmFnbWVudCxudWxsLE9iamVjdC5lbnRyaWVzKHQpLm1hcCgoKFtlLHRdKT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJsaSIse2tleTplLGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChkLHtuYW1lOmUsc2NoZW1hOnR9KSkpKSkpKSkpfTt2YXIga2V5d29yZHNfJGNvbW1lbnQ9KHtzY2hlbWE6ZX0pPT5lPy4kY29tbWVudD9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJGNvbW1lbnQifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCIkY29tbWVudCIpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxlLiRjb21tZW50KSk6bnVsbDt2YXIga2V5d29yZHNfQWxsT2Y9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD1lPy5hbGxPZnx8W10scj11c2VGbigpLG49ImFsbE9mIix7cGF0aDphfT11c2VQYXRoKG4pLHtpc0V4cGFuZGVkOm8sc2V0RXhwYW5kZWQ6cyxzZXRDb2xsYXBzZWQ6bH09dXNlSXNFeHBhbmRlZChuKSxbaSxjXT11c2VMZXZlbCgpLHU9dXNlQ29tcG9uZW50KCJBY2NvcmRpb24iKSxkPXVzZUNvbXBvbmVudCgiRXhwYW5kRGVlcEJ1dHRvbiIpLHA9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIiksbT11c2VDb21wb25lbnQoIktleXdvcmRUeXBlIiksZj0oMCxIZS51c2VDYWxsYmFjaykoKCgpPT57bz9sKCk6cygpfSksW28scyxsXSksaD0oMCxIZS51c2VDYWxsYmFjaykoKChlLHQpPT57dD9zKHtkZWVwOiEwfSk6bCh7ZGVlcDohMH0pfSksW3MsbF0pO3JldHVybiBBcnJheS5pc0FycmF5KHQpJiYwIT09dC5sZW5ndGg/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGhzLlByb3ZpZGVyLHt2YWx1ZTphfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobXMuUHJvdmlkZXIse3ZhbHVlOmN9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1hbGxPZiIsImRhdGEtanNvbi1zY2hlbWEtbGV2ZWwiOml9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh1LHtleHBhbmRlZDpvLG9uQ2hhbmdlOmZ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJBbGwgb2YiKSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGQse2V4cGFuZGVkOm8sb25DbGljazpofSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG0se3NjaGVtYTp7YWxsT2Y6dH19KSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOigwLGhyLmRlZmF1bHQpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuIix7Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4tLWNvbGxhcHNlZCI6IW99KX0sbyYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEhlLmRlZmF1bHQuRnJhZ21lbnQsbnVsbCx0Lm1hcCgoKGUsdCk9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgibGkiLHtrZXk6YCMke3R9YCxjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHkifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocCx7bmFtZTpgIyR7dH0gJHtyLmdldFRpdGxlKGUpfWAsc2NoZW1hOmV9KSkpKSkpKSkpOm51bGx9O3ZhciBrZXl3b3Jkc19BbnlPZj0oe3NjaGVtYTplfSk9Pntjb25zdCB0PWU/LmFueU9mfHxbXSxyPXVzZUZuKCksbj0iYW55T2YiLHtwYXRoOmF9PXVzZVBhdGgobikse2lzRXhwYW5kZWQ6byxzZXRFeHBhbmRlZDpzLHNldENvbGxhcHNlZDpsfT11c2VJc0V4cGFuZGVkKG4pLFtpLGNdPXVzZUxldmVsKCksdT11c2VDb21wb25lbnQoIkFjY29yZGlvbiIpLGQ9dXNlQ29tcG9uZW50KCJFeHBhbmREZWVwQnV0dG9uIikscD11c2VDb21wb25lbnQoIkpTT05TY2hlbWEiKSxtPXVzZUNvbXBvbmVudCgiS2V5d29yZFR5cGUiKSxmPSgwLEhlLnVzZUNhbGxiYWNrKSgoKCk9PntvP2woKTpzKCl9KSxbbyxzLGxdKSxoPSgwLEhlLnVzZUNhbGxiYWNrKSgoKGUsdCk9Pnt0P3Moe2RlZXA6ITB9KTpsKHtkZWVwOiEwfSl9KSxbcyxsXSk7cmV0dXJuIEFycmF5LmlzQXJyYXkodCkmJjAhPT10Lmxlbmd0aD9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoaHMuUHJvdmlkZXIse3ZhbHVlOmF9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChtcy5Qcm92aWRlcix7dmFsdWU6Y30sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWFueU9mIiwiZGF0YS1qc29uLXNjaGVtYS1sZXZlbCI6aX0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHUse2V4cGFuZGVkOm8sb25DaGFuZ2U6Zn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIkFueSBvZiIpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoZCx7ZXhwYW5kZWQ6byxvbkNsaWNrOmh9KSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobSx7c2NoZW1hOnthbnlPZjp0fX0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidWwiLHtjbGFzc05hbWU6KDAsaHIuZGVmYXVsdCkoImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4iLHsianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkIjohb30pfSxvJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoSGUuZGVmYXVsdC5GcmFnbWVudCxudWxsLHQubWFwKCgoZSx0KT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJsaSIse2tleTpgIyR7dH1gLGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChwLHtuYW1lOmAjJHt0fSAke3IuZ2V0VGl0bGUoZSl9YCxzY2hlbWE6ZX0pKSkpKSkpKSk6bnVsbH07dmFyIGtleXdvcmRzX09uZU9mPSh7c2NoZW1hOmV9KT0+e2NvbnN0IHQ9ZT8ub25lT2Z8fFtdLHI9dXNlRm4oKSxuPSJvbmVPZiIse3BhdGg6YX09dXNlUGF0aChuKSx7aXNFeHBhbmRlZDpvLHNldEV4cGFuZGVkOnMsc2V0Q29sbGFwc2VkOmx9PXVzZUlzRXhwYW5kZWQobiksW2ksY109dXNlTGV2ZWwoKSx1PXVzZUNvbXBvbmVudCgiQWNjb3JkaW9uIiksZD11c2VDb21wb25lbnQoIkV4cGFuZERlZXBCdXR0b24iKSxwPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpLG09dXNlQ29tcG9uZW50KCJLZXl3b3JkVHlwZSIpLGY9KDAsSGUudXNlQ2FsbGJhY2spKCgoKT0+e28/bCgpOnMoKX0pLFtvLHMsbF0pLGg9KDAsSGUudXNlQ2FsbGJhY2spKCgoZSx0KT0+e3Q/cyh7ZGVlcDohMH0pOmwoe2RlZXA6ITB9KX0pLFtzLGxdKTtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmMCE9PXQubGVuZ3RoP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChocy5Qcm92aWRlcix7dmFsdWU6YX0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG1zLlByb3ZpZGVyLHt2YWx1ZTpjfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tb25lT2YiLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjppfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodSx7ZXhwYW5kZWQ6byxvbkNoYW5nZTpmfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnkifSwiT25lIG9mIikpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChkLHtleHBhbmRlZDpvLG9uQ2xpY2s6aH0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChtLHtzY2hlbWE6e29uZU9mOnR9fSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZTooMCxoci5kZWZhdWx0KSgianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbiIseyJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWQiOiFvfSl9LG8mJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChIZS5kZWZhdWx0LkZyYWdtZW50LG51bGwsdC5tYXAoKChlLHQpPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OmAjJHt0fWAsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHAse25hbWU6YCMke3R9ICR7ci5nZXRUaXRsZShlKX1gLHNjaGVtYTplfSkpKSkpKSkpKTpudWxsfTt2YXIga2V5d29yZHNfTm90PSh7c2NoZW1hOmV9KT0+e2NvbnN0IHQ9dXNlRm4oKSxyPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpO2lmKCF0Lmhhc0tleXdvcmQoZSwibm90IikpcmV0dXJuIG51bGw7Y29uc3Qgbj1IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnkifSwiTm90Iik7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1ub3QifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocix7bmFtZTpuLHNjaGVtYTplLm5vdCxpZGVudGlmaWVyOiJub3QifSkpfTt2YXIga2V5d29yZHNfSWY9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD11c2VGbigpLHI9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIik7aWYoIXQuaGFzS2V5d29yZChlLCJpZiIpKXJldHVybiBudWxsO2NvbnN0IG49SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIklmIik7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1pZiJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChyLHtuYW1lOm4sc2NoZW1hOmUuaWYsaWRlbnRpZmllcjoiaWYifSkpfTt2YXIga2V5d29yZHNfVGhlbj0oe3NjaGVtYTplfSk9Pntjb25zdCB0PXVzZUZuKCkscj11c2VDb21wb25lbnQoIkpTT05TY2hlbWEiKTtpZighdC5oYXNLZXl3b3JkKGUsInRoZW4iKSlyZXR1cm4gbnVsbDtjb25zdCBuPUhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJUaGVuIik7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS10aGVuIn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHIse25hbWU6bixzY2hlbWE6ZS50aGVuLGlkZW50aWZpZXI6InRoZW4ifSkpfTt2YXIga2V5d29yZHNfRWxzZT0oe3NjaGVtYTplfSk9Pntjb25zdCB0PXVzZUZuKCkscj11c2VDb21wb25lbnQoIkpTT05TY2hlbWEiKTtpZighdC5oYXNLZXl3b3JkKGUsImVsc2UiKSlyZXR1cm4gbnVsbDtjb25zdCBuPUhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJFbHNlIik7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1pZiJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChyLHtuYW1lOm4sc2NoZW1hOmUuZWxzZSxpZGVudGlmaWVyOiJlbHNlIn0pKX07dmFyIGtleXdvcmRzX0RlcGVuZGVudFNjaGVtYXM9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD1lPy5kZXBlbmRlbnRTY2hlbWFzfHxbXSxyPSJkZXBlbmRlbnRTY2hlbWFzIix7cGF0aDpufT11c2VQYXRoKHIpLHtpc0V4cGFuZGVkOmEsc2V0RXhwYW5kZWQ6byxzZXRDb2xsYXBzZWQ6c309dXNlSXNFeHBhbmRlZChyKSxbbCxpXT11c2VMZXZlbCgpLGM9dXNlQ29tcG9uZW50KCJBY2NvcmRpb24iKSx1PXVzZUNvbXBvbmVudCgiRXhwYW5kRGVlcEJ1dHRvbiIpLGQ9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIikscD0oMCxIZS51c2VDYWxsYmFjaykoKCgpPT57YT9zKCk6bygpfSksW2EsbyxzXSksbT0oMCxIZS51c2VDYWxsYmFjaykoKChlLHQpPT57dD9vKHtkZWVwOiEwfSk6cyh7ZGVlcDohMH0pfSksW28sc10pO3JldHVybiJvYmplY3QiIT10eXBlb2YgdHx8MD09PU9iamVjdC5rZXlzKHQpLmxlbmd0aD9udWxsOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChocy5Qcm92aWRlcix7dmFsdWU6bn0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG1zLlByb3ZpZGVyLHt2YWx1ZTppfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZGVwZW5kZW50U2NoZW1hcyIsImRhdGEtanNvbi1zY2hlbWEtbGV2ZWwiOmx9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChjLHtleHBhbmRlZDphLG9uQ2hhbmdlOnB9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJEZXBlbmRlbnQgc2NoZW1hcyIpKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodSx7ZXhwYW5kZWQ6YSxvbkNsaWNrOm19KSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInN0cm9uZyIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeSJ9LCJvYmplY3QiKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOigwLGhyLmRlZmF1bHQpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuIix7Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4tLWNvbGxhcHNlZCI6IWF9KX0sYSYmSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEhlLmRlZmF1bHQuRnJhZ21lbnQsbnVsbCxPYmplY3QuZW50cmllcyh0KS5tYXAoKChbZSx0XSk9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgibGkiLHtrZXk6ZSxjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHkifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoZCx7bmFtZTplLHNjaGVtYTp0fSkpKSkpKSkpKX07dmFyIGtleXdvcmRzX1ByZWZpeEl0ZW1zPSh7c2NoZW1hOmV9KT0+e2NvbnN0IHQ9ZT8ucHJlZml4SXRlbXN8fFtdLHI9dXNlRm4oKSxuPSJwcmVmaXhJdGVtcyIse3BhdGg6YX09dXNlUGF0aChuKSx7aXNFeHBhbmRlZDpvLHNldEV4cGFuZGVkOnMsc2V0Q29sbGFwc2VkOmx9PXVzZUlzRXhwYW5kZWQobiksW2ksY109dXNlTGV2ZWwoKSx1PXVzZUNvbXBvbmVudCgiQWNjb3JkaW9uIiksZD11c2VDb21wb25lbnQoIkV4cGFuZERlZXBCdXR0b24iKSxwPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpLG09dXNlQ29tcG9uZW50KCJLZXl3b3JkVHlwZSIpLGY9KDAsSGUudXNlQ2FsbGJhY2spKCgoKT0+e28/bCgpOnMoKX0pLFtvLHMsbF0pLGg9KDAsSGUudXNlQ2FsbGJhY2spKCgoZSx0KT0+e3Q/cyh7ZGVlcDohMH0pOmwoe2RlZXA6ITB9KX0pLFtzLGxdKTtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmMCE9PXQubGVuZ3RoP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChocy5Qcm92aWRlcix7dmFsdWU6YX0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG1zLlByb3ZpZGVyLHt2YWx1ZTpjfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tcHJlZml4SXRlbXMiLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjppfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodSx7ZXhwYW5kZWQ6byxvbkNoYW5nZTpmfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnkifSwiUHJlZml4IGl0ZW1zIikpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChkLHtleHBhbmRlZDpvLG9uQ2xpY2s6aH0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChtLHtzY2hlbWE6e3ByZWZpeEl0ZW1zOnR9fSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZTooMCxoci5kZWZhdWx0KSgianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbiIseyJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWQiOiFvfSl9LG8mJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChIZS5kZWZhdWx0LkZyYWdtZW50LG51bGwsdC5tYXAoKChlLHQpPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OmAjJHt0fWAsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHAse25hbWU6YCMke3R9ICR7ci5nZXRUaXRsZShlKX1gLHNjaGVtYTplfSkpKSkpKSkpKTpudWxsfTt2YXIga2V5d29yZHNfSXRlbXM9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD11c2VGbigpLHI9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIik7aWYoIXQuaGFzS2V5d29yZChlLCJpdGVtcyIpKXJldHVybiBudWxsO2NvbnN0IG49SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIkl0ZW1zIik7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1pdGVtcyJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChyLHtuYW1lOm4sc2NoZW1hOmUuaXRlbXMsaWRlbnRpZmllcjoiaXRlbXMifSkpfTt2YXIga2V5d29yZHNfQ29udGFpbnM9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD11c2VGbigpLHI9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIik7aWYoIXQuaGFzS2V5d29yZChlLCJjb250YWlucyIpKXJldHVybiBudWxsO2NvbnN0IG49SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIkNvbnRhaW5zIik7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1jb250YWlucyJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChyLHtuYW1lOm4sc2NoZW1hOmUuY29udGFpbnMsaWRlbnRpZmllcjoiY29udGFpbnMifSkpfTt2YXIga2V5d29yZHNfUHJvcGVydGllc19Qcm9wZXJ0aWVzPSh7c2NoZW1hOmV9KT0+e2NvbnN0IHQ9dXNlRm4oKSxyPWU/LnByb3BlcnRpZXN8fHt9LG49QXJyYXkuaXNBcnJheShlPy5yZXF1aXJlZCk/ZS5yZXF1aXJlZDpbXSxhPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpLHtwYXRoOm99PXVzZVBhdGgoInByb3BlcnRpZXMiKTtyZXR1cm4gMD09PU9iamVjdC5rZXlzKHIpLmxlbmd0aD9udWxsOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChocy5Qcm92aWRlcix7dmFsdWU6b30sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLXByb3BlcnRpZXMifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInVsIixudWxsLE9iamVjdC5lbnRyaWVzKHIpLm1hcCgoKFtyLG9dKT0+e2NvbnN0IHM9bi5pbmNsdWRlcyhyKSxsPXQuZ2V0RGVwZW5kZW50UmVxdWlyZWQocixlKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJsaSIse2tleTpyLGNsYXNzTmFtZTooMCxoci5kZWZhdWx0KSgianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSIseyJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5LS1yZXF1aXJlZCI6c30pfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYSx7bmFtZTpyLHNjaGVtYTpvLGRlcGVuZGVudFJlcXVpcmVkOmx9KSl9KSkpKSl9O3ZhciBQYXR0ZXJuUHJvcGVydGllc19QYXR0ZXJuUHJvcGVydGllcz0oe3NjaGVtYTplfSk9Pntjb25zdCB0PWU/LnBhdHRlcm5Qcm9wZXJ0aWVzfHx7fSxyPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpLHtwYXRoOm59PXVzZVBhdGgoInBhdHRlcm5Qcm9wZXJ0aWVzIik7cmV0dXJuIDA9PT1PYmplY3Qua2V5cyh0KS5sZW5ndGg/bnVsbDpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoaHMuUHJvdmlkZXIse3ZhbHVlOm59LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1wYXR0ZXJuUHJvcGVydGllcyJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgidWwiLG51bGwsT2JqZWN0LmVudHJpZXModCkubWFwKCgoW2UsdF0pPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OmUsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHIse25hbWU6ZSxzY2hlbWE6dH0pKSkpKSkpfTt2YXIga2V5d29yZHNfQWRkaXRpb25hbFByb3BlcnRpZXM9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD11c2VGbigpLHI9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIik7aWYoIXQuaGFzS2V5d29yZChlLCJhZGRpdGlvbmFsUHJvcGVydGllcyIpKXJldHVybiBudWxsO2NvbnN0IG49SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIkFkZGl0aW9uYWwgcHJvcGVydGllcyIpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tYWRkaXRpb25hbFByb3BlcnRpZXMifSwhMD09PWUuYWRkaXRpb25hbFByb3BlcnRpZXM/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEhlLmRlZmF1bHQuRnJhZ21lbnQsbnVsbCxuLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeSJ9LCJhbGxvd2VkIikpOiExPT09ZS5hZGRpdGlvbmFsUHJvcGVydGllcz9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoSGUuZGVmYXVsdC5GcmFnbWVudCxudWxsLG4sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5In0sImZvcmJpZGRlbiIpKTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocix7bmFtZTpuLHNjaGVtYTplLmFkZGl0aW9uYWxQcm9wZXJ0aWVzLGlkZW50aWZpZXI6ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIn0pKX07dmFyIGtleXdvcmRzX1Byb3BlcnR5TmFtZXM9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD11c2VGbigpLHI9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIiksbj1IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnkifSwiUHJvcGVydHkgbmFtZXMiKTtyZXR1cm4gdC5oYXNLZXl3b3JkKGUsInByb3BlcnR5TmFtZXMiKT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tcHJvcGVydHlOYW1lcyJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChyLHtuYW1lOm4sc2NoZW1hOmUucHJvcGVydHlOYW1lcyxpZGVudGlmaWVyOiJwcm9wZXJ0eU5hbWVzIn0pKTpudWxsfTt2YXIga2V5d29yZHNfVW5ldmFsdWF0ZWRJdGVtcz0oe3NjaGVtYTplfSk9Pntjb25zdCB0PXVzZUZuKCkscj11c2VDb21wb25lbnQoIkpTT05TY2hlbWEiKTtpZighdC5oYXNLZXl3b3JkKGUsInVuZXZhbHVhdGVkSXRlbXMiKSlyZXR1cm4gbnVsbDtjb25zdCBuPUhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJVbmV2YWx1YXRlZCBpdGVtcyIpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tdW5ldmFsdWF0ZWRJdGVtcyJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChyLHtuYW1lOm4sc2NoZW1hOmUudW5ldmFsdWF0ZWRJdGVtcyxpZGVudGlmaWVyOiJ1bmV2YWx1YXRlZEl0ZW1zIn0pKX07dmFyIGtleXdvcmRzX1VuZXZhbHVhdGVkUHJvcGVydGllcz0oe3NjaGVtYTplfSk9Pntjb25zdCB0PXVzZUZuKCkscj11c2VDb21wb25lbnQoIkpTT05TY2hlbWEiKTtpZighdC5oYXNLZXl3b3JkKGUsInVuZXZhbHVhdGVkUHJvcGVydGllcyIpKXJldHVybiBudWxsO2NvbnN0IG49SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIlVuZXZhbHVhdGVkIHByb3BlcnRpZXMiKTtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLXVuZXZhbHVhdGVkUHJvcGVydGllcyJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChyLHtuYW1lOm4sc2NoZW1hOmUudW5ldmFsdWF0ZWRQcm9wZXJ0aWVzLGlkZW50aWZpZXI6InVuZXZhbHVhdGVkUHJvcGVydGllcyJ9KSl9O3ZhciBrZXl3b3Jkc19UeXBlPSh7c2NoZW1hOmUsaXNDaXJjdWxhcjp0PSExfSk9Pntjb25zdCByPXVzZUZuKCkuZ2V0VHlwZShlKSxuPXQ/IiBbY2lyY3VsYXJdIjoiIjtyZXR1cm4gSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzdHJvbmciLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnkifSxgJHtyfSR7bn1gKX07dmFyIEVudW1fRW51bT0oe3NjaGVtYTplfSk9Pntjb25zdCB0PXVzZUNvbXBvbmVudCgiSlNPTlZpZXdlciIpO3JldHVybiBBcnJheS5pc0FycmF5KGU/LmVudW0pP0hlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh0LHtuYW1lOiJFbnVtIix2YWx1ZTplLmVudW0sY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1lbnVtIn0pOm51bGx9O3ZhciBDb25zdF9Db25zdD0oe3NjaGVtYTplfSk9Pntjb25zdCB0PXVzZUZuKCkscj11c2VDb21wb25lbnQoIkpTT05WaWV3ZXIiKTtyZXR1cm4gdC5oYXNLZXl3b3JkKGUsImNvbnN0Iik/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHIse25hbWU6IkNvbnN0Iix2YWx1ZTplLmNvbnN0LGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tY29uc3QifSk6bnVsbH07Y29uc3QgZm5fdXBwZXJGaXJzdD1lPT4ic3RyaW5nIj09dHlwZW9mIGU/YCR7ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke2Uuc2xpY2UoMSl9YDplLG1ha2VHZXRUaXRsZT1lPT4odCx7bG9va3VwOnI9ImV4dGVuZGVkIn09e30pPT57Y29uc3Qgbj1lKCk7aWYobnVsbCE9dD8udGl0bGUpcmV0dXJuIG4udXBwZXJGaXJzdChTdHJpbmcodC50aXRsZSkpO2lmKCJleHRlbmRlZCI9PT1yKXtpZihudWxsIT10Py4kYW5jaG9yKXJldHVybiBuLnVwcGVyRmlyc3QoU3RyaW5nKHQuJGFuY2hvcikpO2lmKG51bGwhPXQ/LiRpZClyZXR1cm4gU3RyaW5nKHQuJGlkKX1yZXR1cm4iIn0sbWFrZUdldFR5cGU9ZT0+e2NvbnN0IGdldFR5cGU9KHQscj1uZXcgV2Vha1NldCk9Pntjb25zdCBuPWUoKTtpZihudWxsPT10KXJldHVybiJhbnkiO2lmKG4uaXNCb29sZWFuSlNPTlNjaGVtYSh0KSlyZXR1cm4gdD8iYW55IjoibmV2ZXIiO2lmKCJvYmplY3QiIT10eXBlb2YgdClyZXR1cm4iYW55IjtpZihyLmhhcyh0KSlyZXR1cm4iYW55IjtyLmFkZCh0KTtjb25zdHt0eXBlOmEscHJlZml4SXRlbXM6byxpdGVtczpzfT10LGdldEFycmF5VHlwZT0oKT0+e2lmKEFycmF5LmlzQXJyYXkobykpe2NvbnN0IGU9by5tYXAoKGU9PmdldFR5cGUoZSxyKSkpLHQ9cz9nZXRUeXBlKHMscik6ImFueSI7cmV0dXJuYGFycmF5PFske2Uuam9pbigiLCAiKX1dLCAke3R9PmB9aWYocyl7cmV0dXJuYGFycmF5PCR7Z2V0VHlwZShzLHIpfT5gfXJldHVybiJhcnJheTxhbnk+In07aWYodC5ub3QmJiJhbnkiPT09Z2V0VHlwZSh0Lm5vdCkpcmV0dXJuIm5ldmVyIjtjb25zdCBoYW5kbGVDb21iaW5pbmdLZXl3b3Jkcz0oZSxuKT0+e2lmKEFycmF5LmlzQXJyYXkodFtlXSkpe3JldHVybmAoJHt0W2VdLm1hcCgoZT0+Z2V0VHlwZShlLHIpKSkuam9pbihuKX0pYH1yZXR1cm4gbnVsbH0sbD1bQXJyYXkuaXNBcnJheShhKT9hLm1hcCgoZT0+ImFycmF5Ij09PWU/Z2V0QXJyYXlUeXBlKCk6ZSkpLmpvaW4oIiB8ICIpOiJhcnJheSI9PT1hP2dldEFycmF5VHlwZSgpOlsibnVsbCIsImJvb2xlYW4iLCJvYmplY3QiLCJhcnJheSIsIm51bWJlciIsImludGVnZXIiLCJzdHJpbmciXS5pbmNsdWRlcyhhKT9hOigoKT0+e2lmKE9iamVjdC5oYXNPd24odCwicHJlZml4SXRlbXMiKXx8T2JqZWN0Lmhhc093bih0LCJpdGVtcyIpfHxPYmplY3QuaGFzT3duKHQsImNvbnRhaW5zIikpcmV0dXJuIGdldEFycmF5VHlwZSgpO2lmKE9iamVjdC5oYXNPd24odCwicHJvcGVydGllcyIpfHxPYmplY3QuaGFzT3duKHQsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIil8fE9iamVjdC5oYXNPd24odCwicGF0dGVyblByb3BlcnRpZXMiKSlyZXR1cm4ib2JqZWN0IjtpZihbImludDMyIiwiaW50NjQiXS5pbmNsdWRlcyh0LmZvcm1hdCkpcmV0dXJuImludGVnZXIiO2lmKFsiZmxvYXQiLCJkb3VibGUiXS5pbmNsdWRlcyh0LmZvcm1hdCkpcmV0dXJuIm51bWJlciI7aWYoT2JqZWN0Lmhhc093bih0LCJtaW5pbXVtIil8fE9iamVjdC5oYXNPd24odCwibWF4aW11bSIpfHxPYmplY3QuaGFzT3duKHQsImV4Y2x1c2l2ZU1pbmltdW0iKXx8T2JqZWN0Lmhhc093bih0LCJleGNsdXNpdmVNYXhpbXVtIil8fE9iamVjdC5oYXNPd24odCwibXVsdGlwbGVPZiIpKXJldHVybiJudW1iZXIgfCBpbnRlZ2VyIjtpZihPYmplY3QuaGFzT3duKHQsInBhdHRlcm4iKXx8T2JqZWN0Lmhhc093bih0LCJmb3JtYXQiKXx8T2JqZWN0Lmhhc093bih0LCJtaW5MZW5ndGgiKXx8T2JqZWN0Lmhhc093bih0LCJtYXhMZW5ndGgiKXx8T2JqZWN0Lmhhc093bih0LCJjb250ZW50RW5jb2RpbmciKXx8T2JqZWN0Lmhhc093bih0LCJjb250ZW50TWVkaWFUeXBlIikpcmV0dXJuInN0cmluZyI7aWYodm9pZCAwIT09dC5jb25zdCl7aWYobnVsbD09PXQuY29uc3QpcmV0dXJuIm51bGwiO2lmKCJib29sZWFuIj09dHlwZW9mIHQuY29uc3QpcmV0dXJuImJvb2xlYW4iO2lmKCJudW1iZXIiPT10eXBlb2YgdC5jb25zdClyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcih0LmNvbnN0KT8iaW50ZWdlciI6Im51bWJlciI7aWYoInN0cmluZyI9PXR5cGVvZiB0LmNvbnN0KXJldHVybiJzdHJpbmciO2lmKEFycmF5LmlzQXJyYXkodC5jb25zdCkpcmV0dXJuImFycmF5PGFueT4iO2lmKCJvYmplY3QiPT10eXBlb2YgdC5jb25zdClyZXR1cm4ib2JqZWN0In1yZXR1cm4gbnVsbH0pKCksaGFuZGxlQ29tYmluaW5nS2V5d29yZHMoIm9uZU9mIiwiIHwgIiksaGFuZGxlQ29tYmluaW5nS2V5d29yZHMoImFueU9mIiwiIHwgIiksaGFuZGxlQ29tYmluaW5nS2V5d29yZHMoImFsbE9mIiwiICYgIildLmZpbHRlcihCb29sZWFuKS5qb2luKCIgfCAiKTtyZXR1cm4gci5kZWxldGUodCksbHx8ImFueSJ9O3JldHVybiBnZXRUeXBlfSxpc0Jvb2xlYW5KU09OU2NoZW1hPWU9PiJib29sZWFuIj09dHlwZW9mIGUsaGFzS2V5d29yZD0oZSx0KT0+bnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZSYmT2JqZWN0Lmhhc093bihlLHQpLGZuX21ha2VJc0V4cGFuZGFibGU9ZT0+dD0+e2NvbnN0IHI9ZSgpO3JldHVybiB0Py4kc2NoZW1hfHx0Py4kdm9jYWJ1bGFyeXx8dD8uJGlkfHx0Py4kYW5jaG9yfHx0Py4kZHluYW1pY0FuY2hvcnx8dD8uJHJlZnx8dD8uJGR5bmFtaWNSZWZ8fHQ/LiRkZWZzfHx0Py4kY29tbWVudHx8dD8uYWxsT2Z8fHQ/LmFueU9mfHx0Py5vbmVPZnx8ci5oYXNLZXl3b3JkKHQsIm5vdCIpfHxyLmhhc0tleXdvcmQodCwiaWYiKXx8ci5oYXNLZXl3b3JkKHQsInRoZW4iKXx8ci5oYXNLZXl3b3JkKHQsImVsc2UiKXx8dD8uZGVwZW5kZW50U2NoZW1hc3x8dD8ucHJlZml4SXRlbXN8fHIuaGFzS2V5d29yZCh0LCJpdGVtcyIpfHxyLmhhc0tleXdvcmQodCwiY29udGFpbnMiKXx8dD8ucHJvcGVydGllc3x8dD8ucGF0dGVyblByb3BlcnRpZXN8fHIuaGFzS2V5d29yZCh0LCJhZGRpdGlvbmFsUHJvcGVydGllcyIpfHxyLmhhc0tleXdvcmQodCwicHJvcGVydHlOYW1lcyIpfHxyLmhhc0tleXdvcmQodCwidW5ldmFsdWF0ZWRJdGVtcyIpfHxyLmhhc0tleXdvcmQodCwidW5ldmFsdWF0ZWRQcm9wZXJ0aWVzIil8fHQ/LmRlc2NyaXB0aW9ufHx0Py5lbnVtfHxyLmhhc0tleXdvcmQodCwiY29uc3QiKXx8ci5oYXNLZXl3b3JkKHQsImNvbnRlbnRTY2hlbWEiKXx8ci5oYXNLZXl3b3JkKHQsImRlZmF1bHQiKXx8dD8uZXhhbXBsZXN8fHIuZ2V0RXh0ZW5zaW9uS2V5d29yZHModCkubGVuZ3RoPjB9LGZuX3N0cmluZ2lmeT1lPT5udWxsPT09ZXx8WyJudW1iZXIiLCJiaWdpbnQiLCJib29sZWFuIl0uaW5jbHVkZXModHlwZW9mIGUpP1N0cmluZyhlKTpBcnJheS5pc0FycmF5KGUpP2BbJHtlLm1hcChmbl9zdHJpbmdpZnkpLmpvaW4oIiwgIil9XWA6SlNPTi5zdHJpbmdpZnkoZSksc3RyaW5naWZ5Q29uc3RyYWludFJhbmdlPShlLHQscik9Pntjb25zdCBuPSJudW1iZXIiPT10eXBlb2YgdCxhPSJudW1iZXIiPT10eXBlb2YgcjtyZXR1cm4gbiYmYT90PT09cj9gJHt0fSAke2V9YDpgWyR7dH0sICR7cn1dICR7ZX1gOm4/YOKJpSAke3R9ICR7ZX1gOmE/YOKJpCAke3J9ICR7ZX1gOm51bGx9LHN0cmluZ2lmeUNvbnN0cmFpbnRzPWU9Pntjb25zdCB0PVtdLHI9KGU9PntpZigibnVtYmVyIiE9dHlwZW9mIGU/Lm11bHRpcGxlT2YpcmV0dXJuIG51bGw7aWYoZS5tdWx0aXBsZU9mPD0wKXJldHVybiBudWxsO2lmKDE9PT1lLm11bHRpcGxlT2YpcmV0dXJuIG51bGw7Y29uc3R7bXVsdGlwbGVPZjp0fT1lO2lmKE51bWJlci5pc0ludGVnZXIodCkpcmV0dXJuYG11bHRpcGxlIG9mICR7dH1gO2NvbnN0IHI9MTAqKnQudG9TdHJpbmcoKS5zcGxpdCgiLiIpWzFdLmxlbmd0aDtyZXR1cm5gbXVsdGlwbGUgb2YgJHt0KnJ9LyR7cn1gfSkoZSk7bnVsbCE9PXImJnQucHVzaCh7c2NvcGU6Im51bWJlciIsdmFsdWU6cn0pO2NvbnN0IG49KGU9Pntjb25zdCB0PWU/Lm1pbmltdW0scj1lPy5tYXhpbXVtLG49ZT8uZXhjbHVzaXZlTWluaW11bSxhPWU/LmV4Y2x1c2l2ZU1heGltdW0sbz0ibnVtYmVyIj09dHlwZW9mIHQscz0ibnVtYmVyIj09dHlwZW9mIHIsbD0ibnVtYmVyIj09dHlwZW9mIG4saT0ibnVtYmVyIj09dHlwZW9mIGEsYz1sJiYoIW98fHQ8biksdT1pJiYoIXN8fHI+YSk7aWYoKG98fGwpJiYoc3x8aSkpcmV0dXJuYCR7Yz8iKCI6IlsifSR7Yz9uOnR9LCAke3U/YTpyfSR7dT8iKSI6Il0ifWA7aWYob3x8bClyZXR1cm5gJHtjPyI+Ijoi4omlIn0gJHtjP246dH1gO2lmKHN8fGkpcmV0dXJuYCR7dT8iPCI6IuKJpCJ9ICR7dT9hOnJ9YDtyZXR1cm4gbnVsbH0pKGUpO251bGwhPT1uJiZ0LnB1c2goe3Njb3BlOiJudW1iZXIiLHZhbHVlOm59KSxlPy5mb3JtYXQmJnQucHVzaCh7c2NvcGU6InN0cmluZyIsdmFsdWU6ZS5mb3JtYXR9KTtjb25zdCBhPXN0cmluZ2lmeUNvbnN0cmFpbnRSYW5nZSgiY2hhcmFjdGVycyIsZT8ubWluTGVuZ3RoLGU/Lm1heExlbmd0aCk7bnVsbCE9PWEmJnQucHVzaCh7c2NvcGU6InN0cmluZyIsdmFsdWU6YX0pLGU/LnBhdHRlcm4mJnQucHVzaCh7c2NvcGU6InN0cmluZyIsdmFsdWU6YG1hdGNoZXMgJHtlPy5wYXR0ZXJufWB9KSxlPy5jb250ZW50TWVkaWFUeXBlJiZ0LnB1c2goe3Njb3BlOiJzdHJpbmciLHZhbHVlOmBtZWRpYSB0eXBlOiAke2UuY29udGVudE1lZGlhVHlwZX1gfSksZT8uY29udGVudEVuY29kaW5nJiZ0LnB1c2goe3Njb3BlOiJzdHJpbmciLHZhbHVlOmBlbmNvZGluZzogJHtlLmNvbnRlbnRFbmNvZGluZ31gfSk7Y29uc3Qgbz1zdHJpbmdpZnlDb25zdHJhaW50UmFuZ2UoZT8udW5pcXVlSXRlbXM/InVuaXF1ZSBpdGVtcyI6Iml0ZW1zIixlPy5taW5JdGVtcyxlPy5tYXhJdGVtcyk7bnVsbCE9PW8mJnQucHVzaCh7c2NvcGU6ImFycmF5Iix2YWx1ZTpvfSksZT8udW5pcXVlSXRlbXMmJiFvJiZ0LnB1c2goe3Njb3BlOiJhcnJheSIsdmFsdWU6InVuaXF1ZSJ9KTtjb25zdCBzPXN0cmluZ2lmeUNvbnN0cmFpbnRSYW5nZSgiY29udGFpbmVkIGl0ZW1zIixlPy5taW5Db250YWlucyxlPy5tYXhDb250YWlucyk7bnVsbCE9PXMmJnQucHVzaCh7c2NvcGU6ImFycmF5Iix2YWx1ZTpzfSk7Y29uc3QgbD1zdHJpbmdpZnlDb25zdHJhaW50UmFuZ2UoInByb3BlcnRpZXMiLGU/Lm1pblByb3BlcnRpZXMsZT8ubWF4UHJvcGVydGllcyk7cmV0dXJuIG51bGwhPT1sJiZ0LnB1c2goe3Njb3BlOiJvYmplY3QiLHZhbHVlOmx9KSx0fSxnZXREZXBlbmRlbnRSZXF1aXJlZD0oZSx0KT0+dD8uZGVwZW5kZW50UmVxdWlyZWQ/QXJyYXkuZnJvbShPYmplY3QuZW50cmllcyh0LmRlcGVuZGVudFJlcXVpcmVkKS5yZWR1Y2UoKCh0LFtyLG5dKT0+QXJyYXkuaXNBcnJheShuKSYmbi5pbmNsdWRlcyhlKT8odC5hZGQociksdCk6dCksbmV3IFNldCkpOltdLGlzUGxhaW5PYmplY3Q9ZT0+Im9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmIUFycmF5LmlzQXJyYXkoZSkmJihudWxsPT09T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1PYmplY3QucHJvdG90eXBlKSxnZXRTY2hlbWFLZXl3b3Jkcz0oKT0+WyIkc2NoZW1hIiwiJHZvY2FidWxhcnkiLCIkaWQiLCIkYW5jaG9yIiwiJGR5bmFtaWNBbmNob3IiLCIkZHluYW1pY1JlZiIsIiRyZWYiLCIkZGVmcyIsIiRjb21tZW50IiwiYWxsT2YiLCJhbnlPZiIsIm9uZU9mIiwibm90IiwiaWYiLCJ0aGVuIiwiZWxzZSIsImRlcGVuZGVudFNjaGVtYXMiLCJwcmVmaXhJdGVtcyIsIml0ZW1zIiwiY29udGFpbnMiLCJwcm9wZXJ0aWVzIiwicGF0dGVyblByb3BlcnRpZXMiLCJhZGRpdGlvbmFsUHJvcGVydGllcyIsInByb3BlcnR5TmFtZXMiLCJ1bmV2YWx1YXRlZEl0ZW1zIiwidW5ldmFsdWF0ZWRQcm9wZXJ0aWVzIiwidHlwZSIsImVudW0iLCJjb25zdCIsIm11bHRpcGxlT2YiLCJtYXhpbXVtIiwiZXhjbHVzaXZlTWF4aW11bSIsIm1pbmltdW0iLCJleGNsdXNpdmVNaW5pbXVtIiwibWF4TGVuZ3RoIiwibWluTGVuZ3RoIiwicGF0dGVybiIsIm1heEl0ZW1zIiwibWluSXRlbXMiLCJ1bmlxdWVJdGVtcyIsIm1heENvbnRhaW5zIiwibWluQ29udGFpbnMiLCJtYXhQcm9wZXJ0aWVzIiwibWluUHJvcGVydGllcyIsInJlcXVpcmVkIiwiZGVwZW5kZW50UmVxdWlyZWQiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiZGVmYXVsdCIsImRlcHJlY2F0ZWQiLCJyZWFkT25seSIsIndyaXRlT25seSIsImV4YW1wbGVzIiwiZm9ybWF0IiwiY29udGVudEVuY29kaW5nIiwiY29udGVudE1lZGlhVHlwZSIsImNvbnRlbnRTY2hlbWEiXSxtYWtlR2V0RXh0ZW5zaW9uS2V5d29yZHM9ZT0+dD0+e2NvbnN0IHI9ZSgpLmdldFNjaGVtYUtleXdvcmRzKCk7cmV0dXJuIGlzUGxhaW5PYmplY3QodCk/KChlLHQpPT57Y29uc3Qgcj1uZXcgU2V0KHQpO3JldHVybiBlLmZpbHRlcigoZT0+IXIuaGFzKGUpKSl9KShPYmplY3Qua2V5cyh0KSxyKTpbXX0sZm5faGFzU2NoZW1hVHlwZT0oZSx0KT0+e2NvbnN0IHI9WGUuTWFwLmlzTWFwKGUpO2lmKCFyJiYhaXNQbGFpbk9iamVjdChlKSlyZXR1cm4hMTtjb25zdCBoYXNUeXBlPWU9PnQ9PT1lfHxBcnJheS5pc0FycmF5KHQpJiZ0LmluY2x1ZGVzKGUpLG49cj9lLmdldCgidHlwZSIpOmUudHlwZTtyZXR1cm4gWGUuTGlzdC5pc0xpc3Qobil8fEFycmF5LmlzQXJyYXkobik/bi5zb21lKChlPT5oYXNUeXBlKGUpKSk6aGFzVHlwZShuKX0sQ29uc3RyYWludD0oe2NvbnN0cmFpbnQ6ZX0pPT5pc1BsYWluT2JqZWN0KGUpJiYic3RyaW5nIj09dHlwZW9mIGUuc2NvcGUmJiJzdHJpbmciPT10eXBlb2YgZS52YWx1ZT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YGpzb24tc2NoZW1hLTIwMjAtMTJfX2NvbnN0cmFpbnQganNvbi1zY2hlbWEtMjAyMC0xMl9fY29uc3RyYWludC0tJHtlLnNjb3BlfWB9LGUudmFsdWUpOm51bGw7dmFyIEVzPUhlLmRlZmF1bHQubWVtbyhDb25zdHJhaW50KTt2YXIgRGVwZW5kZW50UmVxdWlyZWRfRGVwZW5kZW50UmVxdWlyZWQ9KHtkZXBlbmRlbnRSZXF1aXJlZDplfSk9PkFycmF5LmlzQXJyYXkoZSkmJjAhPT1lLmxlbmd0aD9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZGVwZW5kZW50UmVxdWlyZWQifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnkifSwiUmVxdWlyZWQgd2hlbiBkZWZpbmVkIiksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ1bCIsbnVsbCxlLm1hcCgoZT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJsaSIse2tleTplfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0td2FybmluZyJ9LGUpKSkpKSk6bnVsbDt2YXIga2V5d29yZHNfQ29udGVudFNjaGVtYT0oe3NjaGVtYTplfSk9Pntjb25zdCB0PXVzZUZuKCkscj11c2VDb21wb25lbnQoIkpTT05TY2hlbWEiKTtpZighdC5oYXNLZXl3b3JkKGUsImNvbnRlbnRTY2hlbWEiKSlyZXR1cm4gbnVsbDtjb25zdCBuPUhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJDb250ZW50IHNjaGVtYSIpO3JldHVybiBIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tY29udGVudFNjaGVtYSJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChyLHtuYW1lOm4sc2NoZW1hOmUuY29udGVudFNjaGVtYSxpZGVudGlmaWVyOiJjb250ZW50U2NoZW1hIn0pKX07dmFyIFRpdGxlX1RpdGxlPSh7dGl0bGU6ZT0iIixzY2hlbWE6dH0pPT57Y29uc3Qgcj11c2VGbigpLG49ZXx8ci5nZXRUaXRsZSh0KTtyZXR1cm4gbj9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fdGl0bGUifSxuKTpudWxsfTt2YXIga2V5d29yZHNfRGVzY3JpcHRpb25fRGVzY3JpcHRpb249KHtzY2hlbWE6ZX0pPT5lPy5kZXNjcmlwdGlvbj9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZGVzY3JpcHRpb24ifSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1jb3JlLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTItY29yZS1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0sZS5kZXNjcmlwdGlvbikpOm51bGw7dmFyIERlZmF1bHRfRGVmYXVsdD0oe3NjaGVtYTplfSk9Pntjb25zdCB0PXVzZUZuKCkscj11c2VDb21wb25lbnQoIkpTT05WaWV3ZXIiKTtyZXR1cm4gdC5oYXNLZXl3b3JkKGUsImRlZmF1bHQiKT9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocix7bmFtZToiRGVmYXVsdCIsdmFsdWU6ZS5kZWZhdWx0LGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZGVmYXVsdCJ9KTpudWxsfTt2YXIga2V5d29yZHNfRGVwcmVjYXRlZD0oe3NjaGVtYTplfSk9PiEwIT09ZT8uZGVwcmVjYXRlZD9udWxsOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0td2FybmluZyJ9LCJkZXByZWNhdGVkIik7dmFyIGtleXdvcmRzX1JlYWRPbmx5PSh7c2NoZW1hOmV9KT0+ITAhPT1lPy5yZWFkT25seT9udWxsOkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tbXV0ZWQifSwicmVhZC1vbmx5Iik7dmFyIGtleXdvcmRzX1dyaXRlT25seT0oe3NjaGVtYTplfSk9PiEwIT09ZT8ud3JpdGVPbmx5P251bGw6SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1tdXRlZCJ9LCJ3cml0ZS1vbmx5Iik7dmFyIGtleXdvcmRzX0V4YW1wbGVzX0V4YW1wbGVzPSh7c2NoZW1hOmV9KT0+e2NvbnN0IHQ9ZT8uZXhhbXBsZXN8fFtdLHI9dXNlQ29tcG9uZW50KCJKU09OVmlld2VyIik7cmV0dXJuIEFycmF5LmlzQXJyYXkodCkmJjAhPT10Lmxlbmd0aD9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocix7bmFtZToiRXhhbXBsZXMiLHZhbHVlOmUuZXhhbXBsZXMsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1leGFtcGxlcyJ9KTpudWxsfTt2YXIgRXh0ZW5zaW9uS2V5d29yZHNfRXh0ZW5zaW9uS2V5d29yZHM9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD11c2VGbigpLHI9IkV4dGVuc2lvbktleXdvcmRzIix7cGF0aDpufT11c2VQYXRoKHIpLHtpc0V4cGFuZGVkOmEsc2V0RXhwYW5kZWQ6byxzZXRDb2xsYXBzZWQ6c309dXNlSXNFeHBhbmRlZChyKSxbbCxpXT11c2VMZXZlbCgpLGM9dXNlQ29tcG9uZW50KCJBY2NvcmRpb24iKSx1PXVzZUNvbXBvbmVudCgiRXhwYW5kRGVlcEJ1dHRvbiIpLGQ9dXNlQ29tcG9uZW50KCJKU09OVmlld2VyIikse3Nob3dFeHRlbnNpb25LZXl3b3JkczpwfT11c2VDb25maWcoKSxtPXQuZ2V0RXh0ZW5zaW9uS2V5d29yZHMoZSksZj0oMCxIZS51c2VDYWxsYmFjaykoKCgpPT57YT9zKCk6bygpfSksW2EsbyxzXSksaD0oMCxIZS51c2VDYWxsYmFjaykoKChlLHQpPT57dD9vKHtkZWVwOiEwfSk6cyh7ZGVlcDohMH0pfSksW28sc10pO3JldHVybiBwJiYwIT09bS5sZW5ndGg/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGhzLlByb3ZpZGVyLHt2YWx1ZTpufSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobXMuUHJvdmlkZXIse3ZhbHVlOml9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1leHRlbnNpb24ta2V5d29yZHMiLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjpsfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYyx7ZXhwYW5kZWQ6YSxvbkNoYW5nZTpmfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLWV4dGVuc2lvbiJ9LCJFeHRlbnNpb24gS2V5d29yZHMiKSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHUse2V4cGFuZGVkOmEsb25DbGljazpofSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZTooMCxoci5kZWZhdWx0KSgianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbiIseyJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWQiOiFhfSl9LGEmJkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChIZS5kZWZhdWx0LkZyYWdtZW50LG51bGwsbS5tYXAoKHQ9PkhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChkLHtrZXk6dCxuYW1lOnQsdmFsdWU6ZVt0XSxjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXItZXh0ZW5zaW9uLWtleXdvcmQifSkpKSkpKSkpOm51bGx9O2NvbnN0IEpTT05WaWV3ZXI9KHtuYW1lOmUsdmFsdWU6dCxjbGFzc05hbWU6cn0pPT57Y29uc3Qgbj11c2VGbigpLHtwYXRoOmF9PXVzZVBhdGgoZSkse2lzRXhwYW5kZWQ6byxzZXRFeHBhbmRlZDpzLHNldENvbGxhcHNlZDpsfT11c2VJc0V4cGFuZGVkKGUpLFtpLGNdPXVzZUxldmVsKCksdT11c2VDb21wb25lbnQoIkFjY29yZGlvbiIpLGQ9dXNlQ29tcG9uZW50KCJFeHBhbmREZWVwQnV0dG9uIikscD0ic3RyaW5nIj09dHlwZW9mIHR8fCJudW1iZXIiPT10eXBlb2YgdHx8ImJpZ2ludCI9PXR5cGVvZiB0fHwiYm9vbGVhbiI9PXR5cGVvZiB0fHwic3ltYm9sIj09dHlwZW9mIHR8fG51bGw9PXQsbT0oZT0+aXNQbGFpbk9iamVjdChlKSYmMD09PU9iamVjdC5rZXlzKGUpLmxlbmd0aCkodCl8fChlPT5BcnJheS5pc0FycmF5KGUpJiYwPT09ZS5sZW5ndGgpKHQpLGY9KDAsSGUudXNlQ2FsbGJhY2spKCgoKT0+e28/bCgpOnMoKX0pLFtvLHMsbF0pLGg9KDAsSGUudXNlQ2FsbGJhY2spKCgoZSx0KT0+e3Q/cyh7ZGVlcDohMH0pOmwoe2RlZXA6ITB9KX0pLFtzLGxdKTtyZXR1cm4gcD9IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTooMCxoci5kZWZhdWx0KSgianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlciIscil9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19uYW1lLS1zZWNvbmRhcnkifSxlKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX3ZhbHVlLS1zZWNvbmRhcnkifSxuLnN0cmluZ2lmeSh0KSkpOm0/SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6KDAsaHIuZGVmYXVsdCkoImpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXIiLHIpfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fbmFtZS0tc2Vjb25kYXJ5In0sZSksSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzdHJvbmciLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnkifSxBcnJheS5pc0FycmF5KHQpPyJlbXB0eSBhcnJheSI6ImVtcHR5IG9iamVjdCIpKTpIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoaHMuUHJvdmlkZXIse3ZhbHVlOmF9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChtcy5Qcm92aWRlcix7dmFsdWU6Y30sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6KDAsaHIuZGVmYXVsdCkoImpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXIiLHIpLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjppfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodSx7ZXhwYW5kZWQ6byxvbkNoYW5nZTpmfSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fbmFtZS0tc2Vjb25kYXJ5In0sZSkpLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChkLHtleHBhbmRlZDpvLG9uQ2xpY2s6aH0pLEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3Ryb25nIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5In0sQXJyYXkuaXNBcnJheSh0KT8iYXJyYXkiOiJvYmplY3QiKSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOigwLGhyLmRlZmF1bHQpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19jaGlsZHJlbiIseyJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19jaGlsZHJlbi0tY29sbGFwc2VkIjohb30pfSxvJiZIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoSGUuZGVmYXVsdC5GcmFnbWVudCxudWxsLEFycmF5LmlzQXJyYXkodCk/dC5tYXAoKChlLHQpPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OmAjJHt0fWAsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEpTT05WaWV3ZXIse25hbWU6YCMke3R9YCx2YWx1ZTplLGNsYXNzTmFtZTpyfSkpKSk6T2JqZWN0LmVudHJpZXModCkubWFwKCgoW2UsdF0pPT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OmUsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEpTT05WaWV3ZXIse25hbWU6ZSx2YWx1ZTp0LGNsYXNzTmFtZTpyfSkpKSkpKSkpKX07dmFyIFNzPUpTT05WaWV3ZXI7dmFyIEFjY29yZGlvbl9BY2NvcmRpb249KHtleHBhbmRlZDplPSExLGNoaWxkcmVuOnQsb25DaGFuZ2U6cn0pPT57Y29uc3Qgbj11c2VDb21wb25lbnQoIkNoZXZyb25SaWdodEljb24iKSxhPSgwLEhlLnVzZUNhbGxiYWNrKSgodD0+e3IodCwhZSl9KSxbZSxyXSk7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItYWNjb3JkaW9uIixvbkNsaWNrOmF9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWFjY29yZGlvbl9fY2hpbGRyZW4ifSx0KSxIZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6KDAsaHIuZGVmYXVsdCkoImpzb24tc2NoZW1hLTIwMjAtMTItYWNjb3JkaW9uX19pY29uIix7Impzb24tc2NoZW1hLTIwMjAtMTItYWNjb3JkaW9uX19pY29uLS1leHBhbmRlZCI6ZSwianNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb25fX2ljb24tLWNvbGxhcHNlZCI6IWV9KX0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG4sbnVsbCkpKX07dmFyIEV4cGFuZERlZXBCdXR0b25fRXhwYW5kRGVlcEJ1dHRvbj0oe2V4cGFuZGVkOmUsb25DbGljazp0fSk9Pntjb25zdCByPSgwLEhlLnVzZUNhbGxiYWNrKSgocj0+e3QociwhZSl9KSxbZSx0XSk7cmV0dXJuIEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItZXhwYW5kLWRlZXAtYnV0dG9uIixvbkNsaWNrOnJ9LGU/IkNvbGxhcHNlIGFsbCI6IkV4cGFuZCBhbGwiKX07dmFyIGljb25zX0NoZXZyb25SaWdodD0oKT0+SGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOiIyNCIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0In0sSGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTEwIDZMOC41OSA3LjQxIDEzLjE3IDEybC00LjU4IDQuNTlMMTAgMThsNi02eiJ9KSk7Y29uc3Qgd2l0aEpTT05TY2hlbWFDb250ZXh0PShlLHQ9e30pPT57Y29uc3Qgcj17Y29tcG9uZW50czp7SlNPTlNjaGVtYTp5cyxLZXl3b3JkJHNjaGVtYTprZXl3b3Jkc18kc2NoZW1hLEtleXdvcmQkdm9jYWJ1bGFyeTokdm9jYWJ1bGFyeV8kdm9jYWJ1bGFyeSxLZXl3b3JkJGlkOmtleXdvcmRzXyRpZCxLZXl3b3JkJGFuY2hvcjprZXl3b3Jkc18kYW5jaG9yLEtleXdvcmQkZHluYW1pY0FuY2hvcjprZXl3b3Jkc18kZHluYW1pY0FuY2hvcixLZXl3b3JkJHJlZjprZXl3b3Jkc18kcmVmLEtleXdvcmQkZHluYW1pY1JlZjprZXl3b3Jkc18kZHluYW1pY1JlZixLZXl3b3JkJGRlZnM6a2V5d29yZHNfJGRlZnMsS2V5d29yZCRjb21tZW50OmtleXdvcmRzXyRjb21tZW50LEtleXdvcmRBbGxPZjprZXl3b3Jkc19BbGxPZixLZXl3b3JkQW55T2Y6a2V5d29yZHNfQW55T2YsS2V5d29yZE9uZU9mOmtleXdvcmRzX09uZU9mLEtleXdvcmROb3Q6a2V5d29yZHNfTm90LEtleXdvcmRJZjprZXl3b3Jkc19JZixLZXl3b3JkVGhlbjprZXl3b3Jkc19UaGVuLEtleXdvcmRFbHNlOmtleXdvcmRzX0Vsc2UsS2V5d29yZERlcGVuZGVudFNjaGVtYXM6a2V5d29yZHNfRGVwZW5kZW50U2NoZW1hcyxLZXl3b3JkUHJlZml4SXRlbXM6a2V5d29yZHNfUHJlZml4SXRlbXMsS2V5d29yZEl0ZW1zOmtleXdvcmRzX0l0ZW1zLEtleXdvcmRDb250YWluczprZXl3b3Jkc19Db250YWlucyxLZXl3b3JkUHJvcGVydGllczprZXl3b3Jkc19Qcm9wZXJ0aWVzX1Byb3BlcnRpZXMsS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzOlBhdHRlcm5Qcm9wZXJ0aWVzX1BhdHRlcm5Qcm9wZXJ0aWVzLEtleXdvcmRBZGRpdGlvbmFsUHJvcGVydGllczprZXl3b3Jkc19BZGRpdGlvbmFsUHJvcGVydGllcyxLZXl3b3JkUHJvcGVydHlOYW1lczprZXl3b3Jkc19Qcm9wZXJ0eU5hbWVzLEtleXdvcmRVbmV2YWx1YXRlZEl0ZW1zOmtleXdvcmRzX1VuZXZhbHVhdGVkSXRlbXMsS2V5d29yZFVuZXZhbHVhdGVkUHJvcGVydGllczprZXl3b3Jkc19VbmV2YWx1YXRlZFByb3BlcnRpZXMsS2V5d29yZFR5cGU6a2V5d29yZHNfVHlwZSxLZXl3b3JkRW51bTpFbnVtX0VudW0sS2V5d29yZENvbnN0OkNvbnN0X0NvbnN0LEtleXdvcmRDb25zdHJhaW50OkVzLEtleXdvcmREZXBlbmRlbnRSZXF1aXJlZDpEZXBlbmRlbnRSZXF1aXJlZF9EZXBlbmRlbnRSZXF1aXJlZCxLZXl3b3JkQ29udGVudFNjaGVtYTprZXl3b3Jkc19Db250ZW50U2NoZW1hLEtleXdvcmRUaXRsZTpUaXRsZV9UaXRsZSxLZXl3b3JkRGVzY3JpcHRpb246a2V5d29yZHNfRGVzY3JpcHRpb25fRGVzY3JpcHRpb24sS2V5d29yZERlZmF1bHQ6RGVmYXVsdF9EZWZhdWx0LEtleXdvcmREZXByZWNhdGVkOmtleXdvcmRzX0RlcHJlY2F0ZWQsS2V5d29yZFJlYWRPbmx5OmtleXdvcmRzX1JlYWRPbmx5LEtleXdvcmRXcml0ZU9ubHk6a2V5d29yZHNfV3JpdGVPbmx5LEtleXdvcmRFeGFtcGxlczprZXl3b3Jkc19FeGFtcGxlc19FeGFtcGxlcyxFeHRlbnNpb25LZXl3b3JkczpFeHRlbnNpb25LZXl3b3Jkc19FeHRlbnNpb25LZXl3b3JkcyxKU09OVmlld2VyOlNzLEFjY29yZGlvbjpBY2NvcmRpb25fQWNjb3JkaW9uLEV4cGFuZERlZXBCdXR0b246RXhwYW5kRGVlcEJ1dHRvbl9FeHBhbmREZWVwQnV0dG9uLENoZXZyb25SaWdodEljb246aWNvbnNfQ2hldnJvblJpZ2h0LC4uLnQuY29tcG9uZW50c30sY29uZmlnOntkZWZhdWx0JHNjaGVtYToiaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWEiLGRlZmF1bHRFeHBhbmRlZExldmVsczowLHNob3dFeHRlbnNpb25LZXl3b3JkczohMCwuLi50LmNvbmZpZ30sZm46e3VwcGVyRmlyc3Q6Zm5fdXBwZXJGaXJzdCxnZXRUaXRsZTptYWtlR2V0VGl0bGUodXNlRm4pLGdldFR5cGU6bWFrZUdldFR5cGUodXNlRm4pLGlzQm9vbGVhbkpTT05TY2hlbWEsaGFzS2V5d29yZCxpc0V4cGFuZGFibGU6Zm5fbWFrZUlzRXhwYW5kYWJsZSh1c2VGbiksc3RyaW5naWZ5OmZuX3N0cmluZ2lmeSxzdHJpbmdpZnlDb25zdHJhaW50cyxnZXREZXBlbmRlbnRSZXF1aXJlZCxnZXRTY2hlbWFLZXl3b3JkcyxnZXRFeHRlbnNpb25LZXl3b3JkczptYWtlR2V0RXh0ZW5zaW9uS2V5d29yZHModXNlRm4pLC4uLnQuZm59LHN0YXRlOntwYXRoczp7fX19LEhPQz10PT5IZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocHMuUHJvdmlkZXIse3ZhbHVlOnJ9LEhlLmRlZmF1bHQuY3JlYXRlRWxlbWVudChlLHQpKTtyZXR1cm4gSE9DLmNvbnRleHRzPXtKU09OU2NoZW1hQ29udGV4dDpwc30sSE9DLmRpc3BsYXlOYW1lPWUuZGlzcGxheU5hbWUsSE9DfSxtYWtlV2l0aEpTT05TY2hlbWFTeXN0ZW1Db250ZXh0PSh7Z2V0U3lzdGVtOmV9KT0+KHQscj17fSk9Pntjb25zdHtnZXRDb21wb25lbnQ6bixnZXRDb25maWdzOmF9PWUoKSxvPWEoKSxzPW4oIkpTT05TY2hlbWEyMDIwMTIiKSxsPW4oIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJHNjaGVtYSIpLGk9bigiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkdm9jYWJ1bGFyeSIpLGM9bigiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkaWQiKSx1PW4oIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGFuY2hvciIpLGQ9bigiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkZHluYW1pY0FuY2hvciIpLHA9bigiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkcmVmIiksbT1uKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRkeW5hbWljUmVmIiksZj1uKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRkZWZzIiksaD1uKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRjb21tZW50IiksZz1uKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEFsbE9mIikseT1uKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEFueU9mIiksUz1uKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZE9uZU9mIiksXz1uKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZE5vdCIpLHY9bigiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRJZiIpLGI9bigiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRUaGVuIiksdz1uKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEVsc2UiKSxDPW4oIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwZW5kZW50U2NoZW1hcyIpLHg9bigiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRQcmVmaXhJdGVtcyIpLE89bigiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRJdGVtcyIpLGs9bigiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRDb250YWlucyIpLE49bigiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRQcm9wZXJ0aWVzIiksQT1uKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzIiksST1uKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEFkZGl0aW9uYWxQcm9wZXJ0aWVzIiksaj1uKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByb3BlcnR5TmFtZXMiKSxSPW4oIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtcyIpLFQ9bigiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXMiKSxQPW4oIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVHlwZSIpLEI9bigiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFbnVtIiksTT1uKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZENvbnN0IikscT1uKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZENvbnN0cmFpbnQiKSxMPW4oIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQiKSxVPW4oIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29udGVudFNjaGVtYSIpLEQ9bigiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRUaXRsZSIpLCQ9bigiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXNjcmlwdGlvbiIpLFY9bigiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZWZhdWx0IiksSj1uKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlcHJlY2F0ZWQiKSxGPW4oIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUmVhZE9ubHkiKSx6PW4oIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkV3JpdGVPbmx5IiksSz1uKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4YW1wbGVzIiksVz1uKCJKU09OU2NoZW1hMjAyMDEyRXh0ZW5zaW9uS2V5d29yZHMiKSxIPW4oIkpTT05TY2hlbWEyMDIwMTJKU09OVmlld2VyIiksRz1uKCJKU09OU2NoZW1hMjAyMDEyQWNjb3JkaW9uIiksWD1uKCJKU09OU2NoZW1hMjAyMDEyRXhwYW5kRGVlcEJ1dHRvbiIpLFk9bigiSlNPTlNjaGVtYTIwMjAxMkNoZXZyb25SaWdodEljb24iKTtyZXR1cm4gd2l0aEpTT05TY2hlbWFDb250ZXh0KHQse2NvbXBvbmVudHM6e0pTT05TY2hlbWE6cyxLZXl3b3JkJHNjaGVtYTpsLEtleXdvcmQkdm9jYWJ1bGFyeTppLEtleXdvcmQkaWQ6YyxLZXl3b3JkJGFuY2hvcjp1LEtleXdvcmQkZHluYW1pY0FuY2hvcjpkLEtleXdvcmQkcmVmOnAsS2V5d29yZCRkeW5hbWljUmVmOm0sS2V5d29yZCRkZWZzOmYsS2V5d29yZCRjb21tZW50OmgsS2V5d29yZEFsbE9mOmcsS2V5d29yZEFueU9mOnksS2V5d29yZE9uZU9mOlMsS2V5d29yZE5vdDpfLEtleXdvcmRJZjp2LEtleXdvcmRUaGVuOmIsS2V5d29yZEVsc2U6dyxLZXl3b3JkRGVwZW5kZW50U2NoZW1hczpDLEtleXdvcmRQcmVmaXhJdGVtczp4LEtleXdvcmRJdGVtczpPLEtleXdvcmRDb250YWluczprLEtleXdvcmRQcm9wZXJ0aWVzOk4sS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzOkEsS2V5d29yZEFkZGl0aW9uYWxQcm9wZXJ0aWVzOkksS2V5d29yZFByb3BlcnR5TmFtZXM6aixLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtczpSLEtleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXM6VCxLZXl3b3JkVHlwZTpQLEtleXdvcmRFbnVtOkIsS2V5d29yZENvbnN0Ok0sS2V5d29yZENvbnN0cmFpbnQ6cSxLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQ6TCxLZXl3b3JkQ29udGVudFNjaGVtYTpVLEtleXdvcmRUaXRsZTpELEtleXdvcmREZXNjcmlwdGlvbjokLEtleXdvcmREZWZhdWx0OlYsS2V5d29yZERlcHJlY2F0ZWQ6SixLZXl3b3JkUmVhZE9ubHk6RixLZXl3b3JkV3JpdGVPbmx5OnosS2V5d29yZEV4YW1wbGVzOkssRXh0ZW5zaW9uS2V5d29yZHM6VyxKU09OVmlld2VyOkgsQWNjb3JkaW9uOkcsRXhwYW5kRGVlcEJ1dHRvbjpYLENoZXZyb25SaWdodEljb246WSwuLi5yLmNvbXBvbmVudHN9LGNvbmZpZzp7c2hvd0V4dGVuc2lvbktleXdvcmRzOm8uc2hvd0V4dGVuc2lvbnMsLi4uci5jb25maWd9LGZuOnsuLi5yLmZufX0pfTt2YXIganNvbl9zY2hlbWFfMjAyMF8xMj0oe2dldFN5c3RlbTplLGZuOnR9KT0+e2NvbnN0IGZuQWNjZXNzb3I9KCk9Pih7dXBwZXJGaXJzdDp0LnVwcGVyRmlyc3QsLi4udC5qc29uU2NoZW1hMjAyMDEyfSk7cmV0dXJue2NvbXBvbmVudHM6e0pTT05TY2hlbWEyMDIwMTI6eXMsSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkc2NoZW1hOmtleXdvcmRzXyRzY2hlbWEsSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkdm9jYWJ1bGFyeTokdm9jYWJ1bGFyeV8kdm9jYWJ1bGFyeSxKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRpZDprZXl3b3Jkc18kaWQsSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkYW5jaG9yOmtleXdvcmRzXyRhbmNob3IsSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkZHluYW1pY0FuY2hvcjprZXl3b3Jkc18kZHluYW1pY0FuY2hvcixKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRyZWY6a2V5d29yZHNfJHJlZixKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRkeW5hbWljUmVmOmtleXdvcmRzXyRkeW5hbWljUmVmLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGRlZnM6a2V5d29yZHNfJGRlZnMsSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkY29tbWVudDprZXl3b3Jkc18kY29tbWVudCxKU09OU2NoZW1hMjAyMDEyS2V5d29yZEFsbE9mOmtleXdvcmRzX0FsbE9mLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQW55T2Y6a2V5d29yZHNfQW55T2YsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRPbmVPZjprZXl3b3Jkc19PbmVPZixKU09OU2NoZW1hMjAyMDEyS2V5d29yZE5vdDprZXl3b3Jkc19Ob3QsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRJZjprZXl3b3Jkc19JZixKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRoZW46a2V5d29yZHNfVGhlbixKU09OU2NoZW1hMjAyMDEyS2V5d29yZEVsc2U6a2V5d29yZHNfRWxzZSxKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlcGVuZGVudFNjaGVtYXM6a2V5d29yZHNfRGVwZW5kZW50U2NoZW1hcyxKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByZWZpeEl0ZW1zOmtleXdvcmRzX1ByZWZpeEl0ZW1zLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkSXRlbXM6a2V5d29yZHNfSXRlbXMsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRDb250YWluczprZXl3b3Jkc19Db250YWlucyxKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByb3BlcnRpZXM6a2V5d29yZHNfUHJvcGVydGllc19Qcm9wZXJ0aWVzLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUGF0dGVyblByb3BlcnRpZXM6UGF0dGVyblByb3BlcnRpZXNfUGF0dGVyblByb3BlcnRpZXMsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBZGRpdGlvbmFsUHJvcGVydGllczprZXl3b3Jkc19BZGRpdGlvbmFsUHJvcGVydGllcyxKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByb3BlcnR5TmFtZXM6a2V5d29yZHNfUHJvcGVydHlOYW1lcyxKU09OU2NoZW1hMjAyMDEyS2V5d29yZFVuZXZhbHVhdGVkSXRlbXM6a2V5d29yZHNfVW5ldmFsdWF0ZWRJdGVtcyxKU09OU2NoZW1hMjAyMDEyS2V5d29yZFVuZXZhbHVhdGVkUHJvcGVydGllczprZXl3b3Jkc19VbmV2YWx1YXRlZFByb3BlcnRpZXMsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRUeXBlOmtleXdvcmRzX1R5cGUsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFbnVtOkVudW1fRW51bSxKU09OU2NoZW1hMjAyMDEyS2V5d29yZENvbnN0OkNvbnN0X0NvbnN0LEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29uc3RyYWludDpFcyxKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlcGVuZGVudFJlcXVpcmVkOkRlcGVuZGVudFJlcXVpcmVkX0RlcGVuZGVudFJlcXVpcmVkLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29udGVudFNjaGVtYTprZXl3b3Jkc19Db250ZW50U2NoZW1hLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVGl0bGU6VGl0bGVfVGl0bGUsSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXNjcmlwdGlvbjprZXl3b3Jkc19EZXNjcmlwdGlvbl9EZXNjcmlwdGlvbixKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlZmF1bHQ6RGVmYXVsdF9EZWZhdWx0LEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwcmVjYXRlZDprZXl3b3Jkc19EZXByZWNhdGVkLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUmVhZE9ubHk6a2V5d29yZHNfUmVhZE9ubHksSlNPTlNjaGVtYTIwMjAxMktleXdvcmRXcml0ZU9ubHk6a2V5d29yZHNfV3JpdGVPbmx5LEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXhhbXBsZXM6a2V5d29yZHNfRXhhbXBsZXNfRXhhbXBsZXMsSlNPTlNjaGVtYTIwMjAxMkV4dGVuc2lvbktleXdvcmRzOkV4dGVuc2lvbktleXdvcmRzX0V4dGVuc2lvbktleXdvcmRzLEpTT05TY2hlbWEyMDIwMTJKU09OVmlld2VyOlNzLEpTT05TY2hlbWEyMDIwMTJBY2NvcmRpb246QWNjb3JkaW9uX0FjY29yZGlvbixKU09OU2NoZW1hMjAyMDEyRXhwYW5kRGVlcEJ1dHRvbjpFeHBhbmREZWVwQnV0dG9uX0V4cGFuZERlZXBCdXR0b24sSlNPTlNjaGVtYTIwMjAxMkNoZXZyb25SaWdodEljb246aWNvbnNfQ2hldnJvblJpZ2h0LHdpdGhKU09OU2NoZW1hMjAyMDEyQ29udGV4dDp3aXRoSlNPTlNjaGVtYUNvbnRleHQsd2l0aEpTT05TY2hlbWEyMDIwMTJTeXN0ZW1Db250ZXh0Om1ha2VXaXRoSlNPTlNjaGVtYVN5c3RlbUNvbnRleHQoZSgpKSxKU09OU2NoZW1hMjAyMDEyUGF0aENvbnRleHQ6KCk9PmhzLEpTT05TY2hlbWEyMDIwMTJMZXZlbENvbnRleHQ6KCk9Pm1zfSxmbjp7dXBwZXJGaXJzdDpmbl91cHBlckZpcnN0LGpzb25TY2hlbWEyMDIwMTI6e2dldFRpdGxlOm1ha2VHZXRUaXRsZShmbkFjY2Vzc29yKSxnZXRUeXBlOm1ha2VHZXRUeXBlKGZuQWNjZXNzb3IpLGlzRXhwYW5kYWJsZTpmbl9tYWtlSXNFeHBhbmRhYmxlKGZuQWNjZXNzb3IpLGlzQm9vbGVhbkpTT05TY2hlbWEsaGFzS2V5d29yZCx1c2VGbix1c2VDb25maWcsdXNlQ29tcG9uZW50LHVzZUlzRXhwYW5kZWQsdXNlUGF0aCx1c2VMZXZlbCxnZXRTY2hlbWFLZXl3b3JkcyxnZXRFeHRlbnNpb25LZXl3b3JkczptYWtlR2V0RXh0ZW5zaW9uS2V5d29yZHMoZm5BY2Nlc3NvciksaGFzU2NoZW1hVHlwZTpmbl9oYXNTY2hlbWFUeXBlfX19fTt2YXIgYXJyYXk9KGUse3NhbXBsZTp0PVtdfT17fSk9PigoZSx0PXt9KT0+e2NvbnN0e21pbkl0ZW1zOnIsbWF4SXRlbXM6bix1bmlxdWVJdGVtczphfT10LHtjb250YWluczpvLG1pbkNvbnRhaW5zOnMsbWF4Q29udGFpbnM6bH09dDtsZXQgaT1bLi4uZV07aWYobnVsbCE9byYmIm9iamVjdCI9PXR5cGVvZiBvKXtpZihOdW1iZXIuaXNJbnRlZ2VyKHMpJiZzPjEpe2NvbnN0IGU9aS5hdCgwKTtmb3IobGV0IHQ9MTt0PHM7dCs9MSlpLnVuc2hpZnQoZSl9TnVtYmVyLmlzSW50ZWdlcihsKX1pZihOdW1iZXIuaXNJbnRlZ2VyKG4pJiZuPjAmJihpPWUuc2xpY2UoMCxuKSksTnVtYmVyLmlzSW50ZWdlcihyKSYmcj4wKWZvcihsZXQgZT0wO2kubGVuZ3RoPHI7ZSs9MSlpLnB1c2goaVtlJWkubGVuZ3RoXSk7cmV0dXJuITA9PT1hJiYoaT1BcnJheS5mcm9tKG5ldyBTZXQoaSkpKSxpfSkodCxlKTt2YXIgb2JqZWN0PSgpPT57dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKX07Y29uc3QgYnl0ZXM9ZT0+RXQoKShlKSxwaWNrPWU9PmUuYXQoMCkscHJlZGljYXRlc19pc0Jvb2xlYW5KU09OU2NoZW1hPWU9PiJib29sZWFuIj09dHlwZW9mIGUsaXNKU09OU2NoZW1hT2JqZWN0PWU9PigwLENyLmRlZmF1bHQpKGUpLGlzSlNPTlNjaGVtYT1lPT5wcmVkaWNhdGVzX2lzQm9vbGVhbkpTT05TY2hlbWEoZSl8fGlzSlNPTlNjaGVtYU9iamVjdChlKTt2YXIgX3M9Y2xhc3MgUmVnaXN0cnl7ZGF0YT17fTtyZWdpc3RlcihlLHQpe3RoaXMuZGF0YVtlXT10fXVucmVnaXN0ZXIoZSl7dm9pZCAwPT09ZT90aGlzLmRhdGE9e306ZGVsZXRlIHRoaXMuZGF0YVtlXX1nZXQoZSl7cmV0dXJuIHRoaXMuZGF0YVtlXX19O3ZhciBpbnQzMj0oKT0+MDt2YXIgaW50NjQ9KCk9PjA7dmFyIGdlbmVyYXRvcnNfZmxvYXQ9KCk9Pi4xO3ZhciBnZW5lcmF0b3JzX2RvdWJsZT0oKT0+LjE7dmFyIGVtYWlsPSgpPT4idXNlckBleGFtcGxlLmNvbSI7dmFyIGlkbl9lbWFpbD0oKT0+IuyLpOuhgEBleGFtcGxlLmNvbSI7dmFyIGhvc3RuYW1lPSgpPT4iZXhhbXBsZS5jb20iO3ZhciBpZG5faG9zdG5hbWU9KCk9PiLsi6TroYAuY29tIjt2YXIgaXB2ND0oKT0+IjE5OC41MS4xMDAuNDIiO3ZhciBpcHY2PSgpPT4iMjAwMTowZGI4OjViOTY6MDAwMDowMDAwOjQyNmY6OGUxNzo2NDJhIjt2YXIgdXJpPSgpPT4iaHR0cHM6Ly9leGFtcGxlLmNvbS8iO3ZhciB1cmlfcmVmZXJlbmNlPSgpPT4icGF0aC9pbmRleC5odG1sIjt2YXIgaXJpPSgpPT4iaHR0cHM6Ly/si6TroYAuY29tLyI7dmFyIGlyaV9yZWZlcmVuY2U9KCk9PiJwYXRoL+yLpOuhgC5odG1sIjt2YXIgdXVpZD0oKT0+IjNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNiI7dmFyIHVyaV90ZW1wbGF0ZT0oKT0+Imh0dHBzOi8vZXhhbXBsZS5jb20vZGljdGlvbmFyeS97dGVybToxfS97dGVybX0iO3ZhciBqc29uX3BvaW50ZXI9KCk9PiIvYS9iL2MiO3ZhciByZWxhdGl2ZV9qc29uX3BvaW50ZXI9KCk9PiIxLzAiO3ZhciBkYXRlX3RpbWU9KCk9PihuZXcgRGF0ZSkudG9JU09TdHJpbmcoKTt2YXIgZGF0ZT0oKT0+KG5ldyBEYXRlKS50b0lTT1N0cmluZygpLnN1YnN0cmluZygwLDEwKTt2YXIgdGltZT0oKT0+KG5ldyBEYXRlKS50b0lTT1N0cmluZygpLnN1YnN0cmluZygxMSk7dmFyIGR1cmF0aW9uPSgpPT4iUDNEIjt2YXIgZ2VuZXJhdG9yc19wYXNzd29yZD0oKT0+IioqKioqKioqIjt2YXIgcmVnZXg9KCk9PiJeW2Etel0rJCI7Y29uc3QgdnM9bmV3IGNsYXNzIEZvcm1hdFJlZ2lzdHJ5IGV4dGVuZHMgX3N7I2U9e2ludDMyLGludDY0LGZsb2F0OmdlbmVyYXRvcnNfZmxvYXQsZG91YmxlOmdlbmVyYXRvcnNfZG91YmxlLGVtYWlsLCJpZG4tZW1haWwiOmlkbl9lbWFpbCxob3N0bmFtZSwiaWRuLWhvc3RuYW1lIjppZG5faG9zdG5hbWUsaXB2NCxpcHY2LHVyaSwidXJpLXJlZmVyZW5jZSI6dXJpX3JlZmVyZW5jZSxpcmksImlyaS1yZWZlcmVuY2UiOmlyaV9yZWZlcmVuY2UsdXVpZCwidXJpLXRlbXBsYXRlIjp1cmlfdGVtcGxhdGUsImpzb24tcG9pbnRlciI6anNvbl9wb2ludGVyLCJyZWxhdGl2ZS1qc29uLXBvaW50ZXIiOnJlbGF0aXZlX2pzb25fcG9pbnRlciwiZGF0ZS10aW1lIjpkYXRlX3RpbWUsZGF0ZSx0aW1lLGR1cmF0aW9uLHBhc3N3b3JkOmdlbmVyYXRvcnNfcGFzc3dvcmQscmVnZXh9O2RhdGE9ey4uLnRoaXMuI2V9O2dldCBkZWZhdWx0cygpe3JldHVybnsuLi50aGlzLiNlfX19LGZvcm1hdEFQST0oZSx0KT0+ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dnMucmVnaXN0ZXIoZSx0KTpudWxsPT09dD92cy51bnJlZ2lzdGVyKGUpOnZzLmdldChlKTtmb3JtYXRBUEkuZ2V0RGVmYXVsdHM9KCk9PnZzLmRlZmF1bHRzO3ZhciBicz1mb3JtYXRBUEksd3M9X193ZWJwYWNrX3JlcXVpcmVfXygyODcpLkJ1ZmZlcjt2YXIgXzdiaXQ9ZT0+d3MuZnJvbShlKS50b1N0cmluZygiYXNjaWkiKSxDcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI4NykuQnVmZmVyO3ZhciBfOGJpdD1lPT5Dcy5mcm9tKGUpLnRvU3RyaW5nKCJ1dGY4IikseHM9X193ZWJwYWNrX3JlcXVpcmVfXygyODcpLkJ1ZmZlcjt2YXIgYmluYXJ5PWU9PnhzLmZyb20oZSkudG9TdHJpbmcoImJpbmFyeSIpO3ZhciBxdW90ZWRfcHJpbnRhYmxlPWU9PntsZXQgdD0iIjtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl7Y29uc3Qgbj1lLmNoYXJDb2RlQXQocik7aWYoNjE9PT1uKXQrPSI9M0QiO2Vsc2UgaWYobj49MzMmJm48PTYwfHxuPj02MiYmbjw9MTI2fHw5PT09bnx8MzI9PT1uKXQrPWUuY2hhckF0KHIpO2Vsc2UgaWYoMTM9PT1ufHwxMD09PW4pdCs9IlxyXG4iO2Vsc2UgaWYobj4xMjYpe2NvbnN0IG49dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGUuY2hhckF0KHIpKSk7Zm9yKGxldCBlPTA7ZTxuLmxlbmd0aDtlKyspdCs9Ij0iKygiMCIrbi5jaGFyQ29kZUF0KGUpLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpLnRvVXBwZXJDYXNlKCl9ZWxzZSB0Kz0iPSIrKCIwIituLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpLnRvVXBwZXJDYXNlKCl9cmV0dXJuIHR9LE9zPV9fd2VicGFja19yZXF1aXJlX18oMjg3KS5CdWZmZXI7dmFyIGJhc2UxNj1lPT5Pcy5mcm9tKGUpLnRvU3RyaW5nKCJoZXgiKSxrcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI4NykuQnVmZmVyO3ZhciBiYXNlMzI9ZT0+e2NvbnN0IHQ9a3MuZnJvbShlKS50b1N0cmluZygidXRmOCIpLHI9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMjM0NTY3IjtsZXQgbj0wLGE9IiIsbz0wLHM9MDtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylmb3Iobz1vPDw4fHQuY2hhckNvZGVBdChlKSxzKz04O3M+PTU7KWErPXIuY2hhckF0KG8+Pj5zLTUmMzEpLHMtPTU7cz4wJiYoYSs9ci5jaGFyQXQobzw8NS1zJjMxKSxuPSg4LTgqdC5sZW5ndGglNSklNSk7Zm9yKGxldCBlPTA7ZTxuO2UrKylhKz0iPSI7cmV0dXJuIGF9LE5zPV9fd2VicGFja19yZXF1aXJlX18oMjg3KS5CdWZmZXI7dmFyIGJhc2U2ND1lPT5Ocy5mcm9tKGUpLnRvU3RyaW5nKCJiYXNlNjQiKSxBcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI4NykuQnVmZmVyO3ZhciBiYXNlNjR1cmw9ZT0+QXMuZnJvbShlKS50b1N0cmluZygiYmFzZTY0dXJsIik7Y29uc3QgSXM9bmV3IGNsYXNzIEVuY29kZXJSZWdpc3RyeSBleHRlbmRzIF9zeyNlPXsiN2JpdCI6XzdiaXQsIjhiaXQiOl84Yml0LGJpbmFyeSwicXVvdGVkLXByaW50YWJsZSI6cXVvdGVkX3ByaW50YWJsZSxiYXNlMTYsYmFzZTMyLGJhc2U2NCxiYXNlNjR1cmx9O2RhdGE9ey4uLnRoaXMuI2V9O2dldCBkZWZhdWx0cygpe3JldHVybnsuLi50aGlzLiNlfX19LGVuY29kZXJBUEk9KGUsdCk9PiJmdW5jdGlvbiI9PXR5cGVvZiB0P0lzLnJlZ2lzdGVyKGUsdCk6bnVsbD09PXQ/SXMudW5yZWdpc3RlcihlKTpJcy5nZXQoZSk7ZW5jb2RlckFQSS5nZXREZWZhdWx0cz0oKT0+SXMuZGVmYXVsdHM7dmFyIGpzPWVuY29kZXJBUEk7dmFyIFJzPXsidGV4dC9wbGFpbiI6KCk9PiJzdHJpbmciLCJ0ZXh0L2NzcyI6KCk9PiIuc2VsZWN0b3IgeyBib3JkZXI6IDFweCBzb2xpZCByZWQgfSIsInRleHQvY3N2IjooKT0+InZhbHVlMSx2YWx1ZTIsdmFsdWUzIiwidGV4dC9odG1sIjooKT0+IjxwPmNvbnRlbnQ8L3A+IiwidGV4dC9jYWxlbmRhciI6KCk9PiJCRUdJTjpWQ0FMRU5EQVIiLCJ0ZXh0L2phdmFzY3JpcHQiOigpPT4iY29uc29sZS5kaXIoJ0hlbGxvIHdvcmxkIScpOyIsInRleHQveG1sIjooKT0+JzxwZXJzb24gYWdlPSIzMCI+Sm9obiBEb2U8L3BlcnNvbj4nLCJ0ZXh0LyoiOigpPT4ic3RyaW5nIn07dmFyIFRzPXsiaW1hZ2UvKiI6KCk9PmJ5dGVzKDI1KS50b1N0cmluZygiYmluYXJ5Iil9O3ZhciBQcz17ImF1ZGlvLyoiOigpPT5ieXRlcygyNSkudG9TdHJpbmcoImJpbmFyeSIpfTt2YXIgQnM9eyJ2aWRlby8qIjooKT0+Ynl0ZXMoMjUpLnRvU3RyaW5nKCJiaW5hcnkiKX07dmFyIE1zPXsiYXBwbGljYXRpb24vanNvbiI6KCk9Pid7ImtleSI6InZhbHVlIn0nLCJhcHBsaWNhdGlvbi9sZCtqc29uIjooKT0+J3sibmFtZSI6ICJKb2huIERvZSJ9JywiYXBwbGljYXRpb24veC1odHRwZC1waHAiOigpPT4iPD9waHAgZWNobyAnPHA+SGVsbG8gV29ybGQhPC9wPic7ID8+IiwiYXBwbGljYXRpb24vcnRmIjooKT0+U3RyaW5nLnJhd2B7XHJ0ZjFcYWRlZmxhbmcxMDI1XGFuc2lcYW5zaWNwZzEyNTJcdWMxYCwiYXBwbGljYXRpb24veC1zaCI6KCk9PidlY2hvICJIZWxsbyBXb3JsZCEiJywiYXBwbGljYXRpb24veGh0bWwreG1sIjooKT0+IjxwPmNvbnRlbnQ8L3A+IiwiYXBwbGljYXRpb24vKiI6KCk9PmJ5dGVzKDI1KS50b1N0cmluZygiYmluYXJ5Iil9O2NvbnN0IHFzPW5ldyBjbGFzcyBNZWRpYVR5cGVSZWdpc3RyeSBleHRlbmRzIF9zeyNlPXsuLi5ScywuLi5UcywuLi5QcywuLi5CcywuLi5Nc307ZGF0YT17Li4udGhpcy4jZX07Z2V0IGRlZmF1bHRzKCl7cmV0dXJuey4uLnRoaXMuI2V9fX0sbWVkaWFUeXBlQVBJPShlLHQpPT57aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQpcmV0dXJuIHFzLnJlZ2lzdGVyKGUsdCk7aWYobnVsbD09PXQpcmV0dXJuIHFzLnVucmVnaXN0ZXIoZSk7Y29uc3Qgcj1lLnNwbGl0KCI7IikuYXQoMCksbj1gJHtyLnNwbGl0KCIvIikuYXQoMCl9LypgO3JldHVybiBxcy5nZXQoZSl8fHFzLmdldChyKXx8cXMuZ2V0KG4pfTttZWRpYVR5cGVBUEkuZ2V0RGVmYXVsdHM9KCk9PnFzLmRlZmF1bHRzO3ZhciBMcz1tZWRpYVR5cGVBUEk7Y29uc3QgYXBwbHlTdHJpbmdDb25zdHJhaW50cz0oZSx0PXt9KT0+e2NvbnN0e21heExlbmd0aDpyLG1pbkxlbmd0aDpufT10O2xldCBhPWU7aWYoTnVtYmVyLmlzSW50ZWdlcihyKSYmcj4wJiYoYT1hLnNsaWNlKDAscikpLE51bWJlci5pc0ludGVnZXIobikmJm4+MCl7bGV0IGU9MDtmb3IoO2EubGVuZ3RoPG47KWErPWFbZSsrJWEubGVuZ3RoXX1yZXR1cm4gYX07dmFyIHR5cGVzX3N0cmluZz0oZSx7c2FtcGxlOnR9PXt9KT0+e2NvbnN0e2NvbnRlbnRFbmNvZGluZzpyLGNvbnRlbnRNZWRpYVR5cGU6bixjb250ZW50U2NoZW1hOmF9PWUse3BhdHRlcm46byxmb3JtYXQ6c309ZSxsPWpzKHIpfHxlYS5kZWZhdWx0O2xldCBpO3JldHVybiBpPSJzdHJpbmciPT10eXBlb2Ygbz9hcHBseVN0cmluZ0NvbnN0cmFpbnRzKChlPT57dHJ5e2NvbnN0IHQ9Lyg/PD0oPzwhXFwpXHspKFxkezMsfSkoPz1cfSl8KD88PSg/PCFcXClce1xkKiwpKFxkezMsfSkoPz1cfSl8KD88PSg/PCFcXClceykoXGR7Myx9KSg/PSxcZCpcfSkvZyxyPWUucmVwbGFjZSh0LCIxMDAiKSxuPW5ldyBrci5kZWZhdWx0KHIpO3JldHVybiBuLm1heD0xMDAsbi5nZW4oKX1jYXRjaHtyZXR1cm4ic3RyaW5nIn19KShvKSxlKToic3RyaW5nIj09dHlwZW9mIHM/KGU9Pntjb25zdHtmb3JtYXQ6dH09ZSxyPWJzKHQpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiByP3IoZSk6InN0cmluZyJ9KShlKTppc0pTT05TY2hlbWEoYSkmJiJzdHJpbmciPT10eXBlb2YgbiYmdm9pZCAwIT09dD9BcnJheS5pc0FycmF5KHQpfHwib2JqZWN0Ij09dHlwZW9mIHQ/SlNPTi5zdHJpbmdpZnkodCk6YXBwbHlTdHJpbmdDb25zdHJhaW50cyhTdHJpbmcodCksZSk6InN0cmluZyI9PXR5cGVvZiBuPyhlPT57Y29uc3R7Y29udGVudE1lZGlhVHlwZTp0fT1lLHI9THModCk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHI/cihlKToic3RyaW5nIn0pKGUpOmFwcGx5U3RyaW5nQ29uc3RyYWludHMoInN0cmluZyIsZSksbChpKX07Y29uc3QgYXBwbHlOdW1iZXJDb25zdHJhaW50cz0oZSx0PXt9KT0+e2NvbnN0e21pbmltdW06cixtYXhpbXVtOm4sZXhjbHVzaXZlTWluaW11bTphLGV4Y2x1c2l2ZU1heGltdW06b309dCx7bXVsdGlwbGVPZjpzfT10LGw9TnVtYmVyLmlzSW50ZWdlcihlKT8xOk51bWJlci5FUFNJTE9OO2xldCBpPSJudW1iZXIiPT10eXBlb2Ygcj9yOm51bGwsYz0ibnVtYmVyIj09dHlwZW9mIG4/bjpudWxsLHU9ZTtpZigibnVtYmVyIj09dHlwZW9mIGEmJihpPW51bGwhPT1pP01hdGgubWF4KGksYStsKTphK2wpLCJudW1iZXIiPT10eXBlb2YgbyYmKGM9bnVsbCE9PWM/TWF0aC5taW4oYyxvLWwpOm8tbCksdT1pPmMmJmV8fGl8fGN8fHUsIm51bWJlciI9PXR5cGVvZiBzJiZzPjApe2NvbnN0IGU9dSVzO3U9MD09PWU/dTp1K3MtZX1yZXR1cm4gdX07dmFyIHR5cGVzX251bWJlcj1lPT57Y29uc3R7Zm9ybWF0OnR9PWU7bGV0IHI7cmV0dXJuIHI9InN0cmluZyI9PXR5cGVvZiB0PyhlPT57Y29uc3R7Zm9ybWF0OnR9PWUscj1icyh0KTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygcj9yKGUpOjB9KShlKTowLGFwcGx5TnVtYmVyQ29uc3RyYWludHMocixlKX07dmFyIHR5cGVzX2ludGVnZXI9ZT0+e2NvbnN0e2Zvcm1hdDp0fT1lO2xldCByO3JldHVybiByPSJzdHJpbmciPT10eXBlb2YgdD8oZT0+e2NvbnN0e2Zvcm1hdDp0fT1lLHI9YnModCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHIpcmV0dXJuIHIoZSk7c3dpdGNoKHQpe2Nhc2UiaW50MzIiOnJldHVybiBpbnQzMigpO2Nhc2UiaW50NjQiOnJldHVybiBpbnQ2NCgpfXJldHVybiAwfSkoZSk6MCxhcHBseU51bWJlckNvbnN0cmFpbnRzKHIsZSl9O3ZhciB0eXBlc19ib29sZWFuPWU9PiJib29sZWFuIiE9dHlwZW9mIGUuZGVmYXVsdHx8ZS5kZWZhdWx0O3ZhciBVcz1uZXcgUHJveHkoe2FycmF5LG9iamVjdCxzdHJpbmc6dHlwZXNfc3RyaW5nLG51bWJlcjp0eXBlc19udW1iZXIsaW50ZWdlcjp0eXBlc19pbnRlZ2VyLGJvb2xlYW46dHlwZXNfYm9vbGVhbixudWxsOigpPT5udWxsfSx7Z2V0OihlLHQpPT4ic3RyaW5nIj09dHlwZW9mIHQmJk9iamVjdC5oYXNPd24oZSx0KT9lW3RdOigpPT5gVW5rbm93biBUeXBlOiAke3R9YH0pO2NvbnN0IERzPVsiYXJyYXkiLCJvYmplY3QiLCJudW1iZXIiLCJpbnRlZ2VyIiwic3RyaW5nIiwiYm9vbGVhbiIsIm51bGwiXSxoYXNFeGFtcGxlPWU9PntpZighaXNKU09OU2NoZW1hT2JqZWN0KGUpKXJldHVybiExO2NvbnN0e2V4YW1wbGVzOnQsZXhhbXBsZTpyLGRlZmF1bHQ6bn09ZTtyZXR1cm4hIShBcnJheS5pc0FycmF5KHQpJiZ0Lmxlbmd0aD49MSl8fCh2b2lkIDAhPT1ufHx2b2lkIDAhPT1yKX0sZXh0cmFjdEV4YW1wbGU9ZT0+e2lmKCFpc0pTT05TY2hlbWFPYmplY3QoZSkpcmV0dXJuIG51bGw7Y29uc3R7ZXhhbXBsZXM6dCxleGFtcGxlOnIsZGVmYXVsdDpufT1lO3JldHVybiBBcnJheS5pc0FycmF5KHQpJiZ0Lmxlbmd0aD49MT90LmF0KDApOnZvaWQgMCE9PW4/bjp2b2lkIDAhPT1yP3I6dm9pZCAwfSwkcz17YXJyYXk6WyJpdGVtcyIsInByZWZpeEl0ZW1zIiwiY29udGFpbnMiLCJtYXhDb250YWlucyIsIm1pbkNvbnRhaW5zIiwibWF4SXRlbXMiLCJtaW5JdGVtcyIsInVuaXF1ZUl0ZW1zIiwidW5ldmFsdWF0ZWRJdGVtcyJdLG9iamVjdDpbInByb3BlcnRpZXMiLCJhZGRpdGlvbmFsUHJvcGVydGllcyIsInBhdHRlcm5Qcm9wZXJ0aWVzIiwicHJvcGVydHlOYW1lcyIsIm1pblByb3BlcnRpZXMiLCJtYXhQcm9wZXJ0aWVzIiwicmVxdWlyZWQiLCJkZXBlbmRlbnRTY2hlbWFzIiwiZGVwZW5kZW50UmVxdWlyZWQiLCJ1bmV2YWx1YXRlZFByb3BlcnRpZXMiXSxzdHJpbmc6WyJwYXR0ZXJuIiwiZm9ybWF0IiwibWluTGVuZ3RoIiwibWF4TGVuZ3RoIiwiY29udGVudEVuY29kaW5nIiwiY29udGVudE1lZGlhVHlwZSIsImNvbnRlbnRTY2hlbWEiXSxpbnRlZ2VyOlsibWluaW11bSIsIm1heGltdW0iLCJleGNsdXNpdmVNaW5pbXVtIiwiZXhjbHVzaXZlTWF4aW11bSIsIm11bHRpcGxlT2YiXX07JHMubnVtYmVyPSRzLmludGVnZXI7Y29uc3QgVnM9InN0cmluZyIsaW5mZXJUeXBlRnJvbVZhbHVlPWU9PnZvaWQgMD09PWU/bnVsbDpudWxsPT09ZT8ibnVsbCI6QXJyYXkuaXNBcnJheShlKT8iYXJyYXkiOk51bWJlci5pc0ludGVnZXIoZSk/ImludGVnZXIiOnR5cGVvZiBlLGZvbGRUeXBlPWU9PntpZihBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aD49MSl7aWYoZS5pbmNsdWRlcygiYXJyYXkiKSlyZXR1cm4iYXJyYXkiO2lmKGUuaW5jbHVkZXMoIm9iamVjdCIpKXJldHVybiJvYmplY3QiO3tjb25zdCB0PWUuZmlsdGVyKChlPT4ibnVsbCIhPT1lKSkscj1waWNrKHQubGVuZ3RoPjA/dDplKTtpZihEcy5pbmNsdWRlcyhyKSlyZXR1cm4gcn19cmV0dXJuIERzLmluY2x1ZGVzKGUpP2U6bnVsbH0saW5mZXJUeXBlPShlLHQ9bmV3IFdlYWtTZXQpPT57aWYoIWlzSlNPTlNjaGVtYU9iamVjdChlKSlyZXR1cm4gVnM7aWYodC5oYXMoZSkpcmV0dXJuIFZzO3QuYWRkKGUpO2xldHt0eXBlOnIsY29uc3Q6bn09ZTtpZihyPWZvbGRUeXBlKHIpLCJzdHJpbmciIT10eXBlb2Ygcil7Y29uc3QgdD1PYmplY3Qua2V5cygkcyk7ZTpmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rPTEpe2NvbnN0IGE9dFtuXSxvPSRzW2FdO2ZvcihsZXQgdD0wO3Q8by5sZW5ndGg7dCs9MSl7Y29uc3Qgbj1vW3RdO2lmKE9iamVjdC5oYXNPd24oZSxuKSl7cj1hO2JyZWFrIGV9fX19aWYoInN0cmluZyIhPXR5cGVvZiByJiZ2b2lkIDAhPT1uKXtjb25zdCBlPWluZmVyVHlwZUZyb21WYWx1ZShuKTtyPSJzdHJpbmciPT10eXBlb2YgZT9lOnJ9aWYoInN0cmluZyIhPXR5cGVvZiByKXtjb25zdCBjb21iaW5lVHlwZXM9cj0+e2lmKEFycmF5LmlzQXJyYXkoZVtyXSkpe2NvbnN0IG49ZVtyXS5tYXAoKGU9PmluZmVyVHlwZShlLHQpKSk7cmV0dXJuIGZvbGRUeXBlKG4pfXJldHVybiBudWxsfSxuPWNvbWJpbmVUeXBlcygiYWxsT2YiKSxhPWNvbWJpbmVUeXBlcygiYW55T2YiKSxvPWNvbWJpbmVUeXBlcygib25lT2YiKSxzPWUubm90P2luZmVyVHlwZShlLm5vdCx0KTpudWxsOyhufHxhfHxvfHxzKSYmKHI9Zm9sZFR5cGUoW24sYSxvLHNdLmZpbHRlcihCb29sZWFuKSkpfWlmKCJzdHJpbmciIT10eXBlb2YgciYmaGFzRXhhbXBsZShlKSl7Y29uc3QgdD1leHRyYWN0RXhhbXBsZShlKSxuPWluZmVyVHlwZUZyb21WYWx1ZSh0KTtyPSJzdHJpbmciPT10eXBlb2Ygbj9uOnJ9cmV0dXJuIHQuZGVsZXRlKGUpLHJ8fFZzfSx0eXBlX2dldFR5cGU9ZT0+aW5mZXJUeXBlKGUpLHR5cGVDYXN0PWU9PnByZWRpY2F0ZXNfaXNCb29sZWFuSlNPTlNjaGVtYShlKT8oZT0+ITE9PT1lP3tub3Q6e319Ont9KShlKTppc0pTT05TY2hlbWFPYmplY3QoZSk/ZTp7fSxtZXJnZT0oZSx0LHI9e30pPT57aWYocHJlZGljYXRlc19pc0Jvb2xlYW5KU09OU2NoZW1hKGUpJiYhMD09PWUpcmV0dXJuITA7aWYocHJlZGljYXRlc19pc0Jvb2xlYW5KU09OU2NoZW1hKGUpJiYhMT09PWUpcmV0dXJuITE7aWYocHJlZGljYXRlc19pc0Jvb2xlYW5KU09OU2NoZW1hKHQpJiYhMD09PXQpcmV0dXJuITA7aWYocHJlZGljYXRlc19pc0Jvb2xlYW5KU09OU2NoZW1hKHQpJiYhMT09PXQpcmV0dXJuITE7aWYoIWlzSlNPTlNjaGVtYShlKSlyZXR1cm4gdDtpZighaXNKU09OU2NoZW1hKHQpKXJldHVybiBlO2NvbnN0IG49ey4uLnQsLi4uZX07aWYodC50eXBlJiZlLnR5cGUmJkFycmF5LmlzQXJyYXkodC50eXBlKSYmInN0cmluZyI9PXR5cGVvZiB0LnR5cGUpe2NvbnN0IHI9bm9ybWFsaXplQXJyYXkodC50eXBlKS5jb25jYXQoZS50eXBlKTtuLnR5cGU9QXJyYXkuZnJvbShuZXcgU2V0KHIpKX1pZihBcnJheS5pc0FycmF5KHQucmVxdWlyZWQpJiZBcnJheS5pc0FycmF5KGUucmVxdWlyZWQpJiYobi5yZXF1aXJlZD1bLi4ubmV3IFNldChbLi4uZS5yZXF1aXJlZCwuLi50LnJlcXVpcmVkXSldKSx0LnByb3BlcnRpZXMmJmUucHJvcGVydGllcyl7Y29uc3QgYT1uZXcgU2V0KFsuLi5PYmplY3Qua2V5cyh0LnByb3BlcnRpZXMpLC4uLk9iamVjdC5rZXlzKGUucHJvcGVydGllcyldKTtuLnByb3BlcnRpZXM9e307Zm9yKGNvbnN0IG8gb2YgYSl7Y29uc3QgYT10LnByb3BlcnRpZXNbb118fHt9LHM9ZS5wcm9wZXJ0aWVzW29dfHx7fTthLnJlYWRPbmx5JiYhci5pbmNsdWRlUmVhZE9ubHl8fGEud3JpdGVPbmx5JiYhci5pbmNsdWRlV3JpdGVPbmx5P24ucmVxdWlyZWQ9KG4ucmVxdWlyZWR8fFtdKS5maWx0ZXIoKGU9PmUhPT1vKSk6bi5wcm9wZXJ0aWVzW29dPW1lcmdlKHMsYSxyKX19cmV0dXJuIGlzSlNPTlNjaGVtYSh0Lml0ZW1zKSYmaXNKU09OU2NoZW1hKGUuaXRlbXMpJiYobi5pdGVtcz1tZXJnZShlLml0ZW1zLHQuaXRlbXMscikpLGlzSlNPTlNjaGVtYSh0LmNvbnRhaW5zKSYmaXNKU09OU2NoZW1hKGUuY29udGFpbnMpJiYobi5jb250YWlucz1tZXJnZShlLmNvbnRhaW5zLHQuY29udGFpbnMscikpLGlzSlNPTlNjaGVtYSh0LmNvbnRlbnRTY2hlbWEpJiZpc0pTT05TY2hlbWEoZS5jb250ZW50U2NoZW1hKSYmKG4uY29udGVudFNjaGVtYT1tZXJnZShlLmNvbnRlbnRTY2hlbWEsdC5jb250ZW50U2NoZW1hLHIpKSxufTt2YXIgSnM9bWVyZ2U7Y29uc3QgbWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYz0oZSx0PXt9LHI9dm9pZCAwLG49ITEpPT57aWYobnVsbD09ZSYmdm9pZCAwPT09cilyZXR1cm47ImZ1bmN0aW9uIj09dHlwZW9mIGU/LnRvSlMmJihlPWUudG9KUygpKSxlPXR5cGVDYXN0KGUpO2xldCBhPXZvaWQgMCE9PXJ8fGhhc0V4YW1wbGUoZSk7Y29uc3Qgbz0hYSYmQXJyYXkuaXNBcnJheShlLm9uZU9mKSYmZS5vbmVPZi5sZW5ndGg+MCxzPSFhJiZBcnJheS5pc0FycmF5KGUuYW55T2YpJiZlLmFueU9mLmxlbmd0aD4wO2lmKCFhJiYob3x8cykpe2NvbnN0IHI9dHlwZUNhc3QocGljayhvP2Uub25lT2Y6ZS5hbnlPZikpOyEoZT1KcyhlLHIsdCkpLnhtbCYmci54bWwmJihlLnhtbD1yLnhtbCksaGFzRXhhbXBsZShlKSYmaGFzRXhhbXBsZShyKSYmKGE9ITApfWNvbnN0IGw9e307bGV0e3htbDppLHByb3BlcnRpZXM6YyxhZGRpdGlvbmFsUHJvcGVydGllczp1LGl0ZW1zOmQsY29udGFpbnM6cH09ZXx8e30sbT10eXBlX2dldFR5cGUoZSkse2luY2x1ZGVSZWFkT25seTpmLGluY2x1ZGVXcml0ZU9ubHk6aH09dDtpPWl8fHt9O2xldCBnLHtuYW1lOnkscHJlZml4OlMsbmFtZXNwYWNlOl99PWksdj17fTtpZihPYmplY3QuaGFzT3duKGUsInR5cGUiKXx8KGUudHlwZT1tKSxuJiYoeT15fHwibm90YWduYW1lIixnPShTP2Ake1N9OmA6IiIpK3ksXykpe2xbUz9geG1sbnM6JHtTfWA6InhtbG5zIl09X31uJiYodltnXT1bXSk7Y29uc3QgYj1vYmplY3RpZnkoYyk7bGV0IHcsQz0wO2NvbnN0IGhhc0V4Y2VlZGVkTWF4UHJvcGVydGllcz0oKT0+TnVtYmVyLmlzSW50ZWdlcihlLm1heFByb3BlcnRpZXMpJiZlLm1heFByb3BlcnRpZXM+MCYmQz49ZS5tYXhQcm9wZXJ0aWVzLGNhbkFkZFByb3BlcnR5PXQ9PiEoTnVtYmVyLmlzSW50ZWdlcihlLm1heFByb3BlcnRpZXMpJiZlLm1heFByb3BlcnRpZXM+MCl8fCFoYXNFeGNlZWRlZE1heFByb3BlcnRpZXMoKSYmKCEodD0+IUFycmF5LmlzQXJyYXkoZS5yZXF1aXJlZCl8fDA9PT1lLnJlcXVpcmVkLmxlbmd0aHx8IWUucmVxdWlyZWQuaW5jbHVkZXModCkpKHQpfHxlLm1heFByb3BlcnRpZXMtQy0oKCk9PntpZighQXJyYXkuaXNBcnJheShlLnJlcXVpcmVkKXx8MD09PWUucmVxdWlyZWQubGVuZ3RoKXJldHVybiAwO2xldCB0PTA7cmV0dXJuIG4/ZS5yZXF1aXJlZC5mb3JFYWNoKChlPT50Kz12b2lkIDA9PT12W2VdPzA6MSkpOmUucmVxdWlyZWQuZm9yRWFjaCgoZT0+e3QrPXZvaWQgMD09PXZbZ10/LmZpbmQoKHQ9PnZvaWQgMCE9PXRbZV0pKT8wOjF9KSksZS5yZXF1aXJlZC5sZW5ndGgtdH0pKCk+MCk7aWYodz1uPyhyLGE9dm9pZCAwKT0+e2lmKGUmJmJbcl0pe2lmKGJbcl0ueG1sPWJbcl0ueG1sfHx7fSxiW3JdLnhtbC5hdHRyaWJ1dGUpe2NvbnN0IGU9QXJyYXkuaXNBcnJheShiW3JdLmVudW0pP3BpY2soYltyXS5lbnVtKTp2b2lkIDA7aWYoaGFzRXhhbXBsZShiW3JdKSlsW2Jbcl0ueG1sLm5hbWV8fHJdPWV4dHJhY3RFeGFtcGxlKGJbcl0pO2Vsc2UgaWYodm9pZCAwIT09ZSlsW2Jbcl0ueG1sLm5hbWV8fHJdPWU7ZWxzZXtjb25zdCBlPXR5cGVDYXN0KGJbcl0pLG49dHlwZV9nZXRUeXBlKGUpLG89YltyXS54bWwubmFtZXx8cjtpZigiYXJyYXkiPT09bil7Y29uc3QgZT1tYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKGJbcl0sdCxhLCExKTtsW29dPWUubWFwKChlPT4oMCxDci5kZWZhdWx0KShlKT8iVW5rbm93blR5cGVPYmplY3QiOkFycmF5LmlzQXJyYXkoZSk/IlVua25vd25UeXBlQXJyYXkiOmUpKS5qb2luKCIgIil9ZWxzZSBsW29dPSJvYmplY3QiPT09bj8iVW5rbm93blR5cGVPYmplY3QiOlVzW25dKGUpfXJldHVybn1iW3JdLnhtbC5uYW1lPWJbcl0ueG1sLm5hbWV8fHJ9ZWxzZSBiW3JdfHwhMT09PXV8fChiW3JdPXt4bWw6e25hbWU6cn19KTtsZXQgbz1tYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKGJbcl0sdCxhLG4pO2NhbkFkZFByb3BlcnR5KHIpJiYoQysrLEFycmF5LmlzQXJyYXkobyk/dltnXT12W2ddLmNvbmNhdChvKTp2W2ddLnB1c2gobykpfToocixhKT0+e2lmKGNhbkFkZFByb3BlcnR5KHIpKXtpZigoMCxDci5kZWZhdWx0KShlLmRpc2NyaW1pbmF0b3I/Lm1hcHBpbmcpJiZlLmRpc2NyaW1pbmF0b3IucHJvcGVydHlOYW1lPT09ciYmInN0cmluZyI9PXR5cGVvZiBlLiQkcmVmKXtmb3IoY29uc3QgdCBpbiBlLmRpc2NyaW1pbmF0b3IubWFwcGluZylpZigtMSE9PWUuJCRyZWYuc2VhcmNoKGUuZGlzY3JpbWluYXRvci5tYXBwaW5nW3RdKSl7dltyXT10O2JyZWFrfX1lbHNlIHZbcl09bWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhiW3JdLHQsYSxuKTtDKyt9fSxhKXtsZXQgYTtpZihhPXZvaWQgMCE9PXI/cjpleHRyYWN0RXhhbXBsZShlKSwhbil7aWYoIm51bWJlciI9PXR5cGVvZiBhJiYic3RyaW5nIj09PW0pcmV0dXJuYCR7YX1gO2lmKCJzdHJpbmciIT10eXBlb2YgYXx8InN0cmluZyI9PT1tKXJldHVybiBhO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShhKX1jYXRjaHtyZXR1cm4gYX19aWYoImFycmF5Ij09PW0pe2lmKCFBcnJheS5pc0FycmF5KGEpKXtpZigic3RyaW5nIj09dHlwZW9mIGEpcmV0dXJuIGE7YT1bYV19bGV0IHI9W107cmV0dXJuIGlzSlNPTlNjaGVtYU9iamVjdChkKSYmKGQueG1sPWQueG1sfHxpfHx7fSxkLnhtbC5uYW1lPWQueG1sLm5hbWV8fGkubmFtZSxyPWEubWFwKChlPT5tYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKGQsdCxlLG4pKSkpLGlzSlNPTlNjaGVtYU9iamVjdChwKSYmKHAueG1sPXAueG1sfHxpfHx7fSxwLnhtbC5uYW1lPXAueG1sLm5hbWV8fGkubmFtZSxyPVttYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKHAsdCx2b2lkIDAsbiksLi4ucl0pLHI9VXMuYXJyYXkoZSx7c2FtcGxlOnJ9KSxpLndyYXBwZWQ/KHZbZ109ciwoMCxOci5kZWZhdWx0KShsKXx8dltnXS5wdXNoKHtfYXR0cjpsfSkpOnY9cix2fWlmKCJvYmplY3QiPT09bSl7aWYoInN0cmluZyI9PXR5cGVvZiBhKXJldHVybiBhO2Zvcihjb25zdCBlIGluIGEpT2JqZWN0Lmhhc093bihhLGUpJiYoYltlXT8ucmVhZE9ubHkmJiFmfHxiW2VdPy53cml0ZU9ubHkmJiFofHwoYltlXT8ueG1sPy5hdHRyaWJ1dGU/bFtiW2VdLnhtbC5uYW1lfHxlXT1hW2VdOncoZSxhW2VdKSkpO3JldHVybigwLE5yLmRlZmF1bHQpKGwpfHx2W2ddLnB1c2goe19hdHRyOmx9KSx2fXJldHVybiB2W2ddPSgwLE5yLmRlZmF1bHQpKGwpP2E6W3tfYXR0cjpsfSxhXSx2fWlmKCJhcnJheSI9PT1tKXtsZXQgcj1bXTtpZihpc0pTT05TY2hlbWFPYmplY3QocCkpaWYobiYmKHAueG1sPXAueG1sfHxlLnhtbHx8e30scC54bWwubmFtZT1wLnhtbC5uYW1lfHxpLm5hbWUpLEFycmF5LmlzQXJyYXkocC5hbnlPZikpe2NvbnN0e2FueU9mOmUsLi4uYX09ZDtyLnB1c2goLi4ucC5hbnlPZi5tYXAoKGU9Pm1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoSnMoZSxhLHQpLHQsdm9pZCAwLG4pKSkpfWVsc2UgaWYoQXJyYXkuaXNBcnJheShwLm9uZU9mKSl7Y29uc3R7b25lT2Y6ZSwuLi5hfT1kO3IucHVzaCguLi5wLm9uZU9mLm1hcCgoZT0+bWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhKcyhlLGEsdCksdCx2b2lkIDAsbikpKSl9ZWxzZXtpZighKCFufHxuJiZpLndyYXBwZWQpKXJldHVybiBtYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKHAsdCx2b2lkIDAsbik7ci5wdXNoKG1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMocCx0LHZvaWQgMCxuKSl9aWYoaXNKU09OU2NoZW1hT2JqZWN0KGQpKWlmKG4mJihkLnhtbD1kLnhtbHx8ZS54bWx8fHt9LGQueG1sLm5hbWU9ZC54bWwubmFtZXx8aS5uYW1lKSxBcnJheS5pc0FycmF5KGQuYW55T2YpKXtjb25zdHthbnlPZjplLC4uLmF9PWQ7ci5wdXNoKC4uLmQuYW55T2YubWFwKChlPT5tYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKEpzKGUsYSx0KSx0LHZvaWQgMCxuKSkpKX1lbHNlIGlmKEFycmF5LmlzQXJyYXkoZC5vbmVPZikpe2NvbnN0e29uZU9mOmUsLi4uYX09ZDtyLnB1c2goLi4uZC5vbmVPZi5tYXAoKGU9Pm1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoSnMoZSxhLHQpLHQsdm9pZCAwLG4pKSkpfWVsc2V7aWYoISghbnx8biYmaS53cmFwcGVkKSlyZXR1cm4gbWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhkLHQsdm9pZCAwLG4pO3IucHVzaChtYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKGQsdCx2b2lkIDAsbikpfXJldHVybiByPVVzLmFycmF5KGUse3NhbXBsZTpyfSksbiYmaS53cmFwcGVkPyh2W2ddPXIsKDAsTnIuZGVmYXVsdCkobCl8fHZbZ10ucHVzaCh7X2F0dHI6bH0pLHYpOnJ9aWYoIm9iamVjdCI9PT1tKXtmb3IobGV0IGUgaW4gYilPYmplY3QuaGFzT3duKGIsZSkmJihiW2VdPy5kZXByZWNhdGVkfHxiW2VdPy5yZWFkT25seSYmIWZ8fGJbZV0/LndyaXRlT25seSYmIWh8fHcoZSkpO2lmKG4mJmwmJnZbZ10ucHVzaCh7X2F0dHI6bH0pLGhhc0V4Y2VlZGVkTWF4UHJvcGVydGllcygpKXJldHVybiB2O2lmKHByZWRpY2F0ZXNfaXNCb29sZWFuSlNPTlNjaGVtYSh1KSYmdSluP3ZbZ10ucHVzaCh7YWRkaXRpb25hbFByb3A6IkFueXRoaW5nIGNhbiBiZSBoZXJlIn0pOnYuYWRkaXRpb25hbFByb3AxPXt9LEMrKztlbHNlIGlmKGlzSlNPTlNjaGVtYU9iamVjdCh1KSl7Y29uc3Qgcj11LGE9bWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhyLHQsdm9pZCAwLG4pO2lmKG4mJiJzdHJpbmciPT10eXBlb2Ygcj8ueG1sPy5uYW1lJiYibm90YWduYW1lIiE9PXI/LnhtbD8ubmFtZSl2W2ddLnB1c2goYSk7ZWxzZXtjb25zdCB0PU51bWJlci5pc0ludGVnZXIoZS5taW5Qcm9wZXJ0aWVzKSYmZS5taW5Qcm9wZXJ0aWVzPjAmJkM8ZS5taW5Qcm9wZXJ0aWVzP2UubWluUHJvcGVydGllcy1DOjM7Zm9yKGxldCBlPTE7ZTw9dDtlKyspe2lmKGhhc0V4Y2VlZGVkTWF4UHJvcGVydGllcygpKXJldHVybiB2O2lmKG4pe2NvbnN0IHQ9e307dFsiYWRkaXRpb25hbFByb3AiK2VdPWEubm90YWduYW1lLHZbZ10ucHVzaCh0KX1lbHNlIHZbImFkZGl0aW9uYWxQcm9wIitlXT1hO0MrK319fXJldHVybiB2fWxldCB4O2lmKHZvaWQgMCE9PWUuY29uc3QpeD1lLmNvbnN0O2Vsc2UgaWYoZSYmQXJyYXkuaXNBcnJheShlLmVudW0pKXg9cGljayhub3JtYWxpemVBcnJheShlLmVudW0pKTtlbHNle2NvbnN0IHI9aXNKU09OU2NoZW1hT2JqZWN0KGUuY29udGVudFNjaGVtYSk/bWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhlLmNvbnRlbnRTY2hlbWEsdCx2b2lkIDAsbik6dm9pZCAwO3g9VXNbbV0oZSx7c2FtcGxlOnJ9KX1yZXR1cm4gbj8odltnXT0oMCxOci5kZWZhdWx0KShsKT94Olt7X2F0dHI6bH0seF0sdik6eH0sbWFpbl9jcmVhdGVYTUxFeGFtcGxlPShlLHQscik9Pntjb25zdCBuPW1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoZSx0LHIsITApO2lmKG4pcmV0dXJuInN0cmluZyI9PXR5cGVvZiBuP246T3IoKShuLHtkZWNsYXJhdGlvbjohMCxpbmRlbnQ6Ilx0In0pfSxtYWluX3NhbXBsZUZyb21TY2hlbWE9KGUsdCxyKT0+bWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhlLHQsciwhMSksbWFpbl9yZXNvbHZlcj0oZSx0LHIpPT5bZSxKU09OLnN0cmluZ2lmeSh0KSxKU09OLnN0cmluZ2lmeShyKV0sRnM9dXRpbHNfbWVtb2l6ZU4obWFpbl9jcmVhdGVYTUxFeGFtcGxlLG1haW5fcmVzb2x2ZXIpLHpzPXV0aWxzX21lbW9pemVOKG1haW5fc2FtcGxlRnJvbVNjaGVtYSxtYWluX3Jlc29sdmVyKTtjb25zdCBLcz1uZXcgY2xhc3MgT3B0aW9uUmVnaXN0cnkgZXh0ZW5kcyBfc3sjZT17fTtkYXRhPXsuLi50aGlzLiNlfTtnZXQgZGVmYXVsdHMoKXtyZXR1cm57Li4udGhpcy4jZX19fTt2YXIgYXBpX29wdGlvbkFQST0oZSx0KT0+KHZvaWQgMCE9PXQmJktzLnJlZ2lzdGVyKGUsdCksS3MuZ2V0KGUpKTtjb25zdCBXcz1be3doZW46L2pzb24vLHNob3VsZFN0cmluZ2lmeVR5cGVzOlsic3RyaW5nIl19XSxIcz1bIm9iamVjdCJdO3ZhciBmbl9nZXRfanNvbl9zYW1wbGVfc2NoZW1hPWU9Pih0LHIsbixhKT0+e2NvbnN0e2ZuOm99PWUoKSxzPW8uanNvblNjaGVtYTIwMjAxMi5tZW1vaXplZFNhbXBsZUZyb21TY2hlbWEodCxyLGEpLGw9dHlwZW9mIHMsaT1Xcy5yZWR1Y2UoKChlLHQpPT50LndoZW4udGVzdChuKT9bLi4uZSwuLi50LnNob3VsZFN0cmluZ2lmeVR5cGVzXTplKSxIcyk7cmV0dXJuKDAscHQuZGVmYXVsdCkoaSwoZT0+ZT09PWwpKT9KU09OLnN0cmluZ2lmeShzLG51bGwsMik6c307dmFyIGZuX2dldF95YW1sX3NhbXBsZV9zY2hlbWE9ZT0+KHQscixuLGEpPT57Y29uc3R7Zm46b309ZSgpLHM9by5qc29uU2NoZW1hMjAyMDEyLmdldEpzb25TYW1wbGVTY2hlbWEodCxyLG4sYSk7bGV0IGw7dHJ5e2w9SnQuZGVmYXVsdC5kdW1wKEp0LmRlZmF1bHQubG9hZChzKSx7bGluZVdpZHRoOi0xfSx7c2NoZW1hOkp0LkpTT05fU0NIRU1BfSksIlxuIj09PWxbbC5sZW5ndGgtMV0mJihsPWwuc2xpY2UoMCxsLmxlbmd0aC0xKSl9Y2F0Y2goZSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoZSksImVycm9yOiBjb3VsZCBub3QgZ2VuZXJhdGUgeWFtbCBleGFtcGxlIn1yZXR1cm4gbC5yZXBsYWNlKC9cdC9nLCIgICIpfTt2YXIgZm5fZ2V0X3htbF9zYW1wbGVfc2NoZW1hPWU9Pih0LHIsbik9Pntjb25zdHtmbjphfT1lKCk7aWYodCYmIXQueG1sJiYodC54bWw9e30pLHQmJiF0LnhtbC5uYW1lKXtpZighdC4kJHJlZiYmKHQudHlwZXx8dC5pdGVtc3x8dC5wcm9wZXJ0aWVzfHx0LmFkZGl0aW9uYWxQcm9wZXJ0aWVzKSlyZXR1cm4nPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz5cblx4M2MhLS0gWE1MIGV4YW1wbGUgY2Fubm90IGJlIGdlbmVyYXRlZDsgcm9vdCBlbGVtZW50IG5hbWUgaXMgdW5kZWZpbmVkIC0tXHgzZSc7aWYodC4kJHJlZil7bGV0IGU9dC4kJHJlZi5tYXRjaCgvXFMqXC8oXFMrKSQvKTt0LnhtbC5uYW1lPWVbMV19fXJldHVybiBhLmpzb25TY2hlbWEyMDIwMTIubWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlKHQscixuKX07dmFyIGZuX2dldF9zYW1wbGVfc2NoZW1hPWU9Pih0LHI9IiIsbj17fSxhPXZvaWQgMCk9Pntjb25zdHtmbjpvfT1lKCk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/LnRvSlMmJih0PXQudG9KUygpKSwiZnVuY3Rpb24iPT10eXBlb2YgYT8udG9KUyYmKGE9YS50b0pTKCkpLC94bWwvLnRlc3Qocik/by5qc29uU2NoZW1hMjAyMDEyLmdldFhtbFNhbXBsZVNjaGVtYSh0LG4sYSk6Lyh5YW1sfHltbCkvLnRlc3Qocik/by5qc29uU2NoZW1hMjAyMDEyLmdldFlhbWxTYW1wbGVTY2hlbWEodCxuLHIsYSk6by5qc29uU2NoZW1hMjAyMDEyLmdldEpzb25TYW1wbGVTY2hlbWEodCxuLHIsYSl9O3ZhciBqc29uX3NjaGVtYV8yMDIwXzEyX3NhbXBsZXM9KHtnZXRTeXN0ZW06ZX0pPT57Y29uc3QgdD1mbl9nZXRfanNvbl9zYW1wbGVfc2NoZW1hKGUpLHI9Zm5fZ2V0X3lhbWxfc2FtcGxlX3NjaGVtYShlKSxuPWZuX2dldF94bWxfc2FtcGxlX3NjaGVtYShlKSxhPWZuX2dldF9zYW1wbGVfc2NoZW1hKGUpO3JldHVybntmbjp7anNvblNjaGVtYTIwMjAxMjp7c2FtcGxlRnJvbVNjaGVtYTptYWluX3NhbXBsZUZyb21TY2hlbWEsc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWM6bWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyxzYW1wbGVPcHRpb25BUEk6YXBpX29wdGlvbkFQSSxzYW1wbGVFbmNvZGVyQVBJOmpzLHNhbXBsZUZvcm1hdEFQSTpicyxzYW1wbGVNZWRpYVR5cGVBUEk6THMsY3JlYXRlWE1MRXhhbXBsZTptYWluX2NyZWF0ZVhNTEV4YW1wbGUsbWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hOnpzLG1lbW9pemVkQ3JlYXRlWE1MRXhhbXBsZTpGcyxnZXRKc29uU2FtcGxlU2NoZW1hOnQsZ2V0WWFtbFNhbXBsZVNjaGVtYTpyLGdldFhtbFNhbXBsZVNjaGVtYTpuLGdldFNhbXBsZVNjaGVtYTphLG1lcmdlSnNvblNjaGVtYTpKcyxmb2xkVHlwZX19fX07ZnVuY3Rpb24gUHJlc2V0QXBpcygpe3JldHVybltiYXNlLG9hczMsanNvbl9zY2hlbWFfMjAyMF8xMixqc29uX3NjaGVtYV8yMDIwXzEyX3NhbXBsZXMsb2FzMzFdfXZhciBpbmxpbmVfcGx1Z2luPWU9PigpPT4oe2ZuOmUuZm4sY29tcG9uZW50czplLmNvbXBvbmVudHN9KTt2YXIgZmFjdG9yaXphdGlvbl9zeXN0ZW09ZT0+e2NvbnN0IHQ9UWUoKSh7bGF5b3V0OntsYXlvdXQ6ZS5sYXlvdXQsZmlsdGVyOmUuZmlsdGVyfSxzcGVjOntzcGVjOiIiLHVybDplLnVybH0scmVxdWVzdFNuaXBwZXRzOmUucmVxdWVzdFNuaXBwZXRzfSxlLmluaXRpYWxTdGF0ZSk7aWYoZS5pbml0aWFsU3RhdGUpZm9yKGNvbnN0W3Isbl1vZiBPYmplY3QuZW50cmllcyhlLmluaXRpYWxTdGF0ZSkpdm9pZCAwPT09biYmZGVsZXRlIHRbcl07cmV0dXJue3N5c3RlbTp7Y29uZmlnczplLmNvbmZpZ3N9LHBsdWdpbnM6ZS5wcmVzZXRzLHN0YXRlOnR9fTt2YXIgcXVlcnk9KCk9PmU9Pntjb25zdCB0PWUucXVlcnlDb25maWdFbmFibGVkPygoKT0+e2NvbnN0IGU9bmV3IFVSTFNlYXJjaFBhcmFtcyhjdC5sb2NhdGlvbi5zZWFyY2gpO3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoZSl9KSgpOnt9O3JldHVybiBPYmplY3QuZW50cmllcyh0KS5yZWR1Y2UoKChlLFt0LHJdKT0+KCJjb25maWciPT09dD9lLmNvbmZpZ1VybD1yOiJ1cmxzLnByaW1hcnlOYW1lIj09PXQ/ZVt0XT1yOmU9KDAsX24uZGVmYXVsdCkoZSx0LHIpLGUpKSx7fSl9O3ZhciBzb3VyY2VzX3VybD0oe3VybDplLHN5c3RlbTp0fSk9PmFzeW5jIHI9PntpZighZSlyZXR1cm57fTtpZigiZnVuY3Rpb24iIT10eXBlb2YgdC5jb25maWdzQWN0aW9ucz8uZ2V0Q29uZmlnQnlVcmwpcmV0dXJue307Y29uc3Qgbj0oKCk9Pntjb25zdCBlPXt9O3JldHVybiBlLnByb21pc2U9bmV3IFByb21pc2UoKCh0LHIpPT57ZS5yZXNvbHZlPXQsZS5yZWplY3Q9cn0pKSxlfSkoKTtyZXR1cm4gdC5jb25maWdzQWN0aW9ucy5nZXRDb25maWdCeVVybCh7dXJsOmUsbG9hZFJlbW90ZUNvbmZpZzohMCxyZXF1ZXN0SW50ZXJjZXB0b3I6ci5yZXF1ZXN0SW50ZXJjZXB0b3IscmVzcG9uc2VJbnRlcmNlcHRvcjpyLnJlc3BvbnNlSW50ZXJjZXB0b3J9LChlPT57bi5yZXNvbHZlKGUpfSkpLG4ucHJvbWlzZX07dmFyIHJ1bnRpbWU9KCk9PigpPT57Y29uc3QgZT17fTtyZXR1cm4gZ2xvYmFsVGhpcy5sb2NhdGlvbiYmKGUub2F1dGgyUmVkaXJlY3RVcmw9YCR7Z2xvYmFsVGhpcy5sb2NhdGlvbi5wcm90b2NvbH0vLyR7Z2xvYmFsVGhpcy5sb2NhdGlvbi5ob3N0fSR7Z2xvYmFsVGhpcy5sb2NhdGlvbi5wYXRobmFtZS5zdWJzdHJpbmcoMCxnbG9iYWxUaGlzLmxvY2F0aW9uLnBhdGhuYW1lLmxhc3RJbmRleE9mKCIvIikpfS9vYXV0aDItcmVkaXJlY3QuaHRtbGApLGV9O3ZhciBHcz1PYmplY3QuZnJlZXplKHtkb21faWQ6bnVsbCxkb21Ob2RlOm51bGwsc3BlYzp7fSx1cmw6IiIsdXJsczpudWxsLGNvbmZpZ1VybDpudWxsLGxheW91dDoiQmFzZUxheW91dCIsZG9jRXhwYW5zaW9uOiJsaXN0IixtYXhEaXNwbGF5ZWRUYWdzOi0xLGZpbHRlcjohMSx2YWxpZGF0b3JVcmw6Imh0dHBzOi8vdmFsaWRhdG9yLnN3YWdnZXIuaW8vdmFsaWRhdG9yIixvYXV0aDJSZWRpcmVjdFVybDp2b2lkIDAscGVyc2lzdEF1dGhvcml6YXRpb246ITEsY29uZmlnczp7fSxkaXNwbGF5T3BlcmF0aW9uSWQ6ITEsZGlzcGxheVJlcXVlc3REdXJhdGlvbjohMSxkZWVwTGlua2luZzohMSx0cnlJdE91dEVuYWJsZWQ6ITEscmVxdWVzdEludGVyY2VwdG9yOmU9PihlLmN1cmxPcHRpb25zPVtdLGUpLHJlc3BvbnNlSW50ZXJjZXB0b3I6ZT0+ZSxzaG93TXV0YXRlZFJlcXVlc3Q6ITAsZGVmYXVsdE1vZGVsUmVuZGVyaW5nOiJleGFtcGxlIixkZWZhdWx0TW9kZWxFeHBhbmREZXB0aDoxLGRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aDoxLHNob3dFeHRlbnNpb25zOiExLHNob3dDb21tb25FeHRlbnNpb25zOiExLHdpdGhDcmVkZW50aWFsczohMSxyZXF1ZXN0U25pcHBldHNFbmFibGVkOiExLHJlcXVlc3RTbmlwcGV0czp7Z2VuZXJhdG9yczp7Y3VybF9iYXNoOnt0aXRsZToiY1VSTCAoYmFzaCkiLHN5bnRheDoiYmFzaCJ9LGN1cmxfcG93ZXJzaGVsbDp7dGl0bGU6ImNVUkwgKFBvd2VyU2hlbGwpIixzeW50YXg6InBvd2Vyc2hlbGwifSxjdXJsX2NtZDp7dGl0bGU6ImNVUkwgKENNRCkiLHN5bnRheDoiYmFzaCJ9fSxkZWZhdWx0RXhwYW5kZWQ6ITAsbGFuZ3VhZ2VzOm51bGx9LHN1cHBvcnRlZFN1Ym1pdE1ldGhvZHM6WyJnZXQiLCJwdXQiLCJwb3N0IiwiZGVsZXRlIiwib3B0aW9ucyIsImhlYWQiLCJwYXRjaCIsInRyYWNlIl0scXVlcnlDb25maWdFbmFibGVkOiExLHByZXNldHM6W1ByZXNldEFwaXNdLHBsdWdpbnM6W10saW5pdGlhbFN0YXRlOnt9LGZuOnt9LGNvbXBvbmVudHM6e30sc3ludGF4SGlnaGxpZ2h0OnthY3RpdmF0ZWQ6ITAsdGhlbWU6ImFnYXRlIn0sb3BlcmF0aW9uc1NvcnRlcjpudWxsLHRhZ3NTb3J0ZXI6bnVsbCxvbkNvbXBsZXRlOm51bGwsbW9kZWxQcm9wZXJ0eU1hY3JvOm51bGwscGFyYW1ldGVyTWFjcm86bnVsbCxmaWxlVXBsb2FkTWVkaWFUeXBlczpbImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsImltYWdlLyIsImF1ZGlvLyIsInZpZGVvLyJdLHVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcjpudWxsfSksWHM9ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LGUpLHR9KHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIHZlLmRlZmF1bHR9fSksWXM9ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LGUpLHR9KHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIGJlLmRlZmF1bHR9fSk7dmFyIHR5cGVfY2FzdGVyc19hcnJheT0oZSx0PVtdKT0+QXJyYXkuaXNBcnJheShlKT9lOnQ7dmFyIHR5cGVfY2FzdGVyc19ib29sZWFuPShlLHQ9ITEpPT4hMD09PWV8fCJ0cnVlIj09PWV8fDE9PT1lfHwiMSI9PT1lfHwhMSE9PWUmJiJmYWxzZSIhPT1lJiYwIT09ZSYmIjAiIT09ZSYmdDt2YXIgZG9tX25vZGU9ZT0+bnVsbD09PWV8fCJudWxsIj09PWU/bnVsbDplO3ZhciB0eXBlX2Nhc3RlcnNfZmlsdGVyPWU9Pntjb25zdCB0PVN0cmluZyhlKTtyZXR1cm4gdHlwZV9jYXN0ZXJzX2Jvb2xlYW4oZSx0KX07dmFyIHR5cGVfY2FzdGVyc19mdW5jdGlvbj0oZSx0KT0+ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTp0O3ZhciBudWxsYWJsZV9hcnJheT1lPT5BcnJheS5pc0FycmF5KGUpP2U6bnVsbDt2YXIgbnVsbGFibGVfZnVuY3Rpb249ZT0+ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpudWxsO3ZhciBudWxsYWJsZV9zdHJpbmc9ZT0+bnVsbD09PWV8fCJudWxsIj09PWU/bnVsbDpTdHJpbmcoZSk7dmFyIHR5cGVfY2FzdGVyc19udW1iZXI9KGUsdD0tMSk9Pntjb25zdCByPXBhcnNlSW50KGUsMTApO3JldHVybiBOdW1iZXIuaXNOYU4ocik/dDpyfTt2YXIgdHlwZV9jYXN0ZXJzX29iamVjdD0oZSx0PXt9KT0+KDAsQ3IuZGVmYXVsdCkoZSk/ZTp0O3ZhciBzb3J0ZXI9ZT0+ImZ1bmN0aW9uIj09dHlwZW9mIGV8fCJzdHJpbmciPT10eXBlb2YgZT9lOm51bGw7dmFyIHR5cGVfY2FzdGVyc19zdHJpbmc9ZT0+U3RyaW5nKGUpO3ZhciBzeW50YXhfaGlnaGxpZ2h0PShlLHQpPT4oMCxDci5kZWZhdWx0KShlKT9lOiExPT09ZXx8ImZhbHNlIj09PWV8fDA9PT1lfHwiMCI9PT1lP3thY3RpdmF0ZWQ6ITF9OnQ7dmFyIHVuZGVmaW5lZF9zdHJpbmc9ZT0+dm9pZCAwPT09ZXx8InVuZGVmaW5lZCI9PT1lP3ZvaWQgMDpTdHJpbmcoZSk7dmFyIFFzPXtjb21wb25lbnRzOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19vYmplY3R9LGNvbmZpZ3M6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX29iamVjdH0sY29uZmlnVXJsOnt0eXBlQ2FzdGVyOm51bGxhYmxlX3N0cmluZ30sZGVlcExpbmtpbmc6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX2Jvb2xlYW4sZGVmYXVsdFZhbHVlOkdzLmRlZXBMaW5raW5nfSxkZWZhdWx0TW9kZWxFeHBhbmREZXB0aDp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfbnVtYmVyLGRlZmF1bHRWYWx1ZTpHcy5kZWZhdWx0TW9kZWxFeHBhbmREZXB0aH0sZGVmYXVsdE1vZGVsUmVuZGVyaW5nOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19zdHJpbmd9LGRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aDp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfbnVtYmVyLGRlZmF1bHRWYWx1ZTpHcy5kZWZhdWx0TW9kZWxzRXhwYW5kRGVwdGh9LGRpc3BsYXlPcGVyYXRpb25JZDp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfYm9vbGVhbixkZWZhdWx0VmFsdWU6R3MuZGlzcGxheU9wZXJhdGlvbklkfSxkaXNwbGF5UmVxdWVzdER1cmF0aW9uOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19ib29sZWFuLGRlZmF1bHRWYWx1ZTpHcy5kaXNwbGF5UmVxdWVzdER1cmF0aW9ufSxkb2NFeHBhbnNpb246e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX3N0cmluZ30sZG9tX2lkOnt0eXBlQ2FzdGVyOm51bGxhYmxlX3N0cmluZ30sZG9tTm9kZTp7dHlwZUNhc3Rlcjpkb21fbm9kZX0sZmlsZVVwbG9hZE1lZGlhVHlwZXM6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX2FycmF5LGRlZmF1bHRWYWx1ZTpHcy5maWxlVXBsb2FkTWVkaWFUeXBlc30sZmlsdGVyOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19maWx0ZXJ9LGZuOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19vYmplY3R9LGluaXRpYWxTdGF0ZTp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfb2JqZWN0fSxsYXlvdXQ6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX3N0cmluZ30sbWF4RGlzcGxheWVkVGFnczp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfbnVtYmVyLGRlZmF1bHRWYWx1ZTpHcy5tYXhEaXNwbGF5ZWRUYWdzfSxtb2RlbFByb3BlcnR5TWFjcm86e3R5cGVDYXN0ZXI6bnVsbGFibGVfZnVuY3Rpb259LG9hdXRoMlJlZGlyZWN0VXJsOnt0eXBlQ2FzdGVyOnVuZGVmaW5lZF9zdHJpbmd9LG9uQ29tcGxldGU6e3R5cGVDYXN0ZXI6bnVsbGFibGVfZnVuY3Rpb259LG9wZXJhdGlvbnNTb3J0ZXI6e3R5cGVDYXN0ZXI6c29ydGVyfSxwYXJhbWF0ZXJNYWNybzp7dHlwZUNhc3RlcjpudWxsYWJsZV9mdW5jdGlvbn0scGVyc2lzdEF1dGhvcml6YXRpb246e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX2Jvb2xlYW4sZGVmYXVsdFZhbHVlOkdzLnBlcnNpc3RBdXRob3JpemF0aW9ufSxwbHVnaW5zOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19hcnJheSxkZWZhdWx0VmFsdWU6R3MucGx1Z2luc30scHJlc2V0czp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfYXJyYXksZGVmYXVsdFZhbHVlOkdzLnByZXNldHN9LHJlcXVlc3RJbnRlcmNlcHRvcjp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfZnVuY3Rpb24sZGVmYXVsdFZhbHVlOkdzLnJlcXVlc3RJbnRlcmNlcHRvcn0scmVxdWVzdFNuaXBwZXRzOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19vYmplY3QsZGVmYXVsdFZhbHVlOkdzLnJlcXVlc3RTbmlwcGV0c30scmVxdWVzdFNuaXBwZXRzRW5hYmxlZDp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfYm9vbGVhbixkZWZhdWx0VmFsdWU6R3MucmVxdWVzdFNuaXBwZXRzRW5hYmxlZH0scmVzcG9uc2VJbnRlcmNlcHRvcjp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfZnVuY3Rpb24sZGVmYXVsdFZhbHVlOkdzLnJlc3BvbnNlSW50ZXJjZXB0b3J9LHNob3dDb21tb25FeHRlbnNpb25zOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19ib29sZWFuLGRlZmF1bHRWYWx1ZTpHcy5zaG93Q29tbW9uRXh0ZW5zaW9uc30sc2hvd0V4dGVuc2lvbnM6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX2Jvb2xlYW4sZGVmYXVsdFZhbHVlOkdzLnNob3dFeHRlbnNpb25zfSxzaG93TXV0YXRlZFJlcXVlc3Q6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX2Jvb2xlYW4sZGVmYXVsdFZhbHVlOkdzLnNob3dNdXRhdGVkUmVxdWVzdH0sc3BlYzp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfb2JqZWN0LGRlZmF1bHRWYWx1ZTpHcy5zcGVjfSxzdXBwb3J0ZWRTdWJtaXRNZXRob2RzOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19hcnJheSxkZWZhdWx0VmFsdWU6R3Muc3VwcG9ydGVkU3VibWl0TWV0aG9kc30sc3ludGF4SGlnaGxpZ2h0Ont0eXBlQ2FzdGVyOnN5bnRheF9oaWdobGlnaHQsZGVmYXVsdFZhbHVlOkdzLnN5bnRheEhpZ2hsaWdodH0sInN5bnRheEhpZ2hsaWdodC5hY3RpdmF0ZWQiOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19ib29sZWFuLGRlZmF1bHRWYWx1ZTpHcy5zeW50YXhIaWdobGlnaHQuYWN0aXZhdGVkfSwic3ludGF4SGlnaGxpZ2h0LnRoZW1lIjp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfc3RyaW5nfSx0YWdzU29ydGVyOnt0eXBlQ2FzdGVyOnNvcnRlcn0sdHJ5SXRPdXRFbmFibGVkOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19ib29sZWFuLGRlZmF1bHRWYWx1ZTpHcy50cnlJdE91dEVuYWJsZWR9LHVybDp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfc3RyaW5nfSx1cmxzOnt0eXBlQ2FzdGVyOm51bGxhYmxlX2FycmF5fSwidXJscy5wcmltYXJ5TmFtZSI6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX3N0cmluZ30sdmFsaWRhdG9yVXJsOnt0eXBlQ2FzdGVyOm51bGxhYmxlX3N0cmluZ30sd2l0aENyZWRlbnRpYWxzOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19ib29sZWFuLGRlZmF1bHRWYWx1ZTpHcy53aXRoQ3JlZGVudGlhbHN9LHVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcjp7dHlwZUNhc3RlcjpudWxsYWJsZV9mdW5jdGlvbn19O3ZhciB0eXBlX2Nhc3Q9ZT0+T2JqZWN0LmVudHJpZXMoUXMpLnJlZHVjZSgoKGUsW3Qse3R5cGVDYXN0ZXI6cixkZWZhdWx0VmFsdWU6bn1dKT0+e2lmKCgwLFhzLmRlZmF1bHQpKGUsdCkpe2NvbnN0IGE9cigoMCxadC5kZWZhdWx0KShlLHQpLG4pO2U9KDAsWXMuZGVmYXVsdCkodCxhLGUpfXJldHVybiBlfSksey4uLmV9KTt2YXIgY29uZmlnX21lcmdlPShlLC4uLnQpPT57bGV0IHI9U3ltYm9sLmZvcigiZG9tTm9kZSIpLG49U3ltYm9sLmZvcigicHJpbWFyeU5hbWUiKTtjb25zdCBhPVtdO2Zvcihjb25zdCBlIG9mIHQpe2NvbnN0IHQ9ey4uLmV9O09iamVjdC5oYXNPd24odCwiZG9tTm9kZSIpJiYocj10LmRvbU5vZGUsZGVsZXRlIHQuZG9tTm9kZSksT2JqZWN0Lmhhc093bih0LCJ1cmxzLnByaW1hcnlOYW1lIik/KG49dFsidXJscy5wcmltYXJ5TmFtZSJdLGRlbGV0ZSB0WyJ1cmxzLnByaW1hcnlOYW1lIl0pOkFycmF5LmlzQXJyYXkodC51cmxzKSYmT2JqZWN0Lmhhc093bih0LnVybHMsInByaW1hcnlOYW1lIikmJihuPXQudXJscy5wcmltYXJ5TmFtZSxkZWxldGUgdC51cmxzLnByaW1hcnlOYW1lKSxhLnB1c2godCl9Y29uc3Qgbz1RZSgpKGUsLi4uYSk7cmV0dXJuIHIhPT1TeW1ib2wuZm9yKCJkb21Ob2RlIikmJihvLmRvbU5vZGU9ciksbiE9PVN5bWJvbC5mb3IoInByaW1hcnlOYW1lIikmJkFycmF5LmlzQXJyYXkoby51cmxzKSYmKG8udXJscy5wcmltYXJ5TmFtZT1uKSx0eXBlX2Nhc3Qobyl9O2Z1bmN0aW9uIFN3YWdnZXJVSShlKXtjb25zdCB0PXF1ZXJ5KCkoZSkscj1ydW50aW1lKCkoKSxuPVN3YWdnZXJVSS5jb25maWcubWVyZ2Uoe30sU3dhZ2dlclVJLmNvbmZpZy5kZWZhdWx0cyxyLGUsdCksYT1mYWN0b3JpemF0aW9uX3N5c3RlbShuKSxvPWlubGluZV9wbHVnaW4obikscz1uZXcgU3RvcmUoYSk7cy5yZWdpc3Rlcihbbi5wbHVnaW5zLG9dKTtjb25zdCBsPXMuZ2V0U3lzdGVtKCkscGVyc2lzdENvbmZpZ3M9ZT0+e3Muc2V0Q29uZmlncyhlKSxsLmNvbmZpZ3NBY3Rpb25zLmxvYWRlZCgpfSx1cGRhdGVTcGVjPWU9PnshdC51cmwmJiJvYmplY3QiPT10eXBlb2YgZS5zcGVjJiZPYmplY3Qua2V5cyhlLnNwZWMpLmxlbmd0aD4wPyhsLnNwZWNBY3Rpb25zLnVwZGF0ZVVybCgiIiksbC5zcGVjQWN0aW9ucy51cGRhdGVMb2FkaW5nU3RhdHVzKCJzdWNjZXNzIiksbC5zcGVjQWN0aW9ucy51cGRhdGVTcGVjKEpTT04uc3RyaW5naWZ5KGUuc3BlYykpKToiZnVuY3Rpb24iPT10eXBlb2YgbC5zcGVjQWN0aW9ucy5kb3dubG9hZCYmZS51cmwmJiFlLnVybHMmJihsLnNwZWNBY3Rpb25zLnVwZGF0ZVVybChlLnVybCksbC5zcGVjQWN0aW9ucy5kb3dubG9hZChlLnVybCkpfSxyZW5kZXI9ZT0+e2lmKGUuZG9tTm9kZSlsLnJlbmRlcihlLmRvbU5vZGUsIkFwcCIpO2Vsc2UgaWYoZS5kb21faWQpe2NvbnN0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlLmRvbV9pZCk7bC5yZW5kZXIodCwiQXBwIil9ZWxzZSBudWxsPT09ZS5kb21faWR8fG51bGw9PT1lLmRvbU5vZGV8fGNvbnNvbGUuZXJyb3IoIlNraXBwZWQgcmVuZGVyaW5nOiBubyBgZG9tX2lkYCBvciBgZG9tTm9kZWAgd2FzIHNwZWNpZmllZCIpfTtyZXR1cm4gbi5jb25maWdVcmw/KChhc3luYygpPT57Y29uc3R7Y29uZmlnVXJsOmV9PW4scj1hd2FpdCBzb3VyY2VzX3VybCh7dXJsOmUsc3lzdGVtOmx9KShuKSxhPVN3YWdnZXJVSS5jb25maWcubWVyZ2Uoe30sbixyLHQpO3BlcnNpc3RDb25maWdzKGEpLG51bGwhPT1yJiZ1cGRhdGVTcGVjKGEpLHJlbmRlcihhKX0pKCksbCk6KHBlcnNpc3RDb25maWdzKG4pLHVwZGF0ZVNwZWMobikscmVuZGVyKG4pLGwpfVN3YWdnZXJVSS5TeXN0ZW09U3RvcmUsU3dhZ2dlclVJLmNvbmZpZz17ZGVmYXVsdHM6R3MsbWVyZ2U6Y29uZmlnX21lcmdlLHR5cGVDYXN0OnR5cGVfY2FzdCx0eXBlQ2FzdE1hcHBpbmdzOlFzfSxTd2FnZ2VyVUkucHJlc2V0cz17YmFzZSxhcGlzOlByZXNldEFwaXN9LFN3YWdnZXJVSS5wbHVnaW5zPXtBdXRoOmF1dGgsQ29uZmlnczpjb25maWdzUGx1Z2luLERlZXBMaW5pbmc6ZGVlcF9saW5raW5nLEVycjplcnIsRmlsdGVyOmZpbHRlcixJY29uczppY29ucyxKU09OU2NoZW1hNTpqc29uX3NjaGVtYV81LEpTT05TY2hlbWE1U2FtcGxlczpqc29uX3NjaGVtYV81X3NhbXBsZXMsSlNPTlNjaGVtYTIwMjAxMjpqc29uX3NjaGVtYV8yMDIwXzEyLEpTT05TY2hlbWEyMDIwMTJTYW1wbGVzOmpzb25fc2NoZW1hXzIwMjBfMTJfc2FtcGxlcyxMYXlvdXQ6cGx1Z2luc19sYXlvdXQsTG9nczpsb2dzLE9wZW5BUEkzMDpvYXMzLE9wZW5BUEkzMTpvYXMzLE9uQ29tcGxldGU6b25fY29tcGxldGUsUmVxdWVzdFNuaXBwZXRzOnBsdWdpbnNfcmVxdWVzdF9zbmlwcGV0cyxTcGVjOnBsdWdpbnNfc3BlYyxTd2FnZ2VyQ2xpZW50OnN3YWdnZXJfY2xpZW50LFV0aWw6dXRpbCxWaWV3OnZpZXcsVmlld0xlZ2FjeTp2aWV3X2xlZ2FjeSxEb3dubG9hZFVybDpkb3dubG9hZFVybFBsdWdpbixTeW50YXhIaWdobGlnaHRpbmc6c3ludGF4X2hpZ2hsaWdodGluZyxWZXJzaW9uczp2ZXJzaW9ucyxTYWZlUmVuZGVyOnNhZmVfcmVuZGVyfTt2YXIgWnM9U3dhZ2dlclVJLGVsPXhlLkE7ZXhwb3J0e2VsIGFzIGRlZmF1bHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1zd2FnZ2VyLXVpLWVzLWJ1bmRsZS1jb3JlLmpzLm1hcA==</File>
        <File Location="var/httpd/htdocs/js/thirdparty/swagger/swagger-ui-es-bundle-core.js.map" Permission="660" Encode="Base64">eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dhZ2dlci11aS1lcy1idW5kbGUtY29yZS5qcyIsIm1hcHBpbmdzIjoiO3N2R0F1QkEsSUFPSUEsRUFQQUMsRUFBdUIsaUJBQVpDLFFBQXVCQSxRQUFVLEtBQzVDQyxFQUFlRixHQUF3QixtQkFBWkEsRUFBRUcsTUFDN0JILEVBQUVHLE1BQ0YsU0FBU0QsYUFBYUUsRUFBUUMsRUFBVUMsR0FDeEMsT0FBT0MsU0FBU0MsVUFBVUwsTUFBTU0sS0FBS0wsRUFBUUMsRUFBVUMsRUFDekQsRUFJQVAsRUFERUMsR0FBMEIsbUJBQWRBLEVBQUVVLFFBQ0NWLEVBQUVVLFFBQ1ZDLE9BQU9DLHNCQUNDLFNBQVNiLGVBQWVLLEdBQ3ZDLE9BQU9PLE9BQU9FLG9CQUFvQlQsR0FDL0JVLE9BQU9ILE9BQU9DLHNCQUFzQlIsR0FDekMsRUFFaUIsU0FBU0wsZUFBZUssR0FDdkMsT0FBT08sT0FBT0Usb0JBQW9CVCxFQUNwQyxFQU9GLElBQUlXLEVBQWNDLE9BQU9DLE9BQVMsU0FBU0YsWUFBWUcsR0FDckQsT0FBT0EsR0FBVUEsQ0FDbkIsRUFFQSxTQUFTQyxlQUNQQSxhQUFhQyxLQUFLWCxLQUFLWSxLQUN6QixDQUNBQyxFQUFPQyxRQUFVSixhQUNqQkcsRUFBT0MsUUFBUUMsS0F3WWYsU0FBU0EsS0FBS0MsRUFBU0MsR0FDckIsT0FBTyxJQUFJQyxTQUFRLFNBQVVDLEVBQVNDLEdBQ3BDLFNBQVNDLGNBQWNDLEdBQ3JCTixFQUFRTyxlQUFlTixFQUFNTyxVQUM3QkosRUFBT0UsRUFDVCxDQUVBLFNBQVNFLFdBQytCLG1CQUEzQlIsRUFBUU8sZ0JBQ2pCUCxFQUFRTyxlQUFlLFFBQVNGLGVBRWxDRixFQUFRLEdBQUdNLE1BQU16QixLQUFLMEIsV0FDeEIsQ0FFQUMsK0JBQStCWCxFQUFTQyxFQUFNTyxTQUFVLENBQUVULE1BQU0sSUFDbkQsVUFBVEUsR0FNUixTQUFTVyw4QkFBOEJaLEVBQVNhLEVBQVNDLEdBQzdCLG1CQUFmZCxFQUFRZSxJQUNqQkosK0JBQStCWCxFQUFTLFFBQVNhLEVBQVNDLEVBRTlELENBVE1GLENBQThCWixFQUFTSyxjQUFlLENBQUVOLE1BQU0sR0FFbEUsR0FDRixFQXhaQUwsYUFBYUEsYUFBZUEsYUFFNUJBLGFBQWFYLFVBQVVpQyxhQUFVQyxFQUNqQ3ZCLGFBQWFYLFVBQVVtQyxhQUFlLEVBQ3RDeEIsYUFBYVgsVUFBVW9DLG1CQUFnQkYsRUFJdkMsSUFBSUcsRUFBc0IsR0FFMUIsU0FBU0MsY0FBY0MsR0FDckIsR0FBd0IsbUJBQWJBLEVBQ1QsTUFBTSxJQUFJQyxVQUFVLDBFQUE0RUQsRUFFcEcsQ0FvQ0EsU0FBU0UsaUJBQWlCQyxHQUN4QixZQUEyQlIsSUFBdkJRLEVBQUtOLGNBQ0F6QixhQUFhMEIsb0JBQ2ZLLEVBQUtOLGFBQ2QsQ0FrREEsU0FBU08sYUFBYS9DLEVBQVFnRCxFQUFNTCxFQUFVTSxHQUM1QyxJQUFJQyxFQUNBQyxFQUNBQyxFQXNCSixHQXBCQVYsY0FBY0MsUUFHQ0wsS0FEZmEsRUFBU25ELEVBQU9xQyxVQUVkYyxFQUFTbkQsRUFBT3FDLFFBQVU5QixPQUFPOEMsT0FBTyxNQUN4Q3JELEVBQU91QyxhQUFlLFNBSUtELElBQXZCYSxFQUFPRyxjQUNUdEQsRUFBT3VELEtBQUssY0FBZVAsRUFDZkwsRUFBU0EsU0FBV0EsRUFBU0EsU0FBV0EsR0FJcERRLEVBQVNuRCxFQUFPcUMsU0FFbEJlLEVBQVdELEVBQU9ILFNBR0hWLElBQWJjLEVBRUZBLEVBQVdELEVBQU9ILEdBQVFMLElBQ3hCM0MsRUFBT3VDLGtCQWVULEdBYndCLG1CQUFiYSxFQUVUQSxFQUFXRCxFQUFPSCxHQUNoQkMsRUFBVSxDQUFDTixFQUFVUyxHQUFZLENBQUNBLEVBQVVULEdBRXJDTSxFQUNURyxFQUFTSSxRQUFRYixHQUVqQlMsRUFBU0ssS0FBS2QsSUFJaEJPLEVBQUlMLGlCQUFpQjdDLElBQ2IsR0FBS29ELEVBQVNNLE9BQVNSLElBQU1FLEVBQVNPLE9BQVEsQ0FDcERQLEVBQVNPLFFBQVMsRUFHbEIsSUFBSUMsRUFBSSxJQUFJQyxNQUFNLCtDQUNFVCxFQUFTTSxPQUFTLElBQU1JLE9BQU9kLEdBRGpDLHFFQUlsQlksRUFBRXRDLEtBQU8sOEJBQ1RzQyxFQUFFdkMsUUFBVXJCLEVBQ1o0RCxFQUFFWixLQUFPQSxFQUNUWSxFQUFFRyxNQUFRWCxFQUFTTSxPQTdLekIsU0FBU00sbUJBQW1CQyxHQUN0QkMsU0FBV0EsUUFBUUMsTUFBTUQsUUFBUUMsS0FBS0YsRUFDNUMsQ0E0S01ELENBQW1CSixFQUNyQixDQUdGLE9BQU81RCxDQUNULENBYUEsU0FBU29FLGNBQ1AsSUFBS25ELEtBQUtvRCxNQUdSLE9BRkFwRCxLQUFLakIsT0FBTzRCLGVBQWVYLEtBQUsrQixLQUFNL0IsS0FBS3FELFFBQzNDckQsS0FBS29ELE9BQVEsRUFDWSxJQUFyQnRDLFVBQVUyQixPQUNMekMsS0FBSzBCLFNBQVN0QyxLQUFLWSxLQUFLakIsUUFDMUJpQixLQUFLMEIsU0FBUzVDLE1BQU1rQixLQUFLakIsT0FBUStCLFVBRTVDLENBRUEsU0FBU3dDLFVBQVV2RSxFQUFRZ0QsRUFBTUwsR0FDL0IsSUFBSTZCLEVBQVEsQ0FBRUgsT0FBTyxFQUFPQyxZQUFRaEMsRUFBV3RDLE9BQVFBLEVBQVFnRCxLQUFNQSxFQUFNTCxTQUFVQSxHQUNqRjhCLEVBQVVMLFlBQVlNLEtBQUtGLEdBRy9CLE9BRkFDLEVBQVE5QixTQUFXQSxFQUNuQjZCLEVBQU1GLE9BQVNHLEVBQ1JBLENBQ1QsQ0F5SEEsU0FBU0UsV0FBVzNFLEVBQVFnRCxFQUFNNEIsR0FDaEMsSUFBSXpCLEVBQVNuRCxFQUFPcUMsUUFFcEIsUUFBZUMsSUFBWGEsRUFDRixNQUFPLEdBRVQsSUFBSTBCLEVBQWExQixFQUFPSCxHQUN4QixZQUFtQlYsSUFBZnVDLEVBQ0ssR0FFaUIsbUJBQWZBLEVBQ0ZELEVBQVMsQ0FBQ0MsRUFBV2xDLFVBQVlrQyxHQUFjLENBQUNBLEdBRWxERCxFQXNEVCxTQUFTRSxnQkFBZ0JDLEdBRXZCLElBREEsSUFBSUMsRUFBTSxJQUFJQyxNQUFNRixFQUFJckIsUUFDZndCLEVBQUksRUFBR0EsRUFBSUYsRUFBSXRCLFNBQVV3QixFQUNoQ0YsRUFBSUUsR0FBS0gsRUFBSUcsR0FBR3ZDLFVBQVlvQyxFQUFJRyxHQUVsQyxPQUFPRixDQUNULENBM0RJRixDQUFnQkQsR0FBY00sV0FBV04sRUFBWUEsRUFBV25CLE9BQ3BFLENBbUJBLFNBQVMwQixjQUFjcEMsR0FDckIsSUFBSUcsRUFBU2xDLEtBQUtvQixRQUVsQixRQUFlQyxJQUFYYSxFQUFzQixDQUN4QixJQUFJMEIsRUFBYTFCLEVBQU9ILEdBRXhCLEdBQTBCLG1CQUFmNkIsRUFDVCxPQUFPLEVBQ0YsUUFBbUJ2QyxJQUFmdUMsRUFDVCxPQUFPQSxFQUFXbkIsTUFFdEIsQ0FFQSxPQUFPLENBQ1QsQ0FNQSxTQUFTeUIsV0FBV0osRUFBS00sR0FFdkIsSUFEQSxJQUFJQyxFQUFPLElBQUlMLE1BQU1JLEdBQ1pILEVBQUksRUFBR0EsRUFBSUcsSUFBS0gsRUFDdkJJLEVBQUtKLEdBQUtILEVBQUlHLEdBQ2hCLE9BQU9JLENBQ1QsQ0EyQ0EsU0FBU3RELCtCQUErQlgsRUFBU0MsRUFBTXFCLEVBQVVSLEdBQy9ELEdBQTBCLG1CQUFmZCxFQUFRZSxHQUNiRCxFQUFNZixLQUNSQyxFQUFRRCxLQUFLRSxFQUFNcUIsR0FFbkJ0QixFQUFRZSxHQUFHZCxFQUFNcUIsT0FFZCxJQUF3QyxtQkFBN0J0QixFQUFRa0UsaUJBWXhCLE1BQU0sSUFBSTNDLFVBQVUsNkVBQStFdkIsR0FUbkdBLEVBQVFrRSxpQkFBaUJqRSxHQUFNLFNBQVNrRSxhQUFhQyxHQUcvQ3RELEVBQU1mLE1BQ1JDLEVBQVFxRSxvQkFBb0JwRSxFQUFNa0UsY0FFcEM3QyxFQUFTOEMsRUFDWCxHQUdGLENBQ0YsQ0FyYUFsRixPQUFPb0YsZUFBZTVFLGFBQWMsc0JBQXVCLENBQ3pENkUsWUFBWSxFQUNaQyxJQUFLLFdBQ0gsT0FBT3BELENBQ1QsRUFDQXFELElBQUssU0FBU0wsR0FDWixHQUFtQixpQkFBUkEsR0FBb0JBLEVBQU0sR0FBSzlFLEVBQVk4RSxHQUNwRCxNQUFNLElBQUlNLFdBQVcsa0dBQW9HTixFQUFNLEtBRWpJaEQsRUFBc0JnRCxDQUN4QixJQUdGMUUsYUFBYUMsS0FBTyxnQkFFR3NCLElBQWpCckIsS0FBS29CLFNBQ0xwQixLQUFLb0IsVUFBWTlCLE9BQU95RixlQUFlL0UsTUFBTW9CLFVBQy9DcEIsS0FBS29CLFFBQVU5QixPQUFPOEMsT0FBTyxNQUM3QnBDLEtBQUtzQixhQUFlLEdBR3RCdEIsS0FBS3VCLGNBQWdCdkIsS0FBS3VCLG9CQUFpQkYsQ0FDN0MsRUFJQXZCLGFBQWFYLFVBQVU2RixnQkFBa0IsU0FBU0EsZ0JBQWdCWixHQUNoRSxHQUFpQixpQkFBTkEsR0FBa0JBLEVBQUksR0FBSzFFLEVBQVkwRSxHQUNoRCxNQUFNLElBQUlVLFdBQVcsZ0ZBQWtGVixFQUFJLEtBRzdHLE9BREFwRSxLQUFLdUIsY0FBZ0I2QyxFQUNkcEUsSUFDVCxFQVFBRixhQUFhWCxVQUFVOEYsZ0JBQWtCLFNBQVNBLGtCQUNoRCxPQUFPckQsaUJBQWlCNUIsS0FDMUIsRUFFQUYsYUFBYVgsVUFBVW1ELEtBQU8sU0FBU0EsS0FBS1AsR0FFMUMsSUFEQSxJQUFJOUMsRUFBTyxHQUNGZ0YsRUFBSSxFQUFHQSxFQUFJbkQsVUFBVTJCLE9BQVF3QixJQUFLaEYsRUFBS3VELEtBQUsxQixVQUFVbUQsSUFDL0QsSUFBSWlCLEVBQW9CLFVBQVRuRCxFQUVYRyxFQUFTbEMsS0FBS29CLFFBQ2xCLFFBQWVDLElBQVhhLEVBQ0ZnRCxFQUFXQSxRQUE0QjdELElBQWpCYSxFQUFPaUQsV0FDMUIsSUFBS0QsRUFDUixPQUFPLEVBR1QsR0FBSUEsRUFBUyxDQUNYLElBQUlFLEVBR0osR0FGSW5HLEVBQUt3RCxPQUFTLElBQ2hCMkMsRUFBS25HLEVBQUssSUFDUm1HLGFBQWN4QyxNQUdoQixNQUFNd0MsRUFHUixJQUFJMUUsRUFBTSxJQUFJa0MsTUFBTSxvQkFBc0J3QyxFQUFLLEtBQU9BLEVBQUdDLFFBQVUsSUFBTSxLQUV6RSxNQURBM0UsRUFBSTRFLFFBQVVGLEVBQ1IxRSxDQUNSLENBRUEsSUFBSU8sRUFBVWlCLEVBQU9ILEdBRXJCLFFBQWdCVixJQUFaSixFQUNGLE9BQU8sRUFFVCxHQUF1QixtQkFBWkEsRUFDVHBDLEVBQWFvQyxFQUFTakIsS0FBTWYsT0FFNUIsS0FBSXNHLEVBQU10RSxFQUFRd0IsT0FDZCtDLEVBQVl0QixXQUFXakQsRUFBU3NFLEdBQ3BDLElBQVN0QixFQUFJLEVBQUdBLEVBQUlzQixJQUFPdEIsRUFDekJwRixFQUFhMkcsRUFBVXZCLEdBQUlqRSxLQUFNZixFQUhYLENBTTFCLE9BQU8sQ0FDVCxFQWdFQWEsYUFBYVgsVUFBVXNHLFlBQWMsU0FBU0EsWUFBWTFELEVBQU1MLEdBQzlELE9BQU9JLGFBQWE5QixLQUFNK0IsRUFBTUwsR0FBVSxFQUM1QyxFQUVBNUIsYUFBYVgsVUFBVWdDLEdBQUtyQixhQUFhWCxVQUFVc0csWUFFbkQzRixhQUFhWCxVQUFVdUcsZ0JBQ25CLFNBQVNBLGdCQUFnQjNELEVBQU1MLEdBQzdCLE9BQU9JLGFBQWE5QixLQUFNK0IsRUFBTUwsR0FBVSxFQUM1QyxFQW9CSjVCLGFBQWFYLFVBQVVnQixLQUFPLFNBQVNBLEtBQUs0QixFQUFNTCxHQUdoRCxPQUZBRCxjQUFjQyxHQUNkMUIsS0FBS21CLEdBQUdZLEVBQU11QixVQUFVdEQsS0FBTStCLEVBQU1MLElBQzdCMUIsSUFDVCxFQUVBRixhQUFhWCxVQUFVd0csb0JBQ25CLFNBQVNBLG9CQUFvQjVELEVBQU1MLEdBR2pDLE9BRkFELGNBQWNDLEdBQ2QxQixLQUFLMEYsZ0JBQWdCM0QsRUFBTXVCLFVBQVV0RCxLQUFNK0IsRUFBTUwsSUFDMUMxQixJQUNULEVBR0pGLGFBQWFYLFVBQVV3QixlQUNuQixTQUFTQSxlQUFlb0IsRUFBTUwsR0FDNUIsSUFBSWtFLEVBQU0xRCxFQUFRMkQsRUFBVTVCLEVBQUc2QixFQUsvQixHQUhBckUsY0FBY0MsUUFHQ0wsS0FEZmEsRUFBU2xDLEtBQUtvQixTQUVaLE9BQU9wQixLQUdULFFBQWFxQixLQURidUUsRUFBTzFELEVBQU9ILElBRVosT0FBTy9CLEtBRVQsR0FBSTRGLElBQVNsRSxHQUFZa0UsRUFBS2xFLFdBQWFBLEVBQ2IsS0FBdEIxQixLQUFLc0IsYUFDVHRCLEtBQUtvQixRQUFVOUIsT0FBTzhDLE9BQU8sY0FFdEJGLEVBQU9ILEdBQ1ZHLEVBQU92QixnQkFDVFgsS0FBS3NDLEtBQUssaUJBQWtCUCxFQUFNNkQsRUFBS2xFLFVBQVlBLFNBRWxELEdBQW9CLG1CQUFUa0UsRUFBcUIsQ0FHckMsSUFGQUMsR0FBWSxFQUVQNUIsRUFBSTJCLEVBQUtuRCxPQUFTLEVBQUd3QixHQUFLLEVBQUdBLElBQ2hDLEdBQUkyQixFQUFLM0IsS0FBT3ZDLEdBQVlrRSxFQUFLM0IsR0FBR3ZDLFdBQWFBLEVBQVUsQ0FDekRvRSxFQUFtQkYsRUFBSzNCLEdBQUd2QyxTQUMzQm1FLEVBQVc1QixFQUNYLEtBQ0YsQ0FHRixHQUFJNEIsRUFBVyxFQUNiLE9BQU83RixLQUVRLElBQWI2RixFQUNGRCxFQUFLRyxRQWlJZixTQUFTQyxVQUFVSixFQUFNSyxHQUN2QixLQUFPQSxFQUFRLEVBQUlMLEVBQUtuRCxPQUFRd0QsSUFDOUJMLEVBQUtLLEdBQVNMLEVBQUtLLEVBQVEsR0FDN0JMLEVBQUtNLEtBQ1AsQ0FuSVVGLENBQVVKLEVBQU1DLEdBR0UsSUFBaEJELEVBQUtuRCxTQUNQUCxFQUFPSCxHQUFRNkQsRUFBSyxTQUVRdkUsSUFBMUJhLEVBQU92QixnQkFDVFgsS0FBS3NDLEtBQUssaUJBQWtCUCxFQUFNK0QsR0FBb0JwRSxFQUMxRCxDQUVBLE9BQU8xQixJQUNULEVBRUpGLGFBQWFYLFVBQVVnSCxJQUFNckcsYUFBYVgsVUFBVXdCLGVBRXBEYixhQUFhWCxVQUFVaUgsbUJBQ25CLFNBQVNBLG1CQUFtQnJFLEdBQzFCLElBQUl5RCxFQUFXdEQsRUFBUStCLEVBR3ZCLFFBQWU1QyxLQURmYSxFQUFTbEMsS0FBS29CLFNBRVosT0FBT3BCLEtBR1QsUUFBOEJxQixJQUExQmEsRUFBT3ZCLGVBVVQsT0FUeUIsSUFBckJHLFVBQVUyQixRQUNaekMsS0FBS29CLFFBQVU5QixPQUFPOEMsT0FBTyxNQUM3QnBDLEtBQUtzQixhQUFlLFFBQ01ELElBQWpCYSxFQUFPSCxLQUNZLEtBQXRCL0IsS0FBS3NCLGFBQ1R0QixLQUFLb0IsUUFBVTlCLE9BQU84QyxPQUFPLGFBRXRCRixFQUFPSCxJQUVYL0IsS0FJVCxHQUF5QixJQUFyQmMsVUFBVTJCLE9BQWMsQ0FDMUIsSUFDSTRELEVBREFDLEVBQU9oSCxPQUFPZ0gsS0FBS3BFLEdBRXZCLElBQUsrQixFQUFJLEVBQUdBLEVBQUlxQyxFQUFLN0QsU0FBVXdCLEVBRWpCLG9CQURab0MsRUFBTUMsRUFBS3JDLEtBRVhqRSxLQUFLb0csbUJBQW1CQyxHQUsxQixPQUhBckcsS0FBS29HLG1CQUFtQixrQkFDeEJwRyxLQUFLb0IsUUFBVTlCLE9BQU84QyxPQUFPLE1BQzdCcEMsS0FBS3NCLGFBQWUsRUFDYnRCLElBQ1QsQ0FJQSxHQUF5QixtQkFGekJ3RixFQUFZdEQsRUFBT0gsSUFHakIvQixLQUFLVyxlQUFlb0IsRUFBTXlELFFBQ3JCLFFBQWtCbkUsSUFBZG1FLEVBRVQsSUFBS3ZCLEVBQUl1QixFQUFVL0MsT0FBUyxFQUFHd0IsR0FBSyxFQUFHQSxJQUNyQ2pFLEtBQUtXLGVBQWVvQixFQUFNeUQsRUFBVXZCLElBSXhDLE9BQU9qRSxJQUNULEVBbUJKRixhQUFhWCxVQUFVcUcsVUFBWSxTQUFTQSxVQUFVekQsR0FDcEQsT0FBTzJCLFdBQVcxRCxLQUFNK0IsR0FBTSxFQUNoQyxFQUVBakMsYUFBYVgsVUFBVW9ILGFBQWUsU0FBU0EsYUFBYXhFLEdBQzFELE9BQU8yQixXQUFXMUQsS0FBTStCLEdBQU0sRUFDaEMsRUFFQWpDLGFBQWFxRSxjQUFnQixTQUFTL0QsRUFBUzJCLEdBQzdDLE1BQXFDLG1CQUExQjNCLEVBQVErRCxjQUNWL0QsRUFBUStELGNBQWNwQyxHQUV0Qm9DLGNBQWMvRSxLQUFLZ0IsRUFBUzJCLEVBRXZDLEVBRUFqQyxhQUFhWCxVQUFVZ0YsY0FBZ0JBLGNBaUJ2Q3JFLGFBQWFYLFVBQVVxSCxXQUFhLFNBQVNBLGFBQzNDLE9BQU94RyxLQUFLc0IsYUFBZSxFQUFJNUMsRUFBZXNCLEtBQUtvQixTQUFXLEVBQ2hFLGtCQ3JhQSxJQUFJcUYsRUFBUSxDQUFDLEVBRWIsU0FBU0MsZ0JBQWdCQyxFQUFNdEIsRUFBU3VCLEdBQ2pDQSxJQUNIQSxFQUFPaEUsT0FXVCxJQUFJaUUsRUFFSixTQUFVQyxHQUdSLFNBQVNELFVBQVVFLEVBQU1DLEVBQU1DLEdBQzdCLE9BQU9ILEVBQU0xSCxLQUFLWSxLQWR0QixTQUFTa0gsV0FBV0gsRUFBTUMsRUFBTUMsR0FDOUIsTUFBdUIsaUJBQVo1QixFQUNGQSxFQUVBQSxFQUFRMEIsRUFBTUMsRUFBTUMsRUFFL0IsQ0FRNEJDLENBQVdILEVBQU1DLEVBQU1DLEtBQVVqSCxJQUMzRCxDQUVBLE9BMUJKLFNBQVNtSCxlQUFlQyxFQUFVQyxHQUFjRCxFQUFTakksVUFBWUcsT0FBTzhDLE9BQU9pRixFQUFXbEksV0FBWWlJLEVBQVNqSSxVQUFVbUksWUFBY0YsRUFBVUEsRUFBU0csVUFBWUYsQ0FBWSxDQW9CbExGLENBQWVOLFVBQVdDLEdBTW5CRCxTQUNULENBUkEsQ0FRRUQsR0FFRkMsRUFBVTFILFVBQVVrQixLQUFPdUcsRUFBS3ZHLEtBQ2hDd0csRUFBVTFILFVBQVV3SCxLQUFPQSxFQUMzQkYsRUFBTUUsR0FBUUUsQ0FDaEIsQ0FHQSxTQUFTVyxNQUFNQyxFQUFVQyxHQUN2QixHQUFJMUQsTUFBTTJELFFBQVFGLEdBQVcsQ0FDM0IsSUFBSWxDLEVBQU1rQyxFQUFTaEYsT0FLbkIsT0FKQWdGLEVBQVdBLEVBQVNHLEtBQUksU0FBVTNELEdBQ2hDLE9BQU9wQixPQUFPb0IsRUFDaEIsSUFFSXNCLEVBQU0sRUFDRCxVQUFVOUYsT0FBT2lJLEVBQU8sS0FBS2pJLE9BQU9nSSxFQUFTNUcsTUFBTSxFQUFHMEUsRUFBTSxHQUFHc0MsS0FBSyxNQUFPLFNBQVdKLEVBQVNsQyxFQUFNLEdBQzNGLElBQVJBLEVBQ0YsVUFBVTlGLE9BQU9pSSxFQUFPLEtBQUtqSSxPQUFPZ0ksRUFBUyxHQUFJLFFBQVFoSSxPQUFPZ0ksRUFBUyxJQUV6RSxNQUFNaEksT0FBT2lJLEVBQU8sS0FBS2pJLE9BQU9nSSxFQUFTLEdBRXBELENBQ0UsTUFBTyxNQUFNaEksT0FBT2lJLEVBQU8sS0FBS2pJLE9BQU9vRCxPQUFPNEUsR0FFbEQsQ0E2QkFmLGdCQUFnQix5QkFBeUIsU0FBVXJHLEVBQU1SLEdBQ3ZELE1BQU8sY0FBZ0JBLEVBQVEsNEJBQThCUSxFQUFPLEdBQ3RFLEdBQUdzQixXQUNIK0UsZ0JBQWdCLHdCQUF3QixTQUFVckcsRUFBTW9ILEVBQVVLLEdBRWhFLElBQUlDLEVBU0FDLEVBRUosR0FUd0IsaUJBQWJQLEdBakNiLFNBQVNRLFdBQVdDLEVBQUtDLEVBQVFDLEdBQy9CLE9BQU9GLEVBQUlHLFFBQVFELEdBQU9BLEVBQU0sRUFBSSxHQUFLQSxFQUFLRCxFQUFPMUYsVUFBWTBGLENBQ25FLENBK0JzQ0YsQ0FBV1IsRUFBVSxTQUN2RE0sRUFBYSxjQUNiTixFQUFXQSxFQUFTYSxRQUFRLFFBQVMsS0FFckNQLEVBQWEsVUFoQ2pCLFNBQVNRLFNBQVNMLEVBQUtDLEVBQVFLLEdBSzdCLFlBSmlCbkgsSUFBYm1ILEdBQTBCQSxFQUFXTixFQUFJekYsVUFDM0MrRixFQUFXTixFQUFJekYsUUFHVnlGLEVBQUlPLFVBQVVELEVBQVdMLEVBQU8xRixPQUFRK0YsS0FBY0wsQ0FDL0QsQ0ErQk1JLENBQVNsSSxFQUFNLGFBRWpCMkgsRUFBTSxPQUFPdkksT0FBT1ksRUFBTSxLQUFLWixPQUFPc0ksRUFBWSxLQUFLdEksT0FBTytILE1BQU1DLEVBQVUsYUFDekUsQ0FDTCxJQUFJMUYsRUFoQ1IsU0FBUzJHLFNBQVNSLEVBQUtDLEVBQVFRLEdBSzdCLE1BSnFCLGlCQUFWQSxJQUNUQSxFQUFRLEtBR05BLEVBQVFSLEVBQU8xRixPQUFTeUYsRUFBSXpGLFVBR1MsSUFBaEN5RixFQUFJVSxRQUFRVCxFQUFRUSxFQUUvQixDQXNCZUQsQ0FBU3JJLEVBQU0sS0FBTyxXQUFhLFdBQzlDMkgsRUFBTSxRQUFTdkksT0FBT1ksRUFBTSxNQUFPWixPQUFPc0MsRUFBTSxLQUFLdEMsT0FBT3NJLEVBQVksS0FBS3RJLE9BQU8rSCxNQUFNQyxFQUFVLFFBQ3RHLENBR0EsT0FEQU8sR0FBTyxtQkFBbUJ2SSxjQUFjcUksRUFFMUMsR0FBR25HLFdBQ0grRSxnQkFBZ0IsNEJBQTZCLDJCQUM3Q0EsZ0JBQWdCLDhCQUE4QixTQUFVckcsR0FDdEQsTUFBTyxPQUFTQSxFQUFPLDRCQUN6QixJQUNBcUcsZ0JBQWdCLDZCQUE4QixtQkFDOUNBLGdCQUFnQix3QkFBd0IsU0FBVXJHLEdBQ2hELE1BQU8sZUFBaUJBLEVBQU8sK0JBQ2pDLElBQ0FxRyxnQkFBZ0Isd0JBQXlCLGtDQUN6Q0EsZ0JBQWdCLHlCQUEwQiw2QkFDMUNBLGdCQUFnQiw2QkFBOEIsbUJBQzlDQSxnQkFBZ0IseUJBQTBCLHNDQUF1Qy9FLFdBQ2pGK0UsZ0JBQWdCLHdCQUF3QixTQUFVbEMsR0FDaEQsTUFBTyxxQkFBdUJBLENBQ2hDLEdBQUc3QyxXQUNIK0UsZ0JBQWdCLHFDQUFzQyxvQ0FDdER6RyxFQUFPQyxRQUFRLEVBQVF1Ryx1QkN0SHZCLElBQUlvQyxFQUFXLEVBQVEsS0FDbkJDLEVBQU8sRUFBUSxLQUNmQyxFQUFTLGNBRVRDLEVBQUksQ0FDTixXQUFZLFdBQVksV0FBWSxXQUNwQyxVQUFZLFdBQVksV0FBWSxXQUNwQyxXQUFZLFVBQVksVUFBWSxXQUNwQyxXQUFZLFdBQVksV0FBWSxXQUNwQyxXQUFZLFdBQVksVUFBWSxVQUNwQyxVQUFZLFdBQVksV0FBWSxXQUNwQyxXQUFZLFdBQVksV0FBWSxXQUNwQyxXQUFZLFdBQVksVUFBWSxVQUNwQyxVQUFZLFVBQVksV0FBWSxXQUNwQyxXQUFZLFdBQVksV0FBWSxXQUNwQyxXQUFZLFdBQVksV0FBWSxXQUNwQyxXQUFZLFdBQVksV0FBWSxVQUNwQyxVQUFZLFVBQVksVUFBWSxVQUNwQyxVQUFZLFdBQVksV0FBWSxXQUNwQyxXQUFZLFdBQVksV0FBWSxXQUNwQyxXQUFZLFdBQVksV0FBWSxZQUdsQ0MsRUFBSSxJQUFJakYsTUFBTSxJQUVsQixTQUFTa0YsU0FDUGxKLEtBQUtELE9BRUxDLEtBQUttSixHQUFLRixFQUVWSCxFQUFLMUosS0FBS1ksS0FBTSxHQUFJLEdBQ3RCLENBaUJBLFNBQVNvSixHQUFJQyxFQUFHQyxFQUFHQyxHQUNqQixPQUFPQSxFQUFLRixHQUFLQyxFQUFJQyxFQUN2QixDQUVBLFNBQVNDLElBQUtILEVBQUdDLEVBQUdDLEdBQ2xCLE9BQVFGLEVBQUlDLEVBQU1DLEdBQUtGLEVBQUlDLEVBQzdCLENBRUEsU0FBU0csT0FBUUosR0FDZixPQUFRQSxJQUFNLEVBQUlBLEdBQUssS0FBT0EsSUFBTSxHQUFLQSxHQUFLLEtBQU9BLElBQU0sR0FBS0EsR0FBSyxHQUN2RSxDQUVBLFNBQVNLLE9BQVFMLEdBQ2YsT0FBUUEsSUFBTSxFQUFJQSxHQUFLLEtBQU9BLElBQU0sR0FBS0EsR0FBSyxLQUFPQSxJQUFNLEdBQUtBLEdBQUssRUFDdkUsQ0FFQSxTQUFTTSxPQUFRTixHQUNmLE9BQVFBLElBQU0sRUFBSUEsR0FBSyxLQUFPQSxJQUFNLEdBQUtBLEdBQUssSUFBT0EsSUFBTSxDQUM3RCxDQUVBLFNBQVNPLE9BQVFQLEdBQ2YsT0FBUUEsSUFBTSxHQUFLQSxHQUFLLEtBQU9BLElBQU0sR0FBS0EsR0FBSyxJQUFPQSxJQUFNLEVBQzlELENBckNBUixFQUFTSyxPQUFRSixHQUVqQkksT0FBTy9KLFVBQVVZLEtBQU8sV0FVdEIsT0FUQUMsS0FBSzZKLEdBQUssV0FDVjdKLEtBQUs4SixHQUFLLFdBQ1Y5SixLQUFLK0osR0FBSyxXQUNWL0osS0FBS2dLLEdBQUssV0FDVmhLLEtBQUtpSyxHQUFLLFdBQ1ZqSyxLQUFLa0ssR0FBSyxXQUNWbEssS0FBS21LLEdBQUssVUFDVm5LLEtBQUtvSyxHQUFLLFdBRUhwSyxJQUNULEVBMEJBa0osT0FBTy9KLFVBQVVrTCxRQUFVLFNBQVVDLEdBWW5DLElBWEEsSUFBSXJCLEVBQUlqSixLQUFLbUosR0FFVG9CLEVBQWMsRUFBVnZLLEtBQUs2SixHQUNUVyxFQUFjLEVBQVZ4SyxLQUFLOEosR0FDVFcsRUFBYyxFQUFWekssS0FBSytKLEdBQ1RXLEVBQWMsRUFBVjFLLEtBQUtnSyxHQUNUVyxFQUFjLEVBQVYzSyxLQUFLaUssR0FDVFcsRUFBYyxFQUFWNUssS0FBS2tLLEdBQ1RXLEVBQWMsRUFBVjdLLEtBQUttSyxHQUNUVyxFQUFjLEVBQVY5SyxLQUFLb0ssR0FFSm5HLEVBQUksRUFBR0EsRUFBSSxLQUFNQSxFQUFHZ0YsRUFBRWhGLEdBQUtxRyxFQUFFUyxZQUFnQixFQUFKOUcsR0FDbEQsS0FBT0EsRUFBSSxLQUFNQSxFQUFHZ0YsRUFBRWhGLEdBQU0yRixPQUFPWCxFQUFFaEYsRUFBSSxJQUFNZ0YsRUFBRWhGLEVBQUksR0FBSzBGLE9BQU9WLEVBQUVoRixFQUFJLEtBQU9nRixFQUFFaEYsRUFBSSxJQUFPLEVBRTNGLElBQUssSUFBSStHLEVBQUksRUFBR0EsRUFBSSxLQUFNQSxFQUFHLENBQzNCLElBQUlDLEVBQU1ILEVBQUlwQixPQUFPaUIsR0FBS3ZCLEdBQUd1QixFQUFHQyxFQUFHQyxHQUFLN0IsRUFBRWdDLEdBQUsvQixFQUFFK0IsR0FBTSxFQUNuREUsRUFBTXpCLE9BQU9jLEdBQUtmLElBQUllLEVBQUdDLEVBQUdDLEdBQU0sRUFFdENLLEVBQUlELEVBQ0pBLEVBQUlELEVBQ0pBLEVBQUlELEVBQ0pBLEVBQUtELEVBQUlPLEVBQU0sRUFDZlAsRUFBSUQsRUFDSkEsRUFBSUQsRUFDSkEsRUFBSUQsRUFDSkEsRUFBS1UsRUFBS0MsRUFBTSxDQUNsQixDQUVBbEwsS0FBSzZKLEdBQU1VLEVBQUl2SyxLQUFLNkosR0FBTSxFQUMxQjdKLEtBQUs4SixHQUFNVSxFQUFJeEssS0FBSzhKLEdBQU0sRUFDMUI5SixLQUFLK0osR0FBTVUsRUFBSXpLLEtBQUsrSixHQUFNLEVBQzFCL0osS0FBS2dLLEdBQU1VLEVBQUkxSyxLQUFLZ0ssR0FBTSxFQUMxQmhLLEtBQUtpSyxHQUFNVSxFQUFJM0ssS0FBS2lLLEdBQU0sRUFDMUJqSyxLQUFLa0ssR0FBTVUsRUFBSTVLLEtBQUtrSyxHQUFNLEVBQzFCbEssS0FBS21LLEdBQU1VLEVBQUk3SyxLQUFLbUssR0FBTSxFQUMxQm5LLEtBQUtvSyxHQUFNVSxFQUFJOUssS0FBS29LLEdBQU0sQ0FDNUIsRUFFQWxCLE9BQU8vSixVQUFVZ00sTUFBUSxXQUN2QixJQUFJQyxFQUFJckMsRUFBT3NDLFlBQVksSUFXM0IsT0FUQUQsRUFBRUUsYUFBYXRMLEtBQUs2SixHQUFJLEdBQ3hCdUIsRUFBRUUsYUFBYXRMLEtBQUs4SixHQUFJLEdBQ3hCc0IsRUFBRUUsYUFBYXRMLEtBQUsrSixHQUFJLEdBQ3hCcUIsRUFBRUUsYUFBYXRMLEtBQUtnSyxHQUFJLElBQ3hCb0IsRUFBRUUsYUFBYXRMLEtBQUtpSyxHQUFJLElBQ3hCbUIsRUFBRUUsYUFBYXRMLEtBQUtrSyxHQUFJLElBQ3hCa0IsRUFBRUUsYUFBYXRMLEtBQUttSyxHQUFJLElBQ3hCaUIsRUFBRUUsYUFBYXRMLEtBQUtvSyxHQUFJLElBRWpCZ0IsQ0FDVCxFQUVBbkwsRUFBT0MsUUFBVWdKLHlDQ3RJYnFDLEVBQWUsRUFBUSxLQUN2QkMsRUFBUyxjQWtJYixTQUFTakwsUUFBUWtMLEVBQU1DLEVBQVFDLEdBRTNCLElBQ0l0TCxFQURBdUwsRUFOUixTQUFTQyxjQUFjQyxFQUFXaEosR0FDOUIsT0FBUSxJQUFJa0IsTUFBTWxCLEdBQVMsR0FBRytFLEtBQUtpRSxHQUFhLEdBQ3BELENBSXdCRCxDQUFjSCxFQURsQ0MsRUFBZUEsR0FBZ0IsR0FHM0JJLEVBQVNOLEVBR2IsR0FBb0IsaUJBQVRBLEtBR1BNLEVBQVNOLEVBRFRwTCxFQURXZixPQUFPZ0gsS0FBS21GLEdBQ1gsTUFHRU0sRUFBT0MsT0FNakIsT0FMQUQsRUFBT0MsTUFBTTNMLEtBQU9BLEVBQ3BCMEwsRUFBT0MsTUFBTUMsT0FBU04sRUFDdEJJLEVBQU9DLE1BQU1OLE9BQVNBLEVBQ3RCSyxFQUFPQyxNQUFNRSxRQUFVTixFQUN2QkcsRUFBT0MsTUFBTUcsVUFBWUosRUFDbEJBLEVBQU9DLE1BSXRCLElBR0lJLEVBSEFDLEVBQWEsR0FDYkMsRUFBVSxHQUlkLFNBQVNDLGVBQWVDLEdBQ1RsTixPQUFPZ0gsS0FBS2tHLEdBQ2xCQyxTQUFRLFNBQVNwRyxHQUNsQmdHLEVBQVc3SixLQW1IdkIsU0FBU2tLLFVBQVVyRyxFQUFLeEcsR0FDcEIsT0FBT3dHLE9BQWtCa0YsRUFBYTFMLEdBQVMsR0FDbkQsQ0FySDRCNk0sQ0FBVXJHLEVBQUttRyxFQUFJbkcsSUFDdkMsR0FDSixDQUVBLGNBQWMwRixHQUNWLElBQUssU0FDRCxHQUFlLE9BQVhBLEVBQWlCLE1BRWpCQSxFQUFPWSxPQUNQSixlQUFlUixFQUFPWSxPQUd0QlosRUFBT2EsUUFDUE4sRUFBUTlKLE1BQ0gsWUFBY3VKLEVBQU9hLFFBQVF0RSxRQUFRLFNBQVUsbUJBQXFCLE9BSXpFeUQsRUFBT1UsVUFDUEwsR0FBa0IsRUFDbEJFLEVBQVE5SixLQUFLLElBQ2J1SixFQUFPVSxTQUFRLFNBQVM1TSxHQUNBLGlCQUFUQSxFQUdNLFNBRkRQLE9BQU9nSCxLQUFLekcsR0FBTyxHQUczQjBNLGVBQWUxTSxFQUFNOE0sT0FFckJMLEVBQVE5SixLQUFLakMsUUFDVFYsRUFBTzZMLEVBQVFDLEVBQWUsS0FJdENXLEVBQVFwRyxNQUNSa0csR0FBZ0IsRUFDaEJFLEVBQVE5SixLQUFLK0ksRUFBYTFMLElBR2xDLElBQ0t1TSxHQUNERSxFQUFROUosS0FBSyxLQUd6QixNQUVBLFFBRUk4SixFQUFROUosS0FBSytJLEVBQWFRLElBSWxDLE1BQU8sQ0FDSDFMLEtBQVlBLEVBQ1o4TCxXQTlFWSxFQStFWkUsV0FBWUEsRUFDWkMsUUFBWUEsRUFDWkwsT0FBWU4sRUFDWk8sUUFBWU4sRUFDWkYsT0FBWUEsRUFFcEIsQ0FFQSxTQUFTbUIsT0FBT0MsRUFBUUMsRUFBTUMsR0FFMUIsR0FBbUIsaUJBQVJELEVBQ1AsT0FBT0QsR0FBTyxFQUFPQyxHQUd6QixJQUFJeEgsRUFBTXdILEVBQUtaLFVBQVksRUFBSVksRUFBS1QsUUFBUTdKLE9BRTVDLFNBQVN3SyxVQUNMLEtBQU9GLEVBQUtULFFBQVE3SixRQUFRLENBQ3hCLElBQUk1QyxFQUFRa04sRUFBS1QsUUFBUXZHLFFBRXpCLFFBQWMxRSxJQUFWeEIsRUFBSixDQUNBLEdBQUlzTSxVQUFVdE0sR0FBUSxPQUV0QmdOLE9BQU9DLEVBQVFqTixFQUhrQixDQUlyQyxDQUVBaU4sR0FBTyxHQUFRdkgsRUFBTSxFQUFJd0gsRUFBS2IsUUFBVSxLQUNqQ2EsRUFBSzFNLEtBQU8sS0FBTzBNLEVBQUsxTSxLQUFPLElBQU0sS0FDckMwTSxFQUFLckIsU0FBV3NCLEVBQU0sS0FBTyxLQUVoQ0EsR0FDQUEsR0FFUixDQUVBLFNBQVNiLFVBQVV0TSxHQUNoQixRQUFJQSxFQUFNc00sWUFDTnRNLEVBQU1zTSxVQUFVVyxPQUFTQSxFQUN6QmpOLEVBQU1zTSxVQUFVYSxJQUFNQyxRQUN0QnBOLEVBQU1zTSxXQUFZLEVBQ2xCVyxHQUFPLElBQ0EsRUFHZCxDQVFBLEdBTkFBLEdBQU8sRUFBT0MsRUFBS2IsU0FDWmEsRUFBSzFNLEtBQU8sSUFBTTBNLEVBQUsxTSxLQUFPLEtBQzlCME0sRUFBS1YsV0FBVzVKLE9BQVMsSUFBTXNLLEVBQUtWLFdBQVd4RSxLQUFLLEtBQU8sS0FDM0R0QyxFQUFPd0gsRUFBSzFNLEtBQU8sSUFBTSxHQUFPME0sRUFBSzFNLEtBQU8sS0FBTyxLQUNuRDBNLEVBQUtyQixRQUFVbkcsRUFBTSxFQUFJLEtBQU8sTUFFbENBLEVBQ0QsT0FBT3VILEdBQU8sRUFBT0MsRUFBS3JCLE9BQVMsS0FBTyxJQUd6Q1MsVUFBVVksSUFDWEUsU0FFUixDQU1BaE4sRUFBT0MsUUFuUlAsU0FBU2dOLElBQUlDLEVBQU9DLEdBRU8saUJBQVpBLElBQ1BBLEVBQVUsQ0FDTjFCLE9BQVEwQixJQUloQixJQUFJQyxFQUFjRCxFQUFRQyxPQUFTLElBQUk3QixFQUFXLEtBQzlDOEIsRUFBYyxHQUNkQyxHQUFjLEVBQ2Q3QixFQUFlMEIsRUFBUTFCLFFBQ2MsSUFBbkIwQixFQUFRMUIsT0FkYixPQWVTMEIsRUFBUTFCLE9BRkUsR0FHaEM4QixHQUFjLEVBR2xCLFNBQVNDLE1BQU9DLEdBQ1BGLEVBR0RHLEVBQVFDLFNBQVNGLEdBRmpCQSxHQUlSLENBRUEsU0FBU1osT0FBUVgsRUFBVzBCLEdBUXhCLFFBUFl4TSxJQUFSd00sSUFDQVAsR0FBVU8sR0FFVjFCLElBQWNvQixJQUNkRixFQUFTQSxHQUFVLElBQUk3QixFQUN2QitCLEdBQWMsR0FFZHBCLEdBQWFvQixFQUFhLENBQzFCLElBQUk5QixFQUFPNkIsRUFDWEcsT0FBTSxXQUFjSixFQUFPL0ssS0FBSyxPQUFRbUosRUFBTSxJQUM5QzZCLEVBQVMsRUFDYixDQUNKLENBRUEsU0FBU1EsSUFBS2pPLEVBQU9rTyxHQUNqQmxCLE9BQU9DLE9BQVF2TSxRQUFRVixFQUFPNkwsRUFBUUEsRUFBUyxFQUFJLEdBQUlxQyxFQUMzRCxDQUVBLFNBQVNmLE1BQ0wsR0FBSUssRUFBUSxDQUNSLElBQUk1QixFQUFPNkIsRUFDWEcsT0FBTSxXQUNKSixFQUFPL0ssS0FBSyxPQUFRbUosR0FDcEI0QixFQUFPL0ssS0FBSyxPQUNaK0ssRUFBT1csVUFBVyxFQUNsQlgsRUFBTy9LLEtBQUssUUFDZCxHQUNKLENBQ0osQ0FnQ0EsT0FqQkFtTCxPQUFNLFdBQWNELEdBQVUsQ0FBTSxJQUVoQ0osRUFBUWEsYUFmWixTQUFTQyxrQkFBa0JELEdBQ3ZCLElBQ0lFLEVBQVEsQ0FBRUMsUUFBUyxNQUFPQyxTQURmSixFQUFZSSxVQUFZLFNBR25DSixFQUFZSyxhQUNaSCxFQUFLRyxXQUFhTCxFQUFZSyxZQUdsQ1IsSUFBSSxDQUFDLE9BQVEsQ0FBRW5CLE1BQU93QixLQUN0QmIsRUFBU0EsRUFBT2hGLFFBQVEsS0FBTSxLQUNsQyxDQU1JNEYsQ0FBa0JkLEVBQVFhLGFBRzFCZCxHQUFTQSxFQUFNVixRQUNmVSxFQUFNVixTQUFRLFNBQVU1TSxFQUFPb0UsR0FDM0IsSUFBSThKLEVBQ0E5SixFQUFJLElBQU1rSixFQUFNMUssU0FDaEJzTCxFQUFPZixLQUNYYyxJQUFJak8sRUFBT2tPLEVBQ2YsSUFFQUQsSUFBSVgsRUFBT0gsS0FHWEssR0FDQUEsRUFBT1csVUFBVyxFQUNYWCxHQUVKQyxDQUNYLEVBeUxBck4sRUFBT0MsUUFBUXFPLFFBQVV0TyxFQUFPQyxRQUFRc08sUUF2THhDLFNBQVNELFVBQ0wsSUFDSUUsRUFBTyxDQUNIekMsTUFBUXpMLFFBRkp5RCxNQUFNN0UsVUFBVTBCLE1BQU16QixLQUFLMEIsWUFLdkMyTixLQUFZLFNBQVV0QixHQUNsQixJQUFLbk4sS0FBSzhNLE9BQ04sTUFBTSxJQUFJbEssTUFBTSw2QkFFcEIsSUFBSWYsRUFBTzdCLEtBQ1AwTCxFQUFTMUwsS0FBS2dNLE1BQU1OLE9BQ3hCbUIsT0FBTzdNLEtBQUs4TSxPQUFRdk0sUUFDaEI0TSxFQUFPekIsRUFBUTFMLEtBQUtnTSxNQUFNQyxRQUFVUCxFQUFTLEVBQUksS0FDakQsV0FBYzdKLEVBQUtpTCxRQUFPLEVBQU0sR0FDeEMsRUFFQTJCLE1BQWEsU0FBVXRCLFFBQ0w5TCxJQUFWOEwsR0FDQW5OLEtBQUt3QyxLQUFLMkssR0FFVm5OLEtBQUtnTixLQUNMaE4sS0FBS2dOLEtBRWIsR0FFQSxPQUFPeUIsQ0FDWCx1QkNwR0EsSUFBSTFGLEVBQVMsY0FHVDJGLEVBQWEzRixFQUFPMkYsWUFBYyxTQUFVTCxHQUU5QyxRQURBQSxFQUFXLEdBQUtBLElBQ0lBLEVBQVNNLGVBQzNCLElBQUssTUFBTSxJQUFLLE9BQU8sSUFBSyxRQUFRLElBQUssUUFBUSxJQUFLLFNBQVMsSUFBSyxTQUFTLElBQUssT0FBTyxJQUFLLFFBQVEsSUFBSyxVQUFVLElBQUssV0FBVyxJQUFLLE1BQ3hJLE9BQU8sRUFDVCxRQUNFLE9BQU8sRUFFYixFQTBDQSxTQUFTQyxjQUFjUCxHQUVyQixJQUFJUSxFQUNKLE9BRkE3TyxLQUFLcU8sU0FYUCxTQUFTUyxrQkFBa0JDLEdBQ3pCLElBQUlDLEVBL0JOLFNBQVNDLG1CQUFtQkYsR0FDMUIsSUFBS0EsRUFBSyxNQUFPLE9BRWpCLElBREEsSUFBSUcsSUFFRixPQUFRSCxHQUNOLElBQUssT0FDTCxJQUFLLFFBQ0gsTUFBTyxPQUNULElBQUssT0FDTCxJQUFLLFFBQ0wsSUFBSyxVQUNMLElBQUssV0FDSCxNQUFPLFVBQ1QsSUFBSyxTQUNMLElBQUssU0FDSCxNQUFPLFNBQ1QsSUFBSyxTQUNMLElBQUssUUFDTCxJQUFLLE1BQ0gsT0FBT0EsRUFDVCxRQUNFLEdBQUlHLEVBQVMsT0FDYkgsR0FBTyxHQUFLQSxHQUFLSixjQUNqQk8sR0FBVSxFQUdsQixDQUthRCxDQUFtQkYsR0FDOUIsR0FBb0IsaUJBQVRDLElBQXNCakcsRUFBTzJGLGFBQWVBLElBQWVBLEVBQVdLLElBQU8sTUFBTSxJQUFJbk0sTUFBTSxxQkFBdUJtTSxHQUMvSCxPQUFPQyxHQUFRRCxDQUNqQixDQU9rQkQsQ0FBa0JULEdBRTFCck8sS0FBS3FPLFVBQ1gsSUFBSyxVQUNIck8sS0FBS21QLEtBQU9DLFVBQ1pwUCxLQUFLZ04sSUFBTXFDLFNBQ1hSLEVBQUssRUFDTCxNQUNGLElBQUssT0FDSDdPLEtBQUtzUCxTQUFXQyxhQUNoQlYsRUFBSyxFQUNMLE1BQ0YsSUFBSyxTQUNIN08sS0FBS21QLEtBQU9LLFdBQ1p4UCxLQUFLZ04sSUFBTXlDLFVBQ1haLEVBQUssRUFDTCxNQUNGLFFBR0UsT0FGQTdPLEtBQUswUCxNQUFRQyxpQkFDYjNQLEtBQUtnTixJQUFNNEMsV0FHZjVQLEtBQUs2UCxTQUFXLEVBQ2hCN1AsS0FBSzhQLFVBQVksRUFDakI5UCxLQUFLK1AsU0FBV2hILEVBQU9zQyxZQUFZd0QsRUFDckMsQ0FtQ0EsU0FBU21CLGNBQWNDLEdBQ3JCLE9BQUlBLEdBQVEsSUFBYSxFQUFXQSxHQUFRLEdBQU0sRUFBYSxFQUFXQSxHQUFRLEdBQU0sR0FBYSxFQUFXQSxHQUFRLEdBQU0sR0FBYSxFQUNwSUEsR0FBUSxHQUFNLEdBQVEsR0FBSyxDQUNwQyxDQTBEQSxTQUFTVixhQUFhVyxHQUNwQixJQUFJQyxFQUFJblEsS0FBSzhQLFVBQVk5UCxLQUFLNlAsU0FDMUJPLEVBdEJOLFNBQVNDLG9CQUFvQjVCLEVBQU15QixFQUFLQyxHQUN0QyxHQUF3QixNQUFWLElBQVRELEVBQUksSUFFUCxPQURBekIsRUFBS29CLFNBQVcsRUFDVCxJQUVULEdBQUlwQixFQUFLb0IsU0FBVyxHQUFLSyxFQUFJek4sT0FBUyxFQUFHLENBQ3ZDLEdBQXdCLE1BQVYsSUFBVHlOLEVBQUksSUFFUCxPQURBekIsRUFBS29CLFNBQVcsRUFDVCxJQUVULEdBQUlwQixFQUFLb0IsU0FBVyxHQUFLSyxFQUFJek4sT0FBUyxHQUNaLE1BQVYsSUFBVHlOLEVBQUksSUFFUCxPQURBekIsRUFBS29CLFNBQVcsRUFDVCxHQUdiLENBQ0YsQ0FLVVEsQ0FBb0JyUSxLQUFNa1EsR0FDbEMsWUFBVTdPLElBQU4rTyxFQUF3QkEsRUFDeEJwUSxLQUFLNlAsVUFBWUssRUFBSXpOLFFBQ3ZCeU4sRUFBSTdMLEtBQUtyRSxLQUFLK1AsU0FBVUksRUFBRyxFQUFHblEsS0FBSzZQLFVBQzVCN1AsS0FBSytQLFNBQVNPLFNBQVN0USxLQUFLcU8sU0FBVSxFQUFHck8sS0FBSzhQLGFBRXZESSxFQUFJN0wsS0FBS3JFLEtBQUsrUCxTQUFVSSxFQUFHLEVBQUdELEVBQUl6TixhQUNsQ3pDLEtBQUs2UCxVQUFZSyxFQUFJek4sUUFDdkIsQ0EwQkEsU0FBUzJNLFVBQVVjLEVBQUtqTSxHQUN0QixJQUFLaU0sRUFBSXpOLE9BQVN3QixHQUFLLEdBQU0sRUFBRyxDQUM5QixJQUFJbU0sRUFBSUYsRUFBSUksU0FBUyxVQUFXck0sR0FDaEMsR0FBSW1NLEVBQUcsQ0FDTCxJQUFJM0YsRUFBSTJGLEVBQUVHLFdBQVdILEVBQUUzTixPQUFTLEdBQ2hDLEdBQUlnSSxHQUFLLE9BQVVBLEdBQUssTUFLdEIsT0FKQXpLLEtBQUs2UCxTQUFXLEVBQ2hCN1AsS0FBSzhQLFVBQVksRUFDakI5UCxLQUFLK1AsU0FBUyxHQUFLRyxFQUFJQSxFQUFJek4sT0FBUyxHQUNwQ3pDLEtBQUsrUCxTQUFTLEdBQUtHLEVBQUlBLEVBQUl6TixPQUFTLEdBQzdCMk4sRUFBRXZQLE1BQU0sR0FBSSxFQUV2QixDQUNBLE9BQU91UCxDQUNULENBSUEsT0FIQXBRLEtBQUs2UCxTQUFXLEVBQ2hCN1AsS0FBSzhQLFVBQVksRUFDakI5UCxLQUFLK1AsU0FBUyxHQUFLRyxFQUFJQSxFQUFJek4sT0FBUyxHQUM3QnlOLEVBQUlJLFNBQVMsVUFBV3JNLEVBQUdpTSxFQUFJek4sT0FBUyxFQUNqRCxDQUlBLFNBQVM0TSxTQUFTYSxHQUNoQixJQUFJRSxFQUFJRixHQUFPQSxFQUFJek4sT0FBU3pDLEtBQUswUCxNQUFNUSxHQUFPLEdBQzlDLEdBQUlsUSxLQUFLNlAsU0FBVSxDQUNqQixJQUFJN0MsRUFBTWhOLEtBQUs4UCxVQUFZOVAsS0FBSzZQLFNBQ2hDLE9BQU9PLEVBQUlwUSxLQUFLK1AsU0FBU08sU0FBUyxVQUFXLEVBQUd0RCxFQUNsRCxDQUNBLE9BQU9vRCxDQUNULENBRUEsU0FBU1osV0FBV1UsRUFBS2pNLEdBQ3ZCLElBQUlHLEdBQUs4TCxFQUFJek4sT0FBU3dCLEdBQUssRUFDM0IsT0FBVSxJQUFORyxFQUFnQjhMLEVBQUlJLFNBQVMsU0FBVXJNLElBQzNDakUsS0FBSzZQLFNBQVcsRUFBSXpMLEVBQ3BCcEUsS0FBSzhQLFVBQVksRUFDUCxJQUFOMUwsRUFDRnBFLEtBQUsrUCxTQUFTLEdBQUtHLEVBQUlBLEVBQUl6TixPQUFTLElBRXBDekMsS0FBSytQLFNBQVMsR0FBS0csRUFBSUEsRUFBSXpOLE9BQVMsR0FDcEN6QyxLQUFLK1AsU0FBUyxHQUFLRyxFQUFJQSxFQUFJek4sT0FBUyxJQUUvQnlOLEVBQUlJLFNBQVMsU0FBVXJNLEVBQUdpTSxFQUFJek4sT0FBUzJCLEdBQ2hELENBRUEsU0FBU3FMLFVBQVVTLEdBQ2pCLElBQUlFLEVBQUlGLEdBQU9BLEVBQUl6TixPQUFTekMsS0FBSzBQLE1BQU1RLEdBQU8sR0FDOUMsT0FBSWxRLEtBQUs2UCxTQUFpQk8sRUFBSXBRLEtBQUsrUCxTQUFTTyxTQUFTLFNBQVUsRUFBRyxFQUFJdFEsS0FBSzZQLFVBQ3BFTyxDQUNULENBR0EsU0FBU1QsWUFBWU8sR0FDbkIsT0FBT0EsRUFBSUksU0FBU3RRLEtBQUtxTyxTQUMzQixDQUVBLFNBQVN1QixVQUFVTSxHQUNqQixPQUFPQSxHQUFPQSxFQUFJek4sT0FBU3pDLEtBQUswUCxNQUFNUSxHQUFPLEVBQy9DLENBMU5BaFEsRUFBUSxFQUFnQjBPLGNBNkJ4QkEsY0FBY3pQLFVBQVV1USxNQUFRLFNBQVVRLEdBQ3hDLEdBQW1CLElBQWZBLEVBQUl6TixPQUFjLE1BQU8sR0FDN0IsSUFBSTJOLEVBQ0FuTSxFQUNKLEdBQUlqRSxLQUFLNlAsU0FBVSxDQUVqQixRQUFVeE8sS0FEVitPLEVBQUlwUSxLQUFLc1AsU0FBU1ksSUFDRyxNQUFPLEdBQzVCak0sRUFBSWpFLEtBQUs2UCxTQUNUN1AsS0FBSzZQLFNBQVcsQ0FDbEIsTUFDRTVMLEVBQUksRUFFTixPQUFJQSxFQUFJaU0sRUFBSXpOLE9BQWUyTixFQUFJQSxFQUFJcFEsS0FBS21QLEtBQUtlLEVBQUtqTSxHQUFLakUsS0FBS21QLEtBQUtlLEVBQUtqTSxHQUMvRG1NLEdBQUssRUFDZCxFQUVBeEIsY0FBY3pQLFVBQVU2TixJQXdHeEIsU0FBU3dELFFBQVFOLEdBQ2YsSUFBSUUsRUFBSUYsR0FBT0EsRUFBSXpOLE9BQVN6QyxLQUFLMFAsTUFBTVEsR0FBTyxHQUM5QyxPQUFJbFEsS0FBSzZQLFNBQWlCTyxFQUFJLElBQ3ZCQSxDQUNULEVBekdBeEIsY0FBY3pQLFVBQVVnUSxLQTBGeEIsU0FBU3NCLFNBQVNQLEVBQUtqTSxHQUNyQixJQUFJeU0sRUFyRU4sU0FBU0Msb0JBQW9CbEMsRUFBTXlCLEVBQUtqTSxHQUN0QyxJQUFJK0csRUFBSWtGLEVBQUl6TixPQUFTLEVBQ3JCLEdBQUl1SSxFQUFJL0csRUFBRyxPQUFPLEVBQ2xCLElBQUk0SyxFQUFLbUIsY0FBY0UsRUFBSWxGLElBQzNCLEdBQUk2RCxHQUFNLEVBRVIsT0FESUEsRUFBSyxJQUFHSixFQUFLb0IsU0FBV2hCLEVBQUssR0FDMUJBLEVBRVQsS0FBTTdELEVBQUkvRyxJQUFhLElBQVI0SyxFQUFXLE9BQU8sRUFFakMsR0FEQUEsRUFBS21CLGNBQWNFLEVBQUlsRixJQUNuQjZELEdBQU0sRUFFUixPQURJQSxFQUFLLElBQUdKLEVBQUtvQixTQUFXaEIsRUFBSyxHQUMxQkEsRUFFVCxLQUFNN0QsRUFBSS9HLElBQWEsSUFBUjRLLEVBQVcsT0FBTyxFQUVqQyxHQURBQSxFQUFLbUIsY0FBY0UsRUFBSWxGLElBQ25CNkQsR0FBTSxFQUlSLE9BSElBLEVBQUssSUFDSSxJQUFQQSxFQUFVQSxFQUFLLEVBQU9KLEVBQUtvQixTQUFXaEIsRUFBSyxHQUUxQ0EsRUFFVCxPQUFPLENBQ1QsQ0E4Q2M4QixDQUFvQjNRLEtBQU1rUSxFQUFLak0sR0FDM0MsSUFBS2pFLEtBQUs2UCxTQUFVLE9BQU9LLEVBQUlJLFNBQVMsT0FBUXJNLEdBQ2hEakUsS0FBSzhQLFVBQVlZLEVBQ2pCLElBQUkxRCxFQUFNa0QsRUFBSXpOLFFBQVVpTyxFQUFRMVEsS0FBSzZQLFVBRXJDLE9BREFLLEVBQUk3TCxLQUFLckUsS0FBSytQLFNBQVUsRUFBRy9DLEdBQ3BCa0QsRUFBSUksU0FBUyxPQUFRck0sRUFBRytJLEVBQ2pDLEVBOUZBNEIsY0FBY3pQLFVBQVVtUSxTQUFXLFNBQVVZLEdBQzNDLEdBQUlsUSxLQUFLNlAsVUFBWUssRUFBSXpOLE9BRXZCLE9BREF5TixFQUFJN0wsS0FBS3JFLEtBQUsrUCxTQUFVL1AsS0FBSzhQLFVBQVk5UCxLQUFLNlAsU0FBVSxFQUFHN1AsS0FBSzZQLFVBQ3pEN1AsS0FBSytQLFNBQVNPLFNBQVN0USxLQUFLcU8sU0FBVSxFQUFHck8sS0FBSzhQLFdBRXZESSxFQUFJN0wsS0FBS3JFLEtBQUsrUCxTQUFVL1AsS0FBSzhQLFVBQVk5UCxLQUFLNlAsU0FBVSxFQUFHSyxFQUFJek4sUUFDL0R6QyxLQUFLNlAsVUFBWUssRUFBSXpOLE1BQ3ZCLG1CQ3ZJQXhDLEVBQU9DLFFBQVUsV0FDZixNQUFNLElBQUkwQyxNQUFNLGdEQUNsQixvQ0NFSWdPLEVBQVksTUFJWkMsRUFBYSxXQU1qQixJQUFJOUgsRUFBUyxjQUNUK0gsRUFBUyxFQUFBakcsRUFBT2lHLFFBQVUsRUFBQWpHLEVBQU9rRyxTQUVqQ0QsR0FBVUEsRUFBT0UsZ0JBQ25CL1EsRUFBT0MsUUFLVCxTQUFTK1EsWUFBYUMsRUFBTUMsR0FFMUIsR0FBSUQsRUFBT0wsRUFBWSxNQUFNLElBQUkvTCxXQUFXLG1DQUU1QyxJQUFJc00sRUFBUXJJLEVBQU9zQyxZQUFZNkYsR0FFL0IsR0FBSUEsRUFBTyxFQUNULEdBQUlBLEVBQU9OLEVBRVQsSUFBSyxJQUFJUyxFQUFZLEVBQUdBLEVBQVlILEVBQU1HLEdBQWFULEVBR3JERSxFQUFPRSxnQkFBZ0JJLEVBQU12USxNQUFNd1EsRUFBV0EsRUFBWVQsU0FHNURFLEVBQU9FLGdCQUFnQkksR0FJM0IsR0FBa0IsbUJBQVBELEVBQ1QsT0FBT3hELEVBQVFDLFVBQVMsV0FDdEJ1RCxFQUFHLEtBQU1DLEVBQ1gsSUFHRixPQUFPQSxDQUNULEVBN0JFblIsRUFBT0MsUUFWVCxTQUFTb1IsYUFDUCxNQUFNLElBQUkxTyxNQUFNLGlIQUNsQix1QkNQQSxJQUFJMk8sRUFBNkIsUUFBaUNBLDJCQVlsRSxTQUFTQyxPQUFRLENBb0VqQnZSLEVBQU9DLFFBaEVQLFNBQVN1UixJQUFJcEUsRUFBUXFFLEVBQU1DLEdBQ3pCLEdBQW9CLG1CQUFURCxFQUFxQixPQUFPRCxJQUFJcEUsRUFBUSxLQUFNcUUsR0FDcERBLElBQU1BLEVBQU8sQ0FBQyxHQUNuQkMsRUFsQkYsU0FBU3hSLEtBQUt3UixHQUNaLElBQUlDLEdBQVMsRUFDYixPQUFPLFdBQ0wsSUFBSUEsRUFBSixDQUNBQSxHQUFTLEVBQ1QsSUFBSyxJQUFJQyxFQUFPL1EsVUFBVTJCLE9BQVF4RCxFQUFPLElBQUkrRSxNQUFNNk4sR0FBT0MsRUFBTyxFQUFHQSxFQUFPRCxFQUFNQyxJQUMvRTdTLEVBQUs2UyxHQUFRaFIsVUFBVWdSLEdBRXpCSCxFQUFTN1MsTUFBTWtCLEtBQU1mLEVBTEgsQ0FNcEIsQ0FDRixDQVFha0IsQ0FBS3dSLEdBQVlILE1BQzVCLElBQUl4RCxFQUFXMEQsRUFBSzFELFdBQThCLElBQWxCMEQsRUFBSzFELFVBQXNCWCxFQUFPVyxTQUM5RCtELEVBQVdMLEVBQUtLLFdBQThCLElBQWxCTCxFQUFLSyxVQUFzQjFFLEVBQU8wRSxTQUM5REMsRUFBaUIsU0FBU0EsaUJBQ3ZCM0UsRUFBTzBFLFVBQVVFLEdBQ3hCLEVBQ0lDLEVBQWdCN0UsRUFBTzhFLGdCQUFrQjlFLEVBQU84RSxlQUFlQyxTQUMvREgsRUFBVyxTQUFTQSxXQUN0QkYsR0FBVyxFQUNYRyxHQUFnQixFQUNYbEUsR0FBVTJELEVBQVN2UyxLQUFLaU8sRUFDL0IsRUFDSWdGLEVBQWdCaEYsRUFBT2lGLGdCQUFrQmpGLEVBQU9pRixlQUFlQyxXQUMvREMsRUFBUSxTQUFTQSxRQUNuQnhFLEdBQVcsRUFDWHFFLEdBQWdCLEVBQ1hOLEdBQVVKLEVBQVN2UyxLQUFLaU8sRUFDL0IsRUFDSW9GLEVBQVUsU0FBU0EsUUFBUS9SLEdBQzdCaVIsRUFBU3ZTLEtBQUtpTyxFQUFRM00sRUFDeEIsRUFDSWdTLEVBQVUsU0FBU0EsVUFDckIsSUFBSWhTLEVBQ0osT0FBSXNOLElBQWFxRSxHQUNWaEYsRUFBT2lGLGdCQUFtQmpGLEVBQU9pRixlQUFlSyxRQUFPalMsRUFBTSxJQUFJNlEsR0FDL0RJLEVBQVN2UyxLQUFLaU8sRUFBUTNNLElBRTNCcVIsSUFBYUcsR0FDVjdFLEVBQU84RSxnQkFBbUI5RSxFQUFPOEUsZUFBZVEsUUFBT2pTLEVBQU0sSUFBSTZRLEdBQy9ESSxFQUFTdlMsS0FBS2lPLEVBQVEzTSxTQUYvQixDQUlGLEVBQ0lrUyxFQUFZLFNBQVNBLFlBQ3ZCdkYsRUFBT3dGLElBQUkxUixHQUFHLFNBQVU4USxFQUMxQixFQWNBLE9BdERGLFNBQVNhLFVBQVV6RixHQUNqQixPQUFPQSxFQUFPMEYsV0FBcUMsbUJBQWpCMUYsRUFBTzJGLEtBQzNDLENBdUNNRixDQUFVekYsR0FJSDBFLElBQWExRSxFQUFPOEUsaUJBRTdCOUUsRUFBT2xNLEdBQUcsTUFBTzZRLEdBQ2pCM0UsRUFBT2xNLEdBQUcsUUFBUzZRLEtBTm5CM0UsRUFBT2xNLEdBQUcsV0FBWThRLEdBQ3RCNUUsRUFBT2xNLEdBQUcsUUFBU3VSLEdBQ2ZyRixFQUFPd0YsSUFBS0QsSUFBaUJ2RixFQUFPbE0sR0FBRyxVQUFXeVIsSUFNeER2RixFQUFPbE0sR0FBRyxNQUFPcVIsR0FDakJuRixFQUFPbE0sR0FBRyxTQUFVOFEsSUFDRCxJQUFmUCxFQUFLdk0sT0FBaUJrSSxFQUFPbE0sR0FBRyxRQUFTc1IsR0FDN0NwRixFQUFPbE0sR0FBRyxRQUFTdVIsR0FDWixXQUNMckYsRUFBTzFNLGVBQWUsV0FBWXNSLEdBQ2xDNUUsRUFBTzFNLGVBQWUsUUFBUytSLEdBQy9CckYsRUFBTzFNLGVBQWUsVUFBV2lTLEdBQzdCdkYsRUFBT3dGLEtBQUt4RixFQUFPd0YsSUFBSWxTLGVBQWUsU0FBVXNSLEdBQ3BENUUsRUFBTzFNLGVBQWUsTUFBT3FSLEdBQzdCM0UsRUFBTzFNLGVBQWUsUUFBU3FSLEdBQy9CM0UsRUFBTzFNLGVBQWUsU0FBVXNSLEdBQ2hDNUUsRUFBTzFNLGVBQWUsTUFBTzZSLEdBQzdCbkYsRUFBTzFNLGVBQWUsUUFBUzhSLEdBQy9CcEYsRUFBTzFNLGVBQWUsUUFBUytSLEVBQ2pDLENBQ0YsdUJDMUVBLE1BQU1PLEVBQVMsRUFBUSxLQUNqQkMsRUFBVSxFQUFRLEtBQ2xCQyxFQUNlLG1CQUFYQyxRQUFrRCxtQkFBbEJBLE9BQVksSUFDaERBLE9BQVksSUFBRSw4QkFDZCxLQUVObFQsRUFBUTZJLE9BQVNBLE9BQ2pCN0ksRUFBUW1ULFdBeVRSLFNBQVNBLFdBQVk1USxJQUNkQSxHQUFVQSxJQUNiQSxFQUFTLEdBRVgsT0FBT3NHLE9BQU91SyxPQUFPN1EsRUFDdkIsRUE3VEF2QyxFQUFRcVQsa0JBQW9CLEdBRTVCLE1BQU1DLEVBQWUsV0F3RHJCLFNBQVNDLGFBQWNoUixHQUNyQixHQUFJQSxFQUFTK1EsRUFDWCxNQUFNLElBQUkxTyxXQUFXLGNBQWdCckMsRUFBUyxrQ0FHaEQsTUFBTXlOLEVBQU0sSUFBSXdELFdBQVdqUixHQUUzQixPQURBbkQsT0FBT3FVLGVBQWV6RCxFQUFLbkgsT0FBTzVKLFdBQzNCK1EsQ0FDVCxDQVlBLFNBQVNuSCxPQUFRdkUsRUFBS29QLEVBQWtCblIsR0FFdEMsR0FBbUIsaUJBQVIrQixFQUFrQixDQUMzQixHQUFnQyxpQkFBckJvUCxFQUNULE1BQU0sSUFBSWpTLFVBQ1Isc0VBR0osT0FBTzBKLFlBQVk3RyxFQUNyQixDQUNBLE9BQU9xUCxLQUFLclAsRUFBS29QLEVBQWtCblIsRUFDckMsQ0FJQSxTQUFTb1IsS0FBTWhVLEVBQU8rVCxFQUFrQm5SLEdBQ3RDLEdBQXFCLGlCQUFWNUMsRUFDVCxPQXFISixTQUFTaVUsV0FBWUMsRUFBUTFGLEdBQ0gsaUJBQWJBLEdBQXNDLEtBQWJBLElBQ2xDQSxFQUFXLFFBR2IsSUFBS3RGLE9BQU8yRixXQUFXTCxHQUNyQixNQUFNLElBQUkxTSxVQUFVLHFCQUF1QjBNLEdBRzdDLE1BQU01TCxFQUF3QyxFQUEvQnVSLFdBQVdELEVBQVExRixHQUNsQyxJQUFJNkIsRUFBTXVELGFBQWFoUixHQUV2QixNQUFNcUYsRUFBU29JLEVBQUlSLE1BQU1xRSxFQUFRMUYsR0FFN0J2RyxJQUFXckYsSUFJYnlOLEVBQU1BLEVBQUlyUCxNQUFNLEVBQUdpSCxJQUdyQixPQUFPb0ksQ0FDVCxDQTNJVzRELENBQVdqVSxFQUFPK1QsR0FHM0IsR0FBSUssWUFBWUMsT0FBT3JVLEdBQ3JCLE9Ba0pKLFNBQVNzVSxjQUFlQyxHQUN0QixHQUFJQyxXQUFXRCxFQUFXVixZQUFhLENBQ3JDLE1BQU1yUCxFQUFPLElBQUlxUCxXQUFXVSxHQUM1QixPQUFPRSxnQkFBZ0JqUSxFQUFLa1EsT0FBUWxRLEVBQUttUSxXQUFZblEsRUFBSzJQLFdBQzVELENBQ0EsT0FBT1MsY0FBY0wsRUFDdkIsQ0F4SldELENBQWN0VSxHQUd2QixHQUFhLE1BQVRBLEVBQ0YsTUFBTSxJQUFJOEIsVUFDUix5SEFDaUQ5QixHQUlyRCxHQUFJd1UsV0FBV3hVLEVBQU9vVSxjQUNqQnBVLEdBQVN3VSxXQUFXeFUsRUFBTTBVLE9BQVFOLGFBQ3JDLE9BQU9LLGdCQUFnQnpVLEVBQU8rVCxFQUFrQm5SLEdBR2xELEdBQWlDLG9CQUF0QmlTLG9CQUNOTCxXQUFXeFUsRUFBTzZVLG9CQUNsQjdVLEdBQVN3VSxXQUFXeFUsRUFBTTBVLE9BQVFHLG9CQUNyQyxPQUFPSixnQkFBZ0J6VSxFQUFPK1QsRUFBa0JuUixHQUdsRCxHQUFxQixpQkFBVjVDLEVBQ1QsTUFBTSxJQUFJOEIsVUFDUix5RUFJSixNQUFNZ1QsRUFBVTlVLEVBQU04VSxTQUFXOVUsRUFBTThVLFVBQ3ZDLEdBQWUsTUFBWEEsR0FBbUJBLElBQVk5VSxFQUNqQyxPQUFPa0osT0FBTzhLLEtBQUtjLEVBQVNmLEVBQWtCblIsR0FHaEQsTUFBTStILEVBa0pSLFNBQVNvSyxXQUFZcEksR0FDbkIsR0FBSXpELE9BQU84TCxTQUFTckksR0FBTSxDQUN4QixNQUFNakgsRUFBNEIsRUFBdEJ1UCxRQUFRdEksRUFBSS9KLFFBQ2xCeU4sRUFBTXVELGFBQWFsTyxHQUV6QixPQUFtQixJQUFmMkssRUFBSXpOLFFBSVIrSixFQUFJbkksS0FBSzZMLEVBQUssRUFBRyxFQUFHM0ssR0FIWDJLLENBS1gsQ0FFQSxRQUFtQjdPLElBQWZtTCxFQUFJL0osT0FDTixNQUEwQixpQkFBZitKLEVBQUkvSixRQUF1QnNTLFlBQVl2SSxFQUFJL0osUUFDN0NnUixhQUFhLEdBRWZnQixjQUFjakksR0FHdkIsR0FBaUIsV0FBYkEsRUFBSXpLLE1BQXFCaUMsTUFBTTJELFFBQVE2RSxFQUFJZixNQUM3QyxPQUFPZ0osY0FBY2pJLEVBQUlmLEtBRTdCLENBektZbUosQ0FBVy9VLEdBQ3JCLEdBQUkySyxFQUFHLE9BQU9BLEVBRWQsR0FBc0Isb0JBQVg0SSxRQUFnRCxNQUF0QkEsT0FBTzRCLGFBQ0gsbUJBQTlCblYsRUFBTXVULE9BQU80QixhQUN0QixPQUFPak0sT0FBTzhLLEtBQUtoVSxFQUFNdVQsT0FBTzRCLGFBQWEsVUFBV3BCLEVBQWtCblIsR0FHNUUsTUFBTSxJQUFJZCxVQUNSLHlIQUNpRDlCLEVBRXJELENBbUJBLFNBQVNvVixXQUFZL0QsR0FDbkIsR0FBb0IsaUJBQVRBLEVBQ1QsTUFBTSxJQUFJdlAsVUFBVSwwQ0FDZixHQUFJdVAsRUFBTyxFQUNoQixNQUFNLElBQUlwTSxXQUFXLGNBQWdCb00sRUFBTyxpQ0FFaEQsQ0EwQkEsU0FBUzdGLFlBQWE2RixHQUVwQixPQURBK0QsV0FBVy9ELEdBQ0p1QyxhQUFhdkMsRUFBTyxFQUFJLEVBQW9CLEVBQWhCNEQsUUFBUTVELEdBQzdDLENBdUNBLFNBQVN1RCxjQUFlUyxHQUN0QixNQUFNelMsRUFBU3lTLEVBQU16UyxPQUFTLEVBQUksRUFBNEIsRUFBeEJxUyxRQUFRSSxFQUFNelMsUUFDOUN5TixFQUFNdUQsYUFBYWhSLEdBQ3pCLElBQUssSUFBSXdCLEVBQUksRUFBR0EsRUFBSXhCLEVBQVF3QixHQUFLLEVBQy9CaU0sRUFBSWpNLEdBQWdCLElBQVhpUixFQUFNalIsR0FFakIsT0FBT2lNLENBQ1QsQ0FVQSxTQUFTb0UsZ0JBQWlCWSxFQUFPVixFQUFZL1IsR0FDM0MsR0FBSStSLEVBQWEsR0FBS1UsRUFBTWxCLFdBQWFRLEVBQ3ZDLE1BQU0sSUFBSTFQLFdBQVcsd0NBR3ZCLEdBQUlvUSxFQUFNbEIsV0FBYVEsR0FBYy9SLEdBQVUsR0FDN0MsTUFBTSxJQUFJcUMsV0FBVyx3Q0FHdkIsSUFBSW9MLEVBWUosT0FWRUEsT0FEaUI3TyxJQUFmbVQsUUFBdUNuVCxJQUFYb0IsRUFDeEIsSUFBSWlSLFdBQVd3QixRQUNEN1QsSUFBWG9CLEVBQ0gsSUFBSWlSLFdBQVd3QixFQUFPVixHQUV0QixJQUFJZCxXQUFXd0IsRUFBT1YsRUFBWS9SLEdBSTFDbkQsT0FBT3FVLGVBQWV6RCxFQUFLbkgsT0FBTzVKLFdBRTNCK1EsQ0FDVCxDQTJCQSxTQUFTNEUsUUFBU3JTLEdBR2hCLEdBQUlBLEdBQVUrUSxFQUNaLE1BQU0sSUFBSTFPLFdBQVcsMERBQ2EwTyxFQUFhbEQsU0FBUyxJQUFNLFVBRWhFLE9BQWdCLEVBQVQ3TixDQUNULENBc0dBLFNBQVN1UixXQUFZRCxFQUFRMUYsR0FDM0IsR0FBSXRGLE9BQU84TCxTQUFTZCxHQUNsQixPQUFPQSxFQUFPdFIsT0FFaEIsR0FBSXdSLFlBQVlDLE9BQU9ILElBQVdNLFdBQVdOLEVBQVFFLGFBQ25ELE9BQU9GLEVBQU9DLFdBRWhCLEdBQXNCLGlCQUFYRCxFQUNULE1BQU0sSUFBSXBTLFVBQ1Isa0dBQzBCb1MsR0FJOUIsTUFBTXhPLEVBQU13TyxFQUFPdFIsT0FDYjBTLEVBQWFyVSxVQUFVMkIsT0FBUyxJQUFzQixJQUFqQjNCLFVBQVUsR0FDckQsSUFBS3FVLEdBQXFCLElBQVI1UCxFQUFXLE9BQU8sRUFHcEMsSUFBSTZQLEdBQWMsRUFDbEIsT0FDRSxPQUFRL0csR0FDTixJQUFLLFFBQ0wsSUFBSyxTQUNMLElBQUssU0FDSCxPQUFPOUksRUFDVCxJQUFLLE9BQ0wsSUFBSyxRQUNILE9BQU84UCxZQUFZdEIsR0FBUXRSLE9BQzdCLElBQUssT0FDTCxJQUFLLFFBQ0wsSUFBSyxVQUNMLElBQUssV0FDSCxPQUFhLEVBQU44QyxFQUNULElBQUssTUFDSCxPQUFPQSxJQUFRLEVBQ2pCLElBQUssU0FDSCxPQUFPK1AsY0FBY3ZCLEdBQVF0UixPQUMvQixRQUNFLEdBQUkyUyxFQUNGLE9BQU9ELEdBQWEsRUFBSUUsWUFBWXRCLEdBQVF0UixPQUU5QzRMLEdBQVksR0FBS0EsR0FBVU0sY0FDM0J5RyxHQUFjLEVBR3RCLENBR0EsU0FBU0csYUFBY2xILEVBQVUxRixFQUFPcUUsR0FDdEMsSUFBSW9JLEdBQWMsRUFjbEIsU0FMYy9ULElBQVZzSCxHQUF1QkEsRUFBUSxLQUNqQ0EsRUFBUSxHQUlOQSxFQUFRM0ksS0FBS3lDLE9BQ2YsTUFBTyxHQU9ULFNBSllwQixJQUFSMkwsR0FBcUJBLEVBQU1oTixLQUFLeUMsVUFDbEN1SyxFQUFNaE4sS0FBS3lDLFFBR1R1SyxHQUFPLEVBQ1QsTUFBTyxHQU9ULElBSEFBLEtBQVMsS0FDVHJFLEtBQVcsR0FHVCxNQUFPLEdBS1QsSUFGSzBGLElBQVVBLEVBQVcsVUFHeEIsT0FBUUEsR0FDTixJQUFLLE1BQ0gsT0FBT21ILFNBQVN4VixLQUFNMkksRUFBT3FFLEdBRS9CLElBQUssT0FDTCxJQUFLLFFBQ0gsT0FBT3lJLFVBQVV6VixLQUFNMkksRUFBT3FFLEdBRWhDLElBQUssUUFDSCxPQUFPMEksV0FBVzFWLEtBQU0ySSxFQUFPcUUsR0FFakMsSUFBSyxTQUNMLElBQUssU0FDSCxPQUFPMkksWUFBWTNWLEtBQU0ySSxFQUFPcUUsR0FFbEMsSUFBSyxTQUNILE9BQU80SSxZQUFZNVYsS0FBTTJJLEVBQU9xRSxHQUVsQyxJQUFLLE9BQ0wsSUFBSyxRQUNMLElBQUssVUFDTCxJQUFLLFdBQ0gsT0FBTzZJLGFBQWE3VixLQUFNMkksRUFBT3FFLEdBRW5DLFFBQ0UsR0FBSW9JLEVBQWEsTUFBTSxJQUFJelQsVUFBVSxxQkFBdUIwTSxHQUM1REEsR0FBWUEsRUFBVyxJQUFJTSxjQUMzQnlHLEdBQWMsRUFHdEIsQ0FVQSxTQUFTVSxLQUFNdEwsRUFBR3BHLEVBQUduQyxHQUNuQixNQUFNZ0MsRUFBSXVHLEVBQUVwRyxHQUNab0csRUFBRXBHLEdBQUtvRyxFQUFFdkksR0FDVHVJLEVBQUV2SSxHQUFLZ0MsQ0FDVCxDQTJJQSxTQUFTOFIscUJBQXNCeEIsRUFBUXlCLEVBQUt4QixFQUFZbkcsRUFBVTRILEdBRWhFLEdBQXNCLElBQWxCMUIsRUFBTzlSLE9BQWMsT0FBUSxFQW1CakMsR0FoQjBCLGlCQUFmK1IsR0FDVG5HLEVBQVdtRyxFQUNYQSxFQUFhLEdBQ0pBLEVBQWEsV0FDdEJBLEVBQWEsV0FDSkEsR0FBYyxhQUN2QkEsR0FBYyxZQUdaTyxZQURKUCxHQUFjQSxLQUdaQSxFQUFheUIsRUFBTSxFQUFLMUIsRUFBTzlSLE9BQVMsR0FJdEMrUixFQUFhLElBQUdBLEVBQWFELEVBQU85UixPQUFTK1IsR0FDN0NBLEdBQWNELEVBQU85UixPQUFRLENBQy9CLEdBQUl3VCxFQUFLLE9BQVEsRUFDWnpCLEVBQWFELEVBQU85UixPQUFTLENBQ3BDLE1BQU8sR0FBSStSLEVBQWEsRUFBRyxDQUN6QixJQUFJeUIsRUFDQyxPQUFRLEVBREp6QixFQUFhLENBRXhCLENBUUEsR0FMbUIsaUJBQVJ3QixJQUNUQSxFQUFNak4sT0FBTzhLLEtBQUttQyxFQUFLM0gsSUFJckJ0RixPQUFPOEwsU0FBU21CLEdBRWxCLE9BQW1CLElBQWZBLEVBQUl2VCxRQUNFLEVBRUh5VCxhQUFhM0IsRUFBUXlCLEVBQUt4QixFQUFZbkcsRUFBVTRILEdBQ2xELEdBQW1CLGlCQUFSRCxFQUVoQixPQURBQSxHQUFZLElBQ2dDLG1CQUFqQ3RDLFdBQVd2VSxVQUFVeUosUUFDMUJxTixFQUNLdkMsV0FBV3ZVLFVBQVV5SixRQUFReEosS0FBS21WLEVBQVF5QixFQUFLeEIsR0FFL0NkLFdBQVd2VSxVQUFVZ1gsWUFBWS9XLEtBQUttVixFQUFReUIsRUFBS3hCLEdBR3ZEMEIsYUFBYTNCLEVBQVEsQ0FBQ3lCLEdBQU14QixFQUFZbkcsRUFBVTRILEdBRzNELE1BQU0sSUFBSXRVLFVBQVUsdUNBQ3RCLENBRUEsU0FBU3VVLGFBQWNwUyxFQUFLa1MsRUFBS3hCLEVBQVluRyxFQUFVNEgsR0FDckQsSUEwQkloUyxFQTFCQW1TLEVBQVksRUFDWkMsRUFBWXZTLEVBQUlyQixPQUNoQjZULEVBQVlOLEVBQUl2VCxPQUVwQixRQUFpQnBCLElBQWJnTixJQUVlLFVBRGpCQSxFQUFXeEwsT0FBT3dMLEdBQVVNLGdCQUNZLFVBQWJOLEdBQ1YsWUFBYkEsR0FBdUMsYUFBYkEsR0FBeUIsQ0FDckQsR0FBSXZLLEVBQUlyQixPQUFTLEdBQUt1VCxFQUFJdlQsT0FBUyxFQUNqQyxPQUFRLEVBRVYyVCxFQUFZLEVBQ1pDLEdBQWEsRUFDYkMsR0FBYSxFQUNiOUIsR0FBYyxDQUNoQixDQUdGLFNBQVMrQixLQUFNckcsRUFBS2pNLEdBQ2xCLE9BQWtCLElBQWRtUyxFQUNLbEcsRUFBSWpNLEdBRUppTSxFQUFJc0csYUFBYXZTLEVBQUltUyxFQUVoQyxDQUdBLEdBQUlILEVBQUssQ0FDUCxJQUFJUSxHQUFjLEVBQ2xCLElBQUt4UyxFQUFJdVEsRUFBWXZRLEVBQUlvUyxFQUFXcFMsSUFDbEMsR0FBSXNTLEtBQUt6UyxFQUFLRyxLQUFPc1MsS0FBS1AsR0FBcUIsSUFBaEJTLEVBQW9CLEVBQUl4UyxFQUFJd1MsSUFFekQsSUFEb0IsSUFBaEJBLElBQW1CQSxFQUFheFMsR0FDaENBLEVBQUl3UyxFQUFhLElBQU1ILEVBQVcsT0FBT0csRUFBYUwsT0FFdEMsSUFBaEJLLElBQW1CeFMsR0FBS0EsRUFBSXdTLEdBQ2hDQSxHQUFjLENBR3BCLE1BRUUsSUFESWpDLEVBQWE4QixFQUFZRCxJQUFXN0IsRUFBYTZCLEVBQVlDLEdBQzVEclMsRUFBSXVRLEVBQVl2USxHQUFLLEVBQUdBLElBQUssQ0FDaEMsSUFBSXlTLEdBQVEsRUFDWixJQUFLLElBQUkxTCxFQUFJLEVBQUdBLEVBQUlzTCxFQUFXdEwsSUFDN0IsR0FBSXVMLEtBQUt6UyxFQUFLRyxFQUFJK0csS0FBT3VMLEtBQUtQLEVBQUtoTCxHQUFJLENBQ3JDMEwsR0FBUSxFQUNSLEtBQ0YsQ0FFRixHQUFJQSxFQUFPLE9BQU96UyxDQUNwQixDQUdGLE9BQVEsQ0FDVixDQWNBLFNBQVMwUyxTQUFVekcsRUFBSzZELEVBQVE2QyxFQUFRblUsR0FDdENtVSxFQUFTalgsT0FBT2lYLElBQVcsRUFDM0IsTUFBTUMsRUFBWTNHLEVBQUl6TixPQUFTbVUsRUFDMUJuVSxHQUdIQSxFQUFTOUMsT0FBTzhDLElBQ0hvVSxJQUNYcFUsRUFBU29VLEdBSlhwVSxFQUFTb1UsRUFRWCxNQUFNQyxFQUFTL0MsRUFBT3RSLE9BS3RCLElBQUl3QixFQUNKLElBSkl4QixFQUFTcVUsRUFBUyxJQUNwQnJVLEVBQVNxVSxFQUFTLEdBR2Y3UyxFQUFJLEVBQUdBLEVBQUl4QixJQUFVd0IsRUFBRyxDQUMzQixNQUFNOFMsRUFBU0MsU0FBU2pELEVBQU8xTCxPQUFXLEVBQUpwRSxFQUFPLEdBQUksSUFDakQsR0FBSThRLFlBQVlnQyxHQUFTLE9BQU85UyxFQUNoQ2lNLEVBQUkwRyxFQUFTM1MsR0FBSzhTLENBQ3BCLENBQ0EsT0FBTzlTLENBQ1QsQ0FFQSxTQUFTZ1QsVUFBVy9HLEVBQUs2RCxFQUFRNkMsRUFBUW5VLEdBQ3ZDLE9BQU95VSxXQUFXN0IsWUFBWXRCLEVBQVE3RCxFQUFJek4sT0FBU21VLEdBQVMxRyxFQUFLMEcsRUFBUW5VLEVBQzNFLENBRUEsU0FBUzBVLFdBQVlqSCxFQUFLNkQsRUFBUTZDLEVBQVFuVSxHQUN4QyxPQUFPeVUsV0F5cENULFNBQVNFLGFBQWNsUCxHQUNyQixNQUFNbVAsRUFBWSxHQUNsQixJQUFLLElBQUlwVCxFQUFJLEVBQUdBLEVBQUlpRSxFQUFJekYsU0FBVXdCLEVBRWhDb1QsRUFBVTdVLEtBQXlCLElBQXBCMEYsRUFBSXFJLFdBQVd0TSxJQUVoQyxPQUFPb1QsQ0FDVCxDQWhxQ29CRCxDQUFhckQsR0FBUzdELEVBQUswRyxFQUFRblUsRUFDdkQsQ0FFQSxTQUFTNlUsWUFBYXBILEVBQUs2RCxFQUFRNkMsRUFBUW5VLEdBQ3pDLE9BQU95VSxXQUFXNUIsY0FBY3ZCLEdBQVM3RCxFQUFLMEcsRUFBUW5VLEVBQ3hELENBRUEsU0FBUzhVLFVBQVdySCxFQUFLNkQsRUFBUTZDLEVBQVFuVSxHQUN2QyxPQUFPeVUsV0EwcENULFNBQVNNLGVBQWdCdFAsRUFBS3VQLEdBQzVCLElBQUloTixFQUFHaU4sRUFBSUMsRUFDWCxNQUFNTixFQUFZLEdBQ2xCLElBQUssSUFBSXBULEVBQUksRUFBR0EsRUFBSWlFLEVBQUl6RixXQUNqQmdWLEdBQVMsR0FBSyxLQURheFQsRUFHaEN3RyxFQUFJdkMsRUFBSXFJLFdBQVd0TSxHQUNuQnlULEVBQUtqTixHQUFLLEVBQ1ZrTixFQUFLbE4sRUFBSSxJQUNUNE0sRUFBVTdVLEtBQUttVixHQUNmTixFQUFVN1UsS0FBS2tWLEdBR2pCLE9BQU9MLENBQ1QsQ0F4cUNvQkcsQ0FBZXpELEVBQVE3RCxFQUFJek4sT0FBU21VLEdBQVMxRyxFQUFLMEcsRUFBUW5VLEVBQzlFLENBOEVBLFNBQVNtVCxZQUFhMUYsRUFBS3ZILEVBQU9xRSxHQUNoQyxPQUFjLElBQVZyRSxHQUFlcUUsSUFBUWtELEVBQUl6TixPQUN0QndRLEVBQU8yRSxjQUFjMUgsR0FFckIrQyxFQUFPMkUsY0FBYzFILEVBQUlyUCxNQUFNOEgsRUFBT3FFLEdBRWpELENBRUEsU0FBU3lJLFVBQVd2RixFQUFLdkgsRUFBT3FFLEdBQzlCQSxFQUFNNkssS0FBS0MsSUFBSTVILEVBQUl6TixPQUFRdUssR0FDM0IsTUFBTStLLEVBQU0sR0FFWixJQUFJOVQsRUFBSTBFLEVBQ1IsS0FBTzFFLEVBQUkrSSxHQUFLLENBQ2QsTUFBTWdMLEVBQVk5SCxFQUFJak0sR0FDdEIsSUFBSWdVLEVBQVksS0FDWkMsRUFBb0JGLEVBQVksSUFDaEMsRUFDQ0EsRUFBWSxJQUNULEVBQ0NBLEVBQVksSUFDVCxFQUNBLEVBRVosR0FBSS9ULEVBQUlpVSxHQUFvQmxMLEVBQUssQ0FDL0IsSUFBSW1MLEVBQVlDLEVBQVdDLEVBQVlDLEVBRXZDLE9BQVFKLEdBQ04sS0FBSyxFQUNDRixFQUFZLE1BQ2RDLEVBQVlELEdBRWQsTUFDRixLQUFLLEVBQ0hHLEVBQWFqSSxFQUFJak0sRUFBSSxHQUNPLE1BQVYsSUFBYmtVLEtBQ0hHLEdBQTZCLEdBQVpOLElBQXFCLEVBQW9CLEdBQWJHLEVBQ3pDRyxFQUFnQixNQUNsQkwsRUFBWUssSUFHaEIsTUFDRixLQUFLLEVBQ0hILEVBQWFqSSxFQUFJak0sRUFBSSxHQUNyQm1VLEVBQVlsSSxFQUFJak0sRUFBSSxHQUNRLE1BQVYsSUFBYmtVLElBQXNELE1BQVYsSUFBWkMsS0FDbkNFLEdBQTZCLEdBQVpOLElBQW9CLElBQW9CLEdBQWJHLElBQXNCLEVBQW1CLEdBQVpDLEVBQ3JFRSxFQUFnQixPQUFVQSxFQUFnQixPQUFVQSxFQUFnQixTQUN0RUwsRUFBWUssSUFHaEIsTUFDRixLQUFLLEVBQ0hILEVBQWFqSSxFQUFJak0sRUFBSSxHQUNyQm1VLEVBQVlsSSxFQUFJak0sRUFBSSxHQUNwQm9VLEVBQWFuSSxFQUFJak0sRUFBSSxHQUNPLE1BQVYsSUFBYmtVLElBQXNELE1BQVYsSUFBWkMsSUFBc0QsTUFBVixJQUFiQyxLQUNsRUMsR0FBNkIsR0FBWk4sSUFBb0IsSUFBcUIsR0FBYkcsSUFBc0IsSUFBbUIsR0FBWkMsSUFBcUIsRUFBb0IsR0FBYkMsRUFDbEdDLEVBQWdCLE9BQVVBLEVBQWdCLFVBQzVDTCxFQUFZSyxJQUl0QixDQUVrQixPQUFkTCxHQUdGQSxFQUFZLE1BQ1pDLEVBQW1CLEdBQ1ZELEVBQVksUUFFckJBLEdBQWEsTUFDYkYsRUFBSXZWLEtBQUt5VixJQUFjLEdBQUssS0FBUSxPQUNwQ0EsRUFBWSxNQUFxQixLQUFaQSxHQUd2QkYsRUFBSXZWLEtBQUt5VixHQUNUaFUsR0FBS2lVLENBQ1AsQ0FFQSxPQVFGLFNBQVNLLHNCQUF1QkMsR0FDOUIsTUFBTWpULEVBQU1pVCxFQUFXL1YsT0FDdkIsR0FBSThDLEdBQU9rVCxFQUNULE9BQU81VixPQUFPNlYsYUFBYTVaLE1BQU0rRCxPQUFRMlYsR0FJM0MsSUFBSVQsRUFBTSxHQUNOOVQsRUFBSSxFQUNSLEtBQU9BLEVBQUlzQixHQUNUd1MsR0FBT2xWLE9BQU82VixhQUFhNVosTUFDekIrRCxPQUNBMlYsRUFBVzNYLE1BQU1vRCxFQUFHQSxHQUFLd1UsSUFHN0IsT0FBT1YsQ0FDVCxDQXhCU1EsQ0FBc0JSLEVBQy9CLENBMytCQTdYLEVBQVF5WSxXQUFhbkYsRUFnQnJCekssT0FBTzZQLG9CQVVQLFNBQVNDLG9CQUVQLElBQ0UsTUFBTS9VLEVBQU0sSUFBSTRQLFdBQVcsR0FDckJvRixFQUFRLENBQUVDLElBQUssV0FBYyxPQUFPLEVBQUcsR0FHN0MsT0FGQXpaLE9BQU9xVSxlQUFlbUYsRUFBT3BGLFdBQVd2VSxXQUN4Q0csT0FBT3FVLGVBQWU3UCxFQUFLZ1YsR0FDTixLQUFkaFYsRUFBSWlWLEtBQ2IsQ0FBRSxNQUFPcE8sR0FDUCxPQUFPLENBQ1QsQ0FDRixDQXJCNkJrTyxHQUV4QjlQLE9BQU82UCxxQkFBMEMsb0JBQVozVixTQUNiLG1CQUFsQkEsUUFBUWtDLE9BQ2pCbEMsUUFBUWtDLE1BQ04saUpBa0JKN0YsT0FBT29GLGVBQWVxRSxPQUFPNUosVUFBVyxTQUFVLENBQ2hEd0YsWUFBWSxFQUNaQyxJQUFLLFdBQ0gsR0FBS21FLE9BQU84TCxTQUFTN1UsTUFDckIsT0FBT0EsS0FBS3VVLE1BQ2QsSUFHRmpWLE9BQU9vRixlQUFlcUUsT0FBTzVKLFVBQVcsU0FBVSxDQUNoRHdGLFlBQVksRUFDWkMsSUFBSyxXQUNILEdBQUttRSxPQUFPOEwsU0FBUzdVLE1BQ3JCLE9BQU9BLEtBQUt3VSxVQUNkLElBb0NGekwsT0FBT2lRLFNBQVcsS0E4RGxCalEsT0FBTzhLLEtBQU8sU0FBVWhVLEVBQU8rVCxFQUFrQm5SLEdBQy9DLE9BQU9vUixLQUFLaFUsRUFBTytULEVBQWtCblIsRUFDdkMsRUFJQW5ELE9BQU9xVSxlQUFlNUssT0FBTzVKLFVBQVd1VSxXQUFXdlUsV0FDbkRHLE9BQU9xVSxlQUFlNUssT0FBUTJLLFlBOEI5QjNLLE9BQU91SyxNQUFRLFNBQVVwQyxFQUFNK0gsRUFBTTVLLEdBQ25DLE9BckJGLFNBQVNpRixNQUFPcEMsRUFBTStILEVBQU01SyxHQUUxQixPQURBNEcsV0FBVy9ELEdBQ1BBLEdBQVEsRUFDSHVDLGFBQWF2QyxRQUVUN1AsSUFBVDRYLEVBSXlCLGlCQUFiNUssRUFDVm9GLGFBQWF2QyxHQUFNK0gsS0FBS0EsRUFBTTVLLEdBQzlCb0YsYUFBYXZDLEdBQU0rSCxLQUFLQSxHQUV2QnhGLGFBQWF2QyxFQUN0QixDQU9Tb0MsQ0FBTXBDLEVBQU0rSCxFQUFNNUssRUFDM0IsRUFVQXRGLE9BQU9zQyxZQUFjLFNBQVU2RixHQUM3QixPQUFPN0YsWUFBWTZGLEVBQ3JCLEVBSUFuSSxPQUFPbVEsZ0JBQWtCLFNBQVVoSSxHQUNqQyxPQUFPN0YsWUFBWTZGLEVBQ3JCLEVBNkdBbkksT0FBTzhMLFNBQVcsU0FBU0EsU0FBVXJLLEdBQ25DLE9BQVksTUFBTEEsSUFBNkIsSUFBaEJBLEVBQUUyTyxXQUNwQjNPLElBQU16QixPQUFPNUosU0FDakIsRUFFQTRKLE9BQU9xUSxRQUFVLFNBQVNBLFFBQVM3TyxFQUFHQyxHQUdwQyxHQUZJNkosV0FBVzlKLEVBQUdtSixjQUFhbkosRUFBSXhCLE9BQU84SyxLQUFLdEosRUFBR0EsRUFBRXFNLE9BQVFyTSxFQUFFeUosYUFDMURLLFdBQVc3SixFQUFHa0osY0FBYWxKLEVBQUl6QixPQUFPOEssS0FBS3JKLEVBQUdBLEVBQUVvTSxPQUFRcE0sRUFBRXdKLGNBQ3pEakwsT0FBTzhMLFNBQVN0SyxLQUFPeEIsT0FBTzhMLFNBQVNySyxHQUMxQyxNQUFNLElBQUk3SSxVQUNSLHlFQUlKLEdBQUk0SSxJQUFNQyxFQUFHLE9BQU8sRUFFcEIsSUFBSW5CLEVBQUlrQixFQUFFOUgsT0FDTjZHLEVBQUlrQixFQUFFL0gsT0FFVixJQUFLLElBQUl3QixFQUFJLEVBQUdzQixFQUFNc1MsS0FBS0MsSUFBSXpPLEVBQUdDLEdBQUlyRixFQUFJc0IsSUFBT3RCLEVBQy9DLEdBQUlzRyxFQUFFdEcsS0FBT3VHLEVBQUV2RyxHQUFJLENBQ2pCb0YsRUFBSWtCLEVBQUV0RyxHQUNOcUYsRUFBSWtCLEVBQUV2RyxHQUNOLEtBQ0YsQ0FHRixPQUFJb0YsRUFBSUMsR0FBVyxFQUNmQSxFQUFJRCxFQUFVLEVBQ1gsQ0FDVCxFQUVBTixPQUFPMkYsV0FBYSxTQUFTQSxXQUFZTCxHQUN2QyxPQUFReEwsT0FBT3dMLEdBQVVNLGVBQ3ZCLElBQUssTUFDTCxJQUFLLE9BQ0wsSUFBSyxRQUNMLElBQUssUUFDTCxJQUFLLFNBQ0wsSUFBSyxTQUNMLElBQUssU0FDTCxJQUFLLE9BQ0wsSUFBSyxRQUNMLElBQUssVUFDTCxJQUFLLFdBQ0gsT0FBTyxFQUNULFFBQ0UsT0FBTyxFQUViLEVBRUE1RixPQUFPdEosT0FBUyxTQUFTQSxPQUFRbUcsRUFBTW5ELEdBQ3JDLElBQUt1QixNQUFNMkQsUUFBUS9CLEdBQ2pCLE1BQU0sSUFBSWpFLFVBQVUsK0NBR3RCLEdBQW9CLElBQWhCaUUsRUFBS25ELE9BQ1AsT0FBT3NHLE9BQU91SyxNQUFNLEdBR3RCLElBQUlyUCxFQUNKLFFBQWU1QyxJQUFYb0IsRUFFRixJQURBQSxFQUFTLEVBQ0p3QixFQUFJLEVBQUdBLEVBQUkyQixFQUFLbkQsU0FBVXdCLEVBQzdCeEIsR0FBVW1ELEVBQUszQixHQUFHeEIsT0FJdEIsTUFBTThSLEVBQVN4TCxPQUFPc0MsWUFBWTVJLEdBQ2xDLElBQUkyRixFQUFNLEVBQ1YsSUFBS25FLEVBQUksRUFBR0EsRUFBSTJCLEVBQUtuRCxTQUFVd0IsRUFBRyxDQUNoQyxJQUFJaU0sRUFBTXRLLEVBQUszQixHQUNmLEdBQUlvUSxXQUFXbkUsRUFBS3dELFlBQ2R0TCxFQUFNOEgsRUFBSXpOLE9BQVM4UixFQUFPOVIsUUFDdkJzRyxPQUFPOEwsU0FBUzNFLEtBQU1BLEVBQU1uSCxPQUFPOEssS0FBSzNELElBQzdDQSxFQUFJN0wsS0FBS2tRLEVBQVFuTSxJQUVqQnNMLFdBQVd2VSxVQUFVMEYsSUFBSXpGLEtBQ3ZCbVYsRUFDQXJFLEVBQ0E5SCxPQUdDLEtBQUtXLE9BQU84TCxTQUFTM0UsR0FDMUIsTUFBTSxJQUFJdk8sVUFBVSwrQ0FFcEJ1TyxFQUFJN0wsS0FBS2tRLEVBQVFuTSxFQUNuQixDQUNBQSxHQUFPOEgsRUFBSXpOLE1BQ2IsQ0FDQSxPQUFPOFIsQ0FDVCxFQWlEQXhMLE9BQU9pTCxXQUFhQSxXQThFcEJqTCxPQUFPNUosVUFBVWdhLFdBQVksRUFRN0JwUSxPQUFPNUosVUFBVWthLE9BQVMsU0FBU0EsU0FDakMsTUFBTTlULEVBQU12RixLQUFLeUMsT0FDakIsR0FBSThDLEVBQU0sR0FBTSxFQUNkLE1BQU0sSUFBSVQsV0FBVyw2Q0FFdkIsSUFBSyxJQUFJYixFQUFJLEVBQUdBLEVBQUlzQixFQUFLdEIsR0FBSyxFQUM1QjZSLEtBQUs5VixLQUFNaUUsRUFBR0EsRUFBSSxHQUVwQixPQUFPakUsSUFDVCxFQUVBK0ksT0FBTzVKLFVBQVVtYSxPQUFTLFNBQVNBLFNBQ2pDLE1BQU0vVCxFQUFNdkYsS0FBS3lDLE9BQ2pCLEdBQUk4QyxFQUFNLEdBQU0sRUFDZCxNQUFNLElBQUlULFdBQVcsNkNBRXZCLElBQUssSUFBSWIsRUFBSSxFQUFHQSxFQUFJc0IsRUFBS3RCLEdBQUssRUFDNUI2UixLQUFLOVYsS0FBTWlFLEVBQUdBLEVBQUksR0FDbEI2UixLQUFLOVYsS0FBTWlFLEVBQUksRUFBR0EsRUFBSSxHQUV4QixPQUFPakUsSUFDVCxFQUVBK0ksT0FBTzVKLFVBQVVvYSxPQUFTLFNBQVNBLFNBQ2pDLE1BQU1oVSxFQUFNdkYsS0FBS3lDLE9BQ2pCLEdBQUk4QyxFQUFNLEdBQU0sRUFDZCxNQUFNLElBQUlULFdBQVcsNkNBRXZCLElBQUssSUFBSWIsRUFBSSxFQUFHQSxFQUFJc0IsRUFBS3RCLEdBQUssRUFDNUI2UixLQUFLOVYsS0FBTWlFLEVBQUdBLEVBQUksR0FDbEI2UixLQUFLOVYsS0FBTWlFLEVBQUksRUFBR0EsRUFBSSxHQUN0QjZSLEtBQUs5VixLQUFNaUUsRUFBSSxFQUFHQSxFQUFJLEdBQ3RCNlIsS0FBSzlWLEtBQU1pRSxFQUFJLEVBQUdBLEVBQUksR0FFeEIsT0FBT2pFLElBQ1QsRUFFQStJLE9BQU81SixVQUFVbVIsU0FBVyxTQUFTQSxXQUNuQyxNQUFNN04sRUFBU3pDLEtBQUt5QyxPQUNwQixPQUFlLElBQVhBLEVBQXFCLEdBQ0EsSUFBckIzQixVQUFVMkIsT0FBcUJnVCxVQUFVelYsS0FBTSxFQUFHeUMsR0FDL0M4UyxhQUFhelcsTUFBTWtCLEtBQU1jLFVBQ2xDLEVBRUFpSSxPQUFPNUosVUFBVXFhLGVBQWlCelEsT0FBTzVKLFVBQVVtUixTQUVuRHZILE9BQU81SixVQUFVc2EsT0FBUyxTQUFTQSxPQUFRalAsR0FDekMsSUFBS3pCLE9BQU84TCxTQUFTckssR0FBSSxNQUFNLElBQUk3SSxVQUFVLDZCQUM3QyxPQUFJM0IsT0FBU3dLLEdBQ3NCLElBQTVCekIsT0FBT3FRLFFBQVFwWixLQUFNd0ssRUFDOUIsRUFFQXpCLE9BQU81SixVQUFVdWEsUUFBVSxTQUFTQSxVQUNsQyxJQUFJeFIsRUFBTSxHQUNWLE1BQU15UixFQUFNelosRUFBUXFULGtCQUdwQixPQUZBckwsRUFBTWxJLEtBQUtzUSxTQUFTLE1BQU8sRUFBR3FKLEdBQUtyUixRQUFRLFVBQVcsT0FBT3NSLE9BQ3pENVosS0FBS3lDLE9BQVNrWCxJQUFLelIsR0FBTyxTQUN2QixXQUFhQSxFQUFNLEdBQzVCLEVBQ0lpTCxJQUNGcEssT0FBTzVKLFVBQVVnVSxHQUF1QnBLLE9BQU81SixVQUFVdWEsU0FHM0QzUSxPQUFPNUosVUFBVWlhLFFBQVUsU0FBU0EsUUFBU3JhLEVBQVE0SixFQUFPcUUsRUFBSzZNLEVBQVdDLEdBSTFFLEdBSEl6RixXQUFXdFYsRUFBUTJVLGNBQ3JCM1UsRUFBU2dLLE9BQU84SyxLQUFLOVUsRUFBUUEsRUFBTzZYLE9BQVE3WCxFQUFPaVYsY0FFaERqTCxPQUFPOEwsU0FBUzlWLEdBQ25CLE1BQU0sSUFBSTRDLFVBQ1Isd0ZBQzJCNUMsR0FpQi9CLFFBYmNzQyxJQUFWc0gsSUFDRkEsRUFBUSxRQUVFdEgsSUFBUjJMLElBQ0ZBLEVBQU1qTyxFQUFTQSxFQUFPMEQsT0FBUyxRQUVmcEIsSUFBZHdZLElBQ0ZBLEVBQVksUUFFRXhZLElBQVp5WSxJQUNGQSxFQUFVOVosS0FBS3lDLFFBR2JrRyxFQUFRLEdBQUtxRSxFQUFNak8sRUFBTzBELFFBQVVvWCxFQUFZLEdBQUtDLEVBQVU5WixLQUFLeUMsT0FDdEUsTUFBTSxJQUFJcUMsV0FBVyxzQkFHdkIsR0FBSStVLEdBQWFDLEdBQVduUixHQUFTcUUsRUFDbkMsT0FBTyxFQUVULEdBQUk2TSxHQUFhQyxFQUNmLE9BQVEsRUFFVixHQUFJblIsR0FBU3FFLEVBQ1gsT0FBTyxFQVFULEdBQUloTixPQUFTakIsRUFBUSxPQUFPLEVBRTVCLElBQUlzSyxHQUpKeVEsS0FBYSxJQURiRCxLQUFlLEdBTVh2USxHQVBKMEQsS0FBUyxJQURUckUsS0FBVyxHQVNYLE1BQU1wRCxFQUFNc1MsS0FBS0MsSUFBSXpPLEVBQUdDLEdBRWxCeVEsRUFBVy9aLEtBQUthLE1BQU1nWixFQUFXQyxHQUNqQ0UsRUFBYWpiLEVBQU84QixNQUFNOEgsRUFBT3FFLEdBRXZDLElBQUssSUFBSS9JLEVBQUksRUFBR0EsRUFBSXNCLElBQU90QixFQUN6QixHQUFJOFYsRUFBUzlWLEtBQU8rVixFQUFXL1YsR0FBSSxDQUNqQ29GLEVBQUkwUSxFQUFTOVYsR0FDYnFGLEVBQUkwUSxFQUFXL1YsR0FDZixLQUNGLENBR0YsT0FBSW9GLEVBQUlDLEdBQVcsRUFDZkEsRUFBSUQsRUFBVSxFQUNYLENBQ1QsRUEySEFOLE9BQU81SixVQUFVdUosU0FBVyxTQUFTQSxTQUFVc04sRUFBS3hCLEVBQVluRyxHQUM5RCxPQUFvRCxJQUE3Q3JPLEtBQUs0SSxRQUFRb04sRUFBS3hCLEVBQVluRyxFQUN2QyxFQUVBdEYsT0FBTzVKLFVBQVV5SixRQUFVLFNBQVNBLFFBQVNvTixFQUFLeEIsRUFBWW5HLEdBQzVELE9BQU8wSCxxQkFBcUIvVixLQUFNZ1csRUFBS3hCLEVBQVluRyxHQUFVLEVBQy9ELEVBRUF0RixPQUFPNUosVUFBVWdYLFlBQWMsU0FBU0EsWUFBYUgsRUFBS3hCLEVBQVluRyxHQUNwRSxPQUFPMEgscUJBQXFCL1YsS0FBTWdXLEVBQUt4QixFQUFZbkcsR0FBVSxFQUMvRCxFQTRDQXRGLE9BQU81SixVQUFVdVEsTUFBUSxTQUFTQSxNQUFPcUUsRUFBUTZDLEVBQVFuVSxFQUFRNEwsR0FFL0QsUUFBZWhOLElBQVh1VixFQUNGdkksRUFBVyxPQUNYNUwsRUFBU3pDLEtBQUt5QyxPQUNkbVUsRUFBUyxPQUVKLFFBQWV2VixJQUFYb0IsR0FBMEMsaUJBQVhtVSxFQUN4Q3ZJLEVBQVd1SSxFQUNYblUsRUFBU3pDLEtBQUt5QyxPQUNkbVUsRUFBUyxNQUVKLEtBQUlxRCxTQUFTckQsR0FVbEIsTUFBTSxJQUFJaFUsTUFDUiwyRUFWRmdVLEtBQW9CLEVBQ2hCcUQsU0FBU3hYLElBQ1hBLEtBQW9CLE9BQ0hwQixJQUFiZ04sSUFBd0JBLEVBQVcsVUFFdkNBLEVBQVc1TCxFQUNYQSxPQUFTcEIsRUFNYixDQUVBLE1BQU13VixFQUFZN1csS0FBS3lDLE9BQVNtVSxFQUdoQyxTQUZldlYsSUFBWG9CLEdBQXdCQSxFQUFTb1UsS0FBV3BVLEVBQVNvVSxHQUVwRDlDLEVBQU90UixPQUFTLElBQU1BLEVBQVMsR0FBS21VLEVBQVMsSUFBT0EsRUFBUzVXLEtBQUt5QyxPQUNyRSxNQUFNLElBQUlxQyxXQUFXLDBDQUdsQnVKLElBQVVBLEVBQVcsUUFFMUIsSUFBSStHLEdBQWMsRUFDbEIsT0FDRSxPQUFRL0csR0FDTixJQUFLLE1BQ0gsT0FBT3NJLFNBQVMzVyxLQUFNK1QsRUFBUTZDLEVBQVFuVSxHQUV4QyxJQUFLLE9BQ0wsSUFBSyxRQUNILE9BQU93VSxVQUFValgsS0FBTStULEVBQVE2QyxFQUFRblUsR0FFekMsSUFBSyxRQUNMLElBQUssU0FDTCxJQUFLLFNBQ0gsT0FBTzBVLFdBQVduWCxLQUFNK1QsRUFBUTZDLEVBQVFuVSxHQUUxQyxJQUFLLFNBRUgsT0FBTzZVLFlBQVl0WCxLQUFNK1QsRUFBUTZDLEVBQVFuVSxHQUUzQyxJQUFLLE9BQ0wsSUFBSyxRQUNMLElBQUssVUFDTCxJQUFLLFdBQ0gsT0FBTzhVLFVBQVV2WCxLQUFNK1QsRUFBUTZDLEVBQVFuVSxHQUV6QyxRQUNFLEdBQUkyUyxFQUFhLE1BQU0sSUFBSXpULFVBQVUscUJBQXVCME0sR0FDNURBLEdBQVksR0FBS0EsR0FBVU0sY0FDM0J5RyxHQUFjLEVBR3RCLEVBRUFyTSxPQUFPNUosVUFBVSthLE9BQVMsU0FBU0EsU0FDakMsTUFBTyxDQUNMblksS0FBTSxTQUNOMEosS0FBTXpILE1BQU03RSxVQUFVMEIsTUFBTXpCLEtBQUtZLEtBQUttYSxNQUFRbmEsS0FBTSxHQUV4RCxFQXlGQSxNQUFNeVksRUFBdUIsS0FvQjdCLFNBQVMvQyxXQUFZeEYsRUFBS3ZILEVBQU9xRSxHQUMvQixJQUFJakosRUFBTSxHQUNWaUosRUFBTTZLLEtBQUtDLElBQUk1SCxFQUFJek4sT0FBUXVLLEdBRTNCLElBQUssSUFBSS9JLEVBQUkwRSxFQUFPMUUsRUFBSStJLElBQU8vSSxFQUM3QkYsR0FBT2xCLE9BQU82VixhQUFzQixJQUFUeEksRUFBSWpNLElBRWpDLE9BQU9GLENBQ1QsQ0FFQSxTQUFTNFIsWUFBYXpGLEVBQUt2SCxFQUFPcUUsR0FDaEMsSUFBSWpKLEVBQU0sR0FDVmlKLEVBQU02SyxLQUFLQyxJQUFJNUgsRUFBSXpOLE9BQVF1SyxHQUUzQixJQUFLLElBQUkvSSxFQUFJMEUsRUFBTzFFLEVBQUkrSSxJQUFPL0ksRUFDN0JGLEdBQU9sQixPQUFPNlYsYUFBYXhJLEVBQUlqTSxJQUVqQyxPQUFPRixDQUNULENBRUEsU0FBU3lSLFNBQVV0RixFQUFLdkgsRUFBT3FFLEdBQzdCLE1BQU16SCxFQUFNMkssRUFBSXpOLFNBRVhrRyxHQUFTQSxFQUFRLEtBQUdBLEVBQVEsS0FDNUJxRSxHQUFPQSxFQUFNLEdBQUtBLEVBQU16SCxLQUFLeUgsRUFBTXpILEdBRXhDLElBQUlzSSxFQUFNLEdBQ1YsSUFBSyxJQUFJNUosRUFBSTBFLEVBQU8xRSxFQUFJK0ksSUFBTy9JLEVBQzdCNEosR0FBT3VNLEVBQW9CbEssRUFBSWpNLElBRWpDLE9BQU80SixDQUNULENBRUEsU0FBU2dJLGFBQWMzRixFQUFLdkgsRUFBT3FFLEdBQ2pDLE1BQU1vRSxFQUFRbEIsRUFBSXJQLE1BQU04SCxFQUFPcUUsR0FDL0IsSUFBSStLLEVBQU0sR0FFVixJQUFLLElBQUk5VCxFQUFJLEVBQUdBLEVBQUltTixFQUFNM08sT0FBUyxFQUFHd0IsR0FBSyxFQUN6QzhULEdBQU9sVixPQUFPNlYsYUFBYXRILEVBQU1uTixHQUFxQixJQUFmbU4sRUFBTW5OLEVBQUksSUFFbkQsT0FBTzhULENBQ1QsQ0FpQ0EsU0FBU3NDLFlBQWF6RCxFQUFRMEQsRUFBSzdYLEdBQ2pDLEdBQUttVSxFQUFTLEdBQU8sR0FBS0EsRUFBUyxFQUFHLE1BQU0sSUFBSTlSLFdBQVcsc0JBQzNELEdBQUk4UixFQUFTMEQsRUFBTTdYLEVBQVEsTUFBTSxJQUFJcUMsV0FBVyx3Q0FDbEQsQ0F5UUEsU0FBU3lWLFNBQVVySyxFQUFLclEsRUFBTytXLEVBQVEwRCxFQUFLWCxFQUFLN0IsR0FDL0MsSUFBSy9PLE9BQU84TCxTQUFTM0UsR0FBTSxNQUFNLElBQUl2TyxVQUFVLCtDQUMvQyxHQUFJOUIsRUFBUThaLEdBQU85WixFQUFRaVksRUFBSyxNQUFNLElBQUloVCxXQUFXLHFDQUNyRCxHQUFJOFIsRUFBUzBELEVBQU1wSyxFQUFJek4sT0FBUSxNQUFNLElBQUlxQyxXQUFXLHFCQUN0RCxDQStGQSxTQUFTMFYsZUFBZ0J0SyxFQUFLclEsRUFBTytXLEVBQVFrQixFQUFLNkIsR0FDaERjLFdBQVc1YSxFQUFPaVksRUFBSzZCLEVBQUt6SixFQUFLMEcsRUFBUSxHQUV6QyxJQUFJZSxFQUFLaFksT0FBT0UsRUFBUTZhLE9BQU8sYUFDL0J4SyxFQUFJMEcsS0FBWWUsRUFDaEJBLElBQVcsRUFDWHpILEVBQUkwRyxLQUFZZSxFQUNoQkEsSUFBVyxFQUNYekgsRUFBSTBHLEtBQVllLEVBQ2hCQSxJQUFXLEVBQ1h6SCxFQUFJMEcsS0FBWWUsRUFDaEIsSUFBSUQsRUFBSy9YLE9BQU9FLEdBQVM2YSxPQUFPLElBQU1BLE9BQU8sYUFRN0MsT0FQQXhLLEVBQUkwRyxLQUFZYyxFQUNoQkEsSUFBVyxFQUNYeEgsRUFBSTBHLEtBQVljLEVBQ2hCQSxJQUFXLEVBQ1h4SCxFQUFJMEcsS0FBWWMsRUFDaEJBLElBQVcsRUFDWHhILEVBQUkwRyxLQUFZYyxFQUNUZCxDQUNULENBRUEsU0FBUytELGVBQWdCekssRUFBS3JRLEVBQU8rVyxFQUFRa0IsRUFBSzZCLEdBQ2hEYyxXQUFXNWEsRUFBT2lZLEVBQUs2QixFQUFLekosRUFBSzBHLEVBQVEsR0FFekMsSUFBSWUsRUFBS2hZLE9BQU9FLEVBQVE2YSxPQUFPLGFBQy9CeEssRUFBSTBHLEVBQVMsR0FBS2UsRUFDbEJBLElBQVcsRUFDWHpILEVBQUkwRyxFQUFTLEdBQUtlLEVBQ2xCQSxJQUFXLEVBQ1h6SCxFQUFJMEcsRUFBUyxHQUFLZSxFQUNsQkEsSUFBVyxFQUNYekgsRUFBSTBHLEVBQVMsR0FBS2UsRUFDbEIsSUFBSUQsRUFBSy9YLE9BQU9FLEdBQVM2YSxPQUFPLElBQU1BLE9BQU8sYUFRN0MsT0FQQXhLLEVBQUkwRyxFQUFTLEdBQUtjLEVBQ2xCQSxJQUFXLEVBQ1h4SCxFQUFJMEcsRUFBUyxHQUFLYyxFQUNsQkEsSUFBVyxFQUNYeEgsRUFBSTBHLEVBQVMsR0FBS2MsRUFDbEJBLElBQVcsRUFDWHhILEVBQUkwRyxHQUFVYyxFQUNQZCxFQUFTLENBQ2xCLENBa0hBLFNBQVNnRSxhQUFjMUssRUFBS3JRLEVBQU8rVyxFQUFRMEQsRUFBS1gsRUFBSzdCLEdBQ25ELEdBQUlsQixFQUFTMEQsRUFBTXBLLEVBQUl6TixPQUFRLE1BQU0sSUFBSXFDLFdBQVcsc0JBQ3BELEdBQUk4UixFQUFTLEVBQUcsTUFBTSxJQUFJOVIsV0FBVyxxQkFDdkMsQ0FFQSxTQUFTK1YsV0FBWTNLLEVBQUtyUSxFQUFPK1csRUFBUWtFLEVBQWNDLEdBT3JELE9BTkFsYixHQUFTQSxFQUNUK1csS0FBb0IsRUFDZm1FLEdBQ0hILGFBQWExSyxFQUFLclEsRUFBTytXLEVBQVEsR0FFbkMxRCxFQUFReEQsTUFBTVEsRUFBS3JRLEVBQU8rVyxFQUFRa0UsRUFBYyxHQUFJLEdBQzdDbEUsRUFBUyxDQUNsQixDQVVBLFNBQVNvRSxZQUFhOUssRUFBS3JRLEVBQU8rVyxFQUFRa0UsRUFBY0MsR0FPdEQsT0FOQWxiLEdBQVNBLEVBQ1QrVyxLQUFvQixFQUNmbUUsR0FDSEgsYUFBYTFLLEVBQUtyUSxFQUFPK1csRUFBUSxHQUVuQzFELEVBQVF4RCxNQUFNUSxFQUFLclEsRUFBTytXLEVBQVFrRSxFQUFjLEdBQUksR0FDN0NsRSxFQUFTLENBQ2xCLENBemtCQTdOLE9BQU81SixVQUFVMEIsTUFBUSxTQUFTQSxNQUFPOEgsRUFBT3FFLEdBQzlDLE1BQU16SCxFQUFNdkYsS0FBS3lDLFFBQ2pCa0csSUFBVUEsR0FHRSxHQUNWQSxHQUFTcEQsR0FDRyxJQUFHb0QsRUFBUSxHQUNkQSxFQUFRcEQsSUFDakJvRCxFQUFRcEQsSUFOVnlILE9BQWMzTCxJQUFSMkwsRUFBb0J6SCxJQUFReUgsR0FTeEIsR0FDUkEsR0FBT3pILEdBQ0csSUFBR3lILEVBQU0sR0FDVkEsRUFBTXpILElBQ2Z5SCxFQUFNekgsR0FHSnlILEVBQU1yRSxJQUFPcUUsRUFBTXJFLEdBRXZCLE1BQU1zUyxFQUFTamIsS0FBS2tiLFNBQVN2UyxFQUFPcUUsR0FJcEMsT0FGQTFOLE9BQU9xVSxlQUFlc0gsRUFBUWxTLE9BQU81SixXQUU5QjhiLENBQ1QsRUFVQWxTLE9BQU81SixVQUFVZ2MsV0FDakJwUyxPQUFPNUosVUFBVWljLFdBQWEsU0FBU0EsV0FBWXhFLEVBQVE1QyxFQUFZK0csR0FDckVuRSxLQUFvQixFQUNwQjVDLEtBQTRCLEVBQ3ZCK0csR0FBVVYsWUFBWXpELEVBQVE1QyxFQUFZaFUsS0FBS3lDLFFBRXBELElBQUl1VCxFQUFNaFcsS0FBSzRXLEdBQ1h5RSxFQUFNLEVBQ05wWCxFQUFJLEVBQ1IsT0FBU0EsRUFBSStQLElBQWVxSCxHQUFPLE1BQ2pDckYsR0FBT2hXLEtBQUs0VyxFQUFTM1MsR0FBS29YLEVBRzVCLE9BQU9yRixDQUNULEVBRUFqTixPQUFPNUosVUFBVW1jLFdBQ2pCdlMsT0FBTzVKLFVBQVVvYyxXQUFhLFNBQVNBLFdBQVkzRSxFQUFRNUMsRUFBWStHLEdBQ3JFbkUsS0FBb0IsRUFDcEI1QyxLQUE0QixFQUN2QitHLEdBQ0hWLFlBQVl6RCxFQUFRNUMsRUFBWWhVLEtBQUt5QyxRQUd2QyxJQUFJdVQsRUFBTWhXLEtBQUs0VyxJQUFXNUMsR0FDdEJxSCxFQUFNLEVBQ1YsS0FBT3JILEVBQWEsSUFBTXFILEdBQU8sTUFDL0JyRixHQUFPaFcsS0FBSzRXLElBQVc1QyxHQUFjcUgsRUFHdkMsT0FBT3JGLENBQ1QsRUFFQWpOLE9BQU81SixVQUFVcWMsVUFDakJ6UyxPQUFPNUosVUFBVXNjLFVBQVksU0FBU0EsVUFBVzdFLEVBQVFtRSxHQUd2RCxPQUZBbkUsS0FBb0IsRUFDZm1FLEdBQVVWLFlBQVl6RCxFQUFRLEVBQUc1VyxLQUFLeUMsUUFDcEN6QyxLQUFLNFcsRUFDZCxFQUVBN04sT0FBTzVKLFVBQVV1YyxhQUNqQjNTLE9BQU81SixVQUFVd2MsYUFBZSxTQUFTQSxhQUFjL0UsRUFBUW1FLEdBRzdELE9BRkFuRSxLQUFvQixFQUNmbUUsR0FBVVYsWUFBWXpELEVBQVEsRUFBRzVXLEtBQUt5QyxRQUNwQ3pDLEtBQUs0VyxHQUFXNVcsS0FBSzRXLEVBQVMsSUFBTSxDQUM3QyxFQUVBN04sT0FBTzVKLFVBQVV5YyxhQUNqQjdTLE9BQU81SixVQUFVcVgsYUFBZSxTQUFTQSxhQUFjSSxFQUFRbUUsR0FHN0QsT0FGQW5FLEtBQW9CLEVBQ2ZtRSxHQUFVVixZQUFZekQsRUFBUSxFQUFHNVcsS0FBS3lDLFFBQ25DekMsS0FBSzRXLElBQVcsRUFBSzVXLEtBQUs0VyxFQUFTLEVBQzdDLEVBRUE3TixPQUFPNUosVUFBVTBjLGFBQ2pCOVMsT0FBTzVKLFVBQVUyYyxhQUFlLFNBQVNBLGFBQWNsRixFQUFRbUUsR0FJN0QsT0FIQW5FLEtBQW9CLEVBQ2ZtRSxHQUFVVixZQUFZekQsRUFBUSxFQUFHNVcsS0FBS3lDLFNBRWxDekMsS0FBSzRXLEdBQ1Q1VyxLQUFLNFcsRUFBUyxJQUFNLEVBQ3BCNVcsS0FBSzRXLEVBQVMsSUFBTSxJQUNELFNBQW5CNVcsS0FBSzRXLEVBQVMsRUFDckIsRUFFQTdOLE9BQU81SixVQUFVNGMsYUFDakJoVCxPQUFPNUosVUFBVTZjLGFBQWUsU0FBU0EsYUFBY3BGLEVBQVFtRSxHQUk3RCxPQUhBbkUsS0FBb0IsRUFDZm1FLEdBQVVWLFlBQVl6RCxFQUFRLEVBQUc1VyxLQUFLeUMsUUFFcEIsU0FBZnpDLEtBQUs0VyxJQUNUNVcsS0FBSzRXLEVBQVMsSUFBTSxHQUNyQjVXLEtBQUs0VyxFQUFTLElBQU0sRUFDckI1VyxLQUFLNFcsRUFBUyxHQUNsQixFQUVBN04sT0FBTzVKLFVBQVU4YyxnQkFBa0JDLG9CQUFtQixTQUFTRCxnQkFBaUJyRixHQUU5RXVGLGVBREF2RixLQUFvQixFQUNHLFVBQ3ZCLE1BQU13RixFQUFRcGMsS0FBSzRXLEdBQ2I3SSxFQUFPL04sS0FBSzRXLEVBQVMsUUFDYnZWLElBQVYrYSxRQUFnQy9hLElBQVQwTSxHQUN6QnNPLFlBQVl6RixFQUFRNVcsS0FBS3lDLE9BQVMsR0FHcEMsTUFBTWtWLEVBQUt5RSxFQUNRLElBQWpCcGMsT0FBTzRXLEdBQ1UsTUFBakI1VyxPQUFPNFcsR0FDUDVXLE9BQU80VyxHQUFVLEdBQUssR0FFbEJjLEVBQUsxWCxPQUFPNFcsR0FDQyxJQUFqQjVXLE9BQU80VyxHQUNVLE1BQWpCNVcsT0FBTzRXLEdBQ1A3SSxFQUFPLEdBQUssR0FFZCxPQUFPMk0sT0FBTy9DLElBQU8rQyxPQUFPaEQsSUFBT2dELE9BQU8sSUFDNUMsSUFFQTNSLE9BQU81SixVQUFVbWQsZ0JBQWtCSixvQkFBbUIsU0FBU0ksZ0JBQWlCMUYsR0FFOUV1RixlQURBdkYsS0FBb0IsRUFDRyxVQUN2QixNQUFNd0YsRUFBUXBjLEtBQUs0VyxHQUNiN0ksRUFBTy9OLEtBQUs0VyxFQUFTLFFBQ2J2VixJQUFWK2EsUUFBZ0MvYSxJQUFUME0sR0FDekJzTyxZQUFZekYsRUFBUTVXLEtBQUt5QyxPQUFTLEdBR3BDLE1BQU1pVixFQUFLMEUsRUFBUSxHQUFLLEdBQ0wsTUFBakJwYyxPQUFPNFcsR0FDVSxJQUFqQjVXLE9BQU80VyxHQUNQNVcsT0FBTzRXLEdBRUhlLEVBQUszWCxPQUFPNFcsR0FBVSxHQUFLLEdBQ2QsTUFBakI1VyxPQUFPNFcsR0FDVSxJQUFqQjVXLE9BQU80VyxHQUNQN0ksRUFFRixPQUFRMk0sT0FBT2hELElBQU9nRCxPQUFPLEtBQU9BLE9BQU8vQyxFQUM3QyxJQUVBNU8sT0FBTzVKLFVBQVVvZCxVQUFZLFNBQVNBLFVBQVczRixFQUFRNUMsRUFBWStHLEdBQ25FbkUsS0FBb0IsRUFDcEI1QyxLQUE0QixFQUN2QitHLEdBQVVWLFlBQVl6RCxFQUFRNUMsRUFBWWhVLEtBQUt5QyxRQUVwRCxJQUFJdVQsRUFBTWhXLEtBQUs0VyxHQUNYeUUsRUFBTSxFQUNOcFgsRUFBSSxFQUNSLE9BQVNBLEVBQUkrUCxJQUFlcUgsR0FBTyxNQUNqQ3JGLEdBQU9oVyxLQUFLNFcsRUFBUzNTLEdBQUtvWCxFQU01QixPQUpBQSxHQUFPLElBRUhyRixHQUFPcUYsSUFBS3JGLEdBQU82QixLQUFLMkUsSUFBSSxFQUFHLEVBQUl4SSxJQUVoQ2dDLENBQ1QsRUFFQWpOLE9BQU81SixVQUFVc2QsVUFBWSxTQUFTQSxVQUFXN0YsRUFBUTVDLEVBQVkrRyxHQUNuRW5FLEtBQW9CLEVBQ3BCNUMsS0FBNEIsRUFDdkIrRyxHQUFVVixZQUFZekQsRUFBUTVDLEVBQVloVSxLQUFLeUMsUUFFcEQsSUFBSXdCLEVBQUkrUCxFQUNKcUgsRUFBTSxFQUNOckYsRUFBTWhXLEtBQUs0VyxJQUFXM1MsR0FDMUIsS0FBT0EsRUFBSSxJQUFNb1gsR0FBTyxNQUN0QnJGLEdBQU9oVyxLQUFLNFcsSUFBVzNTLEdBQUtvWCxFQU05QixPQUpBQSxHQUFPLElBRUhyRixHQUFPcUYsSUFBS3JGLEdBQU82QixLQUFLMkUsSUFBSSxFQUFHLEVBQUl4SSxJQUVoQ2dDLENBQ1QsRUFFQWpOLE9BQU81SixVQUFVdWQsU0FBVyxTQUFTQSxTQUFVOUYsRUFBUW1FLEdBR3JELE9BRkFuRSxLQUFvQixFQUNmbUUsR0FBVVYsWUFBWXpELEVBQVEsRUFBRzVXLEtBQUt5QyxRQUN0QixJQUFmekMsS0FBSzRXLElBQzBCLEdBQTVCLElBQU81VyxLQUFLNFcsR0FBVSxHQURLNVcsS0FBSzRXLEVBRTNDLEVBRUE3TixPQUFPNUosVUFBVXdkLFlBQWMsU0FBU0EsWUFBYS9GLEVBQVFtRSxHQUMzRG5FLEtBQW9CLEVBQ2ZtRSxHQUFVVixZQUFZekQsRUFBUSxFQUFHNVcsS0FBS3lDLFFBQzNDLE1BQU11VCxFQUFNaFcsS0FBSzRXLEdBQVc1VyxLQUFLNFcsRUFBUyxJQUFNLEVBQ2hELE9BQWMsTUFBTlosRUFBc0IsV0FBTkEsRUFBbUJBLENBQzdDLEVBRUFqTixPQUFPNUosVUFBVXlkLFlBQWMsU0FBU0EsWUFBYWhHLEVBQVFtRSxHQUMzRG5FLEtBQW9CLEVBQ2ZtRSxHQUFVVixZQUFZekQsRUFBUSxFQUFHNVcsS0FBS3lDLFFBQzNDLE1BQU11VCxFQUFNaFcsS0FBSzRXLEVBQVMsR0FBTTVXLEtBQUs0VyxJQUFXLEVBQ2hELE9BQWMsTUFBTlosRUFBc0IsV0FBTkEsRUFBbUJBLENBQzdDLEVBRUFqTixPQUFPNUosVUFBVTBkLFlBQWMsU0FBU0EsWUFBYWpHLEVBQVFtRSxHQUkzRCxPQUhBbkUsS0FBb0IsRUFDZm1FLEdBQVVWLFlBQVl6RCxFQUFRLEVBQUc1VyxLQUFLeUMsUUFFbkN6QyxLQUFLNFcsR0FDVjVXLEtBQUs0VyxFQUFTLElBQU0sRUFDcEI1VyxLQUFLNFcsRUFBUyxJQUFNLEdBQ3BCNVcsS0FBSzRXLEVBQVMsSUFBTSxFQUN6QixFQUVBN04sT0FBTzVKLFVBQVU0TCxZQUFjLFNBQVNBLFlBQWE2TCxFQUFRbUUsR0FJM0QsT0FIQW5FLEtBQW9CLEVBQ2ZtRSxHQUFVVixZQUFZekQsRUFBUSxFQUFHNVcsS0FBS3lDLFFBRW5DekMsS0FBSzRXLElBQVcsR0FDckI1VyxLQUFLNFcsRUFBUyxJQUFNLEdBQ3BCNVcsS0FBSzRXLEVBQVMsSUFBTSxFQUNwQjVXLEtBQUs0VyxFQUFTLEVBQ25CLEVBRUE3TixPQUFPNUosVUFBVTJkLGVBQWlCWixvQkFBbUIsU0FBU1ksZUFBZ0JsRyxHQUU1RXVGLGVBREF2RixLQUFvQixFQUNHLFVBQ3ZCLE1BQU13RixFQUFRcGMsS0FBSzRXLEdBQ2I3SSxFQUFPL04sS0FBSzRXLEVBQVMsUUFDYnZWLElBQVYrYSxRQUFnQy9hLElBQVQwTSxHQUN6QnNPLFlBQVl6RixFQUFRNVcsS0FBS3lDLE9BQVMsR0FHcEMsTUFBTXVULEVBQU1oVyxLQUFLNFcsRUFBUyxHQUNMLElBQW5CNVcsS0FBSzRXLEVBQVMsR0FDSyxNQUFuQjVXLEtBQUs0VyxFQUFTLElBQ2I3SSxHQUFRLElBRVgsT0FBUTJNLE9BQU8xRSxJQUFRMEUsT0FBTyxLQUM1QkEsT0FBTzBCLEVBQ1UsSUFBakJwYyxPQUFPNFcsR0FDVSxNQUFqQjVXLE9BQU80VyxHQUNQNVcsT0FBTzRXLEdBQVUsR0FBSyxHQUMxQixJQUVBN04sT0FBTzVKLFVBQVU0ZCxlQUFpQmIsb0JBQW1CLFNBQVNhLGVBQWdCbkcsR0FFNUV1RixlQURBdkYsS0FBb0IsRUFDRyxVQUN2QixNQUFNd0YsRUFBUXBjLEtBQUs0VyxHQUNiN0ksRUFBTy9OLEtBQUs0VyxFQUFTLFFBQ2J2VixJQUFWK2EsUUFBZ0MvYSxJQUFUME0sR0FDekJzTyxZQUFZekYsRUFBUTVXLEtBQUt5QyxPQUFTLEdBR3BDLE1BQU11VCxHQUFPb0csR0FBUyxJQUNILE1BQWpCcGMsT0FBTzRXLEdBQ1UsSUFBakI1VyxPQUFPNFcsR0FDUDVXLE9BQU80VyxHQUVULE9BQVE4RCxPQUFPMUUsSUFBUTBFLE9BQU8sS0FDNUJBLE9BQU8xYSxPQUFPNFcsR0FBVSxHQUFLLEdBQ1osTUFBakI1VyxPQUFPNFcsR0FDVSxJQUFqQjVXLE9BQU80VyxHQUNQN0ksRUFDSixJQUVBaEYsT0FBTzVKLFVBQVU2ZCxZQUFjLFNBQVNBLFlBQWFwRyxFQUFRbUUsR0FHM0QsT0FGQW5FLEtBQW9CLEVBQ2ZtRSxHQUFVVixZQUFZekQsRUFBUSxFQUFHNVcsS0FBS3lDLFFBQ3BDeVEsRUFBUXFELEtBQUt2VyxLQUFNNFcsR0FBUSxFQUFNLEdBQUksRUFDOUMsRUFFQTdOLE9BQU81SixVQUFVOGQsWUFBYyxTQUFTQSxZQUFhckcsRUFBUW1FLEdBRzNELE9BRkFuRSxLQUFvQixFQUNmbUUsR0FBVVYsWUFBWXpELEVBQVEsRUFBRzVXLEtBQUt5QyxRQUNwQ3lRLEVBQVFxRCxLQUFLdlcsS0FBTTRXLEdBQVEsRUFBTyxHQUFJLEVBQy9DLEVBRUE3TixPQUFPNUosVUFBVStkLGFBQWUsU0FBU0EsYUFBY3RHLEVBQVFtRSxHQUc3RCxPQUZBbkUsS0FBb0IsRUFDZm1FLEdBQVVWLFlBQVl6RCxFQUFRLEVBQUc1VyxLQUFLeUMsUUFDcEN5USxFQUFRcUQsS0FBS3ZXLEtBQU00VyxHQUFRLEVBQU0sR0FBSSxFQUM5QyxFQUVBN04sT0FBTzVKLFVBQVVnZSxhQUFlLFNBQVNBLGFBQWN2RyxFQUFRbUUsR0FHN0QsT0FGQW5FLEtBQW9CLEVBQ2ZtRSxHQUFVVixZQUFZekQsRUFBUSxFQUFHNVcsS0FBS3lDLFFBQ3BDeVEsRUFBUXFELEtBQUt2VyxLQUFNNFcsR0FBUSxFQUFPLEdBQUksRUFDL0MsRUFRQTdOLE9BQU81SixVQUFVaWUsWUFDakJyVSxPQUFPNUosVUFBVWtlLFlBQWMsU0FBU0EsWUFBYXhkLEVBQU8rVyxFQUFRNUMsRUFBWStHLEdBSTlFLEdBSEFsYixHQUFTQSxFQUNUK1csS0FBb0IsRUFDcEI1QyxLQUE0QixHQUN2QitHLEVBQVUsQ0FFYlIsU0FBU3ZhLEtBQU1ILEVBQU8rVyxFQUFRNUMsRUFEYjZELEtBQUsyRSxJQUFJLEVBQUcsRUFBSXhJLEdBQWMsRUFDSyxFQUN0RCxDQUVBLElBQUlxSCxFQUFNLEVBQ05wWCxFQUFJLEVBRVIsSUFEQWpFLEtBQUs0VyxHQUFrQixJQUFSL1csSUFDTm9FLEVBQUkrUCxJQUFlcUgsR0FBTyxNQUNqQ3JiLEtBQUs0VyxFQUFTM1MsR0FBTXBFLEVBQVF3YixFQUFPLElBR3JDLE9BQU96RSxFQUFTNUMsQ0FDbEIsRUFFQWpMLE9BQU81SixVQUFVbWUsWUFDakJ2VSxPQUFPNUosVUFBVW9lLFlBQWMsU0FBU0EsWUFBYTFkLEVBQU8rVyxFQUFRNUMsRUFBWStHLEdBSTlFLEdBSEFsYixHQUFTQSxFQUNUK1csS0FBb0IsRUFDcEI1QyxLQUE0QixHQUN2QitHLEVBQVUsQ0FFYlIsU0FBU3ZhLEtBQU1ILEVBQU8rVyxFQUFRNUMsRUFEYjZELEtBQUsyRSxJQUFJLEVBQUcsRUFBSXhJLEdBQWMsRUFDSyxFQUN0RCxDQUVBLElBQUkvUCxFQUFJK1AsRUFBYSxFQUNqQnFILEVBQU0sRUFFVixJQURBcmIsS0FBSzRXLEVBQVMzUyxHQUFhLElBQVJwRSxJQUNWb0UsR0FBSyxJQUFNb1gsR0FBTyxNQUN6QnJiLEtBQUs0VyxFQUFTM1MsR0FBTXBFLEVBQVF3YixFQUFPLElBR3JDLE9BQU96RSxFQUFTNUMsQ0FDbEIsRUFFQWpMLE9BQU81SixVQUFVcWUsV0FDakJ6VSxPQUFPNUosVUFBVXNlLFdBQWEsU0FBU0EsV0FBWTVkLEVBQU8rVyxFQUFRbUUsR0FLaEUsT0FKQWxiLEdBQVNBLEVBQ1QrVyxLQUFvQixFQUNmbUUsR0FBVVIsU0FBU3ZhLEtBQU1ILEVBQU8rVyxFQUFRLEVBQUcsSUFBTSxHQUN0RDVXLEtBQUs0VyxHQUFtQixJQUFSL1csRUFDVCtXLEVBQVMsQ0FDbEIsRUFFQTdOLE9BQU81SixVQUFVdWUsY0FDakIzVSxPQUFPNUosVUFBVXdlLGNBQWdCLFNBQVNBLGNBQWU5ZCxFQUFPK1csRUFBUW1FLEdBTXRFLE9BTEFsYixHQUFTQSxFQUNUK1csS0FBb0IsRUFDZm1FLEdBQVVSLFNBQVN2YSxLQUFNSCxFQUFPK1csRUFBUSxFQUFHLE1BQVEsR0FDeEQ1VyxLQUFLNFcsR0FBbUIsSUFBUi9XLEVBQ2hCRyxLQUFLNFcsRUFBUyxHQUFNL1csSUFBVSxFQUN2QitXLEVBQVMsQ0FDbEIsRUFFQTdOLE9BQU81SixVQUFVeWUsY0FDakI3VSxPQUFPNUosVUFBVTBlLGNBQWdCLFNBQVNBLGNBQWVoZSxFQUFPK1csRUFBUW1FLEdBTXRFLE9BTEFsYixHQUFTQSxFQUNUK1csS0FBb0IsRUFDZm1FLEdBQVVSLFNBQVN2YSxLQUFNSCxFQUFPK1csRUFBUSxFQUFHLE1BQVEsR0FDeEQ1VyxLQUFLNFcsR0FBVy9XLElBQVUsRUFDMUJHLEtBQUs0VyxFQUFTLEdBQWMsSUFBUi9XLEVBQ2IrVyxFQUFTLENBQ2xCLEVBRUE3TixPQUFPNUosVUFBVTJlLGNBQ2pCL1UsT0FBTzVKLFVBQVU0ZSxjQUFnQixTQUFTQSxjQUFlbGUsRUFBTytXLEVBQVFtRSxHQVF0RSxPQVBBbGIsR0FBU0EsRUFDVCtXLEtBQW9CLEVBQ2ZtRSxHQUFVUixTQUFTdmEsS0FBTUgsRUFBTytXLEVBQVEsRUFBRyxXQUFZLEdBQzVENVcsS0FBSzRXLEVBQVMsR0FBTS9XLElBQVUsR0FDOUJHLEtBQUs0VyxFQUFTLEdBQU0vVyxJQUFVLEdBQzlCRyxLQUFLNFcsRUFBUyxHQUFNL1csSUFBVSxFQUM5QkcsS0FBSzRXLEdBQW1CLElBQVIvVyxFQUNUK1csRUFBUyxDQUNsQixFQUVBN04sT0FBTzVKLFVBQVU2ZSxjQUNqQmpWLE9BQU81SixVQUFVOGUsY0FBZ0IsU0FBU0EsY0FBZXBlLEVBQU8rVyxFQUFRbUUsR0FRdEUsT0FQQWxiLEdBQVNBLEVBQ1QrVyxLQUFvQixFQUNmbUUsR0FBVVIsU0FBU3ZhLEtBQU1ILEVBQU8rVyxFQUFRLEVBQUcsV0FBWSxHQUM1RDVXLEtBQUs0VyxHQUFXL1csSUFBVSxHQUMxQkcsS0FBSzRXLEVBQVMsR0FBTS9XLElBQVUsR0FDOUJHLEtBQUs0VyxFQUFTLEdBQU0vVyxJQUFVLEVBQzlCRyxLQUFLNFcsRUFBUyxHQUFjLElBQVIvVyxFQUNiK1csRUFBUyxDQUNsQixFQThDQTdOLE9BQU81SixVQUFVK2UsaUJBQW1CaEMsb0JBQW1CLFNBQVNnQyxpQkFBa0JyZSxFQUFPK1csRUFBUyxHQUNoRyxPQUFPNEQsZUFBZXhhLEtBQU1ILEVBQU8rVyxFQUFROEQsT0FBTyxHQUFJQSxPQUFPLHNCQUMvRCxJQUVBM1IsT0FBTzVKLFVBQVVnZixpQkFBbUJqQyxvQkFBbUIsU0FBU2lDLGlCQUFrQnRlLEVBQU8rVyxFQUFTLEdBQ2hHLE9BQU8rRCxlQUFlM2EsS0FBTUgsRUFBTytXLEVBQVE4RCxPQUFPLEdBQUlBLE9BQU8sc0JBQy9ELElBRUEzUixPQUFPNUosVUFBVWlmLFdBQWEsU0FBU0EsV0FBWXZlLEVBQU8rVyxFQUFRNUMsRUFBWStHLEdBRzVFLEdBRkFsYixHQUFTQSxFQUNUK1csS0FBb0IsR0FDZm1FLEVBQVUsQ0FDYixNQUFNc0QsRUFBUXhHLEtBQUsyRSxJQUFJLEVBQUksRUFBSXhJLEVBQWMsR0FFN0N1RyxTQUFTdmEsS0FBTUgsRUFBTytXLEVBQVE1QyxFQUFZcUssRUFBUSxHQUFJQSxFQUN4RCxDQUVBLElBQUlwYSxFQUFJLEVBQ0pvWCxFQUFNLEVBQ05pRCxFQUFNLEVBRVYsSUFEQXRlLEtBQUs0VyxHQUFrQixJQUFSL1csSUFDTm9FLEVBQUkrUCxJQUFlcUgsR0FBTyxNQUM3QnhiLEVBQVEsR0FBYSxJQUFSeWUsR0FBc0MsSUFBekJ0ZSxLQUFLNFcsRUFBUzNTLEVBQUksS0FDOUNxYSxFQUFNLEdBRVJ0ZSxLQUFLNFcsRUFBUzNTLElBQU9wRSxFQUFRd2IsRUFBUSxHQUFLaUQsRUFBTSxJQUdsRCxPQUFPMUgsRUFBUzVDLENBQ2xCLEVBRUFqTCxPQUFPNUosVUFBVW9mLFdBQWEsU0FBU0EsV0FBWTFlLEVBQU8rVyxFQUFRNUMsRUFBWStHLEdBRzVFLEdBRkFsYixHQUFTQSxFQUNUK1csS0FBb0IsR0FDZm1FLEVBQVUsQ0FDYixNQUFNc0QsRUFBUXhHLEtBQUsyRSxJQUFJLEVBQUksRUFBSXhJLEVBQWMsR0FFN0N1RyxTQUFTdmEsS0FBTUgsRUFBTytXLEVBQVE1QyxFQUFZcUssRUFBUSxHQUFJQSxFQUN4RCxDQUVBLElBQUlwYSxFQUFJK1AsRUFBYSxFQUNqQnFILEVBQU0sRUFDTmlELEVBQU0sRUFFVixJQURBdGUsS0FBSzRXLEVBQVMzUyxHQUFhLElBQVJwRSxJQUNWb0UsR0FBSyxJQUFNb1gsR0FBTyxNQUNyQnhiLEVBQVEsR0FBYSxJQUFSeWUsR0FBc0MsSUFBekJ0ZSxLQUFLNFcsRUFBUzNTLEVBQUksS0FDOUNxYSxFQUFNLEdBRVJ0ZSxLQUFLNFcsRUFBUzNTLElBQU9wRSxFQUFRd2IsRUFBUSxHQUFLaUQsRUFBTSxJQUdsRCxPQUFPMUgsRUFBUzVDLENBQ2xCLEVBRUFqTCxPQUFPNUosVUFBVXFmLFVBQVksU0FBU0EsVUFBVzNlLEVBQU8rVyxFQUFRbUUsR0FNOUQsT0FMQWxiLEdBQVNBLEVBQ1QrVyxLQUFvQixFQUNmbUUsR0FBVVIsU0FBU3ZhLEtBQU1ILEVBQU8rVyxFQUFRLEVBQUcsS0FBTyxLQUNuRC9XLEVBQVEsSUFBR0EsRUFBUSxJQUFPQSxFQUFRLEdBQ3RDRyxLQUFLNFcsR0FBbUIsSUFBUi9XLEVBQ1QrVyxFQUFTLENBQ2xCLEVBRUE3TixPQUFPNUosVUFBVXNmLGFBQWUsU0FBU0EsYUFBYzVlLEVBQU8rVyxFQUFRbUUsR0FNcEUsT0FMQWxiLEdBQVNBLEVBQ1QrVyxLQUFvQixFQUNmbUUsR0FBVVIsU0FBU3ZhLEtBQU1ILEVBQU8rVyxFQUFRLEVBQUcsT0FBUyxPQUN6RDVXLEtBQUs0VyxHQUFtQixJQUFSL1csRUFDaEJHLEtBQUs0VyxFQUFTLEdBQU0vVyxJQUFVLEVBQ3ZCK1csRUFBUyxDQUNsQixFQUVBN04sT0FBTzVKLFVBQVV1ZixhQUFlLFNBQVNBLGFBQWM3ZSxFQUFPK1csRUFBUW1FLEdBTXBFLE9BTEFsYixHQUFTQSxFQUNUK1csS0FBb0IsRUFDZm1FLEdBQVVSLFNBQVN2YSxLQUFNSCxFQUFPK1csRUFBUSxFQUFHLE9BQVMsT0FDekQ1VyxLQUFLNFcsR0FBVy9XLElBQVUsRUFDMUJHLEtBQUs0VyxFQUFTLEdBQWMsSUFBUi9XLEVBQ2IrVyxFQUFTLENBQ2xCLEVBRUE3TixPQUFPNUosVUFBVXdmLGFBQWUsU0FBU0EsYUFBYzllLEVBQU8rVyxFQUFRbUUsR0FRcEUsT0FQQWxiLEdBQVNBLEVBQ1QrVyxLQUFvQixFQUNmbUUsR0FBVVIsU0FBU3ZhLEtBQU1ILEVBQU8rVyxFQUFRLEVBQUcsWUFBYSxZQUM3RDVXLEtBQUs0VyxHQUFtQixJQUFSL1csRUFDaEJHLEtBQUs0VyxFQUFTLEdBQU0vVyxJQUFVLEVBQzlCRyxLQUFLNFcsRUFBUyxHQUFNL1csSUFBVSxHQUM5QkcsS0FBSzRXLEVBQVMsR0FBTS9XLElBQVUsR0FDdkIrVyxFQUFTLENBQ2xCLEVBRUE3TixPQUFPNUosVUFBVW1NLGFBQWUsU0FBU0EsYUFBY3pMLEVBQU8rVyxFQUFRbUUsR0FTcEUsT0FSQWxiLEdBQVNBLEVBQ1QrVyxLQUFvQixFQUNmbUUsR0FBVVIsU0FBU3ZhLEtBQU1ILEVBQU8rVyxFQUFRLEVBQUcsWUFBYSxZQUN6RC9XLEVBQVEsSUFBR0EsRUFBUSxXQUFhQSxFQUFRLEdBQzVDRyxLQUFLNFcsR0FBVy9XLElBQVUsR0FDMUJHLEtBQUs0VyxFQUFTLEdBQU0vVyxJQUFVLEdBQzlCRyxLQUFLNFcsRUFBUyxHQUFNL1csSUFBVSxFQUM5QkcsS0FBSzRXLEVBQVMsR0FBYyxJQUFSL1csRUFDYitXLEVBQVMsQ0FDbEIsRUFFQTdOLE9BQU81SixVQUFVeWYsZ0JBQWtCMUMsb0JBQW1CLFNBQVMwQyxnQkFBaUIvZSxFQUFPK1csRUFBUyxHQUM5RixPQUFPNEQsZUFBZXhhLEtBQU1ILEVBQU8rVyxHQUFTOEQsT0FBTyxzQkFBdUJBLE9BQU8sc0JBQ25GLElBRUEzUixPQUFPNUosVUFBVTBmLGdCQUFrQjNDLG9CQUFtQixTQUFTMkMsZ0JBQWlCaGYsRUFBTytXLEVBQVMsR0FDOUYsT0FBTytELGVBQWUzYSxLQUFNSCxFQUFPK1csR0FBUzhELE9BQU8sc0JBQXVCQSxPQUFPLHNCQUNuRixJQWlCQTNSLE9BQU81SixVQUFVMmYsYUFBZSxTQUFTQSxhQUFjamYsRUFBTytXLEVBQVFtRSxHQUNwRSxPQUFPRixXQUFXN2EsS0FBTUgsRUFBTytXLEdBQVEsRUFBTW1FLEVBQy9DLEVBRUFoUyxPQUFPNUosVUFBVTRmLGFBQWUsU0FBU0EsYUFBY2xmLEVBQU8rVyxFQUFRbUUsR0FDcEUsT0FBT0YsV0FBVzdhLEtBQU1ILEVBQU8rVyxHQUFRLEVBQU9tRSxFQUNoRCxFQVlBaFMsT0FBTzVKLFVBQVU2ZixjQUFnQixTQUFTQSxjQUFlbmYsRUFBTytXLEVBQVFtRSxHQUN0RSxPQUFPQyxZQUFZaGIsS0FBTUgsRUFBTytXLEdBQVEsRUFBTW1FLEVBQ2hELEVBRUFoUyxPQUFPNUosVUFBVThmLGNBQWdCLFNBQVNBLGNBQWVwZixFQUFPK1csRUFBUW1FLEdBQ3RFLE9BQU9DLFlBQVloYixLQUFNSCxFQUFPK1csR0FBUSxFQUFPbUUsRUFDakQsRUFHQWhTLE9BQU81SixVQUFVa0YsS0FBTyxTQUFTQSxLQUFNdEYsRUFBUW1nQixFQUFhdlcsRUFBT3FFLEdBQ2pFLElBQUtqRSxPQUFPOEwsU0FBUzlWLEdBQVMsTUFBTSxJQUFJNEMsVUFBVSwrQkFRbEQsR0FQS2dILElBQU9BLEVBQVEsR0FDZnFFLEdBQWUsSUFBUkEsSUFBV0EsRUFBTWhOLEtBQUt5QyxRQUM5QnljLEdBQWVuZ0IsRUFBTzBELFNBQVF5YyxFQUFjbmdCLEVBQU8wRCxRQUNsRHljLElBQWFBLEVBQWMsR0FDNUJsUyxFQUFNLEdBQUtBLEVBQU1yRSxJQUFPcUUsRUFBTXJFLEdBRzlCcUUsSUFBUXJFLEVBQU8sT0FBTyxFQUMxQixHQUFzQixJQUFsQjVKLEVBQU8wRCxRQUFnQyxJQUFoQnpDLEtBQUt5QyxPQUFjLE9BQU8sRUFHckQsR0FBSXljLEVBQWMsRUFDaEIsTUFBTSxJQUFJcGEsV0FBVyw2QkFFdkIsR0FBSTZELEVBQVEsR0FBS0EsR0FBUzNJLEtBQUt5QyxPQUFRLE1BQU0sSUFBSXFDLFdBQVcsc0JBQzVELEdBQUlrSSxFQUFNLEVBQUcsTUFBTSxJQUFJbEksV0FBVywyQkFHOUJrSSxFQUFNaE4sS0FBS3lDLFNBQVF1SyxFQUFNaE4sS0FBS3lDLFFBQzlCMUQsRUFBTzBELE9BQVN5YyxFQUFjbFMsRUFBTXJFLElBQ3RDcUUsRUFBTWpPLEVBQU8wRCxPQUFTeWMsRUFBY3ZXLEdBR3RDLE1BQU1wRCxFQUFNeUgsRUFBTXJFLEVBYWxCLE9BWEkzSSxPQUFTakIsR0FBcUQsbUJBQXBDMlUsV0FBV3ZVLFVBQVVnZ0IsV0FFakRuZixLQUFLbWYsV0FBV0QsRUFBYXZXLEVBQU9xRSxHQUVwQzBHLFdBQVd2VSxVQUFVMEYsSUFBSXpGLEtBQ3ZCTCxFQUNBaUIsS0FBS2tiLFNBQVN2UyxFQUFPcUUsR0FDckJrUyxHQUlHM1osQ0FDVCxFQU1Bd0QsT0FBTzVKLFVBQVU4WixLQUFPLFNBQVNBLEtBQU1qRCxFQUFLck4sRUFBT3FFLEVBQUtxQixHQUV0RCxHQUFtQixpQkFBUjJILEVBQWtCLENBUzNCLEdBUnFCLGlCQUFWck4sR0FDVDBGLEVBQVcxRixFQUNYQSxFQUFRLEVBQ1JxRSxFQUFNaE4sS0FBS3lDLFFBQ2EsaUJBQVJ1SyxJQUNoQnFCLEVBQVdyQixFQUNYQSxFQUFNaE4sS0FBS3lDLGFBRUlwQixJQUFiZ04sR0FBOEMsaUJBQWJBLEVBQ25DLE1BQU0sSUFBSTFNLFVBQVUsNkJBRXRCLEdBQXdCLGlCQUFiME0sSUFBMEJ0RixPQUFPMkYsV0FBV0wsR0FDckQsTUFBTSxJQUFJMU0sVUFBVSxxQkFBdUIwTSxHQUU3QyxHQUFtQixJQUFmMkgsRUFBSXZULE9BQWMsQ0FDcEIsTUFBTWtFLEVBQU9xUCxFQUFJekYsV0FBVyxJQUNWLFNBQWJsQyxHQUF1QjFILEVBQU8sS0FDbEIsV0FBYjBILEtBRUYySCxFQUFNclAsRUFFVixDQUNGLEtBQTBCLGlCQUFScVAsRUFDaEJBLEdBQVksSUFDWSxrQkFBUkEsSUFDaEJBLEVBQU1yVyxPQUFPcVcsSUFJZixHQUFJck4sRUFBUSxHQUFLM0ksS0FBS3lDLE9BQVNrRyxHQUFTM0ksS0FBS3lDLE9BQVN1SyxFQUNwRCxNQUFNLElBQUlsSSxXQUFXLHNCQUd2QixHQUFJa0ksR0FBT3JFLEVBQ1QsT0FBTzNJLEtBUVQsSUFBSWlFLEVBQ0osR0FOQTBFLEtBQWtCLEVBQ2xCcUUsT0FBYzNMLElBQVIyTCxFQUFvQmhOLEtBQUt5QyxPQUFTdUssSUFBUSxFQUUzQ2dKLElBQUtBLEVBQU0sR0FHRyxpQkFBUkEsRUFDVCxJQUFLL1IsRUFBSTBFLEVBQU8xRSxFQUFJK0ksSUFBTy9JLEVBQ3pCakUsS0FBS2lFLEdBQUsrUixNQUVQLENBQ0wsTUFBTTVFLEVBQVFySSxPQUFPOEwsU0FBU21CLEdBQzFCQSxFQUNBak4sT0FBTzhLLEtBQUttQyxFQUFLM0gsR0FDZjlJLEVBQU02TCxFQUFNM08sT0FDbEIsR0FBWSxJQUFSOEMsRUFDRixNQUFNLElBQUk1RCxVQUFVLGNBQWdCcVUsRUFDbEMscUNBRUosSUFBSy9SLEVBQUksRUFBR0EsRUFBSStJLEVBQU1yRSxJQUFTMUUsRUFDN0JqRSxLQUFLaUUsRUFBSTBFLEdBQVN5SSxFQUFNbk4sRUFBSXNCLEVBRWhDLENBRUEsT0FBT3ZGLElBQ1QsRUFNQSxNQUFNb2YsRUFBUyxDQUFDLEVBQ2hCLFNBQVNDLEVBQUdDLEVBQUtwWSxFQUFZTixHQUMzQndZLEVBQU9FLEdBQU8sTUFBTXpZLGtCQUFrQkQsRUFDcEMsV0FBQVUsR0FDRWlZLFFBRUFqZ0IsT0FBT29GLGVBQWUxRSxLQUFNLFVBQVcsQ0FDckNILE1BQU9xSCxFQUFXcEksTUFBTWtCLEtBQU1jLFdBQzlCaVIsVUFBVSxFQUNWeU4sY0FBYyxJQUloQnhmLEtBQUtLLEtBQU8sR0FBR0wsS0FBS0ssU0FBU2lmLEtBRzdCdGYsS0FBS3lmLGFBRUV6ZixLQUFLSyxJQUNkLENBRUEsUUFBSXNHLEdBQ0YsT0FBTzJZLENBQ1QsQ0FFQSxRQUFJM1ksQ0FBTTlHLEdBQ1JQLE9BQU9vRixlQUFlMUUsS0FBTSxPQUFRLENBQ2xDd2YsY0FBYyxFQUNkN2EsWUFBWSxFQUNaOUUsUUFDQWtTLFVBQVUsR0FFZCxDQUVBLFFBQUF6QixHQUNFLE1BQU8sR0FBR3RRLEtBQUtLLFNBQVNpZixPQUFTdGYsS0FBS3FGLFNBQ3hDLEVBRUosQ0ErQkEsU0FBU3FhLHNCQUF1QjFKLEdBQzlCLElBQUkrQixFQUFNLEdBQ045VCxFQUFJK1IsRUFBSXZULE9BQ1osTUFBTWtHLEVBQW1CLE1BQVhxTixFQUFJLEdBQWEsRUFBSSxFQUNuQyxLQUFPL1IsR0FBSzBFLEVBQVEsRUFBRzFFLEdBQUssRUFDMUI4VCxFQUFNLElBQUkvQixFQUFJblYsTUFBTW9ELEVBQUksRUFBR0EsS0FBSzhULElBRWxDLE1BQU8sR0FBRy9CLEVBQUluVixNQUFNLEVBQUdvRCxLQUFLOFQsR0FDOUIsQ0FZQSxTQUFTMEMsV0FBWTVhLEVBQU9pWSxFQUFLNkIsRUFBS3pKLEVBQUswRyxFQUFRNUMsR0FDakQsR0FBSW5VLEVBQVE4WixHQUFPOVosRUFBUWlZLEVBQUssQ0FDOUIsTUFBTTFULEVBQW1CLGlCQUFSMFQsRUFBbUIsSUFBTSxHQUMxQyxJQUFJNkgsRUFXSixNQVJJQSxFQUZBM0wsRUFBYSxFQUNILElBQVI4RCxHQUFhQSxJQUFRNEMsT0FBTyxHQUN0QixPQUFPdFcsWUFBWUEsUUFBMkIsR0FBbEI0UCxFQUFhLEtBQVM1UCxJQUVsRCxTQUFTQSxRQUEyQixHQUFsQjRQLEVBQWEsR0FBUyxJQUFJNVAsaUJBQ3RCLEdBQWxCNFAsRUFBYSxHQUFTLElBQUk1UCxJQUdoQyxNQUFNMFQsSUFBTTFULFlBQVl1VixJQUFNdlYsSUFFbEMsSUFBSWdiLEVBQU9RLGlCQUFpQixRQUFTRCxFQUFPOWYsRUFDcEQsRUF0QkYsU0FBU2dnQixZQUFhM1AsRUFBSzBHLEVBQVE1QyxHQUNqQ21JLGVBQWV2RixFQUFRLGVBQ0h2VixJQUFoQjZPLEVBQUkwRyxTQUFzRHZWLElBQTdCNk8sRUFBSTBHLEVBQVM1QyxJQUM1Q3FJLFlBQVl6RixFQUFRMUcsRUFBSXpOLFFBQVV1UixFQUFhLEdBRW5ELENBa0JFNkwsQ0FBWTNQLEVBQUswRyxFQUFRNUMsRUFDM0IsQ0FFQSxTQUFTbUksZUFBZ0J0YyxFQUFPUSxHQUM5QixHQUFxQixpQkFBVlIsRUFDVCxNQUFNLElBQUl1ZixFQUFPVSxxQkFBcUJ6ZixFQUFNLFNBQVVSLEVBRTFELENBRUEsU0FBU3djLFlBQWF4YyxFQUFPNEMsRUFBUVYsR0FDbkMsR0FBSThWLEtBQUtrSSxNQUFNbGdCLEtBQVdBLEVBRXhCLE1BREFzYyxlQUFldGMsRUFBT2tDLEdBQ2hCLElBQUlxZCxFQUFPUSxpQkFBaUI3ZCxHQUFRLFNBQVUsYUFBY2xDLEdBR3BFLEdBQUk0QyxFQUFTLEVBQ1gsTUFBTSxJQUFJMmMsRUFBT1kseUJBR25CLE1BQU0sSUFBSVosRUFBT1EsaUJBQWlCN2QsR0FBUSxTQUNSLE1BQU1BLEVBQU8sRUFBSSxZQUFZVSxJQUM3QjVDLEVBQ3BDLENBdkZBd2YsRUFBRSw0QkFDQSxTQUFVaGYsR0FDUixPQUFJQSxFQUNLLEdBQUdBLGdDQUdMLGdEQUNULEdBQUd5RSxZQUNMdWEsRUFBRSx3QkFDQSxTQUFVaGYsRUFBTXlILEdBQ2QsTUFBTyxRQUFRekgsNERBQStEeUgsR0FDaEYsR0FBR25HLFdBQ0wwZCxFQUFFLG9CQUNBLFNBQVVuWCxFQUFLeVgsRUFBT3hTLEdBQ3BCLElBQUluRixFQUFNLGlCQUFpQkUsc0JBQ3ZCK1gsRUFBVzlTLEVBV2YsT0FWSXhOLE9BQU91Z0IsVUFBVS9TLElBQVUwSyxLQUFLc0ksSUFBSWhULEdBQVMsR0FBSyxHQUNwRDhTLEVBQVdQLHNCQUFzQjdjLE9BQU9zSyxJQUNkLGlCQUFWQSxJQUNoQjhTLEVBQVdwZCxPQUFPc0ssSUFDZEEsRUFBUXVOLE9BQU8sSUFBTUEsT0FBTyxLQUFPdk4sSUFBVXVOLE9BQU8sSUFBTUEsT0FBTyxRQUNuRXVGLEVBQVdQLHNCQUFzQk8sSUFFbkNBLEdBQVksS0FFZGpZLEdBQU8sZUFBZTJYLGVBQW1CTSxJQUNsQ2pZLENBQ1QsR0FBR2xELFlBaUVMLE1BQU1zYixFQUFvQixvQkFnQjFCLFNBQVMvSyxZQUFhdEIsRUFBUTBELEdBRTVCLElBQUlRLEVBREpSLEVBQVFBLEdBQVM0SSxJQUVqQixNQUFNNWQsRUFBU3NSLEVBQU90UixPQUN0QixJQUFJNmQsRUFBZ0IsS0FDcEIsTUFBTWxQLEVBQVEsR0FFZCxJQUFLLElBQUluTixFQUFJLEVBQUdBLEVBQUl4QixJQUFVd0IsRUFBRyxDQUkvQixHQUhBZ1UsRUFBWWxFLEVBQU94RCxXQUFXdE0sR0FHMUJnVSxFQUFZLE9BQVVBLEVBQVksTUFBUSxDQUU1QyxJQUFLcUksRUFBZSxDQUVsQixHQUFJckksRUFBWSxNQUFRLEVBRWpCUixHQUFTLElBQU0sR0FBR3JHLEVBQU01TyxLQUFLLElBQU0sSUFBTSxLQUM5QyxRQUNGLENBQU8sR0FBSXlCLEVBQUksSUFBTXhCLEVBQVEsRUFFdEJnVixHQUFTLElBQU0sR0FBR3JHLEVBQU01TyxLQUFLLElBQU0sSUFBTSxLQUM5QyxRQUNGLENBR0E4ZCxFQUFnQnJJLEVBRWhCLFFBQ0YsQ0FHQSxHQUFJQSxFQUFZLE1BQVEsRUFDakJSLEdBQVMsSUFBTSxHQUFHckcsRUFBTTVPLEtBQUssSUFBTSxJQUFNLEtBQzlDOGQsRUFBZ0JySSxFQUNoQixRQUNGLENBR0FBLEVBQWtFLE9BQXJEcUksRUFBZ0IsT0FBVSxHQUFLckksRUFBWSxNQUMxRCxNQUFXcUksSUFFSjdJLEdBQVMsSUFBTSxHQUFHckcsRUFBTTVPLEtBQUssSUFBTSxJQUFNLEtBTWhELEdBSEE4ZCxFQUFnQixLQUdackksRUFBWSxJQUFNLENBQ3BCLElBQUtSLEdBQVMsR0FBSyxFQUFHLE1BQ3RCckcsRUFBTTVPLEtBQUt5VixFQUNiLE1BQU8sR0FBSUEsRUFBWSxLQUFPLENBQzVCLElBQUtSLEdBQVMsR0FBSyxFQUFHLE1BQ3RCckcsRUFBTTVPLEtBQ0p5VixHQUFhLEVBQU0sSUFDUCxHQUFaQSxFQUFtQixJQUV2QixNQUFPLEdBQUlBLEVBQVksTUFBUyxDQUM5QixJQUFLUixHQUFTLEdBQUssRUFBRyxNQUN0QnJHLEVBQU01TyxLQUNKeVYsR0FBYSxHQUFNLElBQ25CQSxHQUFhLEVBQU0sR0FBTyxJQUNkLEdBQVpBLEVBQW1CLElBRXZCLEtBQU8sTUFBSUEsRUFBWSxTQVNyQixNQUFNLElBQUlyVixNQUFNLHNCQVJoQixJQUFLNlUsR0FBUyxHQUFLLEVBQUcsTUFDdEJyRyxFQUFNNU8sS0FDSnlWLEdBQWEsR0FBTyxJQUNwQkEsR0FBYSxHQUFNLEdBQU8sSUFDMUJBLEdBQWEsRUFBTSxHQUFPLElBQ2QsR0FBWkEsRUFBbUIsSUFJdkIsQ0FDRixDQUVBLE9BQU83RyxDQUNULENBMkJBLFNBQVNrRSxjQUFlcE4sR0FDdEIsT0FBTytLLEVBQU9zTixZQXhIaEIsU0FBU0MsWUFBYXRZLEdBTXBCLElBRkFBLEdBRkFBLEVBQU1BLEVBQUl1WSxNQUFNLEtBQUssSUFFWDdHLE9BQU90UixRQUFROFgsRUFBbUIsS0FFcEMzZCxPQUFTLEVBQUcsTUFBTyxHQUUzQixLQUFPeUYsRUFBSXpGLE9BQVMsR0FBTSxHQUN4QnlGLEdBQVksSUFFZCxPQUFPQSxDQUNULENBNEc0QnNZLENBQVl0WSxHQUN4QyxDQUVBLFNBQVNnUCxXQUFZd0osRUFBS0MsRUFBSy9KLEVBQVFuVSxHQUNyQyxJQUFJd0IsRUFDSixJQUFLQSxFQUFJLEVBQUdBLEVBQUl4QixLQUNUd0IsRUFBSTJTLEdBQVUrSixFQUFJbGUsUUFBWXdCLEdBQUt5YyxFQUFJamUsVUFEcEJ3QixFQUV4QjBjLEVBQUkxYyxFQUFJMlMsR0FBVThKLEVBQUl6YyxHQUV4QixPQUFPQSxDQUNULENBS0EsU0FBU29RLFdBQVk3SCxFQUFLekssR0FDeEIsT0FBT3lLLGFBQWV6SyxHQUNaLE1BQVB5SyxHQUFrQyxNQUFuQkEsRUFBSWxGLGFBQStDLE1BQXhCa0YsRUFBSWxGLFlBQVlqSCxNQUN6RG1NLEVBQUlsRixZQUFZakgsT0FBUzBCLEVBQUsxQixJQUNwQyxDQUNBLFNBQVMwVSxZQUFhdkksR0FFcEIsT0FBT0EsR0FBUUEsQ0FDakIsQ0FJQSxNQUFNNE4sRUFBc0IsV0FDMUIsTUFBTXdHLEVBQVcsbUJBQ1hDLEVBQVEsSUFBSTdjLE1BQU0sS0FDeEIsSUFBSyxJQUFJQyxFQUFJLEVBQUdBLEVBQUksS0FBTUEsRUFBRyxDQUMzQixNQUFNNmMsRUFBVSxHQUFKN2MsRUFDWixJQUFLLElBQUkrRyxFQUFJLEVBQUdBLEVBQUksS0FBTUEsRUFDeEI2VixFQUFNQyxFQUFNOVYsR0FBSzRWLEVBQVMzYyxHQUFLMmMsRUFBUzVWLEVBRTVDLENBQ0EsT0FBTzZWLENBQ1IsQ0FWMkIsR0FhNUIsU0FBUzNFLG1CQUFvQjZFLEdBQzNCLE1BQXlCLG9CQUFYckcsT0FBeUJzRyx1QkFBeUJELENBQ2xFLENBRUEsU0FBU0MseUJBQ1AsTUFBTSxJQUFJcGUsTUFBTSx1QkFDbEIsdUJDdmpFQSxJQUFJcWUsRUFBd0IsUUFBaUNBLHNCQWlCN0RoaEIsRUFBT0MsUUFBVSxDQUNmZ2hCLGlCQWRGLFNBQVNBLGlCQUFpQjNkLEVBQU82SixFQUFTK1QsRUFBV0MsR0FDbkQsSUFBSUMsRUFKTixTQUFTQyxrQkFBa0JsVSxFQUFTZ1UsRUFBVUQsR0FDNUMsT0FBZ0MsTUFBekIvVCxFQUFRbVUsY0FBd0JuVSxFQUFRbVUsY0FBZ0JILEVBQVdoVSxFQUFRK1QsR0FBYSxJQUNqRyxDQUVZRyxDQUFrQmxVLEVBQVNnVSxFQUFVRCxHQUMvQyxHQUFXLE1BQVBFLEVBQWEsQ0FDZixJQUFNcEgsU0FBU29ILElBQVF4SixLQUFLa0ksTUFBTXNCLEtBQVNBLEdBQVFBLEVBQU0sRUFFdkQsTUFBTSxJQUFJSixFQURDRyxFQUFXRCxFQUFZLGdCQUNJRSxHQUV4QyxPQUFPeEosS0FBS2tJLE1BQU1zQixFQUNwQixDQUdBLE9BQU85ZCxFQUFNaWUsV0FBYSxHQUFLLEtBQ2pDLHdCQ0dBdmhCLEVBQU9DLFFBQVVzTCxPQUVqQixJQUFJaVcsRUFBSyxrQkFvQlQsU0FBU2pXLFNBQ1BpVyxFQUFHcmlCLEtBQUtZLEtBQ1YsQ0FyQmUsRUFBUSxJQUV2QjZJLENBQVMyQyxPQUFRaVcsR0FDakJqVyxPQUFPa1csU0FBVyxFQUFRLEtBQzFCbFcsT0FBT21XLFNBQVcsRUFBUSxLQUMxQm5XLE9BQU9vVyxPQUFTLEVBQVEsS0FDeEJwVyxPQUFPcVcsVUFBWSxFQUFRLEtBQzNCclcsT0FBT3NXLFlBQWMsRUFBUSxLQUM3QnRXLE9BQU80RyxTQUFXLEVBQVEsS0FDMUI1RyxPQUFPdVcsU0FBVyxFQUFRLEtBRzFCdlcsT0FBT0EsT0FBU0EsT0FXaEJBLE9BQU9yTSxVQUFVNmlCLEtBQU8sU0FBU0MsRUFBTTdVLEdBQ3JDLElBQUk4VSxFQUFTbGlCLEtBRWIsU0FBU21pQixPQUFPQyxHQUNWSCxFQUFLbFEsV0FDSCxJQUFVa1EsRUFBS3ZTLE1BQU0wUyxJQUFVRixFQUFPRyxPQUN4Q0gsRUFBT0csT0FHYixDQUlBLFNBQVNDLFVBQ0hKLEVBQU9sVSxVQUFZa1UsRUFBT0ssUUFDNUJMLEVBQU9LLFFBRVgsQ0FOQUwsRUFBTy9nQixHQUFHLE9BQVFnaEIsUUFRbEJGLEVBQUs5Z0IsR0FBRyxRQUFTbWhCLFNBSVpMLEVBQUtPLFVBQWNwVixJQUEyQixJQUFoQkEsRUFBUUosTUFDekNrVixFQUFPL2dCLEdBQUcsTUFBT3FSLE9BQ2pCMFAsRUFBTy9nQixHQUFHLFFBQVN1UixVQUdyQixJQUFJK1AsR0FBVyxFQUNmLFNBQVNqUSxRQUNIaVEsSUFDSkEsR0FBVyxFQUVYUixFQUFLalYsTUFDUCxDQUdBLFNBQVMwRixVQUNIK1AsSUFDSkEsR0FBVyxFQUVpQixtQkFBakJSLEVBQUtTLFNBQXdCVCxFQUFLUyxVQUMvQyxDQUdBLFNBQVNqUSxRQUFRck4sR0FFZixHQURBdWQsVUFDd0MsSUFBcENsQixFQUFHdGQsY0FBY25FLEtBQU0sU0FDekIsTUFBTW9GLENBRVYsQ0FNQSxTQUFTdWQsVUFDUFQsRUFBT3ZoQixlQUFlLE9BQVF3aEIsUUFDOUJGLEVBQUt0aEIsZUFBZSxRQUFTMmhCLFNBRTdCSixFQUFPdmhCLGVBQWUsTUFBTzZSLE9BQzdCMFAsRUFBT3ZoQixlQUFlLFFBQVMrUixTQUUvQndQLEVBQU92aEIsZUFBZSxRQUFTOFIsU0FDL0J3UCxFQUFLdGhCLGVBQWUsUUFBUzhSLFNBRTdCeVAsRUFBT3ZoQixlQUFlLE1BQU9naUIsU0FDN0JULEVBQU92aEIsZUFBZSxRQUFTZ2lCLFNBRS9CVixFQUFLdGhCLGVBQWUsUUFBU2dpQixRQUMvQixDQVVBLE9BNUJBVCxFQUFPL2dCLEdBQUcsUUFBU3NSLFNBQ25Cd1AsRUFBSzlnQixHQUFHLFFBQVNzUixTQW1CakJ5UCxFQUFPL2dCLEdBQUcsTUFBT3doQixTQUNqQlQsRUFBTy9nQixHQUFHLFFBQVN3aEIsU0FFbkJWLEVBQUs5Z0IsR0FBRyxRQUFTd2hCLFNBRWpCVixFQUFLM2YsS0FBSyxPQUFRNGYsR0FHWEQsQ0FDVCx3Q0NoSUFoaUIsRUFBT0MsUUFBVSxFQUFqQixpQ0NBQUQsRUFBT0MsUUFBVTBpQixvQ0M2QmJDLEVBQWF2akIsT0FBT2dILE1BQVEsU0FBVWtHLEdBQ3hDLElBQUlsRyxFQUFPLEdBQ1gsSUFBSyxJQUFJRCxLQUFPbUcsRUFBS2xHLEVBQUs5RCxLQUFLNkQsR0FDL0IsT0FBT0MsQ0FDVCxFQUdBckcsRUFBT0MsUUFBVTBoQixPQUNqQixJQUFJRixFQUFXLEVBQVEsS0FDbkJDLEVBQVcsRUFBUSxLQUN2QixFQUFRLElBQVIsQ0FBb0JDLE9BQVFGLEdBSTFCLElBREEsSUFBSXBiLEVBQU91YyxFQUFXbEIsRUFBU3hpQixXQUN0QjJqQixFQUFJLEVBQUdBLEVBQUl4YyxFQUFLN0QsT0FBUXFnQixJQUFLLENBQ3BDLElBQUlDLEVBQVN6YyxFQUFLd2MsR0FDYmxCLE9BQU96aUIsVUFBVTRqQixLQUFTbkIsT0FBT3ppQixVQUFVNGpCLEdBQVVwQixFQUFTeGlCLFVBQVU0akIsR0FDL0UsQ0FFRixTQUFTbkIsT0FBT3hVLEdBQ2QsS0FBTXBOLGdCQUFnQjRoQixRQUFTLE9BQU8sSUFBSUEsT0FBT3hVLEdBQ2pEc1UsRUFBU3RpQixLQUFLWSxLQUFNb04sR0FDcEJ1VSxFQUFTdmlCLEtBQUtZLEtBQU1vTixHQUNwQnBOLEtBQUtnakIsZUFBZ0IsRUFDakI1VixLQUN1QixJQUFyQkEsRUFBUVksV0FBb0JoTyxLQUFLZ08sVUFBVyxJQUN2QixJQUFyQlosRUFBUTJFLFdBQW9CL1IsS0FBSytSLFVBQVcsSUFDbEIsSUFBMUIzRSxFQUFRNFYsZ0JBQ1ZoakIsS0FBS2dqQixlQUFnQixFQUNyQmhqQixLQUFLRyxLQUFLLE1BQU9xUyxRQUd2QixDQThCQSxTQUFTQSxRQUVIeFMsS0FBS21TLGVBQWVRLE9BSXhCaEYsRUFBUUMsU0FBU3FWLFFBQVNqakIsS0FDNUIsQ0FDQSxTQUFTaWpCLFFBQVF4VSxHQUNmQSxFQUFLekIsS0FDUCxDQXZDQTFOLE9BQU9vRixlQUFla2QsT0FBT3ppQixVQUFXLHdCQUF5QixDQUkvRHdGLFlBQVksRUFDWkMsSUFBSyxTQUFTQSxNQUNaLE9BQU81RSxLQUFLbVMsZUFBZW9QLGFBQzdCLElBRUZqaUIsT0FBT29GLGVBQWVrZCxPQUFPemlCLFVBQVcsaUJBQWtCLENBSXhEd0YsWUFBWSxFQUNaQyxJQUFLLFNBQVNBLE1BQ1osT0FBTzVFLEtBQUttUyxnQkFBa0JuUyxLQUFLbVMsZUFBZStRLFdBQ3BELElBRUY1akIsT0FBT29GLGVBQWVrZCxPQUFPemlCLFVBQVcsaUJBQWtCLENBSXhEd0YsWUFBWSxFQUNaQyxJQUFLLFNBQVNBLE1BQ1osT0FBTzVFLEtBQUttUyxlQUFlMVAsTUFDN0IsSUFlRm5ELE9BQU9vRixlQUFla2QsT0FBT3ppQixVQUFXLFlBQWEsQ0FJbkR3RixZQUFZLEVBQ1pDLElBQUssU0FBU0EsTUFDWixZQUE0QnZELElBQXhCckIsS0FBS3NTLHFCQUF3RGpSLElBQXhCckIsS0FBS21TLGlCQUd2Q25TLEtBQUtzUyxlQUFlNlEsV0FBYW5qQixLQUFLbVMsZUFBZWdSLFVBQzlELEVBQ0F0ZSxJQUFLLFNBQVNBLElBQUloRixRQUdZd0IsSUFBeEJyQixLQUFLc1MscUJBQXdEalIsSUFBeEJyQixLQUFLbVMsaUJBTTlDblMsS0FBS3NTLGVBQWU2USxVQUFZdGpCLEVBQ2hDRyxLQUFLbVMsZUFBZWdSLFVBQVl0akIsRUFDbEMseUJDNUhGLElBQUlrSixFQUFTLGNBR2IsU0FBU0QsS0FBTXNhLEVBQVdDLEdBQ3hCcmpCLEtBQUtzakIsT0FBU3ZhLEVBQU91SyxNQUFNOFAsR0FDM0JwakIsS0FBS3VqQixXQUFhRixFQUNsQnJqQixLQUFLd2pCLFdBQWFKLEVBQ2xCcGpCLEtBQUs2UixLQUFPLENBQ2QsQ0FFQS9JLEtBQUszSixVQUFVc2tCLE9BQVMsU0FBVWhZLEVBQU1zRCxHQUNsQixpQkFBVHRELElBQ1RzRCxFQUFNQSxHQUFPLE9BQ2J0RCxFQUFPMUMsRUFBTzhLLEtBQUtwSSxFQUFNc0QsSUFRM0IsSUFMQSxJQUFJMlUsRUFBUTFqQixLQUFLc2pCLE9BQ2JGLEVBQVlwakIsS0FBS3dqQixXQUNqQi9nQixFQUFTZ0osRUFBS2hKLE9BQ2RraEIsRUFBUTNqQixLQUFLNlIsS0FFUitFLEVBQVMsRUFBR0EsRUFBU25VLEdBQVMsQ0FJckMsSUFIQSxJQUFJbWhCLEVBQVdELEVBQVFQLEVBQ25CUyxFQUFZaE0sS0FBS0MsSUFBSXJWLEVBQVNtVSxFQUFRd00sRUFBWVEsR0FFN0MzZixFQUFJLEVBQUdBLEVBQUk0ZixFQUFXNWYsSUFDN0J5ZixFQUFNRSxFQUFXM2YsR0FBS3dILEVBQUttTCxFQUFTM1MsR0FJdEMyUyxHQUFVaU4sR0FEVkYsR0FBU0UsR0FHSVQsR0FBZSxHQUMxQnBqQixLQUFLcUssUUFBUXFaLEVBRWpCLENBR0EsT0FEQTFqQixLQUFLNlIsTUFBUXBQLEVBQ056QyxJQUNULEVBRUE4SSxLQUFLM0osVUFBVTJrQixPQUFTLFNBQVUvVSxHQUNoQyxJQUFJZ1YsRUFBTS9qQixLQUFLNlIsS0FBTzdSLEtBQUt3akIsV0FFM0J4akIsS0FBS3NqQixPQUFPUyxHQUFPLElBSW5CL2pCLEtBQUtzakIsT0FBT3JLLEtBQUssRUFBRzhLLEVBQU0sR0FFdEJBLEdBQU8vakIsS0FBS3VqQixhQUNkdmpCLEtBQUtxSyxRQUFRckssS0FBS3NqQixRQUNsQnRqQixLQUFLc2pCLE9BQU9ySyxLQUFLLElBR25CLElBQUkrSyxFQUFtQixFQUFaaGtCLEtBQUs2UixLQUdoQixHQUFJbVMsR0FBUSxXQUNWaGtCLEtBQUtzakIsT0FBT3JGLGNBQWMrRixFQUFNaGtCLEtBQUt3akIsV0FBYSxPQUc3QyxDQUNMLElBQUlTLEdBQWtCLFdBQVBELEtBQXVCLEVBQ2xDRSxHQUFZRixFQUFPQyxHQUFXLFdBRWxDamtCLEtBQUtzakIsT0FBT3JGLGNBQWNpRyxFQUFVbGtCLEtBQUt3akIsV0FBYSxHQUN0RHhqQixLQUFLc2pCLE9BQU9yRixjQUFjZ0csRUFBU2prQixLQUFLd2pCLFdBQWEsRUFDdkQsQ0FFQXhqQixLQUFLcUssUUFBUXJLLEtBQUtzakIsUUFDbEIsSUFBSWEsRUFBT25rQixLQUFLbUwsUUFFaEIsT0FBTzRELEVBQU1vVixFQUFLN1QsU0FBU3ZCLEdBQU9vVixDQUNwQyxFQUVBcmIsS0FBSzNKLFVBQVVrTCxRQUFVLFdBQ3ZCLE1BQU0sSUFBSXpILE1BQU0sMENBQ2xCLEVBRUEzQyxFQUFPQyxRQUFVNEksOEJDdERiOFksV0FISjNoQixFQUFPQyxRQUFVd2hCLFNBTWpCQSxTQUFTMEMsY0FBZ0JBLGNBR2hCLGtCQUFULElBQ0lDLEVBQWtCLFNBQVNBLGdCQUFnQmprQixFQUFTMkIsR0FDdEQsT0FBTzNCLEVBQVFvRixVQUFVekQsR0FBTVUsTUFDakMsRUFJSStJLEVBQVMsRUFBUSxLQUdqQnpDLEVBQVMsY0FDVHViLFFBQW1DLElBQVgsRUFBQXpaLEVBQXlCLEVBQUFBLEVBQTJCLG9CQUFYMFosT0FBeUJBLE9BQXlCLG9CQUFUOVYsS0FBdUJBLEtBQU8sQ0FBQyxHQUFHaUYsWUFBYyxXQUFhLEVBUzNLLElBQ0k4USxFQURBQyxFQUFZLEVBQVEsS0FHdEJELEVBREVDLEdBQWFBLEVBQVVDLFNBQ2pCRCxFQUFVQyxTQUFTLFVBRW5CLFNBQVNGLFFBQVMsRUFJNUIsSUFXSTVWLEVBQ0ErVixFQUNBOVEsRUFiQStRLEVBQWEsRUFBUSxLQUNyQkMsRUFBYyxFQUFRLEtBRXhCM0QsRUFEYSxFQUFRLEtBQ09BLGlCQUMxQjRELEVBQWlCLFFBQ25CaEYsRUFBdUJnRixFQUFlaEYscUJBQ3RDaUYsRUFBNEJELEVBQWVDLDBCQUMzQ0MsRUFBNkJGLEVBQWVFLDJCQUM1Q0MsRUFBcUNILEVBQWVHLG1DQU10RCxFQUFRLElBQVIsQ0FBb0J2RCxTQUFVbFcsR0FDOUIsSUFBSTBaLEVBQWlCTCxFQUFZSyxlQUM3QkMsRUFBZSxDQUFDLFFBQVMsUUFBUyxVQUFXLFFBQVMsVUFZMUQsU0FBU2YsY0FBY2hYLEVBQVNDLEVBQVErVCxHQUN0Q1EsRUFBU0EsR0FBVSxFQUFRLEtBQzNCeFUsRUFBVUEsR0FBVyxDQUFDLEVBT0Usa0JBQWJnVSxJQUF3QkEsRUFBVy9ULGFBQWtCdVUsR0FJaEU1aEIsS0FBS3doQixhQUFlcFUsRUFBUW9VLFdBQ3hCSixJQUFVcGhCLEtBQUt3aEIsV0FBYXhoQixLQUFLd2hCLGNBQWdCcFUsRUFBUWdZLG9CQUk3RHBsQixLQUFLdWhCLGNBQWdCTCxFQUFpQmxoQixLQUFNb04sRUFBUyx3QkFBeUJnVSxHQUs5RXBoQixLQUFLdVUsT0FBUyxJQUFJcVEsRUFDbEI1a0IsS0FBS3lDLE9BQVMsRUFDZHpDLEtBQUtxbEIsTUFBUSxLQUNicmxCLEtBQUtzbEIsV0FBYSxFQUNsQnRsQixLQUFLdWxCLFFBQVUsS0FDZnZsQixLQUFLMlMsT0FBUSxFQUNiM1MsS0FBS3VTLFlBQWEsRUFDbEJ2UyxLQUFLd2xCLFNBQVUsRUFNZnhsQixLQUFLeWxCLE1BQU8sRUFJWnpsQixLQUFLMGxCLGNBQWUsRUFDcEIxbEIsS0FBSzJsQixpQkFBa0IsRUFDdkIzbEIsS0FBSzRsQixtQkFBb0IsRUFDekI1bEIsS0FBSzZsQixpQkFBa0IsRUFDdkI3bEIsS0FBSzhsQixRQUFTLEVBR2Q5bEIsS0FBSytsQixXQUFrQyxJQUF0QjNZLEVBQVEyWSxVQUd6Qi9sQixLQUFLZ21CLGNBQWdCNVksRUFBUTRZLFlBRzdCaG1CLEtBQUttakIsV0FBWSxFQUtqQm5qQixLQUFLaW1CLGdCQUFrQjdZLEVBQVE2WSxpQkFBbUIsT0FHbERqbUIsS0FBS2ttQixXQUFhLEVBR2xCbG1CLEtBQUttbUIsYUFBYyxFQUNuQm5tQixLQUFLb21CLFFBQVUsS0FDZnBtQixLQUFLcU8sU0FBVyxLQUNaakIsRUFBUWlCLFdBQ0xPLElBQWVBLEVBQWdCLFVBQ3BDNU8sS0FBS29tQixRQUFVLElBQUl4WCxFQUFjeEIsRUFBUWlCLFVBQ3pDck8sS0FBS3FPLFNBQVdqQixFQUFRaUIsU0FFNUIsQ0FDQSxTQUFTcVQsU0FBU3RVLEdBRWhCLEdBREF3VSxFQUFTQSxHQUFVLEVBQVEsT0FDckI1aEIsZ0JBQWdCMGhCLFVBQVcsT0FBTyxJQUFJQSxTQUFTdFUsR0FJckQsSUFBSWdVLEVBQVdwaEIsZ0JBQWdCNGhCLEVBQy9CNWhCLEtBQUtzUyxlQUFpQixJQUFJOFIsY0FBY2hYLEVBQVNwTixLQUFNb2hCLEdBR3ZEcGhCLEtBQUtnTyxVQUFXLEVBQ1paLElBQzBCLG1CQUFqQkEsRUFBUW1KLE9BQXFCdlcsS0FBS3FtQixNQUFRalosRUFBUW1KLE1BQzlCLG1CQUFwQm5KLEVBQVFzVixVQUF3QjFpQixLQUFLc21CLFNBQVdsWixFQUFRc1YsVUFFckVsWCxFQUFPcE0sS0FBS1ksS0FDZCxDQXdEQSxTQUFTdW1CLGlCQUFpQmxaLEVBQVErVSxFQUFPL1QsRUFBVW1ZLEVBQVlDLEdBQzdEakMsRUFBTSxtQkFBb0JwQyxHQUMxQixJQUtNaGQsRUFMRjdCLEVBQVE4SixFQUFPaUYsZUFDbkIsR0FBYyxPQUFWOFAsRUFDRjdlLEVBQU1paUIsU0FBVSxFQXVOcEIsU0FBU2tCLFdBQVdyWixFQUFROUosR0FFMUIsR0FEQWloQixFQUFNLGNBQ0ZqaEIsRUFBTW9QLE1BQU8sT0FDakIsR0FBSXBQLEVBQU02aUIsUUFBUyxDQUNqQixJQUFJaEUsRUFBUTdlLEVBQU02aUIsUUFBUXBaLE1BQ3RCb1YsR0FBU0EsRUFBTTNmLFNBQ2pCYyxFQUFNZ1IsT0FBTy9SLEtBQUs0ZixHQUNsQjdlLEVBQU1kLFFBQVVjLEVBQU1pZSxXQUFhLEVBQUlZLEVBQU0zZixPQUVqRCxDQUNBYyxFQUFNb1AsT0FBUSxFQUNWcFAsRUFBTWtpQixLQUlSa0IsYUFBYXRaLElBR2I5SixFQUFNbWlCLGNBQWUsRUFDaEJuaUIsRUFBTW9pQixrQkFDVHBpQixFQUFNb2lCLGlCQUFrQixFQUN4QmlCLGNBQWN2WixJQUdwQixDQTlPSXFaLENBQVdyWixFQUFROUosUUFJbkIsR0FES2tqQixJQUFnQnJoQixFQTZDekIsU0FBU3loQixhQUFhdGpCLEVBQU82ZSxHQUMzQixJQUFJaGQsR0FqUE4sU0FBUzBoQixjQUFjdGEsR0FDckIsT0FBT3pELEVBQU84TCxTQUFTckksSUFBUUEsYUFBZThYLENBQ2hELEVBZ1BPd0MsQ0FBYzFFLElBQTJCLGlCQUFWQSxRQUFnQy9nQixJQUFWK2dCLEdBQXdCN2UsRUFBTWllLGFBQ3RGcGMsRUFBSyxJQUFJMGEsRUFBcUIsUUFBUyxDQUFDLFNBQVUsU0FBVSxjQUFlc0MsSUFFN0UsT0FBT2hkLENBQ1QsQ0FuRDhCeWhCLENBQWF0akIsRUFBTzZlLElBQzFDaGQsRUFDRjhmLEVBQWU3WCxFQUFRakksUUFDbEIsR0FBSTdCLEVBQU1pZSxZQUFjWSxHQUFTQSxFQUFNM2YsT0FBUyxFQUlyRCxHQUhxQixpQkFBVjJmLEdBQXVCN2UsRUFBTWllLFlBQWNsaUIsT0FBT3lGLGVBQWVxZCxLQUFXclosRUFBTzVKLFlBQzVGaWpCLEVBM01SLFNBQVMyRSxvQkFBb0IzRSxHQUMzQixPQUFPclosRUFBTzhLLEtBQUt1TyxFQUNyQixDQXlNZ0IyRSxDQUFvQjNFLElBRTFCb0UsRUFDRWpqQixFQUFNZ1AsV0FBWTJTLEVBQWU3WCxFQUFRLElBQUk0WCxHQUEyQytCLFNBQVMzWixFQUFROUosRUFBTzZlLEdBQU8sUUFDdEgsR0FBSTdlLEVBQU1vUCxNQUNmdVMsRUFBZTdYLEVBQVEsSUFBSTBYLE9BQ3RCLElBQUl4aEIsRUFBTTRmLFVBQ2YsT0FBTyxFQUVQNWYsRUFBTWlpQixTQUFVLEVBQ1pqaUIsRUFBTTZpQixVQUFZL1gsR0FDcEIrVCxFQUFRN2UsRUFBTTZpQixRQUFRMVcsTUFBTTBTLEdBQ3hCN2UsRUFBTWllLFlBQStCLElBQWpCWSxFQUFNM2YsT0FBY3VrQixTQUFTM1osRUFBUTlKLEVBQU82ZSxHQUFPLEdBQVk2RSxjQUFjNVosRUFBUTlKLElBRTdHeWpCLFNBQVMzWixFQUFROUosRUFBTzZlLEdBQU8sRUFFbkMsTUFDVW9FLElBQ1ZqakIsRUFBTWlpQixTQUFVLEVBQ2hCeUIsY0FBYzVaLEVBQVE5SixJQU8xQixPQUFRQSxFQUFNb1AsUUFBVXBQLEVBQU1kLE9BQVNjLEVBQU1nZSxlQUFrQyxJQUFqQmhlLEVBQU1kLE9BQ3RFLENBQ0EsU0FBU3VrQixTQUFTM1osRUFBUTlKLEVBQU82ZSxFQUFPb0UsR0FDbENqakIsRUFBTWdpQixTQUE0QixJQUFqQmhpQixFQUFNZCxTQUFpQmMsRUFBTWtpQixNQUNoRGxpQixFQUFNMmlCLFdBQWEsRUFDbkI3WSxFQUFPL0ssS0FBSyxPQUFROGYsS0FHcEI3ZSxFQUFNZCxRQUFVYyxFQUFNaWUsV0FBYSxFQUFJWSxFQUFNM2YsT0FDekMrakIsRUFBWWpqQixFQUFNZ1IsT0FBT2hTLFFBQVE2ZixHQUFZN2UsRUFBTWdSLE9BQU8vUixLQUFLNGYsR0FDL0Q3ZSxFQUFNbWlCLGNBQWNpQixhQUFhdFosSUFFdkM0WixjQUFjNVosRUFBUTlKLEVBQ3hCLENBM0dBakUsT0FBT29GLGVBQWVnZCxTQUFTdmlCLFVBQVcsWUFBYSxDQUlyRHdGLFlBQVksRUFDWkMsSUFBSyxTQUFTQSxNQUNaLFlBQTRCdkQsSUFBeEJyQixLQUFLc1MsZ0JBR0Z0UyxLQUFLc1MsZUFBZTZRLFNBQzdCLEVBQ0F0ZSxJQUFLLFNBQVNBLElBQUloRixHQUdYRyxLQUFLc1MsaUJBTVZ0UyxLQUFLc1MsZUFBZTZRLFVBQVl0akIsRUFDbEMsSUFFRjZoQixTQUFTdmlCLFVBQVV1akIsUUFBVW1DLEVBQVluQyxRQUN6Q2hCLFNBQVN2aUIsVUFBVStuQixXQUFhckMsRUFBWXNDLFVBQzVDekYsU0FBU3ZpQixVQUFVbW5CLFNBQVcsU0FBVTVsQixFQUFLeVEsR0FDM0NBLEVBQUd6USxFQUNMLEVBTUFnaEIsU0FBU3ZpQixVQUFVcUQsS0FBTyxTQUFVNGYsRUFBTy9ULEdBQ3pDLElBQ0lvWSxFQURBbGpCLEVBQVF2RCxLQUFLc1MsZUFjakIsT0FaSy9PLEVBQU1pZSxXQVVUaUYsR0FBaUIsRUFUSSxpQkFBVnJFLEtBQ1QvVCxFQUFXQSxHQUFZOUssRUFBTTBpQixtQkFDWjFpQixFQUFNOEssV0FDckIrVCxFQUFRclosRUFBTzhLLEtBQUt1TyxFQUFPL1QsR0FDM0JBLEVBQVcsSUFFYm9ZLEdBQWlCLEdBS2RGLGlCQUFpQnZtQixLQUFNb2lCLEVBQU8vVCxHQUFVLEVBQU9vWSxFQUN4RCxFQUdBL0UsU0FBU3ZpQixVQUFVb0QsUUFBVSxTQUFVNmYsR0FDckMsT0FBT21FLGlCQUFpQnZtQixLQUFNb2lCLEVBQU8sTUFBTSxHQUFNLEVBQ25ELEVBNkRBVixTQUFTdmlCLFVBQVVpb0IsU0FBVyxXQUM1QixPQUF1QyxJQUFoQ3BuQixLQUFLc1MsZUFBZWlULE9BQzdCLEVBR0E3RCxTQUFTdmlCLFVBQVVrb0IsWUFBYyxTQUFVdFksR0FDcENILElBQWVBLEVBQWdCLFVBQ3BDLElBQUl3WCxFQUFVLElBQUl4WCxFQUFjRyxHQUNoQy9PLEtBQUtzUyxlQUFlOFQsUUFBVUEsRUFFOUJwbUIsS0FBS3NTLGVBQWVqRSxTQUFXck8sS0FBS3NTLGVBQWU4VCxRQUFRL1gsU0FLM0QsSUFGQSxJQUFJOEIsRUFBSW5RLEtBQUtzUyxlQUFlaUMsT0FBTytTLEtBQy9CaGIsRUFBVSxHQUNELE9BQU42RCxHQUNMN0QsR0FBVzhaLEVBQVExVyxNQUFNUyxFQUFFMUUsTUFDM0IwRSxFQUFJQSxFQUFFb1gsS0FLUixPQUhBdm5CLEtBQUtzUyxlQUFlaUMsT0FBT2lULFFBQ1gsS0FBWmxiLEdBQWdCdE0sS0FBS3NTLGVBQWVpQyxPQUFPL1IsS0FBSzhKLEdBQ3BEdE0sS0FBS3NTLGVBQWU3UCxPQUFTNkosRUFBUTdKLE9BQzlCekMsSUFDVCxFQUdBLElBQUl5bkIsRUFBVSxXQXFCZCxTQUFTQyxjQUFjdGpCLEVBQUdiLEdBQ3hCLE9BQUlhLEdBQUssR0FBc0IsSUFBakJiLEVBQU1kLFFBQWdCYyxFQUFNb1AsTUFBYyxFQUNwRHBQLEVBQU1pZSxXQUFtQixFQUN6QnBkLEdBQU1BLEVBRUpiLEVBQU1naUIsU0FBV2hpQixFQUFNZCxPQUFlYyxFQUFNZ1IsT0FBTytTLEtBQUs3YixLQUFLaEosT0FBbUJjLEVBQU1kLFFBR3hGMkIsRUFBSWIsRUFBTWdlLGdCQUFlaGUsRUFBTWdlLGNBNUJyQyxTQUFTb0csd0JBQXdCdmpCLEdBZS9CLE9BZElBLEdBQUtxakIsRUFFUHJqQixFQUFJcWpCLEdBSUpyakIsSUFDQUEsR0FBS0EsSUFBTSxFQUNYQSxHQUFLQSxJQUFNLEVBQ1hBLEdBQUtBLElBQU0sRUFDWEEsR0FBS0EsSUFBTSxFQUNYQSxHQUFLQSxJQUFNLEdBQ1hBLEtBRUtBLENBQ1QsQ0FZcUR1akIsQ0FBd0J2akIsSUFDdkVBLEdBQUtiLEVBQU1kLE9BQWUyQixFQUV6QmIsRUFBTW9QLE1BSUpwUCxFQUFNZCxRQUhYYyxFQUFNbWlCLGNBQWUsRUFDZCxHQUdYLENBNkhBLFNBQVNpQixhQUFhdFosR0FDcEIsSUFBSTlKLEVBQVE4SixFQUFPaUYsZUFDbkJrUyxFQUFNLGVBQWdCamhCLEVBQU1taUIsYUFBY25pQixFQUFNb2lCLGlCQUNoRHBpQixFQUFNbWlCLGNBQWUsRUFDaEJuaUIsRUFBTW9pQixrQkFDVG5CLEVBQU0sZUFBZ0JqaEIsRUFBTWdpQixTQUM1QmhpQixFQUFNb2lCLGlCQUFrQixFQUN4QmhZLEVBQVFDLFNBQVNnWixjQUFldlosR0FFcEMsQ0FDQSxTQUFTdVosY0FBY3ZaLEdBQ3JCLElBQUk5SixFQUFROEosRUFBT2lGLGVBQ25Ca1MsRUFBTSxnQkFBaUJqaEIsRUFBTTRmLFVBQVc1ZixFQUFNZCxPQUFRYyxFQUFNb1AsT0FDdkRwUCxFQUFNNGYsWUFBYzVmLEVBQU1kLFNBQVVjLEVBQU1vUCxRQUM3Q3RGLEVBQU8vSyxLQUFLLFlBQ1ppQixFQUFNb2lCLGlCQUFrQixHQVMxQnBpQixFQUFNbWlCLGNBQWdCbmlCLEVBQU1naUIsVUFBWWhpQixFQUFNb1AsT0FBU3BQLEVBQU1kLFFBQVVjLEVBQU1nZSxjQUM3RXFHLEtBQUt2YSxFQUNQLENBUUEsU0FBUzRaLGNBQWM1WixFQUFROUosR0FDeEJBLEVBQU00aUIsY0FDVDVpQixFQUFNNGlCLGFBQWMsRUFDcEJ4WSxFQUFRQyxTQUFTaWEsZUFBZ0J4YSxFQUFROUosR0FFN0MsQ0FDQSxTQUFTc2tCLGVBQWV4YSxFQUFROUosR0F3QjlCLE1BQVFBLEVBQU1paUIsVUFBWWppQixFQUFNb1AsUUFBVXBQLEVBQU1kLE9BQVNjLEVBQU1nZSxlQUFpQmhlLEVBQU1naUIsU0FBNEIsSUFBakJoaUIsRUFBTWQsU0FBZSxDQUNwSCxJQUFJOEMsRUFBTWhDLEVBQU1kLE9BR2hCLEdBRkEraEIsRUFBTSx3QkFDTm5YLEVBQU9rSixLQUFLLEdBQ1JoUixJQUFRaEMsRUFBTWQsT0FFaEIsS0FDSixDQUNBYyxFQUFNNGlCLGFBQWMsQ0FDdEIsQ0FnUEEsU0FBUzJCLHdCQUF3QnJaLEdBQy9CLElBQUlsTCxFQUFRa0wsRUFBSzZELGVBQ2pCL08sRUFBTXFpQixrQkFBb0JuWCxFQUFLdEssY0FBYyxZQUFjLEVBQ3ZEWixFQUFNc2lCLGtCQUFvQnRpQixFQUFNdWlCLE9BR2xDdmlCLEVBQU1naUIsU0FBVSxFQUdQOVcsRUFBS3RLLGNBQWMsUUFBVSxHQUN0Q3NLLEVBQUs4VCxRQUVULENBQ0EsU0FBU3dGLGlCQUFpQnRaLEdBQ3hCK1YsRUFBTSw0QkFDTi9WLEVBQUs4SCxLQUFLLEVBQ1osQ0F1QkEsU0FBU3lSLFFBQVEzYSxFQUFROUosR0FDdkJpaEIsRUFBTSxTQUFVamhCLEVBQU1paUIsU0FDakJqaUIsRUFBTWlpQixTQUNUblksRUFBT2tKLEtBQUssR0FFZGhULEVBQU1zaUIsaUJBQWtCLEVBQ3hCeFksRUFBTy9LLEtBQUssVUFDWnNsQixLQUFLdmEsR0FDRDlKLEVBQU1naUIsVUFBWWhpQixFQUFNaWlCLFNBQVNuWSxFQUFPa0osS0FBSyxFQUNuRCxDQVdBLFNBQVNxUixLQUFLdmEsR0FDWixJQUFJOUosRUFBUThKLEVBQU9pRixlQUVuQixJQURBa1MsRUFBTSxPQUFRamhCLEVBQU1naUIsU0FDYmhpQixFQUFNZ2lCLFNBQTZCLE9BQWxCbFksRUFBT2tKLFNBQ2pDLENBbUhBLFNBQVMwUixTQUFTN2pCLEVBQUdiLEdBRW5CLE9BQXFCLElBQWpCQSxFQUFNZCxPQUFxQixNQUUzQmMsRUFBTWllLFdBQVl6ZCxFQUFNUixFQUFNZ1IsT0FBT3hPLFNBQWtCM0IsR0FBS0EsR0FBS2IsRUFBTWQsUUFFdERzQixFQUFmUixFQUFNNmlCLFFBQWU3aUIsRUFBTWdSLE9BQU8xTSxLQUFLLElBQXFDLElBQXhCdEUsRUFBTWdSLE9BQU85UixPQUFvQmMsRUFBTWdSLE9BQU82SCxRQUFtQjdZLEVBQU1nUixPQUFPOVUsT0FBTzhELEVBQU1kLFFBQ25KYyxFQUFNZ1IsT0FBT2lULFNBR2J6akIsRUFBTVIsRUFBTWdSLE9BQU8yVCxRQUFROWpCLEVBQUdiLEVBQU02aUIsU0FFL0JyaUIsR0FUUCxJQUFJQSxDQVVOLENBQ0EsU0FBU29rQixZQUFZOWEsR0FDbkIsSUFBSTlKLEVBQVE4SixFQUFPaUYsZUFDbkJrUyxFQUFNLGNBQWVqaEIsRUFBTWdQLFlBQ3RCaFAsRUFBTWdQLGFBQ1RoUCxFQUFNb1AsT0FBUSxFQUNkaEYsRUFBUUMsU0FBU3dhLGNBQWU3a0IsRUFBTzhKLEdBRTNDLENBQ0EsU0FBUythLGNBQWM3a0IsRUFBTzhKLEdBSTVCLEdBSEFtWCxFQUFNLGdCQUFpQmpoQixFQUFNZ1AsV0FBWWhQLEVBQU1kLFNBRzFDYyxFQUFNZ1AsWUFBK0IsSUFBakJoUCxFQUFNZCxTQUM3QmMsRUFBTWdQLFlBQWEsRUFDbkJsRixFQUFPVyxVQUFXLEVBQ2xCWCxFQUFPL0ssS0FBSyxPQUNSaUIsRUFBTXlpQixhQUFhLENBR3JCLElBQUlxQyxFQUFTaGIsRUFBTzhFLGlCQUNma1csR0FBVUEsRUFBT3JDLGFBQWVxQyxFQUFPalcsV0FDMUMvRSxFQUFPcVYsU0FFWCxDQUVKLENBU0EsU0FBUzlaLFFBQVEwZixFQUFJamYsR0FDbkIsSUFBSyxJQUFJcEYsRUFBSSxFQUFHc2tCLEVBQUlELEVBQUc3bEIsT0FBUXdCLEVBQUlza0IsRUFBR3RrQixJQUNwQyxHQUFJcWtCLEVBQUdya0IsS0FBT29GLEVBQUcsT0FBT3BGLEVBRTFCLE9BQVEsQ0FDVixDQTFwQkF5ZCxTQUFTdmlCLFVBQVVvWCxLQUFPLFNBQVVuUyxHQUNsQ29nQixFQUFNLE9BQVFwZ0IsR0FDZEEsRUFBSTRTLFNBQVM1UyxFQUFHLElBQ2hCLElBQUliLEVBQVF2RCxLQUFLc1MsZUFDYmtXLEVBQVFwa0IsRUFNWixHQUxVLElBQU5BLElBQVNiLEVBQU1vaUIsaUJBQWtCLEdBSzNCLElBQU52aEIsR0FBV2IsRUFBTW1pQixnQkFBMEMsSUFBeEJuaUIsRUFBTWdlLGNBQXNCaGUsRUFBTWQsUUFBVWMsRUFBTWdlLGNBQWdCaGUsRUFBTWQsT0FBUyxJQUFNYyxFQUFNb1AsT0FHbEksT0FGQTZSLEVBQU0scUJBQXNCamhCLEVBQU1kLE9BQVFjLEVBQU1vUCxPQUMzQixJQUFqQnBQLEVBQU1kLFFBQWdCYyxFQUFNb1AsTUFBT3dWLFlBQVlub0IsTUFBVzJtQixhQUFhM21CLE1BQ3BFLEtBS1QsR0FBVSxLQUhWb0UsRUFBSXNqQixjQUFjdGpCLEVBQUdiLEtBR05BLEVBQU1vUCxNQUVuQixPQURxQixJQUFqQnBQLEVBQU1kLFFBQWMwbEIsWUFBWW5vQixNQUM3QixLQTBCVCxJQTJCSStELEVBM0JBMGtCLEVBQVNsbEIsRUFBTW1pQixhQTZDbkIsT0E1Q0FsQixFQUFNLGdCQUFpQmlFLElBR0YsSUFBakJsbEIsRUFBTWQsUUFBZ0JjLEVBQU1kLE9BQVMyQixFQUFJYixFQUFNZ2UsZ0JBRWpEaUQsRUFBTSw2QkFETmlFLEdBQVMsR0FNUGxsQixFQUFNb1AsT0FBU3BQLEVBQU1paUIsUUFFdkJoQixFQUFNLG1CQUROaUUsR0FBUyxHQUVBQSxJQUNUakUsRUFBTSxXQUNOamhCLEVBQU1paUIsU0FBVSxFQUNoQmppQixFQUFNa2lCLE1BQU8sRUFFUSxJQUFqQmxpQixFQUFNZCxTQUFjYyxFQUFNbWlCLGNBQWUsR0FFN0MxbEIsS0FBS3FtQixNQUFNOWlCLEVBQU1nZSxlQUNqQmhlLEVBQU1raUIsTUFBTyxFQUdSbGlCLEVBQU1paUIsVUFBU3BoQixFQUFJc2pCLGNBQWNjLEVBQU9qbEIsS0FJbkMsUUFERFEsRUFBUEssRUFBSSxFQUFTNmpCLFNBQVM3akIsRUFBR2IsR0FBa0IsT0FFN0NBLEVBQU1taUIsYUFBZW5pQixFQUFNZCxRQUFVYyxFQUFNZ2UsY0FDM0NuZCxFQUFJLElBRUpiLEVBQU1kLFFBQVUyQixFQUNoQmIsRUFBTTJpQixXQUFhLEdBRUEsSUFBakIzaUIsRUFBTWQsU0FHSGMsRUFBTW9QLFFBQU9wUCxFQUFNbWlCLGNBQWUsR0FHbkM4QyxJQUFVcGtCLEdBQUtiLEVBQU1vUCxPQUFPd1YsWUFBWW5vQixPQUVsQyxPQUFSK0QsR0FBYy9ELEtBQUtzQyxLQUFLLE9BQVF5QixHQUM3QkEsQ0FDVCxFQTZHQTJkLFNBQVN2aUIsVUFBVWtuQixNQUFRLFNBQVVqaUIsR0FDbkM4Z0IsRUFBZWxsQixLQUFNLElBQUlnbEIsRUFBMkIsV0FDdEQsRUFDQXRELFNBQVN2aUIsVUFBVTZpQixLQUFPLFNBQVVDLEVBQU15RyxHQUN4QyxJQUFJaEksRUFBTTFnQixLQUNOdUQsRUFBUXZELEtBQUtzUyxlQUNqQixPQUFRL08sRUFBTStoQixZQUNaLEtBQUssRUFDSC9oQixFQUFNOGhCLE1BQVFwRCxFQUNkLE1BQ0YsS0FBSyxFQUNIMWUsRUFBTThoQixNQUFRLENBQUM5aEIsRUFBTThoQixNQUFPcEQsR0FDNUIsTUFDRixRQUNFMWUsRUFBTThoQixNQUFNN2lCLEtBQUt5ZixHQUdyQjFlLEVBQU0raEIsWUFBYyxFQUNwQmQsRUFBTSx3QkFBeUJqaEIsRUFBTStoQixXQUFZb0QsR0FDakQsSUFDSUMsSUFEVUQsSUFBNkIsSUFBakJBLEVBQVMxYixNQUFrQmlWLElBQVN0VSxFQUFRaWIsUUFBVTNHLElBQVN0VSxFQUFRa2IsT0FDN0VyVyxNQUFRc1csT0FHNUIsU0FBU0MsU0FBUy9hLEVBQVVnYixHQUMxQnhFLEVBQU0sWUFDRnhXLElBQWEwUyxHQUNYc0ksSUFBd0MsSUFBMUJBLEVBQVdDLGFBQzNCRCxFQUFXQyxZQUFhLEVBaUI5QixTQUFTdEcsVUFDUDZCLEVBQU0sV0FFTnZDLEVBQUt0aEIsZUFBZSxRQUFTK1IsU0FDN0J1UCxFQUFLdGhCLGVBQWUsU0FBVXNSLFVBQzlCZ1EsRUFBS3RoQixlQUFlLFFBQVMyaEIsR0FDN0JMLEVBQUt0aEIsZUFBZSxRQUFTOFIsU0FDN0J3UCxFQUFLdGhCLGVBQWUsU0FBVW9vQixVQUM5QnJJLEVBQUkvZixlQUFlLE1BQU82UixPQUMxQmtPLEVBQUkvZixlQUFlLE1BQU9tb0IsUUFDMUJwSSxFQUFJL2YsZUFBZSxPQUFRd2hCLFFBQzNCK0csR0FBWSxHQU9SM2xCLEVBQU0yaUIsWUFBZ0JqRSxFQUFLOVAsaUJBQWtCOFAsRUFBSzlQLGVBQWVnWCxXQUFZN0csR0FDbkYsQ0FuQ01LLEdBR04sQ0FDQSxTQUFTblEsUUFDUGdTLEVBQU0sU0FDTnZDLEVBQUtqVixLQUNQLENBZEl6SixFQUFNZ1AsV0FBWTVFLEVBQVFDLFNBQVMrYSxHQUFZakksRUFBSXZnQixLQUFLLE1BQU93b0IsR0FDbkUxRyxFQUFLOWdCLEdBQUcsU0FBVTRuQixVQW1CbEIsSUFBSXpHLEVBZ0ZOLFNBQVM4RyxZQUFZMUksR0FDbkIsT0FBTyxTQUFTMkksNEJBQ2QsSUFBSTlsQixFQUFRbWQsRUFBSXBPLGVBQ2hCa1MsRUFBTSxjQUFlamhCLEVBQU0yaUIsWUFDdkIzaUIsRUFBTTJpQixZQUFZM2lCLEVBQU0yaUIsYUFDSCxJQUFyQjNpQixFQUFNMmlCLFlBQW9CN0IsRUFBZ0IzRCxFQUFLLFVBQ2pEbmQsRUFBTWdpQixTQUFVLEVBQ2hCcUMsS0FBS2xILEdBRVQsQ0FDRixDQTFGZ0IwSSxDQUFZMUksR0FDMUJ1QixFQUFLOWdCLEdBQUcsUUFBU21oQixHQUNqQixJQUFJNEcsR0FBWSxFQXNCaEIsU0FBUy9HLE9BQU9DLEdBQ2RvQyxFQUFNLFVBQ04sSUFBSXpnQixFQUFNa2UsRUFBS3ZTLE1BQU0wUyxHQUNyQm9DLEVBQU0sYUFBY3pnQixJQUNSLElBQVJBLEtBS3dCLElBQXJCUixFQUFNK2hCLFlBQW9CL2hCLEVBQU04aEIsUUFBVXBELEdBQVExZSxFQUFNK2hCLFdBQWEsSUFBcUMsSUFBaEMxYyxRQUFRckYsRUFBTThoQixNQUFPcEQsTUFBa0JpSCxJQUNwSDFFLEVBQU0sOEJBQStCamhCLEVBQU0yaUIsWUFDM0MzaUIsRUFBTTJpQixjQUVSeEYsRUFBSTJCLFFBRVIsQ0FJQSxTQUFTNVAsUUFBUXJOLEdBQ2ZvZixFQUFNLFVBQVdwZixHQUNqQjBqQixTQUNBN0csRUFBS3RoQixlQUFlLFFBQVM4UixTQUNVLElBQW5DNFIsRUFBZ0JwQyxFQUFNLFVBQWdCaUQsRUFBZWpELEVBQU03YyxFQUNqRSxDQU1BLFNBQVNzTixVQUNQdVAsRUFBS3RoQixlQUFlLFNBQVVzUixVQUM5QjZXLFFBQ0YsQ0FFQSxTQUFTN1csV0FDUHVTLEVBQU0sWUFDTnZDLEVBQUt0aEIsZUFBZSxRQUFTK1IsU0FDN0JvVyxRQUNGLENBRUEsU0FBU0EsU0FDUHRFLEVBQU0sVUFDTjlELEVBQUlvSSxPQUFPN0csRUFDYixDQVVBLE9BdkRBdkIsRUFBSXZmLEdBQUcsT0FBUWdoQixRQW5pQmpCLFNBQVN6YyxnQkFBZ0J0RixFQUFTa3BCLEVBQU92SSxHQUd2QyxHQUF1QyxtQkFBNUIzZ0IsRUFBUXNGLGdCQUFnQyxPQUFPdEYsRUFBUXNGLGdCQUFnQjRqQixFQUFPdkksR0FNcEYzZ0IsRUFBUWdCLFNBQVloQixFQUFRZ0IsUUFBUWtvQixHQUF1Q3RsQixNQUFNMkQsUUFBUXZILEVBQVFnQixRQUFRa29CLElBQVNscEIsRUFBUWdCLFFBQVFrb0IsR0FBTy9tQixRQUFRd2UsR0FBUzNnQixFQUFRZ0IsUUFBUWtvQixHQUFTLENBQUN2SSxFQUFJM2dCLEVBQVFnQixRQUFRa29CLElBQTVKbHBCLEVBQVFlLEdBQUdtb0IsRUFBT3ZJLEVBQ3JFLENBcWpCRXJiLENBQWdCdWMsRUFBTSxRQUFTeFAsU0FPL0J3UCxFQUFLOWhCLEtBQUssUUFBU3VTLFNBTW5CdVAsRUFBSzloQixLQUFLLFNBQVU4UixVQU9wQmdRLEVBQUszZixLQUFLLE9BQVFvZSxHQUdibmQsRUFBTWdpQixVQUNUZixFQUFNLGVBQ045RCxFQUFJNkIsVUFFQ04sQ0FDVCxFQVlBUCxTQUFTdmlCLFVBQVUycEIsT0FBUyxTQUFVN0csR0FDcEMsSUFBSTFlLEVBQVF2RCxLQUFLc1MsZUFDYjBXLEVBQWEsQ0FDZkMsWUFBWSxHQUlkLEdBQXlCLElBQXJCMWxCLEVBQU0raEIsV0FBa0IsT0FBT3RsQixLQUduQyxHQUF5QixJQUFyQnVELEVBQU0raEIsV0FFUixPQUFJckQsR0FBUUEsSUFBUzFlLEVBQU04aEIsUUFDdEJwRCxJQUFNQSxFQUFPMWUsRUFBTThoQixPQUd4QjloQixFQUFNOGhCLE1BQVEsS0FDZDloQixFQUFNK2hCLFdBQWEsRUFDbkIvaEIsRUFBTWdpQixTQUFVLEVBQ1p0RCxHQUFNQSxFQUFLM2YsS0FBSyxTQUFVdEMsS0FBTWdwQixJQVBLaHBCLEtBYTNDLElBQUtpaUIsRUFBTSxDQUVULElBQUlzSCxFQUFRaG1CLEVBQU04aEIsTUFDZDlmLEVBQU1oQyxFQUFNK2hCLFdBQ2hCL2hCLEVBQU04aEIsTUFBUSxLQUNkOWhCLEVBQU0raEIsV0FBYSxFQUNuQi9oQixFQUFNZ2lCLFNBQVUsRUFDaEIsSUFBSyxJQUFJdGhCLEVBQUksRUFBR0EsRUFBSXNCLEVBQUt0QixJQUFLc2xCLEVBQU10bEIsR0FBRzNCLEtBQUssU0FBVXRDLEtBQU0sQ0FDMURpcEIsWUFBWSxJQUVkLE9BQU9qcEIsSUFDVCxDQUdBLElBQUlpRyxFQUFRMkMsUUFBUXJGLEVBQU04aEIsTUFBT3BELEdBQ2pDLE9BQWUsSUFBWGhjLElBQ0oxQyxFQUFNOGhCLE1BQU1tRSxPQUFPdmpCLEVBQU8sR0FDMUIxQyxFQUFNK2hCLFlBQWMsRUFDSyxJQUFyQi9oQixFQUFNK2hCLGFBQWtCL2hCLEVBQU04aEIsTUFBUTloQixFQUFNOGhCLE1BQU0sSUFDdERwRCxFQUFLM2YsS0FBSyxTQUFVdEMsS0FBTWdwQixJQUpEaHBCLElBTTNCLEVBSUEwaEIsU0FBU3ZpQixVQUFVZ0MsR0FBSyxTQUFVc29CLEVBQUkxSSxHQUNwQyxJQUFJaEosRUFBTXZNLEVBQU9yTSxVQUFVZ0MsR0FBRy9CLEtBQUtZLEtBQU15cEIsRUFBSTFJLEdBQ3pDeGQsRUFBUXZELEtBQUtzUyxlQXFCakIsTUFwQlcsU0FBUG1YLEdBR0ZsbUIsRUFBTXFpQixrQkFBb0I1bEIsS0FBS21FLGNBQWMsWUFBYyxHQUdyQyxJQUFsQlosRUFBTWdpQixTQUFtQnZsQixLQUFLdWlCLFVBQ2xCLGFBQVBrSCxJQUNKbG1CLEVBQU1nUCxZQUFlaFAsRUFBTXFpQixvQkFDOUJyaUIsRUFBTXFpQixrQkFBb0JyaUIsRUFBTW1pQixjQUFlLEVBQy9DbmlCLEVBQU1naUIsU0FBVSxFQUNoQmhpQixFQUFNb2lCLGlCQUFrQixFQUN4Qm5CLEVBQU0sY0FBZWpoQixFQUFNZCxPQUFRYyxFQUFNaWlCLFNBQ3JDamlCLEVBQU1kLE9BQ1Jra0IsYUFBYTNtQixNQUNIdUQsRUFBTWlpQixTQUNoQjdYLEVBQVFDLFNBQVNtYSxpQkFBa0IvbkIsUUFJbEMrWCxDQUNULEVBQ0EySixTQUFTdmlCLFVBQVVzRyxZQUFjaWMsU0FBU3ZpQixVQUFVZ0MsR0FDcER1Z0IsU0FBU3ZpQixVQUFVd0IsZUFBaUIsU0FBVThvQixFQUFJMUksR0FDaEQsSUFBSWhKLEVBQU12TSxFQUFPck0sVUFBVXdCLGVBQWV2QixLQUFLWSxLQUFNeXBCLEVBQUkxSSxHQVV6RCxNQVRXLGFBQVAwSSxHQU9GOWIsRUFBUUMsU0FBU2thLHdCQUF5QjluQixNQUVyQytYLENBQ1QsRUFDQTJKLFNBQVN2aUIsVUFBVWlILG1CQUFxQixTQUFVcWpCLEdBQ2hELElBQUkxUixFQUFNdk0sRUFBT3JNLFVBQVVpSCxtQkFBbUJ0SCxNQUFNa0IsS0FBTWMsV0FVMUQsTUFUVyxhQUFQMm9CLFFBQTRCcG9CLElBQVBvb0IsR0FPdkI5YixFQUFRQyxTQUFTa2Esd0JBQXlCOW5CLE1BRXJDK1gsQ0FDVCxFQXFCQTJKLFNBQVN2aUIsVUFBVW9qQixPQUFTLFdBQzFCLElBQUloZixFQUFRdkQsS0FBS3NTLGVBVWpCLE9BVEsvTyxFQUFNZ2lCLFVBQ1RmLEVBQU0sVUFJTmpoQixFQUFNZ2lCLFNBQVdoaUIsRUFBTXFpQixrQkFNM0IsU0FBU3JELE9BQU9sVixFQUFROUosR0FDakJBLEVBQU1zaUIsa0JBQ1R0aUIsRUFBTXNpQixpQkFBa0IsRUFDeEJsWSxFQUFRQyxTQUFTb2EsUUFBUzNhLEVBQVE5SixHQUV0QyxDQVZJZ2YsQ0FBT3ZpQixLQUFNdUQsSUFFZkEsRUFBTXVpQixRQUFTLEVBQ1I5bEIsSUFDVCxFQWlCQTBoQixTQUFTdmlCLFVBQVVrakIsTUFBUSxXQVF6QixPQVBBbUMsRUFBTSx3QkFBeUJ4a0IsS0FBS3NTLGVBQWVpVCxVQUNmLElBQWhDdmxCLEtBQUtzUyxlQUFlaVQsVUFDdEJmLEVBQU0sU0FDTnhrQixLQUFLc1MsZUFBZWlULFNBQVUsRUFDOUJ2bEIsS0FBS3NDLEtBQUssVUFFWnRDLEtBQUtzUyxlQUFld1QsUUFBUyxFQUN0QjlsQixJQUNULEVBVUEwaEIsU0FBU3ZpQixVQUFVdXFCLEtBQU8sU0FBVXJjLEdBQ2xDLElBQUlzYyxFQUFRM3BCLEtBQ1J1RCxFQUFRdkQsS0FBS3NTLGVBQ2J3VCxHQUFTLEVBd0JiLElBQUssSUFBSTdoQixLQXZCVG9KLEVBQU9sTSxHQUFHLE9BQU8sV0FFZixHQURBcWpCLEVBQU0sZUFDRmpoQixFQUFNNmlCLFVBQVk3aUIsRUFBTW9QLE1BQU8sQ0FDakMsSUFBSXlQLEVBQVE3ZSxFQUFNNmlCLFFBQVFwWixNQUN0Qm9WLEdBQVNBLEVBQU0zZixRQUFRa25CLEVBQU1ubkIsS0FBSzRmLEVBQ3hDLENBQ0F1SCxFQUFNbm5CLEtBQUssS0FDYixJQUNBNkssRUFBT2xNLEdBQUcsUUFBUSxTQUFVaWhCLElBQzFCb0MsRUFBTSxnQkFDRmpoQixFQUFNNmlCLFVBQVNoRSxFQUFRN2UsRUFBTTZpQixRQUFRMVcsTUFBTTBTLElBRzNDN2UsRUFBTWllLFlBQWMsTUFBQ1ksS0FBeUQ3ZSxFQUFNaWUsWUFBZ0JZLEdBQVVBLEVBQU0zZixVQUM5R2tuQixFQUFNbm5CLEtBQUs0ZixLQUVuQjBELEdBQVMsRUFDVHpZLEVBQU9nVixTQUVYLElBSWNoVixPQUNJaE0sSUFBWnJCLEtBQUtpRSxJQUF5QyxtQkFBZG9KLEVBQU9wSixLQUN6Q2pFLEtBQUtpRSxHQUFLLFNBQVMybEIsV0FBVzdHLEdBQzVCLE9BQU8sU0FBUzhHLDJCQUNkLE9BQU94YyxFQUFPMFYsR0FBUWprQixNQUFNdU8sRUFBUXZNLFVBQ3RDLENBQ0YsQ0FKVSxDQUlSbUQsSUFLTixJQUFLLElBQUlHLEVBQUksRUFBR0EsRUFBSStnQixFQUFhMWlCLE9BQVEyQixJQUN2Q2lKLEVBQU9sTSxHQUFHZ2tCLEVBQWEvZ0IsR0FBSXBFLEtBQUtzQyxLQUFLbUIsS0FBS3pELEtBQU1tbEIsRUFBYS9nQixLQVkvRCxPQVBBcEUsS0FBS3FtQixNQUFRLFNBQVVqaUIsR0FDckJvZ0IsRUFBTSxnQkFBaUJwZ0IsR0FDbkIwaEIsSUFDRkEsR0FBUyxFQUNUelksRUFBT2tWLFNBRVgsRUFDT3ZpQixJQUNULEVBQ3NCLG1CQUFYb1QsU0FDVHNPLFNBQVN2aUIsVUFBVWlVLE9BQU8wVyxlQUFpQixXQUl6QyxZQUgwQ3pvQixJQUF0Q3NqQixJQUNGQSxFQUFvQyxFQUFRLE1BRXZDQSxFQUFrQzNrQixLQUMzQyxHQUVGVixPQUFPb0YsZUFBZWdkLFNBQVN2aUIsVUFBVyx3QkFBeUIsQ0FJakV3RixZQUFZLEVBQ1pDLElBQUssU0FBU0EsTUFDWixPQUFPNUUsS0FBS3NTLGVBQWVpUCxhQUM3QixJQUVGamlCLE9BQU9vRixlQUFlZ2QsU0FBU3ZpQixVQUFXLGlCQUFrQixDQUkxRHdGLFlBQVksRUFDWkMsSUFBSyxTQUFTQSxNQUNaLE9BQU81RSxLQUFLc1MsZ0JBQWtCdFMsS0FBS3NTLGVBQWVpQyxNQUNwRCxJQUVGalYsT0FBT29GLGVBQWVnZCxTQUFTdmlCLFVBQVcsa0JBQW1CLENBSTNEd0YsWUFBWSxFQUNaQyxJQUFLLFNBQVNBLE1BQ1osT0FBTzVFLEtBQUtzUyxlQUFlaVQsT0FDN0IsRUFDQTFnQixJQUFLLFNBQVNBLElBQUl0QixHQUNadkQsS0FBS3NTLGlCQUNQdFMsS0FBS3NTLGVBQWVpVCxRQUFVaGlCLEVBRWxDLElBSUZtZSxTQUFTcUksVUFBWTlCLFNBQ3JCM29CLE9BQU9vRixlQUFlZ2QsU0FBU3ZpQixVQUFXLGlCQUFrQixDQUkxRHdGLFlBQVksRUFDWkMsSUFBSyxTQUFTQSxNQUNaLE9BQU81RSxLQUFLc1MsZUFBZTdQLE1BQzdCLElBK0NvQixtQkFBWDJRLFNBQ1RzTyxTQUFTN04sS0FBTyxTQUFVbVcsRUFBVXRZLEdBSWxDLFlBSGFyUSxJQUFUd1MsSUFDRkEsRUFBTyxFQUFRLE1BRVZBLEVBQUs2TixTQUFVc0ksRUFBVXRZLEVBQ2xDLG9CQzEvQkYsSUFBSXVZLEVBQW9CLENBQ3BCLElBQUssUUFDTCxJQUFLLFNBQ0wsSUFBSyxTQUNMLElBQUssT0FDTCxJQUFLLFFBV1RocUIsRUFBT0MsUUFSUCxTQUFTcUwsYUFBYXdJLEdBQ2xCLE9BQU9BLEdBQVVBLEVBQU96TCxRQUNsQnlMLEVBQU96TCxRQUFRLGNBQWMsU0FBU0osRUFBS2dpQixHQUN6QyxPQUFPRCxFQUFrQkMsRUFDM0IsSUFDQW5XLENBQ1YsdUJDWUE5VCxFQUFPQyxRQUFVNGhCLFlBQ2pCLElBQUlELEVBQVksRUFBUSxLQUV4QixTQUFTQyxZQUFZMVUsR0FDbkIsS0FBTXBOLGdCQUFnQjhoQixhQUFjLE9BQU8sSUFBSUEsWUFBWTFVLEdBQzNEeVUsRUFBVXppQixLQUFLWSxLQUFNb04sRUFDdkIsQ0FKQSxFQUFRLElBQVIsQ0FBb0IwVSxZQUFhRCxHQUtqQ0MsWUFBWTNpQixVQUFVZ3JCLFdBQWEsU0FBVS9ILEVBQU8vVCxFQUFVOEMsR0FDNURBLEVBQUcsS0FBTWlSLEVBQ1gsbUJDbkNBLElBT0lnSSxFQUNBQyxFQVJBMWMsRUFBVTFOLEVBQU9DLFFBQVUsQ0FBQyxFQVVoQyxTQUFTb3FCLG1CQUNMLE1BQU0sSUFBSTFuQixNQUFNLGtDQUNwQixDQUNBLFNBQVMybkIsc0JBQ0wsTUFBTSxJQUFJM25CLE1BQU0sb0NBQ3BCLENBcUJBLFNBQVM0bkIsV0FBV0MsR0FDaEIsR0FBSUwsSUFBcUJNLFdBRXJCLE9BQU9BLFdBQVdELEVBQUssR0FHM0IsSUFBS0wsSUFBcUJFLG1CQUFxQkYsSUFBcUJNLFdBRWhFLE9BREFOLEVBQW1CTSxXQUNaQSxXQUFXRCxFQUFLLEdBRTNCLElBRUksT0FBT0wsRUFBaUJLLEVBQUssRUFDakMsQ0FBRSxNQUFNOWYsR0FDSixJQUVJLE9BQU95ZixFQUFpQmhyQixLQUFLLEtBQU1xckIsRUFBSyxFQUM1QyxDQUFFLE1BQU05ZixHQUVKLE9BQU95ZixFQUFpQmhyQixLQUFLWSxLQUFNeXFCLEVBQUssRUFDNUMsQ0FDSixDQUdKLEVBNUNDLFdBQ0csSUFFUUwsRUFEc0IsbUJBQWZNLFdBQ1lBLFdBRUFKLGdCQUUzQixDQUFFLE1BQU8zZixHQUNMeWYsRUFBbUJFLGdCQUN2QixDQUNBLElBRVFELEVBRHdCLG1CQUFqQk0sYUFDY0EsYUFFQUosbUJBRTdCLENBQUUsTUFBTzVmLEdBQ0wwZixFQUFxQkUsbUJBQ3pCLENBQ0osQ0FuQkEsR0F3RUEsSUFFSUssRUFGQUMsRUFBUSxHQUNSQyxHQUFXLEVBRVhDLEdBQWMsRUFFbEIsU0FBU0Msa0JBQ0FGLEdBQWFGLElBR2xCRSxHQUFXLEVBQ1BGLEVBQWFub0IsT0FDYm9vQixFQUFRRCxFQUFhbnJCLE9BQU9vckIsR0FFNUJFLEdBQWMsRUFFZEYsRUFBTXBvQixRQUNOd29CLGFBRVIsQ0FFQSxTQUFTQSxhQUNMLElBQUlILEVBQUosQ0FHQSxJQUFJSSxFQUFVVixXQUFXUSxpQkFDekJGLEdBQVcsRUFHWCxJQURBLElBQUl2bEIsRUFBTXNsQixFQUFNcG9CLE9BQ1Y4QyxHQUFLLENBR1AsSUFGQXFsQixFQUFlQyxFQUNmQSxFQUFRLEtBQ0NFLEVBQWF4bEIsR0FDZHFsQixHQUNBQSxFQUFhRyxHQUFZSSxNQUdqQ0osR0FBYyxFQUNkeGxCLEVBQU1zbEIsRUFBTXBvQixNQUNoQixDQUNBbW9CLEVBQWUsS0FDZkUsR0FBVyxFQW5FZixTQUFTTSxnQkFBZ0JDLEdBQ3JCLEdBQUloQixJQUF1Qk0sYUFFdkIsT0FBT0EsYUFBYVUsR0FHeEIsSUFBS2hCLElBQXVCRSxzQkFBd0JGLElBQXVCTSxhQUV2RSxPQURBTixFQUFxQk0sYUFDZEEsYUFBYVUsR0FFeEIsSUFFSSxPQUFPaEIsRUFBbUJnQixFQUM5QixDQUFFLE1BQU8xZ0IsR0FDTCxJQUVJLE9BQU8wZixFQUFtQmpyQixLQUFLLEtBQU1pc0IsRUFDekMsQ0FBRSxNQUFPMWdCLEdBR0wsT0FBTzBmLEVBQW1CanJCLEtBQUtZLEtBQU1xckIsRUFDekMsQ0FDSixDQUlKLENBMENJRCxDQUFnQkYsRUFsQmhCLENBbUJKLENBZ0JBLFNBQVNJLEtBQUtiLEVBQUt2VixHQUNmbFYsS0FBS3lxQixJQUFNQSxFQUNYenFCLEtBQUtrVixNQUFRQSxDQUNqQixDQVdBLFNBQVMxRCxPQUFRLENBNUJqQjdELEVBQVFDLFNBQVcsU0FBVTZjLEdBQ3pCLElBQUl4ckIsRUFBTyxJQUFJK0UsTUFBTWxELFVBQVUyQixPQUFTLEdBQ3hDLEdBQUkzQixVQUFVMkIsT0FBUyxFQUNuQixJQUFLLElBQUl3QixFQUFJLEVBQUdBLEVBQUluRCxVQUFVMkIsT0FBUXdCLElBQ2xDaEYsRUFBS2dGLEVBQUksR0FBS25ELFVBQVVtRCxHQUdoQzRtQixFQUFNcm9CLEtBQUssSUFBSThvQixLQUFLYixFQUFLeHJCLElBQ0osSUFBakI0ckIsRUFBTXBvQixRQUFpQnFvQixHQUN2Qk4sV0FBV1MsV0FFbkIsRUFPQUssS0FBS25zQixVQUFVZ3NCLElBQU0sV0FDakJuckIsS0FBS3lxQixJQUFJM3JCLE1BQU0sS0FBTWtCLEtBQUtrVixNQUM5QixFQUNBdkgsRUFBUTRkLE1BQVEsVUFDaEI1ZCxFQUFRNmQsU0FBVSxFQUNsQjdkLEVBQVE4ZCxJQUFNLENBQUMsRUFDZjlkLEVBQVErZCxLQUFPLEdBQ2YvZCxFQUFRUyxRQUFVLEdBQ2xCVCxFQUFRZ2UsU0FBVyxDQUFDLEVBSXBCaGUsRUFBUXhNLEdBQUtxUSxLQUNiN0QsRUFBUWxJLFlBQWMrTCxLQUN0QjdELEVBQVF4TixLQUFPcVIsS0FDZjdELEVBQVF4SCxJQUFNcUwsS0FDZDdELEVBQVFoTixlQUFpQjZRLEtBQ3pCN0QsRUFBUXZILG1CQUFxQm9MLEtBQzdCN0QsRUFBUXJMLEtBQU9rUCxLQUNmN0QsRUFBUWpJLGdCQUFrQjhMLEtBQzFCN0QsRUFBUWhJLG9CQUFzQjZMLEtBRTlCN0QsRUFBUW5JLFVBQVksU0FBVW5GLEdBQVEsTUFBTyxFQUFHLEVBRWhEc04sRUFBUWllLFFBQVUsU0FBVXZyQixHQUN4QixNQUFNLElBQUl1QyxNQUFNLG1DQUNwQixFQUVBK0ssRUFBUWtlLElBQU0sV0FBYyxNQUFPLEdBQUksRUFDdkNsZSxFQUFRbWUsTUFBUSxTQUFVN1YsR0FDdEIsTUFBTSxJQUFJclQsTUFBTSxpQ0FDcEIsRUFDQStLLEVBQVFvZSxNQUFRLFdBQWEsT0FBTyxDQUFHLHVCQ3RIdkM5ckIsRUFBT0MsUUFBVTJoQixVQUNqQixJQUFJaUQsRUFBaUIsUUFDbkJFLEVBQTZCRixFQUFlRSwyQkFDNUNnSCxFQUF3QmxILEVBQWVrSCxzQkFDdkNDLEVBQXFDbkgsRUFBZW1ILG1DQUNwREMsRUFBOEJwSCxFQUFlb0gsNEJBQzNDdEssRUFBUyxFQUFRLEtBRXJCLFNBQVN1SyxlQUFlL21CLEVBQUlxRyxHQUMxQixJQUFJMmdCLEVBQUtwc0IsS0FBS3FzQixnQkFDZEQsRUFBR0UsY0FBZSxFQUNsQixJQUFJbmIsRUFBS2liLEVBQUdHLFFBQ1osR0FBVyxPQUFQcGIsRUFDRixPQUFPblIsS0FBS3NDLEtBQUssUUFBUyxJQUFJMHBCLEdBRWhDSSxFQUFHSSxXQUFhLEtBQ2hCSixFQUFHRyxRQUFVLEtBQ0QsTUFBUjlnQixHQUVGekwsS0FBS3dDLEtBQUtpSixHQUNaMEYsRUFBRy9MLEdBQ0gsSUFBSXFuQixFQUFLenNCLEtBQUtzUyxlQUNkbWEsRUFBR2pILFNBQVUsR0FDVGlILEVBQUcvRyxjQUFnQitHLEVBQUdocUIsT0FBU2dxQixFQUFHbEwsZ0JBQ3BDdmhCLEtBQUtxbUIsTUFBTW9HLEVBQUdsTCxjQUVsQixDQUNBLFNBQVNNLFVBQVV6VSxHQUNqQixLQUFNcE4sZ0JBQWdCNmhCLFdBQVksT0FBTyxJQUFJQSxVQUFVelUsR0FDdkR3VSxFQUFPeGlCLEtBQUtZLEtBQU1vTixHQUNsQnBOLEtBQUtxc0IsZ0JBQWtCLENBQ3JCRixlQUFnQkEsZUFBZTFvQixLQUFLekQsTUFDcEMwc0IsZUFBZSxFQUNmSixjQUFjLEVBQ2RDLFFBQVMsS0FDVEMsV0FBWSxLQUNaRyxjQUFlLE1BSWpCM3NCLEtBQUtzUyxlQUFlb1QsY0FBZSxFQUtuQzFsQixLQUFLc1MsZUFBZW1ULE1BQU8sRUFDdkJyWSxJQUMrQixtQkFBdEJBLEVBQVF3ZixZQUEwQjVzQixLQUFLbXFCLFdBQWEvYyxFQUFRd2YsV0FDMUMsbUJBQWxCeGYsRUFBUXlmLFFBQXNCN3NCLEtBQUs4c0IsT0FBUzFmLEVBQVF5ZixRQUlqRTdzQixLQUFLbUIsR0FBRyxZQUFhNHJCLFVBQ3ZCLENBQ0EsU0FBU0EsWUFDUCxJQUFJcEQsRUFBUTNwQixLQUNlLG1CQUFoQkEsS0FBSzhzQixRQUEwQjlzQixLQUFLc1MsZUFBZTZRLFVBSzVENkosS0FBS2h0QixLQUFNLEtBQU0sTUFKakJBLEtBQUs4c0IsUUFBTyxTQUFVMW5CLEVBQUlxRyxHQUN4QnVoQixLQUFLckQsRUFBT3ZrQixFQUFJcUcsRUFDbEIsR0FJSixDQWlEQSxTQUFTdWhCLEtBQUszZixFQUFRakksRUFBSXFHLEdBQ3hCLEdBQUlyRyxFQUFJLE9BQU9pSSxFQUFPL0ssS0FBSyxRQUFTOEMsR0FRcEMsR0FQWSxNQUFScUcsR0FFRjRCLEVBQU83SyxLQUFLaUosR0FLVjRCLEVBQU84RSxlQUFlMVAsT0FBUSxNQUFNLElBQUl5cEIsRUFDNUMsR0FBSTdlLEVBQU9nZixnQkFBZ0JDLGFBQWMsTUFBTSxJQUFJTCxFQUNuRCxPQUFPNWUsRUFBTzdLLEtBQUssS0FDckIsQ0FySEEsRUFBUSxJQUFSLENBQW9CcWYsVUFBV0QsR0F5RC9CQyxVQUFVMWlCLFVBQVVxRCxLQUFPLFNBQVU0ZixFQUFPL1QsR0FFMUMsT0FEQXJPLEtBQUtxc0IsZ0JBQWdCSyxlQUFnQixFQUM5QjlLLEVBQU96aUIsVUFBVXFELEtBQUtwRCxLQUFLWSxLQUFNb2lCLEVBQU8vVCxFQUNqRCxFQVlBd1QsVUFBVTFpQixVQUFVZ3JCLFdBQWEsU0FBVS9ILEVBQU8vVCxFQUFVOEMsR0FDMURBLEVBQUcsSUFBSTZULEVBQTJCLGdCQUNwQyxFQUNBbkQsVUFBVTFpQixVQUFVOHRCLE9BQVMsU0FBVTdLLEVBQU8vVCxFQUFVOEMsR0FDdEQsSUFBSWliLEVBQUtwc0IsS0FBS3FzQixnQkFJZCxHQUhBRCxFQUFHRyxRQUFVcGIsRUFDYmliLEVBQUdJLFdBQWFwSyxFQUNoQmdLLEVBQUdPLGNBQWdCdGUsR0FDZCtkLEVBQUdFLGFBQWMsQ0FDcEIsSUFBSUcsRUFBS3pzQixLQUFLc1MsZ0JBQ1Y4WixFQUFHTSxlQUFpQkQsRUFBRy9HLGNBQWdCK0csRUFBR2hxQixPQUFTZ3FCLEVBQUdsTCxnQkFBZXZoQixLQUFLcW1CLE1BQU1vRyxFQUFHbEwsY0FDekYsQ0FDRixFQUtBTSxVQUFVMWlCLFVBQVVrbkIsTUFBUSxTQUFVamlCLEdBQ3BDLElBQUlnb0IsRUFBS3BzQixLQUFLcXNCLGdCQUNRLE9BQWxCRCxFQUFHSSxZQUF3QkosRUFBR0UsYUFNaENGLEVBQUdNLGVBQWdCLEdBTG5CTixFQUFHRSxjQUFlLEVBQ2xCdHNCLEtBQUttcUIsV0FBV2lDLEVBQUdJLFdBQVlKLEVBQUdPLGNBQWVQLEVBQUdELGdCQU14RCxFQUNBdEssVUFBVTFpQixVQUFVbW5CLFNBQVcsU0FBVTVsQixFQUFLeVEsR0FDNUN5USxFQUFPemlCLFVBQVVtbkIsU0FBU2xuQixLQUFLWSxLQUFNVSxHQUFLLFNBQVV3c0IsR0FDbEQvYixFQUFHK2IsRUFDTCxHQUNGLHVCQ3hIQSxTQUFTQyxPQUFROXNCLEdBRWYsSUFDRSxJQUFLLEVBQUF3SyxFQUFPdWlCLGFBQWMsT0FBTyxDQUNuQyxDQUFFLE1BQU9DLEdBQ1AsT0FBTyxDQUNULENBQ0EsSUFBSXJYLEVBQU0sRUFBQW5MLEVBQU91aUIsYUFBYS9zQixHQUM5QixPQUFJLE1BQVEyVixHQUN5QixTQUE5Qm5ULE9BQU9tVCxHQUFLckgsYUFDckIsQ0E3REExTyxFQUFPQyxRQW9CUCxTQUFTb3RCLFVBQVd2TSxFQUFJL1ksR0FDdEIsR0FBSW1sQixPQUFPLGlCQUNULE9BQU9wTSxFQUdULElBQUlyZSxHQUFTLEVBZWIsT0FkQSxTQUFTNnFCLGFBQ1AsSUFBSzdxQixFQUFRLENBQ1gsR0FBSXlxQixPQUFPLG9CQUNULE1BQU0sSUFBSXZxQixNQUFNb0YsR0FDUG1sQixPQUFPLG9CQUNoQmxxQixRQUFRdXFCLE1BQU14bEIsR0FFZC9FLFFBQVFDLEtBQUs4RSxHQUVmdEYsR0FBUyxDQUNYLENBQ0EsT0FBT3FlLEVBQUdqaUIsTUFBTWtCLEtBQU1jLFVBQ3hCLENBR0YsbUJDOUM2QixtQkFBbEJ4QixPQUFPOEMsT0FFaEJuQyxFQUFPQyxRQUFVLFNBQVMySSxTQUFTNGtCLEVBQU1DLEdBQ25DQSxJQUNGRCxFQUFLRSxPQUFTRCxFQUNkRCxFQUFLdHVCLFVBQVlHLE9BQU84QyxPQUFPc3JCLEVBQVV2dUIsVUFBVyxDQUNsRG1JLFlBQWEsQ0FDWHpILE1BQU80dEIsRUFDUDlvQixZQUFZLEVBQ1pvTixVQUFVLEVBQ1Z5TixjQUFjLEtBSXRCLEVBR0F2ZixFQUFPQyxRQUFVLFNBQVMySSxTQUFTNGtCLEVBQU1DLEdBQ3ZDLEdBQUlBLEVBQVcsQ0FDYkQsRUFBS0UsT0FBU0QsRUFDZCxJQUFJRSxTQUFXLFdBQWEsRUFDNUJBLFNBQVN6dUIsVUFBWXV1QixFQUFVdnVCLFVBQy9Cc3VCLEVBQUt0dUIsVUFBWSxJQUFJeXVCLFNBQ3JCSCxFQUFLdHVCLFVBQVVtSSxZQUFjbW1CLENBQy9CLENBQ0YsMkJDeUJFN0wsV0FYSixTQUFTaU0sY0FBY3RxQixHQUNyQixJQUFJb21CLEVBQVEzcEIsS0FDWkEsS0FBS3VuQixLQUFPLEtBQ1p2bkIsS0FBSzh0QixNQUFRLEtBQ2I5dEIsS0FBSyt0QixPQUFTLFlBNmlCaEIsU0FBU0MsZUFBZUMsRUFBUzFxQixFQUFPN0MsR0FDdEMsSUFBSW90QixFQUFRRyxFQUFRSCxNQUNwQkcsRUFBUUgsTUFBUSxLQUNoQixLQUFPQSxHQUFPLENBQ1osSUFBSTNjLEVBQUsyYyxFQUFNbmMsU0FDZnBPLEVBQU0ycUIsWUFDTi9jLEVBQUd6USxHQUNIb3RCLEVBQVFBLEVBQU12RyxJQUNoQixDQUdBaGtCLEVBQU00cUIsbUJBQW1CNUcsS0FBTzBHLENBQ2xDLENBeGpCSUQsQ0FBZXJFLEVBQU9wbUIsRUFDeEIsQ0FDRixDQW5CQXRELEVBQU9DLFFBQVV5aEIsU0EwQmpCQSxTQUFTeU0sY0FBZ0JBLGNBR3pCLElBQUlDLEVBQWUsQ0FDakJmLFVBQVcsRUFBUSxNQUtqQjloQixFQUFTLEVBQVEsS0FHakJ6QyxFQUFTLGNBQ1R1YixRQUFtQyxJQUFYLEVBQUF6WixFQUF5QixFQUFBQSxFQUEyQixvQkFBWDBaLE9BQXlCQSxPQUF5QixvQkFBVDlWLEtBQXVCQSxLQUFPLENBQUMsR0FBR2lGLFlBQWMsV0FBYSxFQU8zSyxJQThJSTRhLEVBOUlBekosRUFBYyxFQUFRLEtBRXhCM0QsRUFEYSxFQUFRLEtBQ09BLGlCQUMxQjRELEVBQWlCLFFBQ25CaEYsRUFBdUJnRixFQUFlaEYscUJBQ3RDa0YsRUFBNkJGLEVBQWVFLDJCQUM1Q2dILEVBQXdCbEgsRUFBZWtILHNCQUN2Q3VDLEVBQXlCekosRUFBZXlKLHVCQUN4Q0MsRUFBdUIxSixFQUFlMEoscUJBQ3RDQyxFQUF5QjNKLEVBQWUySix1QkFDeENDLEVBQTZCNUosRUFBZTRKLDJCQUM1Q0MsRUFBdUI3SixFQUFlNkoscUJBQ3BDekosRUFBaUJMLEVBQVlLLGVBRWpDLFNBQVMwSixNQUFPLENBQ2hCLFNBQVNSLGNBQWNoaEIsRUFBU0MsRUFBUStULEdBQ3RDUSxFQUFTQSxHQUFVLEVBQVEsS0FDM0J4VSxFQUFVQSxHQUFXLENBQUMsRUFPRSxrQkFBYmdVLElBQXdCQSxFQUFXL1QsYUFBa0J1VSxHQUloRTVoQixLQUFLd2hCLGFBQWVwVSxFQUFRb1UsV0FDeEJKLElBQVVwaEIsS0FBS3doQixXQUFheGhCLEtBQUt3aEIsY0FBZ0JwVSxFQUFReWhCLG9CQUs3RDd1QixLQUFLdWhCLGNBQWdCTCxFQUFpQmxoQixLQUFNb04sRUFBUyx3QkFBeUJnVSxHQUc5RXBoQixLQUFLOHVCLGFBQWMsRUFHbkI5dUIsS0FBS21wQixXQUFZLEVBRWpCbnBCLEtBQUsrdUIsUUFBUyxFQUVkL3VCLEtBQUsyUyxPQUFRLEVBRWIzUyxLQUFLb1MsVUFBVyxFQUdoQnBTLEtBQUttakIsV0FBWSxFQUtqQixJQUFJNkwsR0FBcUMsSUFBMUI1aEIsRUFBUTZoQixjQUN2Qmp2QixLQUFLaXZCLGVBQWlCRCxFQUt0Qmh2QixLQUFLaW1CLGdCQUFrQjdZLEVBQVE2WSxpQkFBbUIsT0FLbERqbUIsS0FBS3lDLE9BQVMsRUFHZHpDLEtBQUtrdkIsU0FBVSxFQUdmbHZCLEtBQUttdkIsT0FBUyxFQU1kbnZCLEtBQUt5bEIsTUFBTyxFQUtaemxCLEtBQUtvdkIsa0JBQW1CLEVBR3hCcHZCLEtBQUtxdkIsUUFBVSxTQUFVanFCLElBc1EzQixTQUFTaXFCLFFBQVFoaUIsRUFBUWpJLEdBQ3ZCLElBQUk3QixFQUFROEosRUFBTzhFLGVBQ2ZzVCxFQUFPbGlCLEVBQU1raUIsS0FDYnRVLEVBQUs1TixFQUFNZ3BCLFFBQ2YsR0FBa0IsbUJBQVBwYixFQUFtQixNQUFNLElBQUk2YSxFQUV4QyxHQVpGLFNBQVNzRCxtQkFBbUIvckIsR0FDMUJBLEVBQU0yckIsU0FBVSxFQUNoQjNyQixFQUFNZ3BCLFFBQVUsS0FDaEJocEIsRUFBTWQsUUFBVWMsRUFBTWdzQixTQUN0QmhzQixFQUFNZ3NCLFNBQVcsQ0FDbkIsQ0FNRUQsQ0FBbUIvckIsR0FDZjZCLEdBbENOLFNBQVNvcUIsYUFBYW5pQixFQUFROUosRUFBT2tpQixFQUFNcmdCLEVBQUkrTCxLQUMzQzVOLEVBQU0ycUIsVUFDSnpJLEdBR0Y5WCxFQUFRQyxTQUFTdUQsRUFBSS9MLEdBR3JCdUksRUFBUUMsU0FBUzZoQixZQUFhcGlCLEVBQVE5SixHQUN0QzhKLEVBQU84RSxlQUFldWQsY0FBZSxFQUNyQ3hLLEVBQWU3WCxFQUFRakksS0FJdkIrTCxFQUFHL0wsR0FDSGlJLEVBQU84RSxlQUFldWQsY0FBZSxFQUNyQ3hLLEVBQWU3WCxFQUFRakksR0FHdkJxcUIsWUFBWXBpQixFQUFROUosR0FFeEIsQ0FhVWlzQixDQUFhbmlCLEVBQVE5SixFQUFPa2lCLEVBQU1yZ0IsRUFBSStMLE9BQVMsQ0FFckQsSUFBSWlCLEVBQVd1ZCxXQUFXcHNCLElBQVU4SixFQUFPOFYsVUFDdEMvUSxHQUFhN08sRUFBTTRyQixRQUFXNXJCLEVBQU02ckIsbUJBQW9CN3JCLEVBQU1xc0IsaUJBQ2pFQyxZQUFZeGlCLEVBQVE5SixHQUVsQmtpQixFQUNGOVgsRUFBUUMsU0FBU2tpQixXQUFZemlCLEVBQVE5SixFQUFPNk8sRUFBVWpCLEdBRXREMmUsV0FBV3ppQixFQUFROUosRUFBTzZPLEVBQVVqQixFQUV4QyxDQUNGLENBdlJJa2UsQ0FBUWhpQixFQUFRakksRUFDbEIsRUFHQXBGLEtBQUt1c0IsUUFBVSxLQUdmdnNCLEtBQUt1dkIsU0FBVyxFQUNoQnZ2QixLQUFLNHZCLGdCQUFrQixLQUN2QjV2QixLQUFLK3ZCLG9CQUFzQixLQUkzQi92QixLQUFLa3VCLFVBQVksRUFJakJsdUIsS0FBS2d3QixhQUFjLEVBR25CaHdCLEtBQUswdkIsY0FBZSxFQUdwQjF2QixLQUFLK2xCLFdBQWtDLElBQXRCM1ksRUFBUTJZLFVBR3pCL2xCLEtBQUtnbUIsY0FBZ0I1WSxFQUFRNFksWUFHN0JobUIsS0FBS2l3QixxQkFBdUIsRUFJNUJqd0IsS0FBS211QixtQkFBcUIsSUFBSU4sY0FBYzd0QixLQUM5QyxDQXFDQSxTQUFTMmhCLFNBQVN2VSxHQWFoQixJQUFJZ1UsRUFBV3BoQixnQkFaZjRoQixFQUFTQSxHQUFVLEVBQVEsTUFhM0IsSUFBS1IsSUFBYWtOLEVBQWdCbHZCLEtBQUt1aUIsU0FBVTNoQixNQUFPLE9BQU8sSUFBSTJoQixTQUFTdlUsR0FDNUVwTixLQUFLbVMsZUFBaUIsSUFBSWljLGNBQWNoaEIsRUFBU3BOLEtBQU1vaEIsR0FHdkRwaEIsS0FBSytSLFVBQVcsRUFDWjNFLElBQzJCLG1CQUFsQkEsRUFBUXNDLFFBQXNCMVAsS0FBS2l0QixPQUFTN2YsRUFBUXNDLE9BQ2pDLG1CQUFuQnRDLEVBQVE4aUIsU0FBdUJsd0IsS0FBS213QixRQUFVL2lCLEVBQVE4aUIsUUFDbEMsbUJBQXBCOWlCLEVBQVFzVixVQUF3QjFpQixLQUFLc21CLFNBQVdsWixFQUFRc1YsU0FDdEMsbUJBQWxCdFYsRUFBUWdqQixRQUFzQnB3QixLQUFLcXdCLE9BQVNqakIsRUFBUWdqQixRQUVqRTVrQixFQUFPcE0sS0FBS1ksS0FDZCxDQWdJQSxTQUFTc3dCLFFBQVFqakIsRUFBUTlKLEVBQU8yc0IsRUFBUTNxQixFQUFLNmMsRUFBTy9ULEVBQVU4QyxHQUM1RDVOLEVBQU1nc0IsU0FBV2hxQixFQUNqQmhDLEVBQU1ncEIsUUFBVXBiLEVBQ2hCNU4sRUFBTTJyQixTQUFVLEVBQ2hCM3JCLEVBQU1raUIsTUFBTyxFQUNUbGlCLEVBQU00ZixVQUFXNWYsRUFBTThyQixRQUFRLElBQUliLEVBQXFCLFVBQW1CMEIsRUFBUTdpQixFQUFPOGlCLFFBQVEvTixFQUFPN2UsRUFBTThyQixTQUFjaGlCLEVBQU80ZixPQUFPN0ssRUFBTy9ULEVBQVU5SyxFQUFNOHJCLFNBQ3RLOXJCLEVBQU1raUIsTUFBTyxDQUNmLENBZ0RBLFNBQVNxSyxXQUFXemlCLEVBQVE5SixFQUFPNk8sRUFBVWpCLEdBQ3RDaUIsR0FTUCxTQUFTbWUsYUFBYWxqQixFQUFROUosR0FDUCxJQUFqQkEsRUFBTWQsUUFBZ0JjLEVBQU00bEIsWUFDOUI1bEIsRUFBTTRsQixXQUFZLEVBQ2xCOWIsRUFBTy9LLEtBQUssU0FFaEIsQ0FkaUJpdUIsQ0FBYWxqQixFQUFROUosR0FDcENBLEVBQU0ycUIsWUFDTi9jLElBQ0FzZSxZQUFZcGlCLEVBQVE5SixFQUN0QixDQWFBLFNBQVNzc0IsWUFBWXhpQixFQUFROUosR0FDM0JBLEVBQU02ckIsa0JBQW1CLEVBQ3pCLElBQUl0QixFQUFRdnFCLEVBQU1xc0IsZ0JBQ2xCLEdBQUl2aUIsRUFBTzhpQixTQUFXckMsR0FBU0EsRUFBTXZHLEtBQU0sQ0FFekMsSUFBSWdCLEVBQUlobEIsRUFBTTBzQixxQkFDVjFiLEVBQVMsSUFBSXZRLE1BQU11a0IsR0FDbkJpSSxFQUFTanRCLEVBQU00cUIsbUJBQ25CcUMsRUFBTzFDLE1BQVFBLEVBR2YsSUFGQSxJQUFJaHJCLEVBQVEsRUFDUjJ0QixHQUFhLEVBQ1YzQyxHQUNMdlosRUFBT3pSLEdBQVNnckIsRUFDWEEsRUFBTTRDLFFBQU9ELEdBQWEsR0FDL0IzQyxFQUFRQSxFQUFNdkcsS0FDZHprQixHQUFTLEVBRVh5UixFQUFPa2MsV0FBYUEsRUFDcEJILFFBQVFqakIsRUFBUTlKLEdBQU8sRUFBTUEsRUFBTWQsT0FBUThSLEVBQVEsR0FBSWljLEVBQU96QyxRQUk5RHhxQixFQUFNMnFCLFlBQ04zcUIsRUFBTXdzQixvQkFBc0IsS0FDeEJTLEVBQU9qSixNQUNUaGtCLEVBQU00cUIsbUJBQXFCcUMsRUFBT2pKLEtBQ2xDaUosRUFBT2pKLEtBQU8sTUFFZGhrQixFQUFNNHFCLG1CQUFxQixJQUFJTixjQUFjdHFCLEdBRS9DQSxFQUFNMHNCLHFCQUF1QixDQUMvQixLQUFPLENBRUwsS0FBT25DLEdBQU8sQ0FDWixJQUFJMUwsRUFBUTBMLEVBQU0xTCxNQUNkL1QsRUFBV3lmLEVBQU16ZixTQUNqQjhDLEVBQUsyYyxFQUFNbmMsU0FTZixHQVBBMmUsUUFBUWpqQixFQUFROUosR0FBTyxFQURiQSxFQUFNaWUsV0FBYSxFQUFJWSxFQUFNM2YsT0FDSjJmLEVBQU8vVCxFQUFVOEMsR0FDcEQyYyxFQUFRQSxFQUFNdkcsS0FDZGhrQixFQUFNMHNCLHVCQUtGMXNCLEVBQU0yckIsUUFDUixLQUVKLENBQ2MsT0FBVnBCLElBQWdCdnFCLEVBQU13c0Isb0JBQXNCLEtBQ2xELENBQ0F4c0IsRUFBTXFzQixnQkFBa0I5QixFQUN4QnZxQixFQUFNNnJCLGtCQUFtQixDQUMzQixDQW9DQSxTQUFTTyxXQUFXcHNCLEdBQ2xCLE9BQU9BLEVBQU13ckIsUUFBMkIsSUFBakJ4ckIsRUFBTWQsUUFBMEMsT0FBMUJjLEVBQU1xc0Isa0JBQTZCcnNCLEVBQU02TyxXQUFhN08sRUFBTTJyQixPQUMzRyxDQUNBLFNBQVN5QixVQUFVdGpCLEVBQVE5SixHQUN6QjhKLEVBQU9nakIsUUFBTyxTQUFVM3ZCLEdBQ3RCNkMsRUFBTTJxQixZQUNGeHRCLEdBQ0Z3a0IsRUFBZTdYLEVBQVEzTSxHQUV6QjZDLEVBQU15c0IsYUFBYyxFQUNwQjNpQixFQUFPL0ssS0FBSyxhQUNabXRCLFlBQVlwaUIsRUFBUTlKLEVBQ3RCLEdBQ0YsQ0FhQSxTQUFTa3NCLFlBQVlwaUIsRUFBUTlKLEdBQzNCLElBQUlxdEIsRUFBT2pCLFdBQVdwc0IsR0FDdEIsR0FBSXF0QixJQWROLFNBQVM3RCxVQUFVMWYsRUFBUTlKLEdBQ3BCQSxFQUFNeXNCLGFBQWdCenNCLEVBQU11ckIsY0FDRixtQkFBbEJ6aEIsRUFBT2dqQixRQUEwQjlzQixFQUFNNGYsV0FLaEQ1ZixFQUFNeXNCLGFBQWMsRUFDcEIzaUIsRUFBTy9LLEtBQUssZUFMWmlCLEVBQU0ycUIsWUFDTjNxQixFQUFNdXJCLGFBQWMsRUFDcEJuaEIsRUFBUUMsU0FBUytpQixVQUFXdGpCLEVBQVE5SixJQU0xQyxDQUlJd3BCLENBQVUxZixFQUFROUosR0FDTSxJQUFwQkEsRUFBTTJxQixZQUNSM3FCLEVBQU02TyxVQUFXLEVBQ2pCL0UsRUFBTy9LLEtBQUssVUFDUmlCLEVBQU15aUIsY0FBYSxDQUdyQixJQUFJNkssRUFBU3hqQixFQUFPaUYsaUJBQ2Z1ZSxHQUFVQSxFQUFPN0ssYUFBZTZLLEVBQU90ZSxhQUMxQ2xGLEVBQU9xVixTQUVYLENBR0osT0FBT2tPLENBQ1QsQ0F4ZkEsRUFBUSxJQUFSLENBQW9CalAsU0FBVW5XLEdBNEc5QjRpQixjQUFjanZCLFVBQVUrakIsVUFBWSxTQUFTQSxZQUczQyxJQUZBLElBQUk0TixFQUFVOXdCLEtBQUs0dkIsZ0JBQ2YvaEIsRUFBTSxHQUNIaWpCLEdBQ0xqakIsRUFBSXJMLEtBQUtzdUIsR0FDVEEsRUFBVUEsRUFBUXZKLEtBRXBCLE9BQU8xWixDQUNULEVBQ0EsV0FDRSxJQUNFdk8sT0FBT29GLGVBQWUwcEIsY0FBY2p2QixVQUFXLFNBQVUsQ0FDdkR5RixJQUFLeXBCLEVBQWFmLFdBQVUsU0FBU3lELDRCQUNuQyxPQUFPL3dCLEtBQUtrakIsV0FDZCxHQUFHLDZFQUFtRixZQUUxRixDQUFFLE1BQU9tSyxHQUFJLENBQ2QsQ0FSRCxHQWFzQixtQkFBWGphLFFBQXlCQSxPQUFPNGQsYUFBaUUsbUJBQTNDOXhCLFNBQVNDLFVBQVVpVSxPQUFPNGQsY0FDekYxQyxFQUFrQnB2QixTQUFTQyxVQUFVaVUsT0FBTzRkLGFBQzVDMXhCLE9BQU9vRixlQUFlaWQsU0FBVXZPLE9BQU80ZCxZQUFhLENBQ2xEbnhCLE1BQU8sU0FBU0EsTUFBTW94QixHQUNwQixRQUFJM0MsRUFBZ0JsdkIsS0FBS1ksS0FBTWl4QixJQUMzQmp4QixPQUFTMmhCLFdBQ05zUCxHQUFVQSxFQUFPOWUsMEJBQTBCaWMsY0FDcEQsS0FHRkUsRUFBa0IsU0FBU0EsZ0JBQWdCMkMsR0FDekMsT0FBT0EsYUFBa0JqeEIsSUFDM0IsRUErQkYyaEIsU0FBU3hpQixVQUFVNmlCLEtBQU8sV0FDeEJrRCxFQUFlbGxCLEtBQU0sSUFBSXV1QixFQUMzQixFQXlCQTVNLFNBQVN4aUIsVUFBVXVRLE1BQVEsU0FBVTBTLEVBQU8vVCxFQUFVOEMsR0FDcEQsSUFBSTVOLEVBQVF2RCxLQUFLbVMsZUFDYnBPLEdBQU0sRUFDTjJzQixHQUFTbnRCLEVBQU1pZSxZQTNOckIsU0FBU3NGLGNBQWN0YSxHQUNyQixPQUFPekQsRUFBTzhMLFNBQVNySSxJQUFRQSxhQUFlOFgsQ0FDaEQsQ0F5Tm1Dd0MsQ0FBYzFFLEdBYy9DLE9BYklzTyxJQUFVM25CLEVBQU84TCxTQUFTdU4sS0FDNUJBLEVBaE9KLFNBQVMyRSxvQkFBb0IzRSxHQUMzQixPQUFPclosRUFBTzhLLEtBQUt1TyxFQUNyQixDQThOWTJFLENBQW9CM0UsSUFFTixtQkFBYi9ULElBQ1Q4QyxFQUFLOUMsRUFDTEEsRUFBVyxNQUVUcWlCLEVBQU9yaUIsRUFBVyxTQUFtQkEsSUFBVUEsRUFBVzlLLEVBQU0waUIsaUJBQ2xELG1CQUFQOVUsSUFBbUJBLEVBQUt5ZCxLQUMvQnJyQixFQUFNd3JCLE9BckNaLFNBQVNtQyxjQUFjN2pCLEVBQVE4RCxHQUM3QixJQUFJL0wsRUFBSyxJQUFJc3BCLEVBRWJ4SixFQUFlN1gsRUFBUWpJLEdBQ3ZCdUksRUFBUUMsU0FBU3VELEVBQUkvTCxFQUN2QixDQWdDb0I4ckIsQ0FBY2x4QixLQUFNbVIsSUFBYXVmLEdBM0JyRCxTQUFTUyxXQUFXOWpCLEVBQVE5SixFQUFPNmUsRUFBT2pSLEdBQ3hDLElBQUkvTCxFQU1KLE9BTGMsT0FBVmdkLEVBQ0ZoZCxFQUFLLElBQUlxcEIsRUFDaUIsaUJBQVZyTSxHQUF1QjdlLEVBQU1pZSxhQUM3Q3BjLEVBQUssSUFBSTBhLEVBQXFCLFFBQVMsQ0FBQyxTQUFVLFVBQVdzQyxLQUUzRGhkLElBQ0Y4ZixFQUFlN1gsRUFBUWpJLEdBQ3ZCdUksRUFBUUMsU0FBU3VELEVBQUkvTCxJQUNkLEVBR1gsQ0FjOEQrckIsQ0FBV254QixLQUFNdUQsRUFBTzZlLEVBQU9qUixNQUN6RjVOLEVBQU0ycUIsWUFDTm5xQixFQWlESixTQUFTcXRCLGNBQWMvakIsRUFBUTlKLEVBQU9tdEIsRUFBT3RPLEVBQU8vVCxFQUFVOEMsR0FDNUQsSUFBS3VmLEVBQU8sQ0FDVixJQUFJVyxFQXJCUixTQUFTQyxZQUFZL3RCLEVBQU82ZSxFQUFPL1QsR0FDNUI5SyxFQUFNaWUsYUFBc0MsSUFBeEJqZSxFQUFNMHJCLGVBQTRDLGlCQUFWN00sSUFDL0RBLEVBQVFyWixFQUFPOEssS0FBS3VPLEVBQU8vVCxJQUU3QixPQUFPK1QsQ0FDVCxDQWdCbUJrUCxDQUFZL3RCLEVBQU82ZSxFQUFPL1QsR0FDckMrVCxJQUFVaVAsSUFDWlgsR0FBUSxFQUNScmlCLEVBQVcsU0FDWCtULEVBQVFpUCxFQUVaLENBQ0EsSUFBSTlyQixFQUFNaEMsRUFBTWllLFdBQWEsRUFBSVksRUFBTTNmLE9BQ3ZDYyxFQUFNZCxRQUFVOEMsRUFDaEIsSUFBSXhCLEVBQU1SLEVBQU1kLE9BQVNjLEVBQU1nZSxjQUUxQnhkLElBQUtSLEVBQU00bEIsV0FBWSxHQUM1QixHQUFJNWxCLEVBQU0yckIsU0FBVzNyQixFQUFNNHJCLE9BQVEsQ0FDakMsSUFBSXBoQixFQUFPeEssRUFBTXdzQixvQkFDakJ4c0IsRUFBTXdzQixvQkFBc0IsQ0FDMUIzTixNQUFPQSxFQUNQL1QsU0FBVUEsRUFDVnFpQixNQUFPQSxFQUNQL2UsU0FBVVIsRUFDVm9XLEtBQU0sTUFFSnhaLEVBQ0ZBLEVBQUt3WixLQUFPaGtCLEVBQU13c0Isb0JBRWxCeHNCLEVBQU1xc0IsZ0JBQWtCcnNCLEVBQU13c0Isb0JBRWhDeHNCLEVBQU0wc0Isc0JBQXdCLENBQ2hDLE1BQ0VLLFFBQVFqakIsRUFBUTlKLEdBQU8sRUFBT2dDLEVBQUs2YyxFQUFPL1QsRUFBVThDLEdBRXRELE9BQU9wTixDQUNULENBbEZVcXRCLENBQWNweEIsS0FBTXVELEVBQU9tdEIsRUFBT3RPLEVBQU8vVCxFQUFVOEMsSUFFcERwTixDQUNULEVBQ0E0ZCxTQUFTeGlCLFVBQVVveUIsS0FBTyxXQUN4QnZ4QixLQUFLbVMsZUFBZWdkLFFBQ3RCLEVBQ0F4TixTQUFTeGlCLFVBQVVxeUIsT0FBUyxXQUMxQixJQUFJanVCLEVBQVF2RCxLQUFLbVMsZUFDYjVPLEVBQU00ckIsU0FDUjVyQixFQUFNNHJCLFNBQ0Q1ckIsRUFBTTJyQixTQUFZM3JCLEVBQU00ckIsUUFBVzVyQixFQUFNNnJCLG1CQUFvQjdyQixFQUFNcXNCLGlCQUFpQkMsWUFBWTd2QixLQUFNdUQsR0FFL0csRUFDQW9lLFNBQVN4aUIsVUFBVXN5QixtQkFBcUIsU0FBU0EsbUJBQW1CcGpCLEdBR2xFLEdBRHdCLGlCQUFiQSxJQUF1QkEsRUFBV0EsRUFBU00saUJBQ2hELENBQUMsTUFBTyxPQUFRLFFBQVMsUUFBUyxTQUFVLFNBQVUsT0FBUSxRQUFTLFVBQVcsV0FBWSxPQUFPL0YsU0FBU3lGLEVBQVcsSUFBSU0sZ0JBQWtCLEdBQUksTUFBTSxJQUFJZ2dCLEVBQXFCdGdCLEdBRXhMLE9BREFyTyxLQUFLbVMsZUFBZThULGdCQUFrQjVYLEVBQy9Cck8sSUFDVCxFQUNBVixPQUFPb0YsZUFBZWlkLFNBQVN4aUIsVUFBVyxpQkFBa0IsQ0FJMUR3RixZQUFZLEVBQ1pDLElBQUssU0FBU0EsTUFDWixPQUFPNUUsS0FBS21TLGdCQUFrQm5TLEtBQUttUyxlQUFlK1EsV0FDcEQsSUFRRjVqQixPQUFPb0YsZUFBZWlkLFNBQVN4aUIsVUFBVyx3QkFBeUIsQ0FJakV3RixZQUFZLEVBQ1pDLElBQUssU0FBU0EsTUFDWixPQUFPNUUsS0FBS21TLGVBQWVvUCxhQUM3QixJQXVLRkksU0FBU3hpQixVQUFVOHRCLE9BQVMsU0FBVTdLLEVBQU8vVCxFQUFVOEMsR0FDckRBLEVBQUcsSUFBSTZULEVBQTJCLFlBQ3BDLEVBQ0FyRCxTQUFTeGlCLFVBQVVneEIsUUFBVSxLQUM3QnhPLFNBQVN4aUIsVUFBVTZOLElBQU0sU0FBVW9WLEVBQU8vVCxFQUFVOEMsR0FDbEQsSUFBSTVOLEVBQVF2RCxLQUFLbVMsZUFtQmpCLE1BbEJxQixtQkFBVmlRLEdBQ1RqUixFQUFLaVIsRUFDTEEsRUFBUSxLQUNSL1QsRUFBVyxNQUNrQixtQkFBYkEsSUFDaEI4QyxFQUFLOUMsRUFDTEEsRUFBVyxNQUVUK1QsU0FBdUNwaUIsS0FBSzBQLE1BQU0wUyxFQUFPL1QsR0FHekQ5SyxFQUFNNHJCLFNBQ1I1ckIsRUFBTTRyQixPQUFTLEVBQ2ZudkIsS0FBS3d4QixVQUlGanVCLEVBQU13ckIsUUF5RGIsU0FBUzJDLFlBQVlya0IsRUFBUTlKLEVBQU80TixHQUNsQzVOLEVBQU13ckIsUUFBUyxFQUNmVSxZQUFZcGlCLEVBQVE5SixHQUNoQjROLElBQ0U1TixFQUFNNk8sU0FBVXpFLEVBQVFDLFNBQVN1RCxHQUFTOUQsRUFBT2xOLEtBQUssU0FBVWdSLElBRXRFNU4sRUFBTW9QLE9BQVEsRUFDZHRGLEVBQU8wRSxVQUFXLENBQ3BCLENBakVxQjJmLENBQVkxeEIsS0FBTXVELEVBQU80TixHQUNyQ25SLElBQ1QsRUFDQVYsT0FBT29GLGVBQWVpZCxTQUFTeGlCLFVBQVcsaUJBQWtCLENBSTFEd0YsWUFBWSxFQUNaQyxJQUFLLFNBQVNBLE1BQ1osT0FBTzVFLEtBQUttUyxlQUFlMVAsTUFDN0IsSUFxRUZuRCxPQUFPb0YsZUFBZWlkLFNBQVN4aUIsVUFBVyxZQUFhLENBSXJEd0YsWUFBWSxFQUNaQyxJQUFLLFNBQVNBLE1BQ1osWUFBNEJ2RCxJQUF4QnJCLEtBQUttUyxnQkFHRm5TLEtBQUttUyxlQUFlZ1IsU0FDN0IsRUFDQXRlLElBQUssU0FBU0EsSUFBSWhGLEdBR1hHLEtBQUttUyxpQkFNVm5TLEtBQUttUyxlQUFlZ1IsVUFBWXRqQixFQUNsQyxJQUVGOGhCLFNBQVN4aUIsVUFBVXVqQixRQUFVbUMsRUFBWW5DLFFBQ3pDZixTQUFTeGlCLFVBQVUrbkIsV0FBYXJDLEVBQVlzQyxVQUM1Q3hGLFNBQVN4aUIsVUFBVW1uQixTQUFXLFNBQVU1bEIsRUFBS3lRLEdBQzNDQSxFQUFHelEsRUFDTCx1QkN4bkJBLElBQUltSSxFQUFXLEVBQVEsS0FDbkJLLEVBQVMsRUFBUSxLQUNqQkosRUFBTyxFQUFRLEtBQ2ZDLEVBQVMsY0FFVEUsRUFBSSxJQUFJakYsTUFBTSxJQUVsQixTQUFTMnRCLFNBQ1AzeEIsS0FBS0QsT0FFTEMsS0FBS21KLEdBQUtGLEVBRVZILEVBQUsxSixLQUFLWSxLQUFNLEdBQUksR0FDdEIsQ0FFQTZJLEVBQVM4b0IsT0FBUXpvQixHQUVqQnlvQixPQUFPeHlCLFVBQVVZLEtBQU8sV0FVdEIsT0FUQUMsS0FBSzZKLEdBQUssV0FDVjdKLEtBQUs4SixHQUFLLFVBQ1Y5SixLQUFLK0osR0FBSyxVQUNWL0osS0FBS2dLLEdBQUssV0FDVmhLLEtBQUtpSyxHQUFLLFdBQ1ZqSyxLQUFLa0ssR0FBSyxXQUNWbEssS0FBS21LLEdBQUssV0FDVm5LLEtBQUtvSyxHQUFLLFdBRUhwSyxJQUNULEVBRUEyeEIsT0FBT3h5QixVQUFVZ00sTUFBUSxXQUN2QixJQUFJQyxFQUFJckMsRUFBT3NDLFlBQVksSUFVM0IsT0FSQUQsRUFBRUUsYUFBYXRMLEtBQUs2SixHQUFJLEdBQ3hCdUIsRUFBRUUsYUFBYXRMLEtBQUs4SixHQUFJLEdBQ3hCc0IsRUFBRUUsYUFBYXRMLEtBQUsrSixHQUFJLEdBQ3hCcUIsRUFBRUUsYUFBYXRMLEtBQUtnSyxHQUFJLElBQ3hCb0IsRUFBRUUsYUFBYXRMLEtBQUtpSyxHQUFJLElBQ3hCbUIsRUFBRUUsYUFBYXRMLEtBQUtrSyxHQUFJLElBQ3hCa0IsRUFBRUUsYUFBYXRMLEtBQUttSyxHQUFJLElBRWpCaUIsQ0FDVCxFQUVBbkwsRUFBT0MsUUFBVXl4Qiw0QkNsRGpCLFNBQVN0eUIsUUFBUTR4QixFQUFRVyxHQUFrQixJQUFJdHJCLEVBQU9oSCxPQUFPZ0gsS0FBSzJxQixHQUFTLEdBQUkzeEIsT0FBT0Msc0JBQXVCLENBQUUsSUFBSXN5QixFQUFVdnlCLE9BQU9DLHNCQUFzQjB4QixHQUFTVyxJQUFtQkMsRUFBVUEsRUFBUUMsUUFBTyxTQUFVeFMsR0FBTyxPQUFPaGdCLE9BQU95eUIseUJBQXlCZCxFQUFRM1IsR0FBSzNhLFVBQVksS0FBSzJCLEVBQUs5RCxLQUFLMUQsTUFBTXdILEVBQU11ckIsRUFBVSxDQUFFLE9BQU92ckIsQ0FBTSxDQUNwVixTQUFTMHJCLGNBQWNqekIsR0FBVSxJQUFLLElBQUlrRixFQUFJLEVBQUdBLEVBQUluRCxVQUFVMkIsT0FBUXdCLElBQUssQ0FBRSxJQUFJaWUsRUFBUyxNQUFRcGhCLFVBQVVtRCxHQUFLbkQsVUFBVW1ELEdBQUssQ0FBQyxFQUFHQSxFQUFJLEVBQUk1RSxRQUFRQyxPQUFPNGlCLElBQVMsR0FBSXpWLFNBQVEsU0FBVXBHLEdBQU80ckIsZ0JBQWdCbHpCLEVBQVFzSCxFQUFLNmIsRUFBTzdiLEdBQU8sSUFBSy9HLE9BQU80eUIsMEJBQTRCNXlCLE9BQU82eUIsaUJBQWlCcHpCLEVBQVFPLE9BQU80eUIsMEJBQTBCaFEsSUFBVzdpQixRQUFRQyxPQUFPNGlCLElBQVN6VixTQUFRLFNBQVVwRyxHQUFPL0csT0FBT29GLGVBQWUzRixFQUFRc0gsRUFBSy9HLE9BQU95eUIseUJBQXlCN1AsRUFBUTdiLEdBQU8sR0FBSSxDQUFFLE9BQU90SCxDQUFRLENBQ3pmLFNBQVNrekIsZ0JBQWdCemxCLEVBQUtuRyxFQUFLeEcsR0FBNEwsT0FBbkx3RyxFQUFNK3JCLGVBQWUvckIsTUFBaUJtRyxFQUFPbE4sT0FBT29GLGVBQWU4SCxFQUFLbkcsRUFBSyxDQUFFeEcsTUFBT0EsRUFBTzhFLFlBQVksRUFBTTZhLGNBQWMsRUFBTXpOLFVBQVUsSUFBa0J2RixFQUFJbkcsR0FBT3hHLEVBQWdCMk0sQ0FBSyxDQUUzTyxTQUFTNmxCLGtCQUFrQnR6QixFQUFRdXpCLEdBQVMsSUFBSyxJQUFJcnVCLEVBQUksRUFBR0EsRUFBSXF1QixFQUFNN3ZCLE9BQVF3QixJQUFLLENBQUUsSUFBSXN1QixFQUFhRCxFQUFNcnVCLEdBQUlzdUIsRUFBVzV0QixXQUFhNHRCLEVBQVc1dEIsYUFBYyxFQUFPNHRCLEVBQVcvUyxjQUFlLEVBQVUsVUFBVytTLElBQVlBLEVBQVd4Z0IsVUFBVyxHQUFNelMsT0FBT29GLGVBQWUzRixFQUFRcXpCLGVBQWVHLEVBQVdsc0IsS0FBTWtzQixFQUFhLENBQUUsQ0FFNVUsU0FBU0gsZUFBZTV0QixHQUFPLElBQUk2QixFQUNuQyxTQUFTbXNCLGFBQWFybEIsRUFBT3NsQixHQUFRLEdBQXFCLGlCQUFWdGxCLEdBQWdDLE9BQVZBLEVBQWdCLE9BQU9BLEVBQU8sSUFBSXVsQixFQUFPdmxCLEVBQU1pRyxPQUFPNEIsYUFBYyxRQUFhM1QsSUFBVHF4QixFQUFvQixDQUFFLElBQUkzYSxFQUFNMmEsRUFBS3R6QixLQUFLK04sRUFBT3NsQixHQUFRLFdBQVksR0FBbUIsaUJBQVIxYSxFQUFrQixPQUFPQSxFQUFLLE1BQU0sSUFBSXBXLFVBQVUsK0NBQWlELENBQUUsT0FBaUIsV0FBVDh3QixFQUFvQjV2QixPQUFTbEQsUUFBUXdOLEVBQVEsQ0FEL1VxbEIsQ0FBYWh1QixFQUFLLFVBQVcsTUFBc0IsaUJBQVI2QixFQUFtQkEsRUFBTXhELE9BQU93RCxFQUFNLENBRTFILElBQ0UwQyxFQURhLEVBQVEsS0FDSEEsT0FFbEIyUSxFQURjLEVBQVEsS0FDRkEsUUFDbEJpWixFQUFTalosR0FBV0EsRUFBUWlaLFFBQVUsVUFDMUMsU0FBU0MsV0FBV2xTLEVBQUszaEIsRUFBUTZYLEdBQy9CN04sRUFBTzVKLFVBQVVrRixLQUFLakYsS0FBS3NoQixFQUFLM2hCLEVBQVE2WCxFQUMxQyxDQUNBM1csRUFBT0MsUUFBdUIsV0FDNUIsU0FBUzBrQixjQWRYLFNBQVNpTyxnQkFBZ0JDLEVBQVVDLEdBQWUsS0FBTUQsYUFBb0JDLEdBQWdCLE1BQU0sSUFBSXB4QixVQUFVLG9DQUF3QyxDQWVwSmt4QixDQUFnQjd5QixLQUFNNGtCLFlBQ3RCNWtCLEtBQUtzbkIsS0FBTyxLQUNadG5CLEtBQUtnekIsS0FBTyxLQUNaaHpCLEtBQUt5QyxPQUFTLENBQ2hCLENBNkpBLE9BOUtGLFNBQVN3d0IsYUFBYUYsRUFBYUcsRUFBWUMsR0FBeU4sT0FBdE1ELEdBQVliLGtCQUFrQlUsRUFBWTV6QixVQUFXK3pCLEdBQWlCQyxHQUFhZCxrQkFBa0JVLEVBQWFJLEdBQWM3ekIsT0FBT29GLGVBQWVxdUIsRUFBYSxZQUFhLENBQUVoaEIsVUFBVSxJQUFpQmdoQixDQUFhLENBa0IxUkUsQ0FBYXJPLFdBQVksQ0FBQyxDQUN4QnZlLElBQUssT0FDTHhHLE1BQU8sU0FBUzJDLEtBQUtzZ0IsR0FDbkIsSUFBSWdMLEVBQVEsQ0FDVnJpQixLQUFNcVgsRUFDTnlFLEtBQU0sTUFFSnZuQixLQUFLeUMsT0FBUyxFQUFHekMsS0FBS2d6QixLQUFLekwsS0FBT3VHLEVBQVc5dEIsS0FBS3NuQixLQUFPd0csRUFDN0Q5dEIsS0FBS2d6QixLQUFPbEYsSUFDVjl0QixLQUFLeUMsTUFDVCxHQUNDLENBQ0Q0RCxJQUFLLFVBQ0x4RyxNQUFPLFNBQVMwQyxRQUFRdWdCLEdBQ3RCLElBQUlnTCxFQUFRLENBQ1ZyaUIsS0FBTXFYLEVBQ055RSxLQUFNdm5CLEtBQUtzbkIsTUFFTyxJQUFoQnRuQixLQUFLeUMsU0FBY3pDLEtBQUtnekIsS0FBT2xGLEdBQ25DOXRCLEtBQUtzbkIsS0FBT3dHLElBQ1Y5dEIsS0FBS3lDLE1BQ1QsR0FDQyxDQUNENEQsSUFBSyxRQUNMeEcsTUFBTyxTQUFTa0csUUFDZCxHQUFvQixJQUFoQi9GLEtBQUt5QyxPQUFULENBQ0EsSUFBSXNCLEVBQU0vRCxLQUFLc25CLEtBQUs3YixLQUdwQixPQUZvQixJQUFoQnpMLEtBQUt5QyxPQUFjekMsS0FBS3NuQixLQUFPdG5CLEtBQUtnekIsS0FBTyxLQUFVaHpCLEtBQUtzbkIsS0FBT3RuQixLQUFLc25CLEtBQUtDLE9BQzdFdm5CLEtBQUt5QyxPQUNBc0IsQ0FKc0IsQ0FLL0IsR0FDQyxDQUNEc0MsSUFBSyxRQUNMeEcsTUFBTyxTQUFTMm5CLFFBQ2R4bkIsS0FBS3NuQixLQUFPdG5CLEtBQUtnekIsS0FBTyxLQUN4Qmh6QixLQUFLeUMsT0FBUyxDQUNoQixHQUNDLENBQ0Q0RCxJQUFLLE9BQ0x4RyxNQUFPLFNBQVNnSSxLQUFLdXJCLEdBQ25CLEdBQW9CLElBQWhCcHpCLEtBQUt5QyxPQUFjLE1BQU8sR0FHOUIsSUFGQSxJQUFJME4sRUFBSW5RLEtBQUtzbkIsS0FDVHZqQixFQUFNLEdBQUtvTSxFQUFFMUUsS0FDVjBFLEVBQUlBLEVBQUVvWCxNQUFNeGpCLEdBQU9xdkIsRUFBSWpqQixFQUFFMUUsS0FDaEMsT0FBTzFILENBQ1QsR0FDQyxDQUNEc0MsSUFBSyxTQUNMeEcsTUFBTyxTQUFTSixPQUFPMkUsR0FDckIsR0FBb0IsSUFBaEJwRSxLQUFLeUMsT0FBYyxPQUFPc0csRUFBT3VLLE1BQU0sR0FJM0MsSUFIQSxJQUFJdlAsRUFBTWdGLEVBQU9zQyxZQUFZakgsSUFBTSxHQUMvQitMLEVBQUluUSxLQUFLc25CLEtBQ1RyakIsRUFBSSxFQUNEa00sR0FDTHlpQixXQUFXemlCLEVBQUUxRSxLQUFNMUgsRUFBS0UsR0FDeEJBLEdBQUtrTSxFQUFFMUUsS0FBS2hKLE9BQ1owTixFQUFJQSxFQUFFb1gsS0FFUixPQUFPeGpCLENBQ1QsR0FHQyxDQUNEc0MsSUFBSyxVQUNMeEcsTUFBTyxTQUFTcW9CLFFBQVE5akIsRUFBR2l2QixHQUN6QixJQUFJdHZCLEVBWUosT0FYSUssRUFBSXBFLEtBQUtzbkIsS0FBSzdiLEtBQUtoSixRQUVyQnNCLEVBQU0vRCxLQUFLc25CLEtBQUs3YixLQUFLNUssTUFBTSxFQUFHdUQsR0FDOUJwRSxLQUFLc25CLEtBQUs3YixLQUFPekwsS0FBS3NuQixLQUFLN2IsS0FBSzVLLE1BQU11RCxJQUd0Q0wsRUFGU0ssSUFBTXBFLEtBQUtzbkIsS0FBSzdiLEtBQUtoSixPQUV4QnpDLEtBQUsrRixRQUdMc3RCLEVBQWFyekIsS0FBS3N6QixXQUFXbHZCLEdBQUtwRSxLQUFLdXpCLFdBQVdudkIsR0FFbkRMLENBQ1QsR0FDQyxDQUNEc0MsSUFBSyxRQUNMeEcsTUFBTyxTQUFTdWMsUUFDZCxPQUFPcGMsS0FBS3NuQixLQUFLN2IsSUFDbkIsR0FHQyxDQUNEcEYsSUFBSyxhQUNMeEcsTUFBTyxTQUFTeXpCLFdBQVdsdkIsR0FDekIsSUFBSStMLEVBQUluUSxLQUFLc25CLEtBQ1Q3YyxFQUFJLEVBQ0oxRyxFQUFNb00sRUFBRTFFLEtBRVosSUFEQXJILEdBQUtMLEVBQUl0QixPQUNGME4sRUFBSUEsRUFBRW9YLE1BQU0sQ0FDakIsSUFBSXJmLEVBQU1pSSxFQUFFMUUsS0FDUm9ELEVBQUt6SyxFQUFJOEQsRUFBSXpGLE9BQVN5RixFQUFJekYsT0FBUzJCLEVBR3ZDLEdBRkl5SyxJQUFPM0csRUFBSXpGLE9BQVFzQixHQUFPbUUsRUFBU25FLEdBQU9tRSxFQUFJckgsTUFBTSxFQUFHdUQsR0FFakQsS0FEVkEsR0FBS3lLLEdBQ1EsQ0FDUEEsSUFBTzNHLEVBQUl6RixVQUNYZ0ksRUFDRTBGLEVBQUVvWCxLQUFNdm5CLEtBQUtzbkIsS0FBT25YLEVBQUVvWCxLQUFVdm5CLEtBQUtzbkIsS0FBT3RuQixLQUFLZ3pCLEtBQU8sT0FFNURoekIsS0FBS3NuQixLQUFPblgsRUFDWkEsRUFBRTFFLEtBQU92RCxFQUFJckgsTUFBTWdPLElBRXJCLEtBQ0YsR0FDRXBFLENBQ0osQ0FFQSxPQURBekssS0FBS3lDLFFBQVVnSSxFQUNSMUcsQ0FDVCxHQUdDLENBQ0RzQyxJQUFLLGFBQ0x4RyxNQUFPLFNBQVMwekIsV0FBV252QixHQUN6QixJQUFJTCxFQUFNZ0YsRUFBT3NDLFlBQVlqSCxHQUN6QitMLEVBQUluUSxLQUFLc25CLEtBQ1Q3YyxFQUFJLEVBR1IsSUFGQTBGLEVBQUUxRSxLQUFLcEgsS0FBS04sR0FDWkssR0FBSytMLEVBQUUxRSxLQUFLaEosT0FDTDBOLEVBQUlBLEVBQUVvWCxNQUFNLENBQ2pCLElBQUlyWCxFQUFNQyxFQUFFMUUsS0FDUm9ELEVBQUt6SyxFQUFJOEwsRUFBSXpOLE9BQVN5TixFQUFJek4sT0FBUzJCLEVBR3ZDLEdBRkE4TCxFQUFJN0wsS0FBS04sRUFBS0EsRUFBSXRCLE9BQVMyQixFQUFHLEVBQUd5SyxHQUV2QixLQURWekssR0FBS3lLLEdBQ1EsQ0FDUEEsSUFBT3FCLEVBQUl6TixVQUNYZ0ksRUFDRTBGLEVBQUVvWCxLQUFNdm5CLEtBQUtzbkIsS0FBT25YLEVBQUVvWCxLQUFVdm5CLEtBQUtzbkIsS0FBT3RuQixLQUFLZ3pCLEtBQU8sT0FFNURoekIsS0FBS3NuQixLQUFPblgsRUFDWkEsRUFBRTFFLEtBQU95RSxFQUFJclAsTUFBTWdPLElBRXJCLEtBQ0YsR0FDRXBFLENBQ0osQ0FFQSxPQURBekssS0FBS3lDLFFBQVVnSSxFQUNSMUcsQ0FDVCxHQUdDLENBQ0RzQyxJQUFLc3NCLEVBQ0w5eUIsTUFBTyxTQUFTQSxNQUFNd3RCLEVBQUdqZ0IsR0FDdkIsT0FBT3NNLEVBQVExWixLQUFNZ3lCLGNBQWNBLGNBQWMsQ0FBQyxFQUFHNWtCLEdBQVUsQ0FBQyxFQUFHLENBRWpFb21CLE1BQU8sRUFFUEMsZUFBZSxJQUVuQixLQUVLN08sVUFDVCxDQXBLOEIsd0JDVDlCLElBQUkvYixFQUFXLEVBQVEsS0FDbkJDLEVBQU8sRUFBUSxLQUNmQyxFQUFTLGNBRVRDLEVBQUksQ0FDTixXQUFZLFlBQVksWUFBZ0IsV0FHdENDLEVBQUksSUFBSWpGLE1BQU0sSUFFbEIsU0FBUzB2QixPQUNQMXpCLEtBQUtELE9BQ0xDLEtBQUttSixHQUFLRixFQUVWSCxFQUFLMUosS0FBS1ksS0FBTSxHQUFJLEdBQ3RCLENBa0JBLFNBQVMyekIsTUFBT0MsR0FDZCxPQUFRQSxHQUFPLEVBQU1BLElBQVEsRUFDL0IsQ0FFQSxTQUFTQyxPQUFRRCxHQUNmLE9BQVFBLEdBQU8sR0FBT0EsSUFBUSxDQUNoQyxDQUVBLFNBQVNFLEdBQUlWLEVBQUc1b0IsRUFBR0MsRUFBR0MsR0FDcEIsT0FBVSxJQUFOMG9CLEVBQWlCNW9CLEVBQUlDLEdBQVFELEVBQUtFLEVBQzVCLElBQU4wb0IsRUFBaUI1b0IsRUFBSUMsRUFBTUQsRUFBSUUsRUFBTUQsRUFBSUMsRUFDdENGLEVBQUlDLEVBQUlDLENBQ2pCLENBNUJBN0IsRUFBUzZxQixLQUFNNXFCLEdBRWY0cUIsS0FBS3YwQixVQUFVWSxLQUFPLFdBT3BCLE9BTkFDLEtBQUs2SixHQUFLLFdBQ1Y3SixLQUFLOEosR0FBSyxXQUNWOUosS0FBSytKLEdBQUssV0FDVi9KLEtBQUtnSyxHQUFLLFVBQ1ZoSyxLQUFLaUssR0FBSyxXQUVIakssSUFDVCxFQW9CQTB6QixLQUFLdjBCLFVBQVVrTCxRQUFVLFNBQVVDLEdBU2pDLElBUkEsSUFuQmNzcEIsRUFtQlYzcUIsRUFBSWpKLEtBQUttSixHQUVUb0IsRUFBYyxFQUFWdkssS0FBSzZKLEdBQ1RXLEVBQWMsRUFBVnhLLEtBQUs4SixHQUNUVyxFQUFjLEVBQVZ6SyxLQUFLK0osR0FDVFcsRUFBYyxFQUFWMUssS0FBS2dLLEdBQ1RXLEVBQWMsRUFBVjNLLEtBQUtpSyxHQUVKaEcsRUFBSSxFQUFHQSxFQUFJLEtBQU1BLEVBQUdnRixFQUFFaEYsR0FBS3FHLEVBQUVTLFlBQWdCLEVBQUo5RyxHQUNsRCxLQUFPQSxFQUFJLEtBQU1BLEVBQUdnRixFQUFFaEYsSUE1QlIydkIsRUE0Qm1CM3FCLEVBQUVoRixFQUFJLEdBQUtnRixFQUFFaEYsRUFBSSxHQUFLZ0YsRUFBRWhGLEVBQUksSUFBTWdGLEVBQUVoRixFQUFJLE1BM0IxRCxFQUFNMnZCLElBQVEsR0E2QjdCLElBQUssSUFBSTVvQixFQUFJLEVBQUdBLEVBQUksS0FBTUEsRUFBRyxDQUMzQixJQUFJb29CLEtBQU9wb0IsRUFBSSxJQUNYK29CLEVBQUtKLE1BQU1wcEIsR0FBS3VwQixHQUFHVixFQUFHNW9CLEVBQUdDLEVBQUdDLEdBQUtDLEVBQUkxQixFQUFFK0IsR0FBS2hDLEVBQUVvcUIsR0FBTSxFQUV4RHpvQixFQUFJRCxFQUNKQSxFQUFJRCxFQUNKQSxFQUFJb3BCLE9BQU9ycEIsR0FDWEEsRUFBSUQsRUFDSkEsRUFBSXdwQixDQUNOLENBRUEvekIsS0FBSzZKLEdBQU1VLEVBQUl2SyxLQUFLNkosR0FBTSxFQUMxQjdKLEtBQUs4SixHQUFNVSxFQUFJeEssS0FBSzhKLEdBQU0sRUFDMUI5SixLQUFLK0osR0FBTVUsRUFBSXpLLEtBQUsrSixHQUFNLEVBQzFCL0osS0FBS2dLLEdBQU1VLEVBQUkxSyxLQUFLZ0ssR0FBTSxFQUMxQmhLLEtBQUtpSyxHQUFNVSxFQUFJM0ssS0FBS2lLLEdBQU0sQ0FDNUIsRUFFQXlwQixLQUFLdjBCLFVBQVVnTSxNQUFRLFdBQ3JCLElBQUlDLEVBQUlyQyxFQUFPc0MsWUFBWSxJQVEzQixPQU5BRCxFQUFFRSxhQUF1QixFQUFWdEwsS0FBSzZKLEdBQVEsR0FDNUJ1QixFQUFFRSxhQUF1QixFQUFWdEwsS0FBSzhKLEdBQVEsR0FDNUJzQixFQUFFRSxhQUF1QixFQUFWdEwsS0FBSytKLEdBQVEsR0FDNUJxQixFQUFFRSxhQUF1QixFQUFWdEwsS0FBS2dLLEdBQVEsSUFDNUJvQixFQUFFRSxhQUF1QixFQUFWdEwsS0FBS2lLLEdBQVEsSUFFckJtQixDQUNULEVBRUFuTCxFQUFPQyxRQUFVd3pCLDBCQzdGakIsSUFBSWppQixFQVNKLElBQUlxVCxFQUFpQixRQUNuQmtQLEVBQW1CbFAsRUFBZWtQLGlCQUNsQ3hGLEVBQXVCMUosRUFBZTBKLHFCQUN4QyxTQUFTaGQsS0FBSzlRLEdBRVosR0FBSUEsRUFBSyxNQUFNQSxDQUNqQixDQStCQSxTQUFTdEIsS0FBSzJoQixHQUNaQSxHQUNGLENBQ0EsU0FBU2lCLEtBQUtuTyxFQUFNb2dCLEdBQ2xCLE9BQU9wZ0IsRUFBS21PLEtBQUtpUyxFQUNuQixDQTZCQWgwQixFQUFPQyxRQXZCUCxTQUFTNmhCLFdBQ1AsSUFBSyxJQUFJbFEsRUFBTy9RLFVBQVUyQixPQUFReXhCLEVBQVUsSUFBSWx3QixNQUFNNk4sR0FBT0MsRUFBTyxFQUFHQSxFQUFPRCxFQUFNQyxJQUNsRm9pQixFQUFRcGlCLEdBQVFoUixVQUFVZ1IsR0FFNUIsSUFLSTNNLEVBTEF3TSxFQVROLFNBQVN3aUIsWUFBWUQsR0FDbkIsT0FBS0EsRUFBUXp4QixPQUM4QixtQkFBaEN5eEIsRUFBUUEsRUFBUXp4QixPQUFTLEdBQTBCK08sS0FDdkQwaUIsRUFBUWh1QixNQUZhc0wsSUFHOUIsQ0FLaUIyaUIsQ0FBWUQsR0FFM0IsR0FESWx3QixNQUFNMkQsUUFBUXVzQixFQUFRLE1BQUtBLEVBQVVBLEVBQVEsSUFDN0NBLEVBQVF6eEIsT0FBUyxFQUNuQixNQUFNLElBQUl1eEIsRUFBaUIsV0FHN0IsSUFBSUksRUFBV0YsRUFBUXRzQixLQUFJLFNBQVV5RixFQUFRcEosR0FDM0MsSUFBSXVoQixFQUFVdmhCLEVBQUlpd0IsRUFBUXp4QixPQUFTLEVBRW5DLE9BbkRKLFNBQVM0eEIsVUFBVWhuQixFQUFRbVksRUFBUzBKLEVBQVN2ZCxHQUMzQ0EsRUFuQkYsU0FBU3hSLEtBQUt3UixHQUNaLElBQUlDLEdBQVMsRUFDYixPQUFPLFdBQ0RBLElBQ0pBLEdBQVMsRUFDVEQsRUFBUzdTLFdBQU0sRUFBUWdDLFdBQ3pCLENBQ0YsQ0FZYVgsQ0FBS3dSLEdBQ2hCLElBQUkyaUIsR0FBUyxFQUNiam5CLEVBQU9sTSxHQUFHLFNBQVMsV0FDakJtekIsR0FBUyxDQUNYLFNBQ1lqekIsSUFBUm9RLElBQW1CQSxFQUFNLEVBQVEsTUFDckNBLEVBQUlwRSxFQUFRLENBQ1ZXLFNBQVV3WCxFQUNWelQsU0FBVW1kLElBQ1QsU0FBVXh1QixHQUNYLEdBQUlBLEVBQUssT0FBT2lSLEVBQVNqUixHQUN6QjR6QixHQUFTLEVBQ1QzaUIsR0FDRixJQUNBLElBQUl3UixHQUFZLEVBQ2hCLE9BQU8sU0FBVXppQixHQUNmLElBQUk0ekIsSUFDQW5SLEVBSUosT0FIQUEsR0FBWSxFQXRCaEIsU0FBU3JRLFVBQVV6RixHQUNqQixPQUFPQSxFQUFPMEYsV0FBcUMsbUJBQWpCMUYsRUFBTzJGLEtBQzNDLENBdUJRRixDQUFVekYsR0FBZ0JBLEVBQU8yRixRQUNQLG1CQUFuQjNGLEVBQU9xVixRQUErQnJWLEVBQU9xVixlQUN4RC9RLEVBQVNqUixHQUFPLElBQUk4dEIsRUFBcUIsUUFDM0MsQ0FDRixDQXlCVzZGLENBQVVobkIsRUFBUW1ZLEVBRFh2aEIsRUFBSSxHQUN5QixTQUFVdkQsR0FDOUN5RSxJQUFPQSxFQUFRekUsR0FDaEJBLEdBQUswekIsRUFBUzNuQixRQUFRck4sTUFDdEJvbUIsSUFDSjRPLEVBQVMzbkIsUUFBUXJOLE1BQ2pCdVMsRUFBU3hNLEdBQ1gsR0FDRixJQUNBLE9BQU8rdUIsRUFBUUssT0FBT3ZTLEtBQ3hCLHVCQ3BGQSxJQUFJOWhCLEVBQVVELEVBQU9DLFFBQVUsU0FBU3MwQixJQUFLQyxHQUMzQ0EsRUFBWUEsRUFBVTlsQixjQUV0QixJQUFJK2xCLEVBQVl4MEIsRUFBUXUwQixHQUN4QixJQUFLQyxFQUFXLE1BQU0sSUFBSTl4QixNQUFNNnhCLEVBQVksK0NBRTVDLE9BQU8sSUFBSUMsQ0FDYixFQUVBeDBCLEVBQVF5MEIsSUFBTSxFQUFRLEtBQ3RCejBCLEVBQVEwMEIsS0FBTyxFQUFRLEtBQ3ZCMTBCLEVBQVEyMEIsT0FBUyxFQUFRLEtBQ3pCMzBCLEVBQVE0MEIsT0FBUyxFQUFRLEtBQ3pCNTBCLEVBQVE2MEIsT0FBUyxFQUFRLEtBQ3pCNzBCLEVBQVE4MEIsT0FBUyxFQUFRLDBCQ056QixJQUFJbnNCLEVBQVcsRUFBUSxLQUNuQkMsRUFBTyxFQUFRLEtBQ2ZDLEVBQVMsY0FFVEMsRUFBSSxDQUNOLFdBQVksWUFBWSxZQUFnQixXQUd0Q0MsRUFBSSxJQUFJakYsTUFBTSxJQUVsQixTQUFTaXhCLE1BQ1BqMUIsS0FBS0QsT0FDTEMsS0FBS21KLEdBQUtGLEVBRVZILEVBQUsxSixLQUFLWSxLQUFNLEdBQUksR0FDdEIsQ0FrQkEsU0FBUzZ6QixPQUFRRCxHQUNmLE9BQVFBLEdBQU8sR0FBT0EsSUFBUSxDQUNoQyxDQUVBLFNBQVNFLEdBQUlWLEVBQUc1b0IsRUFBR0MsRUFBR0MsR0FDcEIsT0FBVSxJQUFOMG9CLEVBQWlCNW9CLEVBQUlDLEdBQVFELEVBQUtFLEVBQzVCLElBQU4wb0IsRUFBaUI1b0IsRUFBSUMsRUFBTUQsRUFBSUUsRUFBTUQsRUFBSUMsRUFDdENGLEVBQUlDLEVBQUlDLENBQ2pCLENBeEJBN0IsRUFBU29zQixJQUFLbnNCLEdBRWRtc0IsSUFBSTkxQixVQUFVWSxLQUFPLFdBT25CLE9BTkFDLEtBQUs2SixHQUFLLFdBQ1Y3SixLQUFLOEosR0FBSyxXQUNWOUosS0FBSytKLEdBQUssV0FDVi9KLEtBQUtnSyxHQUFLLFVBQ1ZoSyxLQUFLaUssR0FBSyxXQUVIakssSUFDVCxFQWdCQWkxQixJQUFJOTFCLFVBQVVrTCxRQUFVLFNBQVVDLEdBU2hDLElBUkEsSUFmY3NwQixFQWVWM3FCLEVBQUlqSixLQUFLbUosR0FFVG9CLEVBQWMsRUFBVnZLLEtBQUs2SixHQUNUVyxFQUFjLEVBQVZ4SyxLQUFLOEosR0FDVFcsRUFBYyxFQUFWekssS0FBSytKLEdBQ1RXLEVBQWMsRUFBVjFLLEtBQUtnSyxHQUNUVyxFQUFjLEVBQVYzSyxLQUFLaUssR0FFSmhHLEVBQUksRUFBR0EsRUFBSSxLQUFNQSxFQUFHZ0YsRUFBRWhGLEdBQUtxRyxFQUFFUyxZQUFnQixFQUFKOUcsR0FDbEQsS0FBT0EsRUFBSSxLQUFNQSxFQUFHZ0YsRUFBRWhGLEdBQUtnRixFQUFFaEYsRUFBSSxHQUFLZ0YsRUFBRWhGLEVBQUksR0FBS2dGLEVBQUVoRixFQUFJLElBQU1nRixFQUFFaEYsRUFBSSxJQUVuRSxJQUFLLElBQUkrRyxFQUFJLEVBQUdBLEVBQUksS0FBTUEsRUFBRyxDQUMzQixJQUFJb29CLEtBQU9wb0IsRUFBSSxJQUNYK29CLEVBQW9ELElBNUI1Q0gsRUE0QkdycEIsSUEzQkYsRUFBTXFwQixJQUFRLElBMkJQRSxHQUFHVixFQUFHNW9CLEVBQUdDLEVBQUdDLEdBQUtDLEVBQUkxQixFQUFFK0IsR0FBS2hDLEVBQUVvcUIsR0FFbER6b0IsRUFBSUQsRUFDSkEsRUFBSUQsRUFDSkEsRUFBSW9wQixPQUFPcnBCLEdBQ1hBLEVBQUlELEVBQ0pBLEVBQUl3cEIsQ0FDTixDQUVBL3pCLEtBQUs2SixHQUFNVSxFQUFJdkssS0FBSzZKLEdBQU0sRUFDMUI3SixLQUFLOEosR0FBTVUsRUFBSXhLLEtBQUs4SixHQUFNLEVBQzFCOUosS0FBSytKLEdBQU1VLEVBQUl6SyxLQUFLK0osR0FBTSxFQUMxQi9KLEtBQUtnSyxHQUFNVSxFQUFJMUssS0FBS2dLLEdBQU0sRUFDMUJoSyxLQUFLaUssR0FBTVUsRUFBSTNLLEtBQUtpSyxHQUFNLENBQzVCLEVBRUFnckIsSUFBSTkxQixVQUFVZ00sTUFBUSxXQUNwQixJQUFJQyxFQUFJckMsRUFBT3NDLFlBQVksSUFRM0IsT0FOQUQsRUFBRUUsYUFBdUIsRUFBVnRMLEtBQUs2SixHQUFRLEdBQzVCdUIsRUFBRUUsYUFBdUIsRUFBVnRMLEtBQUs4SixHQUFRLEdBQzVCc0IsRUFBRUUsYUFBdUIsRUFBVnRMLEtBQUsrSixHQUFRLEdBQzVCcUIsRUFBRUUsYUFBdUIsRUFBVnRMLEtBQUtnSyxHQUFRLElBQzVCb0IsRUFBRUUsYUFBdUIsRUFBVnRMLEtBQUtpSyxHQUFRLElBRXJCbUIsQ0FDVCxFQUVBbkwsRUFBT0MsUUFBVSswQix5QkM3RmpCLElBQUlwc0IsRUFBVyxFQUFRLEtBQ25CcXNCLEVBQVMsRUFBUSxLQUNqQnBzQixFQUFPLEVBQVEsS0FDZkMsRUFBUyxjQUVURSxFQUFJLElBQUlqRixNQUFNLEtBRWxCLFNBQVNteEIsU0FDUG4xQixLQUFLRCxPQUNMQyxLQUFLbUosR0FBS0YsRUFFVkgsRUFBSzFKLEtBQUtZLEtBQU0sSUFBSyxJQUN2QixDQUVBNkksRUFBU3NzQixPQUFRRCxHQUVqQkMsT0FBT2gyQixVQUFVWSxLQUFPLFdBbUJ0QixPQWxCQUMsS0FBS28xQixJQUFNLFdBQ1hwMUIsS0FBS3ExQixJQUFNLFdBQ1hyMUIsS0FBS3MxQixJQUFNLFdBQ1h0MUIsS0FBS3UxQixJQUFNLFVBQ1h2MUIsS0FBS3cxQixJQUFNLFdBQ1h4MUIsS0FBS3kxQixJQUFNLFdBQ1h6MUIsS0FBSzAxQixJQUFNLFdBQ1gxMUIsS0FBSzIxQixJQUFNLFdBRVgzMUIsS0FBSzQxQixJQUFNLFdBQ1g1MUIsS0FBSzYxQixJQUFNLFVBQ1g3MUIsS0FBSzgxQixJQUFNLFVBQ1g5MUIsS0FBSysxQixJQUFNLFdBQ1gvMUIsS0FBS2cyQixJQUFNLFdBQ1hoMkIsS0FBS2kyQixJQUFNLFdBQ1hqMkIsS0FBS2syQixJQUFNLFdBQ1hsMkIsS0FBS20yQixJQUFNLFdBRUpuMkIsSUFDVCxFQUVBbTFCLE9BQU9oMkIsVUFBVWdNLE1BQVEsV0FDdkIsSUFBSUMsRUFBSXJDLEVBQU9zQyxZQUFZLElBRTNCLFNBQVMrcUIsYUFBY3RyQixFQUFHeWQsRUFBRzNSLEdBQzNCeEwsRUFBRUUsYUFBYVIsRUFBRzhMLEdBQ2xCeEwsRUFBRUUsYUFBYWlkLEVBQUczUixFQUFTLEVBQzdCLENBU0EsT0FQQXdmLGFBQWFwMkIsS0FBS28xQixJQUFLcDFCLEtBQUs0MUIsSUFBSyxHQUNqQ1EsYUFBYXAyQixLQUFLcTFCLElBQUtyMUIsS0FBSzYxQixJQUFLLEdBQ2pDTyxhQUFhcDJCLEtBQUtzMUIsSUFBS3QxQixLQUFLODFCLElBQUssSUFDakNNLGFBQWFwMkIsS0FBS3UxQixJQUFLdjFCLEtBQUsrMUIsSUFBSyxJQUNqQ0ssYUFBYXAyQixLQUFLdzFCLElBQUt4MUIsS0FBS2cyQixJQUFLLElBQ2pDSSxhQUFhcDJCLEtBQUt5MUIsSUFBS3oxQixLQUFLaTJCLElBQUssSUFFMUI3cUIsQ0FDVCxFQUVBbkwsRUFBT0MsUUFBVWkxQiw2Q0N0RGpCLElBQUk1Z0IsRUFBUyxFQUFRLEtBQ2pCeEwsRUFBU3dMLEVBQU94TCxPQUdwQixTQUFTc3RCLFVBQVczVixFQUFLQyxHQUN2QixJQUFLLElBQUl0YSxLQUFPcWEsRUFDZEMsRUFBSXRhLEdBQU9xYSxFQUFJcmEsRUFFbkIsQ0FTQSxTQUFTaXdCLFdBQVk5eEIsRUFBS29QLEVBQWtCblIsR0FDMUMsT0FBT3NHLEVBQU92RSxFQUFLb1AsRUFBa0JuUixFQUN2QyxDQVZJc0csRUFBTzhLLE1BQVE5SyxFQUFPdUssT0FBU3ZLLEVBQU9zQyxhQUFldEMsRUFBT21RLGdCQUM5RGpaLEVBQU9DLFFBQVVxVSxHQUdqQjhoQixVQUFVOWhCLEVBQVFyVSxHQUNsQkEsRUFBUTZJLE9BQVN1dEIsWUFPbkJBLFdBQVduM0IsVUFBWUcsT0FBTzhDLE9BQU8yRyxFQUFPNUosV0FHNUNrM0IsVUFBVXR0QixFQUFRdXRCLFlBRWxCQSxXQUFXemlCLEtBQU8sU0FBVXJQLEVBQUtvUCxFQUFrQm5SLEdBQ2pELEdBQW1CLGlCQUFSK0IsRUFDVCxNQUFNLElBQUk3QyxVQUFVLGlDQUV0QixPQUFPb0gsRUFBT3ZFLEVBQUtvUCxFQUFrQm5SLEVBQ3ZDLEVBRUE2ekIsV0FBV2hqQixNQUFRLFNBQVVwQyxFQUFNK0gsRUFBTTVLLEdBQ3ZDLEdBQW9CLGlCQUFUNkMsRUFDVCxNQUFNLElBQUl2UCxVQUFVLDZCQUV0QixJQUFJdU8sRUFBTW5ILEVBQU9tSSxHQVVqQixZQVRhN1AsSUFBVDRYLEVBQ3NCLGlCQUFiNUssRUFDVDZCLEVBQUkrSSxLQUFLQSxFQUFNNUssR0FFZjZCLEVBQUkrSSxLQUFLQSxHQUdYL0ksRUFBSStJLEtBQUssR0FFSi9JLENBQ1QsRUFFQW9tQixXQUFXanJCLFlBQWMsU0FBVTZGLEdBQ2pDLEdBQW9CLGlCQUFUQSxFQUNULE1BQU0sSUFBSXZQLFVBQVUsNkJBRXRCLE9BQU9vSCxFQUFPbUksRUFDaEIsRUFFQW9sQixXQUFXcGQsZ0JBQWtCLFNBQVVoSSxHQUNyQyxHQUFvQixpQkFBVEEsRUFDVCxNQUFNLElBQUl2UCxVQUFVLDZCQUV0QixPQUFPNFMsRUFBT2xCLFdBQVduQyxFQUMzQix1QkNoRUEsSUFBSXJJLEVBQVcsRUFBUSxLQUNuQkMsRUFBTyxFQUFRLEtBQ2ZDLEVBQVMsY0FFVEMsRUFBSSxDQUNOLFdBQVksV0FBWSxXQUFZLFVBQ3BDLFdBQVksV0FBWSxXQUFZLFdBQ3BDLFVBQVksV0FBWSxXQUFZLFdBQ3BDLFdBQVksV0FBWSxXQUFZLFdBQ3BDLFdBQVksV0FBWSxVQUFZLFdBQ3BDLFVBQVksV0FBWSxXQUFZLFdBQ3BDLFdBQVksV0FBWSxXQUFZLFVBQ3BDLFdBQVksVUFBWSxXQUFZLFdBQ3BDLFdBQVksV0FBWSxXQUFZLFVBQ3BDLFVBQVksV0FBWSxVQUFZLFdBQ3BDLFVBQVksV0FBWSxXQUFZLFdBQ3BDLFdBQVksV0FBWSxXQUFZLFdBQ3BDLFdBQVksV0FBWSxXQUFZLFVBQ3BDLFdBQVksV0FBWSxXQUFZLFdBQ3BDLFdBQVksV0FBWSxXQUFZLFdBQ3BDLFVBQVksV0FBWSxVQUFZLFVBQ3BDLFVBQVksV0FBWSxVQUFZLFdBQ3BDLFdBQVksV0FBWSxXQUFZLFdBQ3BDLFdBQVksV0FBWSxXQUFZLFdBQ3BDLFdBQVksV0FBWSxXQUFZLFVBQ3BDLFdBQVksV0FBWSxXQUFZLFdBQ3BDLFdBQVksV0FBWSxXQUFZLFVBQ3BDLFdBQVksV0FBWSxXQUFZLFdBQ3BDLFdBQVksV0FBWSxVQUFZLFVBQ3BDLFVBQVksV0FBWSxVQUFZLFdBQ3BDLFVBQVksV0FBWSxVQUFZLFdBQ3BDLFVBQVksV0FBWSxXQUFZLFdBQ3BDLFdBQVksV0FBWSxXQUFZLFdBQ3BDLFdBQVksV0FBWSxXQUFZLFdBQ3BDLFdBQVksV0FBWSxXQUFZLFVBQ3BDLFdBQVksVUFBWSxXQUFZLFdBQ3BDLFdBQVksV0FBWSxXQUFZLFdBQ3BDLFdBQVksV0FBWSxXQUFZLFVBQ3BDLFdBQVksV0FBWSxXQUFZLFdBQ3BDLFVBQVksV0FBWSxVQUFZLFdBQ3BDLFVBQVksV0FBWSxVQUFZLFVBQ3BDLFVBQVksVUFBWSxVQUFZLFdBQ3BDLFdBQVksVUFBWSxXQUFZLFdBQ3BDLFdBQVksV0FBWSxXQUFZLFdBQ3BDLFdBQVksVUFBWSxXQUFZLFlBR2xDQyxFQUFJLElBQUlqRixNQUFNLEtBRWxCLFNBQVN1eUIsU0FDUHYyQixLQUFLRCxPQUNMQyxLQUFLbUosR0FBS0YsRUFFVkgsRUFBSzFKLEtBQUtZLEtBQU0sSUFBSyxJQUN2QixDQTBCQSxTQUFTdzJCLEdBQUludEIsRUFBR0MsRUFBR0MsR0FDakIsT0FBT0EsRUFBS0YsR0FBS0MsRUFBSUMsRUFDdkIsQ0FFQSxTQUFTQyxJQUFLSCxFQUFHQyxFQUFHQyxHQUNsQixPQUFRRixFQUFJQyxFQUFNQyxHQUFLRixFQUFJQyxFQUM3QixDQUVBLFNBQVNHLE9BQVFKLEVBQUdvdEIsR0FDbEIsT0FBUXB0QixJQUFNLEdBQUtvdEIsR0FBTSxJQUFNQSxJQUFPLEVBQUlwdEIsR0FBSyxLQUFPb3RCLElBQU8sRUFBSXB0QixHQUFLLEdBQ3hFLENBRUEsU0FBU0ssT0FBUUwsRUFBR290QixHQUNsQixPQUFRcHRCLElBQU0sR0FBS290QixHQUFNLEtBQU9wdEIsSUFBTSxHQUFLb3RCLEdBQU0sS0FBT0EsSUFBTyxFQUFJcHRCLEdBQUssR0FDMUUsQ0FFQSxTQUFTcXRCLE9BQVFydEIsRUFBR290QixHQUNsQixPQUFRcHRCLElBQU0sRUFBSW90QixHQUFNLEtBQU9wdEIsSUFBTSxFQUFJb3RCLEdBQU0sSUFBT3B0QixJQUFNLENBQzlELENBRUEsU0FBU3N0QixRQUFTdHRCLEVBQUdvdEIsR0FDbkIsT0FBUXB0QixJQUFNLEVBQUlvdEIsR0FBTSxLQUFPcHRCLElBQU0sRUFBSW90QixHQUFNLEtBQU9wdEIsSUFBTSxFQUFJb3RCLEdBQU0sR0FDeEUsQ0FFQSxTQUFTRyxPQUFRdnRCLEVBQUdvdEIsR0FDbEIsT0FBUXB0QixJQUFNLEdBQUtvdEIsR0FBTSxLQUFPQSxJQUFPLEdBQUtwdEIsR0FBSyxHQUFNQSxJQUFNLENBQy9ELENBRUEsU0FBU3d0QixRQUFTeHRCLEVBQUdvdEIsR0FDbkIsT0FBUXB0QixJQUFNLEdBQUtvdEIsR0FBTSxLQUFPQSxJQUFPLEdBQUtwdEIsR0FBSyxJQUFNQSxJQUFNLEVBQUlvdEIsR0FBTSxHQUN6RSxDQUVBLFNBQVNLLFNBQVV2c0IsRUFBR0MsR0FDcEIsT0FBUUQsSUFBTSxFQUFNQyxJQUFNLEVBQUssRUFBSSxDQUNyQyxDQTFEQTNCLEVBQVMwdEIsT0FBUXp0QixHQUVqQnl0QixPQUFPcDNCLFVBQVVZLEtBQU8sV0FtQnRCLE9BbEJBQyxLQUFLbzFCLElBQU0sV0FDWHAxQixLQUFLcTFCLElBQU0sV0FDWHIxQixLQUFLczFCLElBQU0sV0FDWHQxQixLQUFLdTFCLElBQU0sV0FDWHYxQixLQUFLdzFCLElBQU0sV0FDWHgxQixLQUFLeTFCLElBQU0sV0FDWHoxQixLQUFLMDFCLElBQU0sVUFDWDExQixLQUFLMjFCLElBQU0sV0FFWDMxQixLQUFLNDFCLElBQU0sV0FDWDUxQixLQUFLNjFCLElBQU0sV0FDWDcxQixLQUFLODFCLElBQU0sV0FDWDkxQixLQUFLKzFCLElBQU0sV0FDWC8xQixLQUFLZzJCLElBQU0sV0FDWGgyQixLQUFLaTJCLElBQU0sVUFDWGoyQixLQUFLazJCLElBQU0sV0FDWGwyQixLQUFLbTJCLElBQU0sVUFFSm4yQixJQUNULEVBc0NBdTJCLE9BQU9wM0IsVUFBVWtMLFFBQVUsU0FBVUMsR0FxQm5DLElBcEJBLElBQUlyQixFQUFJakosS0FBS21KLEdBRVQ0dEIsRUFBZ0IsRUFBWC8yQixLQUFLbzFCLElBQ1Y0QixFQUFnQixFQUFYaDNCLEtBQUtxMUIsSUFDVmpzQixFQUFnQixFQUFYcEosS0FBS3MxQixJQUNWMkIsRUFBZ0IsRUFBWGozQixLQUFLdTFCLElBQ1YyQixFQUFnQixFQUFYbDNCLEtBQUt3MUIsSUFDVjJCLEVBQWdCLEVBQVhuM0IsS0FBS3kxQixJQUNWMkIsRUFBZ0IsRUFBWHAzQixLQUFLMDFCLElBQ1YyQixFQUFnQixFQUFYcjNCLEtBQUsyMUIsSUFFVjJCLEVBQWdCLEVBQVh0M0IsS0FBSzQxQixJQUNWMkIsRUFBZ0IsRUFBWHYzQixLQUFLNjFCLElBQ1YyQixFQUFnQixFQUFYeDNCLEtBQUs4MUIsSUFDVjJCLEVBQWdCLEVBQVh6M0IsS0FBSysxQixJQUNWMkIsRUFBZ0IsRUFBWDEzQixLQUFLZzJCLElBQ1YyQixFQUFnQixFQUFYMzNCLEtBQUtpMkIsSUFDVjJCLEVBQWdCLEVBQVg1M0IsS0FBS2syQixJQUNWMkIsRUFBZ0IsRUFBWDczQixLQUFLbTJCLElBRUxseUIsRUFBSSxFQUFHQSxFQUFJLEdBQUlBLEdBQUssRUFDM0JnRixFQUFFaEYsR0FBS3FHLEVBQUVTLFlBQWdCLEVBQUo5RyxHQUNyQmdGLEVBQUVoRixFQUFJLEdBQUtxRyxFQUFFUyxZQUFnQixFQUFKOUcsRUFBUSxHQUVuQyxLQUFPQSxFQUFJLElBQUtBLEdBQUssRUFBRyxDQUN0QixJQUFJNnpCLEVBQUs3dUIsRUFBRWhGLEVBQUksSUFDWHd5QixFQUFLeHRCLEVBQUVoRixFQUFJLEdBQVMsR0FDcEIwRixFQUFTK3NCLE9BQU9vQixFQUFJckIsR0FDcEJzQixFQUFVcEIsUUFBUUYsRUFBSXFCLEdBSXRCbHVCLEVBQVNndEIsT0FGYmtCLEVBQUs3dUIsRUFBRWhGLEVBQUksR0FDWHd5QixFQUFLeHRCLEVBQUVoRixFQUFJLEVBQVEsSUFFZit6QixFQUFVbkIsUUFBUUosRUFBSXFCLEdBR3RCRyxFQUFPaHZCLEVBQUVoRixFQUFJLElBQ2JpMEIsRUFBT2p2QixFQUFFaEYsRUFBSSxHQUFRLEdBRXJCazBCLEVBQVFsdkIsRUFBRWhGLEVBQUksSUFDZG0wQixFQUFRbnZCLEVBQUVoRixFQUFJLEdBQVMsR0FFdkJvMEIsRUFBT04sRUFBVUcsRUFBUSxFQUN6QkksRUFBTzN1QixFQUFTc3VCLEVBQU9uQixTQUFTdUIsRUFBS04sR0FBWSxFQUlyRE8sR0FGQUEsRUFBT0EsRUFBTTF1QixFQUFTa3RCLFNBRHRCdUIsRUFBT0EsRUFBTUwsRUFBVyxFQUNZQSxHQUFZLEdBRW5DRyxFQUFRckIsU0FEckJ1QixFQUFPQSxFQUFNRCxFQUFTLEVBQ2FBLEdBQVUsRUFFN0NudkIsRUFBRWhGLEdBQUtxMEIsRUFDUHJ2QixFQUFFaEYsRUFBSSxHQUFLbzBCLENBQ2IsQ0FFQSxJQUFLLElBQUlydEIsRUFBSSxFQUFHQSxFQUFJLElBQUtBLEdBQUssRUFBRyxDQUMvQnN0QixFQUFNcnZCLEVBQUUrQixHQUNScXRCLEVBQU1wdkIsRUFBRStCLEVBQUksR0FFWixJQUFJdXRCLEVBQU8vdUIsSUFBSXV0QixFQUFJQyxFQUFJNXRCLEdBQ25Cb3ZCLEVBQU9odkIsSUFBSTh0QixFQUFJQyxFQUFJQyxHQUVuQmlCLEVBQVVodkIsT0FBT3N0QixFQUFJTyxHQUNyQm9CLEVBQVVqdkIsT0FBTzZ0QixFQUFJUCxHQUNyQjRCLEVBQVVqdkIsT0FBT3d0QixFQUFJUSxHQUNyQmtCLEVBQVVsdkIsT0FBT2d1QixFQUFJUixHQUdyQjJCLEVBQU03dkIsRUFBRWdDLEdBQ1I4dEIsRUFBTTl2QixFQUFFZ0MsRUFBSSxHQUVaK3RCLEVBQU12QyxHQUFHVSxFQUFJQyxFQUFJQyxHQUNqQjRCLEVBQU14QyxHQUFHa0IsRUFBSUMsRUFBSUMsR0FFakJxQixFQUFPcEIsRUFBS2UsRUFBVyxFQUN2Qk0sRUFBTzdCLEVBQUtzQixFQUFVN0IsU0FBU21DLEVBQUtwQixHQUFPLEVBTS9DcUIsR0FGQUEsR0FGQUEsRUFBT0EsRUFBTUgsRUFBTWpDLFNBRG5CbUMsRUFBT0EsRUFBTUQsRUFBTyxFQUNhQSxHQUFRLEdBRTVCSCxFQUFNL0IsU0FEbkJtQyxFQUFPQSxFQUFNSCxFQUFPLEVBQ2FBLEdBQVEsR0FFNUJSLEVBQU14QixTQURuQm1DLEVBQU9BLEVBQU1aLEVBQU8sRUFDYUEsR0FBUSxFQUd6QyxJQUFJYyxFQUFPVCxFQUFVRixFQUFRLEVBQ3pCWSxFQUFPWCxFQUFVRixFQUFPekIsU0FBU3FDLEVBQUtULEdBQVksRUFFdERyQixFQUFLRCxFQUNMUyxFQUFLRCxFQUNMUixFQUFLRCxFQUNMUyxFQUFLRCxFQUNMUixFQUFLRCxFQUNMUyxFQUFLRCxFQUVMUixFQUFNRCxFQUFLaUMsRUFBTXBDLFNBRGpCWSxFQUFNRCxFQUFLd0IsRUFBTyxFQUNZeEIsR0FBTyxFQUNyQ1IsRUFBSzd0QixFQUNMcXVCLEVBQUtELEVBQ0xwdUIsRUFBSzR0QixFQUNMUSxFQUFLRCxFQUNMUCxFQUFLRCxFQUNMUSxFQUFLRCxFQUVMUCxFQUFNbUMsRUFBTUUsRUFBTXRDLFNBRGxCUSxFQUFNMkIsRUFBTUUsRUFBTyxFQUNZRixHQUFRLENBQ3pDLENBRUFqNUIsS0FBSzQxQixJQUFPNTFCLEtBQUs0MUIsSUFBTTBCLEVBQU0sRUFDN0J0M0IsS0FBSzYxQixJQUFPNzFCLEtBQUs2MUIsSUFBTTBCLEVBQU0sRUFDN0J2M0IsS0FBSzgxQixJQUFPOTFCLEtBQUs4MUIsSUFBTTBCLEVBQU0sRUFDN0J4M0IsS0FBSysxQixJQUFPLzFCLEtBQUsrMUIsSUFBTTBCLEVBQU0sRUFDN0J6M0IsS0FBS2cyQixJQUFPaDJCLEtBQUtnMkIsSUFBTTBCLEVBQU0sRUFDN0IxM0IsS0FBS2kyQixJQUFPajJCLEtBQUtpMkIsSUFBTTBCLEVBQU0sRUFDN0IzM0IsS0FBS2syQixJQUFPbDJCLEtBQUtrMkIsSUFBTTBCLEVBQU0sRUFDN0I1M0IsS0FBS20yQixJQUFPbjJCLEtBQUttMkIsSUFBTTBCLEVBQU0sRUFFN0I3M0IsS0FBS28xQixJQUFPcDFCLEtBQUtvMUIsSUFBTTJCLEVBQUtELFNBQVM5MkIsS0FBSzQxQixJQUFLMEIsR0FBTyxFQUN0RHQzQixLQUFLcTFCLElBQU9yMUIsS0FBS3ExQixJQUFNMkIsRUFBS0YsU0FBUzkyQixLQUFLNjFCLElBQUswQixHQUFPLEVBQ3REdjNCLEtBQUtzMUIsSUFBT3QxQixLQUFLczFCLElBQU1sc0IsRUFBSzB0QixTQUFTOTJCLEtBQUs4MUIsSUFBSzBCLEdBQU8sRUFDdER4M0IsS0FBS3UxQixJQUFPdjFCLEtBQUt1MUIsSUFBTTBCLEVBQUtILFNBQVM5MkIsS0FBSysxQixJQUFLMEIsR0FBTyxFQUN0RHozQixLQUFLdzFCLElBQU94MUIsS0FBS3cxQixJQUFNMEIsRUFBS0osU0FBUzkyQixLQUFLZzJCLElBQUswQixHQUFPLEVBQ3REMTNCLEtBQUt5MUIsSUFBT3oxQixLQUFLeTFCLElBQU0wQixFQUFLTCxTQUFTOTJCLEtBQUtpMkIsSUFBSzBCLEdBQU8sRUFDdEQzM0IsS0FBSzAxQixJQUFPMTFCLEtBQUswMUIsSUFBTTBCLEVBQUtOLFNBQVM5MkIsS0FBS2syQixJQUFLMEIsR0FBTyxFQUN0RDUzQixLQUFLMjFCLElBQU8zMUIsS0FBSzIxQixJQUFNMEIsRUFBS1AsU0FBUzkyQixLQUFLbTJCLElBQUswQixHQUFPLENBQ3hELEVBRUF0QixPQUFPcDNCLFVBQVVnTSxNQUFRLFdBQ3ZCLElBQUlDLEVBQUlyQyxFQUFPc0MsWUFBWSxJQUUzQixTQUFTK3FCLGFBQWN0ckIsRUFBR3lkLEVBQUczUixHQUMzQnhMLEVBQUVFLGFBQWFSLEVBQUc4TCxHQUNsQnhMLEVBQUVFLGFBQWFpZCxFQUFHM1IsRUFBUyxFQUM3QixDQVdBLE9BVEF3ZixhQUFhcDJCLEtBQUtvMUIsSUFBS3AxQixLQUFLNDFCLElBQUssR0FDakNRLGFBQWFwMkIsS0FBS3ExQixJQUFLcjFCLEtBQUs2MUIsSUFBSyxHQUNqQ08sYUFBYXAyQixLQUFLczFCLElBQUt0MUIsS0FBSzgxQixJQUFLLElBQ2pDTSxhQUFhcDJCLEtBQUt1MUIsSUFBS3YxQixLQUFLKzFCLElBQUssSUFDakNLLGFBQWFwMkIsS0FBS3cxQixJQUFLeDFCLEtBQUtnMkIsSUFBSyxJQUNqQ0ksYUFBYXAyQixLQUFLeTFCLElBQUt6MUIsS0FBS2kyQixJQUFLLElBQ2pDRyxhQUFhcDJCLEtBQUswMUIsSUFBSzExQixLQUFLazJCLElBQUssSUFDakNFLGFBQWFwMkIsS0FBSzIxQixJQUFLMzFCLEtBQUttMkIsSUFBSyxJQUUxQi9xQixDQUNULEVBRUFuTCxFQUFPQyxRQUFVcTJCLHlDQ2hOakIsU0FBUzhDLG9CQUFvQjVxQixFQUFNL04sR0FDakM0NEIsWUFBWTdxQixFQUFNL04sR0FDbEI2NEIsWUFBWTlxQixFQUNkLENBQ0EsU0FBUzhxQixZQUFZOXFCLEdBQ2ZBLEVBQUswRCxpQkFBbUIxRCxFQUFLMEQsZUFBZTRULFdBQzVDdFgsRUFBSzZELGlCQUFtQjdELEVBQUs2RCxlQUFleVQsV0FDaER0WCxFQUFLbk0sS0FBSyxRQUNaLENBa0JBLFNBQVNnM0IsWUFBWTdxQixFQUFNL04sR0FDekIrTixFQUFLbk0sS0FBSyxRQUFTNUIsRUFDckIsQ0FZQVQsRUFBT0MsUUFBVSxDQUNmd2lCLFFBekZGLFNBQVNBLFFBQVFoaUIsRUFBS3lRLEdBQ3BCLElBQUl3WSxFQUFRM3BCLEtBQ1J3NUIsRUFBb0J4NUIsS0FBS3NTLGdCQUFrQnRTLEtBQUtzUyxlQUFlNlEsVUFDL0RzVyxFQUFvQno1QixLQUFLbVMsZ0JBQWtCblMsS0FBS21TLGVBQWVnUixVQUNuRSxPQUFJcVcsR0FBcUJDLEdBQ25CdG9CLEVBQ0ZBLEVBQUd6USxHQUNNQSxJQUNKVixLQUFLbVMsZUFFRW5TLEtBQUttUyxlQUFldWQsZUFDOUIxdkIsS0FBS21TLGVBQWV1ZCxjQUFlLEVBQ25DL2hCLEVBQVFDLFNBQVMwckIsWUFBYXQ1QixLQUFNVSxJQUhwQ2lOLEVBQVFDLFNBQVMwckIsWUFBYXQ1QixLQUFNVSxJQU1qQ1YsT0FNTEEsS0FBS3NTLGlCQUNQdFMsS0FBS3NTLGVBQWU2USxXQUFZLEdBSTlCbmpCLEtBQUttUyxpQkFDUG5TLEtBQUttUyxlQUFlZ1IsV0FBWSxHQUVsQ25qQixLQUFLc21CLFNBQVM1bEIsR0FBTyxNQUFNLFNBQVVBLElBQzlCeVEsR0FBTXpRLEVBQ0ppcEIsRUFBTXhYLGVBRUN3WCxFQUFNeFgsZUFBZXVkLGFBSS9CL2hCLEVBQVFDLFNBQVMyckIsWUFBYTVQLElBSDlCQSxFQUFNeFgsZUFBZXVkLGNBQWUsRUFDcEMvaEIsRUFBUUMsU0FBU3lyQixvQkFBcUIxUCxFQUFPanBCLElBSDdDaU4sRUFBUUMsU0FBU3lyQixvQkFBcUIxUCxFQUFPanBCLEdBT3RDeVEsR0FDVHhELEVBQVFDLFNBQVMyckIsWUFBYTVQLEdBQzlCeFksRUFBR3pRLElBRUhpTixFQUFRQyxTQUFTMnJCLFlBQWE1UCxFQUVsQyxJQUNPM3BCLEtBQ1QsRUEyQ0VtbkIsVUFqQ0YsU0FBU0EsWUFDSG5uQixLQUFLc1MsaUJBQ1B0UyxLQUFLc1MsZUFBZTZRLFdBQVksRUFDaENuakIsS0FBS3NTLGVBQWVrVCxTQUFVLEVBQzlCeGxCLEtBQUtzUyxlQUFlSyxPQUFRLEVBQzVCM1MsS0FBS3NTLGVBQWVDLFlBQWEsR0FFL0J2UyxLQUFLbVMsaUJBQ1BuUyxLQUFLbVMsZUFBZWdSLFdBQVksRUFDaENuakIsS0FBS21TLGVBQWVRLE9BQVEsRUFDNUIzUyxLQUFLbVMsZUFBZTRjLFFBQVMsRUFDN0IvdUIsS0FBS21TLGVBQWUyYyxhQUFjLEVBQ2xDOXVCLEtBQUttUyxlQUFlNmQsYUFBYyxFQUNsQ2h3QixLQUFLbVMsZUFBZUMsVUFBVyxFQUMvQnBTLEtBQUttUyxlQUFldWQsY0FBZSxFQUV2QyxFQWtCRXhLLGVBZEYsU0FBU0EsZUFBZTdYLEVBQVEzTSxHQU85QixJQUFJbXdCLEVBQVN4akIsRUFBT2lGLGVBQ2hCK1YsRUFBU2hiLEVBQU84RSxlQUNoQjBlLEdBQVVBLEVBQU83SyxhQUFlcUMsR0FBVUEsRUFBT3JDLFlBQWEzWSxFQUFPcVYsUUFBUWhpQixHQUFVMk0sRUFBTy9LLEtBQUssUUFBUzVCLEVBQ2xILDRDQzdEQSxTQUFTZzVCLGdCQUFnQjFqQixHQUN4QixPQUNDQSxhQUFlak4sR0FDWmlOLGFBQWUyakIsTUFDZjNqQixhQUFlNGpCLE1BRXBCLENBRUEsU0FBU0MsbUJBQW1CN2pCLEdBQzNCLEdBQUlBLGFBQWVqTixFQUFRLENBQzFCLElBQUlNLEVBQUlOLEVBQU91SyxNQUNadkssRUFBT3VLLE1BQU0wQyxFQUFJdlQsUUFDakIsSUFBSXNHLEVBQU9pTixFQUFJdlQsUUFFbEIsT0FEQXVULEVBQUkzUixLQUFLZ0YsR0FDRkEsQ0FDUixDQUFPLEdBQUkyTSxhQUFlMmpCLEtBQ3pCLE9BQU8sSUFBSUEsS0FBSzNqQixFQUFJOGpCLFdBQ2QsR0FBSTlqQixhQUFlNGpCLE9BQ3pCLE9BQU8sSUFBSUEsT0FBTzVqQixHQUVsQixNQUFNLElBQUlwVCxNQUFNLHVCQUVsQixDQUtBLFNBQVNtM0IsZUFBZWoyQixHQUN2QixJQUFJazJCLEVBQVEsR0FjWixPQWJBbDJCLEVBQUkySSxTQUFRLFNBQVV5ZCxFQUFNamtCLEdBQ1AsaUJBQVRpa0IsR0FBOEIsT0FBVEEsRUFDM0JsbUIsTUFBTTJELFFBQVF1aUIsR0FDakI4UCxFQUFNL3pCLEdBQVM4ekIsZUFBZTdQLEdBQ3BCd1AsZ0JBQWdCeFAsR0FDMUI4UCxFQUFNL3pCLEdBQVM0ekIsbUJBQW1CM1AsR0FFbEM4UCxFQUFNL3pCLEdBQVNnMEIsRUFBVyxDQUFDLEVBQUcvUCxHQUcvQjhQLEVBQU0vekIsR0FBU2lrQixDQUVqQixJQUNPOFAsQ0FDUixDQUVBLFNBQVNFLGdCQUFnQmpKLEVBQVFrSixHQUNoQyxNQUFvQixjQUFiQSxPQUEyQjk0QixFQUFZNHZCLEVBQU9rSixFQUN0RCxDQVdBLElBQUlGLEVBQWFoNkIsRUFBT0MsUUFBVSxXQUNqQyxHQUFJWSxVQUFVMkIsT0FBUyxHQUE2QixpQkFBakIzQixVQUFVLEdBQzVDLE9BQU8sRUFHUixHQUFJQSxVQUFVMkIsT0FBUyxFQUN0QixPQUFPM0IsVUFBVSxHQUdsQixJQUtJa1YsRUFBSzBLLEVBTEwzaEIsRUFBUytCLFVBQVUsR0FvRHZCLE9BakRXa0QsTUFBTTdFLFVBQVUwQixNQUFNekIsS0FBSzBCLFVBQVcsR0FJNUMyTCxTQUFRLFNBQVVELEdBRUgsaUJBQVJBLEdBQTRCLE9BQVJBLEdBQWdCeEksTUFBTTJELFFBQVE2RSxJQUk3RGxOLE9BQU9nSCxLQUFLa0csR0FBS0MsU0FBUSxTQUFVcEcsR0FLbEMsT0FKQXFhLEVBQU13WixnQkFBZ0JuN0IsRUFBUXNILElBQzlCMlAsRUFBTWtrQixnQkFBZ0IxdEIsRUFBS25HLE1BR2Z0SCxPQUNYLEVBTXlCLGlCQUFSaVgsR0FBNEIsT0FBUkEsT0FDckNqWCxFQUFPc0gsR0FBTzJQLEdBSUpoUyxNQUFNMkQsUUFBUXFPLFFBQ3hCalgsRUFBT3NILEdBQU8wekIsZUFBZS9qQixJQUluQjBqQixnQkFBZ0IxakIsUUFDMUJqWCxFQUFPc0gsR0FBT3d6QixtQkFBbUI3akIsSUFJUixpQkFBUjBLLEdBQTRCLE9BQVJBLEdBQWdCMWMsTUFBTTJELFFBQVErWSxRQUNuRTNoQixFQUFPc0gsR0FBTzR6QixFQUFXLENBQUMsRUFBR2prQixTQUs3QmpYLEVBQU9zSCxHQUFPNHpCLEVBQVd2WixFQUFLMUssR0FHaEMsR0FDRCxJQUVPalgsQ0FDUiwyQkNuSklxN0IsV0FDSixTQUFTbkksZ0JBQWdCemxCLEVBQUtuRyxFQUFLeEcsR0FBNEwsT0FBbkx3RyxFQUM1QyxTQUFTK3JCLGVBQWU1dEIsR0FBTyxJQUFJNkIsRUFDbkMsU0FBU21zQixhQUFhcmxCLEVBQU9zbEIsR0FBUSxHQUFxQixpQkFBVnRsQixHQUFnQyxPQUFWQSxFQUFnQixPQUFPQSxFQUFPLElBQUl1bEIsRUFBT3ZsQixFQUFNaUcsT0FBTzRCLGFBQWMsUUFBYTNULElBQVRxeEIsRUFBb0IsQ0FBRSxJQUFJM2EsRUFBTTJhLEVBQUt0ekIsS0FBSytOLEVBQU9zbEIsR0FBUSxXQUFZLEdBQW1CLGlCQUFSMWEsRUFBa0IsT0FBT0EsRUFBSyxNQUFNLElBQUlwVyxVQUFVLCtDQUFpRCxDQUFFLE9BQWlCLFdBQVQ4d0IsRUFBb0I1dkIsT0FBU2xELFFBQVF3TixFQUFRLENBRC9VcWxCLENBQWFodUIsRUFBSyxVQUFXLE1BQXNCLGlCQUFSNkIsRUFBbUJBLEVBQU14RCxPQUFPd0QsRUFBTSxDQUR4RStyQixDQUFlL3JCLE1BQWlCbUcsRUFBT2xOLE9BQU9vRixlQUFlOEgsRUFBS25HLEVBQUssQ0FBRXhHLE1BQU9BLEVBQU84RSxZQUFZLEVBQU02YSxjQUFjLEVBQU16TixVQUFVLElBQWtCdkYsRUFBSW5HLEdBQU94RyxFQUFnQjJNLENBQUssQ0FHM08sSUFBSTRGLEVBQVcsRUFBUSxLQUNuQmlvQixFQUFlam5CLE9BQU8sZUFDdEJrbkIsRUFBY2xuQixPQUFPLGNBQ3JCbW5CLEVBQVNubkIsT0FBTyxTQUNoQm9uQixFQUFTcG5CLE9BQU8sU0FDaEJxbkIsRUFBZXJuQixPQUFPLGVBQ3RCc25CLEVBQWlCdG5CLE9BQU8saUJBQ3hCdW5CLEVBQVV2bkIsT0FBTyxVQUNyQixTQUFTd25CLGlCQUFpQi82QixFQUFPbXRCLEdBQy9CLE1BQU8sQ0FDTG50QixNQUFPQSxFQUNQbXRCLEtBQU1BLEVBRVYsQ0FDQSxTQUFTNk4sZUFBZUMsR0FDdEIsSUFBSXY2QixFQUFVdTZCLEVBQUtULEdBQ25CLEdBQWdCLE9BQVo5NUIsRUFBa0IsQ0FDcEIsSUFBSWtMLEVBQU9xdkIsRUFBS0gsR0FBU3BrQixPQUlaLE9BQVQ5SyxJQUNGcXZCLEVBQUtMLEdBQWdCLEtBQ3JCSyxFQUFLVCxHQUFnQixLQUNyQlMsRUFBS1IsR0FBZSxLQUNwQi81QixFQUFRcTZCLGlCQUFpQm52QixHQUFNLElBRW5DLENBQ0YsQ0FDQSxTQUFTc3ZCLFdBQVdELEdBR2xCbnRCLEVBQVFDLFNBQVNpdEIsZUFBZ0JDLEVBQ25DLENBWUEsSUFBSUUsRUFBeUIxN0IsT0FBT3lGLGdCQUFlLFdBQWEsSUFDNURrMkIsRUFBdUMzN0IsT0FBT3FVLGdCQW1EL0NzZSxnQkFuRCtEbUksRUFBd0IsQ0FDeEYsVUFBSS9zQixHQUNGLE9BQU9yTixLQUFLMjZCLEVBQ2QsRUFDQXBULEtBQU0sU0FBU0EsT0FDYixJQUFJb0MsRUFBUTNwQixLQUdSbUYsRUFBUW5GLEtBQUt1NkIsR0FDakIsR0FBYyxPQUFWcDFCLEVBQ0YsT0FBTzdFLFFBQVFFLE9BQU8yRSxHQUV4QixHQUFJbkYsS0FBS3c2QixHQUNQLE9BQU9sNkIsUUFBUUMsUUFBUXE2QixzQkFBaUJ2NUIsR0FBVyxJQUVyRCxHQUFJckIsS0FBSzI2QixHQUFTeFgsVUFLaEIsT0FBTyxJQUFJN2lCLFNBQVEsU0FBVUMsRUFBU0MsR0FDcENtTixFQUFRQyxVQUFTLFdBQ1grYixFQUFNNFEsR0FDUi81QixFQUFPbXBCLEVBQU00USxJQUViaDZCLEVBQVFxNkIsc0JBQWlCdjVCLEdBQVcsR0FFeEMsR0FDRixJQU9GLElBQ0k2NUIsRUFEQUMsRUFBY243QixLQUFLeTZCLEdBRXZCLEdBQUlVLEVBQ0ZELEVBQVUsSUFBSTU2QixRQWxEcEIsU0FBUzg2QixZQUFZRCxFQUFhTCxHQUNoQyxPQUFPLFNBQVV2NkIsRUFBU0MsR0FDeEIyNkIsRUFBWUUsTUFBSyxXQUNYUCxFQUFLTixHQUNQajZCLEVBQVFxNkIsc0JBQWlCdjVCLEdBQVcsSUFHdEN5NUIsRUFBS0osR0FBZ0JuNkIsRUFBU0MsRUFDaEMsR0FBR0EsRUFDTCxDQUNGLENBd0M0QjQ2QixDQUFZRCxFQUFhbjdCLFdBQzFDLENBR0wsSUFBSXlMLEVBQU96TCxLQUFLMjZCLEdBQVNwa0IsT0FDekIsR0FBYSxPQUFUOUssRUFDRixPQUFPbkwsUUFBUUMsUUFBUXE2QixpQkFBaUJudkIsR0FBTSxJQUVoRHl2QixFQUFVLElBQUk1NkIsUUFBUU4sS0FBSzA2QixHQUM3QixDQUVBLE9BREExNkIsS0FBS3k2QixHQUFnQlMsRUFDZEEsQ0FDVCxHQUN3QzluQixPQUFPMFcsZUFBZSxXQUM5RCxPQUFPOXBCLElBQ1QsSUFBSWl5QixnQkFBZ0JtSSxFQUF1QixVQUFVLFNBQVNrQixVQUM1RCxJQUFJQyxFQUFTdjdCLEtBSWIsT0FBTyxJQUFJTSxTQUFRLFNBQVVDLEVBQVNDLEdBQ3BDKzZCLEVBQU9aLEdBQVNqWSxRQUFRLE1BQU0sU0FBVWhpQixHQUNsQ0EsRUFDRkYsRUFBT0UsR0FHVEgsRUFBUXE2QixzQkFBaUJ2NUIsR0FBVyxHQUN0QyxHQUNGLEdBQ0YsSUFBSSs0QixHQUF3QlksR0E0RDVCLzZCLEVBQU9DLFFBM0RpQyxTQUFTeWtCLGtDQUFrQ3RYLEdBQ2pGLElBQUltdUIsRUFDQUMsRUFBV244QixPQUFPOEMsT0FBTzY0QixHQUE0RGhKLGdCQUFyQnVKLEVBQWlCLENBQUMsRUFBbUNiLEVBQVMsQ0FDaEk5NkIsTUFBT3dOLEVBQ1AwRSxVQUFVLElBQ1JrZ0IsZ0JBQWdCdUosRUFBZ0JuQixFQUFjLENBQ2hEeDZCLE1BQU8sS0FDUGtTLFVBQVUsSUFDUmtnQixnQkFBZ0J1SixFQUFnQmxCLEVBQWEsQ0FDL0N6NkIsTUFBTyxLQUNQa1MsVUFBVSxJQUNSa2dCLGdCQUFnQnVKLEVBQWdCakIsRUFBUSxDQUMxQzE2QixNQUFPLEtBQ1BrUyxVQUFVLElBQ1JrZ0IsZ0JBQWdCdUosRUFBZ0JoQixFQUFRLENBQzFDMzZCLE1BQU93TixFQUFPaUYsZUFBZUMsV0FDN0JSLFVBQVUsSUFDUmtnQixnQkFBZ0J1SixFQUFnQmQsRUFBZ0IsQ0FDbEQ3NkIsTUFBTyxTQUFTQSxNQUFNVSxFQUFTQyxHQUM3QixJQUFJaUwsRUFBT2d3QixFQUFTZCxHQUFTcGtCLE9BQ3pCOUssR0FDRmd3QixFQUFTaEIsR0FBZ0IsS0FDekJnQixFQUFTcEIsR0FBZ0IsS0FDekJvQixFQUFTbkIsR0FBZSxLQUN4Qi81QixFQUFRcTZCLGlCQUFpQm52QixHQUFNLE1BRS9CZ3dCLEVBQVNwQixHQUFnQjk1QixFQUN6Qms3QixFQUFTbkIsR0FBZTk1QixFQUU1QixFQUNBdVIsVUFBVSxJQUNSeXBCLElBMEJKLE9BekJBQyxFQUFTaEIsR0FBZ0IsS0FDekJyb0IsRUFBUy9FLEdBQVEsU0FBVTNNLEdBQ3pCLEdBQUlBLEdBQW9CLCtCQUFiQSxFQUFJaUcsS0FBdUMsQ0FDcEQsSUFBSW5HLEVBQVNpN0IsRUFBU25CLEdBVXRCLE9BUGUsT0FBWDk1QixJQUNGaTdCLEVBQVNoQixHQUFnQixLQUN6QmdCLEVBQVNwQixHQUFnQixLQUN6Qm9CLEVBQVNuQixHQUFlLEtBQ3hCOTVCLEVBQU9FLFNBRVQrNkIsRUFBU2xCLEdBQVU3NUIsRUFFckIsQ0FDQSxJQUFJSCxFQUFVazdCLEVBQVNwQixHQUNQLE9BQVo5NUIsSUFDRms3QixFQUFTaEIsR0FBZ0IsS0FDekJnQixFQUFTcEIsR0FBZ0IsS0FDekJvQixFQUFTbkIsR0FBZSxLQUN4Qi81QixFQUFRcTZCLHNCQUFpQnY1QixHQUFXLEtBRXRDbzZCLEVBQVNqQixJQUFVLENBQ3JCLElBQ0FudEIsRUFBT2xNLEdBQUcsV0FBWTQ1QixXQUFXdDNCLEtBQUssS0FBTWc0QixJQUNyQ0EsQ0FDVCxtQkNsTEF4N0IsRUFBT0MsUUFBVXc3QixJQ0NiQyxHQUEyQixDQUFDLEVBR2hDLFNBQVNDLG9CQUFvQkMsR0FFNUIsSUFBSUMsRUFBZUgsR0FBeUJFLEdBQzVDLFFBQXFCeDZCLElBQWpCeTZCLEVBQ0gsT0FBT0EsRUFBYTU3QixRQUdyQixJQUFJRCxFQUFTMDdCLEdBQXlCRSxHQUFZLENBR2pEMzdCLFFBQVMsQ0FBQyxHQU9YLE9BSEE2N0IsR0FBb0JGLEdBQVU1N0IsRUFBUUEsRUFBT0MsUUFBUzA3QixxQkFHL0MzN0IsRUFBT0MsT0FDZixDQ3JCQTA3QixvQkFBb0J4M0IsRUFBSSxTQUFTbkUsR0FDaEMsSUFBSSs3QixFQUFTLzdCLEdBQVVBLEVBQU9nOEIsV0FDN0IsV0FBYSxPQUFPaDhCLEVBQWdCLE9BQUcsRUFDdkMsV0FBYSxPQUFPQSxDQUFRLEVBRTdCLE9BREEyN0Isb0JBQW9CbHhCLEVBQUVzeEIsRUFBUSxDQUFFenhCLEVBQUd5eEIsSUFDNUJBLENBQ1IsRUNOQUosb0JBQW9CbHhCLEVBQUksU0FBU3hLLEVBQVNnOEIsR0FDekMsSUFBSSxJQUFJNzFCLEtBQU82MUIsRUFDWE4sb0JBQW9CTyxFQUFFRCxFQUFZNzFCLEtBQVN1MUIsb0JBQW9CTyxFQUFFajhCLEVBQVNtRyxJQUM1RS9HLE9BQU9vRixlQUFleEUsRUFBU21HLEVBQUssQ0FBRTFCLFlBQVksRUFBTUMsSUFBS3MzQixFQUFXNzFCLElBRzNFLEVDUEF1MUIsb0JBQW9CL3dCLEVBQUksV0FDdkIsR0FBMEIsaUJBQWZ1eEIsV0FBeUIsT0FBT0EsV0FDM0MsSUFDQyxPQUFPcDhCLE1BQVEsSUFBSWQsU0FBUyxjQUFiLEVBQ2hCLENBQUUsTUFBT3lMLEdBQ1IsR0FBc0IsaUJBQVg0WixPQUFxQixPQUFPQSxNQUN4QyxDQUNBLENBUHVCLEdDQXhCcVgsb0JBQW9CTyxFQUFJLFNBQVMzdkIsRUFBSzZ2QixHQUFRLE9BQU8vOEIsT0FBT0gsVUFBVW05QixlQUFlbDlCLEtBQUtvTixFQUFLNnZCLEVBQU8sRUNDdEdULG9CQUFvQnhyQixFQUFJLFNBQVNsUSxHQUNYLG9CQUFYa1QsUUFBMEJBLE9BQU9tcEIsYUFDMUNqOUIsT0FBT29GLGVBQWV4RSxFQUFTa1QsT0FBT21wQixZQUFhLENBQUUxOEIsTUFBTyxXQUU3RFAsT0FBT29GLGVBQWV4RSxFQUFTLGFBQWMsQ0FBRUwsT0FBTyxHQUN2RCxpeFpDTkEsSUFJSSxHQUpJLFNBQVN5SixHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQ0EsQ0FBRSxDQUFFLFVBQWUsV0FBYSxPQUFPbXpCLEVBQWtDQyxTQUFXLEVBQUcsY0FBbUIsV0FBYSxPQUFPRCxFQUFrQ0UsYUFBZSxFQUFHLGNBQW1CLFdBQWEsT0FBT0YsRUFBa0NHLGFBQWUsRUFBRyxjQUFtQixXQUFhLE9BQU9ILEVBQWtDSSxhQUFlLEVBQUcsUUFBYSxXQUFhLE9BQU9KLEVBQTJDLE9BQUcsRUFBRyxXQUFnQixXQUFhLE9BQU9BLEVBQWtDSyxVQUFZLEVBQUcsWUFBaUIsV0FBYSxPQUFPTCxFQUFrQ00sV0FBYSxFQUFHLFdBQWdCLFdBQWEsT0FBT04sRUFBa0NPLFVBQVksRUFBRyxVQUFlLFdBQWEsT0FBT1AsRUFBa0NRLFNBQVcsRUFBRyxRQUFhLFdBQWEsT0FBT1IsRUFBa0NTLE9BQVMsRUFBRyxPQUFZLFdBQWEsT0FBT1QsRUFBa0NVLE1BQVEsRUFBRyxTQUFjLFdBQWEsT0FBT1YsRUFBa0NXLFFBQVUsSUNBdmhDLEdBSkksU0FBUzd6QixHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsZ0JBQXFCLFdBQWEsT0FBTyt6QixFQUFrQ0MsZUFBaUIsRUFBRyxtQkFBd0IsV0FBYSxPQUFPRCxFQUFrQ0Usa0JBQW9CLEVBQUcsUUFBYSxXQUFhLE9BQU9GLEVBQWtDRyxPQUFTLEVBQUcsWUFBaUIsV0FBYSxPQUFPSCxFQUFrQ0ksV0FBYSxJQ0ExWSxHQUpJLFNBQVNsMEIsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLEtBQVUsV0FBYSxPQUFPbzBCLEVBQXNDQyxJQUFNLEVBQUcsSUFBUyxXQUFhLE9BQU9ELEVBQXNDRSxHQUFLLEVBQUcsV0FBZ0IsV0FBYSxPQUFPRixFQUFzQ0csVUFBWSxFQUFHLElBQVMsV0FBYSxPQUFPSCxFQUFzQ0ksR0FBSyxFQUFHLElBQVMsV0FBYSxPQUFPSixFQUFzQ0ssR0FBSyxFQUFHLFFBQWEsV0FBYSxPQUFPTCxFQUErQyxPQUFHLEVBQUcsT0FBWSxXQUFhLE9BQU9BLEVBQXNDTSxNQUFRLDZEQ0E5a0IsR0FKSSxTQUFTejBCLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxnQkFBcUIsV0FBYSxPQUFPMjBCLEVBQXFEQyxlQUFpQixJQ0FsSixHQUpJLFNBQVMzMEIsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLGVBQW9CLFdBQWEsT0FBTzYwQixFQUFxREMsY0FBZ0IsSUNBaEosR0FKSSxTQUFTNzBCLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxRQUFhLFdBQWEsT0FBTyswQixFQUEyRCxPQUFHLElDRi9ILE1BQU1DLEdBQWlCLHFCQUNqQkMsR0FBdUIsMkJBQ3ZCQyxHQUFlLG1CQUNmQyxHQUFxQix5QkFDckJDLEdBQWUsbUJBQ2ZDLEdBQVEsWUFDUkMsR0FBVyxlQUVqQixTQUFTQyxhQUFhbCtCLEdBQzNCLE1BQU8sQ0FDSHFCLEtBQU1zOEIsR0FDTlEsU0FBU1YsRUFBQUEsR0FBQUEsZ0JBQWV6OUIsR0FFOUIsQ0FFTyxTQUFTbytCLGtCQUFrQjFmLEdBQ2hDLE1BQU8sQ0FDSHJkLEtBQU11OEIsR0FDTk8sUUFBU3pmLEVBRWYsQ0FFTyxTQUFTMmYsV0FBV3IrQixHQUN6QixNQUFPLENBQ0hxQixLQUFNdzhCLEdBQ05NLFFBQVNuK0IsRUFFZixDQUVPLFNBQVNzK0IsZ0JBQWdCQyxHQUM5QixNQUFPLENBQ0hsOUIsS0FBTXk4QixHQUNOSyxRQUFTSSxFQUVmLENBRU8sU0FBU0MsV0FBV3grQixHQUN6QixNQUFPLENBQ0xxQixLQUFNMDhCLEdBQ05JLFFBQVNuK0IsRUFFYixDQUVPLFNBQVM4bUIsTUFBTXNLLEVBQVMsQ0FBQyxHQUU5QixNQUFPLENBQ0wvdkIsS0FBTTI4QixHQUNORyxRQUFTL00sRUFFYixDQUVPLFNBQVNxTixRQUFRck4sRUFBU0EsS0FBTSxHQUVyQyxNQUFPLENBQ0wvdkIsS0FBTTQ4QixHQUNORSxRQUFTL00sRUFFYixDQzlCQSxPQTdCQSxTQUFTc04sYUFDUCxJQUFJQyxFQUFNLENBQ1JDLFNBQVUsQ0FBQyxFQUNYQyxRQUFTLENBQUMsRUFDVkMsS0FBTUEsT0FDTkMsTUFBT0EsT0FDUEMsS0FBTSxXQUFZLEVBQ2xCQyxTQUFVLFdBQVksR0FHeEIsR0FBcUIsb0JBQVhwYixPQUNSLE9BQU84YSxFQUdULElBQ0VBLEVBQU05YSxPQUVOLElBQUssSUFBSThYLElBREcsQ0FBQyxPQUFRLE9BQVEsWUFFdkJBLEtBQVE5WCxTQUNWOGEsRUFBSWhELEdBQVE5WCxPQUFPOFgsR0FHekIsQ0FBRSxNQUFPMXhCLEdBQ1AxSCxRQUFRa0MsTUFBTXdGLEVBQ2hCLENBRUEsT0FBTzAwQixDQUNULENBRUEsR0N6QkksSUNKSSxTQUFTLzFCLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFHdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsRUFDdEMsQ0FFbUMsQ0FBRSxDQUFHLEdDSmhDLFNBQVNBLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFHdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsRUFDdEMsQ0FFbUMsQ0FBRSxDQUFHLEdGSmhDLFNBQVNBLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxRQUFhLFdBQWEsT0FBT3UyQixFQUE2RCxPQUFHLEtHQXBJLEdBSkksU0FBU3QyQixHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsUUFBYSxXQUFhLE9BQU93MkIsRUFBMEQsT0FBRyxJQ0FqSSxHQUpJLFNBQVN2MkIsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLFFBQWEsV0FBYSxPQUFPeTJCLEVBQTBELE9BQUcsSUNBakksR0FKSSxTQUFTeDJCLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxRQUFhLFdBQWEsT0FBTzAyQixFQUF3RCxPQUFHLElDQS9ILEdBSkksU0FBU3oyQixHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsUUFBYSxXQUFhLE9BQU8yMkIsRUFBZ0UsT0FBRyxJQ0F2SSxHQUpJLFNBQVMxMkIsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLFFBQWEsV0FBYSxPQUFPNDJCLEVBQXlELE9BQUcsc0hDRXBJLE1BQU1DLEdBQXFCQyxHQUFBQSxRQUFBQSxJQUFPQyxHQUNoQyxPQUNBLFNBQ0EsUUFDQSxVQUNBLFVBQ0EsbUJBQ0EsVUFDQSxtQkFDQSxZQUNBLFlBQ0EsVUFDQSxXQUNBLFdBQ0EsY0FDQSxPQUNBLGNBdUJhLFNBQVNDLG1CQUFtQkMsR0FBVyxPQUFFQyxHQUFXLENBQUMsR0FFbEUsSUFBS0osR0FBQUEsUUFBQUEsSUFBT0ssTUFBTUYsR0FDaEIsTUFBTyxDQUNMRyxPQUFRTixHQUFBQSxRQUFBQSxNQUNSTywwQkFBMkIsTUFJL0IsSUFBS0gsRUFFSCxNQUE0QixTQUF4QkQsRUFBVTE3QixJQUFJLE1BQ1QsQ0FDTDY3QixPQUFRSCxFQUFVMTdCLElBQUksU0FBVXU3QixHQUFBQSxRQUFBQSxPQUNoQ08sMEJBQTJCLE1BR3RCLENBQ0xELE9BQVFILEVBQVV4TyxRQUFPLENBQUNoUCxFQUFHNmQsSUFBTVQsR0FBbUJ4M0IsU0FBU2k0QixLQUMvREQsMEJBQTJCLE1BT2pDLEdBQUlKLEVBQVUxN0IsSUFBSSxXQUFZLENBQzVCLE1BSU04N0IsRUFKNkJKLEVBQ2hDMTdCLElBQUksVUFBV3U3QixHQUFBQSxRQUFBQSxJQUFPLENBQUMsSUFDdkJTLFNBRTBEeGtCLFFBRTdELE1BQU8sQ0FDTHFrQixPQUFRSCxFQUFVTyxNQUNoQixDQUFDLFVBQVdILEVBQTJCLFVBQ3ZDUCxHQUFBQSxRQUFBQSxPQUVGTyw0QkFFSixDQUVBLE1BQU8sQ0FDTEQsT0FBUUgsRUFBVTE3QixJQUFJLFVBQ2xCMDdCLEVBQVUxN0IsSUFBSSxTQUFVdTdCLEdBQUFBLFFBQUFBLE9BQ3hCQSxHQUFBQSxRQUFBQSxNQUNKTywwQkFBMkIsS0FFL0Isd0NDbkVBLE1BQU1JLEdBQXVCLFVBRWhCQyxZQUFlQyxHQUFVYixHQUFBQSxRQUFBQSxTQUFZYyxXQUFXRCxHQUVoREUsY0FBaUJyaEMsR0FBVWtoQyxZQUFZbGhDLEdBQVNBLEVBQU1zaEMsT0FBU3RoQyxFQUVyRSxTQUFTdWhDLFVBQVcxNUIsR0FDekIsT0FBSTI1QixTQUFTMzVCLEdBR053NUIsY0FBY3g1QixHQUZaLENBQUMsQ0FHWixDQVlPLFNBQVM0NUIsY0FBY0MsR0FDNUIsR0FBSVIsWUFBWVEsR0FDZCxPQUFPQSxFQUVULEdBQUlBLGFBQWNsQyxHQUFJSyxLQUNwQixPQUFPNkIsRUFFVCxJQUFLRixTQUFTRSxHQUNaLE9BQU9BLEVBRVQsR0FBSXY5QixNQUFNMkQsUUFBUTQ1QixHQUNoQixPQUFPcEIsR0FBQUEsUUFBQUEsSUFBT29CLEdBQUkzNUIsSUFBSTA1QixlQUFlRSxTQUV2QyxJQUFJQyxFQUFBQSxHQUFBQSxTQUFXRixFQUFHRyxTQUFVLENBRTFCLE1BQU1DLEVBd0JILFNBQVNDLHdCQUF5QkMsR0FDdkMsS0FBS0osRUFBQUEsR0FBQUEsU0FBV0ksRUFBTUgsU0FDcEIsT0FBT0csRUFFVCxNQUFNQyxFQUFTLENBQUMsRUFDVkMsRUFBVSxRQUNWQyxFQUFZLENBQUMsRUFDbkIsSUFBSyxJQUFJQyxLQUFRSixFQUFNSCxVQUNyQixHQUFLSSxFQUFPRyxFQUFLLEtBQVNELEVBQVVDLEVBQUssS0FBT0QsRUFBVUMsRUFBSyxJQUFJQyxpQkFFNUQsQ0FDTCxJQUFLRixFQUFVQyxFQUFLLElBQUssQ0FFdkJELEVBQVVDLEVBQUssSUFBTSxDQUNuQkMsa0JBQWtCLEVBQ2xCei9CLE9BQVEsR0FJVnEvQixFQURxQixHQUFHRyxFQUFLLEtBQUtGLElBQVVDLEVBQVVDLEVBQUssSUFBSXgvQixVQUN0Q3EvQixFQUFPRyxFQUFLLFdBRTlCSCxFQUFPRyxFQUFLLEdBQ3JCLENBQ0FELEVBQVVDLEVBQUssSUFBSXgvQixRQUFVLEVBRTdCcS9CLEVBRHVCLEdBQUdHLEVBQUssS0FBS0YsSUFBVUMsRUFBVUMsRUFBSyxJQUFJeC9CLFVBQ3RDdy9CLEVBQUssRUFDbEMsTUFqQkVILEVBQU9HLEVBQUssSUFBTUEsRUFBSyxHQW1CM0IsT0FBT0gsQ0FDVCxDQXJEOEJGLENBQXdCTCxHQUNsRCxPQUFPcEIsR0FBQUEsUUFBQUEsV0FBY3dCLEdBQW1CLzVCLElBQUkwNUIsY0FDOUMsQ0FDQSxPQUFPbkIsR0FBQUEsUUFBQUEsV0FBY29CLEdBQUkzNUIsSUFBSTA1QixjQUMvQixDQTJETyxTQUFTYSxlQUFlcitCLEdBQzdCLE9BQUdFLE1BQU0yRCxRQUFRN0QsR0FDUkEsRUFDRixDQUFDQSxFQUNWLENBRU8sU0FBU3MrQixLQUFLcmhCLEdBQ25CLE1BQXFCLG1CQUFQQSxDQUNoQixDQUVPLFNBQVNzZ0IsU0FBUzcwQixHQUN2QixRQUFTQSxHQUFzQixpQkFBUkEsQ0FDekIsQ0FFTyxTQUFTNjFCLE9BQU8zNkIsR0FDckIsTUFBeUIsbUJBQVhBLENBQ2hCLENBRU8sU0FBU0MsUUFBUUQsR0FDdEIsT0FBTzFELE1BQU0yRCxRQUFRRCxFQUN2QixDQUdPLE1BQU00NkIsR0FBVUMsR0FBQUEsUUFFaEIsU0FBU0MsT0FBT2gyQixFQUFLdVUsR0FDMUIsT0FBT3poQixPQUFPZ0gsS0FBS2tHLEdBQUsrbkIsUUFBTyxDQUFDdU4sRUFBUXo3QixLQUN0Q3k3QixFQUFPejdCLEdBQU8wYSxFQUFHdlUsRUFBSW5HLEdBQU1BLEdBQ3BCeTdCLElBQ04sQ0FBQyxFQUNOLENBRU8sU0FBU1csVUFBVWoyQixFQUFLdVUsR0FDN0IsT0FBT3poQixPQUFPZ0gsS0FBS2tHLEdBQUsrbkIsUUFBTyxDQUFDdU4sRUFBUXo3QixLQUN0QyxJQUFJMFIsRUFBTWdKLEVBQUd2VSxFQUFJbkcsR0FBTUEsR0FHdkIsT0FGRzBSLEdBQXNCLGlCQUFSQSxHQUNmelksT0FBT29qQyxPQUFPWixFQUFRL3BCLEdBQ2pCK3BCLENBQU0sR0FDWixDQUFDLEVBQ04sQ0FHTyxTQUFTYSxzQkFBc0JDLEdBQ3BDLE1BQU8sRUFBR0MsV0FBVUMsY0FDWHZiLEdBQVF3YixHQUNTLG1CQUFYQSxFQUNGQSxFQUFPSCxLQUdUcmIsRUFBS3diLEVBR2xCLENBeU9BLFNBQVNDLHNCQUFzQm5qQyxFQUFPNGdDLEVBQVF3QyxFQUFpQkMsRUFBcUJ4QyxHQUNsRixJQUFJRCxFQUFRLE1BQU8sR0FDbkIsSUFBSXJoQixFQUFTLEdBQ1QrakIsRUFBVzFDLEVBQU83N0IsSUFBSSxZQUN0QncrQixFQUFtQjNDLEVBQU83N0IsSUFBSSxZQUM5QnkrQixFQUFVNUMsRUFBTzc3QixJQUFJLFdBQ3JCMCtCLEVBQVU3QyxFQUFPNzdCLElBQUksV0FDckI3QyxFQUFPMCtCLEVBQU83N0IsSUFBSSxRQUNsQmlJLEVBQVM0ekIsRUFBTzc3QixJQUFJLFVBQ3BCMitCLEVBQVk5QyxFQUFPNzdCLElBQUksYUFDdkI0K0IsRUFBWS9DLEVBQU83N0IsSUFBSSxhQUN2QjYrQixFQUFjaEQsRUFBTzc3QixJQUFJLGVBQ3pCOCtCLEVBQVdqRCxFQUFPNzdCLElBQUksWUFDdEIrK0IsRUFBV2xELEVBQU83N0IsSUFBSSxZQUN0QmcvQixFQUFVbkQsRUFBTzc3QixJQUFJLFdBRXpCLE1BQU1pL0IsRUFBc0JaLElBQXdDLElBQXJCRyxFQUN6Q1UsRUFBV2prQyxRQUtYa2tDLEVBQ0pGLEdBSHdDQyxHQUFxQixVQUFUL2hDLE1BRmhDOGhDLElBQXdCQyxHQVN4Q0UsRUFBa0JiLEdBQXNCLE9BQVZ0akMsRUFVcEMsR0FORWdrQyxJQUNJQyxJQUNBRSxJQUNBZCxJQUNBbmhDLEVBSUosT0FEQXFkLEVBQU81YyxLQUFLLGtDQUNMNGMsRUFTVCxHQUpFNGtCLElBQ0lqaUMsSUFDQWdpQyxFQUdKLE1BQU8sR0FJVCxJQUFJRSxFQUF1QixXQUFUbGlDLEdBQXFCbEMsRUFDbkNxa0MsRUFBc0IsVUFBVG5pQyxHQUFvQmlDLE1BQU0yRCxRQUFROUgsSUFBVUEsRUFBTTRDLE9BQy9EMGhDLEVBQTBCLFVBQVRwaUMsR0FBb0JvK0IsR0FBQUEsUUFBQUEsS0FBUWlFLE9BQU92a0MsSUFBVUEsRUFBTWlELFFBU3hFLE1BS011aEMsRUFMWSxDQUNoQkosRUFBYUMsRUFBWUMsRUFUSyxVQUFUcGlDLEdBQXFDLGlCQUFWbEMsR0FBc0JBLEVBQy9DLFNBQVRrQyxHQUFtQmxDLGFBQWlCdy9CLEdBQUlLLEtBQzVCLFlBQVQzOUIsSUFBdUJsQyxJQUFtQixJQUFWQSxHQUN4QixXQUFUa0MsSUFBc0JsQyxHQUFtQixJQUFWQSxHQUNyQixZQUFUa0MsSUFBdUJsQyxHQUFtQixJQUFWQSxHQUN4QixXQUFUa0MsR0FBc0MsaUJBQVZsQyxHQUFnQyxPQUFWQSxFQUNuQyxXQUFUa0MsR0FBc0MsaUJBQVZsQyxHQUFzQkEsR0FPekN5a0MsTUFBS3hoQixLQUFPQSxJQUU3QyxHQUFJK2dCLElBQXdCUSxJQUFtQm5CLEVBRTdDLE9BREE5akIsRUFBTzVjLEtBQUssa0NBQ0w0YyxFQUVULEdBQ1csV0FBVHJkLElBQytCLE9BQTlCMitCLEdBQytCLHFCQUE5QkEsR0FDRixDQUNBLElBQUk2RCxFQUFZMWtDLEVBQ2hCLEdBQW9CLGlCQUFWQSxFQUNSLElBQ0Uwa0MsRUFBWUMsS0FBS0MsTUFBTTVrQyxFQUN6QixDQUFFLE1BQU84SyxHQUVQLE9BREF5VSxFQUFPNWMsS0FBSyw2Q0FDTDRjLENBQ1QsQ0FFQ3FoQixHQUFVQSxFQUFPaUUsSUFBSSxhQUFlckMsT0FBT2UsRUFBaUJnQixTQUFXaEIsRUFBaUJnQixVQUN6RmhCLEVBQWlCMzJCLFNBQVFwRyxTQUNEaEYsSUFBbkJrakMsRUFBVWwrQixJQUNYK1ksRUFBTzVjLEtBQUssQ0FBRW1pQyxRQUFTdCtCLEVBQUtsQixNQUFPLCtCQUNyQyxJQUdEczdCLEdBQVVBLEVBQU9pRSxJQUFJLGVBQ3RCakUsRUFBTzc3QixJQUFJLGNBQWM2SCxTQUFRLENBQUN1SixFQUFLM1AsS0FDckMsTUFBTXUrQixFQUFPNUIsc0JBQXNCdUIsRUFBVWwrQixHQUFNMlAsR0FBSyxFQUFPa3RCLEVBQXFCeEMsR0FDcEZ0aEIsRUFBTzVjLFFBQVFvaUMsRUFDWmg5QixLQUFLekMsSUFBVSxDQUFHdy9CLFFBQVN0K0IsRUFBS2xCLFlBQVUsR0FHbkQsQ0FFQSxHQUFJeStCLEVBQVMsQ0FDWCxJQUFJbGpDLEVBakh1Qm1rQyxFQUFDN3VCLEVBQUs4dUIsS0FFbkMsSUFEVyxJQUFJbEwsT0FBT2tMLEdBQ1pDLEtBQUsvdUIsR0FDYixNQUFPLDZCQUErQjh1QixDQUN4QyxFQTZHWUQsQ0FBZ0JobEMsRUFBTytqQyxHQUM3QmxqQyxHQUFLMGUsRUFBTzVjLEtBQUs5QixFQUN2QixDQUVBLEdBQUlpakMsR0FDVyxVQUFUNWhDLEVBQWtCLENBQ3BCLElBQUlyQixFQXpJc0Jza0MsRUFBQ2h2QixFQUFLOEIsS0FDcEMsSUFBSzlCLEdBQU84QixHQUFPLEdBQUs5QixHQUFPQSxFQUFJdlQsT0FBU3FWLEVBQzFDLE1BQU8sK0JBQStCQSxTQUFtQixJQUFSQSxFQUFZLEdBQUssS0FDcEUsRUFzSWNrdEIsQ0FBaUJubEMsRUFBTzhqQyxHQUM5QmpqQyxHQUFLMGUsRUFBTzVjLEtBQUs5QixFQUN2QixDQUdGLEdBQUlnakMsR0FDVyxVQUFUM2hDLEVBQWtCLENBQ3BCLElBQUlyQixFQTFJc0J1a0MsRUFBQ2p2QixFQUFLMkQsS0FDcEMsR0FBSTNELEdBQU9BLEVBQUl2VCxPQUFTa1gsRUFDdEIsTUFBTyxvQ0FBb0NBLFNBQW1CLElBQVJBLEVBQVksR0FBSyxLQUN6RSxFQXVJY3NyQixDQUFpQnBsQyxFQUFPNmpDLEdBQzlCaGpDLEdBQUswZSxFQUFPNWMsS0FBSyxDQUFFMGlDLFlBQVksRUFBTS8vQixNQUFPekUsR0FDbEQsQ0FHRixHQUFJK2lDLEdBQ1csVUFBVDFoQyxFQUFrQixDQUNwQixJQUFJb2pDLEVBN0t5QkMsRUFBQ3B2QixFQUFLeXRCLEtBQ3ZDLEdBQUt6dEIsSUFHZSxTQUFoQnl0QixJQUEwQyxJQUFoQkEsR0FBc0IsQ0FDbEQsTUFBTTc5QixHQUFPbTRCLEVBQUFBLEdBQUFBLFFBQU8vbkIsR0FDZG5SLEVBQU1lLEVBQUt5L0IsUUFFakIsR0FEc0JydkIsRUFBSXZULE9BQVNvQyxFQUFJcU0sS0FDckIsQ0FDaEIsSUFBSW8wQixHQUFpQnhILEVBQUFBLEdBQUFBLE9BTXJCLEdBTEFsNEIsRUFBSzZHLFNBQVEsQ0FBQ3lkLEVBQU1qbUIsS0FDZjJCLEVBQUtrc0IsUUFBT2hQLEdBQUt1ZixPQUFPdmYsRUFBRXJKLFFBQVVxSixFQUFFckosT0FBT3lRLEdBQVFwSCxJQUFNb0gsSUFBTWhaLEtBQU8sSUFDekVvMEIsRUFBaUJBLEVBQWV4M0IsSUFBSTdKLEdBQ3RDLElBRXlCLElBQXhCcWhDLEVBQWVwMEIsS0FDaEIsT0FBT28wQixFQUFlMTlCLEtBQUkzRCxJQUFDLENBQU1nQyxNQUFPaEMsRUFBR2tCLE1BQU8sNkJBQTRCb2dDLFNBRWxGLENBQ0YsR0EwSnVCSCxDQUFvQnZsQyxFQUFPNGpDLEdBQzFDMEIsR0FBYy9sQixFQUFPNWMsUUFBUTJpQyxFQUNuQyxDQUdGLEdBQUk1QixHQUEyQixJQUFkQSxFQUFpQixDQUNoQyxJQUFJN2lDLEVBekx5QjhrQyxFQUFDeHZCLEVBQUsyRCxLQUNyQyxHQUFJM0QsRUFBSXZULE9BQVNrWCxFQUNmLE1BQU8sZ0NBQWdDQSxjQUF3QixJQUFSQSxFQUFZLElBQU0sSUFDM0UsRUFzTFk2ckIsQ0FBa0IzbEMsRUFBTzBqQyxHQUMvQjdpQyxHQUFLMGUsRUFBTzVjLEtBQUs5QixFQUN2QixDQUVBLEdBQUk4aUMsRUFBVyxDQUNiLElBQUk5aUMsRUF0SnlCK2tDLEVBQUN6dkIsRUFBSzhCLEtBQ3JDLEdBQUk5QixFQUFJdlQsT0FBU3FWLEVBQ2YsTUFBTywwQkFBMEJBLGNBQXdCLElBQVJBLEVBQVksSUFBTSxJQUNyRSxFQW1KWTJ0QixDQUFrQjVsQyxFQUFPMmpDLEdBQy9COWlDLEdBQUswZSxFQUFPNWMsS0FBSzlCLEVBQ3ZCLENBRUEsR0FBSTJpQyxHQUF1QixJQUFaQSxFQUFlLENBQzVCLElBQUkzaUMsRUExUHVCZ2xDLEVBQUUxdkIsRUFBSzJELEtBQ3BDLEdBQUkzRCxFQUFNMkQsRUFDUixNQUFPLHVDQUF1Q0EsR0FDaEQsRUF1UFkrckIsQ0FBZ0I3bEMsRUFBT3dqQyxHQUM3QjNpQyxHQUFLMGUsRUFBTzVjLEtBQUs5QixFQUN2QixDQUVBLEdBQUk0aUMsR0FBdUIsSUFBWkEsRUFBZSxDQUM1QixJQUFJNWlDLEVBelB1QmlsQyxFQUFFM3ZCLEVBQUs4QixLQUNwQyxHQUFJOUIsRUFBTThCLEVBQ1IsTUFBTywwQ0FBMENBLEdBQ25ELEVBc1BZNnRCLENBQWdCOWxDLEVBQU95akMsR0FDN0I1aUMsR0FBSzBlLEVBQU81YyxLQUFLOUIsRUFDdkIsQ0FFQSxHQUFhLFdBQVRxQixFQUFtQixDQUNyQixJQUFJckIsRUFRSixHQU5FQSxFQURhLGNBQVhtTSxFQTNOd0IrNEIsQ0FBQzV2QixJQUMvQixHQUFJcFcsTUFBTSs1QixLQUFLOEssTUFBTXp1QixJQUNuQixNQUFPLDBCQUNULEVBeU5VNHZCLENBQWlCL2xDLEdBQ0gsU0FBWGdOLEVBdk5hZzVCLENBQUM3dkIsSUFFM0IsR0FEQUEsRUFBTUEsRUFBSTFGLFdBQVczQixlQUNoQiwyRUFBMkVvMkIsS0FBSy91QixHQUNuRixNQUFPLHNCQUNULEVBb05VNnZCLENBQWFobUMsR0FwT0tpbUMsQ0FBRTl2QixJQUM5QixHQUFLQSxHQUFzQixpQkFBUkEsRUFDakIsTUFBTyx3QkFDVCxFQW1PVTh2QixDQUFlam1DLElBRWxCYSxFQUFLLE9BQU8wZSxFQUNqQkEsRUFBTzVjLEtBQUs5QixFQUNkLE1BQU8sR0FBYSxZQUFUcUIsRUFBb0IsQ0FDN0IsSUFBSXJCLEVBalB1QnFsQyxDQUFFL3ZCLElBQy9CLEdBQWUsU0FBUkEsR0FBMEIsVUFBUkEsSUFBMkIsSUFBUkEsSUFBd0IsSUFBUkEsRUFDMUQsTUFBTyx5QkFDVCxFQThPWSt2QixDQUFnQmxtQyxHQUMxQixJQUFLYSxFQUFLLE9BQU8wZSxFQUNqQkEsRUFBTzVjLEtBQUs5QixFQUNkLE1BQU8sR0FBYSxXQUFUcUIsRUFBbUIsQ0FDNUIsSUFBSXJCLEVBdlFzQnliLENBQUVuRyxJQUM5QixJQUFLLG1CQUFtQit1QixLQUFLL3VCLEdBQzNCLE1BQU8sd0JBQ1QsRUFvUVltRyxDQUFldGMsR0FDekIsSUFBS2EsRUFBSyxPQUFPMGUsRUFDakJBLEVBQU81YyxLQUFLOUIsRUFDZCxNQUFPLEdBQWEsWUFBVHFCLEVBQW9CLENBQzdCLElBQUlyQixFQXJRdUJzbEMsQ0FBRWh3QixJQUMvQixJQUFLLFVBQVUrdUIsS0FBSy91QixHQUNsQixNQUFPLDBCQUNULEVBa1FZZ3dCLENBQWdCbm1DLEdBQzFCLElBQUthLEVBQUssT0FBTzBlLEVBQ2pCQSxFQUFPNWMsS0FBSzlCLEVBQ2QsTUFBTyxHQUFhLFVBQVRxQixFQUFrQixDQUMzQixJQUFNbWlDLElBQWNDLEVBQ2xCLE9BQU8va0IsRUFFTnZmLEdBQ0RBLEVBQU00TSxTQUFRLENBQUN5ZCxFQUFNam1CLEtBQ25CLE1BQU0yZ0MsRUFBTzVCLHNCQUFzQjlZLEVBQU11VyxFQUFPNzdCLElBQUksVUFBVSxFQUFPcytCLEVBQXFCeEMsR0FDMUZ0aEIsRUFBTzVjLFFBQVFvaUMsRUFDWmg5QixLQUFLbEgsSUFBUSxDQUFHdUYsTUFBT2hDLEVBQUdrQixNQUFPekUsTUFBUSxHQUdsRCxNQUFPLEdBQWEsU0FBVHFCLEVBQWlCLENBQzFCLElBQUlyQixFQTlRb0J1bEMsQ0FBRWp3QixJQUM1QixHQUFLQSxLQUFTQSxhQUFlcXBCLEdBQUlLLE1BQy9CLE1BQU8sc0JBQ1QsRUEyUVl1RyxDQUFhcG1DLEdBQ3ZCLElBQUthLEVBQUssT0FBTzBlLEVBQ2pCQSxFQUFPNWMsS0FBSzlCLEVBQ2QsQ0FFQSxPQUFPMGUsQ0FDVCxDQUdPLE1Bc0JNOG1CLEtBQVFoK0IsSUFDbkIsSUFBSXFNLEVBUUosT0FMRUEsRUFERXJNLGFBQWVhLEdBQ1JiLEVBRUFhLEdBQU84SyxLQUFLM0wsRUFBSW9JLFdBQVksU0FHaENpRSxFQUFPakUsU0FBUyxTQUFTLEVBR3JCNjFCLEdBQVUsQ0FDckJDLGlCQUFrQixDQUNoQkMsTUFBT0EsQ0FBQzk3QixFQUFHQyxJQUFNRCxFQUFFM0YsSUFBSSxRQUFRMGhDLGNBQWM5N0IsRUFBRTVGLElBQUksU0FDbkRtZSxPQUFRQSxDQUFDeFksRUFBR0MsSUFBTUQsRUFBRTNGLElBQUksVUFBVTBoQyxjQUFjOTdCLEVBQUU1RixJQUFJLFlBRXhEMmhDLFdBQVksQ0FDVkYsTUFBT0EsQ0FBQzk3QixFQUFHQyxJQUFNRCxFQUFFKzdCLGNBQWM5N0IsS0FJeEJnOEIsY0FBaUIvNkIsSUFDNUIsSUFBSWc3QixFQUFVLEdBRWQsSUFBSyxJQUFJcG1DLEtBQVFvTCxFQUFNLENBQ3JCLElBQUl1SyxFQUFNdkssRUFBS3BMLFFBQ0hnQixJQUFSMlUsR0FBNkIsS0FBUkEsR0FDdkJ5d0IsRUFBUWprQyxLQUFLLENBQUNuQyxFQUFNLElBQUtxbUMsbUJBQW1CMXdCLEdBQUsxTixRQUFRLE9BQU8sTUFBTVQsS0FBSyxJQUUvRSxDQUNBLE9BQU80K0IsRUFBUTUrQixLQUFLLElBQUksRUFJYjgrQixpQkFBbUJBLENBQUNwOEIsRUFBRUMsRUFBR2xFLE9BQzNCc2dDLEVBQUFBLEdBQUFBLFNBQUt0Z0MsR0FBT0QsSUFDWndnQyxFQUFBQSxHQUFBQSxTQUFHdDhCLEVBQUVsRSxHQUFNbUUsRUFBRW5FLE1BSWpCLFNBQVN5Z0Msc0JBQXNCQyxHQUNwQyxTQUFLQSxHQUFPQSxFQUFJbitCLFFBQVEsY0FBZ0IsR0FBS20rQixFQUFJbitCLFFBQVEsY0FBZ0IsR0FBYSxTQUFSbStCLEVBSWhGLENBMkJPLE1BQU1DLG1CQUFzQjkrQixHQUFzQixpQkFBUEEsR0FBbUJBLGFBQWVyRixPQUFTcUYsRUFBSTBSLE9BQU90UixRQUFRLE1BQU8sT0FBUyxHQUVuSDIrQixtQkFBc0IvK0IsSUFBUWcvQixFQUFBQSxHQUFBQSxTQUFXRixtQkFBbUI5K0IsR0FBS0ksUUFBUSxPQUFRLE1BRWpGNitCLGNBQWlCQyxJQUM1QixNQUFNQyxFQUFrQixNQUN4QixPQUFHMUosR0FBQUEsSUFBSTZDLE1BQU00RyxHQUNKQSxFQUFPdFYsUUFBTyxDQUFDaFAsRUFBRzZkLElBQU0wRyxFQUFnQnRDLEtBQUtwRSxLQUUvQ3JoQyxPQUFPZ0gsS0FBSzhnQyxHQUFRdFYsUUFBUXpyQixHQUFRZ2hDLEVBQWdCdEMsS0FBSzErQixJQUFLLEVBRTFEaWhDLG9CQUF1QkYsR0FBV0EsRUFBT3RWLFFBQU8sQ0FBQ2hQLEVBQUc2ZCxJQUFNLCtDQUErQ29FLEtBQUtwRSxLQU1wSCxTQUFTNEcsZUFBZXA2QixFQUFPcTZCLEVBQVlDLEVBQVlBLEtBQU0sR0FDbEUsR0FBb0IsaUJBQVZ0NkIsR0FBc0JuSixNQUFNMkQsUUFBUXdGLElBQW9CLE9BQVZBLElBQW1CcTZCLEVBQ3pFLE9BQU9yNkIsRUFHVCxNQUFNWCxFQUFNbE4sT0FBT29qQyxPQUFPLENBQUMsRUFBR3YxQixHQVU5QixPQVJBN04sT0FBT2dILEtBQUtrRyxHQUFLQyxTQUFRazBCLElBQ3BCQSxJQUFNNkcsR0FBY0MsRUFBVWo3QixFQUFJbTBCLEdBQUlBLFVBQ2hDbjBCLEVBQUltMEIsR0FHYm4wQixFQUFJbTBCLEdBQUs0RyxlQUFlLzZCLEVBQUltMEIsR0FBSTZHLEVBQVlDLEVBQVUsSUFHakRqN0IsQ0FDVCxDQUVPLFNBQVNrN0IsVUFBVWhnQyxHQUN4QixHQUFxQixpQkFBVkEsRUFDVCxPQUFPQSxFQU9ULEdBSklBLEdBQVNBLEVBQU15NUIsT0FDakJ6NUIsRUFBUUEsRUFBTXk1QixRQUdLLGlCQUFWejVCLEdBQWdDLE9BQVZBLEVBQy9CLElBQ0UsT0FBTzg4QixLQUFLa0QsVUFBVWhnQyxFQUFPLEtBQU0sRUFDckMsQ0FDQSxNQUFPaUQsR0FDTCxPQUFPOUgsT0FBTzZFLEVBQ2hCLENBR0YsT0FBR0EsUUFDTSxHQUdGQSxFQUFNNEksVUFDZixDQVVPLFNBQVNxM0Isa0JBQWtCQyxHQUFPLFVBQUVDLEdBQVksRUFBSyxZQUFFQyxHQUFjLEdBQVMsQ0FBQyxHQUNwRixJQUFJM0gsR0FBQUEsUUFBQUEsSUFBT0ssTUFBTW9ILEdBQ2YsTUFBTSxJQUFJaGxDLE1BQU0sK0RBRWxCLE1BQU1tbEMsRUFBWUgsRUFBTWhqQyxJQUFJLFFBQ3RCb2pDLEVBQVVKLEVBQU1oakMsSUFBSSxNQUUxQixJQUFJcWpDLEVBQXVCLEdBZ0IzQixPQVpJTCxHQUFTQSxFQUFNTSxVQUFZRixHQUFXRCxHQUFhRCxHQUNyREcsRUFBcUJ6bEMsS0FBSyxHQUFHd2xDLEtBQVdELFVBQWtCSCxFQUFNTSxjQUcvREYsR0FBV0QsR0FDWkUsRUFBcUJ6bEMsS0FBSyxHQUFHd2xDLEtBQVdELEtBRzFDRSxFQUFxQnpsQyxLQUFLdWxDLEdBSW5CRixFQUFZSSxFQUF3QkEsRUFBcUIsSUFBTSxFQUN4RSxDQUVPLFNBQVNFLGFBQWFQLEVBQU9RLEdBV2xDLE9BVnVCVCxrQkFBa0JDLEVBQU8sQ0FBRUMsV0FBVyxJQUsxRGpnQyxLQUFJeWdDLEdBQ0lELEVBQVlDLEtBRXBCdlcsUUFBT2p5QixRQUFtQndCLElBQVZ4QixJQUVMLEVBQ2hCLENBaUJBLFNBQVN5b0MsbUJBQW1CcGdDLEdBQzFCLE9BQU9BLEVBQ0pJLFFBQVEsTUFBTyxLQUNmQSxRQUFRLE1BQU8sS0FDZkEsUUFBUSxLQUFNLEdBQ25CLENBRU8sTUFBTWlnQyxhQUFnQjFvQyxJQUN0QkEsTUFJRGtoQyxZQUFZbGhDLEtBQVVBLEVBQU0yb0MsV0N6ekI1QkMsS0FBT2wrQixHQUFLQSxFQW1CSCxNQUFNbStCLE1BRW5CcGhDLFdBQUFBLENBQVlvSyxFQUFLLENBQUMsR0FDaEJ1b0IsS0FBV2o2QixLQUFNLENBQ2Z1RCxNQUFPLENBQUMsRUFDUm9sQyxRQUFTLEdBQ1RDLE9BQVEsQ0FDTkMsUUFBUyxDQUFDLEVBQ1Y5bkIsR0FBSSxDQUFDLEVBQ0wrbkIsV0FBWSxDQUFDLEVBQ2JDLFlBQWEsQ0FBQyxFQUNkQyxhQUFjLENBQUMsR0FFakJDLFlBQWEsQ0FBQyxFQUNkQyxRQUFTLENBQUMsR0FDVHgzQixHQUVIMVIsS0FBSzRpQyxVQUFZNWlDLEtBQUttcEMsV0FBVzFsQyxLQUFLekQsTUFHdENBLEtBQUtvcEMsTUErYlQsU0FBU0MsZUFBZUMsRUFBYUMsRUFBYzNHLEdBV2pELE9BOWVGLFNBQVM0RywwQkFBMEJGLEVBQWFDLEVBQWMzRyxHQUU1RCxJQUFJNkcsRUFBYSxDQUlmOUcsc0JBQXVCQyxJQUd6QixNQUFNOEcsRUFBbUJySyxHQUFJc0ssc0NBQXdDcE0sR0FBQUEsUUFFckUsT0FBT0MsRUFBQUEsR0FBQUEsYUFBWThMLEVBQWFDLEVBQWNHLEdBQzVDck0sRUFBQUEsR0FBQUEsb0JBQW9Cb00sSUFFeEIsQ0FzZGdCRCxDQUEwQkYsRUFBYUMsRUFBYzNHLEVBV3JFLENBM2NpQnlHLENBQWVaLE1BQU0xSyxFQUFBQSxHQUFBQSxRQUFPLzlCLEtBQUt1RCxPQUFRdkQsS0FBSzRpQyxXQUczRDVpQyxLQUFLNHBDLGFBQVksR0FHakI1cEMsS0FBSzZwQyxTQUFTN3BDLEtBQUsyb0MsUUFDckIsQ0FFQW1CLFFBQUFBLEdBQ0UsT0FBTzlwQyxLQUFLb3BDLEtBQ2QsQ0FFQVMsUUFBQUEsQ0FBU2xCLEVBQVNvQixHQUFRLEdBQ3hCLElBQUlDLEVBQWVDLGVBQWV0QixFQUFTM29DLEtBQUs0aUMsYUFDaERzSCxhQUFhbHFDLEtBQUs0b0MsT0FBUW9CLEdBQ3ZCRCxHQUNEL3BDLEtBQUs0cEMsY0FHb0JPLGNBQWMvcUMsS0FBS1ksS0FBSzRvQyxPQUFRRCxFQUFTM29DLEtBQUs0aUMsY0FHdkU1aUMsS0FBSzRwQyxhQUVULENBRUFBLFdBQUFBLENBQVlRLEdBQWEsR0FDdkIsSUFBSXZILEVBQVc3aUMsS0FBSzhwQyxXQUFXakgsU0FDM0JDLEVBQVc5aUMsS0FBSzhwQyxXQUFXaEgsU0FFL0I5aUMsS0FBS2lwQyxZQUFjM3BDLE9BQU9vakMsT0FBTyxDQUFDLEVBQzlCMWlDLEtBQUtxcUMsaUJBQ0xycUMsS0FBS3NxQywwQkFBMEJ6SCxHQUMvQjdpQyxLQUFLdXFDLDRCQUE0QnpILEVBQVU5aUMsS0FBSzRpQyxXQUNoRDVpQyxLQUFLd3FDLGVBQWUxSCxHQUNwQjlpQyxLQUFLeXFDLFFBQ0x6cUMsS0FBSzBxQyxjQUdOTixHQUNEcHFDLEtBQUsycUMsZ0JBQ1QsQ0FFQXhCLFVBQUFBLEdBQ0UsT0FBT25wQyxLQUFLaXBDLFdBQ2QsQ0FFQW9CLGNBQUFBLEdBQ0UsT0FBTy9xQyxPQUFPb2pDLE9BQU8sQ0FDbkJFLFVBQVc1aUMsS0FBSzRpQyxVQUNoQmtILFNBQVU5cEMsS0FBSzhwQyxTQUFTcm1DLEtBQUt6RCxNQUM3QjRxQyxjQUFlNXFDLEtBQUs0cUMsY0FBY25uQyxLQUFLekQsTUFDdkM4aUMsU0FBVTlpQyxLQUFLOHBDLFdBQVdoSCxTQUMxQjRILFdBQVkxcUMsS0FBSzZxQyxZQUFZcG5DLEtBQUt6RCxNQUNsQ21nQyxHQUFFLFdBQ0YySyxNQUFLQSxHQUFBQSxTQUNKOXFDLEtBQUs0b0MsT0FBT0csYUFBZSxDQUFDLEVBQ2pDLENBRUE4QixXQUFBQSxHQUNFLE9BQU83cUMsS0FBSzRvQyxPQUFPQyxPQUNyQixDQUVBNkIsVUFBQUEsR0FDRSxNQUFPLENBQ0w3QixRQUFTN29DLEtBQUs0b0MsT0FBT0MsUUFFekIsQ0FFQWtDLFVBQUFBLENBQVdsQyxHQUNUN29DLEtBQUs0b0MsT0FBT0MsUUFBVUEsQ0FDeEIsQ0FFQThCLGNBQUFBLEdBQ0UzcUMsS0FBS29wQyxNQUFNNEIsZUF3VGYsU0FBU1osYUFBYWEsRUFBUXJJLEdBSTVCLE9BR0YsU0FBU3NJLFlBQVlDLEVBQWV2SSxHQUNsQyxJQUFJd0ksRUFBVzlyQyxPQUFPZ0gsS0FBSzZrQyxHQUFlNVcsUUFBTyxDQUFDL25CLEVBQUtuRyxLQUNyRG1HLEVBQUluRyxHQVdSLFNBQVNnbEMsWUFBWUMsRUFBWTFJLEdBQy9CLE1BQU8sQ0FBQ3IvQixFQUFRLElBQUlvNkIsR0FBQUEsSUFBT29GLEtBQ3pCLElBQUl1SSxFQUNGLE9BQU8vbkMsRUFFVCxJQUFJZ29DLEVBQVNELEVBQVd2SSxFQUFPaGhDLE1BQy9CLEdBQUd3cEMsRUFBTyxDQUNSLE1BQU14ekIsRUFBTXl6QixpQkFBaUJELEVBQU8zSSxFQUF4QjRJLENBQW1Dam9DLEVBQU93L0IsR0FHdEQsT0FBZSxPQUFSaHJCLEVBQWV4VSxFQUFRd1UsQ0FDaEMsQ0FDQSxPQUFPeFUsQ0FBSyxDQUVoQixDQXpCZThuQyxDQUFZRixFQUFjOWtDLEdBQU11OEIsR0FDcENwMkIsSUFDUCxDQUFDLEdBRUgsSUFBSWxOLE9BQU9nSCxLQUFLOGtDLEdBQVUzb0MsT0FDeEIsT0FBT2dtQyxLQUdULE9BQU94SyxFQUFBQSxHQUFBQSxpQkFBZ0JtTixFQUN6QixDQWRTRixDQUhVMUksT0FBT3lJLEdBQVNqMUIsR0FDeEJBLEVBQUlvMUIsV0FFa0J4SSxFQUNqQyxDQTdUOEJ3SCxDQUFhcHFDLEtBQUs0b0MsT0FBT0ksYUFBY2hwQyxLQUFLNGlDLFdBQ3hFLENBTUE2SSxPQUFBQSxDQUFRcHJDLEdBQ04sSUFBSXFyQyxFQUFTcnJDLEVBQUssR0FBR3NyQyxjQUFnQnRyQyxFQUFLUSxNQUFNLEdBQ2hELE9BQU80aEMsVUFBVXppQyxLQUFLNG9DLE9BQU9JLGNBQWMsQ0FBQ2h6QixFQUFLNDFCLEtBQzdDLElBQUlsa0MsRUFBUXNPLEVBQUkzVixHQUNoQixHQUFHcUgsRUFDSCxNQUFPLENBQUMsQ0FBQ2trQyxFQUFVRixHQUFVaGtDLEVBQU0sR0FFekMsQ0FFQW1rQyxZQUFBQSxHQUNFLE9BQU83ckMsS0FBS3lyQyxRQUFRLFlBQ3RCLENBRUFLLFVBQUFBLEdBR0UsT0FBT3RKLE9BRmF4aUMsS0FBS3lyQyxRQUFRLFlBRUhNLEdBQ3JCdEosVUFBVXNKLEdBQVMsQ0FBQ2hKLEVBQVFpSixLQUNqQyxHQUFHNUosS0FBS1csR0FDTixNQUFPLENBQUMsQ0FBQ2lKLEdBQWFqSixFQUFPLEtBR3JDLENBRUF1SCx5QkFBQUEsQ0FBMEJ6SCxHQUV0QixPQUFPTCxPQURVeGlDLEtBQUtpc0MsZ0JBQWdCcEosSUFDVixDQUFDa0osRUFBU0csS0FDcEMsSUFBSUMsRUFBV25zQyxLQUFLNG9DLE9BQU9JLGFBQWFrRCxFQUFnQnJyQyxNQUFNLEdBQUcsSUFBSXVyQyxZQUNuRSxPQUFHRCxFQUNNM0osT0FBT3VKLEdBQVMsQ0FBQ2hKLEVBQVFpSixLQUM5QixJQUFJdGlCLEVBQU95aUIsRUFBU0gsR0FDcEIsT0FBSXRpQixHQUlBMWxCLE1BQU0yRCxRQUFRK2hCLEtBQ2hCQSxFQUFPLENBQUNBLElBRUhBLEVBQUs2SyxRQUFPLENBQUM4WCxFQUFLdHJCLEtBQ3ZCLElBQUl1ckIsVUFBWUEsSUFBSXJ0QyxJQUNYOGhCLEVBQUdzckIsRUFBS3JzQyxLQUFLNGlDLFlBQWI3aEIsSUFBNkI5aEIsR0FFdEMsSUFBSW1qQyxLQUFLa0ssV0FDUCxNQUFNLElBQUkzcUMsVUFBVSw4RkFFdEIsT0FBTzZwQyxpQkFBaUJjLFVBQVd0c0MsS0FBSzRpQyxVQUFVLEdBQ2pERyxHQUFVN2pDLFNBQVNDLFlBZGI0akMsQ0FjdUIsSUFHL0JnSixDQUFPLEdBRXBCLENBRUF4QiwyQkFBQUEsQ0FBNEJ6SCxFQUFVRixHQUVsQyxPQUFPSixPQURZeGlDLEtBQUt1c0Msa0JBQWtCekosRUFBVUYsSUFDdEIsQ0FBQzRKLEVBQVdDLEtBQ3hDLElBQUlDLEVBQVksQ0FBQ0QsRUFBa0I1ckMsTUFBTSxHQUFJLElBQ3pDc3JDLEVBQVduc0MsS0FBSzRvQyxPQUFPSSxhQUFhMEQsR0FBV0MsY0FDakQsT0FBR1IsRUFDTTNKLE9BQU9nSyxHQUFXLENBQUNJLEVBQVVDLEtBQ2xDLElBQUluakIsRUFBT3lpQixFQUFTVSxHQUNwQixPQUFJbmpCLEdBSUExbEIsTUFBTTJELFFBQVEraEIsS0FDaEJBLEVBQU8sQ0FBQ0EsSUFFSEEsRUFBSzZLLFFBQU8sQ0FBQzhYLEVBQUt0ckIsS0FDdkIsSUFBSStyQixnQkFBa0JBLElBQUk3dEMsSUFDakI4aEIsRUFBR3NyQixFQUFLcnNDLEtBQUs0aUMsWUFBYjdoQixDQUEwQitoQixJQUFXakMsTUFBTTZMLE1BQWV6dEMsR0FFbkUsSUFBSW1qQyxLQUFLMEssaUJBQ1AsTUFBTSxJQUFJbnJDLFVBQVUsK0ZBRXRCLE9BQU9tckMsZUFBZSxHQUNyQkYsR0FBWTF0QyxTQUFTQyxZQWRmeXRDLENBY3lCLElBR2pDSixDQUFTLEdBRXRCLENBRUFPLFNBQUFBLENBQVV4cEMsR0FDUixPQUFPakUsT0FBT2dILEtBQUt0RyxLQUFLNG9DLE9BQU9JLGNBQWN6VSxRQUFPLENBQUMvbkIsRUFBS25HLEtBQ3hEbUcsRUFBSW5HLEdBQU85QyxFQUFNcUIsSUFBSXlCLEdBQ2RtRyxJQUNOLENBQUMsRUFDTixDQUVBZytCLGNBQUFBLENBQWUxSCxHQUNiLE9BQU94akMsT0FBT2dILEtBQUt0RyxLQUFLNG9DLE9BQU9JLGNBQWN6VSxRQUFPLENBQUMvbkIsRUFBS25HLEtBQ3REbUcsRUFBSW5HLEdBQU8sSUFBS3k4QixJQUFXbCtCLElBQUl5QixHQUM1Qm1HLElBQ04sQ0FBQyxFQUNKLENBRUFpK0IsS0FBQUEsR0FDRSxNQUFPLENBQ0wxcEIsR0FBSS9nQixLQUFLNG9DLE9BQU83bkIsR0FFcEIsQ0FFQTZwQixhQUFBQSxDQUFjb0MsR0FDWixNQUFNajFCLEVBQU0vWCxLQUFLNG9DLE9BQU9FLFdBQVdrRSxHQUVuQyxPQUFHaHBDLE1BQU0yRCxRQUFRb1EsR0FDUkEsRUFBSXdjLFFBQU8sQ0FBQzBZLEVBQUtDLElBQ2ZBLEVBQVFELEVBQUtqdEMsS0FBSzRpQyxvQkFHTCxJQUFkb0ssRUFDRGh0QyxLQUFLNG9DLE9BQU9FLFdBQVdrRSxHQUd6Qmh0QyxLQUFLNG9DLE9BQU9FLFVBQ3JCLENBRUF5RCxpQkFBQUEsQ0FBa0J6SixFQUFVRixHQUMxQixPQUFPSixPQUFPeGlDLEtBQUs2ckMsZ0JBQWdCLENBQUNyL0IsRUFBS25HLEtBQ3ZDLElBQUlxbUMsRUFBWSxDQUFDcm1DLEVBQUl4RixNQUFNLEdBQUksSUFHL0IsT0FBTzJoQyxPQUFPaDJCLEdBQU11VSxHQUNYLElBQUk5aEIsS0FDVCxJQUFJOFksRUFBTXl6QixpQkFBaUJ6cUIsRUFBSS9nQixLQUFLNGlDLFdBQVc5akMsTUFBTSxLQUFNLENBSm5DZ2tDLElBQVdqQyxNQUFNNkwsTUFJd0N6dEMsSUFNakYsTUFIbUIsbUJBQVQ4WSxJQUNSQSxFQUFNeXpCLGlCQUFpQnp6QixFQUFLL1gsS0FBSzRpQyxVQUEzQjRJLENBQXNDNUksTUFFdkM3cUIsQ0FBRyxHQUVaLEdBRU4sQ0FFQWswQixlQUFBQSxDQUFnQnBKLEdBRWRBLEVBQVdBLEdBQVk3aUMsS0FBSzhwQyxXQUFXakgsU0FFdkMsTUFBTWtKLEVBQVUvckMsS0FBSzhyQyxhQUVmbitCLFFBQVV3L0IsR0FDWSxtQkFBZEEsRUFDSDNLLE9BQU8ySyxHQUFTOVEsR0FBUTF1QixRQUFRMHVCLEtBR2xDLElBQUtwOUIsS0FDVixJQUFJOGpDLEVBQVMsS0FDYixJQUNFQSxFQUFTb0ssS0FBWWx1QyxFQUN2QixDQUNBLE1BQU8wTCxHQUNMbzRCLEVBQVMsQ0FBQ2hoQyxLQUFNczhCLEdBQWdCbDVCLE9BQU8sRUFBTTA1QixTQUFTVixFQUFBQSxHQUFBQSxnQkFBZXh6QixHQUN2RSxDQUFDLFFBRUMsT0FBT280QixDQUNULEdBSUosT0FBT1AsT0FBT3VKLEdBQVNxQixJQUFpQjlQLEVBQUFBLEdBQUFBLG9CQUFvQjN2QixRQUFTeS9CLEdBQWlCdkssSUFDeEYsQ0FFQXdLLGtCQUFBQSxHQUNFLE1BQU8sSUFDRS90QyxPQUFPb2pDLE9BQU8sQ0FBQyxFQUFHMWlDLEtBQUs0aUMsWUFFbEMsQ0FFQTBLLHFCQUFBQSxDQUFzQkMsR0FDcEIsT0FBUTFLLEdBQ0M1SSxLQUFXLENBQUMsRUFBR2o2QixLQUFLc3FDLDBCQUEwQnpILEdBQVc3aUMsS0FBS3lxQyxRQUFTOEMsRUFFbEYsRUFJRixTQUFTdEQsZUFBZXRCLEVBQVNPLEdBQy9CLE9BQUc3SCxTQUFTc0gsS0FBYWhoQyxRQUFRZ2hDLElBQ3hCNkUsRUFBQUEsR0FBQUEsU0FBTSxDQUFDLEVBQUc3RSxHQUdoQnRHLE9BQU9zRyxHQUNEc0IsZUFBZXRCLEVBQVFPLEdBQVVBLEdBR3ZDdmhDLFFBQVFnaEMsR0FDRkEsRUFDSi9nQyxLQUFJNmxDLEdBQVV4RCxlQUFld0QsRUFBUXZFLEtBQ3JDM1UsT0FBTzJWLGFBQWMsQ0FBRXBCLFdBQVlJLEVBQVEwQixrQkFHekMsQ0FBQyxDQUNWLENBRUEsU0FBU1QsY0FBY3hCLEVBQVNDLEdBQVEsVUFBRThFLEdBQWMsQ0FBQyxHQUN2RCxJQUFJQyxFQUFrQkQsRUFRdEIsT0FQR3JNLFNBQVNzSCxLQUFhaGhDLFFBQVFnaEMsSUFDQyxtQkFBdEJBLEVBQVFpRixZQUNoQkQsR0FBa0IsRUFDbEJuQyxpQkFBaUI3QyxFQUFRaUYsVUFBV2hGLEVBQU9oRyxXQUFXeGpDLEtBQUtZLEtBQU00b0MsSUFJbEV2RyxPQUFPc0csR0FDRHdCLGNBQWMvcUMsS0FBS1ksS0FBTTJvQyxFQUFRQyxHQUFTQSxFQUFRLENBQUU4RSxVQUFXQyxJQUVyRWhtQyxRQUFRZ2hDLEdBQ0ZBLEVBQVEvZ0MsS0FBSTZsQyxHQUFVdEQsY0FBYy9xQyxLQUFLWSxLQUFNeXRDLEVBQVE3RSxFQUFRLENBQUU4RSxVQUFXQyxNQUc5RUEsQ0FDVCxDQUtBLFNBQVN6RCxhQUFham9CLEVBQUssQ0FBQyxFQUFHdkIsRUFBSSxDQUFDLEdBRWxDLElBQUkyZ0IsU0FBU3BmLEdBQ1gsTUFBTyxDQUFDLEVBRVYsSUFBSW9mLFNBQVMzZ0IsR0FDWCxPQUFPdUIsRUFLTnZCLEVBQUltdEIsaUJBQ0xyTCxPQUFPOWhCLEVBQUltdEIsZ0JBQWdCLENBQUNDLEVBQVd6bkMsS0FDckMsTUFBTTRtQyxFQUFNaHJCLEVBQUs2bUIsWUFBYzdtQixFQUFLNm1CLFdBQVd6aUMsR0FDNUM0bUMsR0FBT2pwQyxNQUFNMkQsUUFBUXNsQyxJQUN0QmhyQixFQUFLNm1CLFdBQVd6aUMsR0FBTzRtQyxFQUFJeHRDLE9BQU8sQ0FBQ3F1QyxXQUM1QnB0QixFQUFJbXRCLGVBQWV4bkMsSUFDbEI0bUMsSUFDUmhyQixFQUFLNm1CLFdBQVd6aUMsR0FBTyxDQUFDNG1DLEVBQUthLFVBQ3RCcHRCLEVBQUltdEIsZUFBZXhuQyxHQUM1QixJQUdFL0csT0FBT2dILEtBQUtvYSxFQUFJbXRCLGdCQUFnQnByQyxlQUkzQmllLEVBQUltdEIsZ0JBUWYsTUFBTSxhQUFFN0UsR0FBaUIvbUIsRUFDekIsR0FBR29mLFNBQVMySCxHQUNWLElBQUksSUFBSTRDLEtBQWE1QyxFQUFjLENBQ2pDLE1BQU0rRSxFQUFlL0UsRUFBYTRDLEdBQ2xDLElBQUl2SyxTQUFTME0sR0FDWCxTQUdGLE1BQU0sWUFBRTNCLEVBQVcsY0FBRU8sR0FBa0JvQixFQUd2QyxHQUFJMU0sU0FBUytLLEdBQ1gsSUFBSSxJQUFJSixLQUFjSSxFQUFhLENBQ2pDLElBQUlySixFQUFTcUosRUFBWUosR0FHckJob0MsTUFBTTJELFFBQVFvN0IsS0FDaEJBLEVBQVMsQ0FBQ0EsR0FDVnFKLEVBQVlKLEdBQWNqSixHQUd6QnJpQixHQUFPQSxFQUFJc29CLGNBQWdCdG9CLEVBQUlzb0IsYUFBYTRDLElBQWNsckIsRUFBSXNvQixhQUFhNEMsR0FBV1EsYUFBZTFyQixFQUFJc29CLGFBQWE0QyxHQUFXUSxZQUFZSixLQUM5SXRyQixFQUFJc29CLGFBQWE0QyxHQUFXUSxZQUFZSixHQUFjSSxFQUFZSixHQUFZdnNDLE9BQU9paEIsRUFBSXNvQixhQUFhNEMsR0FBV1EsWUFBWUosSUFHakksQ0FJRixHQUFJM0ssU0FBU3NMLEdBQ1gsSUFBSSxJQUFJRSxLQUFnQkYsRUFBZSxDQUNyQyxJQUFJQyxFQUFXRCxFQUFjRSxHQUd6QjdvQyxNQUFNMkQsUUFBUWlsQyxLQUNoQkEsRUFBVyxDQUFDQSxHQUNaRCxFQUFjRSxHQUFnQkQsR0FHN0Jsc0IsR0FBT0EsRUFBSXNvQixjQUFnQnRvQixFQUFJc29CLGFBQWE0QyxJQUFjbHJCLEVBQUlzb0IsYUFBYTRDLEdBQVdlLGVBQWlCanNCLEVBQUlzb0IsYUFBYTRDLEdBQVdlLGNBQWNFLEtBQ2xKbnNCLEVBQUlzb0IsYUFBYTRDLEdBQVdlLGNBQWNFLEdBQWdCRixFQUFjRSxHQUFjcHRDLE9BQU9paEIsRUFBSXNvQixhQUFhNEMsR0FBV2UsY0FBY0UsSUFHM0ksQ0FFSixDQUdGLE9BQU81UyxLQUFXaFksRUFBTXZCLEVBQzFCLENBc0NBLFNBQVM4cUIsaUJBQWlCenFCLEVBQUk2aEIsR0FBVyxVQUN2Q29MLEdBQVksR0FDVixDQUFDLEdBQ0gsTUFBaUIsbUJBQVBqdEIsRUFDREEsRUFHRixZQUFZOWhCLEdBQ2pCLElBQ0UsT0FBTzhoQixFQUFHM2hCLEtBQUtZLFFBQVNmLEVBQzFCLENBQUUsTUFBTWtHLEdBQ04sR0FBRzZvQyxFQUFXLENBQ1osTUFBTSx5QkFBRUMsR0FBNEJyTCxJQUFZOEgsYUFDUixtQkFBN0J1RCxFQUNUQSxFQUF5QjlvQyxHQUV6QmxDLFFBQVFrQyxNQUFNQSxFQUVsQixDQUNBLE9BQU8sSUFDVCxDQUNGLENBQ0YsQ0NoZkEsSUFJSSxHQUpJLFNBQVNtRSxHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsUUFBYSxXQUFhLE9BQU82a0MsRUFBd0QsT0FBRyxJQ0E1SCxNQUFNQyxHQUFrQixhQUNsQkMsR0FBWSxZQUNaQyxHQUFTLFNBQ1RDLEdBQW1CLG1CQUNuQkMsR0FBaUIsaUJBQ2pCQyxHQUF3Qix3QkFJOUIsU0FBU0MsZ0JBQWdCNVAsR0FDOUIsTUFBTyxDQUNMOThCLEtBQU1vc0MsR0FDTnRQLFFBQVNBLEVBRWIsQ0FFTyxTQUFTNlAsVUFBVTdQLEdBQ3hCLE1BQU8sQ0FDTDk4QixLQUFNcXNDLEdBQ052UCxRQUFTQSxFQUViLENBRU8sTUFBTThQLDJCQUE4QjlQLEdBQVksRUFBSStQLGtCQUN6REEsRUFBWUYsVUFBVTdQLEdBQ3RCK1AsRUFBWUMsOEJBQThCLEVBR3JDLFNBQVNDLE9BQU9qUSxHQUNyQixNQUFPLENBQ0w5OEIsS0FBTXNzQyxHQUNOeFAsUUFBU0EsRUFFYixDQUVPLE1BQU1rUSx3QkFBMkJsUSxHQUFZLEVBQUkrUCxrQkFDdERBLEVBQVlFLE9BQU9qUSxHQUNuQitQLEVBQVlDLDhCQUE4QixFQUcvQkcscUJBQXdCblEsR0FBWSxFQUFJK1AsY0FBYUssaUJBQ2hFLElBQUksS0FBRUMsRUFBSSxNQUFHQyxFQUFLLFFBQUVDLEdBQVl2USxHQUM1QixPQUFFNEIsRUFBTSxLQUFFcGdDLEdBQVM2dUMsRUFDbkJ0bkIsRUFBTzZZLEVBQU83N0IsSUFBSSxlQUdmeTZCLEdBQUlnUSx3QkFFRyxlQUFUem5CLEdBQTBCd25CLEdBQzdCSCxFQUFXL1AsV0FBWSxDQUNyQm9RLE9BQVFqdkMsRUFDUjZoQixPQUFRLE9BQ1JxdEIsTUFBTyxVQUNQbHFDLFFBQVMsa0hBSVI4cEMsRUFBTWhxQyxNQUNUOHBDLEVBQVcvUCxXQUFXLENBQ3BCb1EsT0FBUWp2QyxFQUNSNmhCLE9BQVEsT0FDUnF0QixNQUFPLFFBQ1BscUMsUUFBU20vQixLQUFLa0QsVUFBVXlILEtBSzVCUCxFQUFZWSxpQ0FBaUMsQ0FBRU4sT0FBTUMsU0FBUSxFQUl4RCxTQUFTTSxnQkFBZ0I1USxHQUM5QixNQUFPLENBQ0w5OEIsS0FBTXVzQyxHQUNOelAsUUFBU0EsRUFFYixDQUdPLE1BQU0yUSxpQ0FBb0MzUSxHQUFZLEVBQUkrUCxrQkFDL0RBLEVBQVlhLGdCQUFnQjVRLEdBQzVCK1AsRUFBWUMsOEJBQThCLEVBRy9CYSxrQkFBc0JSLEdBQVUsRUFBSU4sa0JBQy9DLElBQUksT0FBRW5PLEVBQU0sS0FBRXBnQyxFQUFJLFNBQUVzdkMsRUFBUSxTQUFFQyxFQUFRLGFBQUVDLEVBQVksU0FBRUMsRUFBUSxhQUFFQyxHQUFpQmIsRUFDN0VjLEVBQU8sQ0FDVEMsV0FBWSxXQUNaQyxNQUFPaEIsRUFBS2lCLE9BQU90b0MsS0FqRkEsS0FrRm5COG5DLFdBQ0FDLFlBR0VRLEVBQVUsQ0FBQyxFQUVmLE9BQVFQLEdBQ04sSUFBSyxnQkFjVCxTQUFTUSxxQkFBcUJ0eEMsRUFBUSt3QyxFQUFVQyxHQUN6Q0QsR0FDSHh3QyxPQUFPb2pDLE9BQU8zakMsRUFBUSxDQUFDdXhDLFVBQVdSLElBRy9CQyxHQUNIendDLE9BQU9vakMsT0FBTzNqQyxFQUFRLENBQUN3eEMsY0FBZVIsR0FFMUMsQ0FyQk1NLENBQXFCTCxFQUFNRixFQUFVQyxHQUNyQyxNQUVGLElBQUssUUFDSEssRUFBUUksY0FBZ0IsU0FBV3RLLEtBQUs0SixFQUFXLElBQU1DLEdBQ3pELE1BQ0YsUUFDRTlzQyxRQUFRQyxLQUFLLGlDQUFpQzJzQyxvREFHbEQsT0FBT2pCLEVBQVk2QixpQkFBaUIsQ0FBRUMsS0FBTWxLLGNBQWN3SixHQUFPVyxJQUFLbFEsRUFBTzc3QixJQUFJLFlBQWF2RSxPQUFNK3ZDLFVBQVNRLE1BZmpHLENBQUMsRUFldUcxQixRQUFNLEVBYXJILE1BQU0yQixxQkFBeUIzQixHQUFVLEVBQUlOLGtCQUNsRCxJQUFJLE9BQUVuTyxFQUFNLE9BQUUwUCxFQUFNLEtBQUU5dkMsRUFBSSxTQUFFeXZDLEVBQVEsYUFBRUMsR0FBaUJiLEVBQ25Ea0IsRUFBVSxDQUNaSSxjQUFlLFNBQVd0SyxLQUFLNEosRUFBVyxJQUFNQyxJQUU5Q0MsRUFBTyxDQUNUQyxXQUFZLHFCQUNaQyxNQUFPQyxFQUFPdG9DLEtBeEhLLE1BMkhyQixPQUFPK21DLEVBQVk2QixpQkFBaUIsQ0FBQ0MsS0FBTWxLLGNBQWN3SixHQUFPM3ZDLE9BQU1zd0MsSUFBS2xRLEVBQU83N0IsSUFBSSxZQUFhc3FDLE9BQU1rQixXQUFVLEVBR3hHVSxrQ0FBb0NBLEVBQUk1QixPQUFNNkIsaUJBQW1CLEVBQUluQyxrQkFDaEYsSUFBSSxPQUFFbk8sRUFBTSxLQUFFcGdDLEVBQUksU0FBRXl2QyxFQUFRLGFBQUVDLEVBQVksYUFBRWlCLEdBQWlCOUIsRUFDekRjLEVBQU8sQ0FDVEMsV0FBWSxxQkFDWnRwQyxLQUFNdW9DLEVBQUt2b0MsS0FDWDJwQyxVQUFXUixFQUNYUyxjQUFlUixFQUNma0IsYUFBY0YsRUFDZEcsY0FBZUYsR0FHakIsT0FBT3BDLEVBQVk2QixpQkFBaUIsQ0FBQ0MsS0FBTWxLLGNBQWN3SixHQUFPM3ZDLE9BQU1zd0MsSUFBS2xRLEVBQU83N0IsSUFBSSxZQUFhc3FDLFFBQU0sRUFHOUZpQywyQ0FBNkNBLEVBQUlqQyxPQUFNNkIsaUJBQW1CLEVBQUluQyxrQkFDekYsSUFBSSxPQUFFbk8sRUFBTSxLQUFFcGdDLEVBQUksU0FBRXl2QyxFQUFRLGFBQUVDLEVBQVksYUFBRWlCLEdBQWlCOUIsRUFDekRrQixFQUFVLENBQ1pJLGNBQWUsU0FBV3RLLEtBQUs0SixFQUFXLElBQU1DLElBRTlDQyxFQUFPLENBQ1RDLFdBQVkscUJBQ1p0cEMsS0FBTXVvQyxFQUFLdm9DLEtBQ1gycEMsVUFBV1IsRUFDWG1CLGFBQWNGLEVBQ2RHLGNBQWVGLEdBR2pCLE9BQU9wQyxFQUFZNkIsaUJBQWlCLENBQUNDLEtBQU1sSyxjQUFjd0osR0FBTzN2QyxPQUFNc3dDLElBQUtsUSxFQUFPNzdCLElBQUksWUFBYXNxQyxPQUFNa0IsV0FBUyxFQUd2R0ssaUJBQXFCaGxDLEdBQVUsRUFBSXNWLEtBQUkycEIsYUFBWWtFLGNBQWFLLGFBQVltQyxnQkFBZUMsZ0JBQWVDLG9CQUNySCxJQUlJQyxHQUpBLEtBQUViLEVBQUksTUFBRUUsRUFBTSxDQUFDLEVBQUMsUUFBRVIsRUFBUSxDQUFDLEVBQUMsS0FBRS92QyxFQUFJLElBQUVzd0MsRUFBRyxLQUFFekIsR0FBU3pqQyxHQUVsRCw0QkFBRStsQyxHQUFnQ0YsRUFBYzVHLGNBQWdCLENBQUMsRUFJckUsR0FBSTJHLEVBQWM5USxTQUFVLENBQzFCLElBQUlrUixFQUFpQkwsRUFBY00scUJBQXFCTixFQUFjTyxrQkFDdEVKLEdBQVlLLEVBQUFBLEdBQUFBLFNBQVNqQixFQUFLYyxHQUFnQixFQUM1QyxNQUNFRixHQUFZSyxFQUFBQSxHQUFBQSxTQUFTakIsRUFBS1UsRUFBY1YsT0FBTyxHQUdQLGlCQUFoQ2EsSUFDUkQsRUFBVVgsTUFBUXR4QyxPQUFPb2pDLE9BQU8sQ0FBQyxFQUFHNk8sRUFBVVgsTUFBT1ksSUFHdkQsTUFBTUssRUFBV04sRUFBVWpoQyxXQUUzQixJQUFJd2hDLEVBQVd4eUMsT0FBT29qQyxPQUFPLENBQzNCLE9BQVMsb0NBQ1QsZUFBZ0Isb0NBQ2hCLG1CQUFvQixrQkFDbkIwTixHQUVIcnZCLEVBQUdneEIsTUFBTSxDQUNQcEIsSUFBS2tCLEVBQ0w5dUIsT0FBUSxPQUNScXRCLFFBQVMwQixFQUNUbEIsTUFBT0EsRUFDUEYsS0FBTUEsRUFDTnNCLG1CQUFvQnRILElBQWFzSCxtQkFDakNDLG9CQUFxQnZILElBQWF1SCxzQkFFbkM1VyxNQUFLLFNBQVU2VyxHQUNkLElBQUkvQyxFQUFRM0ssS0FBS0MsTUFBTXlOLEVBQVN6bUMsTUFDNUJ0RyxFQUFRZ3FDLElBQVdBLEVBQU1ocUMsT0FBUyxJQUNsQ2d0QyxFQUFhaEQsSUFBV0EsRUFBTWdELFlBQWMsSUFFMUNELEVBQVNFLEdBVVZqdEMsR0FBU2d0QyxFQUNabEQsRUFBVy9QLFdBQVcsQ0FDcEJvUSxPQUFRanZDLEVBQ1JrdkMsTUFBTyxRQUNQcnRCLE9BQVEsT0FDUjdjLFFBQVNtL0IsS0FBS2tELFVBQVV5SCxLQUs1QlAsRUFBWVksaUNBQWlDLENBQUVOLE9BQU1DLFVBbkJuREYsRUFBVy9QLFdBQVksQ0FDckJvUSxPQUFRanZDLEVBQ1JrdkMsTUFBTyxRQUNQcnRCLE9BQVEsT0FDUjdjLFFBQVM2c0MsRUFBU0csWUFnQnhCLElBQ0NDLE9BQU0zbkMsSUFDTCxJQUNJdEYsRUFETSxJQUFJekMsTUFBTStILEdBQ0Z0RixRQUtsQixHQUFJc0YsRUFBRXVuQyxVQUFZdm5DLEVBQUV1bkMsU0FBU3ptQyxLQUFNLENBQ2pDLE1BQU04bUMsRUFBVTVuQyxFQUFFdW5DLFNBQVN6bUMsS0FDM0IsSUFDRSxNQUFNK21DLEVBQWtDLGlCQUFaRCxFQUF1Qi9OLEtBQUtDLE1BQU04TixHQUFXQSxFQUNyRUMsRUFBYXJ0QyxRQUNmRSxHQUFXLFlBQVltdEMsRUFBYXJ0QyxTQUNsQ3F0QyxFQUFhQyxvQkFDZnB0QyxHQUFXLGtCQUFrQm10QyxFQUFhQyxvQkFDOUMsQ0FBRSxNQUFPQyxHQUNQLENBRUosQ0FDQXpELEVBQVcvUCxXQUFZLENBQ3JCb1EsT0FBUWp2QyxFQUNSa3ZDLE1BQU8sUUFDUHJ0QixPQUFRLE9BQ1I3YyxRQUFTQSxHQUNSLEdBQ0gsRUFHRyxTQUFTc3RDLGNBQWM5VCxHQUM1QixNQUFPLENBQ0w5OEIsS0FBTXdzQyxHQUNOMVAsUUFBU0EsRUFFYixDQUVPLFNBQVMrVCxxQkFBcUIvVCxHQUNuQyxNQUFPLENBQ0w5OEIsS0FBTXlzQyxHQUNOM1AsUUFBU0EsRUFFYixDQUVPLE1BQU1nUSw2QkFBK0JBLElBQU0sRUFBSXlDLGdCQUFlNUcsaUJBR25FLElBRmdCQSxJQUVIbUkscUJBQXNCLE9BR25DLE1BQU1DLEVBQWF4QixFQUFjd0IsYUFBYTNSLE9BQzlDL1QsYUFBYTJsQixRQUFRLGFBQWN2TyxLQUFLa0QsVUFBVW9MLEdBQVksRUFHbkRFLFVBQVlBLENBQUNyQyxFQUFLdEIsSUFBNEIsS0FDekRoUSxHQUFJZ1Esd0JBQTBCQSxFQUU5QmhRLEdBQUlHLEtBQUttUixFQUFJLEVDaFJmLFFBQ0UsQ0FBQ3hDLElBQWtCLENBQUM1cUMsR0FBU3M3QixhQUNwQnQ3QixFQUFNc0IsSUFBSyxrQkFBbUJnNkIsR0FHdkMsQ0FBQ3VQLElBQVksQ0FBQzdxQyxHQUFTczdCLGNBQ3JCLElBQUlvVSxHQUFhbFYsRUFBQUEsR0FBQUEsUUFBT2MsR0FDcEJqM0IsRUFBTXJFLEVBQU1xQixJQUFJLGdCQUFpQis0QixFQUFBQSxHQUFBQSxPQXdCckMsT0FyQkFzVixFQUFXQyxXQUFXem1DLFNBQVMsRUFBR3BHLEVBQUs4c0MsTUFDckMsSUFBSzlRLE9BQU84USxFQUFTdFMsT0FDbkIsT0FBT3Q5QixFQUFNc0IsSUFBSSxhQUFjK0MsR0FFakMsSUFBSTdGLEVBQU9veEMsRUFBU3RTLE1BQU0sQ0FBQyxTQUFVLFNBRXJDLEdBQWMsV0FBVDkrQixHQUE4QixTQUFUQSxFQUN4QjZGLEVBQU1BLEVBQUkvQyxJQUFJd0IsRUFBSzhzQyxRQUNkLEdBQWMsVUFBVHB4QyxFQUFtQixDQUM3QixJQUFJNHRDLEVBQVd3RCxFQUFTdFMsTUFBTSxDQUFDLFFBQVMsYUFDcEMrTyxFQUFXdUQsRUFBU3RTLE1BQU0sQ0FBQyxRQUFTLGFBRXhDajVCLEVBQU1BLEVBQUl3ckMsTUFBTSxDQUFDL3NDLEVBQUssU0FBVSxDQUM5QnNwQyxTQUFVQSxFQUNWMEQsT0FBUSxTQUFXbk4sS0FBS3lKLEVBQVcsSUFBTUMsS0FHM0Nob0MsRUFBTUEsRUFBSXdyQyxNQUFNLENBQUMvc0MsRUFBSyxVQUFXOHNDLEVBQVN2dUMsSUFBSSxVQUNoRCxLQUdLckIsRUFBTXNCLElBQUssYUFBYytDLEVBQUssRUFHdkMsQ0FBQzBtQyxJQUFtQixDQUFDL3FDLEdBQVNzN0IsY0FDNUIsSUFDSXlVLEdBREEsS0FBRXBFLEVBQUksTUFBRUMsR0FBVXRRLEVBR3RCcVEsRUFBS0MsTUFBUTd2QyxPQUFPb2pDLE9BQU8sQ0FBQyxFQUFHeU0sR0FDL0JtRSxHQUFhdlYsRUFBQUEsR0FBQUEsUUFBT21SLEdBRXBCLElBQUl0bkMsRUFBTXJFLEVBQU1xQixJQUFJLGdCQUFpQis0QixFQUFBQSxHQUFBQSxPQUdyQyxPQUZBLzFCLEVBQU1BLEVBQUkvQyxJQUFJeXVDLEVBQVcxdUMsSUFBSSxRQUFTMHVDLEdBRS9CL3ZDLEVBQU1zQixJQUFLLGFBQWMrQyxFQUFLLEVBR3ZDLENBQUN5bUMsSUFBUyxDQUFDOXFDLEdBQVNzN0IsY0FDbEIsSUFBSTBVLEVBQVNod0MsRUFBTXFCLElBQUksY0FBYzR1QyxlQUFlVixJQUNoRGpVLEVBQVFweUIsU0FBU3lpQyxJQUNmNEQsRUFBV1csT0FBT3ZFLEVBQUssR0FDdkIsSUFHTixPQUFPM3JDLEVBQU1zQixJQUFJLGFBQWMwdUMsRUFBTyxFQUd4QyxDQUFDaEYsSUFBaUIsQ0FBQ2hyQyxHQUFTczdCLGFBQ25CdDdCLEVBQU1zQixJQUFJLFVBQVdnNkIsR0FHOUIsQ0FBQzJQLElBQXdCLENBQUNqckMsR0FBU3M3QixhQUMxQnQ3QixFQUFNc0IsSUFBSSxjQUFjazVCLEVBQUFBLEdBQUFBLFFBQU9jLEVBQVFpVSxjQ3RFOUMsR0FKSSxTQUFTeHBDLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxlQUFvQixXQUFhLE9BQU9xcUMsRUFBcUNDLGNBQWdCLElDRHBJLE1BQU1wd0MsTUFBUUEsR0FBU0EsRUFFVnF3QyxJQUFtQkQsRUFBQUEsR0FBQUEsZ0JBQzVCcHdDLE9BQ0EyckMsR0FBUUEsRUFBS3RxQyxJQUFLLHFCQUdUaXZDLElBQXlCRixFQUFBQSxHQUFBQSxnQkFDbENwd0MsT0FDQSxJQUFNLEVBQUk4dEMsb0JBQ1IsSUFBSXlDLEVBQWN6QyxFQUFjMEMsd0JBQXlCcFcsRUFBQUEsR0FBQUEsS0FBSSxDQUFDLEdBQzFELzNCLEdBQU84M0IsRUFBQUEsR0FBQUEsUUFVWCxPQVBBb1csRUFBWVosV0FBV3ptQyxTQUFTLEVBQUdwRyxFQUFLMlAsTUFDdEMsSUFBSXBPLEdBQU0rMUIsRUFBQUEsR0FBQUEsT0FFVi8xQixFQUFNQSxFQUFJL0MsSUFBSXdCLEVBQUsyUCxHQUNuQnBRLEVBQU9BLEVBQUtwRCxLQUFLb0YsRUFBSSxJQUdoQmhDLENBQUksSUFJSm91QyxlQUNYQSxDQUFDendDLEVBQU9sRCxJQUNSLEVBQUdneEMsb0JBQ0QzVCxFQUFBQSxHQUFBQSxNQUNFMlQsRUFBYzlRLFNBQ1YsQ0FBQyxhQUFjLGtCQUFtQmxnQyxHQUNsQyxDQUFDLHNCQUF1QkEsSUFHckI0ekMsc0JBQXdCQSxDQUFFMXdDLEVBQU8wdkMsSUFBZ0IsRUFBSTVCLG9CQUNoRXB1QyxRQUFRQyxLQUFLLCtGQUNiLElBQUk2d0MsRUFBc0IxQyxFQUFjMEMsc0JBQ3BDUixHQUFTN1YsRUFBQUEsR0FBQUEsUUEwQmIsT0F4QkF1VixFQUFXaUIsV0FBV3puQyxTQUFVMG5DLElBQzlCLElBQUl2c0MsR0FBTSsxQixFQUFBQSxHQUFBQSxPQUNWd1csRUFBTWpCLFdBQVd6bUMsU0FBUyxFQUFFcE0sRUFBTTh2QyxNQUNoQyxJQUNJaUUsRUFEQWxZLEVBQWE2WCxFQUFvQm52QyxJQUFJdkUsR0FHVCxXQUEzQjY3QixFQUFXdDNCLElBQUksU0FBd0J1ckMsRUFBT2ovQixPQUNqRGtqQyxFQUFnQmxZLEVBQVd0M0IsSUFBSSxVQUUvQnd2QyxFQUFjeFQsU0FBU24wQixTQUFVcEcsSUFDekI4cEMsRUFBT2tFLFNBQVNodUMsS0FDcEIrdEMsRUFBZ0JBLEVBQWNYLE9BQU9wdEMsR0FDdkMsSUFHRjYxQixFQUFhQSxFQUFXcjNCLElBQUksZ0JBQWlCdXZDLElBRy9DeHNDLEVBQU1BLEVBQUkvQyxJQUFJeEUsRUFBTTY3QixFQUFXLElBR2pDcVgsRUFBU0EsRUFBTy93QyxLQUFLb0YsRUFBSSxJQUdwQjJyQyxDQUFNLEVBR0ZlLDJCQUE2QkEsQ0FBQy93QyxFQUFPMHZDLEdBQWF2VixFQUFBQSxHQUFBQSxVQUFXLEVBQUc0VCxvQkFDM0UsTUFBTWlELEVBQWlCakQsRUFBY3VDLDJCQUE0Qm5XLEVBQUFBLEdBQUFBLFFBQ2pFLElBQUk2VixHQUFTN1YsRUFBQUEsR0FBQUEsUUFxQmIsT0FwQkE2VyxFQUFlOW5DLFNBQVV5dkIsSUFDdkIsSUFBSWlYLEVBQVdGLEVBQVdyTSxNQUFLNE4sR0FBT0EsRUFBSTV2QyxJQUFJczNCLEVBQVcwRSxTQUFTeGtCLFdBQzdEKzJCLElBQ0hqWCxFQUFXenZCLFNBQVMsQ0FBQzZsQixFQUFPanlCLEtBQzFCLEdBQTJCLFdBQXRCaXlCLEVBQU0xdEIsSUFBSSxRQUF1QixDQUNwQyxNQUFNNnZDLEVBQWlCdEIsRUFBU3Z1QyxJQUFJdkUsR0FDcEMsSUFBSXEwQyxFQUFtQnBpQixFQUFNMXRCLElBQUksVUFDN0I4NEIsR0FBQUEsS0FBSzBHLE9BQU9xUSxJQUFtQjlXLEdBQUFBLElBQUk2QyxNQUFNa1UsS0FDM0NBLEVBQWlCOVQsU0FBU24wQixTQUFVcEcsSUFDNUJvdUMsRUFBZUosU0FBU2h1QyxLQUM1QnF1QyxFQUFtQkEsRUFBaUJqQixPQUFPcHRDLEdBQzdDLElBRUY2MUIsRUFBYUEsRUFBV3IzQixJQUFJeEUsRUFBTWl5QixFQUFNenRCLElBQUksU0FBVTZ2QyxJQUUxRCxLQUVGbkIsRUFBU0EsRUFBTy93QyxLQUFLMDVCLEdBQ3ZCLElBRUtxWCxDQUFNLEVBR0ZULElBQWFhLEVBQUFBLEdBQUFBLGdCQUN0QnB3QyxPQUNBMnJDLEdBQVFBLEVBQUt0cUMsSUFBSSxnQkFBaUIrNEIsRUFBQUEsR0FBQUEsU0FJekJnWCxhQUFlQSxDQUFFcHhDLEVBQU8wdkMsSUFBZ0IsRUFBSTNCLG9CQUN2RCxJQUFJd0IsRUFBYXhCLEVBQWN3QixhQUUvQixPQUFJcFYsR0FBQUEsS0FBSzBHLE9BQU82TyxLQUlQQSxFQUFXOVIsT0FBT3JQLFFBQVVxaEIsSUFLVixJQUZoQjd6QyxPQUFPZ0gsS0FBSzZzQyxHQUFVdnJDLEtBQUt2QixLQUNOeXNDLEVBQVdsdUMsSUFBSXlCLEtBQ3hDdUMsU0FBUSxLQUNWbkcsT0FUSSxJQVNFLEVBR0Fpb0MsSUFBYWlKLEVBQUFBLEdBQUFBLGdCQUN0QnB3QyxPQUNBMnJDLEdBQVFBLEVBQUt0cUMsSUFBSyxhQ3RIVGd3QyxRQUFVQSxDQUFFQyxHQUFhdkQsZ0JBQWVELG1CQUFvQixFQUFHeUQsT0FBTS94QixTQUFRZ3lCLFlBQVd4SCxhQUNuRyxJQUFJMEYsRUFBYSxDQUNmSCxXQUFZeEIsRUFBY3dCLGNBQWdCeEIsRUFBY3dCLGFBQWEzUixPQUNyRTJTLFlBQWF6QyxFQUFjMEMsdUJBQXlCMUMsRUFBYzBDLHNCQUFzQjVTLE9BQ3hGNlQsYUFBZTNELEVBQWM4QixZQUFjOUIsRUFBYzhCLFdBQVdoUyxRQUd0RSxPQUFPMFQsRUFBVSxDQUFFQyxPQUFNL3hCLFNBQVFneUIsWUFBVzlCLGdCQUFlMUYsR0FBUyxFQ0x6RDBILE9BQVNBLENBQUNKLEVBQVdqTSxJQUFZL0osSUFDNUMsTUFBTSxXQUFFNkwsRUFBVSxZQUFFa0UsR0FBZ0JoRyxFQUM5QkMsRUFBVTZCLElBS2hCLEdBSEFtSyxFQUFVaFcsR0FHTmdLLEVBQVFnSyxxQkFBc0IsQ0FDaEMsTUFBTUMsRUFBYTFsQixhQUFhOG5CLFFBQVEsY0FDcENwQyxHQUNGbEUsRUFBWWdFLHFCQUFxQixDQUMvQkUsV0FBWXRPLEtBQUtDLE1BQU1xTyxJQUc3QixHQ05XcEUsdUJBQVlBLENBQUNtRyxFQUFXak0sSUFBWS9KLElBQy9DZ1csRUFBVWhXLEdBSVYsR0FGZ0IrSixFQUFPOEIsYUFFVm1JLHFCQUdiLElBQ0UsT0FBTyxPQUFFcFMsRUFBTSxNQUFFNWdDLElBQVdQLE9BQU95TSxPQUFPOHlCLEdBQ3BDc1csRUFBc0MsV0FBdkIxVSxFQUFPNzdCLElBQUksUUFDMUJ3d0MsRUFBa0MsV0FBckIzVSxFQUFPNzdCLElBQUksTUFDTHV3QyxHQUFnQkMsSUFHdkNDLFNBQVNDLE9BQVMsR0FBRzdVLEVBQU83N0IsSUFBSSxXQUFXL0UsMkJBRS9DLENBQUUsTUFBT3NGLEdBQ1BsQyxRQUFRa0MsTUFDTiwyREFDQUEsRUFFSixHQUdXMnBDLG9CQUFTQSxDQUFDK0YsRUFBV2pNLElBQVkvSixJQUM1QyxNQUFNZ0ssRUFBVUQsRUFBTzhCLGFBQ2pCb0ksRUFBYWxLLEVBQU8wSSxjQUFjd0IsYUFHeEMsSUFDTWpLLEVBQVFnSyxzQkFBd0I3dUMsTUFBTTJELFFBQVFrM0IsSUFDaERBLEVBQVFweUIsU0FBUzhvQyxJQUNmLE1BQU1yRyxFQUFPNEQsRUFBV2x1QyxJQUFJMndDLEVBQWdCLENBQUMsR0FDdkNKLEVBQWtELFdBQW5DakcsRUFBS3JPLE1BQU0sQ0FBQyxTQUFVLFNBQ3JDdVUsRUFBOEMsV0FBakNsRyxFQUFLck8sTUFBTSxDQUFDLFNBQVUsT0FHekMsR0FGeUJzVSxHQUFnQkMsRUFFbkIsQ0FDcEIsTUFBTUksRUFBYXRHLEVBQUtyTyxNQUFNLENBQUMsU0FBVSxTQUN6Q3dVLFNBQVNDLE9BQVMsR0FBR0UsdUJBQ3ZCLElBR04sQ0FBRSxNQUFPcndDLEdBQ1BsQyxRQUFRa0MsTUFDTiwyREFDQUEsRUFFSixDQUVBMHZDLEVBQVVoVyxFQUFRLEVDOURwQixJQUlJLEdBSkksU0FBU3YxQixHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsUUFBYSxXQUFhLE9BQU9vc0MsRUFBeUQsT0FBRyxJQ0FoSSxHQUpJLFNBQVNuc0MsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLFFBQWEsV0FBYSxPQUFPcXNDLEVBQTBELE9BQUcsSUNHckksTUFBTUMscUJBQXFCN0ssR0FBQUEsUUFBQUEsVUFDekI4SyxlQUFBQSxDQUFnQnJ5QyxFQUFPK3VCLEdBRXJCLE1BQU8sQ0FBRS91QixRQUFPc3lDLFVBRENDLEVBQUFBLEdBQUFBLFNBQUt4akIsRUFBT2h6QixPQUFPZ0gsS0FBS2dzQixFQUFNc1EsY0FFakQsQ0FFQW1ULE1BQUFBLEdBQ0UsTUFBTSxhQUFFQyxFQUFZLFNBQUVILEdBQWE3MUMsS0FBS3N5QixNQUNsQzJqQixFQUFXRCxFQUFhLFlBRTlCLE9BQU9sTCxHQUFBQSxRQUFBQSxjQUFDbUwsRUFBYUosRUFDdkIsRUFRRixvQkNuQkEsTUFBTUssdUJBQXVCcEwsR0FBQUEsUUFBQUEsVUFDM0I4SyxlQUFBQSxDQUFnQnJ5QyxFQUFPK3VCLEdBRXJCLE1BQU8sQ0FBRS91QixRQUFPc3lDLFVBRENDLEVBQUFBLEdBQUFBLFNBQUt4akIsRUFBT2h6QixPQUFPZ0gsS0FBS2dzQixFQUFNc1EsY0FFakQsQ0FFQW1ULE1BQUFBLEdBQ0UsTUFBTSxhQUFFQyxFQUFZLFNBQUVILEdBQWE3MUMsS0FBS3N5QixNQUNsQzZqQixFQUFhSCxFQUFhLGNBRWhDLE9BQU9sTCxHQUFBQSxRQUFBQSxjQUFDcUwsRUFBZU4sRUFDekIsRUFRRixzQkNoQmUsZ0JBQ2IsTUFBTyxDQUNMakksU0FBQUEsQ0FBVWhGLEdBQ1I1b0MsS0FBSytvQyxZQUFjL29DLEtBQUsrb0MsYUFBZSxDQUFDLEVBQ3hDL29DLEtBQUsrb0MsWUFBWXFOLFVBQVl4TixFQUFPZ0csWUFBWStELGNBQ2hEM3lDLEtBQUsrb0MsWUFBWXNOLG1CQUFxQkEsbUJBQW1CNXlDLEtBQUssS0FBTW1sQyxHQUNwRTVvQyxLQUFLK29DLFlBQVl1TixrQkFBb0JBLGtCQUFrQjd5QyxLQUFLLEtBQU1tbEMsRUFDcEUsRUFDQUUsV0FBWSxDQUNWNk0sYUFBY0EsR0FDZE8sZUFBZ0JBLEdBQ2hCSyxzQkFBdUJaLEdBQ3ZCYSx3QkFBeUJOLElBRTNCbE4sYUFBYyxDQUNaa0csS0FBTSxDQUNKOUQsU0FBUSxHQUNSVyxRQUFPLEdBQ1BTLFVBQVMsR0FDVEosWUFBYSxDQUNYc0MsVUFBVytILHVCQUNYM0gsT0FBUTRILHNCQUdaN04sUUFBUyxDQUNQdUQsWUFBYSxDQUNYNkksU0FHSjBCLEtBQU0sQ0FDSnZLLFlBQWEsQ0FDWHdJLFdBS1YsQ0FFTyxTQUFTMEIsa0JBQWtCMU4sRUFBUXZpQyxFQUFLc3BDLEVBQVVDLEdBQ3ZELE1BQ0VoQixhQUFhLFVBQUVGLEdBQ2YyQyxlQUFlLFNBQUV1RixFQUFRLE9BQUVyVyxJQUN6QnFJLEVBRUVpTyxFQUFpQnRXLElBQVcsQ0FBQyxhQUFjLG1CQUFxQixDQUFDLHVCQUVqRUUsRUFBU21XLElBQVcvVixNQUFNLElBQUlnVyxFQUFnQnh3QyxJQUVwRCxPQUFJbzZCLEVBSUdpTyxFQUFVLENBQ2YsQ0FBQ3JvQyxHQUFNLENBQ0x4RyxNQUFPLENBQ0w4dkMsV0FDQUMsWUFFRm5QLE9BQVFBLEVBQU9VLFVBVFYsSUFZWCxDQUVPLFNBQVNrVixtQkFBbUJ6TixFQUFRdmlDLEVBQUt4RyxHQUM5QyxNQUNFK3VDLGFBQWEsVUFBRUYsR0FDZjJDLGVBQWUsU0FBRXVGLEVBQVEsT0FBRXJXLElBQ3pCcUksRUFFRWlPLEVBQWlCdFcsSUFBVyxDQUFDLGFBQWMsbUJBQXFCLENBQUMsdUJBRWpFRSxFQUFTbVcsSUFBVy9WLE1BQU0sSUFBSWdXLEVBQWdCeHdDLElBRXBELE9BQUlvNkIsRUFJR2lPLEVBQVUsQ0FDZixDQUFDcm9DLEdBQU0sQ0FDTHhHLFFBQ0E0Z0MsT0FBUUEsRUFBT1UsVUFOVixJQVNYLENDN0ZBLElBSUksR0FKSSxTQUFTNzNCLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxZQUFpQixXQUFhLE9BQU95dEMsRUFBNkNDLFdBQWEsRUFBRyxRQUFhLFdBQWEsT0FBT0QsRUFBc0QsT0FBRyxJQ0Y1TixNQ0dNRSxHQUFpQixpQkFDakJDLEdBQWlCLGlCQUd2QixTQUFTeHpCLE9BQU95ekIsRUFBWUMsR0FDakMsTUFBTyxDQUNMcDFDLEtBQU1pMUMsR0FDTm5ZLFFBQVMsQ0FDUCxDQUFDcVksR0FBYUMsR0FHcEIsQ0FHTyxTQUFTQyxPQUFPRixHQUNyQixNQUFPLENBQ0xuMUMsS0FBTWsxQyxHQUNOcFksUUFBU3FZLEVBRWIsQ0FHTyxNQUFNakMsZUFBU0EsSUFBTSxPQUlmb0MsZUFBa0J4a0MsR0FBUysxQixJQUN0QyxNQUNFN25CLElBQUksTUFBRWd4QixJQUNKbkosRUFFSixPQUFPbUosRUFBTWwvQixFQUFJLEVBR055a0MsZUFBaUJBLENBQUN6a0MsRUFBSzFCLElBQVF5M0IsSUFDMUMsTUFBTSxZQUFFMk8sRUFBVyxlQUFFQyxHQUFtQjVPLEVBRXhDLEdBQUkvMUIsRUFDRixPQUFPMmtDLEVBQWVILGVBQWV4a0MsR0FBS3dvQixLQUFLOVQsS0FBTUEsTUFHdkQsU0FBU0EsS0FBS3hQLEdBQ1JBLGFBQWVuVixPQUFTbVYsRUFBSTAvQixRQUFVLEtBQ3hDRixFQUFZRyxvQkFBb0IsZ0JBQ2hDSCxFQUFZRyxvQkFBb0IsZ0JBQ2hDSCxFQUFZSSxVQUFVLElBQ3RCMTBDLFFBQVFrQyxNQUFNNFMsRUFBSXM2QixXQUFhLElBQU14L0IsRUFBSTg5QixLQUN6Q3gvQixFQUFHLE9BRUhBLEVEcERxQnltQyxFQUFDQyxFQUFNalAsS0FDaEMsSUFDRSxPQUFPa1AsR0FBQUEsUUFBQUEsS0FBVUQsRUFDbkIsQ0FBRSxNQUFNbHRDLEdBSU4sT0FISWkrQixHQUNGQSxFQUFPcUcsV0FBV3JRLGFBQWMsSUFBSWg4QixNQUFNK0gsSUFFckMsQ0FBQyxDQUNWLEdDNENPaXRDLENBQVk3L0IsRUFBSTVJLEtBQU15NUIsR0FFN0IsR0N2RFdoa0MsSUFBTUEsQ0FBQ3JCLEVBQU91eEMsSUFDbEJ2eEMsRUFBTXM5QixNQUFNNzhCLE1BQU0yRCxRQUFRbXRDLEdBQVFBLEVBQU8sQ0FBQ0EsSUNLbkQsUUFFRSxDQUFDa0MsSUFBaUIsQ0FBQ3p6QyxFQUFPdy9CLElBQ2pCeC9CLEVBQU1pcUMsT0FBTXpQLEVBQUFBLEdBQUFBLFFBQU9nRixFQUFPbEUsVUFHbkMsQ0FBQ29ZLElBQWlCLENBQUMxekMsRUFBT3cvQixLQUN4QixNQUFNbVUsRUFBYW5VLEVBQU9sRSxRQUNwQmtaLEVBQVN4MEMsRUFBTXFCLElBQUlzeUMsR0FDekIsT0FBTzN6QyxFQUFNc0IsSUFBSXF5QyxHQUFhYSxFQUFPLEdDWjFCLFNBQVNDLGdCQUV0QixNQUFPLENBQ0xoUCxhQUFjLENBQ1pILFFBQVMsQ0FDUHVDLFNBQVEsR0FDUlcsUUFBTyxHQUNQUyxVQUFTQSxLQUlqQixDQ2ZPLE1BQU15TCxRQUFXcDRDLEdBQ25CQSxFQUNNMC9CLFFBQVEyWSxVQUFVLEtBQU0sS0FBTSxJQUFJcjRDLEtBRWxDMGtCLE9BQU8rYSxTQUFTbmIsS0FBTyxHQ0psQyxJQUlJLEdBSkksU0FBUzdhLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxRQUFhLFdBQWEsT0FBTzh1QyxFQUErQyxPQUFHLElDQzFILE1BQU1DLEdBQVksbUJBQ1pDLEdBQWtCLHNCQXVKeEIsUUFDRXQzQixHQUFJLENBQ0Z1M0IsZ0JBdEJKLFNBQVNBLGdCQUFnQi9wQyxFQUFTZ3FDLEdBQ2hDLE1BQU1DLEVBQWNuRCxTQUFTb0QsZ0JBQzdCLElBQUlDLEVBQVFDLGlCQUFpQnBxQyxHQUM3QixNQUFNcXFDLEVBQXlDLGFBQW5CRixFQUFNN3lDLFNBQzVCZ3pDLEVBQWdCTixFQUFnQix1QkFBeUIsZ0JBRS9ELEdBQXVCLFVBQW5CRyxFQUFNN3lDLFNBQ1IsT0FBTzJ5QyxFQUNULElBQUssSUFBSU0sRUFBU3ZxQyxFQUFVdXFDLEVBQVNBLEVBQU9DLGVBRTFDLEdBREFMLEVBQVFDLGlCQUFpQkcsS0FDckJGLEdBQTBDLFdBQW5CRixFQUFNN3lDLFdBRzdCZ3pDLEVBQWM5VCxLQUFLMlQsRUFBTU0sU0FBV04sRUFBTU8sVUFBWVAsRUFBTVEsV0FDOUQsT0FBT0osRUFHWCxPQUFPTixDQUNULEdBTUV4UCxhQUFjLENBQ1ptUSxPQUFRLENBQ05wTixRQUFTLENBQ1BxTixnQkE3Q3VCQSxDQUFDQyxFQUFLQyxJQUFlMVEsSUFDbEQsSUFDRTBRLEVBQVlBLEdBQWExUSxFQUFPN25CLEdBQUd1M0IsZ0JBQWdCZSxHQUNsQ0UsR0FBQUEsUUFBQUEsZUFBeUJELEdBQy9CcmxCLEdBQUdvbEIsRUFDaEIsQ0FBRSxNQUFNMXVDLEdBQ04xSCxRQUFRa0MsTUFBTXdGLEVBQ2hCLEdBdUNNNnVDLFNBdkhpQjFFLElBQ2hCLENBQ0wveUMsS0FBTXEyQyxHQUNOdlosUUFBUzc2QixNQUFNMkQsUUFBUW10QyxHQUFRQSxFQUFPLENBQUNBLEtBcUhuQzJFLGNBckNxQkEsS0FDcEIsQ0FDTDEzQyxLQUFNczJDLEtBb0NGcUIsY0ExRHFCQSxDQUFDQyxFQUFZTixJQUFTelEsSUFDakQsTUFBTWdSLEVBQWNoUixFQUFPaVIsZ0JBQWdCQyxpQkFFeEMzWixHQUFBQSxRQUFBQSxHQUFNeVosR0FBYTdiLEVBQUFBLEdBQUFBLFFBQU80YixNQUMzQi9RLEVBQU9tUixjQUFjWCxnQkFBZ0JDLEdBQ3JDelEsRUFBT21SLGNBQWNOLGdCQUN2QixFQXFETU8sa0JBbkgwQkMsR0FBWSxFQUFHRixnQkFBZUYsa0JBQWlCblAsaUJBRS9FLEdBQUlBLElBQWF3UCxhQUlkRCxFQUFTLENBQ1YsSUFBSTkxQixFQUFPODFCLEVBQVFwNUMsTUFBTSxHQUdWLE1BQVpzakIsRUFBSyxLQUVOQSxFQUFPQSxFQUFLdGpCLE1BQU0sSUFHTCxNQUFac2pCLEVBQUssS0FJTkEsRUFBT0EsRUFBS3RqQixNQUFNLElBR3BCLE1BQU1zNUMsRUFBWWgyQixFQUFLMUQsTUFBTSxLQUFLN1ksS0FBSW9PLEdBQVFBLEdBQU8sS0FFL0MyakMsRUFBYUUsRUFBZ0JPLDJCQUEyQkQsSUFFdkRwNEMsRUFBTXM0QyxFQUFRLEdBQUlDLEVBQW1CLElBQU1YLEVBRWxELEdBQVksZUFBVDUzQyxFQUF1QixDQUV4QixNQUFNdzRDLEVBQWdCVixFQUFnQk8sMkJBQTJCLENBQUNDLElBSS9EQSxFQUFNenhDLFFBQVEsTUFBUSxJQUN2QjNGLFFBQVFDLEtBQUssbUdBQ2I2MkMsRUFBY1MsS0FBS0QsRUFBYzN5QyxLQUFJb08sR0FBT0EsRUFBSTFOLFFBQVEsS0FBTSxRQUFPLElBR3ZFeXhDLEVBQWNTLEtBQUtELEdBQWUsRUFDcEMsRUFJSUYsRUFBTXp4QyxRQUFRLE1BQVEsR0FBSzB4QyxFQUFpQjF4QyxRQUFRLE1BQVEsS0FDOUQzRixRQUFRQyxLQUFLLG1HQUNiNjJDLEVBQWNTLEtBQUtiLEVBQVcveEMsS0FBSW9PLEdBQU9BLEVBQUkxTixRQUFRLEtBQU0sUUFBTyxJQUdwRXl4QyxFQUFjUyxLQUFLYixHQUFZLEdBRy9CSSxFQUFjUCxTQUFTRyxFQUN6QixJQWdFSW5OLFVBQVcsQ0FDVHNOLGVBQWV2MkMsR0FDTkEsRUFBTXFCLElBQUksZUFFbkJ3MUMsMEJBQUFBLENBQTJCNzJDLEVBQU9rM0MsR0FDaEMsTUFBT0MsRUFBS0MsR0FBZUYsRUFFM0IsT0FBR0UsRUFDTSxDQUFDLGFBQWNELEVBQUtDLEdBQ2xCRCxFQUNGLENBQUMsaUJBQWtCQSxHQUVyQixFQUNULEVBQ0FFLDBCQUFBQSxDQUEyQnIzQyxFQUFPbzJDLEdBQ2hDLElBQUs1M0MsRUFBTTI0QyxFQUFLQyxHQUFlaEIsRUFFL0IsTUFBVyxjQUFSNTNDLEVBQ00sQ0FBQzI0QyxFQUFLQyxHQUNJLGtCQUFSNTRDLEVBQ0YsQ0FBQzI0QyxHQUVILEVBQ1QsR0FFRnRQLFNBQVUsQ0FDUixDQUFDZ04sSUFBVSxDQUFDNzBDLEVBQU93L0IsSUFDVngvQixFQUFNc0IsSUFBSSxjQUFlczdCLEdBQUFBLFFBQUFBLE9BQVU0QyxFQUFPbEUsVUFFbkQsQ0FBQ3daLElBQWlCOTBDLEdBQ1RBLEVBQU1rd0MsT0FBTyxnQkFHeEJySCxZQUFhLENBQ1hvTyxLQXBNWUEsQ0FBQ3ZOLEdBQU92QyxhQUFZbVAscUJBQXNCLElBQUk1NkMsS0FHaEUsR0FGQWd1QyxLQUFPaHVDLEdBRUh5ckMsSUFBYXdQLFlBSWpCLElBQ0UsSUFBS1csRUFBWUMsR0FBUzc3QyxFQUUxQjQ3QyxFQUFhNzJDLE1BQU0yRCxRQUFRa3pDLEdBQWNBLEVBQWEsQ0FBQ0EsR0FHdkQsTUFBTUosRUFBZVosRUFBZ0JlLDJCQUEyQkMsR0FHaEUsSUFBSUosRUFBYWg0QyxPQUNmLE9BRUYsTUFBT1YsRUFBTWc1QyxHQUFhTixFQUUxQixJQUFLSyxFQUNILE9BQU83QyxRQUFRLEtBR1csSUFBeEJ3QyxFQUFhaDRDLE9BQ2Z3MUMsUUFBUWpSLG1CQUFtQixJQUFJTixtQkFBbUIza0MsTUFBUzJrQyxtQkFBbUJxVSxPQUM3QyxJQUF4Qk4sRUFBYWg0QyxRQUN0QncxQyxRQUFRalIsbUJBQW1CLElBQUlOLG1CQUFtQjNrQyxNQUd0RCxDQUFFLE1BQU80SSxHQUdQMUgsUUFBUWtDLE1BQU13RixFQUNoQixPQ3ZDRSxHQUpJLFNBQVNyQixHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsUUFBYSxXQUFhLE9BQU8yeEMsRUFBd0UsT0FBRyxJQ3NCbkosc0JBdkJnQkMsQ0FBQ0MsRUFBS3RTLElBQVcsTUFBTXVTLHlCQUF5QnJRLEdBQUFBLFFBQUFBLFVBTTlEc1EsT0FBVS9CLElBQ1IsTUFBTSxVQUFFdEUsR0FBYy8wQyxLQUFLc3lCLE9BQ3JCLElBQUVvb0IsRUFBRyxZQUFFQyxHQUFnQjVGLEVBQVVzRyxXQUN2QyxJQUFJLFdBQUUxQixHQUFlNUUsRUFBVXNHLFdBQy9CMUIsRUFBYUEsR0FBYyxDQUFDLGFBQWNlLEVBQUtDLEdBQy9DL1IsRUFBT21SLGNBQWNMLGNBQWNDLEVBQVlOLEVBQUksRUFHckR0RCxNQUFBQSxHQUNFLE9BQ0VqTCxHQUFBQSxRQUFBQSxjQUFBLFFBQU11TyxJQUFLcjVDLEtBQUtvN0MsUUFDZHRRLEdBQUFBLFFBQUFBLGNBQUNvUSxFQUFRbDdDLEtBQUtzeUIsT0FHcEIsR0NDRiwwQkFyQmdCMm9CLENBQUNDLEVBQUt0UyxJQUFXLE1BQU0wUyw0QkFBNEJ4USxHQUFBQSxRQUFBQSxVQU1qRXNRLE9BQVUvQixJQUNSLE1BQU0sSUFBRXFCLEdBQVExNkMsS0FBS3N5QixNQUNmcW5CLEVBQWEsQ0FBQyxpQkFBa0JlLEdBQ3RDOVIsRUFBT21SLGNBQWNMLGNBQWNDLEVBQVlOLEVBQUksRUFHckR0RCxNQUFBQSxHQUNFLE9BQ0VqTCxHQUFBQSxRQUFBQSxjQUFBLFFBQU11TyxJQUFLcjVDLEtBQUtvN0MsUUFDZHRRLEdBQUFBLFFBQUFBLGNBQUNvUSxFQUFRbDdDLEtBQUtzeUIsT0FHcEIsR0NqQmEsd0JBQ2IsTUFBTyxDQUFDNm1CLEdBQVEsQ0FDZG5RLGFBQWMsQ0FDWkgsUUFBUyxDQUNQdUQsWUFBYSxDQUNYNkksT0FBUUEsQ0FBQ2hJLEVBQUtyRSxJQUFXLElBQUkzcEMsS0FDM0JndUMsS0FBT2h1QyxHQUVQLE1BQU1rbEIsRUFBT28zQixtQkFBbUJoM0IsT0FBTythLFNBQVNuYixNQUNoRHlrQixFQUFPbVIsY0FBY0Msa0JBQWtCNzFCLEVBQUssS0FLcEQwcEIsZUFBZ0IsQ0FDZGtILFVBQVdvRyxrQkFDWEssYUFBY0Ysd0JBR3BCLENDdkJBLElBSUksR0FKSSxTQUFTaHlDLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxRQUFhLFdBQWEsT0FBT295QyxFQUE0RCxPQUFHLElDSmhJLFNBQVM3dUIsVUFBVXhOLEdBR3hCLE9BQU9BLEVBQ0p4WCxLQUFJbEgsSUFDSCxJQUFJZzdDLEVBQVUsc0JBQ1Z6M0MsRUFBSXZELEVBQUlrRSxJQUFJLFdBQVdnRSxRQUFROHlDLEdBQ25DLEdBQUd6M0MsR0FBSyxFQUFHLENBQ1QsSUFBSTAzQyxFQUFRajdDLEVBQUlrRSxJQUFJLFdBQVcvRCxNQUFNb0QsRUFBSXkzQyxJQUFnQmo3QixNQUFNLEtBQy9ELE9BQU8vZixFQUFJbUUsSUFBSSxVQUFXbkUsRUFBSWtFLElBQUksV0FBVy9ELE1BQU0sRUFBR29ELEdBTzlELFNBQVMyM0MsZUFBZUQsR0FDdEIsT0FBT0EsRUFBTXBuQixRQUFPLENBQUNwa0IsRUFBRzFGLEVBQUd4RyxFQUFHSCxJQUN6QkcsSUFBTUgsRUFBSXJCLE9BQVMsR0FBS3FCLEVBQUlyQixPQUFTLEVBQy9CME4sRUFBSSxNQUFRMUYsRUFDWDNHLEVBQUlHLEVBQUUsSUFBTUgsRUFBSXJCLE9BQVMsRUFDMUIwTixFQUFJMUYsRUFBSSxLQUNQM0csRUFBSUcsRUFBRSxHQUNQa00sRUFBSTFGLEVBQUksSUFFUjBGLEVBQUkxRixHQUVaLGNBQ0wsQ0FuQm1FbXhDLENBQWVELEdBQzVFLENBQ0UsT0FBT2o3QyxDQUNULEdBRU4sQ0NkQSxJQUlJLEdBSkksU0FBUzRJLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxRQUFhLFdBQWEsT0FBT3d5QyxFQUF5RCxPQUFHLElDRDdILFNBQVNqdkIsMEJBQVV4TixHQUFRLE9BQUUwOEIsSUFJbEMsT0FBTzE4QixDQWlCVCxDQ3BCQSxNQUFNMjhCLEdBQW9CLENBQ3hCQyxHQUNBQyxJQUdhLFNBQVNDLGdCQUFpQjk4QixHQUt2QyxJQUFJKzhCLEVBQVMsQ0FDWEwsT0FBUSxDQUFDLEdBR1BNLEdBQW9CN25CLEVBQUFBLEdBQUFBLFNBQU93bkIsSUFBbUIsQ0FBQ3hJLEVBQVE4SSxLQUN6RCxJQUVFLE9BRDZCQSxFQUFZenZCLFVBQVUybUIsRUFBUTRJLEdBQzdCcnFCLFFBQU9weEIsS0FBU0EsR0FDaEQsQ0FBRSxNQUFNaUssR0FFTixPQURBMUgsUUFBUWtDLE1BQU0scUJBQXNCd0YsR0FDN0I0b0MsQ0FDVCxJQUNDbjBCLEdBRUgsT0FBT2c5QixFQUNKdHFCLFFBQU9weEIsS0FBU0EsSUFDaEJrSCxLQUFJbEgsS0FDQ0EsRUFBSWtFLElBQUksU0FBV2xFLEVBQUlrRSxJQUFJLFFBR3hCbEUsSUFHYixDQ3ZCQSxJQUFJNDdDLEdBQTBCLENBRTVCQyxLQUFNLEVBQ05oTixNQUFPLFFBQ1BscUMsUUFBUyxpQkNmWCxNQUVhbTNDLElBQVk3SSxFQUFBQSxHQUFBQSxpQkFGWHB3QyxHQUFTQSxJQUlyQjdDLEdBQU9BLEVBQUlrRSxJQUFJLFVBQVU4NEIsRUFBQUEsR0FBQUEsV0FHZCtlLElBQVk5SSxFQUFBQSxHQUFBQSxnQkFDdkI2SSxJQUNBRSxHQUFPQSxFQUFJM3VDLFNDUkUsYUFBUzY2QixHQUN0QixNQUFPLENBQ0xJLGFBQWMsQ0FDWnRvQyxJQUFLLENBQ0gwcUMsU0ZjQyxDQUNMLENBQUMvTSxJQUFpQixDQUFDOTZCLEdBQVNzN0IsY0FDMUIsSUFBSTE1QixFQUFRN0YsT0FBT29qQyxPQUFPNFosR0FBeUJ6ZCxFQUFTLENBQUM5OEIsS0FBTSxXQUNuRSxPQUFPd0IsRUFDSmtnQixPQUFPLFVBQVVyRSxJQUFXQSxJQUFVc2UsRUFBQUEsR0FBQUEsU0FBUWw3QixNQUFNdTdCLEVBQUFBLEdBQUFBLFFBQVE1NEIsTUFDNURzZSxPQUFPLFVBQVVyRSxHQUFVODhCLGdCQUFnQjk4QixJQUFRLEVBR3hELENBQUNrZixJQUF1QixDQUFDLzZCLEdBQVNzN0IsY0FDaENBLEVBQVVBLEVBQVFqM0IsS0FBSWxILElBQ2JxOUIsRUFBQUEsR0FBQUEsUUFBT3orQixPQUFPb2pDLE9BQU80WixHQUF5QjU3QyxFQUFLLENBQUVxQixLQUFNLGNBRTdEd0IsRUFDSmtnQixPQUFPLFVBQVVyRSxJQUFXQSxJQUFVc2UsRUFBQUEsR0FBQUEsU0FBUWorQixRQUFRcytCLEVBQUFBLEdBQUFBLFFBQVFjLE1BQzlEcGIsT0FBTyxVQUFVckUsR0FBVTg4QixnQkFBZ0I5OEIsTUFHaEQsQ0FBQ21mLElBQWUsQ0FBQ2g3QixHQUFTczdCLGNBQ3hCLElBQUkxNUIsR0FBUTQ0QixFQUFBQSxHQUFBQSxRQUFPYyxHQUVuQixPQURBMTVCLEVBQVFBLEVBQU1OLElBQUksT0FBUSxRQUNuQnRCLEVBQ0prZ0IsT0FBTyxVQUFVckUsSUFBV0EsSUFBVXNlLEVBQUFBLEdBQUFBLFNBQVFsN0IsTUFBTXU3QixFQUFBQSxHQUFBQSxRQUFPNTRCLElBQVF3M0MsUUFBT2o4QyxHQUFPQSxFQUFJa0UsSUFBSSxZQUN6RjZlLE9BQU8sVUFBVXJFLEdBQVU4OEIsZ0JBQWdCOThCLElBQVEsRUFHeEQsQ0FBQ29mLElBQXFCLENBQUNqN0IsR0FBU3M3QixjQUM5QkEsRUFBVUEsRUFBUWozQixLQUFJbEgsSUFDYnE5QixFQUFBQSxHQUFBQSxRQUFPeitCLE9BQU9vakMsT0FBTzRaLEdBQXlCNTdDLEVBQUssQ0FBRXFCLEtBQU0sWUFFN0R3QixFQUNKa2dCLE9BQU8sVUFBVXJFLElBQVdBLElBQVVzZSxFQUFBQSxHQUFBQSxTQUFRaitCLFFBQU9zK0IsRUFBQUEsR0FBQUEsUUFBT2MsTUFDNURwYixPQUFPLFVBQVVyRSxHQUFVODhCLGdCQUFnQjk4QixNQUdoRCxDQUFDcWYsSUFBZSxDQUFDbDdCLEdBQVNzN0IsY0FDeEIsSUFBSTE1QixHQUFRNDRCLEVBQUFBLEdBQUFBLFFBQU96K0IsT0FBT29qQyxPQUFPLENBQUMsRUFBRzdELElBR3JDLE9BREExNUIsRUFBUUEsRUFBTU4sSUFBSSxPQUFRLFFBQ25CdEIsRUFDSmtnQixPQUFPLFVBQVVyRSxJQUFXQSxJQUFVc2UsRUFBQUEsR0FBQUEsU0FBUWw3QixNQUFNdTdCLEVBQUFBLEdBQUFBLFFBQU81NEIsTUFDM0RzZSxPQUFPLFVBQVVyRSxHQUFVODhCLGdCQUFnQjk4QixJQUFRLEVBR3hELENBQUNzZixJQUFRLENBQUNuN0IsR0FBU3M3QixjQUNqQixJQUFJQSxJQUFZdDdCLEVBQU1xQixJQUFJLFVBQ3hCLE9BQU9yQixFQUdULElBQUlxNUMsRUFBWXI1QyxFQUFNcUIsSUFBSSxVQUN2Qmt0QixRQUFPcHhCLEdBQ0NBLEVBQUlrZ0MsU0FBU2ljLE9BQU1sYyxJQUN4QixNQUFNbWMsRUFBV3A4QyxFQUFJa0UsSUFBSSs3QixHQUNuQm9jLEVBQWNsZSxFQUFROEIsR0FFNUIsT0FBSW9jLEdBRUdELElBQWFDLENBQVcsTUFHckMsT0FBT3g1QyxFQUFNaXFDLE1BQU0sQ0FDakJwdUIsT0FBUXc5QixHQUNSLEVBR0osQ0FBQ2plLElBQVcsQ0FBQ3A3QixHQUFTczdCLGNBQ3BCLElBQUlBLEdBQThCLG1CQUFaQSxFQUNwQixPQUFPdDdCLEVBRVQsSUFBSXE1QyxFQUFZcjVDLEVBQU1xQixJQUFJLFVBQ3ZCa3RCLFFBQU9weEIsR0FDQ20rQixFQUFRbitCLEtBRW5CLE9BQU82QyxFQUFNaXFDLE1BQU0sQ0FDakJwdUIsT0FBUXc5QixHQUNSLEdFdkZBN1EsUUFBTyxHQUNQUyxVQUFTQSxLQUlqQixDQ2RlLG1CQUFTd1EsRUFBV0MsR0FDakMsT0FBT0QsRUFBVWxyQixRQUFPLENBQUNvckIsRUFBUXhDLEtBQWlDLElBQXpCQSxFQUFJOXhDLFFBQVFxMEMsSUFDdkQsQ0NBZSxrQkFDYixNQUFPLENBQ0xsOEIsR0FBSSxDQUNGbzhCLFdBR04sQ0NSQSxJQUlJLEdBSkksU0FBUzd6QyxHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsUUFBYSxXQUFhLE9BQU8rekMsRUFBcUYsT0FBRyxJQ3VCaEssYUFyQmdCQyxFQUFHQyxZQUFZLEtBQU1DLFFBQVEsR0FBSUMsU0FBUyxNQUFPQyxLQUMvRDNTLEdBQUFBLFFBQUFBLGNBQUEsT0FBQTRTLEVBQUFBLEdBQUFBLFNBQUEsQ0FDRUMsTUFBTSw2QkFDTkMsUUFBUSxZQUNSTixVQUFXQSxFQUNYQyxNQUFPQSxFQUNQQyxPQUFRQSxFQUNSLGNBQVksT0FDWkssVUFBVSxTQUNOSixHQUVKM1MsR0FBQUEsUUFBQUEsY0FBQSxRQUFNcGdDLEVBQUUsNlJDVVosZUFyQmtCb3pDLEVBQUdSLFlBQVksS0FBTUMsUUFBUSxHQUFJQyxTQUFTLE1BQU9DLEtBQ2pFM1MsR0FBQUEsUUFBQUEsY0FBQSxPQUFBNFMsRUFBQUEsR0FBQUEsU0FBQSxDQUNFQyxNQUFNLDZCQUNOQyxRQUFRLFlBQ1JOLFVBQVdBLEVBQ1hDLE1BQU9BLEVBQ1BDLE9BQVFBLEVBQ1IsY0FBWSxPQUNaSyxVQUFVLFNBQ05KLEdBRUozUyxHQUFBQSxRQUFBQSxjQUFBLFFBQU1wZ0MsRUFBRSxxTENVWixVQXJCY3F6QyxFQUFHVCxZQUFZLEtBQU1DLFFBQVEsR0FBSUMsU0FBUyxNQUFPQyxLQUM3RDNTLEdBQUFBLFFBQUFBLGNBQUEsT0FBQTRTLEVBQUFBLEdBQUFBLFNBQUEsQ0FDRUMsTUFBTSw2QkFDTkMsUUFBUSxZQUNSTixVQUFXQSxFQUNYQyxNQUFPQSxFQUNQQyxPQUFRQSxFQUNSLGNBQVksT0FDWkssVUFBVSxTQUNOSixHQUVKM1MsR0FBQUEsUUFBQUEsY0FBQSxRQUFNcGdDLEVBQUUsd0xDVVoscUJBckJjc3pDLEVBQUdWLFlBQVksS0FBTUMsUUFBUSxHQUFJQyxTQUFTLE1BQU9DLEtBQzdEM1MsR0FBQUEsUUFBQUEsY0FBQSxPQUFBNFMsRUFBQUEsR0FBQUEsU0FBQSxDQUNFQyxNQUFNLDZCQUNOQyxRQUFRLFlBQ1JOLFVBQVdBLEVBQ1hDLE1BQU9BLEVBQ1BDLE9BQVFBLEVBQ1IsY0FBWSxPQUNaSyxVQUFVLFNBQ05KLEdBRUozUyxHQUFBQSxRQUFBQSxjQUFBLFFBQU1wZ0MsRUFBRSxrVkNnQlosU0EzQmF1ekMsRUFBR1gsWUFBWSxLQUFNQyxRQUFRLEdBQUlDLFNBQVMsTUFBT0MsS0FDNUQzUyxHQUFBQSxRQUFBQSxjQUFBLE9BQUE0UyxFQUFBQSxHQUFBQSxTQUFBLENBQ0VDLE1BQU0sNkJBQ05DLFFBQVEsWUFDUk4sVUFBV0EsRUFDWEMsTUFBT0EsRUFDUEMsT0FBUUEsRUFDUixjQUFZLE9BQ1pLLFVBQVUsU0FDTkosR0FFSjNTLEdBQUFBLFFBQUFBLGNBQUEsS0FBR2xlLFVBQVUsb0JBQ1hrZSxHQUFBQSxRQUFBQSxjQUFBLFFBQ0U3eEIsS0FBSyxVQUNMaWxDLFNBQVMsVUFDVHh6QyxFQUFFLHFWQ01WLFNBckJheXpDLEVBQUdiLFlBQVksS0FBTUMsUUFBUSxHQUFJQyxTQUFTLE1BQU9DLEtBQzVEM1MsR0FBQUEsUUFBQUEsY0FBQSxPQUFBNFMsRUFBQUEsR0FBQUEsU0FBQSxDQUNFQyxNQUFNLDZCQUNOQyxRQUFRLFlBQ1JOLFVBQVdBLEVBQ1hDLE1BQU9BLEVBQ1BDLE9BQVFBLEVBQ1IsY0FBWSxPQUNaSyxVQUFVLFNBQ05KLEdBRUozUyxHQUFBQSxRQUFBQSxjQUFBLFFBQU1wZ0MsRUFBRSxxVUNVWixXQXJCZTB6QyxFQUFHZCxZQUFZLEtBQU1DLFFBQVEsR0FBSUMsU0FBUyxNQUFPQyxLQUM5RDNTLEdBQUFBLFFBQUFBLGNBQUEsT0FBQTRTLEVBQUFBLEdBQUFBLFNBQUEsQ0FDRUMsTUFBTSw2QkFDTkMsUUFBUSxZQUNSTixVQUFXQSxFQUNYQyxNQUFPQSxFQUNQQyxPQUFRQSxFQUNSLGNBQVksT0FDWkssVUFBVSxTQUNOSixHQUVKM1MsR0FBQUEsUUFBQUEsY0FBQSxRQUFNcGdDLEVBQUUsK1RDTVosVUFab0IyekMsS0FBQSxDQUNsQnZWLFdBQVksQ0FDVndWLFlBQVcsU0FDWEMsY0FBYSxXQUNiQyxVQUFTLE1BQ1RDLFVBQVMsaUJBQ1RDLFNBQVEsS0FDUnpJLFNBQVEsS0FDUkUsV0FBVUEsVUNqQlAsTUFBTXdJLEdBQWdCLHVCQUNoQkMsR0FBZ0IsdUJBQ2hCQyxHQUFjLHFCQUNkQyxHQUFPLGNBSWIsU0FBU0MsYUFBYTVGLEdBQzNCLE1BQU8sQ0FDTHAzQyxLQUFNNDhDLEdBQ045ZixRQUFTc2EsRUFFYixDQUVPLFNBQVM2RixhQUFhbHRCLEdBQzNCLE1BQU8sQ0FDTC92QixLQUFNNjhDLEdBQ04vZixRQUFTL00sRUFFYixDQUVPLFNBQVMwb0IsYUFBSzl5QyxFQUFPb3pDLEdBQU0sR0FFaEMsT0FEQXB6QyxFQUFReTZCLGVBQWV6NkIsR0FDaEIsQ0FDTDNGLEtBQU0rOEMsR0FDTmpnQixRQUFTLENBQUNuM0IsUUFBT296QyxTQUVyQixDQUdPLFNBQVNtRSxXQUFXdjNDLEVBQU93M0MsRUFBSyxJQUVyQyxPQURBeDNDLEVBQVF5NkIsZUFBZXo2QixHQUNoQixDQUNMM0YsS0FBTTg4QyxHQUNOaGdCLFFBQVMsQ0FBQ24zQixRQUFPdzNDLFFBRXJCLENDOUJBLFFBRUUsQ0FBQ1AsSUFBZ0IsQ0FBQ3A3QyxFQUFPdy9CLElBQVd4L0IsRUFBTXNCLElBQUksU0FBVWsrQixFQUFPbEUsU0FFL0QsQ0FBQytmLElBQWdCLENBQUNyN0MsRUFBT3cvQixJQUFXeC9CLEVBQU1zQixJQUFJLFNBQVVrK0IsRUFBT2xFLFNBRS9ELENBQUNpZ0IsSUFBTyxDQUFDdjdDLEVBQU93L0IsS0FDZCxNQUFNb2MsRUFBVXBjLEVBQU9sRSxRQUFRaWMsTUFHekJzRSxHQUFjcmhCLEVBQUFBLEdBQUFBLFFBQU9nRixFQUFPbEUsUUFBUW4zQixPQUkxQyxPQUFPbkUsRUFBTWtnQixPQUFPLFNBQVNzYSxFQUFBQSxHQUFBQSxRQUFPLENBQUMsSUFBSXh6QixHQUFLQSxFQUFFMUYsSUFBSXU2QyxFQUFhRCxJQUFTLEVBRzVFLENBQUNOLElBQWMsQ0FBQ3Q3QyxFQUFPdy9CLEtBQ3JCLElBQUlyN0IsRUFBUXE3QixFQUFPbEUsUUFBUW4zQixNQUN2QnczQyxFQUFPbmMsRUFBT2xFLFFBQVFxZ0IsS0FDMUIsT0FBTzM3QyxFQUFNNnZDLE1BQU0sQ0FBQyxTQUFTM3pDLE9BQU9pSSxJQUFTdzNDLEdBQVEsSUFBTSxHQUFHLEdDeEJsRSxNQUVhcHVCLFFBQVV2dEIsR0FBU0EsRUFBTXFCLElBQUksVUFFN0J5NkMsY0FBZ0I5N0MsR0FBU0EsRUFBTXFCLElBQUksVUFFbkN1NkMsUUFBVUEsQ0FBQzU3QyxFQUFPbUUsRUFBTzQzQyxLQUNwQzUzQyxFQUFReTZCLGVBQWV6NkIsR0FDaEJuRSxFQUFNcUIsSUFBSSxTQUFTbTVCLEVBQUFBLEdBQUFBLFFBQU8sQ0FBQyxJQUFJbjVCLEtBQUltNUIsRUFBQUEsR0FBQUEsUUFBT3IyQixHQUFRNDNDLElBRzlDQyxTQUFXQSxDQUFDaDhDLEVBQU9tRSxFQUFPNDNDLEVBQUksTUFDekM1M0MsRUFBUXk2QixlQUFlejZCLEdBQ2hCbkUsRUFBTXM5QixNQUFNLENBQUMsV0FBWW41QixHQUFRNDNDLElBRzdCRSxJQUFjN0wsRUFBQUEsR0FBQUEsaUJBaEJicHdDLEdBQVNBLElBa0JyQkEsSUFBVTQ3QyxRQUFRNTdDLEVBQU8sWUNyQmRrOEMsaUJBQW1CQSxDQUFDQyxFQUFhOVcsSUFBVyxDQUFDcmxDLEtBQVV0RSxLQUNsRSxJQUFJKzlDLEVBQVkwQyxFQUFZbjhDLEtBQVV0RSxHQUV0QyxNQUFNLEdBQUU4aEIsRUFBRSxnQkFBRTg0QixFQUFlLFdBQUVuUCxHQUFlOUIsRUFBT2hHLFlBQzdDaUcsRUFBVTZCLEtBQ1YsaUJBQUVpVixHQUFxQjlXLEVBRzdCLElBQUkvVyxFQUFTK25CLEVBQWdCd0YsZ0JBVzdCLE9BVkl2dEIsSUFDYSxJQUFYQSxJQUNGa3JCLEVBQVlqOEIsRUFBR284QixVQUFVSCxFQUFXbHJCLElBSXBDNnRCLEdBQW9CLElBQ3RCM0MsRUFBWUEsRUFBVW44QyxNQUFNLEVBQUc4K0MsSUFHMUIzQyxDQUFTLEVDZkgsMEJBQ2IsTUFBTyxDQUNMaFUsYUFBYyxDQUNabVEsT0FBUSxDQUNOL04sU0FBUSxHQUNSVyxRQUFPLEdBQ1BTLFVBQVNBLElBRVhtSyxLQUFNLENBQ0poSyxjQUFhQSxLQUlyQixDQ2xCZSxTQUFTLE1BQUMsUUFBQzlELElBRXhCLE1BQU0rVyxFQUFTLENBQ2IsTUFBUyxFQUNULEtBQVEsRUFDUixJQUFPLEVBQ1AsS0FBUSxFQUNSLE1BQVMsR0FHTEMsU0FBWXRRLEdBQVVxUSxFQUFPclEsS0FBVyxFQUU5QyxJQUFJLFNBQUV1USxHQUFhalgsRUFDZmtYLEVBQWNGLFNBQVNDLEdBRTNCLFNBQVNFLElBQUl6USxLQUFVdHdDLEdBQ2xCNGdELFNBQVN0USxJQUFVd1EsR0FFcEI5OEMsUUFBUXNzQyxNQUFVdHdDLEVBQ3RCLENBT0EsT0FMQStnRCxJQUFJOThDLEtBQU84OEMsSUFBSXY4QyxLQUFLLEtBQU0sUUFDMUJ1OEMsSUFBSTc2QyxNQUFRNjZDLElBQUl2OEMsS0FBSyxLQUFNLFNBQzNCdThDLElBQUlDLEtBQU9ELElBQUl2OEMsS0FBSyxLQUFNLFFBQzFCdThDLElBQUl4N0IsTUFBUXc3QixJQUFJdjhDLEtBQUssS0FBTSxTQUVwQixDQUFFc2xDLFlBQWEsQ0FBRWlYLEtBQzFCLENDM0JBLElBQUlFLElBQVUsRUFFQyx1QkFFYixNQUFPLENBQ0xsWCxhQUFjLENBQ1oyTixLQUFNLENBQ0p2SyxZQUFhLENBQ1grVCxXQUFhbFQsR0FBUSxJQUFJaHVDLEtBQ3ZCaWhELElBQVUsRUFDSGpULEtBQU9odUMsSUFFaEJtaEQsZUFBZ0JBLENBQUNuVCxFQUFLckUsSUFBVyxJQUFJM3BDLEtBQ25DLE1BQU1rUyxFQUFLeTNCLEVBQU84QixhQUFhMlYsV0FRL0IsT0FQR0gsSUFBeUIsbUJBQVAvdUMsSUFHbkJ1WixXQUFXdlosRUFBSSxHQUNmK3VDLElBQVUsR0FHTGpULEtBQU9odUMsRUFBSyxLQU0vQixDQ2pCQSxNQUFNcWhELFdBQWMzZixJQUNsQixNQUFNb0IsRUFBVSxRQUNoQixPQUFJcEIsRUFBRS8zQixRQUFRbTVCLEdBQVcsRUFDaEJwQixFQUVGQSxFQUFFbGdCLE1BQU1zaEIsR0FBUyxHQUFHbm9CLE1BQU0sRUFHN0IybUMsWUFBZXI0QyxHQUNQLFFBQVJBLEdBSUMsV0FBVzY4QixLQUFLNzhCLEdBSFpBLEVBSUMsSUFBTUEsRUFDWEksUUFBUSxLQUFNLFNBQVcsSUFLMUJrNEMsVUFBYXQ0QyxHQU1MLFNBTFpBLEVBQU1BLEVBQ0hJLFFBQVEsTUFBTyxNQUNmQSxRQUFRLE9BQVEsU0FDaEJBLFFBQVEsS0FBTSxNQUNkQSxRQUFRLE1BQU8sUUFFVEosRUFDSkksUUFBUSxPQUFRLFVBR2hCLFdBQVd5OEIsS0FBSzc4QixHQUdaQSxFQUZBLElBQU9BLEVBQU0sSUFLbEJ1NEMsaUJBQW9CdjRDLElBQ3hCLEdBQVksUUFBUkEsRUFDRixPQUFPQSxFQUVULEdBQUksS0FBSzY4QixLQUFLNzhCLEdBQU0sQ0FFbEIsTUFBTyxPQURTQSxFQUFJSSxRQUFRLEtBQU0sTUFBTUEsUUFBUSxNQUFPLFdBRXpELENBQ0EsSUFBSyxVQUFVeThCLEtBQUs3OEIsR0FBTSxDQUV4QixNQUFPLElBRFNBLEVBQUlJLFFBQVEsS0FBTSxRQUVwQyxDQUNBLE9BQU9KLENBQUcsRUFnQlosTUFBTXc0QyxRQUFVQSxDQUFDQyxFQUFTQyxFQUFRQyxFQUFTdm1DLEVBQU0sTUFDL0MsSUFBSXdtQyxHQUE2QixFQUM3QkMsRUFBWSxHQUNoQixNQUFNQyxTQUFXQSxJQUFJL2hELElBQVM4aEQsR0FBYSxJQUFNOWhELEVBQUsySSxJQUFJZzVDLEdBQVEvNEMsS0FBSyxLQUNqRW81Qyw0QkFBOEJBLElBQUloaUQsSUFBUzhoRCxHQUFhOWhELEVBQUsySSxJQUFJZzVDLEdBQVEvNEMsS0FBSyxLQUM5RXE1QyxXQUFhQSxJQUFNSCxHQUFhLElBQUlGLElBQ3BDTSxVQUFZQSxDQUFDNVIsRUFBUSxJQUFNd1IsR0FBYSxLQUFLSyxPQUFPN1IsR0FDMUQsSUFBSWEsRUFBVXVRLEVBQVEvN0MsSUFBSSxXQUMxQm04QyxHQUFhLE9BQVN6bUMsRUFFdEIsTUFBTSttQyxFQUFjVixFQUFRLzdDLElBQUksZUFXaEMsR0FWSTg0QixHQUFBQSxLQUFLMEcsT0FBT2lkLEtBQWlCQSxFQUFZN1ksV0FDM0N3WSxZQUFZTCxFQUFRLzdDLElBQUksZ0JBRzFCbzhDLFNBQVMsS0FBTUwsRUFBUS83QyxJQUFJLFdBRTNCczhDLGFBQ0FDLFlBQ0FGLDRCQUE0QixHQUFHTixFQUFRLzdDLElBQUksVUFFdkN3ckMsR0FBV0EsRUFBUWwvQixLQUNyQixJQUFLLElBQUlmLEtBQUt3d0MsRUFBUS83QyxJQUFJLFdBQVc4OEIsVUFBVyxDQUM5Q3dmLGFBQ0FDLFlBQ0EsSUFBS3IyQyxFQUFHZ1ksR0FBSzNTLEVBQ2I4d0MsNEJBQTRCLEtBQU0sR0FBR24yQyxNQUFNZ1ksS0FDM0NnK0IsRUFBNkJBLEdBQThCLGtCQUFrQi9iLEtBQUtqNkIsSUFBTSwwQkFBMEJpNkIsS0FBS2ppQixFQUN6SCxDQUdGLE1BQU00dEIsRUFBT2lRLEVBQVEvN0MsSUFBSSxRQUN6QixHQUFJOHJDLEVBQ0YsR0FBSW9RLEdBQThCLENBQUMsT0FBUSxNQUFPLFNBQVNwNEMsU0FBU2k0QyxFQUFRLzdDLElBQUksV0FDOUUsSUFBSyxJQUFLKzdCLEVBQUc3ZCxLQUFNNHRCLEVBQUt3QyxXQUFZLENBQ2xDLElBQUlvTyxFQUFlaEIsV0FBVzNmLEdBQzlCdWdCLGFBQ0FDLFlBQ0FGLDRCQUE0QixNQVV4Qm4rQixhQUFhdWMsR0FBSUssTUFBK0IsaUJBQWhCNWMsRUFBRW5PLFVBQ3BDcXNDLFNBQVMsR0FBR00sS0FBZ0J4K0IsRUFBRXJYLE9BQU9xWCxFQUFFL2dCLEtBQU8sU0FBUytnQixFQUFFL2dCLE9BQVMsTUFDekQrZ0IsYUFBYXVjLEdBQUlLLEtBQzFCc2hCLFNBQVMsR0FBR00sTUFBaUJ4K0IsRUFBRXppQixPQUFPeWlCLEVBQUUvZ0IsS0FBTyxTQUFTK2dCLEVBQUUvZ0IsT0FBUyxNQUVuRWkvQyxTQUFTLEdBQUdNLEtBQWdCeCtCLElBRWhDLE1BQ0ssR0FBRzR0QixhQUFnQnJSLEdBQUlLLEtBQzVCd2hCLGFBQ0FDLFlBQ0FGLDRCQUE0QixtQkFBbUJ2USxFQUFLcndDLGFBQy9DLENBQ0w2Z0QsYUFDQUMsWUFDQUYsNEJBQTRCLE9BQzVCLElBQUlNLEVBQVU3USxFQUNUL1MsR0FBQUEsSUFBSTZDLE1BQU0rZ0IsR0FNYk4sNEJBcEZSLFNBQVNPLG1CQUFtQmIsR0FDMUIsSUFBSWMsRUFBZ0IsR0FDcEIsSUFBSyxJQUFLOWdCLEVBQUc3ZCxLQUFNNjlCLEVBQVEvN0MsSUFBSSxRQUFRc3VDLFdBQVksQ0FDakQsSUFBSW9PLEVBQWVoQixXQUFXM2YsR0FDMUI3ZCxhQUFhdWMsR0FBSUssS0FDbkIraEIsRUFBY2ovQyxLQUFLLE1BQU04K0MsdUJBQWtDeCtCLEVBQUV6aUIsUUFBUXlpQixFQUFFL2dCLEtBQU8sbUJBQW1CK2dCLEVBQUUvZ0IsUUFBVSxXQUU3RzAvQyxFQUFjai9DLEtBQUssTUFBTTgrQyxPQUFrQjljLEtBQUtrRCxVQUFVNWtCLEVBQUcsS0FBTSxHQUFHeGEsUUFBUSxnQkFBaUIsVUFFbkcsQ0FDQSxNQUFPLE1BQU1tNUMsRUFBYzU1QyxLQUFLLFdBQ2xDLENBeUVvQzI1QyxDQUFtQmIsS0FMeEIsaUJBQVpZLElBQ1RBLEVBQVUvYyxLQUFLa0QsVUFBVTZaLElBRTNCTiw0QkFBNEJNLEdBSWhDLE1BQ1U3USxHQUFrQyxTQUExQmlRLEVBQVEvN0MsSUFBSSxZQUM5QnM4QyxhQUNBQyxZQUNBRiw0QkFBNEIsVUFHOUIsT0FBT0YsQ0FBUyxFQUdMVyx3Q0FBMkNmLEdBQy9DRCxRQUFRQyxFQUFTRixpQkFBa0IsTUFBTyxRQUd0Q2tCLGtDQUFxQ2hCLEdBQ3pDRCxRQUFRQyxFQUFTSixZQUFhLFFBRzFCcUIsaUNBQW9DakIsR0FDeENELFFBQVFDLEVBQVNILFVBQVcsT0NwSy9CajlDLGlDQUFRQSxHQUFTQSxJQUFTbzZCLEVBQUFBLEdBQUFBLE9BRW5Ca2tCLElBQWdCbE8sRUFBQUEsR0FBQUEsZ0JBQzNCcHdDLGtDQUNBQSxJQUNFLE1BQU11K0MsRUFBZXYrQyxFQUNsQnFCLElBQUksYUFDRG05QyxFQUFheCtDLEVBQ2hCcUIsSUFBSSxjQUFjKzRCLEVBQUFBLEdBQUFBLFFBQ3JCLE9BQUlta0IsR0FBZ0JBLEVBQWF0WixVQUN4QnVaLEVBRUZBLEVBQ0pqd0IsUUFBTyxDQUFDaFAsRUFBR3pjLElBQVF5N0MsRUFBYXA1QyxTQUFTckMsSUFBSyxJQUl4QzI3QyxxQkFBd0J6K0MsR0FBVSxFQUFHd2QsUUFFekM4Z0MsR0FBY3QrQyxHQUNsQnFFLEtBQUksQ0FBQ3E2QyxFQUFLNTdDLEtBQ1QsTUFBTTY3QyxFQUhPQyxDQUFDOTdDLEdBQVEwYSxFQUFHLDJCQUEyQjFhLEtBR3RDODdDLENBQVM5N0MsR0FDdkIsTUFBb0IsbUJBQVY2N0MsRUFDRCxLQUdGRCxFQUFJcDlDLElBQUksS0FBTXE5QyxFQUFNLElBRTVCcHdCLFFBQU9oUCxHQUFLQSxJQUdKcy9CLElBQW9Cek8sRUFBQUEsR0FBQUEsZ0JBQy9CcHdDLGtDQUNBQSxHQUFTQSxFQUNOcUIsSUFBSSxvQkFHSXk5QyxJQUFxQjFPLEVBQUFBLEdBQUFBLGdCQUNoQ3B3QyxrQ0FDQUEsR0FBU0EsRUFDTnFCLElBQUkscUJDM0NULElBSUksR0FKSSxTQUFTMEUsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLFFBQWEsV0FBYSxPQUFPaTVDLEVBQWdELE9BQUcsSUNBdkgsR0FKSSxTQUFTaDVDLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxnQkFBcUIsV0FBYSxPQUFPazVDLEVBQTZEQyxlQUFpQixJQ0M5SixNQUFNOUosR0FBUSxDQUNaK0osT0FBUSxVQUNSQyxXQUFZLEVBQ1pDLFFBQVMsY0FDVEMsZ0JBQWlCLHFCQUNqQkMsY0FBZSxJQUNmQyxXQUFZLElBQ1pDLE9BQVEsNEJBQ1JDLGFBQWMsY0FDZEMsVUFBVyxPQUNYQyxhQUFjLFFBR1ZDLEdBQWMsQ0FDbEJWLE9BQVEsVUFDUkMsV0FBWSxFQUNaQyxRQUFTLGNBQ1RDLGdCQUFpQixrQkFDakJLLFVBQVcsT0FDWEYsT0FBUSw0QkFDUkYsY0FBZSxJQUNmQyxXQUFZLElBQ1pFLGFBQWMsY0FDZEksVUFBVyxPQUNYQyxZQUFhLE9BQ2JDLFdBQVksT0FDWkMsT0FBUSxPQUNSTCxhQUFjLFFBa0loQixxQkEvSHdCTSxFQUFHN0MsVUFBUzhDLDJCQUEwQnpOLG1CQUM1RCxNQUFNME4sR0FBVXhtQixFQUFBQSxHQUFBQSxRQUFPLE1BRWpCc2hCLEVBQVl4SSxFQUFhLGVBQ3pCdUksRUFBZ0J2SSxFQUFhLGlCQUM3QjJOLEVBQW9CM04sRUFBYSxxQkFBcUIsSUFFckQ0TixFQUFnQkMsSUFBcUIxbUIsRUFBQUEsR0FBQUEsVUFBU3NtQixFQUF5QnpCLHdCQUF3QnBoQixTQUFTeGtCLFVBQ3hHMG5DLEVBQVlDLElBQWlCNW1CLEVBQUFBLEdBQUFBLFVBQVNzbUIsR0FBMEJwQixzQkFFakUyQixFQUFvQlAsRUFBeUJ6Qix1QkFDN0NpQyxFQUFrQkQsRUFBa0JwL0MsSUFBSWcvQyxHQUN4Q00sRUFBVUQsRUFBZ0JyL0MsSUFBSSxLQUFwQnEvQyxDQUEwQnRELEdBU3BDd0Qsb0JBQXNCQSxLQUMxQkosR0FBZUQsRUFBVyxFQUd0Qk0sa0JBQXFCLzlDLEdBQ3JCQSxJQUFRdTlDLEVBQ0hULEdBRUZ6SyxHQUdIMkwscUNBQXdDMTVDLElBQzVDLE1BQU0sT0FBRTVMLEVBQU0sT0FBRXVsRCxHQUFXMzVDLEdBQ25CNDVDLGFBQWNDLEVBQWVDLGFBQWNDLEVBQWEsVUFBRUMsR0FBYzVsRCxFQUVwRHlsRCxFQUFnQkUsSUFDSCxJQUFkQyxHQUFtQkwsRUFBUyxHQUZsQ0ksRUFBZ0JDLEdBR1NILEdBQWlCRixFQUFTLElBR3RFMzVDLEVBQUVpNkMsZ0JBQ0osRUF1QkYsT0FwQkE1bkIsRUFBQUEsR0FBQUEsWUFBVSxLQUlGLEdBQ0wsS0FFSEEsRUFBQUEsR0FBQUEsWUFBVSxLQUNSLE1BQU02bkIsRUFBYTdnRCxNQUNoQjZQLEtBQUs2dkMsRUFBUTV5QixRQUFRK3pCLFlBQ3JCL3lCLFFBQU9nekIsS0FBVUEsRUFBS0MsVUFBWUQsRUFBS0UsV0FBVzNRLFNBQVMsa0JBSTlELE9BRkF3USxFQUFXcDRDLFNBQVFxNEMsR0FBUUEsRUFBS3hnRCxpQkFBaUIsYUFBYysvQyxxQ0FBc0MsQ0FBRVksU0FBUyxNQUV6RyxLQUVMSixFQUFXcDRDLFNBQVFxNEMsR0FBUUEsRUFBS3JnRCxvQkFBb0IsYUFBYzQvQyx1Q0FBc0MsQ0FDekcsR0FDQSxDQUFDMUQsSUFHRjdWLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsbUJBQW1CakUsSUFBS3FLLEdBQ3JDNVksR0FBQUEsUUFBQUEsY0FBQSxPQUFLNE4sTUFBTyxDQUFFNkUsTUFBTyxPQUFRb0YsUUFBUyxPQUFRdUMsZUFBZ0IsYUFBY0MsV0FBWSxTQUFVQyxhQUFjLFNBQzlHdGEsR0FBQUEsUUFBQUEsY0FBQSxNQUNFdWEsUUFBU0EsSUFBTWxCLHNCQUNmekwsTUFBTyxDQUFFK0osT0FBUSxZQUNsQixZQUNEM1gsR0FBQUEsUUFBQUEsY0FBQSxVQUNFdWEsUUFBU0EsSUFBTWxCLHNCQUNmekwsTUFBTyxDQUFFcUssT0FBUSxPQUFRdUMsV0FBWSxRQUNyQy81QixNQUFPdTRCLEVBQWEscUJBQXVCLG9CQUUxQ0EsRUFBYWhaLEdBQUFBLFFBQUFBLGNBQUN5VCxFQUFhLENBQUNqQixVQUFVLFFBQVFDLE1BQU0sS0FBS0MsT0FBTyxPQUFVMVMsR0FBQUEsUUFBQUEsY0FBQzBULEVBQVMsQ0FBQ2xCLFVBQVUsUUFBUUMsTUFBTSxLQUFLQyxPQUFPLFNBSTVIc0csR0FBY2haLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsZ0JBQzNCeFMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLNE4sTUFBTyxDQUFFNk0sWUFBYSxPQUFRQyxhQUFjLE9BQVFqSSxNQUFPLE9BQVFvRixRQUFTLFNBRTdFcUIsRUFBa0I5USxXQUFXdHJDLEtBQUksRUFBRXZCLEVBQUs0N0MsS0FFcENuWCxHQUFBQSxRQUFBQSxjQUFBLE9BQ0V3UyxXQUFXbUksRUFBQUEsR0FBQUEsU0FBVyxNQUFPLENBQUMsT0FBVXAvQyxJQUFRdTlDLElBQ2hEbEwsTUFBTzBMLGtCQUFrQi85QyxHQUN6QkEsSUFBS0EsRUFDTGcvQyxRQUFTQSxJQTVFSEssQ0FBQ3IvQyxJQUNIdTlDLElBQW1CdjlDLEdBRXJDdzlDLEVBQWtCeDlDLEVBQ3BCLEVBd0UrQnEvQyxDQUFnQnIvQyxJQUUvQnlrQyxHQUFBQSxRQUFBQSxjQUFBLE1BQUk0TixNQUFPcnlDLElBQVF1OUMsRUFBaUIsQ0FBRStCLE1BQU8sU0FBYSxDQUFDLEdBQUkxRCxFQUFJcjlDLElBQUksY0FNakZrbUMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxxQkFDYnhTLEdBQUFBLFFBQUFBLGNBQUMwWCxHQUFBQSxnQkFBZSxDQUFDcnpDLEtBQU0rMEMsR0FDckJwWixHQUFBQSxRQUFBQSxjQUFBLGlCQUdKQSxHQUFBQSxRQUFBQSxjQUFBLFdBQ0VBLEdBQUFBLFFBQUFBLGNBQUM2WSxFQUFpQixDQUNoQmlDLFNBQVUzQixFQUFnQnIvQyxJQUFJLFVBQzlCMDRDLFVBQVUsa0JBQ1Z1SSxnQkFBaUJBLEVBQUdDLFdBQVVDLHFCQUM1QmpiLEdBQUFBLFFBQUFBLGNBQUNpYixFQUFlLENBQUN6SSxVQUFVLFFBQVF3SSxJQUdwQzVCLEtBS0wsRUNuSlYsOEJBQ1MsQ0FDTHBiLFdBQVksQ0FDVjBhLGdCQUFlQSxrQkFFakJ6aUMsR0FBSSxDQUNGNGdDLGtDQUNBQyxpQ0FDQUYseUNBRUYxWSxhQUFjLENBQ1pnZCxnQkFBaUIsQ0FDZnhaLFVBQVNBLE9DWEYsTUFBTXlaLHNCQUFzQnhwQixHQUFBQSxVQWV6Q3lwQixvQkFBc0IsQ0FDcEJDLGlCQUFrQixRQUNsQkMsVUFBVSxFQUNWNzZCLE1BQU8sS0FDUDg2QixTQUFVQSxPQUNWQyxrQkFBa0IsRUFDbEJDLFNBQVVwbUIsR0FBQUEsUUFBQUEsS0FBUSxLQUdwQjc0QixXQUFBQSxDQUFZZ3JCLEVBQU9odEIsR0FDakJpYSxNQUFNK1MsRUFBT2h0QixHQUViLElBQUksU0FBRThnRCxFQUFRLGlCQUFFRCxHQUFxQm5tRCxLQUFLc3lCLE1BRTFDdHlCLEtBQUt1RCxNQUFRLENBQ1g2aUQsU0FBV0EsRUFDWEQsaUJBQWtCQSxHQUFvQkYsY0FBY08sYUFBYUwsaUJBRXJFLENBRUFNLGlCQUFBQSxHQUNFLE1BQU0saUJBQUVILEVBQWdCLFNBQUVGLEVBQVEsVUFBRU0sR0FBYzFtRCxLQUFLc3lCLE1BQ3BEZzBCLEdBQW9CRixHQUlyQnBtRCxLQUFLc3lCLE1BQU0rekIsU0FBU0ssRUFBV04sRUFFbkMsQ0FFQU8sZ0NBQUFBLENBQWlDQyxHQUM1QjVtRCxLQUFLc3lCLE1BQU04ekIsV0FBYVEsRUFBVVIsVUFDakNwbUQsS0FBSzZtRCxTQUFTLENBQUNULFNBQVVRLEVBQVVSLFVBRXpDLENBRUFVLGdCQUFnQkEsS0FDWDltRCxLQUFLc3lCLE1BQU0rekIsVUFDWnJtRCxLQUFLc3lCLE1BQU0rekIsU0FBU3JtRCxLQUFLc3lCLE1BQU1vMEIsV0FBVzFtRCxLQUFLdUQsTUFBTTZpRCxVQUd2RHBtRCxLQUFLNm1ELFNBQVMsQ0FDWlQsVUFBV3BtRCxLQUFLdUQsTUFBTTZpRCxVQUN0QixFQUdKaEwsT0FBVS9CLElBQ1IsR0FBSUEsR0FBT3I1QyxLQUFLc3lCLE1BQU11bkIsZ0JBQWlCLENBQ3JDLE1BQU1ELEVBQWM1NUMsS0FBS3N5QixNQUFNdW5CLGdCQUFnQkMsaUJBRTNDM1osR0FBQUEsUUFBQUEsR0FBTXlaLEVBQWE1NUMsS0FBS3N5QixNQUFNaTBCLFdBQVl2bUQsS0FBSzhtRCxrQkFDbkQ5bUQsS0FBS3N5QixNQUFNeW5CLGNBQWNMLGNBQWMxNUMsS0FBS3N5QixNQUFNaTBCLFNBQVVsTixFQUFJTixjQUNsRSxHQUdGaEQsTUFBQUEsR0FDRSxNQUFNLE1BQUV4cUIsRUFBSyxRQUFFdzdCLEdBQVkvbUQsS0FBS3N5QixNQUVoQyxPQUFHdHlCLEtBQUt1RCxNQUFNNmlELFVBQ1RwbUQsS0FBS3N5QixNQUFNZzBCLGlCQUNMeGIsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBV3lKLEdBQVcsSUFDaEMvbUQsS0FBS3N5QixNQUFNd3pCLFVBTWhCaGIsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBV3lKLEdBQVcsR0FBSTFOLElBQUtyNUMsS0FBS283QyxRQUN4Q3RRLEdBQUFBLFFBQUFBLGNBQUEsVUFBUSxnQkFBZTlxQyxLQUFLdUQsTUFBTTZpRCxTQUFVOUksVUFBVSxvQkFBb0IrSCxRQUFTcmxELEtBQUs4bUQsaUJBQ3BGdjdCLEdBQVN1ZixHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLFdBQVcveEIsR0FDdEN1ZixHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFZLGdCQUFtQnQ5QyxLQUFLdUQsTUFBTTZpRCxTQUFXLEdBQUssaUJBQzdEcG1ELEtBQUt1RCxNQUFNNmlELFVBQVl0YixHQUFBQSxRQUFBQSxjQUFBLFlBQU85cUMsS0FBS3VELE1BQU00aUQsbUJBRzVDbm1ELEtBQUt1RCxNQUFNNmlELFVBQVlwbUQsS0FBS3N5QixNQUFNd3pCLFNBRzFDLEVDeEZGLE1BUU1rQixRQUFVQSxFQUFHQyxhQUFZQyxZQUFXem1CLFNBQVEwbUIsY0FDaEQsTUFBTUMsR0FBT25xQixFQUFBQSxHQUFBQSxVQUFRLEtBQU0sQ0FBR2txQixRQUFTLFVBQVdFLE1BQU8sV0FBWSxJQUUvREMsR0FEY3JxQixFQUFBQSxHQUFBQSxVQUFRLElBQU0zOUIsT0FBT2dILEtBQUs4Z0QsSUFBTyxDQUFDQSxJQUV2QzErQyxTQUFTdStDLElBQWdCeG1CLElBQVV5bUIsRUFFNUNELEVBREFHLEVBQUtELFFBRUxJLEVBZllDLENBQUMzbkQsSUFDbkIsTUFBTXc1QyxHQUFNbmMsRUFBQUEsR0FBQUEsVUFJWixPQUhBRixFQUFBQSxHQUFBQSxZQUFVLEtBQ1JxYyxFQUFJdm9CLFFBQVVqeEIsQ0FBSyxJQUVkdzVDLEVBQUl2b0IsT0FBTyxFQVVJMDJCLENBQVlOLElBQzNCTyxFQUFXQyxJQUFnQnZxQixFQUFBQSxHQUFBQSxVQUFTbXFCLEdBQ3JDSyxHQUFrQjdxQixFQUFBQSxHQUFBQSxjQUFhbnlCLElBQ25DKzhDLEVBQWEvOEMsRUFBRTVMLE9BQU82b0QsUUFBUXZuRCxLQUFLLEdBQ2xDLElBUUgsT0FOQTI4QixFQUFBQSxHQUFBQSxZQUFVLEtBQ0p1cUIsSUFBa0JMLEdBQWFDLEdBQ2pDTyxFQUFhTixFQUFLRCxRQUNwQixHQUNDLENBQUNJLEVBQWVMLEVBQVdDLElBRXZCLENBQUVNLFlBQVdJLFlBQWFGLEVBQWlCUCxPQUFNLEVBMkgxRCxrQkF4SHFCVSxFQUNuQnJuQixTQUNBMG1CLFVBQ0FELGFBQVksRUFDWlgsV0FDQXdCLG9CQUFtQixFQUNuQkMsbUJBQWtCLEVBQ2xCaFMsZUFDQXRMLGFBQ0EyRyxvQkFFQSxNQUFNLHNCQUFFNFcsRUFBcUIsd0JBQUVDLEdBQTRCeGQsSUFDckR5ZCxFQUFlblMsRUFBYSxnQkFDNUJvUyxFQUFnQnBTLEVBQWEsaUJBQWlCLEdBQzlDcVMsRUFBZXAzQyxLQUFZLEdBQUdYLFNBQVMsVUFDdkNnNEMsRUFBaUJyM0MsS0FBWSxHQUFHWCxTQUFTLFVBQ3pDaTRDLEVBQWF0M0MsS0FBWSxHQUFHWCxTQUFTLFVBQ3JDazRDLEVBQWV2M0MsS0FBWSxHQUFHWCxTQUFTLFVBQ3ZDaXdCLEVBQVM4USxFQUFjOVEsVUFDdkIsVUFBRWtuQixFQUFTLEtBQUVMLEVBQUksWUFBRVMsR0FBZ0JiLFFBQVEsQ0FDL0NDLFdBQVlnQixFQUNaZixZQUNBem1CLFNBQ0EwbUIsWUFHRixPQUNFcmMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxpQkFDYnhTLEdBQUFBLFFBQUFBLGNBQUEsTUFBSXdTLFVBQVUsTUFBTW1MLEtBQUssV0FDdkIzZCxHQUFBQSxRQUFBQSxjQUFBLE1BQ0V3UyxXQUFXb0wsRUFBQUEsR0FBQUEsU0FBRyxVQUFXLENBQUVDLE9BQVFsQixJQUFjTCxFQUFLRCxVQUN0RHNCLEtBQUssZ0JBRUwzZCxHQUFBQSxRQUFBQSxjQUFBLFVBQ0UsZ0JBQWV3ZCxFQUNmLGdCQUFlYixJQUFjTCxFQUFLRCxRQUNsQzdKLFVBQVUsV0FDVixZQUFVLFVBQ1ZqVixHQUFJZ2dCLEVBQ0poRCxRQUFTd0MsRUFDVFksS0FBSyxPQUVKdkIsRUFBWSxhQUFlLGtCQUcvQnptQixHQUNDcUssR0FBQUEsUUFBQUEsY0FBQSxNQUNFd1MsV0FBV29MLEVBQUFBLEdBQUFBLFNBQUcsVUFBVyxDQUFFQyxPQUFRbEIsSUFBY0wsRUFBS0MsUUFDdERvQixLQUFLLGdCQUVMM2QsR0FBQUEsUUFBQUEsY0FBQSxVQUNFLGdCQUFlMGQsRUFDZixnQkFBZWYsSUFBY0wsRUFBS0MsTUFDbEMvSixXQUFXb0wsRUFBQUEsR0FBQUEsU0FBRyxXQUFZLENBQUVFLFNBQVUxQixJQUN0QyxZQUFVLFFBQ1Y3ZSxHQUFJa2dCLEVBQ0psRCxRQUFTd0MsRUFDVFksS0FBSyxPQUVKbG9CLEVBQVMsU0FBVyxXQUs1QmtuQixJQUFjTCxFQUFLRCxTQUNsQnJjLEdBQUFBLFFBQUFBLGNBQUEsT0FDRSxjQUFhMmMsSUFBY0wsRUFBS0QsUUFDaEMsa0JBQWlCa0IsRUFDakIsWUFBVSxlQUNWaGdCLEdBQUlpZ0IsRUFDSkcsS0FBSyxXQUNMSSxTQUFTLEtBRVIxQixHQUdDcmMsR0FBQUEsUUFBQUEsY0FBQ3NkLEVBQWEsS0FBQywwQkFLcEJYLElBQWNMLEVBQUtDLE9BQ2xCdmMsR0FBQUEsUUFBQUEsY0FBQSxPQUNFd1MsVUFBVSxrQkFDVixjQUFhbUssSUFBY0wsRUFBS0QsUUFDaEMsa0JBQWlCb0IsRUFDakIsWUFBVSxhQUNWbGdCLEdBQUltZ0IsRUFDSkMsS0FBSyxXQUNMSSxTQUFTLEtBRVQvZCxHQUFBQSxRQUFBQSxjQUFDcWQsRUFBWSxDQUNYMW5CLE9BQVFBLEVBQ1J1VixhQUFjQSxFQUNkdEwsV0FBWUEsRUFDWjJHLGNBQWVBLEVBQ2Z5WCxZQUFhWixFQUNiM0IsU0FBVUEsRUFDVnlCLGdCQUFpQkEsRUFDakJELGlCQUFrQkEsS0FJcEIsRUMxSUssTUFBTUkscUJBQXFCMXJCLEdBQUFBLFVBa0J4QzRwQixTQUFXQSxDQUFDaG1ELEVBQUs4K0MsS0FFWm4vQyxLQUFLc3lCLE1BQU15bkIsZUFDWi81QyxLQUFLc3lCLE1BQU15bkIsY0FBY1MsS0FBS3g2QyxLQUFLc3lCLE1BQU15MkIsU0FBVTVKLEVBQ3JELEVBR0ZwSixNQUFBQSxHQUNFLElBQUksYUFBRUMsRUFBWSxXQUFFdEwsR0FBZTFxQyxLQUFLc3lCLE1BQ3hDLE1BQU0wMkIsRUFBUWhULEVBQWEsU0FFM0IsSUFBSW9RLEVBTUosT0FMR3BtRCxLQUFLc3lCLE1BQU11bkIsa0JBRVp1TSxFQUFXcG1ELEtBQUtzeUIsTUFBTXVuQixnQkFBZ0JzRixRQUFRbi9DLEtBQUtzeUIsTUFBTXkyQixXQUdwRGplLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsYUFDcEJ4UyxHQUFBQSxRQUFBQSxjQUFDa2UsR0FBS3RMLEVBQUFBLEdBQUFBLFNBQUEsR0FBTTE5QyxLQUFLc3lCLE1BQUssQ0FBR29ZLFdBQWFBLEVBQWEwYixTQUFVQSxFQUFVNXlCLE1BQVEsRUFBSTZ5QixTQUFXcm1ELEtBQUtxbUQsU0FBV3lDLFlBQWM5b0QsS0FBS3N5QixNQUFNdzJCLGFBQWUsS0FFMUosRUMxQ0YsSUNBSUcsR0RJQSxHQUpJLFNBQVMzL0MsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLFFBQWEsV0FBYSxPQUFPNi9DLEVBQTZFLE9BQUcsSUNIeEosU0FBU3hMLFdBQWEsT0FBT0EsU0FBV3ArQyxPQUFPb2pDLE9BQVNwakMsT0FBT29qQyxPQUFPai9CLE9BQVMsU0FBVVcsR0FBSyxJQUFLLElBQUl1RyxFQUFJLEVBQUdBLEVBQUk3SixVQUFVMkIsT0FBUWtJLElBQUssQ0FBRSxJQUFJb3BCLEVBQUlqekIsVUFBVTZKLEdBQUksSUFBSyxJQUFJeUYsS0FBSzJqQixHQUFHLENBQUcsR0FBRXVJLGVBQWVsOUIsS0FBSzIwQixFQUFHM2pCLEtBQU9oTSxFQUFFZ00sR0FBSzJqQixFQUFFM2pCLEdBQUssQ0FBRSxPQUFPaE0sQ0FBRyxFQUFHczVDLFNBQVM1K0MsTUFBTSxLQUFNZ0MsVUFBWSxDQWdDblIsaUJBOUJ1Qnd4QixHQUFzQixpQkFBb0IsTUFBT29yQixTQUFTLENBQy9FQyxNQUFPLDZCQUNQSixNQUFPLElBQ1BDLE9BQVEsSUFDUkYsVUFBVyxnQ0FDWDZMLG9CQUFxQixXQUNyQnpRLE1BQU8sQ0FDTDBRLGdCQUFpQixPQUNqQkMsbUJBQW9CLGtCQUNwQkMsaUJBQWtCLG1CQUVwQjFMLFFBQVMsZUFDUnRyQixHQUFRMjJCLEtBQVlBLEdBQXVCLGlCQUFvQixTQUFVLENBQzFFUCxHQUFJLEdBQ0phLEdBQUksR0FDSm41QyxFQUFHLEdBQ0g2SSxLQUFNLE9BQ051d0MsT0FBUSxPQUNSQyxnQkFBaUIsdUNBQ2pCQyxZQUFhLElBQ0MsaUJBQW9CLG1CQUFvQixDQUN0REMsY0FBZSxZQUNmQyxNQUFPLEtBQ1BDLFNBQVUsU0FDVkMsSUFBSyxLQUNMQyxTQUFVLE1BQ1ZDLFlBQWEsYUFDYmpvRCxLQUFNLFNBQ05nSyxPQUFRLHlCQ3ZCVixNQUFNaytDLGNBQWdCbGpCLElBQ3BCLE1BQU1takIsRUFBWW5qQixFQUFJeitCLFFBQVEsTUFBTyxLQUFLQSxRQUFRLE1BQU8sS0FFekQsSUFDRSxPQUFPaXpDLG1CQUFtQjJPLEVBQzVCLENBQUUsTUFDQSxPQUFPQSxDQUNULEdBR2EsTUFBTWxCLGNBQWNtQixHQUFBQSxRQUNqQ2pFLGlCQUFtQixDQUNqQnpsQixPQUFRMnBCLEdBQUFBLFFBQUFBLElBQWdCQyxXQUN4QnJVLGFBQWNzVSxHQUFBQSxRQUFBQSxLQUFlRCxXQUM3QjNmLFdBQVk0ZixHQUFBQSxRQUFBQSxLQUFlRCxXQUMzQmhaLGNBQWVpWixHQUFBQSxRQUFBQSxPQUFpQkQsV0FDaENocUQsS0FBTWlxRCxHQUFBQSxRQUFBQSxPQUNOQyxZQUFhRCxHQUFBQSxRQUFBQSxPQUNiRSxNQUFPRixHQUFBQSxRQUFBQSxLQUNQRyxTQUFVSCxHQUFBQSxRQUFBQSxLQUNWeEIsWUFBYXdCLEdBQUFBLFFBQUFBLE9BQ2I5MkIsTUFBTzgyQixHQUFBQSxRQUFBQSxPQUNQL0QsU0FBVTZELEdBQUFBLFFBQUFBLEtBQWlCQyxXQUMzQnJDLGdCQUFpQnNDLEdBQUFBLFFBQUFBLEtBQ2pCdkMsaUJBQWtCdUMsR0FBQUEsUUFBQUEsTUFHcEJJLGFBQWdCclIsSUFDMEIsSUFBbkNBLEVBQUl6d0MsUUFBUSxrQkFDUnFoRCxjQUFjNVEsRUFBSS93QyxRQUFRLHNCQUF1QixNQUVYLElBQTFDK3dDLEVBQUl6d0MsUUFBUSx5QkFDUnFoRCxjQUFjNVEsRUFBSS93QyxRQUFRLDhCQUErQixVQURsRSxFQUtGcWlELGFBQWdCdEQsSUFDZCxJQUFJLGNBQUVoVyxHQUFrQnJ4QyxLQUFLc3lCLE1BRTdCLE9BQU8rZSxFQUFjdVosZUFBZXZELEVBQU0sRUFHNUN0UixNQUFBQSxHQUNFLElBQUksYUFBRUMsRUFBWSxXQUFFdEwsRUFBVSxjQUFFMkcsRUFBYSxPQUFFNVEsRUFBTSxTQUFFZ3FCLEVBQVEsS0FBRXBxRCxFQUFJLE1BQUVtcUQsRUFBSyxTQUFFakUsRUFBUSxZQUFFZ0UsRUFBVyxnQkFDakd2QyxFQUFlLGlCQUFFRCxHQUFvQi9uRCxLQUFLc3lCLE1BQzVDLE1BQU11NEIsRUFBYzdVLEVBQWEsZUFDM0I4VSxFQUFhOVUsRUFBYSxjQUMxQitVLEVBQWlCL1UsRUFBYSxrQkFDcEMsSUFBSWowQyxFQUFPLFNBQ1BpcEQsRUFBUXZxQixHQUFVQSxFQUFPNzdCLElBQUksU0FDN0JxbUQsRUFBT3hxQixHQUFVQSxFQUFPNzdCLElBQUksUUFjaEMsSUFYS3ZFLEdBQVEycUQsSUFDWDNxRCxFQUFPTCxLQUFLMHFELGFBQWFNLElBVXZCQyxFQUFNLENBQ1IsTUFBTUMsRUFBVWxyRCxLQUFLMHFELGFBQWFPLEdBQzVCRSxFQUFZbnJELEtBQUsycUQsYUFBYU8sR0FDaEN2dEIsR0FBQUEsSUFBSTZDLE1BQU0ycUIsSUFDWjFxQixFQUFTMHFCLEVBQVVDLFVBQVUzcUIsR0FDeEJ1cUIsSUFDSHZxQixFQUFTQSxFQUFPNTdCLElBQUksUUFBU29tRCxHQUM3QkQsRUFBUUMsSUFFRHR0QixHQUFBQSxJQUFJNkMsTUFBTUMsSUFBMkIsSUFBaEJBLEVBQU92dkIsT0FDckN1dkIsRUFBUyxLQUNUcGdDLEVBQU80cUQsRUFFWCxDQUVBLElBQUl4cUIsRUFDRixPQUFPcUssR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxxQkFDZnhTLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUscUJBQXNCaU4sR0FBZWxxRCxJQUNuRDRxRCxHQUFRbmdCLEdBQUFBLFFBQUFBLGNBQUN1Z0IsYUFBYyxDQUFDN04sT0FBTyxPQUFPRCxNQUFNLFVBSXhELE1BQU1od0IsRUFBYThqQixFQUFjOVEsVUFBWUUsRUFBTzc3QixJQUFJLGNBSXhELE9BSEE0bEQsT0FBa0JucEQsSUFBVm1wRCxFQUFzQkEsSUFBVVEsRUFDeENqcEQsRUFBTzArQixHQUFVQSxFQUFPNzdCLElBQUksU0FBVzdDLEVBRWhDQSxHQUNMLElBQUssU0FDSCxPQUFPK29DLEdBQUFBLFFBQUFBLGNBQUMrZixHQUFXbk4sRUFBQUEsR0FBQUEsU0FBQSxDQUNqQkosVUFBVSxVQUFjdDlDLEtBQUtzeUIsTUFBSyxDQUNsQ2kwQixTQUFVQSxFQUNWN2IsV0FBYUEsRUFDYmpLLE9BQVNBLEVBQ1RwZ0MsS0FBT0EsRUFDUGt0QixXQUFZQSxFQUNaaTlCLE1BQVFBLEVBQ1J4QyxnQkFBbUJBLEVBQ25CRCxpQkFBb0JBLEtBQ3hCLElBQUssUUFDSCxPQUFPamQsR0FBQUEsUUFBQUEsY0FBQ2dnQixHQUFVcE4sRUFBQUEsR0FBQUEsU0FBQSxDQUNoQkosVUFBVSxTQUFhdDlDLEtBQUtzeUIsTUFBSyxDQUNqQ29ZLFdBQWFBLEVBQ2JqSyxPQUFTQSxFQUNUcGdDLEtBQU9BLEVBQ1BrdEIsV0FBWUEsRUFDWms5QixTQUFXQSxFQUNYekMsZ0JBQW1CQSxFQUNuQkQsaUJBQW9CQSxLQUt4QixRQUNFLE9BQU9qZCxHQUFBQSxRQUFBQSxjQUFDaWdCLEdBQWNyTixFQUFBQSxHQUFBQSxTQUFBLEdBQ2YxOUMsS0FBS3N5QixNQUFLLENBQ2YwakIsYUFBZUEsRUFDZnRMLFdBQWFBLEVBQ2JqSyxPQUFTQSxFQUNUcGdDLEtBQU9BLEVBQ1BrdEIsV0FBWUEsRUFDWms5QixTQUFXQSxLQUVuQixFQ2hJYSxNQUFNYSxlQUFlN3VCLEdBQUFBLFVBVWxDOHVCLGtCQUFvQkEsSUFDSHZyRCxLQUFLc3lCLE1BQU0rZSxjQUFjOVEsU0FDeEIsQ0FBQyxhQUFjLFdBQWEsQ0FBQyxlQUcvQ2lyQixvQkFBc0JBLElBQ2IsSUFHVEMsYUFBZUEsQ0FBQ3ByRCxFQUFNeWpELEtBQ3BCLE1BQU0sY0FBRS9KLEdBQWtCLzVDLEtBQUtzeUIsTUFDL0J5bkIsRUFBY1MsS0FBSyxJQUFJeDZDLEtBQUt1ckQsb0JBQXFCbHJELEdBQU95akQsR0FDckRBLEdBQ0Q5akQsS0FBS3N5QixNQUFNaWxCLFlBQVltVSx1QkFBdUIsSUFBSTFyRCxLQUFLdXJELG9CQUFxQmxyRCxHQUM5RSxFQUdGc3JELGFBQWdCdFMsSUFDVkEsR0FDRnI1QyxLQUFLc3lCLE1BQU15bkIsY0FBY0wsY0FBYzE1QyxLQUFLdXJELG9CQUFxQmxTLEVBQ25FLEVBR0Z1UyxZQUFldlMsSUFDYixHQUFJQSxFQUFLLENBQ1AsTUFBTWg1QyxFQUFPZzVDLEVBQUl3UyxhQUFhLGFBQzlCN3JELEtBQUtzeUIsTUFBTXluQixjQUFjTCxjQUFjLElBQUkxNUMsS0FBS3VyRCxvQkFBcUJsckQsR0FBT2c1QyxFQUM5RSxHQUdGdEQsTUFBQUEsR0FDRSxJQUFJLGNBQUUxRSxFQUFhLGFBQUUyRSxFQUFZLGdCQUFFNkQsRUFBZSxjQUFFRSxFQUFhLFdBQUVyUCxHQUFlMXFDLEtBQUtzeUIsTUFDbkZ3aEIsRUFBY3pDLEVBQWN5QyxlQUM1QixhQUFFZ1ksRUFBWSx5QkFBRUMsR0FBNkJyaEIsSUFDakQsSUFBS29KLEVBQVk1aUMsTUFBUTY2QyxFQUEyQixFQUFHLE9BQU8sS0FFOUQsTUFBTUMsRUFBZWhzRCxLQUFLdXJELG9CQUMxQixJQUFJVSxFQUFhcFMsRUFBZ0JzRixRQUFRNk0sRUFBY0QsRUFBMkIsR0FBc0IsU0FBakJELEdBQ3ZGLE1BQU12ckIsRUFBUzhRLEVBQWM5USxTQUV2QjRuQixFQUFlblMsRUFBYSxnQkFDNUJrVyxFQUFXbFcsRUFBYSxZQUN4QmlRLEVBQWdCalEsRUFBYSxpQkFDN0JtVyxFQUFhblcsRUFBYSxjQUFjLEdBQ3hDc0ksRUFBY3RJLEVBQWEsZUFDM0J1SSxFQUFnQnZJLEVBQWEsaUJBRW5DLE9BQU9sTCxHQUFBQSxRQUFBQSxjQUFBLFdBQVN3UyxVQUFZMk8sRUFBYSxpQkFBbUIsU0FBVTVTLElBQUtyNUMsS0FBSzJyRCxjQUM5RTdnQixHQUFBQSxRQUFBQSxjQUFBLFVBQ0VBLEdBQUFBLFFBQUFBLGNBQUEsVUFDRSxnQkFBZW1oQixFQUNmM08sVUFBVSxpQkFDVitILFFBQVNBLElBQU10TCxFQUFjUyxLQUFLd1IsR0FBZUMsSUFFakRuaEIsR0FBQUEsUUFBQUEsY0FBQSxZQUFPdkssRUFBUyxVQUFZLFVBQzNCMHJCLEVBQWFuaEIsR0FBQUEsUUFBQUEsY0FBQ3dULEVBQVcsTUFBTXhULEdBQUFBLFFBQUFBLGNBQUN5VCxFQUFhLFFBR2xEelQsR0FBQUEsUUFBQUEsY0FBQ29oQixFQUFRLENBQUNFLFNBQVVILEdBRWhCblksRUFBWVosV0FBV3RyQyxLQUFJLEVBQUV2SCxNQUUzQixNQUFNMG9ELEVBQVcsSUFBSWlELEVBQWMzckQsR0FDN0JrbUQsRUFBV3BtQixHQUFBQSxRQUFBQSxLQUFRNG9CLEdBRW5Cc0QsRUFBY2hiLEVBQWNpYixvQkFBb0J2RCxHQUNoRHdELEVBQWlCbGIsRUFBY3VGLFdBQVcvVixNQUFNa29CLEdBRWhEdG9CLEVBQVM5QyxHQUFBQSxJQUFJNkMsTUFBTTZyQixHQUFlQSxFQUFjbHNCLEdBQUFBLFFBQUFBLE1BQ2hEcXNCLEVBQVk3dUIsR0FBQUEsSUFBSTZDLE1BQU0rckIsR0FBa0JBLEVBQWlCcHNCLEdBQUFBLFFBQUFBLE1BRXpEb3FCLEVBQWM5cEIsRUFBTzc3QixJQUFJLFVBQVk0bkQsRUFBVTVuRCxJQUFJLFVBQVl2RSxFQUMvRDgrQyxFQUFVdEYsRUFBZ0JzRixRQUFRNEosR0FBVSxHQUU5QzVKLEdBQTRCLElBQWhCMWUsRUFBT3Z2QixNQUFjczdDLEVBQVV0N0MsS0FBTyxHQUdwRGxSLEtBQUtzeUIsTUFBTWlsQixZQUFZbVUsdUJBQXVCM0MsR0FHaEQsTUFBTXo4QyxFQUFVdytCLEdBQUFBLFFBQUFBLGNBQUNxZCxFQUFZLENBQUM5bkQsS0FBT0EsRUFDbkN5b0QsWUFBY2lELEVBQ2R0ckIsT0FBU0EsR0FBVU4sR0FBQUEsUUFBQUEsTUFDbkJvcUIsWUFBYUEsRUFDYnhCLFNBQVVBLEVBQ1Z4QyxTQUFVQSxFQUNWdlEsYUFBZUEsRUFDZjNFLGNBQWdCQSxFQUNoQjNHLFdBQWNBLEVBQ2RtUCxnQkFBbUJBLEVBQ25CRSxjQUFpQkEsRUFDakJpTyxpQkFBbUIsRUFDbkJELGtCQUFvQixJQUVoQng4QixFQUFRdWYsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxhQUM1QnhTLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUscUJBQ2JpTixJQUlMLE9BQU96ZixHQUFBQSxRQUFBQSxjQUFBLE9BQUt6QyxHQUFLLFNBQVNob0MsSUFBU2k5QyxVQUFVLGtCQUFrQmozQyxJQUFNLGtCQUFrQmhHLElBQy9FLFlBQVdBLEVBQU1nNUMsSUFBS3I1QyxLQUFLNHJELGFBQ2pDOWdCLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsdUJBQXNCeFMsR0FBQUEsUUFBQUEsY0FBQ3FoQixFQUFVLENBQUNyWCxLQUFNeVIsS0FDeER6YixHQUFBQSxRQUFBQSxjQUFDbWIsRUFBYSxDQUNaYyxRQUFRLFlBQ1JaLGlCQUFrQm5tRCxLQUFLd3JELG9CQUFvQm5yRCxHQUMzQ2dtRCxTQUFVcm1ELEtBQUt5ckQsYUFDZmxnQyxNQUFPQSxFQUNQZy9CLFlBQWFBLEVBQ2I3RCxVQUFXcm1ELEVBQ1hrbUQsU0FBVUEsRUFDVjFNLGdCQUFpQkEsRUFDakJFLGNBQWVBLEVBQ2Z1TSxrQkFBa0IsRUFDbEJGLFNBQVcyRixFQUEyQixHQUFLNU0sR0FDekM3eUMsR0FDRSxJQUNQaTVCLFdBSVgsRUN2SEYsZUFma0JrbkIsRUFBRzVzRCxRQUFPbTJDLG1CQUMxQixJQUFJaVEsRUFBZ0JqUSxFQUFhLGlCQUM3Qm1RLEVBQW1CcmIsR0FBQUEsUUFBQUEsY0FBQSxZQUFNLFdBQVVqckMsRUFBTWlELFFBQVMsTUFDdEQsT0FBT2dvQyxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLGFBQVksUUFDNUJ4UyxHQUFBQSxRQUFBQSxjQUFBLFdBQ0xBLEdBQUFBLFFBQUFBLGNBQUNtYixFQUFhLENBQUNFLGlCQUFtQkEsR0FBbUIsS0FDL0N0bUQsRUFBTStILElBQUkvRSxRQUFRZ0YsS0FBSyxNQUFPLE1BRS9CLEVDWEYsU0FBUzZrRCxjQUFjL2IsR0FDNUIsT0FBT0EsRUFBSWdjLE1BQU0scUJBQ25CLENBUU8sU0FBU0MsYUFBYWpiLEVBQWdCa2IsR0FDM0MsT0FBS2xiLEVBQ0QrYSxjQUFjL2EsR0FSYixTQUFTbWIsWUFBWW5jLEdBQzFCLE9BQUtBLEVBQUlnYyxNQUFNLFVBRVIsR0FBR3BvQyxPQUFPK2EsU0FBU3l0QixXQUFXcGMsSUFGSkEsQ0FHbkMsQ0FJNENtYyxDQUFZbmIsR0FFL0MsSUFBSXFiLElBQUlyYixFQUFnQmtiLEdBQVNJLEtBSFpKLENBSTlCLENBaUJPLFNBQVNLLGFBQWF2YyxFQUFLa2MsR0FBUyxlQUFFbGIsRUFBZSxJQUFPLENBQUMsR0FDbEUsSUFDRSxPQWpCRyxTQUFTd2IsU0FBU3hjLEVBQUtrYyxHQUFTLGVBQUVsYixFQUFlLElBQU8sQ0FBQyxHQUM5RCxJQUFLaEIsRUFBSyxPQUNWLEdBQUkrYixjQUFjL2IsR0FBTSxPQUFPQSxFQUUvQixNQUFNeWMsRUFBVVIsYUFBYWpiLEVBQWdCa2IsR0FDN0MsT0FBS0gsY0FBY1UsR0FHWixJQUFJSixJQUFJcmMsRUFBS3ljLEdBQVNILEtBRnBCLElBQUlELElBQUlyYyxFQUFLcHNCLE9BQU8rYSxTQUFTMnRCLE1BQU1BLElBRzlDLENBUVdFLENBQVN4YyxFQUFLa2MsRUFBUyxDQUFFbGIsa0JBQ2xDLENBQUUsTUFDQSxNQUNGLENBQ0YsQ0FFTyxTQUFTMGIsWUFBWTFjLEdBQzFCLEdBQW1CLGlCQUFSQSxHQUFtQyxLQUFmQSxFQUFJLzJCLE9BQ2pDLE1BQU8sR0FHVCxNQUFNMHpDLEVBQWEzYyxFQUFJLzJCLE9BQ2pCMnpDLEVBQVcsY0FFakIsSUFDRSxNQUFNQyxFQUFPLGVBQWUzcUQsT0FBT2dWLEtBQUs0MUMsVUFBVTVzRCxNQUFNLEtBQ2xENnNELEVBQVksSUFBSVYsSUFBSU0sRUFBWUUsR0FDaENHLEVBQVNELEVBQVVYLFNBQVNsc0QsTUFBTSxHQUFJLEdBRzVDLE1BQUksQ0FBQyxhQUFjLE9BQVEsWUFBWTZILFNBQVNpbEQsRUFBT2gvQyxlQUM5QzQrQyxFQUlMRyxFQUFVRSxTQUFXSixFQUNoQkYsRUFBV3JsRCxXQUFXLEtBQ3pCLEdBQUd5bEQsRUFBVUcsV0FBV0gsRUFBVXZsRCxTQUFTdWxELEVBQVV2cEMsT0FDckRtcEMsRUFBV3JsRCxXQUFXLEtBQ3RCLElBQUl5bEQsRUFBVUcsV0FBV0gsRUFBVXZsRCxTQUFTdWxELEVBQVV2cEMsT0FDdEQsR0FBR3VwQyxFQUFVRyxTQUFTcGxELFVBQVUsS0FBS2lsRCxFQUFVdmxELFNBQVN1bEQsRUFBVXZwQyxPQUdqRXRoQixPQUFPNnFELEVBQ2hCLENBQUUsTUFDQSxPQUFPSCxDQUNULENBQ0YsQ0N4RGUsTUFBTTFDLG9CQUFvQnB1QixHQUFBQSxVQWtCdkNzWixNQUFBQSxHQUNFLElBQUksT0FDRnRWLEVBQU0sS0FDTnBnQyxFQUFJLFlBQ0prcUQsRUFBVyxNQUNYQyxFQUFLLGFBQ0x4VSxFQUFZLFdBQ1p0TCxFQUFVLE1BQ1ZsWCxFQUFLLFNBQ0w2eUIsRUFBUSxTQUNSRCxFQUFRLFNBQ1JHLEtBQ0d1SCxHQUNEOXRELEtBQUtzeUIsT0FDTCxjQUFFK2UsRUFBYSxZQUFFeVgsRUFBVyxnQkFBRWQsRUFBZSxpQkFBRUQsR0FDakQrRixFQUNGLE1BQU0sT0FBRXZ0QixHQUFXOFEsRUFDYjBjLEVBQWF2NkIsRUFBUSxHQUFnQixJQUFWQSxHQUFtQyxVQUFwQit5QixFQUFTeDRDLE9BRXpELElBQUsweUIsRUFDSCxPQUFPLEtBR1QsTUFBTSxlQUFFdXRCLEdBQW1CdGpCLElBQ3JCdWpCLEVBQWFELEVBQWlCN21CLGNBQWMxRyxJQUFVL0MsRUFBQUEsR0FBQUEsUUFFNUQsSUFBSXd3QixFQUFjenRCLEVBQU83N0IsSUFBSSxlQUN6QnVwRCxFQUFhMXRCLEVBQU83N0IsSUFBSSxjQUN4QndwRCxFQUF1QjN0QixFQUFPNzdCLElBQUksd0JBQ2xDMm1CLEVBQVFrVixFQUFPNzdCLElBQUksVUFBWTJsRCxHQUFlbHFELEVBQzlDZ3VELEVBQXFCNXRCLEVBQU83N0IsSUFBSSxZQUNoQzBwRCxFQUFpQjd0QixFQUFPM08sUUFDMUIsQ0FBQ2hQLEVBQUd6YyxLQUdLLElBRlAsQ0FBQyxnQkFBaUIsZ0JBQWlCLFdBQVksV0FBV3VDLFFBQ3hEdkMsS0FHRmtuQixFQUFha1QsRUFBTzc3QixJQUFJLGNBQ3hCMnBELEVBQWtCOXRCLEVBQU9JLE1BQU0sQ0FBQyxlQUFnQixRQUNoRDJ0QixFQUEwQi90QixFQUFPSSxNQUFNLENBQUMsZUFBZ0IsZ0JBRTVELE1BQU1zckIsRUFBYW5XLEVBQWEsY0FBYyxHQUN4Q3lZLEVBQVd6WSxFQUFhLFlBQVksR0FDcENnVCxFQUFRaFQsRUFBYSxTQUNyQmlRLEVBQWdCalEsRUFBYSxpQkFDN0IwWSxFQUFXMVksRUFBYSxZQUN4QjJZLEVBQU8zWSxFQUFhLFFBQ3BCNFksRUFBa0I1WSxFQUFhLG1CQUUvQjZZLGtCQUFvQkEsSUFFdEIvakIsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxzQkFDZHhTLEdBQUFBLFFBQUFBLGNBQUNxaEIsRUFBVSxDQUFDclgsS0FBTXlSLEtBSWxCSixFQUNKcmIsR0FBQUEsUUFBQUEsY0FBQSxZQUNFQSxHQUFBQSxRQUFBQSxjQUFBLFlBaEZVLEtBZ0ZjLE1BQUdBLEdBQUFBLFFBQUFBLGNBQUEsWUEvRWhCLEtBZ0ZWMGYsRUFBUTFmLEdBQUFBLFFBQUFBLGNBQUMrakIsa0JBQWlCLE1BQU0sSUFJL0JDLEVBQVF6ZCxFQUFjOVEsU0FBV0UsRUFBTzc3QixJQUFJLFNBQVcsS0FDdkRtcUQsRUFBUTFkLEVBQWM5USxTQUFXRSxFQUFPNzdCLElBQUksU0FBVyxLQUN2RDRDLEVBQVE2cEMsRUFBYzlRLFNBQVdFLEVBQU83N0IsSUFBSSxTQUFXLEtBQ3ZEb3FELEVBQU0zZCxFQUFjOVEsU0FBV0UsRUFBTzc3QixJQUFJLE9BQVMsS0FFbkRxcUQsRUFBVTFqQyxHQUNkdWYsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxlQUNia04sR0FBUy9wQixFQUFPNzdCLElBQUksVUFDbkJrbUMsR0FBQUEsUUFBQUEsY0FBQSxRQUNFd1MsV0FBV21JLEVBQUFBLEdBQUFBLFNBQVcsYUFBYyxDQUNsQyx1QkFBd0JzSSxLQUd6QnR0QixFQUFPNzdCLElBQUksVUFHaEJrbUMsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxxQkFBcUIveEIsSUFJekMsT0FDRXVmLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsU0FDZHhTLEdBQUFBLFFBQUFBLGNBQUNtYixFQUFhLENBQ1pTLFVBQVdybUQsRUFDWGtyQixNQUFPMGpDLEVBQ1A1SSxTQUFVQSxFQUNWRCxXQUFVQSxHQUFrQjV5QixHQUFTczFCLEVBQ3JDM0MsaUJBQWtCQSxHQUVsQnJiLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUscUJBbEhSLEtBbUhOa04sRUFBZTFmLEdBQUFBLFFBQUFBLGNBQUMrakIsa0JBQWlCLE1BQXpCLEtBQ1YvakIsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxnQkFFWnhTLEdBQUFBLFFBQUFBLGNBQUEsU0FBT3dTLFVBQVUsU0FDZnhTLEdBQUFBLFFBQUFBLGNBQUEsYUFDSW9qQixFQUNBcGpCLEdBQUFBLFFBQUFBLGNBQUEsTUFBSXdTLFVBQVUsZUFDWnhTLEdBQUFBLFFBQUFBLGNBQUEsVUFBSSxnQkFDSkEsR0FBQUEsUUFBQUEsY0FBQSxVQUNFQSxHQUFBQSxRQUFBQSxjQUFDMmpCLEVBQVEsQ0FBQ3ZzQyxPQUFRZ3NDLE1BSlIsS0FRZkssR0FDQ3pqQixHQUFBQSxRQUFBQSxjQUFBLE1BQUl3UyxVQUFXLGlCQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxVQUFJLGlCQUNKQSxHQUFBQSxRQUFBQSxjQUFBLFVBQ0VBLEdBQUFBLFFBQUFBLGNBQUM2akIsRUFBSSxDQUNINXZELE9BQU8sU0FDUGt1RCxLQUFNSSxZQUFZa0IsSUFFakJDLEdBQTJCRCxLQUtsQ2hoQyxFQUNBdWQsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVyxZQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxVQUFJLGVBQ0pBLEdBQUFBLFFBQUFBLGNBQUEsVUFBSSxTQUhPLEtBTVpxakIsR0FBY0EsRUFBV2o5QyxLQUV4Qmk5QyxFQUNHamIsV0FDQXBoQixRQUFPLEVBQUUsQ0FBRWp5QixPQUVOQSxFQUFNK0UsSUFBSSxhQUFlb2pELE1BQ3pCbm9ELEVBQU0rRSxJQUFJLGNBQWdCbWpELEtBRy9CbmdELEtBQUksRUFBRXZCLEVBQUt4RyxNQUNWLElBQUlxdkQsRUFBZTN1QixLQUFZMWdDLEVBQU0rRSxJQUFJLGNBQ3JDeWxELEVBQ0Yzc0IsR0FBQUEsS0FBSzBHLE9BQU9pcUIsSUFDWkEsRUFBbUJoYSxTQUFTaHVDLEdBRTFCby9DLEVBQWEsQ0FBQyxnQkFVbEIsT0FSSXlKLEdBQ0Z6SixFQUFXampELEtBQUssY0FHZDZuRCxHQUNGNUUsRUFBV2pqRCxLQUFLLFlBSWhCc29DLEdBQUFBLFFBQUFBLGNBQUEsTUFBSXprQyxJQUFLQSxFQUFLaTNDLFVBQVdtSSxFQUFXNTlDLEtBQUssTUFDdkNpakMsR0FBQUEsUUFBQUEsY0FBQSxVQUNHemtDLEVBQ0Fna0QsR0FBY3ZmLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsUUFBTyxNQUV4Q3hTLEdBQUFBLFFBQUFBLGNBQUEsVUFDRUEsR0FBQUEsUUFBQUEsY0FBQ2tlLEdBQUt0TCxFQUFBQSxHQUFBQSxTQUFBLENBQ0pyM0MsSUFBSyxVQUFVaEcsS0FBUWdHLEtBQU94RyxLQUMxQml1RCxFQUFVLENBQ2RyRCxTQUFVSixFQUNWclUsYUFBY0EsRUFDZHVRLFNBQVVBLEVBQVMvakQsS0FBSyxhQUFjNkQsR0FDdENxa0MsV0FBWUEsRUFDWmpLLE9BQVE1Z0MsRUFDUjJ6QixNQUFPQSxFQUFRLE1BR2hCLElBR1IrUixVQTlDSCxLQStDaUIsSUFBcEIwb0IsRUFBVy84QyxLQUFhLEtBQ3ZCNDVCLEdBQUFBLFFBQUFBLGNBQUFBLEdBQUFBLFFBQUFBLFNBQUEsS0FDRUEsR0FBQUEsUUFBQUEsY0FBQSxVQUNFQSxHQUFBQSxRQUFBQSxjQUFBLFVBQUksTUFFTkEsR0FBQUEsUUFBQUEsY0FBQzhqQixFQUFlLENBQ2RYLFdBQVlBLEVBQ1prQixVQUFVLGVBSWRmLEdBQ0RBLEVBQXFCbDlDLEtBQ3BCNDVCLEdBQUFBLFFBQUFBLGNBQUEsVUFDRUEsR0FBQUEsUUFBQUEsY0FBQSxVQUFLLFVBQ0xBLEdBQUFBLFFBQUFBLGNBQUEsVUFDRUEsR0FBQUEsUUFBQUEsY0FBQ2tlLEdBQUt0TCxFQUFBQSxHQUFBQSxTQUFBLEdBQ0FvUSxFQUFVLENBQ2RyRCxVQUFVLEVBQ1Z6VSxhQUFjQSxFQUNkdVEsU0FBVUEsRUFBUy9qRCxLQUFLLHdCQUN4QmtvQyxXQUFZQSxFQUNaakssT0FBUTJ0QixFQUNSNTZCLE1BQU9BLEVBQVEsT0FYTSxLQWdCM0JzN0IsRUFDQWhrQixHQUFBQSxRQUFBQSxjQUFBLFVBQ0VBLEdBQUFBLFFBQUFBLGNBQUEsVUFBSyxZQUNMQSxHQUFBQSxRQUFBQSxjQUFBLFVBQ0dna0IsRUFBTWxuRCxLQUFJLENBQUM2NEIsRUFBUUUsSUFFaEJtSyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt6a0MsSUFBS3M2QixHQUNSbUssR0FBQUEsUUFBQUEsY0FBQ2tlLEdBQUt0TCxFQUFBQSxHQUFBQSxTQUFBLEdBQ0FvUSxFQUFVLENBQ2RyRCxVQUFVLEVBQ1Z6VSxhQUFjQSxFQUNkdVEsU0FBVUEsRUFBUy9qRCxLQUFLLFFBQVNtK0IsR0FDakMrSixXQUFZQSxFQUNaakssT0FBUUEsRUFDUmpOLE1BQU9BLEVBQVEsVUFkbkIsS0FzQlJ1N0IsRUFDQWprQixHQUFBQSxRQUFBQSxjQUFBLFVBQ0VBLEdBQUFBLFFBQUFBLGNBQUEsVUFBSyxZQUNMQSxHQUFBQSxRQUFBQSxjQUFBLFVBQ0dpa0IsRUFBTW5uRCxLQUFJLENBQUM2NEIsRUFBUUUsSUFFaEJtSyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt6a0MsSUFBS3M2QixHQUNSbUssR0FBQUEsUUFBQUEsY0FBQ2tlLEdBQUt0TCxFQUFBQSxHQUFBQSxTQUFBLEdBQ0FvUSxFQUFVLENBQ2RyRCxVQUFVLEVBQ1Z6VSxhQUFjQSxFQUNkdVEsU0FBVUEsRUFBUy9qRCxLQUFLLFFBQVNtK0IsR0FDakMrSixXQUFZQSxFQUNaakssT0FBUUEsRUFDUmpOLE1BQU9BLEVBQVEsVUFkbkIsS0FzQlJoc0IsRUFDQXNqQyxHQUFBQSxRQUFBQSxjQUFBLFVBQ0VBLEdBQUFBLFFBQUFBLGNBQUEsVUFBSyxZQUNMQSxHQUFBQSxRQUFBQSxjQUFBLFVBQ0d0akMsRUFBTUksS0FBSSxDQUFDNjRCLEVBQVFFLElBRWhCbUssR0FBQUEsUUFBQUEsY0FBQSxPQUFLemtDLElBQUtzNkIsR0FDUm1LLEdBQUFBLFFBQUFBLGNBQUNrZSxHQUFLdEwsRUFBQUEsR0FBQUEsU0FBQSxHQUNBb1EsRUFBVSxDQUNkckQsVUFBVSxFQUNWelUsYUFBY0EsRUFDZHVRLFNBQVVBLEVBQVMvakQsS0FBSyxRQUFTbStCLEdBQ2pDK0osV0FBWUEsRUFDWmpLLE9BQVFBLEVBQ1JqTixNQUFPQSxFQUFRLFVBZG5CLEtBc0JSdzdCLEVBQ0Fsa0IsR0FBQUEsUUFBQUEsY0FBQSxVQUNFQSxHQUFBQSxRQUFBQSxjQUFBLFVBQUssVUFDTEEsR0FBQUEsUUFBQUEsY0FBQSxVQUNFQSxHQUFBQSxRQUFBQSxjQUFBLFdBQ0VBLEdBQUFBLFFBQUFBLGNBQUNrZSxHQUFLdEwsRUFBQUEsR0FBQUEsU0FBQSxHQUNBb1EsRUFBVSxDQUNkckQsVUFBVSxFQUNWelUsYUFBY0EsRUFDZHVRLFNBQVVBLEVBQVMvakQsS0FBSyxPQUN4QmtvQyxXQUFZQSxFQUNaakssT0FBUXV1QixFQUNSeDdCLE1BQU9BLEVBQVEsUUFaakIsUUFzQmhCc1gsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxlQXRUUCxNQXdUVmdSLEVBQWVwOUMsS0FDWm85QyxFQUNHcGIsV0FDQXRyQyxLQUFJLEVBQUV2QixFQUFLeWMsS0FDVmdvQixHQUFBQSxRQUFBQSxjQUFDNGpCLEVBQVEsQ0FDUHJvRCxJQUFLLEdBQUdBLEtBQU95YyxJQUNmNmhCLFFBQVN0K0IsRUFDVCtvRCxRQUFTdHNDLEVBQ1Rxc0MsVUEvVEEsZUFrVU4sS0FHVixFQzNVYSxNQUFNckUsbUJBQW1CcnVCLEdBQUFBLFVBZ0J0Q3NaLE1BQUFBLEdBQ0UsSUFBSSxhQUFFQyxFQUFZLFdBQUV0TCxFQUFVLE9BQUVqSyxFQUFNLE1BQUVqTixFQUFLLFlBQUVzMUIsRUFBVyxLQUFFem9ELEVBQUksWUFBRWtxRCxFQUFXLFNBQUVoRSxHQUFhdm1ELEtBQUtzeUIsTUFDN0Y0N0IsRUFBY3p0QixFQUFPNzdCLElBQUksZUFDekJ5cUQsRUFBUTV1QixFQUFPNzdCLElBQUksU0FDbkIybUIsRUFBUWtWLEVBQU83N0IsSUFBSSxVQUFZMmxELEdBQWVscUQsRUFDOUM4dEQsRUFBYTF0QixFQUFPM08sUUFBUSxDQUFFaFAsRUFBR3pjLEtBQW9GLElBQTVFLENBQUMsT0FBUSxRQUFTLGNBQWUsUUFBUyxnQkFBZ0J1QyxRQUFRdkMsS0FDM0drb0QsRUFBa0I5dEIsRUFBT0ksTUFBTSxDQUFDLGVBQWdCLFFBQ2hEMnRCLEVBQTBCL3RCLEVBQU9JLE1BQU0sQ0FBQyxlQUFnQixnQkFHNUQsTUFBTTR0QixFQUFXelksRUFBYSxZQUFZLEdBQ3BDaVEsRUFBZ0JqUSxFQUFhLGlCQUM3QmdULEVBQVFoVCxFQUFhLFNBQ3JCMFksRUFBVzFZLEVBQWEsWUFDeEIyWSxFQUFPM1ksRUFBYSxRQUVwQmlaLEVBQVUxakMsR0FDZHVmLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsZUFDZHhTLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUscUJBQXNCL3hCLElBUTFDLE9BQU91ZixHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLFNBQ3JCeFMsR0FBQUEsUUFBQUEsY0FBQ21iLEVBQWEsQ0FBQzE2QixNQUFPMGpDLEVBQVM3SSxTQUFXNXlCLEdBQVNzMUIsRUFBYzNDLGlCQUFpQixTQUFRLElBR3BGZ0ksRUFBV2o5QyxLQUFPaTlDLEVBQVdqYixXQUFXdHJDLEtBQUssRUFBSXZCLEVBQUt5YyxLQUFTZ29CLEdBQUFBLFFBQUFBLGNBQUM0akIsRUFBUSxDQUFDcm9ELElBQUssR0FBR0EsS0FBT3ljLElBQUs2aEIsUUFBVXQrQixFQUFNK29ELFFBQVV0c0MsRUFBSXFzQyxVQWhEckgsZUFnRG1KLEtBR3hKakIsRUFDQ3BqQixHQUFBQSxRQUFBQSxjQUFDMmpCLEVBQVEsQ0FBQ3ZzQyxPQUFTZ3NDLElBRExDLEVBQVdqOUMsS0FBTzQ1QixHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGFBQW9CLEtBR3JFaVIsR0FDQXpqQixHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGlCQUNaeFMsR0FBQUEsUUFBQUEsY0FBQzZqQixFQUFJLENBQUM1dkQsT0FBTyxTQUFTa3VELEtBQU1JLFlBQVlrQixJQUFtQkMsR0FBMkJELElBRzNGempCLEdBQUFBLFFBQUFBLGNBQUEsWUFDRUEsR0FBQUEsUUFBQUEsY0FBQ2tlLEdBQUt0TCxFQUFBQSxHQUFBQSxTQUFBLEdBQ0MxOUMsS0FBS3N5QixNQUFLLENBQ2ZvWSxXQUFhQSxFQUNiNmIsU0FBVUEsRUFBUy9qRCxLQUFLLFNBQ3hCbkMsS0FBTSxLQUNOb2dDLE9BQVM0dUIsRUFDVDVFLFVBQVcsRUFDWGozQixNQUFRQSxFQUFRLE1BRWIsS0FJZixFQ3RFRixNQUFNMjdCLEdBQVkscUJBRUgsTUFBTUcsa0JBQWtCN3lCLEdBQUFBLFVBV3JDc1osTUFBQUEsR0FDRSxJQUFJLE9BQ0Z0VixFQUFNLGFBQ051VixFQUFZLFdBQ1p0TCxFQUFVLEtBQ1ZycUMsRUFBSSxZQUNKa3FELEVBQVcsTUFDWC8yQixFQUFLLFlBQ0xzMUIsR0FDRTlvRCxLQUFLc3lCLE1BRVQsTUFBTSxlQUFFMDdCLEdBQW1CdGpCLElBRTNCLElBQUtqSyxJQUFXQSxFQUFPNzdCLElBRXJCLE9BQU9rbUMsR0FBQUEsUUFBQUEsY0FBQSxZQUdULElBQUkvb0MsRUFBTzArQixFQUFPNzdCLElBQUksUUFDbEJpSSxFQUFTNHpCLEVBQU83N0IsSUFBSSxVQUNwQnNJLEVBQU11ekIsRUFBTzc3QixJQUFJLE9BQ2pCMnFELEVBQVk5dUIsRUFBTzc3QixJQUFJLFFBQ3ZCMm1CLEVBQVFrVixFQUFPNzdCLElBQUksVUFBWTJsRCxHQUFlbHFELEVBQzlDNnRELEVBQWN6dEIsRUFBTzc3QixJQUFJLGVBQzdCLE1BQU1xcEQsRUFBYTltQixjQUFjMUcsR0FFakMsSUFBSTB0QixFQUFhMXRCLEVBQ2QzTyxRQUNDLENBQUN6RSxFQUFHaG5CLEtBUWtCLElBUHBCLENBQ0UsT0FDQSxPQUNBLFNBQ0EsY0FDQSxRQUNBLGdCQUNBdUMsUUFBUXZDLEtBRWJtcEQsV0FBVSxDQUFDbmlDLEVBQUdobkIsSUFBUTRuRCxFQUFXdnBCLElBQUlyK0IsS0FDcENrb0QsRUFBa0I5dEIsRUFBT0ksTUFBTSxDQUFDLGVBQWdCLFFBQ2hEMnRCLEVBQTBCL3RCLEVBQU9JLE1BQU0sQ0FBQyxlQUFnQixnQkFFNUQsTUFBTTR0QixFQUFXelksRUFBYSxZQUFZLEdBQ3BDeVcsRUFBWXpXLEVBQWEsYUFDekIwWSxFQUFXMVksRUFBYSxZQUN4QmlRLEVBQWdCalEsRUFBYSxpQkFDN0IyWSxFQUFPM1ksRUFBYSxRQUNwQjRZLEVBQWtCNVksRUFBYSxtQkFFL0JpWixFQUFVMWpDLEdBQ2R1ZixHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLGVBQ2R4UyxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLHFCQUFxQi94QixJQUl6QyxPQUNFdWYsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxTQUNkeFMsR0FBQUEsUUFBQUEsY0FBQ21iLEVBQWEsQ0FDWjE2QixNQUFPMGpDLEVBQ1A3SSxTQUFVNXlCLEdBQVNzMUIsRUFDbkIzQyxpQkFBaUIsU0FFakJyYixHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLFFBQ2JqOUMsR0FBUW16QixFQUFRLEdBQUtzWCxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLGFBQWEveEIsR0FDbkR1ZixHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLGFBQWF2N0MsR0FDNUI4SyxHQUFVaStCLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsZUFBYyxLQUFHendDLEVBQU8sS0FDbERzaEQsRUFBV2o5QyxLQUNSaTlDLEVBQ0dqYixXQUNBdHJDLEtBQUksRUFBRXZCLEVBQUt5YyxLQUNWZ29CLEdBQUFBLFFBQUFBLGNBQUM0akIsRUFBUSxDQUNQcm9ELElBQUssR0FBR0EsS0FBT3ljLElBQ2Y2aEIsUUFBU3QrQixFQUNUK29ELFFBQVN0c0MsRUFDVHFzQyxVQUFXQSxPQUdqQixLQUNIbkIsR0FBa0JDLEVBQVcvOEMsS0FBTyxFQUNuQzQ1QixHQUFBQSxRQUFBQSxjQUFDOGpCLEVBQWUsQ0FDZFgsV0FBWUEsRUFDWmtCLFVBQVcsR0FBR0EsaUJBRWQsS0FDRmpCLEVBQXFCcGpCLEdBQUFBLFFBQUFBLGNBQUMyakIsRUFBUSxDQUFDdnNDLE9BQVFnc0MsSUFBekIsS0FDZkssR0FDQ3pqQixHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGlCQUNieFMsR0FBQUEsUUFBQUEsY0FBQzZqQixFQUFJLENBQUM1dkQsT0FBTyxTQUFTa3VELEtBQU1JLFlBQVlrQixJQUNyQ0MsR0FBMkJELElBSWpDcmhELEdBQU9BLEVBQUlnRSxLQUNWNDVCLEdBQUFBLFFBQUFBLGNBQUEsWUFDRUEsR0FBQUEsUUFBQUEsY0FBQSxXQUNBQSxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFXNlIsSUFBVyxRQUMzQmppRCxFQUNFZ21DLFdBQ0F0ckMsS0FBSSxFQUFFdkIsRUFBS3ljLEtBQ1Znb0IsR0FBQUEsUUFBQUEsY0FBQSxRQUFNemtDLElBQUssR0FBR0EsS0FBT3ljLElBQUt3NkIsVUFBVzZSLElBQ25DcmtCLEdBQUFBLFFBQUFBLGNBQUEsV0FBTSxNQUNhemtDLEVBQUksS0FBR3hELE9BQU9pZ0IsTUFHcEN5aUIsV0FFSCxLQUNIZ3FCLEdBQ0N6a0IsR0FBQUEsUUFBQUEsY0FBQzJoQixFQUFTLENBQUM1c0QsTUFBTzB2RCxFQUFXdlosYUFBY0EsTUFNdkQsRUNwSWEsTUFBTXlaLGdCQUFnQjNrQixHQUFBQSxRQUFBQSxVQVVuQzRrQix5QkFBQUEsR0FDRSxJQUFJLFFBQUVDLEdBQVkzdkQsS0FBS3N5QixNQUd2QnR5QixLQUFLNHZELFVBQVVELEVBQVF2ekMsUUFDekIsQ0FFQXVxQyxnQ0FBQUEsQ0FBaUNDLEdBQ3pCNW1ELEtBQUtzeUIsTUFBTXU5QixlQUFrQmpKLEVBQVUrSSxRQUFRam5ELFNBQVMxSSxLQUFLc3lCLE1BQU11OUIsZ0JBR3ZFN3ZELEtBQUs0dkQsVUFBVWhKLEVBQVUrSSxRQUFRdnpDLFFBRXJDLENBRUEwekMsU0FBWW5sRCxJQUNWM0ssS0FBSzR2RCxVQUFXamxELEVBQUU1TCxPQUFPYyxNQUFPLEVBR2xDK3ZELFVBQWMvdkQsSUFDWixJQUFJLEtBQUVpMUMsRUFBSSxPQUFFL3hCLEVBQU0sWUFBRXcwQixHQUFnQnYzQyxLQUFLc3lCLE1BRXpDaWxCLEVBQVlxWSxVQUFXL3ZELEVBQU9pMUMsRUFBTS94QixFQUFRLEVBRzlDZ3pCLE1BQUFBLEdBQ0UsSUFBSSxRQUFFNFosRUFBTyxjQUFFRSxHQUFrQjd2RCxLQUFLc3lCLE1BRXRDLE9BQ0V3WSxHQUFBQSxRQUFBQSxjQUFBLFNBQU9pbEIsUUFBUSxXQUNiamxCLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsaUJBQWdCLFdBQ2hDeFMsR0FBQUEsUUFBQUEsY0FBQSxVQUFRZ2xCLFNBQVc5dkQsS0FBSzh2RCxTQUFXandELE1BQU9nd0QsRUFBZXhuQixHQUFHLFdBQ3hEc25CLEVBQVF6YixXQUFXdHNDLEtBQ2pCK2xELEdBQVk3aUIsR0FBQUEsUUFBQUEsY0FBQSxVQUFRanJDLE1BQVE4dEQsRUFBU3RuRCxJQUFNc25ELEdBQVdBLEtBQ3hEcG9CLFdBSVYsRUNoRGEsTUFBTXlxQix5QkFBeUJsbEIsR0FBQUEsUUFBQUEsVUFRNUNpTCxNQUFBQSxHQUNFLE1BQU0sWUFBQ3dCLEVBQVcsY0FBRWxHLEVBQWEsYUFBRTJFLEdBQWdCaDJDLEtBQUtzeUIsTUFFbER1OUIsRUFBZ0J4ZSxFQUFjNGUsa0JBQzlCTixFQUFVdGUsRUFBY3NlLFVBRXhCRixFQUFVelosRUFBYSxXQUk3QixPQUYwQjJaLEdBQVdBLEVBQVF6K0MsS0FHekM0NUIsR0FBQUEsUUFBQUEsY0FBQzJrQixFQUFPLENBQ05JLGNBQWVBLEVBQ2ZGLFFBQVNBLEVBQ1RwWSxZQUFhQSxJQUViLElBQ1IsRUM1QkYsSUFJSSxHQUpJLFNBQVNqdUMsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLFFBQWEsV0FBYSxPQUFPNm1ELEVBQW1FLE9BQUcsSUNJOUksTUFlTUMsR0FBeUIsQ0FDN0J0d0QsTUFBTyxHQUNQaXdELFNBakJXdCtDLE9Ba0JYaXZCLE9BQVEsQ0FBQyxFQUNUMnZCLFFBQVMsR0FDVDNGLFVBQVUsRUFDVnJyQyxRQUFRc2UsRUFBQUEsR0FBQUEsU0FHSCxNQUFNMnlCLHVCQUF1QjV6QixHQUFBQSxVQUdsQ3lwQixvQkFBc0JpSyxHQUV0QjFKLGlCQUFBQSxHQUNFLE1BQU0scUJBQUU2SixFQUFvQixNQUFFendELEVBQUssU0FBRWl3RCxHQUFhOXZELEtBQUtzeUIsTUFDcERnK0IsRUFDRFIsRUFBU2p3RCxJQUN3QixJQUF6Qnl3RCxHQUNSUixFQUFTLEdBRWIsQ0FFQS9aLE1BQUFBLEdBQ0UsSUFBSSxPQUFFdFYsRUFBTSxPQUFFcmhCLEVBQU0sTUFBRXZmLEVBQUssU0FBRWl3RCxFQUFRLGFBQUU5WixFQUFZLEdBQUVqMUIsRUFBRSxTQUFFd3ZDLEdBQWF2d0QsS0FBS3N5QixNQUMzRSxNQUFNemxCLEVBQVM0ekIsR0FBVUEsRUFBTzc3QixJQUFNNjdCLEVBQU83N0IsSUFBSSxVQUFZLEtBQ3ZEN0MsRUFBTzArQixHQUFVQSxFQUFPNzdCLElBQU02N0IsRUFBTzc3QixJQUFJLFFBQVUsS0FDbkQ0ckQsRUFBYXp2QyxFQUFHMHZDLG9CQUFvQmh3QixHQUNwQ2l3QixFQUF1QjN2QyxFQUFHMnZDLHFCQUFxQmp3QixHQUVyRCxJQUFJa3dCLHFCQUF3QnR3RCxHQUFTMjFDLEVBQWEzMUMsR0FBTSxFQUFPLENBQUV1d0QsY0FBYyxJQUMzRUMsRUFBTzl1RCxFQUNUNHVELHFCQURnQjlqRCxFQUNLLGNBQWM5SyxLQUFROEssSUFDdEIsY0FBYzlLLEtBQ25DaTBDLEVBQWEscUJBVWYsT0FSSzBhLElBQXdCaHpCLEdBQUFBLEtBQUswRyxPQUFPcmlDLElBQXlCLFVBQWZ5dUQsR0FBeUMsV0FBZkEsSUFDM0VLLEVBQU83YSxFQUFhLHNCQUdqQjZhLElBQ0hBLEVBQU83YSxFQUFhLHNCQUdmbEwsR0FBQUEsUUFBQUEsY0FBQytsQixHQUFJblQsRUFBQUEsR0FBQUEsU0FBQSxHQUFNMTlDLEtBQUtzeUIsTUFBSyxDQUFHbFQsT0FBUUEsRUFBUTJCLEdBQUlBLEVBQUlpMUIsYUFBY0EsRUFBY24yQyxNQUFPQSxFQUFPaXdELFNBQVVBLEVBQVVydkIsT0FBUUEsRUFBUTh2QixTQUFVQSxJQUNqSixFQUdLLE1BQU1PLDBCQUEwQnIwQixHQUFBQSxVQUVyQ3lwQixvQkFBc0JpSyxHQUN0QkwsU0FBWW5sRCxJQUNWLE1BQU05SyxFQUFRRyxLQUFLc3lCLE1BQU1tTyxRQUE0QyxTQUFsQ3pnQyxLQUFLc3lCLE1BQU1tTyxPQUFPNzdCLElBQUksUUFBcUIrRixFQUFFNUwsT0FBT2d5RCxNQUFNLEdBQUtwbUQsRUFBRTVMLE9BQU9jLE1BQzNHRyxLQUFLc3lCLE1BQU13OUIsU0FBU2p3RCxFQUFPRyxLQUFLc3lCLE1BQU04OUIsUUFBUSxFQUVoRFksYUFBZ0JoN0MsR0FBUWhXLEtBQUtzeUIsTUFBTXc5QixTQUFTOTVDLEdBQzVDKy9CLE1BQUFBLEdBQ0UsSUFBSSxhQUFFQyxFQUFZLE1BQUVuMkMsRUFBSyxPQUFFNGdDLEVBQU0sT0FBRXJoQixFQUFNLFNBQUVxckMsRUFBUSxZQUFFeUQsRUFBVyxTQUFFcUMsR0FBYXZ3RCxLQUFLc3lCLE1BQ3BGLE1BQU0yK0IsRUFBWXh3QixHQUFVQSxFQUFPNzdCLElBQU02N0IsRUFBTzc3QixJQUFJLFFBQVUsS0FDeERpSSxFQUFTNHpCLEdBQVVBLEVBQU83N0IsSUFBTTY3QixFQUFPNzdCLElBQUksVUFBWSxLQUN2RDdDLEVBQU8wK0IsR0FBVUEsRUFBTzc3QixJQUFNNjdCLEVBQU83N0IsSUFBSSxRQUFVLEtBQ25Ec3NELEVBQVd6d0IsR0FBVUEsRUFBTzc3QixJQUFNNjdCLEVBQU83N0IsSUFBSSxNQUFRLEtBUzNELEdBUksvRSxHQUVNa2hDLFlBQVlsaEMsSUFBMkIsaUJBQVZBLEtBQ3RDQSxFQUFRNm5DLFVBQVU3bkMsSUFGbEJBLEVBQVEsR0FLVnVmLEVBQVNBLEVBQU8raEIsS0FBTy9oQixFQUFPK2hCLE9BQVMsR0FFbEM4dkIsRUFBWSxDQUNmLE1BQU1FLEVBQVNuYixFQUFhLFVBQzVCLE9BQVFsTCxHQUFBQSxRQUFBQSxjQUFDcW1CLEVBQU0sQ0FBQzdULFVBQVlsK0IsRUFBTzNjLE9BQVMsVUFBWSxHQUN4QzhvQixNQUFRbk0sRUFBTzNjLE9BQVMyYyxFQUFTLEdBQ2pDZ3lDLGNBQWdCLElBQUlILEdBQ3BCcHhELE1BQVFBLEVBQ1J3eEQsaUJBQW1CNUcsRUFDbkI4RixTQUFVQSxFQUNWVCxTQUFXOXZELEtBQUtneEQsY0FDbEMsQ0FFQSxNQUFNTSxFQUFhZixHQUFhVyxHQUF5QixhQUFiQSxLQUE2QixhQUFjM3NDLFFBQ2pGZ3RDLEVBQVF2YixFQUFhLFNBQzNCLE9BQUlqMEMsR0FBaUIsU0FBVEEsRUFFUitvQyxHQUFBQSxRQUFBQSxjQUFDeW1CLEVBQUssQ0FBQ3h2RCxLQUFLLE9BQ1Z1N0MsVUFBV2wrQixFQUFPM2MsT0FBUyxVQUFZLEdBQ3ZDOG9CLE1BQU9uTSxFQUFPM2MsT0FBUzJjLEVBQVMsR0FDaEMwd0MsU0FBVTl2RCxLQUFLOHZELFNBQ2ZTLFNBQVVlLElBS1p4bUIsR0FBQUEsUUFBQUEsY0FBQzBtQixHQUFBQSxRQUFhLENBQ1p6dkQsS0FBTThLLEdBQXFCLGFBQVhBLEVBQXdCLFdBQWEsT0FDckR5d0MsVUFBV2wrQixFQUFPM2MsT0FBUyxVQUFZLEdBQ3ZDOG9CLE1BQU9uTSxFQUFPM2MsT0FBUzJjLEVBQVMsR0FDaEN2ZixNQUFPQSxFQUNQMmpDLFVBQVcsRUFDWGl1QixnQkFBaUIsSUFDakJDLFlBQWF4RCxFQUNiNEIsU0FBVTl2RCxLQUFLOHZELFNBQ2ZTLFNBQVVlLEdBR2xCLEVBR0ssTUFBTUsseUJBQXlCajFCLEdBQUFBLGNBR3BDd3BCLG9CQUFzQmlLLEdBRXRCN29ELFdBQUFBLENBQVlnckIsRUFBT2h0QixHQUNqQmlhLE1BQU0rUyxFQUFPaHRCLEdBQ2J0RixLQUFLdUQsTUFBUSxDQUFFMUQsTUFBTyt4RCxpQkFBaUJ0L0IsRUFBTXp5QixPQUFRNGdDLE9BQVFuTyxFQUFNbU8sT0FDckUsQ0FFQWttQixnQ0FBQUEsQ0FBaUNyMEIsR0FDL0IsTUFBTXp5QixFQUFRK3hELGlCQUFpQnQvQixFQUFNenlCLE9BQ2xDQSxJQUFVRyxLQUFLdUQsTUFBTTFELE9BQ3RCRyxLQUFLNm1ELFNBQVMsQ0FBRWhuRCxVQUVmeXlCLEVBQU1tTyxTQUFXemdDLEtBQUt1RCxNQUFNazlCLFFBQzdCemdDLEtBQUs2bUQsU0FBUyxDQUFFcG1CLE9BQVFuTyxFQUFNbU8sUUFDbEMsQ0FFQXF2QixTQUFXQSxLQUNUOXZELEtBQUtzeUIsTUFBTXc5QixTQUFTOXZELEtBQUt1RCxNQUFNMUQsTUFBTSxFQUd2Q2d5RCxhQUFlQSxDQUFDQyxFQUFTN3RELEtBQ3ZCakUsS0FBSzZtRCxVQUFTLEVBQUdobkQsWUFBWSxDQUMzQkEsTUFBT0EsRUFBTWdGLElBQUlaLEVBQUc2dEQsTUFDbEI5eEQsS0FBSzh2RCxTQUFTLEVBR3BCaUMsV0FBYzl0RCxJQUNaakUsS0FBSzZtRCxVQUFTLEVBQUdobkQsWUFBWSxDQUMzQkEsTUFBT0EsRUFBTTR6QyxPQUFPeHZDLE1BQ2xCakUsS0FBSzh2RCxTQUFTLEVBR3BCa0MsUUFBVUEsS0FDUixNQUFNLEdBQUVqeEMsR0FBTy9nQixLQUFLc3lCLE1BQ3BCLElBQUkyL0IsRUFBV0wsaUJBQWlCNXhELEtBQUt1RCxNQUFNMUQsT0FDM0NHLEtBQUs2bUQsVUFBUyxLQUFNLENBQ2xCaG5ELE1BQU9veUQsRUFBU3p2RCxLQUFLdWUsRUFBR214QyxnQkFBZ0JseUQsS0FBS3VELE1BQU1rOUIsT0FBTzc3QixJQUFJLFVBQVUsRUFBTyxDQUM3RW1qRCxrQkFBa0IsUUFFbEIvbkQsS0FBSzh2RCxTQUFTLEVBR3BCa0IsYUFBZ0JueEQsSUFDZEcsS0FBSzZtRCxVQUFTLEtBQU0sQ0FDbEJobkQsTUFBT0EsS0FDTEcsS0FBSzh2RCxTQUFTLEVBR3BCL1osTUFBQUEsR0FDRSxJQUFJLGFBQUVDLEVBQVksU0FBRXlVLEVBQVEsT0FBRWhxQixFQUFNLE9BQUVyaEIsRUFBTSxHQUFFMkIsRUFBRSxTQUFFd3ZDLEdBQWF2d0QsS0FBS3N5QixNQUVwRWxULEVBQVNBLEVBQU8raEIsS0FBTy9oQixFQUFPK2hCLE9BQVNuOUIsTUFBTTJELFFBQVF5WCxHQUFVQSxFQUFTLEdBQ3hFLE1BQU0reUMsRUFBYy95QyxFQUFPMFMsUUFBT25uQixHQUFrQixpQkFBTkEsSUFDeEN5bkQsRUFBbUJoekMsRUFBTzBTLFFBQU9ubkIsUUFBc0J0SixJQUFqQnNKLEVBQUV1NkIsYUFDM0N0OUIsS0FBSStDLEdBQUtBLEVBQUV4RixRQUNSdEYsRUFBUUcsS0FBS3VELE1BQU0xRCxNQUNuQnd5RCxLQUNEeHlELEdBQVNBLEVBQU1pRCxPQUFTakQsRUFBTWlELFFBQVUsR0FDdkN3dkQsRUFBa0I3eEIsRUFBT0ksTUFBTSxDQUFDLFFBQVMsU0FDekMweEIsRUFBYzl4QixFQUFPNzdCLElBQUksU0FDekI0dEQsRUFBa0J6eEMsRUFBRzB2QyxvQkFBb0I4QixHQUN6Q0UsRUFBdUIxeEMsRUFBRzJ4Qyx5QkFBeUJILEdBQ25ESSxFQUFvQmx5QixFQUFPSSxNQUFNLENBQUMsUUFBUyxXQUMzQyt4QixFQUFvQm55QixFQUFPNzdCLElBQUksU0FDckMsSUFBSWl1RCxFQUNBQyxHQUFrQixFQUNsQkMsRUFBdUMsU0FBcEJQLEdBQW1ELFdBQXBCQSxHQUFzRCxXQUF0QkcsRUFpQnRGLEdBaEJJSCxHQUFtQkcsRUFDckJFLEVBQXNCN2MsRUFBYSxjQUFjd2MsS0FBbUJHLEtBQ3ZDLFlBQXBCSCxHQUFxRCxVQUFwQkEsR0FBbUQsV0FBcEJBLElBQ3pFSyxFQUFzQjdjLEVBQWEsY0FBY3djLE9BRy9DOTBCLEdBQUFBLEtBQUswRyxPQUFPbXVCLEdBQWEzdEQsSUFBSSxVQUFpQyxVQUFwQjR0RCxHQUFtRCxXQUFwQkEsSUFDM0VLLEVBQXNCN2MsRUFBYSxzQkFLaEM2YyxHQUF3QkUsSUFDM0JELEdBQWtCLEdBR2ZSLEVBQWtCLENBQ3JCLE1BQU1uQixFQUFTbmIsRUFBYSxVQUM1QixPQUFRbEwsR0FBQUEsUUFBQUEsY0FBQ3FtQixFQUFNLENBQUM3VCxVQUFZbCtCLEVBQU8zYyxPQUFTLFVBQVksR0FDeEM4b0IsTUFBUW5NLEVBQU8zYyxPQUFTMmMsRUFBUyxHQUNqQzR6QyxVQUFXLEVBQ1huekQsTUFBUUEsRUFDUjB3RCxTQUFVQSxFQUNWYSxjQUFnQmtCLEVBQ2hCakIsaUJBQW1CNUcsRUFDbkJxRixTQUFXOXZELEtBQUtneEQsY0FDbEMsQ0FFQSxNQUFNaUMsRUFBU2pkLEVBQWEsVUFDNUIsT0FDRWxMLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUscUJBQ1orVSxFQUNFeHlELEVBQU0rSCxLQUFJLENBQUNzaUIsRUFBTWptQixLQUNoQixNQUFNaXZELEdBQWFuMUIsRUFBQUEsR0FBQUEsUUFBTyxJQUNyQjNlLEVBQU8wUyxRQUFRcHhCLEdBQVFBLEVBQUl1RixRQUFVaEMsSUFDdkMyRCxLQUFJK0MsR0FBS0EsRUFBRXhGLFVBRWQsT0FDRTJsQyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt6a0MsSUFBS3BDLEVBQUdxNUMsVUFBVSx5QkFFbkJ5VixFQUNFam9CLEdBQUFBLFFBQUFBLGNBQUNxb0Isd0JBQXVCLENBQ3hCdHpELE1BQU9xcUIsRUFDUDRsQyxTQUFXOTVDLEdBQU9oVyxLQUFLNnhELGFBQWE3N0MsRUFBSy9SLEdBQ3pDc3NELFNBQVVBLEVBQ1ZueEMsT0FBUTh6QyxFQUNSbGQsYUFBY0EsSUFFWjhjLEVBQ0Fob0IsR0FBQUEsUUFBQUEsY0FBQ3NvQix3QkFBdUIsQ0FDdEJ2ekQsTUFBT3FxQixFQUNQNGxDLFNBQVc5NUMsR0FBUWhXLEtBQUs2eEQsYUFBYTc3QyxFQUFLL1IsR0FDMUNzc0QsU0FBVUEsRUFDVm54QyxPQUFROHpDLElBRVJwb0IsR0FBQUEsUUFBQUEsY0FBQytuQixHQUFtQm5WLEVBQUFBLEdBQUFBLFNBQUEsR0FBSzE5QyxLQUFLc3lCLE1BQUssQ0FDbkN6eUIsTUFBT3FxQixFQUNQNGxDLFNBQVc5NUMsR0FBUWhXLEtBQUs2eEQsYUFBYTc3QyxFQUFLL1IsR0FDMUNzc0QsU0FBVUEsRUFDVm54QyxPQUFROHpDLEVBQ1J6eUIsT0FBUW15QixFQUNSNWMsYUFBY0EsRUFDZGoxQixHQUFJQSxLQUdWd3ZDLEVBT0UsS0FORnpsQixHQUFBQSxRQUFBQSxjQUFDbW9CLEVBQU0sQ0FDTDNWLFVBQVcsMkNBQTJDOFUsRUFBaUIzdkQsT0FBUyxVQUFZLE9BQzVGOG9CLE1BQU82bUMsRUFBaUIzdkQsT0FBUzJ2RCxFQUFtQixHQUVwRC9NLFFBQVNBLElBQU1ybEQsS0FBSyt4RCxXQUFXOXRELElBQ2hDLE9BRUMsSUFHTixLQUVKc3NELEVBUUUsS0FQRnpsQixHQUFBQSxRQUFBQSxjQUFDbW9CLEVBQU0sQ0FDTDNWLFVBQVcsd0NBQXdDNlUsRUFBWTF2RCxPQUFTLFVBQVksT0FDcEY4b0IsTUFBTzRtQyxFQUFZMXZELE9BQVMwdkQsRUFBYyxHQUMxQzlNLFFBQVNybEQsS0FBS2d5RCxTQUNmLE9BQ01TLEVBQXFCLFNBS3BDLEVBR0ssTUFBTVcsZ0NBQWdDMzJCLEdBQUFBLFVBRTNDeXBCLG9CQUFzQmlLLEdBRXRCTCxTQUFZbmxELElBQ1YsTUFBTTlLLEVBQVE4SyxFQUFFNUwsT0FBT2MsTUFDdkJHLEtBQUtzeUIsTUFBTXc5QixTQUFTandELEVBQU9HLEtBQUtzeUIsTUFBTTg5QixRQUFRLEVBR2hEcmEsTUFBQUEsR0FDRSxJQUFJLE1BQUVsMkMsRUFBSyxPQUFFdWYsRUFBTSxZQUFFOHVDLEVBQVcsU0FBRXFDLEdBQWF2d0QsS0FBS3N5QixNQVNwRCxPQVJLenlCLEdBRU1raEMsWUFBWWxoQyxJQUEyQixpQkFBVkEsS0FDdENBLEVBQVE2bkMsVUFBVTduQyxJQUZsQkEsRUFBUSxHQUtWdWYsRUFBU0EsRUFBTytoQixLQUFPL2hCLEVBQU8raEIsT0FBUyxHQUUvQjJKLEdBQUFBLFFBQUFBLGNBQUMwbUIsR0FBQUEsUUFBYSxDQUNwQnp2RCxLQUFNLE9BQ051N0MsVUFBV2wrQixFQUFPM2MsT0FBUyxVQUFZLEdBQ3ZDOG9CLE1BQU9uTSxFQUFPM2MsT0FBUzJjLEVBQVMsR0FDaEN2ZixNQUFPQSxFQUNQMmpDLFVBQVcsRUFDWGl1QixnQkFBaUIsSUFDakJDLFlBQWF4RCxFQUNiNEIsU0FBVTl2RCxLQUFLOHZELFNBQ2ZTLFNBQVVBLEdBQ2QsRUFHSyxNQUFNNEMsZ0NBQWdDMTJCLEdBQUFBLFVBRTNDeXBCLG9CQUFzQmlLLEdBRXRCa0QsYUFBZ0Ixb0QsSUFDZCxNQUFNOUssRUFBUThLLEVBQUU1TCxPQUFPZ3lELE1BQU0sR0FDN0Ivd0QsS0FBS3N5QixNQUFNdzlCLFNBQVNqd0QsRUFBT0csS0FBS3N5QixNQUFNODlCLFFBQVEsRUFHaERyYSxNQUFBQSxHQUNFLElBQUksYUFBRUMsRUFBWSxPQUFFNTJCLEVBQU0sU0FBRW14QyxHQUFhdndELEtBQUtzeUIsTUFDOUMsTUFBTWkvQixFQUFRdmIsRUFBYSxTQUNyQnNiLEVBQWFmLEtBQWMsYUFBY2hzQyxRQUUvQyxPQUFRdW1CLEdBQUFBLFFBQUFBLGNBQUN5bUIsRUFBSyxDQUFDeHZELEtBQUssT0FDbEJ1N0MsVUFBV2wrQixFQUFPM2MsT0FBUyxVQUFZLEdBQ3ZDOG9CLE1BQU9uTSxFQUFPM2MsT0FBUzJjLEVBQVMsR0FDaEMwd0MsU0FBVTl2RCxLQUFLcXpELGFBQ2Y5QyxTQUFVZSxHQUNkLEVBR0ssTUFBTWdDLDJCQUEyQjcyQixHQUFBQSxVQUV0Q3lwQixvQkFBc0JpSyxHQUV0QmEsYUFBZ0JoN0MsR0FBUWhXLEtBQUtzeUIsTUFBTXc5QixTQUFTOTVDLEdBQzVDKy9CLE1BQUFBLEdBQ0UsSUFBSSxhQUFFQyxFQUFZLE1BQUVuMkMsRUFBSyxPQUFFdWYsRUFBTSxPQUFFcWhCLEVBQU0sU0FBRWdxQixFQUFRLFNBQUU4RixHQUFhdndELEtBQUtzeUIsTUFDdkVsVCxFQUFTQSxFQUFPK2hCLEtBQU8vaEIsRUFBTytoQixPQUFTLEdBQ3ZDLElBQUk4dkIsRUFBWXh3QixHQUFVQSxFQUFPNzdCLElBQU02N0IsRUFBTzc3QixJQUFJLFFBQVUsS0FDeER5c0QsR0FBbUJKLElBQWN4RyxFQUNqQzhJLEdBQWdCdEMsR0FBYSxDQUFDLE9BQVEsU0FDMUMsTUFBTUUsRUFBU25iLEVBQWEsVUFFNUIsT0FBUWxMLEdBQUFBLFFBQUFBLGNBQUNxbUIsRUFBTSxDQUFDN1QsVUFBWWwrQixFQUFPM2MsT0FBUyxVQUFZLEdBQ3hDOG9CLE1BQVFuTSxFQUFPM2MsT0FBUzJjLEVBQVMsR0FDakN2ZixNQUFRZ0QsT0FBT2hELEdBQ2Ywd0QsU0FBV0EsRUFDWGEsY0FBZ0JILEVBQVksSUFBSUEsR0FBYXNDLEVBQzdDbEMsZ0JBQWtCQSxFQUNsQnZCLFNBQVc5dkQsS0FBS2d4RCxjQUNsQyxFQUdGLE1BQU13QyxzQkFBeUJwMEMsR0FDdEJBLEVBQU94WCxLQUFJbEgsSUFDaEIsTUFBTSt5RCxPQUF1QnB5RCxJQUFoQlgsRUFBSWlrQyxRQUF3QmprQyxFQUFJaWtDLFFBQVVqa0MsRUFBSXVGLE1BQzNELElBQUl5dEQsRUFBNkIsaUJBQVJoekQsRUFBbUJBLEVBQTJCLGlCQUFkQSxFQUFJeUUsTUFBcUJ6RSxFQUFJeUUsTUFBUSxLQUU5RixJQUFJc3VELEdBQVFDLEVBQ1YsT0FBT0EsRUFFVCxJQUFJQyxFQUFlanpELEVBQUl5RSxNQUNuQjJ2QyxFQUFPLElBQUlwMEMsRUFBSWlrQyxVQUNuQixLQUE4QixpQkFBakJndkIsR0FBMkIsQ0FDdEMsTUFBTUMsT0FBZ0N2eUQsSUFBekJzeUQsRUFBYWh2QixRQUF3Qmd2QixFQUFhaHZCLFFBQVVndkIsRUFBYTF0RCxNQUN0RixRQUFZNUUsSUFBVHV5RCxFQUNELE1BR0YsR0FEQTllLEdBQVEsSUFBSThlLEtBQ1BELEVBQWF4dUQsTUFDaEIsTUFFRnd1RCxFQUFlQSxFQUFheHVELEtBQzlCLENBQ0EsTUFBTyxHQUFHMnZDLE1BQVM2ZSxHQUFjLElBSTlCLE1BQU1FLDBCQUEwQm4zQixHQUFBQSxjQUNyQ3AxQixXQUFBQSxHQUNFaVksT0FDRixDQUdBMm1DLG9CQUFzQmlLLEdBRXRCTCxTQUFZandELElBQ1ZHLEtBQUtzeUIsTUFBTXc5QixTQUFTandELEVBQU0sRUFHNUJpMEQsZUFBaUJucEQsSUFDZixNQUFNb3BELEVBQWFwcEQsRUFBRTVMLE9BQU9jLE1BRTVCRyxLQUFLOHZELFNBQVNpRSxFQUFXLEVBRzNCaGUsTUFBQUEsR0FDRSxJQUFJLGFBQ0ZDLEVBQVksTUFDWm4yQyxFQUFLLE9BQ0x1ZixFQUFNLFNBQ05teEMsR0FDRXZ3RCxLQUFLc3lCLE1BRVQsTUFBTTBoQyxFQUFXaGUsRUFBYSxZQUc5QixPQUZBNTJCLEVBQVNBLEVBQU8raEIsS0FBTy9oQixFQUFPK2hCLE9BQVNuOUIsTUFBTTJELFFBQVF5WCxHQUFVQSxFQUFTLEdBR3RFMHJCLEdBQUFBLFFBQUFBLGNBQUEsV0FDRUEsR0FBQUEsUUFBQUEsY0FBQ2twQixFQUFRLENBQ1AxVyxXQUFXb0wsRUFBQUEsR0FBQUEsU0FBRyxDQUFFdUwsUUFBUzcwQyxFQUFPM2MsU0FDaEM4b0IsTUFBUW5NLEVBQU8zYyxPQUFTK3dELHNCQUFzQnAwQyxHQUFRdlgsS0FBSyxNQUFRLEdBQ25FaEksTUFBTzZuQyxVQUFVN25DLEdBQ2pCMHdELFNBQVVBLEVBQ1ZULFNBQVc5dkQsS0FBSzh6RCxpQkFHeEIsRUFHRixTQUFTbEMsaUJBQWlCL3hELEdBQ3hCLE9BQU82OUIsR0FBQUEsS0FBSzBHLE9BQU92a0MsR0FBU0EsRUFBUW1FLE1BQU0yRCxRQUFROUgsSUFBU2srQixFQUFBQSxHQUFBQSxRQUFPbCtCLElBQVM2OUIsRUFBQUEsR0FBQUEsT0FDN0UsQ0NoYk8sTUFBTWt4QixnQkFBa0JBLEVBQUdYLGFBQVlrQixZQUFZLE1BQ2pEbEIsRUFDSi9hLFdBQ0F0ckMsS0FBSSxFQUFFdkIsRUFBS3hHLE1BQ1YsTUFBTXEwRCxFQUFrQmh6QixjQUFjcmhDLElBQVUsS0FFaEQsT0FDRWlyQyxHQUFBQSxRQUFBQSxjQUFBLE1BQUl6a0MsSUFBS0EsRUFBS2kzQyxVQUFXNlIsR0FDdkJya0IsR0FBQUEsUUFBQUEsY0FBQSxVQUFLemtDLEdBQ0x5a0MsR0FBQUEsUUFBQUEsY0FBQSxVQUFLdEcsS0FBS2tELFVBQVV3c0IsSUFDakIsSUFHUjN1QixVQ3JCTCxJQUlJLEdBSkksU0FBU2o4QixHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsUUFBYSxXQUFhLE9BQU84cUQsRUFBbUUsT0FBRyxJQ0d2SSxNQUFNQyxjQUFnQkEsQ0FBQzN6QixFQUFRMStCLEtBQ3BDLE1BQU1zeUQsRUFBb0IxMkIsR0FBQUEsSUFBSTZDLE1BQU1DLEdBRXBDLElBQUs0ekIsS0FBc0JDLEVBQUFBLEdBQUFBLFNBQWM3ekIsR0FDdkMsT0FBTyxFQUdULE1BQU04ekIsRUFBYUYsRUFBb0I1ekIsRUFBTzc3QixJQUFJLFFBQVU2N0IsRUFBTzErQixLQUVuRSxPQUNFQSxJQUFTd3lELEdBQWV2d0QsTUFBTTJELFFBQVE1RixJQUFTQSxFQUFLMkcsU0FBUzZyRCxFQUFZLEVBSXZFOW9CLFFBQVVBLENBQUNoTCxFQUFRK3pCLEVBQW1CLElBQUlDLFdBQzlDLEdBQWMsTUFBVmgwQixFQUNGLE1BQU8sTUFHVCxHQUFJK3pCLEVBQWlCOXZCLElBQUlqRSxHQUN2QixNQUFPLE1BR1QrekIsRUFBaUIxbUQsSUFBSTJ5QixHQUVyQixNQUFNLEtBQUUxK0IsRUFBSSxNQUFFc3RELEdBQVU1dUIsRUFXeEIsT0FBSW5oQyxPQUFPbzFELE9BQU9qMEIsRUFBUSxTQVRMazBCLE1BQ25CLEdBQUl0RixFQUVGLE1BQU8sU0FEVzVqQixRQUFRNGpCLEVBQU9tRixNQUdqQyxNQUFPLFlBQ1QsRUFJT0csR0FFRjV5RCxDQUFJLEVBR0Eyd0QseUJBQTRCanlCLEdBQ3ZDZ0wsUUFBUXZLLGNBQWNULElDVnhCLGtCQXRCMEJtMEIsS0FBQSxDQUN4QjlyQixXQUFZLENBQ1YrckIsYUFBYy9NLGNBQ2RLLGFBQ0FsQyxjQUNBK0MsTUFDQXNDLE9BQ0FtQixVQUFTLFdBQ1Q1QixZQUNBQyxXQUNBQyxlQUFjLFVBQ2Q2RCxnQkFDQWUsUUFBU0YsUUFDVE8sb0JBQ0c4RSxJQUVML3pDLEdBQUksQ0FDRnF6QyxjQUNBMUIscUZDaENBLEdBSkksU0FBU3BwRCxHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsUUFBYSxXQUFhLE9BQU8wckQsRUFBNkMsT0FBRyxJQ0FwSCxHQUpJLFNBQVN6ckQsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLFFBQWEsV0FBYSxPQUFPMnJELEVBQTZELE9BQUcsSUNLeEksTUFBTUMsbUJBQXNCMXFELEdBQU9DLEdBQzFCeEcsTUFBTTJELFFBQVE0QyxJQUFNdkcsTUFBTTJELFFBQVE2QyxJQUNwQ0QsRUFBRTlILFNBQVcrSCxFQUFFL0gsUUFDZjhILEVBQUVzeUMsT0FBTSxDQUFDN21DLEVBQUsvUCxJQUFVK1AsSUFBUXhMLEVBQUV2RSxLQUduQ0wsS0FBT0EsSUFBSTNHLElBQVNBLEVBRTFCLE1BQU1pMkQsY0FBY3YzQixJQUNsQjhWLE9BQU9wdEMsR0FDTCxNQUNNOHVELEVBRE9ueEQsTUFBTTZQLEtBQUs3VCxLQUFLc0csUUFDUHNnQyxLQUFLcXVCLG1CQUFtQjV1RCxJQUM5QyxPQUFPa1osTUFBTWswQixPQUFPMGhCLEVBQ3RCLENBRUF2d0QsR0FBQUEsQ0FBSXlCLEdBQ0YsTUFDTTh1RCxFQURPbnhELE1BQU02UCxLQUFLN1QsS0FBS3NHLFFBQ1BzZ0MsS0FBS3F1QixtQkFBbUI1dUQsSUFDOUMsT0FBT2taLE1BQU0zYSxJQUFJdXdELEVBQ25CLENBRUF6d0IsR0FBQUEsQ0FBSXIrQixHQUVGLE9BQW9ELElBRHZDckMsTUFBTTZQLEtBQUs3VCxLQUFLc0csUUFDakI4dUQsVUFBVUgsbUJBQW1CNXVELEdBQzNDLEVBY0YsbUJBWGlCZ3ZELENBQUN0MEMsRUFBSW5nQixFQUFXZ0YsUUFDL0IsTUFBUXN2RCxNQUFPSSxHQUFrQmh6QixHQUFBQSxRQUNqQ0EsR0FBQUEsUUFBQUEsTUFBZ0I0eUIsTUFFaEIsTUFBTUssR0FBV2p6QixFQUFBQSxHQUFBQSxTQUFRdmhCLEVBQUluZ0IsR0FJN0IsT0FGQTBoQyxHQUFBQSxRQUFBQSxNQUFnQmd6QixFQUVUQyxDQUFRLEVDdENqQixNQXFCTUMsR0FBYSxDQUNqQixPQUFXLzBCLEdBQVdBLEVBQU9tRCxRQXRCQzZ4QixDQUFDN3hCLElBQy9CLElBUUUsTUFBTTh4QixFQUNKLGtHQUNJQyxFQUFjL3hCLEVBQVF0N0IsUUFBUW90RCxFQUFrQixPQUNoREUsRUFBa0IsSUFBSUMsR0FBQUEsUUFBUUYsR0FFcEMsT0FEQUMsRUFBZ0JqOEMsSUFBTSxJQUNmaThDLEVBQWdCM1QsS0FDekIsQ0FBRSxNQUFPdDNDLEdBRVAsTUFBTyxRQUNULEdBSXVDOHFELENBQXdCaDFCLEVBQU9tRCxTQUFXLFNBQ2pGLGFBQWdCa3lCLElBQU0sbUJBQ3RCLG1CQUFvQkMsS0FBTSxJQUFJcDhCLE1BQU9xOEIsY0FDckMsWUFBZUMsS0FBTSxJQUFJdDhCLE1BQU9xOEIsY0FBY3Z0RCxVQUFVLEVBQUcsSUFDM0QsWUFBZXl0RCxLQUFNLElBQUl2OEIsTUFBT3E4QixjQUFjdnRELFVBQVUsSUFDeEQsWUFBZTB0RCxJQUFNLHVDQUNyQixnQkFBbUJDLElBQU0sY0FDekIsWUFBZUMsSUFBTSxnQkFDckIsWUFBZUMsSUFBTSwwQ0FDckIsT0FBVUMsSUFBTSxFQUNoQixhQUFnQkMsSUFBTSxFQUN0QixRQUFXQyxJQUFNLEVBQ2pCLFFBQVloMkIsR0FBcUMsa0JBQW5CQSxFQUFPaTJCLFNBQXdCajJCLEVBQU9pMkIsU0FHaEVDLFVBQWFsMkIsSUFDakJBLEVBQVNXLFVBQVVYLEdBQ25CLElBQUksS0FBRTErQixFQUFJLE9BQUU4SyxHQUFXNHpCLEVBRW5CMWYsRUFBS3kwQyxHQUFXLEdBQUd6ekQsS0FBUThLLE1BQWEyb0QsR0FBV3p6RCxHQUV2RCxPQUFHc2dDLE9BQU90aEIsR0FDREEsRUFBRzBmLEdBRUwsaUJBQW1CQSxFQUFPMStCLElBQUksRUFLakM2MEQsWUFBZS8yRCxHQUFVMG5DLGVBQWUxbkMsRUFBTyxTQUFVbVcsR0FDOUMsaUJBQVJBLEdBQW9CQSxFQUFJcE4sUUFBUSxNQUFRLElBRTNDaXVELEdBQWtCLENBQUMsZ0JBQWlCLGlCQUNwQ0MsR0FBaUIsQ0FBQyxXQUFZLFlBQzlCQyxHQUFrQixDQUN0QixVQUNBLFVBQ0EsbUJBQ0Esb0JBRUlDLEdBQWtCLENBQUMsWUFBYSxhQUV6QkMsZ0JBQWtCQSxDQUFDbDRELEVBQVFtakIsRUFBUWlMLEVBQVMsQ0FBQyxLQUN4RCxNQUFNK3BDLEVBQVMsSUFBS240RCxHQStCcEIsR0F2QkEsQ0FDRSxVQUNBLFVBQ0EsT0FDQSxNQUNBLFVBQ0c4M0QsTUFDQUMsTUFDQUMsTUFDQUMsSUFDSHZxRCxTQUFRcEcsR0FoQnNCOHdELENBQUM5d0QsU0FDWmhGLElBQWhCNjFELEVBQU83d0QsU0FBc0NoRixJQUFoQjZnQixFQUFPN2IsS0FDckM2d0QsRUFBTzd3RCxHQUFPNmIsRUFBTzdiLEdBQ3ZCLEVBYWU4d0QsQ0FBd0I5d0QsVUFFbEJoRixJQUFwQjZnQixFQUFPdW9DLFVBQTBCem1ELE1BQU0yRCxRQUFRdWEsRUFBT3VvQyxpQkFDaENwcEQsSUFBcEI2MUQsRUFBT3pNLFVBQTJCeU0sRUFBT3pNLFNBQVNob0QsU0FDbkR5MEQsRUFBT3pNLFNBQVcsSUFFcEJ2b0MsRUFBT3VvQyxTQUFTaCtDLFNBQVFwRyxJQUNuQjZ3RCxFQUFPek0sU0FBUy9oRCxTQUFTckMsSUFHNUI2d0QsRUFBT3pNLFNBQVNqb0QsS0FBSzZELEVBQUksS0FHMUI2YixFQUFPaXNDLFdBQVksQ0FDaEIrSSxFQUFPL0ksYUFDVCtJLEVBQU8vSSxXQUFhLENBQUMsR0FFdkIsSUFBSTc3QixFQUFROE8sVUFBVWxmLEVBQU9pc0MsWUFDN0IsSUFBSyxJQUFJaUosS0FBWTlrQyxFQUNkaHpCLE9BQU9ILFVBQVVtOUIsZUFBZWw5QixLQUFLa3pCLEVBQU84a0MsS0FHNUM5a0MsRUFBTThrQyxJQUFhOWtDLEVBQU04a0MsR0FBVTdwQyxZQUduQytFLEVBQU04a0MsSUFBYTlrQyxFQUFNOGtDLEdBQVVDLFdBQWFscUMsRUFBTzY2QixpQkFHdkQxMUIsRUFBTThrQyxJQUFhOWtDLEVBQU04a0MsR0FBVUUsWUFBY25xQyxFQUFPNDZCLGtCQUd6RG1QLEVBQU8vSSxXQUFXaUosS0FDcEJGLEVBQU8vSSxXQUFXaUosR0FBWTlrQyxFQUFNOGtDLElBQ2hDbDFDLEVBQU91b0MsVUFBWXptRCxNQUFNMkQsUUFBUXVhLEVBQU91b0MsWUFBb0QsSUFBdkN2b0MsRUFBT3VvQyxTQUFTN2hELFFBQVF3dUQsS0FDM0VGLEVBQU96TSxTQUdUeU0sRUFBT3pNLFNBQVNqb0QsS0FBSzQwRCxHQUZyQkYsRUFBT3pNLFNBQVcsQ0FBQzJNLEtBTzdCLENBUUEsT0FQR2wxQyxFQUFPbXRDLFFBQ0o2SCxFQUFPN0gsUUFDVDZILEVBQU83SCxNQUFRLENBQUMsR0FFbEI2SCxFQUFPN0gsTUFBUTRILGdCQUFnQkMsRUFBTzdILE1BQU9udEMsRUFBT210QyxNQUFPbGlDLElBR3REK3BDLENBQU0sRUFHRkssd0JBQTBCQSxDQUFDOTJCLEVBQVF0VCxFQUFPLENBQUMsRUFBR3FxQyxPQUFrQm4yRCxFQUFXbzJELEdBQWEsS0FDaEdoM0IsR0FBVTRCLE9BQU81QixFQUFPVSxRQUN6QlYsRUFBU0EsRUFBT1UsUUFDbEIsSUFBSXUyQixPQUFvQ3IyRCxJQUFwQm0yRCxHQUFpQy8yQixRQUE2QnAvQixJQUFuQm8vQixFQUFPMG1CLFNBQXlCMW1CLFFBQTZCcC9CLElBQW5Cby9CLEVBQU9pMkIsUUFFaEgsTUFBTWlCLEdBQVlELEdBQWlCajNCLEdBQVVBLEVBQU9qNUIsT0FBU2k1QixFQUFPajVCLE1BQU0vRSxPQUFTLEVBQzdFbTFELEdBQVlGLEdBQWlCajNCLEdBQVVBLEVBQU9zdUIsT0FBU3R1QixFQUFPc3VCLE1BQU10c0QsT0FBUyxFQUNuRixJQUFJaTFELElBQWtCQyxHQUFZQyxHQUFXLENBQzNDLE1BQU1DLEVBQWN6MkIsVUFBVXUyQixFQUMxQmwzQixFQUFPajVCLE1BQU0sR0FDYmk1QixFQUFPc3VCLE1BQU0sSUFNakIsS0FKQXR1QixFQUFTdzJCLGdCQUFnQngyQixFQUFRbzNCLEVBQWExcUMsSUFDbkNqZ0IsS0FBTzJxRCxFQUFZM3FELE1BQzVCdXpCLEVBQU92ekIsSUFBTTJxRCxFQUFZM3FELFVBRUw3TCxJQUFuQm8vQixFQUFPMG1CLGNBQWlEOWxELElBQXhCdzJELEVBQVkxUSxRQUM3Q3VRLEdBQWdCLE9BQ1gsR0FBR0csRUFBWTFKLFdBQVksQ0FDNUIxdEIsRUFBTzB0QixhQUNUMXRCLEVBQU8wdEIsV0FBYSxDQUFDLEdBRXZCLElBQUk3N0IsRUFBUThPLFVBQVV5MkIsRUFBWTFKLFlBQ2xDLElBQUssSUFBSWlKLEtBQVk5a0MsRUFDZGh6QixPQUFPSCxVQUFVbTlCLGVBQWVsOUIsS0FBS2t6QixFQUFPOGtDLEtBRzVDOWtDLEVBQU04a0MsSUFBYTlrQyxFQUFNOGtDLEdBQVU3cEMsWUFHbkMrRSxFQUFNOGtDLElBQWE5a0MsRUFBTThrQyxHQUFVQyxXQUFhbHFDLEVBQU82NkIsaUJBR3ZEMTFCLEVBQU04a0MsSUFBYTlrQyxFQUFNOGtDLEdBQVVFLFlBQWNucUMsRUFBTzQ2QixrQkFHekR0bkIsRUFBTzB0QixXQUFXaUosS0FDcEIzMkIsRUFBTzB0QixXQUFXaUosR0FBWTlrQyxFQUFNOGtDLElBQ2hDUyxFQUFZcE4sVUFBWXptRCxNQUFNMkQsUUFBUWt3RCxFQUFZcE4sWUFBeUQsSUFBNUNvTixFQUFZcE4sU0FBUzdoRCxRQUFRd3VELEtBQzFGMzJCLEVBQU9ncUIsU0FHVGhxQixFQUFPZ3FCLFNBQVNqb0QsS0FBSzQwRCxHQUZyQjMyQixFQUFPZ3FCLFNBQVcsQ0FBQzJNLEtBTzdCLENBQ0YsQ0FDQSxNQUFNenFELEVBQVEsQ0FBQyxFQUNmLElBQUksSUFBRU8sRUFBRyxLQUFFbkwsRUFBSSxRQUFFb2xELEVBQU8sV0FBRWdILEVBQVUscUJBQUVDLEVBQW9CLE1BQUVpQixHQUFVNXVCLEdBQVUsQ0FBQyxHQUM3RSxnQkFBRXVuQixFQUFlLGlCQUFFRCxHQUFxQjU2QixFQUM1Q2pnQixFQUFNQSxHQUFPLENBQUMsRUFDZCxJQUNJcTlDLEdBREEsS0FBRWxxRCxFQUFJLE9BQUV5M0QsRUFBTSxVQUFFbHNCLEdBQWMxK0IsRUFFOUI2SyxFQUFNLENBQUMsRUFHWCxHQUFHMC9DLElBQ0RwM0QsRUFBT0EsR0FBUSxZQUVma3FELEdBQWV1TixFQUFTQSxFQUFTLElBQU0sSUFBTXozRCxFQUN4Q3VyQyxHQUFZLENBR2ZqL0IsRUFEc0JtckQsRUFBVyxTQUFXQSxFQUFXLFNBQzlCbHNCLENBQzNCLENBSUM2ckIsSUFDRDEvQyxFQUFJd3lDLEdBQWUsSUFHckIsTUFBTXdOLGFBQWdCenhELEdBQVNBLEVBQUtnK0IsTUFBS2orQixHQUFPL0csT0FBT0gsVUFBVW05QixlQUFlbDlCLEtBQUtxaEMsRUFBUXA2QixLQUUxRm82QixJQUFXMStCLElBQ1Rvc0QsR0FBY0MsR0FBd0IySixhQUFhbEIsSUFDcEQ5MEQsRUFBTyxTQUNDc3RELEdBQVMwSSxhQUFhakIsSUFDOUIvMEQsRUFBTyxRQUNDZzJELGFBQWFoQixLQUNyQmgxRCxFQUFPLFNBQ1AwK0IsRUFBTzErQixLQUFPLFVBQ0wyMUQsR0FBa0JqM0IsRUFBT3UzQixPQWVsQ2oyRCxFQUFPLFNBQ1AwK0IsRUFBTzErQixLQUFPLFdBSWxCLE1BQU1rMkQsa0JBQXFCQyxJQUl6QixHQUhJejNCLFNBQVFpRCxXQUNWdzBCLEVBQWNBLEVBQVlyM0QsTUFBTSxFQUFHNC9CLEdBQVFpRCxXQUV6Q2pELFNBQVFrRCxTQUFxRCxDQUMvRCxJQUFJMS9CLEVBQUksRUFDUixLQUFPaTBELEVBQVl6MUQsT0FBU2crQixHQUFRa0QsVUFDbEN1MEIsRUFBWTExRCxLQUFLMDFELEVBQVlqMEQsSUFBTWkwRCxFQUFZejFELFFBRW5ELENBQ0EsT0FBT3kxRCxDQUFXLEVBSWQ1bEMsRUFBUThPLFVBQVUrc0IsR0FDeEIsSUFBSWdLLEVBQ0FDLEVBQXVCLEVBRTNCLE1BQU1DLHlCQUEyQkEsSUFBTTUzQixHQUNULE9BQXpCQSxFQUFPNjNCLG9CQUFtRGozRCxJQUF6Qm8vQixFQUFPNjNCLGVBQ3hDRixHQUF3QjMzQixFQUFPNjNCLGNBOEI5QkMsZUFBa0JuQixJQUNsQjMyQixHQUFtQyxPQUF6QkEsRUFBTzYzQixvQkFBbURqM0QsSUFBekJvL0IsRUFBTzYzQixnQkFHbkRELDhCQVhzQkcsQ0FBQ3BCLEtBQ3RCMzJCLEdBQVdBLEVBQU9ncUIsVUFBYWhxQixFQUFPZ3FCLFNBQVNob0QsUUFHM0NnK0IsRUFBT2dxQixTQUFTL2hELFNBQVMwdUQsSUFVN0JvQixDQUFtQnBCLElBR2YzMkIsRUFBTzYzQixjQUFnQkYsRUF0Q0RLLE1BQzlCLElBQUloNEIsSUFBV0EsRUFBT2dxQixTQUNwQixPQUFPLEVBRVQsSUFBSWlPLEVBQWEsRUFjakIsT0FiR2pCLEVBQ0RoM0IsRUFBT2dxQixTQUFTaCtDLFNBQVFwRyxHQUFPcXlELFFBQ2hCcjNELElBQWIwVyxFQUFJMVIsR0FDQSxFQUNBLElBR05vNkIsRUFBT2dxQixTQUFTaCtDLFNBQVFwRyxHQUFPcXlELFFBQ3lCcjNELElBQXREMFcsRUFBSXd5QyxJQUFjM2pCLE1BQUt2OUIsUUFBZ0JoSSxJQUFYZ0ksRUFBRWhELEtBQzFCLEVBQ0EsSUFHRG82QixFQUFPZ3FCLFNBQVNob0QsT0FBU2kyRCxDQUFVLEVBb0JZRCxHQUE2QixHQTRFckYsR0F4RUVOLEVBRENWLEVBQ3FCVSxDQUFDZixFQUFVdUIsT0FBWXQzRCxLQUMzQyxHQUFHby9CLEdBQVVuTyxFQUFNOGtDLEdBQVcsQ0FJNUIsR0FGQTlrQyxFQUFNOGtDLEdBQVVscUQsSUFBTW9sQixFQUFNOGtDLEdBQVVscUQsS0FBTyxDQUFDLEVBRTFDb2xCLEVBQU04a0MsR0FBVWxxRCxJQUFJUixVQUFXLENBQ2pDLE1BQU1rc0QsRUFBYzUwRCxNQUFNMkQsUUFBUTJxQixFQUFNOGtDLEdBQVVZLE1BQzlDMWxDLEVBQU04a0MsR0FBVVksS0FBSyxRQUNyQjMyRCxFQUNFdzNELEVBQWN2bUMsRUFBTThrQyxHQUFValEsUUFDOUIyUixFQUFjeG1DLEVBQU04a0MsR0FBVVYsUUFZcEMsWUFURS9wRCxFQUFNMmxCLEVBQU04a0MsR0FBVWxxRCxJQUFJN00sTUFBUSsyRCxRQURqQi8xRCxJQUFoQnczRCxFQUM2Q0EsT0FDdEJ4M0QsSUFBaEJ5M0QsRUFDc0NBLE9BQ3RCejNELElBQWhCdTNELEVBQ3NDQSxFQUVBakMsVUFBVXJrQyxFQUFNOGtDLElBSWxFLENBQ0E5a0MsRUFBTThrQyxHQUFVbHFELElBQUk3TSxLQUFPaXlCLEVBQU04a0MsR0FBVWxxRCxJQUFJN00sTUFBUSsyRCxDQUN6RCxNQUFXOWtDLEVBQU04a0MsS0FBc0MsSUFBekJoSixJQUU1Qjk3QixFQUFNOGtDLEdBQVksQ0FDaEJscUQsSUFBSyxDQUNIN00sS0FBTSsyRCxLQUtaLElBQUlyakMsRUFBSXdqQyx3QkFBd0I5MkIsR0FBVW5PLEVBQU04a0MsU0FBYS8xRCxFQUFXOHJCLEVBQVF3ckMsRUFBV2xCLEdBQ3ZGYyxlQUFlbkIsS0FJbkJnQixJQUNJcDBELE1BQU0yRCxRQUFRb3NCLEdBQ2hCaGMsRUFBSXd5QyxHQUFleHlDLEVBQUl3eUMsR0FBYTlxRCxPQUFPczBCLEdBRTNDaGMsRUFBSXd5QyxHQUFhL25ELEtBQUt1eEIsR0FDeEIsRUFHb0Jva0MsQ0FBQ2YsRUFBVXVCLEtBQy9CLEdBQUlKLGVBQWVuQixHQUFuQixDQUdBLEdBQUc5M0QsT0FBT0gsVUFBVW05QixlQUFlbDlCLEtBQUtxaEMsRUFBUSxrQkFDOUNBLEVBQU9zNEIsZUFDUHo1RCxPQUFPSCxVQUFVbTlCLGVBQWVsOUIsS0FBS3FoQyxFQUFPczRCLGNBQWUsWUFDM0R0NEIsRUFBT3M0QixjQUFjQyxTQUNyQjE1RCxPQUFPSCxVQUFVbTlCLGVBQWVsOUIsS0FBS3FoQyxFQUFRLFVBQzdDQSxFQUFPdXFCLE9BQ1B2cUIsRUFBT3M0QixjQUFjRSxlQUFpQjdCLEdBQ3RDLElBQUssSUFBSW4xQixLQUFReEIsRUFBT3M0QixjQUFjQyxRQUNwQyxJQUFpRSxJQUE3RHY0QixFQUFPdXFCLE1BQU03aUQsT0FBT3M0QixFQUFPczRCLGNBQWNDLFFBQVEvMkIsSUFBZSxDQUNsRWxxQixFQUFJcS9DLEdBQVluMUIsRUFDaEIsS0FDRixPQUdGbHFCLEVBQUlxL0MsR0FBWUcsd0JBQXdCamxDLEVBQU04a0MsR0FBV2pxQyxFQUFRd3JDLEVBQVdsQixHQUU5RVcsR0FqQkEsQ0FpQnNCLEVBS3ZCVixFQUFlLENBQ2hCLElBQUl3QixFQVVKLEdBUkVBLEVBQVN0QyxpQkFEWXYxRCxJQUFwQm0yRCxFQUNvQkEsT0FDRG4yRCxJQUFaOGxELEVBQ2FBLEVBRUExbUIsRUFBT2kyQixVQUkxQmUsRUFBWSxDQUVkLEdBQXFCLGlCQUFYeUIsR0FBZ0MsV0FBVG4zRCxFQUMvQixNQUFPLEdBQUdtM0QsSUFHWixHQUFxQixpQkFBWEEsR0FBZ0MsV0FBVG4zRCxFQUMvQixPQUFPbTNELEVBR1QsSUFDRSxPQUFPMTBCLEtBQUtDLE1BQU15MEIsRUFDcEIsQ0FBRSxNQUFNdnVELEdBRU4sT0FBT3V1RCxDQUNULENBQ0YsQ0FRQSxHQUxJejRCLElBQ0YxK0IsRUFBT2lDLE1BQU0yRCxRQUFRdXhELEdBQVUsZUFBaUJBLEdBSXRDLFVBQVRuM0QsRUFBa0IsQ0FDbkIsSUFBS2lDLE1BQU0yRCxRQUFRdXhELEdBQVMsQ0FDMUIsR0FBcUIsaUJBQVhBLEVBQ1IsT0FBT0EsRUFFVEEsRUFBUyxDQUFDQSxFQUNaLENBQ0EsTUFBTUMsRUFBYTE0QixFQUNmQSxFQUFPNHVCLFdBQ1BodUQsRUFDRDgzRCxJQUNEQSxFQUFXanNELElBQU1pc0QsRUFBV2pzRCxLQUFPQSxHQUFPLENBQUMsRUFDM0Npc0QsRUFBV2pzRCxJQUFJN00sS0FBTzg0RCxFQUFXanNELElBQUk3TSxNQUFRNk0sRUFBSTdNLE1BRW5ELElBQUkrNEQsRUFBY0YsRUFDZnR4RCxLQUFJd3JCLEdBQUtta0Msd0JBQXdCNEIsRUFBWWhzQyxFQUFRaUcsRUFBR3FrQyxLQVczRCxPQVZBMkIsRUFBY25CLGtCQUFrQm1CLEdBQzdCbHNELEVBQUkxSixTQUNMdVUsRUFBSXd5QyxHQUFlNk8sR0FDZDV3QixFQUFBQSxHQUFBQSxTQUFRNzdCLElBQ1hvTCxFQUFJd3lDLEdBQWEvbkQsS0FBSyxDQUFDbUssTUFBT0EsS0FJaENvTCxFQUFNcWhELEVBRURyaEQsQ0FDVCxDQUdBLEdBQVksV0FBVGhXLEVBQW1CLENBRXBCLEdBQXFCLGlCQUFYbTNELEVBQ1IsT0FBT0EsRUFFVCxJQUFLLElBQUk5QixLQUFZOEIsRUFDZDU1RCxPQUFPSCxVQUFVbTlCLGVBQWVsOUIsS0FBSzg1RCxFQUFROUIsS0FHOUMzMkIsR0FBVW5PLEVBQU04a0MsSUFBYTlrQyxFQUFNOGtDLEdBQVVDLFdBQWFyUCxHQUcxRHZuQixHQUFVbk8sRUFBTThrQyxJQUFhOWtDLEVBQU04a0MsR0FBVUUsWUFBY3ZQLElBRzNEdG5CLEdBQVVuTyxFQUFNOGtDLElBQWE5a0MsRUFBTThrQyxHQUFVbHFELEtBQU9vbEIsRUFBTThrQyxHQUFVbHFELElBQUlSLFVBQzFFQyxFQUFNMmxCLEVBQU04a0MsR0FBVWxxRCxJQUFJN00sTUFBUSsyRCxHQUFZOEIsRUFBTzlCLEdBR3ZEZSxFQUFvQmYsRUFBVThCLEVBQU85QixNQU12QyxPQUpLNXVCLEVBQUFBLEdBQUFBLFNBQVE3N0IsSUFDWG9MLEVBQUl3eUMsR0FBYS9uRCxLQUFLLENBQUNtSyxNQUFPQSxJQUd6Qm9MLENBQ1QsQ0FHQSxPQURBQSxFQUFJd3lDLElBQWdCL2hCLEVBQUFBLEdBQUFBLFNBQVE3N0IsR0FBb0N1c0QsRUFBM0IsQ0FBQyxDQUFDdnNELE1BQU9BLEdBQVF1c0QsR0FDL0NuaEQsQ0FDVCxDQUlBLEdBQVksV0FBVGhXLEVBQW1CLENBQ3BCLElBQUssSUFBSXExRCxLQUFZOWtDLEVBQ2RoekIsT0FBT0gsVUFBVW05QixlQUFlbDlCLEtBQUtrekIsRUFBTzhrQyxLQUc1QzlrQyxFQUFNOGtDLElBQWE5a0MsRUFBTThrQyxHQUFVN3BDLFlBR25DK0UsRUFBTThrQyxJQUFhOWtDLEVBQU04a0MsR0FBVUMsV0FBYXJQLEdBR2hEMTFCLEVBQU04a0MsSUFBYTlrQyxFQUFNOGtDLEdBQVVFLFlBQWN2UCxHQUd0RG9RLEVBQW9CZixJQU10QixHQUpJSyxHQUFjOXFELEdBQ2hCb0wsRUFBSXd5QyxHQUFhL25ELEtBQUssQ0FBQ21LLE1BQU9BLElBRzdCMHJELDJCQUNELE9BQU90Z0QsRUFHVCxJQUE4QixJQUF6QnEyQyxFQUNBcUosRUFDRDEvQyxFQUFJd3lDLEdBQWEvbkQsS0FBSyxDQUFDNjJELGVBQWdCLHlCQUV2Q3RoRCxFQUFJdWhELGdCQUFrQixDQUFDLEVBRXpCbEIsU0FDSyxHQUFLaEssRUFBdUIsQ0FDakMsTUFBTW1MLEVBQWtCbjRCLFVBQVVndEIsR0FDNUJvTCxFQUF1QmpDLHdCQUF3QmdDLEVBQWlCcHNDLE9BQVE5ckIsRUFBV28yRCxHQUV6RixHQUFHQSxHQUFjOEIsRUFBZ0Jyc0QsS0FBT3FzRCxFQUFnQnJzRCxJQUFJN00sTUFBcUMsY0FBN0JrNUQsRUFBZ0Jyc0QsSUFBSTdNLEtBRXRGMFgsRUFBSXd5QyxHQUFhL25ELEtBQUtnM0QsT0FDakIsQ0FDTCxNQUFNQyxFQUEyQyxPQUF6Qmg1QixFQUFPaTVCLG9CQUFtRHI0RCxJQUF6Qm8vQixFQUFPaTVCLGVBQStCdEIsRUFBdUIzM0IsRUFBT2k1QixjQUN6SGo1QixFQUFPaTVCLGNBQWdCdEIsRUFDdkIsRUFDSixJQUFLLElBQUluMEQsRUFBSSxFQUFHQSxHQUFLdzFELEVBQWlCeDFELElBQUssQ0FDekMsR0FBR28wRCwyQkFDRCxPQUFPdGdELEVBRVQsR0FBRzAvQyxFQUFZLENBQ2IsTUFBTWtDLEVBQU8sQ0FBQyxFQUNkQSxFQUFLLGlCQUFtQjExRCxHQUFLdTFELEVBQWdDLFVBQzdEemhELEVBQUl3eUMsR0FBYS9uRCxLQUFLbTNELEVBQ3hCLE1BQ0U1aEQsRUFBSSxpQkFBbUI5VCxHQUFLdTFELEVBRTlCcEIsR0FDRixDQUNGLENBQ0YsQ0FDQSxPQUFPcmdELENBQ1QsQ0FFQSxHQUFZLFVBQVRoVyxFQUFrQixDQUNuQixJQUFLc3RELEVBQ0gsT0FHRixJQUFJNkksRUFNSixHQUxHVCxJQUNEcEksRUFBTW5pRCxJQUFNbWlELEVBQU1uaUQsS0FBT3V6QixHQUFRdnpCLEtBQU8sQ0FBQyxFQUN6Q21pRCxFQUFNbmlELElBQUk3TSxLQUFPZ3ZELEVBQU1uaUQsSUFBSTdNLE1BQVE2TSxFQUFJN00sTUFHdEMyRCxNQUFNMkQsUUFBUTBuRCxFQUFNTixPQUNyQm1KLEVBQWM3SSxFQUFNTixNQUFNbm5ELEtBQUkzRCxHQUFLc3pELHdCQUF3Qk4sZ0JBQWdCaHpELEVBQUdvckQsRUFBT2xpQyxHQUFTQSxPQUFROXJCLEVBQVdvMkQsVUFDNUcsR0FBR3p6RCxNQUFNMkQsUUFBUTBuRCxFQUFNN25ELE9BQzVCMHdELEVBQWM3SSxFQUFNN25ELE1BQU1JLEtBQUkzRCxHQUFLc3pELHdCQUF3Qk4sZ0JBQWdCaHpELEVBQUdvckQsRUFBT2xpQyxHQUFTQSxPQUFROXJCLEVBQVdvMkQsU0FDNUcsT0FBSUEsR0FBY0EsR0FBY3ZxRCxFQUFJMUosU0FHekMsT0FBTyt6RCx3QkFBd0JsSSxFQUFPbGlDLE9BQVE5ckIsRUFBV28yRCxHQUZ6RFMsRUFBYyxDQUFDWCx3QkFBd0JsSSxFQUFPbGlDLE9BQVE5ckIsRUFBV28yRCxHQUduRSxDQUVBLE9BREFTLEVBQWNELGtCQUFrQkMsR0FDN0JULEdBQWN2cUQsRUFBSTFKLFNBQ25CdVUsRUFBSXd5QyxHQUFlMk4sR0FDZDF2QixFQUFBQSxHQUFBQSxTQUFRNzdCLElBQ1hvTCxFQUFJd3lDLEdBQWEvbkQsS0FBSyxDQUFDbUssTUFBT0EsSUFFekJvTCxHQUVGbWdELENBQ1QsQ0FFQSxJQUFJcjRELEVBQ0osR0FBSTRnQyxHQUFVejhCLE1BQU0yRCxRQUFRODRCLEVBQU91M0IsTUFFakNuNEQsRUFBUXNpQyxlQUFlMUIsRUFBT3UzQixNQUFNLE9BQy9CLEtBQUd2M0IsRUErQlIsT0E1QkEsR0FEQTVnQyxFQUFRODJELFVBQVVsMkIsR0FDRSxpQkFBVjVnQyxFQUFvQixDQUM1QixJQUFJaVksRUFBTTJvQixFQUFPNkMsUUFDZHhyQixVQUNFMm9CLEVBQU9tNUIsa0JBQ1I5aEQsSUFFRmpZLEVBQVFpWSxHQUVWLElBQUk2QixFQUFNOG1CLEVBQU80QyxRQUNkMXBCLFVBQ0U4bUIsRUFBT281QixrQkFDUmxnRCxJQUVGOVosRUFBUThaLEVBRVosQ0FDQSxHQUFvQixpQkFBVjlaLElBQ2lCLE9BQXJCNGdDLEVBQU84QyxnQkFBMkNsaUMsSUFBckJvL0IsRUFBTzhDLFlBQ3RDMWpDLEVBQVFBLEVBQU1nQixNQUFNLEVBQUc0L0IsRUFBTzhDLFlBRVAsT0FBckI5QyxFQUFPK0MsZ0JBQTJDbmlDLElBQXJCby9CLEVBQU8rQyxXQUF5QixDQUMvRCxJQUFJdi9CLEVBQUksRUFDUixLQUFPcEUsRUFBTTRDLE9BQVNnK0IsRUFBTytDLFdBQzNCM2pDLEdBQVNBLEVBQU1vRSxJQUFNcEUsRUFBTTRDLE9BRS9CLENBSUosQ0FDQSxHQUFhLFNBQVRWLEVBSUosT0FBRzAxRCxHQUNEMS9DLEVBQUl3eUMsSUFBZ0IvaEIsRUFBQUEsR0FBQUEsU0FBUTc3QixHQUFtQzlNLEVBQTFCLENBQUMsQ0FBQzhNLE1BQU9BLEdBQVE5TSxHQUMvQ2tZLEdBR0ZsWSxDQUFLLEVBR0RpNkQsWUFBZXB5RCxJQUN2QkEsRUFBTSs0QixTQUNQLzRCLEVBQVFBLEVBQU0rNEIsUUFFYi80QixFQUFNeW1ELGFBQ1B6bUQsRUFBTTNGLEtBQU8sVUFHUjJGLEdBR0lxeUQsaUJBQW1CQSxDQUFDdDVCLEVBQVF0VCxFQUFRZ1AsS0FDL0MsTUFBTTY5QixFQUFPekMsd0JBQXdCOTJCLEVBQVF0VCxFQUFRZ1AsR0FBRyxHQUN4RCxHQUFLNjlCLEVBQ0wsTUFBbUIsaUJBQVRBLEVBQ0RBLEVBRUZDLEtBQUlELEVBQU0sQ0FBRS9yRCxhQUFhLEVBQU12QyxPQUFRLE1BQU8sRUFJMUN3dUQsaUJBQW1CQSxDQUFDejVCLEVBQVF0VCxFQUFRZ1AsSUFDL0NvN0Isd0JBQXdCOTJCLEVBQVF0VCxFQUFRZ1AsR0FBRyxHQUV2Q3Y3QixTQUFXQSxDQUFDbUcsRUFBTUMsRUFBTUMsSUFBUyxDQUFDRixFQUFNeTlCLEtBQUtrRCxVQUFVMWdDLEdBQU93OUIsS0FBS2tELFVBQVV6Z0MsSUFFdEVrekQsR0FBMkI5RSxlQUFTMEUsaUJBQWtCbjVELFVBRXREdzVELEdBQTJCL0UsZUFBUzZFLGlCQUFrQnQ1RCxVQUV0RDZ2RCxvQkFBdUJod0IsR0FBV1MsY0FBY1QsSUFBUzErQixNQUFRLFNDdG9CeEVzNEQsR0FBNkIsQ0FDakMsQ0FDRUMsS0FBTSxPQUNOQyxxQkFBc0IsQ0FBQyxZQUdyQkMsR0FBd0IsQ0FBQyxVQW9CL0IsMkJBbEJHNTNCLEdBQWMsQ0FBQ25DLEVBQVF0VCxFQUFRc3RDLEVBQWFqRCxLQUMzQyxNQUFNLEdBQUV6MkMsR0FBTzZoQixJQUNUN3FCLEVBQU1nSixFQUFHcTVDLHlCQUF5QjM1QixFQUFRdFQsRUFBUXFxQyxHQUNsRGtELFNBQWlCM2lELEVBRWpCNGlELEVBQW1CTixHQUEyQjlsQyxRQUNsRCxDQUFDb25CLEVBQU9pZixJQUNOQSxFQUFXTixLQUFLdjFCLEtBQUswMUIsR0FDakIsSUFBSTllLEtBQVVpZixFQUFXTCxzQkFDekI1ZSxHQUNONmUsSUFHRixPQUFPbDJCLEVBQUFBLEdBQUFBLFNBQUtxMkIsR0FBbUJ0eEQsR0FBTUEsSUFBTXF4RCxJQUN2Q2wyQixLQUFLa0QsVUFBVTN2QixFQUFLLEtBQU0sR0FDMUJBLENBQUcsRUNLWCwyQkEzQkc2cUIsR0FBYyxDQUFDbkMsRUFBUXRULEVBQVFzdEMsRUFBYWpELEtBQzNDLE1BQU0sR0FBRXoyQyxHQUFPNmhCLElBQ1RpNEIsRUFBYzk1QyxFQUFHKzVDLG9CQUNyQnI2QixFQUNBdFQsRUFDQXN0QyxFQUNBakQsR0FFRixJQUFJdUQsRUFDSixJQUNFQSxFQUFhampCLEdBQUFBLFFBQUFBLEtBQ1hBLEdBQUFBLFFBQUFBLEtBQVUraUIsR0FDVixDQUNFRyxXQUFZLEdBRWQsQ0FBRXY2QixPQUFRc1csR0FBQUEsY0FFOEIsT0FBdENna0IsRUFBV0EsRUFBV3Q0RCxPQUFTLEtBQ2pDczRELEVBQWFBLEVBQVdsNkQsTUFBTSxFQUFHazZELEVBQVd0NEQsT0FBUyxHQUV6RCxDQUFFLE1BQU9rSSxHQUVQLE9BREExSCxRQUFRa0MsTUFBTXdGLEdBQ1Asd0NBQ1QsQ0FDQSxPQUFPb3dELEVBQVd6eUQsUUFBUSxNQUFPLEtBQUssRUNBMUMsMEJBMUJHczZCLEdBQWMsQ0FBQ25DLEVBQVF0VCxFQUFRcXFDLEtBQzlCLE1BQU0sR0FBRXoyQyxHQUFPNmhCLElBS2YsR0FISW5DLElBQVdBLEVBQU92ekIsTUFDcEJ1ekIsRUFBT3Z6QixJQUFNLENBQUMsR0FFWnV6QixJQUFXQSxFQUFPdnpCLElBQUk3TSxLQUFNLENBQzlCLElBQ0dvZ0MsRUFBT3VxQixRQUNQdnFCLEVBQU8xK0IsTUFDTjArQixFQUFPNHVCLE9BQ1A1dUIsRUFBTzB0QixZQUNQMXRCLEVBQU8ydEIsc0JBR1QsTUFBTyx5SEFFVCxHQUFJM3RCLEVBQU91cUIsTUFBTyxDQUNoQixJQUFJMkIsRUFBUWxzQixFQUFPdXFCLE1BQU0yQixNQUFNLGVBQy9CbHNCLEVBQU92ekIsSUFBSTdNLEtBQU9zc0QsRUFBTSxFQUMxQixDQUNGLENBRUEsT0FBTzVyQyxFQUFHbzVDLHlCQUF5QjE1QixFQUFRdFQsRUFBUXFxQyxFQUFnQixFQ0V2RSxzQkF6Qkc1MEIsR0FDRCxDQUFDbkMsRUFBUWc2QixFQUFjLEdBQUl0dEMsRUFBUyxDQUFDLEVBQUdxcUMsT0FBa0JuMkQsS0FDeEQsTUFBTSxHQUFFMGYsR0FBTzZoQixJQVNmLE1BUDRCLG1CQUFqQm5DLEdBQVFVLE9BQ2pCVixFQUFTQSxFQUFPVSxRQUVtQixtQkFBMUJxMkIsR0FBaUJyMkIsT0FDMUJxMkIsRUFBa0JBLEVBQWdCcjJCLFFBR2hDLE1BQU00RCxLQUFLMDFCLEdBQ04xNUMsRUFBR2s2QyxtQkFBbUJ4NkIsRUFBUXRULEVBQVFxcUMsR0FFM0MsYUFBYXp5QixLQUFLMDFCLEdBQ2IxNUMsRUFBR202QyxvQkFDUno2QixFQUNBdFQsRUFDQXN0QyxFQUNBakQsR0FHR3oyQyxFQUFHKzVDLG9CQUFvQnI2QixFQUFRdFQsRUFBUXN0QyxFQUFhakQsRUFBZ0IsRUM2Qi9FLDBCQXJDaUMyRCxFQUFHdjRCLGdCQUNsQyxNQUFNazRCLEVBQXNCTSx1QkFBd0J4NEIsR0FDOUNzNEIsRUFBc0JHLHVCQUF3Qno0QixHQUM5Q3E0QixFQUFxQkssc0JBQXVCMTRCLEdBQzVDc3ZCLEVBQWtCcUosa0JBQW9CMzRCLEdBRTVDLE1BQU8sQ0FDTDdoQixHQUFJLENBQ0Z5NkMsWUFBYSxDQUNYMUIsWUFDQUksaUJBQ0EzQyx3QkFDQXdDLGlCQUNBSyx5QkFBd0IsR0FDeEJELHlCQUF3QixHQUN4Qlcsc0JBQ0FJLHNCQUNBRCxxQkFDQS9JLGtCQUNBK0UsaUJBRUY2QyxZQUNBSSxpQkFDQTNDLHdCQUNBd0MsaUJBQ0FLLHlCQUF3QixHQUN4QkQseUJBQXdCLEdBQ3hCVyxzQkFDQUksc0JBQ0FELHFCQUNBL0ksa0JBQ0ErRSxnQkFDQXhHLHFCQUVILEVDaERDLEdBSkksU0FBU25uRCxHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsUUFBYSxXQUFhLE9BQU9veUQsRUFBOEQsT0FBRyxJQ0N6SSxNQUVNQyxHQUFvQixDQUN4QixNQUFPLE1BQU8sT0FBUSxTQUFVLFVBQVcsT0FBUSxRQUFTLFNBR3hEbjRELHFCQUFRQSxHQUNMQSxJQUFTbzZCLEVBQUFBLEdBQUFBLE9BR0w4ZSxJQUFZOUksRUFBQUEsR0FBQUEsZ0JBQ3ZCcHdDLHNCQUNBb3pDLEdBQVFBLEVBQUsveEMsSUFBSSxlQUdOK3JDLElBQU1nRCxFQUFBQSxHQUFBQSxnQkFDakJwd0Msc0JBQ0FvekMsR0FBUUEsRUFBSy94QyxJQUFJLFNBR04rMkQsSUFBVWhvQixFQUFBQSxHQUFBQSxnQkFDckJwd0Msc0JBQ0FvekMsR0FBUUEsRUFBSy94QyxJQUFJLFNBQVcsS0FHakJnM0QsSUFBYWpvQixFQUFBQSxHQUFBQSxnQkFDeEJwd0Msc0JBQ0FvekMsR0FBUUEsRUFBSy94QyxJQUFJLGVBQWlCLGVBR3ZCZ3lDLElBQVdqRCxFQUFBQSxHQUFBQSxnQkFDdEJwd0Msc0JBQ0FvekMsR0FBUUEsRUFBSy94QyxJQUFJLFFBQVErNEIsRUFBQUEsR0FBQUEsVUFHZGsrQixJQUFTbG9CLEVBQUFBLEdBQUFBLGdCQUNwQmlELElBQ0NELEdBQVNBLEVBQUt4VixTQUdKMjZCLElBQWVub0IsRUFBQUEsR0FBQUEsZ0JBQzFCcHdDLHNCQUNBb3pDLEdBQVFBLEVBQUsveEMsSUFBSSxZQUFZKzRCLEVBQUFBLEdBQUFBLFVBR2xCMnVCLG9CQUFzQkEsQ0FBQy9vRCxFQUFPdXhDLElBQ2xDdnhDLEVBQU1zOUIsTUFBTSxDQUFDLHNCQUF1QmlVLFFBQU96ekMsR0FHOUMwNkQsU0FBV0EsQ0FBQ0MsRUFBUUMsSUFDckJ0K0IsR0FBQUEsSUFBSTZDLE1BQU13N0IsSUFBV3IrQixHQUFBQSxJQUFJNkMsTUFBTXk3QixHQUM3QkEsRUFBT3IzRCxJQUFJLFNBR0xxM0QsR0FHRnIrQixFQUFBQSxHQUFBQSxjQUFhcytCLFVBQ2xCSCxTQUNBQyxFQUNBQyxHQUlHQSxFQUdJRSxJQUErQnhvQixFQUFBQSxHQUFBQSxnQkFDMUNwd0Msc0JBQ0FvekMsSUFBUS9ZLEVBQUFBLEdBQUFBLGNBQWFzK0IsVUFDbkJILFNBQ0FwbEIsRUFBSy94QyxJQUFJLFFBQ1QreEMsRUFBSy94QyxJQUFJLHVCQUtBK3hDLEtBQU9wekMsR0FDUnF6QyxHQUFTcnpDLEdBSVJnOUIsSUFBU29ULEVBQUFBLEdBQUFBLGdCQUtwQmdELE1BQ0QsS0FBTSxJQUdNc0osSUFBT3RNLEVBQUFBLEdBQUFBLGdCQUNsQmdELE1BQ0RBLEdBQVF5bEIsbUJBQW1CemxCLEdBQVFBLEVBQUsveEMsSUFBSSxXQUdoQ3kzRCxJQUFlMW9CLEVBQUFBLEdBQUFBLGdCQUMxQmdELE1BQ0RBLEdBQVF5bEIsbUJBQW1CemxCLEdBQVFBLEVBQUsveEMsSUFBSSxtQkFHaEN3SixJQUFVdWxDLEVBQUFBLEdBQUFBLGdCQUN0QnNNLElBQ0FBLEdBQVFBLEdBQVFBLEVBQUtyN0MsSUFBSSxhQUdiMDNELElBQVMzb0IsRUFBQUEsR0FBQUEsZ0JBQ3JCdmxDLElBQ0FBLEdBQVcsa0NBQWtDbXVELEtBQUtudUQsR0FBU3ZOLE1BQU0sS0FHckQyN0QsSUFBUTdvQixFQUFBQSxHQUFBQSxnQkFDcEJ3b0IsSUFDQXhsQixHQUFRQSxFQUFLL3hDLElBQUksV0FHTDYzRCxJQUF3QkMsRUFBQUEsR0FBQUEsU0FBUyxDQUFDLE1BQU8sTUFBTyxPQUFRLFNBQVUsVUFBVyxPQUFRLFVBRXJGQyxJQUFhaHBCLEVBQUFBLEdBQUFBLGdCQUN4QjZvQixJQUNBQSxJQUNFLElBQUk1MkQsR0FBTzgzQixFQUFBQSxHQUFBQSxRQUVYLE9BQUtDLEdBQUFBLElBQUk2QyxNQUFNZzhCLElBQVVBLEVBQU1oMEIsV0FJL0JnMEIsRUFBTS92RCxTQUFRLENBQUNxb0MsRUFBTThuQixLQUNuQixJQUFJOW5CLElBQVNBLEVBQUtyb0MsUUFDaEIsTUFBTyxDQUFDLEVBRVZxb0MsRUFBS3JvQyxTQUFRLENBQUNzb0MsRUFBV2h5QixLQUNwQjI0QyxHQUFrQjl5RCxRQUFRbWEsR0FBVSxJQUd2Q25kLEVBQU9BLEVBQUtwRCxNQUFLdTdCLEVBQUFBLEdBQUFBLFFBQU8sQ0FDdEIrVyxLQUFNOG5CLEVBQ043NUMsU0FDQWd5QixZQUNBMU0sR0FBSSxHQUFHdGxCLEtBQVU2NUMsT0FDaEIsR0FDSCxJQWpCS2gzRCxDQW9CRSxJQUlGaTNELElBQVdscEIsRUFBQUEsR0FBQUEsZ0JBQ3RCZ0QsTUFDQUEsSUFBUTdZLEVBQUFBLEdBQUFBLEtBQUk2WSxFQUFLL3hDLElBQUksZUFHVms0RCxJQUFXbnBCLEVBQUFBLEdBQUFBLGdCQUN0QmdELE1BQ0FBLElBQVE3WSxFQUFBQSxHQUFBQSxLQUFJNlksRUFBSy94QyxJQUFJLGVBR1Z1dUMsSUFBV1EsRUFBQUEsR0FBQUEsZ0JBQ3BCZ0QsTUFDQUEsR0FBUUEsRUFBSy94QyxJQUFJLFlBQVk4NEIsRUFBQUEsR0FBQUEsV0FHcEJxVyxJQUFzQkosRUFBQUEsR0FBQUEsZ0JBQy9CZ0QsTUFDQUEsR0FBUUEsRUFBSy94QyxJQUFJLHlCQUlSZ21ELGVBQWlCQSxDQUFFcm5ELEVBQU9sRCxLQUNyQyxNQUFNMDhELEVBQWN4NUQsRUFBTXM5QixNQUFNLENBQUMsbUJBQW9CLGNBQWV4Z0MsR0FBTyxNQUNyRTI4RCxFQUFnQno1RCxFQUFNczlCLE1BQU0sQ0FBQyxPQUFRLGNBQWV4Z0MsR0FBTyxNQUNqRSxPQUFPMDhELEdBQWVDLEdBQWlCLElBQUksRUFHaENscEIsSUFBY0gsRUFBQUEsR0FBQUEsZ0JBQ3pCZ0QsTUFDQUEsSUFDRSxNQUFNNStCLEVBQU00K0IsRUFBSy94QyxJQUFJLGVBQ3JCLE9BQU8rNEIsR0FBQUEsSUFBSTZDLE1BQU16b0IsR0FBT0EsR0FBTTRsQixFQUFBQSxHQUFBQSxNQUFLLElBSTFCcy9CLElBQVd0cEIsRUFBQUEsR0FBQUEsZ0JBQ3BCZ0QsTUFDQUEsR0FBUUEsRUFBSy94QyxJQUFJLGNBR1JzNEQsSUFBT3ZwQixFQUFBQSxHQUFBQSxnQkFDaEJnRCxNQUNBQSxHQUFRQSxFQUFLL3hDLElBQUksVUFHUitxRCxJQUFVaGMsRUFBQUEsR0FBQUEsZ0JBQ25CZ0QsTUFDQUEsR0FBUUEsRUFBSy94QyxJQUFJLFdBQVcrNEIsRUFBQUEsR0FBQUEsVUFHbkJ3L0IsSUFBOEJ4cEIsRUFBQUEsR0FBQUEsZ0JBQ3pDLENBQ0VncEIsR0FDQUUsR0FDQUMsS0FFRixDQUFDSCxFQUFZRSxFQUFVQyxJQUNkSCxFQUFXLzBELEtBQUt3MUQsR0FBT0EsRUFBSTM1QyxPQUFPLGFBQWE0NUMsR0FDaEQxL0IsR0FBQUEsSUFBSTZDLE1BQU02OEIsR0FDTEEsRUFBRzdwQixlQUFlNnBCLElBQ2pCQSxFQUFHejRELElBQUksYUFDWHk0RCxFQUFHNTVDLE9BQU8sWUFBWWxaLElBQUt1ekIsRUFBQUEsR0FBQUEsS0FBSXZ6QixHQUFHaWpDLE1BQU1xdkIsS0FFcENRLEVBQUd6NEQsSUFBSSxhQUNYeTRELEVBQUc1NUMsT0FBTyxZQUFZbFosSUFBS3V6QixFQUFBQSxHQUFBQSxLQUFJdnpCLEdBQUdpakMsTUFBTXN2QixLQUVuQ08sTUFJRjEvQixFQUFBQSxHQUFBQSxhQU9GMi9CLElBQU8zcEIsRUFBQUEsR0FBQUEsZ0JBQ2xCZ0QsTUFDQXFqQixJQUNFLE1BQU1zRCxFQUFPdEQsRUFBS3AxRCxJQUFJLFFBQVE4NEIsRUFBQUEsR0FBQUEsU0FDOUIsT0FBT0EsR0FBQUEsS0FBSzBHLE9BQU9rNUIsR0FBUUEsRUFBS3hyQyxRQUFPNG9CLEdBQU8vYyxHQUFBQSxJQUFJNkMsTUFBTWthLE1BQVFoZCxFQUFBQSxHQUFBQSxPQUFNLElBSTdENi9CLFdBQWFBLENBQUNoNkQsRUFBT20zQyxLQUNkNGlCLEdBQUsvNUQsS0FBVW02QixFQUFBQSxHQUFBQSxTQUNkNUwsT0FBTzZMLEdBQUFBLElBQUk2QyxPQUFPb0csTUFBSzdTLEdBQUtBLEVBQUVudkIsSUFBSSxVQUFZODFDLElBQUsvYyxFQUFBQSxHQUFBQSxRQUczRDYvQixJQUFxQjdwQixFQUFBQSxHQUFBQSxnQkFDaEN3cEIsR0FDQUcsSUFDQSxDQUFDWCxFQUFZVyxJQUNKWCxFQUFXcG9DLFFBQVEsQ0FBQ2twQyxFQUFXSixLQUNwQyxJQUFJQyxHQUFPeC9CLEVBQUFBLEdBQUFBLEtBQUl1L0IsRUFBR3g4QixNQUFNLENBQUMsWUFBWSxVQUNyQyxPQUFHeThCLEVBQUt4NkQsUUFBVSxFQUNUMjZELEVBQVVoNkMsT0FyUEwsV0FxUHlCaWEsRUFBQUEsR0FBQUEsU0FBUWdnQyxHQUFNQSxFQUFHbDdELEtBQUs2NkQsS0FDdERDLEVBQUsvb0MsUUFBUSxDQUFDeGMsRUFBSzJpQyxJQUFRM2lDLEVBQUkwTCxPQUFPaTNCLEdBQUtoZCxFQUFBQSxHQUFBQSxTQUFTZ2dDLEdBQU9BLEVBQUdsN0QsS0FBSzY2RCxNQUFNSSxFQUFXLEdBQzFGSCxFQUFLL29DLFFBQVEsQ0FBQ2twQyxFQUFXL2lCLElBQ25CK2lCLEVBQVU1NEQsSUFBSTYxQyxFQUFJOTFDLElBQUksU0FBUzg0QixFQUFBQSxHQUFBQSxXQUNwQ0UsRUFBQUEsR0FBQUEsa0JBSUs2aEIsMkJBQW9CbDhDLEdBQVUsRUFBR21uQyxpQkFDNUMsSUFBSSxXQUFFbkUsRUFBVSxpQkFBRUgsR0FBcUJzRSxJQUN2QyxPQUFPOHlCLEdBQW1CajZELEdBQ3ZCbzVDLFFBQ0MsQ0FBQzNtQyxFQUFLM1AsSUFBUUEsSUFDZCxDQUFDczNELEVBQU1DLEtBQ0wsSUFBSUMsRUFBZ0MsbUJBQWZ0M0IsRUFBNEJBLEVBQWFKLEdBQVFJLFdBQVlBLEdBQ2xGLE9BQVNzM0IsRUFBZ0JBLEVBQU9GLEVBQU1DLEdBQXBCLElBQXlCLElBRzlDaDJELEtBQUksQ0FBQ3cxRCxFQUFLMWlCLEtBQ1QsSUFBSW1qQixFQUFzQyxtQkFBckJ6M0IsRUFBa0NBLEVBQW1CRCxHQUFRQyxpQkFBa0JBLEdBQ2hHdTJCLEVBQWVrQixFQUFlVCxFQUFJVSxLQUFLRCxHQUFmVCxFQUU1QixPQUFPei9CLEVBQUFBLEdBQUFBLEtBQUksQ0FBRTQvQixXQUFZQSxXQUFXaDZELEVBQU9tM0MsR0FBTWlpQixXQUFZQSxHQUFhLEdBQzFFLEVBR09vQixJQUFZcHFCLEVBQUFBLEdBQUFBLGdCQUN2QnB3QyxzQkFDQUEsR0FBU0EsRUFBTXFCLElBQUssYUFBYSs0QixFQUFBQSxHQUFBQSxVQUd0QnFnQyxJQUFXcnFCLEVBQUFBLEdBQUFBLGdCQUNwQnB3QyxzQkFDQUEsR0FBU0EsRUFBTXFCLElBQUssWUFBWSs0QixFQUFBQSxHQUFBQSxVQUd2QnNnQyxJQUFrQnRxQixFQUFBQSxHQUFBQSxnQkFDM0Jwd0Msc0JBQ0FBLEdBQVNBLEVBQU1xQixJQUFLLG1CQUFtQis0QixFQUFBQSxHQUFBQSxVQUc5QnVnQyxZQUFjQSxDQUFDMzZELEVBQU91eEMsRUFBTS94QixJQUNoQ2c3QyxHQUFVeDZELEdBQU9zOUIsTUFBTSxDQUFDaVUsRUFBTS94QixHQUFTLE1BR25DbzdDLFdBQWFBLENBQUM1NkQsRUFBT3V4QyxFQUFNL3hCLElBQy9CaTdDLEdBQVN6NkQsR0FBT3M5QixNQUFNLENBQUNpVSxFQUFNL3hCLEdBQVMsTUFHbENxN0Msa0JBQW9CQSxDQUFDNzZELEVBQU91eEMsRUFBTS94QixJQUN0Q2s3QyxHQUFnQjE2RCxHQUFPczlCLE1BQU0sQ0FBQ2lVLEVBQU0veEIsR0FBUyxNQUd6Q3M3QyxpQkFBbUJBLEtBRXZCLEVBR0lDLDRCQUE4QkEsQ0FBQy82RCxFQUFPZzdELEVBQVkzMkIsS0FDN0QsTUFBTTQyQixFQUFXckMsR0FBNkI1NEQsR0FBT3M5QixNQUFNLENBQUMsV0FBWTA5QixFQUFZLGVBQWUzZ0MsRUFBQUEsR0FBQUEsZUFDN0Y2Z0MsRUFBYWw3RCxFQUFNczlCLE1BQU0sQ0FBQyxPQUFRLFdBQVkwOUIsRUFBWSxlQUFlM2dDLEVBQUFBLEdBQUFBLGVBVy9FLE9BVHFCNGdDLEVBQVM1MkQsS0FBSzgyRCxJQUNqQyxNQUFNQyxFQUFrQkYsRUFBVzc1RCxJQUFJLEdBQUdnakMsRUFBTWhqQyxJQUFJLFNBQVNnakMsRUFBTWhqQyxJQUFJLFdBQ2pFZzZELEVBQWdCSCxFQUFXNzVELElBQUksR0FBR2dqQyxFQUFNaGpDLElBQUksU0FBU2dqQyxFQUFNaGpDLElBQUksZ0JBQWdCZ2pDLEVBQU1NLGNBQzNGLE9BQU90SyxFQUFBQSxHQUFBQSxjQUFhNFAsTUFDbEJreEIsRUFDQUMsRUFDQUMsRUFDRCxJQUVpQmg0QixNQUFLaTRCLEdBQVFBLEVBQUtqNkQsSUFBSSxRQUFVZ2pDLEVBQU1oakMsSUFBSSxPQUFTaTZELEVBQUtqNkQsSUFBSSxVQUFZZ2pDLEVBQU1oakMsSUFBSSxVQUFTZzVCLEVBQUFBLEdBQUFBLGNBQWEsRUFHakhraEMsNkJBQStCQSxDQUFDdjdELEVBQU9nN0QsRUFBWXgyQixFQUFXQyxLQUN6RSxNQUFNKzJCLEVBQVcsR0FBRy8yQixLQUFXRCxJQUMvQixPQUFPeGtDLEVBQU1zOUIsTUFBTSxDQUFDLE9BQVEsV0FBWTA5QixFQUFZLHVCQUF3QlEsSUFBVyxFQUFNLEVBSWxGQyxrQkFBb0JBLENBQUN6N0QsRUFBT2c3RCxFQUFZeDJCLEVBQVdDLEtBQzlELE1BQ00wMkIsRUFEV3ZDLEdBQTZCNTRELEdBQU9zOUIsTUFBTSxDQUFDLFdBQVkwOUIsRUFBWSxlQUFlM2dDLEVBQUFBLEdBQUFBLGVBQ3JFZ0osTUFBS2dCLEdBQVNBLEVBQU1oakMsSUFBSSxRQUFVb2pDLEdBQVdKLEVBQU1oakMsSUFBSSxVQUFZbWpDLElBQVduSyxFQUFBQSxHQUFBQSxlQUM1RyxPQUFPMGdDLDRCQUE0Qi82RCxFQUFPZzdELEVBQVlHLEVBQWEsRUFHeERPLGtCQUFvQkEsQ0FBQzE3RCxFQUFPdXhDLEVBQU0veEIsS0FDN0MsTUFBTXM2QyxFQUFLbEIsR0FBNkI1NEQsR0FBT3M5QixNQUFNLENBQUMsUUFBU2lVLEVBQU0veEIsSUFBUzZhLEVBQUFBLEdBQUFBLGVBQ3hFNjFCLEVBQU9sd0QsRUFBTXM5QixNQUFNLENBQUMsT0FBUSxRQUFTaVUsRUFBTS94QixJQUFTNmEsRUFBQUEsR0FBQUEsZUFFcERzaEMsRUFBZTdCLEVBQUd6NEQsSUFBSSxjQUFjODRCLEVBQUFBLEdBQUFBLFNBQVE5MUIsS0FBS2dnQyxHQUM5QzAyQiw0QkFBNEIvNkQsRUFBTyxDQUFDdXhDLEVBQU0veEIsR0FBUzZrQixLQUc1RCxPQUFPaEssRUFBQUEsR0FBQUEsY0FDSjRQLE1BQU02dkIsRUFBSTVKLEdBQ1Y1dUQsSUFBSSxhQUFjcTZELEVBQWEsRUFJN0IsU0FBU0MsYUFBYTU3RCxFQUFPZzdELEVBQVlsK0QsRUFBTSsrRCxHQUdwRCxPQUZBYixFQUFhQSxHQUFjLEdBQ2RoN0QsRUFBTXM5QixNQUFNLENBQUMsT0FBUSxXQUFZMDlCLEVBQVksZUFBZXhnQyxFQUFBQSxHQUFBQSxRQUFPLEtBQ2xFNkksTUFBT3oyQixHQUNad3RCLEdBQUFBLElBQUk2QyxNQUFNcndCLElBQU1BLEVBQUV2TCxJQUFJLFVBQVl2RSxHQUFROFAsRUFBRXZMLElBQUksUUFBVXc2RCxNQUM3RHpoQyxFQUFBQSxHQUFBQSxNQUNSLENBRU8sTUFBTTBoQyxJQUFVMXJCLEVBQUFBLEdBQUFBLGdCQUNyQmdELE1BQ0FBLElBQ0UsTUFBTXVtQixFQUFPdm1CLEVBQUsveEMsSUFBSSxRQUN0QixNQUF1QixpQkFBVHM0RCxHQUFxQkEsRUFBS3o2RCxPQUFTLEdBQWlCLE1BQVp5NkQsRUFBSyxFQUFVLElBS2xFLFNBQVNvQyxnQkFBZ0IvN0QsRUFBT2c3RCxFQUFZZ0IsR0FHakQsT0FGQWhCLEVBQWFBLEdBQWMsR0FDVFUsa0JBQWtCMTdELEtBQVVnN0QsR0FBWTM1RCxJQUFJLGNBQWM4NEIsRUFBQUEsR0FBQUEsU0FDekRuSixRQUFRLENBQUNwUSxFQUFNaFUsS0FDaEMsSUFBSXRRLEVBQVEwL0QsR0FBeUIsU0FBaEJwdkQsRUFBRXZMLElBQUksTUFBbUJ1TCxFQUFFdkwsSUFBSSxhQUFldUwsRUFBRXZMLElBQUksU0FJekUsT0FISTg0QixHQUFBQSxLQUFLMEcsT0FBT3ZrQyxLQUNkQSxFQUFRQSxFQUFNaXlCLFFBQU9oUCxHQUFXLEtBQU5BLEtBRXJCcUIsRUFBS3RmLElBQUk4aUMsa0JBQWtCeDNCLEVBQUcsQ0FBRTIzQixhQUFhLElBQVVqb0MsRUFBTSxJQUNuRWsrQixFQUFBQSxHQUFBQSxRQUFPLENBQUMsR0FDYixDQUdPLFNBQVN5aEMsb0JBQW9CQyxFQUFZQyxFQUFRLElBQ3RELEdBQUdoaUMsR0FBQUEsS0FBSzBHLE9BQU9xN0IsR0FDYixPQUFPQSxFQUFXbjdCLE1BQU1uMEIsR0FBS3d0QixHQUFBQSxJQUFJNkMsTUFBTXJ3QixJQUFNQSxFQUFFdkwsSUFBSSxRQUFVODZELEdBRWpFLENBR08sU0FBU0Msc0JBQXNCRixFQUFZRyxFQUFVLElBQzFELEdBQUdsaUMsR0FBQUEsS0FBSzBHLE9BQU9xN0IsR0FDYixPQUFPQSxFQUFXbjdCLE1BQU1uMEIsR0FBS3d0QixHQUFBQSxJQUFJNkMsTUFBTXJ3QixJQUFNQSxFQUFFdkwsSUFBSSxVQUFZZzdELEdBRW5FLENBR08sU0FBU0Msa0JBQWtCdDhELEVBQU9nN0QsR0FDdkNBLEVBQWFBLEdBQWMsR0FDM0IsSUFBSWxCLEVBQUtsQixHQUE2QjU0RCxHQUFPczlCLE1BQU0sQ0FBQyxXQUFZMDlCLElBQWF4Z0MsRUFBQUEsR0FBQUEsUUFBTyxDQUFDLElBQ2pGMDFCLEVBQU9sd0QsRUFBTXM5QixNQUFNLENBQUMsT0FBUSxXQUFZMDlCLElBQWF4Z0MsRUFBQUEsR0FBQUEsUUFBTyxDQUFDLElBQzdEK2hDLEVBQWdCQyxtQkFBbUJ4OEQsRUFBT2c3RCxHQUU5QyxNQUFNa0IsRUFBYXBDLEVBQUd6NEQsSUFBSSxlQUFpQixJQUFJODRCLEdBQUFBLEtBRXpDc2lDLEVBQ0p2TSxFQUFLN3VELElBQUksa0JBQW9CNnVELEVBQUs3dUQsSUFBSSxrQkFDbEMrNkQsc0JBQXNCRixFQUFZLFFBQVUsc0JBQzVDRSxzQkFBc0JGLEVBQVksWUFBYyx5Q0FDaERwK0QsRUFHTixPQUFPMDhCLEVBQUFBLEdBQUFBLFFBQU8sQ0FDWmlpQyxxQkFDQUMsb0JBQXFCSCxHQUV6QixDQUdPLFNBQVNDLG1CQUFtQng4RCxFQUFPZzdELEdBQ3hDQSxFQUFhQSxHQUFjLEdBRTNCLE1BQU14cEIsRUFBWW9uQixHQUE2QjU0RCxHQUFPczlCLE1BQU0sQ0FBRSxXQUFZMDlCLEdBQWEsTUFFdkYsR0FBaUIsT0FBZHhwQixFQUVELE9BR0YsTUFBTW1yQixFQUF1QjM4RCxFQUFNczlCLE1BQU0sQ0FBQyxPQUFRLFdBQVkwOUIsRUFBWSxrQkFBbUIsTUFDdkY0QixFQUF5QnByQixFQUFVbFUsTUFBTSxDQUFDLFdBQVksR0FBSSxNQUVoRSxPQUFPcS9CLEdBQXdCQyxHQUEwQixrQkFFM0QsQ0FHTyxTQUFTQyxtQkFBbUI3OEQsRUFBT2c3RCxHQUN4Q0EsRUFBYUEsR0FBYyxHQUUzQixNQUFNNW5CLEVBQU93bEIsR0FBNkI1NEQsR0FDcEN3eEMsRUFBWTRCLEVBQUs5VixNQUFNLENBQUUsV0FBWTA5QixHQUFhLE1BRXhELEdBQWlCLE9BQWR4cEIsRUFFRCxPQUdGLE1BQU9ELEdBQVF5cEIsRUFFVDhCLEVBQW9CdHJCLEVBQVVud0MsSUFBSSxXQUFZLE1BQzlDMDdELEVBQW1CM3BCLEVBQUs5VixNQUFNLENBQUMsUUFBU2lVLEVBQU0sWUFBYSxNQUMzRHlyQixFQUFpQjVwQixFQUFLOVYsTUFBTSxDQUFDLFlBQWEsTUFFaEQsT0FBT3cvQixHQUFxQkMsR0FBb0JDLENBQ2xELENBR08sU0FBU0MsbUJBQW1CajlELEVBQU9nN0QsR0FDeENBLEVBQWFBLEdBQWMsR0FFM0IsTUFBTTVuQixFQUFPd2xCLEdBQTZCNTRELEdBQ3BDd3hDLEVBQVk0QixFQUFLOVYsTUFBTSxDQUFDLFdBQVkwOUIsR0FBYSxNQUV2RCxHQUFrQixPQUFkeHBCLEVBRUYsT0FHRixNQUFPRCxHQUFReXBCLEVBRVRrQyxFQUFvQjFyQixFQUFVbndDLElBQUksV0FBWSxNQUM5Qzg3RCxFQUFtQi9wQixFQUFLOVYsTUFBTSxDQUFDLFFBQVNpVSxFQUFNLFlBQWEsTUFDM0Q2ckIsRUFBaUJocUIsRUFBSzlWLE1BQU0sQ0FBQyxZQUFhLE1BRWhELE9BQU80L0IsR0FBcUJDLEdBQW9CQyxDQUNsRCxDQUVPLE1BQU0xUSxnQkFBa0JBLENBQUUxc0QsRUFBT3V4QyxFQUFNL3hCLEtBQzVDLElBQ0k2OUMsRUFETXI5RCxFQUFNcUIsSUFBSSxPQUNFK25ELE1BQU0sMEJBQ3hCa1UsRUFBWTc4RCxNQUFNMkQsUUFBUWk1RCxHQUFlQSxFQUFZLEdBQUssS0FFOUQsT0FBT3I5RCxFQUFNczlCLE1BQU0sQ0FBQyxTQUFVaVUsRUFBTS94QixLQUFZeGYsRUFBTXM5QixNQUFNLENBQUMsU0FBVSxvQkFBc0JnZ0MsR0FBYSxFQUFFLEVBR2pHQyxpQkFBbUJBLENBQUV2OUQsRUFBT3V4QyxFQUFNL3hCLElBQ3RDLENBQUMsT0FBUSxTQUFTbmEsUUFBUXFuRCxnQkFBZ0Ixc0QsRUFBT3V4QyxFQUFNL3hCLEtBQVksRUFHL0RnK0MsaUJBQW1CQSxDQUFDeDlELEVBQU9nN0QsS0FDdENBLEVBQWFBLEdBQWMsR0FDM0IsTUFBTW4yQixFQUFjN2tDLEVBQU1zOUIsTUFBTSxDQUFDLE9BQVEsV0FBWTA5QixFQUFZLGVBQWV4Z0MsRUFBQUEsR0FBQUEsUUFBTyxLQUNqRndWLEVBQVMsR0FFZixHQUEyQixJQUF2Qm5MLEVBQVkzbEMsT0FBYyxPQUFPOHdDLEVBRXJDLE1BQU15dEIsbUJBQXFCQSxDQUFDNWhELEVBQVEwMUIsRUFBTyxNQUN6QyxNQUFNbXNCLHlCQUEyQkEsQ0FBQ3QyRCxFQUFHbXFDLEtBQ25DLE1BQU1vc0IsRUFBVyxJQUFJcHNCLEVBQU1ucUMsRUFBRS9GLElBQUksWUFBYytGLEVBQUUvRixJQUFJLFVBQ3JELE9BQU8rNEIsR0FBQUEsSUFBSTZDLE1BQU03MUIsRUFBRS9GLElBQUksVUFDbkJvOEQsbUJBQW1CcjJELEVBQUUvRixJQUFJLFNBQVVzOEQsR0FDbkMsQ0FBRS83RCxNQUFPd0YsRUFBRS9GLElBQUksU0FBVWt3QyxLQUFNb3NCLEVBQVUsRUFHL0MsT0FBT3hqQyxHQUFBQSxLQUFLMEcsT0FBT2hsQixHQUNoQkEsRUFBT3hYLEtBQUsrQyxHQUFPZ3pCLEdBQUFBLElBQUk2QyxNQUFNNzFCLEdBQUtzMkQseUJBQXlCdDJELEVBQUdtcUMsR0FBUSxDQUFFM3ZDLE1BQU93RixFQUFHbXFDLFVBQ2xGbXNCLHlCQUF5QjdoRCxFQUFRMDFCLEVBQUssRUF3QjNDLE9BVkExTSxFQUFZMzdCLFNBQVMsQ0FBQzBELEVBQUc5SixLQUN2QixNQUFNMGhDLEVBQVkxaEMsRUFBSW9hLE1BQU0sS0FBSzVmLE1BQU0sR0FBSSxHQUFHZ0gsS0FBSyxLQUM3Q3VYLEVBQVNqUCxFQUFFdkwsSUFBSSxVQUNyQixHQUFJd2EsR0FBVUEsRUFBT3RjLFFBQVMsQ0FDSmsrRCxtQkFBbUI1aEQsR0FDM0IzUyxTQUFRLEVBQUV0SCxRQUFPMnZDLFdBQy9CdkIsRUFBTy93QyxLQWpCTzIrRCxFQUFDaDhELEVBQU8ydkMsRUFBTS9NLElBUXpCLFFBQVFBLE1BUGYrTSxFQUFPQSxFQUFLdmdCLFFBQU8sQ0FBQzhYLEVBQUt3eUIsSUFDQSxpQkFBVEEsRUFDVixHQUFHeHlCLEtBQU93eUIsS0FDVnh5QixFQUNBLEdBQUdBLEtBQU93eUIsSUFDVkEsR0FDSCxLQUNnQyxhQUFhL3BCLEtBQVUsT0FBTzN2QyxLQVNqRGc4RCxDQUFZaDhELEVBQU8ydkMsRUFBTS9NLEdBQVcsR0FFcEQsS0FFS3dMLENBQU0sRUFHRjZ0QixzQkFBd0JBLENBQUM3OUQsRUFBT2c3RCxJQUNXLElBQS9Dd0MsaUJBQWlCeDlELEVBQU9nN0QsR0FBWTk3RCxPQUdoQzQrRCxzQ0FBd0NBLENBQUM5OUQsRUFBT2c3RCxLQUMzRCxJQUFJK0MsRUFBYyxDQUNoQkMsYUFBYSxFQUNidkIsbUJBQW9CLENBQUMsR0FFbkJ1QixFQUFjaCtELEVBQU1zOUIsTUFBTSxDQUFDLG1CQUFvQixXQUFZMDlCLEVBQVksZ0JBQWdCeGdDLEVBQUFBLEdBQUFBLFFBQU8sS0FDbEcsT0FBSXdqQyxFQUFZcndELEtBQU8sSUFHbkJxd0QsRUFBWTFnQyxNQUFNLENBQUMsZUFDckJ5Z0MsRUFBWUMsWUFBY0EsRUFBWTFnQyxNQUFNLENBQUMsY0FFL0MwZ0MsRUFBWTFnQyxNQUFNLENBQUMsWUFBWXFTLFdBQVd6bUMsU0FBU2d1RCxJQUNqRCxNQUFNcDBELEVBQU1vMEQsRUFBWSxHQUN4QixHQUFJQSxFQUFZLEdBQUc1NUIsTUFBTSxDQUFDLFNBQVUsYUFBYyxDQUNoRCxNQUFNN3FCLEVBQU15a0QsRUFBWSxHQUFHNTVCLE1BQU0sQ0FBQyxTQUFVLGFBQWFNLE9BQ3pEbWdDLEVBQVl0QixtQkFBbUIzNUQsR0FBTzJQLENBQ3hDLE1BVk9zckQsQ0FZUyxFQUdQRSxpQ0FBbUNBLENBQUVqK0QsRUFBT2c3RCxFQUFZa0QsRUFBa0JDLEtBQ3JGLElBQUlELEdBQW9CQyxJQUFvQkQsSUFBcUJDLEVBQy9ELE9BQU8sRUFFVCxJQUFJQyxFQUFxQnArRCxFQUFNczlCLE1BQU0sQ0FBQyxtQkFBb0IsV0FBWTA5QixFQUFZLGNBQWUsWUFBWXhnQyxFQUFBQSxHQUFBQSxRQUFPLEtBQ3BILEdBQUk0akMsRUFBbUJ6d0QsS0FBTyxJQUFNdXdELElBQXFCQyxFQUV2RCxPQUFPLEVBRVQsSUFBSUUsRUFBbUNELEVBQW1COWdDLE1BQU0sQ0FBQzRnQyxFQUFrQixTQUFVLGVBQWUxakMsRUFBQUEsR0FBQUEsUUFBTyxLQUMvRzhqQyxFQUFrQ0YsRUFBbUI5Z0MsTUFBTSxDQUFDNmdDLEVBQWlCLFNBQVUsZUFBZTNqQyxFQUFBQSxHQUFBQSxRQUFPLEtBQ2pILFFBQVM2akMsRUFBaUNub0QsT0FBT29vRCxFQUFnQyxFQUduRixTQUFTekYsbUJBQW1CNXZELEdBRTFCLE9BQU9teEIsR0FBQUEsSUFBSTZDLE1BQU1oMEIsR0FBT0EsRUFBTSxJQUFJbXhCLEdBQUFBLEdBQ3BDLENDOWpCQSxJQUlJLEdBSkksU0FBU3IwQixHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsUUFBYSxXQUFhLE9BQU95NEQsRUFBOEQsT0FBRyxJQ0FySSxHQUpJLFNBQVN4NEQsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLFFBQWEsV0FBYSxPQUFPMDRELEVBQThELE9BQUcsSUNBckksR0FKSSxTQUFTejRELEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxRQUFhLFdBQWEsT0FBTzI0RCxFQUF5RCxPQUFHLElDQWhJLEdBSkksU0FBUzE0RCxHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsUUFBYSxXQUFhLE9BQU80NEQsRUFBa0UsT0FBRyxJQ1V0SSxNQUFNQyxHQUFjLG1CQUNkQyxHQUFhLGtCQUNiQyxHQUFjLG1CQUNkQyxHQUFlLG9CQUNmQyxHQUErQixvQ0FDL0JDLEdBQWtCLHNCQUNsQkMsR0FBZSxvQkFDZkMsR0FBYyxtQkFDZEMsR0FBc0IsMkJBQ3RCQyxHQUFjLG1CQUNkQyxHQUFpQixzQkFDakJDLEdBQWdCLHFCQUNoQkMsR0FBd0IsNEJBQ3hCQyxHQUE4QixtQ0FDOUJDLEdBQWtCLHVCQUNsQkMsR0FBMEIsK0JBQzFCQyxHQUFhLGFBRXBCQyxNQUFTajdELElBQVFrN0QsRUFBQUEsR0FBQUEsU0FBU2w3RCxHQUFPQSxFQUFNLEdBRXRDLFNBQVNpNEMsV0FBV3hKLEdBQ3pCLE1BQU0wc0IsRUFBYUYsTUFBTXhzQixHQUFPcnVDLFFBQVEsTUFBTyxNQUMvQyxHQUFtQixpQkFBVHF1QyxFQUNSLE1BQU8sQ0FDTDUwQyxLQUFNbWdFLEdBQ05yakMsUUFBU3drQyxFQUdmLENBRU8sU0FBU0MsZUFBZTNzQixHQUM3QixNQUFPLENBQ0w1MEMsS0FBTWloRSxHQUNObmtDLFFBQVM4WCxFQUViLENBRU8sU0FBU2dCLFVBQVVoSCxHQUN4QixNQUFPLENBQUM1dUMsS0FBTW9nRSxHQUFZdGpDLFFBQVM4UixFQUNyQyxDQUVPLFNBQVN5UCxlQUFlNFosR0FDN0IsTUFBTyxDQUFDajRELEtBQU1xZ0UsR0FBYXZqQyxRQUFTbTdCLEVBQ3RDLENBRU8sTUFBTXVKLFlBQWVyN0QsR0FBUSxFQUFFcXZDLGNBQWFsRyxnQkFBZXBDLGlCQUNoRSxJQUFJLFFBQUUwc0IsR0FBWXRxQixFQUVkMm9CLEVBQU8sS0FDWCxJQUNFOXhELEVBQU1BLEdBQU95ekQsSUFDYjFzQixFQUFXem5CLE1BQU0sQ0FBRXRGLE9BQVEsV0FDM0I4M0MsRUFBT2xpQixHQUFBQSxRQUFBQSxLQUFVNXZDLEVBQUssQ0FBRXU0QixPQUFRc1csR0FBQUEsYUFDbEMsQ0FBRSxNQUFNcHNDLEdBR04sT0FEQTFILFFBQVFrQyxNQUFNd0YsR0FDUHNrQyxFQUFXbFEsV0FBVyxDQUMzQjdjLE9BQVEsU0FDUnF0QixNQUFPLFFBQ1BscUMsUUFBU3NGLEVBQUU2NEQsT0FDWGpuQixLQUFNNXhDLEVBQUU4NEQsTUFBUTk0RCxFQUFFODRELEtBQUtsbkIsS0FBTzV4QyxFQUFFODRELEtBQUtsbkIsS0FBTyxPQUFJbDdDLEdBRXBELENBQ0EsT0FBRzI0RCxHQUF3QixpQkFBVEEsRUFDVHppQixFQUFZNkksZUFBZTRaLEdBRTdCemlCLEVBQVk2SSxlQUFlLENBQUMsRUFBRSxFQUd2QyxJQUFJc2pCLElBQXVDLEVBRXBDLE1BQU1DLFlBQWNBLENBQUMzSixFQUFNcnBCLElBQVEsRUFBRTRHLGNBQWFsRyxnQkFBZXBDLGFBQVlsdUIsSUFBTWd4QixRQUFPeHhDLFVBQVNxakUsTUFBTSxDQUFDLEdBQUtsNUIsaUJBQ2hIZzVCLEtBQ0Z6Z0UsUUFBUUMsS0FBSywwSEFDYndnRSxJQUF1QyxHQUd6QyxNQUFNLG1CQUNKRyxFQUFrQixlQUNsQkMsRUFBYyxtQkFDZDl4QixFQUFrQixvQkFDbEJDLEdBQ0V2SCxTQUVnQixJQUFWc3ZCLElBQ1JBLEVBQU8zb0IsRUFBY3VGLGlCQUVKLElBQVRqRyxJQUNSQSxFQUFNVSxFQUFjVixPQUd0QixJQUFJb3pCLEVBQXVCSCxFQUFJRyxxQkFBdUJILEVBQUlHLHFCQUF1QixLQUFlLEVBRTVGcEksRUFBVXRxQixFQUFjc3FCLFVBRTVCLE9BQU9wN0QsRUFBUSxDQUNid3hDLFFBQ0E0RSxLQUFNcWpCLEVBQ05nSyxRQUFTbmhFLE9BQU8sSUFBSW1xRCxJQUFJcmMsRUFBSzBFLFNBQVM0dUIsVUFDdENKLHFCQUNBQyxpQkFDQTl4QixxQkFDQUMsd0JBQ0M1VyxNQUFNLEVBQUVzYixPQUFNdjNCLGFBSWYsR0FIQTZ2QixFQUFXem5CLE1BQU0sQ0FDZnpsQixLQUFNLFdBRUxpQyxNQUFNMkQsUUFBUXlYLElBQVdBLEVBQU8zYyxPQUFTLEVBQUcsQ0FDN0MsSUFBSXloRSxFQUFpQjlrRCxFQUNsQnhYLEtBQUlsSCxJQUNIdUMsUUFBUWtDLE1BQU16RSxHQUNkQSxFQUFJNjdDLEtBQU83N0MsRUFBSXFvRCxTQUFXZ2IsRUFBcUJwSSxFQUFTajdELEVBQUlxb0QsVUFBWSxLQUN4RXJvRCxFQUFJbzBDLEtBQU9wMEMsRUFBSXFvRCxTQUFXcm9ELEVBQUlxb0QsU0FBU2xoRCxLQUFLLEtBQU8sS0FDbkRuSCxFQUFJNnVDLE1BQVEsUUFDWjd1QyxFQUFJcUIsS0FBTyxTQUNYckIsRUFBSXdoQixPQUFTLFdBQ2I1aUIsT0FBT29GLGVBQWVoRSxFQUFLLFVBQVcsQ0FBRWlFLFlBQVksRUFBTTlFLE1BQU9hLEVBQUkyRSxVQUM5RDNFLEtBRVh1dUMsRUFBV25RLGtCQUFrQm9sQyxFQUMvQixDQUVBLE9BQU8zc0IsRUFBWStyQixlQUFlM3NCLEVBQUssR0FDdkMsRUFHSixJQUFJd3RCLEdBQWUsR0FFbkIsTUFBTUMsSUFBcUJDLEVBQUFBLEdBQUFBLFVBQVMsS0FDbEMsTUFBTUMsRUFBMkJILEdBQWE1dkMsUUFBTyxDQUFDOFgsR0FBT3lJLE9BQU1sTSxhQUM1RHlELEVBQUkzSCxJQUFJa0UsSUFBU3lELEVBQUl4bkMsSUFBSStqQyxFQUFRLElBQ3RDeUQsRUFBSXpuQyxJQUFJZ2tDLEdBQVFwbUMsS0FBS3N5QyxHQUNkekksSUFDTixJQUFJMU8sS0FFUHdtQyxHQUFlLEdBRWZHLEVBQXlCNzNELFNBQVE4M0QsTUFBT0MsRUFBb0I1N0IsS0FDMUQsSUFBSUEsRUFFRixZQURBM2xDLFFBQVFrQyxNQUFNLG9FQUdoQixJQUFJeWpDLEVBQU83bkIsR0FBRzBqRCxlQUVaLFlBREF4aEUsUUFBUWtDLE1BQU0sbUZBR2hCLE1BQU0sV0FDSjhwQyxFQUFVLGFBQ1Z5MUIsRUFDQTNqRCxJQUFJLGVBQ0YwakQsRUFBYyxNQUNkMXlCLEVBQUssSUFDTDZ4QixFQUFNLENBQUMsR0FDUixjQUNEdnlCLEVBQWEsWUFDYmtHLEdBQ0UzTyxFQUNFbTdCLEVBQXVCSCxFQUFJRyx1QkFBd0JySCxFQUFBQSxHQUFBQSxjQUFTcjdELEdBQzVEczZELEVBQVV0cUIsRUFBY3NxQixXQUN4QixtQkFDSmtJLEVBQWtCLGVBQ2xCQyxFQUFjLG1CQUNkOXhCLEVBQWtCLG9CQUNsQkMsR0FDRXJKLEVBQU84QixhQUVYLElBQ0UsTUFBTWk2QixRQUFvQkgsRUFBbUJqd0MsUUFBT2d3QyxNQUFPSyxFQUFNOXZCLEtBQy9ELElBQUksVUFBRSt2QixFQUFTLHdCQUFFQyxTQUFrQ0YsRUFDbkQsTUFBTSxPQUFFeGxELEVBQU0sS0FBRXUzQixTQUFlOHRCLEVBQWVLLEVBQXlCaHdCLEVBQU0sQ0FDM0VrdkIsUUFBU25oRSxPQUFPLElBQUltcUQsSUFBSTNiLEVBQWNWLE1BQU8wRSxTQUFTNHVCLFVBQ3RESixxQkFDQUMsaUJBQ0E5eEIscUJBQ0FDLHdCQVlGLEdBVEd5eUIsRUFBYWxvQixZQUFZdHJDLE1BQzFCKzlCLEVBQVc5UCxTQUFReitCLEdBRVUsV0FBcEJBLEVBQUlrRSxJQUFJLFNBQ1ksYUFBdEJsRSxFQUFJa0UsSUFBSSxZQUNQbEUsRUFBSWtFLElBQUksYUFBYWk0QyxPQUFNLENBQUN4MkMsRUFBS3BDLElBQU1vQyxJQUFReXVDLEVBQUs3d0MsU0FBa0I1QyxJQUFaeXpDLEVBQUs3d0MsT0FJdEVELE1BQU0yRCxRQUFReVgsSUFBV0EsRUFBTzNjLE9BQVMsRUFBRyxDQUM3QyxJQUFJeWhFLEVBQWlCOWtELEVBQ2xCeFgsS0FBSWxILElBQ0hBLEVBQUk2N0MsS0FBTzc3QyxFQUFJcW9ELFNBQVdnYixFQUFxQnBJLEVBQVNqN0QsRUFBSXFvRCxVQUFZLEtBQ3hFcm9ELEVBQUlvMEMsS0FBT3AwQyxFQUFJcW9ELFNBQVdyb0QsRUFBSXFvRCxTQUFTbGhELEtBQUssS0FBTyxLQUNuRG5ILEVBQUk2dUMsTUFBUSxRQUNaN3VDLEVBQUlxQixLQUFPLFNBQ1hyQixFQUFJd2hCLE9BQVMsV0FDYjVpQixPQUFPb0YsZUFBZWhFLEVBQUssVUFBVyxDQUFFaUUsWUFBWSxFQUFNOUUsTUFBT2EsRUFBSTJFLFVBQzlEM0UsS0FFWHV1QyxFQUFXblEsa0JBQWtCb2xDLEVBQy9CLENBMkJBLE9BekJJdnRCLEdBQVF0RixFQUFjOVEsVUFBd0IsZUFBWnVVLEVBQUssSUFBbUMsb0JBQVpBLEVBQUssVUFFL0R4MEMsUUFBUW84QyxJQUFJcDlDLE9BQU95TSxPQUFPNHFDLEdBQzdCN2tCLFFBQVE2N0IsR0FBNEIsa0JBQWpCQSxHQUFRNXJELE9BQzNCNkYsS0FBSTI4RCxNQUFPUSxJQUNWLE1BQU1seUQsRUFBTSxDQUNWODlCLElBQUtvMEIsRUFBV0MsaUJBQ2hCaHpCLG1CQUFvQkEsRUFDcEJDLG9CQUFxQkEsR0FFdkIsSUFDRSxNQUFNbDZCLFFBQVlnNkIsRUFBTWwvQixHQUNwQmtGLGFBQWVuVixPQUFTbVYsRUFBSTAvQixRQUFVLElBQ3hDeDBDLFFBQVFrQyxNQUFNNFMsRUFBSXM2QixXQUFhLElBQU14L0IsRUFBSTg5QixLQUV6Q28wQixFQUFXRSxrQkFBb0J6Z0MsS0FBS0MsTUFBTTFzQixFQUFJNUksS0FFbEQsQ0FBRSxNQUFPeEUsR0FDUDFILFFBQVFrQyxNQUFNd0YsRUFDaEIsT0FHTjlGLEVBQUFBLEdBQUFBLFNBQUlnZ0UsRUFBVy92QixFQUFNNkIsR0FDckJtdUIsR0FBMEJJLEVBQUFBLEdBQUFBLFNBQVVwd0IsRUFBTTZCLEVBQU1tdUIsR0FFekMsQ0FDTEQsWUFDQUMsMEJBQ0QsR0FDQXhrRSxRQUFRQyxRQUFRLENBQ2pCc2tFLFdBQVl4ekIsRUFBY2liLG9CQUFvQixNQUFPNlksRUFBQUEsR0FBQUEsUUFBZ0Joa0MsT0FDckUyakMsd0JBQXlCenpCLEVBQWN3cUIsWUFHekN0a0IsRUFBWTZ0QixzQkFBc0IsR0FBSVQsRUFBWUUsVUFDcEQsQ0FBRSxNQUFNbDZELEdBQ04xSCxRQUFRa0MsTUFBTXdGLEVBQ2hCLElBQ0EsR0FDRCxJQUVVK2dELHVCQUF5QjVXLEdBQVFsTSxJQUNmdTdCLEdBQWF2OUIsTUFBSyxFQUFHa08sS0FBTXV3QixFQUFhejhCLE9BQVEwOEIsS0FDcEVBLElBQWtCMThCLEdBQVV5OEIsRUFBWS8wRCxhQUFld2tDLEVBQUt4a0MsZUFPckU2ekQsR0FBYTNoRSxLQUFLLENBQUVzeUMsT0FBTWxNLFdBRTFCdzdCLEtBQW9CLEVBR2YsU0FBU21CLFlBQWF6d0IsRUFBTS9NLEVBQVdDLEVBQVNub0MsRUFBTzAvRCxHQUM1RCxNQUFPLENBQ0x4OUQsS0FBTXNnRSxHQUNOeGpDLFFBQVEsQ0FBRWlXLE9BQU1qMUMsUUFBT2tvQyxZQUFXQyxVQUFTdTNCLFNBRS9DLENBRU8sU0FBU2lHLHNCQUF1QmpILEVBQVkzMkIsRUFBTy9uQyxFQUFPMC9ELEdBQy9ELE1BQU8sQ0FDTHg5RCxLQUFNc2dFLEdBQ054akMsUUFBUSxDQUFFaVcsS0FBTXlwQixFQUFZMzJCLFFBQU8vbkMsUUFBTzAvRCxTQUU5QyxDQUVPLE1BQU02RixzQkFBd0JBLENBQUN0d0IsRUFBTWoxQyxLQUNuQyxDQUNMa0MsS0FBTWtoRSxHQUNOcGtDLFFBQVMsQ0FBRWlXLE9BQU1qMUMsV0FJUjRsRSwrQkFBaUNBLEtBQ3JDLENBQ0wxakUsS0FBTWtoRSxHQUNOcGtDLFFBQVMsQ0FDUGlXLEtBQU0sR0FDTmoxQyxPQUFPc2xFLEVBQUFBLEdBQUFBLFVBS0FPLGVBQWlCQSxDQUFFN21DLEVBQVMwQixLQUNoQyxDQUNMeCtCLEtBQU13Z0UsR0FDTjFqQyxRQUFRLENBQ04wL0IsV0FBWTEvQixFQUNaMEIsWUFLT29sQywwQkFBNEJBLENBQUVwSCxFQUFZeDJCLEVBQVdDLEVBQVM0OUIsS0FDbEUsQ0FDTDdqRSxLQUFNdWdFLEdBQ056akMsUUFBUSxDQUNOMC9CLGFBQ0F4MkIsWUFDQUMsVUFDQTQ5Qix1QkFLQyxTQUFTQyxvQkFBcUJobkMsR0FDbkMsTUFBTyxDQUNMOThCLEtBQU0rZ0UsR0FDTmprQyxRQUFRLENBQUUwL0IsV0FBWTEvQixHQUUxQixDQUVPLFNBQVNpbkMsb0JBQW9CaHhCLEVBQU1qMUMsR0FDeEMsTUFBTyxDQUNMa0MsS0FBTWdoRSxHQUNObGtDLFFBQVEsQ0FBRWlXLE9BQU1qMUMsUUFBT3dHLElBQUssa0JBRWhDLENBRU8sU0FBUzAvRCxvQkFBb0JqeEIsRUFBTWoxQyxHQUN4QyxNQUFPLENBQ0xrQyxLQUFNZ2hFLEdBQ05sa0MsUUFBUSxDQUFFaVcsT0FBTWoxQyxRQUFPd0csSUFBSyxrQkFFaEMsQ0FFTyxNQUFNMi9ELFlBQWNBLENBQUVseEIsRUFBTS94QixFQUFRaEwsS0FDbEMsQ0FDTDhtQixRQUFTLENBQUVpVyxPQUFNL3hCLFNBQVFoTCxPQUN6QmhXLEtBQU15Z0UsS0FJR3lELFdBQWFBLENBQUVueEIsRUFBTS94QixFQUFRbFEsS0FDakMsQ0FDTGdzQixRQUFTLENBQUVpVyxPQUFNL3hCLFNBQVFsUSxPQUN6QjlRLEtBQU0wZ0UsS0FJR3lELGtCQUFvQkEsQ0FBRXB4QixFQUFNL3hCLEVBQVFsUSxLQUN4QyxDQUNMZ3NCLFFBQVMsQ0FBRWlXLE9BQU0veEIsU0FBUWxRLE9BQ3pCOVEsS0FBTTJnRSxLQUtHeUQsV0FBY3R6RCxJQUNsQixDQUNMZ3NCLFFBQVNoc0IsRUFDVDlRLEtBQU00Z0UsS0FNR3lELGVBQWtCdnpELEdBQzdCLEVBQUVrTyxLQUFJdzJCLGNBQWFsRyxnQkFBZTNHLGFBQVkwRyxvQkFDNUMsSUFBSSxTQUFFd3JCLEVBQVEsT0FBRTc1QyxFQUFNLFVBQUVneUIsR0FBY2xpQyxHQUNsQyxtQkFBRW0vQixFQUFrQixvQkFBRUMsR0FBd0J2SCxJQUc5QzJ5QixFQUFLdG9CLEVBQVU1VCxPQStCbkIsR0EzQkk0VCxHQUFhQSxFQUFVbndDLElBQUksZUFDN0Jtd0MsRUFBVW53QyxJQUFJLGNBQ1hrdEIsUUFBTzhWLEdBQVNBLElBQTBDLElBQWpDQSxFQUFNaGpDLElBQUkscUJBQ25DNkgsU0FBUW03QixJQUNQLEdBQUl5SixFQUFjeXRCLDZCQUE2QixDQUFDbEMsRUFBVTc1QyxHQUFTNmtCLEVBQU1oakMsSUFBSSxRQUFTZ2pDLEVBQU1oakMsSUFBSSxPQUFRLENBQ3RHaU8sRUFBSTRzRCxXQUFhNXNELEVBQUk0c0QsWUFBYyxDQUFDLEVBQ3BDLE1BQU00RyxFQUFhbCtCLGFBQWFQLEVBQU8vMEIsRUFBSTRzRCxjQUd2QzRHLEdBQWVBLEdBQWtDLElBQXBCQSxFQUFXbjFELFFBRzFDMkIsRUFBSTRzRCxXQUFXNzNCLEVBQU1oakMsSUFBSSxTQUFXLEdBRXhDLEtBS05pTyxFQUFJeXpELFlBQWExMEIsRUFBQUEsR0FBQUEsU0FBU1AsRUFBY1YsT0FBT3JnQyxXQUU1QytzRCxHQUFNQSxFQUFHMWlCLFlBQ1Y5bkMsRUFBSThuQyxZQUFjMGlCLEVBQUcxaUIsWUFDYjBpQixHQUFNVCxHQUFZNzVDLElBQzFCbFEsRUFBSThuQyxZQUFjNTVCLEVBQUd3bEQsS0FBS2xKLEVBQUlULEVBQVU3NUMsSUFHdkNzdUIsRUFBYzlRLFNBQVUsQ0FDekIsTUFBTXFMLEVBQVksR0FBR2d4QixLQUFZNzVDLElBRWpDbFEsRUFBSTJ6RCxPQUFTcDFCLEVBQWNPLGVBQWUvRixJQUFjd0YsRUFBY08saUJBRXRFLE1BQU04MEIsRUFBcUJyMUIsRUFBY3MxQixnQkFBZ0IsQ0FDdkRGLE9BQVEzekQsRUFBSTJ6RCxPQUNaNTZCLGNBQ0N6SyxPQUNHd2xDLEVBQWtCdjFCLEVBQWNzMUIsZ0JBQWdCLENBQUVGLE9BQVEzekQsRUFBSTJ6RCxTQUFVcmxDLE9BRTlFdHVCLEVBQUk2ekQsZ0JBQWtCcG5FLE9BQU9nSCxLQUFLbWdFLEdBQW9CaGtFLE9BQVNna0UsRUFBcUJFLEVBRXBGOXpELEVBQUltdEQsbUJBQXFCNXVCLEVBQWM0dUIsbUJBQW1CcEQsRUFBVTc1QyxHQUNwRWxRLEVBQUlvdEQsb0JBQXNCN3VCLEVBQWM2dUIsb0JBQW9CckQsRUFBVTc1QyxJQUFXLE1BQ2pGLE1BQU13K0MsRUFBY253QixFQUFjdzFCLGlCQUFpQmhLLEVBQVU3NUMsR0FDdkQ4akQsRUFBOEJ6MUIsRUFBY3kxQiw0QkFBNEJqSyxFQUFVNzVDLEdBRXJGdytDLEdBQWVBLEVBQVlwZ0MsS0FDNUJ0dUIsRUFBSTB1RCxZQUFjQSxFQUNmMzVELEtBQ0VvTyxHQUNLbXZELEdBQUFBLElBQWEza0MsTUFBTXhxQixHQUNkQSxFQUFJcFIsSUFBSSxTQUVWb1IsSUFHVjhiLFFBQ0MsQ0FBQ2p5QixFQUFPd0csS0FBU3JDLE1BQU0yRCxRQUFROUgsR0FDUixJQUFqQkEsRUFBTTRDLFFBQ0w4bEMsYUFBYTFvQyxLQUNmZ25FLEVBQTRCamlFLElBQUl5QixLQUV0Qzg2QixPQUVIdHVCLEVBQUkwdUQsWUFBY0EsQ0FFdEIsQ0FFQSxJQUFJdUYsRUFBZ0J4bkUsT0FBT29qQyxPQUFPLENBQUMsRUFBRzd2QixHQUN0Q2kwRCxFQUFnQi9sRCxFQUFHZ21ELGFBQWFELEdBRWhDdnZCLEVBQVkwdUIsV0FBV3B6RCxFQUFJK3BELFNBQVUvcEQsRUFBSWtRLE9BQVErakQsR0FTakRqMEQsRUFBSW0vQixtQkFQNEJ1eUIsTUFBT24wRCxJQUNyQyxJQUFJNDJELFFBQXVCaDFCLEVBQW1CbHpDLFdBQU0sRUFBTSxDQUFDc1IsSUFDdkQ2MkQsRUFBdUIzbkUsT0FBT29qQyxPQUFPLENBQUMsRUFBR3NrQyxHQUU3QyxPQURBenZCLEVBQVkydUIsa0JBQWtCcnpELEVBQUkrcEQsU0FBVS9wRCxFQUFJa1EsT0FBUWtrRCxHQUNqREQsQ0FBYyxFQUl2Qm4wRCxFQUFJby9CLG9CQUFzQkEsRUFHMUIsTUFBTWkxQixFQUFZdnRDLEtBQUt3dEMsTUFHdkIsT0FBT3BtRCxFQUFHNnpCLFFBQVEvaEMsR0FDZndvQixNQUFNdGpCLElBQ0xBLEVBQUlxdkQsU0FBV3p0QyxLQUFLd3RDLE1BQVFELEVBQzVCM3ZCLEVBQVl5dUIsWUFBWW56RCxFQUFJK3BELFNBQVUvcEQsRUFBSWtRLE9BQVFoTCxFQUFJLElBRXZEdTZCLE9BQ0M1eEMsSUFFcUIsb0JBQWhCQSxFQUFJMkUsVUFDTDNFLEVBQUlMLEtBQU8sR0FDWEssRUFBSTJFLFFBQVUsK0lBRWhCa3lDLEVBQVl5dUIsWUFBWW56RCxFQUFJK3BELFNBQVUvcEQsRUFBSWtRLE9BQVEsQ0FDaEQ1ZCxPQUFPLEVBQU16RSxPQUNiLEdBRUwsRUFLTWswQyxnQkFBVUEsRUFBSUUsT0FBTS94QixZQUFXd3FCLEdBQVMsQ0FBQyxJQUFRM0UsSUFDNUQsSUFBTTduQixJQUFHLE1BQUNneEIsR0FBTSxjQUFFVixFQUFhLFlBQUVrRyxHQUFnQjNPLEVBQzdDK04sRUFBT3RGLEVBQWM4cUIsK0JBQStCaDdCLE9BQ3BEd3NCLEVBQVN0YyxFQUFjNGUsZ0JBQWdCbmIsRUFBTS94QixJQUM3QyxtQkFBRWk5QyxFQUFrQixvQkFBRUMsR0FBd0I1dUIsRUFBY3d1QixrQkFBa0IsQ0FBQy9xQixFQUFNL3hCLElBQVNvZSxPQUM5Rm8rQixFQUFRLE9BQU94NkIsS0FBS2k3QixHQUNwQlAsRUFBYXB1QixFQUFjaXVCLGdCQUFnQixDQUFDeHFCLEVBQU0veEIsR0FBU3c4QyxHQUFPcCtCLE9BRXRFLE9BQU9vVyxFQUFZNnVCLGVBQWUsSUFDN0I3NEIsRUFDSHdFLFFBQ0E0RSxPQUNBaW1CLFNBQVU5bkIsRUFDVi94QixTQUFRMDhDLGFBQ1JPLHFCQUNBclMsU0FDQXNTLHVCQUNBLEVBR0csU0FBU29ILGNBQWV2eUIsRUFBTS94QixHQUNuQyxNQUFPLENBQ0xoaEIsS0FBTTZnRSxHQUNOL2pDLFFBQVEsQ0FBRWlXLE9BQU0veEIsVUFFcEIsQ0FFTyxTQUFTdWtELGFBQWN4eUIsRUFBTS94QixHQUNsQyxNQUFPLENBQ0xoaEIsS0FBTThnRSxHQUNOaGtDLFFBQVEsQ0FBRWlXLE9BQU0veEIsVUFFcEIsQ0FFTyxTQUFTNnNDLFVBQVdqQyxFQUFRN1ksRUFBTS94QixHQUN2QyxNQUFPLENBQ0xoaEIsS0FBTW1oRSxHQUNOcmtDLFFBQVMsQ0FBRTh1QixTQUFRN1ksT0FBTS94QixVQUU3QixDQ3BmQSxRQUVFLENBQUNtL0MsSUFBYyxDQUFDMytELEVBQU93L0IsSUFDYSxpQkFBbkJBLEVBQU9sRSxRQUNsQnQ3QixFQUFNc0IsSUFBSSxPQUFRaytCLEVBQU9sRSxTQUN6QnQ3QixFQUdOLENBQUM0K0QsSUFBYSxDQUFDNStELEVBQU93L0IsSUFDYngvQixFQUFNc0IsSUFBSSxNQUFPaytCLEVBQU9sRSxRQUFRLElBR3pDLENBQUN1akMsSUFBYyxDQUFDNytELEVBQU93L0IsSUFDZHgvQixFQUFNc0IsSUFBSSxPQUFReThCLGNBQWN5QixFQUFPbEUsVUFHaEQsQ0FBQ21rQyxJQUFrQixDQUFDei9ELEVBQU93L0IsSUFDbEJ4L0IsRUFBTTZ2QyxNQUFNLENBQUMsWUFBYTlSLGNBQWN5QixFQUFPbEUsVUFHeEQsQ0FBQ29rQyxJQUEwQixDQUFDMS9ELEVBQU93L0IsS0FDakMsTUFBTSxNQUFFbGpDLEVBQUssS0FBRWkxQyxHQUFTL1IsRUFBT2xFLFFBQy9CLE9BQU90N0IsRUFBTTZ2QyxNQUFNLENBQUMsc0JBQXVCMEIsR0FBT3hULGNBQWN6aEMsR0FBTyxFQUd6RSxDQUFDd2lFLElBQWUsQ0FBRTkrRCxHQUFRczdCLGNBQ3hCLElBQU1pVyxLQUFNeXBCLEVBQVUsVUFBRXgyQixFQUFTLFFBQUVDLEVBQU8sTUFBRUosRUFBSyxNQUFFL25DLEVBQUssTUFBRTAvRCxHQUFVMWdDLEVBRWhFa2dDLEVBQVduM0IsRUFBUUQsa0JBQWtCQyxHQUFTLEdBQUdJLEtBQVdELElBRWhFLE1BQU13L0IsRUFBV2hJLEVBQVEsWUFBYyxRQUV2QyxPQUFPaDhELEVBQU02dkMsTUFDWCxDQUFDLE9BQVEsV0FBWW1yQixFQUFZLGFBQWNRLEVBQVV3SSxJQUN6RHhwQyxFQUFBQSxHQUFBQSxRQUFPbCtCLEdBQ1IsRUFHSCxDQUFDeWlFLElBQStCLENBQUUvK0QsR0FBUXM3QixjQUN4QyxJQUFJLFdBQUUwL0IsRUFBVSxVQUFFeDJCLEVBQVMsUUFBRUMsRUFBTyxrQkFBRTQ5QixHQUFzQi9tQyxFQUU1RCxJQUFJa0osSUFBY0MsRUFFaEIsT0FEQS9rQyxRQUFRQyxLQUFLLHdFQUNOSyxFQUdULE1BQU13N0QsRUFBVyxHQUFHLzJCLEtBQVdELElBRS9CLE9BQU94a0MsRUFBTTZ2QyxNQUNYLENBQUMsT0FBUSxXQUFZbXJCLEVBQVksdUJBQXdCUSxHQUN6RDZHLEVBQ0QsRUFHSCxDQUFDckQsSUFBa0IsQ0FBRWgvRCxHQUFTczdCLFNBQVcwL0IsYUFBWWgrQixjQUNuRCxNQUFNODhCLEVBQUtsQixHQUE2QjU0RCxHQUFPczlCLE1BQU0sQ0FBQyxXQUFZMDlCLElBQzVEbjJCLEVBQWNrM0IsZ0JBQWdCLzdELEVBQU9nN0QsR0FBWXA5QixPQUV2RCxPQUFPNTlCLEVBQU1pa0UsU0FBUyxDQUFDLE9BQVEsV0FBWWpKLEVBQVksZUFBZXhnQyxFQUFBQSxHQUFBQSxRQUFPLENBQUMsSUFBSTBwQyxHQUN6RXBLLEVBQUd6NEQsSUFBSSxjQUFjODRCLEVBQUFBLEdBQUFBLFNBQVFuSixRQUFPLENBQUN4YyxFQUFLNnZCLEtBQy9DLE1BQU0vbkMsRUFBUXNvQyxhQUFhUCxFQUFPUSxHQUM1QnMvQixFQUF1QjVJLDZCQUE2QnY3RCxFQUFPZzdELEVBQVkzMkIsRUFBTWhqQyxJQUFJLFFBQVNnakMsRUFBTWhqQyxJQUFJLE9BQ3BHd2EsRWhHbWdCZXVvRCxFQUFDLy9CLEVBQU8vbkMsR0FBUzBnQyxVQUFTLEVBQU8yQyx1QkFBc0IsR0FBVSxDQUFDLEtBRTdGLElBQUkwa0MsRUFBZ0JoZ0MsRUFBTWhqQyxJQUFJLGFBRzVCNjdCLE9BQVFvbkMsRUFBWSwwQkFDcEJubkMsR0FDRUwsbUJBQW1CdUgsRUFBTyxDQUFFckgsV0FFaEMsT0FBT3lDLHNCQUFzQm5qQyxFQUFPZ29FLEVBQWNELEVBQWUxa0MsRUFBcUJ4QyxFQUEwQixFZ0c1Z0IzRmluQyxDQUFjLy9CLEVBQU8vbkMsRUFBTyxDQUN6Q3FqQyxvQkFBcUJ3a0MsRUFDckJubkMsV0FFRixPQUFPeG9CLEVBQUlxN0IsTUFBTSxDQUFDekwsa0JBQWtCQyxHQUFRLFdBQVc3SixFQUFBQSxHQUFBQSxRQUFPM2UsR0FBUSxHQUNyRXFvRCxJQUNILEVBRUosQ0FBQzNFLElBQXdCLENBQUV2L0QsR0FBU3M3QixTQUFZMC9CLGlCQUN2Q2g3RCxFQUFNaWtFLFNBQVUsQ0FBRSxPQUFRLFdBQVlqSixFQUFZLGVBQWdCeGdDLEVBQUFBLEdBQUFBLFFBQU8sS0FBSzBoQyxHQUM1RUEsRUFBVzczRCxLQUFJZ2dDLEdBQVNBLEVBQU0vaUMsSUFBSSxVQUFVazVCLEVBQUFBLEdBQUFBLFFBQU8sU0FJOUQsQ0FBQ3lrQyxJQUFlLENBQUNqL0QsR0FBU3M3QixTQUFXOW1CLE1BQUsrOEIsT0FBTS94QixjQUM5QyxJQUFJd3dCLEVBRUZBLEVBREd4N0IsRUFBSTVTLE1BQ0U3RixPQUFPb2pDLE9BQU8sQ0FDckJ2OUIsT0FBTyxFQUNQOUUsS0FBTTBYLEVBQUlyWCxJQUFJTCxLQUNkZ0YsUUFBUzBTLEVBQUlyWCxJQUFJMkUsUUFDakJ5aUUsV0FBWS92RCxFQUFJclgsSUFBSW9uRSxZQUNuQi92RCxFQUFJclgsSUFBSXd4QyxVQUVGbjZCLEVBSVh3N0IsRUFBT25ELFFBQVVtRCxFQUFPbkQsU0FBVyxDQUFDLEVBRXBDLElBQUkyM0IsRUFBV3hrRSxFQUFNNnZDLE1BQU8sQ0FBRSxZQUFhMEIsRUFBTS94QixHQUFVdWUsY0FBY2lTLElBTXpFLE9BSElsVSxHQUFJMm9DLE1BQVF6MEIsRUFBTzluQyxnQkFBZ0I0ekIsR0FBSTJvQyxPQUN6Q0QsRUFBV0EsRUFBUzMwQixNQUFPLENBQUUsWUFBYTBCLEVBQU0veEIsRUFBUSxRQUFVd3dCLEVBQU85bkMsT0FFcEVzOEQsQ0FBUSxFQUdqQixDQUFDdEYsSUFBYyxDQUFDbC9ELEdBQVNzN0IsU0FBV2hzQixNQUFLaWlDLE9BQU0veEIsYUFDdEN4ZixFQUFNNnZDLE1BQU8sQ0FBRSxXQUFZMEIsRUFBTS94QixHQUFVdWUsY0FBY3p1QixJQUdsRSxDQUFDNnZELElBQXNCLENBQUNuL0QsR0FBU3M3QixTQUFXaHNCLE1BQUtpaUMsT0FBTS94QixhQUM5Q3hmLEVBQU02dkMsTUFBTyxDQUFFLGtCQUFtQjBCLEVBQU0veEIsR0FBVXVlLGNBQWN6dUIsSUFHekUsQ0FBQ2t3RCxJQUE4QixDQUFDeC9ELEdBQVNzN0IsU0FBV2lXLE9BQU1qMUMsUUFBT3dHLFdBRS9ELElBQUk0aEUsRUFBZ0IsQ0FBQyxXQUFZbnpCLEdBQzdCb3pCLEVBQVcsQ0FBQyxPQUFRLFdBQVlwekIsR0FFcEMsT0FDR3Z4QyxFQUFNczlCLE1BQU0sQ0FBQyxVQUFXb25DLEtBQ3JCMWtFLEVBQU1zOUIsTUFBTSxDQUFDLGNBQWVvbkMsS0FDNUIxa0UsRUFBTXM5QixNQUFNLENBQUMsc0JBQXVCb25DLElBTW5DMWtFLEVBQU02dkMsTUFBTSxJQUFJODBCLEVBQVU3aEUsSUFBTTAzQixFQUFBQSxHQUFBQSxRQUFPbCtCLElBSHJDMEQsQ0FHNEMsRUFHdkQsQ0FBQ3EvRCxJQUFpQixDQUFDci9ELEdBQVNzN0IsU0FBV2lXLE9BQU0veEIsYUFDcEN4ZixFQUFNNGtFLFNBQVUsQ0FBRSxZQUFhcnpCLEVBQU0veEIsSUFHOUMsQ0FBQzgvQyxJQUFnQixDQUFDdC9ELEdBQVNzN0IsU0FBV2lXLE9BQU0veEIsYUFDbkN4ZixFQUFNNGtFLFNBQVUsQ0FBRSxXQUFZcnpCLEVBQU0veEIsSUFHN0MsQ0FBQ21nRCxJQUFhLENBQUMzL0QsR0FBU3M3QixTQUFXOHVCLFNBQVE3WSxPQUFNL3hCLGFBQzFDK3hCLEdBQVEveEIsRUFDSnhmLEVBQU02dkMsTUFBTyxDQUFFLFNBQVUwQixFQUFNL3hCLEdBQVU0cUMsR0FHN0M3WSxHQUFTL3hCLE9BQWQsRUFDU3hmLEVBQU02dkMsTUFBTyxDQUFFLFNBQVUsa0JBQW9CdWEsSUN2S25ELE1BQU14Tix3QkFBYUEsQ0FBQ2xULEdBQU1zSyxpQkFBaUIsSUFBSXQ0QyxLQUNwRGd1QyxLQUFPaHVDLEdBQ1BzNEMsRUFBWWdzQixlQUFldGtFLEVBQUssRUFHckJtaEQsNEJBQWlCQSxDQUFDblQsR0FBTXNLLGlCQUFpQixJQUFJdDRDLEtBQ3hEZ3VDLEtBQU9odUMsR0FFUHM0QyxFQUFZa3VCLGlDQUdaLE1BQU96TCxHQUFRLzZELEVBQ1RtcEUsR0FBWXhqRSxFQUFBQSxHQUFBQSxTQUFJbzFELEVBQU0sQ0FBQyxXQUFhLENBQUMsRUFDdEIxNkQsT0FBT2dILEtBQUs4aEUsR0FFcEIzN0QsU0FBUWswQixJQUNuQixNQUFNM3FCLEdBQU1wUixFQUFBQSxHQUFBQSxTQUFJd2pFLEVBQVcsQ0FBQ3puQyxLQUV4QjJ6QixFQUFBQSxHQUFBQSxTQUFjdCtDLElBQVFBLEVBQUlpMUMsTUFDNUIxVCxFQUFZbVUsdUJBQXVCLENBQUMsUUFBUy9xQixHQUMvQyxJQUlGNFcsRUFBWW1VLHVCQUF1QixDQUFDLGFBQWMsbUJBQW1CLEVBSTFEMGEsNEJBQWlCQSxDQUFDbjVCLEdBQU9zSyxpQkFBbUIxa0MsSUFDdkQwa0MsRUFBWTR1QixXQUFXdHpELEdBQ2hCbzZCLEVBQUlwNkIsSUFHQTZ5RCw0QkFBaUJBLENBQUN6NEIsR0FBT29FLG1CQUFxQngrQixHQUNsRG82QixFQUFJcDZCLEVBQUt3K0IsRUFBYzlRLFVDbEJoQyxpQkFYbUI4bkMsS0FBQSxDQUNqQnIvQixhQUFjLENBQ1oyTixLQUFNLENBQ0p2SyxZQUFhLElBQUtBLElBQ2xCaEIsU0FBVSxJQUFLQSxJQUNmVyxRQUFTLElBQUtBLElBQ2RTLFVBQVcsSUFBS0EsUUNWbEIsR0FKSSxTQUFTbGpDLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxRQUFhLFdBQWEsT0FBT2kvRCxFQUE0RixPQUFHLElDQW5LLEdBSkksU0FBU2gvRCxHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsUUFBYSxXQUFhLE9BQU9rL0QsRUFBOEYsT0FBRyxJQ0FySyxHQUpJLFNBQVNqL0QsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLFFBQWEsV0FBYSxPQUFPbS9ELEVBQWdHLE9BQUcsSUNBdkssR0FKSSxTQUFTbC9ELEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxRQUFhLFdBQWEsT0FBT28vRCxFQUF1RyxPQUFHLElDQTlLLEdBSkksU0FBU24vRCxHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsWUFBaUIsV0FBYSxPQUFPcS9ELEVBQWdFQyxXQUFhLElDQXJKLEdBSkksU0FBU3IvRCxHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsYUFBa0IsV0FBYSxPQUFPdS9ELEVBQStEN0IsWUFBYyxFQUFHLFFBQWEsV0FBYSxPQUFPNkIsRUFBK0RoMEIsT0FBUyxJQ0FsUSxHQUpJLFNBQVN0ckMsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLFFBQWEsV0FBYSxPQUFPdy9ELEVBQXFFLE9BQUcsRUFBRyxTQUFjLFdBQWEsT0FBT0EsRUFBNERDLFFBQVUsRUFBRyxhQUFrQixXQUFhLE9BQU9ELEVBQTRERSxZQUFjLElDQTFXLEdBSkksU0FBU3ovRCxHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsbUJBQXdCLFdBQWEsT0FBTzIvRCxFQUF3RUMsa0JBQW9CLElDQTNLLEdBSkksU0FBUzMvRCxHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsS0FBVSxXQUFhLE9BQU82L0QsRUFBK0QzQyxJQUFNLElDSm5JLE1BQU10eEIsNEJBQVNBLENBQUNoSSxFQUFLckUsSUFBVyxJQUFJM3BDLEtBQ3pDZ3VDLEtBQU9odUMsR0FDUCxNQUFNWSxFQUFRK29DLEVBQU84QixhQUFheStCLGdCQUVsQ3ZnQyxFQUFPN25CLEdBQUdneEIsTUFBTW8zQixnQkFBa0J0cEUsQ0FBSyxFQ08xQix5QkFBUyxRQUFFZ3BDLEVBQU8sV0FBRTZCLElBQ2pDLE1BQU8sQ0FDTDNwQixHQUFJLENBQ0ZneEIsT0FBTysyQixFQUFBQSxHQUFBQSxVQUFTTSxHQUFBQSxRQUFNdmdDLEVBQVF3Z0MsU0FBVXhnQyxFQUFReWdDLFdBQ2hEdkMsYUFBWSxnQkFDWm55QixRQUFPLFdBQ1ByMEMsU0FBU29vRSxFQUFBQSxHQUFBQSxhQUFZLENBQ25CWSxXQUFZLENBQ1ZDLEdBQUFBLFFBQ0FDLEdBQUFBLFFBQ0FDLEdBQUFBLFFBQ0FDLEdBQUFBLFdBR0psRixlQUFnQkYsTUFBTy8zRCxFQUFLc29DLEVBQU0xbkMsRUFBVSxDQUFDLEtBQzNDLE1BQU13OEQsRUFBZWwvQixJQUNmbS9CLEVBQWlCLENBQ3JCaEcsbUJBQW9CK0YsRUFBYS9GLG1CQUNqQ0MsZUFBZ0I4RixFQUFhOUYsZUFDN0I5eEIsbUJBQW9CNDNCLEVBQWE1M0IsbUJBQ2pDQyxvQkFBcUIyM0IsRUFBYTMzQixvQkFDbENzM0IsV0FBWSxDQUNWQyxHQUFBQSxRQUNBQyxHQUFBQSxRQUNBQyxHQUFBQSxRQUNBQyxHQUFBQSxVQUlKLE9BQU9WLEVBQUFBLEdBQUFBLG9CQUFtQlksRUFBbkJaLENBQW1DejhELEVBQUtzb0MsRUFBTTFuQyxFQUFRLEVBRS9EMjdELGFBQVksZ0JBQ1p4QyxLQUFJQSxHQUFBQSxNQUVOdjlCLGFBQWMsQ0FDWkgsUUFBUyxDQUNQdUQsWUFBYSxDQUNYNkksT0FBTUEsK0JBS2hCLENDbERlLGdCQUNiLE1BQU8sQ0FDTGwwQixHQUFJLENBQ0Y0bEIsaUJBQ0EwbUIsYUFHTixDQ1ZBLElBSUksR0FKSSxTQUFTL2pELEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxRQUFhLFdBQWEsT0FBT3lnRSxFQUF3RCxPQUFHLElDQS9ILEdBSkksU0FBU3hnRSxHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsU0FBYyxXQUFhLE9BQU8wZ0UsRUFBaURDLFFBQVUsRUFBRyxRQUFhLFdBQWEsT0FBT0QsRUFBaURFLE9BQVMsSUNBOU4sR0FKSSxTQUFTM2dFLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxRQUFhLFdBQWEsT0FBTzZnRSxFQUE4RCxPQUFHLElDR3pJLE1BQU1DLFdBQWN2bkMsR0FBZXduQyxJQUNqQyxNQUFNLEdBQUVycEQsR0FBTzZoQixJQUVmLE1BQU15bkMsbUJBQW1CNXRDLEdBQUFBLFVBQ3ZCc1osTUFBQUEsR0FDRSxPQUFPakwsR0FBQUEsUUFBQUEsY0FBQ3MvQixHQUFnQjFzQixFQUFBQSxHQUFBQSxTQUFBLEdBQUs5YSxJQUFpQjVpQyxLQUFLc3lCLE1BQVd0eUIsS0FBS3NGLFNBQ3JFLEVBR0YsT0FEQStrRSxXQUFXOWYsWUFBYyxjQUFjeHBDLEVBQUd1cEQsZUFBZUYsTUFDbERDLFVBQVUsRUFHYkUsU0FBV0EsQ0FBQzNuQyxFQUFXNG5DLElBQWdCSixJQUMzQyxNQUFNLEdBQUVycEQsR0FBTzZoQixJQUVmLE1BQU02bkMsaUJBQWlCaHVDLEdBQUFBLFVBQ3JCc1osTUFBQUEsR0FDRSxPQUNFakwsR0FBQUEsUUFBQUEsY0FBQ2svQixHQUFBQSxTQUFRLENBQUM1Z0MsTUFBT29oQyxHQUNmMS9CLEdBQUFBLFFBQUFBLGNBQUNzL0IsR0FBZ0Ixc0IsRUFBQUEsR0FBQUEsU0FBQSxHQUFLMTlDLEtBQUtzeUIsTUFBV3R5QixLQUFLc0YsVUFHakQsRUFHRixPQURBbWxFLFNBQVNsZ0IsWUFBYyxZQUFZeHBDLEVBQUd1cEQsZUFBZUYsTUFDOUNLLFFBQVEsRUFHWEMsWUFBY0EsQ0FBQzluQyxFQUFXd25DLEVBQWtCSSxLQU96Q2p0QyxFQUFBQSxHQUFBQSxTQUNMaXRDLEVBQWFELFNBQVMzbkMsRUFBVzRuQyxHQUFjRyxHQUFBQSxTQUMvQ1YsRUFBQUEsR0FBQUEsVUFSc0JyMEIsQ0FBQ3J5QyxFQUFPc3lDLEtBQzlCLE1BQU12akIsRUFBUSxJQUFJdWpCLEtBQWFqVCxLQUN6QmdvQyxFQUF3QlIsRUFBaUJqckUsV0FBV3kyQyxpQkFBbUIsQ0FBQ3J5QyxJQUFLLENBQU1BLFdBQ3pGLE9BQU9xbkUsRUFBc0JybkUsRUFBTyt1QixFQUFNLElBTTFDNjNDLFdBQVd2bkMsR0FITnJGLENBSUw2c0MsR0FHRVMsWUFBY0EsQ0FBQ2pvQyxFQUFXbzJCLEVBQVMxbUMsRUFBT3c0QyxLQUM5QyxJQUFLLE1BQU16dUMsS0FBUTI4QixFQUFTLENBQzFCLE1BQU1qNEMsRUFBS2k0QyxFQUFRMzhCLEdBRUQsbUJBQVB0YixHQUNUQSxFQUFHdVIsRUFBTStKLEdBQU95dUMsRUFBU3p1QyxHQUFPdUcsSUFFcEMsR0FHV21vQyxvQkFBc0JBLENBQUNub0MsRUFBV2tILEVBQVVraEMsSUFBb0IsQ0FBQ0MsRUFBZWpTLEtBQzNGLE1BQU0sR0FBRWo0QyxHQUFPNmhCLElBQ1R3bkMsRUFBbUJZLEVBQWdCQyxFQUFlLFFBRXhELE1BQU1DLDRCQUE0Qnp1QyxHQUFBQSxVQUNoQ24xQixXQUFBQSxDQUFZZ3JCLEVBQU9odEIsR0FDakJpYSxNQUFNK1MsRUFBT2h0QixHQUNidWxFLFlBQVlqb0MsRUFBV28yQixFQUFTMW1DLEVBQU8sQ0FBQyxFQUMxQyxDQUVBcTBCLGdDQUFBQSxDQUFpQ0MsR0FDL0Jpa0IsWUFBWWpvQyxFQUFXbzJCLEVBQVNwUyxFQUFXNW1ELEtBQUtzeUIsTUFDbEQsQ0FFQXlqQixNQUFBQSxHQUNFLE1BQU1vMUIsR0FBYXIxQixFQUFBQSxHQUFBQSxTQUFLOTFDLEtBQUtzeUIsTUFBTzBtQyxFQUFVMTVELE9BQU9nSCxLQUFLMHlELEdBQVcsSUFDckUsT0FBT2x1QixHQUFBQSxRQUFBQSxjQUFDcy9CLEVBQXFCZSxFQUMvQixFQUdGLE9BREFELG9CQUFvQjNnQixZQUFjLHVCQUF1QnhwQyxFQUFHdXBELGVBQWVGLE1BQ3BFYyxtQkFBbUIsRUFHZm4xQixPQUFTQSxDQUFDblQsRUFBV2tILEVBQVVrTSxFQUFjcEwsSUFBbUJ3Z0MsSUFDM0UsTUFBTUMsRUFBTXIxQixFQUFhcFQsRUFBV2tILEVBQVVjLEVBQWxDb0wsQ0FBaUQsTUFBTyxTQUM5RCxXQUFFczFCLEdBQWVDLEdBQUFBLFFBQ1ZELEVBQVdGLEdBRW5CcjFCLE9BQU9qTCxHQUFBQSxRQUFBQSxjQUFDdWdDLEVBQUcsTUFBRyxFQUdScjFCLGFBQWVBLENBQUNwVCxFQUFXa0gsRUFBVWMsSUFBa0IsQ0FBQ3FnQyxFQUFlM3hCLEVBQVduc0IsRUFBUyxDQUFDLEtBRXZHLEdBQTZCLGlCQUFsQjg5QyxFQUNULE1BQU0sSUFBSXRwRSxVQUFVLDJEQUE2RHNwRSxHQUtuRixNQUFNaitCLEVBQVlwQyxFQUFjcWdDLEdBRWhDLE9BQUtqK0IsRUFPRHNNLEVBSWEsU0FBZEEsRUFDTW94QixZQUFZOW5DLEVBQVdvSyxFQUFXbEQsS0FJcEM0Z0MsWUFBWTluQyxFQUFXb0ssR0FSckJBLEdBUEY3ZixFQUFPeWpDLGNBQ1ZodUIsSUFBWW9kLElBQUk5OEMsS0FBSyw0QkFBNkIrbkUsR0FFN0MsS0FZK0IsRUNwSDdCWCxlQUFrQkYsR0FBcUJBLEVBQWlCN2YsYUFBZTZmLEVBQWlCL3BFLE1BQVEsWUNpQzdHLFNBakJtQm1yRSxFQUFFNWdDLGdCQUFlZCxXQUFVbEgsZ0JBRTVDLE1BQU1vb0MsR0Fad0JqcUQsRUFZaUJpMUIsYUFBYXBULEVBQVdrSCxFQUFVYyxHQVYxRXRJLEdBQVF2aEIsR0FERW5nQixJQUFJM0IsSUFBU3VsQyxLQUFLa0QsVUFBVXpvQyxNQURoQndzRSxJQUFDMXFELEVBYTlCLE1BQU0ycUQsRUFSOEJDLENBQUM1cUQsR0FFOUJzMEMsZUFBU3QwQyxHQURDbmdCLElBQUkzQixJQUFTQSxJQU9DMHNFLENBQThCWixvQkFBb0Jub0MsRUFBV2tILEVBQVVraEMsSUFFdEcsTUFBTyxDQUNMamlDLFlBQWEsQ0FDWGlOLGFBQWNnMUIsRUFDZFksb0JBQXFCRixFQUNyQjMxQixPQUFRQSxPQUFPblQsRUFBV2tILEVBQVVrTSxhQUFjcEwsSUFFcEQ3cEIsR0FBSSxDQUNGdXBELGdCQUVILEVDTkgsZ0JBbEJ5QnVCLEVBQUcvZ0MsUUFBT2xJLFlBQVdrSCxXQUFVYyxvQkFDdEQsTUFBTTdCLEVBQWMsQ0FBQyxFQUNmK2lDLEVBQW9COTBELFNBQVM4ekIsR0FBTzE4QixRQUFTLElBV25ELE9BVEkwOUQsR0FBcUIsSUFBTUEsRUFBb0IsS0FDakQvaUMsRUFBWWdOLE9DSmRBLEVBQUNuVCxFQUFXa0gsRUFBVWtNLEVBQWNwTCxJQUFtQndnQyxJQUNyRCxNQUFNQyxFQUFNcjFCLEVBQWFwVCxFQUFXa0gsRUFBVWMsRUFBbENvTCxDQUFpRCxNQUFPLFFBRXBFdTFCLEdBQUFBLFFBQUFBLE9BQWdCemdDLEdBQUFBLFFBQUFBLGNBQUN1Z0MsRUFBRyxNQUFLRCxFQUFRLEVEQ1pyMUIsQ0FDbkJuVCxFQUNBa0gsRUFDQWtNLGFBQ0FwTCxJQUlHLENBQ0w3QixjQUNELEVFZFksU0FBU2dqQyxrQkFBa0I3aUMsR0FDeEMsSUFBSSxHQUFFbm9CLEdBQU9tb0IsRUFFYixNQUFNNkMsRUFBVSxDQUNkaWdDLFNBQ0dyN0IsR0FDRCxFQUFHMUIsYUFBWW9DLGdCQUFla0csY0FBYTdNLGlCQUN6QyxJQUFJLE1BQUVxSCxHQUFVaHhCLEVBQ2hCLE1BQU1vTSxFQUFTdWQsSUFlZixTQUFTbmpCLEtBQUt4UCxHQUNaLEdBQUlBLGFBQWVuVixPQUFTbVYsRUFBSTAvQixRQUFVLElBVXhDLE9BVEFGLEVBQVlHLG9CQUFvQixVQUNoQ3pJLEVBQVdyUSxhQUNUdC9CLE9BQU9vakMsT0FDTCxJQUFJOS9CLE9BQU9tVixFQUFJMVMsU0FBVzBTLEVBQUlzNkIsWUFBYyxJQUFNMUIsR0FDbEQsQ0FBRXp1QixPQUFRLGlCQUlUbkssRUFBSTAvQixRQUFVMS9CLGFBQWVuVixPQVV0QyxTQUFTcXBFLDJCQUNQLElBQ0UsSUFBSXBmLEVBVUosR0FSSSxRQUFTLEdBQ1hBLEVBQVUsSUFBSUcsSUFBSXJjLElBR2xCa2MsRUFBVXhYLFNBQVN6WSxjQUFjLEtBQ2pDaXdCLEVBQVFJLEtBQU90YyxHQUlNLFdBQXJCa2MsRUFBUUUsVUFDa0IsV0FBMUIxdEIsR0FBSUMsU0FBU3l0QixTQUNiLENBQ0EsTUFBTTVuRCxFQUFRN0YsT0FBT29qQyxPQUNuQixJQUFJOS9CLE1BQ0YseUVBQXlFaXFELEVBQVFFLDBGQUVuRixDQUFFN3FDLE9BQVEsVUFHWixZQURBK3NCLEVBQVdyUSxhQUFhejVCLEVBRTFCLENBQ0EsR0FBSTBuRCxFQUFRZSxTQUFXdnVCLEdBQUlDLFNBQVNzdUIsT0FBUSxDQUMxQyxNQUFNem9ELEVBQVE3RixPQUFPb2pDLE9BQ25CLElBQUk5L0IsTUFDRix1REFBdURpcUQsRUFBUWUsb0NBQW9DdnVCLEdBQUlDLFNBQVNzdUIsbUZBRWxILENBQUUxckMsT0FBUSxVQUVaK3NCLEVBQVdyUSxhQUFhejVCLEVBQzFCLENBQ0YsQ0FBRSxNQUFPd0YsR0FDUCxNQUNGLENBQ0YsQ0EvQzZDc2hFLElBRzNDMTBCLEVBQVlHLG9CQUFvQixXQUNoQ0gsRUFBWTRJLFdBQVdwb0MsRUFBSTVJLE1BQ3ZCa2lDLEVBQWNWLFFBQVVBLEdBQzFCNEcsRUFBWUksVUFBVWhILEVBRTFCLENBaENBQSxFQUFNQSxHQUFPVSxFQUFjVixNQUMzQjRHLEVBQVlHLG9CQUFvQixXQUNoQ3pJLEVBQVd6bkIsTUFBTSxDQUFFdEYsT0FBUSxVQUMzQjZ2QixFQUFNLENBQ0pwQixNQUNBdTdCLFVBQVUsRUFDVmw2QixtQkFBb0I3a0IsRUFBTzZrQixvQkFBc0IsQ0FBRXpuQyxHQUFNQSxHQUN6RDBuQyxvQkFBcUI5a0IsRUFBTzhrQixxQkFBdUIsQ0FBRTFuQyxHQUFNQSxHQUMzRDRoRSxZQUFhLGNBQ2IvN0IsUUFBUyxDQUNQZzhCLE9BQVEsMEJBRVQvd0MsS0FBSzlULEtBQU1BLEtBMkRkLEVBR0ptd0Isb0JBQXNCRCxJQUNwQixJQUFJNDBCLEVBQVEsQ0FBQyxLQUFNLFVBQVcsU0FBVSxVQUFXLGdCQUtuRCxPQUorQixJQUEzQkEsRUFBTXpqRSxRQUFRNnVDLElBQ2hCeDBDLFFBQVFrQyxNQUFNLFVBQVVzeUMsbUJBQXdCalQsS0FBS2tELFVBQVUya0MsTUFHMUQsQ0FDTHRxRSxLQUFNLDZCQUNOODhCLFFBQVM0WSxFQUNWLEdBSUwsSUFRSWpMLEVBQVksQ0FDZDgvQixlQUFlMzRCLEVBQUFBLEdBQUFBLGlCQUNacHdDLEdBQ1FBLElBQVNvNkIsRUFBQUEsR0FBQUEsU0FFakJnWixHQUFTQSxFQUFLL3hDLElBQUksa0JBQW9CLFFBSTNDLE1BQU8sQ0FDTG9rQyxhQUFjLENBQ1oyTixLQUFNLENBQUU1SyxVQUFTWCxTQW5CTixDQUNibWhDLDJCQUE0QkEsQ0FBQ2hwRSxFQUFPdy9CLElBQ0QsaUJBQW5CQSxFQUFPbEUsUUFDakJ0N0IsRUFBTXNCLElBQUksZ0JBQWlCaytCLEVBQU9sRSxTQUNsQ3Q3QixHQWV1QmlwQyxjQUdqQyxDQzdIQSxJQUlJLEdBSkksU0FBU2xqQyxHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsUUFBYSxXQUFhLE9BQU9takUsRUFBc0YsT0FBRyxJQ0E3SixHQUpJLFNBQVNsakUsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLFFBQWEsV0FBYSxPQUFPb2pFLEVBQTBHLE9BQUcsSUNBakwsR0FKSSxTQUFTbmpFLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxRQUFhLFdBQWEsT0FBT3FqRSxFQUFvRyxPQUFHLElDQTNLLEdBSkksU0FBU3BqRSxHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsUUFBYSxXQUFhLE9BQU9zakUsR0FBbUcsT0FBRyxJQ0ExSyxHQUpJLFNBQVNyakUsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLFFBQWEsV0FBYSxPQUFPdWpFLEdBQW9HLE9BQUcsSUNBM0ssR0FKSSxTQUFTdGpFLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxRQUFhLFdBQWEsT0FBT3dqRSxHQUFvRyxPQUFHLElDQTNLLEdBSkksU0FBU3ZqRSxHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsUUFBYSxXQUFhLE9BQU95akUsR0FBb0csT0FBRyxJQ0EzSyxHQUpJLFNBQVN4akUsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLFFBQWEsV0FBYSxPQUFPMGpFLEdBQTBHLE9BQUcsSUNvQnJMLGVBWGtCbi9CLEtBQ2hCK1YsR0FBQUEsUUFBQUEsaUJBQW1DLE9BQVFxVyxHQUFBQSxTQUMzQ3JXLEdBQUFBLFFBQUFBLGlCQUFtQyxLQUFNcGlCLEdBQUFBLFNBQ3pDb2lCLEdBQUFBLFFBQUFBLGlCQUFtQyxNQUFPejJDLEdBQUFBLFNBQzFDeTJDLEdBQUFBLFFBQUFBLGlCQUFtQyxPQUFROUwsR0FBQUEsU0FDM0M4TCxHQUFBQSxRQUFBQSxpQkFBbUMsT0FBUXFwQixHQUFBQSxTQUMzQ3JwQixHQUFBQSxRQUFBQSxpQkFBbUMsT0FBUXNwQixHQUFBQSxTQUMzQ3RwQixHQUFBQSxRQUFBQSxpQkFBbUMsYUFBY3VwQixHQUFBQSxTQUNqRHZwQixHQUFBQSxRQUFBQSxpQkFBbUMsYUFBY3dwQixHQUFBQSxRQUFXLEVDakIxRCxHQUpJLFNBQVM3akUsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLFFBQWEsV0FBYSxPQUFPK2pFLEdBQWtHLE9BQUcsSUNBekssR0FKSSxTQUFTOWpFLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxRQUFhLFdBQWEsT0FBT2drRSxHQUFpRyxPQUFHLElDQXhLLEdBSkksU0FBUy9qRSxHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsUUFBYSxXQUFhLE9BQU9pa0UsR0FBb0csT0FBRyxJQ0EzSyxHQUpJLFNBQVNoa0UsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLFFBQWEsV0FBYSxPQUFPa2tFLEdBQWlHLE9BQUcsSUNBeEssR0FKSSxTQUFTamtFLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxRQUFhLFdBQWEsT0FBT21rRSxHQUFxRyxPQUFHLElDQTVLLEdBSkksU0FBU2xrRSxHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsUUFBYSxXQUFhLE9BQU9va0UsR0FBMkcsT0FBRyxJQ0FsTCxHQUpJLFNBQVNua0UsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLFFBQWEsV0FBYSxPQUFPcWtFLEdBQWlHLE9BQUcsSUNPckssTUFBTUMsR0FBUyxDQUNwQkMsTUFBSyxXQUNMQyxLQUFJLFdBQ0pDLFFBQU8sV0FDUEMsS0FBSSxXQUNKQyxTQUFRLFdBQ1IsaUJBQWtCQyxHQUFBQSxRQUNsQkMsS0FBSUEsR0FBQUEsU0FHT0MsR0FBZVAsR0FBQUEsUUNvQjVCLGlDQWxDMEJqcUIsRUFDeEJpQyxXQUNBdEksWUFBWSxHQUNaNVMsYUFDQTBqQyxxQkFBcUIsQ0FBQyxFQUN0QnRvQixXQUFXLE9BRVgsTUFBTXVvQixFQUFRM2pDLElBQWE0akMsZ0JBQWdCRCxPQUNyQyxPQUFFVixFQUFNLGFBQUVRLEdBQWlCQyxFQUMzQjExQixFQUFRaTFCLElBQVNVLElBQVVGLEVBRWpDLE9BQ0VyakMsR0FBQUEsUUFBQUEsY0FBQ3lqQyxHQUFBQSxRQUFzQixDQUNyQjNvQixTQUFVQSxFQUNWdEksVUFBV0EsRUFDWDVFLE1BQU9BLEdBRU5vTixFQUNzQixFQ3JCekIsR0FKSSxTQUFTeDhDLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxRQUFhLFdBQWEsT0FBT21sRSxHQUErRCxPQUFHLElDc0cxSSw2QkFqR3NCcG1CLEVBQ3BCcW1CLFdBQVcsZUFDWG54QixZQUNBb3hCLGVBQ0ExNEIsZUFDQTI0QixVQUNBL29CLFdBQ0FFLGVBRUEsTUFBTXBDLEdBQVV4bUIsRUFBQUEsR0FBQUEsUUFBTyxNQUNqQnltQixFQUFvQjNOLEVBQWEscUJBQXFCLEdBTXREcU8scUNBQXdDMTVDLElBQzVDLE1BQU0sT0FBRTVMLEVBQU0sT0FBRXVsRCxHQUFXMzVDLEdBRXpCNDVDLGFBQWNDLEVBQ2RDLGFBQWNDLEVBQWEsVUFDM0JDLEdBQ0U1bEQsRUFFd0J5bEQsRUFBZ0JFLElBQ0gsSUFBZEMsR0FBbUJMLEVBQVMsR0FGbENJLEVBQWdCQyxHQUdTSCxHQUFpQkYsRUFBUyxJQUd0RTM1QyxFQUFFaTZDLGdCQUNKLEVBNEJGLE9BekJBNW5CLEVBQUFBLEdBQUFBLFlBQVUsS0FDUixNQUFNNm5CLEVBQWE3Z0QsTUFBTTZQLEtBQUs2dkMsRUFBUTV5QixRQUFRK3pCLFlBQVkveUIsUUFDdkRnekIsS0FBV0EsRUFBS0MsVUFBWUQsRUFBS0UsVUFBVTNRLFNBQVMsZ0JBWXZELE9BUkF3USxFQUFXcDRDLFNBQVNxNEMsR0FDbEJBLEVBQUt4Z0QsaUJBQ0gsYUFDQSsvQyxxQ0FDQSxDQUFFWSxTQUFTLE1BSVIsS0FFTEosRUFBV3A0QyxTQUFTcTRDLEdBQ2xCQSxFQUFLcmdELG9CQUNILGFBQ0E0L0MsdUNBRUgsQ0FDRixHQUNBLENBQUN5QixFQUFVeEksRUFBV3NJLElBR3ZCOWEsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxpQkFBaUJqRSxJQUFLcUssR0FDbENpckIsR0FDQzdqQyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLHFCQUNieFMsR0FBQUEsUUFBQUEsY0FBQzBYLEdBQUFBLGdCQUFlLENBQUNyekMsS0FBTTIyQyxHQUNyQmhiLEdBQUFBLFFBQUFBLGNBQUEsaUJBS0o0akMsRUFDQTVqQyxHQUFBQSxRQUFBQSxjQUFBLFVBQVF3UyxVQUFVLG9CQUFvQitILFFBekRyQnVwQixNQUNyQkMsRUFBQUEsR0FBQUEsU0FBTy9vQixFQUFVMm9CLEVBQVMsR0F3RHlDLFlBRGhELEtBTWpCM2pDLEdBQUFBLFFBQUFBLGNBQUM2WSxFQUFpQixDQUNoQmlDLFNBQVVBLEVBQ1Z0SSxXQUFXbUksRUFBQUEsR0FBQUEsU0FBV25JLEVBQVcsY0FDakN1SSxnQkFBaUJBLEVBQUdDLFdBQVVDLHFCQUM1QmpiLEdBQUFBLFFBQUFBLGNBQUNpYixFQUFlLENBQUN6SSxVQUFXQSxHQUFZd0ksSUFHekNBLEdBRUMsRUM1RVYsK0JBVHdCQyxFQUFHekksWUFBWSxHQUFJd0ksY0FDekNoYixHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxXQUFXbUksRUFBQUEsR0FBQUEsU0FBVyxhQUFjbkksSUFBYXdJLEdDc0J4RCxzQ0F4QmlDZ3BCLENBQUNDLEVBQVVubUMsSUFDaEIrYSxFQUFHa0Msa0JBQWlCQyxjQUFhckksTUFDekQsTUFBTXV4QixFQUFxQnBtQyxFQUFPOEIsYUFBYTRqQyxnQkFBZ0JXLFVBQ3pEbHBCLEVBQWtCbmQsRUFBT29OLGFBQWEsbUJBRTVDLE9BQUtnNUIsR0FBaUQsbUJBQXBCbnBCLEVBRzdCbXBCLEVBSUVsa0MsR0FBQUEsUUFBQUEsY0FBQ2lrQyxFQUFhdHhCLEVBQU9xSSxHQUhuQmhiLEdBQUFBLFFBQUFBLGNBQUNpYixFQUFlLEtBQUVELEdBSGxCRCxFQUFnQixDQUFFQyxXQUFVQyxtQkFNVyxFQ1JwRCxNQUFNbXBCLDBCQUE0QkEsS0FBQSxDQUNoQ3RoQyxVQUFTLFdBQ1Q3RSxZQUFhLENBQ1hxbEMsbUJBQW9CLENBQUVULE9BQU0sR0FBRVEsYUFBWSxLQUU1Q3JsQyxXQUFZLENBQ1Y2YSxrQkFBaUIsNkJBQ2pCeUUsY0FBYSx5QkFDYnJDLGdCQUFlQSw4QkFJYm9wQiwwQkFBNEJBLEtBQUEsQ0FDaEN0aEMsZUFBZ0IsQ0FDZDhWLGtCQUFtQm1yQixxQ0FTdkIsd0JBTGlDTSxJQUFNLENBQ3JDRiwwQkFDQUMsMkJDWkYsd0JBYmtCdmhDLEtBRWhCLE1BQU0sVUFBRXloQyxFQUFTLFdBQUVDLEVBQVUsZ0JBQUVDLEVBQWUsV0FBRUMsR0FBZUMsQ0FBQUEsZ0JBQUFBLFNBQUFBLFdBQUFBLFlBQUFBLFdBQUFBLEVBQUFBLFdBQUFBLGlDQUUvRHB3QyxHQUFJMVQsU0FBVzBULEdBQUkxVCxVQUFZLENBQUMsRUFDaEMwVCxHQUFJMVQsU0FBUytqRCxVQUFZLENBQ3ZCdGhFLFFBQVNtaEUsRUFDVEksWUFBYUwsRUFDYk0sU0FBVVAsRUFDVlEsZUFBZ0JMLEVBQ2pCLEVDTkgsYUFKdUJNLEtBQUEsQ0FDckJsaUMsVUFBU0Esc0JDRlAsR0FKSSxTQUFTdGtDLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxRQUFhLFdBQWEsT0FBTzBtRSxHQUErRCxPQUFHLElDRm5JLE1BQU1DLEdBQW9CL3NFLFFBQVFrQyxNQUk1QjhxRSxrQkFBcUJydEMsR0FBZXduQyxJQUMvQyxNQUFNLGFBQUVwMEIsRUFBWSxHQUFFajFCLEdBQU82aEIsSUFDdkJzdEMsRUFBZ0JsNkIsRUFBYSxpQkFDN0JtNkIsRUFBYXB2RCxFQUFHdXBELGVBQWVGLEdBRXJDLE1BQU1nRywwQkFBMEIzekMsR0FBQUEsVUFDOUJzWixNQUFBQSxHQUNFLE9BQ0VqTCxHQUFBQSxRQUFBQSxjQUFDb2xDLEVBQWEsQ0FBQ0MsV0FBWUEsRUFBWW42QixhQUFjQSxFQUFjajFCLEdBQUlBLEdBQ3JFK3BCLEdBQUFBLFFBQUFBLGNBQUNzL0IsR0FBZ0Ixc0IsRUFBQUEsR0FBQUEsU0FBQSxHQUFLMTlDLEtBQUtzeUIsTUFBV3R5QixLQUFLc0YsVUFHakQsRUFkcUIrcUUsSUFBQXJqQyxFQXlCdkIsT0FUQW9qQyxrQkFBa0I3bEIsWUFBYyxxQkFBcUI0bEIsTUFoQjlCbmpDLEVBaUJGbzlCLEdBakJ5QmpyRSxXQUFhNnRDLEVBQVU3dEMsVUFBVW14RSxtQkFzQjdFRixrQkFBa0JqeEUsVUFBVXkyQyxnQkFBa0J3MEIsRUFBaUJqckUsVUFBVXkyQyxpQkFHcEV3NkIsaUJBQWlCLEVDakIxQixhQVRpQkcsRUFBR2x3RSxVQUNsQnlxQyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLFlBQVcsTUFDckJ4UyxHQUFBQSxRQUFBQSxjQUFBLFNBQUcsb0JBQTRCLE1BQVR6cUMsRUFBZSxpQkFBbUJBLEVBQU0sdUJDQzlELE1BQU02dkUsc0JBQXNCenpDLEdBQUFBLFVBV2pDeXBCLG9CQUFzQixDQUNwQmlxQixXQUFZLGlCQUNabjZCLGFBQWNBLElBQU11NkIsU0FDcEJ4dkQsR0FBSSxDQUNGaXZELGtCQUFpQkEsSUFFbkJscUIsU0FBVSxNQUdaLCtCQUFPMHFCLENBQXlCcnJFLEdBQzlCLE1BQU8sQ0FBRXNyRSxVQUFVLEVBQU10ckUsUUFDM0IsQ0FFQW1DLFdBQUFBLElBQWVySSxHQUNic2dCLFNBQVN0Z0IsR0FDVGUsS0FBS3VELE1BQVEsQ0FBRWt0RSxVQUFVLEVBQU90ckUsTUFBTyxLQUN6QyxDQUVBNnFFLGlCQUFBQSxDQUFrQjdxRSxFQUFPdXJFLEdBQ3ZCMXdFLEtBQUtzeUIsTUFBTXZSLEdBQUdpdkQsa0JBQWtCN3FFLEVBQU91ckUsRUFDekMsQ0FFQTM2QixNQUFBQSxHQUNFLE1BQU0sYUFBRUMsRUFBWSxXQUFFbTZCLEVBQVUsU0FBRXJxQixHQUFhOWxELEtBQUtzeUIsTUFFcEQsR0FBSXR5QixLQUFLdUQsTUFBTWt0RSxTQUFVLENBQ3ZCLE1BQU1FLEVBQW9CMzZCLEVBQWEsWUFDdkMsT0FBT2xMLEdBQUFBLFFBQUFBLGNBQUM2bEMsRUFBaUIsQ0FBQ3R3RSxLQUFNOHZFLEdBQ2xDLENBRUEsT0FBT3JxQixDQUNULEVBR0YscUJDVkEsZ0JBbkN5QjhxQixFQUFFQyxnQkFBZ0IsR0FBSUMsZ0JBQWUsR0FBUyxDQUFDLElBQU0sRUFBR2x1QyxnQkFDL0UsTUFpQk1tdUMsRUFBc0JELEVBQWVELEVBQWdCLENBaEJ6RCxNQUNBLGFBQ0Esc0JBQ0EsZ0JBQ0EsbUJBQ0EsbUJBQ0Esd0JBQ0Esa0JBQ0EsYUFDQSxxQkFDQSxhQUNBLFlBQ0EsbUJBQ0EsU0FDQSxrQkFFc0ZBLEdBRWxGaGpDLEdBQWlCbWpDLEVBQUFBLEdBQUFBLFNBQVVELEVBQXFCL3NFLE1BQU0rc0UsRUFBb0J0dUUsUUFBUXdXLE1BRHBFZzRELENBQUNsQyxHQUFZaHVELFFBQVNBLEVBQUdrdkQsa0JBQWtCbEIsTUFHL0QsTUFBTyxDQUNMaHVELEdBQUksQ0FDRml2RCxrQkFBaUIsR0FDakJDLGtCQUFtQkEsa0JBQWtCcnRDLElBRXZDa0csV0FBWSxDQUNWb25DLGNBQWEsR0FDYkssU0FBUUEsVUFFVjFpQyxpQkFDRCxFQ2hDSCxNQUFNdzlCLFlBQVl2Z0MsR0FBQUEsUUFBQUEsVUFDaEJvbUMsU0FBQUEsR0FDRSxNQUFNLGFBQUVsN0IsRUFBWSxnQkFBRTZELEdBQW9CNzVDLEtBQUtzeUIsTUFDekM2K0MsRUFBYXQzQixFQUFnQi9vQixVQUM3QjJMLEVBQVl1WixFQUFhbTdCLEdBQVksR0FFM0MsT0FBTzEwQyxHQUVILEtBQU1xTyxHQUFBQSxRQUFBQSxjQUFBLFVBQUksMkJBQThCcW1DLEVBQVcsTUFDekQsQ0FFQXA3QixNQUFBQSxHQUNFLE1BQU1xN0IsRUFBU3B4RSxLQUFLa3hFLFlBRXBCLE9BQU9wbUMsR0FBQUEsUUFBQUEsY0FBQ3NtQyxFQUFNLEtBQ2hCLEVBUUYsV0MxQmUsTUFBTUMsMkJBQTJCdm1DLEdBQUFBLFFBQUFBLFVBQzlDckwsTUFBT0EsS0FDTCxJQUFJLFlBQUVtUCxHQUFnQjV1QyxLQUFLc3lCLE1BRTNCc2MsRUFBWUgsaUJBQWdCLEVBQU0sRUFHcENzSCxNQUFBQSxHQUNFLElBQUksY0FBRXpFLEVBQWEsWUFBRTFDLEVBQVcsYUFBRW9ILEVBQVksYUFBRTB1QixFQUFZLGNBQUVyekIsRUFBZXR3QixJQUFJLElBQUU2aUQsRUFBTSxDQUFDLElBQVE1akUsS0FBS3N5QixNQUNuR3doQixFQUFjeEMsRUFBY3NDLG1CQUNoQyxNQUFNMDlCLEVBQVF0N0IsRUFBYSxTQUNyQnlJLEVBQVl6SSxFQUFhLGFBRS9CLE9BQ0VsTCxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGFBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGdCQUNmeFMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxZQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxtQkFDYnhTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsa0JBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLG1CQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxVQUFJLDRCQUNKQSxHQUFBQSxRQUFBQSxjQUFBLFVBQVEvb0MsS0FBSyxTQUFTdTdDLFVBQVUsY0FBYytILFFBQVVybEQsS0FBS3kvQixPQUMzRHFMLEdBQUFBLFFBQUFBLGNBQUMyVCxFQUFTLFFBR2QzVCxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLG9CQUdYeEosRUFBWUksV0FBV3RzQyxLQUFJLENBQUVzMEIsRUFBWTcxQixJQUNoQ3lrQyxHQUFBQSxRQUFBQSxjQUFDd21DLEVBQUssQ0FBQ2pyRSxJQUFNQSxFQUNOdTlELElBQUtBLEVBQ0w5dkIsWUFBYzVYLEVBQ2Q4WixhQUFlQSxFQUNmMHVCLGFBQWVBLEVBQ2ZwekIsY0FBZ0JBLEVBQ2hCMUMsWUFBY0EsRUFDZHlDLGNBQWdCQSxVQVNoRCxFQzdDYSxNQUFNa2dDLHFCQUFxQnptQyxHQUFBQSxRQUFBQSxVQVF4Q2lMLE1BQUFBLEdBQ0UsSUFBSSxhQUFFcEIsRUFBWSxVQUFFNjhCLEVBQVMsUUFBRW5zQixFQUFPLGFBQUVyUCxHQUFpQmgyQyxLQUFLc3lCLE1BRzlELE1BQU0rK0MsRUFBcUJyN0IsRUFBYSxzQkFBc0IsR0FDeERMLEVBQWVLLEVBQWEsZ0JBQWdCLEdBQzVDRSxFQUFpQkYsRUFBYSxrQkFBa0IsR0FFdEQsT0FDRWxMLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsZ0JBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLFVBQVF3UyxVQUFXM0ksRUFBZSx1QkFBeUIseUJBQTBCMFEsUUFBU0EsR0FDNUZ2YSxHQUFBQSxRQUFBQSxjQUFBLFlBQU0sYUFDTDZKLEVBQWU3SixHQUFBQSxRQUFBQSxjQUFDNkssRUFBWSxNQUFNN0ssR0FBQUEsUUFBQUEsY0FBQ29MLEVBQWMsT0FFcERzN0IsR0FBYTFtQyxHQUFBQSxRQUFBQSxjQUFDdW1DLEVBQWtCLE1BR3RDLEVDekJhLE1BQU1JLDhCQUE4QjNtQyxHQUFBQSxRQUFBQSxVQVVqRGlMLE1BQUFBLEdBQ0UsTUFBTSxZQUFFbkgsRUFBVyxjQUFFMEMsRUFBYSxjQUFFRCxFQUFhLGFBQUUyRSxHQUFnQmgyQyxLQUFLc3lCLE1BRWxFeWhCLEVBQXNCMUMsRUFBYzBDLHNCQUNwQzI5QixFQUEwQnBnQyxFQUFjdUMseUJBRXhDMDlCLEVBQWV2N0IsRUFBYSxnQkFFbEMsT0FBT2pDLEVBQ0xqSixHQUFBQSxRQUFBQSxjQUFDeW1DLEVBQVksQ0FDWGxzQixRQUFTQSxJQUFNelcsRUFBWUgsZ0JBQWdCaWpDLEdBQzNDLzhCLGVBQWdCckQsRUFBY3dCLGFBQWE1aEMsS0FDM0NzZ0UsWUFBYWxnQyxFQUFjc0MsbUJBQzNCb0MsYUFBY0EsSUFFZCxJQUNOLEVDMUJhLE1BQU0yN0IsOEJBQThCN21DLEdBQUFBLFFBQUFBLFVBT2pEdWEsUUFBVTE2QyxJQUNSQSxFQUFFaW5FLGtCQUNGLElBQUksUUFBRXZzQixHQUFZcmxELEtBQUtzeUIsTUFFcEIreUIsR0FDREEsR0FDRixFQUdGdFAsTUFBQUEsR0FDRSxJQUFJLGFBQUVwQixFQUFZLGFBQUVxQixHQUFpQmgyQyxLQUFLc3lCLE1BRTFDLE1BQU1pa0IsRUFBd0JQLEVBQWEseUJBQXlCLEdBQzlEUSxFQUEwQlIsRUFBYSwyQkFBMkIsR0FFeEUsT0FDRWxMLEdBQUFBLFFBQUFBLGNBQUEsVUFBUXdTLFVBQVUscUJBQ2hCLGFBQVkzSSxFQUFlLDhCQUFnQyxnQ0FDM0QwUSxRQUFTcmxELEtBQUtxbEQsU0FDYjFRLEVBQWU3SixHQUFBQSxRQUFBQSxjQUFDeUwsRUFBcUIsQ0FBQytHLFVBQVUsV0FBY3hTLEdBQUFBLFFBQUFBLGNBQUMwTCxFQUF1QixDQUFDOEcsVUFBVSxhQUl4RyxFQzdCYSxNQUFNZzBCLGNBQWN4bUMsR0FBQUEsUUFBQUEsVUFVakN4akMsV0FBQUEsQ0FBWWdyQixFQUFPaHRCLEdBQ2pCaWEsTUFBTStTLEVBQU9odEIsR0FFYnRGLEtBQUt1RCxNQUFRLENBQUMsQ0FDaEIsQ0FFQXN1RSxhQUFlM2lDLElBQ2IsSUFBSSxLQUFFN3VDLEdBQVM2dUMsRUFFZmx2QyxLQUFLNm1ELFNBQVMsQ0FBRSxDQUFDeG1ELEdBQU82dUMsR0FBTyxFQUdqQzRpQyxXQUFhbm5FLElBQ1hBLEVBQUVpNkMsaUJBRUYsSUFBSSxZQUFFaFcsR0FBZ0I1dUMsS0FBS3N5QixNQUMzQnNjLEVBQVlELDJCQUEyQjN1QyxLQUFLdUQsTUFBTSxFQUdwRHd1RSxZQUFjcG5FLElBQ1pBLEVBQUVpNkMsaUJBRUYsSUFBSSxZQUFFaFcsRUFBVyxZQUFFa0YsR0FBZ0I5ekMsS0FBS3N5QixNQUNwQzAvQyxFQUFRbCtCLEVBQVlsc0MsS0FBSyxDQUFDb08sRUFBSzNQLElBQzFCQSxJQUNOay9CLFVBRUh2bEMsS0FBSzZtRCxTQUFTbXJCLEVBQU16OUMsUUFBTyxDQUFDcXdDLEVBQU0xMUIsS0FDaEMwMUIsRUFBSzExQixHQUFRLEdBQ04wMUIsSUFDTixDQUFDLElBRUpoMkIsRUFBWUcsd0JBQXdCaWpDLEVBQU0sRUFHNUN2eUMsTUFBUTkwQixJQUNOQSxFQUFFaTZDLGlCQUNGLElBQUksWUFBRWhXLEdBQWdCNXVDLEtBQUtzeUIsTUFFM0JzYyxFQUFZSCxpQkFBZ0IsRUFBTSxFQUdwQ3NILE1BQUFBLEdBQ0UsSUFBSSxZQUFFakMsRUFBVyxhQUFFa0MsRUFBWSxjQUFFMUUsRUFBYSxhQUFFb3pCLEdBQWlCMWtFLEtBQUtzeUIsTUFDdEUsTUFBTTIvQyxFQUFXajhCLEVBQWEsWUFDeEJrOEIsRUFBU2w4QixFQUFhLFVBQVUsR0FDaENpZCxFQUFTamQsRUFBYSxVQUU1QixJQUFJbEQsRUFBYXhCLEVBQWN3QixhQUUzQnEvQixFQUFpQnIrQixFQUFZaGlCLFFBQVEsQ0FBQ29LLEVBQVk3MUIsTUFDM0N5c0MsRUFBV2x1QyxJQUFJeUIsS0FHdEIrckUsRUFBc0J0K0IsRUFBWWhpQixRQUFRMk8sR0FBaUMsV0FBdkJBLEVBQU83N0IsSUFBSSxVQUMvRHl0RSxFQUFtQnYrQixFQUFZaGlCLFFBQVEyTyxHQUFpQyxXQUF2QkEsRUFBTzc3QixJQUFJLFVBRWhFLE9BQ0VrbUMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxvQkFFVDgwQixFQUFvQmxoRSxNQUFRNDVCLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXduQyxTQUFXdHlFLEtBQUs4eEUsWUFFaERNLEVBQW9CeHFFLEtBQUssQ0FBQzY0QixFQUFRcGdDLElBQ3pCeXFDLEdBQUFBLFFBQUFBLGNBQUNtbkMsRUFBUSxDQUNkNXJFLElBQUtoRyxFQUNMb2dDLE9BQVFBLEVBQ1JwZ0MsS0FBTUEsRUFDTjIxQyxhQUFjQSxFQUNkNjdCLGFBQWM3eEUsS0FBSzZ4RSxhQUNuQi8rQixXQUFZQSxFQUNaNHhCLGFBQWNBLEVBQ2RwekIsY0FBZUEsTUFFaEIvTCxVQUVMdUYsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxvQkFFWDgwQixFQUFvQmxoRSxPQUFTaWhFLEVBQWVqaEUsS0FBTzQ1QixHQUFBQSxRQUFBQSxjQUFDbW9CLEVBQU0sQ0FBQzNWLFVBQVUscUJBQXFCK0gsUUFBVXJsRCxLQUFLK3hFLFlBQWMsYUFBVyx3QkFBdUIsVUFDekpqbkMsR0FBQUEsUUFBQUEsY0FBQ21vQixFQUFNLENBQUNseEQsS0FBSyxTQUFTdTdDLFVBQVUsK0JBQStCLGFBQVcscUJBQW9CLGFBRWhHeFMsR0FBQUEsUUFBQUEsY0FBQ21vQixFQUFNLENBQUMzVixVQUFVLDhCQUE4QitILFFBQVVybEQsS0FBS3kvQixPQUFRLFdBTTNFNHlDLEdBQW9CQSxFQUFpQm5oRSxLQUFPNDVCLEdBQUFBLFFBQUFBLGNBQUEsV0FDNUNBLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsYUFDYnhTLEdBQUFBLFFBQUFBLGNBQUEsU0FBRyxrSkFDSEEsR0FBQUEsUUFBQUEsY0FBQSxTQUFHLDBGQUdEZ0osRUFBWWhpQixRQUFRMk8sR0FBaUMsV0FBdkJBLEVBQU83N0IsSUFBSSxVQUN0Q2dELEtBQUssQ0FBQzY0QixFQUFRcGdDLElBQ0x5cUMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLemtDLElBQU1oRyxHQUNqQnlxQyxHQUFBQSxRQUFBQSxjQUFDb25DLEVBQU0sQ0FBQ3AvQixXQUFhQSxFQUNiclMsT0FBU0EsRUFDVHBnQyxLQUFPQSxPQUdqQmtsQyxXQUVDLEtBS2pCLEVDckhhLE1BQU0rckMsd0JBQWN4bUMsR0FBQUEsUUFBQUEsVUFXakNpTCxNQUFBQSxHQUNFLElBQUksT0FDRnRWLEVBQU0sS0FDTnBnQyxFQUFJLGFBQ0oyMUMsRUFBWSxhQUNaNjdCLEVBQVksV0FDWi8rQixFQUFVLGFBQ1Y0eEIsRUFBWSxjQUNacHpCLEdBQ0V0eEMsS0FBS3N5QixNQUNULE1BQU1pZ0QsRUFBYXY4QixFQUFhLGNBQzFCdzhCLEVBQVl4OEIsRUFBYSxhQUUvQixJQUFJeThCLEVBRUosTUFBTTF3RSxFQUFPMCtCLEVBQU83N0IsSUFBSSxRQUV4QixPQUFPN0MsR0FDTCxJQUFLLFNBQVUwd0UsRUFBUzNuQyxHQUFBQSxRQUFBQSxjQUFDeW5DLEVBQVUsQ0FBQ2xzRSxJQUFNaEcsRUFDUm9nQyxPQUFTQSxFQUNUcGdDLEtBQU9BLEVBQ1Bxa0UsYUFBZUEsRUFDZjV4QixXQUFhQSxFQUNia0QsYUFBZUEsRUFDZjhaLFNBQVcraEIsRUFDWHZnQyxjQUFrQkEsSUFDbEQsTUFDRixJQUFLLFFBQVNtaEMsRUFBUzNuQyxHQUFBQSxRQUFBQSxjQUFDMG5DLEVBQVMsQ0FBQ25zRSxJQUFNaEcsRUFDUm9nQyxPQUFTQSxFQUNUcGdDLEtBQU9BLEVBQ1Bxa0UsYUFBZUEsRUFDZjV4QixXQUFhQSxFQUNia0QsYUFBZUEsRUFDZjhaLFNBQVcraEIsRUFDWHZnQyxjQUFrQkEsSUFDaEQsTUFDRixRQUFTbWhDLEVBQVMzbkMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLemtDLElBQU1oRyxHQUFPLG9DQUFtQzBCLEdBR3pFLE9BQVErb0MsR0FBQUEsUUFBQUEsY0FBQSxPQUFLemtDLElBQUssR0FBR2hHLFVBQ2pCb3lFLEVBRU4sRUN0RGEsTUFBTUMsa0JBQWtCNW5DLEdBQUFBLFFBQUFBLFVBTXJDaUwsTUFBQUEsR0FDRSxJQUFJLE1BQUU1d0MsR0FBVW5GLEtBQUtzeUIsTUFFakJpZCxFQUFRcHFDLEVBQU1QLElBQUksU0FDbEJTLEVBQVVGLEVBQU1QLElBQUksV0FDcEJzZCxFQUFTL2MsRUFBTVAsSUFBSSxVQUV2QixPQUNFa21DLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsVUFDYnhTLEdBQUFBLFFBQUFBLGNBQUEsU0FBSzVvQixFQUFRLElBQUdxdEIsR0FDaEJ6RSxHQUFBQSxRQUFBQSxjQUFBLFlBQVF6bEMsR0FHZCxFQ25CYSxNQUFNa3RFLG1CQUFtQnpuQyxHQUFBQSxRQUFBQSxVQVd0Q3hqQyxXQUFBQSxDQUFZZ3JCLEVBQU9odEIsR0FDakJpYSxNQUFNK1MsRUFBT2h0QixHQUNiLElBQUksS0FBRWpGLEVBQUksT0FBRW9nQyxHQUFXemdDLEtBQUtzeUIsTUFDeEJ6eUIsRUFBUUcsS0FBSzJ5RSxXQUVqQjN5RSxLQUFLdUQsTUFBUSxDQUNYbEQsS0FBTUEsRUFDTm9nQyxPQUFRQSxFQUNSNWdDLE1BQU9BLEVBRVgsQ0FFQTh5RSxRQUFBQSxHQUNFLElBQUksS0FBRXR5RSxFQUFJLFdBQUV5eUMsR0FBZTl5QyxLQUFLc3lCLE1BRWhDLE9BQU93Z0IsR0FBY0EsRUFBV2pTLE1BQU0sQ0FBQ3hnQyxFQUFNLFNBQy9DLENBRUF5dkQsU0FBV25sRCxJQUNULElBQUksU0FBRW1sRCxHQUFhOXZELEtBQUtzeUIsTUFDcEJ6eUIsRUFBUThLLEVBQUU1TCxPQUFPYyxNQUNqQmtvRSxFQUFXem9FLE9BQU9vakMsT0FBTyxDQUFDLEVBQUcxaUMsS0FBS3VELE1BQU8sQ0FBRTFELE1BQU9BLElBRXRERyxLQUFLNm1ELFNBQVNraEIsR0FDZGpZLEVBQVNpWSxFQUFTLEVBR3BCaHlCLE1BQUFBLEdBQ0UsSUFBSSxPQUFFdFYsRUFBTSxhQUFFdVYsRUFBWSxhQUFFMHVCLEVBQVksS0FBRXJrRSxFQUFJLGNBQUVpeEMsR0FBa0J0eEMsS0FBS3N5QixNQUN2RSxNQUFNaS9CLEVBQVF2YixFQUFhLFNBQ3JCNDhCLEVBQU01OEIsRUFBYSxPQUNuQjY4QixFQUFNNzhCLEVBQWEsT0FDbkIwOEIsRUFBWTE4QixFQUFhLGFBQ3pCeVksRUFBV3pZLEVBQWEsWUFBWSxHQUNwQ21XLEVBQWFuVyxFQUFhLGNBQWMsR0FDeENsQixFQUFPeEQsRUFBYzBDLGVBQWUzekMsR0FDMUMsSUFBSVIsRUFBUUcsS0FBSzJ5RSxXQUNidnpELEVBQVNzbEQsRUFBYWxvQixZQUFZMXFCLFFBQVFweEIsR0FBT0EsRUFBSWtFLElBQUksWUFBY3ZFLElBRTNFLE9BQ0V5cUMsR0FBQUEsUUFBQUEsY0FBQSxXQUNFQSxHQUFBQSxRQUFBQSxjQUFBLFVBQ0VBLEdBQUFBLFFBQUFBLGNBQUEsWUFBUXpxQyxHQUFRb2dDLEVBQU83N0IsSUFBSSxTQUFnQixZQUMzQ2ttQyxHQUFBQSxRQUFBQSxjQUFDcWhCLEVBQVUsQ0FBQ3JYLEtBQU1BLEtBRWxCajFDLEdBQVNpckMsR0FBQUEsUUFBQUEsY0FBQSxVQUFJLGNBQ2ZBLEdBQUFBLFFBQUFBLGNBQUM4bkMsRUFBRyxLQUNGOW5DLEdBQUFBLFFBQUFBLGNBQUMyakIsRUFBUSxDQUFDdnNDLE9BQVN1ZSxFQUFPNzdCLElBQUksa0JBRWhDa21DLEdBQUFBLFFBQUFBLGNBQUM4bkMsRUFBRyxLQUNGOW5DLEdBQUFBLFFBQUFBLGNBQUEsU0FBRyxTQUFNQSxHQUFBQSxRQUFBQSxjQUFBLFlBQVFySyxFQUFPNzdCLElBQUksV0FFOUJrbUMsR0FBQUEsUUFBQUEsY0FBQzhuQyxFQUFHLEtBQ0Y5bkMsR0FBQUEsUUFBQUEsY0FBQSxTQUFHLE9BQUlBLEdBQUFBLFFBQUFBLGNBQUEsWUFBUXJLLEVBQU83N0IsSUFBSSxTQUU1QmttQyxHQUFBQSxRQUFBQSxjQUFDOG5DLEVBQUcsS0FDRjluQyxHQUFBQSxRQUFBQSxjQUFBLFNBQU9pbEIsUUFBUSxpQkFBZ0IsVUFFN0Jsd0QsRUFBUWlyQyxHQUFBQSxRQUFBQSxjQUFBLFlBQU0sWUFDTkEsR0FBQUEsUUFBQUEsY0FBQytuQyxFQUFHLEtBQ0YvbkMsR0FBQUEsUUFBQUEsY0FBQ3ltQixFQUFLLENBQ0pscEIsR0FBRyxnQkFDSHRtQyxLQUFLLE9BQ0wrdEQsU0FBVzl2RCxLQUFLOHZELFNBQ2hCZ2pCLFdBQVMsTUFNdkIxekQsRUFBTzgwQixXQUFXdHNDLEtBQUssQ0FBQ3pDLEVBQU9rQixJQUN0QnlrQyxHQUFBQSxRQUFBQSxjQUFDNG5DLEVBQVMsQ0FBQ3Z0RSxNQUFRQSxFQUNSa0IsSUFBTUEsTUFLbEMsRUN2RmEsTUFBTW1zRSxrQkFBa0IxbkMsR0FBQUEsUUFBQUEsVUFXckN4akMsV0FBQUEsQ0FBWWdyQixFQUFPaHRCLEdBQ2pCaWEsTUFBTStTLEVBQU9odEIsR0FDYixJQUFJLE9BQUVtN0IsRUFBTSxLQUFFcGdDLEdBQVNMLEtBQUtzeUIsTUFHeEJxZCxFQURRM3ZDLEtBQUsyeUUsV0FDSWhqQyxTQUVyQjN2QyxLQUFLdUQsTUFBUSxDQUNYbEQsS0FBTUEsRUFDTm9nQyxPQUFRQSxFQUNSNWdDLE1BQVE4dkMsRUFBZ0IsQ0FDdEJBLFNBQVVBLEdBRE8sQ0FBQyxFQUl4QixDQUVBZ2pDLFFBQUFBLEdBQ0UsSUFBSSxXQUFFNy9CLEVBQVUsS0FBRXp5QyxHQUFTTCxLQUFLc3lCLE1BRWhDLE9BQU93Z0IsR0FBY0EsRUFBV2pTLE1BQU0sQ0FBQ3hnQyxFQUFNLFdBQWEsQ0FBQyxDQUM3RCxDQUVBeXZELFNBQVdubEQsSUFDVCxJQUFJLFNBQUVtbEQsR0FBYTl2RCxLQUFLc3lCLE9BQ3BCLE1BQUV6eUIsRUFBSyxLQUFFUSxHQUFTc0ssRUFBRTVMLE9BRXBCa3pELEVBQVdqeUQsS0FBS3VELE1BQU0xRCxNQUMxQm95RCxFQUFTNXhELEdBQVFSLEVBRWpCRyxLQUFLNm1ELFNBQVMsQ0FBRWhuRCxNQUFPb3lELElBRXZCbkMsRUFBUzl2RCxLQUFLdUQsTUFBTSxFQUd0Qnd5QyxNQUFBQSxHQUNFLElBQUksT0FBRXRWLEVBQU0sYUFBRXVWLEVBQVksS0FBRTMxQyxFQUFJLGFBQUVxa0UsRUFBWSxjQUFFcHpCLEdBQWtCdHhDLEtBQUtzeUIsTUFDdkUsTUFBTWkvQixFQUFRdmIsRUFBYSxTQUNyQjQ4QixFQUFNNThCLEVBQWEsT0FDbkI2OEIsRUFBTTc4QixFQUFhLE9BQ25CMDhCLEVBQVkxOEIsRUFBYSxhQUN6Qm1XLEVBQWFuVyxFQUFhLGNBQWMsR0FDeEN5WSxFQUFXelksRUFBYSxZQUFZLEdBQ3BDbEIsRUFBT3hELEVBQWMwQyxlQUFlM3pDLEdBQzFDLElBQUlzdkMsRUFBVzN2QyxLQUFLMnlFLFdBQVdoakMsU0FDM0J2d0IsRUFBU3NsRCxFQUFhbG9CLFlBQVkxcUIsUUFBUXB4QixHQUFPQSxFQUFJa0UsSUFBSSxZQUFjdkUsSUFFM0UsT0FDRXlxQyxHQUFBQSxRQUFBQSxjQUFBLFdBQ0VBLEdBQUFBLFFBQUFBLGNBQUEsVUFBSSxzQkFBbUJBLEdBQUFBLFFBQUFBLGNBQUNxaEIsRUFBVSxDQUFDclgsS0FBTUEsS0FDdkNuRixHQUFZN0UsR0FBQUEsUUFBQUEsY0FBQSxVQUFJLGNBQ2xCQSxHQUFBQSxRQUFBQSxjQUFDOG5DLEVBQUcsS0FDRjluQyxHQUFBQSxRQUFBQSxjQUFDMmpCLEVBQVEsQ0FBQ3ZzQyxPQUFTdWUsRUFBTzc3QixJQUFJLGtCQUVoQ2ttQyxHQUFBQSxRQUFBQSxjQUFDOG5DLEVBQUcsS0FDRjluQyxHQUFBQSxRQUFBQSxjQUFBLFNBQU9pbEIsUUFBUSxpQkFBZ0IsYUFFN0JwZ0IsRUFBVzdFLEdBQUFBLFFBQUFBLGNBQUEsWUFBTSxJQUFHNkUsRUFBVSxLQUNuQjdFLEdBQUFBLFFBQUFBLGNBQUMrbkMsRUFBRyxLQUNEL25DLEdBQUFBLFFBQUFBLGNBQUN5bUIsRUFBSyxDQUNKbHBCLEdBQUcsZ0JBQ0h0bUMsS0FBSyxPQUNMMG9ELFNBQVMsV0FDVHBxRCxLQUFLLFdBQ0x5dkQsU0FBVzl2RCxLQUFLOHZELFNBQ2hCZ2pCLFdBQVMsTUFLN0Job0MsR0FBQUEsUUFBQUEsY0FBQzhuQyxFQUFHLEtBQ0Y5bkMsR0FBQUEsUUFBQUEsY0FBQSxTQUFPaWxCLFFBQVEsaUJBQWdCLGFBRTNCcGdCLEVBQVc3RSxHQUFBQSxRQUFBQSxjQUFBLFlBQU0sWUFDTkEsR0FBQUEsUUFBQUEsY0FBQytuQyxFQUFHLEtBQ0QvbkMsR0FBQUEsUUFBQUEsY0FBQ3ltQixFQUFLLENBQ0pscEIsR0FBRyxnQkFDSDBxQyxhQUFhLGVBQ2IxeUUsS0FBSyxXQUNMMEIsS0FBSyxXQUNMK3RELFNBQVc5dkQsS0FBSzh2RCxhQU1wQzF3QyxFQUFPODBCLFdBQVd0c0MsS0FBSyxDQUFDekMsRUFBT2tCLElBQ3RCeWtDLEdBQUFBLFFBQUFBLGNBQUM0bkMsRUFBUyxDQUFDdnRFLE1BQVFBLEVBQ1JrQixJQUFNQSxNQUtsQyxFQ2pHYSxTQUFTMnNFLFFBQVExZ0QsR0FDOUIsTUFBTSxRQUFFNjBCLEVBQU8sVUFBRThyQixFQUFTLGFBQUVqOUIsR0FBaUIxakIsRUFFdkNtOEIsRUFBV3pZLEVBQWEsWUFBWSxHQUNwQ29TLEVBQWdCcFMsRUFBYSxpQkFBaUIsR0FFcEQsT0FBS21SLEdBQVl4cEIsR0FBQUEsSUFBSTZDLE1BQU0ybUIsR0FHekJyYyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLFdBQ1o2SixFQUFRdmlELElBQUksZUFDWGttQyxHQUFBQSxRQUFBQSxjQUFBLFdBQVN3UyxVQUFVLG9CQUNqQnhTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsMkJBQTBCLHVCQUN6Q3hTLEdBQUFBLFFBQUFBLGNBQUEsU0FDRUEsR0FBQUEsUUFBQUEsY0FBQzJqQixFQUFRLENBQUN2c0MsT0FBUWlsQyxFQUFRdmlELElBQUksbUJBR2hDLEtBQ0hxdUUsR0FBYTlyQixFQUFRemlCLElBQUksU0FDeEJvRyxHQUFBQSxRQUFBQSxjQUFBLFdBQVN3UyxVQUFVLG9CQUNqQnhTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsMkJBQTBCLGlCQUN6Q3hTLEdBQUFBLFFBQUFBLGNBQUNzZCxFQUFhLEtBQUUxZ0IsVUFBVXlmLEVBQVF2aUQsSUFBSSxZQUV0QyxNQWpCb0MsSUFvQjlDLENDM0JlLE1BQU1zdUUsdUJBQXVCcG9DLEdBQUFBLFFBQUFBLGNBVTFDb2Isb0JBQXNCLENBQ3BCaXRCLFVBQVV4MUMsRUFBQUEsR0FBQUEsS0FBSSxDQUFDLEdBQ2Z5MUMsU0FBVUEsSUFBSW4wRSxJQUVaZ0UsUUFBUSs4QyxJQUVOLDhEQUNHL2dELEdBRVBvMEUsa0JBQW1CLEtBQ25CQyxZQUFZLEdBR2RDLFVBQVlBLENBQUNsdEUsR0FBT210RSxxQkFBb0IsR0FBVSxDQUFDLEtBQ2QsbUJBQXhCeHpFLEtBQUtzeUIsTUFBTThnRCxVQUNwQnB6RSxLQUFLc3lCLE1BQU04Z0QsU0FBUy9zRSxFQUFLLENBQ3ZCbXRFLHFCQUVKLEVBR0ZDLGFBQWdCOW9FLElBQ2QsR0FBbUMsbUJBQXhCM0ssS0FBS3N5QixNQUFNOGdELFNBQXlCLENBQzdDLE1BQ00vc0UsRUFEVXNFLEVBQUU1TCxPQUFPMjBFLGdCQUFnQixHQUNyQjduQixhQUFhLFNBRWpDN3JELEtBQUt1ekUsVUFBVWx0RSxFQUFLLENBQ2xCbXRFLG1CQUFtQixHQUV2QixHQUdGRyxrQkFBb0JBLEtBQ2xCLE1BQU0sU0FBRVIsRUFBUSxrQkFBRUUsR0FBc0JyekUsS0FBS3N5QixNQUV2Q3NoRCxFQUF5QlQsRUFBU3Z1RSxJQUFJeXVFLEdBRXRDUSxFQUFtQlYsRUFBU3Z5QyxTQUFTeGtCLFFBQ3JDMDNELEVBQWVYLEVBQVN2dUUsSUFBSWl2RSxHQUVsQyxPQUFPRCxHQUEwQkUsSUFBZ0JuMkMsRUFBQUEsR0FBQUEsS0FBSSxDQUFDLEVBQUUsRUFHMUQ4b0IsaUJBQUFBLEdBT0UsTUFBTSxTQUFFMnNCLEVBQVEsU0FBRUQsR0FBYW56RSxLQUFLc3lCLE1BRXBDLEdBQXdCLG1CQUFiOGdELEVBQXlCLENBQ2xDLE1BQU1VLEVBQWVYLEVBQVMvMkQsUUFDeEIyM0QsRUFBa0JaLEVBQVNhLE1BQU1GLEdBRXZDOXpFLEtBQUt1ekUsVUFBVVEsRUFBaUIsQ0FDOUJQLG1CQUFtQixHQUV2QixDQUNGLENBRUE3c0IsZ0NBQUFBLENBQWlDQyxHQUMvQixNQUFNLGtCQUFFeXNCLEVBQWlCLFNBQUVGLEdBQWF2c0IsRUFDeEMsR0FBSXVzQixJQUFhbnpFLEtBQUtzeUIsTUFBTTZnRCxXQUFhQSxFQUFTenVDLElBQUkydUMsR0FBb0IsQ0FHeEUsTUFBTVMsRUFBZVgsRUFBUy8yRCxRQUN4QjIzRCxFQUFrQlosRUFBU2EsTUFBTUYsR0FFdkM5ekUsS0FBS3V6RSxVQUFVUSxFQUFpQixDQUM5QlAsbUJBQW1CLEdBRXZCLENBQ0YsQ0FFQXo5QixNQUFBQSxHQUNFLE1BQU0sU0FDSm85QixFQUFRLGtCQUNSRSxFQUFpQixnQkFDakJZLEVBQWUseUJBQ2ZDLEVBQXdCLFdBQ3hCWixHQUNFdHpFLEtBQUtzeUIsTUFFVCxPQUNFd1ksR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxtQkFDWmcyQixFQUNDeG9DLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsa0NBQWlDLGNBQy9DLEtBQ0p4UyxHQUFBQSxRQUFBQSxjQUFBLFVBQ0V3UyxVQUFVLDBCQUNWd1MsU0FBVTl2RCxLQUFLeXpFLGFBQ2Y1ekUsTUFDRXEwRSxHQUE0QkQsRUFDeEIsc0JBQ0FaLEdBQXFCLElBRzFCYSxFQUNDcHBDLEdBQUFBLFFBQUFBLGNBQUEsVUFBUWpyQyxNQUFNLHVCQUFzQixvQkFDbEMsS0FDSHN6RSxFQUNFdnJFLEtBQUksQ0FBQ3UvQyxFQUFTZ3RCLElBRVhycEMsR0FBQUEsUUFBQUEsY0FBQSxVQUNFemtDLElBQUs4dEUsRUFDTHQwRSxNQUFPczBFLEdBRUx4MkMsR0FBQUEsSUFBSTZDLE1BQU0ybUIsSUFBWUEsRUFBUXZpRCxJQUFJLFlBQ2xDdXZFLEtBSVBqZ0MsWUFJWCxFQzNHRixNQUFNa2dDLG9CQUF1QmpuRSxHQUMzQnV3QixHQUFBQSxLQUFLMEcsT0FBT2ozQixHQUFTQSxFQUFRdTZCLFVBQVV2NkIsR0FFMUIsTUFBTWtuRSxvQ0FBb0N2cEMsR0FBQUEsUUFBQUEsY0FjdkRvYixvQkFBc0IsQ0FDcEJvdUIsbUJBQW1CLEVBQ25CbkIsVUFBVXgxQyxFQUFBQSxHQUFBQSxLQUFJLENBQUMsR0FDZjQyQyxpQkFBa0IseUJBQ2xCQyw4QkFBK0JBLE9BRy9CcEIsU0FBVUEsSUFBSW4wRSxJQUVaZ0UsUUFBUSs4QyxJQUNOLHNFQUNHL2dELEdBRVB3MUUsWUFBYUEsSUFBSXgxRSxJQUVmZ0UsUUFBUSs4QyxJQUNOLHlFQUNHL2dELElBSVRxSSxXQUFBQSxDQUFZZ3JCLEdBQ1YvUyxNQUFNK1MsR0FFTixNQUFNb2lELEVBQW1CMTBFLEtBQUsyMEUsMEJBRTlCMzBFLEtBQUt1RCxNQUFRLENBSVgsQ0FBQyt1QixFQUFNaWlELG1CQUFtQjUyQyxFQUFBQSxHQUFBQSxLQUFJLENBQzVCaTNDLG9CQUFxQjUwRSxLQUFLc3lCLE1BQU11aUQsc0JBQ2hDQyxvQkFBcUJKLEVBQ3JCSyx3QkFFRS8wRSxLQUFLc3lCLE1BQU1naUQsbUJBQ1h0MEUsS0FBS3N5QixNQUFNdWlELHdCQUEwQkgsSUFHN0MsQ0FFQU0sb0JBQUFBLEdBQ0VoMUUsS0FBS3N5QixNQUFNa2lELCtCQUE4QixFQUMzQyxDQUVBUyw2QkFBK0JBLEtBQzdCLE1BQU0saUJBQUVWLEdBQXFCdjBFLEtBQUtzeUIsTUFFbEMsT0FBUXR5QixLQUFLdUQsTUFBTWd4RSxLQUFxQjUyQyxFQUFBQSxHQUFBQSxRQUFPMGQsVUFBVSxFQUczRDY1Qiw2QkFBZ0Mxb0UsSUFDOUIsTUFBTSxpQkFBRStuRSxHQUFxQnYwRSxLQUFLc3lCLE1BRWxDLE9BQU90eUIsS0FBS20xRSxzQkFBc0JaLEVBQWtCL25FLEVBQUksRUFHMUQyb0Usc0JBQXdCQSxDQUFDdnBDLEVBQVdwL0IsS0FDbEMsTUFDTTRvRSxHQUR1QnAxRSxLQUFLdUQsTUFBTXFvQyxLQUFjak8sRUFBQUEsR0FBQUEsUUFDSnl0QixVQUFVNStDLEdBQzVELE9BQU94TSxLQUFLNm1ELFNBQVMsQ0FDbkIsQ0FBQ2piLEdBQVl3cEMsR0FDYixFQUdKQyxzQ0FBd0NBLEtBQ3RDLE1BQU0sc0JBQUVSLEdBQTBCNzBFLEtBQUtzeUIsTUFJdkMsT0FGeUJ0eUIsS0FBSzIwRSw0QkFFRkUsQ0FBcUIsRUFHbkRTLG9CQUFzQkEsQ0FBQ0MsRUFBWWpqRCxLQUdqQyxNQUFNLFNBQUU2Z0QsR0FBYTdnRCxHQUFTdHlCLEtBQUtzeUIsTUFDbkMsT0FBTzhoRCxxQkFDSmpCLElBQVl4MUMsRUFBQUEsR0FBQUEsS0FBSSxDQUFDLElBQUlrRCxNQUFNLENBQUMwMEMsRUFBWSxVQUMxQyxFQUdIWix3QkFBMkJyaUQsSUFHekIsTUFBTSxXQUFFa2pELEdBQWVsakQsR0FBU3R5QixLQUFLc3lCLE1BQ3JDLE9BQU90eUIsS0FBS3MxRSxvQkFBb0JFLEVBQVlsakQsR0FBU3R5QixLQUFLc3lCLE1BQU0sRUFHbEVtakQsa0JBQW9CQSxDQUFDcHZFLEdBQU9tdEUscUJBQXNCLENBQUMsS0FBTWtDLEtBQ3ZELE1BQU0sU0FBRXRDLEVBQVEsWUFBRXFCLEVBQVcsc0JBQUVJLEVBQXFCLGtCQUFFUCxHQUNwRHQwRSxLQUFLc3lCLE9BQ0Qsb0JBQUVzaUQsR0FBd0I1MEUsS0FBS2kxRSwrQkFFL0JQLEVBQW1CMTBFLEtBQUtzMUUsb0JBQW9CanZFLEdBRWxELEdBQVksd0JBQVJBLEVBRUYsT0FEQW91RSxFQUFZTCxvQkFBb0JRLElBQ3pCNTBFLEtBQUtrMUUsNkJBQTZCLENBQ3ZDSCx5QkFBeUIsSUFJTCxtQkFBYjNCLEdBQ1RBLEVBQVMvc0UsRUFBSyxDQUFFbXRFLHdCQUF3QmtDLEdBRzFDMTFFLEtBQUtrMUUsNkJBQTZCLENBQ2hDSixvQkFBcUJKLEVBQ3JCSyx3QkFDR3ZCLEdBQXFCYyxLQUNuQk8sR0FBeUJBLElBQTBCSCxJQUl0RGxCLEdBRXVCLG1CQUFoQmlCLEdBQ1RBLEVBQVlMLG9CQUFvQk0sR0FDbEMsRUFHRi90QixnQ0FBQUEsQ0FBaUNDLEdBRy9CLE1BQ0VpdUIsc0JBQXVCNWlCLEVBQVEsU0FDL0JraEIsRUFBUSxTQUNSQyxFQUFRLGtCQUNSa0IsR0FDRTF0QixHQUVFLG9CQUFFZ3VCLEVBQW1CLG9CQUFFRSxHQUMzQjkwRSxLQUFLaTFFLCtCQUVEVSxFQUEwQjMxRSxLQUFLczFFLG9CQUNuQzF1QixFQUFVNHVCLFdBQ1Y1dUIsR0FHSWd2QixFQUEyQnpDLEVBQVNyaEQsUUFDdkNxMUIsR0FDQ3hwQixHQUFBQSxJQUFJNkMsTUFBTTJtQixLQUNUQSxFQUFRdmlELElBQUksV0FBYXF0RCxHQUd4QnZxQixVQUFVeWYsRUFBUXZpRCxJQUFJLFlBQWNxdEQsS0FHMUMsR0FBSTJqQixFQUF5QjFrRSxLQUFNLENBQ2pDLElBQUk3SyxFQUVGQSxFQURFdXZFLEVBQXlCbHhDLElBQUlraUIsRUFBVTR1QixZQUNuQzV1QixFQUFVNHVCLFdBRVZJLEVBQXlCaDFDLFNBQVN4a0IsUUFFMUNnM0QsRUFBUy9zRSxFQUFLLENBQ1ptdEUsbUJBQW1CLEdBRXZCLE1BQ0V2aEIsSUFBYWp5RCxLQUFLc3lCLE1BQU11aUQsdUJBQ3hCNWlCLElBQWEyaUIsR0FDYjNpQixJQUFhNmlCLElBRWI5MEUsS0FBS3N5QixNQUFNa2lELCtCQUE4QixHQUN6Q3gwRSxLQUFLbTFFLHNCQUFzQnZ1QixFQUFVMnRCLGlCQUFrQixDQUNyREssb0JBQXFCaHVCLEVBQVVpdUIsc0JBQy9CRSx3QkFDRVQsR0FBcUJyaUIsSUFBYTBqQixJQUcxQyxDQUVBNS9CLE1BQUFBLEdBQ0UsTUFBTSxzQkFDSjgrQixFQUFxQixTQUNyQjFCLEVBQVEsV0FDUnFDLEVBQVUsYUFDVngvQixFQUFZLGtCQUNacytCLEdBQ0V0MEUsS0FBS3N5QixPQUNILG9CQUNKd2lELEVBQW1CLG9CQUNuQkYsRUFBbUIsd0JBQ25CRyxHQUNFLzBFLEtBQUtpMUUsK0JBRUgvQixFQUFpQmw5QixFQUFhLGtCQUVwQyxPQUNFbEwsR0FBQUEsUUFBQUEsY0FBQ29vQyxFQUFjLENBQ2JDLFNBQVVBLEVBQ1ZFLGtCQUFtQm1DLEVBQ25CcEMsU0FBVXB6RSxLQUFLeTFFLGtCQUNmdkIsMkJBQ0lVLEdBQXVCQSxJQUF3QkUsRUFFbkRiLHFCQUM2QjV5RSxJQUExQnd6RSxHQUNDRSxHQUNBRixJQUEwQjcwRSxLQUFLMjBFLDJCQUNqQ0wsR0FJUixFQ3ZQYSxTQUFTNWxDLDRCQUFZLEtBQUVRLEVBQUksWUFBRU4sRUFBVyxXQUFFSyxFQUFVLFFBQUVwRyxFQUFPLFlBQUVndEMsRUFBWSxDQUFDLEVBQUMsY0FBRUMsSUFDNUYsSUFBSSxPQUFFcjFDLEVBQU0sT0FBRTBQLEVBQU0sS0FBRTl2QyxFQUFJLFNBQUV5dkMsR0FBYVosRUFDckN0bkIsRUFBTzZZLEVBQU83N0IsSUFBSSxRQUNsQmdzQyxFQUFRLEdBRVosT0FBUWhwQixHQUNOLElBQUssV0FFSCxZQURBZ25CLEVBQVljLGtCQUFrQlIsR0FHaEMsSUFBSyxjQVlMLElBQUssb0JBQ0wsSUFBSyxxQkFHSCxZQURBTixFQUFZaUMscUJBQXFCM0IsR0FYbkMsSUFBSyxhQWNMLElBQUssb0JBQ0wsSUFBSyxxQkFFSDBCLEVBQU1wdUMsS0FBSyxzQkFDWCxNQWRGLElBQUssV0FDSG91QyxFQUFNcHVDLEtBQUssdUJBZ0JTLGlCQUFic3RDLEdBQ1RjLEVBQU1wdUMsS0FBSyxhQUFla2tDLG1CQUFtQm9KLElBRy9DLElBQUlpQixFQUFjbEksRUFBUWt0QyxrQkFHMUIsUUFBMkIsSUFBaEJobEMsRUFPVCxZQU5BOUIsRUFBVy9QLFdBQVksQ0FDckJvUSxPQUFRanZDLEVBQ1I2aEIsT0FBUSxhQUNScXRCLE1BQU8sUUFDUGxxQyxRQUFTLDZGQUlidXJDLEVBQU1wdUMsS0FBSyxnQkFBa0Jra0MsbUJBQW1CcUssSUFFaEQsSUFBSWlsQyxFQUFjLEdBT2xCLEdBTkloeUUsTUFBTTJELFFBQVF3b0MsR0FDaEI2bEMsRUFBYzdsQyxFQUNMaFEsR0FBQUEsUUFBQUEsS0FBUWlFLE9BQU8rTCxLQUN4QjZsQyxFQUFjN2xDLEVBQU81SyxXQUduQnl3QyxFQUFZdnpFLE9BQVMsRUFBRyxDQUMxQixJQUFJd3pFLEVBQWlCSixFQUFZSSxnQkFBa0IsSUFFbkRybEMsRUFBTXB1QyxLQUFLLFNBQVdra0MsbUJBQW1Cc3ZDLEVBQVludUUsS0FBS291RSxJQUM1RCxDQUVBLElBQUkxeUUsRUFBUTJpQyxLQUFLLElBQUl2TSxNQVFyQixHQU5BaVgsRUFBTXB1QyxLQUFLLFNBQVdra0MsbUJBQW1CbmpDLFNBRVIsSUFBdEJzeUUsRUFBWUssT0FDckJ0bEMsRUFBTXB1QyxLQUFLLFNBQVdra0MsbUJBQW1CbXZDLEVBQVlLLFNBR3pDLHNCQUFUdHVELEdBQXlDLHVCQUFUQSxHQUEwQyxlQUFUQSxJQUEwQml1RCxFQUFZTSxrQ0FBbUMsQ0FDM0ksTUFBTW5sQyxFbksydEJMLFNBQVNvbEMsdUJBQ2QsT0FBTzl0QyxtQkFDTHIzQixLQUFZLElBQUlYLFNBQVMsVUFFN0IsQ21LL3RCMkI4bEUsR0FDZkMsRW5LZ3VCTCxTQUFTQyxvQkFBb0J0bEMsR0FDbEMsT0FBTzFJLG1CQUNMaXVDLEtBQU0sVUFDSDl5RCxPQUFPdXRCLEdBQ1BsdEIsT0FBTyxVQUVkLENtS3R1QjRCd3lELENBQW9CdGxDLEdBRTFDSixFQUFNcHVDLEtBQUssa0JBQW9CNnpFLEdBQy9CemxDLEVBQU1wdUMsS0FBSyw4QkFJWDBzQyxFQUFLOEIsYUFBZUEsQ0FDeEIsQ0FFQSxJQUFJLDRCQUFFUSxHQUFnQ3FrQyxFQUV0QyxJQUFLLElBQUl4dkUsS0FBT21yQyxPQUNrQyxJQUFyQ0EsRUFBNEJuckMsSUFDckN1cUMsRUFBTXB1QyxLQUFLLENBQUM2RCxFQUFLbXJDLEVBQTRCbnJDLElBQU11QixJQUFJOCtCLG9CQUFvQjcrQixLQUFLLE1BSXBGLE1BQU0ydUUsRUFBbUIvMUMsRUFBTzc3QixJQUFJLG9CQUNwQyxJQUFJNnhFLEVBR0ZBLEVBRkVYLEdBRTBCbGtDLEVBQUFBLEdBQUFBLFNBQzFCeWIsWUFBWW1wQixHQUNaVixHQUNBLEdBQ0F4bEUsV0FFMEIrOEMsWUFBWW1wQixHQUUxQyxJQVNJN2tFLEVBVEFnL0IsRUFBTSxDQUFDOGxDLEVBQTJCN2xDLEVBQU0vb0MsS0FBSyxNQUFNQSxLQUN6QixpQkFBckIydUUsR0FBa0NBLEVBQWlCOXRFLFNBQVMsS0FFL0QsSUFEQSxLQVNKaUosRUFEVyxhQUFUaVcsRUFDU2duQixFQUFZSSxxQkFDZDZtQyxFQUFZYSwwQ0FDVjluQyxFQUFZdUMsMkNBRVp2QyxFQUFZa0Msa0NBR3pCbEMsRUFBWW9FLFVBQVVyQyxFQUFLLENBQ3pCekIsS0FBTUEsRUFDTjNyQyxNQUFPQSxFQUNQd3RDLFlBQWFBLEVBQ2JwL0IsU0FBVUEsRUFDVmdsRSxNQUFPMW5DLEVBQVcvUCxZQUV0QixDQ3BJZSxNQUFNZ3pDLGVBQWVwbkMsR0FBQUEsUUFBQUEsVUFlbEN4akMsV0FBQUEsQ0FBWWdyQixFQUFPaHRCLEdBQ2pCaWEsTUFBTStTLEVBQU9odEIsR0FDYixJQUFJLEtBQUVqRixFQUFJLE9BQUVvZ0MsRUFBTSxXQUFFcVMsRUFBVSxjQUFFeEIsR0FBa0J0eEMsS0FBS3N5QixNQUNuRDRjLEVBQU80RCxHQUFjQSxFQUFXbHVDLElBQUl2RSxHQUNwQ3cxRSxFQUFjdmtDLEVBQWM1RyxjQUFnQixDQUFDLEVBQzdDaUYsRUFBV1QsR0FBUUEsRUFBS3RxQyxJQUFJLGFBQWUsR0FDM0NrckMsRUFBV1osR0FBUUEsRUFBS3RxQyxJQUFJLGFBQWVpeEUsRUFBWS9sQyxVQUFZLEdBQ25FQyxFQUFlYixHQUFRQSxFQUFLdHFDLElBQUksaUJBQW1CaXhFLEVBQVk5bEMsY0FBZ0IsR0FDL0VGLEVBQWVYLEdBQVFBLEVBQUt0cUMsSUFBSSxpQkFBbUIsUUFDbkR1ckMsRUFBU2pCLEdBQVFBLEVBQUt0cUMsSUFBSSxXQUFhaXhFLEVBQVkxbEMsUUFBVSxHQUMzQyxpQkFBWEEsSUFDVEEsRUFBU0EsRUFBTzF2QixNQUFNbzFELEVBQVlJLGdCQUFrQixNQUd0RGoyRSxLQUFLdUQsTUFBUSxDQUNYcXpFLFFBQVNmLEVBQVllLFFBQ3JCdjJFLEtBQU1BLEVBQ05vZ0MsT0FBUUEsRUFDUjBQLE9BQVFBLEVBQ1JMLFNBQVVBLEVBQ1ZDLGFBQWNBLEVBQ2RKLFNBQVVBLEVBQ1ZDLFNBQVUsR0FDVkMsYUFBY0EsRUFFbEIsQ0FFQXBRLE1BQVM5MEIsSUFDUEEsRUFBRWk2QyxpQkFDRixJQUFJLFlBQUVoVyxHQUFnQjV1QyxLQUFLc3lCLE1BRTNCc2MsRUFBWUgsaUJBQWdCLEVBQU0sRUFHcENDLFVBQVdBLEtBQ1QsSUFBSSxZQUFFRSxFQUFXLFdBQUVLLEVBQVUsV0FBRXZFLEVBQVUsY0FBRTRHLEVBQWEsY0FBRUYsR0FBa0JweEMsS0FBS3N5QixNQUM3RXVXLEVBQVU2QixJQUNWbXJDLEVBQWN2a0MsRUFBYzVHLGFBRWhDdUUsRUFBV3puQixNQUFNLENBQUM4bkIsT0FBUWp2QyxLQUFLMEIsS0FBTSxPQUFRbWdCLE9BQVEsU0FDckQyMEQsMkJBQWdCLENBQ2QzbkMsS0FBTWx2QyxLQUFLdUQsTUFDWHV5RSxjQUFlMWtDLEVBQWNNLHFCQUFxQk4sRUFBY08sa0JBQ2hFL0MsY0FDQUssYUFDQXBHLFVBQ0FndEMsZUFDQSxFQUdKaUIsY0FBZ0Juc0UsSUFDZCxJQUFJLE9BQUU1TCxHQUFXNEwsR0FDYixRQUFFbUssR0FBWS9WLEVBQ2RteEMsRUFBUW54QyxFQUFPNm9ELFFBQVEvbkQsTUFFM0IsR0FBS2lWLElBQWlELElBQXRDOVUsS0FBS3VELE1BQU00c0MsT0FBT3ZuQyxRQUFRc25DLEdBQWdCLENBQ3hELElBQUk2bUMsRUFBWS8yRSxLQUFLdUQsTUFBTTRzQyxPQUFPMXdDLE9BQU8sQ0FBQ3l3QyxJQUMxQ2x3QyxLQUFLNm1ELFNBQVMsQ0FBRTFXLE9BQVE0bUMsR0FDMUIsTUFBYWppRSxHQUFXOVUsS0FBS3VELE1BQU00c0MsT0FBT3ZuQyxRQUFRc25DLElBQVUsR0FDMURsd0MsS0FBSzZtRCxTQUFTLENBQUUxVyxPQUFRbndDLEtBQUt1RCxNQUFNNHNDLE9BQU9yZSxRQUFROWIsR0FBUUEsSUFBUWs2QixLQUNwRSxFQUdGOG1DLGNBQWdCcnNFLElBQ2QsSUFBTTVMLFFBQVc2b0QsU0FBVSxLQUFFdm5ELEdBQU0sTUFBRVIsSUFBWThLLEVBQzdDcEgsRUFBUSxDQUNWLENBQUNsRCxHQUFPUixHQUdWRyxLQUFLNm1ELFNBQVN0akQsRUFBTSxFQUd0QjB6RSxhQUFldHNFLElBQ1RBLEVBQUU1TCxPQUFPNm9ELFFBQVFsTCxJQUNuQjE4QyxLQUFLNm1ELFNBQVMsQ0FDWjFXLE9BQVFuc0MsTUFBTTZQLE1BQU03VCxLQUFLc3lCLE1BQU1tTyxPQUFPNzdCLElBQUksa0JBQW9CNUUsS0FBS3N5QixNQUFNbU8sT0FBTzc3QixJQUFJLFdBQVcwQixVQUdqR3RHLEtBQUs2bUQsU0FBUyxDQUFFMVcsT0FBUSxJQUMxQixFQUdGckIsT0FBU25rQyxJQUNQQSxFQUFFaTZDLGlCQUNGLElBQUksWUFBRWhXLEVBQVcsV0FBRUssRUFBVSxLQUFFNXVDLEdBQVNMLEtBQUtzeUIsTUFFN0MyYyxFQUFXem5CLE1BQU0sQ0FBQzhuQixPQUFRanZDLEVBQU0wQixLQUFNLE9BQVFtZ0IsT0FBUSxTQUN0RDBzQixFQUFZRyx3QkFBd0IsQ0FBRTF1QyxHQUFPLEVBRy9DMDFDLE1BQUFBLEdBQ0UsSUFBSSxPQUNGdFYsRUFBTSxhQUFFdVYsRUFBWSxjQUFFMUUsRUFBYSxhQUFFb3pCLEVBQVksS0FBRXJrRSxFQUFJLGNBQUVneEMsR0FDdkRyeEMsS0FBS3N5QixNQUNULE1BQU1pL0IsRUFBUXZiLEVBQWEsU0FDckI0OEIsRUFBTTU4QixFQUFhLE9BQ25CNjhCLEVBQU03OEIsRUFBYSxPQUNuQmlkLEVBQVNqZCxFQUFhLFVBQ3RCMDhCLEVBQVkxOEIsRUFBYSxhQUN6Qm1XLEVBQWFuVyxFQUFhLGNBQWMsR0FDeEN5WSxFQUFXelksRUFBYSxZQUFZLEdBQ3BDa2hDLEVBQW1CbGhDLEVBQWEscUJBRWhDLE9BQUV6VixHQUFXOFEsRUFFbkIsSUFBSThsQyxFQUFVNTJDLElBQVdFLEVBQU83N0IsSUFBSSxvQkFBc0IsS0FHMUQsTUFBTXd5RSxFQUFxQixXQUNyQkMsRUFBcUIsV0FDckJDLEVBQXdCLzJDLElBQVk0MkMsRUFBVSxxQkFBdUIsb0JBQXVCLGFBQzVGSSxFQUF3QmgzQyxJQUFZNDJDLEVBQVUscUJBQXVCLG9CQUF1QixjQUU1RnJpQyxFQUFPeEQsRUFBYzBDLGVBQWUzekMsR0FFMUMsSUFDSW0zRSxLQURjbG1DLEVBQWM1RyxjQUFnQixDQUFDLEdBQ2J5ckMsa0NBRWhDdnVELEVBQU82WSxFQUFPNzdCLElBQUksUUFDbEI2eUUsRUFBZ0I3dkQsSUFBUzB2RCxHQUF5QkUsRUFBa0I1dkQsRUFBTyxhQUFlQSxFQUMxRnVvQixFQUFTMVAsRUFBTzc3QixJQUFJLGtCQUFvQjY3QixFQUFPNzdCLElBQUksVUFFbkQrdkMsSUFEaUJyRCxFQUFjd0IsYUFBYWx1QyxJQUFJdkUsR0FFaEQrZSxFQUFTc2xELEVBQWFsb0IsWUFBWTFxQixRQUFRcHhCLEdBQU9BLEVBQUlrRSxJQUFJLFlBQWN2RSxJQUN2RSt1QyxHQUFXaHdCLEVBQU8wUyxRQUFRcHhCLEdBQTZCLGVBQXRCQSxFQUFJa0UsSUFBSSxZQUE0QnNNLEtBQ3JFZzlDLEVBQWN6dEIsRUFBTzc3QixJQUFJLGVBRTdCLE9BQ0VrbUMsR0FBQUEsUUFBQUEsY0FBQSxXQUNFQSxHQUFBQSxRQUFBQSxjQUFBLFVBQUt6cUMsRUFBSyxhQUFZbzNFLEVBQWUsS0FBRTNzQyxHQUFBQSxRQUFBQSxjQUFDcWhCLEVBQVUsQ0FBQ3JYLEtBQU1BLEtBQ3REOTBDLEtBQUt1RCxNQUFNcXpFLFFBQWlCOXJDLEdBQUFBLFFBQUFBLGNBQUEsVUFBSSxnQkFBZTlxQyxLQUFLdUQsTUFBTXF6RSxRQUFTLEtBQTlDLEtBQ3RCMW9CLEdBQWVwakIsR0FBQUEsUUFBQUEsY0FBQzJqQixFQUFRLENBQUN2c0MsT0FBU3VlLEVBQU83N0IsSUFBSSxpQkFFN0MrdkMsR0FBZ0I3SixHQUFBQSxRQUFBQSxjQUFBLFVBQUksY0FFcEJxc0MsR0FBV3JzQyxHQUFBQSxRQUFBQSxjQUFBLFNBQUcsdUJBQW9CQSxHQUFBQSxRQUFBQSxjQUFBLFlBQVFxc0MsS0FDeEN2dkQsSUFBU3d2RCxHQUFzQnh2RCxJQUFTMHZELElBQTJCeHNDLEdBQUFBLFFBQUFBLGNBQUEsU0FBRyxzQkFBbUJBLEdBQUFBLFFBQUFBLGNBQUEsWUFBUXJLLEVBQU83N0IsSUFBSSx1QkFDNUdnakIsSUFBU3l2RCxHQUFzQnp2RCxJQUFTMHZELEdBQXlCMXZELElBQVMydkQsSUFBMkJ6c0MsR0FBQUEsUUFBQUEsY0FBQSxTQUFHLGFBQVVBLEdBQUFBLFFBQUFBLGNBQUEsWUFBTSxJQUFHckssRUFBTzc3QixJQUFJLGNBQzFJa21DLEdBQUFBLFFBQUFBLGNBQUEsS0FBR3dTLFVBQVUsUUFBTyxTQUFNeFMsR0FBQUEsUUFBQUEsY0FBQSxZQUFRMnNDLElBR2hDN3ZELElBQVN5dkQsRUFBcUIsS0FDMUJ2c0MsR0FBQUEsUUFBQUEsY0FBQzhuQyxFQUFHLEtBQ0o5bkMsR0FBQUEsUUFBQUEsY0FBQzhuQyxFQUFHLEtBQ0Y5bkMsR0FBQUEsUUFBQUEsY0FBQSxTQUFPaWxCLFFBQVEsa0JBQWlCLGFBRTlCcGIsRUFBZTdKLEdBQUFBLFFBQUFBLGNBQUEsWUFBTSxJQUFHOXFDLEtBQUt1RCxNQUFNb3NDLFNBQVUsS0FDekM3RSxHQUFBQSxRQUFBQSxjQUFDK25DLEVBQUcsQ0FBQzZFLE9BQVEsR0FBSUMsUUFBUyxJQUMxQjdzQyxHQUFBQSxRQUFBQSxjQUFBLFNBQU96QyxHQUFHLGlCQUFpQnRtQyxLQUFLLE9BQU8sWUFBVSxXQUFXK3RELFNBQVc5dkQsS0FBS2czRSxjQUFnQmxFLFdBQVMsTUFPN0dob0MsR0FBQUEsUUFBQUEsY0FBQzhuQyxFQUFHLEtBQ0Y5bkMsR0FBQUEsUUFBQUEsY0FBQSxTQUFPaWxCLFFBQVEsa0JBQWlCLGFBRTlCcGIsRUFBZTdKLEdBQUFBLFFBQUFBLGNBQUEsWUFBTSxZQUNqQkEsR0FBQUEsUUFBQUEsY0FBQytuQyxFQUFHLENBQUM2RSxPQUFRLEdBQUlDLFFBQVMsSUFDMUI3c0MsR0FBQUEsUUFBQUEsY0FBQSxTQUFPekMsR0FBRyxpQkFBaUJ0bUMsS0FBSyxXQUFXLFlBQVUsV0FBVyt0RCxTQUFXOXZELEtBQUtnM0Usa0JBSXhGbHNDLEdBQUFBLFFBQUFBLGNBQUM4bkMsRUFBRyxLQUNGOW5DLEdBQUFBLFFBQUFBLGNBQUEsU0FBT2lsQixRQUFRLGlCQUFnQixnQ0FFN0JwYixFQUFlN0osR0FBQUEsUUFBQUEsY0FBQSxZQUFNLElBQUc5cUMsS0FBS3VELE1BQU1zc0MsYUFBYyxLQUM3Qy9FLEdBQUFBLFFBQUFBLGNBQUMrbkMsRUFBRyxDQUFDNkUsT0FBUSxHQUFJQyxRQUFTLElBQzFCN3NDLEdBQUFBLFFBQUFBLGNBQUEsVUFBUXpDLEdBQUcsZ0JBQWdCLFlBQVUsZUFBZXluQixTQUFXOXZELEtBQUtnM0UsZUFDbEVsc0MsR0FBQUEsUUFBQUEsY0FBQSxVQUFRanJDLE1BQU0sU0FBUSx3QkFDdEJpckMsR0FBQUEsUUFBQUEsY0FBQSxVQUFRanJDLE1BQU0sZ0JBQWUscUJBUXpDK25CLElBQVMydkQsR0FBeUIzdkQsSUFBU3d2RCxHQUFzQnh2RCxJQUFTMHZELEdBQXlCMXZELElBQVN5dkQsTUFDM0cxaUMsR0FBZ0JBLEdBQWdCMzBDLEtBQUt1RCxNQUFNdXNDLFdBQWFoRixHQUFBQSxRQUFBQSxjQUFDOG5DLEVBQUcsS0FDN0Q5bkMsR0FBQUEsUUFBQUEsY0FBQSxTQUFPaWxCLFFBQVUsYUFBYW5vQyxLQUFTLGNBRXJDK3NCLEVBQWU3SixHQUFBQSxRQUFBQSxjQUFBLFlBQU0sWUFDTkEsR0FBQUEsUUFBQUEsY0FBQytuQyxFQUFHLENBQUM2RSxPQUFRLEdBQUlDLFFBQVMsSUFDeEI3c0MsR0FBQUEsUUFBQUEsY0FBQ29zQyxFQUFnQixDQUFDN3VDLEdBQUksYUFBYXpnQixJQUM1QjdsQixLQUFLLE9BQ0wwb0QsU0FBVzdpQyxJQUFTeXZELEVBQ3BCTyxhQUFlNTNFLEtBQUt1RCxNQUFNdXNDLFNBQzFCLFlBQVUsV0FDVmdnQixTQUFXOXZELEtBQUtnM0UsbUJBT3pDcHZELElBQVMydkQsR0FBeUIzdkQsSUFBUzB2RCxHQUF5QjF2RCxJQUFTeXZELElBQXVCdnNDLEdBQUFBLFFBQUFBLGNBQUM4bkMsRUFBRyxLQUN6RzluQyxHQUFBQSxRQUFBQSxjQUFBLFNBQU9pbEIsUUFBVSxpQkFBaUJub0MsS0FBUyxrQkFFekMrc0IsRUFBZTdKLEdBQUFBLFFBQUFBLGNBQUEsWUFBTSxZQUNOQSxHQUFBQSxRQUFBQSxjQUFDK25DLEVBQUcsQ0FBQzZFLE9BQVEsR0FBSUMsUUFBUyxJQUN4QjdzQyxHQUFBQSxRQUFBQSxjQUFDb3NDLEVBQWdCLENBQUM3dUMsR0FBSyxpQkFBaUJ6Z0IsSUFDakNnd0QsYUFBZTUzRSxLQUFLdUQsTUFBTXdzQyxhQUMxQmh1QyxLQUFLLFdBQ0wsWUFBVSxlQUNWK3RELFNBQVc5dkQsS0FBS2czRSxtQkFRM0NyaUMsR0FBZ0J4RSxHQUFVQSxFQUFPai9CLEtBQU80NUIsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxVQUN0RHhTLEdBQUFBLFFBQUFBLGNBQUEsVUFBSSxVQUVGQSxHQUFBQSxRQUFBQSxjQUFBLEtBQUd1YSxRQUFTcmxELEtBQUtpM0UsYUFBYyxZQUFVLEdBQU0sY0FDL0Nuc0MsR0FBQUEsUUFBQUEsY0FBQSxLQUFHdWEsUUFBU3JsRCxLQUFLaTNFLGNBQWMsZ0JBRS9COW1DLEVBQU92b0MsS0FBSSxDQUFDc21ELEVBQWE3dEQsSUFFdkJ5cUMsR0FBQUEsUUFBQUEsY0FBQzhuQyxFQUFHLENBQUN2c0UsSUFBTWhHLEdBQ1R5cUMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxZQUNieFMsR0FBQUEsUUFBQUEsY0FBQ3ltQixFQUFLLENBQUMsYUFBYWx4RCxFQUNkZ29DLEdBQUksR0FBR2hvQyxLQUFRdW5CLGNBQWlCNW5CLEtBQUt1RCxNQUFNbEQsT0FDMUNrd0QsU0FBVzViLEVBQ1g3L0IsUUFBVTlVLEtBQUt1RCxNQUFNNHNDLE9BQU96bkMsU0FBU3JJLEdBQ3JDMEIsS0FBSyxXQUNMK3RELFNBQVc5dkQsS0FBSzgyRSxnQkFDbEJoc0MsR0FBQUEsUUFBQUEsY0FBQSxTQUFPaWxCLFFBQVMsR0FBRzF2RCxLQUFRdW5CLGNBQWlCNW5CLEtBQUt1RCxNQUFNbEQsUUFDckR5cUMsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxTQUNoQnhTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsUUFDYnhTLEdBQUFBLFFBQUFBLGNBQUEsS0FBR3dTLFVBQVUsUUFBUWo5QyxHQUNyQnlxQyxHQUFBQSxRQUFBQSxjQUFBLEtBQUd3UyxVQUFVLGVBQWU0USxTQU14QzNvQixXQUVFLEtBSVRubUIsRUFBTzgwQixXQUFXdHNDLEtBQUssQ0FBQ3pDLEVBQU9rQixJQUN0QnlrQyxHQUFBQSxRQUFBQSxjQUFDNG5DLEVBQVMsQ0FBQ3Z0RSxNQUFRQSxFQUNSa0IsSUFBTUEsTUFHNUJ5a0MsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxvQkFDYmxPLElBQ0V1RixFQUFlN0osR0FBQUEsUUFBQUEsY0FBQ21vQixFQUFNLENBQUMzVixVQUFVLCtCQUErQitILFFBQVVybEQsS0FBSzh1QyxPQUFTLGFBQVcsd0JBQXVCLFVBQzVIaEUsR0FBQUEsUUFBQUEsY0FBQ21vQixFQUFNLENBQUMzVixVQUFVLCtCQUErQitILFFBQVVybEQsS0FBSzB1QyxVQUFZLGFBQVcsa0NBQWlDLGNBR3hINUQsR0FBQUEsUUFBQUEsY0FBQ21vQixFQUFNLENBQUMzVixVQUFVLDhCQUE4QitILFFBQVVybEQsS0FBS3kvQixPQUFRLFVBSy9FLEVDdFJhLE1BQU1vNEMsY0FBY3A3QyxHQUFBQSxVQUVqQzRvQixRQUFTQSxLQUNQLElBQUksWUFBRTlOLEVBQVcsS0FBRXpDLEVBQUksT0FBRS94QixHQUFXL2lCLEtBQUtzeUIsTUFDekNpbEIsRUFBWTh2QixjQUFldnlCLEVBQU0veEIsR0FDakN3MEIsRUFBWSt2QixhQUFjeHlCLEVBQU0veEIsRUFBUSxFQUcxQ2d6QixNQUFBQSxHQUNFLE9BQ0VqTCxHQUFBQSxRQUFBQSxjQUFBLFVBQVF3UyxVQUFVLHFDQUFxQytILFFBQVVybEQsS0FBS3FsRCxTQUFVLFFBSXBGLEVDYkYsTUFBTXl5QixRQUFVQSxFQUFJMW5DLGFBRWhCdEYsR0FBQUEsUUFBQUEsY0FBQSxXQUNFQSxHQUFBQSxRQUFBQSxjQUFBLFVBQUksb0JBQ0pBLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsY0FBY2xOLElBTzdCMm5DLFNBQVdBLEVBQUkzUSxjQUVqQnQ4QixHQUFBQSxRQUFBQSxjQUFBLFdBQ0VBLEdBQUFBLFFBQUFBLGNBQUEsVUFBSSxvQkFDSkEsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxjQUFjOHBCLEVBQVMsUUFTN0IsTUFBTTRRLHFCQUFxQmx0QyxHQUFBQSxRQUFBQSxVQVd4Q210QyxxQkFBQUEsQ0FBc0JyeEIsR0FHcEIsT0FBTzVtRCxLQUFLc3lCLE1BQU00ZixXQUFhMFUsRUFBVTFVLFVBQ3BDbHlDLEtBQUtzeUIsTUFBTXdpQixPQUFTOFIsRUFBVTlSLE1BQzlCOTBDLEtBQUtzeUIsTUFBTXZQLFNBQVc2akMsRUFBVTdqQyxRQUNoQy9pQixLQUFLc3lCLE1BQU00bEQseUJBQTJCdHhCLEVBQVVzeEIsc0JBQ3ZELENBRUFuaUMsTUFBQUEsR0FDRSxNQUFNLFNBQUU3RCxFQUFRLGFBQUU4RCxFQUFZLFdBQUV0TCxFQUFVLHVCQUFFd3RDLEVBQXNCLGNBQUU3bUMsRUFBYSxLQUFFeUQsRUFBSSxPQUFFL3hCLEdBQVcvaUIsS0FBS3N5QixPQUNuRyxtQkFBRTZsRCxFQUFrQix1QkFBRUMsR0FBMkIxdEMsSUFFakQydEMsRUFBY0YsRUFBcUI5bUMsRUFBYytzQixrQkFBa0J0cEIsRUFBTS94QixHQUFVc3VCLEVBQWM4c0IsV0FBV3JwQixFQUFNL3hCLEdBQ2xIMDBCLEVBQVN2RixFQUFTdHRDLElBQUksVUFDdEIrckMsRUFBTTBuQyxFQUFZenpFLElBQUksT0FDdEJ3ckMsRUFBVThCLEVBQVN0dEMsSUFBSSxXQUFXdThCLE9BQ2xDbTNDLEVBQWdCcG1DLEVBQVN0dEMsSUFBSSxpQkFDN0IyekUsRUFBVXJtQyxFQUFTdHRDLElBQUksU0FDdkI4ckMsRUFBT3dCLEVBQVN0dEMsSUFBSSxRQUNwQndpRSxFQUFXbDFCLEVBQVN0dEMsSUFBSSxZQUN4QjR6RSxFQUFjbDVFLE9BQU9nSCxLQUFLOHBDLEdBQzFCcXFCLEVBQWNycUIsRUFBUSxpQkFBbUJBLEVBQVEsZ0JBRWpEcW9DLEVBQWV6aUMsRUFBYSxnQkFDNUIwaUMsRUFBZUYsRUFBWTV3RSxLQUFJdkIsSUFDbkMsSUFBSXN5RSxFQUFnQjMwRSxNQUFNMkQsUUFBUXlvQyxFQUFRL3BDLElBQVErcEMsRUFBUS9wQyxHQUFLd0IsT0FBU3VvQyxFQUFRL3BDLEdBQ2hGLE9BQU95a0MsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxhQUFhajNDLElBQUtBLEdBQUssSUFBRUEsRUFBSSxLQUFHc3lFLEVBQWMsSUFBUSxJQUV6RUMsRUFBcUMsSUFBeEJGLEVBQWFqMkUsT0FDMUJnc0QsRUFBV3pZLEVBQWEsWUFBWSxHQUNwQ3dOLEVBQWtCeE4sRUFBYSxtQkFBbUIsR0FDbEQ2aUMsRUFBTzdpQyxFQUFhLFFBQVEsR0FFbEMsT0FDRWxMLEdBQUFBLFFBQUFBLGNBQUEsV0FDSXV0QyxHQUFlRCxFQUNidHRDLEdBQUFBLFFBQUFBLGNBQUMwWSxFQUFlLENBQUM3QyxRQUFVMDNCLElBQzNCdnRDLEdBQUFBLFFBQUFBLGNBQUMrdEMsRUFBSSxDQUFDbDRCLFFBQVUwM0IsSUFFbEIxbkMsR0FBTzdGLEdBQUFBLFFBQUFBLGNBQUEsV0FDTEEsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxlQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxVQUFJLGVBQ0pBLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsY0FBYzNNLEtBSW5DN0YsR0FBQUEsUUFBQUEsY0FBQSxVQUFJLG1CQUNKQSxHQUFBQSxRQUFBQSxjQUFBLFNBQU93UyxVQUFVLHdDQUNmeFMsR0FBQUEsUUFBQUEsY0FBQSxhQUNBQSxHQUFBQSxRQUFBQSxjQUFBLE1BQUl3UyxVQUFVLG9CQUNaeFMsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSxrQ0FBaUMsUUFDL0N4UyxHQUFBQSxRQUFBQSxjQUFBLE1BQUl3UyxVQUFVLHVDQUFzQyxhQUd0RHhTLEdBQUFBLFFBQUFBLGNBQUEsYUFDRUEsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSxZQUNaeFMsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSx1QkFDVjdGLEVBRUE2Z0MsRUFBZ0J4dEMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSx5QkFDYnhTLEdBQUFBLFFBQUFBLGNBQUEsU0FBRyxtQkFFTCxNQUdwQkEsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSw0QkFFVmk3QixFQUFVenRDLEdBQUFBLFFBQUFBLGNBQUMyakIsRUFBUSxDQUFDdnNDLE9BQVEsR0FBNEIsS0FBekJnd0IsRUFBU3R0QyxJQUFJLFFBQWlCLEdBQUdzdEMsRUFBU3R0QyxJQUFJLFlBQWMsS0FBS3N0QyxFQUFTdHRDLElBQUksZUFDbkcsS0FHVjhyQyxFQUFPNUYsR0FBQUEsUUFBQUEsY0FBQzJ0QyxFQUFZLENBQUNuc0UsUUFBVW9rQyxFQUNWK3BCLFlBQWNBLEVBQ2Q5cEIsSUFBTUEsRUFDTlAsUUFBVUEsRUFDVjFGLFdBQWFBLEVBQ2JzTCxhQUFlQSxJQUM3QixLQUdQNGlDLEVBQWE5dEMsR0FBQUEsUUFBQUEsY0FBQ2d0QyxRQUFPLENBQUMxbkMsUUFBVXNvQyxJQUFtQixLQUduRFIsR0FBMEI5USxFQUFXdDhCLEdBQUFBLFFBQUFBLGNBQUNpdEMsU0FBUSxDQUFDM1EsU0FBV0EsSUFBZ0IsU0FRMUYsRUMzSGEsTUFBTTBSLDZCQUE2Qmh1QyxHQUFBQSxRQUFBQSxVQU85Q3hqQyxXQUFBQSxDQUFZZ3JCLEVBQU9odEIsR0FDZmlhLE1BQU0rUyxFQUFPaHRCLEdBQ2IsSUFBSSxXQUFFb2xDLEdBQWVwWSxHQUNqQixhQUFFeW1ELEdBQWlCcnVDLElBQ3ZCMXFDLEtBQUt1RCxNQUFRLENBQ1RvdEMsSUFBSzN3QyxLQUFLZzVFLG1CQUNWRCxrQkFBK0IxM0UsSUFBakIwM0UsRUFBNkIseUNBQTJDQSxFQUU5RixDQUVBQyxpQkFBbUJBLEtBRWpCLElBQUksY0FBRTNuQyxHQUFrQnJ4QyxLQUFLc3lCLE1BRzdCLE9BRGtCLElBQUkwNkIsR0FBQUEsUUFBSTNiLEVBQWNWLE1BQU90UixHQUFJQyxVQUNsQ2h2QixVQUFVLEVBRy9CcTJDLGdDQUFBQSxDQUFpQ0MsR0FDM0IsSUFBSSxXQUFFbGMsR0FBZWtjLEdBQ2pCLGFBQUVteUIsR0FBaUJydUMsSUFFdkIxcUMsS0FBSzZtRCxTQUFTLENBQ1ZsVyxJQUFLM3dDLEtBQUtnNUUsbUJBQ1ZELGtCQUErQjEzRSxJQUFqQjAzRSxFQUE2Qix5Q0FBMkNBLEdBRTlGLENBRUFoakMsTUFBQUEsR0FDSSxJQUFJLFdBQUVyTCxHQUFlMXFDLEtBQUtzeUIsT0FDdEIsS0FBRXFrQixHQUFTak0sSUFFWHV1QyxFQUF3QjVyQixZQUFZcnRELEtBQUt1RCxNQUFNdzFFLGNBRW5ELE1BQXFCLGlCQUFUcGlDLEdBQXFCcjNDLE9BQU9nSCxLQUFLcXdDLEdBQU1sMEMsT0FBZSxLQUU3RHpDLEtBQUt1RCxNQUFNb3RDLEtBQVE3SixzQkFBc0I5bUMsS0FBS3VELE1BQU13MUUsZUFDakNqeUMsc0JBQXNCOW1DLEtBQUt1RCxNQUFNb3RDLEtBSWpEN0YsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxlQUNoQnhTLEdBQUFBLFFBQUFBLGNBQUEsS0FBRy9yQyxPQUFPLFNBQVNtNkUsSUFBSSxzQkFBc0Jqc0IsS0FBTSxHQUFJZ3NCLGVBQXFDdnlDLG1CQUFtQjFtQyxLQUFLdUQsTUFBTW90QyxRQUN0SDdGLEdBQUFBLFFBQUFBLGNBQUNxdUMsZUFBYyxDQUFDejRELElBQUssR0FBSXU0RCxTQUErQnZ5QyxtQkFBbUIxbUMsS0FBS3VELE1BQU1vdEMsT0FBU3lvQyxJQUFJLDZCQUx0RyxJQVFiLEVBSUosTUFBTUQsdUJBQXVCcnVDLEdBQUFBLFFBQUFBLFVBTTNCeGpDLFdBQUFBLENBQVlnckIsR0FDVi9TLE1BQU0rUyxHQUNOdHlCLEtBQUt1RCxNQUFRLENBQ1gweEMsUUFBUSxFQUNSOXZDLE9BQU8sRUFFWCxDQUVBc2hELGlCQUFBQSxHQUNFLE1BQU00eUIsRUFBTSxJQUFJQyxNQUNoQkQsRUFBSUUsT0FBUyxLQUNYdjVFLEtBQUs2bUQsU0FBUyxDQUNaNVIsUUFBUSxHQUNSLEVBRUpva0MsRUFBSTVtRSxRQUFVLEtBQ1p6UyxLQUFLNm1ELFNBQVMsQ0FDWjFoRCxPQUFPLEdBQ1AsRUFFSmswRSxFQUFJMzRELElBQU0xZ0IsS0FBS3N5QixNQUFNNVIsR0FDdkIsQ0FFQWltQyxnQ0FBQUEsQ0FBaUNDLEdBQy9CLEdBQUlBLEVBQVVsbUMsTUFBUTFnQixLQUFLc3lCLE1BQU01UixJQUFLLENBQ3BDLE1BQU0yNEQsRUFBTSxJQUFJQyxNQUNoQkQsRUFBSUUsT0FBUyxLQUNYdjVFLEtBQUs2bUQsU0FBUyxDQUNaNVIsUUFBUSxHQUNSLEVBRUpva0MsRUFBSTVtRSxRQUFVLEtBQ1p6UyxLQUFLNm1ELFNBQVMsQ0FDWjFoRCxPQUFPLEdBQ1AsRUFFSmswRSxFQUFJMzRELElBQU1rbUMsRUFBVWxtQyxHQUN0QixDQUNGLENBRUFxMUIsTUFBQUEsR0FDRSxPQUFJLzFDLEtBQUt1RCxNQUFNNEIsTUFDTjJsQyxHQUFBQSxRQUFBQSxjQUFBLE9BQUtzdUMsSUFBSyxVQUNQcDVFLEtBQUt1RCxNQUFNMHhDLE9BR2hCbkssR0FBQUEsUUFBQUEsY0FBQSxPQUFLcHFCLElBQUsxZ0IsS0FBS3N5QixNQUFNNVIsSUFBSzA0RCxJQUFLcDVFLEtBQUtzeUIsTUFBTThtRCxNQUZ4QyxJQUdYLEVDbEhhLE1BQU1JLG1CQUFtQjF1QyxHQUFBQSxRQUFBQSxVQWdCdENpTCxNQUFBQSxHQUNFLElBQUksY0FDRjFFLEdBQ0VyeEMsS0FBS3N5QixNQUVULE1BQU0wcUIsRUFBWTNMLEVBQWNvTyxtQkFFaEMsT0FBc0IsSUFBbkJ6QyxFQUFVOXJDLEtBQ0o0NUIsR0FBQUEsUUFBQUEsY0FBQSxVQUFJLG1DQUlYQSxHQUFBQSxRQUFBQSxjQUFBLFdBQ0lrUyxFQUFVcDFDLElBQUk1SCxLQUFLeTVFLG9CQUFvQmwwQyxVQUN2Q3lYLEVBQVU5ckMsS0FBTyxFQUFJNDVCLEdBQUFBLFFBQUFBLGNBQUEsVUFBSSxvQ0FBd0MsS0FHekUsQ0FFQTJ1QyxtQkFBcUJBLENBQUN2OEIsRUFBUXhDLEtBQzVCLE1BQU0sY0FDSnJKLEVBQWEsYUFDYjJFLEVBQVksY0FDWjVFLEVBQWEsZ0JBQ2J5SSxFQUFlLGNBQ2ZFLEVBQWEsV0FDYnJQLEdBQ0UxcUMsS0FBS3N5QixNQUNIbXFDLEVBQXdCcHJCLEVBQWNvckIsd0JBQ3RDaWQsRUFBcUIxakMsRUFBYSxzQkFBc0IsR0FDeER3RixFQUFleEYsRUFBYSxnQkFDNUIybUIsRUFBYXpmLEVBQU90NEMsSUFBSSxjQUM5QixPQUNFa21DLEdBQUFBLFFBQUFBLGNBQUMwUSxFQUFZLENBQ1huMUMsSUFBSyxhQUFlcTBDLEVBQ3BCd0MsT0FBUUEsRUFDUnhDLElBQUtBLEVBQ0x0SixjQUFlQSxFQUNmeUksZ0JBQWlCQSxFQUNqQkUsY0FBZUEsRUFDZnJQLFdBQVlBLEVBQ1pzTCxhQUFjQSxFQUNkNlcsUUFBU3hiLEVBQWNWLE9BQ3ZCN0YsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSx5QkFFWHFmLEVBQVcvMEQsS0FBSXkxRCxJQUNiLE1BQU12b0IsRUFBT3VvQixFQUFHejRELElBQUksUUFDZG1lLEVBQVNzNkMsRUFBR3o0RCxJQUFJLFVBQ2hCMmhELEVBQVdwbUIsR0FBQUEsUUFBQUEsS0FBUSxDQUFDLFFBQVMyVSxFQUFNL3hCLElBRXpDLE9BQStDLElBQTNDMDVDLEVBQXNCN3pELFFBQVFtYSxHQUN6QixLQUlQK25CLEdBQUFBLFFBQUFBLGNBQUM0dUMsRUFBa0IsQ0FDakJyekUsSUFBSyxHQUFHeXVDLEtBQVEveEIsSUFDaEJ3akMsU0FBVUEsRUFDVjhXLEdBQUlBLEVBQ0p2b0IsS0FBTUEsRUFDTi94QixPQUFRQSxFQUNSMjNCLElBQUtBLEdBQU8sSUFFZm5WLFdBR00sRUM3RU4sTUFBTWlXLHFCQUFxQjFRLEdBQUFBLFFBQUFBLFVBRXhDb2Isb0JBQXNCLENBQ3BCaEosT0FBUS9jLEdBQUFBLFFBQUFBLE9BQVUsQ0FBQyxHQUNuQnVhLElBQUssSUFtQlAzRSxNQUFBQSxHQUNFLE1BQU0sT0FDSm1ILEVBQU0sSUFDTnhDLEVBQUcsU0FDSG9MLEVBQVEsY0FDUjFVLEVBQWEsZ0JBQ2J5SSxFQUFlLGNBQ2ZFLEVBQWEsV0FDYnJQLEVBQVUsYUFDVnNMLEVBQVksUUFDWjZXLEdBQ0U3c0QsS0FBS3N5QixNQUVULElBQUksYUFDRnc1QixFQUFZLFlBQ1o1UixHQUNFeFAsSUFFSixNQUFNd2hCLEVBQVdsVyxFQUFhLFlBQ3hCeVksRUFBV3pZLEVBQWEsWUFBWSxHQUNwQzJqQyxFQUFXM2pDLEVBQWEsWUFDeEIyWSxFQUFPM1ksRUFBYSxRQUNwQnNJLEVBQWN0SSxFQUFhLGVBQzNCdUksRUFBZ0J2SSxFQUFhLGlCQUVuQyxJQUdJNGpDLEVBSEFDLEVBQWlCMzhCLEVBQU9yYyxNQUFNLENBQUMsYUFBYyxlQUFnQixNQUM3RGk1QyxFQUE2QjU4QixFQUFPcmMsTUFBTSxDQUFDLGFBQWMsZUFBZ0IsZ0JBQ3pFazVDLEVBQXdCNzhCLEVBQU9yYyxNQUFNLENBQUMsYUFBYyxlQUFnQixRQUd0RSs0QyxFQURFdjNDLE9BQU8rTyxJQUFrQi9PLE9BQU8rTyxFQUFjTyxnQkFDM0J1YixhQUFhNnNCLEVBQXVCbHRCLEVBQVMsQ0FBRWxiLGVBQWdCUCxFQUFjTyxtQkFFN0Vvb0MsRUFHdkIsSUFBSXBnQyxFQUFhLENBQUMsaUJBQWtCZSxHQUNoQ3MvQixFQUFVbmdDLEVBQWdCc0YsUUFBUXhGLEVBQTZCLFNBQWpCbVMsR0FBNEMsU0FBakJBLEdBRTdFLE9BQ0VoaEIsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVzA4QixFQUFVLDhCQUFnQyx1QkFFeERsdkMsR0FBQUEsUUFBQUEsY0FBQSxNQUNFdWEsUUFBU0EsSUFBTXRMLEVBQWNTLEtBQUtiLEdBQWFxZ0MsR0FDL0MxOEIsVUFBWXU4QixFQUF5QyxjQUF4QixzQkFDN0J4eEMsR0FBSXNSLEVBQVcveEMsS0FBSWtiLEdBQUtta0IsbUJBQW1CbmtCLEtBQUlqYixLQUFLLEtBQ3BELFdBQVU2eUMsRUFDVixlQUFjcy9CLEdBRWRsdkMsR0FBQUEsUUFBQUEsY0FBQzZ1QyxFQUFRLENBQ1BNLFFBQVMvL0IsRUFDVGlGLFFBQVM2NkIsRUFDVGxsQyxLQUFNOU4sbUJBQW1CMFQsR0FDekJ2ckMsS0FBTXVyQyxJQUNObS9CLEVBQ0EvdUMsR0FBQUEsUUFBQUEsY0FBQSxhQUNFQSxHQUFBQSxRQUFBQSxjQUFDMmpCLEVBQVEsQ0FBQ3ZzQyxPQUFRMjNELEtBRkgvdUMsR0FBQUEsUUFBQUEsY0FBQSxjQU1qQjh1QyxFQUNBOXVDLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsc0JBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLGFBQ0VBLEdBQUFBLFFBQUFBLGNBQUM2akIsRUFBSSxDQUNEMUIsS0FBTUksWUFBWXVzQixHQUNsQnYwQixRQUFVMTZDLEdBQU1BLEVBQUVpbkUsa0JBQ2xCN3lFLE9BQU8sVUFDUCs2RSxHQUE4QkYsS0FQakIsS0FhdkI5dUMsR0FBQUEsUUFBQUEsY0FBQSxVQUNFLGdCQUFla3ZDLEVBQ2YxOEIsVUFBVSxtQkFDVi94QixNQUFPeXVELEVBQVUscUJBQXVCLG1CQUN4QzMwQixRQUFTQSxJQUFNdEwsRUFBY1MsS0FBS2IsR0FBYXFnQyxJQUU5Q0EsRUFBVWx2QyxHQUFBQSxRQUFBQSxjQUFDd1QsRUFBVyxDQUFDaEIsVUFBVSxVQUFheFMsR0FBQUEsUUFBQUEsY0FBQ3lULEVBQWEsQ0FBQ2pCLFVBQVUsWUFJNUV4UyxHQUFBQSxRQUFBQSxjQUFDb2hCLEVBQVEsQ0FBQ0UsU0FBVTR0QixHQUNqQmwwQixHQUlULEVDOUdhLE1BQU1vMEIsa0JBQWtCeDlDLEdBQUFBLGNBMkJyQ3dwQixvQkFBc0IsQ0FDcEJuUixVQUFXLEtBQ1g3QyxTQUFVLEtBQ1Z5TyxRQUFTLEtBQ1Q0RixVQUFVN29CLEVBQUFBLEdBQUFBLFFBQ1Z5OEMsUUFBUyxJQUdYcGtDLE1BQUFBLEdBQ0UsSUFBSSxTQUNGd1EsRUFBUSxTQUNSclUsRUFBUSxRQUNSeU8sRUFBTyxZQUNQeTVCLEVBQVcsY0FDWEMsRUFBYSxhQUNiQyxFQUFZLGNBQ1pDLEVBQWEsVUFDYkMsRUFBUyxHQUNUejVELEVBQUUsYUFDRmkxQixFQUFZLFdBQ1p0TCxFQUFVLFlBQ1Y2TSxFQUFXLGNBQ1hsRyxFQUFhLFlBQ2J6QyxFQUFXLGNBQ1gwQyxFQUFhLFlBQ2JtcEMsRUFBVyxjQUNYcnBDLEdBQ0VweEMsS0FBS3N5QixNQUNMb29ELEVBQWlCMTZFLEtBQUtzeUIsTUFBTXlpQixXQUU1QixXQUNGeG5CLEVBQVUsUUFDVjR4QixFQUFPLEtBQ1BySyxFQUFJLE9BQ0oveEIsRUFBTSxHQUNOczZDLEVBQUUsSUFDRjNpQixFQUFHLFlBQ0hDLEVBQVcsY0FDWGdnQyxFQUFhLHVCQUNiekMsRUFBc0IsZ0JBQ3RCMEMsRUFBZSxrQkFDZkMsR0FDRUgsRUFBZXY1QyxRQUVmLFlBQ0Yrc0IsRUFBVyxhQUNYbU8sRUFBWSxRQUNaMU0sR0FDRTBOLEVBRUosTUFBTTlPLEVBQWtCOE4sRUFBZW5QLGFBQWFtUCxFQUFhMXJCLElBQUtVLEVBQWNWLE1BQU8sQ0FBRWdCLGVBQWdCUCxFQUFjTyxtQkFBc0IsR0FDakosSUFBSW9ELEVBQVkybEMsRUFBZTc1QyxNQUFNLENBQUMsT0FDbENrOUIsRUFBWWhwQixFQUFVbndDLElBQUksYUFDMUI2NkQsRTFLd0dELFNBQVNxYixRQUFROXdELEVBQVUxakIsR0FDaEMsSUFBSTY1QixHQUFBQSxRQUFBQSxTQUFZYyxXQUFXalgsR0FDekIsT0FBT21XLEdBQUFBLFFBQUFBLE9BRVQsSUFBSW5xQixFQUFNZ1UsRUFBUzZXLE1BQU03OEIsTUFBTTJELFFBQVFyQixHQUFRQSxFQUFPLENBQUNBLElBQ3ZELE9BQU82NUIsR0FBQUEsUUFBQUEsS0FBUWlFLE9BQU9wdUIsR0FBT0EsRUFBTW1xQixHQUFBQSxRQUFBQSxNQUNyQyxDMEs5R3FCMjZDLENBQVEvbEMsRUFBVyxDQUFDLGVBQ2pDa2IsRUFBa0I1ZSxFQUFjNGUsZ0JBQWdCbmIsRUFBTS94QixHQUN0RDQyQixFQUFhLENBQUMsYUFBY2UsRUFBS0MsR0FDakNzVCxFQUFhOW1CLGNBQWM0TixHQUUvQixNQUFNZ21DLEVBQVkva0MsRUFBYSxhQUN6QmdsQyxFQUFhaGxDLEVBQWMsY0FDM0JpbEMsRUFBVWpsQyxFQUFjLFdBQ3hCNmhDLEVBQVE3aEMsRUFBYyxTQUN0QmtXLEVBQVdsVyxFQUFjLFlBQ3pCeVksRUFBV3pZLEVBQWEsWUFBWSxHQUNwQ3laLEVBQVV6WixFQUFjLFdBQ3hCa2xDLEVBQW1CbGxDLEVBQWMsb0JBQ2pDbWxDLEVBQWVubEMsRUFBYyxnQkFDN0JvbEMsRUFBbUJwbEMsRUFBYyxvQkFDakMyWSxFQUFPM1ksRUFBYyxTQUVyQixlQUFFZ1ksR0FBbUJ0akIsSUFHM0IsR0FBR3F6QixHQUFhN3JCLEdBQVlBLEVBQVNoaEMsS0FBTyxFQUFHLENBQzdDLElBQUlvbkUsR0FBaUJ2YSxFQUFVbjVELElBQUkvQixPQUFPcXZDLEVBQVN0dEMsSUFBSSxjQUFnQm01RCxFQUFVbjVELElBQUksV0FDckZzdEMsRUFBV0EsRUFBU3J0QyxJQUFJLGdCQUFpQnl6RSxFQUMzQyxDQUVBLElBQUkrQyxFQUFjLENBQUV2bUMsRUFBTS94QixHQUUxQixNQUFNZytDLEVBQW1CMXZCLEVBQWMwdkIsaUJBQWlCLENBQUNqc0IsRUFBTS94QixJQUUvRCxPQUNJK25CLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVcvdkIsRUFBYSw2QkFBK0I0eEIsRUFBVSxtQkFBbUJwOEIsWUFBbUIsbUJBQW1CQSxJQUFVc2xCLEdBQUlwQixtQkFBbUIwUyxFQUFXOXhDLEtBQUssT0FDOUtpakMsR0FBQUEsUUFBQUEsY0FBQ3N3QyxFQUFnQixDQUFDVixlQUFnQkEsRUFBZ0J2N0IsUUFBU0EsRUFBU2k3QixZQUFhQSxFQUFhcGtDLGFBQWNBLEVBQWNwSCxZQUFhQSxFQUFhMEMsY0FBZUEsRUFBZWlWLFNBQVVBLElBQzVMemIsR0FBQUEsUUFBQUEsY0FBQ29oQixFQUFRLENBQUNFLFNBQVVqTixHQUNsQnJVLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsZ0JBQ1Z2SSxHQUFhQSxFQUFVN2pDLE1BQXVCLE9BQWQ2akMsRUFBcUIsS0FDdERqSyxHQUFBQSxRQUFBQSxjQUFDdWdCLGFBQWMsQ0FBQzdOLE9BQU8sT0FBT0QsTUFBTSxPQUFPRCxVQUFVLDhCQUVyRC92QixHQUFjdWQsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSx3QkFBdUIsd0JBQ25ENFEsR0FDQXBqQixHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLCtCQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSx1QkFDYnhTLEdBQUFBLFFBQUFBLGNBQUMyakIsRUFBUSxDQUFDdnNDLE9BQVNnc0MsTUFLdkJLLEVBQ0F6akIsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxpQ0FDYnhTLEdBQUFBLFFBQUFBLGNBQUEsTUFBSXdTLFVBQVUsd0JBQXVCLHFCQUNyQ3hTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUseUJBQ1orZSxFQUFhbk8sYUFDWnBqQixHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLHNDQUNkeFMsR0FBQUEsUUFBQUEsY0FBQzJqQixFQUFRLENBQUN2c0MsT0FBU202QyxFQUFhbk8sZUFHcENwakIsR0FBQUEsUUFBQUEsY0FBQzZqQixFQUFJLENBQUM1dkQsT0FBTyxTQUFTdStDLFVBQVUsOEJBQThCMlAsS0FBTUksWUFBWWtCLElBQW1CQSxLQUU5RixLQUdSeFosR0FBY0EsRUFBVTdqQyxLQUN6QjQ1QixHQUFBQSxRQUFBQSxjQUFDa3dDLEVBQVUsQ0FDVHZiLFdBQVlBLEVBQ1psWixTQUFVQSxFQUFTL2pELEtBQUssY0FDeEJ1eUMsVUFBV0EsRUFDWHNtQyxZQUFhQSxFQUNiaEIsY0FBa0JBLEVBQ2xCQyxhQUFpQkEsRUFDakJDLGNBQWtCQSxFQUNsQkssZ0JBQW9CQSxFQUNwQkQsY0FBZUEsRUFFZjU1RCxHQUFJQSxFQUNKaTFCLGFBQWVBLEVBQ2Z1QixZQUFjQSxFQUNkbEcsY0FBZ0JBLEVBQ2hCa3RCLFdBQWEsQ0FBQ3pwQixFQUFNL3hCLEdBQ3BCMm5CLFdBQWFBLEVBQ2IrdkMsWUFBY0EsRUFDZHJwQyxjQUFnQkEsSUFuQmMsS0F1Qi9Cd3BDLEVBQ0Q5dkMsR0FBQUEsUUFBQUEsY0FBQ293QyxFQUFnQixDQUNmbGxDLGFBQWNBLEVBQ2RsQixLQUFNQSxFQUNOL3hCLE9BQVFBLEVBQ1J1NEQsaUJBQWtCdm1DLEVBQVVud0MsSUFBSSxXQUNoQzIyRSxZQUFhbHFDLEVBQWNtckIsUUFBUTM3QixNQUFNLENBQUNpVSxFQUFNLFlBQ2hEMG1DLGtCQUFtQnBxQyxFQUFjTyxlQUNqQzhwQyxrQkFBbUJoQixFQUFZZ0Isa0JBQy9CQyx1QkFBd0JqQixFQUFZaUIsdUJBQ3BDQyxrQkFBbUJ2cUMsRUFBY3dxQyxvQkFDakNDLHdCQUF5QnpxQyxFQUFjTSx1QkFYdEIsS0FlbkJrcEMsR0FBb0JELEdBQXVCaHJCLEdBQVdBLEVBQVF6K0MsS0FBTzQ1QixHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLG1CQUNoRnhTLEdBQUFBLFFBQUFBLGNBQUMya0IsRUFBTyxDQUFDRSxRQUFVQSxFQUNWN2EsS0FBT0EsRUFDUC94QixPQUFTQSxFQUNUdzBCLFlBQWNBLEVBQ2RzWSxjQUFnQkksS0FMTyxNQVNuQzJxQixJQUFvQkQsR0FBaUI1WixFQUFpQnQrRCxRQUFVLEVBQUksS0FBT3FvQyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLG9DQUFtQyxnRUFFNUh4UyxHQUFBQSxRQUFBQSxjQUFBLFVBQ0lpMkIsRUFBaUJuNUQsS0FBSSxDQUFDekMsRUFBT2MsSUFBVTZrQyxHQUFBQSxRQUFBQSxjQUFBLE1BQUl6a0MsSUFBS0osR0FBTyxJQUFHZCxFQUFPLFNBSzNFMmxDLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQWFzOUIsR0FBb0Ixb0MsR0FBYXlvQyxFQUFxQyxZQUFwQixtQkFDL0RDLEdBQW9CRCxFQUVuQjd2QyxHQUFBQSxRQUFBQSxjQUFDbXdDLEVBQU8sQ0FDTmxtQyxVQUFZQSxFQUNad0MsWUFBY0EsRUFDZGxHLGNBQWdCQSxFQUNoQkQsY0FBZ0JBLEVBQ2hCcXBDLFlBQWNBLEVBQ2QzbEMsS0FBT0EsRUFDUC94QixPQUFTQSxFQUNUeTNELFVBQVlBLEVBQ1pqcUIsU0FBVXNxQixJQVh1QixLQWNuQ0QsR0FBb0Ixb0MsR0FBYXlvQyxFQUNqQzd2QyxHQUFBQSxRQUFBQSxjQUFDK3NDLEVBQUssQ0FDSnRnQyxZQUFjQSxFQUNkekMsS0FBT0EsRUFDUC94QixPQUFTQSxJQUp1QyxNQVF2RDgzRCxFQUFvQi92QyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLHFCQUFvQnhTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsYUFBeUIsS0FFM0Z5Z0IsRUFDQ2p6QixHQUFBQSxRQUFBQSxjQUFDaXdDLEVBQVMsQ0FDUmhkLFVBQVlBLEVBQ1pwZCxRQUFVQSxFQUNWbTdCLGlCQUFtQjVwQyxFQUNuQjhELGFBQWVBLEVBQ2Z0TCxXQUFhQSxFQUNiMkcsY0FBZ0JBLEVBQ2hCb3BDLFlBQWFBLEVBQ2JycEMsY0FBZUEsRUFDZm1HLFlBQWNBLEVBQ2R1bEIsU0FBVXpyQixFQUFjK3VCLG1CQUFtQixDQUFDdHJCLEVBQU0veEIsSUFDbEQrOEMsY0FBZ0J6dUIsRUFBYzB1QixtQkFBbUIsQ0FBQ2pyQixFQUFNL3hCLElBQ3hEd2pDLFNBQVVBLEVBQVMvakQsS0FBSyxhQUN4QnN5QyxLQUFPQSxFQUNQL3hCLE9BQVNBLEVBQ1RtMUQsdUJBQXlCQSxFQUN6Qm4zRCxHQUFJQSxJQWpCSyxLQW9CWml0QyxHQUFtQkMsRUFBVy84QyxLQUMvQjQ1QixHQUFBQSxRQUFBQSxjQUFDcXdDLEVBQVksQ0FBQ2x0QixXQUFhQSxFQUFhalksYUFBZUEsSUFEakIsT0FPcEQsRUMxUGEsTUFBTTBqQywyQkFBMkJoOUMsR0FBQUEsY0FDOUNwMUIsV0FBQUEsQ0FBWWdyQixFQUFPaHRCLEdBQ2pCaWEsTUFBTStTLEVBQU9odEIsR0FFYixNQUFNLGdCQUFFczFFLEdBQW9CdG9ELEVBQU1vWSxhQUVsQzFxQyxLQUFLdUQsTUFBUSxDQUNYcTNFLGtCQUNBQyxtQkFBbUIsRUFFdkIsQ0FpQ0EzMEIsb0JBQXNCLENBQ3BCMUcsYUFBYSxFQUNidE4sU0FBVSxLQUNWeW9DLGVBQWUsRUFDZm9CLG9CQUFvQixFQUNwQjdELHdCQUF3QixHQUcxQnRpQyxlQUFBQSxDQUFnQm9tQyxFQUFXMXBELEdBQ3pCLE1BQU0sR0FBRStxQyxFQUFFLGdCQUFFeGpCLEVBQWUsV0FBRW5QLEdBQWVwWSxHQUN0QyxhQUFFdzVCLEVBQVksWUFBRTVSLEVBQVcsbUJBQUU2aEMsRUFBa0IsdUJBQUU3RCxFQUFzQix1QkFBRStELEdBQTJCdnhDLElBQ3BHOFUsRUFBYzNGLEVBQWdCMkYsY0FDOUI3RSxFQUFjMGlCLEVBQUd4OEIsTUFBTSxDQUFDLFlBQWEsMkJBQTZCdzhCLEVBQUd4OEIsTUFBTSxDQUFDLFlBQWEsa0JBQW1CMGxDLEVBQUFBLEdBQUFBLE1BQUtsSixFQUFHejRELElBQUksYUFBYzB0QixFQUFNd2lCLEtBQU14aUIsRUFBTXZQLFNBQVdzNkMsRUFBR3o0RCxJQUFJLE1BQzFLKzBDLEVBQWEsQ0FBQyxhQUFjcm5CLEVBQU1vb0IsSUFBS0MsR0FDdkNnZ0MsRUFBZ0JzQixFQUF1QnJ6RSxRQUFRMHBCLEVBQU12UCxTQUFXLFNBQXFDLElBQXhCdVAsRUFBTXFvRCxjQUN2RnJvRCxFQUFNK2UsY0FBY2d0QixpQkFBaUIvckMsRUFBTXdpQixLQUFNeGlCLEVBQU12UCxRQUFVdVAsRUFBTXFvRCxlQUNuRXhuQyxFQUFXa3FCLEVBQUd4OEIsTUFBTSxDQUFDLFlBQWEsY0FBZ0J2TyxFQUFNK2UsY0FBYzhCLFdBRTVFLE1BQU8sQ0FDTHdILGNBQ0F1aEMscUJBQXNCaGlDLEVBQ3RCc0YsY0FDQXU4QixxQkFDQTdELHlCQUNBeUMsZ0JBQ0F4bkMsV0FDQXdCLGFBQWNyaUIsRUFBTWdmLGNBQWNxRCxhQUFheEIsR0FDL0NnTSxRQUFTdEYsRUFBZ0JzRixRQUFReEYsRUFBNkIsU0FBakJtUyxHQUM3Q3F3QixVQUFXLFNBQVM3cEQsRUFBTXdpQixRQUFReGlCLEVBQU12UCxTQUN4Q212QixTQUFVNWYsRUFBTStlLGNBQWM2c0IsWUFBWTVyQyxFQUFNd2lCLEtBQU14aUIsRUFBTXZQLFFBQzVENDlCLFFBQVNydUIsRUFBTStlLGNBQWM4c0IsV0FBVzdyQyxFQUFNd2lCLEtBQU14aUIsRUFBTXZQLFFBRTlELENBRUEwakMsaUJBQUFBLEdBQ0UsTUFBTSxRQUFFdEgsR0FBWW4vQyxLQUFLc3lCLE1BQ25COHBELEVBQWtCcDhFLEtBQUtxOEUscUJBRTFCbDlCLFFBQStCOTlDLElBQXBCKzZFLEdBQ1pwOEUsS0FBSzByRCx3QkFFVCxDQUVBL0UsZ0NBQUFBLENBQWlDQyxHQUMvQixNQUFNLFNBQUUxVSxFQUFRLFFBQUVpTixHQUFZeUgsRUFDeEJ3MUIsRUFBa0JwOEUsS0FBS3E4RSxxQkFFMUJucUMsSUFBYWx5QyxLQUFLc3lCLE1BQU00ZixVQUN6Qmx5QyxLQUFLNm1ELFNBQVMsQ0FBRWcwQixtQkFBbUIsSUFHbEMxN0IsUUFBK0I5OUMsSUFBcEIrNkUsR0FDWnA4RSxLQUFLMHJELHdCQUVULENBRUEwdUIsWUFBYUEsS0FDWCxJQUFJLGNBQUVyZ0MsRUFBYSxJQUFFVyxFQUFHLFlBQUVDLEVBQVcsUUFBRXdFLEdBQVluL0MsS0FBS3N5QixNQUN4RCxNQUFNOHBELEVBQWtCcDhFLEtBQUtxOEUscUJBQ3pCbDlCLFFBQStCOTlDLElBQXBCKzZFLEdBRWJwOEUsS0FBSzByRCx5QkFFUDNSLEVBQWNTLEtBQUssQ0FBQyxhQUFjRSxFQUFLQyxJQUFld0UsRUFBUSxFQUdoRW83QixjQUFjQSxLQUNadjZFLEtBQUs2bUQsU0FBUyxDQUFDK3pCLGlCQUFrQjU2RSxLQUFLdUQsTUFBTXEzRSxpQkFBaUIsRUFHL0RQLGNBQWVBLEtBQ2JyNkUsS0FBSzZtRCxTQUFTLENBQUMrekIsaUJBQWtCNTZFLEtBQUt1RCxNQUFNcTNFLGlCQUFpQixFQUcvRE4sYUFBZ0IvYixJQUNkLE1BQU0rZCxFQUEwQnQ4RSxLQUFLc3lCLE1BQU04ZSxjQUFjbXJDLGlDQUFpQ2hlLEdBQzFGditELEtBQUtzeUIsTUFBTW1vRCxZQUFZK0Isb0JBQW9CLENBQUUzOEUsTUFBT3k4RSxFQUF5Qi9kLGNBQWEsRUFHNUZpYyxVQUFZQSxLQUNWeDZFLEtBQUs2bUQsU0FBUyxDQUFFZzBCLG1CQUFtQixHQUFPLEVBRzVDd0IsbUJBQXFCQSxLQUNuQixNQUFNLGNBQ0pockMsRUFBYSxLQUNieUQsRUFBSSxPQUNKL3hCLEVBQU0sU0FDTndqQyxHQUNFdm1ELEtBQUtzeUIsTUFFVCxPQUFHaTBCLEVBQ01sVixFQUFjaWIsb0JBQW9CL0YsRUFBU3BsQixRQUc3Q2tRLEVBQWNpYixvQkFBb0IsQ0FBQyxRQUFTeFgsRUFBTS94QixHQUFRLEVBR25FMm9DLHVCQUF5QkEsS0FDdkIsTUFBTSxZQUNKblUsRUFBVyxLQUNYekMsRUFBSSxPQUNKL3hCLEVBQU0sU0FDTndqQyxHQUNFdm1ELEtBQUtzeUIsTUFHVCxPQUFHaTBCLEVBQ01oUCxFQUFZbVUsdUJBQXVCbkYsRUFBU3BsQixRQUc5Q29XLEVBQVltVSx1QkFBdUIsQ0FBQyxRQUFTNVcsRUFBTS94QixHQUFRLEVBR3BFZ3pCLE1BQUFBLEdBQ0UsSUFDRXNuQixHQUFJb2YsRUFBWSxJQUNoQi9oQyxFQUFHLEtBQ0g1RixFQUFJLE9BQ0oveEIsRUFBTSxTQUNOb3dCLEVBQVEsYUFDUndCLEVBQVksWUFDWmdHLEVBQVcsWUFDWDZFLEVBQVcsUUFDWEwsRUFBTyxVQUNQZzlCLEVBQVMsY0FDVHhCLEVBQWEsU0FDYnpvQyxFQUFRLFFBQ1J5TyxFQUFPLG1CQUNQbzdCLEVBQWtCLHVCQUNsQjdELEVBQXNCLHFCQUN0QmdFLEVBQW9CLFNBQ3BCMzFCLEVBQVEsY0FDUmxWLEVBQWEsWUFDYmtHLEVBQVcsYUFDWHZCLEVBQVksV0FDWnRMLEVBQVUsZ0JBQ1ZtUCxFQUFlLGNBQ2ZFLEVBQWEsWUFDYm5MLEVBQVcsY0FDWDBDLEVBQWEsWUFDYm1wQyxFQUFXLGNBQ1hycEMsRUFBYSxHQUNicndCLEdBQ0UvZ0IsS0FBS3N5QixNQUVULE1BQU00bkQsRUFBWWxrQyxFQUFjLGFBRTFCb21DLEVBQWtCcDhFLEtBQUtxOEUsdUJBQXdCMStDLEVBQUFBLEdBQUFBLE9BRS9DKzhDLEdBQWlCMzhDLEVBQUFBLEdBQUFBLFFBQU8sQ0FDNUJzL0IsR0FBSStlLEVBQ0oxaEMsTUFDQTVGLE9BQ0FxbEMsUUFBU3NDLEVBQWE1N0MsTUFBTSxDQUFDLFlBQWEsYUFBZSxHQUN6RHRULFdBQVk2dUQsRUFBZ0J4M0UsSUFBSSxlQUFpQjYzRSxFQUFhNTdDLE1BQU0sQ0FBQyxZQUFhLGlCQUFrQixFQUNwRzlkLFNBQ0Fvd0IsV0FDQXdCLGVBQ0FnRyxjQUNBK2hDLG9CQUFxQk4sRUFBZ0J2N0MsTUFBTSxDQUFDLFlBQWEsMEJBQ3pEMmUsY0FDQUwsVUFDQWc5QixZQUNBeEIsZ0JBQ0FoNkIsVUFDQW83QixxQkFDQTdELHlCQUNBZ0UsdUJBQ0FyQixrQkFBbUI3NkUsS0FBS3VELE1BQU1zM0Usa0JBQzlCRCxnQkFBaUI1NkUsS0FBS3VELE1BQU1xM0Usa0JBRzlCLE9BQ0U5dkMsR0FBQUEsUUFBQUEsY0FBQ292QyxFQUFTLENBQ1JubEMsVUFBVzJsQyxFQUNYeG9DLFNBQVVBLEVBQ1Z5TyxRQUFTQSxFQUNUeEIsUUFBU0EsRUFFVGk3QixZQUFhcDZFLEtBQUtvNkUsWUFDbEJDLGNBQWVyNkUsS0FBS3E2RSxjQUNwQkMsYUFBY3Q2RSxLQUFLczZFLGFBQ25CQyxjQUFldjZFLEtBQUt1NkUsY0FDcEJDLFVBQVd4NkUsS0FBS3c2RSxVQUNoQmowQixTQUFVQSxFQUVWaFAsWUFBY0EsRUFDZGxHLGNBQWdCQSxFQUNoQm9wQyxZQUFhQSxFQUNicnBDLGNBQWVBLEVBQ2YySSxjQUFnQkEsRUFDaEJGLGdCQUFrQkEsRUFDbEJqTCxZQUFjQSxFQUNkMEMsY0FBZ0JBLEVBQ2hCMEUsYUFBZUEsRUFDZnRMLFdBQWFBLEVBQ2IzcEIsR0FBSUEsR0FHVixFQ3pQRixJQUlJLEdBSkksU0FBU3pYLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxRQUFhLFdBQWEsT0FBT3N6RSxHQUE4RCxPQUFHLElDRzFILE1BQU12Qix5QkFBeUIxK0MsR0FBQUEsY0FhNUN3cEIsb0JBQXNCLENBQ3BCdzBCLGVBQWdCLEtBQ2hCbjBCLFVBQVU3b0IsRUFBQUEsR0FBQUEsUUFDVnk4QyxRQUFTLElBR1hwa0MsTUFBQUEsR0FFRSxJQUFJLFFBQ0ZvSixFQUFPLFlBQ1BpN0IsRUFBVyxhQUNYcGtDLEVBQVksWUFDWnBILEVBQVcsY0FDWDBDLEVBQWEsZUFDYm9wQyxFQUFjLFNBQ2RuMEIsR0FDRXZtRCxLQUFLc3lCLE9BRUwsUUFDRjZuRCxFQUFPLGFBQ1B4bEMsRUFBWSxPQUNaNXhCLEVBQU0sR0FDTnM2QyxFQUFFLFlBQ0Y3ZCxFQUFXLEtBQ1gxSyxFQUFJLFlBQ0o2RixFQUFXLG9CQUNYK2hDLEVBQW1CLG1CQUNuQlgsR0FDRXJCLEVBQWV2NUMsUUFHakJnNUMsUUFBU3lDLEdBQ1B2ZixFQUVBbHFCLEVBQVd1bkMsRUFBZTkxRSxJQUFJLFlBRWxDLE1BQU0rc0UsRUFBd0IzN0IsRUFBYSx5QkFBeUIsR0FDOUQ2bUMsRUFBeUI3bUMsRUFBYSwwQkFDdEM4bUMsRUFBdUI5bUMsRUFBYSx3QkFDcENtVyxFQUFhblcsRUFBYSxjQUFjLEdBQ3hDK21DLEVBQXFCL21DLEVBQWEsc0JBQXNCLEdBQ3hEc0ksRUFBY3RJLEVBQWEsZUFDM0J1SSxFQUFnQnZJLEVBQWEsaUJBRTdCZ25DLEVBQWM3cEMsS0FBY0EsRUFBU3J3QyxRQUNyQ202RSxFQUFxQkQsR0FBaUMsSUFBbEI3cEMsRUFBU2ppQyxNQUFjaWlDLEVBQVMvMkIsUUFBUW9zQixVQUM1RTAwQyxHQUFrQkYsR0FBZUMsRUFDdkMsT0FDRW55QyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFXLG1DQUFtQ3Y2QixLQUNqRCtuQixHQUFBQSxRQUFBQSxjQUFBLFVBQ0UsZ0JBQWVxVSxFQUNmN0IsVUFBVSwwQkFDVitILFFBQVMrMEIsR0FFVHR2QyxHQUFBQSxRQUFBQSxjQUFDK3hDLEVBQXNCLENBQUM5NUQsT0FBUUEsSUFDaEMrbkIsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSw0Q0FDYnhTLEdBQUFBLFFBQUFBLGNBQUNneUMsRUFBb0IsQ0FBQzltQyxhQUFjQSxFQUFjMGtDLGVBQWdCQSxFQUFnQm4wQixTQUFVQSxJQUUxRi9HLEVBQ0ExVSxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGdDQUNaaHRDLEVBQUFBLEdBQUFBLFNBQVNzc0UsR0FBbUJ6QyxJQUZqQixNQU9qQjRCLElBQXVCVyxHQUF1Qi9oQyxHQUFlN1AsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxnQ0FBZ0NvL0IsR0FBdUIvaEMsR0FBc0IsTUFFN0o3UCxHQUFBQSxRQUFBQSxjQUFDaXlDLEVBQWtCLENBQUNJLFdBQVksR0FBRzUyQixFQUFTM2hELElBQUksT0FFOUNzNEUsRUFBaUIsS0FDZnB5QyxHQUFBQSxRQUFBQSxjQUFDNm1DLEVBQXFCLENBQ3BCaDlCLGFBQWNBLEVBQ2QwUSxRQUFTQSxLQUNQLE1BQU0rM0IsRUFBd0I5ckMsRUFBY2dELDJCQUEyQm5CLEdBQ3ZFdkUsRUFBWUgsZ0JBQWdCMnVDLEVBQXNCLElBSTFEdHlDLEdBQUFBLFFBQUFBLGNBQUNxaEIsRUFBVSxDQUFDclgsS0FBTXlSLElBQ2xCemIsR0FBQUEsUUFBQUEsY0FBQSxVQUNFLGFBQVksR0FBRy9uQixLQUFVK3hCLEVBQUt4c0MsUUFBUSxNQUFPLFFBQzdDZzFDLFVBQVUsd0JBQ1YsZ0JBQWU2QixFQUNmMEosU0FBUyxLQUNUeEQsUUFBUyswQixHQUNSajdCLEVBQVVyVSxHQUFBQSxRQUFBQSxjQUFDd1QsRUFBVyxDQUFDaEIsVUFBVSxVQUFheFMsR0FBQUEsUUFBQUEsY0FBQ3lULEVBQWEsQ0FBQ2pCLFVBQVUsV0FJaEYsRUN6R2EsTUFBTXUvQiwrQkFBK0JuZ0QsR0FBQUEsY0FPbER3cEIsb0JBQXNCLENBQ3BCdzBCLGVBQWdCLE1BRWxCM2tDLE1BQUFBLEdBRUUsSUFBSSxPQUNGaHpCLEdBQ0UvaUIsS0FBS3N5QixNQUVULE9BQ0V3WSxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLDBCQUEwQnY2QixFQUFPNG9CLGNBRXJELEVDakJhLE1BQU1teEMsNkJBQTZCcGdELEdBQUFBLGNBUWhEcVosTUFBQUEsR0FDRSxJQUFJLGFBQ0ZDLEVBQVksZUFDWjBrQyxHQUNFMTZFLEtBQUtzeUIsT0FHTCxXQUNGL0UsRUFBVSxRQUNWNHhCLEVBQU8sS0FDUHJLLEVBQUksSUFDSjRGLEVBQUcsWUFDSEMsRUFBVyxxQkFDWHVoQyxHQUNFeEIsRUFBZXY1QyxPQU1uQixNQUFNazhDLEVBQVl2b0MsRUFBS3IwQixNQUFNLFdBQzdCLElBQUssSUFBSXhjLEVBQUksRUFBR0EsRUFBSW81RSxFQUFVNTZFLE9BQVF3QixHQUFLLEVBQ3pDbzVFLEVBQVU3ekQsT0FBT3ZsQixFQUFHLEVBQUc2bUMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLemtDLElBQUtwQyxLQUduQyxNQUFNMDFFLEVBQVczakMsRUFBYyxZQUUvQixPQUNFbEwsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBWS92QixFQUFhLG1DQUFxQyx1QkFDbEUsWUFBV3VuQixHQUNYaEssR0FBQUEsUUFBQUEsY0FBQzZ1QyxFQUFRLENBQ0xNLFFBQVNpQyxFQUNULzhCLFFBQVNBLEVBQ1RySyxLQUFNOU4sbUJBQW1CLEdBQUcwVCxLQUFPQyxLQUNuQ3hyQyxLQUFNa3VFLElBSWhCLEVDbEJGLHlCQS9CNEJsQyxFQUFHbHRCLGFBQVlqWSxtQkFDdkMsSUFBSXNuQyxFQUFrQnRuQyxFQUFhLG1CQUNuQyxPQUNFbEwsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxtQkFDYnhTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsMEJBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLFVBQUksZUFFTkEsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxtQkFFYnhTLEdBQUFBLFFBQUFBLGNBQUEsYUFDRUEsR0FBQUEsUUFBQUEsY0FBQSxhQUNFQSxHQUFBQSxRQUFBQSxjQUFBLFVBQ0VBLEdBQUFBLFFBQUFBLGNBQUEsTUFBSXdTLFVBQVUsY0FBYSxTQUMzQnhTLEdBQUFBLFFBQUFBLGNBQUEsTUFBSXdTLFVBQVUsY0FBYSxXQUcvQnhTLEdBQUFBLFFBQUFBLGNBQUEsYUFFUW1qQixFQUFXL2EsV0FBV3RyQyxLQUFJLEVBQUUrNEIsRUFBRzdkLEtBQU9nb0IsR0FBQUEsUUFBQUEsY0FBQ3d5QyxFQUFlLENBQUNqM0UsSUFBSyxHQUFHczZCLEtBQUs3ZCxJQUFLeTZELEtBQU01OEMsRUFBRzY4QyxLQUFNMTZELFNBS2hHLEVDVlosNEJBYitCdzZELEVBQUdDLE9BQU1DLFdBQ3RDLE1BQU1DLEVBQW9CRCxFQUFjQSxFQUFLcjhDLEtBQU9xOEMsRUFBS3I4QyxPQUFTcThDLEVBQWpDLEtBRS9CLE9BQVExeUMsR0FBQUEsUUFBQUEsY0FBQSxVQUNKQSxHQUFBQSxRQUFBQSxjQUFBLFVBQU15eUMsR0FDTnp5QyxHQUFBQSxRQUFBQSxjQUFBLFVBQU10RyxLQUFLa0QsVUFBVSsxQyxJQUNwQixFQ0ZNLFNBQVNDLGtCQUFrQnIxQyxFQUFJczFDLEVBQWMsS0FDMUQsT0FBT3QxQyxFQUFHLy9CLFFBQVEsVUFBV3ExRSxFQUMvQixDQ0ZlLE1BQU01QyxrQkFBa0Jqd0MsR0FBQUEsUUFBQUEsVUFtQnJDb2Isb0JBQXNCLENBQ3BCNDFCLGlCQUFrQixLQUNsQmhmLFVBQVUvK0IsRUFBQUEsR0FBQUEsUUFBTyxDQUFDLHFCQUNsQm02Qyx3QkFBd0IsR0FrQjNCMEYsd0JBQTRCNW5FLEdBQVNoVyxLQUFLc3lCLE1BQU1pbEIsWUFBWXd1QixvQkFBb0IsQ0FBQy9sRSxLQUFLc3lCLE1BQU13aUIsS0FBTTkwQyxLQUFLc3lCLE1BQU12UCxRQUFTL00sR0FFckg2bkUsNEJBQThCQSxFQUFHQyx1QkFBc0JqK0UsWUFDckQsTUFBTSxZQUFFNDZFLEVBQVcsS0FBRTNsQyxFQUFJLE9BQUUveEIsR0FBVy9pQixLQUFLc3lCLE1BQ3hDd3JELEdBQ0RyRCxFQUFZc0QsdUJBQXVCLENBQ2pDbCtFLFFBQ0FpMUMsT0FDQS94QixVQUVKLEVBR0ZnekIsTUFBQUEsR0FDRSxJQUFJLFVBQ0Znb0IsRUFBUyxpQkFDVCtkLEVBQWdCLGFBQ2hCOWxDLEVBQVksV0FDWnRMLEVBQVUsY0FDVjJHLEVBQWEsR0FDYnR3QixFQUFFLGNBQ0YrK0MsRUFBYSx1QkFDYm9ZLEVBQXNCLFNBQ3RCM3hCLEVBQVEsS0FDUnpSLEVBQUksT0FDSi94QixFQUFNLGNBQ05xdUIsRUFBYSxZQUNicXBDLEdBQ0V6NkUsS0FBS3N5QixNQUNMMHJELEVuTHlHRCxTQUFTQyxrQkFBb0JsZ0IsR0FDbEMsSUFBSXQzRCxFQUFRczNELEVBQVVuOUIsU0FDdEIsT0FBT242QixFQUFNNHRDLFNBQVN2VCxJQUF3QkEsR0FBdUJyNkIsRUFBTXFyQixRQUFRenJCLEdBQXVCLE9BQWZBLEVBQUksSUFBSSxLQUFZeTNELE9BQU8xaEQsT0FDeEgsQ21MNUdzQjZoRSxDQUFtQmxnQixHQUVyQyxNQUFNbWdCLEVBQWNsb0MsRUFBYyxlQUM1QmdpQyxFQUFlaGlDLEVBQWMsZ0JBQzdCbW9DLEVBQVdub0MsRUFBYyxZQUUvQixJQUFJOG1CLEVBQVc5OEQsS0FBS3N5QixNQUFNd3FDLFVBQVk5OEQsS0FBS3N5QixNQUFNd3FDLFNBQVM1ckQsS0FBT2xSLEtBQUtzeUIsTUFBTXdxQyxTQUFXaWUsVUFBVXYwQixhQUFhc1csU0FFOUcsTUFFTXNoQixFQUZhL3NDLEVBQWM5USxTbkxrbEI5QixTQUFTODlDLDZCQUE2QnRnQixHQUMzQyxJQUFJNTlCLEdBQUFBLFFBQUFBLFdBQWNtK0MsYUFBYXZnQixHQUU3QixPQUFPLEtBR1QsSUFBSUEsRUFBVTdzRCxLQUVaLE9BQU8sS0FHVCxNQUFNcXRFLEVBQXNCeGdCLEVBQVVuM0IsTUFBSyxDQUFDN3VCLEVBQUs0b0IsSUFDeENBLEVBQUUxNEIsV0FBVyxNQUFRM0ksT0FBT2dILEtBQUt5UixFQUFJblQsSUFBSSxZQUFjLENBQUMsR0FBR25DLE9BQVMsSUFJdkUrN0UsRUFBa0J6Z0IsRUFBVW41RCxJQUFJLFlBQWN1N0IsR0FBQUEsUUFBQUEsYUFFOUNzK0MsR0FENkJELEVBQWdCNTVFLElBQUksWUFBY3U3QixHQUFBQSxRQUFBQSxjQUFpQlMsU0FBU08sT0FDckMxK0IsT0FBUys3RSxFQUFrQixLQUVyRixPQUFPRCxHQUF1QkUsQ0FDaEMsQ21McG1CTUosQ0FBNkJ0Z0IsR0FBYSxLQUV0QzJnQixFQUFXaEIsa0JBQWtCLEdBQUczNkQsSUFBUyt4QixlQUN6QzZwQyxFQUFZLEdBQUdELFdBRXJCLE9BQ0U1ekMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxxQkFDYnhTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsMEJBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLFVBQUksYUFDQXVHLEVBQWM5USxTQUFXLEtBQU91SyxHQUFBQSxRQUFBQSxjQUFBLFNBQU9pbEIsUUFBUzR1QixHQUNoRDd6QyxHQUFBQSxRQUFBQSxjQUFBLFlBQU0seUJBQ05BLEdBQUFBLFFBQUFBLGNBQUNvekMsRUFBVyxDQUFDcitFLE1BQU9pZ0UsRUFDVDhlLGFBQWNGLEVBQ2RHLFVBQVUsd0JBQ1Z2aEMsVUFBVSx1QkFDVndoQyxhQUFjaGlCLEVBQ2Q2aEIsVUFBV0EsRUFDWDd1QixTQUFVOXZELEtBQUs0OUUsNEJBR2hDOXlDLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsbUJBRVZ3K0IsRUFDbUJoeEMsR0FBQUEsUUFBQUEsY0FBQSxXQUNFQSxHQUFBQSxRQUFBQSxjQUFDa3RDLEVBQVksQ0FBQzlsQyxTQUFXNHBDLEVBQ1g5bEMsYUFBZUEsRUFDZnRMLFdBQWFBLEVBQ2IyRyxjQUFnQkEsRUFDaEJ5RCxLQUFPOTBDLEtBQUtzeUIsTUFBTXdpQixLQUNsQi94QixPQUFTL2lCLEtBQUtzeUIsTUFBTXZQLE9BQ3BCbTFELHVCQUF5QkEsSUFDdkNwdEMsR0FBQUEsUUFBQUEsY0FBQSxVQUFJLGNBVE4sS0FjdEJBLEdBQUFBLFFBQUFBLGNBQUEsU0FBTyxZQUFVLFNBQVN3UyxVQUFVLGtCQUFrQmpWLEdBQUlxMkMsRUFBVWoyQixLQUFLLFVBQ3ZFM2QsR0FBQUEsUUFBQUEsY0FBQSxhQUNFQSxHQUFBQSxRQUFBQSxjQUFBLE1BQUl3UyxVQUFVLG9CQUNaeFMsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSxrQ0FBaUMsUUFDL0N4UyxHQUFBQSxRQUFBQSxjQUFBLE1BQUl3UyxVQUFVLHVDQUFzQyxlQUNsRGpNLEVBQWM5USxTQUFXdUssR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSxxQ0FBb0MsU0FBYSxPQUc5RnhTLEdBQUFBLFFBQUFBLGNBQUEsYUFFSWl6QixFQUFVN3FCLFdBQVd0ckMsS0FBSyxFQUFFakIsRUFBTXVyQyxNQUVoQyxJQUFJb0wsRUFBWXcrQixHQUFvQkEsRUFBaUJsM0UsSUFBSSxXQUFhK0IsRUFBTyxtQkFBcUIsR0FDbEcsT0FDRW1rQyxHQUFBQSxRQUFBQSxjQUFDcXpDLEVBQVEsQ0FBQzkzRSxJQUFNTSxFQUNObXVDLEtBQU1BLEVBQ04veEIsT0FBUUEsRUFDUndqQyxTQUFVQSxFQUFTL2pELEtBQUttRSxHQUN4Qm80RSxVQUFXZixJQUFnQnIzRSxFQUMzQm9hLEdBQUlBLEVBQ0p1OEIsVUFBWUEsRUFDWjMyQyxLQUFPQSxFQUNQdXJDLFNBQVdBLEVBQ1hiLGNBQWdCQSxFQUNoQnlzQyxxQkFBc0I1ckMsSUFBYWtzQyxFQUNuQ1ksb0JBQXFCaC9FLEtBQUs2OUUsNEJBQzFCcGpCLFlBQWNxRixFQUNkcDFCLFdBQWFBLEVBQ2J1MEMsa0JBQW1CN3RDLEVBQWM4dEMscUJBQy9CcHFDLEVBQ0EveEIsRUFDQSxZQUNBcGMsR0FFRjh6RSxZQUFhQSxFQUNiemtDLGFBQWVBLEdBQWdCLElBRTFDelEsYUFPakIsRUM3SkssU0FBUzQ1QyxrQ0FBa0NucEUsR0FHaEQsT0FiSyxTQUFTb3BFLGFBQWFsM0UsR0FDM0IsSUFFRSxRQUR1QnM4QixLQUFLQyxNQUFNdjhCLEVBRXBDLENBQUUsTUFBT3lDLEdBRVAsT0FBTyxJQUNULENBQ0YsQ0FJc0J5MEUsQ0FBYXBwRSxHQUNaLE9BQVMsSUFDaEMsQ0NRZSxNQUFNbW9FLGlCQUFpQnJ6QyxHQUFBQSxRQUFBQSxVQUNwQ3hqQyxXQUFBQSxDQUFZZ3JCLEVBQU9odEIsR0FDakJpYSxNQUFNK1MsRUFBT2h0QixHQUVidEYsS0FBS3VELE1BQVEsQ0FDWDA4RCxvQkFBcUIsR0FFekIsQ0FvQkEvWixvQkFBc0IsQ0FDcEJoVSxVQUFVblUsRUFBQUEsR0FBQUEsUUFBTyxDQUFDLEdBQ2xCaWhELG9CQUFxQkEsUUFHdkJLLHFCQUF3QngvRSxJQUN0QixNQUFNLG9CQUFFbS9FLEVBQW1CLHFCQUFFbEIsR0FBeUI5OUUsS0FBS3N5QixNQUMzRHR5QixLQUFLNm1ELFNBQVMsQ0FBRW9aLG9CQUFxQnBnRSxJQUNyQ20vRSxFQUFvQixDQUNsQm4vRSxNQUFPQSxFQUNQaStFLHdCQUNBLEVBR0p3QixxQkFBdUJBLEtBQ3JCLE1BQU0sU0FBRXB0QyxFQUFRLFlBQUV1b0IsRUFBVyxrQkFBRXdrQixHQUFzQmovRSxLQUFLc3lCLE1BRXBEaXRELEVBQW9Cdi9FLEtBQUt1RCxNQUFNMDhELHFCQUF1QnhGLEVBSXREb1osRUFIa0IzaEMsRUFBU3JSLE1BQU0sQ0FBQyxVQUFXMCtDLElBQW9CNWhELEVBQUFBLEdBQUFBLEtBQUksQ0FBQyxJQUMvQi80QixJQUFJLFdBQVksTUFFZmc4QixTQUFTeGtCLFFBQ3ZELE9BQU82aUUsR0FBcUJwTCxDQUFnQixFQUc5Qzk5QixNQUFBQSxHQUNFLElBQUksS0FDRmpCLEVBQUksT0FDSi94QixFQUFNLEtBQ05wYyxFQUFJLFNBQ0p1ckMsRUFBUSxVQUNSb0wsRUFBUyxTQUNUaUosRUFBUSxHQUNSeGxDLEVBQUUsYUFDRmkxQixFQUFZLFdBQ1p0TCxFQUFVLGNBQ1YyRyxFQUFhLFlBQ2JvcEIsRUFBVyxxQkFDWHFqQixFQUFvQixZQUNwQnJELEdBQ0V6NkUsS0FBS3N5QixPQUVMLFlBQUV3bkMsRUFBVyxnQkFBRTVILEdBQW9CbnhDLEVBQ25Dd2YsRUFBUzhRLEVBQWM5USxTQUMzQixNQUFNLGVBQUV5dEIsR0FBbUJ0akIsSUFFM0IsSUFBSXVqQixFQUFhRCxFQUFpQjdtQixjQUFjK0ssR0FBWSxLQUN4RDlCLEVBQVU4QixFQUFTdHRDLElBQUksV0FDdkI0NkUsRUFBUXR0QyxFQUFTdHRDLElBQUksU0FDekIsTUFBTTY2RSxFQUFvQnpwQyxFQUFhLHFCQUNqQzhoQyxFQUFVOWhDLEVBQWEsV0FDdkJvUyxFQUFnQnBTLEVBQWEsaUJBQWlCLEdBQzlDOFIsRUFBZTlSLEVBQWEsZ0JBQzVCeVksRUFBV3pZLEVBQWEsWUFBWSxHQUNwQzBwQyxFQUFnQjFwQyxFQUFhLGlCQUM3QmtvQyxFQUFjbG9DLEVBQWEsZUFDM0JrOUIsRUFBaUJsOUIsRUFBYSxrQkFDOUJnOUIsRUFBVWg5QixFQUFhLFdBRzdCLElBQUl2VixFQUFRay9DLEVBRVosTUFBTUosRUFBb0J2L0UsS0FBS3VELE1BQU0wOEQscUJBQXVCeEYsRUFDdERtbEIsRUFBa0IxdEMsRUFBU3JSLE1BQU0sQ0FBQyxVQUFXMCtDLElBQW9CNWhELEVBQUFBLEdBQUFBLEtBQUksQ0FBQyxJQUN0RWtpRCxFQUF1QkQsRUFBZ0JoN0UsSUFBSSxXQUFZLE1BRzdELEdBQUcyN0IsRUFBUSxDQUNULE1BQU11L0MsRUFBMkJGLEVBQWdCaDdFLElBQUksVUFFckQ2N0IsRUFBU3EvQyxFQUEyQmhtQixFQUFZZ21CLEVBQXlCMytDLFFBQVUsS0FDbkZ3K0MsRUFBNkJHLEdBQTJCcGlELEVBQUFBLEdBQUFBLE1BQUssQ0FBQyxVQUFXMTlCLEtBQUt1RCxNQUFNMDhELG9CQUFxQixXQUFhMVosQ0FDeEgsTUFDRTlsQixFQUFTeVIsRUFBU3R0QyxJQUFJLFVBQ3RCKzZFLEVBQTZCenRDLEVBQVN4TixJQUFJLFVBQVk2aEIsRUFBUy9qRCxLQUFLLFVBQVkrakQsRUFHbEYsSUFBSXc1QixFQUVBQyxFQURBQyxHQUE4QixFQUU5QkMsRUFBa0IsQ0FDcEJsNEIsaUJBQWlCLEdBSW5CLEdBQUd6bkIsRUFFRCxHQURBeS9DLEVBQWVKLEVBQWdCaDdFLElBQUksV0FBV3U4QixPQUMzQ3hELEdBQUFBLElBQUk2QyxNQUFNcS9DLEtBQTBCQSxFQUFxQnIzQyxVQUFXLENBQ3JFLE1BQU0yM0MsRUFBb0JuZ0YsS0FBS3MvRSx1QkFHekJjLG9CQUF1QkMsR0FDM0IxaUQsR0FBQUEsSUFBSTZDLE1BQU02L0MsR0FDUkEsRUFBY3o3RSxJQUFJLGNBQ2xCdkQsRUFDSjArRSxFQUFtQkssb0JBTkdQLEVBQ25CajdFLElBQUl1N0UsR0FBbUJ4aUQsRUFBQUEsR0FBQUEsS0FBSSxDQUFDLFVBTVB0OEIsSUFBckIwK0UsSUFDREEsRUFBbUJLLG9CQUFvQlAsRUFBcUI5ekUsU0FBU3diLE9BQU8xbkIsUUFFOUVvZ0YsR0FBOEIsQ0FDaEMsV0FBNkM1K0UsSUFBbkN1K0UsRUFBZ0JoN0UsSUFBSSxhQUU1Qm03RSxFQUFtQkgsRUFBZ0JoN0UsSUFBSSxXQUN2Q3E3RSxHQUE4QixPQUUzQixDQUNMRCxFQUFldi9DLEVBQ2Z5L0MsRUFBa0IsSUFBSUEsRUFBaUJuNEIsa0JBQWtCLEdBQ3pELE1BQU11NEIsRUFBeUJwdUMsRUFBU3JSLE1BQU0sQ0FBQyxXQUFZMCtDLElBQ3hEZSxJQUNEUCxFQUFtQk8sRUFDbkJMLEdBQThCLEVBRWxDLENBRUEsTUFPTTk0QixFQWxLa0JvNUIsRUFBRUMsRUFBZ0JwNEIsS0FDNUMsR0FBc0IsTUFBbEJvNEIsRUFBd0IsT0FBTyxLQUVuQyxNQUNNNTZCLEVBRG1CdTVCLGtDQUFrQ3FCLEdBQ3ZCLE9BQVMsS0FFN0MsT0FDRTExQyxHQUFBQSxRQUFBQSxjQUFBLFdBQ0VBLEdBQUFBLFFBQUFBLGNBQUNzZCxFQUFhLENBQUM5SyxVQUFVLFVBQVVzSSxTQUFVQSxHQUFXbGUsVUFBVTg0QyxJQUM5RCxFQXlKVUQsQ0FQT3J1QixFQUNyQjh0QixFQUNBVCxFQUNBVyxFQUNBRCxFQUE4QkYsT0FBbUIxK0UsR0FHRSttRCxHQUVyRCxPQUNFdGQsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBWSxhQUFnQkEsR0FBYSxJQUFNLFlBQVczMkMsR0FDNURta0MsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSx1QkFDVjMyQyxHQUVKbWtDLEdBQUFBLFFBQUFBLGNBQUEsTUFBSXdTLFVBQVUsNEJBRVp4UyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLG1DQUNieFMsR0FBQUEsUUFBQUEsY0FBQzJqQixFQUFRLENBQUN2c0MsT0FBU2d3QixFQUFTdHRDLElBQUssa0JBR2hDb3BELEdBQW1CQyxFQUFXLzhDLEtBQWMrOEMsRUFBVy9hLFdBQVd0ckMsS0FBSSxFQUFFdkIsRUFBS3ljLEtBQU9nb0IsR0FBQUEsUUFBQUEsY0FBQzIwQyxFQUFpQixDQUFDcDVFLElBQUssR0FBR0EsS0FBT3ljLElBQUt5NkQsS0FBTWwzRSxFQUFLbTNFLEtBQU0xNkQsTUFBdkcsS0FFdkN5ZCxHQUFVMlIsRUFBU3R0QyxJQUFJLFdBQ3RCa21DLEdBQUFBLFFBQUFBLGNBQUEsV0FBU3dTLFVBQVUscUJBQ2pCeFMsR0FBQUEsUUFBQUEsY0FBQSxPQUNFd1MsV0FBV29MLEVBQUFBLEdBQUFBLFNBQUcsOEJBQStCLENBQzNDLGlEQUFrRG8xQixLQUdwRGh6QyxHQUFBQSxRQUFBQSxjQUFBLFNBQU93UyxVQUFVLHNDQUFxQyxjQUd0RHhTLEdBQUFBLFFBQUFBLGNBQUNvekMsRUFBVyxDQUNWcitFLE1BQU9HLEtBQUt1RCxNQUFNMDhELG9CQUNsQjZlLGFBQ0U1c0MsRUFBU3R0QyxJQUFJLFdBQ1RzdEMsRUFBU3R0QyxJQUFJLFdBQVdnOEIsVUFDeEIvQyxFQUFBQSxHQUFBQSxPQUVOaXlCLFNBQVU5dkQsS0FBS3EvRSxxQkFDZlIsVUFBVSxlQUVYZixFQUNDaHpDLEdBQUFBLFFBQUFBLGNBQUEsU0FBT3dTLFVBQVUsK0NBQThDLFlBQ3BEeFMsR0FBQUEsUUFBQUEsY0FBQSxZQUFNLFVBQWEsWUFFNUIsTUFFTG5OLEdBQUFBLElBQUk2QyxNQUFNcS9DLEtBQTBCQSxFQUFxQnIzQyxVQUN4RHNDLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsNkJBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLFNBQU93UyxVQUFVLG9DQUFtQyxZQUdwRHhTLEdBQUFBLFFBQUFBLGNBQUNvb0MsRUFBYyxDQUNiQyxTQUFVME0sRUFDVnhNLGtCQUFtQnJ6RSxLQUFLcy9FLHVCQUN4QmxNLFNBQVUvc0UsR0FDUm8wRSxFQUFZZ0csd0JBQXdCLENBQ2xDcGdGLEtBQU1nRyxFQUNOazRELFdBQVksQ0FBQ3pwQixFQUFNL3hCLEdBQ25CMjlELFlBQWEsWUFDYkMsWUFBYWg2RSxJQUdqQjJzRSxZQUFZLEtBR2QsTUFFSixLQUVGbnNCLEdBQVcxbUIsRUFDWHFLLEdBQUFBLFFBQUFBLGNBQUNnZCxFQUFZLENBQ1h2QixTQUFVbzVCLEVBQ1YzcEMsYUFBZUEsRUFDZnRMLFdBQWFBLEVBQ2IyRyxjQUFnQkEsRUFDaEI1USxPQUFTYSxjQUFjYixHQUN2QjBtQixRQUFVQSxFQUNWYSxpQkFBa0IsSUFDbEIsS0FFRnpuQixHQUFVcy9DLEVBQ1IvMEMsR0FBQUEsUUFBQUEsY0FBQ2tvQyxFQUFPLENBQ043ckIsUUFBUzA0QixFQUFxQmo3RSxJQUFJNUUsS0FBS3MvRSx3QkFBd0IzaEQsRUFBQUEsR0FBQUEsS0FBSSxDQUFDLElBQ3BFcVksYUFBY0EsRUFDZHRMLFdBQVlBLEVBQ1prMkMsV0FBVyxJQUViLEtBRUZ4d0MsRUFDQXRGLEdBQUFBLFFBQUFBLGNBQUNndEMsRUFBTyxDQUNOMW5DLFFBQVVBLEVBQ1Y0RixhQUFlQSxJQUVmLE1BR0x6VixFQUFTdUssR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSxzQkFDcEJraUMsRUFDQUEsRUFBTXFCLFFBQVEzdEMsV0FBV3RyQyxLQUFJLEVBQUV2QixFQUFLeTZFLEtBQzNCaDJDLEdBQUFBLFFBQUFBLGNBQUM0MEMsRUFBYSxDQUFDcjVFLElBQUtBLEVBQUtoRyxLQUFNZ0csRUFBS3k2RSxLQUFPQSxFQUFPOXFDLGFBQWNBLE1BRXpFbEwsR0FBQUEsUUFBQUEsY0FBQSxTQUFHLGFBQ0MsS0FHZCxFQ3JRRix1QkFSaUMyMEMsRUFBR2xDLE9BQU1DLFVBQy9CMXlDLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsdUJBQXdCaWdDLEVBQU0sS0FBSTE2RSxPQUFPMjZFLElDQS9ELEdBSkksU0FBU2wwRSxHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsUUFBYSxXQUFhLE9BQU8wM0UsR0FBK0QsT0FBRyxJQ0F0SSxHQUpJLFNBQVN6M0UsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLFFBQWEsV0FBYSxPQUFPMjNFLEdBQTZELE9BQUcsSUNJekgsTUFBTXZJLHFCQUFxQjN0QyxHQUFBQSxRQUFBQSxjQUN4Q3ZuQyxNQUFRLENBQ04wOUUsY0FBZSxNQVdqQkMsb0JBQXVCQyxJQUNyQixNQUFNLFFBQUU3MEUsR0FBWXRNLEtBQUtzeUIsTUFFekIsR0FBRzZ1RCxJQUFnQjcwRSxFQUluQixHQUFHQSxHQUFXQSxhQUFtQjA3RCxLQUFNLENBQ3JDLElBQUlvWixFQUFTLElBQUlDLFdBQ2pCRCxFQUFPN0gsT0FBUyxLQUNkdjVFLEtBQUs2bUQsU0FBUyxDQUNabzZCLGNBQWVHLEVBQU83dEMsUUFDdEIsRUFFSjZ0QyxFQUFPRSxXQUFXaDFFLEVBQ3BCLE1BQ0V0TSxLQUFLNm1ELFNBQVMsQ0FDWm82QixjQUFlMzBFLEVBQVFnRSxZQUUzQixFQUdGbTJDLGlCQUFBQSxHQUNFem1ELEtBQUtraEYsb0JBQW9CLEtBQzNCLENBRUFLLGtCQUFBQSxDQUFtQkMsR0FDakJ4aEYsS0FBS2toRixvQkFBb0JNLEVBQVVsMUUsUUFDckMsQ0FFQXlwQyxNQUFBQSxHQUNFLElBQUksUUFBRXpwQyxFQUFPLFlBQUVtdUQsRUFBVyxJQUFFOXBCLEVBQUcsUUFBRVAsRUFBUSxDQUFDLEVBQUMsYUFBRTRGLEdBQWlCaDJDLEtBQUtzeUIsTUFDbkUsTUFBTSxjQUFFMnVELEdBQWtCamhGLEtBQUt1RCxNQUN6QjZrRCxFQUFnQnBTLEVBQWEsaUJBQWlCLEdBQzlDeXJDLEVBQWUsYUFBYyxJQUFJOW5ELE1BQU9HLFVBQzlDLElBQUk0VyxFQUFNZ3hDLEVBR1YsR0FGQS93QyxFQUFNQSxHQUFPLElBR1YsOEJBQThCNUwsS0FBSzAxQixJQUNqQ3JxQixFQUFRLHdCQUEwQixjQUFjckwsS0FBS3FMLEVBQVEseUJBQzdEQSxFQUFRLHdCQUEwQixjQUFjckwsS0FBS3FMLEVBQVEseUJBQzdEQSxFQUFRLHdCQUEwQixpQkFBaUJyTCxLQUFLcUwsRUFBUSx5QkFDaEVBLEVBQVEsd0JBQTBCLGlCQUFpQnJMLEtBQUtxTCxFQUFRLDJCQUNsRTlqQyxFQUFRNEUsS0FBTyxHQUFLNUUsRUFBUTdKLE9BQVMsR0FJdEMsR0FBSSxTQUFVOGhCLE9BQVEsQ0FDcEIsSUFBSXhpQixFQUFPMDRELEdBQWUsWUFDdEJrbkIsRUFBUXIxRSxhQUFtQjA3RCxLQUFRMTdELEVBQVUsSUFBSTA3RCxLQUFLLENBQUMxN0QsR0FBVSxDQUFDdkssS0FBTUEsSUFDeEVrckQsRUFBTzFvQyxPQUFPeW9DLElBQUk0MEIsZ0JBQWdCRCxHQUVsQzNWLEVBQVcsQ0FBQ2pxRSxFQURENHVDLEVBQUl0b0MsT0FBT3NvQyxFQUFJeDZCLFlBQVksS0FBTyxHQUNqQjgyQyxHQUFNcGxELEtBQUssS0FJdkNnNkUsRUFBY3p4QyxFQUFRLHdCQUEwQkEsRUFBUSx1QkFDNUQsUUFBMkIsSUFBaEJ5eEMsRUFBNkIsQ0FDdEMsSUFBSUMsRXpMNkpQLFNBQVNDLDRDQUE0Q2xpRixHQUMxRCxJQU9JaWlGLEVBTUosR0FiZSxDQUNiLG9DQUNBLGtDQUNBLHdCQUNBLHVCQUlPeDlDLE1BQUswOUMsSUFDWkYsRUFBbUJFLEVBQU16bEIsS0FBSzE4RCxHQUNGLE9BQXJCaWlGLEtBR2dCLE9BQXJCQSxHQUE2QkEsRUFBaUJyL0UsT0FBUyxFQUN6RCxJQUNFLE9BQU84NEMsbUJBQW1CdW1DLEVBQWlCLEdBQzdDLENBQUUsTUFBTW4zRSxHQUNOMUgsUUFBUWtDLE1BQU13RixFQUNoQixDQUdGLE9BQU8sSUFDVCxDeUxwTGlDbzNFLENBQTRDRixHQUMxQyxPQUFyQkMsSUFDRjlWLEVBQVc4VixFQUVmLENBR0lKLEVBRERyaUQsR0FBSTRpRCxXQUFhNWlELEdBQUk0aUQsVUFBVUMsaUJBQ3JCcDNDLEdBQUFBLFFBQUFBLGNBQUEsV0FBS0EsR0FBQUEsUUFBQUEsY0FBQSxLQUFHbWlCLEtBQU9BLEVBQU81SCxRQUFTQSxJQUFNaG1CLEdBQUk0aUQsVUFBVUMsaUJBQWlCUCxFQUFNM1YsSUFBYSxrQkFFdkZsaEMsR0FBQUEsUUFBQUEsY0FBQSxXQUFLQSxHQUFBQSxRQUFBQSxjQUFBLEtBQUdtaUIsS0FBT0EsRUFBTytlLFNBQVdBLEdBQWEsaUJBRTdELE1BQ0UwVixFQUFTNTJDLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsY0FBYSx1R0FJbEMsR0FBSSxRQUFRdlksS0FBSzAxQixHQUFjLENBRXBDLElBQUk3VSxFQUFXLEtBQ1F1NUIsa0NBQWtDN3lFLEtBRXZEczVDLEVBQVcsUUFFYixJQUNFbFYsRUFBT2xNLEtBQUtrRCxVQUFVbEQsS0FBS0MsTUFBTW40QixHQUFVLEtBQU0sS0FDbkQsQ0FBRSxNQUFPbkgsR0FDUHVyQyxFQUFPLHFDQUF1Q3BrQyxDQUNoRCxDQUVBbzFFLEVBQVM1MkMsR0FBQUEsUUFBQUEsY0FBQ3NkLEVBQWEsQ0FBQ3hDLFNBQVVBLEVBQVU4b0IsY0FBWSxFQUFDRCxTQUFVLEdBQUdnVCxTQUFxQjlTLFNBQU8sR0FBRWorQixFQUd0RyxLQUFXLE9BQU8zTCxLQUFLMDFCLElBQ3JCL3BCLEdBQU95eEMsRUFBQUEsR0FBQUEsU0FBVTcxRSxFQUFTLENBQ3hCODFFLHFCQUFxQixFQUNyQkMsU0FBVSxPQUVaWCxFQUFTNTJDLEdBQUFBLFFBQUFBLGNBQUNzZCxFQUFhLENBQUNzbUIsY0FBWSxFQUFDRCxTQUFVLEdBQUdnVCxRQUFvQjlTLFNBQU8sR0FBRWorQixJQUkvRWd4QyxFQURrQyxlQUF6QlksRUFBQUEsR0FBQUEsU0FBUTduQixJQUFnQyxjQUFjMTFCLEtBQUswMUIsR0FDM0QzdkIsR0FBQUEsUUFBQUEsY0FBQ3NkLEVBQWEsQ0FBQ3NtQixjQUFZLEVBQUNELFNBQVUsR0FBR2dULFNBQXFCOVMsU0FBTyxHQUFFcmlFLEdBRzlDLGNBQXpCZzJFLEVBQUFBLEdBQUFBLFNBQVE3bkIsSUFBK0IsWUFBWTExQixLQUFLMDFCLEdBQ3hEM3ZCLEdBQUFBLFFBQUFBLGNBQUNzZCxFQUFhLENBQUNzbUIsY0FBWSxFQUFDRCxTQUFVLEdBQUdnVCxRQUFvQjlTLFNBQU8sR0FBRXJpRSxHQUd0RSxZQUFZeTRCLEtBQUswMUIsR0FDdkJBLEVBQVkveEQsU0FBUyxPQUNib2lDLEdBQUFBLFFBQUFBLGNBQUEsV0FBSyxJQUFHeCtCLEVBQVMsS0FFakJ3K0IsR0FBQUEsUUFBQUEsY0FBQSxPQUFLcHFCLElBQU02RCxPQUFPeW9DLElBQUk0MEIsZ0JBQWdCdDFFLEtBSXhDLFlBQVl5NEIsS0FBSzAxQixHQUNqQjN2QixHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGNBQWF4UyxHQUFBQSxRQUFBQSxjQUFBLFNBQU95M0MsVUFBUSxFQUFDbDhFLElBQU1zcUMsR0FBTTdGLEdBQUFBLFFBQUFBLGNBQUEsVUFBUXBxQixJQUFNaXdCLEVBQU01dUMsS0FBTzA0RCxNQUNoRSxpQkFBWm51RCxFQUNQdytCLEdBQUFBLFFBQUFBLGNBQUNzZCxFQUFhLENBQUNzbUIsY0FBWSxFQUFDRCxTQUFVLEdBQUdnVCxRQUFvQjlTLFNBQU8sR0FBRXJpRSxHQUNyRUEsRUFBUTRFLEtBQU8sRUFFdEIrdkUsRUFHUW4yQyxHQUFBQSxRQUFBQSxjQUFBLFdBQ1BBLEdBQUFBLFFBQUFBLGNBQUEsS0FBR3dTLFVBQVUsS0FBSSwyREFHakJ4UyxHQUFBQSxRQUFBQSxjQUFDc2QsRUFBYSxDQUFDc21CLGNBQVksRUFBQ0QsU0FBVSxHQUFHZ1QsUUFBb0I5UyxTQUFPLEdBQUVzUyxJQUsvRG4yQyxHQUFBQSxRQUFBQSxjQUFBLEtBQUd3UyxVQUFVLEtBQUksa0RBTW5CLEtBR1gsT0FBVW9rQyxFQUFnQjUyQyxHQUFBQSxRQUFBQSxjQUFBLFdBQ3RCQSxHQUFBQSxRQUFBQSxjQUFBLFVBQUksaUJBQ0Y0MkMsR0FGYSxJQUtyQixFQ2xLYSxNQUFNMUcsbUJBQW1CditDLEdBQUFBLFVBRXRDbjFCLFdBQUFBLENBQVlnckIsR0FDVi9TLE1BQU0rUyxHQUNOdHlCLEtBQUt1RCxNQUFRLENBQ1hpL0UsaUJBQWlCLEVBQ2pCQyxtQkFBbUIsRUFFdkIsQ0F1QkF2OEIsb0JBQXNCLENBQ3BCbTBCLGNBQWVuN0UsU0FBU0MsVUFDeEJvN0UsY0FBZXI3RSxTQUFTQyxVQUN4Qnk3RSxpQkFBaUIsRUFDakJELGVBQWUsRUFDZlUsWUFBYSxHQUNiOTBCLFNBQVUsSUFHWnVKLFNBQVdBLENBQUNsb0IsRUFBTy9uQyxFQUFPMC9ELEtBQ3hCLElBQ0Vob0IsYUFBYSxzQkFBRWl1QixHQUF1QixZQUN0QzZWLEdBQ0VyN0UsS0FBS3N5QixNQUVUa3pDLEVBQXNCNlYsRUFBYXp6QyxFQUFPL25DLEVBQU8wL0QsRUFBTSxFQUd6RG1qQix3QkFBMkIxc0UsSUFDekIsSUFDRXVoQyxhQUFhLG9CQUFFdXVCLEdBQXFCLFlBQ3BDdVYsR0FDRXI3RSxLQUFLc3lCLE1BRVR3ekMsRUFBb0J1VixFQUFhcmxFLEVBQUksRUFHdkMyc0UsVUFBYXI3QixHQUNDLGVBQVJBLEVBQ0t0bkQsS0FBSzZtRCxTQUFTLENBQ25CNDdCLG1CQUFtQixFQUNuQkQsaUJBQWlCLElBRUYsY0FBUmw3QixFQUNGdG5ELEtBQUs2bUQsU0FBUyxDQUNuQjI3QixpQkFBaUIsRUFDakJDLG1CQUFtQixTQUhoQixFQVFURyxrQkFBb0JBLEVBQUcvaUYsUUFBTzArRCxpQkFDNUIsSUFBSSxZQUFFaG5CLEVBQVcsY0FBRW5HLEVBQWEsWUFBRXFwQyxHQUFnQno2RSxLQUFLc3lCLE1BQ3ZELE1BQU1naUQsRUFBb0JsakMsRUFBY3l4QyxxQkFBcUJ0a0IsR0FDdkR1a0IsRUFBK0IxeEMsRUFBYzB4QyxnQ0FBZ0N2a0IsR0FDbkZrYyxFQUFZc0ksc0JBQXNCLENBQUVsakYsUUFBTzArRCxlQUMzQ2tjLEVBQVl1SSw2QkFBNkIsQ0FBRXprQixlQUN0QytWLElBQ0N3TyxHQUNGckksRUFBWStCLG9CQUFvQixDQUFFMzhFLFdBQU93QixFQUFXazlELGVBRXREaG5CLEVBQVk4dkIsaUJBQWlCOUksR0FDN0JobkIsRUFBWSt2QixnQkFBZ0IvSSxHQUM1QmhuQixFQUFZc3VCLG9CQUFvQnRILEdBQ2xDLEVBR0Z4b0IsTUFBQUEsR0FFRSxJQUFJLGNBQ0Zza0MsRUFBYSxhQUNiQyxFQUFZLFdBQ1o3YSxFQUFVLGNBQ1ZrYixFQUFhLGdCQUNiQyxFQUFlLFNBQ2ZyMEIsRUFBUSxHQUNSeGxDLEVBQUUsYUFDRmkxQixFQUFZLFdBQ1p0TCxFQUFVLGNBQ1YyRyxFQUFhLFlBQ2JrRyxFQUFXLFdBQ1hnbkIsRUFBVSxZQUNWa2MsRUFBVyxjQUNYcnBDLEVBQWEsVUFDYjJELEdBQ0UvMEMsS0FBS3N5QixNQUVULE1BQU0yd0QsRUFBZWp0QyxFQUFhLGdCQUM1Qmt0QyxFQUFpQmx0QyxFQUFhLGtCQUM5QmtvQyxFQUFjbG9DLEVBQWEsZUFDM0JtdEMsRUFBWW50QyxFQUFhLGFBQWEsR0FDdENvdEMsRUFBY3B0QyxFQUFhLGVBQWUsR0FFMUNrUixFQUFZMHpCLEdBQW1CRCxFQUMvQnA2QyxFQUFTOFEsRUFBYzlRLFNBR3ZCbytDLEVBQVksR0FERGpCLGtCQUFrQixHQUFHbmYsRUFBVyxLQUFLQSxFQUFXLHdCQUczRGdELEVBQWN4c0IsRUFBVW53QyxJQUFJLGVBRTVCeStFLEVBQXVCL2pGLE9BQU95TSxPQUFPMHpELEVBQ3hDbHJDLFFBQU8sQ0FBQzhYLEVBQUtoakMsS0FDWixHQUFJczBCLEdBQUFBLElBQUk2QyxNQUFNbjNCLEdBQUksQ0FDaEIsTUFBTWhELEVBQU1nRCxFQUFFekUsSUFBSSxNQUNsQnluQyxFQUFJaG1DLEtBQVMsR0FDYmdtQyxFQUFJaG1DLEdBQUs3RCxLQUFLNkcsRUFDaEIsQ0FDQSxPQUFPZ2pDLENBQUcsR0FDVCxDQUFDLElBQ0g5WCxRQUFPLENBQUM4WCxFQUFLaGpDLElBQU1nakMsRUFBSTVzQyxPQUFPNEosSUFBSSxJQUdyQyxPQUNFeWhDLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsbUJBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLDBCQUNaL2MsRUFDQ3VLLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsY0FDYnhTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3VhLFFBQVNBLElBQU1ybEQsS0FBSzJpRixVQUFVLGNBQzlCcmxDLFVBQVcsWUFBWXQ5QyxLQUFLdUQsTUFBTWsvRSxtQkFBcUIsWUFDMUQzM0MsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSxpQkFBZ0J4UyxHQUFBQSxRQUFBQSxjQUFBLFlBQU0sZ0JBRXJDaUssRUFBVW53QyxJQUFJLGFBRVhrbUMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLdWEsUUFBU0EsSUFBTXJsRCxLQUFLMmlGLFVBQVUsYUFDOUJybEMsVUFBVyxZQUFZdDlDLEtBQUt1RCxNQUFNaS9FLGlCQUFtQixZQUN4RDEzQyxHQUFBQSxRQUFBQSxjQUFBLE1BQUl3UyxVQUFVLGlCQUFnQnhTLEdBQUFBLFFBQUFBLGNBQUEsWUFBTSxlQUVwQyxNQUlSQSxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGNBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLE1BQUl3UyxVQUFVLGlCQUFnQixlQUdqQ3E5QixFQUNDN3ZDLEdBQUFBLFFBQUFBLGNBQUNvNEMsRUFBYyxDQUNiM2lELE9BQVE4USxFQUFjOVEsU0FDdEJzaUQsa0JBQW1CenhDLEVBQWN5eEMscUJBQXFCdGtCLEdBQ3REMGIsUUFBU1csRUFDVEwsY0FBZXY2RSxLQUFLc3lCLE1BQU1pb0QsY0FDMUJGLGNBQWVBLEVBQ2ZDLGFBQWNBLElBQU1BLEVBQWEvYixLQUNqQyxNQUVMditELEtBQUt1RCxNQUFNay9FLGtCQUFvQjMzQyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLHdCQUMzQytsQyxFQUFxQjVnRixPQUNyQnFvQyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLG1CQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxTQUFPd1MsVUFBVSxjQUNmeFMsR0FBQUEsUUFBQUEsY0FBQSxhQUNBQSxHQUFBQSxRQUFBQSxjQUFBLFVBQ0VBLEdBQUFBLFFBQUFBLGNBQUEsTUFBSXdTLFVBQVUsa0NBQWlDLFFBQy9DeFMsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSx5Q0FBd0MsaUJBR3hEeFMsR0FBQUEsUUFBQUEsY0FBQSxhQUVFdTRDLEVBQXFCejdFLEtBQUksQ0FBQzA0QixFQUFXcjhCLElBQ25DNm1DLEdBQUFBLFFBQUFBLGNBQUNtNEMsRUFBWSxDQUNYbGlFLEdBQUlBLEVBQ0p3bEMsU0FBVUEsRUFBUy9qRCxLQUFLeUIsRUFBRXFNLFlBQzFCMGxDLGFBQWNBLEVBQ2R0TCxXQUFZQSxFQUNaNDRDLFNBQVVoakQsRUFDVnNILE1BQU95SixFQUFjaXRCLDRCQUE0QkMsRUFBWWorQixHQUM3RGo2QixJQUFLLEdBQUdpNkIsRUFBVTE3QixJQUFJLFNBQVMwN0IsRUFBVTE3QixJQUFJLFVBQzdDa3JELFNBQVU5dkQsS0FBSzh2RCxTQUNmeXpCLGlCQUFrQnZqRixLQUFLMGlGLHdCQUN2QnJ4QyxjQUFlQSxFQUNma0csWUFBYUEsRUFDYmtqQyxZQUFhQSxFQUNicnBDLGNBQWVBLEVBQ2ZtdEIsV0FBWUEsRUFDWnJYLFVBQVdBLFNBM0JTcGMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSwrQkFBOEJ4UyxHQUFBQSxRQUFBQSxjQUFBLFNBQUcsbUJBa0N6RSxLQUVSOXFDLEtBQUt1RCxNQUFNaS9FLGdCQUFrQjEzQyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLG1EQUMzQ3hTLEdBQUFBLFFBQUFBLGNBQUNxNEMsRUFBUyxDQUNSSyxXQUFXN2xELEVBQUFBLEdBQUFBLEtBQUlvWCxFQUFVbndDLElBQUksY0FDN0IyaEQsU0FBVUEsRUFBUzFsRCxNQUFNLEdBQUksR0FBRzJCLEtBQUssZ0JBRWhDLEtBRVArOUIsR0FBVWdoQyxHQUFldmhFLEtBQUt1RCxNQUFNay9FLG1CQUNwQzMzQyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGdEQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSwwQkFDYnhTLEdBQUFBLFFBQUFBLGNBQUEsTUFBSXdTLFVBQVcsaUNBQWlDaWtCLEVBQVkzOEQsSUFBSSxhQUFlLGNBQWMsZ0JBRTdGa21DLEdBQUFBLFFBQUFBLGNBQUEsU0FBT3pDLEdBQUlzMkMsR0FDVDd6QyxHQUFBQSxRQUFBQSxjQUFDb3pDLEVBQVcsQ0FDVnIrRSxNQUFPdXhDLEVBQWM0dUIsc0JBQXNCekIsR0FDM0N1Z0IsYUFBY3ZkLEVBQVkzOEQsSUFBSSxXQUFXODRCLEVBQUFBLEdBQUFBLFNBQVFrRCxTQUNqRGt2QixTQUFXandELElBQ1RHLEtBQUs0aUYsa0JBQWtCLENBQUUvaUYsUUFBTzArRCxjQUFhLEVBRS9DamhCLFVBQVUsMEJBQ1Z1aEMsVUFBVSx1QkFDVkYsVUFBV0EsTUFJakI3ekMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSwrQkFDYnhTLEdBQUFBLFFBQUFBLGNBQUNzNEMsRUFBVyxDQUNWNU8sOEJBbEdvQzVwRSxHQUFNNnZFLEVBQVlqRyw4QkFBOEIsQ0FBRTMwRSxNQUFPK0ssRUFBRzJ6RCxlQW1HaEcrVixrQkFBbUJsakMsRUFBY3l4QyxxQkFBcUJ0a0IsR0FDdERoWSxTQUFVQSxFQUFTMWxELE1BQU0sR0FBSSxHQUFHMkIsS0FBSyxlQUNyQysrRCxZQUFhQSxFQUNicUYsaUJBQWtCeDFCLEVBQWN3MUIsb0JBQW9CckksR0FDcERzSSw0QkFBNkJ6MUIsRUFBY3kxQiwrQkFBK0J0SSxHQUMxRWtsQixrQkFBbUJyeUMsRUFBY3F5QyxxQkFBcUJsbEIsR0FDdERyWCxVQUFXQSxFQUNYeGMsV0FBWUEsRUFDWnUwQyxrQkFBbUI3dEMsRUFBYzh0Qyx3QkFDNUIzZ0IsRUFDSCxjQUNBLGVBRUZtbEIsd0JBQXlCcjlFLElBQ3ZCckcsS0FBS3N5QixNQUFNbW9ELFlBQVlnRyx3QkFBd0IsQ0FDN0NwZ0YsS0FBTWdHLEVBQ05rNEQsV0FBWXYrRCxLQUFLc3lCLE1BQU1pc0MsV0FDdkJtaUIsWUFBYSxjQUNiQyxZQUFhLGVBQ2IsRUFHSjd3QixTQUFVQSxDQUFDandELEVBQU9pMUMsS0FDaEIsR0FBSUEsRUFBTSxDQUNSLE1BQU02dUMsRUFBWXZ5QyxFQUFjdzFCLG9CQUFvQnJJLEdBQzlDcWxCLEVBQWNqbUQsR0FBQUEsSUFBSTZDLE1BQU1takQsR0FBYUEsR0FBWWhtRCxFQUFBQSxHQUFBQSxPQUN2RCxPQUFPODhDLEVBQVkrQixvQkFBb0IsQ0FDckNqZSxhQUNBMStELE1BQU8rakYsRUFBWXh3QyxNQUFNMEIsRUFBTWoxQyxJQUVuQyxDQUNBNDZFLEVBQVkrQixvQkFBb0IsQ0FBRTM4RSxRQUFPMCtELGNBQWEsRUFFeERzbEIscUJBQXNCQSxDQUFDeGpGLEVBQU1SLEtBQzNCNDZFLEVBQVlxSix3QkFBd0IsQ0FDbEN2bEIsYUFDQTErRCxRQUNBUSxRQUNBLEVBRUpvNkQsWUFBYXJwQixFQUFjNHVCLHNCQUFzQnpCLE9BTS9ELEVDalJGLHdCQVI0QndsQixFQUFHeEcsT0FBTUMsVUFDMUIxeUMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSx3QkFBeUJpZ0MsRUFBTSxLQUFJMTZFLE9BQU8yNkUsSUNDcEUsTUFTTXdHLEdBQW9DLENBQ3hDbDBCLFNBVld0K0MsT0FXWHl5RSxrQkFBbUIsQ0FBQyxHQUVQLE1BQU1DLDhCQUE4QnpuRCxHQUFBQSxVQUVqRHlwQixvQkFBc0I4OUIsR0FFdEJ2OUIsaUJBQUFBLEdBQ0UsTUFBTSxrQkFBRXc5QixFQUFpQixTQUFFbjBCLEdBQWE5dkQsS0FBS3N5QixPQUN2QyxtQkFBRTZ4RCxFQUFrQixhQUFFQyxHQUFpQkgsRUFDekNFLEdBQ0ZyMEIsRUFBU3MwQixFQUViLENBRUFDLGlCQUFtQjE1RSxJQUNqQixNQUFNLFNBQUVtbEQsR0FBYTl2RCxLQUFLc3lCLE1BQzFCdzlCLEVBQVNubEQsRUFBRTVMLE9BQU8rVixRQUFRLEVBRzVCaWhDLE1BQUFBLEdBQ0UsSUFBSSxXQUFFdXVDLEVBQVUsV0FBRWh6QixHQUFldHhELEtBQUtzeUIsTUFFdEMsT0FDRXdZLEdBQUFBLFFBQUFBLGNBQUEsV0FDRUEsR0FBQUEsUUFBQUEsY0FBQSxTQUNFaWxCLFFBQVEsc0JBQ1J6UyxXQUFXb0wsRUFBQUEsR0FBQUEsU0FBRyxnQ0FBaUMsQ0FDN0MsU0FBWTRJLEtBR2R4bUIsR0FBQUEsUUFBQUEsY0FBQSxTQUNFekMsR0FBRyxzQkFDSHRtQyxLQUFLLFdBQ0x3dUQsU0FBVWUsRUFDVng4QyxTQUFVdzhDLEdBQWNnekIsRUFDeEJ4MEIsU0FBVTl2RCxLQUFLcWtGLG1CQUNmLG9CQUtWLEVDakRhLE1BQU1wQixxQkFBcUJ4bUQsR0FBQUEsVUFrQnhDbjFCLFdBQUFBLENBQVlnckIsRUFBT2h0QixHQUNqQmlhLE1BQU0rUyxFQUFPaHRCLEdBRWJ0RixLQUFLdWtGLGlCQUNQLENBRUE1OUIsZ0NBQUFBLENBQWlDcjBCLEdBQy9CLElBT0kyK0IsR0FQQSxjQUFFNWYsRUFBYSxXQUFFa3RCLEVBQVUsU0FBRStrQixHQUFhaHhELEVBQzFDaU8sRUFBUzhRLEVBQWM5USxTQUV2QnkrQixFQUFvQjN0QixFQUFjaXRCLDRCQUE0QkMsRUFBWStrQixJQUFhLElBQUkzbEQsR0FBQUEsSUFNL0YsR0FKQXFoQyxFQUFvQkEsRUFBa0J4MkIsVUFBWTg2QyxFQUFXdGtCLEVBSTFEeitCLEVBQVEsQ0FDVCxJQUFJLE9BQUVFLEdBQVdKLG1CQUFtQjIrQixFQUFtQixDQUFFeitCLFdBQ3pEMHdCLEVBQVl4d0IsRUFBU0EsRUFBTzc3QixJQUFJLGFBQVV2RCxDQUM1QyxNQUNFNHZELEVBQVkrTixFQUFvQkEsRUFBa0JwNkQsSUFBSSxhQUFVdkQsRUFFbEUsSUFFSXhCLEVBRkF3bUUsRUFBYXJILEVBQW9CQSxFQUFrQnA2RCxJQUFJLGNBQVd2RCxPQUlsREEsSUFBZmdsRSxFQUNIeG1FLEVBQVF3bUUsRUFDRWlkLEVBQVMxK0UsSUFBSSxhQUFlcXNELEdBQWFBLEVBQVUvL0MsT0FDN0RyUixFQUFRb3hELEVBQVU3MEMsY0FHTC9hLElBQVZ4QixHQUF1QkEsSUFBVXdtRSxHQUNwQ3JtRSxLQUFLd2tGLGdCN0wrckJKLFNBQVNDLGVBQWUvOEUsR0FDN0IsTUFBb0IsaUJBQVZBLEVBQ0RBLEVBQU00SSxXQUdSNUksQ0FDVCxDNkxyc0IyQis4RSxDQUFlNWtGLElBR3RDRyxLQUFLdWtGLGlCQUNQLENBRUFDLGdCQUFrQkEsQ0FBQzNrRixFQUFPMC9ELEdBQVEsS0FDaEMsSUFDSW1sQixHQURBLFNBQUU1MEIsRUFBUSxTQUFFd3pCLEdBQWF0akYsS0FBS3N5QixNQVVsQyxPQUxFb3lELEVBRFcsS0FBVjdrRixHQUFpQkEsR0FBd0IsSUFBZkEsRUFBTXFSLEtBQ2QsS0FFQXJSLEVBR2Rpd0QsRUFBU3d6QixFQUFVb0IsRUFBa0JubEIsRUFBTSxFQUdwRG9sQixpQkFBb0J0K0UsSUFDbEJyRyxLQUFLc3lCLE1BQU1tb0QsWUFBWWdHLHdCQUF3QixDQUM3Q3BnRixLQUFNZ0csRUFDTms0RCxXQUFZditELEtBQUtzeUIsTUFBTWlzQyxXQUN2Qm1pQixZQUFhLGFBQ2JDLFlBQWEzZ0YsS0FBSzRrRixlQUNsQixFQUdKZixxQkFBd0I1eEIsSUFDdEIsSUFBSSxZQUFFMWEsRUFBVyxNQUFFM1AsRUFBSyxXQUFFMjJCLEdBQWV2K0QsS0FBS3N5QixNQUM5QyxNQUFNeVYsRUFBWUgsRUFBTWhqQyxJQUFJLFFBQ3RCb2pDLEVBQVVKLEVBQU1oakMsSUFBSSxNQUMxQixPQUFPMnlDLEVBQVlvdUIsMEJBQTBCcEgsRUFBWXgyQixFQUFXQyxFQUFTaXFCLEVBQVMsRUFHeEZzeUIsZ0JBQWtCQSxLQUNoQixJQUFJLGNBQUVsekMsRUFBYSxXQUFFa3RCLEVBQVUsU0FBRStrQixFQUFRLGNBQUVseUMsRUFBYSxHQUFFcndCLEdBQU8vZ0IsS0FBS3N5QixNQUV0RSxNQUFNdXlELEVBQWdCeHpDLEVBQWNpdEIsNEJBQTRCQyxFQUFZK2tCLEtBQWEzbEQsRUFBQUEsR0FBQUEsT0FDekYsSUFBSSxPQUFFOEMsR0FBV0osbUJBQW1Cd2tELEVBQWUsQ0FBRXRrRCxPQUFROFEsRUFBYzlRLFdBQzNFLE1BQU11a0QsRUFBcUJELEVBQ3hCamdGLElBQUksV0FBVys0QixFQUFBQSxHQUFBQSxRQUNmaUQsU0FDQXhrQixRQUdHMm9FLEVBQXVCdGtELEVBQVMxZixFQUFHbXhDLGdCQUFnQnp4QixFQUFPVSxPQUFRMmpELEVBQW9CLENBRTFGLzhCLGtCQUFrQixJQUNmLEtBRUwsR0FBSzg4QixRQUFnRHhqRixJQUEvQndqRixFQUFjamdGLElBQUksVUFJUixTQUE1QmlnRixFQUFjamdGLElBQUksTUFBbUIsQ0FDdkMsSUFBSWd6RSxFQUlKLEdBQUl2bUMsRUFBYzJ6QyxhQUNoQnBOLE9BQ3FDdjJFLElBQW5Dd2pGLEVBQWNqZ0YsSUFBSSxhQUNoQmlnRixFQUFjamdGLElBQUksa0JBQzZCdkQsSUFBL0N3akYsRUFBY2hrRCxNQUFNLENBQUMsU0FBVSxZQUMvQmdrRCxFQUFjaGtELE1BQU0sQ0FBQyxTQUFVLFlBQzlCSixHQUFVQSxFQUFPSSxNQUFNLENBQUMsaUJBQ3hCLEdBQUl3USxFQUFjOVEsU0FBVSxDQUNqQ0UsRUFBU3pnQyxLQUFLaWxGLGtCQUFrQnhrRCxHQUVoQyxNQUFNNHlDLEVBQW9CamlDLEVBQWM4dEMsd0JBQXdCM2dCLEVBQVksYUFBY3YrRCxLQUFLNGtGLGVBQy9GaE4sT0FDb0V2MkUsSUFBbEV3akYsRUFBY2hrRCxNQUFNLENBQUMsV0FBWXd5QyxFQUFtQixVQUNsRHdSLEVBQWNoa0QsTUFBTSxDQUFDLFdBQVl3eUMsRUFBbUIsZUFDZ0JoeUUsSUFBcEV3akYsRUFBY2hrRCxNQUFNLENBQUMsVUFBV2lrRCxFQUFvQixZQUNwREQsRUFBY2hrRCxNQUFNLENBQUMsVUFBV2lrRCxFQUFvQixpQkFDbkJ6akYsSUFBakN3akYsRUFBY2pnRixJQUFJLFdBQ2xCaWdGLEVBQWNqZ0YsSUFBSSxnQkFDb0J2RCxLQUFyQ28vQixHQUFVQSxFQUFPNzdCLElBQUksWUFDckI2N0IsR0FBVUEsRUFBTzc3QixJQUFJLGdCQUNnQnZELEtBQXJDby9CLEdBQVVBLEVBQU83N0IsSUFBSSxZQUNyQjY3QixHQUFVQSxFQUFPNzdCLElBQUksV0FDdEJpZ0YsRUFBY2pnRixJQUFJLFVBQ3hCLE1BSW9CdkQsSUFBakJ1MkUsR0FBK0JsNkMsR0FBQUEsS0FBSzBHLE9BQU93ekMsS0FFNUNBLEVBQWVsd0MsVUFBVWt3QyxJQUszQixNQUFNc04sRUFBbUJua0UsRUFBRzB2QyxvQkFBb0Jod0IsR0FDMUMreEIsRUFBa0J6eEMsRUFBRzB2QyxvQkFBb0Jod0IsR0FBUTc3QixJQUFJLGVBRXZDdkQsSUFBakJ1MkUsRUFDRDUzRSxLQUFLd2tGLGdCQUFnQjVNLEdBRUEsV0FBckJzTixHQUNHSCxJQUNDRixFQUFjamdGLElBQUksWUFPdEI1RSxLQUFLd2tGLGdCQUNIOW1ELEdBQUFBLEtBQUswRyxPQUFPMmdELEdBQ1ZBLEVBRUFyOUMsVUFBVXE5QyxJQUtPLFVBQXJCRyxHQUN1QixXQUFwQjF5QixHQUNBdXlCLElBQ0NGLEVBQWNqZ0YsSUFBSSxhQUV0QjVFLEtBQUt3a0YsZ0JBQ0g5bUQsR0FBQUEsS0FBSzBHLE9BQU8yZ0QsR0FDVkEsR0FFQXJuRCxFQUFBQSxHQUFBQSxNQUFLOEcsS0FBS0MsTUFBTXNnRCxJQUl4QixHQUdGSCxXQUFBQSxHQUNFLE1BQU0sTUFBRWg5QyxHQUFVNW5DLEtBQUtzeUIsTUFFdkIsT0FBSXNWLEVBRUcsR0FBR0EsRUFBTWhqQyxJQUFJLFdBQVdnakMsRUFBTWhqQyxJQUFJLFFBRnZCLElBR3BCLENBRUFxZ0YsaUJBQUFBLENBQWtCeGtELEdBQ2hCLE1BQU0sR0FBRTFmLEdBQU8vZ0IsS0FBS3N5QixNQUNkOXFCLEVBQVFpNUIsRUFBTzc3QixJQUFJLFVBQVVBLElBQUksSUFBSXU4QixPQUNyQzR0QixFQUFRdHVCLEVBQU83N0IsSUFBSSxVQUFVQSxJQUFJLElBQUl1OEIsT0FDM0MsT0FBT3BELEVBQUFBLEdBQUFBLFFBQU9oZCxFQUFHazJDLGdCQUFnQngyQixFQUFPVSxPQUFRMzVCLEdBQVN1bkQsR0FBUyxDQUFDLEdBQ3JFLENBRUFoWixNQUFBQSxHQUNFLElBQUksTUFBQ25PLEVBQUssU0FBRTA3QyxFQUFRLGFBQUV0dEMsRUFBWSxXQUFFdEwsRUFBVSxVQUFFd2MsRUFBUyxHQUFFbm1DLEVBQUUsaUJBQUV3aUUsRUFBZ0IsY0FBRWx5QyxFQUFhLFdBQUVrdEIsRUFBVSxTQUFFaFksRUFBUSxjQUFFblYsR0FBaUJweEMsS0FBS3N5QixNQUV4SWlPLEVBQVM4USxFQUFjOVEsU0FFM0IsTUFBTSxlQUFFeXRCLEVBQWMscUJBQUVtM0IsR0FBeUJ6NkMsSUFNakQsR0FKSTlDLElBQ0ZBLEVBQVEwN0MsSUFHTkEsRUFBVSxPQUFPLEtBR3JCLE1BQU1qekIsRUFBaUJyYSxFQUFhLGtCQUM5Qm92QyxFQUFZcHZDLEVBQWEsYUFDL0IsSUFBSW9wQixFQUFTeDNCLEVBQU1oakMsSUFBSSxNQUNuQnlnRixFQUF1QixTQUFYam1CLEVBQW9CLEtBQ2hDdDBCLEdBQUFBLFFBQUFBLGNBQUNzNkMsRUFBUyxDQUFDcHZDLGFBQWNBLEVBQ2R0TCxXQUFhQSxFQUNiM3BCLEdBQUlBLEVBQ0o2bUIsTUFBT0EsRUFDUGkxQixTQUFXeHJCLEVBQWNtdkIsbUJBQW1CakMsR0FDNUMrbUIsY0FBZ0JqMEMsRUFBY3d1QixrQkFBa0J0QixHQUFZMzVELElBQUksc0JBQ2hFa3JELFNBQVU5dkQsS0FBS3drRixnQkFDZmpCLGlCQUFrQkEsRUFDbEJyOEIsVUFBWUEsRUFDWjdWLGNBQWdCQSxFQUNoQmt0QixXQUFhQSxJQUc1QixNQUFNelcsRUFBZTlSLEVBQWEsZ0JBQzVCeVksRUFBV3pZLEVBQWEsWUFBWSxHQUNwQyt0QyxFQUFlL3RDLEVBQWEsZ0JBQzVCa3VDLEVBQXdCbHVDLEVBQWEseUJBQ3JDcStCLEVBQThCcitCLEVBQWEsK0JBQzNDZzlCLEVBQVVoOUIsRUFBYSxXQUU3QixJQUFJLE9BQUV2VixHQUFXSixtQkFBbUJ1SCxFQUFPLENBQUVySCxXQUN6Q3NrRCxFQUFnQnh6QyxFQUFjaXRCLDRCQUE0QkMsRUFBWStrQixLQUFhM2xELEVBQUFBLEdBQUFBLE9BRW5GNEMsSUFDRkUsRUFBU3pnQyxLQUFLaWxGLGtCQUFrQnhrRCxJQUdsQyxJQUFJNXpCLEVBQVM0ekIsRUFBU0EsRUFBTzc3QixJQUFJLFVBQVksS0FDekMyZ0YsRUFBd0IsYUFBWG5tQixFQUNib21CLEVBQXNCLGFBQWMsR0FDcEMvNkIsRUFBVzdpQixFQUFNaGpDLElBQUksWUFFekIsTUFBTXNnRixFQUFtQm5rRSxFQUFHMHZDLG9CQUFvQmh3QixHQUMxQyt4QixFQUFrQnp4QyxFQUFHMHZDLG9CQUFvQmh3QixHQUFRNzdCLElBQUksVUFDckQ2Z0YsRUFBd0Ixa0UsRUFBRzJ4Qyx5QkFBeUJqeUIsR0FDcERZLEdBQVlna0QsR0FBa0MsV0FBckJILEVBQ3pCUSxHQUFvQkwsR0FBaUMsV0FBcEI3eUIsRUFFdkMsSUFJSW16QixFQUNBQyxFQUNBQyxFQUNBQyxFQVBBam1GLEVBQVFnbEYsRUFBZ0JBLEVBQWNqZ0YsSUFBSSxTQUFXLEdBQ3JEbWhGLEVBQVlaLEVBQXVCNzlDLG9CQUFvQjdHLEdBQVUsS0FDakV3dEIsRUFBYUQsRUFBaUI3bUIsY0FBY1MsR0FBUyxLQU1yRG8rQyxHQUFxQixPQUVWM2tGLElBQVZ1bUMsR0FBdUJuSCxJQUMxQmtsRCxFQUFhbGxELEVBQU83N0IsSUFBSSxlQUdQdkQsSUFBZnNrRixHQUNGQyxFQUFZRCxFQUFXL2dGLElBQUksUUFDM0JpaEYsRUFBb0JGLEVBQVcvZ0YsSUFBSSxZQUMxQjY3QixJQUNUbWxELEVBQVlubEQsRUFBTzc3QixJQUFJLFNBR3BCZ2hGLEdBQWFBLEVBQVUxMEUsTUFBUTAwRSxFQUFVMTBFLEtBQU8sSUFDbkQ4MEUsR0FBcUIsUUFJUjNrRixJQUFWdW1DLElBQ0NuSCxJQUNGb2xELEVBQW9CcGxELEVBQU83N0IsSUFBSSxpQkFFUHZELElBQXRCd2tGLElBQ0ZBLEVBQW9CaitDLEVBQU1oakMsSUFBSSxZQUVoQ2toRixFQUFlbCtDLEVBQU1oakMsSUFBSSxnQkFDSnZELElBQWpCeWtGLElBQ0ZBLEVBQWVsK0MsRUFBTWhqQyxJQUFJLGVBSTdCLE1BQU1xaEYsRUFBaUJaLEVBQVksS0FDL0J2NkMsR0FBQUEsUUFBQUEsY0FBQ3VsQixFQUFjLENBQUN0dkMsR0FBSUEsRUFDcEJpMUIsYUFBY0EsRUFDZG4yQyxNQUFRQSxFQUNSNHFELFNBQVdBLEVBQ1g4RixVQUFXckosRUFDWGdILFlBQWF0bUIsRUFBTWhqQyxJQUFJLFFBQ3ZCa3JELFNBQVc5dkQsS0FBS3drRixnQkFDaEJwbEUsT0FBU3lsRSxFQUFjamdGLElBQUksVUFDM0I2N0IsT0FBU0EsSUFHYixPQUNFcUssR0FBQUEsUUFBQUEsY0FBQSxNQUFJLGtCQUFpQmxELEVBQU1oakMsSUFBSSxRQUFTLGdCQUFlZ2pDLEVBQU1oakMsSUFBSSxPQUMvRGttQyxHQUFBQSxRQUFBQSxjQUFBLE1BQUl3UyxVQUFVLHVCQUNaeFMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBV21OLEVBQVcsMkJBQTZCLG1CQUNwRDdpQixFQUFNaGpDLElBQUksUUFDVDZsRCxFQUFrQjNmLEdBQUFBLFFBQUFBLGNBQUEsWUFBTSxNQUFiLE1BRWhCQSxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLG1CQUNYbW9DLEVBQ0E1NEUsR0FBVWkrQixHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLGVBQWMsS0FBR3p3QyxFQUFPLE1BRXREaStCLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUseUJBQ1gvYyxHQUFVcUgsRUFBTWhqQyxJQUFJLGNBQWdCLGFBQWMsTUFFdERrbUMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxpQkFBZ0IsSUFBRzFWLEVBQU1oakMsSUFBSSxNQUFPLE1BR3JEa21DLEdBQUFBLFFBQUFBLGNBQUEsTUFBSXdTLFVBQVUsOEJBQ1YxVixFQUFNaGpDLElBQUksZUFBaUJrbUMsR0FBQUEsUUFBQUEsY0FBQzJqQixFQUFRLENBQUN2c0MsT0FBUzBsQixFQUFNaGpDLElBQUksaUJBQXFCLE1BRTVFeWdGLEdBQWNuK0IsSUFBYzgrQixFQUszQixLQUpGbDdDLEdBQUFBLFFBQUFBLGNBQUMyakIsRUFBUSxDQUFDblIsVUFBVSxrQkFBa0JwN0IsT0FDbEMsNkJBQStCMGpFLEVBQVVoK0UsS0FBSSxTQUFTc2lCLEdBQ2xELE9BQU9BLENBQ1QsSUFBR3FiLFVBQVUzOUIsSUFBSS9FLFFBQVFnRixLQUFLLFNBSW5DdzlFLEdBQWNuK0IsUUFBb0M3bEQsSUFBdEJ3a0YsRUFFM0IsS0FERi82QyxHQUFBQSxRQUFBQSxjQUFDMmpCLEVBQVEsQ0FBQ25SLFVBQVUscUJBQXFCcDdCLE9BQVEsMEJBQTRCMmpFLEtBSTVFUixHQUFjbitCLFFBQStCN2xELElBQWpCeWtGLEVBRTNCLEtBREZoN0MsR0FBQUEsUUFBQUEsY0FBQzJqQixFQUFRLENBQUN2c0MsT0FBUSxvQkFBc0I0akUsSUFJeENQLElBQWVDLEdBQXdCMTZDLEdBQUFBLFFBQUFBLGNBQUEsV0FBSyxpREFHNUN2SyxHQUFVcUgsRUFBTWhqQyxJQUFJLFlBQ2xCa21DLEdBQUFBLFFBQUFBLGNBQUEsV0FBU3dTLFVBQVUsc0JBQ2pCeFMsR0FBQUEsUUFBQUEsY0FBQ3VwQyxFQUEyQixDQUMxQmxCLFNBQVV2ckMsRUFBTWhqQyxJQUFJLFlBQ3BCd3VFLFNBQVVwekUsS0FBSzJrRixpQkFDZmxRLFlBQWF6MEUsS0FBS3drRixnQkFDbEJ4dUMsYUFBY0EsRUFDZGt3Qyx1QkFBdUIsRUFDdkIxUSxXQUFZcGtDLEVBQWM4dEMsd0JBQXdCM2dCLEVBQVksYUFBY3YrRCxLQUFLNGtGLGVBQ2pGL1Asc0JBQXVCaDFFLEtBR3pCLEtBR0h3aEMsR0FBWXFrRCxFQUNiNTZDLEdBQUFBLFFBQUFBLGNBQUNnZCxFQUFZLENBQ1g5UixhQUFjQSxFQUNkdVEsU0FBVUEsRUFBUy9qRCxLQUFLLFVBQ3hCa29DLFdBQVlBLEVBQ1p3YyxVQUFXQSxFQUNYN1YsY0FBZUEsRUFDZjVRLE9BQVFBLEVBQ1IwbUIsUUFBUzgrQixJQUVQQSxFQUlKWixHQUFhNWtELEVBQVNxSyxHQUFBQSxRQUFBQSxjQUFDZ2QsRUFBWSxDQUFDOVIsYUFBZUEsRUFDZnVRLFNBQVVBLEVBQVMvakQsS0FBSyxVQUN4QmtvQyxXQUFhQSxFQUNid2MsVUFBWUEsRUFDWjdWLGNBQWdCQSxFQUNoQjVRLE9BQVNBLEVBQ1QwbUIsUUFBVWsrQixFQUNWdDlCLGtCQUFtQixJQUNuRCxNQUlIczlCLEdBQWFuK0IsR0FBYXRmLEVBQU1oakMsSUFBSSxtQkFDckNrbUMsR0FBQUEsUUFBQUEsY0FBQ281QyxFQUFxQixDQUNwQnAwQixTQUFVOXZELEtBQUs2akYscUJBQ2ZTLFdBQVlqekMsRUFBY3l0Qiw2QkFBNkJQLEVBQVkzMkIsRUFBTWhqQyxJQUFJLFFBQVNnakMsRUFBTWhqQyxJQUFJLE9BQ2hHMHNELFlBQWEvb0IsYUFBYTFvQyxLQUMxQixLQUlGMGdDLEdBQVVxSCxFQUFNaGpDLElBQUksWUFDbEJrbUMsR0FBQUEsUUFBQUEsY0FBQ2tvQyxFQUFPLENBQ043ckIsUUFBU3ZmLEVBQU0vRyxNQUFNLENBQ25CLFdBQ0F1USxFQUFjOHRDLHdCQUF3QjNnQixFQUFZLGFBQWN2K0QsS0FBSzRrRixpQkFFdkU1dUMsYUFBY0EsRUFDZHRMLFdBQVlBLElBRVosS0FHSHk2QyxHQUF5QlksRUFBVTcwRSxLQUFjNjBFLEVBQVU3eUMsV0FBV3RyQyxLQUFJLEVBQUV2QixFQUFLeWMsS0FBT2dvQixHQUFBQSxRQUFBQSxjQUFDaTVDLEVBQVksQ0FBQzE5RSxJQUFLLEdBQUdBLEtBQU95YyxJQUFLeTZELEtBQU1sM0UsRUFBS20zRSxLQUFNMTZELE1BQWpHLEtBQzFDa3JDLEdBQW1CQyxFQUFXLzhDLEtBQWMrOEMsRUFBVy9hLFdBQVd0ckMsS0FBSSxFQUFFdkIsRUFBS3ljLEtBQU9nb0IsR0FBQUEsUUFBQUEsY0FBQ2k1QyxFQUFZLENBQUMxOUUsSUFBSyxHQUFHQSxLQUFPeWMsSUFBS3k2RCxLQUFNbDNFLEVBQUttM0UsS0FBTTE2RCxNQUFsRyxNQU9oRCxFQ3hhYSxNQUFNbTRELGdCQUFnQngrQyxHQUFBQSxVQWNuQzBwRCx5QkFBMkJBLEtBQ3pCLElBQUksY0FBRTkwQyxFQUFhLFlBQUVrRyxFQUFXLEtBQUV6QyxFQUFJLE9BQUUveEIsR0FBVy9pQixLQUFLc3lCLE1BRXhELE9BREFpbEIsRUFBWW11QixlQUFlLENBQUM1d0IsRUFBTS94QixJQUMzQnN1QixFQUFjK3ZCLHNCQUFzQixDQUFDdHNCLEVBQU0veEIsR0FBUSxFQUc1RHFqRSwwQkFBNEJBLEtBQzFCLElBQUksS0FBRXR4QyxFQUFJLE9BQUUveEIsRUFBTSxjQUFFc3VCLEVBQWEsY0FBRUQsRUFBYSxZQUFFcXBDLEdBQWdCejZFLEtBQUtzeUIsTUFDbkV5dUMsRUFBbUIsQ0FDckJzbEIsa0JBQWtCLEVBQ2xCQyxvQkFBcUIsSUFHdkI3TCxFQUFZOEwsOEJBQThCLENBQUV6eEMsT0FBTS94QixXQUNsRCxJQUFJeWpFLEVBQXFDbjFDLEVBQWNnd0Isc0NBQXNDLENBQUN2c0IsRUFBTS94QixJQUNoRzBqRSxFQUF1QnIxQyxFQUFjdzFCLGlCQUFpQjl4QixFQUFNL3hCLEdBQzVEMmpFLEVBQW1DdDFDLEVBQWNnd0Isc0JBQXNCLENBQUN0c0IsRUFBTS94QixJQUM5RTRqRSxFQUF5QnYxQyxFQUFjNHVCLG1CQUFtQmxyQixFQUFNL3hCLEdBRXBFLElBQUsyakUsRUFHSCxPQUZBM2xCLEVBQWlCc2xCLGtCQUFtQixFQUNwQzVMLEVBQVltTSw0QkFBNEIsQ0FBRTl4QyxPQUFNL3hCLFNBQVFnK0Msc0JBQ2pELEVBRVQsSUFBS3lsQixFQUNILE9BQU8sRUFFVCxJQUFJRixFQUFzQmwxQyxFQUFjeTFDLHdCQUF3QixDQUM5REwscUNBQ0FHLHlCQUNBRix5QkFFRixPQUFLSCxHQUF1QkEsRUFBb0I3akYsT0FBUyxJQUd6RDZqRixFQUFvQjc1RSxTQUFTcTZFLElBQzNCL2xCLEVBQWlCdWxCLG9CQUFvQjlqRixLQUFLc2tGLEVBQVcsSUFFdkRyTSxFQUFZbU0sNEJBQTRCLENBQUU5eEMsT0FBTS94QixTQUFRZytDLHNCQUNqRCxFQUFLLEVBR2RnbUIsMkJBQTZCQSxLQUMzQixJQUFJLFlBQUV4dkMsRUFBVyxVQUFFeEMsRUFBUyxLQUFFRCxFQUFJLE9BQUUveEIsR0FBVy9pQixLQUFLc3lCLE1BQ2hEdHlCLEtBQUtzeUIsTUFBTWtvRCxXQUVieDZFLEtBQUtzeUIsTUFBTWtvRCxZQUViampDLEVBQVkzQyxRQUFRLENBQUVHLFlBQVdELE9BQU0veEIsVUFBUyxFQUdsRGlrRSwyQkFBNkJBLEtBQzNCLElBQUksWUFBRXp2QyxFQUFXLEtBQUV6QyxFQUFJLE9BQUUveEIsR0FBVy9pQixLQUFLc3lCLE1BRXpDaWxCLEVBQVlzdUIsb0JBQW9CLENBQUMvd0IsRUFBTS94QixJQUN2QzJILFlBQVcsS0FDVDZzQixFQUFZbXVCLGVBQWUsQ0FBQzV3QixFQUFNL3hCLEdBQVEsR0FDekMsR0FBRyxFQUdSa2tFLHVCQUEwQkMsSUFDcEJBLEVBQ0ZsbkYsS0FBSyttRiw2QkFFTC9tRixLQUFLZ25GLDRCQUNQLEVBR0YzaEMsUUFBVUEsS0FDUixJQUFJOGhDLEVBQWVubkYsS0FBS21tRiwyQkFDcEJpQixFQUFvQnBuRixLQUFLb21GLDRCQUN6QmMsRUFBU0MsR0FBZ0JDLEVBQzdCcG5GLEtBQUtpbkYsdUJBQXVCQyxFQUFPLEVBR3JDdEosd0JBQTRCNW5FLEdBQVNoVyxLQUFLc3lCLE1BQU1pbEIsWUFBWXd1QixvQkFBb0IsQ0FBQy9sRSxLQUFLc3lCLE1BQU13aUIsS0FBTTkwQyxLQUFLc3lCLE1BQU12UCxRQUFTL00sR0FFdEgrL0IsTUFBQUEsR0FDRSxNQUFNLFNBQUV3YSxHQUFhdndELEtBQUtzeUIsTUFDMUIsT0FDSXdZLEdBQUFBLFFBQUFBLGNBQUEsVUFBUXdTLFVBQVUsbUNBQW1DK0gsUUFBVXJsRCxLQUFLcWxELFFBQVVrTCxTQUFVQSxHQUFVLFVBSXhHLEVDL0ZhLE1BQU11bkIsd0JBQWdCaHRDLEdBQUFBLFFBQUFBLFVBTW5DaUwsTUFBQUEsR0FDRSxJQUFJLFFBQUUzRixFQUFPLGFBQUU0RixHQUFpQmgyQyxLQUFLc3lCLE1BRXJDLE1BQU1vOEIsRUFBVzFZLEVBQWEsWUFDeEJ5WSxFQUFXelksRUFBYSxZQUFZLEdBRTFDLE9BQU01RixHQUFZQSxFQUFRbC9CLEtBSXhCNDVCLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsbUJBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLE1BQUl3UyxVQUFVLGtCQUFpQixZQUMvQnhTLEdBQUFBLFFBQUFBLGNBQUEsU0FBT3dTLFVBQVUsV0FDZnhTLEdBQUFBLFFBQUFBLGNBQUEsYUFDRUEsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSxjQUNaeFMsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSxjQUFhLFFBQzNCeFMsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSxjQUFhLGVBQzNCeFMsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSxjQUFhLFVBRy9CeFMsR0FBQUEsUUFBQUEsY0FBQSxhQUVFc0YsRUFBUThDLFdBQVd0ckMsS0FBSyxFQUFHdkIsRUFBS2d0QyxNQUM5QixJQUFJbFQsR0FBQUEsUUFBQUEsSUFBT0ssTUFBTTZTLEdBQ2YsT0FBTyxLQUdULE1BQU02YSxFQUFjN2EsRUFBT3p1QyxJQUFJLGVBQ3pCN0MsRUFBT3N4QyxFQUFPeFMsTUFBTSxDQUFDLFdBQWF3UyxFQUFPeFMsTUFBTSxDQUFDLFNBQVUsU0FBV3dTLEVBQU94UyxNQUFNLENBQUMsU0FDbkZ3bUQsRUFBZ0JoMEMsRUFBT3hTLE1BQU0sQ0FBQyxTQUFVLFlBRTlDLE9BQVFpSyxHQUFBQSxRQUFBQSxjQUFBLE1BQUl6a0MsSUFBTUEsR0FDaEJ5a0MsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSxjQUFlajNDLEdBQzdCeWtDLEdBQUFBLFFBQUFBLGNBQUEsTUFBSXdTLFVBQVUsY0FDWDRRLEVBQXFCcGpCLEdBQUFBLFFBQUFBLGNBQUMyakIsRUFBUSxDQUFDdnNDLE9BQVNnc0MsSUFBMUIsTUFFakJwakIsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSxjQUFldjdDLEVBQU0sSUFBR3NsRixFQUFnQnY4QyxHQUFBQSxRQUFBQSxjQUFDNGpCLEVBQVEsQ0FBQy9wQixRQUFVLFVBQVl5cUIsUUFBVWk0QixFQUFnQmw0QixVQTVDOUcsbUJBNEMySSxNQUMxSSxJQUNKNXBCLGFBL0JGLElBcUNYLEVDcERhLE1BQU0raEQsZUFBZXg4QyxHQUFBQSxRQUFBQSxVQVVsQ2lMLE1BQUFBLEdBQ0UsSUFBSSxjQUFFd3hDLEVBQWEsYUFBRTdpQixFQUFZLGdCQUFFN3FCLEVBQWUsY0FBRUUsRUFBYSxhQUFFL0QsR0FBaUJoMkMsS0FBS3N5QixNQUV6RixNQUFNNDVCLEVBQVdsVyxFQUFhLFlBRTlCLEdBQUd1eEMsR0FBaUJBLEVBQWNDLFdBQ2hDLElBQUlBLEVBQWFELEVBQWNDLFdBR2pDLElBR0lDLEVBSFMvaUIsRUFBYWxvQixZQUdNMXFCLFFBQU9weEIsR0FBMkIsV0FBcEJBLEVBQUlrRSxJQUFJLFNBQWtELFVBQXJCbEUsRUFBSWtFLElBQUksV0FFM0YsSUFBSTZpRixHQUFzQkEsRUFBbUIza0YsUUFBVSxFQUNyRCxPQUFPLEtBR1QsSUFBSTRrRixFQUFZN3RDLEVBQWdCc0YsUUFBUSxDQUFDLGNBQWMsR0FHbkR3b0MsRUFBaUJGLEVBQW1COXFDLFFBQU9qOEMsR0FBT0EsRUFBSWtFLElBQUksVUFFOUQsT0FDRWttQyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGtCQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxVQUFRd1MsVUFBVSxTQUNoQnhTLEdBQUFBLFFBQUFBLGNBQUEsTUFBSXdTLFVBQVUsaUJBQWdCLFVBQzlCeFMsR0FBQUEsUUFBQUEsY0FBQSxVQUFRd1MsVUFBVSx3QkFBd0IrSCxRQVJ6QnVpQyxJQUFNN3RDLEVBQWNTLEtBQUssQ0FBQyxjQUFla3RDLElBUWVBLEVBQVksT0FBUyxTQUVoRzU4QyxHQUFBQSxRQUFBQSxjQUFDb2hCLEVBQVEsQ0FBQ0UsU0FBV3M3QixFQUFZRyxVQUFRLEdBQ3ZDLzhDLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsVUFDWHFxQyxFQUFlLy9FLEtBQUksQ0FBQ2xILEVBQUt1RCxLQUN6QixJQUFJbEMsRUFBT3JCLEVBQUlrRSxJQUFJLFFBQ25CLE1BQVksV0FBVDdDLEdBQThCLFNBQVRBLEVBQ2Yrb0MsR0FBQUEsUUFBQUEsY0FBQ2c5QyxnQkFBZSxDQUFDemhGLElBQU1wQyxFQUFJa0IsTUFBUXpFLEVBQUlrRSxJQUFJLFVBQVlsRSxFQUFNOG1GLFdBQVlBLElBRXRFLFNBQVR6bEYsRUFDTStvQyxHQUFBQSxRQUFBQSxjQUFDaTlDLGNBQWEsQ0FBQzFoRixJQUFNcEMsRUFBSWtCLE1BQVF6RSxFQUFNOG1GLFdBQVlBLFNBRDVELENBRUEsTUFNVixFQUdKLE1BQU1NLGdCQUFrQkEsRUFBSTNpRixRQUFPcWlGLGlCQUNqQyxJQUFJcmlGLEVBQ0YsT0FBTyxLQUVULElBQUk2aUYsRUFBWTdpRixFQUFNUCxJQUFJLFFBRTFCLE9BQ0VrbUMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxpQkFDVm40QyxFQUNEMmxDLEdBQUFBLFFBQUFBLGNBQUEsV0FDRUEsR0FBQUEsUUFBQUEsY0FBQSxVQUFPM2xDLEVBQU1QLElBQUksV0FBYU8sRUFBTVAsSUFBSSxTQUN0Q3FqRixZQUFZOWlGLEVBQU1QLElBQUksV0FBYSxJQUFNTyxFQUFNUCxJQUFJLFNBQVcsR0FDOURPLEVBQU1QLElBQUksUUFBVWttQyxHQUFBQSxRQUFBQSxjQUFBLGFBQU8sT0FBSzNsQyxFQUFNUCxJQUFJLFNBQWtCLE1BQzlEa21DLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsa0JBQ1puNEMsRUFBTVAsSUFBSSxZQUVka21DLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsY0FDWDBxQyxHQUFhUixFQUFhMThDLEdBQUFBLFFBQUFBLGNBQUEsS0FBR3VhLFFBQVNtaUMsRUFBVy9qRixLQUFLLEtBQU11a0YsSUFBWSxnQkFBZUEsR0FBa0IsT0FUdEcsS0FhUCxFQUlKRCxjQUFnQkEsRUFBSTVpRixRQUFPcWlGLGFBQWEsU0FDNUMsSUFBSVUsRUFBa0IsS0FZdEIsT0FWRy9pRixFQUFNUCxJQUFJLFFBRVRzakYsRUFEQ3hxRCxHQUFBQSxLQUFLMEcsT0FBT2ovQixFQUFNUCxJQUFJLFNBQ0xrbUMsR0FBQUEsUUFBQUEsY0FBQSxhQUFPLE1BQUszbEMsRUFBTVAsSUFBSSxRQUFRaUQsS0FBSyxNQUVuQ2lqQyxHQUFBQSxRQUFBQSxjQUFBLGFBQU8sTUFBSzNsQyxFQUFNUCxJQUFJLFNBRWxDTyxFQUFNUCxJQUFJLFVBQVk0aUYsSUFDOUJVLEVBQWtCcDlDLEdBQUFBLFFBQUFBLGNBQUEsYUFBTyxXQUFVM2xDLEVBQU1QLElBQUksVUFJN0NrbUMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxpQkFDVm40QyxFQUNEMmxDLEdBQUFBLFFBQUFBLGNBQUEsV0FDRUEsR0FBQUEsUUFBQUEsY0FBQSxVQUFNbTlDLFlBQVk5aUYsRUFBTVAsSUFBSSxXQUFhLElBQU1PLEVBQU1QLElBQUksU0FBVSxJQUFRc2pGLEdBQzNFcDlDLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsV0FBWW40QyxFQUFNUCxJQUFJLFlBQ3RDa21DLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsY0FDWGtxQyxFQUNBMThDLEdBQUFBLFFBQUFBLGNBQUEsS0FBR3VhLFFBQVNtaUMsRUFBVy9qRixLQUFLLEtBQU0wQixFQUFNUCxJQUFJLFVBQVUsZ0JBQWVPLEVBQU1QLElBQUksU0FDN0UsT0FQQyxLQVdQLEVBSVYsU0FBU3FqRixZQUFZLy9FLEdBQ25CLE9BQVFBLEdBQU8sSUFDWnVZLE1BQU0sS0FDTjdZLEtBQUlTLEdBQVVBLEVBQU8sR0FBR3NqQyxjQUFnQnRqQyxFQUFPeEgsTUFBTSxLQUNyRGdILEtBQUssSUFDVixDQ3BIQSxNQUFNMkosa0JBQU9BLE9BRUUsTUFBTTBzRSxvQkFBb0JwekMsR0FBQUEsUUFBQUEsVUFZdkNvYixvQkFBc0IsQ0FDcEI0SixTQUFVdCtDLGtCQUNWM1IsTUFBTyxLQUNQaS9FLGNBQWMvZ0QsRUFBQUEsR0FBQUEsUUFBTyxDQUFDLHNCQUd4QjBvQixpQkFBQUEsR0FFS3ptRCxLQUFLc3lCLE1BQU13c0QsY0FDWjkrRSxLQUFLc3lCLE1BQU13OUIsU0FBUzl2RCxLQUFLc3lCLE1BQU13c0QsYUFBYTFpRSxRQUVoRCxDQUVBdXFDLGdDQUFBQSxDQUFpQ0MsR0FDM0JBLEVBQVVrNEIsY0FBaUJsNEIsRUFBVWs0QixhQUFhNXRFLE9BSWxEMDFDLEVBQVVrNEIsYUFBYXAyRSxTQUFTaytDLEVBQVUvbUQsUUFDNUMrbUQsRUFBVWtKLFNBQVNsSixFQUFVazRCLGFBQWExaUUsU0FFOUMsQ0FFQW9vRSxnQkFBa0I3NUUsR0FBSzNLLEtBQUtzeUIsTUFBTXc5QixTQUFTbmxELEVBQUU1TCxPQUFPYyxPQUVwRGsyQyxNQUFBQSxHQUNFLElBQUksYUFBRTZvQyxFQUFZLFVBQUVDLEVBQVMsVUFBRXZoQyxFQUFTLGFBQUV3aEMsRUFBWSxVQUFFSCxFQUFTLE1BQUU5K0UsR0FBVUcsS0FBS3N5QixNQUVsRixPQUFNd3NELEdBQWlCQSxFQUFhNXRFLEtBSWxDNDVCLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVkseUJBQTRCQSxHQUFhLEtBQ3hEeFMsR0FBQUEsUUFBQUEsY0FBQSxVQUFRLGdCQUFlOHpDLEVBQWMsYUFBWUMsRUFBV3ZoQyxVQUFVLGVBQWVqVixHQUFJczJDLEVBQVc3dUIsU0FBVTl2RCxLQUFLd2tGLGdCQUFpQjNrRixNQUFPQSxHQUFTLElBQ2hKaS9FLEVBQWFsM0UsS0FBTW9PLEdBQ1o4MEIsR0FBQUEsUUFBQUEsY0FBQSxVQUFRemtDLElBQU0yUCxFQUFNblcsTUFBUW1XLEdBQVFBLEtBQzFDdXZCLFlBUEEsSUFXWCxFQ3hERixTQUFTNGlELFVBQVVscEYsR0FDakIsT0FBT0EsRUFBSzZ5QixRQUFPdm5CLEtBQU9BLElBQUcxQyxLQUFLLEtBQUsrUixNQUN6QyxDQUVPLE1BQU13dUUsa0JBQWtCdDlDLEdBQUFBLFFBQUFBLFVBQzdCaUwsTUFBQUEsR0FDRSxJQUFJLFdBQUVzeUMsRUFBVSxLQUFFQyxLQUFTN3FDLEdBQVN6OUMsS0FBS3N5QixNQUd6QyxHQUFHKzFELEVBQ0QsT0FBT3Y5QyxHQUFBQSxRQUFBQSxjQUFBLFVBQWEyUyxHQUV0QixJQUFJOHFDLEVBQWlCLHFCQUF1QkQsRUFBTyxRQUFVLElBQzdELE9BQ0V4OUMsR0FBQUEsUUFBQUEsY0FBQSxXQUFBNFMsRUFBQUEsR0FBQUEsU0FBQSxHQUFhRCxFQUFJLENBQUVILFVBQVc2cUMsT0FBTzFxQyxFQUFLSCxVQUFXaXJDLEtBRXpELEVBU0YsTUFBTUMsR0FBVSxDQUNkLE9BQVUsR0FDVixPQUFVLFVBQ1YsUUFBVyxXQUNYLE1BQVMsT0FHSixNQUFNM1YsWUFBWS9uQyxHQUFBQSxRQUFBQSxVQUV2QmlMLE1BQUFBLEdBQ0UsTUFBTSxLQUNKMHlDLEVBQUksYUFDSkMsRUFBWSxPQUlaQyxFQUFNLE9BQ05qUixFQUFNLFFBQ05DLEVBQU8sTUFDUGlSLEtBRUduckMsR0FDRHo5QyxLQUFLc3lCLE1BRVQsR0FBR20yRCxJQUFTQyxFQUNWLE9BQU81OUMsR0FBQUEsUUFBQUEsY0FBQSxhQUVULElBQUkrOUMsRUFBWSxHQUVoQixJQUFLLElBQUlDLEtBQVVOLEdBQVMsQ0FDMUIsSUFBS2xwRixPQUFPSCxVQUFVbTlCLGVBQWVsOUIsS0FBS29wRixHQUFTTSxHQUNqRCxTQUVGLElBQUlDLEVBQWNQLEdBQVFNLEdBQzFCLEdBQUdBLEtBQVU5b0YsS0FBS3N5QixNQUFPLENBQ3ZCLElBQUl0YyxFQUFNaFcsS0FBS3N5QixNQUFNdzJELEdBRXJCLEdBQUc5eUUsRUFBTSxFQUFHLENBQ1Y2eUUsRUFBVXJtRixLQUFLLE9BQVN1bUYsR0FDeEIsUUFDRixDQUVBRixFQUFVcm1GLEtBQUssUUFBVXVtRixHQUN6QkYsRUFBVXJtRixLQUFLLE9BQVN3VCxFQUFNK3lFLEVBQ2hDLENBQ0YsQ0FFSU4sR0FDRkksRUFBVXJtRixLQUFLLFVBR2pCLElBQUl1a0QsRUFBVW9oQyxPQUFPMXFDLEVBQUtILGFBQWN1ckMsR0FFeEMsT0FDRS85QyxHQUFBQSxRQUFBQSxjQUFBLFdBQUE0UyxFQUFBQSxHQUFBQSxTQUFBLEdBQWFELEVBQUksQ0FBRUgsVUFBV3lKLElBRWxDLEVBY0ssTUFBTTZyQixZQUFZOW5DLEdBQUFBLFFBQUFBLFVBRXZCaUwsTUFBQUEsR0FDRSxPQUFPakwsR0FBQUEsUUFBQUEsY0FBQSxPQUFBNFMsRUFBQUEsR0FBQUEsU0FBQSxHQUFTMTlDLEtBQUtzeUIsTUFBSyxDQUFFZ3JCLFVBQVc2cUMsT0FBT25vRixLQUFLc3lCLE1BQU1nckIsVUFBVyxhQUN0RSxFQVFLLE1BQU0yVixlQUFlbm9CLEdBQUFBLFFBQUFBLFVBTTFCb2Isb0JBQXNCLENBQ3BCNUksVUFBVyxJQUdidkgsTUFBQUEsR0FDRSxPQUFPakwsR0FBQUEsUUFBQUEsY0FBQSxVQUFBNFMsRUFBQUEsR0FBQUEsU0FBQSxHQUFZMTlDLEtBQUtzeUIsTUFBSyxDQUFFZ3JCLFVBQVc2cUMsT0FBT25vRixLQUFLc3lCLE1BQU1nckIsVUFBVyxZQUN6RSxFQUtLLE1BQU0wVyxTQUFZMWhDLEdBQVV3WSxHQUFBQSxRQUFBQSxjQUFBLFdBQWN4WSxHQUVwQ2kvQixNQUFTai9CLEdBQVV3WSxHQUFBQSxRQUFBQSxjQUFBLFFBQVd4WSxHQUVwQyxNQUFNNitCLGVBQWVybUIsR0FBQUEsUUFBQUEsVUFXMUJvYixvQkFBc0IsQ0FDcEI4TSxVQUFVLEVBQ1YzQixpQkFBaUIsR0FHbkIvcEQsV0FBQUEsQ0FBWWdyQixFQUFPaHRCLEdBR2pCLElBQUl6RixFQUZKMGYsTUFBTStTLEVBQU9odEIsR0FLWHpGLEVBREV5eUIsRUFBTXp5QixNQUNBeXlCLEVBQU16eUIsTUFFTnl5QixFQUFNMGdDLFNBQVcsQ0FBQyxJQUFNLEdBR2xDaHpELEtBQUt1RCxNQUFRLENBQUUxRCxNQUFPQSxFQUN4QixDQUVBaXdELFNBQVlubEQsSUFDVixJQUVJOUssR0FGQSxTQUFFaXdELEVBQVEsU0FBRWtELEdBQWFoekQsS0FBS3N5QixNQUM5QmxsQixFQUFVLEdBQUd2TSxNQUFNekIsS0FBS3VMLEVBQUU1TCxPQUFPcU8sU0FLbkN2TixFQURFbXpELEVBQ001bEQsRUFBUTBrQixRQUFPLFNBQVVrM0QsR0FDN0IsT0FBT0EsRUFBT0MsUUFDaEIsSUFDQ3JoRixLQUFJLFNBQVVvaEYsR0FDYixPQUFPQSxFQUFPbnBGLEtBQ2hCLElBRU04SyxFQUFFNUwsT0FBT2MsTUFHbkJHLEtBQUs2bUQsU0FBUyxDQUFDaG5ELE1BQU9BLElBRW5CaXdELEdBQ0RBLEVBQVNqd0QsRUFDWCxFQUdGOG1ELGdDQUFBQSxDQUFpQ0MsR0FFNUJBLEVBQVUvbUQsUUFBVUcsS0FBS3N5QixNQUFNenlCLE9BQ2hDRyxLQUFLNm1ELFNBQVMsQ0FBRWhuRCxNQUFPK21ELEVBQVUvbUQsT0FFckMsQ0FFQWsyQyxNQUFBQSxHQUNFLElBQUksY0FBRXFiLEVBQWEsU0FBRTRCLEVBQVEsZ0JBQUUzQixFQUFlLFNBQUVkLEdBQWF2d0QsS0FBS3N5QixNQUM5RHp5QixFQUFRRyxLQUFLdUQsTUFBTTFELE9BQU9zaEMsVUFBWW5oQyxLQUFLdUQsTUFBTTFELE1BRXJELE9BQ0VpckMsR0FBQUEsUUFBQUEsY0FBQSxVQUFRd1MsVUFBV3Q5QyxLQUFLc3lCLE1BQU1nckIsVUFBVzBWLFNBQVdBLEVBQVduekQsTUFBT0EsRUFBT2l3RCxTQUFXOXZELEtBQUs4dkQsU0FBV1MsU0FBVUEsR0FDOUdjLEVBQWtCdm1CLEdBQUFBLFFBQUFBLGNBQUEsVUFBUWpyQyxNQUFNLElBQUcsTUFBYyxLQUVqRHV4RCxFQUFjeHBELEtBQUksU0FBVXNpQixFQUFNN2pCLEdBQ2hDLE9BQU95a0MsR0FBQUEsUUFBQUEsY0FBQSxVQUFRemtDLElBQU1BLEVBQU14RyxNQUFRZ0QsT0FBT3FuQixJQUFVcm5CLE9BQU9xbkIsR0FDN0QsSUFJUixFQUdLLE1BQU15a0MsYUFBYTdqQixHQUFBQSxRQUFBQSxVQUV4QmlMLE1BQUFBLEdBQ0UsT0FBT2pMLEdBQUFBLFFBQUFBLGNBQUEsS0FBQTRTLEVBQUFBLEdBQUFBLFNBQUEsR0FBTzE5QyxLQUFLc3lCLE1BQUssQ0FBRTRtRCxJQUFJLHNCQUFzQjU3QixVQUFXNnFDLE9BQU9ub0YsS0FBS3N5QixNQUFNZ3JCLFVBQVcsVUFDOUYsRUFRRixNQUFNNHJDLFNBQVdBLEVBQUVwakMsY0FBY2hiLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsYUFBWSxJQUFFd0ksRUFBUyxLQU1oRSxNQUFNb0csaUJBQWlCcGhCLEdBQUFBLFFBQUFBLFVBUTVCb2Isb0JBQXNCLENBQ3BCa0csVUFBVSxFQUNWeTdCLFVBQVUsR0FHWnNCLGlCQUFBQSxHQUNFLE9BQUlucEYsS0FBS3N5QixNQUFNODVCLFNBR2J0aEIsR0FBQUEsUUFBQUEsY0FBQ28rQyxTQUFRLEtBQ05scEYsS0FBS3N5QixNQUFNd3pCLFVBSFBoYixHQUFBQSxRQUFBQSxjQUFBLGdCQU1YLENBRUFpTCxNQUFBQSxHQUNFLElBQUksU0FBRTh4QyxFQUFRLFNBQUV6N0IsRUFBUSxTQUFFdEcsR0FBYTlsRCxLQUFLc3lCLE1BRTVDLE9BQUl1MUQsR0FHSi9oQyxFQUFXc0csRUFBV3RHLEVBQVcsS0FFL0JoYixHQUFBQSxRQUFBQSxjQUFDbytDLFNBQVEsS0FDTnBqQyxJQUxJOWxELEtBQUttcEYsbUJBUWhCLEVDbFFhLE1BQU1DLGlCQUFpQnQrQyxHQUFBQSxRQUFBQSxVQUVwQ3hqQyxXQUFBQSxJQUFlckksR0FDYnNnQixTQUFTdGdCLEdBQ1RlLEtBQUtxcEYsWUFBY3JwRixLQUFLc3BGLGFBQWE3bEYsS0FBS3pELEtBQzVDLENBRUFzcEYsWUFBQUEsQ0FBYUMsRUFBV3p1QyxHQUN0Qjk2QyxLQUFLc3lCLE1BQU15bkIsY0FBY1MsS0FBSyt1QyxFQUFXenVDLEVBQzNDLENBRUEwdUMsTUFBQUEsQ0FBT25qRixFQUFLeTBDLEdBQ1YsSUFBSSxjQUFFZixHQUFrQi81QyxLQUFLc3lCLE1BQzdCeW5CLEVBQWNTLEtBQUtuMEMsRUFBS3kwQyxFQUMxQixDQUVBL0UsTUFBQUEsR0FDRSxJQUFJLGNBQUUxRSxFQUFhLGdCQUFFd0ksRUFBZSxjQUFFRSxFQUFhLGFBQUUvRCxHQUFpQmgyQyxLQUFLc3lCLE1BQ3ZFMHFCLEVBQVkzTCxFQUFjb08sbUJBRTlCLE1BQU15TSxFQUFXbFcsRUFBYSxZQUU5QixPQUNJbEwsR0FBQUEsUUFBQUEsY0FBQSxXQUNFQSxHQUFBQSxRQUFBQSxjQUFBLE1BQUl3UyxVQUFVLGtCQUFpQixZQUc3Qk4sRUFBVXAxQyxLQUFLLENBQUNzMUMsRUFBUXhDLEtBQ3RCLElBQUlpaUIsRUFBYXpmLEVBQU90NEMsSUFBSSxjQUV4QjJrRixFQUFZLENBQUMsZ0JBQWlCN3VDLEdBQzlCcy9CLEVBQVVuZ0MsRUFBZ0JzRixRQUFRb3FDLEdBQVcsR0FHakQsT0FDRXorQyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt6a0MsSUFBSyxZQUFZcTBDLEdBR3BCNVAsR0FBQUEsUUFBQUEsY0FBQSxNQUFJdWEsUUFOU29rQyxJQUFLMXZDLEVBQWNTLEtBQUsrdUMsR0FBWXZQLEdBTXhCMThCLFVBQVUscUJBQW9CLElBQUUwOEIsRUFBVSxJQUFNLElBQUt0L0IsR0FFOUU1UCxHQUFBQSxRQUFBQSxjQUFDb2hCLEVBQVEsQ0FBQ0UsU0FBVTR0QixFQUFTNk4sVUFBUSxHQUVqQ2xyQixFQUFXLzBELEtBQUt5MUQsSUFDZCxJQUFJLEtBQUV2b0IsRUFBSSxPQUFFL3hCLEVBQU0sR0FBRXNsQixHQUFPZzFCLEVBQUdoaUIsV0FDMUJxdUMsRUFBaUIsYUFDakJDLEVBQVd0aEQsRUFDWHlTLEVBQVFqQixFQUFnQnNGLFFBQVEsQ0FBQ3VxQyxFQUFnQkMsSUFDckQsT0FBTzcrQyxHQUFBQSxRQUFBQSxjQUFDNDBDLGNBQWEsQ0FBQ3I1RSxJQUFLZ2lDLEVBQ0x5TSxLQUFNQSxFQUNOL3hCLE9BQVFBLEVBQ1JzbEIsR0FBSXlNLEVBQU8sSUFBTS94QixFQUNqQiszQixNQUFPQSxFQUNQNnVDLFNBQVVBLEVBQ1ZELGVBQWdCQSxFQUNoQno4QixLQUFNLGNBQWMwOEIsSUFDcEJ0a0MsUUFBU3RMLEVBQWNTLE1BQVEsSUFDcERqVixXQUlILElBRVBBLFVBR0h5WCxFQUFVOXJDLEtBQU8sR0FBSzQ1QixHQUFBQSxRQUFBQSxjQUFBLFVBQUksb0NBR3BDLEVBV0ssTUFBTTQwQyxzQkFBc0I1MEMsR0FBQUEsUUFBQUEsVUFFakN4akMsV0FBQUEsQ0FBWWdyQixHQUNWL1MsTUFBTStTLEdBQ050eUIsS0FBS3FsRCxRQUFVcmxELEtBQUs0cEYsU0FBU25tRixLQUFLekQsS0FDcEMsQ0FFQTRwRixRQUFBQSxHQUNFLElBQUksU0FBRUQsRUFBUSxlQUFFRCxFQUFjLFFBQUVya0MsRUFBTyxNQUFFdkssR0FBVTk2QyxLQUFLc3lCLE1BQ3hEK3lCLEVBQVEsQ0FBQ3FrQyxFQUFnQkMsSUFBWTd1QyxFQUN2QyxDQUVBL0UsTUFBQUEsR0FDRSxJQUFJLEdBQUUxTixFQUFFLE9BQUV0bEIsRUFBTSxNQUFFKzNCLEVBQUssS0FBRW1TLEdBQVNqdEQsS0FBS3N5QixNQUV2QyxPQUNFd1ksR0FBQUEsUUFBQUEsY0FBQzZqQixLQUFJLENBQUMxQixLQUFPQSxFQUFPNUgsUUFBU3JsRCxLQUFLcWxELFFBQVMvSCxVQUFXLHVCQUFzQnhDLEVBQVEsUUFBVSxLQUM1RmhRLEdBQUFBLFFBQUFBLGNBQUEsV0FDRUEsR0FBQUEsUUFBQUEsY0FBQSxTQUFPd1MsVUFBVyxjQUFjdjZCLEtBQVdBLEVBQU80b0IsZUFDbERiLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsY0FBZWpWLElBSXZDLEVDM0ZhLE1BQU02dUMseUJBQXlCcHNDLEdBQUFBLFFBQUFBLFVBQzVDMmIsaUJBQUFBLEdBR0t6bUQsS0FBS3N5QixNQUFNc2xELGVBQ1o1M0UsS0FBSzZwRixTQUFTaHFGLE1BQVFHLEtBQUtzeUIsTUFBTXNsRCxhQUVyQyxDQUVBN2hDLE1BQUFBLEdBSUUsTUFBTSxNQUFFbDJDLEVBQUssYUFBRXVrRixFQUFZLGFBQUV4TSxLQUFpQjlwQixHQUFlOXRELEtBQUtzeUIsTUFDbEUsT0FBT3dZLEdBQUFBLFFBQUFBLGNBQUEsU0FBQTRTLEVBQUFBLEdBQUFBLFNBQUEsR0FBV29RLEVBQVUsQ0FBRXpVLElBQUs1dUMsR0FBS3pLLEtBQUs2cEYsU0FBV3AvRSxJQUMxRCxFQ3RCSyxNQUFNcS9FLHFCQUFxQmgvQyxHQUFBQSxRQUFBQSxVQU1oQ2lMLE1BQUFBLEdBQ0UsTUFBTSxLQUFFbW5CLEVBQUksU0FBRUQsR0FBYWo5RCxLQUFLc3lCLE1BRWhDLE9BQ0V3WSxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLFlBQVcsZUFDWDRmLEVBQ1pELEVBQVMsS0FHaEIsRUFHSyxNQUFNOHNCLGdCQUFnQmovQyxHQUFBQSxRQUFBQSxjQU0zQmlMLE1BQUFBLEdBQ0UsTUFBTSxJQUFFcEYsRUFBRyxhQUFFcUYsR0FBaUJoMkMsS0FBS3N5QixNQUM3QnE4QixFQUFPM1ksRUFBYSxRQUUxQixPQUNFbEwsR0FBQUEsUUFBQUEsY0FBQzZqQixFQUFJLENBQUM1dkQsT0FBTyxTQUFTa3VELEtBQU1JLFlBQVkxYyxJQUN0QzdGLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsT0FBTSxJQUFFM00sR0FHOUIsRUFHRixNQUFNcTVDLGFBQWFsL0MsR0FBQUEsUUFBQUEsVUFlakJpTCxNQUFBQSxHQUNFLE1BQU0sS0FDSmtLLEVBQUksSUFDSnRQLEVBQUcsS0FDSHVzQixFQUFJLFNBQ0pELEVBQVEsYUFDUmpuQixFQUFZLGFBQ1pxbUIsRUFBWSxlQUNaMXFCLEVBQ0FoQixJQUFLa2MsR0FDSDdzRCxLQUFLc3lCLE1BQ0hsa0IsRUFBVTZ4QyxFQUFLcjdDLElBQUksV0FDbkJzcEQsRUFBY2pPLEVBQUtyN0MsSUFBSSxlQUN2QjJtQixFQUFRMDBCLEVBQUtyN0MsSUFBSSxTQUNqQnFsRixFQUFvQi84QixhQUN4QmpOLEVBQUtyN0MsSUFBSSxrQkFDVGlvRCxFQUNBLENBQUVsYixtQkFFRXU0QyxFQUFjanFDLEVBQUtyN0MsSUFBSSxXQUN2QnVsRixFQUFjbHFDLEVBQUtyN0MsSUFBSSxXQUV2QjJwRCxFQUFrQnJCLGFBREdtUCxHQUFnQkEsRUFBYXozRCxJQUFJLE9BQ0hpb0QsRUFBUyxDQUNoRWxiLG1CQUVJNmMsRUFDSjZOLEdBQWdCQSxFQUFhejNELElBQUksZUFFN0I2cEQsRUFBV3pZLEVBQWEsWUFBWSxHQUNwQzJZLEVBQU8zWSxFQUFhLFFBQ3BCbzBDLEVBQWVwMEMsRUFBYSxnQkFDNUJxMEMsRUFBaUJyMEMsRUFBYSxrQkFDOUIrekMsRUFBVS96QyxFQUFhLFdBQ3ZCOHpDLEVBQWU5ekMsRUFBYSxnQkFDNUJzMEMsRUFBVXQwQyxFQUFhLFdBQ3ZCdTBDLEVBQVV2MEMsRUFBYSxXQUU3QixPQUNFbEwsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxRQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxVQUFRd1MsVUFBVSxRQUNoQnhTLEdBQUFBLFFBQUFBLGNBQUEsTUFBSXdTLFVBQVUsU0FDWC94QixFQUNEdWYsR0FBQUEsUUFBQUEsY0FBQSxZQUNHMThCLEdBQVcwOEIsR0FBQUEsUUFBQUEsY0FBQ3MvQyxFQUFZLENBQUNoOEUsUUFBU0EsSUFDbkMwOEIsR0FBQUEsUUFBQUEsY0FBQ3UvQyxFQUFjLENBQUNHLFdBQVcsVUFHOUJ0dEIsR0FBUUQsRUFDUG55QixHQUFBQSxRQUFBQSxjQUFDZy9DLEVBQVksQ0FBQzVzQixLQUFNQSxFQUFNRCxTQUFVQSxJQUNsQyxLQUNIdHNCLEdBQU83RixHQUFBQSxRQUFBQSxjQUFDaS9DLEVBQU8sQ0FBQy96QyxhQUFjQSxFQUFjckYsSUFBS0EsS0FHcEQ3RixHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGVBQ2J4UyxHQUFBQSxRQUFBQSxjQUFDMmpCLEVBQVEsQ0FBQ3ZzQyxPQUFRZ3NDLEtBR25CKzdCLEdBQ0NuL0MsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxhQUNieFMsR0FBQUEsUUFBQUEsY0FBQzZqQixFQUFJLENBQUM1dkQsT0FBTyxTQUFTa3VELEtBQU1JLFlBQVk0OEIsSUFBb0IscUJBTS9EQyxHQUFhaDVFLEtBQU8sR0FDbkI0NUIsR0FBQUEsUUFBQUEsY0FBQ3kvQyxFQUFPLENBQ052MEMsYUFBY0EsRUFDZHZxQyxLQUFNeStFLEVBQ052NEMsZUFBZ0JBLEVBQ2hCaEIsSUFBS0EsSUFHUnc1QyxHQUFhajVFLEtBQU8sR0FDbkI0NUIsR0FBQUEsUUFBQUEsY0FBQ3cvQyxFQUFPLENBQ050MEMsYUFBY0EsRUFDZHkwQyxRQUFTTixFQUNUeDRDLGVBQWdCQSxFQUNoQmhCLElBQUtBLElBR1I0ZCxFQUNDempCLEdBQUFBLFFBQUFBLGNBQUM2akIsRUFBSSxDQUNIclIsVUFBVSxnQkFDVnYrQyxPQUFPLFNBQ1BrdUQsS0FBTUksWUFBWWtCLElBRWpCQyxHQUEyQkQsR0FFNUIsS0FHVixFQUdGLFlDdkplLE1BQU1tOEIsc0JBQXNCNS9DLEdBQUFBLFFBQUFBLFVBU3pDaUwsTUFBQUEsR0FDRSxNQUFNLGNBQUMxRSxFQUFhLGFBQUUyRSxFQUFZLGNBQUU1RSxHQUFpQnB4QyxLQUFLc3lCLE1BRXBEMnRCLEVBQU81TyxFQUFjNE8sT0FDckJ0UCxFQUFNVSxFQUFjVixNQUNwQnNzQixFQUFXNXJCLEVBQWM0ckIsV0FDekJDLEVBQU83ckIsRUFBYzZyQixPQUNyQmIsRUFBZWhyQixFQUFjZ3JCLGVBQzdCMXFCLEVBQWlCUCxFQUFjTyxpQkFFL0JxNEMsRUFBT2gwQyxFQUFhLFFBRTFCLE9BQ0VsTCxHQUFBQSxRQUFBQSxjQUFBLFdBQ0dtVixHQUFRQSxFQUFLbjlDLFFBQ1pnb0MsR0FBQUEsUUFBQUEsY0FBQ2svQyxFQUFJLENBQUMvcEMsS0FBTUEsRUFBTXRQLElBQUtBLEVBQUt1c0IsS0FBTUEsRUFBTUQsU0FBVUEsRUFBVVosYUFBY0EsRUFDcEVybUIsYUFBY0EsRUFBY3JFLGVBQWdCQSxJQUNoRCxLQUdWLEVDekJGLE1BQU00NEMsZ0JBQWdCei9DLEdBQUFBLFFBQUFBLFVBU3BCaUwsTUFBQUEsR0FDRSxNQUFNLEtBQUV0cUMsRUFBSSxhQUFFdXFDLEVBQVksZUFBRXJFLEVBQWdCaEIsSUFBS2tjLEdBQVk3c0QsS0FBS3N5QixNQUM1RGp5QixFQUFPb0wsRUFBSzdHLElBQUksT0FBUSxpQkFDeEIrckMsRUFBTXVjLGFBQWF6aEQsRUFBSzdHLElBQUksT0FBUWlvRCxFQUFTLENBQUVsYixtQkFDL0NnNUMsRUFBUWwvRSxFQUFLN0csSUFBSSxTQUVqQitwRCxFQUFPM1ksRUFBYSxRQUUxQixPQUNFbEwsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxpQkFDWjNNLEdBQ0M3RixHQUFBQSxRQUFBQSxjQUFBLFdBQ0VBLEdBQUFBLFFBQUFBLGNBQUM2akIsRUFBSSxDQUFDMUIsS0FBTUksWUFBWTFjLEdBQU01eEMsT0FBTyxVQUNsQ3NCLEVBQUssZUFJWHNxRixHQUNDNy9DLEdBQUFBLFFBQUFBLGNBQUM2akIsRUFBSSxDQUFDMUIsS0FBTUksWUFBWSxVQUFVczlCLE1BQy9CaDZDLEVBQU0saUJBQWlCdHdDLElBQVMsV0FBV0EsS0FLdEQsRUFHRixlQ3BDQSxNQUFNaXFGLGdCQUFnQngvQyxHQUFBQSxRQUFBQSxVQVNwQmlMLE1BQUFBLEdBQ0UsTUFBTSxRQUFFMDBDLEVBQU8sYUFBRXowQyxFQUFZLGVBQUVyRSxFQUFnQmhCLElBQUtrYyxHQUFZN3NELEtBQUtzeUIsTUFDL0RqeUIsRUFBT29xRixFQUFRN2xGLElBQUksT0FBUSxXQUMzQityQyxFQUFNdWMsYUFBYXU5QixFQUFRN2xGLElBQUksT0FBUWlvRCxFQUFTLENBQUVsYixtQkFFbERnZCxFQUFPM1ksRUFBYSxRQUUxQixPQUNFbEwsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxpQkFDWjNNLEVBQ0M3RixHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLHNCQUNieFMsR0FBQUEsUUFBQUEsY0FBQzZqQixFQUFJLENBQUM1dkQsT0FBTyxTQUFTa3VELEtBQU1JLFlBQVkxYyxJQUNyQ3R3QyxJQUlMeXFDLEdBQUFBLFFBQUFBLGNBQUEsWUFBT3pxQyxHQUlmLEVBR0YsZUNuQ2UsTUFBTThyRCxtQkFBbUJyaEIsR0FBQUEsUUFBQUEsVUFDdENpTCxNQUFBQSxHQUNFLE9BQU8sSUFDVCxFQ0VhLE1BQU1nbkMsMkJBQTJCanlDLEdBQUFBLFFBQUFBLFVBQzlDaUwsTUFBQUEsR0FDRSxJQUFJLGFBQUVDLEdBQWlCaDJDLEtBQUtzeUIsTUFFNUIsTUFBTW9zQixFQUFXMUksRUFBYSxZQUU5QixPQUNFbEwsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxtQ0FBbUMveEIsTUFBTSxxQkFDdER1ZixHQUFBQSxRQUFBQSxjQUFDMFgsR0FBQUEsZ0JBQWUsQ0FBQ3J6QyxLQUFNblAsS0FBS3N5QixNQUFNNnFELFlBQ2hDcnlDLEdBQUFBLFFBQUFBLGNBQUM0VCxFQUFRLE9BSWpCLEVDcEJhLE1BQU1rc0MsZUFBZTkvQyxHQUFBQSxRQUFBQSxVQUNsQ2lMLE1BQUFBLEdBQ0UsT0FDRWpMLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsVUFFbkIsRUNKYSxNQUFNdXRDLHdCQUF3Qi8vQyxHQUFBQSxRQUFBQSxVQVMzQ2dnRCxlQUFrQm5nRixJQUNoQixNQUFPNUwsUUFBUSxNQUFDYyxJQUFVOEssRUFDMUIzSyxLQUFLc3lCLE1BQU15bkIsY0FBY2lGLGFBQWFuL0MsRUFBTSxFQUc5Q2syQyxNQUFBQSxHQUNFLE1BQU0sY0FBQzFFLEVBQWEsZ0JBQUV3SSxFQUFlLGFBQUU3RCxHQUFnQmgyQyxLQUFLc3lCLE1BQ3REdWdELEVBQU03OEIsRUFBYSxPQUVuQiswQyxFQUE4QyxZQUFsQzE1QyxFQUFjaTdCLGdCQUMxQjBlLEVBQTZDLFdBQWxDMzVDLEVBQWNpN0IsZ0JBQ3pCeDZDLEVBQVMrbkIsRUFBZ0J3RixnQkFFekJvRyxFQUFhLENBQUMsMEJBSXBCLE9BSEl1bEMsR0FBVXZsQyxFQUFXampELEtBQUssVUFDMUJ1b0YsR0FBV3RsQyxFQUFXampELEtBQUssV0FHN0Jzb0MsR0FBQUEsUUFBQUEsY0FBQSxZQUNjLElBQVhoWixFQUFtQixLQUNsQmdaLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsb0JBQ2J4UyxHQUFBQSxRQUFBQSxjQUFDK25DLEVBQUcsQ0FBQ3YxQixVQUFVLGlCQUFpQnFyQyxPQUFRLElBQ3RDNzlDLEdBQUFBLFFBQUFBLGNBQUEsU0FBT3dTLFVBQVdtSSxFQUFXNTlDLEtBQUssS0FBTTZwRCxZQUFZLGdCQUFnQjN2RCxLQUFLLE9BQ2xFK3RELFNBQVU5dkQsS0FBSzhxRixlQUFnQmpyRixNQUF5QixpQkFBWGl5QixFQUFzQkEsRUFBUyxHQUM1RXkrQixTQUFVdzZCLE1BTTdCLEVDcENGLE1BQU1FLEdBQU8vckYsU0FBU0MsVUFFUCxNQUFNaW1GLGtCQUFrQjFvRCxHQUFBQSxjQWVyQ3dwQixtQkFBcUIsQ0FDbkIyVyxVQUFVOStCLEVBQUFBLEdBQUFBLFFBQU8sQ0FBQyxxQkFDbEI2SixPQUFPN0osRUFBQUEsR0FBQUEsUUFBTyxDQUFDLEdBQ2YreEIsU0FBVW03QixHQUNWMUgsaUJBQWtCMEgsSUFHcEIzakYsV0FBQUEsQ0FBWWdyQixFQUFPaHRCLEdBQ2pCaWEsTUFBTStTLEVBQU9odEIsR0FFYnRGLEtBQUt1RCxNQUFRLENBQ1gybkYsV0FBVyxFQUNYcnJGLE1BQU8sR0FHWCxDQUVBNG1ELGlCQUFBQSxHQUNFem1ELEtBQUttckYsYUFBYS9yRixLQUFLWSxLQUFNQSxLQUFLc3lCLE1BQ3BDLENBRUFxMEIsZ0NBQUFBLENBQWlDQyxHQUMvQjVtRCxLQUFLbXJGLGFBQWEvckYsS0FBS1ksS0FBTTRtRCxFQUMvQixDQUVBdWtDLGFBQWdCNzRELElBQ2QsSUFBSSxNQUFFc1YsRUFBSyxVQUFFc2YsRUFBUyxjQUFFbytCLEVBQWMsSUFBT2h6RCxFQUN6Q2l0QyxFQUFRLE9BQU94NkIsS0FBS3VnRCxHQUNwQjhGLEVBQVMsUUFBUXJtRCxLQUFLdWdELEdBQ3RCamYsRUFBYTlHLEVBQVEzM0IsRUFBTWhqQyxJQUFJLGFBQWVnakMsRUFBTWhqQyxJQUFJLFNBRTVELFFBQW9CdkQsSUFBZmdsRSxFQUEyQixDQUM5QixJQUFJcndELEdBQU9xd0QsR0FBYytrQixFQUFTLEtBQU8va0IsRUFDekNybUUsS0FBSzZtRCxTQUFTLENBQUVobkQsTUFBT21XLElBQ3ZCaFcsS0FBSzh2RCxTQUFTOTVDLEVBQUssQ0FBQ3VwRCxNQUFPQSxFQUFPMnJCLFVBQVdoa0MsR0FDL0MsTUFDTXFZLEVBQ0Z2L0QsS0FBSzh2RCxTQUFTOXZELEtBQUtrNUQsT0FBTyxPQUFRLENBQUNxRyxNQUFPQSxFQUFPMnJCLFVBQVdoa0MsSUFFNURsbkQsS0FBSzh2RCxTQUFTOXZELEtBQUtrNUQsU0FBVSxDQUFDZ3lCLFVBQVdoa0MsR0FFN0MsRUFHRmdTLE9BQVVoc0QsSUFDUixJQUFJLE1BQUUwNkIsRUFBSyxHQUFFN21CLEdBQU0vZ0IsS0FBS3N5QixNQUNwQm1PLEVBQVMxZixFQUFHKzRDLFlBQVlseUIsRUFBTXpHLFFBRWxDLE9BQU9wZ0IsRUFBR214QyxnQkFBZ0J6eEIsRUFBUXZ6QixFQUFLLENBQ3JDNjZDLGtCQUFrQixHQUNsQixFQUdKK0gsU0FBV0EsQ0FBQ2p3RCxHQUFTcXJGLFlBQVczckIsWUFDOUJ2L0QsS0FBSzZtRCxTQUFTLENBQUNobkQsUUFBT3FyRixjQUN0QmxyRixLQUFLcXJGLFVBQVV4ckYsRUFBTzAvRCxFQUFNLEVBRzlCOHJCLFVBQVlBLENBQUNyMUUsRUFBS3VwRCxNQUFhdi9ELEtBQUtzeUIsTUFBTXc5QixVQUFZbTdCLElBQU1qMUUsRUFBS3VwRCxFQUFNLEVBRXZFekwsZUFBaUJucEQsSUFDZixNQUFNLGNBQUMyNkUsR0FBaUJ0bEYsS0FBS3N5QixNQUN2Qml0QyxFQUFRLE9BQU94NkIsS0FBS3VnRCxHQUNwQnZ4QixFQUFhcHBELEVBQUU1TCxPQUFPYyxNQUM1QkcsS0FBSzh2RCxTQUFTaUUsRUFBWSxDQUFDd0wsUUFBTzJyQixVQUFXbHJGLEtBQUt1RCxNQUFNMm5GLFdBQVcsRUFHckVJLGdCQUFrQkEsSUFBTXRyRixLQUFLNm1ELFVBQVV0akQsSUFBSyxDQUFNMm5GLFdBQVkzbkYsRUFBTTJuRixjQUVwRW4xQyxNQUFBQSxHQUNFLElBQUksaUJBQ0Z3dEMsRUFBZ0IsTUFDaEIzN0MsRUFBSyxVQUNMc2YsRUFBUyxjQUNUN1YsRUFBYSxXQUNia3RCLEVBQVUsYUFDVnZvQixHQUNFaDJDLEtBQUtzeUIsTUFFVCxNQUFNMmdDLEVBQVNqZCxFQUFhLFVBQ3RCZ2UsRUFBV2hlLEVBQWEsWUFDeEJvUyxFQUFnQnBTLEVBQWEsaUJBQWlCLEdBQzlDa29DLEVBQWNsb0MsRUFBYSxlQUVqQyxJQUNJNTJCLEdBRFlpeUIsRUFBZ0JBLEVBQWNpdEIsNEJBQTRCQyxFQUFZMzJCLEdBQVNBLEdBQ3hFaGpDLElBQUksVUFBVTg0QixFQUFBQSxHQUFBQSxTQUNqQzRuRCxFQUFnQmowQyxFQUFjd3VCLGtCQUFrQnRCLEdBQVkzNUQsSUFBSSxzQkFDaEVpNEQsRUFBVzc4RCxLQUFLc3lCLE1BQU11cUMsVUFBWTc4RCxLQUFLc3lCLE1BQU11cUMsU0FBUzNyRCxLQUFPbFIsS0FBS3N5QixNQUFNdXFDLFNBQVd1b0IsVUFBVW1HLFlBQVkxdUIsVUFFekcsTUFBRWg5RCxFQUFLLFVBQUVxckYsR0FBY2xyRixLQUFLdUQsTUFDNUJxaUQsRUFBVyxLQUNRdTVCLGtDQUFrQ3QvRSxLQUV2RCtsRCxFQUFXLFFBR2IsTUFDTSs0QixFQUFZLEdBRERqQixrQkFBa0IsR0FBR25mLEVBQVcsS0FBS0EsRUFBVywwQkFHakUsT0FDRXp6QixHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGFBQWEsa0JBQWlCMVYsRUFBTWhqQyxJQUFJLFFBQVMsZ0JBQWVnakMsRUFBTWhqQyxJQUFJLE9BRXJGc21GLEdBQWFoa0MsRUFDVHBjLEdBQUFBLFFBQUFBLGNBQUNrcEIsRUFBUSxDQUFDMVcsVUFBWSxvQkFBdUJsK0IsRUFBT3RjLFFBQVUsV0FBYSxJQUFLakQsTUFBT0EsRUFBT2l3RCxTQUFXOXZELEtBQUs4ekQsaUJBQzdHajBELEdBQVNpckMsR0FBQUEsUUFBQUEsY0FBQ3NkLEVBQWEsQ0FBQzlLLFVBQVUsc0JBQXNCc0ksU0FBV0EsR0FBWS9sRCxHQUV0RmlyQyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLHNCQUVWNEosRUFDWXBjLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsbUJBQ2hCeFMsR0FBQUEsUUFBQUEsY0FBQ21vQixFQUFNLENBQUMzVixVQUFXNHRDLEVBQVksc0NBQXdDLG9DQUM5RDdsQyxRQUFTcmxELEtBQUtzckYsaUJBQW1CSixFQUFZLFNBQVcsU0FIaEUsS0FPZnBnRCxHQUFBQSxRQUFBQSxjQUFBLFNBQU9pbEIsUUFBUzR1QixHQUNkN3pDLEdBQUFBLFFBQUFBLGNBQUEsWUFBTSwwQkFDTkEsR0FBQUEsUUFBQUEsY0FBQ296QyxFQUFXLENBQ1ZyK0UsTUFBUXlsRixFQUNSeEcsYUFBZWppQixFQUNmL00sU0FBVXl6QixFQUNWam1DLFVBQVUsMEJBQ1Z1aEMsVUFBVSx5QkFDVkYsVUFBV0EsTUFRdkIsRUNySmEsTUFBTTlGLGFBQWEvdEMsR0FBQUEsUUFBQUEsVUFNaENpTCxNQUFBQSxHQUNFLE1BQU0sUUFBRTRLLEVBQU8sYUFBRTNLLEdBQWlCaDJDLEtBQUtzeUIsTUFDakNrNUQsRUFBTzdwQyxrQ0FBa0NoQixHQUN6Q2dELEVBQW9CM04sRUFBYSxxQkFBcUIsR0FFNUQsT0FDRWxMLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsZ0JBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLFVBQUksUUFDSkEsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxxQkFDWHhTLEdBQUFBLFFBQUFBLGNBQUMwWCxHQUFBQSxnQkFBZSxDQUFDcnpDLEtBQU1xOEUsR0FBTTFnRCxHQUFBQSxRQUFBQSxjQUFBLGlCQUVqQ0EsR0FBQUEsUUFBQUEsY0FBQSxXQUNFQSxHQUFBQSxRQUFBQSxjQUFDNlksRUFBaUIsQ0FDaEJpQyxTQUFTLE9BQ1R0SSxVQUFVLGtCQUNWdUksZ0JBQWlCQSxFQUFHQyxXQUFVQyxxQkFDNUJqYixHQUFBQSxRQUFBQSxjQUFDaWIsRUFBZSxDQUFDekksVUFBVSxRQUFRd0ksSUFHcEMwbEMsSUFLWCxFQ3BCRixhQVp3Qjk4QixFQUFHL3BCLFVBQVN5cUIsVUFBU0QsZUFFckNya0IsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBWTZSLEdBQ2hCcmtCLEdBQUFBLFFBQUFBLGNBQUEsV0FBUW5HLEVBQVMsS0FBSTloQyxPQUFPdXNELElDSHZCLE1BQU04ekIsdUJBQXVCcDRDLEdBQUFBLFFBQUFBLFVBVzFDb2Isb0JBQXNCLENBQ3BCbTBCLGNBQWVuN0UsU0FBU0MsVUFDeEJvN0UsY0FBZXI3RSxTQUFTQyxVQUN4Qm03RSxhQUFjcDdFLFNBQVNDLFVBQ3ZCODZFLFNBQVMsRUFDVDRJLG1CQUFtQixFQUNuQnRpRCxRQUFRLEdBR1Z3VixNQUFBQSxHQUNFLE1BQU0sY0FBRXNrQyxFQUFhLGNBQUVFLEVBQWEsYUFBRUQsRUFBWSxRQUFFTCxFQUFPLGtCQUFFNEksRUFBaUIsT0FBRXRpRCxHQUFXdmdDLEtBQUtzeUIsTUFFMUZtNUQsRUFBWWxyRCxHQUFVc2lELEVBQzVCLE9BQ0UvM0MsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBV211QyxFQUFZLG9CQUFzQixXQUU5Q3hSLEVBQVVudkMsR0FBQUEsUUFBQUEsY0FBQSxVQUFRd1MsVUFBVSwwQkFBMEIrSCxRQUFVazFCLEdBQWdCLFVBQ3RFenZDLEdBQUFBLFFBQUFBLGNBQUEsVUFBUXdTLFVBQVUsbUJBQW1CK0gsUUFBVWcxQixHQUFnQixlQUl6RW9SLEdBQWEzZ0QsR0FBQUEsUUFBQUEsY0FBQSxVQUFRd1MsVUFBVSx5QkFBeUIrSCxRQUFVaTFCLEdBQWUsU0FJekYsRUNwQ2EsTUFBTW9SLDRCQUE0QjVnRCxHQUFBQSxRQUFBQSxjQVMvQ29iLG9CQUFzQixDQUNwQnlsQyxTQUFVLEtBQ1Y3bEMsU0FBVSxLQUNWOGxDLFFBQVEsR0FHVjcxQyxNQUFBQSxHQUNFLE1BQU0sT0FBRTYxQyxFQUFNLFdBQUU1RyxFQUFVLE9BQUV6a0QsRUFBTSxTQUFFb3JELEdBQWEzckYsS0FBS3N5QixNQUV0RCxPQUFHczVELEVBQ005Z0QsR0FBQUEsUUFBQUEsY0FBQSxXQUFPOXFDLEtBQUtzeUIsTUFBTXd6QixVQUd4QmsvQixHQUFjemtELEVBQ1J1SyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGtCQUNuQnF1QyxFQUNEN2dELEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsOERBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLFdBQ0VBLEdBQUFBLFFBQUFBLGNBQUEsVUFBSSxvQ0FDSkEsR0FBQUEsUUFBQUEsY0FBQSxTQUFHQSxHQUFBQSxRQUFBQSxjQUFBLFlBQU0sV0FBYyxRQUFLQSxHQUFBQSxRQUFBQSxjQUFBLFlBQU0sV0FBYyx5R0FDaERBLEdBQUFBLFFBQUFBLGNBQUEsU0FBRyxnQ0FBNkJBLEdBQUFBLFFBQUFBLGNBQUEsWUFBTSxZQUFVLFNBQWlCLHlCQUFzQkEsR0FBQUEsUUFBQUEsY0FBQSxZQUFNLGtCQUFxQixrQkFBZUEsR0FBQUEsUUFBQUEsY0FBQSxZQUFNLGtCQUFxQixTQU1oS2s2QyxHQUFlemtELEVBYVp1SyxHQUFBQSxRQUFBQSxjQUFBLFdBQU85cUMsS0FBS3N5QixNQUFNd3pCLFVBWmhCaGIsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxrQkFDbkJxdUMsRUFDRDdnRCxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLDREQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxXQUNFQSxHQUFBQSxRQUFBQSxjQUFBLFVBQUksb0NBQ0pBLEdBQUFBLFFBQUFBLGNBQUEsU0FBRyxtRUFDSEEsR0FBQUEsUUFBQUEsY0FBQSxTQUFHLDBGQUF1RkEsR0FBQUEsUUFBQUEsY0FBQSxZQUFNLFlBQVUsU0FBaUIseUJBQXNCQSxHQUFBQSxRQUFBQSxjQUFBLFlBQU0sa0JBQXFCLGtCQUFlQSxHQUFBQSxRQUFBQSxjQUFBLFlBQU0sa0JBQXFCLFFBT2hPLEVDekNGLGtCQVJxQnMvQyxFQUFHaDhFLGFBQ2YwOEIsR0FBQUEsUUFBQUEsY0FBQSxhQUFPQSxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLFdBQVUsSUFBR2x2QyxFQUFTLE1DVXJELG9CQVZ1Qmk4RSxFQUFHRyxnQkFDeEIxL0MsR0FBQUEsUUFBQUEsY0FBQSxTQUFPd1MsVUFBVSxpQkFDZnhTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsV0FBVSxPQUFLa3RDLElDYWxDLGNBaEJ3QjdRLEVBQUdNLFVBQVNubEMsT0FBTTNsQyxVQUVsQzI3QixHQUFBQSxRQUFBQSxjQUFBLEtBQUd3UyxVQUFVLFVBQ1grSCxRQUFTNDBCLEVBQVd0dkUsR0FBTUEsRUFBRWk2QyxpQkFBbUIsS0FDL0NxSSxLQUFNZ3RCLEVBQVUsS0FBS25sQyxJQUFTLE1BQzlCaEssR0FBQUEsUUFBQUEsY0FBQSxZQUFPMzdCLElDdUNqQixlQTlDa0IwOEUsSUFDaEIvZ0QsR0FBQUEsUUFBQUEsY0FBQSxXQUNFQSxHQUFBQSxRQUFBQSxjQUFBLE9BQUs2UyxNQUFNLDZCQUE2Qm11QyxXQUFXLCtCQUErQnh1QyxVQUFVLGNBQzFGeFMsR0FBQUEsUUFBQUEsY0FBQSxZQUNFQSxHQUFBQSxRQUFBQSxjQUFBLFVBQVE4UyxRQUFRLFlBQVl2VixHQUFHLFlBQzdCeUMsR0FBQUEsUUFBQUEsY0FBQSxRQUFNcGdDLEVBQUUsK1RBR1ZvZ0MsR0FBQUEsUUFBQUEsY0FBQSxVQUFROFMsUUFBUSxZQUFZdlYsR0FBRyxVQUM3QnlDLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXBnQyxFQUFFLHFVQUdWb2dDLEdBQUFBLFFBQUFBLGNBQUEsVUFBUThTLFFBQVEsWUFBWXZWLEdBQUcsU0FDN0J5QyxHQUFBQSxRQUFBQSxjQUFBLFFBQU1wZ0MsRUFBRSxrVkFHVm9nQyxHQUFBQSxRQUFBQSxjQUFBLFVBQVE4UyxRQUFRLFlBQVl2VixHQUFHLGVBQzdCeUMsR0FBQUEsUUFBQUEsY0FBQSxRQUFNcGdDLEVBQUUsd0xBR1ZvZ0MsR0FBQUEsUUFBQUEsY0FBQSxVQUFROFMsUUFBUSxZQUFZdlYsR0FBRyxvQkFDN0J5QyxHQUFBQSxRQUFBQSxjQUFBLFFBQU1wZ0MsRUFBRSxxTEFHVm9nQyxHQUFBQSxRQUFBQSxjQUFBLFVBQVE4UyxRQUFRLFlBQVl2VixHQUFHLGtCQUM3QnlDLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXBnQyxFQUFFLDZSQUdWb2dDLEdBQUFBLFFBQUFBLGNBQUEsVUFBUThTLFFBQVEsWUFBWXZWLEdBQUcsV0FDN0J5QyxHQUFBQSxRQUFBQSxjQUFBLFFBQU1wZ0MsRUFBRSxpRUFHVm9nQyxHQUFBQSxRQUFBQSxjQUFBLFVBQVE4UyxRQUFRLFlBQVl2VixHQUFHLFVBQzdCeUMsR0FBQUEsUUFBQUEsY0FBQSxRQUFNcGdDLEVBQUUsb0RBR1ZvZ0MsR0FBQUEsUUFBQUEsY0FBQSxVQUFROFMsUUFBUSxZQUFZdlYsR0FBRyxRQUM3QnlDLEdBQUFBLFFBQUFBLGNBQUEsS0FBR2xlLFVBQVUsb0JBQ1hrZSxHQUFBQSxRQUFBQSxjQUFBLFFBQU03eEIsS0FBSyxVQUFVaWxDLFNBQVMsVUFBVXh6QyxFQUFFLHdWQ25DbEQsR0FKSSxTQUFTcEIsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLFdBQWdCLFdBQWEsT0FBTzBpRixHQUF1Q0MsVUFBWSxJQ0ExSCxHQUpJLFNBQVMxaUYsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLFFBQWEsV0FBYSxPQUFPNGlGLEdBQXdEQyxPQUFTLElDQXJJLEdBSkksU0FBUzVpRixHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsUUFBYSxXQUFhLE9BQU84aUYsR0FBK0MsT0FBRyxJQ0d0SEMsR0FBQUEsUUFBQUEsU0FDRkEsR0FBQUEsUUFBQUEsUUFBa0IsMEJBQTBCLFNBQVV0N0QsR0FRcEQsT0FISUEsRUFBUW04QixNQUNWbjhCLEVBQVF1N0QsYUFBYSxNQUFPLHVCQUV2QnY3RCxDQUNULElBb0NGLE9BakNBLFNBQVMyOUIsVUFBUyxPQUFFdnNDLEVBQU0sVUFBRW83QixFQUFZLEdBQUUsV0FBRTVTLEVBQWFBLEtBQUEsQ0FBUzRoRCxtQkFBbUIsTUFDbkYsR0FBc0IsaUJBQVhwcUUsRUFDVCxPQUFPLEtBR1QsTUFBTXFxRSxFQUFLLElBQUlQLEdBQUFBLFdBQVcsQ0FDeEJRLE1BQU0sRUFDTkMsYUFBYSxFQUNiQyxRQUFRLEVBQ1JDLFdBQVksV0FDWEMsSUFBSVYsR0FBQUEsU0FFUEssRUFBR00sS0FBS0MsTUFBTUMsUUFBUSxDQUFDLGVBQWdCLGdCQUV2QyxNQUFNLGtCQUFFVCxHQUFzQjVoRCxJQUN4QjhoRCxFQUFPRCxFQUFHeDJDLE9BQU83ekIsR0FDakI4cUUsRUFBWUMsVUFBVVQsRUFBTSxDQUFFRixzQkFFcEMsT0FBS3BxRSxHQUFXc3FFLEdBQVNRLEVBS3ZCbGlELEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFdBQVdvTCxFQUFBQSxHQUFBQSxTQUFHcEwsRUFBVyxZQUFhNHZDLHdCQUF5QixDQUFFQyxPQUFRSCxLQUp2RSxJQU1YLEVBVU8sU0FBU0MsVUFBVS9rRixHQUFLLGtCQUFFb2tGLEdBQW9CLEdBQVUsQ0FBQyxHQUM5RCxNQUFNYyxFQUFrQmQsRUFDbEJlLEVBQWNmLEVBQW9CLEdBQUssQ0FBQyxRQUFTLFNBT3ZELE9BTElBLElBQXNCVyxVQUFVSyw0QkFDbENycUYsUUFBUUMsS0FBSyxnSEFDYitwRixVQUFVSywyQkFBNEIsR0FHakNsQixHQUFBQSxRQUFBQSxTQUFtQmxrRixFQUFLLENBQzdCcWxGLFNBQVUsQ0FBQyxVQUNYQyxZQUFhLENBQUMsUUFBUyxRQUN2Qkosa0JBQ0FDLGVBRUosQ0FDQUosVUFBVUssMkJBQTRCLEVDakV2QixNQUFNRyxtQkFBbUIzaUQsR0FBQUEsUUFBQUEsVUFVdENpTCxNQUFBQSxHQUNFLE1BQU0sYUFBRTJ1QixFQUFZLGNBQUVyekIsRUFBYSxhQUFFMkUsR0FBaUJoMkMsS0FBS3N5QixNQUVyRHU1RCxFQUFZNzFDLEVBQWEsYUFDekIwMEMsRUFBZ0IxMEMsRUFBYSxpQkFBaUIsR0FDOUMwMUMsRUFBc0IxMUMsRUFBYSx1QkFDbkN3akMsRUFBYXhqQyxFQUFhLGNBQWMsR0FDeENzVixFQUFTdFYsRUFBYSxVQUFVLEdBQ2hDMDNDLEVBQVcxM0MsRUFBYSxZQUFZLEdBQ3BDNDhCLEVBQU01OEIsRUFBYSxPQUNuQjY4QixFQUFNNzhCLEVBQWEsT0FDbkJzeEMsRUFBU3R4QyxFQUFhLFVBQVUsR0FFaEMyM0MsRUFBbUIzM0MsRUFBYSxvQkFBb0IsR0FDcERnYSxFQUFtQmhhLEVBQWEsb0JBQW9CLEdBQ3BEeTdCLEVBQXdCejdCLEVBQWEseUJBQXlCLEdBQzlENjBDLEVBQWtCNzBDLEVBQWEsbUJBQW1CLEdBQ2xEZ3ZDLEVBQWEzekMsRUFBYzJ6QyxhQUMzQnprRCxFQUFTOFEsRUFBYzlRLFNBQ3ZCcXRELEVBQVV2OEMsRUFBY3U4QyxVQUV4QkMsR0FBZXg4QyxFQUFjc3FCLFVBRTdCMlEsRUFBZ0JqN0IsRUFBY2k3QixnQkFFcEMsSUFBSXdoQixFQUFpQixLQXVCckIsR0FyQnNCLFlBQWxCeGhCLElBQ0Z3aEIsRUFDRWhqRCxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLFFBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLHFCQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxlQU1ELFdBQWxCZ3ZCLElBQ0Z3aEIsRUFDRWhqRCxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLFFBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLHFCQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSxTQUFRLGtDQUN0QnhTLEdBQUFBLFFBQUFBLGNBQUN3OEMsRUFBTSxTQU1PLGlCQUFsQmhiLEVBQWtDLENBQ3BDLE1BQU15aEIsRUFBVXJwQixFQUFham9CLFlBQ3ZCdXhDLEVBQWFELEVBQVVBLEVBQVFucEYsSUFBSSxXQUFhLEdBQ3REa3BGLEVBQ0VoakQsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxzQkFDYnhTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUscUJBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLE1BQUl3UyxVQUFVLFNBQVEsd0NBQ3RCeFMsR0FBQUEsUUFBQUEsY0FBQSxTQUFJa2pELElBSVosQ0FNQSxJQUpLRixHQUFrQkQsSUFDckJDLEVBQWlCaGpELEdBQUFBLFFBQUFBLGNBQUEsVUFBSSxnQ0FHbkJnakQsRUFDRixPQUNFaGpELEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsY0FDYnhTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUscUJBQXFCd3dDLElBSzFDLE1BQU1HLEVBQVU1OEMsRUFBYzQ4QyxVQUN4QnQrQixFQUFVdGUsRUFBY3NlLFVBRXhCdStCLEVBQWFELEdBQVdBLEVBQVEvOEUsS0FDaENpOUUsRUFBYXgrQixHQUFXQSxFQUFReitDLEtBQ2hDazlFLElBQTJCLzhDLEVBQWMwQyxzQkFFL0MsT0FDRWpKLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsY0FDYnhTLEdBQUFBLFFBQUFBLGNBQUMrZ0QsRUFBUyxNQUNWL2dELEdBQUFBLFFBQUFBLGNBQUM0Z0QsRUFBbUIsQ0FDbEIxRyxXQUFZQSxFQUNaemtELE9BQVFBLEVBQ1JvckQsU0FBVTdnRCxHQUFBQSxRQUFBQSxjQUFDdzhDLEVBQU0sT0FFakJ4OEMsR0FBQUEsUUFBQUEsY0FBQ3c4QyxFQUFNLE1BQ1B4OEMsR0FBQUEsUUFBQUEsY0FBQzhuQyxFQUFHLENBQUN0MUIsVUFBVSx5QkFDYnhTLEdBQUFBLFFBQUFBLGNBQUMrbkMsRUFBRyxDQUFDOFYsT0FBUSxJQUNYNzlDLEdBQUFBLFFBQUFBLGNBQUM0L0MsRUFBYSxRQUlqQndELEdBQWNDLEdBQWNDLEVBQzNCdGpELEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsb0JBQ2J4UyxHQUFBQSxRQUFBQSxjQUFDK25DLEVBQUcsQ0FBQ3YxQixVQUFVLGtCQUFrQnFyQyxPQUFRLElBQ3RDdUYsR0FBY0MsRUFDYnJqRCxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLDRCQUNaNHdDLEVBQWFwakQsR0FBQUEsUUFBQUEsY0FBQzZpRCxFQUFnQixNQUFNLEtBQ3BDUSxFQUFhcmpELEdBQUFBLFFBQUFBLGNBQUNrbEIsRUFBZ0IsTUFBTSxNQUVyQyxLQUNIbytCLEVBQXlCdGpELEdBQUFBLFFBQUFBLGNBQUMybUMsRUFBcUIsTUFBTSxPQUd4RCxLQUVKM21DLEdBQUFBLFFBQUFBLGNBQUMrL0MsRUFBZSxNQUVoQi8vQyxHQUFBQSxRQUFBQSxjQUFDOG5DLEVBQUcsS0FDRjluQyxHQUFBQSxRQUFBQSxjQUFDK25DLEVBQUcsQ0FBQzhWLE9BQVEsR0FBSWhSLFFBQVMsSUFDeEI3c0MsR0FBQUEsUUFBQUEsY0FBQzB1QyxFQUFVLFFBSWRvVSxHQUNDOWlELEdBQUFBLFFBQUFBLGNBQUM4bkMsRUFBRyxDQUFDdDFCLFVBQVUsc0JBQ2J4UyxHQUFBQSxRQUFBQSxjQUFDK25DLEVBQUcsQ0FBQzhWLE9BQVEsR0FBSWhSLFFBQVMsSUFDeEI3c0MsR0FBQUEsUUFBQUEsY0FBQzRpRCxFQUFRLFFBS2Y1aUQsR0FBQUEsUUFBQUEsY0FBQzhuQyxFQUFHLEtBQ0Y5bkMsR0FBQUEsUUFBQUEsY0FBQytuQyxFQUFHLENBQUM4VixPQUFRLEdBQUloUixRQUFTLElBQ3hCN3NDLEdBQUFBLFFBQUFBLGNBQUN3Z0IsRUFBTSxTQU1uQixFQ3BCRixvQkFsRTZCK2lDLEtBQUEsQ0FDM0J2bEQsV0FBWSxDQUNWdWlDLElBQUcsR0FDSGlqQixtQkFBb0JqZCxtQkFDcEJrZCxhQUFjaGQsYUFDZEUsc0JBQ0ErYyxzQkFBdUI3YyxzQkFDdkJLLE1BQU9WLE1BQ1BXLFNBQVVBLGdCQUNWd2MsVUFBVy9iLFVBQ1hnYyxPQUFReGMsT0FDUnljLFdBQVlwYyxXQUNacWMsVUFBV3BjLFVBQ1hockQsTUFBT3F3RCxNQUNQZ1gsYUFBYzdXLGFBQ2RkLGlCQUNBajNCLEtBQU0rcEMsR0FDTlUsY0FDQVgsUUFDQUQsYUFDQVMsUUFBTyxHQUNQRCxRQUFPLEdBQ1BuK0IsV0FDQTR3QixtQkFDQStSLHFCQUFzQmhXLHFCQUN0Qm5jLFdBQVk2YyxXQUNaemtDLFVBQVdtbEMsVUFDWGtCLGlCQUNBeUIsdUJBQ0FDLHFCQUNBL2UsVUFBV2dkLFVBQ1g3b0MsU0FBVWlzQyxTQUNWc0Isa0JBQW1CQSxtQkFDbkJzUCxhQUFjdFcsYUFDZGhaLFdBQVl1YixXQUNaZ1UsYUFBYy9MLGFBQ2RydUMsUUFBU3FtQyxRQUNUN3FDLFFBQVMwbkMsZ0JBQ1QxNEQsT0FBUWtvRSxPQUNSN3NCLFlBQWF5akIsWUFDYitRLFNBQVU3RixTQUNWOEYsT0FBUXRFLE9BQ1JDLGdCQUNBekYsVUFDQW9HLEtBQU0zUyxLQUNObnFCLFNBQVEsU0FDUncwQixlQUNBejBCLFNBQVEsR0FDUmcvQixXQUNBL0Isb0JBQ0F0QixhQUFZLGNBQ1pqUCxhQUFZLHFCQUNabUMsZ0JBQWUsd0JBQ2Z5RyxhQUFZLG9CQUNaRyxzQkFDQTFvQyxhQUNBaytCLG1CQUNBMlEsZUFBYyxnQkFDZDFRLFNBQVEsVUFDUmtTLFVBQVMsV0FDVDdZLFFBQ0FFLGVBQ0FtQiwrQkNwSEosb0JBSjZCOGEsS0FBQSxDQUMzQnJtRCxXQUFZLElBQUtzbUQsTUNnRG5CLFNBMUJtQkMsSUFBTSxDQUN2QkMsY0FDQUMsS0FDQUMsS0FDQUMsS0FDQTVqQixZQUNBeEQsYUFDQXFuQixJQUNBcnhDLE1BQ0FzeEMsZUFDQS82QixjQUNBdUcsc0JBQ0FrekIsZ0JBQ0FjLGdCQUNBUyxlQUNBQyxLQUNBQyxrQkFDQUMsYUFDQUMsT0FDQUMsWUFDQUMseUJBQ0E5Z0Isb0JBQ0FVLFNBQ0FxZ0IsZUN2Q0YsTUFBTXZvRixJQUFNKzFCLEVBQUFBLEdBQUFBLE9BRVosU0FBU3l5RCxTQUFTeGpELEdBQ2hCLE1BQU8sQ0FBQ0ssRUFBS3JFLElBQ1gsSUFBSTNwQyxLQUNGLEdBQUkycEMsRUFBT2hHLFlBQVl5TyxjQUFjOVEsU0FBVSxDQUM3QyxNQUFNZ1QsRUFBUzNHLEtBQVkzdEMsR0FDM0IsTUFBeUIsbUJBQVhzMEMsRUFBd0JBLEVBQU8zSyxHQUFVMkssQ0FDekQsQ0FDRSxPQUFPdEcsS0FBT2h1QyxFQUNoQixDQUVOLENBRUEsTUFFTW94RixHQUFtQkQsVUFGSjF6QixFQUFBQSxHQUFBQSxTQUFTLE9BUWpCOVIsR0FBaUJ3bEMsVUFBUyxDQUFDN3NGLEVBQU8rc0YsSUFBZ0IxbkQsR0FDdERBLEVBQU9oRyxZQUFZeU8sY0FBY2svQyxXQUFXRCxLQUd4Q3g4QyxHQUFjczhDLFVBQVMsSUFBT3huRCxJQUN6QyxNQUNNNG5ELEVBRE81bkQsRUFBT2hHLFlBQVl5TyxjQUFjdUYsV0FDekIvVixNQUFNLENBQUMsYUFBYyxZQUMxQyxPQUFPbEQsR0FBQUEsSUFBSTZDLE1BQU1nd0QsR0FBV0EsRUFBVTVvRixFQUFHLElBRzlCeTNELEdBQVUrd0IsVUFBUyxJQUFPeG5ELEdBQ3hCQSxFQUFPaEcsWUFBWXlPLGNBQWN1RixXQUNsQzY1QyxNQUFNLENBQUMsVUFBVyxNQUduQjE4QyxHQUFzQnE4QyxVQUNqQ3o4QyxFQUFBQSxHQUFBQSxnQkFDRXdvQixJQUNDeGxCLEdBQVNBLEVBQUs5VixNQUFNLENBQUMsYUFBYyxxQkFBdUIsUUFJbEQ0N0IscUNBQ1hBLENBQUMvYyxFQUFhOVcsSUFDZCxDQUFDcmxDLEtBQVV0RSxJQUNMMnBDLEVBQU95SSxjQUFjOVEsU0FDaEJxSSxFQUFPd0ksY0FBY3FyQix3QkFHdkIvYyxLQUFlemdELEdBR2JpK0QsR0FBT216QixHQUNQcHpCLEdBQVdvekIsR0FDWHh6QixHQUFXd3pCLEdBQ1h2ekIsR0FBV3V6QixHQUNYMWdDLEdBQVUwZ0MsR0NqRGhCLE1BQU14OEMsR0FiYixTQUFTdThDLHdCQUFTeGpELEdBQ2hCLE1BQU8sQ0FBQ0ssRUFBS3JFLElBQVcsSUFBSTNwQyxLQUMxQixHQUFHMnBDLEVBQU9oRyxZQUFZeU8sY0FBYzlRLFNBQVUsQ0FFNUMsSUFBSW13RCxFQUFrQjluRCxFQUFPOUYsV0FBV2pDLE1BQU0sQ0FBQyxPQUFRLG1CQUNyRCxhQUFjLG9CQUNoQixPQUFPK0wsRUFBU2hFLEVBQVE4bkQsS0FBb0J6eEYsRUFDOUMsQ0FDRSxPQUFPZ3VDLEtBQU9odUMsRUFDaEIsQ0FFSixDQUVzQ214RixFQUFTejhDLEVBQUFBLEdBQUFBLGlCQWZqQ3B3QyxHQUFTQSxJQWlCbkIsRUFBRTh0QyxtQkFBbUJBLEVBQWMwQyx3QkFDbkMsQ0FBQ25MLEVBQVFrTCxLQUdQLElBQUlsdUMsR0FBTzgzQixFQUFBQSxHQUFBQSxRQUVYLE9BQUlvVyxHQUlKQSxFQUFZWixXQUFXem1DLFNBQVMsRUFBR2trRixFQUFTejBELE1BQzFDLE1BQU1uNkIsRUFBT202QixHQUFZdDNCLElBQUksUUEyQjdCLEdBekJZLFdBQVQ3QyxHQUNEbTZCLEVBQVd0M0IsSUFBSSxTQUFTc3VDLFdBQVd6bUMsU0FBUSxFQUFFbWtGLEVBQVNDLE1BQ3BELElBQUlDLEdBQWdCL3lELEVBQUFBLEdBQUFBLFFBQU8sQ0FDekJuVyxLQUFNZ3BFLEVBQ05wYSxpQkFBa0JxYSxFQUFRanNGLElBQUksb0JBQzlCbXNGLFNBQVVGLEVBQVFqc0YsSUFBSSxZQUN0QnVyQyxPQUFRMGdELEVBQVFqc0YsSUFBSSxVQUNwQjdDLEtBQU1tNkIsRUFBV3QzQixJQUFJLFFBQ3JCc3BELFlBQWFoeUIsRUFBV3QzQixJQUFJLGlCQUc5QmdCLEVBQU9BLEVBQUtwRCxLQUFLLElBQUltN0IsR0FBQUEsSUFBSSxDQUN2QixDQUFDZ3pELEdBQVVHLEVBQWNoL0QsUUFBUWhQLFFBR2xCemhCLElBQU55aEIsTUFFUixJQUdLLFNBQVQvZ0IsR0FBNEIsV0FBVEEsSUFDcEI2RCxFQUFPQSxFQUFLcEQsS0FBSyxJQUFJbTdCLEdBQUFBLElBQUksQ0FDdkIsQ0FBQ2d6RCxHQUFVejBELE1BR0gsa0JBQVRuNkIsR0FBNEJtNkIsRUFBV3QzQixJQUFJLHFCQUFzQixDQUNsRSxJQUFJb3NGLEVBQVc5MEQsRUFBV3QzQixJQUFJLHNCQUNqQm9zRixFQUFTcHNGLElBQUksMEJBQTRCLENBQUMscUJBQXNCLGFBQ3RFNkgsU0FBU3drRixJQUVkLElBQUlDLEVBQW1CRixFQUFTcHNGLElBQUkscUJBQ2xDb3NGLEVBQVNwc0YsSUFBSSxvQkFBb0IydkIsUUFBTyxDQUFDOFgsRUFBSzhrRCxJQUFROWtELEVBQUl4bkMsSUFBSXNzRixFQUFLLEtBQUssSUFBSXh6RCxHQUFBQSxLQUUxRW16RCxHQUFnQi95RCxFQUFBQSxHQUFBQSxRQUFPLENBQ3pCblcsS0FBTXFwRSxFQUNOemEsaUJBQWtCd2EsRUFBU3BzRixJQUFJLDBCQUMvQm1zRixTQUFVQyxFQUFTcHNGLElBQUksa0JBQ3ZCdXJDLE9BQVErZ0QsRUFDUm52RixLQUFNLFNBQ05pakUsaUJBQWtCOW9DLEVBQVd0M0IsSUFBSSxzQkFHbkNnQixFQUFPQSxFQUFLcEQsS0FBSyxJQUFJbTdCLEdBQUFBLElBQUksQ0FDdkIsQ0FBQ2d6RCxHQUFVRyxFQUFjaC9ELFFBQVFoUCxRQUdsQnpoQixJQUFOeWhCLE1BRVIsR0FFUCxLQUdLbGQsR0EzREVBLENBMkRFLEtDdEVWLFNBQVN3ckYseUJBQXlCMzBELEdBQ3ZDLE1BQU8sQ0FBQ3llLEVBQUt0UyxJQUFZdFcsR0FDcUIsbUJBQWpDc1csRUFBT3lJLGVBQWU5USxPQUMzQnFJLEVBQU95SSxjQUFjOVEsU0FDaEJ1SyxHQUFBQSxRQUFBQSxjQUFDck8sR0FBU2loQixFQUFBQSxHQUFBQSxTQUFBLEdBQUtwckIsRUFBV3NXLEVBQU0sQ0FBRXNTLElBQUtBLEtBRXZDcFEsR0FBQUEsUUFBQUEsY0FBQ29RLEVBQVE1b0IsSUFHbEJydkIsUUFBUUMsS0FBSyxtQ0FDTixLQUdiLENDbEJBLE1BQU0wRSxJQUFNKzFCLEVBQUFBLEdBQUFBLE9BRUNxbkQscUJBQWFBLElBQU9wOEMsR0RIMUIsU0FBU284QyxXQUFXbHBDLEdBQ3pCLE1BQU11MUMsRUFBaUJ2MUMsRUFBT2wzQyxJQUFJLFdBRWxDLE1BQWlDLGlCQUFuQnlzRixHQUFrRCxRQUFuQkEsQ0FDL0MsQ0NDU0MsQ0FETTFvRCxFQUFPaEcsWUFBWXlPLGNBQWN1RixZQUluQzI2QyxrQkFBVUEsSUFBTzNvRCxHRGhCdkIsU0FBUzJvRCxRQUFRejFDLEdBQ3RCLE1BQU0wdUMsRUFBYTF1QyxFQUFPbDNDLElBQUksV0FFOUIsTUFDd0IsaUJBQWY0bEYsR0FBMkIseUJBQXlCemxELEtBQUt5bEQsRUFFcEUsQ0NZU2dILENBRE01b0QsRUFBT2hHLFlBQVl5TyxjQUFjdUYsWUFJbkNyVyxpQkFBU0EsSUFBT3FJLEdBQ3BCQSxFQUFPaEcsWUFBWXlPLGNBQWNrZ0QsVUFHMUMsU0FBU25CLG1CQUFTeGpELEdBQ2hCLE1BQU8sQ0FBQ3JwQyxLQUFVdEUsSUFDZjJwQyxJQUNDLEdBQUlBLEVBQU95SSxjQUFjOVEsU0FBVSxDQUNqQyxNQUFNa3hELEVBQWdCN2tELEVBQVNycEMsS0FBVXRFLEdBQ3pDLE1BQWdDLG1CQUFsQnd5RixFQUNWQSxFQUFjN29ELEdBQ2Q2b0QsQ0FDTixDQUNFLE9BQU8sSUFDVCxDQUVOLENBRU8sTUFBTXhELEdBQVVtQyxvQkFBUyxJQUFPeG5ELEdBQ3hCQSxFQUFPeUksY0FBY3VGLFdBQ3RCaHlDLElBQUksVUFBV2dELE1BR2hCMm9GLFdBQWFBLENBQUNodEYsRUFBTytzRixLQUNoQyxNQUFNb0IsRUFBaUJudUYsRUFBTXM5QixNQUMzQixDQUFDLG1CQUFvQixhQUFjLFVBQVd5dkQsR0FDOUMsTUFFSXFCLEVBQW1CcHVGLEVBQU1zOUIsTUFDN0IsQ0FBQyxPQUFRLGFBQWMsVUFBV3l2RCxHQUNsQyxNQUdGLE9BQU9vQixHQUFrQkMsR0FBb0IsSUFBSSxFQUd0Q0MsR0FBc0J4QixvQkFDakMsQ0FBQzdzRixHQUFTaWdGLFlBQVdqOUIsY0FDbEIzZCxJQUNDLE1BQU02ekIsRUFBd0I3ekIsRUFBT3lJLGNBQWNvckIsd0JBRW5ELE9BQUs5K0IsR0FBQUEsSUFBSTZDLE1BQU1nakQsR0FFUkEsRUFDSmp2RCxRQUFPLENBQUNzOUQsRUFBZWxnRixFQUFVbWdGLEtBQ2hDLElBQUtuMEQsR0FBQUEsSUFBSTZDLE1BQU03dUIsR0FBVyxPQUFPa2dGLEVBRWpDLE1BQU1FLEVBQXFCcGdGLEVBQVM0aUIsUUFDbEMsQ0FBQ3k5RCxFQUFhQyxFQUFVQyxLQUN0QixJQUFLdjBELEdBQUFBLElBQUk2QyxNQUFNeXhELEdBQVcsT0FBT0QsRUFFakMsTUFBTUcsRUFBcUJGLEVBQ3hCLytDLFdBQ0FwaEIsUUFBTyxFQUFFenJCLEtBQVNvMkQsRUFBc0IvekQsU0FBU3JDLEtBQ2pEdUIsS0FBSSxFQUFFbWIsRUFBUWd5QixNQUFlLENBQzVCQSxXQUFXcFgsRUFBQUEsR0FBQUEsS0FBSSxDQUFFb1gsY0FDakJoeUIsU0FDQSt4QixLQUFNbzlDLEVBQ05KLGVBQ0F2ckMsU0FBVUEsRUFBUzltRCxPQUFPLENBQUNxeUYsRUFBY0ksRUFBWW52RSxRQUd6RCxPQUFPaXZFLEVBQVl2eUYsT0FBTzB5RixFQUFtQixJQUUvQ3owRCxFQUFBQSxHQUFBQSxTQUdGLE9BQU9tMEQsRUFBY3B5RixPQUFPc3lGLEVBQW1CLElBQzlDcjBELEVBQUFBLEdBQUFBLFNBQ0YwMEQsU0FBU0MsR0FBaUJBLEVBQWFQLGVBQ3ZDbHFGLEtBQUsrMEQsR0FBZUEsRUFBV3AzQixZQUMvQjhWLFdBOUIrQixDQUFDLENBOEJ0QixJQy9DbkIsY0EzQ2tCOG5DLEVBQUdLLFlBQVdqOUIsV0FBVWxWLGdCQUFlMkUsbUJBQ3ZELE1BQU1zOEMsRUFBZ0JqaEQsRUFBY3VnRCxvQkFBb0IsQ0FDdERwTyxZQUNBajlCLGFBRUlnc0MsRUFBZ0JqekYsT0FBT2dILEtBQUtnc0YsR0FFNUI1WSxFQUFxQjFqQyxFQUFhLHNCQUFzQixHQUU5RCxPQUE2QixJQUF6QnU4QyxFQUFjOXZGLE9BQXFCcW9DLEdBQUFBLFFBQUFBLGNBQUEsWUFBTSxnQkFHM0NBLEdBQUFBLFFBQUFBLGNBQUEsV0FDR3luRCxFQUFjM3FGLEtBQUtrcUYsR0FDbEJobkQsR0FBQUEsUUFBQUEsY0FBQSxPQUFLemtDLElBQUssR0FBR3lyRixLQUNYaG5ELEdBQUFBLFFBQUFBLGNBQUEsVUFBS2duRCxHQUVKUSxFQUFjUixHQUFjbHFGLEtBQUt5cUYsR0FDaEN2bkQsR0FBQUEsUUFBQUEsY0FBQzR1QyxFQUFrQixDQUNqQnJ6RSxJQUFLLEdBQUd5ckYsS0FBZ0JPLEVBQWF2OUMsUUFBUXU5QyxFQUFhdHZFLFNBQzFEczZDLEdBQUlnMUIsRUFBYXQ5QyxVQUNqQjJGLElBQUksWUFDSjMzQixPQUFRc3ZFLEVBQWF0dkUsT0FDckIreEIsS0FBTXU5QyxFQUFhdjlDLEtBQ25CeVIsU0FBVThyQyxFQUFhOXJDLFNBQ3ZCbzBCLGVBQWUsU0FLbkIsRUM5QkgsTUFBTTZYLDJCQUE2QkEsQ0FBQ2p4QixFQUFha3hCLEVBQVd4VCxFQUFtQmwrRCxLQUNwRixNQUFNMnhFLEVBQWlCbnhCLEVBQVkxZ0MsTUFBTSxDQUFDLFVBQVc0eEQsTUFBZTcwRCxFQUFBQSxHQUFBQSxjQUM5RDZDLEVBQVNpeUQsRUFBZTl0RixJQUFJLFVBQVVnNUIsRUFBQUEsR0FBQUEsZUFBY3VELE9BRXBEd3hELE9BQW9EdHhGLElBQW5DcXhGLEVBQWU5dEYsSUFBSSxZQUNwQ2d1RixFQUFnQkYsRUFBZTl0RixJQUFJLFdBQ25DbTdFLEVBQW1CNFMsRUFDckJELEVBQWU3eEQsTUFBTSxDQUNyQixXQUNBbytDLEVBQ0EsVUFFQTJULEVBVUosT0FBT2xyRCxVQVJjM21CLEVBQUdteEMsZ0JBQ3RCenhCLEVBQ0FneUQsRUFDQSxDQUNFMXFDLGtCQUFrQixHQUVwQmc0QixHQUU0QixFQW9UaEMsaUJBL1NvQnFELEVBQ2xCOU8sb0JBQ0EvUyxjQUNBcUYsbUJBQ0FDLDhCQUNBNGMsb0JBQ0F6dEMsZUFDQXRMLGFBQ0EyRyxnQkFDQXR3QixLQUNBMDVDLGNBQ0F2VCxZQUNBWCxXQUNBdUosV0FDQSt6Qix1QkFDQTVFLG9CQUNBeUUsMEJBQ0FsUCxvQ0FFQSxNQUFNcWUsV0FBY2xvRixJQUNsQm1sRCxFQUFTbmxELEVBQUU1TCxPQUFPZ3lELE1BQU0sR0FBRyxFQUV2QitoQyxxQkFBd0J6c0YsSUFDNUIsSUFBSStHLEVBQVUsQ0FDWi9HLE1BQ0E4OUUsb0JBQW9CLEVBQ3BCQyxjQUFjLEdBT2hCLE1BSnlCLGFBREZ2ZCxFQUE0QmppRSxJQUFJeUIsRUFBSyxjQUUxRCtHLEVBQVErMkUsb0JBQXFCLEdBR3hCLzJFLENBQU8sRUFHVnFoRCxFQUFXelksRUFBYSxZQUFZLEdBQ3BDOFIsRUFBZTlSLEVBQWEsZ0JBQzVCKzhDLEVBQW9CLzhDLEVBQWEscUJBQ2pDb1MsRUFBZ0JwUyxFQUFhLGlCQUFpQixHQUM5Q3ErQixFQUE4QnIrQixFQUFhLCtCQUMzQ2c5QixFQUFVaDlCLEVBQWEsV0FDdkJrdUMsRUFBd0JsdUMsRUFBYSwwQkFFckMscUJBQUVtdkMsR0FBeUJ6NkMsSUFFM0Jzb0QsRUFBeUJ6eEIsR0FBYTM4RCxJQUFJLGdCQUFrQixLQUM1RCs4RCxFQUFxQkosR0FBYTM4RCxJQUFJLFlBQWMsSUFBSWc1QixHQUFBQSxXQUM5RDY4QixFQUFjQSxHQUFla0gsRUFBbUIvZ0MsU0FBU3hrQixTQUFXLEdBRXBFLE1BQU1zMkUsRUFBaUIvd0IsRUFBbUIvOEQsSUFBSTYxRCxLQUFnQjc4QixFQUFBQSxHQUFBQSxjQUN4RHExRCxFQUFxQlAsRUFBZTl0RixJQUFJLFVBQVVnNUIsRUFBQUEsR0FBQUEsZUFDbERzMUQsRUFBeUJSLEVBQWU5dEYsSUFBSSxXQUFZLE1BQ3hEdXVGLEVBQXFCRCxHQUF3QnRyRixLQUFJLENBQUMweEMsRUFBV2p6QyxLQUNqRSxNQUFNMlAsRUFBTXNqQyxHQUFXMTBDLElBQUksUUFBUyxNQVNwQyxPQVJHb1IsSUFDRHNqQyxFQUFZQSxFQUFVejBDLElBQUksUUFBUzJ0RiwyQkFDakNqeEIsRUFDQTlHLEVBQ0FwMEQsRUFDQTBhLEdBQ0MvSyxJQUVFc2pDLENBQVMsSUFNbEJtcUMsRUFBb0IvbEQsR0FBQUEsS0FBSzBHLE9BQU9xL0MsR0FBcUJBLEdBQW9CL2xELEVBQUFBLEdBQUFBLFFBT3pFLEdBTDZCM2MsRUFBRzJ2QyxxQkFDOUJnaUMsR0FBZ0I5dEYsSUFBSSxVQUNwQjYxRCxHQUtBLENBQ0EsTUFBTWxKLEVBQVF2YixFQUFhLFNBRTNCLE9BQUlrUixFQU1HcGMsR0FBQUEsUUFBQUEsY0FBQ3ltQixFQUFLLENBQUN4dkQsS0FBTSxPQUFRK3RELFNBQVUraUMsYUFMN0IvbkQsR0FBQUEsUUFBQUEsY0FBQSxTQUFHLHdDQUM2QkEsR0FBQUEsUUFBQUEsY0FBQSxZQUFPMnZCLEdBQW1CLGdCQUtyRSxDQUdBLElBQUtpNEIsRUFBZXhoRixLQUNsQixPQUFPLEtBS1QsR0FGd0I2UCxFQUFHcXpDLGNBQWNzK0IsRUFBZTl0RixJQUFJLFVBQVcsWUFLbkQsc0NBQWhCNjFELEdBQ3NDLElBQXRDQSxFQUFZN3hELFFBQVEsZ0JBRXRCcXFGLEVBQW1CcnVGLElBQUksY0FBY2c1QixFQUFBQSxHQUFBQSxlQUFjMXNCLEtBQU8sRUFDMUQsQ0FDQSxNQUFNbS9DLEVBQWlCcmEsRUFBYSxrQkFDOUIrdEMsRUFBZS90QyxFQUFhLGdCQUM1Qm85QyxFQUFpQkgsRUFBbUJydUYsSUFBSSxjQUFjZzVCLEVBQUFBLEdBQUFBLGVBRzVELE9BRkFncEMsRUFBbUJqcEMsR0FBQUEsSUFBSTZDLE1BQU1vbUMsR0FBb0JBLEdBQW1CaHBDLEVBQUFBLEdBQUFBLGNBRTdEa04sR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxtQkFDbEIwMUMsR0FDQWxvRCxHQUFBQSxRQUFBQSxjQUFDMmpCLEVBQVEsQ0FBQ3ZzQyxPQUFROHdFLElBRXBCbG9ELEdBQUFBLFFBQUFBLGNBQUEsYUFDRUEsR0FBQUEsUUFBQUEsY0FBQSxhQUVJbk4sR0FBQUEsSUFBSTZDLE1BQU00eUQsSUFBbUJBLEVBQWVsZ0QsV0FBV3RyQyxLQUFJLEVBQUV2QixFQUFLbzZCLE1BQ2hFLEdBQUlBLEVBQU83N0IsSUFBSSxZQUFhLE9BRTVCLE1BQU00QyxFQUFRaTVCLEVBQU83N0IsSUFBSSxVQUFVQSxJQUFJLElBQUl1OEIsT0FDckM0dEIsRUFBUXR1QixFQUFPNzdCLElBQUksVUFBVUEsSUFBSSxJQUFJdThCLE9BQzNDVixHQUFTMUMsRUFBQUEsR0FBQUEsUUFBT2hkLEVBQUdrMkMsZ0JBQWdCeDJCLEVBQU9VLE9BQVEzNUIsR0FBU3VuRCxHQUFTLENBQUMsSUFFckUsSUFBSWczQixFQUFZWixFQUF1Qjc5QyxvQkFBb0I3RyxHQUFVLEtBQ3JFLE1BQU1ncUIsRUFBV3dvQyxFQUFtQnJ1RixJQUFJLFlBQVk4NEIsRUFBQUEsR0FBQUEsU0FBUWgxQixTQUFTckMsR0FDL0RtcUQsRUFBYXp2QyxFQUFHMHZDLG9CQUFvQmh3QixHQUNwQzR5RCxFQUFrQnR5RSxFQUFHMnhDLHlCQUF5Qmp5QixHQUM5Qyt4QixFQUFrQnp4QyxFQUFHMHZDLG9CQUFvQmh3QixHQUFRNzdCLElBQUksVUFDckRpSSxFQUFTNHpCLEVBQU83N0IsSUFBSSxVQUNwQnNwRCxFQUFjenRCLEVBQU83N0IsSUFBSSxlQUN6QjB1RixFQUFlMXNCLEVBQWlCL2xDLE1BQU0sQ0FBQ3g2QixFQUFLLFVBQzVDa3RGLEVBQWdCM3NCLEVBQWlCL2xDLE1BQU0sQ0FBQ3g2QixFQUFLLFlBQWNvOUUsRUFDM0QrUCxFQUFXM3NCLEVBQTRCamlFLElBQUl5QixLQUFRLEVBRXpELElBQUl1eEUsRUFBZTcyRCxFQUFHbXhDLGdCQUFnQnp4QixHQUFRLEVBQU8sQ0FDbkRzbkIsa0JBQWtCLEtBR0MsSUFBakI2dkIsSUFDRkEsRUFBZSxTQUdJLElBQWpCQSxJQUNGQSxFQUFlLEtBR1csaUJBQWpCQSxHQUE0QyxXQUFmcG5CLElBQ3ZDb25CLEVBQWVsd0MsVUFBVWt3QyxJQUdFLGlCQUFqQkEsR0FBNEMsVUFBZnBuQixJQUN0Q29uQixFQUFlcHpDLEtBQUtDLE1BQU1tekMsSUFHNUIsTUFBTWxuQixFQUF1QjN2QyxFQUFHMnZDLHFCQUFxQmp3QixHQUUvQ3dsRCxFQUFpQm43QyxHQUFBQSxRQUFBQSxjQUFDdWxCLEVBQWMsQ0FDcEN0dkMsR0FBSUEsRUFDSnV2QyxzQkFBdUJJLEVBQ3ZCandCLE9BQVFBLEVBQ1J5dEIsWUFBYTduRCxFQUNiMnZDLGFBQWNBLEVBQ2RuMkMsV0FBd0J3QixJQUFqQml5RixFQUE2QjFiLEVBQWUwYixFQUNuRDdvQyxTQUFVQSxFQUNWcnJDLE9BQVFtMEUsRUFDUnpqQyxTQUFXandELElBQ1Rpd0QsRUFBU2p3RCxFQUFPLENBQUN3RyxHQUFLLElBSTFCLE9BQU95a0MsR0FBQUEsUUFBQUEsY0FBQSxNQUFJemtDLElBQUtBLEVBQUtpM0MsVUFBVSxhQUFhLHFCQUFvQmozQyxHQUNoRXlrQyxHQUFBQSxRQUFBQSxjQUFBLE1BQUl3UyxVQUFVLHVCQUNaeFMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBV21OLEVBQVcsMkJBQTZCLG1CQUNwRHBrRCxFQUNDb2tELEVBQWtCM2YsR0FBQUEsUUFBQUEsY0FBQSxZQUFNLE1BQWIsTUFFaEJBLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsbUJBQ1grMUMsRUFDQXhtRixHQUFVaStCLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsZUFBYyxLQUFHendDLEVBQU8sS0FDbERzNEUsR0FBeUJZLEVBQVU3MEUsS0FBYzYwRSxFQUFVN3lDLFdBQVd0ckMsS0FBSSxFQUFFdkIsRUFBS3ljLEtBQU9nb0IsR0FBQUEsUUFBQUEsY0FBQ2k1QyxFQUFZLENBQUMxOUUsSUFBSyxHQUFHQSxLQUFPeWMsSUFBS3k2RCxLQUFNbDNFLEVBQUttM0UsS0FBTTE2RCxNQUFqRyxNQUU5Q2dvQixHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLHlCQUNYN2MsRUFBTzc3QixJQUFJLGNBQWdCLGFBQWMsT0FHL0NrbUMsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSw4QkFDWnhTLEdBQUFBLFFBQUFBLGNBQUMyakIsRUFBUSxDQUFDdnNDLE9BQVNnc0MsSUFDbEJoSCxFQUFZcGMsR0FBQUEsUUFBQUEsY0FBQSxXQUNNLFdBQWYwbEIsR0FBK0MsV0FBcEJnQyxFQUMzQjFuQixHQUFBQSxRQUFBQSxjQUFDZ2QsRUFBWSxDQUNYOVIsYUFBY0EsRUFDZHVRLFNBQVVBLEVBQVMvakQsS0FBSyxVQUN4QmtvQyxXQUFZQSxFQUNad2MsVUFBV0EsRUFDWDdWLGNBQWVBLEVBQ2Y1USxPQUFRQSxFQUNSMG1CLFFBQVM4K0IsSUFFUEEsRUFFTHg3QixFQUFXLEtBQ1YzZixHQUFBQSxRQUFBQSxjQUFDbzVDLEVBQXFCLENBQ3BCcDBCLFNBQVdqd0QsR0FBVWdrRixFQUFxQng5RSxFQUFLeEcsR0FDL0N5a0YsV0FBWWtQLEVBQ1p2UCxrQkFBbUI2TyxxQkFBcUJ6c0YsR0FDeENpckQsV0FBWXR0RCxNQUFNMkQsUUFBUTJyRixHQUF3QyxJQUF4QkEsRUFBYTd3RixRQUFnQjhsQyxhQUFhK3FELE1BR2pGLE1BRU4sTUFNakIsQ0FFQSxNQUFNRyxFQUFvQmpCLDJCQUN4Qmp4QixFQUNBOUcsRUFDQXdrQixFQUNBbCtELEdBRUYsSUFBSTZrQyxFQUFXLEtBQ1F1NUIsa0NBQWtDc1UsS0FFdkQ3dEMsRUFBVyxRQUViLE1BQU11QixFQUFVRCxFQUFZcGMsR0FBQUEsUUFBQUEsY0FBQ2lvRCxFQUFpQixDQUMxQ2x6RixNQUFPK21FLEVBQ1B4bkQsT0FBUXFrRSxFQUNSVyxhQUFjcVAsRUFDZDNqQyxTQUFVQSxFQUNWOVosYUFBY0EsSUFDWGxMLEdBQUFBLFFBQUFBLGNBQUNzZCxFQUFhLENBQUM5SyxVQUFVLHNCQUFzQnNJLFNBQVVBLEdBQzNEbGUsVUFBVWsvQixJQUFxQjZzQixHQUdwQyxPQUFPM29ELEdBQUFBLFFBQUFBLGNBQUEsV0FDSGtvRCxHQUNBbG9ELEdBQUFBLFFBQUFBLGNBQUMyakIsRUFBUSxDQUFDdnNDLE9BQVE4d0UsSUFHbEJHLEVBQ0Vyb0QsR0FBQUEsUUFBQUEsY0FBQ3VwQyxFQUEyQixDQUN4QkMsa0JBQW1CQSxFQUNuQm5CLFNBQVVnZ0IsRUFDVjNkLFdBQVl5SixFQUNacEssc0JBQXVCak8sRUFDdkJ3TSxTQXpMb0Ivc0UsSUFDNUJxOUUsRUFBd0JyOUUsRUFBSSxFQXlMcEJvdUUsWUFBYTNrQixFQUNibzJCLHVCQUF1QixFQUN2Qmx3QyxhQUFjQSxFQUNkdytCLDhCQUErQkEsSUFFakMsS0FFTjFwQyxHQUFBQSxRQUFBQSxjQUFDZ2QsRUFBWSxDQUNYOVIsYUFBZUEsRUFDZnRMLFdBQWFBLEVBQ2IyRyxjQUFnQkEsRUFDaEJ5WCxZQUFhLEVBQ2I1QixVQUFXQSxFQUNYem1CLE9BQVFpeUQsRUFBZTl0RixJQUFJLFVBQzNCMmhELFNBQVVBLEVBQVMvakQsS0FBSyxVQUFXaTRELEdBQ25DdFQsUUFBU0EsRUFDVFksa0JBQWtCLElBR2xCb3JDLEVBQ0Vyb0QsR0FBQUEsUUFBQUEsY0FBQ2tvQyxFQUFPLENBQ043ckIsUUFBU2dzQyxFQUFtQnZ1RixJQUFJcTZFLEdBQ2hDanBDLGFBQWNBLEVBQ2R0TCxXQUFZQSxJQUVaLEtBRUYsRUNyVFIsTUFBTWcxQyxxQ0FBc0JqakQsR0FBQUEsVUFDMUJzWixNQUFBQSxHQUNFLE1BQU0sS0FBRStxQyxFQUFJLEtBQUV6Z0YsRUFBSSxhQUFFMjFDLEdBQWlCaDJDLEtBQUtzeUIsTUFFcENtOEIsRUFBV3pZLEVBQWEsWUFBWSxHQUUxQyxJQUFJMDlDLEVBQVc1UyxFQUFLbDhFLElBQUksZ0JBQWtCazhFLEVBQUtsOEUsSUFBSSxnQkFDL0M2NkQsRUFBYXFoQixFQUFLbDhFLElBQUksZUFBaUJrOEUsRUFBS2w4RSxJQUFJLGNBQWN1OEIsT0FDOUQrc0IsRUFBYzR5QixFQUFLbDhFLElBQUksZUFFM0IsT0FBT2ttQyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGtCQUNwQnhTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsZUFDYnhTLEdBQUFBLFFBQUFBLGNBQUEsU0FBR0EsR0FBQUEsUUFBQUEsY0FBQSxZQUFPenFDLElBQ1I2dEQsRUFBY3BqQixHQUFBQSxRQUFBQSxjQUFDMmpCLEVBQVEsQ0FBQ3ZzQyxPQUFRZ3NDLElBQTJCLE1BRS9EcGpCLEdBQUFBLFFBQUFBLGNBQUEsV0FBSyxjQUNTNG9ELEVBQVMsSUFBQzVvRCxHQUFBQSxRQUFBQSxjQUFBLFdBQU1BLEdBQUFBLFFBQUFBLGNBQUEsV0FBTSxjQVExQyxTQUFTNm9ELFVBQVV2dkYsRUFBRzJQLEdBQ3BCLEdBQXFCLGlCQUFYQSxFQUF1QixNQUFPLEdBQ3hDLE9BQU9BLEVBQ0owTSxNQUFNLE1BQ043WSxLQUFJLENBQUMyMEMsRUFBTXQ0QyxJQUFNQSxFQUFJLEVBQUlELE1BQU1JLEVBQUksR0FBR3lELEtBQUssS0FBTzAwQyxFQUFPQSxJQUN6RDEwQyxLQUFLLEtBQ1YsQ0Fib0I4ckYsQ0FBVSxFQUFHbnZELEtBQUtrRCxVQUFVKzNCLEVBQVksS0FBTSxLQUFPLEtBQUszMEIsR0FBQUEsUUFBQUEsY0FBQSxZQUc1RSxFQWtCRixvQ0M4R0EsdUJBaEpnQjhvRCxFQUNkM0YsVUFDQW5ZLGdCQUNBMkYsb0JBQ0FDLHlCQUNBQyxvQkFDQUUsOEJBRUEsTUFFTWdZLEdBREo1RixFQUFRcm5ELE1BQU14VCxHQUFNQSxFQUFFeHVCLElBQUksU0FBV2t4RSxNQUFrQmw0QyxFQUFBQSxHQUFBQSxlQUUvQmg1QixJQUFJLGVBQWdCZzVCLEVBQUFBLEdBQUFBLGNBQ3hDazJELEVBQTBELElBQW5DRCxFQUEwQjNpRixNQUV2RDhyQixFQUFBQSxHQUFBQSxZQUFVLEtBQ0o4NEMsR0FHSjJGLEVBQWtCd1MsRUFBUTd4RSxTQUFTeFgsSUFBSSxPQUFPLEdBQzdDLEtBRUhvNEIsRUFBQUEsR0FBQUEsWUFBVSxLQUVSLE1BQU0rMkQsRUFBMEI5RixFQUFRcm5ELE1BQ3JDNC9CLEdBQVdBLEVBQU81aEUsSUFBSSxTQUFXa3hFLElBRXBDLElBQUtpZSxFQUVILFlBREF0WSxFQUFrQndTLEVBQVE3eEUsUUFBUXhYLElBQUksU0FLdENtdkYsRUFBd0JudkYsSUFBSSxlQUFnQmc1QixFQUFBQSxHQUFBQSxlQUNwQmgyQixLQUFJLENBQUNvTyxFQUFLM1AsS0FDbENxMUUsRUFBdUIsQ0FDckJsVixPQUFRc1AsRUFDUnp2RSxNQUNBMlAsSUFBS0EsRUFBSXBSLElBQUksWUFBYyxJQUMzQixHQUNGLEdBQ0QsQ0FBQ2t4RSxFQUFlbVksSUFFbkIsTUFBTStGLEdBQXFCbDNELEVBQUFBLEdBQUFBLGNBQ3hCbnlCLElBQ0M4d0UsRUFBa0I5d0UsRUFBRTVMLE9BQU9jLE1BQU0sR0FFbkMsQ0FBQzQ3RSxJQUdHd1ksR0FBNkJuM0QsRUFBQUEsR0FBQUEsY0FDaENueUIsSUFDQyxNQUFNdXBGLEVBQWV2cEYsRUFBRTVMLE9BQU84c0QsYUFBYSxpQkFDckNzb0MsRUFBbUJ4cEYsRUFBRTVMLE9BQU9jLE1BRWxDNjdFLEVBQXVCLENBQ3JCbFYsT0FBUXNQLEVBQ1J6dkUsSUFBSzZ0RixFQUNMbCtFLElBQUttK0UsR0FDTCxHQUVKLENBQUN6WSxFQUF3QjVGLElBRzNCLE9BQ0VockMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxXQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxTQUFPaWxCLFFBQVEsV0FDYmpsQixHQUFBQSxRQUFBQSxjQUFBLFVBQ0VnbEIsU0FBVWtrQyxFQUNWbjBGLE1BQU9pMkUsRUFDUHp0QyxHQUFHLFdBRUY0bEQsRUFDRS81QyxXQUNBdHNDLEtBQUs0K0QsR0FDSjE3QixHQUFBQSxRQUFBQSxjQUFBLFVBQVFqckMsTUFBTzJtRSxFQUFPNWhFLElBQUksT0FBUXlCLElBQUttZ0UsRUFBTzVoRSxJQUFJLFFBQy9DNGhFLEVBQU81aEUsSUFBSSxPQUNYNGhFLEVBQU81aEUsSUFBSSxnQkFBa0IsTUFBTTRoRSxFQUFPNWhFLElBQUksb0JBR2xEMmdDLFlBR051dUQsR0FDQ2hwRCxHQUFBQSxRQUFBQSxjQUFBLFdBQ0VBLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVcsZ0JBQWdCLGdCQUU5QnhTLEdBQUFBLFFBQUFBLGNBQUEsWUFBTyt3QyxFQUF3Qi9GLEtBRWpDaHJDLEdBQUFBLFFBQUFBLGNBQUEsVUFBSSxvQkFDSkEsR0FBQUEsUUFBQUEsY0FBQSxhQUNFQSxHQUFBQSxRQUFBQSxjQUFBLGFBQ0crb0QsRUFBMEIzZ0QsV0FBV3RyQyxLQUFJLEVBQUV2SCxFQUFNMlYsS0FFOUM4MEIsR0FBQUEsUUFBQUEsY0FBQSxNQUFJemtDLElBQUtoRyxHQUNQeXFDLEdBQUFBLFFBQUFBLGNBQUEsVUFBS3pxQyxHQUNMeXFDLEdBQUFBLFFBQUFBLGNBQUEsVUFDRzkwQixFQUFJcFIsSUFBSSxRQUNQa21DLEdBQUFBLFFBQUFBLGNBQUEsVUFDRSxnQkFBZXpxQyxFQUNmeXZELFNBQVVta0MsR0FFVGorRSxFQUFJcFIsSUFBSSxRQUFRZ0QsS0FBS3FwRCxHQUVsQm5tQixHQUFBQSxRQUFBQSxjQUFBLFVBQ0VtK0MsU0FDRWg0QixJQUNBMHFCLEVBQWtCN0YsRUFBZXoxRSxHQUVuQ2dHLElBQUs0cUQsRUFDTHB4RCxNQUFPb3hELEdBRU5BLE1BTVRubUIsR0FBQUEsUUFBQUEsY0FBQSxTQUNFL29DLEtBQU0sT0FDTmxDLE1BQU84N0UsRUFBa0I3RixFQUFlejFFLElBQVMsR0FDakR5dkQsU0FBVW1rQyxFQUNWLGdCQUFlNXpGLFdBVy9CLEVDeklLLE1BQU1zdEYseUJBQXlCN2lELEdBQUFBLFFBQUFBLFVBUzVDaUwsTUFBQUEsR0FDRSxNQUFNLGNBQUMxRSxFQUFhLGNBQUVELEVBQWEsWUFBRXFwQyxFQUFXLGFBQUV6a0MsR0FBZ0JoMkMsS0FBS3N5QixNQUVqRTI3RCxFQUFVNThDLEVBQWM0OEMsVUFFeEIyRixFQUFVNTlDLEVBQWEsV0FFN0IsT0FBT2k0QyxHQUFXQSxFQUFRLzhFLEtBQ3hCNDVCLEdBQUFBLFFBQUFBLGNBQUEsV0FDRUEsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxpQkFBZ0IsV0FDaEN4UyxHQUFBQSxRQUFBQSxjQUFDOG9ELEVBQU8sQ0FDTjNGLFFBQVNBLEVBQ1RuWSxjQUFlMWtDLEVBQWNPLGlCQUM3QjhwQyxrQkFBbUJoQixFQUFZZ0Isa0JBQy9CQyx1QkFBd0JqQixFQUFZaUIsdUJBQ3BDQyxrQkFBbUJ2cUMsRUFBY3dxQyxvQkFDakNDLHdCQUF5QnpxQyxFQUFjTSx3QkFFaEMsSUFDZixFQzFCRixNQUFNdTVDLEdBQU8vckYsU0FBU0MsVUFFUCxNQUFNNHpGLDBCQUEwQnIyRCxHQUFBQSxjQVU3Q3dwQixvQkFBc0IsQ0FDcEI0SixTQUFVbTdCLEdBQ1YzVyxtQkFBbUIsR0FHckJodEUsV0FBQUEsQ0FBWWdyQixFQUFPaHRCLEdBQ2pCaWEsTUFBTStTLEVBQU9odEIsR0FFYnRGLEtBQUt1RCxNQUFRLENBQ1gxRCxNQUFPNm5DLFVBQVVwVixFQUFNenlCLFFBQVV5eUIsRUFBTTh4RCxjQU16Qzl4RCxFQUFNdzlCLFNBQVN4OUIsRUFBTXp5QixNQUN2QixDQUVBdTBGLGtCQUFxQnh0QyxJQUNuQixNQUFNLFNBQUVrSixFQUFRLGFBQUVzMEIsR0FBa0J4OUIsR0FBd0I1bUQsS0FBS3N5QixNQU1qRSxPQUpBdHlCLEtBQUs2bUQsU0FBUyxDQUNaaG5ELE1BQU91a0YsSUFHRnQwQixFQUFTczBCLEVBQWEsRUFHL0J0MEIsU0FBWWp3RCxJQUNWRyxLQUFLc3lCLE1BQU13OUIsU0FBU3BvQixVQUFVN25DLEdBQU8sRUFHdkN3MEYsWUFBYzFwRixJQUNaLE1BQU1vcEQsRUFBYXBwRCxFQUFFNUwsT0FBT2MsTUFFNUJHLEtBQUs2bUQsU0FBUyxDQUNaaG5ELE1BQU9rMEQsSUFDTixJQUFNL3pELEtBQUs4dkQsU0FBU2lFLElBQVksRUFHckNwTixnQ0FBQUEsQ0FBaUNDLEdBRTdCNW1ELEtBQUtzeUIsTUFBTXp5QixRQUFVK21ELEVBQVUvbUQsT0FDL0IrbUQsRUFBVS9tRCxRQUFVRyxLQUFLdUQsTUFBTTFELE9BRy9CRyxLQUFLNm1ELFNBQVMsQ0FDWmhuRCxNQUFPNm5DLFVBQVVrZixFQUFVL21ELFVBTTNCK21ELEVBQVUvbUQsT0FBUyttRCxFQUFVdzlCLGNBQWtCcGtGLEtBQUt1RCxNQUFNMUQsT0FHNURHLEtBQUtvMEYsa0JBQWtCeHRDLEVBRTNCLENBRUE3USxNQUFBQSxHQUNFLElBQUksYUFDRkMsRUFBWSxPQUNaNTJCLEdBQ0VwZixLQUFLc3lCLE9BRUwsTUFDRnp5QixHQUNFRyxLQUFLdUQsTUFFTCt3RixFQUFZbDFFLEVBQU9sTyxLQUFPLEVBQzlCLE1BQU04aUQsRUFBV2hlLEVBQWEsWUFFOUIsT0FDRWxMLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsY0FDYnhTLEdBQUFBLFFBQUFBLGNBQUNrcEIsRUFBUSxDQUNQMVcsV0FBV29MLEVBQUFBLEdBQUFBLFNBQUcsbUJBQW9CLENBQUV1TCxRQUFTcWdDLElBQzdDL29FLE1BQU9uTSxFQUFPbE8sS0FBT2tPLEVBQU92WCxLQUFLLE1BQVEsR0FDekNoSSxNQUFPQSxFQUNQaXdELFNBQVc5dkQsS0FBS3EwRixjQUt4QixFQ2xHYSxNQUFNRSxpQkFBaUJ6cEQsR0FBQUEsUUFBQUEsVUFXcEN4akMsV0FBQUEsQ0FBWWdyQixFQUFPaHRCLEdBQ2pCaWEsTUFBTStTLEVBQU9odEIsR0FDYixJQUFJLEtBQUVqRixFQUFJLE9BQUVvZ0MsR0FBV3pnQyxLQUFLc3lCLE1BQ3hCenlCLEVBQVFHLEtBQUsyeUUsV0FFakIzeUUsS0FBS3VELE1BQVEsQ0FDWGxELEtBQU1BLEVBQ05vZ0MsT0FBUUEsRUFDUjVnQyxNQUFPQSxFQUVYLENBRUE4eUUsUUFBQUEsR0FDRSxJQUFJLEtBQUV0eUUsRUFBSSxXQUFFeXlDLEdBQWU5eUMsS0FBS3N5QixNQUVoQyxPQUFPd2dCLEdBQWNBLEVBQVdqUyxNQUFNLENBQUN4Z0MsRUFBTSxTQUMvQyxDQUVBeXZELFNBQVdubEQsSUFDVCxJQUFJLFNBQUVtbEQsR0FBYTl2RCxLQUFLc3lCLE9BQ3BCLE1BQUV6eUIsRUFBSyxLQUFFUSxHQUFTc0ssRUFBRTVMLE9BRXBCa3pELEVBQVczeUQsT0FBT29qQyxPQUFPLENBQUMsRUFBRzFpQyxLQUFLdUQsTUFBTTFELE9BRXpDUSxFQUNENHhELEVBQVM1eEQsR0FBUVIsRUFFakJveUQsRUFBV3B5RCxFQUdiRyxLQUFLNm1ELFNBQVMsQ0FBRWhuRCxNQUFPb3lELElBQVksSUFBTW5DLEVBQVM5dkQsS0FBS3VELFFBQU8sRUFJaEV3eUMsTUFBQUEsR0FDRSxJQUFJLE9BQUV0VixFQUFNLGFBQUV1VixFQUFZLGFBQUUwdUIsRUFBWSxLQUFFcmtFLEVBQUksY0FBRWl4QyxHQUFrQnR4QyxLQUFLc3lCLE1BQ3ZFLE1BQU1pL0IsRUFBUXZiLEVBQWEsU0FDckI0OEIsRUFBTTU4QixFQUFhLE9BQ25CNjhCLEVBQU03OEIsRUFBYSxPQUNuQjA4QixFQUFZMThCLEVBQWEsYUFDekJ5WSxFQUFXelksRUFBYSxZQUFZLEdBQ3BDbVcsRUFBYW5XLEVBQWEsY0FBYyxHQUV4QzJYLEdBQVVsdEIsRUFBTzc3QixJQUFJLFdBQWEsSUFBSStKLGNBQ3RDbW1DLEVBQU94RCxFQUFjMEMsZUFBZTN6QyxHQUMxQyxJQUFJUixFQUFRRyxLQUFLMnlFLFdBQ2J2ekQsRUFBU3NsRCxFQUFhbG9CLFlBQVkxcUIsUUFBUXB4QixHQUFPQSxFQUFJa0UsSUFBSSxZQUFjdkUsSUFFM0UsR0FBYyxVQUFYc3RELEVBQW9CLENBQ3JCLElBQUloZSxFQUFXOXZDLEVBQVFBLEVBQU0rRSxJQUFJLFlBQWMsS0FDL0MsT0FBT2ttQyxHQUFBQSxRQUFBQSxjQUFBLFdBQ0xBLEdBQUFBLFFBQUFBLGNBQUEsVUFDRUEsR0FBQUEsUUFBQUEsY0FBQSxZQUFPenFDLEdBQVksa0JBRWpCeXFDLEdBQUFBLFFBQUFBLGNBQUNxaEIsRUFBVSxDQUFDclgsS0FBTUEsS0FFcEJuRixHQUFZN0UsR0FBQUEsUUFBQUEsY0FBQSxVQUFJLGNBQ2xCQSxHQUFBQSxRQUFBQSxjQUFDOG5DLEVBQUcsS0FDRjluQyxHQUFBQSxRQUFBQSxjQUFDMmpCLEVBQVEsQ0FBQ3ZzQyxPQUFTdWUsRUFBTzc3QixJQUFJLGtCQUVoQ2ttQyxHQUFBQSxRQUFBQSxjQUFDOG5DLEVBQUcsS0FDRjluQyxHQUFBQSxRQUFBQSxjQUFBLFNBQU9pbEIsUUFBUSx1QkFBc0IsYUFFbkNwZ0IsRUFBVzdFLEdBQUFBLFFBQUFBLGNBQUEsWUFBTSxJQUFHNkUsRUFBVSxLQUMxQjdFLEdBQUFBLFFBQUFBLGNBQUMrbkMsRUFBRyxLQUNGL25DLEdBQUFBLFFBQUFBLGNBQUN5bUIsRUFBSyxDQUNKbHBCLEdBQUcsc0JBQ0h0bUMsS0FBSyxPQUNMMG9ELFNBQVMsV0FDVHBxRCxLQUFLLFdBQ0wsYUFBVyxzQkFDWHl2RCxTQUFXOXZELEtBQUs4dkQsU0FDaEJnakIsV0FBUyxNQUtyQmhvQyxHQUFBQSxRQUFBQSxjQUFDOG5DLEVBQUcsS0FDRjluQyxHQUFBQSxRQUFBQSxjQUFBLFNBQU9pbEIsUUFBUSx1QkFBc0IsYUFFakNwZ0IsRUFBVzdFLEdBQUFBLFFBQUFBLGNBQUEsWUFBTSxZQUNOQSxHQUFBQSxRQUFBQSxjQUFDK25DLEVBQUcsS0FDRC9uQyxHQUFBQSxRQUFBQSxjQUFDeW1CLEVBQUssQ0FDSmxwQixHQUFHLHNCQUNIMHFDLGFBQWEsZUFDYjF5RSxLQUFLLFdBQ0wwQixLQUFLLFdBQ0wsYUFBVyxzQkFDWCt0RCxTQUFXOXZELEtBQUs4dkQsYUFNcEMxd0MsRUFBTzgwQixXQUFXdHNDLEtBQUssQ0FBQ3pDLEVBQU9rQixJQUN0QnlrQyxHQUFBQSxRQUFBQSxjQUFDNG5DLEVBQVMsQ0FBQ3Z0RSxNQUFRQSxFQUNSa0IsSUFBTUEsTUFJaEMsQ0FFQSxNQUFjLFdBQVhzbkQsRUFFQzdpQixHQUFBQSxRQUFBQSxjQUFBLFdBQ0VBLEdBQUFBLFFBQUFBLGNBQUEsVUFDRUEsR0FBQUEsUUFBQUEsY0FBQSxZQUFPenFDLEdBQVksbUJBRWpCeXFDLEdBQUFBLFFBQUFBLGNBQUNxaEIsRUFBVSxDQUFDclgsS0FBTUEsS0FFbEJqMUMsR0FBU2lyQyxHQUFBQSxRQUFBQSxjQUFBLFVBQUksY0FDZkEsR0FBQUEsUUFBQUEsY0FBQzhuQyxFQUFHLEtBQ0Y5bkMsR0FBQUEsUUFBQUEsY0FBQzJqQixFQUFRLENBQUN2c0MsT0FBU3VlLEVBQU83N0IsSUFBSSxrQkFFaENrbUMsR0FBQUEsUUFBQUEsY0FBQzhuQyxFQUFHLEtBQ0Y5bkMsR0FBQUEsUUFBQUEsY0FBQSxTQUFPaWxCLFFBQVEscUJBQW9CLFVBRWpDbHdELEVBQVFpckMsR0FBQUEsUUFBQUEsY0FBQSxZQUFNLFlBQ2RBLEdBQUFBLFFBQUFBLGNBQUMrbkMsRUFBRyxLQUNGL25DLEdBQUFBLFFBQUFBLGNBQUN5bUIsRUFBSyxDQUNKbHBCLEdBQUcsb0JBQ0h0bUMsS0FBSyxPQUNMLGFBQVcsb0JBQ1grdEQsU0FBVzl2RCxLQUFLOHZELFNBQ2hCZ2pCLFdBQVMsTUFNbkIxekQsRUFBTzgwQixXQUFXdHNDLEtBQUssQ0FBQ3pDLEVBQU9rQixJQUN0QnlrQyxHQUFBQSxRQUFBQSxjQUFDNG5DLEVBQVMsQ0FBQ3Z0RSxNQUFRQSxFQUN4QmtCLElBQU1BLE9BTVh5a0MsR0FBQUEsUUFBQUEsY0FBQSxXQUNMQSxHQUFBQSxRQUFBQSxjQUFBLFVBQUlBLEdBQUFBLFFBQUFBLGNBQUEsU0FBSXpxQyxHQUFTLDRDQUEwQyxJQUFJc3RELE1BRWpFLEVDdkphLE1BQU11dEIseUJBQXlCcHdDLEdBQUFBLFFBQUFBLFVBaUI1QzJ3QyxrQkFBcUJqVixJQUNuQixNQUFNLEtBQUUxeEIsRUFBSSxPQUFFL3hCLEdBQVcvaUIsS0FBS3N5QixNQUk5QixPQURBdHlCLEtBQUt3MEYsY0FDRXgwRixLQUFLc3lCLE1BQU1tcEQsa0JBQWtCalYsRUFBUSxHQUFHMXhCLEtBQVEveEIsSUFBUyxFQUdsRTI0RCx1QkFBMEJsdkUsSUFDeEIsTUFBTSxLQUFFc29DLEVBQUksT0FBRS94QixHQUFXL2lCLEtBQUtzeUIsTUFJOUIsT0FEQXR5QixLQUFLdzBGLGNBQ0V4MEYsS0FBS3N5QixNQUFNb3BELHVCQUF1QixJQUNwQ2x2RSxFQUNIby9CLFVBQVcsR0FBR2tKLEtBQVEveEIsS0FDdEIsRUFHSnk0RCxrQkFBb0JBLEtBQ2xCLE1BQU0sS0FBRTFtQyxFQUFJLE9BQUUveEIsR0FBVy9pQixLQUFLc3lCLE1BQzlCLE9BQU90eUIsS0FBS3N5QixNQUFNa3BELGtCQUFrQixHQUFHMW1DLEtBQVEveEIsSUFBUyxFQUcxRDQ0RCxrQkFBb0JBLENBQUNuVixFQUFRbmdFLEtBQzNCLE1BQU0sS0FBRXl1QyxFQUFJLE9BQUUveEIsR0FBVy9pQixLQUFLc3lCLE1BQzlCLE9BQU90eUIsS0FBS3N5QixNQUFNcXBELGtCQUFrQixDQUNsQy92QyxVQUFXLEdBQUdrSixLQUFRL3hCLElBQ3RCeWpELFVBQ0NuZ0UsRUFBSSxFQUdUdzFFLHdCQUEyQnJWLElBQ3pCLE1BQU0sS0FBRTF4QixFQUFJLE9BQUUveEIsR0FBVy9pQixLQUFLc3lCLE1BQzlCLE9BQU90eUIsS0FBS3N5QixNQUFNdXBELHdCQUF3QixDQUN4Q3JWLFNBQ0E1NkIsVUFBVyxHQUFHa0osS0FBUS94QixLQUN0QixFQUdKZ3pCLE1BQUFBLEdBQ0UsTUFBTSxpQkFFSnVsQyxFQUFnQixZQUNoQkMsRUFBVyxhQUdYdmxDLEdBQ0VoMkMsS0FBS3N5QixNQUVULElBQUlncEQsSUFBcUJDLEVBQ3ZCLE9BQU8sS0FHVCxNQUFNcVksRUFBVTU5QyxFQUFhLFdBRXZCeStDLEVBQW1CblosR0FBb0JDLEVBQ3ZDbVosRUFBYXBaLEVBQW1CLFlBQWMsT0FFcEQsT0FBT3h3QyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLHFDQUNwQnhTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsMEJBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGNBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLE1BQUl3UyxVQUFVLGlCQUFnQixhQUdsQ3hTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsK0JBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLE1BQUl3UyxVQUFVLFdBQVUsU0FDZm8zQyxFQUFXLHNEQUVwQjVwRCxHQUFBQSxRQUFBQSxjQUFDOG9ELEVBQU8sQ0FDTjNGLFFBQVN3RyxFQUNUM2UsY0FBZTkxRSxLQUFLdzdFLG9CQUNwQkMsa0JBQW1CejdFLEtBQUt5N0Usa0JBQ3hCQyx1QkFBd0IxN0UsS0FBSzA3RSx1QkFDN0JDLGtCQUFtQjM3RSxLQUFLMjdFLGtCQUN4QkUsd0JBQXlCNzdFLEtBQUs2N0UsMkJBSXRDLEVDM0ZGLFFBQ0VzSCxVQUFTLFVBQ1RvUixTQUNBblIsWUFBVyxhQUNYd1EsUUFBTyxtQkFDUGpHLGlCQUNBb0Ysa0JBQ0E3WCxpQkFDQXlaLGNBQWVqVixJQ1ZqQixNQUFNa1YsR0FBUyxJQUFJNUksR0FBQUEsV0FBVyxjQUM5QjRJLEdBQU9seEUsTUFBTW9wRSxNQUFNK0gsT0FBTyxDQUFDLFVBQzNCRCxHQUFPL3ZGLElBQUksQ0FBRThuRixXQUFZLFdBbUN6QixPQUFleUUsMEJBakNTM2lDLEVBQUd2c0MsU0FBUW83QixZQUFZLEdBQUk1UyxhQUFhQSxLQUFBLENBQVM0aEQsbUJBQW1CLFFBQzFGLEdBQXFCLGlCQUFYcHFFLEVBQ1IsT0FBTyxLQUdULEdBQUtBLEVBQVMsQ0FDWixNQUFNLGtCQUFFb3FFLEdBQXNCNWhELElBRXhCc2lELEVBQVlDLFVBREwySCxHQUFPNytDLE9BQU83ekIsR0FDTyxDQUFFb3FFLHNCQUVwQyxJQUFJd0ksRUFNSixNQUp3QixpQkFBZDlILElBQ1I4SCxFQUFVOUgsRUFBVXB6RSxRQUlwQmt4QixHQUFBQSxRQUFBQSxjQUFBLE9BQ0VvaUQsd0JBQXlCLENBQ3ZCQyxPQUFRMkgsR0FFVngzQyxXQUFXb0wsRUFBQUEsR0FBQUEsU0FBR3BMLEVBQVcscUJBRy9CLENBQ0EsT0FBTyxJQUFJLElDakNiLEdBQWU4ekMsMEJBQXlCLEVBQUdsMkMsU0FBUTVvQixNQUNqRCxNQUFNLE9BQ0ptTyxFQUFNLGFBQUV1VixFQUFZLGFBQUUwdUIsRUFBWSxXQUFFNXhCLEVBQVUsYUFBRSsrQixFQUFZLEtBQUV4eEUsRUFBSSxjQUFFaXhDLEdBQ2xFaGYsRUFFRWlpRSxFQUFXditDLEVBQWEsWUFJOUIsTUFBWSxTQUhDdlYsRUFBTzc3QixJQUFJLFFBSWZrbUMsR0FBQUEsUUFBQUEsY0FBQ3lwRCxFQUFRLENBQUNsdUYsSUFBTWhHLEVBQ2JvZ0MsT0FBU0EsRUFDVHBnQyxLQUFPQSxFQUNQcWtFLGFBQWVBLEVBQ2Y1eEIsV0FBYUEsRUFDYmtELGFBQWVBLEVBQ2Y4WixTQUFXK2hCLEVBQ1h2Z0MsY0FBaUJBLElBRXBCeEcsR0FBQUEsUUFBQUEsY0FBQ29RLEVBQVE1b0IsRUFDbEIsSUNuQkYsR0FBZTgrRCx5QkFBeUJ0WSxzQkNBeEMsTUFBTWljLHVCQUF1QnQ0RCxHQUFBQSxVQWEzQnNaLE1BQUFBLEdBQ0UsSUFBSSxXQUFFckwsRUFBVSxPQUFFakssRUFBUXlhLElBQUs4TixHQUFVaHBELEtBQUtzeUIsTUFDMUN5MEIsRUFBVSxDQUFDLGFBRVgxaEQsRUFBVSxLQU9kLE9BUmdELElBQTdCbzdCLEVBQU83N0IsSUFBSSxnQkFJNUJtaUQsRUFBUXZrRCxLQUFLLGNBQ2I2QyxFQUFVeWxDLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsNEJBQTJCLGdCQUdoRHhTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVd5SixFQUFRbC9DLEtBQUssTUFDakN4QyxFQUNEeWxDLEdBQUFBLFFBQUFBLGNBQUNrZSxHQUFLdEwsRUFBQUEsR0FBQUEsU0FBQSxHQUFNMTlDLEtBQUtzeUIsTUFBSyxDQUNwQm9ZLFdBQWFBLEVBQ2JsWCxNQUFRLEVBQ1JzMUIsWUFBYzlvRCxLQUFLc3lCLE1BQU13MkIsYUFBZSxLQUc5QyxFQUdGLE9BQWVzb0MseUJBQXlCMkQsZ0JDcEN4QyxHQUFlM0QsMEJBQXlCLEVBQUdsMkMsU0FBUTVvQixNQUNqRCxNQUFNLE9BQ0ptTyxFQUFNLGFBQ051VixFQUFZLE9BQ1o1MkIsRUFBTSxTQUNOMHdDLEVBQVEsR0FDUi91QyxHQUNFdVIsRUFFRW8rQixFQUF1QjN2QyxFQUFHMnZDLHFCQUFxQmp3QixHQUMvQzh3QixFQUFRdmIsRUFBYSxTQUUzQixPQUFJMGEsRUFDSzVsQixHQUFBQSxRQUFBQSxjQUFDeW1CLEVBQUssQ0FBQ3h2RCxLQUFLLE9BQ0p1N0MsVUFBWWwrQixFQUFPM2MsT0FBUyxVQUFZLEdBQ3hDOG9CLE1BQVFuTSxFQUFPM2MsT0FBUzJjLEVBQVMsR0FDakMwd0MsU0FBV25sRCxJQUNUbWxELEVBQVNubEQsRUFBRTVMLE9BQU9neUQsTUFBTSxHQUFHLEVBRTdCUixTQUFVclYsRUFBSW9XLGFBRXRCeG1CLEdBQUFBLFFBQUFBLGNBQUNvUSxFQUFRNW9CLEVBQ2xCLElDbEJGLElBQ0VtOEIsU0FBUSxHQUNSd2pCLFNBQVEsR0FDUm9ZLGVoQndCSyxTQUFTMkssMEJBQTBCdjRELEdBQ3hDLE1BQU8sQ0FBQ3llLEVBQUt0UyxJQUFZdFcsR0FDc0IsbUJBQWxDc1csRUFBT3lJLGVBQWVrZ0QsUUFDM0Izb0QsRUFBT3lJLGNBQWNrZ0QsVUFDaEJ6bUQsR0FBQUEsUUFBQUEsY0FBQ3JPLEdBQVNpaEIsRUFBQUEsR0FBQUEsU0FBQSxHQUFLcHJCLEVBQVdzVyxFQUFNLENBQUVzUyxJQUFLQSxLQUV2Q3BRLEdBQUFBLFFBQUFBLGNBQUNvUSxFQUFRNW9CLElBR2xCcnZCLFFBQVFDLEtBQUssb0NBQ04sS0FHYixDaUI1Q0EsRUFBMENvdkIsSUFDeEMsTUFBTSxJQUFFNG9CLEdBQVE1b0IsRUFDaEIsT0FBT3dZLEdBQUFBLFFBQUFBLGNBQUNvUSxFQUFHLENBQUNzdkMsV0FBVyxPQUFRLElETS9CMTVCLGtCQUFpQixHQUNqQnpKLE1BQU8yQixHQUNQOGxDLHFCQUFzQmhXLElFVmpCLE1BQU1tYyxHQUF5QixtQkFDekJDLEdBQTRCLDhCQUM1QkMsR0FBd0Msb0NBQ3hDQyxHQUFnQyxrQ0FDaENDLEdBQWdDLGtDQUNoQ0MsR0FBOEIsZ0NBQzlCQyxHQUErQixpQ0FDL0JDLEdBQStCLGlDQUMvQkMsR0FBa0MsdUNBQ2xDQyxHQUFvQyx5Q0FDcENDLEdBQTJCLGdDQUVqQyxTQUFTbGEsa0JBQW1CbWEsRUFBbUJocUQsR0FDcEQsTUFBTyxDQUNMN3BDLEtBQU1rekYsR0FDTnAyRCxRQUFTLENBQUMrMkQsb0JBQW1CaHFELGFBRWpDLENBRU8sU0FBUzR3QyxxQkFBcUIsTUFBRTM4RSxFQUFLLFdBQUUwK0QsSUFDNUMsTUFBTyxDQUNMeDhELEtBQU1tekYsR0FDTnIyRCxRQUFTLENBQUVoL0IsUUFBTzArRCxjQUV0QixDQUVPLE1BQU1pVyw4QkFBZ0NBLEVBQUczMEUsUUFBTzArRCxpQkFDOUMsQ0FDTHg4RCxLQUFNb3pGLEdBQ050MkQsUUFBUyxDQUFFaC9CLFFBQU8wK0QsZ0JBS2YsU0FBU3VsQix5QkFBeUIsTUFBRWprRixFQUFLLFdBQUUwK0QsRUFBVSxLQUFFbCtELElBQzVELE1BQU8sQ0FDTDBCLEtBQU1xekYsR0FDTnYyRCxRQUFTLENBQUVoL0IsUUFBTzArRCxhQUFZbCtELFFBRWxDLENBRU8sU0FBU29nRix5QkFBeUIsS0FBRXBnRixFQUFJLFdBQUVrK0QsRUFBVSxZQUFFbWlCLEVBQVcsWUFBRUMsSUFDeEUsTUFBTyxDQUNMNStFLEtBQU1zekYsR0FDTngyRCxRQUFTLENBQUV4K0IsT0FBTWsrRCxhQUFZbWlCLGNBQWFDLGVBRTlDLENBRU8sU0FBU29DLHVCQUF1QixNQUFFbGpGLEVBQUssV0FBRTArRCxJQUM5QyxNQUFPLENBQ0x4OEQsS0FBTXV6RixHQUNOejJELFFBQVMsQ0FBRWgvQixRQUFPMCtELGNBRXRCLENBRU8sU0FBU3dmLHdCQUF3QixNQUFFbCtFLEVBQUssS0FBRWkxQyxFQUFJLE9BQUUveEIsSUFDckQsTUFBTyxDQUNMaGhCLEtBQU13ekYsR0FDTjEyRCxRQUFTLENBQUVoL0IsUUFBT2kxQyxPQUFNL3hCLFVBRTVCLENBRU8sU0FBUzI0RCx3QkFBd0IsT0FBRWxWLEVBQU0sVUFBRTU2QixFQUFTLElBQUV2bEMsRUFBRyxJQUFFMlAsSUFDaEUsTUFBTyxDQUNMalUsS0FBTXl6RixHQUNOMzJELFFBQVMsQ0FBRTJuQyxTQUFRNTZCLFlBQVd2bEMsTUFBSzJQLE9BRXZDLENBRU8sTUFBTTR3RSw0QkFBOEJBLEVBQUc5eEMsT0FBTS94QixTQUFRZytDLHVCQUNuRCxDQUNMaC9ELEtBQU0wekYsR0FDTjUyRCxRQUFTLENBQUVpVyxPQUFNL3hCLFNBQVFnK0Msc0JBSWhCd2xCLDhCQUFnQ0EsRUFBR3p4QyxPQUFNL3hCLGFBQzdDLENBQ0xoaEIsS0FBTTJ6RixHQUNONzJELFFBQVMsQ0FBRWlXLE9BQU0veEIsWUFJUmlnRSw2QkFBK0JBLEVBQUd6a0IsaUJBQ3RDLENBQ0x4OEQsS0FBTTJ6RixHQUNONzJELFFBQVMsQ0FBRWlXLEtBQU15cEIsRUFBVyxHQUFJeDdDLE9BQVF3N0MsRUFBVyxNQUkxQ3MzQixzQkFBd0JBLEVBQUd0M0IsaUJBQy9CLENBQ0x4OEQsS0FBTzR6RixHQUNQOTJELFFBQVMsQ0FBRTAvQixnQkNoR2YsSUFJSSxHQUpJLFNBQVNqMUQsR0FDaEIsSUFBSUQsRUFBSSxDQUFDLEVBQWdDLE9BQTdCdXlCLG9CQUFvQmx4QixFQUFFckIsRUFBR0MsR0FBV0QsQ0FDakQsQ0FFbUMsQ0FBRSxDQUFFLFFBQWEsV0FBYSxPQUFPeXNGLEdBQWtFLE9BQUcsSUNRN0ksTUFBTTFGLHdCQUNIeGpELEdBQ0QsQ0FBQ3JwQyxLQUFVdEUsSUFDVjJwQyxJQUNDLEdBQUlBLEVBQU9oRyxZQUFZeU8sY0FBYzlRLFNBQVUsQ0FDN0MsTUFBTWt4RCxFQUFnQjdrRCxFQUFTcnBDLEtBQVV0RSxHQUN6QyxNQUFnQyxtQkFBbEJ3eUYsRUFDVkEsRUFBYzdvRCxHQUNkNm9ELENBQ04sQ0FDRSxPQUFPLElBQ1QsRUEwQkosTUFlYTkvQyxHQUFpQnkrQyx5QkFBUyxDQUFDN3NGLEVBQU9xb0MsS0FDN0MsTUFBTWtKLEVBQU9sSixFQUFZLENBQUNBLEVBQVcsa0JBQW9CLENBQUMsa0JBQzFELE9BQU9yb0MsRUFBTXM5QixNQUFNaVUsSUFBUyxFQUFFLElBR25COHhCLEdBQW1Cd3BCLHlCQUFTLENBQUM3c0YsRUFBT3V4QyxFQUFNL3hCLElBQzlDeGYsRUFBTXM5QixNQUFNLENBQUMsY0FBZWlVLEVBQU0veEIsRUFBUSxlQUFpQixPQUd2RCsvRCxHQUErQnNOLHlCQUFTLENBQUM3c0YsRUFBT3V4QyxFQUFNL3hCLElBQzFEeGYsRUFBTXM5QixNQUFNLENBQUMsY0FBZWlVLEVBQU0veEIsRUFBUSxzQkFBdUIsSUFHN0R3NUQsOEJBQ1hBLENBQUNoNUUsRUFBT3V4QyxFQUFNL3hCLElBQVk2bEIsSUFDeEIsTUFBTSxjQUFFd0ksRUFBYSxjQUFFQyxFQUFhLEdBQUV0d0IsR0FBTzZuQixFQUFPaEcsWUFFcEQsR0FBSXlPLEVBQWM5USxTQUFVLENBQzFCLE1BQU1raEMsRUFBbUJyd0IsRUFBYzR1QixtQkFBbUJsckIsRUFBTS94QixHQUNoRSxHQUFJMCtDLEVBQ0YsT0FBTyt3QiwyQkFDTG5oRCxFQUFjaWIsb0JBQW9CLENBQ2hDLFFBQ0F4WCxFQUNBL3hCLEVBQ0EsZ0JBRUYwK0MsRUFDQXJ3QixFQUFjOHRDLHFCQUNacHFDLEVBQ0EveEIsRUFDQSxjQUNBLGVBRUZoQyxFQUdOLENBQ0EsT0FBTyxJQUFJLEVBR0Y4aEUsR0FBb0J1Tix5QkFBUyxDQUFDN3NGLEVBQU91eEMsRUFBTS94QixJQUFZNmxCLElBQ2xFLE1BQU0sY0FBRXdJLEVBQWEsY0FBRUMsRUFBYSxHQUFFdHdCLEdBQU82bkIsRUFFN0MsSUFBSTByQyxHQUFvQixFQUN4QixNQUFNN1MsRUFBbUJyd0IsRUFBYzR1QixtQkFBbUJsckIsRUFBTS94QixHQUNoRSxJQUFJZ3pFLEVBQXdCM2tELEVBQWN3MUIsaUJBQWlCOXhCLEVBQU0veEIsR0FDakUsTUFBTXcrQyxFQUFjbHdCLEVBQWNpYixvQkFBb0IsQ0FDcEQsUUFDQXhYLEVBQ0EveEIsRUFDQSxnQkFRRixJQUFLdytDLEVBQ0gsT0FBTyxFQWlCVCxHQWRJNWpDLEdBQUFBLElBQUk2QyxNQUFNdTFELEtBRVpBLEVBQXdCcnVELFVBQ3RCcXVELEVBQ0dDLFlBQVlDLEdBQ1h0NEQsR0FBQUEsSUFBSTZDLE1BQU15MUQsRUFBRyxJQUFNLENBQUNBLEVBQUcsR0FBSUEsRUFBRyxHQUFHcnhGLElBQUksVUFBWXF4RixJQUVsRDkwRCxTQUdIekQsR0FBQUEsS0FBSzBHLE9BQU8yeEQsS0FDZEEsRUFBd0JydUQsVUFBVXF1RCxJQUdoQ3QwQixFQUFrQixDQUNwQixNQUFNeTBCLEVBQW1DMUQsMkJBQ3ZDanhCLEVBQ0FFLEVBQ0Fyd0IsRUFBYzh0QyxxQkFDWnBxQyxFQUNBL3hCLEVBQ0EsY0FDQSxlQUVGaEMsR0FFRnV6RCxJQUNJeWhCLEdBQ0ZBLElBQTBCRyxDQUM5QixDQUNBLE9BQU81aEIsQ0FBaUIsSUFHYnpOLEdBQThCdXBCLHlCQUFTLENBQUM3c0YsRUFBT3V4QyxFQUFNL3hCLElBQ3pEeGYsRUFBTXM5QixNQUFNLENBQUMsY0FBZWlVLEVBQU0veEIsRUFBUSxvQkFBcUI0YSxFQUFBQSxHQUFBQSxTQUczRDhsRCxHQUFvQjJNLHlCQUFTLENBQUM3c0YsRUFBT3V4QyxFQUFNL3hCLElBQy9DeGYsRUFBTXM5QixNQUFNLENBQUMsY0FBZWlVLEVBQU0veEIsRUFBUSxZQUFjLE9BR3BEbThELEdBQXVCa1IseUJBQ2xDLENBQUM3c0YsRUFBT3V4QyxFQUFNL3hCLEVBQVFoaEIsRUFBTTFCLElBRXhCa0QsRUFBTXM5QixNQUFNLENBQUMsV0FBWWlVLEVBQU0veEIsRUFBUWhoQixFQUFNMUIsRUFBTSxtQkFDbkQsT0FLTzIvRCxHQUFxQm93Qix5QkFBUyxDQUFDN3NGLEVBQU91eEMsRUFBTS94QixJQUVyRHhmLEVBQU1zOUIsTUFBTSxDQUFDLGNBQWVpVSxFQUFNL3hCLEVBQVEsd0JBQTBCLE9BSTNEazlDLEdBQXNCbXdCLHlCQUFTLENBQUM3c0YsRUFBT3V4QyxFQUFNL3hCLElBRXREeGYsRUFBTXM5QixNQUFNLENBQUMsY0FBZWlVLEVBQU0veEIsRUFBUSx5QkFBMkIsT0FJNUQ2NEQsR0FBc0J3VSx5QkFBUyxDQUFDN3NGLEVBQU80eUYsRUFBYzl2RixLQUNoRSxJQUFJeXVDLEVBSUosR0FBNEIsaUJBQWpCcWhELEVBQTJCLENBQ3BDLE1BQU0sT0FBRTN2QixFQUFNLFVBQUU1NkIsR0FBY3VxRCxFQUU1QnJoRCxFQURFbEosRUFDSyxDQUFDQSxFQUFXLHVCQUF3QjQ2QixFQUFRbmdFLEdBRTVDLENBQUMsdUJBQXdCbWdFLEVBQVFuZ0UsRUFFNUMsS0FBTyxDQUVMeXVDLEVBQU8sQ0FBQyx1QkFET3FoRCxFQUN5Qjl2RixFQUMxQyxDQUVBLE9BQU85QyxFQUFNczlCLE1BQU1pVSxJQUFTLElBQUksSUFHckI0eEIsR0FBa0IwcEIseUJBQVMsQ0FBQzdzRixFQUFPNHlGLEtBQzlDLElBQUlyaEQsRUFJSixHQUE0QixpQkFBakJxaEQsRUFBMkIsQ0FDcEMsTUFBTSxPQUFFM3ZCLEVBQU0sVUFBRTU2QixHQUFjdXFELEVBRTVCcmhELEVBREVsSixFQUNLLENBQUNBLEVBQVcsdUJBQXdCNDZCLEdBRXBDLENBQUMsdUJBQXdCQSxFQUVwQyxLQUFPLENBRUwxeEIsRUFBTyxDQUFDLHVCQURPcWhELEVBRWpCLENBRUEsT0FBTzV5RixFQUFNczlCLE1BQU1pVSxLQUFTbFgsRUFBQUEsR0FBQUEsYUFBWSxJQUc3QjhULEdBQXVCMCtDLHlCQUFTLENBQUM3c0YsRUFBTzR5RixLQUNuRCxJQUFJQyxFQUFXQyxFQUlmLEdBQTRCLGlCQUFqQkYsRUFBMkIsQ0FDcEMsTUFBTSxPQUFFM3ZCLEVBQU0sVUFBRTU2QixHQUFjdXFELEVBQzlCRSxFQUFjN3ZCLEVBRVo0dkIsRUFERXhxRCxFQUNVcm9DLEVBQU1zOUIsTUFBTSxDQUFDK0ssRUFBVyx1QkFBd0J5cUQsSUFFaEQ5eUYsRUFBTXM5QixNQUFNLENBQUMsdUJBQXdCdzFELEdBRXJELE1BQ0VBLEVBQWNGLEVBQ2RDLEVBQVk3eUYsRUFBTXM5QixNQUFNLENBQUMsdUJBQXdCdzFELElBR25ERCxFQUFZQSxJQUFheDRELEVBQUFBLEdBQUFBLGNBQ3pCLElBQUkxMUIsRUFBTW11RixFQU1WLE9BSkFELEVBQVV4dUYsS0FBSSxDQUFDb08sRUFBSzNQLEtBQ2xCNkIsRUFBTUEsRUFBSUksUUFBUSxJQUFJc3hCLE9BQU8sS0FBSTA4RCxFQUFBQSxHQUFBQSxTQUFhandGLE1BQVMsS0FBTTJQLEVBQUksSUFHNUQ5TixDQUFHLElBR0NrNUQsR0F2T2IsU0FBU20xQiw4QkFBOEIzcEQsR0FDckMsTUFBTyxJQUFJM3RDLElBQ1IycEMsSUFDQyxNQUFNZ08sRUFBV2hPLEVBQU9oRyxZQUFZeU8sY0FBY3VGLFdBR2xELElBQUkybkIsRUFGYSxJQUFJdC9ELEdBRUssSUFBTSxHQVFoQyxPQVBnQzIzQyxFQUFTL1YsTUFBTSxDQUM3QyxXQUNHMDlCLEVBQ0gsY0FDQSxjQUlPM3hCLEtBQVkzdEMsRUFJckIsQ0FFTixDQWtOcUNzM0YsRUFDbkMsQ0FBQ2h6RixFQUFPZzdELElBak42Qmk0QixFQUFDanpGLEVBQU9nN0QsS0FDN0NBLEVBQWFBLEdBQWMsS0FDQWg3RCxFQUFNczlCLE1BQU0sQ0FDckMsaUJBQ0cwOUIsRUFDSCxlQTRNcUJpNEIsQ0FBK0JqekYsRUFBT2c3RCxLQUdsRHNvQix3QkFBMEJBLENBQ3JDdGpGLEdBRUVpakYscUNBQ0FHLHlCQUNBRiwyQkFHRixJQUFJSCxFQUFzQixHQUUxQixJQUFLM29ELEdBQUFBLElBQUk2QyxNQUFNaW1ELEdBQ2IsT0FBT0gsRUFFVCxJQUFJbVEsRUFBZSxHQXFCbkIsT0FuQkFuM0YsT0FBT2dILEtBQUtrZ0YsRUFBbUN4bUIsb0JBQW9CdnpELFNBQ2hFZ3VELElBQ0MsR0FBSUEsSUFBZ0Jrc0IsRUFBd0IsQ0FFeENILEVBQW1DeG1CLG1CQUFtQnZGLEdBQ3pDaHVELFNBQVNpcUYsSUFDbEJELEVBQWE3dEYsUUFBUTh0RixHQUFlLEdBQ3RDRCxFQUFhajBGLEtBQUtrMEYsRUFDcEIsR0FFSixLQUdKRCxFQUFhaHFGLFNBQVNwRyxJQUNHb2dGLEVBQXFCNWxELE1BQU0sQ0FBQ3g2QixFQUFLLFdBRXREaWdGLEVBQW9COWpGLEtBQUs2RCxFQUMzQixJQUVLaWdGLENBQW1CLEVBR2Y3cEIsSUFBd0JDLEVBQUFBLEdBQUFBLFNBQVMsQ0FDNUMsTUFDQSxNQUNBLE9BQ0EsU0FDQSxVQUNBLE9BQ0EsUUFDQSxVQ25TRixRQUNFLENBQUN1NEIsSUFBeUIsQ0FBQzF4RixHQUFTczdCLFNBQVcrMkQsb0JBQW1CaHFELGlCQUNoRSxNQUFNa0osRUFBT2xKLEVBQVksQ0FBRUEsRUFBVyxrQkFBb0IsQ0FBRSxrQkFDNUQsT0FBT3JvQyxFQUFNNnZDLE1BQU8wQixFQUFNOGdELEVBQWtCLEVBRTlDLENBQUNWLElBQTRCLENBQUMzeEYsR0FBU3M3QixTQUFXaC9CLFFBQU8wK0Qsa0JBQ3ZELElBQUt6cEIsRUFBTS94QixHQUFVdzdDLEVBQ3JCLElBQUs1Z0MsR0FBQUEsSUFBSTZDLE1BQU0zZ0MsR0FFYixPQUFPMEQsRUFBTTZ2QyxNQUFPLENBQUUsY0FBZTBCLEVBQU0veEIsRUFBUSxhQUFlbGpCLEdBRXBFLElBS0lvOEQsRUFMQTA2QixFQUFhcHpGLEVBQU1zOUIsTUFBTSxDQUFDLGNBQWVpVSxFQUFNL3hCLEVBQVEsZ0JBQWlCNGEsRUFBQUEsR0FBQUEsT0FDdkVBLEdBQUFBLElBQUk2QyxNQUFNbTJELEtBRWJBLEdBQWFoNUQsRUFBQUEsR0FBQUEsUUFHZixTQUFVaTVELEdBQWEvMkYsRUFBTXlHLE9BVTdCLE9BVEFzd0YsRUFBVW5xRixTQUFTODZELElBQ2pCLElBQUlzdkIsRUFBY2gzRixFQUFNZ2hDLE1BQU0sQ0FBQzBtQyxJQUMxQm92QixFQUFXanlELElBQUk2aUMsSUFFUjVwQyxHQUFBQSxJQUFJNkMsTUFBTXEyRCxLQURwQjU2QixFQUFTMDZCLEVBQVd2akQsTUFBTSxDQUFDbTBCLEVBQVUsU0FBVXN2QixHQUlqRCxJQUVLdHpGLEVBQU02dkMsTUFBTSxDQUFDLGNBQWUwQixFQUFNL3hCLEVBQVEsYUFBY2s1QyxFQUFPLEVBRXhFLENBQUNrNUIsSUFBd0MsQ0FBQzV4RixHQUFTczdCLFNBQVdoL0IsUUFBTzArRCxrQkFDbkUsSUFBS3pwQixFQUFNL3hCLEdBQVV3N0MsRUFDckIsT0FBT2g3RCxFQUFNNnZDLE1BQU0sQ0FBQyxjQUFlMEIsRUFBTS94QixFQUFRLG1CQUFvQmxqQixFQUFNLEVBRTdFLENBQUN1MUYsSUFBZ0MsQ0FBQzd4RixHQUFTczdCLFNBQVdoL0IsUUFBTzArRCxhQUFZbCtELFlBQ3ZFLElBQUt5MEMsRUFBTS94QixHQUFVdzdDLEVBQ3JCLE9BQU9oN0QsRUFBTTZ2QyxNQUFPLENBQUUsY0FBZTBCLEVBQU0veEIsRUFBUSxnQkFBaUIxaUIsR0FBUVIsRUFBTSxFQUVwRixDQUFDdzFGLElBQWdDLENBQUM5eEYsR0FBU3M3QixTQUFXeCtCLE9BQU1rK0QsYUFBWW1pQixjQUFhQyxtQkFDbkYsSUFBSzdyQyxFQUFNL3hCLEdBQVV3N0MsRUFDckIsT0FBT2g3RCxFQUFNNnZDLE1BQU8sQ0FBRSxXQUFZMEIsRUFBTS94QixFQUFRMjlELEVBQWFDLEVBQWEsaUJBQW1CdGdGLEVBQUssRUFFcEcsQ0FBQ2kxRixJQUE4QixDQUFDL3hGLEdBQVNzN0IsU0FBV2gvQixRQUFPMCtELGtCQUN6RCxJQUFLenBCLEVBQU0veEIsR0FBVXc3QyxFQUNyQixPQUFPaDdELEVBQU02dkMsTUFBTyxDQUFFLGNBQWUwQixFQUFNL3hCLEVBQVEsc0JBQXdCbGpCLEVBQU0sRUFFbkYsQ0FBQzAxRixJQUErQixDQUFDaHlGLEdBQVNzN0IsU0FBV2gvQixRQUFPaTFDLE9BQU0veEIsYUFDekR4ZixFQUFNNnZDLE1BQU8sQ0FBRSxjQUFlMEIsRUFBTS94QixFQUFRLHVCQUF5QmxqQixHQUU5RSxDQUFDMjFGLElBQStCLENBQUNqeUYsR0FBU3M3QixTQUFXMm5DLFNBQVE1NkIsWUFBV3ZsQyxNQUFLMlAsV0FDM0UsTUFBTTgrQixFQUFPbEosRUFBWSxDQUFFQSxFQUFXLHVCQUF3QjQ2QixFQUFRbmdFLEdBQVEsQ0FBRSx1QkFBd0JtZ0UsRUFBUW5nRSxHQUNoSCxPQUFPOUMsRUFBTTZ2QyxNQUFNMEIsRUFBTTkrQixFQUFJLEVBRS9CLENBQUN5L0UsSUFBa0MsQ0FBQ2x5RixHQUFTczdCLFNBQVdpVyxPQUFNL3hCLFNBQVFnK0Msd0JBQ3BFLElBQUkzaEQsRUFBUyxHQUViLEdBREFBLEVBQU81YyxLQUFLLGtDQUNSdStELEVBQWlCc2xCLGlCQUVuQixPQUFPOWlGLEVBQU02dkMsTUFBTSxDQUFDLGNBQWUwQixFQUFNL3hCLEVBQVEsV0FBV2diLEVBQUFBLEdBQUFBLFFBQU8zZSxJQUVyRSxHQUFJMmhELEVBQWlCdWxCLHFCQUF1QnZsQixFQUFpQnVsQixvQkFBb0I3akYsT0FBUyxFQUFHLENBRTNGLE1BQU0sb0JBQUU2akYsR0FBd0J2bEIsRUFDaEMsT0FBT3g5RCxFQUFNaWtFLFNBQVMsQ0FBQyxjQUFlMXlCLEVBQU0veEIsRUFBUSxjQUFjZ2IsRUFBQUEsR0FBQUEsUUFBTyxDQUFDLElBQUkrNEQsR0FDckV4USxFQUFvQi94RCxRQUFPLENBQUN3aUUsRUFBV0MsSUFDckNELEVBQVUzakQsTUFBTSxDQUFDNGpELEVBQW1CLFdBQVdqNUQsRUFBQUEsR0FBQUEsUUFBTzNlLEtBQzVEMDNFLElBRVAsQ0FFQSxPQURBN3pGLFFBQVFDLEtBQUssc0RBQ05LLENBQUssRUFFZCxDQUFDbXlGLElBQW9DLENBQUNueUYsR0FBU3M3QixTQUFXaVcsT0FBTS94QixjQUM5RCxNQUFNNmpELEVBQW1CcmpFLEVBQU1zOUIsTUFBTSxDQUFDLGNBQWVpVSxFQUFNL3hCLEVBQVEsY0FDbkUsSUFBSzRhLEdBQUFBLElBQUk2QyxNQUFNb21DLEdBQ2IsT0FBT3JqRSxFQUFNNnZDLE1BQU0sQ0FBQyxjQUFlMEIsRUFBTS94QixFQUFRLFdBQVdnYixFQUFBQSxHQUFBQSxRQUFPLEtBRXJFLFNBQVU2NEQsR0FBYWh3QixFQUFpQnRnRSxPQUN4QyxPQUFLc3dGLEVBR0VyekYsRUFBTWlrRSxTQUFTLENBQUMsY0FBZTF5QixFQUFNL3hCLEVBQVEsY0FBY2diLEVBQUFBLEdBQUFBLFFBQU8sQ0FBQyxJQUFJazVELEdBQ3JFTCxFQUFVcmlFLFFBQU8sQ0FBQ3dpRSxFQUFXbDRCLElBQzNCazRCLEVBQVUzakQsTUFBTSxDQUFDeXJCLEVBQU0sV0FBVzlnQyxFQUFBQSxHQUFBQSxRQUFPLE1BQy9DazVELEtBTEkxekYsQ0FNUCxFQUVKLENBQUNveUYsSUFBMkIsQ0FBQ3B5RixHQUFTczdCLFNBQVcwL0Isa0JBQy9DLElBQUt6cEIsRUFBTS94QixHQUFVdzdDLEVBQ3JCLE1BQU1xSSxFQUFtQnJqRSxFQUFNczlCLE1BQU0sQ0FBQyxjQUFlaVUsRUFBTS94QixFQUFRLGNBQ25FLE9BQUs2akQsRUFHQWpwQyxHQUFBQSxJQUFJNkMsTUFBTW9tQyxHQUdScmpFLEVBQU02dkMsTUFBTSxDQUFDLGNBQWUwQixFQUFNL3hCLEVBQVEsY0FBYzRhLEVBQUFBLEdBQUFBLFFBRnREcDZCLEVBQU02dkMsTUFBTSxDQUFDLGNBQWUwQixFQUFNL3hCLEVBQVEsYUFBYyxJQUh4RHhmLENBSzRELEdDakcxRCxTQUFTLE1BQUMsVUFBRXEvQixJQUN6QixNQUFNOHRCLEVDUmdDd21DLENBQUN0MEQsR0FDVjh0QixDQUFDandCLEVBQVFneUQsRUFBWSxRQUNoRCxNQUFNLFdBQUUvbkQsRUFBVSxHQUFFM3BCLEdBQU82aEIsS0FDckIscUJBQUV1MEQsR0FBeUJ6c0QsSUFPakMsR0FMdUIsaUJBQWQrbkQsR0FDUDBFLEVBQXFCN3lELE1BQU04eUQsR0FDekIzRSxFQUFVeHFGLFdBQVdtdkYsS0FJdkIsT0FBTyxFQUdULE1BQU0vaUMsRUFBb0IxMkIsR0FBQUEsSUFBSTZDLE1BQU1DLEdBRXBDLElBQUs0ekIsS0FBc0JDLEVBQUFBLEdBQUFBLFNBQWM3ekIsR0FDdkMsT0FBTyxFQUdULE1BQU01ekIsRUFBU3duRCxFQUFvQjV6QixFQUFPNzdCLElBQUksVUFBWTY3QixFQUFPNXpCLE9BRWpFLE9BQ0VrVSxFQUFHcXpDLGNBQWMzekIsRUFBUSxXQUFhLENBQUMsU0FBVSxRQUFRLzNCLFNBQVNtRSxFQUFPLEVEZmhEcXFGLENBQXlCdDBELEdBRXRELE1BQU8sQ0FDTGtHLFdBQVUsR0FDVitFLGVBQWMsR0FDZDdFLGFBQWMsQ0FDWjJOLEtBQU0sQ0FDSmhLLGNBQWUwcUQsR0FDZjdxRCxVQUFXNkUsSUFFYm5DLEtBQU0sQ0FDSnZDLGNBQWUycUQsSUFFakJDLEtBQU0sQ0FDSnhyRCxRQUFTLElBQUtBLElBQ2RYLFNBQVEsR0FDUm9CLFVBQVcsSUFBS0EsTUFHcEJ6ckIsR0FBSSxDQUNGMnZDLHVCQUNBOG1DLDBCQUEyQjltQyxHQUdqQyxDRU9BLGFBdENpQmc5QixFQUFHcjhDLGdCQUFlMkUsbUJBQ2pDLE1BQU1zOEMsRUFBZ0JqaEQsRUFBY29tRCwyQkFDOUJDLEVBQWdCcDRGLE9BQU9nSCxLQUFLZ3NGLEdBRTVCNVksRUFBcUIxakMsRUFBYSxzQkFBc0IsR0FFOUQsT0FBNkIsSUFBekIwaEQsRUFBY2oxRixPQUFxQixLQUdyQ3FvQyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLFlBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLFVBQUksWUFFSDRzRCxFQUFjOXZGLEtBQUsrdkYsR0FDbEI3c0QsR0FBQUEsUUFBQUEsY0FBQSxPQUFLemtDLElBQUssR0FBR3N4RixhQUNWckYsRUFBY3FGLEdBQWMvdkYsS0FBS3lxRixHQUNoQ3ZuRCxHQUFBQSxRQUFBQSxjQUFDNHVDLEVBQWtCLENBQ2pCcnpFLElBQUssR0FBR3N4RixLQUFnQnRGLEVBQWF0dkUsaUJBQ3JDczZDLEdBQUlnMUIsRUFBYXQ5QyxVQUNqQjJGLElBQUksV0FDSjMzQixPQUFRc3ZFLEVBQWF0dkUsT0FDckIreEIsS0FBTTZpRCxFQUNOcHhDLFVBQVU3b0IsRUFBQUEsR0FBQUEsTUFBSzIwRCxFQUFhOXJDLFVBQzVCbzBCLGVBQWUsU0FLbkIsRUNHVix1QkE3QmdCMlAsRUFBR3QwQyxlQUFjM0Usb0JBQy9CLE1BQU1oeEMsRUFBT2d4QyxFQUFjdW1ELHlCQUNyQmpuRCxFQUFNVSxFQUFjd21ELG1CQUVwQmxwQyxFQUFPM1ksRUFBYSxRQUUxQixPQUNFbEwsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxpQkFDWjNNLEVBQ0M3RixHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLHNCQUNieFMsR0FBQUEsUUFBQUEsY0FBQzZqQixFQUFJLENBQUM1dkQsT0FBTyxTQUFTa3VELEtBQU1JLFlBQVkxYyxJQUNyQ3R3QyxJQUlMeXFDLEdBQUFBLFFBQUFBLGNBQUEsWUFBT3pxQyxHQUVMLEVDaUJWLHVCQWxDZ0JrcUYsRUFBR3YwQyxlQUFjM0Usb0JBQy9CLE1BQU1oeEMsRUFBT2d4QyxFQUFjeW1ELHlCQUNyQm5uRCxFQUFNVSxFQUFjMG1ELG1CQUNwQnBOLEVBQVF0NUMsRUFBYzJtRCwwQkFFdEJycEMsRUFBTzNZLEVBQWEsUUFFMUIsT0FDRWxMLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsaUJBQ1ozTSxHQUNDN0YsR0FBQUEsUUFBQUEsY0FBQSxXQUNFQSxHQUFBQSxRQUFBQSxjQUFDNmpCLEVBQUksQ0FBQzFCLEtBQU1JLFlBQVkxYyxHQUFNNXhDLE9BQU8sVUFDbENzQixFQUFLLGVBSVhzcUYsR0FDQzcvQyxHQUFBQSxRQUFBQSxjQUFDNmpCLEVBQUksQ0FBQzFCLEtBQU1JLFlBQVksVUFBVXM5QixNQUMvQmg2QyxFQUFNLGlCQUFpQnR3QyxJQUFTLFdBQVdBLEtBRzVDLEVDcUVWLDBCQTFGYTJwRixFQUFHaDBDLGVBQWMzRSxvQkFDNUIsTUFBTWpqQyxFQUFVaWpDLEVBQWNqakMsVUFDeEJ1aUMsRUFBTVUsRUFBY1YsTUFDcEJzc0IsRUFBVzVyQixFQUFjNHJCLFdBQ3pCQyxFQUFPN3JCLEVBQWM2ckIsT0FDckJpZCxFQUFVOW9DLEVBQWM0bUQseUJBQ3hCL3BDLEVBQWM3YyxFQUFjNm1ELDZCQUM1QjNzRSxFQUFROGxCLEVBQWM4bUQsdUJBQ3RCbE8sRUFBb0I1NEMsRUFBYyttRCw4QkFDbEM3cEMsRUFBa0JsZCxFQUFjZ25ELHdCQUNoQ0MsRUFBbUJqbkQsRUFBY2tuRCxxQ0FDakNDLEVBQVVubkQsRUFBY21uRCxVQUN4Qi9OLEVBQVVwNUMsRUFBY281QyxVQUV4Qmg4QixFQUFXelksRUFBYSxZQUFZLEdBQ3BDMlksRUFBTzNZLEVBQWEsUUFDcEJvMEMsRUFBZXAwQyxFQUFhLGdCQUM1QnEwQyxFQUFpQnIwQyxFQUFhLGtCQUM5Qit6QyxFQUFVL3pDLEVBQWEsV0FDdkI4ekMsRUFBZTl6QyxFQUFhLGdCQUM1QnMwQyxFQUFVdDBDLEVBQWEsV0FBVyxHQUNsQ3UwQyxFQUFVdjBDLEVBQWEsV0FBVyxHQUNsQ3lpRCxFQUFvQnppRCxFQUFhLHFCQUFxQixHQUU1RCxPQUNFbEwsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxRQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxVQUFRd1MsVUFBVSxRQUNoQnhTLEdBQUFBLFFBQUFBLGNBQUEsTUFBSXdTLFVBQVUsU0FDWC94QixFQUNEdWYsR0FBQUEsUUFBQUEsY0FBQSxZQUNHMThCLEdBQVcwOEIsR0FBQUEsUUFBQUEsY0FBQ3MvQyxFQUFZLENBQUNoOEUsUUFBU0EsSUFDbkMwOEIsR0FBQUEsUUFBQUEsY0FBQ3UvQyxFQUFjLENBQUNHLFdBQVcsV0FJN0J0dEIsR0FBUUQsSUFBYW55QixHQUFBQSxRQUFBQSxjQUFDZy9DLEVBQVksQ0FBQzVzQixLQUFNQSxFQUFNRCxTQUFVQSxJQUMxRHRzQixHQUFPN0YsR0FBQUEsUUFBQUEsY0FBQ2kvQyxFQUFPLENBQUMvekMsYUFBY0EsRUFBY3JGLElBQUtBLEtBR25Ed3BDLEdBQVdydkMsR0FBQUEsUUFBQUEsY0FBQSxLQUFHd1MsVUFBVSxpQkFBaUI2OEIsR0FFMUNydkMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxpQ0FDYnhTLEdBQUFBLFFBQUFBLGNBQUMyakIsRUFBUSxDQUFDdnNDLE9BQVFnc0MsS0FHbkIrN0IsR0FDQ24vQyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGFBQ2J4UyxHQUFBQSxRQUFBQSxjQUFDNmpCLEVBQUksQ0FBQzV2RCxPQUFPLFNBQVNrdUQsS0FBTUksWUFBWTQ4QixJQUFvQixxQkFNL0R1TyxFQUFRdG5GLEtBQU8sR0FBSzQ1QixHQUFBQSxRQUFBQSxjQUFDeS9DLEVBQU8sTUFFNUJFLEVBQVF2NUUsS0FBTyxHQUFLNDVCLEdBQUFBLFFBQUFBLGNBQUN3L0MsRUFBTyxNQUU1Qi83QixHQUNDempCLEdBQUFBLFFBQUFBLGNBQUM2akIsRUFBSSxDQUNIclIsVUFBVSxnQkFDVnYrQyxPQUFPLFNBQ1BrdUQsS0FBTUksWUFBWWtCLElBRWpCK3BDLEdBQW9CL3BDLEdBSXpCempCLEdBQUFBLFFBQUFBLGNBQUMydEQsRUFBaUIsTUFDZCxFQ2pCVix3QkFsRDBCQSxFQUFHemlELGVBQWMzRSxvQkFDekMsTUFBTXFuRCxFQUFvQnJuRCxFQUFjc25ELCtCQUNsQ0MsRUFBMkJ2bkQsRUFBY3duRCxpQ0FFekNscUMsRUFBTzNZLEVBQWEsUUFFMUIsT0FDRWxMLEdBQUFBLFFBQUFBLGNBQUFBLEdBQUFBLFFBQUFBLFNBQUEsS0FDRzR0RCxHQUFxQkEsSUFBc0JFLEdBQzFDOXRELEdBQUFBLFFBQUFBLGNBQUEsS0FBR3dTLFVBQVUsMkJBQTBCLHVCQUNoQixJQUNyQnhTLEdBQUFBLFFBQUFBLGNBQUM2akIsRUFBSSxDQUFDNXZELE9BQU8sU0FBU2t1RCxLQUFNSSxZQUFZcXJDLElBQ3JDQSxJQUtOQSxHQUFxQkEsSUFBc0JFLEdBQzFDOXRELEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsaUJBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGFBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLFVBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGtCQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSxVQUFTLFdBQ3ZCeFMsR0FBQUEsUUFBQUEsY0FBQSxLQUFHd1MsVUFBVSxXQUNYeFMsR0FBQUEsUUFBQUEsY0FBQSxjQUFRLDZCQUFrQyw4REFDQSxJQUMxQ0EsR0FBQUEsUUFBQUEsY0FBQzZqQixFQUFJLENBQUM1dkQsT0FBTyxTQUFTa3VELEtBQU0yckMsR0FDekJBLEdBQ0ksK0lBVWxCLEVDeUJQLDBCQXJFNEJsTixFQUMxQkUsU0FDQTVHLGFBQ0F6a0QsU0FDQXF0RCxVQUNBakMsV0FDQTdsQyxjQUVJOGxDLEVBQ0s5Z0QsR0FBQUEsUUFBQUEsY0FBQSxXQUFNZ2IsR0FHWGsvQixJQUFlemtELEdBQVVxdEQsR0FFekI5aUQsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxrQkFDWnF1QyxFQUNEN2dELEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsOERBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLFdBQ0VBLEdBQUFBLFFBQUFBLGNBQUEsVUFBSSxvQ0FDSkEsR0FBQUEsUUFBQUEsY0FBQSxTQUNFQSxHQUFBQSxRQUFBQSxjQUFBLFlBQU0sV0FBYyxRQUFLQSxHQUFBQSxRQUFBQSxjQUFBLFlBQU0sV0FBYyx5R0FJL0NBLEdBQUFBLFFBQUFBLGNBQUEsU0FBRyxnQ0FDNEJBLEdBQUFBLFFBQUFBLGNBQUEsWUFBTSxrQkFBK0IseUJBQ2pEQSxHQUFBQSxRQUFBQSxjQUFBLFlBQU0sa0JBQXFCLGlCQUFlLElBQzNEQSxHQUFBQSxRQUFBQSxjQUFBLFlBQU0sa0JBQXFCLFNBUWxDazZDLEdBQWV6a0QsR0FBV3F0RCxFQXNCeEI5aUQsR0FBQUEsUUFBQUEsY0FBQSxXQUFNZ2IsR0FwQlRoYixHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGtCQUNacXVDLEVBQ0Q3Z0QsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSw0REFDYnhTLEdBQUFBLFFBQUFBLGNBQUEsV0FDRUEsR0FBQUEsUUFBQUEsY0FBQSxVQUFJLG9DQUNKQSxHQUFBQSxRQUFBQSxjQUFBLFNBQUcsbUVBR0hBLEdBQUFBLFFBQUFBLGNBQUEsU0FBRywwRkFFNEJBLEdBQUFBLFFBQUFBLGNBQUEsWUFBTSxrQkFBK0IseUJBQ2pEQSxHQUFBQSxRQUFBQSxjQUFBLFlBQU0sa0JBQXFCLGlCQUFlLElBQzNEQSxHQUFBQSxRQUFBQSxjQUFBLFlBQU0sa0JBQXFCLFNDN0N6QyxNQVFNNGYsYUFBZ0IzakIsR0FDRCxpQkFBUkEsR0FBb0JBLEVBQUlyK0IsU0FBUyx5QkFUeEJ1aEQsQ0FBQ2xqQixJQUNyQixNQUFNbWpCLEVBQVluakIsRUFBSXorQixRQUFRLE1BQU8sS0FBS0EsUUFBUSxNQUFPLEtBQ3pELElBQ0UsT0FBT2l6QyxtQkFBbUIyTyxFQUM1QixDQUFFLE1BQ0EsT0FBT0EsQ0FDVCxHQUlTRCxDQUFjbGpCLEVBQUl6K0IsUUFBUSw4QkFBK0IsS0FFM0QsS0FHSDBnRCxJQUFRbnNCLEVBQUFBLEdBQUFBLGFBQ1osRUFBRzRELFNBQVF1VixlQUFjcVEsV0FBV0EsT0FBVUUsWUFBWWxOLEtBQ3hELE1BQU15L0MsRUFBbUI5aUQsRUFBYSxvQkFDaEMzMUMsRUFBT3FxRCxhQUFhanFCLEVBQU83N0IsSUFBSSxVQUUvQm0wRixHQUFlajhELEVBQUFBLEdBQUFBLGNBQ25CLENBQUNueUIsRUFBR3k3QyxLQUNGQyxFQUFTaG1ELEVBQU0rbEQsRUFBUyxHQUUxQixDQUFDL2xELEVBQU1nbUQsSUFHVCxPQUNFdmIsR0FBQUEsUUFBQUEsY0FBQ2d1RCxFQUFnQixDQUNmejRGLEtBQU1BLEVBQ05vZ0MsT0FBUUEsRUFBT1UsT0FDZmtZLElBQUtBLEVBQ0wyL0MsU0FBVUQsRUFDVkUsV0FBWTF5QyxFQUFTcGxCLE9BQU90NUIsS0FBSyxNQUNqQyxJQVlSLFVDK0VBLFdBN0hleWpELEVBQ2IvVCxjQUNBbEcsZ0JBQ0F3SSxrQkFDQUUsZ0JBQ0EvRCxlQUNBdEwsYUFDQTNwQixTQUVBLE1BQU15dkUsRUFBVW4vQyxFQUFjNm5ELGdCQUN4QkMsRUFBYTc1RixPQUFPZ0gsS0FBS2txRixHQUFTL3RGLE9BQVMsRUFDM0MyMkYsRUFBYyxDQUFDLGFBQWMsWUFDN0IsYUFBRXR0QyxFQUFZLHlCQUFFQyxHQUE2QnJoQixJQUM3QzJ1RCxFQUFnQnR0QyxFQUEyQixHQUFzQixTQUFqQkQsRUFDaER3dEMsRUFBU3ovQyxFQUFnQnNGLFFBQVFpNkMsRUFBYUMsR0FDOUNudEMsRUFBV2xXLEVBQWEsWUFDeEI4aUQsRUFBbUI5aUQsRUFBYSxvQkFDaENzSSxFQUFjdEksRUFBYSxlQUMzQnVJLEVBQWdCdkksRUFBYSxrQkFDN0IsU0FBRXVqRCxHQUFheDRFLEVBQUd5NEUsaUJBQWlCQyxTQUt6Q3o4RCxFQUFBQSxHQUFBQSxZQUFVLEtBQ1IsTUFBTTA4RCxFQUFvQkosR0FBVXZ0QyxFQUEyQixFQUN6RDR0QyxFQUErRCxNQUFsRHRvRCxFQUFjaWIsb0JBQW9COHNDLEdBQ2pETSxJQUFzQkMsR0FDeEJwaUQsRUFBWW1VLHVCQUF1QjB0QyxFQUNyQyxHQUNDLENBQUNFLEVBQVF2dEMsSUFNWixNQUFNNnRDLEdBQXFCOThELEVBQUFBLEdBQUFBLGNBQVksS0FDckNpZCxFQUFjUyxLQUFLNCtDLEdBQWNFLEVBQU8sR0FDdkMsQ0FBQ0EsSUFDRU8sR0FBa0IvOEQsRUFBQUEsR0FBQUEsY0FBYWdvQixJQUN0QixPQUFUQSxHQUNGL0ssRUFBY0wsY0FBYzAvQyxFQUFhdDBDLEVBQzNDLEdBQ0MsSUFDR2cxQywwQkFBNkJ4SixHQUFnQnhyQyxJQUNwQyxPQUFUQSxHQUNGL0ssRUFBY0wsY0FBYyxJQUFJMC9DLEVBQWE5SSxHQUFheHJDLEVBQzVELEVBRUlpMUMsNkJBQWdDekosR0FBZSxDQUFDM2xGLEVBQUd5N0MsS0FDdkQsR0FBSUEsRUFBVSxDQUNaLE1BQU00ekMsRUFBYSxJQUFJWixFQUFhOUksR0FDZ0MsTUFBakRqL0MsRUFBY2liLG9CQUFvQjB0QyxJQUVuRHppRCxFQUFZbVUsdUJBQXVCLElBQUkwdEMsRUFBYTlJLEdBRXhELEdBT0YsT0FBSzZJLEdBQWNwdEMsRUFBMkIsRUFDckMsS0FJUGpoQixHQUFBQSxRQUFBQSxjQUFBLFdBQ0V3UyxXQUFXbUksRUFBQUEsR0FBQUEsU0FBVyxTQUFVLENBQUUsVUFBVzZ6QyxJQUM3Q2pnRCxJQUFLd2dELEdBRUwvdUQsR0FBQUEsUUFBQUEsY0FBQSxVQUNFQSxHQUFBQSxRQUFBQSxjQUFBLFVBQ0UsZ0JBQWV3dUQsRUFDZmg4QyxVQUFVLGlCQUNWK0gsUUFBU3UwQyxHQUVUOXVELEdBQUFBLFFBQUFBLGNBQUEsWUFBTSxXQUNMd3VELEVBQVN4dUQsR0FBQUEsUUFBQUEsY0FBQ3dULEVBQVcsTUFBTXhULEdBQUFBLFFBQUFBLGNBQUN5VCxFQUFhLFFBRzlDelQsR0FBQUEsUUFBQUEsY0FBQ29oQixFQUFRLENBQUNFLFNBQVVrdEMsR0FDakJoNkYsT0FBT29pQyxRQUFROHVELEdBQVM1b0YsS0FBSSxFQUFFMG9GLEVBQVk3dkQsTUFDekMsTUFBTXBnQyxFQUFPazVGLEVBQVM5NEQsRUFBUSxDQUFFdzVELE9BQVEsV0FBYzNKLEVBRXRELE9BQ0V4bEQsR0FBQUEsUUFBQUEsY0FBQ2d1RCxFQUFnQixDQUNmenlGLElBQUtpcUYsRUFDTGozQyxJQUFLeWdELDBCQUEwQnhKLEdBQy9CN3ZELE9BQVFBLEVBQ1JwZ0MsS0FBTUEsRUFDTjI0RixTQUFVZSw2QkFBNkJ6SixJQUN2QyxLQUlBLEVDekVkLG9CQXpCc0I0SixFQUFHejVELFNBQVF1VixlQUFjMzFDLE9BQU1peEMsb0JBQ25ELE1BQU02YSxFQUFhblcsRUFBYSxjQUFjLEdBQ3hDbEIsRUFBT3hELEVBQWMwQyxlQUFlM3pDLEdBRTFDLE9BQ0V5cUMsR0FBQUEsUUFBQUEsY0FBQSxXQUNFQSxHQUFBQSxRQUFBQSxjQUFBLFVBQ0d6cUMsRUFBSyxnQkFBYXlxQyxHQUFBQSxRQUFBQSxjQUFDcWhCLEVBQVUsQ0FBQ3JYLEtBQU1BLEtBRXZDaEssR0FBQUEsUUFBQUEsY0FBQSxTQUFHLHlIQUlIQSxHQUFBQSxRQUFBQSxjQUFBLFNBQUlySyxFQUFPNzdCLElBQUksZ0JBQ1gsRUNiVixNQUFNMHNFLG9CQUFjeG1DLEdBQUFBLFFBQUFBLFVBVWxCeGpDLFdBQUFBLENBQVlnckIsRUFBT2h0QixHQUNqQmlhLE1BQU0rUyxFQUFPaHRCLEdBRWJ0RixLQUFLdUQsTUFBUSxDQUFDLENBQ2hCLENBRUFzdUUsYUFBZ0IzaUMsSUFDZCxJQUFJLEtBQUU3dUMsR0FBUzZ1QyxFQUVmbHZDLEtBQUs2bUQsU0FBUyxDQUFFLENBQUN4bUQsR0FBTzZ1QyxHQUFPLEVBR2pDNGlDLFdBQWNubkUsSUFDWkEsRUFBRWk2QyxpQkFFRixJQUFJLFlBQUVoVyxHQUFnQjV1QyxLQUFLc3lCLE1BQzNCc2MsRUFBWUQsMkJBQTJCM3VDLEtBQUt1RCxNQUFNLEVBR3BEd3VFLFlBQWVwbkUsSUFDYkEsRUFBRWk2QyxpQkFFRixJQUFJLFlBQUVoVyxFQUFXLFlBQUVrRixHQUFnQjl6QyxLQUFLc3lCLE1BQ3BDMC9DLEVBQVFsK0IsRUFDVGxzQyxLQUFJLENBQUNvTyxFQUFLM1AsSUFDRkEsSUFFUmsvQixVQUVIdmxDLEtBQUs2bUQsU0FDSG1yQixFQUFNejlDLFFBQU8sQ0FBQ3F3QyxFQUFNMTFCLEtBQ2xCMDFCLEVBQUsxMUIsR0FBUSxHQUNOMDFCLElBQ04sQ0FBQyxJQUdOaDJCLEVBQVlHLHdCQUF3QmlqQyxFQUFNLEVBRzVDdnlDLE1BQVM5MEIsSUFDUEEsRUFBRWk2QyxpQkFDRixJQUFJLFlBQUVoVyxHQUFnQjV1QyxLQUFLc3lCLE1BRTNCc2MsRUFBWUgsaUJBQWdCLEVBQU0sRUFHcENzSCxNQUFBQSxHQUNFLElBQUksWUFBRWpDLEVBQVcsYUFBRWtDLEVBQVksY0FBRTFFLEVBQWEsYUFBRW96QixHQUFpQjFrRSxLQUFLc3lCLE1BQ3RFLE1BQU0yL0MsRUFBV2o4QixFQUFhLFlBQ3hCazhCLEVBQVNsOEIsRUFBYSxVQUFVLEdBQ2hDaWQsRUFBU2pkLEVBQWEsVUFFdEJsRCxFQUFheEIsRUFBY3dCLGFBQzNCcS9CLEVBQWlCcitCLEVBQVloaUIsUUFBTyxDQUFDb0ssRUFBWTcxQixNQUM1Q3lzQyxFQUFXbHVDLElBQUl5QixLQUVwQityRSxFQUFzQnQrQixFQUFZaGlCLFFBQ3JDMk8sR0FDd0IsV0FBdkJBLEVBQU83N0IsSUFBSSxTQUErQyxjQUF2QjY3QixFQUFPNzdCLElBQUksVUFFNUN5dEUsRUFBbUJ2K0IsRUFBWWhpQixRQUNsQzJPLEdBQWtDLFdBQXZCQSxFQUFPNzdCLElBQUksVUFFbkJ1MUYsRUFBdUJybUQsRUFBWWhpQixRQUN0QzJPLEdBQWtDLGNBQXZCQSxFQUFPNzdCLElBQUksVUFFekIsT0FDRWttQyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGtCQUNaODBCLEVBQW9CbGhFLEtBQU8sR0FDMUI0NUIsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd25DLFNBQVV0eUUsS0FBSzh4RSxZQUNsQk0sRUFDRXhxRSxLQUFJLENBQUM2NEIsRUFBUXBnQyxJQUVWeXFDLEdBQUFBLFFBQUFBLGNBQUNtbkMsRUFBUSxDQUNQNXJFLElBQUtoRyxFQUNMb2dDLE9BQVFBLEVBQ1JwZ0MsS0FBTUEsRUFDTjIxQyxhQUFjQSxFQUNkNjdCLGFBQWM3eEUsS0FBSzZ4RSxhQUNuQi8rQixXQUFZQSxFQUNaNHhCLGFBQWNBLEVBQ2RwekIsY0FBZUEsTUFJcEIvTCxVQUNIdUYsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxvQkFDWjgwQixFQUFvQmxoRSxPQUFTaWhFLEVBQWVqaEUsS0FDM0M0NUIsR0FBQUEsUUFBQUEsY0FBQ21vQixFQUFNLENBQ0wzVixVQUFVLHFCQUNWK0gsUUFBU3JsRCxLQUFLK3hFLFlBQ2QsYUFBVyx3QkFDWixVQUlEam5DLEdBQUFBLFFBQUFBLGNBQUNtb0IsRUFBTSxDQUNMbHhELEtBQUssU0FDTHU3QyxVQUFVLCtCQUNWLGFBQVcscUJBQ1osYUFJSHhTLEdBQUFBLFFBQUFBLGNBQUNtb0IsRUFBTSxDQUNMM1YsVUFBVSw4QkFDVitILFFBQVNybEQsS0FBS3kvQixPQUNmLFdBT040eUMsRUFBaUJuaEUsS0FBTyxFQUN2QjQ1QixHQUFBQSxRQUFBQSxjQUFBLFdBQ0VBLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsYUFDYnhTLEdBQUFBLFFBQUFBLGNBQUEsU0FBRyxrSkFLSEEsR0FBQUEsUUFBQUEsY0FBQSxTQUFHLDBGQUtKZ0osRUFDRWhpQixRQUFRMk8sR0FBa0MsV0FBdkJBLEVBQU83N0IsSUFBSSxVQUM5QmdELEtBQUksQ0FBQzY0QixFQUFRcGdDLElBRVZ5cUMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLemtDLElBQUtoRyxHQUNSeXFDLEdBQUFBLFFBQUFBLGNBQUNvbkMsRUFBTSxDQUNMcC9CLFdBQVlBLEVBQ1pyUyxPQUFRQSxFQUNScGdDLEtBQU1BLE9BS2JrbEMsV0FFSCxLQUNINDBELEVBQXFCanBGLEtBQU8sR0FDM0I0NUIsR0FBQUEsUUFBQUEsY0FBQSxXQUNHcXZELEVBQ0V2eUYsS0FBSSxDQUFDNjRCLEVBQVFwZ0MsSUFFVnlxQyxHQUFBQSxRQUFBQSxjQUFDbW5DLEVBQVEsQ0FDUDVyRSxJQUFLaEcsRUFDTG9nQyxPQUFRQSxFQUNScGdDLEtBQU1BLEVBQ04yMUMsYUFBY0EsRUFDZDY3QixhQUFjN3hFLEtBQUs2eEUsYUFDbkIvK0IsV0FBWUEsRUFDWjR4QixhQUFjQSxFQUNkcHpCLGNBQWVBLE1BSXBCL0wsV0FLYixFQUdGLG1CQ3BMTyxNQUFNcW9ELFFBQVc5eEMsSUFDdEIsTUFBTTB1QyxFQUFhMXVDLEVBQU9sM0MsSUFBSSxXQUU5QixNQUN3QixpQkFBZjRsRixHQUEyQix5QkFBeUJ6bEQsS0FBS3lsRCxFQUFXLEVBV2xFNFAsMkJBQ1Z4dEQsR0FDRCxDQUFDcnBDLEtBQVV0RSxJQUNWMnBDLElBQ0MsR0FBSUEsRUFBT2hHLFlBQVl5TyxjQUFjdThDLFVBQVcsQ0FDOUMsTUFBTTZELEVBQWdCN2tELEVBQVNycEMsS0FBVXRFLEdBQ3pDLE1BQWdDLG1CQUFsQnd5RixFQUNWQSxFQUFjN29ELEdBQ2Q2b0QsQ0FDTixDQUNFLE9BQU8sSUFDVCxFQVdTNEksK0JBQ1Z6dEQsR0FDRCxDQUFDOFMsRUFBYTlXLElBQ2QsQ0FBQ3JsQyxLQUFVdEUsS0FDVCxHQUFJMnBDLEVBQU9oRyxZQUFZeU8sY0FBY3U4QyxVQUFXLENBQzlDLE1BQU02RCxFQUFnQjdrRCxFQUFTcnBDLEtBQVV0RSxHQUN6QyxNQUFnQyxtQkFBbEJ3eUYsRUFDVkEsRUFBYy94QyxFQUFhOVcsR0FDM0I2b0QsQ0FDTixDQUNFLE9BQU8veEMsS0FBZXpnRCxFQUN4QixFQVdTcTdGLHdCQUNWMXRELEdBQ0QsQ0FBQ3JwQyxLQUFVdEUsSUFDVjJwQyxJQUNDLE1BQU02b0QsRUFBZ0I3a0QsRUFBU3JwQyxFQUFPcWxDLEtBQVczcEMsR0FDakQsTUFBZ0MsbUJBQWxCd3lGLEVBQ1ZBLEVBQWM3b0QsR0FDZDZvRCxDQUFhLEVBWVI4SSxnQ0FDVjk5RCxHQUFjLENBQUNzeUMsRUFBVW5tQyxJQUFZdFcsR0FDaENzVyxFQUFPeUksY0FBY3U4QyxVQUVyQjlpRCxHQUFBQSxRQUFBQSxjQUFDck8sR0FBU2loQixFQUFBQSxHQUFBQSxTQUFBLEdBQ0pwckIsRUFBSyxDQUNUa29FLGtCQUFtQnpyQixFQUNuQm5zQyxVQUFXZ0csRUFBT2hHLGFBS2pCa0ksR0FBQUEsUUFBQUEsY0FBQ2lrQyxFQUFhejhDLEdBWVptb0UsWUFBY0EsQ0FBQzE1RSxFQUFJNm5CLEtBQzlCLE1BQVE3bkIsR0FBSTI1RSxFQUFRLGNBQUVycEQsR0FBa0J6SSxFQUV4QyxPQUFPdHBDLE9BQU9xN0YsWUFDWnI3RixPQUFPb2lDLFFBQVEzZ0IsR0FBSW5aLEtBQUksRUFBRXZILEVBQU11NkYsTUFDN0IsTUFBTUMsRUFBVUgsRUFBU3I2RixHQVF6QixNQUFPLENBQUNBLEVBUEt5NkYsSUFBSTc3RixJQUNmb3lDLEVBQWN1OEMsVUFDVmdOLEtBQVczN0YsR0FDUSxtQkFBWjQ3RixFQUNMQSxLQUFXNTdGLFFBQ1hvQyxFQUVXLElBRXRCLEVDNUdILE9BUHVCazVGLGlDQUFnQyxFQUFHMzNELGdCQUN4RCxNQUNNbTRELEVBRFNuNEQsSUFDYW9ULGFBQWEsZ0JBQWdCLEdBRXpELE9BQU9sTCxHQUFBQSxRQUFBQSxjQUFDaXdELEVBQVksS0FBRyxJQ0d6QixPQVB1QlIsaUNBQWdDLEVBQUczM0QsZ0JBQ3hELE1BQ01vNEQsRUFEU3A0RCxJQUNhb1QsYUFBYSxnQkFBZ0IsR0FFekQsT0FBT2xMLEdBQUFBLFFBQUFBLGNBQUNrd0QsRUFBWSxLQUFHLElDR3pCLE9BUG9CVCxpQ0FBZ0MsRUFBRzMzRCxnQkFDckQsTUFDTXE0RCxFQURTcjRELElBQ1VvVCxhQUFhLGFBQWEsR0FFbkQsT0FBT2xMLEdBQUFBLFFBQUFBLGNBQUNtd0QsRUFBUyxLQUFHLElDUmYsTUFpQk1DLGNBQWdCQSxDQUMzQno2RCxHQUNFdW5CLGtCQUFpQkQsdUJBR25CLElBQUt0bkIsR0FBUTB0QixXQUFZLE1BQU8sQ0FBQyxFQUVqQyxNQUNNZ3RDLEVBRGE3N0YsT0FBT29pQyxRQUFRakIsRUFBTzB0QixZQUNIcjhCLFFBQU8sRUFBRSxDQUFFanlCLFNBQ1IsSUFBcEJBLEdBQU93M0QsV0FJUnJQLFFBSHVCLElBQXJCbm9ELEdBQU95M0QsWUFHNEJ2UCxLQUl6RCxPQUFPem9ELE9BQU9xN0YsWUFBWVEsRUFBbUIsRUFHbENDLHNCQUF5QkMsSUFDcEMsR0FBd0IsbUJBQWJBLEVBQ1QsT0FBTyxLQUdULE1BQU1DLEVBQTJCRCxJQUVqQyxNQUFPLElBQU0sSUFDUkMsRUFDSCxnQkFDQSxNQUNBLGVBQ0EsVUFFQSxRQUNELEVDL0NHbnpDLEdBQWVveUMsaUNBQ25CLEVBQUczM0QsZUFBY3RRLE1BQ2YsTUFBTXNXLEVBQVNoRyxLQUNULGFBQUVvVCxFQUFZLEdBQUVqMUIsRUFBRSxXQUFFMnBCLEdBQWU5QixFQUNuQ0MsRUFBVTZCLElBRVZzZSxFQUFRaFQsRUFBYSxjQUNyQnVsRCxFQUE4QnZsRCxFQUNsQyxxQ0F1QkYsT0FuQkFtUyxHQUFhcXpDLDZCQUErQkQsRUFDMUN2eUMsRUFDQSxDQUNFNzdCLE9BQVEsQ0FDTnN1RSxlQUFnQixpREFDaEJDLHNCQUF1Qjd5RCxFQUFRcWYsd0JBQy9CRixnQkFBaUIxMUIsRUFBTTAxQixnQkFDdkJELGlCQUFrQnoxQixFQUFNeTFCLGtCQUUxQmhuQyxHQUFJLENBQ0ZtNkUsY0FBZW42RSxFQUFHeTRFLGlCQUFpQjBCLGNBQ25DUyxhQUFjNTZFLEVBQUd5NEUsaUJBQWlCbUMsYUFDbENDLGtCQUFtQlIsc0JBQ2pCcjZFLEVBQUd5NEUsaUJBQWlCb0Msc0JBTXJCOXdELEdBQUFBLFFBQUFBLGNBQUNxZCxHQUFhcXpDLDJCQUErQmxwRSxFQUFTLElBSWpFLFVDbkNBLE1BQU11cEUsR0FBZ0J0QixpQ0FBZ0MsRUFBRzMzRCxnQkFDdkQsTUFBTSxhQUFFb1QsRUFBWSxHQUFFajFCLEVBQUUsV0FBRTJwQixHQUFlOUgsSUFDbkNpRyxFQUFVNkIsSUFFaEIsR0FBSW14RCxHQUFjQyw0QkFDaEIsT0FBT2h4RCxHQUFBQSxRQUFBQSxjQUFDK3dELEdBQWNDLDRCQUEyQixNQUduRCxNQUFNeHdDLEVBQVN0VixFQUFhLGVBQWUsR0FDckN1bEQsRUFBOEJ2bEQsRUFDbEMscUNBdUJGLE9BbkJBNmxELEdBQWNDLDhCQUFnQ1AsRUFDNUNqd0MsRUFDQSxDQUNFbitCLE9BQVEsQ0FDTnN1RSxlQUFnQixpREFDaEJDLHNCQUF1Qjd5RCxFQUFRa2pCLHlCQUEyQixFQUMxRC9ELGlCQUFpQixFQUNqQkQsa0JBQWtCLEdBRXBCaG5DLEdBQUksQ0FDRm02RSxjQUFlbjZFLEVBQUd5NEUsaUJBQWlCMEIsY0FDbkNTLGFBQWM1NkUsRUFBR3k0RSxpQkFBaUJtQyxhQUNsQ0Msa0JBQW1CUixzQkFDakJyNkUsRUFBR3k0RSxpQkFBaUJvQyxzQkFNckI5d0QsR0FBQUEsUUFBQUEsY0FBQyt3RCxHQUFjQyw0QkFBMkIsS0FBRyxJQUd0REQsR0FBY0MsNEJBQThCLEtBRTVDLFVDL0JBLDBDQVZtQ0MsQ0FBQ2h0QixFQUFVbm1DLElBQVl0VyxJQUN4RCxNQUFNczdELEVBQVVobEQsRUFBT3lJLGNBQWN1OEMsVUFFL0JvTyxFQUEyQnB6RCxFQUFPb04sYUFDdEMsNEJBR0YsT0FBT2xMLEdBQUFBLFFBQUFBLGNBQUNreEQsR0FBd0J0K0MsRUFBQUEsR0FBQUEsU0FBQSxDQUFDa3dDLFFBQVNBLEdBQWF0N0QsR0FBUyxFQ0xsRSxNQUFNMi9DLEdBQVdzb0IsaUNBQ2YsRUFBR0Msa0JBQW1CdC9DLEtBQVE1b0IsTUFDNUIsTUFBTSxhQUFFMGpCLEVBQVksT0FBRXZWLEVBQU0sS0FBRXBnQyxHQUFTaXlCLEVBQ2pDNG5FLEVBQWdCbGtELEVBQWEsaUJBQWlCLEdBR3BELE1BQWEsY0FGQXZWLEVBQU83N0IsSUFBSSxRQUdma21DLEdBQUFBLFFBQUFBLGNBQUNvdkQsRUFBYSxDQUFDejVELE9BQVFBLEVBQVFwZ0MsS0FBTUEsSUFHdkN5cUMsR0FBQUEsUUFBQUEsY0FBQ29RLEVBQVE1b0IsRUFBUyxJQUk3QixVQ0xBLE9BVHFCaW9FLGlDQUNuQixFQUFHMzNELGVBQWN0USxNQUNmLE1BQ00ycEUsRUFEU3I1RCxJQUNXb1QsYUFBYSxjQUFjLEdBRXJELE9BQU9sTCxHQUFBQSxRQUFBQSxjQUFDbXhELEVBQWUzcEUsRUFBUyxJQ0hwQyxNQUFNMXFCLElBQU0rMUIsRUFBQUEsR0FBQUEsT0FFQ2l3RCxJQUFVajZDLEVBQUFBLEdBQUFBLGlCQUNyQixDQUFDcHdDLEVBQU9xbEMsSUFBV0EsRUFBT3lJLGNBQWN1RixZQUN4Q3NsRCxTQUdXQyxtQkFBV0EsSUFBT3Z6RCxJQUM3QixNQUFNdXpELEVBQVd2ekQsRUFBT3lJLGNBQWN1RixXQUFXaHlDLElBQUksWUFDckQsT0FBTys0QixHQUFBQSxJQUFJNkMsTUFBTTI3RCxHQUFZQSxFQUFXdjBGLEVBQUcsRUFRaEM2dkYsSUFBMkI5akQsRUFBQUEsR0FBQUEsZ0JBQ3RDLENBQ0UsQ0FBQ3B3QyxFQUFPcWxDLElBQVdBLEVBQU95SSxjQUFjOHFELFdBQ3hDLENBQUM1NEYsRUFBT3FsQyxJQUFXQSxFQUFPeUksY0FBY29yQix3QkFDeEMsQ0FBQ2w1RCxFQUFPcWxDLElBQVdBLEVBQU95SSxjQUFjaWIsb0JBQW9CLENBQUMsZUFFL0QsQ0FBQzZ2QyxFQUFVMS9CLElBQ1QwL0IsRUFDRzVuRSxRQUFPLENBQUNzOUQsRUFBZUksRUFBVTBGLEtBQ2hDLElBQUtoNkQsR0FBQUEsSUFBSTZDLE1BQU15eEQsR0FBVyxPQUFPSixFQUVqQyxNQUFNTSxFQUFxQkYsRUFDeEIvK0MsV0FDQXBoQixRQUFPLEVBQUV6ckIsS0FBU28yRCxFQUFzQi96RCxTQUFTckMsS0FDakR1QixLQUFJLEVBQUVtYixFQUFRZ3lCLE1BQWUsQ0FDNUJBLFdBQVdwWCxFQUFBQSxHQUFBQSxLQUFJLENBQUVvWCxjQUNqQmh5QixTQUNBK3hCLEtBQU02aUQsRUFDTnB4QyxTQUFVLENBQUMsV0FBWW94QyxFQUFjNTBFLE9BR3pDLE9BQU84dUUsRUFBY3B5RixPQUFPMHlGLEVBQW1CLElBQzlDejBELEVBQUFBLEdBQUFBLFNBQ0YwMEQsU0FBU0MsR0FBaUJBLEVBQWF2OUMsT0FDdkNsdEMsS0FBSyswRCxHQUFlQSxFQUFXcDNCLFlBQy9COFYsYUFHTW92QyxrQkFBVUEsSUFBTzdoRCxJQUM1QixNQUFNNmhELEVBQVU3aEQsRUFBT3lJLGNBQWM0TyxPQUFPcjdDLElBQUksV0FDaEQsT0FBTys0QixHQUFBQSxJQUFJNkMsTUFBTWlxRCxHQUFXQSxFQUFVN2lGLEVBQUcsRUFHOUJnd0YsdUJBQXlCQSxJQUFPaHZELEdBQ3BDQSxFQUFPeUksY0FBY281QyxVQUFVN2xGLElBQUksT0FBUSxXQUd2Q3czRixzQkFBd0JBLElBQU94ekQsR0FDbkNBLEVBQU95SSxjQUFjbzVDLFVBQVU3bEYsSUFBSSxPQUcvQml6RixJQUFtQmxrRCxFQUFBQSxHQUFBQSxnQkFDOUIsQ0FDRSxDQUFDcHdDLEVBQU9xbEMsSUFBV0EsRUFBT3lJLGNBQWNWLE1BQ3hDLENBQUNwdEMsRUFBT3FsQyxJQUFXQSxFQUFPd0ksY0FBY08saUJBQ3hDLENBQUNwdUMsRUFBT3FsQyxJQUFXQSxFQUFPeUksY0FBYytxRCwwQkFFMUMsQ0FBQ3Z2QyxFQUFTbGIsRUFBZ0JoQixLQUN4QixHQUFJQSxFQUNGLE9BQU91YyxhQUFhdmMsRUFBS2tjLEVBQVMsQ0FBRWxiLGtCQUd0QixJQUlQMHFELDZCQUErQkEsSUFBT3p6RCxHQUMxQ0EsRUFBT3lJLGNBQWNvNUMsVUFBVTdsRixJQUFJLGNBRy9CNHpGLGtCQUFVQSxJQUFPNXZELElBQzVCLE1BQU00dkQsRUFBVTV2RCxFQUFPeUksY0FBYzRPLE9BQU9yN0MsSUFBSSxXQUNoRCxPQUFPKzRCLEdBQUFBLElBQUk2QyxNQUFNZzRELEdBQVdBLEVBQVU1d0YsRUFBRyxFQUc5Qmt3Rix1QkFBeUJBLElBQU9sdkQsR0FDcENBLEVBQU95SSxjQUFjbW5ELFVBQVU1ekYsSUFBSSxPQUFRLGlCQUd2Q296Rix3QkFBMEJBLElBQU9wdkQsR0FDckNBLEVBQU95SSxjQUFjbW5ELFVBQVU1ekYsSUFBSSxTQUcvQjAzRixzQkFBd0JBLElBQU8xekQsR0FDbkNBLEVBQU95SSxjQUFjbW5ELFVBQVU1ekYsSUFBSSxPQUcvQm16RixJQUFtQnBrRCxFQUFBQSxHQUFBQSxnQkFDOUIsQ0FDRSxDQUFDcHdDLEVBQU9xbEMsSUFBV0EsRUFBT3lJLGNBQWNWLE1BQ3hDLENBQUNwdEMsRUFBT3FsQyxJQUFXQSxFQUFPd0ksY0FBY08saUJBQ3hDLENBQUNwdUMsRUFBT3FsQyxJQUFXQSxFQUFPeUksY0FBY2lyRCwwQkFFMUMsQ0FBQ3p2QyxFQUFTbGIsRUFBZ0JoQixLQUN4QixHQUFJQSxFQUNGLE9BQU91YyxhQUFhdmMsRUFBS2tjLEVBQVMsQ0FBRWxiLGtCQUd0QixJQUlQd21ELHFCQUF1QkEsSUFBT3Z2RCxHQUNsQ0EsRUFBT3lJLGNBQWM0TyxPQUFPcjdDLElBQUksU0FHNUJxekYsdUJBQXlCQSxJQUFPcnZELEdBQ3BDQSxFQUFPeUksY0FBYzRPLE9BQU9yN0MsSUFBSSxXQUc1QnN6RiwyQkFBNkJBLElBQU90dkQsR0FDeENBLEVBQU95SSxjQUFjNE8sT0FBT3I3QyxJQUFJLGVBRzVCMjNGLDhCQUFnQ0EsSUFBTzN6RCxHQUMzQ0EsRUFBT3lJLGNBQWM0TyxPQUFPcjdDLElBQUksa0JBRzVCd3pGLElBQThCemtELEVBQUFBLEdBQUFBLGdCQUN6QyxDQUNFLENBQUNwd0MsRUFBT3FsQyxJQUFXQSxFQUFPeUksY0FBY1YsTUFDeEMsQ0FBQ3B0QyxFQUFPcWxDLElBQVdBLEVBQU93SSxjQUFjTyxpQkFDeEMsQ0FBQ3B1QyxFQUFPcWxDLElBQVdBLEVBQU95SSxjQUFja3JELGtDQUUxQyxDQUFDMXZDLEVBQVNsYixFQUFnQjZxRCxLQUN4QixHQUFJQSxFQUNGLE9BQU90dkMsYUFBYXN2QyxFQUFnQjN2QyxFQUFTLENBQUVsYixrQkFHakMsSUFJUDRtRCxtQ0FBcUNBLElBQU8zdkQsR0FDaERBLEVBQU95SSxjQUFjZ3JCLGVBQWV6M0QsSUFBSSxlQUdwQzYzRiwyQkFBNkJBLElBQU83ekQsR0FDeENBLEVBQU95SSxjQUFjZ3JCLGVBQWV6M0QsSUFBSSxPQUdwQ3l6RixJQUF3QjFrRCxFQUFBQSxHQUFBQSxnQkFDbkMsQ0FDRSxDQUFDcHdDLEVBQU9xbEMsSUFBV0EsRUFBT3lJLGNBQWNWLE1BQ3hDLENBQUNwdEMsRUFBT3FsQyxJQUFXQSxFQUFPd0ksY0FBY08saUJBQ3hDLENBQUNwdUMsRUFBT3FsQyxJQUFXQSxFQUFPeUksY0FBY29yRCwrQkFFMUMsQ0FBQzV2QyxFQUFTbGIsRUFBZ0JoQixLQUN4QixHQUFJQSxFQUNGLE9BQU91YyxhQUFhdmMsRUFBS2tjLEVBQVMsQ0FBRWxiLGtCQUd0QixJQUlQZ25ELDZCQUErQkEsSUFBTy92RCxHQUMxQ0EsRUFBT3lJLGNBQWN1RixXQUFXaHlDLElBQUkscUJBR2hDaTBGLCtCQUFpQ0EsSUFDNUMsaURBRVdLLElBQWdCdmxELEVBQUFBLEdBQUFBLGlCQUMzQixDQUFDcHdDLEVBQU9xbEMsSUFBV0EsRUFBT3lJLGNBQWN5QyxnQkFDeEMsQ0FBQ3Z3QyxFQUFPcWxDLElBQ05BLEVBQU95SSxjQUFjaWIsb0JBQW9CLENBQUMsYUFBYyxjQUUxRCxDQUFDb3dDLEVBQVlDLElBQ05oL0QsR0FBQUEsSUFBSTZDLE1BQU1rOEQsR0FDVi8rRCxHQUFBQSxJQUFJNkMsTUFBTW04RCxHQUVScjlGLE9BQU9vaUMsUUFBUWc3RCxFQUFXdjdELFFBQVE1TSxRQUN2QyxDQUFDOFgsR0FBTWlrRCxFQUFZOWpDLE1BQ2pCLE1BQU1rbEMsRUFBaUJpTCxFQUFnQi8zRixJQUFJMHJGLEdBRTNDLE9BREFqa0QsRUFBSWlrRCxHQUFjb0IsR0FBZ0J2d0QsUUFBVXFyQixFQUNyQ25nQixDQUFHLEdBRVosQ0FBQyxHQVJxQ3F3RCxFQUFXdjdELE9BRGhCLENBQUMsSUNuTDNCWixzQkFDWEEsQ0FBQ21mLEVBQWE5VyxJQUNkLENBQUNybEMsS0FBVXRFLElBQ08ycEMsRUFBT3lJLGNBQWN1OEMsV0FDbkJsdUMsS0FBZXpnRCxHQUd4QjQ0RixHQUFtQndDLGdDQUM5QixJQUFNLENBQUMzNkMsRUFBYTlXLElBQ1hBLEVBQU9nMEQsZUFBZS9FLHFCQ1RwQmhrRCxHQUF5QndtRCxnQ0FDcEMsSUFBTSxDQUFDMzZDLEVBQWE5VyxLQUNsQixNQUFNa0wsRUFBY2xMLEVBQU95SSxjQUFjMEMsc0JBQ3pDLElBQUludUMsRUFBTzg1QyxJQUVYLE9BQUs1TCxHQUVMQSxFQUFZWixXQUFXem1DLFNBQVEsRUFBRWtrRixFQUFTejBELE1BQ3hDLE1BQU1uNkIsRUFBT202QixHQUFZdDNCLElBQUksUUFFaEIsY0FBVDdDLElBQ0Y2RCxFQUFPQSxFQUFLcEQsS0FDVixJQUFJbTdCLEdBQUFBLElBQUksQ0FDTixDQUFDZ3pELEdBQVV6MEQsS0FHakIsSUFHS3QyQixHQWRrQkEsQ0FjZCxJQ2xCRml5RixJQUFtQmxrRCxFQUFBQSxHQUFBQSxnQkFDOUIsQ0FDRSxDQUFDcHdDLEVBQU9xbEMsSUFBV0EsRUFBT3lJLGNBQWNWLE1BQ3hDLENBQUNwdEMsRUFBT3FsQyxJQUFXQSxFQUFPd0ksY0FBY08saUJBQ3hDLENBQUNwdUMsRUFBT3FsQyxJQUFXQSxFQUFPeUksY0FBYytxRCx3QkFDeEMsQ0FBQzc0RixFQUFPcWxDLElBQVdBLEVBQU95SSxjQUFjZ3JELGlDQUUxQyxDQUFDeHZDLEVBQVNsYixFQUFnQmhCLEVBQUtzb0QsSUFDekJ0b0QsRUFDS3VjLGFBQWF2YyxFQUFLa2MsRUFBUyxDQUFFbGIsbUJBR2xDc25ELEVBQ0ssNkJBQTZCQSxjQUR0QyxJQ1FKLHFCQXJCZ0JqbUIsRUFBR3Z5QyxTQUFRbUMsZ0JBQ3pCLE1BQU0sR0FBRTdoQixFQUFFLGFBQUVpMUIsR0FBaUJwVCxLQUN2QixXQUFFaTZELEdBQWU5N0UsRUFBR3k0RSxpQkFBaUJDLFFBQ3JDcUQsRUFBYTltRCxFQUFhLDhCQUVoQyxPQUFLNm1ELEVBQVdwOEQsRUFBUSxXQUd0QnFLLEdBQUFBLFFBQUFBLGNBQUNneUQsRUFBVSxDQUNUejhGLEtBQUssVUFDTFIsTUFBTzRnQyxFQUFPMG1CLFFBQ2Q3SixVQUFVLHFFQU42QixJQU92QyxFQytJTixpQkF6Sll5L0MsRUFBR3Q4RCxTQUFRbUMsZ0JBQ3JCLE1BQU0xMUIsRUFBTXV6QixHQUFRdnpCLEtBQU8sQ0FBQyxHQUN0QixHQUFFNlQsRUFBRSxhQUFFaTFCLEVBQVksV0FBRXRMLEdBQWU5SCxLQUNuQyxlQUFFb3JCLEdBQW1CdGpCLEtBQ3JCLGFBQUVzeUQsRUFBWSxjQUFFQyxFQUFhLFFBQUVDLEVBQU8sU0FBRUMsR0FBYXA4RSxFQUFHeTRFLGtCQUV4RCxLQUFFMWtELEdBQVNvb0QsRUFEQyxRQUVaLFdBQUVwNUMsRUFBVSxZQUFFczVDLEVBQVcsYUFBRUMsR0FBaUJKLEVBRmhDLFFBR1gxdEQsRUFBTyt0RCxHQUFhSCxJQUNyQmx2QyxFQUFhRCxFQUFpQjdtQixjQUFjajZCLEdBQU8sR0FDbkR5dUYsS0FDSnp1RixFQUFJN00sTUFDSjZNLEVBQUkwK0IsV0FDSjErQixFQUFJNHFELFFBQ0o3SixFQUFXeHJELE9BQVMsR0FFaEI4NkYsRUFBWVAsRUFBYSxhQUN6QlEsRUFBbUJSLEVBQWEsb0JBQ2hDUyxFQUFzQnpuRCxFQUFhLHVCQUNuQzBuRCxFQUF3QjFuRCxFQUFhLDhCQUFiQSxHQUN4QjJuRCxFQUF5QjNuRCxFQUFhLCtCQUFiQSxHQUt6QjRuRCxHQUFrQjlnRSxFQUFBQSxHQUFBQSxjQUFZLEtBQzlCZ25CLEVBQ0Z1NUMsSUFFQUQsR0FDRixHQUNDLENBQUN0NUMsRUFBWXM1QyxFQUFhQyxJQUN2QlEsR0FBc0IvZ0UsRUFBQUEsR0FBQUEsY0FDMUIsQ0FBQ255QixFQUFHbXpGLEtBQ0VBLEVBQ0ZWLEVBQVksQ0FBRVcsTUFBTSxJQUVwQlYsRUFBYSxDQUFFVSxNQUFNLEdBQ3ZCLEdBRUYsQ0FBQ1gsRUFBYUMsSUFNaEIsT0FBZ0MsSUFBNUIvOUYsT0FBT2dILEtBQUs0RyxHQUFLekssT0FDWixLQUlQcW9DLEdBQUFBLFFBQUFBLGNBQUM0eUQsRUFBc0IxekIsU0FBUSxDQUFDbnFFLE1BQU9pMUMsR0FDckNoSyxHQUFBQSxRQUFBQSxjQUFDNnlELEVBQXVCM3pCLFNBQVEsQ0FBQ25xRSxNQUFPeTlGLEdBQ3RDeHlELEdBQUFBLFFBQUFBLGNBQUEsT0FDRXdTLFVBQVUsK0RBQ1YseUJBQXdCL04sR0FFdkJvc0QsRUFDQzd3RCxHQUFBQSxRQUFBQSxjQUFBQSxHQUFBQSxRQUFBQSxTQUFBLEtBQ0VBLEdBQUFBLFFBQUFBLGNBQUN5eUQsRUFBUyxDQUFDbjNDLFNBQVV0QyxFQUFZZ00sU0FBVTh0QyxHQUN6Qzl5RCxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLGtGQUFpRixRQUluR3hTLEdBQUFBLFFBQUFBLGNBQUMweUQsRUFBZ0IsQ0FDZnAzQyxTQUFVdEMsRUFDVnVCLFFBQVN3NEMsS0FJYi95RCxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLGtGQUFpRixRQUloRixJQUFsQnB3QyxFQUFJUixXQUNIbytCLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsd0VBQXVFLGNBSXhFLElBQWhCcHdDLEVBQUkxSixTQUNIc25DLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsd0VBQXVFLFdBSXpGeFMsR0FBQUEsUUFBQUEsY0FBQSxVQUFRd1MsVUFBVSwwRUFBeUUsVUFHM0Z4UyxHQUFBQSxRQUFBQSxjQUFBLE1BQ0V3UyxXQUFXbUksRUFBQUEsR0FBQUEsU0FBVyx3Q0FBeUMsQ0FDN0Qsb0RBQXFEM0IsS0FHdERBLEdBQ0NoWixHQUFBQSxRQUFBQSxjQUFBQSxHQUFBQSxRQUFBQSxTQUFBLEtBQ0c1OUIsRUFBSTdNLE1BQ0h5cUMsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSxnQ0FDWnhTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsMkRBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLGtGQUFpRixRQUdqR3hTLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsb0ZBQ2Jwd0MsRUFBSTdNLFFBTVo2TSxFQUFJMCtCLFdBQ0hkLEdBQUFBLFFBQUFBLGNBQUEsTUFBSXdTLFVBQVUsZ0NBQ1p4UyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLCtCQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxrRkFBaUYsYUFHakd4UyxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLG9GQUNicHdDLEVBQUkwK0IsYUFNWjErQixFQUFJNHFELFFBQ0hodEIsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSxnQ0FDWnhTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsK0JBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLGtGQUFpRixVQUdqR3hTLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsb0ZBQ2Jwd0MsRUFBSTRxRCxXQU9oQjdKLEVBQVd4ckQsT0FBUyxHQUNuQnFvQyxHQUFBQSxRQUFBQSxjQUFDMnlELEVBQW1CLENBQ2xCTyxlQUFnQjl3RixFQUNoQit3RixrQkFBbUJod0MsRUFDbkJyckIsVUFBV0EsT0FNVSxFQ3pIckMsdUNBekI2QnM3RCxFQUFHbmxDLG9CQUM5QixNQUFNQyxFQUFVRCxHQUFlQyxTQUFXLENBQUMsRUFFM0MsT0FBb0MsSUFBaEMxNUQsT0FBT2dILEtBQUsweUQsR0FBU3YyRCxPQUNoQixLQUdGbkQsT0FBT29pQyxRQUFRczNCLEdBQVNweEQsS0FBSSxFQUFFdkIsRUFBS3hHLEtBQ3hDaXJDLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3prQyxJQUFLLEdBQUdBLEtBQU94RyxJQUFTeTlDLFVBQVUsK0JBQ3JDeFMsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxrRkFDYmozQyxHQUVIeWtDLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsb0ZBQ2J6OUMsS0FHTCxFQytGSixnQ0EzR3NCcytGLEVBQUcxOUQsU0FBUW1DLGdCQUMvQixNQUFNbTJCLEVBQWdCdDRCLEdBQVFzNEIsZUFBaUIsQ0FBQyxHQUMxQyxHQUFFaDRDLEVBQUUsYUFBRWkxQixFQUFZLFdBQUV0TCxHQUFlOUgsS0FDbkMsZUFBRW9yQixHQUFtQnRqQixLQUNyQixhQUFFc3lELEVBQVksY0FBRUMsRUFBYSxRQUFFQyxFQUFPLFNBQUVDLEdBQWFwOEUsRUFBR3k0RSxpQkFDeEQ0RSxFQUFZLGlCQUNaLEtBQUV0cEQsR0FBU29vRCxFQUFRa0IsSUFDbkIsV0FBRXQ2QyxFQUFVLFlBQUVzNUMsRUFBVyxhQUFFQyxHQUFpQkosRUFBY21CLElBQ3pEN3VELEVBQU8rdEQsR0FBYUgsSUFDckJsdkMsRUFBYUQsRUFBaUI3bUIsY0FBYzR4QixHQUFpQixHQUM3RDRpQyxLQUFrQjVpQyxFQUFjQyxTQUFXL0ssRUFBV3hyRCxPQUFTLEdBQy9EODZGLEVBQVlQLEVBQWEsYUFDekJRLEVBQW1CUixFQUFhLG9CQUNoQ1MsRUFBc0J6bkQsRUFBYSx1QkFDbkMwbkQsRUFBd0IxbkQsRUFBYSw4QkFBYkEsR0FDeEIybkQsRUFBeUIzbkQsRUFBYSwrQkFBYkEsR0FLekI0bkQsR0FBa0I5Z0UsRUFBQUEsR0FBQUEsY0FBWSxLQUM5QmduQixFQUNGdTVDLElBRUFELEdBQ0YsR0FDQyxDQUFDdDVDLEVBQVlzNUMsRUFBYUMsSUFDdkJRLEdBQXNCL2dFLEVBQUFBLEdBQUFBLGNBQzFCLENBQUNueUIsRUFBR216RixLQUNFQSxFQUNGVixFQUFZLENBQUVXLE1BQU0sSUFFcEJWLEVBQWEsQ0FBRVUsTUFBTSxHQUN2QixHQUVGLENBQUNYLEVBQWFDLElBTWhCLE9BQTBDLElBQXRDLzlGLE9BQU9nSCxLQUFLeXlELEdBQWV0MkQsT0FDdEIsS0FJUHFvQyxHQUFBQSxRQUFBQSxjQUFDNHlELEVBQXNCMXpCLFNBQVEsQ0FBQ25xRSxNQUFPaTFDLEdBQ3JDaEssR0FBQUEsUUFBQUEsY0FBQzZ5RCxFQUF1QjN6QixTQUFRLENBQUNucUUsTUFBT3k5RixHQUN0Q3h5RCxHQUFBQSxRQUFBQSxjQUFBLE9BQ0V3UyxVQUFVLHlFQUNWLHlCQUF3Qi9OLEdBRXZCb3NELEVBQ0M3d0QsR0FBQUEsUUFBQUEsY0FBQUEsR0FBQUEsUUFBQUEsU0FBQSxLQUNFQSxHQUFBQSxRQUFBQSxjQUFDeXlELEVBQVMsQ0FBQ24zQyxTQUFVdEMsRUFBWWdNLFNBQVU4dEMsR0FDekM5eUQsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxrRkFBaUYsa0JBSW5HeFMsR0FBQUEsUUFBQUEsY0FBQzB5RCxFQUFnQixDQUNmcDNDLFNBQVV0QyxFQUNWdUIsUUFBU3c0QyxLQUliL3lELEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsa0ZBQWlGLGlCQUtsR3liLEVBQWNFLGNBQ2JudUIsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSx3RUFDYnliLEVBQWNFLGNBR25CbnVCLEdBQUFBLFFBQUFBLGNBQUEsVUFBUXdTLFVBQVUsMEVBQXlFLFVBRzNGeFMsR0FBQUEsUUFBQUEsY0FBQSxNQUNFd1MsV0FBV21JLEVBQUFBLEdBQUFBLFNBQVcsd0NBQXlDLENBQzdELG9EQUFxRDNCLEtBR3REQSxHQUNDaFosR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSxnQ0FDWnhTLEdBQUFBLFFBQUFBLGNBQUNvekQsbUNBQW9CLENBQUNubEMsY0FBZUEsS0FHeEM5SyxFQUFXeHJELE9BQVMsR0FDbkJxb0MsR0FBQUEsUUFBQUEsY0FBQzJ5RCxFQUFtQixDQUNsQk8sZUFBZ0JqbEMsRUFDaEJrbEMsa0JBQW1CaHdDLEVBQ25CcnJCLFVBQVdBLE9BTVUsRUM1RXJDLCtCQTFCMEJ5N0QsRUFDeEJMLGlCQUNBcDdELFlBQ0FxN0Qsd0JBRUEsTUFBTSxHQUFFbDlFLEdBQU82aEIsS0FDVCxhQUFFbzZELEdBQWlCajhFLEVBQUd5NEUsaUJBRXRCc0QsRUFBYUUsRUFBYSxjQUNoQyxPQUFPaUIsRUFBa0JyMkYsS0FBSzAyRixHQUM1Qnh6RCxHQUFBQSxRQUFBQSxjQUFDZ3lELEVBQVUsQ0FDVHoyRixJQUFLaTRGLEVBQ0xqK0YsS0FBTWkrRixFQUNOeitGLE1BQU9tK0YsRUFBZU0sR0FDdEJoaEQsVUFBVSx1REFFWixFQ3dISiwwQkFwSXFCaWhELEVBQUc5OUQsU0FBUW1DLGdCQUM5QixNQUFNeTVCLEVBQWU1N0IsR0FBUTQ3QixjQUFnQixDQUFDLEdBQ3hDLEdBQUV0N0MsRUFBRSxhQUFFaTFCLEVBQVksV0FBRXRMLEdBQWU5SCxLQUNuQyxlQUFFb3JCLEdBQW1CdGpCLEtBQ3JCLGFBQUVzeUQsRUFBWSxjQUFFQyxFQUFhLFFBQUVDLEVBQU8sU0FBRUMsR0FBYXA4RSxFQUFHeTRFLGlCQUN4RDRFLEVBQVksZ0JBQ1osS0FBRXRwRCxHQUFTb29ELEVBQVFrQixJQUNuQixXQUFFdDZDLEVBQVUsWUFBRXM1QyxFQUFXLGFBQUVDLEdBQWlCSixFQUFjbUIsSUFDekQ3dUQsRUFBTyt0RCxHQUFhSCxJQUNyQmx2QyxFQUFhRCxFQUFpQjdtQixjQUFjazFCLEdBQWdCLEdBQzVEcy9CLEtBQ0p0L0IsRUFBYW5PLGFBQ2JtTyxFQUFhMXJCLEtBQ2JzZCxFQUFXeHJELE9BQVMsR0FFaEI4NkYsRUFBWVAsRUFBYSxhQUN6QlEsRUFBbUJSLEVBQWEsb0JBQ2hDd0IsRUFBcUJ4b0QsRUFBYSxzQ0FDbEMyWSxFQUFPM1ksRUFBYSxRQUNwQnluRCxFQUFzQnpuRCxFQUFhLHVCQUNuQzBuRCxFQUF3QjFuRCxFQUFhLDhCQUFiQSxHQUN4QjJuRCxFQUF5QjNuRCxFQUFhLCtCQUFiQSxHQUt6QjRuRCxHQUFrQjlnRSxFQUFBQSxHQUFBQSxjQUFZLEtBQzlCZ25CLEVBQ0Z1NUMsSUFFQUQsR0FDRixHQUNDLENBQUN0NUMsRUFBWXM1QyxFQUFhQyxJQUN2QlEsR0FBc0IvZ0UsRUFBQUEsR0FBQUEsY0FDMUIsQ0FBQ255QixFQUFHbXpGLEtBQ0VBLEVBQ0ZWLEVBQVksQ0FBRVcsTUFBTSxJQUVwQlYsRUFBYSxDQUFFVSxNQUFNLEdBQ3ZCLEdBRUYsQ0FBQ1gsRUFBYUMsSUFNaEIsT0FBeUMsSUFBckMvOUYsT0FBT2dILEtBQUsrMUQsR0FBYzU1RCxPQUNyQixLQUlQcW9DLEdBQUFBLFFBQUFBLGNBQUM0eUQsRUFBc0IxekIsU0FBUSxDQUFDbnFFLE1BQU9pMUMsR0FDckNoSyxHQUFBQSxRQUFBQSxjQUFDNnlELEVBQXVCM3pCLFNBQVEsQ0FBQ25xRSxNQUFPeTlGLEdBQ3RDeHlELEdBQUFBLFFBQUFBLGNBQUEsT0FDRXdTLFVBQVUsd0VBQ1YseUJBQXdCL04sR0FFdkJvc0QsRUFDQzd3RCxHQUFBQSxRQUFBQSxjQUFBQSxHQUFBQSxRQUFBQSxTQUFBLEtBQ0VBLEdBQUFBLFFBQUFBLGNBQUN5eUQsRUFBUyxDQUFDbjNDLFNBQVV0QyxFQUFZZ00sU0FBVTh0QyxHQUN6Qzl5RCxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLGtGQUFpRiwyQkFJbkd4UyxHQUFBQSxRQUFBQSxjQUFDMHlELEVBQWdCLENBQ2ZwM0MsU0FBVXRDLEVBQ1Z1QixRQUFTdzRDLEtBSWIveUQsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxrRkFBaUYsMEJBSW5HeFMsR0FBQUEsUUFBQUEsY0FBQSxVQUFRd1MsVUFBVSwwRUFBeUUsVUFHM0Z4UyxHQUFBQSxRQUFBQSxjQUFBLE1BQ0V3UyxXQUFXbUksRUFBQUEsR0FBQUEsU0FBVyx3Q0FBeUMsQ0FDN0Qsb0RBQXFEM0IsS0FHdERBLEdBQ0NoWixHQUFBQSxRQUFBQSxjQUFBQSxHQUFBQSxRQUFBQSxTQUFBLEtBQ0d1eEIsRUFBYW5PLGFBQ1pwakIsR0FBQUEsUUFBQUEsY0FBQSxNQUFJd1MsVUFBVSxnQ0FDWnhTLEdBQUFBLFFBQUFBLGNBQUMwekQsRUFBa0IsQ0FDakIvOUQsT0FBUTQ3QixFQUNSejVCLFVBQVdBLEtBS2hCeTVCLEVBQWExckIsS0FDWjdGLEdBQUFBLFFBQUFBLGNBQUEsTUFBSXdTLFVBQVUsZ0NBQ1p4UyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLDJEQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxrRkFBaUYsT0FHakd4UyxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLG9GQUNkeFMsR0FBQUEsUUFBQUEsY0FBQzZqQixFQUFJLENBQ0g1dkQsT0FBTyxTQUNQa3VELEtBQU1JLFlBQVlnUCxFQUFhMXJCLE1BRTlCMHJCLEVBQWExckIsU0FRM0JzZCxFQUFXeHJELE9BQVMsR0FDbkJxb0MsR0FBQUEsUUFBQUEsY0FBQzJ5RCxFQUFtQixDQUNsQk8sZUFBZ0IzaEMsRUFDaEI0aEMsa0JBQW1CaHdDLEVBQ25CcnJCLFVBQVdBLE9BTVUsRUMzR3JDLHlCQXBCb0I2N0QsRUFBR2grRCxTQUFRbUMsZ0JBQzdCLElBQUtuQyxHQUFReXRCLFlBQWEsT0FBTyxLQUVqQyxNQUFNLGFBQUVsWSxHQUFpQnBULElBQ25CODdELEVBQVcxb0QsRUFBYSxZQUU5QixPQUNFbEwsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSx3RUFDYnhTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsOEZBQ2J4UyxHQUFBQSxRQUFBQSxjQUFDNHpELEVBQVEsQ0FBQ3g4RSxPQUFRdWUsRUFBT3l0QixlQUV2QixFQ1RWLE9BRjJCcXNDLGdDQUFnQ29FLHNCQ0EzRCxNQUFNQyxHQUFrQnJFLGlDQUN0QixFQUFHOTVELFNBQVFtQyxZQUFXNDNELGtCQUFtQnFFLE1BQ3ZDLE1BQU0sYUFBRTdvRCxHQUFpQnBULElBQ25CazhELEVBQXVCOW9ELEVBQzNCLHdDQUVJK29ELEVBQWEvb0QsRUFBYSw4QkFDMUJncEQsRUFBaUJocEQsRUFBYSxrQ0FDOUJpcEQsRUFBc0JqcEQsRUFDMUIsdUNBR0YsT0FDRWxMLEdBQUFBLFFBQUFBLGNBQUFBLEdBQUFBLFFBQUFBLFNBQUEsS0FDRUEsR0FBQUEsUUFBQUEsY0FBQyt6RCxFQUFlLENBQUNwK0QsT0FBUUEsSUFDekJxSyxHQUFBQSxRQUFBQSxjQUFDZzBELEVBQW9CLENBQUNyK0QsT0FBUUEsRUFBUW1DLFVBQVdBLElBQ2pEa0ksR0FBQUEsUUFBQUEsY0FBQ2kwRCxFQUFVLENBQUN0K0QsT0FBUUEsRUFBUW1DLFVBQVdBLElBQ3ZDa0ksR0FBQUEsUUFBQUEsY0FBQ20wRCxFQUFtQixDQUFDeCtELE9BQVFBLEVBQVFtQyxVQUFXQSxJQUNoRGtJLEdBQUFBLFFBQUFBLGNBQUNrMEQsRUFBYyxDQUFDditELE9BQVFBLEVBQVFtQyxVQUFXQSxJQUMxQyxJQUtULFVDNkJBLHdCQXBEbUJzOEQsRUFBR3orRCxTQUFRbUMsZ0JBQzVCLE1BQU0sR0FBRTdoQixFQUFFLGFBQUVpMUIsR0FBaUJwVCxLQUN2QixhQUFFbzZELEVBQVksUUFBRUUsR0FBWW44RSxFQUFHeTRFLGtCQUMvQixxQkFBRTJGLEVBQW9CLGNBQUVqRSxHQUFrQm42RSxFQUFHeTRFLGlCQUFpQkMsUUFDOUR0c0UsRUFBU3BNLEVBQUd5NEUsaUJBQWlCNEYsWUFDN0IzMEMsRUFBV3ptRCxNQUFNMkQsUUFBUTg0QixHQUFRZ3FCLFVBQVlocUIsRUFBT2dxQixTQUFXLElBQy9ELEtBQUUzVixHQUFTb29ELEVBQVEsY0FDbkJtQyxFQUFhckMsRUFBYSxjQUMxQlUsRUFBd0IxbkQsRUFBYSw4QkFBYkEsR0FDeEJtWSxFQUFhK3NDLEVBQWN6NkQsRUFBUXRULEdBS3pDLE9BQXVDLElBQW5DN3RCLE9BQU9nSCxLQUFLNm5ELEdBQVkxckQsT0FDbkIsS0FJUHFvQyxHQUFBQSxRQUFBQSxjQUFDNHlELEVBQXNCMXpCLFNBQVEsQ0FBQ25xRSxNQUFPaTFDLEdBQ3JDaEssR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSx1RUFDYnhTLEdBQUFBLFFBQUFBLGNBQUEsVUFDR3hyQyxPQUFPb2lDLFFBQVF5c0IsR0FBWXZtRCxLQUFJLEVBQUVxeEQsRUFBY3FtQyxNQUM5QyxNQUFNajFDLEVBQWFJLEVBQVMvaEQsU0FBU3V3RCxHQUMvQnNtQyxFQUFvQkosRUFBcUJsbUMsRUFBY3g0QixHQUU3RCxPQUNFcUssR0FBQUEsUUFBQUEsY0FBQSxNQUNFemtDLElBQUs0eUQsRUFDTDNiLFdBQVdtSSxFQUFBQSxHQUFBQSxTQUFXLCtCQUFnQyxDQUNwRCx5Q0FBMEM0RSxLQUc1Q3ZmLEdBQUFBLFFBQUFBLGNBQUN1MEQsRUFBVSxDQUNUaC9GLEtBQU00NEQsRUFDTng0QixPQUFRNitELEVBQ1JDLGtCQUFtQkEsSUFFbEIsTUFLa0IsRUMxQ3JDLE9BRjBCaEYsZ0NBQWdDaUYscUJDaUUxRCxPQTVEQSxTQUFTNXhELDRCQUFVLEdBQUU3c0IsRUFBRSxVQUFFNmhCLElBRXZCLEdBQUk3aEIsRUFBR3k0RSxpQkFBa0IsQ0FDdkIsTUFBTW1DLEVyQlhzQjhELEVBQUNwRSxFQUFVejRELEtBQ3pDLE1BQU0sR0FBRTdoQixHQUFPNmhCLElBRWYsR0FBd0IsbUJBQWJ5NEQsRUFDVCxPQUFPLEtBR1QsTUFBTSxXQUFFd0IsR0FBZTk3RSxFQUFHeTRFLGlCQUUxQixPQUFRLzRELEdBQ040NkQsRUFBUzU2RCxJQUNUbzhELEVBQVdwOEQsRUFBUSxZQUNuQkEsR0FBUXZ6QixLQUNSdXpCLEdBQVFzNEIsZUFDUnQ0QixHQUFRNDdCLFlBQVksRXFCSENvakMsQ0FDbkIxK0UsRUFBR3k0RSxpQkFBaUJtQyxhQUNwQi80RCxHQUdGdGpDLE9BQU9vakMsT0FBTzFpQyxLQUFLK2dCLEdBQUd5NEUsaUJBQWtCLENBQUVtQyxlQUFjVCxlQUMxRCxDQUdBLEdBQW1DLG1CQUF4Qm42RSxFQUFHbTVDLGtCQUFtQ241QyxFQUFHeTRFLGlCQUFrQixDQUNwRSxNQUFNa0csRUFBYWpGLFlBQ2pCLENBQ0V2Z0MsaUJBQWtCbjVDLEVBQUd5NEUsaUJBQWlCdC9CLGlCQUN0QzNDLHdCQUF5QngyQyxFQUFHeTRFLGlCQUFpQmppQyx3QkFDN0N3QyxpQkFBa0JoNUMsRUFBR3k0RSxpQkFBaUJ6L0IsaUJBQ3RDSyx5QkFBMEJyNUMsRUFBR3k0RSxpQkFBaUJwL0IseUJBQzlDRCx5QkFBMEJwNUMsRUFBR3k0RSxpQkFBaUJyL0IseUJBQzlDVyxvQkFBcUIvNUMsRUFBR3k0RSxpQkFBaUIxK0Isb0JBQ3pDSSxvQkFBcUJuNkMsRUFBR3k0RSxpQkFBaUJ0K0Isb0JBQ3pDRCxtQkFBb0JsNkMsRUFBR3k0RSxpQkFBaUJ2K0IsbUJBQ3hDL0ksZ0JBQWlCbnhDLEVBQUd5NEUsaUJBQWlCdG5DLGdCQUNyQytFLGdCQUFpQmwyQyxFQUFHeTRFLGlCQUFpQnZpQyxnQkFDckN2RSx5QkFBMkJqeUIsR0FDekIxZixFQUFHeTRFLGlCQUFpQi90RCxRQUFRdkssY0FBY1QsSUFDNUNnd0Isb0JBQXNCaHdCLEdBQ3BCMWYsRUFBR3k0RSxpQkFBaUJtRyxTQUFTeitELGNBQWNULElBQVMxK0IsT0FFeEQ2Z0MsS0FHRnRqQyxPQUFPb2pDLE9BQU8xaUMsS0FBSytnQixHQUFJMitFLEVBQ3pCLENBR0EsTUFBTWh2QyxFQzFDZ0N3bUMsQ0FBQ3QwRCxHQUNWOHRCLENBQUNqd0IsRUFBUWd5RCxFQUFZLFFBQ2hELE1BQU0sR0FBRTF4RSxHQUFPNmhCLElBYWYsR0FMa0M3aEIsRUFBR3kyRSwwQkFDbkMvMkQsRUFDQWd5RCxHQUlBLE9BQU8sRUFHVCxNQUFNcCtCLEVBQW9CMTJCLEdBQUFBLElBQUk2QyxNQUFNQyxHQUVwQyxJQUFLNHpCLEtBQXNCQyxFQUFBQSxHQUFBQSxTQUFjN3pCLEdBQ3ZDLE9BQU8sRUFHVCxNQUFNbS9ELEVBQW1CdnJDLEVBQ3JCNXpCLEVBQU83N0IsSUFBSSxvQkFDWDY3QixFQUFPbS9ELGlCQUNMQyxFQUFrQnhyQyxFQUNwQjV6QixFQUFPNzdCLElBQUksbUJBQ1g2N0IsRUFBT28vRCxnQkFFWCxNQUMrQixpQkFBckJELEdBQXNELEtBQXJCQSxHQUNiLGlCQUFwQkMsR0FBb0QsS0FBcEJBLENBQXVCLEVEUXRDM0ksQ0FBeUJ0MEQsSUFDOUM4dEIscUJBQXNCb3ZDLEdBQTZCckYsWUFDekQsQ0FDRS9wQyx3QkFFRjl0QixLQU1GLEdBSEE1aUMsS0FBSytnQixHQUFHMnZDLHFCQUF1Qm92QyxFQUMvQjkvRixLQUFLK2dCLEdBQUdnL0UsMEJBQTRCcnZDLEVBRWhDM3ZDLEVBQUd5NEUsaUJBQWtCLENBQ3ZCLE1BQU0sY0FBRXBsQyxHQUFrQnFtQyxZQUN4QixDQUNFcm1DLGNBQWVyekMsRUFBR3k0RSxpQkFBaUJwbEMsZUFFckN4eEIsS0FHRjVpQyxLQUFLK2dCLEdBQUdxekMsY0FBZ0JBLENBQzFCLENBQ0YsRUVnR0EsVUFqR29CNHJDLEVBQUdqL0UsU0FDckIsTUFBTXU1RSxFQUF1QnY1RSxFQUFHdTVFLHNCQUF3QjJGLHdCQUNsRDdGLEVBQTBCcjVFLEVBQUdxNUUseUJBQTJCOEYsMkJBRTlELE1BQU8sQ0FDTHR5RCxVQUFTLEdBQ1Q3c0IsR0FBSSxDQUNGNnNFLFFBQ0EwTSxxQkFBc0IyRix3QkFDdEI3Rix3QkFBeUI4Riw0QkFFM0JwM0QsV0FBWSxDQUNWNGtELFNBQVEsU0FDUitLLGtCQUFpQixvQkFDakJ5QixjQUFhLGdCQUNiZSxVQUFXalIsc0JBQ1grUSxhQUFjelEsbUJBQ2QwUSxhQUFjelEsbUJBQ2R5Uix5QkFBMEJ0USxzQkFDMUJ5VSxXQUFZbjNDLEdBQ1pvM0MsWUFBYTkwQyxPQUNiMndDLFdBQVkzcUIsR0FDWit1QiwrQkFBOEIsaUJBQzlCQywyQkFBMEIsYUFDMUJDLHFDQUFvQyw0QkFDcENDLG9DQUFtQyxzQkFDbkMvQyxvQkFBcUJZLDRCQUV2Qnh3RCxlQUFnQixDQUNkNjhDLGNBQWUrVixHQUNmblcsUUFBU29XLEdBQ1RuVyxRQUFTb1csR0FDVGpWLG9CQUFxQnFRLHNDQUNyQi95QyxNQUFPYixHQUNQbUQsT0FBUXV3QyxHQUNSNXBCLFNBQVUydUIsR0FDVjV1QixNQUFPNnVCLEdBQ1BDLG1DQUNFQyxHQUNGQyxnQ0FBaUNDLEdBQ2pDQyxrQ0FDRUMsSUFFSm40RCxhQUFjLENBQ1prRyxLQUFNLENBQ0p2QyxjQUFlLENBQ2JrSCx1QkFBd0J1dEQsS0FHNUJ6cUQsS0FBTSxDQUNKbkssVUFBVyxDQUNUb2hELFFBQVMwTSxFQUFxQitHLElBRTlCNVcsUUFBUzZXLGtCQUNUMUosdUJBQ0F3RSxzQkFDQUMsNkJBQThCakMsRUFBd0JpQyw4QkFDdER4RSxpQkFBa0J5QyxFQUFxQnpDLElBRXZDVyxRQUFTK0ksa0JBQ1R6Six1QkFDQUUsd0JBQ0FzRSxzQkFDQXZFLGlCQUFrQnVDLEVBQXFCdkMsSUFFdkNJLHFCQUNBRix1QkFBd0JtQyxFQUF3Qm5DLHdCQUNoREMsMkJBQ0FxRSw4QkFDQW5FLDRCQUE2QmtDLEVBQXFCbEMsSUFFbERHLG1DQUNBa0UsMkJBQ0FwRSxzQkFBdUJpQyxFQUFxQmpDLElBRTVDOEQsU0FBVS9CLEVBQXdCb0gsb0JBQ2xDL0oseUJBQTBCMkMsRUFBd0JFLEVBQXFCN0MsS0FFdkVrQiw2QkFDQUUsK0JBRUFLLGNBQWVvQixFQUFxQnBCLEtBRXRDdnNELGNBQWUsQ0FDYnBNLE9BQVFraEUsc0JBQ1I1SixpQkFBa0I2SixLQUd0QkMsTUFBTyxDQUNMbjFELFVBQVcsQ0FDVHFyRCxpQkFBa0J1QyxFQUF3QkUsRUFBcUJzSCxRQUl0RSxFQzdKSSxNQUFNQyxHQUFldjNDLEdBQUFBLFFBQUFBLE9BRWZ3M0MsR0FBZ0J4M0MsR0FBQUEsUUFBQUEsS0NGaEJ5M0MsSURJU3ozQyxHQUFBQSxRQUFBQSxVQUFvQixDQUFDdTNDLEdBQWNDLE1DSnhCbmxFLEVBQUFBLEdBQUFBLGVBQWMsT0FDL0NvbEUsR0FBa0J4M0MsWUFBYyxvQkFFekIsTUFBTW96QyxJQUF5QmhoRSxFQUFBQSxHQUFBQSxlQUFjLEdBQ3BEZ2hFLEdBQXVCcHpDLFlBQWMseUJBRTlCLE1BQU15M0MsSUFBMEJybEUsRUFBQUEsR0FBQUEsZUFBYyxJQUFJbUIsS0FFNUM0L0QsSUFBd0IvZ0UsRUFBQUEsR0FBQUEsZUFBYyxJQ1Y1QyxNQUFNc2xFLDBCQUNYLzdDLGlCQUFtQixZQUVuQkEsZ0JBQWtCLFdBRWxCQSxzQkFBd0Isa0JDS25CLE1BQU1rNUMsVUFBWUEsS0FDdkIsTUFBTSxPQUFFanlFLElBQVc0UCxFQUFBQSxHQUFBQSxZQUFXZ2xFLElBQzlCLE9BQU81MEUsQ0FBTSxFQUdGNnZFLGFBQWdCL3hCLElBQzNCLE1BQU0sV0FBRW5pQyxJQUFlL0wsRUFBQUEsR0FBQUEsWUFBV2dsRSxJQUNsQyxPQUFPajVELEVBQVdtaUMsSUFBa0IsSUFBSSxFQUc3Qnd1QixNQUFRQSxDQUFDeUksT0FBUzdnRyxLQUM3QixNQUFNLEdBQUUwZixJQUFPZ2MsRUFBQUEsR0FBQUEsWUFBV2dsRSxJQUUxQixZQUF5QixJQUFYRyxFQUF5Qm5oRixFQUFHbWhGLEdBQVVuaEYsQ0FBRSxFQUczQ29oRiwwQkFBNEJBLEtBQ3ZDLE1BQU8sQ0FBRUMsSUFBZ0JqbEUsRUFBQUEsR0FBQUEsVUFBUyxPQUM1QixNQUFFNTVCLElBQVV3NUIsRUFBQUEsR0FBQUEsWUFBV2dsRSxJQU03QixNQUFPLENBQUV4K0YsUUFBT3NqRCxTQUxFdzdDLElBQ2hCQSxFQUFTOStGLEdBQ1Q2K0YsRUFBYSxDQUFDLEVBQUUsRUFHUSxFQUdmakYsU0FBV0EsS0FDdEIsTUFBTTV0RCxHQUFReFMsRUFBQUEsR0FBQUEsWUFBVzRnRSxJQUV6QixNQUFPLENBQUNwdUQsRUFBT0EsRUFBUSxFQUFFLEVBU2QydEQsUUFBV2tCLElBQ3RCLE1BQU10cEQsR0FBTy9YLEVBQUFBLEdBQUFBLFlBQVcyZ0UsS0FDbEIsU0FBRTcyQyxHQUFhczdDLDRCQUNmRyxFQUNpQixpQkFBZGxFLEVBQXlCLElBQUl0cEQsRUFBTXNwRCxHQUFhdHBELEVBaUN6RCxNQUFPLENBQUVBLEtBQU13dEQsRUFBYUMsWUEvQlJBLENBQUMxaUcsRUFBT3VOLEVBQVUsQ0FBRTJ3RixNQUFNLE1BQzVDLE1BQU15RSxFQUFZRixFQUFZaHlGLFdBQ3hCK3hGLFNBQVk5K0YsSUFDaEJBLEVBQU1pNUQsTUFBTWdtQyxHQUFhM2lHLEVBRXJCQSxJQUFVb2lHLDBCQUEwQlEsV0FDdENuakcsT0FBT2dILEtBQUsvQyxFQUFNaTVELE9BQU8vdkQsU0FBU3BHLElBRTlCQSxFQUFJNEIsV0FBV3U2RixJQUNmai9GLEVBQU1pNUQsTUFBTW4yRCxLQUFTNDdGLDBCQUEwQlMsaUJBRS9Dbi9GLEVBQU1pNUQsTUFBTW4yRCxHQUFPNDdGLDBCQUEwQlUsU0FDL0MsR0FFSixFQUVJQyxhQUFnQnIvRixJQUNwQmpFLE9BQU9nSCxLQUFLL0MsRUFBTWk1RCxPQUFPL3ZELFNBQVNwRyxJQUM1QkEsRUFBSTRCLFdBQVd1NkYsS0FDakJqL0YsRUFBTWk1RCxNQUFNbjJELEdBQU94RyxFQUNyQixHQUNBLEVBR0F1TixFQUFRMndGLEtBQ1ZsM0MsRUFBUys3QyxjQUVULzdDLEVBQVN3N0MsU0FDWCxFQUd1QyxFQUc5QnBGLGNBQWlCNThGLElBQzVCLE1BQU9rdkMsR0FBUzR0RCxZQUNWLHNCQUFFekIsR0FBMEIwRCxhQUM1QixLQUFFdHFELEVBQUksWUFBRXl0RCxHQUFnQnJGLFFBQVE3OEYsSUFDOUJ5MEMsS0FBTSt0RCxHQUFlM0YsV0FDdkIsTUFBRTM1RixHQUFVNCtGLDRCQUNaVyxFQUFldi9GLEVBQU1pNUQsTUFBTTFuQixFQUFLeGtDLFlBQ2hDeXlGLEVBQ0p4L0YsRUFBTWk1RCxNQUFNcW1DLEVBQVd2eUYsYUFDdkIvTSxFQUFNaTVELE1BQU1xbUMsRUFBV2hpRyxNQUFNLEdBQUksR0FBR3lQLFlBQ2hDMHlGLEVBQ0pGLElBQ0NwSCxFQUF3Qm5zRCxFQUFRLEVBQzdCMHlELDBCQUEwQlUsU0FDMUJWLDBCQUEwQlEsV0FDMUIzK0MsRUFBYWsvQyxJQUFvQmYsMEJBQTBCUSxXQUVqRXpsRSxFQUFBQSxHQUFBQSxZQUFVLEtBQ1J1bEUsRUFDRVEsSUFBZ0JkLDBCQUEwQlMsZUFDdENULDBCQUEwQlMsZUFDMUJNLEVBQ0wsR0FDQSxDQUFDRCxJQWNKLE1BQU8sQ0FBRWovQyxhQUFZczVDLGFBWkR0Z0UsRUFBQUEsR0FBQUEsY0FBWSxDQUFDMXZCLEVBQVUsQ0FBRTJ3RixNQUFNLE1BQ2pEd0UsRUFDRW4xRixFQUFRMndGLEtBQ0prRSwwQkFBMEJTLGVBQzFCVCwwQkFBMEJVLFNBQy9CLEdBQ0EsSUFNK0J0RixjQUpidmdFLEVBQUFBLEdBQUFBLGNBQVksQ0FBQzF2QixFQUFVLENBQUUyd0YsTUFBTSxNQUNsRHdFLEVBQVlOLDBCQUEwQlEsVUFBV3IxRixFQUFRLEdBQ3hELElBRTZDLEVBR3JDNjFGLG1CQUFxQkEsQ0FBQ3hpRSxPQUFTcC9CLEtBQzFDLFFBQXNCLElBQVhvL0IsRUFDVCxPQUFPMUQsRUFBQUEsR0FBQUEsWUFBV2lsRSxJQUdwQixNQUFNa0IsR0FBa0JubUUsRUFBQUEsR0FBQUEsWUFBV2lsRSxJQUNuQyxPQUFPLElBQUlsa0UsSUFBSSxJQUFJb2xFLEVBQWlCemlFLEdBQVEsRUNsSHhDNCtELElBQWF4aUUsRUFBQUEsR0FBQUEsYUFDakIsRUFFSTRELFNBQ0FwZ0MsT0FBTyxHQUNQay9GLG9CQUFvQixHQUNwQnZHLFdBQVdBLE9BQ1hDLGFBQWEsSUFFZjUvQyxLQUVBLE1BQU10NEIsRUFBSzA0RSxRQUVMMkUsRUFBWW5GLEdBQWN4NEQsR0FBUTBpRSxLQUFPOWlHLEdBQ3pDLEtBQUV5MEMsR0FBU29vRCxRQUFRa0IsSUFDbkIsV0FBRXQ2QyxFQUFVLFlBQUVzNUMsRUFBVyxhQUFFQyxHQUFpQkosY0FBY21CLElBQ3pEN3VELEVBQU8rdEQsR0FBYUgsV0FDckJwdkMsRURLbUJxMUMsTUFDM0IsTUFBTzd6RCxHQUFTNHRELFdBRWhCLE9BQU81dEQsRUFBUSxDQUFDLEVDUks2ekQsR0FDYnpILEVBQWU1NkUsRUFBRzQ2RSxhQUFhbDdELElBQVc4K0QsRUFBa0I5OEYsT0FBUyxFQUNyRTRnRyxFRGlHbUJDLENBQUM3aUUsR0FDSndpRSxxQkFDRHYrRCxJQUFJakUsR0NuR042aUUsQ0FBYzdpRSxHQUMzQnlpRSxFQUFrQkQsbUJBQW1CeGlFLEdBQ3JDOGlFLEVBQWN4aUYsRUFBR3lpRixxQkFBcUIvaUUsR0FDdEM4OEQsRUFBWVAsYUFBYSxhQUN6QnlHLEVBQWlCekcsYUFBYSxrQkFDOUIwRyxFQUFxQjFHLGFBQWEsc0JBQ2xDMkcsRUFBYTNHLGFBQWEsY0FDMUI0RyxFQUFpQjVHLGFBQWEsa0JBQzlCNkcsRUFBd0I3RyxhQUFhLHlCQUNyQzhHLEVBQWM5RyxhQUFhLGVBQzNCK0csRUFBcUIvRyxhQUFhLHNCQUNsQ2dILEVBQWVoSCxhQUFhLGdCQUM1QmlILEVBQWtCakgsYUFBYSxtQkFDL0JrSCxFQUFlbEgsYUFBYSxnQkFDNUJtSCxFQUFlbkgsYUFBYSxnQkFDNUJvSCxFQUFlcEgsYUFBYSxnQkFDNUJxSCxFQUFhckgsYUFBYSxjQUMxQnNILEVBQVl0SCxhQUFhLGFBQ3pCdUgsRUFBY3ZILGFBQWEsZUFDM0J3SCxFQUFjeEgsYUFBYSxlQUMzQnlILEVBQTBCekgsYUFBYSwyQkFDdkMwSCxFQUFxQjFILGFBQWEsc0JBQ2xDMkgsRUFBZTNILGFBQWEsZ0JBQzVCNEgsRUFBa0I1SCxhQUFhLG1CQUMvQjZILEVBQW9CN0gsYUFBYSxxQkFDakM4SCxFQUEyQjlILGFBQWEsNEJBQ3hDK0gsRUFBOEIvSCxhQUNsQywrQkFFSWdJLEVBQXVCaEksYUFBYSx3QkFDcENpSSxFQUEwQmpJLGFBQWEsMkJBQ3ZDa0ksRUFBK0JsSSxhQUNuQyxnQ0FFSW1JLEVBQWNuSSxhQUFhLGVBQzNCb0ksRUFBY3BJLGFBQWEsZUFDM0JxSSxFQUFlckksYUFBYSxnQkFDNUJzSSxFQUFvQnRJLGFBQWEscUJBQ2pDdUksRUFBMkJ2SSxhQUFhLDRCQUN4Q3dJLEVBQXVCeEksYUFBYSx3QkFDcEN5SSxFQUFlekksYUFBYSxnQkFDNUJ3QixHQUFxQnhCLGFBQWEsc0JBQ2xDMEksR0FBaUIxSSxhQUFhLGtCQUM5QjJJLEdBQW9CM0ksYUFBYSxxQkFDakM0SSxHQUFrQjVJLGFBQWEsbUJBQy9CNkksR0FBbUI3SSxhQUFhLG9CQUNoQzZCLEdBQWtCN0IsYUFBYSxtQkFDL0I4SSxHQUFvQjlJLGFBQWEscUJBQ2pDUSxHQUFtQlIsYUFBYSxvQkFLaENZLElBQWtCOWdFLEVBQUFBLEdBQUFBLGNBQ3RCLENBQUNueUIsRUFBR283RixLQUNFQSxFQUNGM0ksSUFFQUMsSUFFRnJFLEVBQVNydUYsRUFBR283RixHQUFhLEVBQU0sR0FFakMsQ0FBQy9NLEVBQVVvRSxFQUFhQyxJQUVwQlEsSUFBc0IvZ0UsRUFBQUEsR0FBQUEsY0FDMUIsQ0FBQ255QixFQUFHbXpGLEtBQ0VBLEVBQ0ZWLEVBQVksQ0FBRVcsTUFBTSxJQUVwQlYsRUFBYSxDQUFFVSxNQUFNLElBRXZCL0UsRUFBU3J1RixFQUFHbXpGLEdBQWlCLEVBQUssR0FFcEMsQ0FBQzlFLEVBQVVvRSxFQUFhQyxJQUcxQixPQUNFdnlELEdBQUFBLFFBQUFBLGNBQUM0eUQsR0FBc0IxekIsU0FBUSxDQUFDbnFFLE1BQU9pMUMsR0FDckNoSyxHQUFBQSxRQUFBQSxjQUFDNnlELEdBQXVCM3pCLFNBQVEsQ0FBQ25xRSxNQUFPeTlGLEdBQ3RDeHlELEdBQUFBLFFBQUFBLGNBQUNrM0QsR0FBd0JoNEIsU0FBUSxDQUFDbnFFLE1BQU9xakcsR0FDdkNwNEQsR0FBQUEsUUFBQUEsY0FBQSxXQUNFdU8sSUFBS0EsRUFDTCx5QkFBd0I5SixFQUN4QitOLFdBQVdtSSxFQUFBQSxHQUFBQSxTQUFXLHNCQUF1QixDQUMzQyxnQ0FBaUNzSSxFQUNqQyxnQ0FBaUNzMUMsS0FHbkN2NEQsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSw0QkFDWnErQyxJQUFpQjBILEVBQ2hCdjRELEdBQUFBLFFBQUFBLGNBQUFBLEdBQUFBLFFBQUFBLFNBQUEsS0FDRUEsR0FBQUEsUUFBQUEsY0FBQ3l5RCxFQUFTLENBQUNuM0MsU0FBVXRDLEVBQVlnTSxTQUFVOHRDLElBQ3pDOXlELEdBQUFBLFFBQUFBLGNBQUMyNkQsRUFBWSxDQUFDbDZFLE1BQU9sckIsRUFBTW9nQyxPQUFRQSxLQUVyQ3FLLEdBQUFBLFFBQUFBLGNBQUMweUQsR0FBZ0IsQ0FDZnAzQyxTQUFVdEMsRUFDVnVCLFFBQVN3NEMsTUFJYi95RCxHQUFBQSxRQUFBQSxjQUFDMjZELEVBQVksQ0FBQ2w2RSxNQUFPbHJCLEVBQU1vZ0MsT0FBUUEsSUFFckNxSyxHQUFBQSxRQUFBQSxjQUFDNjZELEdBQWlCLENBQUNsbEUsT0FBUUEsSUFDM0JxSyxHQUFBQSxRQUFBQSxjQUFDODZELEdBQWUsQ0FBQ25sRSxPQUFRQSxJQUN6QnFLLEdBQUFBLFFBQUFBLGNBQUMrNkQsR0FBZ0IsQ0FBQ3BsRSxPQUFRQSxJQUMxQnFLLEdBQUFBLFFBQUFBLGNBQUNxNkQsRUFBVyxDQUFDMWtFLE9BQVFBLEVBQVE0aUUsV0FBWUEsSUFDeENFLEVBQVk5Z0csT0FBUyxHQUNwQjhnRyxFQUFZMzdGLEtBQUtvK0YsR0FDZmw3RCxHQUFBQSxRQUFBQSxjQUFDdzZELEVBQWlCLENBQ2hCai9GLElBQUssR0FBRzIvRixFQUFXOTFELFNBQVM4MUQsRUFBV25tRyxRQUN2Q21tRyxXQUFZQSxPQUlwQmw3RCxHQUFBQSxRQUFBQSxjQUFBLE9BQ0V3UyxXQUFXbUksRUFBQUEsR0FBQUEsU0FBVywyQkFBNEIsQ0FDaEQsdUNBQXdDM0IsS0FHekNBLEdBQ0NoWixHQUFBQSxRQUFBQSxjQUFBQSxHQUFBQSxRQUFBQSxTQUFBLEtBQ0VBLEdBQUFBLFFBQUFBLGNBQUMwekQsR0FBa0IsQ0FBQy85RCxPQUFRQSxLQUMxQjRpRSxHQUFjMUgsR0FDZDd3RCxHQUFBQSxRQUFBQSxjQUFBQSxHQUFBQSxRQUFBQSxTQUFBLEtBQ0VBLEdBQUFBLFFBQUFBLGNBQUMrNUQsRUFBaUIsQ0FBQ3BrRSxPQUFRQSxJQUMzQnFLLEdBQUFBLFFBQUFBLGNBQUNnNkQsRUFBd0IsQ0FBQ3JrRSxPQUFRQSxJQUNsQ3FLLEdBQUFBLFFBQUFBLGNBQUNpNkQsRUFBMkIsQ0FBQ3RrRSxPQUFRQSxJQUNyQ3FLLEdBQUFBLFFBQUFBLGNBQUNvNkQsRUFBNEIsQ0FBQ3prRSxPQUFRQSxJQUN0Q3FLLEdBQUFBLFFBQUFBLGNBQUNrNkQsRUFBb0IsQ0FBQ3ZrRSxPQUFRQSxJQUM5QnFLLEdBQUFBLFFBQUFBLGNBQUNvNUQsRUFBWSxDQUFDempFLE9BQVFBLElBQ3RCcUssR0FBQUEsUUFBQUEsY0FBQ3E1RCxFQUFZLENBQUMxakUsT0FBUUEsSUFDdEJxSyxHQUFBQSxRQUFBQSxjQUFDczVELEVBQVksQ0FBQzNqRSxPQUFRQSxJQUN0QnFLLEdBQUFBLFFBQUFBLGNBQUN1NUQsRUFBVSxDQUFDNWpFLE9BQVFBLElBQ3BCcUssR0FBQUEsUUFBQUEsY0FBQ3c1RCxFQUFTLENBQUM3akUsT0FBUUEsSUFDbkJxSyxHQUFBQSxRQUFBQSxjQUFDeTVELEVBQVcsQ0FBQzlqRSxPQUFRQSxJQUNyQnFLLEdBQUFBLFFBQUFBLGNBQUMwNUQsRUFBVyxDQUFDL2pFLE9BQVFBLElBQ3JCcUssR0FBQUEsUUFBQUEsY0FBQzI1RCxFQUF1QixDQUFDaGtFLE9BQVFBLElBQ2pDcUssR0FBQUEsUUFBQUEsY0FBQzQ1RCxFQUFrQixDQUFDamtFLE9BQVFBLElBQzVCcUssR0FBQUEsUUFBQUEsY0FBQzY1RCxFQUFZLENBQUNsa0UsT0FBUUEsSUFDdEJxSyxHQUFBQSxRQUFBQSxjQUFDbTZELEVBQXVCLENBQUN4a0UsT0FBUUEsSUFDakNxSyxHQUFBQSxRQUFBQSxjQUFDODVELEVBQWUsQ0FBQ25rRSxPQUFRQSxJQUN6QnFLLEdBQUFBLFFBQUFBLGNBQUMwNkQsRUFBb0IsQ0FBQy9rRSxPQUFRQSxLQUdsQ3FLLEdBQUFBLFFBQUFBLGNBQUNzNkQsRUFBVyxDQUFDM2tFLE9BQVFBLElBQ3JCcUssR0FBQUEsUUFBQUEsY0FBQ3U2RCxFQUFZLENBQUM1a0UsT0FBUUEsSUFDdEJxSyxHQUFBQSxRQUFBQSxjQUFDeTZELEVBQXdCLENBQ3ZCOWtFLE9BQVFBLEVBQ1I4K0Qsa0JBQW1CQSxJQUVyQnowRCxHQUFBQSxRQUFBQSxjQUFDNDZELEdBQWMsQ0FBQ2psRSxPQUFRQSxJQUN4QnFLLEdBQUFBLFFBQUFBLGNBQUMrekQsR0FBZSxDQUFDcCtELE9BQVFBLElBQ3pCcUssR0FBQUEsUUFBQUEsY0FBQzI0RCxFQUFjLENBQUNoakUsT0FBUUEsSUFDeEJxSyxHQUFBQSxRQUFBQSxjQUFDNDRELEVBQWtCLENBQUNqakUsT0FBUUEsSUFDNUJxSyxHQUFBQSxRQUFBQSxjQUFDNjRELEVBQVUsQ0FBQ2xqRSxPQUFRQSxJQUNwQnFLLEdBQUFBLFFBQUFBLGNBQUM4NEQsRUFBYyxDQUFDbmpFLE9BQVFBLElBQ3hCcUssR0FBQUEsUUFBQUEsY0FBQys0RCxFQUFxQixDQUFDcGpFLE9BQVFBLElBQy9CcUssR0FBQUEsUUFBQUEsY0FBQ2c1RCxFQUFXLENBQUNyakUsT0FBUUEsS0FDbkI0aUUsR0FBYzFILEdBQ2Q3d0QsR0FBQUEsUUFBQUEsY0FBQ2s1RCxFQUFZLENBQUN2akUsT0FBUUEsSUFFeEJxSyxHQUFBQSxRQUFBQSxjQUFDaTVELEVBQWtCLENBQUN0akUsT0FBUUEsSUFDNUJxSyxHQUFBQSxRQUFBQSxjQUFDbTVELEVBQWUsQ0FBQ3hqRSxPQUFRQSxJQUN6QnFLLEdBQUFBLFFBQUFBLGNBQUNnN0QsR0FBaUIsQ0FBQ3JsRSxPQUFRQSxTQU9SLElBYXZDLFVDeE1BLHFCQW5CZ0J3bEUsRUFBR3hsRSxZQUNaQSxHQUFRd2xFLFFBR1huN0QsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxvRUFDYnhTLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsa0ZBQWlGLFdBR2pHeFMsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxvRkFDYjdjLEVBQU93bEUsVUFSZSxLQ3lEL0IsNEJBdkRvQkMsRUFBR3psRSxhQUNyQixNQUFNMjlELEVBQVksZUFDWixLQUFFdHBELEdBQVNvb0QsUUFBUWtCLElBQ25CLFdBQUV0NkMsRUFBVSxZQUFFczVDLEVBQVcsYUFBRUMsR0FBaUJKLGNBQWNtQixHQUMxRGIsRUFBWVAsYUFBYSxhQUV6QlksR0FBa0I5Z0UsRUFBQUEsR0FBQUEsY0FBWSxLQUM5QmduQixFQUNGdTVDLElBRUFELEdBQ0YsR0FDQyxDQUFDdDVDLEVBQVlzNUMsRUFBYUMsSUFLN0IsT0FBSzU4RCxHQUFReWxFLFlBQ3FCLGlCQUF2QnpsRSxFQUFPeWxFLFlBQWlDLEtBR2pEcDdELEdBQUFBLFFBQUFBLGNBQUM0eUQsR0FBc0IxekIsU0FBUSxDQUFDbnFFLE1BQU9pMUMsR0FDckNoSyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLHdFQUNieFMsR0FBQUEsUUFBQUEsY0FBQ3l5RCxFQUFTLENBQUNuM0MsU0FBVXRDLEVBQVlnTSxTQUFVOHRDLEdBQ3pDOXlELEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsa0ZBQWlGLGdCQUluR3hTLEdBQUFBLFFBQUFBLGNBQUEsVUFBUXdTLFVBQVUsMEVBQXlFLFVBRzNGeFMsR0FBQUEsUUFBQUEsY0FBQSxVQUNHZ1osR0FDQ3hrRCxPQUFPb2lDLFFBQVFqQixFQUFPeWxFLGFBQWF0K0YsS0FBSSxFQUFFbS9CLEVBQUtrekMsS0FDNUNudkMsR0FBQUEsUUFBQUEsY0FBQSxNQUNFemtDLElBQUswZ0MsRUFDTHVXLFdBQVdtSSxFQUFBQSxHQUFBQSxTQUFXLHNDQUF1QyxDQUMzRCxpREFBa0R3MEIsS0FHcERudkMsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxvRkFDYnZXLFNBeEJnQixJQThCRSxFQy9CckMsaUJBbkJZbzhELEVBQUcxaUUsWUFDUkEsR0FBUTBpRSxJQUdYcjRELEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsZ0VBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLGtGQUFpRixPQUdqR3hTLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsb0ZBQ2I3YyxFQUFPMGlFLE1BUlcsS0NrQjNCLHFCQW5CZ0JnRCxFQUFHMWxFLFlBQ1pBLEdBQVEwbEUsUUFHWHI3RCxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLG9FQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxrRkFBaUYsV0FHakd4UyxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLG9GQUNiN2MsRUFBTzBsRSxVQVJlLEtDa0IvQiw0QkFuQnVCQyxFQUFHM2xFLFlBQ25CQSxHQUFRMmxFLGVBR1h0N0QsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSwyRUFDYnhTLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsa0ZBQWlGLGtCQUdqR3hTLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsb0ZBQ2I3YyxFQUFPMmxFLGlCQVJzQixLQ2tCdEMsa0JBbkJhbjdDLEVBQUd4cUIsWUFDVEEsR0FBUXdxQixLQUdYbmdCLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsaUVBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLGtGQUFpRixRQUdqR3hTLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsb0ZBQ2I3YyxFQUFPd3FCLE9BUlksS0NrQjVCLHlCQW5Cb0JvN0MsRUFBRzVsRSxZQUNoQkEsR0FBUTRsRSxZQUdYdjdELEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsd0VBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLGtGQUFpRixlQUdqR3hTLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsb0ZBQ2I3YyxFQUFPNGxFLGNBUm1CLEtDb0ZuQyxtQkFsRmNDLEVBQUc3bEUsYUFDZixNQUFNNmxFLEVBQVE3bEUsR0FBUTZsRSxPQUFTLENBQUMsRUFDMUJsSSxFQUFZLFNBQ1osS0FBRXRwRCxHQUFTb29ELFFBQVFrQixJQUNuQixXQUFFdDZDLEVBQVUsWUFBRXM1QyxFQUFXLGFBQUVDLEdBQWlCSixjQUFjbUIsSUFDekQ3dUQsRUFBTyt0RCxHQUFhSCxXQUNyQkksRUFBWVAsYUFBYSxhQUN6QlEsRUFBbUJSLGFBQWEsb0JBQ2hDcUMsRUFBYXJDLGFBQWEsY0FLMUJZLEdBQWtCOWdFLEVBQUFBLEdBQUFBLGNBQVksS0FDOUJnbkIsRUFDRnU1QyxJQUVBRCxHQUNGLEdBQ0MsQ0FBQ3Q1QyxFQUFZczVDLEVBQWFDLElBQ3ZCUSxHQUFzQi9nRSxFQUFBQSxHQUFBQSxjQUMxQixDQUFDbnlCLEVBQUdtekYsS0FDRUEsRUFDRlYsRUFBWSxDQUFFVyxNQUFNLElBRXBCVixFQUFhLENBQUVVLE1BQU0sR0FDdkIsR0FFRixDQUFDWCxFQUFhQyxJQU1oQixPQUFrQyxJQUE5Qi85RixPQUFPZ0gsS0FBS2dnRyxHQUFPN2pHLE9BQ2QsS0FJUHFvQyxHQUFBQSxRQUFBQSxjQUFDNHlELEdBQXNCMXpCLFNBQVEsQ0FBQ25xRSxNQUFPaTFDLEdBQ3JDaEssR0FBQUEsUUFBQUEsY0FBQzZ5RCxHQUF1QjN6QixTQUFRLENBQUNucUUsTUFBT3k5RixHQUN0Q3h5RCxHQUFBQSxRQUFBQSxjQUFBLE9BQ0V3UyxVQUFVLGlFQUNWLHlCQUF3Qi9OLEdBRXhCekUsR0FBQUEsUUFBQUEsY0FBQ3l5RCxFQUFTLENBQUNuM0MsU0FBVXRDLEVBQVlnTSxTQUFVOHRDLEdBQ3pDOXlELEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsa0ZBQWlGLFVBSW5HeFMsR0FBQUEsUUFBQUEsY0FBQzB5RCxFQUFnQixDQUNmcDNDLFNBQVV0QyxFQUNWdUIsUUFBU3c0QyxJQUVYL3lELEdBQUFBLFFBQUFBLGNBQUEsVUFBUXdTLFVBQVUsMEVBQXlFLFVBRzNGeFMsR0FBQUEsUUFBQUEsY0FBQSxNQUNFd1MsV0FBV21JLEVBQUFBLEdBQUFBLFNBQVcsd0NBQXlDLENBQzdELG9EQUFxRDNCLEtBR3REQSxHQUNDaFosR0FBQUEsUUFBQUEsY0FBQUEsR0FBQUEsUUFBQUEsU0FBQSxLQUNHeHJDLE9BQU9vaUMsUUFBUTRrRSxHQUFPMStGLEtBQUksRUFBRTBvRixFQUFZN3ZELEtBQ3ZDcUssR0FBQUEsUUFBQUEsY0FBQSxNQUFJemtDLElBQUtpcUYsRUFBWWh6QyxVQUFVLGdDQUM3QnhTLEdBQUFBLFFBQUFBLGNBQUN1MEQsRUFBVSxDQUFDaC9GLEtBQU1pd0YsRUFBWTd2RCxPQUFRQSxXQVFyQixFQzFEckMsc0JBbkJpQjhsRSxFQUFHOWxFLFlBQ2JBLEdBQVE4bEUsU0FHWHo3RCxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLHFFQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxrRkFBaUYsWUFHakd4UyxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLG9GQUNiN2MsRUFBTzhsRSxXQVJnQixLQ2dHaEMsbUJBeEZjQyxFQUFHL2xFLGFBQ2YsTUFBTXF1QixFQUFRcnVCLEdBQVFxdUIsT0FBUyxHQUN6Qi90QyxFQUFLMDRFLFFBQ0wyRSxFQUFZLFNBQ1osS0FBRXRwRCxHQUFTb29ELFFBQVFrQixJQUNuQixXQUFFdDZDLEVBQVUsWUFBRXM1QyxFQUFXLGFBQUVDLEdBQWlCSixjQUFjbUIsSUFDekQ3dUQsRUFBTyt0RCxHQUFhSCxXQUNyQkksRUFBWVAsYUFBYSxhQUN6QlEsRUFBbUJSLGFBQWEsb0JBQ2hDcUMsRUFBYXJDLGFBQWEsY0FDMUJtSSxFQUFjbkksYUFBYSxlQUszQlksR0FBa0I5Z0UsRUFBQUEsR0FBQUEsY0FBWSxLQUM5QmduQixFQUNGdTVDLElBRUFELEdBQ0YsR0FDQyxDQUFDdDVDLEVBQVlzNUMsRUFBYUMsSUFDdkJRLEdBQXNCL2dFLEVBQUFBLEdBQUFBLGNBQzFCLENBQUNueUIsRUFBR216RixLQUNFQSxFQUNGVixFQUFZLENBQUVXLE1BQU0sSUFFcEJWLEVBQWEsQ0FBRVUsTUFBTSxHQUN2QixHQUVGLENBQUNYLEVBQWFDLElBTWhCLE9BQUtyNUYsTUFBTTJELFFBQVFtbkQsSUFBMkIsSUFBakJBLEVBQU1yc0QsT0FLakNxb0MsR0FBQUEsUUFBQUEsY0FBQzR5RCxHQUFzQjF6QixTQUFRLENBQUNucUUsTUFBT2kxQyxHQUNyQ2hLLEdBQUFBLFFBQUFBLGNBQUM2eUQsR0FBdUIzekIsU0FBUSxDQUFDbnFFLE1BQU95OUYsR0FDdEN4eUQsR0FBQUEsUUFBQUEsY0FBQSxPQUNFd1MsVUFBVSxpRUFDVix5QkFBd0IvTixHQUV4QnpFLEdBQUFBLFFBQUFBLGNBQUN5eUQsRUFBUyxDQUFDbjNDLFNBQVV0QyxFQUFZZ00sU0FBVTh0QyxHQUN6Qzl5RCxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLGdGQUErRSxXQUlqR3hTLEdBQUFBLFFBQUFBLGNBQUMweUQsRUFBZ0IsQ0FDZnAzQyxTQUFVdEMsRUFDVnVCLFFBQVN3NEMsSUFFWC95RCxHQUFBQSxRQUFBQSxjQUFDcTZELEVBQVcsQ0FBQzFrRSxPQUFRLENBQUVxdUIsV0FDdkJoa0IsR0FBQUEsUUFBQUEsY0FBQSxNQUNFd1MsV0FBV21JLEVBQUFBLEdBQUFBLFNBQVcsd0NBQXlDLENBQzdELG9EQUFxRDNCLEtBR3REQSxHQUNDaFosR0FBQUEsUUFBQUEsY0FBQUEsR0FBQUEsUUFBQUEsU0FBQSxLQUNHZ2tCLEVBQU1sbkQsS0FBSSxDQUFDNjRCLEVBQVF4NkIsSUFDbEI2a0MsR0FBQUEsUUFBQUEsY0FBQSxNQUNFemtDLElBQUssSUFBSUosSUFDVHEzQyxVQUFVLGdDQUVWeFMsR0FBQUEsUUFBQUEsY0FBQ3UwRCxFQUFVLENBQ1RoL0YsS0FBTSxJQUFJNEYsS0FBUzhhLEVBQUd3NEUsU0FBUzk0RCxLQUMvQkEsT0FBUUEsWUFsQ25CLElBMkMwQixFQ1FyQyxtQkF4RmNnbUUsRUFBR2htRSxhQUNmLE1BQU1zdUIsRUFBUXR1QixHQUFRc3VCLE9BQVMsR0FDekJodUMsRUFBSzA0RSxRQUNMMkUsRUFBWSxTQUNaLEtBQUV0cEQsR0FBU29vRCxRQUFRa0IsSUFDbkIsV0FBRXQ2QyxFQUFVLFlBQUVzNUMsRUFBVyxhQUFFQyxHQUFpQkosY0FBY21CLElBQ3pEN3VELEVBQU8rdEQsR0FBYUgsV0FDckJJLEVBQVlQLGFBQWEsYUFDekJRLEVBQW1CUixhQUFhLG9CQUNoQ3FDLEVBQWFyQyxhQUFhLGNBQzFCbUksRUFBY25JLGFBQWEsZUFLM0JZLEdBQWtCOWdFLEVBQUFBLEdBQUFBLGNBQVksS0FDOUJnbkIsRUFDRnU1QyxJQUVBRCxHQUNGLEdBQ0MsQ0FBQ3Q1QyxFQUFZczVDLEVBQWFDLElBQ3ZCUSxHQUFzQi9nRSxFQUFBQSxHQUFBQSxjQUMxQixDQUFDbnlCLEVBQUdtekYsS0FDRUEsRUFDRlYsRUFBWSxDQUFFVyxNQUFNLElBRXBCVixFQUFhLENBQUVVLE1BQU0sR0FDdkIsR0FFRixDQUFDWCxFQUFhQyxJQU1oQixPQUFLcjVGLE1BQU0yRCxRQUFRb25ELElBQTJCLElBQWpCQSxFQUFNdHNELE9BS2pDcW9DLEdBQUFBLFFBQUFBLGNBQUM0eUQsR0FBc0IxekIsU0FBUSxDQUFDbnFFLE1BQU9pMUMsR0FDckNoSyxHQUFBQSxRQUFBQSxjQUFDNnlELEdBQXVCM3pCLFNBQVEsQ0FBQ25xRSxNQUFPeTlGLEdBQ3RDeHlELEdBQUFBLFFBQUFBLGNBQUEsT0FDRXdTLFVBQVUsaUVBQ1YseUJBQXdCL04sR0FFeEJ6RSxHQUFBQSxRQUFBQSxjQUFDeXlELEVBQVMsQ0FBQ24zQyxTQUFVdEMsRUFBWWdNLFNBQVU4dEMsR0FDekM5eUQsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxnRkFBK0UsV0FJakd4UyxHQUFBQSxRQUFBQSxjQUFDMHlELEVBQWdCLENBQ2ZwM0MsU0FBVXRDLEVBQ1Z1QixRQUFTdzRDLElBRVgveUQsR0FBQUEsUUFBQUEsY0FBQ3E2RCxFQUFXLENBQUMxa0UsT0FBUSxDQUFFc3VCLFdBQ3ZCamtCLEdBQUFBLFFBQUFBLGNBQUEsTUFDRXdTLFdBQVdtSSxFQUFBQSxHQUFBQSxTQUFXLHdDQUF5QyxDQUM3RCxvREFBcUQzQixLQUd0REEsR0FDQ2haLEdBQUFBLFFBQUFBLGNBQUFBLEdBQUFBLFFBQUFBLFNBQUEsS0FDR2lrQixFQUFNbm5ELEtBQUksQ0FBQzY0QixFQUFReDZCLElBQ2xCNmtDLEdBQUFBLFFBQUFBLGNBQUEsTUFDRXprQyxJQUFLLElBQUlKLElBQ1RxM0MsVUFBVSxnQ0FFVnhTLEdBQUFBLFFBQUFBLGNBQUN1MEQsRUFBVSxDQUNUaC9GLEtBQU0sSUFBSTRGLEtBQVM4YSxFQUFHdzRFLFNBQVM5NEQsS0FDL0JBLE9BQVFBLFlBbENuQixJQTJDMEIsRUNRckMsbUJBeEZjaW1FLEVBQUdqbUUsYUFDZixNQUFNajVCLEVBQVFpNUIsR0FBUWo1QixPQUFTLEdBQ3pCdVosRUFBSzA0RSxRQUNMMkUsRUFBWSxTQUNaLEtBQUV0cEQsR0FBU29vRCxRQUFRa0IsSUFDbkIsV0FBRXQ2QyxFQUFVLFlBQUVzNUMsRUFBVyxhQUFFQyxHQUFpQkosY0FBY21CLElBQ3pEN3VELEVBQU8rdEQsR0FBYUgsV0FDckJJLEVBQVlQLGFBQWEsYUFDekJRLEVBQW1CUixhQUFhLG9CQUNoQ3FDLEVBQWFyQyxhQUFhLGNBQzFCbUksRUFBY25JLGFBQWEsZUFLM0JZLEdBQWtCOWdFLEVBQUFBLEdBQUFBLGNBQVksS0FDOUJnbkIsRUFDRnU1QyxJQUVBRCxHQUNGLEdBQ0MsQ0FBQ3Q1QyxFQUFZczVDLEVBQWFDLElBQ3ZCUSxHQUFzQi9nRSxFQUFBQSxHQUFBQSxjQUMxQixDQUFDbnlCLEVBQUdtekYsS0FDRUEsRUFDRlYsRUFBWSxDQUFFVyxNQUFNLElBRXBCVixFQUFhLENBQUVVLE1BQU0sR0FDdkIsR0FFRixDQUFDWCxFQUFhQyxJQU1oQixPQUFLcjVGLE1BQU0yRCxRQUFRSCxJQUEyQixJQUFqQkEsRUFBTS9FLE9BS2pDcW9DLEdBQUFBLFFBQUFBLGNBQUM0eUQsR0FBc0IxekIsU0FBUSxDQUFDbnFFLE1BQU9pMUMsR0FDckNoSyxHQUFBQSxRQUFBQSxjQUFDNnlELEdBQXVCM3pCLFNBQVEsQ0FBQ25xRSxNQUFPeTlGLEdBQ3RDeHlELEdBQUFBLFFBQUFBLGNBQUEsT0FDRXdTLFVBQVUsaUVBQ1YseUJBQXdCL04sR0FFeEJ6RSxHQUFBQSxRQUFBQSxjQUFDeXlELEVBQVMsQ0FBQ24zQyxTQUFVdEMsRUFBWWdNLFNBQVU4dEMsR0FDekM5eUQsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxnRkFBK0UsV0FJakd4UyxHQUFBQSxRQUFBQSxjQUFDMHlELEVBQWdCLENBQ2ZwM0MsU0FBVXRDLEVBQ1Z1QixRQUFTdzRDLElBRVgveUQsR0FBQUEsUUFBQUEsY0FBQ3E2RCxFQUFXLENBQUMxa0UsT0FBUSxDQUFFajVCLFdBQ3ZCc2pDLEdBQUFBLFFBQUFBLGNBQUEsTUFDRXdTLFdBQVdtSSxFQUFBQSxHQUFBQSxTQUFXLHdDQUF5QyxDQUM3RCxvREFBcUQzQixLQUd0REEsR0FDQ2haLEdBQUFBLFFBQUFBLGNBQUFBLEdBQUFBLFFBQUFBLFNBQUEsS0FDR3RqQyxFQUFNSSxLQUFJLENBQUM2NEIsRUFBUXg2QixJQUNsQjZrQyxHQUFBQSxRQUFBQSxjQUFBLE1BQ0V6a0MsSUFBSyxJQUFJSixJQUNUcTNDLFVBQVUsZ0NBRVZ4UyxHQUFBQSxRQUFBQSxjQUFDdTBELEVBQVUsQ0FDVGgvRixLQUFNLElBQUk0RixLQUFTOGEsRUFBR3c0RSxTQUFTOTRELEtBQy9CQSxPQUFRQSxZQWxDbkIsSUEyQzBCLEVDOURyQyxpQkExQllrbUUsRUFBR2xtRSxhQUNiLE1BQU0xZixFQUFLMDRFLFFBQ0w0RixFQUFhckMsYUFBYSxjQUtoQyxJQUFLajhFLEVBQUc4N0UsV0FBV3A4RCxFQUFRLE9BQVEsT0FBTyxLQUUxQyxNQUFNcGdDLEVBQ0p5cUMsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxnRkFBK0UsT0FLakcsT0FDRXhTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsZ0VBQ2J4UyxHQUFBQSxRQUFBQSxjQUFDdTBELEVBQVUsQ0FBQ2gvRixLQUFNQSxFQUFNb2dDLE9BQVFBLEVBQU91dUIsSUFBS2lxQyxXQUFXLFFBQ25ELEVDUVYsZ0JBMUJXMk4sRUFBR25tRSxhQUNaLE1BQU0xZixFQUFLMDRFLFFBQ0w0RixFQUFhckMsYUFBYSxjQUtoQyxJQUFLajhFLEVBQUc4N0UsV0FBV3A4RCxFQUFRLE1BQU8sT0FBTyxLQUV6QyxNQUFNcGdDLEVBQ0p5cUMsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxnRkFBK0UsTUFLakcsT0FDRXhTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsK0RBQ2J4UyxHQUFBQSxRQUFBQSxjQUFDdTBELEVBQVUsQ0FBQ2gvRixLQUFNQSxFQUFNb2dDLE9BQVFBLEVBQU9vbUUsR0FBSTVOLFdBQVcsT0FDbEQsRUNRVixrQkExQmE2TixFQUFHcm1FLGFBQ2QsTUFBTTFmLEVBQUswNEUsUUFDTDRGLEVBQWFyQyxhQUFhLGNBS2hDLElBQUtqOEUsRUFBRzg3RSxXQUFXcDhELEVBQVEsUUFBUyxPQUFPLEtBRTNDLE1BQU1wZ0MsRUFDSnlxQyxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLGdGQUErRSxRQUtqRyxPQUNFeFMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxpRUFDYnhTLEdBQUFBLFFBQUFBLGNBQUN1MEQsRUFBVSxDQUFDaC9GLEtBQU1BLEVBQU1vZ0MsT0FBUUEsRUFBT3BGLEtBQU00OUQsV0FBVyxTQUNwRCxFQ1FWLGtCQTFCYThOLEVBQUd0bUUsYUFDZCxNQUFNMWYsRUFBSzA0RSxRQUNMNEYsRUFBYXJDLGFBQWEsY0FLaEMsSUFBS2o4RSxFQUFHODdFLFdBQVdwOEQsRUFBUSxRQUFTLE9BQU8sS0FFM0MsTUFBTXBnQyxFQUNKeXFDLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsZ0ZBQStFLFFBS2pHLE9BQ0V4UyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLCtEQUNieFMsR0FBQUEsUUFBQUEsY0FBQ3UwRCxFQUFVLENBQUNoL0YsS0FBTUEsRUFBTW9nQyxPQUFRQSxFQUFPdW1FLEtBQU0vTixXQUFXLFNBQ3BELEVDc0VWLDhCQXRGeUJnTyxFQUFHeG1FLGFBQzFCLE1BQU15bUUsRUFBbUJ6bUUsR0FBUXltRSxrQkFBb0IsR0FDL0M5SSxFQUFZLG9CQUNaLEtBQUV0cEQsR0FBU29vRCxRQUFRa0IsSUFDbkIsV0FBRXQ2QyxFQUFVLFlBQUVzNUMsRUFBVyxhQUFFQyxHQUFpQkosY0FBY21CLElBQ3pEN3VELEVBQU8rdEQsR0FBYUgsV0FDckJJLEVBQVlQLGFBQWEsYUFDekJRLEVBQW1CUixhQUFhLG9CQUNoQ3FDLEVBQWFyQyxhQUFhLGNBSzFCWSxHQUFrQjlnRSxFQUFBQSxHQUFBQSxjQUFZLEtBQzlCZ25CLEVBQ0Z1NUMsSUFFQUQsR0FDRixHQUNDLENBQUN0NUMsRUFBWXM1QyxFQUFhQyxJQUN2QlEsR0FBc0IvZ0UsRUFBQUEsR0FBQUEsY0FDMUIsQ0FBQ255QixFQUFHbXpGLEtBQ0VBLEVBQ0ZWLEVBQVksQ0FBRVcsTUFBTSxJQUVwQlYsRUFBYSxDQUFFVSxNQUFNLEdBQ3ZCLEdBRUYsQ0FBQ1gsRUFBYUMsSUFNaEIsTUFBZ0MsaUJBQXJCNkosR0FDa0MsSUFBekM1bkcsT0FBT2dILEtBQUs0Z0csR0FBa0J6a0csT0FEZSxLQUkvQ3FvQyxHQUFBQSxRQUFBQSxjQUFDNHlELEdBQXNCMXpCLFNBQVEsQ0FBQ25xRSxNQUFPaTFDLEdBQ3JDaEssR0FBQUEsUUFBQUEsY0FBQzZ5RCxHQUF1QjN6QixTQUFRLENBQUNucUUsTUFBT3k5RixHQUN0Q3h5RCxHQUFBQSxRQUFBQSxjQUFBLE9BQ0V3UyxVQUFVLDRFQUNWLHlCQUF3Qi9OLEdBRXhCekUsR0FBQUEsUUFBQUEsY0FBQ3l5RCxFQUFTLENBQUNuM0MsU0FBVXRDLEVBQVlnTSxTQUFVOHRDLEdBQ3pDOXlELEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsZ0ZBQStFLHNCQUlqR3hTLEdBQUFBLFFBQUFBLGNBQUMweUQsRUFBZ0IsQ0FDZnAzQyxTQUFVdEMsRUFDVnVCLFFBQVN3NEMsSUFFWC95RCxHQUFBQSxRQUFBQSxjQUFBLFVBQVF3UyxVQUFVLDBFQUF5RSxVQUczRnhTLEdBQUFBLFFBQUFBLGNBQUEsTUFDRXdTLFdBQVdtSSxFQUFBQSxHQUFBQSxTQUFXLHdDQUF5QyxDQUM3RCxvREFBcUQzQixLQUd0REEsR0FDQ2haLEdBQUFBLFFBQUFBLGNBQUFBLEdBQUFBLFFBQUFBLFNBQUEsS0FDR3hyQyxPQUFPb2lDLFFBQVF3bEUsR0FBa0J0L0YsS0FDaEMsRUFBRTBvRixFQUFZN3ZELEtBQ1pxSyxHQUFBQSxRQUFBQSxjQUFBLE1BQ0V6a0MsSUFBS2lxRixFQUNMaHpDLFVBQVUsZ0NBRVZ4UyxHQUFBQSxRQUFBQSxjQUFDdTBELEVBQVUsQ0FBQ2gvRixLQUFNaXdGLEVBQVk3dkQsT0FBUUEsV0FTdkIsRUNnQnJDLHlCQXhGb0IwbUUsRUFBRzFtRSxhQUNyQixNQUFNMm1FLEVBQWMzbUUsR0FBUTJtRSxhQUFlLEdBQ3JDcm1GLEVBQUswNEUsUUFDTDJFLEVBQVksZUFDWixLQUFFdHBELEdBQVNvb0QsUUFBUWtCLElBQ25CLFdBQUV0NkMsRUFBVSxZQUFFczVDLEVBQVcsYUFBRUMsR0FBaUJKLGNBQWNtQixJQUN6RDd1RCxFQUFPK3RELEdBQWFILFdBQ3JCSSxFQUFZUCxhQUFhLGFBQ3pCUSxFQUFtQlIsYUFBYSxvQkFDaENxQyxFQUFhckMsYUFBYSxjQUMxQm1JLEVBQWNuSSxhQUFhLGVBSzNCWSxHQUFrQjlnRSxFQUFBQSxHQUFBQSxjQUFZLEtBQzlCZ25CLEVBQ0Z1NUMsSUFFQUQsR0FDRixHQUNDLENBQUN0NUMsRUFBWXM1QyxFQUFhQyxJQUN2QlEsR0FBc0IvZ0UsRUFBQUEsR0FBQUEsY0FDMUIsQ0FBQ255QixFQUFHbXpGLEtBQ0VBLEVBQ0ZWLEVBQVksQ0FBRVcsTUFBTSxJQUVwQlYsRUFBYSxDQUFFVSxNQUFNLEdBQ3ZCLEdBRUYsQ0FBQ1gsRUFBYUMsSUFNaEIsT0FBS3I1RixNQUFNMkQsUUFBUXkvRixJQUF1QyxJQUF2QkEsRUFBWTNrRyxPQUs3Q3FvQyxHQUFBQSxRQUFBQSxjQUFDNHlELEdBQXNCMXpCLFNBQVEsQ0FBQ25xRSxNQUFPaTFDLEdBQ3JDaEssR0FBQUEsUUFBQUEsY0FBQzZ5RCxHQUF1QjN6QixTQUFRLENBQUNucUUsTUFBT3k5RixHQUN0Q3h5RCxHQUFBQSxRQUFBQSxjQUFBLE9BQ0V3UyxVQUFVLHVFQUNWLHlCQUF3Qi9OLEdBRXhCekUsR0FBQUEsUUFBQUEsY0FBQ3l5RCxFQUFTLENBQUNuM0MsU0FBVXRDLEVBQVlnTSxTQUFVOHRDLEdBQ3pDOXlELEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsZ0ZBQStFLGlCQUlqR3hTLEdBQUFBLFFBQUFBLGNBQUMweUQsRUFBZ0IsQ0FDZnAzQyxTQUFVdEMsRUFDVnVCLFFBQVN3NEMsSUFFWC95RCxHQUFBQSxRQUFBQSxjQUFDcTZELEVBQVcsQ0FBQzFrRSxPQUFRLENBQUUybUUsaUJBQ3ZCdDhELEdBQUFBLFFBQUFBLGNBQUEsTUFDRXdTLFdBQVdtSSxFQUFBQSxHQUFBQSxTQUFXLHdDQUF5QyxDQUM3RCxvREFBcUQzQixLQUd0REEsR0FDQ2haLEdBQUFBLFFBQUFBLGNBQUFBLEdBQUFBLFFBQUFBLFNBQUEsS0FDR3M4RCxFQUFZeC9GLEtBQUksQ0FBQzY0QixFQUFReDZCLElBQ3hCNmtDLEdBQUFBLFFBQUFBLGNBQUEsTUFDRXprQyxJQUFLLElBQUlKLElBQ1RxM0MsVUFBVSxnQ0FFVnhTLEdBQUFBLFFBQUFBLGNBQUN1MEQsRUFBVSxDQUNUaC9GLEtBQU0sSUFBSTRGLEtBQVM4YSxFQUFHdzRFLFNBQVM5NEQsS0FDL0JBLE9BQVFBLFlBbENuQixJQTJDMEIsRUM5RHJDLG1CQTFCYzRtRSxFQUFHNW1FLGFBQ2YsTUFBTTFmLEVBQUswNEUsUUFDTDRGLEVBQWFyQyxhQUFhLGNBS2hDLElBQUtqOEUsRUFBRzg3RSxXQUFXcDhELEVBQVEsU0FBVSxPQUFPLEtBRTVDLE1BQU1wZ0MsRUFDSnlxQyxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLGdGQUErRSxTQUtqRyxPQUNFeFMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxrRUFDYnhTLEdBQUFBLFFBQUFBLGNBQUN1MEQsRUFBVSxDQUFDaC9GLEtBQU1BLEVBQU1vZ0MsT0FBUUEsRUFBTzR1QixNQUFPNHBDLFdBQVcsVUFDckQsRUNRVixzQkExQmlCcU8sRUFBRzdtRSxhQUNsQixNQUFNMWYsRUFBSzA0RSxRQUNMNEYsRUFBYXJDLGFBQWEsY0FLaEMsSUFBS2o4RSxFQUFHODdFLFdBQVdwOEQsRUFBUSxZQUFhLE9BQU8sS0FFL0MsTUFBTXBnQyxFQUNKeXFDLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsZ0ZBQStFLFlBS2pHLE9BQ0V4UyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLHFFQUNieFMsR0FBQUEsUUFBQUEsY0FBQ3UwRCxFQUFVLENBQUNoL0YsS0FBTUEsRUFBTW9nQyxPQUFRQSxFQUFPNFQsU0FBVTRrRCxXQUFXLGFBQ3hELEVDa0NWLG1DQWxEbUJpRyxFQUFHeitELGFBQ3BCLE1BQU0xZixFQUFLMDRFLFFBQ0x0ckMsRUFBYTF0QixHQUFRMHRCLFlBQWMsQ0FBQyxFQUNwQzFELEVBQVd6bUQsTUFBTTJELFFBQVE4NEIsR0FBUWdxQixVQUFZaHFCLEVBQU9ncUIsU0FBVyxHQUMvRDQwQyxFQUFhckMsYUFBYSxlQUMxQixLQUFFbG9ELEdBQVNvb0QsUUFBUSxjQUt6QixPQUF1QyxJQUFuQzU5RixPQUFPZ0gsS0FBSzZuRCxHQUFZMXJELE9BQ25CLEtBSVBxb0MsR0FBQUEsUUFBQUEsY0FBQzR5RCxHQUFzQjF6QixTQUFRLENBQUNucUUsTUFBT2kxQyxHQUNyQ2hLLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsdUVBQ2J4UyxHQUFBQSxRQUFBQSxjQUFBLFVBQ0d4ckMsT0FBT29pQyxRQUFReXNCLEdBQVl2bUQsS0FBSSxFQUFFcXhELEVBQWNxbUMsTUFDOUMsTUFBTWoxQyxFQUFhSSxFQUFTL2hELFNBQVN1d0QsR0FDL0JzbUMsRUFBb0J4K0UsRUFBR28rRSxxQkFDM0JsbUMsRUFDQXg0QixHQUdGLE9BQ0VxSyxHQUFBQSxRQUFBQSxjQUFBLE1BQ0V6a0MsSUFBSzR5RCxFQUNMM2IsV0FBV21JLEVBQUFBLEdBQUFBLFNBQVcsK0JBQWdDLENBQ3BELHlDQUEwQzRFLEtBRzVDdmYsR0FBQUEsUUFBQUEsY0FBQ3UwRCxFQUFVLENBQ1RoL0YsS0FBTTQ0RCxFQUNOeDRCLE9BQVE2K0QsRUFDUkMsa0JBQW1CQSxJQUVsQixNQUtrQixFQ1pyQyx3Q0EvQjBCZ0ksRUFBRzltRSxhQUMzQixNQUFNK21FLEVBQW9CL21FLEdBQVErbUUsbUJBQXFCLENBQUMsRUFDbERuSSxFQUFhckMsYUFBYSxlQUMxQixLQUFFbG9ELEdBQVNvb0QsUUFBUSxxQkFLekIsT0FBOEMsSUFBMUM1OUYsT0FBT2dILEtBQUtraEcsR0FBbUIva0csT0FDMUIsS0FJUHFvQyxHQUFBQSxRQUFBQSxjQUFDNHlELEdBQXNCMXpCLFNBQVEsQ0FBQ25xRSxNQUFPaTFDLEdBQ3JDaEssR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSw4RUFDYnhTLEdBQUFBLFFBQUFBLGNBQUEsVUFDR3hyQyxPQUFPb2lDLFFBQVE4bEUsR0FBbUI1L0YsS0FBSSxFQUFFcXhELEVBQWN4NEIsS0FDckRxSyxHQUFBQSxRQUFBQSxjQUFBLE1BQUl6a0MsSUFBSzR5RCxFQUFjM2IsVUFBVSxnQ0FDL0J4UyxHQUFBQSxRQUFBQSxjQUFDdTBELEVBQVUsQ0FBQ2gvRixLQUFNNDRELEVBQWN4NEIsT0FBUUEsU0FLakIsRUNzQnJDLGtDQTlDNkJnbkUsRUFBR2huRSxhQUM5QixNQUFNMWYsRUFBSzA0RSxRQUNMNEYsRUFBYXJDLGFBQWEsY0FFaEMsSUFBS2o4RSxFQUFHODdFLFdBQVdwOEQsRUFBUSx3QkFBeUIsT0FBTyxLQUszRCxNQUFNcGdDLEVBQ0p5cUMsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxnRkFBK0UseUJBS2pHLE9BQ0V4UyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLGtGQUNvQixJQUFoQzdjLEVBQU8ydEIscUJBQ050akIsR0FBQUEsUUFBQUEsY0FBQUEsR0FBQUEsUUFBQUEsU0FBQSxLQUNHenFDLEVBQ0R5cUMsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSwwRUFBeUUsYUFJekQsSUFBaEM3YyxFQUFPMnRCLHFCQUNUdGpCLEdBQUFBLFFBQUFBLGNBQUFBLEdBQUFBLFFBQUFBLFNBQUEsS0FDR3pxQyxFQUNEeXFDLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsMEVBQXlFLGNBSzNGeFMsR0FBQUEsUUFBQUEsY0FBQ3UwRCxFQUFVLENBQ1RoL0YsS0FBTUEsRUFDTm9nQyxPQUFRQSxFQUFPMnRCLHFCQUNmNnFDLFdBQVcseUJBR1gsRUNUViwyQkE3QnNCeU8sRUFBR2puRSxhQUN2QixNQUFNMWYsRUFBSzA0RSxRQUNMNEYsRUFBYXJDLGFBQWEsY0FDMUIzOEYsRUFDSnlxQyxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLGdGQUErRSxrQkFRakcsT0FBS3Y4QixFQUFHODdFLFdBQVdwOEQsRUFBUSxpQkFHekJxSyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLDBFQUNieFMsR0FBQUEsUUFBQUEsY0FBQ3UwRCxFQUFVLENBQ1RoL0YsS0FBTUEsRUFDTm9nQyxPQUFRQSxFQUFPa25FLGNBQ2YxTyxXQUFXLG1CQVBtQyxJQVM1QyxFQ1NWLDhCQTlCeUIyTyxFQUFHbm5FLGFBQzFCLE1BQU0xZixFQUFLMDRFLFFBQ0w0RixFQUFhckMsYUFBYSxjQUtoQyxJQUFLajhFLEVBQUc4N0UsV0FBV3A4RCxFQUFRLG9CQUFxQixPQUFPLEtBRXZELE1BQU1wZ0MsRUFDSnlxQyxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLGdGQUErRSxxQkFLakcsT0FDRXhTLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsNkVBQ2J4UyxHQUFBQSxRQUFBQSxjQUFDdTBELEVBQVUsQ0FDVGgvRixLQUFNQSxFQUNOb2dDLE9BQVFBLEVBQU9vbkUsaUJBQ2Y1TyxXQUFXLHFCQUVULEVDUVYsbUNBOUI4QjZPLEVBQUdybkUsYUFDL0IsTUFBTTFmLEVBQUswNEUsUUFDTDRGLEVBQWFyQyxhQUFhLGNBS2hDLElBQUtqOEUsRUFBRzg3RSxXQUFXcDhELEVBQVEseUJBQTBCLE9BQU8sS0FFNUQsTUFBTXBnQyxFQUNKeXFDLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsZ0ZBQStFLDBCQUtqRyxPQUNFeFMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSxrRkFDYnhTLEdBQUFBLFFBQUFBLGNBQUN1MEQsRUFBVSxDQUNUaC9GLEtBQU1BLEVBQ05vZ0MsT0FBUUEsRUFBT3NuRSxzQkFDZjlPLFdBQVcsMEJBRVQsRUNKVixrQkFqQmErTyxFQUFHdm5FLFNBQVE0aUUsY0FBYSxNQUNuQyxNQUNNdGhHLEVBREswM0YsUUFDS2h1RCxRQUFRaEwsR0FDbEJ3bkUsRUFBaUI1RSxFQUFhLGNBQWdCLEdBRXBELE9BQ0V2NEQsR0FBQUEsUUFBQUEsY0FBQSxVQUFRd1MsVUFBVSwwRUFDZixHQUFHdjdDLElBQU9rbUcsSUFDSixFQ1NiLGNBbEJhQyxFQUFHem5FLGFBQ2QsTUFBTXE4RCxFQUFhRSxhQUFhLGNBRWhDLE9BQUtoNUYsTUFBTTJELFFBQVE4NEIsR0FBUXUzQixNQUd6Qmx0QixHQUFBQSxRQUFBQSxjQUFDZ3lELEVBQVUsQ0FDVHo4RixLQUFLLE9BQ0xSLE1BQU80Z0MsRUFBT3UzQixLQUNkMWEsVUFBVSxrRUFOMkIsSUFPckMsRUNTTixnQkFuQmM2cUQsRUFBRzFuRSxhQUNmLE1BQU0xZixFQUFLMDRFLFFBQ0xxRCxFQUFhRSxhQUFhLGNBRWhDLE9BQUtqOEUsRUFBRzg3RSxXQUFXcDhELEVBQVEsU0FHekJxSyxHQUFBQSxRQUFBQSxjQUFDZ3lELEVBQVUsQ0FDVHo4RixLQUFLLFFBQ0xSLE1BQU80Z0MsRUFBTzJuRSxNQUNkOXFELFVBQVUsbUVBTjhCLElBT3hDLEVDZEMsTUFBTStxRCxjQUFjeG9HLEdBQ0osaUJBQVZBLEVBQ0YsR0FBR0EsRUFBTXlvRyxPQUFPLEdBQUczOEQsZ0JBQWdCOXJDLEVBQU1nQixNQUFNLEtBRWpEaEIsRUFNSTBvRyxhQUFnQkMsR0FDVmpQLENBQUM5NEQsR0FBVXc1RCxTQUFTLFlBQWUsQ0FBQyxLQUNuRCxNQUFNbDVFLEVBQUt5bkYsSUFFWCxHQUFxQixNQUFqQi9uRSxHQUFRbFYsTUFBZSxPQUFPeEssRUFBR3NuRixXQUFXeGxHLE9BQU80OUIsRUFBT2xWLFFBQzlELEdBQWUsYUFBWDB1RSxFQUF1QixDQUN6QixHQUF1QixNQUFuQng1RCxHQUFRMGxFLFFBQWlCLE9BQU9wbEYsRUFBR3NuRixXQUFXeGxHLE9BQU80OUIsRUFBTzBsRSxVQUNoRSxHQUFtQixNQUFmMWxFLEdBQVEwaUUsSUFBYSxPQUFPdGdHLE9BQU80OUIsRUFBTzBpRSxJQUNoRCxDQUVBLE1BQU8sRUFBRSxFQU1Bc0YsWUFBZUQsSUFDMUIsTUFBTS84RCxRQUFVQSxDQUFDaEwsRUFBUSt6QixFQUFtQixJQUFJQyxXQUM5QyxNQUFNMXpDLEVBQUt5bkYsSUFFWCxHQUFjLE1BQVYvbkUsRUFDRixNQUFPLE1BR1QsR0FBSTFmLEVBQUcybkYsb0JBQW9Cam9FLEdBQ3pCLE9BQU9BLEVBQVMsTUFBUSxRQUcxQixHQUFzQixpQkFBWEEsRUFDVCxNQUFPLE1BR1QsR0FBSSt6QixFQUFpQjl2QixJQUFJakUsR0FDdkIsTUFBTyxNQUVUK3pCLEVBQWlCMW1ELElBQUkyeUIsR0FFckIsTUFBTSxLQUFFMStCLEVBQUksWUFBRXFsRyxFQUFXLE1BQUUvM0MsR0FBVTV1QixFQUUvQmswQixhQUFlQSxLQUNuQixHQUFJM3dELE1BQU0yRCxRQUFReS9GLEdBQWMsQ0FDOUIsTUFBTXVCLEVBQW1CdkIsRUFBWXgvRixLQUFLdXhELEdBQ3hDMXRCLFFBQVEwdEIsRUFBWTNFLEtBRWhCbzBDLEVBQVl2NUMsRUFBUTVqQixRQUFRNGpCLEVBQU9tRixHQUFvQixNQUM3RCxNQUFPLFVBQVVtMEMsRUFBaUI5Z0csS0FBSyxXQUFXK2dHLElBQ3BELENBQU8sR0FBSXY1QyxFQUFPLENBRWhCLE1BQU8sU0FEVzVqQixRQUFRNGpCLEVBQU9tRixLQUVuQyxDQUNFLE1BQU8sWUFDVCxFQXlERixHQUFJL3pCLEVBQU91dUIsS0FBK0IsUUFBeEJ2akIsUUFBUWhMLEVBQU91dUIsS0FDL0IsTUFBTyxRQUdULE1BZ0JNNjVDLHdCQUEwQkEsQ0FBQ3ZLLEVBQVN3SyxLQUN4QyxHQUFJOWtHLE1BQU0yRCxRQUFRODRCLEVBQU82OUQsSUFBVyxDQUlsQyxNQUFPLElBSGU3OUQsRUFBTzY5RCxHQUFTMTJGLEtBQUttaEcsR0FDekN0OUQsUUFBUXM5RCxFQUFXdjBDLEtBRUkzc0QsS0FBS2loRyxLQUNoQyxDQUNBLE9BQU8sSUFBSSxFQU9QRSxFQUFrQixDQTlCTGhsRyxNQUFNMkQsUUFBUTVGLEdBQzdCQSxFQUFLNkYsS0FBS21zQixHQUFhLFVBQU5BLEVBQWdCNGdDLGVBQWlCNWdDLElBQUlsc0IsS0FBSyxPQUNsRCxVQUFUOUYsRUFDRTR5RCxlQUNBLENBQ0ksT0FDQSxVQUNBLFNBQ0EsUUFDQSxTQUNBLFVBQ0EsVUFDQWpzRCxTQUFTM0csR0FDWEEsRUF2RVVrbkcsTUFDaEIsR0FDRTNwRyxPQUFPbzFELE9BQU9qMEIsRUFBUSxnQkFDdEJuaEMsT0FBT28xRCxPQUFPajBCLEVBQVEsVUFDdEJuaEMsT0FBT28xRCxPQUFPajBCLEVBQVEsWUFFdEIsT0FBT2swQixlQUNGLEdBQ0xyMUQsT0FBT28xRCxPQUFPajBCLEVBQVEsZUFDdEJuaEMsT0FBT28xRCxPQUFPajBCLEVBQVEseUJBQ3RCbmhDLE9BQU9vMUQsT0FBT2owQixFQUFRLHFCQUV0QixNQUFPLFNBQ0YsR0FBSSxDQUFDLFFBQVMsU0FBUy8zQixTQUFTKzNCLEVBQU81ekIsUUFFNUMsTUFBTyxVQUNGLEdBQUksQ0FBQyxRQUFTLFVBQVVuRSxTQUFTKzNCLEVBQU81ekIsUUFFN0MsTUFBTyxTQUNGLEdBQ0x2TixPQUFPbzFELE9BQU9qMEIsRUFBUSxZQUN0Qm5oQyxPQUFPbzFELE9BQU9qMEIsRUFBUSxZQUN0Qm5oQyxPQUFPbzFELE9BQU9qMEIsRUFBUSxxQkFDdEJuaEMsT0FBT28xRCxPQUFPajBCLEVBQVEscUJBQ3RCbmhDLE9BQU9vMUQsT0FBT2owQixFQUFRLGNBRXRCLE1BQU8sbUJBQ0YsR0FDTG5oQyxPQUFPbzFELE9BQU9qMEIsRUFBUSxZQUN0Qm5oQyxPQUFPbzFELE9BQU9qMEIsRUFBUSxXQUN0Qm5oQyxPQUFPbzFELE9BQU9qMEIsRUFBUSxjQUN0Qm5oQyxPQUFPbzFELE9BQU9qMEIsRUFBUSxjQUN0Qm5oQyxPQUFPbzFELE9BQU9qMEIsRUFBUSxvQkFDdEJuaEMsT0FBT28xRCxPQUFPajBCLEVBQVEsb0JBRXRCLE1BQU8sU0FDRixRQUE0QixJQUFqQkEsRUFBTzJuRSxNQUF1QixDQUM5QyxHQUFxQixPQUFqQjNuRSxFQUFPMm5FLE1BQ1QsTUFBTyxPQUNGLEdBQTRCLGtCQUFqQjNuRSxFQUFPMm5FLE1BQ3ZCLE1BQU8sVUFDRixHQUE0QixpQkFBakIzbkUsRUFBTzJuRSxNQUN2QixPQUFPem9HLE9BQU91Z0IsVUFBVXVnQixFQUFPMm5FLE9BQVMsVUFBWSxTQUMvQyxHQUE0QixpQkFBakIzbkUsRUFBTzJuRSxNQUN2QixNQUFPLFNBQ0YsR0FBSXBrRyxNQUFNMkQsUUFBUTg0QixFQUFPMm5FLE9BQzlCLE1BQU8sYUFDRixHQUE0QixpQkFBakIzbkUsRUFBTzJuRSxNQUN2QixNQUFPLFFBRVgsQ0FDQSxPQUFPLElBQUksRUFxQkxhLEdBWVlKLHdCQUF3QixRQUFTLE9BQ2pDQSx3QkFBd0IsUUFBUyxPQUNqQ0Esd0JBQXdCLFFBQVMsUUFHbEQvMkUsT0FBT28zRSxTQUNQcmhHLEtBQUssT0FJUixPQUZBMnNELEVBQWlCL2dCLE9BQU9oVCxHQUVqQnVvRSxHQUFtQixLQUFLLEVBR2pDLE9BQU92OUQsT0FBTyxFQUdIaTlELG9CQUF1QmpvRSxHQUE2QixrQkFBWEEsRUFFekNvOEQsV0FBYUEsQ0FBQ3A4RCxFQUFRNjlELElBQ3RCLE9BQVg3OUQsR0FDa0IsaUJBQVhBLEdBQ1BuaEMsT0FBT28xRCxPQUFPajBCLEVBQVE2OUQsR0FFWG1CLG9CQUFvQitJLEdBQ1QvbkUsSUFDcEIsTUFBTTFmLEVBQUt5bkYsSUFFWCxPQUNFL25FLEdBQVF3bEUsU0FDUnhsRSxHQUFReWxFLGFBQ1J6bEUsR0FBUTBpRSxLQUNSMWlFLEdBQVEwbEUsU0FDUjFsRSxHQUFRMmxFLGdCQUNSM2xFLEdBQVF3cUIsTUFDUnhxQixHQUFRNGxFLGFBQ1I1bEUsR0FBUTZsRSxPQUNSN2xFLEdBQVE4bEUsVUFDUjlsRSxHQUFRcXVCLE9BQ1JydUIsR0FBUXN1QixPQUNSdHVCLEdBQVFqNUIsT0FDUnVaLEVBQUc4N0UsV0FBV3A4RCxFQUFRLFFBQ3RCMWYsRUFBRzg3RSxXQUFXcDhELEVBQVEsT0FDdEIxZixFQUFHODdFLFdBQVdwOEQsRUFBUSxTQUN0QjFmLEVBQUc4N0UsV0FBV3A4RCxFQUFRLFNBQ3RCQSxHQUFReW1FLGtCQUNSem1FLEdBQVEybUUsYUFDUnJtRixFQUFHODdFLFdBQVdwOEQsRUFBUSxVQUN0QjFmLEVBQUc4N0UsV0FBV3A4RCxFQUFRLGFBQ3RCQSxHQUFRMHRCLFlBQ1IxdEIsR0FBUSttRSxtQkFDUnptRixFQUFHODdFLFdBQVdwOEQsRUFBUSx5QkFDdEIxZixFQUFHODdFLFdBQVdwOEQsRUFBUSxrQkFDdEIxZixFQUFHODdFLFdBQVdwOEQsRUFBUSxxQkFDdEIxZixFQUFHODdFLFdBQVdwOEQsRUFBUSwwQkFDdEJBLEdBQVF5dEIsYUFDUnp0QixHQUFRdTNCLE1BQ1JqM0MsRUFBRzg3RSxXQUFXcDhELEVBQVEsVUFDdEIxZixFQUFHODdFLFdBQVdwOEQsRUFBUSxrQkFDdEIxZixFQUFHODdFLFdBQVdwOEQsRUFBUSxZQUN0QkEsR0FBUTB5QyxVQUNScHlELEVBQUdvb0YscUJBQXFCMW9FLEdBQVFoK0IsT0FBUyxDQUFDLEVBT25DaWxDLGFBQWE3bkMsR0FFWixPQUFWQSxHQUNBLENBQUMsU0FBVSxTQUFVLFdBQVc2SSxnQkFBZ0I3SSxHQUV6Q2dELE9BQU9oRCxHQUdabUUsTUFBTTJELFFBQVE5SCxHQUNULElBQUlBLEVBQU0rSCxJQUFJOC9CLGNBQVc3L0IsS0FBSyxTQUdoQzI4QixLQUFLa0QsVUFBVTduQyxHQXlEbEJ1cEcseUJBQTJCQSxDQUFDQyxFQUFPdnhGLEVBQUs2QixLQUM1QyxNQUFNMnZGLEVBQXdCLGlCQUFSeHhGLEVBQ2hCeXhGLEVBQXdCLGlCQUFSNXZGLEVBRXRCLE9BQUkydkYsR0FBVUMsRUFDUnp4RixJQUFRNkIsRUFDSCxHQUFHN0IsS0FBT3V4RixJQUVWLElBQUl2eEYsTUFBUTZCLE1BQVEwdkYsSUFHM0JDLEVBQ0ssS0FBS3h4RixLQUFPdXhGLElBRWpCRSxFQUNLLEtBQUs1dkYsS0FBTzB2RixJQUdkLElBQUksRUFHQTdGLHFCQUF3Qi9pRSxJQUNuQyxNQUFNOGlFLEVBQWMsR0FHZGlHLEVBL0U4QkMsQ0FBQ2hwRSxJQUNyQyxHQUFrQyxpQkFBdkJBLEdBQVErb0UsV0FBeUIsT0FBTyxLQUNuRCxHQUFJL29FLEVBQU8rb0UsWUFBYyxFQUFHLE9BQU8sS0FDbkMsR0FBMEIsSUFBdEIvb0UsRUFBTytvRSxXQUFrQixPQUFPLEtBRXBDLE1BQU0sV0FBRUEsR0FBZS9vRSxFQUV2QixHQUFJOWdDLE9BQU91Z0IsVUFBVXNwRixHQUNuQixNQUFPLGVBQWVBLElBR3hCLE1BQ01FLEVBQVMsSUFET0YsRUFBV2w1RixXQUFXbVEsTUFBTSxLQUFLLEdBQUdoZSxPQUkxRCxNQUFPLGVBRlcrbUcsRUFBYUUsS0FDWEEsR0FDNEIsRUFnRTdCRCxDQUE4QmhwRSxHQUM5QixPQUFmK29FLEdBQ0ZqRyxFQUFZL2dHLEtBQUssQ0FBRTB0QyxNQUFPLFNBQVVyd0MsTUFBTzJwRyxJQUU3QyxNQUFNRyxFQWpFK0JDLENBQUNucEUsSUFDdEMsTUFBTTZDLEVBQVU3QyxHQUFRNkMsUUFDbEJELEVBQVU1QyxHQUFRNEMsUUFDbEJ1MkIsRUFBbUJuNUIsR0FBUW01QixpQkFDM0JDLEVBQW1CcDVCLEdBQVFvNUIsaUJBQzNCZ3dDLEVBQWdDLGlCQUFadm1FLEVBQ3BCd21FLEVBQWdDLGlCQUFaem1FLEVBQ3BCMG1FLEVBQWtELGlCQUFyQm53QyxFQUM3Qm93QyxFQUFrRCxpQkFBckJud0MsRUFDN0Jvd0MsRUFBaUJGLEtBQXlCRixHQUFjdm1FLEVBQVVzMkIsR0FDbEVzd0MsRUFBaUJGLEtBQXlCRixHQUFjem1FLEVBQVV3MkIsR0FFeEUsSUFDR2d3QyxHQUFjRSxLQUNkRCxHQUFjRSxHQU1mLE1BQU8sR0FKV0MsRUFBaUIsSUFBTSxNQUV4QkEsRUFBaUJyd0MsRUFBbUJ0MkIsTUFDcEM0bUUsRUFBaUJyd0MsRUFBbUJ4MkIsSUFGbkM2bUUsRUFBaUIsSUFBTSxNQUszQyxHQUFJTCxHQUFjRSxFQUdoQixNQUFPLEdBRldFLEVBQWlCLElBQU0sT0FDeEJBLEVBQWlCcndDLEVBQW1CdDJCLElBR3ZELEdBQUl3bUUsR0FBY0UsRUFHaEIsTUFBTyxHQUZXRSxFQUFpQixJQUFNLE9BQ3hCQSxFQUFpQnJ3QyxFQUFtQngyQixJQUl2RCxPQUFPLElBQUksRUFnQ1N1bUUsQ0FBK0JucEUsR0FDL0IsT0FBaEJrcEUsR0FDRnBHLEVBQVkvZ0csS0FBSyxDQUFFMHRDLE1BQU8sU0FBVXJ3QyxNQUFPOHBHLElBSXpDbHBFLEdBQVE1ekIsUUFDVjAyRixFQUFZL2dHLEtBQUssQ0FBRTB0QyxNQUFPLFNBQVVyd0MsTUFBTzRnQyxFQUFPNXpCLFNBSXBELE1BQU1zOUYsRUFBY2YseUJBQ2xCLGFBQ0Ezb0UsR0FBUStDLFVBQ1IvQyxHQUFROEMsV0FFVSxPQUFoQjRtRSxHQUNGNUcsRUFBWS9nRyxLQUFLLENBQUUwdEMsTUFBTyxTQUFVcndDLE1BQU9zcUcsSUFFekMxcEUsR0FBUW1ELFNBQ1YyL0QsRUFBWS9nRyxLQUFLLENBQUUwdEMsTUFBTyxTQUFVcndDLE1BQU8sV0FBVzRnQyxHQUFRbUQsWUFJNURuRCxHQUFRbS9ELGtCQUNWMkQsRUFBWS9nRyxLQUFLLENBQ2YwdEMsTUFBTyxTQUNQcndDLE1BQU8sZUFBZTRnQyxFQUFPbS9ELHFCQUc3Qm4vRCxHQUFRby9ELGlCQUNWMEQsRUFBWS9nRyxLQUFLLENBQ2YwdEMsTUFBTyxTQUNQcndDLE1BQU8sYUFBYTRnQyxFQUFPby9ELG9CQUsvQixNQUFNdUssRUFBYWhCLHlCQUNqQjNvRSxHQUFRZ0QsWUFBYyxlQUFpQixRQUN2Q2hELEdBQVFrRCxTQUNSbEQsR0FBUWlELFVBRVMsT0FBZjBtRSxHQUNGN0csRUFBWS9nRyxLQUFLLENBQUUwdEMsTUFBTyxRQUFTcndDLE1BQU91cUcsSUFFeEMzcEUsR0FBUWdELGNBQWdCMm1FLEdBQzFCN0csRUFBWS9nRyxLQUFLLENBQUUwdEMsTUFBTyxRQUFTcndDLE1BQU8sV0FFNUMsTUFBTXdxRyxFQUFnQmpCLHlCQUNwQixrQkFDQTNvRSxHQUFRNnBFLFlBQ1I3cEUsR0FBUThwRSxhQUVZLE9BQWxCRixHQUNGOUcsRUFBWS9nRyxLQUFLLENBQUUwdEMsTUFBTyxRQUFTcndDLE1BQU93cUcsSUFJNUMsTUFBTUcsRUFBY3BCLHlCQUNsQixhQUNBM29FLEdBQVFpNUIsY0FDUmo1QixHQUFRNjNCLGVBTVYsT0FKb0IsT0FBaEJreUMsR0FDRmpILEVBQVkvZ0csS0FBSyxDQUFFMHRDLE1BQU8sU0FBVXJ3QyxNQUFPMnFHLElBR3RDakgsQ0FBVyxFQUdQcEUscUJBQXVCQSxDQUFDbG1DLEVBQWN4NEIsSUFDNUNBLEdBQVE4K0Qsa0JBRU52N0YsTUFBTTZQLEtBQ1h2VSxPQUFPb2lDLFFBQVFqQixFQUFPOCtELG1CQUFtQmhyRSxRQUFPLENBQUM4WCxHQUFNaFEsRUFBTXoyQixLQUN0RDVCLE1BQU0yRCxRQUFRL0IsSUFDZEEsRUFBSzhDLFNBQVN1d0QsSUFFbkI1c0IsRUFBSXYrQixJQUFJdXVCLEdBRURnUSxHQUwwQkEsR0FNaEMsSUFBSXZPLE1BVjhCLEdBYzVCdzJCLGNBQWlCejBELEdBQ1gsaUJBQVZBLEdBQ0csT0FBVkEsSUFDQ21FLE1BQU0yRCxRQUFROUgsS0FDbUIsT0FBakNQLE9BQU95RixlQUFlbEYsSUFDckJQLE9BQU95RixlQUFlbEYsS0FBV1AsT0FBT0gsV0FhL0J5OEYsa0JBQW9CQSxJQUN4QixDQUVMLFVBQ0EsY0FDQSxNQUNBLFVBQ0EsaUJBQ0EsY0FDQSxPQUNBLFFBQ0EsV0FFQSxRQUNBLFFBQ0EsUUFDQSxNQUNBLEtBQ0EsT0FDQSxPQUNBLG1CQUNBLGNBQ0EsUUFDQSxXQUNBLGFBQ0Esb0JBQ0EsdUJBQ0EsZ0JBRUEsbUJBQ0Esd0JBR0EsT0FDQSxPQUNBLFFBRUEsYUFDQSxVQUNBLG1CQUNBLFVBQ0EsbUJBRUEsWUFDQSxZQUNBLFVBRUEsV0FDQSxXQUNBLGNBQ0EsY0FDQSxjQUVBLGdCQUNBLGdCQUNBLFdBQ0Esb0JBRUEsUUFDQSxjQUNBLFVBQ0EsYUFDQSxXQUNBLFlBQ0EsV0FFQSxTQUVBLGtCQUNBLG1CQUNBLGlCQUlTNk8seUJBQTRCakMsR0FDVC9uRSxJQUM1QixNQUNNaXFFLEVBREtsQyxJQUNTNU0sb0JBRXBCLE9BQU90bkMsY0FBYzd6QixHQXBGQ2txRSxFQUFDOXFHLEVBQU8rcUcsS0FDaEMsTUFBTUMsRUFBZ0IsSUFBSS9zRSxJQUFJOHNFLEdBQzlCLE9BQU8vcUcsRUFBTWl5QixRQUFRNUgsSUFBVTJnRixFQUFjbm1FLElBQUl4YSxJQUFNLEVBbUZqRHlnRixDQUFXcnJHLE9BQU9nSCxLQUFLbTZCLEdBQVNpcUUsR0FDaEMsRUFBRSxFQU1HdDJDLGlCQUFnQkEsQ0FBQzN6QixFQUFRMStCLEtBQ3BDLE1BQU1zeUQsRUFBb0IxMkIsR0FBQUEsSUFBSTZDLE1BQU1DLEdBRXBDLElBQUs0ekIsSUFBc0JDLGNBQWM3ekIsR0FDdkMsT0FBTyxFQUdULE1BQU1xcUUsUUFBV3YyQyxHQUNmeHlELElBQVN3eUQsR0FBZXZ3RCxNQUFNMkQsUUFBUTVGLElBQVNBLEVBQUsyRyxTQUFTNnJELEdBRXpEQSxFQUFhRixFQUFvQjV6QixFQUFPNzdCLElBQUksUUFBVTY3QixFQUFPMStCLEtBRW5FLE9BQUkyN0IsR0FBQUEsS0FBSzBHLE9BQU9td0IsSUFBZXZ3RCxNQUFNMkQsUUFBUTRzRCxHQUNwQ0EsRUFBV2p3QixNQUFNdlEsR0FBTSsyRSxRQUFRLzJFLEtBR2pDKzJFLFFBQVF2MkMsRUFBVyxFQ2pnQnRCdzJDLFdBQWFBLEVBQUcvRSxnQkFFakIxeEMsY0FBYzB4QyxJQUNhLGlCQUFyQkEsRUFBVzkxRCxPQUNVLGlCQUFyQjgxRCxFQUFXbm1HLE1BTWxCaXJDLEdBQUFBLFFBQUFBLGNBQUEsUUFDRXdTLFVBQVcsb0VBQW9FMG9ELEVBQVc5MUQsU0FFekY4MUQsRUFBV25tRyxPQVBQLEtBbUJYLE9BQWVpckMsR0FBQUEsUUFBQUEsS0FBV2lnRSxZQ0QxQix3Q0E1QjBCQyxFQUFHekwsdUJBQ3RCdjdGLE1BQU0yRCxRQUFRNDNGLElBQW1ELElBQTdCQSxFQUFrQjk4RixPQUt6RHFvQyxHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLDhFQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSxnRkFBK0UseUJBRy9GeFMsR0FBQUEsUUFBQUEsY0FBQSxVQUNHeTBELEVBQWtCMzNGLEtBQUtxeEQsR0FDdEJudUIsR0FBQUEsUUFBQUEsY0FBQSxNQUFJemtDLElBQUs0eUQsR0FDUG51QixHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLGtGQUNiMmIsUUFaSixLQzRCWCwyQkE5QnNCZ3lDLEVBQUd4cUUsYUFDdkIsTUFBTTFmLEVBQUswNEUsUUFDTDRGLEVBQWFyQyxhQUFhLGNBS2hDLElBQUtqOEUsRUFBRzg3RSxXQUFXcDhELEVBQVEsaUJBQWtCLE9BQU8sS0FFcEQsTUFBTXBnQyxFQUNKeXFDLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsZ0ZBQStFLGtCQUtqRyxPQUNFeFMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSwwRUFDYnhTLEdBQUFBLFFBQUFBLGNBQUN1MEQsRUFBVSxDQUNUaC9GLEtBQU1BLEVBQ05vZ0MsT0FBUUEsRUFBT3lxRSxjQUNmalMsV0FBVyxrQkFFVCxFQ1BWLGdCQWRja1MsRUFBRzUvRSxRQUFRLEdBQUlrVixhQUMzQixNQUFNMWYsRUFBSzA0RSxRQUNMMlIsRUFBZ0I3L0UsR0FBU3hLLEVBQUd3NEUsU0FBUzk0RCxHQUUzQyxPQUFLMnFFLEVBRUV0Z0UsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSw4QkFBOEI4dEQsR0FGekIsSUFFNkMsRUNRMUUscUNBaEJvQjNNLEVBQUdoK0QsWUFDaEJBLEdBQVF5dEIsWUFHWHBqQixHQUFBQSxRQUFBQSxjQUFBLE9BQUt3UyxVQUFVLHdFQUNieFMsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsVUFBVSw4RkFDWjdjLEVBQU95dEIsY0FMbUIsS0NtQm5DLG9CQW5CZ0JtOUMsRUFBRzVxRSxhQUNqQixNQUFNMWYsRUFBSzA0RSxRQUNMcUQsRUFBYUUsYUFBYSxjQUVoQyxPQUFLajhFLEVBQUc4N0UsV0FBV3A4RCxFQUFRLFdBR3pCcUssR0FBQUEsUUFBQUEsY0FBQ2d5RCxFQUFVLENBQ1R6OEYsS0FBSyxVQUNMUixNQUFPNGdDLEVBQU9pMkIsUUFDZHBaLFVBQVUscUVBTmdDLElBTzFDLEVDRU4sd0JBZG1CZ3VELEVBQUc3cUUsYUFDTyxJQUF2QkEsR0FBUWxULFdBQTRCLEtBR3RDdWQsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSwwRUFBeUUsY0NVN0Ysc0JBZGlCaXVELEVBQUc5cUUsYUFDTyxJQUFyQkEsR0FBUTQyQixTQUEwQixLQUdwQ3ZzQixHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLHdFQUF1RSxhQ1UzRix1QkFka0JrdUQsRUFBRy9xRSxhQUNPLElBQXRCQSxHQUFRNjJCLFVBQTJCLEtBR3JDeHNCLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsd0VBQXVFLGNDa0IzRiwrQkFyQmlCbXVELEVBQUdockUsYUFDbEIsTUFBTTB5QyxFQUFXMXlDLEdBQVEweUMsVUFBWSxHQUMvQjJwQixFQUFhRSxhQUFhLGNBRWhDLE9BQUtoNUYsTUFBTTJELFFBQVF3ckUsSUFBaUMsSUFBcEJBLEVBQVMxd0UsT0FLdkNxb0MsR0FBQUEsUUFBQUEsY0FBQ2d5RCxFQUFVLENBQ1R6OEYsS0FBSyxXQUNMUixNQUFPNGdDLEVBQU8weUMsU0FDZDcxQixVQUFVLHNFQVBMLElBUUwsRUNpRk4sd0NBcEYwQndvRCxFQUFHcmxFLGFBQzNCLE1BQU0xZixFQUFLMDRFLFFBQ0wyRSxFQUFZLHFCQUNaLEtBQUV0cEQsR0FBU29vRCxRQUFRa0IsSUFDbkIsV0FBRXQ2QyxFQUFVLFlBQUVzNUMsRUFBVyxhQUFFQyxHQUFpQkosY0FBY21CLElBQ3pEN3VELEVBQU8rdEQsR0FBYUgsV0FDckJJLEVBQVlQLGFBQWEsYUFDekJRLEVBQW1CUixhQUFhLG9CQUNoQ0YsRUFBYUUsYUFBYSxlQUMxQixzQkFBRTBPLEdBQTBCdE0sWUFDNUJ1TSxFQUFvQjVxRixFQUFHb29GLHFCQUFxQjFvRSxHQUs1Q205RCxHQUFrQjlnRSxFQUFBQSxHQUFBQSxjQUFZLEtBQzlCZ25CLEVBQ0Z1NUMsSUFFQUQsR0FDRixHQUNDLENBQUN0NUMsRUFBWXM1QyxFQUFhQyxJQUN2QlEsR0FBc0IvZ0UsRUFBQUEsR0FBQUEsY0FDMUIsQ0FBQ255QixFQUFHbXpGLEtBQ0VBLEVBQ0ZWLEVBQVksQ0FBRVcsTUFBTSxJQUVwQlYsRUFBYSxDQUFFVSxNQUFNLEdBQ3ZCLEdBRUYsQ0FBQ1gsRUFBYUMsSUFNaEIsT0FBS3FPLEdBQXNELElBQTdCQyxFQUFrQmxwRyxPQUs5Q3FvQyxHQUFBQSxRQUFBQSxjQUFDNHlELEdBQXNCMXpCLFNBQVEsQ0FBQ25xRSxNQUFPaTFDLEdBQ3JDaEssR0FBQUEsUUFBQUEsY0FBQzZ5RCxHQUF1QjN6QixTQUFRLENBQUNucUUsTUFBT3k5RixHQUN0Q3h5RCxHQUFBQSxRQUFBQSxjQUFBLE9BQ0V3UyxVQUFVLDhFQUNWLHlCQUF3Qi9OLEdBRXhCekUsR0FBQUEsUUFBQUEsY0FBQ3l5RCxFQUFTLENBQUNuM0MsU0FBVXRDLEVBQVlnTSxTQUFVOHRDLEdBQ3pDOXlELEdBQUFBLFFBQUFBLGNBQUEsUUFBTXdTLFVBQVUsa0ZBQWlGLHVCQUluR3hTLEdBQUFBLFFBQUFBLGNBQUMweUQsRUFBZ0IsQ0FDZnAzQyxTQUFVdEMsRUFDVnVCLFFBQVN3NEMsSUFFWC95RCxHQUFBQSxRQUFBQSxjQUFBLE1BQ0V3UyxXQUFXbUksRUFBQUEsR0FBQUEsU0FBVyx3Q0FBeUMsQ0FDN0Qsb0RBQXFEM0IsS0FHdERBLEdBQ0NoWixHQUFBQSxRQUFBQSxjQUFBQSxHQUFBQSxRQUFBQSxTQUFBLEtBQ0c2Z0UsRUFBa0IvakcsS0FBSzAyRixHQUN0Qnh6RCxHQUFBQSxRQUFBQSxjQUFDZ3lELEVBQVUsQ0FDVHoyRixJQUFLaTRGLEVBQ0xqK0YsS0FBTWkrRixFQUNOeitGLE1BQU80Z0MsRUFBTzY5RCxHQUNkaGhELFVBQVUsNkRBL0JuQixJQXVDMEIsRUM3RXJDLE1BQU13L0MsV0FBYUEsRUFBR3o4RixPQUFNUixRQUFPeTlDLGdCQUNqQyxNQUFNdjhCLEVBQUswNEUsU0FDTCxLQUFFM2tELEdBQVNvb0QsUUFBUTc4RixJQUNuQixXQUFFeWpELEVBQVUsWUFBRXM1QyxFQUFXLGFBQUVDLEdBQWlCSixjQUFjNThGLElBQ3pEa3ZDLEVBQU8rdEQsR0FBYUgsV0FDckJJLEVBQVlQLGFBQWEsYUFDekJRLEVBQW1CUixhQUFhLG9CQUNoQzRPLEVBQ2EsaUJBQVYvckcsR0FDVSxpQkFBVkEsR0FDVSxpQkFBVkEsR0FDVSxrQkFBVkEsR0FDVSxpQkFBVkEsR0FDRSxNQUFUQSxFQUNJMm9DLEVaNFhxQnFqRSxDQUFDaHNHLEdBQzVCeTBELGNBQWN6MEQsSUFBd0MsSUFBOUJQLE9BQU9nSCxLQUFLekcsR0FBTzRDLE9ZN1gzQm9wRyxDQUFjaHNHLElaK1hKaXNHLENBQUNqc0csR0FDM0JtRSxNQUFNMkQsUUFBUTlILElBQTJCLElBQWpCQSxFQUFNNEMsT1loWVVxcEcsQ0FBYWpzRyxHQUsvQys5RixHQUFrQjlnRSxFQUFBQSxHQUFBQSxjQUFZLEtBQzlCZ25CLEVBQ0Z1NUMsSUFFQUQsR0FDRixHQUNDLENBQUN0NUMsRUFBWXM1QyxFQUFhQyxJQUN2QlEsR0FBc0IvZ0UsRUFBQUEsR0FBQUEsY0FDMUIsQ0FBQ255QixFQUFHbXpGLEtBQ0VBLEVBQ0ZWLEVBQVksQ0FBRVcsTUFBTSxJQUVwQlYsRUFBYSxDQUFFVSxNQUFNLEdBQ3ZCLEdBRUYsQ0FBQ1gsRUFBYUMsSUFNaEIsT0FBSXVPLEVBRUE5Z0UsR0FBQUEsUUFBQUEsY0FBQSxPQUFLd1MsV0FBV21JLEVBQUFBLEdBQUFBLFNBQVcsa0NBQW1DbkksSUFDNUR4UyxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLDBGQUNiajlDLEdBRUh5cUMsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSw0RkFDYnY4QixFQUFHMm1CLFVBQVU3bkMsS0FNbEIyb0MsRUFFQXNDLEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFdBQVdtSSxFQUFBQSxHQUFBQSxTQUFXLGtDQUFtQ25JLElBQzVEeFMsR0FBQUEsUUFBQUEsY0FBQSxRQUFNd1MsVUFBVSwwRkFDYmo5QyxHQUVIeXFDLEdBQUFBLFFBQUFBLGNBQUEsVUFBUXdTLFVBQVUsMEVBQ2Z0NUMsTUFBTTJELFFBQVE5SCxHQUFTLGNBQWdCLGlCQU85Q2lyQyxHQUFBQSxRQUFBQSxjQUFDNHlELEdBQXNCMXpCLFNBQVEsQ0FBQ25xRSxNQUFPaTFDLEdBQ3JDaEssR0FBQUEsUUFBQUEsY0FBQzZ5RCxHQUF1QjN6QixTQUFRLENBQUNucUUsTUFBT3k5RixHQUN0Q3h5RCxHQUFBQSxRQUFBQSxjQUFBLE9BQ0V3UyxXQUFXbUksRUFBQUEsR0FBQUEsU0FBVyxrQ0FBbUNuSSxHQUN6RCx5QkFBd0IvTixHQUV4QnpFLEdBQUFBLFFBQUFBLGNBQUN5eUQsRUFBUyxDQUFDbjNDLFNBQVV0QyxFQUFZZ00sU0FBVTh0QyxHQUN6Qzl5RCxHQUFBQSxRQUFBQSxjQUFBLFFBQU13UyxVQUFVLDBGQUNiajlDLElBR0x5cUMsR0FBQUEsUUFBQUEsY0FBQzB5RCxFQUFnQixDQUNmcDNDLFNBQVV0QyxFQUNWdUIsUUFBU3c0QyxJQUVYL3lELEdBQUFBLFFBQUFBLGNBQUEsVUFBUXdTLFVBQVUsMEVBQ2Z0NUMsTUFBTTJELFFBQVE5SCxHQUFTLFFBQVUsVUFFcENpckMsR0FBQUEsUUFBQUEsY0FBQSxNQUNFd1MsV0FBV21JLEVBQUFBLEdBQUFBLFNBQVcsNENBQTZDLENBQ2pFLHdEQUNHM0IsS0FHSkEsR0FDQ2haLEdBQUFBLFFBQUFBLGNBQUFBLEdBQUFBLFFBQUFBLFNBQUEsS0FDRzltQyxNQUFNMkQsUUFBUTlILEdBQ1hBLEVBQU0rSCxLQUFJLENBQUNzaUIsRUFBTWprQixJQUNmNmtDLEdBQUFBLFFBQUFBLGNBQUEsTUFDRXprQyxJQUFLLElBQUlKLElBQ1RxM0MsVUFBVSxnQ0FFVnhTLEdBQUFBLFFBQUFBLGNBQUNneUQsV0FBVSxDQUNUejhGLEtBQU0sSUFBSTRGLElBQ1ZwRyxNQUFPcXFCLEVBQ1BvekIsVUFBV0EsT0FJakJoK0MsT0FBT29pQyxRQUFRN2hDLEdBQU8rSCxLQUNwQixFQUFFcXhELEVBQWM4eUMsS0FDZGpoRSxHQUFBQSxRQUFBQSxjQUFBLE1BQ0V6a0MsSUFBSzR5RCxFQUNMM2IsVUFBVSxnQ0FFVnhTLEdBQUFBLFFBQUFBLGNBQUNneUQsV0FBVSxDQUNUejhGLEtBQU00NEQsRUFDTnA1RCxNQUFPa3NHLEVBQ1B6dUQsVUFBV0EsV0FVRixFQVVyQyxrQkM1R0Esd0JBbkNrQmlnRCxFQUFHbjNDLFlBQVcsRUFBT04sV0FBVWdLLGVBQy9DLE1BQU1rOEMsRUFBbUJoUCxhQUFhLG9CQUVoQ1ksR0FBa0I5Z0UsRUFBQUEsR0FBQUEsY0FDckJ4VCxJQUNDd21DLEVBQVN4bUMsR0FBUTg4QixFQUFTLEdBRTVCLENBQUNBLEVBQVUwSixJQUdiLE9BQ0VobEIsR0FBQUEsUUFBQUEsY0FBQSxVQUNFL29DLEtBQUssU0FDTHU3QyxVQUFVLGdDQUNWK0gsUUFBU3U0QyxHQUVUOXlELEdBQUFBLFFBQUFBLGNBQUEsT0FBS3dTLFVBQVUsMkNBQTJDd0ksR0FDMURoYixHQUFBQSxRQUFBQSxjQUFBLFFBQ0V3UyxXQUFXbUksRUFBQUEsR0FBQUEsU0FBVyxzQ0FBdUMsQ0FDM0QsZ0RBQWlEVyxFQUNqRCxrREFBbURBLEtBR3JEdGIsR0FBQUEsUUFBQUEsY0FBQ2toRSxFQUFnQixPQUVaLEVDSmIsc0NBeEJ5QnhPLEVBQUdwM0MsV0FBVWYsY0FDcEMsTUFBTXU0QyxHQUFrQjlnRSxFQUFBQSxHQUFBQSxjQUNyQnhULElBQ0MrN0IsRUFBUS83QixHQUFRODhCLEVBQVMsR0FFM0IsQ0FBQ0EsRUFBVWYsSUFHYixPQUNFdmEsR0FBQUEsUUFBQUEsY0FBQSxVQUNFL29DLEtBQUssU0FDTHU3QyxVQUFVLHlDQUNWK0gsUUFBU3U0QyxHQUVSeDNDLEVBQVcsZUFBaUIsYUFDdEIsRUNMYix1QkFYcUI2bEQsSUFDbkJuaEUsR0FBQUEsUUFBQUEsY0FBQSxPQUNFNlMsTUFBTSw2QkFDTkosTUFBTSxLQUNOQyxPQUFPLEtBQ1BJLFFBQVEsYUFFUjlTLEdBQUFBLFFBQUFBLGNBQUEsUUFBTXBnQyxFQUFFLG9EQ3NETCxNQUFNd2hHLHNCQUF3QkEsQ0FBQ3p2RSxFQUFXMHZFLEVBQVksQ0FBQyxLQUM1RCxNQUFNdHNHLEVBQVEsQ0FDWmlwQyxXQUFZLENBQ1Z1MkQsV0FBVSxHQUNWb0UsZUFBYyxpQkFDZEMsbUJBQWtCLHdCQUNsQkMsV0FBVSxhQUNWQyxlQUFjLGlCQUNkQyxzQkFBcUIsd0JBQ3JCQyxZQUFXLGNBQ1hDLG1CQUFrQixxQkFDbEJDLGFBQVksZUFDWkMsZ0JBQWUsa0JBQ2ZDLGFBQVksZUFDWkMsYUFBWSxlQUNaQyxhQUFZLGVBQ1pDLFdBQVUsYUFDVkMsVUFBUyxZQUNUQyxZQUFXLGNBQ1hDLFlBQVcsY0FDWEMsd0JBQXVCLDBCQUN2QkMsbUJBQWtCLHFCQUNsQkMsYUFBWSxlQUNaQyxnQkFBZSxrQkFDZkMsa0JBQWlCLCtCQUNqQkMseUJBQXdCLG9DQUN4QkMsNEJBQTJCLDhCQUMzQkMscUJBQW9CLHVCQUNwQkMsd0JBQXVCLDBCQUN2QkMsNkJBQTRCLCtCQUM1QkMsWUFBVyxjQUNYQyxZQUFXLFVBQ1hDLGFBQVksWUFDWkMsa0JBQWlCLEdBQ2pCQyx5QkFBd0Isb0NBQ3hCQyxxQkFBb0IsdUJBQ3BCQyxhQUFZLFlBQ1pqSCxtQkFBa0IsaUNBQ2xCa0gsZUFBYyxnQkFDZEMsa0JBQWlCLG9CQUNqQkMsZ0JBQWUsa0JBQ2ZDLGlCQUFnQixtQkFDaEJoSCxnQkFBZSwyQkFDZmlILGtCQUFpQixvQ0FDakJoSixXQUFVLEdBQ1ZTLFVBQVMsb0JBQ1RDLGlCQUFnQixrQ0FDaEJ3TyxpQkFBZ0Isc0JBQ2JHLEVBQVVyakUsWUFFZjNiLE9BQVEsQ0FDTnN1RSxlQUFnQiwrQ0FTaEJDLHNCQUF1QixFQUN2QmdRLHVCQUF1QixLQUNwQlMsRUFBVWgvRSxRQUVmcE0sR0FBSSxDQUNGc25GLFdBQVUsY0FDVjlPLFNBQVVnUCxhQUFhOU8sT0FDdkJodUQsUUFBU2c5RCxZQUFZaFAsT0FDckJpUCxvQkFDQTdMLFdBQ0FsQixhQUFjOEQsb0JBQWlCaEcsT0FDL0IveEQsVUFBUyxhQUNUODdELHFCQUNBckUscUJBQ0F2RCxrQkFDQXVOLHFCQUFzQnNCLHlCQUF5QmhSLFVBQzVDMFMsRUFBVXByRixJQUVmeGQsTUFBTyxDQUFFaTVELE1BQU8sQ0FBQyxJQUdiNHZDLElBQU85NUUsR0FDWHdZLEdBQUFBLFFBQUFBLGNBQUNpM0QsR0FBa0IvM0IsU0FBUSxDQUFDbnFFLE1BQU9BLEdBQ2pDaXJDLEdBQUFBLFFBQUFBLGNBQUNyTyxFQUFjbkssSUFRbkIsT0FMQTg1RSxJQUFJQyxTQUFXLENBQ2J0SyxrQkFBaUJBLElBRW5CcUssSUFBSTdoRCxZQUFjOXRCLEVBQVU4dEIsWUFFckI2aEQsR0FBRyxFQUdDRSxnQ0FDWEEsRUFBRzFwRSxlQUNILENBQUNuRyxFQUFXMHZFLEVBQVksQ0FBQyxLQUN2QixNQUFNLGFBQUVuMkQsRUFBWSxXQUFFdEwsR0FBZTlILElBQy9CaUcsRUFBVTZCLElBRVYyMEQsRUFBYXJwRCxFQUFhLG9CQUMxQnl0RCxFQUFpQnp0RCxFQUFhLGtDQUM5QjB0RCxFQUFxQjF0RCxFQUN6QixzQ0FFSTJ0RCxFQUFhM3RELEVBQWEsOEJBQzFCNHRELEVBQWlCNXRELEVBQWEsa0NBQzlCNnRELEVBQXdCN3RELEVBQzVCLHlDQUVJOHRELEVBQWM5dEQsRUFBYSwrQkFDM0IrdEQsRUFBcUIvdEQsRUFDekIsc0NBRUlndUQsRUFBZWh1RCxFQUFhLGdDQUM1Qml1RCxFQUFrQmp1RCxFQUFhLG1DQUMvQmt1RCxFQUFlbHVELEVBQWEsZ0NBQzVCbXVELEVBQWVudUQsRUFBYSxnQ0FDNUJvdUQsRUFBZXB1RCxFQUFhLGdDQUM1QnF1RCxFQUFhcnVELEVBQWEsOEJBQzFCc3VELEVBQVl0dUQsRUFBYSw2QkFDekJ1dUQsRUFBY3Z1RCxFQUFhLCtCQUMzQnd1RCxFQUFjeHVELEVBQWEsK0JBQzNCeXVELEVBQTBCenVELEVBQzlCLDJDQUVJMHVELEVBQXFCMXVELEVBQ3pCLHNDQUVJMnVELEVBQWUzdUQsRUFBYSxnQ0FDNUI0dUQsRUFBa0I1dUQsRUFBYSxtQ0FDL0I2dUQsRUFBb0I3dUQsRUFBYSxxQ0FDakM4dUQsRUFBMkI5dUQsRUFDL0IsNENBRUkrdUQsRUFBOEIvdUQsRUFDbEMsK0NBRUlndkQsRUFBdUJodkQsRUFDM0Isd0NBRUlpdkQsRUFBMEJqdkQsRUFDOUIsMkNBRUlrdkQsRUFBK0JsdkQsRUFDbkMsZ0RBRUltdkQsRUFBY252RCxFQUFhLCtCQUMzQm92RCxFQUFjcHZELEVBQWEsK0JBQzNCcXZELEVBQWVydkQsRUFBYSxnQ0FDNUJzdkQsRUFBb0J0dkQsRUFBYSxxQ0FDakN1dkQsRUFBMkJ2dkQsRUFDL0IsNENBRUl3dkQsRUFBdUJ4dkQsRUFDM0Isd0NBRUl5dkQsRUFBZXp2RCxFQUFhLGdDQUM1QndvRCxFQUFxQnhvRCxFQUN6QixzQ0FFSTB2RCxFQUFpQjF2RCxFQUFhLGtDQUM5QjJ2RCxFQUFvQjN2RCxFQUFhLHFDQUNqQzR2RCxFQUFrQjV2RCxFQUFhLG1DQUMvQjZ2RCxFQUFtQjd2RCxFQUFhLG9DQUNoQzZvRCxFQUFrQjdvRCxFQUFhLG1DQUMvQjh2RCxFQUFvQjl2RCxFQUFhLHFDQUNqQzhtRCxFQUFhOW1ELEVBQWEsOEJBQzFCdW5ELEVBQVl2bkQsRUFBYSw2QkFDekJ3bkQsRUFBbUJ4bkQsRUFBYSxvQ0FDaENnMkQsRUFBbUJoMkQsRUFBYSxvQ0FFdEMsT0FBT2syRCxzQkFBc0J6dkUsRUFBVyxDQUN0Q3FNLFdBQVksQ0FDVnUyRCxhQUNBb0UsaUJBQ0FDLHFCQUNBQyxhQUNBQyxpQkFDQUMsd0JBQ0FDLGNBQ0FDLHFCQUNBQyxlQUNBQyxrQkFDQUMsZUFDQUMsZUFDQUMsZUFDQUMsYUFDQUMsWUFDQUMsY0FDQUMsY0FDQUMsMEJBQ0FDLHFCQUNBQyxlQUNBQyxrQkFDQUMsb0JBQ0FDLDJCQUNBQyw4QkFDQUMsdUJBQ0FDLDBCQUNBQywrQkFDQUMsY0FDQUMsY0FDQUMsZUFDQUMsb0JBQ0FDLDJCQUNBQyx1QkFDQUMsZUFDQWpILHFCQUNBa0gsaUJBQ0FDLG9CQUNBQyxrQkFDQUMsbUJBQ0FoSCxrQkFDQWlILG9CQUNBaEosYUFDQVMsWUFDQUMsbUJBQ0F3TyxzQkFDR0csRUFBVXJqRSxZQUVmM2IsT0FBUSxDQUNOdStFLHNCQUF1QjdpRSxFQUFRbWxCLGtCQUM1Qm0rQyxFQUFVaC9FLFFBRWZwTSxHQUFJLElBQ0NvckYsRUFBVXByRixLQUVmLEVDOUlOLHdCQWxGK0J3ckYsRUFBRzNwRSxZQUFXN2hCLFNBQzNDLE1BQU15bkYsV0FBYUEsS0FBQSxDQUNqQkgsV0FBWXRuRixFQUFHc25GLGNBQ1p0bkYsRUFBR3k0RSxtQkFHUixNQUFPLENBQ0wxd0QsV0FBWSxDQUNWZ3dELGlCQUFrQnVHLEdBQ2xCbU4sK0JBQWdDL0ksaUJBQ2hDZ0osbUNBQW9DL0ksd0JBQ3BDZ0osMkJBQTRCL0ksYUFDNUJnSiwrQkFBZ0MvSSxpQkFDaENnSixzQ0FBdUMvSSx3QkFDdkNnSiw0QkFBNkIvSSxjQUM3QmdKLG1DQUFvQy9JLHFCQUNwQ2dKLDZCQUE4Qi9JLGVBQzlCZ0osZ0NBQWlDL0ksa0JBQ2pDZ0osNkJBQThCL0ksZUFDOUJnSiw2QkFBOEIvSSxlQUM5QmdKLDZCQUE4Qi9JLGVBQzlCZ0osMkJBQTRCL0ksYUFDNUJnSiwwQkFBMkIvSSxZQUMzQmdKLDRCQUE2Qi9JLGNBQzdCZ0osNEJBQTZCL0ksY0FDN0JnSix3Q0FBeUMvSSwwQkFDekNnSixtQ0FBb0MvSSxxQkFDcENnSiw2QkFBOEIvSSxlQUM5QmdKLGdDQUFpQy9JLGtCQUNqQzFELGtDQUFtQzJELCtCQUNuQytJLHlDQUEwQzlJLG9DQUMxQytJLDRDQUE2QzlJLDhCQUM3QytJLHFDQUFzQzlJLHVCQUN0QytJLHdDQUF5QzlJLDBCQUN6QytJLDZDQUNFOUksK0JBQ0YrSSw0QkFBNkI5SSxjQUM3QitJLDRCQUE2QjlJLFVBQzdCK0ksNkJBQThCOUksWUFDOUIrSSxrQ0FBbUM5SSxHQUNuQytJLHlDQUEwQzlJLG9DQUMxQytJLHFDQUFzQzlJLHVCQUN0QytJLDZCQUE4QjlJLFlBQzlCM0UsbUNBQW9DdEMsaUNBQ3BDZ1EsK0JBQWdDOUksZ0JBQ2hDK0ksa0NBQW1DOUksb0JBQ25DK0ksZ0NBQWlDOUksa0JBQ2pDK0ksaUNBQWtDOUksbUJBQ2xDN0UsZ0NBQWlDbkMsMkJBQ2pDK1Asa0NBQW1DOUksb0NBQ25DK0ksMkJBQTRCL1IsR0FDNUJnUywwQkFBMkJ2UixvQkFDM0J3UixpQ0FBa0N2UixrQ0FDbEN3UixpQ0FBa0NoRCxtQkFDbENpRCw0QkFBNkIvQyxzQkFDN0JnRCxrQ0FDRTVDLGdDQUFnQzFwRSxLQUNsQ3VzRSw0QkFBNkJBLElBQU16UixHQUNuQzBSLDZCQUE4QkEsSUFBTXpSLElBRXRDNThFLEdBQUksQ0FDRnNuRixXQUFVLGNBQ1Y3TyxpQkFBa0IsQ0FDaEJELFNBQVVnUCxhQUFhQyxZQUN2Qi84RCxRQUFTZzlELFlBQVlELFlBQ3JCN00sYUFBYzhELG9CQUFpQitJLFlBQy9CRSxvQkFDQTdMLFdBQ0FwRCxNQUNBMkYsVUFDQXBDLGFBQ0FDLGNBQ0FDLFFBQ0FDLFNBQ0F2QixrQkFDQXVOLHFCQUFzQnNCLHlCQUF5QmpDLFlBQy9DcDBDLGNBQWFBLG1CQUdsQixFQ2xHSCxVQUprQmk3QyxDQUFDNXVFLEdBQVV5NEIsU0FBUyxJQUFPLENBQUMsSUEzQ1RvMkMsRUFBQ3A2RixFQUFPcXVGLEVBQWMsQ0FBQyxLQUMxRCxNQUFNLFNBQUU1L0QsRUFBUSxTQUFFRCxFQUFRLFlBQUVELEdBQWdCOC9ELEdBQ3RDLFNBQUVsdkQsRUFBUSxZQUFFaTJELEVBQVcsWUFBRUMsR0FBZ0JoSCxFQUMvQyxJQUFJZ00sRUFBbUIsSUFBSXI2RixHQUUzQixHQUFnQixNQUFabS9CLEdBQXdDLGlCQUFiQSxFQUF1QixDQUNwRCxHQUFJMTBDLE9BQU91Z0IsVUFBVW9xRixJQUFnQkEsRUFBYyxFQUFHLENBQ3BELE1BQU1rRixFQUFlRCxFQUFpQkUsR0FBRyxHQUN6QyxJQUFLLElBQUl4ckcsRUFBSSxFQUFHQSxFQUFJcW1HLEVBQWFybUcsR0FBSyxFQUNwQ3NyRyxFQUFpQmh0RyxRQUFRaXRHLEVBRTdCLENBQ0k3dkcsT0FBT3VnQixVQUFVcXFGLEVBT3ZCLENBS0EsR0FISTVxRyxPQUFPdWdCLFVBQVV3akIsSUFBYUEsRUFBVyxJQUMzQzZyRSxFQUFtQnI2RixFQUFNclUsTUFBTSxFQUFHNmlDLElBRWhDL2pDLE9BQU91Z0IsVUFBVXlqQixJQUFhQSxFQUFXLEVBQzNDLElBQUssSUFBSTEvQixFQUFJLEVBQUdzckcsRUFBaUI5c0csT0FBU2toQyxFQUFVMS9CLEdBQUssRUFDdkRzckcsRUFBaUIvc0csS0FBSytzRyxFQUFpQnRyRyxFQUFJc3JHLEVBQWlCOXNHLFNBY2hFLE9BVm9CLElBQWhCZ2hDLElBT0Y4ckUsRUFBbUJ2ckcsTUFBTTZQLEtBQUssSUFBSWlxQixJQUFJeXhFLEtBR2pDQSxDQUFnQixFQUloQkQsQ0FBc0JwMkMsRUFBUXo0QixHQ3hDdkMsV0FKbUIrdkIsS0FDakIsTUFBTSxJQUFJNXRELE1BQU0sa0JBQWtCLEVDUzdCLE1BQU13TyxNQUFTM08sR0FBV3dPLEtBQVl4TyxHQXVCaENpdEcsS0FBUTlwRyxHQUNaQSxFQUFLNnBHLEdBQUcsR0NqQ0ovRywrQkFBdUJqb0UsR0FDVCxrQkFBWEEsRUFHSGt2RSxtQkFBc0JsdkUsSUFDMUI2ekIsRUFBQUEsR0FBQUEsU0FBYzd6QixHQUdWbXZFLGFBQWdCbnZFLEdBQ3BCaW9FLCtCQUFvQmpvRSxJQUFXa3ZFLG1CQUFtQmx2RSxHQ1MzRCxPQXBCQSxNQUFNb3ZFLFNBQ0pwa0csS0FBTyxDQUFDLEVBRVJvK0IsUUFBQUEsQ0FBU3hwQyxFQUFNUixHQUNiRyxLQUFLeUwsS0FBS3BMLEdBQVFSLENBQ3BCLENBRUFpd0csVUFBQUEsQ0FBV3p2RyxRQUNXLElBQVRBLEVBQ1RMLEtBQUt5TCxLQUFPLENBQUMsU0FFTnpMLEtBQUt5TCxLQUFLcEwsRUFFckIsQ0FFQXVFLEdBQUFBLENBQUl2RSxHQUNGLE9BQU9MLEtBQUt5TCxLQUFLcEwsRUFDbkIsR0NmRixVQUZ1QjB2RyxJQUFNLEVDRTdCLFVBRnVCQyxJQUFNLEVDRTdCLHFCQUZ1QkMsSUFBTSxHQ0U3QixzQkFGd0JDLElBQU0sR0NFOUIsVUFGdUJDLElBQU0sbUJDRTdCLGNBRjBCQyxJQUFNLGlCQ0VoQyxhQUYwQkMsSUFBTSxjQ0VoQyxpQkFGNkJDLElBQU0sU0NFbkMsU0FGc0JDLElBQU0sZ0JDRTVCLFNBRnNCQyxJQUFNLDBDQ0U1QixRQUZxQkMsSUFBTSx1QkNFM0Isa0JBRjhCQyxJQUFNLGtCQ0VwQyxRQUZxQkMsSUFBTSxrQkNFM0Isa0JBRjhCQyxJQUFNLGVDRXBDLFNBRnNCQyxJQUFNLHVDQ0c1QixpQkFINkJDLElBQzNCLGlEQ0NGLGlCQUY2QkMsSUFBTSxTQ0VuQywwQkFGcUNDLElBQU0sTUNFM0MsY0FGMEJDLEtBQU0sSUFBSXQzRSxNQUFPcThCLGNDRTNDLFNBRnNCazdDLEtBQU0sSUFBSXYzRSxNQUFPcThCLGNBQWN2dEQsVUFBVSxFQUFHLElDRWxFLFNBRnNCMG9HLEtBQU0sSUFBSXgzRSxNQUFPcThCLGNBQWN2dEQsVUFBVSxJQ0UvRCxhQUYwQjJvRyxJQUFNLE1DRWhDLHdCQUYwQkMsSUFBTSxXQ0VoQyxVQUZ1QkMsSUFBTSxXQ0c3QixNQUFNQyxHQUFXLElDdUJqQixNQUFNQyx1QkFBdUIzQixHQUMzQixHQUFZLENBQ1Y0QixNQUNBQyxNQUNBQyxNQUFPMUIsaUJBQ1AyQixPQUFRMUIsa0JBQ1J2bEIsTUFDQSxZQUFheWxCLFVBQ2J5QixTQUNBLGVBQWdCdkIsYUFDaEJ3QixLQUNBQyxLQUNBaHJFLElBQ0EsZ0JBQWlCMnBFLGNBQ2pCc0IsSUFDQSxnQkFBaUJwQixjQUNqQnFCLEtBQ0EsZUFBZ0JuQixhQUNoQixlQUFnQkMsYUFDaEIsd0JBQXlCQyxzQkFDekIsWUFBYUMsVUFDYmlCLEtBQ0FDLEtBQ0EvcUMsU0FDQXgzQixTQUFVeWhFLG9CQUNWcnZCLE9BR0Z2MkUsS0FBTyxJQUFLekwsTUFBSyxHQUVqQixZQUFJb3lHLEdBQ0YsTUFBTyxJQUFLcHlHLE1BQUssRUFDbkIsR0RyRElxeUcsVUFBWUEsQ0FBQ3hsRyxFQUFReWxHLElBQ0EsbUJBQWRBLEVBQ0ZmLEdBQVMxbkUsU0FBU2g5QixFQUFReWxHLEdBQ1YsT0FBZEEsRUFDRmYsR0FBU3pCLFdBQVdqakcsR0FHdEIwa0csR0FBUzNzRyxJQUFJaUksR0FFdEJ3bEcsVUFBVUUsWUFBYyxJQUFNaEIsR0FBU2EsU0FFdkMsb0RFZEEsVUFGb0I5bEcsR0FBWXZELEdBQU84SyxLQUFLdkgsR0FBU2dFLFNBQVMsNENDRTlELFVBRm9CaEUsR0FBWXZELEdBQU84SyxLQUFLdkgsR0FBU2dFLFNBQVMsMkNDRTlELFdBRnNCaEUsR0FBWXZELEdBQU84SyxLQUFLdkgsR0FBU2dFLFNBQVMsVUNrQ2hFLHFCQWxDK0JoRSxJQUM3QixJQUFJa21HLEVBQWtCLEdBRXRCLElBQUssSUFBSXZ1RyxFQUFJLEVBQUdBLEVBQUlxSSxFQUFRN0osT0FBUXdCLElBQUssQ0FDdkMsTUFBTXd1RyxFQUFXbm1HLEVBQVFpRSxXQUFXdE0sR0FFcEMsR0FBaUIsS0FBYnd1RyxFQUVGRCxHQUFtQixXQUNkLEdBQ0pDLEdBQVksSUFBTUEsR0FBWSxJQUM5QkEsR0FBWSxJQUFNQSxHQUFZLEtBQ2xCLElBQWJBLEdBQ2EsS0FBYkEsRUFFQUQsR0FBbUJsbUcsRUFBUWc4RixPQUFPcmtHLFFBQzdCLEdBQWlCLEtBQWJ3dUcsR0FBZ0MsS0FBYkEsRUFDNUJELEdBQW1CLFlBQ2QsR0FBSUMsRUFBVyxJQUFLLENBRXpCLE1BQU1DLEVBQU9DLFNBQVNqc0UsbUJBQW1CcDZCLEVBQVFnOEYsT0FBT3JrRyxLQUN4RCxJQUFLLElBQUkrRyxFQUFJLEVBQUdBLEVBQUkwbkcsRUFBS2p3RyxPQUFRdUksSUFDL0J3bkcsR0FDRSxLQUFPLElBQU1FLEVBQUtuaUcsV0FBV3ZGLEdBQUdzRixTQUFTLEtBQUt6UCxPQUFPLEdBQUc4cUMsYUFFOUQsTUFDRTZtRSxHQUNFLEtBQU8sSUFBTUMsRUFBU25pRyxTQUFTLEtBQUt6UCxPQUFPLEdBQUc4cUMsYUFFcEQsQ0FFQSxPQUFPNm1FLENBQWUscUNDN0J4QixXQUZzQmxtRyxHQUFZdkQsR0FBTzhLLEtBQUt2SCxHQUFTZ0UsU0FBUywwQ0M4QmhFLFdBOUJzQmhFLElBQ3BCLE1BQU1zbUcsRUFBWTdwRyxHQUFPOEssS0FBS3ZILEdBQVNnRSxTQUFTLFFBQzFDdWlHLEVBQWlCLG1DQUN2QixJQUFJQyxFQUFlLEVBQ2ZDLEVBQVksR0FDWngrRixFQUFTLEVBQ1R5K0YsRUFBZSxFQUVuQixJQUFLLElBQUkvdUcsRUFBSSxFQUFHQSxFQUFJMnVHLEVBQVVud0csT0FBUXdCLElBSXBDLElBSEFzUSxFQUFVQSxHQUFVLEVBQUtxK0YsRUFBVXJpRyxXQUFXdE0sR0FDOUMrdUcsR0FBZ0IsRUFFVEEsR0FBZ0IsR0FDckJELEdBQWFGLEVBQWV2SyxPQUFRL3pGLElBQVl5K0YsRUFBZSxFQUFNLElBQ3JFQSxHQUFnQixFQUloQkEsRUFBZSxJQUNqQkQsR0FBYUYsRUFBZXZLLE9BQVEvekYsR0FBVyxFQUFJeStGLEVBQWlCLElBQ3BFRixHQUFnQixFQUF5QixFQUFuQkYsRUFBVW53RyxPQUFjLEdBQU0sR0FHdEQsSUFBSyxJQUFJd0IsRUFBSSxFQUFHQSxFQUFJNnVHLEVBQWM3dUcsSUFDaEM4dUcsR0FBYSxJQUdmLE9BQU9BLENBQVMscUNDekJsQixXQUZzQnptRyxHQUFZdkQsR0FBTzhLLEtBQUt2SCxHQUFTZ0UsU0FBUyw2Q0NFaEUsY0FGeUJoRSxHQUFZdkQsR0FBTzhLLEtBQUt2SCxHQUFTZ0UsU0FBUyxhQ0duRSxNQUFNaWhHLEdBQVcsSUNPakIsTUFBTTBCLHdCQUF3QnBELEdBQzVCLEdBQVksQ0FDVixPQUFRcUQsTUFDUixPQUFRQyxNQUNSQyxPQUNBLG1CQUFvQkMsaUJBQ3BCQyxPQUNBQyxPQUNBdGdHLE9BQ0F1Z0csV0FHRi9uRyxLQUFPLElBQUt6TCxNQUFLLEdBRWpCLFlBQUlveUcsR0FDRixNQUFPLElBQUtweUcsTUFBSyxFQUNuQixHRHJCSXl6RyxXQUFhQSxDQUFDQyxFQUFjQyxJQUNULG1CQUFaQSxFQUNGcEMsR0FBUzFuRSxTQUFTNnBFLEVBQWNDLEdBQ2xCLE9BQVpBLEVBQ0ZwQyxHQUFTekIsV0FBVzRELEdBR3RCbkMsR0FBUzNzRyxJQUFJOHVHLEdBRXRCRCxXQUFXbEIsWUFBYyxJQUFNaEIsR0FBU2EsU0FFeEMsa0JFSEEsT0FYaUMsQ0FDL0IsYUFBY3dCLElBQU0sU0FDcEIsV0FBWUMsSUFBTSxzQ0FDbEIsV0FBWUMsSUFBTSx1QkFDbEIsWUFBYUMsSUFBTSxpQkFDbkIsZ0JBQWlCQyxJQUFNLGtCQUN2QixrQkFBbUJDLElBQU0sK0JBQ3pCLFdBQVlDLElBQU0scUNBQ2xCLFNBQVVDLElBQU0sVUNKbEIsT0FKa0MsQ0FDaEMsVUFBV0MsSUFBTWhqRyxNQUFNLElBQUlkLFNBQVMsV0NHdEMsT0FKa0MsQ0FDaEMsVUFBVytqRyxJQUFNampHLE1BQU0sSUFBSWQsU0FBUyxXQ0d0QyxPQUprQyxDQUNoQyxVQUFXZ2tHLElBQU1sakcsTUFBTSxJQUFJZCxTQUFTLFdDVXRDLE9BVndDLENBQ3RDLG1CQUFvQmlrRyxJQUFNLGtCQUMxQixzQkFBdUJDLElBQU0sdUJBQzdCLDBCQUEyQkMsSUFBTSx1Q0FDakMsa0JBQW1CQyxJQUFNN3hHLE9BQU84eEcsR0FBRywyQ0FDbkMsbUJBQW9CQyxJQUFNLHNCQUMxQix3QkFBeUJDLElBQU0saUJBQy9CLGdCQUFpQkMsSUFBTTFqRyxNQUFNLElBQUlkLFNBQVMsV0NQNUMsTUFBTWloRyxHQUFXLElDSWpCLE1BQU13RCwwQkFBMEJsRixHQUM5QixHQUFZLElBQ1BtRixNQUNBQyxNQUNBQyxNQUNBQyxNQUNBQyxJQUdMM3BHLEtBQU8sSUFBS3pMLE1BQUssR0FFakIsWUFBSW95RyxHQUNGLE1BQU8sSUFBS3B5RyxNQUFLLEVBQ25CLEdEZklxMUcsYUFBZUEsQ0FBQzVpQixFQUFXNmYsS0FDL0IsR0FBeUIsbUJBQWRBLEVBQ1QsT0FBT2YsR0FBUzFuRSxTQUFTNG9ELEVBQVc2ZixHQUMvQixHQUFrQixPQUFkQSxFQUNULE9BQU9mLEdBQVN6QixXQUFXcmQsR0FHN0IsTUFBTTZpQixFQUFvQjdpQixFQUFVaHlFLE1BQU0sS0FBS2d2RixHQUFHLEdBQzVDOEYsRUFBb0IsR0FBR0QsRUFBa0I3MEYsTUFBTSxLQUFLZ3ZGLEdBQUcsT0FFN0QsT0FDRThCLEdBQVMzc0csSUFBSTZ0RixJQUNiOGUsR0FBUzNzRyxJQUFJMHdHLElBQ2IvRCxHQUFTM3NHLElBQUkyd0csRUFBa0IsRUFHbkNGLGFBQWE5QyxZQUFjLElBQU1oQixHQUFTYSxTQUUxQyxvQkVmQSxNQXNCTW9ELHVCQUF5QkEsQ0FBQ3poRyxFQUFRd3ZGLEVBQWMsQ0FBQyxLQUNyRCxNQUFNLFVBQUVoZ0UsRUFBUyxVQUFFQyxHQUFjKy9ELEVBQ2pDLElBQUlrUyxFQUFvQjFoRyxFQUt4QixHQUhJcFUsT0FBT3VnQixVQUFVcWpCLElBQWNBLEVBQVksSUFDN0NreUUsRUFBb0JBLEVBQWtCNTBHLE1BQU0sRUFBRzBpQyxJQUU3QzVqQyxPQUFPdWdCLFVBQVVzakIsSUFBY0EsRUFBWSxFQUFHLENBQ2hELElBQUl2L0IsRUFBSSxFQUNSLEtBQU93eEcsRUFBa0JoekcsT0FBUytnQyxHQUNoQ2l5RSxHQUFxQkEsRUFBa0J4eEcsSUFBTXd4RyxFQUFrQmh6RyxPQUVuRSxDQUVBLE9BQU9nekcsQ0FBaUIsRUFnQzFCLGlCQTdCbUJDLENBQUNqMUUsR0FBVXk0QixVQUFXLENBQUMsS0FDeEMsTUFBTSxnQkFBRTJtQyxFQUFlLGlCQUFFRCxFQUFnQixjQUFFc0wsR0FBa0J6cUUsR0FDdkQsUUFBRW1ELEVBQU8sT0FBRS8yQixHQUFXNHpCLEVBQ3RCazFFLEVBQVNsQyxHQUFXNVQsSUFBb0JsMUIsR0FBQUEsUUFDOUMsSUFBSWlyQyxFQXNCSixPQW5CRUEsRUFEcUIsaUJBQVpoeUUsRUFDUzR4RSx1QjlDekNDSyxDQUFDanlFLElBQ3RCLElBUUUsTUFBTTh4QixFQUNKLGtHQUNJQyxFQUFjL3hCLEVBQVF0N0IsUUFBUW90RCxFQUFrQixPQUNoREUsRUFBa0IsSUFBSUMsR0FBQUEsUUFBUUYsR0FFcEMsT0FEQUMsRUFBZ0JqOEMsSUFBTSxJQUNmaThDLEVBQWdCM1QsS0FDekIsQ0FBRSxNQUVBLE1BQU8sUUFDVCxHOEN1QjJDNHpELENBQVFqeUUsR0FBVW5ELEdBQ2hDLGlCQUFYNXpCLEVBL0NHaXBHLENBQUNyMUUsSUFDdEIsTUFBTSxPQUFFNXpCLEdBQVc0ekIsRUFFYnMxRSxFQUFrQjFELEdBQVV4bEcsR0FDbEMsTUFBK0IsbUJBQXBCa3BHLEVBQ0ZBLEVBQWdCdDFFLEc5Q3lCQyxROEN0QkwsRUF3Q0RxMUUsQ0FBZXIxRSxHQUVqQ212RSxhQUFhMUUsSUFDZSxpQkFBckJ0TCxRQUNXLElBQVgxbUMsRUFFSGwxRCxNQUFNMkQsUUFBUXV4RCxJQUE2QixpQkFBWEEsRUFDaEIxMEIsS0FBS2tELFVBQVV3eEIsR0FFZnM4Qyx1QkFBdUIzeUcsT0FBT3EyRCxHQUFTejRCLEdBRXRCLGlCQUFyQm0vRCxFQWhETW9XLENBQUN2MUUsSUFDekIsTUFBTSxpQkFBRW0vRCxHQUFxQm4vRCxFQUV2QncxRSxFQUFxQlosR0FBYXpWLEdBQ3hDLE1BQWtDLG1CQUF2QnFXLEVBQ0ZBLEVBQW1CeDFFLEc5Q2NGLFE4Q1hMLEVBeUNEdTFFLENBQWtCdjFFLEdBRWxCKzBFLHVCOUNoQ00sUzhDZ0NpQy8wRSxHQUdwRGsxRSxFQUFPQyxFQUFnQixFQ3RFaEMsTUFXYU0sdUJBQXlCQSxDQUFDMy9DLEVBQVFndEMsRUFBYyxDQUFDLEtBQzVELE1BQU0sUUFBRWpnRSxFQUFPLFFBQUVELEVBQU8saUJBQUV1MkIsRUFBZ0IsaUJBQUVDLEdBQXFCMHBDLEdBQzNELFdBQUVpRyxHQUFlakcsRUFDakI0UyxFQUFVeDJHLE9BQU91Z0IsVUFBVXEyQyxHQUFVLEVBQUk1MkQsT0FBT3kyRyxRQUN0RCxJQUFJQyxFQUE4QixpQkFBWi95RSxFQUF1QkEsRUFBVSxLQUNuRGd6RSxFQUE4QixpQkFBWmp6RSxFQUF1QkEsRUFBVSxLQUNuRGt6RSxFQUFvQmhnRCxFQWlCeEIsR0FmZ0MsaUJBQXJCcUQsSUFDVHk4QyxFQUNlLE9BQWJBLEVBQ0l4K0YsS0FBSzhCLElBQUkwOEYsRUFBVXo4QyxFQUFtQnU4QyxHQUN0Q3Y4QyxFQUFtQnU4QyxHQUVLLGlCQUFyQnQ4QyxJQUNUeThDLEVBQ2UsT0FBYkEsRUFDSXorRixLQUFLQyxJQUFJdytGLEVBQVV6OEMsRUFBbUJzOEMsR0FDdEN0OEMsRUFBbUJzOEMsR0FFM0JJLEVBQ0dGLEVBQVdDLEdBQVkvL0MsR0FBVzgvQyxHQUFZQyxHQUFZQyxFQUVuQyxpQkFBZi9NLEdBQTJCQSxFQUFhLEVBQUcsQ0FDcEQsTUFBTTNsRixFQUFZMHlGLEVBQW9CL00sRUFDdEMrTSxFQUNnQixJQUFkMXlGLEVBQ0kweUYsRUFDQUEsRUFBb0IvTSxFQUFhM2xGLENBQ3pDLENBRUEsT0FBTzB5RixDQUFpQixFQWdCMUIsaUJBYm9COTFFLElBQ2xCLE1BQU0sT0FBRTV6QixHQUFXNHpCLEVBQ25CLElBQUkrMUUsRUFRSixPQUxFQSxFQURvQixpQkFBWDNwRyxFQWpEVWlwRyxDQUFDcjFFLElBQ3RCLE1BQU0sT0FBRTV6QixHQUFXNHpCLEVBRWJzMUUsRUFBa0IxRCxHQUFVeGxHLEdBQ2xDLE1BQStCLG1CQUFwQmtwRyxFQUNGQSxFQUFnQnQxRSxHL0NnQ0MsQytDN0JMLEVBMENEcTFFLENBQWVyMUUsRy9DYlQsRStDa0JuQnkxRSx1QkFBdUJNLEVBQWlCLzFFLEVBQU8sRUNuQnhELGtCQWJxQkEsSUFDbkIsTUFBTSxPQUFFNXpCLEdBQVc0ekIsRUFDbkIsSUFBSWcyRSxFQVFKLE9BTEVBLEVBRG9CLGlCQUFYNXBHLEVBeEJVaXBHLENBQUNyMUUsSUFDdEIsTUFBTSxPQUFFNXpCLEdBQVc0ekIsRUFFYnMxRSxFQUFrQjFELEdBQVV4bEcsR0FDbEMsR0FBK0IsbUJBQXBCa3BHLEVBQ1QsT0FBT0EsRUFBZ0J0MUUsR0FHekIsT0FBUTV6QixHQUNOLElBQUssUUFDSCxPQUFPa2pHLFFBRVQsSUFBSyxRQUNILE9BQU9DLFFBSVgsT2hEbUIyQixDZ0RuQkwsRUFRRDhGLENBQWVyMUUsR2hEV1QsRWdETnBCeTFFLHVCQUF1Qk8sRUFBa0JoMkUsRUFBTyxFQy9CekQsa0JBSnFCQSxHQUNjLGtCQUFuQkEsRUFBT2kyQixTQUF3QmoyQixFQUFPaTJCLFFDZ0J0RCxXQUFtQmdnRCxNQVZILENBQ2R4aEcsTUFDQStiLE9BQ0FsZCxPQUFRMmhHLGFBQ1JuL0MsT0FBUW9nRCxhQUNSbGdELFFBQVNtZ0QsY0FDVEMsUUFBU0MsY0FDVEMsS0NkZUMsSUFDUixNRGdCeUIsQ0FDaENweUcsSUFBR0EsQ0FBQzdGLEVBQVFzOUIsSUFDVSxpQkFBVEEsR0FBcUIvOEIsT0FBT28xRCxPQUFPMzFELEVBQVFzOUIsR0FDN0N0OUIsRUFBT3M5QixHQUdULElBQU0saUJBQWlCQSxNRXhCM0IsTUFFTTQ2RSxHQUFZLENBQUMsUUFBUyxTQUZOLFNBQVUsVUFBVyxTQUFVLFVBQVcsUUNtQjFEQyxXQUFjejJFLElBQ3pCLElBQUtrdkUsbUJBQW1CbHZFLEdBQVMsT0FBTyxFQUV4QyxNQUFNLFNBQUUweUMsRUFBUSxRQUFFaHNCLEVBQVN1UCxRQUFTeWdELEdBQWUxMkUsRUFFbkQsU0FBSXo4QixNQUFNMkQsUUFBUXdyRSxJQUFhQSxFQUFTMXdFLFFBQVUsVUFJeEIsSUFBZjAwRyxRQUllLElBQVpod0QsRUFBdUIsRUFHMUJpd0QsZUFBa0IzMkUsSUFDN0IsSUFBS2t2RSxtQkFBbUJsdkUsR0FBUyxPQUFPLEtBRXhDLE1BQU0sU0FBRTB5QyxFQUFRLFFBQUVoc0IsRUFBU3VQLFFBQVN5Z0QsR0FBZTEyRSxFQUVuRCxPQUFJejhCLE1BQU0yRCxRQUFRd3JFLElBQWFBLEVBQVMxd0UsUUFBVSxFQUN6QzB3RSxFQUFTczhCLEdBQUcsUUFHSyxJQUFmMEgsRUFDRkEsT0FHYyxJQUFaaHdELEVBQ0ZBLE9BRFQsQ0FJZ0IsRUMvQ1prd0QsR0FBb0IsQ0FDeEJuaUcsTUFBTyxDQUNMLFFBQ0EsY0FDQSxXQUNBLGNBQ0EsY0FDQSxXQUNBLFdBQ0EsY0FDQSxvQkFFRitiLE9BQVEsQ0FDTixhQUNBLHVCQUNBLG9CQUNBLGdCQUNBLGdCQUNBLGdCQUNBLFdBQ0EsbUJBQ0Esb0JBQ0EseUJBRUZsZCxPQUFRLENBQ04sVUFDQSxTQUNBLFlBQ0EsWUFDQSxrQkFDQSxtQkFDQSxpQkFFRjBpRCxRQUFTLENBQ1AsVUFDQSxVQUNBLG1CQUNBLG1CQUNBLGVBR0o0Z0QsR0FBa0I5Z0QsT0FBUzhnRCxHQUFrQjVnRCxRQUU3QyxNQUFNNmdELEdBQWUsU0FFZkMsbUJBQXNCMTNHLFFBQ0wsSUFBVkEsRUFBOEIsS0FDM0IsT0FBVkEsRUFBdUIsT0FDdkJtRSxNQUFNMkQsUUFBUTlILEdBQWUsUUFDN0JGLE9BQU91Z0IsVUFBVXJnQixHQUFlLGlCQUV0QkEsRUFHSDgvRixTQUFZNTlGLElBQ3ZCLEdBQUlpQyxNQUFNMkQsUUFBUTVGLElBQVNBLEVBQUtVLFFBQVUsRUFBRyxDQUMzQyxHQUFJVixFQUFLMkcsU0FBUyxTQUNoQixNQUFPLFFBQ0YsR0FBSTNHLEVBQUsyRyxTQUFTLFVBQ3ZCLE1BQU8sU0FDRixDQUNMLE1BQU04dUcsRUFBZXoxRyxFQUFLK3ZCLFFBQVFpQyxHQUFZLFNBQU5BLElBQ2xDMGpGLEVBQWFDLEtBQ2pCRixFQUFhLzBHLE9BQVMsRUFBSSswRyxFQUFlejFHLEdBRTNDLEdBQUlrMUcsR0FBVXZ1RyxTQUFTK3VHLEdBQ3JCLE9BQU9BLENBRVgsQ0FDRixDQUVBLE9BQUlSLEdBQVV2dUcsU0FBUzNHLEdBQ2RBLEVBR0YsSUFBSSxFQUdBa25HLFVBQVlBLENBQUN4b0UsRUFBUSt6QixFQUFtQixJQUFJQyxXQUN2RCxJQUFLazdDLG1CQUFtQmx2RSxHQUFTLE9BQU82MkUsR0FDeEMsR0FBSTlpRCxFQUFpQjl2QixJQUFJakUsR0FBUyxPQUFPNjJFLEdBRXpDOWlELEVBQWlCMW1ELElBQUkyeUIsR0FFckIsSUFBSSxLQUFFMStCLEVBQU1xbUcsTUFBTzFyQyxHQUFhajhCLEVBSWhDLEdBSEExK0IsRUFBTzQ5RixTQUFTNTlGLEdBR0ksaUJBQVRBLEVBQW1CLENBQzVCLE1BQU00MUcsRUFBaUJyNEcsT0FBT2dILEtBQUsrd0csSUFFbkNsckcsRUFBVyxJQUFLLElBQUlsSSxFQUFJLEVBQUdBLEVBQUkwekcsRUFBZWwxRyxPQUFRd0IsR0FBSyxFQUFHLENBQzVELE1BQU0yekcsRUFBZ0JELEVBQWUxekcsR0FDL0I0ekcsRUFBd0JSLEdBQWtCTyxHQUVoRCxJQUFLLElBQUk1c0csRUFBSSxFQUFHQSxFQUFJNnNHLEVBQXNCcDFHLE9BQVF1SSxHQUFLLEVBQUcsQ0FDeEQsTUFBTThzRyxFQUFtQkQsRUFBc0I3c0csR0FDL0MsR0FBSTFMLE9BQU9vMUQsT0FBT2owQixFQUFRcTNFLEdBQW1CLENBQzNDLzFHLEVBQU82MUcsRUFDUCxNQUFNenJHLENBQ1IsQ0FDRixDQUNGLENBQ0YsQ0FHQSxHQUFvQixpQkFBVHBLLFFBQXlDLElBQWIyNkQsRUFBMEIsQ0FDL0QsTUFBTXE3QyxFQUFZUixtQkFBbUI3NkMsR0FDckMzNkQsRUFBNEIsaUJBQWRnMkcsRUFBeUJBLEVBQVloMkcsQ0FDckQsQ0FHQSxHQUFvQixpQkFBVEEsRUFBbUIsQ0FDNUIsTUFBTWkyRyxhQUFnQjFaLElBQ3BCLEdBQUl0NkYsTUFBTTJELFFBQVE4NEIsRUFBTzY5RCxJQUFXLENBQ2xDLE1BQU0yWixFQUFnQngzRSxFQUFPNjlELEdBQVMxMkYsS0FBS21oRyxHQUN6Q0UsVUFBVUYsRUFBV3YwQyxLQUV2QixPQUFPbXJDLFNBQVNzWSxFQUNsQixDQUNBLE9BQU8sSUFBSSxFQUdQbnBELEVBQVFrcEQsYUFBYSxTQUNyQmpwRCxFQUFRaXBELGFBQWEsU0FDckJ4d0csRUFBUXd3RyxhQUFhLFNBQ3JCaHBELEVBQU12dUIsRUFBT3V1QixJQUFNaTZDLFVBQVV4b0UsRUFBT3V1QixJQUFLd0YsR0FBb0IsTUFFL0QxRixHQUFTQyxHQUFTdm5ELEdBQVN3bkQsS0FDN0JqdEQsRUFBTzQ5RixTQUFTLENBQUM3d0MsRUFBT0MsRUFBT3ZuRCxFQUFPd25ELEdBQUtsOUIsT0FBT28zRSxVQUV0RCxDQUdBLEdBQW9CLGlCQUFUbm5HLEdBQXFCbTFHLFdBQVd6MkUsR0FBUyxDQUNsRCxNQUFNMG1CLEVBQVVpd0QsZUFBZTMyRSxHQUN6QnkzRSxFQUFjWCxtQkFBbUJwd0QsR0FDdkNwbEQsRUFBOEIsaUJBQWhCbTJHLEVBQTJCQSxFQUFjbjJHLENBQ3pELENBSUEsT0FGQXl5RCxFQUFpQi9nQixPQUFPaFQsR0FFakIxK0IsR0FBUXUxRyxFQUFZLEVBR2hCN3JFLGFBQVdoTCxHQUNmd29FLFVBQVV4b0UsR0M3SU4wM0UsU0FBWTEzRSxHQUNuQmlvRSwrQkFBb0Jqb0UsR0FUVzIzRSxDQUFDMzNFLElBQ3JCLElBQVhBLEVBQ0ssQ0FBRXV1QixJQUFLLENBQUMsR0FHVixDQUFDLEVBS0NvcEQsQ0FBc0IzM0UsR0FFMUJrdkUsbUJBQW1CbHZFLEdBSWpCQSxFQUhFLENBQUMsRUNaTitNLE1BQVFBLENBQUN6dUMsRUFBUW1qQixFQUFRaUwsRUFBUyxDQUFDLEtBQ3ZDLEdBQUl1N0UsK0JBQW9CM3BHLEtBQXNCLElBQVhBLEVBQWlCLE9BQU8sRUFDM0QsR0FBSTJwRywrQkFBb0IzcEcsS0FBc0IsSUFBWEEsRUFBa0IsT0FBTyxFQUM1RCxHQUFJMnBHLCtCQUFvQnhtRixLQUFzQixJQUFYQSxFQUFpQixPQUFPLEVBQzNELEdBQUl3bUYsK0JBQW9CeG1GLEtBQXNCLElBQVhBLEVBQWtCLE9BQU8sRUFFNUQsSUFBSzB0RixhQUFhN3dHLEdBQVMsT0FBT21qQixFQUNsQyxJQUFLMHRGLGFBQWExdEYsR0FBUyxPQUFPbmpCLEVBTWxDLE1BQU1tNEQsRUFBUyxJQUFLaDFDLEtBQVduakIsR0FHL0IsR0FBSW1qQixFQUFPbmdCLE1BQVFoRCxFQUFPZ0QsTUFDcEJpQyxNQUFNMkQsUUFBUXVhLEVBQU9uZ0IsT0FBZ0MsaUJBQWhCbWdCLEVBQU9uZ0IsS0FBbUIsQ0FDakUsTUFBTXMyRyxFQUFhQyxlQUFZcDJGLEVBQU9uZ0IsTUFBTXRDLE9BQU9WLEVBQU9nRCxNQUMxRG0xRCxFQUFPbjFELEtBQU9pQyxNQUFNNlAsS0FBSyxJQUFJaXFCLElBQUl1NkUsR0FDbkMsQ0FTRixHQUxJcjBHLE1BQU0yRCxRQUFRdWEsRUFBT3VvQyxXQUFhem1ELE1BQU0yRCxRQUFRNUksRUFBTzByRCxZQUN6RHlNLEVBQU96TSxTQUFXLElBQUksSUFBSTNzQixJQUFJLElBQUkvK0IsRUFBTzByRCxZQUFhdm9DLEVBQU91b0MsYUFJM0R2b0MsRUFBT2lzQyxZQUFjcHZELEVBQU9vdkQsV0FBWSxDQUMxQyxNQUFNb3FELEVBQW1CLElBQUl6NkUsSUFBSSxJQUM1QngrQixPQUFPZ0gsS0FBSzRiLEVBQU9pc0MsZUFDbkI3dUQsT0FBT2dILEtBQUt2SCxFQUFPb3ZELGNBR3hCK0ksRUFBTy9JLFdBQWEsQ0FBQyxFQUNyQixJQUFLLE1BQU05dEQsS0FBUWs0RyxFQUFrQixDQUNuQyxNQUFNQyxFQUFpQnQyRixFQUFPaXNDLFdBQVc5dEQsSUFBUyxDQUFDLEVBQzdDbzRHLEVBQWlCMTVHLEVBQU9vdkQsV0FBVzl0RCxJQUFTLENBQUMsRUFHaERtNEcsRUFBZW5oRCxXQUFhbHFDLEVBQU82NkIsaUJBQ25Dd3dELEVBQWVsaEQsWUFBY25xQyxFQUFPNDZCLGlCQUVyQ21QLEVBQU96TSxVQUFZeU0sRUFBT3pNLFVBQVksSUFBSTM0QixRQUFRM2hCLEdBQU1BLElBQU05UCxJQUU5RDYyRCxFQUFPL0ksV0FBVzl0RCxHQUFRbXRDLE1BQU1pckUsRUFBZ0JELEVBQWdCcnJGLEVBRXBFLENBQ0YsQ0F3QkEsT0FyQkl5aUYsYUFBYTF0RixFQUFPbXRDLFFBQVV1Z0QsYUFBYTd3RyxFQUFPc3dELFNBQ3BENkgsRUFBTzdILE1BQVE3aEIsTUFBTXp1QyxFQUFPc3dELE1BQU9udEMsRUFBT210QyxNQUFPbGlDLElBSS9DeWlGLGFBQWExdEYsRUFBT215QixXQUFhdTdELGFBQWE3d0csRUFBT3MxQyxZQUN2RDZpQixFQUFPN2lCLFNBQVc3RyxNQUFNenVDLEVBQU9zMUMsU0FBVW55QixFQUFPbXlCLFNBQVVsbkIsSUFLMUR5aUYsYUFBYTF0RixFQUFPZ3BGLGdCQUNwQjBFLGFBQWE3d0csRUFBT21zRyxpQkFFcEJoMEMsRUFBT2cwQyxjQUFnQjE5RCxNQUNyQnp1QyxFQUFPbXNHLGNBQ1BocEYsRUFBT2dwRixjQUNQLzlFLElBSUcrcEMsQ0FBTSxFQUdmLGFDakVPLE1BQU1LLDZCQUEwQkEsQ0FDckM5MkIsRUFDQXRULEVBQVMsQ0FBQyxFQUNWcXFDLE9BQWtCbjJELEVBQ2xCbzJELEdBQWEsS0FHYixHQUFjLE1BQVZoM0IsUUFBc0NwL0IsSUFBcEJtMkQsRUFBK0IsT0FFekIsbUJBQWpCLzJCLEdBQVFVLE9BQXFCVixFQUFTQSxFQUFPVSxRQUN4RFYsRUFBUzAzRSxTQUFTMTNFLEdBRWxCLElBQUlpM0IsT0FBb0NyMkQsSUFBcEJtMkQsR0FBaUMwL0MsV0FBV3oyRSxHQUVoRSxNQUFNazNCLEdBQ0hELEdBQWlCMXpELE1BQU0yRCxRQUFRODRCLEVBQU9qNUIsUUFBVWk1QixFQUFPajVCLE1BQU0vRSxPQUFTLEVBQ25FbTFELEdBQ0hGLEdBQWlCMXpELE1BQU0yRCxRQUFRODRCLEVBQU9zdUIsUUFBVXR1QixFQUFPc3VCLE1BQU10c0QsT0FBUyxFQUN6RSxJQUFLaTFELElBQWtCQyxHQUFZQyxHQUFXLENBQzVDLE1BQU1DLEVBQWNzZ0QsU0FDUFQsS0FBWC8vQyxFQUFzQmwzQixFQUFPajVCLE1BQW9CaTVCLEVBQU9zdUIsVUFFMUR0dUIsRUFBUytNLEdBQU0vTSxFQUFRbzNCLEVBQWExcUMsSUFDeEJqZ0IsS0FBTzJxRCxFQUFZM3FELE1BQzdCdXpCLEVBQU92ekIsSUFBTTJxRCxFQUFZM3FELEtBRXZCZ3FHLFdBQVd6MkUsSUFBV3kyRSxXQUFXci9DLEtBQ25DSCxHQUFnQixFQUVwQixDQUNBLE1BQU0vcUQsRUFBUSxDQUFDLEVBQ2YsSUFBSSxJQUFFTyxFQUFHLFdBQUVpaEQsRUFBVSxxQkFBRUMsRUFBb0IsTUFBRWlCLEVBQUssU0FBRWhiLEdBQWE1VCxHQUFVLENBQUMsRUFDeEUxK0IsRUFBTzBwQyxhQUFRaEwsSUFDZixnQkFBRXVuQixFQUFlLGlCQUFFRCxHQUFxQjU2QixFQUM1Q2pnQixFQUFNQSxHQUFPLENBQUMsRUFDZCxJQUNJcTlDLEdBREEsS0FBRWxxRCxFQUFJLE9BQUV5M0QsRUFBTSxVQUFFbHNCLEdBQWMxK0IsRUFFOUI2SyxFQUFNLENBQUMsRUFPWCxHQUxLelksT0FBT28xRCxPQUFPajBCLEVBQVEsVUFDekJBLEVBQU8xK0IsS0FBT0EsR0FJWjAxRCxJQUNGcDNELEVBQU9BLEdBQVEsWUFFZmtxRCxHQUFldU4sRUFBUyxHQUFHQSxLQUFZLElBQU16M0QsRUFDekN1ckMsR0FBVyxDQUdiai9CLEVBRHNCbXJELEVBQVMsU0FBU0EsSUFBVyxTQUMxQmxzQixDQUMzQixDQUlFNnJCLElBQ0YxL0MsRUFBSXd5QyxHQUFlLElBSXJCLE1BQU1qNEIsRUFBUThPLFVBQVUrc0IsR0FDeEIsSUFBSWdLLEVBQ0FDLEVBQXVCLEVBRTNCLE1BQU1DLHlCQUEyQkEsSUFDL0IxNEQsT0FBT3VnQixVQUFVdWdCLEVBQU82M0IsZ0JBQ3hCNzNCLEVBQU82M0IsY0FBZ0IsR0FDdkJGLEdBQXdCMzNCLEVBQU82M0IsY0E2QjNCQyxlQUFrQm5CLEtBQ2hCejNELE9BQU91Z0IsVUFBVXVnQixFQUFPNjNCLGdCQUFrQjczQixFQUFPNjNCLGNBQWdCLEtBR25FRCw4QkFYcUJHLENBQUNwQixJQUNyQnB6RCxNQUFNMkQsUUFBUTg0QixFQUFPZ3FCLFdBQ0ssSUFBM0JocUIsRUFBT2dxQixTQUFTaG9ELFNBRVpnK0IsRUFBT2dxQixTQUFTL2hELFNBQVMwdUQsR0FVNUJvQixDQUFtQnBCLElBSXRCMzJCLEVBQU82M0IsY0FBZ0JGLEVBdENLSyxNQUM5QixJQUFLejBELE1BQU0yRCxRQUFRODRCLEVBQU9ncUIsV0FBd0MsSUFBM0JocUIsRUFBT2dxQixTQUFTaG9ELE9BQ3JELE9BQU8sRUFFVCxJQUFJaTJELEVBQWEsRUFhakIsT0FaSWpCLEVBQ0ZoM0IsRUFBT2dxQixTQUFTaCtDLFNBQ2JwRyxHQUFTcXlELFFBQTJCcjNELElBQWIwVyxFQUFJMVIsR0FBcUIsRUFBSSxJQUd2RG82QixFQUFPZ3FCLFNBQVNoK0MsU0FBU3BHLElBQ3ZCcXlELFFBQzBEcjNELElBQXhEMFcsRUFBSXd5QyxJQUFjM2pCLE1BQU12OUIsUUFBaUJoSSxJQUFYZ0ksRUFBRWhELEtBQzVCLEVBQ0EsQ0FBQyxJQUdKbzZCLEVBQU9ncUIsU0FBU2hvRCxPQUFTaTJELENBQVUsRUFxQk1ELEdBQzlDLEdBNkdKLEdBeEdFTixFQURFVixFQUNvQlUsQ0FBQ2YsRUFBVXVCLE9BQVl0M0QsS0FDM0MsR0FBSW8vQixHQUFVbk8sRUFBTThrQyxHQUFXLENBSTdCLEdBRkE5a0MsRUFBTThrQyxHQUFVbHFELElBQU1vbEIsRUFBTThrQyxHQUFVbHFELEtBQU8sQ0FBQyxFQUUxQ29sQixFQUFNOGtDLEdBQVVscUQsSUFBSVIsVUFBVyxDQUNqQyxNQUFNa3NELEVBQWM1MEQsTUFBTTJELFFBQVEycUIsRUFBTThrQyxHQUFVWSxNQUM5QzAvQyxLQUFXcGxGLEVBQU04a0MsR0FBVVksV0FDM0IzMkQsRUFDSixHQUFJNjFHLFdBQVc1a0YsRUFBTThrQyxJQUNuQnpxRCxFQUFNMmxCLEVBQU04a0MsR0FBVWxxRCxJQUFJN00sTUFBUSsyRCxHQUFZZ2dELGVBQzVDOWtGLEVBQU04a0MsU0FFSCxRQUFvQi8xRCxJQUFoQnUzRCxFQUNUanNELEVBQU0ybEIsRUFBTThrQyxHQUFVbHFELElBQUk3TSxNQUFRKzJELEdBQVl3QixNQUN6QyxDQUNMLE1BQU04L0MsRUFBYVAsU0FBUzdsRixFQUFNOGtDLElBQzVCdWhELEVBQWlCbHRFLGFBQVFpdEUsR0FDekJFLEVBQVd0bUYsRUFBTThrQyxHQUFVbHFELElBQUk3TSxNQUFRKzJELEVBRTdDLEdBQXVCLFVBQW5CdWhELEVBQTRCLENBQzlCLE1BQU1FLEVBQWN0aEQsNkJBQ2xCamxDLEVBQU04a0MsR0FDTmpxQyxFQUNBd3JDLEdBQ0EsR0FFRmhzRCxFQUFNaXNHLEdBQVlDLEVBQ2ZqeEcsS0FBS3NpQixJQUNBb3FDLEVBQUFBLEdBQUFBLFNBQWNwcUMsR0FDVCxvQkFFTGxtQixNQUFNMkQsUUFBUXVpQixHQUNULG1CQUVGQSxJQUVScmlCLEtBQUssSUFDVixNQUNFOEUsRUFBTWlzRyxHQUNlLFdBQW5CRCxFQUNJLG9CQUNBRyxHQUFRSCxHQUFnQkQsRUFFbEMsQ0FFQSxNQUNGLENBQ0FwbUYsRUFBTThrQyxHQUFVbHFELElBQUk3TSxLQUFPaXlCLEVBQU04a0MsR0FBVWxxRCxJQUFJN00sTUFBUSsyRCxDQUN6RCxNQUFZOWtDLEVBQU04a0MsS0FBc0MsSUFBekJoSixJQUU3Qjk3QixFQUFNOGtDLEdBQVksQ0FDaEJscUQsSUFBSyxDQUNIN00sS0FBTSsyRCxLQUtaLElBQUlyakMsRUFBSXdqQyw2QkFDTmpsQyxFQUFNOGtDLEdBQ05qcUMsRUFDQXdyQyxFQUNBbEIsR0FFR2MsZUFBZW5CLEtBSXBCZ0IsSUFDSXAwRCxNQUFNMkQsUUFBUW9zQixHQUNoQmhjLEVBQUl3eUMsR0FBZXh5QyxFQUFJd3lDLEdBQWE5cUQsT0FBT3MwQixHQUUzQ2hjLEVBQUl3eUMsR0FBYS9uRCxLQUFLdXhCLEdBQ3hCLEVBR29Cb2tDLENBQUNmLEVBQVV1QixLQUMvQixHQUFLSixlQUFlbkIsR0FBcEIsQ0FHQSxJQUNFOUMsRUFBQUEsR0FBQUEsU0FBYzd6QixFQUFPczRCLGVBQWVDLFVBQ3BDdjRCLEVBQU9zNEIsY0FBY0UsZUFBaUI3QixHQUNkLGlCQUFqQjMyQixFQUFPdXFCLE9BRWQsSUFBSyxNQUFNL29CLEtBQVF4QixFQUFPczRCLGNBQWNDLFFBQ3RDLElBQWlFLElBQTdEdjRCLEVBQU91cUIsTUFBTTdpRCxPQUFPczRCLEVBQU9zNEIsY0FBY0MsUUFBUS8yQixJQUFlLENBQ2xFbHFCLEVBQUlxL0MsR0FBWW4xQixFQUNoQixLQUNGLE9BR0ZscUIsRUFBSXEvQyxHQUFZRyw2QkFDZGpsQyxFQUFNOGtDLEdBQ05qcUMsRUFDQXdyQyxFQUNBbEIsR0FHSlcsR0FwQkEsQ0FvQnNCLEVBS3RCVixFQUFlLENBQ2pCLElBQUl3QixFQVFKLEdBTkVBLE9BRHNCNzNELElBQXBCbTJELEVBQ09BLEVBRUE0L0MsZUFBZTMyRSxJQUlyQmczQixFQUFZLENBRWYsR0FBc0IsaUJBQVh5QixHQUFnQyxXQUFUbjNELEVBQ2hDLE1BQU8sR0FBR20zRCxJQUdaLEdBQXNCLGlCQUFYQSxHQUFnQyxXQUFUbjNELEVBQ2hDLE9BQU9tM0QsRUFHVCxJQUNFLE9BQU8xMEIsS0FBS0MsTUFBTXkwQixFQUNwQixDQUFFLE1BRUEsT0FBT0EsQ0FDVCxDQUNGLENBR0EsR0FBYSxVQUFUbjNELEVBQWtCLENBQ3BCLElBQUtpQyxNQUFNMkQsUUFBUXV4RCxHQUFTLENBQzFCLEdBQXNCLGlCQUFYQSxFQUNULE9BQU9BLEVBRVRBLEVBQVMsQ0FBQ0EsRUFDWixDQUVBLElBQUlFLEVBQWMsR0E0QmxCLE9BMUJJdTJDLG1CQUFtQnRnRCxLQUNyQkEsRUFBTW5pRCxJQUFNbWlELEVBQU1uaUQsS0FBT0EsR0FBTyxDQUFDLEVBQ2pDbWlELEVBQU1uaUQsSUFBSTdNLEtBQU9ndkQsRUFBTW5pRCxJQUFJN00sTUFBUTZNLEVBQUk3TSxLQUN2Qys0RCxFQUFjRixFQUFPdHhELEtBQUt3ckIsR0FDeEJta0MsNkJBQXdCbEksRUFBT2xpQyxFQUFRaUcsRUFBR3FrQyxNQUkxQ2s0QyxtQkFBbUJ0N0QsS0FDckJBLEVBQVNubkMsSUFBTW1uQyxFQUFTbm5DLEtBQU9BLEdBQU8sQ0FBQyxFQUN2Q21uQyxFQUFTbm5DLElBQUk3TSxLQUFPZzBDLEVBQVNubkMsSUFBSTdNLE1BQVE2TSxFQUFJN00sS0FDN0MrNEQsRUFBYyxDQUNaN0IsNkJBQXdCbGpCLEVBQVVsbkIsT0FBUTlyQixFQUFXbzJELE1BQ2xEMkIsSUFJUEEsRUFBYzAvQyxHQUFRNWpHLE1BQU11ckIsRUFBUSxDQUFFeTRCLE9BQVFFLElBQzFDbHNELEVBQUkxSixTQUNOdVUsRUFBSXd5QyxHQUFlNk8sR0FDZDV3QixFQUFBQSxHQUFBQSxTQUFRNzdCLElBQ1hvTCxFQUFJd3lDLEdBQWEvbkQsS0FBSyxDQUFFbUssTUFBT0EsS0FHakNvTCxFQUFNcWhELEVBRURyaEQsQ0FDVCxDQUdBLEdBQWEsV0FBVGhXLEVBQW1CLENBRXJCLEdBQXNCLGlCQUFYbTNELEVBQ1QsT0FBT0EsRUFFVCxJQUFLLE1BQU05QixLQUFZOEIsRUFDaEI1NUQsT0FBT28xRCxPQUFPd0UsRUFBUTlCLEtBR3ZCOWtDLEVBQU04a0MsSUFBV0MsV0FBYXJQLEdBRzlCMTFCLEVBQU04a0MsSUFBV0UsWUFBY3ZQLElBRy9CejFCLEVBQU04a0MsSUFBV2xxRCxLQUFLUixVQUN4QkMsRUFBTTJsQixFQUFNOGtDLEdBQVVscUQsSUFBSTdNLE1BQVErMkQsR0FBWThCLEVBQU85QixHQUd2RGUsRUFBb0JmLEVBQVU4QixFQUFPOUIsTUFNdkMsT0FKSzV1QixFQUFBQSxHQUFBQSxTQUFRNzdCLElBQ1hvTCxFQUFJd3lDLEdBQWEvbkQsS0FBSyxDQUFFbUssTUFBT0EsSUFHMUJvTCxDQUNULENBR0EsT0FEQUEsRUFBSXd5QyxJQUFnQi9oQixFQUFBQSxHQUFBQSxTQUFRNzdCLEdBQXNDdXNELEVBQTdCLENBQUMsQ0FBRXZzRCxNQUFPQSxHQUFTdXNELEdBQ2pEbmhELENBQ1QsQ0FHQSxHQUFhLFVBQVRoVyxFQUFrQixDQUNwQixJQUFJbTJELEVBQWMsR0FFbEIsR0FBSXkzQyxtQkFBbUJ0N0QsR0FNckIsR0FMSW9qQixJQUNGcGpCLEVBQVNubkMsSUFBTW1uQyxFQUFTbm5DLEtBQU91ekIsRUFBT3Z6QixLQUFPLENBQUMsRUFDOUNtbkMsRUFBU25uQyxJQUFJN00sS0FBT2cwQyxFQUFTbm5DLElBQUk3TSxNQUFRNk0sRUFBSTdNLE1BRzNDMkQsTUFBTTJELFFBQVEwc0MsRUFBUzBhLE9BQVEsQ0FFakMsTUFBTSxNQUFFQSxLQUFVZ3FELEdBQXlCMXBELEVBRTNDNkksRUFBWTExRCxRQUNQNnhDLEVBQVMwYSxNQUFNbm5ELEtBQUtveEcsR0FDckJ6aEQsNkJBQ0UvcEIsR0FBTXdyRSxFQUFhRCxFQUFzQjVyRixHQUN6Q0EsT0FDQTlyQixFQUNBbzJELEtBSVIsTUFBTyxHQUFJenpELE1BQU0yRCxRQUFRMHNDLEVBQVM3c0MsT0FBUSxDQUV4QyxNQUFNLE1BQUVBLEtBQVV5eEcsR0FBeUI1cEQsRUFFM0M2SSxFQUFZMTFELFFBQ1A2eEMsRUFBUzdzQyxNQUFNSSxLQUFLc3hHLEdBQ3JCM2hELDZCQUNFL3BCLEdBQU0wckUsRUFBYUQsRUFBc0I5ckYsR0FDekNBLE9BQ0E5ckIsRUFDQW8yRCxLQUlSLEtBQU8sT0FBS0EsR0FBZUEsR0FBY3ZxRCxFQUFJMUosU0FLM0MsT0FBTyt6RCw2QkFBd0JsakIsRUFBVWxuQixPQUFROXJCLEVBQVdvMkQsR0FKNURTLEVBQVkxMUQsS0FDViswRCw2QkFBd0JsakIsRUFBVWxuQixPQUFROXJCLEVBQVdvMkQsR0FJekQsQ0FHRixHQUFJazRDLG1CQUFtQnRnRCxHQU1yQixHQUxJb0ksSUFDRnBJLEVBQU1uaUQsSUFBTW1pRCxFQUFNbmlELEtBQU91ekIsRUFBT3Z6QixLQUFPLENBQUMsRUFDeENtaUQsRUFBTW5pRCxJQUFJN00sS0FBT2d2RCxFQUFNbmlELElBQUk3TSxNQUFRNk0sRUFBSTdNLE1BR3JDMkQsTUFBTTJELFFBQVEwbkQsRUFBTU4sT0FBUSxDQUU5QixNQUFNLE1BQUVBLEtBQVVvcUQsR0FBc0I5cEQsRUFFeEM2SSxFQUFZMTFELFFBQ1A2c0QsRUFBTU4sTUFBTW5uRCxLQUFLM0QsR0FDbEJzekQsNkJBQ0UvcEIsR0FBTXZwQyxFQUFHazFHLEVBQW1CaHNGLEdBQzVCQSxPQUNBOXJCLEVBQ0FvMkQsS0FJUixNQUFPLEdBQUl6ekQsTUFBTTJELFFBQVEwbkQsRUFBTTduRCxPQUFRLENBRXJDLE1BQU0sTUFBRUEsS0FBVTR4RyxHQUFzQi9wRCxFQUV4QzZJLEVBQVkxMUQsUUFDUDZzRCxFQUFNN25ELE1BQU1JLEtBQUszRCxHQUNsQnN6RCw2QkFDRS9wQixHQUFNdnBDLEVBQUdtMUcsRUFBbUJqc0YsR0FDNUJBLE9BQ0E5ckIsRUFDQW8yRCxLQUlSLEtBQU8sT0FBS0EsR0FBZUEsR0FBY3ZxRCxFQUFJMUosU0FLM0MsT0FBTyt6RCw2QkFBd0JsSSxFQUFPbGlDLE9BQVE5ckIsRUFBV28yRCxHQUp6RFMsRUFBWTExRCxLQUNWKzBELDZCQUF3QmxJLEVBQU9saUMsT0FBUTlyQixFQUFXbzJELEdBSXRELENBSUYsT0FEQVMsRUFBYzRnRCxHQUFRNWpHLE1BQU11ckIsRUFBUSxDQUFFeTRCLE9BQVFoQixJQUMxQ1QsR0FBY3ZxRCxFQUFJMUosU0FDcEJ1VSxFQUFJd3lDLEdBQWUyTixHQUNkMXZCLEVBQUFBLEdBQUFBLFNBQVE3N0IsSUFDWG9MLEVBQUl3eUMsR0FBYS9uRCxLQUFLLENBQUVtSyxNQUFPQSxJQUUxQm9MLEdBR0ZtZ0QsQ0FDVCxDQUVBLEdBQWEsV0FBVG4yRCxFQUFtQixDQUNyQixJQUFLLElBQUlxMUQsS0FBWTlrQyxFQUNkaHpCLE9BQU9vMUQsT0FBT3BpQyxFQUFPOGtDLEtBR3RCOWtDLEVBQU04a0MsSUFBVzdwQyxZQUdqQitFLEVBQU04a0MsSUFBV0MsV0FBYXJQLEdBRzlCMTFCLEVBQU04a0MsSUFBV0UsWUFBY3ZQLEdBR25Db1EsRUFBb0JmLElBTXRCLEdBSklLLEdBQWM5cUQsR0FDaEJvTCxFQUFJd3lDLEdBQWEvbkQsS0FBSyxDQUFFbUssTUFBT0EsSUFHN0IwckQsMkJBQ0YsT0FBT3RnRCxFQUdULEdBQUkyd0YsK0JBQW9CdDZDLElBQXlCQSxFQUMzQ3FKLEVBQ0YxL0MsRUFBSXd5QyxHQUFhL25ELEtBQUssQ0FBRTYyRCxlQUFnQix5QkFFeEN0aEQsRUFBSXVoRCxnQkFBa0IsQ0FBQyxFQUV6QmxCLFNBQ0ssR0FBSXUzQyxtQkFBbUJ2aEQsR0FBdUIsQ0FDbkQsTUFBTW1MLEVBQWtCbkwsRUFDbEJvTCxFQUF1QmpDLDZCQUMzQmdDLEVBQ0Fwc0MsT0FDQTlyQixFQUNBbzJELEdBR0YsR0FDRUEsR0FDc0MsaUJBQS9COEIsR0FBaUJyc0QsS0FBSzdNLE1BQ0UsY0FBL0JrNUQsR0FBaUJyc0QsS0FBSzdNLEtBRXRCMFgsRUFBSXd5QyxHQUFhL25ELEtBQUtnM0QsT0FDakIsQ0FDTCxNQUFNQyxFQUNKOTVELE9BQU91Z0IsVUFBVXVnQixFQUFPaTVCLGdCQUN4Qmo1QixFQUFPaTVCLGNBQWdCLEdBQ3ZCdEIsRUFBdUIzM0IsRUFBT2k1QixjQUMxQmo1QixFQUFPaTVCLGNBQWdCdEIsRUFDdkIsRUFDTixJQUFLLElBQUluMEQsRUFBSSxFQUFHQSxHQUFLdzFELEVBQWlCeDFELElBQUssQ0FDekMsR0FBSW8wRCwyQkFDRixPQUFPdGdELEVBRVQsR0FBSTAvQyxFQUFZLENBQ2QsTUFBTWtDLEVBQU8sQ0FBQyxFQUNkQSxFQUFLLGlCQUFtQjExRCxHQUFLdTFELEVBQWdDLFVBQzdEemhELEVBQUl3eUMsR0FBYS9uRCxLQUFLbTNELEVBQ3hCLE1BQ0U1aEQsRUFBSSxpQkFBbUI5VCxHQUFLdTFELEVBRTlCcEIsR0FDRixDQUNGLENBQ0YsQ0FDQSxPQUFPcmdELENBQ1QsQ0FFQSxJQUFJbFksRUFDSixRQUE0QixJQUFqQjRnQyxFQUFPMm5FLE1BRWhCdm9HLEVBQVE0Z0MsRUFBTzJuRSxXQUNWLEdBQUkzbkUsR0FBVXo4QixNQUFNMkQsUUFBUTg0QixFQUFPdTNCLE1BRXhDbjRELEVBQVE2M0csS0FBV3YxRSxlQUFlMUIsRUFBT3UzQixXQUNwQyxDQUVMLE1BQU1xaEQsRUFBZ0IxSixtQkFBbUJsdkUsRUFBT3lxRSxlQUM1QzN6Qyw2QkFDRTkyQixFQUFPeXFFLGNBQ1AvOUUsT0FDQTlyQixFQUNBbzJELFFBRUZwMkQsRUFDSnhCLEVBQVFpNUcsR0FBUS8yRyxHQUFNMCtCLEVBQVEsQ0FBRXk0QixPQUFRbWdELEdBQzFDLENBRUEsT0FBSTVoRCxHQUNGMS9DLEVBQUl3eUMsSUFBZ0IvaEIsRUFBQUEsR0FBQUEsU0FBUTc3QixHQUFxQzlNLEVBQTVCLENBQUMsQ0FBRThNLE1BQU9BLEdBQVM5TSxHQUNqRGtZLEdBR0ZsWSxDQUFLLEVBR0RrNkQsc0JBQW1CQSxDQUFDdDVCLEVBQVF0VCxFQUFRZ1AsS0FDL0MsTUFBTTY5QixFQUFPekMsNkJBQXdCOTJCLEVBQVF0VCxFQUFRZ1AsR0FBRyxHQUN4RCxHQUFLNjlCLEVBR0wsTUFBb0IsaUJBQVRBLEVBQ0ZBLEVBRUZDLEtBQUlELEVBQU0sQ0FBRS9yRCxhQUFhLEVBQU12QyxPQUFRLE1BQU8sRUFHMUN3dUQsc0JBQW1CQSxDQUFDejVCLEVBQVF0VCxFQUFRZ1AsSUFDeENvN0IsNkJBQXdCOTJCLEVBQVF0VCxFQUFRZ1AsR0FBRyxHQUc5Q3Y3QixjQUFXQSxDQUFDbUcsRUFBTUMsRUFBTUMsSUFBUyxDQUNyQ0YsRUFDQXk5QixLQUFLa0QsVUFBVTFnQyxHQUNmdzlCLEtBQUtrRCxVQUFVemdDLElBR0prekQsR0FBMkI5RSxlQUFTMEUsc0JBQWtCbjVELGVBRXREdzVELEdBQTJCL0UsZUFBUzZFLHNCQUFrQnQ1RCxlQ3ppQm5FLE1BQU0yd0csR0FBVyxJQ0RqQixNQUFNK0gsdUJBQXVCekosR0FDM0IsR0FBWSxDQUFDLEVBRWJwa0csS0FBTyxJQUFLekwsTUFBSyxHQUVqQixZQUFJb3lHLEdBQ0YsTUFBTyxJQUFLcHlHLE1BQUssRUFDbkIsR0RJRixrQkFSa0J1NUcsQ0FBQ0MsRUFBWUMsVUFDRixJQUFoQkEsR0FDVGxJLEdBQVMxbkUsU0FBUzJ2RSxFQUFZQyxHQUd6QmxJLEdBQVMzc0csSUFBSTQwRyxJRVJ0QixNQUFNbi9DLEdBQTZCLENBQ2pDLENBQ0VDLEtBQU0sT0FDTkMscUJBQXNCLENBQUMsWUFHckJDLEdBQXdCLENBQUMsVUF3Qi9CLDhCQXRCRzUzQixHQUFjLENBQUNuQyxFQUFRdFQsRUFBUXN0QyxFQUFhakQsS0FDM0MsTUFBTSxHQUFFejJDLEdBQU82aEIsSUFDVDdxQixFQUFNZ0osRUFBR3k0RSxpQkFBaUJwL0IseUJBQzlCMzVCLEVBQ0F0VCxFQUNBcXFDLEdBRUlrRCxTQUFpQjNpRCxFQUVqQjRpRCxFQUFtQk4sR0FBMkI5bEMsUUFDbEQsQ0FBQ29uQixFQUFPaWYsSUFDTkEsRUFBV04sS0FBS3YxQixLQUFLMDFCLEdBQ2pCLElBQUk5ZSxLQUFVaWYsRUFBV0wsc0JBQ3pCNWUsR0FDTjZlLElBR0YsT0FBT2wyQixFQUFBQSxHQUFBQSxTQUFLcTJCLEdBQW1CdHhELEdBQU1BLElBQU1xeEQsSUFDdkNsMkIsS0FBS2tELFVBQVUzdkIsRUFBSyxLQUFNLEdBQzFCQSxDQUFHLEVDQ1gsOEJBM0JHNnFCLEdBQWMsQ0FBQ25DLEVBQVF0VCxFQUFRc3RDLEVBQWFqRCxLQUMzQyxNQUFNLEdBQUV6MkMsR0FBTzZoQixJQUNUaTRCLEVBQWM5NUMsRUFBR3k0RSxpQkFBaUIxK0Isb0JBQ3RDcjZCLEVBQ0F0VCxFQUNBc3RDLEVBQ0FqRCxHQUVGLElBQUl1RCxFQUNKLElBQ0VBLEVBQWFqakIsR0FBQUEsUUFBQUEsS0FDWEEsR0FBQUEsUUFBQUEsS0FBVStpQixHQUNWLENBQ0VHLFdBQVksR0FFZCxDQUFFdjZCLE9BQVFzVyxHQUFBQSxjQUU4QixPQUF0Q2drQixFQUFXQSxFQUFXdDRELE9BQVMsS0FDakNzNEQsRUFBYUEsRUFBV2w2RCxNQUFNLEVBQUdrNkQsRUFBV3Q0RCxPQUFTLEdBRXpELENBQUUsTUFBT2tJLEdBRVAsT0FEQTFILFFBQVFrQyxNQUFNd0YsR0FDUCx3Q0FDVCxDQUNBLE9BQU9vd0QsRUFBV3p5RCxRQUFRLE1BQU8sS0FBSyxFQ0kxQyw2QkE5QkdzNkIsR0FBYyxDQUFDbkMsRUFBUXRULEVBQVFxcUMsS0FDOUIsTUFBTSxHQUFFejJDLEdBQU82aEIsSUFLZixHQUhJbkMsSUFBV0EsRUFBT3Z6QixNQUNwQnV6QixFQUFPdnpCLElBQU0sQ0FBQyxHQUVadXpCLElBQVdBLEVBQU92ekIsSUFBSTdNLEtBQU0sQ0FDOUIsSUFDR29nQyxFQUFPdXFCLFFBQ1B2cUIsRUFBTzErQixNQUNOMCtCLEVBQU80dUIsT0FDUDV1QixFQUFPMHRCLFlBQ1AxdEIsRUFBTzJ0QixzQkFHVCxNQUFPLHlIQUVULEdBQUkzdEIsRUFBT3VxQixNQUFPLENBQ2hCLElBQUkyQixFQUFRbHNCLEVBQU91cUIsTUFBTTJCLE1BQU0sZUFDL0Jsc0IsRUFBT3Z6QixJQUFJN00sS0FBT3NzRCxFQUFNLEVBQzFCLENBQ0YsQ0FFQSxPQUFPNXJDLEVBQUd5NEUsaUJBQWlCci9CLHlCQUN6QjE1QixFQUNBdFQsRUFDQXFxQyxFQUNELEVDT0wseUJBbENHNTBCLEdBQ0QsQ0FBQ25DLEVBQVFnNkIsRUFBYyxHQUFJdHRDLEVBQVMsQ0FBQyxFQUFHcXFDLE9BQWtCbjJELEtBQ3hELE1BQU0sR0FBRTBmLEdBQU82aEIsSUFTZixNQVA0QixtQkFBakJuQyxHQUFRVSxPQUNqQlYsRUFBU0EsRUFBT1UsUUFFbUIsbUJBQTFCcTJCLEdBQWlCcjJCLE9BQzFCcTJCLEVBQWtCQSxFQUFnQnIyQixRQUdoQyxNQUFNNEQsS0FBSzAxQixHQUNOMTVDLEVBQUd5NEUsaUJBQWlCditCLG1CQUN6Qng2QixFQUNBdFQsRUFDQXFxQyxHQUdBLGFBQWF6eUIsS0FBSzAxQixHQUNiMTVDLEVBQUd5NEUsaUJBQWlCdCtCLG9CQUN6Qno2QixFQUNBdFQsRUFDQXN0QyxFQUNBakQsR0FHR3oyQyxFQUFHeTRFLGlCQUFpQjErQixvQkFDekJyNkIsRUFDQXRULEVBQ0FzdEMsRUFDQWpELEVBQ0QsRUNlTCxnQ0E3QnNDa2lELEVBQUc5MkUsZ0JBQ3ZDLE1BQU1rNEIsRUFBc0JNLDBCQUF3Qng0QixHQUM5Q3M0QixFQUFzQkcsMEJBQXdCejRCLEdBQzlDcTRCLEVBQXFCSyx5QkFBdUIxNEIsR0FDNUNzdkIsRUFBa0JxSixxQkFBb0IzNEIsR0FFNUMsTUFBTyxDQUNMN2hCLEdBQUksQ0FDRnk0RSxpQkFBa0IsQ0FDaEJ0L0IsaUJBQWdCLHNCQUNoQjNDLHdCQUF1Qiw2QkFDdkJvaUQsZ0JBQWlCSixjQUNqQkssaUJBQWtCbkcsR0FDbEJvRyxnQkFBaUJ4SCxHQUNqQnlILG1CQUFvQnpFLEdBQ3BCdDdDLGlCQUFnQixzQkFDaEJLLHlCQUF3QixHQUN4QkQseUJBQXdCLEdBQ3hCVyxzQkFDQUksc0JBQ0FELHFCQUNBL0ksa0JBQ0ErRSxnQkFBZSxHQUNmMG9DLFdBR0wsRUN0Q1ksU0FBU29hLGFBQ3RCLE1BQU8sQ0FDTDFxQixLQUNBMnFCLEtBQ0F6TixvQkFDQW1OLDRCQUNBTyxNQUVKLENDUkEsa0JBTG1DN3NHLEdBQVksS0FBTSxDQUNuRDJULEdBQUkzVCxFQUFRMlQsR0FDWituQixXQUFZMTdCLEVBQVEwN0IsYUNxQ3RCLHlCQXRDNkIxN0IsSUFDM0IsTUFBTTdKLEVBQVEwMkIsS0FDWixDQUNFa2YsT0FBUSxDQUNOQSxPQUFRL3JDLEVBQVErckMsT0FDaEJybkIsT0FBUTFrQixFQUFRMGtCLFFBRWxCNmtCLEtBQU0sQ0FDSkEsS0FBTSxHQUNOaEcsSUFBS3ZqQyxFQUFRdWpDLEtBRWZxVixnQkFBaUI1NEMsRUFBUTQ0QyxpQkFFM0I1NEMsRUFBUW04QixjQUdWLEdBQUluOEIsRUFBUW04QixhQU1WLElBQUssTUFBT2xqQyxFQUFLeEcsS0FBVVAsT0FBT29pQyxRQUFRdDBCLEVBQVFtOEIsbUJBQ2xDbG9DLElBQVZ4QixVQUNLMEQsRUFBTThDLEdBS25CLE1BQU8sQ0FDTHVpQyxPQUFRLENBQ05DLFFBQVN6N0IsRUFBUXk3QixTQUVuQkYsUUFBU3Y3QixFQUFROHNHLFFBQ2pCMzJHLFFBQ0QsRUNiSCxVQWhCeUI0MkcsSUFBTy9zRyxJQUM5QixNQUFNZ3RHLEVBQWtCaHRHLEVBQVFpdEcsbUJ4WitsQlBDLE1BQ3pCLE1BQU1DLEVBQWUsSUFBSUMsZ0JBQWdCbjdFLEdBQUlDLFNBQVNuM0IsUUFDdEQsT0FBTzdJLE9BQU9xN0YsWUFBWTRmLEVBQWEsRXdaam1CY0QsR0FBZ0IsQ0FBQyxFQUV0RSxPQUFPaDdHLE9BQU9vaUMsUUFBUTA0RSxHQUFpQjdsRixRQUFPLENBQUM4WCxHQUFNaG1DLEVBQUt4RyxNQUU1QyxXQUFSd0csRUFDRmdtQyxFQUFlLFVBQUl4c0MsRUFDRixxQkFBUndHLEVBQ1RnbUMsRUFBSWhtQyxHQUFPeEcsRUFFWHdzQyxHQUFNeG5DLEVBQUFBLEdBQUFBLFNBQUl3bkMsRUFBS2htQyxFQUFLeEcsR0FFZndzQyxJQUNOLENBQUMsRUFBRSxFQ2FSLGdCQXZCRW91RSxFQUFHOXBFLE1BQUsvSCxZQUNSMjdCLE1BQU9uM0QsSUFDTCxJQUFLdWpDLEVBQUssTUFBTyxDQUFDLEVBQ2xCLEdBQXFELG1CQUExQy9ILEVBQU80TyxnQkFBZ0JGLGVBQStCLE1BQU8sQ0FBQyxFQUN6RSxNQUFNb2pFLEVBZFdDLE1BQ25CLE1BQU1ELEVBQVcsQ0FBQyxFQUtsQixPQUpBQSxFQUFTeC9FLFFBQVUsSUFBSTU2QixTQUFRLENBQUNDLEVBQVNDLEtBQ3ZDazZHLEVBQVNuNkcsUUFBVUEsRUFDbkJtNkcsRUFBU2w2RyxPQUFTQSxDQUFNLElBRW5CazZHLENBQVEsRUFRSUMsR0FnQmpCLE9BVkEveEUsRUFBTzRPLGVBQWVGLGVBQ3BCLENBQ0UzRyxNQUNBaXFFLGtCQUFrQixFQUNsQjVvRSxtQkFBb0I1a0MsRUFBUTRrQyxtQkFDNUJDLG9CQUFxQjdrQyxFQUFRNmtDLHNCQVZmNG9FLElBRWhCSCxFQUFTbjZHLFFBQVFzNkcsRUFBZSxJQWEzQkgsRUFBU3gvRSxPQUFPLEVDakIzQixZQVYyQjQvRSxJQUFNLEtBQy9CLE1BQU0xdEcsRUFBVSxDQUFDLEVBTWpCLE9BSklndkIsV0FBV2tELFdBQ2JseUIsRUFBUTJvRSxrQkFBb0IsR0FBRzM1QyxXQUFXa0QsU0FBU3l0QixhQUFhM3dCLFdBQVdrRCxTQUFTNDlCLE9BQU85Z0MsV0FBV2tELFNBQVN1dUIsU0FBU3BsRCxVQUFVLEVBQUcyekIsV0FBV2tELFNBQVN1dUIsU0FBUzEzQyxZQUFZLDhCQUd6Sy9JLENBQU8sRUNzRmhCLE9BL0Z1QjlOLE9BQU95N0csT0FBTyxDQUNuQ0MsT0FBUSxLQUNSNXZDLFFBQVMsS0FDVHowQixLQUFNLENBQUMsRUFDUGhHLElBQUssR0FDTHNxRSxLQUFNLEtBQ05DLFVBQVcsS0FDWC9oRSxPQUFRLGFBQ1IyUyxhQUFjLE9BQ2RuTSxrQkFBbUIsRUFDbkI3dEIsUUFBUSxFQUNSaW5ELGFBQWMseUNBQ2RoRCx1QkFBbUIxMEUsRUFDbkJ3eEMsc0JBQXNCLEVBQ3RCaEssUUFBUyxDQUFDLEVBQ1ZrekMsb0JBQW9CLEVBQ3BCN0Qsd0JBQXdCLEVBQ3hCaCtCLGFBQWEsRUFDYjBnQyxpQkFBaUIsRUFDakI1b0MsbUJBQXFCMk8sSUFDbkJBLEVBQVFVLFlBQWMsR0FDZlYsR0FFVDFPLG9CQUFzQjFuQyxHQUFNQSxFQUM1QjR0RSxvQkFBb0IsRUFDcEJsd0Isc0JBQXVCLFVBQ3ZCQyx3QkFBeUIsRUFDekI2RCx5QkFBMEIsRUFDMUJpQyxnQkFBZ0IsRUFDaEJtM0Isc0JBQXNCLEVBQ3RCaGMsaUJBQWlCLEVBQ2pCaVAsd0JBQXdCLEVBQ3hCcHlCLGdCQUFpQixDQUNmakUsV0FBWSxDQUNWbzVELFVBQVcsQ0FDVDV2RixNQUFPLGNBQ1A2dkYsT0FBUSxRQUVWQyxnQkFBaUIsQ0FDZjl2RixNQUFPLG9CQUNQNnZGLE9BQVEsY0FFVkUsU0FBVSxDQUNSL3ZGLE1BQU8sYUFDUDZ2RixPQUFRLFNBR1pHLGlCQUFpQixFQUNqQkMsVUFBVyxNQUVidi9CLHVCQUF3QixDQUN0QixNQUNBLE1BQ0EsT0FDQSxTQUNBLFVBQ0EsT0FDQSxRQUNBLFNBRUZvK0Isb0JBQW9CLEVBSXBCSCxRQUFTLENBQUN1QixZQUdWOXlFLFFBQVMsR0FFVFksYUFBYyxDQUFDLEVBR2Z4b0IsR0FBSSxDQUFDLEVBQ0wrbkIsV0FBWSxDQUFDLEVBRWJ3bEMsZ0JBQWlCLENBQ2ZXLFdBQVcsRUFDWFosTUFBTyxTQUVUam9DLGlCQUFrQixLQUNsQkcsV0FBWSxLQUNaOFosV0FBWSxLQUNad2pCLG1CQUFvQixLQUNwQkMsZUFBZ0IsS0FFaEJxekIscUJBQXNCLENBQ3BCLDJCQUNBLFNBQ0EsU0FDQSxVQUdGbHBELHlCQUEwQixPQzdGeEIsR0FKSSxTQUFTM2tDLEdBQ2hCLElBQUlELEVBQUksQ0FBQyxFQUFnQyxPQUE3QnV5QixvQkFBb0JseEIsRUFBRXJCLEVBQUdDLEdBQVdELENBQ2pELENBRW1DLENBQUUsQ0FBRSxRQUFhLFdBQWEsT0FBT3F5RyxHQUF5RCxPQUFHLElDQWhJLEdBSkksU0FBU3B5RyxHQUNoQixJQUFJRCxFQUFJLENBQUMsRUFBZ0MsT0FBN0J1eUIsb0JBQW9CbHhCLEVBQUVyQixFQUFHQyxHQUFXRCxDQUNqRCxDQUVtQyxDQUFFLENBQUUsUUFBYSxXQUFhLE9BQU9zeUcsR0FBNEQsT0FBRyxJQ0V2SSx1QkFId0JDLENBQUMvN0csRUFBT3VrRixFQUFlLEtBQzdDcGdGLE1BQU0yRCxRQUFROUgsR0FBU0EsRUFBUXVrRixFQ01qQyx5QkFQMEJ5M0IsQ0FBQ2g4RyxFQUFPdWtGLEdBQWUsS0FDckMsSUFBVnZrRixHQUE0QixTQUFWQSxHQUE4QixJQUFWQSxHQUF5QixNQUFWQSxJQUV2QyxJQUFWQSxHQUE2QixVQUFWQSxHQUErQixJQUFWQSxHQUF5QixNQUFWQSxHQUVyRHVrRixFQ0ZSLGFBSDJCdmtGLEdBQ2YsT0FBVkEsR0FBNEIsU0FBVkEsRUFBbUIsS0FBT0EsRUNNOUMsd0JBTDBCQSxJQUN4QixNQUFNdWtGLEVBQWV2aEYsT0FBT2hELEdBQzVCLE9BQU9nOEcscUJBQWtCaDhHLEVBQU91a0YsRUFBYSxFQ0QvQywwQkFIMkIwM0IsQ0FBQ2o4RyxFQUFPdWtGLElBQ2hCLG1CQUFWdmtGLEVBQXVCQSxFQUFRdWtGLEVDQ3hDLG1CQUZpQ3ZrRixHQUFXbUUsTUFBTTJELFFBQVE5SCxHQUFTQSxFQUFRLEtDRzNFLHNCQUhvQ0EsR0FDakIsbUJBQVZBLEVBQXVCQSxFQUFRLEtDRXhDLG9CQUhrQ0EsR0FDdEIsT0FBVkEsR0FBNEIsU0FBVkEsRUFBbUIsS0FBT2dELE9BQU9oRCxHQ0lyRCx3QkFMeUJrOEcsQ0FBQ2w4RyxFQUFPdWtGLEdBQWUsS0FDOUMsTUFBTTQzQixFQUFjaGxHLFNBQVNuWCxFQUFPLElBQ3BDLE9BQU9GLE9BQU9DLE1BQU1vOEcsR0FBZTUzQixFQUFlNDNCLENBQVcsRUNHL0Qsd0JBSHlCQyxDQUFDcDhHLEVBQU91a0YsRUFBZSxDQUFDLEtBQy9DOXZCLEVBQUFBLEdBQUFBLFNBQWN6MEQsR0FBU0EsRUFBUXVrRixFQ0FqQyxXQUgwQnZrRixHQUNQLG1CQUFWQSxHQUF5QyxpQkFBVkEsRUFBcUJBLEVBQVEsS0NDckUsd0JBRjBCQSxHQUFVZ0QsT0FBT2hELEdDVTNDLHFCQVJrQ3E4RyxDQUFDcjhHLEVBQU91a0YsS0FDakM5dkIsRUFBQUEsR0FBQUEsU0FBY3owRCxHQUNqQkEsR0FDVSxJQUFWQSxHQUE2QixVQUFWQSxHQUErQixJQUFWQSxHQUF5QixNQUFWQSxFQUNyRCxDQUFFb3ZFLFdBQVcsR0FDYm1WLEVDSlIscUJBSG1DdmtGLFFBQ3ZCd0IsSUFBVnhCLEdBQWlDLGNBQVZBLE9BQXdCd0IsRUFBWXdCLE9BQU9oRCxHQ3NJcEUsT0F2SGlCLENBQ2ZpcEMsV0FBWSxDQUFFcXpFLFdBQVlGLHFCQUMxQnB6RSxRQUFTLENBQUVzekUsV0FBWUYscUJBQ3ZCZixVQUFXLENBQUVpQixXQUFZQyxpQkFDekJsaUUsWUFBYSxDQUNYaWlFLFdBQVlOLHFCQUNaejNCLGFBQWN2YSxHQUFlM3ZCLGFBRS9CZ08sd0JBQXlCLENBQ3ZCaTBELFdBQVlKLG9CQUNaMzNCLGFBQWN2YSxHQUFlM2hCLHlCQUUvQkQsc0JBQXVCLENBQUVrMEQsV0FBWUUscUJBQ3JDdHdELHlCQUEwQixDQUN4Qm93RCxXQUFZSixvQkFDWjMzQixhQUFjdmEsR0FBZTlkLDBCQUUvQmd3QixtQkFBb0IsQ0FDbEJvZ0MsV0FBWU4scUJBQ1p6M0IsYUFBY3ZhLEdBQWVrUyxvQkFFL0I3RCx1QkFBd0IsQ0FDdEJpa0MsV0FBWU4scUJBQ1p6M0IsYUFBY3ZhLEdBQWVxTyx3QkFFL0Jwc0IsYUFBYyxDQUFFcXdELFdBQVlFLHFCQUM1QnJCLE9BQVEsQ0FBRW1CLFdBQVlDLGlCQUN0Qmh4QyxRQUFTLENBQUUrd0MsV0FBWUcsVUFDdkJubEIscUJBQXNCLENBQ3BCZ2xCLFdBQVlQLG1CQUNaeDNCLGFBQWN2YSxHQUFlc3RCLHNCQUUvQnJsRSxPQUFRLENBQUVxcUYsV0FBWUkscUJBQ3RCeDdGLEdBQUksQ0FBRW83RixXQUFZRixxQkFDbEIxeUUsYUFBYyxDQUFFNHlFLFdBQVlGLHFCQUM1QjlpRSxPQUFRLENBQUVnakUsV0FBWUUscUJBQ3RCMThELGlCQUFrQixDQUNoQnc4RCxXQUFZSixvQkFDWjMzQixhQUFjdmEsR0FBZWxxQixrQkFFL0Jra0IsbUJBQW9CLENBQUVzNEMsV0FBWUssbUJBQ2xDem1DLGtCQUFtQixDQUFFb21DLFdBQVlNLGtCQUNqQ3A4RCxXQUFZLENBQUU4N0QsV0FBWUssbUJBQzFCcDJFLGlCQUFrQixDQUNoQisxRSxXQUFZTyxRQUVkQyxlQUFnQixDQUFFUixXQUFZSyxtQkFDOUIzcEUscUJBQXNCLENBQ3BCc3BFLFdBQVlOLHFCQUNaejNCLGFBQWN2YSxHQUFlaDNCLHNCQUUvQmxLLFFBQVMsQ0FDUHd6RSxXQUFZUCxtQkFDWngzQixhQUFjdmEsR0FBZWxoQyxTQUUvQnV4RSxRQUFTLENBQ1BpQyxXQUFZUCxtQkFDWngzQixhQUFjdmEsR0FBZXF3QyxTQUUvQmxvRSxtQkFBb0IsQ0FDbEJtcUUsV0FBWUwsc0JBQ1oxM0IsYUFBY3ZhLEdBQWU3M0Isb0JBRS9CZ1UsZ0JBQWlCLENBQ2ZtMkQsV0FBWUYsb0JBQ1o3M0IsYUFBY3ZhLEdBQWU3akIsaUJBRS9Cb3lCLHVCQUF3QixDQUN0QitqQyxXQUFZTixxQkFDWnozQixhQUFjdmEsR0FBZXVPLHdCQUUvQm5tQyxvQkFBcUIsQ0FDbkJrcUUsV0FBWUwsc0JBQ1oxM0IsYUFBY3ZhLEdBQWU1M0IscUJBRS9Ca3pDLHFCQUFzQixDQUNwQmczQixXQUFZTixxQkFDWnozQixhQUFjdmEsR0FBZXNiLHNCQUUvQm4zQixlQUFnQixDQUNkbXVELFdBQVlOLHFCQUNaejNCLGFBQWN2YSxHQUFlN2IsZ0JBRS9CbXFCLG1CQUFvQixDQUNsQmdrQyxXQUFZTixxQkFDWnozQixhQUFjdmEsR0FBZXNPLG9CQUUvQnhoQyxLQUFNLENBQUV3bEUsV0FBWUYsb0JBQWtCNzNCLGFBQWN2YSxHQUFlbHpCLE1BQ25Fc2xDLHVCQUF3QixDQUN0QmtnQyxXQUFZUCxtQkFDWngzQixhQUFjdmEsR0FBZW9TLHdCQUUvQjNOLGdCQUFpQixDQUNmNnRDLFdBQVlELGlCQUNaOTNCLGFBQWN2YSxHQUFleUUsaUJBRS9CLDRCQUE2QixDQUMzQjZ0QyxXQUFZTixxQkFDWnozQixhQUFjdmEsR0FBZXlFLGdCQUFnQlcsV0FFL0Msd0JBQXlCLENBQUVrdEMsV0FBWUUscUJBQ3ZDOTFFLFdBQVksQ0FDVjQxRSxXQUFZTyxRQUVkOWhDLGdCQUFpQixDQUNmdWhDLFdBQVlOLHFCQUNaejNCLGFBQWN2YSxHQUFlK1EsaUJBRS9CanFDLElBQUssQ0FBRXdyRSxXQUFZRSxxQkFDbkJwQixLQUFNLENBQUVrQixXQUFZUyxnQkFDcEIsbUJBQW9CLENBQUVULFdBQVlFLHFCQUNsQ3RqQyxhQUFjLENBQUVvakMsV0FBWUMsaUJBQzVCanpDLGdCQUFpQixDQUNmZ3pDLFdBQVlOLHFCQUNaejNCLGFBQWN2YSxHQUFlVixpQkFFL0JsN0IseUJBQTBCLENBQUVrdUUsV0FBWUssb0JDaEgxQyxjQWRrQnB2RyxHQUNUOU4sT0FBT29pQyxRQUFRbTdFLElBQVV0b0YsUUFDOUIsQ0FBQzhYLEdBQU15d0UsR0FBY1gsYUFBWS8zQixvQkFDL0IsSUFBSTEvQyxFQUFBQSxHQUFBQSxTQUFJMkgsRUFBS3l3RSxHQUFhLENBQ3hCLE1BQ01DLEVBQVNaLEdBREV2M0csRUFBQUEsR0FBQUEsU0FBSXluQyxFQUFLeXdFLEdBQ1UxNEIsR0FDcEMvM0MsR0FBTXhuQyxFQUFBQSxHQUFBQSxTQUFJaTRHLEVBQVlDLEVBQVExd0UsRUFDaEMsQ0FDQSxPQUFPQSxDQUFHLEdBRVosSUFBS2ovQixJQ3NDVCxpQkF4Q2NvZ0MsQ0FBQ3p1QyxLQUFXaStHLEtBQ3hCLElBQUk1eEMsRUFBVWg0RCxPQUFPNnBHLElBQUksV0FDckJDLEVBQWM5cEcsT0FBTzZwRyxJQUFJLGVBQzdCLE1BQU1FLEVBQTJCLEdBRWpDLElBQUssTUFBTWo3RixLQUFVODZGLEVBQVMsQ0FDNUIsTUFBTUksRUFBMEIsSUFBS2w3RixHQUVqQzVpQixPQUFPbzFELE9BQU8wb0QsRUFBeUIsYUFDekNoeUMsRUFBVWd5QyxFQUF3Qmh5QyxlQUMzQmd5QyxFQUF3Qmh5QyxTQUc3QjlyRSxPQUFPbzFELE9BQU8wb0QsRUFBeUIscUJBQ3pDRixFQUFjRSxFQUF3QiwyQkFDL0JBLEVBQXdCLHFCQUUvQnA1RyxNQUFNMkQsUUFBUXkxRyxFQUF3Qm5DLE9BQ3RDMzdHLE9BQU9vMUQsT0FBTzBvRCxFQUF3Qm5DLEtBQU0saUJBRTVDaUMsRUFBY0UsRUFBd0JuQyxLQUFLaUMsbUJBQ3BDRSxFQUF3Qm5DLEtBQUtpQyxhQUd0Q0MsRUFBeUIzNkcsS0FBSzQ2RyxFQUNoQyxDQUVBLE1BQU1sbUQsRUFBU2o5QixLQUFXbDdCLEtBQVdvK0csR0FVckMsT0FSSS94QyxJQUFZaDRELE9BQU82cEcsSUFBSSxhQUN6Qi9sRCxFQUFPa1UsUUFBVUEsR0FHZjh4QyxJQUFnQjlwRyxPQUFPNnBHLElBQUksZ0JBQWtCajVHLE1BQU0yRCxRQUFRdXZELEVBQU8rakQsUUFDcEUvakQsRUFBTytqRCxLQUFLaUMsWUFBY0EsR0FHckIvRSxVQUFTamhELEVBQU8sRUNSekIsU0FBU21tRCxVQUFVQyxHQUNqQixNQUFNQyxFQUFlcEQsUUFBbUJtRCxHQUNsQ0UsRUFBaUIxQyxZQUNqQjJDLEVBQWdCSixVQUFVbHdGLE9BQU9xZ0IsTUFDckMsQ0FBQyxFQUNENnZFLFVBQVVsd0YsT0FBT2lsRixTQUNqQm9MLEVBQ0FGLEVBQ0FDLEdBRUlHLEVBQWdCQyxxQkFBMkJGLEdBQzNDRyxFQUFlQyxjQUFpQ0osR0FFaERLLEVBQWdCLElBQUlDLE1BQU9MLEdBQ2pDSSxFQUFjajBFLFNBQVMsQ0FBQzR6RSxFQUFjOTBFLFFBQVNpMUUsSUFDL0MsTUFBTWgxRSxFQUFTazFFLEVBQWNsN0UsWUFFdkJvN0UsZUFBa0I1d0csSUFDdEIwd0csRUFBYy95RSxXQUFXMzlCLEdBQ3pCdzdCLEVBQU80TyxlQUFldkMsUUFBUSxFQUUxQmtMLFdBQWMveUMsS0FFZm13RyxFQUFhNXNFLEtBQ1UsaUJBQWpCdmpDLEVBQVF1cEMsTUFDZnIzQyxPQUFPZ0gsS0FBSzhHLEVBQVF1cEMsTUFBTWwwQyxPQUFTLEdBRW5DbW1DLEVBQU8yTyxZQUFZSSxVQUFVLElBQzdCL08sRUFBTzJPLFlBQVlHLG9CQUFvQixXQUN2QzlPLEVBQU8yTyxZQUFZNEksV0FBVzNiLEtBQUtrRCxVQUFVdDZCLEVBQVF1cEMsUUFFZCxtQkFBaEMvTixFQUFPMk8sWUFBWXkwQixVQUMxQjUrRCxFQUFRdWpDLE1BQ1B2akMsRUFBUTZ0RyxPQUVUcnlFLEVBQU8yTyxZQUFZSSxVQUFVdnFDLEVBQVF1akMsS0FDckMvSCxFQUFPMk8sWUFBWXkwQixTQUFTNStELEVBQVF1akMsS0FDdEMsRUFFSW9GLE9BQVUzb0MsSUFDZCxHQUFJQSxFQUFRZytELFFBQ1Z4aUMsRUFBT21OLE9BQU8zb0MsRUFBUWcrRCxRQUFTLFlBQzFCLEdBQUloK0QsRUFBUTR0RyxPQUFRLENBQ3pCLE1BQU01dkMsRUFBVS8xQixTQUFTNG9FLGNBQWM3d0csRUFBUTR0RyxRQUMvQ3B5RSxFQUFPbU4sT0FBT3ExQixFQUFTLE1BQ3pCLE1BQThCLE9BQW5CaCtELEVBQVE0dEcsUUFBdUMsT0FBcEI1dEcsRUFBUWcrRCxTQVE1Q25vRSxRQUFRa0MsTUFBTSw0REFDaEIsRUFJRixPQUFLczRHLEVBQWN2QyxXQVNsQixXQUNDLE1BQVFBLFVBQVd2cUUsR0FBUThzRSxFQUNyQlMsUUFBbUJ6RCxZQUFlLENBQUU5cEUsTUFBSy9ILFVBQXRCNnhFLENBQWdDZ0QsR0FDbkRVLEVBQW1CZCxVQUFVbHdGLE9BQU9xZ0IsTUFDeEMsQ0FBQyxFQUNEaXdFLEVBQ0FTLEVBQ0FYLEdBR0ZTLGVBQWVHLEdBQ0ksT0FBZkQsR0FBcUIvOUQsV0FBV2crRCxHQUNwQ3BvRSxPQUFPb29FLEVBQ1IsRUFiQSxHQWVNdjFFLElBdkJMbzFFLGVBQWVQLEdBQ2Z0OUQsV0FBV3M5RCxHQUNYMW5FLE9BQU8wbkUsR0FFQTcwRSxFQW9CWCxDQUVBeTBFLFVBQVVVLE9BQVNBLE1BRW5CVixVQUFVbHdGLE9BQVMsQ0FDakJpbEYsU0FBVXZvQyxHQUNWcjhCLE1BQU80d0UsYUFDUGpHLFNBQVVrRyxVQUNWQyxpQkFBZ0JBLElBR2xCakIsVUFBVW5ELFFBQVUsQ0FDbEIxc0QsS0FDQSt3RCxLQUFNOUMsWUFHUjRCLFVBQVUxMEUsUUFBVSxDQUNsQjYxRSxLQUFNM3VCLEtBQ040dUIsUUFBU252QixjQUNUb3ZCLFdBQVkzdUIsYUFDWjR1QixJQUFLanZCLElBQ0xrdkIsT0FBUTV1QixPQUNSNnVCLE1BQU94Z0UsTUFDUHlnRSxZQUFhbHFELGNBQ2JtcUQsbUJBQW9CNWpELHNCQUNwQjI5QixpQkFBa0J5VCxvQkFDbEJ5Uyx3QkFBeUJ0Riw0QkFDekJ0b0MsT0FBUXVlLGVBQ1JzdkIsS0FBTXp2QixLQUNOMHZCLFVBQVdsRixLQUNYbUYsVUFBV2xGLEtBQ1htRixXQUFZbnZCLFlBQ1p6c0MsZ0JBQWlCMHNDLHlCQUNqQm12QixLQUFNaDNDLGFBQ05pM0MsY0FBZTF2QixlQUNmMnZCLEtBQU1od0IsS0FDTml3QixLQUFNL3ZCLEtBQ05nd0IsV0FBWTV6QyxZQUNaNnpDLFlBQWE1dkIsa0JBQ2I2dkIsbUJBQW9CdndDLG9CQUNwQnd3QyxTQUFVOXZDLFNBQ1YrdkMsV0FBWTF2QixhQUdkLElDM0tBLEdEMktBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2Vycm9ycy1icm93c2VyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc2hhLmpzL3NoYTI1Ni5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3htbC9saWIveG1sLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3RyaW5nX2RlY29kZXIvbGliL3N0cmluZ19kZWNvZGVyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9pbnRlcm5hbC9zdHJlYW1zL2Zyb20tYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbmRvbWJ5dGVzL2Jyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vbGliL2ludGVybmFsL3N0cmVhbXMvZW5kLW9mLXN0cmVhbS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2J1ZmZlci9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JlYWRhYmxlLXN0cmVhbS9saWIvaW50ZXJuYWwvc3RyZWFtcy9zdGF0ZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3N0cmVhbS1icm93c2VyaWZ5L2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9pbnRlcm5hbC9zdHJlYW1zL3N0cmVhbS1icm93c2VyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwiaWVlZTc1NFwiIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9fc3RyZWFtX2R1cGxleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3NoYS5qcy9oYXNoLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9fc3RyZWFtX3JlYWRhYmxlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMveG1sL2xpYi9lc2NhcGVGb3JYTUwuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vbGliL19zdHJlYW1fcGFzc3Rocm91Z2guanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9wcm9jZXNzL2Jyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vbGliL19zdHJlYW1fdHJhbnNmb3JtLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvdXRpbC1kZXByZWNhdGUvYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vbGliL19zdHJlYW1fd3JpdGFibGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zaGEuanMvc2hhMjI0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9pbnRlcm5hbC9zdHJlYW1zL2J1ZmZlcl9saXN0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc2hhLmpzL3NoYTEuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vbGliL2ludGVybmFsL3N0cmVhbXMvcGlwZWxpbmUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zaGEuanMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zaGEuanMvc2hhLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc2hhLmpzL3NoYTM4NC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3NhZmUtYnVmZmVyL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc2hhLmpzL3NoYTUxMi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JlYWRhYmxlLXN0cmVhbS9saWIvaW50ZXJuYWwvc3RyZWFtcy9kZXN0cm95LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvZGVlcC1leHRlbmQvbGliL2RlZXAtZXh0ZW5kLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9pbnRlcm5hbC9zdHJlYW1zL2FzeW5jX2l0ZXJhdG9yLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwiYmFzZTY0LWpzXCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL3N3YWdnZXItdWkvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL3N3YWdnZXItdWkvd2VicGFjay9ydW50aW1lL2dsb2JhbCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwicmVhY3RcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcInJlZHV4XCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJpbW11dGFibGVcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcInJlZHV4LWltbXV0YWJsZVwiIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwic2VyaWFsaXplLWVycm9yXCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJsb2Rhc2gvbWVyZ2VcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9lcnIvYWN0aW9ucy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvd2luZG93LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwibG9kYXNoL21lbW9pemVcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcImxvZGFzaC9jYW1lbENhc2VcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcImxvZGFzaC91cHBlckZpcnN0XCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJsb2Rhc2gvZmluZFwiIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwibG9kYXNoL3NvbWVcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcImxvZGFzaC9lcVwiIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwibG9kYXNoL2lzRnVuY3Rpb25cIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcImNzcy5lc2NhcGVcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvdXRpbHMvZ2V0LXBhcmFtZXRlci1zY2hlbWEuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3V0aWxzL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9zeXN0ZW0uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJ1cmwtcGFyc2VcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9hdXRoL2FjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvYXV0aC9yZWR1Y2Vycy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcInJlc2VsZWN0XCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvYXV0aC9zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvYXV0aC9zcGVjLWV4dGVuc2lvbnMvd3JhcC1hY3Rpb25zLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2F1dGgvY29uZmlncy1leHRlbnNpb25zL3dyYXAtYWN0aW9ucy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9hdXRoL3dyYXAtYWN0aW9ucy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcInByb3AtdHlwZXNcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcImxvZGFzaC9vbWl0XCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvYXV0aC9jb21wb25lbnRzL2xvY2stYXV0aC1pY29uLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9hdXRoL2NvbXBvbmVudHMvdW5sb2NrLWF1dGgtaWNvbi5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvYXV0aC9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcImpzLXlhbWxcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9jb25maWdzL2ZuLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2NvbmZpZ3MvYWN0aW9ucy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9jb25maWdzL3NlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9jb25maWdzL3JlZHVjZXJzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2NvbmZpZ3MvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvZGVlcC1saW5raW5nL2hlbHBlcnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJ6ZW5zY3JvbGxcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9kZWVwLWxpbmtpbmcvbGF5b3V0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2RlZXAtbGlua2luZy9vcGVyYXRpb24td3JhcHBlci5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvZGVlcC1saW5raW5nL29wZXJhdGlvbi10YWctd3JhcHBlci5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvZGVlcC1saW5raW5nL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwibG9kYXNoL3JlZHVjZVwiIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2Vyci9lcnJvci10cmFuc2Zvcm1lcnMvdHJhbnNmb3JtZXJzL25vdC1vZi10eXBlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwibG9kYXNoL2dldFwiIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2Vyci9lcnJvci10cmFuc2Zvcm1lcnMvdHJhbnNmb3JtZXJzL3BhcmFtZXRlci1vbmVvZi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9lcnIvZXJyb3ItdHJhbnNmb3JtZXJzL2hvb2suanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvZXJyL3JlZHVjZXJzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2Vyci9zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvZXJyL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2ZpbHRlci9vcHNGaWx0ZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvZmlsdGVyL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwiQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9oZWxwZXJzL2V4dGVuZHNcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9pY29ucy9jb21wb25lbnRzL2Fycm93LXVwLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9pY29ucy9jb21wb25lbnRzL2Fycm93LWRvd24uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2ljb25zL2NvbXBvbmVudHMvYXJyb3cuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2ljb25zL2NvbXBvbmVudHMvY2xvc2UuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2ljb25zL2NvbXBvbmVudHMvY29weS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvaWNvbnMvY29tcG9uZW50cy9sb2NrLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9pY29ucy9jb21wb25lbnRzL3VubG9jay5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvaWNvbnMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvbGF5b3V0L2FjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvbGF5b3V0L3JlZHVjZXJzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2xheW91dC9zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvbGF5b3V0L3NwZWMtZXh0ZW5zaW9ucy93cmFwLXNlbGVjdG9yLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2xheW91dC9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9sb2dzL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29uLWNvbXBsZXRlL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3JlcXVlc3Qtc25pcHBldHMvZm4uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvcmVxdWVzdC1zbmlwcGV0cy9zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJjbGFzc25hbWVzXCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJyZWFjdC1jb3B5LXRvLWNsaXBib2FyZFwiIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3JlcXVlc3Qtc25pcHBldHMvcmVxdWVzdC1zbmlwcGV0cy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvcmVxdWVzdC1zbmlwcGV0cy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvbW9kZWwtY29sbGFwc2UuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUvY29tcG9uZW50cy9tb2RlbC1leGFtcGxlLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvbW9kZWwtd3JhcHBlci5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJyZWFjdC1pbW11dGFibGUtcHVyZS1jb21wb25lbnRcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvYXNzZXRzL3JvbGxpbmctbG9hZC5zdmciLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtNS9jb21wb25lbnRzL21vZGVsLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvbW9kZWxzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvZW51bS1tb2RlbC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3V0aWxzL3VybC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvb2JqZWN0LW1vZGVsLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvYXJyYXktbW9kZWwuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUvY29tcG9uZW50cy9wcmltaXRpdmUtbW9kZWwuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUvY29tcG9uZW50cy9zY2hlbWVzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbnRhaW5lcnMvc2NoZW1lcy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJyZWFjdC1kZWJvdW5jZS1pbnB1dFwiIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUvY29tcG9uZW50cy9qc29uLXNjaGVtYS1jb21wb25lbnRzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvbW9kZWwtZXh0ZW5zaW9ucy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJsb2Rhc2gvaXNQbGFpbk9iamVjdFwiIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUvZm4uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtNS9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcInJhbmRleHBcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcImxvZGFzaC9pc0VtcHR5XCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3V0aWxzL21lbW9pemVOLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUtc2FtcGxlcy9mbi9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01LXNhbXBsZXMvZm4vZ2V0LWpzb24tc2FtcGxlLXNjaGVtYS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01LXNhbXBsZXMvZm4vZ2V0LXlhbWwtc2FtcGxlLXNjaGVtYS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01LXNhbXBsZXMvZm4vZ2V0LXhtbC1zYW1wbGUtc2NoZW1hLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUtc2FtcGxlcy9mbi9nZXQtc2FtcGxlLXNjaGVtYS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01LXNhbXBsZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJsb2Rhc2gvY29uc3RhbnRcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9zcGVjL3NlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcImxvZGFzaC9pc1N0cmluZ1wiIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwibG9kYXNoL2RlYm91bmNlXCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJsb2Rhc2gvc2V0XCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJsb2Rhc2gvZnAvYXNzb2NQYXRoXCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvc3BlYy9hY3Rpb25zLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3NwZWMvcmVkdWNlcnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvc3BlYy93cmFwLWFjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvc3BlYy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcInN3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvZ2VuZXJpY1wiIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwic3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvc3RyYXRlZ2llcy9vcGVuYXBpLTJcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcInN3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvb3BlbmFwaS0zLTBcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcInN3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvb3BlbmFwaS0zLTEtYXBpZG9tXCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJzd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlclwiIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwic3dhZ2dlci1jbGllbnQvZXMvZXhlY3V0ZVwiIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwic3dhZ2dlci1jbGllbnQvZXMvaHR0cFwiIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwic3dhZ2dlci1jbGllbnQvZXMvc3VidHJlZS1yZXNvbHZlclwiIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwic3dhZ2dlci1jbGllbnQvZXMvaGVscGVyc1wiIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3N3YWdnZXItY2xpZW50L2NvbmZpZ3Mtd3JhcC1hY3Rpb25zLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3N3YWdnZXItY2xpZW50L2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3V0aWwvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJyZWFjdC1kb21cIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcInJlYWN0LXJlZHV4XCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJsb2Rhc2gvaWRlbnRpdHlcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy92aWV3L3Jvb3QtaW5qZWN0cy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvdmlldy9mbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy92aWV3L2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3ZpZXctbGVnYWN5L2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3ZpZXctbGVnYWN5L3Jvb3QtaW5qZWN0cy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvZG93bmxvYWQtdXJsL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xpZ2h0XCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL2hsanMvamF2YXNjcmlwdFwiIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL2pzb25cIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy94bWxcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy9iYXNoXCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL2hsanMveWFtbFwiIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL2h0dHBcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy9wb3dlcnNoZWxsXCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvc3ludGF4LWhpZ2hsaWdodGluZy9hZnRlci1sb2FkLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL3N0eWxlcy9obGpzL2FnYXRlXCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvYXJ0YVwiIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL3N0eWxlcy9obGpzL21vbm9rYWlcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9zdHlsZXMvaGxqcy9ub3JkXCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvb2JzaWRpYW5cIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9zdHlsZXMvaGxqcy90b21vcnJvdy1uaWdodFwiIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL3N0eWxlcy9obGpzL2lkZWFcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9zeW50YXgtaGlnaGxpZ2h0aW5nL3Jvb3QtaW5qZWN0cy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9zeW50YXgtaGlnaGxpZ2h0aW5nL2NvbXBvbmVudHMvU3ludGF4SGlnaGxpZ2h0ZXIuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwianMtZmlsZS1kb3dubG9hZFwiIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3N5bnRheC1oaWdobGlnaHRpbmcvY29tcG9uZW50cy9IaWdobGlnaHRDb2RlLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9zeW50YXgtaGlnaGxpZ2h0aW5nL2NvbXBvbmVudHMvUGxhaW5UZXh0Vmlld2VyLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9zeW50YXgtaGlnaGxpZ2h0aW5nL3dyYXAtY29tcG9uZW50cy9TeW50YXhIaWdobGlnaHRlci5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvc3ludGF4LWhpZ2hsaWdodGluZy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy92ZXJzaW9ucy9hZnRlci1sb2FkLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3ZlcnNpb25zL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwibG9kYXNoL3ppcE9iamVjdFwiIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3NhZmUtcmVuZGVyL2ZuLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9zYWZlLXJlbmRlci9jb21wb25lbnRzL2ZhbGxiYWNrLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9zYWZlLXJlbmRlci9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9zYWZlLXJlbmRlci9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9hcHAuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL2F1dGgvYXV0aG9yaXphdGlvbi1wb3B1cC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvYXV0aC9hdXRob3JpemUtYnRuLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29udGFpbmVycy9hdXRob3JpemUtYnRuLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9hdXRoL2F1dGhvcml6ZS1vcGVyYXRpb24tYnRuLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9hdXRoL2F1dGhzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9hdXRoL2F1dGgtaXRlbS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvYXV0aC9lcnJvci5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvYXV0aC9hcGkta2V5LWF1dGguanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL2F1dGgvYmFzaWMtYXV0aC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvZXhhbXBsZS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvZXhhbXBsZXMtc2VsZWN0LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9leGFtcGxlcy1zZWxlY3QtdmFsdWUtcmV0YWluZXIuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9vYXV0aDItYXV0aG9yaXplLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL2F1dGgvb2F1dGgyLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9jbGVhci5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvbGl2ZS1yZXNwb25zZS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvb25saW5lLXZhbGlkYXRvci1iYWRnZS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvb3BlcmF0aW9ucy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvb3BlcmF0aW9uLXRhZy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvb3BlcmF0aW9uLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29udGFpbmVycy9PcGVyYXRpb25Db250YWluZXIuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwibG9kYXNoL3RvU3RyaW5nXCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvb3BlcmF0aW9uLXN1bW1hcnkuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL29wZXJhdGlvbi1zdW1tYXJ5LW1ldGhvZC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvb3BlcmF0aW9uLXN1bW1hcnktcGF0aC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvb3BlcmF0aW9uLWV4dGVuc2lvbnMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL29wZXJhdGlvbi1leHRlbnNpb24tcm93LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvdXRpbHMvY3JlYXRlLWh0bWwtcmVhZHktaWQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvcmVzcG9uc2VzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvdXRpbHMvanNvblBhcnNlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL3Jlc3BvbnNlLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9yZXNwb25zZS1leHRlbnNpb24uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwieG1sLWJ1dC1wcmV0dGllclwiIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwibG9kYXNoL3RvTG93ZXJcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9yZXNwb25zZS1ib2R5LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9wYXJhbWV0ZXJzL3BhcmFtZXRlcnMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL3BhcmFtZXRlci1leHRlbnNpb24uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL3BhcmFtZXRlci1pbmNsdWRlLWVtcHR5LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9wYXJhbWV0ZXItcm93LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9leGVjdXRlLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9oZWFkZXJzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9lcnJvcnMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL2NvbnRlbnQtdHlwZS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvbGF5b3V0LXV0aWxzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9vdmVydmlldy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvaW5pdGlhbGl6ZWQtaW5wdXQuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL2luZm8uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb250YWluZXJzL2luZm8uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL2NvbnRhY3QuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL2xpY2Vuc2UuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL2p1bXAtdG8tcGF0aC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvY29weS10by1jbGlwYm9hcmQtYnRuLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9mb290ZXIuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb250YWluZXJzL2ZpbHRlci5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvcGFyYW0tYm9keS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvY3VybC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvcHJvcGVydHkuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL3RyeS1pdC1vdXQtYnV0dG9uLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy92ZXJzaW9uLXByYWdtYS1maWx0ZXIuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL3ZlcnNpb24tc3RhbXAuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL29wZW5hcGktdmVyc2lvbi5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvZGVlcC1saW5rLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9zdmctYXNzZXRzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcInJlbWFya2FibGVcIiIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL2V4dGVybmFsIG1vZHVsZSBcInJlbWFya2FibGUvbGlua2lmeVwiIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwiZG9tcHVyaWZ5XCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvcHJvdmlkZXJzL21hcmtkb3duLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9sYXlvdXRzL2Jhc2UuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wcmVzZXRzL2Jhc2UvcGx1Z2lucy9jb3JlLWNvbXBvbmVudHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3ByZXNldHMvYmFzZS9wbHVnaW5zL2Zvcm0tY29tcG9uZW50cy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcHJlc2V0cy9iYXNlL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvc3BlYy1leHRlbnNpb25zL3dyYXAtc2VsZWN0b3JzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvYXV0aC1leHRlbnNpb25zL3dyYXAtc2VsZWN0b3JzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvaGVscGVycy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9zcGVjLWV4dGVuc2lvbnMvc2VsZWN0b3JzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvY29tcG9uZW50cy9jYWxsYmFja3MuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvY29tcG9uZW50cy9yZXF1ZXN0LWJvZHkuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvY29tcG9uZW50cy9vcGVyYXRpb24tbGluay5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9jb21wb25lbnRzL3NlcnZlcnMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvY29tcG9uZW50cy9zZXJ2ZXJzLWNvbnRhaW5lci5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9jb21wb25lbnRzL3JlcXVlc3QtYm9keS1lZGl0b3IuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvY29tcG9uZW50cy9hdXRoL2h0dHAtYXV0aC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9jb21wb25lbnRzL29wZXJhdGlvbi1zZXJ2ZXJzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL2NvbXBvbmVudHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy93cmFwLWNvbXBvbmVudHMvbWFya2Rvd24uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvd3JhcC1jb21wb25lbnRzL2F1dGgvYXV0aC1pdGVtLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL3dyYXAtY29tcG9uZW50cy9vbmxpbmUtdmFsaWRhdG9yLWJhZGdlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvd3JhcC1jb21wb25lbnRzL21vZGVsLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL3dyYXAtY29tcG9uZW50cy9qc29uLXNjaGVtYS1zdHJpbmcuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvd3JhcC1jb21wb25lbnRzL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvd3JhcC1jb21wb25lbnRzL29wZW5hcGktdmVyc2lvbi5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9hY3Rpb25zLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvZXh0ZXJuYWwgbW9kdWxlIFwibG9kYXNoL2VzY2FwZVJlZ0V4cFwiIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvc2VsZWN0b3JzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvcmVkdWNlcnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL2ZuLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2NvbXBvbmVudHMvd2ViaG9va3MuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2NvbXBvbmVudHMvbGljZW5zZS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvY29tcG9uZW50cy9jb250YWN0LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9jb21wb25lbnRzL2luZm8uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2NvbXBvbmVudHMvanNvbi1zY2hlbWEtZGlhbGVjdC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvY29tcG9uZW50cy92ZXJzaW9uLXByYWdtYS1maWx0ZXIuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2NvbXBvbmVudHMvbW9kZWwvbW9kZWwuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2NvbXBvbmVudHMvbW9kZWxzL21vZGVscy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvY29tcG9uZW50cy9hdXRoL211dHVhbC10bHMtYXV0aC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvY29tcG9uZW50cy9hdXRoL2F1dGhzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9mbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS93cmFwLWNvbXBvbmVudHMvbGljZW5zZS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvd3JhcC1jb21wb25lbnRzL2NvbnRhY3QuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL3dyYXAtY29tcG9uZW50cy9pbmZvLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvZm4uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvd3JhcC1jb21wb25lbnRzL21vZGVsLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS93cmFwLWNvbXBvbmVudHMvbW9kZWxzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS93cmFwLWNvbXBvbmVudHMvdmVyc2lvbi1wcmFnbWEtZmlsdGVyLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS93cmFwLWNvbXBvbmVudHMvYXV0aC9hdXRoLWl0ZW0uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL3dyYXAtY29tcG9uZW50cy9hdXRocy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvc3BlYy1leHRlbnNpb25zL3NlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9zcGVjLWV4dGVuc2lvbnMvd3JhcC1zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvYXV0aC1leHRlbnNpb25zL3dyYXAtc2VsZWN0b3JzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL3NlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvY29tcG9uZW50cy9rZXl3b3Jkcy9FeGFtcGxlLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvY29tcG9uZW50cy9rZXl3b3Jkcy9YbWwuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2pzb24tc2NoZW1hLTIwMjAtMTItZXh0ZW5zaW9ucy9jb21wb25lbnRzL2tleXdvcmRzL0Rpc2NyaW1pbmF0b3IvRGlzY3JpbWluYXRvck1hcHBpbmcuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2pzb24tc2NoZW1hLTIwMjAtMTItZXh0ZW5zaW9ucy9jb21wb25lbnRzL2tleXdvcmRzL0Rpc2NyaW1pbmF0b3IvRGlzY3JpbWluYXRvci5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvanNvbi1zY2hlbWEtMjAyMC0xMi1leHRlbnNpb25zL2NvbXBvbmVudHMva2V5d29yZHMvT3BlbkFQSUV4dGVuc2lvbnMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2pzb24tc2NoZW1hLTIwMjAtMTItZXh0ZW5zaW9ucy9jb21wb25lbnRzL2tleXdvcmRzL0V4dGVybmFsRG9jcy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvanNvbi1zY2hlbWEtMjAyMC0xMi1leHRlbnNpb25zL2NvbXBvbmVudHMva2V5d29yZHMvRGVzY3JpcHRpb24uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2pzb24tc2NoZW1hLTIwMjAtMTItZXh0ZW5zaW9ucy93cmFwLWNvbXBvbmVudHMva2V5d29yZHMvRGVzY3JpcHRpb24uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2pzb24tc2NoZW1hLTIwMjAtMTItZXh0ZW5zaW9ucy93cmFwLWNvbXBvbmVudHMva2V5d29yZHMvRXhhbXBsZXMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2pzb24tc2NoZW1hLTIwMjAtMTItZXh0ZW5zaW9ucy9jb21wb25lbnRzL2tleXdvcmRzL1Byb3BlcnRpZXMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2pzb24tc2NoZW1hLTIwMjAtMTItZXh0ZW5zaW9ucy93cmFwLWNvbXBvbmVudHMva2V5d29yZHMvUHJvcGVydGllcy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvYWZ0ZXItbG9hZC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9vYXMzLWV4dGVuc2lvbnMvZm4uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9wcm9wLXR5cGVzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29udGV4dC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2VudW0uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9ob29rcy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMvSlNPTlNjaGVtYS9KU09OU2NoZW1hLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvJHNjaGVtYS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzLyR2b2NhYnVsYXJ5LyR2b2NhYnVsYXJ5LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvJGlkLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvJGFuY2hvci5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzLyRkeW5hbWljQW5jaG9yLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvJHJlZi5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzLyRkeW5hbWljUmVmLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvJGRlZnMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy8kY29tbWVudC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0FsbE9mLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvQW55T2YuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9PbmVPZi5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL05vdC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0lmLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvVGhlbi5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0Vsc2UuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9EZXBlbmRlbnRTY2hlbWFzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvUHJlZml4SXRlbXMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9JdGVtcy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0NvbnRhaW5zLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvUHJvcGVydGllcy9Qcm9wZXJ0aWVzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvUGF0dGVyblByb3BlcnRpZXMvUGF0dGVyblByb3BlcnRpZXMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9BZGRpdGlvbmFsUHJvcGVydGllcy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL1Byb3BlcnR5TmFtZXMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9VbmV2YWx1YXRlZEl0ZW1zLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvVHlwZS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0VudW0vRW51bS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0NvbnN0L0NvbnN0LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2ZuLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9Db25zdHJhaW50L0NvbnN0cmFpbnQuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9EZXBlbmRlbnRSZXF1aXJlZC9EZXBlbmRlbnRSZXF1aXJlZC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0NvbnRlbnRTY2hlbWEuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9UaXRsZS9UaXRsZS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0Rlc2NyaXB0aW9uL0Rlc2NyaXB0aW9uLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvRGVmYXVsdC9EZWZhdWx0LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvRGVwcmVjYXRlZC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL1JlYWRPbmx5LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvV3JpdGVPbmx5LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvRXhhbXBsZXMvRXhhbXBsZXMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9FeHRlbnNpb25LZXl3b3Jkcy9FeHRlbnNpb25LZXl3b3Jkcy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL0pTT05WaWV3ZXIvSlNPTlZpZXdlci5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL0FjY29yZGlvbi9BY2NvcmRpb24uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9FeHBhbmREZWVwQnV0dG9uL0V4cGFuZERlZXBCdXR0b24uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9pY29ucy9DaGV2cm9uUmlnaHQuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvaG9jLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi90eXBlcy9hcnJheS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vdHlwZXMvb2JqZWN0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9jb3JlL3JhbmRvbS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vY29yZS9wcmVkaWNhdGVzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9jbGFzcy9SZWdpc3RyeS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9pbnQzMi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9pbnQ2NC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9mbG9hdC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9kb3VibGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvZW1haWwuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvaWRuLWVtYWlsLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2hvc3RuYW1lLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2lkbi1ob3N0bmFtZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9pcHY0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2lwdjYuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvdXJpLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL3VyaS1yZWZlcmVuY2UuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvaXJpLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2lyaS1yZWZlcmVuY2UuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvdXVpZC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy91cmktdGVtcGxhdGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvanNvbi1wb2ludGVyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL3JlbGF0aXZlLWpzb24tcG9pbnRlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9kYXRlLXRpbWUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvZGF0ZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy90aW1lLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2R1cmF0aW9uLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL3Bhc3N3b3JkLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL3JlZ2V4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9hcGkvZm9ybWF0QVBJLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9jbGFzcy9Gb3JtYXRSZWdpc3RyeS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZW5jb2RlcnMvN2JpdC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZW5jb2RlcnMvOGJpdC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZW5jb2RlcnMvYmluYXJ5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9lbmNvZGVycy9xdW90ZWQtcHJpbnRhYmxlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9lbmNvZGVycy9iYXNlMTYuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2VuY29kZXJzL2Jhc2UzMi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZW5jb2RlcnMvYmFzZTY0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9lbmNvZGVycy9iYXNlNjR1cmwuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2FwaS9lbmNvZGVyQVBJLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9jbGFzcy9FbmNvZGVyUmVnaXN0cnkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvbWVkaWEtdHlwZXMvdGV4dC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9tZWRpYS10eXBlcy9pbWFnZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9tZWRpYS10eXBlcy9hdWRpby5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9tZWRpYS10eXBlcy92aWRlby5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9tZWRpYS10eXBlcy9hcHBsaWNhdGlvbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vYXBpL21lZGlhVHlwZUFQSS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vY2xhc3MvTWVkaWFUeXBlUmVnaXN0cnkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL3R5cGVzL3N0cmluZy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vdHlwZXMvbnVtYmVyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi90eXBlcy9pbnRlZ2VyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi90eXBlcy9ib29sZWFuLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi90eXBlcy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vdHlwZXMvbnVsbC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vY29yZS9jb25zdGFudHMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2NvcmUvZXhhbXBsZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vY29yZS90eXBlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9jb3JlL3V0aWxzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9jb3JlL21lcmdlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9tYWluLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9hcGkvb3B0aW9uQVBJLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9jbGFzcy9PcHRpb25SZWdpc3RyeS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2V0LWpzb24tc2FtcGxlLXNjaGVtYS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2V0LXlhbWwtc2FtcGxlLXNjaGVtYS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2V0LXhtbC1zYW1wbGUtc2NoZW1hLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZXQtc2FtcGxlLXNjaGVtYS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3ByZXNldHMvYXBpcy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL2ZhY3Rvcml6YXRpb24vaW5saW5lLXBsdWdpbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL2ZhY3Rvcml6YXRpb24vc3lzdGVtLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb25maWcvc291cmNlcy9xdWVyeS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL3NvdXJjZXMvdXJsLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb25maWcvc291cmNlcy9ydW50aW1lLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb25maWcvZGVmYXVsdHMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJsb2Rhc2gvaGFzXCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS9leHRlcm5hbCBtb2R1bGUgXCJsb2Rhc2gvZnAvc2V0XCIiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbmZpZy90eXBlLWNhc3QvdHlwZS1jYXN0ZXJzL2FycmF5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb25maWcvdHlwZS1jYXN0L3R5cGUtY2FzdGVycy9ib29sZWFuLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb25maWcvdHlwZS1jYXN0L3R5cGUtY2FzdGVycy9kb20tbm9kZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvZmlsdGVyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb25maWcvdHlwZS1jYXN0L3R5cGUtY2FzdGVycy9mdW5jdGlvbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvbnVsbGFibGUtYXJyYXkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbmZpZy90eXBlLWNhc3QvdHlwZS1jYXN0ZXJzL251bGxhYmxlLWZ1bmN0aW9uLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb25maWcvdHlwZS1jYXN0L3R5cGUtY2FzdGVycy9udWxsYWJsZS1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbmZpZy90eXBlLWNhc3QvdHlwZS1jYXN0ZXJzL251bWJlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvb2JqZWN0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb25maWcvdHlwZS1jYXN0L3R5cGUtY2FzdGVycy9zb3J0ZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbmZpZy90eXBlLWNhc3QvdHlwZS1jYXN0ZXJzL3N0cmluZy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvc3ludGF4LWhpZ2hsaWdodC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvdW5kZWZpbmVkLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC9tYXBwaW5ncy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL21lcmdlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSID0gdHlwZW9mIFJlZmxlY3QgPT09ICdvYmplY3QnID8gUmVmbGVjdCA6IG51bGxcbnZhciBSZWZsZWN0QXBwbHkgPSBSICYmIHR5cGVvZiBSLmFwcGx5ID09PSAnZnVuY3Rpb24nXG4gID8gUi5hcHBseVxuICA6IGZ1bmN0aW9uIFJlZmxlY3RBcHBseSh0YXJnZXQsIHJlY2VpdmVyLCBhcmdzKSB7XG4gICAgcmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpO1xuICB9XG5cbnZhciBSZWZsZWN0T3duS2V5c1xuaWYgKFIgJiYgdHlwZW9mIFIub3duS2V5cyA9PT0gJ2Z1bmN0aW9uJykge1xuICBSZWZsZWN0T3duS2V5cyA9IFIub3duS2V5c1xufSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gZnVuY3Rpb24gUmVmbGVjdE93bktleXModGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldClcbiAgICAgIC5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0YXJnZXQpKTtcbiAgfTtcbn0gZWxzZSB7XG4gIFJlZmxlY3RPd25LZXlzID0gZnVuY3Rpb24gUmVmbGVjdE93bktleXModGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIFByb2Nlc3NFbWl0V2FybmluZyh3YXJuaW5nKSB7XG4gIGlmIChjb25zb2xlICYmIGNvbnNvbGUud2FybikgY29uc29sZS53YXJuKHdhcm5pbmcpO1xufVxuXG52YXIgTnVtYmVySXNOYU4gPSBOdW1iZXIuaXNOYU4gfHwgZnVuY3Rpb24gTnVtYmVySXNOYU4odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9PSB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gRXZlbnRFbWl0dGVyKCkge1xuICBFdmVudEVtaXR0ZXIuaW5pdC5jYWxsKHRoaXMpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBFdmVudEVtaXR0ZXI7XG5tb2R1bGUuZXhwb3J0cy5vbmNlID0gb25jZTtcblxuLy8gQmFja3dhcmRzLWNvbXBhdCB3aXRoIG5vZGUgMC4xMC54XG5FdmVudEVtaXR0ZXIuRXZlbnRFbWl0dGVyID0gRXZlbnRFbWl0dGVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHMgPSB1bmRlZmluZWQ7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHNDb3VudCA9IDA7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9tYXhMaXN0ZW5lcnMgPSB1bmRlZmluZWQ7XG5cbi8vIEJ5IGRlZmF1bHQgRXZlbnRFbWl0dGVycyB3aWxsIHByaW50IGEgd2FybmluZyBpZiBtb3JlIHRoYW4gMTAgbGlzdGVuZXJzIGFyZVxuLy8gYWRkZWQgdG8gaXQuIFRoaXMgaXMgYSB1c2VmdWwgZGVmYXVsdCB3aGljaCBoZWxwcyBmaW5kaW5nIG1lbW9yeSBsZWFrcy5cbnZhciBkZWZhdWx0TWF4TGlzdGVuZXJzID0gMTA7XG5cbmZ1bmN0aW9uIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpIHtcbiAgaWYgKHR5cGVvZiBsaXN0ZW5lciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImxpc3RlbmVyXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgbGlzdGVuZXIpO1xuICB9XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShFdmVudEVtaXR0ZXIsICdkZWZhdWx0TWF4TGlzdGVuZXJzJywge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkZWZhdWx0TWF4TGlzdGVuZXJzO1xuICB9LFxuICBzZXQ6IGZ1bmN0aW9uKGFyZykge1xuICAgIGlmICh0eXBlb2YgYXJnICE9PSAnbnVtYmVyJyB8fCBhcmcgPCAwIHx8IE51bWJlcklzTmFOKGFyZykpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJkZWZhdWx0TWF4TGlzdGVuZXJzXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIGFyZyArICcuJyk7XG4gICAgfVxuICAgIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSBhcmc7XG4gIH1cbn0pO1xuXG5FdmVudEVtaXR0ZXIuaW5pdCA9IGZ1bmN0aW9uKCkge1xuXG4gIGlmICh0aGlzLl9ldmVudHMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgdGhpcy5fZXZlbnRzID09PSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuX2V2ZW50cykge1xuICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICB9XG5cbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gdGhpcy5fbWF4TGlzdGVuZXJzIHx8IHVuZGVmaW5lZDtcbn07XG5cbi8vIE9idmlvdXNseSBub3QgYWxsIEVtaXR0ZXJzIHNob3VsZCBiZSBsaW1pdGVkIHRvIDEwLiBUaGlzIGZ1bmN0aW9uIGFsbG93c1xuLy8gdGhhdCB0byBiZSBpbmNyZWFzZWQuIFNldCB0byB6ZXJvIGZvciB1bmxpbWl0ZWQuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnNldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uIHNldE1heExpc3RlbmVycyhuKSB7XG4gIGlmICh0eXBlb2YgbiAhPT0gJ251bWJlcicgfHwgbiA8IDAgfHwgTnVtYmVySXNOYU4obikpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mIFwiblwiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcgKyBuICsgJy4nKTtcbiAgfVxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSBuO1xuICByZXR1cm4gdGhpcztcbn07XG5cbmZ1bmN0aW9uIF9nZXRNYXhMaXN0ZW5lcnModGhhdCkge1xuICBpZiAodGhhdC5fbWF4TGlzdGVuZXJzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIEV2ZW50RW1pdHRlci5kZWZhdWx0TWF4TGlzdGVuZXJzO1xuICByZXR1cm4gdGhhdC5fbWF4TGlzdGVuZXJzO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmdldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uIGdldE1heExpc3RlbmVycygpIHtcbiAgcmV0dXJuIF9nZXRNYXhMaXN0ZW5lcnModGhpcyk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmVtaXQgPSBmdW5jdGlvbiBlbWl0KHR5cGUpIHtcbiAgdmFyIGFyZ3MgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xuICB2YXIgZG9FcnJvciA9ICh0eXBlID09PSAnZXJyb3InKTtcblxuICB2YXIgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpXG4gICAgZG9FcnJvciA9IChkb0Vycm9yICYmIGV2ZW50cy5lcnJvciA9PT0gdW5kZWZpbmVkKTtcbiAgZWxzZSBpZiAoIWRvRXJyb3IpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIC8vIElmIHRoZXJlIGlzIG5vICdlcnJvcicgZXZlbnQgbGlzdGVuZXIgdGhlbiB0aHJvdy5cbiAgaWYgKGRvRXJyb3IpIHtcbiAgICB2YXIgZXI7XG4gICAgaWYgKGFyZ3MubGVuZ3RoID4gMClcbiAgICAgIGVyID0gYXJnc1swXTtcbiAgICBpZiAoZXIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgLy8gTm90ZTogVGhlIGNvbW1lbnRzIG9uIHRoZSBgdGhyb3dgIGxpbmVzIGFyZSBpbnRlbnRpb25hbCwgdGhleSBzaG93XG4gICAgICAvLyB1cCBpbiBOb2RlJ3Mgb3V0cHV0IGlmIHRoaXMgcmVzdWx0cyBpbiBhbiB1bmhhbmRsZWQgZXhjZXB0aW9uLlxuICAgICAgdGhyb3cgZXI7IC8vIFVuaGFuZGxlZCAnZXJyb3InIGV2ZW50XG4gICAgfVxuICAgIC8vIEF0IGxlYXN0IGdpdmUgc29tZSBraW5kIG9mIGNvbnRleHQgdG8gdGhlIHVzZXJcbiAgICB2YXIgZXJyID0gbmV3IEVycm9yKCdVbmhhbmRsZWQgZXJyb3IuJyArIChlciA/ICcgKCcgKyBlci5tZXNzYWdlICsgJyknIDogJycpKTtcbiAgICBlcnIuY29udGV4dCA9IGVyO1xuICAgIHRocm93IGVycjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgfVxuXG4gIHZhciBoYW5kbGVyID0gZXZlbnRzW3R5cGVdO1xuXG4gIGlmIChoYW5kbGVyID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIGlmICh0eXBlb2YgaGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIFJlZmxlY3RBcHBseShoYW5kbGVyLCB0aGlzLCBhcmdzKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgbGVuID0gaGFuZGxlci5sZW5ndGg7XG4gICAgdmFyIGxpc3RlbmVycyA9IGFycmF5Q2xvbmUoaGFuZGxlciwgbGVuKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKVxuICAgICAgUmVmbGVjdEFwcGx5KGxpc3RlbmVyc1tpXSwgdGhpcywgYXJncyk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmZ1bmN0aW9uIF9hZGRMaXN0ZW5lcih0YXJnZXQsIHR5cGUsIGxpc3RlbmVyLCBwcmVwZW5kKSB7XG4gIHZhciBtO1xuICB2YXIgZXZlbnRzO1xuICB2YXIgZXhpc3Rpbmc7XG5cbiAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG4gIGlmIChldmVudHMgPT09IHVuZGVmaW5lZCkge1xuICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0YXJnZXQuX2V2ZW50c0NvdW50ID0gMDtcbiAgfSBlbHNlIHtcbiAgICAvLyBUbyBhdm9pZCByZWN1cnNpb24gaW4gdGhlIGNhc2UgdGhhdCB0eXBlID09PSBcIm5ld0xpc3RlbmVyXCIhIEJlZm9yZVxuICAgIC8vIGFkZGluZyBpdCB0byB0aGUgbGlzdGVuZXJzLCBmaXJzdCBlbWl0IFwibmV3TGlzdGVuZXJcIi5cbiAgICBpZiAoZXZlbnRzLm5ld0xpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRhcmdldC5lbWl0KCduZXdMaXN0ZW5lcicsIHR5cGUsXG4gICAgICAgICAgICAgICAgICBsaXN0ZW5lci5saXN0ZW5lciA/IGxpc3RlbmVyLmxpc3RlbmVyIDogbGlzdGVuZXIpO1xuXG4gICAgICAvLyBSZS1hc3NpZ24gYGV2ZW50c2AgYmVjYXVzZSBhIG5ld0xpc3RlbmVyIGhhbmRsZXIgY291bGQgaGF2ZSBjYXVzZWQgdGhlXG4gICAgICAvLyB0aGlzLl9ldmVudHMgdG8gYmUgYXNzaWduZWQgdG8gYSBuZXcgb2JqZWN0XG4gICAgICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgICB9XG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV07XG4gIH1cblxuICBpZiAoZXhpc3RpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgIC8vIE9wdGltaXplIHRoZSBjYXNlIG9mIG9uZSBsaXN0ZW5lci4gRG9uJ3QgbmVlZCB0aGUgZXh0cmEgYXJyYXkgb2JqZWN0LlxuICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdID0gbGlzdGVuZXI7XG4gICAgKyt0YXJnZXQuX2V2ZW50c0NvdW50O1xuICB9IGVsc2Uge1xuICAgIGlmICh0eXBlb2YgZXhpc3RpbmcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIEFkZGluZyB0aGUgc2Vjb25kIGVsZW1lbnQsIG5lZWQgdG8gY2hhbmdlIHRvIGFycmF5LlxuICAgICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPVxuICAgICAgICBwcmVwZW5kID8gW2xpc3RlbmVyLCBleGlzdGluZ10gOiBbZXhpc3RpbmcsIGxpc3RlbmVyXTtcbiAgICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgZ290IGFuIGFycmF5LCBqdXN0IGFwcGVuZC5cbiAgICB9IGVsc2UgaWYgKHByZXBlbmQpIHtcbiAgICAgIGV4aXN0aW5nLnVuc2hpZnQobGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBleGlzdGluZy5wdXNoKGxpc3RlbmVyKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBmb3IgbGlzdGVuZXIgbGVha1xuICAgIG0gPSBfZ2V0TWF4TGlzdGVuZXJzKHRhcmdldCk7XG4gICAgaWYgKG0gPiAwICYmIGV4aXN0aW5nLmxlbmd0aCA+IG0gJiYgIWV4aXN0aW5nLndhcm5lZCkge1xuICAgICAgZXhpc3Rpbmcud2FybmVkID0gdHJ1ZTtcbiAgICAgIC8vIE5vIGVycm9yIGNvZGUgZm9yIHRoaXMgc2luY2UgaXQgaXMgYSBXYXJuaW5nXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgICAgIHZhciB3ID0gbmV3IEVycm9yKCdQb3NzaWJsZSBFdmVudEVtaXR0ZXIgbWVtb3J5IGxlYWsgZGV0ZWN0ZWQuICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZy5sZW5ndGggKyAnICcgKyBTdHJpbmcodHlwZSkgKyAnIGxpc3RlbmVycyAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZGVkLiBVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luY3JlYXNlIGxpbWl0Jyk7XG4gICAgICB3Lm5hbWUgPSAnTWF4TGlzdGVuZXJzRXhjZWVkZWRXYXJuaW5nJztcbiAgICAgIHcuZW1pdHRlciA9IHRhcmdldDtcbiAgICAgIHcudHlwZSA9IHR5cGU7XG4gICAgICB3LmNvdW50ID0gZXhpc3RpbmcubGVuZ3RoO1xuICAgICAgUHJvY2Vzc0VtaXRXYXJuaW5nKHcpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXIgPSBmdW5jdGlvbiBhZGRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uID0gRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgcmV0dXJuIF9hZGRMaXN0ZW5lcih0aGlzLCB0eXBlLCBsaXN0ZW5lciwgdHJ1ZSk7XG4gICAgfTtcblxuZnVuY3Rpb24gb25jZVdyYXBwZXIoKSB7XG4gIGlmICghdGhpcy5maXJlZCkge1xuICAgIHRoaXMudGFyZ2V0LnJlbW92ZUxpc3RlbmVyKHRoaXMudHlwZSwgdGhpcy53cmFwRm4pO1xuICAgIHRoaXMuZmlyZWQgPSB0cnVlO1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKVxuICAgICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk7XG4gICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuYXBwbHkodGhpcy50YXJnZXQsIGFyZ3VtZW50cyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX29uY2VXcmFwKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIpIHtcbiAgdmFyIHN0YXRlID0geyBmaXJlZDogZmFsc2UsIHdyYXBGbjogdW5kZWZpbmVkLCB0YXJnZXQ6IHRhcmdldCwgdHlwZTogdHlwZSwgbGlzdGVuZXI6IGxpc3RlbmVyIH07XG4gIHZhciB3cmFwcGVkID0gb25jZVdyYXBwZXIuYmluZChzdGF0ZSk7XG4gIHdyYXBwZWQubGlzdGVuZXIgPSBsaXN0ZW5lcjtcbiAgc3RhdGUud3JhcEZuID0gd3JhcHBlZDtcbiAgcmV0dXJuIHdyYXBwZWQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub25jZSA9IGZ1bmN0aW9uIG9uY2UodHlwZSwgbGlzdGVuZXIpIHtcbiAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG4gIHRoaXMub24odHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kT25jZUxpc3RlbmVyID1cbiAgICBmdW5jdGlvbiBwcmVwZW5kT25jZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgICAgIHRoaXMucHJlcGVuZExpc3RlbmVyKHR5cGUsIF9vbmNlV3JhcCh0aGlzLCB0eXBlLCBsaXN0ZW5lcikpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuLy8gRW1pdHMgYSAncmVtb3ZlTGlzdGVuZXInIGV2ZW50IGlmIGFuZCBvbmx5IGlmIHRoZSBsaXN0ZW5lciB3YXMgcmVtb3ZlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICB2YXIgbGlzdCwgZXZlbnRzLCBwb3NpdGlvbiwgaSwgb3JpZ2luYWxMaXN0ZW5lcjtcblxuICAgICAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgICAgIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgICAgIGlmIChldmVudHMgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgIGxpc3QgPSBldmVudHNbdHlwZV07XG4gICAgICBpZiAobGlzdCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgaWYgKGxpc3QgPT09IGxpc3RlbmVyIHx8IGxpc3QubGlzdGVuZXIgPT09IGxpc3RlbmVyKSB7XG4gICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGRlbGV0ZSBldmVudHNbdHlwZV07XG4gICAgICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lcilcbiAgICAgICAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBsaXN0Lmxpc3RlbmVyIHx8IGxpc3RlbmVyKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbGlzdCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBwb3NpdGlvbiA9IC0xO1xuXG4gICAgICAgIGZvciAoaSA9IGxpc3QubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICBpZiAobGlzdFtpXSA9PT0gbGlzdGVuZXIgfHwgbGlzdFtpXS5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgICAgIG9yaWdpbmFsTGlzdGVuZXIgPSBsaXN0W2ldLmxpc3RlbmVyO1xuICAgICAgICAgICAgcG9zaXRpb24gPSBpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uIDwgMClcbiAgICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgICBpZiAocG9zaXRpb24gPT09IDApXG4gICAgICAgICAgbGlzdC5zaGlmdCgpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBzcGxpY2VPbmUobGlzdCwgcG9zaXRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxpc3QubGVuZ3RoID09PSAxKVxuICAgICAgICAgIGV2ZW50c1t0eXBlXSA9IGxpc3RbMF07XG5cbiAgICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBvcmlnaW5hbExpc3RlbmVyIHx8IGxpc3RlbmVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vZmYgPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycyA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlQWxsTGlzdGVuZXJzKHR5cGUpIHtcbiAgICAgIHZhciBsaXN0ZW5lcnMsIGV2ZW50cywgaTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgLy8gbm90IGxpc3RlbmluZyBmb3IgcmVtb3ZlTGlzdGVuZXIsIG5vIG5lZWQgdG8gZW1pdFxuICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRzW3R5cGVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpZiAoLS10aGlzLl9ldmVudHNDb3VudCA9PT0gMClcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgLy8gZW1pdCByZW1vdmVMaXN0ZW5lciBmb3IgYWxsIGxpc3RlbmVycyBvbiBhbGwgZXZlbnRzXG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGV2ZW50cyk7XG4gICAgICAgIHZhciBrZXk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgICBpZiAoa2V5ID09PSAncmVtb3ZlTGlzdGVuZXInKSBjb250aW51ZTtcbiAgICAgICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycyhrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCdyZW1vdmVMaXN0ZW5lcicpO1xuICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICBsaXN0ZW5lcnMgPSBldmVudHNbdHlwZV07XG5cbiAgICAgIGlmICh0eXBlb2YgbGlzdGVuZXJzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzKTtcbiAgICAgIH0gZWxzZSBpZiAobGlzdGVuZXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gTElGTyBvcmRlclxuICAgICAgICBmb3IgKGkgPSBsaXN0ZW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuZnVuY3Rpb24gX2xpc3RlbmVycyh0YXJnZXQsIHR5cGUsIHVud3JhcCkge1xuICB2YXIgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG5cbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcbiAgaWYgKGV2bGlzdGVuZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gW107XG5cbiAgaWYgKHR5cGVvZiBldmxpc3RlbmVyID09PSAnZnVuY3Rpb24nKVxuICAgIHJldHVybiB1bndyYXAgPyBbZXZsaXN0ZW5lci5saXN0ZW5lciB8fCBldmxpc3RlbmVyXSA6IFtldmxpc3RlbmVyXTtcblxuICByZXR1cm4gdW53cmFwID9cbiAgICB1bndyYXBMaXN0ZW5lcnMoZXZsaXN0ZW5lcikgOiBhcnJheUNsb25lKGV2bGlzdGVuZXIsIGV2bGlzdGVuZXIubGVuZ3RoKTtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lcnMgPSBmdW5jdGlvbiBsaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCB0cnVlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmF3TGlzdGVuZXJzID0gZnVuY3Rpb24gcmF3TGlzdGVuZXJzKHR5cGUpIHtcbiAgcmV0dXJuIF9saXN0ZW5lcnModGhpcywgdHlwZSwgZmFsc2UpO1xufTtcblxuRXZlbnRFbWl0dGVyLmxpc3RlbmVyQ291bnQgPSBmdW5jdGlvbihlbWl0dGVyLCB0eXBlKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5saXN0ZW5lckNvdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGVtaXR0ZXIubGlzdGVuZXJDb3VudCh0eXBlKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbGlzdGVuZXJDb3VudC5jYWxsKGVtaXR0ZXIsIHR5cGUpO1xuICB9XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVyQ291bnQgPSBsaXN0ZW5lckNvdW50O1xuZnVuY3Rpb24gbGlzdGVuZXJDb3VudCh0eXBlKSB7XG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG5cbiAgaWYgKGV2ZW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGV2bGlzdGVuZXIgPSBldmVudHNbdHlwZV07XG5cbiAgICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSBpZiAoZXZsaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZXZsaXN0ZW5lci5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIDA7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZXZlbnROYW1lcyA9IGZ1bmN0aW9uIGV2ZW50TmFtZXMoKSB7XG4gIHJldHVybiB0aGlzLl9ldmVudHNDb3VudCA+IDAgPyBSZWZsZWN0T3duS2V5cyh0aGlzLl9ldmVudHMpIDogW107XG59O1xuXG5mdW5jdGlvbiBhcnJheUNsb25lKGFyciwgbikge1xuICB2YXIgY29weSA9IG5ldyBBcnJheShuKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyArK2kpXG4gICAgY29weVtpXSA9IGFycltpXTtcbiAgcmV0dXJuIGNvcHk7XG59XG5cbmZ1bmN0aW9uIHNwbGljZU9uZShsaXN0LCBpbmRleCkge1xuICBmb3IgKDsgaW5kZXggKyAxIDwgbGlzdC5sZW5ndGg7IGluZGV4KyspXG4gICAgbGlzdFtpbmRleF0gPSBsaXN0W2luZGV4ICsgMV07XG4gIGxpc3QucG9wKCk7XG59XG5cbmZ1bmN0aW9uIHVud3JhcExpc3RlbmVycyhhcnIpIHtcbiAgdmFyIHJldCA9IG5ldyBBcnJheShhcnIubGVuZ3RoKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXQubGVuZ3RoOyArK2kpIHtcbiAgICByZXRbaV0gPSBhcnJbaV0ubGlzdGVuZXIgfHwgYXJyW2ldO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG9uY2UoZW1pdHRlciwgbmFtZSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgIGZ1bmN0aW9uIGVycm9yTGlzdGVuZXIoZXJyKSB7XG4gICAgICBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyKG5hbWUsIHJlc29sdmVyKTtcbiAgICAgIHJlamVjdChlcnIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlc29sdmVyKCkge1xuICAgICAgaWYgKHR5cGVvZiBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgZXJyb3JMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICByZXNvbHZlKFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7XG4gICAgfTtcblxuICAgIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCByZXNvbHZlciwgeyBvbmNlOiB0cnVlIH0pO1xuICAgIGlmIChuYW1lICE9PSAnZXJyb3InKSB7XG4gICAgICBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBlcnJvckxpc3RlbmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRkRXJyb3JIYW5kbGVySWZFdmVudEVtaXR0ZXIoZW1pdHRlciwgaGFuZGxlciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsICdlcnJvcicsIGhhbmRsZXIsIGZsYWdzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgbmFtZSwgbGlzdGVuZXIsIGZsYWdzKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5vbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmIChmbGFncy5vbmNlKSB7XG4gICAgICBlbWl0dGVyLm9uY2UobmFtZSwgbGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbWl0dGVyLm9uKG5hbWUsIGxpc3RlbmVyKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIEV2ZW50VGFyZ2V0IGRvZXMgbm90IGhhdmUgYGVycm9yYCBldmVudCBzZW1hbnRpY3MgbGlrZSBOb2RlXG4gICAgLy8gRXZlbnRFbWl0dGVycywgd2UgZG8gbm90IGxpc3RlbiBmb3IgYGVycm9yYCBldmVudHMgaGVyZS5cbiAgICBlbWl0dGVyLmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgZnVuY3Rpb24gd3JhcExpc3RlbmVyKGFyZykge1xuICAgICAgLy8gSUUgZG9lcyBub3QgaGF2ZSBidWlsdGluIGB7IG9uY2U6IHRydWUgfWAgc3VwcG9ydCBzbyB3ZVxuICAgICAgLy8gaGF2ZSB0byBkbyBpdCBtYW51YWxseS5cbiAgICAgIGlmIChmbGFncy5vbmNlKSB7XG4gICAgICAgIGVtaXR0ZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihuYW1lLCB3cmFwTGlzdGVuZXIpO1xuICAgICAgfVxuICAgICAgbGlzdGVuZXIoYXJnKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJlbWl0dGVyXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEV2ZW50RW1pdHRlci4gUmVjZWl2ZWQgdHlwZSAnICsgdHlwZW9mIGVtaXR0ZXIpO1xuICB9XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbmZ1bmN0aW9uIF9pbmhlcml0c0xvb3NlKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcy5wcm90b3R5cGUpOyBzdWJDbGFzcy5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBzdWJDbGFzczsgc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgY29kZXMgPSB7fTtcblxuZnVuY3Rpb24gY3JlYXRlRXJyb3JUeXBlKGNvZGUsIG1lc3NhZ2UsIEJhc2UpIHtcbiAgaWYgKCFCYXNlKSB7XG4gICAgQmFzZSA9IEVycm9yO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0TWVzc2FnZShhcmcxLCBhcmcyLCBhcmczKSB7XG4gICAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBtZXNzYWdlKGFyZzEsIGFyZzIsIGFyZzMpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBOb2RlRXJyb3IgPVxuICAvKiNfX1BVUkVfXyovXG4gIGZ1bmN0aW9uIChfQmFzZSkge1xuICAgIF9pbmhlcml0c0xvb3NlKE5vZGVFcnJvciwgX0Jhc2UpO1xuXG4gICAgZnVuY3Rpb24gTm9kZUVycm9yKGFyZzEsIGFyZzIsIGFyZzMpIHtcbiAgICAgIHJldHVybiBfQmFzZS5jYWxsKHRoaXMsIGdldE1lc3NhZ2UoYXJnMSwgYXJnMiwgYXJnMykpIHx8IHRoaXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIE5vZGVFcnJvcjtcbiAgfShCYXNlKTtcblxuICBOb2RlRXJyb3IucHJvdG90eXBlLm5hbWUgPSBCYXNlLm5hbWU7XG4gIE5vZGVFcnJvci5wcm90b3R5cGUuY29kZSA9IGNvZGU7XG4gIGNvZGVzW2NvZGVdID0gTm9kZUVycm9yO1xufSAvLyBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYmxvYi92MTAuOC4wL2xpYi9pbnRlcm5hbC9lcnJvcnMuanNcblxuXG5mdW5jdGlvbiBvbmVPZihleHBlY3RlZCwgdGhpbmcpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZXhwZWN0ZWQpKSB7XG4gICAgdmFyIGxlbiA9IGV4cGVjdGVkLmxlbmd0aDtcbiAgICBleHBlY3RlZCA9IGV4cGVjdGVkLm1hcChmdW5jdGlvbiAoaSkge1xuICAgICAgcmV0dXJuIFN0cmluZyhpKTtcbiAgICB9KTtcblxuICAgIGlmIChsZW4gPiAyKSB7XG4gICAgICByZXR1cm4gXCJvbmUgb2YgXCIuY29uY2F0KHRoaW5nLCBcIiBcIikuY29uY2F0KGV4cGVjdGVkLnNsaWNlKDAsIGxlbiAtIDEpLmpvaW4oJywgJyksIFwiLCBvciBcIikgKyBleHBlY3RlZFtsZW4gLSAxXTtcbiAgICB9IGVsc2UgaWYgKGxlbiA9PT0gMikge1xuICAgICAgcmV0dXJuIFwib25lIG9mIFwiLmNvbmNhdCh0aGluZywgXCIgXCIpLmNvbmNhdChleHBlY3RlZFswXSwgXCIgb3IgXCIpLmNvbmNhdChleHBlY3RlZFsxXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBcIm9mIFwiLmNvbmNhdCh0aGluZywgXCIgXCIpLmNvbmNhdChleHBlY3RlZFswXSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBcIm9mIFwiLmNvbmNhdCh0aGluZywgXCIgXCIpLmNvbmNhdChTdHJpbmcoZXhwZWN0ZWQpKTtcbiAgfVxufSAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9TdHJpbmcvc3RhcnRzV2l0aFxuXG5cbmZ1bmN0aW9uIHN0YXJ0c1dpdGgoc3RyLCBzZWFyY2gsIHBvcykge1xuICByZXR1cm4gc3RyLnN1YnN0cighcG9zIHx8IHBvcyA8IDAgPyAwIDogK3Bvcywgc2VhcmNoLmxlbmd0aCkgPT09IHNlYXJjaDtcbn0gLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvU3RyaW5nL2VuZHNXaXRoXG5cblxuZnVuY3Rpb24gZW5kc1dpdGgoc3RyLCBzZWFyY2gsIHRoaXNfbGVuKSB7XG4gIGlmICh0aGlzX2xlbiA9PT0gdW5kZWZpbmVkIHx8IHRoaXNfbGVuID4gc3RyLmxlbmd0aCkge1xuICAgIHRoaXNfbGVuID0gc3RyLmxlbmd0aDtcbiAgfVxuXG4gIHJldHVybiBzdHIuc3Vic3RyaW5nKHRoaXNfbGVuIC0gc2VhcmNoLmxlbmd0aCwgdGhpc19sZW4pID09PSBzZWFyY2g7XG59IC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL1N0cmluZy9pbmNsdWRlc1xuXG5cbmZ1bmN0aW9uIGluY2x1ZGVzKHN0ciwgc2VhcmNoLCBzdGFydCkge1xuICBpZiAodHlwZW9mIHN0YXJ0ICE9PSAnbnVtYmVyJykge1xuICAgIHN0YXJ0ID0gMDtcbiAgfVxuXG4gIGlmIChzdGFydCArIHNlYXJjaC5sZW5ndGggPiBzdHIubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBzdHIuaW5kZXhPZihzZWFyY2gsIHN0YXJ0KSAhPT0gLTE7XG4gIH1cbn1cblxuY3JlYXRlRXJyb3JUeXBlKCdFUlJfSU5WQUxJRF9PUFRfVkFMVUUnLCBmdW5jdGlvbiAobmFtZSwgdmFsdWUpIHtcbiAgcmV0dXJuICdUaGUgdmFsdWUgXCInICsgdmFsdWUgKyAnXCIgaXMgaW52YWxpZCBmb3Igb3B0aW9uIFwiJyArIG5hbWUgKyAnXCInO1xufSwgVHlwZUVycm9yKTtcbmNyZWF0ZUVycm9yVHlwZSgnRVJSX0lOVkFMSURfQVJHX1RZUEUnLCBmdW5jdGlvbiAobmFtZSwgZXhwZWN0ZWQsIGFjdHVhbCkge1xuICAvLyBkZXRlcm1pbmVyOiAnbXVzdCBiZScgb3IgJ211c3Qgbm90IGJlJ1xuICB2YXIgZGV0ZXJtaW5lcjtcblxuICBpZiAodHlwZW9mIGV4cGVjdGVkID09PSAnc3RyaW5nJyAmJiBzdGFydHNXaXRoKGV4cGVjdGVkLCAnbm90ICcpKSB7XG4gICAgZGV0ZXJtaW5lciA9ICdtdXN0IG5vdCBiZSc7XG4gICAgZXhwZWN0ZWQgPSBleHBlY3RlZC5yZXBsYWNlKC9ebm90IC8sICcnKTtcbiAgfSBlbHNlIHtcbiAgICBkZXRlcm1pbmVyID0gJ211c3QgYmUnO1xuICB9XG5cbiAgdmFyIG1zZztcblxuICBpZiAoZW5kc1dpdGgobmFtZSwgJyBhcmd1bWVudCcpKSB7XG4gICAgLy8gRm9yIGNhc2VzIGxpa2UgJ2ZpcnN0IGFyZ3VtZW50J1xuICAgIG1zZyA9IFwiVGhlIFwiLmNvbmNhdChuYW1lLCBcIiBcIikuY29uY2F0KGRldGVybWluZXIsIFwiIFwiKS5jb25jYXQob25lT2YoZXhwZWN0ZWQsICd0eXBlJykpO1xuICB9IGVsc2Uge1xuICAgIHZhciB0eXBlID0gaW5jbHVkZXMobmFtZSwgJy4nKSA/ICdwcm9wZXJ0eScgOiAnYXJndW1lbnQnO1xuICAgIG1zZyA9IFwiVGhlIFxcXCJcIi5jb25jYXQobmFtZSwgXCJcXFwiIFwiKS5jb25jYXQodHlwZSwgXCIgXCIpLmNvbmNhdChkZXRlcm1pbmVyLCBcIiBcIikuY29uY2F0KG9uZU9mKGV4cGVjdGVkLCAndHlwZScpKTtcbiAgfVxuXG4gIG1zZyArPSBcIi4gUmVjZWl2ZWQgdHlwZSBcIi5jb25jYXQodHlwZW9mIGFjdHVhbCk7XG4gIHJldHVybiBtc2c7XG59LCBUeXBlRXJyb3IpO1xuY3JlYXRlRXJyb3JUeXBlKCdFUlJfU1RSRUFNX1BVU0hfQUZURVJfRU9GJywgJ3N0cmVhbS5wdXNoKCkgYWZ0ZXIgRU9GJyk7XG5jcmVhdGVFcnJvclR5cGUoJ0VSUl9NRVRIT0RfTk9UX0lNUExFTUVOVEVEJywgZnVuY3Rpb24gKG5hbWUpIHtcbiAgcmV0dXJuICdUaGUgJyArIG5hbWUgKyAnIG1ldGhvZCBpcyBub3QgaW1wbGVtZW50ZWQnO1xufSk7XG5jcmVhdGVFcnJvclR5cGUoJ0VSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFJywgJ1ByZW1hdHVyZSBjbG9zZScpO1xuY3JlYXRlRXJyb3JUeXBlKCdFUlJfU1RSRUFNX0RFU1RST1lFRCcsIGZ1bmN0aW9uIChuYW1lKSB7XG4gIHJldHVybiAnQ2Fubm90IGNhbGwgJyArIG5hbWUgKyAnIGFmdGVyIGEgc3RyZWFtIHdhcyBkZXN0cm95ZWQnO1xufSk7XG5jcmVhdGVFcnJvclR5cGUoJ0VSUl9NVUxUSVBMRV9DQUxMQkFDSycsICdDYWxsYmFjayBjYWxsZWQgbXVsdGlwbGUgdGltZXMnKTtcbmNyZWF0ZUVycm9yVHlwZSgnRVJSX1NUUkVBTV9DQU5OT1RfUElQRScsICdDYW5ub3QgcGlwZSwgbm90IHJlYWRhYmxlJyk7XG5jcmVhdGVFcnJvclR5cGUoJ0VSUl9TVFJFQU1fV1JJVEVfQUZURVJfRU5EJywgJ3dyaXRlIGFmdGVyIGVuZCcpO1xuY3JlYXRlRXJyb3JUeXBlKCdFUlJfU1RSRUFNX05VTExfVkFMVUVTJywgJ01heSBub3Qgd3JpdGUgbnVsbCB2YWx1ZXMgdG8gc3RyZWFtJywgVHlwZUVycm9yKTtcbmNyZWF0ZUVycm9yVHlwZSgnRVJSX1VOS05PV05fRU5DT0RJTkcnLCBmdW5jdGlvbiAoYXJnKSB7XG4gIHJldHVybiAnVW5rbm93biBlbmNvZGluZzogJyArIGFyZztcbn0sIFR5cGVFcnJvcik7XG5jcmVhdGVFcnJvclR5cGUoJ0VSUl9TVFJFQU1fVU5TSElGVF9BRlRFUl9FTkRfRVZFTlQnLCAnc3RyZWFtLnVuc2hpZnQoKSBhZnRlciBlbmQgZXZlbnQnKTtcbm1vZHVsZS5leHBvcnRzLmNvZGVzID0gY29kZXM7XG4iLCIvKipcbiAqIEEgSmF2YVNjcmlwdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU2VjdXJlIEhhc2ggQWxnb3JpdGhtLCBTSEEtMjU2LCBhcyBkZWZpbmVkXG4gKiBpbiBGSVBTIDE4MC0yXG4gKiBWZXJzaW9uIDIuMi1iZXRhIENvcHlyaWdodCBBbmdlbCBNYXJpbiwgUGF1bCBKb2huc3RvbiAyMDAwIC0gMjAwOS5cbiAqIE90aGVyIGNvbnRyaWJ1dG9yczogR3JlZyBIb2x0LCBBbmRyZXcgS2VwZXJ0LCBZZG5hciwgTG9zdGluZXRcbiAqXG4gKi9cblxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxudmFyIEhhc2ggPSByZXF1aXJlKCcuL2hhc2gnKVxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG5cbnZhciBLID0gW1xuICAweDQyOEEyRjk4LCAweDcxMzc0NDkxLCAweEI1QzBGQkNGLCAweEU5QjVEQkE1LFxuICAweDM5NTZDMjVCLCAweDU5RjExMUYxLCAweDkyM0Y4MkE0LCAweEFCMUM1RUQ1LFxuICAweEQ4MDdBQTk4LCAweDEyODM1QjAxLCAweDI0MzE4NUJFLCAweDU1MEM3REMzLFxuICAweDcyQkU1RDc0LCAweDgwREVCMUZFLCAweDlCREMwNkE3LCAweEMxOUJGMTc0LFxuICAweEU0OUI2OUMxLCAweEVGQkU0Nzg2LCAweDBGQzE5REM2LCAweDI0MENBMUNDLFxuICAweDJERTkyQzZGLCAweDRBNzQ4NEFBLCAweDVDQjBBOURDLCAweDc2Rjk4OERBLFxuICAweDk4M0U1MTUyLCAweEE4MzFDNjZELCAweEIwMDMyN0M4LCAweEJGNTk3RkM3LFxuICAweEM2RTAwQkYzLCAweEQ1QTc5MTQ3LCAweDA2Q0E2MzUxLCAweDE0MjkyOTY3LFxuICAweDI3QjcwQTg1LCAweDJFMUIyMTM4LCAweDREMkM2REZDLCAweDUzMzgwRDEzLFxuICAweDY1MEE3MzU0LCAweDc2NkEwQUJCLCAweDgxQzJDOTJFLCAweDkyNzIyQzg1LFxuICAweEEyQkZFOEExLCAweEE4MUE2NjRCLCAweEMyNEI4QjcwLCAweEM3NkM1MUEzLFxuICAweEQxOTJFODE5LCAweEQ2OTkwNjI0LCAweEY0MEUzNTg1LCAweDEwNkFBMDcwLFxuICAweDE5QTRDMTE2LCAweDFFMzc2QzA4LCAweDI3NDg3NzRDLCAweDM0QjBCQ0I1LFxuICAweDM5MUMwQ0IzLCAweDRFRDhBQTRBLCAweDVCOUNDQTRGLCAweDY4MkU2RkYzLFxuICAweDc0OEY4MkVFLCAweDc4QTU2MzZGLCAweDg0Qzg3ODE0LCAweDhDQzcwMjA4LFxuICAweDkwQkVGRkZBLCAweEE0NTA2Q0VCLCAweEJFRjlBM0Y3LCAweEM2NzE3OEYyXG5dXG5cbnZhciBXID0gbmV3IEFycmF5KDY0KVxuXG5mdW5jdGlvbiBTaGEyNTYgKCkge1xuICB0aGlzLmluaXQoKVxuXG4gIHRoaXMuX3cgPSBXIC8vIG5ldyBBcnJheSg2NClcblxuICBIYXNoLmNhbGwodGhpcywgNjQsIDU2KVxufVxuXG5pbmhlcml0cyhTaGEyNTYsIEhhc2gpXG5cblNoYTI1Ni5wcm90b3R5cGUuaW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5fYSA9IDB4NmEwOWU2NjdcbiAgdGhpcy5fYiA9IDB4YmI2N2FlODVcbiAgdGhpcy5fYyA9IDB4M2M2ZWYzNzJcbiAgdGhpcy5fZCA9IDB4YTU0ZmY1M2FcbiAgdGhpcy5fZSA9IDB4NTEwZTUyN2ZcbiAgdGhpcy5fZiA9IDB4OWIwNTY4OGNcbiAgdGhpcy5fZyA9IDB4MWY4M2Q5YWJcbiAgdGhpcy5faCA9IDB4NWJlMGNkMTlcblxuICByZXR1cm4gdGhpc1xufVxuXG5mdW5jdGlvbiBjaCAoeCwgeSwgeikge1xuICByZXR1cm4geiBeICh4ICYgKHkgXiB6KSlcbn1cblxuZnVuY3Rpb24gbWFqICh4LCB5LCB6KSB7XG4gIHJldHVybiAoeCAmIHkpIHwgKHogJiAoeCB8IHkpKVxufVxuXG5mdW5jdGlvbiBzaWdtYTAgKHgpIHtcbiAgcmV0dXJuICh4ID4+PiAyIHwgeCA8PCAzMCkgXiAoeCA+Pj4gMTMgfCB4IDw8IDE5KSBeICh4ID4+PiAyMiB8IHggPDwgMTApXG59XG5cbmZ1bmN0aW9uIHNpZ21hMSAoeCkge1xuICByZXR1cm4gKHggPj4+IDYgfCB4IDw8IDI2KSBeICh4ID4+PiAxMSB8IHggPDwgMjEpIF4gKHggPj4+IDI1IHwgeCA8PCA3KVxufVxuXG5mdW5jdGlvbiBnYW1tYTAgKHgpIHtcbiAgcmV0dXJuICh4ID4+PiA3IHwgeCA8PCAyNSkgXiAoeCA+Pj4gMTggfCB4IDw8IDE0KSBeICh4ID4+PiAzKVxufVxuXG5mdW5jdGlvbiBnYW1tYTEgKHgpIHtcbiAgcmV0dXJuICh4ID4+PiAxNyB8IHggPDwgMTUpIF4gKHggPj4+IDE5IHwgeCA8PCAxMykgXiAoeCA+Pj4gMTApXG59XG5cblNoYTI1Ni5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uIChNKSB7XG4gIHZhciBXID0gdGhpcy5fd1xuXG4gIHZhciBhID0gdGhpcy5fYSB8IDBcbiAgdmFyIGIgPSB0aGlzLl9iIHwgMFxuICB2YXIgYyA9IHRoaXMuX2MgfCAwXG4gIHZhciBkID0gdGhpcy5fZCB8IDBcbiAgdmFyIGUgPSB0aGlzLl9lIHwgMFxuICB2YXIgZiA9IHRoaXMuX2YgfCAwXG4gIHZhciBnID0gdGhpcy5fZyB8IDBcbiAgdmFyIGggPSB0aGlzLl9oIHwgMFxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgMTY7ICsraSkgV1tpXSA9IE0ucmVhZEludDMyQkUoaSAqIDQpXG4gIGZvciAoOyBpIDwgNjQ7ICsraSkgV1tpXSA9IChnYW1tYTEoV1tpIC0gMl0pICsgV1tpIC0gN10gKyBnYW1tYTAoV1tpIC0gMTVdKSArIFdbaSAtIDE2XSkgfCAwXG5cbiAgZm9yICh2YXIgaiA9IDA7IGogPCA2NDsgKytqKSB7XG4gICAgdmFyIFQxID0gKGggKyBzaWdtYTEoZSkgKyBjaChlLCBmLCBnKSArIEtbal0gKyBXW2pdKSB8IDBcbiAgICB2YXIgVDIgPSAoc2lnbWEwKGEpICsgbWFqKGEsIGIsIGMpKSB8IDBcblxuICAgIGggPSBnXG4gICAgZyA9IGZcbiAgICBmID0gZVxuICAgIGUgPSAoZCArIFQxKSB8IDBcbiAgICBkID0gY1xuICAgIGMgPSBiXG4gICAgYiA9IGFcbiAgICBhID0gKFQxICsgVDIpIHwgMFxuICB9XG5cbiAgdGhpcy5fYSA9IChhICsgdGhpcy5fYSkgfCAwXG4gIHRoaXMuX2IgPSAoYiArIHRoaXMuX2IpIHwgMFxuICB0aGlzLl9jID0gKGMgKyB0aGlzLl9jKSB8IDBcbiAgdGhpcy5fZCA9IChkICsgdGhpcy5fZCkgfCAwXG4gIHRoaXMuX2UgPSAoZSArIHRoaXMuX2UpIHwgMFxuICB0aGlzLl9mID0gKGYgKyB0aGlzLl9mKSB8IDBcbiAgdGhpcy5fZyA9IChnICsgdGhpcy5fZykgfCAwXG4gIHRoaXMuX2ggPSAoaCArIHRoaXMuX2gpIHwgMFxufVxuXG5TaGEyNTYucHJvdG90eXBlLl9oYXNoID0gZnVuY3Rpb24gKCkge1xuICB2YXIgSCA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSgzMilcblxuICBILndyaXRlSW50MzJCRSh0aGlzLl9hLCAwKVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9iLCA0KVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9jLCA4KVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9kLCAxMilcbiAgSC53cml0ZUludDMyQkUodGhpcy5fZSwgMTYpXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2YsIDIwKVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9nLCAyNClcbiAgSC53cml0ZUludDMyQkUodGhpcy5faCwgMjgpXG5cbiAgcmV0dXJuIEhcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBTaGEyNTZcbiIsInZhciBlc2NhcGVGb3JYTUwgPSByZXF1aXJlKCcuL2VzY2FwZUZvclhNTCcpO1xudmFyIFN0cmVhbSA9IHJlcXVpcmUoJ3N0cmVhbScpLlN0cmVhbTtcblxudmFyIERFRkFVTFRfSU5ERU5UID0gJyAgICAnO1xuXG5mdW5jdGlvbiB4bWwoaW5wdXQsIG9wdGlvbnMpIHtcblxuICAgIGlmICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGluZGVudDogb3B0aW9uc1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHZhciBzdHJlYW0gICAgICA9IG9wdGlvbnMuc3RyZWFtID8gbmV3IFN0cmVhbSgpIDogbnVsbCxcbiAgICAgICAgb3V0cHV0ICAgICAgPSBcIlwiLFxuICAgICAgICBpbnRlcnJ1cHRlZCA9IGZhbHNlLFxuICAgICAgICBpbmRlbnQgICAgICA9ICFvcHRpb25zLmluZGVudCA/ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG9wdGlvbnMuaW5kZW50ID09PSB0cnVlID8gREVGQVVMVF9JTkRFTlRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG9wdGlvbnMuaW5kZW50LFxuICAgICAgICBpbnN0YW50ICAgICA9IHRydWU7XG5cblxuICAgIGZ1bmN0aW9uIGRlbGF5IChmdW5jKSB7XG4gICAgICAgIGlmICghaW5zdGFudCkge1xuICAgICAgICAgICAgZnVuYygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJvY2Vzcy5uZXh0VGljayhmdW5jKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFwcGVuZCAoaW50ZXJydXB0LCBvdXQpIHtcbiAgICAgICAgaWYgKG91dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBvdXRwdXQgKz0gb3V0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbnRlcnJ1cHQgJiYgIWludGVycnVwdGVkKSB7XG4gICAgICAgICAgICBzdHJlYW0gPSBzdHJlYW0gfHwgbmV3IFN0cmVhbSgpO1xuICAgICAgICAgICAgaW50ZXJydXB0ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbnRlcnJ1cHQgJiYgaW50ZXJydXB0ZWQpIHtcbiAgICAgICAgICAgIHZhciBkYXRhID0gb3V0cHV0O1xuICAgICAgICAgICAgZGVsYXkoZnVuY3Rpb24gKCkgeyBzdHJlYW0uZW1pdCgnZGF0YScsIGRhdGEpIH0pO1xuICAgICAgICAgICAgb3V0cHV0ID0gXCJcIjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkZCAodmFsdWUsIGxhc3QpIHtcbiAgICAgICAgZm9ybWF0KGFwcGVuZCwgcmVzb2x2ZSh2YWx1ZSwgaW5kZW50LCBpbmRlbnQgPyAxIDogMCksIGxhc3QpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVuZCgpIHtcbiAgICAgICAgaWYgKHN0cmVhbSkge1xuICAgICAgICAgICAgdmFyIGRhdGEgPSBvdXRwdXQ7XG4gICAgICAgICAgICBkZWxheShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHN0cmVhbS5lbWl0KCdkYXRhJywgZGF0YSk7XG4gICAgICAgICAgICAgIHN0cmVhbS5lbWl0KCdlbmQnKTtcbiAgICAgICAgICAgICAgc3RyZWFtLnJlYWRhYmxlID0gZmFsc2U7XG4gICAgICAgICAgICAgIHN0cmVhbS5lbWl0KCdjbG9zZScpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRYbWxEZWNsYXJhdGlvbihkZWNsYXJhdGlvbikge1xuICAgICAgICB2YXIgZW5jb2RpbmcgPSBkZWNsYXJhdGlvbi5lbmNvZGluZyB8fCAnVVRGLTgnLFxuICAgICAgICAgICAgYXR0ciA9ICB7IHZlcnNpb246ICcxLjAnLCBlbmNvZGluZzogZW5jb2RpbmcgfTtcblxuICAgICAgICBpZiAoZGVjbGFyYXRpb24uc3RhbmRhbG9uZSkge1xuICAgICAgICAgICAgYXR0ci5zdGFuZGFsb25lID0gZGVjbGFyYXRpb24uc3RhbmRhbG9uZVxuICAgICAgICB9XG5cbiAgICAgICAgYWRkKHsnP3htbCc6IHsgX2F0dHI6IGF0dHIgfSB9KTtcbiAgICAgICAgb3V0cHV0ID0gb3V0cHV0LnJlcGxhY2UoJy8+JywgJz8+Jyk7XG4gICAgfVxuXG4gICAgLy8gZGlzYWJsZSBkZWxheSBkZWxheWVkXG4gICAgZGVsYXkoZnVuY3Rpb24gKCkgeyBpbnN0YW50ID0gZmFsc2UgfSk7XG5cbiAgICBpZiAob3B0aW9ucy5kZWNsYXJhdGlvbikge1xuICAgICAgICBhZGRYbWxEZWNsYXJhdGlvbihvcHRpb25zLmRlY2xhcmF0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAoaW5wdXQgJiYgaW5wdXQuZm9yRWFjaCkge1xuICAgICAgICBpbnB1dC5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSwgaSkge1xuICAgICAgICAgICAgdmFyIGxhc3Q7XG4gICAgICAgICAgICBpZiAoaSArIDEgPT09IGlucHV0Lmxlbmd0aClcbiAgICAgICAgICAgICAgICBsYXN0ID0gZW5kO1xuICAgICAgICAgICAgYWRkKHZhbHVlLCBsYXN0KTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgYWRkKGlucHV0LCBlbmQpO1xuICAgIH1cblxuICAgIGlmIChzdHJlYW0pIHtcbiAgICAgICAgc3RyZWFtLnJlYWRhYmxlID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHN0cmVhbTtcbiAgICB9XG4gICAgcmV0dXJuIG91dHB1dDtcbn1cblxuZnVuY3Rpb24gZWxlbWVudCAoLyppbnB1dCwg4oCmKi8pIHtcbiAgICB2YXIgaW5wdXQgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpLFxuICAgICAgICBzZWxmID0ge1xuICAgICAgICAgICAgX2VsZW06ICByZXNvbHZlKGlucHV0KVxuICAgICAgICB9O1xuXG4gICAgc2VsZi5wdXNoID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgIGlmICghdGhpcy5hcHBlbmQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIm5vdCBhc3NpZ25lZCB0byBhIHBhcmVudCFcIik7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRoYXQgPSB0aGlzO1xuICAgICAgICB2YXIgaW5kZW50ID0gdGhpcy5fZWxlbS5pbmRlbnQ7XG4gICAgICAgIGZvcm1hdCh0aGlzLmFwcGVuZCwgcmVzb2x2ZShcbiAgICAgICAgICAgIGlucHV0LCBpbmRlbnQsIHRoaXMuX2VsZW0uaWNvdW50ICsgKGluZGVudCA/IDEgOiAwKSksXG4gICAgICAgICAgICBmdW5jdGlvbiAoKSB7IHRoYXQuYXBwZW5kKHRydWUpIH0pO1xuICAgIH07XG5cbiAgICBzZWxmLmNsb3NlID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgIGlmIChpbnB1dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnB1c2goaW5wdXQpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmVuZCkge1xuICAgICAgICAgICAgdGhpcy5lbmQoKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gc2VsZjtcbn1cblxuZnVuY3Rpb24gY3JlYXRlX2luZGVudChjaGFyYWN0ZXIsIGNvdW50KSB7XG4gICAgcmV0dXJuIChuZXcgQXJyYXkoY291bnQgfHwgMCkuam9pbihjaGFyYWN0ZXIgfHwgJycpKVxufVxuXG5mdW5jdGlvbiByZXNvbHZlKGRhdGEsIGluZGVudCwgaW5kZW50X2NvdW50KSB7XG4gICAgaW5kZW50X2NvdW50ID0gaW5kZW50X2NvdW50IHx8IDA7XG4gICAgdmFyIGluZGVudF9zcGFjZXMgPSBjcmVhdGVfaW5kZW50KGluZGVudCwgaW5kZW50X2NvdW50KTtcbiAgICB2YXIgbmFtZTtcbiAgICB2YXIgdmFsdWVzID0gZGF0YTtcbiAgICB2YXIgaW50ZXJydXB0ID0gZmFsc2U7XG5cbiAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZGF0YSk7XG4gICAgICAgIG5hbWUgPSBrZXlzWzBdO1xuICAgICAgICB2YWx1ZXMgPSBkYXRhW25hbWVdO1xuXG4gICAgICAgIGlmICh2YWx1ZXMgJiYgdmFsdWVzLl9lbGVtKSB7XG4gICAgICAgICAgICB2YWx1ZXMuX2VsZW0ubmFtZSA9IG5hbWU7XG4gICAgICAgICAgICB2YWx1ZXMuX2VsZW0uaWNvdW50ID0gaW5kZW50X2NvdW50O1xuICAgICAgICAgICAgdmFsdWVzLl9lbGVtLmluZGVudCA9IGluZGVudDtcbiAgICAgICAgICAgIHZhbHVlcy5fZWxlbS5pbmRlbnRzID0gaW5kZW50X3NwYWNlcztcbiAgICAgICAgICAgIHZhbHVlcy5fZWxlbS5pbnRlcnJ1cHQgPSB2YWx1ZXM7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWVzLl9lbGVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGF0dHJpYnV0ZXMgPSBbXSxcbiAgICAgICAgY29udGVudCA9IFtdO1xuXG4gICAgdmFyIGlzU3RyaW5nQ29udGVudDtcblxuICAgIGZ1bmN0aW9uIGdldF9hdHRyaWJ1dGVzKG9iail7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqKTtcbiAgICAgICAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtleSl7XG4gICAgICAgICAgICBhdHRyaWJ1dGVzLnB1c2goYXR0cmlidXRlKGtleSwgb2JqW2tleV0pKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3dpdGNoKHR5cGVvZiB2YWx1ZXMpIHtcbiAgICAgICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgICAgICAgIGlmICh2YWx1ZXMgPT09IG51bGwpIGJyZWFrO1xuXG4gICAgICAgICAgICBpZiAodmFsdWVzLl9hdHRyKSB7XG4gICAgICAgICAgICAgICAgZ2V0X2F0dHJpYnV0ZXModmFsdWVzLl9hdHRyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHZhbHVlcy5fY2RhdGEpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50LnB1c2goXG4gICAgICAgICAgICAgICAgICAgICgnPCFbQ0RBVEFbJyArIHZhbHVlcy5fY2RhdGEpLnJlcGxhY2UoL1xcXVxcXT4vZywgJ11dXV0+PCFbQ0RBVEFbPicpICsgJ11dPidcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodmFsdWVzLmZvckVhY2gpIHtcbiAgICAgICAgICAgICAgICBpc1N0cmluZ0NvbnRlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb250ZW50LnB1c2goJycpO1xuICAgICAgICAgICAgICAgIHZhbHVlcy5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfbmFtZSA9IE9iamVjdC5rZXlzKHZhbHVlKVswXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9uYW1lID09ICdfYXR0cicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRfYXR0cmlidXRlcyh2YWx1ZS5fYXR0cik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQucHVzaChyZXNvbHZlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwgaW5kZW50LCBpbmRlbnRfY291bnQgKyAxKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvL3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzU3RyaW5nQ29udGVudD10cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5wdXNoKGVzY2FwZUZvclhNTCh2YWx1ZSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIWlzU3RyaW5nQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50LnB1c2goJycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vc3RyaW5nXG4gICAgICAgICAgICBjb250ZW50LnB1c2goZXNjYXBlRm9yWE1MKHZhbHVlcykpO1xuXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogICAgICAgbmFtZSxcbiAgICAgICAgaW50ZXJydXB0OiAgaW50ZXJydXB0LFxuICAgICAgICBhdHRyaWJ1dGVzOiBhdHRyaWJ1dGVzLFxuICAgICAgICBjb250ZW50OiAgICBjb250ZW50LFxuICAgICAgICBpY291bnQ6ICAgICBpbmRlbnRfY291bnQsXG4gICAgICAgIGluZGVudHM6ICAgIGluZGVudF9zcGFjZXMsXG4gICAgICAgIGluZGVudDogICAgIGluZGVudFxuICAgIH07XG59XG5cbmZ1bmN0aW9uIGZvcm1hdChhcHBlbmQsIGVsZW0sIGVuZCkge1xuXG4gICAgaWYgKHR5cGVvZiBlbGVtICE9ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBhcHBlbmQoZmFsc2UsIGVsZW0pO1xuICAgIH1cblxuICAgIHZhciBsZW4gPSBlbGVtLmludGVycnVwdCA/IDEgOiBlbGVtLmNvbnRlbnQubGVuZ3RoO1xuXG4gICAgZnVuY3Rpb24gcHJvY2VlZCAoKSB7XG4gICAgICAgIHdoaWxlIChlbGVtLmNvbnRlbnQubGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBlbGVtLmNvbnRlbnQuc2hpZnQoKTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIGNvbnRpbnVlO1xuICAgICAgICAgICAgaWYgKGludGVycnVwdCh2YWx1ZSkpIHJldHVybjtcblxuICAgICAgICAgICAgZm9ybWF0KGFwcGVuZCwgdmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXBwZW5kKGZhbHNlLCAobGVuID4gMSA/IGVsZW0uaW5kZW50cyA6ICcnKVxuICAgICAgICAgICAgKyAoZWxlbS5uYW1lID8gJzwvJyArIGVsZW0ubmFtZSArICc+JyA6ICcnKVxuICAgICAgICAgICAgKyAoZWxlbS5pbmRlbnQgJiYgIWVuZCA/ICdcXG4nIDogJycpKTtcblxuICAgICAgICBpZiAoZW5kKSB7XG4gICAgICAgICAgICBlbmQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGludGVycnVwdCh2YWx1ZSkge1xuICAgICAgIGlmICh2YWx1ZS5pbnRlcnJ1cHQpIHtcbiAgICAgICAgICAgdmFsdWUuaW50ZXJydXB0LmFwcGVuZCA9IGFwcGVuZDtcbiAgICAgICAgICAgdmFsdWUuaW50ZXJydXB0LmVuZCA9IHByb2NlZWQ7XG4gICAgICAgICAgIHZhbHVlLmludGVycnVwdCA9IGZhbHNlO1xuICAgICAgICAgICBhcHBlbmQodHJ1ZSk7XG4gICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgIH1cbiAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgYXBwZW5kKGZhbHNlLCBlbGVtLmluZGVudHNcbiAgICAgICAgKyAoZWxlbS5uYW1lID8gJzwnICsgZWxlbS5uYW1lIDogJycpXG4gICAgICAgICsgKGVsZW0uYXR0cmlidXRlcy5sZW5ndGggPyAnICcgKyBlbGVtLmF0dHJpYnV0ZXMuam9pbignICcpIDogJycpXG4gICAgICAgICsgKGxlbiA/IChlbGVtLm5hbWUgPyAnPicgOiAnJykgOiAoZWxlbS5uYW1lID8gJy8+JyA6ICcnKSlcbiAgICAgICAgKyAoZWxlbS5pbmRlbnQgJiYgbGVuID4gMSA/ICdcXG4nIDogJycpKTtcblxuICAgIGlmICghbGVuKSB7XG4gICAgICAgIHJldHVybiBhcHBlbmQoZmFsc2UsIGVsZW0uaW5kZW50ID8gJ1xcbicgOiAnJyk7XG4gICAgfVxuXG4gICAgaWYgKCFpbnRlcnJ1cHQoZWxlbSkpIHtcbiAgICAgICAgcHJvY2VlZCgpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gYXR0cmlidXRlKGtleSwgdmFsdWUpIHtcbiAgICByZXR1cm4ga2V5ICsgJz0nICsgJ1wiJyArIGVzY2FwZUZvclhNTCh2YWx1ZSkgKyAnXCInO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHhtbDtcbm1vZHVsZS5leHBvcnRzLmVsZW1lbnQgPSBtb2R1bGUuZXhwb3J0cy5FbGVtZW50ID0gZWxlbWVudDtcbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4ndXNlIHN0cmljdCc7XG5cbi8qPHJlcGxhY2VtZW50PiovXG5cbnZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlcjtcbi8qPC9yZXBsYWNlbWVudD4qL1xuXG52YXIgaXNFbmNvZGluZyA9IEJ1ZmZlci5pc0VuY29kaW5nIHx8IGZ1bmN0aW9uIChlbmNvZGluZykge1xuICBlbmNvZGluZyA9ICcnICsgZW5jb2Rpbmc7XG4gIHN3aXRjaCAoZW5jb2RpbmcgJiYgZW5jb2RpbmcudG9Mb3dlckNhc2UoKSkge1xuICAgIGNhc2UgJ2hleCc6Y2FzZSAndXRmOCc6Y2FzZSAndXRmLTgnOmNhc2UgJ2FzY2lpJzpjYXNlICdiaW5hcnknOmNhc2UgJ2Jhc2U2NCc6Y2FzZSAndWNzMic6Y2FzZSAndWNzLTInOmNhc2UgJ3V0ZjE2bGUnOmNhc2UgJ3V0Zi0xNmxlJzpjYXNlICdyYXcnOlxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxuZnVuY3Rpb24gX25vcm1hbGl6ZUVuY29kaW5nKGVuYykge1xuICBpZiAoIWVuYykgcmV0dXJuICd1dGY4JztcbiAgdmFyIHJldHJpZWQ7XG4gIHdoaWxlICh0cnVlKSB7XG4gICAgc3dpdGNoIChlbmMpIHtcbiAgICAgIGNhc2UgJ3V0ZjgnOlxuICAgICAgY2FzZSAndXRmLTgnOlxuICAgICAgICByZXR1cm4gJ3V0ZjgnO1xuICAgICAgY2FzZSAndWNzMic6XG4gICAgICBjYXNlICd1Y3MtMic6XG4gICAgICBjYXNlICd1dGYxNmxlJzpcbiAgICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgICAgcmV0dXJuICd1dGYxNmxlJztcbiAgICAgIGNhc2UgJ2xhdGluMSc6XG4gICAgICBjYXNlICdiaW5hcnknOlxuICAgICAgICByZXR1cm4gJ2xhdGluMSc7XG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgY2FzZSAnYXNjaWknOlxuICAgICAgY2FzZSAnaGV4JzpcbiAgICAgICAgcmV0dXJuIGVuYztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChyZXRyaWVkKSByZXR1cm47IC8vIHVuZGVmaW5lZFxuICAgICAgICBlbmMgPSAoJycgKyBlbmMpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHJpZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxufTtcblxuLy8gRG8gbm90IGNhY2hlIGBCdWZmZXIuaXNFbmNvZGluZ2Agd2hlbiBjaGVja2luZyBlbmNvZGluZyBuYW1lcyBhcyBzb21lXG4vLyBtb2R1bGVzIG1vbmtleS1wYXRjaCBpdCB0byBzdXBwb3J0IGFkZGl0aW9uYWwgZW5jb2RpbmdzXG5mdW5jdGlvbiBub3JtYWxpemVFbmNvZGluZyhlbmMpIHtcbiAgdmFyIG5lbmMgPSBfbm9ybWFsaXplRW5jb2RpbmcoZW5jKTtcbiAgaWYgKHR5cGVvZiBuZW5jICE9PSAnc3RyaW5nJyAmJiAoQnVmZmVyLmlzRW5jb2RpbmcgPT09IGlzRW5jb2RpbmcgfHwgIWlzRW5jb2RpbmcoZW5jKSkpIHRocm93IG5ldyBFcnJvcignVW5rbm93biBlbmNvZGluZzogJyArIGVuYyk7XG4gIHJldHVybiBuZW5jIHx8IGVuYztcbn1cblxuLy8gU3RyaW5nRGVjb2RlciBwcm92aWRlcyBhbiBpbnRlcmZhY2UgZm9yIGVmZmljaWVudGx5IHNwbGl0dGluZyBhIHNlcmllcyBvZlxuLy8gYnVmZmVycyBpbnRvIGEgc2VyaWVzIG9mIEpTIHN0cmluZ3Mgd2l0aG91dCBicmVha2luZyBhcGFydCBtdWx0aS1ieXRlXG4vLyBjaGFyYWN0ZXJzLlxuZXhwb3J0cy5TdHJpbmdEZWNvZGVyID0gU3RyaW5nRGVjb2RlcjtcbmZ1bmN0aW9uIFN0cmluZ0RlY29kZXIoZW5jb2RpbmcpIHtcbiAgdGhpcy5lbmNvZGluZyA9IG5vcm1hbGl6ZUVuY29kaW5nKGVuY29kaW5nKTtcbiAgdmFyIG5iO1xuICBzd2l0Y2ggKHRoaXMuZW5jb2RpbmcpIHtcbiAgICBjYXNlICd1dGYxNmxlJzpcbiAgICAgIHRoaXMudGV4dCA9IHV0ZjE2VGV4dDtcbiAgICAgIHRoaXMuZW5kID0gdXRmMTZFbmQ7XG4gICAgICBuYiA9IDQ7XG4gICAgICBicmVhaztcbiAgICBjYXNlICd1dGY4JzpcbiAgICAgIHRoaXMuZmlsbExhc3QgPSB1dGY4RmlsbExhc3Q7XG4gICAgICBuYiA9IDQ7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgdGhpcy50ZXh0ID0gYmFzZTY0VGV4dDtcbiAgICAgIHRoaXMuZW5kID0gYmFzZTY0RW5kO1xuICAgICAgbmIgPSAzO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRoaXMud3JpdGUgPSBzaW1wbGVXcml0ZTtcbiAgICAgIHRoaXMuZW5kID0gc2ltcGxlRW5kO1xuICAgICAgcmV0dXJuO1xuICB9XG4gIHRoaXMubGFzdE5lZWQgPSAwO1xuICB0aGlzLmxhc3RUb3RhbCA9IDA7XG4gIHRoaXMubGFzdENoYXIgPSBCdWZmZXIuYWxsb2NVbnNhZmUobmIpO1xufVxuXG5TdHJpbmdEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uIChidWYpIHtcbiAgaWYgKGJ1Zi5sZW5ndGggPT09IDApIHJldHVybiAnJztcbiAgdmFyIHI7XG4gIHZhciBpO1xuICBpZiAodGhpcy5sYXN0TmVlZCkge1xuICAgIHIgPSB0aGlzLmZpbGxMYXN0KGJ1Zik7XG4gICAgaWYgKHIgPT09IHVuZGVmaW5lZCkgcmV0dXJuICcnO1xuICAgIGkgPSB0aGlzLmxhc3ROZWVkO1xuICAgIHRoaXMubGFzdE5lZWQgPSAwO1xuICB9IGVsc2Uge1xuICAgIGkgPSAwO1xuICB9XG4gIGlmIChpIDwgYnVmLmxlbmd0aCkgcmV0dXJuIHIgPyByICsgdGhpcy50ZXh0KGJ1ZiwgaSkgOiB0aGlzLnRleHQoYnVmLCBpKTtcbiAgcmV0dXJuIHIgfHwgJyc7XG59O1xuXG5TdHJpbmdEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSB1dGY4RW5kO1xuXG4vLyBSZXR1cm5zIG9ubHkgY29tcGxldGUgY2hhcmFjdGVycyBpbiBhIEJ1ZmZlclxuU3RyaW5nRGVjb2Rlci5wcm90b3R5cGUudGV4dCA9IHV0ZjhUZXh0O1xuXG4vLyBBdHRlbXB0cyB0byBjb21wbGV0ZSBhIHBhcnRpYWwgbm9uLVVURi04IGNoYXJhY3RlciB1c2luZyBieXRlcyBmcm9tIGEgQnVmZmVyXG5TdHJpbmdEZWNvZGVyLnByb3RvdHlwZS5maWxsTGFzdCA9IGZ1bmN0aW9uIChidWYpIHtcbiAgaWYgKHRoaXMubGFzdE5lZWQgPD0gYnVmLmxlbmd0aCkge1xuICAgIGJ1Zi5jb3B5KHRoaXMubGFzdENoYXIsIHRoaXMubGFzdFRvdGFsIC0gdGhpcy5sYXN0TmVlZCwgMCwgdGhpcy5sYXN0TmVlZCk7XG4gICAgcmV0dXJuIHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGluZywgMCwgdGhpcy5sYXN0VG90YWwpO1xuICB9XG4gIGJ1Zi5jb3B5KHRoaXMubGFzdENoYXIsIHRoaXMubGFzdFRvdGFsIC0gdGhpcy5sYXN0TmVlZCwgMCwgYnVmLmxlbmd0aCk7XG4gIHRoaXMubGFzdE5lZWQgLT0gYnVmLmxlbmd0aDtcbn07XG5cbi8vIENoZWNrcyB0aGUgdHlwZSBvZiBhIFVURi04IGJ5dGUsIHdoZXRoZXIgaXQncyBBU0NJSSwgYSBsZWFkaW5nIGJ5dGUsIG9yIGFcbi8vIGNvbnRpbnVhdGlvbiBieXRlLiBJZiBhbiBpbnZhbGlkIGJ5dGUgaXMgZGV0ZWN0ZWQsIC0yIGlzIHJldHVybmVkLlxuZnVuY3Rpb24gdXRmOENoZWNrQnl0ZShieXRlKSB7XG4gIGlmIChieXRlIDw9IDB4N0YpIHJldHVybiAwO2Vsc2UgaWYgKGJ5dGUgPj4gNSA9PT0gMHgwNikgcmV0dXJuIDI7ZWxzZSBpZiAoYnl0ZSA+PiA0ID09PSAweDBFKSByZXR1cm4gMztlbHNlIGlmIChieXRlID4+IDMgPT09IDB4MUUpIHJldHVybiA0O1xuICByZXR1cm4gYnl0ZSA+PiA2ID09PSAweDAyID8gLTEgOiAtMjtcbn1cblxuLy8gQ2hlY2tzIGF0IG1vc3QgMyBieXRlcyBhdCB0aGUgZW5kIG9mIGEgQnVmZmVyIGluIG9yZGVyIHRvIGRldGVjdCBhblxuLy8gaW5jb21wbGV0ZSBtdWx0aS1ieXRlIFVURi04IGNoYXJhY3Rlci4gVGhlIHRvdGFsIG51bWJlciBvZiBieXRlcyAoMiwgMywgb3IgNClcbi8vIG5lZWRlZCB0byBjb21wbGV0ZSB0aGUgVVRGLTggY2hhcmFjdGVyIChpZiBhcHBsaWNhYmxlKSBhcmUgcmV0dXJuZWQuXG5mdW5jdGlvbiB1dGY4Q2hlY2tJbmNvbXBsZXRlKHNlbGYsIGJ1ZiwgaSkge1xuICB2YXIgaiA9IGJ1Zi5sZW5ndGggLSAxO1xuICBpZiAoaiA8IGkpIHJldHVybiAwO1xuICB2YXIgbmIgPSB1dGY4Q2hlY2tCeXRlKGJ1ZltqXSk7XG4gIGlmIChuYiA+PSAwKSB7XG4gICAgaWYgKG5iID4gMCkgc2VsZi5sYXN0TmVlZCA9IG5iIC0gMTtcbiAgICByZXR1cm4gbmI7XG4gIH1cbiAgaWYgKC0taiA8IGkgfHwgbmIgPT09IC0yKSByZXR1cm4gMDtcbiAgbmIgPSB1dGY4Q2hlY2tCeXRlKGJ1ZltqXSk7XG4gIGlmIChuYiA+PSAwKSB7XG4gICAgaWYgKG5iID4gMCkgc2VsZi5sYXN0TmVlZCA9IG5iIC0gMjtcbiAgICByZXR1cm4gbmI7XG4gIH1cbiAgaWYgKC0taiA8IGkgfHwgbmIgPT09IC0yKSByZXR1cm4gMDtcbiAgbmIgPSB1dGY4Q2hlY2tCeXRlKGJ1ZltqXSk7XG4gIGlmIChuYiA+PSAwKSB7XG4gICAgaWYgKG5iID4gMCkge1xuICAgICAgaWYgKG5iID09PSAyKSBuYiA9IDA7ZWxzZSBzZWxmLmxhc3ROZWVkID0gbmIgLSAzO1xuICAgIH1cbiAgICByZXR1cm4gbmI7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vIFZhbGlkYXRlcyBhcyBtYW55IGNvbnRpbnVhdGlvbiBieXRlcyBmb3IgYSBtdWx0aS1ieXRlIFVURi04IGNoYXJhY3RlciBhc1xuLy8gbmVlZGVkIG9yIGFyZSBhdmFpbGFibGUuIElmIHdlIHNlZSBhIG5vbi1jb250aW51YXRpb24gYnl0ZSB3aGVyZSB3ZSBleHBlY3Rcbi8vIG9uZSwgd2UgXCJyZXBsYWNlXCIgdGhlIHZhbGlkYXRlZCBjb250aW51YXRpb24gYnl0ZXMgd2UndmUgc2VlbiBzbyBmYXIgd2l0aFxuLy8gYSBzaW5nbGUgVVRGLTggcmVwbGFjZW1lbnQgY2hhcmFjdGVyICgnXFx1ZmZmZCcpLCB0byBtYXRjaCB2OCdzIFVURi04IGRlY29kaW5nXG4vLyBiZWhhdmlvci4gVGhlIGNvbnRpbnVhdGlvbiBieXRlIGNoZWNrIGlzIGluY2x1ZGVkIHRocmVlIHRpbWVzIGluIHRoZSBjYXNlXG4vLyB3aGVyZSBhbGwgb2YgdGhlIGNvbnRpbnVhdGlvbiBieXRlcyBmb3IgYSBjaGFyYWN0ZXIgZXhpc3QgaW4gdGhlIHNhbWUgYnVmZmVyLlxuLy8gSXQgaXMgYWxzbyBkb25lIHRoaXMgd2F5IGFzIGEgc2xpZ2h0IHBlcmZvcm1hbmNlIGluY3JlYXNlIGluc3RlYWQgb2YgdXNpbmcgYVxuLy8gbG9vcC5cbmZ1bmN0aW9uIHV0ZjhDaGVja0V4dHJhQnl0ZXMoc2VsZiwgYnVmLCBwKSB7XG4gIGlmICgoYnVmWzBdICYgMHhDMCkgIT09IDB4ODApIHtcbiAgICBzZWxmLmxhc3ROZWVkID0gMDtcbiAgICByZXR1cm4gJ1xcdWZmZmQnO1xuICB9XG4gIGlmIChzZWxmLmxhc3ROZWVkID4gMSAmJiBidWYubGVuZ3RoID4gMSkge1xuICAgIGlmICgoYnVmWzFdICYgMHhDMCkgIT09IDB4ODApIHtcbiAgICAgIHNlbGYubGFzdE5lZWQgPSAxO1xuICAgICAgcmV0dXJuICdcXHVmZmZkJztcbiAgICB9XG4gICAgaWYgKHNlbGYubGFzdE5lZWQgPiAyICYmIGJ1Zi5sZW5ndGggPiAyKSB7XG4gICAgICBpZiAoKGJ1ZlsyXSAmIDB4QzApICE9PSAweDgwKSB7XG4gICAgICAgIHNlbGYubGFzdE5lZWQgPSAyO1xuICAgICAgICByZXR1cm4gJ1xcdWZmZmQnO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBBdHRlbXB0cyB0byBjb21wbGV0ZSBhIG11bHRpLWJ5dGUgVVRGLTggY2hhcmFjdGVyIHVzaW5nIGJ5dGVzIGZyb20gYSBCdWZmZXIuXG5mdW5jdGlvbiB1dGY4RmlsbExhc3QoYnVmKSB7XG4gIHZhciBwID0gdGhpcy5sYXN0VG90YWwgLSB0aGlzLmxhc3ROZWVkO1xuICB2YXIgciA9IHV0ZjhDaGVja0V4dHJhQnl0ZXModGhpcywgYnVmLCBwKTtcbiAgaWYgKHIgIT09IHVuZGVmaW5lZCkgcmV0dXJuIHI7XG4gIGlmICh0aGlzLmxhc3ROZWVkIDw9IGJ1Zi5sZW5ndGgpIHtcbiAgICBidWYuY29weSh0aGlzLmxhc3RDaGFyLCBwLCAwLCB0aGlzLmxhc3ROZWVkKTtcbiAgICByZXR1cm4gdGhpcy5sYXN0Q2hhci50b1N0cmluZyh0aGlzLmVuY29kaW5nLCAwLCB0aGlzLmxhc3RUb3RhbCk7XG4gIH1cbiAgYnVmLmNvcHkodGhpcy5sYXN0Q2hhciwgcCwgMCwgYnVmLmxlbmd0aCk7XG4gIHRoaXMubGFzdE5lZWQgLT0gYnVmLmxlbmd0aDtcbn1cblxuLy8gUmV0dXJucyBhbGwgY29tcGxldGUgVVRGLTggY2hhcmFjdGVycyBpbiBhIEJ1ZmZlci4gSWYgdGhlIEJ1ZmZlciBlbmRlZCBvbiBhXG4vLyBwYXJ0aWFsIGNoYXJhY3RlciwgdGhlIGNoYXJhY3RlcidzIGJ5dGVzIGFyZSBidWZmZXJlZCB1bnRpbCB0aGUgcmVxdWlyZWRcbi8vIG51bWJlciBvZiBieXRlcyBhcmUgYXZhaWxhYmxlLlxuZnVuY3Rpb24gdXRmOFRleHQoYnVmLCBpKSB7XG4gIHZhciB0b3RhbCA9IHV0ZjhDaGVja0luY29tcGxldGUodGhpcywgYnVmLCBpKTtcbiAgaWYgKCF0aGlzLmxhc3ROZWVkKSByZXR1cm4gYnVmLnRvU3RyaW5nKCd1dGY4JywgaSk7XG4gIHRoaXMubGFzdFRvdGFsID0gdG90YWw7XG4gIHZhciBlbmQgPSBidWYubGVuZ3RoIC0gKHRvdGFsIC0gdGhpcy5sYXN0TmVlZCk7XG4gIGJ1Zi5jb3B5KHRoaXMubGFzdENoYXIsIDAsIGVuZCk7XG4gIHJldHVybiBidWYudG9TdHJpbmcoJ3V0ZjgnLCBpLCBlbmQpO1xufVxuXG4vLyBGb3IgVVRGLTgsIGEgcmVwbGFjZW1lbnQgY2hhcmFjdGVyIGlzIGFkZGVkIHdoZW4gZW5kaW5nIG9uIGEgcGFydGlhbFxuLy8gY2hhcmFjdGVyLlxuZnVuY3Rpb24gdXRmOEVuZChidWYpIHtcbiAgdmFyIHIgPSBidWYgJiYgYnVmLmxlbmd0aCA/IHRoaXMud3JpdGUoYnVmKSA6ICcnO1xuICBpZiAodGhpcy5sYXN0TmVlZCkgcmV0dXJuIHIgKyAnXFx1ZmZmZCc7XG4gIHJldHVybiByO1xufVxuXG4vLyBVVEYtMTZMRSB0eXBpY2FsbHkgbmVlZHMgdHdvIGJ5dGVzIHBlciBjaGFyYWN0ZXIsIGJ1dCBldmVuIGlmIHdlIGhhdmUgYW4gZXZlblxuLy8gbnVtYmVyIG9mIGJ5dGVzIGF2YWlsYWJsZSwgd2UgbmVlZCB0byBjaGVjayBpZiB3ZSBlbmQgb24gYSBsZWFkaW5nL2hpZ2hcbi8vIHN1cnJvZ2F0ZS4gSW4gdGhhdCBjYXNlLCB3ZSBuZWVkIHRvIHdhaXQgZm9yIHRoZSBuZXh0IHR3byBieXRlcyBpbiBvcmRlciB0b1xuLy8gZGVjb2RlIHRoZSBsYXN0IGNoYXJhY3RlciBwcm9wZXJseS5cbmZ1bmN0aW9uIHV0ZjE2VGV4dChidWYsIGkpIHtcbiAgaWYgKChidWYubGVuZ3RoIC0gaSkgJSAyID09PSAwKSB7XG4gICAgdmFyIHIgPSBidWYudG9TdHJpbmcoJ3V0ZjE2bGUnLCBpKTtcbiAgICBpZiAocikge1xuICAgICAgdmFyIGMgPSByLmNoYXJDb2RlQXQoci5sZW5ndGggLSAxKTtcbiAgICAgIGlmIChjID49IDB4RDgwMCAmJiBjIDw9IDB4REJGRikge1xuICAgICAgICB0aGlzLmxhc3ROZWVkID0gMjtcbiAgICAgICAgdGhpcy5sYXN0VG90YWwgPSA0O1xuICAgICAgICB0aGlzLmxhc3RDaGFyWzBdID0gYnVmW2J1Zi5sZW5ndGggLSAyXTtcbiAgICAgICAgdGhpcy5sYXN0Q2hhclsxXSA9IGJ1ZltidWYubGVuZ3RoIC0gMV07XG4gICAgICAgIHJldHVybiByLnNsaWNlKDAsIC0xKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHI7XG4gIH1cbiAgdGhpcy5sYXN0TmVlZCA9IDE7XG4gIHRoaXMubGFzdFRvdGFsID0gMjtcbiAgdGhpcy5sYXN0Q2hhclswXSA9IGJ1ZltidWYubGVuZ3RoIC0gMV07XG4gIHJldHVybiBidWYudG9TdHJpbmcoJ3V0ZjE2bGUnLCBpLCBidWYubGVuZ3RoIC0gMSk7XG59XG5cbi8vIEZvciBVVEYtMTZMRSB3ZSBkbyBub3QgZXhwbGljaXRseSBhcHBlbmQgc3BlY2lhbCByZXBsYWNlbWVudCBjaGFyYWN0ZXJzIGlmIHdlXG4vLyBlbmQgb24gYSBwYXJ0aWFsIGNoYXJhY3Rlciwgd2Ugc2ltcGx5IGxldCB2OCBoYW5kbGUgdGhhdC5cbmZ1bmN0aW9uIHV0ZjE2RW5kKGJ1Zikge1xuICB2YXIgciA9IGJ1ZiAmJiBidWYubGVuZ3RoID8gdGhpcy53cml0ZShidWYpIDogJyc7XG4gIGlmICh0aGlzLmxhc3ROZWVkKSB7XG4gICAgdmFyIGVuZCA9IHRoaXMubGFzdFRvdGFsIC0gdGhpcy5sYXN0TmVlZDtcbiAgICByZXR1cm4gciArIHRoaXMubGFzdENoYXIudG9TdHJpbmcoJ3V0ZjE2bGUnLCAwLCBlbmQpO1xuICB9XG4gIHJldHVybiByO1xufVxuXG5mdW5jdGlvbiBiYXNlNjRUZXh0KGJ1ZiwgaSkge1xuICB2YXIgbiA9IChidWYubGVuZ3RoIC0gaSkgJSAzO1xuICBpZiAobiA9PT0gMCkgcmV0dXJuIGJ1Zi50b1N0cmluZygnYmFzZTY0JywgaSk7XG4gIHRoaXMubGFzdE5lZWQgPSAzIC0gbjtcbiAgdGhpcy5sYXN0VG90YWwgPSAzO1xuICBpZiAobiA9PT0gMSkge1xuICAgIHRoaXMubGFzdENoYXJbMF0gPSBidWZbYnVmLmxlbmd0aCAtIDFdO1xuICB9IGVsc2Uge1xuICAgIHRoaXMubGFzdENoYXJbMF0gPSBidWZbYnVmLmxlbmd0aCAtIDJdO1xuICAgIHRoaXMubGFzdENoYXJbMV0gPSBidWZbYnVmLmxlbmd0aCAtIDFdO1xuICB9XG4gIHJldHVybiBidWYudG9TdHJpbmcoJ2Jhc2U2NCcsIGksIGJ1Zi5sZW5ndGggLSBuKTtcbn1cblxuZnVuY3Rpb24gYmFzZTY0RW5kKGJ1Zikge1xuICB2YXIgciA9IGJ1ZiAmJiBidWYubGVuZ3RoID8gdGhpcy53cml0ZShidWYpIDogJyc7XG4gIGlmICh0aGlzLmxhc3ROZWVkKSByZXR1cm4gciArIHRoaXMubGFzdENoYXIudG9TdHJpbmcoJ2Jhc2U2NCcsIDAsIDMgLSB0aGlzLmxhc3ROZWVkKTtcbiAgcmV0dXJuIHI7XG59XG5cbi8vIFBhc3MgYnl0ZXMgb24gdGhyb3VnaCBmb3Igc2luZ2xlLWJ5dGUgZW5jb2RpbmdzIChlLmcuIGFzY2lpLCBsYXRpbjEsIGhleClcbmZ1bmN0aW9uIHNpbXBsZVdyaXRlKGJ1Zikge1xuICByZXR1cm4gYnVmLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcpO1xufVxuXG5mdW5jdGlvbiBzaW1wbGVFbmQoYnVmKSB7XG4gIHJldHVybiBidWYgJiYgYnVmLmxlbmd0aCA/IHRoaXMud3JpdGUoYnVmKSA6ICcnO1xufSIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ1JlYWRhYmxlLmZyb20gaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnJvd3NlcicpXG59O1xuIiwiJ3VzZSBzdHJpY3QnXG5cbi8vIGxpbWl0IG9mIENyeXB0by5nZXRSYW5kb21WYWx1ZXMoKVxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0NyeXB0by9nZXRSYW5kb21WYWx1ZXNcbnZhciBNQVhfQllURVMgPSA2NTUzNlxuXG4vLyBOb2RlIHN1cHBvcnRzIHJlcXVlc3RpbmcgdXAgdG8gdGhpcyBudW1iZXIgb2YgYnl0ZXNcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9ibG9iL21hc3Rlci9saWIvaW50ZXJuYWwvY3J5cHRvL3JhbmRvbS5qcyNMNDhcbnZhciBNQVhfVUlOVDMyID0gNDI5NDk2NzI5NVxuXG5mdW5jdGlvbiBvbGRCcm93c2VyICgpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdTZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyLlxcblVzZSBDaHJvbWUsIEZpcmVmb3ggb3IgSW50ZXJuZXQgRXhwbG9yZXIgMTEnKVxufVxuXG52YXIgQnVmZmVyID0gcmVxdWlyZSgnc2FmZS1idWZmZXInKS5CdWZmZXJcbnZhciBjcnlwdG8gPSBnbG9iYWwuY3J5cHRvIHx8IGdsb2JhbC5tc0NyeXB0b1xuXG5pZiAoY3J5cHRvICYmIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByYW5kb21CeXRlc1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSBvbGRCcm93c2VyXG59XG5cbmZ1bmN0aW9uIHJhbmRvbUJ5dGVzIChzaXplLCBjYikge1xuICAvLyBwaGFudG9tanMgbmVlZHMgdG8gdGhyb3dcbiAgaWYgKHNpemUgPiBNQVhfVUlOVDMyKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcigncmVxdWVzdGVkIHRvbyBtYW55IHJhbmRvbSBieXRlcycpXG5cbiAgdmFyIGJ5dGVzID0gQnVmZmVyLmFsbG9jVW5zYWZlKHNpemUpXG5cbiAgaWYgKHNpemUgPiAwKSB7ICAvLyBnZXRSYW5kb21WYWx1ZXMgZmFpbHMgb24gSUUgaWYgc2l6ZSA9PSAwXG4gICAgaWYgKHNpemUgPiBNQVhfQllURVMpIHsgLy8gdGhpcyBpcyB0aGUgbWF4IGJ5dGVzIGNyeXB0by5nZXRSYW5kb21WYWx1ZXNcbiAgICAgIC8vIGNhbiBkbyBhdCBvbmNlIHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvd2luZG93LmNyeXB0by5nZXRSYW5kb21WYWx1ZXNcbiAgICAgIGZvciAodmFyIGdlbmVyYXRlZCA9IDA7IGdlbmVyYXRlZCA8IHNpemU7IGdlbmVyYXRlZCArPSBNQVhfQllURVMpIHtcbiAgICAgICAgLy8gYnVmZmVyLnNsaWNlIGF1dG9tYXRpY2FsbHkgY2hlY2tzIGlmIHRoZSBlbmQgaXMgcGFzdCB0aGUgZW5kIG9mXG4gICAgICAgIC8vIHRoZSBidWZmZXIgc28gd2UgZG9uJ3QgaGF2ZSB0byBoZXJlXG4gICAgICAgIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMoYnl0ZXMuc2xpY2UoZ2VuZXJhdGVkLCBnZW5lcmF0ZWQgKyBNQVhfQllURVMpKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGJ5dGVzKVxuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgY2IgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbiAoKSB7XG4gICAgICBjYihudWxsLCBieXRlcylcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIGJ5dGVzXG59XG4iLCIvLyBQb3J0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbWFmaW50b3NoL2VuZC1vZi1zdHJlYW0gd2l0aFxuLy8gcGVybWlzc2lvbiBmcm9tIHRoZSBhdXRob3IsIE1hdGhpYXMgQnV1cyAoQG1hZmludG9zaCkuXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIEVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFID0gcmVxdWlyZSgnLi4vLi4vLi4vZXJyb3JzJykuY29kZXMuRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0U7XG5mdW5jdGlvbiBvbmNlKGNhbGxiYWNrKSB7XG4gIHZhciBjYWxsZWQgPSBmYWxzZTtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoY2FsbGVkKSByZXR1cm47XG4gICAgY2FsbGVkID0gdHJ1ZTtcbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuICAgIGNhbGxiYWNrLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICB9O1xufVxuZnVuY3Rpb24gbm9vcCgpIHt9XG5mdW5jdGlvbiBpc1JlcXVlc3Qoc3RyZWFtKSB7XG4gIHJldHVybiBzdHJlYW0uc2V0SGVhZGVyICYmIHR5cGVvZiBzdHJlYW0uYWJvcnQgPT09ICdmdW5jdGlvbic7XG59XG5mdW5jdGlvbiBlb3Moc3RyZWFtLCBvcHRzLCBjYWxsYmFjaykge1xuICBpZiAodHlwZW9mIG9wdHMgPT09ICdmdW5jdGlvbicpIHJldHVybiBlb3Moc3RyZWFtLCBudWxsLCBvcHRzKTtcbiAgaWYgKCFvcHRzKSBvcHRzID0ge307XG4gIGNhbGxiYWNrID0gb25jZShjYWxsYmFjayB8fCBub29wKTtcbiAgdmFyIHJlYWRhYmxlID0gb3B0cy5yZWFkYWJsZSB8fCBvcHRzLnJlYWRhYmxlICE9PSBmYWxzZSAmJiBzdHJlYW0ucmVhZGFibGU7XG4gIHZhciB3cml0YWJsZSA9IG9wdHMud3JpdGFibGUgfHwgb3B0cy53cml0YWJsZSAhPT0gZmFsc2UgJiYgc3RyZWFtLndyaXRhYmxlO1xuICB2YXIgb25sZWdhY3lmaW5pc2ggPSBmdW5jdGlvbiBvbmxlZ2FjeWZpbmlzaCgpIHtcbiAgICBpZiAoIXN0cmVhbS53cml0YWJsZSkgb25maW5pc2goKTtcbiAgfTtcbiAgdmFyIHdyaXRhYmxlRW5kZWQgPSBzdHJlYW0uX3dyaXRhYmxlU3RhdGUgJiYgc3RyZWFtLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkO1xuICB2YXIgb25maW5pc2ggPSBmdW5jdGlvbiBvbmZpbmlzaCgpIHtcbiAgICB3cml0YWJsZSA9IGZhbHNlO1xuICAgIHdyaXRhYmxlRW5kZWQgPSB0cnVlO1xuICAgIGlmICghcmVhZGFibGUpIGNhbGxiYWNrLmNhbGwoc3RyZWFtKTtcbiAgfTtcbiAgdmFyIHJlYWRhYmxlRW5kZWQgPSBzdHJlYW0uX3JlYWRhYmxlU3RhdGUgJiYgc3RyZWFtLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0ZWQ7XG4gIHZhciBvbmVuZCA9IGZ1bmN0aW9uIG9uZW5kKCkge1xuICAgIHJlYWRhYmxlID0gZmFsc2U7XG4gICAgcmVhZGFibGVFbmRlZCA9IHRydWU7XG4gICAgaWYgKCF3cml0YWJsZSkgY2FsbGJhY2suY2FsbChzdHJlYW0pO1xuICB9O1xuICB2YXIgb25lcnJvciA9IGZ1bmN0aW9uIG9uZXJyb3IoZXJyKSB7XG4gICAgY2FsbGJhY2suY2FsbChzdHJlYW0sIGVycik7XG4gIH07XG4gIHZhciBvbmNsb3NlID0gZnVuY3Rpb24gb25jbG9zZSgpIHtcbiAgICB2YXIgZXJyO1xuICAgIGlmIChyZWFkYWJsZSAmJiAhcmVhZGFibGVFbmRlZCkge1xuICAgICAgaWYgKCFzdHJlYW0uX3JlYWRhYmxlU3RhdGUgfHwgIXN0cmVhbS5fcmVhZGFibGVTdGF0ZS5lbmRlZCkgZXJyID0gbmV3IEVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFKCk7XG4gICAgICByZXR1cm4gY2FsbGJhY2suY2FsbChzdHJlYW0sIGVycik7XG4gICAgfVxuICAgIGlmICh3cml0YWJsZSAmJiAhd3JpdGFibGVFbmRlZCkge1xuICAgICAgaWYgKCFzdHJlYW0uX3dyaXRhYmxlU3RhdGUgfHwgIXN0cmVhbS5fd3JpdGFibGVTdGF0ZS5lbmRlZCkgZXJyID0gbmV3IEVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFKCk7XG4gICAgICByZXR1cm4gY2FsbGJhY2suY2FsbChzdHJlYW0sIGVycik7XG4gICAgfVxuICB9O1xuICB2YXIgb25yZXF1ZXN0ID0gZnVuY3Rpb24gb25yZXF1ZXN0KCkge1xuICAgIHN0cmVhbS5yZXEub24oJ2ZpbmlzaCcsIG9uZmluaXNoKTtcbiAgfTtcbiAgaWYgKGlzUmVxdWVzdChzdHJlYW0pKSB7XG4gICAgc3RyZWFtLm9uKCdjb21wbGV0ZScsIG9uZmluaXNoKTtcbiAgICBzdHJlYW0ub24oJ2Fib3J0Jywgb25jbG9zZSk7XG4gICAgaWYgKHN0cmVhbS5yZXEpIG9ucmVxdWVzdCgpO2Vsc2Ugc3RyZWFtLm9uKCdyZXF1ZXN0Jywgb25yZXF1ZXN0KTtcbiAgfSBlbHNlIGlmICh3cml0YWJsZSAmJiAhc3RyZWFtLl93cml0YWJsZVN0YXRlKSB7XG4gICAgLy8gbGVnYWN5IHN0cmVhbXNcbiAgICBzdHJlYW0ub24oJ2VuZCcsIG9ubGVnYWN5ZmluaXNoKTtcbiAgICBzdHJlYW0ub24oJ2Nsb3NlJywgb25sZWdhY3lmaW5pc2gpO1xuICB9XG4gIHN0cmVhbS5vbignZW5kJywgb25lbmQpO1xuICBzdHJlYW0ub24oJ2ZpbmlzaCcsIG9uZmluaXNoKTtcbiAgaWYgKG9wdHMuZXJyb3IgIT09IGZhbHNlKSBzdHJlYW0ub24oJ2Vycm9yJywgb25lcnJvcik7XG4gIHN0cmVhbS5vbignY2xvc2UnLCBvbmNsb3NlKTtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICBzdHJlYW0ucmVtb3ZlTGlzdGVuZXIoJ2NvbXBsZXRlJywgb25maW5pc2gpO1xuICAgIHN0cmVhbS5yZW1vdmVMaXN0ZW5lcignYWJvcnQnLCBvbmNsb3NlKTtcbiAgICBzdHJlYW0ucmVtb3ZlTGlzdGVuZXIoJ3JlcXVlc3QnLCBvbnJlcXVlc3QpO1xuICAgIGlmIChzdHJlYW0ucmVxKSBzdHJlYW0ucmVxLnJlbW92ZUxpc3RlbmVyKCdmaW5pc2gnLCBvbmZpbmlzaCk7XG4gICAgc3RyZWFtLnJlbW92ZUxpc3RlbmVyKCdlbmQnLCBvbmxlZ2FjeWZpbmlzaCk7XG4gICAgc3RyZWFtLnJlbW92ZUxpc3RlbmVyKCdjbG9zZScsIG9ubGVnYWN5ZmluaXNoKTtcbiAgICBzdHJlYW0ucmVtb3ZlTGlzdGVuZXIoJ2ZpbmlzaCcsIG9uZmluaXNoKTtcbiAgICBzdHJlYW0ucmVtb3ZlTGlzdGVuZXIoJ2VuZCcsIG9uZW5kKTtcbiAgICBzdHJlYW0ucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgb25lcnJvcik7XG4gICAgc3RyZWFtLnJlbW92ZUxpc3RlbmVyKCdjbG9zZScsIG9uY2xvc2UpO1xuICB9O1xufVxubW9kdWxlLmV4cG9ydHMgPSBlb3M7IiwiLyohXG4gKiBUaGUgYnVmZmVyIG1vZHVsZSBmcm9tIG5vZGUuanMsIGZvciB0aGUgYnJvd3Nlci5cbiAqXG4gKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnPlxuICogQGxpY2Vuc2UgIE1JVFxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90byAqL1xuXG4ndXNlIHN0cmljdCdcblxuY29uc3QgYmFzZTY0ID0gcmVxdWlyZSgnYmFzZTY0LWpzJylcbmNvbnN0IGllZWU3NTQgPSByZXF1aXJlKCdpZWVlNzU0JylcbmNvbnN0IGN1c3RvbUluc3BlY3RTeW1ib2wgPVxuICAodHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgU3ltYm9sWydmb3InXSA9PT0gJ2Z1bmN0aW9uJykgLy8gZXNsaW50LWRpc2FibGUtbGluZSBkb3Qtbm90YXRpb25cbiAgICA/IFN5bWJvbFsnZm9yJ10oJ25vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tJykgLy8gZXNsaW50LWRpc2FibGUtbGluZSBkb3Qtbm90YXRpb25cbiAgICA6IG51bGxcblxuZXhwb3J0cy5CdWZmZXIgPSBCdWZmZXJcbmV4cG9ydHMuU2xvd0J1ZmZlciA9IFNsb3dCdWZmZXJcbmV4cG9ydHMuSU5TUEVDVF9NQVhfQllURVMgPSA1MFxuXG5jb25zdCBLX01BWF9MRU5HVEggPSAweDdmZmZmZmZmXG5leHBvcnRzLmtNYXhMZW5ndGggPSBLX01BWF9MRU5HVEhcblxuLyoqXG4gKiBJZiBgQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlRgOlxuICogICA9PT0gdHJ1ZSAgICBVc2UgVWludDhBcnJheSBpbXBsZW1lbnRhdGlvbiAoZmFzdGVzdClcbiAqICAgPT09IGZhbHNlICAgUHJpbnQgd2FybmluZyBhbmQgcmVjb21tZW5kIHVzaW5nIGBidWZmZXJgIHY0Lnggd2hpY2ggaGFzIGFuIE9iamVjdFxuICogICAgICAgICAgICAgICBpbXBsZW1lbnRhdGlvbiAobW9zdCBjb21wYXRpYmxlLCBldmVuIElFNilcbiAqXG4gKiBCcm93c2VycyB0aGF0IHN1cHBvcnQgdHlwZWQgYXJyYXlzIGFyZSBJRSAxMCssIEZpcmVmb3ggNCssIENocm9tZSA3KywgU2FmYXJpIDUuMSssXG4gKiBPcGVyYSAxMS42KywgaU9TIDQuMisuXG4gKlxuICogV2UgcmVwb3J0IHRoYXQgdGhlIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCB0eXBlZCBhcnJheXMgaWYgdGhlIGFyZSBub3Qgc3ViY2xhc3NhYmxlXG4gKiB1c2luZyBfX3Byb3RvX18uIEZpcmVmb3ggNC0yOSBsYWNrcyBzdXBwb3J0IGZvciBhZGRpbmcgbmV3IHByb3BlcnRpZXMgdG8gYFVpbnQ4QXJyYXlgXG4gKiAoU2VlOiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU0MzgpLiBJRSAxMCBsYWNrcyBzdXBwb3J0XG4gKiBmb3IgX19wcm90b19fIGFuZCBoYXMgYSBidWdneSB0eXBlZCBhcnJheSBpbXBsZW1lbnRhdGlvbi5cbiAqL1xuQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQgPSB0eXBlZEFycmF5U3VwcG9ydCgpXG5cbmlmICghQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQgJiYgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmXG4gICAgdHlwZW9mIGNvbnNvbGUuZXJyb3IgPT09ICdmdW5jdGlvbicpIHtcbiAgY29uc29sZS5lcnJvcihcbiAgICAnVGhpcyBicm93c2VyIGxhY2tzIHR5cGVkIGFycmF5IChVaW50OEFycmF5KSBzdXBwb3J0IHdoaWNoIGlzIHJlcXVpcmVkIGJ5ICcgK1xuICAgICdgYnVmZmVyYCB2NS54LiBVc2UgYGJ1ZmZlcmAgdjQueCBpZiB5b3UgcmVxdWlyZSBvbGQgYnJvd3NlciBzdXBwb3J0LidcbiAgKVxufVxuXG5mdW5jdGlvbiB0eXBlZEFycmF5U3VwcG9ydCAoKSB7XG4gIC8vIENhbiB0eXBlZCBhcnJheSBpbnN0YW5jZXMgY2FuIGJlIGF1Z21lbnRlZD9cbiAgdHJ5IHtcbiAgICBjb25zdCBhcnIgPSBuZXcgVWludDhBcnJheSgxKVxuICAgIGNvbnN0IHByb3RvID0geyBmb286IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDQyIH0gfVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihwcm90bywgVWludDhBcnJheS5wcm90b3R5cGUpXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGFyciwgcHJvdG8pXG4gICAgcmV0dXJuIGFyci5mb28oKSA9PT0gNDJcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShCdWZmZXIucHJvdG90eXBlLCAncGFyZW50Jywge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcih0aGlzKSkgcmV0dXJuIHVuZGVmaW5lZFxuICAgIHJldHVybiB0aGlzLmJ1ZmZlclxuICB9XG59KVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoQnVmZmVyLnByb3RvdHlwZSwgJ29mZnNldCcsIHtcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFCdWZmZXIuaXNCdWZmZXIodGhpcykpIHJldHVybiB1bmRlZmluZWRcbiAgICByZXR1cm4gdGhpcy5ieXRlT2Zmc2V0XG4gIH1cbn0pXG5cbmZ1bmN0aW9uIGNyZWF0ZUJ1ZmZlciAobGVuZ3RoKSB7XG4gIGlmIChsZW5ndGggPiBLX01BWF9MRU5HVEgpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIFwiJyArIGxlbmd0aCArICdcIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gXCJzaXplXCInKVxuICB9XG4gIC8vIFJldHVybiBhbiBhdWdtZW50ZWQgYFVpbnQ4QXJyYXlgIGluc3RhbmNlXG4gIGNvbnN0IGJ1ZiA9IG5ldyBVaW50OEFycmF5KGxlbmd0aClcbiAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGJ1ZiwgQnVmZmVyLnByb3RvdHlwZSlcbiAgcmV0dXJuIGJ1ZlxufVxuXG4vKipcbiAqIFRoZSBCdWZmZXIgY29uc3RydWN0b3IgcmV0dXJucyBpbnN0YW5jZXMgb2YgYFVpbnQ4QXJyYXlgIHRoYXQgaGF2ZSB0aGVpclxuICogcHJvdG90eXBlIGNoYW5nZWQgdG8gYEJ1ZmZlci5wcm90b3R5cGVgLiBGdXJ0aGVybW9yZSwgYEJ1ZmZlcmAgaXMgYSBzdWJjbGFzcyBvZlxuICogYFVpbnQ4QXJyYXlgLCBzbyB0aGUgcmV0dXJuZWQgaW5zdGFuY2VzIHdpbGwgaGF2ZSBhbGwgdGhlIG5vZGUgYEJ1ZmZlcmAgbWV0aG9kc1xuICogYW5kIHRoZSBgVWludDhBcnJheWAgbWV0aG9kcy4gU3F1YXJlIGJyYWNrZXQgbm90YXRpb24gd29ya3MgYXMgZXhwZWN0ZWQgLS0gaXRcbiAqIHJldHVybnMgYSBzaW5nbGUgb2N0ZXQuXG4gKlxuICogVGhlIGBVaW50OEFycmF5YCBwcm90b3R5cGUgcmVtYWlucyB1bm1vZGlmaWVkLlxuICovXG5cbmZ1bmN0aW9uIEJ1ZmZlciAoYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpIHtcbiAgLy8gQ29tbW9uIGNhc2UuXG4gIGlmICh0eXBlb2YgYXJnID09PSAnbnVtYmVyJykge1xuICAgIGlmICh0eXBlb2YgZW5jb2RpbmdPck9mZnNldCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICdUaGUgXCJzdHJpbmdcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nLiBSZWNlaXZlZCB0eXBlIG51bWJlcidcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIGFsbG9jVW5zYWZlKGFyZylcbiAgfVxuICByZXR1cm4gZnJvbShhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aClcbn1cblxuQnVmZmVyLnBvb2xTaXplID0gODE5MiAvLyBub3QgdXNlZCBieSB0aGlzIGltcGxlbWVudGF0aW9uXG5cbmZ1bmN0aW9uIGZyb20gKHZhbHVlLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZnJvbVN0cmluZyh2YWx1ZSwgZW5jb2RpbmdPck9mZnNldClcbiAgfVxuXG4gIGlmIChBcnJheUJ1ZmZlci5pc1ZpZXcodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZyb21BcnJheVZpZXcodmFsdWUpXG4gIH1cblxuICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAnVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgJyArXG4gICAgICAnb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgJyArICh0eXBlb2YgdmFsdWUpXG4gICAgKVxuICB9XG5cbiAgaWYgKGlzSW5zdGFuY2UodmFsdWUsIEFycmF5QnVmZmVyKSB8fFxuICAgICAgKHZhbHVlICYmIGlzSW5zdGFuY2UodmFsdWUuYnVmZmVyLCBBcnJheUJ1ZmZlcikpKSB7XG4gICAgcmV0dXJuIGZyb21BcnJheUJ1ZmZlcih2YWx1ZSwgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKVxuICB9XG5cbiAgaWYgKHR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgIChpc0luc3RhbmNlKHZhbHVlLCBTaGFyZWRBcnJheUJ1ZmZlcikgfHxcbiAgICAgICh2YWx1ZSAmJiBpc0luc3RhbmNlKHZhbHVlLmJ1ZmZlciwgU2hhcmVkQXJyYXlCdWZmZXIpKSkpIHtcbiAgICByZXR1cm4gZnJvbUFycmF5QnVmZmVyKHZhbHVlLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpXG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAnVGhlIFwidmFsdWVcIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSBudW1iZXInXG4gICAgKVxuICB9XG5cbiAgY29uc3QgdmFsdWVPZiA9IHZhbHVlLnZhbHVlT2YgJiYgdmFsdWUudmFsdWVPZigpXG4gIGlmICh2YWx1ZU9mICE9IG51bGwgJiYgdmFsdWVPZiAhPT0gdmFsdWUpIHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20odmFsdWVPZiwgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKVxuICB9XG5cbiAgY29uc3QgYiA9IGZyb21PYmplY3QodmFsdWUpXG4gIGlmIChiKSByZXR1cm4gYlxuXG4gIGlmICh0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9QcmltaXRpdmUgIT0gbnVsbCAmJlxuICAgICAgdHlwZW9mIHZhbHVlW1N5bWJvbC50b1ByaW1pdGl2ZV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20odmFsdWVbU3ltYm9sLnRvUHJpbWl0aXZlXSgnc3RyaW5nJyksIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aClcbiAgfVxuXG4gIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgJ1RoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBBcnJheUJ1ZmZlciwgQXJyYXksICcgK1xuICAgICdvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAnICsgKHR5cGVvZiB2YWx1ZSlcbiAgKVxufVxuXG4vKipcbiAqIEZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvIEJ1ZmZlcihhcmcsIGVuY29kaW5nKSBidXQgdGhyb3dzIGEgVHlwZUVycm9yXG4gKiBpZiB2YWx1ZSBpcyBhIG51bWJlci5cbiAqIEJ1ZmZlci5mcm9tKHN0clssIGVuY29kaW5nXSlcbiAqIEJ1ZmZlci5mcm9tKGFycmF5KVxuICogQnVmZmVyLmZyb20oYnVmZmVyKVxuICogQnVmZmVyLmZyb20oYXJyYXlCdWZmZXJbLCBieXRlT2Zmc2V0WywgbGVuZ3RoXV0pXG4gKiovXG5CdWZmZXIuZnJvbSA9IGZ1bmN0aW9uICh2YWx1ZSwgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBmcm9tKHZhbHVlLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpXG59XG5cbi8vIE5vdGU6IENoYW5nZSBwcm90b3R5cGUgKmFmdGVyKiBCdWZmZXIuZnJvbSBpcyBkZWZpbmVkIHRvIHdvcmthcm91bmQgQ2hyb21lIGJ1Zzpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJvc3MvYnVmZmVyL3B1bGwvMTQ4XG5PYmplY3Quc2V0UHJvdG90eXBlT2YoQnVmZmVyLnByb3RvdHlwZSwgVWludDhBcnJheS5wcm90b3R5cGUpXG5PYmplY3Quc2V0UHJvdG90eXBlT2YoQnVmZmVyLCBVaW50OEFycmF5KVxuXG5mdW5jdGlvbiBhc3NlcnRTaXplIChzaXplKSB7XG4gIGlmICh0eXBlb2Ygc2l6ZSAhPT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcInNpemVcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgbnVtYmVyJylcbiAgfSBlbHNlIGlmIChzaXplIDwgMCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgXCInICsgc2l6ZSArICdcIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gXCJzaXplXCInKVxuICB9XG59XG5cbmZ1bmN0aW9uIGFsbG9jIChzaXplLCBmaWxsLCBlbmNvZGluZykge1xuICBhc3NlcnRTaXplKHNpemUpXG4gIGlmIChzaXplIDw9IDApIHtcbiAgICByZXR1cm4gY3JlYXRlQnVmZmVyKHNpemUpXG4gIH1cbiAgaWYgKGZpbGwgIT09IHVuZGVmaW5lZCkge1xuICAgIC8vIE9ubHkgcGF5IGF0dGVudGlvbiB0byBlbmNvZGluZyBpZiBpdCdzIGEgc3RyaW5nLiBUaGlzXG4gICAgLy8gcHJldmVudHMgYWNjaWRlbnRhbGx5IHNlbmRpbmcgaW4gYSBudW1iZXIgdGhhdCB3b3VsZFxuICAgIC8vIGJlIGludGVycHJldGVkIGFzIGEgc3RhcnQgb2Zmc2V0LlxuICAgIHJldHVybiB0eXBlb2YgZW5jb2RpbmcgPT09ICdzdHJpbmcnXG4gICAgICA/IGNyZWF0ZUJ1ZmZlcihzaXplKS5maWxsKGZpbGwsIGVuY29kaW5nKVxuICAgICAgOiBjcmVhdGVCdWZmZXIoc2l6ZSkuZmlsbChmaWxsKVxuICB9XG4gIHJldHVybiBjcmVhdGVCdWZmZXIoc2l6ZSlcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGZpbGxlZCBCdWZmZXIgaW5zdGFuY2UuXG4gKiBhbGxvYyhzaXplWywgZmlsbFssIGVuY29kaW5nXV0pXG4gKiovXG5CdWZmZXIuYWxsb2MgPSBmdW5jdGlvbiAoc2l6ZSwgZmlsbCwgZW5jb2RpbmcpIHtcbiAgcmV0dXJuIGFsbG9jKHNpemUsIGZpbGwsIGVuY29kaW5nKVxufVxuXG5mdW5jdGlvbiBhbGxvY1Vuc2FmZSAoc2l6ZSkge1xuICBhc3NlcnRTaXplKHNpemUpXG4gIHJldHVybiBjcmVhdGVCdWZmZXIoc2l6ZSA8IDAgPyAwIDogY2hlY2tlZChzaXplKSB8IDApXG59XG5cbi8qKlxuICogRXF1aXZhbGVudCB0byBCdWZmZXIobnVtKSwgYnkgZGVmYXVsdCBjcmVhdGVzIGEgbm9uLXplcm8tZmlsbGVkIEJ1ZmZlciBpbnN0YW5jZS5cbiAqICovXG5CdWZmZXIuYWxsb2NVbnNhZmUgPSBmdW5jdGlvbiAoc2l6ZSkge1xuICByZXR1cm4gYWxsb2NVbnNhZmUoc2l6ZSlcbn1cbi8qKlxuICogRXF1aXZhbGVudCB0byBTbG93QnVmZmVyKG51bSksIGJ5IGRlZmF1bHQgY3JlYXRlcyBhIG5vbi16ZXJvLWZpbGxlZCBCdWZmZXIgaW5zdGFuY2UuXG4gKi9cbkJ1ZmZlci5hbGxvY1Vuc2FmZVNsb3cgPSBmdW5jdGlvbiAoc2l6ZSkge1xuICByZXR1cm4gYWxsb2NVbnNhZmUoc2l6ZSlcbn1cblxuZnVuY3Rpb24gZnJvbVN0cmluZyAoc3RyaW5nLCBlbmNvZGluZykge1xuICBpZiAodHlwZW9mIGVuY29kaW5nICE9PSAnc3RyaW5nJyB8fCBlbmNvZGluZyA9PT0gJycpIHtcbiAgICBlbmNvZGluZyA9ICd1dGY4J1xuICB9XG5cbiAgaWYgKCFCdWZmZXIuaXNFbmNvZGluZyhlbmNvZGluZykpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIGVuY29kaW5nOiAnICsgZW5jb2RpbmcpXG4gIH1cblxuICBjb25zdCBsZW5ndGggPSBieXRlTGVuZ3RoKHN0cmluZywgZW5jb2RpbmcpIHwgMFxuICBsZXQgYnVmID0gY3JlYXRlQnVmZmVyKGxlbmd0aClcblxuICBjb25zdCBhY3R1YWwgPSBidWYud3JpdGUoc3RyaW5nLCBlbmNvZGluZylcblxuICBpZiAoYWN0dWFsICE9PSBsZW5ndGgpIHtcbiAgICAvLyBXcml0aW5nIGEgaGV4IHN0cmluZywgZm9yIGV4YW1wbGUsIHRoYXQgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzIHdpbGxcbiAgICAvLyBjYXVzZSBldmVyeXRoaW5nIGFmdGVyIHRoZSBmaXJzdCBpbnZhbGlkIGNoYXJhY3RlciB0byBiZSBpZ25vcmVkLiAoZS5nLlxuICAgIC8vICdhYnh4Y2QnIHdpbGwgYmUgdHJlYXRlZCBhcyAnYWInKVxuICAgIGJ1ZiA9IGJ1Zi5zbGljZSgwLCBhY3R1YWwpXG4gIH1cblxuICByZXR1cm4gYnVmXG59XG5cbmZ1bmN0aW9uIGZyb21BcnJheUxpa2UgKGFycmF5KSB7XG4gIGNvbnN0IGxlbmd0aCA9IGFycmF5Lmxlbmd0aCA8IDAgPyAwIDogY2hlY2tlZChhcnJheS5sZW5ndGgpIHwgMFxuICBjb25zdCBidWYgPSBjcmVhdGVCdWZmZXIobGVuZ3RoKVxuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSAxKSB7XG4gICAgYnVmW2ldID0gYXJyYXlbaV0gJiAyNTVcbiAgfVxuICByZXR1cm4gYnVmXG59XG5cbmZ1bmN0aW9uIGZyb21BcnJheVZpZXcgKGFycmF5Vmlldykge1xuICBpZiAoaXNJbnN0YW5jZShhcnJheVZpZXcsIFVpbnQ4QXJyYXkpKSB7XG4gICAgY29uc3QgY29weSA9IG5ldyBVaW50OEFycmF5KGFycmF5VmlldylcbiAgICByZXR1cm4gZnJvbUFycmF5QnVmZmVyKGNvcHkuYnVmZmVyLCBjb3B5LmJ5dGVPZmZzZXQsIGNvcHkuYnl0ZUxlbmd0aClcbiAgfVxuICByZXR1cm4gZnJvbUFycmF5TGlrZShhcnJheVZpZXcpXG59XG5cbmZ1bmN0aW9uIGZyb21BcnJheUJ1ZmZlciAoYXJyYXksIGJ5dGVPZmZzZXQsIGxlbmd0aCkge1xuICBpZiAoYnl0ZU9mZnNldCA8IDAgfHwgYXJyYXkuYnl0ZUxlbmd0aCA8IGJ5dGVPZmZzZXQpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignXCJvZmZzZXRcIiBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHMnKVxuICB9XG5cbiAgaWYgKGFycmF5LmJ5dGVMZW5ndGggPCBieXRlT2Zmc2V0ICsgKGxlbmd0aCB8fCAwKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdcImxlbmd0aFwiIGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kcycpXG4gIH1cblxuICBsZXQgYnVmXG4gIGlmIChieXRlT2Zmc2V0ID09PSB1bmRlZmluZWQgJiYgbGVuZ3RoID09PSB1bmRlZmluZWQpIHtcbiAgICBidWYgPSBuZXcgVWludDhBcnJheShhcnJheSlcbiAgfSBlbHNlIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgIGJ1ZiA9IG5ldyBVaW50OEFycmF5KGFycmF5LCBieXRlT2Zmc2V0KVxuICB9IGVsc2Uge1xuICAgIGJ1ZiA9IG5ldyBVaW50OEFycmF5KGFycmF5LCBieXRlT2Zmc2V0LCBsZW5ndGgpXG4gIH1cblxuICAvLyBSZXR1cm4gYW4gYXVnbWVudGVkIGBVaW50OEFycmF5YCBpbnN0YW5jZVxuICBPYmplY3Quc2V0UHJvdG90eXBlT2YoYnVmLCBCdWZmZXIucHJvdG90eXBlKVxuXG4gIHJldHVybiBidWZcbn1cblxuZnVuY3Rpb24gZnJvbU9iamVjdCAob2JqKSB7XG4gIGlmIChCdWZmZXIuaXNCdWZmZXIob2JqKSkge1xuICAgIGNvbnN0IGxlbiA9IGNoZWNrZWQob2JqLmxlbmd0aCkgfCAwXG4gICAgY29uc3QgYnVmID0gY3JlYXRlQnVmZmVyKGxlbilcblxuICAgIGlmIChidWYubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gYnVmXG4gICAgfVxuXG4gICAgb2JqLmNvcHkoYnVmLCAwLCAwLCBsZW4pXG4gICAgcmV0dXJuIGJ1ZlxuICB9XG5cbiAgaWYgKG9iai5sZW5ndGggIT09IHVuZGVmaW5lZCkge1xuICAgIGlmICh0eXBlb2Ygb2JqLmxlbmd0aCAhPT0gJ251bWJlcicgfHwgbnVtYmVySXNOYU4ob2JqLmxlbmd0aCkpIHtcbiAgICAgIHJldHVybiBjcmVhdGVCdWZmZXIoMClcbiAgICB9XG4gICAgcmV0dXJuIGZyb21BcnJheUxpa2Uob2JqKVxuICB9XG5cbiAgaWYgKG9iai50eXBlID09PSAnQnVmZmVyJyAmJiBBcnJheS5pc0FycmF5KG9iai5kYXRhKSkge1xuICAgIHJldHVybiBmcm9tQXJyYXlMaWtlKG9iai5kYXRhKVxuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrZWQgKGxlbmd0aCkge1xuICAvLyBOb3RlOiBjYW5ub3QgdXNlIGBsZW5ndGggPCBLX01BWF9MRU5HVEhgIGhlcmUgYmVjYXVzZSB0aGF0IGZhaWxzIHdoZW5cbiAgLy8gbGVuZ3RoIGlzIE5hTiAod2hpY2ggaXMgb3RoZXJ3aXNlIGNvZXJjZWQgdG8gemVyby4pXG4gIGlmIChsZW5ndGggPj0gS19NQVhfTEVOR1RIKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0F0dGVtcHQgdG8gYWxsb2NhdGUgQnVmZmVyIGxhcmdlciB0aGFuIG1heGltdW0gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgJ3NpemU6IDB4JyArIEtfTUFYX0xFTkdUSC50b1N0cmluZygxNikgKyAnIGJ5dGVzJylcbiAgfVxuICByZXR1cm4gbGVuZ3RoIHwgMFxufVxuXG5mdW5jdGlvbiBTbG93QnVmZmVyIChsZW5ndGgpIHtcbiAgaWYgKCtsZW5ndGggIT0gbGVuZ3RoKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgZXFlcWVxXG4gICAgbGVuZ3RoID0gMFxuICB9XG4gIHJldHVybiBCdWZmZXIuYWxsb2MoK2xlbmd0aClcbn1cblxuQnVmZmVyLmlzQnVmZmVyID0gZnVuY3Rpb24gaXNCdWZmZXIgKGIpIHtcbiAgcmV0dXJuIGIgIT0gbnVsbCAmJiBiLl9pc0J1ZmZlciA9PT0gdHJ1ZSAmJlxuICAgIGIgIT09IEJ1ZmZlci5wcm90b3R5cGUgLy8gc28gQnVmZmVyLmlzQnVmZmVyKEJ1ZmZlci5wcm90b3R5cGUpIHdpbGwgYmUgZmFsc2Vcbn1cblxuQnVmZmVyLmNvbXBhcmUgPSBmdW5jdGlvbiBjb21wYXJlIChhLCBiKSB7XG4gIGlmIChpc0luc3RhbmNlKGEsIFVpbnQ4QXJyYXkpKSBhID0gQnVmZmVyLmZyb20oYSwgYS5vZmZzZXQsIGEuYnl0ZUxlbmd0aClcbiAgaWYgKGlzSW5zdGFuY2UoYiwgVWludDhBcnJheSkpIGIgPSBCdWZmZXIuZnJvbShiLCBiLm9mZnNldCwgYi5ieXRlTGVuZ3RoKVxuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihhKSB8fCAhQnVmZmVyLmlzQnVmZmVyKGIpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICdUaGUgXCJidWYxXCIsIFwiYnVmMlwiIGFyZ3VtZW50cyBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5J1xuICAgIClcbiAgfVxuXG4gIGlmIChhID09PSBiKSByZXR1cm4gMFxuXG4gIGxldCB4ID0gYS5sZW5ndGhcbiAgbGV0IHkgPSBiLmxlbmd0aFxuXG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSBNYXRoLm1pbih4LCB5KTsgaSA8IGxlbjsgKytpKSB7XG4gICAgaWYgKGFbaV0gIT09IGJbaV0pIHtcbiAgICAgIHggPSBhW2ldXG4gICAgICB5ID0gYltpXVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICBpZiAoeCA8IHkpIHJldHVybiAtMVxuICBpZiAoeSA8IHgpIHJldHVybiAxXG4gIHJldHVybiAwXG59XG5cbkJ1ZmZlci5pc0VuY29kaW5nID0gZnVuY3Rpb24gaXNFbmNvZGluZyAoZW5jb2RpbmcpIHtcbiAgc3dpdGNoIChTdHJpbmcoZW5jb2RpbmcpLnRvTG93ZXJDYXNlKCkpIHtcbiAgICBjYXNlICdoZXgnOlxuICAgIGNhc2UgJ3V0ZjgnOlxuICAgIGNhc2UgJ3V0Zi04JzpcbiAgICBjYXNlICdhc2NpaSc6XG4gICAgY2FzZSAnbGF0aW4xJzpcbiAgICBjYXNlICdiaW5hcnknOlxuICAgIGNhc2UgJ2Jhc2U2NCc6XG4gICAgY2FzZSAndWNzMic6XG4gICAgY2FzZSAndWNzLTInOlxuICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgIHJldHVybiB0cnVlXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbkJ1ZmZlci5jb25jYXQgPSBmdW5jdGlvbiBjb25jYXQgKGxpc3QsIGxlbmd0aCkge1xuICBpZiAoIUFycmF5LmlzQXJyYXkobGlzdCkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImxpc3RcIiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKVxuICB9XG5cbiAgaWYgKGxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5hbGxvYygwKVxuICB9XG5cbiAgbGV0IGlcbiAgaWYgKGxlbmd0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgbGVuZ3RoID0gMFxuICAgIGZvciAoaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgKytpKSB7XG4gICAgICBsZW5ndGggKz0gbGlzdFtpXS5sZW5ndGhcbiAgICB9XG4gIH1cblxuICBjb25zdCBidWZmZXIgPSBCdWZmZXIuYWxsb2NVbnNhZmUobGVuZ3RoKVxuICBsZXQgcG9zID0gMFxuICBmb3IgKGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7ICsraSkge1xuICAgIGxldCBidWYgPSBsaXN0W2ldXG4gICAgaWYgKGlzSW5zdGFuY2UoYnVmLCBVaW50OEFycmF5KSkge1xuICAgICAgaWYgKHBvcyArIGJ1Zi5sZW5ndGggPiBidWZmZXIubGVuZ3RoKSB7XG4gICAgICAgIGlmICghQnVmZmVyLmlzQnVmZmVyKGJ1ZikpIGJ1ZiA9IEJ1ZmZlci5mcm9tKGJ1ZilcbiAgICAgICAgYnVmLmNvcHkoYnVmZmVyLCBwb3MpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBVaW50OEFycmF5LnByb3RvdHlwZS5zZXQuY2FsbChcbiAgICAgICAgICBidWZmZXIsXG4gICAgICAgICAgYnVmLFxuICAgICAgICAgIHBvc1xuICAgICAgICApXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghQnVmZmVyLmlzQnVmZmVyKGJ1ZikpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wibGlzdFwiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpXG4gICAgfSBlbHNlIHtcbiAgICAgIGJ1Zi5jb3B5KGJ1ZmZlciwgcG9zKVxuICAgIH1cbiAgICBwb3MgKz0gYnVmLmxlbmd0aFxuICB9XG4gIHJldHVybiBidWZmZXJcbn1cblxuZnVuY3Rpb24gYnl0ZUxlbmd0aCAoc3RyaW5nLCBlbmNvZGluZykge1xuICBpZiAoQnVmZmVyLmlzQnVmZmVyKHN0cmluZykpIHtcbiAgICByZXR1cm4gc3RyaW5nLmxlbmd0aFxuICB9XG4gIGlmIChBcnJheUJ1ZmZlci5pc1ZpZXcoc3RyaW5nKSB8fCBpc0luc3RhbmNlKHN0cmluZywgQXJyYXlCdWZmZXIpKSB7XG4gICAgcmV0dXJuIHN0cmluZy5ieXRlTGVuZ3RoXG4gIH1cbiAgaWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICdUaGUgXCJzdHJpbmdcIiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBvciBBcnJheUJ1ZmZlci4gJyArXG4gICAgICAnUmVjZWl2ZWQgdHlwZSAnICsgdHlwZW9mIHN0cmluZ1xuICAgIClcbiAgfVxuXG4gIGNvbnN0IGxlbiA9IHN0cmluZy5sZW5ndGhcbiAgY29uc3QgbXVzdE1hdGNoID0gKGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSA9PT0gdHJ1ZSlcbiAgaWYgKCFtdXN0TWF0Y2ggJiYgbGVuID09PSAwKSByZXR1cm4gMFxuXG4gIC8vIFVzZSBhIGZvciBsb29wIHRvIGF2b2lkIHJlY3Vyc2lvblxuICBsZXQgbG93ZXJlZENhc2UgPSBmYWxzZVxuICBmb3IgKDs7KSB7XG4gICAgc3dpdGNoIChlbmNvZGluZykge1xuICAgICAgY2FzZSAnYXNjaWknOlxuICAgICAgY2FzZSAnbGF0aW4xJzpcbiAgICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICAgIHJldHVybiBsZW5cbiAgICAgIGNhc2UgJ3V0ZjgnOlxuICAgICAgY2FzZSAndXRmLTgnOlxuICAgICAgICByZXR1cm4gdXRmOFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGhcbiAgICAgIGNhc2UgJ3VjczInOlxuICAgICAgY2FzZSAndWNzLTInOlxuICAgICAgY2FzZSAndXRmMTZsZSc6XG4gICAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICAgIHJldHVybiBsZW4gKiAyXG4gICAgICBjYXNlICdoZXgnOlxuICAgICAgICByZXR1cm4gbGVuID4+PiAxXG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgICByZXR1cm4gYmFzZTY0VG9CeXRlcyhzdHJpbmcpLmxlbmd0aFxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKGxvd2VyZWRDYXNlKSB7XG4gICAgICAgICAgcmV0dXJuIG11c3RNYXRjaCA/IC0xIDogdXRmOFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGggLy8gYXNzdW1lIHV0ZjhcbiAgICAgICAgfVxuICAgICAgICBlbmNvZGluZyA9ICgnJyArIGVuY29kaW5nKS50b0xvd2VyQ2FzZSgpXG4gICAgICAgIGxvd2VyZWRDYXNlID0gdHJ1ZVxuICAgIH1cbiAgfVxufVxuQnVmZmVyLmJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoXG5cbmZ1bmN0aW9uIHNsb3dUb1N0cmluZyAoZW5jb2RpbmcsIHN0YXJ0LCBlbmQpIHtcbiAgbGV0IGxvd2VyZWRDYXNlID0gZmFsc2VcblxuICAvLyBObyBuZWVkIHRvIHZlcmlmeSB0aGF0IFwidGhpcy5sZW5ndGggPD0gTUFYX1VJTlQzMlwiIHNpbmNlIGl0J3MgYSByZWFkLW9ubHlcbiAgLy8gcHJvcGVydHkgb2YgYSB0eXBlZCBhcnJheS5cblxuICAvLyBUaGlzIGJlaGF2ZXMgbmVpdGhlciBsaWtlIFN0cmluZyBub3IgVWludDhBcnJheSBpbiB0aGF0IHdlIHNldCBzdGFydC9lbmRcbiAgLy8gdG8gdGhlaXIgdXBwZXIvbG93ZXIgYm91bmRzIGlmIHRoZSB2YWx1ZSBwYXNzZWQgaXMgb3V0IG9mIHJhbmdlLlxuICAvLyB1bmRlZmluZWQgaXMgaGFuZGxlZCBzcGVjaWFsbHkgYXMgcGVyIEVDTUEtMjYyIDZ0aCBFZGl0aW9uLFxuICAvLyBTZWN0aW9uIDEzLjMuMy43IFJ1bnRpbWUgU2VtYW50aWNzOiBLZXllZEJpbmRpbmdJbml0aWFsaXphdGlvbi5cbiAgaWYgKHN0YXJ0ID09PSB1bmRlZmluZWQgfHwgc3RhcnQgPCAwKSB7XG4gICAgc3RhcnQgPSAwXG4gIH1cbiAgLy8gUmV0dXJuIGVhcmx5IGlmIHN0YXJ0ID4gdGhpcy5sZW5ndGguIERvbmUgaGVyZSB0byBwcmV2ZW50IHBvdGVudGlhbCB1aW50MzJcbiAgLy8gY29lcmNpb24gZmFpbCBiZWxvdy5cbiAgaWYgKHN0YXJ0ID4gdGhpcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIGlmIChlbmQgPT09IHVuZGVmaW5lZCB8fCBlbmQgPiB0aGlzLmxlbmd0aCkge1xuICAgIGVuZCA9IHRoaXMubGVuZ3RoXG4gIH1cblxuICBpZiAoZW5kIDw9IDApIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIC8vIEZvcmNlIGNvZXJjaW9uIHRvIHVpbnQzMi4gVGhpcyB3aWxsIGFsc28gY29lcmNlIGZhbHNleS9OYU4gdmFsdWVzIHRvIDAuXG4gIGVuZCA+Pj49IDBcbiAgc3RhcnQgPj4+PSAwXG5cbiAgaWYgKGVuZCA8PSBzdGFydCkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgaWYgKCFlbmNvZGluZykgZW5jb2RpbmcgPSAndXRmOCdcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIHN3aXRjaCAoZW5jb2RpbmcpIHtcbiAgICAgIGNhc2UgJ2hleCc6XG4gICAgICAgIHJldHVybiBoZXhTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICd1dGY4JzpcbiAgICAgIGNhc2UgJ3V0Zi04JzpcbiAgICAgICAgcmV0dXJuIHV0ZjhTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICdhc2NpaSc6XG4gICAgICAgIHJldHVybiBhc2NpaVNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ2xhdGluMSc6XG4gICAgICBjYXNlICdiaW5hcnknOlxuICAgICAgICByZXR1cm4gbGF0aW4xU2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgICAgcmV0dXJuIGJhc2U2NFNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ3VjczInOlxuICAgICAgY2FzZSAndWNzLTInOlxuICAgICAgY2FzZSAndXRmMTZsZSc6XG4gICAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICAgIHJldHVybiB1dGYxNmxlU2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKGxvd2VyZWRDYXNlKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIGVuY29kaW5nOiAnICsgZW5jb2RpbmcpXG4gICAgICAgIGVuY29kaW5nID0gKGVuY29kaW5nICsgJycpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgbG93ZXJlZENhc2UgPSB0cnVlXG4gICAgfVxuICB9XG59XG5cbi8vIFRoaXMgcHJvcGVydHkgaXMgdXNlZCBieSBgQnVmZmVyLmlzQnVmZmVyYCAoYW5kIHRoZSBgaXMtYnVmZmVyYCBucG0gcGFja2FnZSlcbi8vIHRvIGRldGVjdCBhIEJ1ZmZlciBpbnN0YW5jZS4gSXQncyBub3QgcG9zc2libGUgdG8gdXNlIGBpbnN0YW5jZW9mIEJ1ZmZlcmBcbi8vIHJlbGlhYmx5IGluIGEgYnJvd3NlcmlmeSBjb250ZXh0IGJlY2F1c2UgdGhlcmUgY291bGQgYmUgbXVsdGlwbGUgZGlmZmVyZW50XG4vLyBjb3BpZXMgb2YgdGhlICdidWZmZXInIHBhY2thZ2UgaW4gdXNlLiBUaGlzIG1ldGhvZCB3b3JrcyBldmVuIGZvciBCdWZmZXJcbi8vIGluc3RhbmNlcyB0aGF0IHdlcmUgY3JlYXRlZCBmcm9tIGFub3RoZXIgY29weSBvZiB0aGUgYGJ1ZmZlcmAgcGFja2FnZS5cbi8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXIvaXNzdWVzLzE1NFxuQnVmZmVyLnByb3RvdHlwZS5faXNCdWZmZXIgPSB0cnVlXG5cbmZ1bmN0aW9uIHN3YXAgKGIsIG4sIG0pIHtcbiAgY29uc3QgaSA9IGJbbl1cbiAgYltuXSA9IGJbbV1cbiAgYlttXSA9IGlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5zd2FwMTYgPSBmdW5jdGlvbiBzd2FwMTYgKCkge1xuICBjb25zdCBsZW4gPSB0aGlzLmxlbmd0aFxuICBpZiAobGVuICUgMiAhPT0gMCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMTYtYml0cycpXG4gIH1cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkgKz0gMikge1xuICAgIHN3YXAodGhpcywgaSwgaSArIDEpXG4gIH1cbiAgcmV0dXJuIHRoaXNcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5zd2FwMzIgPSBmdW5jdGlvbiBzd2FwMzIgKCkge1xuICBjb25zdCBsZW4gPSB0aGlzLmxlbmd0aFxuICBpZiAobGVuICUgNCAhPT0gMCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMzItYml0cycpXG4gIH1cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkgKz0gNCkge1xuICAgIHN3YXAodGhpcywgaSwgaSArIDMpXG4gICAgc3dhcCh0aGlzLCBpICsgMSwgaSArIDIpXG4gIH1cbiAgcmV0dXJuIHRoaXNcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5zd2FwNjQgPSBmdW5jdGlvbiBzd2FwNjQgKCkge1xuICBjb25zdCBsZW4gPSB0aGlzLmxlbmd0aFxuICBpZiAobGVuICUgOCAhPT0gMCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNjQtYml0cycpXG4gIH1cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkgKz0gOCkge1xuICAgIHN3YXAodGhpcywgaSwgaSArIDcpXG4gICAgc3dhcCh0aGlzLCBpICsgMSwgaSArIDYpXG4gICAgc3dhcCh0aGlzLCBpICsgMiwgaSArIDUpXG4gICAgc3dhcCh0aGlzLCBpICsgMywgaSArIDQpXG4gIH1cbiAgcmV0dXJuIHRoaXNcbn1cblxuQnVmZmVyLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nICgpIHtcbiAgY29uc3QgbGVuZ3RoID0gdGhpcy5sZW5ndGhcbiAgaWYgKGxlbmd0aCA9PT0gMCkgcmV0dXJuICcnXG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSByZXR1cm4gdXRmOFNsaWNlKHRoaXMsIDAsIGxlbmd0aClcbiAgcmV0dXJuIHNsb3dUb1N0cmluZy5hcHBseSh0aGlzLCBhcmd1bWVudHMpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcgPSBCdWZmZXIucHJvdG90eXBlLnRvU3RyaW5nXG5cbkJ1ZmZlci5wcm90b3R5cGUuZXF1YWxzID0gZnVuY3Rpb24gZXF1YWxzIChiKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyJylcbiAgaWYgKHRoaXMgPT09IGIpIHJldHVybiB0cnVlXG4gIHJldHVybiBCdWZmZXIuY29tcGFyZSh0aGlzLCBiKSA9PT0gMFxufVxuXG5CdWZmZXIucHJvdG90eXBlLmluc3BlY3QgPSBmdW5jdGlvbiBpbnNwZWN0ICgpIHtcbiAgbGV0IHN0ciA9ICcnXG4gIGNvbnN0IG1heCA9IGV4cG9ydHMuSU5TUEVDVF9NQVhfQllURVNcbiAgc3RyID0gdGhpcy50b1N0cmluZygnaGV4JywgMCwgbWF4KS5yZXBsYWNlKC8oLnsyfSkvZywgJyQxICcpLnRyaW0oKVxuICBpZiAodGhpcy5sZW5ndGggPiBtYXgpIHN0ciArPSAnIC4uLiAnXG4gIHJldHVybiAnPEJ1ZmZlciAnICsgc3RyICsgJz4nXG59XG5pZiAoY3VzdG9tSW5zcGVjdFN5bWJvbCkge1xuICBCdWZmZXIucHJvdG90eXBlW2N1c3RvbUluc3BlY3RTeW1ib2xdID0gQnVmZmVyLnByb3RvdHlwZS5pbnNwZWN0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uIGNvbXBhcmUgKHRhcmdldCwgc3RhcnQsIGVuZCwgdGhpc1N0YXJ0LCB0aGlzRW5kKSB7XG4gIGlmIChpc0luc3RhbmNlKHRhcmdldCwgVWludDhBcnJheSkpIHtcbiAgICB0YXJnZXQgPSBCdWZmZXIuZnJvbSh0YXJnZXQsIHRhcmdldC5vZmZzZXQsIHRhcmdldC5ieXRlTGVuZ3RoKVxuICB9XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKHRhcmdldCkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgJ1RoZSBcInRhcmdldFwiIGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgQnVmZmVyIG9yIFVpbnQ4QXJyYXkuICcgK1xuICAgICAgJ1JlY2VpdmVkIHR5cGUgJyArICh0eXBlb2YgdGFyZ2V0KVxuICAgIClcbiAgfVxuXG4gIGlmIChzdGFydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgc3RhcnQgPSAwXG4gIH1cbiAgaWYgKGVuZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZW5kID0gdGFyZ2V0ID8gdGFyZ2V0Lmxlbmd0aCA6IDBcbiAgfVxuICBpZiAodGhpc1N0YXJ0ID09PSB1bmRlZmluZWQpIHtcbiAgICB0aGlzU3RhcnQgPSAwXG4gIH1cbiAgaWYgKHRoaXNFbmQgPT09IHVuZGVmaW5lZCkge1xuICAgIHRoaXNFbmQgPSB0aGlzLmxlbmd0aFxuICB9XG5cbiAgaWYgKHN0YXJ0IDwgMCB8fCBlbmQgPiB0YXJnZXQubGVuZ3RoIHx8IHRoaXNTdGFydCA8IDAgfHwgdGhpc0VuZCA+IHRoaXMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ291dCBvZiByYW5nZSBpbmRleCcpXG4gIH1cblxuICBpZiAodGhpc1N0YXJ0ID49IHRoaXNFbmQgJiYgc3RhcnQgPj0gZW5kKSB7XG4gICAgcmV0dXJuIDBcbiAgfVxuICBpZiAodGhpc1N0YXJ0ID49IHRoaXNFbmQpIHtcbiAgICByZXR1cm4gLTFcbiAgfVxuICBpZiAoc3RhcnQgPj0gZW5kKSB7XG4gICAgcmV0dXJuIDFcbiAgfVxuXG4gIHN0YXJ0ID4+Pj0gMFxuICBlbmQgPj4+PSAwXG4gIHRoaXNTdGFydCA+Pj49IDBcbiAgdGhpc0VuZCA+Pj49IDBcblxuICBpZiAodGhpcyA9PT0gdGFyZ2V0KSByZXR1cm4gMFxuXG4gIGxldCB4ID0gdGhpc0VuZCAtIHRoaXNTdGFydFxuICBsZXQgeSA9IGVuZCAtIHN0YXJ0XG4gIGNvbnN0IGxlbiA9IE1hdGgubWluKHgsIHkpXG5cbiAgY29uc3QgdGhpc0NvcHkgPSB0aGlzLnNsaWNlKHRoaXNTdGFydCwgdGhpc0VuZClcbiAgY29uc3QgdGFyZ2V0Q29weSA9IHRhcmdldC5zbGljZShzdGFydCwgZW5kKVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyArK2kpIHtcbiAgICBpZiAodGhpc0NvcHlbaV0gIT09IHRhcmdldENvcHlbaV0pIHtcbiAgICAgIHggPSB0aGlzQ29weVtpXVxuICAgICAgeSA9IHRhcmdldENvcHlbaV1cbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgaWYgKHggPCB5KSByZXR1cm4gLTFcbiAgaWYgKHkgPCB4KSByZXR1cm4gMVxuICByZXR1cm4gMFxufVxuXG4vLyBGaW5kcyBlaXRoZXIgdGhlIGZpcnN0IGluZGV4IG9mIGB2YWxgIGluIGBidWZmZXJgIGF0IG9mZnNldCA+PSBgYnl0ZU9mZnNldGAsXG4vLyBPUiB0aGUgbGFzdCBpbmRleCBvZiBgdmFsYCBpbiBgYnVmZmVyYCBhdCBvZmZzZXQgPD0gYGJ5dGVPZmZzZXRgLlxuLy9cbi8vIEFyZ3VtZW50czpcbi8vIC0gYnVmZmVyIC0gYSBCdWZmZXIgdG8gc2VhcmNoXG4vLyAtIHZhbCAtIGEgc3RyaW5nLCBCdWZmZXIsIG9yIG51bWJlclxuLy8gLSBieXRlT2Zmc2V0IC0gYW4gaW5kZXggaW50byBgYnVmZmVyYDsgd2lsbCBiZSBjbGFtcGVkIHRvIGFuIGludDMyXG4vLyAtIGVuY29kaW5nIC0gYW4gb3B0aW9uYWwgZW5jb2RpbmcsIHJlbGV2YW50IGlzIHZhbCBpcyBhIHN0cmluZ1xuLy8gLSBkaXIgLSB0cnVlIGZvciBpbmRleE9mLCBmYWxzZSBmb3IgbGFzdEluZGV4T2ZcbmZ1bmN0aW9uIGJpZGlyZWN0aW9uYWxJbmRleE9mIChidWZmZXIsIHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcsIGRpcikge1xuICAvLyBFbXB0eSBidWZmZXIgbWVhbnMgbm8gbWF0Y2hcbiAgaWYgKGJ1ZmZlci5sZW5ndGggPT09IDApIHJldHVybiAtMVxuXG4gIC8vIE5vcm1hbGl6ZSBieXRlT2Zmc2V0XG4gIGlmICh0eXBlb2YgYnl0ZU9mZnNldCA9PT0gJ3N0cmluZycpIHtcbiAgICBlbmNvZGluZyA9IGJ5dGVPZmZzZXRcbiAgICBieXRlT2Zmc2V0ID0gMFxuICB9IGVsc2UgaWYgKGJ5dGVPZmZzZXQgPiAweDdmZmZmZmZmKSB7XG4gICAgYnl0ZU9mZnNldCA9IDB4N2ZmZmZmZmZcbiAgfSBlbHNlIGlmIChieXRlT2Zmc2V0IDwgLTB4ODAwMDAwMDApIHtcbiAgICBieXRlT2Zmc2V0ID0gLTB4ODAwMDAwMDBcbiAgfVxuICBieXRlT2Zmc2V0ID0gK2J5dGVPZmZzZXQgLy8gQ29lcmNlIHRvIE51bWJlci5cbiAgaWYgKG51bWJlcklzTmFOKGJ5dGVPZmZzZXQpKSB7XG4gICAgLy8gYnl0ZU9mZnNldDogaXQgaXQncyB1bmRlZmluZWQsIG51bGwsIE5hTiwgXCJmb29cIiwgZXRjLCBzZWFyY2ggd2hvbGUgYnVmZmVyXG4gICAgYnl0ZU9mZnNldCA9IGRpciA/IDAgOiAoYnVmZmVyLmxlbmd0aCAtIDEpXG4gIH1cblxuICAvLyBOb3JtYWxpemUgYnl0ZU9mZnNldDogbmVnYXRpdmUgb2Zmc2V0cyBzdGFydCBmcm9tIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlclxuICBpZiAoYnl0ZU9mZnNldCA8IDApIGJ5dGVPZmZzZXQgPSBidWZmZXIubGVuZ3RoICsgYnl0ZU9mZnNldFxuICBpZiAoYnl0ZU9mZnNldCA+PSBidWZmZXIubGVuZ3RoKSB7XG4gICAgaWYgKGRpcikgcmV0dXJuIC0xXG4gICAgZWxzZSBieXRlT2Zmc2V0ID0gYnVmZmVyLmxlbmd0aCAtIDFcbiAgfSBlbHNlIGlmIChieXRlT2Zmc2V0IDwgMCkge1xuICAgIGlmIChkaXIpIGJ5dGVPZmZzZXQgPSAwXG4gICAgZWxzZSByZXR1cm4gLTFcbiAgfVxuXG4gIC8vIE5vcm1hbGl6ZSB2YWxcbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFsID0gQnVmZmVyLmZyb20odmFsLCBlbmNvZGluZylcbiAgfVxuXG4gIC8vIEZpbmFsbHksIHNlYXJjaCBlaXRoZXIgaW5kZXhPZiAoaWYgZGlyIGlzIHRydWUpIG9yIGxhc3RJbmRleE9mXG4gIGlmIChCdWZmZXIuaXNCdWZmZXIodmFsKSkge1xuICAgIC8vIFNwZWNpYWwgY2FzZTogbG9va2luZyBmb3IgZW1wdHkgc3RyaW5nL2J1ZmZlciBhbHdheXMgZmFpbHNcbiAgICBpZiAodmFsLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIC0xXG4gICAgfVxuICAgIHJldHVybiBhcnJheUluZGV4T2YoYnVmZmVyLCB2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCBkaXIpXG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICB2YWwgPSB2YWwgJiAweEZGIC8vIFNlYXJjaCBmb3IgYSBieXRlIHZhbHVlIFswLTI1NV1cbiAgICBpZiAodHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2YgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGlmIChkaXIpIHtcbiAgICAgICAgcmV0dXJuIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChidWZmZXIsIHZhbCwgYnl0ZU9mZnNldClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBVaW50OEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGJ1ZmZlciwgdmFsLCBieXRlT2Zmc2V0KVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYXJyYXlJbmRleE9mKGJ1ZmZlciwgW3ZhbF0sIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCBkaXIpXG4gIH1cblxuICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXInKVxufVxuXG5mdW5jdGlvbiBhcnJheUluZGV4T2YgKGFyciwgdmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZywgZGlyKSB7XG4gIGxldCBpbmRleFNpemUgPSAxXG4gIGxldCBhcnJMZW5ndGggPSBhcnIubGVuZ3RoXG4gIGxldCB2YWxMZW5ndGggPSB2YWwubGVuZ3RoXG5cbiAgaWYgKGVuY29kaW5nICE9PSB1bmRlZmluZWQpIHtcbiAgICBlbmNvZGluZyA9IFN0cmluZyhlbmNvZGluZykudG9Mb3dlckNhc2UoKVxuICAgIGlmIChlbmNvZGluZyA9PT0gJ3VjczInIHx8IGVuY29kaW5nID09PSAndWNzLTInIHx8XG4gICAgICAgIGVuY29kaW5nID09PSAndXRmMTZsZScgfHwgZW5jb2RpbmcgPT09ICd1dGYtMTZsZScpIHtcbiAgICAgIGlmIChhcnIubGVuZ3RoIDwgMiB8fCB2YWwubGVuZ3RoIDwgMikge1xuICAgICAgICByZXR1cm4gLTFcbiAgICAgIH1cbiAgICAgIGluZGV4U2l6ZSA9IDJcbiAgICAgIGFyckxlbmd0aCAvPSAyXG4gICAgICB2YWxMZW5ndGggLz0gMlxuICAgICAgYnl0ZU9mZnNldCAvPSAyXG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcmVhZCAoYnVmLCBpKSB7XG4gICAgaWYgKGluZGV4U2l6ZSA9PT0gMSkge1xuICAgICAgcmV0dXJuIGJ1ZltpXVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYnVmLnJlYWRVSW50MTZCRShpICogaW5kZXhTaXplKVxuICAgIH1cbiAgfVxuXG4gIGxldCBpXG4gIGlmIChkaXIpIHtcbiAgICBsZXQgZm91bmRJbmRleCA9IC0xXG4gICAgZm9yIChpID0gYnl0ZU9mZnNldDsgaSA8IGFyckxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAocmVhZChhcnIsIGkpID09PSByZWFkKHZhbCwgZm91bmRJbmRleCA9PT0gLTEgPyAwIDogaSAtIGZvdW5kSW5kZXgpKSB7XG4gICAgICAgIGlmIChmb3VuZEluZGV4ID09PSAtMSkgZm91bmRJbmRleCA9IGlcbiAgICAgICAgaWYgKGkgLSBmb3VuZEluZGV4ICsgMSA9PT0gdmFsTGVuZ3RoKSByZXR1cm4gZm91bmRJbmRleCAqIGluZGV4U2l6ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGZvdW5kSW5kZXggIT09IC0xKSBpIC09IGkgLSBmb3VuZEluZGV4XG4gICAgICAgIGZvdW5kSW5kZXggPSAtMVxuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoYnl0ZU9mZnNldCArIHZhbExlbmd0aCA+IGFyckxlbmd0aCkgYnl0ZU9mZnNldCA9IGFyckxlbmd0aCAtIHZhbExlbmd0aFxuICAgIGZvciAoaSA9IGJ5dGVPZmZzZXQ7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBsZXQgZm91bmQgPSB0cnVlXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHZhbExlbmd0aDsgaisrKSB7XG4gICAgICAgIGlmIChyZWFkKGFyciwgaSArIGopICE9PSByZWFkKHZhbCwgaikpIHtcbiAgICAgICAgICBmb3VuZCA9IGZhbHNlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGZvdW5kKSByZXR1cm4gaVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAtMVxufVxuXG5CdWZmZXIucHJvdG90eXBlLmluY2x1ZGVzID0gZnVuY3Rpb24gaW5jbHVkZXMgKHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcpIHtcbiAgcmV0dXJuIHRoaXMuaW5kZXhPZih2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nKSAhPT0gLTFcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5pbmRleE9mID0gZnVuY3Rpb24gaW5kZXhPZiAodmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZykge1xuICByZXR1cm4gYmlkaXJlY3Rpb25hbEluZGV4T2YodGhpcywgdmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZywgdHJ1ZSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5sYXN0SW5kZXhPZiA9IGZ1bmN0aW9uIGxhc3RJbmRleE9mICh2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nKSB7XG4gIHJldHVybiBiaWRpcmVjdGlvbmFsSW5kZXhPZih0aGlzLCB2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCBmYWxzZSlcbn1cblxuZnVuY3Rpb24gaGV4V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICBvZmZzZXQgPSBOdW1iZXIob2Zmc2V0KSB8fCAwXG4gIGNvbnN0IHJlbWFpbmluZyA9IGJ1Zi5sZW5ndGggLSBvZmZzZXRcbiAgaWYgKCFsZW5ndGgpIHtcbiAgICBsZW5ndGggPSByZW1haW5pbmdcbiAgfSBlbHNlIHtcbiAgICBsZW5ndGggPSBOdW1iZXIobGVuZ3RoKVxuICAgIGlmIChsZW5ndGggPiByZW1haW5pbmcpIHtcbiAgICAgIGxlbmd0aCA9IHJlbWFpbmluZ1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHN0ckxlbiA9IHN0cmluZy5sZW5ndGhcblxuICBpZiAobGVuZ3RoID4gc3RyTGVuIC8gMikge1xuICAgIGxlbmd0aCA9IHN0ckxlbiAvIDJcbiAgfVxuICBsZXQgaVxuICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHtcbiAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUludChzdHJpbmcuc3Vic3RyKGkgKiAyLCAyKSwgMTYpXG4gICAgaWYgKG51bWJlcklzTmFOKHBhcnNlZCkpIHJldHVybiBpXG4gICAgYnVmW29mZnNldCArIGldID0gcGFyc2VkXG4gIH1cbiAgcmV0dXJuIGlcbn1cblxuZnVuY3Rpb24gdXRmOFdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIodXRmOFRvQnl0ZXMoc3RyaW5nLCBidWYubGVuZ3RoIC0gb2Zmc2V0KSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gYXNjaWlXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKGFzY2lpVG9CeXRlcyhzdHJpbmcpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBiYXNlNjRXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKGJhc2U2NFRvQnl0ZXMoc3RyaW5nKSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gdWNzMldyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIodXRmMTZsZVRvQnl0ZXMoc3RyaW5nLCBidWYubGVuZ3RoIC0gb2Zmc2V0KSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uIHdyaXRlIChzdHJpbmcsIG9mZnNldCwgbGVuZ3RoLCBlbmNvZGluZykge1xuICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nKVxuICBpZiAob2Zmc2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICBlbmNvZGluZyA9ICd1dGY4J1xuICAgIGxlbmd0aCA9IHRoaXMubGVuZ3RoXG4gICAgb2Zmc2V0ID0gMFxuICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nLCBlbmNvZGluZylcbiAgfSBlbHNlIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygb2Zmc2V0ID09PSAnc3RyaW5nJykge1xuICAgIGVuY29kaW5nID0gb2Zmc2V0XG4gICAgbGVuZ3RoID0gdGhpcy5sZW5ndGhcbiAgICBvZmZzZXQgPSAwXG4gIC8vIEJ1ZmZlciN3cml0ZShzdHJpbmcsIG9mZnNldFssIGxlbmd0aF1bLCBlbmNvZGluZ10pXG4gIH0gZWxzZSBpZiAoaXNGaW5pdGUob2Zmc2V0KSkge1xuICAgIG9mZnNldCA9IG9mZnNldCA+Pj4gMFxuICAgIGlmIChpc0Zpbml0ZShsZW5ndGgpKSB7XG4gICAgICBsZW5ndGggPSBsZW5ndGggPj4+IDBcbiAgICAgIGlmIChlbmNvZGluZyA9PT0gdW5kZWZpbmVkKSBlbmNvZGluZyA9ICd1dGY4J1xuICAgIH0gZWxzZSB7XG4gICAgICBlbmNvZGluZyA9IGxlbmd0aFxuICAgICAgbGVuZ3RoID0gdW5kZWZpbmVkXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdCdWZmZXIud3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0WywgbGVuZ3RoXSkgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCdcbiAgICApXG4gIH1cblxuICBjb25zdCByZW1haW5pbmcgPSB0aGlzLmxlbmd0aCAtIG9mZnNldFxuICBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQgfHwgbGVuZ3RoID4gcmVtYWluaW5nKSBsZW5ndGggPSByZW1haW5pbmdcblxuICBpZiAoKHN0cmluZy5sZW5ndGggPiAwICYmIChsZW5ndGggPCAwIHx8IG9mZnNldCA8IDApKSB8fCBvZmZzZXQgPiB0aGlzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdBdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kcycpXG4gIH1cblxuICBpZiAoIWVuY29kaW5nKSBlbmNvZGluZyA9ICd1dGY4J1xuXG4gIGxldCBsb3dlcmVkQ2FzZSA9IGZhbHNlXG4gIGZvciAoOzspIHtcbiAgICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgICBjYXNlICdoZXgnOlxuICAgICAgICByZXR1cm4gaGV4V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAndXRmOCc6XG4gICAgICBjYXNlICd1dGYtOCc6XG4gICAgICAgIHJldHVybiB1dGY4V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAnYXNjaWknOlxuICAgICAgY2FzZSAnbGF0aW4xJzpcbiAgICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICAgIHJldHVybiBhc2NpaVdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ2Jhc2U2NCc6XG4gICAgICAgIC8vIFdhcm5pbmc6IG1heExlbmd0aCBub3QgdGFrZW4gaW50byBhY2NvdW50IGluIGJhc2U2NFdyaXRlXG4gICAgICAgIHJldHVybiBiYXNlNjRXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICd1Y3MyJzpcbiAgICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgICByZXR1cm4gdWNzMldyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChsb3dlcmVkQ2FzZSkgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBlbmNvZGluZzogJyArIGVuY29kaW5nKVxuICAgICAgICBlbmNvZGluZyA9ICgnJyArIGVuY29kaW5nKS50b0xvd2VyQ2FzZSgpXG4gICAgICAgIGxvd2VyZWRDYXNlID0gdHJ1ZVxuICAgIH1cbiAgfVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnRvSlNPTiA9IGZ1bmN0aW9uIHRvSlNPTiAoKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0J1ZmZlcicsXG4gICAgZGF0YTogQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fYXJyIHx8IHRoaXMsIDApXG4gIH1cbn1cblxuZnVuY3Rpb24gYmFzZTY0U2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICBpZiAoc3RhcnQgPT09IDAgJiYgZW5kID09PSBidWYubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGJhc2U2NC5mcm9tQnl0ZUFycmF5KGJ1ZilcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYmFzZTY0LmZyb21CeXRlQXJyYXkoYnVmLnNsaWNlKHN0YXJ0LCBlbmQpKVxuICB9XG59XG5cbmZ1bmN0aW9uIHV0ZjhTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIGVuZCA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGVuZClcbiAgY29uc3QgcmVzID0gW11cblxuICBsZXQgaSA9IHN0YXJ0XG4gIHdoaWxlIChpIDwgZW5kKSB7XG4gICAgY29uc3QgZmlyc3RCeXRlID0gYnVmW2ldXG4gICAgbGV0IGNvZGVQb2ludCA9IG51bGxcbiAgICBsZXQgYnl0ZXNQZXJTZXF1ZW5jZSA9IChmaXJzdEJ5dGUgPiAweEVGKVxuICAgICAgPyA0XG4gICAgICA6IChmaXJzdEJ5dGUgPiAweERGKVxuICAgICAgICAgID8gM1xuICAgICAgICAgIDogKGZpcnN0Qnl0ZSA+IDB4QkYpXG4gICAgICAgICAgICAgID8gMlxuICAgICAgICAgICAgICA6IDFcblxuICAgIGlmIChpICsgYnl0ZXNQZXJTZXF1ZW5jZSA8PSBlbmQpIHtcbiAgICAgIGxldCBzZWNvbmRCeXRlLCB0aGlyZEJ5dGUsIGZvdXJ0aEJ5dGUsIHRlbXBDb2RlUG9pbnRcblxuICAgICAgc3dpdGNoIChieXRlc1BlclNlcXVlbmNlKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAoZmlyc3RCeXRlIDwgMHg4MCkge1xuICAgICAgICAgICAgY29kZVBvaW50ID0gZmlyc3RCeXRlXG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBzZWNvbmRCeXRlID0gYnVmW2kgKyAxXVxuICAgICAgICAgIGlmICgoc2Vjb25kQnl0ZSAmIDB4QzApID09PSAweDgwKSB7XG4gICAgICAgICAgICB0ZW1wQ29kZVBvaW50ID0gKGZpcnN0Qnl0ZSAmIDB4MUYpIDw8IDB4NiB8IChzZWNvbmRCeXRlICYgMHgzRilcbiAgICAgICAgICAgIGlmICh0ZW1wQ29kZVBvaW50ID4gMHg3Rikge1xuICAgICAgICAgICAgICBjb2RlUG9pbnQgPSB0ZW1wQ29kZVBvaW50XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBzZWNvbmRCeXRlID0gYnVmW2kgKyAxXVxuICAgICAgICAgIHRoaXJkQnl0ZSA9IGJ1ZltpICsgMl1cbiAgICAgICAgICBpZiAoKHNlY29uZEJ5dGUgJiAweEMwKSA9PT0gMHg4MCAmJiAodGhpcmRCeXRlICYgMHhDMCkgPT09IDB4ODApIHtcbiAgICAgICAgICAgIHRlbXBDb2RlUG9pbnQgPSAoZmlyc3RCeXRlICYgMHhGKSA8PCAweEMgfCAoc2Vjb25kQnl0ZSAmIDB4M0YpIDw8IDB4NiB8ICh0aGlyZEJ5dGUgJiAweDNGKVxuICAgICAgICAgICAgaWYgKHRlbXBDb2RlUG9pbnQgPiAweDdGRiAmJiAodGVtcENvZGVQb2ludCA8IDB4RDgwMCB8fCB0ZW1wQ29kZVBvaW50ID4gMHhERkZGKSkge1xuICAgICAgICAgICAgICBjb2RlUG9pbnQgPSB0ZW1wQ29kZVBvaW50XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBzZWNvbmRCeXRlID0gYnVmW2kgKyAxXVxuICAgICAgICAgIHRoaXJkQnl0ZSA9IGJ1ZltpICsgMl1cbiAgICAgICAgICBmb3VydGhCeXRlID0gYnVmW2kgKyAzXVxuICAgICAgICAgIGlmICgoc2Vjb25kQnl0ZSAmIDB4QzApID09PSAweDgwICYmICh0aGlyZEJ5dGUgJiAweEMwKSA9PT0gMHg4MCAmJiAoZm91cnRoQnl0ZSAmIDB4QzApID09PSAweDgwKSB7XG4gICAgICAgICAgICB0ZW1wQ29kZVBvaW50ID0gKGZpcnN0Qnl0ZSAmIDB4RikgPDwgMHgxMiB8IChzZWNvbmRCeXRlICYgMHgzRikgPDwgMHhDIHwgKHRoaXJkQnl0ZSAmIDB4M0YpIDw8IDB4NiB8IChmb3VydGhCeXRlICYgMHgzRilcbiAgICAgICAgICAgIGlmICh0ZW1wQ29kZVBvaW50ID4gMHhGRkZGICYmIHRlbXBDb2RlUG9pbnQgPCAweDExMDAwMCkge1xuICAgICAgICAgICAgICBjb2RlUG9pbnQgPSB0ZW1wQ29kZVBvaW50XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjb2RlUG9pbnQgPT09IG51bGwpIHtcbiAgICAgIC8vIHdlIGRpZCBub3QgZ2VuZXJhdGUgYSB2YWxpZCBjb2RlUG9pbnQgc28gaW5zZXJ0IGFcbiAgICAgIC8vIHJlcGxhY2VtZW50IGNoYXIgKFUrRkZGRCkgYW5kIGFkdmFuY2Ugb25seSAxIGJ5dGVcbiAgICAgIGNvZGVQb2ludCA9IDB4RkZGRFxuICAgICAgYnl0ZXNQZXJTZXF1ZW5jZSA9IDFcbiAgICB9IGVsc2UgaWYgKGNvZGVQb2ludCA+IDB4RkZGRikge1xuICAgICAgLy8gZW5jb2RlIHRvIHV0ZjE2IChzdXJyb2dhdGUgcGFpciBkYW5jZSlcbiAgICAgIGNvZGVQb2ludCAtPSAweDEwMDAwXG4gICAgICByZXMucHVzaChjb2RlUG9pbnQgPj4+IDEwICYgMHgzRkYgfCAweEQ4MDApXG4gICAgICBjb2RlUG9pbnQgPSAweERDMDAgfCBjb2RlUG9pbnQgJiAweDNGRlxuICAgIH1cblxuICAgIHJlcy5wdXNoKGNvZGVQb2ludClcbiAgICBpICs9IGJ5dGVzUGVyU2VxdWVuY2VcbiAgfVxuXG4gIHJldHVybiBkZWNvZGVDb2RlUG9pbnRzQXJyYXkocmVzKVxufVxuXG4vLyBCYXNlZCBvbiBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8yMjc0NzI3Mi82ODA3NDIsIHRoZSBicm93c2VyIHdpdGhcbi8vIHRoZSBsb3dlc3QgbGltaXQgaXMgQ2hyb21lLCB3aXRoIDB4MTAwMDAgYXJncy5cbi8vIFdlIGdvIDEgbWFnbml0dWRlIGxlc3MsIGZvciBzYWZldHlcbmNvbnN0IE1BWF9BUkdVTUVOVFNfTEVOR1RIID0gMHgxMDAwXG5cbmZ1bmN0aW9uIGRlY29kZUNvZGVQb2ludHNBcnJheSAoY29kZVBvaW50cykge1xuICBjb25zdCBsZW4gPSBjb2RlUG9pbnRzLmxlbmd0aFxuICBpZiAobGVuIDw9IE1BWF9BUkdVTUVOVFNfTEVOR1RIKSB7XG4gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLCBjb2RlUG9pbnRzKSAvLyBhdm9pZCBleHRyYSBzbGljZSgpXG4gIH1cblxuICAvLyBEZWNvZGUgaW4gY2h1bmtzIHRvIGF2b2lkIFwiY2FsbCBzdGFjayBzaXplIGV4Y2VlZGVkXCIuXG4gIGxldCByZXMgPSAnJ1xuICBsZXQgaSA9IDBcbiAgd2hpbGUgKGkgPCBsZW4pIHtcbiAgICByZXMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShcbiAgICAgIFN0cmluZyxcbiAgICAgIGNvZGVQb2ludHMuc2xpY2UoaSwgaSArPSBNQVhfQVJHVU1FTlRTX0xFTkdUSClcbiAgICApXG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBhc2NpaVNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgbGV0IHJldCA9ICcnXG4gIGVuZCA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGVuZClcblxuICBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkge1xuICAgIHJldCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ1ZltpXSAmIDB4N0YpXG4gIH1cbiAgcmV0dXJuIHJldFxufVxuXG5mdW5jdGlvbiBsYXRpbjFTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIGxldCByZXQgPSAnJ1xuICBlbmQgPSBNYXRoLm1pbihidWYubGVuZ3RoLCBlbmQpXG5cbiAgZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kpIHtcbiAgICByZXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShidWZbaV0pXG4gIH1cbiAgcmV0dXJuIHJldFxufVxuXG5mdW5jdGlvbiBoZXhTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIGNvbnN0IGxlbiA9IGJ1Zi5sZW5ndGhcblxuICBpZiAoIXN0YXJ0IHx8IHN0YXJ0IDwgMCkgc3RhcnQgPSAwXG4gIGlmICghZW5kIHx8IGVuZCA8IDAgfHwgZW5kID4gbGVuKSBlbmQgPSBsZW5cblxuICBsZXQgb3V0ID0gJydcbiAgZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kpIHtcbiAgICBvdXQgKz0gaGV4U2xpY2VMb29rdXBUYWJsZVtidWZbaV1dXG4gIH1cbiAgcmV0dXJuIG91dFxufVxuXG5mdW5jdGlvbiB1dGYxNmxlU2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICBjb25zdCBieXRlcyA9IGJ1Zi5zbGljZShzdGFydCwgZW5kKVxuICBsZXQgcmVzID0gJydcbiAgLy8gSWYgYnl0ZXMubGVuZ3RoIGlzIG9kZCwgdGhlIGxhc3QgOCBiaXRzIG11c3QgYmUgaWdub3JlZCAoc2FtZSBhcyBub2RlLmpzKVxuICBmb3IgKGxldCBpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aCAtIDE7IGkgKz0gMikge1xuICAgIHJlcyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ5dGVzW2ldICsgKGJ5dGVzW2kgKyAxXSAqIDI1NikpXG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG5CdWZmZXIucHJvdG90eXBlLnNsaWNlID0gZnVuY3Rpb24gc2xpY2UgKHN0YXJ0LCBlbmQpIHtcbiAgY29uc3QgbGVuID0gdGhpcy5sZW5ndGhcbiAgc3RhcnQgPSB+fnN0YXJ0XG4gIGVuZCA9IGVuZCA9PT0gdW5kZWZpbmVkID8gbGVuIDogfn5lbmRcblxuICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgc3RhcnQgKz0gbGVuXG4gICAgaWYgKHN0YXJ0IDwgMCkgc3RhcnQgPSAwXG4gIH0gZWxzZSBpZiAoc3RhcnQgPiBsZW4pIHtcbiAgICBzdGFydCA9IGxlblxuICB9XG5cbiAgaWYgKGVuZCA8IDApIHtcbiAgICBlbmQgKz0gbGVuXG4gICAgaWYgKGVuZCA8IDApIGVuZCA9IDBcbiAgfSBlbHNlIGlmIChlbmQgPiBsZW4pIHtcbiAgICBlbmQgPSBsZW5cbiAgfVxuXG4gIGlmIChlbmQgPCBzdGFydCkgZW5kID0gc3RhcnRcblxuICBjb25zdCBuZXdCdWYgPSB0aGlzLnN1YmFycmF5KHN0YXJ0LCBlbmQpXG4gIC8vIFJldHVybiBhbiBhdWdtZW50ZWQgYFVpbnQ4QXJyYXlgIGluc3RhbmNlXG4gIE9iamVjdC5zZXRQcm90b3R5cGVPZihuZXdCdWYsIEJ1ZmZlci5wcm90b3R5cGUpXG5cbiAgcmV0dXJuIG5ld0J1ZlxufVxuXG4vKlxuICogTmVlZCB0byBtYWtlIHN1cmUgdGhhdCBidWZmZXIgaXNuJ3QgdHJ5aW5nIHRvIHdyaXRlIG91dCBvZiBib3VuZHMuXG4gKi9cbmZ1bmN0aW9uIGNoZWNrT2Zmc2V0IChvZmZzZXQsIGV4dCwgbGVuZ3RoKSB7XG4gIGlmICgob2Zmc2V0ICUgMSkgIT09IDAgfHwgb2Zmc2V0IDwgMCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ29mZnNldCBpcyBub3QgdWludCcpXG4gIGlmIChvZmZzZXQgKyBleHQgPiBsZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdUcnlpbmcgdG8gYWNjZXNzIGJleW9uZCBidWZmZXIgbGVuZ3RoJylcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVWludExFID1cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnRMRSA9IGZ1bmN0aW9uIHJlYWRVSW50TEUgKG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0ID4+PiAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoID4+PiAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpXG5cbiAgbGV0IHZhbCA9IHRoaXNbb2Zmc2V0XVxuICBsZXQgbXVsID0gMVxuICBsZXQgaSA9IDBcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyBpXSAqIG11bFxuICB9XG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVaW50QkUgPVxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludEJFID0gZnVuY3Rpb24gcmVhZFVJbnRCRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgPj4+IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggPj4+IDBcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpXG4gIH1cblxuICBsZXQgdmFsID0gdGhpc1tvZmZzZXQgKyAtLWJ5dGVMZW5ndGhdXG4gIGxldCBtdWwgPSAxXG4gIHdoaWxlIChieXRlTGVuZ3RoID4gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHZhbCArPSB0aGlzW29mZnNldCArIC0tYnl0ZUxlbmd0aF0gKiBtdWxcbiAgfVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVWludDggPVxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDggPSBmdW5jdGlvbiByZWFkVUludDggKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0ID4+PiAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMSwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiB0aGlzW29mZnNldF1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVWludDE2TEUgPVxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDE2TEUgPSBmdW5jdGlvbiByZWFkVUludDE2TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0ID4+PiAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiB0aGlzW29mZnNldF0gfCAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVaW50MTZCRSA9XG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MTZCRSA9IGZ1bmN0aW9uIHJlYWRVSW50MTZCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgPj4+IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuICh0aGlzW29mZnNldF0gPDwgOCkgfCB0aGlzW29mZnNldCArIDFdXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVpbnQzMkxFID1cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQzMkxFID0gZnVuY3Rpb24gcmVhZFVJbnQzMkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCA+Pj4gMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuXG4gIHJldHVybiAoKHRoaXNbb2Zmc2V0XSkgfFxuICAgICAgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgOCkgfFxuICAgICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgMTYpKSArXG4gICAgICAodGhpc1tvZmZzZXQgKyAzXSAqIDB4MTAwMDAwMClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVWludDMyQkUgPVxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDMyQkUgPSBmdW5jdGlvbiByZWFkVUludDMyQkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0ID4+PiAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICh0aGlzW29mZnNldF0gKiAweDEwMDAwMDApICtcbiAgICAoKHRoaXNbb2Zmc2V0ICsgMV0gPDwgMTYpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCA4KSB8XG4gICAgdGhpc1tvZmZzZXQgKyAzXSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkQmlnVUludDY0TEUgPSBkZWZpbmVCaWdJbnRNZXRob2QoZnVuY3Rpb24gcmVhZEJpZ1VJbnQ2NExFIChvZmZzZXQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0ID4+PiAwXG4gIHZhbGlkYXRlTnVtYmVyKG9mZnNldCwgJ29mZnNldCcpXG4gIGNvbnN0IGZpcnN0ID0gdGhpc1tvZmZzZXRdXG4gIGNvbnN0IGxhc3QgPSB0aGlzW29mZnNldCArIDddXG4gIGlmIChmaXJzdCA9PT0gdW5kZWZpbmVkIHx8IGxhc3QgPT09IHVuZGVmaW5lZCkge1xuICAgIGJvdW5kc0Vycm9yKG9mZnNldCwgdGhpcy5sZW5ndGggLSA4KVxuICB9XG5cbiAgY29uc3QgbG8gPSBmaXJzdCArXG4gICAgdGhpc1srK29mZnNldF0gKiAyICoqIDggK1xuICAgIHRoaXNbKytvZmZzZXRdICogMiAqKiAxNiArXG4gICAgdGhpc1srK29mZnNldF0gKiAyICoqIDI0XG5cbiAgY29uc3QgaGkgPSB0aGlzWysrb2Zmc2V0XSArXG4gICAgdGhpc1srK29mZnNldF0gKiAyICoqIDggK1xuICAgIHRoaXNbKytvZmZzZXRdICogMiAqKiAxNiArXG4gICAgbGFzdCAqIDIgKiogMjRcblxuICByZXR1cm4gQmlnSW50KGxvKSArIChCaWdJbnQoaGkpIDw8IEJpZ0ludCgzMikpXG59KVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRCaWdVSW50NjRCRSA9IGRlZmluZUJpZ0ludE1ldGhvZChmdW5jdGlvbiByZWFkQmlnVUludDY0QkUgKG9mZnNldCkge1xuICBvZmZzZXQgPSBvZmZzZXQgPj4+IDBcbiAgdmFsaWRhdGVOdW1iZXIob2Zmc2V0LCAnb2Zmc2V0JylcbiAgY29uc3QgZmlyc3QgPSB0aGlzW29mZnNldF1cbiAgY29uc3QgbGFzdCA9IHRoaXNbb2Zmc2V0ICsgN11cbiAgaWYgKGZpcnN0ID09PSB1bmRlZmluZWQgfHwgbGFzdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgYm91bmRzRXJyb3Iob2Zmc2V0LCB0aGlzLmxlbmd0aCAtIDgpXG4gIH1cblxuICBjb25zdCBoaSA9IGZpcnN0ICogMiAqKiAyNCArXG4gICAgdGhpc1srK29mZnNldF0gKiAyICoqIDE2ICtcbiAgICB0aGlzWysrb2Zmc2V0XSAqIDIgKiogOCArXG4gICAgdGhpc1srK29mZnNldF1cblxuICBjb25zdCBsbyA9IHRoaXNbKytvZmZzZXRdICogMiAqKiAyNCArXG4gICAgdGhpc1srK29mZnNldF0gKiAyICoqIDE2ICtcbiAgICB0aGlzWysrb2Zmc2V0XSAqIDIgKiogOCArXG4gICAgbGFzdFxuXG4gIHJldHVybiAoQmlnSW50KGhpKSA8PCBCaWdJbnQoMzIpKSArIEJpZ0ludChsbylcbn0pXG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludExFID0gZnVuY3Rpb24gcmVhZEludExFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCA+Pj4gMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCA+Pj4gMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuXG4gIGxldCB2YWwgPSB0aGlzW29mZnNldF1cbiAgbGV0IG11bCA9IDFcbiAgbGV0IGkgPSAwXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgaV0gKiBtdWxcbiAgfVxuICBtdWwgKj0gMHg4MFxuXG4gIGlmICh2YWwgPj0gbXVsKSB2YWwgLT0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpXG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnRCRSA9IGZ1bmN0aW9uIHJlYWRJbnRCRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgPj4+IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggPj4+IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCBieXRlTGVuZ3RoLCB0aGlzLmxlbmd0aClcblxuICBsZXQgaSA9IGJ5dGVMZW5ndGhcbiAgbGV0IG11bCA9IDFcbiAgbGV0IHZhbCA9IHRoaXNbb2Zmc2V0ICsgLS1pXVxuICB3aGlsZSAoaSA+IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyAtLWldICogbXVsXG4gIH1cbiAgbXVsICo9IDB4ODBcblxuICBpZiAodmFsID49IG11bCkgdmFsIC09IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50OCA9IGZ1bmN0aW9uIHJlYWRJbnQ4IChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCA+Pj4gMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDEsIHRoaXMubGVuZ3RoKVxuICBpZiAoISh0aGlzW29mZnNldF0gJiAweDgwKSkgcmV0dXJuICh0aGlzW29mZnNldF0pXG4gIHJldHVybiAoKDB4ZmYgLSB0aGlzW29mZnNldF0gKyAxKSAqIC0xKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQxNkxFID0gZnVuY3Rpb24gcmVhZEludDE2TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0ID4+PiAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIGNvbnN0IHZhbCA9IHRoaXNbb2Zmc2V0XSB8ICh0aGlzW29mZnNldCArIDFdIDw8IDgpXG4gIHJldHVybiAodmFsICYgMHg4MDAwKSA/IHZhbCB8IDB4RkZGRjAwMDAgOiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MTZCRSA9IGZ1bmN0aW9uIHJlYWRJbnQxNkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCA+Pj4gMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICBjb25zdCB2YWwgPSB0aGlzW29mZnNldCArIDFdIHwgKHRoaXNbb2Zmc2V0XSA8PCA4KVxuICByZXR1cm4gKHZhbCAmIDB4ODAwMCkgPyB2YWwgfCAweEZGRkYwMDAwIDogdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDMyTEUgPSBmdW5jdGlvbiByZWFkSW50MzJMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgPj4+IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSkgfFxuICAgICh0aGlzW29mZnNldCArIDFdIDw8IDgpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCAxNikgfFxuICAgICh0aGlzW29mZnNldCArIDNdIDw8IDI0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQzMkJFID0gZnVuY3Rpb24gcmVhZEludDMyQkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0ID4+PiAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICh0aGlzW29mZnNldF0gPDwgMjQpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAxXSA8PCAxNikgfFxuICAgICh0aGlzW29mZnNldCArIDJdIDw8IDgpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAzXSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkQmlnSW50NjRMRSA9IGRlZmluZUJpZ0ludE1ldGhvZChmdW5jdGlvbiByZWFkQmlnSW50NjRMRSAob2Zmc2V0KSB7XG4gIG9mZnNldCA9IG9mZnNldCA+Pj4gMFxuICB2YWxpZGF0ZU51bWJlcihvZmZzZXQsICdvZmZzZXQnKVxuICBjb25zdCBmaXJzdCA9IHRoaXNbb2Zmc2V0XVxuICBjb25zdCBsYXN0ID0gdGhpc1tvZmZzZXQgKyA3XVxuICBpZiAoZmlyc3QgPT09IHVuZGVmaW5lZCB8fCBsYXN0ID09PSB1bmRlZmluZWQpIHtcbiAgICBib3VuZHNFcnJvcihvZmZzZXQsIHRoaXMubGVuZ3RoIC0gOClcbiAgfVxuXG4gIGNvbnN0IHZhbCA9IHRoaXNbb2Zmc2V0ICsgNF0gK1xuICAgIHRoaXNbb2Zmc2V0ICsgNV0gKiAyICoqIDggK1xuICAgIHRoaXNbb2Zmc2V0ICsgNl0gKiAyICoqIDE2ICtcbiAgICAobGFzdCA8PCAyNCkgLy8gT3ZlcmZsb3dcblxuICByZXR1cm4gKEJpZ0ludCh2YWwpIDw8IEJpZ0ludCgzMikpICtcbiAgICBCaWdJbnQoZmlyc3QgK1xuICAgIHRoaXNbKytvZmZzZXRdICogMiAqKiA4ICtcbiAgICB0aGlzWysrb2Zmc2V0XSAqIDIgKiogMTYgK1xuICAgIHRoaXNbKytvZmZzZXRdICogMiAqKiAyNClcbn0pXG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEJpZ0ludDY0QkUgPSBkZWZpbmVCaWdJbnRNZXRob2QoZnVuY3Rpb24gcmVhZEJpZ0ludDY0QkUgKG9mZnNldCkge1xuICBvZmZzZXQgPSBvZmZzZXQgPj4+IDBcbiAgdmFsaWRhdGVOdW1iZXIob2Zmc2V0LCAnb2Zmc2V0JylcbiAgY29uc3QgZmlyc3QgPSB0aGlzW29mZnNldF1cbiAgY29uc3QgbGFzdCA9IHRoaXNbb2Zmc2V0ICsgN11cbiAgaWYgKGZpcnN0ID09PSB1bmRlZmluZWQgfHwgbGFzdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgYm91bmRzRXJyb3Iob2Zmc2V0LCB0aGlzLmxlbmd0aCAtIDgpXG4gIH1cblxuICBjb25zdCB2YWwgPSAoZmlyc3QgPDwgMjQpICsgLy8gT3ZlcmZsb3dcbiAgICB0aGlzWysrb2Zmc2V0XSAqIDIgKiogMTYgK1xuICAgIHRoaXNbKytvZmZzZXRdICogMiAqKiA4ICtcbiAgICB0aGlzWysrb2Zmc2V0XVxuXG4gIHJldHVybiAoQmlnSW50KHZhbCkgPDwgQmlnSW50KDMyKSkgK1xuICAgIEJpZ0ludCh0aGlzWysrb2Zmc2V0XSAqIDIgKiogMjQgK1xuICAgIHRoaXNbKytvZmZzZXRdICogMiAqKiAxNiArXG4gICAgdGhpc1srK29mZnNldF0gKiAyICoqIDggK1xuICAgIGxhc3QpXG59KVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRGbG9hdExFID0gZnVuY3Rpb24gcmVhZEZsb2F0TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0ID4+PiAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCB0cnVlLCAyMywgNClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRmxvYXRCRSA9IGZ1bmN0aW9uIHJlYWRGbG9hdEJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCA+Pj4gMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgZmFsc2UsIDIzLCA0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWREb3VibGVMRSA9IGZ1bmN0aW9uIHJlYWREb3VibGVMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgPj4+IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA4LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIHRydWUsIDUyLCA4KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWREb3VibGVCRSA9IGZ1bmN0aW9uIHJlYWREb3VibGVCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgPj4+IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA4LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIGZhbHNlLCA1MiwgOClcbn1cblxuZnVuY3Rpb24gY2hlY2tJbnQgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgZXh0LCBtYXgsIG1pbikge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihidWYpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImJ1ZmZlclwiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgaW5zdGFuY2UnKVxuICBpZiAodmFsdWUgPiBtYXggfHwgdmFsdWUgPCBtaW4pIHRocm93IG5ldyBSYW5nZUVycm9yKCdcInZhbHVlXCIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpXG4gIGlmIChvZmZzZXQgKyBleHQgPiBidWYubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignSW5kZXggb3V0IG9mIHJhbmdlJylcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVpbnRMRSA9XG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludExFID0gZnVuY3Rpb24gd3JpdGVVSW50TEUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCA+Pj4gMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCA+Pj4gMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY29uc3QgbWF4Qnl0ZXMgPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCkgLSAxXG4gICAgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbWF4Qnl0ZXMsIDApXG4gIH1cblxuICBsZXQgbXVsID0gMVxuICBsZXQgaSA9IDBcbiAgdGhpc1tvZmZzZXRdID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICh2YWx1ZSAvIG11bCkgJiAweEZGXG4gIH1cblxuICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVWludEJFID1cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50QkUgPSBmdW5jdGlvbiB3cml0ZVVJbnRCRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0ID4+PiAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoID4+PiAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBjb25zdCBtYXhCeXRlcyA9IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKSAtIDFcbiAgICBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBtYXhCeXRlcywgMClcbiAgfVxuXG4gIGxldCBpID0gYnl0ZUxlbmd0aCAtIDFcbiAgbGV0IG11bCA9IDFcbiAgdGhpc1tvZmZzZXQgKyBpXSA9IHZhbHVlICYgMHhGRlxuICB3aGlsZSAoLS1pID49IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB0aGlzW29mZnNldCArIGldID0gKHZhbHVlIC8gbXVsKSAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVaW50OCA9XG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDggPSBmdW5jdGlvbiB3cml0ZVVJbnQ4ICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgPj4+IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMSwgMHhmZiwgMClcbiAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZilcbiAgcmV0dXJuIG9mZnNldCArIDFcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVpbnQxNkxFID1cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MTZMRSA9IGZ1bmN0aW9uIHdyaXRlVUludDE2TEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCA+Pj4gMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweGZmZmYsIDApXG4gIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpXG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVaW50MTZCRSA9XG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDE2QkUgPSBmdW5jdGlvbiB3cml0ZVVJbnQxNkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgPj4+IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHhmZmZmLCAwKVxuICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDgpXG4gIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgJiAweGZmKVxuICByZXR1cm4gb2Zmc2V0ICsgMlxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVWludDMyTEUgPVxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQzMkxFID0gZnVuY3Rpb24gd3JpdGVVSW50MzJMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0ID4+PiAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4ZmZmZmZmZmYsIDApXG4gIHRoaXNbb2Zmc2V0ICsgM10gPSAodmFsdWUgPj4+IDI0KVxuICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiAxNilcbiAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZilcbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVpbnQzMkJFID1cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MzJCRSA9IGZ1bmN0aW9uIHdyaXRlVUludDMyQkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCA+Pj4gMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweGZmZmZmZmZmLCAwKVxuICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDI0KVxuICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiAxNilcbiAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gOClcbiAgdGhpc1tvZmZzZXQgKyAzXSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbmZ1bmN0aW9uIHdydEJpZ1VJbnQ2NExFIChidWYsIHZhbHVlLCBvZmZzZXQsIG1pbiwgbWF4KSB7XG4gIGNoZWNrSW50QkkodmFsdWUsIG1pbiwgbWF4LCBidWYsIG9mZnNldCwgNylcblxuICBsZXQgbG8gPSBOdW1iZXIodmFsdWUgJiBCaWdJbnQoMHhmZmZmZmZmZikpXG4gIGJ1ZltvZmZzZXQrK10gPSBsb1xuICBsbyA9IGxvID4+IDhcbiAgYnVmW29mZnNldCsrXSA9IGxvXG4gIGxvID0gbG8gPj4gOFxuICBidWZbb2Zmc2V0KytdID0gbG9cbiAgbG8gPSBsbyA+PiA4XG4gIGJ1ZltvZmZzZXQrK10gPSBsb1xuICBsZXQgaGkgPSBOdW1iZXIodmFsdWUgPj4gQmlnSW50KDMyKSAmIEJpZ0ludCgweGZmZmZmZmZmKSlcbiAgYnVmW29mZnNldCsrXSA9IGhpXG4gIGhpID0gaGkgPj4gOFxuICBidWZbb2Zmc2V0KytdID0gaGlcbiAgaGkgPSBoaSA+PiA4XG4gIGJ1ZltvZmZzZXQrK10gPSBoaVxuICBoaSA9IGhpID4+IDhcbiAgYnVmW29mZnNldCsrXSA9IGhpXG4gIHJldHVybiBvZmZzZXRcbn1cblxuZnVuY3Rpb24gd3J0QmlnVUludDY0QkUgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbWluLCBtYXgpIHtcbiAgY2hlY2tJbnRCSSh2YWx1ZSwgbWluLCBtYXgsIGJ1Ziwgb2Zmc2V0LCA3KVxuXG4gIGxldCBsbyA9IE51bWJlcih2YWx1ZSAmIEJpZ0ludCgweGZmZmZmZmZmKSlcbiAgYnVmW29mZnNldCArIDddID0gbG9cbiAgbG8gPSBsbyA+PiA4XG4gIGJ1ZltvZmZzZXQgKyA2XSA9IGxvXG4gIGxvID0gbG8gPj4gOFxuICBidWZbb2Zmc2V0ICsgNV0gPSBsb1xuICBsbyA9IGxvID4+IDhcbiAgYnVmW29mZnNldCArIDRdID0gbG9cbiAgbGV0IGhpID0gTnVtYmVyKHZhbHVlID4+IEJpZ0ludCgzMikgJiBCaWdJbnQoMHhmZmZmZmZmZikpXG4gIGJ1ZltvZmZzZXQgKyAzXSA9IGhpXG4gIGhpID0gaGkgPj4gOFxuICBidWZbb2Zmc2V0ICsgMl0gPSBoaVxuICBoaSA9IGhpID4+IDhcbiAgYnVmW29mZnNldCArIDFdID0gaGlcbiAgaGkgPSBoaSA+PiA4XG4gIGJ1ZltvZmZzZXRdID0gaGlcbiAgcmV0dXJuIG9mZnNldCArIDhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUJpZ1VJbnQ2NExFID0gZGVmaW5lQmlnSW50TWV0aG9kKGZ1bmN0aW9uIHdyaXRlQmlnVUludDY0TEUgKHZhbHVlLCBvZmZzZXQgPSAwKSB7XG4gIHJldHVybiB3cnRCaWdVSW50NjRMRSh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBCaWdJbnQoMCksIEJpZ0ludCgnMHhmZmZmZmZmZmZmZmZmZmZmJykpXG59KVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlQmlnVUludDY0QkUgPSBkZWZpbmVCaWdJbnRNZXRob2QoZnVuY3Rpb24gd3JpdGVCaWdVSW50NjRCRSAodmFsdWUsIG9mZnNldCA9IDApIHtcbiAgcmV0dXJuIHdydEJpZ1VJbnQ2NEJFKHRoaXMsIHZhbHVlLCBvZmZzZXQsIEJpZ0ludCgwKSwgQmlnSW50KCcweGZmZmZmZmZmZmZmZmZmZmYnKSlcbn0pXG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnRMRSA9IGZ1bmN0aW9uIHdyaXRlSW50TEUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCA+Pj4gMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY29uc3QgbGltaXQgPSBNYXRoLnBvdygyLCAoOCAqIGJ5dGVMZW5ndGgpIC0gMSlcblxuICAgIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIGxpbWl0IC0gMSwgLWxpbWl0KVxuICB9XG5cbiAgbGV0IGkgPSAwXG4gIGxldCBtdWwgPSAxXG4gIGxldCBzdWIgPSAwXG4gIHRoaXNbb2Zmc2V0XSA9IHZhbHVlICYgMHhGRlxuICB3aGlsZSAoKytpIDwgYnl0ZUxlbmd0aCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIGlmICh2YWx1ZSA8IDAgJiYgc3ViID09PSAwICYmIHRoaXNbb2Zmc2V0ICsgaSAtIDFdICE9PSAwKSB7XG4gICAgICBzdWIgPSAxXG4gICAgfVxuICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAoKHZhbHVlIC8gbXVsKSA+PiAwKSAtIHN1YiAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnRCRSA9IGZ1bmN0aW9uIHdyaXRlSW50QkUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCA+Pj4gMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY29uc3QgbGltaXQgPSBNYXRoLnBvdygyLCAoOCAqIGJ5dGVMZW5ndGgpIC0gMSlcblxuICAgIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIGxpbWl0IC0gMSwgLWxpbWl0KVxuICB9XG5cbiAgbGV0IGkgPSBieXRlTGVuZ3RoIC0gMVxuICBsZXQgbXVsID0gMVxuICBsZXQgc3ViID0gMFxuICB0aGlzW29mZnNldCArIGldID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgtLWkgPj0gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIGlmICh2YWx1ZSA8IDAgJiYgc3ViID09PSAwICYmIHRoaXNbb2Zmc2V0ICsgaSArIDFdICE9PSAwKSB7XG4gICAgICBzdWIgPSAxXG4gICAgfVxuICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAoKHZhbHVlIC8gbXVsKSA+PiAwKSAtIHN1YiAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQ4ID0gZnVuY3Rpb24gd3JpdGVJbnQ4ICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgPj4+IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMSwgMHg3ZiwgLTB4ODApXG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZiArIHZhbHVlICsgMVxuICB0aGlzW29mZnNldF0gPSAodmFsdWUgJiAweGZmKVxuICByZXR1cm4gb2Zmc2V0ICsgMVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MTZMRSA9IGZ1bmN0aW9uIHdyaXRlSW50MTZMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0ID4+PiAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4N2ZmZiwgLTB4ODAwMClcbiAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZilcbiAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDE2QkUgPSBmdW5jdGlvbiB3cml0ZUludDE2QkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCA+Pj4gMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweDdmZmYsIC0weDgwMDApXG4gIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gOClcbiAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQzMkxFID0gZnVuY3Rpb24gd3JpdGVJbnQzMkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgPj4+IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHg3ZmZmZmZmZiwgLTB4ODAwMDAwMDApXG4gIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpXG4gIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDE2KVxuICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlID4+PiAyNClcbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDMyQkUgPSBmdW5jdGlvbiB3cml0ZUludDMyQkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCA+Pj4gMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweDdmZmZmZmZmLCAtMHg4MDAwMDAwMClcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmZmZmZmZmICsgdmFsdWUgKyAxXG4gIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gMjQpXG4gIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDE2KVxuICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiA4KVxuICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlICYgMHhmZilcbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUJpZ0ludDY0TEUgPSBkZWZpbmVCaWdJbnRNZXRob2QoZnVuY3Rpb24gd3JpdGVCaWdJbnQ2NExFICh2YWx1ZSwgb2Zmc2V0ID0gMCkge1xuICByZXR1cm4gd3J0QmlnVUludDY0TEUodGhpcywgdmFsdWUsIG9mZnNldCwgLUJpZ0ludCgnMHg4MDAwMDAwMDAwMDAwMDAwJyksIEJpZ0ludCgnMHg3ZmZmZmZmZmZmZmZmZmZmJykpXG59KVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlQmlnSW50NjRCRSA9IGRlZmluZUJpZ0ludE1ldGhvZChmdW5jdGlvbiB3cml0ZUJpZ0ludDY0QkUgKHZhbHVlLCBvZmZzZXQgPSAwKSB7XG4gIHJldHVybiB3cnRCaWdVSW50NjRCRSh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAtQmlnSW50KCcweDgwMDAwMDAwMDAwMDAwMDAnKSwgQmlnSW50KCcweDdmZmZmZmZmZmZmZmZmZmYnKSlcbn0pXG5cbmZ1bmN0aW9uIGNoZWNrSUVFRTc1NCAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBleHQsIG1heCwgbWluKSB7XG4gIGlmIChvZmZzZXQgKyBleHQgPiBidWYubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignSW5kZXggb3V0IG9mIHJhbmdlJylcbiAgaWYgKG9mZnNldCA8IDApIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbmRleCBvdXQgb2YgcmFuZ2UnKVxufVxuXG5mdW5jdGlvbiB3cml0ZUZsb2F0IChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0ID4+PiAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBjaGVja0lFRUU3NTQoYnVmLCB2YWx1ZSwgb2Zmc2V0LCA0LCAzLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LCAtMy40MDI4MjM0NjYzODUyODg2ZSszOClcbiAgfVxuICBpZWVlNzU0LndyaXRlKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCAyMywgNClcbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUZsb2F0TEUgPSBmdW5jdGlvbiB3cml0ZUZsb2F0TEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiB3cml0ZUZsb2F0KHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUsIG5vQXNzZXJ0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRmxvYXRCRSA9IGZ1bmN0aW9uIHdyaXRlRmxvYXRCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRmxvYXQodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UsIG5vQXNzZXJ0KVxufVxuXG5mdW5jdGlvbiB3cml0ZURvdWJsZSAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCA+Pj4gMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY2hlY2tJRUVFNzU0KGJ1ZiwgdmFsdWUsIG9mZnNldCwgOCwgMS43OTc2OTMxMzQ4NjIzMTU3RSszMDgsIC0xLjc5NzY5MzEzNDg2MjMxNTdFKzMwOClcbiAgfVxuICBpZWVlNzU0LndyaXRlKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCA1MiwgOClcbiAgcmV0dXJuIG9mZnNldCArIDhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZURvdWJsZUxFID0gZnVuY3Rpb24gd3JpdGVEb3VibGVMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRG91YmxlKHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUsIG5vQXNzZXJ0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRG91YmxlQkUgPSBmdW5jdGlvbiB3cml0ZURvdWJsZUJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVEb3VibGUodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UsIG5vQXNzZXJ0KVxufVxuXG4vLyBjb3B5KHRhcmdldEJ1ZmZlciwgdGFyZ2V0U3RhcnQ9MCwgc291cmNlU3RhcnQ9MCwgc291cmNlRW5kPWJ1ZmZlci5sZW5ndGgpXG5CdWZmZXIucHJvdG90eXBlLmNvcHkgPSBmdW5jdGlvbiBjb3B5ICh0YXJnZXQsIHRhcmdldFN0YXJ0LCBzdGFydCwgZW5kKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKHRhcmdldCkpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2FyZ3VtZW50IHNob3VsZCBiZSBhIEJ1ZmZlcicpXG4gIGlmICghc3RhcnQpIHN0YXJ0ID0gMFxuICBpZiAoIWVuZCAmJiBlbmQgIT09IDApIGVuZCA9IHRoaXMubGVuZ3RoXG4gIGlmICh0YXJnZXRTdGFydCA+PSB0YXJnZXQubGVuZ3RoKSB0YXJnZXRTdGFydCA9IHRhcmdldC5sZW5ndGhcbiAgaWYgKCF0YXJnZXRTdGFydCkgdGFyZ2V0U3RhcnQgPSAwXG4gIGlmIChlbmQgPiAwICYmIGVuZCA8IHN0YXJ0KSBlbmQgPSBzdGFydFxuXG4gIC8vIENvcHkgMCBieXRlczsgd2UncmUgZG9uZVxuICBpZiAoZW5kID09PSBzdGFydCkgcmV0dXJuIDBcbiAgaWYgKHRhcmdldC5sZW5ndGggPT09IDAgfHwgdGhpcy5sZW5ndGggPT09IDApIHJldHVybiAwXG5cbiAgLy8gRmF0YWwgZXJyb3IgY29uZGl0aW9uc1xuICBpZiAodGFyZ2V0U3RhcnQgPCAwKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3RhcmdldFN0YXJ0IG91dCBvZiBib3VuZHMnKVxuICB9XG4gIGlmIChzdGFydCA8IDAgfHwgc3RhcnQgPj0gdGhpcy5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbmRleCBvdXQgb2YgcmFuZ2UnKVxuICBpZiAoZW5kIDwgMCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3NvdXJjZUVuZCBvdXQgb2YgYm91bmRzJylcblxuICAvLyBBcmUgd2Ugb29iP1xuICBpZiAoZW5kID4gdGhpcy5sZW5ndGgpIGVuZCA9IHRoaXMubGVuZ3RoXG4gIGlmICh0YXJnZXQubGVuZ3RoIC0gdGFyZ2V0U3RhcnQgPCBlbmQgLSBzdGFydCkge1xuICAgIGVuZCA9IHRhcmdldC5sZW5ndGggLSB0YXJnZXRTdGFydCArIHN0YXJ0XG4gIH1cblxuICBjb25zdCBsZW4gPSBlbmQgLSBzdGFydFxuXG4gIGlmICh0aGlzID09PSB0YXJnZXQgJiYgdHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBVc2UgYnVpbHQtaW4gd2hlbiBhdmFpbGFibGUsIG1pc3NpbmcgZnJvbSBJRTExXG4gICAgdGhpcy5jb3B5V2l0aGluKHRhcmdldFN0YXJ0LCBzdGFydCwgZW5kKVxuICB9IGVsc2Uge1xuICAgIFVpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKFxuICAgICAgdGFyZ2V0LFxuICAgICAgdGhpcy5zdWJhcnJheShzdGFydCwgZW5kKSxcbiAgICAgIHRhcmdldFN0YXJ0XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIGxlblxufVxuXG4vLyBVc2FnZTpcbi8vICAgIGJ1ZmZlci5maWxsKG51bWJlclssIG9mZnNldFssIGVuZF1dKVxuLy8gICAgYnVmZmVyLmZpbGwoYnVmZmVyWywgb2Zmc2V0WywgZW5kXV0pXG4vLyAgICBidWZmZXIuZmlsbChzdHJpbmdbLCBvZmZzZXRbLCBlbmRdXVssIGVuY29kaW5nXSlcbkJ1ZmZlci5wcm90b3R5cGUuZmlsbCA9IGZ1bmN0aW9uIGZpbGwgKHZhbCwgc3RhcnQsIGVuZCwgZW5jb2RpbmcpIHtcbiAgLy8gSGFuZGxlIHN0cmluZyBjYXNlczpcbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKHR5cGVvZiBzdGFydCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGVuY29kaW5nID0gc3RhcnRcbiAgICAgIHN0YXJ0ID0gMFxuICAgICAgZW5kID0gdGhpcy5sZW5ndGhcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBlbmQgPT09ICdzdHJpbmcnKSB7XG4gICAgICBlbmNvZGluZyA9IGVuZFxuICAgICAgZW5kID0gdGhpcy5sZW5ndGhcbiAgICB9XG4gICAgaWYgKGVuY29kaW5nICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGVuY29kaW5nICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZW5jb2RpbmcgbXVzdCBiZSBhIHN0cmluZycpXG4gICAgfVxuICAgIGlmICh0eXBlb2YgZW5jb2RpbmcgPT09ICdzdHJpbmcnICYmICFCdWZmZXIuaXNFbmNvZGluZyhlbmNvZGluZykpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gZW5jb2Rpbmc6ICcgKyBlbmNvZGluZylcbiAgICB9XG4gICAgaWYgKHZhbC5sZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IGNvZGUgPSB2YWwuY2hhckNvZGVBdCgwKVxuICAgICAgaWYgKChlbmNvZGluZyA9PT0gJ3V0ZjgnICYmIGNvZGUgPCAxMjgpIHx8XG4gICAgICAgICAgZW5jb2RpbmcgPT09ICdsYXRpbjEnKSB7XG4gICAgICAgIC8vIEZhc3QgcGF0aDogSWYgYHZhbGAgZml0cyBpbnRvIGEgc2luZ2xlIGJ5dGUsIHVzZSB0aGF0IG51bWVyaWMgdmFsdWUuXG4gICAgICAgIHZhbCA9IGNvZGVcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICB2YWwgPSB2YWwgJiAyNTVcbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnYm9vbGVhbicpIHtcbiAgICB2YWwgPSBOdW1iZXIodmFsKVxuICB9XG5cbiAgLy8gSW52YWxpZCByYW5nZXMgYXJlIG5vdCBzZXQgdG8gYSBkZWZhdWx0LCBzbyBjYW4gcmFuZ2UgY2hlY2sgZWFybHkuXG4gIGlmIChzdGFydCA8IDAgfHwgdGhpcy5sZW5ndGggPCBzdGFydCB8fCB0aGlzLmxlbmd0aCA8IGVuZCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdPdXQgb2YgcmFuZ2UgaW5kZXgnKVxuICB9XG5cbiAgaWYgKGVuZCA8PSBzdGFydCkge1xuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBzdGFydCA9IHN0YXJ0ID4+PiAwXG4gIGVuZCA9IGVuZCA9PT0gdW5kZWZpbmVkID8gdGhpcy5sZW5ndGggOiBlbmQgPj4+IDBcblxuICBpZiAoIXZhbCkgdmFsID0gMFxuXG4gIGxldCBpXG4gIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgIGZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kpIHtcbiAgICAgIHRoaXNbaV0gPSB2YWxcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYnl0ZXMgPSBCdWZmZXIuaXNCdWZmZXIodmFsKVxuICAgICAgPyB2YWxcbiAgICAgIDogQnVmZmVyLmZyb20odmFsLCBlbmNvZGluZylcbiAgICBjb25zdCBsZW4gPSBieXRlcy5sZW5ndGhcbiAgICBpZiAobGVuID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgdmFsdWUgXCInICsgdmFsICtcbiAgICAgICAgJ1wiIGlzIGludmFsaWQgZm9yIGFyZ3VtZW50IFwidmFsdWVcIicpXG4gICAgfVxuICAgIGZvciAoaSA9IDA7IGkgPCBlbmQgLSBzdGFydDsgKytpKSB7XG4gICAgICB0aGlzW2kgKyBzdGFydF0gPSBieXRlc1tpICUgbGVuXVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0aGlzXG59XG5cbi8vIENVU1RPTSBFUlJPUlNcbi8vID09PT09PT09PT09PT1cblxuLy8gU2ltcGxpZmllZCB2ZXJzaW9ucyBmcm9tIE5vZGUsIGNoYW5nZWQgZm9yIEJ1ZmZlci1vbmx5IHVzYWdlXG5jb25zdCBlcnJvcnMgPSB7fVxuZnVuY3Rpb24gRSAoc3ltLCBnZXRNZXNzYWdlLCBCYXNlKSB7XG4gIGVycm9yc1tzeW1dID0gY2xhc3MgTm9kZUVycm9yIGV4dGVuZHMgQmFzZSB7XG4gICAgY29uc3RydWN0b3IgKCkge1xuICAgICAgc3VwZXIoKVxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ21lc3NhZ2UnLCB7XG4gICAgICAgIHZhbHVlOiBnZXRNZXNzYWdlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyksXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgIH0pXG5cbiAgICAgIC8vIEFkZCB0aGUgZXJyb3IgY29kZSB0byB0aGUgbmFtZSB0byBpbmNsdWRlIGl0IGluIHRoZSBzdGFjayB0cmFjZS5cbiAgICAgIHRoaXMubmFtZSA9IGAke3RoaXMubmFtZX0gWyR7c3ltfV1gXG4gICAgICAvLyBBY2Nlc3MgdGhlIHN0YWNrIHRvIGdlbmVyYXRlIHRoZSBlcnJvciBtZXNzYWdlIGluY2x1ZGluZyB0aGUgZXJyb3IgY29kZVxuICAgICAgLy8gZnJvbSB0aGUgbmFtZS5cbiAgICAgIHRoaXMuc3RhY2sgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtZXhwcmVzc2lvbnNcbiAgICAgIC8vIFJlc2V0IHRoZSBuYW1lIHRvIHRoZSBhY3R1YWwgbmFtZS5cbiAgICAgIGRlbGV0ZSB0aGlzLm5hbWVcbiAgICB9XG5cbiAgICBnZXQgY29kZSAoKSB7XG4gICAgICByZXR1cm4gc3ltXG4gICAgfVxuXG4gICAgc2V0IGNvZGUgKHZhbHVlKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2NvZGUnLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9KVxuICAgIH1cblxuICAgIHRvU3RyaW5nICgpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLm5hbWV9IFske3N5bX1dOiAke3RoaXMubWVzc2FnZX1gXG4gICAgfVxuICB9XG59XG5cbkUoJ0VSUl9CVUZGRVJfT1VUX09GX0JPVU5EUycsXG4gIGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIHJldHVybiBgJHtuYW1lfSBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHNgXG4gICAgfVxuXG4gICAgcmV0dXJuICdBdHRlbXB0IHRvIGFjY2VzcyBtZW1vcnkgb3V0c2lkZSBidWZmZXIgYm91bmRzJ1xuICB9LCBSYW5nZUVycm9yKVxuRSgnRVJSX0lOVkFMSURfQVJHX1RZUEUnLFxuICBmdW5jdGlvbiAobmFtZSwgYWN0dWFsKSB7XG4gICAgcmV0dXJuIGBUaGUgXCIke25hbWV9XCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSAke3R5cGVvZiBhY3R1YWx9YFxuICB9LCBUeXBlRXJyb3IpXG5FKCdFUlJfT1VUX09GX1JBTkdFJyxcbiAgZnVuY3Rpb24gKHN0ciwgcmFuZ2UsIGlucHV0KSB7XG4gICAgbGV0IG1zZyA9IGBUaGUgdmFsdWUgb2YgXCIke3N0cn1cIiBpcyBvdXQgb2YgcmFuZ2UuYFxuICAgIGxldCByZWNlaXZlZCA9IGlucHV0XG4gICAgaWYgKE51bWJlci5pc0ludGVnZXIoaW5wdXQpICYmIE1hdGguYWJzKGlucHV0KSA+IDIgKiogMzIpIHtcbiAgICAgIHJlY2VpdmVkID0gYWRkTnVtZXJpY2FsU2VwYXJhdG9yKFN0cmluZyhpbnB1dCkpXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgaW5wdXQgPT09ICdiaWdpbnQnKSB7XG4gICAgICByZWNlaXZlZCA9IFN0cmluZyhpbnB1dClcbiAgICAgIGlmIChpbnB1dCA+IEJpZ0ludCgyKSAqKiBCaWdJbnQoMzIpIHx8IGlucHV0IDwgLShCaWdJbnQoMikgKiogQmlnSW50KDMyKSkpIHtcbiAgICAgICAgcmVjZWl2ZWQgPSBhZGROdW1lcmljYWxTZXBhcmF0b3IocmVjZWl2ZWQpXG4gICAgICB9XG4gICAgICByZWNlaXZlZCArPSAnbidcbiAgICB9XG4gICAgbXNnICs9IGAgSXQgbXVzdCBiZSAke3JhbmdlfS4gUmVjZWl2ZWQgJHtyZWNlaXZlZH1gXG4gICAgcmV0dXJuIG1zZ1xuICB9LCBSYW5nZUVycm9yKVxuXG5mdW5jdGlvbiBhZGROdW1lcmljYWxTZXBhcmF0b3IgKHZhbCkge1xuICBsZXQgcmVzID0gJydcbiAgbGV0IGkgPSB2YWwubGVuZ3RoXG4gIGNvbnN0IHN0YXJ0ID0gdmFsWzBdID09PSAnLScgPyAxIDogMFxuICBmb3IgKDsgaSA+PSBzdGFydCArIDQ7IGkgLT0gMykge1xuICAgIHJlcyA9IGBfJHt2YWwuc2xpY2UoaSAtIDMsIGkpfSR7cmVzfWBcbiAgfVxuICByZXR1cm4gYCR7dmFsLnNsaWNlKDAsIGkpfSR7cmVzfWBcbn1cblxuLy8gQ0hFQ0sgRlVOQ1RJT05TXG4vLyA9PT09PT09PT09PT09PT1cblxuZnVuY3Rpb24gY2hlY2tCb3VuZHMgKGJ1Ziwgb2Zmc2V0LCBieXRlTGVuZ3RoKSB7XG4gIHZhbGlkYXRlTnVtYmVyKG9mZnNldCwgJ29mZnNldCcpXG4gIGlmIChidWZbb2Zmc2V0XSA9PT0gdW5kZWZpbmVkIHx8IGJ1ZltvZmZzZXQgKyBieXRlTGVuZ3RoXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgYm91bmRzRXJyb3Iob2Zmc2V0LCBidWYubGVuZ3RoIC0gKGJ5dGVMZW5ndGggKyAxKSlcbiAgfVxufVxuXG5mdW5jdGlvbiBjaGVja0ludEJJICh2YWx1ZSwgbWluLCBtYXgsIGJ1Ziwgb2Zmc2V0LCBieXRlTGVuZ3RoKSB7XG4gIGlmICh2YWx1ZSA+IG1heCB8fCB2YWx1ZSA8IG1pbikge1xuICAgIGNvbnN0IG4gPSB0eXBlb2YgbWluID09PSAnYmlnaW50JyA/ICduJyA6ICcnXG4gICAgbGV0IHJhbmdlXG4gICAgaWYgKGJ5dGVMZW5ndGggPiAzKSB7XG4gICAgICBpZiAobWluID09PSAwIHx8IG1pbiA9PT0gQmlnSW50KDApKSB7XG4gICAgICAgIHJhbmdlID0gYD49IDAke259IGFuZCA8IDIke259ICoqICR7KGJ5dGVMZW5ndGggKyAxKSAqIDh9JHtufWBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJhbmdlID0gYD49IC0oMiR7bn0gKiogJHsoYnl0ZUxlbmd0aCArIDEpICogOCAtIDF9JHtufSkgYW5kIDwgMiAqKiBgICtcbiAgICAgICAgICAgICAgICBgJHsoYnl0ZUxlbmd0aCArIDEpICogOCAtIDF9JHtufWBcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmFuZ2UgPSBgPj0gJHttaW59JHtufSBhbmQgPD0gJHttYXh9JHtufWBcbiAgICB9XG4gICAgdGhyb3cgbmV3IGVycm9ycy5FUlJfT1VUX09GX1JBTkdFKCd2YWx1ZScsIHJhbmdlLCB2YWx1ZSlcbiAgfVxuICBjaGVja0JvdW5kcyhidWYsIG9mZnNldCwgYnl0ZUxlbmd0aClcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVOdW1iZXIgKHZhbHVlLCBuYW1lKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5FUlJfSU5WQUxJRF9BUkdfVFlQRShuYW1lLCAnbnVtYmVyJywgdmFsdWUpXG4gIH1cbn1cblxuZnVuY3Rpb24gYm91bmRzRXJyb3IgKHZhbHVlLCBsZW5ndGgsIHR5cGUpIHtcbiAgaWYgKE1hdGguZmxvb3IodmFsdWUpICE9PSB2YWx1ZSkge1xuICAgIHZhbGlkYXRlTnVtYmVyKHZhbHVlLCB0eXBlKVxuICAgIHRocm93IG5ldyBlcnJvcnMuRVJSX09VVF9PRl9SQU5HRSh0eXBlIHx8ICdvZmZzZXQnLCAnYW4gaW50ZWdlcicsIHZhbHVlKVxuICB9XG5cbiAgaWYgKGxlbmd0aCA8IDApIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLkVSUl9CVUZGRVJfT1VUX09GX0JPVU5EUygpXG4gIH1cblxuICB0aHJvdyBuZXcgZXJyb3JzLkVSUl9PVVRfT0ZfUkFOR0UodHlwZSB8fCAnb2Zmc2V0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGA+PSAke3R5cGUgPyAxIDogMH0gYW5kIDw9ICR7bGVuZ3RofWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSlcbn1cblxuLy8gSEVMUEVSIEZVTkNUSU9OU1xuLy8gPT09PT09PT09PT09PT09PVxuXG5jb25zdCBJTlZBTElEX0JBU0U2NF9SRSA9IC9bXisvMC05QS1aYS16LV9dL2dcblxuZnVuY3Rpb24gYmFzZTY0Y2xlYW4gKHN0cikge1xuICAvLyBOb2RlIHRha2VzIGVxdWFsIHNpZ25zIGFzIGVuZCBvZiB0aGUgQmFzZTY0IGVuY29kaW5nXG4gIHN0ciA9IHN0ci5zcGxpdCgnPScpWzBdXG4gIC8vIE5vZGUgc3RyaXBzIG91dCBpbnZhbGlkIGNoYXJhY3RlcnMgbGlrZSBcXG4gYW5kIFxcdCBmcm9tIHRoZSBzdHJpbmcsIGJhc2U2NC1qcyBkb2VzIG5vdFxuICBzdHIgPSBzdHIudHJpbSgpLnJlcGxhY2UoSU5WQUxJRF9CQVNFNjRfUkUsICcnKVxuICAvLyBOb2RlIGNvbnZlcnRzIHN0cmluZ3Mgd2l0aCBsZW5ndGggPCAyIHRvICcnXG4gIGlmIChzdHIubGVuZ3RoIDwgMikgcmV0dXJuICcnXG4gIC8vIE5vZGUgYWxsb3dzIGZvciBub24tcGFkZGVkIGJhc2U2NCBzdHJpbmdzIChtaXNzaW5nIHRyYWlsaW5nID09PSksIGJhc2U2NC1qcyBkb2VzIG5vdFxuICB3aGlsZSAoc3RyLmxlbmd0aCAlIDQgIT09IDApIHtcbiAgICBzdHIgPSBzdHIgKyAnPSdcbiAgfVxuICByZXR1cm4gc3RyXG59XG5cbmZ1bmN0aW9uIHV0ZjhUb0J5dGVzIChzdHJpbmcsIHVuaXRzKSB7XG4gIHVuaXRzID0gdW5pdHMgfHwgSW5maW5pdHlcbiAgbGV0IGNvZGVQb2ludFxuICBjb25zdCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoXG4gIGxldCBsZWFkU3Vycm9nYXRlID0gbnVsbFxuICBjb25zdCBieXRlcyA9IFtdXG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuICAgIGNvZGVQb2ludCA9IHN0cmluZy5jaGFyQ29kZUF0KGkpXG5cbiAgICAvLyBpcyBzdXJyb2dhdGUgY29tcG9uZW50XG4gICAgaWYgKGNvZGVQb2ludCA+IDB4RDdGRiAmJiBjb2RlUG9pbnQgPCAweEUwMDApIHtcbiAgICAgIC8vIGxhc3QgY2hhciB3YXMgYSBsZWFkXG4gICAgICBpZiAoIWxlYWRTdXJyb2dhdGUpIHtcbiAgICAgICAgLy8gbm8gbGVhZCB5ZXRcbiAgICAgICAgaWYgKGNvZGVQb2ludCA+IDB4REJGRikge1xuICAgICAgICAgIC8vIHVuZXhwZWN0ZWQgdHJhaWxcbiAgICAgICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRClcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9IGVsc2UgaWYgKGkgKyAxID09PSBsZW5ndGgpIHtcbiAgICAgICAgICAvLyB1bnBhaXJlZCBsZWFkXG4gICAgICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHZhbGlkIGxlYWRcbiAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IGNvZGVQb2ludFxuXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIC8vIDIgbGVhZHMgaW4gYSByb3dcbiAgICAgIGlmIChjb2RlUG9pbnQgPCAweERDMDApIHtcbiAgICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgICAgIGxlYWRTdXJyb2dhdGUgPSBjb2RlUG9pbnRcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgLy8gdmFsaWQgc3Vycm9nYXRlIHBhaXJcbiAgICAgIGNvZGVQb2ludCA9IChsZWFkU3Vycm9nYXRlIC0gMHhEODAwIDw8IDEwIHwgY29kZVBvaW50IC0gMHhEQzAwKSArIDB4MTAwMDBcbiAgICB9IGVsc2UgaWYgKGxlYWRTdXJyb2dhdGUpIHtcbiAgICAgIC8vIHZhbGlkIGJtcCBjaGFyLCBidXQgbGFzdCBjaGFyIHdhcyBhIGxlYWRcbiAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgIH1cblxuICAgIGxlYWRTdXJyb2dhdGUgPSBudWxsXG5cbiAgICAvLyBlbmNvZGUgdXRmOFxuICAgIGlmIChjb2RlUG9pbnQgPCAweDgwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDEpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goY29kZVBvaW50KVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHg4MDApIHtcbiAgICAgIGlmICgodW5pdHMgLT0gMikgPCAwKSBicmVha1xuICAgICAgYnl0ZXMucHVzaChcbiAgICAgICAgY29kZVBvaW50ID4+IDB4NiB8IDB4QzAsXG4gICAgICAgIGNvZGVQb2ludCAmIDB4M0YgfCAweDgwXG4gICAgICApXG4gICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPCAweDEwMDAwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDMpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goXG4gICAgICAgIGNvZGVQb2ludCA+PiAweEMgfCAweEUwLFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHg2ICYgMHgzRiB8IDB4ODAsXG4gICAgICAgIGNvZGVQb2ludCAmIDB4M0YgfCAweDgwXG4gICAgICApXG4gICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPCAweDExMDAwMCkge1xuICAgICAgaWYgKCh1bml0cyAtPSA0KSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHgxMiB8IDB4RjAsXG4gICAgICAgIGNvZGVQb2ludCA+PiAweEMgJiAweDNGIHwgMHg4MCxcbiAgICAgICAgY29kZVBvaW50ID4+IDB4NiAmIDB4M0YgfCAweDgwLFxuICAgICAgICBjb2RlUG9pbnQgJiAweDNGIHwgMHg4MFxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY29kZSBwb2ludCcpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGJ5dGVzXG59XG5cbmZ1bmN0aW9uIGFzY2lpVG9CeXRlcyAoc3RyKSB7XG4gIGNvbnN0IGJ5dGVBcnJheSA9IFtdXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgKytpKSB7XG4gICAgLy8gTm9kZSdzIGNvZGUgc2VlbXMgdG8gYmUgZG9pbmcgdGhpcyBhbmQgbm90ICYgMHg3Ri4uXG4gICAgYnl0ZUFycmF5LnB1c2goc3RyLmNoYXJDb2RlQXQoaSkgJiAweEZGKVxuICB9XG4gIHJldHVybiBieXRlQXJyYXlcbn1cblxuZnVuY3Rpb24gdXRmMTZsZVRvQnl0ZXMgKHN0ciwgdW5pdHMpIHtcbiAgbGV0IGMsIGhpLCBsb1xuICBjb25zdCBieXRlQXJyYXkgPSBbXVxuICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7ICsraSkge1xuICAgIGlmICgodW5pdHMgLT0gMikgPCAwKSBicmVha1xuXG4gICAgYyA9IHN0ci5jaGFyQ29kZUF0KGkpXG4gICAgaGkgPSBjID4+IDhcbiAgICBsbyA9IGMgJSAyNTZcbiAgICBieXRlQXJyYXkucHVzaChsbylcbiAgICBieXRlQXJyYXkucHVzaChoaSlcbiAgfVxuXG4gIHJldHVybiBieXRlQXJyYXlcbn1cblxuZnVuY3Rpb24gYmFzZTY0VG9CeXRlcyAoc3RyKSB7XG4gIHJldHVybiBiYXNlNjQudG9CeXRlQXJyYXkoYmFzZTY0Y2xlYW4oc3RyKSlcbn1cblxuZnVuY3Rpb24gYmxpdEJ1ZmZlciAoc3JjLCBkc3QsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIGxldCBpXG4gIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuICAgIGlmICgoaSArIG9mZnNldCA+PSBkc3QubGVuZ3RoKSB8fCAoaSA+PSBzcmMubGVuZ3RoKSkgYnJlYWtcbiAgICBkc3RbaSArIG9mZnNldF0gPSBzcmNbaV1cbiAgfVxuICByZXR1cm4gaVxufVxuXG4vLyBBcnJheUJ1ZmZlciBvciBVaW50OEFycmF5IG9iamVjdHMgZnJvbSBvdGhlciBjb250ZXh0cyAoaS5lLiBpZnJhbWVzKSBkbyBub3QgcGFzc1xuLy8gdGhlIGBpbnN0YW5jZW9mYCBjaGVjayBidXQgdGhleSBzaG91bGQgYmUgdHJlYXRlZCBhcyBvZiB0aGF0IHR5cGUuXG4vLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJvc3MvYnVmZmVyL2lzc3Vlcy8xNjZcbmZ1bmN0aW9uIGlzSW5zdGFuY2UgKG9iaiwgdHlwZSkge1xuICByZXR1cm4gb2JqIGluc3RhbmNlb2YgdHlwZSB8fFxuICAgIChvYmogIT0gbnVsbCAmJiBvYmouY29uc3RydWN0b3IgIT0gbnVsbCAmJiBvYmouY29uc3RydWN0b3IubmFtZSAhPSBudWxsICYmXG4gICAgICBvYmouY29uc3RydWN0b3IubmFtZSA9PT0gdHlwZS5uYW1lKVxufVxuZnVuY3Rpb24gbnVtYmVySXNOYU4gKG9iaikge1xuICAvLyBGb3IgSUUxMSBzdXBwb3J0XG4gIHJldHVybiBvYmogIT09IG9iaiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXNlbGYtY29tcGFyZVxufVxuXG4vLyBDcmVhdGUgbG9va3VwIHRhYmxlIGZvciBgdG9TdHJpbmcoJ2hleCcpYFxuLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vZmVyb3NzL2J1ZmZlci9pc3N1ZXMvMjE5XG5jb25zdCBoZXhTbGljZUxvb2t1cFRhYmxlID0gKGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgYWxwaGFiZXQgPSAnMDEyMzQ1Njc4OWFiY2RlZidcbiAgY29uc3QgdGFibGUgPSBuZXcgQXJyYXkoMjU2KVxuICBmb3IgKGxldCBpID0gMDsgaSA8IDE2OyArK2kpIHtcbiAgICBjb25zdCBpMTYgPSBpICogMTZcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IDE2OyArK2opIHtcbiAgICAgIHRhYmxlW2kxNiArIGpdID0gYWxwaGFiZXRbaV0gKyBhbHBoYWJldFtqXVxuICAgIH1cbiAgfVxuICByZXR1cm4gdGFibGVcbn0pKClcblxuLy8gUmV0dXJuIG5vdCBmdW5jdGlvbiB3aXRoIEVycm9yIGlmIEJpZ0ludCBub3Qgc3VwcG9ydGVkXG5mdW5jdGlvbiBkZWZpbmVCaWdJbnRNZXRob2QgKGZuKSB7XG4gIHJldHVybiB0eXBlb2YgQmlnSW50ID09PSAndW5kZWZpbmVkJyA/IEJ1ZmZlckJpZ0ludE5vdERlZmluZWQgOiBmblxufVxuXG5mdW5jdGlvbiBCdWZmZXJCaWdJbnROb3REZWZpbmVkICgpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdCaWdJbnQgbm90IHN1cHBvcnRlZCcpXG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBFUlJfSU5WQUxJRF9PUFRfVkFMVUUgPSByZXF1aXJlKCcuLi8uLi8uLi9lcnJvcnMnKS5jb2Rlcy5FUlJfSU5WQUxJRF9PUFRfVkFMVUU7XG5mdW5jdGlvbiBoaWdoV2F0ZXJNYXJrRnJvbShvcHRpb25zLCBpc0R1cGxleCwgZHVwbGV4S2V5KSB7XG4gIHJldHVybiBvcHRpb25zLmhpZ2hXYXRlck1hcmsgIT0gbnVsbCA/IG9wdGlvbnMuaGlnaFdhdGVyTWFyayA6IGlzRHVwbGV4ID8gb3B0aW9uc1tkdXBsZXhLZXldIDogbnVsbDtcbn1cbmZ1bmN0aW9uIGdldEhpZ2hXYXRlck1hcmsoc3RhdGUsIG9wdGlvbnMsIGR1cGxleEtleSwgaXNEdXBsZXgpIHtcbiAgdmFyIGh3bSA9IGhpZ2hXYXRlck1hcmtGcm9tKG9wdGlvbnMsIGlzRHVwbGV4LCBkdXBsZXhLZXkpO1xuICBpZiAoaHdtICE9IG51bGwpIHtcbiAgICBpZiAoIShpc0Zpbml0ZShod20pICYmIE1hdGguZmxvb3IoaHdtKSA9PT0gaHdtKSB8fCBod20gPCAwKSB7XG4gICAgICB2YXIgbmFtZSA9IGlzRHVwbGV4ID8gZHVwbGV4S2V5IDogJ2hpZ2hXYXRlck1hcmsnO1xuICAgICAgdGhyb3cgbmV3IEVSUl9JTlZBTElEX09QVF9WQUxVRShuYW1lLCBod20pO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5mbG9vcihod20pO1xuICB9XG5cbiAgLy8gRGVmYXVsdCB2YWx1ZVxuICByZXR1cm4gc3RhdGUub2JqZWN0TW9kZSA/IDE2IDogMTYgKiAxMDI0O1xufVxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGdldEhpZ2hXYXRlck1hcms6IGdldEhpZ2hXYXRlck1hcmtcbn07IiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbm1vZHVsZS5leHBvcnRzID0gU3RyZWFtO1xuXG52YXIgRUUgPSByZXF1aXJlKCdldmVudHMnKS5FdmVudEVtaXR0ZXI7XG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpO1xuXG5pbmhlcml0cyhTdHJlYW0sIEVFKTtcblN0cmVhbS5SZWFkYWJsZSA9IHJlcXVpcmUoJ3JlYWRhYmxlLXN0cmVhbS9saWIvX3N0cmVhbV9yZWFkYWJsZS5qcycpO1xuU3RyZWFtLldyaXRhYmxlID0gcmVxdWlyZSgncmVhZGFibGUtc3RyZWFtL2xpYi9fc3RyZWFtX3dyaXRhYmxlLmpzJyk7XG5TdHJlYW0uRHVwbGV4ID0gcmVxdWlyZSgncmVhZGFibGUtc3RyZWFtL2xpYi9fc3RyZWFtX2R1cGxleC5qcycpO1xuU3RyZWFtLlRyYW5zZm9ybSA9IHJlcXVpcmUoJ3JlYWRhYmxlLXN0cmVhbS9saWIvX3N0cmVhbV90cmFuc2Zvcm0uanMnKTtcblN0cmVhbS5QYXNzVGhyb3VnaCA9IHJlcXVpcmUoJ3JlYWRhYmxlLXN0cmVhbS9saWIvX3N0cmVhbV9wYXNzdGhyb3VnaC5qcycpO1xuU3RyZWFtLmZpbmlzaGVkID0gcmVxdWlyZSgncmVhZGFibGUtc3RyZWFtL2xpYi9pbnRlcm5hbC9zdHJlYW1zL2VuZC1vZi1zdHJlYW0uanMnKVxuU3RyZWFtLnBpcGVsaW5lID0gcmVxdWlyZSgncmVhZGFibGUtc3RyZWFtL2xpYi9pbnRlcm5hbC9zdHJlYW1zL3BpcGVsaW5lLmpzJylcblxuLy8gQmFja3dhcmRzLWNvbXBhdCB3aXRoIG5vZGUgMC40LnhcblN0cmVhbS5TdHJlYW0gPSBTdHJlYW07XG5cblxuXG4vLyBvbGQtc3R5bGUgc3RyZWFtcy4gIE5vdGUgdGhhdCB0aGUgcGlwZSBtZXRob2QgKHRoZSBvbmx5IHJlbGV2YW50XG4vLyBwYXJ0IG9mIHRoaXMgY2xhc3MpIGlzIG92ZXJyaWRkZW4gaW4gdGhlIFJlYWRhYmxlIGNsYXNzLlxuXG5mdW5jdGlvbiBTdHJlYW0oKSB7XG4gIEVFLmNhbGwodGhpcyk7XG59XG5cblN0cmVhbS5wcm90b3R5cGUucGlwZSA9IGZ1bmN0aW9uKGRlc3QsIG9wdGlvbnMpIHtcbiAgdmFyIHNvdXJjZSA9IHRoaXM7XG5cbiAgZnVuY3Rpb24gb25kYXRhKGNodW5rKSB7XG4gICAgaWYgKGRlc3Qud3JpdGFibGUpIHtcbiAgICAgIGlmIChmYWxzZSA9PT0gZGVzdC53cml0ZShjaHVuaykgJiYgc291cmNlLnBhdXNlKSB7XG4gICAgICAgIHNvdXJjZS5wYXVzZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNvdXJjZS5vbignZGF0YScsIG9uZGF0YSk7XG5cbiAgZnVuY3Rpb24gb25kcmFpbigpIHtcbiAgICBpZiAoc291cmNlLnJlYWRhYmxlICYmIHNvdXJjZS5yZXN1bWUpIHtcbiAgICAgIHNvdXJjZS5yZXN1bWUoKTtcbiAgICB9XG4gIH1cblxuICBkZXN0Lm9uKCdkcmFpbicsIG9uZHJhaW4pO1xuXG4gIC8vIElmIHRoZSAnZW5kJyBvcHRpb24gaXMgbm90IHN1cHBsaWVkLCBkZXN0LmVuZCgpIHdpbGwgYmUgY2FsbGVkIHdoZW5cbiAgLy8gc291cmNlIGdldHMgdGhlICdlbmQnIG9yICdjbG9zZScgZXZlbnRzLiAgT25seSBkZXN0LmVuZCgpIG9uY2UuXG4gIGlmICghZGVzdC5faXNTdGRpbyAmJiAoIW9wdGlvbnMgfHwgb3B0aW9ucy5lbmQgIT09IGZhbHNlKSkge1xuICAgIHNvdXJjZS5vbignZW5kJywgb25lbmQpO1xuICAgIHNvdXJjZS5vbignY2xvc2UnLCBvbmNsb3NlKTtcbiAgfVxuXG4gIHZhciBkaWRPbkVuZCA9IGZhbHNlO1xuICBmdW5jdGlvbiBvbmVuZCgpIHtcbiAgICBpZiAoZGlkT25FbmQpIHJldHVybjtcbiAgICBkaWRPbkVuZCA9IHRydWU7XG5cbiAgICBkZXN0LmVuZCgpO1xuICB9XG5cblxuICBmdW5jdGlvbiBvbmNsb3NlKCkge1xuICAgIGlmIChkaWRPbkVuZCkgcmV0dXJuO1xuICAgIGRpZE9uRW5kID0gdHJ1ZTtcblxuICAgIGlmICh0eXBlb2YgZGVzdC5kZXN0cm95ID09PSAnZnVuY3Rpb24nKSBkZXN0LmRlc3Ryb3koKTtcbiAgfVxuXG4gIC8vIGRvbid0IGxlYXZlIGRhbmdsaW5nIHBpcGVzIHdoZW4gdGhlcmUgYXJlIGVycm9ycy5cbiAgZnVuY3Rpb24gb25lcnJvcihlcikge1xuICAgIGNsZWFudXAoKTtcbiAgICBpZiAoRUUubGlzdGVuZXJDb3VudCh0aGlzLCAnZXJyb3InKSA9PT0gMCkge1xuICAgICAgdGhyb3cgZXI7IC8vIFVuaGFuZGxlZCBzdHJlYW0gZXJyb3IgaW4gcGlwZS5cbiAgICB9XG4gIH1cblxuICBzb3VyY2Uub24oJ2Vycm9yJywgb25lcnJvcik7XG4gIGRlc3Qub24oJ2Vycm9yJywgb25lcnJvcik7XG5cbiAgLy8gcmVtb3ZlIGFsbCB0aGUgZXZlbnQgbGlzdGVuZXJzIHRoYXQgd2VyZSBhZGRlZC5cbiAgZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgICBzb3VyY2UucmVtb3ZlTGlzdGVuZXIoJ2RhdGEnLCBvbmRhdGEpO1xuICAgIGRlc3QucmVtb3ZlTGlzdGVuZXIoJ2RyYWluJywgb25kcmFpbik7XG5cbiAgICBzb3VyY2UucmVtb3ZlTGlzdGVuZXIoJ2VuZCcsIG9uZW5kKTtcbiAgICBzb3VyY2UucmVtb3ZlTGlzdGVuZXIoJ2Nsb3NlJywgb25jbG9zZSk7XG5cbiAgICBzb3VyY2UucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgb25lcnJvcik7XG4gICAgZGVzdC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbmVycm9yKTtcblxuICAgIHNvdXJjZS5yZW1vdmVMaXN0ZW5lcignZW5kJywgY2xlYW51cCk7XG4gICAgc291cmNlLnJlbW92ZUxpc3RlbmVyKCdjbG9zZScsIGNsZWFudXApO1xuXG4gICAgZGVzdC5yZW1vdmVMaXN0ZW5lcignY2xvc2UnLCBjbGVhbnVwKTtcbiAgfVxuXG4gIHNvdXJjZS5vbignZW5kJywgY2xlYW51cCk7XG4gIHNvdXJjZS5vbignY2xvc2UnLCBjbGVhbnVwKTtcblxuICBkZXN0Lm9uKCdjbG9zZScsIGNsZWFudXApO1xuXG4gIGRlc3QuZW1pdCgncGlwZScsIHNvdXJjZSk7XG5cbiAgLy8gQWxsb3cgZm9yIHVuaXgtbGlrZSB1c2FnZTogQS5waXBlKEIpLnBpcGUoQylcbiAgcmV0dXJuIGRlc3Q7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCdldmVudHMnKS5FdmVudEVtaXR0ZXI7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfaWVlZTc1NF9fOyIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4vLyBhIGR1cGxleCBzdHJlYW0gaXMganVzdCBhIHN0cmVhbSB0aGF0IGlzIGJvdGggcmVhZGFibGUgYW5kIHdyaXRhYmxlLlxuLy8gU2luY2UgSlMgZG9lc24ndCBoYXZlIG11bHRpcGxlIHByb3RvdHlwYWwgaW5oZXJpdGFuY2UsIHRoaXMgY2xhc3Ncbi8vIHByb3RvdHlwYWxseSBpbmhlcml0cyBmcm9tIFJlYWRhYmxlLCBhbmQgdGhlbiBwYXJhc2l0aWNhbGx5IGZyb21cbi8vIFdyaXRhYmxlLlxuXG4ndXNlIHN0cmljdCc7XG5cbi8qPHJlcGxhY2VtZW50PiovXG52YXIgb2JqZWN0S2V5cyA9IE9iamVjdC5rZXlzIHx8IGZ1bmN0aW9uIChvYmopIHtcbiAgdmFyIGtleXMgPSBbXTtcbiAgZm9yICh2YXIga2V5IGluIG9iaikga2V5cy5wdXNoKGtleSk7XG4gIHJldHVybiBrZXlzO1xufTtcbi8qPC9yZXBsYWNlbWVudD4qL1xuXG5tb2R1bGUuZXhwb3J0cyA9IER1cGxleDtcbnZhciBSZWFkYWJsZSA9IHJlcXVpcmUoJy4vX3N0cmVhbV9yZWFkYWJsZScpO1xudmFyIFdyaXRhYmxlID0gcmVxdWlyZSgnLi9fc3RyZWFtX3dyaXRhYmxlJyk7XG5yZXF1aXJlKCdpbmhlcml0cycpKER1cGxleCwgUmVhZGFibGUpO1xue1xuICAvLyBBbGxvdyB0aGUga2V5cyBhcnJheSB0byBiZSBHQydlZC5cbiAgdmFyIGtleXMgPSBvYmplY3RLZXlzKFdyaXRhYmxlLnByb3RvdHlwZSk7XG4gIGZvciAodmFyIHYgPSAwOyB2IDwga2V5cy5sZW5ndGg7IHYrKykge1xuICAgIHZhciBtZXRob2QgPSBrZXlzW3ZdO1xuICAgIGlmICghRHVwbGV4LnByb3RvdHlwZVttZXRob2RdKSBEdXBsZXgucHJvdG90eXBlW21ldGhvZF0gPSBXcml0YWJsZS5wcm90b3R5cGVbbWV0aG9kXTtcbiAgfVxufVxuZnVuY3Rpb24gRHVwbGV4KG9wdGlvbnMpIHtcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIER1cGxleCkpIHJldHVybiBuZXcgRHVwbGV4KG9wdGlvbnMpO1xuICBSZWFkYWJsZS5jYWxsKHRoaXMsIG9wdGlvbnMpO1xuICBXcml0YWJsZS5jYWxsKHRoaXMsIG9wdGlvbnMpO1xuICB0aGlzLmFsbG93SGFsZk9wZW4gPSB0cnVlO1xuICBpZiAob3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLnJlYWRhYmxlID09PSBmYWxzZSkgdGhpcy5yZWFkYWJsZSA9IGZhbHNlO1xuICAgIGlmIChvcHRpb25zLndyaXRhYmxlID09PSBmYWxzZSkgdGhpcy53cml0YWJsZSA9IGZhbHNlO1xuICAgIGlmIChvcHRpb25zLmFsbG93SGFsZk9wZW4gPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLmFsbG93SGFsZk9wZW4gPSBmYWxzZTtcbiAgICAgIHRoaXMub25jZSgnZW5kJywgb25lbmQpO1xuICAgIH1cbiAgfVxufVxuT2JqZWN0LmRlZmluZVByb3BlcnR5KER1cGxleC5wcm90b3R5cGUsICd3cml0YWJsZUhpZ2hXYXRlck1hcmsnLCB7XG4gIC8vIG1ha2luZyBpdCBleHBsaWNpdCB0aGlzIHByb3BlcnR5IGlzIG5vdCBlbnVtZXJhYmxlXG4gIC8vIGJlY2F1c2Ugb3RoZXJ3aXNlIHNvbWUgcHJvdG90eXBlIG1hbmlwdWxhdGlvbiBpblxuICAvLyB1c2VybGFuZCB3aWxsIGZhaWxcbiAgZW51bWVyYWJsZTogZmFsc2UsXG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHJldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmhpZ2hXYXRlck1hcms7XG4gIH1cbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KER1cGxleC5wcm90b3R5cGUsICd3cml0YWJsZUJ1ZmZlcicsIHtcbiAgLy8gbWFraW5nIGl0IGV4cGxpY2l0IHRoaXMgcHJvcGVydHkgaXMgbm90IGVudW1lcmFibGVcbiAgLy8gYmVjYXVzZSBvdGhlcndpc2Ugc29tZSBwcm90b3R5cGUgbWFuaXB1bGF0aW9uIGluXG4gIC8vIHVzZXJsYW5kIHdpbGwgZmFpbFxuICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUgJiYgdGhpcy5fd3JpdGFibGVTdGF0ZS5nZXRCdWZmZXIoKTtcbiAgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoRHVwbGV4LnByb3RvdHlwZSwgJ3dyaXRhYmxlTGVuZ3RoJywge1xuICAvLyBtYWtpbmcgaXQgZXhwbGljaXQgdGhpcyBwcm9wZXJ0eSBpcyBub3QgZW51bWVyYWJsZVxuICAvLyBiZWNhdXNlIG90aGVyd2lzZSBzb21lIHByb3RvdHlwZSBtYW5pcHVsYXRpb24gaW5cbiAgLy8gdXNlcmxhbmQgd2lsbCBmYWlsXG4gIGVudW1lcmFibGU6IGZhbHNlLFxuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICByZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5sZW5ndGg7XG4gIH1cbn0pO1xuXG4vLyB0aGUgbm8taGFsZi1vcGVuIGVuZm9yY2VyXG5mdW5jdGlvbiBvbmVuZCgpIHtcbiAgLy8gSWYgdGhlIHdyaXRhYmxlIHNpZGUgZW5kZWQsIHRoZW4gd2UncmUgb2suXG4gIGlmICh0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkKSByZXR1cm47XG5cbiAgLy8gbm8gbW9yZSBkYXRhIGNhbiBiZSB3cml0dGVuLlxuICAvLyBCdXQgYWxsb3cgbW9yZSB3cml0ZXMgdG8gaGFwcGVuIGluIHRoaXMgdGljay5cbiAgcHJvY2Vzcy5uZXh0VGljayhvbkVuZE5ULCB0aGlzKTtcbn1cbmZ1bmN0aW9uIG9uRW5kTlQoc2VsZikge1xuICBzZWxmLmVuZCgpO1xufVxuT2JqZWN0LmRlZmluZVByb3BlcnR5KER1cGxleC5wcm90b3R5cGUsICdkZXN0cm95ZWQnLCB7XG4gIC8vIG1ha2luZyBpdCBleHBsaWNpdCB0aGlzIHByb3BlcnR5IGlzIG5vdCBlbnVtZXJhYmxlXG4gIC8vIGJlY2F1c2Ugb3RoZXJ3aXNlIHNvbWUgcHJvdG90eXBlIG1hbmlwdWxhdGlvbiBpblxuICAvLyB1c2VybGFuZCB3aWxsIGZhaWxcbiAgZW51bWVyYWJsZTogZmFsc2UsXG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIGlmICh0aGlzLl9yZWFkYWJsZVN0YXRlID09PSB1bmRlZmluZWQgfHwgdGhpcy5fd3JpdGFibGVTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZCAmJiB0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZDtcbiAgfSxcbiAgc2V0OiBmdW5jdGlvbiBzZXQodmFsdWUpIHtcbiAgICAvLyB3ZSBpZ25vcmUgdGhlIHZhbHVlIGlmIHRoZSBzdHJlYW1cbiAgICAvLyBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQgeWV0XG4gICAgaWYgKHRoaXMuX3JlYWRhYmxlU3RhdGUgPT09IHVuZGVmaW5lZCB8fCB0aGlzLl93cml0YWJsZVN0YXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB0aGUgdXNlciBpcyBleHBsaWNpdGx5XG4gICAgLy8gbWFuYWdpbmcgZGVzdHJveWVkXG4gICAgdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQgPSB2YWx1ZTtcbiAgICB0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZCA9IHZhbHVlO1xuICB9XG59KTsiLCJ2YXIgQnVmZmVyID0gcmVxdWlyZSgnc2FmZS1idWZmZXInKS5CdWZmZXJcblxuLy8gcHJvdG90eXBlIGNsYXNzIGZvciBoYXNoIGZ1bmN0aW9uc1xuZnVuY3Rpb24gSGFzaCAoYmxvY2tTaXplLCBmaW5hbFNpemUpIHtcbiAgdGhpcy5fYmxvY2sgPSBCdWZmZXIuYWxsb2MoYmxvY2tTaXplKVxuICB0aGlzLl9maW5hbFNpemUgPSBmaW5hbFNpemVcbiAgdGhpcy5fYmxvY2tTaXplID0gYmxvY2tTaXplXG4gIHRoaXMuX2xlbiA9IDBcbn1cblxuSGFzaC5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gKGRhdGEsIGVuYykge1xuICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgZW5jID0gZW5jIHx8ICd1dGY4J1xuICAgIGRhdGEgPSBCdWZmZXIuZnJvbShkYXRhLCBlbmMpXG4gIH1cblxuICB2YXIgYmxvY2sgPSB0aGlzLl9ibG9ja1xuICB2YXIgYmxvY2tTaXplID0gdGhpcy5fYmxvY2tTaXplXG4gIHZhciBsZW5ndGggPSBkYXRhLmxlbmd0aFxuICB2YXIgYWNjdW0gPSB0aGlzLl9sZW5cblxuICBmb3IgKHZhciBvZmZzZXQgPSAwOyBvZmZzZXQgPCBsZW5ndGg7KSB7XG4gICAgdmFyIGFzc2lnbmVkID0gYWNjdW0gJSBibG9ja1NpemVcbiAgICB2YXIgcmVtYWluZGVyID0gTWF0aC5taW4obGVuZ3RoIC0gb2Zmc2V0LCBibG9ja1NpemUgLSBhc3NpZ25lZClcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVtYWluZGVyOyBpKyspIHtcbiAgICAgIGJsb2NrW2Fzc2lnbmVkICsgaV0gPSBkYXRhW29mZnNldCArIGldXG4gICAgfVxuXG4gICAgYWNjdW0gKz0gcmVtYWluZGVyXG4gICAgb2Zmc2V0ICs9IHJlbWFpbmRlclxuXG4gICAgaWYgKChhY2N1bSAlIGJsb2NrU2l6ZSkgPT09IDApIHtcbiAgICAgIHRoaXMuX3VwZGF0ZShibG9jaylcbiAgICB9XG4gIH1cblxuICB0aGlzLl9sZW4gKz0gbGVuZ3RoXG4gIHJldHVybiB0aGlzXG59XG5cbkhhc2gucHJvdG90eXBlLmRpZ2VzdCA9IGZ1bmN0aW9uIChlbmMpIHtcbiAgdmFyIHJlbSA9IHRoaXMuX2xlbiAlIHRoaXMuX2Jsb2NrU2l6ZVxuXG4gIHRoaXMuX2Jsb2NrW3JlbV0gPSAweDgwXG5cbiAgLy8gemVybyAocmVtICsgMSkgdHJhaWxpbmcgYml0cywgd2hlcmUgKHJlbSArIDEpIGlzIHRoZSBzbWFsbGVzdFxuICAvLyBub24tbmVnYXRpdmUgc29sdXRpb24gdG8gdGhlIGVxdWF0aW9uIChsZW5ndGggKyAxICsgKHJlbSArIDEpKSA9PT0gZmluYWxTaXplIG1vZCBibG9ja1NpemVcbiAgdGhpcy5fYmxvY2suZmlsbCgwLCByZW0gKyAxKVxuXG4gIGlmIChyZW0gPj0gdGhpcy5fZmluYWxTaXplKSB7XG4gICAgdGhpcy5fdXBkYXRlKHRoaXMuX2Jsb2NrKVxuICAgIHRoaXMuX2Jsb2NrLmZpbGwoMClcbiAgfVxuXG4gIHZhciBiaXRzID0gdGhpcy5fbGVuICogOFxuXG4gIC8vIHVpbnQzMlxuICBpZiAoYml0cyA8PSAweGZmZmZmZmZmKSB7XG4gICAgdGhpcy5fYmxvY2sud3JpdGVVSW50MzJCRShiaXRzLCB0aGlzLl9ibG9ja1NpemUgLSA0KVxuXG4gIC8vIHVpbnQ2NFxuICB9IGVsc2Uge1xuICAgIHZhciBsb3dCaXRzID0gKGJpdHMgJiAweGZmZmZmZmZmKSA+Pj4gMFxuICAgIHZhciBoaWdoQml0cyA9IChiaXRzIC0gbG93Qml0cykgLyAweDEwMDAwMDAwMFxuXG4gICAgdGhpcy5fYmxvY2sud3JpdGVVSW50MzJCRShoaWdoQml0cywgdGhpcy5fYmxvY2tTaXplIC0gOClcbiAgICB0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKGxvd0JpdHMsIHRoaXMuX2Jsb2NrU2l6ZSAtIDQpXG4gIH1cblxuICB0aGlzLl91cGRhdGUodGhpcy5fYmxvY2spXG4gIHZhciBoYXNoID0gdGhpcy5faGFzaCgpXG5cbiAgcmV0dXJuIGVuYyA/IGhhc2gudG9TdHJpbmcoZW5jKSA6IGhhc2hcbn1cblxuSGFzaC5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdfdXBkYXRlIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3MnKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IEhhc2hcbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4ndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhZGFibGU7XG5cbi8qPHJlcGxhY2VtZW50PiovXG52YXIgRHVwbGV4O1xuLyo8L3JlcGxhY2VtZW50PiovXG5cblJlYWRhYmxlLlJlYWRhYmxlU3RhdGUgPSBSZWFkYWJsZVN0YXRlO1xuXG4vKjxyZXBsYWNlbWVudD4qL1xudmFyIEVFID0gcmVxdWlyZSgnZXZlbnRzJykuRXZlbnRFbWl0dGVyO1xudmFyIEVFbGlzdGVuZXJDb3VudCA9IGZ1bmN0aW9uIEVFbGlzdGVuZXJDb3VudChlbWl0dGVyLCB0eXBlKSB7XG4gIHJldHVybiBlbWl0dGVyLmxpc3RlbmVycyh0eXBlKS5sZW5ndGg7XG59O1xuLyo8L3JlcGxhY2VtZW50PiovXG5cbi8qPHJlcGxhY2VtZW50PiovXG52YXIgU3RyZWFtID0gcmVxdWlyZSgnLi9pbnRlcm5hbC9zdHJlYW1zL3N0cmVhbScpO1xuLyo8L3JlcGxhY2VtZW50PiovXG5cbnZhciBCdWZmZXIgPSByZXF1aXJlKCdidWZmZXInKS5CdWZmZXI7XG52YXIgT3VyVWludDhBcnJheSA9ICh0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJyA/IGdsb2JhbCA6IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93IDogdHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnID8gc2VsZiA6IHt9KS5VaW50OEFycmF5IHx8IGZ1bmN0aW9uICgpIHt9O1xuZnVuY3Rpb24gX3VpbnQ4QXJyYXlUb0J1ZmZlcihjaHVuaykge1xuICByZXR1cm4gQnVmZmVyLmZyb20oY2h1bmspO1xufVxuZnVuY3Rpb24gX2lzVWludDhBcnJheShvYmopIHtcbiAgcmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcihvYmopIHx8IG9iaiBpbnN0YW5jZW9mIE91clVpbnQ4QXJyYXk7XG59XG5cbi8qPHJlcGxhY2VtZW50PiovXG52YXIgZGVidWdVdGlsID0gcmVxdWlyZSgndXRpbCcpO1xudmFyIGRlYnVnO1xuaWYgKGRlYnVnVXRpbCAmJiBkZWJ1Z1V0aWwuZGVidWdsb2cpIHtcbiAgZGVidWcgPSBkZWJ1Z1V0aWwuZGVidWdsb2coJ3N0cmVhbScpO1xufSBlbHNlIHtcbiAgZGVidWcgPSBmdW5jdGlvbiBkZWJ1ZygpIHt9O1xufVxuLyo8L3JlcGxhY2VtZW50PiovXG5cbnZhciBCdWZmZXJMaXN0ID0gcmVxdWlyZSgnLi9pbnRlcm5hbC9zdHJlYW1zL2J1ZmZlcl9saXN0Jyk7XG52YXIgZGVzdHJveUltcGwgPSByZXF1aXJlKCcuL2ludGVybmFsL3N0cmVhbXMvZGVzdHJveScpO1xudmFyIF9yZXF1aXJlID0gcmVxdWlyZSgnLi9pbnRlcm5hbC9zdHJlYW1zL3N0YXRlJyksXG4gIGdldEhpZ2hXYXRlck1hcmsgPSBfcmVxdWlyZS5nZXRIaWdoV2F0ZXJNYXJrO1xudmFyIF9yZXF1aXJlJGNvZGVzID0gcmVxdWlyZSgnLi4vZXJyb3JzJykuY29kZXMsXG4gIEVSUl9JTlZBTElEX0FSR19UWVBFID0gX3JlcXVpcmUkY29kZXMuRVJSX0lOVkFMSURfQVJHX1RZUEUsXG4gIEVSUl9TVFJFQU1fUFVTSF9BRlRFUl9FT0YgPSBfcmVxdWlyZSRjb2Rlcy5FUlJfU1RSRUFNX1BVU0hfQUZURVJfRU9GLFxuICBFUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCA9IF9yZXF1aXJlJGNvZGVzLkVSUl9NRVRIT0RfTk9UX0lNUExFTUVOVEVELFxuICBFUlJfU1RSRUFNX1VOU0hJRlRfQUZURVJfRU5EX0VWRU5UID0gX3JlcXVpcmUkY29kZXMuRVJSX1NUUkVBTV9VTlNISUZUX0FGVEVSX0VORF9FVkVOVDtcblxuLy8gTGF6eSBsb2FkZWQgdG8gaW1wcm92ZSB0aGUgc3RhcnR1cCBwZXJmb3JtYW5jZS5cbnZhciBTdHJpbmdEZWNvZGVyO1xudmFyIGNyZWF0ZVJlYWRhYmxlU3RyZWFtQXN5bmNJdGVyYXRvcjtcbnZhciBmcm9tO1xucmVxdWlyZSgnaW5oZXJpdHMnKShSZWFkYWJsZSwgU3RyZWFtKTtcbnZhciBlcnJvck9yRGVzdHJveSA9IGRlc3Ryb3lJbXBsLmVycm9yT3JEZXN0cm95O1xudmFyIGtQcm94eUV2ZW50cyA9IFsnZXJyb3InLCAnY2xvc2UnLCAnZGVzdHJveScsICdwYXVzZScsICdyZXN1bWUnXTtcbmZ1bmN0aW9uIHByZXBlbmRMaXN0ZW5lcihlbWl0dGVyLCBldmVudCwgZm4pIHtcbiAgLy8gU2FkbHkgdGhpcyBpcyBub3QgY2FjaGVhYmxlIGFzIHNvbWUgbGlicmFyaWVzIGJ1bmRsZSB0aGVpciBvd25cbiAgLy8gZXZlbnQgZW1pdHRlciBpbXBsZW1lbnRhdGlvbiB3aXRoIHRoZW0uXG4gIGlmICh0eXBlb2YgZW1pdHRlci5wcmVwZW5kTGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHJldHVybiBlbWl0dGVyLnByZXBlbmRMaXN0ZW5lcihldmVudCwgZm4pO1xuXG4gIC8vIFRoaXMgaXMgYSBoYWNrIHRvIG1ha2Ugc3VyZSB0aGF0IG91ciBlcnJvciBoYW5kbGVyIGlzIGF0dGFjaGVkIGJlZm9yZSBhbnlcbiAgLy8gdXNlcmxhbmQgb25lcy4gIE5FVkVSIERPIFRISVMuIFRoaXMgaXMgaGVyZSBvbmx5IGJlY2F1c2UgdGhpcyBjb2RlIG5lZWRzXG4gIC8vIHRvIGNvbnRpbnVlIHRvIHdvcmsgd2l0aCBvbGRlciB2ZXJzaW9ucyBvZiBOb2RlLmpzIHRoYXQgZG8gbm90IGluY2x1ZGVcbiAgLy8gdGhlIHByZXBlbmRMaXN0ZW5lcigpIG1ldGhvZC4gVGhlIGdvYWwgaXMgdG8gZXZlbnR1YWxseSByZW1vdmUgdGhpcyBoYWNrLlxuICBpZiAoIWVtaXR0ZXIuX2V2ZW50cyB8fCAhZW1pdHRlci5fZXZlbnRzW2V2ZW50XSkgZW1pdHRlci5vbihldmVudCwgZm4pO2Vsc2UgaWYgKEFycmF5LmlzQXJyYXkoZW1pdHRlci5fZXZlbnRzW2V2ZW50XSkpIGVtaXR0ZXIuX2V2ZW50c1tldmVudF0udW5zaGlmdChmbik7ZWxzZSBlbWl0dGVyLl9ldmVudHNbZXZlbnRdID0gW2ZuLCBlbWl0dGVyLl9ldmVudHNbZXZlbnRdXTtcbn1cbmZ1bmN0aW9uIFJlYWRhYmxlU3RhdGUob3B0aW9ucywgc3RyZWFtLCBpc0R1cGxleCkge1xuICBEdXBsZXggPSBEdXBsZXggfHwgcmVxdWlyZSgnLi9fc3RyZWFtX2R1cGxleCcpO1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAvLyBEdXBsZXggc3RyZWFtcyBhcmUgYm90aCByZWFkYWJsZSBhbmQgd3JpdGFibGUsIGJ1dCBzaGFyZVxuICAvLyB0aGUgc2FtZSBvcHRpb25zIG9iamVjdC5cbiAgLy8gSG93ZXZlciwgc29tZSBjYXNlcyByZXF1aXJlIHNldHRpbmcgb3B0aW9ucyB0byBkaWZmZXJlbnRcbiAgLy8gdmFsdWVzIGZvciB0aGUgcmVhZGFibGUgYW5kIHRoZSB3cml0YWJsZSBzaWRlcyBvZiB0aGUgZHVwbGV4IHN0cmVhbS5cbiAgLy8gVGhlc2Ugb3B0aW9ucyBjYW4gYmUgcHJvdmlkZWQgc2VwYXJhdGVseSBhcyByZWFkYWJsZVhYWCBhbmQgd3JpdGFibGVYWFguXG4gIGlmICh0eXBlb2YgaXNEdXBsZXggIT09ICdib29sZWFuJykgaXNEdXBsZXggPSBzdHJlYW0gaW5zdGFuY2VvZiBEdXBsZXg7XG5cbiAgLy8gb2JqZWN0IHN0cmVhbSBmbGFnLiBVc2VkIHRvIG1ha2UgcmVhZChuKSBpZ25vcmUgbiBhbmQgdG9cbiAgLy8gbWFrZSBhbGwgdGhlIGJ1ZmZlciBtZXJnaW5nIGFuZCBsZW5ndGggY2hlY2tzIGdvIGF3YXlcbiAgdGhpcy5vYmplY3RNb2RlID0gISFvcHRpb25zLm9iamVjdE1vZGU7XG4gIGlmIChpc0R1cGxleCkgdGhpcy5vYmplY3RNb2RlID0gdGhpcy5vYmplY3RNb2RlIHx8ICEhb3B0aW9ucy5yZWFkYWJsZU9iamVjdE1vZGU7XG5cbiAgLy8gdGhlIHBvaW50IGF0IHdoaWNoIGl0IHN0b3BzIGNhbGxpbmcgX3JlYWQoKSB0byBmaWxsIHRoZSBidWZmZXJcbiAgLy8gTm90ZTogMCBpcyBhIHZhbGlkIHZhbHVlLCBtZWFucyBcImRvbid0IGNhbGwgX3JlYWQgcHJlZW1wdGl2ZWx5IGV2ZXJcIlxuICB0aGlzLmhpZ2hXYXRlck1hcmsgPSBnZXRIaWdoV2F0ZXJNYXJrKHRoaXMsIG9wdGlvbnMsICdyZWFkYWJsZUhpZ2hXYXRlck1hcmsnLCBpc0R1cGxleCk7XG5cbiAgLy8gQSBsaW5rZWQgbGlzdCBpcyB1c2VkIHRvIHN0b3JlIGRhdGEgY2h1bmtzIGluc3RlYWQgb2YgYW4gYXJyYXkgYmVjYXVzZSB0aGVcbiAgLy8gbGlua2VkIGxpc3QgY2FuIHJlbW92ZSBlbGVtZW50cyBmcm9tIHRoZSBiZWdpbm5pbmcgZmFzdGVyIHRoYW5cbiAgLy8gYXJyYXkuc2hpZnQoKVxuICB0aGlzLmJ1ZmZlciA9IG5ldyBCdWZmZXJMaXN0KCk7XG4gIHRoaXMubGVuZ3RoID0gMDtcbiAgdGhpcy5waXBlcyA9IG51bGw7XG4gIHRoaXMucGlwZXNDb3VudCA9IDA7XG4gIHRoaXMuZmxvd2luZyA9IG51bGw7XG4gIHRoaXMuZW5kZWQgPSBmYWxzZTtcbiAgdGhpcy5lbmRFbWl0dGVkID0gZmFsc2U7XG4gIHRoaXMucmVhZGluZyA9IGZhbHNlO1xuXG4gIC8vIGEgZmxhZyB0byBiZSBhYmxlIHRvIHRlbGwgaWYgdGhlIGV2ZW50ICdyZWFkYWJsZScvJ2RhdGEnIGlzIGVtaXR0ZWRcbiAgLy8gaW1tZWRpYXRlbHksIG9yIG9uIGEgbGF0ZXIgdGljay4gIFdlIHNldCB0aGlzIHRvIHRydWUgYXQgZmlyc3QsIGJlY2F1c2VcbiAgLy8gYW55IGFjdGlvbnMgdGhhdCBzaG91bGRuJ3QgaGFwcGVuIHVudGlsIFwibGF0ZXJcIiBzaG91bGQgZ2VuZXJhbGx5IGFsc29cbiAgLy8gbm90IGhhcHBlbiBiZWZvcmUgdGhlIGZpcnN0IHJlYWQgY2FsbC5cbiAgdGhpcy5zeW5jID0gdHJ1ZTtcblxuICAvLyB3aGVuZXZlciB3ZSByZXR1cm4gbnVsbCwgdGhlbiB3ZSBzZXQgYSBmbGFnIHRvIHNheVxuICAvLyB0aGF0IHdlJ3JlIGF3YWl0aW5nIGEgJ3JlYWRhYmxlJyBldmVudCBlbWlzc2lvbi5cbiAgdGhpcy5uZWVkUmVhZGFibGUgPSBmYWxzZTtcbiAgdGhpcy5lbWl0dGVkUmVhZGFibGUgPSBmYWxzZTtcbiAgdGhpcy5yZWFkYWJsZUxpc3RlbmluZyA9IGZhbHNlO1xuICB0aGlzLnJlc3VtZVNjaGVkdWxlZCA9IGZhbHNlO1xuICB0aGlzLnBhdXNlZCA9IHRydWU7XG5cbiAgLy8gU2hvdWxkIGNsb3NlIGJlIGVtaXR0ZWQgb24gZGVzdHJveS4gRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgdGhpcy5lbWl0Q2xvc2UgPSBvcHRpb25zLmVtaXRDbG9zZSAhPT0gZmFsc2U7XG5cbiAgLy8gU2hvdWxkIC5kZXN0cm95KCkgYmUgY2FsbGVkIGFmdGVyICdlbmQnIChhbmQgcG90ZW50aWFsbHkgJ2ZpbmlzaCcpXG4gIHRoaXMuYXV0b0Rlc3Ryb3kgPSAhIW9wdGlvbnMuYXV0b0Rlc3Ryb3k7XG5cbiAgLy8gaGFzIGl0IGJlZW4gZGVzdHJveWVkXG4gIHRoaXMuZGVzdHJveWVkID0gZmFsc2U7XG5cbiAgLy8gQ3J5cHRvIGlzIGtpbmQgb2Ygb2xkIGFuZCBjcnVzdHkuICBIaXN0b3JpY2FsbHksIGl0cyBkZWZhdWx0IHN0cmluZ1xuICAvLyBlbmNvZGluZyBpcyAnYmluYXJ5JyBzbyB3ZSBoYXZlIHRvIG1ha2UgdGhpcyBjb25maWd1cmFibGUuXG4gIC8vIEV2ZXJ5dGhpbmcgZWxzZSBpbiB0aGUgdW5pdmVyc2UgdXNlcyAndXRmOCcsIHRob3VnaC5cbiAgdGhpcy5kZWZhdWx0RW5jb2RpbmcgPSBvcHRpb25zLmRlZmF1bHRFbmNvZGluZyB8fCAndXRmOCc7XG5cbiAgLy8gdGhlIG51bWJlciBvZiB3cml0ZXJzIHRoYXQgYXJlIGF3YWl0aW5nIGEgZHJhaW4gZXZlbnQgaW4gLnBpcGUoKXNcbiAgdGhpcy5hd2FpdERyYWluID0gMDtcblxuICAvLyBpZiB0cnVlLCBhIG1heWJlUmVhZE1vcmUgaGFzIGJlZW4gc2NoZWR1bGVkXG4gIHRoaXMucmVhZGluZ01vcmUgPSBmYWxzZTtcbiAgdGhpcy5kZWNvZGVyID0gbnVsbDtcbiAgdGhpcy5lbmNvZGluZyA9IG51bGw7XG4gIGlmIChvcHRpb25zLmVuY29kaW5nKSB7XG4gICAgaWYgKCFTdHJpbmdEZWNvZGVyKSBTdHJpbmdEZWNvZGVyID0gcmVxdWlyZSgnc3RyaW5nX2RlY29kZXIvJykuU3RyaW5nRGVjb2RlcjtcbiAgICB0aGlzLmRlY29kZXIgPSBuZXcgU3RyaW5nRGVjb2RlcihvcHRpb25zLmVuY29kaW5nKTtcbiAgICB0aGlzLmVuY29kaW5nID0gb3B0aW9ucy5lbmNvZGluZztcbiAgfVxufVxuZnVuY3Rpb24gUmVhZGFibGUob3B0aW9ucykge1xuICBEdXBsZXggPSBEdXBsZXggfHwgcmVxdWlyZSgnLi9fc3RyZWFtX2R1cGxleCcpO1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgUmVhZGFibGUpKSByZXR1cm4gbmV3IFJlYWRhYmxlKG9wdGlvbnMpO1xuXG4gIC8vIENoZWNraW5nIGZvciBhIFN0cmVhbS5EdXBsZXggaW5zdGFuY2UgaXMgZmFzdGVyIGhlcmUgaW5zdGVhZCBvZiBpbnNpZGVcbiAgLy8gdGhlIFJlYWRhYmxlU3RhdGUgY29uc3RydWN0b3IsIGF0IGxlYXN0IHdpdGggVjggNi41XG4gIHZhciBpc0R1cGxleCA9IHRoaXMgaW5zdGFuY2VvZiBEdXBsZXg7XG4gIHRoaXMuX3JlYWRhYmxlU3RhdGUgPSBuZXcgUmVhZGFibGVTdGF0ZShvcHRpb25zLCB0aGlzLCBpc0R1cGxleCk7XG5cbiAgLy8gbGVnYWN5XG4gIHRoaXMucmVhZGFibGUgPSB0cnVlO1xuICBpZiAob3B0aW9ucykge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5yZWFkID09PSAnZnVuY3Rpb24nKSB0aGlzLl9yZWFkID0gb3B0aW9ucy5yZWFkO1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5kZXN0cm95ID09PSAnZnVuY3Rpb24nKSB0aGlzLl9kZXN0cm95ID0gb3B0aW9ucy5kZXN0cm95O1xuICB9XG4gIFN0cmVhbS5jYWxsKHRoaXMpO1xufVxuT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlYWRhYmxlLnByb3RvdHlwZSwgJ2Rlc3Ryb3llZCcsIHtcbiAgLy8gbWFraW5nIGl0IGV4cGxpY2l0IHRoaXMgcHJvcGVydHkgaXMgbm90IGVudW1lcmFibGVcbiAgLy8gYmVjYXVzZSBvdGhlcndpc2Ugc29tZSBwcm90b3R5cGUgbWFuaXB1bGF0aW9uIGluXG4gIC8vIHVzZXJsYW5kIHdpbGwgZmFpbFxuICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgaWYgKHRoaXMuX3JlYWRhYmxlU3RhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24gc2V0KHZhbHVlKSB7XG4gICAgLy8gd2UgaWdub3JlIHRoZSB2YWx1ZSBpZiB0aGUgc3RyZWFtXG4gICAgLy8gaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkIHlldFxuICAgIGlmICghdGhpcy5fcmVhZGFibGVTdGF0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHRoZSB1c2VyIGlzIGV4cGxpY2l0bHlcbiAgICAvLyBtYW5hZ2luZyBkZXN0cm95ZWRcbiAgICB0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZCA9IHZhbHVlO1xuICB9XG59KTtcblJlYWRhYmxlLnByb3RvdHlwZS5kZXN0cm95ID0gZGVzdHJveUltcGwuZGVzdHJveTtcblJlYWRhYmxlLnByb3RvdHlwZS5fdW5kZXN0cm95ID0gZGVzdHJveUltcGwudW5kZXN0cm95O1xuUmVhZGFibGUucHJvdG90eXBlLl9kZXN0cm95ID0gZnVuY3Rpb24gKGVyciwgY2IpIHtcbiAgY2IoZXJyKTtcbn07XG5cbi8vIE1hbnVhbGx5IHNob3ZlIHNvbWV0aGluZyBpbnRvIHRoZSByZWFkKCkgYnVmZmVyLlxuLy8gVGhpcyByZXR1cm5zIHRydWUgaWYgdGhlIGhpZ2hXYXRlck1hcmsgaGFzIG5vdCBiZWVuIGhpdCB5ZXQsXG4vLyBzaW1pbGFyIHRvIGhvdyBXcml0YWJsZS53cml0ZSgpIHJldHVybnMgdHJ1ZSBpZiB5b3Ugc2hvdWxkXG4vLyB3cml0ZSgpIHNvbWUgbW9yZS5cblJlYWRhYmxlLnByb3RvdHlwZS5wdXNoID0gZnVuY3Rpb24gKGNodW5rLCBlbmNvZGluZykge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9yZWFkYWJsZVN0YXRlO1xuICB2YXIgc2tpcENodW5rQ2hlY2s7XG4gIGlmICghc3RhdGUub2JqZWN0TW9kZSkge1xuICAgIGlmICh0eXBlb2YgY2h1bmsgPT09ICdzdHJpbmcnKSB7XG4gICAgICBlbmNvZGluZyA9IGVuY29kaW5nIHx8IHN0YXRlLmRlZmF1bHRFbmNvZGluZztcbiAgICAgIGlmIChlbmNvZGluZyAhPT0gc3RhdGUuZW5jb2RpbmcpIHtcbiAgICAgICAgY2h1bmsgPSBCdWZmZXIuZnJvbShjaHVuaywgZW5jb2RpbmcpO1xuICAgICAgICBlbmNvZGluZyA9ICcnO1xuICAgICAgfVxuICAgICAgc2tpcENodW5rQ2hlY2sgPSB0cnVlO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBza2lwQ2h1bmtDaGVjayA9IHRydWU7XG4gIH1cbiAgcmV0dXJuIHJlYWRhYmxlQWRkQ2h1bmsodGhpcywgY2h1bmssIGVuY29kaW5nLCBmYWxzZSwgc2tpcENodW5rQ2hlY2spO1xufTtcblxuLy8gVW5zaGlmdCBzaG91bGQgKmFsd2F5cyogYmUgc29tZXRoaW5nIGRpcmVjdGx5IG91dCBvZiByZWFkKClcblJlYWRhYmxlLnByb3RvdHlwZS51bnNoaWZ0ID0gZnVuY3Rpb24gKGNodW5rKSB7XG4gIHJldHVybiByZWFkYWJsZUFkZENodW5rKHRoaXMsIGNodW5rLCBudWxsLCB0cnVlLCBmYWxzZSk7XG59O1xuZnVuY3Rpb24gcmVhZGFibGVBZGRDaHVuayhzdHJlYW0sIGNodW5rLCBlbmNvZGluZywgYWRkVG9Gcm9udCwgc2tpcENodW5rQ2hlY2spIHtcbiAgZGVidWcoJ3JlYWRhYmxlQWRkQ2h1bmsnLCBjaHVuayk7XG4gIHZhciBzdGF0ZSA9IHN0cmVhbS5fcmVhZGFibGVTdGF0ZTtcbiAgaWYgKGNodW5rID09PSBudWxsKSB7XG4gICAgc3RhdGUucmVhZGluZyA9IGZhbHNlO1xuICAgIG9uRW9mQ2h1bmsoc3RyZWFtLCBzdGF0ZSk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGVyO1xuICAgIGlmICghc2tpcENodW5rQ2hlY2spIGVyID0gY2h1bmtJbnZhbGlkKHN0YXRlLCBjaHVuayk7XG4gICAgaWYgKGVyKSB7XG4gICAgICBlcnJvck9yRGVzdHJveShzdHJlYW0sIGVyKTtcbiAgICB9IGVsc2UgaWYgKHN0YXRlLm9iamVjdE1vZGUgfHwgY2h1bmsgJiYgY2h1bmsubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHR5cGVvZiBjaHVuayAhPT0gJ3N0cmluZycgJiYgIXN0YXRlLm9iamVjdE1vZGUgJiYgT2JqZWN0LmdldFByb3RvdHlwZU9mKGNodW5rKSAhPT0gQnVmZmVyLnByb3RvdHlwZSkge1xuICAgICAgICBjaHVuayA9IF91aW50OEFycmF5VG9CdWZmZXIoY2h1bmspO1xuICAgICAgfVxuICAgICAgaWYgKGFkZFRvRnJvbnQpIHtcbiAgICAgICAgaWYgKHN0YXRlLmVuZEVtaXR0ZWQpIGVycm9yT3JEZXN0cm95KHN0cmVhbSwgbmV3IEVSUl9TVFJFQU1fVU5TSElGVF9BRlRFUl9FTkRfRVZFTlQoKSk7ZWxzZSBhZGRDaHVuayhzdHJlYW0sIHN0YXRlLCBjaHVuaywgdHJ1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHN0YXRlLmVuZGVkKSB7XG4gICAgICAgIGVycm9yT3JEZXN0cm95KHN0cmVhbSwgbmV3IEVSUl9TVFJFQU1fUFVTSF9BRlRFUl9FT0YoKSk7XG4gICAgICB9IGVsc2UgaWYgKHN0YXRlLmRlc3Ryb3llZCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0ZS5yZWFkaW5nID0gZmFsc2U7XG4gICAgICAgIGlmIChzdGF0ZS5kZWNvZGVyICYmICFlbmNvZGluZykge1xuICAgICAgICAgIGNodW5rID0gc3RhdGUuZGVjb2Rlci53cml0ZShjaHVuayk7XG4gICAgICAgICAgaWYgKHN0YXRlLm9iamVjdE1vZGUgfHwgY2h1bmsubGVuZ3RoICE9PSAwKSBhZGRDaHVuayhzdHJlYW0sIHN0YXRlLCBjaHVuaywgZmFsc2UpO2Vsc2UgbWF5YmVSZWFkTW9yZShzdHJlYW0sIHN0YXRlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhZGRDaHVuayhzdHJlYW0sIHN0YXRlLCBjaHVuaywgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghYWRkVG9Gcm9udCkge1xuICAgICAgc3RhdGUucmVhZGluZyA9IGZhbHNlO1xuICAgICAgbWF5YmVSZWFkTW9yZShzdHJlYW0sIHN0YXRlKTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSBjYW4gcHVzaCBtb3JlIGRhdGEgaWYgd2UgYXJlIGJlbG93IHRoZSBoaWdoV2F0ZXJNYXJrLlxuICAvLyBBbHNvLCBpZiB3ZSBoYXZlIG5vIGRhdGEgeWV0LCB3ZSBjYW4gc3RhbmQgc29tZSBtb3JlIGJ5dGVzLlxuICAvLyBUaGlzIGlzIHRvIHdvcmsgYXJvdW5kIGNhc2VzIHdoZXJlIGh3bT0wLCBzdWNoIGFzIHRoZSByZXBsLlxuICByZXR1cm4gIXN0YXRlLmVuZGVkICYmIChzdGF0ZS5sZW5ndGggPCBzdGF0ZS5oaWdoV2F0ZXJNYXJrIHx8IHN0YXRlLmxlbmd0aCA9PT0gMCk7XG59XG5mdW5jdGlvbiBhZGRDaHVuayhzdHJlYW0sIHN0YXRlLCBjaHVuaywgYWRkVG9Gcm9udCkge1xuICBpZiAoc3RhdGUuZmxvd2luZyAmJiBzdGF0ZS5sZW5ndGggPT09IDAgJiYgIXN0YXRlLnN5bmMpIHtcbiAgICBzdGF0ZS5hd2FpdERyYWluID0gMDtcbiAgICBzdHJlYW0uZW1pdCgnZGF0YScsIGNodW5rKTtcbiAgfSBlbHNlIHtcbiAgICAvLyB1cGRhdGUgdGhlIGJ1ZmZlciBpbmZvLlxuICAgIHN0YXRlLmxlbmd0aCArPSBzdGF0ZS5vYmplY3RNb2RlID8gMSA6IGNodW5rLmxlbmd0aDtcbiAgICBpZiAoYWRkVG9Gcm9udCkgc3RhdGUuYnVmZmVyLnVuc2hpZnQoY2h1bmspO2Vsc2Ugc3RhdGUuYnVmZmVyLnB1c2goY2h1bmspO1xuICAgIGlmIChzdGF0ZS5uZWVkUmVhZGFibGUpIGVtaXRSZWFkYWJsZShzdHJlYW0pO1xuICB9XG4gIG1heWJlUmVhZE1vcmUoc3RyZWFtLCBzdGF0ZSk7XG59XG5mdW5jdGlvbiBjaHVua0ludmFsaWQoc3RhdGUsIGNodW5rKSB7XG4gIHZhciBlcjtcbiAgaWYgKCFfaXNVaW50OEFycmF5KGNodW5rKSAmJiB0eXBlb2YgY2h1bmsgIT09ICdzdHJpbmcnICYmIGNodW5rICE9PSB1bmRlZmluZWQgJiYgIXN0YXRlLm9iamVjdE1vZGUpIHtcbiAgICBlciA9IG5ldyBFUlJfSU5WQUxJRF9BUkdfVFlQRSgnY2h1bmsnLCBbJ3N0cmluZycsICdCdWZmZXInLCAnVWludDhBcnJheSddLCBjaHVuayk7XG4gIH1cbiAgcmV0dXJuIGVyO1xufVxuUmVhZGFibGUucHJvdG90eXBlLmlzUGF1c2VkID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nID09PSBmYWxzZTtcbn07XG5cbi8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuUmVhZGFibGUucHJvdG90eXBlLnNldEVuY29kaW5nID0gZnVuY3Rpb24gKGVuYykge1xuICBpZiAoIVN0cmluZ0RlY29kZXIpIFN0cmluZ0RlY29kZXIgPSByZXF1aXJlKCdzdHJpbmdfZGVjb2Rlci8nKS5TdHJpbmdEZWNvZGVyO1xuICB2YXIgZGVjb2RlciA9IG5ldyBTdHJpbmdEZWNvZGVyKGVuYyk7XG4gIHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVjb2RlciA9IGRlY29kZXI7XG4gIC8vIElmIHNldEVuY29kaW5nKG51bGwpLCBkZWNvZGVyLmVuY29kaW5nIGVxdWFscyB1dGY4XG4gIHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5jb2RpbmcgPSB0aGlzLl9yZWFkYWJsZVN0YXRlLmRlY29kZXIuZW5jb2Rpbmc7XG5cbiAgLy8gSXRlcmF0ZSBvdmVyIGN1cnJlbnQgYnVmZmVyIHRvIGNvbnZlcnQgYWxyZWFkeSBzdG9yZWQgQnVmZmVyczpcbiAgdmFyIHAgPSB0aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlci5oZWFkO1xuICB2YXIgY29udGVudCA9ICcnO1xuICB3aGlsZSAocCAhPT0gbnVsbCkge1xuICAgIGNvbnRlbnQgKz0gZGVjb2Rlci53cml0ZShwLmRhdGEpO1xuICAgIHAgPSBwLm5leHQ7XG4gIH1cbiAgdGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXIuY2xlYXIoKTtcbiAgaWYgKGNvbnRlbnQgIT09ICcnKSB0aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlci5wdXNoKGNvbnRlbnQpO1xuICB0aGlzLl9yZWFkYWJsZVN0YXRlLmxlbmd0aCA9IGNvbnRlbnQubGVuZ3RoO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8vIERvbid0IHJhaXNlIHRoZSBod20gPiAxR0JcbnZhciBNQVhfSFdNID0gMHg0MDAwMDAwMDtcbmZ1bmN0aW9uIGNvbXB1dGVOZXdIaWdoV2F0ZXJNYXJrKG4pIHtcbiAgaWYgKG4gPj0gTUFYX0hXTSkge1xuICAgIC8vIFRPRE8ocm9uYWcpOiBUaHJvdyBFUlJfVkFMVUVfT1VUX09GX1JBTkdFLlxuICAgIG4gPSBNQVhfSFdNO1xuICB9IGVsc2Uge1xuICAgIC8vIEdldCB0aGUgbmV4dCBoaWdoZXN0IHBvd2VyIG9mIDIgdG8gcHJldmVudCBpbmNyZWFzaW5nIGh3bSBleGNlc3NpdmVseSBpblxuICAgIC8vIHRpbnkgYW1vdW50c1xuICAgIG4tLTtcbiAgICBuIHw9IG4gPj4+IDE7XG4gICAgbiB8PSBuID4+PiAyO1xuICAgIG4gfD0gbiA+Pj4gNDtcbiAgICBuIHw9IG4gPj4+IDg7XG4gICAgbiB8PSBuID4+PiAxNjtcbiAgICBuKys7XG4gIH1cbiAgcmV0dXJuIG47XG59XG5cbi8vIFRoaXMgZnVuY3Rpb24gaXMgZGVzaWduZWQgdG8gYmUgaW5saW5hYmxlLCBzbyBwbGVhc2UgdGFrZSBjYXJlIHdoZW4gbWFraW5nXG4vLyBjaGFuZ2VzIHRvIHRoZSBmdW5jdGlvbiBib2R5LlxuZnVuY3Rpb24gaG93TXVjaFRvUmVhZChuLCBzdGF0ZSkge1xuICBpZiAobiA8PSAwIHx8IHN0YXRlLmxlbmd0aCA9PT0gMCAmJiBzdGF0ZS5lbmRlZCkgcmV0dXJuIDA7XG4gIGlmIChzdGF0ZS5vYmplY3RNb2RlKSByZXR1cm4gMTtcbiAgaWYgKG4gIT09IG4pIHtcbiAgICAvLyBPbmx5IGZsb3cgb25lIGJ1ZmZlciBhdCBhIHRpbWVcbiAgICBpZiAoc3RhdGUuZmxvd2luZyAmJiBzdGF0ZS5sZW5ndGgpIHJldHVybiBzdGF0ZS5idWZmZXIuaGVhZC5kYXRhLmxlbmd0aDtlbHNlIHJldHVybiBzdGF0ZS5sZW5ndGg7XG4gIH1cbiAgLy8gSWYgd2UncmUgYXNraW5nIGZvciBtb3JlIHRoYW4gdGhlIGN1cnJlbnQgaHdtLCB0aGVuIHJhaXNlIHRoZSBod20uXG4gIGlmIChuID4gc3RhdGUuaGlnaFdhdGVyTWFyaykgc3RhdGUuaGlnaFdhdGVyTWFyayA9IGNvbXB1dGVOZXdIaWdoV2F0ZXJNYXJrKG4pO1xuICBpZiAobiA8PSBzdGF0ZS5sZW5ndGgpIHJldHVybiBuO1xuICAvLyBEb24ndCBoYXZlIGVub3VnaFxuICBpZiAoIXN0YXRlLmVuZGVkKSB7XG4gICAgc3RhdGUubmVlZFJlYWRhYmxlID0gdHJ1ZTtcbiAgICByZXR1cm4gMDtcbiAgfVxuICByZXR1cm4gc3RhdGUubGVuZ3RoO1xufVxuXG4vLyB5b3UgY2FuIG92ZXJyaWRlIGVpdGhlciB0aGlzIG1ldGhvZCwgb3IgdGhlIGFzeW5jIF9yZWFkKG4pIGJlbG93LlxuUmVhZGFibGUucHJvdG90eXBlLnJlYWQgPSBmdW5jdGlvbiAobikge1xuICBkZWJ1ZygncmVhZCcsIG4pO1xuICBuID0gcGFyc2VJbnQobiwgMTApO1xuICB2YXIgc3RhdGUgPSB0aGlzLl9yZWFkYWJsZVN0YXRlO1xuICB2YXIgbk9yaWcgPSBuO1xuICBpZiAobiAhPT0gMCkgc3RhdGUuZW1pdHRlZFJlYWRhYmxlID0gZmFsc2U7XG5cbiAgLy8gaWYgd2UncmUgZG9pbmcgcmVhZCgwKSB0byB0cmlnZ2VyIGEgcmVhZGFibGUgZXZlbnQsIGJ1dCB3ZVxuICAvLyBhbHJlYWR5IGhhdmUgYSBidW5jaCBvZiBkYXRhIGluIHRoZSBidWZmZXIsIHRoZW4ganVzdCB0cmlnZ2VyXG4gIC8vIHRoZSAncmVhZGFibGUnIGV2ZW50IGFuZCBtb3ZlIG9uLlxuICBpZiAobiA9PT0gMCAmJiBzdGF0ZS5uZWVkUmVhZGFibGUgJiYgKChzdGF0ZS5oaWdoV2F0ZXJNYXJrICE9PSAwID8gc3RhdGUubGVuZ3RoID49IHN0YXRlLmhpZ2hXYXRlck1hcmsgOiBzdGF0ZS5sZW5ndGggPiAwKSB8fCBzdGF0ZS5lbmRlZCkpIHtcbiAgICBkZWJ1ZygncmVhZDogZW1pdFJlYWRhYmxlJywgc3RhdGUubGVuZ3RoLCBzdGF0ZS5lbmRlZCk7XG4gICAgaWYgKHN0YXRlLmxlbmd0aCA9PT0gMCAmJiBzdGF0ZS5lbmRlZCkgZW5kUmVhZGFibGUodGhpcyk7ZWxzZSBlbWl0UmVhZGFibGUodGhpcyk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgbiA9IGhvd011Y2hUb1JlYWQobiwgc3RhdGUpO1xuXG4gIC8vIGlmIHdlJ3ZlIGVuZGVkLCBhbmQgd2UncmUgbm93IGNsZWFyLCB0aGVuIGZpbmlzaCBpdCB1cC5cbiAgaWYgKG4gPT09IDAgJiYgc3RhdGUuZW5kZWQpIHtcbiAgICBpZiAoc3RhdGUubGVuZ3RoID09PSAwKSBlbmRSZWFkYWJsZSh0aGlzKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIEFsbCB0aGUgYWN0dWFsIGNodW5rIGdlbmVyYXRpb24gbG9naWMgbmVlZHMgdG8gYmVcbiAgLy8gKmJlbG93KiB0aGUgY2FsbCB0byBfcmVhZC4gIFRoZSByZWFzb24gaXMgdGhhdCBpbiBjZXJ0YWluXG4gIC8vIHN5bnRoZXRpYyBzdHJlYW0gY2FzZXMsIHN1Y2ggYXMgcGFzc3Rocm91Z2ggc3RyZWFtcywgX3JlYWRcbiAgLy8gbWF5IGJlIGEgY29tcGxldGVseSBzeW5jaHJvbm91cyBvcGVyYXRpb24gd2hpY2ggbWF5IGNoYW5nZVxuICAvLyB0aGUgc3RhdGUgb2YgdGhlIHJlYWQgYnVmZmVyLCBwcm92aWRpbmcgZW5vdWdoIGRhdGEgd2hlblxuICAvLyBiZWZvcmUgdGhlcmUgd2FzICpub3QqIGVub3VnaC5cbiAgLy9cbiAgLy8gU28sIHRoZSBzdGVwcyBhcmU6XG4gIC8vIDEuIEZpZ3VyZSBvdXQgd2hhdCB0aGUgc3RhdGUgb2YgdGhpbmdzIHdpbGwgYmUgYWZ0ZXIgd2UgZG9cbiAgLy8gYSByZWFkIGZyb20gdGhlIGJ1ZmZlci5cbiAgLy9cbiAgLy8gMi4gSWYgdGhhdCByZXN1bHRpbmcgc3RhdGUgd2lsbCB0cmlnZ2VyIGEgX3JlYWQsIHRoZW4gY2FsbCBfcmVhZC5cbiAgLy8gTm90ZSB0aGF0IHRoaXMgbWF5IGJlIGFzeW5jaHJvbm91cywgb3Igc3luY2hyb25vdXMuICBZZXMsIGl0IGlzXG4gIC8vIGRlZXBseSB1Z2x5IHRvIHdyaXRlIEFQSXMgdGhpcyB3YXksIGJ1dCB0aGF0IHN0aWxsIGRvZXNuJ3QgbWVhblxuICAvLyB0aGF0IHRoZSBSZWFkYWJsZSBjbGFzcyBzaG91bGQgYmVoYXZlIGltcHJvcGVybHksIGFzIHN0cmVhbXMgYXJlXG4gIC8vIGRlc2lnbmVkIHRvIGJlIHN5bmMvYXN5bmMgYWdub3N0aWMuXG4gIC8vIFRha2Ugbm90ZSBpZiB0aGUgX3JlYWQgY2FsbCBpcyBzeW5jIG9yIGFzeW5jIChpZSwgaWYgdGhlIHJlYWQgY2FsbFxuICAvLyBoYXMgcmV0dXJuZWQgeWV0KSwgc28gdGhhdCB3ZSBrbm93IHdoZXRoZXIgb3Igbm90IGl0J3Mgc2FmZSB0byBlbWl0XG4gIC8vICdyZWFkYWJsZScgZXRjLlxuICAvL1xuICAvLyAzLiBBY3R1YWxseSBwdWxsIHRoZSByZXF1ZXN0ZWQgY2h1bmtzIG91dCBvZiB0aGUgYnVmZmVyIGFuZCByZXR1cm4uXG5cbiAgLy8gaWYgd2UgbmVlZCBhIHJlYWRhYmxlIGV2ZW50LCB0aGVuIHdlIG5lZWQgdG8gZG8gc29tZSByZWFkaW5nLlxuICB2YXIgZG9SZWFkID0gc3RhdGUubmVlZFJlYWRhYmxlO1xuICBkZWJ1ZygnbmVlZCByZWFkYWJsZScsIGRvUmVhZCk7XG5cbiAgLy8gaWYgd2UgY3VycmVudGx5IGhhdmUgbGVzcyB0aGFuIHRoZSBoaWdoV2F0ZXJNYXJrLCB0aGVuIGFsc28gcmVhZCBzb21lXG4gIGlmIChzdGF0ZS5sZW5ndGggPT09IDAgfHwgc3RhdGUubGVuZ3RoIC0gbiA8IHN0YXRlLmhpZ2hXYXRlck1hcmspIHtcbiAgICBkb1JlYWQgPSB0cnVlO1xuICAgIGRlYnVnKCdsZW5ndGggbGVzcyB0aGFuIHdhdGVybWFyaycsIGRvUmVhZCk7XG4gIH1cblxuICAvLyBob3dldmVyLCBpZiB3ZSd2ZSBlbmRlZCwgdGhlbiB0aGVyZSdzIG5vIHBvaW50LCBhbmQgaWYgd2UncmUgYWxyZWFkeVxuICAvLyByZWFkaW5nLCB0aGVuIGl0J3MgdW5uZWNlc3NhcnkuXG4gIGlmIChzdGF0ZS5lbmRlZCB8fCBzdGF0ZS5yZWFkaW5nKSB7XG4gICAgZG9SZWFkID0gZmFsc2U7XG4gICAgZGVidWcoJ3JlYWRpbmcgb3IgZW5kZWQnLCBkb1JlYWQpO1xuICB9IGVsc2UgaWYgKGRvUmVhZCkge1xuICAgIGRlYnVnKCdkbyByZWFkJyk7XG4gICAgc3RhdGUucmVhZGluZyA9IHRydWU7XG4gICAgc3RhdGUuc3luYyA9IHRydWU7XG4gICAgLy8gaWYgdGhlIGxlbmd0aCBpcyBjdXJyZW50bHkgemVybywgdGhlbiB3ZSAqbmVlZCogYSByZWFkYWJsZSBldmVudC5cbiAgICBpZiAoc3RhdGUubGVuZ3RoID09PSAwKSBzdGF0ZS5uZWVkUmVhZGFibGUgPSB0cnVlO1xuICAgIC8vIGNhbGwgaW50ZXJuYWwgcmVhZCBtZXRob2RcbiAgICB0aGlzLl9yZWFkKHN0YXRlLmhpZ2hXYXRlck1hcmspO1xuICAgIHN0YXRlLnN5bmMgPSBmYWxzZTtcbiAgICAvLyBJZiBfcmVhZCBwdXNoZWQgZGF0YSBzeW5jaHJvbm91c2x5LCB0aGVuIGByZWFkaW5nYCB3aWxsIGJlIGZhbHNlLFxuICAgIC8vIGFuZCB3ZSBuZWVkIHRvIHJlLWV2YWx1YXRlIGhvdyBtdWNoIGRhdGEgd2UgY2FuIHJldHVybiB0byB0aGUgdXNlci5cbiAgICBpZiAoIXN0YXRlLnJlYWRpbmcpIG4gPSBob3dNdWNoVG9SZWFkKG5PcmlnLCBzdGF0ZSk7XG4gIH1cbiAgdmFyIHJldDtcbiAgaWYgKG4gPiAwKSByZXQgPSBmcm9tTGlzdChuLCBzdGF0ZSk7ZWxzZSByZXQgPSBudWxsO1xuICBpZiAocmV0ID09PSBudWxsKSB7XG4gICAgc3RhdGUubmVlZFJlYWRhYmxlID0gc3RhdGUubGVuZ3RoIDw9IHN0YXRlLmhpZ2hXYXRlck1hcms7XG4gICAgbiA9IDA7XG4gIH0gZWxzZSB7XG4gICAgc3RhdGUubGVuZ3RoIC09IG47XG4gICAgc3RhdGUuYXdhaXREcmFpbiA9IDA7XG4gIH1cbiAgaWYgKHN0YXRlLmxlbmd0aCA9PT0gMCkge1xuICAgIC8vIElmIHdlIGhhdmUgbm90aGluZyBpbiB0aGUgYnVmZmVyLCB0aGVuIHdlIHdhbnQgdG8ga25vd1xuICAgIC8vIGFzIHNvb24gYXMgd2UgKmRvKiBnZXQgc29tZXRoaW5nIGludG8gdGhlIGJ1ZmZlci5cbiAgICBpZiAoIXN0YXRlLmVuZGVkKSBzdGF0ZS5uZWVkUmVhZGFibGUgPSB0cnVlO1xuXG4gICAgLy8gSWYgd2UgdHJpZWQgdG8gcmVhZCgpIHBhc3QgdGhlIEVPRiwgdGhlbiBlbWl0IGVuZCBvbiB0aGUgbmV4dCB0aWNrLlxuICAgIGlmIChuT3JpZyAhPT0gbiAmJiBzdGF0ZS5lbmRlZCkgZW5kUmVhZGFibGUodGhpcyk7XG4gIH1cbiAgaWYgKHJldCAhPT0gbnVsbCkgdGhpcy5lbWl0KCdkYXRhJywgcmV0KTtcbiAgcmV0dXJuIHJldDtcbn07XG5mdW5jdGlvbiBvbkVvZkNodW5rKHN0cmVhbSwgc3RhdGUpIHtcbiAgZGVidWcoJ29uRW9mQ2h1bmsnKTtcbiAgaWYgKHN0YXRlLmVuZGVkKSByZXR1cm47XG4gIGlmIChzdGF0ZS5kZWNvZGVyKSB7XG4gICAgdmFyIGNodW5rID0gc3RhdGUuZGVjb2Rlci5lbmQoKTtcbiAgICBpZiAoY2h1bmsgJiYgY2h1bmsubGVuZ3RoKSB7XG4gICAgICBzdGF0ZS5idWZmZXIucHVzaChjaHVuayk7XG4gICAgICBzdGF0ZS5sZW5ndGggKz0gc3RhdGUub2JqZWN0TW9kZSA/IDEgOiBjaHVuay5sZW5ndGg7XG4gICAgfVxuICB9XG4gIHN0YXRlLmVuZGVkID0gdHJ1ZTtcbiAgaWYgKHN0YXRlLnN5bmMpIHtcbiAgICAvLyBpZiB3ZSBhcmUgc3luYywgd2FpdCB1bnRpbCBuZXh0IHRpY2sgdG8gZW1pdCB0aGUgZGF0YS5cbiAgICAvLyBPdGhlcndpc2Ugd2UgcmlzayBlbWl0dGluZyBkYXRhIGluIHRoZSBmbG93KClcbiAgICAvLyB0aGUgcmVhZGFibGUgY29kZSB0cmlnZ2VycyBkdXJpbmcgYSByZWFkKCkgY2FsbFxuICAgIGVtaXRSZWFkYWJsZShzdHJlYW0pO1xuICB9IGVsc2Uge1xuICAgIC8vIGVtaXQgJ3JlYWRhYmxlJyBub3cgdG8gbWFrZSBzdXJlIGl0IGdldHMgcGlja2VkIHVwLlxuICAgIHN0YXRlLm5lZWRSZWFkYWJsZSA9IGZhbHNlO1xuICAgIGlmICghc3RhdGUuZW1pdHRlZFJlYWRhYmxlKSB7XG4gICAgICBzdGF0ZS5lbWl0dGVkUmVhZGFibGUgPSB0cnVlO1xuICAgICAgZW1pdFJlYWRhYmxlXyhzdHJlYW0pO1xuICAgIH1cbiAgfVxufVxuXG4vLyBEb24ndCBlbWl0IHJlYWRhYmxlIHJpZ2h0IGF3YXkgaW4gc3luYyBtb2RlLCBiZWNhdXNlIHRoaXMgY2FuIHRyaWdnZXJcbi8vIGFub3RoZXIgcmVhZCgpIGNhbGwgPT4gc3RhY2sgb3ZlcmZsb3cuICBUaGlzIHdheSwgaXQgbWlnaHQgdHJpZ2dlclxuLy8gYSBuZXh0VGljayByZWN1cnNpb24gd2FybmluZywgYnV0IHRoYXQncyBub3Qgc28gYmFkLlxuZnVuY3Rpb24gZW1pdFJlYWRhYmxlKHN0cmVhbSkge1xuICB2YXIgc3RhdGUgPSBzdHJlYW0uX3JlYWRhYmxlU3RhdGU7XG4gIGRlYnVnKCdlbWl0UmVhZGFibGUnLCBzdGF0ZS5uZWVkUmVhZGFibGUsIHN0YXRlLmVtaXR0ZWRSZWFkYWJsZSk7XG4gIHN0YXRlLm5lZWRSZWFkYWJsZSA9IGZhbHNlO1xuICBpZiAoIXN0YXRlLmVtaXR0ZWRSZWFkYWJsZSkge1xuICAgIGRlYnVnKCdlbWl0UmVhZGFibGUnLCBzdGF0ZS5mbG93aW5nKTtcbiAgICBzdGF0ZS5lbWl0dGVkUmVhZGFibGUgPSB0cnVlO1xuICAgIHByb2Nlc3MubmV4dFRpY2soZW1pdFJlYWRhYmxlXywgc3RyZWFtKTtcbiAgfVxufVxuZnVuY3Rpb24gZW1pdFJlYWRhYmxlXyhzdHJlYW0pIHtcbiAgdmFyIHN0YXRlID0gc3RyZWFtLl9yZWFkYWJsZVN0YXRlO1xuICBkZWJ1ZygnZW1pdFJlYWRhYmxlXycsIHN0YXRlLmRlc3Ryb3llZCwgc3RhdGUubGVuZ3RoLCBzdGF0ZS5lbmRlZCk7XG4gIGlmICghc3RhdGUuZGVzdHJveWVkICYmIChzdGF0ZS5sZW5ndGggfHwgc3RhdGUuZW5kZWQpKSB7XG4gICAgc3RyZWFtLmVtaXQoJ3JlYWRhYmxlJyk7XG4gICAgc3RhdGUuZW1pdHRlZFJlYWRhYmxlID0gZmFsc2U7XG4gIH1cblxuICAvLyBUaGUgc3RyZWFtIG5lZWRzIGFub3RoZXIgcmVhZGFibGUgZXZlbnQgaWZcbiAgLy8gMS4gSXQgaXMgbm90IGZsb3dpbmcsIGFzIHRoZSBmbG93IG1lY2hhbmlzbSB3aWxsIHRha2VcbiAgLy8gICAgY2FyZSBvZiBpdC5cbiAgLy8gMi4gSXQgaXMgbm90IGVuZGVkLlxuICAvLyAzLiBJdCBpcyBiZWxvdyB0aGUgaGlnaFdhdGVyTWFyaywgc28gd2UgY2FuIHNjaGVkdWxlXG4gIC8vICAgIGFub3RoZXIgcmVhZGFibGUgbGF0ZXIuXG4gIHN0YXRlLm5lZWRSZWFkYWJsZSA9ICFzdGF0ZS5mbG93aW5nICYmICFzdGF0ZS5lbmRlZCAmJiBzdGF0ZS5sZW5ndGggPD0gc3RhdGUuaGlnaFdhdGVyTWFyaztcbiAgZmxvdyhzdHJlYW0pO1xufVxuXG4vLyBhdCB0aGlzIHBvaW50LCB0aGUgdXNlciBoYXMgcHJlc3VtYWJseSBzZWVuIHRoZSAncmVhZGFibGUnIGV2ZW50LFxuLy8gYW5kIGNhbGxlZCByZWFkKCkgdG8gY29uc3VtZSBzb21lIGRhdGEuICB0aGF0IG1heSBoYXZlIHRyaWdnZXJlZFxuLy8gaW4gdHVybiBhbm90aGVyIF9yZWFkKG4pIGNhbGwsIGluIHdoaWNoIGNhc2UgcmVhZGluZyA9IHRydWUgaWZcbi8vIGl0J3MgaW4gcHJvZ3Jlc3MuXG4vLyBIb3dldmVyLCBpZiB3ZSdyZSBub3QgZW5kZWQsIG9yIHJlYWRpbmcsIGFuZCB0aGUgbGVuZ3RoIDwgaHdtLFxuLy8gdGhlbiBnbyBhaGVhZCBhbmQgdHJ5IHRvIHJlYWQgc29tZSBtb3JlIHByZWVtcHRpdmVseS5cbmZ1bmN0aW9uIG1heWJlUmVhZE1vcmUoc3RyZWFtLCBzdGF0ZSkge1xuICBpZiAoIXN0YXRlLnJlYWRpbmdNb3JlKSB7XG4gICAgc3RhdGUucmVhZGluZ01vcmUgPSB0cnVlO1xuICAgIHByb2Nlc3MubmV4dFRpY2sobWF5YmVSZWFkTW9yZV8sIHN0cmVhbSwgc3RhdGUpO1xuICB9XG59XG5mdW5jdGlvbiBtYXliZVJlYWRNb3JlXyhzdHJlYW0sIHN0YXRlKSB7XG4gIC8vIEF0dGVtcHQgdG8gcmVhZCBtb3JlIGRhdGEgaWYgd2Ugc2hvdWxkLlxuICAvL1xuICAvLyBUaGUgY29uZGl0aW9ucyBmb3IgcmVhZGluZyBtb3JlIGRhdGEgYXJlIChvbmUgb2YpOlxuICAvLyAtIE5vdCBlbm91Z2ggZGF0YSBidWZmZXJlZCAoc3RhdGUubGVuZ3RoIDwgc3RhdGUuaGlnaFdhdGVyTWFyaykuIFRoZSBsb29wXG4gIC8vICAgaXMgcmVzcG9uc2libGUgZm9yIGZpbGxpbmcgdGhlIGJ1ZmZlciB3aXRoIGVub3VnaCBkYXRhIGlmIHN1Y2ggZGF0YVxuICAvLyAgIGlzIGF2YWlsYWJsZS4gSWYgaGlnaFdhdGVyTWFyayBpcyAwIGFuZCB3ZSBhcmUgbm90IGluIHRoZSBmbG93aW5nIG1vZGVcbiAgLy8gICB3ZSBzaG91bGQgX25vdF8gYXR0ZW1wdCB0byBidWZmZXIgYW55IGV4dHJhIGRhdGEuIFdlJ2xsIGdldCBtb3JlIGRhdGFcbiAgLy8gICB3aGVuIHRoZSBzdHJlYW0gY29uc3VtZXIgY2FsbHMgcmVhZCgpIGluc3RlYWQuXG4gIC8vIC0gTm8gZGF0YSBpbiB0aGUgYnVmZmVyLCBhbmQgdGhlIHN0cmVhbSBpcyBpbiBmbG93aW5nIG1vZGUuIEluIHRoaXMgbW9kZVxuICAvLyAgIHRoZSBsb29wIGJlbG93IGlzIHJlc3BvbnNpYmxlIGZvciBlbnN1cmluZyByZWFkKCkgaXMgY2FsbGVkLiBGYWlsaW5nIHRvXG4gIC8vICAgY2FsbCByZWFkIGhlcmUgd291bGQgYWJvcnQgdGhlIGZsb3cgYW5kIHRoZXJlJ3Mgbm8gb3RoZXIgbWVjaGFuaXNtIGZvclxuICAvLyAgIGNvbnRpbnVpbmcgdGhlIGZsb3cgaWYgdGhlIHN0cmVhbSBjb25zdW1lciBoYXMganVzdCBzdWJzY3JpYmVkIHRvIHRoZVxuICAvLyAgICdkYXRhJyBldmVudC5cbiAgLy9cbiAgLy8gSW4gYWRkaXRpb24gdG8gdGhlIGFib3ZlIGNvbmRpdGlvbnMgdG8ga2VlcCByZWFkaW5nIGRhdGEsIHRoZSBmb2xsb3dpbmdcbiAgLy8gY29uZGl0aW9ucyBwcmV2ZW50IHRoZSBkYXRhIGZyb20gYmVpbmcgcmVhZDpcbiAgLy8gLSBUaGUgc3RyZWFtIGhhcyBlbmRlZCAoc3RhdGUuZW5kZWQpLlxuICAvLyAtIFRoZXJlIGlzIGFscmVhZHkgYSBwZW5kaW5nICdyZWFkJyBvcGVyYXRpb24gKHN0YXRlLnJlYWRpbmcpLiBUaGlzIGlzIGFcbiAgLy8gICBjYXNlIHdoZXJlIHRoZSB0aGUgc3RyZWFtIGhhcyBjYWxsZWQgdGhlIGltcGxlbWVudGF0aW9uIGRlZmluZWQgX3JlYWQoKVxuICAvLyAgIG1ldGhvZCwgYnV0IHRoZXkgYXJlIHByb2Nlc3NpbmcgdGhlIGNhbGwgYXN5bmNocm9ub3VzbHkgYW5kIGhhdmUgX25vdF9cbiAgLy8gICBjYWxsZWQgcHVzaCgpIHdpdGggbmV3IGRhdGEuIEluIHRoaXMgY2FzZSB3ZSBza2lwIHBlcmZvcm1pbmcgbW9yZVxuICAvLyAgIHJlYWQoKXMuIFRoZSBleGVjdXRpb24gZW5kcyBpbiB0aGlzIG1ldGhvZCBhZ2FpbiBhZnRlciB0aGUgX3JlYWQoKSBlbmRzXG4gIC8vICAgdXAgY2FsbGluZyBwdXNoKCkgd2l0aCBtb3JlIGRhdGEuXG4gIHdoaWxlICghc3RhdGUucmVhZGluZyAmJiAhc3RhdGUuZW5kZWQgJiYgKHN0YXRlLmxlbmd0aCA8IHN0YXRlLmhpZ2hXYXRlck1hcmsgfHwgc3RhdGUuZmxvd2luZyAmJiBzdGF0ZS5sZW5ndGggPT09IDApKSB7XG4gICAgdmFyIGxlbiA9IHN0YXRlLmxlbmd0aDtcbiAgICBkZWJ1ZygnbWF5YmVSZWFkTW9yZSByZWFkIDAnKTtcbiAgICBzdHJlYW0ucmVhZCgwKTtcbiAgICBpZiAobGVuID09PSBzdGF0ZS5sZW5ndGgpXG4gICAgICAvLyBkaWRuJ3QgZ2V0IGFueSBkYXRhLCBzdG9wIHNwaW5uaW5nLlxuICAgICAgYnJlYWs7XG4gIH1cbiAgc3RhdGUucmVhZGluZ01vcmUgPSBmYWxzZTtcbn1cblxuLy8gYWJzdHJhY3QgbWV0aG9kLiAgdG8gYmUgb3ZlcnJpZGRlbiBpbiBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBjbGFzc2VzLlxuLy8gY2FsbCBjYihlciwgZGF0YSkgd2hlcmUgZGF0YSBpcyA8PSBuIGluIGxlbmd0aC5cbi8vIGZvciB2aXJ0dWFsIChub24tc3RyaW5nLCBub24tYnVmZmVyKSBzdHJlYW1zLCBcImxlbmd0aFwiIGlzIHNvbWV3aGF0XG4vLyBhcmJpdHJhcnksIGFuZCBwZXJoYXBzIG5vdCB2ZXJ5IG1lYW5pbmdmdWwuXG5SZWFkYWJsZS5wcm90b3R5cGUuX3JlYWQgPSBmdW5jdGlvbiAobikge1xuICBlcnJvck9yRGVzdHJveSh0aGlzLCBuZXcgRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQoJ19yZWFkKCknKSk7XG59O1xuUmVhZGFibGUucHJvdG90eXBlLnBpcGUgPSBmdW5jdGlvbiAoZGVzdCwgcGlwZU9wdHMpIHtcbiAgdmFyIHNyYyA9IHRoaXM7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX3JlYWRhYmxlU3RhdGU7XG4gIHN3aXRjaCAoc3RhdGUucGlwZXNDb3VudCkge1xuICAgIGNhc2UgMDpcbiAgICAgIHN0YXRlLnBpcGVzID0gZGVzdDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMTpcbiAgICAgIHN0YXRlLnBpcGVzID0gW3N0YXRlLnBpcGVzLCBkZXN0XTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBzdGF0ZS5waXBlcy5wdXNoKGRlc3QpO1xuICAgICAgYnJlYWs7XG4gIH1cbiAgc3RhdGUucGlwZXNDb3VudCArPSAxO1xuICBkZWJ1ZygncGlwZSBjb3VudD0lZCBvcHRzPSVqJywgc3RhdGUucGlwZXNDb3VudCwgcGlwZU9wdHMpO1xuICB2YXIgZG9FbmQgPSAoIXBpcGVPcHRzIHx8IHBpcGVPcHRzLmVuZCAhPT0gZmFsc2UpICYmIGRlc3QgIT09IHByb2Nlc3Muc3Rkb3V0ICYmIGRlc3QgIT09IHByb2Nlc3Muc3RkZXJyO1xuICB2YXIgZW5kRm4gPSBkb0VuZCA/IG9uZW5kIDogdW5waXBlO1xuICBpZiAoc3RhdGUuZW5kRW1pdHRlZCkgcHJvY2Vzcy5uZXh0VGljayhlbmRGbik7ZWxzZSBzcmMub25jZSgnZW5kJywgZW5kRm4pO1xuICBkZXN0Lm9uKCd1bnBpcGUnLCBvbnVucGlwZSk7XG4gIGZ1bmN0aW9uIG9udW5waXBlKHJlYWRhYmxlLCB1bnBpcGVJbmZvKSB7XG4gICAgZGVidWcoJ29udW5waXBlJyk7XG4gICAgaWYgKHJlYWRhYmxlID09PSBzcmMpIHtcbiAgICAgIGlmICh1bnBpcGVJbmZvICYmIHVucGlwZUluZm8uaGFzVW5waXBlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgdW5waXBlSW5mby5oYXNVbnBpcGVkID0gdHJ1ZTtcbiAgICAgICAgY2xlYW51cCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBmdW5jdGlvbiBvbmVuZCgpIHtcbiAgICBkZWJ1Zygnb25lbmQnKTtcbiAgICBkZXN0LmVuZCgpO1xuICB9XG5cbiAgLy8gd2hlbiB0aGUgZGVzdCBkcmFpbnMsIGl0IHJlZHVjZXMgdGhlIGF3YWl0RHJhaW4gY291bnRlclxuICAvLyBvbiB0aGUgc291cmNlLiAgVGhpcyB3b3VsZCBiZSBtb3JlIGVsZWdhbnQgd2l0aCBhIC5vbmNlKClcbiAgLy8gaGFuZGxlciBpbiBmbG93KCksIGJ1dCBhZGRpbmcgYW5kIHJlbW92aW5nIHJlcGVhdGVkbHkgaXNcbiAgLy8gdG9vIHNsb3cuXG4gIHZhciBvbmRyYWluID0gcGlwZU9uRHJhaW4oc3JjKTtcbiAgZGVzdC5vbignZHJhaW4nLCBvbmRyYWluKTtcbiAgdmFyIGNsZWFuZWRVcCA9IGZhbHNlO1xuICBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgIGRlYnVnKCdjbGVhbnVwJyk7XG4gICAgLy8gY2xlYW51cCBldmVudCBoYW5kbGVycyBvbmNlIHRoZSBwaXBlIGlzIGJyb2tlblxuICAgIGRlc3QucmVtb3ZlTGlzdGVuZXIoJ2Nsb3NlJywgb25jbG9zZSk7XG4gICAgZGVzdC5yZW1vdmVMaXN0ZW5lcignZmluaXNoJywgb25maW5pc2gpO1xuICAgIGRlc3QucmVtb3ZlTGlzdGVuZXIoJ2RyYWluJywgb25kcmFpbik7XG4gICAgZGVzdC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbmVycm9yKTtcbiAgICBkZXN0LnJlbW92ZUxpc3RlbmVyKCd1bnBpcGUnLCBvbnVucGlwZSk7XG4gICAgc3JjLnJlbW92ZUxpc3RlbmVyKCdlbmQnLCBvbmVuZCk7XG4gICAgc3JjLnJlbW92ZUxpc3RlbmVyKCdlbmQnLCB1bnBpcGUpO1xuICAgIHNyYy5yZW1vdmVMaXN0ZW5lcignZGF0YScsIG9uZGF0YSk7XG4gICAgY2xlYW5lZFVwID0gdHJ1ZTtcblxuICAgIC8vIGlmIHRoZSByZWFkZXIgaXMgd2FpdGluZyBmb3IgYSBkcmFpbiBldmVudCBmcm9tIHRoaXNcbiAgICAvLyBzcGVjaWZpYyB3cml0ZXIsIHRoZW4gaXQgd291bGQgY2F1c2UgaXQgdG8gbmV2ZXIgc3RhcnRcbiAgICAvLyBmbG93aW5nIGFnYWluLlxuICAgIC8vIFNvLCBpZiB0aGlzIGlzIGF3YWl0aW5nIGEgZHJhaW4sIHRoZW4gd2UganVzdCBjYWxsIGl0IG5vdy5cbiAgICAvLyBJZiB3ZSBkb24ndCBrbm93LCB0aGVuIGFzc3VtZSB0aGF0IHdlIGFyZSB3YWl0aW5nIGZvciBvbmUuXG4gICAgaWYgKHN0YXRlLmF3YWl0RHJhaW4gJiYgKCFkZXN0Ll93cml0YWJsZVN0YXRlIHx8IGRlc3QuX3dyaXRhYmxlU3RhdGUubmVlZERyYWluKSkgb25kcmFpbigpO1xuICB9XG4gIHNyYy5vbignZGF0YScsIG9uZGF0YSk7XG4gIGZ1bmN0aW9uIG9uZGF0YShjaHVuaykge1xuICAgIGRlYnVnKCdvbmRhdGEnKTtcbiAgICB2YXIgcmV0ID0gZGVzdC53cml0ZShjaHVuayk7XG4gICAgZGVidWcoJ2Rlc3Qud3JpdGUnLCByZXQpO1xuICAgIGlmIChyZXQgPT09IGZhbHNlKSB7XG4gICAgICAvLyBJZiB0aGUgdXNlciB1bnBpcGVkIGR1cmluZyBgZGVzdC53cml0ZSgpYCwgaXQgaXMgcG9zc2libGVcbiAgICAgIC8vIHRvIGdldCBzdHVjayBpbiBhIHBlcm1hbmVudGx5IHBhdXNlZCBzdGF0ZSBpZiB0aGF0IHdyaXRlXG4gICAgICAvLyBhbHNvIHJldHVybmVkIGZhbHNlLlxuICAgICAgLy8gPT4gQ2hlY2sgd2hldGhlciBgZGVzdGAgaXMgc3RpbGwgYSBwaXBpbmcgZGVzdGluYXRpb24uXG4gICAgICBpZiAoKHN0YXRlLnBpcGVzQ291bnQgPT09IDEgJiYgc3RhdGUucGlwZXMgPT09IGRlc3QgfHwgc3RhdGUucGlwZXNDb3VudCA+IDEgJiYgaW5kZXhPZihzdGF0ZS5waXBlcywgZGVzdCkgIT09IC0xKSAmJiAhY2xlYW5lZFVwKSB7XG4gICAgICAgIGRlYnVnKCdmYWxzZSB3cml0ZSByZXNwb25zZSwgcGF1c2UnLCBzdGF0ZS5hd2FpdERyYWluKTtcbiAgICAgICAgc3RhdGUuYXdhaXREcmFpbisrO1xuICAgICAgfVxuICAgICAgc3JjLnBhdXNlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gaWYgdGhlIGRlc3QgaGFzIGFuIGVycm9yLCB0aGVuIHN0b3AgcGlwaW5nIGludG8gaXQuXG4gIC8vIGhvd2V2ZXIsIGRvbid0IHN1cHByZXNzIHRoZSB0aHJvd2luZyBiZWhhdmlvciBmb3IgdGhpcy5cbiAgZnVuY3Rpb24gb25lcnJvcihlcikge1xuICAgIGRlYnVnKCdvbmVycm9yJywgZXIpO1xuICAgIHVucGlwZSgpO1xuICAgIGRlc3QucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgb25lcnJvcik7XG4gICAgaWYgKEVFbGlzdGVuZXJDb3VudChkZXN0LCAnZXJyb3InKSA9PT0gMCkgZXJyb3JPckRlc3Ryb3koZGVzdCwgZXIpO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIG91ciBlcnJvciBoYW5kbGVyIGlzIGF0dGFjaGVkIGJlZm9yZSB1c2VybGFuZCBvbmVzLlxuICBwcmVwZW5kTGlzdGVuZXIoZGVzdCwgJ2Vycm9yJywgb25lcnJvcik7XG5cbiAgLy8gQm90aCBjbG9zZSBhbmQgZmluaXNoIHNob3VsZCB0cmlnZ2VyIHVucGlwZSwgYnV0IG9ubHkgb25jZS5cbiAgZnVuY3Rpb24gb25jbG9zZSgpIHtcbiAgICBkZXN0LnJlbW92ZUxpc3RlbmVyKCdmaW5pc2gnLCBvbmZpbmlzaCk7XG4gICAgdW5waXBlKCk7XG4gIH1cbiAgZGVzdC5vbmNlKCdjbG9zZScsIG9uY2xvc2UpO1xuICBmdW5jdGlvbiBvbmZpbmlzaCgpIHtcbiAgICBkZWJ1Zygnb25maW5pc2gnKTtcbiAgICBkZXN0LnJlbW92ZUxpc3RlbmVyKCdjbG9zZScsIG9uY2xvc2UpO1xuICAgIHVucGlwZSgpO1xuICB9XG4gIGRlc3Qub25jZSgnZmluaXNoJywgb25maW5pc2gpO1xuICBmdW5jdGlvbiB1bnBpcGUoKSB7XG4gICAgZGVidWcoJ3VucGlwZScpO1xuICAgIHNyYy51bnBpcGUoZGVzdCk7XG4gIH1cblxuICAvLyB0ZWxsIHRoZSBkZXN0IHRoYXQgaXQncyBiZWluZyBwaXBlZCB0b1xuICBkZXN0LmVtaXQoJ3BpcGUnLCBzcmMpO1xuXG4gIC8vIHN0YXJ0IHRoZSBmbG93IGlmIGl0IGhhc24ndCBiZWVuIHN0YXJ0ZWQgYWxyZWFkeS5cbiAgaWYgKCFzdGF0ZS5mbG93aW5nKSB7XG4gICAgZGVidWcoJ3BpcGUgcmVzdW1lJyk7XG4gICAgc3JjLnJlc3VtZSgpO1xuICB9XG4gIHJldHVybiBkZXN0O1xufTtcbmZ1bmN0aW9uIHBpcGVPbkRyYWluKHNyYykge1xuICByZXR1cm4gZnVuY3Rpb24gcGlwZU9uRHJhaW5GdW5jdGlvblJlc3VsdCgpIHtcbiAgICB2YXIgc3RhdGUgPSBzcmMuX3JlYWRhYmxlU3RhdGU7XG4gICAgZGVidWcoJ3BpcGVPbkRyYWluJywgc3RhdGUuYXdhaXREcmFpbik7XG4gICAgaWYgKHN0YXRlLmF3YWl0RHJhaW4pIHN0YXRlLmF3YWl0RHJhaW4tLTtcbiAgICBpZiAoc3RhdGUuYXdhaXREcmFpbiA9PT0gMCAmJiBFRWxpc3RlbmVyQ291bnQoc3JjLCAnZGF0YScpKSB7XG4gICAgICBzdGF0ZS5mbG93aW5nID0gdHJ1ZTtcbiAgICAgIGZsb3coc3JjKTtcbiAgICB9XG4gIH07XG59XG5SZWFkYWJsZS5wcm90b3R5cGUudW5waXBlID0gZnVuY3Rpb24gKGRlc3QpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fcmVhZGFibGVTdGF0ZTtcbiAgdmFyIHVucGlwZUluZm8gPSB7XG4gICAgaGFzVW5waXBlZDogZmFsc2VcbiAgfTtcblxuICAvLyBpZiB3ZSdyZSBub3QgcGlwaW5nIGFueXdoZXJlLCB0aGVuIGRvIG5vdGhpbmcuXG4gIGlmIChzdGF0ZS5waXBlc0NvdW50ID09PSAwKSByZXR1cm4gdGhpcztcblxuICAvLyBqdXN0IG9uZSBkZXN0aW5hdGlvbi4gIG1vc3QgY29tbW9uIGNhc2UuXG4gIGlmIChzdGF0ZS5waXBlc0NvdW50ID09PSAxKSB7XG4gICAgLy8gcGFzc2VkIGluIG9uZSwgYnV0IGl0J3Mgbm90IHRoZSByaWdodCBvbmUuXG4gICAgaWYgKGRlc3QgJiYgZGVzdCAhPT0gc3RhdGUucGlwZXMpIHJldHVybiB0aGlzO1xuICAgIGlmICghZGVzdCkgZGVzdCA9IHN0YXRlLnBpcGVzO1xuXG4gICAgLy8gZ290IGEgbWF0Y2guXG4gICAgc3RhdGUucGlwZXMgPSBudWxsO1xuICAgIHN0YXRlLnBpcGVzQ291bnQgPSAwO1xuICAgIHN0YXRlLmZsb3dpbmcgPSBmYWxzZTtcbiAgICBpZiAoZGVzdCkgZGVzdC5lbWl0KCd1bnBpcGUnLCB0aGlzLCB1bnBpcGVJbmZvKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIHNsb3cgY2FzZS4gbXVsdGlwbGUgcGlwZSBkZXN0aW5hdGlvbnMuXG5cbiAgaWYgKCFkZXN0KSB7XG4gICAgLy8gcmVtb3ZlIGFsbC5cbiAgICB2YXIgZGVzdHMgPSBzdGF0ZS5waXBlcztcbiAgICB2YXIgbGVuID0gc3RhdGUucGlwZXNDb3VudDtcbiAgICBzdGF0ZS5waXBlcyA9IG51bGw7XG4gICAgc3RhdGUucGlwZXNDb3VudCA9IDA7XG4gICAgc3RhdGUuZmxvd2luZyA9IGZhbHNlO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGRlc3RzW2ldLmVtaXQoJ3VucGlwZScsIHRoaXMsIHtcbiAgICAgIGhhc1VucGlwZWQ6IGZhbHNlXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyB0cnkgdG8gZmluZCB0aGUgcmlnaHQgb25lLlxuICB2YXIgaW5kZXggPSBpbmRleE9mKHN0YXRlLnBpcGVzLCBkZXN0KTtcbiAgaWYgKGluZGV4ID09PSAtMSkgcmV0dXJuIHRoaXM7XG4gIHN0YXRlLnBpcGVzLnNwbGljZShpbmRleCwgMSk7XG4gIHN0YXRlLnBpcGVzQ291bnQgLT0gMTtcbiAgaWYgKHN0YXRlLnBpcGVzQ291bnQgPT09IDEpIHN0YXRlLnBpcGVzID0gc3RhdGUucGlwZXNbMF07XG4gIGRlc3QuZW1pdCgndW5waXBlJywgdGhpcywgdW5waXBlSW5mbyk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLy8gc2V0IHVwIGRhdGEgZXZlbnRzIGlmIHRoZXkgYXJlIGFza2VkIGZvclxuLy8gRW5zdXJlIHJlYWRhYmxlIGxpc3RlbmVycyBldmVudHVhbGx5IGdldCBzb21ldGhpbmdcblJlYWRhYmxlLnByb3RvdHlwZS5vbiA9IGZ1bmN0aW9uIChldiwgZm4pIHtcbiAgdmFyIHJlcyA9IFN0cmVhbS5wcm90b3R5cGUub24uY2FsbCh0aGlzLCBldiwgZm4pO1xuICB2YXIgc3RhdGUgPSB0aGlzLl9yZWFkYWJsZVN0YXRlO1xuICBpZiAoZXYgPT09ICdkYXRhJykge1xuICAgIC8vIHVwZGF0ZSByZWFkYWJsZUxpc3RlbmluZyBzbyB0aGF0IHJlc3VtZSgpIG1heSBiZSBhIG5vLW9wXG4gICAgLy8gYSBmZXcgbGluZXMgZG93bi4gVGhpcyBpcyBuZWVkZWQgdG8gc3VwcG9ydCBvbmNlKCdyZWFkYWJsZScpLlxuICAgIHN0YXRlLnJlYWRhYmxlTGlzdGVuaW5nID0gdGhpcy5saXN0ZW5lckNvdW50KCdyZWFkYWJsZScpID4gMDtcblxuICAgIC8vIFRyeSBzdGFydCBmbG93aW5nIG9uIG5leHQgdGljayBpZiBzdHJlYW0gaXNuJ3QgZXhwbGljaXRseSBwYXVzZWRcbiAgICBpZiAoc3RhdGUuZmxvd2luZyAhPT0gZmFsc2UpIHRoaXMucmVzdW1lKCk7XG4gIH0gZWxzZSBpZiAoZXYgPT09ICdyZWFkYWJsZScpIHtcbiAgICBpZiAoIXN0YXRlLmVuZEVtaXR0ZWQgJiYgIXN0YXRlLnJlYWRhYmxlTGlzdGVuaW5nKSB7XG4gICAgICBzdGF0ZS5yZWFkYWJsZUxpc3RlbmluZyA9IHN0YXRlLm5lZWRSZWFkYWJsZSA9IHRydWU7XG4gICAgICBzdGF0ZS5mbG93aW5nID0gZmFsc2U7XG4gICAgICBzdGF0ZS5lbWl0dGVkUmVhZGFibGUgPSBmYWxzZTtcbiAgICAgIGRlYnVnKCdvbiByZWFkYWJsZScsIHN0YXRlLmxlbmd0aCwgc3RhdGUucmVhZGluZyk7XG4gICAgICBpZiAoc3RhdGUubGVuZ3RoKSB7XG4gICAgICAgIGVtaXRSZWFkYWJsZSh0aGlzKTtcbiAgICAgIH0gZWxzZSBpZiAoIXN0YXRlLnJlYWRpbmcpIHtcbiAgICAgICAgcHJvY2Vzcy5uZXh0VGljayhuUmVhZGluZ05leHRUaWNrLCB0aGlzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlcztcbn07XG5SZWFkYWJsZS5wcm90b3R5cGUuYWRkTGlzdGVuZXIgPSBSZWFkYWJsZS5wcm90b3R5cGUub247XG5SZWFkYWJsZS5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIgPSBmdW5jdGlvbiAoZXYsIGZuKSB7XG4gIHZhciByZXMgPSBTdHJlYW0ucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyLmNhbGwodGhpcywgZXYsIGZuKTtcbiAgaWYgKGV2ID09PSAncmVhZGFibGUnKSB7XG4gICAgLy8gV2UgbmVlZCB0byBjaGVjayBpZiB0aGVyZSBpcyBzb21lb25lIHN0aWxsIGxpc3RlbmluZyB0b1xuICAgIC8vIHJlYWRhYmxlIGFuZCByZXNldCB0aGUgc3RhdGUuIEhvd2V2ZXIgdGhpcyBuZWVkcyB0byBoYXBwZW5cbiAgICAvLyBhZnRlciByZWFkYWJsZSBoYXMgYmVlbiBlbWl0dGVkIGJ1dCBiZWZvcmUgSS9PIChuZXh0VGljaykgdG9cbiAgICAvLyBzdXBwb3J0IG9uY2UoJ3JlYWRhYmxlJywgZm4pIGN5Y2xlcy4gVGhpcyBtZWFucyB0aGF0IGNhbGxpbmdcbiAgICAvLyByZXN1bWUgd2l0aGluIHRoZSBzYW1lIHRpY2sgd2lsbCBoYXZlIG5vXG4gICAgLy8gZWZmZWN0LlxuICAgIHByb2Nlc3MubmV4dFRpY2sodXBkYXRlUmVhZGFibGVMaXN0ZW5pbmcsIHRoaXMpO1xuICB9XG4gIHJldHVybiByZXM7XG59O1xuUmVhZGFibGUucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycyA9IGZ1bmN0aW9uIChldikge1xuICB2YXIgcmVzID0gU3RyZWFtLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgaWYgKGV2ID09PSAncmVhZGFibGUnIHx8IGV2ID09PSB1bmRlZmluZWQpIHtcbiAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIGlmIHRoZXJlIGlzIHNvbWVvbmUgc3RpbGwgbGlzdGVuaW5nIHRvXG4gICAgLy8gcmVhZGFibGUgYW5kIHJlc2V0IHRoZSBzdGF0ZS4gSG93ZXZlciB0aGlzIG5lZWRzIHRvIGhhcHBlblxuICAgIC8vIGFmdGVyIHJlYWRhYmxlIGhhcyBiZWVuIGVtaXR0ZWQgYnV0IGJlZm9yZSBJL08gKG5leHRUaWNrKSB0b1xuICAgIC8vIHN1cHBvcnQgb25jZSgncmVhZGFibGUnLCBmbikgY3ljbGVzLiBUaGlzIG1lYW5zIHRoYXQgY2FsbGluZ1xuICAgIC8vIHJlc3VtZSB3aXRoaW4gdGhlIHNhbWUgdGljayB3aWxsIGhhdmUgbm9cbiAgICAvLyBlZmZlY3QuXG4gICAgcHJvY2Vzcy5uZXh0VGljayh1cGRhdGVSZWFkYWJsZUxpc3RlbmluZywgdGhpcyk7XG4gIH1cbiAgcmV0dXJuIHJlcztcbn07XG5mdW5jdGlvbiB1cGRhdGVSZWFkYWJsZUxpc3RlbmluZyhzZWxmKSB7XG4gIHZhciBzdGF0ZSA9IHNlbGYuX3JlYWRhYmxlU3RhdGU7XG4gIHN0YXRlLnJlYWRhYmxlTGlzdGVuaW5nID0gc2VsZi5saXN0ZW5lckNvdW50KCdyZWFkYWJsZScpID4gMDtcbiAgaWYgKHN0YXRlLnJlc3VtZVNjaGVkdWxlZCAmJiAhc3RhdGUucGF1c2VkKSB7XG4gICAgLy8gZmxvd2luZyBuZWVkcyB0byBiZSBzZXQgdG8gdHJ1ZSBub3csIG90aGVyd2lzZVxuICAgIC8vIHRoZSB1cGNvbWluZyByZXN1bWUgd2lsbCBub3QgZmxvdy5cbiAgICBzdGF0ZS5mbG93aW5nID0gdHJ1ZTtcblxuICAgIC8vIGNydWRlIHdheSB0byBjaGVjayBpZiB3ZSBzaG91bGQgcmVzdW1lXG4gIH0gZWxzZSBpZiAoc2VsZi5saXN0ZW5lckNvdW50KCdkYXRhJykgPiAwKSB7XG4gICAgc2VsZi5yZXN1bWUoKTtcbiAgfVxufVxuZnVuY3Rpb24gblJlYWRpbmdOZXh0VGljayhzZWxmKSB7XG4gIGRlYnVnKCdyZWFkYWJsZSBuZXh0dGljayByZWFkIDAnKTtcbiAgc2VsZi5yZWFkKDApO1xufVxuXG4vLyBwYXVzZSgpIGFuZCByZXN1bWUoKSBhcmUgcmVtbmFudHMgb2YgdGhlIGxlZ2FjeSByZWFkYWJsZSBzdHJlYW0gQVBJXG4vLyBJZiB0aGUgdXNlciB1c2VzIHRoZW0sIHRoZW4gc3dpdGNoIGludG8gb2xkIG1vZGUuXG5SZWFkYWJsZS5wcm90b3R5cGUucmVzdW1lID0gZnVuY3Rpb24gKCkge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9yZWFkYWJsZVN0YXRlO1xuICBpZiAoIXN0YXRlLmZsb3dpbmcpIHtcbiAgICBkZWJ1ZygncmVzdW1lJyk7XG4gICAgLy8gd2UgZmxvdyBvbmx5IGlmIHRoZXJlIGlzIG5vIG9uZSBsaXN0ZW5pbmdcbiAgICAvLyBmb3IgcmVhZGFibGUsIGJ1dCB3ZSBzdGlsbCBoYXZlIHRvIGNhbGxcbiAgICAvLyByZXN1bWUoKVxuICAgIHN0YXRlLmZsb3dpbmcgPSAhc3RhdGUucmVhZGFibGVMaXN0ZW5pbmc7XG4gICAgcmVzdW1lKHRoaXMsIHN0YXRlKTtcbiAgfVxuICBzdGF0ZS5wYXVzZWQgPSBmYWxzZTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuZnVuY3Rpb24gcmVzdW1lKHN0cmVhbSwgc3RhdGUpIHtcbiAgaWYgKCFzdGF0ZS5yZXN1bWVTY2hlZHVsZWQpIHtcbiAgICBzdGF0ZS5yZXN1bWVTY2hlZHVsZWQgPSB0cnVlO1xuICAgIHByb2Nlc3MubmV4dFRpY2socmVzdW1lXywgc3RyZWFtLCBzdGF0ZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIHJlc3VtZV8oc3RyZWFtLCBzdGF0ZSkge1xuICBkZWJ1ZygncmVzdW1lJywgc3RhdGUucmVhZGluZyk7XG4gIGlmICghc3RhdGUucmVhZGluZykge1xuICAgIHN0cmVhbS5yZWFkKDApO1xuICB9XG4gIHN0YXRlLnJlc3VtZVNjaGVkdWxlZCA9IGZhbHNlO1xuICBzdHJlYW0uZW1pdCgncmVzdW1lJyk7XG4gIGZsb3coc3RyZWFtKTtcbiAgaWYgKHN0YXRlLmZsb3dpbmcgJiYgIXN0YXRlLnJlYWRpbmcpIHN0cmVhbS5yZWFkKDApO1xufVxuUmVhZGFibGUucHJvdG90eXBlLnBhdXNlID0gZnVuY3Rpb24gKCkge1xuICBkZWJ1ZygnY2FsbCBwYXVzZSBmbG93aW5nPSVqJywgdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nKTtcbiAgaWYgKHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyAhPT0gZmFsc2UpIHtcbiAgICBkZWJ1ZygncGF1c2UnKTtcbiAgICB0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmVtaXQoJ3BhdXNlJyk7XG4gIH1cbiAgdGhpcy5fcmVhZGFibGVTdGF0ZS5wYXVzZWQgPSB0cnVlO1xuICByZXR1cm4gdGhpcztcbn07XG5mdW5jdGlvbiBmbG93KHN0cmVhbSkge1xuICB2YXIgc3RhdGUgPSBzdHJlYW0uX3JlYWRhYmxlU3RhdGU7XG4gIGRlYnVnKCdmbG93Jywgc3RhdGUuZmxvd2luZyk7XG4gIHdoaWxlIChzdGF0ZS5mbG93aW5nICYmIHN0cmVhbS5yZWFkKCkgIT09IG51bGwpO1xufVxuXG4vLyB3cmFwIGFuIG9sZC1zdHlsZSBzdHJlYW0gYXMgdGhlIGFzeW5jIGRhdGEgc291cmNlLlxuLy8gVGhpcyBpcyAqbm90KiBwYXJ0IG9mIHRoZSByZWFkYWJsZSBzdHJlYW0gaW50ZXJmYWNlLlxuLy8gSXQgaXMgYW4gdWdseSB1bmZvcnR1bmF0ZSBtZXNzIG9mIGhpc3RvcnkuXG5SZWFkYWJsZS5wcm90b3R5cGUud3JhcCA9IGZ1bmN0aW9uIChzdHJlYW0pIHtcbiAgdmFyIF90aGlzID0gdGhpcztcbiAgdmFyIHN0YXRlID0gdGhpcy5fcmVhZGFibGVTdGF0ZTtcbiAgdmFyIHBhdXNlZCA9IGZhbHNlO1xuICBzdHJlYW0ub24oJ2VuZCcsIGZ1bmN0aW9uICgpIHtcbiAgICBkZWJ1Zygnd3JhcHBlZCBlbmQnKTtcbiAgICBpZiAoc3RhdGUuZGVjb2RlciAmJiAhc3RhdGUuZW5kZWQpIHtcbiAgICAgIHZhciBjaHVuayA9IHN0YXRlLmRlY29kZXIuZW5kKCk7XG4gICAgICBpZiAoY2h1bmsgJiYgY2h1bmsubGVuZ3RoKSBfdGhpcy5wdXNoKGNodW5rKTtcbiAgICB9XG4gICAgX3RoaXMucHVzaChudWxsKTtcbiAgfSk7XG4gIHN0cmVhbS5vbignZGF0YScsIGZ1bmN0aW9uIChjaHVuaykge1xuICAgIGRlYnVnKCd3cmFwcGVkIGRhdGEnKTtcbiAgICBpZiAoc3RhdGUuZGVjb2RlcikgY2h1bmsgPSBzdGF0ZS5kZWNvZGVyLndyaXRlKGNodW5rKTtcblxuICAgIC8vIGRvbid0IHNraXAgb3ZlciBmYWxzeSB2YWx1ZXMgaW4gb2JqZWN0TW9kZVxuICAgIGlmIChzdGF0ZS5vYmplY3RNb2RlICYmIChjaHVuayA9PT0gbnVsbCB8fCBjaHVuayA9PT0gdW5kZWZpbmVkKSkgcmV0dXJuO2Vsc2UgaWYgKCFzdGF0ZS5vYmplY3RNb2RlICYmICghY2h1bmsgfHwgIWNodW5rLmxlbmd0aCkpIHJldHVybjtcbiAgICB2YXIgcmV0ID0gX3RoaXMucHVzaChjaHVuayk7XG4gICAgaWYgKCFyZXQpIHtcbiAgICAgIHBhdXNlZCA9IHRydWU7XG4gICAgICBzdHJlYW0ucGF1c2UoKTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vIHByb3h5IGFsbCB0aGUgb3RoZXIgbWV0aG9kcy5cbiAgLy8gaW1wb3J0YW50IHdoZW4gd3JhcHBpbmcgZmlsdGVycyBhbmQgZHVwbGV4ZXMuXG4gIGZvciAodmFyIGkgaW4gc3RyZWFtKSB7XG4gICAgaWYgKHRoaXNbaV0gPT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygc3RyZWFtW2ldID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzW2ldID0gZnVuY3Rpb24gbWV0aG9kV3JhcChtZXRob2QpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIG1ldGhvZFdyYXBSZXR1cm5GdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gc3RyZWFtW21ldGhvZF0uYXBwbHkoc3RyZWFtLCBhcmd1bWVudHMpO1xuICAgICAgICB9O1xuICAgICAgfShpKTtcbiAgICB9XG4gIH1cblxuICAvLyBwcm94eSBjZXJ0YWluIGltcG9ydGFudCBldmVudHMuXG4gIGZvciAodmFyIG4gPSAwOyBuIDwga1Byb3h5RXZlbnRzLmxlbmd0aDsgbisrKSB7XG4gICAgc3RyZWFtLm9uKGtQcm94eUV2ZW50c1tuXSwgdGhpcy5lbWl0LmJpbmQodGhpcywga1Byb3h5RXZlbnRzW25dKSk7XG4gIH1cblxuICAvLyB3aGVuIHdlIHRyeSB0byBjb25zdW1lIHNvbWUgbW9yZSBieXRlcywgc2ltcGx5IHVucGF1c2UgdGhlXG4gIC8vIHVuZGVybHlpbmcgc3RyZWFtLlxuICB0aGlzLl9yZWFkID0gZnVuY3Rpb24gKG4pIHtcbiAgICBkZWJ1Zygnd3JhcHBlZCBfcmVhZCcsIG4pO1xuICAgIGlmIChwYXVzZWQpIHtcbiAgICAgIHBhdXNlZCA9IGZhbHNlO1xuICAgICAgc3RyZWFtLnJlc3VtZSgpO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuaWYgKHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicpIHtcbiAgUmVhZGFibGUucHJvdG90eXBlW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoY3JlYXRlUmVhZGFibGVTdHJlYW1Bc3luY0l0ZXJhdG9yID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNyZWF0ZVJlYWRhYmxlU3RyZWFtQXN5bmNJdGVyYXRvciA9IHJlcXVpcmUoJy4vaW50ZXJuYWwvc3RyZWFtcy9hc3luY19pdGVyYXRvcicpO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlUmVhZGFibGVTdHJlYW1Bc3luY0l0ZXJhdG9yKHRoaXMpO1xuICB9O1xufVxuT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlYWRhYmxlLnByb3RvdHlwZSwgJ3JlYWRhYmxlSGlnaFdhdGVyTWFyaycsIHtcbiAgLy8gbWFraW5nIGl0IGV4cGxpY2l0IHRoaXMgcHJvcGVydHkgaXMgbm90IGVudW1lcmFibGVcbiAgLy8gYmVjYXVzZSBvdGhlcndpc2Ugc29tZSBwcm90b3R5cGUgbWFuaXB1bGF0aW9uIGluXG4gIC8vIHVzZXJsYW5kIHdpbGwgZmFpbFxuICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUuaGlnaFdhdGVyTWFyaztcbiAgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoUmVhZGFibGUucHJvdG90eXBlLCAncmVhZGFibGVCdWZmZXInLCB7XG4gIC8vIG1ha2luZyBpdCBleHBsaWNpdCB0aGlzIHByb3BlcnR5IGlzIG5vdCBlbnVtZXJhYmxlXG4gIC8vIGJlY2F1c2Ugb3RoZXJ3aXNlIHNvbWUgcHJvdG90eXBlIG1hbmlwdWxhdGlvbiBpblxuICAvLyB1c2VybGFuZCB3aWxsIGZhaWxcbiAgZW51bWVyYWJsZTogZmFsc2UsXG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHJldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlICYmIHRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyO1xuICB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWFkYWJsZS5wcm90b3R5cGUsICdyZWFkYWJsZUZsb3dpbmcnLCB7XG4gIC8vIG1ha2luZyBpdCBleHBsaWNpdCB0aGlzIHByb3BlcnR5IGlzIG5vdCBlbnVtZXJhYmxlXG4gIC8vIGJlY2F1c2Ugb3RoZXJ3aXNlIHNvbWUgcHJvdG90eXBlIG1hbmlwdWxhdGlvbiBpblxuICAvLyB1c2VybGFuZCB3aWxsIGZhaWxcbiAgZW51bWVyYWJsZTogZmFsc2UsXG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHJldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmc7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24gc2V0KHN0YXRlKSB7XG4gICAgaWYgKHRoaXMuX3JlYWRhYmxlU3RhdGUpIHtcbiAgICAgIHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyA9IHN0YXRlO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIGV4cG9zZWQgZm9yIHRlc3RpbmcgcHVycG9zZXMgb25seS5cblJlYWRhYmxlLl9mcm9tTGlzdCA9IGZyb21MaXN0O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlYWRhYmxlLnByb3RvdHlwZSwgJ3JlYWRhYmxlTGVuZ3RoJywge1xuICAvLyBtYWtpbmcgaXQgZXhwbGljaXQgdGhpcyBwcm9wZXJ0eSBpcyBub3QgZW51bWVyYWJsZVxuICAvLyBiZWNhdXNlIG90aGVyd2lzZSBzb21lIHByb3RvdHlwZSBtYW5pcHVsYXRpb24gaW5cbiAgLy8gdXNlcmxhbmQgd2lsbCBmYWlsXG4gIGVudW1lcmFibGU6IGZhbHNlLFxuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5sZW5ndGg7XG4gIH1cbn0pO1xuXG4vLyBQbHVjayBvZmYgbiBieXRlcyBmcm9tIGFuIGFycmF5IG9mIGJ1ZmZlcnMuXG4vLyBMZW5ndGggaXMgdGhlIGNvbWJpbmVkIGxlbmd0aHMgb2YgYWxsIHRoZSBidWZmZXJzIGluIHRoZSBsaXN0LlxuLy8gVGhpcyBmdW5jdGlvbiBpcyBkZXNpZ25lZCB0byBiZSBpbmxpbmFibGUsIHNvIHBsZWFzZSB0YWtlIGNhcmUgd2hlbiBtYWtpbmdcbi8vIGNoYW5nZXMgdG8gdGhlIGZ1bmN0aW9uIGJvZHkuXG5mdW5jdGlvbiBmcm9tTGlzdChuLCBzdGF0ZSkge1xuICAvLyBub3RoaW5nIGJ1ZmZlcmVkXG4gIGlmIChzdGF0ZS5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xuICB2YXIgcmV0O1xuICBpZiAoc3RhdGUub2JqZWN0TW9kZSkgcmV0ID0gc3RhdGUuYnVmZmVyLnNoaWZ0KCk7ZWxzZSBpZiAoIW4gfHwgbiA+PSBzdGF0ZS5sZW5ndGgpIHtcbiAgICAvLyByZWFkIGl0IGFsbCwgdHJ1bmNhdGUgdGhlIGxpc3RcbiAgICBpZiAoc3RhdGUuZGVjb2RlcikgcmV0ID0gc3RhdGUuYnVmZmVyLmpvaW4oJycpO2Vsc2UgaWYgKHN0YXRlLmJ1ZmZlci5sZW5ndGggPT09IDEpIHJldCA9IHN0YXRlLmJ1ZmZlci5maXJzdCgpO2Vsc2UgcmV0ID0gc3RhdGUuYnVmZmVyLmNvbmNhdChzdGF0ZS5sZW5ndGgpO1xuICAgIHN0YXRlLmJ1ZmZlci5jbGVhcigpO1xuICB9IGVsc2Uge1xuICAgIC8vIHJlYWQgcGFydCBvZiBsaXN0XG4gICAgcmV0ID0gc3RhdGUuYnVmZmVyLmNvbnN1bWUobiwgc3RhdGUuZGVjb2Rlcik7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbmZ1bmN0aW9uIGVuZFJlYWRhYmxlKHN0cmVhbSkge1xuICB2YXIgc3RhdGUgPSBzdHJlYW0uX3JlYWRhYmxlU3RhdGU7XG4gIGRlYnVnKCdlbmRSZWFkYWJsZScsIHN0YXRlLmVuZEVtaXR0ZWQpO1xuICBpZiAoIXN0YXRlLmVuZEVtaXR0ZWQpIHtcbiAgICBzdGF0ZS5lbmRlZCA9IHRydWU7XG4gICAgcHJvY2Vzcy5uZXh0VGljayhlbmRSZWFkYWJsZU5ULCBzdGF0ZSwgc3RyZWFtKTtcbiAgfVxufVxuZnVuY3Rpb24gZW5kUmVhZGFibGVOVChzdGF0ZSwgc3RyZWFtKSB7XG4gIGRlYnVnKCdlbmRSZWFkYWJsZU5UJywgc3RhdGUuZW5kRW1pdHRlZCwgc3RhdGUubGVuZ3RoKTtcblxuICAvLyBDaGVjayB0aGF0IHdlIGRpZG4ndCBnZXQgb25lIGxhc3QgdW5zaGlmdC5cbiAgaWYgKCFzdGF0ZS5lbmRFbWl0dGVkICYmIHN0YXRlLmxlbmd0aCA9PT0gMCkge1xuICAgIHN0YXRlLmVuZEVtaXR0ZWQgPSB0cnVlO1xuICAgIHN0cmVhbS5yZWFkYWJsZSA9IGZhbHNlO1xuICAgIHN0cmVhbS5lbWl0KCdlbmQnKTtcbiAgICBpZiAoc3RhdGUuYXV0b0Rlc3Ryb3kpIHtcbiAgICAgIC8vIEluIGNhc2Ugb2YgZHVwbGV4IHN0cmVhbXMgd2UgbmVlZCBhIHdheSB0byBkZXRlY3RcbiAgICAgIC8vIGlmIHRoZSB3cml0YWJsZSBzaWRlIGlzIHJlYWR5IGZvciBhdXRvRGVzdHJveSBhcyB3ZWxsXG4gICAgICB2YXIgd1N0YXRlID0gc3RyZWFtLl93cml0YWJsZVN0YXRlO1xuICAgICAgaWYgKCF3U3RhdGUgfHwgd1N0YXRlLmF1dG9EZXN0cm95ICYmIHdTdGF0ZS5maW5pc2hlZCkge1xuICAgICAgICBzdHJlYW0uZGVzdHJveSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuaWYgKHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicpIHtcbiAgUmVhZGFibGUuZnJvbSA9IGZ1bmN0aW9uIChpdGVyYWJsZSwgb3B0cykge1xuICAgIGlmIChmcm9tID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGZyb20gPSByZXF1aXJlKCcuL2ludGVybmFsL3N0cmVhbXMvZnJvbScpO1xuICAgIH1cbiAgICByZXR1cm4gZnJvbShSZWFkYWJsZSwgaXRlcmFibGUsIG9wdHMpO1xuICB9O1xufVxuZnVuY3Rpb24gaW5kZXhPZih4cywgeCkge1xuICBmb3IgKHZhciBpID0gMCwgbCA9IHhzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIGlmICh4c1tpXSA9PT0geCkgcmV0dXJuIGk7XG4gIH1cbiAgcmV0dXJuIC0xO1xufSIsIlxudmFyIFhNTF9DSEFSQUNURVJfTUFQID0ge1xuICAgICcmJzogJyZhbXA7JyxcbiAgICAnXCInOiAnJnF1b3Q7JyxcbiAgICBcIidcIjogJyZhcG9zOycsXG4gICAgJzwnOiAnJmx0OycsXG4gICAgJz4nOiAnJmd0Oydcbn07XG5cbmZ1bmN0aW9uIGVzY2FwZUZvclhNTChzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyaW5nICYmIHN0cmluZy5yZXBsYWNlXG4gICAgICAgID8gc3RyaW5nLnJlcGxhY2UoLyhbJlwiPD4nXSkvZywgZnVuY3Rpb24oc3RyLCBpdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gWE1MX0NIQVJBQ1RFUl9NQVBbaXRlbV07XG4gICAgICAgICAgfSlcbiAgICAgICAgOiBzdHJpbmc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZXNjYXBlRm9yWE1MO1xuIiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbi8vIGEgcGFzc3Rocm91Z2ggc3RyZWFtLlxuLy8gYmFzaWNhbGx5IGp1c3QgdGhlIG1vc3QgbWluaW1hbCBzb3J0IG9mIFRyYW5zZm9ybSBzdHJlYW0uXG4vLyBFdmVyeSB3cml0dGVuIGNodW5rIGdldHMgb3V0cHV0IGFzLWlzLlxuXG4ndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gUGFzc1Rocm91Z2g7XG52YXIgVHJhbnNmb3JtID0gcmVxdWlyZSgnLi9fc3RyZWFtX3RyYW5zZm9ybScpO1xucmVxdWlyZSgnaW5oZXJpdHMnKShQYXNzVGhyb3VnaCwgVHJhbnNmb3JtKTtcbmZ1bmN0aW9uIFBhc3NUaHJvdWdoKG9wdGlvbnMpIHtcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFBhc3NUaHJvdWdoKSkgcmV0dXJuIG5ldyBQYXNzVGhyb3VnaChvcHRpb25zKTtcbiAgVHJhbnNmb3JtLmNhbGwodGhpcywgb3B0aW9ucyk7XG59XG5QYXNzVGhyb3VnaC5wcm90b3R5cGUuX3RyYW5zZm9ybSA9IGZ1bmN0aW9uIChjaHVuaywgZW5jb2RpbmcsIGNiKSB7XG4gIGNiKG51bGwsIGNodW5rKTtcbn07IiwiLy8gc2hpbSBmb3IgdXNpbmcgcHJvY2VzcyBpbiBicm93c2VyXG52YXIgcHJvY2VzcyA9IG1vZHVsZS5leHBvcnRzID0ge307XG5cbi8vIGNhY2hlZCBmcm9tIHdoYXRldmVyIGdsb2JhbCBpcyBwcmVzZW50IHNvIHRoYXQgdGVzdCBydW5uZXJzIHRoYXQgc3R1YiBpdFxuLy8gZG9uJ3QgYnJlYWsgdGhpbmdzLiAgQnV0IHdlIG5lZWQgdG8gd3JhcCBpdCBpbiBhIHRyeSBjYXRjaCBpbiBjYXNlIGl0IGlzXG4vLyB3cmFwcGVkIGluIHN0cmljdCBtb2RlIGNvZGUgd2hpY2ggZG9lc24ndCBkZWZpbmUgYW55IGdsb2JhbHMuICBJdCdzIGluc2lkZSBhXG4vLyBmdW5jdGlvbiBiZWNhdXNlIHRyeS9jYXRjaGVzIGRlb3B0aW1pemUgaW4gY2VydGFpbiBlbmdpbmVzLlxuXG52YXIgY2FjaGVkU2V0VGltZW91dDtcbnZhciBjYWNoZWRDbGVhclRpbWVvdXQ7XG5cbmZ1bmN0aW9uIGRlZmF1bHRTZXRUaW1vdXQoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkJyk7XG59XG5mdW5jdGlvbiBkZWZhdWx0Q2xlYXJUaW1lb3V0ICgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NsZWFyVGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCcpO1xufVxuKGZ1bmN0aW9uICgpIHtcbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIHNldFRpbWVvdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBzZXRUaW1lb3V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IGRlZmF1bHRTZXRUaW1vdXQ7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBkZWZhdWx0U2V0VGltb3V0O1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIGNsZWFyVGltZW91dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gY2xlYXJUaW1lb3V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gZGVmYXVsdENsZWFyVGltZW91dDtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gZGVmYXVsdENsZWFyVGltZW91dDtcbiAgICB9XG59ICgpKVxuZnVuY3Rpb24gcnVuVGltZW91dChmdW4pIHtcbiAgICBpZiAoY2FjaGVkU2V0VGltZW91dCA9PT0gc2V0VGltZW91dCkge1xuICAgICAgICAvL25vcm1hbCBlbnZpcm9tZW50cyBpbiBzYW5lIHNpdHVhdGlvbnNcbiAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9XG4gICAgLy8gaWYgc2V0VGltZW91dCB3YXNuJ3QgYXZhaWxhYmxlIGJ1dCB3YXMgbGF0dGVyIGRlZmluZWRcbiAgICBpZiAoKGNhY2hlZFNldFRpbWVvdXQgPT09IGRlZmF1bHRTZXRUaW1vdXQgfHwgIWNhY2hlZFNldFRpbWVvdXQpICYmIHNldFRpbWVvdXQpIHtcbiAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IHNldFRpbWVvdXQ7XG4gICAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIC8vIHdoZW4gd2hlbiBzb21lYm9keSBoYXMgc2NyZXdlZCB3aXRoIHNldFRpbWVvdXQgYnV0IG5vIEkuRS4gbWFkZG5lc3NcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9IGNhdGNoKGUpe1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gV2hlbiB3ZSBhcmUgaW4gSS5FLiBidXQgdGhlIHNjcmlwdCBoYXMgYmVlbiBldmFsZWQgc28gSS5FLiBkb2Vzbid0IHRydXN0IHRoZSBnbG9iYWwgb2JqZWN0IHdoZW4gY2FsbGVkIG5vcm1hbGx5XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dC5jYWxsKG51bGwsIGZ1biwgMCk7XG4gICAgICAgIH0gY2F0Y2goZSl7XG4gICAgICAgICAgICAvLyBzYW1lIGFzIGFib3ZlIGJ1dCB3aGVuIGl0J3MgYSB2ZXJzaW9uIG9mIEkuRS4gdGhhdCBtdXN0IGhhdmUgdGhlIGdsb2JhbCBvYmplY3QgZm9yICd0aGlzJywgaG9wZnVsbHkgb3VyIGNvbnRleHQgY29ycmVjdCBvdGhlcndpc2UgaXQgd2lsbCB0aHJvdyBhIGdsb2JhbCBlcnJvclxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQuY2FsbCh0aGlzLCBmdW4sIDApO1xuICAgICAgICB9XG4gICAgfVxuXG5cbn1cbmZ1bmN0aW9uIHJ1bkNsZWFyVGltZW91dChtYXJrZXIpIHtcbiAgICBpZiAoY2FjaGVkQ2xlYXJUaW1lb3V0ID09PSBjbGVhclRpbWVvdXQpIHtcbiAgICAgICAgLy9ub3JtYWwgZW52aXJvbWVudHMgaW4gc2FuZSBzaXR1YXRpb25zXG4gICAgICAgIHJldHVybiBjbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9XG4gICAgLy8gaWYgY2xlYXJUaW1lb3V0IHdhc24ndCBhdmFpbGFibGUgYnV0IHdhcyBsYXR0ZXIgZGVmaW5lZFxuICAgIGlmICgoY2FjaGVkQ2xlYXJUaW1lb3V0ID09PSBkZWZhdWx0Q2xlYXJUaW1lb3V0IHx8ICFjYWNoZWRDbGVhclRpbWVvdXQpICYmIGNsZWFyVGltZW91dCkge1xuICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBjbGVhclRpbWVvdXQ7XG4gICAgICAgIHJldHVybiBjbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gd2hlbiB3aGVuIHNvbWVib2R5IGhhcyBzY3Jld2VkIHdpdGggc2V0VGltZW91dCBidXQgbm8gSS5FLiBtYWRkbmVzc1xuICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfSBjYXRjaCAoZSl7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGFyZSBpbiBJLkUuIGJ1dCB0aGUgc2NyaXB0IGhhcyBiZWVuIGV2YWxlZCBzbyBJLkUuIGRvZXNuJ3QgIHRydXN0IHRoZSBnbG9iYWwgb2JqZWN0IHdoZW4gY2FsbGVkIG5vcm1hbGx5XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0LmNhbGwobnVsbCwgbWFya2VyKTtcbiAgICAgICAgfSBjYXRjaCAoZSl7XG4gICAgICAgICAgICAvLyBzYW1lIGFzIGFib3ZlIGJ1dCB3aGVuIGl0J3MgYSB2ZXJzaW9uIG9mIEkuRS4gdGhhdCBtdXN0IGhhdmUgdGhlIGdsb2JhbCBvYmplY3QgZm9yICd0aGlzJywgaG9wZnVsbHkgb3VyIGNvbnRleHQgY29ycmVjdCBvdGhlcndpc2UgaXQgd2lsbCB0aHJvdyBhIGdsb2JhbCBlcnJvci5cbiAgICAgICAgICAgIC8vIFNvbWUgdmVyc2lvbnMgb2YgSS5FLiBoYXZlIGRpZmZlcmVudCBydWxlcyBmb3IgY2xlYXJUaW1lb3V0IHZzIHNldFRpbWVvdXRcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQuY2FsbCh0aGlzLCBtYXJrZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG5cblxufVxudmFyIHF1ZXVlID0gW107XG52YXIgZHJhaW5pbmcgPSBmYWxzZTtcbnZhciBjdXJyZW50UXVldWU7XG52YXIgcXVldWVJbmRleCA9IC0xO1xuXG5mdW5jdGlvbiBjbGVhblVwTmV4dFRpY2soKSB7XG4gICAgaWYgKCFkcmFpbmluZyB8fCAhY3VycmVudFF1ZXVlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZHJhaW5pbmcgPSBmYWxzZTtcbiAgICBpZiAoY3VycmVudFF1ZXVlLmxlbmd0aCkge1xuICAgICAgICBxdWV1ZSA9IGN1cnJlbnRRdWV1ZS5jb25jYXQocXVldWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHF1ZXVlSW5kZXggPSAtMTtcbiAgICB9XG4gICAgaWYgKHF1ZXVlLmxlbmd0aCkge1xuICAgICAgICBkcmFpblF1ZXVlKCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBkcmFpblF1ZXVlKCkge1xuICAgIGlmIChkcmFpbmluZykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciB0aW1lb3V0ID0gcnVuVGltZW91dChjbGVhblVwTmV4dFRpY2spO1xuICAgIGRyYWluaW5nID0gdHJ1ZTtcblxuICAgIHZhciBsZW4gPSBxdWV1ZS5sZW5ndGg7XG4gICAgd2hpbGUobGVuKSB7XG4gICAgICAgIGN1cnJlbnRRdWV1ZSA9IHF1ZXVlO1xuICAgICAgICBxdWV1ZSA9IFtdO1xuICAgICAgICB3aGlsZSAoKytxdWV1ZUluZGV4IDwgbGVuKSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudFF1ZXVlKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFF1ZXVlW3F1ZXVlSW5kZXhdLnJ1bigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHF1ZXVlSW5kZXggPSAtMTtcbiAgICAgICAgbGVuID0gcXVldWUubGVuZ3RoO1xuICAgIH1cbiAgICBjdXJyZW50UXVldWUgPSBudWxsO1xuICAgIGRyYWluaW5nID0gZmFsc2U7XG4gICAgcnVuQ2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xufVxuXG5wcm9jZXNzLm5leHRUaWNrID0gZnVuY3Rpb24gKGZ1bikge1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGggLSAxKTtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGFyZ3NbaSAtIDFdID0gYXJndW1lbnRzW2ldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHF1ZXVlLnB1c2gobmV3IEl0ZW0oZnVuLCBhcmdzKSk7XG4gICAgaWYgKHF1ZXVlLmxlbmd0aCA9PT0gMSAmJiAhZHJhaW5pbmcpIHtcbiAgICAgICAgcnVuVGltZW91dChkcmFpblF1ZXVlKTtcbiAgICB9XG59O1xuXG4vLyB2OCBsaWtlcyBwcmVkaWN0aWJsZSBvYmplY3RzXG5mdW5jdGlvbiBJdGVtKGZ1biwgYXJyYXkpIHtcbiAgICB0aGlzLmZ1biA9IGZ1bjtcbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG59XG5JdGVtLnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5mdW4uYXBwbHkobnVsbCwgdGhpcy5hcnJheSk7XG59O1xucHJvY2Vzcy50aXRsZSA9ICdicm93c2VyJztcbnByb2Nlc3MuYnJvd3NlciA9IHRydWU7XG5wcm9jZXNzLmVudiA9IHt9O1xucHJvY2Vzcy5hcmd2ID0gW107XG5wcm9jZXNzLnZlcnNpb24gPSAnJzsgLy8gZW1wdHkgc3RyaW5nIHRvIGF2b2lkIHJlZ2V4cCBpc3N1ZXNcbnByb2Nlc3MudmVyc2lvbnMgPSB7fTtcblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbnByb2Nlc3Mub24gPSBub29wO1xucHJvY2Vzcy5hZGRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLm9uY2UgPSBub29wO1xucHJvY2Vzcy5vZmYgPSBub29wO1xucHJvY2Vzcy5yZW1vdmVMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUFsbExpc3RlbmVycyA9IG5vb3A7XG5wcm9jZXNzLmVtaXQgPSBub29wO1xucHJvY2Vzcy5wcmVwZW5kTGlzdGVuZXIgPSBub29wO1xucHJvY2Vzcy5wcmVwZW5kT25jZUxpc3RlbmVyID0gbm9vcDtcblxucHJvY2Vzcy5saXN0ZW5lcnMgPSBmdW5jdGlvbiAobmFtZSkgeyByZXR1cm4gW10gfVxuXG5wcm9jZXNzLmJpbmRpbmcgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5cbnByb2Nlc3MuY3dkID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gJy8nIH07XG5wcm9jZXNzLmNoZGlyID0gZnVuY3Rpb24gKGRpcikge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkJyk7XG59O1xucHJvY2Vzcy51bWFzayA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfTtcbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4vLyBhIHRyYW5zZm9ybSBzdHJlYW0gaXMgYSByZWFkYWJsZS93cml0YWJsZSBzdHJlYW0gd2hlcmUgeW91IGRvXG4vLyBzb21ldGhpbmcgd2l0aCB0aGUgZGF0YS4gIFNvbWV0aW1lcyBpdCdzIGNhbGxlZCBhIFwiZmlsdGVyXCIsXG4vLyBidXQgdGhhdCdzIG5vdCBhIGdyZWF0IG5hbWUgZm9yIGl0LCBzaW5jZSB0aGF0IGltcGxpZXMgYSB0aGluZyB3aGVyZVxuLy8gc29tZSBiaXRzIHBhc3MgdGhyb3VnaCwgYW5kIG90aGVycyBhcmUgc2ltcGx5IGlnbm9yZWQuICAoVGhhdCB3b3VsZFxuLy8gYmUgYSB2YWxpZCBleGFtcGxlIG9mIGEgdHJhbnNmb3JtLCBvZiBjb3Vyc2UuKVxuLy9cbi8vIFdoaWxlIHRoZSBvdXRwdXQgaXMgY2F1c2FsbHkgcmVsYXRlZCB0byB0aGUgaW5wdXQsIGl0J3Mgbm90IGFcbi8vIG5lY2Vzc2FyaWx5IHN5bW1ldHJpYyBvciBzeW5jaHJvbm91cyB0cmFuc2Zvcm1hdGlvbi4gIEZvciBleGFtcGxlLFxuLy8gYSB6bGliIHN0cmVhbSBtaWdodCB0YWtlIG11bHRpcGxlIHBsYWluLXRleHQgd3JpdGVzKCksIGFuZCB0aGVuXG4vLyBlbWl0IGEgc2luZ2xlIGNvbXByZXNzZWQgY2h1bmsgc29tZSB0aW1lIGluIHRoZSBmdXR1cmUuXG4vL1xuLy8gSGVyZSdzIGhvdyB0aGlzIHdvcmtzOlxuLy9cbi8vIFRoZSBUcmFuc2Zvcm0gc3RyZWFtIGhhcyBhbGwgdGhlIGFzcGVjdHMgb2YgdGhlIHJlYWRhYmxlIGFuZCB3cml0YWJsZVxuLy8gc3RyZWFtIGNsYXNzZXMuICBXaGVuIHlvdSB3cml0ZShjaHVuayksIHRoYXQgY2FsbHMgX3dyaXRlKGNodW5rLGNiKVxuLy8gaW50ZXJuYWxseSwgYW5kIHJldHVybnMgZmFsc2UgaWYgdGhlcmUncyBhIGxvdCBvZiBwZW5kaW5nIHdyaXRlc1xuLy8gYnVmZmVyZWQgdXAuICBXaGVuIHlvdSBjYWxsIHJlYWQoKSwgdGhhdCBjYWxscyBfcmVhZChuKSB1bnRpbFxuLy8gdGhlcmUncyBlbm91Z2ggcGVuZGluZyByZWFkYWJsZSBkYXRhIGJ1ZmZlcmVkIHVwLlxuLy9cbi8vIEluIGEgdHJhbnNmb3JtIHN0cmVhbSwgdGhlIHdyaXR0ZW4gZGF0YSBpcyBwbGFjZWQgaW4gYSBidWZmZXIuICBXaGVuXG4vLyBfcmVhZChuKSBpcyBjYWxsZWQsIGl0IHRyYW5zZm9ybXMgdGhlIHF1ZXVlZCB1cCBkYXRhLCBjYWxsaW5nIHRoZVxuLy8gYnVmZmVyZWQgX3dyaXRlIGNiJ3MgYXMgaXQgY29uc3VtZXMgY2h1bmtzLiAgSWYgY29uc3VtaW5nIGEgc2luZ2xlXG4vLyB3cml0dGVuIGNodW5rIHdvdWxkIHJlc3VsdCBpbiBtdWx0aXBsZSBvdXRwdXQgY2h1bmtzLCB0aGVuIHRoZSBmaXJzdFxuLy8gb3V0cHV0dGVkIGJpdCBjYWxscyB0aGUgcmVhZGNiLCBhbmQgc3Vic2VxdWVudCBjaHVua3MganVzdCBnbyBpbnRvXG4vLyB0aGUgcmVhZCBidWZmZXIsIGFuZCB3aWxsIGNhdXNlIGl0IHRvIGVtaXQgJ3JlYWRhYmxlJyBpZiBuZWNlc3NhcnkuXG4vL1xuLy8gVGhpcyB3YXksIGJhY2stcHJlc3N1cmUgaXMgYWN0dWFsbHkgZGV0ZXJtaW5lZCBieSB0aGUgcmVhZGluZyBzaWRlLFxuLy8gc2luY2UgX3JlYWQgaGFzIHRvIGJlIGNhbGxlZCB0byBzdGFydCBwcm9jZXNzaW5nIGEgbmV3IGNodW5rLiAgSG93ZXZlcixcbi8vIGEgcGF0aG9sb2dpY2FsIGluZmxhdGUgdHlwZSBvZiB0cmFuc2Zvcm0gY2FuIGNhdXNlIGV4Y2Vzc2l2ZSBidWZmZXJpbmdcbi8vIGhlcmUuICBGb3IgZXhhbXBsZSwgaW1hZ2luZSBhIHN0cmVhbSB3aGVyZSBldmVyeSBieXRlIG9mIGlucHV0IGlzXG4vLyBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyIGZyb20gMC0yNTUsIGFuZCB0aGVuIHJlc3VsdHMgaW4gdGhhdCBtYW55XG4vLyBieXRlcyBvZiBvdXRwdXQuICBXcml0aW5nIHRoZSA0IGJ5dGVzIHtmZixmZixmZixmZn0gd291bGQgcmVzdWx0IGluXG4vLyAxa2Igb2YgZGF0YSBiZWluZyBvdXRwdXQuICBJbiB0aGlzIGNhc2UsIHlvdSBjb3VsZCB3cml0ZSBhIHZlcnkgc21hbGxcbi8vIGFtb3VudCBvZiBpbnB1dCwgYW5kIGVuZCB1cCB3aXRoIGEgdmVyeSBsYXJnZSBhbW91bnQgb2Ygb3V0cHV0LiAgSW5cbi8vIHN1Y2ggYSBwYXRob2xvZ2ljYWwgaW5mbGF0aW5nIG1lY2hhbmlzbSwgdGhlcmUnZCBiZSBubyB3YXkgdG8gdGVsbFxuLy8gdGhlIHN5c3RlbSB0byBzdG9wIGRvaW5nIHRoZSB0cmFuc2Zvcm0uICBBIHNpbmdsZSA0TUIgd3JpdGUgY291bGRcbi8vIGNhdXNlIHRoZSBzeXN0ZW0gdG8gcnVuIG91dCBvZiBtZW1vcnkuXG4vL1xuLy8gSG93ZXZlciwgZXZlbiBpbiBzdWNoIGEgcGF0aG9sb2dpY2FsIGNhc2UsIG9ubHkgYSBzaW5nbGUgd3JpdHRlbiBjaHVua1xuLy8gd291bGQgYmUgY29uc3VtZWQsIGFuZCB0aGVuIHRoZSByZXN0IHdvdWxkIHdhaXQgKHVuLXRyYW5zZm9ybWVkKSB1bnRpbFxuLy8gdGhlIHJlc3VsdHMgb2YgdGhlIHByZXZpb3VzIHRyYW5zZm9ybWVkIGNodW5rIHdlcmUgY29uc3VtZWQuXG5cbid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBUcmFuc2Zvcm07XG52YXIgX3JlcXVpcmUkY29kZXMgPSByZXF1aXJlKCcuLi9lcnJvcnMnKS5jb2RlcyxcbiAgRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQgPSBfcmVxdWlyZSRjb2Rlcy5FUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCxcbiAgRVJSX01VTFRJUExFX0NBTExCQUNLID0gX3JlcXVpcmUkY29kZXMuRVJSX01VTFRJUExFX0NBTExCQUNLLFxuICBFUlJfVFJBTlNGT1JNX0FMUkVBRFlfVFJBTlNGT1JNSU5HID0gX3JlcXVpcmUkY29kZXMuRVJSX1RSQU5TRk9STV9BTFJFQURZX1RSQU5TRk9STUlORyxcbiAgRVJSX1RSQU5TRk9STV9XSVRIX0xFTkdUSF8wID0gX3JlcXVpcmUkY29kZXMuRVJSX1RSQU5TRk9STV9XSVRIX0xFTkdUSF8wO1xudmFyIER1cGxleCA9IHJlcXVpcmUoJy4vX3N0cmVhbV9kdXBsZXgnKTtcbnJlcXVpcmUoJ2luaGVyaXRzJykoVHJhbnNmb3JtLCBEdXBsZXgpO1xuZnVuY3Rpb24gYWZ0ZXJUcmFuc2Zvcm0oZXIsIGRhdGEpIHtcbiAgdmFyIHRzID0gdGhpcy5fdHJhbnNmb3JtU3RhdGU7XG4gIHRzLnRyYW5zZm9ybWluZyA9IGZhbHNlO1xuICB2YXIgY2IgPSB0cy53cml0ZWNiO1xuICBpZiAoY2IgPT09IG51bGwpIHtcbiAgICByZXR1cm4gdGhpcy5lbWl0KCdlcnJvcicsIG5ldyBFUlJfTVVMVElQTEVfQ0FMTEJBQ0soKSk7XG4gIH1cbiAgdHMud3JpdGVjaHVuayA9IG51bGw7XG4gIHRzLndyaXRlY2IgPSBudWxsO1xuICBpZiAoZGF0YSAhPSBudWxsKVxuICAgIC8vIHNpbmdsZSBlcXVhbHMgY2hlY2sgZm9yIGJvdGggYG51bGxgIGFuZCBgdW5kZWZpbmVkYFxuICAgIHRoaXMucHVzaChkYXRhKTtcbiAgY2IoZXIpO1xuICB2YXIgcnMgPSB0aGlzLl9yZWFkYWJsZVN0YXRlO1xuICBycy5yZWFkaW5nID0gZmFsc2U7XG4gIGlmIChycy5uZWVkUmVhZGFibGUgfHwgcnMubGVuZ3RoIDwgcnMuaGlnaFdhdGVyTWFyaykge1xuICAgIHRoaXMuX3JlYWQocnMuaGlnaFdhdGVyTWFyayk7XG4gIH1cbn1cbmZ1bmN0aW9uIFRyYW5zZm9ybShvcHRpb25zKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBUcmFuc2Zvcm0pKSByZXR1cm4gbmV3IFRyYW5zZm9ybShvcHRpb25zKTtcbiAgRHVwbGV4LmNhbGwodGhpcywgb3B0aW9ucyk7XG4gIHRoaXMuX3RyYW5zZm9ybVN0YXRlID0ge1xuICAgIGFmdGVyVHJhbnNmb3JtOiBhZnRlclRyYW5zZm9ybS5iaW5kKHRoaXMpLFxuICAgIG5lZWRUcmFuc2Zvcm06IGZhbHNlLFxuICAgIHRyYW5zZm9ybWluZzogZmFsc2UsXG4gICAgd3JpdGVjYjogbnVsbCxcbiAgICB3cml0ZWNodW5rOiBudWxsLFxuICAgIHdyaXRlZW5jb2Rpbmc6IG51bGxcbiAgfTtcblxuICAvLyBzdGFydCBvdXQgYXNraW5nIGZvciBhIHJlYWRhYmxlIGV2ZW50IG9uY2UgZGF0YSBpcyB0cmFuc2Zvcm1lZC5cbiAgdGhpcy5fcmVhZGFibGVTdGF0ZS5uZWVkUmVhZGFibGUgPSB0cnVlO1xuXG4gIC8vIHdlIGhhdmUgaW1wbGVtZW50ZWQgdGhlIF9yZWFkIG1ldGhvZCwgYW5kIGRvbmUgdGhlIG90aGVyIHRoaW5nc1xuICAvLyB0aGF0IFJlYWRhYmxlIHdhbnRzIGJlZm9yZSB0aGUgZmlyc3QgX3JlYWQgY2FsbCwgc28gdW5zZXQgdGhlXG4gIC8vIHN5bmMgZ3VhcmQgZmxhZy5cbiAgdGhpcy5fcmVhZGFibGVTdGF0ZS5zeW5jID0gZmFsc2U7XG4gIGlmIChvcHRpb25zKSB7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zLnRyYW5zZm9ybSA9PT0gJ2Z1bmN0aW9uJykgdGhpcy5fdHJhbnNmb3JtID0gb3B0aW9ucy50cmFuc2Zvcm07XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zLmZsdXNoID09PSAnZnVuY3Rpb24nKSB0aGlzLl9mbHVzaCA9IG9wdGlvbnMuZmx1c2g7XG4gIH1cblxuICAvLyBXaGVuIHRoZSB3cml0YWJsZSBzaWRlIGZpbmlzaGVzLCB0aGVuIGZsdXNoIG91dCBhbnl0aGluZyByZW1haW5pbmcuXG4gIHRoaXMub24oJ3ByZWZpbmlzaCcsIHByZWZpbmlzaCk7XG59XG5mdW5jdGlvbiBwcmVmaW5pc2goKSB7XG4gIHZhciBfdGhpcyA9IHRoaXM7XG4gIGlmICh0eXBlb2YgdGhpcy5fZmx1c2ggPT09ICdmdW5jdGlvbicgJiYgIXRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkKSB7XG4gICAgdGhpcy5fZmx1c2goZnVuY3Rpb24gKGVyLCBkYXRhKSB7XG4gICAgICBkb25lKF90aGlzLCBlciwgZGF0YSk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgZG9uZSh0aGlzLCBudWxsLCBudWxsKTtcbiAgfVxufVxuVHJhbnNmb3JtLnByb3RvdHlwZS5wdXNoID0gZnVuY3Rpb24gKGNodW5rLCBlbmNvZGluZykge1xuICB0aGlzLl90cmFuc2Zvcm1TdGF0ZS5uZWVkVHJhbnNmb3JtID0gZmFsc2U7XG4gIHJldHVybiBEdXBsZXgucHJvdG90eXBlLnB1c2guY2FsbCh0aGlzLCBjaHVuaywgZW5jb2RpbmcpO1xufTtcblxuLy8gVGhpcyBpcyB0aGUgcGFydCB3aGVyZSB5b3UgZG8gc3R1ZmYhXG4vLyBvdmVycmlkZSB0aGlzIGZ1bmN0aW9uIGluIGltcGxlbWVudGF0aW9uIGNsYXNzZXMuXG4vLyAnY2h1bmsnIGlzIGFuIGlucHV0IGNodW5rLlxuLy9cbi8vIENhbGwgYHB1c2gobmV3Q2h1bmspYCB0byBwYXNzIGFsb25nIHRyYW5zZm9ybWVkIG91dHB1dFxuLy8gdG8gdGhlIHJlYWRhYmxlIHNpZGUuICBZb3UgbWF5IGNhbGwgJ3B1c2gnIHplcm8gb3IgbW9yZSB0aW1lcy5cbi8vXG4vLyBDYWxsIGBjYihlcnIpYCB3aGVuIHlvdSBhcmUgZG9uZSB3aXRoIHRoaXMgY2h1bmsuICBJZiB5b3UgcGFzc1xuLy8gYW4gZXJyb3IsIHRoZW4gdGhhdCdsbCBwdXQgdGhlIGh1cnQgb24gdGhlIHdob2xlIG9wZXJhdGlvbi4gIElmIHlvdVxuLy8gbmV2ZXIgY2FsbCBjYigpLCB0aGVuIHlvdSdsbCBuZXZlciBnZXQgYW5vdGhlciBjaHVuay5cblRyYW5zZm9ybS5wcm90b3R5cGUuX3RyYW5zZm9ybSA9IGZ1bmN0aW9uIChjaHVuaywgZW5jb2RpbmcsIGNiKSB7XG4gIGNiKG5ldyBFUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCgnX3RyYW5zZm9ybSgpJykpO1xufTtcblRyYW5zZm9ybS5wcm90b3R5cGUuX3dyaXRlID0gZnVuY3Rpb24gKGNodW5rLCBlbmNvZGluZywgY2IpIHtcbiAgdmFyIHRzID0gdGhpcy5fdHJhbnNmb3JtU3RhdGU7XG4gIHRzLndyaXRlY2IgPSBjYjtcbiAgdHMud3JpdGVjaHVuayA9IGNodW5rO1xuICB0cy53cml0ZWVuY29kaW5nID0gZW5jb2Rpbmc7XG4gIGlmICghdHMudHJhbnNmb3JtaW5nKSB7XG4gICAgdmFyIHJzID0gdGhpcy5fcmVhZGFibGVTdGF0ZTtcbiAgICBpZiAodHMubmVlZFRyYW5zZm9ybSB8fCBycy5uZWVkUmVhZGFibGUgfHwgcnMubGVuZ3RoIDwgcnMuaGlnaFdhdGVyTWFyaykgdGhpcy5fcmVhZChycy5oaWdoV2F0ZXJNYXJrKTtcbiAgfVxufTtcblxuLy8gRG9lc24ndCBtYXR0ZXIgd2hhdCB0aGUgYXJncyBhcmUgaGVyZS5cbi8vIF90cmFuc2Zvcm0gZG9lcyBhbGwgdGhlIHdvcmsuXG4vLyBUaGF0IHdlIGdvdCBoZXJlIG1lYW5zIHRoYXQgdGhlIHJlYWRhYmxlIHNpZGUgd2FudHMgbW9yZSBkYXRhLlxuVHJhbnNmb3JtLnByb3RvdHlwZS5fcmVhZCA9IGZ1bmN0aW9uIChuKSB7XG4gIHZhciB0cyA9IHRoaXMuX3RyYW5zZm9ybVN0YXRlO1xuICBpZiAodHMud3JpdGVjaHVuayAhPT0gbnVsbCAmJiAhdHMudHJhbnNmb3JtaW5nKSB7XG4gICAgdHMudHJhbnNmb3JtaW5nID0gdHJ1ZTtcbiAgICB0aGlzLl90cmFuc2Zvcm0odHMud3JpdGVjaHVuaywgdHMud3JpdGVlbmNvZGluZywgdHMuYWZ0ZXJUcmFuc2Zvcm0pO1xuICB9IGVsc2Uge1xuICAgIC8vIG1hcmsgdGhhdCB3ZSBuZWVkIGEgdHJhbnNmb3JtLCBzbyB0aGF0IGFueSBkYXRhIHRoYXQgY29tZXMgaW5cbiAgICAvLyB3aWxsIGdldCBwcm9jZXNzZWQsIG5vdyB0aGF0IHdlJ3ZlIGFza2VkIGZvciBpdC5cbiAgICB0cy5uZWVkVHJhbnNmb3JtID0gdHJ1ZTtcbiAgfVxufTtcblRyYW5zZm9ybS5wcm90b3R5cGUuX2Rlc3Ryb3kgPSBmdW5jdGlvbiAoZXJyLCBjYikge1xuICBEdXBsZXgucHJvdG90eXBlLl9kZXN0cm95LmNhbGwodGhpcywgZXJyLCBmdW5jdGlvbiAoZXJyMikge1xuICAgIGNiKGVycjIpO1xuICB9KTtcbn07XG5mdW5jdGlvbiBkb25lKHN0cmVhbSwgZXIsIGRhdGEpIHtcbiAgaWYgKGVyKSByZXR1cm4gc3RyZWFtLmVtaXQoJ2Vycm9yJywgZXIpO1xuICBpZiAoZGF0YSAhPSBudWxsKVxuICAgIC8vIHNpbmdsZSBlcXVhbHMgY2hlY2sgZm9yIGJvdGggYG51bGxgIGFuZCBgdW5kZWZpbmVkYFxuICAgIHN0cmVhbS5wdXNoKGRhdGEpO1xuXG4gIC8vIFRPRE8oQnJpZGdlQVIpOiBXcml0ZSBhIHRlc3QgZm9yIHRoZXNlIHR3byBlcnJvciBjYXNlc1xuICAvLyBpZiB0aGVyZSdzIG5vdGhpbmcgaW4gdGhlIHdyaXRlIGJ1ZmZlciwgdGhlbiB0aGF0IG1lYW5zXG4gIC8vIHRoYXQgbm90aGluZyBtb3JlIHdpbGwgZXZlciBiZSBwcm92aWRlZFxuICBpZiAoc3RyZWFtLl93cml0YWJsZVN0YXRlLmxlbmd0aCkgdGhyb3cgbmV3IEVSUl9UUkFOU0ZPUk1fV0lUSF9MRU5HVEhfMCgpO1xuICBpZiAoc3RyZWFtLl90cmFuc2Zvcm1TdGF0ZS50cmFuc2Zvcm1pbmcpIHRocm93IG5ldyBFUlJfVFJBTlNGT1JNX0FMUkVBRFlfVFJBTlNGT1JNSU5HKCk7XG4gIHJldHVybiBzdHJlYW0ucHVzaChudWxsKTtcbn0iLCJcbi8qKlxuICogTW9kdWxlIGV4cG9ydHMuXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBkZXByZWNhdGU7XG5cbi8qKlxuICogTWFyayB0aGF0IGEgbWV0aG9kIHNob3VsZCBub3QgYmUgdXNlZC5cbiAqIFJldHVybnMgYSBtb2RpZmllZCBmdW5jdGlvbiB3aGljaCB3YXJucyBvbmNlIGJ5IGRlZmF1bHQuXG4gKlxuICogSWYgYGxvY2FsU3RvcmFnZS5ub0RlcHJlY2F0aW9uID0gdHJ1ZWAgaXMgc2V0LCB0aGVuIGl0IGlzIGEgbm8tb3AuXG4gKlxuICogSWYgYGxvY2FsU3RvcmFnZS50aHJvd0RlcHJlY2F0aW9uID0gdHJ1ZWAgaXMgc2V0LCB0aGVuIGRlcHJlY2F0ZWQgZnVuY3Rpb25zXG4gKiB3aWxsIHRocm93IGFuIEVycm9yIHdoZW4gaW52b2tlZC5cbiAqXG4gKiBJZiBgbG9jYWxTdG9yYWdlLnRyYWNlRGVwcmVjYXRpb24gPSB0cnVlYCBpcyBzZXQsIHRoZW4gZGVwcmVjYXRlZCBmdW5jdGlvbnNcbiAqIHdpbGwgaW52b2tlIGBjb25zb2xlLnRyYWNlKClgIGluc3RlYWQgb2YgYGNvbnNvbGUuZXJyb3IoKWAuXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gLSB0aGUgZnVuY3Rpb24gdG8gZGVwcmVjYXRlXG4gKiBAcGFyYW0ge1N0cmluZ30gbXNnIC0gdGhlIHN0cmluZyB0byBwcmludCB0byB0aGUgY29uc29sZSB3aGVuIGBmbmAgaXMgaW52b2tlZFxuICogQHJldHVybnMge0Z1bmN0aW9ufSBhIG5ldyBcImRlcHJlY2F0ZWRcIiB2ZXJzaW9uIG9mIGBmbmBcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gZGVwcmVjYXRlIChmbiwgbXNnKSB7XG4gIGlmIChjb25maWcoJ25vRGVwcmVjYXRpb24nKSkge1xuICAgIHJldHVybiBmbjtcbiAgfVxuXG4gIHZhciB3YXJuZWQgPSBmYWxzZTtcbiAgZnVuY3Rpb24gZGVwcmVjYXRlZCgpIHtcbiAgICBpZiAoIXdhcm5lZCkge1xuICAgICAgaWYgKGNvbmZpZygndGhyb3dEZXByZWNhdGlvbicpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihtc2cpO1xuICAgICAgfSBlbHNlIGlmIChjb25maWcoJ3RyYWNlRGVwcmVjYXRpb24nKSkge1xuICAgICAgICBjb25zb2xlLnRyYWNlKG1zZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4obXNnKTtcbiAgICAgIH1cbiAgICAgIHdhcm5lZCA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgcmV0dXJuIGRlcHJlY2F0ZWQ7XG59XG5cbi8qKlxuICogQ2hlY2tzIGBsb2NhbFN0b3JhZ2VgIGZvciBib29sZWFuIHZhbHVlcyBmb3IgdGhlIGdpdmVuIGBuYW1lYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuICogQHJldHVybnMge0Jvb2xlYW59XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBjb25maWcgKG5hbWUpIHtcbiAgLy8gYWNjZXNzaW5nIGdsb2JhbC5sb2NhbFN0b3JhZ2UgY2FuIHRyaWdnZXIgYSBET01FeGNlcHRpb24gaW4gc2FuZGJveGVkIGlmcmFtZXNcbiAgdHJ5IHtcbiAgICBpZiAoIWdsb2JhbC5sb2NhbFN0b3JhZ2UpIHJldHVybiBmYWxzZTtcbiAgfSBjYXRjaCAoXykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgdmFsID0gZ2xvYmFsLmxvY2FsU3RvcmFnZVtuYW1lXTtcbiAgaWYgKG51bGwgPT0gdmFsKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiBTdHJpbmcodmFsKS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZSc7XG59XG4iLCJpZiAodHlwZW9mIE9iamVjdC5jcmVhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgLy8gaW1wbGVtZW50YXRpb24gZnJvbSBzdGFuZGFyZCBub2RlLmpzICd1dGlsJyBtb2R1bGVcbiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICBpZiAoc3VwZXJDdG9yKSB7XG4gICAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvclxuICAgICAgY3Rvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ3Rvci5wcm90b3R5cGUsIHtcbiAgICAgICAgY29uc3RydWN0b3I6IHtcbiAgICAgICAgICB2YWx1ZTogY3RvcixcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH07XG59IGVsc2Uge1xuICAvLyBvbGQgc2Nob29sIHNoaW0gZm9yIG9sZCBicm93c2Vyc1xuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgICB2YXIgVGVtcEN0b3IgPSBmdW5jdGlvbiAoKSB7fVxuICAgICAgVGVtcEN0b3IucHJvdG90eXBlID0gc3VwZXJDdG9yLnByb3RvdHlwZVxuICAgICAgY3Rvci5wcm90b3R5cGUgPSBuZXcgVGVtcEN0b3IoKVxuICAgICAgY3Rvci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBjdG9yXG4gICAgfVxuICB9XG59XG4iLCIvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuLy8gQSBiaXQgc2ltcGxlciB0aGFuIHJlYWRhYmxlIHN0cmVhbXMuXG4vLyBJbXBsZW1lbnQgYW4gYXN5bmMgLl93cml0ZShjaHVuaywgZW5jb2RpbmcsIGNiKSwgYW5kIGl0J2xsIGhhbmRsZSBhbGxcbi8vIHRoZSBkcmFpbiBldmVudCBlbWlzc2lvbiBhbmQgYnVmZmVyaW5nLlxuXG4ndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gV3JpdGFibGU7XG5cbi8qIDxyZXBsYWNlbWVudD4gKi9cbmZ1bmN0aW9uIFdyaXRlUmVxKGNodW5rLCBlbmNvZGluZywgY2IpIHtcbiAgdGhpcy5jaHVuayA9IGNodW5rO1xuICB0aGlzLmVuY29kaW5nID0gZW5jb2Rpbmc7XG4gIHRoaXMuY2FsbGJhY2sgPSBjYjtcbiAgdGhpcy5uZXh0ID0gbnVsbDtcbn1cblxuLy8gSXQgc2VlbXMgYSBsaW5rZWQgbGlzdCBidXQgaXQgaXMgbm90XG4vLyB0aGVyZSB3aWxsIGJlIG9ubHkgMiBvZiB0aGVzZSBmb3IgZWFjaCBzdHJlYW1cbmZ1bmN0aW9uIENvcmtlZFJlcXVlc3Qoc3RhdGUpIHtcbiAgdmFyIF90aGlzID0gdGhpcztcbiAgdGhpcy5uZXh0ID0gbnVsbDtcbiAgdGhpcy5lbnRyeSA9IG51bGw7XG4gIHRoaXMuZmluaXNoID0gZnVuY3Rpb24gKCkge1xuICAgIG9uQ29ya2VkRmluaXNoKF90aGlzLCBzdGF0ZSk7XG4gIH07XG59XG4vKiA8L3JlcGxhY2VtZW50PiAqL1xuXG4vKjxyZXBsYWNlbWVudD4qL1xudmFyIER1cGxleDtcbi8qPC9yZXBsYWNlbWVudD4qL1xuXG5Xcml0YWJsZS5Xcml0YWJsZVN0YXRlID0gV3JpdGFibGVTdGF0ZTtcblxuLyo8cmVwbGFjZW1lbnQ+Ki9cbnZhciBpbnRlcm5hbFV0aWwgPSB7XG4gIGRlcHJlY2F0ZTogcmVxdWlyZSgndXRpbC1kZXByZWNhdGUnKVxufTtcbi8qPC9yZXBsYWNlbWVudD4qL1xuXG4vKjxyZXBsYWNlbWVudD4qL1xudmFyIFN0cmVhbSA9IHJlcXVpcmUoJy4vaW50ZXJuYWwvc3RyZWFtcy9zdHJlYW0nKTtcbi8qPC9yZXBsYWNlbWVudD4qL1xuXG52YXIgQnVmZmVyID0gcmVxdWlyZSgnYnVmZmVyJykuQnVmZmVyO1xudmFyIE91clVpbnQ4QXJyYXkgPSAodHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcgPyBnbG9iYWwgOiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdyA6IHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyA/IHNlbGYgOiB7fSkuVWludDhBcnJheSB8fCBmdW5jdGlvbiAoKSB7fTtcbmZ1bmN0aW9uIF91aW50OEFycmF5VG9CdWZmZXIoY2h1bmspIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKGNodW5rKTtcbn1cbmZ1bmN0aW9uIF9pc1VpbnQ4QXJyYXkob2JqKSB7XG4gIHJldHVybiBCdWZmZXIuaXNCdWZmZXIob2JqKSB8fCBvYmogaW5zdGFuY2VvZiBPdXJVaW50OEFycmF5O1xufVxudmFyIGRlc3Ryb3lJbXBsID0gcmVxdWlyZSgnLi9pbnRlcm5hbC9zdHJlYW1zL2Rlc3Ryb3knKTtcbnZhciBfcmVxdWlyZSA9IHJlcXVpcmUoJy4vaW50ZXJuYWwvc3RyZWFtcy9zdGF0ZScpLFxuICBnZXRIaWdoV2F0ZXJNYXJrID0gX3JlcXVpcmUuZ2V0SGlnaFdhdGVyTWFyaztcbnZhciBfcmVxdWlyZSRjb2RlcyA9IHJlcXVpcmUoJy4uL2Vycm9ycycpLmNvZGVzLFxuICBFUlJfSU5WQUxJRF9BUkdfVFlQRSA9IF9yZXF1aXJlJGNvZGVzLkVSUl9JTlZBTElEX0FSR19UWVBFLFxuICBFUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCA9IF9yZXF1aXJlJGNvZGVzLkVSUl9NRVRIT0RfTk9UX0lNUExFTUVOVEVELFxuICBFUlJfTVVMVElQTEVfQ0FMTEJBQ0sgPSBfcmVxdWlyZSRjb2Rlcy5FUlJfTVVMVElQTEVfQ0FMTEJBQ0ssXG4gIEVSUl9TVFJFQU1fQ0FOTk9UX1BJUEUgPSBfcmVxdWlyZSRjb2Rlcy5FUlJfU1RSRUFNX0NBTk5PVF9QSVBFLFxuICBFUlJfU1RSRUFNX0RFU1RST1lFRCA9IF9yZXF1aXJlJGNvZGVzLkVSUl9TVFJFQU1fREVTVFJPWUVELFxuICBFUlJfU1RSRUFNX05VTExfVkFMVUVTID0gX3JlcXVpcmUkY29kZXMuRVJSX1NUUkVBTV9OVUxMX1ZBTFVFUyxcbiAgRVJSX1NUUkVBTV9XUklURV9BRlRFUl9FTkQgPSBfcmVxdWlyZSRjb2Rlcy5FUlJfU1RSRUFNX1dSSVRFX0FGVEVSX0VORCxcbiAgRVJSX1VOS05PV05fRU5DT0RJTkcgPSBfcmVxdWlyZSRjb2Rlcy5FUlJfVU5LTk9XTl9FTkNPRElORztcbnZhciBlcnJvck9yRGVzdHJveSA9IGRlc3Ryb3lJbXBsLmVycm9yT3JEZXN0cm95O1xucmVxdWlyZSgnaW5oZXJpdHMnKShXcml0YWJsZSwgU3RyZWFtKTtcbmZ1bmN0aW9uIG5vcCgpIHt9XG5mdW5jdGlvbiBXcml0YWJsZVN0YXRlKG9wdGlvbnMsIHN0cmVhbSwgaXNEdXBsZXgpIHtcbiAgRHVwbGV4ID0gRHVwbGV4IHx8IHJlcXVpcmUoJy4vX3N0cmVhbV9kdXBsZXgnKTtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgLy8gRHVwbGV4IHN0cmVhbXMgYXJlIGJvdGggcmVhZGFibGUgYW5kIHdyaXRhYmxlLCBidXQgc2hhcmVcbiAgLy8gdGhlIHNhbWUgb3B0aW9ucyBvYmplY3QuXG4gIC8vIEhvd2V2ZXIsIHNvbWUgY2FzZXMgcmVxdWlyZSBzZXR0aW5nIG9wdGlvbnMgdG8gZGlmZmVyZW50XG4gIC8vIHZhbHVlcyBmb3IgdGhlIHJlYWRhYmxlIGFuZCB0aGUgd3JpdGFibGUgc2lkZXMgb2YgdGhlIGR1cGxleCBzdHJlYW0sXG4gIC8vIGUuZy4gb3B0aW9ucy5yZWFkYWJsZU9iamVjdE1vZGUgdnMuIG9wdGlvbnMud3JpdGFibGVPYmplY3RNb2RlLCBldGMuXG4gIGlmICh0eXBlb2YgaXNEdXBsZXggIT09ICdib29sZWFuJykgaXNEdXBsZXggPSBzdHJlYW0gaW5zdGFuY2VvZiBEdXBsZXg7XG5cbiAgLy8gb2JqZWN0IHN0cmVhbSBmbGFnIHRvIGluZGljYXRlIHdoZXRoZXIgb3Igbm90IHRoaXMgc3RyZWFtXG4gIC8vIGNvbnRhaW5zIGJ1ZmZlcnMgb3Igb2JqZWN0cy5cbiAgdGhpcy5vYmplY3RNb2RlID0gISFvcHRpb25zLm9iamVjdE1vZGU7XG4gIGlmIChpc0R1cGxleCkgdGhpcy5vYmplY3RNb2RlID0gdGhpcy5vYmplY3RNb2RlIHx8ICEhb3B0aW9ucy53cml0YWJsZU9iamVjdE1vZGU7XG5cbiAgLy8gdGhlIHBvaW50IGF0IHdoaWNoIHdyaXRlKCkgc3RhcnRzIHJldHVybmluZyBmYWxzZVxuICAvLyBOb3RlOiAwIGlzIGEgdmFsaWQgdmFsdWUsIG1lYW5zIHRoYXQgd2UgYWx3YXlzIHJldHVybiBmYWxzZSBpZlxuICAvLyB0aGUgZW50aXJlIGJ1ZmZlciBpcyBub3QgZmx1c2hlZCBpbW1lZGlhdGVseSBvbiB3cml0ZSgpXG4gIHRoaXMuaGlnaFdhdGVyTWFyayA9IGdldEhpZ2hXYXRlck1hcmsodGhpcywgb3B0aW9ucywgJ3dyaXRhYmxlSGlnaFdhdGVyTWFyaycsIGlzRHVwbGV4KTtcblxuICAvLyBpZiBfZmluYWwgaGFzIGJlZW4gY2FsbGVkXG4gIHRoaXMuZmluYWxDYWxsZWQgPSBmYWxzZTtcblxuICAvLyBkcmFpbiBldmVudCBmbGFnLlxuICB0aGlzLm5lZWREcmFpbiA9IGZhbHNlO1xuICAvLyBhdCB0aGUgc3RhcnQgb2YgY2FsbGluZyBlbmQoKVxuICB0aGlzLmVuZGluZyA9IGZhbHNlO1xuICAvLyB3aGVuIGVuZCgpIGhhcyBiZWVuIGNhbGxlZCwgYW5kIHJldHVybmVkXG4gIHRoaXMuZW5kZWQgPSBmYWxzZTtcbiAgLy8gd2hlbiAnZmluaXNoJyBpcyBlbWl0dGVkXG4gIHRoaXMuZmluaXNoZWQgPSBmYWxzZTtcblxuICAvLyBoYXMgaXQgYmVlbiBkZXN0cm95ZWRcbiAgdGhpcy5kZXN0cm95ZWQgPSBmYWxzZTtcblxuICAvLyBzaG91bGQgd2UgZGVjb2RlIHN0cmluZ3MgaW50byBidWZmZXJzIGJlZm9yZSBwYXNzaW5nIHRvIF93cml0ZT9cbiAgLy8gdGhpcyBpcyBoZXJlIHNvIHRoYXQgc29tZSBub2RlLWNvcmUgc3RyZWFtcyBjYW4gb3B0aW1pemUgc3RyaW5nXG4gIC8vIGhhbmRsaW5nIGF0IGEgbG93ZXIgbGV2ZWwuXG4gIHZhciBub0RlY29kZSA9IG9wdGlvbnMuZGVjb2RlU3RyaW5ncyA9PT0gZmFsc2U7XG4gIHRoaXMuZGVjb2RlU3RyaW5ncyA9ICFub0RlY29kZTtcblxuICAvLyBDcnlwdG8gaXMga2luZCBvZiBvbGQgYW5kIGNydXN0eS4gIEhpc3RvcmljYWxseSwgaXRzIGRlZmF1bHQgc3RyaW5nXG4gIC8vIGVuY29kaW5nIGlzICdiaW5hcnknIHNvIHdlIGhhdmUgdG8gbWFrZSB0aGlzIGNvbmZpZ3VyYWJsZS5cbiAgLy8gRXZlcnl0aGluZyBlbHNlIGluIHRoZSB1bml2ZXJzZSB1c2VzICd1dGY4JywgdGhvdWdoLlxuICB0aGlzLmRlZmF1bHRFbmNvZGluZyA9IG9wdGlvbnMuZGVmYXVsdEVuY29kaW5nIHx8ICd1dGY4JztcblxuICAvLyBub3QgYW4gYWN0dWFsIGJ1ZmZlciB3ZSBrZWVwIHRyYWNrIG9mLCBidXQgYSBtZWFzdXJlbWVudFxuICAvLyBvZiBob3cgbXVjaCB3ZSdyZSB3YWl0aW5nIHRvIGdldCBwdXNoZWQgdG8gc29tZSB1bmRlcmx5aW5nXG4gIC8vIHNvY2tldCBvciBmaWxlLlxuICB0aGlzLmxlbmd0aCA9IDA7XG5cbiAgLy8gYSBmbGFnIHRvIHNlZSB3aGVuIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgYSB3cml0ZS5cbiAgdGhpcy53cml0aW5nID0gZmFsc2U7XG5cbiAgLy8gd2hlbiB0cnVlIGFsbCB3cml0ZXMgd2lsbCBiZSBidWZmZXJlZCB1bnRpbCAudW5jb3JrKCkgY2FsbFxuICB0aGlzLmNvcmtlZCA9IDA7XG5cbiAgLy8gYSBmbGFnIHRvIGJlIGFibGUgdG8gdGVsbCBpZiB0aGUgb253cml0ZSBjYiBpcyBjYWxsZWQgaW1tZWRpYXRlbHksXG4gIC8vIG9yIG9uIGEgbGF0ZXIgdGljay4gIFdlIHNldCB0aGlzIHRvIHRydWUgYXQgZmlyc3QsIGJlY2F1c2UgYW55XG4gIC8vIGFjdGlvbnMgdGhhdCBzaG91bGRuJ3QgaGFwcGVuIHVudGlsIFwibGF0ZXJcIiBzaG91bGQgZ2VuZXJhbGx5IGFsc29cbiAgLy8gbm90IGhhcHBlbiBiZWZvcmUgdGhlIGZpcnN0IHdyaXRlIGNhbGwuXG4gIHRoaXMuc3luYyA9IHRydWU7XG5cbiAgLy8gYSBmbGFnIHRvIGtub3cgaWYgd2UncmUgcHJvY2Vzc2luZyBwcmV2aW91c2x5IGJ1ZmZlcmVkIGl0ZW1zLCB3aGljaFxuICAvLyBtYXkgY2FsbCB0aGUgX3dyaXRlKCkgY2FsbGJhY2sgaW4gdGhlIHNhbWUgdGljaywgc28gdGhhdCB3ZSBkb24ndFxuICAvLyBlbmQgdXAgaW4gYW4gb3ZlcmxhcHBlZCBvbndyaXRlIHNpdHVhdGlvbi5cbiAgdGhpcy5idWZmZXJQcm9jZXNzaW5nID0gZmFsc2U7XG5cbiAgLy8gdGhlIGNhbGxiYWNrIHRoYXQncyBwYXNzZWQgdG8gX3dyaXRlKGNodW5rLGNiKVxuICB0aGlzLm9ud3JpdGUgPSBmdW5jdGlvbiAoZXIpIHtcbiAgICBvbndyaXRlKHN0cmVhbSwgZXIpO1xuICB9O1xuXG4gIC8vIHRoZSBjYWxsYmFjayB0aGF0IHRoZSB1c2VyIHN1cHBsaWVzIHRvIHdyaXRlKGNodW5rLGVuY29kaW5nLGNiKVxuICB0aGlzLndyaXRlY2IgPSBudWxsO1xuXG4gIC8vIHRoZSBhbW91bnQgdGhhdCBpcyBiZWluZyB3cml0dGVuIHdoZW4gX3dyaXRlIGlzIGNhbGxlZC5cbiAgdGhpcy53cml0ZWxlbiA9IDA7XG4gIHRoaXMuYnVmZmVyZWRSZXF1ZXN0ID0gbnVsbDtcbiAgdGhpcy5sYXN0QnVmZmVyZWRSZXF1ZXN0ID0gbnVsbDtcblxuICAvLyBudW1iZXIgb2YgcGVuZGluZyB1c2VyLXN1cHBsaWVkIHdyaXRlIGNhbGxiYWNrc1xuICAvLyB0aGlzIG11c3QgYmUgMCBiZWZvcmUgJ2ZpbmlzaCcgY2FuIGJlIGVtaXR0ZWRcbiAgdGhpcy5wZW5kaW5nY2IgPSAwO1xuXG4gIC8vIGVtaXQgcHJlZmluaXNoIGlmIHRoZSBvbmx5IHRoaW5nIHdlJ3JlIHdhaXRpbmcgZm9yIGlzIF93cml0ZSBjYnNcbiAgLy8gVGhpcyBpcyByZWxldmFudCBmb3Igc3luY2hyb25vdXMgVHJhbnNmb3JtIHN0cmVhbXNcbiAgdGhpcy5wcmVmaW5pc2hlZCA9IGZhbHNlO1xuXG4gIC8vIFRydWUgaWYgdGhlIGVycm9yIHdhcyBhbHJlYWR5IGVtaXR0ZWQgYW5kIHNob3VsZCBub3QgYmUgdGhyb3duIGFnYWluXG4gIHRoaXMuZXJyb3JFbWl0dGVkID0gZmFsc2U7XG5cbiAgLy8gU2hvdWxkIGNsb3NlIGJlIGVtaXR0ZWQgb24gZGVzdHJveS4gRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgdGhpcy5lbWl0Q2xvc2UgPSBvcHRpb25zLmVtaXRDbG9zZSAhPT0gZmFsc2U7XG5cbiAgLy8gU2hvdWxkIC5kZXN0cm95KCkgYmUgY2FsbGVkIGFmdGVyICdmaW5pc2gnIChhbmQgcG90ZW50aWFsbHkgJ2VuZCcpXG4gIHRoaXMuYXV0b0Rlc3Ryb3kgPSAhIW9wdGlvbnMuYXV0b0Rlc3Ryb3k7XG5cbiAgLy8gY291bnQgYnVmZmVyZWQgcmVxdWVzdHNcbiAgdGhpcy5idWZmZXJlZFJlcXVlc3RDb3VudCA9IDA7XG5cbiAgLy8gYWxsb2NhdGUgdGhlIGZpcnN0IENvcmtlZFJlcXVlc3QsIHRoZXJlIGlzIGFsd2F5c1xuICAvLyBvbmUgYWxsb2NhdGVkIGFuZCBmcmVlIHRvIHVzZSwgYW5kIHdlIG1haW50YWluIGF0IG1vc3QgdHdvXG4gIHRoaXMuY29ya2VkUmVxdWVzdHNGcmVlID0gbmV3IENvcmtlZFJlcXVlc3QodGhpcyk7XG59XG5Xcml0YWJsZVN0YXRlLnByb3RvdHlwZS5nZXRCdWZmZXIgPSBmdW5jdGlvbiBnZXRCdWZmZXIoKSB7XG4gIHZhciBjdXJyZW50ID0gdGhpcy5idWZmZXJlZFJlcXVlc3Q7XG4gIHZhciBvdXQgPSBbXTtcbiAgd2hpbGUgKGN1cnJlbnQpIHtcbiAgICBvdXQucHVzaChjdXJyZW50KTtcbiAgICBjdXJyZW50ID0gY3VycmVudC5uZXh0O1xuICB9XG4gIHJldHVybiBvdXQ7XG59O1xuKGZ1bmN0aW9uICgpIHtcbiAgdHJ5IHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoV3JpdGFibGVTdGF0ZS5wcm90b3R5cGUsICdidWZmZXInLCB7XG4gICAgICBnZXQ6IGludGVybmFsVXRpbC5kZXByZWNhdGUoZnVuY3Rpb24gd3JpdGFibGVTdGF0ZUJ1ZmZlckdldHRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QnVmZmVyKCk7XG4gICAgICB9LCAnX3dyaXRhYmxlU3RhdGUuYnVmZmVyIGlzIGRlcHJlY2F0ZWQuIFVzZSBfd3JpdGFibGVTdGF0ZS5nZXRCdWZmZXIgJyArICdpbnN0ZWFkLicsICdERVAwMDAzJylcbiAgICB9KTtcbiAgfSBjYXRjaCAoXykge31cbn0pKCk7XG5cbi8vIFRlc3QgX3dyaXRhYmxlU3RhdGUgZm9yIGluaGVyaXRhbmNlIHRvIGFjY291bnQgZm9yIER1cGxleCBzdHJlYW1zLFxuLy8gd2hvc2UgcHJvdG90eXBlIGNoYWluIG9ubHkgcG9pbnRzIHRvIFJlYWRhYmxlLlxudmFyIHJlYWxIYXNJbnN0YW5jZTtcbmlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5oYXNJbnN0YW5jZSAmJiB0eXBlb2YgRnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0gPT09ICdmdW5jdGlvbicpIHtcbiAgcmVhbEhhc0luc3RhbmNlID0gRnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV07XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXcml0YWJsZSwgU3ltYm9sLmhhc0luc3RhbmNlLCB7XG4gICAgdmFsdWU6IGZ1bmN0aW9uIHZhbHVlKG9iamVjdCkge1xuICAgICAgaWYgKHJlYWxIYXNJbnN0YW5jZS5jYWxsKHRoaXMsIG9iamVjdCkpIHJldHVybiB0cnVlO1xuICAgICAgaWYgKHRoaXMgIT09IFdyaXRhYmxlKSByZXR1cm4gZmFsc2U7XG4gICAgICByZXR1cm4gb2JqZWN0ICYmIG9iamVjdC5fd3JpdGFibGVTdGF0ZSBpbnN0YW5jZW9mIFdyaXRhYmxlU3RhdGU7XG4gICAgfVxuICB9KTtcbn0gZWxzZSB7XG4gIHJlYWxIYXNJbnN0YW5jZSA9IGZ1bmN0aW9uIHJlYWxIYXNJbnN0YW5jZShvYmplY3QpIHtcbiAgICByZXR1cm4gb2JqZWN0IGluc3RhbmNlb2YgdGhpcztcbiAgfTtcbn1cbmZ1bmN0aW9uIFdyaXRhYmxlKG9wdGlvbnMpIHtcbiAgRHVwbGV4ID0gRHVwbGV4IHx8IHJlcXVpcmUoJy4vX3N0cmVhbV9kdXBsZXgnKTtcblxuICAvLyBXcml0YWJsZSBjdG9yIGlzIGFwcGxpZWQgdG8gRHVwbGV4ZXMsIHRvby5cbiAgLy8gYHJlYWxIYXNJbnN0YW5jZWAgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdXNpbmcgcGxhaW4gYGluc3RhbmNlb2ZgXG4gIC8vIHdvdWxkIHJldHVybiBmYWxzZSwgYXMgbm8gYF93cml0YWJsZVN0YXRlYCBwcm9wZXJ0eSBpcyBhdHRhY2hlZC5cblxuICAvLyBUcnlpbmcgdG8gdXNlIHRoZSBjdXN0b20gYGluc3RhbmNlb2ZgIGZvciBXcml0YWJsZSBoZXJlIHdpbGwgYWxzbyBicmVhayB0aGVcbiAgLy8gTm9kZS5qcyBMYXp5VHJhbnNmb3JtIGltcGxlbWVudGF0aW9uLCB3aGljaCBoYXMgYSBub24tdHJpdmlhbCBnZXR0ZXIgZm9yXG4gIC8vIGBfd3JpdGFibGVTdGF0ZWAgdGhhdCB3b3VsZCBsZWFkIHRvIGluZmluaXRlIHJlY3Vyc2lvbi5cblxuICAvLyBDaGVja2luZyBmb3IgYSBTdHJlYW0uRHVwbGV4IGluc3RhbmNlIGlzIGZhc3RlciBoZXJlIGluc3RlYWQgb2YgaW5zaWRlXG4gIC8vIHRoZSBXcml0YWJsZVN0YXRlIGNvbnN0cnVjdG9yLCBhdCBsZWFzdCB3aXRoIFY4IDYuNVxuICB2YXIgaXNEdXBsZXggPSB0aGlzIGluc3RhbmNlb2YgRHVwbGV4O1xuICBpZiAoIWlzRHVwbGV4ICYmICFyZWFsSGFzSW5zdGFuY2UuY2FsbChXcml0YWJsZSwgdGhpcykpIHJldHVybiBuZXcgV3JpdGFibGUob3B0aW9ucyk7XG4gIHRoaXMuX3dyaXRhYmxlU3RhdGUgPSBuZXcgV3JpdGFibGVTdGF0ZShvcHRpb25zLCB0aGlzLCBpc0R1cGxleCk7XG5cbiAgLy8gbGVnYWN5LlxuICB0aGlzLndyaXRhYmxlID0gdHJ1ZTtcbiAgaWYgKG9wdGlvbnMpIHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMud3JpdGUgPT09ICdmdW5jdGlvbicpIHRoaXMuX3dyaXRlID0gb3B0aW9ucy53cml0ZTtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMud3JpdGV2ID09PSAnZnVuY3Rpb24nKSB0aGlzLl93cml0ZXYgPSBvcHRpb25zLndyaXRldjtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMuZGVzdHJveSA9PT0gJ2Z1bmN0aW9uJykgdGhpcy5fZGVzdHJveSA9IG9wdGlvbnMuZGVzdHJveTtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMuZmluYWwgPT09ICdmdW5jdGlvbicpIHRoaXMuX2ZpbmFsID0gb3B0aW9ucy5maW5hbDtcbiAgfVxuICBTdHJlYW0uY2FsbCh0aGlzKTtcbn1cblxuLy8gT3RoZXJ3aXNlIHBlb3BsZSBjYW4gcGlwZSBXcml0YWJsZSBzdHJlYW1zLCB3aGljaCBpcyBqdXN0IHdyb25nLlxuV3JpdGFibGUucHJvdG90eXBlLnBpcGUgPSBmdW5jdGlvbiAoKSB7XG4gIGVycm9yT3JEZXN0cm95KHRoaXMsIG5ldyBFUlJfU1RSRUFNX0NBTk5PVF9QSVBFKCkpO1xufTtcbmZ1bmN0aW9uIHdyaXRlQWZ0ZXJFbmQoc3RyZWFtLCBjYikge1xuICB2YXIgZXIgPSBuZXcgRVJSX1NUUkVBTV9XUklURV9BRlRFUl9FTkQoKTtcbiAgLy8gVE9ETzogZGVmZXIgZXJyb3IgZXZlbnRzIGNvbnNpc3RlbnRseSBldmVyeXdoZXJlLCBub3QganVzdCB0aGUgY2JcbiAgZXJyb3JPckRlc3Ryb3koc3RyZWFtLCBlcik7XG4gIHByb2Nlc3MubmV4dFRpY2soY2IsIGVyKTtcbn1cblxuLy8gQ2hlY2tzIHRoYXQgYSB1c2VyLXN1cHBsaWVkIGNodW5rIGlzIHZhbGlkLCBlc3BlY2lhbGx5IGZvciB0aGUgcGFydGljdWxhclxuLy8gbW9kZSB0aGUgc3RyZWFtIGlzIGluLiBDdXJyZW50bHkgdGhpcyBtZWFucyB0aGF0IGBudWxsYCBpcyBuZXZlciBhY2NlcHRlZFxuLy8gYW5kIHVuZGVmaW5lZC9ub24tc3RyaW5nIHZhbHVlcyBhcmUgb25seSBhbGxvd2VkIGluIG9iamVjdCBtb2RlLlxuZnVuY3Rpb24gdmFsaWRDaHVuayhzdHJlYW0sIHN0YXRlLCBjaHVuaywgY2IpIHtcbiAgdmFyIGVyO1xuICBpZiAoY2h1bmsgPT09IG51bGwpIHtcbiAgICBlciA9IG5ldyBFUlJfU1RSRUFNX05VTExfVkFMVUVTKCk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGNodW5rICE9PSAnc3RyaW5nJyAmJiAhc3RhdGUub2JqZWN0TW9kZSkge1xuICAgIGVyID0gbmV3IEVSUl9JTlZBTElEX0FSR19UWVBFKCdjaHVuaycsIFsnc3RyaW5nJywgJ0J1ZmZlciddLCBjaHVuayk7XG4gIH1cbiAgaWYgKGVyKSB7XG4gICAgZXJyb3JPckRlc3Ryb3koc3RyZWFtLCBlcik7XG4gICAgcHJvY2Vzcy5uZXh0VGljayhjYiwgZXIpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cbldyaXRhYmxlLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uIChjaHVuaywgZW5jb2RpbmcsIGNiKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX3dyaXRhYmxlU3RhdGU7XG4gIHZhciByZXQgPSBmYWxzZTtcbiAgdmFyIGlzQnVmID0gIXN0YXRlLm9iamVjdE1vZGUgJiYgX2lzVWludDhBcnJheShjaHVuayk7XG4gIGlmIChpc0J1ZiAmJiAhQnVmZmVyLmlzQnVmZmVyKGNodW5rKSkge1xuICAgIGNodW5rID0gX3VpbnQ4QXJyYXlUb0J1ZmZlcihjaHVuayk7XG4gIH1cbiAgaWYgKHR5cGVvZiBlbmNvZGluZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNiID0gZW5jb2Rpbmc7XG4gICAgZW5jb2RpbmcgPSBudWxsO1xuICB9XG4gIGlmIChpc0J1ZikgZW5jb2RpbmcgPSAnYnVmZmVyJztlbHNlIGlmICghZW5jb2RpbmcpIGVuY29kaW5nID0gc3RhdGUuZGVmYXVsdEVuY29kaW5nO1xuICBpZiAodHlwZW9mIGNiICE9PSAnZnVuY3Rpb24nKSBjYiA9IG5vcDtcbiAgaWYgKHN0YXRlLmVuZGluZykgd3JpdGVBZnRlckVuZCh0aGlzLCBjYik7ZWxzZSBpZiAoaXNCdWYgfHwgdmFsaWRDaHVuayh0aGlzLCBzdGF0ZSwgY2h1bmssIGNiKSkge1xuICAgIHN0YXRlLnBlbmRpbmdjYisrO1xuICAgIHJldCA9IHdyaXRlT3JCdWZmZXIodGhpcywgc3RhdGUsIGlzQnVmLCBjaHVuaywgZW5jb2RpbmcsIGNiKTtcbiAgfVxuICByZXR1cm4gcmV0O1xufTtcbldyaXRhYmxlLnByb3RvdHlwZS5jb3JrID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLl93cml0YWJsZVN0YXRlLmNvcmtlZCsrO1xufTtcbldyaXRhYmxlLnByb3RvdHlwZS51bmNvcmsgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX3dyaXRhYmxlU3RhdGU7XG4gIGlmIChzdGF0ZS5jb3JrZWQpIHtcbiAgICBzdGF0ZS5jb3JrZWQtLTtcbiAgICBpZiAoIXN0YXRlLndyaXRpbmcgJiYgIXN0YXRlLmNvcmtlZCAmJiAhc3RhdGUuYnVmZmVyUHJvY2Vzc2luZyAmJiBzdGF0ZS5idWZmZXJlZFJlcXVlc3QpIGNsZWFyQnVmZmVyKHRoaXMsIHN0YXRlKTtcbiAgfVxufTtcbldyaXRhYmxlLnByb3RvdHlwZS5zZXREZWZhdWx0RW5jb2RpbmcgPSBmdW5jdGlvbiBzZXREZWZhdWx0RW5jb2RpbmcoZW5jb2RpbmcpIHtcbiAgLy8gbm9kZTo6UGFyc2VFbmNvZGluZygpIHJlcXVpcmVzIGxvd2VyIGNhc2UuXG4gIGlmICh0eXBlb2YgZW5jb2RpbmcgPT09ICdzdHJpbmcnKSBlbmNvZGluZyA9IGVuY29kaW5nLnRvTG93ZXJDYXNlKCk7XG4gIGlmICghKFsnaGV4JywgJ3V0ZjgnLCAndXRmLTgnLCAnYXNjaWknLCAnYmluYXJ5JywgJ2Jhc2U2NCcsICd1Y3MyJywgJ3Vjcy0yJywgJ3V0ZjE2bGUnLCAndXRmLTE2bGUnLCAncmF3J10uaW5kZXhPZigoZW5jb2RpbmcgKyAnJykudG9Mb3dlckNhc2UoKSkgPiAtMSkpIHRocm93IG5ldyBFUlJfVU5LTk9XTl9FTkNPRElORyhlbmNvZGluZyk7XG4gIHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVmYXVsdEVuY29kaW5nID0gZW5jb2Rpbmc7XG4gIHJldHVybiB0aGlzO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShXcml0YWJsZS5wcm90b3R5cGUsICd3cml0YWJsZUJ1ZmZlcicsIHtcbiAgLy8gbWFraW5nIGl0IGV4cGxpY2l0IHRoaXMgcHJvcGVydHkgaXMgbm90IGVudW1lcmFibGVcbiAgLy8gYmVjYXVzZSBvdGhlcndpc2Ugc29tZSBwcm90b3R5cGUgbWFuaXB1bGF0aW9uIGluXG4gIC8vIHVzZXJsYW5kIHdpbGwgZmFpbFxuICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUgJiYgdGhpcy5fd3JpdGFibGVTdGF0ZS5nZXRCdWZmZXIoKTtcbiAgfVxufSk7XG5mdW5jdGlvbiBkZWNvZGVDaHVuayhzdGF0ZSwgY2h1bmssIGVuY29kaW5nKSB7XG4gIGlmICghc3RhdGUub2JqZWN0TW9kZSAmJiBzdGF0ZS5kZWNvZGVTdHJpbmdzICE9PSBmYWxzZSAmJiB0eXBlb2YgY2h1bmsgPT09ICdzdHJpbmcnKSB7XG4gICAgY2h1bmsgPSBCdWZmZXIuZnJvbShjaHVuaywgZW5jb2RpbmcpO1xuICB9XG4gIHJldHVybiBjaHVuaztcbn1cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShXcml0YWJsZS5wcm90b3R5cGUsICd3cml0YWJsZUhpZ2hXYXRlck1hcmsnLCB7XG4gIC8vIG1ha2luZyBpdCBleHBsaWNpdCB0aGlzIHByb3BlcnR5IGlzIG5vdCBlbnVtZXJhYmxlXG4gIC8vIGJlY2F1c2Ugb3RoZXJ3aXNlIHNvbWUgcHJvdG90eXBlIG1hbmlwdWxhdGlvbiBpblxuICAvLyB1c2VybGFuZCB3aWxsIGZhaWxcbiAgZW51bWVyYWJsZTogZmFsc2UsXG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHJldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmhpZ2hXYXRlck1hcms7XG4gIH1cbn0pO1xuXG4vLyBpZiB3ZSdyZSBhbHJlYWR5IHdyaXRpbmcgc29tZXRoaW5nLCB0aGVuIGp1c3QgcHV0IHRoaXNcbi8vIGluIHRoZSBxdWV1ZSwgYW5kIHdhaXQgb3VyIHR1cm4uICBPdGhlcndpc2UsIGNhbGwgX3dyaXRlXG4vLyBJZiB3ZSByZXR1cm4gZmFsc2UsIHRoZW4gd2UgbmVlZCBhIGRyYWluIGV2ZW50LCBzbyBzZXQgdGhhdCBmbGFnLlxuZnVuY3Rpb24gd3JpdGVPckJ1ZmZlcihzdHJlYW0sIHN0YXRlLCBpc0J1ZiwgY2h1bmssIGVuY29kaW5nLCBjYikge1xuICBpZiAoIWlzQnVmKSB7XG4gICAgdmFyIG5ld0NodW5rID0gZGVjb2RlQ2h1bmsoc3RhdGUsIGNodW5rLCBlbmNvZGluZyk7XG4gICAgaWYgKGNodW5rICE9PSBuZXdDaHVuaykge1xuICAgICAgaXNCdWYgPSB0cnVlO1xuICAgICAgZW5jb2RpbmcgPSAnYnVmZmVyJztcbiAgICAgIGNodW5rID0gbmV3Q2h1bms7XG4gICAgfVxuICB9XG4gIHZhciBsZW4gPSBzdGF0ZS5vYmplY3RNb2RlID8gMSA6IGNodW5rLmxlbmd0aDtcbiAgc3RhdGUubGVuZ3RoICs9IGxlbjtcbiAgdmFyIHJldCA9IHN0YXRlLmxlbmd0aCA8IHN0YXRlLmhpZ2hXYXRlck1hcms7XG4gIC8vIHdlIG11c3QgZW5zdXJlIHRoYXQgcHJldmlvdXMgbmVlZERyYWluIHdpbGwgbm90IGJlIHJlc2V0IHRvIGZhbHNlLlxuICBpZiAoIXJldCkgc3RhdGUubmVlZERyYWluID0gdHJ1ZTtcbiAgaWYgKHN0YXRlLndyaXRpbmcgfHwgc3RhdGUuY29ya2VkKSB7XG4gICAgdmFyIGxhc3QgPSBzdGF0ZS5sYXN0QnVmZmVyZWRSZXF1ZXN0O1xuICAgIHN0YXRlLmxhc3RCdWZmZXJlZFJlcXVlc3QgPSB7XG4gICAgICBjaHVuazogY2h1bmssXG4gICAgICBlbmNvZGluZzogZW5jb2RpbmcsXG4gICAgICBpc0J1ZjogaXNCdWYsXG4gICAgICBjYWxsYmFjazogY2IsXG4gICAgICBuZXh0OiBudWxsXG4gICAgfTtcbiAgICBpZiAobGFzdCkge1xuICAgICAgbGFzdC5uZXh0ID0gc3RhdGUubGFzdEJ1ZmZlcmVkUmVxdWVzdDtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUuYnVmZmVyZWRSZXF1ZXN0ID0gc3RhdGUubGFzdEJ1ZmZlcmVkUmVxdWVzdDtcbiAgICB9XG4gICAgc3RhdGUuYnVmZmVyZWRSZXF1ZXN0Q291bnQgKz0gMTtcbiAgfSBlbHNlIHtcbiAgICBkb1dyaXRlKHN0cmVhbSwgc3RhdGUsIGZhbHNlLCBsZW4sIGNodW5rLCBlbmNvZGluZywgY2IpO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5mdW5jdGlvbiBkb1dyaXRlKHN0cmVhbSwgc3RhdGUsIHdyaXRldiwgbGVuLCBjaHVuaywgZW5jb2RpbmcsIGNiKSB7XG4gIHN0YXRlLndyaXRlbGVuID0gbGVuO1xuICBzdGF0ZS53cml0ZWNiID0gY2I7XG4gIHN0YXRlLndyaXRpbmcgPSB0cnVlO1xuICBzdGF0ZS5zeW5jID0gdHJ1ZTtcbiAgaWYgKHN0YXRlLmRlc3Ryb3llZCkgc3RhdGUub253cml0ZShuZXcgRVJSX1NUUkVBTV9ERVNUUk9ZRUQoJ3dyaXRlJykpO2Vsc2UgaWYgKHdyaXRldikgc3RyZWFtLl93cml0ZXYoY2h1bmssIHN0YXRlLm9ud3JpdGUpO2Vsc2Ugc3RyZWFtLl93cml0ZShjaHVuaywgZW5jb2RpbmcsIHN0YXRlLm9ud3JpdGUpO1xuICBzdGF0ZS5zeW5jID0gZmFsc2U7XG59XG5mdW5jdGlvbiBvbndyaXRlRXJyb3Ioc3RyZWFtLCBzdGF0ZSwgc3luYywgZXIsIGNiKSB7XG4gIC0tc3RhdGUucGVuZGluZ2NiO1xuICBpZiAoc3luYykge1xuICAgIC8vIGRlZmVyIHRoZSBjYWxsYmFjayBpZiB3ZSBhcmUgYmVpbmcgY2FsbGVkIHN5bmNocm9ub3VzbHlcbiAgICAvLyB0byBhdm9pZCBwaWxpbmcgdXAgdGhpbmdzIG9uIHRoZSBzdGFja1xuICAgIHByb2Nlc3MubmV4dFRpY2soY2IsIGVyKTtcbiAgICAvLyB0aGlzIGNhbiBlbWl0IGZpbmlzaCwgYW5kIGl0IHdpbGwgYWx3YXlzIGhhcHBlblxuICAgIC8vIGFmdGVyIGVycm9yXG4gICAgcHJvY2Vzcy5uZXh0VGljayhmaW5pc2hNYXliZSwgc3RyZWFtLCBzdGF0ZSk7XG4gICAgc3RyZWFtLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZCA9IHRydWU7XG4gICAgZXJyb3JPckRlc3Ryb3koc3RyZWFtLCBlcik7XG4gIH0gZWxzZSB7XG4gICAgLy8gdGhlIGNhbGxlciBleHBlY3QgdGhpcyB0byBoYXBwZW4gYmVmb3JlIGlmXG4gICAgLy8gaXQgaXMgYXN5bmNcbiAgICBjYihlcik7XG4gICAgc3RyZWFtLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZCA9IHRydWU7XG4gICAgZXJyb3JPckRlc3Ryb3koc3RyZWFtLCBlcik7XG4gICAgLy8gdGhpcyBjYW4gZW1pdCBmaW5pc2gsIGJ1dCBmaW5pc2ggbXVzdFxuICAgIC8vIGFsd2F5cyBmb2xsb3cgZXJyb3JcbiAgICBmaW5pc2hNYXliZShzdHJlYW0sIHN0YXRlKTtcbiAgfVxufVxuZnVuY3Rpb24gb253cml0ZVN0YXRlVXBkYXRlKHN0YXRlKSB7XG4gIHN0YXRlLndyaXRpbmcgPSBmYWxzZTtcbiAgc3RhdGUud3JpdGVjYiA9IG51bGw7XG4gIHN0YXRlLmxlbmd0aCAtPSBzdGF0ZS53cml0ZWxlbjtcbiAgc3RhdGUud3JpdGVsZW4gPSAwO1xufVxuZnVuY3Rpb24gb253cml0ZShzdHJlYW0sIGVyKSB7XG4gIHZhciBzdGF0ZSA9IHN0cmVhbS5fd3JpdGFibGVTdGF0ZTtcbiAgdmFyIHN5bmMgPSBzdGF0ZS5zeW5jO1xuICB2YXIgY2IgPSBzdGF0ZS53cml0ZWNiO1xuICBpZiAodHlwZW9mIGNiICE9PSAnZnVuY3Rpb24nKSB0aHJvdyBuZXcgRVJSX01VTFRJUExFX0NBTExCQUNLKCk7XG4gIG9ud3JpdGVTdGF0ZVVwZGF0ZShzdGF0ZSk7XG4gIGlmIChlcikgb253cml0ZUVycm9yKHN0cmVhbSwgc3RhdGUsIHN5bmMsIGVyLCBjYik7ZWxzZSB7XG4gICAgLy8gQ2hlY2sgaWYgd2UncmUgYWN0dWFsbHkgcmVhZHkgdG8gZmluaXNoLCBidXQgZG9uJ3QgZW1pdCB5ZXRcbiAgICB2YXIgZmluaXNoZWQgPSBuZWVkRmluaXNoKHN0YXRlKSB8fCBzdHJlYW0uZGVzdHJveWVkO1xuICAgIGlmICghZmluaXNoZWQgJiYgIXN0YXRlLmNvcmtlZCAmJiAhc3RhdGUuYnVmZmVyUHJvY2Vzc2luZyAmJiBzdGF0ZS5idWZmZXJlZFJlcXVlc3QpIHtcbiAgICAgIGNsZWFyQnVmZmVyKHN0cmVhbSwgc3RhdGUpO1xuICAgIH1cbiAgICBpZiAoc3luYykge1xuICAgICAgcHJvY2Vzcy5uZXh0VGljayhhZnRlcldyaXRlLCBzdHJlYW0sIHN0YXRlLCBmaW5pc2hlZCwgY2IpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhZnRlcldyaXRlKHN0cmVhbSwgc3RhdGUsIGZpbmlzaGVkLCBjYik7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBhZnRlcldyaXRlKHN0cmVhbSwgc3RhdGUsIGZpbmlzaGVkLCBjYikge1xuICBpZiAoIWZpbmlzaGVkKSBvbndyaXRlRHJhaW4oc3RyZWFtLCBzdGF0ZSk7XG4gIHN0YXRlLnBlbmRpbmdjYi0tO1xuICBjYigpO1xuICBmaW5pc2hNYXliZShzdHJlYW0sIHN0YXRlKTtcbn1cblxuLy8gTXVzdCBmb3JjZSBjYWxsYmFjayB0byBiZSBjYWxsZWQgb24gbmV4dFRpY2ssIHNvIHRoYXQgd2UgZG9uJ3Rcbi8vIGVtaXQgJ2RyYWluJyBiZWZvcmUgdGhlIHdyaXRlKCkgY29uc3VtZXIgZ2V0cyB0aGUgJ2ZhbHNlJyByZXR1cm5cbi8vIHZhbHVlLCBhbmQgaGFzIGEgY2hhbmNlIHRvIGF0dGFjaCBhICdkcmFpbicgbGlzdGVuZXIuXG5mdW5jdGlvbiBvbndyaXRlRHJhaW4oc3RyZWFtLCBzdGF0ZSkge1xuICBpZiAoc3RhdGUubGVuZ3RoID09PSAwICYmIHN0YXRlLm5lZWREcmFpbikge1xuICAgIHN0YXRlLm5lZWREcmFpbiA9IGZhbHNlO1xuICAgIHN0cmVhbS5lbWl0KCdkcmFpbicpO1xuICB9XG59XG5cbi8vIGlmIHRoZXJlJ3Mgc29tZXRoaW5nIGluIHRoZSBidWZmZXIgd2FpdGluZywgdGhlbiBwcm9jZXNzIGl0XG5mdW5jdGlvbiBjbGVhckJ1ZmZlcihzdHJlYW0sIHN0YXRlKSB7XG4gIHN0YXRlLmJ1ZmZlclByb2Nlc3NpbmcgPSB0cnVlO1xuICB2YXIgZW50cnkgPSBzdGF0ZS5idWZmZXJlZFJlcXVlc3Q7XG4gIGlmIChzdHJlYW0uX3dyaXRldiAmJiBlbnRyeSAmJiBlbnRyeS5uZXh0KSB7XG4gICAgLy8gRmFzdCBjYXNlLCB3cml0ZSBldmVyeXRoaW5nIHVzaW5nIF93cml0ZXYoKVxuICAgIHZhciBsID0gc3RhdGUuYnVmZmVyZWRSZXF1ZXN0Q291bnQ7XG4gICAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheShsKTtcbiAgICB2YXIgaG9sZGVyID0gc3RhdGUuY29ya2VkUmVxdWVzdHNGcmVlO1xuICAgIGhvbGRlci5lbnRyeSA9IGVudHJ5O1xuICAgIHZhciBjb3VudCA9IDA7XG4gICAgdmFyIGFsbEJ1ZmZlcnMgPSB0cnVlO1xuICAgIHdoaWxlIChlbnRyeSkge1xuICAgICAgYnVmZmVyW2NvdW50XSA9IGVudHJ5O1xuICAgICAgaWYgKCFlbnRyeS5pc0J1ZikgYWxsQnVmZmVycyA9IGZhbHNlO1xuICAgICAgZW50cnkgPSBlbnRyeS5uZXh0O1xuICAgICAgY291bnQgKz0gMTtcbiAgICB9XG4gICAgYnVmZmVyLmFsbEJ1ZmZlcnMgPSBhbGxCdWZmZXJzO1xuICAgIGRvV3JpdGUoc3RyZWFtLCBzdGF0ZSwgdHJ1ZSwgc3RhdGUubGVuZ3RoLCBidWZmZXIsICcnLCBob2xkZXIuZmluaXNoKTtcblxuICAgIC8vIGRvV3JpdGUgaXMgYWxtb3N0IGFsd2F5cyBhc3luYywgZGVmZXIgdGhlc2UgdG8gc2F2ZSBhIGJpdCBvZiB0aW1lXG4gICAgLy8gYXMgdGhlIGhvdCBwYXRoIGVuZHMgd2l0aCBkb1dyaXRlXG4gICAgc3RhdGUucGVuZGluZ2NiKys7XG4gICAgc3RhdGUubGFzdEJ1ZmZlcmVkUmVxdWVzdCA9IG51bGw7XG4gICAgaWYgKGhvbGRlci5uZXh0KSB7XG4gICAgICBzdGF0ZS5jb3JrZWRSZXF1ZXN0c0ZyZWUgPSBob2xkZXIubmV4dDtcbiAgICAgIGhvbGRlci5uZXh0ID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUuY29ya2VkUmVxdWVzdHNGcmVlID0gbmV3IENvcmtlZFJlcXVlc3Qoc3RhdGUpO1xuICAgIH1cbiAgICBzdGF0ZS5idWZmZXJlZFJlcXVlc3RDb3VudCA9IDA7XG4gIH0gZWxzZSB7XG4gICAgLy8gU2xvdyBjYXNlLCB3cml0ZSBjaHVua3Mgb25lLWJ5LW9uZVxuICAgIHdoaWxlIChlbnRyeSkge1xuICAgICAgdmFyIGNodW5rID0gZW50cnkuY2h1bms7XG4gICAgICB2YXIgZW5jb2RpbmcgPSBlbnRyeS5lbmNvZGluZztcbiAgICAgIHZhciBjYiA9IGVudHJ5LmNhbGxiYWNrO1xuICAgICAgdmFyIGxlbiA9IHN0YXRlLm9iamVjdE1vZGUgPyAxIDogY2h1bmsubGVuZ3RoO1xuICAgICAgZG9Xcml0ZShzdHJlYW0sIHN0YXRlLCBmYWxzZSwgbGVuLCBjaHVuaywgZW5jb2RpbmcsIGNiKTtcbiAgICAgIGVudHJ5ID0gZW50cnkubmV4dDtcbiAgICAgIHN0YXRlLmJ1ZmZlcmVkUmVxdWVzdENvdW50LS07XG4gICAgICAvLyBpZiB3ZSBkaWRuJ3QgY2FsbCB0aGUgb253cml0ZSBpbW1lZGlhdGVseSwgdGhlblxuICAgICAgLy8gaXQgbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIHdhaXQgdW50aWwgaXQgZG9lcy5cbiAgICAgIC8vIGFsc28sIHRoYXQgbWVhbnMgdGhhdCB0aGUgY2h1bmsgYW5kIGNiIGFyZSBjdXJyZW50bHlcbiAgICAgIC8vIGJlaW5nIHByb2Nlc3NlZCwgc28gbW92ZSB0aGUgYnVmZmVyIGNvdW50ZXIgcGFzdCB0aGVtLlxuICAgICAgaWYgKHN0YXRlLndyaXRpbmcpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChlbnRyeSA9PT0gbnVsbCkgc3RhdGUubGFzdEJ1ZmZlcmVkUmVxdWVzdCA9IG51bGw7XG4gIH1cbiAgc3RhdGUuYnVmZmVyZWRSZXF1ZXN0ID0gZW50cnk7XG4gIHN0YXRlLmJ1ZmZlclByb2Nlc3NpbmcgPSBmYWxzZTtcbn1cbldyaXRhYmxlLnByb3RvdHlwZS5fd3JpdGUgPSBmdW5jdGlvbiAoY2h1bmssIGVuY29kaW5nLCBjYikge1xuICBjYihuZXcgRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQoJ193cml0ZSgpJykpO1xufTtcbldyaXRhYmxlLnByb3RvdHlwZS5fd3JpdGV2ID0gbnVsbDtcbldyaXRhYmxlLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbiAoY2h1bmssIGVuY29kaW5nLCBjYikge1xuICB2YXIgc3RhdGUgPSB0aGlzLl93cml0YWJsZVN0YXRlO1xuICBpZiAodHlwZW9mIGNodW5rID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY2IgPSBjaHVuaztcbiAgICBjaHVuayA9IG51bGw7XG4gICAgZW5jb2RpbmcgPSBudWxsO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBlbmNvZGluZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNiID0gZW5jb2Rpbmc7XG4gICAgZW5jb2RpbmcgPSBudWxsO1xuICB9XG4gIGlmIChjaHVuayAhPT0gbnVsbCAmJiBjaHVuayAhPT0gdW5kZWZpbmVkKSB0aGlzLndyaXRlKGNodW5rLCBlbmNvZGluZyk7XG5cbiAgLy8gLmVuZCgpIGZ1bGx5IHVuY29ya3NcbiAgaWYgKHN0YXRlLmNvcmtlZCkge1xuICAgIHN0YXRlLmNvcmtlZCA9IDE7XG4gICAgdGhpcy51bmNvcmsoKTtcbiAgfVxuXG4gIC8vIGlnbm9yZSB1bm5lY2Vzc2FyeSBlbmQoKSBjYWxscy5cbiAgaWYgKCFzdGF0ZS5lbmRpbmcpIGVuZFdyaXRhYmxlKHRoaXMsIHN0YXRlLCBjYik7XG4gIHJldHVybiB0aGlzO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShXcml0YWJsZS5wcm90b3R5cGUsICd3cml0YWJsZUxlbmd0aCcsIHtcbiAgLy8gbWFraW5nIGl0IGV4cGxpY2l0IHRoaXMgcHJvcGVydHkgaXMgbm90IGVudW1lcmFibGVcbiAgLy8gYmVjYXVzZSBvdGhlcndpc2Ugc29tZSBwcm90b3R5cGUgbWFuaXB1bGF0aW9uIGluXG4gIC8vIHVzZXJsYW5kIHdpbGwgZmFpbFxuICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUubGVuZ3RoO1xuICB9XG59KTtcbmZ1bmN0aW9uIG5lZWRGaW5pc2goc3RhdGUpIHtcbiAgcmV0dXJuIHN0YXRlLmVuZGluZyAmJiBzdGF0ZS5sZW5ndGggPT09IDAgJiYgc3RhdGUuYnVmZmVyZWRSZXF1ZXN0ID09PSBudWxsICYmICFzdGF0ZS5maW5pc2hlZCAmJiAhc3RhdGUud3JpdGluZztcbn1cbmZ1bmN0aW9uIGNhbGxGaW5hbChzdHJlYW0sIHN0YXRlKSB7XG4gIHN0cmVhbS5fZmluYWwoZnVuY3Rpb24gKGVycikge1xuICAgIHN0YXRlLnBlbmRpbmdjYi0tO1xuICAgIGlmIChlcnIpIHtcbiAgICAgIGVycm9yT3JEZXN0cm95KHN0cmVhbSwgZXJyKTtcbiAgICB9XG4gICAgc3RhdGUucHJlZmluaXNoZWQgPSB0cnVlO1xuICAgIHN0cmVhbS5lbWl0KCdwcmVmaW5pc2gnKTtcbiAgICBmaW5pc2hNYXliZShzdHJlYW0sIHN0YXRlKTtcbiAgfSk7XG59XG5mdW5jdGlvbiBwcmVmaW5pc2goc3RyZWFtLCBzdGF0ZSkge1xuICBpZiAoIXN0YXRlLnByZWZpbmlzaGVkICYmICFzdGF0ZS5maW5hbENhbGxlZCkge1xuICAgIGlmICh0eXBlb2Ygc3RyZWFtLl9maW5hbCA9PT0gJ2Z1bmN0aW9uJyAmJiAhc3RhdGUuZGVzdHJveWVkKSB7XG4gICAgICBzdGF0ZS5wZW5kaW5nY2IrKztcbiAgICAgIHN0YXRlLmZpbmFsQ2FsbGVkID0gdHJ1ZTtcbiAgICAgIHByb2Nlc3MubmV4dFRpY2soY2FsbEZpbmFsLCBzdHJlYW0sIHN0YXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUucHJlZmluaXNoZWQgPSB0cnVlO1xuICAgICAgc3RyZWFtLmVtaXQoJ3ByZWZpbmlzaCcpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gZmluaXNoTWF5YmUoc3RyZWFtLCBzdGF0ZSkge1xuICB2YXIgbmVlZCA9IG5lZWRGaW5pc2goc3RhdGUpO1xuICBpZiAobmVlZCkge1xuICAgIHByZWZpbmlzaChzdHJlYW0sIHN0YXRlKTtcbiAgICBpZiAoc3RhdGUucGVuZGluZ2NiID09PSAwKSB7XG4gICAgICBzdGF0ZS5maW5pc2hlZCA9IHRydWU7XG4gICAgICBzdHJlYW0uZW1pdCgnZmluaXNoJyk7XG4gICAgICBpZiAoc3RhdGUuYXV0b0Rlc3Ryb3kpIHtcbiAgICAgICAgLy8gSW4gY2FzZSBvZiBkdXBsZXggc3RyZWFtcyB3ZSBuZWVkIGEgd2F5IHRvIGRldGVjdFxuICAgICAgICAvLyBpZiB0aGUgcmVhZGFibGUgc2lkZSBpcyByZWFkeSBmb3IgYXV0b0Rlc3Ryb3kgYXMgd2VsbFxuICAgICAgICB2YXIgclN0YXRlID0gc3RyZWFtLl9yZWFkYWJsZVN0YXRlO1xuICAgICAgICBpZiAoIXJTdGF0ZSB8fCByU3RhdGUuYXV0b0Rlc3Ryb3kgJiYgclN0YXRlLmVuZEVtaXR0ZWQpIHtcbiAgICAgICAgICBzdHJlYW0uZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBuZWVkO1xufVxuZnVuY3Rpb24gZW5kV3JpdGFibGUoc3RyZWFtLCBzdGF0ZSwgY2IpIHtcbiAgc3RhdGUuZW5kaW5nID0gdHJ1ZTtcbiAgZmluaXNoTWF5YmUoc3RyZWFtLCBzdGF0ZSk7XG4gIGlmIChjYikge1xuICAgIGlmIChzdGF0ZS5maW5pc2hlZCkgcHJvY2Vzcy5uZXh0VGljayhjYik7ZWxzZSBzdHJlYW0ub25jZSgnZmluaXNoJywgY2IpO1xuICB9XG4gIHN0YXRlLmVuZGVkID0gdHJ1ZTtcbiAgc3RyZWFtLndyaXRhYmxlID0gZmFsc2U7XG59XG5mdW5jdGlvbiBvbkNvcmtlZEZpbmlzaChjb3JrUmVxLCBzdGF0ZSwgZXJyKSB7XG4gIHZhciBlbnRyeSA9IGNvcmtSZXEuZW50cnk7XG4gIGNvcmtSZXEuZW50cnkgPSBudWxsO1xuICB3aGlsZSAoZW50cnkpIHtcbiAgICB2YXIgY2IgPSBlbnRyeS5jYWxsYmFjaztcbiAgICBzdGF0ZS5wZW5kaW5nY2ItLTtcbiAgICBjYihlcnIpO1xuICAgIGVudHJ5ID0gZW50cnkubmV4dDtcbiAgfVxuXG4gIC8vIHJldXNlIHRoZSBmcmVlIGNvcmtSZXEuXG4gIHN0YXRlLmNvcmtlZFJlcXVlc3RzRnJlZS5uZXh0ID0gY29ya1JlcTtcbn1cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShXcml0YWJsZS5wcm90b3R5cGUsICdkZXN0cm95ZWQnLCB7XG4gIC8vIG1ha2luZyBpdCBleHBsaWNpdCB0aGlzIHByb3BlcnR5IGlzIG5vdCBlbnVtZXJhYmxlXG4gIC8vIGJlY2F1c2Ugb3RoZXJ3aXNlIHNvbWUgcHJvdG90eXBlIG1hbmlwdWxhdGlvbiBpblxuICAvLyB1c2VybGFuZCB3aWxsIGZhaWxcbiAgZW51bWVyYWJsZTogZmFsc2UsXG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIGlmICh0aGlzLl93cml0YWJsZVN0YXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkO1xuICB9LFxuICBzZXQ6IGZ1bmN0aW9uIHNldCh2YWx1ZSkge1xuICAgIC8vIHdlIGlnbm9yZSB0aGUgdmFsdWUgaWYgdGhlIHN0cmVhbVxuICAgIC8vIGhhcyBub3QgYmVlbiBpbml0aWFsaXplZCB5ZXRcbiAgICBpZiAoIXRoaXMuX3dyaXRhYmxlU3RhdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB0aGUgdXNlciBpcyBleHBsaWNpdGx5XG4gICAgLy8gbWFuYWdpbmcgZGVzdHJveWVkXG4gICAgdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQgPSB2YWx1ZTtcbiAgfVxufSk7XG5Xcml0YWJsZS5wcm90b3R5cGUuZGVzdHJveSA9IGRlc3Ryb3lJbXBsLmRlc3Ryb3k7XG5Xcml0YWJsZS5wcm90b3R5cGUuX3VuZGVzdHJveSA9IGRlc3Ryb3lJbXBsLnVuZGVzdHJveTtcbldyaXRhYmxlLnByb3RvdHlwZS5fZGVzdHJveSA9IGZ1bmN0aW9uIChlcnIsIGNiKSB7XG4gIGNiKGVycik7XG59OyIsIi8qKlxuICogQSBKYXZhU2NyaXB0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBTZWN1cmUgSGFzaCBBbGdvcml0aG0sIFNIQS0yNTYsIGFzIGRlZmluZWRcbiAqIGluIEZJUFMgMTgwLTJcbiAqIFZlcnNpb24gMi4yLWJldGEgQ29weXJpZ2h0IEFuZ2VsIE1hcmluLCBQYXVsIEpvaG5zdG9uIDIwMDAgLSAyMDA5LlxuICogT3RoZXIgY29udHJpYnV0b3JzOiBHcmVnIEhvbHQsIEFuZHJldyBLZXBlcnQsIFlkbmFyLCBMb3N0aW5ldFxuICpcbiAqL1xuXG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgU2hhMjU2ID0gcmVxdWlyZSgnLi9zaGEyNTYnKVxudmFyIEhhc2ggPSByZXF1aXJlKCcuL2hhc2gnKVxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG5cbnZhciBXID0gbmV3IEFycmF5KDY0KVxuXG5mdW5jdGlvbiBTaGEyMjQgKCkge1xuICB0aGlzLmluaXQoKVxuXG4gIHRoaXMuX3cgPSBXIC8vIG5ldyBBcnJheSg2NClcblxuICBIYXNoLmNhbGwodGhpcywgNjQsIDU2KVxufVxuXG5pbmhlcml0cyhTaGEyMjQsIFNoYTI1NilcblxuU2hhMjI0LnByb3RvdHlwZS5pbml0ID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLl9hID0gMHhjMTA1OWVkOFxuICB0aGlzLl9iID0gMHgzNjdjZDUwN1xuICB0aGlzLl9jID0gMHgzMDcwZGQxN1xuICB0aGlzLl9kID0gMHhmNzBlNTkzOVxuICB0aGlzLl9lID0gMHhmZmMwMGIzMVxuICB0aGlzLl9mID0gMHg2ODU4MTUxMVxuICB0aGlzLl9nID0gMHg2NGY5OGZhN1xuICB0aGlzLl9oID0gMHhiZWZhNGZhNFxuXG4gIHJldHVybiB0aGlzXG59XG5cblNoYTIyNC5wcm90b3R5cGUuX2hhc2ggPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBIID0gQnVmZmVyLmFsbG9jVW5zYWZlKDI4KVxuXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2EsIDApXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2IsIDQpXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2MsIDgpXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2QsIDEyKVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9lLCAxNilcbiAgSC53cml0ZUludDMyQkUodGhpcy5fZiwgMjApXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2csIDI0KVxuXG4gIHJldHVybiBIXG59XG5cbm1vZHVsZS5leHBvcnRzID0gU2hhMjI0XG4iLCIndXNlIHN0cmljdCc7XG5cbmZ1bmN0aW9uIG93bktleXMob2JqZWN0LCBlbnVtZXJhYmxlT25seSkgeyB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7IHZhciBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpOyBlbnVtZXJhYmxlT25seSAmJiAoc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7IH0pKSwga2V5cy5wdXNoLmFwcGx5KGtleXMsIHN5bWJvbHMpOyB9IHJldHVybiBrZXlzOyB9XG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gbnVsbCAhPSBhcmd1bWVudHNbaV0gPyBhcmd1bWVudHNbaV0gOiB7fTsgaSAlIDIgPyBvd25LZXlzKE9iamVjdChzb3VyY2UpLCAhMCkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IF9kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgc291cmNlW2tleV0pOyB9KSA6IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKSA6IG93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTsgfSk7IH0gcmV0dXJuIHRhcmdldDsgfVxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBrZXkgPSBfdG9Qcm9wZXJ0eUtleShrZXkpOyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIF90b1Byb3BlcnR5S2V5KGRlc2NyaXB0b3Iua2V5KSwgZGVzY3JpcHRvcik7IH0gfVxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyBPYmplY3QuZGVmaW5lUHJvcGVydHkoQ29uc3RydWN0b3IsIFwicHJvdG90eXBlXCIsIHsgd3JpdGFibGU6IGZhbHNlIH0pOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cbmZ1bmN0aW9uIF90b1Byb3BlcnR5S2V5KGFyZykgeyB2YXIga2V5ID0gX3RvUHJpbWl0aXZlKGFyZywgXCJzdHJpbmdcIik7IHJldHVybiB0eXBlb2Yga2V5ID09PSBcInN5bWJvbFwiID8ga2V5IDogU3RyaW5nKGtleSk7IH1cbmZ1bmN0aW9uIF90b1ByaW1pdGl2ZShpbnB1dCwgaGludCkgeyBpZiAodHlwZW9mIGlucHV0ICE9PSBcIm9iamVjdFwiIHx8IGlucHV0ID09PSBudWxsKSByZXR1cm4gaW5wdXQ7IHZhciBwcmltID0gaW5wdXRbU3ltYm9sLnRvUHJpbWl0aXZlXTsgaWYgKHByaW0gIT09IHVuZGVmaW5lZCkgeyB2YXIgcmVzID0gcHJpbS5jYWxsKGlucHV0LCBoaW50IHx8IFwiZGVmYXVsdFwiKTsgaWYgKHR5cGVvZiByZXMgIT09IFwib2JqZWN0XCIpIHJldHVybiByZXM7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKTsgfSByZXR1cm4gKGhpbnQgPT09IFwic3RyaW5nXCIgPyBTdHJpbmcgOiBOdW1iZXIpKGlucHV0KTsgfVxudmFyIF9yZXF1aXJlID0gcmVxdWlyZSgnYnVmZmVyJyksXG4gIEJ1ZmZlciA9IF9yZXF1aXJlLkJ1ZmZlcjtcbnZhciBfcmVxdWlyZTIgPSByZXF1aXJlKCd1dGlsJyksXG4gIGluc3BlY3QgPSBfcmVxdWlyZTIuaW5zcGVjdDtcbnZhciBjdXN0b20gPSBpbnNwZWN0ICYmIGluc3BlY3QuY3VzdG9tIHx8ICdpbnNwZWN0JztcbmZ1bmN0aW9uIGNvcHlCdWZmZXIoc3JjLCB0YXJnZXQsIG9mZnNldCkge1xuICBCdWZmZXIucHJvdG90eXBlLmNvcHkuY2FsbChzcmMsIHRhcmdldCwgb2Zmc2V0KTtcbn1cbm1vZHVsZS5leHBvcnRzID0gLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gQnVmZmVyTGlzdCgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQnVmZmVyTGlzdCk7XG4gICAgdGhpcy5oZWFkID0gbnVsbDtcbiAgICB0aGlzLnRhaWwgPSBudWxsO1xuICAgIHRoaXMubGVuZ3RoID0gMDtcbiAgfVxuICBfY3JlYXRlQ2xhc3MoQnVmZmVyTGlzdCwgW3tcbiAgICBrZXk6IFwicHVzaFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBwdXNoKHYpIHtcbiAgICAgIHZhciBlbnRyeSA9IHtcbiAgICAgICAgZGF0YTogdixcbiAgICAgICAgbmV4dDogbnVsbFxuICAgICAgfTtcbiAgICAgIGlmICh0aGlzLmxlbmd0aCA+IDApIHRoaXMudGFpbC5uZXh0ID0gZW50cnk7ZWxzZSB0aGlzLmhlYWQgPSBlbnRyeTtcbiAgICAgIHRoaXMudGFpbCA9IGVudHJ5O1xuICAgICAgKyt0aGlzLmxlbmd0aDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwidW5zaGlmdFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB1bnNoaWZ0KHYpIHtcbiAgICAgIHZhciBlbnRyeSA9IHtcbiAgICAgICAgZGF0YTogdixcbiAgICAgICAgbmV4dDogdGhpcy5oZWFkXG4gICAgICB9O1xuICAgICAgaWYgKHRoaXMubGVuZ3RoID09PSAwKSB0aGlzLnRhaWwgPSBlbnRyeTtcbiAgICAgIHRoaXMuaGVhZCA9IGVudHJ5O1xuICAgICAgKyt0aGlzLmxlbmd0aDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic2hpZnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gc2hpZnQoKSB7XG4gICAgICBpZiAodGhpcy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICAgIHZhciByZXQgPSB0aGlzLmhlYWQuZGF0YTtcbiAgICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMSkgdGhpcy5oZWFkID0gdGhpcy50YWlsID0gbnVsbDtlbHNlIHRoaXMuaGVhZCA9IHRoaXMuaGVhZC5uZXh0O1xuICAgICAgLS10aGlzLmxlbmd0aDtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNsZWFyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNsZWFyKCkge1xuICAgICAgdGhpcy5oZWFkID0gdGhpcy50YWlsID0gbnVsbDtcbiAgICAgIHRoaXMubGVuZ3RoID0gMDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiam9pblwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBqb2luKHMpIHtcbiAgICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuICcnO1xuICAgICAgdmFyIHAgPSB0aGlzLmhlYWQ7XG4gICAgICB2YXIgcmV0ID0gJycgKyBwLmRhdGE7XG4gICAgICB3aGlsZSAocCA9IHAubmV4dCkgcmV0ICs9IHMgKyBwLmRhdGE7XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb25jYXRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29uY2F0KG4pIHtcbiAgICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIEJ1ZmZlci5hbGxvYygwKTtcbiAgICAgIHZhciByZXQgPSBCdWZmZXIuYWxsb2NVbnNhZmUobiA+Pj4gMCk7XG4gICAgICB2YXIgcCA9IHRoaXMuaGVhZDtcbiAgICAgIHZhciBpID0gMDtcbiAgICAgIHdoaWxlIChwKSB7XG4gICAgICAgIGNvcHlCdWZmZXIocC5kYXRhLCByZXQsIGkpO1xuICAgICAgICBpICs9IHAuZGF0YS5sZW5ndGg7XG4gICAgICAgIHAgPSBwLm5leHQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH1cblxuICAgIC8vIENvbnN1bWVzIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBieXRlcyBvciBjaGFyYWN0ZXJzIGZyb20gdGhlIGJ1ZmZlcmVkIGRhdGEuXG4gIH0sIHtcbiAgICBrZXk6IFwiY29uc3VtZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb25zdW1lKG4sIGhhc1N0cmluZ3MpIHtcbiAgICAgIHZhciByZXQ7XG4gICAgICBpZiAobiA8IHRoaXMuaGVhZC5kYXRhLmxlbmd0aCkge1xuICAgICAgICAvLyBgc2xpY2VgIGlzIHRoZSBzYW1lIGZvciBidWZmZXJzIGFuZCBzdHJpbmdzLlxuICAgICAgICByZXQgPSB0aGlzLmhlYWQuZGF0YS5zbGljZSgwLCBuKTtcbiAgICAgICAgdGhpcy5oZWFkLmRhdGEgPSB0aGlzLmhlYWQuZGF0YS5zbGljZShuKTtcbiAgICAgIH0gZWxzZSBpZiAobiA9PT0gdGhpcy5oZWFkLmRhdGEubGVuZ3RoKSB7XG4gICAgICAgIC8vIEZpcnN0IGNodW5rIGlzIGEgcGVyZmVjdCBtYXRjaC5cbiAgICAgICAgcmV0ID0gdGhpcy5zaGlmdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gUmVzdWx0IHNwYW5zIG1vcmUgdGhhbiBvbmUgYnVmZmVyLlxuICAgICAgICByZXQgPSBoYXNTdHJpbmdzID8gdGhpcy5fZ2V0U3RyaW5nKG4pIDogdGhpcy5fZ2V0QnVmZmVyKG4pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZmlyc3RcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZmlyc3QoKSB7XG4gICAgICByZXR1cm4gdGhpcy5oZWFkLmRhdGE7XG4gICAgfVxuXG4gICAgLy8gQ29uc3VtZXMgYSBzcGVjaWZpZWQgYW1vdW50IG9mIGNoYXJhY3RlcnMgZnJvbSB0aGUgYnVmZmVyZWQgZGF0YS5cbiAgfSwge1xuICAgIGtleTogXCJfZ2V0U3RyaW5nXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIF9nZXRTdHJpbmcobikge1xuICAgICAgdmFyIHAgPSB0aGlzLmhlYWQ7XG4gICAgICB2YXIgYyA9IDE7XG4gICAgICB2YXIgcmV0ID0gcC5kYXRhO1xuICAgICAgbiAtPSByZXQubGVuZ3RoO1xuICAgICAgd2hpbGUgKHAgPSBwLm5leHQpIHtcbiAgICAgICAgdmFyIHN0ciA9IHAuZGF0YTtcbiAgICAgICAgdmFyIG5iID0gbiA+IHN0ci5sZW5ndGggPyBzdHIubGVuZ3RoIDogbjtcbiAgICAgICAgaWYgKG5iID09PSBzdHIubGVuZ3RoKSByZXQgKz0gc3RyO2Vsc2UgcmV0ICs9IHN0ci5zbGljZSgwLCBuKTtcbiAgICAgICAgbiAtPSBuYjtcbiAgICAgICAgaWYgKG4gPT09IDApIHtcbiAgICAgICAgICBpZiAobmIgPT09IHN0ci5sZW5ndGgpIHtcbiAgICAgICAgICAgICsrYztcbiAgICAgICAgICAgIGlmIChwLm5leHQpIHRoaXMuaGVhZCA9IHAubmV4dDtlbHNlIHRoaXMuaGVhZCA9IHRoaXMudGFpbCA9IG51bGw7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGVhZCA9IHA7XG4gICAgICAgICAgICBwLmRhdGEgPSBzdHIuc2xpY2UobmIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICArK2M7XG4gICAgICB9XG4gICAgICB0aGlzLmxlbmd0aCAtPSBjO1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG5cbiAgICAvLyBDb25zdW1lcyBhIHNwZWNpZmllZCBhbW91bnQgb2YgYnl0ZXMgZnJvbSB0aGUgYnVmZmVyZWQgZGF0YS5cbiAgfSwge1xuICAgIGtleTogXCJfZ2V0QnVmZmVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIF9nZXRCdWZmZXIobikge1xuICAgICAgdmFyIHJldCA9IEJ1ZmZlci5hbGxvY1Vuc2FmZShuKTtcbiAgICAgIHZhciBwID0gdGhpcy5oZWFkO1xuICAgICAgdmFyIGMgPSAxO1xuICAgICAgcC5kYXRhLmNvcHkocmV0KTtcbiAgICAgIG4gLT0gcC5kYXRhLmxlbmd0aDtcbiAgICAgIHdoaWxlIChwID0gcC5uZXh0KSB7XG4gICAgICAgIHZhciBidWYgPSBwLmRhdGE7XG4gICAgICAgIHZhciBuYiA9IG4gPiBidWYubGVuZ3RoID8gYnVmLmxlbmd0aCA6IG47XG4gICAgICAgIGJ1Zi5jb3B5KHJldCwgcmV0Lmxlbmd0aCAtIG4sIDAsIG5iKTtcbiAgICAgICAgbiAtPSBuYjtcbiAgICAgICAgaWYgKG4gPT09IDApIHtcbiAgICAgICAgICBpZiAobmIgPT09IGJ1Zi5sZW5ndGgpIHtcbiAgICAgICAgICAgICsrYztcbiAgICAgICAgICAgIGlmIChwLm5leHQpIHRoaXMuaGVhZCA9IHAubmV4dDtlbHNlIHRoaXMuaGVhZCA9IHRoaXMudGFpbCA9IG51bGw7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGVhZCA9IHA7XG4gICAgICAgICAgICBwLmRhdGEgPSBidWYuc2xpY2UobmIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICArK2M7XG4gICAgICB9XG4gICAgICB0aGlzLmxlbmd0aCAtPSBjO1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG5cbiAgICAvLyBNYWtlIHN1cmUgdGhlIGxpbmtlZCBsaXN0IG9ubHkgc2hvd3MgdGhlIG1pbmltYWwgbmVjZXNzYXJ5IGluZm9ybWF0aW9uLlxuICB9LCB7XG4gICAga2V5OiBjdXN0b20sXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHZhbHVlKF8sIG9wdGlvbnMpIHtcbiAgICAgIHJldHVybiBpbnNwZWN0KHRoaXMsIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgb3B0aW9ucyksIHt9LCB7XG4gICAgICAgIC8vIE9ubHkgaW5zcGVjdCBvbmUgbGV2ZWwuXG4gICAgICAgIGRlcHRoOiAwLFxuICAgICAgICAvLyBJdCBzaG91bGQgbm90IHJlY3Vyc2UuXG4gICAgICAgIGN1c3RvbUluc3BlY3Q6IGZhbHNlXG4gICAgICB9KSk7XG4gICAgfVxuICB9XSk7XG4gIHJldHVybiBCdWZmZXJMaXN0O1xufSgpOyIsIi8qXG4gKiBBIEphdmFTY3JpcHQgaW1wbGVtZW50YXRpb24gb2YgdGhlIFNlY3VyZSBIYXNoIEFsZ29yaXRobSwgU0hBLTEsIGFzIGRlZmluZWRcbiAqIGluIEZJUFMgUFVCIDE4MC0xXG4gKiBWZXJzaW9uIDIuMWEgQ29weXJpZ2h0IFBhdWwgSm9obnN0b24gMjAwMCAtIDIwMDIuXG4gKiBPdGhlciBjb250cmlidXRvcnM6IEdyZWcgSG9sdCwgQW5kcmV3IEtlcGVydCwgWWRuYXIsIExvc3RpbmV0XG4gKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQlNEIExpY2Vuc2VcbiAqIFNlZSBodHRwOi8vcGFqaG9tZS5vcmcudWsvY3J5cHQvbWQ1IGZvciBkZXRhaWxzLlxuICovXG5cbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcbnZhciBIYXNoID0gcmVxdWlyZSgnLi9oYXNoJylcbnZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlclxuXG52YXIgSyA9IFtcbiAgMHg1YTgyNzk5OSwgMHg2ZWQ5ZWJhMSwgMHg4ZjFiYmNkYyB8IDAsIDB4Y2E2MmMxZDYgfCAwXG5dXG5cbnZhciBXID0gbmV3IEFycmF5KDgwKVxuXG5mdW5jdGlvbiBTaGExICgpIHtcbiAgdGhpcy5pbml0KClcbiAgdGhpcy5fdyA9IFdcblxuICBIYXNoLmNhbGwodGhpcywgNjQsIDU2KVxufVxuXG5pbmhlcml0cyhTaGExLCBIYXNoKVxuXG5TaGExLnByb3RvdHlwZS5pbml0ID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLl9hID0gMHg2NzQ1MjMwMVxuICB0aGlzLl9iID0gMHhlZmNkYWI4OVxuICB0aGlzLl9jID0gMHg5OGJhZGNmZVxuICB0aGlzLl9kID0gMHgxMDMyNTQ3NlxuICB0aGlzLl9lID0gMHhjM2QyZTFmMFxuXG4gIHJldHVybiB0aGlzXG59XG5cbmZ1bmN0aW9uIHJvdGwxIChudW0pIHtcbiAgcmV0dXJuIChudW0gPDwgMSkgfCAobnVtID4+PiAzMSlcbn1cblxuZnVuY3Rpb24gcm90bDUgKG51bSkge1xuICByZXR1cm4gKG51bSA8PCA1KSB8IChudW0gPj4+IDI3KVxufVxuXG5mdW5jdGlvbiByb3RsMzAgKG51bSkge1xuICByZXR1cm4gKG51bSA8PCAzMCkgfCAobnVtID4+PiAyKVxufVxuXG5mdW5jdGlvbiBmdCAocywgYiwgYywgZCkge1xuICBpZiAocyA9PT0gMCkgcmV0dXJuIChiICYgYykgfCAoKH5iKSAmIGQpXG4gIGlmIChzID09PSAyKSByZXR1cm4gKGIgJiBjKSB8IChiICYgZCkgfCAoYyAmIGQpXG4gIHJldHVybiBiIF4gYyBeIGRcbn1cblxuU2hhMS5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uIChNKSB7XG4gIHZhciBXID0gdGhpcy5fd1xuXG4gIHZhciBhID0gdGhpcy5fYSB8IDBcbiAgdmFyIGIgPSB0aGlzLl9iIHwgMFxuICB2YXIgYyA9IHRoaXMuX2MgfCAwXG4gIHZhciBkID0gdGhpcy5fZCB8IDBcbiAgdmFyIGUgPSB0aGlzLl9lIHwgMFxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgMTY7ICsraSkgV1tpXSA9IE0ucmVhZEludDMyQkUoaSAqIDQpXG4gIGZvciAoOyBpIDwgODA7ICsraSkgV1tpXSA9IHJvdGwxKFdbaSAtIDNdIF4gV1tpIC0gOF0gXiBXW2kgLSAxNF0gXiBXW2kgLSAxNl0pXG5cbiAgZm9yICh2YXIgaiA9IDA7IGogPCA4MDsgKytqKSB7XG4gICAgdmFyIHMgPSB+fihqIC8gMjApXG4gICAgdmFyIHQgPSAocm90bDUoYSkgKyBmdChzLCBiLCBjLCBkKSArIGUgKyBXW2pdICsgS1tzXSkgfCAwXG5cbiAgICBlID0gZFxuICAgIGQgPSBjXG4gICAgYyA9IHJvdGwzMChiKVxuICAgIGIgPSBhXG4gICAgYSA9IHRcbiAgfVxuXG4gIHRoaXMuX2EgPSAoYSArIHRoaXMuX2EpIHwgMFxuICB0aGlzLl9iID0gKGIgKyB0aGlzLl9iKSB8IDBcbiAgdGhpcy5fYyA9IChjICsgdGhpcy5fYykgfCAwXG4gIHRoaXMuX2QgPSAoZCArIHRoaXMuX2QpIHwgMFxuICB0aGlzLl9lID0gKGUgKyB0aGlzLl9lKSB8IDBcbn1cblxuU2hhMS5wcm90b3R5cGUuX2hhc2ggPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBIID0gQnVmZmVyLmFsbG9jVW5zYWZlKDIwKVxuXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2EgfCAwLCAwKVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9iIHwgMCwgNClcbiAgSC53cml0ZUludDMyQkUodGhpcy5fYyB8IDAsIDgpXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2QgfCAwLCAxMilcbiAgSC53cml0ZUludDMyQkUodGhpcy5fZSB8IDAsIDE2KVxuXG4gIHJldHVybiBIXG59XG5cbm1vZHVsZS5leHBvcnRzID0gU2hhMVxuIiwiLy8gUG9ydGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL21hZmludG9zaC9wdW1wIHdpdGhcbi8vIHBlcm1pc3Npb24gZnJvbSB0aGUgYXV0aG9yLCBNYXRoaWFzIEJ1dXMgKEBtYWZpbnRvc2gpLlxuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBlb3M7XG5mdW5jdGlvbiBvbmNlKGNhbGxiYWNrKSB7XG4gIHZhciBjYWxsZWQgPSBmYWxzZTtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoY2FsbGVkKSByZXR1cm47XG4gICAgY2FsbGVkID0gdHJ1ZTtcbiAgICBjYWxsYmFjay5hcHBseSh2b2lkIDAsIGFyZ3VtZW50cyk7XG4gIH07XG59XG52YXIgX3JlcXVpcmUkY29kZXMgPSByZXF1aXJlKCcuLi8uLi8uLi9lcnJvcnMnKS5jb2RlcyxcbiAgRVJSX01JU1NJTkdfQVJHUyA9IF9yZXF1aXJlJGNvZGVzLkVSUl9NSVNTSU5HX0FSR1MsXG4gIEVSUl9TVFJFQU1fREVTVFJPWUVEID0gX3JlcXVpcmUkY29kZXMuRVJSX1NUUkVBTV9ERVNUUk9ZRUQ7XG5mdW5jdGlvbiBub29wKGVycikge1xuICAvLyBSZXRocm93IHRoZSBlcnJvciBpZiBpdCBleGlzdHMgdG8gYXZvaWQgc3dhbGxvd2luZyBpdFxuICBpZiAoZXJyKSB0aHJvdyBlcnI7XG59XG5mdW5jdGlvbiBpc1JlcXVlc3Qoc3RyZWFtKSB7XG4gIHJldHVybiBzdHJlYW0uc2V0SGVhZGVyICYmIHR5cGVvZiBzdHJlYW0uYWJvcnQgPT09ICdmdW5jdGlvbic7XG59XG5mdW5jdGlvbiBkZXN0cm95ZXIoc3RyZWFtLCByZWFkaW5nLCB3cml0aW5nLCBjYWxsYmFjaykge1xuICBjYWxsYmFjayA9IG9uY2UoY2FsbGJhY2spO1xuICB2YXIgY2xvc2VkID0gZmFsc2U7XG4gIHN0cmVhbS5vbignY2xvc2UnLCBmdW5jdGlvbiAoKSB7XG4gICAgY2xvc2VkID0gdHJ1ZTtcbiAgfSk7XG4gIGlmIChlb3MgPT09IHVuZGVmaW5lZCkgZW9zID0gcmVxdWlyZSgnLi9lbmQtb2Ytc3RyZWFtJyk7XG4gIGVvcyhzdHJlYW0sIHtcbiAgICByZWFkYWJsZTogcmVhZGluZyxcbiAgICB3cml0YWJsZTogd3JpdGluZ1xuICB9LCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgaWYgKGVycikgcmV0dXJuIGNhbGxiYWNrKGVycik7XG4gICAgY2xvc2VkID0gdHJ1ZTtcbiAgICBjYWxsYmFjaygpO1xuICB9KTtcbiAgdmFyIGRlc3Ryb3llZCA9IGZhbHNlO1xuICByZXR1cm4gZnVuY3Rpb24gKGVycikge1xuICAgIGlmIChjbG9zZWQpIHJldHVybjtcbiAgICBpZiAoZGVzdHJveWVkKSByZXR1cm47XG4gICAgZGVzdHJveWVkID0gdHJ1ZTtcblxuICAgIC8vIHJlcXVlc3QuZGVzdHJveSBqdXN0IGRvIC5lbmQgLSAuYWJvcnQgaXMgd2hhdCB3ZSB3YW50XG4gICAgaWYgKGlzUmVxdWVzdChzdHJlYW0pKSByZXR1cm4gc3RyZWFtLmFib3J0KCk7XG4gICAgaWYgKHR5cGVvZiBzdHJlYW0uZGVzdHJveSA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHN0cmVhbS5kZXN0cm95KCk7XG4gICAgY2FsbGJhY2soZXJyIHx8IG5ldyBFUlJfU1RSRUFNX0RFU1RST1lFRCgncGlwZScpKTtcbiAgfTtcbn1cbmZ1bmN0aW9uIGNhbGwoZm4pIHtcbiAgZm4oKTtcbn1cbmZ1bmN0aW9uIHBpcGUoZnJvbSwgdG8pIHtcbiAgcmV0dXJuIGZyb20ucGlwZSh0byk7XG59XG5mdW5jdGlvbiBwb3BDYWxsYmFjayhzdHJlYW1zKSB7XG4gIGlmICghc3RyZWFtcy5sZW5ndGgpIHJldHVybiBub29wO1xuICBpZiAodHlwZW9mIHN0cmVhbXNbc3RyZWFtcy5sZW5ndGggLSAxXSAhPT0gJ2Z1bmN0aW9uJykgcmV0dXJuIG5vb3A7XG4gIHJldHVybiBzdHJlYW1zLnBvcCgpO1xufVxuZnVuY3Rpb24gcGlwZWxpbmUoKSB7XG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBzdHJlYW1zID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIHN0cmVhbXNbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cbiAgdmFyIGNhbGxiYWNrID0gcG9wQ2FsbGJhY2soc3RyZWFtcyk7XG4gIGlmIChBcnJheS5pc0FycmF5KHN0cmVhbXNbMF0pKSBzdHJlYW1zID0gc3RyZWFtc1swXTtcbiAgaWYgKHN0cmVhbXMubGVuZ3RoIDwgMikge1xuICAgIHRocm93IG5ldyBFUlJfTUlTU0lOR19BUkdTKCdzdHJlYW1zJyk7XG4gIH1cbiAgdmFyIGVycm9yO1xuICB2YXIgZGVzdHJveXMgPSBzdHJlYW1zLm1hcChmdW5jdGlvbiAoc3RyZWFtLCBpKSB7XG4gICAgdmFyIHJlYWRpbmcgPSBpIDwgc3RyZWFtcy5sZW5ndGggLSAxO1xuICAgIHZhciB3cml0aW5nID0gaSA+IDA7XG4gICAgcmV0dXJuIGRlc3Ryb3llcihzdHJlYW0sIHJlYWRpbmcsIHdyaXRpbmcsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgIGlmICghZXJyb3IpIGVycm9yID0gZXJyO1xuICAgICAgaWYgKGVycikgZGVzdHJveXMuZm9yRWFjaChjYWxsKTtcbiAgICAgIGlmIChyZWFkaW5nKSByZXR1cm47XG4gICAgICBkZXN0cm95cy5mb3JFYWNoKGNhbGwpO1xuICAgICAgY2FsbGJhY2soZXJyb3IpO1xuICAgIH0pO1xuICB9KTtcbiAgcmV0dXJuIHN0cmVhbXMucmVkdWNlKHBpcGUpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBwaXBlbGluZTsiLCJ2YXIgZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gU0hBIChhbGdvcml0aG0pIHtcbiAgYWxnb3JpdGhtID0gYWxnb3JpdGhtLnRvTG93ZXJDYXNlKClcblxuICB2YXIgQWxnb3JpdGhtID0gZXhwb3J0c1thbGdvcml0aG1dXG4gIGlmICghQWxnb3JpdGhtKSB0aHJvdyBuZXcgRXJyb3IoYWxnb3JpdGhtICsgJyBpcyBub3Qgc3VwcG9ydGVkICh3ZSBhY2NlcHQgcHVsbCByZXF1ZXN0cyknKVxuXG4gIHJldHVybiBuZXcgQWxnb3JpdGhtKClcbn1cblxuZXhwb3J0cy5zaGEgPSByZXF1aXJlKCcuL3NoYScpXG5leHBvcnRzLnNoYTEgPSByZXF1aXJlKCcuL3NoYTEnKVxuZXhwb3J0cy5zaGEyMjQgPSByZXF1aXJlKCcuL3NoYTIyNCcpXG5leHBvcnRzLnNoYTI1NiA9IHJlcXVpcmUoJy4vc2hhMjU2JylcbmV4cG9ydHMuc2hhMzg0ID0gcmVxdWlyZSgnLi9zaGEzODQnKVxuZXhwb3J0cy5zaGE1MTIgPSByZXF1aXJlKCcuL3NoYTUxMicpXG4iLCIvKlxuICogQSBKYXZhU2NyaXB0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBTZWN1cmUgSGFzaCBBbGdvcml0aG0sIFNIQS0wLCBhcyBkZWZpbmVkXG4gKiBpbiBGSVBTIFBVQiAxODAtMVxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBkZXJpdmVkIGZyb20gc2hhMS5qcyBvZiB0aGUgc2FtZSByZXBvc2l0b3J5LlxuICogVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBTSEEtMCBhbmQgU0hBLTEgaXMganVzdCBhIGJpdHdpc2Ugcm90YXRlIGxlZnRcbiAqIG9wZXJhdGlvbiB3YXMgYWRkZWQuXG4gKi9cblxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxudmFyIEhhc2ggPSByZXF1aXJlKCcuL2hhc2gnKVxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG5cbnZhciBLID0gW1xuICAweDVhODI3OTk5LCAweDZlZDllYmExLCAweDhmMWJiY2RjIHwgMCwgMHhjYTYyYzFkNiB8IDBcbl1cblxudmFyIFcgPSBuZXcgQXJyYXkoODApXG5cbmZ1bmN0aW9uIFNoYSAoKSB7XG4gIHRoaXMuaW5pdCgpXG4gIHRoaXMuX3cgPSBXXG5cbiAgSGFzaC5jYWxsKHRoaXMsIDY0LCA1Nilcbn1cblxuaW5oZXJpdHMoU2hhLCBIYXNoKVxuXG5TaGEucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuX2EgPSAweDY3NDUyMzAxXG4gIHRoaXMuX2IgPSAweGVmY2RhYjg5XG4gIHRoaXMuX2MgPSAweDk4YmFkY2ZlXG4gIHRoaXMuX2QgPSAweDEwMzI1NDc2XG4gIHRoaXMuX2UgPSAweGMzZDJlMWYwXG5cbiAgcmV0dXJuIHRoaXNcbn1cblxuZnVuY3Rpb24gcm90bDUgKG51bSkge1xuICByZXR1cm4gKG51bSA8PCA1KSB8IChudW0gPj4+IDI3KVxufVxuXG5mdW5jdGlvbiByb3RsMzAgKG51bSkge1xuICByZXR1cm4gKG51bSA8PCAzMCkgfCAobnVtID4+PiAyKVxufVxuXG5mdW5jdGlvbiBmdCAocywgYiwgYywgZCkge1xuICBpZiAocyA9PT0gMCkgcmV0dXJuIChiICYgYykgfCAoKH5iKSAmIGQpXG4gIGlmIChzID09PSAyKSByZXR1cm4gKGIgJiBjKSB8IChiICYgZCkgfCAoYyAmIGQpXG4gIHJldHVybiBiIF4gYyBeIGRcbn1cblxuU2hhLnByb3RvdHlwZS5fdXBkYXRlID0gZnVuY3Rpb24gKE0pIHtcbiAgdmFyIFcgPSB0aGlzLl93XG5cbiAgdmFyIGEgPSB0aGlzLl9hIHwgMFxuICB2YXIgYiA9IHRoaXMuX2IgfCAwXG4gIHZhciBjID0gdGhpcy5fYyB8IDBcbiAgdmFyIGQgPSB0aGlzLl9kIHwgMFxuICB2YXIgZSA9IHRoaXMuX2UgfCAwXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNjsgKytpKSBXW2ldID0gTS5yZWFkSW50MzJCRShpICogNClcbiAgZm9yICg7IGkgPCA4MDsgKytpKSBXW2ldID0gV1tpIC0gM10gXiBXW2kgLSA4XSBeIFdbaSAtIDE0XSBeIFdbaSAtIDE2XVxuXG4gIGZvciAodmFyIGogPSAwOyBqIDwgODA7ICsraikge1xuICAgIHZhciBzID0gfn4oaiAvIDIwKVxuICAgIHZhciB0ID0gKHJvdGw1KGEpICsgZnQocywgYiwgYywgZCkgKyBlICsgV1tqXSArIEtbc10pIHwgMFxuXG4gICAgZSA9IGRcbiAgICBkID0gY1xuICAgIGMgPSByb3RsMzAoYilcbiAgICBiID0gYVxuICAgIGEgPSB0XG4gIH1cblxuICB0aGlzLl9hID0gKGEgKyB0aGlzLl9hKSB8IDBcbiAgdGhpcy5fYiA9IChiICsgdGhpcy5fYikgfCAwXG4gIHRoaXMuX2MgPSAoYyArIHRoaXMuX2MpIHwgMFxuICB0aGlzLl9kID0gKGQgKyB0aGlzLl9kKSB8IDBcbiAgdGhpcy5fZSA9IChlICsgdGhpcy5fZSkgfCAwXG59XG5cblNoYS5wcm90b3R5cGUuX2hhc2ggPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBIID0gQnVmZmVyLmFsbG9jVW5zYWZlKDIwKVxuXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2EgfCAwLCAwKVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9iIHwgMCwgNClcbiAgSC53cml0ZUludDMyQkUodGhpcy5fYyB8IDAsIDgpXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2QgfCAwLCAxMilcbiAgSC53cml0ZUludDMyQkUodGhpcy5fZSB8IDAsIDE2KVxuXG4gIHJldHVybiBIXG59XG5cbm1vZHVsZS5leHBvcnRzID0gU2hhXG4iLCJ2YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgU0hBNTEyID0gcmVxdWlyZSgnLi9zaGE1MTInKVxudmFyIEhhc2ggPSByZXF1aXJlKCcuL2hhc2gnKVxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG5cbnZhciBXID0gbmV3IEFycmF5KDE2MClcblxuZnVuY3Rpb24gU2hhMzg0ICgpIHtcbiAgdGhpcy5pbml0KClcbiAgdGhpcy5fdyA9IFdcblxuICBIYXNoLmNhbGwodGhpcywgMTI4LCAxMTIpXG59XG5cbmluaGVyaXRzKFNoYTM4NCwgU0hBNTEyKVxuXG5TaGEzODQucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuX2FoID0gMHhjYmJiOWQ1ZFxuICB0aGlzLl9iaCA9IDB4NjI5YTI5MmFcbiAgdGhpcy5fY2ggPSAweDkxNTkwMTVhXG4gIHRoaXMuX2RoID0gMHgxNTJmZWNkOFxuICB0aGlzLl9laCA9IDB4NjczMzI2NjdcbiAgdGhpcy5fZmggPSAweDhlYjQ0YTg3XG4gIHRoaXMuX2doID0gMHhkYjBjMmUwZFxuICB0aGlzLl9oaCA9IDB4NDdiNTQ4MWRcblxuICB0aGlzLl9hbCA9IDB4YzEwNTllZDhcbiAgdGhpcy5fYmwgPSAweDM2N2NkNTA3XG4gIHRoaXMuX2NsID0gMHgzMDcwZGQxN1xuICB0aGlzLl9kbCA9IDB4ZjcwZTU5MzlcbiAgdGhpcy5fZWwgPSAweGZmYzAwYjMxXG4gIHRoaXMuX2ZsID0gMHg2ODU4MTUxMVxuICB0aGlzLl9nbCA9IDB4NjRmOThmYTdcbiAgdGhpcy5faGwgPSAweGJlZmE0ZmE0XG5cbiAgcmV0dXJuIHRoaXNcbn1cblxuU2hhMzg0LnByb3RvdHlwZS5faGFzaCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIEggPSBCdWZmZXIuYWxsb2NVbnNhZmUoNDgpXG5cbiAgZnVuY3Rpb24gd3JpdGVJbnQ2NEJFIChoLCBsLCBvZmZzZXQpIHtcbiAgICBILndyaXRlSW50MzJCRShoLCBvZmZzZXQpXG4gICAgSC53cml0ZUludDMyQkUobCwgb2Zmc2V0ICsgNClcbiAgfVxuXG4gIHdyaXRlSW50NjRCRSh0aGlzLl9haCwgdGhpcy5fYWwsIDApXG4gIHdyaXRlSW50NjRCRSh0aGlzLl9iaCwgdGhpcy5fYmwsIDgpXG4gIHdyaXRlSW50NjRCRSh0aGlzLl9jaCwgdGhpcy5fY2wsIDE2KVxuICB3cml0ZUludDY0QkUodGhpcy5fZGgsIHRoaXMuX2RsLCAyNClcbiAgd3JpdGVJbnQ2NEJFKHRoaXMuX2VoLCB0aGlzLl9lbCwgMzIpXG4gIHdyaXRlSW50NjRCRSh0aGlzLl9maCwgdGhpcy5fZmwsIDQwKVxuXG4gIHJldHVybiBIXG59XG5cbm1vZHVsZS5leHBvcnRzID0gU2hhMzg0XG4iLCIvKiEgc2FmZS1idWZmZXIuIE1JVCBMaWNlbnNlLiBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmcvb3BlbnNvdXJjZT4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vZGUvbm8tZGVwcmVjYXRlZC1hcGkgKi9cbnZhciBidWZmZXIgPSByZXF1aXJlKCdidWZmZXInKVxudmFyIEJ1ZmZlciA9IGJ1ZmZlci5CdWZmZXJcblxuLy8gYWx0ZXJuYXRpdmUgdG8gdXNpbmcgT2JqZWN0LmtleXMgZm9yIG9sZCBicm93c2Vyc1xuZnVuY3Rpb24gY29weVByb3BzIChzcmMsIGRzdCkge1xuICBmb3IgKHZhciBrZXkgaW4gc3JjKSB7XG4gICAgZHN0W2tleV0gPSBzcmNba2V5XVxuICB9XG59XG5pZiAoQnVmZmVyLmZyb20gJiYgQnVmZmVyLmFsbG9jICYmIEJ1ZmZlci5hbGxvY1Vuc2FmZSAmJiBCdWZmZXIuYWxsb2NVbnNhZmVTbG93KSB7XG4gIG1vZHVsZS5leHBvcnRzID0gYnVmZmVyXG59IGVsc2Uge1xuICAvLyBDb3B5IHByb3BlcnRpZXMgZnJvbSByZXF1aXJlKCdidWZmZXInKVxuICBjb3B5UHJvcHMoYnVmZmVyLCBleHBvcnRzKVxuICBleHBvcnRzLkJ1ZmZlciA9IFNhZmVCdWZmZXJcbn1cblxuZnVuY3Rpb24gU2FmZUJ1ZmZlciAoYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIEJ1ZmZlcihhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aClcbn1cblxuU2FmZUJ1ZmZlci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEJ1ZmZlci5wcm90b3R5cGUpXG5cbi8vIENvcHkgc3RhdGljIG1ldGhvZHMgZnJvbSBCdWZmZXJcbmNvcHlQcm9wcyhCdWZmZXIsIFNhZmVCdWZmZXIpXG5cblNhZmVCdWZmZXIuZnJvbSA9IGZ1bmN0aW9uIChhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aCkge1xuICBpZiAodHlwZW9mIGFyZyA9PT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudCBtdXN0IG5vdCBiZSBhIG51bWJlcicpXG4gIH1cbiAgcmV0dXJuIEJ1ZmZlcihhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aClcbn1cblxuU2FmZUJ1ZmZlci5hbGxvYyA9IGZ1bmN0aW9uIChzaXplLCBmaWxsLCBlbmNvZGluZykge1xuICBpZiAodHlwZW9mIHNpemUgIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlcicpXG4gIH1cbiAgdmFyIGJ1ZiA9IEJ1ZmZlcihzaXplKVxuICBpZiAoZmlsbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHR5cGVvZiBlbmNvZGluZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGJ1Zi5maWxsKGZpbGwsIGVuY29kaW5nKVxuICAgIH0gZWxzZSB7XG4gICAgICBidWYuZmlsbChmaWxsKVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBidWYuZmlsbCgwKVxuICB9XG4gIHJldHVybiBidWZcbn1cblxuU2FmZUJ1ZmZlci5hbGxvY1Vuc2FmZSA9IGZ1bmN0aW9uIChzaXplKSB7XG4gIGlmICh0eXBlb2Ygc2l6ZSAhPT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyJylcbiAgfVxuICByZXR1cm4gQnVmZmVyKHNpemUpXG59XG5cblNhZmVCdWZmZXIuYWxsb2NVbnNhZmVTbG93ID0gZnVuY3Rpb24gKHNpemUpIHtcbiAgaWYgKHR5cGVvZiBzaXplICE9PSAnbnVtYmVyJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBudW1iZXInKVxuICB9XG4gIHJldHVybiBidWZmZXIuU2xvd0J1ZmZlcihzaXplKVxufVxuIiwidmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxudmFyIEhhc2ggPSByZXF1aXJlKCcuL2hhc2gnKVxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG5cbnZhciBLID0gW1xuICAweDQyOGEyZjk4LCAweGQ3MjhhZTIyLCAweDcxMzc0NDkxLCAweDIzZWY2NWNkLFxuICAweGI1YzBmYmNmLCAweGVjNGQzYjJmLCAweGU5YjVkYmE1LCAweDgxODlkYmJjLFxuICAweDM5NTZjMjViLCAweGYzNDhiNTM4LCAweDU5ZjExMWYxLCAweGI2MDVkMDE5LFxuICAweDkyM2Y4MmE0LCAweGFmMTk0ZjliLCAweGFiMWM1ZWQ1LCAweGRhNmQ4MTE4LFxuICAweGQ4MDdhYTk4LCAweGEzMDMwMjQyLCAweDEyODM1YjAxLCAweDQ1NzA2ZmJlLFxuICAweDI0MzE4NWJlLCAweDRlZTRiMjhjLCAweDU1MGM3ZGMzLCAweGQ1ZmZiNGUyLFxuICAweDcyYmU1ZDc0LCAweGYyN2I4OTZmLCAweDgwZGViMWZlLCAweDNiMTY5NmIxLFxuICAweDliZGMwNmE3LCAweDI1YzcxMjM1LCAweGMxOWJmMTc0LCAweGNmNjkyNjk0LFxuICAweGU0OWI2OWMxLCAweDllZjE0YWQyLCAweGVmYmU0Nzg2LCAweDM4NGYyNWUzLFxuICAweDBmYzE5ZGM2LCAweDhiOGNkNWI1LCAweDI0MGNhMWNjLCAweDc3YWM5YzY1LFxuICAweDJkZTkyYzZmLCAweDU5MmIwMjc1LCAweDRhNzQ4NGFhLCAweDZlYTZlNDgzLFxuICAweDVjYjBhOWRjLCAweGJkNDFmYmQ0LCAweDc2Zjk4OGRhLCAweDgzMTE1M2I1LFxuICAweDk4M2U1MTUyLCAweGVlNjZkZmFiLCAweGE4MzFjNjZkLCAweDJkYjQzMjEwLFxuICAweGIwMDMyN2M4LCAweDk4ZmIyMTNmLCAweGJmNTk3ZmM3LCAweGJlZWYwZWU0LFxuICAweGM2ZTAwYmYzLCAweDNkYTg4ZmMyLCAweGQ1YTc5MTQ3LCAweDkzMGFhNzI1LFxuICAweDA2Y2E2MzUxLCAweGUwMDM4MjZmLCAweDE0MjkyOTY3LCAweDBhMGU2ZTcwLFxuICAweDI3YjcwYTg1LCAweDQ2ZDIyZmZjLCAweDJlMWIyMTM4LCAweDVjMjZjOTI2LFxuICAweDRkMmM2ZGZjLCAweDVhYzQyYWVkLCAweDUzMzgwZDEzLCAweDlkOTViM2RmLFxuICAweDY1MGE3MzU0LCAweDhiYWY2M2RlLCAweDc2NmEwYWJiLCAweDNjNzdiMmE4LFxuICAweDgxYzJjOTJlLCAweDQ3ZWRhZWU2LCAweDkyNzIyYzg1LCAweDE0ODIzNTNiLFxuICAweGEyYmZlOGExLCAweDRjZjEwMzY0LCAweGE4MWE2NjRiLCAweGJjNDIzMDAxLFxuICAweGMyNGI4YjcwLCAweGQwZjg5NzkxLCAweGM3NmM1MWEzLCAweDA2NTRiZTMwLFxuICAweGQxOTJlODE5LCAweGQ2ZWY1MjE4LCAweGQ2OTkwNjI0LCAweDU1NjVhOTEwLFxuICAweGY0MGUzNTg1LCAweDU3NzEyMDJhLCAweDEwNmFhMDcwLCAweDMyYmJkMWI4LFxuICAweDE5YTRjMTE2LCAweGI4ZDJkMGM4LCAweDFlMzc2YzA4LCAweDUxNDFhYjUzLFxuICAweDI3NDg3NzRjLCAweGRmOGVlYjk5LCAweDM0YjBiY2I1LCAweGUxOWI0OGE4LFxuICAweDM5MWMwY2IzLCAweGM1Yzk1YTYzLCAweDRlZDhhYTRhLCAweGUzNDE4YWNiLFxuICAweDViOWNjYTRmLCAweDc3NjNlMzczLCAweDY4MmU2ZmYzLCAweGQ2YjJiOGEzLFxuICAweDc0OGY4MmVlLCAweDVkZWZiMmZjLCAweDc4YTU2MzZmLCAweDQzMTcyZjYwLFxuICAweDg0Yzg3ODE0LCAweGExZjBhYjcyLCAweDhjYzcwMjA4LCAweDFhNjQzOWVjLFxuICAweDkwYmVmZmZhLCAweDIzNjMxZTI4LCAweGE0NTA2Y2ViLCAweGRlODJiZGU5LFxuICAweGJlZjlhM2Y3LCAweGIyYzY3OTE1LCAweGM2NzE3OGYyLCAweGUzNzI1MzJiLFxuICAweGNhMjczZWNlLCAweGVhMjY2MTljLCAweGQxODZiOGM3LCAweDIxYzBjMjA3LFxuICAweGVhZGE3ZGQ2LCAweGNkZTBlYjFlLCAweGY1N2Q0ZjdmLCAweGVlNmVkMTc4LFxuICAweDA2ZjA2N2FhLCAweDcyMTc2ZmJhLCAweDBhNjM3ZGM1LCAweGEyYzg5OGE2LFxuICAweDExM2Y5ODA0LCAweGJlZjkwZGFlLCAweDFiNzEwYjM1LCAweDEzMWM0NzFiLFxuICAweDI4ZGI3N2Y1LCAweDIzMDQ3ZDg0LCAweDMyY2FhYjdiLCAweDQwYzcyNDkzLFxuICAweDNjOWViZTBhLCAweDE1YzliZWJjLCAweDQzMWQ2N2M0LCAweDljMTAwZDRjLFxuICAweDRjYzVkNGJlLCAweGNiM2U0MmI2LCAweDU5N2YyOTljLCAweGZjNjU3ZTJhLFxuICAweDVmY2I2ZmFiLCAweDNhZDZmYWVjLCAweDZjNDQxOThjLCAweDRhNDc1ODE3XG5dXG5cbnZhciBXID0gbmV3IEFycmF5KDE2MClcblxuZnVuY3Rpb24gU2hhNTEyICgpIHtcbiAgdGhpcy5pbml0KClcbiAgdGhpcy5fdyA9IFdcblxuICBIYXNoLmNhbGwodGhpcywgMTI4LCAxMTIpXG59XG5cbmluaGVyaXRzKFNoYTUxMiwgSGFzaClcblxuU2hhNTEyLnByb3RvdHlwZS5pbml0ID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLl9haCA9IDB4NmEwOWU2NjdcbiAgdGhpcy5fYmggPSAweGJiNjdhZTg1XG4gIHRoaXMuX2NoID0gMHgzYzZlZjM3MlxuICB0aGlzLl9kaCA9IDB4YTU0ZmY1M2FcbiAgdGhpcy5fZWggPSAweDUxMGU1MjdmXG4gIHRoaXMuX2ZoID0gMHg5YjA1Njg4Y1xuICB0aGlzLl9naCA9IDB4MWY4M2Q5YWJcbiAgdGhpcy5faGggPSAweDViZTBjZDE5XG5cbiAgdGhpcy5fYWwgPSAweGYzYmNjOTA4XG4gIHRoaXMuX2JsID0gMHg4NGNhYTczYlxuICB0aGlzLl9jbCA9IDB4ZmU5NGY4MmJcbiAgdGhpcy5fZGwgPSAweDVmMWQzNmYxXG4gIHRoaXMuX2VsID0gMHhhZGU2ODJkMVxuICB0aGlzLl9mbCA9IDB4MmIzZTZjMWZcbiAgdGhpcy5fZ2wgPSAweGZiNDFiZDZiXG4gIHRoaXMuX2hsID0gMHgxMzdlMjE3OVxuXG4gIHJldHVybiB0aGlzXG59XG5cbmZ1bmN0aW9uIENoICh4LCB5LCB6KSB7XG4gIHJldHVybiB6IF4gKHggJiAoeSBeIHopKVxufVxuXG5mdW5jdGlvbiBtYWogKHgsIHksIHopIHtcbiAgcmV0dXJuICh4ICYgeSkgfCAoeiAmICh4IHwgeSkpXG59XG5cbmZ1bmN0aW9uIHNpZ21hMCAoeCwgeGwpIHtcbiAgcmV0dXJuICh4ID4+PiAyOCB8IHhsIDw8IDQpIF4gKHhsID4+PiAyIHwgeCA8PCAzMCkgXiAoeGwgPj4+IDcgfCB4IDw8IDI1KVxufVxuXG5mdW5jdGlvbiBzaWdtYTEgKHgsIHhsKSB7XG4gIHJldHVybiAoeCA+Pj4gMTQgfCB4bCA8PCAxOCkgXiAoeCA+Pj4gMTggfCB4bCA8PCAxNCkgXiAoeGwgPj4+IDkgfCB4IDw8IDIzKVxufVxuXG5mdW5jdGlvbiBHYW1tYTAgKHgsIHhsKSB7XG4gIHJldHVybiAoeCA+Pj4gMSB8IHhsIDw8IDMxKSBeICh4ID4+PiA4IHwgeGwgPDwgMjQpIF4gKHggPj4+IDcpXG59XG5cbmZ1bmN0aW9uIEdhbW1hMGwgKHgsIHhsKSB7XG4gIHJldHVybiAoeCA+Pj4gMSB8IHhsIDw8IDMxKSBeICh4ID4+PiA4IHwgeGwgPDwgMjQpIF4gKHggPj4+IDcgfCB4bCA8PCAyNSlcbn1cblxuZnVuY3Rpb24gR2FtbWExICh4LCB4bCkge1xuICByZXR1cm4gKHggPj4+IDE5IHwgeGwgPDwgMTMpIF4gKHhsID4+PiAyOSB8IHggPDwgMykgXiAoeCA+Pj4gNilcbn1cblxuZnVuY3Rpb24gR2FtbWExbCAoeCwgeGwpIHtcbiAgcmV0dXJuICh4ID4+PiAxOSB8IHhsIDw8IDEzKSBeICh4bCA+Pj4gMjkgfCB4IDw8IDMpIF4gKHggPj4+IDYgfCB4bCA8PCAyNilcbn1cblxuZnVuY3Rpb24gZ2V0Q2FycnkgKGEsIGIpIHtcbiAgcmV0dXJuIChhID4+PiAwKSA8IChiID4+PiAwKSA/IDEgOiAwXG59XG5cblNoYTUxMi5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uIChNKSB7XG4gIHZhciBXID0gdGhpcy5fd1xuXG4gIHZhciBhaCA9IHRoaXMuX2FoIHwgMFxuICB2YXIgYmggPSB0aGlzLl9iaCB8IDBcbiAgdmFyIGNoID0gdGhpcy5fY2ggfCAwXG4gIHZhciBkaCA9IHRoaXMuX2RoIHwgMFxuICB2YXIgZWggPSB0aGlzLl9laCB8IDBcbiAgdmFyIGZoID0gdGhpcy5fZmggfCAwXG4gIHZhciBnaCA9IHRoaXMuX2doIHwgMFxuICB2YXIgaGggPSB0aGlzLl9oaCB8IDBcblxuICB2YXIgYWwgPSB0aGlzLl9hbCB8IDBcbiAgdmFyIGJsID0gdGhpcy5fYmwgfCAwXG4gIHZhciBjbCA9IHRoaXMuX2NsIHwgMFxuICB2YXIgZGwgPSB0aGlzLl9kbCB8IDBcbiAgdmFyIGVsID0gdGhpcy5fZWwgfCAwXG4gIHZhciBmbCA9IHRoaXMuX2ZsIHwgMFxuICB2YXIgZ2wgPSB0aGlzLl9nbCB8IDBcbiAgdmFyIGhsID0gdGhpcy5faGwgfCAwXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCAzMjsgaSArPSAyKSB7XG4gICAgV1tpXSA9IE0ucmVhZEludDMyQkUoaSAqIDQpXG4gICAgV1tpICsgMV0gPSBNLnJlYWRJbnQzMkJFKGkgKiA0ICsgNClcbiAgfVxuICBmb3IgKDsgaSA8IDE2MDsgaSArPSAyKSB7XG4gICAgdmFyIHhoID0gV1tpIC0gMTUgKiAyXVxuICAgIHZhciB4bCA9IFdbaSAtIDE1ICogMiArIDFdXG4gICAgdmFyIGdhbW1hMCA9IEdhbW1hMCh4aCwgeGwpXG4gICAgdmFyIGdhbW1hMGwgPSBHYW1tYTBsKHhsLCB4aClcblxuICAgIHhoID0gV1tpIC0gMiAqIDJdXG4gICAgeGwgPSBXW2kgLSAyICogMiArIDFdXG4gICAgdmFyIGdhbW1hMSA9IEdhbW1hMSh4aCwgeGwpXG4gICAgdmFyIGdhbW1hMWwgPSBHYW1tYTFsKHhsLCB4aClcblxuICAgIC8vIFdbaV0gPSBnYW1tYTAgKyBXW2kgLSA3XSArIGdhbW1hMSArIFdbaSAtIDE2XVxuICAgIHZhciBXaTdoID0gV1tpIC0gNyAqIDJdXG4gICAgdmFyIFdpN2wgPSBXW2kgLSA3ICogMiArIDFdXG5cbiAgICB2YXIgV2kxNmggPSBXW2kgLSAxNiAqIDJdXG4gICAgdmFyIFdpMTZsID0gV1tpIC0gMTYgKiAyICsgMV1cblxuICAgIHZhciBXaWwgPSAoZ2FtbWEwbCArIFdpN2wpIHwgMFxuICAgIHZhciBXaWggPSAoZ2FtbWEwICsgV2k3aCArIGdldENhcnJ5KFdpbCwgZ2FtbWEwbCkpIHwgMFxuICAgIFdpbCA9IChXaWwgKyBnYW1tYTFsKSB8IDBcbiAgICBXaWggPSAoV2loICsgZ2FtbWExICsgZ2V0Q2FycnkoV2lsLCBnYW1tYTFsKSkgfCAwXG4gICAgV2lsID0gKFdpbCArIFdpMTZsKSB8IDBcbiAgICBXaWggPSAoV2loICsgV2kxNmggKyBnZXRDYXJyeShXaWwsIFdpMTZsKSkgfCAwXG5cbiAgICBXW2ldID0gV2loXG4gICAgV1tpICsgMV0gPSBXaWxcbiAgfVxuXG4gIGZvciAodmFyIGogPSAwOyBqIDwgMTYwOyBqICs9IDIpIHtcbiAgICBXaWggPSBXW2pdXG4gICAgV2lsID0gV1tqICsgMV1cblxuICAgIHZhciBtYWpoID0gbWFqKGFoLCBiaCwgY2gpXG4gICAgdmFyIG1hamwgPSBtYWooYWwsIGJsLCBjbClcblxuICAgIHZhciBzaWdtYTBoID0gc2lnbWEwKGFoLCBhbClcbiAgICB2YXIgc2lnbWEwbCA9IHNpZ21hMChhbCwgYWgpXG4gICAgdmFyIHNpZ21hMWggPSBzaWdtYTEoZWgsIGVsKVxuICAgIHZhciBzaWdtYTFsID0gc2lnbWExKGVsLCBlaClcblxuICAgIC8vIHQxID0gaCArIHNpZ21hMSArIGNoICsgS1tqXSArIFdbal1cbiAgICB2YXIgS2loID0gS1tqXVxuICAgIHZhciBLaWwgPSBLW2ogKyAxXVxuXG4gICAgdmFyIGNoaCA9IENoKGVoLCBmaCwgZ2gpXG4gICAgdmFyIGNobCA9IENoKGVsLCBmbCwgZ2wpXG5cbiAgICB2YXIgdDFsID0gKGhsICsgc2lnbWExbCkgfCAwXG4gICAgdmFyIHQxaCA9IChoaCArIHNpZ21hMWggKyBnZXRDYXJyeSh0MWwsIGhsKSkgfCAwXG4gICAgdDFsID0gKHQxbCArIGNobCkgfCAwXG4gICAgdDFoID0gKHQxaCArIGNoaCArIGdldENhcnJ5KHQxbCwgY2hsKSkgfCAwXG4gICAgdDFsID0gKHQxbCArIEtpbCkgfCAwXG4gICAgdDFoID0gKHQxaCArIEtpaCArIGdldENhcnJ5KHQxbCwgS2lsKSkgfCAwXG4gICAgdDFsID0gKHQxbCArIFdpbCkgfCAwXG4gICAgdDFoID0gKHQxaCArIFdpaCArIGdldENhcnJ5KHQxbCwgV2lsKSkgfCAwXG5cbiAgICAvLyB0MiA9IHNpZ21hMCArIG1halxuICAgIHZhciB0MmwgPSAoc2lnbWEwbCArIG1hamwpIHwgMFxuICAgIHZhciB0MmggPSAoc2lnbWEwaCArIG1hamggKyBnZXRDYXJyeSh0MmwsIHNpZ21hMGwpKSB8IDBcblxuICAgIGhoID0gZ2hcbiAgICBobCA9IGdsXG4gICAgZ2ggPSBmaFxuICAgIGdsID0gZmxcbiAgICBmaCA9IGVoXG4gICAgZmwgPSBlbFxuICAgIGVsID0gKGRsICsgdDFsKSB8IDBcbiAgICBlaCA9IChkaCArIHQxaCArIGdldENhcnJ5KGVsLCBkbCkpIHwgMFxuICAgIGRoID0gY2hcbiAgICBkbCA9IGNsXG4gICAgY2ggPSBiaFxuICAgIGNsID0gYmxcbiAgICBiaCA9IGFoXG4gICAgYmwgPSBhbFxuICAgIGFsID0gKHQxbCArIHQybCkgfCAwXG4gICAgYWggPSAodDFoICsgdDJoICsgZ2V0Q2FycnkoYWwsIHQxbCkpIHwgMFxuICB9XG5cbiAgdGhpcy5fYWwgPSAodGhpcy5fYWwgKyBhbCkgfCAwXG4gIHRoaXMuX2JsID0gKHRoaXMuX2JsICsgYmwpIHwgMFxuICB0aGlzLl9jbCA9ICh0aGlzLl9jbCArIGNsKSB8IDBcbiAgdGhpcy5fZGwgPSAodGhpcy5fZGwgKyBkbCkgfCAwXG4gIHRoaXMuX2VsID0gKHRoaXMuX2VsICsgZWwpIHwgMFxuICB0aGlzLl9mbCA9ICh0aGlzLl9mbCArIGZsKSB8IDBcbiAgdGhpcy5fZ2wgPSAodGhpcy5fZ2wgKyBnbCkgfCAwXG4gIHRoaXMuX2hsID0gKHRoaXMuX2hsICsgaGwpIHwgMFxuXG4gIHRoaXMuX2FoID0gKHRoaXMuX2FoICsgYWggKyBnZXRDYXJyeSh0aGlzLl9hbCwgYWwpKSB8IDBcbiAgdGhpcy5fYmggPSAodGhpcy5fYmggKyBiaCArIGdldENhcnJ5KHRoaXMuX2JsLCBibCkpIHwgMFxuICB0aGlzLl9jaCA9ICh0aGlzLl9jaCArIGNoICsgZ2V0Q2FycnkodGhpcy5fY2wsIGNsKSkgfCAwXG4gIHRoaXMuX2RoID0gKHRoaXMuX2RoICsgZGggKyBnZXRDYXJyeSh0aGlzLl9kbCwgZGwpKSB8IDBcbiAgdGhpcy5fZWggPSAodGhpcy5fZWggKyBlaCArIGdldENhcnJ5KHRoaXMuX2VsLCBlbCkpIHwgMFxuICB0aGlzLl9maCA9ICh0aGlzLl9maCArIGZoICsgZ2V0Q2FycnkodGhpcy5fZmwsIGZsKSkgfCAwXG4gIHRoaXMuX2doID0gKHRoaXMuX2doICsgZ2ggKyBnZXRDYXJyeSh0aGlzLl9nbCwgZ2wpKSB8IDBcbiAgdGhpcy5faGggPSAodGhpcy5faGggKyBoaCArIGdldENhcnJ5KHRoaXMuX2hsLCBobCkpIHwgMFxufVxuXG5TaGE1MTIucHJvdG90eXBlLl9oYXNoID0gZnVuY3Rpb24gKCkge1xuICB2YXIgSCA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSg2NClcblxuICBmdW5jdGlvbiB3cml0ZUludDY0QkUgKGgsIGwsIG9mZnNldCkge1xuICAgIEgud3JpdGVJbnQzMkJFKGgsIG9mZnNldClcbiAgICBILndyaXRlSW50MzJCRShsLCBvZmZzZXQgKyA0KVxuICB9XG5cbiAgd3JpdGVJbnQ2NEJFKHRoaXMuX2FoLCB0aGlzLl9hbCwgMClcbiAgd3JpdGVJbnQ2NEJFKHRoaXMuX2JoLCB0aGlzLl9ibCwgOClcbiAgd3JpdGVJbnQ2NEJFKHRoaXMuX2NoLCB0aGlzLl9jbCwgMTYpXG4gIHdyaXRlSW50NjRCRSh0aGlzLl9kaCwgdGhpcy5fZGwsIDI0KVxuICB3cml0ZUludDY0QkUodGhpcy5fZWgsIHRoaXMuX2VsLCAzMilcbiAgd3JpdGVJbnQ2NEJFKHRoaXMuX2ZoLCB0aGlzLl9mbCwgNDApXG4gIHdyaXRlSW50NjRCRSh0aGlzLl9naCwgdGhpcy5fZ2wsIDQ4KVxuICB3cml0ZUludDY0QkUodGhpcy5faGgsIHRoaXMuX2hsLCA1NilcblxuICByZXR1cm4gSFxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFNoYTUxMlxuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vLyB1bmRvY3VtZW50ZWQgY2IoKSBBUEksIG5lZWRlZCBmb3IgY29yZSwgbm90IGZvciBwdWJsaWMgQVBJXG5mdW5jdGlvbiBkZXN0cm95KGVyciwgY2IpIHtcbiAgdmFyIF90aGlzID0gdGhpcztcbiAgdmFyIHJlYWRhYmxlRGVzdHJveWVkID0gdGhpcy5fcmVhZGFibGVTdGF0ZSAmJiB0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZDtcbiAgdmFyIHdyaXRhYmxlRGVzdHJveWVkID0gdGhpcy5fd3JpdGFibGVTdGF0ZSAmJiB0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZDtcbiAgaWYgKHJlYWRhYmxlRGVzdHJveWVkIHx8IHdyaXRhYmxlRGVzdHJveWVkKSB7XG4gICAgaWYgKGNiKSB7XG4gICAgICBjYihlcnIpO1xuICAgIH0gZWxzZSBpZiAoZXJyKSB7XG4gICAgICBpZiAoIXRoaXMuX3dyaXRhYmxlU3RhdGUpIHtcbiAgICAgICAgcHJvY2Vzcy5uZXh0VGljayhlbWl0RXJyb3JOVCwgdGhpcywgZXJyKTtcbiAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkKSB7XG4gICAgICAgIHRoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgcHJvY2Vzcy5uZXh0VGljayhlbWl0RXJyb3JOVCwgdGhpcywgZXJyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyB3ZSBzZXQgZGVzdHJveWVkIHRvIHRydWUgYmVmb3JlIGZpcmluZyBlcnJvciBjYWxsYmFja3MgaW4gb3JkZXJcbiAgLy8gdG8gbWFrZSBpdCByZS1lbnRyYW5jZSBzYWZlIGluIGNhc2UgZGVzdHJveSgpIGlzIGNhbGxlZCB3aXRoaW4gY2FsbGJhY2tzXG5cbiAgaWYgKHRoaXMuX3JlYWRhYmxlU3RhdGUpIHtcbiAgICB0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZCA9IHRydWU7XG4gIH1cblxuICAvLyBpZiB0aGlzIGlzIGEgZHVwbGV4IHN0cmVhbSBtYXJrIHRoZSB3cml0YWJsZSBwYXJ0IGFzIGRlc3Ryb3llZCBhcyB3ZWxsXG4gIGlmICh0aGlzLl93cml0YWJsZVN0YXRlKSB7XG4gICAgdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQgPSB0cnVlO1xuICB9XG4gIHRoaXMuX2Rlc3Ryb3koZXJyIHx8IG51bGwsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICBpZiAoIWNiICYmIGVycikge1xuICAgICAgaWYgKCFfdGhpcy5fd3JpdGFibGVTdGF0ZSkge1xuICAgICAgICBwcm9jZXNzLm5leHRUaWNrKGVtaXRFcnJvckFuZENsb3NlTlQsIF90aGlzLCBlcnIpO1xuICAgICAgfSBlbHNlIGlmICghX3RoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkKSB7XG4gICAgICAgIF90aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZCA9IHRydWU7XG4gICAgICAgIHByb2Nlc3MubmV4dFRpY2soZW1pdEVycm9yQW5kQ2xvc2VOVCwgX3RoaXMsIGVycik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9jZXNzLm5leHRUaWNrKGVtaXRDbG9zZU5ULCBfdGhpcyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjYikge1xuICAgICAgcHJvY2Vzcy5uZXh0VGljayhlbWl0Q2xvc2VOVCwgX3RoaXMpO1xuICAgICAgY2IoZXJyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJvY2Vzcy5uZXh0VGljayhlbWl0Q2xvc2VOVCwgX3RoaXMpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiB0aGlzO1xufVxuZnVuY3Rpb24gZW1pdEVycm9yQW5kQ2xvc2VOVChzZWxmLCBlcnIpIHtcbiAgZW1pdEVycm9yTlQoc2VsZiwgZXJyKTtcbiAgZW1pdENsb3NlTlQoc2VsZik7XG59XG5mdW5jdGlvbiBlbWl0Q2xvc2VOVChzZWxmKSB7XG4gIGlmIChzZWxmLl93cml0YWJsZVN0YXRlICYmICFzZWxmLl93cml0YWJsZVN0YXRlLmVtaXRDbG9zZSkgcmV0dXJuO1xuICBpZiAoc2VsZi5fcmVhZGFibGVTdGF0ZSAmJiAhc2VsZi5fcmVhZGFibGVTdGF0ZS5lbWl0Q2xvc2UpIHJldHVybjtcbiAgc2VsZi5lbWl0KCdjbG9zZScpO1xufVxuZnVuY3Rpb24gdW5kZXN0cm95KCkge1xuICBpZiAodGhpcy5fcmVhZGFibGVTdGF0ZSkge1xuICAgIHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkID0gZmFsc2U7XG4gICAgdGhpcy5fcmVhZGFibGVTdGF0ZS5yZWFkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRlZCA9IGZhbHNlO1xuICAgIHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCA9IGZhbHNlO1xuICB9XG4gIGlmICh0aGlzLl93cml0YWJsZVN0YXRlKSB7XG4gICAgdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQgPSBmYWxzZTtcbiAgICB0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkID0gZmFsc2U7XG4gICAgdGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLl93cml0YWJsZVN0YXRlLmZpbmFsQ2FsbGVkID0gZmFsc2U7XG4gICAgdGhpcy5fd3JpdGFibGVTdGF0ZS5wcmVmaW5pc2hlZCA9IGZhbHNlO1xuICAgIHRoaXMuX3dyaXRhYmxlU3RhdGUuZmluaXNoZWQgPSBmYWxzZTtcbiAgICB0aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZCA9IGZhbHNlO1xuICB9XG59XG5mdW5jdGlvbiBlbWl0RXJyb3JOVChzZWxmLCBlcnIpIHtcbiAgc2VsZi5lbWl0KCdlcnJvcicsIGVycik7XG59XG5mdW5jdGlvbiBlcnJvck9yRGVzdHJveShzdHJlYW0sIGVycikge1xuICAvLyBXZSBoYXZlIHRlc3RzIHRoYXQgcmVseSBvbiBlcnJvcnMgYmVpbmcgZW1pdHRlZFxuICAvLyBpbiB0aGUgc2FtZSB0aWNrLCBzbyBjaGFuZ2luZyB0aGlzIGlzIHNlbXZlciBtYWpvci5cbiAgLy8gRm9yIG5vdyB3aGVuIHlvdSBvcHQtaW4gdG8gYXV0b0Rlc3Ryb3kgd2UgYWxsb3dcbiAgLy8gdGhlIGVycm9yIHRvIGJlIGVtaXR0ZWQgbmV4dFRpY2suIEluIGEgZnV0dXJlXG4gIC8vIHNlbXZlciBtYWpvciB1cGRhdGUgd2Ugc2hvdWxkIGNoYW5nZSB0aGUgZGVmYXVsdCB0byB0aGlzLlxuXG4gIHZhciByU3RhdGUgPSBzdHJlYW0uX3JlYWRhYmxlU3RhdGU7XG4gIHZhciB3U3RhdGUgPSBzdHJlYW0uX3dyaXRhYmxlU3RhdGU7XG4gIGlmIChyU3RhdGUgJiYgclN0YXRlLmF1dG9EZXN0cm95IHx8IHdTdGF0ZSAmJiB3U3RhdGUuYXV0b0Rlc3Ryb3kpIHN0cmVhbS5kZXN0cm95KGVycik7ZWxzZSBzdHJlYW0uZW1pdCgnZXJyb3InLCBlcnIpO1xufVxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGRlc3Ryb3k6IGRlc3Ryb3ksXG4gIHVuZGVzdHJveTogdW5kZXN0cm95LFxuICBlcnJvck9yRGVzdHJveTogZXJyb3JPckRlc3Ryb3lcbn07IiwiLyohXG4gKiBAZGVzY3JpcHRpb24gUmVjdXJzaXZlIG9iamVjdCBleHRlbmRpbmdcbiAqIEBhdXRob3IgVmlhY2hlc2xhdiBMb3RzbWFub3YgPGxvdHNtYW5vdjg5QGdtYWlsLmNvbT5cbiAqIEBsaWNlbnNlIE1JVFxuICpcbiAqIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMy0yMDE4IFZpYWNoZXNsYXYgTG90c21hbm92XG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZlxuICogdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpblxuICogdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0b1xuICogdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2ZcbiAqIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbyxcbiAqIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTU1xuICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SXG4gKiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVJcbiAqIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOXG4gKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gaXNTcGVjaWZpY1ZhbHVlKHZhbCkge1xuXHRyZXR1cm4gKFxuXHRcdHZhbCBpbnN0YW5jZW9mIEJ1ZmZlclxuXHRcdHx8IHZhbCBpbnN0YW5jZW9mIERhdGVcblx0XHR8fCB2YWwgaW5zdGFuY2VvZiBSZWdFeHBcblx0KSA/IHRydWUgOiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gY2xvbmVTcGVjaWZpY1ZhbHVlKHZhbCkge1xuXHRpZiAodmFsIGluc3RhbmNlb2YgQnVmZmVyKSB7XG5cdFx0dmFyIHggPSBCdWZmZXIuYWxsb2Ncblx0XHRcdD8gQnVmZmVyLmFsbG9jKHZhbC5sZW5ndGgpXG5cdFx0XHQ6IG5ldyBCdWZmZXIodmFsLmxlbmd0aCk7XG5cdFx0dmFsLmNvcHkoeCk7XG5cdFx0cmV0dXJuIHg7XG5cdH0gZWxzZSBpZiAodmFsIGluc3RhbmNlb2YgRGF0ZSkge1xuXHRcdHJldHVybiBuZXcgRGF0ZSh2YWwuZ2V0VGltZSgpKTtcblx0fSBlbHNlIGlmICh2YWwgaW5zdGFuY2VvZiBSZWdFeHApIHtcblx0XHRyZXR1cm4gbmV3IFJlZ0V4cCh2YWwpO1xuXHR9IGVsc2Uge1xuXHRcdHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCBzaXR1YXRpb24nKTtcblx0fVxufVxuXG4vKipcbiAqIFJlY3Vyc2l2ZSBjbG9uaW5nIGFycmF5LlxuICovXG5mdW5jdGlvbiBkZWVwQ2xvbmVBcnJheShhcnIpIHtcblx0dmFyIGNsb25lID0gW107XG5cdGFyci5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtLCBpbmRleCkge1xuXHRcdGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgaXRlbSAhPT0gbnVsbCkge1xuXHRcdFx0aWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcblx0XHRcdFx0Y2xvbmVbaW5kZXhdID0gZGVlcENsb25lQXJyYXkoaXRlbSk7XG5cdFx0XHR9IGVsc2UgaWYgKGlzU3BlY2lmaWNWYWx1ZShpdGVtKSkge1xuXHRcdFx0XHRjbG9uZVtpbmRleF0gPSBjbG9uZVNwZWNpZmljVmFsdWUoaXRlbSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjbG9uZVtpbmRleF0gPSBkZWVwRXh0ZW5kKHt9LCBpdGVtKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Y2xvbmVbaW5kZXhdID0gaXRlbTtcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gY2xvbmU7XG59XG5cbmZ1bmN0aW9uIHNhZmVHZXRQcm9wZXJ0eShvYmplY3QsIHByb3BlcnR5KSB7XG5cdHJldHVybiBwcm9wZXJ0eSA9PT0gJ19fcHJvdG9fXycgPyB1bmRlZmluZWQgOiBvYmplY3RbcHJvcGVydHldO1xufVxuXG4vKipcbiAqIEV4dGVuaW5nIG9iamVjdCB0aGF0IGVudGVyZWQgaW4gZmlyc3QgYXJndW1lbnQuXG4gKlxuICogUmV0dXJucyBleHRlbmRlZCBvYmplY3Qgb3IgZmFsc2UgaWYgaGF2ZSBubyB0YXJnZXQgb2JqZWN0IG9yIGluY29ycmVjdCB0eXBlLlxuICpcbiAqIElmIHlvdSB3aXNoIHRvIGNsb25lIHNvdXJjZSBvYmplY3QgKHdpdGhvdXQgbW9kaWZ5IGl0KSwganVzdCB1c2UgZW1wdHkgbmV3XG4gKiBvYmplY3QgYXMgZmlyc3QgYXJndW1lbnQsIGxpa2UgdGhpczpcbiAqICAgZGVlcEV4dGVuZCh7fSwgeW91ck9ial8xLCBbeW91ck9ial9OXSk7XG4gKi9cbnZhciBkZWVwRXh0ZW5kID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoLypvYmpfMSwgW29ial8yXSwgW29ial9OXSovKSB7XG5cdGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMSB8fCB0eXBlb2YgYXJndW1lbnRzWzBdICE9PSAnb2JqZWN0Jykge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMikge1xuXHRcdHJldHVybiBhcmd1bWVudHNbMF07XG5cdH1cblxuXHR2YXIgdGFyZ2V0ID0gYXJndW1lbnRzWzBdO1xuXG5cdC8vIGNvbnZlcnQgYXJndW1lbnRzIHRvIGFycmF5IGFuZCBjdXQgb2ZmIHRhcmdldCBvYmplY3Rcblx0dmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuXG5cdHZhciB2YWwsIHNyYywgY2xvbmU7XG5cblx0YXJncy5mb3JFYWNoKGZ1bmN0aW9uIChvYmopIHtcblx0XHQvLyBza2lwIGFyZ3VtZW50IGlmIGlzbid0IGFuIG9iamVjdCwgaXMgbnVsbCwgb3IgaXMgYW4gYXJyYXlcblx0XHRpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcgfHwgb2JqID09PSBudWxsIHx8IEFycmF5LmlzQXJyYXkob2JqKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG5cdFx0XHRzcmMgPSBzYWZlR2V0UHJvcGVydHkodGFyZ2V0LCBrZXkpOyAvLyBzb3VyY2UgdmFsdWVcblx0XHRcdHZhbCA9IHNhZmVHZXRQcm9wZXJ0eShvYmosIGtleSk7IC8vIG5ldyB2YWx1ZVxuXG5cdFx0XHQvLyByZWN1cnNpb24gcHJldmVudGlvblxuXHRcdFx0aWYgKHZhbCA9PT0gdGFyZ2V0KSB7XG5cdFx0XHRcdHJldHVybjtcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBpZiBuZXcgdmFsdWUgaXNuJ3Qgb2JqZWN0IHRoZW4ganVzdCBvdmVyd3JpdGUgYnkgbmV3IHZhbHVlXG5cdFx0XHQgKiBpbnN0ZWFkIG9mIGV4dGVuZGluZy5cblx0XHRcdCAqL1xuXHRcdFx0fSBlbHNlIGlmICh0eXBlb2YgdmFsICE9PSAnb2JqZWN0JyB8fCB2YWwgPT09IG51bGwpIHtcblx0XHRcdFx0dGFyZ2V0W2tleV0gPSB2YWw7XG5cdFx0XHRcdHJldHVybjtcblxuXHRcdFx0Ly8ganVzdCBjbG9uZSBhcnJheXMgKGFuZCByZWN1cnNpdmUgY2xvbmUgb2JqZWN0cyBpbnNpZGUpXG5cdFx0XHR9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuXHRcdFx0XHR0YXJnZXRba2V5XSA9IGRlZXBDbG9uZUFycmF5KHZhbCk7XG5cdFx0XHRcdHJldHVybjtcblxuXHRcdFx0Ly8gY3VzdG9tIGNsb25pbmcgYW5kIG92ZXJ3cml0ZSBmb3Igc3BlY2lmaWMgb2JqZWN0c1xuXHRcdFx0fSBlbHNlIGlmIChpc1NwZWNpZmljVmFsdWUodmFsKSkge1xuXHRcdFx0XHR0YXJnZXRba2V5XSA9IGNsb25lU3BlY2lmaWNWYWx1ZSh2YWwpO1xuXHRcdFx0XHRyZXR1cm47XG5cblx0XHRcdC8vIG92ZXJ3cml0ZSBieSBuZXcgdmFsdWUgaWYgc291cmNlIGlzbid0IG9iamVjdCBvciBhcnJheVxuXHRcdFx0fSBlbHNlIGlmICh0eXBlb2Ygc3JjICE9PSAnb2JqZWN0JyB8fCBzcmMgPT09IG51bGwgfHwgQXJyYXkuaXNBcnJheShzcmMpKSB7XG5cdFx0XHRcdHRhcmdldFtrZXldID0gZGVlcEV4dGVuZCh7fSwgdmFsKTtcblx0XHRcdFx0cmV0dXJuO1xuXG5cdFx0XHQvLyBzb3VyY2UgdmFsdWUgYW5kIG5ldyB2YWx1ZSBpcyBvYmplY3RzIGJvdGgsIGV4dGVuZGluZy4uLlxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGFyZ2V0W2tleV0gPSBkZWVwRXh0ZW5kKHNyYywgdmFsKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9KTtcblxuXHRyZXR1cm4gdGFyZ2V0O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIF9PYmplY3Qkc2V0UHJvdG90eXBlTztcbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsga2V5ID0gX3RvUHJvcGVydHlLZXkoa2V5KTsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5mdW5jdGlvbiBfdG9Qcm9wZXJ0eUtleShhcmcpIHsgdmFyIGtleSA9IF90b1ByaW1pdGl2ZShhcmcsIFwic3RyaW5nXCIpOyByZXR1cm4gdHlwZW9mIGtleSA9PT0gXCJzeW1ib2xcIiA/IGtleSA6IFN0cmluZyhrZXkpOyB9XG5mdW5jdGlvbiBfdG9QcmltaXRpdmUoaW5wdXQsIGhpbnQpIHsgaWYgKHR5cGVvZiBpbnB1dCAhPT0gXCJvYmplY3RcIiB8fCBpbnB1dCA9PT0gbnVsbCkgcmV0dXJuIGlucHV0OyB2YXIgcHJpbSA9IGlucHV0W1N5bWJvbC50b1ByaW1pdGl2ZV07IGlmIChwcmltICE9PSB1bmRlZmluZWQpIHsgdmFyIHJlcyA9IHByaW0uY2FsbChpbnB1dCwgaGludCB8fCBcImRlZmF1bHRcIik7IGlmICh0eXBlb2YgcmVzICE9PSBcIm9iamVjdFwiKSByZXR1cm4gcmVzOyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5cIik7IH0gcmV0dXJuIChoaW50ID09PSBcInN0cmluZ1wiID8gU3RyaW5nIDogTnVtYmVyKShpbnB1dCk7IH1cbnZhciBmaW5pc2hlZCA9IHJlcXVpcmUoJy4vZW5kLW9mLXN0cmVhbScpO1xudmFyIGtMYXN0UmVzb2x2ZSA9IFN5bWJvbCgnbGFzdFJlc29sdmUnKTtcbnZhciBrTGFzdFJlamVjdCA9IFN5bWJvbCgnbGFzdFJlamVjdCcpO1xudmFyIGtFcnJvciA9IFN5bWJvbCgnZXJyb3InKTtcbnZhciBrRW5kZWQgPSBTeW1ib2woJ2VuZGVkJyk7XG52YXIga0xhc3RQcm9taXNlID0gU3ltYm9sKCdsYXN0UHJvbWlzZScpO1xudmFyIGtIYW5kbGVQcm9taXNlID0gU3ltYm9sKCdoYW5kbGVQcm9taXNlJyk7XG52YXIga1N0cmVhbSA9IFN5bWJvbCgnc3RyZWFtJyk7XG5mdW5jdGlvbiBjcmVhdGVJdGVyUmVzdWx0KHZhbHVlLCBkb25lKSB7XG4gIHJldHVybiB7XG4gICAgdmFsdWU6IHZhbHVlLFxuICAgIGRvbmU6IGRvbmVcbiAgfTtcbn1cbmZ1bmN0aW9uIHJlYWRBbmRSZXNvbHZlKGl0ZXIpIHtcbiAgdmFyIHJlc29sdmUgPSBpdGVyW2tMYXN0UmVzb2x2ZV07XG4gIGlmIChyZXNvbHZlICE9PSBudWxsKSB7XG4gICAgdmFyIGRhdGEgPSBpdGVyW2tTdHJlYW1dLnJlYWQoKTtcbiAgICAvLyB3ZSBkZWZlciBpZiBkYXRhIGlzIG51bGxcbiAgICAvLyB3ZSBjYW4gYmUgZXhwZWN0aW5nIGVpdGhlciAnZW5kJyBvclxuICAgIC8vICdlcnJvcidcbiAgICBpZiAoZGF0YSAhPT0gbnVsbCkge1xuICAgICAgaXRlcltrTGFzdFByb21pc2VdID0gbnVsbDtcbiAgICAgIGl0ZXJba0xhc3RSZXNvbHZlXSA9IG51bGw7XG4gICAgICBpdGVyW2tMYXN0UmVqZWN0XSA9IG51bGw7XG4gICAgICByZXNvbHZlKGNyZWF0ZUl0ZXJSZXN1bHQoZGF0YSwgZmFsc2UpKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG9uUmVhZGFibGUoaXRlcikge1xuICAvLyB3ZSB3YWl0IGZvciB0aGUgbmV4dCB0aWNrLCBiZWNhdXNlIGl0IG1pZ2h0XG4gIC8vIGVtaXQgYW4gZXJyb3Igd2l0aCBwcm9jZXNzLm5leHRUaWNrXG4gIHByb2Nlc3MubmV4dFRpY2socmVhZEFuZFJlc29sdmUsIGl0ZXIpO1xufVxuZnVuY3Rpb24gd3JhcEZvck5leHQobGFzdFByb21pc2UsIGl0ZXIpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICBsYXN0UHJvbWlzZS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChpdGVyW2tFbmRlZF0pIHtcbiAgICAgICAgcmVzb2x2ZShjcmVhdGVJdGVyUmVzdWx0KHVuZGVmaW5lZCwgdHJ1ZSkpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpdGVyW2tIYW5kbGVQcm9taXNlXShyZXNvbHZlLCByZWplY3QpO1xuICAgIH0sIHJlamVjdCk7XG4gIH07XG59XG52YXIgQXN5bmNJdGVyYXRvclByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihmdW5jdGlvbiAoKSB7fSk7XG52YXIgUmVhZGFibGVTdHJlYW1Bc3luY0l0ZXJhdG9yUHJvdG90eXBlID0gT2JqZWN0LnNldFByb3RvdHlwZU9mKChfT2JqZWN0JHNldFByb3RvdHlwZU8gPSB7XG4gIGdldCBzdHJlYW0oKSB7XG4gICAgcmV0dXJuIHRoaXNba1N0cmVhbV07XG4gIH0sXG4gIG5leHQ6IGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAvLyBpZiB3ZSBoYXZlIGRldGVjdGVkIGFuIGVycm9yIGluIHRoZSBtZWFud2hpbGVcbiAgICAvLyByZWplY3Qgc3RyYWlnaHQgYXdheVxuICAgIHZhciBlcnJvciA9IHRoaXNba0Vycm9yXTtcbiAgICBpZiAoZXJyb3IgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgfVxuICAgIGlmICh0aGlzW2tFbmRlZF0pIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY3JlYXRlSXRlclJlc3VsdCh1bmRlZmluZWQsIHRydWUpKTtcbiAgICB9XG4gICAgaWYgKHRoaXNba1N0cmVhbV0uZGVzdHJveWVkKSB7XG4gICAgICAvLyBXZSBuZWVkIHRvIGRlZmVyIHZpYSBuZXh0VGljayBiZWNhdXNlIGlmIC5kZXN0cm95KGVycikgaXNcbiAgICAgIC8vIGNhbGxlZCwgdGhlIGVycm9yIHdpbGwgYmUgZW1pdHRlZCB2aWEgbmV4dFRpY2ssIGFuZFxuICAgICAgLy8gd2UgY2Fubm90IGd1YXJhbnRlZSB0aGF0IHRoZXJlIGlzIG5vIGVycm9yIGxpbmdlcmluZyBhcm91bmRcbiAgICAgIC8vIHdhaXRpbmcgdG8gYmUgZW1pdHRlZC5cbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIHByb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmIChfdGhpc1trRXJyb3JdKSB7XG4gICAgICAgICAgICByZWplY3QoX3RoaXNba0Vycm9yXSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmUoY3JlYXRlSXRlclJlc3VsdCh1bmRlZmluZWQsIHRydWUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gaWYgd2UgaGF2ZSBtdWx0aXBsZSBuZXh0KCkgY2FsbHNcbiAgICAvLyB3ZSB3aWxsIHdhaXQgZm9yIHRoZSBwcmV2aW91cyBQcm9taXNlIHRvIGZpbmlzaFxuICAgIC8vIHRoaXMgbG9naWMgaXMgb3B0aW1pemVkIHRvIHN1cHBvcnQgZm9yIGF3YWl0IGxvb3BzLFxuICAgIC8vIHdoZXJlIG5leHQoKSBpcyBvbmx5IGNhbGxlZCBvbmNlIGF0IGEgdGltZVxuICAgIHZhciBsYXN0UHJvbWlzZSA9IHRoaXNba0xhc3RQcm9taXNlXTtcbiAgICB2YXIgcHJvbWlzZTtcbiAgICBpZiAobGFzdFByb21pc2UpIHtcbiAgICAgIHByb21pc2UgPSBuZXcgUHJvbWlzZSh3cmFwRm9yTmV4dChsYXN0UHJvbWlzZSwgdGhpcykpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBmYXN0IHBhdGggbmVlZGVkIHRvIHN1cHBvcnQgbXVsdGlwbGUgdGhpcy5wdXNoKClcbiAgICAgIC8vIHdpdGhvdXQgdHJpZ2dlcmluZyB0aGUgbmV4dCgpIHF1ZXVlXG4gICAgICB2YXIgZGF0YSA9IHRoaXNba1N0cmVhbV0ucmVhZCgpO1xuICAgICAgaWYgKGRhdGEgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShjcmVhdGVJdGVyUmVzdWx0KGRhdGEsIGZhbHNlKSk7XG4gICAgICB9XG4gICAgICBwcm9taXNlID0gbmV3IFByb21pc2UodGhpc1trSGFuZGxlUHJvbWlzZV0pO1xuICAgIH1cbiAgICB0aGlzW2tMYXN0UHJvbWlzZV0gPSBwcm9taXNlO1xuICAgIHJldHVybiBwcm9taXNlO1xuICB9XG59LCBfZGVmaW5lUHJvcGVydHkoX09iamVjdCRzZXRQcm90b3R5cGVPLCBTeW1ib2wuYXN5bmNJdGVyYXRvciwgZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcztcbn0pLCBfZGVmaW5lUHJvcGVydHkoX09iamVjdCRzZXRQcm90b3R5cGVPLCBcInJldHVyblwiLCBmdW5jdGlvbiBfcmV0dXJuKCkge1xuICB2YXIgX3RoaXMyID0gdGhpcztcbiAgLy8gZGVzdHJveShlcnIsIGNiKSBpcyBhIHByaXZhdGUgQVBJXG4gIC8vIHdlIGNhbiBndWFyYW50ZWUgd2UgaGF2ZSB0aGF0IGhlcmUsIGJlY2F1c2Ugd2UgY29udHJvbCB0aGVcbiAgLy8gUmVhZGFibGUgY2xhc3MgdGhpcyBpcyBhdHRhY2hlZCB0b1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgIF90aGlzMltrU3RyZWFtXS5kZXN0cm95KG51bGwsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlc29sdmUoY3JlYXRlSXRlclJlc3VsdCh1bmRlZmluZWQsIHRydWUpKTtcbiAgICB9KTtcbiAgfSk7XG59KSwgX09iamVjdCRzZXRQcm90b3R5cGVPKSwgQXN5bmNJdGVyYXRvclByb3RvdHlwZSk7XG52YXIgY3JlYXRlUmVhZGFibGVTdHJlYW1Bc3luY0l0ZXJhdG9yID0gZnVuY3Rpb24gY3JlYXRlUmVhZGFibGVTdHJlYW1Bc3luY0l0ZXJhdG9yKHN0cmVhbSkge1xuICB2YXIgX09iamVjdCRjcmVhdGU7XG4gIHZhciBpdGVyYXRvciA9IE9iamVjdC5jcmVhdGUoUmVhZGFibGVTdHJlYW1Bc3luY0l0ZXJhdG9yUHJvdG90eXBlLCAoX09iamVjdCRjcmVhdGUgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9PYmplY3QkY3JlYXRlLCBrU3RyZWFtLCB7XG4gICAgdmFsdWU6IHN0cmVhbSxcbiAgICB3cml0YWJsZTogdHJ1ZVxuICB9KSwgX2RlZmluZVByb3BlcnR5KF9PYmplY3QkY3JlYXRlLCBrTGFzdFJlc29sdmUsIHtcbiAgICB2YWx1ZTogbnVsbCxcbiAgICB3cml0YWJsZTogdHJ1ZVxuICB9KSwgX2RlZmluZVByb3BlcnR5KF9PYmplY3QkY3JlYXRlLCBrTGFzdFJlamVjdCwge1xuICAgIHZhbHVlOiBudWxsLFxuICAgIHdyaXRhYmxlOiB0cnVlXG4gIH0pLCBfZGVmaW5lUHJvcGVydHkoX09iamVjdCRjcmVhdGUsIGtFcnJvciwge1xuICAgIHZhbHVlOiBudWxsLFxuICAgIHdyaXRhYmxlOiB0cnVlXG4gIH0pLCBfZGVmaW5lUHJvcGVydHkoX09iamVjdCRjcmVhdGUsIGtFbmRlZCwge1xuICAgIHZhbHVlOiBzdHJlYW0uX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCxcbiAgICB3cml0YWJsZTogdHJ1ZVxuICB9KSwgX2RlZmluZVByb3BlcnR5KF9PYmplY3QkY3JlYXRlLCBrSGFuZGxlUHJvbWlzZSwge1xuICAgIHZhbHVlOiBmdW5jdGlvbiB2YWx1ZShyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHZhciBkYXRhID0gaXRlcmF0b3Jba1N0cmVhbV0ucmVhZCgpO1xuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgaXRlcmF0b3Jba0xhc3RQcm9taXNlXSA9IG51bGw7XG4gICAgICAgIGl0ZXJhdG9yW2tMYXN0UmVzb2x2ZV0gPSBudWxsO1xuICAgICAgICBpdGVyYXRvcltrTGFzdFJlamVjdF0gPSBudWxsO1xuICAgICAgICByZXNvbHZlKGNyZWF0ZUl0ZXJSZXN1bHQoZGF0YSwgZmFsc2UpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGl0ZXJhdG9yW2tMYXN0UmVzb2x2ZV0gPSByZXNvbHZlO1xuICAgICAgICBpdGVyYXRvcltrTGFzdFJlamVjdF0gPSByZWplY3Q7XG4gICAgICB9XG4gICAgfSxcbiAgICB3cml0YWJsZTogdHJ1ZVxuICB9KSwgX09iamVjdCRjcmVhdGUpKTtcbiAgaXRlcmF0b3Jba0xhc3RQcm9taXNlXSA9IG51bGw7XG4gIGZpbmlzaGVkKHN0cmVhbSwgZnVuY3Rpb24gKGVycikge1xuICAgIGlmIChlcnIgJiYgZXJyLmNvZGUgIT09ICdFUlJfU1RSRUFNX1BSRU1BVFVSRV9DTE9TRScpIHtcbiAgICAgIHZhciByZWplY3QgPSBpdGVyYXRvcltrTGFzdFJlamVjdF07XG4gICAgICAvLyByZWplY3QgaWYgd2UgYXJlIHdhaXRpbmcgZm9yIGRhdGEgaW4gdGhlIFByb21pc2VcbiAgICAgIC8vIHJldHVybmVkIGJ5IG5leHQoKSBhbmQgc3RvcmUgdGhlIGVycm9yXG4gICAgICBpZiAocmVqZWN0ICE9PSBudWxsKSB7XG4gICAgICAgIGl0ZXJhdG9yW2tMYXN0UHJvbWlzZV0gPSBudWxsO1xuICAgICAgICBpdGVyYXRvcltrTGFzdFJlc29sdmVdID0gbnVsbDtcbiAgICAgICAgaXRlcmF0b3Jba0xhc3RSZWplY3RdID0gbnVsbDtcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICB9XG4gICAgICBpdGVyYXRvcltrRXJyb3JdID0gZXJyO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgcmVzb2x2ZSA9IGl0ZXJhdG9yW2tMYXN0UmVzb2x2ZV07XG4gICAgaWYgKHJlc29sdmUgIT09IG51bGwpIHtcbiAgICAgIGl0ZXJhdG9yW2tMYXN0UHJvbWlzZV0gPSBudWxsO1xuICAgICAgaXRlcmF0b3Jba0xhc3RSZXNvbHZlXSA9IG51bGw7XG4gICAgICBpdGVyYXRvcltrTGFzdFJlamVjdF0gPSBudWxsO1xuICAgICAgcmVzb2x2ZShjcmVhdGVJdGVyUmVzdWx0KHVuZGVmaW5lZCwgdHJ1ZSkpO1xuICAgIH1cbiAgICBpdGVyYXRvcltrRW5kZWRdID0gdHJ1ZTtcbiAgfSk7XG4gIHN0cmVhbS5vbigncmVhZGFibGUnLCBvblJlYWRhYmxlLmJpbmQobnVsbCwgaXRlcmF0b3IpKTtcbiAgcmV0dXJuIGl0ZXJhdG9yO1xufTtcbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlUmVhZGFibGVTdHJlYW1Bc3luY0l0ZXJhdG9yOyIsIm1vZHVsZS5leHBvcnRzID0gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9iYXNlNjRfanNfZjE0NWViNmVfXzsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHRmdW5jdGlvbigpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcblx0XHRmdW5jdGlvbigpIHsgcmV0dXJuIG1vZHVsZTsgfTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIGRlZmluaXRpb24pIHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5nID0gKGZ1bmN0aW9uKCkge1xuXHRpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKSByZXR1cm4gZ2xvYmFsVGhpcztcblx0dHJ5IHtcblx0XHRyZXR1cm4gdGhpcyB8fCBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcblx0fVxufSkoKTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmosIHByb3ApIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApOyB9IiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJDb21wb25lbnRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9fLkNvbXBvbmVudDsgfSwgW1wiUHVyZUNvbXBvbmVudFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X18uUHVyZUNvbXBvbmVudDsgfSwgW1wiY3JlYXRlQ29udGV4dFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X18uY3JlYXRlQ29udGV4dDsgfSwgW1wiY3JlYXRlRWxlbWVudFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X18uY3JlYXRlRWxlbWVudDsgfSwgW1wiZGVmYXVsdFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X19bXCJkZWZhdWx0XCJdOyB9LCBbXCJmb3J3YXJkUmVmXCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3RfXy5mb3J3YXJkUmVmOyB9LCBbXCJ1c2VDYWxsYmFja1wiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X18udXNlQ2FsbGJhY2s7IH0sIFtcInVzZUNvbnRleHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9fLnVzZUNvbnRleHQ7IH0sIFtcInVzZUVmZmVjdFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X18udXNlRWZmZWN0OyB9LCBbXCJ1c2VNZW1vXCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3RfXy51c2VNZW1vOyB9LCBbXCJ1c2VSZWZcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9fLnVzZVJlZjsgfSwgW1widXNlU3RhdGVcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9fLnVzZVN0YXRlOyB9IH0pOyIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImFwcGx5TWlkZGxld2FyZVwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlZHV4X18uYXBwbHlNaWRkbGV3YXJlOyB9LCBbXCJiaW5kQWN0aW9uQ3JlYXRvcnNcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWR1eF9fLmJpbmRBY3Rpb25DcmVhdG9yczsgfSwgW1wiY29tcG9zZVwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlZHV4X18uY29tcG9zZTsgfSwgW1wiY3JlYXRlU3RvcmVcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWR1eF9fLmNyZWF0ZVN0b3JlOyB9IH0pOyIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcIkxpc3RcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9pbW11dGFibGVfXy5MaXN0OyB9LCBbXCJNYXBcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9pbW11dGFibGVfXy5NYXA7IH0sIFtcIk9yZGVyZWRNYXBcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9pbW11dGFibGVfXy5PcmRlcmVkTWFwOyB9LCBbXCJTZXFcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9pbW11dGFibGVfXy5TZXE7IH0sIFtcIlNldFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX2ltbXV0YWJsZV9fLlNldDsgfSwgW1wiZGVmYXVsdFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX2ltbXV0YWJsZV9fW1wiZGVmYXVsdFwiXTsgfSwgW1wiZnJvbUpTXCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfaW1tdXRhYmxlX18uZnJvbUpTOyB9IH0pOyIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImNvbWJpbmVSZWR1Y2Vyc1wiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlZHV4X2ltbXV0YWJsZV80NDZjOWY4Ml9fLmNvbWJpbmVSZWR1Y2VyczsgfSB9KTsiLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJzZXJpYWxpemVFcnJvclwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3NlcmlhbGl6ZV9lcnJvcl81ZjJkZjNlNV9fLnNlcmlhbGl6ZUVycm9yOyB9IH0pOyIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImRlZmF1bHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfbWVyZ2VfY2Y5OTM3NWFfX1tcImRlZmF1bHRcIl07IH0gfSk7IiwiaW1wb3J0IHsgc2VyaWFsaXplRXJyb3IgfSBmcm9tIFwic2VyaWFsaXplLWVycm9yXCJcblxuZXhwb3J0IGNvbnN0IE5FV19USFJPV05fRVJSID0gXCJlcnJfbmV3X3Rocm93bl9lcnJcIlxuZXhwb3J0IGNvbnN0IE5FV19USFJPV05fRVJSX0JBVENIID0gXCJlcnJfbmV3X3Rocm93bl9lcnJfYmF0Y2hcIlxuZXhwb3J0IGNvbnN0IE5FV19TUEVDX0VSUiA9IFwiZXJyX25ld19zcGVjX2VyclwiXG5leHBvcnQgY29uc3QgTkVXX1NQRUNfRVJSX0JBVENIID0gXCJlcnJfbmV3X3NwZWNfZXJyX2JhdGNoXCJcbmV4cG9ydCBjb25zdCBORVdfQVVUSF9FUlIgPSBcImVycl9uZXdfYXV0aF9lcnJcIlxuZXhwb3J0IGNvbnN0IENMRUFSID0gXCJlcnJfY2xlYXJcIlxuZXhwb3J0IGNvbnN0IENMRUFSX0JZID0gXCJlcnJfY2xlYXJfYnlcIlxuXG5leHBvcnQgZnVuY3Rpb24gbmV3VGhyb3duRXJyKGVycikge1xuICByZXR1cm4ge1xuICAgICAgdHlwZTogTkVXX1RIUk9XTl9FUlIsXG4gICAgICBwYXlsb2FkOiBzZXJpYWxpemVFcnJvcihlcnIpXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5ld1Rocm93bkVyckJhdGNoKGVycm9ycykge1xuICByZXR1cm4ge1xuICAgICAgdHlwZTogTkVXX1RIUk9XTl9FUlJfQkFUQ0gsXG4gICAgICBwYXlsb2FkOiBlcnJvcnNcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbmV3U3BlY0VycihlcnIpIHtcbiAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IE5FV19TUEVDX0VSUixcbiAgICAgIHBheWxvYWQ6IGVyclxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBuZXdTcGVjRXJyQmF0Y2goZXJyQXJyYXkpIHtcbiAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IE5FV19TUEVDX0VSUl9CQVRDSCxcbiAgICAgIHBheWxvYWQ6IGVyckFycmF5XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5ld0F1dGhFcnIoZXJyKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogTkVXX0FVVEhfRVJSLFxuICAgIHBheWxvYWQ6IGVyclxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhcihmaWx0ZXIgPSB7fSkge1xuICAvLyBmaWx0ZXIgbG9va3MgbGlrZToge3R5cGU6ICdzcGVjJ30sIHtzb3VyY2U6ICdwYXJzZXInfVxuICByZXR1cm4ge1xuICAgIHR5cGU6IENMRUFSLFxuICAgIHBheWxvYWQ6IGZpbHRlclxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhckJ5KGZpbHRlciA9ICgpID0+IHRydWUpIHtcbiAgLy8gZmlsdGVyIGlzIGEgZnVuY3Rpb25cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBDTEVBUl9CWSxcbiAgICBwYXlsb2FkOiBmaWx0ZXJcbiAgfVxufVxuIiwiZnVuY3Rpb24gbWFrZVdpbmRvdygpIHtcbiAgdmFyIHdpbiA9IHtcbiAgICBsb2NhdGlvbjoge30sXG4gICAgaGlzdG9yeToge30sXG4gICAgb3BlbjogKCkgPT4ge30sXG4gICAgY2xvc2U6ICgpID0+IHt9LFxuICAgIEZpbGU6IGZ1bmN0aW9uKCkge30sXG4gICAgRm9ybURhdGE6IGZ1bmN0aW9uKCkge30sXG4gIH1cblxuICBpZih0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHdpblxuICB9XG5cbiAgdHJ5IHtcbiAgICB3aW4gPSB3aW5kb3dcbiAgICB2YXIgcHJvcHMgPSBbXCJGaWxlXCIsIFwiQmxvYlwiLCBcIkZvcm1EYXRhXCJdXG4gICAgZm9yICh2YXIgcHJvcCBvZiBwcm9wcykge1xuICAgICAgaWYgKHByb3AgaW4gd2luZG93KSB7XG4gICAgICAgIHdpbltwcm9wXSA9IHdpbmRvd1twcm9wXVxuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCggZSApIHtcbiAgICBjb25zb2xlLmVycm9yKGUpXG4gIH1cblxuICByZXR1cm4gd2luXG59XG5cbmV4cG9ydCBkZWZhdWx0IG1ha2VXaW5kb3coKVxuIiwidmFyIHggPSBmdW5jdGlvbih5KSB7XG5cdHZhciB4ID0ge307IF9fd2VicGFja19yZXF1aXJlX18uZCh4LCB5KTsgcmV0dXJuIHhcbn0gXG52YXIgeSA9IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgeyByZXR1cm4geDsgfTsgfVxudmFyIF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wiZGVmYXVsdFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX2xvZGFzaF9tZW1vaXplXzJiNWJjNDc3X19bXCJkZWZhdWx0XCJdOyB9IH0pOyIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7ICB9KTsiLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyAgfSk7IiwidmFyIHggPSBmdW5jdGlvbih5KSB7XG5cdHZhciB4ID0ge307IF9fd2VicGFja19yZXF1aXJlX18uZCh4LCB5KTsgcmV0dXJuIHhcbn0gXG52YXIgeSA9IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgeyByZXR1cm4geDsgfTsgfVxudmFyIF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wiZGVmYXVsdFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX2xvZGFzaF9maW5kX2U4ZWNjMmNiX19bXCJkZWZhdWx0XCJdOyB9IH0pOyIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImRlZmF1bHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfc29tZV81Y2Q0NzgwOV9fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfbG9kYXNoX2VxX2I0MWI4MjNhX19bXCJkZWZhdWx0XCJdOyB9IH0pOyIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImRlZmF1bHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfaXNGdW5jdGlvbl9mOTBiMjBkNl9fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfY3NzX2VzY2FwZV8yZDMwMTQ0OF9fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5cbmltcG9ydCBJbSBmcm9tIFwiaW1tdXRhYmxlXCJcblxuY29uc3Qgc3dhZ2dlcjJTY2hlbWFLZXlzID0gSW0uU2V0Lm9mKFxuICBcInR5cGVcIixcbiAgXCJmb3JtYXRcIixcbiAgXCJpdGVtc1wiLFxuICBcImRlZmF1bHRcIixcbiAgXCJtYXhpbXVtXCIsXG4gIFwiZXhjbHVzaXZlTWF4aW11bVwiLFxuICBcIm1pbmltdW1cIixcbiAgXCJleGNsdXNpdmVNaW5pbXVtXCIsXG4gIFwibWF4TGVuZ3RoXCIsXG4gIFwibWluTGVuZ3RoXCIsXG4gIFwicGF0dGVyblwiLFxuICBcIm1heEl0ZW1zXCIsXG4gIFwibWluSXRlbXNcIixcbiAgXCJ1bmlxdWVJdGVtc1wiLFxuICBcImVudW1cIixcbiAgXCJtdWx0aXBsZU9mXCJcbilcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBQYXJhbWV0ZXJTY2hlbWFEZXNjcmlwdG9yXG4gKiBAcHJvcGVydHkge0ltbXV0YWJsZS5NYXB9IHNjaGVtYSAtIHRoZSBwYXJhbWV0ZXIgc2NoZW1hXG4gKiBAcHJvcGVydHkge3N0cmluZ3xudWxsfSBwYXJhbWV0ZXJDb250ZW50TWVkaWFUeXBlIC0gdGhlIGVmZmVjdGl2ZSBtZWRpYSB0eXBlLCBmb3IgYGNvbnRlbnRgLWJhc2VkIE9wZW5BUEkgMy4wIFBhcmFtZXRlcnMsIG9yIGBudWxsYCBvdGhlcndpc2VcbiAqL1xuXG4vKipcbiAqIEdldCB0aGUgZWZmZWN0aXZlIHNjaGVtYSB2YWx1ZSBmb3IgYSBwYXJhbWV0ZXIsIG9yIGFuIGVtcHR5IEltbXV0YWJsZS5NYXAgaWZcbiAqIG5vIHN1aXRhYmxlIHNjaGVtYSBjYW4gYmUgZm91bmQuXG4gKlxuICogU3VwcG9ydHMgT3BlbkFQSSAzLjAgYFBhcmFtZXRlci5jb250ZW50YCBwcmlvcml0eSAtLSBzaW5jZSBhIFBhcmFtZXRlciBPYmplY3RcbiAqIGNhbm5vdCBoYXZlIGJvdGggYHNjaGVtYWAgYW5kIGBjb250ZW50YCwgdGhpcyBmdW5jdGlvbiBpZ25vcmVzIGBzY2hlbWFgIHdoZW5cbiAqIGBjb250ZW50YCBpcyBwcmVzZW50LlxuICpcbiAqIEBwYXJhbSB7SW1tdXRhYmxlLk1hcH0gcGFyYW1ldGVyIFRoZSBwYXJhbWV0ZXIgdG8gaWRlbnRpZnkgYSBzY2hlbWEgZm9yXG4gKiBAcGFyYW0ge29iamVjdH0gY29uZmlnXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGNvbmZpZy5pc09BUzMgV2hldGhlciB0aGUgcGFyYW1ldGVyIGlzIGZyb20gYW4gT3BlbkFQSSAyLjBcbiAqIG9yIE9wZW5BUEkgMy4wIGRlZmluaXRpb25cbiAqIEByZXR1cm4ge1BhcmFtZXRlclNjaGVtYURlc2NyaXB0b3J9IEluZm9ybWF0aW9uIGFib3V0IHRoZSBwYXJhbWV0ZXIgc2NoZW1hXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFBhcmFtZXRlclNjaGVtYShwYXJhbWV0ZXIsIHsgaXNPQVMzIH0gPSB7fSkge1xuICAvLyBSZXR1cm4gZW1wdHkgTWFwIGlmIGBwYXJhbWV0ZXJgIGlzbid0IGEgTWFwXG4gIGlmICghSW0uTWFwLmlzTWFwKHBhcmFtZXRlcikpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2NoZW1hOiBJbS5NYXAoKSxcbiAgICAgIHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGU6IG51bGwsXG4gICAgfVxuICB9XG5cbiAgaWYgKCFpc09BUzMpIHtcbiAgICAvLyBTd2FnZ2VyIDIuMFxuICAgIGlmIChwYXJhbWV0ZXIuZ2V0KFwiaW5cIikgPT09IFwiYm9keVwiKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzY2hlbWE6IHBhcmFtZXRlci5nZXQoXCJzY2hlbWFcIiwgSW0uTWFwKCkpLFxuICAgICAgICBwYXJhbWV0ZXJDb250ZW50TWVkaWFUeXBlOiBudWxsLFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzY2hlbWE6IHBhcmFtZXRlci5maWx0ZXIoKHYsIGspID0+IHN3YWdnZXIyU2NoZW1hS2V5cy5pbmNsdWRlcyhrKSksXG4gICAgICAgIHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGU6IG51bGwsXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgd2UndmUgcmVhY2hlZCBoZXJlLCB0aGUgcGFyYW1ldGVyIGlzIE9wZW5BUEkgMy4wXG5cbiAgaWYgKHBhcmFtZXRlci5nZXQoXCJjb250ZW50XCIpKSB7XG4gICAgY29uc3QgcGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZXMgPSBwYXJhbWV0ZXJcbiAgICAgIC5nZXQoXCJjb250ZW50XCIsIEltLk1hcCh7fSkpXG4gICAgICAua2V5U2VxKClcblxuICAgIGNvbnN0IHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGUgPSBwYXJhbWV0ZXJDb250ZW50TWVkaWFUeXBlcy5maXJzdCgpXG5cbiAgICByZXR1cm4ge1xuICAgICAgc2NoZW1hOiBwYXJhbWV0ZXIuZ2V0SW4oXG4gICAgICAgIFtcImNvbnRlbnRcIiwgcGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZSwgXCJzY2hlbWFcIl0sXG4gICAgICAgIEltLk1hcCgpXG4gICAgICApLFxuICAgICAgcGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZSxcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHNjaGVtYTogcGFyYW1ldGVyLmdldChcInNjaGVtYVwiKVxuICAgICAgPyBwYXJhbWV0ZXIuZ2V0KFwic2NoZW1hXCIsIEltLk1hcCgpKVxuICAgICAgOiBJbS5NYXAoKSxcbiAgICBwYXJhbWV0ZXJDb250ZW50TWVkaWFUeXBlOiBudWxsLFxuICB9XG59XG4iLCIvKlxuICBBVFRFTlRJT04hIFRoaXMgZmlsZSAoYnV0IG5vdCB0aGUgZnVuY3Rpb25zIHdpdGhpbikgaXMgZGVwcmVjYXRlZC5cblxuICBZb3Ugc2hvdWxkIHByb2JhYmx5IGFkZCBhIG5ldyBmaWxlIHRvIGAuL2hlbHBlcnMvYCBpbnN0ZWFkIG9mIGFkZGluZyBhIG5ld1xuICBmdW5jdGlvbiBoZXJlLlxuXG4gIE9uZS1mdW5jdGlvbi1wZXItZmlsZSBpcyBhIGJldHRlciBwYXR0ZXJuIHRoYW4gd2hhdCB3ZSBoYXZlIGhlcmUuXG5cbiAgSWYgeW91J3JlIHJlZmFjdG9yaW5nIHNvbWV0aGluZyBpbiBoZXJlLCBmZWVsIGZyZWUgdG8gYnJlYWsgaXQgb3V0IHRvIGEgZmlsZVxuICBpbiBgLi9oZWxwZXJzYCBpZiB5b3UgaGF2ZSB0aGUgdGltZS5cbiovXG5pbXBvcnQgSW0sIHsgZnJvbUpTLCBNYXAsIFNldCB9IGZyb20gXCJpbW11dGFibGVcIlxuaW1wb3J0IGNhbWVsQ2FzZSBmcm9tIFwibG9kYXNoL2NhbWVsQ2FzZVwiXG5pbXBvcnQgdXBwZXJGaXJzdCBmcm9tIFwibG9kYXNoL3VwcGVyRmlyc3RcIlxuaW1wb3J0IF9tZW1vaXplIGZyb20gXCJsb2Rhc2gvbWVtb2l6ZVwiXG5pbXBvcnQgZmluZCBmcm9tIFwibG9kYXNoL2ZpbmRcIlxuaW1wb3J0IHNvbWUgZnJvbSBcImxvZGFzaC9zb21lXCJcbmltcG9ydCBlcSBmcm9tIFwibG9kYXNoL2VxXCJcbmltcG9ydCBpc0Z1bmN0aW9uIGZyb20gXCJsb2Rhc2gvaXNGdW5jdGlvblwiXG5pbXBvcnQgY3NzRXNjYXBlIGZyb20gXCJjc3MuZXNjYXBlXCJcbmltcG9ydCByYW5kb21CeXRlcyBmcm9tIFwicmFuZG9tYnl0ZXNcIlxuaW1wb3J0IHNoYUpzIGZyb20gXCJzaGEuanNcIlxuaW1wb3J0IHdpbiBmcm9tIFwiY29yZS93aW5kb3dcIlxuaW1wb3J0IGdldFBhcmFtZXRlclNjaGVtYSBmcm9tIFwiY29yZS91dGlscy9nZXQtcGFyYW1ldGVyLXNjaGVtYVwiXG5cblxuY29uc3QgREVGQVVMVF9SRVNQT05TRV9LRVkgPSBcImRlZmF1bHRcIlxuXG5leHBvcnQgY29uc3QgaXNJbW11dGFibGUgPSAobWF5YmUpID0+IEltLkl0ZXJhYmxlLmlzSXRlcmFibGUobWF5YmUpXG5cbmV4cG9ydCBjb25zdCBpbW11dGFibGVUb0pTID0gKHZhbHVlKSA9PiBpc0ltbXV0YWJsZSh2YWx1ZSkgPyB2YWx1ZS50b0pTKCkgOiB2YWx1ZVxuXG5leHBvcnQgZnVuY3Rpb24gb2JqZWN0aWZ5ICh0aGluZykge1xuICBpZighaXNPYmplY3QodGhpbmcpKVxuICAgIHJldHVybiB7fVxuXG4gIHJldHVybiBpbW11dGFibGVUb0pTKHRoaW5nKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlpZnkgKHRoaW5nKSB7XG4gIGlmKCF0aGluZylcbiAgICByZXR1cm4gW11cblxuICBpZih0aGluZy50b0FycmF5KVxuICAgIHJldHVybiB0aGluZy50b0FycmF5KClcblxuICByZXR1cm4gbm9ybWFsaXplQXJyYXkodGhpbmcpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcm9tSlNPcmRlcmVkKGpzKSB7XG4gIGlmIChpc0ltbXV0YWJsZShqcykpIHtcbiAgICByZXR1cm4ganMgLy8gQ2FuJ3QgZG8gbXVjaCBoZXJlXG4gIH1cbiAgaWYgKGpzIGluc3RhbmNlb2Ygd2luLkZpbGUpIHtcbiAgICByZXR1cm4ganNcbiAgfVxuICBpZiAoIWlzT2JqZWN0KGpzKSkge1xuICAgIHJldHVybiBqc1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KGpzKSkge1xuICAgIHJldHVybiBJbS5TZXEoanMpLm1hcChmcm9tSlNPcmRlcmVkKS50b0xpc3QoKVxuICB9XG4gIGlmIChpc0Z1bmN0aW9uKGpzLmVudHJpZXMpKSB7XG4gICAgLy8gaGFuZGxlIG11bHRpcGFydC9mb3JtLWRhdGFcbiAgICBjb25zdCBvYmpXaXRoSGFzaGVkS2V5cyA9IGNyZWF0ZU9ialdpdGhIYXNoZWRLZXlzKGpzKVxuICAgIHJldHVybiBJbS5PcmRlcmVkTWFwKG9ialdpdGhIYXNoZWRLZXlzKS5tYXAoZnJvbUpTT3JkZXJlZClcbiAgfVxuICByZXR1cm4gSW0uT3JkZXJlZE1hcChqcykubWFwKGZyb21KU09yZGVyZWQpXG59XG5cbi8qKlxuICogQ29udmVydCBhIEZvcm1EYXRhIG9iamVjdCBpbnRvIHBsYWluIG9iamVjdFxuICogQXBwZW5kIGEgaGFzaElkeCBhbmQgY291bnRlciB0byB0aGUga2V5IG5hbWUsIGlmIG11bHRpcGxlIGV4aXN0c1xuICogaWYgc2luZ2xlLCBrZXkgbmFtZSA9IDxvcmlnaW5hbD5cbiAqIGlmIG11bHRpcGxlLCBrZXkgbmFtZSA9IDxvcmlnaW5hbD48aGFzaElkeD48Y291bnQ+XG4gKiBAZXhhbXBsZSA8Y2FwdGlvbj5zaW5nbGUgZW50cnkgZm9yIHZlZ2V0YWJsZTwvY2FwdGlvbj5cbiAqIGZkT2JqLmVudHJpZXMudmVndGFibGVzOiBcImNhcnJvdFwiXG4gKiAvLyByZXR1cm5zIG5ld09iai52ZWdldGFibGVzIDogXCJjYXJyb3RcIlxuICogQGV4YW1wbGUgPGNhcHRpb24+bXVsdGlwbGUgZW50cmllcyBmb3IgZnJ1aXRzW108L2NhcHRpb24+XG4gKiBmZE9iai5lbnRyaWVzLmZydWl0c1tdOiBcImFwcGxlXCJcbiAqIC8vIHJldHVybnMgbmV3T2JqLmZydWl0c1tdXyoqW10xIDogXCJhcHBsZVwiXG4gKiBmZE9iai5lbnRyaWVzLmZydWl0c1tdOiBcImJhbmFuYVwiXG4gKiAvLyByZXR1cm5zIG5ld09iai5mcnVpdHNbXV8qKltdMiA6IFwiYmFuYW5hXCJcbiAqIGZkT2JqLmVudHJpZXMuZnJ1aXRzW106IFwiZ3JhcGVcIlxuICogLy8gcmV0dXJucyBuZXdPYmouZnJ1aXRzW11fKipbXTMgOiBcImdyYXBlXCJcbiAqIEBwYXJhbSB7Rm9ybURhdGF9IGZkT2JqIC0gYSBGb3JtRGF0YSBvYmplY3RcbiAqIEByZXR1cm4ge09iamVjdH0gLSBhIHBsYWluIG9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlT2JqV2l0aEhhc2hlZEtleXMgKGZkT2JqKSB7XG4gIGlmICghaXNGdW5jdGlvbihmZE9iai5lbnRyaWVzKSkge1xuICAgIHJldHVybiBmZE9iaiAvLyBub3QgYSBGb3JtRGF0YSBvYmplY3Qgd2l0aCBpdGVyYWJsZVxuICB9XG4gIGNvbnN0IG5ld09iaiA9IHt9XG4gIGNvbnN0IGhhc2hJZHggPSBcIl8qKltdXCIgLy8gb3VyIGludGVybmFsIGlkZW50aWZpZXJcbiAgY29uc3QgdHJhY2tLZXlzID0ge31cbiAgZm9yIChsZXQgcGFpciBvZiBmZE9iai5lbnRyaWVzKCkpIHtcbiAgICBpZiAoIW5ld09ialtwYWlyWzBdXSAmJiAhKHRyYWNrS2V5c1twYWlyWzBdXSAmJiB0cmFja0tleXNbcGFpclswXV0uY29udGFpbnNNdWx0aXBsZSkpIHtcbiAgICAgIG5ld09ialtwYWlyWzBdXSA9IHBhaXJbMV0gLy8gZmlyc3Qga2V5IG5hbWU6IG5vIGhhc2ggcmVxdWlyZWRcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCF0cmFja0tleXNbcGFpclswXV0pIHtcbiAgICAgICAgLy8gaW5pdGlhdGUgdHJhY2tpbmcga2V5IGZvciBtdWx0aXBsZVxuICAgICAgICB0cmFja0tleXNbcGFpclswXV0gPSB7XG4gICAgICAgICAgY29udGFpbnNNdWx0aXBsZTogdHJ1ZSxcbiAgICAgICAgICBsZW5ndGg6IDFcbiAgICAgICAgfVxuICAgICAgICAvLyBcInJlYXNzaWduXCIgZmlyc3QgcGFpciB0byBtYXRjaGluZyBoYXNoZWQgZm9ybWF0IGZvciBtdWx0aXBsZVxuICAgICAgICBsZXQgaGFzaGVkS2V5Rmlyc3QgPSBgJHtwYWlyWzBdfSR7aGFzaElkeH0ke3RyYWNrS2V5c1twYWlyWzBdXS5sZW5ndGh9YFxuICAgICAgICBuZXdPYmpbaGFzaGVkS2V5Rmlyc3RdID0gbmV3T2JqW3BhaXJbMF1dXG4gICAgICAgIC8vIHJlbW92ZSBub24taGFzaGVkIGtleSBvZiBtdWx0aXBsZVxuICAgICAgICBkZWxldGUgbmV3T2JqW3BhaXJbMF1dIC8vIGZpcnN0XG4gICAgICB9XG4gICAgICB0cmFja0tleXNbcGFpclswXV0ubGVuZ3RoICs9IDFcbiAgICAgIGxldCBoYXNoZWRLZXlDdXJyZW50ID0gYCR7cGFpclswXX0ke2hhc2hJZHh9JHt0cmFja0tleXNbcGFpclswXV0ubGVuZ3RofWBcbiAgICAgIG5ld09ialtoYXNoZWRLZXlDdXJyZW50XSA9IHBhaXJbMV1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ld09ialxufVxuXG5leHBvcnQgZnVuY3Rpb24gYmluZFRvU3RhdGUob2JqLCBzdGF0ZSkge1xuICB2YXIgbmV3T2JqID0ge31cbiAgT2JqZWN0LmtleXMob2JqKVxuICAgIC5maWx0ZXIoa2V5ID0+IHR5cGVvZiBvYmpba2V5XSA9PT0gXCJmdW5jdGlvblwiKVxuICAgIC5mb3JFYWNoKGtleSA9PiBuZXdPYmpba2V5XSA9IG9ialtrZXldLmJpbmQobnVsbCwgc3RhdGUpKVxuICByZXR1cm4gbmV3T2JqXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVBcnJheShhcnIpIHtcbiAgaWYoQXJyYXkuaXNBcnJheShhcnIpKVxuICAgIHJldHVybiBhcnJcbiAgcmV0dXJuIFthcnJdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ZuKGZuKSB7XG4gIHJldHVybiB0eXBlb2YgZm4gPT09IFwiZnVuY3Rpb25cIlxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3Qob2JqKSB7XG4gIHJldHVybiAhIW9iaiAmJiB0eXBlb2Ygb2JqID09PSBcIm9iamVjdFwiXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmModGhpbmcpIHtcbiAgcmV0dXJuIHR5cGVvZih0aGluZykgPT09IFwiZnVuY3Rpb25cIlxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBcnJheSh0aGluZykge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGluZylcbn1cblxuLy8gSSd2ZSBjaGFuZ2VkIG1lbW9pemUgbGlicyBtb3JlIHRoYW4gb25jZSwgc28gSSdtIHVzaW5nIHRoaXMgYSB3YXkgdG8gbWFrZSB0aGF0IHNpbXBsZXJcbmV4cG9ydCBjb25zdCBtZW1vaXplID0gX21lbW9pemVcblxuZXhwb3J0IGZ1bmN0aW9uIG9iak1hcChvYmosIGZuKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZSgobmV3T2JqLCBrZXkpID0+IHtcbiAgICBuZXdPYmpba2V5XSA9IGZuKG9ialtrZXldLCBrZXkpXG4gICAgcmV0dXJuIG5ld09ialxuICB9LCB7fSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9ialJlZHVjZShvYmosIGZuKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZSgobmV3T2JqLCBrZXkpID0+IHtcbiAgICBsZXQgcmVzID0gZm4ob2JqW2tleV0sIGtleSlcbiAgICBpZihyZXMgJiYgdHlwZW9mIHJlcyA9PT0gXCJvYmplY3RcIilcbiAgICAgIE9iamVjdC5hc3NpZ24obmV3T2JqLCByZXMpXG4gICAgcmV0dXJuIG5ld09ialxuICB9LCB7fSlcbn1cblxuLy8gUmVkdXggbWlkZGxld2FyZSB0aGF0IGV4cG9zZXMgdGhlIHN5c3RlbSB0byBhc3luYyBhY3Rpb25zIChsaWtlIHJlZHV4LXRodW5rLCBidXQgd2l0aCBvdXQgc3lzdGVtIGluc3RlYWQgb2YgKGRpc3BhdGNoLCBnZXRTdGF0ZSlcbmV4cG9ydCBmdW5jdGlvbiBzeXN0ZW1UaHVua01pZGRsZXdhcmUoZ2V0U3lzdGVtKSB7XG4gIHJldHVybiAoeyBkaXNwYXRjaCwgZ2V0U3RhdGUgfSkgPT4geyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgcmV0dXJuIG5leHQgPT4gYWN0aW9uID0+IHtcbiAgICAgIGlmICh0eXBlb2YgYWN0aW9uID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIGFjdGlvbihnZXRTeXN0ZW0oKSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5leHQoYWN0aW9uKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdFN0YXR1c0NvZGUgKCByZXNwb25zZXMgKSB7XG4gIGxldCBjb2RlcyA9IHJlc3BvbnNlcy5rZXlTZXEoKVxuICByZXR1cm4gY29kZXMuY29udGFpbnMoREVGQVVMVF9SRVNQT05TRV9LRVkpID8gREVGQVVMVF9SRVNQT05TRV9LRVkgOiBjb2Rlcy5maWx0ZXIoIGtleSA9PiAoa2V5K1wiXCIpWzBdID09PSBcIjJcIikuc29ydCgpLmZpcnN0KClcbn1cblxuXG4vKipcbiAqIFJldHVybnMgYW4gSW1tdXRhYmxlIExpc3QsIHNhZmVseVxuICogQHBhcmFtIHtJbW11dGFibGUuSXRlcmFibGV9IGl0ZXJhYmxlIHRoZSBpdGVyYWJsZSB0byBnZXQgdGhlIGtleSBmcm9tXG4gKiBAcGFyYW0ge1N0cmluZ3xbU3RyaW5nXX0ga2V5IGVpdGhlciBhbiBhcnJheSBvZiBrZXlzLCBvciBhIHNpbmdsZSBrZXlcbiAqIEByZXR1cm5zIHtJbW11dGFibGUuTGlzdH0gZWl0aGVyIGl0ZXJhYmxlLmdldChrZXlzKSBvciBhbiBlbXB0eSBJbW11dGFibGUuTGlzdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGlzdChpdGVyYWJsZSwga2V5cykge1xuICBpZighSW0uSXRlcmFibGUuaXNJdGVyYWJsZShpdGVyYWJsZSkpIHtcbiAgICByZXR1cm4gSW0uTGlzdCgpXG4gIH1cbiAgbGV0IHZhbCA9IGl0ZXJhYmxlLmdldEluKEFycmF5LmlzQXJyYXkoa2V5cykgPyBrZXlzIDogW2tleXNdKVxuICByZXR1cm4gSW0uTGlzdC5pc0xpc3QodmFsKSA/IHZhbCA6IEltLkxpc3QoKVxufVxuXG4vKipcbiAqIFRha2UgYW4gaW1tdXRhYmxlIG1hcCwgYW5kIGNvbnZlcnQgdG8gYSBsaXN0LlxuICogV2hlcmUgdGhlIGtleXMgYXJlIG1lcmdlZCB3aXRoIHRoZSB2YWx1ZSBvYmplY3RzXG4gKiBAcGFyYW0ge0ltbXV0YWJsZS5NYXB9IG1hcCwgdGhlIG1hcCB0byBjb252ZXJ0XG4gKiBAcGFyYW0ge1N0cmluZ30ga2V5IHRoZSBrZXkgdG8gdXNlLCB3aGVuIG1lcmdpbmcgdGhlIGBrZXlgXG4gKiBAcmV0dXJucyB7SW1tdXRhYmxlLkxpc3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXBUb0xpc3QobWFwLCBrZXlOYW1lcz1cImtleVwiLCBjb2xsZWN0ZWRLZXlzPUltLk1hcCgpKSB7XG4gIGlmKCFJbS5NYXAuaXNNYXAobWFwKSB8fCAhbWFwLnNpemUpIHtcbiAgICByZXR1cm4gSW0uTGlzdCgpXG4gIH1cblxuICBpZighQXJyYXkuaXNBcnJheShrZXlOYW1lcykpIHtcbiAgICBrZXlOYW1lcyA9IFsga2V5TmFtZXMgXVxuICB9XG5cbiAgaWYoa2V5TmFtZXMubGVuZ3RoIDwgMSkge1xuICAgIHJldHVybiBtYXAubWVyZ2UoY29sbGVjdGVkS2V5cylcbiAgfVxuXG4gIC8vIEkgbmVlZCB0byBhdm9pZCBgZmxhdE1hcGAgZnJvbSBtZXJnaW5nIGluIHRoZSBNYXBzLCBhcyB3ZWxsIGFzIHRoZSBsaXN0c1xuICBsZXQgbGlzdCA9IEltLkxpc3QoKVxuICBsZXQga2V5TmFtZSA9IGtleU5hbWVzWzBdXG4gIGZvcihsZXQgZW50cnkgb2YgbWFwLmVudHJpZXMoKSkge1xuICAgIGxldCBba2V5LCB2YWxdID0gZW50cnlcbiAgICBsZXQgbmV4dExpc3QgPSBtYXBUb0xpc3QodmFsLCBrZXlOYW1lcy5zbGljZSgxKSwgY29sbGVjdGVkS2V5cy5zZXQoa2V5TmFtZSwga2V5KSlcbiAgICBpZihJbS5MaXN0LmlzTGlzdChuZXh0TGlzdCkpIHtcbiAgICAgIGxpc3QgPSBsaXN0LmNvbmNhdChuZXh0TGlzdClcbiAgICB9IGVsc2Uge1xuICAgICAgbGlzdCA9IGxpc3QucHVzaChuZXh0TGlzdClcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbGlzdFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEZpbGVOYW1lRnJvbUNvbnRlbnREaXNwb3NpdGlvbkhlYWRlcih2YWx1ZSl7XG4gIGxldCBwYXR0ZXJucyA9IFtcbiAgICAvZmlsZW5hbWVcXCo9W14nXSsnXFx3KidcIihbXlwiXSspXCI7Py9pLFxuICAgIC9maWxlbmFtZVxcKj1bXiddKydcXHcqJyhbXjtdKyk7Py9pLFxuICAgIC9maWxlbmFtZT1cIihbXjtdKik7P1wiL2ksXG4gICAgL2ZpbGVuYW1lPShbXjtdKik7Py9pXG4gIF1cblxuICBsZXQgcmVzcG9uc2VGaWxlbmFtZVxuICBwYXR0ZXJucy5zb21lKHJlZ2V4ID0+IHtcbiAgICByZXNwb25zZUZpbGVuYW1lID0gcmVnZXguZXhlYyh2YWx1ZSlcbiAgICByZXR1cm4gcmVzcG9uc2VGaWxlbmFtZSAhPT0gbnVsbFxuICB9KVxuXG4gIGlmIChyZXNwb25zZUZpbGVuYW1lICE9PSBudWxsICYmIHJlc3BvbnNlRmlsZW5hbWUubGVuZ3RoID4gMSkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHJlc3BvbnNlRmlsZW5hbWVbMV0pXG4gICAgfSBjYXRjaChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cblxuLy8gUGFzY2FsQ2FzZSwgYWthIFVwcGVyQ2FtZWxDYXNlXG5leHBvcnQgZnVuY3Rpb24gcGFzY2FsQ2FzZShzdHIpIHtcbiAgcmV0dXJuIHVwcGVyRmlyc3QoY2FtZWxDYXNlKHN0cikpXG59XG5cbi8vIFJlbW92ZSB0aGUgZXh0IG9mIGEgZmlsZW5hbWUsIGFuZCBwYXNjYWxDYXNlIGl0XG5leHBvcnQgZnVuY3Rpb24gcGFzY2FsQ2FzZUZpbGVuYW1lKGZpbGVuYW1lKSB7XG4gIHJldHVybiBwYXNjYWxDYXNlKGZpbGVuYW1lLnJlcGxhY2UoL1xcLlteLi9dKiQvLCBcIlwiKSlcbn1cblxuLy8gQ2hlY2sgaWYgLi4uXG4vLyAtIG5ldyBwcm9wc1xuLy8gLSBJZiBpbW11dGFibGUsIHVzZSAuaXMoKVxuLy8gLSBpZiBpbiBleHBsaWNpdCBvYmplY3RMaXN0LCB0aGVuIGNvbXBhcmUgdXNpbmcgXy5lcVxuLy8gLSBlbHNlIHVzZSA9PT1cbmV4cG9ydCBjb25zdCBwcm9wQ2hlY2tlciA9IChwcm9wcywgbmV4dFByb3BzLCBvYmplY3RMaXN0PVtdLCBpZ25vcmVMaXN0PVtdKSA9PiB7XG5cbiAgaWYoT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCAhPT0gT2JqZWN0LmtleXMobmV4dFByb3BzKS5sZW5ndGgpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICBzb21lKHByb3BzLCAoYSwgbmFtZSkgPT4ge1xuICAgICAgaWYoaWdub3JlTGlzdC5pbmNsdWRlcyhuYW1lKSkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGxldCBiID0gbmV4dFByb3BzW25hbWVdXG5cbiAgICAgIGlmKEltLkl0ZXJhYmxlLmlzSXRlcmFibGUoYSkpIHtcbiAgICAgICAgcmV0dXJuICFJbS5pcyhhLGIpXG4gICAgICB9XG5cbiAgICAgIC8vIE5vdCBnb2luZyB0byBjb21wYXJlIG9iamVjdHNcbiAgICAgIGlmKHR5cGVvZiBhID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBiID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gYSAhPT0gYlxuICAgIH0pXG4gICAgfHwgb2JqZWN0TGlzdC5zb21lKCBvYmplY3RQcm9wTmFtZSA9PiAhZXEocHJvcHNbb2JqZWN0UHJvcE5hbWVdLCBuZXh0UHJvcHNbb2JqZWN0UHJvcE5hbWVdKSkpXG59XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU1heGltdW0gPSAoIHZhbCwgbWF4ICkgPT4ge1xuICBpZiAodmFsID4gbWF4KSB7XG4gICAgcmV0dXJuIGBWYWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAke21heH1gXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlTWluaW11bSA9ICggdmFsLCBtaW4gKSA9PiB7XG4gIGlmICh2YWwgPCBtaW4pIHtcbiAgICByZXR1cm4gYFZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICR7bWlufWBcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVOdW1iZXIgPSAoIHZhbCApID0+IHtcbiAgaWYgKCEvXi0/XFxkKyhcXC4/XFxkKyk/JC8udGVzdCh2YWwpKSB7XG4gICAgcmV0dXJuIFwiVmFsdWUgbXVzdCBiZSBhIG51bWJlclwiXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlSW50ZWdlciA9ICggdmFsICkgPT4ge1xuICBpZiAoIS9eLT9cXGQrJC8udGVzdCh2YWwpKSB7XG4gICAgcmV0dXJuIFwiVmFsdWUgbXVzdCBiZSBhbiBpbnRlZ2VyXCJcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVGaWxlID0gKCB2YWwgKSA9PiB7XG4gIGlmICggdmFsICYmICEodmFsIGluc3RhbmNlb2Ygd2luLkZpbGUpICkge1xuICAgIHJldHVybiBcIlZhbHVlIG11c3QgYmUgYSBmaWxlXCJcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVCb29sZWFuID0gKCB2YWwgKSA9PiB7XG4gIGlmICggISh2YWwgPT09IFwidHJ1ZVwiIHx8IHZhbCA9PT0gXCJmYWxzZVwiIHx8IHZhbCA9PT0gdHJ1ZSB8fCB2YWwgPT09IGZhbHNlKSApIHtcbiAgICByZXR1cm4gXCJWYWx1ZSBtdXN0IGJlIGEgYm9vbGVhblwiXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlU3RyaW5nID0gKCB2YWwgKSA9PiB7XG4gIGlmICggdmFsICYmIHR5cGVvZiB2YWwgIT09IFwic3RyaW5nXCIgKSB7XG4gICAgcmV0dXJuIFwiVmFsdWUgbXVzdCBiZSBhIHN0cmluZ1wiXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlRGF0ZVRpbWUgPSAodmFsKSA9PiB7XG4gIGlmIChpc05hTihEYXRlLnBhcnNlKHZhbCkpKSB7XG4gICAgcmV0dXJuIFwiVmFsdWUgbXVzdCBiZSBhIERhdGVUaW1lXCJcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVHdWlkID0gKHZhbCkgPT4ge1xuICB2YWwgPSB2YWwudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpXG4gIGlmICghL15beyhdP1swLTlhLWZdezh9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezEyfVspfV0/JC8udGVzdCh2YWwpKSB7XG4gICAgcmV0dXJuIFwiVmFsdWUgbXVzdCBiZSBhIEd1aWRcIlxuICB9XG59XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU1heExlbmd0aCA9ICh2YWwsIG1heCkgPT4ge1xuICBpZiAodmFsLmxlbmd0aCA+IG1heCkge1xuICAgIHJldHVybiBgVmFsdWUgbXVzdCBiZSBubyBsb25nZXIgdGhhbiAke21heH0gY2hhcmFjdGVyJHttYXggIT09IDEgPyBcInNcIiA6IFwiXCJ9YFxuICB9XG59XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVVuaXF1ZUl0ZW1zID0gKHZhbCwgdW5pcXVlSXRlbXMpID0+IHtcbiAgaWYgKCF2YWwpIHtcbiAgICByZXR1cm5cbiAgfVxuICBpZiAodW5pcXVlSXRlbXMgPT09IFwidHJ1ZVwiIHx8IHVuaXF1ZUl0ZW1zID09PSB0cnVlKSB7XG4gICAgY29uc3QgbGlzdCA9IGZyb21KUyh2YWwpXG4gICAgY29uc3Qgc2V0ID0gbGlzdC50b1NldCgpXG4gICAgY29uc3QgaGFzRHVwbGljYXRlcyA9IHZhbC5sZW5ndGggPiBzZXQuc2l6ZVxuICAgIGlmKGhhc0R1cGxpY2F0ZXMpIHtcbiAgICAgIGxldCBlcnJvcnNQZXJJbmRleCA9IFNldCgpXG4gICAgICBsaXN0LmZvckVhY2goKGl0ZW0sIGkpID0+IHtcbiAgICAgICAgaWYobGlzdC5maWx0ZXIodiA9PiBpc0Z1bmModi5lcXVhbHMpID8gdi5lcXVhbHMoaXRlbSkgOiB2ID09PSBpdGVtKS5zaXplID4gMSkge1xuICAgICAgICAgIGVycm9yc1BlckluZGV4ID0gZXJyb3JzUGVySW5kZXguYWRkKGkpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBpZihlcnJvcnNQZXJJbmRleC5zaXplICE9PSAwKSB7XG4gICAgICAgIHJldHVybiBlcnJvcnNQZXJJbmRleC5tYXAoaSA9PiAoe2luZGV4OiBpLCBlcnJvcjogXCJObyBkdXBsaWNhdGVzIGFsbG93ZWQuXCJ9KSkudG9BcnJheSgpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU1pbkl0ZW1zID0gKHZhbCwgbWluKSA9PiB7XG4gIGlmICghdmFsICYmIG1pbiA+PSAxIHx8IHZhbCAmJiB2YWwubGVuZ3RoIDwgbWluKSB7XG4gICAgcmV0dXJuIGBBcnJheSBtdXN0IGNvbnRhaW4gYXQgbGVhc3QgJHttaW59IGl0ZW0ke21pbiA9PT0gMSA/IFwiXCIgOiBcInNcIn1gXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlTWF4SXRlbXMgPSAodmFsLCBtYXgpID0+IHtcbiAgaWYgKHZhbCAmJiB2YWwubGVuZ3RoID4gbWF4KSB7XG4gICAgcmV0dXJuIGBBcnJheSBtdXN0IG5vdCBjb250YWluIG1vcmUgdGhlbiAke21heH0gaXRlbSR7bWF4ID09PSAxID8gXCJcIiA6IFwic1wifWBcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVNaW5MZW5ndGggPSAodmFsLCBtaW4pID0+IHtcbiAgaWYgKHZhbC5sZW5ndGggPCBtaW4pIHtcbiAgICByZXR1cm4gYFZhbHVlIG11c3QgYmUgYXQgbGVhc3QgJHttaW59IGNoYXJhY3RlciR7bWluICE9PSAxID8gXCJzXCIgOiBcIlwifWBcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVQYXR0ZXJuID0gKHZhbCwgcnhQYXR0ZXJuKSA9PiB7XG4gIHZhciBwYXR0ID0gbmV3IFJlZ0V4cChyeFBhdHRlcm4pXG4gIGlmICghcGF0dC50ZXN0KHZhbCkpIHtcbiAgICByZXR1cm4gXCJWYWx1ZSBtdXN0IGZvbGxvdyBwYXR0ZXJuIFwiICsgcnhQYXR0ZXJuXG4gIH1cbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVWYWx1ZUJ5U2NoZW1hKHZhbHVlLCBzY2hlbWEsIHJlcXVpcmVkQnlQYXJhbSwgYnlwYXNzUmVxdWlyZWRDaGVjaywgcGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZSkge1xuICBpZighc2NoZW1hKSByZXR1cm4gW11cbiAgbGV0IGVycm9ycyA9IFtdXG4gIGxldCBudWxsYWJsZSA9IHNjaGVtYS5nZXQoXCJudWxsYWJsZVwiKVxuICBsZXQgcmVxdWlyZWRCeVNjaGVtYSA9IHNjaGVtYS5nZXQoXCJyZXF1aXJlZFwiKVxuICBsZXQgbWF4aW11bSA9IHNjaGVtYS5nZXQoXCJtYXhpbXVtXCIpXG4gIGxldCBtaW5pbXVtID0gc2NoZW1hLmdldChcIm1pbmltdW1cIilcbiAgbGV0IHR5cGUgPSBzY2hlbWEuZ2V0KFwidHlwZVwiKVxuICBsZXQgZm9ybWF0ID0gc2NoZW1hLmdldChcImZvcm1hdFwiKVxuICBsZXQgbWF4TGVuZ3RoID0gc2NoZW1hLmdldChcIm1heExlbmd0aFwiKVxuICBsZXQgbWluTGVuZ3RoID0gc2NoZW1hLmdldChcIm1pbkxlbmd0aFwiKVxuICBsZXQgdW5pcXVlSXRlbXMgPSBzY2hlbWEuZ2V0KFwidW5pcXVlSXRlbXNcIilcbiAgbGV0IG1heEl0ZW1zID0gc2NoZW1hLmdldChcIm1heEl0ZW1zXCIpXG4gIGxldCBtaW5JdGVtcyA9IHNjaGVtYS5nZXQoXCJtaW5JdGVtc1wiKVxuICBsZXQgcGF0dGVybiA9IHNjaGVtYS5nZXQoXCJwYXR0ZXJuXCIpXG5cbiAgY29uc3Qgc2NoZW1hUmVxdWlyZXNWYWx1ZSA9IHJlcXVpcmVkQnlQYXJhbSB8fCByZXF1aXJlZEJ5U2NoZW1hID09PSB0cnVlXG4gIGNvbnN0IGhhc1ZhbHVlID0gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbFxuICBjb25zdCBpc1ZhbGlkRW1wdHkgPSAhc2NoZW1hUmVxdWlyZXNWYWx1ZSAmJiAhaGFzVmFsdWVcblxuICBjb25zdCBuZWVkc0V4cGxpY2l0Q29uc3RyYWludFZhbGlkYXRpb24gPSBoYXNWYWx1ZSAmJiB0eXBlID09PSBcImFycmF5XCJcblxuICBjb25zdCByZXF1aXJlc0Z1cnRoZXJWYWxpZGF0aW9uID1cbiAgICBzY2hlbWFSZXF1aXJlc1ZhbHVlXG4gICAgfHwgbmVlZHNFeHBsaWNpdENvbnN0cmFpbnRWYWxpZGF0aW9uXG4gICAgfHwgIWlzVmFsaWRFbXB0eVxuXG4gIGNvbnN0IGlzVmFsaWROdWxsYWJsZSA9IG51bGxhYmxlICYmIHZhbHVlID09PSBudWxsXG5cbiAgLy8gcmVxdWlyZWQgdmFsdWUgaXMgbm90IHByb3ZpZGVkIGFuZCB0aGVyZSdzIG5vIHR5cGUgZGVmaW5lZCBpbiB0aGUgc2NoZW1hXG4gIGNvbnN0IHJlcXVpcmVkTm90UHJvdmlkZWQgPVxuICAgIHNjaGVtYVJlcXVpcmVzVmFsdWVcbiAgICAmJiAhaGFzVmFsdWVcbiAgICAmJiAhaXNWYWxpZE51bGxhYmxlXG4gICAgJiYgIWJ5cGFzc1JlcXVpcmVkQ2hlY2tcbiAgICAmJiAhdHlwZVxuXG4gIGlmIChyZXF1aXJlZE5vdFByb3ZpZGVkKSB7XG4gICAgZXJyb3JzLnB1c2goXCJSZXF1aXJlZCBmaWVsZCBpcyBub3QgcHJvdmlkZWRcIilcbiAgICByZXR1cm4gZXJyb3JzXG4gIH1cblxuICAvLyB3aWxsIG5vdCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVxdWVzdCBvciBbc2NoZW1hIC8gdmFsdWVdIGRvZXMgbm90IFthbGxvdyAvIHJlcXVpcmVdIGZ1cnRoZXIgYW5hbHlzaXMuXG4gIGNvbnN0IG5vRnVydGhlclZhbGlkYXRpb25OZWVkZWQgPVxuICAgIGlzVmFsaWROdWxsYWJsZVxuICAgIHx8ICF0eXBlXG4gICAgfHwgIXJlcXVpcmVzRnVydGhlclZhbGlkYXRpb25cblxuICBpZiAobm9GdXJ0aGVyVmFsaWRhdGlvbk5lZWRlZCkge1xuICAgIHJldHVybiBbXVxuICB9XG5cbiAgLy8gRnVydGhlciB0aGlzIHBvaW50IHRoZSBwYXJhbWV0ZXIgaXMgY29uc2lkZXJlZCB3b3J0aCB0byB2YWxpZGF0ZVxuICBsZXQgc3RyaW5nQ2hlY2sgPSB0eXBlID09PSBcInN0cmluZ1wiICYmIHZhbHVlXG4gIGxldCBhcnJheUNoZWNrID0gdHlwZSA9PT0gXCJhcnJheVwiICYmIEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aFxuICBsZXQgYXJyYXlMaXN0Q2hlY2sgPSB0eXBlID09PSBcImFycmF5XCIgJiYgSW0uTGlzdC5pc0xpc3QodmFsdWUpICYmIHZhbHVlLmNvdW50KClcbiAgbGV0IGFycmF5U3RyaW5nQ2hlY2sgPSB0eXBlID09PSBcImFycmF5XCIgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIHZhbHVlXG4gIGxldCBmaWxlQ2hlY2sgPSB0eXBlID09PSBcImZpbGVcIiAmJiB2YWx1ZSBpbnN0YW5jZW9mIHdpbi5GaWxlXG4gIGxldCBib29sZWFuQ2hlY2sgPSB0eXBlID09PSBcImJvb2xlYW5cIiAmJiAodmFsdWUgfHwgdmFsdWUgPT09IGZhbHNlKVxuICBsZXQgbnVtYmVyQ2hlY2sgPSB0eXBlID09PSBcIm51bWJlclwiICYmICh2YWx1ZSB8fCB2YWx1ZSA9PT0gMClcbiAgbGV0IGludGVnZXJDaGVjayA9IHR5cGUgPT09IFwiaW50ZWdlclwiICYmICh2YWx1ZSB8fCB2YWx1ZSA9PT0gMClcbiAgbGV0IG9iamVjdENoZWNrID0gdHlwZSA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgdmFsdWUgIT09IG51bGxcbiAgbGV0IG9iamVjdFN0cmluZ0NoZWNrID0gdHlwZSA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFsdWVcblxuICBjb25zdCBhbGxDaGVja3MgPSBbXG4gICAgc3RyaW5nQ2hlY2ssIGFycmF5Q2hlY2ssIGFycmF5TGlzdENoZWNrLCBhcnJheVN0cmluZ0NoZWNrLCBmaWxlQ2hlY2ssXG4gICAgYm9vbGVhbkNoZWNrLCBudW1iZXJDaGVjaywgaW50ZWdlckNoZWNrLCBvYmplY3RDaGVjaywgb2JqZWN0U3RyaW5nQ2hlY2ssXG4gIF1cblxuICBjb25zdCBwYXNzZWRBbnlDaGVjayA9IGFsbENoZWNrcy5zb21lKHYgPT4gISF2KVxuXG4gIGlmIChzY2hlbWFSZXF1aXJlc1ZhbHVlICYmICFwYXNzZWRBbnlDaGVjayAmJiAhYnlwYXNzUmVxdWlyZWRDaGVjaykge1xuICAgIGVycm9ycy5wdXNoKFwiUmVxdWlyZWQgZmllbGQgaXMgbm90IHByb3ZpZGVkXCIpXG4gICAgcmV0dXJuIGVycm9yc1xuICB9XG4gIGlmIChcbiAgICB0eXBlID09PSBcIm9iamVjdFwiICYmXG4gICAgKHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGUgPT09IG51bGwgfHxcbiAgICAgIHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGUgPT09IFwiYXBwbGljYXRpb24vanNvblwiKVxuICApIHtcbiAgICBsZXQgb2JqZWN0VmFsID0gdmFsdWVcbiAgICBpZih0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIG9iamVjdFZhbCA9IEpTT04ucGFyc2UodmFsdWUpXG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKFwiUGFyYW1ldGVyIHN0cmluZyB2YWx1ZSBtdXN0IGJlIHZhbGlkIEpTT05cIilcbiAgICAgICAgcmV0dXJuIGVycm9yc1xuICAgICAgfVxuICAgIH1cbiAgICBpZihzY2hlbWEgJiYgc2NoZW1hLmhhcyhcInJlcXVpcmVkXCIpICYmIGlzRnVuYyhyZXF1aXJlZEJ5U2NoZW1hLmlzTGlzdCkgJiYgcmVxdWlyZWRCeVNjaGVtYS5pc0xpc3QoKSkge1xuICAgICAgcmVxdWlyZWRCeVNjaGVtYS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGlmKG9iamVjdFZhbFtrZXldID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBlcnJvcnMucHVzaCh7IHByb3BLZXk6IGtleSwgZXJyb3I6IFwiUmVxdWlyZWQgcHJvcGVydHkgbm90IGZvdW5kXCIgfSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gICAgaWYoc2NoZW1hICYmIHNjaGVtYS5oYXMoXCJwcm9wZXJ0aWVzXCIpKSB7XG4gICAgICBzY2hlbWEuZ2V0KFwicHJvcGVydGllc1wiKS5mb3JFYWNoKCh2YWwsIGtleSkgPT4ge1xuICAgICAgICBjb25zdCBlcnJzID0gdmFsaWRhdGVWYWx1ZUJ5U2NoZW1hKG9iamVjdFZhbFtrZXldLCB2YWwsIGZhbHNlLCBieXBhc3NSZXF1aXJlZENoZWNrLCBwYXJhbWV0ZXJDb250ZW50TWVkaWFUeXBlKVxuICAgICAgICBlcnJvcnMucHVzaCguLi5lcnJzXG4gICAgICAgICAgLm1hcCgoZXJyb3IpID0+ICh7IHByb3BLZXk6IGtleSwgZXJyb3IgfSkpKVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBpZiAocGF0dGVybikge1xuICAgIGxldCBlcnIgPSB2YWxpZGF0ZVBhdHRlcm4odmFsdWUsIHBhdHRlcm4pXG4gICAgaWYgKGVycikgZXJyb3JzLnB1c2goZXJyKVxuICB9XG5cbiAgaWYgKG1pbkl0ZW1zKSB7XG4gICAgaWYgKHR5cGUgPT09IFwiYXJyYXlcIikge1xuICAgICAgbGV0IGVyciA9IHZhbGlkYXRlTWluSXRlbXModmFsdWUsIG1pbkl0ZW1zKVxuICAgICAgaWYgKGVycikgZXJyb3JzLnB1c2goZXJyKVxuICAgIH1cbiAgfVxuXG4gIGlmIChtYXhJdGVtcykge1xuICAgIGlmICh0eXBlID09PSBcImFycmF5XCIpIHtcbiAgICAgIGxldCBlcnIgPSB2YWxpZGF0ZU1heEl0ZW1zKHZhbHVlLCBtYXhJdGVtcylcbiAgICAgIGlmIChlcnIpIGVycm9ycy5wdXNoKHsgbmVlZFJlbW92ZTogdHJ1ZSwgZXJyb3I6IGVyciB9KVxuICAgIH1cbiAgfVxuXG4gIGlmICh1bmlxdWVJdGVtcykge1xuICAgIGlmICh0eXBlID09PSBcImFycmF5XCIpIHtcbiAgICAgIGxldCBlcnJvclBlckl0ZW0gPSB2YWxpZGF0ZVVuaXF1ZUl0ZW1zKHZhbHVlLCB1bmlxdWVJdGVtcylcbiAgICAgIGlmIChlcnJvclBlckl0ZW0pIGVycm9ycy5wdXNoKC4uLmVycm9yUGVySXRlbSlcbiAgICB9XG4gIH1cblxuICBpZiAobWF4TGVuZ3RoIHx8IG1heExlbmd0aCA9PT0gMCkge1xuICAgIGxldCBlcnIgPSB2YWxpZGF0ZU1heExlbmd0aCh2YWx1ZSwgbWF4TGVuZ3RoKVxuICAgIGlmIChlcnIpIGVycm9ycy5wdXNoKGVycilcbiAgfVxuXG4gIGlmIChtaW5MZW5ndGgpIHtcbiAgICBsZXQgZXJyID0gdmFsaWRhdGVNaW5MZW5ndGgodmFsdWUsIG1pbkxlbmd0aClcbiAgICBpZiAoZXJyKSBlcnJvcnMucHVzaChlcnIpXG4gIH1cblxuICBpZiAobWF4aW11bSB8fCBtYXhpbXVtID09PSAwKSB7XG4gICAgbGV0IGVyciA9IHZhbGlkYXRlTWF4aW11bSh2YWx1ZSwgbWF4aW11bSlcbiAgICBpZiAoZXJyKSBlcnJvcnMucHVzaChlcnIpXG4gIH1cblxuICBpZiAobWluaW11bSB8fCBtaW5pbXVtID09PSAwKSB7XG4gICAgbGV0IGVyciA9IHZhbGlkYXRlTWluaW11bSh2YWx1ZSwgbWluaW11bSlcbiAgICBpZiAoZXJyKSBlcnJvcnMucHVzaChlcnIpXG4gIH1cblxuICBpZiAodHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIGxldCBlcnJcbiAgICBpZiAoZm9ybWF0ID09PSBcImRhdGUtdGltZVwiKSB7XG4gICAgICBlcnIgPSB2YWxpZGF0ZURhdGVUaW1lKHZhbHVlKVxuICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09PSBcInV1aWRcIikge1xuICAgICAgZXJyID0gdmFsaWRhdGVHdWlkKHZhbHVlKVxuICAgIH0gZWxzZSB7XG4gICAgICBlcnIgPSB2YWxpZGF0ZVN0cmluZyh2YWx1ZSlcbiAgICB9XG4gICAgaWYgKCFlcnIpIHJldHVybiBlcnJvcnNcbiAgICBlcnJvcnMucHVzaChlcnIpXG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICBsZXQgZXJyID0gdmFsaWRhdGVCb29sZWFuKHZhbHVlKVxuICAgIGlmICghZXJyKSByZXR1cm4gZXJyb3JzXG4gICAgZXJyb3JzLnB1c2goZXJyKVxuICB9IGVsc2UgaWYgKHR5cGUgPT09IFwibnVtYmVyXCIpIHtcbiAgICBsZXQgZXJyID0gdmFsaWRhdGVOdW1iZXIodmFsdWUpXG4gICAgaWYgKCFlcnIpIHJldHVybiBlcnJvcnNcbiAgICBlcnJvcnMucHVzaChlcnIpXG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJpbnRlZ2VyXCIpIHtcbiAgICBsZXQgZXJyID0gdmFsaWRhdGVJbnRlZ2VyKHZhbHVlKVxuICAgIGlmICghZXJyKSByZXR1cm4gZXJyb3JzXG4gICAgZXJyb3JzLnB1c2goZXJyKVxuICB9IGVsc2UgaWYgKHR5cGUgPT09IFwiYXJyYXlcIikge1xuICAgIGlmICghKGFycmF5Q2hlY2sgfHwgYXJyYXlMaXN0Q2hlY2spKSB7XG4gICAgICByZXR1cm4gZXJyb3JzXG4gICAgfVxuICAgIGlmKHZhbHVlKSB7XG4gICAgICB2YWx1ZS5mb3JFYWNoKChpdGVtLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IGVycnMgPSB2YWxpZGF0ZVZhbHVlQnlTY2hlbWEoaXRlbSwgc2NoZW1hLmdldChcIml0ZW1zXCIpLCBmYWxzZSwgYnlwYXNzUmVxdWlyZWRDaGVjaywgcGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZSlcbiAgICAgICAgZXJyb3JzLnB1c2goLi4uZXJyc1xuICAgICAgICAgIC5tYXAoKGVycikgPT4gKHsgaW5kZXg6IGksIGVycm9yOiBlcnIgfSkpKVxuICAgICAgfSlcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJmaWxlXCIpIHtcbiAgICBsZXQgZXJyID0gdmFsaWRhdGVGaWxlKHZhbHVlKVxuICAgIGlmICghZXJyKSByZXR1cm4gZXJyb3JzXG4gICAgZXJyb3JzLnB1c2goZXJyKVxuICB9XG5cbiAgcmV0dXJuIGVycm9yc1xufVxuXG4vLyB2YWxpZGF0aW9uIG9mIHBhcmFtZXRlcnMgYmVmb3JlIGV4ZWN1dGVcbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVBhcmFtID0gKHBhcmFtLCB2YWx1ZSwgeyBpc09BUzMgPSBmYWxzZSwgYnlwYXNzUmVxdWlyZWRDaGVjayA9IGZhbHNlIH0gPSB7fSkgPT4ge1xuXG4gIGxldCBwYXJhbVJlcXVpcmVkID0gcGFyYW0uZ2V0KFwicmVxdWlyZWRcIilcblxuICBsZXQge1xuICAgIHNjaGVtYTogcGFyYW1EZXRhaWxzLFxuICAgIHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGVcbiAgfSA9IGdldFBhcmFtZXRlclNjaGVtYShwYXJhbSwgeyBpc09BUzMgfSlcblxuICByZXR1cm4gdmFsaWRhdGVWYWx1ZUJ5U2NoZW1hKHZhbHVlLCBwYXJhbURldGFpbHMsIHBhcmFtUmVxdWlyZWQsIGJ5cGFzc1JlcXVpcmVkQ2hlY2ssIHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGUpXG59XG5cbmV4cG9ydCBjb25zdCBwYXJzZVNlYXJjaCA9ICgpID0+IHtcbiAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW4ubG9jYXRpb24uc2VhcmNoKVxuICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHNlYXJjaFBhcmFtcylcbn1cblxuZXhwb3J0IGNvbnN0IHNlcmlhbGl6ZVNlYXJjaCA9IChzZWFyY2hNYXApID0+IHtcbiAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhPYmplY3QuZW50cmllcyhzZWFyY2hNYXApKVxuICByZXR1cm4gU3RyaW5nKHNlYXJjaFBhcmFtcylcbn1cblxuZXhwb3J0IGNvbnN0IGJ0b2EgPSAoc3RyKSA9PiB7XG4gIGxldCBidWZmZXJcblxuICBpZiAoc3RyIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgYnVmZmVyID0gc3RyXG4gIH0gZWxzZSB7XG4gICAgYnVmZmVyID0gQnVmZmVyLmZyb20oc3RyLnRvU3RyaW5nKCksIFwidXRmLThcIilcbiAgfVxuXG4gIHJldHVybiBidWZmZXIudG9TdHJpbmcoXCJiYXNlNjRcIilcbn1cblxuZXhwb3J0IGNvbnN0IHNvcnRlcnMgPSB7XG4gIG9wZXJhdGlvbnNTb3J0ZXI6IHtcbiAgICBhbHBoYTogKGEsIGIpID0+IGEuZ2V0KFwicGF0aFwiKS5sb2NhbGVDb21wYXJlKGIuZ2V0KFwicGF0aFwiKSksXG4gICAgbWV0aG9kOiAoYSwgYikgPT4gYS5nZXQoXCJtZXRob2RcIikubG9jYWxlQ29tcGFyZShiLmdldChcIm1ldGhvZFwiKSlcbiAgfSxcbiAgdGFnc1NvcnRlcjoge1xuICAgIGFscGhhOiAoYSwgYikgPT4gYS5sb2NhbGVDb21wYXJlKGIpXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGJ1aWxkRm9ybURhdGEgPSAoZGF0YSkgPT4ge1xuICBsZXQgZm9ybUFyciA9IFtdXG5cbiAgZm9yIChsZXQgbmFtZSBpbiBkYXRhKSB7XG4gICAgbGV0IHZhbCA9IGRhdGFbbmFtZV1cbiAgICBpZiAodmFsICE9PSB1bmRlZmluZWQgJiYgdmFsICE9PSBcIlwiKSB7XG4gICAgICBmb3JtQXJyLnB1c2goW25hbWUsIFwiPVwiLCBlbmNvZGVVUklDb21wb25lbnQodmFsKS5yZXBsYWNlKC8lMjAvZyxcIitcIildLmpvaW4oXCJcIikpXG4gICAgfVxuICB9XG4gIHJldHVybiBmb3JtQXJyLmpvaW4oXCImXCIpXG59XG5cbi8vIElzIHRoaXMgcmVhbGx5IHJlcXVpcmVkIGFzIGEgaGVscGVyPyBQZXJoYXBzLiBUT0RPOiBleHBvc2UgdGhlIHN5c3RlbSBvZiBwcmVzZXRzLmFwaXMgaW4gZG9jcywgc28gd2Uga25vdyB3aGF0IGlzIHN1cHBvcnRlZFxuZXhwb3J0IGNvbnN0IHNoYWxsb3dFcXVhbEtleXMgPSAoYSxiLCBrZXlzKSA9PiB7XG4gIHJldHVybiAhIWZpbmQoa2V5cywgKGtleSkgPT4ge1xuICAgIHJldHVybiBlcShhW2tleV0sIGJba2V5XSlcbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcXVpcmVzVmFsaWRhdGlvblVSTCh1cmkpIHtcbiAgaWYgKCF1cmkgfHwgdXJpLmluZGV4T2YoXCJsb2NhbGhvc3RcIikgPj0gMCB8fCB1cmkuaW5kZXhPZihcIjEyNy4wLjAuMVwiKSA+PSAwIHx8IHVyaSA9PT0gXCJub25lXCIpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICByZXR1cm4gdHJ1ZVxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY2NlcHRDb250cm9sbGluZ1Jlc3BvbnNlKHJlc3BvbnNlcykge1xuICBpZighSW0uT3JkZXJlZE1hcC5pc09yZGVyZWRNYXAocmVzcG9uc2VzKSkge1xuICAgIC8vIHdyb25nIHR5cGUhXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGlmKCFyZXNwb25zZXMuc2l6ZSkge1xuICAgIC8vIHJlc3BvbnNlcyBpcyBlbXB0eVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCBzdWl0YWJsZTJ4eFJlc3BvbnNlID0gcmVzcG9uc2VzLmZpbmQoKHJlcywgaykgPT4ge1xuICAgIHJldHVybiBrLnN0YXJ0c1dpdGgoXCIyXCIpICYmIE9iamVjdC5rZXlzKHJlcy5nZXQoXCJjb250ZW50XCIpIHx8IHt9KS5sZW5ndGggPiAwXG4gIH0pXG5cbiAgLy8gdHJ5IHRvIGZpbmQgYSBzdWl0YWJsZSBgZGVmYXVsdGAgcmVzcG9uc2VzXG4gIGNvbnN0IGRlZmF1bHRSZXNwb25zZSA9IHJlc3BvbnNlcy5nZXQoXCJkZWZhdWx0XCIpIHx8IEltLk9yZGVyZWRNYXAoKVxuICBjb25zdCBkZWZhdWx0UmVzcG9uc2VNZWRpYVR5cGVzID0gKGRlZmF1bHRSZXNwb25zZS5nZXQoXCJjb250ZW50XCIpIHx8IEltLk9yZGVyZWRNYXAoKSkua2V5U2VxKCkudG9KUygpXG4gIGNvbnN0IHN1aXRhYmxlRGVmYXVsdFJlc3BvbnNlID0gZGVmYXVsdFJlc3BvbnNlTWVkaWFUeXBlcy5sZW5ndGggPyBkZWZhdWx0UmVzcG9uc2UgOiBudWxsXG5cbiAgcmV0dXJuIHN1aXRhYmxlMnh4UmVzcG9uc2UgfHwgc3VpdGFibGVEZWZhdWx0UmVzcG9uc2Vcbn1cblxuLy8gc3VpdGFibGUgZm9yIHVzZSBpbiBVUkwgZnJhZ21lbnRzXG5leHBvcnQgY29uc3QgY3JlYXRlRGVlcExpbmtQYXRoID0gKHN0cikgPT4gdHlwZW9mIHN0ciA9PSBcInN0cmluZ1wiIHx8IHN0ciBpbnN0YW5jZW9mIFN0cmluZyA/IHN0ci50cmltKCkucmVwbGFjZSgvXFxzL2csIFwiJTIwXCIpIDogXCJcIlxuLy8gc3VpdGFibGUgZm9yIHVzZSBpbiBDU1MgY2xhc3NlcyBhbmQgaWRzXG5leHBvcnQgY29uc3QgZXNjYXBlRGVlcExpbmtQYXRoID0gKHN0cikgPT4gY3NzRXNjYXBlKCBjcmVhdGVEZWVwTGlua1BhdGgoc3RyKS5yZXBsYWNlKC8lMjAvZywgXCJfXCIpIClcblxuZXhwb3J0IGNvbnN0IGdldEV4dGVuc2lvbnMgPSAoZGVmT2JqKSA9PiB7XG4gIGNvbnN0IGV4dGVuc2lvblJlZ0V4cCA9IC9eeC0vXG4gIGlmKE1hcC5pc01hcChkZWZPYmopKSB7XG4gICAgcmV0dXJuIGRlZk9iai5maWx0ZXIoKHYsIGspID0+IGV4dGVuc2lvblJlZ0V4cC50ZXN0KGspKVxuICB9XG4gIHJldHVybiBPYmplY3Qua2V5cyhkZWZPYmopLmZpbHRlcigoa2V5KSA9PiBleHRlbnNpb25SZWdFeHAudGVzdChrZXkpKVxufVxuZXhwb3J0IGNvbnN0IGdldENvbW1vbkV4dGVuc2lvbnMgPSAoZGVmT2JqKSA9PiBkZWZPYmouZmlsdGVyKCh2LCBrKSA9PiAvXnBhdHRlcm58bWF4TGVuZ3RofG1pbkxlbmd0aHxtYXhpbXVtfG1pbmltdW0vLnRlc3QoaykpXG5cbi8vIERlZXBseSBzdHJpcHMgYSBzcGVjaWZpYyBrZXkgZnJvbSBhbiBvYmplY3QuXG4vL1xuLy8gYHByZWRpY2F0ZWAgY2FuIGJlIHVzZWQgdG8gZGlzY3JpbWluYXRlIHRoZSBzdHJpcHBpbmcgZnVydGhlcixcbi8vIGJ5IHByZXNlcnZpbmcgdGhlIGtleSdzIHBsYWNlIGluIHRoZSBvYmplY3QgYmFzZWQgb24gaXRzIHZhbHVlLlxuZXhwb3J0IGZ1bmN0aW9uIGRlZXBseVN0cmlwS2V5KGlucHV0LCBrZXlUb1N0cmlwLCBwcmVkaWNhdGUgPSAoKSA9PiB0cnVlKSB7XG4gIGlmKHR5cGVvZiBpbnB1dCAhPT0gXCJvYmplY3RcIiB8fCBBcnJheS5pc0FycmF5KGlucHV0KSB8fCBpbnB1dCA9PT0gbnVsbCB8fCAha2V5VG9TdHJpcCkge1xuICAgIHJldHVybiBpbnB1dFxuICB9XG5cbiAgY29uc3Qgb2JqID0gT2JqZWN0LmFzc2lnbih7fSwgaW5wdXQpXG5cbiAgT2JqZWN0LmtleXMob2JqKS5mb3JFYWNoKGsgPT4ge1xuICAgIGlmKGsgPT09IGtleVRvU3RyaXAgJiYgcHJlZGljYXRlKG9ialtrXSwgaykpIHtcbiAgICAgIGRlbGV0ZSBvYmpba11cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBvYmpba10gPSBkZWVwbHlTdHJpcEtleShvYmpba10sIGtleVRvU3RyaXAsIHByZWRpY2F0ZSlcbiAgfSlcblxuICByZXR1cm4gb2JqXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnkodGhpbmcpIHtcbiAgaWYgKHR5cGVvZiB0aGluZyA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiB0aGluZ1xuICB9XG5cbiAgaWYgKHRoaW5nICYmIHRoaW5nLnRvSlMpIHtcbiAgICB0aGluZyA9IHRoaW5nLnRvSlMoKVxuICB9XG5cbiAgaWYgKHR5cGVvZiB0aGluZyA9PT0gXCJvYmplY3RcIiAmJiB0aGluZyAhPT0gbnVsbCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpbmcsIG51bGwsIDIpXG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKHRoaW5nKVxuICAgIH1cbiAgfVxuXG4gIGlmKHRoaW5nID09PSBudWxsIHx8IHRoaW5nID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gXCJcIlxuICB9XG5cbiAgcmV0dXJuIHRoaW5nLnRvU3RyaW5nKClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG51bWJlclRvU3RyaW5nKHRoaW5nKSB7XG4gIGlmKHR5cGVvZiB0aGluZyA9PT0gXCJudW1iZXJcIikge1xuICAgIHJldHVybiB0aGluZy50b1N0cmluZygpXG4gIH1cblxuICByZXR1cm4gdGhpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcmFtVG9JZGVudGlmaWVyKHBhcmFtLCB7IHJldHVybkFsbCA9IGZhbHNlLCBhbGxvd0hhc2hlcyA9IHRydWUgfSA9IHt9KSB7XG4gIGlmKCFJbS5NYXAuaXNNYXAocGFyYW0pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwicGFyYW1Ub0lkZW50aWZpZXI6IHJlY2VpdmVkIGEgbm9uLUltLk1hcCBwYXJhbWV0ZXIgYXMgaW5wdXRcIilcbiAgfVxuICBjb25zdCBwYXJhbU5hbWUgPSBwYXJhbS5nZXQoXCJuYW1lXCIpXG4gIGNvbnN0IHBhcmFtSW4gPSBwYXJhbS5nZXQoXCJpblwiKVxuXG4gIGxldCBnZW5lcmF0ZWRJZGVudGlmaWVycyA9IFtdXG5cbiAgLy8gR2VuZXJhdGUgaWRlbnRpZmllcnMgaW4gb3JkZXIgb2YgbW9zdCB0byBsZWFzdCBzcGVjaWZpY2l0eVxuXG4gIGlmIChwYXJhbSAmJiBwYXJhbS5oYXNoQ29kZSAmJiBwYXJhbUluICYmIHBhcmFtTmFtZSAmJiBhbGxvd0hhc2hlcykge1xuICAgIGdlbmVyYXRlZElkZW50aWZpZXJzLnB1c2goYCR7cGFyYW1Jbn0uJHtwYXJhbU5hbWV9Lmhhc2gtJHtwYXJhbS5oYXNoQ29kZSgpfWApXG4gIH1cblxuICBpZihwYXJhbUluICYmIHBhcmFtTmFtZSkge1xuICAgIGdlbmVyYXRlZElkZW50aWZpZXJzLnB1c2goYCR7cGFyYW1Jbn0uJHtwYXJhbU5hbWV9YClcbiAgfVxuXG4gIGdlbmVyYXRlZElkZW50aWZpZXJzLnB1c2gocGFyYW1OYW1lKVxuXG4gIC8vIFJldHVybiB0aGUgbW9zdCBwcmVmZXJyZWQgaWRlbnRpZmllciwgb3IgYWxsIGlmIHJlcXVlc3RlZFxuXG4gIHJldHVybiByZXR1cm5BbGwgPyBnZW5lcmF0ZWRJZGVudGlmaWVycyA6IChnZW5lcmF0ZWRJZGVudGlmaWVyc1swXSB8fCBcIlwiKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyYW1Ub1ZhbHVlKHBhcmFtLCBwYXJhbVZhbHVlcykge1xuICBjb25zdCBhbGxJZGVudGlmaWVycyA9IHBhcmFtVG9JZGVudGlmaWVyKHBhcmFtLCB7IHJldHVybkFsbDogdHJ1ZSB9KVxuXG4gIC8vIE1hcCBpZGVudGlmaWVycyB0byB2YWx1ZXMgaW4gdGhlIHByb3ZpZGVkIHZhbHVlIGhhc2gsIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzLFxuICAvLyBhbmQgcmV0dXJuIHRoZSBmaXJzdCB2YWx1ZSBmb3VuZFxuICBjb25zdCB2YWx1ZXMgPSBhbGxJZGVudGlmaWVyc1xuICAgIC5tYXAoaWQgPT4ge1xuICAgICAgcmV0dXJuIHBhcmFtVmFsdWVzW2lkXVxuICAgIH0pXG4gICAgLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuXG4gIHJldHVybiB2YWx1ZXNbMF1cbn1cblxuLy8gYWRhcHRlZCBmcm9tIGh0dHBzOi8vYXV0aDAuY29tL2RvY3MvZmxvd3MvZ3VpZGVzL2F1dGgtY29kZS1wa2NlL2luY2x1ZGVzL2NyZWF0ZS1jb2RlLXZlcmlmaWVyXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVDb2RlVmVyaWZpZXIoKSB7XG4gIHJldHVybiBiNjR0b0I2NFVybEVuY29kZWQoXG4gICAgcmFuZG9tQnl0ZXMoMzIpLnRvU3RyaW5nKFwiYmFzZTY0XCIpXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvZGVDaGFsbGVuZ2UoY29kZVZlcmlmaWVyKSB7XG4gIHJldHVybiBiNjR0b0I2NFVybEVuY29kZWQoXG4gICAgc2hhSnMoXCJzaGEyNTZcIilcbiAgICAgIC51cGRhdGUoY29kZVZlcmlmaWVyKVxuICAgICAgLmRpZ2VzdChcImJhc2U2NFwiKVxuICApXG59XG5cbmZ1bmN0aW9uIGI2NHRvQjY0VXJsRW5jb2RlZChzdHIpIHtcbiAgcmV0dXJuIHN0clxuICAgIC5yZXBsYWNlKC9cXCsvZywgXCItXCIpXG4gICAgLnJlcGxhY2UoL1xcLy9nLCBcIl9cIilcbiAgICAucmVwbGFjZSgvPS9nLCBcIlwiKVxufVxuXG5leHBvcnQgY29uc3QgaXNFbXB0eVZhbHVlID0gKHZhbHVlKSA9PiB7XG4gIGlmICghdmFsdWUpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKGlzSW1tdXRhYmxlKHZhbHVlKSAmJiB2YWx1ZS5pc0VtcHR5KCkpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IGNyZWF0ZVN0b3JlLCBhcHBseU1pZGRsZXdhcmUsIGJpbmRBY3Rpb25DcmVhdG9ycywgY29tcG9zZSB9IGZyb20gXCJyZWR1eFwiXG5pbXBvcnQgSW0sIHsgZnJvbUpTLCBNYXAgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCBkZWVwRXh0ZW5kIGZyb20gXCJkZWVwLWV4dGVuZFwiXG5pbXBvcnQgeyBjb21iaW5lUmVkdWNlcnMgfSBmcm9tIFwicmVkdXgtaW1tdXRhYmxlXCJcbmltcG9ydCB7IHNlcmlhbGl6ZUVycm9yIH0gZnJvbSBcInNlcmlhbGl6ZS1lcnJvclwiXG5pbXBvcnQgbWVyZ2UgZnJvbSBcImxvZGFzaC9tZXJnZVwiXG5pbXBvcnQgeyBORVdfVEhST1dOX0VSUiB9IGZyb20gXCJjb3JlL3BsdWdpbnMvZXJyL2FjdGlvbnNcIlxuaW1wb3J0IHdpbiBmcm9tIFwiY29yZS93aW5kb3dcIlxuXG5pbXBvcnQgeyBzeXN0ZW1UaHVua01pZGRsZXdhcmUsIGlzRm4sIG9iak1hcCwgb2JqUmVkdWNlLCBpc09iamVjdCwgaXNBcnJheSwgaXNGdW5jIH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuXG5jb25zdCBpZEZuID0gYSA9PiBhXG5cbi8vIEFwcGx5IG1pZGRsZXdhcmUgdGhhdCBnZXRzIHNhbmR3aXRjaGVkIGJldHdlZW4gYGRpc3BhdGNoYCBhbmQgdGhlIHJlZHVjZXIgZnVuY3Rpb24ocylcbmZ1bmN0aW9uIGNyZWF0ZVN0b3JlV2l0aE1pZGRsZXdhcmUocm9vdFJlZHVjZXIsIGluaXRpYWxTdGF0ZSwgZ2V0U3lzdGVtKSB7XG5cbiAgbGV0IG1pZGRsd2FyZXMgPSBbXG4gICAgLy8gY3JlYXRlTG9nZ2VyKCB7XG4gICAgLy8gICBzdGF0ZVRyYW5zZm9ybWVyOiBzdGF0ZSA9PiBzdGF0ZSAmJiBzdGF0ZS50b0pTKClcbiAgICAvLyB9ICksXG4gICAgc3lzdGVtVGh1bmtNaWRkbGV3YXJlKCBnZXRTeXN0ZW0gKVxuICBdXG5cbiAgY29uc3QgY29tcG9zZUVuaGFuY2VycyA9IHdpbi5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9DT01QT1NFX18gfHwgY29tcG9zZVxuXG4gIHJldHVybiBjcmVhdGVTdG9yZShyb290UmVkdWNlciwgaW5pdGlhbFN0YXRlLCBjb21wb3NlRW5oYW5jZXJzKFxuICAgIGFwcGx5TWlkZGxld2FyZSggLi4ubWlkZGx3YXJlcyApXG4gICkpXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN0b3JlIHtcblxuICBjb25zdHJ1Y3RvcihvcHRzPXt9KSB7XG4gICAgZGVlcEV4dGVuZCh0aGlzLCB7XG4gICAgICBzdGF0ZToge30sXG4gICAgICBwbHVnaW5zOiBbXSxcbiAgICAgIHN5c3RlbToge1xuICAgICAgICBjb25maWdzOiB7fSxcbiAgICAgICAgZm46IHt9LFxuICAgICAgICBjb21wb25lbnRzOiB7fSxcbiAgICAgICAgcm9vdEluamVjdHM6IHt9LFxuICAgICAgICBzdGF0ZVBsdWdpbnM6IHt9XG4gICAgICB9LFxuICAgICAgYm91bmRTeXN0ZW06IHt9LFxuICAgICAgdG9vbGJveDoge31cbiAgICB9LCBvcHRzKVxuXG4gICAgdGhpcy5nZXRTeXN0ZW0gPSB0aGlzLl9nZXRTeXN0ZW0uYmluZCh0aGlzKVxuXG4gICAgLy8gQmFyZSBzeXN0ZW0gKG5vdGhpbmcgaW4gaXQsIGJlc2lkZXMgdGhlIHN0YXRlKVxuICAgIHRoaXMuc3RvcmUgPSBjb25maWd1cmVTdG9yZShpZEZuLCBmcm9tSlModGhpcy5zdGF0ZSksIHRoaXMuZ2V0U3lzdGVtIClcblxuICAgIC8vIHdpbGwgYmUgdGhlIHN5c3RlbSArIEltLCB3ZSBjYW4gYWRkIG1vcmUgdG9vbHMgd2hlbiB3ZSBuZWVkIHRvXG4gICAgdGhpcy5idWlsZFN5c3RlbShmYWxzZSlcblxuICAgIC8vIEJvb3RzdHJhcCBwbHVnaW5zXG4gICAgdGhpcy5yZWdpc3Rlcih0aGlzLnBsdWdpbnMpXG4gIH1cblxuICBnZXRTdG9yZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZVxuICB9XG5cbiAgcmVnaXN0ZXIocGx1Z2lucywgcmVidWlsZD10cnVlKSB7XG4gICAgdmFyIHBsdWdpblN5c3RlbSA9IGNvbWJpbmVQbHVnaW5zKHBsdWdpbnMsIHRoaXMuZ2V0U3lzdGVtKCkpXG4gICAgc3lzdGVtRXh0ZW5kKHRoaXMuc3lzdGVtLCBwbHVnaW5TeXN0ZW0pXG4gICAgaWYocmVidWlsZCkge1xuICAgICAgdGhpcy5idWlsZFN5c3RlbSgpXG4gICAgfVxuXG4gICAgY29uc3QgbmVlZEFub3RoZXJSZWJ1aWxkID0gY2FsbEFmdGVyTG9hZC5jYWxsKHRoaXMuc3lzdGVtLCBwbHVnaW5zLCB0aGlzLmdldFN5c3RlbSgpKVxuXG4gICAgaWYobmVlZEFub3RoZXJSZWJ1aWxkKSB7XG4gICAgICB0aGlzLmJ1aWxkU3lzdGVtKClcbiAgICB9XG4gIH1cblxuICBidWlsZFN5c3RlbShidWlsZFJlZHVjZXI9dHJ1ZSkge1xuICAgIGxldCBkaXNwYXRjaCA9IHRoaXMuZ2V0U3RvcmUoKS5kaXNwYXRjaFxuICAgIGxldCBnZXRTdGF0ZSA9IHRoaXMuZ2V0U3RvcmUoKS5nZXRTdGF0ZVxuXG4gICAgdGhpcy5ib3VuZFN5c3RlbSA9IE9iamVjdC5hc3NpZ24oe30sXG4gICAgICAgIHRoaXMuZ2V0Um9vdEluamVjdHMoKSxcbiAgICAgICAgdGhpcy5nZXRXcmFwcGVkQW5kQm91bmRBY3Rpb25zKGRpc3BhdGNoKSxcbiAgICAgICAgdGhpcy5nZXRXcmFwcGVkQW5kQm91bmRTZWxlY3RvcnMoZ2V0U3RhdGUsIHRoaXMuZ2V0U3lzdGVtKSxcbiAgICAgICAgdGhpcy5nZXRTdGF0ZVRodW5rcyhnZXRTdGF0ZSksXG4gICAgICAgIHRoaXMuZ2V0Rm4oKSxcbiAgICAgICAgdGhpcy5nZXRDb25maWdzKClcbiAgICAgKVxuXG4gICAgaWYoYnVpbGRSZWR1Y2VyKVxuICAgICAgdGhpcy5yZWJ1aWxkUmVkdWNlcigpXG4gIH1cblxuICBfZ2V0U3lzdGVtKCkge1xuICAgIHJldHVybiB0aGlzLmJvdW5kU3lzdGVtXG4gIH1cblxuICBnZXRSb290SW5qZWN0cygpIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7XG4gICAgICBnZXRTeXN0ZW06IHRoaXMuZ2V0U3lzdGVtLFxuICAgICAgZ2V0U3RvcmU6IHRoaXMuZ2V0U3RvcmUuYmluZCh0aGlzKSxcbiAgICAgIGdldENvbXBvbmVudHM6IHRoaXMuZ2V0Q29tcG9uZW50cy5iaW5kKHRoaXMpLFxuICAgICAgZ2V0U3RhdGU6IHRoaXMuZ2V0U3RvcmUoKS5nZXRTdGF0ZSxcbiAgICAgIGdldENvbmZpZ3M6IHRoaXMuX2dldENvbmZpZ3MuYmluZCh0aGlzKSxcbiAgICAgIEltLFxuICAgICAgUmVhY3RcbiAgICB9LCB0aGlzLnN5c3RlbS5yb290SW5qZWN0cyB8fCB7fSlcbiAgfVxuXG4gIF9nZXRDb25maWdzKCl7XG4gICAgcmV0dXJuIHRoaXMuc3lzdGVtLmNvbmZpZ3NcbiAgfVxuXG4gIGdldENvbmZpZ3MoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbmZpZ3M6IHRoaXMuc3lzdGVtLmNvbmZpZ3NcbiAgICB9XG4gIH1cblxuICBzZXRDb25maWdzKGNvbmZpZ3MpIHtcbiAgICB0aGlzLnN5c3RlbS5jb25maWdzID0gY29uZmlnc1xuICB9XG5cbiAgcmVidWlsZFJlZHVjZXIoKSB7XG4gICAgdGhpcy5zdG9yZS5yZXBsYWNlUmVkdWNlcihidWlsZFJlZHVjZXIodGhpcy5zeXN0ZW0uc3RhdGVQbHVnaW5zLCB0aGlzLmdldFN5c3RlbSkpXG4gIH1cblxuICAvKipcbiAgICogR2VuZXJpYyBnZXR0ZXIgZnJvbSBzeXN0ZW0uc3RhdGVQbHVnaW5zXG4gICAqXG4gICAqL1xuICBnZXRUeXBlKG5hbWUpIHtcbiAgICBsZXQgdXBOYW1lID0gbmFtZVswXS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxKVxuICAgIHJldHVybiBvYmpSZWR1Y2UodGhpcy5zeXN0ZW0uc3RhdGVQbHVnaW5zLCAodmFsLCBuYW1lc3BhY2UpID0+IHtcbiAgICAgICAgbGV0IHRoaW5nID0gdmFsW25hbWVdXG4gICAgICAgIGlmKHRoaW5nKVxuICAgICAgICByZXR1cm4ge1tuYW1lc3BhY2UrdXBOYW1lXTogIHRoaW5nfVxuICAgICAgfSlcbiAgfVxuXG4gIGdldFNlbGVjdG9ycygpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRUeXBlKFwic2VsZWN0b3JzXCIpXG4gIH1cblxuICBnZXRBY3Rpb25zKCkge1xuICAgIGxldCBhY3Rpb25Ib2xkZXJzID0gdGhpcy5nZXRUeXBlKFwiYWN0aW9uc1wiKVxuXG4gICAgcmV0dXJuIG9iak1hcChhY3Rpb25Ib2xkZXJzLCAoYWN0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIG9ialJlZHVjZShhY3Rpb25zLCAoYWN0aW9uLCBhY3Rpb25OYW1lKSA9PiB7XG4gICAgICAgIGlmKGlzRm4oYWN0aW9uKSlcbiAgICAgICAgICByZXR1cm4ge1thY3Rpb25OYW1lXTogYWN0aW9ufVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgZ2V0V3JhcHBlZEFuZEJvdW5kQWN0aW9ucyhkaXNwYXRjaCkge1xuICAgIGxldCBhY3Rpb25Hcm91cHMgPSB0aGlzLmdldEJvdW5kQWN0aW9ucyhkaXNwYXRjaClcbiAgICAgIHJldHVybiBvYmpNYXAoYWN0aW9uR3JvdXBzLCAoYWN0aW9ucywgYWN0aW9uR3JvdXBOYW1lKSA9PiB7XG4gICAgICAgIGxldCB3cmFwcGVycyA9IHRoaXMuc3lzdGVtLnN0YXRlUGx1Z2luc1thY3Rpb25Hcm91cE5hbWUuc2xpY2UoMCwtNyldLndyYXBBY3Rpb25zXG4gICAgICAgICAgaWYod3JhcHBlcnMpIHtcbiAgICAgICAgICAgIHJldHVybiBvYmpNYXAoYWN0aW9ucywgKGFjdGlvbiwgYWN0aW9uTmFtZSkgPT4ge1xuICAgICAgICAgICAgICBsZXQgd3JhcCA9IHdyYXBwZXJzW2FjdGlvbk5hbWVdXG4gICAgICAgICAgICAgIGlmKCF3cmFwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjdGlvblxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYoIUFycmF5LmlzQXJyYXkod3JhcCkpIHtcbiAgICAgICAgICAgICAgICB3cmFwID0gW3dyYXBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIHdyYXAucmVkdWNlKChhY2MsIGZuKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IG5ld0FjdGlvbiA9ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZm4oYWNjLCB0aGlzLmdldFN5c3RlbSgpKSguLi5hcmdzKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZighaXNGbihuZXdBY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwid3JhcEFjdGlvbnMgbmVlZHMgdG8gcmV0dXJuIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgbmV3IGZ1bmN0aW9uIChpZSB0aGUgd3JhcHBlZCBhY3Rpb24pXCIpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwV2l0aFRyeUNhdGNoKG5ld0FjdGlvbiwgdGhpcy5nZXRTeXN0ZW0pXG4gICAgICAgICAgICAgIH0sIGFjdGlvbiB8fCBGdW5jdGlvbi5wcm90b3R5cGUpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjdGlvbnNcbiAgICAgIH0pXG4gIH1cblxuICBnZXRXcmFwcGVkQW5kQm91bmRTZWxlY3RvcnMoZ2V0U3RhdGUsIGdldFN5c3RlbSkge1xuICAgIGxldCBzZWxlY3Rvckdyb3VwcyA9IHRoaXMuZ2V0Qm91bmRTZWxlY3RvcnMoZ2V0U3RhdGUsIGdldFN5c3RlbSlcbiAgICAgIHJldHVybiBvYmpNYXAoc2VsZWN0b3JHcm91cHMsIChzZWxlY3RvcnMsIHNlbGVjdG9yR3JvdXBOYW1lKSA9PiB7XG4gICAgICAgIGxldCBzdGF0ZU5hbWUgPSBbc2VsZWN0b3JHcm91cE5hbWUuc2xpY2UoMCwgLTkpXSAvLyBzZWxlY3RvcnMgPSA5IGNoYXJzXG4gICAgICAgIGxldCB3cmFwcGVycyA9IHRoaXMuc3lzdGVtLnN0YXRlUGx1Z2luc1tzdGF0ZU5hbWVdLndyYXBTZWxlY3RvcnNcbiAgICAgICAgICBpZih3cmFwcGVycykge1xuICAgICAgICAgICAgcmV0dXJuIG9iak1hcChzZWxlY3RvcnMsIChzZWxlY3Rvciwgc2VsZWN0b3JOYW1lKSA9PiB7XG4gICAgICAgICAgICAgIGxldCB3cmFwID0gd3JhcHBlcnNbc2VsZWN0b3JOYW1lXVxuICAgICAgICAgICAgICBpZighd3JhcCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxlY3RvclxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYoIUFycmF5LmlzQXJyYXkod3JhcCkpIHtcbiAgICAgICAgICAgICAgICB3cmFwID0gW3dyYXBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIHdyYXAucmVkdWNlKChhY2MsIGZuKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHdyYXBwZWRTZWxlY3RvciA9ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZm4oYWNjLCB0aGlzLmdldFN5c3RlbSgpKShnZXRTdGF0ZSgpLmdldEluKHN0YXRlTmFtZSksIC4uLmFyZ3MpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmKCFpc0ZuKHdyYXBwZWRTZWxlY3RvcikpIHtcbiAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJ3cmFwU2VsZWN0b3IgbmVlZHMgdG8gcmV0dXJuIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgbmV3IGZ1bmN0aW9uIChpZSB0aGUgd3JhcHBlZCBhY3Rpb24pXCIpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkU2VsZWN0b3JcbiAgICAgICAgICAgICAgfSwgc2VsZWN0b3IgfHwgRnVuY3Rpb24ucHJvdG90eXBlKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZWxlY3RvcnNcbiAgICAgIH0pXG4gIH1cblxuICBnZXRTdGF0ZXMoc3RhdGUpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5zeXN0ZW0uc3RhdGVQbHVnaW5zKS5yZWR1Y2UoKG9iaiwga2V5KSA9PiB7XG4gICAgICBvYmpba2V5XSA9IHN0YXRlLmdldChrZXkpXG4gICAgICByZXR1cm4gb2JqXG4gICAgfSwge30pXG4gIH1cblxuICBnZXRTdGF0ZVRodW5rcyhnZXRTdGF0ZSkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLnN5c3RlbS5zdGF0ZVBsdWdpbnMpLnJlZHVjZSgob2JqLCBrZXkpID0+IHtcbiAgICAgICAgb2JqW2tleV0gPSAoKT0+IGdldFN0YXRlKCkuZ2V0KGtleSlcbiAgICByZXR1cm4gb2JqXG4gIH0sIHt9KVxuICB9XG5cbiAgZ2V0Rm4oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZuOiB0aGlzLnN5c3RlbS5mblxuICAgIH1cbiAgfVxuXG4gIGdldENvbXBvbmVudHMoY29tcG9uZW50KSB7XG4gICAgY29uc3QgcmVzID0gdGhpcy5zeXN0ZW0uY29tcG9uZW50c1tjb21wb25lbnRdXG5cbiAgICBpZihBcnJheS5pc0FycmF5KHJlcykpIHtcbiAgICAgIHJldHVybiByZXMucmVkdWNlKChvcmksIHdyYXBwZXIpID0+IHtcbiAgICAgICAgcmV0dXJuIHdyYXBwZXIob3JpLCB0aGlzLmdldFN5c3RlbSgpKVxuICAgICAgfSlcbiAgICB9XG4gICAgaWYodHlwZW9mIGNvbXBvbmVudCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgcmV0dXJuIHRoaXMuc3lzdGVtLmNvbXBvbmVudHNbY29tcG9uZW50XVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN5c3RlbS5jb21wb25lbnRzXG4gIH1cblxuICBnZXRCb3VuZFNlbGVjdG9ycyhnZXRTdGF0ZSwgZ2V0U3lzdGVtKSB7XG4gICAgcmV0dXJuIG9iak1hcCh0aGlzLmdldFNlbGVjdG9ycygpLCAob2JqLCBrZXkpID0+IHtcbiAgICAgIGxldCBzdGF0ZU5hbWUgPSBba2V5LnNsaWNlKDAsIC05KV0gLy8gc2VsZWN0b3JzID0gOSBjaGFyc1xuICAgICAgY29uc3QgZ2V0TmVzdGVkU3RhdGUgPSAoKT0+IGdldFN0YXRlKCkuZ2V0SW4oc3RhdGVOYW1lKVxuXG4gICAgICByZXR1cm4gb2JqTWFwKG9iaiwgKGZuKSA9PiB7XG4gICAgICAgIHJldHVybiAoLi4uYXJncykgPT4ge1xuICAgICAgICAgIGxldCByZXMgPSB3cmFwV2l0aFRyeUNhdGNoKGZuLCB0aGlzLmdldFN5c3RlbSkuYXBwbHkobnVsbCwgW2dldE5lc3RlZFN0YXRlKCksIC4uLmFyZ3NdKVxuXG4gICAgICAgICAgLy8gIElmIGEgc2VsZWN0b3IgcmV0dXJucyBhIGZ1bmN0aW9uLCBnaXZlIGl0IHRoZSBzeXN0ZW0gLSBmb3IgYWR2YW5jZWQgdXNhZ2VcbiAgICAgICAgICBpZih0eXBlb2YocmVzKSA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgICAgcmVzID0gd3JhcFdpdGhUcnlDYXRjaChyZXMsIHRoaXMuZ2V0U3lzdGVtKShnZXRTeXN0ZW0oKSlcblxuICAgICAgICAgIHJldHVybiByZXNcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgZ2V0Qm91bmRBY3Rpb25zKGRpc3BhdGNoKSB7XG5cbiAgICBkaXNwYXRjaCA9IGRpc3BhdGNoIHx8IHRoaXMuZ2V0U3RvcmUoKS5kaXNwYXRjaFxuXG4gICAgY29uc3QgYWN0aW9ucyA9IHRoaXMuZ2V0QWN0aW9ucygpXG5cbiAgICBjb25zdCBwcm9jZXNzID0gY3JlYXRvciA9PntcbiAgICAgIGlmKCB0eXBlb2YoIGNyZWF0b3IgKSAhPT0gXCJmdW5jdGlvblwiICkge1xuICAgICAgICByZXR1cm4gb2JqTWFwKGNyZWF0b3IsIHByb3AgPT4gcHJvY2Vzcyhwcm9wKSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICggLi4uYXJncyApPT57XG4gICAgICAgIHZhciBhY3Rpb24gPSBudWxsXG4gICAgICAgIHRyeXtcbiAgICAgICAgICBhY3Rpb24gPSBjcmVhdG9yKCAuLi5hcmdzIClcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCggZSApe1xuICAgICAgICAgIGFjdGlvbiA9IHt0eXBlOiBORVdfVEhST1dOX0VSUiwgZXJyb3I6IHRydWUsIHBheWxvYWQ6IHNlcmlhbGl6ZUVycm9yKGUpIH1cbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5e1xuICAgICAgICAgIHJldHVybiBhY3Rpb24gLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnNhZmUtZmluYWxseVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG4gICAgcmV0dXJuIG9iak1hcChhY3Rpb25zLCBhY3Rpb25DcmVhdG9yID0+IGJpbmRBY3Rpb25DcmVhdG9ycyggcHJvY2VzcyggYWN0aW9uQ3JlYXRvciApLCBkaXNwYXRjaCApIClcbiAgfVxuXG4gIGdldE1hcFN0YXRlVG9Qcm9wcygpIHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZ2V0U3lzdGVtKCkpXG4gICAgfVxuICB9XG5cbiAgZ2V0TWFwRGlzcGF0Y2hUb1Byb3BzKGV4dHJhcykge1xuICAgIHJldHVybiAoZGlzcGF0Y2gpID0+IHtcbiAgICAgIHJldHVybiBkZWVwRXh0ZW5kKHt9LCB0aGlzLmdldFdyYXBwZWRBbmRCb3VuZEFjdGlvbnMoZGlzcGF0Y2gpLCB0aGlzLmdldEZuKCksIGV4dHJhcylcbiAgICB9XG4gIH1cblxufVxuXG5mdW5jdGlvbiBjb21iaW5lUGx1Z2lucyhwbHVnaW5zLCB0b29sYm94KSB7XG4gIGlmKGlzT2JqZWN0KHBsdWdpbnMpICYmICFpc0FycmF5KHBsdWdpbnMpKSB7XG4gICAgcmV0dXJuIG1lcmdlKHt9LCBwbHVnaW5zKVxuICB9XG5cbiAgaWYoaXNGdW5jKHBsdWdpbnMpKSB7XG4gICAgcmV0dXJuIGNvbWJpbmVQbHVnaW5zKHBsdWdpbnModG9vbGJveCksIHRvb2xib3gpXG4gIH1cblxuICBpZihpc0FycmF5KHBsdWdpbnMpKSB7XG4gICAgcmV0dXJuIHBsdWdpbnNcbiAgICAgIC5tYXAocGx1Z2luID0+IGNvbWJpbmVQbHVnaW5zKHBsdWdpbiwgdG9vbGJveCkpXG4gICAgICAucmVkdWNlKHN5c3RlbUV4dGVuZCwgeyBjb21wb25lbnRzOiB0b29sYm94LmdldENvbXBvbmVudHMoKSB9KVxuICB9XG5cbiAgcmV0dXJuIHt9XG59XG5cbmZ1bmN0aW9uIGNhbGxBZnRlckxvYWQocGx1Z2lucywgc3lzdGVtLCB7IGhhc0xvYWRlZCB9ID0ge30pIHtcbiAgbGV0IGNhbGxlZFNvbWV0aGluZyA9IGhhc0xvYWRlZFxuICBpZihpc09iamVjdChwbHVnaW5zKSAmJiAhaXNBcnJheShwbHVnaW5zKSkge1xuICAgIGlmKHR5cGVvZiBwbHVnaW5zLmFmdGVyTG9hZCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBjYWxsZWRTb21ldGhpbmcgPSB0cnVlXG4gICAgICB3cmFwV2l0aFRyeUNhdGNoKHBsdWdpbnMuYWZ0ZXJMb2FkLCBzeXN0ZW0uZ2V0U3lzdGVtKS5jYWxsKHRoaXMsIHN5c3RlbSlcbiAgICB9XG4gIH1cblxuICBpZihpc0Z1bmMocGx1Z2lucykpXG4gICAgcmV0dXJuIGNhbGxBZnRlckxvYWQuY2FsbCh0aGlzLCBwbHVnaW5zKHN5c3RlbSksIHN5c3RlbSwgeyBoYXNMb2FkZWQ6IGNhbGxlZFNvbWV0aGluZyB9KVxuXG4gIGlmKGlzQXJyYXkocGx1Z2lucykpIHtcbiAgICByZXR1cm4gcGx1Z2lucy5tYXAocGx1Z2luID0+IGNhbGxBZnRlckxvYWQuY2FsbCh0aGlzLCBwbHVnaW4sIHN5c3RlbSwgeyBoYXNMb2FkZWQ6IGNhbGxlZFNvbWV0aGluZyB9KSlcbiAgfVxuXG4gIHJldHVybiBjYWxsZWRTb21ldGhpbmdcbn1cblxuLy8gV3JhcHMgZGVlcEV4dGVuZCwgdG8gYWNjb3VudCBmb3IgY2VydGFpbiBmaWVsZHMsIGJlaW5nIHdyYXBwZXJzLlxuLy8gSWU6IHdlIG5lZWQgdG8gY29udmVydCBzb21lIGZpZWxkcyBpbnRvIGFycmF5cywgYW5kIGFwcGVuZCB0byB0aGVtLlxuLy8gUmF0aGVyIHRoYW4gb3ZlcndyaXRlXG5mdW5jdGlvbiBzeXN0ZW1FeHRlbmQoZGVzdD17fSwgc3JjPXt9KSB7XG5cbiAgaWYoIWlzT2JqZWN0KGRlc3QpKSB7XG4gICAgcmV0dXJuIHt9XG4gIH1cbiAgaWYoIWlzT2JqZWN0KHNyYykpIHtcbiAgICByZXR1cm4gZGVzdFxuICB9XG5cbiAgLy8gV3JhcCBjb21wb25lbnRzXG4gIC8vIFBhcnNlcyBleGlzdGluZyBjb21wb25lbnRzIGluIHRoZSBzeXN0ZW0sIGFuZCBwcmVwYXJlcyB0aGVtIGZvciB3cmFwcGluZyB2aWEgZ2V0Q29tcG9uZW50c1xuICBpZihzcmMud3JhcENvbXBvbmVudHMpIHtcbiAgICBvYmpNYXAoc3JjLndyYXBDb21wb25lbnRzLCAod3JhcHBlckZuLCBrZXkpID0+IHtcbiAgICAgIGNvbnN0IG9yaSA9IGRlc3QuY29tcG9uZW50cyAmJiBkZXN0LmNvbXBvbmVudHNba2V5XVxuICAgICAgaWYob3JpICYmIEFycmF5LmlzQXJyYXkob3JpKSkge1xuICAgICAgICBkZXN0LmNvbXBvbmVudHNba2V5XSA9IG9yaS5jb25jYXQoW3dyYXBwZXJGbl0pXG4gICAgICAgIGRlbGV0ZSBzcmMud3JhcENvbXBvbmVudHNba2V5XVxuICAgICAgfSBlbHNlIGlmKG9yaSkge1xuICAgICAgICBkZXN0LmNvbXBvbmVudHNba2V5XSA9IFtvcmksIHdyYXBwZXJGbl1cbiAgICAgICAgZGVsZXRlIHNyYy53cmFwQ29tcG9uZW50c1trZXldXG4gICAgICB9XG4gICAgfSlcblxuICAgIGlmKCFPYmplY3Qua2V5cyhzcmMud3JhcENvbXBvbmVudHMpLmxlbmd0aCkge1xuICAgICAgLy8gb25seSBkZWxldGUgd3JhcENvbXBvbmVudHMgaWYgd2UndmUgbWF0Y2hlZCBhbGwgb2Ygb3VyIHdyYXBwZXJzIHRvIGNvbXBvbmVudHNcbiAgICAgIC8vIHRoaXMgaGFuZGxlcyBjYXNlcyB3aGVyZSB0aGUgY29tcG9uZW50IHRvIHdyYXAgbWF5IGJlIG91dCBvZiBvdXIgc2NvcGUsXG4gICAgICAvLyBidXQgYSBoaWdoZXIgcmVjdXJzaXZlIGBjb21iaW5lUGx1Z2luc2AgY2FsbCB3aWxsIGJlIGFibGUgdG8gaGFuZGxlIGl0LlxuICAgICAgZGVsZXRlIHNyYy53cmFwQ29tcG9uZW50c1xuICAgIH1cbiAgfVxuXG5cbiAgLy8gQWNjb3VudCBmb3Igd3JhcEFjdGlvbnMsIG1ha2UgaXQgYW4gYXJyYXkgYW5kIGFwcGVuZCB0byBpdFxuICAvLyBNb2RpZmllcyBgc3JjYFxuICAvLyA4MCUgb2YgdGhpcyBjb2RlIGlzIGp1c3Qgc2FmZSB0cmF2ZXJzYWwuIFdlIG5lZWQgdG8gYWRkcmVzcyB0aGF0ICggaWU6IHVzZSBhIGxpYiApXG4gIGNvbnN0IHsgc3RhdGVQbHVnaW5zIH0gPSBkZXN0XG4gIGlmKGlzT2JqZWN0KHN0YXRlUGx1Z2lucykpIHtcbiAgICBmb3IobGV0IG5hbWVzcGFjZSBpbiBzdGF0ZVBsdWdpbnMpIHtcbiAgICAgIGNvbnN0IG5hbWVzcGFjZU9iaiA9IHN0YXRlUGx1Z2luc1tuYW1lc3BhY2VdXG4gICAgICBpZighaXNPYmplY3QobmFtZXNwYWNlT2JqKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IHdyYXBBY3Rpb25zLCB3cmFwU2VsZWN0b3JzIH0gPSBuYW1lc3BhY2VPYmpcblxuICAgICAgLy8gcHJvY2VzcyBhY3Rpb24gd3JhcHBpbmdcbiAgICAgIGlmIChpc09iamVjdCh3cmFwQWN0aW9ucykpIHtcbiAgICAgICAgZm9yKGxldCBhY3Rpb25OYW1lIGluIHdyYXBBY3Rpb25zKSB7XG4gICAgICAgICAgbGV0IGFjdGlvbiA9IHdyYXBBY3Rpb25zW2FjdGlvbk5hbWVdXG5cbiAgICAgICAgICAvLyBUaGlzIHNob3VsZCBvbmx5IGhhcHBlbiBpZiBkZXN0IGlzIHRoZSBmaXJzdCBwbHVnaW4sIHNpbmNlIGludm9jYXRpb25zIGFmdGVyIHRoYXQgd2lsbCBlbnN1cmUgaXRzIGFuIGFycmF5XG4gICAgICAgICAgaWYoIUFycmF5LmlzQXJyYXkoYWN0aW9uKSkge1xuICAgICAgICAgICAgYWN0aW9uID0gW2FjdGlvbl1cbiAgICAgICAgICAgIHdyYXBBY3Rpb25zW2FjdGlvbk5hbWVdID0gYWN0aW9uIC8vIFB1dCB0aGUgdmFsdWUgaW5zaWRlIGFuIGFycmF5XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYoc3JjICYmIHNyYy5zdGF0ZVBsdWdpbnMgJiYgc3JjLnN0YXRlUGx1Z2luc1tuYW1lc3BhY2VdICYmIHNyYy5zdGF0ZVBsdWdpbnNbbmFtZXNwYWNlXS53cmFwQWN0aW9ucyAmJiBzcmMuc3RhdGVQbHVnaW5zW25hbWVzcGFjZV0ud3JhcEFjdGlvbnNbYWN0aW9uTmFtZV0pIHtcbiAgICAgICAgICAgIHNyYy5zdGF0ZVBsdWdpbnNbbmFtZXNwYWNlXS53cmFwQWN0aW9uc1thY3Rpb25OYW1lXSA9IHdyYXBBY3Rpb25zW2FjdGlvbk5hbWVdLmNvbmNhdChzcmMuc3RhdGVQbHVnaW5zW25hbWVzcGFjZV0ud3JhcEFjdGlvbnNbYWN0aW9uTmFtZV0pXG4gICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gcHJvY2VzcyBzZWxlY3RvciB3cmFwcGluZ1xuICAgICAgaWYgKGlzT2JqZWN0KHdyYXBTZWxlY3RvcnMpKSB7XG4gICAgICAgIGZvcihsZXQgc2VsZWN0b3JOYW1lIGluIHdyYXBTZWxlY3RvcnMpIHtcbiAgICAgICAgICBsZXQgc2VsZWN0b3IgPSB3cmFwU2VsZWN0b3JzW3NlbGVjdG9yTmFtZV1cblxuICAgICAgICAgIC8vIFRoaXMgc2hvdWxkIG9ubHkgaGFwcGVuIGlmIGRlc3QgaXMgdGhlIGZpcnN0IHBsdWdpbiwgc2luY2UgaW52b2NhdGlvbnMgYWZ0ZXIgdGhhdCB3aWxsIGVuc3VyZSBpdHMgYW4gYXJyYXlcbiAgICAgICAgICBpZighQXJyYXkuaXNBcnJheShzZWxlY3RvcikpIHtcbiAgICAgICAgICAgIHNlbGVjdG9yID0gW3NlbGVjdG9yXVxuICAgICAgICAgICAgd3JhcFNlbGVjdG9yc1tzZWxlY3Rvck5hbWVdID0gc2VsZWN0b3IgLy8gUHV0IHRoZSB2YWx1ZSBpbnNpZGUgYW4gYXJyYXlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZihzcmMgJiYgc3JjLnN0YXRlUGx1Z2lucyAmJiBzcmMuc3RhdGVQbHVnaW5zW25hbWVzcGFjZV0gJiYgc3JjLnN0YXRlUGx1Z2luc1tuYW1lc3BhY2VdLndyYXBTZWxlY3RvcnMgJiYgc3JjLnN0YXRlUGx1Z2luc1tuYW1lc3BhY2VdLndyYXBTZWxlY3RvcnNbc2VsZWN0b3JOYW1lXSkge1xuICAgICAgICAgICAgc3JjLnN0YXRlUGx1Z2luc1tuYW1lc3BhY2VdLndyYXBTZWxlY3RvcnNbc2VsZWN0b3JOYW1lXSA9IHdyYXBTZWxlY3RvcnNbc2VsZWN0b3JOYW1lXS5jb25jYXQoc3JjLnN0YXRlUGx1Z2luc1tuYW1lc3BhY2VdLndyYXBTZWxlY3RvcnNbc2VsZWN0b3JOYW1lXSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZWVwRXh0ZW5kKGRlc3QsIHNyYylcbn1cblxuZnVuY3Rpb24gYnVpbGRSZWR1Y2VyKHN0YXRlcywgZ2V0U3lzdGVtKSB7XG4gIGxldCByZWR1Y2VyT2JqID0gb2JqTWFwKHN0YXRlcywgKHZhbCkgPT4ge1xuICAgIHJldHVybiB2YWwucmVkdWNlcnNcbiAgfSlcbiAgcmV0dXJuIGFsbFJlZHVjZXJzKHJlZHVjZXJPYmosIGdldFN5c3RlbSlcbn1cblxuZnVuY3Rpb24gYWxsUmVkdWNlcnMocmVkdWNlclN5c3RlbSwgZ2V0U3lzdGVtKSB7XG4gIGxldCByZWR1Y2VycyA9IE9iamVjdC5rZXlzKHJlZHVjZXJTeXN0ZW0pLnJlZHVjZSgob2JqLCBrZXkpID0+IHtcbiAgICBvYmpba2V5XSA9IG1ha2VSZWR1Y2VyKHJlZHVjZXJTeXN0ZW1ba2V5XSwgZ2V0U3lzdGVtKVxuICAgIHJldHVybiBvYmpcbiAgfSx7fSlcblxuICBpZighT2JqZWN0LmtleXMocmVkdWNlcnMpLmxlbmd0aCkge1xuICAgIHJldHVybiBpZEZuXG4gIH1cblxuICByZXR1cm4gY29tYmluZVJlZHVjZXJzKHJlZHVjZXJzKVxufVxuXG5mdW5jdGlvbiBtYWtlUmVkdWNlcihyZWR1Y2VyT2JqLCBnZXRTeXN0ZW0pIHtcbiAgcmV0dXJuIChzdGF0ZSA9IG5ldyBNYXAoKSwgYWN0aW9uKSA9PiB7XG4gICAgaWYoIXJlZHVjZXJPYmopXG4gICAgICByZXR1cm4gc3RhdGVcblxuICAgIGxldCByZWRGbiA9IChyZWR1Y2VyT2JqW2FjdGlvbi50eXBlXSlcbiAgICBpZihyZWRGbikge1xuICAgICAgY29uc3QgcmVzID0gd3JhcFdpdGhUcnlDYXRjaChyZWRGbiwgZ2V0U3lzdGVtKShzdGF0ZSwgYWN0aW9uKVxuICAgICAgLy8gSWYgdGhlIHRyeS9jYXRjaCB3cmFwcGVyIGtpY2tzIGluLCB3ZSdsbCBnZXQgbnVsbCBiYWNrLi4uXG4gICAgICAvLyBpbiB0aGF0IGNhc2UsIHdlIHdhbnQgdG8gYXZvaWQgbWFraW5nIGFueSBjaGFuZ2VzIHRvIHN0YXRlXG4gICAgICByZXR1cm4gcmVzID09PSBudWxsID8gc3RhdGUgOiByZXNcbiAgICB9XG4gICAgcmV0dXJuIHN0YXRlXG4gIH1cbn1cblxuZnVuY3Rpb24gd3JhcFdpdGhUcnlDYXRjaChmbiwgZ2V0U3lzdGVtLCB7XG4gIGxvZ0Vycm9ycyA9IHRydWVcbn0gPSB7fSkge1xuICBpZih0eXBlb2YgZm4gIT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiBmblxuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhpcywgLi4uYXJncylcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBpZihsb2dFcnJvcnMpIHtcbiAgICAgICAgY29uc3QgeyB1bmNhdWdodEV4Y2VwdGlvbkhhbmRsZXJ9ID0gZ2V0U3lzdGVtKCkuZ2V0Q29uZmlncygpXG4gICAgICAgIGlmICh0eXBlb2YgdW5jYXVnaHRFeGNlcHRpb25IYW5kbGVyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICB1bmNhdWdodEV4Y2VwdGlvbkhhbmRsZXIoZXJyb3IpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcilcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY29uZmlndXJlU3RvcmUocm9vdFJlZHVjZXIsIGluaXRpYWxTdGF0ZSwgZ2V0U3lzdGVtKSB7XG4gIGNvbnN0IHN0b3JlID0gY3JlYXRlU3RvcmVXaXRoTWlkZGxld2FyZShyb290UmVkdWNlciwgaW5pdGlhbFN0YXRlLCBnZXRTeXN0ZW0pXG5cbiAgLy8gaWYgKG1vZHVsZS5ob3QpIHtcbiAgLy8gICAvLyBFbmFibGUgV2VicGFjayBob3QgbW9kdWxlIHJlcGxhY2VtZW50IGZvciByZWR1Y2Vyc1xuICAvLyAgIG1vZHVsZS5ob3QuYWNjZXB0KFwicmVkdWNlcnMvaW5kZXhcIiwgKCkgPT4ge1xuICAvLyAgICAgY29uc3QgbmV4dFJvb3RSZWR1Y2VyID0gcmVxdWlyZShcInJlZHVjZXJzL2luZGV4XCIpXG4gIC8vICAgICBzdG9yZS5yZXBsYWNlUmVkdWNlcihuZXh0Um9vdFJlZHVjZXIpXG4gIC8vICAgfSlcbiAgLy8gfVxuXG4gIHJldHVybiBzdG9yZVxufVxuIiwidmFyIHggPSBmdW5jdGlvbih5KSB7XG5cdHZhciB4ID0ge307IF9fd2VicGFja19yZXF1aXJlX18uZCh4LCB5KTsgcmV0dXJuIHhcbn0gXG52YXIgeSA9IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgeyByZXR1cm4geDsgfTsgfVxudmFyIF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wiZGVmYXVsdFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3VybF9wYXJzZV82NDU2MTA1Zl9fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJpbXBvcnQgcGFyc2VVcmwgZnJvbSBcInVybC1wYXJzZVwiXG5pbXBvcnQgd2luIGZyb20gXCJjb3JlL3dpbmRvd1wiXG5pbXBvcnQgeyBidG9hLCBidWlsZEZvcm1EYXRhIH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuXG5leHBvcnQgY29uc3QgU0hPV19BVVRIX1BPUFVQID0gXCJzaG93X3BvcHVwXCJcbmV4cG9ydCBjb25zdCBBVVRIT1JJWkUgPSBcImF1dGhvcml6ZVwiXG5leHBvcnQgY29uc3QgTE9HT1VUID0gXCJsb2dvdXRcIlxuZXhwb3J0IGNvbnN0IEFVVEhPUklaRV9PQVVUSDIgPSBcImF1dGhvcml6ZV9vYXV0aDJcIlxuZXhwb3J0IGNvbnN0IENPTkZJR1VSRV9BVVRIID0gXCJjb25maWd1cmVfYXV0aFwiXG5leHBvcnQgY29uc3QgUkVTVE9SRV9BVVRIT1JJWkFUSU9OID0gXCJyZXN0b3JlX2F1dGhvcml6YXRpb25cIlxuXG5jb25zdCBzY29wZVNlcGFyYXRvciA9IFwiIFwiXG5cbmV4cG9ydCBmdW5jdGlvbiBzaG93RGVmaW5pdGlvbnMocGF5bG9hZCkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFNIT1dfQVVUSF9QT1BVUCxcbiAgICBwYXlsb2FkOiBwYXlsb2FkXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF1dGhvcml6ZShwYXlsb2FkKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogQVVUSE9SSVpFLFxuICAgIHBheWxvYWQ6IHBheWxvYWRcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgYXV0aG9yaXplV2l0aFBlcnNpc3RPcHRpb24gPSAocGF5bG9hZCkgPT4gKCB7IGF1dGhBY3Rpb25zIH0gKSA9PiB7XG4gIGF1dGhBY3Rpb25zLmF1dGhvcml6ZShwYXlsb2FkKVxuICBhdXRoQWN0aW9ucy5wZXJzaXN0QXV0aG9yaXphdGlvbklmTmVlZGVkKClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvZ291dChwYXlsb2FkKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogTE9HT1VULFxuICAgIHBheWxvYWQ6IHBheWxvYWRcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgbG9nb3V0V2l0aFBlcnNpc3RPcHRpb24gPSAocGF5bG9hZCkgPT4gKCB7IGF1dGhBY3Rpb25zIH0gKSA9PiB7XG4gIGF1dGhBY3Rpb25zLmxvZ291dChwYXlsb2FkKVxuICBhdXRoQWN0aW9ucy5wZXJzaXN0QXV0aG9yaXphdGlvbklmTmVlZGVkKClcbn1cblxuZXhwb3J0IGNvbnN0IHByZUF1dGhvcml6ZUltcGxpY2l0ID0gKHBheWxvYWQpID0+ICggeyBhdXRoQWN0aW9ucywgZXJyQWN0aW9ucyB9ICkgPT4ge1xuICBsZXQgeyBhdXRoICwgdG9rZW4sIGlzVmFsaWQgfSA9IHBheWxvYWRcbiAgbGV0IHsgc2NoZW1hLCBuYW1lIH0gPSBhdXRoXG4gIGxldCBmbG93ID0gc2NoZW1hLmdldChcImZsb3dcIilcblxuICAvLyByZW1vdmUgb2F1dGgyIHByb3BlcnR5IGZyb20gd2luZG93IGFmdGVyIHJlZGlyZWN0IGZyb20gYXV0aGVudGljYXRpb25cbiAgZGVsZXRlIHdpbi5zd2FnZ2VyVUlSZWRpcmVjdE9hdXRoMlxuXG4gIGlmICggZmxvdyAhPT0gXCJhY2Nlc3NDb2RlXCIgJiYgIWlzVmFsaWQgKSB7XG4gICAgZXJyQWN0aW9ucy5uZXdBdXRoRXJyKCB7XG4gICAgICBhdXRoSWQ6IG5hbWUsXG4gICAgICBzb3VyY2U6IFwiYXV0aFwiLFxuICAgICAgbGV2ZWw6IFwid2FybmluZ1wiLFxuICAgICAgbWVzc2FnZTogXCJBdXRob3JpemF0aW9uIG1heSBiZSB1bnNhZmUsIHBhc3NlZCBzdGF0ZSB3YXMgY2hhbmdlZCBpbiBzZXJ2ZXIgUGFzc2VkIHN0YXRlIHdhc24ndCByZXR1cm5lZCBmcm9tIGF1dGggc2VydmVyXCJcbiAgICB9KVxuICB9XG5cbiAgaWYgKCB0b2tlbi5lcnJvciApIHtcbiAgICBlcnJBY3Rpb25zLm5ld0F1dGhFcnIoe1xuICAgICAgYXV0aElkOiBuYW1lLFxuICAgICAgc291cmNlOiBcImF1dGhcIixcbiAgICAgIGxldmVsOiBcImVycm9yXCIsXG4gICAgICBtZXNzYWdlOiBKU09OLnN0cmluZ2lmeSh0b2tlbilcbiAgICB9KVxuICAgIHJldHVyblxuICB9XG5cbiAgYXV0aEFjdGlvbnMuYXV0aG9yaXplT2F1dGgyV2l0aFBlcnNpc3RPcHRpb24oeyBhdXRoLCB0b2tlbiB9KVxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBhdXRob3JpemVPYXV0aDIocGF5bG9hZCkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IEFVVEhPUklaRV9PQVVUSDIsXG4gICAgcGF5bG9hZDogcGF5bG9hZFxuICB9XG59XG5cblxuZXhwb3J0IGNvbnN0IGF1dGhvcml6ZU9hdXRoMldpdGhQZXJzaXN0T3B0aW9uID0gKHBheWxvYWQpID0+ICggeyBhdXRoQWN0aW9ucyB9ICkgPT4ge1xuICBhdXRoQWN0aW9ucy5hdXRob3JpemVPYXV0aDIocGF5bG9hZClcbiAgYXV0aEFjdGlvbnMucGVyc2lzdEF1dGhvcml6YXRpb25JZk5lZWRlZCgpXG59XG5cbmV4cG9ydCBjb25zdCBhdXRob3JpemVQYXNzd29yZCA9ICggYXV0aCApID0+ICggeyBhdXRoQWN0aW9ucyB9ICkgPT4ge1xuICBsZXQgeyBzY2hlbWEsIG5hbWUsIHVzZXJuYW1lLCBwYXNzd29yZCwgcGFzc3dvcmRUeXBlLCBjbGllbnRJZCwgY2xpZW50U2VjcmV0IH0gPSBhdXRoXG4gIGxldCBmb3JtID0ge1xuICAgIGdyYW50X3R5cGU6IFwicGFzc3dvcmRcIixcbiAgICBzY29wZTogYXV0aC5zY29wZXMuam9pbihzY29wZVNlcGFyYXRvciksXG4gICAgdXNlcm5hbWUsXG4gICAgcGFzc3dvcmRcbiAgfVxuICBsZXQgcXVlcnkgPSB7fVxuICBsZXQgaGVhZGVycyA9IHt9XG5cbiAgc3dpdGNoIChwYXNzd29yZFR5cGUpIHtcbiAgICBjYXNlIFwicmVxdWVzdC1ib2R5XCI6XG4gICAgICBzZXRDbGllbnRJZEFuZFNlY3JldChmb3JtLCBjbGllbnRJZCwgY2xpZW50U2VjcmV0KVxuICAgICAgYnJlYWtcblxuICAgIGNhc2UgXCJiYXNpY1wiOlxuICAgICAgaGVhZGVycy5BdXRob3JpemF0aW9uID0gXCJCYXNpYyBcIiArIGJ0b2EoY2xpZW50SWQgKyBcIjpcIiArIGNsaWVudFNlY3JldClcbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIGNvbnNvbGUud2FybihgV2FybmluZzogaW52YWxpZCBwYXNzd29yZFR5cGUgJHtwYXNzd29yZFR5cGV9IHdhcyBwYXNzZWQsIG5vdCBpbmNsdWRpbmcgY2xpZW50IGlkIGFuZCBzZWNyZXRgKVxuICB9XG5cbiAgcmV0dXJuIGF1dGhBY3Rpb25zLmF1dGhvcml6ZVJlcXVlc3QoeyBib2R5OiBidWlsZEZvcm1EYXRhKGZvcm0pLCB1cmw6IHNjaGVtYS5nZXQoXCJ0b2tlblVybFwiKSwgbmFtZSwgaGVhZGVycywgcXVlcnksIGF1dGh9KVxufVxuXG5mdW5jdGlvbiBzZXRDbGllbnRJZEFuZFNlY3JldCh0YXJnZXQsIGNsaWVudElkLCBjbGllbnRTZWNyZXQpIHtcbiAgaWYgKCBjbGllbnRJZCApIHtcbiAgICBPYmplY3QuYXNzaWduKHRhcmdldCwge2NsaWVudF9pZDogY2xpZW50SWR9KVxuICB9XG5cbiAgaWYgKCBjbGllbnRTZWNyZXQgKSB7XG4gICAgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHtjbGllbnRfc2VjcmV0OiBjbGllbnRTZWNyZXR9KVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBhdXRob3JpemVBcHBsaWNhdGlvbiA9ICggYXV0aCApID0+ICggeyBhdXRoQWN0aW9ucyB9ICkgPT4ge1xuICBsZXQgeyBzY2hlbWEsIHNjb3BlcywgbmFtZSwgY2xpZW50SWQsIGNsaWVudFNlY3JldCB9ID0gYXV0aFxuICBsZXQgaGVhZGVycyA9IHtcbiAgICBBdXRob3JpemF0aW9uOiBcIkJhc2ljIFwiICsgYnRvYShjbGllbnRJZCArIFwiOlwiICsgY2xpZW50U2VjcmV0KVxuICB9XG4gIGxldCBmb3JtID0ge1xuICAgIGdyYW50X3R5cGU6IFwiY2xpZW50X2NyZWRlbnRpYWxzXCIsXG4gICAgc2NvcGU6IHNjb3Blcy5qb2luKHNjb3BlU2VwYXJhdG9yKVxuICB9XG5cbiAgcmV0dXJuIGF1dGhBY3Rpb25zLmF1dGhvcml6ZVJlcXVlc3Qoe2JvZHk6IGJ1aWxkRm9ybURhdGEoZm9ybSksIG5hbWUsIHVybDogc2NoZW1hLmdldChcInRva2VuVXJsXCIpLCBhdXRoLCBoZWFkZXJzIH0pXG59XG5cbmV4cG9ydCBjb25zdCBhdXRob3JpemVBY2Nlc3NDb2RlV2l0aEZvcm1QYXJhbXMgPSAoIHsgYXV0aCwgcmVkaXJlY3RVcmwgfSApID0+ICggeyBhdXRoQWN0aW9ucyB9ICkgPT4ge1xuICBsZXQgeyBzY2hlbWEsIG5hbWUsIGNsaWVudElkLCBjbGllbnRTZWNyZXQsIGNvZGVWZXJpZmllciB9ID0gYXV0aFxuICBsZXQgZm9ybSA9IHtcbiAgICBncmFudF90eXBlOiBcImF1dGhvcml6YXRpb25fY29kZVwiLFxuICAgIGNvZGU6IGF1dGguY29kZSxcbiAgICBjbGllbnRfaWQ6IGNsaWVudElkLFxuICAgIGNsaWVudF9zZWNyZXQ6IGNsaWVudFNlY3JldCxcbiAgICByZWRpcmVjdF91cmk6IHJlZGlyZWN0VXJsLFxuICAgIGNvZGVfdmVyaWZpZXI6IGNvZGVWZXJpZmllclxuICB9XG5cbiAgcmV0dXJuIGF1dGhBY3Rpb25zLmF1dGhvcml6ZVJlcXVlc3Qoe2JvZHk6IGJ1aWxkRm9ybURhdGEoZm9ybSksIG5hbWUsIHVybDogc2NoZW1hLmdldChcInRva2VuVXJsXCIpLCBhdXRofSlcbn1cblxuZXhwb3J0IGNvbnN0IGF1dGhvcml6ZUFjY2Vzc0NvZGVXaXRoQmFzaWNBdXRoZW50aWNhdGlvbiA9ICggeyBhdXRoLCByZWRpcmVjdFVybCB9ICkgPT4gKCB7IGF1dGhBY3Rpb25zIH0gKSA9PiB7XG4gIGxldCB7IHNjaGVtYSwgbmFtZSwgY2xpZW50SWQsIGNsaWVudFNlY3JldCwgY29kZVZlcmlmaWVyIH0gPSBhdXRoXG4gIGxldCBoZWFkZXJzID0ge1xuICAgIEF1dGhvcml6YXRpb246IFwiQmFzaWMgXCIgKyBidG9hKGNsaWVudElkICsgXCI6XCIgKyBjbGllbnRTZWNyZXQpXG4gIH1cbiAgbGV0IGZvcm0gPSB7XG4gICAgZ3JhbnRfdHlwZTogXCJhdXRob3JpemF0aW9uX2NvZGVcIixcbiAgICBjb2RlOiBhdXRoLmNvZGUsXG4gICAgY2xpZW50X2lkOiBjbGllbnRJZCxcbiAgICByZWRpcmVjdF91cmk6IHJlZGlyZWN0VXJsLFxuICAgIGNvZGVfdmVyaWZpZXI6IGNvZGVWZXJpZmllclxuICB9XG5cbiAgcmV0dXJuIGF1dGhBY3Rpb25zLmF1dGhvcml6ZVJlcXVlc3Qoe2JvZHk6IGJ1aWxkRm9ybURhdGEoZm9ybSksIG5hbWUsIHVybDogc2NoZW1hLmdldChcInRva2VuVXJsXCIpLCBhdXRoLCBoZWFkZXJzfSlcbn1cblxuZXhwb3J0IGNvbnN0IGF1dGhvcml6ZVJlcXVlc3QgPSAoIGRhdGEgKSA9PiAoIHsgZm4sIGdldENvbmZpZ3MsIGF1dGhBY3Rpb25zLCBlcnJBY3Rpb25zLCBvYXMzU2VsZWN0b3JzLCBzcGVjU2VsZWN0b3JzLCBhdXRoU2VsZWN0b3JzIH0gKSA9PiB7XG4gIGxldCB7IGJvZHksIHF1ZXJ5PXt9LCBoZWFkZXJzPXt9LCBuYW1lLCB1cmwsIGF1dGggfSA9IGRhdGFcblxuICBsZXQgeyBhZGRpdGlvbmFsUXVlcnlTdHJpbmdQYXJhbXMgfSA9IGF1dGhTZWxlY3RvcnMuZ2V0Q29uZmlncygpIHx8IHt9XG5cbiAgbGV0IHBhcnNlZFVybFxuXG4gIGlmIChzcGVjU2VsZWN0b3JzLmlzT0FTMygpKSB7XG4gICAgbGV0IGZpbmFsU2VydmVyVXJsID0gb2FzM1NlbGVjdG9ycy5zZXJ2ZXJFZmZlY3RpdmVWYWx1ZShvYXMzU2VsZWN0b3JzLnNlbGVjdGVkU2VydmVyKCkpXG4gICAgcGFyc2VkVXJsID0gcGFyc2VVcmwodXJsLCBmaW5hbFNlcnZlclVybCwgdHJ1ZSlcbiAgfSBlbHNlIHtcbiAgICBwYXJzZWRVcmwgPSBwYXJzZVVybCh1cmwsIHNwZWNTZWxlY3RvcnMudXJsKCksIHRydWUpXG4gIH1cblxuICBpZih0eXBlb2YgYWRkaXRpb25hbFF1ZXJ5U3RyaW5nUGFyYW1zID09PSBcIm9iamVjdFwiKSB7XG4gICAgcGFyc2VkVXJsLnF1ZXJ5ID0gT2JqZWN0LmFzc2lnbih7fSwgcGFyc2VkVXJsLnF1ZXJ5LCBhZGRpdGlvbmFsUXVlcnlTdHJpbmdQYXJhbXMpXG4gIH1cblxuICBjb25zdCBmZXRjaFVybCA9IHBhcnNlZFVybC50b1N0cmluZygpXG5cbiAgbGV0IF9oZWFkZXJzID0gT2JqZWN0LmFzc2lnbih7XG4gICAgXCJBY2NlcHRcIjpcImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKlwiLFxuICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIsXG4gICAgXCJYLVJlcXVlc3RlZC1XaXRoXCI6IFwiWE1MSHR0cFJlcXVlc3RcIlxuICB9LCBoZWFkZXJzKVxuXG4gIGZuLmZldGNoKHtcbiAgICB1cmw6IGZldGNoVXJsLFxuICAgIG1ldGhvZDogXCJwb3N0XCIsXG4gICAgaGVhZGVyczogX2hlYWRlcnMsXG4gICAgcXVlcnk6IHF1ZXJ5LFxuICAgIGJvZHk6IGJvZHksXG4gICAgcmVxdWVzdEludGVyY2VwdG9yOiBnZXRDb25maWdzKCkucmVxdWVzdEludGVyY2VwdG9yLFxuICAgIHJlc3BvbnNlSW50ZXJjZXB0b3I6IGdldENvbmZpZ3MoKS5yZXNwb25zZUludGVyY2VwdG9yXG4gIH0pXG4gIC50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgIGxldCB0b2tlbiA9IEpTT04ucGFyc2UocmVzcG9uc2UuZGF0YSlcbiAgICBsZXQgZXJyb3IgPSB0b2tlbiAmJiAoIHRva2VuLmVycm9yIHx8IFwiXCIgKVxuICAgIGxldCBwYXJzZUVycm9yID0gdG9rZW4gJiYgKCB0b2tlbi5wYXJzZUVycm9yIHx8IFwiXCIgKVxuXG4gICAgaWYgKCAhcmVzcG9uc2Uub2sgKSB7XG4gICAgICBlcnJBY3Rpb25zLm5ld0F1dGhFcnIoIHtcbiAgICAgICAgYXV0aElkOiBuYW1lLFxuICAgICAgICBsZXZlbDogXCJlcnJvclwiLFxuICAgICAgICBzb3VyY2U6IFwiYXV0aFwiLFxuICAgICAgICBtZXNzYWdlOiByZXNwb25zZS5zdGF0dXNUZXh0XG4gICAgICB9IClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICggZXJyb3IgfHwgcGFyc2VFcnJvciApIHtcbiAgICAgIGVyckFjdGlvbnMubmV3QXV0aEVycih7XG4gICAgICAgIGF1dGhJZDogbmFtZSxcbiAgICAgICAgbGV2ZWw6IFwiZXJyb3JcIixcbiAgICAgICAgc291cmNlOiBcImF1dGhcIixcbiAgICAgICAgbWVzc2FnZTogSlNPTi5zdHJpbmdpZnkodG9rZW4pXG4gICAgICB9KVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgYXV0aEFjdGlvbnMuYXV0aG9yaXplT2F1dGgyV2l0aFBlcnNpc3RPcHRpb24oeyBhdXRoLCB0b2tlbn0pXG4gIH0pXG4gIC5jYXRjaChlID0+IHtcbiAgICBsZXQgZXJyID0gbmV3IEVycm9yKGUpXG4gICAgbGV0IG1lc3NhZ2UgPSBlcnIubWVzc2FnZVxuICAgIC8vIHN3YWdnZXItanMgd3JhcHMgdGhlIHJlc3BvbnNlIChpZiBhdmFpbGFibGUpIGludG8gdGhlIGUucmVzcG9uc2UgcHJvcGVydHk7XG4gICAgLy8gaW52ZXN0aWdhdGUgdG8gY2hlY2sgd2hldGhlciB0aGVyZSBhcmUgbW9yZSBkZXRhaWxzIG9uIHdoeSB0aGUgYXV0aG9yaXphdGlvblxuICAgIC8vIHJlcXVlc3QgZmFpbGVkIChhY2NvcmRpbmcgdG8gUkZDIDY0NzkpLlxuICAgIC8vIFNlZSBhbHNvIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpL2lzc3Vlcy80MDQ4XG4gICAgaWYgKGUucmVzcG9uc2UgJiYgZS5yZXNwb25zZS5kYXRhKSB7XG4gICAgICBjb25zdCBlcnJEYXRhID0gZS5yZXNwb25zZS5kYXRhXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBqc29uUmVzcG9uc2UgPSB0eXBlb2YgZXJyRGF0YSA9PT0gXCJzdHJpbmdcIiA/IEpTT04ucGFyc2UoZXJyRGF0YSkgOiBlcnJEYXRhXG4gICAgICAgIGlmIChqc29uUmVzcG9uc2UuZXJyb3IpXG4gICAgICAgICAgbWVzc2FnZSArPSBgLCBlcnJvcjogJHtqc29uUmVzcG9uc2UuZXJyb3J9YFxuICAgICAgICBpZiAoanNvblJlc3BvbnNlLmVycm9yX2Rlc2NyaXB0aW9uKVxuICAgICAgICAgIG1lc3NhZ2UgKz0gYCwgZGVzY3JpcHRpb246ICR7anNvblJlc3BvbnNlLmVycm9yX2Rlc2NyaXB0aW9ufWBcbiAgICAgIH0gY2F0Y2ggKGpzb25FcnJvcikge1xuICAgICAgICAvLyBJZ25vcmVcbiAgICAgIH1cbiAgICB9XG4gICAgZXJyQWN0aW9ucy5uZXdBdXRoRXJyKCB7XG4gICAgICBhdXRoSWQ6IG5hbWUsXG4gICAgICBsZXZlbDogXCJlcnJvclwiLFxuICAgICAgc291cmNlOiBcImF1dGhcIixcbiAgICAgIG1lc3NhZ2U6IG1lc3NhZ2VcbiAgICB9IClcbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpZ3VyZUF1dGgocGF5bG9hZCkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IENPTkZJR1VSRV9BVVRILFxuICAgIHBheWxvYWQ6IHBheWxvYWRcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzdG9yZUF1dGhvcml6YXRpb24ocGF5bG9hZCkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFJFU1RPUkVfQVVUSE9SSVpBVElPTixcbiAgICBwYXlsb2FkOiBwYXlsb2FkXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHBlcnNpc3RBdXRob3JpemF0aW9uSWZOZWVkZWQgPSAoKSA9PiAoIHsgYXV0aFNlbGVjdG9ycywgZ2V0Q29uZmlncyB9ICkgPT4ge1xuICBjb25zdCBjb25maWdzID0gZ2V0Q29uZmlncygpXG5cbiAgaWYgKCFjb25maWdzLnBlcnNpc3RBdXRob3JpemF0aW9uKSByZXR1cm5cblxuICAvLyBwZXJzaXN0IGF1dGhvcml6YXRpb24gdG8gbG9jYWwgc3RvcmFnZVxuICBjb25zdCBhdXRob3JpemVkID0gYXV0aFNlbGVjdG9ycy5hdXRob3JpemVkKCkudG9KUygpXG4gIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiYXV0aG9yaXplZFwiLCBKU09OLnN0cmluZ2lmeShhdXRob3JpemVkKSlcbn1cblxuZXhwb3J0IGNvbnN0IGF1dGhQb3B1cCA9ICh1cmwsIHN3YWdnZXJVSVJlZGlyZWN0T2F1dGgyKSA9PiAoICkgPT4ge1xuICB3aW4uc3dhZ2dlclVJUmVkaXJlY3RPYXV0aDIgPSBzd2FnZ2VyVUlSZWRpcmVjdE9hdXRoMlxuXG4gIHdpbi5vcGVuKHVybClcbn1cbiIsImltcG9ydCB7IGZyb21KUywgTWFwIH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgeyBidG9hLCBpc0Z1bmMgfSBmcm9tIFwiY29yZS91dGlsc1wiXG5cbmltcG9ydCB7XG4gIFNIT1dfQVVUSF9QT1BVUCxcbiAgQVVUSE9SSVpFLFxuICBBVVRIT1JJWkVfT0FVVEgyLFxuICBMT0dPVVQsXG4gIENPTkZJR1VSRV9BVVRILFxuICBSRVNUT1JFX0FVVEhPUklaQVRJT05cbn0gZnJvbSBcIi4vYWN0aW9uc1wiXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgW1NIT1dfQVVUSF9QT1BVUF06IChzdGF0ZSwgeyBwYXlsb2FkIH0gKSA9PntcbiAgICByZXR1cm4gc3RhdGUuc2V0KCBcInNob3dEZWZpbml0aW9uc1wiLCBwYXlsb2FkIClcbiAgfSxcblxuICBbQVVUSE9SSVpFXTogKHN0YXRlLCB7IHBheWxvYWQgfSApID0+e1xuICAgIGxldCBzZWN1cml0aWVzID0gZnJvbUpTKHBheWxvYWQpXG4gICAgbGV0IG1hcCA9IHN0YXRlLmdldChcImF1dGhvcml6ZWRcIikgfHwgTWFwKClcblxuICAgIC8vIHJlZmFjdG9yIHdpdGhNdXRhdGlvbnNcbiAgICBzZWN1cml0aWVzLmVudHJ5U2VxKCkuZm9yRWFjaCggKFsga2V5LCBzZWN1cml0eSBdKSA9PiB7XG4gICAgICBpZiAoIWlzRnVuYyhzZWN1cml0eS5nZXRJbikpIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlLnNldChcImF1dGhvcml6ZWRcIiwgbWFwKVxuICAgICAgfVxuICAgICAgbGV0IHR5cGUgPSBzZWN1cml0eS5nZXRJbihbXCJzY2hlbWFcIiwgXCJ0eXBlXCJdKVxuXG4gICAgICBpZiAoIHR5cGUgPT09IFwiYXBpS2V5XCIgfHwgdHlwZSA9PT0gXCJodHRwXCIgKSB7XG4gICAgICAgIG1hcCA9IG1hcC5zZXQoa2V5LCBzZWN1cml0eSlcbiAgICAgIH0gZWxzZSBpZiAoIHR5cGUgPT09IFwiYmFzaWNcIiApIHtcbiAgICAgICAgbGV0IHVzZXJuYW1lID0gc2VjdXJpdHkuZ2V0SW4oW1widmFsdWVcIiwgXCJ1c2VybmFtZVwiXSlcbiAgICAgICAgbGV0IHBhc3N3b3JkID0gc2VjdXJpdHkuZ2V0SW4oW1widmFsdWVcIiwgXCJwYXNzd29yZFwiXSlcblxuICAgICAgICBtYXAgPSBtYXAuc2V0SW4oW2tleSwgXCJ2YWx1ZVwiXSwge1xuICAgICAgICAgIHVzZXJuYW1lOiB1c2VybmFtZSxcbiAgICAgICAgICBoZWFkZXI6IFwiQmFzaWMgXCIgKyBidG9hKHVzZXJuYW1lICsgXCI6XCIgKyBwYXNzd29yZClcbiAgICAgICAgfSlcblxuICAgICAgICBtYXAgPSBtYXAuc2V0SW4oW2tleSwgXCJzY2hlbWFcIl0sIHNlY3VyaXR5LmdldChcInNjaGVtYVwiKSlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIHN0YXRlLnNldCggXCJhdXRob3JpemVkXCIsIG1hcCApXG4gIH0sXG5cbiAgW0FVVEhPUklaRV9PQVVUSDJdOiAoc3RhdGUsIHsgcGF5bG9hZCB9ICkgPT57XG4gICAgbGV0IHsgYXV0aCwgdG9rZW4gfSA9IHBheWxvYWRcbiAgICBsZXQgcGFyc2VkQXV0aFxuXG4gICAgYXV0aC50b2tlbiA9IE9iamVjdC5hc3NpZ24oe30sIHRva2VuKVxuICAgIHBhcnNlZEF1dGggPSBmcm9tSlMoYXV0aClcblxuICAgIGxldCBtYXAgPSBzdGF0ZS5nZXQoXCJhdXRob3JpemVkXCIpIHx8IE1hcCgpXG4gICAgbWFwID0gbWFwLnNldChwYXJzZWRBdXRoLmdldChcIm5hbWVcIiksIHBhcnNlZEF1dGgpXG4gICAgXG4gICAgcmV0dXJuIHN0YXRlLnNldCggXCJhdXRob3JpemVkXCIsIG1hcCApXG4gIH0sXG5cbiAgW0xPR09VVF06IChzdGF0ZSwgeyBwYXlsb2FkIH0gKSA9PntcbiAgICBsZXQgcmVzdWx0ID0gc3RhdGUuZ2V0KFwiYXV0aG9yaXplZFwiKS53aXRoTXV0YXRpb25zKChhdXRob3JpemVkKSA9PiB7XG4gICAgICAgIHBheWxvYWQuZm9yRWFjaCgoYXV0aCkgPT4ge1xuICAgICAgICAgIGF1dGhvcml6ZWQuZGVsZXRlKGF1dGgpXG4gICAgICAgIH0pXG4gICAgICB9KVxuXG4gICAgcmV0dXJuIHN0YXRlLnNldChcImF1dGhvcml6ZWRcIiwgcmVzdWx0KVxuICB9LFxuXG4gIFtDT05GSUdVUkVfQVVUSF06IChzdGF0ZSwgeyBwYXlsb2FkIH0gKSA9PntcbiAgICByZXR1cm4gc3RhdGUuc2V0KFwiY29uZmlnc1wiLCBwYXlsb2FkKVxuICB9LFxuXG4gIFtSRVNUT1JFX0FVVEhPUklaQVRJT05dOiAoc3RhdGUsIHsgcGF5bG9hZCB9ICkgPT57ICAgIFxuICAgIHJldHVybiBzdGF0ZS5zZXQoXCJhdXRob3JpemVkXCIsIGZyb21KUyhwYXlsb2FkLmF1dGhvcml6ZWQpKVxuICB9LFxufVxuIiwidmFyIHggPSBmdW5jdGlvbih5KSB7XG5cdHZhciB4ID0ge307IF9fd2VicGFja19yZXF1aXJlX18uZCh4LCB5KTsgcmV0dXJuIHhcbn0gXG52YXIgeSA9IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgeyByZXR1cm4geDsgfTsgfVxudmFyIF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wiY3JlYXRlU2VsZWN0b3JcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZXNlbGVjdF9fLmNyZWF0ZVNlbGVjdG9yOyB9IH0pOyIsImltcG9ydCB7IGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSBcInJlc2VsZWN0XCJcbmltcG9ydCB7IExpc3QsIE1hcCB9IGZyb20gXCJpbW11dGFibGVcIlxuXG5jb25zdCBzdGF0ZSA9IHN0YXRlID0+IHN0YXRlXG5cbmV4cG9ydCBjb25zdCBzaG93bkRlZmluaXRpb25zID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgc3RhdGUsXG4gICAgYXV0aCA9PiBhdXRoLmdldCggXCJzaG93RGVmaW5pdGlvbnNcIiApXG4pXG5cbmV4cG9ydCBjb25zdCBkZWZpbml0aW9uc1RvQXV0aG9yaXplID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgc3RhdGUsXG4gICAgKCkgPT4gKCB7IHNwZWNTZWxlY3RvcnMgfSApID0+IHtcbiAgICAgIGxldCBkZWZpbml0aW9ucyA9IHNwZWNTZWxlY3RvcnMuc2VjdXJpdHlEZWZpbml0aW9ucygpIHx8IE1hcCh7fSlcbiAgICAgIGxldCBsaXN0ID0gTGlzdCgpXG5cbiAgICAgIC8vdG9kbyByZWZhY3RvclxuICAgICAgZGVmaW5pdGlvbnMuZW50cnlTZXEoKS5mb3JFYWNoKCAoWyBrZXksIHZhbCBdKSA9PiB7XG4gICAgICAgIGxldCBtYXAgPSBNYXAoKVxuXG4gICAgICAgIG1hcCA9IG1hcC5zZXQoa2V5LCB2YWwpXG4gICAgICAgIGxpc3QgPSBsaXN0LnB1c2gobWFwKVxuICAgICAgfSlcblxuICAgICAgcmV0dXJuIGxpc3RcbiAgICB9XG4pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RBdXRoUGF0aCA9XG4gIChzdGF0ZSwgbmFtZSkgPT5cbiAgKHsgc3BlY1NlbGVjdG9ycyB9KSA9PlxuICAgIExpc3QoXG4gICAgICBzcGVjU2VsZWN0b3JzLmlzT0FTMygpXG4gICAgICAgID8gW1wiY29tcG9uZW50c1wiLCBcInNlY3VyaXR5U2NoZW1lc1wiLCBuYW1lXVxuICAgICAgICA6IFtcInNlY3VyaXR5RGVmaW5pdGlvbnNcIiwgbmFtZV1cbiAgICApXG4gICAgXG5leHBvcnQgY29uc3QgZ2V0RGVmaW5pdGlvbnNCeU5hbWVzID0gKCBzdGF0ZSwgc2VjdXJpdGllcyApID0+ICggeyBzcGVjU2VsZWN0b3JzIH0gKSA9PiB7XG4gIGNvbnNvbGUud2FybihcIldBUk5JTkc6IGdldERlZmluaXRpb25zQnlOYW1lcyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbi5cIilcbiAgbGV0IHNlY3VyaXR5RGVmaW5pdGlvbnMgPSBzcGVjU2VsZWN0b3JzLnNlY3VyaXR5RGVmaW5pdGlvbnMoKVxuICBsZXQgcmVzdWx0ID0gTGlzdCgpXG5cbiAgc2VjdXJpdGllcy52YWx1ZVNlcSgpLmZvckVhY2goIChuYW1lcykgPT4ge1xuICAgIGxldCBtYXAgPSBNYXAoKVxuICAgIG5hbWVzLmVudHJ5U2VxKCkuZm9yRWFjaCggKFtuYW1lLCBzY29wZXNdKSA9PiB7XG4gICAgICBsZXQgZGVmaW5pdGlvbiA9IHNlY3VyaXR5RGVmaW5pdGlvbnMuZ2V0KG5hbWUpXG4gICAgICBsZXQgYWxsb3dlZFNjb3Blc1xuXG4gICAgICBpZiAoIGRlZmluaXRpb24uZ2V0KFwidHlwZVwiKSA9PT0gXCJvYXV0aDJcIiAmJiBzY29wZXMuc2l6ZSApIHtcbiAgICAgICAgYWxsb3dlZFNjb3BlcyA9IGRlZmluaXRpb24uZ2V0KFwic2NvcGVzXCIpXG5cbiAgICAgICAgYWxsb3dlZFNjb3Blcy5rZXlTZXEoKS5mb3JFYWNoKCAoa2V5KSA9PiB7XG4gICAgICAgICAgaWYgKCAhc2NvcGVzLmNvbnRhaW5zKGtleSkgKSB7XG4gICAgICAgICAgICBhbGxvd2VkU2NvcGVzID0gYWxsb3dlZFNjb3Blcy5kZWxldGUoa2V5KVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcblxuICAgICAgICBkZWZpbml0aW9uID0gZGVmaW5pdGlvbi5zZXQoXCJhbGxvd2VkU2NvcGVzXCIsIGFsbG93ZWRTY29wZXMpXG4gICAgICB9XG5cbiAgICAgIG1hcCA9IG1hcC5zZXQobmFtZSwgZGVmaW5pdGlvbilcbiAgICB9KVxuXG4gICAgcmVzdWx0ID0gcmVzdWx0LnB1c2gobWFwKVxuICB9KVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmluaXRpb25zRm9yUmVxdWlyZW1lbnRzID0gKHN0YXRlLCBzZWN1cml0aWVzID0gTGlzdCgpKSA9PiAoeyBhdXRoU2VsZWN0b3JzIH0pID0+IHtcbiAgY29uc3QgYWxsRGVmaW5pdGlvbnMgPSBhdXRoU2VsZWN0b3JzLmRlZmluaXRpb25zVG9BdXRob3JpemUoKSB8fCBMaXN0KClcbiAgbGV0IHJlc3VsdCA9IExpc3QoKVxuICBhbGxEZWZpbml0aW9ucy5mb3JFYWNoKCAoZGVmaW5pdGlvbikgPT4ge1xuICAgIGxldCBzZWN1cml0eSA9IHNlY3VyaXRpZXMuZmluZChzZWMgPT4gc2VjLmdldChkZWZpbml0aW9uLmtleVNlcSgpLmZpcnN0KCkpKVxuICAgIGlmICggc2VjdXJpdHkgKSB7XG4gICAgICBkZWZpbml0aW9uLmZvckVhY2goIChwcm9wcywgbmFtZSkgPT4ge1xuICAgICAgICBpZiAoIHByb3BzLmdldChcInR5cGVcIikgPT09IFwib2F1dGgyXCIgKSB7XG4gICAgICAgICAgY29uc3Qgc2VjdXJpdHlTY29wZXMgPSBzZWN1cml0eS5nZXQobmFtZSlcbiAgICAgICAgICBsZXQgZGVmaW5pdGlvblNjb3BlcyA9IHByb3BzLmdldChcInNjb3Blc1wiKVxuICAgICAgICAgIGlmKCBMaXN0LmlzTGlzdChzZWN1cml0eVNjb3BlcykgJiYgTWFwLmlzTWFwKGRlZmluaXRpb25TY29wZXMpICkge1xuICAgICAgICAgICAgZGVmaW5pdGlvblNjb3Blcy5rZXlTZXEoKS5mb3JFYWNoKCAoa2V5KSA9PiB7XG4gICAgICAgICAgICAgIGlmICggIXNlY3VyaXR5U2NvcGVzLmNvbnRhaW5zKGtleSkgKSB7XG4gICAgICAgICAgICAgICAgZGVmaW5pdGlvblNjb3BlcyA9IGRlZmluaXRpb25TY29wZXMuZGVsZXRlKGtleSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGRlZmluaXRpb24gPSBkZWZpbml0aW9uLnNldChuYW1lLCBwcm9wcy5zZXQoXCJzY29wZXNcIiwgZGVmaW5pdGlvblNjb3BlcykpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgcmVzdWx0ID0gcmVzdWx0LnB1c2goZGVmaW5pdGlvbilcbiAgICB9XG4gIH0pXG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGNvbnN0IGF1dGhvcml6ZWQgPSBjcmVhdGVTZWxlY3RvcihcbiAgICBzdGF0ZSxcbiAgICBhdXRoID0+IGF1dGguZ2V0KFwiYXV0aG9yaXplZFwiKSB8fCBNYXAoKVxuKVxuXG5cbmV4cG9ydCBjb25zdCBpc0F1dGhvcml6ZWQgPSAoIHN0YXRlLCBzZWN1cml0aWVzICkgPT4gKCB7IGF1dGhTZWxlY3RvcnMgfSApID0+IHtcbiAgbGV0IGF1dGhvcml6ZWQgPSBhdXRoU2VsZWN0b3JzLmF1dGhvcml6ZWQoKVxuXG4gIGlmKCFMaXN0LmlzTGlzdChzZWN1cml0aWVzKSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gISFzZWN1cml0aWVzLnRvSlMoKS5maWx0ZXIoICggc2VjdXJpdHkgKSA9PiB7XG4gICAgICBsZXQgaXNBdXRob3JpemVkID0gdHJ1ZVxuXG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMoc2VjdXJpdHkpLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgIHJldHVybiAhaXNBdXRob3JpemVkIHx8ICEhYXV0aG9yaXplZC5nZXQoa2V5KVxuICAgICAgfSkuaW5kZXhPZihmYWxzZSkgPT09IC0xXG4gICAgfSkubGVuZ3RoXG59XG5cbmV4cG9ydCBjb25zdCBnZXRDb25maWdzID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgc3RhdGUsXG4gICAgYXV0aCA9PiBhdXRoLmdldCggXCJjb25maWdzXCIgKVxuKVxuIiwiLy8gQWRkIHNlY3VyaXR5IHRvIHRoZSBmaW5hbCBgZXhlY3V0ZWAgY2FsbCAoIHZpYSBgZXh0cmFzYCApXG5leHBvcnQgY29uc3QgZXhlY3V0ZSA9ICggb3JpQWN0aW9uLCB7IGF1dGhTZWxlY3RvcnMsIHNwZWNTZWxlY3RvcnMgfSkgPT4gKHsgcGF0aCwgbWV0aG9kLCBvcGVyYXRpb24sIGV4dHJhcyB9KSA9PiB7XG4gIGxldCBzZWN1cml0aWVzID0ge1xuICAgIGF1dGhvcml6ZWQ6IGF1dGhTZWxlY3RvcnMuYXV0aG9yaXplZCgpICYmIGF1dGhTZWxlY3RvcnMuYXV0aG9yaXplZCgpLnRvSlMoKSxcbiAgICBkZWZpbml0aW9uczogc3BlY1NlbGVjdG9ycy5zZWN1cml0eURlZmluaXRpb25zKCkgJiYgc3BlY1NlbGVjdG9ycy5zZWN1cml0eURlZmluaXRpb25zKCkudG9KUygpLFxuICAgIHNwZWNTZWN1cml0eTogIHNwZWNTZWxlY3RvcnMuc2VjdXJpdHkoKSAmJiBzcGVjU2VsZWN0b3JzLnNlY3VyaXR5KCkudG9KUygpXG4gIH1cblxuICByZXR1cm4gb3JpQWN0aW9uKHsgcGF0aCwgbWV0aG9kLCBvcGVyYXRpb24sIHNlY3VyaXRpZXMsIC4uLmV4dHJhcyB9KVxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRlZCA9IChvcmlBY3Rpb24sIHN5c3RlbSkgPT4gKHBheWxvYWQpID0+IHtcbiAgY29uc3QgeyBnZXRDb25maWdzLCBhdXRoQWN0aW9ucyB9ID0gc3lzdGVtXG4gIGNvbnN0IGNvbmZpZ3MgPSBnZXRDb25maWdzKClcblxuICBvcmlBY3Rpb24ocGF5bG9hZClcblxuICAvLyBjaGVjayBpZiB3ZSBzaG91bGQgcmVzdG9yZSBhdXRob3JpemF0aW9uIGRhdGEgZnJvbSBsb2NhbFN0b3JhZ2VcbiAgaWYgKGNvbmZpZ3MucGVyc2lzdEF1dGhvcml6YXRpb24pIHtcbiAgICBjb25zdCBhdXRob3JpemVkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJhdXRob3JpemVkXCIpXG4gICAgaWYgKGF1dGhvcml6ZWQpIHtcbiAgICAgIGF1dGhBY3Rpb25zLnJlc3RvcmVBdXRob3JpemF0aW9uKHtcbiAgICAgICAgYXV0aG9yaXplZDogSlNPTi5wYXJzZShhdXRob3JpemVkKSxcbiAgICAgIH0pXG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5cbi8qKlxuICogYGF1dGhvcml6ZWAgYW5kIGBsb2dvdXRgIHdyYXBwZWQgYWN0aW9ucyBwcm92aWRlIGNhcGFjaXR5XG4gKiB0byBwZXJzaXN0IGNvb2tpZSBiYXNlZCBhcGlLZXkgaW4gZG9jdW1lbnQuY29va2llLlxuICpcbiAqIGBwZXJzaXN0QXV0aG9yaXphdGlvbmAgU3dhZ2dlclVJIG9wdGlvbnMgbmVlZHMgdG8gc2V0IHRvIGB0cnVlYFxuICogZm9yIGRvY3VtZW50LmNvb2tpZSBwZXJzaXN0ZW5jZSB0byB3b3JrLlxuICovXG5leHBvcnQgY29uc3QgYXV0aG9yaXplID0gKG9yaUFjdGlvbiwgc3lzdGVtKSA9PiAocGF5bG9hZCkgPT4ge1xuICBvcmlBY3Rpb24ocGF5bG9hZClcblxuICBjb25zdCBjb25maWdzID0gc3lzdGVtLmdldENvbmZpZ3MoKVxuXG4gIGlmICghY29uZmlncy5wZXJzaXN0QXV0aG9yaXphdGlvbikgcmV0dXJuXG5cbiAgLy8gY3JlYXRlIGNvb2tpZVxuICB0cnkge1xuICAgIGNvbnN0IFt7IHNjaGVtYSwgdmFsdWUgfV0gPSBPYmplY3QudmFsdWVzKHBheWxvYWQpXG4gICAgY29uc3QgaXNBcGlLZXlBdXRoID0gc2NoZW1hLmdldChcInR5cGVcIikgPT09IFwiYXBpS2V5XCJcbiAgICBjb25zdCBpc0luQ29va2llID0gc2NoZW1hLmdldChcImluXCIpID09PSBcImNvb2tpZVwiXG4gICAgY29uc3QgaXNBcGlLZXlJbkNvb2tpZSA9IGlzQXBpS2V5QXV0aCAmJiBpc0luQ29va2llXG5cbiAgICBpZiAoaXNBcGlLZXlJbkNvb2tpZSkge1xuICAgICAgZG9jdW1lbnQuY29va2llID0gYCR7c2NoZW1hLmdldChcIm5hbWVcIil9PSR7dmFsdWV9OyBTYW1lU2l0ZT1Ob25lOyBTZWN1cmVgXG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBcIkVycm9yIHBlcnNpc3RpbmcgY29va2llIGJhc2VkIGFwaUtleSBpbiBkb2N1bWVudC5jb29raWUuXCIsXG4gICAgICBlcnJvclxuICAgIClcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgbG9nb3V0ID0gKG9yaUFjdGlvbiwgc3lzdGVtKSA9PiAocGF5bG9hZCkgPT4ge1xuICBjb25zdCBjb25maWdzID0gc3lzdGVtLmdldENvbmZpZ3MoKVxuICBjb25zdCBhdXRob3JpemVkID0gc3lzdGVtLmF1dGhTZWxlY3RvcnMuYXV0aG9yaXplZCgpXG5cbiAgLy8gZGVsZXRpbmcgY29va2llXG4gIHRyeSB7XG4gICAgaWYgKGNvbmZpZ3MucGVyc2lzdEF1dGhvcml6YXRpb24gJiYgQXJyYXkuaXNBcnJheShwYXlsb2FkKSkge1xuICAgICAgcGF5bG9hZC5mb3JFYWNoKChhdXRob3JpemVkTmFtZSkgPT4ge1xuICAgICAgICBjb25zdCBhdXRoID0gYXV0aG9yaXplZC5nZXQoYXV0aG9yaXplZE5hbWUsIHt9KVxuICAgICAgICBjb25zdCBpc0FwaUtleUF1dGggPSBhdXRoLmdldEluKFtcInNjaGVtYVwiLCBcInR5cGVcIl0pID09PSBcImFwaUtleVwiXG4gICAgICAgIGNvbnN0IGlzSW5Db29raWUgPSBhdXRoLmdldEluKFtcInNjaGVtYVwiLCBcImluXCJdKSA9PT0gXCJjb29raWVcIlxuICAgICAgICBjb25zdCBpc0FwaUtleUluQ29va2llID0gaXNBcGlLZXlBdXRoICYmIGlzSW5Db29raWVcblxuICAgICAgICBpZiAoaXNBcGlLZXlJbkNvb2tpZSkge1xuICAgICAgICAgIGNvbnN0IGNvb2tpZU5hbWUgPSBhdXRoLmdldEluKFtcInNjaGVtYVwiLCBcIm5hbWVcIl0pXG4gICAgICAgICAgZG9jdW1lbnQuY29va2llID0gYCR7Y29va2llTmFtZX09OyBNYXgtQWdlPS05OTk5OTk5OWBcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcihcbiAgICAgIFwiRXJyb3IgZGVsZXRpbmcgY29va2llIGJhc2VkIGFwaUtleSBmcm9tIGRvY3VtZW50LmNvb2tpZS5cIixcbiAgICAgIGVycm9yXG4gICAgKVxuICB9XG5cbiAgb3JpQWN0aW9uKHBheWxvYWQpXG59XG4iLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcHJvcF90eXBlc19hZGZlOGUzMV9fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfbG9kYXNoX29taXRfZDkzMGUwZjNfX1tcImRlZmF1bHRcIl07IH0gfSk7IiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBvbWl0IGZyb20gXCJsb2Rhc2gvb21pdFwiXG5cbmNsYXNzIExvY2tBdXRoSWNvbiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZSwgcHJvcHMpIHtcbiAgICBjb25zdCBvd25Qcm9wcyA9IG9taXQocHJvcHMsIE9iamVjdC5rZXlzKHByb3BzLmdldFN5c3RlbSgpKSlcbiAgICByZXR1cm4geyBzdGF0ZSwgb3duUHJvcHMgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgZ2V0Q29tcG9uZW50LCBvd25Qcm9wcyB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IExvY2tJY29uID0gZ2V0Q29tcG9uZW50KFwiTG9ja0ljb25cIilcblxuICAgIHJldHVybiA8TG9ja0ljb24gey4uLm93blByb3BzfSAvPlxuICB9XG59XG5cbkxvY2tBdXRoSWNvbi5wcm9wVHlwZXMgPSB7XG4gIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb3duUHJvcHM6IFByb3BUeXBlcy5zaGFwZSh7fSkuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgTG9ja0F1dGhJY29uXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IG9taXQgZnJvbSBcImxvZGFzaC9vbWl0XCJcblxuY2xhc3MgVW5sb2NrQXV0aEljb24gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBtYXBTdGF0ZVRvUHJvcHMoc3RhdGUsIHByb3BzKSB7XG4gICAgY29uc3Qgb3duUHJvcHMgPSBvbWl0KHByb3BzLCBPYmplY3Qua2V5cyhwcm9wcy5nZXRTeXN0ZW0oKSkpXG4gICAgcmV0dXJuIHsgc3RhdGUsIG93blByb3BzIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGdldENvbXBvbmVudCwgb3duUHJvcHMgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBVbmxvY2tJY29uID0gZ2V0Q29tcG9uZW50KFwiVW5sb2NrSWNvblwiKVxuXG4gICAgcmV0dXJuIDxVbmxvY2tJY29uIHsuLi5vd25Qcm9wc30gLz5cbiAgfVxufVxuXG5VbmxvY2tBdXRoSWNvbi5wcm9wVHlwZXMgPSB7XG4gIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb3duUHJvcHM6IFByb3BUeXBlcy5zaGFwZSh7fSkuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgVW5sb2NrQXV0aEljb25cbiIsImltcG9ydCByZWR1Y2VycyBmcm9tIFwiLi9yZWR1Y2Vyc1wiXG5pbXBvcnQgKiBhcyBhY3Rpb25zIGZyb20gXCIuL2FjdGlvbnNcIlxuaW1wb3J0ICogYXMgc2VsZWN0b3JzIGZyb20gXCIuL3NlbGVjdG9yc1wiXG5pbXBvcnQgeyBleGVjdXRlIGFzIHdyYXBwZWRFeGVjdXRlQWN0aW9uIH0gZnJvbSBcIi4vc3BlYy1leHRlbnNpb25zL3dyYXAtYWN0aW9uc1wiXG5pbXBvcnQgeyBsb2FkZWQgYXMgd3JhcHBlZExvYWRlZEFjdGlvbiB9IGZyb20gXCIuL2NvbmZpZ3MtZXh0ZW5zaW9ucy93cmFwLWFjdGlvbnNcIlxuaW1wb3J0IHsgYXV0aG9yaXplIGFzIHdyYXBwZWRBdXRob3JpemVBY3Rpb24sIGxvZ291dCBhcyB3cmFwcGVkTG9nb3V0QWN0aW9uIH0gZnJvbSBcIi4vd3JhcC1hY3Rpb25zXCJcblxuaW1wb3J0IExvY2tBdXRoSWNvbiBmcm9tIFwiLi9jb21wb25lbnRzL2xvY2stYXV0aC1pY29uXCJcbmltcG9ydCBVbmxvY2tBdXRoSWNvbiBmcm9tIFwiLi9jb21wb25lbnRzL3VubG9jay1hdXRoLWljb25cIlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHtcbiAgICBhZnRlckxvYWQoc3lzdGVtKSB7XG4gICAgICB0aGlzLnJvb3RJbmplY3RzID0gdGhpcy5yb290SW5qZWN0cyB8fCB7fVxuICAgICAgdGhpcy5yb290SW5qZWN0cy5pbml0T0F1dGggPSBzeXN0ZW0uYXV0aEFjdGlvbnMuY29uZmlndXJlQXV0aFxuICAgICAgdGhpcy5yb290SW5qZWN0cy5wcmVhdXRob3JpemVBcGlLZXkgPSBwcmVhdXRob3JpemVBcGlLZXkuYmluZChudWxsLCBzeXN0ZW0pXG4gICAgICB0aGlzLnJvb3RJbmplY3RzLnByZWF1dGhvcml6ZUJhc2ljID0gcHJlYXV0aG9yaXplQmFzaWMuYmluZChudWxsLCBzeXN0ZW0pXG4gICAgfSxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICBMb2NrQXV0aEljb246IExvY2tBdXRoSWNvbixcbiAgICAgIFVubG9ja0F1dGhJY29uOiBVbmxvY2tBdXRoSWNvbixcbiAgICAgIExvY2tBdXRoT3BlcmF0aW9uSWNvbjogTG9ja0F1dGhJY29uLFxuICAgICAgVW5sb2NrQXV0aE9wZXJhdGlvbkljb246IFVubG9ja0F1dGhJY29uLFxuICAgIH0sXG4gICAgc3RhdGVQbHVnaW5zOiB7XG4gICAgICBhdXRoOiB7XG4gICAgICAgIHJlZHVjZXJzLFxuICAgICAgICBhY3Rpb25zLFxuICAgICAgICBzZWxlY3RvcnMsXG4gICAgICAgIHdyYXBBY3Rpb25zOiB7XG4gICAgICAgICAgYXV0aG9yaXplOiB3cmFwcGVkQXV0aG9yaXplQWN0aW9uLFxuICAgICAgICAgIGxvZ291dDogd3JhcHBlZExvZ291dEFjdGlvbixcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGNvbmZpZ3M6IHtcbiAgICAgICAgd3JhcEFjdGlvbnM6IHtcbiAgICAgICAgICBsb2FkZWQ6IHdyYXBwZWRMb2FkZWRBY3Rpb24sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgc3BlYzoge1xuICAgICAgICB3cmFwQWN0aW9uczoge1xuICAgICAgICAgIGV4ZWN1dGU6IHdyYXBwZWRFeGVjdXRlQWN0aW9uLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZWF1dGhvcml6ZUJhc2ljKHN5c3RlbSwga2V5LCB1c2VybmFtZSwgcGFzc3dvcmQpIHtcbiAgY29uc3Qge1xuICAgIGF1dGhBY3Rpb25zOiB7IGF1dGhvcml6ZSB9LFxuICAgIHNwZWNTZWxlY3RvcnM6IHsgc3BlY0pzb24sIGlzT0FTMyB9XG4gIH0gPSBzeXN0ZW1cblxuICBjb25zdCBkZWZpbml0aW9uQmFzZSA9IGlzT0FTMygpID8gW1wiY29tcG9uZW50c1wiLCBcInNlY3VyaXR5U2NoZW1lc1wiXSA6IFtcInNlY3VyaXR5RGVmaW5pdGlvbnNcIl1cblxuICBjb25zdCBzY2hlbWEgPSBzcGVjSnNvbigpLmdldEluKFsuLi5kZWZpbml0aW9uQmFzZSwga2V5XSlcblxuICBpZighc2NoZW1hKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiBhdXRob3JpemUoe1xuICAgIFtrZXldOiB7XG4gICAgICB2YWx1ZToge1xuICAgICAgICB1c2VybmFtZSxcbiAgICAgICAgcGFzc3dvcmQsXG4gICAgICB9LFxuICAgICAgc2NoZW1hOiBzY2hlbWEudG9KUygpXG4gICAgfVxuICB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJlYXV0aG9yaXplQXBpS2V5KHN5c3RlbSwga2V5LCB2YWx1ZSkge1xuICBjb25zdCB7XG4gICAgYXV0aEFjdGlvbnM6IHsgYXV0aG9yaXplIH0sXG4gICAgc3BlY1NlbGVjdG9yczogeyBzcGVjSnNvbiwgaXNPQVMzIH1cbiAgfSA9IHN5c3RlbVxuXG4gIGNvbnN0IGRlZmluaXRpb25CYXNlID0gaXNPQVMzKCkgPyBbXCJjb21wb25lbnRzXCIsIFwic2VjdXJpdHlTY2hlbWVzXCJdIDogW1wic2VjdXJpdHlEZWZpbml0aW9uc1wiXVxuXG4gIGNvbnN0IHNjaGVtYSA9IHNwZWNKc29uKCkuZ2V0SW4oWy4uLmRlZmluaXRpb25CYXNlLCBrZXldKVxuXG4gIGlmKCFzY2hlbWEpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIGF1dGhvcml6ZSh7XG4gICAgW2tleV06IHtcbiAgICAgIHZhbHVlLFxuICAgICAgc2NoZW1hOiBzY2hlbWEudG9KUygpXG4gICAgfVxuICB9KVxufVxuIiwidmFyIHggPSBmdW5jdGlvbih5KSB7XG5cdHZhciB4ID0ge307IF9fd2VicGFja19yZXF1aXJlX18uZCh4LCB5KTsgcmV0dXJuIHhcbn0gXG52YXIgeSA9IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgeyByZXR1cm4geDsgfTsgfVxudmFyIF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wiSlNPTl9TQ0hFTUFcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9qc195YW1sXzc4Mzg0MDMyX18uSlNPTl9TQ0hFTUE7IH0sIFtcImRlZmF1bHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9qc195YW1sXzc4Mzg0MDMyX19bXCJkZWZhdWx0XCJdOyB9IH0pOyIsImltcG9ydCBZQU1MIGZyb20gXCJqcy15YW1sXCJcblxuZXhwb3J0IGNvbnN0IHBhcnNlQ29uZmlnID0gKHlhbWwsIHN5c3RlbSkgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBZQU1MLmxvYWQoeWFtbClcbiAgfSBjYXRjaChlKSB7XG4gICAgaWYgKHN5c3RlbSkge1xuICAgICAgc3lzdGVtLmVyckFjdGlvbnMubmV3VGhyb3duRXJyKCBuZXcgRXJyb3IoZSkgKVxuICAgIH1cbiAgICByZXR1cm4ge31cbiAgfVxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgcGFyc2VDb25maWcgfSBmcm9tIFwiLi9mblwiXG5cbmV4cG9ydCBjb25zdCBVUERBVEVfQ09ORklHUyA9IFwiY29uZmlnc191cGRhdGVcIlxuZXhwb3J0IGNvbnN0IFRPR0dMRV9DT05GSUdTID0gXCJjb25maWdzX3RvZ2dsZVwiXG5cbi8vIFVwZGF0ZSB0aGUgY29uZmlncywgd2l0aCBhIG1lcmdlICggbm90IGRlZXAgKVxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZShjb25maWdOYW1lLCBjb25maWdWYWx1ZSkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9DT05GSUdTLFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIFtjb25maWdOYW1lXTogY29uZmlnVmFsdWUsXG4gICAgfSxcbiAgfVxufVxuXG4vLyBUb2dnbGUncyB0aGUgY29uZmlnLCBieSBuYW1lXG5leHBvcnQgZnVuY3Rpb24gdG9nZ2xlKGNvbmZpZ05hbWUpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBUT0dHTEVfQ09ORklHUyxcbiAgICBwYXlsb2FkOiBjb25maWdOYW1lLFxuICB9XG59XG5cbi8vIEhvb2tcbmV4cG9ydCBjb25zdCBsb2FkZWQgPSAoKSA9PiAoKSA9PiB7XG4gIC8vIG5vb3Bcbn1cblxuZXhwb3J0IGNvbnN0IGRvd25sb2FkQ29uZmlnID0gKHJlcSkgPT4gKHN5c3RlbSkgPT4ge1xuICBjb25zdCB7XG4gICAgZm46IHsgZmV0Y2ggfSxcbiAgfSA9IHN5c3RlbVxuXG4gIHJldHVybiBmZXRjaChyZXEpXG59XG5cbmV4cG9ydCBjb25zdCBnZXRDb25maWdCeVVybCA9IChyZXEsIGNiKSA9PiAoc3lzdGVtKSA9PiB7XG4gIGNvbnN0IHsgc3BlY0FjdGlvbnMsIGNvbmZpZ3NBY3Rpb25zIH0gPSBzeXN0ZW1cblxuICBpZiAocmVxKSB7XG4gICAgcmV0dXJuIGNvbmZpZ3NBY3Rpb25zLmRvd25sb2FkQ29uZmlnKHJlcSkudGhlbihuZXh0LCBuZXh0KVxuICB9XG5cbiAgZnVuY3Rpb24gbmV4dChyZXMpIHtcbiAgICBpZiAocmVzIGluc3RhbmNlb2YgRXJyb3IgfHwgcmVzLnN0YXR1cyA+PSA0MDApIHtcbiAgICAgIHNwZWNBY3Rpb25zLnVwZGF0ZUxvYWRpbmdTdGF0dXMoXCJmYWlsZWRDb25maWdcIilcbiAgICAgIHNwZWNBY3Rpb25zLnVwZGF0ZUxvYWRpbmdTdGF0dXMoXCJmYWlsZWRDb25maWdcIilcbiAgICAgIHNwZWNBY3Rpb25zLnVwZGF0ZVVybChcIlwiKVxuICAgICAgY29uc29sZS5lcnJvcihyZXMuc3RhdHVzVGV4dCArIFwiIFwiICsgcmVxLnVybClcbiAgICAgIGNiKG51bGwpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNiKHBhcnNlQ29uZmlnKHJlcy50ZXh0LCBzeXN0ZW0pKVxuICAgIH1cbiAgfVxufVxuIiwiLy8gSnVzdCBnZXQgdGhlIGNvbmZpZyB2YWx1ZSAoIGl0IGNhbiBwb3NzaWJseSBiZSBhbiBpbW11dGFibGUgb2JqZWN0KVxuZXhwb3J0IGNvbnN0IGdldCA9IChzdGF0ZSwgcGF0aCkgPT4ge1xuICByZXR1cm4gc3RhdGUuZ2V0SW4oQXJyYXkuaXNBcnJheShwYXRoKSA/IHBhdGggOiBbcGF0aF0pXG59XG4iLCJpbXBvcnQgeyBmcm9tSlMgfSBmcm9tIFwiaW1tdXRhYmxlXCJcblxuaW1wb3J0IHtcblx0VVBEQVRFX0NPTkZJR1MsXG5cdFRPR0dMRV9DT05GSUdTLFxufSBmcm9tIFwiLi9hY3Rpb25zXCJcblxuZXhwb3J0IGRlZmF1bHQge1xuXG4gIFtVUERBVEVfQ09ORklHU106IChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHN0YXRlLm1lcmdlKGZyb21KUyhhY3Rpb24ucGF5bG9hZCkpXG4gIH0sXG5cbiAgW1RPR0dMRV9DT05GSUdTXTogKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBjb25maWdOYW1lID0gYWN0aW9uLnBheWxvYWRcbiAgICBjb25zdCBvcmlWYWwgPSBzdGF0ZS5nZXQoY29uZmlnTmFtZSlcbiAgICByZXR1cm4gc3RhdGUuc2V0KGNvbmZpZ05hbWUsICFvcmlWYWwpXG4gIH0sXG5cbn1cbiIsImltcG9ydCAqIGFzIGFjdGlvbnMgZnJvbSBcIi4vYWN0aW9uc1wiXG5pbXBvcnQgKiBhcyBzZWxlY3RvcnMgZnJvbSBcIi4vc2VsZWN0b3JzXCJcbmltcG9ydCByZWR1Y2VycyBmcm9tIFwiLi9yZWR1Y2Vyc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbmZpZ3NQbHVnaW4oKSB7XG5cbiAgcmV0dXJuIHtcbiAgICBzdGF0ZVBsdWdpbnM6IHtcbiAgICAgIGNvbmZpZ3M6IHtcbiAgICAgICAgcmVkdWNlcnMsXG4gICAgICAgIGFjdGlvbnMsXG4gICAgICAgIHNlbGVjdG9ycyxcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsImV4cG9ydCBjb25zdCBzZXRIYXNoID0gKHZhbHVlKSA9PiB7XG4gIGlmKHZhbHVlKSB7XG4gICAgcmV0dXJuIGhpc3RvcnkucHVzaFN0YXRlKG51bGwsIG51bGwsIGAjJHt2YWx1ZX1gKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uaGFzaCA9IFwiXCJcbiAgfVxufVxuIiwidmFyIHggPSBmdW5jdGlvbih5KSB7XG5cdHZhciB4ID0ge307IF9fd2VicGFja19yZXF1aXJlX18uZCh4LCB5KTsgcmV0dXJuIHhcbn0gXG52YXIgeSA9IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgeyByZXR1cm4geDsgfTsgfVxudmFyIF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wiZGVmYXVsdFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3plbnNjcm9sbF9fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJpbXBvcnQgeyBzZXRIYXNoIH0gZnJvbSBcIi4vaGVscGVyc1wiXG5pbXBvcnQgemVuc2Nyb2xsIGZyb20gXCJ6ZW5zY3JvbGxcIlxuaW1wb3J0IHsgY3JlYXRlRGVlcExpbmtQYXRoIH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuaW1wb3J0IEltLCB7IGZyb21KUyB9IGZyb20gXCJpbW11dGFibGVcIlxuXG5jb25zdCBTQ1JPTExfVE8gPSBcImxheW91dF9zY3JvbGxfdG9cIlxuY29uc3QgQ0xFQVJfU0NST0xMX1RPID0gXCJsYXlvdXRfY2xlYXJfc2Nyb2xsXCJcblxuZXhwb3J0IGNvbnN0IHNob3cgPSAob3JpLCB7IGdldENvbmZpZ3MsIGxheW91dFNlbGVjdG9ycyB9KSA9PiAoLi4uYXJncykgPT4ge1xuICBvcmkoLi4uYXJncylcblxuICBpZighZ2V0Q29uZmlncygpLmRlZXBMaW5raW5nKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICB0cnkge1xuICAgIGxldCBbdG9rZW5BcnJheSwgc2hvd25dID0gYXJnc1xuICAgIC8vQ29lcmNlIGluIHRvIGFycmF5XG4gICAgdG9rZW5BcnJheSA9IEFycmF5LmlzQXJyYXkodG9rZW5BcnJheSkgPyB0b2tlbkFycmF5IDogW3Rva2VuQXJyYXldXG4gICAgLy8gQ29udmVydCBpbnRvIHNvbWV0aGluZyB3ZSBjYW4gcHV0IGluIHRoZSBVUkwgaGFzaFxuICAgIC8vIE9yIHJldHVybiBlbXB0eSwgaWYgd2UgY2Fubm90XG4gICAgY29uc3QgdXJsSGFzaEFycmF5ID0gbGF5b3V0U2VsZWN0b3JzLnVybEhhc2hBcnJheUZyb21Jc1Nob3duS2V5KHRva2VuQXJyYXkpIC8vIFdpbGwgY29udmVydFxuXG4gICAgLy8gTm8gaGFzaCBmcmllbmRseSBsaXN0P1xuICAgIGlmKCF1cmxIYXNoQXJyYXkubGVuZ3RoKVxuICAgICAgcmV0dXJuXG5cbiAgICBjb25zdCBbdHlwZSwgYXNzZXROYW1lXSA9IHVybEhhc2hBcnJheVxuXG4gICAgaWYgKCFzaG93bikge1xuICAgICAgcmV0dXJuIHNldEhhc2goXCIvXCIpXG4gICAgfVxuXG4gICAgaWYgKHVybEhhc2hBcnJheS5sZW5ndGggPT09IDIpIHtcbiAgICAgIHNldEhhc2goY3JlYXRlRGVlcExpbmtQYXRoKGAvJHtlbmNvZGVVUklDb21wb25lbnQodHlwZSl9LyR7ZW5jb2RlVVJJQ29tcG9uZW50KGFzc2V0TmFtZSl9YCkpXG4gICAgfSBlbHNlIGlmICh1cmxIYXNoQXJyYXkubGVuZ3RoID09PSAxKSB7XG4gICAgICBzZXRIYXNoKGNyZWF0ZURlZXBMaW5rUGF0aChgLyR7ZW5jb2RlVVJJQ29tcG9uZW50KHR5cGUpfWApKVxuICAgIH1cblxuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIG5vdCBtaXNzaW9uIGNyaXRpY2FsLCBzbyBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZ1xuICAgIC8vIHdlJ2xsIGp1c3QgbW92ZSBvblxuICAgIGNvbnNvbGUuZXJyb3IoZSkgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvID0gKHBhdGgpID0+IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBTQ1JPTExfVE8sXG4gICAgcGF5bG9hZDogQXJyYXkuaXNBcnJheShwYXRoKSA/IHBhdGggOiBbcGF0aF1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgcGFyc2VEZWVwTGlua0hhc2ggPSAocmF3SGFzaCkgPT4gKHsgbGF5b3V0QWN0aW9ucywgbGF5b3V0U2VsZWN0b3JzLCBnZXRDb25maWdzIH0pID0+IHtcblxuICBpZighZ2V0Q29uZmlncygpLmRlZXBMaW5raW5nKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZihyYXdIYXNoKSB7XG4gICAgbGV0IGhhc2ggPSByYXdIYXNoLnNsaWNlKDEpIC8vICMgaXMgZmlyc3QgY2hhcmFjdGVyXG5cblxuICAgIGlmKGhhc2hbMF0gPT09IFwiIVwiKSB7XG4gICAgICAvLyBQYXJzZSBVSSAyLnggc2hlYmFuZ3NcbiAgICAgIGhhc2ggPSBoYXNoLnNsaWNlKDEpXG4gICAgfVxuXG4gICAgaWYoaGFzaFswXSA9PT0gXCIvXCIpIHtcbiAgICAgIC8vIFwiL3BldC9hZGRQZXRcIiA9PiBcInBldC9hZGRQZXRcIlxuICAgICAgLy8gbWFrZXMgdGhlIHNwbGl0IHJlc3VsdCBjbGVhbmVyXG4gICAgICAvLyBhbHNvIGhhbmRsZXMgZm9yZ290dGVuIGxlYWRpbmcgc2xhc2hcbiAgICAgIGhhc2ggPSBoYXNoLnNsaWNlKDEpXG4gICAgfVxuXG4gICAgY29uc3QgaGFzaEFycmF5ID0gaGFzaC5zcGxpdChcIi9cIikubWFwKHZhbCA9PiAodmFsIHx8IFwiXCIpKVxuXG4gICAgY29uc3QgaXNTaG93bktleSA9IGxheW91dFNlbGVjdG9ycy5pc1Nob3duS2V5RnJvbVVybEhhc2hBcnJheShoYXNoQXJyYXkpXG5cbiAgICBjb25zdCBbdHlwZSwgdGFnSWQgPSBcIlwiLCBtYXliZU9wZXJhdGlvbklkID0gXCJcIl0gPSBpc1Nob3duS2V5XG5cbiAgICBpZih0eXBlID09PSBcIm9wZXJhdGlvbnNcIikge1xuICAgICAgLy8gd2UncmUgZ29pbmcgdG8gc2hvdyBhbiBvcGVyYXRpb24sIHNvIHdlIG5lZWQgdG8gZXhwYW5kIHRoZSB0YWcgYXMgd2VsbFxuICAgICAgY29uc3QgdGFnSXNTaG93bktleSA9IGxheW91dFNlbGVjdG9ycy5pc1Nob3duS2V5RnJvbVVybEhhc2hBcnJheShbdGFnSWRdKVxuXG4gICAgICAvLyBJZiBhbiBgX2AgaXMgcHJlc2VudCwgdHJpZ2dlciB0aGUgbGVnYWN5IGVzY2FwaW5nIGJlaGF2aW9yIHRvIGJlIHNhZmVcbiAgICAgIC8vIFRPRE86IHJlbW92ZSB0aGlzIGluIHY0LjAsIGl0IGlzIGRlcHJlY2F0ZWRcbiAgICAgIGlmKHRhZ0lkLmluZGV4T2YoXCJfXCIpID4gLTEpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFwiV2FybmluZzogZXNjYXBpbmcgZGVlcCBsaW5rIHdoaXRlc3BhY2Ugd2l0aCBgX2Agd2lsbCBiZSB1bnN1cHBvcnRlZCBpbiB2NC4wLCB1c2UgYCUyMGAgaW5zdGVhZC5cIilcbiAgICAgICAgbGF5b3V0QWN0aW9ucy5zaG93KHRhZ0lzU2hvd25LZXkubWFwKHZhbCA9PiB2YWwucmVwbGFjZSgvXy9nLCBcIiBcIikpLCB0cnVlKVxuICAgICAgfVxuXG4gICAgICBsYXlvdXRBY3Rpb25zLnNob3codGFnSXNTaG93bktleSwgdHJ1ZSlcbiAgICB9XG5cbiAgICAvLyBJZiBhbiBgX2AgaXMgcHJlc2VudCwgdHJpZ2dlciB0aGUgbGVnYWN5IGVzY2FwaW5nIGJlaGF2aW9yIHRvIGJlIHNhZmVcbiAgICAvLyBUT0RPOiByZW1vdmUgdGhpcyBpbiB2NC4wLCBpdCBpcyBkZXByZWNhdGVkXG4gICAgaWYgKHRhZ0lkLmluZGV4T2YoXCJfXCIpID4gLTEgfHwgbWF5YmVPcGVyYXRpb25JZC5pbmRleE9mKFwiX1wiKSA+IC0xKSB7XG4gICAgICBjb25zb2xlLndhcm4oXCJXYXJuaW5nOiBlc2NhcGluZyBkZWVwIGxpbmsgd2hpdGVzcGFjZSB3aXRoIGBfYCB3aWxsIGJlIHVuc3VwcG9ydGVkIGluIHY0LjAsIHVzZSBgJTIwYCBpbnN0ZWFkLlwiKVxuICAgICAgbGF5b3V0QWN0aW9ucy5zaG93KGlzU2hvd25LZXkubWFwKHZhbCA9PiB2YWwucmVwbGFjZSgvXy9nLCBcIiBcIikpLCB0cnVlKVxuICAgIH1cblxuICAgIGxheW91dEFjdGlvbnMuc2hvdyhpc1Nob3duS2V5LCB0cnVlKVxuXG4gICAgLy8gU2Nyb2xsIHRvIHRoZSBuZXdseSBleHBhbmRlZCBlbnRpdHlcbiAgICBsYXlvdXRBY3Rpb25zLnNjcm9sbFRvKGlzU2hvd25LZXkpXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHJlYWR5VG9TY3JvbGwgPSAoaXNTaG93bktleSwgcmVmKSA9PiAoc3lzdGVtKSA9PiB7XG4gIGNvbnN0IHNjcm9sbFRvS2V5ID0gc3lzdGVtLmxheW91dFNlbGVjdG9ycy5nZXRTY3JvbGxUb0tleSgpXG5cbiAgaWYoSW0uaXMoc2Nyb2xsVG9LZXksIGZyb21KUyhpc1Nob3duS2V5KSkpIHtcbiAgICBzeXN0ZW0ubGF5b3V0QWN0aW9ucy5zY3JvbGxUb0VsZW1lbnQocmVmKVxuICAgIHN5c3RlbS5sYXlvdXRBY3Rpb25zLmNsZWFyU2Nyb2xsVG8oKVxuICB9XG59XG5cbi8vIFNjcm9sbCB0byBcInJlZlwiIChkb20gbm9kZSkgd2l0aCB0aGUgc2Nyb2xsYmFyIG9uIFwiY29udGFpbmVyXCIgb3IgdGhlIG5lYXJlc3QgcGFyZW50XG5leHBvcnQgY29uc3Qgc2Nyb2xsVG9FbGVtZW50ID0gKHJlZiwgY29udGFpbmVyKSA9PiAoc3lzdGVtKSA9PiB7XG4gIHRyeSB7XG4gICAgY29udGFpbmVyID0gY29udGFpbmVyIHx8IHN5c3RlbS5mbi5nZXRTY3JvbGxQYXJlbnQocmVmKVxuICAgIGxldCBteVNjcm9sbGVyID0gemVuc2Nyb2xsLmNyZWF0ZVNjcm9sbGVyKGNvbnRhaW5lcilcbiAgICBteVNjcm9sbGVyLnRvKHJlZilcbiAgfSBjYXRjaChlKSB7XG4gICAgY29uc29sZS5lcnJvcihlKSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnNvbGVcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgY2xlYXJTY3JvbGxUbyA9ICgpID0+IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBDTEVBUl9TQ1JPTExfVE8sXG4gIH1cbn1cblxuLy8gRnJvbTogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQyNTQzOTA4LzM5MzM3MjRcbi8vIE1vZGlmaWVkIHRvIHJldHVybiBodG1sIGluc3RlYWQgb2YgYm9keSBlbGVtZW50IGFzIGxhc3QgcmVzb3J0XG5mdW5jdGlvbiBnZXRTY3JvbGxQYXJlbnQoZWxlbWVudCwgaW5jbHVkZUhpZGRlbikge1xuICBjb25zdCBMQVNUX1JFU09SVCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuICBsZXQgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpXG4gIGNvbnN0IGV4Y2x1ZGVTdGF0aWNQYXJlbnQgPSBzdHlsZS5wb3NpdGlvbiA9PT0gXCJhYnNvbHV0ZVwiXG4gIGNvbnN0IG92ZXJmbG93UmVnZXggPSBpbmNsdWRlSGlkZGVuID8gLyhhdXRvfHNjcm9sbHxoaWRkZW4pLyA6IC8oYXV0b3xzY3JvbGwpL1xuXG4gIGlmIChzdHlsZS5wb3NpdGlvbiA9PT0gXCJmaXhlZFwiKVxuICAgIHJldHVybiBMQVNUX1JFU09SVFxuICBmb3IgKGxldCBwYXJlbnQgPSBlbGVtZW50OyAocGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQpOykge1xuICAgIHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShwYXJlbnQpXG4gICAgaWYgKGV4Y2x1ZGVTdGF0aWNQYXJlbnQgJiYgc3R5bGUucG9zaXRpb24gPT09IFwic3RhdGljXCIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChvdmVyZmxvd1JlZ2V4LnRlc3Qoc3R5bGUub3ZlcmZsb3cgKyBzdHlsZS5vdmVyZmxvd1kgKyBzdHlsZS5vdmVyZmxvd1gpKVxuICAgICAgcmV0dXJuIHBhcmVudFxuICB9XG5cbiAgcmV0dXJuIExBU1RfUkVTT1JUXG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgZm46IHtcbiAgICBnZXRTY3JvbGxQYXJlbnQsXG4gIH0sXG4gIHN0YXRlUGx1Z2luczoge1xuICAgIGxheW91dDoge1xuICAgICAgYWN0aW9uczoge1xuICAgICAgICBzY3JvbGxUb0VsZW1lbnQsXG4gICAgICAgIHNjcm9sbFRvLFxuICAgICAgICBjbGVhclNjcm9sbFRvLFxuICAgICAgICByZWFkeVRvU2Nyb2xsLFxuICAgICAgICBwYXJzZURlZXBMaW5rSGFzaFxuICAgICAgfSxcbiAgICAgIHNlbGVjdG9yczoge1xuICAgICAgICBnZXRTY3JvbGxUb0tleShzdGF0ZSkge1xuICAgICAgICAgIHJldHVybiBzdGF0ZS5nZXQoXCJzY3JvbGxUb0tleVwiKVxuICAgICAgICB9LFxuICAgICAgICBpc1Nob3duS2V5RnJvbVVybEhhc2hBcnJheShzdGF0ZSwgdXJsSGFzaEFycmF5KSB7XG4gICAgICAgICAgY29uc3QgW3RhZywgb3BlcmF0aW9uSWRdID0gdXJsSGFzaEFycmF5XG4gICAgICAgICAgLy8gV2Ugb25seSBwdXQgb3BlcmF0aW9ucyBpbiB0aGUgVVJMXG4gICAgICAgICAgaWYob3BlcmF0aW9uSWQpIHtcbiAgICAgICAgICAgIHJldHVybiBbXCJvcGVyYXRpb25zXCIsIHRhZywgb3BlcmF0aW9uSWRdXG4gICAgICAgICAgfSBlbHNlIGlmICh0YWcpIHtcbiAgICAgICAgICAgIHJldHVybiBbXCJvcGVyYXRpb25zLXRhZ1wiLCB0YWddXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBbXVxuICAgICAgICB9LFxuICAgICAgICB1cmxIYXNoQXJyYXlGcm9tSXNTaG93bktleShzdGF0ZSwgaXNTaG93bktleSkge1xuICAgICAgICAgIGxldCBbdHlwZSwgdGFnLCBvcGVyYXRpb25JZF0gPSBpc1Nob3duS2V5XG4gICAgICAgICAgLy8gV2Ugb25seSBwdXQgb3BlcmF0aW9ucyBpbiB0aGUgVVJMXG4gICAgICAgICAgaWYodHlwZSA9PSBcIm9wZXJhdGlvbnNcIikge1xuICAgICAgICAgICAgcmV0dXJuIFt0YWcsIG9wZXJhdGlvbklkXVxuICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcIm9wZXJhdGlvbnMtdGFnXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBbdGFnXVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gW11cbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICByZWR1Y2Vyczoge1xuICAgICAgICBbU0NST0xMX1RPXShzdGF0ZSwgYWN0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIHN0YXRlLnNldChcInNjcm9sbFRvS2V5XCIsIEltLmZyb21KUyhhY3Rpb24ucGF5bG9hZCkpXG4gICAgICAgIH0sXG4gICAgICAgIFtDTEVBUl9TQ1JPTExfVE9dKHN0YXRlKSB7XG4gICAgICAgICAgcmV0dXJuIHN0YXRlLmRlbGV0ZShcInNjcm9sbFRvS2V5XCIpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB3cmFwQWN0aW9uczoge1xuICAgICAgICBzaG93XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3RfaW1tdXRhYmxlX3Byb3B0eXBlc184OWM3ZDA4M19fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5cbmNvbnN0IFdyYXBwZXIgPSAoT3JpLCBzeXN0ZW0pID0+IGNsYXNzIE9wZXJhdGlvbldyYXBwZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb3BlcmF0aW9uOiBJbVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgfVxuXG4gIG9uTG9hZCA9IChyZWYpID0+IHtcbiAgICBjb25zdCB7IG9wZXJhdGlvbiB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHsgdGFnLCBvcGVyYXRpb25JZCB9ID0gb3BlcmF0aW9uLnRvT2JqZWN0KClcbiAgICBsZXQgeyBpc1Nob3duS2V5IH0gPSBvcGVyYXRpb24udG9PYmplY3QoKVxuICAgIGlzU2hvd25LZXkgPSBpc1Nob3duS2V5IHx8IFtcIm9wZXJhdGlvbnNcIiwgdGFnLCBvcGVyYXRpb25JZF1cbiAgICBzeXN0ZW0ubGF5b3V0QWN0aW9ucy5yZWFkeVRvU2Nyb2xsKGlzU2hvd25LZXksIHJlZilcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPHNwYW4gcmVmPXt0aGlzLm9uTG9hZH0+XG4gICAgICAgIDxPcmkgey4uLnRoaXMucHJvcHN9IC8+XG4gICAgICA8L3NwYW4+XG4gICAgKVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFdyYXBwZXJcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgUHJvcFR5cGVzIH0gZnJvbSBcInByb3AtdHlwZXNcIlxuXG5jb25zdCBXcmFwcGVyID0gKE9yaSwgc3lzdGVtKSA9PiBjbGFzcyBPcGVyYXRpb25UYWdXcmFwcGVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHRhZzogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICB9XG5cbiAgb25Mb2FkID0gKHJlZikgPT4ge1xuICAgIGNvbnN0IHsgdGFnIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgaXNTaG93bktleSA9IFtcIm9wZXJhdGlvbnMtdGFnXCIsIHRhZ11cbiAgICBzeXN0ZW0ubGF5b3V0QWN0aW9ucy5yZWFkeVRvU2Nyb2xsKGlzU2hvd25LZXksIHJlZilcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPHNwYW4gcmVmPXt0aGlzLm9uTG9hZH0+XG4gICAgICAgIDxPcmkgey4uLnRoaXMucHJvcHN9IC8+XG4gICAgICA8L3NwYW4+XG4gICAgKVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFdyYXBwZXJcbiIsImltcG9ydCBsYXlvdXQgZnJvbSBcIi4vbGF5b3V0XCJcbmltcG9ydCBPcGVyYXRpb25XcmFwcGVyIGZyb20gXCIuL29wZXJhdGlvbi13cmFwcGVyXCJcbmltcG9ydCBPcGVyYXRpb25UYWdXcmFwcGVyIGZyb20gXCIuL29wZXJhdGlvbi10YWctd3JhcHBlclwiXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gW2xheW91dCwge1xuICAgIHN0YXRlUGx1Z2luczoge1xuICAgICAgY29uZmlnczoge1xuICAgICAgICB3cmFwQWN0aW9uczoge1xuICAgICAgICAgIGxvYWRlZDogKG9yaSwgc3lzdGVtKSA9PiAoLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgb3JpKC4uLmFyZ3MpXG4gICAgICAgICAgICAvLyBsb2NhdGlvbi5oYXNoIHdhcyBhbiBVVEYtMTYgU3RyaW5nLCBoZXJlIGlzIHJlcXVpcmVkIFVURi04XG4gICAgICAgICAgICBjb25zdCBoYXNoID0gZGVjb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5oYXNoKVxuICAgICAgICAgICAgc3lzdGVtLmxheW91dEFjdGlvbnMucGFyc2VEZWVwTGlua0hhc2goaGFzaClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIHdyYXBDb21wb25lbnRzOiB7XG4gICAgICBvcGVyYXRpb246IE9wZXJhdGlvbldyYXBwZXIsXG4gICAgICBPcGVyYXRpb25UYWc6IE9wZXJhdGlvblRhZ1dyYXBwZXIsXG4gICAgfSxcbiAgfV1cbn1cbiIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImRlZmF1bHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfcmVkdWNlXzExZTY5OTk2X19bXCJkZWZhdWx0XCJdOyB9IH0pOyIsImV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm0oZXJyb3JzKSB7XG4gIC8vIEpTT05TY2hlbWEgcmVmZXJzIHRvIHRoZSBjdXJyZW50IG9iamVjdCBiZWluZyB2YWxpZGF0ZWRcbiAgLy8gYXMgJ2luc3RhbmNlJy4gVGhpcyBpc24ndCBoZWxwZnVsIHRvIHVzZXJzLCBzbyB3ZSByZW1vdmUgaXQuXG4gIHJldHVybiBlcnJvcnNcbiAgICAubWFwKGVyciA9PiB7XG4gICAgICBsZXQgc2Vla1N0ciA9IFwiaXMgbm90IG9mIGEgdHlwZShzKVwiXG4gICAgICBsZXQgaSA9IGVyci5nZXQoXCJtZXNzYWdlXCIpLmluZGV4T2Yoc2Vla1N0cilcbiAgICAgIGlmKGkgPiAtMSkge1xuICAgICAgICBsZXQgdHlwZXMgPSBlcnIuZ2V0KFwibWVzc2FnZVwiKS5zbGljZShpICsgc2Vla1N0ci5sZW5ndGgpLnNwbGl0KFwiLFwiKVxuICAgICAgICByZXR1cm4gZXJyLnNldChcIm1lc3NhZ2VcIiwgZXJyLmdldChcIm1lc3NhZ2VcIikuc2xpY2UoMCwgaSkgKyBtYWtlTmV3TWVzc2FnZSh0eXBlcykpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZXJyXG4gICAgICB9XG4gICAgfSlcbn1cblxuZnVuY3Rpb24gbWFrZU5ld01lc3NhZ2UodHlwZXMpIHtcbiAgcmV0dXJuIHR5cGVzLnJlZHVjZSgocCwgYywgaSwgYXJyKSA9PiB7XG4gICAgaWYoaSA9PT0gYXJyLmxlbmd0aCAtIDEgJiYgYXJyLmxlbmd0aCA+IDEpIHtcbiAgICAgIHJldHVybiBwICsgXCJvciBcIiArIGNcbiAgICB9IGVsc2UgaWYoYXJyW2krMV0gJiYgYXJyLmxlbmd0aCA+IDIpIHtcbiAgICAgIHJldHVybiBwICsgYyArIFwiLCBcIlxuICAgIH0gZWxzZSBpZihhcnJbaSsxXSkge1xuICAgICAgcmV0dXJuIHAgKyBjICsgXCIgXCJcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHAgKyBjXG4gICAgfVxuICB9LCBcInNob3VsZCBiZSBhXCIpXG59XG4iLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfbG9kYXNoX2dldF85NDI3Zjg5OV9fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJpbXBvcnQgZ2V0IGZyb20gXCJsb2Rhc2gvZ2V0XCJcbmltcG9ydCB7IGZyb21KUyB9IGZyb20gXCJpbW11dGFibGVcIlxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtKGVycm9ycywgeyBqc1NwZWMgfSkge1xuICAvLyBMT09LIEhFUkUgVEhJUyBUUkFOU0ZPUk1FUiBJUyBDVVJSRU5UTFkgRElTQUJMRUQg8J+Yg1xuICAvLyBUT0RPOiBmaW5pc2ggaW1wbGVtZW50aW5nLCBmaXggZmxhdHRlbmluZyBwcm9ibGVtXG4gIC8qIGVzbGludC1kaXNhYmxlIG5vLXVucmVhY2hhYmxlICovXG4gIHJldHVybiBlcnJvcnNcblxuXG4gIC8vIEpTT05TY2hlbWEgZ2l2ZXMgdXMgdmVyeSBsaXR0bGUgdG8gZ28gb25cbiAgbGV0IHNlYXJjaFN0ciA9IFwiaXMgbm90IGV4YWN0bHkgb25lIGZyb20gPCMvZGVmaW5pdGlvbnMvcGFyYW1ldGVyPiw8Iy9kZWZpbml0aW9ucy9qc29uUmVmZXJlbmNlPlwiXG4gIHJldHVybiBlcnJvcnNcbiAgICAubWFwKGVyciA9PiB7XG4gICAgICBsZXQgbWVzc2FnZSA9IGVyci5nZXQoXCJtZXNzYWdlXCIpXG4gICAgICBsZXQgaXNQYXJhbWV0ZXJPbmVPZkVycm9yID0gbWVzc2FnZS5pbmRleE9mKHNlYXJjaFN0cikgPiAtMVxuICAgICAgaWYoaXNQYXJhbWV0ZXJPbmVPZkVycm9yKSB7XG4gICAgICAgIC8vIHRyeSB0byBmaW5kIHdoYXQncyB3cm9uZ1xuICAgICAgICByZXR1cm4gY3JlYXRlVGFpbG9yZWRQYXJhbWV0ZXJFcnJvcihlcnIsIGpzU3BlYylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBlcnJcbiAgICAgIH1cbiAgICB9KVxuICAgIC5mbGF0dGVuKHRydWUpIC8vIHNoYWxsb3cgSW1tdXRhYmxlIGZsYXR0ZW5cbn1cblxuY29uc3QgVkFMSURfSU5fVkFMVUVTID0gW1wicGF0aFwiLCBcInF1ZXJ5XCIsIFwiaGVhZGVyXCIsIFwiYm9keVwiLCBcImZvcm1EYXRhXCJdXG5jb25zdCBWQUxJRF9DT0xMRUNUSU9ORk9STUFUX1ZBTFVFUyA9IFtcImNzdlwiLCBcInNzdlwiLCBcInRzdlwiLCBcInBpcGVzXCIsIFwibXVsdGlcIl1cblxuZnVuY3Rpb24gY3JlYXRlVGFpbG9yZWRQYXJhbWV0ZXJFcnJvcihlcnIsIGpzU3BlYykge1xuICBsZXQgbmV3RXJycyA9IFtdXG4gIGxldCBwYXJhbWV0ZXIgPSBnZXQoanNTcGVjLCBlcnIuZ2V0KFwicGF0aFwiKSlcblxuICAvLyBmaW5kIGFkZHJlc3NhYmxlIGNhc2VzXG4gIGlmKHBhcmFtZXRlci5pbiAmJiBWQUxJRF9JTl9WQUxVRVMuaW5kZXhPZihwYXJhbWV0ZXIuaW4pID09PSAtMSkge1xuICAgIGxldCBtZXNzYWdlID0gYFdyb25nIHZhbHVlIGZvciB0aGUgXCJpblwiIGtleXdvcmQuIEV4cGVjdGVkIG9uZSBvZjogJHtWQUxJRF9JTl9WQUxVRVMuam9pbihcIiwgXCIpfS5gXG4gICAgbmV3RXJycy5wdXNoKHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBwYXRoOiBlcnIuZ2V0KFwicGF0aFwiKSArIFwiLmluXCIsXG4gICAgICB0eXBlOiBcInNwZWNcIixcbiAgICAgIHNvdXJjZTogXCJzdHJ1Y3R1cmFsXCIsXG4gICAgICBsZXZlbDogXCJlcnJvclwiXG4gICAgfSlcbiAgfVxuXG4gIGlmKHBhcmFtZXRlci5jb2xsZWN0aW9uRm9ybWF0ICYmIFZBTElEX0NPTExFQ1RJT05GT1JNQVRfVkFMVUVTLmluZGV4T2YocGFyYW1ldGVyLmNvbGxlY3Rpb25Gb3JtYXQpID09PSAtMSkge1xuICAgIGxldCBtZXNzYWdlID0gYFdyb25nIHZhbHVlIGZvciB0aGUgXCJjb2xsZWN0aW9uRm9ybWF0XCIga2V5d29yZC4gRXhwZWN0ZWQgb25lIG9mOiAke1ZBTElEX0NPTExFQ1RJT05GT1JNQVRfVkFMVUVTLmpvaW4oXCIsIFwiKX0uYFxuICAgIG5ld0VycnMucHVzaCh7XG4gICAgICBtZXNzYWdlLFxuICAgICAgcGF0aDogZXJyLmdldChcInBhdGhcIikgKyBcIi5jb2xsZWN0aW9uRm9ybWF0XCIsXG4gICAgICB0eXBlOiBcInNwZWNcIixcbiAgICAgIHNvdXJjZTogXCJzdHJ1Y3R1cmFsXCIsXG4gICAgICBsZXZlbDogXCJlcnJvclwiXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBuZXdFcnJzLmxlbmd0aCA/IGZyb21KUyhuZXdFcnJzKSA6IGVyciAvLyBmYWxsIGJhY2sgdG8gbWFraW5nIG5vIGNoYW5nZXNcblxufVxuIiwiaW1wb3J0IHJlZHVjZSBmcm9tIFwibG9kYXNoL3JlZHVjZVwiXG5pbXBvcnQgKiBhcyBOb3RPZlR5cGUgZnJvbSBcIi4vdHJhbnNmb3JtZXJzL25vdC1vZi10eXBlXCJcbmltcG9ydCAqIGFzIFBhcmFtZXRlck9uZU9mIGZyb20gXCIuL3RyYW5zZm9ybWVycy9wYXJhbWV0ZXItb25lb2ZcIlxuXG5jb25zdCBlcnJvclRyYW5zZm9ybWVycyA9IFtcbiAgTm90T2ZUeXBlLFxuICBQYXJhbWV0ZXJPbmVPZlxuXVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0cmFuc2Zvcm1FcnJvcnMgKGVycm9ycykge1xuICAvLyBEZXYgbm90ZTogdW5pbXBsZW1lbnRlZCBhcnRpZmFjdCB3aGVyZVxuICAvLyBqc1NwZWM6IHN5c3RlbS5zcGVjU2VsZWN0b3JzLnNwZWNKUygpXG4gIC8vIHJlZ2FyZGxlc3MsIHRvIGJlIGNvbXBsaWFudCB3aXRoIHJlZHV4QDQsIGluc3RlYWQgb2YgY2FsbGluZyB0aGUgc3RvcmUgbWV0aG9kIGhlcmUsXG4gIC8vIGpzU3BlYyBzaG91bGQgYmUgcGFzcyBkb3duIGFzIGFuIGFyZ3VtZW50LFxuICBsZXQgaW5wdXRzID0ge1xuICAgIGpzU3BlYzoge31cbiAgfVxuXG4gIGxldCB0cmFuc2Zvcm1lZEVycm9ycyA9IHJlZHVjZShlcnJvclRyYW5zZm9ybWVycywgKHJlc3VsdCwgdHJhbnNmb3JtZXIpID0+IHtcbiAgICB0cnkge1xuICAgICAgbGV0IG5ld2x5VHJhbnNmb3JtZWRFcnJvcnMgPSB0cmFuc2Zvcm1lci50cmFuc2Zvcm0ocmVzdWx0LCBpbnB1dHMpXG4gICAgICByZXR1cm4gbmV3bHlUcmFuc2Zvcm1lZEVycm9ycy5maWx0ZXIoZXJyID0+ICEhZXJyKSAvLyBmaWx0ZXIgcmVtb3ZlZCBlcnJvcnNcbiAgICB9IGNhdGNoKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJUcmFuc2Zvcm1lciBlcnJvcjpcIiwgZSlcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG4gIH0sIGVycm9ycylcblxuICByZXR1cm4gdHJhbnNmb3JtZWRFcnJvcnNcbiAgICAuZmlsdGVyKGVyciA9PiAhIWVycikgLy8gZmlsdGVyIHJlbW92ZWQgZXJyb3JzXG4gICAgLm1hcChlcnIgPT4ge1xuICAgICAgaWYoIWVyci5nZXQoXCJsaW5lXCIpICYmIGVyci5nZXQoXCJwYXRoXCIpKSB7XG4gICAgICAgIC8vIFRPRE86IHJlLXJlc29sdmUgbGluZSBudW1iZXIgaWYgd2UndmUgdHJhbnNmb3JtZWQgaXQgYXdheVxuICAgICAgfVxuICAgICAgcmV0dXJuIGVyclxuICAgIH0pXG5cbn1cbiIsImltcG9ydCB7XG4gIE5FV19USFJPV05fRVJSLFxuICBORVdfVEhST1dOX0VSUl9CQVRDSCxcbiAgTkVXX1NQRUNfRVJSLFxuICBORVdfU1BFQ19FUlJfQkFUQ0gsXG4gIE5FV19BVVRIX0VSUixcbiAgQ0xFQVIsXG4gIENMRUFSX0JZLFxufSBmcm9tIFwiLi9hY3Rpb25zXCJcblxuaW1wb3J0IHsgZnJvbUpTLCBMaXN0IH0gZnJvbSBcImltbXV0YWJsZVwiXG5cbmltcG9ydCB0cmFuc2Zvcm1FcnJvcnMgZnJvbSBcIi4vZXJyb3ItdHJhbnNmb3JtZXJzL2hvb2tcIlxuXG5sZXQgREVGQVVMVF9FUlJPUl9TVFJVQ1RVUkUgPSB7XG4gIC8vIGRlZmF1bHRzXG4gIGxpbmU6IDAsXG4gIGxldmVsOiBcImVycm9yXCIsXG4gIG1lc3NhZ2U6IFwiVW5rbm93biBlcnJvclwiXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICByZXR1cm4ge1xuICAgIFtORVdfVEhST1dOX0VSUl06IChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+IHtcbiAgICAgIGxldCBlcnJvciA9IE9iamVjdC5hc3NpZ24oREVGQVVMVF9FUlJPUl9TVFJVQ1RVUkUsIHBheWxvYWQsIHt0eXBlOiBcInRocm93blwifSlcbiAgICAgIHJldHVybiBzdGF0ZVxuICAgICAgICAudXBkYXRlKFwiZXJyb3JzXCIsIGVycm9ycyA9PiAoZXJyb3JzIHx8IExpc3QoKSkucHVzaCggZnJvbUpTKCBlcnJvciApKSApXG4gICAgICAgIC51cGRhdGUoXCJlcnJvcnNcIiwgZXJyb3JzID0+IHRyYW5zZm9ybUVycm9ycyhlcnJvcnMpKVxuICAgIH0sXG5cbiAgICBbTkVXX1RIUk9XTl9FUlJfQkFUQ0hdOiAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiB7XG4gICAgICBwYXlsb2FkID0gcGF5bG9hZC5tYXAoZXJyID0+IHtcbiAgICAgICAgcmV0dXJuIGZyb21KUyhPYmplY3QuYXNzaWduKERFRkFVTFRfRVJST1JfU1RSVUNUVVJFLCBlcnIsIHsgdHlwZTogXCJ0aHJvd25cIiB9KSlcbiAgICAgIH0pXG4gICAgICByZXR1cm4gc3RhdGVcbiAgICAgICAgLnVwZGF0ZShcImVycm9yc1wiLCBlcnJvcnMgPT4gKGVycm9ycyB8fCBMaXN0KCkpLmNvbmNhdCggZnJvbUpTKCBwYXlsb2FkICkpIClcbiAgICAgICAgLnVwZGF0ZShcImVycm9yc1wiLCBlcnJvcnMgPT4gdHJhbnNmb3JtRXJyb3JzKGVycm9ycykpXG4gICAgfSxcblxuICAgIFtORVdfU1BFQ19FUlJdOiAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiB7XG4gICAgICBsZXQgZXJyb3IgPSBmcm9tSlMocGF5bG9hZClcbiAgICAgIGVycm9yID0gZXJyb3Iuc2V0KFwidHlwZVwiLCBcInNwZWNcIilcbiAgICAgIHJldHVybiBzdGF0ZVxuICAgICAgICAudXBkYXRlKFwiZXJyb3JzXCIsIGVycm9ycyA9PiAoZXJyb3JzIHx8IExpc3QoKSkucHVzaCggZnJvbUpTKGVycm9yKSkuc29ydEJ5KGVyciA9PiBlcnIuZ2V0KFwibGluZVwiKSkgKVxuICAgICAgICAudXBkYXRlKFwiZXJyb3JzXCIsIGVycm9ycyA9PiB0cmFuc2Zvcm1FcnJvcnMoZXJyb3JzKSlcbiAgICB9LFxuXG4gICAgW05FV19TUEVDX0VSUl9CQVRDSF06IChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+IHtcbiAgICAgIHBheWxvYWQgPSBwYXlsb2FkLm1hcChlcnIgPT4ge1xuICAgICAgICByZXR1cm4gZnJvbUpTKE9iamVjdC5hc3NpZ24oREVGQVVMVF9FUlJPUl9TVFJVQ1RVUkUsIGVyciwgeyB0eXBlOiBcInNwZWNcIiB9KSlcbiAgICAgIH0pXG4gICAgICByZXR1cm4gc3RhdGVcbiAgICAgICAgLnVwZGF0ZShcImVycm9yc1wiLCBlcnJvcnMgPT4gKGVycm9ycyB8fCBMaXN0KCkpLmNvbmNhdChmcm9tSlMocGF5bG9hZCkpKVxuICAgICAgICAudXBkYXRlKFwiZXJyb3JzXCIsIGVycm9ycyA9PiB0cmFuc2Zvcm1FcnJvcnMoZXJyb3JzKSlcbiAgICB9LFxuXG4gICAgW05FV19BVVRIX0VSUl06IChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+IHtcbiAgICAgIGxldCBlcnJvciA9IGZyb21KUyhPYmplY3QuYXNzaWduKHt9LCBwYXlsb2FkKSlcblxuICAgICAgZXJyb3IgPSBlcnJvci5zZXQoXCJ0eXBlXCIsIFwiYXV0aFwiKVxuICAgICAgcmV0dXJuIHN0YXRlXG4gICAgICAgIC51cGRhdGUoXCJlcnJvcnNcIiwgZXJyb3JzID0+IChlcnJvcnMgfHwgTGlzdCgpKS5wdXNoKCBmcm9tSlMoZXJyb3IpKSApXG4gICAgICAgIC51cGRhdGUoXCJlcnJvcnNcIiwgZXJyb3JzID0+IHRyYW5zZm9ybUVycm9ycyhlcnJvcnMpKVxuICAgIH0sXG5cbiAgICBbQ0xFQVJdOiAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiB7XG4gICAgICBpZighcGF5bG9hZCB8fCAhc3RhdGUuZ2V0KFwiZXJyb3JzXCIpKSB7XG4gICAgICAgIHJldHVybiBzdGF0ZVxuICAgICAgfVxuXG4gICAgICBsZXQgbmV3RXJyb3JzID0gc3RhdGUuZ2V0KFwiZXJyb3JzXCIpXG4gICAgICAgIC5maWx0ZXIoZXJyID0+IHtcbiAgICAgICAgICByZXR1cm4gZXJyLmtleVNlcSgpLmV2ZXJ5KGsgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXJyVmFsdWUgPSBlcnIuZ2V0KGspXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHBheWxvYWRba11cblxuICAgICAgICAgICAgaWYoIWZpbHRlclZhbHVlKSByZXR1cm4gdHJ1ZVxuXG4gICAgICAgICAgICByZXR1cm4gZXJyVmFsdWUgIT09IGZpbHRlclZhbHVlXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgIHJldHVybiBzdGF0ZS5tZXJnZSh7XG4gICAgICAgIGVycm9yczogbmV3RXJyb3JzXG4gICAgICB9KVxuICAgIH0sXG5cbiAgICBbQ0xFQVJfQlldOiAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiB7XG4gICAgICBpZighcGF5bG9hZCB8fCB0eXBlb2YgcGF5bG9hZCAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBzdGF0ZVxuICAgICAgfVxuICAgICAgbGV0IG5ld0Vycm9ycyA9IHN0YXRlLmdldChcImVycm9yc1wiKVxuICAgICAgICAuZmlsdGVyKGVyciA9PiB7XG4gICAgICAgICAgcmV0dXJuIHBheWxvYWQoZXJyKVxuICAgICAgICB9KVxuICAgICAgcmV0dXJuIHN0YXRlLm1lcmdlKHtcbiAgICAgICAgZXJyb3JzOiBuZXdFcnJvcnNcbiAgICAgIH0pXG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBMaXN0IH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gXCJyZXNlbGVjdFwiXG5cbmNvbnN0IHN0YXRlID0gc3RhdGUgPT4gc3RhdGVcblxuZXhwb3J0IGNvbnN0IGFsbEVycm9ycyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzdGF0ZSxcbiAgZXJyID0+IGVyci5nZXQoXCJlcnJvcnNcIiwgTGlzdCgpKVxuKVxuXG5leHBvcnQgY29uc3QgbGFzdEVycm9yID0gY3JlYXRlU2VsZWN0b3IoXG4gIGFsbEVycm9ycyxcbiAgYWxsID0+IGFsbC5sYXN0KClcbilcblxuIiwiaW1wb3J0IG1ha2VSZWR1Y2VycyBmcm9tIFwiLi9yZWR1Y2Vyc1wiXG5pbXBvcnQgKiBhcyBhY3Rpb25zIGZyb20gXCIuL2FjdGlvbnNcIlxuaW1wb3J0ICogYXMgc2VsZWN0b3JzIGZyb20gXCIuL3NlbGVjdG9yc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHN5c3RlbSkge1xuICByZXR1cm4ge1xuICAgIHN0YXRlUGx1Z2luczoge1xuICAgICAgZXJyOiB7XG4gICAgICAgIHJlZHVjZXJzOiBtYWtlUmVkdWNlcnMoc3lzdGVtKSxcbiAgICAgICAgYWN0aW9ucyxcbiAgICAgICAgc2VsZWN0b3JzXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbih0YWdnZWRPcHMsIHBocmFzZSkge1xuICByZXR1cm4gdGFnZ2VkT3BzLmZpbHRlcigodGFnT2JqLCB0YWcpID0+IHRhZy5pbmRleE9mKHBocmFzZSkgIT09IC0xKVxufVxuIiwiaW1wb3J0IG9wc0ZpbHRlciBmcm9tIFwiLi9vcHNGaWx0ZXJcIlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHtcbiAgICBmbjoge1xuICAgICAgb3BzRmlsdGVyXG4gICAgfVxuICB9XG59XG4iLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfX2JhYmVsX3J1bnRpbWVfY29yZWpzM19oZWxwZXJzX2V4dGVuZHNfZDIwZDNjZWJfX1tcImRlZmF1bHRcIl07IH0gfSk7IiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuY29uc3QgQXJyb3dVcCA9ICh7IGNsYXNzTmFtZSA9IG51bGwsIHdpZHRoID0gMjAsIGhlaWdodCA9IDIwLCAuLi5yZXN0IH0pID0+IChcbiAgPHN2Z1xuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIHdpZHRoPXt3aWR0aH1cbiAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICB7Li4ucmVzdH1cbiAgPlxuICAgIDxwYXRoIGQ9XCJNIDE3LjQxOCAxNC45MDggQyAxNy42OSAxNS4xNzYgMTguMTI3IDE1LjE3NiAxOC4zOTcgMTQuOTA4IEMgMTguNjY3IDE0LjY0IDE4LjY2OCAxNC4yMDcgMTguMzk3IDEzLjkzOSBMIDEwLjQ4OSA2LjEwOSBDIDEwLjIxOSA1Ljg0MSA5Ljc4MiA1Ljg0MSA5LjUxIDYuMTA5IEwgMS42MDIgMTMuOTM5IEMgMS4zMzIgMTQuMjA3IDEuMzMyIDE0LjY0IDEuNjAyIDE0LjkwOCBDIDEuODczIDE1LjE3NiAyLjMxMSAxNS4xNzYgMi41ODEgMTQuOTA4IEwgMTAgNy43NjcgTCAxNy40MTggMTQuOTA4IFpcIiAvPlxuICA8L3N2Zz5cbilcblxuQXJyb3dVcC5wcm9wVHlwZXMgPSB7XG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgd2lkdGg6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGhlaWdodDogUHJvcFR5cGVzLnN0cmluZyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dVcFxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuY29uc3QgQXJyb3dEb3duID0gKHsgY2xhc3NOYW1lID0gbnVsbCwgd2lkdGggPSAyMCwgaGVpZ2h0ID0gMjAsIC4uLnJlc3QgfSkgPT4gKFxuICA8c3ZnXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgd2lkdGg9e3dpZHRofVxuICAgIGhlaWdodD17aGVpZ2h0fVxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgIHsuLi5yZXN0fVxuICA+XG4gICAgPHBhdGggZD1cIk0xNy40MTggNi4xMDljLjI3Mi0uMjY4LjcwOS0uMjY4Ljk3OSAwcy4yNzEuNzAxIDAgLjk2OWwtNy45MDggNy44M2MtLjI3LjI2OC0uNzA3LjI2OC0uOTc5IDBsLTcuOTA4LTcuODNjLS4yNy0uMjY4LS4yNy0uNzAxIDAtLjk2OS4yNzEtLjI2OC43MDktLjI2OC45NzkgMEwxMCAxMy4yNWw3LjQxOC03LjE0MXpcIiAvPlxuICA8L3N2Zz5cbilcblxuQXJyb3dEb3duLnByb3BUeXBlcyA9IHtcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB3aWR0aDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaGVpZ2h0OiBQcm9wVHlwZXMuc3RyaW5nLFxufVxuXG5leHBvcnQgZGVmYXVsdCBBcnJvd0Rvd25cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmNvbnN0IEFycm93ID0gKHsgY2xhc3NOYW1lID0gbnVsbCwgd2lkdGggPSAyMCwgaGVpZ2h0ID0gMjAsIC4uLnJlc3QgfSkgPT4gKFxuICA8c3ZnXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgd2lkdGg9e3dpZHRofVxuICAgIGhlaWdodD17aGVpZ2h0fVxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgIHsuLi5yZXN0fVxuICA+XG4gICAgPHBhdGggZD1cIk0xMy4yNSAxMEw2LjEwOSAyLjU4Yy0uMjY4LS4yNy0uMjY4LS43MDcgMC0uOTc5LjI2OC0uMjcuNzAxLS4yNy45NjkgMGw3LjgzIDcuOTA4Yy4yNjguMjcxLjI2OC43MDkgMCAuOTc5bC03LjgzIDcuOTA4Yy0uMjY4LjI3MS0uNzAxLjI3LS45NjkgMC0uMjY4LS4yNjktLjI2OC0uNzA3IDAtLjk3OUwxMy4yNSAxMHpcIiAvPlxuICA8L3N2Zz5cbilcblxuQXJyb3cucHJvcFR5cGVzID0ge1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHdpZHRoOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBoZWlnaHQ6IFByb3BUeXBlcy5zdHJpbmcsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5jb25zdCBDbG9zZSA9ICh7IGNsYXNzTmFtZSA9IG51bGwsIHdpZHRoID0gMjAsIGhlaWdodCA9IDIwLCAuLi5yZXN0IH0pID0+IChcbiAgPHN2Z1xuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIHdpZHRoPXt3aWR0aH1cbiAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICB7Li4ucmVzdH1cbiAgPlxuICAgIDxwYXRoIGQ9XCJNMTQuMzQ4IDE0Ljg0OWMtLjQ2OS40NjktMS4yMjkuNDY5LTEuNjk3IDBMMTAgMTEuODE5bC0yLjY1MSAzLjAyOWMtLjQ2OS40NjktMS4yMjkuNDY5LTEuNjk3IDAtLjQ2OS0uNDY5LS40NjktMS4yMjkgMC0xLjY5N2wyLjc1OC0zLjE1LTIuNzU5LTMuMTUyYy0uNDY5LS40NjktLjQ2OS0xLjIyOCAwLTEuNjk3LjQ2OS0uNDY5IDEuMjI4LS40NjkgMS42OTcgMEwxMCA4LjE4M2wyLjY1MS0zLjAzMWMuNDY5LS40NjkgMS4yMjgtLjQ2OSAxLjY5NyAwIC40NjkuNDY5LjQ2OSAxLjIyOSAwIDEuNjk3bC0yLjc1OCAzLjE1MiAyLjc1OCAzLjE1Yy40NjkuNDY5LjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvc3ZnPlxuKVxuXG5DbG9zZS5wcm9wVHlwZXMgPSB7XG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgd2lkdGg6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGhlaWdodDogUHJvcFR5cGVzLnN0cmluZyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ2xvc2VcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmNvbnN0IENvcHkgPSAoeyBjbGFzc05hbWUgPSBudWxsLCB3aWR0aCA9IDE1LCBoZWlnaHQgPSAxNiwgLi4ucmVzdCB9KSA9PiAoXG4gIDxzdmdcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICB2aWV3Qm94PVwiMCAwIDE1IDE2XCJcbiAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICB3aWR0aD17d2lkdGh9XG4gICAgaGVpZ2h0PXtoZWlnaHR9XG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgey4uLnJlc3R9XG4gID5cbiAgICA8ZyB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMiwgLTEpXCI+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsPVwiI2ZmZmZmZlwiXG4gICAgICAgIGZpbGxSdWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNMiAxM2g0djFIMnYtMXptNS02SDJ2MWg1Vjd6bTIgM1Y4bC0zIDMgMyAzdi0yaDV2LTJIOXpNNC41IDlIMnYxaDIuNVY5ek0yIDEyaDIuNXYtMUgydjF6bTkgMWgxdjJjLS4wMi4yOC0uMTEuNTItLjMuNy0uMTkuMTgtLjQyLjI4LS43LjNIMWMtLjU1IDAtMS0uNDUtMS0xVjRjMC0uNTUuNDUtMSAxLTFoM2MwLTEuMTEuODktMiAyLTIgMS4xMSAwIDIgLjg5IDIgMmgzYy41NSAwIDEgLjQ1IDEgMXY1aC0xVjZIMXY5aDEwdi0yek0yIDVoOGMwLS41NS0uNDUtMS0xLTFIOGMtLjU1IDAtMS0uNDUtMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxLS40NSAxLTEgMUgzYy0uNTUgMC0xIC40NS0xIDF6XCJcbiAgICAgID48L3BhdGg+XG4gICAgPC9nPlxuICA8L3N2Zz5cbilcblxuQ29weS5wcm9wVHlwZXMgPSB7XG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgd2lkdGg6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGhlaWdodDogUHJvcFR5cGVzLnN0cmluZyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29weVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuY29uc3QgTG9jayA9ICh7IGNsYXNzTmFtZSA9IG51bGwsIHdpZHRoID0gMjAsIGhlaWdodCA9IDIwLCAuLi5yZXN0IH0pID0+IChcbiAgPHN2Z1xuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIHdpZHRoPXt3aWR0aH1cbiAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICB7Li4ucmVzdH1cbiAgPlxuICAgIDxwYXRoIGQ9XCJNMTUuOCA4SDE0VjUuNkMxNCAyLjcwMyAxMi42NjUgMSAxMCAxIDcuMzM0IDEgNiAyLjcwMyA2IDUuNlY4SDRjLS41NTMgMC0xIC42NDYtMSAxLjE5OVYxN2MwIC41NDkuNDI4IDEuMTM5Ljk1MSAxLjMwN2wxLjE5Ny4zODdDNS42NzIgMTguODYxIDYuNTUgMTkgNy4xIDE5aDUuOGMuNTQ5IDAgMS40MjgtLjEzOSAxLjk1MS0uMzA3bDEuMTk2LS4zODdjLjUyNC0uMTY3Ljk1My0uNzU3Ljk1My0xLjMwNlY5LjE5OUMxNyA4LjY0NiAxNi4zNTIgOCAxNS44IDh6TTEyIDhIOFY1LjE5OUM4IDMuNzU0IDguNzk3IDMgMTAgM2MxLjIwMyAwIDIgLjc1NCAyIDIuMTk5Vjh6XCIgLz5cbiAgPC9zdmc+XG4pXG5cbkxvY2sucHJvcFR5cGVzID0ge1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHdpZHRoOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBoZWlnaHQ6IFByb3BUeXBlcy5zdHJpbmcsXG59XG5cbmV4cG9ydCBkZWZhdWx0IExvY2tcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmNvbnN0IFVubG9jayA9ICh7IGNsYXNzTmFtZSA9IG51bGwsIHdpZHRoID0gMjAsIGhlaWdodCA9IDIwLCAuLi5yZXN0IH0pID0+IChcbiAgPHN2Z1xuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIHdpZHRoPXt3aWR0aH1cbiAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICB7Li4ucmVzdH1cbiAgPlxuICAgIDxwYXRoIGQ9XCJNMTUuOCA4SDE0VjUuNkMxNCAyLjcwMyAxMi42NjUgMSAxMCAxIDcuMzM0IDEgNiAyLjcwMyA2IDUuNlY2aDJ2LS44MDFDOCAzLjc1NCA4Ljc5NyAzIDEwIDNjMS4yMDMgMCAyIC43NTQgMiAyLjE5OVY4SDRjLS41NTMgMC0xIC42NDYtMSAxLjE5OVYxN2MwIC41NDkuNDI4IDEuMTM5Ljk1MSAxLjMwN2wxLjE5Ny4zODdDNS42NzIgMTguODYxIDYuNTUgMTkgNy4xIDE5aDUuOGMuNTQ5IDAgMS40MjgtLjEzOSAxLjk1MS0uMzA3bDEuMTk2LS4zODdjLjUyNC0uMTY3Ljk1My0uNzU3Ljk1My0xLjMwNlY5LjE5OUMxNyA4LjY0NiAxNi4zNTIgOCAxNS44IDh6XCI+PC9wYXRoPlxuICA8L3N2Zz5cbilcblxuVW5sb2NrLnByb3BUeXBlcyA9IHtcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB3aWR0aDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaGVpZ2h0OiBQcm9wVHlwZXMuc3RyaW5nLFxufVxuXG5leHBvcnQgZGVmYXVsdCBVbmxvY2tcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBBcnJvd1VwSWNvbiBmcm9tIFwiLi9jb21wb25lbnRzL2Fycm93LXVwXCJcbmltcG9ydCBBcnJvd0Rvd25JY29uIGZyb20gXCIuL2NvbXBvbmVudHMvYXJyb3ctZG93blwiXG5pbXBvcnQgQXJyb3dJY29uIGZyb20gXCIuL2NvbXBvbmVudHMvYXJyb3dcIlxuaW1wb3J0IENsb3NlSWNvbiBmcm9tIFwiLi9jb21wb25lbnRzL2Nsb3NlXCJcbmltcG9ydCBDb3B5SWNvbiBmcm9tIFwiLi9jb21wb25lbnRzL2NvcHlcIlxuaW1wb3J0IExvY2tJY29uIGZyb20gXCIuL2NvbXBvbmVudHMvbG9ja1wiXG5pbXBvcnQgVW5sb2NrSWNvbiBmcm9tIFwiLi9jb21wb25lbnRzL3VubG9ja1wiXG5cbmNvbnN0IEljb25zUGx1Z2luID0gKCkgPT4gKHtcbiAgY29tcG9uZW50czoge1xuICAgIEFycm93VXBJY29uLFxuICAgIEFycm93RG93bkljb24sXG4gICAgQXJyb3dJY29uLFxuICAgIENsb3NlSWNvbixcbiAgICBDb3B5SWNvbixcbiAgICBMb2NrSWNvbixcbiAgICBVbmxvY2tJY29uLFxuICB9LFxufSlcblxuZXhwb3J0IGRlZmF1bHQgSWNvbnNQbHVnaW5cbiIsImltcG9ydCB7IG5vcm1hbGl6ZUFycmF5IH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuXG5leHBvcnQgY29uc3QgVVBEQVRFX0xBWU9VVCA9IFwibGF5b3V0X3VwZGF0ZV9sYXlvdXRcIlxuZXhwb3J0IGNvbnN0IFVQREFURV9GSUxURVIgPSBcImxheW91dF91cGRhdGVfZmlsdGVyXCJcbmV4cG9ydCBjb25zdCBVUERBVEVfTU9ERSA9IFwibGF5b3V0X3VwZGF0ZV9tb2RlXCJcbmV4cG9ydCBjb25zdCBTSE9XID0gXCJsYXlvdXRfc2hvd1wiXG5cbi8vIGV4cG9ydCBjb25zdCBPTkxZX1NIT1cgPSBcImxheW91dF9vbmx5X3Nob3dcIlxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlTGF5b3V0KGxheW91dCkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9MQVlPVVQsXG4gICAgcGF5bG9hZDogbGF5b3V0XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUZpbHRlcihmaWx0ZXIpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBVUERBVEVfRklMVEVSLFxuICAgIHBheWxvYWQ6IGZpbHRlclxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG93KHRoaW5nLCBzaG93bj10cnVlKSB7XG4gIHRoaW5nID0gbm9ybWFsaXplQXJyYXkodGhpbmcpXG4gIHJldHVybiB7XG4gICAgdHlwZTogU0hPVyxcbiAgICBwYXlsb2FkOiB7dGhpbmcsIHNob3dufVxuICB9XG59XG5cbi8vIFNpbXBsZSBzdHJpbmcga2V5LXN0b3JlLCB1c2VkIGZvclxuZXhwb3J0IGZ1bmN0aW9uIGNoYW5nZU1vZGUodGhpbmcsIG1vZGU9XCJcIikge1xuICB0aGluZyA9IG5vcm1hbGl6ZUFycmF5KHRoaW5nKVxuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9NT0RFLFxuICAgIHBheWxvYWQ6IHt0aGluZywgbW9kZX1cbiAgfVxufVxuIiwiaW1wb3J0IHsgZnJvbUpTIH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQge1xuICBVUERBVEVfTEFZT1VULFxuICBVUERBVEVfRklMVEVSLFxuICBVUERBVEVfTU9ERSxcbiAgU0hPV1xufSBmcm9tIFwiLi9hY3Rpb25zXCJcblxuZXhwb3J0IGRlZmF1bHQge1xuXG4gIFtVUERBVEVfTEFZT1VUXTogKHN0YXRlLCBhY3Rpb24pID0+IHN0YXRlLnNldChcImxheW91dFwiLCBhY3Rpb24ucGF5bG9hZCksXG5cbiAgW1VQREFURV9GSUxURVJdOiAoc3RhdGUsIGFjdGlvbikgPT4gc3RhdGUuc2V0KFwiZmlsdGVyXCIsIGFjdGlvbi5wYXlsb2FkKSxcblxuICBbU0hPV106IChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgaXNTaG93biA9IGFjdGlvbi5wYXlsb2FkLnNob3duXG4gICAgLy8gVGhpcyBpcyBvbmUgd2F5IHRvIHNlcmlhbGl6ZSBhbiBhcnJheSwgYW5vdGhlciAocHJlZmVycmVkKSBpcyB0byBjb252ZXJ0IHRvIGpzb24tcG9pbnRlclxuICAgIC8vIFRPRE86IHVzZSBqc29uLXBvaW50ZXIgc2VyaWxpemF0aW9uIGluc3RlYWQgb2YgZnJvbUpTKC4uLiksIGZvciBwZXJmb3JtYW5jZVxuICAgIGNvbnN0IHRoaW5nVG9TaG93ID0gZnJvbUpTKGFjdGlvbi5wYXlsb2FkLnRoaW5nKVxuICAgIC8vIFRoaXMgaXMgYSBtYXAgb2YgcGF0aHMgdG8gYm9vbHNcbiAgICAvLyBlZzogW29uZSwgdHdvXSA9PiB0cnVlXG4gICAgLy8gZWc6IFtvbmVdID0+IGZhbHNlXG4gICAgcmV0dXJuIHN0YXRlLnVwZGF0ZShcInNob3duXCIsIGZyb21KUyh7fSksIGEgPT4gYS5zZXQodGhpbmdUb1Nob3csIGlzU2hvd24pKVxuICB9LFxuXG4gIFtVUERBVEVfTU9ERV06IChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgbGV0IHRoaW5nID0gYWN0aW9uLnBheWxvYWQudGhpbmdcbiAgICBsZXQgbW9kZSA9IGFjdGlvbi5wYXlsb2FkLm1vZGVcbiAgICByZXR1cm4gc3RhdGUuc2V0SW4oW1wibW9kZXNcIl0uY29uY2F0KHRoaW5nKSwgKG1vZGUgfHwgXCJcIikgKyBcIlwiKVxuICB9XG5cbn1cbiIsImltcG9ydCB7IGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSBcInJlc2VsZWN0XCJcbmltcG9ydCB7IG5vcm1hbGl6ZUFycmF5IH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuaW1wb3J0IHsgZnJvbUpTIH0gZnJvbSBcImltbXV0YWJsZVwiXG5cbmNvbnN0IHN0YXRlID0gc3RhdGUgPT4gc3RhdGVcblxuZXhwb3J0IGNvbnN0IGN1cnJlbnQgPSBzdGF0ZSA9PiBzdGF0ZS5nZXQoXCJsYXlvdXRcIilcblxuZXhwb3J0IGNvbnN0IGN1cnJlbnRGaWx0ZXIgPSBzdGF0ZSA9PiBzdGF0ZS5nZXQoXCJmaWx0ZXJcIilcblxuZXhwb3J0IGNvbnN0IGlzU2hvd24gPSAoc3RhdGUsIHRoaW5nLCBkZWYpID0+IHtcbiAgdGhpbmcgPSBub3JtYWxpemVBcnJheSh0aGluZylcbiAgcmV0dXJuIHN0YXRlLmdldChcInNob3duXCIsIGZyb21KUyh7fSkpLmdldChmcm9tSlModGhpbmcpLCBkZWYpXG59XG5cbmV4cG9ydCBjb25zdCB3aGF0TW9kZSA9IChzdGF0ZSwgdGhpbmcsIGRlZj1cIlwiKSA9PiB7XG4gIHRoaW5nID0gbm9ybWFsaXplQXJyYXkodGhpbmcpXG4gIHJldHVybiBzdGF0ZS5nZXRJbihbXCJtb2Rlc1wiLCAuLi50aGluZ10sIGRlZilcbn1cblxuZXhwb3J0IGNvbnN0IHNob3dTdW1tYXJ5ID0gY3JlYXRlU2VsZWN0b3IoXG4gIHN0YXRlLFxuICBzdGF0ZSA9PiAhaXNTaG93bihzdGF0ZSwgXCJlZGl0b3JcIilcbilcbiIsIlxuZXhwb3J0IGNvbnN0IHRhZ2dlZE9wZXJhdGlvbnMgPSAob3JpU2VsZWN0b3IsIHN5c3RlbSkgPT4gKHN0YXRlLCAuLi5hcmdzKSA9PiB7XG4gIGxldCB0YWdnZWRPcHMgPSBvcmlTZWxlY3RvcihzdGF0ZSwgLi4uYXJncylcblxuICBjb25zdCB7IGZuLCBsYXlvdXRTZWxlY3RvcnMsIGdldENvbmZpZ3MgfSA9IHN5c3RlbS5nZXRTeXN0ZW0oKVxuICBjb25zdCBjb25maWdzID0gZ2V0Q29uZmlncygpXG4gIGNvbnN0IHsgbWF4RGlzcGxheWVkVGFncyB9ID0gY29uZmlnc1xuXG4gIC8vIEZpbHRlciwgaWYgcmVxdWVzdGVkXG4gIGxldCBmaWx0ZXIgPSBsYXlvdXRTZWxlY3RvcnMuY3VycmVudEZpbHRlcigpXG4gIGlmIChmaWx0ZXIpIHtcbiAgICBpZiAoZmlsdGVyICE9PSB0cnVlKSB7XG4gICAgICB0YWdnZWRPcHMgPSBmbi5vcHNGaWx0ZXIodGFnZ2VkT3BzLCBmaWx0ZXIpXG4gICAgfVxuICB9XG4gIC8vIExpbWl0IHRvIFttYXhdIGl0ZW1zLCBpZiBzcGVjaWZpZWRcbiAgaWYgKG1heERpc3BsYXllZFRhZ3MgPj0gMCkge1xuICAgIHRhZ2dlZE9wcyA9IHRhZ2dlZE9wcy5zbGljZSgwLCBtYXhEaXNwbGF5ZWRUYWdzKVxuICB9XG5cbiAgcmV0dXJuIHRhZ2dlZE9wc1xufVxuIiwiaW1wb3J0IHJlZHVjZXJzIGZyb20gXCIuL3JlZHVjZXJzXCJcbmltcG9ydCAqIGFzIGFjdGlvbnMgZnJvbSBcIi4vYWN0aW9uc1wiXG5pbXBvcnQgKiBhcyBzZWxlY3RvcnMgZnJvbSBcIi4vc2VsZWN0b3JzXCJcbmltcG9ydCAqIGFzIHdyYXBTZWxlY3RvcnMgZnJvbSBcIi4vc3BlYy1leHRlbnNpb25zL3dyYXAtc2VsZWN0b3JcIlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHtcbiAgICBzdGF0ZVBsdWdpbnM6IHtcbiAgICAgIGxheW91dDoge1xuICAgICAgICByZWR1Y2VycyxcbiAgICAgICAgYWN0aW9ucyxcbiAgICAgICAgc2VsZWN0b3JzXG4gICAgICB9LFxuICAgICAgc3BlYzoge1xuICAgICAgICB3cmFwU2VsZWN0b3JzXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoe2NvbmZpZ3N9KSB7XG5cbiAgY29uc3QgbGV2ZWxzID0ge1xuICAgIFwiZGVidWdcIjogMCxcbiAgICBcImluZm9cIjogMSxcbiAgICBcImxvZ1wiOiAyLFxuICAgIFwid2FyblwiOiAzLFxuICAgIFwiZXJyb3JcIjogNFxuICB9XG5cbiAgY29uc3QgZ2V0TGV2ZWwgPSAobGV2ZWwpID0+IGxldmVsc1tsZXZlbF0gfHwgLTFcblxuICBsZXQgeyBsb2dMZXZlbCB9ID0gY29uZmlnc1xuICBsZXQgbG9nTGV2ZWxJbnQgPSBnZXRMZXZlbChsb2dMZXZlbClcblxuICBmdW5jdGlvbiBsb2cobGV2ZWwsIC4uLmFyZ3MpIHtcbiAgICBpZihnZXRMZXZlbChsZXZlbCkgPj0gbG9nTGV2ZWxJbnQpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGVbbGV2ZWxdKC4uLmFyZ3MpXG4gIH1cblxuICBsb2cud2FybiA9IGxvZy5iaW5kKG51bGwsIFwid2FyblwiKVxuICBsb2cuZXJyb3IgPSBsb2cuYmluZChudWxsLCBcImVycm9yXCIpXG4gIGxvZy5pbmZvID0gbG9nLmJpbmQobnVsbCwgXCJpbmZvXCIpXG4gIGxvZy5kZWJ1ZyA9IGxvZy5iaW5kKG51bGwsIFwiZGVidWdcIilcblxuICByZXR1cm4geyByb290SW5qZWN0czogeyBsb2cgfSB9XG59XG4iLCJsZXQgZW5nYWdlZCA9IGZhbHNlXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuXG4gIHJldHVybiB7XG4gICAgc3RhdGVQbHVnaW5zOiB7XG4gICAgICBzcGVjOiB7XG4gICAgICAgIHdyYXBBY3Rpb25zOiB7XG4gICAgICAgICAgdXBkYXRlU3BlYzogKG9yaSkgPT4gKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgIGVuZ2FnZWQgPSB0cnVlXG4gICAgICAgICAgICByZXR1cm4gb3JpKC4uLmFyZ3MpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB1cGRhdGVKc29uU3BlYzogKG9yaSwgc3lzdGVtKSA9PiAoLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2IgPSBzeXN0ZW0uZ2V0Q29uZmlncygpLm9uQ29tcGxldGVcbiAgICAgICAgICAgIGlmKGVuZ2FnZWQgJiYgdHlwZW9mIGNiID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgLy8gY2FsbCBgb25Db21wbGV0ZWAgb24gbmV4dCB0aWNrLCB3aGljaCBhbGxvd3MgUmVhY3QgdG9cbiAgICAgICAgICAgICAgLy8gcmVjb25jaWxlIHRoZSBET00gYmVmb3JlIHdlIG5vdGlmeSB0aGUgdXNlclxuICAgICAgICAgICAgICBzZXRUaW1lb3V0KGNiLCAwKVxuICAgICAgICAgICAgICBlbmdhZ2VkID0gZmFsc2VcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG9yaSguLi5hcmdzKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgTGlzdCwgTWFwIH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgd2luIGZyb20gXCIuLi8uLi93aW5kb3dcIlxuXG5cbi8qKlxuICogaWYgZHVwbGljYXRlIGtleSBuYW1lIGV4aXN0ZWQgZnJvbSBGb3JtRGF0YSBlbnRyaWVzLFxuICogd2UgbXV0YXRlZCB0aGUga2V5IG5hbWUgYnkgYXBwZW5kaW5nIGEgaGFzaElkeFxuICogQHBhcmFtIHtTdHJpbmd9IGsgLSBwb3NzaWJseSBtdXRhdGVkIGtleSBuYW1lXG4gKiBAcmV0dXJuIHtTdHJpbmd9IC0gc3JjIGtleSBuYW1lXG4gKi9cbmNvbnN0IGV4dHJhY3RLZXkgPSAoaykgPT4ge1xuICBjb25zdCBoYXNoSWR4ID0gXCJfKipbXVwiXG4gIGlmIChrLmluZGV4T2YoaGFzaElkeCkgPCAwKSB7XG4gICAgcmV0dXJuIGtcbiAgfVxuICByZXR1cm4gay5zcGxpdChoYXNoSWR4KVswXS50cmltKClcbn1cblxuY29uc3QgZXNjYXBlU2hlbGwgPSAoc3RyKSA9PiB7XG4gIGlmIChzdHIgPT09IFwiLWQgXCIpIHtcbiAgICByZXR1cm4gc3RyXG4gIH1cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtZXNjYXBlXG4gIGlmICghL15bX1xcLy1dL2cudGVzdChzdHIpKVxuICAgIHJldHVybiAoXCInXCIgKyBzdHJcbiAgICAgIC5yZXBsYWNlKC8nL2csIFwiJ1xcXFwnJ1wiKSArIFwiJ1wiKVxuICBlbHNlXG4gICAgcmV0dXJuIHN0clxufVxuXG5jb25zdCBlc2NhcGVDTUQgPSAoc3RyKSA9PiB7XG4gIHN0ciA9IHN0clxuICAgIC5yZXBsYWNlKC9cXF4vZywgXCJeXlwiKVxuICAgIC5yZXBsYWNlKC9cXFxcXCIvZywgXCJcXFxcXFxcXFxcXCJcIilcbiAgICAucmVwbGFjZSgvXCIvZywgXCJcXFwiXFxcIlwiKVxuICAgIC5yZXBsYWNlKC9cXG4vZywgXCJeXFxuXCIpXG4gIGlmIChzdHIgPT09IFwiLWQgXCIpIHtcbiAgICByZXR1cm4gc3RyXG4gICAgICAucmVwbGFjZSgvLWQgL2csIFwiLWQgXlxcblwiKVxuICB9XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWVzY2FwZVxuICBpZiAoIS9eW19cXC8tXS9nLnRlc3Qoc3RyKSlcbiAgICByZXR1cm4gXCJcXFwiXCIgKyBzdHIgKyBcIlxcXCJcIlxuICBlbHNlXG4gICAgcmV0dXJuIHN0clxufVxuXG5jb25zdCBlc2NhcGVQb3dlcnNoZWxsID0gKHN0cikgPT4ge1xuICBpZiAoc3RyID09PSBcIi1kIFwiKSB7XG4gICAgcmV0dXJuIHN0clxuICB9XG4gIGlmICgvXFxuLy50ZXN0KHN0cikpIHtcbiAgICBjb25zdCBlc2NhcGVkID0gc3RyLnJlcGxhY2UoL2AvZywgXCJgYFwiKS5yZXBsYWNlKC9cXCQvZywgXCJgJFwiKVxuICAgIHJldHVybiBgQFwiXFxuJHtlc2NhcGVkfVxcblwiQGBcbiAgfVxuICBpZiAoIS9eW19cXC8tXS8udGVzdChzdHIpKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdXNlbGVzcy1lc2NhcGVcbiAgICBjb25zdCBlc2NhcGVkID0gc3RyLnJlcGxhY2UoLycvZywgXCInJ1wiKVxuICAgIHJldHVybiBgJyR7ZXNjYXBlZH0nYFxuICB9XG4gIHJldHVybiBzdHJcbn1cblxuZnVuY3Rpb24gZ2V0U3RyaW5nQm9keU9mTWFwKHJlcXVlc3QpIHtcbiAgbGV0IGN1cmxpZnlUb0pvaW4gPSBbXVxuICBmb3IgKGxldCBbaywgdl0gb2YgcmVxdWVzdC5nZXQoXCJib2R5XCIpLmVudHJ5U2VxKCkpIHtcbiAgICBsZXQgZXh0cmFjdGVkS2V5ID0gZXh0cmFjdEtleShrKVxuICAgIGlmICh2IGluc3RhbmNlb2Ygd2luLkZpbGUpIHtcbiAgICAgIGN1cmxpZnlUb0pvaW4ucHVzaChgICBcIiR7ZXh0cmFjdGVkS2V5fVwiOiB7XFxuICAgIFwibmFtZVwiOiBcIiR7di5uYW1lfVwiJHt2LnR5cGUgPyBgLFxcbiAgICBcInR5cGVcIjogXCIke3YudHlwZX1cImAgOiBcIlwifVxcbiAgfWApXG4gICAgfSBlbHNlIHtcbiAgICAgIGN1cmxpZnlUb0pvaW4ucHVzaChgICBcIiR7ZXh0cmFjdGVkS2V5fVwiOiAke0pTT04uc3RyaW5naWZ5KHYsIG51bGwsIDIpLnJlcGxhY2UoLyhcXHJcXG58XFxyfFxcbikvZywgXCJcXG4gIFwiKX1gKVxuICAgIH1cbiAgfVxuICByZXR1cm4gYHtcXG4ke2N1cmxpZnlUb0pvaW4uam9pbihcIixcXG5cIil9XFxufWBcbn1cblxuY29uc3QgY3VybGlmeSA9IChyZXF1ZXN0LCBlc2NhcGUsIG5ld0xpbmUsIGV4dCA9IFwiXCIpID0+IHtcbiAgbGV0IGlzTXVsdGlwYXJ0Rm9ybURhdGFSZXF1ZXN0ID0gZmFsc2VcbiAgbGV0IGN1cmxpZmllZCA9IFwiXCJcbiAgY29uc3QgYWRkV29yZHMgPSAoLi4uYXJncykgPT4gY3VybGlmaWVkICs9IFwiIFwiICsgYXJncy5tYXAoZXNjYXBlKS5qb2luKFwiIFwiKVxuICBjb25zdCBhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2UgPSAoLi4uYXJncykgPT4gY3VybGlmaWVkICs9IGFyZ3MubWFwKGVzY2FwZSkuam9pbihcIiBcIilcbiAgY29uc3QgYWRkTmV3TGluZSA9ICgpID0+IGN1cmxpZmllZCArPSBgICR7bmV3TGluZX1gXG4gIGNvbnN0IGFkZEluZGVudCA9IChsZXZlbCA9IDEpID0+IGN1cmxpZmllZCArPSBcIiAgXCIucmVwZWF0KGxldmVsKVxuICBsZXQgaGVhZGVycyA9IHJlcXVlc3QuZ2V0KFwiaGVhZGVyc1wiKVxuICBjdXJsaWZpZWQgKz0gXCJjdXJsXCIgKyBleHRcblxuICBjb25zdCBjdXJsT3B0aW9ucyA9IHJlcXVlc3QuZ2V0KFwiY3VybE9wdGlvbnNcIilcbiAgaWYgKExpc3QuaXNMaXN0KGN1cmxPcHRpb25zKSAmJiAhY3VybE9wdGlvbnMuaXNFbXB0eSgpKSB7XG4gICAgYWRkV29yZHMoLi4ucmVxdWVzdC5nZXQoXCJjdXJsT3B0aW9uc1wiKSlcbiAgfVxuXG4gIGFkZFdvcmRzKFwiLVhcIiwgcmVxdWVzdC5nZXQoXCJtZXRob2RcIikpXG5cbiAgYWRkTmV3TGluZSgpXG4gIGFkZEluZGVudCgpXG4gIGFkZFdvcmRzV2l0aG91dExlYWRpbmdTcGFjZShgJHtyZXF1ZXN0LmdldChcInVybFwiKX1gKVxuXG4gIGlmIChoZWFkZXJzICYmIGhlYWRlcnMuc2l6ZSkge1xuICAgIGZvciAobGV0IHAgb2YgcmVxdWVzdC5nZXQoXCJoZWFkZXJzXCIpLmVudHJpZXMoKSkge1xuICAgICAgYWRkTmV3TGluZSgpXG4gICAgICBhZGRJbmRlbnQoKVxuICAgICAgbGV0IFtoLCB2XSA9IHBcbiAgICAgIGFkZFdvcmRzV2l0aG91dExlYWRpbmdTcGFjZShcIi1IXCIsIGAke2h9OiAke3Z9YClcbiAgICAgIGlzTXVsdGlwYXJ0Rm9ybURhdGFSZXF1ZXN0ID0gaXNNdWx0aXBhcnRGb3JtRGF0YVJlcXVlc3QgfHwgL15jb250ZW50LXR5cGUkL2kudGVzdChoKSAmJiAvXm11bHRpcGFydFxcL2Zvcm0tZGF0YSQvaS50ZXN0KHYpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgYm9keSA9IHJlcXVlc3QuZ2V0KFwiYm9keVwiKVxuICBpZiAoYm9keSkge1xuICAgIGlmIChpc011bHRpcGFydEZvcm1EYXRhUmVxdWVzdCAmJiBbXCJQT1NUXCIsIFwiUFVUXCIsIFwiUEFUQ0hcIl0uaW5jbHVkZXMocmVxdWVzdC5nZXQoXCJtZXRob2RcIikpKSB7XG4gICAgICBmb3IgKGxldCBbaywgdl0gb2YgYm9keS5lbnRyeVNlcSgpKSB7XG4gICAgICAgIGxldCBleHRyYWN0ZWRLZXkgPSBleHRyYWN0S2V5KGspXG4gICAgICAgIGFkZE5ld0xpbmUoKVxuICAgICAgICBhZGRJbmRlbnQoKVxuICAgICAgICBhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2UoXCItRlwiKVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTd2FnZ2VyQ2xpZW50IHByb2R1Y2VzIHNwZWNpYWxpemVkIHN1Yi1jbGFzcyBvZiBGaWxlIGNsYXNzLCB0aGF0IG9ubHlcbiAgICAgICAgICogYWNjZXB0cyBzdHJpbmcgZGF0YSBhbmQgcmV0YWluIHRoaXMgZGF0YSBpbiBgZGF0YWBcbiAgICAgICAgICogcHVibGljIHByb3BlcnR5IHRocm91Z2hvdXQgdGhlIGxpZmVjeWNsZSBvZiBpdHMgaW5zdGFuY2VzLlxuICAgICAgICAgKlxuICAgICAgICAgKiBUaGlzIHN1Yi1jbGFzcyBpcyBleGNsdXNpdmVseSB1c2VkIG9ubHkgd2hlbiBFbmNvZGluZyBPYmplY3RcbiAgICAgICAgICogaXMgZGVmaW5lZCB3aXRoaW4gdGhlIE1lZGlhIFR5cGUgT2JqZWN0IChPcGVuQVBJIDMueC55KS5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh2IGluc3RhbmNlb2Ygd2luLkZpbGUgJiYgdHlwZW9mIHYudmFsdWVPZigpID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgYWRkV29yZHMoYCR7ZXh0cmFjdGVkS2V5fT0ke3YuZGF0YX0ke3YudHlwZSA/IGA7dHlwZT0ke3YudHlwZX1gIDogXCJcIn1gKVxuICAgICAgICB9IGVsc2UgaWYgKHYgaW5zdGFuY2VvZiB3aW4uRmlsZSkge1xuICAgICAgICAgIGFkZFdvcmRzKGAke2V4dHJhY3RlZEtleX09QCR7di5uYW1lfSR7di50eXBlID8gYDt0eXBlPSR7di50eXBlfWAgOiBcIlwifWApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWRkV29yZHMoYCR7ZXh0cmFjdGVkS2V5fT0ke3Z9YClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZihib2R5IGluc3RhbmNlb2Ygd2luLkZpbGUpIHtcbiAgICAgIGFkZE5ld0xpbmUoKVxuICAgICAgYWRkSW5kZW50KClcbiAgICAgIGFkZFdvcmRzV2l0aG91dExlYWRpbmdTcGFjZShgLS1kYXRhLWJpbmFyeSAnQCR7Ym9keS5uYW1lfSdgKVxuICAgIH0gZWxzZSB7XG4gICAgICBhZGROZXdMaW5lKClcbiAgICAgIGFkZEluZGVudCgpXG4gICAgICBhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2UoXCItZCBcIilcbiAgICAgIGxldCByZXFCb2R5ID0gYm9keVxuICAgICAgaWYgKCFNYXAuaXNNYXAocmVxQm9keSkpIHtcbiAgICAgICAgaWYgKHR5cGVvZiByZXFCb2R5ICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgcmVxQm9keSA9IEpTT04uc3RyaW5naWZ5KHJlcUJvZHkpXG4gICAgICAgIH1cbiAgICAgICAgYWRkV29yZHNXaXRob3V0TGVhZGluZ1NwYWNlKHJlcUJvZHkpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2UoZ2V0U3RyaW5nQm9keU9mTWFwKHJlcXVlc3QpKVxuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIGlmICghYm9keSAmJiByZXF1ZXN0LmdldChcIm1ldGhvZFwiKSA9PT0gXCJQT1NUXCIpIHtcbiAgICBhZGROZXdMaW5lKClcbiAgICBhZGRJbmRlbnQoKVxuICAgIGFkZFdvcmRzV2l0aG91dExlYWRpbmdTcGFjZShcIi1kICcnXCIpXG4gIH1cblxuICByZXR1cm4gY3VybGlmaWVkXG59XG5cbmV4cG9ydCBjb25zdCByZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX3Bvd2Vyc2hlbGwgPSAocmVxdWVzdCkgPT4ge1xuICByZXR1cm4gY3VybGlmeShyZXF1ZXN0LCBlc2NhcGVQb3dlcnNoZWxsLCBcImBcXG5cIiwgXCIuZXhlXCIpXG59XG5cbmV4cG9ydCBjb25zdCByZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX2Jhc2ggPSAocmVxdWVzdCkgPT4ge1xuICByZXR1cm4gY3VybGlmeShyZXF1ZXN0LCBlc2NhcGVTaGVsbCwgXCJcXFxcXFxuXCIpXG59XG5cbmV4cG9ydCBjb25zdCByZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX2NtZCA9IChyZXF1ZXN0KSA9PiB7XG4gIHJldHVybiBjdXJsaWZ5KHJlcXVlc3QsIGVzY2FwZUNNRCwgXCJeXFxuXCIpXG59XG4iLCJpbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gXCJyZXNlbGVjdFwiXG5pbXBvcnQgeyBNYXAgfSBmcm9tIFwiaW1tdXRhYmxlXCJcblxuY29uc3Qgc3RhdGUgPSBzdGF0ZSA9PiBzdGF0ZSB8fCBNYXAoKVxuXG5leHBvcnQgY29uc3QgZ2V0R2VuZXJhdG9ycyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzdGF0ZSxcbiAgc3RhdGUgPT4ge1xuICAgIGNvbnN0IGxhbmd1YWdlS2V5cyA9IHN0YXRlXG4gICAgICAuZ2V0KFwibGFuZ3VhZ2VzXCIpXG4gICAgY29uc3QgZ2VuZXJhdG9ycyA9IHN0YXRlXG4gICAgICAuZ2V0KFwiZ2VuZXJhdG9yc1wiLCBNYXAoKSlcbiAgICBpZighbGFuZ3VhZ2VLZXlzIHx8IGxhbmd1YWdlS2V5cy5pc0VtcHR5KCkpIHtcbiAgICAgIHJldHVybiBnZW5lcmF0b3JzXG4gICAgfVxuICAgIHJldHVybiBnZW5lcmF0b3JzXG4gICAgICAuZmlsdGVyKCh2LCBrZXkpID0+IGxhbmd1YWdlS2V5cy5pbmNsdWRlcyhrZXkpKVxuICB9XG4pXG5cbmV4cG9ydCBjb25zdCBnZXRTbmlwcGV0R2VuZXJhdG9ycyA9IChzdGF0ZSkgPT4gKHsgZm4gfSkgPT4ge1xuICBjb25zdCBnZXRHZW5GbiA9IChrZXkpID0+IGZuW2ByZXF1ZXN0U25pcHBldEdlbmVyYXRvcl8ke2tleX1gXVxuICByZXR1cm4gZ2V0R2VuZXJhdG9ycyhzdGF0ZSlcbiAgICAubWFwKChnZW4sIGtleSkgPT4ge1xuICAgICAgY29uc3QgZ2VuRm4gPSBnZXRHZW5GbihrZXkpXG4gICAgICBpZih0eXBlb2YgZ2VuRm4gIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZ2VuLnNldChcImZuXCIsIGdlbkZuKVxuICAgIH0pXG4gICAgLmZpbHRlcih2ID0+IHYpXG59XG5cbmV4cG9ydCBjb25zdCBnZXRBY3RpdmVMYW5ndWFnZSA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzdGF0ZSxcbiAgc3RhdGUgPT4gc3RhdGVcbiAgICAuZ2V0KFwiYWN0aXZlTGFuZ3VhZ2VcIilcbilcblxuZXhwb3J0IGNvbnN0IGdldERlZmF1bHRFeHBhbmRlZCA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzdGF0ZSxcbiAgc3RhdGUgPT4gc3RhdGVcbiAgICAuZ2V0KFwiZGVmYXVsdEV4cGFuZGVkXCIpXG4pXG4iLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfY2xhc3NuYW1lc19fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJDb3B5VG9DbGlwYm9hcmRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9jb3B5X3RvX2NsaXBib2FyZF81YjExZGQ1N19fLkNvcHlUb0NsaXBib2FyZDsgfSB9KTsiLCJpbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHsgQ29weVRvQ2xpcGJvYXJkIH0gZnJvbSBcInJlYWN0LWNvcHktdG8tY2xpcGJvYXJkXCJcblxuY29uc3Qgc3R5bGUgPSB7XG4gIGN1cnNvcjogXCJwb2ludGVyXCIsXG4gIGxpbmVIZWlnaHQ6IDEsXG4gIGRpc3BsYXk6IFwiaW5saW5lLWZsZXhcIixcbiAgYmFja2dyb3VuZENvbG9yOiBcInJnYigyNTAsIDI1MCwgMjUwKVwiLFxuICBwYWRkaW5nQm90dG9tOiBcIjBcIixcbiAgcGFkZGluZ1RvcDogXCIwXCIsXG4gIGJvcmRlcjogXCIxcHggc29saWQgcmdiKDUxLCA1MSwgNTEpXCIsXG4gIGJvcmRlclJhZGl1czogXCI0cHggNHB4IDAgMFwiLFxuICBib3hTaGFkb3c6IFwibm9uZVwiLFxuICBib3JkZXJCb3R0b206IFwibm9uZVwiXG59XG5cbmNvbnN0IGFjdGl2ZVN0eWxlID0ge1xuICBjdXJzb3I6IFwicG9pbnRlclwiLFxuICBsaW5lSGVpZ2h0OiAxLFxuICBkaXNwbGF5OiBcImlubGluZS1mbGV4XCIsXG4gIGJhY2tncm91bmRDb2xvcjogXCJyZ2IoNTEsIDUxLCA1MSlcIixcbiAgYm94U2hhZG93OiBcIm5vbmVcIixcbiAgYm9yZGVyOiBcIjFweCBzb2xpZCByZ2IoNTEsIDUxLCA1MSlcIixcbiAgcGFkZGluZ0JvdHRvbTogXCIwXCIsXG4gIHBhZGRpbmdUb3A6IFwiMFwiLFxuICBib3JkZXJSYWRpdXM6IFwiNHB4IDRweCAwIDBcIixcbiAgbWFyZ2luVG9wOiBcIi01cHhcIixcbiAgbWFyZ2luUmlnaHQ6IFwiLTVweFwiLFxuICBtYXJnaW5MZWZ0OiBcIi01cHhcIixcbiAgekluZGV4OiBcIjk5OTlcIixcbiAgYm9yZGVyQm90dG9tOiBcIm5vbmVcIlxufVxuXG5jb25zdCBSZXF1ZXN0U25pcHBldHMgPSAoeyByZXF1ZXN0LCByZXF1ZXN0U25pcHBldHNTZWxlY3RvcnMsIGdldENvbXBvbmVudCB9KSA9PiB7XG4gIGNvbnN0IHJvb3RSZWYgPSB1c2VSZWYobnVsbClcblxuICBjb25zdCBBcnJvd0ljb24gPSBnZXRDb21wb25lbnQoXCJBcnJvd1VwSWNvblwiKVxuICBjb25zdCBBcnJvd0Rvd25JY29uID0gZ2V0Q29tcG9uZW50KFwiQXJyb3dEb3duSWNvblwiKVxuICBjb25zdCBTeW50YXhIaWdobGlnaHRlciA9IGdldENvbXBvbmVudChcIlN5bnRheEhpZ2hsaWdodGVyXCIsIHRydWUpXG5cbiAgY29uc3QgW2FjdGl2ZUxhbmd1YWdlLCBzZXRBY3RpdmVMYW5ndWFnZV0gPSB1c2VTdGF0ZShyZXF1ZXN0U25pcHBldHNTZWxlY3RvcnMuZ2V0U25pcHBldEdlbmVyYXRvcnMoKT8ua2V5U2VxKCkuZmlyc3QoKSlcbiAgY29uc3QgW2lzRXhwYW5kZWQsIHNldElzRXhwYW5kZWRdID0gdXNlU3RhdGUocmVxdWVzdFNuaXBwZXRzU2VsZWN0b3JzPy5nZXREZWZhdWx0RXhwYW5kZWQoKSlcblxuICBjb25zdCBzbmlwcGV0R2VuZXJhdG9ycyA9IHJlcXVlc3RTbmlwcGV0c1NlbGVjdG9ycy5nZXRTbmlwcGV0R2VuZXJhdG9ycygpXG4gIGNvbnN0IGFjdGl2ZUdlbmVyYXRvciA9IHNuaXBwZXRHZW5lcmF0b3JzLmdldChhY3RpdmVMYW5ndWFnZSlcbiAgY29uc3Qgc25pcHBldCA9IGFjdGl2ZUdlbmVyYXRvci5nZXQoXCJmblwiKShyZXF1ZXN0KVxuXG4gIGNvbnN0IGhhbmRsZUdlbkNoYW5nZSA9IChrZXkpID0+IHtcbiAgICBjb25zdCBuZWVkc0NoYW5nZSA9IGFjdGl2ZUxhbmd1YWdlICE9PSBrZXlcbiAgICBpZiAobmVlZHNDaGFuZ2UpIHtcbiAgICAgIHNldEFjdGl2ZUxhbmd1YWdlKGtleSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVTZXRJc0V4cGFuZGVkID0gKCkgPT4ge1xuICAgIHNldElzRXhwYW5kZWQoIWlzRXhwYW5kZWQpXG4gIH1cblxuICBjb25zdCBoYW5kbGVHZXRCdG5TdHlsZSA9IChrZXkpID0+IHtcbiAgICBpZiAoa2V5ID09PSBhY3RpdmVMYW5ndWFnZSkge1xuICAgICAgcmV0dXJuIGFjdGl2ZVN0eWxlXG4gICAgfVxuICAgIHJldHVybiBzdHlsZVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUHJldmVudFlTY3JvbGxpbmdCZXlvbmRFbGVtZW50ID0gKGUpID0+IHtcbiAgICBjb25zdCB7IHRhcmdldCwgZGVsdGFZIH0gPSBlXG4gICAgY29uc3QgeyBzY3JvbGxIZWlnaHQ6IGNvbnRlbnRIZWlnaHQsIG9mZnNldEhlaWdodDogdmlzaWJsZUhlaWdodCwgc2Nyb2xsVG9wIH0gPSB0YXJnZXRcbiAgICBjb25zdCBzY3JvbGxPZmZzZXQgPSB2aXNpYmxlSGVpZ2h0ICsgc2Nyb2xsVG9wXG4gICAgY29uc3QgaXNFbGVtZW50U2Nyb2xsYWJsZSA9IGNvbnRlbnRIZWlnaHQgPiB2aXNpYmxlSGVpZ2h0XG4gICAgY29uc3QgaXNTY3JvbGxpbmdQYXN0VG9wID0gc2Nyb2xsVG9wID09PSAwICYmIGRlbHRhWSA8IDBcbiAgICBjb25zdCBpc1Njcm9sbGluZ1Bhc3RCb3R0b20gPSBzY3JvbGxPZmZzZXQgPj0gY29udGVudEhlaWdodCAmJiBkZWx0YVkgPiAwXG5cbiAgICBpZiAoaXNFbGVtZW50U2Nyb2xsYWJsZSAmJiAoaXNTY3JvbGxpbmdQYXN0VG9wIHx8IGlzU2Nyb2xsaW5nUGFzdEJvdHRvbSkpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZG9JdCA9ICgpID0+IHtcblxuICAgIH1cbiAgICBkb0l0KClcbiAgfSwgW10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gQXJyYXlcbiAgICAgIC5mcm9tKHJvb3RSZWYuY3VycmVudC5jaGlsZE5vZGVzKVxuICAgICAgLmZpbHRlcihub2RlID0+ICEhbm9kZS5ub2RlVHlwZSAmJiBub2RlLmNsYXNzTGlzdD8uY29udGFpbnMoXCJjdXJsLWNvbW1hbmRcIikpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgY2hpbGROb2Rlcy5mb3JFYWNoKG5vZGUgPT4gbm9kZS5hZGRFdmVudExpc3RlbmVyKFwibW91c2V3aGVlbFwiLCBoYW5kbGVQcmV2ZW50WVNjcm9sbGluZ0JleW9uZEVsZW1lbnQsIHsgcGFzc2l2ZTogZmFsc2UgfSkpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICBjaGlsZE5vZGVzLmZvckVhY2gobm9kZSA9PiBub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXdoZWVsXCIsIGhhbmRsZVByZXZlbnRZU2Nyb2xsaW5nQmV5b25kRWxlbWVudCkpXG4gICAgfVxuICB9LCBbcmVxdWVzdF0pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInJlcXVlc3Qtc25pcHBldHNcIiByZWY9e3Jvb3RSZWZ9PlxuICAgICAgPGRpdiBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIsIGRpc3BsYXk6IFwiZmxleFwiLCBqdXN0aWZ5Q29udGVudDogXCJmbGV4LXN0YXJ0XCIsIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsIG1hcmdpbkJvdHRvbTogXCIxNXB4XCIgfX0+XG4gICAgICAgIDxoNFxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVNldElzRXhwYW5kZWQoKX1cbiAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XG4gICAgICAgID5TbmlwcGV0czwvaDQ+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVTZXRJc0V4cGFuZGVkKCl9XG4gICAgICAgICAgc3R5bGU9e3sgYm9yZGVyOiBcIm5vbmVcIiwgYmFja2dyb3VuZDogXCJub25lXCIgfX1cbiAgICAgICAgICB0aXRsZT17aXNFeHBhbmRlZCA/IFwiQ29sbGFwc2Ugb3BlcmF0aW9uXCIgOiBcIkV4cGFuZCBvcGVyYXRpb25cIn1cbiAgICAgICAgPlxuICAgICAgICAgIHtpc0V4cGFuZGVkID8gPEFycm93RG93bkljb24gY2xhc3NOYW1lPVwiYXJyb3dcIiB3aWR0aD1cIjEwXCIgaGVpZ2h0PVwiMTBcIiAvPiA6IDxBcnJvd0ljb24gY2xhc3NOYW1lPVwiYXJyb3dcIiB3aWR0aD1cIjEwXCIgaGVpZ2h0PVwiMTBcIiAvPn1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIHtcbiAgICAgICAgaXNFeHBhbmRlZCAmJiA8ZGl2IGNsYXNzTmFtZT1cImN1cmwtY29tbWFuZFwiPlxuICAgICAgICAgIDxkaXYgc3R5bGU9e3sgcGFkZGluZ0xlZnQ6IFwiMTVweFwiLCBwYWRkaW5nUmlnaHQ6IFwiMTBweFwiLCB3aWR0aDogXCIxMDAlXCIsIGRpc3BsYXk6IFwiZmxleFwiIH19PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBzbmlwcGV0R2VuZXJhdG9ycy5lbnRyeVNlcSgpLm1hcCgoW2tleSwgZ2VuXSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcImJ0blwiLCB7XCJhY3RpdmVcIjoga2V5ID09PSBhY3RpdmVMYW5ndWFnZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e2hhbmRsZUdldEJ0blN0eWxlKGtleSl9XG4gICAgICAgICAgICAgICAgICAgIGtleT17a2V5fVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVHZW5DaGFuZ2Uoa2V5KX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGg0IHN0eWxlPXtrZXkgPT09IGFjdGl2ZUxhbmd1YWdlID8geyBjb2xvcjogXCJ3aGl0ZVwiLCB9IDoge319PntnZW4uZ2V0KFwidGl0bGVcIil9PC9oND5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvcHktdG8tY2xpcGJvYXJkXCI+XG4gICAgICAgICAgICA8Q29weVRvQ2xpcGJvYXJkIHRleHQ9e3NuaXBwZXR9PlxuICAgICAgICAgICAgICA8YnV0dG9uIC8+XG4gICAgICAgICAgICA8L0NvcHlUb0NsaXBib2FyZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPFN5bnRheEhpZ2hsaWdodGVyXG4gICAgICAgICAgICAgIGxhbmd1YWdlPXthY3RpdmVHZW5lcmF0b3IuZ2V0KFwic3ludGF4XCIpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjdXJsIG1pY3JvbGlnaHRcIlxuICAgICAgICAgICAgICByZW5kZXJQbGFpblRleHQ9eyh7IGNoaWxkcmVuLCBQbGFpblRleHRWaWV3ZXIgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxQbGFpblRleHRWaWV3ZXIgY2xhc3NOYW1lPVwiY3VybFwiPntjaGlsZHJlbn08L1BsYWluVGV4dFZpZXdlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3NuaXBwZXR9XG4gICAgICAgICAgICA8L1N5bnRheEhpZ2hsaWdodGVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5SZXF1ZXN0U25pcHBldHMucHJvcFR5cGVzID0ge1xuICByZXF1ZXN0OiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIHJlcXVlc3RTbmlwcGV0c1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHJlcXVlc3RTbmlwcGV0c0FjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFJlcXVlc3RTbmlwcGV0c1xuIiwiaW1wb3J0IHsgcmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfY3VybF9iYXNoLCByZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX2NtZCwgcmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfY3VybF9wb3dlcnNoZWxsIH0gZnJvbSBcIi4vZm5cIlxuaW1wb3J0ICogYXMgc2VsZWN0b3JzIGZyb20gXCIuL3NlbGVjdG9yc1wiXG5pbXBvcnQgUmVxdWVzdFNuaXBwZXRzIGZyb20gXCIuL3JlcXVlc3Qtc25pcHBldHNcIlxuXG5leHBvcnQgZGVmYXVsdCAoKSA9PiB7XG4gIHJldHVybiB7XG4gICAgY29tcG9uZW50czoge1xuICAgICAgUmVxdWVzdFNuaXBwZXRzXG4gICAgfSxcbiAgICBmbjoge1xuICAgICAgcmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfY3VybF9iYXNoLFxuICAgICAgcmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfY3VybF9jbWQsXG4gICAgICByZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX3Bvd2Vyc2hlbGwsXG4gICAgfSxcbiAgICBzdGF0ZVBsdWdpbnM6IHtcbiAgICAgIHJlcXVlc3RTbmlwcGV0czoge1xuICAgICAgICBzZWxlY3RvcnNcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuaW1wb3J0IEltIGZyb20gXCJpbW11dGFibGVcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNb2RlbENvbGxhcHNlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjb2xsYXBzZWRDb250ZW50OiBQcm9wVHlwZXMuYW55LFxuICAgIGV4cGFuZGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLmFueSxcbiAgICB0aXRsZTogUHJvcFR5cGVzLmVsZW1lbnQsXG4gICAgbW9kZWxOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Ub2dnbGU6IFByb3BUeXBlcy5mdW5jLFxuICAgIGhpZGVTZWxmT25FeHBhbmQ6IFByb3BUeXBlcy5ib29sLFxuICAgIGxheW91dEFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbGF5b3V0U2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgc3BlY1BhdGg6IEltUHJvcFR5cGVzLmxpc3QuaXNSZXF1aXJlZCxcbiAgfVxuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgY29sbGFwc2VkQ29udGVudDogXCJ7Li4ufVwiLFxuICAgIGV4cGFuZGVkOiBmYWxzZSxcbiAgICB0aXRsZTogbnVsbCxcbiAgICBvblRvZ2dsZTogKCkgPT4ge30sXG4gICAgaGlkZVNlbGZPbkV4cGFuZDogZmFsc2UsXG4gICAgc3BlY1BhdGg6IEltLkxpc3QoW10pLFxuICB9XG5cbiAgY29uc3RydWN0b3IocHJvcHMsIGNvbnRleHQpIHtcbiAgICBzdXBlcihwcm9wcywgY29udGV4dClcblxuICAgIGxldCB7IGV4cGFuZGVkLCBjb2xsYXBzZWRDb250ZW50IH0gPSB0aGlzLnByb3BzXG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgZXhwYW5kZWQgOiBleHBhbmRlZCxcbiAgICAgIGNvbGxhcHNlZENvbnRlbnQ6IGNvbGxhcHNlZENvbnRlbnQgfHwgTW9kZWxDb2xsYXBzZS5kZWZhdWx0UHJvcHMuY29sbGFwc2VkQ29udGVudFxuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaGlkZVNlbGZPbkV4cGFuZCwgZXhwYW5kZWQsIG1vZGVsTmFtZSB9ID0gdGhpcy5wcm9wc1xuICAgIGlmKGhpZGVTZWxmT25FeHBhbmQgJiYgZXhwYW5kZWQpIHtcbiAgICAgIC8vIFdlIGp1c3QgbW91bnRlZCBwcmUtZXhwYW5kZWQsIGFuZCB3ZSB3b24ndCBiZSBnb2luZyBiYWNrLi5cbiAgICAgIC8vIFNvIGxldCdzIGdpdmUgb3VyIHBhcmVudCBhbiBgb25Ub2dnbGVgIGNhbGwuLlxuICAgICAgLy8gU2luY2Ugb3RoZXJ3aXNlIGl0IHdpbGwgbmV2ZXIgYmUgY2FsbGVkLlxuICAgICAgdGhpcy5wcm9wcy5vblRvZ2dsZShtb2RlbE5hbWUsIGV4cGFuZGVkKVxuICAgIH1cbiAgfVxuXG4gIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcyl7XG4gICAgaWYodGhpcy5wcm9wcy5leHBhbmRlZCAhPT0gbmV4dFByb3BzLmV4cGFuZGVkKXtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7ZXhwYW5kZWQ6IG5leHRQcm9wcy5leHBhbmRlZH0pXG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlQ29sbGFwc2VkPSgpPT57XG4gICAgaWYodGhpcy5wcm9wcy5vblRvZ2dsZSl7XG4gICAgICB0aGlzLnByb3BzLm9uVG9nZ2xlKHRoaXMucHJvcHMubW9kZWxOYW1lLCF0aGlzLnN0YXRlLmV4cGFuZGVkKVxuICAgIH1cblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgZXhwYW5kZWQ6ICF0aGlzLnN0YXRlLmV4cGFuZGVkXG4gICAgfSlcbiAgfVxuXG4gIG9uTG9hZCA9IChyZWYpID0+IHtcbiAgICBpZiAocmVmICYmIHRoaXMucHJvcHMubGF5b3V0U2VsZWN0b3JzKSB7XG4gICAgICBjb25zdCBzY3JvbGxUb0tleSA9IHRoaXMucHJvcHMubGF5b3V0U2VsZWN0b3JzLmdldFNjcm9sbFRvS2V5KClcblxuICAgICAgaWYoIEltLmlzKHNjcm9sbFRvS2V5LCB0aGlzLnByb3BzLnNwZWNQYXRoKSApIHRoaXMudG9nZ2xlQ29sbGFwc2VkKClcbiAgICAgIHRoaXMucHJvcHMubGF5b3V0QWN0aW9ucy5yZWFkeVRvU2Nyb2xsKHRoaXMucHJvcHMuc3BlY1BhdGgsIHJlZi5wYXJlbnRFbGVtZW50KVxuICAgIH1cbiAgfVxuXG4gIHJlbmRlciAoKSB7XG4gICAgY29uc3QgeyB0aXRsZSwgY2xhc3NlcyB9ID0gdGhpcy5wcm9wc1xuXG4gICAgaWYodGhpcy5zdGF0ZS5leHBhbmRlZCApIHtcbiAgICAgIGlmKHRoaXMucHJvcHMuaGlkZVNlbGZPbkV4cGFuZCkge1xuICAgICAgICByZXR1cm4gPHNwYW4gY2xhc3NOYW1lPXtjbGFzc2VzIHx8IFwiXCJ9PlxuICAgICAgICAgIHt0aGlzLnByb3BzLmNoaWxkcmVufVxuICAgICAgICA8L3NwYW4+XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxzcGFuIGNsYXNzTmFtZT17Y2xhc3NlcyB8fCBcIlwifSByZWY9e3RoaXMub25Mb2FkfT5cbiAgICAgICAgPGJ1dHRvbiBhcmlhLWV4cGFuZGVkPXt0aGlzLnN0YXRlLmV4cGFuZGVkfSBjbGFzc05hbWU9XCJtb2RlbC1ib3gtY29udHJvbFwiIG9uQ2xpY2s9e3RoaXMudG9nZ2xlQ29sbGFwc2VkfT5cbiAgICAgICAgICB7IHRpdGxlICYmIDxzcGFuIGNsYXNzTmFtZT1cInBvaW50ZXJcIj57dGl0bGV9PC9zcGFuPiB9XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXsgXCJtb2RlbC10b2dnbGVcIiArICggdGhpcy5zdGF0ZS5leHBhbmRlZCA/IFwiXCIgOiBcIiBjb2xsYXBzZWRcIiApIH0+PC9zcGFuPlxuICAgICAgICAgIHsgIXRoaXMuc3RhdGUuZXhwYW5kZWQgJiYgPHNwYW4+e3RoaXMuc3RhdGUuY29sbGFwc2VkQ29udGVudH08L3NwYW4+IH1cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgeyB0aGlzLnN0YXRlLmV4cGFuZGVkICYmIHRoaXMucHJvcHMuY2hpbGRyZW4gfVxuICAgICAgPC9zcGFuPlxuICAgIClcbiAgfVxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8sIHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuaW1wb3J0IGN4IGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCByYW5kb21CeXRlcyBmcm9tIFwicmFuZG9tYnl0ZXNcIlxuXG5jb25zdCB1c2VQcmV2aW91cyA9ICh2YWx1ZSkgPT4ge1xuICBjb25zdCByZWYgPSB1c2VSZWYoKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJlZi5jdXJyZW50ID0gdmFsdWVcbiAgfSlcbiAgcmV0dXJuIHJlZi5jdXJyZW50XG59XG5cbmNvbnN0IHVzZVRhYnMgPSAoeyBpbml0aWFsVGFiLCBpc0V4ZWN1dGUsIHNjaGVtYSwgZXhhbXBsZSB9KSA9PiB7XG4gIGNvbnN0IHRhYnMgPSB1c2VNZW1vKCgpID0+ICh7IGV4YW1wbGU6IFwiZXhhbXBsZVwiLCBtb2RlbDogXCJtb2RlbFwiIH0pLCBbXSlcbiAgY29uc3QgYWxsb3dlZFRhYnMgPSB1c2VNZW1vKCgpID0+IE9iamVjdC5rZXlzKHRhYnMpLCBbdGFic10pXG4gIGNvbnN0IHRhYiA9XG4gICAgIWFsbG93ZWRUYWJzLmluY2x1ZGVzKGluaXRpYWxUYWIpIHx8ICFzY2hlbWEgfHwgaXNFeGVjdXRlXG4gICAgICA/IHRhYnMuZXhhbXBsZVxuICAgICAgOiBpbml0aWFsVGFiXG4gIGNvbnN0IHByZXZJc0V4ZWN1dGUgPSB1c2VQcmV2aW91cyhpc0V4ZWN1dGUpXG4gIGNvbnN0IFthY3RpdmVUYWIsIHNldEFjdGl2ZVRhYl0gPSB1c2VTdGF0ZSh0YWIpXG4gIGNvbnN0IGhhbmRsZVRhYkNoYW5nZSA9IHVzZUNhbGxiYWNrKChlKSA9PiB7XG4gICAgc2V0QWN0aXZlVGFiKGUudGFyZ2V0LmRhdGFzZXQubmFtZSlcbiAgfSwgW10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocHJldklzRXhlY3V0ZSAmJiAhaXNFeGVjdXRlICYmIGV4YW1wbGUpIHtcbiAgICAgIHNldEFjdGl2ZVRhYih0YWJzLmV4YW1wbGUpXG4gICAgfVxuICB9LCBbcHJldklzRXhlY3V0ZSwgaXNFeGVjdXRlLCBleGFtcGxlXSlcblxuICByZXR1cm4geyBhY3RpdmVUYWIsIG9uVGFiQ2hhbmdlOiBoYW5kbGVUYWJDaGFuZ2UsIHRhYnMgfVxufVxuXG5jb25zdCBNb2RlbEV4YW1wbGUgPSAoe1xuICBzY2hlbWEsXG4gIGV4YW1wbGUsXG4gIGlzRXhlY3V0ZSA9IGZhbHNlLFxuICBzcGVjUGF0aCxcbiAgaW5jbHVkZVdyaXRlT25seSA9IGZhbHNlLFxuICBpbmNsdWRlUmVhZE9ubHkgPSBmYWxzZSxcbiAgZ2V0Q29tcG9uZW50LFxuICBnZXRDb25maWdzLFxuICBzcGVjU2VsZWN0b3JzLFxufSkgPT4ge1xuICBjb25zdCB7IGRlZmF1bHRNb2RlbFJlbmRlcmluZywgZGVmYXVsdE1vZGVsRXhwYW5kRGVwdGggfSA9IGdldENvbmZpZ3MoKVxuICBjb25zdCBNb2RlbFdyYXBwZXIgPSBnZXRDb21wb25lbnQoXCJNb2RlbFdyYXBwZXJcIilcbiAgY29uc3QgSGlnaGxpZ2h0Q29kZSA9IGdldENvbXBvbmVudChcIkhpZ2hsaWdodENvZGVcIiwgdHJ1ZSlcbiAgY29uc3QgZXhhbXBsZVRhYklkID0gcmFuZG9tQnl0ZXMoNSkudG9TdHJpbmcoXCJiYXNlNjRcIilcbiAgY29uc3QgZXhhbXBsZVBhbmVsSWQgPSByYW5kb21CeXRlcyg1KS50b1N0cmluZyhcImJhc2U2NFwiKVxuICBjb25zdCBtb2RlbFRhYklkID0gcmFuZG9tQnl0ZXMoNSkudG9TdHJpbmcoXCJiYXNlNjRcIilcbiAgY29uc3QgbW9kZWxQYW5lbElkID0gcmFuZG9tQnl0ZXMoNSkudG9TdHJpbmcoXCJiYXNlNjRcIilcbiAgY29uc3QgaXNPQVMzID0gc3BlY1NlbGVjdG9ycy5pc09BUzMoKVxuICBjb25zdCB7IGFjdGl2ZVRhYiwgdGFicywgb25UYWJDaGFuZ2UgfSA9IHVzZVRhYnMoe1xuICAgIGluaXRpYWxUYWI6IGRlZmF1bHRNb2RlbFJlbmRlcmluZyxcbiAgICBpc0V4ZWN1dGUsXG4gICAgc2NoZW1hLFxuICAgIGV4YW1wbGUsXG4gIH0pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGVsLWV4YW1wbGVcIj5cbiAgICAgIDx1bCBjbGFzc05hbWU9XCJ0YWJcIiByb2xlPVwidGFibGlzdFwiPlxuICAgICAgICA8bGlcbiAgICAgICAgICBjbGFzc05hbWU9e2N4KFwidGFiaXRlbVwiLCB7IGFjdGl2ZTogYWN0aXZlVGFiID09PSB0YWJzLmV4YW1wbGUgfSl9XG4gICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgID5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBhcmlhLWNvbnRyb2xzPXtleGFtcGxlUGFuZWxJZH1cbiAgICAgICAgICAgIGFyaWEtc2VsZWN0ZWQ9e2FjdGl2ZVRhYiA9PT0gdGFicy5leGFtcGxlfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwidGFibGlua3NcIlxuICAgICAgICAgICAgZGF0YS1uYW1lPVwiZXhhbXBsZVwiXG4gICAgICAgICAgICBpZD17ZXhhbXBsZVRhYklkfVxuICAgICAgICAgICAgb25DbGljaz17b25UYWJDaGFuZ2V9XG4gICAgICAgICAgICByb2xlPVwidGFiXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aXNFeGVjdXRlID8gXCJFZGl0IFZhbHVlXCIgOiBcIkV4YW1wbGUgVmFsdWVcIn1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9saT5cbiAgICAgICAge3NjaGVtYSAmJiAoXG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICBjbGFzc05hbWU9e2N4KFwidGFiaXRlbVwiLCB7IGFjdGl2ZTogYWN0aXZlVGFiID09PSB0YWJzLm1vZGVsIH0pfVxuICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPXttb2RlbFBhbmVsSWR9XG4gICAgICAgICAgICAgIGFyaWEtc2VsZWN0ZWQ9e2FjdGl2ZVRhYiA9PT0gdGFicy5tb2RlbH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChcInRhYmxpbmtzXCIsIHsgaW5hY3RpdmU6IGlzRXhlY3V0ZSB9KX1cbiAgICAgICAgICAgICAgZGF0YS1uYW1lPVwibW9kZWxcIlxuICAgICAgICAgICAgICBpZD17bW9kZWxUYWJJZH1cbiAgICAgICAgICAgICAgb25DbGljaz17b25UYWJDaGFuZ2V9XG4gICAgICAgICAgICAgIHJvbGU9XCJ0YWJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aXNPQVMzID8gXCJTY2hlbWFcIiA6IFwiTW9kZWxcIn1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICl9XG4gICAgICA8L3VsPlxuICAgICAge2FjdGl2ZVRhYiA9PT0gdGFicy5leGFtcGxlICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGFyaWEtaGlkZGVuPXthY3RpdmVUYWIgIT09IHRhYnMuZXhhbXBsZX1cbiAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e2V4YW1wbGVUYWJJZH1cbiAgICAgICAgICBkYXRhLW5hbWU9XCJleGFtcGxlUGFuZWxcIlxuICAgICAgICAgIGlkPXtleGFtcGxlUGFuZWxJZH1cbiAgICAgICAgICByb2xlPVwidGFicGFuZWxcIlxuICAgICAgICAgIHRhYkluZGV4PVwiMFwiXG4gICAgICAgID5cbiAgICAgICAgICB7ZXhhbXBsZSA/IChcbiAgICAgICAgICAgIGV4YW1wbGVcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPEhpZ2hsaWdodENvZGU+KG5vIGV4YW1wbGUgYXZhaWxhYmxlPC9IaWdobGlnaHRDb2RlPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cblxuICAgICAge2FjdGl2ZVRhYiA9PT0gdGFicy5tb2RlbCAmJiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9XCJtb2RlbC1jb250YWluZXJcIlxuICAgICAgICAgIGFyaWEtaGlkZGVuPXthY3RpdmVUYWIgPT09IHRhYnMuZXhhbXBsZX1cbiAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e21vZGVsVGFiSWR9XG4gICAgICAgICAgZGF0YS1uYW1lPVwibW9kZWxQYW5lbFwiXG4gICAgICAgICAgaWQ9e21vZGVsUGFuZWxJZH1cbiAgICAgICAgICByb2xlPVwidGFicGFuZWxcIlxuICAgICAgICAgIHRhYkluZGV4PVwiMFwiXG4gICAgICAgID5cbiAgICAgICAgICA8TW9kZWxXcmFwcGVyXG4gICAgICAgICAgICBzY2hlbWE9e3NjaGVtYX1cbiAgICAgICAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgICAgICAgICAgZ2V0Q29uZmlncz17Z2V0Q29uZmlnc31cbiAgICAgICAgICAgIHNwZWNTZWxlY3RvcnM9e3NwZWNTZWxlY3RvcnN9XG4gICAgICAgICAgICBleHBhbmREZXB0aD17ZGVmYXVsdE1vZGVsRXhwYW5kRGVwdGh9XG4gICAgICAgICAgICBzcGVjUGF0aD17c3BlY1BhdGh9XG4gICAgICAgICAgICBpbmNsdWRlUmVhZE9ubHk9e2luY2x1ZGVSZWFkT25seX1cbiAgICAgICAgICAgIGluY2x1ZGVXcml0ZU9ubHk9e2luY2x1ZGVXcml0ZU9ubHl9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApXG59XG5cbk1vZGVsRXhhbXBsZS5wcm9wVHlwZXMgPSB7XG4gIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLnNoYXBlKHsgaXNPQVMzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkIH0pXG4gICAgLmlzUmVxdWlyZWQsXG4gIHNjaGVtYTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBleGFtcGxlOiBQcm9wVHlwZXMuYW55LmlzUmVxdWlyZWQsXG4gIGlzRXhlY3V0ZTogUHJvcFR5cGVzLmJvb2wsXG4gIGdldENvbmZpZ3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNwZWNQYXRoOiBJbVByb3BUeXBlcy5saXN0LmlzUmVxdWlyZWQsXG4gIGluY2x1ZGVSZWFkT25seTogUHJvcFR5cGVzLmJvb2wsXG4gIGluY2x1ZGVXcml0ZU9ubHk6IFByb3BUeXBlcy5ib29sLFxufVxuXG5leHBvcnQgZGVmYXVsdCBNb2RlbEV4YW1wbGVcbiIsImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQsIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTW9kZWxXcmFwcGVyIGV4dGVuZHMgQ29tcG9uZW50IHtcblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHNjaGVtYTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZGlzcGxheU5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZnVsbFBhdGg6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICAgIHNwZWNQYXRoOiBJbVByb3BUeXBlcy5saXN0LmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGdldENvbmZpZ3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGV4cGFuZERlcHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIGxheW91dEFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbGF5b3V0U2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgaW5jbHVkZVJlYWRPbmx5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpbmNsdWRlV3JpdGVPbmx5OiBQcm9wVHlwZXMuYm9vbCxcbiAgfVxuXG4gIG9uVG9nZ2xlID0gKG5hbWUsaXNTaG93bikgPT4ge1xuICAgIC8vIElmIHRoaXMgcHJvcCBpcyBwcmVzZW50LCB3ZSdsbCBoYXZlIGRlZXBMaW5raW5nIGZvciBpdFxuICAgIGlmKHRoaXMucHJvcHMubGF5b3V0QWN0aW9ucykge1xuICAgICAgdGhpcy5wcm9wcy5sYXlvdXRBY3Rpb25zLnNob3codGhpcy5wcm9wcy5mdWxsUGF0aCwgaXNTaG93bilcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKXtcbiAgICBsZXQgeyBnZXRDb21wb25lbnQsIGdldENvbmZpZ3MgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBNb2RlbCA9IGdldENvbXBvbmVudChcIk1vZGVsXCIpXG5cbiAgICBsZXQgZXhwYW5kZWRcbiAgICBpZih0aGlzLnByb3BzLmxheW91dFNlbGVjdG9ycykge1xuICAgICAgLy8gSWYgdGhpcyBpcyBwcm9wIGlzIHByZXNlbnQsIHdlJ2xsIGhhdmUgZGVlcExpbmtpbmcgZm9yIGl0XG4gICAgICBleHBhbmRlZCA9IHRoaXMucHJvcHMubGF5b3V0U2VsZWN0b3JzLmlzU2hvd24odGhpcy5wcm9wcy5mdWxsUGF0aClcbiAgICB9XG5cbiAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJtb2RlbC1ib3hcIj5cbiAgICAgIDxNb2RlbCB7IC4uLnRoaXMucHJvcHMgfSBnZXRDb25maWdzPXsgZ2V0Q29uZmlncyB9IGV4cGFuZGVkPXtleHBhbmRlZH0gZGVwdGg9eyAxIH0gb25Ub2dnbGU9eyB0aGlzLm9uVG9nZ2xlIH0gZXhwYW5kRGVwdGg9eyB0aGlzLnByb3BzLmV4cGFuZERlcHRoIHx8IDAgfS8+XG4gICAgPC9kaXY+XG4gIH1cbn1cbiIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImRlZmF1bHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9pbW11dGFibGVfcHVyZV9jb21wb25lbnRfY2JjZmFlYmRfX1tcImRlZmF1bHRcIl07IH0gfSk7IiwidmFyIF9jaXJjbGU7XG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgcmV0dXJuIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiA/IE9iamVjdC5hc3NpZ24uYmluZCgpIDogZnVuY3Rpb24gKG4pIHsgZm9yICh2YXIgZSA9IDE7IGUgPCBhcmd1bWVudHMubGVuZ3RoOyBlKyspIHsgdmFyIHQgPSBhcmd1bWVudHNbZV07IGZvciAodmFyIHIgaW4gdCkgKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsIHIpICYmIChuW3JdID0gdFtyXSk7IH0gcmV0dXJuIG47IH0sIF9leHRlbmRzLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7IH1cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuY29uc3QgU3ZnUm9sbGluZ0xvYWQgPSBwcm9wcyA9PiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCBfZXh0ZW5kcyh7XG4gIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gIHdpZHRoOiAyMDAsXG4gIGhlaWdodDogMjAwLFxuICBjbGFzc05hbWU6IFwicm9sbGluZy1sb2FkX3N2Z19fbGRzLXJvbGxpbmdcIixcbiAgcHJlc2VydmVBc3BlY3RSYXRpbzogXCJ4TWlkWU1pZFwiLFxuICBzdHlsZToge1xuICAgIGJhY2tncm91bmRJbWFnZTogXCJub25lXCIsXG4gICAgYmFja2dyb3VuZFBvc2l0aW9uOiBcImluaXRpYWwgaW5pdGlhbFwiLFxuICAgIGJhY2tncm91bmRSZXBlYXQ6IFwiaW5pdGlhbCBpbml0aWFsXCJcbiAgfSxcbiAgdmlld0JveDogXCIwIDAgMTAwIDEwMFwiXG59LCBwcm9wcyksIF9jaXJjbGUgfHwgKF9jaXJjbGUgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImNpcmNsZVwiLCB7XG4gIGN4OiA1MCxcbiAgY3k6IDUwLFxuICByOiAzNSxcbiAgZmlsbDogXCJub25lXCIsXG4gIHN0cm9rZTogXCIjNTU1XCIsXG4gIHN0cm9rZURhc2hhcnJheTogXCIxNjQuOTMzNjE0MzEzNDY0MTUgNTYuOTc3ODcxNDM3ODIxMzhcIixcbiAgc3Ryb2tlV2lkdGg6IDEwXG59LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImFuaW1hdGVUcmFuc2Zvcm1cIiwge1xuICBhdHRyaWJ1dGVOYW1lOiBcInRyYW5zZm9ybVwiLFxuICBiZWdpbjogXCIwc1wiLFxuICBjYWxjTW9kZTogXCJsaW5lYXJcIixcbiAgZHVyOiBcIjFzXCIsXG4gIGtleVRpbWVzOiBcIjA7MVwiLFxuICByZXBlYXRDb3VudDogXCJpbmRlZmluaXRlXCIsXG4gIHR5cGU6IFwicm90YXRlXCIsXG4gIHZhbHVlczogXCIwIDUwIDUwOzM2MCA1MCA1MFwiXG59KSkpKTtcbmV4cG9ydCBkZWZhdWx0IFN2Z1JvbGxpbmdMb2FkOyIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IEltbXV0YWJsZVB1cmVDb21wb25lbnQgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wdXJlLWNvbXBvbmVudFwiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgeyBNYXAgfSBmcm9tIFwiaW1tdXRhYmxlXCJcblxuaW1wb3J0IFJvbGxpbmdMb2FkU1ZHIGZyb20gXCJjb3JlL2Fzc2V0cy9yb2xsaW5nLWxvYWQuc3ZnXCJcblxuY29uc3QgZGVjb2RlUmVmTmFtZSA9IHVyaSA9PiB7XG4gIGNvbnN0IHVuZXNjYXBlZCA9IHVyaS5yZXBsYWNlKC9+MS9nLCBcIi9cIikucmVwbGFjZSgvfjAvZywgXCJ+XCIpXG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHVuZXNjYXBlZClcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZXNjYXBlZFxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1vZGVsIGV4dGVuZHMgSW1tdXRhYmxlUHVyZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgc2NoZW1hOiBJbVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29uZmlnczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBkaXNwbGF5TmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBpc1JlZjogUHJvcFR5cGVzLmJvb2wsXG4gICAgcmVxdWlyZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIGV4cGFuZERlcHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIGRlcHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIHNwZWNQYXRoOiBJbVByb3BUeXBlcy5saXN0LmlzUmVxdWlyZWQsXG4gICAgaW5jbHVkZVJlYWRPbmx5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpbmNsdWRlV3JpdGVPbmx5OiBQcm9wVHlwZXMuYm9vbCxcbiAgfVxuXG4gIGdldE1vZGVsTmFtZSA9KCByZWYgKT0+IHtcbiAgICBpZiAoIHJlZi5pbmRleE9mKFwiIy9kZWZpbml0aW9ucy9cIikgIT09IC0xICkge1xuICAgICAgcmV0dXJuIGRlY29kZVJlZk5hbWUocmVmLnJlcGxhY2UoL14uKiNcXC9kZWZpbml0aW9uc1xcLy8sIFwiXCIpKVxuICAgIH1cbiAgICBpZiAoIHJlZi5pbmRleE9mKFwiIy9jb21wb25lbnRzL3NjaGVtYXMvXCIpICE9PSAtMSApIHtcbiAgICAgIHJldHVybiBkZWNvZGVSZWZOYW1lKHJlZi5yZXBsYWNlKC9eLiojXFwvY29tcG9uZW50c1xcL3NjaGVtYXNcXC8vLCBcIlwiKSlcbiAgICB9XG4gIH1cblxuICBnZXRSZWZTY2hlbWEgPSggbW9kZWwgKT0+IHtcbiAgICBsZXQgeyBzcGVjU2VsZWN0b3JzIH0gPSB0aGlzLnByb3BzXG5cbiAgICByZXR1cm4gc3BlY1NlbGVjdG9ycy5maW5kRGVmaW5pdGlvbihtb2RlbClcbiAgfVxuXG4gIHJlbmRlciAoKSB7XG4gICAgbGV0IHsgZ2V0Q29tcG9uZW50LCBnZXRDb25maWdzLCBzcGVjU2VsZWN0b3JzLCBzY2hlbWEsIHJlcXVpcmVkLCBuYW1lLCBpc1JlZiwgc3BlY1BhdGgsIGRpc3BsYXlOYW1lLFxuICAgICAgaW5jbHVkZVJlYWRPbmx5LCBpbmNsdWRlV3JpdGVPbmx5fSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBPYmplY3RNb2RlbCA9IGdldENvbXBvbmVudChcIk9iamVjdE1vZGVsXCIpXG4gICAgY29uc3QgQXJyYXlNb2RlbCA9IGdldENvbXBvbmVudChcIkFycmF5TW9kZWxcIilcbiAgICBjb25zdCBQcmltaXRpdmVNb2RlbCA9IGdldENvbXBvbmVudChcIlByaW1pdGl2ZU1vZGVsXCIpXG4gICAgbGV0IHR5cGUgPSBcIm9iamVjdFwiXG4gICAgbGV0ICQkcmVmID0gc2NoZW1hICYmIHNjaGVtYS5nZXQoXCIkJHJlZlwiKVxuICAgIGxldCAkcmVmID0gc2NoZW1hICYmIHNjaGVtYS5nZXQoXCIkcmVmXCIpXG5cbiAgICAvLyBJZiB3ZSB3ZXJlbid0IHBhc3NlZCBhIGBuYW1lYCBidXQgaGF2ZSBhIHJlc29sdmVkIHJlZiwgZ3JhYiB0aGUgbmFtZSBmcm9tIHRoZSByZWZcbiAgICBpZiAoIW5hbWUgJiYgJCRyZWYpIHtcbiAgICAgIG5hbWUgPSB0aGlzLmdldE1vZGVsTmFtZSgkJHJlZilcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIElmIHdlIGhhdmUgYW4gdW5yZXNvbHZlZCByZWYsIGdldCB0aGUgc2NoZW1hIGFuZCBuYW1lIGZyb20gdGhlIHJlZi5cbiAgICAgKiBJZiB0aGUgcmVmIGlzIGV4dGVybmFsLCB3ZSBjYW4ndCByZXNvbHZlIGl0LCBzbyB3ZSBqdXN0IGRpc3BsYXkgdGhlIHJlZiBsb2NhdGlvbi5cbiAgICAgKiBUaGlzIGlzIGZvciBzaXR1YXRpb25zIHdoZXJlOlxuICAgICAqICAtIHRoZSByZWYgd2FzIG5vdCByZXNvbHZlZCBieSBTd2FnZ2VyIENsaWVudCBiZWNhdXNlIHdlIHJlYWNoZWQgdGhlIHRyYXZlcnNhbCBkZXB0aCBsaW1pdFxuICAgICAqICAtIHdlIGhhZCBhIGNpcmN1bGFyIHJlZiBpbnNpZGUgdGhlIGFsbE9mIGtleXdvcmRcbiAgICAgKi9cbiAgICBpZiAoJHJlZikge1xuICAgICAgY29uc3QgcmVmTmFtZSA9IHRoaXMuZ2V0TW9kZWxOYW1lKCRyZWYpXG4gICAgICBjb25zdCByZWZTY2hlbWEgPSB0aGlzLmdldFJlZlNjaGVtYShyZWZOYW1lKVxuICAgICAgaWYgKE1hcC5pc01hcChyZWZTY2hlbWEpKSB7XG4gICAgICAgIHNjaGVtYSA9IHJlZlNjaGVtYS5tZXJnZURlZXAoc2NoZW1hKVxuICAgICAgICBpZiAoISQkcmVmKSB7XG4gICAgICAgICAgc2NoZW1hID0gc2NoZW1hLnNldChcIiQkcmVmXCIsICRyZWYpXG4gICAgICAgICAgJCRyZWYgPSAkcmVmXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoTWFwLmlzTWFwKHNjaGVtYSkgJiYgc2NoZW1hLnNpemUgPT09IDEpIHtcbiAgICAgICAgc2NoZW1hID0gbnVsbFxuICAgICAgICBuYW1lID0gJHJlZlxuICAgICAgfVxuICAgIH1cblxuICAgIGlmKCFzY2hlbWEpIHtcbiAgICAgIHJldHVybiA8c3BhbiBjbGFzc05hbWU9XCJtb2RlbCBtb2RlbC10aXRsZVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtb2RlbC10aXRsZV9fdGV4dFwiPnsgZGlzcGxheU5hbWUgfHwgbmFtZSB9PC9zcGFuPlxuICAgICAgICAgICAgICB7ISRyZWYgJiYgPFJvbGxpbmdMb2FkU1ZHIGhlaWdodD1cIjIwcHhcIiB3aWR0aD1cIjIwcHhcIiAvPn1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICB9XG5cbiAgICBjb25zdCBkZXByZWNhdGVkID0gc3BlY1NlbGVjdG9ycy5pc09BUzMoKSAmJiBzY2hlbWEuZ2V0KFwiZGVwcmVjYXRlZFwiKVxuICAgIGlzUmVmID0gaXNSZWYgIT09IHVuZGVmaW5lZCA/IGlzUmVmIDogISEkJHJlZlxuICAgIHR5cGUgPSBzY2hlbWEgJiYgc2NoZW1hLmdldChcInR5cGVcIikgfHwgdHlwZVxuXG4gICAgc3dpdGNoKHR5cGUpIHtcbiAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgcmV0dXJuIDxPYmplY3RNb2RlbFxuICAgICAgICAgIGNsYXNzTmFtZT1cIm9iamVjdFwiIHsgLi4udGhpcy5wcm9wcyB9XG4gICAgICAgICAgc3BlY1BhdGg9e3NwZWNQYXRofVxuICAgICAgICAgIGdldENvbmZpZ3M9eyBnZXRDb25maWdzIH1cbiAgICAgICAgICBzY2hlbWE9eyBzY2hlbWEgfVxuICAgICAgICAgIG5hbWU9eyBuYW1lIH1cbiAgICAgICAgICBkZXByZWNhdGVkPXtkZXByZWNhdGVkfVxuICAgICAgICAgIGlzUmVmPXsgaXNSZWYgfVxuICAgICAgICAgIGluY2x1ZGVSZWFkT25seSA9IHtpbmNsdWRlUmVhZE9ubHl9XG4gICAgICAgICAgaW5jbHVkZVdyaXRlT25seSA9IHtpbmNsdWRlV3JpdGVPbmx5fS8+XG4gICAgICBjYXNlIFwiYXJyYXlcIjpcbiAgICAgICAgcmV0dXJuIDxBcnJheU1vZGVsXG4gICAgICAgICAgY2xhc3NOYW1lPVwiYXJyYXlcIiB7IC4uLnRoaXMucHJvcHMgfVxuICAgICAgICAgIGdldENvbmZpZ3M9eyBnZXRDb25maWdzIH1cbiAgICAgICAgICBzY2hlbWE9eyBzY2hlbWEgfVxuICAgICAgICAgIG5hbWU9eyBuYW1lIH1cbiAgICAgICAgICBkZXByZWNhdGVkPXtkZXByZWNhdGVkfVxuICAgICAgICAgIHJlcXVpcmVkPXsgcmVxdWlyZWQgfVxuICAgICAgICAgIGluY2x1ZGVSZWFkT25seSA9IHtpbmNsdWRlUmVhZE9ubHl9XG4gICAgICAgICAgaW5jbHVkZVdyaXRlT25seSA9IHtpbmNsdWRlV3JpdGVPbmx5fS8+XG4gICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICBjYXNlIFwiaW50ZWdlclwiOlxuICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiA8UHJpbWl0aXZlTW9kZWxcbiAgICAgICAgICB7IC4uLnRoaXMucHJvcHMgfVxuICAgICAgICAgIGdldENvbXBvbmVudD17IGdldENvbXBvbmVudCB9XG4gICAgICAgICAgZ2V0Q29uZmlncz17IGdldENvbmZpZ3MgfVxuICAgICAgICAgIHNjaGVtYT17IHNjaGVtYSB9XG4gICAgICAgICAgbmFtZT17IG5hbWUgfVxuICAgICAgICAgIGRlcHJlY2F0ZWQ9e2RlcHJlY2F0ZWR9XG4gICAgICAgICAgcmVxdWlyZWQ9eyByZXF1aXJlZCB9Lz5cbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IEltLCB7IE1hcCB9IGZyb20gXCJpbW11dGFibGVcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbi8qIGVzbGludC1kaXNhYmxlICByZWFjdC9qc3gtbm8tYmluZCAqL1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNb2RlbHMgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBzcGVjQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGxheW91dFNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBsYXlvdXRBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGdldENvbmZpZ3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbiAgfVxuXG4gIGdldFNjaGVtYUJhc2VQYXRoID0gKCkgPT4ge1xuICAgIGNvbnN0IGlzT0FTMyA9IHRoaXMucHJvcHMuc3BlY1NlbGVjdG9ycy5pc09BUzMoKVxuICAgIHJldHVybiBpc09BUzMgPyBbXCJjb21wb25lbnRzXCIsIFwic2NoZW1hc1wiXSA6IFtcImRlZmluaXRpb25zXCJdXG4gIH1cblxuICBnZXRDb2xsYXBzZWRDb250ZW50ID0gKCkgPT4ge1xuICAgIHJldHVybiBcIiBcIlxuICB9XG5cbiAgaGFuZGxlVG9nZ2xlID0gKG5hbWUsIGlzRXhwYW5kZWQpID0+IHtcbiAgICBjb25zdCB7IGxheW91dEFjdGlvbnMgfSA9IHRoaXMucHJvcHNcbiAgICBsYXlvdXRBY3Rpb25zLnNob3coWy4uLnRoaXMuZ2V0U2NoZW1hQmFzZVBhdGgoKSwgbmFtZV0sIGlzRXhwYW5kZWQpXG4gICAgaWYoaXNFeHBhbmRlZCkge1xuICAgICAgdGhpcy5wcm9wcy5zcGVjQWN0aW9ucy5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKFsuLi50aGlzLmdldFNjaGVtYUJhc2VQYXRoKCksIG5hbWVdKVxuICAgIH1cbiAgfVxuXG4gIG9uTG9hZE1vZGVscyA9IChyZWYpID0+IHtcbiAgICBpZiAocmVmKSB7XG4gICAgICB0aGlzLnByb3BzLmxheW91dEFjdGlvbnMucmVhZHlUb1Njcm9sbCh0aGlzLmdldFNjaGVtYUJhc2VQYXRoKCksIHJlZilcbiAgICB9XG4gIH1cblxuICBvbkxvYWRNb2RlbCA9IChyZWYpID0+IHtcbiAgICBpZiAocmVmKSB7XG4gICAgICBjb25zdCBuYW1lID0gcmVmLmdldEF0dHJpYnV0ZShcImRhdGEtbmFtZVwiKVxuICAgICAgdGhpcy5wcm9wcy5sYXlvdXRBY3Rpb25zLnJlYWR5VG9TY3JvbGwoWy4uLnRoaXMuZ2V0U2NoZW1hQmFzZVBhdGgoKSwgbmFtZV0sIHJlZilcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKXtcbiAgICBsZXQgeyBzcGVjU2VsZWN0b3JzLCBnZXRDb21wb25lbnQsIGxheW91dFNlbGVjdG9ycywgbGF5b3V0QWN0aW9ucywgZ2V0Q29uZmlncyB9ID0gdGhpcy5wcm9wc1xuICAgIGxldCBkZWZpbml0aW9ucyA9IHNwZWNTZWxlY3RvcnMuZGVmaW5pdGlvbnMoKVxuICAgIGxldCB7IGRvY0V4cGFuc2lvbiwgZGVmYXVsdE1vZGVsc0V4cGFuZERlcHRoIH0gPSBnZXRDb25maWdzKClcbiAgICBpZiAoIWRlZmluaXRpb25zLnNpemUgfHwgZGVmYXVsdE1vZGVsc0V4cGFuZERlcHRoIDwgMCkgcmV0dXJuIG51bGxcblxuICAgIGNvbnN0IHNwZWNQYXRoQmFzZSA9IHRoaXMuZ2V0U2NoZW1hQmFzZVBhdGgoKVxuICAgIGxldCBzaG93TW9kZWxzID0gbGF5b3V0U2VsZWN0b3JzLmlzU2hvd24oc3BlY1BhdGhCYXNlLCBkZWZhdWx0TW9kZWxzRXhwYW5kRGVwdGggPiAwICYmIGRvY0V4cGFuc2lvbiAhPT0gXCJub25lXCIpXG4gICAgY29uc3QgaXNPQVMzID0gc3BlY1NlbGVjdG9ycy5pc09BUzMoKVxuXG4gICAgY29uc3QgTW9kZWxXcmFwcGVyID0gZ2V0Q29tcG9uZW50KFwiTW9kZWxXcmFwcGVyXCIpXG4gICAgY29uc3QgQ29sbGFwc2UgPSBnZXRDb21wb25lbnQoXCJDb2xsYXBzZVwiKVxuICAgIGNvbnN0IE1vZGVsQ29sbGFwc2UgPSBnZXRDb21wb25lbnQoXCJNb2RlbENvbGxhcHNlXCIpXG4gICAgY29uc3QgSnVtcFRvUGF0aCA9IGdldENvbXBvbmVudChcIkp1bXBUb1BhdGhcIiwgdHJ1ZSlcbiAgICBjb25zdCBBcnJvd1VwSWNvbiA9IGdldENvbXBvbmVudChcIkFycm93VXBJY29uXCIpXG4gICAgY29uc3QgQXJyb3dEb3duSWNvbiA9IGdldENvbXBvbmVudChcIkFycm93RG93bkljb25cIilcblxuICAgIHJldHVybiA8c2VjdGlvbiBjbGFzc05hbWU9eyBzaG93TW9kZWxzID8gXCJtb2RlbHMgaXMtb3BlblwiIDogXCJtb2RlbHNcIn0gcmVmPXt0aGlzLm9uTG9hZE1vZGVsc30+XG4gICAgICA8aDQ+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtzaG93TW9kZWxzfVxuICAgICAgICAgIGNsYXNzTmFtZT1cIm1vZGVscy1jb250cm9sXCJcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBsYXlvdXRBY3Rpb25zLnNob3coc3BlY1BhdGhCYXNlLCAhc2hvd01vZGVscyl9XG4gICAgICAgID5cbiAgICAgICAgICA8c3Bhbj57aXNPQVMzID8gXCJTY2hlbWFzXCIgOiBcIk1vZGVsc1wifTwvc3Bhbj5cbiAgICAgICAgICB7c2hvd01vZGVscyA/IDxBcnJvd1VwSWNvbiAvPiA6IDxBcnJvd0Rvd25JY29uIC8+fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvaDQ+XG4gICAgICA8Q29sbGFwc2UgaXNPcGVuZWQ9e3Nob3dNb2RlbHN9PlxuICAgICAgICB7XG4gICAgICAgICAgZGVmaW5pdGlvbnMuZW50cnlTZXEoKS5tYXAoKFtuYW1lXSk9PntcblxuICAgICAgICAgICAgY29uc3QgZnVsbFBhdGggPSBbLi4uc3BlY1BhdGhCYXNlLCBuYW1lXVxuICAgICAgICAgICAgY29uc3Qgc3BlY1BhdGggPSBJbS5MaXN0KGZ1bGxQYXRoKVxuXG4gICAgICAgICAgICBjb25zdCBzY2hlbWFWYWx1ZSA9IHNwZWNTZWxlY3RvcnMuc3BlY1Jlc29sdmVkU3VidHJlZShmdWxsUGF0aClcbiAgICAgICAgICAgIGNvbnN0IHJhd1NjaGVtYVZhbHVlID0gc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpLmdldEluKGZ1bGxQYXRoKVxuXG4gICAgICAgICAgICBjb25zdCBzY2hlbWEgPSBNYXAuaXNNYXAoc2NoZW1hVmFsdWUpID8gc2NoZW1hVmFsdWUgOiBJbS5NYXAoKVxuICAgICAgICAgICAgY29uc3QgcmF3U2NoZW1hID0gTWFwLmlzTWFwKHJhd1NjaGVtYVZhbHVlKSA/IHJhd1NjaGVtYVZhbHVlIDogSW0uTWFwKClcblxuICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSBzY2hlbWEuZ2V0KFwidGl0bGVcIikgfHwgcmF3U2NoZW1hLmdldChcInRpdGxlXCIpIHx8IG5hbWVcbiAgICAgICAgICAgIGNvbnN0IGlzU2hvd24gPSBsYXlvdXRTZWxlY3RvcnMuaXNTaG93bihmdWxsUGF0aCwgZmFsc2UpXG5cbiAgICAgICAgICAgIGlmKCBpc1Nob3duICYmIChzY2hlbWEuc2l6ZSA9PT0gMCAmJiByYXdTY2hlbWEuc2l6ZSA+IDApICkge1xuICAgICAgICAgICAgICAvLyBGaXJpbmcgYW4gYWN0aW9uIGluIGEgY29udGFpbmVyIHJlbmRlciBpcyBub3QgZ3JlYXQsXG4gICAgICAgICAgICAgIC8vIGJ1dCBpdCB3b3JrcyBmb3Igbm93LlxuICAgICAgICAgICAgICB0aGlzLnByb3BzLnNwZWNBY3Rpb25zLnJlcXVlc3RSZXNvbHZlZFN1YnRyZWUoZnVsbFBhdGgpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSA8TW9kZWxXcmFwcGVyIG5hbWU9eyBuYW1lIH1cbiAgICAgICAgICAgICAgZXhwYW5kRGVwdGg9eyBkZWZhdWx0TW9kZWxzRXhwYW5kRGVwdGggfVxuICAgICAgICAgICAgICBzY2hlbWE9eyBzY2hlbWEgfHwgSW0uTWFwKCkgfVxuICAgICAgICAgICAgICBkaXNwbGF5TmFtZT17ZGlzcGxheU5hbWV9XG4gICAgICAgICAgICAgIGZ1bGxQYXRoPXtmdWxsUGF0aH1cbiAgICAgICAgICAgICAgc3BlY1BhdGg9e3NwZWNQYXRofVxuICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9eyBnZXRDb21wb25lbnQgfVxuICAgICAgICAgICAgICBzcGVjU2VsZWN0b3JzPXsgc3BlY1NlbGVjdG9ycyB9XG4gICAgICAgICAgICAgIGdldENvbmZpZ3MgPSB7Z2V0Q29uZmlnc31cbiAgICAgICAgICAgICAgbGF5b3V0U2VsZWN0b3JzID0ge2xheW91dFNlbGVjdG9yc31cbiAgICAgICAgICAgICAgbGF5b3V0QWN0aW9ucyA9IHtsYXlvdXRBY3Rpb25zfVxuICAgICAgICAgICAgICBpbmNsdWRlUmVhZE9ubHkgPSB7dHJ1ZX1cbiAgICAgICAgICAgICAgaW5jbHVkZVdyaXRlT25seSA9IHt0cnVlfS8+XG5cbiAgICAgICAgICAgIGNvbnN0IHRpdGxlID0gPHNwYW4gY2xhc3NOYW1lPVwibW9kZWwtYm94XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm1vZGVsIG1vZGVsLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAge2Rpc3BsYXlOYW1lfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgIHJldHVybiA8ZGl2IGlkPXsgYG1vZGVsLSR7bmFtZX1gIH0gY2xhc3NOYW1lPVwibW9kZWwtY29udGFpbmVyXCIga2V5PXsgYG1vZGVscy1zZWN0aW9uLSR7bmFtZX1gIH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YS1uYW1lPXtuYW1lfSByZWY9e3RoaXMub25Mb2FkTW9kZWx9ID5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibW9kZWxzLWp1bXAtdG8tcGF0aFwiPjxKdW1wVG9QYXRoIHBhdGg9e3NwZWNQYXRofSAvPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPE1vZGVsQ29sbGFwc2VcbiAgICAgICAgICAgICAgICBjbGFzc2VzPVwibW9kZWwtYm94XCJcbiAgICAgICAgICAgICAgICBjb2xsYXBzZWRDb250ZW50PXt0aGlzLmdldENvbGxhcHNlZENvbnRlbnQobmFtZSl9XG4gICAgICAgICAgICAgICAgb25Ub2dnbGU9e3RoaXMuaGFuZGxlVG9nZ2xlfVxuICAgICAgICAgICAgICAgIHRpdGxlPXt0aXRsZX1cbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZT17ZGlzcGxheU5hbWV9XG4gICAgICAgICAgICAgICAgbW9kZWxOYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgIHNwZWNQYXRoPXtzcGVjUGF0aH1cbiAgICAgICAgICAgICAgICBsYXlvdXRTZWxlY3RvcnM9e2xheW91dFNlbGVjdG9yc31cbiAgICAgICAgICAgICAgICBsYXlvdXRBY3Rpb25zPXtsYXlvdXRBY3Rpb25zfVxuICAgICAgICAgICAgICAgIGhpZGVTZWxmT25FeHBhbmQ9e3RydWV9XG4gICAgICAgICAgICAgICAgZXhwYW5kZWQ9eyBkZWZhdWx0TW9kZWxzRXhwYW5kRGVwdGggPiAwICYmIGlzU2hvd24gfVxuICAgICAgICAgICAgICAgID57Y29udGVudH08L01vZGVsQ29sbGFwc2U+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH0pLnRvQXJyYXkoKVxuICAgICAgICB9XG4gICAgICA8L0NvbGxhcHNlPlxuICAgIDwvc2VjdGlvbj5cbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuXG5jb25zdCBFbnVtTW9kZWwgPSAoeyB2YWx1ZSwgZ2V0Q29tcG9uZW50IH0pID0+IHtcbiAgbGV0IE1vZGVsQ29sbGFwc2UgPSBnZXRDb21wb25lbnQoXCJNb2RlbENvbGxhcHNlXCIpXG4gIGxldCBjb2xsYXBzZWRDb250ZW50ID0gPHNwYW4+QXJyYXkgWyB7IHZhbHVlLmNvdW50KCkgfSBdPC9zcGFuPlxuICByZXR1cm4gPHNwYW4gY2xhc3NOYW1lPVwicHJvcC1lbnVtXCI+XG4gICAgRW51bTo8YnIgLz5cbiAgICA8TW9kZWxDb2xsYXBzZSBjb2xsYXBzZWRDb250ZW50PXsgY29sbGFwc2VkQ29udGVudCB9PlxuICAgICAgWyB7IHZhbHVlLm1hcChTdHJpbmcpLmpvaW4oXCIsIFwiKSB9IF1cbiAgICA8L01vZGVsQ29sbGFwc2U+XG4gIDwvc3Bhbj5cbn1cbkVudW1Nb2RlbC5wcm9wVHlwZXMgPSB7XG4gIHZhbHVlOiBJbVByb3BUeXBlcy5pdGVyYWJsZSxcbiAgZ2V0Q29tcG9uZW50OiBJbVByb3BUeXBlcy5mdW5jXG59XG5cbmV4cG9ydCBkZWZhdWx0IEVudW1Nb2RlbFxuIiwiZXhwb3J0IGZ1bmN0aW9uIGlzQWJzb2x1dGVVcmwodXJsKSB7XG4gIHJldHVybiB1cmwubWF0Y2goL14oPzpbYS16XSs6KT9cXC9cXC8vaSkgLy8gTWF0Y2hlcyBodHRwOi8vLCBIVFRQOi8vLCBodHRwczovLywgZnRwOi8vLCAvL2V4YW1wbGUuY29tLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkUHJvdG9jb2wodXJsKSB7XG4gIGlmICghdXJsLm1hdGNoKC9eXFwvXFwvL2kpKSByZXR1cm4gdXJsIC8vIENoZWNrcyBpZiBwcm90b2NvbCBpcyBtaXNzaW5nIGUuZy4gLy9leGFtcGxlLmNvbVxuXG4gIHJldHVybiBgJHt3aW5kb3cubG9jYXRpb24ucHJvdG9jb2x9JHt1cmx9YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRCYXNlVXJsKHNlbGVjdGVkU2VydmVyLCBzcGVjVXJsKSB7XG4gIGlmICghc2VsZWN0ZWRTZXJ2ZXIpIHJldHVybiBzcGVjVXJsXG4gIGlmIChpc0Fic29sdXRlVXJsKHNlbGVjdGVkU2VydmVyKSkgcmV0dXJuIGFkZFByb3RvY29sKHNlbGVjdGVkU2VydmVyKVxuXG4gIHJldHVybiBuZXcgVVJMKHNlbGVjdGVkU2VydmVyLCBzcGVjVXJsKS5ocmVmXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFVybCh1cmwsIHNwZWNVcmwsIHsgc2VsZWN0ZWRTZXJ2ZXI9XCJcIiB9ID0ge30pIHtcbiAgaWYgKCF1cmwpIHJldHVybiB1bmRlZmluZWRcbiAgaWYgKGlzQWJzb2x1dGVVcmwodXJsKSkgcmV0dXJuIHVybFxuXG4gIGNvbnN0IGJhc2VVcmwgPSBidWlsZEJhc2VVcmwoc2VsZWN0ZWRTZXJ2ZXIsIHNwZWNVcmwpXG4gIGlmICghaXNBYnNvbHV0ZVVybChiYXNlVXJsKSkge1xuICAgIHJldHVybiBuZXcgVVJMKHVybCwgd2luZG93LmxvY2F0aW9uLmhyZWYpLmhyZWZcbiAgfVxuICByZXR1cm4gbmV3IFVSTCh1cmwsIGJhc2VVcmwpLmhyZWZcbn1cblxuLyoqXG4gKiBTYWZlIHZlcnNpb24gb2YgYnVpbGRVcmwgZnVuY3Rpb24uIGBzZWxlY3RlZFNlcnZlcmAgY2FuIGNvbnRhaW4gc2VydmVyIHZhcmlhYmxlc1xuICogd2hpY2ggY2FuIGZhaWwgdGhlIFVSTCByZXNvbHV0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2FmZUJ1aWxkVXJsKHVybCwgc3BlY1VybCwgeyBzZWxlY3RlZFNlcnZlcj1cIlwiIH0gPSB7fSkge1xuICB0cnkge1xuICAgIHJldHVybiBidWlsZFVybCh1cmwsIHNwZWNVcmwsIHsgc2VsZWN0ZWRTZXJ2ZXIgfSlcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYW5pdGl6ZVVybCh1cmwpIHtcbiAgaWYgKHR5cGVvZiB1cmwgIT09IFwic3RyaW5nXCIgfHwgdXJsLnRyaW0oKSA9PT0gXCJcIikge1xuICAgIHJldHVybiBcIlwiXG4gIH1cblxuICBjb25zdCB1cmxUcmltbWVkID0gdXJsLnRyaW0oKVxuICBjb25zdCBibGFua1VSTCA9IFwiYWJvdXQ6YmxhbmtcIlxuXG4gIHRyeSB7XG4gICAgY29uc3QgYmFzZSA9IGBodHRwczovL2Jhc2Uke1N0cmluZyhNYXRoLnJhbmRvbSgpKS5zbGljZSgyKX1gXG4gICAgY29uc3QgdXJsT2JqZWN0ID0gbmV3IFVSTCh1cmxUcmltbWVkLCBiYXNlKVxuICAgIGNvbnN0IHNjaGVtZSA9IHVybE9iamVjdC5wcm90b2NvbC5zbGljZSgwLCAtMSlcblxuICAgIC8vIGNoZWNrIGZvciBpbnZhbGlkIHNjaGVtZXNcbiAgICBpZiAoW1wiamF2YXNjcmlwdFwiLCBcImRhdGFcIiwgXCJ2YnNjcmlwdFwiXS5pbmNsdWRlcyhzY2hlbWUudG9Mb3dlckNhc2UoKSkpIHtcbiAgICAgIHJldHVybiBibGFua1VSTFxuICAgIH1cblxuICAgIC8vIHJldHVybiBzYW5pdGl6ZWQgVVJJIHJlZmVyZW5jZVxuICAgIGlmICh1cmxPYmplY3Qub3JpZ2luID09PSBiYXNlKSB7XG4gICAgICByZXR1cm4gdXJsVHJpbW1lZC5zdGFydHNXaXRoKFwiL1wiKVxuICAgICAgICA/IGAke3VybE9iamVjdC5wYXRobmFtZX0ke3VybE9iamVjdC5zZWFyY2h9JHt1cmxPYmplY3QuaGFzaH1gXG4gICAgICAgIDogdXJsVHJpbW1lZC5zdGFydHNXaXRoKFwiLlwiKVxuICAgICAgICA/IGAuJHt1cmxPYmplY3QucGF0aG5hbWV9JHt1cmxPYmplY3Quc2VhcmNofSR7dXJsT2JqZWN0Lmhhc2h9YFxuICAgICAgICA6IGAke3VybE9iamVjdC5wYXRobmFtZS5zdWJzdHJpbmcoMSl9JHt1cmxPYmplY3Quc2VhcmNofSR7dXJsT2JqZWN0Lmhhc2h9YFxuICAgIH1cblxuICAgIHJldHVybiBTdHJpbmcodXJsT2JqZWN0KVxuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gYmxhbmtVUkxcbiAgfVxufVxuXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHsgTGlzdCB9IGZyb20gXCJpbW11dGFibGVcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcbmltcG9ydCB7IHNhbml0aXplVXJsIH0gZnJvbSBcImNvcmUvdXRpbHMvdXJsXCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCB7IGdldEV4dGVuc2lvbnMgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHNcIlxuXG5jb25zdCBicmFjZU9wZW4gPSBcIntcIlxuY29uc3QgYnJhY2VDbG9zZSA9IFwifVwiXG5jb25zdCBwcm9wQ2xhc3MgPSBcInByb3BlcnR5XCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT2JqZWN0TW9kZWwgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHNjaGVtYTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBnZXRDb25maWdzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGV4cGFuZGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBvblRvZ2dsZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZGlzcGxheU5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgaXNSZWY6IFByb3BUeXBlcy5ib29sLFxuICAgIGV4cGFuZERlcHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIGRlcHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIHNwZWNQYXRoOiBJbVByb3BUeXBlcy5saXN0LmlzUmVxdWlyZWQsXG4gICAgaW5jbHVkZVJlYWRPbmx5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpbmNsdWRlV3JpdGVPbmx5OiBQcm9wVHlwZXMuYm9vbCxcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQge1xuICAgICAgc2NoZW1hLFxuICAgICAgbmFtZSxcbiAgICAgIGRpc3BsYXlOYW1lLFxuICAgICAgaXNSZWYsXG4gICAgICBnZXRDb21wb25lbnQsXG4gICAgICBnZXRDb25maWdzLFxuICAgICAgZGVwdGgsXG4gICAgICBvblRvZ2dsZSxcbiAgICAgIGV4cGFuZGVkLFxuICAgICAgc3BlY1BhdGgsXG4gICAgICAuLi5vdGhlclByb3BzXG4gICAgfSA9IHRoaXMucHJvcHNcbiAgICBsZXQgeyBzcGVjU2VsZWN0b3JzLCBleHBhbmREZXB0aCwgaW5jbHVkZVJlYWRPbmx5LCBpbmNsdWRlV3JpdGVPbmx5IH0gPVxuICAgICAgb3RoZXJQcm9wc1xuICAgIGNvbnN0IHsgaXNPQVMzIH0gPSBzcGVjU2VsZWN0b3JzXG4gICAgY29uc3QgaXNFbWJlZGRlZCA9IGRlcHRoID4gMiB8fCAoZGVwdGggPT09IDIgJiYgc3BlY1BhdGgubGFzdCgpICE9PSBcIml0ZW1zXCIpXG5cbiAgICBpZiAoIXNjaGVtYSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCB7IHNob3dFeHRlbnNpb25zIH0gPSBnZXRDb25maWdzKClcbiAgICBjb25zdCBleHRlbnNpb25zID0gc2hvd0V4dGVuc2lvbnMgPyBnZXRFeHRlbnNpb25zKHNjaGVtYSkgOiBMaXN0KClcblxuICAgIGxldCBkZXNjcmlwdGlvbiA9IHNjaGVtYS5nZXQoXCJkZXNjcmlwdGlvblwiKVxuICAgIGxldCBwcm9wZXJ0aWVzID0gc2NoZW1hLmdldChcInByb3BlcnRpZXNcIilcbiAgICBsZXQgYWRkaXRpb25hbFByb3BlcnRpZXMgPSBzY2hlbWEuZ2V0KFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIilcbiAgICBsZXQgdGl0bGUgPSBzY2hlbWEuZ2V0KFwidGl0bGVcIikgfHwgZGlzcGxheU5hbWUgfHwgbmFtZVxuICAgIGxldCByZXF1aXJlZFByb3BlcnRpZXMgPSBzY2hlbWEuZ2V0KFwicmVxdWlyZWRcIilcbiAgICBsZXQgaW5mb1Byb3BlcnRpZXMgPSBzY2hlbWEuZmlsdGVyKFxuICAgICAgKHYsIGtleSkgPT5cbiAgICAgICAgW1wibWF4UHJvcGVydGllc1wiLCBcIm1pblByb3BlcnRpZXNcIiwgXCJudWxsYWJsZVwiLCBcImV4YW1wbGVcIl0uaW5kZXhPZihcbiAgICAgICAgICBrZXlcbiAgICAgICAgKSAhPT0gLTFcbiAgICApXG4gICAgbGV0IGRlcHJlY2F0ZWQgPSBzY2hlbWEuZ2V0KFwiZGVwcmVjYXRlZFwiKVxuICAgIGxldCBleHRlcm5hbERvY3NVcmwgPSBzY2hlbWEuZ2V0SW4oW1wiZXh0ZXJuYWxEb2NzXCIsIFwidXJsXCJdKVxuICAgIGxldCBleHRlcm5hbERvY3NEZXNjcmlwdGlvbiA9IHNjaGVtYS5nZXRJbihbXCJleHRlcm5hbERvY3NcIiwgXCJkZXNjcmlwdGlvblwiXSlcblxuICAgIGNvbnN0IEp1bXBUb1BhdGggPSBnZXRDb21wb25lbnQoXCJKdW1wVG9QYXRoXCIsIHRydWUpXG4gICAgY29uc3QgTWFya2Rvd24gPSBnZXRDb21wb25lbnQoXCJNYXJrZG93blwiLCB0cnVlKVxuICAgIGNvbnN0IE1vZGVsID0gZ2V0Q29tcG9uZW50KFwiTW9kZWxcIilcbiAgICBjb25zdCBNb2RlbENvbGxhcHNlID0gZ2V0Q29tcG9uZW50KFwiTW9kZWxDb2xsYXBzZVwiKVxuICAgIGNvbnN0IFByb3BlcnR5ID0gZ2V0Q29tcG9uZW50KFwiUHJvcGVydHlcIilcbiAgICBjb25zdCBMaW5rID0gZ2V0Q29tcG9uZW50KFwiTGlua1wiKVxuICAgIGNvbnN0IE1vZGVsRXh0ZW5zaW9ucyA9IGdldENvbXBvbmVudChcIk1vZGVsRXh0ZW5zaW9uc1wiKVxuXG4gICAgY29uc3QgSnVtcFRvUGF0aFNlY3Rpb24gPSAoKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtb2RlbC1qdW1wLXRvLXBhdGhcIj5cbiAgICAgICAgICA8SnVtcFRvUGF0aCBwYXRoPXtzcGVjUGF0aH0gLz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgKVxuICAgIH1cbiAgICBjb25zdCBjb2xsYXBzZWRDb250ZW50ID0gKFxuICAgICAgPHNwYW4+XG4gICAgICAgIDxzcGFuPnticmFjZU9wZW59PC9zcGFuPi4uLjxzcGFuPnticmFjZUNsb3NlfTwvc3Bhbj5cbiAgICAgICAge2lzUmVmID8gPEp1bXBUb1BhdGhTZWN0aW9uIC8+IDogXCJcIn1cbiAgICAgIDwvc3Bhbj5cbiAgICApXG5cbiAgICBjb25zdCBhbGxPZiA9IHNwZWNTZWxlY3RvcnMuaXNPQVMzKCkgPyBzY2hlbWEuZ2V0KFwiYWxsT2ZcIikgOiBudWxsXG4gICAgY29uc3QgYW55T2YgPSBzcGVjU2VsZWN0b3JzLmlzT0FTMygpID8gc2NoZW1hLmdldChcImFueU9mXCIpIDogbnVsbFxuICAgIGNvbnN0IG9uZU9mID0gc3BlY1NlbGVjdG9ycy5pc09BUzMoKSA/IHNjaGVtYS5nZXQoXCJvbmVPZlwiKSA6IG51bGxcbiAgICBjb25zdCBub3QgPSBzcGVjU2VsZWN0b3JzLmlzT0FTMygpID8gc2NoZW1hLmdldChcIm5vdFwiKSA6IG51bGxcblxuICAgIGNvbnN0IHRpdGxlRWwgPSB0aXRsZSAmJiAoXG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJtb2RlbC10aXRsZVwiPlxuICAgICAgICB7aXNSZWYgJiYgc2NoZW1hLmdldChcIiQkcmVmXCIpICYmIChcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwibW9kZWwtaGludFwiLCB7XG4gICAgICAgICAgICAgIFwibW9kZWwtaGludC0tZW1iZWRkZWRcIjogaXNFbWJlZGRlZCxcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtzY2hlbWEuZ2V0KFwiJCRyZWZcIil9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICApfVxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtb2RlbC10aXRsZV9fdGV4dFwiPnt0aXRsZX08L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm1vZGVsXCI+XG4gICAgICAgIDxNb2RlbENvbGxhcHNlXG4gICAgICAgICAgbW9kZWxOYW1lPXtuYW1lfVxuICAgICAgICAgIHRpdGxlPXt0aXRsZUVsfVxuICAgICAgICAgIG9uVG9nZ2xlPXtvblRvZ2dsZX1cbiAgICAgICAgICBleHBhbmRlZD17ZXhwYW5kZWQgPyB0cnVlIDogZGVwdGggPD0gZXhwYW5kRGVwdGh9XG4gICAgICAgICAgY29sbGFwc2VkQ29udGVudD17Y29sbGFwc2VkQ29udGVudH1cbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJyYWNlLW9wZW4gb2JqZWN0XCI+e2JyYWNlT3Blbn08L3NwYW4+XG4gICAgICAgICAgeyFpc1JlZiA/IG51bGwgOiA8SnVtcFRvUGF0aFNlY3Rpb24gLz59XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaW5uZXItb2JqZWN0XCI+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIDx0YWJsZSBjbGFzc05hbWU9XCJtb2RlbFwiPlxuICAgICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICAgIHshZGVzY3JpcHRpb24gPyBudWxsIDogKFxuICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3NOYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZGVzY3JpcHRpb246PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8TWFya2Rvd24gc291cmNlPXtkZXNjcmlwdGlvbn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIHtleHRlcm5hbERvY3NVcmwgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3NOYW1lPXtcImV4dGVybmFsLWRvY3NcIn0+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPmV4dGVybmFsRG9jczo8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e3Nhbml0aXplVXJsKGV4dGVybmFsRG9jc1VybCl9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtleHRlcm5hbERvY3NEZXNjcmlwdGlvbiB8fCBleHRlcm5hbERvY3NVcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICB7IWRlcHJlY2F0ZWQgPyBudWxsIDogKFxuICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3NOYW1lPXtcInByb3BlcnR5XCJ9PlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5kZXByZWNhdGVkOjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPnRydWU8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIHshKHByb3BlcnRpZXMgJiYgcHJvcGVydGllcy5zaXplKVxuICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgOiBwcm9wZXJ0aWVzXG4gICAgICAgICAgICAgICAgICAgICAgICAuZW50cnlTZXEoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigoWywgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCF2YWx1ZS5nZXQoXCJyZWFkT25seVwiKSB8fCBpbmNsdWRlUmVhZE9ubHkpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCF2YWx1ZS5nZXQoXCJ3cml0ZU9ubHlcIikgfHwgaW5jbHVkZVdyaXRlT25seSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaXNEZXByZWNhdGVkID0gaXNPQVMzKCkgJiYgdmFsdWUuZ2V0KFwiZGVwcmVjYXRlZFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaXNSZXF1aXJlZCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdC5pc0xpc3QocmVxdWlyZWRQcm9wZXJ0aWVzKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkUHJvcGVydGllcy5jb250YWlucyhrZXkpXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNsYXNzTmFtZXMgPSBbXCJwcm9wZXJ0eS1yb3dcIl1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNEZXByZWNhdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lcy5wdXNoKFwiZGVwcmVjYXRlZFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzUmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWVzLnB1c2goXCJyZXF1aXJlZFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIga2V5PXtrZXl9IGNsYXNzTmFtZT17Y2xhc3NOYW1lcy5qb2luKFwiIFwiKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtrZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc1JlcXVpcmVkICYmIDxzcGFuIGNsYXNzTmFtZT1cInN0YXJcIj4qPC9zcGFuPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNb2RlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YG9iamVjdC0ke25hbWV9LSR7a2V5fV8ke3ZhbHVlfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLm90aGVyUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2lzUmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY1BhdGg9e3NwZWNQYXRoLnB1c2goXCJwcm9wZXJ0aWVzXCIsIGtleSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29uZmlncz17Z2V0Q29uZmlnc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWE9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoPXtkZXB0aCArIDF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudG9BcnJheSgpfVxuICAgICAgICAgICAgICAgICAge2V4dGVuc2lvbnMuc2l6ZSA9PT0gMCA/IG51bGwgOiAoXG4gICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiZuYnNwOzwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICA8TW9kZWxFeHRlbnNpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25zPXtleHRlbnNpb25zfVxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcENsYXNzPVwiZXh0ZW5zaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICB7IWFkZGl0aW9uYWxQcm9wZXJ0aWVzIHx8XG4gICAgICAgICAgICAgICAgICAhYWRkaXRpb25hbFByb3BlcnRpZXMuc2l6ZSA/IG51bGwgOiAoXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+e1wiPCAqID46XCJ9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8TW9kZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLm90aGVyUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNQYXRoPXtzcGVjUGF0aC5wdXNoKFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIil9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbmZpZ3M9e2dldENvbmZpZ3N9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYT17YWRkaXRpb25hbFByb3BlcnRpZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoPXtkZXB0aCArIDF9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgeyFhbGxPZiA/IG51bGwgOiAoXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+e1wiYWxsT2YgLT5cIn08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIHthbGxPZi5tYXAoKHNjaGVtYSwgaykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYga2V5PXtrfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNb2RlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4ub3RoZXJQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY1BhdGg9e3NwZWNQYXRoLnB1c2goXCJhbGxPZlwiLCBrKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29uZmlncz17Z2V0Q29uZmlnc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hPXtzY2hlbWF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoPXtkZXB0aCArIDF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIHshYW55T2YgPyBudWxsIDogKFxuICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPntcImFueU9mIC0+XCJ9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICB7YW55T2YubWFwKChzY2hlbWEsIGspID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17a30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TW9kZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLm90aGVyUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNQYXRoPXtzcGVjUGF0aC5wdXNoKFwiYW55T2ZcIiwgayl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbmZpZ3M9e2dldENvbmZpZ3N9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYT17c2NoZW1hfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aD17ZGVwdGggKyAxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICB7IW9uZU9mID8gbnVsbCA6IChcbiAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD57XCJvbmVPZiAtPlwifTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAge29uZU9mLm1hcCgoc2NoZW1hLCBrKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2t9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1vZGVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5vdGhlclByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjUGF0aD17c3BlY1BhdGgucHVzaChcIm9uZU9mXCIsIGspfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDb25maWdzPXtnZXRDb25maWdzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWE9e3NjaGVtYX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGg9e2RlcHRoICsgMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgeyFub3QgPyBudWxsIDogKFxuICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPntcIm5vdCAtPlwifTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1vZGVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLm90aGVyUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNQYXRoPXtzcGVjUGF0aC5wdXNoKFwibm90XCIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbmZpZ3M9e2dldENvbmZpZ3N9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hPXtub3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGg9e2RlcHRoICsgMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJyYWNlLWNsb3NlXCI+e2JyYWNlQ2xvc2V9PC9zcGFuPlxuICAgICAgICA8L01vZGVsQ29sbGFwc2U+XG4gICAgICAgIHtpbmZvUHJvcGVydGllcy5zaXplXG4gICAgICAgICAgPyBpbmZvUHJvcGVydGllc1xuICAgICAgICAgICAgICAuZW50cnlTZXEoKVxuICAgICAgICAgICAgICAubWFwKChba2V5LCB2XSkgPT4gKFxuICAgICAgICAgICAgICAgIDxQcm9wZXJ0eVxuICAgICAgICAgICAgICAgICAga2V5PXtgJHtrZXl9LSR7dn1gfVxuICAgICAgICAgICAgICAgICAgcHJvcEtleT17a2V5fVxuICAgICAgICAgICAgICAgICAgcHJvcFZhbD17dn1cbiAgICAgICAgICAgICAgICAgIHByb3BDbGFzcz17cHJvcENsYXNzfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkpXG4gICAgICAgICAgOiBudWxsfVxuICAgICAgPC9zcGFuPlxuICAgIClcbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5pbXBvcnQgeyBzYW5pdGl6ZVVybCB9IGZyb20gXCJjb3JlL3V0aWxzL3VybFwiXG5cbmNvbnN0IHByb3BDbGFzcyA9IFwicHJvcGVydHlcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcnJheU1vZGVsIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBzY2hlbWE6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29uZmlnczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBkaXNwbGF5TmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICByZXF1aXJlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZXhwYW5kRGVwdGg6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgc3BlY1BhdGg6IEltUHJvcFR5cGVzLmxpc3QuaXNSZXF1aXJlZCxcbiAgICBkZXB0aDogUHJvcFR5cGVzLm51bWJlcixcbiAgICBpbmNsdWRlUmVhZE9ubHk6IFByb3BUeXBlcy5ib29sLFxuICAgIGluY2x1ZGVXcml0ZU9ubHk6IFByb3BUeXBlcy5ib29sLFxuICB9XG5cbiAgcmVuZGVyKCl7XG4gICAgbGV0IHsgZ2V0Q29tcG9uZW50LCBnZXRDb25maWdzLCBzY2hlbWEsIGRlcHRoLCBleHBhbmREZXB0aCwgbmFtZSwgZGlzcGxheU5hbWUsIHNwZWNQYXRoIH0gPSB0aGlzLnByb3BzXG4gICAgbGV0IGRlc2NyaXB0aW9uID0gc2NoZW1hLmdldChcImRlc2NyaXB0aW9uXCIpXG4gICAgbGV0IGl0ZW1zID0gc2NoZW1hLmdldChcIml0ZW1zXCIpXG4gICAgbGV0IHRpdGxlID0gc2NoZW1hLmdldChcInRpdGxlXCIpIHx8IGRpc3BsYXlOYW1lIHx8IG5hbWVcbiAgICBsZXQgcHJvcGVydGllcyA9IHNjaGVtYS5maWx0ZXIoICggdiwga2V5KSA9PiBbXCJ0eXBlXCIsIFwiaXRlbXNcIiwgXCJkZXNjcmlwdGlvblwiLCBcIiQkcmVmXCIsIFwiZXh0ZXJuYWxEb2NzXCJdLmluZGV4T2Yoa2V5KSA9PT0gLTEgKVxuICAgIGxldCBleHRlcm5hbERvY3NVcmwgPSBzY2hlbWEuZ2V0SW4oW1wiZXh0ZXJuYWxEb2NzXCIsIFwidXJsXCJdKVxuICAgIGxldCBleHRlcm5hbERvY3NEZXNjcmlwdGlvbiA9IHNjaGVtYS5nZXRJbihbXCJleHRlcm5hbERvY3NcIiwgXCJkZXNjcmlwdGlvblwiXSlcblxuXG4gICAgY29uc3QgTWFya2Rvd24gPSBnZXRDb21wb25lbnQoXCJNYXJrZG93blwiLCB0cnVlKVxuICAgIGNvbnN0IE1vZGVsQ29sbGFwc2UgPSBnZXRDb21wb25lbnQoXCJNb2RlbENvbGxhcHNlXCIpXG4gICAgY29uc3QgTW9kZWwgPSBnZXRDb21wb25lbnQoXCJNb2RlbFwiKVxuICAgIGNvbnN0IFByb3BlcnR5ID0gZ2V0Q29tcG9uZW50KFwiUHJvcGVydHlcIilcbiAgICBjb25zdCBMaW5rID0gZ2V0Q29tcG9uZW50KFwiTGlua1wiKVxuXG4gICAgY29uc3QgdGl0bGVFbCA9IHRpdGxlICYmXG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJtb2RlbC10aXRsZVwiPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtb2RlbC10aXRsZV9fdGV4dFwiPnsgdGl0bGUgfTwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cblxuICAgIC8qXG4gICAgTm90ZTogd2Ugc2V0IGBuYW1lPXtudWxsfWAgaW4gPE1vZGVsPiBiZWxvdyBiZWNhdXNlIHdlIGRvbid0IHdhbnRcbiAgICB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBNb2RlbCBwYXNzZWQgKGFuZCBkaXNwbGF5ZWQpIGFzIHRoZSBuYW1lIG9mIHRoZSBhcnJheSBlbGVtZW50IE1vZGVsXG4gICAgKi9cblxuICAgIHJldHVybiA8c3BhbiBjbGFzc05hbWU9XCJtb2RlbFwiPlxuICAgICAgPE1vZGVsQ29sbGFwc2UgdGl0bGU9e3RpdGxlRWx9IGV4cGFuZGVkPXsgZGVwdGggPD0gZXhwYW5kRGVwdGggfSBjb2xsYXBzZWRDb250ZW50PVwiWy4uLl1cIj5cbiAgICAgICAgW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByb3BlcnRpZXMuc2l6ZSA/IHByb3BlcnRpZXMuZW50cnlTZXEoKS5tYXAoICggWyBrZXksIHYgXSApID0+IDxQcm9wZXJ0eSBrZXk9e2Ake2tleX0tJHt2fWB9IHByb3BLZXk9eyBrZXkgfSBwcm9wVmFsPXsgdiB9IHByb3BDbGFzcz17IHByb3BDbGFzcyB9IC8+KSA6IG51bGxcbiAgICAgICAgICB9XG4gICAgICAgICAge1xuICAgICAgICAgICAgIWRlc2NyaXB0aW9uID8gKHByb3BlcnRpZXMuc2l6ZSA/IDxkaXYgY2xhc3NOYW1lPVwibWFya2Rvd25cIj48L2Rpdj4gOiBudWxsKSA6XG4gICAgICAgICAgICAgIDxNYXJrZG93biBzb3VyY2U9eyBkZXNjcmlwdGlvbiB9IC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIHsgZXh0ZXJuYWxEb2NzVXJsICYmXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImV4dGVybmFsLWRvY3NcIj5cbiAgICAgICAgICAgICAgIDxMaW5rIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9e3Nhbml0aXplVXJsKGV4dGVybmFsRG9jc1VybCl9PntleHRlcm5hbERvY3NEZXNjcmlwdGlvbiB8fCBleHRlcm5hbERvY3NVcmx9PC9MaW5rPlxuICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgIDxNb2RlbFxuICAgICAgICAgICAgICB7IC4uLnRoaXMucHJvcHMgfVxuICAgICAgICAgICAgICBnZXRDb25maWdzPXsgZ2V0Q29uZmlncyB9XG4gICAgICAgICAgICAgIHNwZWNQYXRoPXtzcGVjUGF0aC5wdXNoKFwiaXRlbXNcIil9XG4gICAgICAgICAgICAgIG5hbWU9e251bGx9XG4gICAgICAgICAgICAgIHNjaGVtYT17IGl0ZW1zIH1cbiAgICAgICAgICAgICAgcmVxdWlyZWQ9eyBmYWxzZSB9XG4gICAgICAgICAgICAgIGRlcHRoPXsgZGVwdGggKyAxIH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICBdXG4gICAgICA8L01vZGVsQ29sbGFwc2U+XG4gICAgPC9zcGFuPlxuICB9XG59XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHsgZ2V0RXh0ZW5zaW9ucyB9IGZyb20gXCJjb3JlL3V0aWxzXCJcbmltcG9ydCB7IHNhbml0aXplVXJsIH0gZnJvbSBcImNvcmUvdXRpbHMvdXJsXCJcblxuY29uc3QgcHJvcENsYXNzID0gXCJwcm9wZXJ0eSBwcmltaXRpdmVcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcmltaXRpdmUgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHNjaGVtYTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBnZXRDb25maWdzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZGlzcGxheU5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZGVwdGg6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgZXhwYW5kRGVwdGg6IFByb3BUeXBlcy5udW1iZXIsXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHtcbiAgICAgIHNjaGVtYSxcbiAgICAgIGdldENvbXBvbmVudCxcbiAgICAgIGdldENvbmZpZ3MsXG4gICAgICBuYW1lLFxuICAgICAgZGlzcGxheU5hbWUsXG4gICAgICBkZXB0aCxcbiAgICAgIGV4cGFuZERlcHRoLFxuICAgIH0gPSB0aGlzLnByb3BzXG5cbiAgICBjb25zdCB7IHNob3dFeHRlbnNpb25zIH0gPSBnZXRDb25maWdzKClcblxuICAgIGlmICghc2NoZW1hIHx8ICFzY2hlbWEuZ2V0KSB7XG4gICAgICAvLyBkb24ndCByZW5kZXIgaWYgc2NoZW1hIGlzbid0IGNvcnJlY3RseSBmb3JtZWRcbiAgICAgIHJldHVybiA8ZGl2PjwvZGl2PlxuICAgIH1cblxuICAgIGxldCB0eXBlID0gc2NoZW1hLmdldChcInR5cGVcIilcbiAgICBsZXQgZm9ybWF0ID0gc2NoZW1hLmdldChcImZvcm1hdFwiKVxuICAgIGxldCB4bWwgPSBzY2hlbWEuZ2V0KFwieG1sXCIpXG4gICAgbGV0IGVudW1BcnJheSA9IHNjaGVtYS5nZXQoXCJlbnVtXCIpXG4gICAgbGV0IHRpdGxlID0gc2NoZW1hLmdldChcInRpdGxlXCIpIHx8IGRpc3BsYXlOYW1lIHx8IG5hbWVcbiAgICBsZXQgZGVzY3JpcHRpb24gPSBzY2hlbWEuZ2V0KFwiZGVzY3JpcHRpb25cIilcbiAgICBjb25zdCBleHRlbnNpb25zID0gZ2V0RXh0ZW5zaW9ucyhzY2hlbWEpXG5cbiAgICBsZXQgcHJvcGVydGllcyA9IHNjaGVtYVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKF8sIGtleSkgPT5cbiAgICAgICAgICBbXG4gICAgICAgICAgICBcImVudW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiLFxuICAgICAgICAgICAgXCJmb3JtYXRcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIixcbiAgICAgICAgICAgIFwiJCRyZWZcIixcbiAgICAgICAgICAgIFwiZXh0ZXJuYWxEb2NzXCIsXG4gICAgICAgICAgXS5pbmRleE9mKGtleSkgPT09IC0xXG4gICAgICApXG4gICAgICAuZmlsdGVyTm90KChfLCBrZXkpID0+IGV4dGVuc2lvbnMuaGFzKGtleSkpXG4gICAgbGV0IGV4dGVybmFsRG9jc1VybCA9IHNjaGVtYS5nZXRJbihbXCJleHRlcm5hbERvY3NcIiwgXCJ1cmxcIl0pXG4gICAgbGV0IGV4dGVybmFsRG9jc0Rlc2NyaXB0aW9uID0gc2NoZW1hLmdldEluKFtcImV4dGVybmFsRG9jc1wiLCBcImRlc2NyaXB0aW9uXCJdKVxuXG4gICAgY29uc3QgTWFya2Rvd24gPSBnZXRDb21wb25lbnQoXCJNYXJrZG93blwiLCB0cnVlKVxuICAgIGNvbnN0IEVudW1Nb2RlbCA9IGdldENvbXBvbmVudChcIkVudW1Nb2RlbFwiKVxuICAgIGNvbnN0IFByb3BlcnR5ID0gZ2V0Q29tcG9uZW50KFwiUHJvcGVydHlcIilcbiAgICBjb25zdCBNb2RlbENvbGxhcHNlID0gZ2V0Q29tcG9uZW50KFwiTW9kZWxDb2xsYXBzZVwiKVxuICAgIGNvbnN0IExpbmsgPSBnZXRDb21wb25lbnQoXCJMaW5rXCIpXG4gICAgY29uc3QgTW9kZWxFeHRlbnNpb25zID0gZ2V0Q29tcG9uZW50KFwiTW9kZWxFeHRlbnNpb25zXCIpXG5cbiAgICBjb25zdCB0aXRsZUVsID0gdGl0bGUgJiYgKFxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibW9kZWwtdGl0bGVcIj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibW9kZWwtdGl0bGVfX3RleHRcIj57dGl0bGV9PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJtb2RlbFwiPlxuICAgICAgICA8TW9kZWxDb2xsYXBzZVxuICAgICAgICAgIHRpdGxlPXt0aXRsZUVsfVxuICAgICAgICAgIGV4cGFuZGVkPXtkZXB0aCA8PSBleHBhbmREZXB0aH1cbiAgICAgICAgICBjb2xsYXBzZWRDb250ZW50PVwiWy4uLl1cIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicHJvcFwiPlxuICAgICAgICAgICAge25hbWUgJiYgZGVwdGggPiAxICYmIDxzcGFuIGNsYXNzTmFtZT1cInByb3AtbmFtZVwiPnt0aXRsZX08L3NwYW4+fVxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicHJvcC10eXBlXCI+e3R5cGV9PC9zcGFuPlxuICAgICAgICAgICAge2Zvcm1hdCAmJiA8c3BhbiBjbGFzc05hbWU9XCJwcm9wLWZvcm1hdFwiPigke2Zvcm1hdH0pPC9zcGFuPn1cbiAgICAgICAgICAgIHtwcm9wZXJ0aWVzLnNpemVcbiAgICAgICAgICAgICAgPyBwcm9wZXJ0aWVzXG4gICAgICAgICAgICAgICAgICAuZW50cnlTZXEoKVxuICAgICAgICAgICAgICAgICAgLm1hcCgoW2tleSwgdl0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgPFByb3BlcnR5XG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtrZXl9LSR7dn1gfVxuICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXk9e2tleX1cbiAgICAgICAgICAgICAgICAgICAgICBwcm9wVmFsPXt2fVxuICAgICAgICAgICAgICAgICAgICAgIHByb3BDbGFzcz17cHJvcENsYXNzfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgOiBudWxsfVxuICAgICAgICAgICAge3Nob3dFeHRlbnNpb25zICYmIGV4dGVuc2lvbnMuc2l6ZSA+IDAgPyAoXG4gICAgICAgICAgICAgIDxNb2RlbEV4dGVuc2lvbnNcbiAgICAgICAgICAgICAgICBleHRlbnNpb25zPXtleHRlbnNpb25zfVxuICAgICAgICAgICAgICAgIHByb3BDbGFzcz17YCR7cHJvcENsYXNzfSBleHRlbnNpb25gfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7IWRlc2NyaXB0aW9uID8gbnVsbCA6IDxNYXJrZG93biBzb3VyY2U9e2Rlc2NyaXB0aW9ufSAvPn1cbiAgICAgICAgICAgIHtleHRlcm5hbERvY3NVcmwgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImV4dGVybmFsLWRvY3NcIj5cbiAgICAgICAgICAgICAgICA8TGluayB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXtzYW5pdGl6ZVVybChleHRlcm5hbERvY3NVcmwpfT5cbiAgICAgICAgICAgICAgICAgIHtleHRlcm5hbERvY3NEZXNjcmlwdGlvbiB8fCBleHRlcm5hbERvY3NVcmx9XG4gICAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7eG1sICYmIHhtbC5zaXplID8gKFxuICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e3Byb3BDbGFzc30+eG1sOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICB7eG1sXG4gICAgICAgICAgICAgICAgICAuZW50cnlTZXEoKVxuICAgICAgICAgICAgICAgICAgLm1hcCgoW2tleSwgdl0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4ga2V5PXtgJHtrZXl9LSR7dn1gfSBjbGFzc05hbWU9e3Byb3BDbGFzc30+XG4gICAgICAgICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7e2tleX06IHtTdHJpbmcodil9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgICAudG9BcnJheSgpfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtlbnVtQXJyYXkgJiYgKFxuICAgICAgICAgICAgICA8RW51bU1vZGVsIHZhbHVlPXtlbnVtQXJyYXl9IGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvTW9kZWxDb2xsYXBzZT5cbiAgICAgIDwvc3Bhbj5cbiAgICApXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjaGVtZXMgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgc3BlY0FjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBzY2hlbWVzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgY3VycmVudFNjaGVtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIHBhdGg6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbWV0aG9kOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB9XG5cbiAgVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpIHtcbiAgICBsZXQgeyBzY2hlbWVzIH0gPSB0aGlzLnByb3BzXG5cbiAgICAvL2ZpcmUgJ2NoYW5nZScgZXZlbnQgdG8gc2V0IGRlZmF1bHQgJ3ZhbHVlJyBvZiBzZWxlY3RcbiAgICB0aGlzLnNldFNjaGVtZShzY2hlbWVzLmZpcnN0KCkpXG4gIH1cblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICBpZiAoICF0aGlzLnByb3BzLmN1cnJlbnRTY2hlbWUgfHwgIW5leHRQcm9wcy5zY2hlbWVzLmluY2x1ZGVzKHRoaXMucHJvcHMuY3VycmVudFNjaGVtZSkgKSB7XG4gICAgICAvLyBpZiB3ZSBkb24ndCBoYXZlIGEgc2VsZWN0ZWQgY3VycmVudFNjaGVtZSBvciBpZiBvdXIgc2VsZWN0ZWQgc2NoZW1lIGlzIG5vIGxvbmdlciBhbiBvcHRpb24sXG4gICAgICAvLyB0aGVuIGZpcmUgJ2NoYW5nZScgZXZlbnQgYW5kIHNlbGVjdCB0aGUgZmlyc3Qgc2NoZW1lIGluIHRoZSBsaXN0IG9mIG9wdGlvbnNcbiAgICAgIHRoaXMuc2V0U2NoZW1lKG5leHRQcm9wcy5zY2hlbWVzLmZpcnN0KCkpXG4gICAgfVxuICB9XG5cbiAgb25DaGFuZ2UgPSggZSApID0+IHtcbiAgICB0aGlzLnNldFNjaGVtZSggZS50YXJnZXQudmFsdWUgKVxuICB9XG5cbiAgc2V0U2NoZW1lID0gKCB2YWx1ZSApID0+IHtcbiAgICBsZXQgeyBwYXRoLCBtZXRob2QsIHNwZWNBY3Rpb25zIH0gPSB0aGlzLnByb3BzXG5cbiAgICBzcGVjQWN0aW9ucy5zZXRTY2hlbWUoIHZhbHVlLCBwYXRoLCBtZXRob2QgKVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IHNjaGVtZXMsIGN1cnJlbnRTY2hlbWUgfSA9IHRoaXMucHJvcHNcblxuICAgIHJldHVybiAoXG4gICAgICA8bGFiZWwgaHRtbEZvcj1cInNjaGVtZXNcIj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwic2NoZW1lcy10aXRsZVwiPlNjaGVtZXM8L3NwYW4+XG4gICAgICAgIDxzZWxlY3Qgb25DaGFuZ2U9eyB0aGlzLm9uQ2hhbmdlIH0gdmFsdWU9e2N1cnJlbnRTY2hlbWV9IGlkPVwic2NoZW1lc1wiPlxuICAgICAgICAgIHsgc2NoZW1lcy52YWx1ZVNlcSgpLm1hcChcbiAgICAgICAgICAgICggc2NoZW1lICkgPT4gPG9wdGlvbiB2YWx1ZT17IHNjaGVtZSB9IGtleT17IHNjaGVtZSB9Pnsgc2NoZW1lIH08L29wdGlvbj5cbiAgICAgICAgICApLnRvQXJyYXkoKX1cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L2xhYmVsPlxuICAgIClcbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2NoZW1lc0NvbnRhaW5lciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBzcGVjQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbiAgfVxuXG4gIHJlbmRlciAoKSB7XG4gICAgY29uc3Qge3NwZWNBY3Rpb25zLCBzcGVjU2VsZWN0b3JzLCBnZXRDb21wb25lbnR9ID0gdGhpcy5wcm9wc1xuXG4gICAgY29uc3QgY3VycmVudFNjaGVtZSA9IHNwZWNTZWxlY3RvcnMub3BlcmF0aW9uU2NoZW1lKClcbiAgICBjb25zdCBzY2hlbWVzID0gc3BlY1NlbGVjdG9ycy5zY2hlbWVzKClcblxuICAgIGNvbnN0IFNjaGVtZXMgPSBnZXRDb21wb25lbnQoXCJzY2hlbWVzXCIpXG5cbiAgICBjb25zdCBzY2hlbWVzQXJlUHJlc2VudCA9IHNjaGVtZXMgJiYgc2NoZW1lcy5zaXplXG5cbiAgICByZXR1cm4gc2NoZW1lc0FyZVByZXNlbnQgPyAoXG4gICAgICAgIDxTY2hlbWVzXG4gICAgICAgICAgY3VycmVudFNjaGVtZT17Y3VycmVudFNjaGVtZX1cbiAgICAgICAgICBzY2hlbWVzPXtzY2hlbWVzfVxuICAgICAgICAgIHNwZWNBY3Rpb25zPXtzcGVjQWN0aW9uc31cbiAgICAgICAgLz5cbiAgICAgICkgOiBudWxsXG4gIH1cbn1cbiIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImRlZmF1bHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9kZWJvdW5jZV9pbnB1dF83ZWQzZTA2OF9fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCwgQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHsgTGlzdCwgZnJvbUpTIH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgY3ggZnJvbSBcImNsYXNzbmFtZXNcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcbmltcG9ydCBEZWJvdW5jZUlucHV0IGZyb20gXCJyZWFjdC1kZWJvdW5jZS1pbnB1dFwiXG5pbXBvcnQgeyBzdHJpbmdpZnksIGlzSW1tdXRhYmxlIH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuXG5jb25zdCBub29wID0gKCk9PiB7fVxuY29uc3QgSnNvblNjaGVtYVByb3BTaGFwZSA9IHtcbiAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB2YWx1ZTogUHJvcFR5cGVzLmFueSxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICBrZXlOYW1lOiBQcm9wVHlwZXMuYW55LFxuICBmbjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBzY2hlbWE6IFByb3BUeXBlcy5vYmplY3QsXG4gIGVycm9yczogSW1Qcm9wVHlwZXMubGlzdCxcbiAgcmVxdWlyZWQ6IFByb3BUeXBlcy5ib29sLFxuICBkaXNwYXRjaEluaXRpYWxWYWx1ZTogUHJvcFR5cGVzLmJvb2wsXG4gIGRlc2NyaXB0aW9uOiBQcm9wVHlwZXMuYW55LFxuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG59XG5cbmNvbnN0IEpzb25TY2hlbWFEZWZhdWx0UHJvcHMgPSB7XG4gIHZhbHVlOiBcIlwiLFxuICBvbkNoYW5nZTogbm9vcCxcbiAgc2NoZW1hOiB7fSxcbiAga2V5TmFtZTogXCJcIixcbiAgcmVxdWlyZWQ6IGZhbHNlLFxuICBlcnJvcnM6IExpc3QoKVxufVxuXG5leHBvcnQgY2xhc3MgSnNvblNjaGVtYUZvcm0gZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBKc29uU2NoZW1hUHJvcFNoYXBlXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSBKc29uU2NoZW1hRGVmYXVsdFByb3BzXG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3QgeyBkaXNwYXRjaEluaXRpYWxWYWx1ZSwgdmFsdWUsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzXG4gICAgaWYoZGlzcGF0Y2hJbml0aWFsVmFsdWUpIHtcbiAgICAgIG9uQ2hhbmdlKHZhbHVlKVxuICAgIH0gZWxzZSBpZihkaXNwYXRjaEluaXRpYWxWYWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgIG9uQ2hhbmdlKFwiXCIpXG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IHNjaGVtYSwgZXJyb3JzLCB2YWx1ZSwgb25DaGFuZ2UsIGdldENvbXBvbmVudCwgZm4sIGRpc2FibGVkIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgZm9ybWF0ID0gc2NoZW1hICYmIHNjaGVtYS5nZXQgPyBzY2hlbWEuZ2V0KFwiZm9ybWF0XCIpIDogbnVsbFxuICAgIGNvbnN0IHR5cGUgPSBzY2hlbWEgJiYgc2NoZW1hLmdldCA/IHNjaGVtYS5nZXQoXCJ0eXBlXCIpIDogbnVsbFxuICAgIGNvbnN0IG9iamVjdFR5cGUgPSBmbi5nZXRTY2hlbWFPYmplY3RUeXBlKHNjaGVtYSlcbiAgICBjb25zdCBpc0ZpbGVVcGxvYWRJbnRlbmRlZCA9IGZuLmlzRmlsZVVwbG9hZEludGVuZGVkKHNjaGVtYSlcblxuICAgIGxldCBnZXRDb21wb25lbnRTaWxlbnRseSA9IChuYW1lKSA9PiBnZXRDb21wb25lbnQobmFtZSwgZmFsc2UsIHsgZmFpbFNpbGVudGx5OiB0cnVlIH0pXG4gICAgbGV0IENvbXAgPSB0eXBlID8gZm9ybWF0ID9cbiAgICAgIGdldENvbXBvbmVudFNpbGVudGx5KGBKc29uU2NoZW1hXyR7dHlwZX1fJHtmb3JtYXR9YCkgOlxuICAgICAgZ2V0Q29tcG9uZW50U2lsZW50bHkoYEpzb25TY2hlbWFfJHt0eXBlfWApIDpcbiAgICAgIGdldENvbXBvbmVudChcIkpzb25TY2hlbWFfc3RyaW5nXCIpXG5cbiAgICBpZiAoIWlzRmlsZVVwbG9hZEludGVuZGVkICYmIExpc3QuaXNMaXN0KHR5cGUpICYmIChvYmplY3RUeXBlID09PSBcImFycmF5XCIgfHwgb2JqZWN0VHlwZSA9PT0gXCJvYmplY3RcIikpIHtcbiAgICAgIENvbXAgPSBnZXRDb21wb25lbnQoXCJKc29uU2NoZW1hX29iamVjdFwiKVxuICAgIH1cblxuICAgIGlmICghQ29tcCkge1xuICAgICAgQ29tcCA9IGdldENvbXBvbmVudChcIkpzb25TY2hlbWFfc3RyaW5nXCIpXG4gICAgfVxuXG4gICAgcmV0dXJuIDxDb21wIHsgLi4udGhpcy5wcm9wcyB9IGVycm9ycz17ZXJyb3JzfSBmbj17Zm59IGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fSB2YWx1ZT17dmFsdWV9IG9uQ2hhbmdlPXtvbkNoYW5nZX0gc2NoZW1hPXtzY2hlbWF9IGRpc2FibGVkPXtkaXNhYmxlZH0vPlxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBKc29uU2NoZW1hX3N0cmluZyBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBKc29uU2NoZW1hUHJvcFNoYXBlXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSBKc29uU2NoZW1hRGVmYXVsdFByb3BzXG4gIG9uQ2hhbmdlID0gKGUpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMucHJvcHMuc2NoZW1hICYmIHRoaXMucHJvcHMuc2NoZW1hLmdldChcInR5cGVcIikgPT09IFwiZmlsZVwiID8gZS50YXJnZXQuZmlsZXNbMF0gOiBlLnRhcmdldC52YWx1ZVxuICAgIHRoaXMucHJvcHMub25DaGFuZ2UodmFsdWUsIHRoaXMucHJvcHMua2V5TmFtZSlcbiAgfVxuICBvbkVudW1DaGFuZ2UgPSAodmFsKSA9PiB0aGlzLnByb3BzLm9uQ2hhbmdlKHZhbClcbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IGdldENvbXBvbmVudCwgdmFsdWUsIHNjaGVtYSwgZXJyb3JzLCByZXF1aXJlZCwgZGVzY3JpcHRpb24sIGRpc2FibGVkIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgZW51bVZhbHVlID0gc2NoZW1hICYmIHNjaGVtYS5nZXQgPyBzY2hlbWEuZ2V0KFwiZW51bVwiKSA6IG51bGxcbiAgICBjb25zdCBmb3JtYXQgPSBzY2hlbWEgJiYgc2NoZW1hLmdldCA/IHNjaGVtYS5nZXQoXCJmb3JtYXRcIikgOiBudWxsXG4gICAgY29uc3QgdHlwZSA9IHNjaGVtYSAmJiBzY2hlbWEuZ2V0ID8gc2NoZW1hLmdldChcInR5cGVcIikgOiBudWxsXG4gICAgY29uc3Qgc2NoZW1hSW4gPSBzY2hlbWEgJiYgc2NoZW1hLmdldCA/IHNjaGVtYS5nZXQoXCJpblwiKSA6IG51bGxcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB2YWx1ZSA9IFwiXCIgLy8gdmFsdWUgc2hvdWxkIG5vdCBiZSBudWxsOyB0aGlzIGZpeGVzIGEgRGVib3VuY2UgZXJyb3JcbiAgICB9IGVsc2UgaWYgKGlzSW1tdXRhYmxlKHZhbHVlKSB8fCB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIHZhbHVlID0gc3RyaW5naWZ5KHZhbHVlKVxuICAgIH1cblxuICAgIGVycm9ycyA9IGVycm9ycy50b0pTID8gZXJyb3JzLnRvSlMoKSA6IFtdXG5cbiAgICBpZiAoIGVudW1WYWx1ZSApIHtcbiAgICAgIGNvbnN0IFNlbGVjdCA9IGdldENvbXBvbmVudChcIlNlbGVjdFwiKVxuICAgICAgcmV0dXJuICg8U2VsZWN0IGNsYXNzTmFtZT17IGVycm9ycy5sZW5ndGggPyBcImludmFsaWRcIiA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU9eyBlcnJvcnMubGVuZ3RoID8gZXJyb3JzIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICBhbGxvd2VkVmFsdWVzPXsgWy4uLmVudW1WYWx1ZV0gfVxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXsgdmFsdWUgfVxuICAgICAgICAgICAgICAgICAgICAgIGFsbG93RW1wdHlWYWx1ZT17ICFyZXF1aXJlZCB9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsgdGhpcy5vbkVudW1DaGFuZ2UgfS8+KVxuICAgIH1cblxuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSBkaXNhYmxlZCB8fCAoc2NoZW1hSW4gJiYgc2NoZW1hSW4gPT09IFwiZm9ybURhdGFcIiAmJiAhKFwiRm9ybURhdGFcIiBpbiB3aW5kb3cpKVxuICAgIGNvbnN0IElucHV0ID0gZ2V0Q29tcG9uZW50KFwiSW5wdXRcIilcbiAgICBpZiAodHlwZSAmJiB0eXBlID09PSBcImZpbGVcIikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPElucHV0IHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICBjbGFzc05hbWU9e2Vycm9ycy5sZW5ndGggPyBcImludmFsaWRcIiA6IFwiXCJ9XG4gICAgICAgICAgdGl0bGU9e2Vycm9ycy5sZW5ndGggPyBlcnJvcnMgOiBcIlwifVxuICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlfVxuICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfSAvPlxuICAgICAgKVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxEZWJvdW5jZUlucHV0XG4gICAgICAgICAgdHlwZT17Zm9ybWF0ICYmIGZvcm1hdCA9PT0gXCJwYXNzd29yZFwiID8gXCJwYXNzd29yZFwiIDogXCJ0ZXh0XCJ9XG4gICAgICAgICAgY2xhc3NOYW1lPXtlcnJvcnMubGVuZ3RoID8gXCJpbnZhbGlkXCIgOiBcIlwifVxuICAgICAgICAgIHRpdGxlPXtlcnJvcnMubGVuZ3RoID8gZXJyb3JzIDogXCJcIn1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgbWluTGVuZ3RoPXswfVxuICAgICAgICAgIGRlYm91bmNlVGltZW91dD17MzUwfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtkZXNjcmlwdGlvbn1cbiAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZX1cbiAgICAgICAgICBkaXNhYmxlZD17aXNEaXNhYmxlZH0gLz5cbiAgICAgIClcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEpzb25TY2hlbWFfYXJyYXkgZXh0ZW5kcyBQdXJlQ29tcG9uZW50IHtcblxuICBzdGF0aWMgcHJvcFR5cGVzID0gSnNvblNjaGVtYVByb3BTaGFwZVxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0gSnNvblNjaGVtYURlZmF1bHRQcm9wc1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzLCBjb250ZXh0KSB7XG4gICAgc3VwZXIocHJvcHMsIGNvbnRleHQpXG4gICAgdGhpcy5zdGF0ZSA9IHsgdmFsdWU6IHZhbHVlT3JFbXB0eUxpc3QocHJvcHMudmFsdWUpLCBzY2hlbWE6IHByb3BzLnNjaGVtYX1cbiAgfVxuXG4gIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHByb3BzKSB7XG4gICAgY29uc3QgdmFsdWUgPSB2YWx1ZU9yRW1wdHlMaXN0KHByb3BzLnZhbHVlKVxuICAgIGlmKHZhbHVlICE9PSB0aGlzLnN0YXRlLnZhbHVlKVxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IHZhbHVlIH0pXG5cbiAgICBpZihwcm9wcy5zY2hlbWEgIT09IHRoaXMuc3RhdGUuc2NoZW1hKVxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNjaGVtYTogcHJvcHMuc2NoZW1hIH0pXG4gIH1cblxuICBvbkNoYW5nZSA9ICgpID0+IHtcbiAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKHRoaXMuc3RhdGUudmFsdWUpXG4gIH1cblxuICBvbkl0ZW1DaGFuZ2UgPSAoaXRlbVZhbCwgaSkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoKHsgdmFsdWUgfSkgPT4gKHtcbiAgICAgIHZhbHVlOiB2YWx1ZS5zZXQoaSwgaXRlbVZhbClcbiAgICB9KSwgdGhpcy5vbkNoYW5nZSlcbiAgfVxuXG4gIHJlbW92ZUl0ZW0gPSAoaSkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoKHsgdmFsdWUgfSkgPT4gKHtcbiAgICAgIHZhbHVlOiB2YWx1ZS5kZWxldGUoaSlcbiAgICB9KSwgdGhpcy5vbkNoYW5nZSlcbiAgfVxuXG4gIGFkZEl0ZW0gPSAoKSA9PiB7XG4gICAgY29uc3QgeyBmbiB9ID0gdGhpcy5wcm9wc1xuICAgIGxldCBuZXdWYWx1ZSA9IHZhbHVlT3JFbXB0eUxpc3QodGhpcy5zdGF0ZS52YWx1ZSlcbiAgICB0aGlzLnNldFN0YXRlKCgpID0+ICh7XG4gICAgICB2YWx1ZTogbmV3VmFsdWUucHVzaChmbi5nZXRTYW1wbGVTY2hlbWEodGhpcy5zdGF0ZS5zY2hlbWEuZ2V0KFwiaXRlbXNcIiksIGZhbHNlLCB7XG4gICAgICAgIGluY2x1ZGVXcml0ZU9ubHk6IHRydWVcbiAgICAgIH0pKVxuICAgIH0pLCB0aGlzLm9uQ2hhbmdlKVxuICB9XG5cbiAgb25FbnVtQ2hhbmdlID0gKHZhbHVlKSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSgoKSA9PiAoe1xuICAgICAgdmFsdWU6IHZhbHVlXG4gICAgfSksIHRoaXMub25DaGFuZ2UpXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHsgZ2V0Q29tcG9uZW50LCByZXF1aXJlZCwgc2NoZW1hLCBlcnJvcnMsIGZuLCBkaXNhYmxlZCB9ID0gdGhpcy5wcm9wc1xuXG4gICAgZXJyb3JzID0gZXJyb3JzLnRvSlMgPyBlcnJvcnMudG9KUygpIDogQXJyYXkuaXNBcnJheShlcnJvcnMpID8gZXJyb3JzIDogW11cbiAgICBjb25zdCBhcnJheUVycm9ycyA9IGVycm9ycy5maWx0ZXIoZSA9PiB0eXBlb2YgZSA9PT0gXCJzdHJpbmdcIilcbiAgICBjb25zdCBuZWVkc1JlbW92ZUVycm9yID0gZXJyb3JzLmZpbHRlcihlID0+IGUubmVlZFJlbW92ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgLm1hcChlID0+IGUuZXJyb3IpXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnN0YXRlLnZhbHVlIC8vIGV4cGVjdCBJbSBMaXN0XG4gICAgY29uc3Qgc2hvdWxkUmVuZGVyVmFsdWUgPVxuICAgICAgISEodmFsdWUgJiYgdmFsdWUuY291bnQgJiYgdmFsdWUuY291bnQoKSA+IDApXG4gICAgY29uc3Qgc2NoZW1hSXRlbXNFbnVtID0gc2NoZW1hLmdldEluKFtcIml0ZW1zXCIsIFwiZW51bVwiXSlcbiAgICBjb25zdCBzY2hlbWFJdGVtcyA9IHNjaGVtYS5nZXQoXCJpdGVtc1wiKVxuICAgIGNvbnN0IHNjaGVtYUl0ZW1zVHlwZSA9IGZuLmdldFNjaGVtYU9iamVjdFR5cGUoc2NoZW1hSXRlbXMpXG4gICAgY29uc3Qgc2NoZW1hSXRlbXNUeXBlTGFiZWwgPSBmbi5nZXRTY2hlbWFPYmplY3RUeXBlTGFiZWwoc2NoZW1hSXRlbXMpXG4gICAgY29uc3Qgc2NoZW1hSXRlbXNGb3JtYXQgPSBzY2hlbWEuZ2V0SW4oW1wiaXRlbXNcIiwgXCJmb3JtYXRcIl0pXG4gICAgY29uc3Qgc2NoZW1hSXRlbXNTY2hlbWEgPSBzY2hlbWEuZ2V0KFwiaXRlbXNcIilcbiAgICBsZXQgQXJyYXlJdGVtc0NvbXBvbmVudFxuICAgIGxldCBpc0FycmF5SXRlbVRleHQgPSBmYWxzZVxuICAgIGxldCBpc0FycmF5SXRlbUZpbGUgPSAoc2NoZW1hSXRlbXNUeXBlID09PSBcImZpbGVcIiB8fCAoc2NoZW1hSXRlbXNUeXBlID09PSBcInN0cmluZ1wiICYmIHNjaGVtYUl0ZW1zRm9ybWF0ID09PSBcImJpbmFyeVwiKSlcbiAgICBpZiAoc2NoZW1hSXRlbXNUeXBlICYmIHNjaGVtYUl0ZW1zRm9ybWF0KSB7XG4gICAgICBBcnJheUl0ZW1zQ29tcG9uZW50ID0gZ2V0Q29tcG9uZW50KGBKc29uU2NoZW1hXyR7c2NoZW1hSXRlbXNUeXBlfV8ke3NjaGVtYUl0ZW1zRm9ybWF0fWApXG4gICAgfSBlbHNlIGlmIChzY2hlbWFJdGVtc1R5cGUgPT09IFwiYm9vbGVhblwiIHx8IHNjaGVtYUl0ZW1zVHlwZSA9PT0gXCJhcnJheVwiIHx8IHNjaGVtYUl0ZW1zVHlwZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgQXJyYXlJdGVtc0NvbXBvbmVudCA9IGdldENvbXBvbmVudChgSnNvblNjaGVtYV8ke3NjaGVtYUl0ZW1zVHlwZX1gKVxuICAgIH1cblxuICAgIGlmIChMaXN0LmlzTGlzdChzY2hlbWFJdGVtcz8uZ2V0KFwidHlwZVwiKSkgJiYgKHNjaGVtYUl0ZW1zVHlwZSA9PT0gXCJhcnJheVwiIHx8IHNjaGVtYUl0ZW1zVHlwZSA9PT0gXCJvYmplY3RcIikpIHtcbiAgICAgIEFycmF5SXRlbXNDb21wb25lbnQgPSBnZXRDb21wb25lbnQoYEpzb25TY2hlbWFfb2JqZWN0YClcbiAgICB9XG5cbiAgICAvLyBpZiBBcnJheUl0ZW1zQ29tcG9uZW50IG5vdCBhc3NpZ25lZCBvciBkb2VzIG5vdCBleGlzdCxcbiAgICAvLyB1c2UgZGVmYXVsdCBzY2hlbWFJdGVtc1R5cGUgPT09IFwic3RyaW5nXCIgJiBKc29uU2NoZW1hQXJyYXlJdGVtVGV4dCBjb21wb25lbnRcbiAgICBpZiAoIUFycmF5SXRlbXNDb21wb25lbnQgJiYgIWlzQXJyYXlJdGVtRmlsZSkge1xuICAgICAgaXNBcnJheUl0ZW1UZXh0ID0gdHJ1ZVxuICAgIH1cblxuICAgIGlmICggc2NoZW1hSXRlbXNFbnVtICkge1xuICAgICAgY29uc3QgU2VsZWN0ID0gZ2V0Q29tcG9uZW50KFwiU2VsZWN0XCIpXG4gICAgICByZXR1cm4gKDxTZWxlY3QgY2xhc3NOYW1lPXsgZXJyb3JzLmxlbmd0aCA/IFwiaW52YWxpZFwiIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17IGVycm9ycy5sZW5ndGggPyBlcnJvcnMgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlPXsgdHJ1ZSB9XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9eyB2YWx1ZSB9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWRWYWx1ZXM9eyBzY2hlbWFJdGVtc0VudW0gfVxuICAgICAgICAgICAgICAgICAgICAgIGFsbG93RW1wdHlWYWx1ZT17ICFyZXF1aXJlZCB9XG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyB0aGlzLm9uRW51bUNoYW5nZSB9Lz4pXG4gICAgfVxuXG4gICAgY29uc3QgQnV0dG9uID0gZ2V0Q29tcG9uZW50KFwiQnV0dG9uXCIpXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtYXJyYXlcIj5cbiAgICAgICAge3Nob3VsZFJlbmRlclZhbHVlID9cbiAgICAgICAgICAodmFsdWUubWFwKChpdGVtLCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpdGVtRXJyb3JzID0gZnJvbUpTKFtcbiAgICAgICAgICAgICAgLi4uZXJyb3JzLmZpbHRlcigoZXJyKSA9PiBlcnIuaW5kZXggPT09IGkpXG4gICAgICAgICAgICAgIC5tYXAoZSA9PiBlLmVycm9yKVxuICAgICAgICAgICAgXSlcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxkaXYga2V5PXtpfSBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS1mb3JtLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBpc0FycmF5SXRlbUZpbGUgP1xuICAgICAgICAgICAgICAgICAgICA8SnNvblNjaGVtYUFycmF5SXRlbUZpbGVcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2l0ZW19XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsKT0+IHRoaXMub25JdGVtQ2hhbmdlKHZhbCwgaSl9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgZXJyb3JzPXtpdGVtRXJyb3JzfVxuICAgICAgICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgOiBpc0FycmF5SXRlbVRleHQgP1xuICAgICAgICAgICAgICAgICAgICAgIDxKc29uU2NoZW1hQXJyYXlJdGVtVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2l0ZW19XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHZhbCkgPT4gdGhpcy5vbkl0ZW1DaGFuZ2UodmFsLCBpKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycz17aXRlbUVycm9yc31cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDogPEFycmF5SXRlbXNDb21wb25lbnQgey4uLnRoaXMucHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17aXRlbX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsKSA9PiB0aGlzLm9uSXRlbUNoYW5nZSh2YWwsIGkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzPXtpdGVtRXJyb3JzfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hPXtzY2hlbWFJdGVtc1NjaGVtYX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgZm49e2ZufVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHshZGlzYWJsZWQgPyAoXG4gICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YGJ0biBidG4tc20ganNvbi1zY2hlbWEtZm9ybS1pdGVtLXJlbW92ZSAke25lZWRzUmVtb3ZlRXJyb3IubGVuZ3RoID8gXCJpbnZhbGlkXCIgOiBudWxsfWB9XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPXtuZWVkc1JlbW92ZUVycm9yLmxlbmd0aCA/IG5lZWRzUmVtb3ZlRXJyb3IgOiBcIlwifVxuXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRoaXMucmVtb3ZlSXRlbShpKX1cbiAgICAgICAgICAgICAgICAgID4gLSA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApXG4gICAgICAgICAgfSlcbiAgICAgICAgICApIDogbnVsbFxuICAgICAgICB9XG4gICAgICAgIHshZGlzYWJsZWQgPyAoXG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgYnRuIGJ0bi1zbSBqc29uLXNjaGVtYS1mb3JtLWl0ZW0tYWRkICR7YXJyYXlFcnJvcnMubGVuZ3RoID8gXCJpbnZhbGlkXCIgOiBudWxsfWB9XG4gICAgICAgICAgICB0aXRsZT17YXJyYXlFcnJvcnMubGVuZ3RoID8gYXJyYXlFcnJvcnMgOiBcIlwifVxuICAgICAgICAgICAgb25DbGljaz17dGhpcy5hZGRJdGVtfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIEFkZCB7c2NoZW1hSXRlbXNUeXBlTGFiZWx9IGl0ZW1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEpzb25TY2hlbWFBcnJheUl0ZW1UZXh0IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IEpzb25TY2hlbWFQcm9wU2hhcGVcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IEpzb25TY2hlbWFEZWZhdWx0UHJvcHNcblxuICBvbkNoYW5nZSA9IChlKSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZVxuICAgIHRoaXMucHJvcHMub25DaGFuZ2UodmFsdWUsIHRoaXMucHJvcHMua2V5TmFtZSlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyB2YWx1ZSwgZXJyb3JzLCBkZXNjcmlwdGlvbiwgZGlzYWJsZWQgfSA9IHRoaXMucHJvcHNcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB2YWx1ZSA9IFwiXCIgLy8gdmFsdWUgc2hvdWxkIG5vdCBiZSBudWxsXG4gICAgfSBlbHNlIGlmIChpc0ltbXV0YWJsZSh2YWx1ZSkgfHwgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICB2YWx1ZSA9IHN0cmluZ2lmeSh2YWx1ZSlcbiAgICB9XG5cbiAgICBlcnJvcnMgPSBlcnJvcnMudG9KUyA/IGVycm9ycy50b0pTKCkgOiBbXVxuXG4gICAgcmV0dXJuICg8RGVib3VuY2VJbnB1dFxuICAgICAgdHlwZT17XCJ0ZXh0XCJ9XG4gICAgICBjbGFzc05hbWU9e2Vycm9ycy5sZW5ndGggPyBcImludmFsaWRcIiA6IFwiXCJ9XG4gICAgICB0aXRsZT17ZXJyb3JzLmxlbmd0aCA/IGVycm9ycyA6IFwiXCJ9XG4gICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICBtaW5MZW5ndGg9ezB9XG4gICAgICBkZWJvdW5jZVRpbWVvdXQ9ezM1MH1cbiAgICAgIHBsYWNlaG9sZGVyPXtkZXNjcmlwdGlvbn1cbiAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlfVxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfSAvPilcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSnNvblNjaGVtYUFycmF5SXRlbUZpbGUgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0gSnNvblNjaGVtYVByb3BTaGFwZVxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0gSnNvblNjaGVtYURlZmF1bHRQcm9wc1xuXG4gIG9uRmlsZUNoYW5nZSA9IChlKSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC5maWxlc1swXVxuICAgIHRoaXMucHJvcHMub25DaGFuZ2UodmFsdWUsIHRoaXMucHJvcHMua2V5TmFtZSlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyBnZXRDb21wb25lbnQsIGVycm9ycywgZGlzYWJsZWQgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBJbnB1dCA9IGdldENvbXBvbmVudChcIklucHV0XCIpXG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IGRpc2FibGVkIHx8ICEoXCJGb3JtRGF0YVwiIGluIHdpbmRvdylcblxuICAgIHJldHVybiAoPElucHV0IHR5cGU9XCJmaWxlXCJcbiAgICAgIGNsYXNzTmFtZT17ZXJyb3JzLmxlbmd0aCA/IFwiaW52YWxpZFwiIDogXCJcIn1cbiAgICAgIHRpdGxlPXtlcnJvcnMubGVuZ3RoID8gZXJyb3JzIDogXCJcIn1cbiAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uRmlsZUNoYW5nZX1cbiAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfSAvPilcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSnNvblNjaGVtYV9ib29sZWFuIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IEpzb25TY2hlbWFQcm9wU2hhcGVcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IEpzb25TY2hlbWFEZWZhdWx0UHJvcHNcblxuICBvbkVudW1DaGFuZ2UgPSAodmFsKSA9PiB0aGlzLnByb3BzLm9uQ2hhbmdlKHZhbClcbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IGdldENvbXBvbmVudCwgdmFsdWUsIGVycm9ycywgc2NoZW1hLCByZXF1aXJlZCwgZGlzYWJsZWQgfSA9IHRoaXMucHJvcHNcbiAgICBlcnJvcnMgPSBlcnJvcnMudG9KUyA/IGVycm9ycy50b0pTKCkgOiBbXVxuICAgIGxldCBlbnVtVmFsdWUgPSBzY2hlbWEgJiYgc2NoZW1hLmdldCA/IHNjaGVtYS5nZXQoXCJlbnVtXCIpIDogbnVsbFxuICAgIGxldCBhbGxvd0VtcHR5VmFsdWUgPSAhZW51bVZhbHVlIHx8ICFyZXF1aXJlZFxuICAgIGxldCBib29sZWFuVmFsdWUgPSAhZW51bVZhbHVlICYmIFtcInRydWVcIiwgXCJmYWxzZVwiXVxuICAgIGNvbnN0IFNlbGVjdCA9IGdldENvbXBvbmVudChcIlNlbGVjdFwiKVxuXG4gICAgcmV0dXJuICg8U2VsZWN0IGNsYXNzTmFtZT17IGVycm9ycy5sZW5ndGggPyBcImludmFsaWRcIiA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPXsgZXJyb3JzLmxlbmd0aCA/IGVycm9ycyA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXsgU3RyaW5nKHZhbHVlKSB9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXsgZGlzYWJsZWQgfVxuICAgICAgICAgICAgICAgICAgICBhbGxvd2VkVmFsdWVzPXsgZW51bVZhbHVlID8gWy4uLmVudW1WYWx1ZV0gOiBib29sZWFuVmFsdWUgfVxuICAgICAgICAgICAgICAgICAgICBhbGxvd0VtcHR5VmFsdWU9eyBhbGxvd0VtcHR5VmFsdWUgfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17IHRoaXMub25FbnVtQ2hhbmdlIH0vPilcbiAgfVxufVxuXG5jb25zdCBzdHJpbmdpZnlPYmplY3RFcnJvcnMgPSAoZXJyb3JzKSA9PiB7XG4gIHJldHVybiBlcnJvcnMubWFwKGVyciA9PiB7XG4gICAgY29uc3QgbWV0YSA9IGVyci5wcm9wS2V5ICE9PSB1bmRlZmluZWQgPyBlcnIucHJvcEtleSA6IGVyci5pbmRleFxuICAgIGxldCBzdHJpbmdFcnJvciA9IHR5cGVvZiBlcnIgPT09IFwic3RyaW5nXCIgPyBlcnIgOiB0eXBlb2YgZXJyLmVycm9yID09PSBcInN0cmluZ1wiID8gZXJyLmVycm9yIDogbnVsbFxuXG4gICAgaWYoIW1ldGEgJiYgc3RyaW5nRXJyb3IpIHtcbiAgICAgIHJldHVybiBzdHJpbmdFcnJvclxuICAgIH1cbiAgICBsZXQgY3VycmVudEVycm9yID0gZXJyLmVycm9yXG4gICAgbGV0IHBhdGggPSBgLyR7ZXJyLnByb3BLZXl9YFxuICAgIHdoaWxlKHR5cGVvZiBjdXJyZW50RXJyb3IgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGNvbnN0IHBhcnQgPSBjdXJyZW50RXJyb3IucHJvcEtleSAhPT0gdW5kZWZpbmVkID8gY3VycmVudEVycm9yLnByb3BLZXkgOiBjdXJyZW50RXJyb3IuaW5kZXhcbiAgICAgIGlmKHBhcnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgcGF0aCArPSBgLyR7cGFydH1gXG4gICAgICBpZiAoIWN1cnJlbnRFcnJvci5lcnJvcikge1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY3VycmVudEVycm9yID0gY3VycmVudEVycm9yLmVycm9yXG4gICAgfVxuICAgIHJldHVybiBgJHtwYXRofTogJHtjdXJyZW50RXJyb3J9YFxuICB9KVxufVxuXG5leHBvcnQgY2xhc3MgSnNvblNjaGVtYV9vYmplY3QgZXh0ZW5kcyBQdXJlQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKVxuICB9XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IEpzb25TY2hlbWFQcm9wU2hhcGVcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IEpzb25TY2hlbWFEZWZhdWx0UHJvcHNcblxuICBvbkNoYW5nZSA9ICh2YWx1ZSkgPT4ge1xuICAgIHRoaXMucHJvcHMub25DaGFuZ2UodmFsdWUpXG4gIH1cblxuICBoYW5kbGVPbkNoYW5nZSA9IGUgPT4ge1xuICAgIGNvbnN0IGlucHV0VmFsdWUgPSBlLnRhcmdldC52YWx1ZVxuXG4gICAgdGhpcy5vbkNoYW5nZShpbnB1dFZhbHVlKVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7XG4gICAgICBnZXRDb21wb25lbnQsXG4gICAgICB2YWx1ZSxcbiAgICAgIGVycm9ycyxcbiAgICAgIGRpc2FibGVkXG4gICAgfSA9IHRoaXMucHJvcHNcblxuICAgIGNvbnN0IFRleHRBcmVhID0gZ2V0Q29tcG9uZW50KFwiVGV4dEFyZWFcIilcbiAgICBlcnJvcnMgPSBlcnJvcnMudG9KUyA/IGVycm9ycy50b0pTKCkgOiBBcnJheS5pc0FycmF5KGVycm9ycykgPyBlcnJvcnMgOiBbXVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUZXh0QXJlYVxuICAgICAgICAgIGNsYXNzTmFtZT17Y3goeyBpbnZhbGlkOiBlcnJvcnMubGVuZ3RoIH0pfVxuICAgICAgICAgIHRpdGxlPXsgZXJyb3JzLmxlbmd0aCA/IHN0cmluZ2lmeU9iamVjdEVycm9ycyhlcnJvcnMpLmpvaW4oXCIsIFwiKSA6IFwiXCJ9XG4gICAgICAgICAgdmFsdWU9e3N0cmluZ2lmeSh2YWx1ZSl9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIG9uQ2hhbmdlPXsgdGhpcy5oYW5kbGVPbkNoYW5nZSB9Lz5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuXG5mdW5jdGlvbiB2YWx1ZU9yRW1wdHlMaXN0KHZhbHVlKSB7XG4gIHJldHVybiBMaXN0LmlzTGlzdCh2YWx1ZSkgPyB2YWx1ZSA6IEFycmF5LmlzQXJyYXkodmFsdWUpID8gZnJvbUpTKHZhbHVlKSA6IExpc3QoKVxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCB7IGltbXV0YWJsZVRvSlMgfSBmcm9tIFwiY29yZS91dGlsc1wiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuXG5leHBvcnQgY29uc3QgTW9kZWxFeHRlbnNpb25zID0gKHsgZXh0ZW5zaW9ucywgcHJvcENsYXNzID0gXCJcIiB9KSA9PiB7XG4gIHJldHVybiBleHRlbnNpb25zXG4gICAgLmVudHJ5U2VxKClcbiAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRWYWx1ZSA9IGltbXV0YWJsZVRvSlModmFsdWUpID8/IG51bGxcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPHRyIGtleT17a2V5fSBjbGFzc05hbWU9e3Byb3BDbGFzc30+XG4gICAgICAgICAgPHRkPntrZXl9PC90ZD5cbiAgICAgICAgICA8dGQ+e0pTT04uc3RyaW5naWZ5KG5vcm1hbGl6ZWRWYWx1ZSl9PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIClcbiAgICB9KVxuICAgIC50b0FycmF5KClcbn1cblxuTW9kZWxFeHRlbnNpb25zLnByb3BUeXBlcyA9IHtcbiAgZXh0ZW5zaW9uczogSW1Qcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gIHByb3BDbGFzczogUHJvcFR5cGVzLnN0cmluZyxcbn1cbiIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImRlZmF1bHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfaXNQbGFpbk9iamVjdF8xMTZmMjI0M19fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBNYXAgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCBpc1BsYWluT2JqZWN0IGZyb20gXCJsb2Rhc2gvaXNQbGFpbk9iamVjdFwiXG5pbXBvcnQgeyBpbW11dGFibGVUb0pTIH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuXG5leHBvcnQgY29uc3QgaGFzU2NoZW1hVHlwZSA9IChzY2hlbWEsIHR5cGUpID0+IHtcbiAgY29uc3QgaXNTY2hlbWFJbW11dGFibGUgPSBNYXAuaXNNYXAoc2NoZW1hKVxuXG4gIGlmICghaXNTY2hlbWFJbW11dGFibGUgJiYgIWlzUGxhaW5PYmplY3Qoc2NoZW1hKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY29uc3Qgc2NoZW1hVHlwZSA9IGlzU2NoZW1hSW1tdXRhYmxlID8gc2NoZW1hLmdldChcInR5cGVcIikgOiBzY2hlbWEudHlwZVxuXG4gIHJldHVybiAoXG4gICAgdHlwZSA9PT0gc2NoZW1hVHlwZSB8fCAoQXJyYXkuaXNBcnJheSh0eXBlKSAmJiB0eXBlLmluY2x1ZGVzKHNjaGVtYVR5cGUpKVxuICApXG59XG5cbmNvbnN0IGdldFR5cGUgPSAoc2NoZW1hLCBwcm9jZXNzZWRTY2hlbWFzID0gbmV3IFdlYWtTZXQoKSkgPT4ge1xuICBpZiAoc2NoZW1hID09IG51bGwpIHtcbiAgICByZXR1cm4gXCJhbnlcIlxuICB9XG5cbiAgaWYgKHByb2Nlc3NlZFNjaGVtYXMuaGFzKHNjaGVtYSkpIHtcbiAgICByZXR1cm4gXCJhbnlcIiAvLyBkZXRlY3QgYSBjeWNsZVxuICB9XG5cbiAgcHJvY2Vzc2VkU2NoZW1hcy5hZGQoc2NoZW1hKVxuXG4gIGNvbnN0IHsgdHlwZSwgaXRlbXMgfSA9IHNjaGVtYVxuXG4gIGNvbnN0IGdldEFycmF5VHlwZSA9ICgpID0+IHtcbiAgICBpZiAoaXRlbXMpIHtcbiAgICAgIGNvbnN0IGl0ZW1zVHlwZSA9IGdldFR5cGUoaXRlbXMsIHByb2Nlc3NlZFNjaGVtYXMpXG4gICAgICByZXR1cm4gYGFycmF5PCR7aXRlbXNUeXBlfT5gXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBcImFycmF5PGFueT5cIlxuICAgIH1cbiAgfVxuXG4gIGlmIChPYmplY3QuaGFzT3duKHNjaGVtYSwgXCJpdGVtc1wiKSkge1xuICAgIHJldHVybiBnZXRBcnJheVR5cGUoKVxuICB9XG4gIHJldHVybiB0eXBlXG59XG5cbmV4cG9ydCBjb25zdCBnZXRTY2hlbWFPYmplY3RUeXBlTGFiZWwgPSAoc2NoZW1hKSA9PlxuICBnZXRUeXBlKGltbXV0YWJsZVRvSlMoc2NoZW1hKSlcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBNb2RlbENvbGxhcHNlIGZyb20gXCIuL2NvbXBvbmVudHMvbW9kZWwtY29sbGFwc2VcIlxuaW1wb3J0IE1vZGVsRXhhbXBsZSBmcm9tIFwiLi9jb21wb25lbnRzL21vZGVsLWV4YW1wbGVcIlxuaW1wb3J0IE1vZGVsV3JhcHBlciBmcm9tIFwiLi9jb21wb25lbnRzL21vZGVsLXdyYXBwZXJcIlxuaW1wb3J0IE1vZGVsIGZyb20gXCIuL2NvbXBvbmVudHMvbW9kZWxcIlxuaW1wb3J0IE1vZGVscyBmcm9tIFwiLi9jb21wb25lbnRzL21vZGVsc1wiXG5pbXBvcnQgRW51bU1vZGVsIGZyb20gXCIuL2NvbXBvbmVudHMvZW51bS1tb2RlbFwiXG5pbXBvcnQgT2JqZWN0TW9kZWwgZnJvbSBcIi4vY29tcG9uZW50cy9vYmplY3QtbW9kZWxcIlxuaW1wb3J0IEFycmF5TW9kZWwgZnJvbSBcIi4vY29tcG9uZW50cy9hcnJheS1tb2RlbFwiXG5pbXBvcnQgUHJpbWl0aXZlTW9kZWwgZnJvbSBcIi4vY29tcG9uZW50cy9wcmltaXRpdmUtbW9kZWxcIlxuaW1wb3J0IFNjaGVtZXMgZnJvbSBcIi4vY29tcG9uZW50cy9zY2hlbWVzXCJcbmltcG9ydCBTY2hlbWVzQ29udGFpbmVyIGZyb20gXCIuL2NvbnRhaW5lcnMvc2NoZW1lc1wiXG5pbXBvcnQgKiBhcyBKU09OU2NoZW1hQ29tcG9uZW50cyBmcm9tIFwiLi9jb21wb25lbnRzL2pzb24tc2NoZW1hLWNvbXBvbmVudHNcIlxuaW1wb3J0IHsgTW9kZWxFeHRlbnNpb25zIH0gZnJvbSBcIi4vY29tcG9uZW50cy9tb2RlbC1leHRlbnNpb25zXCJcbmltcG9ydCB7IGdldFNjaGVtYU9iamVjdFR5cGVMYWJlbCwgaGFzU2NoZW1hVHlwZSB9IGZyb20gXCIuL2ZuXCJcblxuY29uc3QgSlNPTlNjaGVtYTVQbHVnaW4gPSAoKSA9PiAoe1xuICBjb21wb25lbnRzOiB7XG4gICAgbW9kZWxFeGFtcGxlOiBNb2RlbEV4YW1wbGUsXG4gICAgTW9kZWxXcmFwcGVyLFxuICAgIE1vZGVsQ29sbGFwc2UsXG4gICAgTW9kZWwsXG4gICAgTW9kZWxzLFxuICAgIEVudW1Nb2RlbCxcbiAgICBPYmplY3RNb2RlbCxcbiAgICBBcnJheU1vZGVsLFxuICAgIFByaW1pdGl2ZU1vZGVsLFxuICAgIE1vZGVsRXh0ZW5zaW9ucyxcbiAgICBzY2hlbWVzOiBTY2hlbWVzLFxuICAgIFNjaGVtZXNDb250YWluZXIsXG4gICAgLi4uSlNPTlNjaGVtYUNvbXBvbmVudHMsXG4gIH0sXG4gIGZuOiB7XG4gICAgaGFzU2NoZW1hVHlwZSxcbiAgICBnZXRTY2hlbWFPYmplY3RUeXBlTGFiZWwsXG4gIH0sXG59KVxuXG5leHBvcnQgZGVmYXVsdCBKU09OU2NoZW1hNVBsdWdpblxuIiwidmFyIHggPSBmdW5jdGlvbih5KSB7XG5cdHZhciB4ID0ge307IF9fd2VicGFja19yZXF1aXJlX18uZCh4LCB5KTsgcmV0dXJuIHhcbn0gXG52YXIgeSA9IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgeyByZXR1cm4geDsgfTsgfVxudmFyIF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wiZGVmYXVsdFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JhbmRleHBfX1tcImRlZmF1bHRcIl07IH0gfSk7IiwidmFyIHggPSBmdW5jdGlvbih5KSB7XG5cdHZhciB4ID0ge307IF9fd2VicGFja19yZXF1aXJlX18uZCh4LCB5KTsgcmV0dXJuIHhcbn0gXG52YXIgeSA9IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgeyByZXR1cm4geDsgfTsgfVxudmFyIF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wiZGVmYXVsdFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX2xvZGFzaF9pc0VtcHR5X2UxMDlmZDZiX19bXCJkZWZhdWx0XCJdOyB9IH0pOyIsImltcG9ydCBtZW1vaXplIGZyb20gXCJsb2Rhc2gvbWVtb2l6ZVwiXG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyBleHRlbnNpb24gb24gdG9wIG9mIGxvZGFzaC5tZW1vaXplLlxuICogSXQgdXNlcyBhbGwgdGhlIGFyZ3VtZW50cyBvZiB0aGUgYGZuYCBhcyB0aGUgY2FjaGUga2V5IGluc3RlYWQgb2YganVzdCB0aGUgZmlyc3Qgb25lLlxuICogSWYgcmVzb2x2ZXIgaXMgcHJvdmlkZWQsIGl0IGRldGVybWluZXMgdGhlIGNhY2hlIGtleSBmb3JcbiAqIHN0b3JpbmcgdGhlIHJlc3VsdCBiYXNlZCBvbiB0aGUgYXJndW1lbnRzIHByb3ZpZGVkIHRvIHRoZSBtZW1vaXplZCBmdW5jdGlvbi5cbiAqL1xuXG5jb25zdCBzaGFsbG93QXJyYXlFcXVhbHMgPSAoYSkgPT4gKGIpID0+IHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYSkgJiYgQXJyYXkuaXNBcnJheShiKVxuICAgICYmIGEubGVuZ3RoID09PSBiLmxlbmd0aFxuICAgICYmIGEuZXZlcnkoKHZhbCwgaW5kZXgpID0+IHZhbCA9PT0gYltpbmRleF0pXG59XG5cbmNvbnN0IGxpc3QgPSAoLi4uYXJncykgPT4gYXJnc1xuXG5jbGFzcyBDYWNoZSBleHRlbmRzIE1hcCB7XG4gIGRlbGV0ZShrZXkpIHtcbiAgICBjb25zdCBrZXlzID0gQXJyYXkuZnJvbSh0aGlzLmtleXMoKSlcbiAgICBjb25zdCBmb3VuZEtleSA9IGtleXMuZmluZChzaGFsbG93QXJyYXlFcXVhbHMoa2V5KSlcbiAgICByZXR1cm4gc3VwZXIuZGVsZXRlKGZvdW5kS2V5KVxuICB9XG5cbiAgZ2V0KGtleSkge1xuICAgIGNvbnN0IGtleXMgPSBBcnJheS5mcm9tKHRoaXMua2V5cygpKVxuICAgIGNvbnN0IGZvdW5kS2V5ID0ga2V5cy5maW5kKHNoYWxsb3dBcnJheUVxdWFscyhrZXkpKVxuICAgIHJldHVybiBzdXBlci5nZXQoZm91bmRLZXkpXG4gIH1cblxuICBoYXMoa2V5KSB7XG4gICAgY29uc3Qga2V5cyA9IEFycmF5LmZyb20odGhpcy5rZXlzKCkpXG4gICAgcmV0dXJuIGtleXMuZmluZEluZGV4KHNoYWxsb3dBcnJheUVxdWFscyhrZXkpKSAhPT0gLTFcbiAgfVxufVxuXG5jb25zdCBtZW1vaXplTiA9IChmbiwgcmVzb2x2ZXIgPSBsaXN0KSA9PiB7XG4gIGNvbnN0IHsgQ2FjaGU6IE9yaWdpbmFsQ2FjaGUgfSA9IG1lbW9pemVcbiAgbWVtb2l6ZS5DYWNoZSA9IENhY2hlXG5cbiAgY29uc3QgbWVtb2l6ZWQgPSBtZW1vaXplKGZuLCByZXNvbHZlcilcblxuICBtZW1vaXplLkNhY2hlID0gT3JpZ2luYWxDYWNoZVxuXG4gIHJldHVybiBtZW1vaXplZFxufVxuXG5leHBvcnQgZGVmYXVsdCBtZW1vaXplTlxuIiwiaW1wb3J0IFhNTCBmcm9tIFwieG1sXCJcbmltcG9ydCBSYW5kRXhwIGZyb20gXCJyYW5kZXhwXCJcbmltcG9ydCBpc0VtcHR5IGZyb20gXCJsb2Rhc2gvaXNFbXB0eVwiXG5pbXBvcnQgeyBkZWVwbHlTdHJpcEtleSwgaXNGdW5jLCBub3JtYWxpemVBcnJheSwgb2JqZWN0aWZ5LCBpbW11dGFibGVUb0pTIH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuaW1wb3J0IG1lbW9pemVOIGZyb20gXCJjb3JlL3V0aWxzL21lbW9pemVOXCJcblxuY29uc3QgZ2VuZXJhdGVTdHJpbmdGcm9tUmVnZXggPSAocGF0dGVybikgPT4ge1xuICB0cnkge1xuICAgIC8qKlxuICAgICAqIEFwcGx5aW5nIG1heGltdW0gdmFsdWUgKDEwMCkgdG8gbnVtYmVycyBmcm9tIHJlZ2V4IHBhdHRlcm5zIHRvIGF2b2lkIFJlRG9TOlxuICAgICAqIDEuIHt4fVxuICAgICAqIDIuIHt4LH1cbiAgICAgKiAzLiB7LHl9XG4gICAgICogNC4ge3gseX1cbiAgICAgKi9cbiAgICBjb25zdCBwYXR0ZXJuU2FuaXRpemVyID1cbiAgICAgIC8oPzw9KD88IVxcXFwpXFx7KShcXGR7Myx9KSg/PVxcfSl8KD88PSg/PCFcXFxcKVxce1xcZCosKShcXGR7Myx9KSg/PVxcfSl8KD88PSg/PCFcXFxcKVxceykoXFxkezMsfSkoPz0sXFxkKlxcfSkvZ1xuICAgIGNvbnN0IHNhZmVQYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKHBhdHRlcm5TYW5pdGl6ZXIsIFwiMTAwXCIpXG4gICAgY29uc3QgcmFuZGV4cEluc3RhbmNlID0gbmV3IFJhbmRFeHAoc2FmZVBhdHRlcm4pXG4gICAgcmFuZGV4cEluc3RhbmNlLm1heCA9IDEwMFxuICAgIHJldHVybiByYW5kZXhwSW5zdGFuY2UuZ2VuKClcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIEludmFsaWQgcmVnZXggc2hvdWxkIG5vdCBjYXVzZSBhIGNyYXNoIChyZWdleCBzeW50YXggdmFyaWVzIGFjcm9zcyBsYW5ndWFnZXMpXG4gICAgcmV0dXJuIFwic3RyaW5nXCJcbiAgfVxufVxuXG5jb25zdCBwcmltaXRpdmVzID0ge1xuICBcInN0cmluZ1wiOiAoc2NoZW1hKSA9PiBzY2hlbWEucGF0dGVybiA/IGdlbmVyYXRlU3RyaW5nRnJvbVJlZ2V4KHNjaGVtYS5wYXR0ZXJuKSA6IFwic3RyaW5nXCIsXG4gIFwic3RyaW5nX2VtYWlsXCI6ICgpID0+IFwidXNlckBleGFtcGxlLmNvbVwiLFxuICBcInN0cmluZ19kYXRlLXRpbWVcIjogKCkgPT4gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICBcInN0cmluZ19kYXRlXCI6ICgpID0+IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zdWJzdHJpbmcoMCwgMTApLFxuICBcInN0cmluZ190aW1lXCI6ICgpID0+IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zdWJzdHJpbmcoMTEpLFxuICBcInN0cmluZ191dWlkXCI6ICgpID0+IFwiM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2XCIsXG4gIFwic3RyaW5nX2hvc3RuYW1lXCI6ICgpID0+IFwiZXhhbXBsZS5jb21cIixcbiAgXCJzdHJpbmdfaXB2NFwiOiAoKSA9PiBcIjE5OC41MS4xMDAuNDJcIixcbiAgXCJzdHJpbmdfaXB2NlwiOiAoKSA9PiBcIjIwMDE6MGRiODo1Yjk2OjAwMDA6MDAwMDo0MjZmOjhlMTc6NjQyYVwiLFxuICBcIm51bWJlclwiOiAoKSA9PiAwLFxuICBcIm51bWJlcl9mbG9hdFwiOiAoKSA9PiAwLjAsXG4gIFwiaW50ZWdlclwiOiAoKSA9PiAwLFxuICBcImJvb2xlYW5cIjogKHNjaGVtYSkgPT4gdHlwZW9mIHNjaGVtYS5kZWZhdWx0ID09PSBcImJvb2xlYW5cIiA/IHNjaGVtYS5kZWZhdWx0IDogdHJ1ZVxufVxuXG5jb25zdCBwcmltaXRpdmUgPSAoc2NoZW1hKSA9PiB7XG4gIHNjaGVtYSA9IG9iamVjdGlmeShzY2hlbWEpXG4gIGxldCB7IHR5cGUsIGZvcm1hdCB9ID0gc2NoZW1hXG5cbiAgbGV0IGZuID0gcHJpbWl0aXZlc1tgJHt0eXBlfV8ke2Zvcm1hdH1gXSB8fCBwcmltaXRpdmVzW3R5cGVdXG5cbiAgaWYoaXNGdW5jKGZuKSlcbiAgICByZXR1cm4gZm4oc2NoZW1hKVxuXG4gIHJldHVybiBcIlVua25vd24gVHlwZTogXCIgKyBzY2hlbWEudHlwZVxufVxuXG4vLyBkbyBhIGNvdXBsZSBvZiBxdWljayBzYW5pdHkgdGVzdHMgdG8gZW5zdXJlIHRoZSB2YWx1ZVxuLy8gbG9va3MgbGlrZSBhICQkcmVmIHRoYXQgc3dhZ2dlci1jbGllbnQgZ2VuZXJhdGVzLlxuY29uc3Qgc2FuaXRpemVSZWYgPSAodmFsdWUpID0+IGRlZXBseVN0cmlwS2V5KHZhbHVlLCBcIiQkcmVmXCIsICh2YWwpID0+XG4gIHR5cGVvZiB2YWwgPT09IFwic3RyaW5nXCIgJiYgdmFsLmluZGV4T2YoXCIjXCIpID4gLTEpXG5cbmNvbnN0IG9iamVjdENvbnRyYWN0cyA9IFtcIm1heFByb3BlcnRpZXNcIiwgXCJtaW5Qcm9wZXJ0aWVzXCJdXG5jb25zdCBhcnJheUNvbnRyYWN0cyA9IFtcIm1pbkl0ZW1zXCIsIFwibWF4SXRlbXNcIl1cbmNvbnN0IG51bWJlckNvbnRyYWN0cyA9IFtcbiAgXCJtaW5pbXVtXCIsXG4gIFwibWF4aW11bVwiLFxuICBcImV4Y2x1c2l2ZU1pbmltdW1cIixcbiAgXCJleGNsdXNpdmVNYXhpbXVtXCJcbl1cbmNvbnN0IHN0cmluZ0NvbnRyYWN0cyA9IFtcIm1pbkxlbmd0aFwiLCBcIm1heExlbmd0aFwiXVxuXG5leHBvcnQgY29uc3QgbWVyZ2VKc29uU2NoZW1hID0gKHRhcmdldCwgc291cmNlLCBjb25maWcgPSB7fSkgPT4ge1xuICBjb25zdCBtZXJnZWQgPSB7IC4uLnRhcmdldCB9XG5cbiAgY29uc3Qgc2V0SWZOb3REZWZpbmVkSW5UYXJnZXQgPSAoa2V5KSA9PiB7XG4gICAgaWYobWVyZ2VkW2tleV0gPT09IHVuZGVmaW5lZCAmJiBzb3VyY2Vba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBtZXJnZWRba2V5XSA9IHNvdXJjZVtrZXldXG4gICAgfVxuICB9XG5cbiAgW1xuICAgIFwiZXhhbXBsZVwiLFxuICAgIFwiZGVmYXVsdFwiLFxuICAgIFwiZW51bVwiLFxuICAgIFwieG1sXCIsXG4gICAgXCJ0eXBlXCIsXG4gICAgLi4ub2JqZWN0Q29udHJhY3RzLFxuICAgIC4uLmFycmF5Q29udHJhY3RzLFxuICAgIC4uLm51bWJlckNvbnRyYWN0cyxcbiAgICAuLi5zdHJpbmdDb250cmFjdHMsXG4gIF0uZm9yRWFjaChrZXkgPT4gc2V0SWZOb3REZWZpbmVkSW5UYXJnZXQoa2V5KSlcblxuICBpZihzb3VyY2UucmVxdWlyZWQgIT09IHVuZGVmaW5lZCAmJiBBcnJheS5pc0FycmF5KHNvdXJjZS5yZXF1aXJlZCkpIHtcbiAgICBpZihtZXJnZWQucmVxdWlyZWQgPT09IHVuZGVmaW5lZCB8fCAhbWVyZ2VkLnJlcXVpcmVkLmxlbmd0aCkge1xuICAgICAgbWVyZ2VkLnJlcXVpcmVkID0gW11cbiAgICB9XG4gICAgc291cmNlLnJlcXVpcmVkLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGlmKG1lcmdlZC5yZXF1aXJlZC5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgbWVyZ2VkLnJlcXVpcmVkLnB1c2goa2V5KVxuICAgIH0pXG4gIH1cbiAgaWYoc291cmNlLnByb3BlcnRpZXMpIHtcbiAgICBpZighbWVyZ2VkLnByb3BlcnRpZXMpIHtcbiAgICAgIG1lcmdlZC5wcm9wZXJ0aWVzID0ge31cbiAgICB9XG4gICAgbGV0IHByb3BzID0gb2JqZWN0aWZ5KHNvdXJjZS5wcm9wZXJ0aWVzKVxuICAgIGZvciAobGV0IHByb3BOYW1lIGluIHByb3BzKSB7XG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcywgcHJvcE5hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoIHByb3BzW3Byb3BOYW1lXSAmJiBwcm9wc1twcm9wTmFtZV0uZGVwcmVjYXRlZCApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmICggcHJvcHNbcHJvcE5hbWVdICYmIHByb3BzW3Byb3BOYW1lXS5yZWFkT25seSAmJiAhY29uZmlnLmluY2x1ZGVSZWFkT25seSApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmICggcHJvcHNbcHJvcE5hbWVdICYmIHByb3BzW3Byb3BOYW1lXS53cml0ZU9ubHkgJiYgIWNvbmZpZy5pbmNsdWRlV3JpdGVPbmx5ICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYoIW1lcmdlZC5wcm9wZXJ0aWVzW3Byb3BOYW1lXSkge1xuICAgICAgICBtZXJnZWQucHJvcGVydGllc1twcm9wTmFtZV0gPSBwcm9wc1twcm9wTmFtZV1cbiAgICAgICAgaWYoIXNvdXJjZS5yZXF1aXJlZCAmJiBBcnJheS5pc0FycmF5KHNvdXJjZS5yZXF1aXJlZCkgJiYgc291cmNlLnJlcXVpcmVkLmluZGV4T2YocHJvcE5hbWUpICE9PSAtMSkge1xuICAgICAgICAgIGlmKCFtZXJnZWQucmVxdWlyZWQpIHtcbiAgICAgICAgICAgIG1lcmdlZC5yZXF1aXJlZCA9IFtwcm9wTmFtZV1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWVyZ2VkLnJlcXVpcmVkLnB1c2gocHJvcE5hbWUpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmKHNvdXJjZS5pdGVtcykge1xuICAgIGlmKCFtZXJnZWQuaXRlbXMpIHtcbiAgICAgIG1lcmdlZC5pdGVtcyA9IHt9XG4gICAgfVxuICAgIG1lcmdlZC5pdGVtcyA9IG1lcmdlSnNvblNjaGVtYShtZXJnZWQuaXRlbXMsIHNvdXJjZS5pdGVtcywgY29uZmlnKVxuICB9XG5cbiAgcmV0dXJuIG1lcmdlZFxufVxuXG5leHBvcnQgY29uc3Qgc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMgPSAoc2NoZW1hLCBjb25maWc9e30sIGV4YW1wbGVPdmVycmlkZSA9IHVuZGVmaW5lZCwgcmVzcGVjdFhNTCA9IGZhbHNlKSA9PiB7XG4gIGlmKHNjaGVtYSAmJiBpc0Z1bmMoc2NoZW1hLnRvSlMpKVxuICAgIHNjaGVtYSA9IHNjaGVtYS50b0pTKClcbiAgbGV0IHVzZVBsYWluVmFsdWUgPSBleGFtcGxlT3ZlcnJpZGUgIT09IHVuZGVmaW5lZCB8fCBzY2hlbWEgJiYgc2NoZW1hLmV4YW1wbGUgIT09IHVuZGVmaW5lZCB8fCBzY2hlbWEgJiYgc2NoZW1hLmRlZmF1bHQgIT09IHVuZGVmaW5lZFxuICAvLyBmaXJzdCBjaGVjayBpZiB0aGVyZSBpcyB0aGUgbmVlZCBvZiBjb21iaW5pbmcgdGhpcyBzY2hlbWEgd2l0aCBvdGhlcnMgcmVxdWlyZWQgYnkgYWxsT2ZcbiAgY29uc3QgaGFzT25lT2YgPSAhdXNlUGxhaW5WYWx1ZSAmJiBzY2hlbWEgJiYgc2NoZW1hLm9uZU9mICYmIHNjaGVtYS5vbmVPZi5sZW5ndGggPiAwXG4gIGNvbnN0IGhhc0FueU9mID0gIXVzZVBsYWluVmFsdWUgJiYgc2NoZW1hICYmIHNjaGVtYS5hbnlPZiAmJiBzY2hlbWEuYW55T2YubGVuZ3RoID4gMFxuICBpZighdXNlUGxhaW5WYWx1ZSAmJiAoaGFzT25lT2YgfHwgaGFzQW55T2YpKSB7XG4gICAgY29uc3Qgc2NoZW1hVG9BZGQgPSBvYmplY3RpZnkoaGFzT25lT2ZcbiAgICAgID8gc2NoZW1hLm9uZU9mWzBdXG4gICAgICA6IHNjaGVtYS5hbnlPZlswXVxuICAgIClcbiAgICBzY2hlbWEgPSBtZXJnZUpzb25TY2hlbWEoc2NoZW1hLCBzY2hlbWFUb0FkZCwgY29uZmlnKVxuICAgIGlmKCFzY2hlbWEueG1sICYmIHNjaGVtYVRvQWRkLnhtbCkge1xuICAgICAgc2NoZW1hLnhtbCA9IHNjaGVtYVRvQWRkLnhtbFxuICAgIH1cbiAgICBpZihzY2hlbWEuZXhhbXBsZSAhPT0gdW5kZWZpbmVkICYmIHNjaGVtYVRvQWRkLmV4YW1wbGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdXNlUGxhaW5WYWx1ZSA9IHRydWVcbiAgICB9IGVsc2UgaWYoc2NoZW1hVG9BZGQucHJvcGVydGllcykge1xuICAgICAgaWYoIXNjaGVtYS5wcm9wZXJ0aWVzKSB7XG4gICAgICAgIHNjaGVtYS5wcm9wZXJ0aWVzID0ge31cbiAgICAgIH1cbiAgICAgIGxldCBwcm9wcyA9IG9iamVjdGlmeShzY2hlbWFUb0FkZC5wcm9wZXJ0aWVzKVxuICAgICAgZm9yIChsZXQgcHJvcE5hbWUgaW4gcHJvcHMpIHtcbiAgICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIHByb3BOYW1lKSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCBwcm9wc1twcm9wTmFtZV0gJiYgcHJvcHNbcHJvcE5hbWVdLmRlcHJlY2F0ZWQgKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBpZiAoIHByb3BzW3Byb3BOYW1lXSAmJiBwcm9wc1twcm9wTmFtZV0ucmVhZE9ubHkgJiYgIWNvbmZpZy5pbmNsdWRlUmVhZE9ubHkgKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBpZiAoIHByb3BzW3Byb3BOYW1lXSAmJiBwcm9wc1twcm9wTmFtZV0ud3JpdGVPbmx5ICYmICFjb25maWcuaW5jbHVkZVdyaXRlT25seSApIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGlmKCFzY2hlbWEucHJvcGVydGllc1twcm9wTmFtZV0pIHtcbiAgICAgICAgICBzY2hlbWEucHJvcGVydGllc1twcm9wTmFtZV0gPSBwcm9wc1twcm9wTmFtZV1cbiAgICAgICAgICBpZighc2NoZW1hVG9BZGQucmVxdWlyZWQgJiYgQXJyYXkuaXNBcnJheShzY2hlbWFUb0FkZC5yZXF1aXJlZCkgJiYgc2NoZW1hVG9BZGQucmVxdWlyZWQuaW5kZXhPZihwcm9wTmFtZSkgIT09IC0xKSB7XG4gICAgICAgICAgICBpZighc2NoZW1hLnJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIHNjaGVtYS5yZXF1aXJlZCA9IFtwcm9wTmFtZV1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNjaGVtYS5yZXF1aXJlZC5wdXNoKHByb3BOYW1lKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBjb25zdCBfYXR0ciA9IHt9XG4gIGxldCB7IHhtbCwgdHlwZSwgZXhhbXBsZSwgcHJvcGVydGllcywgYWRkaXRpb25hbFByb3BlcnRpZXMsIGl0ZW1zIH0gPSBzY2hlbWEgfHwge31cbiAgbGV0IHsgaW5jbHVkZVJlYWRPbmx5LCBpbmNsdWRlV3JpdGVPbmx5IH0gPSBjb25maWdcbiAgeG1sID0geG1sIHx8IHt9XG4gIGxldCB7IG5hbWUsIHByZWZpeCwgbmFtZXNwYWNlIH0gPSB4bWxcbiAgbGV0IGRpc3BsYXlOYW1lXG4gIGxldCByZXMgPSB7fVxuXG4gIC8vIHNldCB4bWwgbmFtaW5nIGFuZCBhdHRyaWJ1dGVzXG4gIGlmKHJlc3BlY3RYTUwpIHtcbiAgICBuYW1lID0gbmFtZSB8fCBcIm5vdGFnbmFtZVwiXG4gICAgLy8gYWRkIHByZWZpeCB0byBuYW1lIGlmIGV4aXN0c1xuICAgIGRpc3BsYXlOYW1lID0gKHByZWZpeCA/IHByZWZpeCArIFwiOlwiIDogXCJcIikgKyBuYW1lXG4gICAgaWYgKCBuYW1lc3BhY2UgKSB7XG4gICAgICAvL2FkZCBwcmVmaXggdG8gbmFtZXNwYWNlIGlmIGV4aXN0c1xuICAgICAgbGV0IG5hbWVzcGFjZVByZWZpeCA9IHByZWZpeCA/ICggXCJ4bWxuczpcIiArIHByZWZpeCApIDogXCJ4bWxuc1wiXG4gICAgICBfYXR0cltuYW1lc3BhY2VQcmVmaXhdID0gbmFtZXNwYWNlXG4gICAgfVxuICB9XG5cbiAgLy8gaW5pdCB4bWwgZGVmYXVsdCByZXNwb25zZSBzYW1wbGUgb2JqXG4gIGlmKHJlc3BlY3RYTUwpIHtcbiAgICByZXNbZGlzcGxheU5hbWVdID0gW11cbiAgfVxuXG4gIGNvbnN0IHNjaGVtYUhhc0FueSA9IChrZXlzKSA9PiBrZXlzLnNvbWUoa2V5ID0+IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzY2hlbWEsIGtleSkpXG4gIC8vIHRyeSByZWNvdmVyIG1pc3NpbmcgdHlwZVxuICBpZihzY2hlbWEgJiYgIXR5cGUpIHtcbiAgICBpZihwcm9wZXJ0aWVzIHx8IGFkZGl0aW9uYWxQcm9wZXJ0aWVzIHx8IHNjaGVtYUhhc0FueShvYmplY3RDb250cmFjdHMpKSB7XG4gICAgICB0eXBlID0gXCJvYmplY3RcIlxuICAgIH0gZWxzZSBpZihpdGVtcyB8fCBzY2hlbWFIYXNBbnkoYXJyYXlDb250cmFjdHMpKSB7XG4gICAgICB0eXBlID0gXCJhcnJheVwiXG4gICAgfSBlbHNlIGlmKHNjaGVtYUhhc0FueShudW1iZXJDb250cmFjdHMpKSB7XG4gICAgICB0eXBlID0gXCJudW1iZXJcIlxuICAgICAgc2NoZW1hLnR5cGUgPSBcIm51bWJlclwiXG4gICAgfSBlbHNlIGlmKCF1c2VQbGFpblZhbHVlICYmICFzY2hlbWEuZW51bSl7XG4gICAgICAvLyBpbXBsaWNpdCBjb3ZlciBzY2hlbWFIYXNBbnkoc3RyaW5nQ29udHJhY3RzKSBvciBBIHNjaGVtYSB3aXRob3V0IGEgdHlwZSBtYXRjaGVzIGFueSBkYXRhIHR5cGUgaXM6XG4gICAgICAvLyBjb21wb25lbnRzOlxuICAgICAgLy8gICBzY2hlbWFzOlxuICAgICAgLy8gICAgIEFueVZhbHVlOlxuICAgICAgLy8gICAgICAgYW55T2Y6XG4gICAgICAvLyAgICAgICAgIC0gdHlwZTogc3RyaW5nXG4gICAgICAvLyAgICAgICAgIC0gdHlwZTogbnVtYmVyXG4gICAgICAvLyAgICAgICAgIC0gdHlwZTogaW50ZWdlclxuICAgICAgLy8gICAgICAgICAtIHR5cGU6IGJvb2xlYW5cbiAgICAgIC8vICAgICAgICAgLSB0eXBlOiBhcnJheVxuICAgICAgLy8gICAgICAgICAgIGl0ZW1zOiB7fVxuICAgICAgLy8gICAgICAgICAtIHR5cGU6IG9iamVjdFxuICAgICAgLy9cbiAgICAgIC8vIHdoaWNoIHdvdWxkIHJlc29sdmUgdG8gdHlwZTogc3RyaW5nXG4gICAgICB0eXBlID0gXCJzdHJpbmdcIlxuICAgICAgc2NoZW1hLnR5cGUgPSBcInN0cmluZ1wiXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlTWluTWF4SXRlbXMgPSAoc2FtcGxlQXJyYXkpID0+IHtcbiAgICBpZiAoc2NoZW1hPy5tYXhJdGVtcyAhPT0gbnVsbCAmJiBzY2hlbWE/Lm1heEl0ZW1zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHNhbXBsZUFycmF5ID0gc2FtcGxlQXJyYXkuc2xpY2UoMCwgc2NoZW1hPy5tYXhJdGVtcylcbiAgICB9XG4gICAgaWYgKHNjaGVtYT8ubWluSXRlbXMgIT09IG51bGwgJiYgc2NoZW1hPy5taW5JdGVtcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgaSA9IDBcbiAgICAgIHdoaWxlIChzYW1wbGVBcnJheS5sZW5ndGggPCBzY2hlbWE/Lm1pbkl0ZW1zKSB7XG4gICAgICAgIHNhbXBsZUFycmF5LnB1c2goc2FtcGxlQXJyYXlbaSsrICUgc2FtcGxlQXJyYXkubGVuZ3RoXSlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHNhbXBsZUFycmF5XG4gIH1cblxuICAvLyBhZGQgdG8gcmVzdWx0IGhlbHBlciBpbml0IGZvciB4bWwgb3IganNvblxuICBjb25zdCBwcm9wcyA9IG9iamVjdGlmeShwcm9wZXJ0aWVzKVxuICBsZXQgYWRkUHJvcGVydHlUb1Jlc3VsdFxuICBsZXQgcHJvcGVydHlBZGRlZENvdW50ZXIgPSAwXG5cbiAgY29uc3QgaGFzRXhjZWVkZWRNYXhQcm9wZXJ0aWVzID0gKCkgPT4gc2NoZW1hXG4gICAgJiYgc2NoZW1hLm1heFByb3BlcnRpZXMgIT09IG51bGwgJiYgc2NoZW1hLm1heFByb3BlcnRpZXMgIT09IHVuZGVmaW5lZFxuICAgICYmIHByb3BlcnR5QWRkZWRDb3VudGVyID49IHNjaGVtYS5tYXhQcm9wZXJ0aWVzXG5cbiAgY29uc3QgcmVxdWlyZWRQcm9wZXJ0aWVzVG9BZGQgPSAoKSA9PiB7XG4gICAgaWYoIXNjaGVtYSB8fCAhc2NoZW1hLnJlcXVpcmVkKSB7XG4gICAgICByZXR1cm4gMFxuICAgIH1cbiAgICBsZXQgYWRkZWRDb3VudCA9IDBcbiAgICBpZihyZXNwZWN0WE1MKSB7XG4gICAgICBzY2hlbWEucmVxdWlyZWQuZm9yRWFjaChrZXkgPT4gYWRkZWRDb3VudCArPVxuICAgICAgICByZXNba2V5XSA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyAwXG4gICAgICAgICAgOiAxXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHNjaGVtYS5yZXF1aXJlZC5mb3JFYWNoKGtleSA9PiBhZGRlZENvdW50ICs9XG4gICAgICAgIHJlc1tkaXNwbGF5TmFtZV0/LmZpbmQoeCA9PiB4W2tleV0gIT09IHVuZGVmaW5lZCkgPT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gMFxuICAgICAgICAgIDogMVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gc2NoZW1hLnJlcXVpcmVkLmxlbmd0aCAtIGFkZGVkQ291bnRcbiAgfVxuXG4gIGNvbnN0IGlzT3B0aW9uYWxQcm9wZXJ0eSA9IChwcm9wTmFtZSkgPT4ge1xuICAgIGlmKCFzY2hlbWEgfHwgIXNjaGVtYS5yZXF1aXJlZCB8fCAhc2NoZW1hLnJlcXVpcmVkLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgcmV0dXJuICFzY2hlbWEucmVxdWlyZWQuaW5jbHVkZXMocHJvcE5hbWUpXG4gIH1cblxuICBjb25zdCBjYW5BZGRQcm9wZXJ0eSA9IChwcm9wTmFtZSkgPT4ge1xuICAgIGlmKCFzY2hlbWEgfHwgc2NoZW1hLm1heFByb3BlcnRpZXMgPT09IG51bGwgfHwgc2NoZW1hLm1heFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgaWYoaGFzRXhjZWVkZWRNYXhQcm9wZXJ0aWVzKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICBpZighaXNPcHRpb25hbFByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgcmV0dXJuIChzY2hlbWEubWF4UHJvcGVydGllcyAtIHByb3BlcnR5QWRkZWRDb3VudGVyIC0gcmVxdWlyZWRQcm9wZXJ0aWVzVG9BZGQoKSkgPiAwXG4gIH1cblxuICBpZihyZXNwZWN0WE1MKSB7XG4gICAgYWRkUHJvcGVydHlUb1Jlc3VsdCA9IChwcm9wTmFtZSwgb3ZlcnJpZGVFID0gdW5kZWZpbmVkKSA9PiB7XG4gICAgICBpZihzY2hlbWEgJiYgcHJvcHNbcHJvcE5hbWVdKSB7XG4gICAgICAgIC8vIGNhc2UgaXQgaXMgYW4geG1sIGF0dHJpYnV0ZVxuICAgICAgICBwcm9wc1twcm9wTmFtZV0ueG1sID0gcHJvcHNbcHJvcE5hbWVdLnhtbCB8fCB7fVxuXG4gICAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0ueG1sLmF0dHJpYnV0ZSkge1xuICAgICAgICAgIGNvbnN0IGVudW1BdHRyVmFsID0gQXJyYXkuaXNBcnJheShwcm9wc1twcm9wTmFtZV0uZW51bSlcbiAgICAgICAgICAgID8gcHJvcHNbcHJvcE5hbWVdLmVudW1bMF1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgY29uc3QgYXR0ckV4YW1wbGUgPSBwcm9wc1twcm9wTmFtZV0uZXhhbXBsZVxuICAgICAgICAgIGNvbnN0IGF0dHJEZWZhdWx0ID0gcHJvcHNbcHJvcE5hbWVdLmRlZmF1bHRcblxuICAgICAgICAgIGlmKGF0dHJFeGFtcGxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIF9hdHRyW3Byb3BzW3Byb3BOYW1lXS54bWwubmFtZSB8fCBwcm9wTmFtZV0gPSBhdHRyRXhhbXBsZVxuICAgICAgICAgIH0gZWxzZSBpZihhdHRyRGVmYXVsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBfYXR0cltwcm9wc1twcm9wTmFtZV0ueG1sLm5hbWUgfHwgcHJvcE5hbWVdID0gYXR0ckRlZmF1bHRcbiAgICAgICAgICB9IGVsc2UgaWYoZW51bUF0dHJWYWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgX2F0dHJbcHJvcHNbcHJvcE5hbWVdLnhtbC5uYW1lIHx8IHByb3BOYW1lXSA9IGVudW1BdHRyVmFsXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIF9hdHRyW3Byb3BzW3Byb3BOYW1lXS54bWwubmFtZSB8fCBwcm9wTmFtZV0gPSBwcmltaXRpdmUocHJvcHNbcHJvcE5hbWVdKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIHByb3BzW3Byb3BOYW1lXS54bWwubmFtZSA9IHByb3BzW3Byb3BOYW1lXS54bWwubmFtZSB8fCBwcm9wTmFtZVxuICAgICAgfSBlbHNlIGlmKCFwcm9wc1twcm9wTmFtZV0gJiYgYWRkaXRpb25hbFByb3BlcnRpZXMgIT09IGZhbHNlKSB7XG4gICAgICAgIC8vIGNhc2Ugb25seSBhZGRpdGlvbmFsUHJvcGVydHkgdGhhdCBpcyBub3QgZGVmaW5lZCBpbiBzY2hlbWFcbiAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0ge1xuICAgICAgICAgIHhtbDoge1xuICAgICAgICAgICAgbmFtZTogcHJvcE5hbWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGV0IHQgPSBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhzY2hlbWEgJiYgcHJvcHNbcHJvcE5hbWVdIHx8IHVuZGVmaW5lZCwgY29uZmlnLCBvdmVycmlkZUUsIHJlc3BlY3RYTUwpXG4gICAgICBpZighY2FuQWRkUHJvcGVydHkocHJvcE5hbWUpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBwcm9wZXJ0eUFkZGVkQ291bnRlcisrXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh0KSkge1xuICAgICAgICByZXNbZGlzcGxheU5hbWVdID0gcmVzW2Rpc3BsYXlOYW1lXS5jb25jYXQodClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc1tkaXNwbGF5TmFtZV0ucHVzaCh0KVxuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBhZGRQcm9wZXJ0eVRvUmVzdWx0ID0gKHByb3BOYW1lLCBvdmVycmlkZUUpID0+IHtcbiAgICAgIGlmKCFjYW5BZGRQcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc2NoZW1hLCBcImRpc2NyaW1pbmF0b3JcIikgJiZcbiAgICAgICAgc2NoZW1hLmRpc2NyaW1pbmF0b3IgJiZcbiAgICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNjaGVtYS5kaXNjcmltaW5hdG9yLCBcIm1hcHBpbmdcIikgJiZcbiAgICAgICAgc2NoZW1hLmRpc2NyaW1pbmF0b3IubWFwcGluZyAmJlxuICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc2NoZW1hLCBcIiQkcmVmXCIpICYmXG4gICAgICAgIHNjaGVtYS4kJHJlZiAmJlxuICAgICAgICBzY2hlbWEuZGlzY3JpbWluYXRvci5wcm9wZXJ0eU5hbWUgPT09IHByb3BOYW1lKSB7XG4gICAgICAgIGZvciAobGV0IHBhaXIgaW4gc2NoZW1hLmRpc2NyaW1pbmF0b3IubWFwcGluZyl7XG4gICAgICAgICAgaWYgKHNjaGVtYS4kJHJlZi5zZWFyY2goc2NoZW1hLmRpc2NyaW1pbmF0b3IubWFwcGluZ1twYWlyXSkgIT09IC0xKSB7XG4gICAgICAgICAgICByZXNbcHJvcE5hbWVdID0gcGFpclxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc1twcm9wTmFtZV0gPSBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhwcm9wc1twcm9wTmFtZV0sIGNvbmZpZywgb3ZlcnJpZGVFLCByZXNwZWN0WE1MKVxuICAgICAgfVxuICAgICAgcHJvcGVydHlBZGRlZENvdW50ZXIrK1xuICAgIH1cbiAgfVxuXG4gIC8vIGNoZWNrIGZvciBwbGFpbiB2YWx1ZSBhbmQgaWYgZm91bmQgdXNlIGl0IHRvIGdlbmVyYXRlIHNhbXBsZSBmcm9tIGl0XG4gIGlmKHVzZVBsYWluVmFsdWUpIHtcbiAgICBsZXQgc2FtcGxlXG4gICAgaWYoZXhhbXBsZU92ZXJyaWRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHNhbXBsZSA9IHNhbml0aXplUmVmKGV4YW1wbGVPdmVycmlkZSlcbiAgICB9IGVsc2UgaWYoZXhhbXBsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzYW1wbGUgPSBzYW5pdGl6ZVJlZihleGFtcGxlKVxuICAgIH0gZWxzZSB7XG4gICAgICBzYW1wbGUgPSBzYW5pdGl6ZVJlZihzY2hlbWEuZGVmYXVsdClcbiAgICB9XG5cbiAgICAvLyBpZiBqc29uIGp1c3QgcmV0dXJuXG4gICAgaWYoIXJlc3BlY3RYTUwpIHtcbiAgICAgIC8vIHNwZWNpYWwgY2FzZSB5YW1sIHBhcnNlciBjYW4gbm90IGtub3cgYWJvdXRcbiAgICAgIGlmKHR5cGVvZiBzYW1wbGUgPT09IFwibnVtYmVyXCIgJiYgdHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gYCR7c2FtcGxlfWBcbiAgICAgIH1cbiAgICAgIC8vIHJldHVybiBpZiBzYW1wbGUgZG9lcyBub3QgbmVlZCBhbnkgcGFyc2luZ1xuICAgICAgaWYodHlwZW9mIHNhbXBsZSAhPT0gXCJzdHJpbmdcIiB8fCB0eXBlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBzYW1wbGVcbiAgICAgIH1cbiAgICAgIC8vIGNoZWNrIGlmIHNhbXBsZSBpcyBwYXJzYWJsZSBvciBqdXN0IGEgcGxhaW4gc3RyaW5nXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShzYW1wbGUpXG4gICAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgLy8gc2FtcGxlIGlzIGp1c3QgcGxhaW4gc3RyaW5nIHJldHVybiBpdFxuICAgICAgICByZXR1cm4gc2FtcGxlXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gcmVjb3ZlciBtaXNzaW5nIHR5cGVcbiAgICBpZighc2NoZW1hKSB7XG4gICAgICB0eXBlID0gQXJyYXkuaXNBcnJheShzYW1wbGUpID8gXCJhcnJheVwiIDogdHlwZW9mIHNhbXBsZVxuICAgIH1cblxuICAgIC8vIGdlbmVyYXRlIHhtbCBzYW1wbGUgcmVjdXJzaXZlbHkgZm9yIGFycmF5IGNhc2VcbiAgICBpZih0eXBlID09PSBcImFycmF5XCIpIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShzYW1wbGUpKSB7XG4gICAgICAgIGlmKHR5cGVvZiBzYW1wbGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICByZXR1cm4gc2FtcGxlXG4gICAgICAgIH1cbiAgICAgICAgc2FtcGxlID0gW3NhbXBsZV1cbiAgICAgIH1cbiAgICAgIGNvbnN0IGl0ZW1TY2hlbWEgPSBzY2hlbWFcbiAgICAgICAgPyBzY2hlbWEuaXRlbXNcbiAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgIGlmKGl0ZW1TY2hlbWEpIHtcbiAgICAgICAgaXRlbVNjaGVtYS54bWwgPSBpdGVtU2NoZW1hLnhtbCB8fCB4bWwgfHwge31cbiAgICAgICAgaXRlbVNjaGVtYS54bWwubmFtZSA9IGl0ZW1TY2hlbWEueG1sLm5hbWUgfHwgeG1sLm5hbWVcbiAgICAgIH1cbiAgICAgIGxldCBpdGVtU2FtcGxlcyA9IHNhbXBsZVxuICAgICAgICAubWFwKHMgPT4gc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoaXRlbVNjaGVtYSwgY29uZmlnLCBzLCByZXNwZWN0WE1MKSlcbiAgICAgIGl0ZW1TYW1wbGVzID0gaGFuZGxlTWluTWF4SXRlbXMoaXRlbVNhbXBsZXMpXG4gICAgICBpZih4bWwud3JhcHBlZCkge1xuICAgICAgICByZXNbZGlzcGxheU5hbWVdID0gaXRlbVNhbXBsZXNcbiAgICAgICAgaWYgKCFpc0VtcHR5KF9hdHRyKSkge1xuICAgICAgICAgIHJlc1tkaXNwbGF5TmFtZV0ucHVzaCh7X2F0dHI6IF9hdHRyfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHJlcyA9IGl0ZW1TYW1wbGVzXG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzXG4gICAgfVxuXG4gICAgLy8gZ2VuZXJhdGUgeG1sIHNhbXBsZSByZWN1cnNpdmVseSBmb3Igb2JqZWN0IGNhc2VcbiAgICBpZih0eXBlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAvLyBjYXNlIGxpdGVyYWwgZXhhbXBsZVxuICAgICAgaWYodHlwZW9mIHNhbXBsZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gc2FtcGxlXG4gICAgICB9XG4gICAgICBmb3IgKGxldCBwcm9wTmFtZSBpbiBzYW1wbGUpIHtcbiAgICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc2FtcGxlLCBwcm9wTmFtZSkpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGlmIChzY2hlbWEgJiYgcHJvcHNbcHJvcE5hbWVdICYmIHByb3BzW3Byb3BOYW1lXS5yZWFkT25seSAmJiAhaW5jbHVkZVJlYWRPbmx5KSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2NoZW1hICYmIHByb3BzW3Byb3BOYW1lXSAmJiBwcm9wc1twcm9wTmFtZV0ud3JpdGVPbmx5ICYmICFpbmNsdWRlV3JpdGVPbmx5KSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2NoZW1hICYmIHByb3BzW3Byb3BOYW1lXSAmJiBwcm9wc1twcm9wTmFtZV0ueG1sICYmIHByb3BzW3Byb3BOYW1lXS54bWwuYXR0cmlidXRlKSB7XG4gICAgICAgICAgX2F0dHJbcHJvcHNbcHJvcE5hbWVdLnhtbC5uYW1lIHx8IHByb3BOYW1lXSA9IHNhbXBsZVtwcm9wTmFtZV1cbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGFkZFByb3BlcnR5VG9SZXN1bHQocHJvcE5hbWUsIHNhbXBsZVtwcm9wTmFtZV0pXG4gICAgICB9XG4gICAgICBpZiAoIWlzRW1wdHkoX2F0dHIpKSB7XG4gICAgICAgIHJlc1tkaXNwbGF5TmFtZV0ucHVzaCh7X2F0dHI6IF9hdHRyfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc1xuICAgIH1cblxuICAgIHJlc1tkaXNwbGF5TmFtZV0gPSAhaXNFbXB0eShfYXR0cikgPyBbe19hdHRyOiBfYXR0cn0sIHNhbXBsZV0gOiBzYW1wbGVcbiAgICByZXR1cm4gcmVzXG4gIH1cblxuICAvLyB1c2Ugc2NoZW1hIHRvIGdlbmVyYXRlIHNhbXBsZVxuXG4gIGlmKHR5cGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICBmb3IgKGxldCBwcm9wTmFtZSBpbiBwcm9wcykge1xuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIHByb3BOYW1lKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKCBwcm9wc1twcm9wTmFtZV0gJiYgcHJvcHNbcHJvcE5hbWVdLmRlcHJlY2F0ZWQgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoIHByb3BzW3Byb3BOYW1lXSAmJiBwcm9wc1twcm9wTmFtZV0ucmVhZE9ubHkgJiYgIWluY2x1ZGVSZWFkT25seSApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmICggcHJvcHNbcHJvcE5hbWVdICYmIHByb3BzW3Byb3BOYW1lXS53cml0ZU9ubHkgJiYgIWluY2x1ZGVXcml0ZU9ubHkgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBhZGRQcm9wZXJ0eVRvUmVzdWx0KHByb3BOYW1lKVxuICAgIH1cbiAgICBpZiAocmVzcGVjdFhNTCAmJiBfYXR0cikge1xuICAgICAgcmVzW2Rpc3BsYXlOYW1lXS5wdXNoKHtfYXR0cjogX2F0dHJ9KVxuICAgIH1cblxuICAgIGlmKGhhc0V4Y2VlZGVkTWF4UHJvcGVydGllcygpKSB7XG4gICAgICByZXR1cm4gcmVzXG4gICAgfVxuXG4gICAgaWYgKCBhZGRpdGlvbmFsUHJvcGVydGllcyA9PT0gdHJ1ZSApIHtcbiAgICAgIGlmKHJlc3BlY3RYTUwpIHtcbiAgICAgICAgcmVzW2Rpc3BsYXlOYW1lXS5wdXNoKHthZGRpdGlvbmFsUHJvcDogXCJBbnl0aGluZyBjYW4gYmUgaGVyZVwifSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcy5hZGRpdGlvbmFsUHJvcDEgPSB7fVxuICAgICAgfVxuICAgICAgcHJvcGVydHlBZGRlZENvdW50ZXIrK1xuICAgIH0gZWxzZSBpZiAoIGFkZGl0aW9uYWxQcm9wZXJ0aWVzICkge1xuICAgICAgY29uc3QgYWRkaXRpb25hbFByb3BzID0gb2JqZWN0aWZ5KGFkZGl0aW9uYWxQcm9wZXJ0aWVzKVxuICAgICAgY29uc3QgYWRkaXRpb25hbFByb3BTYW1wbGUgPSBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhhZGRpdGlvbmFsUHJvcHMsIGNvbmZpZywgdW5kZWZpbmVkLCByZXNwZWN0WE1MKVxuXG4gICAgICBpZihyZXNwZWN0WE1MICYmIGFkZGl0aW9uYWxQcm9wcy54bWwgJiYgYWRkaXRpb25hbFByb3BzLnhtbC5uYW1lICYmIGFkZGl0aW9uYWxQcm9wcy54bWwubmFtZSAhPT0gXCJub3RhZ25hbWVcIilcbiAgICAgIHtcbiAgICAgICAgcmVzW2Rpc3BsYXlOYW1lXS5wdXNoKGFkZGl0aW9uYWxQcm9wU2FtcGxlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdG9HZW5lcmF0ZUNvdW50ID0gc2NoZW1hLm1pblByb3BlcnRpZXMgIT09IG51bGwgJiYgc2NoZW1hLm1pblByb3BlcnRpZXMgIT09IHVuZGVmaW5lZCAmJiBwcm9wZXJ0eUFkZGVkQ291bnRlciA8IHNjaGVtYS5taW5Qcm9wZXJ0aWVzXG4gICAgICAgICAgPyBzY2hlbWEubWluUHJvcGVydGllcyAtIHByb3BlcnR5QWRkZWRDb3VudGVyXG4gICAgICAgICAgOiAzXG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHRvR2VuZXJhdGVDb3VudDsgaSsrKSB7XG4gICAgICAgICAgaWYoaGFzRXhjZWVkZWRNYXhQcm9wZXJ0aWVzKCkpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYocmVzcGVjdFhNTCkge1xuICAgICAgICAgICAgY29uc3QgdGVtcCA9IHt9XG4gICAgICAgICAgICB0ZW1wW1wiYWRkaXRpb25hbFByb3BcIiArIGldID0gYWRkaXRpb25hbFByb3BTYW1wbGVbXCJub3RhZ25hbWVcIl1cbiAgICAgICAgICAgIHJlc1tkaXNwbGF5TmFtZV0ucHVzaCh0ZW1wKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNbXCJhZGRpdGlvbmFsUHJvcFwiICsgaV0gPSBhZGRpdGlvbmFsUHJvcFNhbXBsZVxuICAgICAgICAgIH1cbiAgICAgICAgICBwcm9wZXJ0eUFkZGVkQ291bnRlcisrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc1xuICB9XG5cbiAgaWYodHlwZSA9PT0gXCJhcnJheVwiKSB7XG4gICAgaWYgKCFpdGVtcykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgbGV0IHNhbXBsZUFycmF5XG4gICAgaWYocmVzcGVjdFhNTCkge1xuICAgICAgaXRlbXMueG1sID0gaXRlbXMueG1sIHx8IHNjaGVtYT8ueG1sIHx8IHt9XG4gICAgICBpdGVtcy54bWwubmFtZSA9IGl0ZW1zLnhtbC5uYW1lIHx8IHhtbC5uYW1lXG4gICAgfVxuXG4gICAgaWYoQXJyYXkuaXNBcnJheShpdGVtcy5hbnlPZikpIHtcbiAgICAgIHNhbXBsZUFycmF5ID0gaXRlbXMuYW55T2YubWFwKGkgPT4gc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMobWVyZ2VKc29uU2NoZW1hKGksIGl0ZW1zLCBjb25maWcpLCBjb25maWcsIHVuZGVmaW5lZCwgcmVzcGVjdFhNTCkpXG4gICAgfSBlbHNlIGlmKEFycmF5LmlzQXJyYXkoaXRlbXMub25lT2YpKSB7XG4gICAgICBzYW1wbGVBcnJheSA9IGl0ZW1zLm9uZU9mLm1hcChpID0+IHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKG1lcmdlSnNvblNjaGVtYShpLCBpdGVtcywgY29uZmlnKSwgY29uZmlnLCB1bmRlZmluZWQsIHJlc3BlY3RYTUwpKVxuICAgIH0gZWxzZSBpZighcmVzcGVjdFhNTCB8fCByZXNwZWN0WE1MICYmIHhtbC53cmFwcGVkKSB7XG4gICAgICBzYW1wbGVBcnJheSA9IFtzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhpdGVtcywgY29uZmlnLCB1bmRlZmluZWQsIHJlc3BlY3RYTUwpXVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoaXRlbXMsIGNvbmZpZywgdW5kZWZpbmVkLCByZXNwZWN0WE1MKVxuICAgIH1cbiAgICBzYW1wbGVBcnJheSA9IGhhbmRsZU1pbk1heEl0ZW1zKHNhbXBsZUFycmF5KVxuICAgIGlmKHJlc3BlY3RYTUwgJiYgeG1sLndyYXBwZWQpIHtcbiAgICAgIHJlc1tkaXNwbGF5TmFtZV0gPSBzYW1wbGVBcnJheVxuICAgICAgaWYgKCFpc0VtcHR5KF9hdHRyKSkge1xuICAgICAgICByZXNbZGlzcGxheU5hbWVdLnB1c2goe19hdHRyOiBfYXR0cn0pXG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzXG4gICAgfVxuICAgIHJldHVybiBzYW1wbGVBcnJheVxuICB9XG5cbiAgbGV0IHZhbHVlXG4gIGlmIChzY2hlbWEgJiYgQXJyYXkuaXNBcnJheShzY2hlbWEuZW51bSkpIHtcbiAgICAvL2Rpc3BsYXkgZW51bSBmaXJzdCB2YWx1ZVxuICAgIHZhbHVlID0gbm9ybWFsaXplQXJyYXkoc2NoZW1hLmVudW0pWzBdXG4gIH0gZWxzZSBpZihzY2hlbWEpIHtcbiAgICAvLyBkaXNwbGF5IHNjaGVtYSBkZWZhdWx0XG4gICAgdmFsdWUgPSBwcmltaXRpdmUoc2NoZW1hKVxuICAgIGlmKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgbGV0IG1pbiA9IHNjaGVtYS5taW5pbXVtXG4gICAgICBpZihtaW4gIT09IHVuZGVmaW5lZCAmJiBtaW4gIT09IG51bGwpIHtcbiAgICAgICAgaWYoc2NoZW1hLmV4Y2x1c2l2ZU1pbmltdW0pIHtcbiAgICAgICAgICBtaW4rK1xuICAgICAgICB9XG4gICAgICAgIHZhbHVlID0gbWluXG4gICAgICB9XG4gICAgICBsZXQgbWF4ID0gc2NoZW1hLm1heGltdW1cbiAgICAgIGlmKG1heCAhPT0gdW5kZWZpbmVkICYmIG1heCAhPT0gbnVsbCkge1xuICAgICAgICBpZihzY2hlbWEuZXhjbHVzaXZlTWF4aW11bSkge1xuICAgICAgICAgIG1heC0tXG4gICAgICAgIH1cbiAgICAgICAgdmFsdWUgPSBtYXhcbiAgICAgIH1cbiAgICB9XG4gICAgaWYodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBpZiAoc2NoZW1hLm1heExlbmd0aCAhPT0gbnVsbCAmJiBzY2hlbWEubWF4TGVuZ3RoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgwLCBzY2hlbWEubWF4TGVuZ3RoKVxuICAgICAgfVxuICAgICAgaWYgKHNjaGVtYS5taW5MZW5ndGggIT09IG51bGwgJiYgc2NoZW1hLm1pbkxlbmd0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGxldCBpID0gMFxuICAgICAgICB3aGlsZSAodmFsdWUubGVuZ3RoIDwgc2NoZW1hLm1pbkxlbmd0aCkge1xuICAgICAgICAgIHZhbHVlICs9IHZhbHVlW2krKyAlIHZhbHVlLmxlbmd0aF1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXR1cm5cbiAgfVxuICBpZiAodHlwZSA9PT0gXCJmaWxlXCIpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmKHJlc3BlY3RYTUwpIHtcbiAgICByZXNbZGlzcGxheU5hbWVdID0gIWlzRW1wdHkoX2F0dHIpID8gW3tfYXR0cjogX2F0dHJ9LCB2YWx1ZV0gOiB2YWx1ZVxuICAgIHJldHVybiByZXNcbiAgfVxuXG4gIHJldHVybiB2YWx1ZVxufVxuXG5leHBvcnQgY29uc3QgaW5mZXJTY2hlbWEgPSAodGhpbmcpID0+IHtcbiAgaWYodGhpbmcuc2NoZW1hKVxuICAgIHRoaW5nID0gdGhpbmcuc2NoZW1hXG5cbiAgaWYodGhpbmcucHJvcGVydGllcykge1xuICAgIHRoaW5nLnR5cGUgPSBcIm9iamVjdFwiXG4gIH1cblxuICByZXR1cm4gdGhpbmcgLy8gSG9wZWZ1bGx5IHRoaXMgd2lsbCBoYXZlIHNvbWV0aGluZyBzY2hlbWEgbGlrZSBpbiBpdC4uLiBgdHlwZWAgZm9yIGV4YW1wbGVcbn1cblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVhNTEV4YW1wbGUgPSAoc2NoZW1hLCBjb25maWcsIG8pID0+IHtcbiAgY29uc3QganNvbiA9IHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKHNjaGVtYSwgY29uZmlnLCBvLCB0cnVlKVxuICBpZiAoIWpzb24pIHsgcmV0dXJuIH1cbiAgaWYodHlwZW9mIGpzb24gPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4ganNvblxuICB9XG4gIHJldHVybiBYTUwoanNvbiwgeyBkZWNsYXJhdGlvbjogdHJ1ZSwgaW5kZW50OiBcIlxcdFwiIH0pXG59XG5cblxuZXhwb3J0IGNvbnN0IHNhbXBsZUZyb21TY2hlbWEgPSAoc2NoZW1hLCBjb25maWcsIG8pID0+XG4gIHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKHNjaGVtYSwgY29uZmlnLCBvLCBmYWxzZSlcblxuY29uc3QgcmVzb2x2ZXIgPSAoYXJnMSwgYXJnMiwgYXJnMykgPT4gW2FyZzEsIEpTT04uc3RyaW5naWZ5KGFyZzIpLCBKU09OLnN0cmluZ2lmeShhcmczKV1cblxuZXhwb3J0IGNvbnN0IG1lbW9pemVkQ3JlYXRlWE1MRXhhbXBsZSA9IG1lbW9pemVOKGNyZWF0ZVhNTEV4YW1wbGUsIHJlc29sdmVyKVxuXG5leHBvcnQgY29uc3QgbWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hID0gbWVtb2l6ZU4oc2FtcGxlRnJvbVNjaGVtYSwgcmVzb2x2ZXIpXG5cbmV4cG9ydCBjb25zdCBnZXRTY2hlbWFPYmplY3RUeXBlID0gKHNjaGVtYSkgPT4gaW1tdXRhYmxlVG9KUyhzY2hlbWEpPy50eXBlID8/IFwic3RyaW5nXCJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBzb21lIGZyb20gXCJsb2Rhc2gvc29tZVwiXG5cbmNvbnN0IHNob3VsZFN0cmluZ2lmeVR5cGVzQ29uZmlnID0gW1xuICB7XG4gICAgd2hlbjogL2pzb24vLFxuICAgIHNob3VsZFN0cmluZ2lmeVR5cGVzOiBbXCJzdHJpbmdcIl0sXG4gIH0sXG5dXG5jb25zdCBkZWZhdWx0U3RyaW5naWZ5VHlwZXMgPSBbXCJvYmplY3RcIl1cbmNvbnN0IG1ha2VHZXRKc29uU2FtcGxlU2NoZW1hID1cbiAgKGdldFN5c3RlbSkgPT4gKHNjaGVtYSwgY29uZmlnLCBjb250ZW50VHlwZSwgZXhhbXBsZU92ZXJyaWRlKSA9PiB7XG4gICAgY29uc3QgeyBmbiB9ID0gZ2V0U3lzdGVtKClcbiAgICBjb25zdCByZXMgPSBmbi5tZW1vaXplZFNhbXBsZUZyb21TY2hlbWEoc2NoZW1hLCBjb25maWcsIGV4YW1wbGVPdmVycmlkZSlcbiAgICBjb25zdCByZXNUeXBlID0gdHlwZW9mIHJlc1xuXG4gICAgY29uc3QgdHlwZXNUb1N0cmluZ2lmeSA9IHNob3VsZFN0cmluZ2lmeVR5cGVzQ29uZmlnLnJlZHVjZShcbiAgICAgICh0eXBlcywgbmV4dENvbmZpZykgPT5cbiAgICAgICAgbmV4dENvbmZpZy53aGVuLnRlc3QoY29udGVudFR5cGUpXG4gICAgICAgICAgPyBbLi4udHlwZXMsIC4uLm5leHRDb25maWcuc2hvdWxkU3RyaW5naWZ5VHlwZXNdXG4gICAgICAgICAgOiB0eXBlcyxcbiAgICAgIGRlZmF1bHRTdHJpbmdpZnlUeXBlc1xuICAgIClcblxuICAgIHJldHVybiBzb21lKHR5cGVzVG9TdHJpbmdpZnksICh4KSA9PiB4ID09PSByZXNUeXBlKVxuICAgICAgPyBKU09OLnN0cmluZ2lmeShyZXMsIG51bGwsIDIpXG4gICAgICA6IHJlc1xuICB9XG5cbmV4cG9ydCBkZWZhdWx0IG1ha2VHZXRKc29uU2FtcGxlU2NoZW1hXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgWUFNTCwgeyBKU09OX1NDSEVNQSB9IGZyb20gXCJqcy15YW1sXCJcblxuY29uc3QgbWFrZUdldFlhbWxTYW1wbGVTY2hlbWEgPVxuICAoZ2V0U3lzdGVtKSA9PiAoc2NoZW1hLCBjb25maWcsIGNvbnRlbnRUeXBlLCBleGFtcGxlT3ZlcnJpZGUpID0+IHtcbiAgICBjb25zdCB7IGZuIH0gPSBnZXRTeXN0ZW0oKVxuICAgIGNvbnN0IGpzb25FeGFtcGxlID0gZm4uZ2V0SnNvblNhbXBsZVNjaGVtYShcbiAgICAgIHNjaGVtYSxcbiAgICAgIGNvbmZpZyxcbiAgICAgIGNvbnRlbnRUeXBlLFxuICAgICAgZXhhbXBsZU92ZXJyaWRlXG4gICAgKVxuICAgIGxldCB5YW1sU3RyaW5nXG4gICAgdHJ5IHtcbiAgICAgIHlhbWxTdHJpbmcgPSBZQU1MLmR1bXAoXG4gICAgICAgIFlBTUwubG9hZChqc29uRXhhbXBsZSksXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5lV2lkdGg6IC0xLCAvLyBkb24ndCBnZW5lcmF0ZSBsaW5lIGZvbGRzXG4gICAgICAgIH0sXG4gICAgICAgIHsgc2NoZW1hOiBKU09OX1NDSEVNQSB9XG4gICAgICApXG4gICAgICBpZiAoeWFtbFN0cmluZ1t5YW1sU3RyaW5nLmxlbmd0aCAtIDFdID09PSBcIlxcblwiKSB7XG4gICAgICAgIHlhbWxTdHJpbmcgPSB5YW1sU3RyaW5nLnNsaWNlKDAsIHlhbWxTdHJpbmcubGVuZ3RoIC0gMSlcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGUpXG4gICAgICByZXR1cm4gXCJlcnJvcjogY291bGQgbm90IGdlbmVyYXRlIHlhbWwgZXhhbXBsZVwiXG4gICAgfVxuICAgIHJldHVybiB5YW1sU3RyaW5nLnJlcGxhY2UoL1xcdC9nLCBcIiAgXCIpXG4gIH1cblxuZXhwb3J0IGRlZmF1bHQgbWFrZUdldFlhbWxTYW1wbGVTY2hlbWFcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IG1ha2VHZXRYbWxTYW1wbGVTY2hlbWEgPVxuICAoZ2V0U3lzdGVtKSA9PiAoc2NoZW1hLCBjb25maWcsIGV4YW1wbGVPdmVycmlkZSkgPT4ge1xuICAgIGNvbnN0IHsgZm4gfSA9IGdldFN5c3RlbSgpXG5cbiAgICBpZiAoc2NoZW1hICYmICFzY2hlbWEueG1sKSB7XG4gICAgICBzY2hlbWEueG1sID0ge31cbiAgICB9XG4gICAgaWYgKHNjaGVtYSAmJiAhc2NoZW1hLnhtbC5uYW1lKSB7XG4gICAgICBpZiAoXG4gICAgICAgICFzY2hlbWEuJCRyZWYgJiZcbiAgICAgICAgKHNjaGVtYS50eXBlIHx8XG4gICAgICAgICAgc2NoZW1hLml0ZW1zIHx8XG4gICAgICAgICAgc2NoZW1hLnByb3BlcnRpZXMgfHxcbiAgICAgICAgICBzY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXMpXG4gICAgICApIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHF1b3Rlc1xuICAgICAgICByZXR1cm4gJzw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cIlVURi04XCI/PlxcbjwhLS0gWE1MIGV4YW1wbGUgY2Fubm90IGJlIGdlbmVyYXRlZDsgcm9vdCBlbGVtZW50IG5hbWUgaXMgdW5kZWZpbmVkIC0tPidcbiAgICAgIH1cbiAgICAgIGlmIChzY2hlbWEuJCRyZWYpIHtcbiAgICAgICAgbGV0IG1hdGNoID0gc2NoZW1hLiQkcmVmLm1hdGNoKC9cXFMqXFwvKFxcUyspJC8pXG4gICAgICAgIHNjaGVtYS54bWwubmFtZSA9IG1hdGNoWzFdXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZuLm1lbW9pemVkQ3JlYXRlWE1MRXhhbXBsZShzY2hlbWEsIGNvbmZpZywgZXhhbXBsZU92ZXJyaWRlKVxuICB9XG5cbmV4cG9ydCBkZWZhdWx0IG1ha2VHZXRYbWxTYW1wbGVTY2hlbWFcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IG1ha2VHZXRTYW1wbGVTY2hlbWEgPVxuICAoZ2V0U3lzdGVtKSA9PlxuICAoc2NoZW1hLCBjb250ZW50VHlwZSA9IFwiXCIsIGNvbmZpZyA9IHt9LCBleGFtcGxlT3ZlcnJpZGUgPSB1bmRlZmluZWQpID0+IHtcbiAgICBjb25zdCB7IGZuIH0gPSBnZXRTeXN0ZW0oKVxuXG4gICAgaWYgKHR5cGVvZiBzY2hlbWE/LnRvSlMgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgc2NoZW1hID0gc2NoZW1hLnRvSlMoKVxuICAgIH1cbiAgICBpZiAodHlwZW9mIGV4YW1wbGVPdmVycmlkZT8udG9KUyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBleGFtcGxlT3ZlcnJpZGUgPSBleGFtcGxlT3ZlcnJpZGUudG9KUygpXG4gICAgfVxuXG4gICAgaWYgKC94bWwvLnRlc3QoY29udGVudFR5cGUpKSB7XG4gICAgICByZXR1cm4gZm4uZ2V0WG1sU2FtcGxlU2NoZW1hKHNjaGVtYSwgY29uZmlnLCBleGFtcGxlT3ZlcnJpZGUpXG4gICAgfVxuICAgIGlmICgvKHlhbWx8eW1sKS8udGVzdChjb250ZW50VHlwZSkpIHtcbiAgICAgIHJldHVybiBmbi5nZXRZYW1sU2FtcGxlU2NoZW1hKFxuICAgICAgICBzY2hlbWEsXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgY29udGVudFR5cGUsXG4gICAgICAgIGV4YW1wbGVPdmVycmlkZVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gZm4uZ2V0SnNvblNhbXBsZVNjaGVtYShzY2hlbWEsIGNvbmZpZywgY29udGVudFR5cGUsIGV4YW1wbGVPdmVycmlkZSlcbiAgfVxuXG5leHBvcnQgZGVmYXVsdCBtYWtlR2V0U2FtcGxlU2NoZW1hXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQge1xuICBzYW1wbGVGcm9tU2NoZW1hLFxuICBpbmZlclNjaGVtYSxcbiAgc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMsXG4gIGNyZWF0ZVhNTEV4YW1wbGUsXG4gIG1lbW9pemVkQ3JlYXRlWE1MRXhhbXBsZSxcbiAgbWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hLFxuICBtZXJnZUpzb25TY2hlbWEsXG4gIGdldFNjaGVtYU9iamVjdFR5cGUsXG59IGZyb20gXCIuL2ZuL2luZGV4XCJcbmltcG9ydCBtYWtlR2V0SnNvblNhbXBsZVNjaGVtYSBmcm9tIFwiLi9mbi9nZXQtanNvbi1zYW1wbGUtc2NoZW1hXCJcbmltcG9ydCBtYWtlR2V0WWFtbFNhbXBsZVNjaGVtYSBmcm9tIFwiLi9mbi9nZXQteWFtbC1zYW1wbGUtc2NoZW1hXCJcbmltcG9ydCBtYWtlR2V0WG1sU2FtcGxlU2NoZW1hIGZyb20gXCIuL2ZuL2dldC14bWwtc2FtcGxlLXNjaGVtYVwiXG5pbXBvcnQgbWFrZUdldFNhbXBsZVNjaGVtYSBmcm9tIFwiLi9mbi9nZXQtc2FtcGxlLXNjaGVtYVwiXG5cbmNvbnN0IEpTT05TY2hlbWE1U2FtcGxlc1BsdWdpbiA9ICh7IGdldFN5c3RlbSB9KSA9PiB7XG4gIGNvbnN0IGdldEpzb25TYW1wbGVTY2hlbWEgPSBtYWtlR2V0SnNvblNhbXBsZVNjaGVtYShnZXRTeXN0ZW0pXG4gIGNvbnN0IGdldFlhbWxTYW1wbGVTY2hlbWEgPSBtYWtlR2V0WWFtbFNhbXBsZVNjaGVtYShnZXRTeXN0ZW0pXG4gIGNvbnN0IGdldFhtbFNhbXBsZVNjaGVtYSA9IG1ha2VHZXRYbWxTYW1wbGVTY2hlbWEoZ2V0U3lzdGVtKVxuICBjb25zdCBnZXRTYW1wbGVTY2hlbWEgPSBtYWtlR2V0U2FtcGxlU2NoZW1hKGdldFN5c3RlbSlcblxuICByZXR1cm4ge1xuICAgIGZuOiB7XG4gICAgICBqc29uU2NoZW1hNToge1xuICAgICAgICBpbmZlclNjaGVtYSxcbiAgICAgICAgc2FtcGxlRnJvbVNjaGVtYSxcbiAgICAgICAgc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMsXG4gICAgICAgIGNyZWF0ZVhNTEV4YW1wbGUsXG4gICAgICAgIG1lbW9pemVkU2FtcGxlRnJvbVNjaGVtYSxcbiAgICAgICAgbWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlLFxuICAgICAgICBnZXRKc29uU2FtcGxlU2NoZW1hLFxuICAgICAgICBnZXRZYW1sU2FtcGxlU2NoZW1hLFxuICAgICAgICBnZXRYbWxTYW1wbGVTY2hlbWEsXG4gICAgICAgIGdldFNhbXBsZVNjaGVtYSxcbiAgICAgICAgbWVyZ2VKc29uU2NoZW1hLFxuICAgICAgfSxcbiAgICAgIGluZmVyU2NoZW1hLFxuICAgICAgc2FtcGxlRnJvbVNjaGVtYSxcbiAgICAgIHNhbXBsZUZyb21TY2hlbWFHZW5lcmljLFxuICAgICAgY3JlYXRlWE1MRXhhbXBsZSxcbiAgICAgIG1lbW9pemVkU2FtcGxlRnJvbVNjaGVtYSxcbiAgICAgIG1lbW9pemVkQ3JlYXRlWE1MRXhhbXBsZSxcbiAgICAgIGdldEpzb25TYW1wbGVTY2hlbWEsXG4gICAgICBnZXRZYW1sU2FtcGxlU2NoZW1hLFxuICAgICAgZ2V0WG1sU2FtcGxlU2NoZW1hLFxuICAgICAgZ2V0U2FtcGxlU2NoZW1hLFxuICAgICAgbWVyZ2VKc29uU2NoZW1hLFxuICAgICAgZ2V0U2NoZW1hT2JqZWN0VHlwZSxcbiAgICB9LFxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEpTT05TY2hlbWE1U2FtcGxlc1BsdWdpblxuIiwidmFyIHggPSBmdW5jdGlvbih5KSB7XG5cdHZhciB4ID0ge307IF9fd2VicGFja19yZXF1aXJlX18uZCh4LCB5KTsgcmV0dXJuIHhcbn0gXG52YXIgeSA9IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgeyByZXR1cm4geDsgfTsgfVxudmFyIF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wiZGVmYXVsdFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX2xvZGFzaF9jb25zdGFudF9mNWMwODc5Zl9fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJpbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gXCJyZXNlbGVjdFwiXG5pbXBvcnQgY29uc3RhbnQgZnJvbSBcImxvZGFzaC9jb25zdGFudFwiXG5pbXBvcnQgeyBzb3J0ZXJzLCBwYXJhbVRvSWRlbnRpZmllciB9IGZyb20gXCJjb3JlL3V0aWxzXCJcbmltcG9ydCB7IGZyb21KUywgU2V0LCBNYXAsIE9yZGVyZWRNYXAsIExpc3QgfSBmcm9tIFwiaW1tdXRhYmxlXCJcblxuY29uc3QgREVGQVVMVF9UQUcgPSBcImRlZmF1bHRcIlxuXG5jb25zdCBPUEVSQVRJT05fTUVUSE9EUyA9IFtcbiAgXCJnZXRcIiwgXCJwdXRcIiwgXCJwb3N0XCIsIFwiZGVsZXRlXCIsIFwib3B0aW9uc1wiLCBcImhlYWRcIiwgXCJwYXRjaFwiLCBcInRyYWNlXCJcbl1cblxuY29uc3Qgc3RhdGUgPSBzdGF0ZSA9PiB7XG4gIHJldHVybiBzdGF0ZSB8fCBNYXAoKVxufVxuXG5leHBvcnQgY29uc3QgbGFzdEVycm9yID0gY3JlYXRlU2VsZWN0b3IoXG4gIHN0YXRlLFxuICBzcGVjID0+IHNwZWMuZ2V0KFwibGFzdEVycm9yXCIpXG4pXG5cbmV4cG9ydCBjb25zdCB1cmwgPSBjcmVhdGVTZWxlY3RvcihcbiAgc3RhdGUsXG4gIHNwZWMgPT4gc3BlYy5nZXQoXCJ1cmxcIilcbilcblxuZXhwb3J0IGNvbnN0IHNwZWNTdHIgPSBjcmVhdGVTZWxlY3RvcihcbiAgc3RhdGUsXG4gIHNwZWMgPT4gc3BlYy5nZXQoXCJzcGVjXCIpIHx8IFwiXCJcbilcblxuZXhwb3J0IGNvbnN0IHNwZWNTb3VyY2UgPSBjcmVhdGVTZWxlY3RvcihcbiAgc3RhdGUsXG4gIHNwZWMgPT4gc3BlYy5nZXQoXCJzcGVjU291cmNlXCIpIHx8IFwibm90LWVkaXRvclwiXG4pXG5cbmV4cG9ydCBjb25zdCBzcGVjSnNvbiA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzdGF0ZSxcbiAgc3BlYyA9PiBzcGVjLmdldChcImpzb25cIiwgTWFwKCkpXG4pXG5cbmV4cG9ydCBjb25zdCBzcGVjSlMgPSBjcmVhdGVTZWxlY3RvcihcbiAgc3BlY0pzb24sXG4gIChzcGVjKSA9PiBzcGVjLnRvSlMoKVxuKVxuXG5leHBvcnQgY29uc3Qgc3BlY1Jlc29sdmVkID0gY3JlYXRlU2VsZWN0b3IoXG4gIHN0YXRlLFxuICBzcGVjID0+IHNwZWMuZ2V0KFwicmVzb2x2ZWRcIiwgTWFwKCkpXG4pXG5cbmV4cG9ydCBjb25zdCBzcGVjUmVzb2x2ZWRTdWJ0cmVlID0gKHN0YXRlLCBwYXRoKSA9PiB7XG4gIHJldHVybiBzdGF0ZS5nZXRJbihbXCJyZXNvbHZlZFN1YnRyZWVzXCIsIC4uLnBhdGhdLCB1bmRlZmluZWQpXG59XG5cbmNvbnN0IG1lcmdlckZuID0gKG9sZFZhbCwgbmV3VmFsKSA9PiB7XG4gIGlmKE1hcC5pc01hcChvbGRWYWwpICYmIE1hcC5pc01hcChuZXdWYWwpKSB7XG4gICAgaWYobmV3VmFsLmdldChcIiQkcmVmXCIpKSB7XG4gICAgICAvLyByZXNvbHZlciBhcnRpZmFjdHMgaW5kaWNhdGVkIHRoYXQgdGhpcyBrZXkgd2FzIGRpcmVjdGx5IHJlc29sdmVkXG4gICAgICAvLyBzbyB3ZSBzaG91bGQgZHJvcCB0aGUgb2xkIHZhbHVlIGVudGlyZWx5XG4gICAgICByZXR1cm4gbmV3VmFsXG4gICAgfVxuXG4gICAgcmV0dXJuIE9yZGVyZWRNYXAoKS5tZXJnZVdpdGgoXG4gICAgICBtZXJnZXJGbixcbiAgICAgIG9sZFZhbCxcbiAgICAgIG5ld1ZhbFxuICAgIClcbiAgfVxuXG4gIHJldHVybiBuZXdWYWxcbn1cblxuZXhwb3J0IGNvbnN0IHNwZWNKc29uV2l0aFJlc29sdmVkU3VidHJlZXMgPSBjcmVhdGVTZWxlY3RvcihcbiAgc3RhdGUsXG4gIHNwZWMgPT4gT3JkZXJlZE1hcCgpLm1lcmdlV2l0aChcbiAgICBtZXJnZXJGbixcbiAgICBzcGVjLmdldChcImpzb25cIiksXG4gICAgc3BlYy5nZXQoXCJyZXNvbHZlZFN1YnRyZWVzXCIpXG4gIClcbilcblxuLy8gRGVmYXVsdCBTcGVjICggYXMgYW4gb2JqZWN0IClcbmV4cG9ydCBjb25zdCBzcGVjID0gc3RhdGUgPT4ge1xuICBsZXQgcmVzID0gc3BlY0pzb24oc3RhdGUpXG4gIHJldHVybiByZXNcbn1cblxuZXhwb3J0IGNvbnN0IGlzT0FTMyA9IGNyZWF0ZVNlbGVjdG9yKFxuICAvLyBpc09BUzMgaXMgc3R1YmJlZCBvdXQgaGVyZSB0byB3b3JrIGFyb3VuZCBhbiBpc3N1ZSB3aXRoIGluamVjdGluZyBtb3JlIHNlbGVjdG9yc1xuICAvLyBpbiB0aGUgT0FTMyBwbHVnaW4sIGFuZCB0byBlbnN1cmUgdGhhdCB0aGUgZnVuY3Rpb24gaXMgYWx3YXlzIGF2YWlsYWJsZS5cbiAgLy8gSXQncyBub3QgcGVyZmVjdCwgYnV0IG91ciBoeWJyaWQgKGNvcmUrcGx1Z2luIGNvZGUpIGltcGxlbWVudGF0aW9uIGZvciBPQVMzXG4gIC8vIG5lZWRzIHRoaXMuIC8vS1NcbiAgc3BlYyxcblx0KCkgPT4gZmFsc2VcbilcblxuZXhwb3J0IGNvbnN0IGluZm8gPSBjcmVhdGVTZWxlY3RvcihcbiAgc3BlYyxcblx0c3BlYyA9PiByZXR1cm5TZWxmT3JOZXdNYXAoc3BlYyAmJiBzcGVjLmdldChcImluZm9cIikpXG4pXG5cbmV4cG9ydCBjb25zdCBleHRlcm5hbERvY3MgPSBjcmVhdGVTZWxlY3RvcihcbiAgc3BlYyxcblx0c3BlYyA9PiByZXR1cm5TZWxmT3JOZXdNYXAoc3BlYyAmJiBzcGVjLmdldChcImV4dGVybmFsRG9jc1wiKSlcbilcblxuZXhwb3J0IGNvbnN0IHZlcnNpb24gPSBjcmVhdGVTZWxlY3Rvcihcblx0aW5mbyxcblx0aW5mbyA9PiBpbmZvICYmIGluZm8uZ2V0KFwidmVyc2lvblwiKVxuKVxuXG5leHBvcnQgY29uc3Qgc2VtdmVyID0gY3JlYXRlU2VsZWN0b3IoXG5cdHZlcnNpb24sXG5cdHZlcnNpb24gPT4gL3Y/KFswLTldKilcXC4oWzAtOV0qKVxcLihbMC05XSopL2kuZXhlYyh2ZXJzaW9uKS5zbGljZSgxKVxuKVxuXG5leHBvcnQgY29uc3QgcGF0aHMgPSBjcmVhdGVTZWxlY3Rvcihcblx0c3BlY0pzb25XaXRoUmVzb2x2ZWRTdWJ0cmVlcyxcblx0c3BlYyA9PiBzcGVjLmdldChcInBhdGhzXCIpXG4pXG5cbmV4cG9ydCBjb25zdCB2YWxpZE9wZXJhdGlvbk1ldGhvZHMgPSBjb25zdGFudChbXCJnZXRcIiwgXCJwdXRcIiwgXCJwb3N0XCIsIFwiZGVsZXRlXCIsIFwib3B0aW9uc1wiLCBcImhlYWRcIiwgXCJwYXRjaFwiXSlcblxuZXhwb3J0IGNvbnN0IG9wZXJhdGlvbnMgPSBjcmVhdGVTZWxlY3RvcihcbiAgcGF0aHMsXG4gIHBhdGhzID0+IHtcbiAgICBsZXQgbGlzdCA9IExpc3QoKVxuXG4gICAgaWYgKCFNYXAuaXNNYXAocGF0aHMpIHx8IHBhdGhzLmlzRW1wdHkoKSkge1xuICAgICAgcmV0dXJuIGxpc3RcbiAgICB9XG5cbiAgICBwYXRocy5mb3JFYWNoKChwYXRoLCBwYXRoTmFtZSkgPT4ge1xuICAgICAgaWYoIXBhdGggfHwgIXBhdGguZm9yRWFjaCkge1xuICAgICAgICByZXR1cm4ge31cbiAgICAgIH1cbiAgICAgIHBhdGguZm9yRWFjaCgob3BlcmF0aW9uLCBtZXRob2QpID0+IHtcbiAgICAgICAgaWYoT1BFUkFUSU9OX01FVEhPRFMuaW5kZXhPZihtZXRob2QpIDwgMCkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGxpc3QgPSBsaXN0LnB1c2goZnJvbUpTKHtcbiAgICAgICAgICBwYXRoOiBwYXRoTmFtZSxcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgIGlkOiBgJHttZXRob2R9LSR7cGF0aE5hbWV9YFxuICAgICAgICB9KSlcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIHJldHVybiBsaXN0XG4gIH1cbilcblxuZXhwb3J0IGNvbnN0IGNvbnN1bWVzID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNwZWMsXG4gIHNwZWMgPT4gU2V0KHNwZWMuZ2V0KFwiY29uc3VtZXNcIikpXG4pXG5cbmV4cG9ydCBjb25zdCBwcm9kdWNlcyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzcGVjLFxuICBzcGVjID0+IFNldChzcGVjLmdldChcInByb2R1Y2VzXCIpKVxuKVxuXG5leHBvcnQgY29uc3Qgc2VjdXJpdHkgPSBjcmVhdGVTZWxlY3RvcihcbiAgICBzcGVjLFxuICAgIHNwZWMgPT4gc3BlYy5nZXQoXCJzZWN1cml0eVwiLCBMaXN0KCkpXG4pXG5cbmV4cG9ydCBjb25zdCBzZWN1cml0eURlZmluaXRpb25zID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgc3BlYyxcbiAgICBzcGVjID0+IHNwZWMuZ2V0KFwic2VjdXJpdHlEZWZpbml0aW9uc1wiKVxuKVxuXG5cbmV4cG9ydCBjb25zdCBmaW5kRGVmaW5pdGlvbiA9ICggc3RhdGUsIG5hbWUgKSA9PiB7XG4gIGNvbnN0IHJlc29sdmVkUmVzID0gc3RhdGUuZ2V0SW4oW1wicmVzb2x2ZWRTdWJ0cmVlc1wiLCBcImRlZmluaXRpb25zXCIsIG5hbWVdLCBudWxsKVxuICBjb25zdCB1bnJlc29sdmVkUmVzID0gc3RhdGUuZ2V0SW4oW1wianNvblwiLCBcImRlZmluaXRpb25zXCIsIG5hbWVdLCBudWxsKVxuICByZXR1cm4gcmVzb2x2ZWRSZXMgfHwgdW5yZXNvbHZlZFJlcyB8fCBudWxsXG59XG5cbmV4cG9ydCBjb25zdCBkZWZpbml0aW9ucyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzcGVjLFxuICBzcGVjID0+IHtcbiAgICBjb25zdCByZXMgPSBzcGVjLmdldChcImRlZmluaXRpb25zXCIpXG4gICAgcmV0dXJuIE1hcC5pc01hcChyZXMpID8gcmVzIDogTWFwKClcbiAgfVxuKVxuXG5leHBvcnQgY29uc3QgYmFzZVBhdGggPSBjcmVhdGVTZWxlY3RvcihcbiAgICBzcGVjLFxuICAgIHNwZWMgPT4gc3BlYy5nZXQoXCJiYXNlUGF0aFwiKVxuKVxuXG5leHBvcnQgY29uc3QgaG9zdCA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgIHNwZWMsXG4gICAgc3BlYyA9PiBzcGVjLmdldChcImhvc3RcIilcbilcblxuZXhwb3J0IGNvbnN0IHNjaGVtZXMgPSBjcmVhdGVTZWxlY3RvcihcbiAgICBzcGVjLFxuICAgIHNwZWMgPT4gc3BlYy5nZXQoXCJzY2hlbWVzXCIsIE1hcCgpKVxuKVxuXG5leHBvcnQgY29uc3Qgb3BlcmF0aW9uc1dpdGhSb290SW5oZXJpdGVkID0gY3JlYXRlU2VsZWN0b3IoXG4gIFtcbiAgICBvcGVyYXRpb25zLFxuICAgIGNvbnN1bWVzLFxuICAgIHByb2R1Y2VzXG4gIF0sXG4gIChvcGVyYXRpb25zLCBjb25zdW1lcywgcHJvZHVjZXMpID0+IHtcbiAgICByZXR1cm4gb3BlcmF0aW9ucy5tYXAoIG9wcyA9PiBvcHMudXBkYXRlKFwib3BlcmF0aW9uXCIsIG9wID0+IHtcbiAgICAgIGlmIChNYXAuaXNNYXAob3ApKSB7XG4gICAgICAgIHJldHVybiBvcC53aXRoTXV0YXRpb25zKCBvcCA9PiB7XG4gICAgICAgICAgaWYgKCAhb3AuZ2V0KFwiY29uc3VtZXNcIikgKSB7XG4gICAgICAgICAgICBvcC51cGRhdGUoXCJjb25zdW1lc1wiLCBhID0+IFNldChhKS5tZXJnZShjb25zdW1lcykpXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICggIW9wLmdldChcInByb2R1Y2VzXCIpICkge1xuICAgICAgICAgICAgb3AudXBkYXRlKFwicHJvZHVjZXNcIiwgYSA9PiBTZXQoYSkubWVyZ2UocHJvZHVjZXMpKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gb3BcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHJldHVybiBzb21ldGhpbmcgd2l0aCBJbW11dGFibGUgbWV0aG9kc1xuICAgICAgICByZXR1cm4gTWFwKClcbiAgICAgIH1cblxuICAgIH0pKVxuICB9XG4pXG5cbmV4cG9ydCBjb25zdCB0YWdzID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNwZWMsXG4gIGpzb24gPT4ge1xuICAgIGNvbnN0IHRhZ3MgPSBqc29uLmdldChcInRhZ3NcIiwgTGlzdCgpKVxuICAgIHJldHVybiBMaXN0LmlzTGlzdCh0YWdzKSA/IHRhZ3MuZmlsdGVyKHRhZyA9PiBNYXAuaXNNYXAodGFnKSkgOiBMaXN0KClcbiAgfVxuKVxuXG5leHBvcnQgY29uc3QgdGFnRGV0YWlscyA9IChzdGF0ZSwgdGFnKSA9PiB7XG4gIGxldCBjdXJyZW50VGFncyA9IHRhZ3Moc3RhdGUpIHx8IExpc3QoKVxuICByZXR1cm4gY3VycmVudFRhZ3MuZmlsdGVyKE1hcC5pc01hcCkuZmluZCh0ID0+IHQuZ2V0KFwibmFtZVwiKSA9PT0gdGFnLCBNYXAoKSlcbn1cblxuZXhwb3J0IGNvbnN0IG9wZXJhdGlvbnNXaXRoVGFncyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBvcGVyYXRpb25zV2l0aFJvb3RJbmhlcml0ZWQsXG4gIHRhZ3MsXG4gIChvcGVyYXRpb25zLCB0YWdzKSA9PiB7XG4gICAgcmV0dXJuIG9wZXJhdGlvbnMucmVkdWNlKCAodGFnZ2VkTWFwLCBvcCkgPT4ge1xuICAgICAgbGV0IHRhZ3MgPSBTZXQob3AuZ2V0SW4oW1wib3BlcmF0aW9uXCIsXCJ0YWdzXCJdKSlcbiAgICAgIGlmKHRhZ3MuY291bnQoKSA8IDEpXG4gICAgICAgIHJldHVybiB0YWdnZWRNYXAudXBkYXRlKERFRkFVTFRfVEFHLCBMaXN0KCksIGFyID0+IGFyLnB1c2gob3ApKVxuICAgICAgcmV0dXJuIHRhZ3MucmVkdWNlKCAocmVzLCB0YWcpID0+IHJlcy51cGRhdGUodGFnLCBMaXN0KCksIChhcikgPT4gYXIucHVzaChvcCkpLCB0YWdnZWRNYXAgKVxuICAgIH0sIHRhZ3MucmVkdWNlKCAodGFnZ2VkTWFwLCB0YWcpID0+IHtcbiAgICAgIHJldHVybiB0YWdnZWRNYXAuc2V0KHRhZy5nZXQoXCJuYW1lXCIpLCBMaXN0KCkpXG4gICAgfSAsIE9yZGVyZWRNYXAoKSkpXG4gIH1cbilcblxuZXhwb3J0IGNvbnN0IHRhZ2dlZE9wZXJhdGlvbnMgPSAoc3RhdGUpID0+ICh7IGdldENvbmZpZ3MgfSkgPT4ge1xuICBsZXQgeyB0YWdzU29ydGVyLCBvcGVyYXRpb25zU29ydGVyIH0gPSBnZXRDb25maWdzKClcbiAgcmV0dXJuIG9wZXJhdGlvbnNXaXRoVGFncyhzdGF0ZSlcbiAgICAuc29ydEJ5KFxuICAgICAgKHZhbCwga2V5KSA9PiBrZXksIC8vIGdldCB0aGUgbmFtZSBvZiB0aGUgdGFnIHRvIGJlIHBhc3NlZCB0byB0aGUgc29ydGVyXG4gICAgICAodGFnQSwgdGFnQikgPT4ge1xuICAgICAgICBsZXQgc29ydEZuID0gKHR5cGVvZiB0YWdzU29ydGVyID09PSBcImZ1bmN0aW9uXCIgPyB0YWdzU29ydGVyIDogc29ydGVycy50YWdzU29ydGVyWyB0YWdzU29ydGVyIF0pXG4gICAgICAgIHJldHVybiAoIXNvcnRGbiA/IG51bGwgOiBzb3J0Rm4odGFnQSwgdGFnQikpXG4gICAgICB9XG4gICAgKVxuICAgIC5tYXAoKG9wcywgdGFnKSA9PiB7XG4gICAgICBsZXQgc29ydEZuID0gKHR5cGVvZiBvcGVyYXRpb25zU29ydGVyID09PSBcImZ1bmN0aW9uXCIgPyBvcGVyYXRpb25zU29ydGVyIDogc29ydGVycy5vcGVyYXRpb25zU29ydGVyWyBvcGVyYXRpb25zU29ydGVyIF0pXG4gICAgICBsZXQgb3BlcmF0aW9ucyA9ICghc29ydEZuID8gb3BzIDogb3BzLnNvcnQoc29ydEZuKSlcblxuICAgICAgcmV0dXJuIE1hcCh7IHRhZ0RldGFpbHM6IHRhZ0RldGFpbHMoc3RhdGUsIHRhZyksIG9wZXJhdGlvbnM6IG9wZXJhdGlvbnMgfSlcbiAgICB9KVxufVxuXG5leHBvcnQgY29uc3QgcmVzcG9uc2VzID0gY3JlYXRlU2VsZWN0b3IoXG4gIHN0YXRlLFxuICBzdGF0ZSA9PiBzdGF0ZS5nZXQoIFwicmVzcG9uc2VzXCIsIE1hcCgpIClcbilcblxuZXhwb3J0IGNvbnN0IHJlcXVlc3RzID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgc3RhdGUsXG4gICAgc3RhdGUgPT4gc3RhdGUuZ2V0KCBcInJlcXVlc3RzXCIsIE1hcCgpIClcbilcblxuZXhwb3J0IGNvbnN0IG11dGF0ZWRSZXF1ZXN0cyA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgIHN0YXRlLFxuICAgIHN0YXRlID0+IHN0YXRlLmdldCggXCJtdXRhdGVkUmVxdWVzdHNcIiwgTWFwKCkgKVxuKVxuXG5leHBvcnQgY29uc3QgcmVzcG9uc2VGb3IgPSAoc3RhdGUsIHBhdGgsIG1ldGhvZCkgPT4ge1xuICByZXR1cm4gcmVzcG9uc2VzKHN0YXRlKS5nZXRJbihbcGF0aCwgbWV0aG9kXSwgbnVsbClcbn1cblxuZXhwb3J0IGNvbnN0IHJlcXVlc3RGb3IgPSAoc3RhdGUsIHBhdGgsIG1ldGhvZCkgPT4ge1xuICByZXR1cm4gcmVxdWVzdHMoc3RhdGUpLmdldEluKFtwYXRoLCBtZXRob2RdLCBudWxsKVxufVxuXG5leHBvcnQgY29uc3QgbXV0YXRlZFJlcXVlc3RGb3IgPSAoc3RhdGUsIHBhdGgsIG1ldGhvZCkgPT4ge1xuICByZXR1cm4gbXV0YXRlZFJlcXVlc3RzKHN0YXRlKS5nZXRJbihbcGF0aCwgbWV0aG9kXSwgbnVsbClcbn1cblxuZXhwb3J0IGNvbnN0IGFsbG93VHJ5SXRPdXRGb3IgPSAoKSA9PiB7XG4gIC8vIFRoaXMgaXMganVzdCBhIGhvb2sgZm9yIG5vdy5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHBhcmFtZXRlcldpdGhNZXRhQnlJZGVudGl0eSA9IChzdGF0ZSwgcGF0aE1ldGhvZCwgcGFyYW0pID0+IHtcbiAgY29uc3Qgb3BQYXJhbXMgPSBzcGVjSnNvbldpdGhSZXNvbHZlZFN1YnRyZWVzKHN0YXRlKS5nZXRJbihbXCJwYXRoc1wiLCAuLi5wYXRoTWV0aG9kLCBcInBhcmFtZXRlcnNcIl0sIE9yZGVyZWRNYXAoKSlcbiAgY29uc3QgbWV0YVBhcmFtcyA9IHN0YXRlLmdldEluKFtcIm1ldGFcIiwgXCJwYXRoc1wiLCAuLi5wYXRoTWV0aG9kLCBcInBhcmFtZXRlcnNcIl0sIE9yZGVyZWRNYXAoKSlcblxuICBjb25zdCBtZXJnZWRQYXJhbXMgPSBvcFBhcmFtcy5tYXAoKGN1cnJlbnRQYXJhbSkgPT4ge1xuICAgIGNvbnN0IGluTmFtZUtleWVkTWV0YSA9IG1ldGFQYXJhbXMuZ2V0KGAke3BhcmFtLmdldChcImluXCIpfS4ke3BhcmFtLmdldChcIm5hbWVcIil9YClcbiAgICBjb25zdCBoYXNoS2V5ZWRNZXRhID0gbWV0YVBhcmFtcy5nZXQoYCR7cGFyYW0uZ2V0KFwiaW5cIil9LiR7cGFyYW0uZ2V0KFwibmFtZVwiKX0uaGFzaC0ke3BhcmFtLmhhc2hDb2RlKCl9YClcbiAgICByZXR1cm4gT3JkZXJlZE1hcCgpLm1lcmdlKFxuICAgICAgY3VycmVudFBhcmFtLFxuICAgICAgaW5OYW1lS2V5ZWRNZXRhLFxuICAgICAgaGFzaEtleWVkTWV0YVxuICAgIClcbiAgfSlcbiAgcmV0dXJuIG1lcmdlZFBhcmFtcy5maW5kKGN1cnIgPT4gY3Vyci5nZXQoXCJpblwiKSA9PT0gcGFyYW0uZ2V0KFwiaW5cIikgJiYgY3Vyci5nZXQoXCJuYW1lXCIpID09PSBwYXJhbS5nZXQoXCJuYW1lXCIpLCBPcmRlcmVkTWFwKCkpXG59XG5cbmV4cG9ydCBjb25zdCBwYXJhbWV0ZXJJbmNsdXNpb25TZXR0aW5nRm9yID0gKHN0YXRlLCBwYXRoTWV0aG9kLCBwYXJhbU5hbWUsIHBhcmFtSW4pID0+IHtcbiAgY29uc3QgcGFyYW1LZXkgPSBgJHtwYXJhbUlufS4ke3BhcmFtTmFtZX1gXG4gIHJldHVybiBzdGF0ZS5nZXRJbihbXCJtZXRhXCIsIFwicGF0aHNcIiwgLi4ucGF0aE1ldGhvZCwgXCJwYXJhbWV0ZXJfaW5jbHVzaW9uc1wiLCBwYXJhbUtleV0sIGZhbHNlKVxufVxuXG5cbmV4cG9ydCBjb25zdCBwYXJhbWV0ZXJXaXRoTWV0YSA9IChzdGF0ZSwgcGF0aE1ldGhvZCwgcGFyYW1OYW1lLCBwYXJhbUluKSA9PiB7XG4gIGNvbnN0IG9wUGFyYW1zID0gc3BlY0pzb25XaXRoUmVzb2x2ZWRTdWJ0cmVlcyhzdGF0ZSkuZ2V0SW4oW1wicGF0aHNcIiwgLi4ucGF0aE1ldGhvZCwgXCJwYXJhbWV0ZXJzXCJdLCBPcmRlcmVkTWFwKCkpXG4gIGNvbnN0IGN1cnJlbnRQYXJhbSA9IG9wUGFyYW1zLmZpbmQocGFyYW0gPT4gcGFyYW0uZ2V0KFwiaW5cIikgPT09IHBhcmFtSW4gJiYgcGFyYW0uZ2V0KFwibmFtZVwiKSA9PT0gcGFyYW1OYW1lLCBPcmRlcmVkTWFwKCkpXG4gIHJldHVybiBwYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkoc3RhdGUsIHBhdGhNZXRob2QsIGN1cnJlbnRQYXJhbSlcbn1cblxuZXhwb3J0IGNvbnN0IG9wZXJhdGlvbldpdGhNZXRhID0gKHN0YXRlLCBwYXRoLCBtZXRob2QpID0+IHtcbiAgY29uc3Qgb3AgPSBzcGVjSnNvbldpdGhSZXNvbHZlZFN1YnRyZWVzKHN0YXRlKS5nZXRJbihbXCJwYXRoc1wiLCBwYXRoLCBtZXRob2RdLCBPcmRlcmVkTWFwKCkpXG4gIGNvbnN0IG1ldGEgPSBzdGF0ZS5nZXRJbihbXCJtZXRhXCIsIFwicGF0aHNcIiwgcGF0aCwgbWV0aG9kXSwgT3JkZXJlZE1hcCgpKVxuXG4gIGNvbnN0IG1lcmdlZFBhcmFtcyA9IG9wLmdldChcInBhcmFtZXRlcnNcIiwgTGlzdCgpKS5tYXAoKHBhcmFtKSA9PiB7XG4gICAgcmV0dXJuIHBhcmFtZXRlcldpdGhNZXRhQnlJZGVudGl0eShzdGF0ZSwgW3BhdGgsIG1ldGhvZF0sIHBhcmFtKVxuICB9KVxuXG4gIHJldHVybiBPcmRlcmVkTWFwKClcbiAgICAubWVyZ2Uob3AsIG1ldGEpXG4gICAgLnNldChcInBhcmFtZXRlcnNcIiwgbWVyZ2VkUGFyYW1zKVxufVxuXG4vLyBHZXQgdGhlIHBhcmFtZXRlciB2YWx1ZSBieSBwYXJhbWV0ZXIgbmFtZVxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhcmFtZXRlcihzdGF0ZSwgcGF0aE1ldGhvZCwgbmFtZSwgaW5UeXBlKSB7XG4gIHBhdGhNZXRob2QgPSBwYXRoTWV0aG9kIHx8IFtdXG4gIGxldCBwYXJhbXMgPSBzdGF0ZS5nZXRJbihbXCJtZXRhXCIsIFwicGF0aHNcIiwgLi4ucGF0aE1ldGhvZCwgXCJwYXJhbWV0ZXJzXCJdLCBmcm9tSlMoW10pKVxuICByZXR1cm4gcGFyYW1zLmZpbmQoIChwKSA9PiB7XG4gICAgcmV0dXJuIE1hcC5pc01hcChwKSAmJiBwLmdldChcIm5hbWVcIikgPT09IG5hbWUgJiYgcC5nZXQoXCJpblwiKSA9PT0gaW5UeXBlXG4gIH0pIHx8IE1hcCgpIC8vIEFsd2F5cyByZXR1cm4gYSBtYXBcbn1cblxuZXhwb3J0IGNvbnN0IGhhc0hvc3QgPSBjcmVhdGVTZWxlY3RvcihcbiAgc3BlYyxcbiAgc3BlYyA9PiB7XG4gICAgY29uc3QgaG9zdCA9IHNwZWMuZ2V0KFwiaG9zdFwiKVxuICAgIHJldHVybiB0eXBlb2YgaG9zdCA9PT0gXCJzdHJpbmdcIiAmJiBob3N0Lmxlbmd0aCA+IDAgJiYgaG9zdFswXSAhPT0gXCIvXCJcbiAgfVxuKVxuXG4vLyBHZXQgdGhlIHBhcmFtZXRlciB2YWx1ZXMsIHRoYXQgdGhlIHVzZXIgZmlsbGVkIG91dFxuZXhwb3J0IGZ1bmN0aW9uIHBhcmFtZXRlclZhbHVlcyhzdGF0ZSwgcGF0aE1ldGhvZCwgaXNYbWwpIHtcbiAgcGF0aE1ldGhvZCA9IHBhdGhNZXRob2QgfHwgW11cbiAgbGV0IHBhcmFtVmFsdWVzID0gb3BlcmF0aW9uV2l0aE1ldGEoc3RhdGUsIC4uLnBhdGhNZXRob2QpLmdldChcInBhcmFtZXRlcnNcIiwgTGlzdCgpKVxuICByZXR1cm4gcGFyYW1WYWx1ZXMucmVkdWNlKCAoaGFzaCwgcCkgPT4ge1xuICAgIGxldCB2YWx1ZSA9IGlzWG1sICYmIHAuZ2V0KFwiaW5cIikgPT09IFwiYm9keVwiID8gcC5nZXQoXCJ2YWx1ZV94bWxcIikgOiBwLmdldChcInZhbHVlXCIpXG4gICAgaWYgKExpc3QuaXNMaXN0KHZhbHVlKSkge1xuICAgICAgdmFsdWUgPSB2YWx1ZS5maWx0ZXIodiA9PiB2ICE9PSBcIlwiKVxuICAgIH1cbiAgICByZXR1cm4gaGFzaC5zZXQocGFyYW1Ub0lkZW50aWZpZXIocCwgeyBhbGxvd0hhc2hlczogZmFsc2UgfSksIHZhbHVlKVxuICB9LCBmcm9tSlMoe30pKVxufVxuXG4vLyBUcnVlIGlmIGFueSBwYXJhbWV0ZXIgaW5jbHVkZXMgYGluOiA/YFxuZXhwb3J0IGZ1bmN0aW9uIHBhcmFtZXRlcnNJbmNsdWRlSW4ocGFyYW1ldGVycywgaW5WYWx1ZT1cIlwiKSB7XG4gIGlmKExpc3QuaXNMaXN0KHBhcmFtZXRlcnMpKSB7XG4gICAgcmV0dXJuIHBhcmFtZXRlcnMuc29tZSggcCA9PiBNYXAuaXNNYXAocCkgJiYgcC5nZXQoXCJpblwiKSA9PT0gaW5WYWx1ZSApXG4gIH1cbn1cblxuLy8gVHJ1ZSBpZiBhbnkgcGFyYW1ldGVyIGluY2x1ZGVzIGB0eXBlOiA/YFxuZXhwb3J0IGZ1bmN0aW9uIHBhcmFtZXRlcnNJbmNsdWRlVHlwZShwYXJhbWV0ZXJzLCB0eXBlVmFsdWU9XCJcIikge1xuICBpZihMaXN0LmlzTGlzdChwYXJhbWV0ZXJzKSkge1xuICAgIHJldHVybiBwYXJhbWV0ZXJzLnNvbWUoIHAgPT4gTWFwLmlzTWFwKHApICYmIHAuZ2V0KFwidHlwZVwiKSA9PT0gdHlwZVZhbHVlIClcbiAgfVxufVxuXG4vLyBHZXQgdGhlIGNvbnN1bWVzL3Byb2R1Y2VzIHZhbHVlIHRoYXQgdGhlIHVzZXIgc2VsZWN0ZWRcbmV4cG9ydCBmdW5jdGlvbiBjb250ZW50VHlwZVZhbHVlcyhzdGF0ZSwgcGF0aE1ldGhvZCkge1xuICBwYXRoTWV0aG9kID0gcGF0aE1ldGhvZCB8fCBbXVxuICBsZXQgb3AgPSBzcGVjSnNvbldpdGhSZXNvbHZlZFN1YnRyZWVzKHN0YXRlKS5nZXRJbihbXCJwYXRoc1wiLCAuLi5wYXRoTWV0aG9kXSwgZnJvbUpTKHt9KSlcbiAgbGV0IG1ldGEgPSBzdGF0ZS5nZXRJbihbXCJtZXRhXCIsIFwicGF0aHNcIiwgLi4ucGF0aE1ldGhvZF0sIGZyb21KUyh7fSkpXG4gIGxldCBwcm9kdWNlc1ZhbHVlID0gY3VycmVudFByb2R1Y2VzRm9yKHN0YXRlLCBwYXRoTWV0aG9kKVxuXG4gIGNvbnN0IHBhcmFtZXRlcnMgPSBvcC5nZXQoXCJwYXJhbWV0ZXJzXCIpIHx8IG5ldyBMaXN0KClcblxuICBjb25zdCByZXF1ZXN0Q29udGVudFR5cGUgPSAoXG4gICAgbWV0YS5nZXQoXCJjb25zdW1lc192YWx1ZVwiKSA/IG1ldGEuZ2V0KFwiY29uc3VtZXNfdmFsdWVcIilcbiAgICAgIDogcGFyYW1ldGVyc0luY2x1ZGVUeXBlKHBhcmFtZXRlcnMsIFwiZmlsZVwiKSA/IFwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiXG4gICAgICA6IHBhcmFtZXRlcnNJbmNsdWRlVHlwZShwYXJhbWV0ZXJzLCBcImZvcm1EYXRhXCIpID8gXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIlxuICAgICAgOiB1bmRlZmluZWRcbiAgKVxuXG4gIHJldHVybiBmcm9tSlMoe1xuICAgIHJlcXVlc3RDb250ZW50VHlwZSxcbiAgICByZXNwb25zZUNvbnRlbnRUeXBlOiBwcm9kdWNlc1ZhbHVlXG4gIH0pXG59XG5cbi8vIEdldCB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHByb2R1Y2VzIHZhbHVlIGZvciBhbiBvcGVyYXRpb25cbmV4cG9ydCBmdW5jdGlvbiBjdXJyZW50UHJvZHVjZXNGb3Ioc3RhdGUsIHBhdGhNZXRob2QpIHtcbiAgcGF0aE1ldGhvZCA9IHBhdGhNZXRob2QgfHwgW11cblxuICBjb25zdCBvcGVyYXRpb24gPSBzcGVjSnNvbldpdGhSZXNvbHZlZFN1YnRyZWVzKHN0YXRlKS5nZXRJbihbIFwicGF0aHNcIiwgLi4ucGF0aE1ldGhvZF0sIG51bGwpXG5cbiAgaWYob3BlcmF0aW9uID09PSBudWxsKSB7XG4gICAgLy8gcmV0dXJuIG5vdGhpbmcgaWYgdGhlIG9wZXJhdGlvbiBkb2VzIG5vdCBleGlzdFxuICAgIHJldHVyblxuICB9XG5cbiAgY29uc3QgY3VycmVudFByb2R1Y2VzVmFsdWUgPSBzdGF0ZS5nZXRJbihbXCJtZXRhXCIsIFwicGF0aHNcIiwgLi4ucGF0aE1ldGhvZCwgXCJwcm9kdWNlc192YWx1ZVwiXSwgbnVsbClcbiAgY29uc3QgZmlyc3RQcm9kdWNlc0FycmF5SXRlbSA9IG9wZXJhdGlvbi5nZXRJbihbXCJwcm9kdWNlc1wiLCAwXSwgbnVsbClcblxuICByZXR1cm4gY3VycmVudFByb2R1Y2VzVmFsdWUgfHwgZmlyc3RQcm9kdWNlc0FycmF5SXRlbSB8fCBcImFwcGxpY2F0aW9uL2pzb25cIlxuXG59XG5cbi8vIEdldCB0aGUgcHJvZHVjZXMgb3B0aW9ucyBmb3IgYW4gb3BlcmF0aW9uXG5leHBvcnQgZnVuY3Rpb24gcHJvZHVjZXNPcHRpb25zRm9yKHN0YXRlLCBwYXRoTWV0aG9kKSB7XG4gIHBhdGhNZXRob2QgPSBwYXRoTWV0aG9kIHx8IFtdXG5cbiAgY29uc3Qgc3BlYyA9IHNwZWNKc29uV2l0aFJlc29sdmVkU3VidHJlZXMoc3RhdGUpXG4gIGNvbnN0IG9wZXJhdGlvbiA9IHNwZWMuZ2V0SW4oWyBcInBhdGhzXCIsIC4uLnBhdGhNZXRob2RdLCBudWxsKVxuXG4gIGlmKG9wZXJhdGlvbiA9PT0gbnVsbCkge1xuICAgIC8vIHJldHVybiBub3RoaW5nIGlmIHRoZSBvcGVyYXRpb24gZG9lcyBub3QgZXhpc3RcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IFtwYXRoXSA9IHBhdGhNZXRob2RcblxuICBjb25zdCBvcGVyYXRpb25Qcm9kdWNlcyA9IG9wZXJhdGlvbi5nZXQoXCJwcm9kdWNlc1wiLCBudWxsKVxuICBjb25zdCBwYXRoSXRlbVByb2R1Y2VzID0gc3BlYy5nZXRJbihbXCJwYXRoc1wiLCBwYXRoLCBcInByb2R1Y2VzXCJdLCBudWxsKVxuICBjb25zdCBnbG9iYWxQcm9kdWNlcyA9IHNwZWMuZ2V0SW4oW1wicHJvZHVjZXNcIl0sIG51bGwpXG5cbiAgcmV0dXJuIG9wZXJhdGlvblByb2R1Y2VzIHx8IHBhdGhJdGVtUHJvZHVjZXMgfHwgZ2xvYmFsUHJvZHVjZXNcbn1cblxuLy8gR2V0IHRoZSBjb25zdW1lcyBvcHRpb25zIGZvciBhbiBvcGVyYXRpb25cbmV4cG9ydCBmdW5jdGlvbiBjb25zdW1lc09wdGlvbnNGb3Ioc3RhdGUsIHBhdGhNZXRob2QpIHtcbiAgcGF0aE1ldGhvZCA9IHBhdGhNZXRob2QgfHwgW11cblxuICBjb25zdCBzcGVjID0gc3BlY0pzb25XaXRoUmVzb2x2ZWRTdWJ0cmVlcyhzdGF0ZSlcbiAgY29uc3Qgb3BlcmF0aW9uID0gc3BlYy5nZXRJbihbXCJwYXRoc1wiLCAuLi5wYXRoTWV0aG9kXSwgbnVsbClcblxuICBpZiAob3BlcmF0aW9uID09PSBudWxsKSB7XG4gICAgLy8gcmV0dXJuIG5vdGhpbmcgaWYgdGhlIG9wZXJhdGlvbiBkb2VzIG5vdCBleGlzdFxuICAgIHJldHVyblxuICB9XG5cbiAgY29uc3QgW3BhdGhdID0gcGF0aE1ldGhvZFxuXG4gIGNvbnN0IG9wZXJhdGlvbkNvbnN1bWVzID0gb3BlcmF0aW9uLmdldChcImNvbnN1bWVzXCIsIG51bGwpXG4gIGNvbnN0IHBhdGhJdGVtQ29uc3VtZXMgPSBzcGVjLmdldEluKFtcInBhdGhzXCIsIHBhdGgsIFwiY29uc3VtZXNcIl0sIG51bGwpXG4gIGNvbnN0IGdsb2JhbENvbnN1bWVzID0gc3BlYy5nZXRJbihbXCJjb25zdW1lc1wiXSwgbnVsbClcblxuICByZXR1cm4gb3BlcmF0aW9uQ29uc3VtZXMgfHwgcGF0aEl0ZW1Db25zdW1lcyB8fCBnbG9iYWxDb25zdW1lc1xufVxuXG5leHBvcnQgY29uc3Qgb3BlcmF0aW9uU2NoZW1lID0gKCBzdGF0ZSwgcGF0aCwgbWV0aG9kICkgPT4ge1xuICBsZXQgdXJsID0gc3RhdGUuZ2V0KFwidXJsXCIpXG4gIGxldCBtYXRjaFJlc3VsdCA9IHVybC5tYXRjaCgvXihbYS16XVthLXowLTkrXFwtLl0qKTovKVxuICBsZXQgdXJsU2NoZW1lID0gQXJyYXkuaXNBcnJheShtYXRjaFJlc3VsdCkgPyBtYXRjaFJlc3VsdFsxXSA6IG51bGxcblxuICByZXR1cm4gc3RhdGUuZ2V0SW4oW1wic2NoZW1lXCIsIHBhdGgsIG1ldGhvZF0pIHx8IHN0YXRlLmdldEluKFtcInNjaGVtZVwiLCBcIl9kZWZhdWx0U2NoZW1lXCJdKSB8fCB1cmxTY2hlbWUgfHwgXCJcIlxufVxuXG5leHBvcnQgY29uc3QgY2FuRXhlY3V0ZVNjaGVtZSA9ICggc3RhdGUsIHBhdGgsIG1ldGhvZCApID0+IHtcbiAgcmV0dXJuIFtcImh0dHBcIiwgXCJodHRwc1wiXS5pbmRleE9mKG9wZXJhdGlvblNjaGVtZShzdGF0ZSwgcGF0aCwgbWV0aG9kKSkgPiAtMVxufVxuXG5leHBvcnQgY29uc3QgdmFsaWRhdGlvbkVycm9ycyA9IChzdGF0ZSwgcGF0aE1ldGhvZCkgPT4ge1xuICBwYXRoTWV0aG9kID0gcGF0aE1ldGhvZCB8fCBbXVxuICBjb25zdCBwYXJhbVZhbHVlcyA9IHN0YXRlLmdldEluKFtcIm1ldGFcIiwgXCJwYXRoc1wiLCAuLi5wYXRoTWV0aG9kLCBcInBhcmFtZXRlcnNcIl0sIGZyb21KUyhbXSkpXG4gIGNvbnN0IHJlc3VsdCA9IFtdXG5cbiAgaWYgKHBhcmFtVmFsdWVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHJlc3VsdFxuXG4gIGNvbnN0IGdldEVycm9yc1dpdGhQYXRocyA9IChlcnJvcnMsIHBhdGggPSBbXSkgPT4ge1xuICAgIGNvbnN0IGdldE5lc3RlZEVycm9yc1dpdGhQYXRocyA9IChlLCBwYXRoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyUGF0aCA9IFsuLi5wYXRoLCBlLmdldChcInByb3BLZXlcIikgfHwgZS5nZXQoXCJpbmRleFwiKV1cbiAgICAgIHJldHVybiBNYXAuaXNNYXAoZS5nZXQoXCJlcnJvclwiKSlcbiAgICAgICAgPyBnZXRFcnJvcnNXaXRoUGF0aHMoZS5nZXQoXCJlcnJvclwiKSwgY3VyclBhdGgpXG4gICAgICAgIDogeyBlcnJvcjogZS5nZXQoXCJlcnJvclwiKSwgcGF0aDogY3VyclBhdGggfVxuICAgIH1cblxuICAgIHJldHVybiBMaXN0LmlzTGlzdChlcnJvcnMpXG4gICAgID8gZXJyb3JzLm1hcCgoZSkgPT4gKE1hcC5pc01hcChlKSA/IGdldE5lc3RlZEVycm9yc1dpdGhQYXRocyhlLCBwYXRoKSA6IHsgZXJyb3I6IGUsIHBhdGggfSkpXG4gICAgIDogZ2V0TmVzdGVkRXJyb3JzV2l0aFBhdGhzKGVycm9ycywgcGF0aClcbiAgfVxuXG4gIGNvbnN0IGZvcm1hdEVycm9yID0gKGVycm9yLCBwYXRoLCBwYXJhbU5hbWUpID0+IHtcbiAgICBwYXRoID0gcGF0aC5yZWR1Y2UoKGFjYywgY3VycikgPT4ge1xuICAgICAgcmV0dXJuIHR5cGVvZiBjdXJyID09PSBcIm51bWJlclwiXG4gICAgICAgID8gYCR7YWNjfVske2N1cnJ9XWBcbiAgICAgICAgOiBhY2NcbiAgICAgICAgPyBgJHthY2N9LiR7Y3Vycn1gXG4gICAgICAgIDogY3VyclxuICAgIH0sIFwiXCIpXG4gICAgcmV0dXJuIGBGb3IgJyR7cGFyYW1OYW1lfScke3BhdGggPyBgIGF0IHBhdGggJyR7cGF0aH0nYCA6IFwiXCJ9OiAke2Vycm9yfS5gXG4gIH1cblxuICBwYXJhbVZhbHVlcy5mb3JFYWNoKCAocCwga2V5KSA9PiB7XG4gICAgY29uc3QgcGFyYW1OYW1lID0ga2V5LnNwbGl0KFwiLlwiKS5zbGljZSgxLCAtMSkuam9pbihcIi5cIilcbiAgICBjb25zdCBlcnJvcnMgPSBwLmdldChcImVycm9yc1wiKVxuICAgIGlmIChlcnJvcnMgJiYgZXJyb3JzLmNvdW50KCkpIHtcbiAgICAgIGNvbnN0IGVycm9yc1dpdGhQYXRocyA9IGdldEVycm9yc1dpdGhQYXRocyhlcnJvcnMpXG4gICAgICBlcnJvcnNXaXRoUGF0aHMuZm9yRWFjaCgoe2Vycm9yLCBwYXRofSkgPT4ge1xuICAgICAgICByZXN1bHQucHVzaChmb3JtYXRFcnJvcihlcnJvciwgcGF0aCwgcGFyYW1OYW1lKSlcbiAgICAgIH0pXG4gICAgfVxuICB9KVxuICByZXR1cm4gcmVzdWx0XG59XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUJlZm9yZUV4ZWN1dGUgPSAoc3RhdGUsIHBhdGhNZXRob2QpID0+IHtcbiAgcmV0dXJuIHZhbGlkYXRpb25FcnJvcnMoc3RhdGUsIHBhdGhNZXRob2QpLmxlbmd0aCA9PT0gMFxufVxuXG5leHBvcnQgY29uc3QgZ2V0T0FTM1JlcXVpcmVkUmVxdWVzdEJvZHlDb250ZW50VHlwZSA9IChzdGF0ZSwgcGF0aE1ldGhvZCkgPT4ge1xuICBsZXQgcmVxdWlyZWRPYmogPSB7XG4gICAgcmVxdWVzdEJvZHk6IGZhbHNlLFxuICAgIHJlcXVlc3RDb250ZW50VHlwZToge31cbiAgfVxuICBsZXQgcmVxdWVzdEJvZHkgPSBzdGF0ZS5nZXRJbihbXCJyZXNvbHZlZFN1YnRyZWVzXCIsIFwicGF0aHNcIiwgLi4ucGF0aE1ldGhvZCwgXCJyZXF1ZXN0Qm9keVwiXSwgZnJvbUpTKFtdKSlcbiAgaWYgKHJlcXVlc3RCb2R5LnNpemUgPCAxKSB7XG4gICAgcmV0dXJuIHJlcXVpcmVkT2JqXG4gIH1cbiAgaWYgKHJlcXVlc3RCb2R5LmdldEluKFtcInJlcXVpcmVkXCJdKSkge1xuICAgIHJlcXVpcmVkT2JqLnJlcXVlc3RCb2R5ID0gcmVxdWVzdEJvZHkuZ2V0SW4oW1wicmVxdWlyZWRcIl0pXG4gIH1cbiAgcmVxdWVzdEJvZHkuZ2V0SW4oW1wiY29udGVudFwiXSkuZW50cnlTZXEoKS5mb3JFYWNoKChjb250ZW50VHlwZSkgPT4geyAvLyBlLmcgYXBwbGljYXRpb24vanNvblxuICAgIGNvbnN0IGtleSA9IGNvbnRlbnRUeXBlWzBdXG4gICAgaWYgKGNvbnRlbnRUeXBlWzFdLmdldEluKFtcInNjaGVtYVwiLCBcInJlcXVpcmVkXCJdKSkge1xuICAgICAgY29uc3QgdmFsID0gY29udGVudFR5cGVbMV0uZ2V0SW4oW1wic2NoZW1hXCIsIFwicmVxdWlyZWRcIl0pLnRvSlMoKVxuICAgICAgcmVxdWlyZWRPYmoucmVxdWVzdENvbnRlbnRUeXBlW2tleV0gPSB2YWxcbiAgICB9XG4gIH0pXG4gIHJldHVybiByZXF1aXJlZE9ialxufVxuXG5leHBvcnQgY29uc3QgaXNNZWRpYVR5cGVTY2hlbWFQcm9wZXJ0aWVzRXF1YWwgPSAoIHN0YXRlLCBwYXRoTWV0aG9kLCBjdXJyZW50TWVkaWFUeXBlLCB0YXJnZXRNZWRpYVR5cGUpID0+IHtcbiAgaWYoKGN1cnJlbnRNZWRpYVR5cGUgfHwgdGFyZ2V0TWVkaWFUeXBlKSAmJiBjdXJyZW50TWVkaWFUeXBlID09PSB0YXJnZXRNZWRpYVR5cGUgKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuICBsZXQgcmVxdWVzdEJvZHlDb250ZW50ID0gc3RhdGUuZ2V0SW4oW1wicmVzb2x2ZWRTdWJ0cmVlc1wiLCBcInBhdGhzXCIsIC4uLnBhdGhNZXRob2QsIFwicmVxdWVzdEJvZHlcIiwgXCJjb250ZW50XCJdLCBmcm9tSlMoW10pKVxuICBpZiAocmVxdWVzdEJvZHlDb250ZW50LnNpemUgPCAyIHx8ICFjdXJyZW50TWVkaWFUeXBlIHx8ICF0YXJnZXRNZWRpYVR5cGUpIHtcbiAgICAvLyBub3RoaW5nIHRvIGNvbXBhcmVcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBsZXQgY3VycmVudE1lZGlhVHlwZVNjaGVtYVByb3BlcnRpZXMgPSByZXF1ZXN0Qm9keUNvbnRlbnQuZ2V0SW4oW2N1cnJlbnRNZWRpYVR5cGUsIFwic2NoZW1hXCIsIFwicHJvcGVydGllc1wiXSwgZnJvbUpTKFtdKSlcbiAgbGV0IHRhcmdldE1lZGlhVHlwZVNjaGVtYVByb3BlcnRpZXMgPSByZXF1ZXN0Qm9keUNvbnRlbnQuZ2V0SW4oW3RhcmdldE1lZGlhVHlwZSwgXCJzY2hlbWFcIiwgXCJwcm9wZXJ0aWVzXCJdLCBmcm9tSlMoW10pKVxuICByZXR1cm4gISFjdXJyZW50TWVkaWFUeXBlU2NoZW1hUHJvcGVydGllcy5lcXVhbHModGFyZ2V0TWVkaWFUeXBlU2NoZW1hUHJvcGVydGllcylcbn1cblxuZnVuY3Rpb24gcmV0dXJuU2VsZk9yTmV3TWFwKG9iaikge1xuICAvLyByZXR1cm5zIG9iaiBpZiBvYmogaXMgYW4gSW1tdXRhYmxlIG1hcCwgZWxzZSByZXR1cm5zIGEgbmV3IE1hcFxuICByZXR1cm4gTWFwLmlzTWFwKG9iaikgPyBvYmogOiBuZXcgTWFwKClcbn1cbiIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImRlZmF1bHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfaXNTdHJpbmdfZTZmYThhNWJfX1tcImRlZmF1bHRcIl07IH0gfSk7IiwidmFyIHggPSBmdW5jdGlvbih5KSB7XG5cdHZhciB4ID0ge307IF9fd2VicGFja19yZXF1aXJlX18uZCh4LCB5KTsgcmV0dXJuIHhcbn0gXG52YXIgeSA9IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgeyByZXR1cm4geDsgfTsgfVxudmFyIF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wiZGVmYXVsdFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX2xvZGFzaF9kZWJvdW5jZV8zNTQwYmFiZV9fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfbG9kYXNoX3NldF9iNGIxNWVlNV9fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfbG9kYXNoX2ZwX2Fzc29jUGF0aF9mOWQ2NGUzM19fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJpbXBvcnQgWUFNTCwgeyBKU09OX1NDSEVNQSB9IGZyb20gXCJqcy15YW1sXCJcbmltcG9ydCB7IE1hcCBhcyBJbW11dGFibGVNYXAgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCBwYXJzZVVybCBmcm9tIFwidXJsLXBhcnNlXCJcbmltcG9ydCBpc1N0cmluZyBmcm9tIFwibG9kYXNoL2lzU3RyaW5nXCJcbmltcG9ydCBkZWJvdW5jZSBmcm9tIFwibG9kYXNoL2RlYm91bmNlXCJcbmltcG9ydCBzZXQgZnJvbSBcImxvZGFzaC9zZXRcIlxuaW1wb3J0IGFzc29jUGF0aCBmcm9tIFwibG9kYXNoL2ZwL2Fzc29jUGF0aFwiXG5pbXBvcnQgY29uc3RhbnQgZnJvbSBcImxvZGFzaC9jb25zdGFudFwiXG5cbmltcG9ydCB7IHBhcmFtVG9WYWx1ZSwgaXNFbXB0eVZhbHVlIH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuXG4vLyBBY3Rpb25zIGNvbmZvcm0gdG8gRlNBIChmbHV4LXN0YW5kYXJkLWFjdGlvbnMpXG4vLyB7dHlwZTogc3RyaW5nLHBheWxvYWQ6IEFueXxFcnJvciwgbWV0YTogb2JqLCBlcnJvcjogYm9vbH1cblxuZXhwb3J0IGNvbnN0IFVQREFURV9TUEVDID0gXCJzcGVjX3VwZGF0ZV9zcGVjXCJcbmV4cG9ydCBjb25zdCBVUERBVEVfVVJMID0gXCJzcGVjX3VwZGF0ZV91cmxcIlxuZXhwb3J0IGNvbnN0IFVQREFURV9KU09OID0gXCJzcGVjX3VwZGF0ZV9qc29uXCJcbmV4cG9ydCBjb25zdCBVUERBVEVfUEFSQU0gPSBcInNwZWNfdXBkYXRlX3BhcmFtXCJcbmV4cG9ydCBjb25zdCBVUERBVEVfRU1QVFlfUEFSQU1fSU5DTFVTSU9OID0gXCJzcGVjX3VwZGF0ZV9lbXB0eV9wYXJhbV9pbmNsdXNpb25cIlxuZXhwb3J0IGNvbnN0IFZBTElEQVRFX1BBUkFNUyA9IFwic3BlY192YWxpZGF0ZV9wYXJhbVwiXG5leHBvcnQgY29uc3QgU0VUX1JFU1BPTlNFID0gXCJzcGVjX3NldF9yZXNwb25zZVwiXG5leHBvcnQgY29uc3QgU0VUX1JFUVVFU1QgPSBcInNwZWNfc2V0X3JlcXVlc3RcIlxuZXhwb3J0IGNvbnN0IFNFVF9NVVRBVEVEX1JFUVVFU1QgPSBcInNwZWNfc2V0X211dGF0ZWRfcmVxdWVzdFwiXG5leHBvcnQgY29uc3QgTE9HX1JFUVVFU1QgPSBcInNwZWNfbG9nX3JlcXVlc3RcIlxuZXhwb3J0IGNvbnN0IENMRUFSX1JFU1BPTlNFID0gXCJzcGVjX2NsZWFyX3Jlc3BvbnNlXCJcbmV4cG9ydCBjb25zdCBDTEVBUl9SRVFVRVNUID0gXCJzcGVjX2NsZWFyX3JlcXVlc3RcIlxuZXhwb3J0IGNvbnN0IENMRUFSX1ZBTElEQVRFX1BBUkFNUyA9IFwic3BlY19jbGVhcl92YWxpZGF0ZV9wYXJhbVwiXG5leHBvcnQgY29uc3QgVVBEQVRFX09QRVJBVElPTl9NRVRBX1ZBTFVFID0gXCJzcGVjX3VwZGF0ZV9vcGVyYXRpb25fbWV0YV92YWx1ZVwiXG5leHBvcnQgY29uc3QgVVBEQVRFX1JFU09MVkVEID0gXCJzcGVjX3VwZGF0ZV9yZXNvbHZlZFwiXG5leHBvcnQgY29uc3QgVVBEQVRFX1JFU09MVkVEX1NVQlRSRUUgPSBcInNwZWNfdXBkYXRlX3Jlc29sdmVkX3N1YnRyZWVcIlxuZXhwb3J0IGNvbnN0IFNFVF9TQ0hFTUUgPSBcInNldF9zY2hlbWVcIlxuXG5jb25zdCB0b1N0ciA9IChzdHIpID0+IGlzU3RyaW5nKHN0cikgPyBzdHIgOiBcIlwiXG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVTcGVjKHNwZWMpIHtcbiAgY29uc3QgY2xlYW5TcGVjID0gKHRvU3RyKHNwZWMpKS5yZXBsYWNlKC9cXHQvZywgXCIgIFwiKVxuICBpZih0eXBlb2Ygc3BlYyA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBVUERBVEVfU1BFQyxcbiAgICAgIHBheWxvYWQ6IGNsZWFuU3BlY1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlUmVzb2x2ZWQoc3BlYykge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9SRVNPTFZFRCxcbiAgICBwYXlsb2FkOiBzcGVjXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVVybCh1cmwpIHtcbiAgcmV0dXJuIHt0eXBlOiBVUERBVEVfVVJMLCBwYXlsb2FkOiB1cmx9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVKc29uU3BlYyhqc29uKSB7XG4gIHJldHVybiB7dHlwZTogVVBEQVRFX0pTT04sIHBheWxvYWQ6IGpzb259XG59XG5cbmV4cG9ydCBjb25zdCBwYXJzZVRvSnNvbiA9IChzdHIpID0+ICh7c3BlY0FjdGlvbnMsIHNwZWNTZWxlY3RvcnMsIGVyckFjdGlvbnN9KSA9PiB7XG4gIGxldCB7IHNwZWNTdHIgfSA9IHNwZWNTZWxlY3RvcnNcblxuICBsZXQganNvbiA9IG51bGxcbiAgdHJ5IHtcbiAgICBzdHIgPSBzdHIgfHwgc3BlY1N0cigpXG4gICAgZXJyQWN0aW9ucy5jbGVhcih7IHNvdXJjZTogXCJwYXJzZXJcIiB9KVxuICAgIGpzb24gPSBZQU1MLmxvYWQoc3RyLCB7IHNjaGVtYTogSlNPTl9TQ0hFTUEgfSlcbiAgfSBjYXRjaChlKSB7XG4gICAgLy8gVE9ETzogcHVzaCBlcnJvciB0byBzdGF0ZVxuICAgIGNvbnNvbGUuZXJyb3IoZSlcbiAgICByZXR1cm4gZXJyQWN0aW9ucy5uZXdTcGVjRXJyKHtcbiAgICAgIHNvdXJjZTogXCJwYXJzZXJcIixcbiAgICAgIGxldmVsOiBcImVycm9yXCIsXG4gICAgICBtZXNzYWdlOiBlLnJlYXNvbixcbiAgICAgIGxpbmU6IGUubWFyayAmJiBlLm1hcmsubGluZSA/IGUubWFyay5saW5lICsgMSA6IHVuZGVmaW5lZFxuICAgIH0pXG4gIH1cbiAgaWYoanNvbiAmJiB0eXBlb2YganNvbiA9PT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiBzcGVjQWN0aW9ucy51cGRhdGVKc29uU3BlYyhqc29uKVxuICB9XG4gIHJldHVybiBzcGVjQWN0aW9ucy51cGRhdGVKc29uU3BlYyh7fSlcbn1cblxubGV0IGhhc1dhcm5lZEFib3V0UmVzb2x2ZVNwZWNEZXByZWNhdGlvbiA9IGZhbHNlXG5cbmV4cG9ydCBjb25zdCByZXNvbHZlU3BlYyA9IChqc29uLCB1cmwpID0+ICh7c3BlY0FjdGlvbnMsIHNwZWNTZWxlY3RvcnMsIGVyckFjdGlvbnMsIGZuOiB7IGZldGNoLCByZXNvbHZlLCBBU1QgPSB7fSB9LCBnZXRDb25maWdzfSkgPT4ge1xuICBpZighaGFzV2FybmVkQWJvdXRSZXNvbHZlU3BlY0RlcHJlY2F0aW9uKSB7XG4gICAgY29uc29sZS53YXJuKGBzcGVjQWN0aW9ucy5yZXNvbHZlU3BlYyBpcyBkZXByZWNhdGVkIHNpbmNlIHYzLjEwLjAgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB2NC4wLjA7IHVzZSByZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlIGluc3RlYWQhYClcbiAgICBoYXNXYXJuZWRBYm91dFJlc29sdmVTcGVjRGVwcmVjYXRpb24gPSB0cnVlXG4gIH1cblxuICBjb25zdCB7XG4gICAgbW9kZWxQcm9wZXJ0eU1hY3JvLFxuICAgIHBhcmFtZXRlck1hY3JvLFxuICAgIHJlcXVlc3RJbnRlcmNlcHRvcixcbiAgICByZXNwb25zZUludGVyY2VwdG9yXG4gIH0gPSBnZXRDb25maWdzKClcblxuICBpZih0eXBlb2YoanNvbikgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBqc29uID0gc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpXG4gIH1cbiAgaWYodHlwZW9mKHVybCkgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICB1cmwgPSBzcGVjU2VsZWN0b3JzLnVybCgpXG4gIH1cblxuICBsZXQgZ2V0TGluZU51bWJlckZvclBhdGggPSBBU1QuZ2V0TGluZU51bWJlckZvclBhdGggPyBBU1QuZ2V0TGluZU51bWJlckZvclBhdGggOiAoKSA9PiB1bmRlZmluZWRcblxuICBsZXQgc3BlY1N0ciA9IHNwZWNTZWxlY3RvcnMuc3BlY1N0cigpXG5cbiAgcmV0dXJuIHJlc29sdmUoe1xuICAgIGZldGNoLFxuICAgIHNwZWM6IGpzb24sXG4gICAgYmFzZURvYzogU3RyaW5nKG5ldyBVUkwodXJsLCBkb2N1bWVudC5iYXNlVVJJKSksXG4gICAgbW9kZWxQcm9wZXJ0eU1hY3JvLFxuICAgIHBhcmFtZXRlck1hY3JvLFxuICAgIHJlcXVlc3RJbnRlcmNlcHRvcixcbiAgICByZXNwb25zZUludGVyY2VwdG9yXG4gIH0pLnRoZW4oICh7c3BlYywgZXJyb3JzfSkgPT4ge1xuICAgIGVyckFjdGlvbnMuY2xlYXIoe1xuICAgICAgdHlwZTogXCJ0aHJvd25cIlxuICAgIH0pXG4gICAgaWYoQXJyYXkuaXNBcnJheShlcnJvcnMpICYmIGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICBsZXQgcHJlcGFyZWRFcnJvcnMgPSBlcnJvcnNcbiAgICAgICAgLm1hcChlcnIgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKVxuICAgICAgICAgIGVyci5saW5lID0gZXJyLmZ1bGxQYXRoID8gZ2V0TGluZU51bWJlckZvclBhdGgoc3BlY1N0ciwgZXJyLmZ1bGxQYXRoKSA6IG51bGxcbiAgICAgICAgICBlcnIucGF0aCA9IGVyci5mdWxsUGF0aCA/IGVyci5mdWxsUGF0aC5qb2luKFwiLlwiKSA6IG51bGxcbiAgICAgICAgICBlcnIubGV2ZWwgPSBcImVycm9yXCJcbiAgICAgICAgICBlcnIudHlwZSA9IFwidGhyb3duXCJcbiAgICAgICAgICBlcnIuc291cmNlID0gXCJyZXNvbHZlclwiXG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVyciwgXCJtZXNzYWdlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IGVyci5tZXNzYWdlIH0pXG4gICAgICAgICAgcmV0dXJuIGVyclxuICAgICAgICB9KVxuICAgICAgZXJyQWN0aW9ucy5uZXdUaHJvd25FcnJCYXRjaChwcmVwYXJlZEVycm9ycylcbiAgICB9XG5cbiAgICByZXR1cm4gc3BlY0FjdGlvbnMudXBkYXRlUmVzb2x2ZWQoc3BlYylcbiAgfSlcbn1cblxubGV0IHJlcXVlc3RCYXRjaCA9IFtdXG5cbmNvbnN0IGRlYlJlc29sdmVTdWJ0cmVlcyA9IGRlYm91bmNlKCgpID0+IHtcbiAgY29uc3Qgc3lzdGVtUGFydGl0aW9uZWRCYXRjaGVzID0gcmVxdWVzdEJhdGNoLnJlZHVjZSgoYWNjLCB7IHBhdGgsIHN5c3RlbSB9KSA9PiB7XG4gICAgaWYgKCFhY2MuaGFzKHN5c3RlbSkpIGFjYy5zZXQoc3lzdGVtLCBbXSlcbiAgICBhY2MuZ2V0KHN5c3RlbSkucHVzaChwYXRoKVxuICAgIHJldHVybiBhY2NcbiAgfSwgbmV3IE1hcCgpKVxuXG4gIHJlcXVlc3RCYXRjaCA9IFtdIC8vIGNsZWFyIHN0YWNrXG5cbiAgc3lzdGVtUGFydGl0aW9uZWRCYXRjaGVzLmZvckVhY2goYXN5bmMgKHN5c3RlbVJlcXVlc3RCYXRjaCwgc3lzdGVtKSA9PiB7XG4gICAgaWYoIXN5c3RlbSkge1xuICAgICAgY29uc29sZS5lcnJvcihcImRlYlJlc29sdmVTdWJ0cmVlczogZG9uJ3QgaGF2ZSBhIHN5c3RlbSB0byBvcGVyYXRlIG9uLCBhYm9ydGluZy5cIilcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZighc3lzdGVtLmZuLnJlc29sdmVTdWJ0cmVlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3I6IFN3YWdnZXItQ2xpZW50IGRpZCBub3QgcHJvdmlkZSBhIGByZXNvbHZlU3VidHJlZWAgbWV0aG9kLCBkb2luZyBub3RoaW5nLlwiKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IHtcbiAgICAgIGVyckFjdGlvbnMsXG4gICAgICBlcnJTZWxlY3RvcnMsXG4gICAgICBmbjoge1xuICAgICAgICByZXNvbHZlU3VidHJlZSxcbiAgICAgICAgZmV0Y2gsXG4gICAgICAgIEFTVCA9IHt9XG4gICAgICB9LFxuICAgICAgc3BlY1NlbGVjdG9ycyxcbiAgICAgIHNwZWNBY3Rpb25zLFxuICAgIH0gPSBzeXN0ZW1cbiAgICBjb25zdCBnZXRMaW5lTnVtYmVyRm9yUGF0aCA9IEFTVC5nZXRMaW5lTnVtYmVyRm9yUGF0aCA/PyBjb25zdGFudCh1bmRlZmluZWQpXG4gICAgY29uc3Qgc3BlY1N0ciA9IHNwZWNTZWxlY3RvcnMuc3BlY1N0cigpXG4gICAgY29uc3Qge1xuICAgICAgbW9kZWxQcm9wZXJ0eU1hY3JvLFxuICAgICAgcGFyYW1ldGVyTWFjcm8sXG4gICAgICByZXF1ZXN0SW50ZXJjZXB0b3IsXG4gICAgICByZXNwb25zZUludGVyY2VwdG9yXG4gICAgfSA9IHN5c3RlbS5nZXRDb25maWdzKClcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBiYXRjaFJlc3VsdCA9IGF3YWl0IHN5c3RlbVJlcXVlc3RCYXRjaC5yZWR1Y2UoYXN5bmMgKHByZXYsIHBhdGgpID0+IHtcbiAgICAgICAgbGV0IHsgcmVzdWx0TWFwLCBzcGVjV2l0aEN1cnJlbnRTdWJ0cmVlcyB9ID0gYXdhaXQgcHJldlxuICAgICAgICBjb25zdCB7IGVycm9ycywgc3BlYyB9ID0gYXdhaXQgcmVzb2x2ZVN1YnRyZWUoc3BlY1dpdGhDdXJyZW50U3VidHJlZXMsIHBhdGgsIHtcbiAgICAgICAgICBiYXNlRG9jOiBTdHJpbmcobmV3IFVSTChzcGVjU2VsZWN0b3JzLnVybCgpLCBkb2N1bWVudC5iYXNlVVJJKSksXG4gICAgICAgICAgbW9kZWxQcm9wZXJ0eU1hY3JvLFxuICAgICAgICAgIHBhcmFtZXRlck1hY3JvLFxuICAgICAgICAgIHJlcXVlc3RJbnRlcmNlcHRvcixcbiAgICAgICAgICByZXNwb25zZUludGVyY2VwdG9yXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYoZXJyU2VsZWN0b3JzLmFsbEVycm9ycygpLnNpemUpIHtcbiAgICAgICAgICBlcnJBY3Rpb25zLmNsZWFyQnkoZXJyID0+IHtcbiAgICAgICAgICAgIC8vIGtlZXAgaWYuLi5cbiAgICAgICAgICAgIHJldHVybiBlcnIuZ2V0KFwidHlwZVwiKSAhPT0gXCJ0aHJvd25cIiAvLyBpdCdzIG5vdCBhIHRocm93biBlcnJvclxuICAgICAgICAgICAgICB8fCBlcnIuZ2V0KFwic291cmNlXCIpICE9PSBcInJlc29sdmVyXCIgLy8gaXQncyBub3QgYSByZXNvbHZlciBlcnJvclxuICAgICAgICAgICAgICB8fCAhZXJyLmdldChcImZ1bGxQYXRoXCIpPy5ldmVyeSgoa2V5LCBpKSA9PiBrZXkgPT09IHBhdGhbaV0gfHwgcGF0aFtpXSA9PT0gdW5kZWZpbmVkKSAvLyBpdCdzIG5vdCB3aXRoaW4gdGhlIHBhdGggd2UncmUgcmVzb2x2aW5nXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmKEFycmF5LmlzQXJyYXkoZXJyb3JzKSAmJiBlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGxldCBwcmVwYXJlZEVycm9ycyA9IGVycm9yc1xuICAgICAgICAgICAgLm1hcChlcnIgPT4ge1xuICAgICAgICAgICAgICBlcnIubGluZSA9IGVyci5mdWxsUGF0aCA/IGdldExpbmVOdW1iZXJGb3JQYXRoKHNwZWNTdHIsIGVyci5mdWxsUGF0aCkgOiBudWxsXG4gICAgICAgICAgICAgIGVyci5wYXRoID0gZXJyLmZ1bGxQYXRoID8gZXJyLmZ1bGxQYXRoLmpvaW4oXCIuXCIpIDogbnVsbFxuICAgICAgICAgICAgICBlcnIubGV2ZWwgPSBcImVycm9yXCJcbiAgICAgICAgICAgICAgZXJyLnR5cGUgPSBcInRocm93blwiXG4gICAgICAgICAgICAgIGVyci5zb3VyY2UgPSBcInJlc29sdmVyXCJcbiAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVyciwgXCJtZXNzYWdlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IGVyci5tZXNzYWdlIH0pXG4gICAgICAgICAgICAgIHJldHVybiBlcnJcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgZXJyQWN0aW9ucy5uZXdUaHJvd25FcnJCYXRjaChwcmVwYXJlZEVycm9ycylcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzcGVjICYmIHNwZWNTZWxlY3RvcnMuaXNPQVMzKCkgJiYgcGF0aFswXSA9PT0gXCJjb21wb25lbnRzXCIgJiYgcGF0aFsxXSA9PT0gXCJzZWN1cml0eVNjaGVtZXNcIikge1xuICAgICAgICAgIC8vIFJlc29sdmUgT0lEQyBVUkxzIGlmIHByZXNlbnRcbiAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChPYmplY3QudmFsdWVzKHNwZWMpXG4gICAgICAgICAgICAuZmlsdGVyKChzY2hlbWUpID0+IHNjaGVtZT8udHlwZSA9PT0gXCJvcGVuSWRDb25uZWN0XCIpXG4gICAgICAgICAgICAubWFwKGFzeW5jIChvaWRjU2NoZW1lKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlcSA9IHtcbiAgICAgICAgICAgICAgICB1cmw6IG9pZGNTY2hlbWUub3BlbklkQ29ubmVjdFVybCxcbiAgICAgICAgICAgICAgICByZXF1ZXN0SW50ZXJjZXB0b3I6IHJlcXVlc3RJbnRlcmNlcHRvcixcbiAgICAgICAgICAgICAgICByZXNwb25zZUludGVyY2VwdG9yOiByZXNwb25zZUludGVyY2VwdG9yXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChyZXEpXG4gICAgICAgICAgICAgICAgaWYgKHJlcyBpbnN0YW5jZW9mIEVycm9yIHx8IHJlcy5zdGF0dXMgPj0gNDAwKSB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKHJlcy5zdGF0dXNUZXh0ICsgXCIgXCIgKyByZXEudXJsKVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBvaWRjU2NoZW1lLm9wZW5JZENvbm5lY3REYXRhID0gSlNPTi5wYXJzZShyZXMudGV4dClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKVxuICAgICAgICB9XG4gICAgICAgIHNldChyZXN1bHRNYXAsIHBhdGgsIHNwZWMpXG4gICAgICAgIHNwZWNXaXRoQ3VycmVudFN1YnRyZWVzID0gYXNzb2NQYXRoKHBhdGgsIHNwZWMsIHNwZWNXaXRoQ3VycmVudFN1YnRyZWVzKVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVzdWx0TWFwLFxuICAgICAgICAgIHNwZWNXaXRoQ3VycmVudFN1YnRyZWVzXG4gICAgICAgIH1cbiAgICAgIH0sIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgIHJlc3VsdE1hcDogKHNwZWNTZWxlY3RvcnMuc3BlY1Jlc29sdmVkU3VidHJlZShbXSkgfHwgSW1tdXRhYmxlTWFwKCkpLnRvSlMoKSxcbiAgICAgICAgc3BlY1dpdGhDdXJyZW50U3VidHJlZXM6IHNwZWNTZWxlY3RvcnMuc3BlY0pTKClcbiAgICAgIH0pKVxuXG4gICAgICBzcGVjQWN0aW9ucy51cGRhdGVSZXNvbHZlZFN1YnRyZWUoW10sIGJhdGNoUmVzdWx0LnJlc3VsdE1hcClcbiAgICB9IGNhdGNoKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSlcbiAgICB9XG4gIH0pXG59LCAzNSlcblxuZXhwb3J0IGNvbnN0IHJlcXVlc3RSZXNvbHZlZFN1YnRyZWUgPSBwYXRoID0+IHN5c3RlbSA9PiB7XG4gIGNvbnN0IGlzUGF0aEFscmVhZHlCYXRjaGVkID0gcmVxdWVzdEJhdGNoLmZpbmQoKHsgcGF0aDogYmF0Y2hlZFBhdGgsIHN5c3RlbTogYmF0Y2hlZFN5c3RlbSB9KSA9PiB7XG4gICAgcmV0dXJuIGJhdGNoZWRTeXN0ZW0gPT09IHN5c3RlbSAmJiBiYXRjaGVkUGF0aC50b1N0cmluZygpID09PSBwYXRoLnRvU3RyaW5nKClcbiAgfSlcblxuICBpZihpc1BhdGhBbHJlYWR5QmF0Y2hlZCkge1xuICAgIHJldHVyblxuICB9XG5cbiAgcmVxdWVzdEJhdGNoLnB1c2goeyBwYXRoLCBzeXN0ZW0gfSlcblxuICBkZWJSZXNvbHZlU3VidHJlZXMoKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hhbmdlUGFyYW0oIHBhdGgsIHBhcmFtTmFtZSwgcGFyYW1JbiwgdmFsdWUsIGlzWG1sICl7XG4gIHJldHVybiB7XG4gICAgdHlwZTogVVBEQVRFX1BBUkFNLFxuICAgIHBheWxvYWQ6eyBwYXRoLCB2YWx1ZSwgcGFyYW1OYW1lLCBwYXJhbUluLCBpc1htbCB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoYW5nZVBhcmFtQnlJZGVudGl0eSggcGF0aE1ldGhvZCwgcGFyYW0sIHZhbHVlLCBpc1htbCApe1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9QQVJBTSxcbiAgICBwYXlsb2FkOnsgcGF0aDogcGF0aE1ldGhvZCwgcGFyYW0sIHZhbHVlLCBpc1htbCB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVJlc29sdmVkU3VidHJlZSA9IChwYXRoLCB2YWx1ZSkgPT4ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9SRVNPTFZFRF9TVUJUUkVFLFxuICAgIHBheWxvYWQ6IHsgcGF0aCwgdmFsdWUgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBpbnZhbGlkYXRlUmVzb2x2ZWRTdWJ0cmVlQ2FjaGUgPSAoKSA9PiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogVVBEQVRFX1JFU09MVkVEX1NVQlRSRUUsXG4gICAgcGF5bG9hZDoge1xuICAgICAgcGF0aDogW10sXG4gICAgICB2YWx1ZTogSW1tdXRhYmxlTWFwKClcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlUGFyYW1zID0gKCBwYXlsb2FkLCBpc09BUzMgKSA9PntcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBWQUxJREFURV9QQVJBTVMsXG4gICAgcGF5bG9hZDp7XG4gICAgICBwYXRoTWV0aG9kOiBwYXlsb2FkLFxuICAgICAgaXNPQVMzXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVFbXB0eVBhcmFtSW5jbHVzaW9uID0gKCBwYXRoTWV0aG9kLCBwYXJhbU5hbWUsIHBhcmFtSW4sIGluY2x1ZGVFbXB0eVZhbHVlICkgPT57XG4gIHJldHVybiB7XG4gICAgdHlwZTogVVBEQVRFX0VNUFRZX1BBUkFNX0lOQ0xVU0lPTixcbiAgICBwYXlsb2FkOntcbiAgICAgIHBhdGhNZXRob2QsXG4gICAgICBwYXJhbU5hbWUsXG4gICAgICBwYXJhbUluLFxuICAgICAgaW5jbHVkZUVtcHR5VmFsdWVcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyVmFsaWRhdGVQYXJhbXMoIHBheWxvYWQgKXtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBDTEVBUl9WQUxJREFURV9QQVJBTVMsXG4gICAgcGF5bG9hZDp7IHBhdGhNZXRob2Q6IHBheWxvYWQgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGFuZ2VDb25zdW1lc1ZhbHVlKHBhdGgsIHZhbHVlKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogVVBEQVRFX09QRVJBVElPTl9NRVRBX1ZBTFVFLFxuICAgIHBheWxvYWQ6eyBwYXRoLCB2YWx1ZSwga2V5OiBcImNvbnN1bWVzX3ZhbHVlXCIgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGFuZ2VQcm9kdWNlc1ZhbHVlKHBhdGgsIHZhbHVlKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogVVBEQVRFX09QRVJBVElPTl9NRVRBX1ZBTFVFLFxuICAgIHBheWxvYWQ6eyBwYXRoLCB2YWx1ZSwga2V5OiBcInByb2R1Y2VzX3ZhbHVlXCIgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBzZXRSZXNwb25zZSA9ICggcGF0aCwgbWV0aG9kLCByZXMgKSA9PiB7XG4gIHJldHVybiB7XG4gICAgcGF5bG9hZDogeyBwYXRoLCBtZXRob2QsIHJlcyB9LFxuICAgIHR5cGU6IFNFVF9SRVNQT05TRVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBzZXRSZXF1ZXN0ID0gKCBwYXRoLCBtZXRob2QsIHJlcSApID0+IHtcbiAgcmV0dXJuIHtcbiAgICBwYXlsb2FkOiB7IHBhdGgsIG1ldGhvZCwgcmVxIH0sXG4gICAgdHlwZTogU0VUX1JFUVVFU1RcbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgc2V0TXV0YXRlZFJlcXVlc3QgPSAoIHBhdGgsIG1ldGhvZCwgcmVxICkgPT4ge1xuICByZXR1cm4ge1xuICAgIHBheWxvYWQ6IHsgcGF0aCwgbWV0aG9kLCByZXEgfSxcbiAgICB0eXBlOiBTRVRfTVVUQVRFRF9SRVFVRVNUXG4gIH1cbn1cblxuLy8gVGhpcyBpcyBmb3IgZGVidWdnaW5nLCByZW1vdmUgdGhpcyBjb21tZW50IGlmIHlvdSBkZXBlbmQgb24gdGhpcyBhY3Rpb25cbmV4cG9ydCBjb25zdCBsb2dSZXF1ZXN0ID0gKHJlcSkgPT4ge1xuICByZXR1cm4ge1xuICAgIHBheWxvYWQ6IHJlcSxcbiAgICB0eXBlOiBMT0dfUkVRVUVTVFxuICB9XG59XG5cbi8vIEFjdHVhbGx5IGZpcmUgdGhlIHJlcXVlc3QgdmlhIGZuLmV4ZWN1dGVcbi8vIChGb3IgZGVidWdnaW5nKSBhbmQgZWFzZSBvZiB0ZXN0aW5nXG5leHBvcnQgY29uc3QgZXhlY3V0ZVJlcXVlc3QgPSAocmVxKSA9PlxuICAoe2ZuLCBzcGVjQWN0aW9ucywgc3BlY1NlbGVjdG9ycywgZ2V0Q29uZmlncywgb2FzM1NlbGVjdG9yc30pID0+IHtcbiAgICBsZXQgeyBwYXRoTmFtZSwgbWV0aG9kLCBvcGVyYXRpb24gfSA9IHJlcVxuICAgIGxldCB7IHJlcXVlc3RJbnRlcmNlcHRvciwgcmVzcG9uc2VJbnRlcmNlcHRvciB9ID0gZ2V0Q29uZmlncygpXG5cblxuICAgIGxldCBvcCA9IG9wZXJhdGlvbi50b0pTKClcblxuICAgIC8vIGVuc3VyZSB0aGF0IGV4cGxpY2l0bHktaW5jbHVkZWQgcGFyYW1zIGFyZSBpbiB0aGUgcmVxdWVzdFxuXG4gICAgaWYgKG9wZXJhdGlvbiAmJiBvcGVyYXRpb24uZ2V0KFwicGFyYW1ldGVyc1wiKSkge1xuICAgICAgb3BlcmF0aW9uLmdldChcInBhcmFtZXRlcnNcIilcbiAgICAgICAgLmZpbHRlcihwYXJhbSA9PiBwYXJhbSAmJiBwYXJhbS5nZXQoXCJhbGxvd0VtcHR5VmFsdWVcIikgPT09IHRydWUpXG4gICAgICAgIC5mb3JFYWNoKHBhcmFtID0+IHtcbiAgICAgICAgICBpZiAoc3BlY1NlbGVjdG9ycy5wYXJhbWV0ZXJJbmNsdXNpb25TZXR0aW5nRm9yKFtwYXRoTmFtZSwgbWV0aG9kXSwgcGFyYW0uZ2V0KFwibmFtZVwiKSwgcGFyYW0uZ2V0KFwiaW5cIikpKSB7XG4gICAgICAgICAgICByZXEucGFyYW1ldGVycyA9IHJlcS5wYXJhbWV0ZXJzIHx8IHt9XG4gICAgICAgICAgICBjb25zdCBwYXJhbVZhbHVlID0gcGFyYW1Ub1ZhbHVlKHBhcmFtLCByZXEucGFyYW1ldGVycylcblxuICAgICAgICAgICAgLy8gaWYgdGhlIHZhbHVlIGlzIGZhbHN5IG9yIGFuIGVtcHR5IEltbXV0YWJsZSBpdGVyYWJsZS4uLlxuICAgICAgICAgICAgaWYoIXBhcmFtVmFsdWUgfHwgKHBhcmFtVmFsdWUgJiYgcGFyYW1WYWx1ZS5zaXplID09PSAwKSkge1xuICAgICAgICAgICAgICAvLyBzZXQgaXQgdG8gZW1wdHkgc3RyaW5nLCBzbyBTd2FnZ2VyIENsaWVudCB3aWxsIHRyZWF0IGl0IGFzXG4gICAgICAgICAgICAgIC8vIHByZXNlbnQgYnV0IGVtcHR5LlxuICAgICAgICAgICAgICByZXEucGFyYW1ldGVyc1twYXJhbS5nZXQoXCJuYW1lXCIpXSA9IFwiXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gaWYgdXJsIGlzIHJlbGF0aXZlLCBwYXJzZVVybCBtYWtlcyBpdCBhYnNvbHV0ZSBieSBpbmZlcnJpbmcgZnJvbSBgd2luZG93LmxvY2F0aW9uYFxuICAgIHJlcS5jb250ZXh0VXJsID0gcGFyc2VVcmwoc3BlY1NlbGVjdG9ycy51cmwoKSkudG9TdHJpbmcoKVxuXG4gICAgaWYob3AgJiYgb3Aub3BlcmF0aW9uSWQpIHtcbiAgICAgIHJlcS5vcGVyYXRpb25JZCA9IG9wLm9wZXJhdGlvbklkXG4gICAgfSBlbHNlIGlmKG9wICYmIHBhdGhOYW1lICYmIG1ldGhvZCkge1xuICAgICAgcmVxLm9wZXJhdGlvbklkID0gZm4ub3BJZChvcCwgcGF0aE5hbWUsIG1ldGhvZClcbiAgICB9XG5cbiAgICBpZihzcGVjU2VsZWN0b3JzLmlzT0FTMygpKSB7XG4gICAgICBjb25zdCBuYW1lc3BhY2UgPSBgJHtwYXRoTmFtZX06JHttZXRob2R9YFxuXG4gICAgICByZXEuc2VydmVyID0gb2FzM1NlbGVjdG9ycy5zZWxlY3RlZFNlcnZlcihuYW1lc3BhY2UpIHx8IG9hczNTZWxlY3RvcnMuc2VsZWN0ZWRTZXJ2ZXIoKVxuXG4gICAgICBjb25zdCBuYW1lc3BhY2VWYXJpYWJsZXMgPSBvYXMzU2VsZWN0b3JzLnNlcnZlclZhcmlhYmxlcyh7XG4gICAgICAgIHNlcnZlcjogcmVxLnNlcnZlcixcbiAgICAgICAgbmFtZXNwYWNlXG4gICAgICB9KS50b0pTKClcbiAgICAgIGNvbnN0IGdsb2JhbFZhcmlhYmxlcyA9IG9hczNTZWxlY3RvcnMuc2VydmVyVmFyaWFibGVzKHsgc2VydmVyOiByZXEuc2VydmVyIH0pLnRvSlMoKVxuXG4gICAgICByZXEuc2VydmVyVmFyaWFibGVzID0gT2JqZWN0LmtleXMobmFtZXNwYWNlVmFyaWFibGVzKS5sZW5ndGggPyBuYW1lc3BhY2VWYXJpYWJsZXMgOiBnbG9iYWxWYXJpYWJsZXNcblxuICAgICAgcmVxLnJlcXVlc3RDb250ZW50VHlwZSA9IG9hczNTZWxlY3RvcnMucmVxdWVzdENvbnRlbnRUeXBlKHBhdGhOYW1lLCBtZXRob2QpXG4gICAgICByZXEucmVzcG9uc2VDb250ZW50VHlwZSA9IG9hczNTZWxlY3RvcnMucmVzcG9uc2VDb250ZW50VHlwZShwYXRoTmFtZSwgbWV0aG9kKSB8fCBcIiovKlwiXG4gICAgICBjb25zdCByZXF1ZXN0Qm9keSA9IG9hczNTZWxlY3RvcnMucmVxdWVzdEJvZHlWYWx1ZShwYXRoTmFtZSwgbWV0aG9kKVxuICAgICAgY29uc3QgcmVxdWVzdEJvZHlJbmNsdXNpb25TZXR0aW5nID0gb2FzM1NlbGVjdG9ycy5yZXF1ZXN0Qm9keUluY2x1c2lvblNldHRpbmcocGF0aE5hbWUsIG1ldGhvZClcblxuICAgICAgaWYocmVxdWVzdEJvZHkgJiYgcmVxdWVzdEJvZHkudG9KUykge1xuICAgICAgICByZXEucmVxdWVzdEJvZHkgPSByZXF1ZXN0Qm9keVxuICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAodmFsKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChJbW11dGFibGVNYXAuaXNNYXAodmFsKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWwuZ2V0KFwidmFsdWVcIilcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gdmFsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKVxuICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAodmFsdWUsIGtleSkgPT4gKEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICAgICAgICAgICAgPyB2YWx1ZS5sZW5ndGggIT09IDBcbiAgICAgICAgICAgICAgICA6ICFpc0VtcHR5VmFsdWUodmFsdWUpXG4gICAgICAgICAgICApIHx8IHJlcXVlc3RCb2R5SW5jbHVzaW9uU2V0dGluZy5nZXQoa2V5KVxuICAgICAgICAgIClcbiAgICAgICAgICAudG9KUygpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXEucmVxdWVzdEJvZHkgPSByZXF1ZXN0Qm9keVxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBwYXJzZWRSZXF1ZXN0ID0gT2JqZWN0LmFzc2lnbih7fSwgcmVxKVxuICAgIHBhcnNlZFJlcXVlc3QgPSBmbi5idWlsZFJlcXVlc3QocGFyc2VkUmVxdWVzdClcblxuICAgIHNwZWNBY3Rpb25zLnNldFJlcXVlc3QocmVxLnBhdGhOYW1lLCByZXEubWV0aG9kLCBwYXJzZWRSZXF1ZXN0KVxuXG4gICAgbGV0IHJlcXVlc3RJbnRlcmNlcHRvcldyYXBwZXIgPSBhc3luYyAocikgPT4ge1xuICAgICAgbGV0IG11dGF0ZWRSZXF1ZXN0ID0gYXdhaXQgcmVxdWVzdEludGVyY2VwdG9yLmFwcGx5KHRoaXMsIFtyXSlcbiAgICAgIGxldCBwYXJzZWRNdXRhdGVkUmVxdWVzdCA9IE9iamVjdC5hc3NpZ24oe30sIG11dGF0ZWRSZXF1ZXN0KVxuICAgICAgc3BlY0FjdGlvbnMuc2V0TXV0YXRlZFJlcXVlc3QocmVxLnBhdGhOYW1lLCByZXEubWV0aG9kLCBwYXJzZWRNdXRhdGVkUmVxdWVzdClcbiAgICAgIHJldHVybiBtdXRhdGVkUmVxdWVzdFxuICAgIH1cblxuICAgIHJlcS5yZXF1ZXN0SW50ZXJjZXB0b3IgPSByZXF1ZXN0SW50ZXJjZXB0b3JXcmFwcGVyXG4gICAgcmVxLnJlc3BvbnNlSW50ZXJjZXB0b3IgPSByZXNwb25zZUludGVyY2VwdG9yXG5cbiAgICAvLyB0cmFjayBkdXJhdGlvbiBvZiByZXF1ZXN0XG4gICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKVxuXG5cbiAgICByZXR1cm4gZm4uZXhlY3V0ZShyZXEpXG4gICAgICAudGhlbiggcmVzID0+IHtcbiAgICAgICAgcmVzLmR1cmF0aW9uID0gRGF0ZS5ub3coKSAtIHN0YXJ0VGltZVxuICAgICAgICBzcGVjQWN0aW9ucy5zZXRSZXNwb25zZShyZXEucGF0aE5hbWUsIHJlcS5tZXRob2QsIHJlcylcbiAgICAgIH0gKVxuICAgICAgLmNhdGNoKFxuICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgIC8vIGNvbnNvbGUuZXJyb3IoZXJyKVxuICAgICAgICAgIGlmKGVyci5tZXNzYWdlID09PSBcIkZhaWxlZCB0byBmZXRjaFwiKSB7XG4gICAgICAgICAgICBlcnIubmFtZSA9IFwiXCJcbiAgICAgICAgICAgIGVyci5tZXNzYWdlID0gXCIqKkZhaWxlZCB0byBmZXRjaC4qKiAgXFxuKipQb3NzaWJsZSBSZWFzb25zOioqIFxcbiAgLSBDT1JTIFxcbiAgLSBOZXR3b3JrIEZhaWx1cmUgXFxuICAtIFVSTCBzY2hlbWUgbXVzdCBiZSBcXFwiaHR0cFxcXCIgb3IgXFxcImh0dHBzXFxcIiBmb3IgQ09SUyByZXF1ZXN0LlwiXG4gICAgICAgICAgfVxuICAgICAgICAgIHNwZWNBY3Rpb25zLnNldFJlc3BvbnNlKHJlcS5wYXRoTmFtZSwgcmVxLm1ldGhvZCwge1xuICAgICAgICAgICAgZXJyb3I6IHRydWUsIGVyclxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIClcbiAgfVxuXG5cbi8vIEknbSB1c2luZyBleHRyYXMgYXMgYSB3YXkgdG8gaW5qZWN0IHByb3BlcnRpZXMgaW50byB0aGUgZmluYWwsIGBleGVjdXRlYCBtZXRob2QgLSBJdCdzIG5vdCBncmVhdC4gQW55b25lIGhhdmUgYSBiZXR0ZXIgaWRlYT8gQHBvbmVsYXRcbmV4cG9ydCBjb25zdCBleGVjdXRlID0gKCB7IHBhdGgsIG1ldGhvZCwgLi4uZXh0cmFzIH09e30gKSA9PiAoc3lzdGVtKSA9PiB7XG4gIGxldCB7IGZuOntmZXRjaH0sIHNwZWNTZWxlY3RvcnMsIHNwZWNBY3Rpb25zIH0gPSBzeXN0ZW1cbiAgbGV0IHNwZWMgPSBzcGVjU2VsZWN0b3JzLnNwZWNKc29uV2l0aFJlc29sdmVkU3VidHJlZXMoKS50b0pTKClcbiAgbGV0IHNjaGVtZSA9IHNwZWNTZWxlY3RvcnMub3BlcmF0aW9uU2NoZW1lKHBhdGgsIG1ldGhvZClcbiAgbGV0IHsgcmVxdWVzdENvbnRlbnRUeXBlLCByZXNwb25zZUNvbnRlbnRUeXBlIH0gPSBzcGVjU2VsZWN0b3JzLmNvbnRlbnRUeXBlVmFsdWVzKFtwYXRoLCBtZXRob2RdKS50b0pTKClcbiAgbGV0IGlzWG1sID0gL3htbC9pLnRlc3QocmVxdWVzdENvbnRlbnRUeXBlKVxuICBsZXQgcGFyYW1ldGVycyA9IHNwZWNTZWxlY3RvcnMucGFyYW1ldGVyVmFsdWVzKFtwYXRoLCBtZXRob2RdLCBpc1htbCkudG9KUygpXG5cbiAgcmV0dXJuIHNwZWNBY3Rpb25zLmV4ZWN1dGVSZXF1ZXN0KHtcbiAgICAuLi5leHRyYXMsXG4gICAgZmV0Y2gsXG4gICAgc3BlYyxcbiAgICBwYXRoTmFtZTogcGF0aCxcbiAgICBtZXRob2QsIHBhcmFtZXRlcnMsXG4gICAgcmVxdWVzdENvbnRlbnRUeXBlLFxuICAgIHNjaGVtZSxcbiAgICByZXNwb25zZUNvbnRlbnRUeXBlXG4gIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhclJlc3BvbnNlIChwYXRoLCBtZXRob2QpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBDTEVBUl9SRVNQT05TRSxcbiAgICBwYXlsb2FkOnsgcGF0aCwgbWV0aG9kIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJSZXF1ZXN0IChwYXRoLCBtZXRob2QpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBDTEVBUl9SRVFVRVNULFxuICAgIHBheWxvYWQ6eyBwYXRoLCBtZXRob2QgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTY2hlbWUgKHNjaGVtZSwgcGF0aCwgbWV0aG9kKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogU0VUX1NDSEVNRSxcbiAgICBwYXlsb2FkOiB7IHNjaGVtZSwgcGF0aCwgbWV0aG9kIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgZnJvbUpTLCBMaXN0IH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgeyBmcm9tSlNPcmRlcmVkLCB2YWxpZGF0ZVBhcmFtLCBwYXJhbVRvVmFsdWUsIHBhcmFtVG9JZGVudGlmaWVyIH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuaW1wb3J0IHdpbiBmcm9tIFwiY29yZS93aW5kb3dcIlxuXG4vLyBzZWxlY3Rvci1pbi1yZWR1Y2VyIGlzIHN1Ym9wdGltYWwsIGJ1dCBgb3BlcmF0aW9uV2l0aE1ldGFgIGlzIG1vcmUgb2YgYSBoZWxwZXJcbmltcG9ydCB7XG4gIHNwZWNKc29uV2l0aFJlc29sdmVkU3VidHJlZXMsXG4gIHBhcmFtZXRlclZhbHVlcyxcbiAgcGFyYW1ldGVySW5jbHVzaW9uU2V0dGluZ0Zvcixcbn0gZnJvbSBcIi4vc2VsZWN0b3JzXCJcblxuaW1wb3J0IHtcbiAgVVBEQVRFX1NQRUMsXG4gIFVQREFURV9VUkwsXG4gIFVQREFURV9KU09OLFxuICBVUERBVEVfUEFSQU0sXG4gIFVQREFURV9FTVBUWV9QQVJBTV9JTkNMVVNJT04sXG4gIFZBTElEQVRFX1BBUkFNUyxcbiAgU0VUX1JFU1BPTlNFLFxuICBTRVRfUkVRVUVTVCxcbiAgU0VUX01VVEFURURfUkVRVUVTVCxcbiAgVVBEQVRFX1JFU09MVkVELFxuICBVUERBVEVfUkVTT0xWRURfU1VCVFJFRSxcbiAgVVBEQVRFX09QRVJBVElPTl9NRVRBX1ZBTFVFLFxuICBDTEVBUl9SRVNQT05TRSxcbiAgQ0xFQVJfUkVRVUVTVCxcbiAgQ0xFQVJfVkFMSURBVEVfUEFSQU1TLFxuICBTRVRfU0NIRU1FXG59IGZyb20gXCIuL2FjdGlvbnNcIlxuXG5leHBvcnQgZGVmYXVsdCB7XG5cbiAgW1VQREFURV9TUEVDXTogKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICByZXR1cm4gKHR5cGVvZiBhY3Rpb24ucGF5bG9hZCA9PT0gXCJzdHJpbmdcIilcbiAgICAgID8gc3RhdGUuc2V0KFwic3BlY1wiLCBhY3Rpb24ucGF5bG9hZClcbiAgICAgIDogc3RhdGVcbiAgfSxcblxuICBbVVBEQVRFX1VSTF06IChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHN0YXRlLnNldChcInVybFwiLCBhY3Rpb24ucGF5bG9hZCtcIlwiKVxuICB9LFxuXG4gIFtVUERBVEVfSlNPTl06IChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHN0YXRlLnNldChcImpzb25cIiwgZnJvbUpTT3JkZXJlZChhY3Rpb24ucGF5bG9hZCkpXG4gIH0sXG5cbiAgW1VQREFURV9SRVNPTFZFRF06IChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHN0YXRlLnNldEluKFtcInJlc29sdmVkXCJdLCBmcm9tSlNPcmRlcmVkKGFjdGlvbi5wYXlsb2FkKSlcbiAgfSxcblxuICBbVVBEQVRFX1JFU09MVkVEX1NVQlRSRUVdOiAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWUsIHBhdGggfSA9IGFjdGlvbi5wYXlsb2FkXG4gICAgcmV0dXJuIHN0YXRlLnNldEluKFtcInJlc29sdmVkU3VidHJlZXNcIiwgLi4ucGF0aF0sIGZyb21KU09yZGVyZWQodmFsdWUpKVxuICB9LFxuXG4gIFtVUERBVEVfUEFSQU1dOiAoIHN0YXRlLCB7cGF5bG9hZH0gKSA9PiB7XG4gICAgbGV0IHsgcGF0aDogcGF0aE1ldGhvZCwgcGFyYW1OYW1lLCBwYXJhbUluLCBwYXJhbSwgdmFsdWUsIGlzWG1sIH0gPSBwYXlsb2FkXG5cbiAgICBsZXQgcGFyYW1LZXkgPSBwYXJhbSA/IHBhcmFtVG9JZGVudGlmaWVyKHBhcmFtKSA6IGAke3BhcmFtSW59LiR7cGFyYW1OYW1lfWBcblxuICAgIGNvbnN0IHZhbHVlS2V5ID0gaXNYbWwgPyBcInZhbHVlX3htbFwiIDogXCJ2YWx1ZVwiXG5cbiAgICByZXR1cm4gc3RhdGUuc2V0SW4oXG4gICAgICBbXCJtZXRhXCIsIFwicGF0aHNcIiwgLi4ucGF0aE1ldGhvZCwgXCJwYXJhbWV0ZXJzXCIsIHBhcmFtS2V5LCB2YWx1ZUtleV0sXG4gICAgICBmcm9tSlModmFsdWUpXG4gICAgKVxuICB9LFxuXG4gIFtVUERBVEVfRU1QVFlfUEFSQU1fSU5DTFVTSU9OXTogKCBzdGF0ZSwge3BheWxvYWR9ICkgPT4ge1xuICAgIGxldCB7IHBhdGhNZXRob2QsIHBhcmFtTmFtZSwgcGFyYW1JbiwgaW5jbHVkZUVtcHR5VmFsdWUgfSA9IHBheWxvYWRcblxuICAgIGlmKCFwYXJhbU5hbWUgfHwgIXBhcmFtSW4pIHtcbiAgICAgIGNvbnNvbGUud2FybihcIldhcm5pbmc6IFVQREFURV9FTVBUWV9QQVJBTV9JTkNMVVNJT04gY291bGQgbm90IGdlbmVyYXRlIGEgcGFyYW1LZXkuXCIpXG4gICAgICByZXR1cm4gc3RhdGVcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbUtleSA9IGAke3BhcmFtSW59LiR7cGFyYW1OYW1lfWBcblxuICAgIHJldHVybiBzdGF0ZS5zZXRJbihcbiAgICAgIFtcIm1ldGFcIiwgXCJwYXRoc1wiLCAuLi5wYXRoTWV0aG9kLCBcInBhcmFtZXRlcl9pbmNsdXNpb25zXCIsIHBhcmFtS2V5XSxcbiAgICAgIGluY2x1ZGVFbXB0eVZhbHVlXG4gICAgKVxuICB9LFxuXG4gIFtWQUxJREFURV9QQVJBTVNdOiAoIHN0YXRlLCB7IHBheWxvYWQ6IHsgcGF0aE1ldGhvZCwgaXNPQVMzIH0gfSApID0+IHtcbiAgICBjb25zdCBvcCA9IHNwZWNKc29uV2l0aFJlc29sdmVkU3VidHJlZXMoc3RhdGUpLmdldEluKFtcInBhdGhzXCIsIC4uLnBhdGhNZXRob2RdKVxuICAgIGNvbnN0IHBhcmFtVmFsdWVzID0gcGFyYW1ldGVyVmFsdWVzKHN0YXRlLCBwYXRoTWV0aG9kKS50b0pTKClcblxuICAgIHJldHVybiBzdGF0ZS51cGRhdGVJbihbXCJtZXRhXCIsIFwicGF0aHNcIiwgLi4ucGF0aE1ldGhvZCwgXCJwYXJhbWV0ZXJzXCJdLCBmcm9tSlMoe30pLCBwYXJhbU1ldGEgPT4ge1xuICAgICAgcmV0dXJuIG9wLmdldChcInBhcmFtZXRlcnNcIiwgTGlzdCgpKS5yZWR1Y2UoKHJlcywgcGFyYW0pID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbVRvVmFsdWUocGFyYW0sIHBhcmFtVmFsdWVzKVxuICAgICAgICBjb25zdCBpc0VtcHR5VmFsdWVJbmNsdWRlZCA9IHBhcmFtZXRlckluY2x1c2lvblNldHRpbmdGb3Ioc3RhdGUsIHBhdGhNZXRob2QsIHBhcmFtLmdldChcIm5hbWVcIiksIHBhcmFtLmdldChcImluXCIpKVxuICAgICAgICBjb25zdCBlcnJvcnMgPSB2YWxpZGF0ZVBhcmFtKHBhcmFtLCB2YWx1ZSwge1xuICAgICAgICAgIGJ5cGFzc1JlcXVpcmVkQ2hlY2s6IGlzRW1wdHlWYWx1ZUluY2x1ZGVkLFxuICAgICAgICAgIGlzT0FTMyxcbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuIHJlcy5zZXRJbihbcGFyYW1Ub0lkZW50aWZpZXIocGFyYW0pLCBcImVycm9yc1wiXSwgZnJvbUpTKGVycm9ycykpXG4gICAgICB9LCBwYXJhbU1ldGEpXG4gICAgfSlcbiAgfSxcbiAgW0NMRUFSX1ZBTElEQVRFX1BBUkFNU106ICggc3RhdGUsIHsgcGF5bG9hZDogIHsgcGF0aE1ldGhvZCB9IH0gKSA9PiB7XG4gICAgcmV0dXJuIHN0YXRlLnVwZGF0ZUluKCBbIFwibWV0YVwiLCBcInBhdGhzXCIsIC4uLnBhdGhNZXRob2QsIFwicGFyYW1ldGVyc1wiIF0sIGZyb21KUyhbXSksIHBhcmFtZXRlcnMgPT4ge1xuICAgICAgcmV0dXJuIHBhcmFtZXRlcnMubWFwKHBhcmFtID0+IHBhcmFtLnNldChcImVycm9yc1wiLCBmcm9tSlMoW10pKSlcbiAgICB9KVxuICB9LFxuXG4gIFtTRVRfUkVTUE9OU0VdOiAoc3RhdGUsIHsgcGF5bG9hZDogeyByZXMsIHBhdGgsIG1ldGhvZCB9IH0gKSA9PntcbiAgICBsZXQgcmVzdWx0XG4gICAgaWYgKCByZXMuZXJyb3IgKSB7XG4gICAgICByZXN1bHQgPSBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgIG5hbWU6IHJlcy5lcnIubmFtZSxcbiAgICAgICAgbWVzc2FnZTogcmVzLmVyci5tZXNzYWdlLFxuICAgICAgICBzdGF0dXNDb2RlOiByZXMuZXJyLnN0YXR1c0NvZGVcbiAgICAgIH0sIHJlcy5lcnIucmVzcG9uc2UpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IHJlc1xuICAgIH1cblxuICAgIC8vIEVuc3VyZSBoZWFkZXJzXG4gICAgcmVzdWx0LmhlYWRlcnMgPSByZXN1bHQuaGVhZGVycyB8fCB7fVxuXG4gICAgbGV0IG5ld1N0YXRlID0gc3RhdGUuc2V0SW4oIFsgXCJyZXNwb25zZXNcIiwgcGF0aCwgbWV0aG9kIF0sIGZyb21KU09yZGVyZWQocmVzdWx0KSApXG5cbiAgICAvLyBJbW11dGFibGVKUyBtZXNzZXMgdXAgQmxvYi4gTmVlZHMgdG8gcmVzZXQgaXRzIHZhbHVlLlxuICAgIGlmICh3aW4uQmxvYiAmJiByZXN1bHQuZGF0YSBpbnN0YW5jZW9mIHdpbi5CbG9iKSB7XG4gICAgICBuZXdTdGF0ZSA9IG5ld1N0YXRlLnNldEluKCBbIFwicmVzcG9uc2VzXCIsIHBhdGgsIG1ldGhvZCwgXCJ0ZXh0XCIgXSwgcmVzdWx0LmRhdGEpXG4gICAgfVxuICAgIHJldHVybiBuZXdTdGF0ZVxuICB9LFxuXG4gIFtTRVRfUkVRVUVTVF06IChzdGF0ZSwgeyBwYXlsb2FkOiB7IHJlcSwgcGF0aCwgbWV0aG9kIH0gfSApID0+e1xuICAgIHJldHVybiBzdGF0ZS5zZXRJbiggWyBcInJlcXVlc3RzXCIsIHBhdGgsIG1ldGhvZCBdLCBmcm9tSlNPcmRlcmVkKHJlcSkpXG4gIH0sXG5cbiAgW1NFVF9NVVRBVEVEX1JFUVVFU1RdOiAoc3RhdGUsIHsgcGF5bG9hZDogeyByZXEsIHBhdGgsIG1ldGhvZCB9IH0gKSA9PntcbiAgICByZXR1cm4gc3RhdGUuc2V0SW4oIFsgXCJtdXRhdGVkUmVxdWVzdHNcIiwgcGF0aCwgbWV0aG9kIF0sIGZyb21KU09yZGVyZWQocmVxKSlcbiAgfSxcblxuICBbVVBEQVRFX09QRVJBVElPTl9NRVRBX1ZBTFVFXTogKHN0YXRlLCB7IHBheWxvYWQ6IHsgcGF0aCwgdmFsdWUsIGtleSB9IH0pID0+IHtcbiAgICAvLyBwYXRoIGlzIGEgcGF0aE1ldGhvZCB0dXBsZS4uLiBjYW4ndCBjaGFuZ2UgdGhlIG5hbWUgbm93LlxuICAgIGxldCBvcGVyYXRpb25QYXRoID0gW1wicGF0aHNcIiwgLi4ucGF0aF1cbiAgICBsZXQgbWV0YVBhdGggPSBbXCJtZXRhXCIsIFwicGF0aHNcIiwgLi4ucGF0aF1cblxuICAgIGlmKFxuICAgICAgIXN0YXRlLmdldEluKFtcImpzb25cIiwgLi4ub3BlcmF0aW9uUGF0aF0pXG4gICAgICAmJiAhc3RhdGUuZ2V0SW4oW1wicmVzb2x2ZWRcIiwgLi4ub3BlcmF0aW9uUGF0aF0pXG4gICAgICAmJiAhc3RhdGUuZ2V0SW4oW1wicmVzb2x2ZWRTdWJ0cmVlc1wiLCAuLi5vcGVyYXRpb25QYXRoXSlcbiAgICApIHtcbiAgICAgIC8vIGRvIG5vdGhpbmcgaWYgdGhlIG9wZXJhdGlvbiBkb2VzIG5vdCBleGlzdFxuICAgICAgcmV0dXJuIHN0YXRlXG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlLnNldEluKFsuLi5tZXRhUGF0aCwga2V5XSwgZnJvbUpTKHZhbHVlKSlcbiAgfSxcblxuICBbQ0xFQVJfUkVTUE9OU0VdOiAoc3RhdGUsIHsgcGF5bG9hZDogeyBwYXRoLCBtZXRob2QgfSB9ICkgPT57XG4gICAgcmV0dXJuIHN0YXRlLmRlbGV0ZUluKCBbIFwicmVzcG9uc2VzXCIsIHBhdGgsIG1ldGhvZCBdKVxuICB9LFxuXG4gIFtDTEVBUl9SRVFVRVNUXTogKHN0YXRlLCB7IHBheWxvYWQ6IHsgcGF0aCwgbWV0aG9kIH0gfSApID0+e1xuICAgIHJldHVybiBzdGF0ZS5kZWxldGVJbiggWyBcInJlcXVlc3RzXCIsIHBhdGgsIG1ldGhvZCBdKVxuICB9LFxuXG4gIFtTRVRfU0NIRU1FXTogKHN0YXRlLCB7IHBheWxvYWQ6IHsgc2NoZW1lLCBwYXRoLCBtZXRob2QgfSB9ICkgPT57XG4gICAgaWYgKCBwYXRoICYmIG1ldGhvZCApIHtcbiAgICAgIHJldHVybiBzdGF0ZS5zZXRJbiggWyBcInNjaGVtZVwiLCBwYXRoLCBtZXRob2QgXSwgc2NoZW1lKVxuICAgIH1cblxuICAgIGlmICghcGF0aCAmJiAhbWV0aG9kKSB7XG4gICAgICByZXR1cm4gc3RhdGUuc2V0SW4oIFsgXCJzY2hlbWVcIiwgXCJfZGVmYXVsdFNjaGVtZVwiIF0sIHNjaGVtZSlcbiAgICB9XG5cbiAgfVxuXG59XG4iLCJpbXBvcnQgZ2V0IGZyb20gXCJsb2Rhc2gvZ2V0XCJcbmltcG9ydCBpc1BsYWluT2JqZWN0IGZyb20gXCJsb2Rhc2gvaXNQbGFpbk9iamVjdFwiXG5cbmV4cG9ydCBjb25zdCB1cGRhdGVTcGVjID0gKG9yaSwge3NwZWNBY3Rpb25zfSkgPT4gKC4uLmFyZ3MpID0+IHtcbiAgb3JpKC4uLmFyZ3MpXG4gIHNwZWNBY3Rpb25zLnBhcnNlVG9Kc29uKC4uLmFyZ3MpXG59XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVKc29uU3BlYyA9IChvcmksIHtzcGVjQWN0aW9uc30pID0+ICguLi5hcmdzKSA9PiB7XG4gIG9yaSguLi5hcmdzKVxuXG4gIHNwZWNBY3Rpb25zLmludmFsaWRhdGVSZXNvbHZlZFN1YnRyZWVDYWNoZSgpXG5cbiAgLy8gVHJpZ2dlciByZXNvbHV0aW9uIG9mIGFueSBwYXRoLWxldmVsICRyZWZzLlxuICBjb25zdCBbanNvbl0gPSBhcmdzXG4gIGNvbnN0IHBhdGhJdGVtcyA9IGdldChqc29uLCBbXCJwYXRoc1wiXSkgfHwge31cbiAgY29uc3QgcGF0aEl0ZW1LZXlzID0gT2JqZWN0LmtleXMocGF0aEl0ZW1zKVxuXG4gIHBhdGhJdGVtS2V5cy5mb3JFYWNoKGsgPT4ge1xuICAgIGNvbnN0IHZhbCA9IGdldChwYXRoSXRlbXMsIFtrXSlcblxuICAgIGlmIChpc1BsYWluT2JqZWN0KHZhbCkgJiYgdmFsLiRyZWYpIHtcbiAgICAgIHNwZWNBY3Rpb25zLnJlcXVlc3RSZXNvbHZlZFN1YnRyZWUoW1wicGF0aHNcIiwga10pXG4gICAgfVxuICB9KVxuXG4gIC8vIFRyaWdnZXIgcmVzb2x1dGlvbiBvZiBhbnkgc2VjdXJpdHlTY2hlbWVzLWxldmVsICRyZWZzLlxuICBzcGVjQWN0aW9ucy5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKFtcImNvbXBvbmVudHNcIiwgXCJzZWN1cml0eVNjaGVtZXNcIl0pXG59XG5cbi8vIExvZyB0aGUgcmVxdWVzdCAoIGp1c3QgZm9yIGRlYnVnZ2luZywgc2hvdWxkbid0IGFmZmVjdCBwcm9kIClcbmV4cG9ydCBjb25zdCBleGVjdXRlUmVxdWVzdCA9IChvcmksIHsgc3BlY0FjdGlvbnMgfSkgPT4gKHJlcSkgPT4ge1xuICBzcGVjQWN0aW9ucy5sb2dSZXF1ZXN0KHJlcSlcbiAgcmV0dXJuIG9yaShyZXEpXG59XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVBhcmFtcyA9IChvcmksIHsgc3BlY1NlbGVjdG9ycyB9KSA9PiAocmVxKSA9PiB7XG4gIHJldHVybiBvcmkocmVxLCBzcGVjU2VsZWN0b3JzLmlzT0FTMygpKVxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHJlZHVjZXJzIGZyb20gXCIuL3JlZHVjZXJzXCJcbmltcG9ydCAqIGFzIGFjdGlvbnMgZnJvbSBcIi4vYWN0aW9uc1wiXG5pbXBvcnQgKiBhcyBzZWxlY3RvcnMgZnJvbSBcIi4vc2VsZWN0b3JzXCJcbmltcG9ydCAqIGFzIHdyYXBBY3Rpb25zIGZyb20gXCIuL3dyYXAtYWN0aW9uc1wiXG5cbmNvbnN0IFNwZWNQbHVnaW4gPSAoKSA9PiAoe1xuICBzdGF0ZVBsdWdpbnM6IHtcbiAgICBzcGVjOiB7XG4gICAgICB3cmFwQWN0aW9uczogeyAuLi53cmFwQWN0aW9ucyB9LFxuICAgICAgcmVkdWNlcnM6IHsgLi4ucmVkdWNlcnMgfSxcbiAgICAgIGFjdGlvbnM6IHsgLi4uYWN0aW9ucyB9LFxuICAgICAgc2VsZWN0b3JzOiB7IC4uLnNlbGVjdG9ycyB9LFxuICAgIH0sXG4gIH0sXG59KVxuXG5leHBvcnQgZGVmYXVsdCBTcGVjUGx1Z2luXG4iLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfc3dhZ2dlcl9jbGllbnRfZXNfcmVzb2x2ZXJfc3RyYXRlZ2llc19nZW5lcmljXzA4ZGQ1MjAwX19bXCJkZWZhdWx0XCJdOyB9IH0pOyIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImRlZmF1bHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9zd2FnZ2VyX2NsaWVudF9lc19yZXNvbHZlcl9zdHJhdGVnaWVzX29wZW5hcGlfMl9mZjZlNzljZl9fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfc3dhZ2dlcl9jbGllbnRfZXNfcmVzb2x2ZXJfc3RyYXRlZ2llc19vcGVuYXBpXzNfMF8yZmEwZmY3Y19fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfc3dhZ2dlcl9jbGllbnRfZXNfcmVzb2x2ZXJfc3RyYXRlZ2llc19vcGVuYXBpXzNfMV9hcGlkb21fNWU2MjhkMzlfX1tcImRlZmF1bHRcIl07IH0gfSk7IiwidmFyIHggPSBmdW5jdGlvbih5KSB7XG5cdHZhciB4ID0ge307IF9fd2VicGFja19yZXF1aXJlX18uZCh4LCB5KTsgcmV0dXJuIHhcbn0gXG52YXIgeSA9IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgeyByZXR1cm4geDsgfTsgfVxudmFyIF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wibWFrZVJlc29sdmVcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9zd2FnZ2VyX2NsaWVudF9lc19yZXNvbHZlcl9mODc5YzYzOF9fLm1ha2VSZXNvbHZlOyB9IH0pOyIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImJ1aWxkUmVxdWVzdFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3N3YWdnZXJfY2xpZW50X2VzX2V4ZWN1dGVfZDQ4NmQzZDZfXy5idWlsZFJlcXVlc3Q7IH0sIFtcImV4ZWN1dGVcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9zd2FnZ2VyX2NsaWVudF9lc19leGVjdXRlX2Q0ODZkM2Q2X18uZXhlY3V0ZTsgfSB9KTsiLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfc3dhZ2dlcl9jbGllbnRfZXNfaHR0cF82OTY1NTU2MF9fW1wiZGVmYXVsdFwiXTsgfSwgW1wibWFrZUh0dHBcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9zd2FnZ2VyX2NsaWVudF9lc19odHRwXzY5NjU1NTYwX18ubWFrZUh0dHA7IH0sIFtcInNlcmlhbGl6ZVJlc1wiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3N3YWdnZXJfY2xpZW50X2VzX2h0dHBfNjk2NTU1NjBfXy5zZXJpYWxpemVSZXM7IH0gfSk7IiwidmFyIHggPSBmdW5jdGlvbih5KSB7XG5cdHZhciB4ID0ge307IF9fd2VicGFja19yZXF1aXJlX18uZCh4LCB5KTsgcmV0dXJuIHhcbn0gXG52YXIgeSA9IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgeyByZXR1cm4geDsgfTsgfVxudmFyIF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wibWFrZVJlc29sdmVTdWJ0cmVlXCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfc3dhZ2dlcl9jbGllbnRfZXNfc3VidHJlZV9yZXNvbHZlcl83NDFjYjlkOV9fLm1ha2VSZXNvbHZlU3VidHJlZTsgfSB9KTsiLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJvcElkXCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfc3dhZ2dlcl9jbGllbnRfZXNfaGVscGVyc180ZDdiZWE0N19fLm9wSWQ7IH0gfSk7IiwiZXhwb3J0IGNvbnN0IGxvYWRlZCA9IChvcmksIHN5c3RlbSkgPT4gKC4uLmFyZ3MpID0+IHtcbiAgb3JpKC4uLmFyZ3MpXG4gIGNvbnN0IHZhbHVlID0gc3lzdGVtLmdldENvbmZpZ3MoKS53aXRoQ3JlZGVudGlhbHNcbiAgXG4gIHN5c3RlbS5mbi5mZXRjaC53aXRoQ3JlZGVudGlhbHMgPSB2YWx1ZVxufVxuIiwiaW1wb3J0IGdlbmVyaWNSZXNvbHZlU3RyYXRlZ3kgZnJvbSBcInN3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvZ2VuZXJpY1wiXG5pbXBvcnQgb3BlbkFwaTJSZXNvbHZlU3RyYXRlZ3kgZnJvbSBcInN3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvb3BlbmFwaS0yXCJcbmltcG9ydCBvcGVuQXBpMzBSZXNvbHZlU3RyYXRlZ3kgZnJvbSBcInN3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvb3BlbmFwaS0zLTBcIlxuaW1wb3J0IG9wZW5BcGkzMUFwaURPTVJlc29sdmVTdHJhdGVneSBmcm9tIFwic3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvc3RyYXRlZ2llcy9vcGVuYXBpLTMtMS1hcGlkb21cIlxuaW1wb3J0IHsgbWFrZVJlc29sdmUgfSBmcm9tIFwic3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXJcIlxuaW1wb3J0IHsgZXhlY3V0ZSwgYnVpbGRSZXF1ZXN0IH0gZnJvbSBcInN3YWdnZXItY2xpZW50L2VzL2V4ZWN1dGVcIlxuaW1wb3J0IEh0dHAsIHsgbWFrZUh0dHAsIHNlcmlhbGl6ZVJlcyB9IGZyb20gXCJzd2FnZ2VyLWNsaWVudC9lcy9odHRwXCJcbmltcG9ydCB7IG1ha2VSZXNvbHZlU3VidHJlZSB9IGZyb20gXCJzd2FnZ2VyLWNsaWVudC9lcy9zdWJ0cmVlLXJlc29sdmVyXCJcbmltcG9ydCB7IG9wSWQgfSBmcm9tIFwic3dhZ2dlci1jbGllbnQvZXMvaGVscGVyc1wiXG5pbXBvcnQgeyBsb2FkZWQgfSBmcm9tIFwiLi9jb25maWdzLXdyYXAtYWN0aW9uc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHsgY29uZmlncywgZ2V0Q29uZmlncyB9KSB7XG4gIHJldHVybiB7XG4gICAgZm46IHtcbiAgICAgIGZldGNoOiBtYWtlSHR0cChIdHRwLCBjb25maWdzLnByZUZldGNoLCBjb25maWdzLnBvc3RGZXRjaCksXG4gICAgICBidWlsZFJlcXVlc3QsXG4gICAgICBleGVjdXRlLFxuICAgICAgcmVzb2x2ZTogbWFrZVJlc29sdmUoe1xuICAgICAgICBzdHJhdGVnaWVzOiBbXG4gICAgICAgICAgb3BlbkFwaTMxQXBpRE9NUmVzb2x2ZVN0cmF0ZWd5LFxuICAgICAgICAgIG9wZW5BcGkzMFJlc29sdmVTdHJhdGVneSxcbiAgICAgICAgICBvcGVuQXBpMlJlc29sdmVTdHJhdGVneSxcbiAgICAgICAgICBnZW5lcmljUmVzb2x2ZVN0cmF0ZWd5LFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgICByZXNvbHZlU3VidHJlZTogYXN5bmMgKG9iaiwgcGF0aCwgb3B0aW9ucyA9IHt9KSA9PiB7XG4gICAgICAgIGNvbnN0IGZyZXNoQ29uZmlncyA9IGdldENvbmZpZ3MoKVxuICAgICAgICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IHtcbiAgICAgICAgICBtb2RlbFByb3BlcnR5TWFjcm86IGZyZXNoQ29uZmlncy5tb2RlbFByb3BlcnR5TWFjcm8sXG4gICAgICAgICAgcGFyYW1ldGVyTWFjcm86IGZyZXNoQ29uZmlncy5wYXJhbWV0ZXJNYWNybyxcbiAgICAgICAgICByZXF1ZXN0SW50ZXJjZXB0b3I6IGZyZXNoQ29uZmlncy5yZXF1ZXN0SW50ZXJjZXB0b3IsXG4gICAgICAgICAgcmVzcG9uc2VJbnRlcmNlcHRvcjogZnJlc2hDb25maWdzLnJlc3BvbnNlSW50ZXJjZXB0b3IsXG4gICAgICAgICAgc3RyYXRlZ2llczogW1xuICAgICAgICAgICAgb3BlbkFwaTMxQXBpRE9NUmVzb2x2ZVN0cmF0ZWd5LFxuICAgICAgICAgICAgb3BlbkFwaTMwUmVzb2x2ZVN0cmF0ZWd5LFxuICAgICAgICAgICAgb3BlbkFwaTJSZXNvbHZlU3RyYXRlZ3ksXG4gICAgICAgICAgICBnZW5lcmljUmVzb2x2ZVN0cmF0ZWd5LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWFrZVJlc29sdmVTdWJ0cmVlKGRlZmF1bHRPcHRpb25zKShvYmosIHBhdGgsIG9wdGlvbnMpXG4gICAgICB9LFxuICAgICAgc2VyaWFsaXplUmVzLFxuICAgICAgb3BJZFxuICAgIH0sXG4gICAgc3RhdGVQbHVnaW5zOiB7XG4gICAgICBjb25maWdzOiB7XG4gICAgICAgIHdyYXBBY3Rpb25zOiB7XG4gICAgICAgICAgbG9hZGVkLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgfVxufVxuIiwiaW1wb3J0IHsgc2hhbGxvd0VxdWFsS2V5cyB9IGZyb20gXCJjb3JlL3V0aWxzXCJcbmltcG9ydCB7IHNhbml0aXplVXJsIH0gZnJvbSBcImNvcmUvdXRpbHMvdXJsXCJcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7XG4gICAgZm46IHtcbiAgICAgIHNoYWxsb3dFcXVhbEtleXMsXG4gICAgICBzYW5pdGl6ZVVybCxcbiAgICB9XG4gIH1cbn1cbiIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImRlZmF1bHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9kb21fN2RhYzllZWVfX1tcImRlZmF1bHRcIl07IH0gfSk7IiwidmFyIHggPSBmdW5jdGlvbih5KSB7XG5cdHZhciB4ID0ge307IF9fd2VicGFja19yZXF1aXJlX18uZCh4LCB5KTsgcmV0dXJuIHhcbn0gXG52YXIgeSA9IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgeyByZXR1cm4geDsgfTsgfVxudmFyIF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wiUHJvdmlkZXJcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9yZWR1eF84N2JlMDNiMF9fLlByb3ZpZGVyOyB9LCBbXCJjb25uZWN0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3RfcmVkdXhfODdiZTAzYjBfXy5jb25uZWN0OyB9IH0pOyIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImRlZmF1bHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfaWRlbnRpdHlfNzVmZmU0YTdfX1tcImRlZmF1bHRcIl07IH0gfSk7IiwiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUmVhY3RET00gZnJvbSBcInJlYWN0LWRvbVwiXG5pbXBvcnQgeyBjb21wb3NlIH0gZnJvbSBcInJlZHV4XCJcbmltcG9ydCB7IGNvbm5lY3QsIFByb3ZpZGVyIH0gZnJvbSBcInJlYWN0LXJlZHV4XCJcbmltcG9ydCBvbWl0IGZyb20gXCJsb2Rhc2gvb21pdFwiXG5pbXBvcnQgaWRlbnRpdHkgZnJvbSBcImxvZGFzaC9pZGVudGl0eVwiXG5cbmNvbnN0IHdpdGhTeXN0ZW0gPSAoZ2V0U3lzdGVtKSA9PiAoV3JhcHBlZENvbXBvbmVudCkgPT4ge1xuICBjb25zdCB7IGZuIH0gPSBnZXRTeXN0ZW0oKVxuXG4gIGNsYXNzIFdpdGhTeXN0ZW0gZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiA8V3JhcHBlZENvbXBvbmVudCB7Li4uZ2V0U3lzdGVtKCl9IHsuLi50aGlzLnByb3BzfSB7Li4udGhpcy5jb250ZXh0fSAvPlxuICAgIH1cbiAgfVxuICBXaXRoU3lzdGVtLmRpc3BsYXlOYW1lID0gYFdpdGhTeXN0ZW0oJHtmbi5nZXREaXNwbGF5TmFtZShXcmFwcGVkQ29tcG9uZW50KX0pYFxuICByZXR1cm4gV2l0aFN5c3RlbVxufVxuXG5jb25zdCB3aXRoUm9vdCA9IChnZXRTeXN0ZW0sIHJlZHV4U3RvcmUpID0+IChXcmFwcGVkQ29tcG9uZW50KSA9PiB7XG4gIGNvbnN0IHsgZm4gfSA9IGdldFN5c3RlbSgpXG5cbiAgY2xhc3MgV2l0aFJvb3QgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxQcm92aWRlciBzdG9yZT17cmVkdXhTdG9yZX0+XG4gICAgICAgICAgPFdyYXBwZWRDb21wb25lbnQgey4uLnRoaXMucHJvcHN9IHsuLi50aGlzLmNvbnRleHR9IC8+XG4gICAgICAgIDwvUHJvdmlkZXI+XG4gICAgICApXG4gICAgfVxuICB9XG4gIFdpdGhSb290LmRpc3BsYXlOYW1lID0gYFdpdGhSb290KCR7Zm4uZ2V0RGlzcGxheU5hbWUoV3JhcHBlZENvbXBvbmVudCl9KWBcbiAgcmV0dXJuIFdpdGhSb290XG59XG5cbmNvbnN0IHdpdGhDb25uZWN0ID0gKGdldFN5c3RlbSwgV3JhcHBlZENvbXBvbmVudCwgcmVkdXhTdG9yZSkgPT4ge1xuICBjb25zdCBtYXBTdGF0ZVRvUHJvcHMgPSAoc3RhdGUsIG93blByb3BzKSA9PiB7XG4gICAgY29uc3QgcHJvcHMgPSB7Li4ub3duUHJvcHMsIC4uLmdldFN5c3RlbSgpfVxuICAgIGNvbnN0IGN1c3RvbU1hcFN0YXRlVG9Qcm9wcyA9IFdyYXBwZWRDb21wb25lbnQucHJvdG90eXBlPy5tYXBTdGF0ZVRvUHJvcHMgfHwgKHN0YXRlID0+ICh7c3RhdGV9KSlcbiAgICByZXR1cm4gY3VzdG9tTWFwU3RhdGVUb1Byb3BzKHN0YXRlLCBwcm9wcylcbiAgfVxuXG4gIHJldHVybiBjb21wb3NlKFxuICAgIHJlZHV4U3RvcmUgPyB3aXRoUm9vdChnZXRTeXN0ZW0sIHJlZHV4U3RvcmUpIDogaWRlbnRpdHksXG4gICAgY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMpLFxuICAgIHdpdGhTeXN0ZW0oZ2V0U3lzdGVtKSxcbiAgKShXcmFwcGVkQ29tcG9uZW50KVxufVxuXG5jb25zdCBoYW5kbGVQcm9wcyA9IChnZXRTeXN0ZW0sIG1hcHBpbmcsIHByb3BzLCBvbGRQcm9wcykgPT4ge1xuICBmb3IgKGNvbnN0IHByb3AgaW4gbWFwcGluZykge1xuICAgIGNvbnN0IGZuID0gbWFwcGluZ1twcm9wXVxuXG4gICAgaWYgKHR5cGVvZiBmbiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBmbihwcm9wc1twcm9wXSwgb2xkUHJvcHNbcHJvcF0sIGdldFN5c3RlbSgpKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgd2l0aE1hcHBlZENvbnRhaW5lciA9IChnZXRTeXN0ZW0sIGdldFN0b3JlLCBtZW1HZXRDb21wb25lbnQpID0+IChjb21wb25lbnROYW1lLCBtYXBwaW5nKSA9PiB7XG4gIGNvbnN0IHsgZm4gfSA9IGdldFN5c3RlbSgpXG4gIGNvbnN0IFdyYXBwZWRDb21wb25lbnQgPSBtZW1HZXRDb21wb25lbnQoY29tcG9uZW50TmFtZSwgXCJyb290XCIpXG5cbiAgY2xhc3MgV2l0aE1hcHBlZENvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgY29uc3RydWN0b3IocHJvcHMsIGNvbnRleHQpIHtcbiAgICAgIHN1cGVyKHByb3BzLCBjb250ZXh0KVxuICAgICAgaGFuZGxlUHJvcHMoZ2V0U3lzdGVtLCBtYXBwaW5nLCBwcm9wcywge30pXG4gICAgfVxuXG4gICAgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICBoYW5kbGVQcm9wcyhnZXRTeXN0ZW0sIG1hcHBpbmcsIG5leHRQcm9wcywgdGhpcy5wcm9wcylcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCBjbGVhblByb3BzID0gb21pdCh0aGlzLnByb3BzLCBtYXBwaW5nID8gT2JqZWN0LmtleXMobWFwcGluZykgOiBbXSlcbiAgICAgIHJldHVybiA8V3JhcHBlZENvbXBvbmVudCB7Li4uY2xlYW5Qcm9wc30gLz5cbiAgICB9XG4gIH1cbiAgV2l0aE1hcHBlZENvbnRhaW5lci5kaXNwbGF5TmFtZSA9IGBXaXRoTWFwcGVkQ29udGFpbmVyKCR7Zm4uZ2V0RGlzcGxheU5hbWUoV3JhcHBlZENvbXBvbmVudCl9KWBcbiAgcmV0dXJuIFdpdGhNYXBwZWRDb250YWluZXJcbn1cblxuZXhwb3J0IGNvbnN0IHJlbmRlciA9IChnZXRTeXN0ZW0sIGdldFN0b3JlLCBnZXRDb21wb25lbnQsIGdldENvbXBvbmVudHMpID0+IChkb21Ob2RlKSA9PiB7XG4gIGNvbnN0IEFwcCA9IGdldENvbXBvbmVudChnZXRTeXN0ZW0sIGdldFN0b3JlLCBnZXRDb21wb25lbnRzKShcIkFwcFwiLCBcInJvb3RcIilcbiAgY29uc3QgeyBjcmVhdGVSb290IH0gPSBSZWFjdERPTVxuICBjb25zdCByb290ID0gY3JlYXRlUm9vdChkb21Ob2RlKVxuXG4gIHJvb3QucmVuZGVyKDxBcHAvPilcbn1cblxuZXhwb3J0IGNvbnN0IGdldENvbXBvbmVudCA9IChnZXRTeXN0ZW0sIGdldFN0b3JlLCBnZXRDb21wb25lbnRzKSA9PiAoY29tcG9uZW50TmFtZSwgY29udGFpbmVyLCBjb25maWcgPSB7fSkgPT4ge1xuXG4gIGlmICh0eXBlb2YgY29tcG9uZW50TmFtZSAhPT0gXCJzdHJpbmdcIilcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiTmVlZCBhIHN0cmluZywgdG8gZmV0Y2ggYSBjb21wb25lbnQuIFdhcyBnaXZlbiBhIFwiICsgdHlwZW9mIGNvbXBvbmVudE5hbWUpXG5cbiAgICAvLyBnZXRDb21wb25lbnQgaGFzIGEgY29uZmlnIG9iamVjdCBhcyBhIHRoaXJkLCBvcHRpb25hbCBwYXJhbWV0ZXJcbiAgICAvLyB1c2luZyB0aGUgY29uZmlnIG9iamVjdCByZXF1aXJlcyB0aGUgcHJlc2VuY2Ugb2YgdGhlIHNlY29uZCBwYXJhbWV0ZXIsIGNvbnRhaW5lclxuICAgIC8vIGUuZy4gZ2V0Q29tcG9uZW50KFwiSnNvblNjaGVtYV9zdHJpbmdfd2hhdGV2ZXJcIiwgZmFsc2UsIHsgZmFpbFNpbGVudGx5OiB0cnVlIH0pXG4gIGNvbnN0IGNvbXBvbmVudCA9IGdldENvbXBvbmVudHMoY29tcG9uZW50TmFtZSlcblxuICBpZiAoIWNvbXBvbmVudCkge1xuICAgIGlmICghY29uZmlnLmZhaWxTaWxlbnRseSkge1xuICAgICAgZ2V0U3lzdGVtKCkubG9nLndhcm4oXCJDb3VsZCBub3QgZmluZCBjb21wb25lbnQ6XCIsIGNvbXBvbmVudE5hbWUpXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBpZighY29udGFpbmVyKSB7XG4gICAgcmV0dXJuIGNvbXBvbmVudFxuICB9XG5cbiAgaWYoY29udGFpbmVyID09PSBcInJvb3RcIikge1xuICAgIHJldHVybiB3aXRoQ29ubmVjdChnZXRTeXN0ZW0sIGNvbXBvbmVudCwgZ2V0U3RvcmUoKSlcbiAgfVxuXG4gIC8vIGNvbnRhaW5lciA9PSB0cnV0aHlcbiAgcmV0dXJuIHdpdGhDb25uZWN0KGdldFN5c3RlbSwgY29tcG9uZW50KVxufVxuIiwiZXhwb3J0IGNvbnN0IGdldERpc3BsYXlOYW1lID0gKFdyYXBwZWRDb21wb25lbnQpID0+IFdyYXBwZWRDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgV3JhcHBlZENvbXBvbmVudC5uYW1lIHx8IFwiQ29tcG9uZW50XCJcbiIsImltcG9ydCB7IG1lbW9pemUgfSBmcm9tIFwiY29yZS91dGlsc1wiXG5cbmltcG9ydCBtZW1vaXplTiBmcm9tIFwiY29yZS91dGlscy9tZW1vaXplTlwiXG5pbXBvcnQgeyBnZXRDb21wb25lbnQsIHJlbmRlciwgd2l0aE1hcHBlZENvbnRhaW5lciB9IGZyb20gXCIuL3Jvb3QtaW5qZWN0c1wiXG5pbXBvcnQgeyBnZXREaXNwbGF5TmFtZSB9IGZyb20gXCIuL2ZuXCJcblxuY29uc3QgbWVtb2l6ZUZvckdldENvbXBvbmVudCA9IChmbikgPT4ge1xuICBjb25zdCByZXNvbHZlciA9ICguLi5hcmdzKSA9PiBKU09OLnN0cmluZ2lmeShhcmdzKVxuICByZXR1cm4gbWVtb2l6ZShmbiwgcmVzb2x2ZXIpXG59XG5cbmNvbnN0IG1lbW9pemVGb3JXaXRoTWFwcGVkQ29udGFpbmVyID0gKGZuKSA9PiB7XG4gIGNvbnN0IHJlc29sdmVyID0gKC4uLmFyZ3MpID0+IGFyZ3NcbiAgcmV0dXJuIG1lbW9pemVOKGZuLCByZXNvbHZlcilcbn1cblxuY29uc3Qgdmlld1BsdWdpbiA9ICh7Z2V0Q29tcG9uZW50cywgZ2V0U3RvcmUsIGdldFN5c3RlbX0pID0+IHtcbiAgLy8gZ2V0Q29tcG9uZW50IHNob3VsZCBiZSBwYXNzZWQgaW50byBtYWtlTWFwcGVkQ29udGFpbmVyLCBfYWxyZWFkeV8gbWVtb2l6ZWQuLi4gb3RoZXJ3aXNlIHdlIGhhdmUgYSBiaWcgcGVyZm9ybWFuY2UgaGl0ICggdGhpbmssIHJlYWxseSBiaWcgKVxuICBjb25zdCBtZW1HZXRDb21wb25lbnQgPSBtZW1vaXplRm9yR2V0Q29tcG9uZW50KGdldENvbXBvbmVudChnZXRTeXN0ZW0sIGdldFN0b3JlLCBnZXRDb21wb25lbnRzKSlcbiAgY29uc3QgbWVtTWFrZU1hcHBlZENvbnRhaW5lciA9IG1lbW9pemVGb3JXaXRoTWFwcGVkQ29udGFpbmVyKHdpdGhNYXBwZWRDb250YWluZXIoZ2V0U3lzdGVtLCBnZXRTdG9yZSwgbWVtR2V0Q29tcG9uZW50KSlcblxuICByZXR1cm4ge1xuICAgIHJvb3RJbmplY3RzOiB7XG4gICAgICBnZXRDb21wb25lbnQ6IG1lbUdldENvbXBvbmVudCxcbiAgICAgIG1ha2VNYXBwZWRDb250YWluZXI6IG1lbU1ha2VNYXBwZWRDb250YWluZXIsXG4gICAgICByZW5kZXI6IHJlbmRlcihnZXRTeXN0ZW0sIGdldFN0b3JlLCBnZXRDb21wb25lbnQsIGdldENvbXBvbmVudHMpLFxuICAgIH0sXG4gICAgZm46IHtcbiAgICAgIGdldERpc3BsYXlOYW1lLFxuICAgIH0sXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdmlld1BsdWdpblxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgZ2V0Q29tcG9uZW50IH0gZnJvbSBcImNvcmUvcGx1Z2lucy92aWV3L3Jvb3QtaW5qZWN0c1wiXG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9yb290LWluamVjdHNcIlxuXG5jb25zdCBWaWV3TGVnYWN5UGx1Z2luID0gKHsgUmVhY3QsIGdldFN5c3RlbSwgZ2V0U3RvcmUsIGdldENvbXBvbmVudHMgfSkgPT4ge1xuICBjb25zdCByb290SW5qZWN0cyA9IHt9XG4gIGNvbnN0IHJlYWN0TWFqb3JWZXJzaW9uID0gcGFyc2VJbnQoUmVhY3Q/LnZlcnNpb24sIDEwKVxuXG4gIGlmIChyZWFjdE1ham9yVmVyc2lvbiA+PSAxNiAmJiByZWFjdE1ham9yVmVyc2lvbiA8IDE4KSB7XG4gICAgcm9vdEluamVjdHMucmVuZGVyID0gcmVuZGVyKFxuICAgICAgZ2V0U3lzdGVtLFxuICAgICAgZ2V0U3RvcmUsXG4gICAgICBnZXRDb21wb25lbnQsXG4gICAgICBnZXRDb21wb25lbnRzXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICByb290SW5qZWN0cyxcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBWaWV3TGVnYWN5UGx1Z2luXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCJcblxuZXhwb3J0IGNvbnN0IHJlbmRlciA9XG4gIChnZXRTeXN0ZW0sIGdldFN0b3JlLCBnZXRDb21wb25lbnQsIGdldENvbXBvbmVudHMpID0+IChkb21Ob2RlKSA9PiB7XG4gICAgY29uc3QgQXBwID0gZ2V0Q29tcG9uZW50KGdldFN5c3RlbSwgZ2V0U3RvcmUsIGdldENvbXBvbmVudHMpKFwiQXBwXCIsIFwicm9vdFwiKVxuXG4gICAgUmVhY3RET00ucmVuZGVyKDxBcHAgLz4sIGRvbU5vZGUpXG4gIH1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSBcInJlc2VsZWN0XCJcbmltcG9ydCB7IE1hcCB9IGZyb20gXCJpbW11dGFibGVcIlxuaW1wb3J0IHdpbiBmcm9tIFwiY29yZS93aW5kb3dcIlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkb3dubG9hZFVybFBsdWdpbih0b29sYm94KSB7XG4gIGxldCB7IGZuIH0gPSB0b29sYm94XG5cbiAgY29uc3QgYWN0aW9ucyA9IHtcbiAgICBkb3dubG9hZDpcbiAgICAgICh1cmwpID0+XG4gICAgICAoeyBlcnJBY3Rpb25zLCBzcGVjU2VsZWN0b3JzLCBzcGVjQWN0aW9ucywgZ2V0Q29uZmlncyB9KSA9PiB7XG4gICAgICAgIGxldCB7IGZldGNoIH0gPSBmblxuICAgICAgICBjb25zdCBjb25maWcgPSBnZXRDb25maWdzKClcbiAgICAgICAgdXJsID0gdXJsIHx8IHNwZWNTZWxlY3RvcnMudXJsKClcbiAgICAgICAgc3BlY0FjdGlvbnMudXBkYXRlTG9hZGluZ1N0YXR1cyhcImxvYWRpbmdcIilcbiAgICAgICAgZXJyQWN0aW9ucy5jbGVhcih7IHNvdXJjZTogXCJmZXRjaFwiIH0pXG4gICAgICAgIGZldGNoKHtcbiAgICAgICAgICB1cmwsXG4gICAgICAgICAgbG9hZFNwZWM6IHRydWUsXG4gICAgICAgICAgcmVxdWVzdEludGVyY2VwdG9yOiBjb25maWcucmVxdWVzdEludGVyY2VwdG9yIHx8ICgoYSkgPT4gYSksXG4gICAgICAgICAgcmVzcG9uc2VJbnRlcmNlcHRvcjogY29uZmlnLnJlc3BvbnNlSW50ZXJjZXB0b3IgfHwgKChhKSA9PiBhKSxcbiAgICAgICAgICBjcmVkZW50aWFsczogXCJzYW1lLW9yaWdpblwiLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlvbi9qc29uLCovKlwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLnRoZW4obmV4dCwgbmV4dClcblxuICAgICAgICBmdW5jdGlvbiBuZXh0KHJlcykge1xuICAgICAgICAgIGlmIChyZXMgaW5zdGFuY2VvZiBFcnJvciB8fCByZXMuc3RhdHVzID49IDQwMCkge1xuICAgICAgICAgICAgc3BlY0FjdGlvbnMudXBkYXRlTG9hZGluZ1N0YXR1cyhcImZhaWxlZFwiKVxuICAgICAgICAgICAgZXJyQWN0aW9ucy5uZXdUaHJvd25FcnIoXG4gICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICAgICAgbmV3IEVycm9yKChyZXMubWVzc2FnZSB8fCByZXMuc3RhdHVzVGV4dCkgKyBcIiBcIiArIHVybCksXG4gICAgICAgICAgICAgICAgeyBzb3VyY2U6IFwiZmV0Y2hcIiB9XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBmYWlsdXJlIHdhcyBwb3NzaWJseSBkdWUgdG8gQ09SUyBvciBtaXhlZCBjb250ZW50XG4gICAgICAgICAgICBpZiAoIXJlcy5zdGF0dXMgJiYgcmVzIGluc3RhbmNlb2YgRXJyb3IpIGNoZWNrUG9zc2libGVGYWlsUmVhc29ucygpXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgICAgc3BlY0FjdGlvbnMudXBkYXRlTG9hZGluZ1N0YXR1cyhcInN1Y2Nlc3NcIilcbiAgICAgICAgICBzcGVjQWN0aW9ucy51cGRhdGVTcGVjKHJlcy50ZXh0KVxuICAgICAgICAgIGlmIChzcGVjU2VsZWN0b3JzLnVybCgpICE9PSB1cmwpIHtcbiAgICAgICAgICAgIHNwZWNBY3Rpb25zLnVwZGF0ZVVybCh1cmwpXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gY2hlY2tQb3NzaWJsZUZhaWxSZWFzb25zKCkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgc3BlY1VybFxuXG4gICAgICAgICAgICBpZiAoXCJVUkxcIiBpbiB3aW4pIHtcbiAgICAgICAgICAgICAgc3BlY1VybCA9IG5ldyBVUkwodXJsKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gbGVnYWN5IGJyb3dzZXIsIHVzZSA8YSBocmVmPiB0byBwYXJzZSB0aGUgVVJMXG4gICAgICAgICAgICAgIHNwZWNVcmwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKVxuICAgICAgICAgICAgICBzcGVjVXJsLmhyZWYgPSB1cmxcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBzcGVjVXJsLnByb3RvY29sICE9PSBcImh0dHBzOlwiICYmXG4gICAgICAgICAgICAgIHdpbi5sb2NhdGlvbi5wcm90b2NvbCA9PT0gXCJodHRwczpcIlxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICBgUG9zc2libGUgbWl4ZWQtY29udGVudCBpc3N1ZT8gVGhlIHBhZ2Ugd2FzIGxvYWRlZCBvdmVyIGh0dHBzOi8vIGJ1dCBhICR7c3BlY1VybC5wcm90b2NvbH0vLyBVUkwgd2FzIHNwZWNpZmllZC4gQ2hlY2sgdGhhdCB5b3UgYXJlIG5vdCBhdHRlbXB0aW5nIHRvIGxvYWQgbWl4ZWQgY29udGVudC5gXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB7IHNvdXJjZTogXCJmZXRjaFwiIH1cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBlcnJBY3Rpb25zLm5ld1Rocm93bkVycihlcnJvcilcbiAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc3BlY1VybC5vcmlnaW4gIT09IHdpbi5sb2NhdGlvbi5vcmlnaW4pIHtcbiAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgIGBQb3NzaWJsZSBjcm9zcy1vcmlnaW4gKENPUlMpIGlzc3VlPyBUaGUgVVJMIG9yaWdpbiAoJHtzcGVjVXJsLm9yaWdpbn0pIGRvZXMgbm90IG1hdGNoIHRoZSBwYWdlICgke3dpbi5sb2NhdGlvbi5vcmlnaW59KS4gQ2hlY2sgdGhlIHNlcnZlciByZXR1cm5zIHRoZSBjb3JyZWN0ICdBY2Nlc3MtQ29udHJvbC1BbGxvdy0qJyBoZWFkZXJzLmBcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHsgc291cmNlOiBcImZldGNoXCIgfVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGVyckFjdGlvbnMubmV3VGhyb3duRXJyKGVycm9yKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgIHVwZGF0ZUxvYWRpbmdTdGF0dXM6IChzdGF0dXMpID0+IHtcbiAgICAgIGxldCBlbnVtcyA9IFtudWxsLCBcImxvYWRpbmdcIiwgXCJmYWlsZWRcIiwgXCJzdWNjZXNzXCIsIFwiZmFpbGVkQ29uZmlnXCJdXG4gICAgICBpZiAoZW51bXMuaW5kZXhPZihzdGF0dXMpID09PSAtMSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvcjogJHtzdGF0dXN9IGlzIG5vdCBvbmUgb2YgJHtKU09OLnN0cmluZ2lmeShlbnVtcyl9YClcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogXCJzcGVjX3VwZGF0ZV9sb2FkaW5nX3N0YXR1c1wiLFxuICAgICAgICBwYXlsb2FkOiBzdGF0dXMsXG4gICAgICB9XG4gICAgfSxcbiAgfVxuXG4gIGxldCByZWR1Y2VycyA9IHtcbiAgICBzcGVjX3VwZGF0ZV9sb2FkaW5nX3N0YXR1czogKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0eXBlb2YgYWN0aW9uLnBheWxvYWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBzdGF0ZS5zZXQoXCJsb2FkaW5nU3RhdHVzXCIsIGFjdGlvbi5wYXlsb2FkKVxuICAgICAgICA6IHN0YXRlXG4gICAgfSxcbiAgfVxuXG4gIGxldCBzZWxlY3RvcnMgPSB7XG4gICAgbG9hZGluZ1N0YXR1czogY3JlYXRlU2VsZWN0b3IoXG4gICAgICAoc3RhdGUpID0+IHtcbiAgICAgICAgcmV0dXJuIHN0YXRlIHx8IE1hcCgpXG4gICAgICB9LFxuICAgICAgKHNwZWMpID0+IHNwZWMuZ2V0KFwibG9hZGluZ1N0YXR1c1wiKSB8fCBudWxsXG4gICAgKSxcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgc3RhdGVQbHVnaW5zOiB7XG4gICAgICBzcGVjOiB7IGFjdGlvbnMsIHJlZHVjZXJzLCBzZWxlY3RvcnMgfSxcbiAgICB9LFxuICB9XG59XG4iLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3Rfc3ludGF4X2hpZ2hsaWdodGVyX2Rpc3RfZXNtX2xpZ2h0Xzc0NmUxOTU4X19bXCJkZWZhdWx0XCJdOyB9IH0pOyIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImRlZmF1bHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9zeW50YXhfaGlnaGxpZ2h0ZXJfZGlzdF9lc21fbGFuZ3VhZ2VzX2hsanNfamF2YXNjcmlwdF9lMjI5MTFmN19fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3Rfc3ludGF4X2hpZ2hsaWdodGVyX2Rpc3RfZXNtX2xhbmd1YWdlc19obGpzX2pzb25fYjg3NmFmYzVfX1tcImRlZmF1bHRcIl07IH0gfSk7IiwidmFyIHggPSBmdW5jdGlvbih5KSB7XG5cdHZhciB4ID0ge307IF9fd2VicGFja19yZXF1aXJlX18uZCh4LCB5KTsgcmV0dXJuIHhcbn0gXG52YXIgeSA9IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgeyByZXR1cm4geDsgfTsgfVxudmFyIF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wiZGVmYXVsdFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X3N5bnRheF9oaWdobGlnaHRlcl9kaXN0X2VzbV9sYW5ndWFnZXNfaGxqc194bWxfYTgxYzgwN2JfX1tcImRlZmF1bHRcIl07IH0gfSk7IiwidmFyIHggPSBmdW5jdGlvbih5KSB7XG5cdHZhciB4ID0ge307IF9fd2VicGFja19yZXF1aXJlX18uZCh4LCB5KTsgcmV0dXJuIHhcbn0gXG52YXIgeSA9IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgeyByZXR1cm4geDsgfTsgfVxudmFyIF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wiZGVmYXVsdFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X3N5bnRheF9oaWdobGlnaHRlcl9kaXN0X2VzbV9sYW5ndWFnZXNfaGxqc19iYXNoXzE2MjFjNjIxX19bXCJkZWZhdWx0XCJdOyB9IH0pOyIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImRlZmF1bHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9zeW50YXhfaGlnaGxpZ2h0ZXJfZGlzdF9lc21fbGFuZ3VhZ2VzX2hsanNfeWFtbF8wMjgzOGYzNF9fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3Rfc3ludGF4X2hpZ2hsaWdodGVyX2Rpc3RfZXNtX2xhbmd1YWdlc19obGpzX2h0dHBfNGU5MjRiMjNfX1tcImRlZmF1bHRcIl07IH0gfSk7IiwidmFyIHggPSBmdW5jdGlvbih5KSB7XG5cdHZhciB4ID0ge307IF9fd2VicGFja19yZXF1aXJlX18uZCh4LCB5KTsgcmV0dXJuIHhcbn0gXG52YXIgeSA9IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgeyByZXR1cm4geDsgfTsgfVxudmFyIF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wiZGVmYXVsdFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X3N5bnRheF9oaWdobGlnaHRlcl9kaXN0X2VzbV9sYW5ndWFnZXNfaGxqc19wb3dlcnNoZWxsX2Q1MWViNGY2X19bXCJkZWZhdWx0XCJdOyB9IH0pOyIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBTeW50YXhIaWdobGlnaHRlciBmcm9tIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xpZ2h0XCJcbmltcG9ydCBqcyBmcm9tIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL2phdmFzY3JpcHRcIlxuaW1wb3J0IGpzb24gZnJvbSBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy9qc29uXCJcbmltcG9ydCB4bWwgZnJvbSBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy94bWxcIlxuaW1wb3J0IGJhc2ggZnJvbSBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy9iYXNoXCJcbmltcG9ydCB5YW1sIGZyb20gXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL2hsanMveWFtbFwiXG5pbXBvcnQgaHR0cCBmcm9tIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL2h0dHBcIlxuaW1wb3J0IHBvd2Vyc2hlbGwgZnJvbSBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy9wb3dlcnNoZWxsXCJcbmltcG9ydCBqYXZhc2NyaXB0IGZyb20gXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL2hsanMvamF2YXNjcmlwdFwiXG5cbmNvbnN0IGFmdGVyTG9hZCA9ICgpID0+IHtcbiAgU3ludGF4SGlnaGxpZ2h0ZXIucmVnaXN0ZXJMYW5ndWFnZShcImpzb25cIiwganNvbilcbiAgU3ludGF4SGlnaGxpZ2h0ZXIucmVnaXN0ZXJMYW5ndWFnZShcImpzXCIsIGpzKVxuICBTeW50YXhIaWdobGlnaHRlci5yZWdpc3Rlckxhbmd1YWdlKFwieG1sXCIsIHhtbClcbiAgU3ludGF4SGlnaGxpZ2h0ZXIucmVnaXN0ZXJMYW5ndWFnZShcInlhbWxcIiwgeWFtbClcbiAgU3ludGF4SGlnaGxpZ2h0ZXIucmVnaXN0ZXJMYW5ndWFnZShcImh0dHBcIiwgaHR0cClcbiAgU3ludGF4SGlnaGxpZ2h0ZXIucmVnaXN0ZXJMYW5ndWFnZShcImJhc2hcIiwgYmFzaClcbiAgU3ludGF4SGlnaGxpZ2h0ZXIucmVnaXN0ZXJMYW5ndWFnZShcInBvd2Vyc2hlbGxcIiwgcG93ZXJzaGVsbClcbiAgU3ludGF4SGlnaGxpZ2h0ZXIucmVnaXN0ZXJMYW5ndWFnZShcImphdmFzY3JpcHRcIiwgamF2YXNjcmlwdClcbn1cblxuZXhwb3J0IGRlZmF1bHQgYWZ0ZXJMb2FkXG4iLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3Rfc3ludGF4X2hpZ2hsaWdodGVyX2Rpc3RfZXNtX3N0eWxlc19obGpzX2FnYXRlXzk5YTQ2YWEyX19bXCJkZWZhdWx0XCJdOyB9IH0pOyIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImRlZmF1bHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9zeW50YXhfaGlnaGxpZ2h0ZXJfZGlzdF9lc21fc3R5bGVzX2hsanNfYXJ0YV81NzA2OTFmY19fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3Rfc3ludGF4X2hpZ2hsaWdodGVyX2Rpc3RfZXNtX3N0eWxlc19obGpzX21vbm9rYWlfMjUyOWJhZmJfX1tcImRlZmF1bHRcIl07IH0gfSk7IiwidmFyIHggPSBmdW5jdGlvbih5KSB7XG5cdHZhciB4ID0ge307IF9fd2VicGFja19yZXF1aXJlX18uZCh4LCB5KTsgcmV0dXJuIHhcbn0gXG52YXIgeSA9IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgeyByZXR1cm4geDsgfTsgfVxudmFyIF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wiZGVmYXVsdFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X3N5bnRheF9oaWdobGlnaHRlcl9kaXN0X2VzbV9zdHlsZXNfaGxqc19ub3JkXzViZmExMDk5X19bXCJkZWZhdWx0XCJdOyB9IH0pOyIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImRlZmF1bHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9zeW50YXhfaGlnaGxpZ2h0ZXJfZGlzdF9lc21fc3R5bGVzX2hsanNfb2JzaWRpYW5fYTI3OGRkNTJfX1tcImRlZmF1bHRcIl07IH0gfSk7IiwidmFyIHggPSBmdW5jdGlvbih5KSB7XG5cdHZhciB4ID0ge307IF9fd2VicGFja19yZXF1aXJlX18uZCh4LCB5KTsgcmV0dXJuIHhcbn0gXG52YXIgeSA9IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgeyByZXR1cm4geDsgfTsgfVxudmFyIF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wiZGVmYXVsdFwiXTogZnVuY3Rpb24oKSB7IHJldHVybiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X3N5bnRheF9oaWdobGlnaHRlcl9kaXN0X2VzbV9zdHlsZXNfaGxqc190b21vcnJvd19uaWdodF82Mzc2NWRmOV9fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3Rfc3ludGF4X2hpZ2hsaWdodGVyX2Rpc3RfZXNtX3N0eWxlc19obGpzX2lkZWFfMDIzYWJhMmVfX1tcImRlZmF1bHRcIl07IH0gfSk7IiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IGFnYXRlIGZyb20gXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvYWdhdGVcIlxuaW1wb3J0IGFydGEgZnJvbSBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9zdHlsZXMvaGxqcy9hcnRhXCJcbmltcG9ydCBtb25va2FpIGZyb20gXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvbW9ub2thaVwiXG5pbXBvcnQgbm9yZCBmcm9tIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL3N0eWxlcy9obGpzL25vcmRcIlxuaW1wb3J0IG9ic2lkaWFuIGZyb20gXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvb2JzaWRpYW5cIlxuaW1wb3J0IHRvbW9ycm93TmlnaHQgZnJvbSBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9zdHlsZXMvaGxqcy90b21vcnJvdy1uaWdodFwiXG5pbXBvcnQgaWRlYSBmcm9tIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL3N0eWxlcy9obGpzL2lkZWFcIlxuXG5leHBvcnQgY29uc3Qgc3R5bGVzID0ge1xuICBhZ2F0ZSxcbiAgYXJ0YSxcbiAgbW9ub2thaSxcbiAgbm9yZCxcbiAgb2JzaWRpYW4sXG4gIFwidG9tb3Jyb3ctbmlnaHRcIjogdG9tb3Jyb3dOaWdodCxcbiAgaWRlYSxcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRTdHlsZSA9IGFnYXRlXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IFJlYWN0U3ludGF4SGlnaGxpZ2h0ZXIgZnJvbSBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9saWdodFwiXG5cbmNvbnN0IFN5bnRheEhpZ2hsaWdodGVyID0gKHtcbiAgbGFuZ3VhZ2UsXG4gIGNsYXNzTmFtZSA9IFwiXCIsXG4gIGdldENvbmZpZ3MsXG4gIHN5bnRheEhpZ2hsaWdodGluZyA9IHt9LFxuICBjaGlsZHJlbiA9IFwiXCIsXG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gZ2V0Q29uZmlncygpLnN5bnRheEhpZ2hsaWdodC50aGVtZVxuICBjb25zdCB7IHN0eWxlcywgZGVmYXVsdFN0eWxlIH0gPSBzeW50YXhIaWdobGlnaHRpbmdcbiAgY29uc3Qgc3R5bGUgPSBzdHlsZXM/Llt0aGVtZV0gPz8gZGVmYXVsdFN0eWxlXG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3RTeW50YXhIaWdobGlnaHRlclxuICAgICAgbGFuZ3VhZ2U9e2xhbmd1YWdlfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICBzdHlsZT17c3R5bGV9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvUmVhY3RTeW50YXhIaWdobGlnaHRlcj5cbiAgKVxufVxuXG5TeW50YXhIaWdobGlnaHRlci5wcm9wVHlwZXMgPSB7XG4gIGxhbmd1YWdlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgZ2V0Q29uZmlnczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc3ludGF4SGlnaGxpZ2h0aW5nOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIHN0eWxlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBkZWZhdWx0U3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG4gIH0pLFxuICByZW5kZXJQbGFpblRleHQ6IFByb3BUeXBlcy5mdW5jLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLnN0cmluZyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgU3ludGF4SGlnaGxpZ2h0ZXJcbiIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImRlZmF1bHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9qc19maWxlX2Rvd25sb2FkX2JkMjNkYmI2X19bXCJkZWZhdWx0XCJdOyB9IH0pOyIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCwgeyB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCBzYXZlQXMgZnJvbSBcImpzLWZpbGUtZG93bmxvYWRcIlxuaW1wb3J0IHsgQ29weVRvQ2xpcGJvYXJkIH0gZnJvbSBcInJlYWN0LWNvcHktdG8tY2xpcGJvYXJkXCJcblxuY29uc3QgSGlnaGxpZ2h0Q29kZSA9ICh7XG4gIGZpbGVOYW1lID0gXCJyZXNwb25zZS50eHRcIixcbiAgY2xhc3NOYW1lLFxuICBkb3dubG9hZGFibGUsXG4gIGdldENvbXBvbmVudCxcbiAgY2FuQ29weSxcbiAgbGFuZ3VhZ2UsXG4gIGNoaWxkcmVuLFxufSkgPT4ge1xuICBjb25zdCByb290UmVmID0gdXNlUmVmKG51bGwpXG4gIGNvbnN0IFN5bnRheEhpZ2hsaWdodGVyID0gZ2V0Q29tcG9uZW50KFwiU3ludGF4SGlnaGxpZ2h0ZXJcIiwgdHJ1ZSlcblxuICBjb25zdCBoYW5kbGVEb3dubG9hZCA9ICgpID0+IHtcbiAgICBzYXZlQXMoY2hpbGRyZW4sIGZpbGVOYW1lKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUHJldmVudFlTY3JvbGxpbmdCZXlvbmRFbGVtZW50ID0gKGUpID0+IHtcbiAgICBjb25zdCB7IHRhcmdldCwgZGVsdGFZIH0gPSBlXG4gICAgY29uc3Qge1xuICAgICAgc2Nyb2xsSGVpZ2h0OiBjb250ZW50SGVpZ2h0LFxuICAgICAgb2Zmc2V0SGVpZ2h0OiB2aXNpYmxlSGVpZ2h0LFxuICAgICAgc2Nyb2xsVG9wLFxuICAgIH0gPSB0YXJnZXRcbiAgICBjb25zdCBzY3JvbGxPZmZzZXQgPSB2aXNpYmxlSGVpZ2h0ICsgc2Nyb2xsVG9wXG4gICAgY29uc3QgaXNFbGVtZW50U2Nyb2xsYWJsZSA9IGNvbnRlbnRIZWlnaHQgPiB2aXNpYmxlSGVpZ2h0XG4gICAgY29uc3QgaXNTY3JvbGxpbmdQYXN0VG9wID0gc2Nyb2xsVG9wID09PSAwICYmIGRlbHRhWSA8IDBcbiAgICBjb25zdCBpc1Njcm9sbGluZ1Bhc3RCb3R0b20gPSBzY3JvbGxPZmZzZXQgPj0gY29udGVudEhlaWdodCAmJiBkZWx0YVkgPiAwXG5cbiAgICBpZiAoaXNFbGVtZW50U2Nyb2xsYWJsZSAmJiAoaXNTY3JvbGxpbmdQYXN0VG9wIHx8IGlzU2Nyb2xsaW5nUGFzdEJvdHRvbSkpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY2hpbGROb2RlcyA9IEFycmF5LmZyb20ocm9vdFJlZi5jdXJyZW50LmNoaWxkTm9kZXMpLmZpbHRlcihcbiAgICAgIChub2RlKSA9PiAhIW5vZGUubm9kZVR5cGUgJiYgbm9kZS5jbGFzc0xpc3QuY29udGFpbnMoXCJtaWNyb2xpZ2h0XCIpXG4gICAgKVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgY2hpbGROb2Rlcy5mb3JFYWNoKChub2RlKSA9PlxuICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICBcIm1vdXNld2hlZWxcIixcbiAgICAgICAgaGFuZGxlUHJldmVudFlTY3JvbGxpbmdCZXlvbmRFbGVtZW50LFxuICAgICAgICB7IHBhc3NpdmU6IGZhbHNlIH1cbiAgICAgIClcbiAgICApXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICBjaGlsZE5vZGVzLmZvckVhY2goKG5vZGUpID0+XG4gICAgICAgIG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICBcIm1vdXNld2hlZWxcIixcbiAgICAgICAgICBoYW5kbGVQcmV2ZW50WVNjcm9sbGluZ0JleW9uZEVsZW1lbnRcbiAgICAgICAgKVxuICAgICAgKVxuICAgIH1cbiAgfSwgW2NoaWxkcmVuLCBjbGFzc05hbWUsIGxhbmd1YWdlXSlcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiaGlnaGxpZ2h0LWNvZGVcIiByZWY9e3Jvb3RSZWZ9PlxuICAgICAge2NhbkNvcHkgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvcHktdG8tY2xpcGJvYXJkXCI+XG4gICAgICAgICAgPENvcHlUb0NsaXBib2FyZCB0ZXh0PXtjaGlsZHJlbn0+XG4gICAgICAgICAgICA8YnV0dG9uIC8+XG4gICAgICAgICAgPC9Db3B5VG9DbGlwYm9hcmQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cblxuICAgICAgeyFkb3dubG9hZGFibGUgPyBudWxsIDogKFxuICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImRvd25sb2FkLWNvbnRlbnRzXCIgb25DbGljaz17aGFuZGxlRG93bmxvYWR9PlxuICAgICAgICAgIERvd25sb2FkXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgKX1cblxuICAgICAgPFN5bnRheEhpZ2hsaWdodGVyXG4gICAgICAgIGxhbmd1YWdlPXtsYW5ndWFnZX1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzTmFtZSwgXCJtaWNyb2xpZ2h0XCIpfVxuICAgICAgICByZW5kZXJQbGFpblRleHQ9eyh7IGNoaWxkcmVuLCBQbGFpblRleHRWaWV3ZXIgfSkgPT4gKFxuICAgICAgICAgIDxQbGFpblRleHRWaWV3ZXIgY2xhc3NOYW1lPXtjbGFzc05hbWV9PntjaGlsZHJlbn08L1BsYWluVGV4dFZpZXdlcj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9TeW50YXhIaWdobGlnaHRlcj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5IaWdobGlnaHRDb2RlLnByb3BUeXBlcyA9IHtcbiAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGRvd25sb2FkYWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gIGZpbGVOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBsYW5ndWFnZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgY2FuQ29weTogUHJvcFR5cGVzLmJvb2wsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEhpZ2hsaWdodENvZGVcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiXG5cbmNvbnN0IFBsYWluVGV4dFZpZXdlciA9ICh7IGNsYXNzTmFtZSA9IFwiXCIsIGNoaWxkcmVuIH0pID0+IChcbiAgPHByZSBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJtaWNyb2xpZ2h0XCIsIGNsYXNzTmFtZSl9PntjaGlsZHJlbn08L3ByZT5cbilcblxuUGxhaW5UZXh0Vmlld2VyLnByb3BUeXBlcyA9IHtcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBQbGFpblRleHRWaWV3ZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmNvbnN0IFN5bnRheEhpZ2hsaWdodGVyV3JhcHBlciA9IChPcmlnaW5hbCwgc3lzdGVtKSA9PiB7XG4gIGNvbnN0IFN5bnRheEhpZ2hsaWdodGVyID0gKHsgcmVuZGVyUGxhaW5UZXh0LCBjaGlsZHJlbiwgLi4ucmVzdCB9KSA9PiB7XG4gICAgY29uc3QgY2FuU3ludGF4SGlnaGxpZ2h0ID0gc3lzdGVtLmdldENvbmZpZ3MoKS5zeW50YXhIaWdobGlnaHQuYWN0aXZhdGVkXG4gICAgY29uc3QgUGxhaW5UZXh0Vmlld2VyID0gc3lzdGVtLmdldENvbXBvbmVudChcIlBsYWluVGV4dFZpZXdlclwiKVxuXG4gICAgaWYgKCFjYW5TeW50YXhIaWdobGlnaHQgJiYgdHlwZW9mIHJlbmRlclBsYWluVGV4dCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm4gcmVuZGVyUGxhaW5UZXh0KHsgY2hpbGRyZW4sIFBsYWluVGV4dFZpZXdlciB9KVxuICAgIH1cbiAgICBpZiAoIWNhblN5bnRheEhpZ2hsaWdodCkge1xuICAgICAgcmV0dXJuIDxQbGFpblRleHRWaWV3ZXI+e2NoaWxkcmVufTwvUGxhaW5UZXh0Vmlld2VyPlxuICAgIH1cblxuICAgIHJldHVybiA8T3JpZ2luYWwgey4uLnJlc3R9PntjaGlsZHJlbn08L09yaWdpbmFsPlxuICB9XG5cbiAgU3ludGF4SGlnaGxpZ2h0ZXIucHJvcFR5cGVzID0ge1xuICAgIC4uLk9yaWdpbmFsLnByb3BUeXBlcyxcbiAgICByZW5kZXJQbGFpblRleHQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIH1cblxuICByZXR1cm4gU3ludGF4SGlnaGxpZ2h0ZXJcbn1cblxuZXhwb3J0IGRlZmF1bHQgU3ludGF4SGlnaGxpZ2h0ZXJXcmFwcGVyXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgYWZ0ZXJMb2FkIGZyb20gXCIuL2FmdGVyLWxvYWRcIlxuaW1wb3J0IHsgc3R5bGVzLCBkZWZhdWx0U3R5bGUgfSBmcm9tIFwiLi9yb290LWluamVjdHNcIlxuaW1wb3J0IFN5bnRheEhpZ2hsaWdodGVyIGZyb20gXCIuL2NvbXBvbmVudHMvU3ludGF4SGlnaGxpZ2h0ZXJcIlxuaW1wb3J0IEhpZ2hsaWdodENvZGUgZnJvbSBcIi4vY29tcG9uZW50cy9IaWdobGlnaHRDb2RlXCJcbmltcG9ydCBQbGFpblRleHRWaWV3ZXIgZnJvbSBcIi4vY29tcG9uZW50cy9QbGFpblRleHRWaWV3ZXJcIlxuaW1wb3J0IFN5bnRheEhpZ2hsaWdodGVyV3JhcHBlciBmcm9tIFwiLi93cmFwLWNvbXBvbmVudHMvU3ludGF4SGlnaGxpZ2h0ZXJcIlxuXG5jb25zdCBTeW50YXhIaWdobGlnaHRpbmdQbHVnaW4xID0gKCkgPT4gKHtcbiAgYWZ0ZXJMb2FkLFxuICByb290SW5qZWN0czoge1xuICAgIHN5bnRheEhpZ2hsaWdodGluZzogeyBzdHlsZXMsIGRlZmF1bHRTdHlsZSB9LFxuICB9LFxuICBjb21wb25lbnRzOiB7XG4gICAgU3ludGF4SGlnaGxpZ2h0ZXIsXG4gICAgSGlnaGxpZ2h0Q29kZSxcbiAgICBQbGFpblRleHRWaWV3ZXIsXG4gIH0sXG59KVxuXG5jb25zdCBTeW50YXhIaWdobGlnaHRpbmdQbHVnaW4yID0gKCkgPT4gKHtcbiAgd3JhcENvbXBvbmVudHM6IHtcbiAgICBTeW50YXhIaWdobGlnaHRlcjogU3ludGF4SGlnaGxpZ2h0ZXJXcmFwcGVyLFxuICB9LFxufSlcblxuY29uc3QgU3ludGF4SGlnaGxpZ2h0aW5nUGx1Z2luID0gKCkgPT4gW1xuICBTeW50YXhIaWdobGlnaHRpbmdQbHVnaW4xLFxuICBTeW50YXhIaWdobGlnaHRpbmdQbHVnaW4yLFxuXVxuXG5leHBvcnQgZGVmYXVsdCBTeW50YXhIaWdobGlnaHRpbmdQbHVnaW5cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB3aW4gZnJvbSBcImNvcmUvd2luZG93XCJcblxuY29uc3QgYWZ0ZXJMb2FkID0gKCkgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgY29uc3QgeyBHSVRfRElSVFksIEdJVF9DT01NSVQsIFBBQ0tBR0VfVkVSU0lPTiwgQlVJTERfVElNRSB9ID0gYnVpbGRJbmZvXG5cbiAgd2luLnZlcnNpb25zID0gd2luLnZlcnNpb25zIHx8IHt9XG4gIHdpbi52ZXJzaW9ucy5zd2FnZ2VyVUkgPSB7XG4gICAgdmVyc2lvbjogUEFDS0FHRV9WRVJTSU9OLFxuICAgIGdpdFJldmlzaW9uOiBHSVRfQ09NTUlULFxuICAgIGdpdERpcnR5OiBHSVRfRElSVFksXG4gICAgYnVpbGRUaW1lc3RhbXA6IEJVSUxEX1RJTUUsXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgYWZ0ZXJMb2FkXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgYWZ0ZXJMb2FkIGZyb20gXCIuL2FmdGVyLWxvYWQuanNcIlxuXG5jb25zdCBWZXJzaW9uc1BsdWdpbiA9ICgpID0+ICh7XG4gIGFmdGVyTG9hZCxcbn0pXG5cbmV4cG9ydCBkZWZhdWx0IFZlcnNpb25zUGx1Z2luXG4iLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfbG9kYXNoX3ppcE9iamVjdF9jNzRmMWMxNF9fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCJcblxuZXhwb3J0IGNvbnN0IGNvbXBvbmVudERpZENhdGNoID0gY29uc29sZS5lcnJvclxuXG5jb25zdCBpc0NsYXNzQ29tcG9uZW50ID0gY29tcG9uZW50ID0+IGNvbXBvbmVudC5wcm90b3R5cGUgJiYgY29tcG9uZW50LnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50XG5cbmV4cG9ydCBjb25zdCB3aXRoRXJyb3JCb3VuZGFyeSA9IChnZXRTeXN0ZW0pID0+IChXcmFwcGVkQ29tcG9uZW50KSA9PiB7XG4gIGNvbnN0IHsgZ2V0Q29tcG9uZW50LCBmbiB9ID0gZ2V0U3lzdGVtKClcbiAgY29uc3QgRXJyb3JCb3VuZGFyeSA9IGdldENvbXBvbmVudChcIkVycm9yQm91bmRhcnlcIilcbiAgY29uc3QgdGFyZ2V0TmFtZSA9IGZuLmdldERpc3BsYXlOYW1lKFdyYXBwZWRDb21wb25lbnQpXG5cbiAgY2xhc3MgV2l0aEVycm9yQm91bmRhcnkgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxFcnJvckJvdW5kYXJ5IHRhcmdldE5hbWU9e3RhcmdldE5hbWV9IGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fSBmbj17Zm59PlxuICAgICAgICAgIDxXcmFwcGVkQ29tcG9uZW50IHsuLi50aGlzLnByb3BzfSB7Li4udGhpcy5jb250ZXh0fSAvPlxuICAgICAgICA8L0Vycm9yQm91bmRhcnk+XG4gICAgICApXG4gICAgfVxuICB9XG4gIFdpdGhFcnJvckJvdW5kYXJ5LmRpc3BsYXlOYW1lID0gYFdpdGhFcnJvckJvdW5kYXJ5KCR7dGFyZ2V0TmFtZX0pYFxuICBpZiAoaXNDbGFzc0NvbXBvbmVudChXcmFwcGVkQ29tcG9uZW50KSkge1xuICAgIC8qKlxuICAgICAqIFdlIG5lZWQgdG8gaGFuZGxlIGNhc2Ugb2YgY2xhc3MgY29tcG9uZW50cyBkZWZpbmluZyBhIGBtYXBTdGF0ZVRvUHJvcHNgIHB1YmxpYyBtZXRob2QuXG4gICAgICogQ29tcG9uZW50cyB3aXRoIGBtYXBTdGF0ZVRvUHJvcHNgIHB1YmxpYyBtZXRob2QgY2Fubm90IGJlIHdyYXBwZWQuXG4gICAgICovXG4gICAgV2l0aEVycm9yQm91bmRhcnkucHJvdG90eXBlLm1hcFN0YXRlVG9Qcm9wcyA9IFdyYXBwZWRDb21wb25lbnQucHJvdG90eXBlLm1hcFN0YXRlVG9Qcm9wc1xuICB9XG5cbiAgcmV0dXJuIFdpdGhFcnJvckJvdW5kYXJ5XG59XG5cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmNvbnN0IEZhbGxiYWNrID0gKHsgbmFtZSB9KSA9PiAoXG4gIDxkaXYgY2xhc3NOYW1lPVwiZmFsbGJhY2tcIj5cbiAgICDwn5ixIDxpPkNvdWxkIG5vdCByZW5kZXIgeyBuYW1lID09PSBcInRcIiA/IFwidGhpcyBjb21wb25lbnRcIiA6IG5hbWUgfSwgc2VlIHRoZSBjb25zb2xlLjwvaT5cbiAgPC9kaXY+XG4pXG5GYWxsYmFjay5wcm9wVHlwZXMgPSB7XG4gIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgRmFsbGJhY2tcbiIsImltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IGNvbXBvbmVudERpZENhdGNoIH0gZnJvbSBcIi4uL2ZuXCJcbmltcG9ydCBGYWxsYmFjayBmcm9tIFwiLi9mYWxsYmFja1wiXG5cbmV4cG9ydCBjbGFzcyBFcnJvckJvdW5kYXJ5IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICB0YXJnZXROYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgZm46IFByb3BUeXBlcy5vYmplY3QsXG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgICAgUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLm5vZGUpLFxuICAgICAgUHJvcFR5cGVzLm5vZGUsXG4gICAgXSlcbiAgfVxuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgdGFyZ2V0TmFtZTogXCJ0aGlzIGNvbXBvbmVudFwiLFxuICAgIGdldENvbXBvbmVudDogKCkgPT4gRmFsbGJhY2ssXG4gICAgZm46IHtcbiAgICAgIGNvbXBvbmVudERpZENhdGNoLFxuICAgIH0sXG4gICAgY2hpbGRyZW46IG51bGwsXG4gIH1cblxuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGVycm9yKSB7XG4gICAgcmV0dXJuIHsgaGFzRXJyb3I6IHRydWUsIGVycm9yIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKC4uLmFyZ3MpIHtcbiAgICBzdXBlciguLi5hcmdzKVxuICAgIHRoaXMuc3RhdGUgPSB7IGhhc0Vycm9yOiBmYWxzZSwgZXJyb3I6IG51bGwgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkQ2F0Y2goZXJyb3IsIGVycm9ySW5mbykge1xuICAgIHRoaXMucHJvcHMuZm4uY29tcG9uZW50RGlkQ2F0Y2goZXJyb3IsIGVycm9ySW5mbylcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGdldENvbXBvbmVudCwgdGFyZ2V0TmFtZSwgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHNcblxuICAgIGlmICh0aGlzLnN0YXRlLmhhc0Vycm9yKSB7XG4gICAgICBjb25zdCBGYWxsYmFja0NvbXBvbmVudCA9IGdldENvbXBvbmVudChcIkZhbGxiYWNrXCIpXG4gICAgICByZXR1cm4gPEZhbGxiYWNrQ29tcG9uZW50IG5hbWU9e3RhcmdldE5hbWV9IC8+XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoaWxkcmVuXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgRXJyb3JCb3VuZGFyeVxuIiwiaW1wb3J0IHppcE9iamVjdCBmcm9tIFwibG9kYXNoL3ppcE9iamVjdFwiXG5cbmltcG9ydCBFcnJvckJvdW5kYXJ5IGZyb20gXCIuL2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnlcIlxuaW1wb3J0IEZhbGxiYWNrIGZyb20gXCIuL2NvbXBvbmVudHMvZmFsbGJhY2tcIlxuaW1wb3J0IHsgY29tcG9uZW50RGlkQ2F0Y2gsIHdpdGhFcnJvckJvdW5kYXJ5IH0gZnJvbSBcIi4vZm5cIlxuXG5jb25zdCBzYWZlUmVuZGVyUGx1Z2luID0gKHtjb21wb25lbnRMaXN0ID0gW10sIGZ1bGxPdmVycmlkZSA9IGZhbHNlfSA9IHt9KSA9PiAoeyBnZXRTeXN0ZW0gfSkgPT4ge1xuICBjb25zdCBkZWZhdWx0Q29tcG9uZW50TGlzdCA9IFtcbiAgICBcIkFwcFwiLFxuICAgIFwiQmFzZUxheW91dFwiLFxuICAgIFwiVmVyc2lvblByYWdtYUZpbHRlclwiLFxuICAgIFwiSW5mb0NvbnRhaW5lclwiLFxuICAgIFwiU2VydmVyc0NvbnRhaW5lclwiLFxuICAgIFwiU2NoZW1lc0NvbnRhaW5lclwiLFxuICAgIFwiQXV0aG9yaXplQnRuQ29udGFpbmVyXCIsXG4gICAgXCJGaWx0ZXJDb250YWluZXJcIixcbiAgICBcIk9wZXJhdGlvbnNcIixcbiAgICBcIk9wZXJhdGlvbkNvbnRhaW5lclwiLFxuICAgIFwicGFyYW1ldGVyc1wiLFxuICAgIFwicmVzcG9uc2VzXCIsXG4gICAgXCJPcGVyYXRpb25TZXJ2ZXJzXCIsXG4gICAgXCJNb2RlbHNcIixcbiAgICBcIk1vZGVsV3JhcHBlclwiLFxuICBdXG4gIGNvbnN0IG1lcmdlZENvbXBvbmVudExpc3QgPSBmdWxsT3ZlcnJpZGUgPyBjb21wb25lbnRMaXN0IDogWy4uLmRlZmF1bHRDb21wb25lbnRMaXN0LCAuLi5jb21wb25lbnRMaXN0XVxuICBjb25zdCB3cmFwRmFjdG9yeSA9IChPcmlnaW5hbCwgeyBmbiB9KSA9PiBmbi53aXRoRXJyb3JCb3VuZGFyeShPcmlnaW5hbClcbiAgY29uc3Qgd3JhcENvbXBvbmVudHMgPSB6aXBPYmplY3QobWVyZ2VkQ29tcG9uZW50TGlzdCwgQXJyYXkobWVyZ2VkQ29tcG9uZW50TGlzdC5sZW5ndGgpLmZpbGwod3JhcEZhY3RvcnkpKVxuXG4gIHJldHVybiB7XG4gICAgZm46IHtcbiAgICAgIGNvbXBvbmVudERpZENhdGNoLFxuICAgICAgd2l0aEVycm9yQm91bmRhcnk6IHdpdGhFcnJvckJvdW5kYXJ5KGdldFN5c3RlbSksXG4gICAgfSxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICBFcnJvckJvdW5kYXJ5LFxuICAgICAgRmFsbGJhY2ssXG4gICAgfSxcbiAgICB3cmFwQ29tcG9uZW50cyxcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBzYWZlUmVuZGVyUGx1Z2luXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5jbGFzcyBBcHAgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBnZXRMYXlvdXQoKSB7XG4gICAgY29uc3QgeyBnZXRDb21wb25lbnQsIGxheW91dFNlbGVjdG9ycyB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IGxheW91dE5hbWUgPSBsYXlvdXRTZWxlY3RvcnMuY3VycmVudCgpXG4gICAgY29uc3QgQ29tcG9uZW50ID0gZ2V0Q29tcG9uZW50KGxheW91dE5hbWUsIHRydWUpXG5cbiAgICByZXR1cm4gQ29tcG9uZW50XG4gICAgICA/IENvbXBvbmVudFxuICAgICAgOiAoKSA9PiA8aDE+IE5vIGxheW91dCBkZWZpbmVkIGZvciAmcXVvdDt7bGF5b3V0TmFtZX0mcXVvdDsgPC9oMT5cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBMYXlvdXQgPSB0aGlzLmdldExheW91dCgpXG5cbiAgICByZXR1cm4gPExheW91dCAvPlxuICB9XG59XG5cbkFwcC5wcm9wVHlwZXMgPSB7XG4gIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgbGF5b3V0U2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEFwcFxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXV0aG9yaXphdGlvblBvcHVwIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgY2xvc2UgPSgpID0+IHtcbiAgICBsZXQgeyBhdXRoQWN0aW9ucyB9ID0gdGhpcy5wcm9wc1xuXG4gICAgYXV0aEFjdGlvbnMuc2hvd0RlZmluaXRpb25zKGZhbHNlKVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IGF1dGhTZWxlY3RvcnMsIGF1dGhBY3Rpb25zLCBnZXRDb21wb25lbnQsIGVyclNlbGVjdG9ycywgc3BlY1NlbGVjdG9ycywgZm46IHsgQVNUID0ge30gfSB9ID0gdGhpcy5wcm9wc1xuICAgIGxldCBkZWZpbml0aW9ucyA9IGF1dGhTZWxlY3RvcnMuc2hvd25EZWZpbml0aW9ucygpXG4gICAgY29uc3QgQXV0aHMgPSBnZXRDb21wb25lbnQoXCJhdXRoc1wiKVxuICAgIGNvbnN0IENsb3NlSWNvbiA9IGdldENvbXBvbmVudChcIkNsb3NlSWNvblwiKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGlhbG9nLXV4XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmFja2Ryb3AtdXhcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb2RhbC11eFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9kYWwtZGlhbG9nLXV4XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLXV4LWlubmVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9kYWwtdXgtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGgzPkF2YWlsYWJsZSBhdXRob3JpemF0aW9uczwvaDM+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3NOYW1lPVwiY2xvc2UtbW9kYWxcIiBvbkNsaWNrPXsgdGhpcy5jbG9zZSB9PlxuICAgICAgICAgICAgICAgICAgPENsb3NlSWNvbiAvPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb2RhbC11eC1jb250ZW50XCI+XG5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBkZWZpbml0aW9ucy52YWx1ZVNlcSgpLm1hcCgoIGRlZmluaXRpb24sIGtleSApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxBdXRocyBrZXk9eyBrZXkgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTVD17QVNUfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluaXRpb25zPXsgZGVmaW5pdGlvbiB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXsgZ2V0Q29tcG9uZW50IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJTZWxlY3RvcnM9eyBlcnJTZWxlY3RvcnMgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhTZWxlY3RvcnM9eyBhdXRoU2VsZWN0b3JzIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoQWN0aW9ucz17IGF1dGhBY3Rpb25zIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjU2VsZWN0b3JzPXsgc3BlY1NlbGVjdG9ycyB9Lz5cbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgZm46IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgYXV0aFNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBlcnJTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBhdXRoQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBdXRob3JpemVCdG4gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICAgIGlzQXV0aG9yaXplZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgc2hvd1BvcHVwOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyBpc0F1dGhvcml6ZWQsIHNob3dQb3B1cCwgb25DbGljaywgZ2V0Q29tcG9uZW50IH0gPSB0aGlzLnByb3BzXG5cbiAgICAvL211c3QgYmUgbW92ZWQgb3V0IG9mIGJ1dHRvbiBjb21wb25lbnRcbiAgICBjb25zdCBBdXRob3JpemF0aW9uUG9wdXAgPSBnZXRDb21wb25lbnQoXCJhdXRob3JpemF0aW9uUG9wdXBcIiwgdHJ1ZSlcbiAgICBjb25zdCBMb2NrQXV0aEljb24gPSBnZXRDb21wb25lbnQoXCJMb2NrQXV0aEljb25cIiwgdHJ1ZSlcbiAgICBjb25zdCBVbmxvY2tBdXRoSWNvbiA9IGdldENvbXBvbmVudChcIlVubG9ja0F1dGhJY29uXCIsIHRydWUpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJhdXRoLXdyYXBwZXJcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9e2lzQXV0aG9yaXplZCA/IFwiYnRuIGF1dGhvcml6ZSBsb2NrZWRcIiA6IFwiYnRuIGF1dGhvcml6ZSB1bmxvY2tlZFwifSBvbkNsaWNrPXtvbkNsaWNrfT5cbiAgICAgICAgICA8c3Bhbj5BdXRob3JpemU8L3NwYW4+XG4gICAgICAgICAge2lzQXV0aG9yaXplZCA/IDxMb2NrQXV0aEljb24gLz4gOiA8VW5sb2NrQXV0aEljb24gLz59XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgeyBzaG93UG9wdXAgJiYgPEF1dGhvcml6YXRpb25Qb3B1cCAvPiB9XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF1dGhvcml6ZUJ0bkNvbnRhaW5lciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBzcGVjQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBhdXRoQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGF1dGhTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbiAgfVxuXG4gIHJlbmRlciAoKSB7XG4gICAgY29uc3QgeyBhdXRoQWN0aW9ucywgYXV0aFNlbGVjdG9ycywgc3BlY1NlbGVjdG9ycywgZ2V0Q29tcG9uZW50fSA9IHRoaXMucHJvcHNcbiAgICBcbiAgICBjb25zdCBzZWN1cml0eURlZmluaXRpb25zID0gc3BlY1NlbGVjdG9ycy5zZWN1cml0eURlZmluaXRpb25zKClcbiAgICBjb25zdCBhdXRob3JpemFibGVEZWZpbml0aW9ucyA9IGF1dGhTZWxlY3RvcnMuZGVmaW5pdGlvbnNUb0F1dGhvcml6ZSgpXG5cbiAgICBjb25zdCBBdXRob3JpemVCdG4gPSBnZXRDb21wb25lbnQoXCJhdXRob3JpemVCdG5cIilcblxuICAgIHJldHVybiBzZWN1cml0eURlZmluaXRpb25zID8gKFxuICAgICAgPEF1dGhvcml6ZUJ0blxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBhdXRoQWN0aW9ucy5zaG93RGVmaW5pdGlvbnMoYXV0aG9yaXphYmxlRGVmaW5pdGlvbnMpfVxuICAgICAgICBpc0F1dGhvcml6ZWQ9eyEhYXV0aFNlbGVjdG9ycy5hdXRob3JpemVkKCkuc2l6ZX1cbiAgICAgICAgc2hvd1BvcHVwPXshIWF1dGhTZWxlY3RvcnMuc2hvd25EZWZpbml0aW9ucygpfVxuICAgICAgICBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH1cbiAgICAgIC8+XG4gICAgKSA6IG51bGxcbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXV0aG9yaXplT3BlcmF0aW9uQnRuIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgaXNBdXRob3JpemVkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgICAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbiAgICB9XG5cbiAgb25DbGljayA9KGUpID0+IHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgbGV0IHsgb25DbGljayB9ID0gdGhpcy5wcm9wc1xuXG4gICAgaWYob25DbGljaykge1xuICAgICAgb25DbGljaygpXG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IGlzQXV0aG9yaXplZCwgZ2V0Q29tcG9uZW50IH0gPSB0aGlzLnByb3BzXG5cbiAgICBjb25zdCBMb2NrQXV0aE9wZXJhdGlvbkljb24gPSBnZXRDb21wb25lbnQoXCJMb2NrQXV0aE9wZXJhdGlvbkljb25cIiwgdHJ1ZSlcbiAgICBjb25zdCBVbmxvY2tBdXRoT3BlcmF0aW9uSWNvbiA9IGdldENvbXBvbmVudChcIlVubG9ja0F1dGhPcGVyYXRpb25JY29uXCIsIHRydWUpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJhdXRob3JpemF0aW9uX19idG5cIlxuICAgICAgICBhcmlhLWxhYmVsPXtpc0F1dGhvcml6ZWQgPyBcImF1dGhvcml6YXRpb24gYnV0dG9uIGxvY2tlZFwiIDogXCJhdXRob3JpemF0aW9uIGJ1dHRvbiB1bmxvY2tlZFwifVxuICAgICAgICBvbkNsaWNrPXt0aGlzLm9uQ2xpY2t9PlxuICAgICAgICB7aXNBdXRob3JpemVkID8gPExvY2tBdXRoT3BlcmF0aW9uSWNvbiBjbGFzc05hbWU9XCJsb2NrZWRcIiAvPiA6IDxVbmxvY2tBdXRoT3BlcmF0aW9uSWNvbiBjbGFzc05hbWU9XCJ1bmxvY2tlZFwiLz59XG4gICAgICA8L2J1dHRvbj5cblxuICAgIClcbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF1dGhzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBkZWZpbml0aW9uczogSW1Qcm9wVHlwZXMuaXRlcmFibGUuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgYXV0aFNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGF1dGhBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZXJyU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm9wcywgY29udGV4dCkge1xuICAgIHN1cGVyKHByb3BzLCBjb250ZXh0KVxuXG4gICAgdGhpcy5zdGF0ZSA9IHt9XG4gIH1cblxuICBvbkF1dGhDaGFuZ2UgPShhdXRoKSA9PiB7XG4gICAgbGV0IHsgbmFtZSB9ID0gYXV0aFxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7IFtuYW1lXTogYXV0aCB9KVxuICB9XG5cbiAgc3VibWl0QXV0aCA9KGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcblxuICAgIGxldCB7IGF1dGhBY3Rpb25zIH0gPSB0aGlzLnByb3BzXG4gICAgYXV0aEFjdGlvbnMuYXV0aG9yaXplV2l0aFBlcnNpc3RPcHRpb24odGhpcy5zdGF0ZSlcbiAgfVxuXG4gIGxvZ291dENsaWNrID0oZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuXG4gICAgbGV0IHsgYXV0aEFjdGlvbnMsIGRlZmluaXRpb25zIH0gPSB0aGlzLnByb3BzXG4gICAgbGV0IGF1dGhzID0gZGVmaW5pdGlvbnMubWFwKCAodmFsLCBrZXkpID0+IHtcbiAgICAgIHJldHVybiBrZXlcbiAgICB9KS50b0FycmF5KClcblxuICAgIHRoaXMuc2V0U3RhdGUoYXV0aHMucmVkdWNlKChwcmV2LCBhdXRoKSA9PiB7XG4gICAgICBwcmV2W2F1dGhdID0gXCJcIlxuICAgICAgcmV0dXJuIHByZXZcbiAgICB9LCB7fSkpXG5cbiAgICBhdXRoQWN0aW9ucy5sb2dvdXRXaXRoUGVyc2lzdE9wdGlvbihhdXRocylcbiAgfVxuXG4gIGNsb3NlID0oZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGxldCB7IGF1dGhBY3Rpb25zIH0gPSB0aGlzLnByb3BzXG5cbiAgICBhdXRoQWN0aW9ucy5zaG93RGVmaW5pdGlvbnMoZmFsc2UpXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHsgZGVmaW5pdGlvbnMsIGdldENvbXBvbmVudCwgYXV0aFNlbGVjdG9ycywgZXJyU2VsZWN0b3JzIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgQXV0aEl0ZW0gPSBnZXRDb21wb25lbnQoXCJBdXRoSXRlbVwiKVxuICAgIGNvbnN0IE9hdXRoMiA9IGdldENvbXBvbmVudChcIm9hdXRoMlwiLCB0cnVlKVxuICAgIGNvbnN0IEJ1dHRvbiA9IGdldENvbXBvbmVudChcIkJ1dHRvblwiKVxuXG4gICAgbGV0IGF1dGhvcml6ZWQgPSBhdXRoU2VsZWN0b3JzLmF1dGhvcml6ZWQoKVxuXG4gICAgbGV0IGF1dGhvcml6ZWRBdXRoID0gZGVmaW5pdGlvbnMuZmlsdGVyKCAoZGVmaW5pdGlvbiwga2V5KSA9PiB7XG4gICAgICByZXR1cm4gISFhdXRob3JpemVkLmdldChrZXkpXG4gICAgfSlcblxuICAgIGxldCBub25PYXV0aERlZmluaXRpb25zID0gZGVmaW5pdGlvbnMuZmlsdGVyKCBzY2hlbWEgPT4gc2NoZW1hLmdldChcInR5cGVcIikgIT09IFwib2F1dGgyXCIpXG4gICAgbGV0IG9hdXRoRGVmaW5pdGlvbnMgPSBkZWZpbml0aW9ucy5maWx0ZXIoIHNjaGVtYSA9PiBzY2hlbWEuZ2V0KFwidHlwZVwiKSA9PT0gXCJvYXV0aDJcIilcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImF1dGgtY29udGFpbmVyXCI+XG4gICAgICAgIHtcbiAgICAgICAgICAhIW5vbk9hdXRoRGVmaW5pdGlvbnMuc2l6ZSAmJiA8Zm9ybSBvblN1Ym1pdD17IHRoaXMuc3VibWl0QXV0aCB9PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBub25PYXV0aERlZmluaXRpb25zLm1hcCggKHNjaGVtYSwgbmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiA8QXV0aEl0ZW1cbiAgICAgICAgICAgICAgICAgIGtleT17bmFtZX1cbiAgICAgICAgICAgICAgICAgIHNjaGVtYT17c2NoZW1hfVxuICAgICAgICAgICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgb25BdXRoQ2hhbmdlPXt0aGlzLm9uQXV0aENoYW5nZX1cbiAgICAgICAgICAgICAgICAgIGF1dGhvcml6ZWQ9e2F1dGhvcml6ZWR9XG4gICAgICAgICAgICAgICAgICBlcnJTZWxlY3RvcnM9e2VyclNlbGVjdG9yc31cbiAgICAgICAgICAgICAgICAgIGF1dGhTZWxlY3RvcnM9e2F1dGhTZWxlY3RvcnN9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICB9KS50b0FycmF5KClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXV0aC1idG4td3JhcHBlclwiPlxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbm9uT2F1dGhEZWZpbml0aW9ucy5zaXplID09PSBhdXRob3JpemVkQXV0aC5zaXplID8gPEJ1dHRvbiBjbGFzc05hbWU9XCJidG4gbW9kYWwtYnRuIGF1dGhcIiBvbkNsaWNrPXsgdGhpcy5sb2dvdXRDbGljayB9IGFyaWEtbGFiZWw9XCJSZW1vdmUgYXV0aG9yaXphdGlvblwiPkxvZ291dDwvQnV0dG9uPlxuICAgICAgICAgICAgICA6IDxCdXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzTmFtZT1cImJ0biBtb2RhbC1idG4gYXV0aCBhdXRob3JpemVcIiBhcmlhLWxhYmVsPVwiQXBwbHkgY3JlZGVudGlhbHNcIj5BdXRob3JpemU8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8QnV0dG9uIGNsYXNzTmFtZT1cImJ0biBtb2RhbC1idG4gYXV0aCBidG4tZG9uZVwiIG9uQ2xpY2s9eyB0aGlzLmNsb3NlIH0+Q2xvc2U8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgfVxuXG4gICAgICAgIHtcbiAgICAgICAgICBvYXV0aERlZmluaXRpb25zICYmIG9hdXRoRGVmaW5pdGlvbnMuc2l6ZSA/IDxkaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzY29wZS1kZWZcIj5cbiAgICAgICAgICAgIDxwPlNjb3BlcyBhcmUgdXNlZCB0byBncmFudCBhbiBhcHBsaWNhdGlvbiBkaWZmZXJlbnQgbGV2ZWxzIG9mIGFjY2VzcyB0byBkYXRhIG9uIGJlaGFsZiBvZiB0aGUgZW5kIHVzZXIuIEVhY2ggQVBJIG1heSBkZWNsYXJlIG9uZSBvciBtb3JlIHNjb3Blcy48L3A+XG4gICAgICAgICAgICA8cD5BUEkgcmVxdWlyZXMgdGhlIGZvbGxvd2luZyBzY29wZXMuIFNlbGVjdCB3aGljaCBvbmVzIHlvdSB3YW50IHRvIGdyYW50IHRvIFN3YWdnZXIgVUkuPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBkZWZpbml0aW9ucy5maWx0ZXIoIHNjaGVtYSA9PiBzY2hlbWEuZ2V0KFwidHlwZVwiKSA9PT0gXCJvYXV0aDJcIilcbiAgICAgICAgICAgICAgICAubWFwKCAoc2NoZW1hLCBuYW1lKSA9PntcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoPGRpdiBrZXk9eyBuYW1lIH0+XG4gICAgICAgICAgICAgICAgICAgIDxPYXV0aDIgYXV0aG9yaXplZD17IGF1dGhvcml6ZWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYT17IHNjaGVtYSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17IG5hbWUgfSAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApLnRvQXJyYXkoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PiA6IG51bGxcbiAgICAgICAgfVxuXG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cblxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF1dGhzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBhdXRob3JpemVkOiBJbVByb3BUeXBlcy5vcmRlcmVkTWFwLmlzUmVxdWlyZWQsXG4gICAgc2NoZW1hOiBJbVByb3BUeXBlcy5vcmRlcmVkTWFwLmlzUmVxdWlyZWQsXG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkF1dGhDaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZXJyU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgYXV0aFNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7XG4gICAgICBzY2hlbWEsXG4gICAgICBuYW1lLFxuICAgICAgZ2V0Q29tcG9uZW50LFxuICAgICAgb25BdXRoQ2hhbmdlLFxuICAgICAgYXV0aG9yaXplZCxcbiAgICAgIGVyclNlbGVjdG9ycyxcbiAgICAgIGF1dGhTZWxlY3RvcnNcbiAgICB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IEFwaUtleUF1dGggPSBnZXRDb21wb25lbnQoXCJhcGlLZXlBdXRoXCIpXG4gICAgY29uc3QgQmFzaWNBdXRoID0gZ2V0Q29tcG9uZW50KFwiYmFzaWNBdXRoXCIpXG5cbiAgICBsZXQgYXV0aEVsXG5cbiAgICBjb25zdCB0eXBlID0gc2NoZW1hLmdldChcInR5cGVcIilcblxuICAgIHN3aXRjaCh0eXBlKSB7XG4gICAgICBjYXNlIFwiYXBpS2V5XCI6IGF1dGhFbCA9IDxBcGlLZXlBdXRoIGtleT17IG5hbWUgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYT17IHNjaGVtYSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17IG5hbWUgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyclNlbGVjdG9ycz17IGVyclNlbGVjdG9ycyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXplZD17IGF1dGhvcml6ZWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudD17IGdldENvbXBvbmVudCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyBvbkF1dGhDaGFuZ2UgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhTZWxlY3RvcnMgPSB7IGF1dGhTZWxlY3RvcnMgfSAvPlxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcImJhc2ljXCI6IGF1dGhFbCA9IDxCYXNpY0F1dGgga2V5PXsgbmFtZSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYT17IHNjaGVtYSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9eyBuYW1lIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyU2VsZWN0b3JzPXsgZXJyU2VsZWN0b3JzIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXplZD17IGF1dGhvcml6ZWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9eyBnZXRDb21wb25lbnQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17IG9uQXV0aENoYW5nZSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhTZWxlY3RvcnMgPSB7IGF1dGhTZWxlY3RvcnMgfSAvPlxuICAgICAgICBicmVha1xuICAgICAgZGVmYXVsdDogYXV0aEVsID0gPGRpdiBrZXk9eyBuYW1lIH0+VW5rbm93biBzZWN1cml0eSBkZWZpbml0aW9uIHR5cGUgeyB0eXBlIH08L2Rpdj5cbiAgICB9XG5cbiAgICByZXR1cm4gKDxkaXYga2V5PXtgJHtuYW1lfS1qdW1wYH0+XG4gICAgICB7IGF1dGhFbCB9XG4gICAgPC9kaXY+KVxuICB9XG5cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF1dGhFcnJvciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBlcnJvcjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHsgZXJyb3IgfSA9IHRoaXMucHJvcHNcblxuICAgIGxldCBsZXZlbCA9IGVycm9yLmdldChcImxldmVsXCIpXG4gICAgbGV0IG1lc3NhZ2UgPSBlcnJvci5nZXQoXCJtZXNzYWdlXCIpXG4gICAgbGV0IHNvdXJjZSA9IGVycm9yLmdldChcInNvdXJjZVwiKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXJyb3JzXCI+XG4gICAgICAgIDxiPnsgc291cmNlIH0geyBsZXZlbCB9PC9iPlxuICAgICAgICA8c3Bhbj57IG1lc3NhZ2UgfTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBpS2V5QXV0aCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgYXV0aG9yaXplZDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZXJyU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgc2NoZW1hOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBhdXRoU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWRcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3BzLCBjb250ZXh0KSB7XG4gICAgc3VwZXIocHJvcHMsIGNvbnRleHQpXG4gICAgbGV0IHsgbmFtZSwgc2NoZW1hIH0gPSB0aGlzLnByb3BzXG4gICAgbGV0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpXG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHNjaGVtYTogc2NoZW1hLFxuICAgICAgdmFsdWU6IHZhbHVlXG4gICAgfVxuICB9XG5cbiAgZ2V0VmFsdWUgKCkge1xuICAgIGxldCB7IG5hbWUsIGF1dGhvcml6ZWQgfSA9IHRoaXMucHJvcHNcblxuICAgIHJldHVybiBhdXRob3JpemVkICYmIGF1dGhvcml6ZWQuZ2V0SW4oW25hbWUsIFwidmFsdWVcIl0pXG4gIH1cblxuICBvbkNoYW5nZSA9KGUpID0+IHtcbiAgICBsZXQgeyBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wc1xuICAgIGxldCB2YWx1ZSA9IGUudGFyZ2V0LnZhbHVlXG4gICAgbGV0IG5ld1N0YXRlID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zdGF0ZSwgeyB2YWx1ZTogdmFsdWUgfSlcblxuICAgIHRoaXMuc2V0U3RhdGUobmV3U3RhdGUpXG4gICAgb25DaGFuZ2UobmV3U3RhdGUpXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHsgc2NoZW1hLCBnZXRDb21wb25lbnQsIGVyclNlbGVjdG9ycywgbmFtZSwgYXV0aFNlbGVjdG9ycyB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IElucHV0ID0gZ2V0Q29tcG9uZW50KFwiSW5wdXRcIilcbiAgICBjb25zdCBSb3cgPSBnZXRDb21wb25lbnQoXCJSb3dcIilcbiAgICBjb25zdCBDb2wgPSBnZXRDb21wb25lbnQoXCJDb2xcIilcbiAgICBjb25zdCBBdXRoRXJyb3IgPSBnZXRDb21wb25lbnQoXCJhdXRoRXJyb3JcIilcbiAgICBjb25zdCBNYXJrZG93biA9IGdldENvbXBvbmVudChcIk1hcmtkb3duXCIsIHRydWUpXG4gICAgY29uc3QgSnVtcFRvUGF0aCA9IGdldENvbXBvbmVudChcIkp1bXBUb1BhdGhcIiwgdHJ1ZSlcbiAgICBjb25zdCBwYXRoID0gYXV0aFNlbGVjdG9ycy5zZWxlY3RBdXRoUGF0aChuYW1lKVxuICAgIGxldCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKVxuICAgIGxldCBlcnJvcnMgPSBlcnJTZWxlY3RvcnMuYWxsRXJyb3JzKCkuZmlsdGVyKCBlcnIgPT4gZXJyLmdldChcImF1dGhJZFwiKSA9PT0gbmFtZSlcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8aDQ+XG4gICAgICAgICAgPGNvZGU+eyBuYW1lIHx8IHNjaGVtYS5nZXQoXCJuYW1lXCIpIH08L2NvZGU+Jm5ic3A7KGFwaUtleSlcbiAgICAgICAgICA8SnVtcFRvUGF0aCBwYXRoPXtwYXRofSAvPlxuICAgICAgICA8L2g0PlxuICAgICAgICB7IHZhbHVlICYmIDxoNj5BdXRob3JpemVkPC9oNj59XG4gICAgICAgIDxSb3c+XG4gICAgICAgICAgPE1hcmtkb3duIHNvdXJjZT17IHNjaGVtYS5nZXQoXCJkZXNjcmlwdGlvblwiKSB9IC8+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93PlxuICAgICAgICAgIDxwPk5hbWU6IDxjb2RlPnsgc2NoZW1hLmdldChcIm5hbWVcIikgfTwvY29kZT48L3A+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93PlxuICAgICAgICAgIDxwPkluOiA8Y29kZT57IHNjaGVtYS5nZXQoXCJpblwiKSB9PC9jb2RlPjwvcD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICAgIDxSb3c+XG4gICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJhcGlfa2V5X3ZhbHVlXCI+VmFsdWU6PC9sYWJlbD5cbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZSA/IDxjb2RlPiAqKioqKiogPC9jb2RlPlxuICAgICAgICAgICAgICAgICAgOiA8Q29sPlxuICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dCBcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYXBpX2tleV92YWx1ZVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsgdGhpcy5vbkNoYW5nZSB9IFxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgfVxuICAgICAgICA8L1Jvdz5cbiAgICAgICAge1xuICAgICAgICAgIGVycm9ycy52YWx1ZVNlcSgpLm1hcCggKGVycm9yLCBrZXkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiA8QXV0aEVycm9yIGVycm9yPXsgZXJyb3IgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXsga2V5IH0vPlxuICAgICAgICAgIH0gKVxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCYXNpY0F1dGggZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGF1dGhvcml6ZWQ6IEltUHJvcFR5cGVzLm1hcCxcbiAgICBzY2hlbWE6IEltUHJvcFR5cGVzLm1hcCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIGVyclNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGF1dGhTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZFxuICB9XG5cbiAgY29uc3RydWN0b3IocHJvcHMsIGNvbnRleHQpIHtcbiAgICBzdXBlcihwcm9wcywgY29udGV4dClcbiAgICBsZXQgeyBzY2hlbWEsIG5hbWUgfSA9IHRoaXMucHJvcHNcblxuICAgIGxldCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKVxuICAgIGxldCB1c2VybmFtZSA9IHZhbHVlLnVzZXJuYW1lXG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHNjaGVtYTogc2NoZW1hLFxuICAgICAgdmFsdWU6ICF1c2VybmFtZSA/IHt9IDoge1xuICAgICAgICB1c2VybmFtZTogdXNlcm5hbWVcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRWYWx1ZSAoKSB7XG4gICAgbGV0IHsgYXV0aG9yaXplZCwgbmFtZSB9ID0gdGhpcy5wcm9wc1xuXG4gICAgcmV0dXJuIGF1dGhvcml6ZWQgJiYgYXV0aG9yaXplZC5nZXRJbihbbmFtZSwgXCJ2YWx1ZVwiXSkgfHwge31cbiAgfVxuXG4gIG9uQ2hhbmdlID0oZSkgPT4ge1xuICAgIGxldCB7IG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzXG4gICAgbGV0IHsgdmFsdWUsIG5hbWUgfSA9IGUudGFyZ2V0XG5cbiAgICBsZXQgbmV3VmFsdWUgPSB0aGlzLnN0YXRlLnZhbHVlXG4gICAgbmV3VmFsdWVbbmFtZV0gPSB2YWx1ZVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7IHZhbHVlOiBuZXdWYWx1ZSB9KVxuXG4gICAgb25DaGFuZ2UodGhpcy5zdGF0ZSlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyBzY2hlbWEsIGdldENvbXBvbmVudCwgbmFtZSwgZXJyU2VsZWN0b3JzLCBhdXRoU2VsZWN0b3JzIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgSW5wdXQgPSBnZXRDb21wb25lbnQoXCJJbnB1dFwiKVxuICAgIGNvbnN0IFJvdyA9IGdldENvbXBvbmVudChcIlJvd1wiKVxuICAgIGNvbnN0IENvbCA9IGdldENvbXBvbmVudChcIkNvbFwiKVxuICAgIGNvbnN0IEF1dGhFcnJvciA9IGdldENvbXBvbmVudChcImF1dGhFcnJvclwiKVxuICAgIGNvbnN0IEp1bXBUb1BhdGggPSBnZXRDb21wb25lbnQoXCJKdW1wVG9QYXRoXCIsIHRydWUpXG4gICAgY29uc3QgTWFya2Rvd24gPSBnZXRDb21wb25lbnQoXCJNYXJrZG93blwiLCB0cnVlKVxuICAgIGNvbnN0IHBhdGggPSBhdXRoU2VsZWN0b3JzLnNlbGVjdEF1dGhQYXRoKG5hbWUpXG4gICAgbGV0IHVzZXJuYW1lID0gdGhpcy5nZXRWYWx1ZSgpLnVzZXJuYW1lXG4gICAgbGV0IGVycm9ycyA9IGVyclNlbGVjdG9ycy5hbGxFcnJvcnMoKS5maWx0ZXIoIGVyciA9PiBlcnIuZ2V0KFwiYXV0aElkXCIpID09PSBuYW1lKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxoND5CYXNpYyBhdXRob3JpemF0aW9uPEp1bXBUb1BhdGggcGF0aD17cGF0aH0gLz48L2g0PlxuICAgICAgICB7IHVzZXJuYW1lICYmIDxoNj5BdXRob3JpemVkPC9oNj4gfVxuICAgICAgICA8Um93PlxuICAgICAgICAgIDxNYXJrZG93biBzb3VyY2U9eyBzY2hlbWEuZ2V0KFwiZGVzY3JpcHRpb25cIikgfSAvPlxuICAgICAgICA8L1Jvdz5cbiAgICAgICAgPFJvdz5cbiAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cImF1dGhfdXNlcm5hbWVcIj5Vc2VybmFtZTo8L2xhYmVsPlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHVzZXJuYW1lID8gPGNvZGU+IHsgdXNlcm5hbWUgfSA8L2NvZGU+XG4gICAgICAgICAgICAgICAgICAgICA6IDxDb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImF1dGhfdXNlcm5hbWVcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPVwicmVxdWlyZWRcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidXNlcm5hbWVcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17IHRoaXMub25DaGFuZ2UgfSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9Sb3c+XG4gICAgICAgIDxSb3c+XG4gICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJhdXRoX3Bhc3N3b3JkXCI+UGFzc3dvcmQ6PC9sYWJlbD5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdXNlcm5hbWUgPyA8Y29kZT4gKioqKioqIDwvY29kZT5cbiAgICAgICAgICAgICAgICAgICAgICAgOiA8Q29sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYXV0aF9wYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJuZXctcGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17IHRoaXMub25DaGFuZ2UgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L1Jvdz5cbiAgICAgICAge1xuICAgICAgICAgIGVycm9ycy52YWx1ZVNlcSgpLm1hcCggKGVycm9yLCBrZXkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiA8QXV0aEVycm9yIGVycm9yPXsgZXJyb3IgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXsga2V5IH0vPlxuICAgICAgICAgIH0gKVxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cblxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcbmltcG9ydCB7IHN0cmluZ2lmeSB9IGZyb20gXCJjb3JlL3V0aWxzXCJcbmltcG9ydCB7IE1hcCB9IGZyb20gXCJpbW11dGFibGVcIlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBFeGFtcGxlKHByb3BzKSB7XG4gIGNvbnN0IHsgZXhhbXBsZSwgc2hvd1ZhbHVlLCBnZXRDb21wb25lbnQgfSA9IHByb3BzXG5cbiAgY29uc3QgTWFya2Rvd24gPSBnZXRDb21wb25lbnQoXCJNYXJrZG93blwiLCB0cnVlKVxuICBjb25zdCBIaWdobGlnaHRDb2RlID0gZ2V0Q29tcG9uZW50KFwiSGlnaGxpZ2h0Q29kZVwiLCB0cnVlKVxuXG4gIGlmICghZXhhbXBsZSB8fCAhTWFwLmlzTWFwKGV4YW1wbGUpKSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJleGFtcGxlXCI+XG4gICAgICB7ZXhhbXBsZS5nZXQoXCJkZXNjcmlwdGlvblwiKSA/IChcbiAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwiZXhhbXBsZV9fc2VjdGlvblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXhhbXBsZV9fc2VjdGlvbi1oZWFkZXJcIj5FeGFtcGxlIERlc2NyaXB0aW9uPC9kaXY+XG4gICAgICAgICAgPHA+XG4gICAgICAgICAgICA8TWFya2Rvd24gc291cmNlPXtleGFtcGxlLmdldChcImRlc2NyaXB0aW9uXCIpfSAvPlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7c2hvd1ZhbHVlICYmIGV4YW1wbGUuaGFzKFwidmFsdWVcIikgPyAoXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cImV4YW1wbGVfX3NlY3Rpb25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImV4YW1wbGVfX3NlY3Rpb24taGVhZGVyXCI+RXhhbXBsZSBWYWx1ZTwvZGl2PlxuICAgICAgICAgIDxIaWdobGlnaHRDb2RlPntzdHJpbmdpZnkoZXhhbXBsZS5nZXQoXCJ2YWx1ZVwiKSl9PC9IaWdobGlnaHRDb2RlPlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICApIDogbnVsbH1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5FeGFtcGxlLnByb3BUeXBlcyA9IHtcbiAgZXhhbXBsZTogSW1Qcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gIHNob3dWYWx1ZTogUHJvcFR5cGVzLmJvb2wsXG4gIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBNYXAgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRXhhbXBsZXNTZWxlY3QgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBleGFtcGxlczogSW1Qcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgb25TZWxlY3Q6IFByb3BUeXBlcy5mdW5jLFxuICAgIGN1cnJlbnRFeGFtcGxlS2V5OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGlzTW9kaWZpZWRWYWx1ZUF2YWlsYWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNWYWx1ZU1vZGlmaWVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzaG93TGFiZWxzOiBQcm9wVHlwZXMuYm9vbCxcbiAgfVxuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgZXhhbXBsZXM6IE1hcCh7fSksXG4gICAgb25TZWxlY3Q6ICguLi5hcmdzKSA9PlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAvLyBGSVhNRTogcmVtb3ZlIGJlZm9yZSBtZXJnaW5nIHRvIG1hc3Rlci4uLlxuICAgICAgICBgREVCVUc6IEV4YW1wbGVzU2VsZWN0IHdhcyBub3QgZ2l2ZW4gYW4gb25TZWxlY3QgY2FsbGJhY2tgLFxuICAgICAgICAuLi5hcmdzXG4gICAgICApLFxuICAgIGN1cnJlbnRFeGFtcGxlS2V5OiBudWxsLFxuICAgIHNob3dMYWJlbHM6IHRydWUsXG4gIH1cblxuICBfb25TZWxlY3QgPSAoa2V5LCB7IGlzU3ludGhldGljQ2hhbmdlID0gZmFsc2UgfSA9IHt9KSA9PiB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLm9uU2VsZWN0ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHRoaXMucHJvcHMub25TZWxlY3Qoa2V5LCB7XG4gICAgICAgIGlzU3ludGhldGljQ2hhbmdlLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBfb25Eb21TZWxlY3QgPSAoZSkgPT4ge1xuICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vblNlbGVjdCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gZS50YXJnZXQuc2VsZWN0ZWRPcHRpb25zWzBdXG4gICAgICBjb25zdCBrZXkgPSBlbGVtZW50LmdldEF0dHJpYnV0ZShcInZhbHVlXCIpXG5cbiAgICAgIHRoaXMuX29uU2VsZWN0KGtleSwge1xuICAgICAgICBpc1N5bnRoZXRpY0NoYW5nZTogZmFsc2UsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGdldEN1cnJlbnRFeGFtcGxlID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgZXhhbXBsZXMsIGN1cnJlbnRFeGFtcGxlS2V5IH0gPSB0aGlzLnByb3BzXG5cbiAgICBjb25zdCBjdXJyZW50RXhhbXBsZVBlclByb3BzID0gZXhhbXBsZXMuZ2V0KGN1cnJlbnRFeGFtcGxlS2V5KVxuXG4gICAgY29uc3QgZmlyc3RFeGFtcGxlc0tleSA9IGV4YW1wbGVzLmtleVNlcSgpLmZpcnN0KClcbiAgICBjb25zdCBmaXJzdEV4YW1wbGUgPSBleGFtcGxlcy5nZXQoZmlyc3RFeGFtcGxlc0tleSlcblxuICAgIHJldHVybiBjdXJyZW50RXhhbXBsZVBlclByb3BzIHx8IGZpcnN0RXhhbXBsZSB8fCBNYXAoe30pXG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAvLyB0aGlzIGlzIHRoZSBub3Qtc28tZ3JlYXQgcGFydCBvZiBFeGFtcGxlc1NlbGVjdC4uLiBoZXJlIHdlJ3JlXG4gICAgLy8gYXJ0aWZpY2lhbGx5IGtpY2tpbmcgb2ZmIGFuIG9uU2VsZWN0IGV2ZW50IGluIG9yZGVyIHRvIHNldCBhIGRlZmF1bHRcbiAgICAvLyB2YWx1ZSBpbiBzdGF0ZS4gdGhlIGNvbnN1bWVyIGhhcyB0aGUgb3B0aW9uIHRvIGF2b2lkIHRoaXMgYnkgY2hlY2tpbmdcbiAgICAvLyBgaXNTeW50aGV0aWNFdmVudGAsIGJ1dCB3ZSBzaG91bGQgcmVhbGx5IGJlIGRvaW5nIHRoaXMgaW4gYSBzZWxlY3Rvci5cbiAgICAvLyBUT0RPOiBjbGVhbiB0aGlzIHVwXG4gICAgLy8gRklYTUU6IHNob3VsZCB0aGlzIG9ubHkgdHJpZ2dlciBpZiBgY3VycmVudEV4YW1wbGVzS2V5YCBpcyBudWxsaXNoP1xuICAgIGNvbnN0IHsgb25TZWxlY3QsIGV4YW1wbGVzIH0gPSB0aGlzLnByb3BzXG5cbiAgICBpZiAodHlwZW9mIG9uU2VsZWN0ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIGNvbnN0IGZpcnN0RXhhbXBsZSA9IGV4YW1wbGVzLmZpcnN0KClcbiAgICAgIGNvbnN0IGZpcnN0RXhhbXBsZUtleSA9IGV4YW1wbGVzLmtleU9mKGZpcnN0RXhhbXBsZSlcblxuICAgICAgdGhpcy5fb25TZWxlY3QoZmlyc3RFeGFtcGxlS2V5LCB7XG4gICAgICAgIGlzU3ludGhldGljQ2hhbmdlOiB0cnVlLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICBjb25zdCB7IGN1cnJlbnRFeGFtcGxlS2V5LCBleGFtcGxlcyB9ID0gbmV4dFByb3BzXG4gICAgaWYgKGV4YW1wbGVzICE9PSB0aGlzLnByb3BzLmV4YW1wbGVzICYmICFleGFtcGxlcy5oYXMoY3VycmVudEV4YW1wbGVLZXkpKSB7XG4gICAgICAvLyBleGFtcGxlcyBoYXZlIGNoYW5nZWQgZnJvbSB1bmRlciB1cywgYW5kIHRoZSBjdXJyZW50RXhhbXBsZUtleSBpcyBubyBsb25nZXJcbiAgICAgIC8vIHZhbGlkLlxuICAgICAgY29uc3QgZmlyc3RFeGFtcGxlID0gZXhhbXBsZXMuZmlyc3QoKVxuICAgICAgY29uc3QgZmlyc3RFeGFtcGxlS2V5ID0gZXhhbXBsZXMua2V5T2YoZmlyc3RFeGFtcGxlKVxuXG4gICAgICB0aGlzLl9vblNlbGVjdChmaXJzdEV4YW1wbGVLZXksIHtcbiAgICAgICAgaXNTeW50aGV0aWNDaGFuZ2U6IHRydWUsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBleGFtcGxlcyxcbiAgICAgIGN1cnJlbnRFeGFtcGxlS2V5LFxuICAgICAgaXNWYWx1ZU1vZGlmaWVkLFxuICAgICAgaXNNb2RpZmllZFZhbHVlQXZhaWxhYmxlLFxuICAgICAgc2hvd0xhYmVscyxcbiAgICB9ID0gdGhpcy5wcm9wc1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXhhbXBsZXMtc2VsZWN0XCI+XG4gICAgICAgIHtzaG93TGFiZWxzID8gKFxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImV4YW1wbGVzLXNlbGVjdF9fc2VjdGlvbi1sYWJlbFwiPkV4YW1wbGVzOiA8L3NwYW4+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgY2xhc3NOYW1lPVwiZXhhbXBsZXMtc2VsZWN0LWVsZW1lbnRcIlxuICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLl9vbkRvbVNlbGVjdH1cbiAgICAgICAgICB2YWx1ZT17XG4gICAgICAgICAgICBpc01vZGlmaWVkVmFsdWVBdmFpbGFibGUgJiYgaXNWYWx1ZU1vZGlmaWVkXG4gICAgICAgICAgICAgID8gXCJfX01PRElGSUVEX19WQUxVRV9fXCJcbiAgICAgICAgICAgICAgOiBjdXJyZW50RXhhbXBsZUtleSB8fCBcIlwiXG4gICAgICAgICAgfVxuICAgICAgICA+XG4gICAgICAgICAge2lzTW9kaWZpZWRWYWx1ZUF2YWlsYWJsZSA/IChcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJfX01PRElGSUVEX19WQUxVRV9fXCI+W01vZGlmaWVkIHZhbHVlXTwvb3B0aW9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIHtleGFtcGxlc1xuICAgICAgICAgICAgLm1hcCgoZXhhbXBsZSwgZXhhbXBsZU5hbWUpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgICBrZXk9e2V4YW1wbGVOYW1lfSAvLyBmb3IgUmVhY3RcbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtleGFtcGxlTmFtZX0gLy8gZm9yIG1hdGNoaW5nIHRvIHNlbGVjdCdzIGB2YWx1ZWBcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7KE1hcC5pc01hcChleGFtcGxlKSAmJiBleGFtcGxlLmdldChcInN1bW1hcnlcIikpIHx8XG4gICAgICAgICAgICAgICAgICAgIGV4YW1wbGVOYW1lfVxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnZhbHVlU2VxKCl9XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG59XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IE1hcCwgTGlzdCB9IGZyb20gXCJpbW11dGFibGVcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuXG5pbXBvcnQgeyBzdHJpbmdpZnkgfSBmcm9tIFwiY29yZS91dGlsc1wiXG5cbi8vIFRoaXMgc3RhdGVmdWwgY29tcG9uZW50IGxldHMgdXMgYXZvaWQgd3JpdGluZyBjb21wZXRpbmcgdmFsdWVzICh1c2VyXG4vLyBtb2RpZmljYXRpb25zIHZzIGV4YW1wbGUgdmFsdWVzKSBpbnRvIGdsb2JhbCBzdGF0ZSwgYW5kIHRoZSBtZXNzIHRoYXQgY29tZXNcbi8vIHdpdGggdGhhdDogdHJhY2tpbmcgd2hpY2ggb2YgdGhlIHR3byB2YWx1ZXMgYXJlIGN1cnJlbnRseSB1c2VkIGZvclxuLy8gVHJ5LUl0LU91dCwgd2hpY2ggZXhhbXBsZSBhIG1vZGlmaWVkIHZhbHVlIGNhbWUgZnJvbSwgZXRjLi4uXG4vL1xuLy8gVGhlIHNvbHV0aW9uIGhlcmUgaXMgdG8gcmV0YWluIHRoZSBsYXN0IHVzZXItbW9kaWZpZWQgdmFsdWUgaW5cbi8vIEV4YW1wbGVzU2VsZWN0VmFsdWVSZXRhaW5lcidzIGNvbXBvbmVudCBzdGF0ZSwgc28gdGhhdCBvdXIgZ2xvYmFsIHN0YXRlIGNhbiBzdGF5XG4vLyBjbGVhbiwgYWx3YXlzIHNpbXBseSBiZWluZyB0aGUgc291cmNlIG9mIHRydXRoIGZvciB3aGF0IHZhbHVlIHNob3VsZCBiZSBib3RoXG4vLyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgYW5kIHVzZWQgYXMgYSB2YWx1ZSBkdXJpbmcgcmVxdWVzdCBleGVjdXRpb24uXG4vL1xuLy8gVGhpcyBhcHByb2FjaC90cmFkZW9mZiB3YXMgY2hvc2VuIGluIG9yZGVyIHRvIGVuY2Fwc3VsYXRlIHRoZSBwYXJ0aWN1bGFyXG4vLyBsb2dpYyBvZiBFeGFtcGxlcyB3aXRoaW4gdGhlIEV4YW1wbGVzIGNvbXBvbmVudCB0cmVlLCBhbmQgdG8gYXZvaWRcbi8vIHJlZ3Jlc3Npb25zIHdpdGhpbiBvdXIgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBlbHNld2hlcmUgKG5vbi1FeGFtcGxlc1xuLy8gZGVmaW5pdGlvbnMsIE9wZW5BUEkgMi4wLCBldGMpLiBBIGZ1dHVyZSByZWZhY3RvciB0byBnbG9iYWwgc3RhdGUgbWlnaHQgbWFrZVxuLy8gdGhpcyBjb21wb25lbnQgdW5uZWNlc3NhcnkuXG4vL1xuLy8gVEw7RFI6IHRoaXMgaXMgbm90IG91ciB1c3VhbCBhcHByb2FjaCwgYnV0IHRoZSBjaG9pY2Ugd2FzIG1hZGUgY29uc2Npb3VzbHkuXG5cbi8vIE5vdGUgdGhhdCBgY3VycmVudE5hbWVzcGFjZWAgaXNuJ3QgY3VycmVudGx5IHVzZWQgYW55d2hlcmUhXG5cbmNvbnN0IHN0cmluZ2lmeVVubGVzc0xpc3QgPSAoaW5wdXQpID0+XG4gIExpc3QuaXNMaXN0KGlucHV0KSA/IGlucHV0IDogc3RyaW5naWZ5KGlucHV0KVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFeGFtcGxlc1NlbGVjdFZhbHVlUmV0YWluZXIgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBleGFtcGxlczogSW1Qcm9wVHlwZXMubWFwLFxuICAgIG9uU2VsZWN0OiBQcm9wVHlwZXMuZnVuYyxcbiAgICB1cGRhdGVWYWx1ZTogUHJvcFR5cGVzLmZ1bmMsIC8vIG1lY2hhbmlzbSB0byB1cGRhdGUgdXBzdHJlYW0gdmFsdWVcbiAgICB1c2VySGFzRWRpdGVkQm9keTogUHJvcFR5cGVzLmJvb2wsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGN1cnJlbnRVc2VySW5wdXRWYWx1ZTogUHJvcFR5cGVzLmFueSxcbiAgICBjdXJyZW50S2V5OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGN1cnJlbnROYW1lc3BhY2U6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgc2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgLy8gKGFsc28gcHJveGllcyBwcm9wcyBmb3IgRXhhbXBsZXMpXG4gIH1cblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIHVzZXJIYXNFZGl0ZWRCb2R5OiBmYWxzZSxcbiAgICBleGFtcGxlczogTWFwKHt9KSxcbiAgICBjdXJyZW50TmFtZXNwYWNlOiBcIl9fREVGQVVMVF9fTkFNRVNQQUNFX19cIixcbiAgICBzZXRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlRmxhZzogKCkgPT4ge1xuICAgICAgLy8gTk9PUFxuICAgIH0sXG4gICAgb25TZWxlY3Q6ICguLi5hcmdzKSA9PlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBcIkV4YW1wbGVzU2VsZWN0VmFsdWVSZXRhaW5lcjogbm8gYG9uU2VsZWN0YCBmdW5jdGlvbiB3YXMgcHJvdmlkZWRcIixcbiAgICAgICAgLi4uYXJnc1xuICAgICAgKSxcbiAgICB1cGRhdGVWYWx1ZTogKC4uLmFyZ3MpID0+XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIFwiRXhhbXBsZXNTZWxlY3RWYWx1ZVJldGFpbmVyOiBubyBgdXBkYXRlVmFsdWVgIGZ1bmN0aW9uIHdhcyBwcm92aWRlZFwiLFxuICAgICAgICAuLi5hcmdzXG4gICAgICApLFxuICB9XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcylcblxuICAgIGNvbnN0IHZhbHVlRnJvbUV4YW1wbGUgPSB0aGlzLl9nZXRDdXJyZW50RXhhbXBsZVZhbHVlKClcblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAvLyB1c2VyIGVkaXRlZDogbGFzdCB2YWx1ZSB0aGF0IGNhbWUgZnJvbSB0aGUgd29ybGQgYXJvdW5kIHVzLCBhbmQgZGlkbid0XG4gICAgICAvLyBtYXRjaCB0aGUgY3VycmVudCBleGFtcGxlJ3MgdmFsdWVcbiAgICAgIC8vIGludGVybmFsOiBsYXN0IHZhbHVlIHRoYXQgY2FtZSBmcm9tIHVzZXIgc2VsZWN0aW5nIGFuIEV4YW1wbGVcbiAgICAgIFtwcm9wcy5jdXJyZW50TmFtZXNwYWNlXTogTWFwKHtcbiAgICAgICAgbGFzdFVzZXJFZGl0ZWRWYWx1ZTogdGhpcy5wcm9wcy5jdXJyZW50VXNlcklucHV0VmFsdWUsXG4gICAgICAgIGxhc3REb3duc3RyZWFtVmFsdWU6IHZhbHVlRnJvbUV4YW1wbGUsXG4gICAgICAgIGlzTW9kaWZpZWRWYWx1ZVNlbGVjdGVkOlxuICAgICAgICAgIC8vIHZhbHVlRnJvbUV4YW1wbGUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgIHRoaXMucHJvcHMudXNlckhhc0VkaXRlZEJvZHkgfHxcbiAgICAgICAgICB0aGlzLnByb3BzLmN1cnJlbnRVc2VySW5wdXRWYWx1ZSAhPT0gdmFsdWVGcm9tRXhhbXBsZSxcbiAgICAgIH0pLFxuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMucHJvcHMuc2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWcoZmFsc2UpXG4gIH1cblxuICBfZ2V0U3RhdGVGb3JDdXJyZW50TmFtZXNwYWNlID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudE5hbWVzcGFjZSB9ID0gdGhpcy5wcm9wc1xuXG4gICAgcmV0dXJuICh0aGlzLnN0YXRlW2N1cnJlbnROYW1lc3BhY2VdIHx8IE1hcCgpKS50b09iamVjdCgpXG4gIH1cblxuICBfc2V0U3RhdGVGb3JDdXJyZW50TmFtZXNwYWNlID0gKG9iaikgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudE5hbWVzcGFjZSB9ID0gdGhpcy5wcm9wc1xuXG4gICAgcmV0dXJuIHRoaXMuX3NldFN0YXRlRm9yTmFtZXNwYWNlKGN1cnJlbnROYW1lc3BhY2UsIG9iailcbiAgfVxuXG4gIF9zZXRTdGF0ZUZvck5hbWVzcGFjZSA9IChuYW1lc3BhY2UsIG9iaikgPT4ge1xuICAgIGNvbnN0IG9sZFN0YXRlRm9yTmFtZXNwYWNlID0gdGhpcy5zdGF0ZVtuYW1lc3BhY2VdIHx8IE1hcCgpXG4gICAgY29uc3QgbmV3U3RhdGVGb3JOYW1lc3BhY2UgPSBvbGRTdGF0ZUZvck5hbWVzcGFjZS5tZXJnZURlZXAob2JqKVxuICAgIHJldHVybiB0aGlzLnNldFN0YXRlKHtcbiAgICAgIFtuYW1lc3BhY2VdOiBuZXdTdGF0ZUZvck5hbWVzcGFjZSxcbiAgICB9KVxuICB9XG5cbiAgX2lzQ3VycmVudFVzZXJJbnB1dFNhbWVBc0V4YW1wbGVWYWx1ZSA9ICgpID0+IHtcbiAgICBjb25zdCB7IGN1cnJlbnRVc2VySW5wdXRWYWx1ZSB9ID0gdGhpcy5wcm9wc1xuXG4gICAgY29uc3QgdmFsdWVGcm9tRXhhbXBsZSA9IHRoaXMuX2dldEN1cnJlbnRFeGFtcGxlVmFsdWUoKVxuXG4gICAgcmV0dXJuIHZhbHVlRnJvbUV4YW1wbGUgPT09IGN1cnJlbnRVc2VySW5wdXRWYWx1ZVxuICB9XG5cbiAgX2dldFZhbHVlRm9yRXhhbXBsZSA9IChleGFtcGxlS2V5LCBwcm9wcykgPT4ge1xuICAgIC8vIHByb3BzIGFyZSBhY2NlcHRlZCBzbyB0aGF0IHRoaXMgY2FuIGJlIHVzZWQgaW4gVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMsXG4gICAgLy8gd2hpY2ggaGFzIGFjY2VzcyB0byBgbmV4dFByb3BzYFxuICAgIGNvbnN0IHsgZXhhbXBsZXMgfSA9IHByb3BzIHx8IHRoaXMucHJvcHNcbiAgICByZXR1cm4gc3RyaW5naWZ5VW5sZXNzTGlzdChcbiAgICAgIChleGFtcGxlcyB8fCBNYXAoe30pKS5nZXRJbihbZXhhbXBsZUtleSwgXCJ2YWx1ZVwiXSlcbiAgICApXG4gIH1cblxuICBfZ2V0Q3VycmVudEV4YW1wbGVWYWx1ZSA9IChwcm9wcykgPT4ge1xuICAgIC8vIHByb3BzIGFyZSBhY2NlcHRlZCBzbyB0aGF0IHRoaXMgY2FuIGJlIHVzZWQgaW4gVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMsXG4gICAgLy8gd2hpY2ggaGFzIGFjY2VzcyB0byBgbmV4dFByb3BzYFxuICAgIGNvbnN0IHsgY3VycmVudEtleSB9ID0gcHJvcHMgfHwgdGhpcy5wcm9wc1xuICAgIHJldHVybiB0aGlzLl9nZXRWYWx1ZUZvckV4YW1wbGUoY3VycmVudEtleSwgcHJvcHMgfHwgdGhpcy5wcm9wcylcbiAgfVxuXG4gIF9vbkV4YW1wbGVzU2VsZWN0ID0gKGtleSwgeyBpc1N5bnRoZXRpY0NoYW5nZSB9ID0ge30sIC4uLm90aGVyQXJncykgPT4ge1xuICAgIGNvbnN0IHsgb25TZWxlY3QsIHVwZGF0ZVZhbHVlLCBjdXJyZW50VXNlcklucHV0VmFsdWUsIHVzZXJIYXNFZGl0ZWRCb2R5IH0gPVxuICAgICAgdGhpcy5wcm9wc1xuICAgIGNvbnN0IHsgbGFzdFVzZXJFZGl0ZWRWYWx1ZSB9ID0gdGhpcy5fZ2V0U3RhdGVGb3JDdXJyZW50TmFtZXNwYWNlKClcblxuICAgIGNvbnN0IHZhbHVlRnJvbUV4YW1wbGUgPSB0aGlzLl9nZXRWYWx1ZUZvckV4YW1wbGUoa2V5KVxuXG4gICAgaWYgKGtleSA9PT0gXCJfX01PRElGSUVEX19WQUxVRV9fXCIpIHtcbiAgICAgIHVwZGF0ZVZhbHVlKHN0cmluZ2lmeVVubGVzc0xpc3QobGFzdFVzZXJFZGl0ZWRWYWx1ZSkpXG4gICAgICByZXR1cm4gdGhpcy5fc2V0U3RhdGVGb3JDdXJyZW50TmFtZXNwYWNlKHtcbiAgICAgICAgaXNNb2RpZmllZFZhbHVlU2VsZWN0ZWQ6IHRydWUsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb25TZWxlY3QgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgb25TZWxlY3Qoa2V5LCB7IGlzU3ludGhldGljQ2hhbmdlIH0sIC4uLm90aGVyQXJncylcbiAgICB9XG5cbiAgICB0aGlzLl9zZXRTdGF0ZUZvckN1cnJlbnROYW1lc3BhY2Uoe1xuICAgICAgbGFzdERvd25zdHJlYW1WYWx1ZTogdmFsdWVGcm9tRXhhbXBsZSxcbiAgICAgIGlzTW9kaWZpZWRWYWx1ZVNlbGVjdGVkOlxuICAgICAgICAoaXNTeW50aGV0aWNDaGFuZ2UgJiYgdXNlckhhc0VkaXRlZEJvZHkpIHx8XG4gICAgICAgICghIWN1cnJlbnRVc2VySW5wdXRWYWx1ZSAmJiBjdXJyZW50VXNlcklucHV0VmFsdWUgIT09IHZhbHVlRnJvbUV4YW1wbGUpLFxuICAgIH0pXG5cbiAgICAvLyB3ZSBuZXZlciB3YW50IHRvIHNlbmQgdXAgdmFsdWUgdXBkYXRlcyBmcm9tIHN5bnRoZXRpYyBjaGFuZ2VzXG4gICAgaWYgKGlzU3ludGhldGljQ2hhbmdlKSByZXR1cm5cblxuICAgIGlmICh0eXBlb2YgdXBkYXRlVmFsdWUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgdXBkYXRlVmFsdWUoc3RyaW5naWZ5VW5sZXNzTGlzdCh2YWx1ZUZyb21FeGFtcGxlKSlcbiAgICB9XG4gIH1cblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAvLyB1cGRhdGUgYGxhc3RVc2VyRWRpdGVkVmFsdWVgIGFzIG5ldyBjdXJyZW50VXNlcklucHV0IHZhbHVlcyBjb21lIGluXG5cbiAgICBjb25zdCB7XG4gICAgICBjdXJyZW50VXNlcklucHV0VmFsdWU6IG5ld1ZhbHVlLFxuICAgICAgZXhhbXBsZXMsXG4gICAgICBvblNlbGVjdCxcbiAgICAgIHVzZXJIYXNFZGl0ZWRCb2R5LFxuICAgIH0gPSBuZXh0UHJvcHNcblxuICAgIGNvbnN0IHsgbGFzdFVzZXJFZGl0ZWRWYWx1ZSwgbGFzdERvd25zdHJlYW1WYWx1ZSB9ID1cbiAgICAgIHRoaXMuX2dldFN0YXRlRm9yQ3VycmVudE5hbWVzcGFjZSgpXG5cbiAgICBjb25zdCB2YWx1ZUZyb21DdXJyZW50RXhhbXBsZSA9IHRoaXMuX2dldFZhbHVlRm9yRXhhbXBsZShcbiAgICAgIG5leHRQcm9wcy5jdXJyZW50S2V5LFxuICAgICAgbmV4dFByb3BzXG4gICAgKVxuXG4gICAgY29uc3QgZXhhbXBsZXNNYXRjaGluZ05ld1ZhbHVlID0gZXhhbXBsZXMuZmlsdGVyKFxuICAgICAgKGV4YW1wbGUpID0+XG4gICAgICAgIE1hcC5pc01hcChleGFtcGxlKSAmJlxuICAgICAgICAoZXhhbXBsZS5nZXQoXCJ2YWx1ZVwiKSA9PT0gbmV3VmFsdWUgfHxcbiAgICAgICAgICAvLyBzb21ldGltZXMgZGF0YSBpcyBzdG9yZWQgYXMgYSBzdHJpbmcgKGUuZy4gaW4gUmVxdWVzdCBCb2RpZXMpLCBzb1xuICAgICAgICAgIC8vIGxldCdzIGNoZWNrIGFnYWluc3QgYSBzdHJpbmdpZmllZCB2ZXJzaW9uIG9mIG91ciBleGFtcGxlIHRvb1xuICAgICAgICAgIHN0cmluZ2lmeShleGFtcGxlLmdldChcInZhbHVlXCIpKSA9PT0gbmV3VmFsdWUpXG4gICAgKVxuXG4gICAgaWYgKGV4YW1wbGVzTWF0Y2hpbmdOZXdWYWx1ZS5zaXplKSB7XG4gICAgICBsZXQga2V5XG4gICAgICBpZiAoZXhhbXBsZXNNYXRjaGluZ05ld1ZhbHVlLmhhcyhuZXh0UHJvcHMuY3VycmVudEtleSkpIHtcbiAgICAgICAga2V5ID0gbmV4dFByb3BzLmN1cnJlbnRLZXlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGtleSA9IGV4YW1wbGVzTWF0Y2hpbmdOZXdWYWx1ZS5rZXlTZXEoKS5maXJzdCgpXG4gICAgICB9XG4gICAgICBvblNlbGVjdChrZXksIHtcbiAgICAgICAgaXNTeW50aGV0aWNDaGFuZ2U6IHRydWUsXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBuZXdWYWx1ZSAhPT0gdGhpcy5wcm9wcy5jdXJyZW50VXNlcklucHV0VmFsdWUgJiYgLy8gdmFsdWUgaGFzIGNoYW5nZWRcbiAgICAgIG5ld1ZhbHVlICE9PSBsYXN0VXNlckVkaXRlZFZhbHVlICYmIC8vIHZhbHVlIGlzbid0IGFscmVhZHkgdHJhY2tlZFxuICAgICAgbmV3VmFsdWUgIT09IGxhc3REb3duc3RyZWFtVmFsdWUgLy8gdmFsdWUgaXNuJ3Qgd2hhdCB3ZSd2ZSBzZWVuIG9uIHRoZSBvdGhlciBzaWRlXG4gICAgKSB7XG4gICAgICB0aGlzLnByb3BzLnNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnKHRydWUpXG4gICAgICB0aGlzLl9zZXRTdGF0ZUZvck5hbWVzcGFjZShuZXh0UHJvcHMuY3VycmVudE5hbWVzcGFjZSwge1xuICAgICAgICBsYXN0VXNlckVkaXRlZFZhbHVlOiBuZXh0UHJvcHMuY3VycmVudFVzZXJJbnB1dFZhbHVlLFxuICAgICAgICBpc01vZGlmaWVkVmFsdWVTZWxlY3RlZDpcbiAgICAgICAgICB1c2VySGFzRWRpdGVkQm9keSB8fCBuZXdWYWx1ZSAhPT0gdmFsdWVGcm9tQ3VycmVudEV4YW1wbGUsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBjdXJyZW50VXNlcklucHV0VmFsdWUsXG4gICAgICBleGFtcGxlcyxcbiAgICAgIGN1cnJlbnRLZXksXG4gICAgICBnZXRDb21wb25lbnQsXG4gICAgICB1c2VySGFzRWRpdGVkQm9keSxcbiAgICB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHtcbiAgICAgIGxhc3REb3duc3RyZWFtVmFsdWUsXG4gICAgICBsYXN0VXNlckVkaXRlZFZhbHVlLFxuICAgICAgaXNNb2RpZmllZFZhbHVlU2VsZWN0ZWQsXG4gICAgfSA9IHRoaXMuX2dldFN0YXRlRm9yQ3VycmVudE5hbWVzcGFjZSgpXG5cbiAgICBjb25zdCBFeGFtcGxlc1NlbGVjdCA9IGdldENvbXBvbmVudChcIkV4YW1wbGVzU2VsZWN0XCIpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPEV4YW1wbGVzU2VsZWN0XG4gICAgICAgIGV4YW1wbGVzPXtleGFtcGxlc31cbiAgICAgICAgY3VycmVudEV4YW1wbGVLZXk9e2N1cnJlbnRLZXl9XG4gICAgICAgIG9uU2VsZWN0PXt0aGlzLl9vbkV4YW1wbGVzU2VsZWN0fVxuICAgICAgICBpc01vZGlmaWVkVmFsdWVBdmFpbGFibGU9e1xuICAgICAgICAgICEhbGFzdFVzZXJFZGl0ZWRWYWx1ZSAmJiBsYXN0VXNlckVkaXRlZFZhbHVlICE9PSBsYXN0RG93bnN0cmVhbVZhbHVlXG4gICAgICAgIH1cbiAgICAgICAgaXNWYWx1ZU1vZGlmaWVkPXtcbiAgICAgICAgICAoY3VycmVudFVzZXJJbnB1dFZhbHVlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIGlzTW9kaWZpZWRWYWx1ZVNlbGVjdGVkICYmXG4gICAgICAgICAgICBjdXJyZW50VXNlcklucHV0VmFsdWUgIT09IHRoaXMuX2dldEN1cnJlbnRFeGFtcGxlVmFsdWUoKSkgfHxcbiAgICAgICAgICB1c2VySGFzRWRpdGVkQm9keVxuICAgICAgICB9XG4gICAgICAvPlxuICAgIClcbiAgfVxufVxuIiwiaW1wb3J0IHBhcnNlVXJsIGZyb20gXCJ1cmwtcGFyc2VcIlxuaW1wb3J0IEltIGZyb20gXCJpbW11dGFibGVcIlxuaW1wb3J0IHsgYnRvYSwgZ2VuZXJhdGVDb2RlVmVyaWZpZXIsIGNyZWF0ZUNvZGVDaGFsbGVuZ2UgfSBmcm9tIFwiY29yZS91dGlsc1wiXG5pbXBvcnQgeyBzYW5pdGl6ZVVybCB9IGZyb20gXCJjb3JlL3V0aWxzL3VybFwiXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGF1dGhvcml6ZSAoIHsgYXV0aCwgYXV0aEFjdGlvbnMsIGVyckFjdGlvbnMsIGNvbmZpZ3MsIGF1dGhDb25maWdzPXt9LCBjdXJyZW50U2VydmVyIH0gKSB7XG4gIGxldCB7IHNjaGVtYSwgc2NvcGVzLCBuYW1lLCBjbGllbnRJZCB9ID0gYXV0aFxuICBsZXQgZmxvdyA9IHNjaGVtYS5nZXQoXCJmbG93XCIpXG4gIGxldCBxdWVyeSA9IFtdXG5cbiAgc3dpdGNoIChmbG93KSB7XG4gICAgY2FzZSBcInBhc3N3b3JkXCI6XG4gICAgICBhdXRoQWN0aW9ucy5hdXRob3JpemVQYXNzd29yZChhdXRoKVxuICAgICAgcmV0dXJuXG5cbiAgICBjYXNlIFwiYXBwbGljYXRpb25cIjpcbiAgICAgIGF1dGhBY3Rpb25zLmF1dGhvcml6ZUFwcGxpY2F0aW9uKGF1dGgpXG4gICAgICByZXR1cm5cblxuICAgIGNhc2UgXCJhY2Nlc3NDb2RlXCI6XG4gICAgICBxdWVyeS5wdXNoKFwicmVzcG9uc2VfdHlwZT1jb2RlXCIpXG4gICAgICBicmVha1xuXG4gICAgY2FzZSBcImltcGxpY2l0XCI6XG4gICAgICBxdWVyeS5wdXNoKFwicmVzcG9uc2VfdHlwZT10b2tlblwiKVxuICAgICAgYnJlYWtcblxuICAgIGNhc2UgXCJjbGllbnRDcmVkZW50aWFsc1wiOlxuICAgIGNhc2UgXCJjbGllbnRfY3JlZGVudGlhbHNcIjpcbiAgICAgIC8vIE9BUzNcbiAgICAgIGF1dGhBY3Rpb25zLmF1dGhvcml6ZUFwcGxpY2F0aW9uKGF1dGgpXG4gICAgICByZXR1cm5cblxuICAgIGNhc2UgXCJhdXRob3JpemF0aW9uQ29kZVwiOlxuICAgIGNhc2UgXCJhdXRob3JpemF0aW9uX2NvZGVcIjpcbiAgICAgIC8vIE9BUzNcbiAgICAgIHF1ZXJ5LnB1c2goXCJyZXNwb25zZV90eXBlPWNvZGVcIilcbiAgICAgIGJyZWFrXG4gIH1cblxuICBpZiAodHlwZW9mIGNsaWVudElkID09PSBcInN0cmluZ1wiKSB7XG4gICAgcXVlcnkucHVzaChcImNsaWVudF9pZD1cIiArIGVuY29kZVVSSUNvbXBvbmVudChjbGllbnRJZCkpXG4gIH1cblxuICBsZXQgcmVkaXJlY3RVcmwgPSBjb25maWdzLm9hdXRoMlJlZGlyZWN0VXJsXG5cbiAgLy8gdG9kbyBtb3ZlIHRvIHBhcnNlclxuICBpZiAodHlwZW9mIHJlZGlyZWN0VXJsID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgZXJyQWN0aW9ucy5uZXdBdXRoRXJyKCB7XG4gICAgICBhdXRoSWQ6IG5hbWUsXG4gICAgICBzb3VyY2U6IFwidmFsaWRhdGlvblwiLFxuICAgICAgbGV2ZWw6IFwiZXJyb3JcIixcbiAgICAgIG1lc3NhZ2U6IFwib2F1dGgyUmVkaXJlY3RVcmwgY29uZmlndXJhdGlvbiBpcyBub3QgcGFzc2VkLiBPYXV0aDIgYXV0aG9yaXphdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkLlwiXG4gICAgfSlcbiAgICByZXR1cm5cbiAgfVxuICBxdWVyeS5wdXNoKFwicmVkaXJlY3RfdXJpPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHJlZGlyZWN0VXJsKSlcblxuICBsZXQgc2NvcGVzQXJyYXkgPSBbXVxuICBpZiAoQXJyYXkuaXNBcnJheShzY29wZXMpKSB7XG4gICAgc2NvcGVzQXJyYXkgPSBzY29wZXNcbiAgfSBlbHNlIGlmIChJbS5MaXN0LmlzTGlzdChzY29wZXMpKSB7XG4gICAgc2NvcGVzQXJyYXkgPSBzY29wZXMudG9BcnJheSgpXG4gIH1cblxuICBpZiAoc2NvcGVzQXJyYXkubGVuZ3RoID4gMCkge1xuICAgIGxldCBzY29wZVNlcGFyYXRvciA9IGF1dGhDb25maWdzLnNjb3BlU2VwYXJhdG9yIHx8IFwiIFwiXG5cbiAgICBxdWVyeS5wdXNoKFwic2NvcGU9XCIgKyBlbmNvZGVVUklDb21wb25lbnQoc2NvcGVzQXJyYXkuam9pbihzY29wZVNlcGFyYXRvcikpKVxuICB9XG5cbiAgbGV0IHN0YXRlID0gYnRvYShuZXcgRGF0ZSgpKVxuXG4gIHF1ZXJ5LnB1c2goXCJzdGF0ZT1cIiArIGVuY29kZVVSSUNvbXBvbmVudChzdGF0ZSkpXG5cbiAgaWYgKHR5cGVvZiBhdXRoQ29uZmlncy5yZWFsbSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHF1ZXJ5LnB1c2goXCJyZWFsbT1cIiArIGVuY29kZVVSSUNvbXBvbmVudChhdXRoQ29uZmlncy5yZWFsbSkpXG4gIH1cblxuICBpZiAoKGZsb3cgPT09IFwiYXV0aG9yaXphdGlvbkNvZGVcIiB8fCBmbG93ID09PSBcImF1dGhvcml6YXRpb25fY29kZVwiIHx8IGZsb3cgPT09IFwiYWNjZXNzQ29kZVwiKSAmJiBhdXRoQ29uZmlncy51c2VQa2NlV2l0aEF1dGhvcml6YXRpb25Db2RlR3JhbnQpIHtcbiAgICAgIGNvbnN0IGNvZGVWZXJpZmllciA9IGdlbmVyYXRlQ29kZVZlcmlmaWVyKClcbiAgICAgIGNvbnN0IGNvZGVDaGFsbGVuZ2UgPSBjcmVhdGVDb2RlQ2hhbGxlbmdlKGNvZGVWZXJpZmllcilcblxuICAgICAgcXVlcnkucHVzaChcImNvZGVfY2hhbGxlbmdlPVwiICsgY29kZUNoYWxsZW5nZSlcbiAgICAgIHF1ZXJ5LnB1c2goXCJjb2RlX2NoYWxsZW5nZV9tZXRob2Q9UzI1NlwiKVxuXG4gICAgICAvLyBzdG9yaW5nIHRoZSBDb2RlIFZlcmlmaWVyIHNvIGl0IGNhbiBiZSBzZW50IHRvIHRoZSB0b2tlbiBlbmRwb2ludFxuICAgICAgLy8gd2hlbiBleGNoYW5naW5nIHRoZSBBdXRob3JpemF0aW9uIENvZGUgZm9yIGFuIEFjY2VzcyBUb2tlblxuICAgICAgYXV0aC5jb2RlVmVyaWZpZXIgPSBjb2RlVmVyaWZpZXJcbiAgfVxuXG4gIGxldCB7IGFkZGl0aW9uYWxRdWVyeVN0cmluZ1BhcmFtcyB9ID0gYXV0aENvbmZpZ3NcblxuICBmb3IgKGxldCBrZXkgaW4gYWRkaXRpb25hbFF1ZXJ5U3RyaW5nUGFyYW1zKSB7XG4gICAgaWYgKHR5cGVvZiBhZGRpdGlvbmFsUXVlcnlTdHJpbmdQYXJhbXNba2V5XSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgcXVlcnkucHVzaChba2V5LCBhZGRpdGlvbmFsUXVlcnlTdHJpbmdQYXJhbXNba2V5XV0ubWFwKGVuY29kZVVSSUNvbXBvbmVudCkuam9pbihcIj1cIikpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgYXV0aG9yaXphdGlvblVybCA9IHNjaGVtYS5nZXQoXCJhdXRob3JpemF0aW9uVXJsXCIpXG4gIGxldCBzYW5pdGl6ZWRBdXRob3JpemF0aW9uVXJsXG4gIGlmIChjdXJyZW50U2VydmVyKSB7XG4gICAgLy8gT3BlbkFQSSAzXG4gICAgc2FuaXRpemVkQXV0aG9yaXphdGlvblVybCA9IHBhcnNlVXJsKFxuICAgICAgc2FuaXRpemVVcmwoYXV0aG9yaXphdGlvblVybCksXG4gICAgICBjdXJyZW50U2VydmVyLFxuICAgICAgdHJ1ZVxuICAgICkudG9TdHJpbmcoKVxuICB9IGVsc2Uge1xuICAgIHNhbml0aXplZEF1dGhvcml6YXRpb25VcmwgPSBzYW5pdGl6ZVVybChhdXRob3JpemF0aW9uVXJsKVxuICB9XG4gIGxldCB1cmwgPSBbc2FuaXRpemVkQXV0aG9yaXphdGlvblVybCwgcXVlcnkuam9pbihcIiZcIildLmpvaW4oXG4gICAgdHlwZW9mIGF1dGhvcml6YXRpb25VcmwgPT09IFwic3RyaW5nXCIgJiYgIWF1dGhvcml6YXRpb25VcmwuaW5jbHVkZXMoXCI/XCIpXG4gICAgICA/IFwiP1wiXG4gICAgICA6IFwiJlwiXG4gIClcblxuICAvLyBwYXNzIGFjdGlvbiBhdXRob3JpemVPYXV0aDIgYW5kIGF1dGhlbnRpY2F0aW9uIGRhdGEgdGhyb3VnaCB3aW5kb3dcbiAgLy8gdG8gYXV0aG9yaXplIHdpdGggb2F1dGgyXG5cbiAgbGV0IGNhbGxiYWNrXG4gIGlmIChmbG93ID09PSBcImltcGxpY2l0XCIpIHtcbiAgICBjYWxsYmFjayA9IGF1dGhBY3Rpb25zLnByZUF1dGhvcml6ZUltcGxpY2l0XG4gIH0gZWxzZSBpZiAoYXV0aENvbmZpZ3MudXNlQmFzaWNBdXRoZW50aWNhdGlvbldpdGhBY2Nlc3NDb2RlR3JhbnQpIHtcbiAgICBjYWxsYmFjayA9IGF1dGhBY3Rpb25zLmF1dGhvcml6ZUFjY2Vzc0NvZGVXaXRoQmFzaWNBdXRoZW50aWNhdGlvblxuICB9IGVsc2Uge1xuICAgIGNhbGxiYWNrID0gYXV0aEFjdGlvbnMuYXV0aG9yaXplQWNjZXNzQ29kZVdpdGhGb3JtUGFyYW1zXG4gIH1cblxuICBhdXRoQWN0aW9ucy5hdXRoUG9wdXAodXJsLCB7XG4gICAgYXV0aDogYXV0aCxcbiAgICBzdGF0ZTogc3RhdGUsXG4gICAgcmVkaXJlY3RVcmw6IHJlZGlyZWN0VXJsLFxuICAgIGNhbGxiYWNrOiBjYWxsYmFjayxcbiAgICBlcnJDYjogZXJyQWN0aW9ucy5uZXdBdXRoRXJyXG4gIH0pXG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IG9hdXRoMkF1dGhvcml6ZSBmcm9tIFwiY29yZS9vYXV0aDItYXV0aG9yaXplXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT2F1dGgyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGF1dGhvcml6ZWQ6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNjaGVtYTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGF1dGhTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBhdXRoQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGVyclNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG9hczNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZXJyQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGdldENvbmZpZ3M6IFByb3BUeXBlcy5hbnlcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3BzLCBjb250ZXh0KSB7XG4gICAgc3VwZXIocHJvcHMsIGNvbnRleHQpXG4gICAgbGV0IHsgbmFtZSwgc2NoZW1hLCBhdXRob3JpemVkLCBhdXRoU2VsZWN0b3JzIH0gPSB0aGlzLnByb3BzXG4gICAgbGV0IGF1dGggPSBhdXRob3JpemVkICYmIGF1dGhvcml6ZWQuZ2V0KG5hbWUpXG4gICAgbGV0IGF1dGhDb25maWdzID0gYXV0aFNlbGVjdG9ycy5nZXRDb25maWdzKCkgfHwge31cbiAgICBsZXQgdXNlcm5hbWUgPSBhdXRoICYmIGF1dGguZ2V0KFwidXNlcm5hbWVcIikgfHwgXCJcIlxuICAgIGxldCBjbGllbnRJZCA9IGF1dGggJiYgYXV0aC5nZXQoXCJjbGllbnRJZFwiKSB8fCBhdXRoQ29uZmlncy5jbGllbnRJZCB8fCBcIlwiXG4gICAgbGV0IGNsaWVudFNlY3JldCA9IGF1dGggJiYgYXV0aC5nZXQoXCJjbGllbnRTZWNyZXRcIikgfHwgYXV0aENvbmZpZ3MuY2xpZW50U2VjcmV0IHx8IFwiXCJcbiAgICBsZXQgcGFzc3dvcmRUeXBlID0gYXV0aCAmJiBhdXRoLmdldChcInBhc3N3b3JkVHlwZVwiKSB8fCBcImJhc2ljXCJcbiAgICBsZXQgc2NvcGVzID0gYXV0aCAmJiBhdXRoLmdldChcInNjb3Blc1wiKSB8fCBhdXRoQ29uZmlncy5zY29wZXMgfHwgW11cbiAgICBpZiAodHlwZW9mIHNjb3BlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgc2NvcGVzID0gc2NvcGVzLnNwbGl0KGF1dGhDb25maWdzLnNjb3BlU2VwYXJhdG9yIHx8IFwiIFwiKVxuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBhcHBOYW1lOiBhdXRoQ29uZmlncy5hcHBOYW1lLFxuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHNjaGVtYTogc2NoZW1hLFxuICAgICAgc2NvcGVzOiBzY29wZXMsXG4gICAgICBjbGllbnRJZDogY2xpZW50SWQsXG4gICAgICBjbGllbnRTZWNyZXQ6IGNsaWVudFNlY3JldCxcbiAgICAgIHVzZXJuYW1lOiB1c2VybmFtZSxcbiAgICAgIHBhc3N3b3JkOiBcIlwiLFxuICAgICAgcGFzc3dvcmRUeXBlOiBwYXNzd29yZFR5cGVcbiAgICB9XG4gIH1cblxuICBjbG9zZSA9IChlKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgbGV0IHsgYXV0aEFjdGlvbnMgfSA9IHRoaXMucHJvcHNcblxuICAgIGF1dGhBY3Rpb25zLnNob3dEZWZpbml0aW9ucyhmYWxzZSlcbiAgfVxuXG4gIGF1dGhvcml6ZSA9KCkgPT4ge1xuICAgIGxldCB7IGF1dGhBY3Rpb25zLCBlcnJBY3Rpb25zLCBnZXRDb25maWdzLCBhdXRoU2VsZWN0b3JzLCBvYXMzU2VsZWN0b3JzIH0gPSB0aGlzLnByb3BzXG4gICAgbGV0IGNvbmZpZ3MgPSBnZXRDb25maWdzKClcbiAgICBsZXQgYXV0aENvbmZpZ3MgPSBhdXRoU2VsZWN0b3JzLmdldENvbmZpZ3MoKVxuXG4gICAgZXJyQWN0aW9ucy5jbGVhcih7YXV0aElkOiBuYW1lLHR5cGU6IFwiYXV0aFwiLCBzb3VyY2U6IFwiYXV0aFwifSlcbiAgICBvYXV0aDJBdXRob3JpemUoe1xuICAgICAgYXV0aDogdGhpcy5zdGF0ZSxcbiAgICAgIGN1cnJlbnRTZXJ2ZXI6IG9hczNTZWxlY3RvcnMuc2VydmVyRWZmZWN0aXZlVmFsdWUob2FzM1NlbGVjdG9ycy5zZWxlY3RlZFNlcnZlcigpKSxcbiAgICAgIGF1dGhBY3Rpb25zLFxuICAgICAgZXJyQWN0aW9ucyxcbiAgICAgIGNvbmZpZ3MsXG4gICAgICBhdXRoQ29uZmlnc1xuICAgIH0pXG4gIH1cblxuICBvblNjb3BlQ2hhbmdlID0oZSkgPT4ge1xuICAgIGxldCB7IHRhcmdldCB9ID0gZVxuICAgIGxldCB7IGNoZWNrZWQgfSA9IHRhcmdldFxuICAgIGxldCBzY29wZSA9IHRhcmdldC5kYXRhc2V0LnZhbHVlXG5cbiAgICBpZiAoIGNoZWNrZWQgJiYgdGhpcy5zdGF0ZS5zY29wZXMuaW5kZXhPZihzY29wZSkgPT09IC0xICkge1xuICAgICAgbGV0IG5ld1Njb3BlcyA9IHRoaXMuc3RhdGUuc2NvcGVzLmNvbmNhdChbc2NvcGVdKVxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNjb3BlczogbmV3U2NvcGVzIH0pXG4gICAgfSBlbHNlIGlmICggIWNoZWNrZWQgJiYgdGhpcy5zdGF0ZS5zY29wZXMuaW5kZXhPZihzY29wZSkgPiAtMSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNjb3BlczogdGhpcy5zdGF0ZS5zY29wZXMuZmlsdGVyKCh2YWwpID0+IHZhbCAhPT0gc2NvcGUpIH0pXG4gICAgfVxuICB9XG5cbiAgb25JbnB1dENoYW5nZSA9KGUpID0+IHtcbiAgICBsZXQgeyB0YXJnZXQgOiB7IGRhdGFzZXQgOiB7IG5hbWUgfSwgdmFsdWUgfSB9ID0gZVxuICAgIGxldCBzdGF0ZSA9IHtcbiAgICAgIFtuYW1lXTogdmFsdWVcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0YXRlKHN0YXRlKVxuICB9XG5cbiAgc2VsZWN0U2NvcGVzID0oZSkgPT4ge1xuICAgIGlmIChlLnRhcmdldC5kYXRhc2V0LmFsbCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHNjb3BlczogQXJyYXkuZnJvbSgodGhpcy5wcm9wcy5zY2hlbWEuZ2V0KFwiYWxsb3dlZFNjb3Blc1wiKSB8fCB0aGlzLnByb3BzLnNjaGVtYS5nZXQoXCJzY29wZXNcIikpLmtleXMoKSlcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBzY29wZXM6IFtdIH0pXG4gICAgfVxuICB9XG5cbiAgbG9nb3V0ID0oZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGxldCB7IGF1dGhBY3Rpb25zLCBlcnJBY3Rpb25zLCBuYW1lIH0gPSB0aGlzLnByb3BzXG5cbiAgICBlcnJBY3Rpb25zLmNsZWFyKHthdXRoSWQ6IG5hbWUsIHR5cGU6IFwiYXV0aFwiLCBzb3VyY2U6IFwiYXV0aFwifSlcbiAgICBhdXRoQWN0aW9ucy5sb2dvdXRXaXRoUGVyc2lzdE9wdGlvbihbIG5hbWUgXSlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQge1xuICAgICAgc2NoZW1hLCBnZXRDb21wb25lbnQsIGF1dGhTZWxlY3RvcnMsIGVyclNlbGVjdG9ycywgbmFtZSwgc3BlY1NlbGVjdG9yc1xuICAgIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgSW5wdXQgPSBnZXRDb21wb25lbnQoXCJJbnB1dFwiKVxuICAgIGNvbnN0IFJvdyA9IGdldENvbXBvbmVudChcIlJvd1wiKVxuICAgIGNvbnN0IENvbCA9IGdldENvbXBvbmVudChcIkNvbFwiKVxuICAgIGNvbnN0IEJ1dHRvbiA9IGdldENvbXBvbmVudChcIkJ1dHRvblwiKVxuICAgIGNvbnN0IEF1dGhFcnJvciA9IGdldENvbXBvbmVudChcImF1dGhFcnJvclwiKVxuICAgIGNvbnN0IEp1bXBUb1BhdGggPSBnZXRDb21wb25lbnQoXCJKdW1wVG9QYXRoXCIsIHRydWUpXG4gICAgY29uc3QgTWFya2Rvd24gPSBnZXRDb21wb25lbnQoXCJNYXJrZG93blwiLCB0cnVlKVxuICAgIGNvbnN0IEluaXRpYWxpemVkSW5wdXQgPSBnZXRDb21wb25lbnQoXCJJbml0aWFsaXplZElucHV0XCIpXG5cbiAgICBjb25zdCB7IGlzT0FTMyB9ID0gc3BlY1NlbGVjdG9yc1xuXG4gICAgbGV0IG9pZGNVcmwgPSBpc09BUzMoKSA/IHNjaGVtYS5nZXQoXCJvcGVuSWRDb25uZWN0VXJsXCIpIDogbnVsbFxuXG4gICAgLy8gQXV0aCB0eXBlIGNvbnN0c1xuICAgIGNvbnN0IEFVVEhfRkxPV19JTVBMSUNJVCA9IFwiaW1wbGljaXRcIlxuICAgIGNvbnN0IEFVVEhfRkxPV19QQVNTV09SRCA9IFwicGFzc3dvcmRcIlxuICAgIGNvbnN0IEFVVEhfRkxPV19BQ0NFU1NfQ09ERSA9IGlzT0FTMygpID8gKG9pZGNVcmwgPyBcImF1dGhvcml6YXRpb25fY29kZVwiIDogXCJhdXRob3JpemF0aW9uQ29kZVwiKSA6IFwiYWNjZXNzQ29kZVwiXG4gICAgY29uc3QgQVVUSF9GTE9XX0FQUExJQ0FUSU9OID0gaXNPQVMzKCkgPyAob2lkY1VybCA/IFwiY2xpZW50X2NyZWRlbnRpYWxzXCIgOiBcImNsaWVudENyZWRlbnRpYWxzXCIpIDogXCJhcHBsaWNhdGlvblwiXG5cbiAgICBjb25zdCBwYXRoID0gYXV0aFNlbGVjdG9ycy5zZWxlY3RBdXRoUGF0aChuYW1lKVxuXG4gICAgbGV0IGF1dGhDb25maWdzID0gYXV0aFNlbGVjdG9ycy5nZXRDb25maWdzKCkgfHwge31cbiAgICBsZXQgaXNQa2NlQ29kZUdyYW50ID0gISFhdXRoQ29uZmlncy51c2VQa2NlV2l0aEF1dGhvcml6YXRpb25Db2RlR3JhbnRcblxuICAgIGxldCBmbG93ID0gc2NoZW1hLmdldChcImZsb3dcIilcbiAgICBsZXQgZmxvd1RvRGlzcGxheSA9IGZsb3cgPT09IEFVVEhfRkxPV19BQ0NFU1NfQ09ERSAmJiBpc1BrY2VDb2RlR3JhbnQgPyBmbG93ICsgXCIgd2l0aCBQS0NFXCIgOiBmbG93XG4gICAgbGV0IHNjb3BlcyA9IHNjaGVtYS5nZXQoXCJhbGxvd2VkU2NvcGVzXCIpIHx8IHNjaGVtYS5nZXQoXCJzY29wZXNcIilcbiAgICBsZXQgYXV0aG9yaXplZEF1dGggPSBhdXRoU2VsZWN0b3JzLmF1dGhvcml6ZWQoKS5nZXQobmFtZSlcbiAgICBsZXQgaXNBdXRob3JpemVkID0gISFhdXRob3JpemVkQXV0aFxuICAgIGxldCBlcnJvcnMgPSBlcnJTZWxlY3RvcnMuYWxsRXJyb3JzKCkuZmlsdGVyKCBlcnIgPT4gZXJyLmdldChcImF1dGhJZFwiKSA9PT0gbmFtZSlcbiAgICBsZXQgaXNWYWxpZCA9ICFlcnJvcnMuZmlsdGVyKCBlcnIgPT4gZXJyLmdldChcInNvdXJjZVwiKSA9PT0gXCJ2YWxpZGF0aW9uXCIpLnNpemVcbiAgICBsZXQgZGVzY3JpcHRpb24gPSBzY2hlbWEuZ2V0KFwiZGVzY3JpcHRpb25cIilcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8aDQ+e25hbWV9IChPQXV0aDIsIHsgZmxvd1RvRGlzcGxheSB9KSA8SnVtcFRvUGF0aCBwYXRoPXtwYXRofSAvPjwvaDQ+XG4gICAgICAgIHsgIXRoaXMuc3RhdGUuYXBwTmFtZSA/IG51bGwgOiA8aDU+QXBwbGljYXRpb246IHsgdGhpcy5zdGF0ZS5hcHBOYW1lIH0gPC9oNT4gfVxuICAgICAgICB7IGRlc2NyaXB0aW9uICYmIDxNYXJrZG93biBzb3VyY2U9eyBzY2hlbWEuZ2V0KFwiZGVzY3JpcHRpb25cIikgfSAvPiB9XG5cbiAgICAgICAgeyBpc0F1dGhvcml6ZWQgJiYgPGg2PkF1dGhvcml6ZWQ8L2g2PiB9XG5cbiAgICAgICAgeyBvaWRjVXJsICYmIDxwPk9wZW5JRCBDb25uZWN0IFVSTDogPGNvZGU+eyBvaWRjVXJsIH08L2NvZGU+PC9wPiB9XG4gICAgICAgIHsgKCBmbG93ID09PSBBVVRIX0ZMT1dfSU1QTElDSVQgfHwgZmxvdyA9PT0gQVVUSF9GTE9XX0FDQ0VTU19DT0RFICkgJiYgPHA+QXV0aG9yaXphdGlvbiBVUkw6IDxjb2RlPnsgc2NoZW1hLmdldChcImF1dGhvcml6YXRpb25VcmxcIikgfTwvY29kZT48L3A+IH1cbiAgICAgICAgeyAoIGZsb3cgPT09IEFVVEhfRkxPV19QQVNTV09SRCB8fCBmbG93ID09PSBBVVRIX0ZMT1dfQUNDRVNTX0NPREUgfHwgZmxvdyA9PT0gQVVUSF9GTE9XX0FQUExJQ0FUSU9OICkgJiYgPHA+VG9rZW4gVVJMOjxjb2RlPiB7IHNjaGVtYS5nZXQoXCJ0b2tlblVybFwiKSB9PC9jb2RlPjwvcD4gfVxuICAgICAgICA8cCBjbGFzc05hbWU9XCJmbG93XCI+RmxvdzogPGNvZGU+eyBmbG93VG9EaXNwbGF5IH08L2NvZGU+PC9wPlxuXG4gICAgICAgIHtcbiAgICAgICAgICBmbG93ICE9PSBBVVRIX0ZMT1dfUEFTU1dPUkQgPyBudWxsXG4gICAgICAgICAgICA6IDxSb3c+XG4gICAgICAgICAgICAgIDxSb3c+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJvYXV0aF91c2VybmFtZVwiPnVzZXJuYW1lOjwvbGFiZWw+XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgaXNBdXRob3JpemVkID8gPGNvZGU+IHsgdGhpcy5zdGF0ZS51c2VybmFtZSB9IDwvY29kZT5cbiAgICAgICAgICAgICAgICAgICAgOiA8Q29sIHRhYmxldD17MTB9IGRlc2t0b3A9ezEwfT5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJvYXV0aF91c2VybmFtZVwiIHR5cGU9XCJ0ZXh0XCIgZGF0YS1uYW1lPVwidXNlcm5hbWVcIiBvbkNoYW5nZT17IHRoaXMub25JbnB1dENoYW5nZSB9IGF1dG9Gb2N1cy8+XG4gICAgICAgICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9Sb3c+XG4gICAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxSb3c+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJvYXV0aF9wYXNzd29yZFwiPnBhc3N3b3JkOjwvbGFiZWw+XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgaXNBdXRob3JpemVkID8gPGNvZGU+ICoqKioqKiA8L2NvZGU+XG4gICAgICAgICAgICAgICAgICAgIDogPENvbCB0YWJsZXQ9ezEwfSBkZXNrdG9wPXsxMH0+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwib2F1dGhfcGFzc3dvcmRcIiB0eXBlPVwicGFzc3dvcmRcIiBkYXRhLW5hbWU9XCJwYXNzd29yZFwiIG9uQ2hhbmdlPXsgdGhpcy5vbklucHV0Q2hhbmdlIH0vPlxuICAgICAgICAgICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvUm93PlxuICAgICAgICAgICAgICA8Um93PlxuICAgICAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwicGFzc3dvcmRfdHlwZVwiPkNsaWVudCBjcmVkZW50aWFscyBsb2NhdGlvbjo8L2xhYmVsPlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGlzQXV0aG9yaXplZCA/IDxjb2RlPiB7IHRoaXMuc3RhdGUucGFzc3dvcmRUeXBlIH0gPC9jb2RlPlxuICAgICAgICAgICAgICAgICAgICA6IDxDb2wgdGFibGV0PXsxMH0gZGVza3RvcD17MTB9PlxuICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgaWQ9XCJwYXNzd29yZF90eXBlXCIgZGF0YS1uYW1lPVwicGFzc3dvcmRUeXBlXCIgb25DaGFuZ2U9eyB0aGlzLm9uSW5wdXRDaGFuZ2UgfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJiYXNpY1wiPkF1dGhvcml6YXRpb24gaGVhZGVyPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwicmVxdWVzdC1ib2R5XCI+UmVxdWVzdCBib2R5PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9Sb3c+XG4gICAgICAgICAgICA8L1Jvdz5cbiAgICAgICAgfVxuICAgICAgICB7XG4gICAgICAgICAgKCBmbG93ID09PSBBVVRIX0ZMT1dfQVBQTElDQVRJT04gfHwgZmxvdyA9PT0gQVVUSF9GTE9XX0lNUExJQ0lUIHx8IGZsb3cgPT09IEFVVEhfRkxPV19BQ0NFU1NfQ09ERSB8fCBmbG93ID09PSBBVVRIX0ZMT1dfUEFTU1dPUkQgKSAmJlxuICAgICAgICAgICggIWlzQXV0aG9yaXplZCB8fCBpc0F1dGhvcml6ZWQgJiYgdGhpcy5zdGF0ZS5jbGllbnRJZCkgJiYgPFJvdz5cbiAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPXsgYGNsaWVudF9pZF8ke2Zsb3d9YCB9PmNsaWVudF9pZDo8L2xhYmVsPlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpc0F1dGhvcml6ZWQgPyA8Y29kZT4gKioqKioqIDwvY29kZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogPENvbCB0YWJsZXQ9ezEwfSBkZXNrdG9wPXsxMH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEluaXRpYWxpemVkSW5wdXQgaWQ9e2BjbGllbnRfaWRfJHtmbG93fWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9eyBmbG93ID09PSBBVVRIX0ZMT1dfUEFTU1dPUkQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWU9eyB0aGlzLnN0YXRlLmNsaWVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1uYW1lPVwiY2xpZW50SWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17IHRoaXMub25JbnB1dENoYW5nZSB9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9Sb3c+XG4gICAgICAgIH1cblxuICAgICAgICB7XG4gICAgICAgICAgKCAoZmxvdyA9PT0gQVVUSF9GTE9XX0FQUExJQ0FUSU9OIHx8IGZsb3cgPT09IEFVVEhfRkxPV19BQ0NFU1NfQ09ERSB8fCBmbG93ID09PSBBVVRIX0ZMT1dfUEFTU1dPUkQpICYmIDxSb3c+XG4gICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj17IGBjbGllbnRfc2VjcmV0XyR7Zmxvd31gIH0+Y2xpZW50X3NlY3JldDo8L2xhYmVsPlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpc0F1dGhvcml6ZWQgPyA8Y29kZT4gKioqKioqIDwvY29kZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogPENvbCB0YWJsZXQ9ezEwfSBkZXNrdG9wPXsxMH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEluaXRpYWxpemVkSW5wdXQgaWQ9eyBgY2xpZW50X3NlY3JldF8ke2Zsb3d9YCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZT17IHRoaXMuc3RhdGUuY2xpZW50U2VjcmV0IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1uYW1lPVwiY2xpZW50U2VjcmV0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyB0aGlzLm9uSW5wdXRDaGFuZ2UgfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgPC9Sb3c+XG4gICAgICAgICl9XG5cbiAgICAgICAge1xuICAgICAgICAgICFpc0F1dGhvcml6ZWQgJiYgc2NvcGVzICYmIHNjb3Blcy5zaXplID8gPGRpdiBjbGFzc05hbWU9XCJzY29wZXNcIj5cbiAgICAgICAgICAgIDxoMj5cbiAgICAgICAgICAgICAgU2NvcGVzOlxuICAgICAgICAgICAgICA8YSBvbkNsaWNrPXt0aGlzLnNlbGVjdFNjb3Blc30gZGF0YS1hbGw9e3RydWV9PnNlbGVjdCBhbGw8L2E+XG4gICAgICAgICAgICAgIDxhIG9uQ2xpY2s9e3RoaXMuc2VsZWN0U2NvcGVzfT5zZWxlY3Qgbm9uZTwvYT5cbiAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICB7IHNjb3Blcy5tYXAoKGRlc2NyaXB0aW9uLCBuYW1lKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPFJvdyBrZXk9eyBuYW1lIH0+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICAgIDxJbnB1dCBkYXRhLXZhbHVlPXsgbmFtZSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlkPXtgJHtuYW1lfS0ke2Zsb3d9LWNoZWNrYm94LSR7dGhpcy5zdGF0ZS5uYW1lfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IGlzQXV0aG9yaXplZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXsgdGhpcy5zdGF0ZS5zY29wZXMuaW5jbHVkZXMobmFtZSkgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsgdGhpcy5vblNjb3BlQ2hhbmdlIH0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPXtgJHtuYW1lfS0ke2Zsb3d9LWNoZWNrYm94LSR7dGhpcy5zdGF0ZS5uYW1lfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaXRlbVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJuYW1lXCI+e25hbWV9PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJkZXNjcmlwdGlvblwiPntkZXNjcmlwdGlvbn08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9Sb3c+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfSkudG9BcnJheSgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+IDogbnVsbFxuICAgICAgICB9XG5cbiAgICAgICAge1xuICAgICAgICAgIGVycm9ycy52YWx1ZVNlcSgpLm1hcCggKGVycm9yLCBrZXkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiA8QXV0aEVycm9yIGVycm9yPXsgZXJyb3IgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXsga2V5IH0vPlxuICAgICAgICAgIH0gKVxuICAgICAgICB9XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXV0aC1idG4td3JhcHBlclwiPlxuICAgICAgICB7IGlzVmFsaWQgJiZcbiAgICAgICAgICAoIGlzQXV0aG9yaXplZCA/IDxCdXR0b24gY2xhc3NOYW1lPVwiYnRuIG1vZGFsLWJ0biBhdXRoIGF1dGhvcml6ZVwiIG9uQ2xpY2s9eyB0aGlzLmxvZ291dCB9IGFyaWEtbGFiZWw9XCJSZW1vdmUgYXV0aG9yaXphdGlvblwiPkxvZ291dDwvQnV0dG9uPlxuICAgICAgICA6IDxCdXR0b24gY2xhc3NOYW1lPVwiYnRuIG1vZGFsLWJ0biBhdXRoIGF1dGhvcml6ZVwiIG9uQ2xpY2s9eyB0aGlzLmF1dGhvcml6ZSB9IGFyaWEtbGFiZWw9XCJBcHBseSBnaXZlbiBPQXV0aDIgY3JlZGVudGlhbHNcIj5BdXRob3JpemU8L0J1dHRvbj5cbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgICA8QnV0dG9uIGNsYXNzTmFtZT1cImJ0biBtb2RhbC1idG4gYXV0aCBidG4tZG9uZVwiIG9uQ2xpY2s9eyB0aGlzLmNsb3NlIH0+Q2xvc2U8L0J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2xlYXIgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIG9uQ2xpY2sgPSgpID0+IHtcbiAgICBsZXQgeyBzcGVjQWN0aW9ucywgcGF0aCwgbWV0aG9kIH0gPSB0aGlzLnByb3BzXG4gICAgc3BlY0FjdGlvbnMuY2xlYXJSZXNwb25zZSggcGF0aCwgbWV0aG9kIClcbiAgICBzcGVjQWN0aW9ucy5jbGVhclJlcXVlc3QoIHBhdGgsIG1ldGhvZCApXG4gIH1cblxuICByZW5kZXIoKXtcbiAgICByZXR1cm4gKFxuICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG4gYnRuLWNsZWFyIG9wYmxvY2stY29udHJvbF9fYnRuXCIgb25DbGljaz17IHRoaXMub25DbGljayB9PlxuICAgICAgICBDbGVhclxuICAgICAgPC9idXR0b24+XG4gICAgKVxuICB9XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBzcGVjQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHBhdGg6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBtZXRob2Q6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5cbmNvbnN0IEhlYWRlcnMgPSAoIHsgaGVhZGVycyB9ICk9PntcbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPGg1PlJlc3BvbnNlIGhlYWRlcnM8L2g1PlxuICAgICAgPHByZSBjbGFzc05hbWU9XCJtaWNyb2xpZ2h0XCI+e2hlYWRlcnN9PC9wcmU+XG4gICAgPC9kaXY+KVxufVxuSGVhZGVycy5wcm9wVHlwZXMgPSB7XG4gIGhlYWRlcnM6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkXG59XG5cbmNvbnN0IER1cmF0aW9uID0gKCB7IGR1cmF0aW9uIH0gKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIDxoNT5SZXF1ZXN0IGR1cmF0aW9uPC9oNT5cbiAgICAgIDxwcmUgY2xhc3NOYW1lPVwibWljcm9saWdodFwiPntkdXJhdGlvbn0gbXM8L3ByZT5cbiAgICA8L2Rpdj5cbiAgKVxufVxuRHVyYXRpb24ucHJvcFR5cGVzID0ge1xuICBkdXJhdGlvbjogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGl2ZVJlc3BvbnNlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICByZXNwb25zZTogSW1Qcm9wVHlwZXMubWFwLFxuICAgIHBhdGg6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBtZXRob2Q6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBkaXNwbGF5UmVxdWVzdER1cmF0aW9uOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29uZmlnczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZFxuICB9XG5cbiAgc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5leHRQcm9wcykge1xuICAgIC8vIEJVRzogcHJvcHMucmVzcG9uc2UgaXMgYWx3YXlzIGNvbWluZyBiYWNrIGFzIGEgbmV3IEltbXV0YWJsZSBpbnN0YW5jZVxuICAgIC8vIHNhbWUgaXNzdWUgYXMgcmVzcG9uc2VzLmpzeCAodHJ5SXRPdXRSZXNwb25zZSlcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5yZXNwb25zZSAhPT0gbmV4dFByb3BzLnJlc3BvbnNlXG4gICAgICB8fCB0aGlzLnByb3BzLnBhdGggIT09IG5leHRQcm9wcy5wYXRoXG4gICAgICB8fCB0aGlzLnByb3BzLm1ldGhvZCAhPT0gbmV4dFByb3BzLm1ldGhvZFxuICAgICAgfHwgdGhpcy5wcm9wcy5kaXNwbGF5UmVxdWVzdER1cmF0aW9uICE9PSBuZXh0UHJvcHMuZGlzcGxheVJlcXVlc3REdXJhdGlvblxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgcmVzcG9uc2UsIGdldENvbXBvbmVudCwgZ2V0Q29uZmlncywgZGlzcGxheVJlcXVlc3REdXJhdGlvbiwgc3BlY1NlbGVjdG9ycywgcGF0aCwgbWV0aG9kIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgeyBzaG93TXV0YXRlZFJlcXVlc3QsIHJlcXVlc3RTbmlwcGV0c0VuYWJsZWQgfSA9IGdldENvbmZpZ3MoKVxuXG4gICAgY29uc3QgY3VybFJlcXVlc3QgPSBzaG93TXV0YXRlZFJlcXVlc3QgPyBzcGVjU2VsZWN0b3JzLm11dGF0ZWRSZXF1ZXN0Rm9yKHBhdGgsIG1ldGhvZCkgOiBzcGVjU2VsZWN0b3JzLnJlcXVlc3RGb3IocGF0aCwgbWV0aG9kKVxuICAgIGNvbnN0IHN0YXR1cyA9IHJlc3BvbnNlLmdldChcInN0YXR1c1wiKVxuICAgIGNvbnN0IHVybCA9IGN1cmxSZXF1ZXN0LmdldChcInVybFwiKVxuICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZS5nZXQoXCJoZWFkZXJzXCIpLnRvSlMoKVxuICAgIGNvbnN0IG5vdERvY3VtZW50ZWQgPSByZXNwb25zZS5nZXQoXCJub3REb2N1bWVudGVkXCIpXG4gICAgY29uc3QgaXNFcnJvciA9IHJlc3BvbnNlLmdldChcImVycm9yXCIpXG4gICAgY29uc3QgYm9keSA9IHJlc3BvbnNlLmdldChcInRleHRcIilcbiAgICBjb25zdCBkdXJhdGlvbiA9IHJlc3BvbnNlLmdldChcImR1cmF0aW9uXCIpXG4gICAgY29uc3QgaGVhZGVyc0tleXMgPSBPYmplY3Qua2V5cyhoZWFkZXJzKVxuICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSB8fCBoZWFkZXJzW1wiQ29udGVudC1UeXBlXCJdXG5cbiAgICBjb25zdCBSZXNwb25zZUJvZHkgPSBnZXRDb21wb25lbnQoXCJyZXNwb25zZUJvZHlcIilcbiAgICBjb25zdCByZXR1cm5PYmplY3QgPSBoZWFkZXJzS2V5cy5tYXAoa2V5ID0+IHtcbiAgICAgIHZhciBqb2luZWRIZWFkZXJzID0gQXJyYXkuaXNBcnJheShoZWFkZXJzW2tleV0pID8gaGVhZGVyc1trZXldLmpvaW4oKSA6IGhlYWRlcnNba2V5XVxuICAgICAgcmV0dXJuIDxzcGFuIGNsYXNzTmFtZT1cImhlYWRlcmxpbmVcIiBrZXk9e2tleX0+IHtrZXl9OiB7am9pbmVkSGVhZGVyc30gPC9zcGFuPlxuICAgIH0pXG4gICAgY29uc3QgaGFzSGVhZGVycyA9IHJldHVybk9iamVjdC5sZW5ndGggIT09IDBcbiAgICBjb25zdCBNYXJrZG93biA9IGdldENvbXBvbmVudChcIk1hcmtkb3duXCIsIHRydWUpXG4gICAgY29uc3QgUmVxdWVzdFNuaXBwZXRzID0gZ2V0Q29tcG9uZW50KFwiUmVxdWVzdFNuaXBwZXRzXCIsIHRydWUpXG4gICAgY29uc3QgQ3VybCA9IGdldENvbXBvbmVudChcImN1cmxcIiwgdHJ1ZSlcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICB7IGN1cmxSZXF1ZXN0ICYmIHJlcXVlc3RTbmlwcGV0c0VuYWJsZWQgXG4gICAgICAgICAgPyA8UmVxdWVzdFNuaXBwZXRzIHJlcXVlc3Q9eyBjdXJsUmVxdWVzdCB9Lz5cbiAgICAgICAgICA6IDxDdXJsIHJlcXVlc3Q9eyBjdXJsUmVxdWVzdCB9IC8+XG4gICAgICAgIH1cbiAgICAgICAgeyB1cmwgJiYgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVxdWVzdC11cmxcIj5cbiAgICAgICAgICAgICAgPGg0PlJlcXVlc3QgVVJMPC9oND5cbiAgICAgICAgICAgICAgPHByZSBjbGFzc05hbWU9XCJtaWNyb2xpZ2h0XCI+e3VybH08L3ByZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIDxoND5TZXJ2ZXIgcmVzcG9uc2U8L2g0PlxuICAgICAgICA8dGFibGUgY2xhc3NOYW1lPVwicmVzcG9uc2VzLXRhYmxlIGxpdmUtcmVzcG9uc2VzLXRhYmxlXCI+XG4gICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgIDx0ciBjbGFzc05hbWU9XCJyZXNwb25zZXMtaGVhZGVyXCI+XG4gICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwiY29sX2hlYWRlciByZXNwb25zZS1jb2xfc3RhdHVzXCI+Q29kZTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwiY29sX2hlYWRlciByZXNwb25zZS1jb2xfZGVzY3JpcHRpb25cIj5EZXRhaWxzPC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgPHRyIGNsYXNzTmFtZT1cInJlc3BvbnNlXCI+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJyZXNwb25zZS1jb2xfc3RhdHVzXCI+XG4gICAgICAgICAgICAgICAgeyBzdGF0dXMgfVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5vdERvY3VtZW50ZWQgPyA8ZGl2IGNsYXNzTmFtZT1cInJlc3BvbnNlLXVuZG9jdW1lbnRlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGk+IFVuZG9jdW1lbnRlZCA8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT1cInJlc3BvbnNlLWNvbF9kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGlzRXJyb3IgPyA8TWFya2Rvd24gc291cmNlPXtgJHtyZXNwb25zZS5nZXQoXCJuYW1lXCIpICE9PSBcIlwiID8gYCR7cmVzcG9uc2UuZ2V0KFwibmFtZVwiKX06IGAgOiBcIlwifSR7cmVzcG9uc2UuZ2V0KFwibWVzc2FnZVwiKX1gfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBib2R5ID8gPFJlc3BvbnNlQm9keSBjb250ZW50PXsgYm9keSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50VHlwZT17IGNvbnRlbnRUeXBlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybD17IHVybCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzPXsgaGVhZGVycyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDb25maWdzPXsgZ2V0Q29uZmlncyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9eyBnZXRDb21wb25lbnQgfS8+XG4gICAgICAgICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBoYXNIZWFkZXJzID8gPEhlYWRlcnMgaGVhZGVycz17IHJldHVybk9iamVjdCB9Lz4gOiBudWxsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXlSZXF1ZXN0RHVyYXRpb24gJiYgZHVyYXRpb24gPyA8RHVyYXRpb24gZHVyYXRpb249eyBkdXJhdGlvbiB9IC8+IDogbnVsbFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgVVJMIGZyb20gXCJ1cmwtcGFyc2VcIlxuXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCB7IHJlcXVpcmVzVmFsaWRhdGlvblVSTCB9IGZyb20gXCJjb3JlL3V0aWxzXCJcbmltcG9ydCB7IHNhbml0aXplVXJsIH0gZnJvbSBcImNvcmUvdXRpbHMvdXJsXCJcbmltcG9ydCB3aW4gZnJvbSBcImNvcmUvd2luZG93XCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT25saW5lVmFsaWRhdG9yQmFkZ2UgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBnZXRDb25maWdzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkXG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJvcHMsIGNvbnRleHQpIHtcbiAgICAgICAgc3VwZXIocHJvcHMsIGNvbnRleHQpXG4gICAgICAgIGxldCB7IGdldENvbmZpZ3MgfSA9IHByb3BzXG4gICAgICAgIGxldCB7IHZhbGlkYXRvclVybCB9ID0gZ2V0Q29uZmlncygpXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICB1cmw6IHRoaXMuZ2V0RGVmaW5pdGlvblVybCgpLFxuICAgICAgICAgICAgdmFsaWRhdG9yVXJsOiB2YWxpZGF0b3JVcmwgPT09IHVuZGVmaW5lZCA/IFwiaHR0cHM6Ly92YWxpZGF0b3Iuc3dhZ2dlci5pby92YWxpZGF0b3JcIiA6IHZhbGlkYXRvclVybFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RGVmaW5pdGlvblVybCA9ICgpID0+IHtcbiAgICAgIC8vIFRPRE86IHRlc3QgdGhpcyBiZWhhdmlvciBieSBzdHViYmluZyBgd2luZG93LmxvY2F0aW9uYCBpbiBhbiBFbnp5bWUvSlNEb20gZW52XG4gICAgICBsZXQgeyBzcGVjU2VsZWN0b3JzIH0gPSB0aGlzLnByb3BzXG5cbiAgICAgIGNvbnN0IHVybE9iamVjdCA9IG5ldyBVUkwoc3BlY1NlbGVjdG9ycy51cmwoKSwgd2luLmxvY2F0aW9uKVxuICAgICAgcmV0dXJuIHVybE9iamVjdC50b1N0cmluZygpXG4gICAgfVxuXG4gIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcykge1xuICAgICAgICBsZXQgeyBnZXRDb25maWdzIH0gPSBuZXh0UHJvcHNcbiAgICAgICAgbGV0IHsgdmFsaWRhdG9yVXJsIH0gPSBnZXRDb25maWdzKClcblxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHVybDogdGhpcy5nZXREZWZpbml0aW9uVXJsKCksXG4gICAgICAgICAgICB2YWxpZGF0b3JVcmw6IHZhbGlkYXRvclVybCA9PT0gdW5kZWZpbmVkID8gXCJodHRwczovL3ZhbGlkYXRvci5zd2FnZ2VyLmlvL3ZhbGlkYXRvclwiIDogdmFsaWRhdG9yVXJsXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICBsZXQgeyBnZXRDb25maWdzIH0gPSB0aGlzLnByb3BzXG4gICAgICAgIGxldCB7IHNwZWMgfSA9IGdldENvbmZpZ3MoKVxuXG4gICAgICAgIGxldCBzYW5pdGl6ZWRWYWxpZGF0b3JVcmwgPSBzYW5pdGl6ZVVybCh0aGlzLnN0YXRlLnZhbGlkYXRvclVybClcblxuICAgICAgICBpZiAoIHR5cGVvZiBzcGVjID09PSBcIm9iamVjdFwiICYmIE9iamVjdC5rZXlzKHNwZWMpLmxlbmd0aCkgcmV0dXJuIG51bGxcblxuICAgICAgICBpZiAoIXRoaXMuc3RhdGUudXJsIHx8ICFyZXF1aXJlc1ZhbGlkYXRpb25VUkwodGhpcy5zdGF0ZS52YWxpZGF0b3JVcmwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgIXJlcXVpcmVzVmFsaWRhdGlvblVSTCh0aGlzLnN0YXRlLnVybCkpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICg8c3BhbiBjbGFzc05hbWU9XCJmbG9hdC1yaWdodFwiPlxuICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiBocmVmPXtgJHsgc2FuaXRpemVkVmFsaWRhdG9yVXJsIH0vZGVidWc/dXJsPSR7IGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLnN0YXRlLnVybCkgfWB9PlxuICAgICAgICAgICAgICAgICAgICA8VmFsaWRhdG9ySW1hZ2Ugc3JjPXtgJHsgc2FuaXRpemVkVmFsaWRhdG9yVXJsIH0/dXJsPSR7IGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLnN0YXRlLnVybCkgfWB9IGFsdD1cIk9ubGluZSB2YWxpZGF0b3IgYmFkZ2VcIi8+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9zcGFuPilcbiAgICB9XG59XG5cblxuY2xhc3MgVmFsaWRhdG9ySW1hZ2UgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHNyYzogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBhbHQ6IFByb3BUeXBlcy5zdHJpbmdcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGxvYWRlZDogZmFsc2UsXG4gICAgICBlcnJvcjogZmFsc2VcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKVxuICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgbG9hZGVkOiB0cnVlXG4gICAgICB9KVxuICAgIH1cbiAgICBpbWcub25lcnJvciA9ICgpID0+IHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBlcnJvcjogdHJ1ZVxuICAgICAgfSlcbiAgICB9XG4gICAgaW1nLnNyYyA9IHRoaXMucHJvcHMuc3JjXG4gIH1cblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICBpZiAobmV4dFByb3BzLnNyYyAhPT0gdGhpcy5wcm9wcy5zcmMpIHtcbiAgICAgIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpXG4gICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBsb2FkZWQ6IHRydWVcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIGltZy5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBlcnJvcjogdHJ1ZVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgaW1nLnNyYyA9IG5leHRQcm9wcy5zcmNcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUuZXJyb3IpIHtcbiAgICAgIHJldHVybiA8aW1nIGFsdD17XCJFcnJvclwifSAvPlxuICAgIH0gZWxzZSBpZiAoIXRoaXMuc3RhdGUubG9hZGVkKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICByZXR1cm4gPGltZyBzcmM9e3RoaXMucHJvcHMuc3JjfSBhbHQ9e3RoaXMucHJvcHMuYWx0fSAvPlxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IEltIGZyb20gXCJpbW11dGFibGVcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBPcGVyYXRpb25zIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBzcGVjQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG9hczNBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9hczNTZWxlY3RvcnM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgbGF5b3V0U2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgbGF5b3V0QWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGF1dGhBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgYXV0aFNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGdldENvbmZpZ3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZm46IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQge1xuICAgICAgc3BlY1NlbGVjdG9ycyxcbiAgICB9ID0gdGhpcy5wcm9wc1xuXG4gICAgY29uc3QgdGFnZ2VkT3BzID0gc3BlY1NlbGVjdG9ycy50YWdnZWRPcGVyYXRpb25zKClcblxuICAgIGlmKHRhZ2dlZE9wcy5zaXplID09PSAwKSB7XG4gICAgICByZXR1cm4gPGgzPiBObyBvcGVyYXRpb25zIGRlZmluZWQgaW4gc3BlYyE8L2gzPlxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICB7IHRhZ2dlZE9wcy5tYXAodGhpcy5yZW5kZXJPcGVyYXRpb25UYWcpLnRvQXJyYXkoKSB9XG4gICAgICAgIHsgdGFnZ2VkT3BzLnNpemUgPCAxID8gPGgzPiBObyBvcGVyYXRpb25zIGRlZmluZWQgaW4gc3BlYyEgPC9oMz4gOiBudWxsIH1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIHJlbmRlck9wZXJhdGlvblRhZyA9ICh0YWdPYmosIHRhZykgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHNwZWNTZWxlY3RvcnMsXG4gICAgICBnZXRDb21wb25lbnQsXG4gICAgICBvYXMzU2VsZWN0b3JzLFxuICAgICAgbGF5b3V0U2VsZWN0b3JzLFxuICAgICAgbGF5b3V0QWN0aW9ucyxcbiAgICAgIGdldENvbmZpZ3MsXG4gICAgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB2YWxpZE9wZXJhdGlvbk1ldGhvZHMgPSBzcGVjU2VsZWN0b3JzLnZhbGlkT3BlcmF0aW9uTWV0aG9kcygpXG4gICAgY29uc3QgT3BlcmF0aW9uQ29udGFpbmVyID0gZ2V0Q29tcG9uZW50KFwiT3BlcmF0aW9uQ29udGFpbmVyXCIsIHRydWUpXG4gICAgY29uc3QgT3BlcmF0aW9uVGFnID0gZ2V0Q29tcG9uZW50KFwiT3BlcmF0aW9uVGFnXCIpXG4gICAgY29uc3Qgb3BlcmF0aW9ucyA9IHRhZ09iai5nZXQoXCJvcGVyYXRpb25zXCIpXG4gICAgcmV0dXJuIChcbiAgICAgIDxPcGVyYXRpb25UYWdcbiAgICAgICAga2V5PXtcIm9wZXJhdGlvbi1cIiArIHRhZ31cbiAgICAgICAgdGFnT2JqPXt0YWdPYmp9XG4gICAgICAgIHRhZz17dGFnfVxuICAgICAgICBvYXMzU2VsZWN0b3JzPXtvYXMzU2VsZWN0b3JzfVxuICAgICAgICBsYXlvdXRTZWxlY3RvcnM9e2xheW91dFNlbGVjdG9yc31cbiAgICAgICAgbGF5b3V0QWN0aW9ucz17bGF5b3V0QWN0aW9uc31cbiAgICAgICAgZ2V0Q29uZmlncz17Z2V0Q29uZmlnc31cbiAgICAgICAgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9XG4gICAgICAgIHNwZWNVcmw9e3NwZWNTZWxlY3RvcnMudXJsKCl9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm9wZXJhdGlvbi10YWctY29udGVudFwiPlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9wZXJhdGlvbnMubWFwKG9wID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IG9wLmdldChcInBhdGhcIilcbiAgICAgICAgICAgICAgY29uc3QgbWV0aG9kID0gb3AuZ2V0KFwibWV0aG9kXCIpXG4gICAgICAgICAgICAgIGNvbnN0IHNwZWNQYXRoID0gSW0uTGlzdChbXCJwYXRoc1wiLCBwYXRoLCBtZXRob2RdKVxuXG4gICAgICAgICAgICAgIGlmICh2YWxpZE9wZXJhdGlvbk1ldGhvZHMuaW5kZXhPZihtZXRob2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxPcGVyYXRpb25Db250YWluZXJcbiAgICAgICAgICAgICAgICAgIGtleT17YCR7cGF0aH0tJHttZXRob2R9YH1cbiAgICAgICAgICAgICAgICAgIHNwZWNQYXRoPXtzcGVjUGF0aH1cbiAgICAgICAgICAgICAgICAgIG9wPXtvcH1cbiAgICAgICAgICAgICAgICAgIHBhdGg9e3BhdGh9XG4gICAgICAgICAgICAgICAgICBtZXRob2Q9e21ldGhvZH1cbiAgICAgICAgICAgICAgICAgIHRhZz17dGFnfSAvPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KS50b0FycmF5KClcbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9PcGVyYXRpb25UYWc+XG4gICAgKVxuICB9XG5cbn1cblxuT3BlcmF0aW9ucy5wcm9wVHlwZXMgPSB7XG4gIGxheW91dEFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBzcGVjQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBsYXlvdXRTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBmbjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkXG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcbmltcG9ydCBJbSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCB7IGNyZWF0ZURlZXBMaW5rUGF0aCwgZXNjYXBlRGVlcExpbmtQYXRoLCBpc0Z1bmMgfSBmcm9tIFwiY29yZS91dGlsc1wiXG5pbXBvcnQgeyBzYWZlQnVpbGRVcmwsIHNhbml0aXplVXJsIH0gZnJvbSBcImNvcmUvdXRpbHMvdXJsXCJcblxuLyogZXNsaW50LWRpc2FibGUgIHJlYWN0L2pzeC1uby1iaW5kICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE9wZXJhdGlvblRhZyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICB0YWdPYmo6IEltLmZyb21KUyh7fSksXG4gICAgdGFnOiBcIlwiLFxuICB9XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICB0YWdPYmo6IEltUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICAgIHRhZzogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuXG4gICAgb2FzM1NlbGVjdG9yczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBsYXlvdXRTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBsYXlvdXRBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG5cbiAgICBnZXRDb25maWdzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcblxuICAgIHNwZWNVcmw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcblxuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMuZWxlbWVudCxcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB0YWdPYmosXG4gICAgICB0YWcsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIG9hczNTZWxlY3RvcnMsXG4gICAgICBsYXlvdXRTZWxlY3RvcnMsXG4gICAgICBsYXlvdXRBY3Rpb25zLFxuICAgICAgZ2V0Q29uZmlncyxcbiAgICAgIGdldENvbXBvbmVudCxcbiAgICAgIHNwZWNVcmwsXG4gICAgfSA9IHRoaXMucHJvcHNcblxuICAgIGxldCB7XG4gICAgICBkb2NFeHBhbnNpb24sXG4gICAgICBkZWVwTGlua2luZyxcbiAgICB9ID0gZ2V0Q29uZmlncygpXG5cbiAgICBjb25zdCBDb2xsYXBzZSA9IGdldENvbXBvbmVudChcIkNvbGxhcHNlXCIpXG4gICAgY29uc3QgTWFya2Rvd24gPSBnZXRDb21wb25lbnQoXCJNYXJrZG93blwiLCB0cnVlKVxuICAgIGNvbnN0IERlZXBMaW5rID0gZ2V0Q29tcG9uZW50KFwiRGVlcExpbmtcIilcbiAgICBjb25zdCBMaW5rID0gZ2V0Q29tcG9uZW50KFwiTGlua1wiKVxuICAgIGNvbnN0IEFycm93VXBJY29uID0gZ2V0Q29tcG9uZW50KFwiQXJyb3dVcEljb25cIilcbiAgICBjb25zdCBBcnJvd0Rvd25JY29uID0gZ2V0Q29tcG9uZW50KFwiQXJyb3dEb3duSWNvblwiKVxuXG4gICAgbGV0IHRhZ0Rlc2NyaXB0aW9uID0gdGFnT2JqLmdldEluKFtcInRhZ0RldGFpbHNcIiwgXCJkZXNjcmlwdGlvblwiXSwgbnVsbClcbiAgICBsZXQgdGFnRXh0ZXJuYWxEb2NzRGVzY3JpcHRpb24gPSB0YWdPYmouZ2V0SW4oW1widGFnRGV0YWlsc1wiLCBcImV4dGVybmFsRG9jc1wiLCBcImRlc2NyaXB0aW9uXCJdKVxuICAgIGxldCByYXdUYWdFeHRlcm5hbERvY3NVcmwgPSB0YWdPYmouZ2V0SW4oW1widGFnRGV0YWlsc1wiLCBcImV4dGVybmFsRG9jc1wiLCBcInVybFwiXSlcbiAgICBsZXQgdGFnRXh0ZXJuYWxEb2NzVXJsXG4gICAgaWYgKGlzRnVuYyhvYXMzU2VsZWN0b3JzKSAmJiBpc0Z1bmMob2FzM1NlbGVjdG9ycy5zZWxlY3RlZFNlcnZlcikpIHtcbiAgICAgIHRhZ0V4dGVybmFsRG9jc1VybCA9IHNhZmVCdWlsZFVybChyYXdUYWdFeHRlcm5hbERvY3NVcmwsIHNwZWNVcmwsIHsgc2VsZWN0ZWRTZXJ2ZXI6IG9hczNTZWxlY3RvcnMuc2VsZWN0ZWRTZXJ2ZXIoKSB9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0YWdFeHRlcm5hbERvY3NVcmwgPSByYXdUYWdFeHRlcm5hbERvY3NVcmxcbiAgICB9XG5cbiAgICBsZXQgaXNTaG93bktleSA9IFtcIm9wZXJhdGlvbnMtdGFnXCIsIHRhZ11cbiAgICBsZXQgc2hvd1RhZyA9IGxheW91dFNlbGVjdG9ycy5pc1Nob3duKGlzU2hvd25LZXksIGRvY0V4cGFuc2lvbiA9PT0gXCJmdWxsXCIgfHwgZG9jRXhwYW5zaW9uID09PSBcImxpc3RcIilcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c2hvd1RhZyA/IFwib3BibG9jay10YWctc2VjdGlvbiBpcy1vcGVuXCIgOiBcIm9wYmxvY2stdGFnLXNlY3Rpb25cIn0gPlxuXG4gICAgICAgIDxoM1xuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGxheW91dEFjdGlvbnMuc2hvdyhpc1Nob3duS2V5LCAhc2hvd1RhZyl9XG4gICAgICAgICAgY2xhc3NOYW1lPXshdGFnRGVzY3JpcHRpb24gPyBcIm9wYmxvY2stdGFnIG5vLWRlc2NcIiA6IFwib3BibG9jay10YWdcIn1cbiAgICAgICAgICBpZD17aXNTaG93bktleS5tYXAodiA9PiBlc2NhcGVEZWVwTGlua1BhdGgodikpLmpvaW4oXCItXCIpfVxuICAgICAgICAgIGRhdGEtdGFnPXt0YWd9XG4gICAgICAgICAgZGF0YS1pcy1vcGVuPXtzaG93VGFnfVxuICAgICAgICA+XG4gICAgICAgICAgPERlZXBMaW5rXG4gICAgICAgICAgICBlbmFibGVkPXtkZWVwTGlua2luZ31cbiAgICAgICAgICAgIGlzU2hvd249e3Nob3dUYWd9XG4gICAgICAgICAgICBwYXRoPXtjcmVhdGVEZWVwTGlua1BhdGgodGFnKX1cbiAgICAgICAgICAgIHRleHQ9e3RhZ30gLz5cbiAgICAgICAgICB7IXRhZ0Rlc2NyaXB0aW9uID8gPHNtYWxsPjwvc21hbGw+IDpcbiAgICAgICAgICAgIDxzbWFsbD5cbiAgICAgICAgICAgICAgPE1hcmtkb3duIHNvdXJjZT17dGFnRGVzY3JpcHRpb259IC8+XG4gICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgIH1cblxuICAgICAgICAgIHshdGFnRXh0ZXJuYWxEb2NzVXJsID8gbnVsbCA6XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9fX2V4dGVybmFsZG9jc1wiPlxuICAgICAgICAgICAgICA8c21hbGw+XG4gICAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICAgICAgaHJlZj17c2FuaXRpemVVcmwodGFnRXh0ZXJuYWxEb2NzVXJsKX1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICA+e3RhZ0V4dGVybmFsRG9jc0Rlc2NyaXB0aW9uIHx8IHRhZ0V4dGVybmFsRG9jc1VybH08L0xpbms+XG4gICAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG5cblxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e3Nob3dUYWd9XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJleHBhbmQtb3BlcmF0aW9uXCJcbiAgICAgICAgICAgIHRpdGxlPXtzaG93VGFnID8gXCJDb2xsYXBzZSBvcGVyYXRpb25cIiA6IFwiRXhwYW5kIG9wZXJhdGlvblwifVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gbGF5b3V0QWN0aW9ucy5zaG93KGlzU2hvd25LZXksICFzaG93VGFnKX0+XG5cbiAgICAgICAgICAgIHtzaG93VGFnID8gPEFycm93VXBJY29uIGNsYXNzTmFtZT1cImFycm93XCIgLz4gOiA8QXJyb3dEb3duSWNvbiBjbGFzc05hbWU9XCJhcnJvd1wiIC8+fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2gzPlxuXG4gICAgICAgIDxDb2xsYXBzZSBpc09wZW5lZD17c2hvd1RhZ30+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L0NvbGxhcHNlPlxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCB7IGdldEV4dGVuc2lvbnMsIGVzY2FwZURlZXBMaW5rUGF0aCwgZ2V0TGlzdCB9IGZyb20gXCJjb3JlL3V0aWxzXCJcbmltcG9ydCB7IHNhZmVCdWlsZFVybCwgc2FuaXRpemVVcmwgfSBmcm9tIFwiY29yZS91dGlscy91cmxcIlxuaW1wb3J0IHsgSXRlcmFibGUsIExpc3QgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5cbmltcG9ydCBSb2xsaW5nTG9hZFNWRyBmcm9tIFwiY29yZS9hc3NldHMvcm9sbGluZy1sb2FkLnN2Z1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE9wZXJhdGlvbiBleHRlbmRzIFB1cmVDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHNwZWNQYXRoOiBJbVByb3BUeXBlcy5saXN0LmlzUmVxdWlyZWQsXG4gICAgb3BlcmF0aW9uOiBQcm9wVHlwZXMuaW5zdGFuY2VPZihJdGVyYWJsZSkuaXNSZXF1aXJlZCxcbiAgICBzdW1tYXJ5OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHJlc3BvbnNlOiBQcm9wVHlwZXMuaW5zdGFuY2VPZihJdGVyYWJsZSksXG4gICAgcmVxdWVzdDogUHJvcFR5cGVzLmluc3RhbmNlT2YoSXRlcmFibGUpLFxuXG4gICAgdG9nZ2xlU2hvd246IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25UcnlvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblJlc2V0Q2xpY2s6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DYW5jZWxDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkV4ZWN1dGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG5cbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29uZmlnczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBhdXRoQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBhdXRoU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHNwZWNBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG9hczNBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgb2FzM1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGxheW91dEFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBsYXlvdXRTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBmbjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkXG4gIH1cblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIG9wZXJhdGlvbjogbnVsbCxcbiAgICByZXNwb25zZTogbnVsbCxcbiAgICByZXF1ZXN0OiBudWxsLFxuICAgIHNwZWNQYXRoOiBMaXN0KCksXG4gICAgc3VtbWFyeTogXCJcIlxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7XG4gICAgICBzcGVjUGF0aCxcbiAgICAgIHJlc3BvbnNlLFxuICAgICAgcmVxdWVzdCxcbiAgICAgIHRvZ2dsZVNob3duLFxuICAgICAgb25UcnlvdXRDbGljayxcbiAgICAgIG9uUmVzZXRDbGljayxcbiAgICAgIG9uQ2FuY2VsQ2xpY2ssXG4gICAgICBvbkV4ZWN1dGUsXG4gICAgICBmbixcbiAgICAgIGdldENvbXBvbmVudCxcbiAgICAgIGdldENvbmZpZ3MsXG4gICAgICBzcGVjQWN0aW9ucyxcbiAgICAgIHNwZWNTZWxlY3RvcnMsXG4gICAgICBhdXRoQWN0aW9ucyxcbiAgICAgIGF1dGhTZWxlY3RvcnMsXG4gICAgICBvYXMzQWN0aW9ucyxcbiAgICAgIG9hczNTZWxlY3RvcnNcbiAgICB9ID0gdGhpcy5wcm9wc1xuICAgIGxldCBvcGVyYXRpb25Qcm9wcyA9IHRoaXMucHJvcHMub3BlcmF0aW9uXG5cbiAgICBsZXQge1xuICAgICAgZGVwcmVjYXRlZCxcbiAgICAgIGlzU2hvd24sXG4gICAgICBwYXRoLFxuICAgICAgbWV0aG9kLFxuICAgICAgb3AsXG4gICAgICB0YWcsXG4gICAgICBvcGVyYXRpb25JZCxcbiAgICAgIGFsbG93VHJ5SXRPdXQsXG4gICAgICBkaXNwbGF5UmVxdWVzdER1cmF0aW9uLFxuICAgICAgdHJ5SXRPdXRFbmFibGVkLFxuICAgICAgZXhlY3V0ZUluUHJvZ3Jlc3NcbiAgICB9ID0gb3BlcmF0aW9uUHJvcHMudG9KUygpXG5cbiAgICBsZXQge1xuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBleHRlcm5hbERvY3MsXG4gICAgICBzY2hlbWVzXG4gICAgfSA9IG9wXG5cbiAgICBjb25zdCBleHRlcm5hbERvY3NVcmwgPSBleHRlcm5hbERvY3MgPyBzYWZlQnVpbGRVcmwoZXh0ZXJuYWxEb2NzLnVybCwgc3BlY1NlbGVjdG9ycy51cmwoKSwgeyBzZWxlY3RlZFNlcnZlcjogb2FzM1NlbGVjdG9ycy5zZWxlY3RlZFNlcnZlcigpIH0pIDogXCJcIlxuICAgIGxldCBvcGVyYXRpb24gPSBvcGVyYXRpb25Qcm9wcy5nZXRJbihbXCJvcFwiXSlcbiAgICBsZXQgcmVzcG9uc2VzID0gb3BlcmF0aW9uLmdldChcInJlc3BvbnNlc1wiKVxuICAgIGxldCBwYXJhbWV0ZXJzID0gZ2V0TGlzdChvcGVyYXRpb24sIFtcInBhcmFtZXRlcnNcIl0pXG4gICAgbGV0IG9wZXJhdGlvblNjaGVtZSA9IHNwZWNTZWxlY3RvcnMub3BlcmF0aW9uU2NoZW1lKHBhdGgsIG1ldGhvZClcbiAgICBsZXQgaXNTaG93bktleSA9IFtcIm9wZXJhdGlvbnNcIiwgdGFnLCBvcGVyYXRpb25JZF1cbiAgICBsZXQgZXh0ZW5zaW9ucyA9IGdldEV4dGVuc2lvbnMob3BlcmF0aW9uKVxuXG4gICAgY29uc3QgUmVzcG9uc2VzID0gZ2V0Q29tcG9uZW50KFwicmVzcG9uc2VzXCIpXG4gICAgY29uc3QgUGFyYW1ldGVycyA9IGdldENvbXBvbmVudCggXCJwYXJhbWV0ZXJzXCIgKVxuICAgIGNvbnN0IEV4ZWN1dGUgPSBnZXRDb21wb25lbnQoIFwiZXhlY3V0ZVwiIClcbiAgICBjb25zdCBDbGVhciA9IGdldENvbXBvbmVudCggXCJjbGVhclwiIClcbiAgICBjb25zdCBDb2xsYXBzZSA9IGdldENvbXBvbmVudCggXCJDb2xsYXBzZVwiIClcbiAgICBjb25zdCBNYXJrZG93biA9IGdldENvbXBvbmVudChcIk1hcmtkb3duXCIsIHRydWUpXG4gICAgY29uc3QgU2NoZW1lcyA9IGdldENvbXBvbmVudCggXCJzY2hlbWVzXCIgKVxuICAgIGNvbnN0IE9wZXJhdGlvblNlcnZlcnMgPSBnZXRDb21wb25lbnQoIFwiT3BlcmF0aW9uU2VydmVyc1wiIClcbiAgICBjb25zdCBPcGVyYXRpb25FeHQgPSBnZXRDb21wb25lbnQoIFwiT3BlcmF0aW9uRXh0XCIgKVxuICAgIGNvbnN0IE9wZXJhdGlvblN1bW1hcnkgPSBnZXRDb21wb25lbnQoIFwiT3BlcmF0aW9uU3VtbWFyeVwiIClcbiAgICBjb25zdCBMaW5rID0gZ2V0Q29tcG9uZW50KCBcIkxpbmtcIiApXG5cbiAgICBjb25zdCB7IHNob3dFeHRlbnNpb25zIH0gPSBnZXRDb25maWdzKClcblxuICAgIC8vIE1lcmdlIGluIExpdmUgUmVzcG9uc2VcbiAgICBpZihyZXNwb25zZXMgJiYgcmVzcG9uc2UgJiYgcmVzcG9uc2Uuc2l6ZSA+IDApIHtcbiAgICAgIGxldCBub3REb2N1bWVudGVkID0gIXJlc3BvbnNlcy5nZXQoU3RyaW5nKHJlc3BvbnNlLmdldChcInN0YXR1c1wiKSkpICYmICFyZXNwb25zZXMuZ2V0KFwiZGVmYXVsdFwiKVxuICAgICAgcmVzcG9uc2UgPSByZXNwb25zZS5zZXQoXCJub3REb2N1bWVudGVkXCIsIG5vdERvY3VtZW50ZWQpXG4gICAgfVxuXG4gICAgbGV0IG9uQ2hhbmdlS2V5ID0gWyBwYXRoLCBtZXRob2QgXSAvLyBVc2VkIHRvIGFkZCB2YWx1ZXMgdG8gX3RoaXNfIG9wZXJhdGlvbiAoIGluZGV4ZWQgYnkgcGF0aCBhbmQgbWV0aG9kIClcblxuICAgIGNvbnN0IHZhbGlkYXRpb25FcnJvcnMgPSBzcGVjU2VsZWN0b3JzLnZhbGlkYXRpb25FcnJvcnMoW3BhdGgsIG1ldGhvZF0pXG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17ZGVwcmVjYXRlZCA/IFwib3BibG9jayBvcGJsb2NrLWRlcHJlY2F0ZWRcIiA6IGlzU2hvd24gPyBgb3BibG9jayBvcGJsb2NrLSR7bWV0aG9kfSBpcy1vcGVuYCA6IGBvcGJsb2NrIG9wYmxvY2stJHttZXRob2R9YH0gaWQ9e2VzY2FwZURlZXBMaW5rUGF0aChpc1Nob3duS2V5LmpvaW4oXCItXCIpKX0gPlxuICAgICAgICAgIDxPcGVyYXRpb25TdW1tYXJ5IG9wZXJhdGlvblByb3BzPXtvcGVyYXRpb25Qcm9wc30gaXNTaG93bj17aXNTaG93bn0gdG9nZ2xlU2hvd249e3RvZ2dsZVNob3dufSBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH0gYXV0aEFjdGlvbnM9e2F1dGhBY3Rpb25zfSBhdXRoU2VsZWN0b3JzPXthdXRoU2VsZWN0b3JzfSBzcGVjUGF0aD17c3BlY1BhdGh9IC8+XG4gICAgICAgICAgPENvbGxhcHNlIGlzT3BlbmVkPXtpc1Nob3dufT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwib3BibG9jay1ib2R5XCI+XG4gICAgICAgICAgICAgIHsgKG9wZXJhdGlvbiAmJiBvcGVyYXRpb24uc2l6ZSkgfHwgb3BlcmF0aW9uID09PSBudWxsID8gbnVsbCA6XG4gICAgICAgICAgICAgICAgPFJvbGxpbmdMb2FkU1ZHIGhlaWdodD1cIjMycHhcIiB3aWR0aD1cIjMycHhcIiBjbGFzc05hbWU9XCJvcGJsb2NrLWxvYWRpbmctYW5pbWF0aW9uXCIgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB7IGRlcHJlY2F0ZWQgJiYgPGg0IGNsYXNzTmFtZT1cIm9wYmxvY2stdGl0bGVfbm9ybWFsXCI+IFdhcm5pbmc6IERlcHJlY2F0ZWQ8L2g0Pn1cbiAgICAgICAgICAgICAgeyBkZXNjcmlwdGlvbiAmJlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwib3BibG9jay1kZXNjcmlwdGlvbi13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm9wYmxvY2stZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPE1hcmtkb3duIHNvdXJjZT17IGRlc2NyaXB0aW9uIH0gLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBleHRlcm5hbERvY3NVcmwgP1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwib3BibG9jay1leHRlcm5hbC1kb2NzLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJvcGJsb2NrLXRpdGxlX25vcm1hbFwiPkZpbmQgbW9yZSBkZXRhaWxzPC9oND5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwib3BibG9jay1leHRlcm5hbC1kb2NzXCI+XG4gICAgICAgICAgICAgICAgICAgIHtleHRlcm5hbERvY3MuZGVzY3JpcHRpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJvcGJsb2NrLWV4dGVybmFsLWRvY3NfX2Rlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8TWFya2Rvd24gc291cmNlPXsgZXh0ZXJuYWxEb2NzLmRlc2NyaXB0aW9uIH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPExpbmsgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3NOYW1lPVwib3BibG9jay1leHRlcm5hbC1kb2NzX19saW5rXCIgaHJlZj17c2FuaXRpemVVcmwoZXh0ZXJuYWxEb2NzVXJsKX0+e2V4dGVybmFsRG9jc1VybH08L0xpbms+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj4gOiBudWxsXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB7ICFvcGVyYXRpb24gfHwgIW9wZXJhdGlvbi5zaXplID8gbnVsbCA6XG4gICAgICAgICAgICAgICAgPFBhcmFtZXRlcnNcbiAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM9e3BhcmFtZXRlcnN9XG4gICAgICAgICAgICAgICAgICBzcGVjUGF0aD17c3BlY1BhdGgucHVzaChcInBhcmFtZXRlcnNcIil9XG4gICAgICAgICAgICAgICAgICBvcGVyYXRpb249e29wZXJhdGlvbn1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlS2V5PXtvbkNoYW5nZUtleX1cbiAgICAgICAgICAgICAgICAgIG9uVHJ5b3V0Q2xpY2sgPSB7IG9uVHJ5b3V0Q2xpY2sgfVxuICAgICAgICAgICAgICAgICAgb25SZXNldENsaWNrID0geyBvblJlc2V0Q2xpY2sgfVxuICAgICAgICAgICAgICAgICAgb25DYW5jZWxDbGljayA9IHsgb25DYW5jZWxDbGljayB9XG4gICAgICAgICAgICAgICAgICB0cnlJdE91dEVuYWJsZWQgPSB7IHRyeUl0T3V0RW5hYmxlZCB9XG4gICAgICAgICAgICAgICAgICBhbGxvd1RyeUl0T3V0PXthbGxvd1RyeUl0T3V0fVxuXG4gICAgICAgICAgICAgICAgICBmbj17Zm59XG4gICAgICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9eyBnZXRDb21wb25lbnQgfVxuICAgICAgICAgICAgICAgICAgc3BlY0FjdGlvbnM9eyBzcGVjQWN0aW9ucyB9XG4gICAgICAgICAgICAgICAgICBzcGVjU2VsZWN0b3JzPXsgc3BlY1NlbGVjdG9ycyB9XG4gICAgICAgICAgICAgICAgICBwYXRoTWV0aG9kPXsgW3BhdGgsIG1ldGhvZF0gfVxuICAgICAgICAgICAgICAgICAgZ2V0Q29uZmlncz17IGdldENvbmZpZ3MgfVxuICAgICAgICAgICAgICAgICAgb2FzM0FjdGlvbnM9eyBvYXMzQWN0aW9ucyB9XG4gICAgICAgICAgICAgICAgICBvYXMzU2VsZWN0b3JzPXsgb2FzM1NlbGVjdG9ycyB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHsgIXRyeUl0T3V0RW5hYmxlZCA/IG51bGwgOlxuICAgICAgICAgICAgICAgIDxPcGVyYXRpb25TZXJ2ZXJzXG4gICAgICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgIHBhdGg9e3BhdGh9XG4gICAgICAgICAgICAgICAgICBtZXRob2Q9e21ldGhvZH1cbiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvblNlcnZlcnM9e29wZXJhdGlvbi5nZXQoXCJzZXJ2ZXJzXCIpfVxuICAgICAgICAgICAgICAgICAgcGF0aFNlcnZlcnM9e3NwZWNTZWxlY3RvcnMucGF0aHMoKS5nZXRJbihbcGF0aCwgXCJzZXJ2ZXJzXCJdKX1cbiAgICAgICAgICAgICAgICAgIGdldFNlbGVjdGVkU2VydmVyPXtvYXMzU2VsZWN0b3JzLnNlbGVjdGVkU2VydmVyfVxuICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRTZXJ2ZXI9e29hczNBY3Rpb25zLnNldFNlbGVjdGVkU2VydmVyfVxuICAgICAgICAgICAgICAgICAgc2V0U2VydmVyVmFyaWFibGVWYWx1ZT17b2FzM0FjdGlvbnMuc2V0U2VydmVyVmFyaWFibGVWYWx1ZX1cbiAgICAgICAgICAgICAgICAgIGdldFNlcnZlclZhcmlhYmxlPXtvYXMzU2VsZWN0b3JzLnNlcnZlclZhcmlhYmxlVmFsdWV9XG4gICAgICAgICAgICAgICAgICBnZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZT17b2FzM1NlbGVjdG9ycy5zZXJ2ZXJFZmZlY3RpdmVWYWx1ZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgeyF0cnlJdE91dEVuYWJsZWQgfHwgIWFsbG93VHJ5SXRPdXQgPyBudWxsIDogc2NoZW1lcyAmJiBzY2hlbWVzLnNpemUgPyA8ZGl2IGNsYXNzTmFtZT1cIm9wYmxvY2stc2NoZW1lc1wiPlxuICAgICAgICAgICAgICAgICAgICA8U2NoZW1lcyBzY2hlbWVzPXsgc2NoZW1lcyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg9eyBwYXRoIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kPXsgbWV0aG9kIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY0FjdGlvbnM9eyBzcGVjQWN0aW9ucyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTY2hlbWU9eyBvcGVyYXRpb25TY2hlbWUgfSAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+IDogbnVsbFxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgeyAhdHJ5SXRPdXRFbmFibGVkIHx8ICFhbGxvd1RyeUl0T3V0IHx8IHZhbGlkYXRpb25FcnJvcnMubGVuZ3RoIDw9IDAgPyBudWxsIDogPGRpdiBjbGFzc05hbWU9XCJ2YWxpZGF0aW9uLWVycm9ycyBlcnJvcnMtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgUGxlYXNlIGNvcnJlY3QgdGhlIGZvbGxvd2luZyB2YWxpZGF0aW9uIGVycm9ycyBhbmQgdHJ5IGFnYWluLlxuICAgICAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgICAgICB7IHZhbGlkYXRpb25FcnJvcnMubWFwKChlcnJvciwgaW5kZXgpID0+IDxsaSBrZXk9e2luZGV4fT4geyBlcnJvciB9IDwvbGk+KSB9XG4gICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsoIXRyeUl0T3V0RW5hYmxlZCB8fCAhcmVzcG9uc2UgfHwgIWFsbG93VHJ5SXRPdXQpID8gXCJleGVjdXRlLXdyYXBwZXJcIiA6IFwiYnRuLWdyb3VwXCJ9PlxuICAgICAgICAgICAgICB7ICF0cnlJdE91dEVuYWJsZWQgfHwgIWFsbG93VHJ5SXRPdXQgPyBudWxsIDpcblxuICAgICAgICAgICAgICAgICAgPEV4ZWN1dGVcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uPXsgb3BlcmF0aW9uIH1cbiAgICAgICAgICAgICAgICAgICAgc3BlY0FjdGlvbnM9eyBzcGVjQWN0aW9ucyB9XG4gICAgICAgICAgICAgICAgICAgIHNwZWNTZWxlY3RvcnM9eyBzcGVjU2VsZWN0b3JzIH1cbiAgICAgICAgICAgICAgICAgICAgb2FzM1NlbGVjdG9ycz17IG9hczNTZWxlY3RvcnMgfVxuICAgICAgICAgICAgICAgICAgICBvYXMzQWN0aW9ucz17IG9hczNBY3Rpb25zIH1cbiAgICAgICAgICAgICAgICAgICAgcGF0aD17IHBhdGggfVxuICAgICAgICAgICAgICAgICAgICBtZXRob2Q9eyBtZXRob2QgfVxuICAgICAgICAgICAgICAgICAgICBvbkV4ZWN1dGU9eyBvbkV4ZWN1dGUgfVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZXhlY3V0ZUluUHJvZ3Jlc3N9Lz5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHsgKCF0cnlJdE91dEVuYWJsZWQgfHwgIXJlc3BvbnNlIHx8ICFhbGxvd1RyeUl0T3V0KSA/IG51bGwgOlxuICAgICAgICAgICAgICAgICAgPENsZWFyXG4gICAgICAgICAgICAgICAgICAgIHNwZWNBY3Rpb25zPXsgc3BlY0FjdGlvbnMgfVxuICAgICAgICAgICAgICAgICAgICBwYXRoPXsgcGF0aCB9XG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZD17IG1ldGhvZCB9Lz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIHtleGVjdXRlSW5Qcm9ncmVzcyA/IDxkaXYgY2xhc3NOYW1lPVwibG9hZGluZy1jb250YWluZXJcIj48ZGl2IGNsYXNzTmFtZT1cImxvYWRpbmdcIj48L2Rpdj48L2Rpdj4gOiBudWxsfVxuXG4gICAgICAgICAgICAgIHsgIXJlc3BvbnNlcyA/IG51bGwgOlxuICAgICAgICAgICAgICAgICAgPFJlc3BvbnNlc1xuICAgICAgICAgICAgICAgICAgICByZXNwb25zZXM9eyByZXNwb25zZXMgfVxuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0PXsgcmVxdWVzdCB9XG4gICAgICAgICAgICAgICAgICAgIHRyeUl0T3V0UmVzcG9uc2U9eyByZXNwb25zZSB9XG4gICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudD17IGdldENvbXBvbmVudCB9XG4gICAgICAgICAgICAgICAgICAgIGdldENvbmZpZ3M9eyBnZXRDb25maWdzIH1cbiAgICAgICAgICAgICAgICAgICAgc3BlY1NlbGVjdG9ycz17IHNwZWNTZWxlY3RvcnMgfVxuICAgICAgICAgICAgICAgICAgICBvYXMzQWN0aW9ucz17b2FzM0FjdGlvbnN9XG4gICAgICAgICAgICAgICAgICAgIG9hczNTZWxlY3RvcnM9e29hczNTZWxlY3RvcnN9XG4gICAgICAgICAgICAgICAgICAgIHNwZWNBY3Rpb25zPXsgc3BlY0FjdGlvbnMgfVxuICAgICAgICAgICAgICAgICAgICBwcm9kdWNlcz17c3BlY1NlbGVjdG9ycy5wcm9kdWNlc09wdGlvbnNGb3IoW3BhdGgsIG1ldGhvZF0pIH1cbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjZXNWYWx1ZT17IHNwZWNTZWxlY3RvcnMuY3VycmVudFByb2R1Y2VzRm9yKFtwYXRoLCBtZXRob2RdKSB9XG4gICAgICAgICAgICAgICAgICAgIHNwZWNQYXRoPXtzcGVjUGF0aC5wdXNoKFwicmVzcG9uc2VzXCIpfVxuICAgICAgICAgICAgICAgICAgICBwYXRoPXsgcGF0aCB9XG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZD17IG1ldGhvZCB9XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlSZXF1ZXN0RHVyYXRpb249eyBkaXNwbGF5UmVxdWVzdER1cmF0aW9uIH1cbiAgICAgICAgICAgICAgICAgICAgZm49e2ZufSAvPlxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgeyAhc2hvd0V4dGVuc2lvbnMgfHwgIWV4dGVuc2lvbnMuc2l6ZSA/IG51bGwgOlxuICAgICAgICAgICAgICAgIDxPcGVyYXRpb25FeHQgZXh0ZW5zaW9ucz17IGV4dGVuc2lvbnMgfSBnZXRDb21wb25lbnQ9eyBnZXRDb21wb25lbnQgfSAvPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L0NvbGxhcHNlPlxuICAgICAgICA8L2Rpdj5cbiAgICApXG4gIH1cblxufVxuIiwiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuaW1wb3J0IHsgb3BJZCB9IGZyb20gXCJzd2FnZ2VyLWNsaWVudC9lcy9oZWxwZXJzXCJcbmltcG9ydCB7IEl0ZXJhYmxlLCBmcm9tSlMsIE1hcCB9IGZyb20gXCJpbW11dGFibGVcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBPcGVyYXRpb25Db250YWluZXIgZXh0ZW5kcyBQdXJlQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMsIGNvbnRleHQpIHtcbiAgICBzdXBlcihwcm9wcywgY29udGV4dClcblxuICAgIGNvbnN0IHsgdHJ5SXRPdXRFbmFibGVkIH0gPSBwcm9wcy5nZXRDb25maWdzKClcblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICB0cnlJdE91dEVuYWJsZWQsXG4gICAgICBleGVjdXRlSW5Qcm9ncmVzczogZmFsc2VcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIG9wOiBQcm9wVHlwZXMuaW5zdGFuY2VPZihJdGVyYWJsZSkuaXNSZXF1aXJlZCxcbiAgICB0YWc6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBwYXRoOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgbWV0aG9kOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgb3BlcmF0aW9uSWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBzaG93U3VtbWFyeTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBpc1Nob3duOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIGp1bXBUb0tleTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIGFsbG93VHJ5SXRPdXQ6IFByb3BUeXBlcy5ib29sLFxuICAgIGRpc3BsYXlPcGVyYXRpb25JZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNBdXRob3JpemVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5UmVxdWVzdER1cmF0aW9uOiBQcm9wVHlwZXMuYm9vbCxcbiAgICByZXNwb25zZTogUHJvcFR5cGVzLmluc3RhbmNlT2YoSXRlcmFibGUpLFxuICAgIHJlcXVlc3Q6IFByb3BUeXBlcy5pbnN0YW5jZU9mKEl0ZXJhYmxlKSxcbiAgICBzZWN1cml0eTogUHJvcFR5cGVzLmluc3RhbmNlT2YoSXRlcmFibGUpLFxuICAgIGlzRGVlcExpbmtpbmdFbmFibGVkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIHNwZWNQYXRoOiBJbVByb3BUeXBlcy5saXN0LmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGF1dGhBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIG9hczNBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIG9hczNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgYXV0aFNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBzcGVjQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBsYXlvdXRBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgbGF5b3V0U2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZm46IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBnZXRDb25maWdzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG4gIH1cblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIHNob3dTdW1tYXJ5OiB0cnVlLFxuICAgIHJlc3BvbnNlOiBudWxsLFxuICAgIGFsbG93VHJ5SXRPdXQ6IHRydWUsXG4gICAgZGlzcGxheU9wZXJhdGlvbklkOiBmYWxzZSxcbiAgICBkaXNwbGF5UmVxdWVzdER1cmF0aW9uOiBmYWxzZVxuICB9XG5cbiAgbWFwU3RhdGVUb1Byb3BzKG5leHRTdGF0ZSwgcHJvcHMpIHtcbiAgICBjb25zdCB7IG9wLCBsYXlvdXRTZWxlY3RvcnMsIGdldENvbmZpZ3MgfSA9IHByb3BzXG4gICAgY29uc3QgeyBkb2NFeHBhbnNpb24sIGRlZXBMaW5raW5nLCBkaXNwbGF5T3BlcmF0aW9uSWQsIGRpc3BsYXlSZXF1ZXN0RHVyYXRpb24sIHN1cHBvcnRlZFN1Ym1pdE1ldGhvZHMgfSA9IGdldENvbmZpZ3MoKVxuICAgIGNvbnN0IHNob3dTdW1tYXJ5ID0gbGF5b3V0U2VsZWN0b3JzLnNob3dTdW1tYXJ5KClcbiAgICBjb25zdCBvcGVyYXRpb25JZCA9IG9wLmdldEluKFtcIm9wZXJhdGlvblwiLCBcIl9fb3JpZ2luYWxPcGVyYXRpb25JZFwiXSkgfHwgb3AuZ2V0SW4oW1wib3BlcmF0aW9uXCIsIFwib3BlcmF0aW9uSWRcIl0pIHx8IG9wSWQob3AuZ2V0KFwib3BlcmF0aW9uXCIpLCBwcm9wcy5wYXRoLCBwcm9wcy5tZXRob2QpIHx8IG9wLmdldChcImlkXCIpXG4gICAgY29uc3QgaXNTaG93bktleSA9IFtcIm9wZXJhdGlvbnNcIiwgcHJvcHMudGFnLCBvcGVyYXRpb25JZF1cbiAgICBjb25zdCBhbGxvd1RyeUl0T3V0ID0gc3VwcG9ydGVkU3VibWl0TWV0aG9kcy5pbmRleE9mKHByb3BzLm1ldGhvZCkgPj0gMCAmJiAodHlwZW9mIHByb3BzLmFsbG93VHJ5SXRPdXQgPT09IFwidW5kZWZpbmVkXCIgP1xuICAgICAgcHJvcHMuc3BlY1NlbGVjdG9ycy5hbGxvd1RyeUl0T3V0Rm9yKHByb3BzLnBhdGgsIHByb3BzLm1ldGhvZCkgOiBwcm9wcy5hbGxvd1RyeUl0T3V0KVxuICAgIGNvbnN0IHNlY3VyaXR5ID0gb3AuZ2V0SW4oW1wib3BlcmF0aW9uXCIsIFwic2VjdXJpdHlcIl0pIHx8IHByb3BzLnNwZWNTZWxlY3RvcnMuc2VjdXJpdHkoKVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG9wZXJhdGlvbklkLFxuICAgICAgaXNEZWVwTGlua2luZ0VuYWJsZWQ6IGRlZXBMaW5raW5nLFxuICAgICAgc2hvd1N1bW1hcnksXG4gICAgICBkaXNwbGF5T3BlcmF0aW9uSWQsXG4gICAgICBkaXNwbGF5UmVxdWVzdER1cmF0aW9uLFxuICAgICAgYWxsb3dUcnlJdE91dCxcbiAgICAgIHNlY3VyaXR5LFxuICAgICAgaXNBdXRob3JpemVkOiBwcm9wcy5hdXRoU2VsZWN0b3JzLmlzQXV0aG9yaXplZChzZWN1cml0eSksXG4gICAgICBpc1Nob3duOiBsYXlvdXRTZWxlY3RvcnMuaXNTaG93bihpc1Nob3duS2V5LCBkb2NFeHBhbnNpb24gPT09IFwiZnVsbFwiICksXG4gICAgICBqdW1wVG9LZXk6IGBwYXRocy4ke3Byb3BzLnBhdGh9LiR7cHJvcHMubWV0aG9kfWAsXG4gICAgICByZXNwb25zZTogcHJvcHMuc3BlY1NlbGVjdG9ycy5yZXNwb25zZUZvcihwcm9wcy5wYXRoLCBwcm9wcy5tZXRob2QpLFxuICAgICAgcmVxdWVzdDogcHJvcHMuc3BlY1NlbGVjdG9ycy5yZXF1ZXN0Rm9yKHByb3BzLnBhdGgsIHByb3BzLm1ldGhvZClcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzU2hvd24gfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCByZXNvbHZlZFN1YnRyZWUgPSB0aGlzLmdldFJlc29sdmVkU3VidHJlZSgpXG5cbiAgICBpZihpc1Nob3duICYmIHJlc29sdmVkU3VidHJlZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnJlcXVlc3RSZXNvbHZlZFN1YnRyZWUoKVxuICAgIH1cbiAgfVxuXG4gIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcykge1xuICAgIGNvbnN0IHsgcmVzcG9uc2UsIGlzU2hvd24gfSA9IG5leHRQcm9wc1xuICAgIGNvbnN0IHJlc29sdmVkU3VidHJlZSA9IHRoaXMuZ2V0UmVzb2x2ZWRTdWJ0cmVlKClcblxuICAgIGlmKHJlc3BvbnNlICE9PSB0aGlzLnByb3BzLnJlc3BvbnNlKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgZXhlY3V0ZUluUHJvZ3Jlc3M6IGZhbHNlIH0pXG4gICAgfVxuXG4gICAgaWYoaXNTaG93biAmJiByZXNvbHZlZFN1YnRyZWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKClcbiAgICB9XG4gIH1cblxuICB0b2dnbGVTaG93biA9KCkgPT4ge1xuICAgIGxldCB7IGxheW91dEFjdGlvbnMsIHRhZywgb3BlcmF0aW9uSWQsIGlzU2hvd24gfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCByZXNvbHZlZFN1YnRyZWUgPSB0aGlzLmdldFJlc29sdmVkU3VidHJlZSgpXG4gICAgaWYoIWlzU2hvd24gJiYgcmVzb2x2ZWRTdWJ0cmVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIHRyYW5zaXRpb25pbmcgZnJvbSBjb2xsYXBzZWQgdG8gZXhwYW5kZWRcbiAgICAgIHRoaXMucmVxdWVzdFJlc29sdmVkU3VidHJlZSgpXG4gICAgfVxuICAgIGxheW91dEFjdGlvbnMuc2hvdyhbXCJvcGVyYXRpb25zXCIsIHRhZywgb3BlcmF0aW9uSWRdLCAhaXNTaG93bilcbiAgfVxuXG4gIG9uQ2FuY2VsQ2xpY2s9KCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoe3RyeUl0T3V0RW5hYmxlZDogIXRoaXMuc3RhdGUudHJ5SXRPdXRFbmFibGVkfSlcbiAgfVxuXG4gIG9uVHJ5b3V0Q2xpY2sgPSgpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHt0cnlJdE91dEVuYWJsZWQ6ICF0aGlzLnN0YXRlLnRyeUl0T3V0RW5hYmxlZH0pXG4gIH1cblxuICBvblJlc2V0Q2xpY2sgPSAocGF0aE1ldGhvZCkgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlID0gdGhpcy5wcm9wcy5vYXMzU2VsZWN0b3JzLnNlbGVjdERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlKC4uLnBhdGhNZXRob2QpXG4gICAgdGhpcy5wcm9wcy5vYXMzQWN0aW9ucy5zZXRSZXF1ZXN0Qm9keVZhbHVlKHsgdmFsdWU6IGRlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlLCBwYXRoTWV0aG9kIH0pXG4gIH1cblxuICBvbkV4ZWN1dGUgPSAoKSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGV4ZWN1dGVJblByb2dyZXNzOiB0cnVlIH0pXG4gIH1cblxuICBnZXRSZXNvbHZlZFN1YnRyZWUgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgc3BlY1NlbGVjdG9ycyxcbiAgICAgIHBhdGgsXG4gICAgICBtZXRob2QsXG4gICAgICBzcGVjUGF0aFxuICAgIH0gPSB0aGlzLnByb3BzXG5cbiAgICBpZihzcGVjUGF0aCkge1xuICAgICAgcmV0dXJuIHNwZWNTZWxlY3RvcnMuc3BlY1Jlc29sdmVkU3VidHJlZShzcGVjUGF0aC50b0pTKCkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHNwZWNTZWxlY3RvcnMuc3BlY1Jlc29sdmVkU3VidHJlZShbXCJwYXRoc1wiLCBwYXRoLCBtZXRob2RdKVxuICB9XG5cbiAgcmVxdWVzdFJlc29sdmVkU3VidHJlZSA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBzcGVjQWN0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBtZXRob2QsXG4gICAgICBzcGVjUGF0aFxuICAgIH0gPSB0aGlzLnByb3BzXG5cblxuICAgIGlmKHNwZWNQYXRoKSB7XG4gICAgICByZXR1cm4gc3BlY0FjdGlvbnMucmVxdWVzdFJlc29sdmVkU3VidHJlZShzcGVjUGF0aC50b0pTKCkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHNwZWNBY3Rpb25zLnJlcXVlc3RSZXNvbHZlZFN1YnRyZWUoW1wicGF0aHNcIiwgcGF0aCwgbWV0aG9kXSlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQge1xuICAgICAgb3A6IHVucmVzb2x2ZWRPcCxcbiAgICAgIHRhZyxcbiAgICAgIHBhdGgsXG4gICAgICBtZXRob2QsXG4gICAgICBzZWN1cml0eSxcbiAgICAgIGlzQXV0aG9yaXplZCxcbiAgICAgIG9wZXJhdGlvbklkLFxuICAgICAgc2hvd1N1bW1hcnksXG4gICAgICBpc1Nob3duLFxuICAgICAganVtcFRvS2V5LFxuICAgICAgYWxsb3dUcnlJdE91dCxcbiAgICAgIHJlc3BvbnNlLFxuICAgICAgcmVxdWVzdCxcbiAgICAgIGRpc3BsYXlPcGVyYXRpb25JZCxcbiAgICAgIGRpc3BsYXlSZXF1ZXN0RHVyYXRpb24sXG4gICAgICBpc0RlZXBMaW5raW5nRW5hYmxlZCxcbiAgICAgIHNwZWNQYXRoLFxuICAgICAgc3BlY1NlbGVjdG9ycyxcbiAgICAgIHNwZWNBY3Rpb25zLFxuICAgICAgZ2V0Q29tcG9uZW50LFxuICAgICAgZ2V0Q29uZmlncyxcbiAgICAgIGxheW91dFNlbGVjdG9ycyxcbiAgICAgIGxheW91dEFjdGlvbnMsXG4gICAgICBhdXRoQWN0aW9ucyxcbiAgICAgIGF1dGhTZWxlY3RvcnMsXG4gICAgICBvYXMzQWN0aW9ucyxcbiAgICAgIG9hczNTZWxlY3RvcnMsXG4gICAgICBmblxuICAgIH0gPSB0aGlzLnByb3BzXG5cbiAgICBjb25zdCBPcGVyYXRpb24gPSBnZXRDb21wb25lbnQoIFwib3BlcmF0aW9uXCIgKVxuXG4gICAgY29uc3QgcmVzb2x2ZWRTdWJ0cmVlID0gdGhpcy5nZXRSZXNvbHZlZFN1YnRyZWUoKSB8fCBNYXAoKVxuXG4gICAgY29uc3Qgb3BlcmF0aW9uUHJvcHMgPSBmcm9tSlMoe1xuICAgICAgb3A6IHJlc29sdmVkU3VidHJlZSxcbiAgICAgIHRhZyxcbiAgICAgIHBhdGgsXG4gICAgICBzdW1tYXJ5OiB1bnJlc29sdmVkT3AuZ2V0SW4oW1wib3BlcmF0aW9uXCIsIFwic3VtbWFyeVwiXSkgfHwgXCJcIixcbiAgICAgIGRlcHJlY2F0ZWQ6IHJlc29sdmVkU3VidHJlZS5nZXQoXCJkZXByZWNhdGVkXCIpIHx8IHVucmVzb2x2ZWRPcC5nZXRJbihbXCJvcGVyYXRpb25cIiwgXCJkZXByZWNhdGVkXCJdKSB8fCBmYWxzZSxcbiAgICAgIG1ldGhvZCxcbiAgICAgIHNlY3VyaXR5LFxuICAgICAgaXNBdXRob3JpemVkLFxuICAgICAgb3BlcmF0aW9uSWQsXG4gICAgICBvcmlnaW5hbE9wZXJhdGlvbklkOiByZXNvbHZlZFN1YnRyZWUuZ2V0SW4oW1wib3BlcmF0aW9uXCIsIFwiX19vcmlnaW5hbE9wZXJhdGlvbklkXCJdKSxcbiAgICAgIHNob3dTdW1tYXJ5LFxuICAgICAgaXNTaG93bixcbiAgICAgIGp1bXBUb0tleSxcbiAgICAgIGFsbG93VHJ5SXRPdXQsXG4gICAgICByZXF1ZXN0LFxuICAgICAgZGlzcGxheU9wZXJhdGlvbklkLFxuICAgICAgZGlzcGxheVJlcXVlc3REdXJhdGlvbixcbiAgICAgIGlzRGVlcExpbmtpbmdFbmFibGVkLFxuICAgICAgZXhlY3V0ZUluUHJvZ3Jlc3M6IHRoaXMuc3RhdGUuZXhlY3V0ZUluUHJvZ3Jlc3MsXG4gICAgICB0cnlJdE91dEVuYWJsZWQ6IHRoaXMuc3RhdGUudHJ5SXRPdXRFbmFibGVkXG4gICAgfSlcblxuICAgIHJldHVybiAoXG4gICAgICA8T3BlcmF0aW9uXG4gICAgICAgIG9wZXJhdGlvbj17b3BlcmF0aW9uUHJvcHN9XG4gICAgICAgIHJlc3BvbnNlPXtyZXNwb25zZX1cbiAgICAgICAgcmVxdWVzdD17cmVxdWVzdH1cbiAgICAgICAgaXNTaG93bj17aXNTaG93bn1cblxuICAgICAgICB0b2dnbGVTaG93bj17dGhpcy50b2dnbGVTaG93bn1cbiAgICAgICAgb25UcnlvdXRDbGljaz17dGhpcy5vblRyeW91dENsaWNrfVxuICAgICAgICBvblJlc2V0Q2xpY2s9e3RoaXMub25SZXNldENsaWNrfVxuICAgICAgICBvbkNhbmNlbENsaWNrPXt0aGlzLm9uQ2FuY2VsQ2xpY2t9XG4gICAgICAgIG9uRXhlY3V0ZT17dGhpcy5vbkV4ZWN1dGV9XG4gICAgICAgIHNwZWNQYXRoPXtzcGVjUGF0aH1cblxuICAgICAgICBzcGVjQWN0aW9ucz17IHNwZWNBY3Rpb25zIH1cbiAgICAgICAgc3BlY1NlbGVjdG9ycz17IHNwZWNTZWxlY3RvcnMgfVxuICAgICAgICBvYXMzQWN0aW9ucz17b2FzM0FjdGlvbnN9XG4gICAgICAgIG9hczNTZWxlY3RvcnM9e29hczNTZWxlY3RvcnN9XG4gICAgICAgIGxheW91dEFjdGlvbnM9eyBsYXlvdXRBY3Rpb25zIH1cbiAgICAgICAgbGF5b3V0U2VsZWN0b3JzPXsgbGF5b3V0U2VsZWN0b3JzIH1cbiAgICAgICAgYXV0aEFjdGlvbnM9eyBhdXRoQWN0aW9ucyB9XG4gICAgICAgIGF1dGhTZWxlY3RvcnM9eyBhdXRoU2VsZWN0b3JzIH1cbiAgICAgICAgZ2V0Q29tcG9uZW50PXsgZ2V0Q29tcG9uZW50IH1cbiAgICAgICAgZ2V0Q29uZmlncz17IGdldENvbmZpZ3MgfVxuICAgICAgICBmbj17Zm59XG4gICAgICAvPlxuICAgIClcbiAgfVxuXG59XG4iLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfbG9kYXNoX3RvU3RyaW5nX2RhOTMxZjA1X19bXCJkZWZhdWx0XCJdOyB9IH0pOyIsImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHsgSXRlcmFibGUsIExpc3QgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5pbXBvcnQgdG9TdHJpbmcgZnJvbSBcImxvZGFzaC90b1N0cmluZ1wiXG5cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT3BlcmF0aW9uU3VtbWFyeSBleHRlbmRzIFB1cmVDb21wb25lbnQge1xuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgc3BlY1BhdGg6IEltUHJvcFR5cGVzLmxpc3QuaXNSZXF1aXJlZCxcbiAgICBvcGVyYXRpb25Qcm9wczogUHJvcFR5cGVzLmluc3RhbmNlT2YoSXRlcmFibGUpLmlzUmVxdWlyZWQsXG4gICAgaXNTaG93bjogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICB0b2dnbGVTaG93bjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29uZmlnczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBhdXRoQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBhdXRoU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LFxuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBvcGVyYXRpb25Qcm9wczogbnVsbCxcbiAgICBzcGVjUGF0aDogTGlzdCgpLFxuICAgIHN1bW1hcnk6IFwiXCJcbiAgfVxuXG4gIHJlbmRlcigpIHtcblxuICAgIGxldCB7XG4gICAgICBpc1Nob3duLFxuICAgICAgdG9nZ2xlU2hvd24sXG4gICAgICBnZXRDb21wb25lbnQsXG4gICAgICBhdXRoQWN0aW9ucyxcbiAgICAgIGF1dGhTZWxlY3RvcnMsXG4gICAgICBvcGVyYXRpb25Qcm9wcyxcbiAgICAgIHNwZWNQYXRoLFxuICAgIH0gPSB0aGlzLnByb3BzXG5cbiAgICBsZXQge1xuICAgICAgc3VtbWFyeSxcbiAgICAgIGlzQXV0aG9yaXplZCxcbiAgICAgIG1ldGhvZCxcbiAgICAgIG9wLFxuICAgICAgc2hvd1N1bW1hcnksXG4gICAgICBwYXRoLFxuICAgICAgb3BlcmF0aW9uSWQsXG4gICAgICBvcmlnaW5hbE9wZXJhdGlvbklkLFxuICAgICAgZGlzcGxheU9wZXJhdGlvbklkLFxuICAgIH0gPSBvcGVyYXRpb25Qcm9wcy50b0pTKClcblxuICAgIGxldCB7XG4gICAgICBzdW1tYXJ5OiByZXNvbHZlZFN1bW1hcnksXG4gICAgfSA9IG9wXG5cbiAgICBsZXQgc2VjdXJpdHkgPSBvcGVyYXRpb25Qcm9wcy5nZXQoXCJzZWN1cml0eVwiKVxuXG4gICAgY29uc3QgQXV0aG9yaXplT3BlcmF0aW9uQnRuID0gZ2V0Q29tcG9uZW50KFwiYXV0aG9yaXplT3BlcmF0aW9uQnRuXCIsIHRydWUpXG4gICAgY29uc3QgT3BlcmF0aW9uU3VtbWFyeU1ldGhvZCA9IGdldENvbXBvbmVudChcIk9wZXJhdGlvblN1bW1hcnlNZXRob2RcIilcbiAgICBjb25zdCBPcGVyYXRpb25TdW1tYXJ5UGF0aCA9IGdldENvbXBvbmVudChcIk9wZXJhdGlvblN1bW1hcnlQYXRoXCIpXG4gICAgY29uc3QgSnVtcFRvUGF0aCA9IGdldENvbXBvbmVudChcIkp1bXBUb1BhdGhcIiwgdHJ1ZSlcbiAgICBjb25zdCBDb3B5VG9DbGlwYm9hcmRCdG4gPSBnZXRDb21wb25lbnQoXCJDb3B5VG9DbGlwYm9hcmRCdG5cIiwgdHJ1ZSlcbiAgICBjb25zdCBBcnJvd1VwSWNvbiA9IGdldENvbXBvbmVudChcIkFycm93VXBJY29uXCIpXG4gICAgY29uc3QgQXJyb3dEb3duSWNvbiA9IGdldENvbXBvbmVudChcIkFycm93RG93bkljb25cIilcblxuICAgIGNvbnN0IGhhc1NlY3VyaXR5ID0gc2VjdXJpdHkgJiYgISFzZWN1cml0eS5jb3VudCgpXG4gICAgY29uc3Qgc2VjdXJpdHlJc09wdGlvbmFsID0gaGFzU2VjdXJpdHkgJiYgc2VjdXJpdHkuc2l6ZSA9PT0gMSAmJiBzZWN1cml0eS5maXJzdCgpLmlzRW1wdHkoKVxuICAgIGNvbnN0IGFsbG93QW5vbnltb3VzID0gIWhhc1NlY3VyaXR5IHx8IHNlY3VyaXR5SXNPcHRpb25hbFxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YG9wYmxvY2stc3VtbWFyeSBvcGJsb2NrLXN1bW1hcnktJHttZXRob2R9YH0gPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17aXNTaG93bn1cbiAgICAgICAgICBjbGFzc05hbWU9XCJvcGJsb2NrLXN1bW1hcnktY29udHJvbFwiXG4gICAgICAgICAgb25DbGljaz17dG9nZ2xlU2hvd259XG4gICAgICAgID5cbiAgICAgICAgICA8T3BlcmF0aW9uU3VtbWFyeU1ldGhvZCBtZXRob2Q9e21ldGhvZH0gLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm9wYmxvY2stc3VtbWFyeS1wYXRoLWRlc2NyaXB0aW9uLXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxPcGVyYXRpb25TdW1tYXJ5UGF0aCBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH0gb3BlcmF0aW9uUHJvcHM9e29wZXJhdGlvblByb3BzfSBzcGVjUGF0aD17c3BlY1BhdGh9IC8+XG5cbiAgICAgICAgICAgIHshc2hvd1N1bW1hcnkgPyBudWxsIDpcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJvcGJsb2NrLXN1bW1hcnktZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICB7dG9TdHJpbmcocmVzb2x2ZWRTdW1tYXJ5IHx8IHN1bW1hcnkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIHtkaXNwbGF5T3BlcmF0aW9uSWQgJiYgKG9yaWdpbmFsT3BlcmF0aW9uSWQgfHwgb3BlcmF0aW9uSWQpID8gPHNwYW4gY2xhc3NOYW1lPVwib3BibG9jay1zdW1tYXJ5LW9wZXJhdGlvbi1pZFwiPntvcmlnaW5hbE9wZXJhdGlvbklkIHx8IG9wZXJhdGlvbklkfTwvc3Bhbj4gOiBudWxsfVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPENvcHlUb0NsaXBib2FyZEJ0biB0ZXh0VG9Db3B5PXtgJHtzcGVjUGF0aC5nZXQoMSl9YH0gLz5cbiAgICAgICAge1xuICAgICAgICAgIGFsbG93QW5vbnltb3VzID8gbnVsbCA6XG4gICAgICAgICAgICA8QXV0aG9yaXplT3BlcmF0aW9uQnRuXG4gICAgICAgICAgICAgIGlzQXV0aG9yaXplZD17aXNBdXRob3JpemVkfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXBwbGljYWJsZURlZmluaXRpb25zID0gYXV0aFNlbGVjdG9ycy5kZWZpbml0aW9uc0ZvclJlcXVpcmVtZW50cyhzZWN1cml0eSlcbiAgICAgICAgICAgICAgICBhdXRoQWN0aW9ucy5zaG93RGVmaW5pdGlvbnMoYXBwbGljYWJsZURlZmluaXRpb25zKVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgICA8SnVtcFRvUGF0aCBwYXRoPXtzcGVjUGF0aH0gLz57LyogVE9ETzogdXNlIHdyYXBDb21wb25lbnRzIGhlcmUsIHN3YWdnZXItdWkgZG9lc24ndCBjYXJlIGFib3V0IGp1bXBUb1BhdGggKi99XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhcmlhLWxhYmVsPXtgJHttZXRob2R9ICR7cGF0aC5yZXBsYWNlKC9cXC8vZywgXCJcXHUyMDBiL1wiKX1gfVxuICAgICAgICAgIGNsYXNzTmFtZT1cIm9wYmxvY2stY29udHJvbC1hcnJvd1wiXG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17aXNTaG93bn1cbiAgICAgICAgICB0YWJJbmRleD1cIi0xXCJcbiAgICAgICAgICBvbkNsaWNrPXt0b2dnbGVTaG93bn0+XG4gICAgICAgICAge2lzU2hvd24gPyA8QXJyb3dVcEljb24gY2xhc3NOYW1lPVwiYXJyb3dcIiAvPiA6IDxBcnJvd0Rvd25JY29uIGNsYXNzTmFtZT1cImFycm93XCIgLz59XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCB7IEl0ZXJhYmxlIH0gZnJvbSBcImltbXV0YWJsZVwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE9wZXJhdGlvblN1bW1hcnlNZXRob2QgZXh0ZW5kcyBQdXJlQ29tcG9uZW50IHtcblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIG9wZXJhdGlvblByb3BzOiBQcm9wVHlwZXMuaW5zdGFuY2VPZihJdGVyYWJsZSkuaXNSZXF1aXJlZCxcbiAgICBtZXRob2Q6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfVxuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgb3BlcmF0aW9uUHJvcHM6IG51bGwsXG4gIH1cbiAgcmVuZGVyKCkge1xuXG4gICAgbGV0IHtcbiAgICAgIG1ldGhvZCxcbiAgICB9ID0gdGhpcy5wcm9wc1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm9wYmxvY2stc3VtbWFyeS1tZXRob2RcIj57bWV0aG9kLnRvVXBwZXJDYXNlKCl9PC9zcGFuPlxuICAgIClcbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgeyBJdGVyYWJsZSB9IGZyb20gXCJpbW11dGFibGVcIlxuaW1wb3J0IHsgY3JlYXRlRGVlcExpbmtQYXRoIH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT3BlcmF0aW9uU3VtbWFyeVBhdGggZXh0ZW5kcyBQdXJlQ29tcG9uZW50e1xuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgc3BlY1BhdGg6IEltUHJvcFR5cGVzLmxpc3QuaXNSZXF1aXJlZCxcbiAgICBvcGVyYXRpb25Qcm9wczogUHJvcFR5cGVzLmluc3RhbmNlT2YoSXRlcmFibGUpLmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB9XG5cbiAgcmVuZGVyKCl7XG4gICAgbGV0IHtcbiAgICAgIGdldENvbXBvbmVudCxcbiAgICAgIG9wZXJhdGlvblByb3BzLFxuICAgIH0gPSB0aGlzLnByb3BzXG5cblxuICAgIGxldCB7XG4gICAgICBkZXByZWNhdGVkLFxuICAgICAgaXNTaG93bixcbiAgICAgIHBhdGgsXG4gICAgICB0YWcsXG4gICAgICBvcGVyYXRpb25JZCxcbiAgICAgIGlzRGVlcExpbmtpbmdFbmFibGVkLFxuICAgIH0gPSBvcGVyYXRpb25Qcm9wcy50b0pTKClcblxuICAgIC8qKlxuICAgICAqIEFkZCA8d2JyPiB3b3JkLWJyZWFrIGVsZW1lbnRzIGJldHdlZW4gZWFjaCBzZWdtZW50LCBiZWZvcmUgdGhlIHNsYXNoXG4gICAgICogdG8gYWxsb3cgYnJvd3NlcnMgYW4gb3Bwb3J0dW5pdHkgdG8gYnJlYWsgbG9uZyBwYXRocyBpbnRvIHNlbnNpYmxlIHNlZ21lbnRzLlxuICAgICAqL1xuICAgIGNvbnN0IHBhdGhQYXJ0cyA9IHBhdGguc3BsaXQoLyg/PVxcLykvZylcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IHBhdGhQYXJ0cy5sZW5ndGg7IGkgKz0gMikge1xuICAgICAgcGF0aFBhcnRzLnNwbGljZShpLCAwLCA8d2JyIGtleT17aX0gLz4pXG4gICAgfVxuXG4gICAgY29uc3QgRGVlcExpbmsgPSBnZXRDb21wb25lbnQoIFwiRGVlcExpbmtcIiApXG5cbiAgICByZXR1cm4oXG4gICAgICA8c3BhbiBjbGFzc05hbWU9eyBkZXByZWNhdGVkID8gXCJvcGJsb2NrLXN1bW1hcnktcGF0aF9fZGVwcmVjYXRlZFwiIDogXCJvcGJsb2NrLXN1bW1hcnktcGF0aFwiIH1cbiAgICAgICAgZGF0YS1wYXRoPXtwYXRofT5cbiAgICAgICAgPERlZXBMaW5rXG4gICAgICAgICAgICBlbmFibGVkPXtpc0RlZXBMaW5raW5nRW5hYmxlZH1cbiAgICAgICAgICAgIGlzU2hvd249e2lzU2hvd259XG4gICAgICAgICAgICBwYXRoPXtjcmVhdGVEZWVwTGlua1BhdGgoYCR7dGFnfS8ke29wZXJhdGlvbklkfWApfVxuICAgICAgICAgICAgdGV4dD17cGF0aFBhcnRzfSAvPlxuICAgICAgPC9zcGFuPlxuXG4gICAgKVxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5leHBvcnQgY29uc3QgT3BlcmF0aW9uRXh0ID0gKHsgZXh0ZW5zaW9ucywgZ2V0Q29tcG9uZW50IH0pID0+IHtcbiAgICBsZXQgT3BlcmF0aW9uRXh0Um93ID0gZ2V0Q29tcG9uZW50KFwiT3BlcmF0aW9uRXh0Um93XCIpXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwib3BibG9jay1zZWN0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwib3BibG9jay1zZWN0aW9uLWhlYWRlclwiPlxuICAgICAgICAgIDxoND5FeHRlbnNpb25zPC9oND5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGFibGUtY29udGFpbmVyXCI+XG5cbiAgICAgICAgICA8dGFibGU+XG4gICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwiY29sX2hlYWRlclwiPkZpZWxkPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwiY29sX2hlYWRlclwiPlZhbHVlPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25zLmVudHJ5U2VxKCkubWFwKChbaywgdl0pID0+IDxPcGVyYXRpb25FeHRSb3cga2V5PXtgJHtrfS0ke3Z9YH0geEtleT17a30geFZhbD17dn0gLz4pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIClcbn1cbk9wZXJhdGlvbkV4dC5wcm9wVHlwZXMgPSB7XG4gIGV4dGVuc2lvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG59XG5cbmV4cG9ydCBkZWZhdWx0IE9wZXJhdGlvbkV4dFxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuZXhwb3J0IGNvbnN0IE9wZXJhdGlvbkV4dFJvdyA9ICh7IHhLZXksIHhWYWwgfSkgPT4ge1xuICBjb25zdCB4Tm9ybWFsaXplZFZhbHVlID0gIXhWYWwgPyBudWxsIDogeFZhbC50b0pTID8geFZhbC50b0pTKCkgOiB4VmFsXG5cbiAgICByZXR1cm4gKDx0cj5cbiAgICAgICAgPHRkPnsgeEtleSB9PC90ZD5cbiAgICAgICAgPHRkPnsgSlNPTi5zdHJpbmdpZnkoeE5vcm1hbGl6ZWRWYWx1ZSkgfTwvdGQ+XG4gICAgPC90cj4pXG59XG5PcGVyYXRpb25FeHRSb3cucHJvcFR5cGVzID0ge1xuICB4S2V5OiBQcm9wVHlwZXMuc3RyaW5nLFxuICB4VmFsOiBQcm9wVHlwZXMuYW55XG59XG5cbmV4cG9ydCBkZWZhdWx0IE9wZXJhdGlvbkV4dFJvd1xuIiwiLyoqXG4gKiBSZXBsYWNlIGludmFsaWQgY2hhcmFjdGVycyBmcm9tIGEgc3RyaW5nIHRvIGNyZWF0ZSBhbiBodG1sLXJlYWR5IElEXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGlkIEEgc3RyaW5nIHRoYXQgbWF5IGNvbnRhaW4gaW52YWxpZCBjaGFyYWN0ZXJzIGZvciB0aGUgSFRNTCBJRCBhdHRyaWJ1dGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBbcmVwbGFjZW1lbnQ9X10gVGhlIHN0cmluZyB0byByZXBsYWNlIGludmFsaWQgY2hhcmFjdGVycyB3aXRoOyBcIl9cIiBieSBkZWZhdWx0XG4gKiBAcmV0dXJuIHtzdHJpbmd9IEluZm9ybWF0aW9uIGFib3V0IHRoZSBwYXJhbWV0ZXIgc2NoZW1hXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUh0bWxSZWFkeUlkKGlkLCByZXBsYWNlbWVudCA9IFwiX1wiKSB7XG4gIHJldHVybiBpZC5yZXBsYWNlKC9bXlxcdy1dL2csIHJlcGxhY2VtZW50KVxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBmcm9tSlMsIEl0ZXJhYmxlIH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5pbXBvcnQgeyBkZWZhdWx0U3RhdHVzQ29kZSwgZ2V0QWNjZXB0Q29udHJvbGxpbmdSZXNwb25zZSB9IGZyb20gXCJjb3JlL3V0aWxzXCJcbmltcG9ydCBjcmVhdGVIdG1sUmVhZHlJZCBmcm9tIFwiY29yZS91dGlscy9jcmVhdGUtaHRtbC1yZWFkeS1pZFwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlc3BvbnNlcyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgdHJ5SXRPdXRSZXNwb25zZTogUHJvcFR5cGVzLmluc3RhbmNlT2YoSXRlcmFibGUpLFxuICAgIHJlc3BvbnNlczogUHJvcFR5cGVzLmluc3RhbmNlT2YoSXRlcmFibGUpLmlzUmVxdWlyZWQsXG4gICAgcHJvZHVjZXM6IFByb3BUeXBlcy5pbnN0YW5jZU9mKEl0ZXJhYmxlKSxcbiAgICBwcm9kdWNlc1ZhbHVlOiBQcm9wVHlwZXMuYW55LFxuICAgIGRpc3BsYXlSZXF1ZXN0RHVyYXRpb246IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgcGF0aDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIG1ldGhvZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBnZXRDb25maWdzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBzcGVjQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG9hczNBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgb2FzM1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHNwZWNQYXRoOiBJbVByb3BUeXBlcy5saXN0LmlzUmVxdWlyZWQsXG4gICAgZm46IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZFxuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICB0cnlJdE91dFJlc3BvbnNlOiBudWxsLFxuICAgIHByb2R1Y2VzOiBmcm9tSlMoW1wiYXBwbGljYXRpb24vanNvblwiXSksXG4gICAgZGlzcGxheVJlcXVlc3REdXJhdGlvbjogZmFsc2VcbiAgfVxuXG4gIC8vIFRoZXNlIHBlcmZvcm1hbmNlLWVuaGFuY2luZyBjaGVja3Mgd2VyZSBkaXNhYmxlZCBhcyBwYXJ0IG9mIE11bHRpcGxlIEV4YW1wbGVzXG4gIC8vIGJlY2F1c2UgdGhleSB3ZXJlIGNhdXNpbmcgZGF0YS1jb25zaXN0ZW5jeSBpc3N1ZXNcbiAgLy9cbiAgLy8gc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5leHRQcm9wcykge1xuICAvLyAgIC8vIEJVRzogcHJvcHMudHJ5SXRPdXRSZXNwb25zZSBpcyBhbHdheXMgY29taW5nIGJhY2sgYXMgYSBuZXcgSW1tdXRhYmxlIGluc3RhbmNlXG4gIC8vICAgbGV0IHJlbmRlciA9IHRoaXMucHJvcHMudHJ5SXRPdXRSZXNwb25zZSAhPT0gbmV4dFByb3BzLnRyeUl0T3V0UmVzcG9uc2VcbiAgLy8gICB8fCB0aGlzLnByb3BzLnJlc3BvbnNlcyAhPT0gbmV4dFByb3BzLnJlc3BvbnNlc1xuICAvLyAgIHx8IHRoaXMucHJvcHMucHJvZHVjZXMgIT09IG5leHRQcm9wcy5wcm9kdWNlc1xuICAvLyAgIHx8IHRoaXMucHJvcHMucHJvZHVjZXNWYWx1ZSAhPT0gbmV4dFByb3BzLnByb2R1Y2VzVmFsdWVcbiAgLy8gICB8fCB0aGlzLnByb3BzLmRpc3BsYXlSZXF1ZXN0RHVyYXRpb24gIT09IG5leHRQcm9wcy5kaXNwbGF5UmVxdWVzdER1cmF0aW9uXG4gIC8vICAgfHwgdGhpcy5wcm9wcy5wYXRoICE9PSBuZXh0UHJvcHMucGF0aFxuICAvLyAgIHx8IHRoaXMucHJvcHMubWV0aG9kICE9PSBuZXh0UHJvcHMubWV0aG9kXG4gIC8vICAgcmV0dXJuIHJlbmRlclxuICAvLyB9XG5cblx0b25DaGFuZ2VQcm9kdWNlc1dyYXBwZXIgPSAoIHZhbCApID0+IHRoaXMucHJvcHMuc3BlY0FjdGlvbnMuY2hhbmdlUHJvZHVjZXNWYWx1ZShbdGhpcy5wcm9wcy5wYXRoLCB0aGlzLnByb3BzLm1ldGhvZF0sIHZhbClcblxuICBvblJlc3BvbnNlQ29udGVudFR5cGVDaGFuZ2UgPSAoeyBjb250cm9sc0FjY2VwdEhlYWRlciwgdmFsdWUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb2FzM0FjdGlvbnMsIHBhdGgsIG1ldGhvZCB9ID0gdGhpcy5wcm9wc1xuICAgIGlmKGNvbnRyb2xzQWNjZXB0SGVhZGVyKSB7XG4gICAgICBvYXMzQWN0aW9ucy5zZXRSZXNwb25zZUNvbnRlbnRUeXBlKHtcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIHBhdGgsXG4gICAgICAgIG1ldGhvZFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHtcbiAgICAgIHJlc3BvbnNlcyxcbiAgICAgIHRyeUl0T3V0UmVzcG9uc2UsXG4gICAgICBnZXRDb21wb25lbnQsXG4gICAgICBnZXRDb25maWdzLFxuICAgICAgc3BlY1NlbGVjdG9ycyxcbiAgICAgIGZuLFxuICAgICAgcHJvZHVjZXNWYWx1ZSxcbiAgICAgIGRpc3BsYXlSZXF1ZXN0RHVyYXRpb24sXG4gICAgICBzcGVjUGF0aCxcbiAgICAgIHBhdGgsXG4gICAgICBtZXRob2QsXG4gICAgICBvYXMzU2VsZWN0b3JzLFxuICAgICAgb2FzM0FjdGlvbnMsXG4gICAgfSA9IHRoaXMucHJvcHNcbiAgICBsZXQgZGVmYXVsdENvZGUgPSBkZWZhdWx0U3RhdHVzQ29kZSggcmVzcG9uc2VzIClcblxuICAgIGNvbnN0IENvbnRlbnRUeXBlID0gZ2V0Q29tcG9uZW50KCBcImNvbnRlbnRUeXBlXCIgKVxuICAgIGNvbnN0IExpdmVSZXNwb25zZSA9IGdldENvbXBvbmVudCggXCJsaXZlUmVzcG9uc2VcIiApXG4gICAgY29uc3QgUmVzcG9uc2UgPSBnZXRDb21wb25lbnQoIFwicmVzcG9uc2VcIiApXG5cbiAgICBsZXQgcHJvZHVjZXMgPSB0aGlzLnByb3BzLnByb2R1Y2VzICYmIHRoaXMucHJvcHMucHJvZHVjZXMuc2l6ZSA/IHRoaXMucHJvcHMucHJvZHVjZXMgOiBSZXNwb25zZXMuZGVmYXVsdFByb3BzLnByb2R1Y2VzXG5cbiAgICBjb25zdCBpc1NwZWNPQVMzID0gc3BlY1NlbGVjdG9ycy5pc09BUzMoKVxuXG4gICAgY29uc3QgYWNjZXB0Q29udHJvbGxpbmdSZXNwb25zZSA9IGlzU3BlY09BUzMgP1xuICAgICAgZ2V0QWNjZXB0Q29udHJvbGxpbmdSZXNwb25zZShyZXNwb25zZXMpIDogbnVsbFxuXG4gICAgY29uc3QgcmVnaW9uSWQgPSBjcmVhdGVIdG1sUmVhZHlJZChgJHttZXRob2R9JHtwYXRofV9yZXNwb25zZXNgKVxuICAgIGNvbnN0IGNvbnRyb2xJZCA9IGAke3JlZ2lvbklkfV9zZWxlY3RgXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZXNwb25zZXMtd3JhcHBlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm9wYmxvY2stc2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgICA8aDQ+UmVzcG9uc2VzPC9oND5cbiAgICAgICAgICAgIHsgc3BlY1NlbGVjdG9ycy5pc09BUzMoKSA/IG51bGwgOiA8bGFiZWwgaHRtbEZvcj17Y29udHJvbElkfT5cbiAgICAgICAgICAgICAgPHNwYW4+UmVzcG9uc2UgY29udGVudCB0eXBlPC9zcGFuPlxuICAgICAgICAgICAgICA8Q29udGVudFR5cGUgdmFsdWU9e3Byb2R1Y2VzVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgYXJpYUNvbnRyb2xzPXtyZWdpb25JZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhTGFiZWw9XCJSZXNwb25zZSBjb250ZW50IHR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImV4ZWN1dGUtY29udGVudC10eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50VHlwZXM9e3Byb2R1Y2VzfVxuICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xJZD17Y29udHJvbElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlUHJvZHVjZXNXcmFwcGVyfSAvPlxuICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4gfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZXNwb25zZXMtaW5uZXJcIj5cbiAgICAgICAgICB7XG4gICAgICAgICAgICAhdHJ5SXRPdXRSZXNwb25zZSA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGl2ZVJlc3BvbnNlIHJlc3BvbnNlPXsgdHJ5SXRPdXRSZXNwb25zZSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9eyBnZXRDb21wb25lbnQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29uZmlncz17IGdldENvbmZpZ3MgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY1NlbGVjdG9ycz17IHNwZWNTZWxlY3RvcnMgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aD17IHRoaXMucHJvcHMucGF0aCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q9eyB0aGlzLnByb3BzLm1ldGhvZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5UmVxdWVzdER1cmF0aW9uPXsgZGlzcGxheVJlcXVlc3REdXJhdGlvbiB9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlJlc3BvbnNlczwvaDQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPHRhYmxlIGFyaWEtbGl2ZT1cInBvbGl0ZVwiIGNsYXNzTmFtZT1cInJlc3BvbnNlcy10YWJsZVwiIGlkPXtyZWdpb25JZH0gcm9sZT1cInJlZ2lvblwiPlxuICAgICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgICA8dHIgY2xhc3NOYW1lPVwicmVzcG9uc2VzLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJjb2xfaGVhZGVyIHJlc3BvbnNlLWNvbF9zdGF0dXNcIj5Db2RlPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwiY29sX2hlYWRlciByZXNwb25zZS1jb2xfZGVzY3JpcHRpb25cIj5EZXNjcmlwdGlvbjwvdGQ+XG4gICAgICAgICAgICAgICAgeyBzcGVjU2VsZWN0b3JzLmlzT0FTMygpID8gPHRkIGNsYXNzTmFtZT1cImNvbCBjb2xfaGVhZGVyIHJlc3BvbnNlLWNvbF9saW5rc1wiPkxpbmtzPC90ZD4gOiBudWxsIH1cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZXNwb25zZXMuZW50cnlTZXEoKS5tYXAoIChbY29kZSwgcmVzcG9uc2VdKSA9PiB7XG5cbiAgICAgICAgICAgICAgICAgIGxldCBjbGFzc05hbWUgPSB0cnlJdE91dFJlc3BvbnNlICYmIHRyeUl0T3V0UmVzcG9uc2UuZ2V0KFwic3RhdHVzXCIpID09IGNvZGUgPyBcInJlc3BvbnNlX2N1cnJlbnRcIiA6IFwiXCJcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxSZXNwb25zZSBrZXk9eyBjb2RlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg9e3BhdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q9e21ldGhvZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNQYXRoPXtzcGVjUGF0aC5wdXNoKGNvZGUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0PXtkZWZhdWx0Q29kZSA9PT0gY29kZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZuPXtmbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17IGNsYXNzTmFtZSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlPXsgY29kZSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZT17IHJlc3BvbnNlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNTZWxlY3RvcnM9eyBzcGVjU2VsZWN0b3JzIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzQWNjZXB0SGVhZGVyPXtyZXNwb25zZSA9PT0gYWNjZXB0Q29udHJvbGxpbmdSZXNwb25zZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ29udGVudFR5cGVDaGFuZ2U9e3RoaXMub25SZXNwb25zZUNvbnRlbnRUeXBlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudFR5cGU9eyBwcm9kdWNlc1ZhbHVlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbmZpZ3M9eyBnZXRDb25maWdzIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZUV4YW1wbGVzS2V5PXtvYXMzU2VsZWN0b3JzLmFjdGl2ZUV4YW1wbGVzTWVtYmVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVzcG9uc2VzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYXMzQWN0aW9ucz17b2FzM0FjdGlvbnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9eyBnZXRDb21wb25lbnQgfS8+XG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9KS50b0FycmF5KClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuIiwiZXhwb3J0IGZ1bmN0aW9uIGNhbkpzb25QYXJzZShzdHIpIHtcbiAgdHJ5IHtcbiAgICBsZXQgdGVzdFZhbHVlRm9ySnNvbiA9IEpTT04ucGFyc2Uoc3RyKVxuICAgIHJldHVybiB0ZXN0VmFsdWVGb3JKc29uID8gdHJ1ZSA6IGZhbHNlXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyBleGNlcHRpb246IHN0cmluZyBpcyBub3QgdmFsaWQganNvblxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEtub3duU3ludGF4SGlnaGxpZ2h0ZXJMYW5ndWFnZSh2YWwpIHtcbiAgLy8gdG8gc3RhcnQsIG9ubHkgY2hlY2sgZm9yIGpzb24uIGNhbiBleHBhbmQgYXMgbmVlZGVkIGluIGZ1dHVyZVxuICBjb25zdCBpc1ZhbGlkSnNvbiA9IGNhbkpzb25QYXJzZSh2YWwpXG4gIHJldHVybiBpc1ZhbGlkSnNvbiA/IFwianNvblwiIDogbnVsbFxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5pbXBvcnQgY3ggZnJvbSBcImNsYXNzbmFtZXNcIlxuaW1wb3J0IHsgZnJvbUpTLCBTZXEsIEl0ZXJhYmxlLCBMaXN0LCBNYXAgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCB7IGdldEV4dGVuc2lvbnMsIGZyb21KU09yZGVyZWQsIHN0cmluZ2lmeSB9IGZyb20gXCJjb3JlL3V0aWxzXCJcbmltcG9ydCB7IGdldEtub3duU3ludGF4SGlnaGxpZ2h0ZXJMYW5ndWFnZSB9IGZyb20gXCJjb3JlL3V0aWxzL2pzb25QYXJzZVwiXG5cblxuY29uc3QgZ2V0RXhhbXBsZUNvbXBvbmVudCA9ICggc2FtcGxlUmVzcG9uc2UsIEhpZ2hsaWdodENvZGUgKSA9PiB7XG4gIGlmIChzYW1wbGVSZXNwb25zZSA9PSBudWxsKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IHRlc3RWYWx1ZUZvckpzb24gPSBnZXRLbm93blN5bnRheEhpZ2hsaWdodGVyTGFuZ3VhZ2Uoc2FtcGxlUmVzcG9uc2UpXG4gIGNvbnN0IGxhbmd1YWdlID0gdGVzdFZhbHVlRm9ySnNvbiA/IFwianNvblwiIDogbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIDxIaWdobGlnaHRDb2RlIGNsYXNzTmFtZT1cImV4YW1wbGVcIiBsYW5ndWFnZT17bGFuZ3VhZ2V9PntzdHJpbmdpZnkoc2FtcGxlUmVzcG9uc2UpfTwvSGlnaGxpZ2h0Q29kZT5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZXNwb25zZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzLCBjb250ZXh0KSB7XG4gICAgc3VwZXIocHJvcHMsIGNvbnRleHQpXG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgcmVzcG9uc2VDb250ZW50VHlwZTogXCJcIixcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHBhdGg6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBtZXRob2Q6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBjb2RlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgcmVzcG9uc2U6IFByb3BUeXBlcy5pbnN0YW5jZU9mKEl0ZXJhYmxlKSxcbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGdldENvbmZpZ3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG9hczNBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgc3BlY1BhdGg6IEltUHJvcFR5cGVzLmxpc3QuaXNSZXF1aXJlZCxcbiAgICBmbjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGNvbnRlbnRUeXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGFjdGl2ZUV4YW1wbGVzS2V5OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbnRyb2xzQWNjZXB0SGVhZGVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBvbkNvbnRlbnRUeXBlQ2hhbmdlOiBQcm9wVHlwZXMuZnVuY1xuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICByZXNwb25zZTogZnJvbUpTKHt9KSxcbiAgICBvbkNvbnRlbnRUeXBlQ2hhbmdlOiAoKSA9PiB7fVxuICB9XG5cbiAgX29uQ29udGVudFR5cGVDaGFuZ2UgPSAodmFsdWUpID0+IHtcbiAgICBjb25zdCB7IG9uQ29udGVudFR5cGVDaGFuZ2UsIGNvbnRyb2xzQWNjZXB0SGVhZGVyIH0gPSB0aGlzLnByb3BzXG4gICAgdGhpcy5zZXRTdGF0ZSh7IHJlc3BvbnNlQ29udGVudFR5cGU6IHZhbHVlIH0pXG4gICAgb25Db250ZW50VHlwZUNoYW5nZSh7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBjb250cm9sc0FjY2VwdEhlYWRlclxuICAgIH0pXG4gIH1cblxuICBnZXRUYXJnZXRFeGFtcGxlc0tleSA9ICgpID0+IHtcbiAgICBjb25zdCB7IHJlc3BvbnNlLCBjb250ZW50VHlwZSwgYWN0aXZlRXhhbXBsZXNLZXkgfSA9IHRoaXMucHJvcHNcblxuICAgIGNvbnN0IGFjdGl2ZUNvbnRlbnRUeXBlID0gdGhpcy5zdGF0ZS5yZXNwb25zZUNvbnRlbnRUeXBlIHx8IGNvbnRlbnRUeXBlXG4gICAgY29uc3QgYWN0aXZlTWVkaWFUeXBlID0gcmVzcG9uc2UuZ2V0SW4oW1wiY29udGVudFwiLCBhY3RpdmVDb250ZW50VHlwZV0sIE1hcCh7fSkpXG4gICAgY29uc3QgZXhhbXBsZXNGb3JNZWRpYVR5cGUgPSBhY3RpdmVNZWRpYVR5cGUuZ2V0KFwiZXhhbXBsZXNcIiwgbnVsbClcblxuICAgIGNvbnN0IGZpcnN0RXhhbXBsZXNLZXkgPSBleGFtcGxlc0Zvck1lZGlhVHlwZS5rZXlTZXEoKS5maXJzdCgpXG4gICAgcmV0dXJuIGFjdGl2ZUV4YW1wbGVzS2V5IHx8IGZpcnN0RXhhbXBsZXNLZXlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQge1xuICAgICAgcGF0aCxcbiAgICAgIG1ldGhvZCxcbiAgICAgIGNvZGUsXG4gICAgICByZXNwb25zZSxcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIHNwZWNQYXRoLFxuICAgICAgZm4sXG4gICAgICBnZXRDb21wb25lbnQsXG4gICAgICBnZXRDb25maWdzLFxuICAgICAgc3BlY1NlbGVjdG9ycyxcbiAgICAgIGNvbnRlbnRUeXBlLFxuICAgICAgY29udHJvbHNBY2NlcHRIZWFkZXIsXG4gICAgICBvYXMzQWN0aW9ucyxcbiAgICB9ID0gdGhpcy5wcm9wc1xuXG4gICAgbGV0IHsgaW5mZXJTY2hlbWEsIGdldFNhbXBsZVNjaGVtYSB9ID0gZm5cbiAgICBsZXQgaXNPQVMzID0gc3BlY1NlbGVjdG9ycy5pc09BUzMoKVxuICAgIGNvbnN0IHsgc2hvd0V4dGVuc2lvbnMgfSA9IGdldENvbmZpZ3MoKVxuXG4gICAgbGV0IGV4dGVuc2lvbnMgPSBzaG93RXh0ZW5zaW9ucyA/IGdldEV4dGVuc2lvbnMocmVzcG9uc2UpIDogbnVsbFxuICAgIGxldCBoZWFkZXJzID0gcmVzcG9uc2UuZ2V0KFwiaGVhZGVyc1wiKVxuICAgIGxldCBsaW5rcyA9IHJlc3BvbnNlLmdldChcImxpbmtzXCIpXG4gICAgY29uc3QgUmVzcG9uc2VFeHRlbnNpb24gPSBnZXRDb21wb25lbnQoXCJSZXNwb25zZUV4dGVuc2lvblwiKVxuICAgIGNvbnN0IEhlYWRlcnMgPSBnZXRDb21wb25lbnQoXCJoZWFkZXJzXCIpXG4gICAgY29uc3QgSGlnaGxpZ2h0Q29kZSA9IGdldENvbXBvbmVudChcIkhpZ2hsaWdodENvZGVcIiwgdHJ1ZSlcbiAgICBjb25zdCBNb2RlbEV4YW1wbGUgPSBnZXRDb21wb25lbnQoXCJtb2RlbEV4YW1wbGVcIilcbiAgICBjb25zdCBNYXJrZG93biA9IGdldENvbXBvbmVudChcIk1hcmtkb3duXCIsIHRydWUpXG4gICAgY29uc3QgT3BlcmF0aW9uTGluayA9IGdldENvbXBvbmVudChcIm9wZXJhdGlvbkxpbmtcIilcbiAgICBjb25zdCBDb250ZW50VHlwZSA9IGdldENvbXBvbmVudChcImNvbnRlbnRUeXBlXCIpXG4gICAgY29uc3QgRXhhbXBsZXNTZWxlY3QgPSBnZXRDb21wb25lbnQoXCJFeGFtcGxlc1NlbGVjdFwiKVxuICAgIGNvbnN0IEV4YW1wbGUgPSBnZXRDb21wb25lbnQoXCJFeGFtcGxlXCIpXG5cblxuICAgIHZhciBzY2hlbWEsIHNwZWNQYXRoV2l0aFBvc3NpYmxlU2NoZW1hXG5cbiAgICBjb25zdCBhY3RpdmVDb250ZW50VHlwZSA9IHRoaXMuc3RhdGUucmVzcG9uc2VDb250ZW50VHlwZSB8fCBjb250ZW50VHlwZVxuICAgIGNvbnN0IGFjdGl2ZU1lZGlhVHlwZSA9IHJlc3BvbnNlLmdldEluKFtcImNvbnRlbnRcIiwgYWN0aXZlQ29udGVudFR5cGVdLCBNYXAoe30pKVxuICAgIGNvbnN0IGV4YW1wbGVzRm9yTWVkaWFUeXBlID0gYWN0aXZlTWVkaWFUeXBlLmdldChcImV4YW1wbGVzXCIsIG51bGwpXG5cbiAgICAvLyBHb2FsOiBmaW5kIGEgc2NoZW1hIHZhbHVlIGZvciBgc2NoZW1hYFxuICAgIGlmKGlzT0FTMykge1xuICAgICAgY29uc3Qgb2FzM1NjaGVtYUZvckNvbnRlbnRUeXBlID0gYWN0aXZlTWVkaWFUeXBlLmdldChcInNjaGVtYVwiKVxuXG4gICAgICBzY2hlbWEgPSBvYXMzU2NoZW1hRm9yQ29udGVudFR5cGUgPyBpbmZlclNjaGVtYShvYXMzU2NoZW1hRm9yQ29udGVudFR5cGUudG9KUygpKSA6IG51bGxcbiAgICAgIHNwZWNQYXRoV2l0aFBvc3NpYmxlU2NoZW1hID0gb2FzM1NjaGVtYUZvckNvbnRlbnRUeXBlID8gTGlzdChbXCJjb250ZW50XCIsIHRoaXMuc3RhdGUucmVzcG9uc2VDb250ZW50VHlwZSwgXCJzY2hlbWFcIl0pIDogc3BlY1BhdGhcbiAgICB9IGVsc2Uge1xuICAgICAgc2NoZW1hID0gcmVzcG9uc2UuZ2V0KFwic2NoZW1hXCIpXG4gICAgICBzcGVjUGF0aFdpdGhQb3NzaWJsZVNjaGVtYSA9IHJlc3BvbnNlLmhhcyhcInNjaGVtYVwiKSA/IHNwZWNQYXRoLnB1c2goXCJzY2hlbWFcIikgOiBzcGVjUGF0aFxuICAgIH1cblxuICAgIGxldCBtZWRpYVR5cGVFeGFtcGxlXG4gICAgbGV0IHNob3VsZE92ZXJyaWRlU2NoZW1hRXhhbXBsZSA9IGZhbHNlXG4gICAgbGV0IHNhbXBsZVNjaGVtYVxuICAgIGxldCBzYW1wbGVHZW5Db25maWcgPSB7XG4gICAgICBpbmNsdWRlUmVhZE9ubHk6IHRydWVcbiAgICB9XG5cbiAgICAvLyBHb2FsOiBmaW5kIGFuIGV4YW1wbGUgdmFsdWUgZm9yIGBzYW1wbGVSZXNwb25zZWBcbiAgICBpZihpc09BUzMpIHtcbiAgICAgIHNhbXBsZVNjaGVtYSA9IGFjdGl2ZU1lZGlhVHlwZS5nZXQoXCJzY2hlbWFcIik/LnRvSlMoKVxuICAgICAgaWYoTWFwLmlzTWFwKGV4YW1wbGVzRm9yTWVkaWFUeXBlKSAmJiAhZXhhbXBsZXNGb3JNZWRpYVR5cGUuaXNFbXB0eSgpKSB7XG4gICAgICAgIGNvbnN0IHRhcmdldEV4YW1wbGVzS2V5ID0gdGhpcy5nZXRUYXJnZXRFeGFtcGxlc0tleSgpXG4gICAgICAgIGNvbnN0IHRhcmdldEV4YW1wbGUgPSBleGFtcGxlc0Zvck1lZGlhVHlwZVxuICAgICAgICAgIC5nZXQodGFyZ2V0RXhhbXBsZXNLZXksIE1hcCh7fSkpXG4gICAgICAgIGNvbnN0IGdldE1lZGlhVHlwZUV4YW1wbGUgPSAodGFyZ2V0RXhhbXBsZSkgPT5cbiAgICAgICAgICBNYXAuaXNNYXAodGFyZ2V0RXhhbXBsZSkgXG4gICAgICAgICAgPyB0YXJnZXRFeGFtcGxlLmdldChcInZhbHVlXCIpIFxuICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgIG1lZGlhVHlwZUV4YW1wbGUgPSBnZXRNZWRpYVR5cGVFeGFtcGxlKHRhcmdldEV4YW1wbGUpXG4gICAgICAgIGlmKG1lZGlhVHlwZUV4YW1wbGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG1lZGlhVHlwZUV4YW1wbGUgPSBnZXRNZWRpYVR5cGVFeGFtcGxlKGV4YW1wbGVzRm9yTWVkaWFUeXBlLnZhbHVlcygpLm5leHQoKS52YWx1ZSlcbiAgICAgICAgfVxuICAgICAgICBzaG91bGRPdmVycmlkZVNjaGVtYUV4YW1wbGUgPSB0cnVlXG4gICAgICB9IGVsc2UgaWYoYWN0aXZlTWVkaWFUeXBlLmdldChcImV4YW1wbGVcIikgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyB1c2UgdGhlIGV4YW1wbGUga2V5J3MgdmFsdWVcbiAgICAgICAgbWVkaWFUeXBlRXhhbXBsZSA9IGFjdGl2ZU1lZGlhVHlwZS5nZXQoXCJleGFtcGxlXCIpXG4gICAgICAgIHNob3VsZE92ZXJyaWRlU2NoZW1hRXhhbXBsZSA9IHRydWVcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc2FtcGxlU2NoZW1hID0gc2NoZW1hXG4gICAgICBzYW1wbGVHZW5Db25maWcgPSB7Li4uc2FtcGxlR2VuQ29uZmlnLCBpbmNsdWRlV3JpdGVPbmx5OiB0cnVlfVxuICAgICAgY29uc3Qgb2xkT0FTTWVkaWFUeXBlRXhhbXBsZSA9IHJlc3BvbnNlLmdldEluKFtcImV4YW1wbGVzXCIsIGFjdGl2ZUNvbnRlbnRUeXBlXSlcbiAgICAgIGlmKG9sZE9BU01lZGlhVHlwZUV4YW1wbGUpIHtcbiAgICAgICAgbWVkaWFUeXBlRXhhbXBsZSA9IG9sZE9BU01lZGlhVHlwZUV4YW1wbGVcbiAgICAgICAgc2hvdWxkT3ZlcnJpZGVTY2hlbWFFeGFtcGxlID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHNhbXBsZVJlc3BvbnNlID0gZ2V0U2FtcGxlU2NoZW1hKFxuICAgICAgc2FtcGxlU2NoZW1hLFxuICAgICAgYWN0aXZlQ29udGVudFR5cGUsXG4gICAgICBzYW1wbGVHZW5Db25maWcsXG4gICAgICBzaG91bGRPdmVycmlkZVNjaGVtYUV4YW1wbGUgPyBtZWRpYVR5cGVFeGFtcGxlIDogdW5kZWZpbmVkXG4gICAgKVxuXG4gICAgY29uc3QgZXhhbXBsZSA9IGdldEV4YW1wbGVDb21wb25lbnQoIHNhbXBsZVJlc3BvbnNlLCBIaWdobGlnaHRDb2RlIClcblxuICAgIHJldHVybiAoXG4gICAgICA8dHIgY2xhc3NOYW1lPXsgXCJyZXNwb25zZSBcIiArICggY2xhc3NOYW1lIHx8IFwiXCIpIH0gZGF0YS1jb2RlPXtjb2RlfT5cbiAgICAgICAgPHRkIGNsYXNzTmFtZT1cInJlc3BvbnNlLWNvbF9zdGF0dXNcIj5cbiAgICAgICAgICB7IGNvZGUgfVxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3NOYW1lPVwicmVzcG9uc2UtY29sX2Rlc2NyaXB0aW9uXCI+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlc3BvbnNlLWNvbF9kZXNjcmlwdGlvbl9faW5uZXJcIj5cbiAgICAgICAgICAgIDxNYXJrZG93biBzb3VyY2U9eyByZXNwb25zZS5nZXQoIFwiZGVzY3JpcHRpb25cIiApIH0gLz5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIHsgIXNob3dFeHRlbnNpb25zIHx8ICFleHRlbnNpb25zLnNpemUgPyBudWxsIDogZXh0ZW5zaW9ucy5lbnRyeVNlcSgpLm1hcCgoW2tleSwgdl0pID0+IDxSZXNwb25zZUV4dGVuc2lvbiBrZXk9e2Ake2tleX0tJHt2fWB9IHhLZXk9e2tleX0geFZhbD17dn0gLz4gKX1cblxuICAgICAgICAgIHtpc09BUzMgJiYgcmVzcG9uc2UuZ2V0KFwiY29udGVudFwiKSA/IChcbiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInJlc3BvbnNlLWNvbnRyb2xzXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFwicmVzcG9uc2UtY29udHJvbC1tZWRpYS10eXBlXCIsIHtcbiAgICAgICAgICAgICAgICAgIFwicmVzcG9uc2UtY29udHJvbC1tZWRpYS10eXBlLS1hY2NlcHQtY29udHJvbGxlclwiOiBjb250cm9sc0FjY2VwdEhlYWRlclxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzTmFtZT1cInJlc3BvbnNlLWNvbnRyb2wtbWVkaWEtdHlwZV9fdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgIE1lZGlhIHR5cGVcbiAgICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgICAgIDxDb250ZW50VHlwZVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUucmVzcG9uc2VDb250ZW50VHlwZX1cbiAgICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlcz17XG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmdldChcImNvbnRlbnRcIilcbiAgICAgICAgICAgICAgICAgICAgICA/IHJlc3BvbnNlLmdldChcImNvbnRlbnRcIikua2V5U2VxKClcbiAgICAgICAgICAgICAgICAgICAgICA6IFNlcSgpXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5fb25Db250ZW50VHlwZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgIGFyaWFMYWJlbD1cIk1lZGlhIFR5cGVcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAge2NvbnRyb2xzQWNjZXB0SGVhZGVyID8gKFxuICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzTmFtZT1cInJlc3BvbnNlLWNvbnRyb2wtbWVkaWEtdHlwZV9fYWNjZXB0LW1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgQ29udHJvbHMgPGNvZGU+QWNjZXB0PC9jb2RlPiBoZWFkZXIuXG4gICAgICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAge01hcC5pc01hcChleGFtcGxlc0Zvck1lZGlhVHlwZSkgJiYgIWV4YW1wbGVzRm9yTWVkaWFUeXBlLmlzRW1wdHkoKSA/IChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlc3BvbnNlLWNvbnRyb2wtZXhhbXBsZXNcIj5cbiAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzc05hbWU9XCJyZXNwb25zZS1jb250cm9sLWV4YW1wbGVzX190aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICBFeGFtcGxlc1xuICAgICAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgICAgICAgIDxFeGFtcGxlc1NlbGVjdFxuICAgICAgICAgICAgICAgICAgICBleGFtcGxlcz17ZXhhbXBsZXNGb3JNZWRpYVR5cGV9XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRFeGFtcGxlS2V5PXt0aGlzLmdldFRhcmdldEV4YW1wbGVzS2V5KCl9XG4gICAgICAgICAgICAgICAgICAgIG9uU2VsZWN0PXtrZXkgPT5cbiAgICAgICAgICAgICAgICAgICAgICBvYXMzQWN0aW9ucy5zZXRBY3RpdmVFeGFtcGxlc01lbWJlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoTWV0aG9kOiBbcGF0aCwgbWV0aG9kXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHRUeXBlOiBcInJlc3BvbnNlc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dE5hbWU6IGNvZGVcbiAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHNob3dMYWJlbHM9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAgICB7IGV4YW1wbGUgfHwgc2NoZW1hID8gKFxuICAgICAgICAgICAgPE1vZGVsRXhhbXBsZVxuICAgICAgICAgICAgICBzcGVjUGF0aD17c3BlY1BhdGhXaXRoUG9zc2libGVTY2hlbWF9XG4gICAgICAgICAgICAgIGdldENvbXBvbmVudD17IGdldENvbXBvbmVudCB9XG4gICAgICAgICAgICAgIGdldENvbmZpZ3M9eyBnZXRDb25maWdzIH1cbiAgICAgICAgICAgICAgc3BlY1NlbGVjdG9ycz17IHNwZWNTZWxlY3RvcnMgfVxuICAgICAgICAgICAgICBzY2hlbWE9eyBmcm9tSlNPcmRlcmVkKHNjaGVtYSkgfVxuICAgICAgICAgICAgICBleGFtcGxlPXsgZXhhbXBsZSB9XG4gICAgICAgICAgICAgIGluY2x1ZGVSZWFkT25seT17IHRydWUgfS8+XG4gICAgICAgICAgKSA6IG51bGwgfVxuXG4gICAgICAgICAgeyBpc09BUzMgJiYgZXhhbXBsZXNGb3JNZWRpYVR5cGUgPyAoXG4gICAgICAgICAgICAgIDxFeGFtcGxlXG4gICAgICAgICAgICAgICAgZXhhbXBsZT17ZXhhbXBsZXNGb3JNZWRpYVR5cGUuZ2V0KHRoaXMuZ2V0VGFyZ2V0RXhhbXBsZXNLZXkoKSwgTWFwKHt9KSl9XG4gICAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9XG4gICAgICAgICAgICAgICAgZ2V0Q29uZmlncz17Z2V0Q29uZmlnc31cbiAgICAgICAgICAgICAgICBvbWl0VmFsdWU9e3RydWV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAgICB7IGhlYWRlcnMgPyAoXG4gICAgICAgICAgICA8SGVhZGVyc1xuICAgICAgICAgICAgICBoZWFkZXJzPXsgaGVhZGVycyB9XG4gICAgICAgICAgICAgIGdldENvbXBvbmVudD17IGdldENvbXBvbmVudCB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgIDwvdGQ+XG4gICAgICAgIHtpc09BUzMgPyA8dGQgY2xhc3NOYW1lPVwicmVzcG9uc2UtY29sX2xpbmtzXCI+XG4gICAgICAgICAgeyBsaW5rcyA/XG4gICAgICAgICAgICBsaW5rcy50b1NlcSgpLmVudHJ5U2VxKCkubWFwKChba2V5LCBsaW5rXSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gPE9wZXJhdGlvbkxpbmsga2V5PXtrZXl9IG5hbWU9e2tleX0gbGluaz17IGxpbmsgfSBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH0vPlxuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IDxpPk5vIGxpbmtzPC9pPn1cbiAgICAgICAgPC90ZD4gOiBudWxsfVxuICAgICAgPC90cj5cbiAgICApXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmV4cG9ydCBjb25zdCBSZXNwb25zZUV4dGVuc2lvbiA9ICh7IHhLZXksIHhWYWwgfSkgPT4ge1xuICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT1cInJlc3BvbnNlX19leHRlbnNpb25cIj57IHhLZXkgfTogeyBTdHJpbmcoeFZhbCkgfTwvZGl2PlxufVxuUmVzcG9uc2VFeHRlbnNpb24ucHJvcFR5cGVzID0ge1xuICB4S2V5OiBQcm9wVHlwZXMuc3RyaW5nLFxuICB4VmFsOiBQcm9wVHlwZXMuYW55XG59XG5cbmV4cG9ydCBkZWZhdWx0IFJlc3BvbnNlRXh0ZW5zaW9uXG4iLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfeG1sX2J1dF9wcmV0dGllcl8yZWQ0ZDVjYl9fW1wiZGVmYXVsdFwiXTsgfSB9KTsiLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfbG9kYXNoX3RvTG93ZXJfYzI5ZWUyYjBfX1tcImRlZmF1bHRcIl07IH0gfSk7IiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBmb3JtYXRYbWwgZnJvbSBcInhtbC1idXQtcHJldHRpZXJcIlxuaW1wb3J0IHRvTG93ZXIgZnJvbSBcImxvZGFzaC90b0xvd2VyXCJcbmltcG9ydCB7IGV4dHJhY3RGaWxlTmFtZUZyb21Db250ZW50RGlzcG9zaXRpb25IZWFkZXIgfSBmcm9tIFwiY29yZS91dGlsc1wiXG5pbXBvcnQgeyBnZXRLbm93blN5bnRheEhpZ2hsaWdodGVyTGFuZ3VhZ2UgfSBmcm9tIFwiY29yZS91dGlscy9qc29uUGFyc2VcIlxuaW1wb3J0IHdpbiBmcm9tIFwiY29yZS93aW5kb3dcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZXNwb25zZUJvZHkgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcbiAgc3RhdGUgPSB7XG4gICAgcGFyc2VkQ29udGVudDogbnVsbFxuICB9XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjb250ZW50OiBQcm9wVHlwZXMuYW55LmlzUmVxdWlyZWQsXG4gICAgY29udGVudFR5cGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGhlYWRlcnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgdXJsOiBQcm9wVHlwZXMuc3RyaW5nXG4gIH1cblxuICB1cGRhdGVQYXJzZWRDb250ZW50ID0gKHByZXZDb250ZW50KSA9PiB7XG4gICAgY29uc3QgeyBjb250ZW50IH0gPSB0aGlzLnByb3BzXG5cbiAgICBpZihwcmV2Q29udGVudCA9PT0gY29udGVudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYoY29udGVudCAmJiBjb250ZW50IGluc3RhbmNlb2YgQmxvYikge1xuICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKClcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIHBhcnNlZENvbnRlbnQ6IHJlYWRlci5yZXN1bHRcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIHJlYWRlci5yZWFkQXNUZXh0KGNvbnRlbnQpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBwYXJzZWRDb250ZW50OiBjb250ZW50LnRvU3RyaW5nKClcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgdGhpcy51cGRhdGVQYXJzZWRDb250ZW50KG51bGwpXG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgdGhpcy51cGRhdGVQYXJzZWRDb250ZW50KHByZXZQcm9wcy5jb250ZW50KVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IGNvbnRlbnQsIGNvbnRlbnRUeXBlLCB1cmwsIGhlYWRlcnM9e30sIGdldENvbXBvbmVudCB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHsgcGFyc2VkQ29udGVudCB9ID0gdGhpcy5zdGF0ZVxuICAgIGNvbnN0IEhpZ2hsaWdodENvZGUgPSBnZXRDb21wb25lbnQoXCJIaWdobGlnaHRDb2RlXCIsIHRydWUpXG4gICAgY29uc3QgZG93bmxvYWROYW1lID0gXCJyZXNwb25zZV9cIiArIG5ldyBEYXRlKCkuZ2V0VGltZSgpXG4gICAgbGV0IGJvZHksIGJvZHlFbFxuICAgIHVybCA9IHVybCB8fCBcIlwiXG5cbiAgICBpZiAoXG4gICAgICAoL15hcHBsaWNhdGlvblxcL29jdGV0LXN0cmVhbS9pLnRlc3QoY29udGVudFR5cGUpIHx8XG4gICAgICAgIChoZWFkZXJzW1wiQ29udGVudC1EaXNwb3NpdGlvblwiXSAmJiAvYXR0YWNobWVudC9pLnRlc3QoaGVhZGVyc1tcIkNvbnRlbnQtRGlzcG9zaXRpb25cIl0pKSB8fFxuICAgICAgICAoaGVhZGVyc1tcImNvbnRlbnQtZGlzcG9zaXRpb25cIl0gJiYgL2F0dGFjaG1lbnQvaS50ZXN0KGhlYWRlcnNbXCJjb250ZW50LWRpc3Bvc2l0aW9uXCJdKSkgfHxcbiAgICAgICAgKGhlYWRlcnNbXCJDb250ZW50LURlc2NyaXB0aW9uXCJdICYmIC9GaWxlIFRyYW5zZmVyL2kudGVzdChoZWFkZXJzW1wiQ29udGVudC1EZXNjcmlwdGlvblwiXSkpIHx8XG4gICAgICAgIChoZWFkZXJzW1wiY29udGVudC1kZXNjcmlwdGlvblwiXSAmJiAvRmlsZSBUcmFuc2Zlci9pLnRlc3QoaGVhZGVyc1tcImNvbnRlbnQtZGVzY3JpcHRpb25cIl0pKSkgJiZcbiAgICAgIChjb250ZW50LnNpemUgPiAwIHx8IGNvbnRlbnQubGVuZ3RoID4gMClcbiAgICApIHtcbiAgICAgIC8vIERvd25sb2FkXG5cbiAgICAgIGlmIChcIkJsb2JcIiBpbiB3aW5kb3cpIHtcbiAgICAgICAgbGV0IHR5cGUgPSBjb250ZW50VHlwZSB8fCBcInRleHQvaHRtbFwiXG4gICAgICAgIGxldCBibG9iID0gKGNvbnRlbnQgaW5zdGFuY2VvZiBCbG9iKSA/IGNvbnRlbnQgOiBuZXcgQmxvYihbY29udGVudF0sIHt0eXBlOiB0eXBlfSlcbiAgICAgICAgbGV0IGhyZWYgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKVxuICAgICAgICBsZXQgZmlsZU5hbWUgPSB1cmwuc3Vic3RyKHVybC5sYXN0SW5kZXhPZihcIi9cIikgKyAxKVxuICAgICAgICBsZXQgZG93bmxvYWQgPSBbdHlwZSwgZmlsZU5hbWUsIGhyZWZdLmpvaW4oXCI6XCIpXG5cbiAgICAgICAgLy8gVXNlIGZpbGVuYW1lIGZyb20gcmVzcG9uc2UgaGVhZGVyLFxuICAgICAgICAvLyBGaXJzdCBjaGVjayBpZiBmaWxlbmFtZSBpcyBxdW90ZWQgKGUuZy4gY29udGFpbnMgc3BhY2UpLCBpZiBubywgZmFsbGJhY2sgdG8gbm90IHF1b3RlZCBjaGVja1xuICAgICAgICBsZXQgZGlzcG9zaXRpb24gPSBoZWFkZXJzW1wiY29udGVudC1kaXNwb3NpdGlvblwiXSB8fCBoZWFkZXJzW1wiQ29udGVudC1EaXNwb3NpdGlvblwiXVxuICAgICAgICBpZiAodHlwZW9mIGRpc3Bvc2l0aW9uICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgbGV0IHJlc3BvbnNlRmlsZW5hbWUgPSBleHRyYWN0RmlsZU5hbWVGcm9tQ29udGVudERpc3Bvc2l0aW9uSGVhZGVyKGRpc3Bvc2l0aW9uKVxuICAgICAgICAgIGlmIChyZXNwb25zZUZpbGVuYW1lICE9PSBudWxsKSB7XG4gICAgICAgICAgICBkb3dubG9hZCA9IHJlc3BvbnNlRmlsZW5hbWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZih3aW4ubmF2aWdhdG9yICYmIHdpbi5uYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYikge1xuICAgICAgICAgICAgYm9keUVsID0gPGRpdj48YSBocmVmPXsgaHJlZiB9IG9uQ2xpY2s9eygpID0+IHdpbi5uYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihibG9iLCBkb3dubG9hZCl9PnsgXCJEb3dubG9hZCBmaWxlXCIgfTwvYT48L2Rpdj5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGJvZHlFbCA9IDxkaXY+PGEgaHJlZj17IGhyZWYgfSBkb3dubG9hZD17IGRvd25sb2FkIH0+eyBcIkRvd25sb2FkIGZpbGVcIiB9PC9hPjwvZGl2PlxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBib2R5RWwgPSA8cHJlIGNsYXNzTmFtZT1cIm1pY3JvbGlnaHRcIj5Eb3dubG9hZCBoZWFkZXJzIGRldGVjdGVkIGJ1dCB5b3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBkb3dubG9hZGluZyBiaW5hcnkgdmlhIFhIUiAoQmxvYikuPC9wcmU+XG4gICAgICB9XG5cbiAgICAgIC8vIEFueXRoaW5nIGVsc2UgKENPUlMpXG4gICAgfSBlbHNlIGlmICgvanNvbi9pLnRlc3QoY29udGVudFR5cGUpKSB7XG4gICAgICAvLyBKU09OXG4gICAgICBsZXQgbGFuZ3VhZ2UgPSBudWxsXG4gICAgICBsZXQgdGVzdFZhbHVlRm9ySnNvbiA9IGdldEtub3duU3ludGF4SGlnaGxpZ2h0ZXJMYW5ndWFnZShjb250ZW50KVxuICAgICAgaWYgKHRlc3RWYWx1ZUZvckpzb24pIHtcbiAgICAgICAgbGFuZ3VhZ2UgPSBcImpzb25cIlxuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KEpTT04ucGFyc2UoY29udGVudCksIG51bGwsIFwiICBcIilcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGJvZHkgPSBcImNhbid0IHBhcnNlIEpTT04uICBSYXcgcmVzdWx0OlxcblxcblwiICsgY29udGVudFxuICAgICAgfVxuXG4gICAgICBib2R5RWwgPSA8SGlnaGxpZ2h0Q29kZSBsYW5ndWFnZT17bGFuZ3VhZ2V9IGRvd25sb2FkYWJsZSBmaWxlTmFtZT17YCR7ZG93bmxvYWROYW1lfS5qc29uYH0gY2FuQ29weT57Ym9keX08L0hpZ2hsaWdodENvZGU+XG5cbiAgICAgIC8vIFhNTFxuICAgIH0gZWxzZSBpZiAoL3htbC9pLnRlc3QoY29udGVudFR5cGUpKSB7XG4gICAgICBib2R5ID0gZm9ybWF0WG1sKGNvbnRlbnQsIHtcbiAgICAgICAgdGV4dE5vZGVzT25TYW1lTGluZTogdHJ1ZSxcbiAgICAgICAgaW5kZW50b3I6IFwiICBcIlxuICAgICAgfSlcbiAgICAgIGJvZHlFbCA9IDxIaWdobGlnaHRDb2RlIGRvd25sb2FkYWJsZSBmaWxlTmFtZT17YCR7ZG93bmxvYWROYW1lfS54bWxgfSBjYW5Db3B5Pntib2R5fTwvSGlnaGxpZ2h0Q29kZT5cblxuICAgICAgLy8gSFRNTCBvciBQbGFpbiBUZXh0XG4gICAgfSBlbHNlIGlmICh0b0xvd2VyKGNvbnRlbnRUeXBlKSA9PT0gXCJ0ZXh0L2h0bWxcIiB8fCAvdGV4dFxcL3BsYWluLy50ZXN0KGNvbnRlbnRUeXBlKSkge1xuICAgICAgYm9keUVsID0gPEhpZ2hsaWdodENvZGUgZG93bmxvYWRhYmxlIGZpbGVOYW1lPXtgJHtkb3dubG9hZE5hbWV9Lmh0bWxgfSBjYW5Db3B5Pntjb250ZW50fTwvSGlnaGxpZ2h0Q29kZT5cblxuICAgICAgLy8gQ1NWXG4gICAgfSBlbHNlIGlmICh0b0xvd2VyKGNvbnRlbnRUeXBlKSA9PT0gXCJ0ZXh0L2NzdlwiIHx8IC90ZXh0XFwvY3N2Ly50ZXN0KGNvbnRlbnRUeXBlKSkge1xuICAgICAgYm9keUVsID0gPEhpZ2hsaWdodENvZGUgZG93bmxvYWRhYmxlIGZpbGVOYW1lPXtgJHtkb3dubG9hZE5hbWV9LmNzdmB9IGNhbkNvcHk+e2NvbnRlbnR9PC9IaWdobGlnaHRDb2RlPlxuXG4gICAgICAvLyBJbWFnZVxuICAgIH0gZWxzZSBpZiAoL15pbWFnZVxcLy9pLnRlc3QoY29udGVudFR5cGUpKSB7XG4gICAgICBpZihjb250ZW50VHlwZS5pbmNsdWRlcyhcInN2Z1wiKSkge1xuICAgICAgICBib2R5RWwgPSA8ZGl2PiB7IGNvbnRlbnQgfSA8L2Rpdj5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJvZHlFbCA9IDxpbWcgc3JjPXsgd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoY29udGVudCkgfSAvPlxuICAgICAgfVxuXG4gICAgICAvLyBBdWRpb1xuICAgIH0gZWxzZSBpZiAoL15hdWRpb1xcLy9pLnRlc3QoY29udGVudFR5cGUpKSB7XG4gICAgICBib2R5RWwgPSA8cHJlIGNsYXNzTmFtZT1cIm1pY3JvbGlnaHRcIj48YXVkaW8gY29udHJvbHMga2V5PXsgdXJsIH0+PHNvdXJjZSBzcmM9eyB1cmwgfSB0eXBlPXsgY29udGVudFR5cGUgfSAvPjwvYXVkaW8+PC9wcmU+XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgY29udGVudCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgYm9keUVsID0gPEhpZ2hsaWdodENvZGUgZG93bmxvYWRhYmxlIGZpbGVOYW1lPXtgJHtkb3dubG9hZE5hbWV9LnR4dGB9IGNhbkNvcHk+e2NvbnRlbnR9PC9IaWdobGlnaHRDb2RlPlxuICAgIH0gZWxzZSBpZiAoIGNvbnRlbnQuc2l6ZSA+IDAgKSB7XG4gICAgICAvLyBXZSBkb24ndCBrbm93IHRoZSBjb250ZW50VHlwZSwgYnV0IHRoZXJlIHdhcyBzb21lIGNvbnRlbnQgcmV0dXJuZWRcbiAgICAgIGlmKHBhcnNlZENvbnRlbnQpIHtcbiAgICAgICAgLy8gV2Ugd2VyZSBhYmxlIHRvIHNxdWVlemUgc29tZXRoaW5nIG91dCBvZiBjb250ZW50XG4gICAgICAgIC8vIGluIGB1cGRhdGVQYXJzZWRDb250ZW50YCwgc28gbGV0J3MgZGlzcGxheSBpdFxuICAgICAgICBib2R5RWwgPSA8ZGl2PlxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImlcIj5cbiAgICAgICAgICAgIFVucmVjb2duaXplZCByZXNwb25zZSB0eXBlOyBkaXNwbGF5aW5nIGNvbnRlbnQgYXMgdGV4dC5cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPEhpZ2hsaWdodENvZGUgZG93bmxvYWRhYmxlIGZpbGVOYW1lPXtgJHtkb3dubG9hZE5hbWV9LnR4dGB9IGNhbkNvcHk+e3BhcnNlZENvbnRlbnR9PC9IaWdobGlnaHRDb2RlPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gR2l2ZSB1cFxuICAgICAgICBib2R5RWwgPSA8cCBjbGFzc05hbWU9XCJpXCI+XG4gICAgICAgICAgVW5yZWNvZ25pemVkIHJlc3BvbnNlIHR5cGU7IHVuYWJsZSB0byBkaXNwbGF5LlxuICAgICAgICA8L3A+XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFdlIGRvbid0IGtub3cgdGhlIGNvbnRlbnRUeXBlIGFuZCB0aGVyZSB3YXMgbm8gY29udGVudCByZXR1cm5lZFxuICAgICAgYm9keUVsID0gbnVsbFxuICAgIH1cblxuICAgIHJldHVybiAoICFib2R5RWwgPyBudWxsIDogPGRpdj5cbiAgICAgICAgPGg1PlJlc3BvbnNlIGJvZHk8L2g1PlxuICAgICAgICB7IGJvZHlFbCB9XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgeyBNYXAsIExpc3QgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5pbXBvcnQgY3JlYXRlSHRtbFJlYWR5SWQgZnJvbSBcImNvcmUvdXRpbHMvY3JlYXRlLWh0bWwtcmVhZHktaWRcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYXJhbWV0ZXJzIGV4dGVuZHMgQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKVxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBjYWxsYmFja1Zpc2libGU6IGZhbHNlLFxuICAgICAgcGFyYW1ldGVyc1Zpc2libGU6IHRydWUsXG4gICAgfVxuICB9XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBwYXJhbWV0ZXJzOiBJbVByb3BUeXBlcy5saXN0LmlzUmVxdWlyZWQsXG4gICAgb3BlcmF0aW9uOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgc3BlY0FjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG9hczNBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgb2FzM1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGZuOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgdHJ5SXRPdXRFbmFibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBhbGxvd1RyeUl0T3V0OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBvblRyeW91dENsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvblJlc2V0Q2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uQ2FuY2VsQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uQ2hhbmdlS2V5OiBQcm9wVHlwZXMuYXJyYXksXG4gICAgcGF0aE1ldGhvZDogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29uZmlnczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzcGVjUGF0aDogSW1Qcm9wVHlwZXMubGlzdC5pc1JlcXVpcmVkLFxuICB9XG5cblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIG9uVHJ5b3V0Q2xpY2s6IEZ1bmN0aW9uLnByb3RvdHlwZSxcbiAgICBvbkNhbmNlbENsaWNrOiBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgdHJ5SXRPdXRFbmFibGVkOiBmYWxzZSxcbiAgICBhbGxvd1RyeUl0T3V0OiB0cnVlLFxuICAgIG9uQ2hhbmdlS2V5OiBbXSxcbiAgICBzcGVjUGF0aDogW10sXG4gIH1cblxuICBvbkNoYW5nZSA9IChwYXJhbSwgdmFsdWUsIGlzWG1sKSA9PiB7XG4gICAgbGV0IHtcbiAgICAgIHNwZWNBY3Rpb25zOiB7IGNoYW5nZVBhcmFtQnlJZGVudGl0eSB9LFxuICAgICAgb25DaGFuZ2VLZXksXG4gICAgfSA9IHRoaXMucHJvcHNcblxuICAgIGNoYW5nZVBhcmFtQnlJZGVudGl0eShvbkNoYW5nZUtleSwgcGFyYW0sIHZhbHVlLCBpc1htbClcbiAgfVxuXG4gIG9uQ2hhbmdlQ29uc3VtZXNXcmFwcGVyID0gKHZhbCkgPT4ge1xuICAgIGxldCB7XG4gICAgICBzcGVjQWN0aW9uczogeyBjaGFuZ2VDb25zdW1lc1ZhbHVlIH0sXG4gICAgICBvbkNoYW5nZUtleSxcbiAgICB9ID0gdGhpcy5wcm9wc1xuXG4gICAgY2hhbmdlQ29uc3VtZXNWYWx1ZShvbkNoYW5nZUtleSwgdmFsKVxuICB9XG5cbiAgdG9nZ2xlVGFiID0gKHRhYikgPT4ge1xuICAgIGlmICh0YWIgPT09IFwicGFyYW1ldGVyc1wiKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHBhcmFtZXRlcnNWaXNpYmxlOiB0cnVlLFxuICAgICAgICBjYWxsYmFja1Zpc2libGU6IGZhbHNlLFxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKHRhYiA9PT0gXCJjYWxsYmFja3NcIikge1xuICAgICAgcmV0dXJuIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBjYWxsYmFja1Zpc2libGU6IHRydWUsXG4gICAgICAgIHBhcmFtZXRlcnNWaXNpYmxlOiBmYWxzZSxcbiAgICAgIH0pXG4gICAgfVxuICB9XG4gIFxuICBvbkNoYW5nZU1lZGlhVHlwZSA9ICh7IHZhbHVlLCBwYXRoTWV0aG9kIH0pID0+IHtcbiAgICBsZXQgeyBzcGVjQWN0aW9ucywgb2FzM1NlbGVjdG9ycywgb2FzM0FjdGlvbnMgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB1c2VySGFzRWRpdGVkQm9keSA9IG9hczNTZWxlY3RvcnMuaGFzVXNlckVkaXRlZEJvZHkoLi4ucGF0aE1ldGhvZClcbiAgICBjb25zdCBzaG91bGRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlID0gb2FzM1NlbGVjdG9ycy5zaG91bGRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlKC4uLnBhdGhNZXRob2QpXG4gICAgb2FzM0FjdGlvbnMuc2V0UmVxdWVzdENvbnRlbnRUeXBlKHsgdmFsdWUsIHBhdGhNZXRob2QgfSlcbiAgICBvYXMzQWN0aW9ucy5pbml0UmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yKHsgcGF0aE1ldGhvZCB9KVxuICAgIGlmICghdXNlckhhc0VkaXRlZEJvZHkpIHtcbiAgICAgIGlmKCFzaG91bGRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlKSB7XG4gICAgICAgIG9hczNBY3Rpb25zLnNldFJlcXVlc3RCb2R5VmFsdWUoeyB2YWx1ZTogdW5kZWZpbmVkLCBwYXRoTWV0aG9kIH0pXG4gICAgICB9XG4gICAgICBzcGVjQWN0aW9ucy5jbGVhclJlc3BvbnNlKC4uLnBhdGhNZXRob2QpXG4gICAgICBzcGVjQWN0aW9ucy5jbGVhclJlcXVlc3QoLi4ucGF0aE1ldGhvZClcbiAgICAgIHNwZWNBY3Rpb25zLmNsZWFyVmFsaWRhdGVQYXJhbXMocGF0aE1ldGhvZClcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG5cbiAgICBsZXQge1xuICAgICAgb25UcnlvdXRDbGljayxcbiAgICAgIG9uUmVzZXRDbGljayxcbiAgICAgIHBhcmFtZXRlcnMsXG4gICAgICBhbGxvd1RyeUl0T3V0LFxuICAgICAgdHJ5SXRPdXRFbmFibGVkLFxuICAgICAgc3BlY1BhdGgsXG4gICAgICBmbixcbiAgICAgIGdldENvbXBvbmVudCxcbiAgICAgIGdldENvbmZpZ3MsXG4gICAgICBzcGVjU2VsZWN0b3JzLFxuICAgICAgc3BlY0FjdGlvbnMsXG4gICAgICBwYXRoTWV0aG9kLFxuICAgICAgb2FzM0FjdGlvbnMsXG4gICAgICBvYXMzU2VsZWN0b3JzLFxuICAgICAgb3BlcmF0aW9uLFxuICAgIH0gPSB0aGlzLnByb3BzXG5cbiAgICBjb25zdCBQYXJhbWV0ZXJSb3cgPSBnZXRDb21wb25lbnQoXCJwYXJhbWV0ZXJSb3dcIilcbiAgICBjb25zdCBUcnlJdE91dEJ1dHRvbiA9IGdldENvbXBvbmVudChcIlRyeUl0T3V0QnV0dG9uXCIpXG4gICAgY29uc3QgQ29udGVudFR5cGUgPSBnZXRDb21wb25lbnQoXCJjb250ZW50VHlwZVwiKVxuICAgIGNvbnN0IENhbGxiYWNrcyA9IGdldENvbXBvbmVudChcIkNhbGxiYWNrc1wiLCB0cnVlKVxuICAgIGNvbnN0IFJlcXVlc3RCb2R5ID0gZ2V0Q29tcG9uZW50KFwiUmVxdWVzdEJvZHlcIiwgdHJ1ZSlcblxuICAgIGNvbnN0IGlzRXhlY3V0ZSA9IHRyeUl0T3V0RW5hYmxlZCAmJiBhbGxvd1RyeUl0T3V0XG4gICAgY29uc3QgaXNPQVMzID0gc3BlY1NlbGVjdG9ycy5pc09BUzMoKVxuXG4gICAgY29uc3QgcmVnaW9uSWQgPSBjcmVhdGVIdG1sUmVhZHlJZChgJHtwYXRoTWV0aG9kWzFdfSR7cGF0aE1ldGhvZFswXX1fcmVxdWVzdHNgKVxuICAgIGNvbnN0IGNvbnRyb2xJZCA9IGAke3JlZ2lvbklkfV9zZWxlY3RgXG5cbiAgICBjb25zdCByZXF1ZXN0Qm9keSA9IG9wZXJhdGlvbi5nZXQoXCJyZXF1ZXN0Qm9keVwiKVxuXG4gICAgY29uc3QgZ3JvdXBlZFBhcmFtZXRlcnNBcnIgPSBPYmplY3QudmFsdWVzKHBhcmFtZXRlcnNcbiAgICAgIC5yZWR1Y2UoKGFjYywgeCkgPT4ge1xuICAgICAgICBpZiAoTWFwLmlzTWFwKHgpKSB7XG4gICAgICAgICAgY29uc3Qga2V5ID0geC5nZXQoXCJpblwiKVxuICAgICAgICAgIGFjY1trZXldID8/PSBbXVxuICAgICAgICAgIGFjY1trZXldLnB1c2goeClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjXG4gICAgICB9LCB7fSkpXG4gICAgICAucmVkdWNlKChhY2MsIHgpID0+IGFjYy5jb25jYXQoeCksIFtdKVxuXG4gICAgY29uc3QgcmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWdGb3JPcGVyYXRpb24gPSAoZikgPT4gb2FzM0FjdGlvbnMuc2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWcoeyB2YWx1ZTogZiwgcGF0aE1ldGhvZCB9KVxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm9wYmxvY2stc2VjdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm9wYmxvY2stc2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgICB7aXNPQVMzID8gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0YWItaGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgb25DbGljaz17KCkgPT4gdGhpcy50b2dnbGVUYWIoXCJwYXJhbWV0ZXJzXCIpfVxuICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHRhYi1pdGVtICR7dGhpcy5zdGF0ZS5wYXJhbWV0ZXJzVmlzaWJsZSAmJiBcImFjdGl2ZVwifWB9PlxuICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJvcGJsb2NrLXRpdGxlXCI+PHNwYW4+UGFyYW1ldGVyczwvc3Bhbj48L2g0PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAge29wZXJhdGlvbi5nZXQoXCJjYWxsYmFja3NcIikgP1xuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgIDxkaXYgb25DbGljaz17KCkgPT4gdGhpcy50b2dnbGVUYWIoXCJjYWxsYmFja3NcIil9XG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHRhYi1pdGVtICR7dGhpcy5zdGF0ZS5jYWxsYmFja1Zpc2libGUgJiYgXCJhY3RpdmVcIn1gfT5cbiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cIm9wYmxvY2stdGl0bGVcIj48c3Bhbj5DYWxsYmFja3M8L3NwYW4+PC9oND5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICkgOiBudWxsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRhYi1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cIm9wYmxvY2stdGl0bGVcIj5QYXJhbWV0ZXJzPC9oND5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgICAge2FsbG93VHJ5SXRPdXQgPyAoXG4gICAgICAgICAgICA8VHJ5SXRPdXRCdXR0b25cbiAgICAgICAgICAgICAgaXNPQVMzPXtzcGVjU2VsZWN0b3JzLmlzT0FTMygpfVxuICAgICAgICAgICAgICBoYXNVc2VyRWRpdGVkQm9keT17b2FzM1NlbGVjdG9ycy5oYXNVc2VyRWRpdGVkQm9keSguLi5wYXRoTWV0aG9kKX1cbiAgICAgICAgICAgICAgZW5hYmxlZD17dHJ5SXRPdXRFbmFibGVkfVxuICAgICAgICAgICAgICBvbkNhbmNlbENsaWNrPXt0aGlzLnByb3BzLm9uQ2FuY2VsQ2xpY2t9XG4gICAgICAgICAgICAgIG9uVHJ5b3V0Q2xpY2s9e29uVHJ5b3V0Q2xpY2t9XG4gICAgICAgICAgICAgIG9uUmVzZXRDbGljaz17KCkgPT4gb25SZXNldENsaWNrKHBhdGhNZXRob2QpfS8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7dGhpcy5zdGF0ZS5wYXJhbWV0ZXJzVmlzaWJsZSA/IDxkaXYgY2xhc3NOYW1lPVwicGFyYW1ldGVycy1jb250YWluZXJcIj5cbiAgICAgICAgICB7IWdyb3VwZWRQYXJhbWV0ZXJzQXJyLmxlbmd0aCA/IDxkaXYgY2xhc3NOYW1lPVwib3BibG9jay1kZXNjcmlwdGlvbi13cmFwcGVyXCI+PHA+Tm8gcGFyYW1ldGVyczwvcD48L2Rpdj4gOlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0YWJsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzTmFtZT1cInBhcmFtZXRlcnNcIj5cbiAgICAgICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzTmFtZT1cImNvbF9oZWFkZXIgcGFyYW1ldGVycy1jb2xfbmFtZVwiPk5hbWU8L3RoPlxuICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzTmFtZT1cImNvbF9oZWFkZXIgcGFyYW1ldGVycy1jb2xfZGVzY3JpcHRpb25cIj5EZXNjcmlwdGlvbjwvdGg+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBncm91cGVkUGFyYW1ldGVyc0Fyci5tYXAoKHBhcmFtZXRlciwgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8UGFyYW1ldGVyUm93XG4gICAgICAgICAgICAgICAgICAgICAgZm49e2ZufVxuICAgICAgICAgICAgICAgICAgICAgIHNwZWNQYXRoPXtzcGVjUGF0aC5wdXNoKGkudG9TdHJpbmcoKSl9XG4gICAgICAgICAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgZ2V0Q29uZmlncz17Z2V0Q29uZmlnc31cbiAgICAgICAgICAgICAgICAgICAgICByYXdQYXJhbT17cGFyYW1ldGVyfVxuICAgICAgICAgICAgICAgICAgICAgIHBhcmFtPXtzcGVjU2VsZWN0b3JzLnBhcmFtZXRlcldpdGhNZXRhQnlJZGVudGl0eShwYXRoTWV0aG9kLCBwYXJhbWV0ZXIpfVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7cGFyYW1ldGVyLmdldChcImluXCIpfS4ke3BhcmFtZXRlci5nZXQoXCJuYW1lXCIpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2VDb25zdW1lcz17dGhpcy5vbkNoYW5nZUNvbnN1bWVzV3JhcHBlcn1cbiAgICAgICAgICAgICAgICAgICAgICBzcGVjU2VsZWN0b3JzPXtzcGVjU2VsZWN0b3JzfVxuICAgICAgICAgICAgICAgICAgICAgIHNwZWNBY3Rpb25zPXtzcGVjQWN0aW9uc31cbiAgICAgICAgICAgICAgICAgICAgICBvYXMzQWN0aW9ucz17b2FzM0FjdGlvbnN9XG4gICAgICAgICAgICAgICAgICAgICAgb2FzM1NlbGVjdG9ycz17b2FzM1NlbGVjdG9yc31cbiAgICAgICAgICAgICAgICAgICAgICBwYXRoTWV0aG9kPXtwYXRoTWV0aG9kfVxuICAgICAgICAgICAgICAgICAgICAgIGlzRXhlY3V0ZT17aXNFeGVjdXRlfSAvPlxuICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+IDogbnVsbH1cblxuICAgICAgICB7dGhpcy5zdGF0ZS5jYWxsYmFja1Zpc2libGUgPyA8ZGl2IGNsYXNzTmFtZT1cImNhbGxiYWNrcy1jb250YWluZXIgb3BibG9jay1kZXNjcmlwdGlvbi13cmFwcGVyXCI+XG4gICAgICAgICAgPENhbGxiYWNrc1xuICAgICAgICAgICAgY2FsbGJhY2tzPXtNYXAob3BlcmF0aW9uLmdldChcImNhbGxiYWNrc1wiKSl9XG4gICAgICAgICAgICBzcGVjUGF0aD17c3BlY1BhdGguc2xpY2UoMCwgLTEpLnB1c2goXCJjYWxsYmFja3NcIil9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+IDogbnVsbH1cbiAgICAgICAge1xuICAgICAgICAgIGlzT0FTMyAmJiByZXF1ZXN0Qm9keSAmJiB0aGlzLnN0YXRlLnBhcmFtZXRlcnNWaXNpYmxlICYmXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJvcGJsb2NrLXNlY3Rpb24gb3BibG9jay1zZWN0aW9uLXJlcXVlc3QtYm9keVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJvcGJsb2NrLXNlY3Rpb24taGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9e2BvcGJsb2NrLXRpdGxlIHBhcmFtZXRlcl9fbmFtZSAke3JlcXVlc3RCb2R5LmdldChcInJlcXVpcmVkXCIpICYmIFwicmVxdWlyZWRcIn1gfT5SZXF1ZXN0XG4gICAgICAgICAgICAgICAgYm9keTwvaDQ+XG4gICAgICAgICAgICAgIDxsYWJlbCBpZD17Y29udHJvbElkfT5cbiAgICAgICAgICAgICAgICA8Q29udGVudFR5cGVcbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtvYXMzU2VsZWN0b3JzLnJlcXVlc3RDb250ZW50VHlwZSguLi5wYXRoTWV0aG9kKX1cbiAgICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlcz17cmVxdWVzdEJvZHkuZ2V0KFwiY29udGVudFwiLCBMaXN0KCkpLmtleVNlcSgpfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlTWVkaWFUeXBlKHsgdmFsdWUsIHBhdGhNZXRob2QgfSlcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJib2R5LXBhcmFtLWNvbnRlbnQtdHlwZVwiXG4gICAgICAgICAgICAgICAgICBhcmlhTGFiZWw9XCJSZXF1ZXN0IGNvbnRlbnQgdHlwZVwiIFxuICAgICAgICAgICAgICAgICAgY29udHJvbElkPXtjb250cm9sSWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJvcGJsb2NrLWRlc2NyaXB0aW9uLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgPFJlcXVlc3RCb2R5XG4gICAgICAgICAgICAgICAgc2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWc9e3JldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnRm9yT3BlcmF0aW9ufVxuICAgICAgICAgICAgICAgIHVzZXJIYXNFZGl0ZWRCb2R5PXtvYXMzU2VsZWN0b3JzLmhhc1VzZXJFZGl0ZWRCb2R5KC4uLnBhdGhNZXRob2QpfVxuICAgICAgICAgICAgICAgIHNwZWNQYXRoPXtzcGVjUGF0aC5zbGljZSgwLCAtMSkucHVzaChcInJlcXVlc3RCb2R5XCIpfVxuICAgICAgICAgICAgICAgIHJlcXVlc3RCb2R5PXtyZXF1ZXN0Qm9keX1cbiAgICAgICAgICAgICAgICByZXF1ZXN0Qm9keVZhbHVlPXtvYXMzU2VsZWN0b3JzLnJlcXVlc3RCb2R5VmFsdWUoLi4ucGF0aE1ldGhvZCl9XG4gICAgICAgICAgICAgICAgcmVxdWVzdEJvZHlJbmNsdXNpb25TZXR0aW5nPXtvYXMzU2VsZWN0b3JzLnJlcXVlc3RCb2R5SW5jbHVzaW9uU2V0dGluZyguLi5wYXRoTWV0aG9kKX1cbiAgICAgICAgICAgICAgICByZXF1ZXN0Qm9keUVycm9ycz17b2FzM1NlbGVjdG9ycy5yZXF1ZXN0Qm9keUVycm9ycyguLi5wYXRoTWV0aG9kKX1cbiAgICAgICAgICAgICAgICBpc0V4ZWN1dGU9e2lzRXhlY3V0ZX1cbiAgICAgICAgICAgICAgICBnZXRDb25maWdzPXtnZXRDb25maWdzfVxuICAgICAgICAgICAgICAgIGFjdGl2ZUV4YW1wbGVzS2V5PXtvYXMzU2VsZWN0b3JzLmFjdGl2ZUV4YW1wbGVzTWVtYmVyKFxuICAgICAgICAgICAgICAgICAgLi4ucGF0aE1ldGhvZCxcbiAgICAgICAgICAgICAgICAgIFwicmVxdWVzdEJvZHlcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWVzdEJvZHlcIiwgLy8gUkJzIGFyZSBjdXJyZW50bHkgbm90IHN0b3JlZCBwZXItbWVkaWFUeXBlXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB1cGRhdGVBY3RpdmVFeGFtcGxlc0tleT17a2V5ID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub2FzM0FjdGlvbnMuc2V0QWN0aXZlRXhhbXBsZXNNZW1iZXIoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBrZXksXG4gICAgICAgICAgICAgICAgICAgIHBhdGhNZXRob2Q6IHRoaXMucHJvcHMucGF0aE1ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dFR5cGU6IFwicmVxdWVzdEJvZHlcIixcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dE5hbWU6IFwicmVxdWVzdEJvZHlcIiwgLy8gUkJzIGFyZSBjdXJyZW50bHkgbm90IHN0b3JlZCBwZXItbWVkaWFUeXBlXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSwgcGF0aCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdFZhbHVlID0gb2FzM1NlbGVjdG9ycy5yZXF1ZXN0Qm9keVZhbHVlKC4uLnBhdGhNZXRob2QpXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVzYWJsZVZhbHVlID0gTWFwLmlzTWFwKGxhc3RWYWx1ZSkgPyBsYXN0VmFsdWUgOiBNYXAoKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2FzM0FjdGlvbnMuc2V0UmVxdWVzdEJvZHlWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgcGF0aE1ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdXNhYmxlVmFsdWUuc2V0SW4ocGF0aCwgdmFsdWUpLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgb2FzM0FjdGlvbnMuc2V0UmVxdWVzdEJvZHlWYWx1ZSh7IHZhbHVlLCBwYXRoTWV0aG9kIH0pXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZUluY2x1ZGVFbXB0eT17KG5hbWUsIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICBvYXMzQWN0aW9ucy5zZXRSZXF1ZXN0Qm9keUluY2x1c2lvbih7XG4gICAgICAgICAgICAgICAgICAgIHBhdGhNZXRob2QsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlPXtvYXMzU2VsZWN0b3JzLnJlcXVlc3RDb250ZW50VHlwZSguLi5wYXRoTWV0aG9kKX0gLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmV4cG9ydCBjb25zdCBQYXJhbWV0ZXJFeHQgPSAoeyB4S2V5LCB4VmFsIH0pID0+IHtcbiAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJwYXJhbWV0ZXJfX2V4dGVuc2lvblwiPnsgeEtleSB9OiB7IFN0cmluZyh4VmFsKSB9PC9kaXY+XG59XG5QYXJhbWV0ZXJFeHQucHJvcFR5cGVzID0ge1xuICB4S2V5OiBQcm9wVHlwZXMuc3RyaW5nLFxuICB4VmFsOiBQcm9wVHlwZXMuYW55XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBhcmFtZXRlckV4dFxuIiwiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgY3ggZnJvbSBcImNsYXNzbmFtZXNcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cblxuY29uc3Qgbm9vcCA9ICgpID0+IHsgfVxuXG5jb25zdCBQYXJhbWV0ZXJJbmNsdWRlRW1wdHlQcm9wVHlwZXMgPSB7XG4gIGlzSW5jbHVkZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGlzRGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGlzSW5jbHVkZWRPcHRpb25zOiBQcm9wVHlwZXMub2JqZWN0LFxuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn1cblxuY29uc3QgUGFyYW1ldGVySW5jbHVkZUVtcHR5RGVmYXVsdFByb3BzID0ge1xuICBvbkNoYW5nZTogbm9vcCxcbiAgaXNJbmNsdWRlZE9wdGlvbnM6IHt9LFxufVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGFyYW1ldGVySW5jbHVkZUVtcHR5IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IFBhcmFtZXRlckluY2x1ZGVFbXB0eVByb3BUeXBlc1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0gUGFyYW1ldGVySW5jbHVkZUVtcHR5RGVmYXVsdFByb3BzXG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3QgeyBpc0luY2x1ZGVkT3B0aW9ucywgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7IHNob3VsZERpc3BhdGNoSW5pdCwgZGVmYXVsdFZhbHVlIH0gPSBpc0luY2x1ZGVkT3B0aW9uc1xuICAgIGlmIChzaG91bGREaXNwYXRjaEluaXQpIHtcbiAgICAgIG9uQ2hhbmdlKGRlZmF1bHRWYWx1ZSlcbiAgICB9XG4gIH1cblxuICBvbkNoZWNrYm94Q2hhbmdlID0gZSA9PiB7XG4gICAgY29uc3QgeyBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wc1xuICAgIG9uQ2hhbmdlKGUudGFyZ2V0LmNoZWNrZWQpXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHsgaXNJbmNsdWRlZCwgaXNEaXNhYmxlZCB9ID0gdGhpcy5wcm9wc1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxsYWJlbCBcbiAgICAgICAgICBodG1sRm9yPVwiaW5jbHVkZV9lbXB0eV92YWx1ZVwiIFxuICAgICAgICAgIGNsYXNzTmFtZT17Y3goXCJwYXJhbWV0ZXJfX2VtcHR5X3ZhbHVlX3RvZ2dsZVwiLCB7XG4gICAgICAgICAgICBcImRpc2FibGVkXCI6IGlzRGlzYWJsZWRcbiAgICAgICAgICB9KX1cbiAgICAgICAgPlxuICAgICAgICAgIDxpbnB1dCBcbiAgICAgICAgICAgIGlkPVwiaW5jbHVkZV9lbXB0eV92YWx1ZVwiXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBcbiAgICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAgICAgY2hlY2tlZD17IWlzRGlzYWJsZWQgJiYgaXNJbmNsdWRlZH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uQ2hlY2tib3hDaGFuZ2V9IFxuICAgICAgICAgIC8+XG4gICAgICAgICAgU2VuZCBlbXB0eSB2YWx1ZVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IE1hcCwgTGlzdCwgZnJvbUpTIH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5pbXBvcnQgd2luIGZyb20gXCJjb3JlL3dpbmRvd1wiXG5pbXBvcnQgeyBnZXRFeHRlbnNpb25zLCBnZXRDb21tb25FeHRlbnNpb25zLCBudW1iZXJUb1N0cmluZywgc3RyaW5naWZ5LCBpc0VtcHR5VmFsdWUgfSBmcm9tIFwiY29yZS91dGlsc1wiXG5pbXBvcnQgZ2V0UGFyYW1ldGVyU2NoZW1hIGZyb20gXCJjb3JlL3V0aWxzL2dldC1wYXJhbWV0ZXItc2NoZW1hLmpzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGFyYW1ldGVyUm93IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBwYXJhbTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHJhd1BhcmFtOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGZuOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgaXNFeGVjdXRlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBvbkNoYW5nZUNvbnN1bWVzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBzcGVjQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHBhdGhNZXRob2Q6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICAgIGdldENvbmZpZ3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc3BlY1BhdGg6IEltUHJvcFR5cGVzLmxpc3QuaXNSZXF1aXJlZCxcbiAgICBvYXMzQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG9hczNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3BzLCBjb250ZXh0KSB7XG4gICAgc3VwZXIocHJvcHMsIGNvbnRleHQpXG5cbiAgICB0aGlzLnNldERlZmF1bHRWYWx1ZSgpXG4gIH1cblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhwcm9wcykge1xuICAgIGxldCB7IHNwZWNTZWxlY3RvcnMsIHBhdGhNZXRob2QsIHJhd1BhcmFtIH0gPSBwcm9wc1xuICAgIGxldCBpc09BUzMgPSBzcGVjU2VsZWN0b3JzLmlzT0FTMygpXG5cbiAgICBsZXQgcGFyYW1ldGVyV2l0aE1ldGEgPSBzcGVjU2VsZWN0b3JzLnBhcmFtZXRlcldpdGhNZXRhQnlJZGVudGl0eShwYXRoTWV0aG9kLCByYXdQYXJhbSkgfHwgbmV3IE1hcCgpXG4gICAgLy8gZmFsbGJhY2ssIGlmIHRoZSBtZXRhIGxvb2t1cCBmYWlsc1xuICAgIHBhcmFtZXRlcldpdGhNZXRhID0gcGFyYW1ldGVyV2l0aE1ldGEuaXNFbXB0eSgpID8gcmF3UGFyYW0gOiBwYXJhbWV0ZXJXaXRoTWV0YVxuXG4gICAgbGV0IGVudW1WYWx1ZVxuXG4gICAgaWYoaXNPQVMzKSB7XG4gICAgICBsZXQgeyBzY2hlbWEgfSA9IGdldFBhcmFtZXRlclNjaGVtYShwYXJhbWV0ZXJXaXRoTWV0YSwgeyBpc09BUzMgfSlcbiAgICAgIGVudW1WYWx1ZSA9IHNjaGVtYSA/IHNjaGVtYS5nZXQoXCJlbnVtXCIpIDogdW5kZWZpbmVkXG4gICAgfSBlbHNlIHtcbiAgICAgIGVudW1WYWx1ZSA9IHBhcmFtZXRlcldpdGhNZXRhID8gcGFyYW1ldGVyV2l0aE1ldGEuZ2V0KFwiZW51bVwiKSA6IHVuZGVmaW5lZFxuICAgIH1cbiAgICBsZXQgcGFyYW1WYWx1ZSA9IHBhcmFtZXRlcldpdGhNZXRhID8gcGFyYW1ldGVyV2l0aE1ldGEuZ2V0KFwidmFsdWVcIikgOiB1bmRlZmluZWRcblxuICAgIGxldCB2YWx1ZVxuXG4gICAgaWYgKCBwYXJhbVZhbHVlICE9PSB1bmRlZmluZWQgKSB7XG4gICAgICB2YWx1ZSA9IHBhcmFtVmFsdWVcbiAgICB9IGVsc2UgaWYgKCByYXdQYXJhbS5nZXQoXCJyZXF1aXJlZFwiKSAmJiBlbnVtVmFsdWUgJiYgZW51bVZhbHVlLnNpemUgKSB7XG4gICAgICB2YWx1ZSA9IGVudW1WYWx1ZS5maXJzdCgpXG4gICAgfVxuXG4gICAgaWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBwYXJhbVZhbHVlICkge1xuICAgICAgdGhpcy5vbkNoYW5nZVdyYXBwZXIobnVtYmVyVG9TdHJpbmcodmFsdWUpKVxuICAgIH1cbiAgICAvLyB0b2RvOiBjb3VsZCBjaGVjayBpZiBzY2hlbWEgaGVyZTsgaWYgbm90LCBkbyBub3QgY2FsbC4gaW1wYWN0P1xuICAgIHRoaXMuc2V0RGVmYXVsdFZhbHVlKClcbiAgfVxuXG4gIG9uQ2hhbmdlV3JhcHBlciA9ICh2YWx1ZSwgaXNYbWwgPSBmYWxzZSkgPT4ge1xuICAgIGxldCB7IG9uQ2hhbmdlLCByYXdQYXJhbSB9ID0gdGhpcy5wcm9wc1xuICAgIGxldCB2YWx1ZUZvclVwc3RyZWFtXG5cbiAgICAvLyBDb2VyY2UgZW1wdHkgc3RyaW5ncyBhbmQgZW1wdHkgSW1tdXRhYmxlIG9iamVjdHMgdG8gbnVsbFxuICAgIGlmKHZhbHVlID09PSBcIlwiIHx8ICh2YWx1ZSAmJiB2YWx1ZS5zaXplID09PSAwKSkge1xuICAgICAgdmFsdWVGb3JVcHN0cmVhbSA9IG51bGxcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWVGb3JVcHN0cmVhbSA9IHZhbHVlXG4gICAgfVxuXG4gICAgcmV0dXJuIG9uQ2hhbmdlKHJhd1BhcmFtLCB2YWx1ZUZvclVwc3RyZWFtLCBpc1htbClcbiAgfVxuXG4gIF9vbkV4YW1wbGVTZWxlY3QgPSAoa2V5LCAvKiB7IGlzU3ludGhldGljQ2hhbmdlIH0gPSB7fSAqLykgPT4ge1xuICAgIHRoaXMucHJvcHMub2FzM0FjdGlvbnMuc2V0QWN0aXZlRXhhbXBsZXNNZW1iZXIoe1xuICAgICAgbmFtZToga2V5LFxuICAgICAgcGF0aE1ldGhvZDogdGhpcy5wcm9wcy5wYXRoTWV0aG9kLFxuICAgICAgY29udGV4dFR5cGU6IFwicGFyYW1ldGVyc1wiLFxuICAgICAgY29udGV4dE5hbWU6IHRoaXMuZ2V0UGFyYW1LZXkoKVxuICAgIH0pXG4gIH1cblxuICBvbkNoYW5nZUluY2x1ZGVFbXB0eSA9IChuZXdWYWx1ZSkgPT4ge1xuICAgIGxldCB7IHNwZWNBY3Rpb25zLCBwYXJhbSwgcGF0aE1ldGhvZCB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHBhcmFtTmFtZSA9IHBhcmFtLmdldChcIm5hbWVcIilcbiAgICBjb25zdCBwYXJhbUluID0gcGFyYW0uZ2V0KFwiaW5cIilcbiAgICByZXR1cm4gc3BlY0FjdGlvbnMudXBkYXRlRW1wdHlQYXJhbUluY2x1c2lvbihwYXRoTWV0aG9kLCBwYXJhbU5hbWUsIHBhcmFtSW4sIG5ld1ZhbHVlKVxuICB9XG5cbiAgc2V0RGVmYXVsdFZhbHVlID0gKCkgPT4ge1xuICAgIGxldCB7IHNwZWNTZWxlY3RvcnMsIHBhdGhNZXRob2QsIHJhd1BhcmFtLCBvYXMzU2VsZWN0b3JzLCBmbiB9ID0gdGhpcy5wcm9wc1xuXG4gICAgY29uc3QgcGFyYW1XaXRoTWV0YSA9IHNwZWNTZWxlY3RvcnMucGFyYW1ldGVyV2l0aE1ldGFCeUlkZW50aXR5KHBhdGhNZXRob2QsIHJhd1BhcmFtKSB8fCBNYXAoKVxuICAgIGxldCB7IHNjaGVtYSB9ID0gZ2V0UGFyYW1ldGVyU2NoZW1hKHBhcmFtV2l0aE1ldGEsIHsgaXNPQVMzOiBzcGVjU2VsZWN0b3JzLmlzT0FTMygpIH0pXG4gICAgY29uc3QgcGFyYW1ldGVyTWVkaWFUeXBlID0gcGFyYW1XaXRoTWV0YVxuICAgICAgLmdldChcImNvbnRlbnRcIiwgTWFwKCkpXG4gICAgICAua2V5U2VxKClcbiAgICAgIC5maXJzdCgpXG5cbiAgICAvLyBnZXRTYW1wbGVTY2hlbWEgY291bGQgcmV0dXJuIG51bGxcbiAgICBjb25zdCBnZW5lcmF0ZWRTYW1wbGVWYWx1ZSA9IHNjaGVtYSA/IGZuLmdldFNhbXBsZVNjaGVtYShzY2hlbWEudG9KUygpLCBwYXJhbWV0ZXJNZWRpYVR5cGUsIHtcblxuICAgICAgaW5jbHVkZVdyaXRlT25seTogdHJ1ZVxuICAgIH0pIDogbnVsbFxuXG4gICAgaWYgKCFwYXJhbVdpdGhNZXRhIHx8IHBhcmFtV2l0aE1ldGEuZ2V0KFwidmFsdWVcIikgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYoIHBhcmFtV2l0aE1ldGEuZ2V0KFwiaW5cIikgIT09IFwiYm9keVwiICkge1xuICAgICAgbGV0IGluaXRpYWxWYWx1ZVxuXG4gICAgICAvLy8vIEZpbmQgYW4gaW5pdGlhbCB2YWx1ZVxuXG4gICAgICBpZiAoc3BlY1NlbGVjdG9ycy5pc1N3YWdnZXIyKCkpIHtcbiAgICAgICAgaW5pdGlhbFZhbHVlID1cbiAgICAgICAgICBwYXJhbVdpdGhNZXRhLmdldChcIngtZXhhbXBsZVwiKSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyBwYXJhbVdpdGhNZXRhLmdldChcIngtZXhhbXBsZVwiKVxuICAgICAgICAgIDogcGFyYW1XaXRoTWV0YS5nZXRJbihbXCJzY2hlbWFcIiwgXCJleGFtcGxlXCJdKSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyBwYXJhbVdpdGhNZXRhLmdldEluKFtcInNjaGVtYVwiLCBcImV4YW1wbGVcIl0pXG4gICAgICAgICAgOiAoc2NoZW1hICYmIHNjaGVtYS5nZXRJbihbXCJkZWZhdWx0XCJdKSlcbiAgICAgIH0gZWxzZSBpZiAoc3BlY1NlbGVjdG9ycy5pc09BUzMoKSkge1xuICAgICAgICBzY2hlbWEgPSB0aGlzLmNvbXBvc2VKc29uU2NoZW1hKHNjaGVtYSlcblxuICAgICAgICBjb25zdCBjdXJyZW50RXhhbXBsZUtleSA9IG9hczNTZWxlY3RvcnMuYWN0aXZlRXhhbXBsZXNNZW1iZXIoLi4ucGF0aE1ldGhvZCwgXCJwYXJhbWV0ZXJzXCIsIHRoaXMuZ2V0UGFyYW1LZXkoKSlcbiAgICAgICAgaW5pdGlhbFZhbHVlID1cbiAgICAgICAgICBwYXJhbVdpdGhNZXRhLmdldEluKFtcImV4YW1wbGVzXCIsIGN1cnJlbnRFeGFtcGxlS2V5LCBcInZhbHVlXCJdKSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyBwYXJhbVdpdGhNZXRhLmdldEluKFtcImV4YW1wbGVzXCIsIGN1cnJlbnRFeGFtcGxlS2V5LCBcInZhbHVlXCJdKVxuICAgICAgICAgIDogcGFyYW1XaXRoTWV0YS5nZXRJbihbXCJjb250ZW50XCIsIHBhcmFtZXRlck1lZGlhVHlwZSwgXCJleGFtcGxlXCJdKSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyBwYXJhbVdpdGhNZXRhLmdldEluKFtcImNvbnRlbnRcIiwgcGFyYW1ldGVyTWVkaWFUeXBlLCBcImV4YW1wbGVcIl0pXG4gICAgICAgICAgOiBwYXJhbVdpdGhNZXRhLmdldChcImV4YW1wbGVcIikgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gcGFyYW1XaXRoTWV0YS5nZXQoXCJleGFtcGxlXCIpXG4gICAgICAgICAgOiAoc2NoZW1hICYmIHNjaGVtYS5nZXQoXCJleGFtcGxlXCIpKSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyAoc2NoZW1hICYmIHNjaGVtYS5nZXQoXCJleGFtcGxlXCIpKVxuICAgICAgICAgIDogKHNjaGVtYSAmJiBzY2hlbWEuZ2V0KFwiZGVmYXVsdFwiKSkgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gKHNjaGVtYSAmJiBzY2hlbWEuZ2V0KFwiZGVmYXVsdFwiKSlcbiAgICAgICAgICA6IHBhcmFtV2l0aE1ldGEuZ2V0KFwiZGVmYXVsdFwiKSAvLyBlbnN1cmVzIHN1cHBvcnQgZm9yIGBwYXJhbWV0ZXJNYWNyb2BcbiAgICAgIH1cblxuICAgICAgLy8vLyBQcm9jZXNzIHRoZSBpbml0aWFsIHZhbHVlXG5cbiAgICAgIGlmKGluaXRpYWxWYWx1ZSAhPT0gdW5kZWZpbmVkICYmICFMaXN0LmlzTGlzdChpbml0aWFsVmFsdWUpKSB7XG4gICAgICAgIC8vIFN0cmluZ2lmeSBpZiBpdCBpc24ndCBhIExpc3RcbiAgICAgICAgaW5pdGlhbFZhbHVlID0gc3RyaW5naWZ5KGluaXRpYWxWYWx1ZSlcbiAgICAgIH1cblxuICAgICAgLy8vLyBEaXNwYXRjaCB0aGUgaW5pdGlhbCB2YWx1ZVxuXG4gICAgICBjb25zdCBzY2hlbWFPYmplY3RUeXBlID0gZm4uZ2V0U2NoZW1hT2JqZWN0VHlwZShzY2hlbWEpXG4gICAgICBjb25zdCBzY2hlbWFJdGVtc1R5cGUgPSBmbi5nZXRTY2hlbWFPYmplY3RUeXBlKHNjaGVtYT8uZ2V0KFwiaXRlbXNcIikpXG5cbiAgICAgIGlmKGluaXRpYWxWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VXcmFwcGVyKGluaXRpYWxWYWx1ZSlcbiAgICAgIH0gZWxzZSBpZihcbiAgICAgICAgc2NoZW1hT2JqZWN0VHlwZSA9PT0gXCJvYmplY3RcIlxuICAgICAgICAmJiBnZW5lcmF0ZWRTYW1wbGVWYWx1ZVxuICAgICAgICAmJiAhcGFyYW1XaXRoTWV0YS5nZXQoXCJleGFtcGxlc1wiKVxuICAgICAgKSB7XG4gICAgICAgIC8vIE9iamVjdCBwYXJhbWV0ZXJzIGdldCBzcGVjaWFsIHRyZWF0bWVudC4uIGlmIHRoZSB1c2VyIGRvZXNuJ3Qgc2V0IGFueVxuICAgICAgICAvLyBkZWZhdWx0IG9yIGV4YW1wbGUgdmFsdWVzLCB3ZSdsbCBwcm92aWRlIGluaXRpYWwgdmFsdWVzIGdlbmVyYXRlZCBmcm9tXG4gICAgICAgIC8vIHRoZSBzY2hlbWEuXG4gICAgICAgIC8vIEhvd2V2ZXIsIGlmIGBleGFtcGxlc2AgZXhpc3QgZm9yIHRoZSBwYXJhbWV0ZXIsIHdlIHdvbid0IGRvIGFueXRoaW5nLFxuICAgICAgICAvLyBzbyB0aGF0IHRoZSBhcHByb3ByaWF0ZSBgZXhhbXBsZXNgIGxvZ2ljIGNhbiB0YWtlIG92ZXIuXG4gICAgICAgIHRoaXMub25DaGFuZ2VXcmFwcGVyKFxuICAgICAgICAgIExpc3QuaXNMaXN0KGdlbmVyYXRlZFNhbXBsZVZhbHVlKSA/IChcbiAgICAgICAgICAgIGdlbmVyYXRlZFNhbXBsZVZhbHVlXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIHN0cmluZ2lmeShnZW5lcmF0ZWRTYW1wbGVWYWx1ZSlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKFxuICAgICAgICBzY2hlbWFPYmplY3RUeXBlID09PSBcImFycmF5XCJcbiAgICAgICAgJiYgc2NoZW1hSXRlbXNUeXBlID09PSBcIm9iamVjdFwiXG4gICAgICAgICYmIGdlbmVyYXRlZFNhbXBsZVZhbHVlXG4gICAgICAgICYmICFwYXJhbVdpdGhNZXRhLmdldChcImV4YW1wbGVzXCIpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZVdyYXBwZXIoXG4gICAgICAgICAgTGlzdC5pc0xpc3QoZ2VuZXJhdGVkU2FtcGxlVmFsdWUpID8gKFxuICAgICAgICAgICAgZ2VuZXJhdGVkU2FtcGxlVmFsdWVcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgTGlzdChKU09OLnBhcnNlKGdlbmVyYXRlZFNhbXBsZVZhbHVlKSlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRQYXJhbUtleSgpIHtcbiAgICBjb25zdCB7IHBhcmFtIH0gPSB0aGlzLnByb3BzXG5cbiAgICBpZighcGFyYW0pIHJldHVybiBudWxsXG5cbiAgICByZXR1cm4gYCR7cGFyYW0uZ2V0KFwibmFtZVwiKX0tJHtwYXJhbS5nZXQoXCJpblwiKX1gXG4gIH1cblxuICBjb21wb3NlSnNvblNjaGVtYShzY2hlbWEpIHtcbiAgICBjb25zdCB7IGZuIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3Qgb25lT2YgPSBzY2hlbWEuZ2V0KFwib25lT2ZcIik/LmdldCgwKT8udG9KUygpXG4gICAgY29uc3QgYW55T2YgPSBzY2hlbWEuZ2V0KFwiYW55T2ZcIik/LmdldCgwKT8udG9KUygpXG4gICAgcmV0dXJuIGZyb21KUyhmbi5tZXJnZUpzb25TY2hlbWEoc2NoZW1hLnRvSlMoKSwgb25lT2YgPz8gYW55T2YgPz8ge30pKVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7cGFyYW0sIHJhd1BhcmFtLCBnZXRDb21wb25lbnQsIGdldENvbmZpZ3MsIGlzRXhlY3V0ZSwgZm4sIG9uQ2hhbmdlQ29uc3VtZXMsIHNwZWNTZWxlY3RvcnMsIHBhdGhNZXRob2QsIHNwZWNQYXRoLCBvYXMzU2VsZWN0b3JzfSA9IHRoaXMucHJvcHNcblxuICAgIGxldCBpc09BUzMgPSBzcGVjU2VsZWN0b3JzLmlzT0FTMygpXG5cbiAgICBjb25zdCB7IHNob3dFeHRlbnNpb25zLCBzaG93Q29tbW9uRXh0ZW5zaW9ucyB9ID0gZ2V0Q29uZmlncygpXG5cbiAgICBpZighcGFyYW0pIHtcbiAgICAgIHBhcmFtID0gcmF3UGFyYW1cbiAgICB9XG5cbiAgICBpZighcmF3UGFyYW0pIHJldHVybiBudWxsXG5cbiAgICAvLyBjb25zdCBvbkNoYW5nZVdyYXBwZXIgPSAodmFsdWUpID0+IG9uQ2hhbmdlKHBhcmFtLCB2YWx1ZSlcbiAgICBjb25zdCBKc29uU2NoZW1hRm9ybSA9IGdldENvbXBvbmVudChcIkpzb25TY2hlbWFGb3JtXCIpXG4gICAgY29uc3QgUGFyYW1Cb2R5ID0gZ2V0Q29tcG9uZW50KFwiUGFyYW1Cb2R5XCIpXG4gICAgbGV0IGluVHlwZSA9IHBhcmFtLmdldChcImluXCIpXG4gICAgbGV0IGJvZHlQYXJhbSA9IGluVHlwZSAhPT0gXCJib2R5XCIgPyBudWxsXG4gICAgICA6IDxQYXJhbUJvZHkgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgZ2V0Q29uZmlncz17IGdldENvbmZpZ3MgfVxuICAgICAgICAgICAgICAgICAgIGZuPXtmbn1cbiAgICAgICAgICAgICAgICAgICBwYXJhbT17cGFyYW19XG4gICAgICAgICAgICAgICAgICAgY29uc3VtZXM9eyBzcGVjU2VsZWN0b3JzLmNvbnN1bWVzT3B0aW9uc0ZvcihwYXRoTWV0aG9kKSB9XG4gICAgICAgICAgICAgICAgICAgY29uc3VtZXNWYWx1ZT17IHNwZWNTZWxlY3RvcnMuY29udGVudFR5cGVWYWx1ZXMocGF0aE1ldGhvZCkuZ2V0KFwicmVxdWVzdENvbnRlbnRUeXBlXCIpIH1cbiAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZVdyYXBwZXJ9XG4gICAgICAgICAgICAgICAgICAgb25DaGFuZ2VDb25zdW1lcz17b25DaGFuZ2VDb25zdW1lc31cbiAgICAgICAgICAgICAgICAgICBpc0V4ZWN1dGU9eyBpc0V4ZWN1dGUgfVxuICAgICAgICAgICAgICAgICAgIHNwZWNTZWxlY3RvcnM9eyBzcGVjU2VsZWN0b3JzIH1cbiAgICAgICAgICAgICAgICAgICBwYXRoTWV0aG9kPXsgcGF0aE1ldGhvZCB9XG4gICAgICAvPlxuXG4gICAgY29uc3QgTW9kZWxFeGFtcGxlID0gZ2V0Q29tcG9uZW50KFwibW9kZWxFeGFtcGxlXCIpXG4gICAgY29uc3QgTWFya2Rvd24gPSBnZXRDb21wb25lbnQoXCJNYXJrZG93blwiLCB0cnVlKVxuICAgIGNvbnN0IFBhcmFtZXRlckV4dCA9IGdldENvbXBvbmVudChcIlBhcmFtZXRlckV4dFwiKVxuICAgIGNvbnN0IFBhcmFtZXRlckluY2x1ZGVFbXB0eSA9IGdldENvbXBvbmVudChcIlBhcmFtZXRlckluY2x1ZGVFbXB0eVwiKVxuICAgIGNvbnN0IEV4YW1wbGVzU2VsZWN0VmFsdWVSZXRhaW5lciA9IGdldENvbXBvbmVudChcIkV4YW1wbGVzU2VsZWN0VmFsdWVSZXRhaW5lclwiKVxuICAgIGNvbnN0IEV4YW1wbGUgPSBnZXRDb21wb25lbnQoXCJFeGFtcGxlXCIpXG5cbiAgICBsZXQgeyBzY2hlbWEgfSA9IGdldFBhcmFtZXRlclNjaGVtYShwYXJhbSwgeyBpc09BUzMgfSlcbiAgICBsZXQgcGFyYW1XaXRoTWV0YSA9IHNwZWNTZWxlY3RvcnMucGFyYW1ldGVyV2l0aE1ldGFCeUlkZW50aXR5KHBhdGhNZXRob2QsIHJhd1BhcmFtKSB8fCBNYXAoKVxuXG4gICAgaWYgKGlzT0FTMykge1xuICAgICAgc2NoZW1hID0gdGhpcy5jb21wb3NlSnNvblNjaGVtYShzY2hlbWEpXG4gICAgfVxuXG4gICAgbGV0IGZvcm1hdCA9IHNjaGVtYSA/IHNjaGVtYS5nZXQoXCJmb3JtYXRcIikgOiBudWxsXG4gICAgbGV0IGlzRm9ybURhdGEgPSBpblR5cGUgPT09IFwiZm9ybURhdGFcIlxuICAgIGxldCBpc0Zvcm1EYXRhU3VwcG9ydGVkID0gXCJGb3JtRGF0YVwiIGluIHdpblxuICAgIGxldCByZXF1aXJlZCA9IHBhcmFtLmdldChcInJlcXVpcmVkXCIpXG5cbiAgICBjb25zdCBzY2hlbWFPYmplY3RUeXBlID0gZm4uZ2V0U2NoZW1hT2JqZWN0VHlwZShzY2hlbWEpXG4gICAgY29uc3Qgc2NoZW1hSXRlbXNUeXBlID0gZm4uZ2V0U2NoZW1hT2JqZWN0VHlwZShzY2hlbWE/LmdldChcIml0ZW1zXCIpKVxuICAgIGNvbnN0IHNjaGVtYU9iamVjdFR5cGVMYWJlbCA9IGZuLmdldFNjaGVtYU9iamVjdFR5cGVMYWJlbChzY2hlbWEpXG4gICAgY29uc3QgaXNPYmplY3QgPSAhYm9keVBhcmFtICYmIHNjaGVtYU9iamVjdFR5cGUgPT09IFwib2JqZWN0XCJcbiAgICBjb25zdCBpc0FycmF5T2ZPYmplY3RzID0gIWJvZHlQYXJhbSAmJiBzY2hlbWFJdGVtc1R5cGUgPT09IFwib2JqZWN0XCJcblxuICAgIGxldCB2YWx1ZSA9IHBhcmFtV2l0aE1ldGEgPyBwYXJhbVdpdGhNZXRhLmdldChcInZhbHVlXCIpIDogXCJcIlxuICAgIGxldCBjb21tb25FeHQgPSBzaG93Q29tbW9uRXh0ZW5zaW9ucyA/IGdldENvbW1vbkV4dGVuc2lvbnMoc2NoZW1hKSA6IG51bGxcbiAgICBsZXQgZXh0ZW5zaW9ucyA9IHNob3dFeHRlbnNpb25zID8gZ2V0RXh0ZW5zaW9ucyhwYXJhbSkgOiBudWxsXG5cbiAgICBsZXQgcGFyYW1JdGVtcyAvLyB1bmRlZmluZWRcbiAgICBsZXQgcGFyYW1FbnVtIC8vIHVuZGVmaW5lZFxuICAgIGxldCBwYXJhbURlZmF1bHRWYWx1ZSAvLyB1bmRlZmluZWRcbiAgICBsZXQgcGFyYW1FeGFtcGxlIC8vIHVuZGVmaW5lZFxuICAgIGxldCBpc0Rpc3BsYXlQYXJhbUVudW0gPSBmYWxzZVxuXG4gICAgaWYgKCBwYXJhbSAhPT0gdW5kZWZpbmVkICYmIHNjaGVtYSApIHtcbiAgICAgIHBhcmFtSXRlbXMgPSBzY2hlbWEuZ2V0KFwiaXRlbXNcIilcbiAgICB9XG5cbiAgICBpZiAocGFyYW1JdGVtcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBwYXJhbUVudW0gPSBwYXJhbUl0ZW1zLmdldChcImVudW1cIilcbiAgICAgIHBhcmFtRGVmYXVsdFZhbHVlID0gcGFyYW1JdGVtcy5nZXQoXCJkZWZhdWx0XCIpXG4gICAgfSBlbHNlIGlmIChzY2hlbWEpIHtcbiAgICAgIHBhcmFtRW51bSA9IHNjaGVtYS5nZXQoXCJlbnVtXCIpXG4gICAgfVxuXG4gICAgaWYgKCBwYXJhbUVudW0gJiYgcGFyYW1FbnVtLnNpemUgJiYgcGFyYW1FbnVtLnNpemUgPiAwKSB7XG4gICAgICBpc0Rpc3BsYXlQYXJhbUVudW0gPSB0cnVlXG4gICAgfVxuXG4gICAgLy8gRGVmYXVsdCBhbmQgRXhhbXBsZSBWYWx1ZSBmb3IgcmVhZG9ubHkgZG9jXG4gICAgaWYgKCBwYXJhbSAhPT0gdW5kZWZpbmVkICkge1xuICAgICAgaWYgKHNjaGVtYSkge1xuICAgICAgICBwYXJhbURlZmF1bHRWYWx1ZSA9IHNjaGVtYS5nZXQoXCJkZWZhdWx0XCIpXG4gICAgICB9XG4gICAgICBpZiAocGFyYW1EZWZhdWx0VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwYXJhbURlZmF1bHRWYWx1ZSA9IHBhcmFtLmdldChcImRlZmF1bHRcIilcbiAgICAgIH1cbiAgICAgIHBhcmFtRXhhbXBsZSA9IHBhcmFtLmdldChcImV4YW1wbGVcIilcbiAgICAgIGlmIChwYXJhbUV4YW1wbGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwYXJhbUV4YW1wbGUgPSBwYXJhbS5nZXQoXCJ4LWV4YW1wbGVcIilcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBqc29uU2NoZW1hRm9ybSA9IGJvZHlQYXJhbSA/IG51bGxcbiAgICAgIDogPEpzb25TY2hlbWFGb3JtIGZuPXtmbn1cbiAgICAgICAgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9XG4gICAgICAgIHZhbHVlPXsgdmFsdWUgfVxuICAgICAgICByZXF1aXJlZD17IHJlcXVpcmVkIH1cbiAgICAgICAgZGlzYWJsZWQ9eyFpc0V4ZWN1dGV9XG4gICAgICAgIGRlc2NyaXB0aW9uPXtwYXJhbS5nZXQoXCJuYW1lXCIpfVxuICAgICAgICBvbkNoYW5nZT17IHRoaXMub25DaGFuZ2VXcmFwcGVyIH1cbiAgICAgICAgZXJyb3JzPXsgcGFyYW1XaXRoTWV0YS5nZXQoXCJlcnJvcnNcIikgfVxuICAgICAgICBzY2hlbWE9eyBzY2hlbWEgfVxuICAgICAgLz5cblxuICAgIHJldHVybiAoXG4gICAgICA8dHIgZGF0YS1wYXJhbS1uYW1lPXtwYXJhbS5nZXQoXCJuYW1lXCIpfSBkYXRhLXBhcmFtLWluPXtwYXJhbS5nZXQoXCJpblwiKX0+XG4gICAgICAgIDx0ZCBjbGFzc05hbWU9XCJwYXJhbWV0ZXJzLWNvbF9uYW1lXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3JlcXVpcmVkID8gXCJwYXJhbWV0ZXJfX25hbWUgcmVxdWlyZWRcIiA6IFwicGFyYW1ldGVyX19uYW1lXCJ9PlxuICAgICAgICAgICAgeyBwYXJhbS5nZXQoXCJuYW1lXCIpIH1cbiAgICAgICAgICAgIHsgIXJlcXVpcmVkID8gbnVsbCA6IDxzcGFuPiZuYnNwOyo8L3NwYW4+IH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBhcmFtZXRlcl9fdHlwZVwiPlxuICAgICAgICAgICAgeyBzY2hlbWFPYmplY3RUeXBlTGFiZWwgfVxuICAgICAgICAgICAgeyBmb3JtYXQgJiYgPHNwYW4gY2xhc3NOYW1lPVwicHJvcC1mb3JtYXRcIj4oJHtmb3JtYXR9KTwvc3Bhbj59XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYXJhbWV0ZXJfX2RlcHJlY2F0ZWRcIj5cbiAgICAgICAgICAgIHsgaXNPQVMzICYmIHBhcmFtLmdldChcImRlcHJlY2F0ZWRcIikgPyBcImRlcHJlY2F0ZWRcIjogbnVsbCB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYXJhbWV0ZXJfX2luXCI+KHsgcGFyYW0uZ2V0KFwiaW5cIikgfSk8L2Rpdj5cbiAgICAgICAgPC90ZD5cblxuICAgICAgICA8dGQgY2xhc3NOYW1lPVwicGFyYW1ldGVycy1jb2xfZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICB7IHBhcmFtLmdldChcImRlc2NyaXB0aW9uXCIpID8gPE1hcmtkb3duIHNvdXJjZT17IHBhcmFtLmdldChcImRlc2NyaXB0aW9uXCIpIH0vPiA6IG51bGwgfVxuXG4gICAgICAgICAgeyAoYm9keVBhcmFtIHx8ICFpc0V4ZWN1dGUpICYmIGlzRGlzcGxheVBhcmFtRW51bSA/XG4gICAgICAgICAgICA8TWFya2Rvd24gY2xhc3NOYW1lPVwicGFyYW1ldGVyX19lbnVtXCIgc291cmNlPXtcbiAgICAgICAgICAgICAgICBcIjxpPkF2YWlsYWJsZSB2YWx1ZXM8L2k+IDogXCIgKyBwYXJhbUVudW0ubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW1cbiAgICAgICAgICAgICAgICAgIH0pLnRvQXJyYXkoKS5tYXAoU3RyaW5nKS5qb2luKFwiLCBcIil9Lz5cbiAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHsgKGJvZHlQYXJhbSB8fCAhaXNFeGVjdXRlKSAmJiBwYXJhbURlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkID9cbiAgICAgICAgICAgIDxNYXJrZG93biBjbGFzc05hbWU9XCJwYXJhbWV0ZXJfX2RlZmF1bHRcIiBzb3VyY2U9e1wiPGk+RGVmYXVsdCB2YWx1ZTwvaT4gOiBcIiArIHBhcmFtRGVmYXVsdFZhbHVlfS8+XG4gICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB7IChib2R5UGFyYW0gfHwgIWlzRXhlY3V0ZSkgJiYgcGFyYW1FeGFtcGxlICE9PSB1bmRlZmluZWQgP1xuICAgICAgICAgICAgPE1hcmtkb3duIHNvdXJjZT17XCI8aT5FeGFtcGxlPC9pPiA6IFwiICsgcGFyYW1FeGFtcGxlfS8+XG4gICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB7KGlzRm9ybURhdGEgJiYgIWlzRm9ybURhdGFTdXBwb3J0ZWQpICYmIDxkaXY+RXJyb3I6IHlvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEZvcm1EYXRhPC9kaXY+fVxuXG4gICAgICAgICAge1xuICAgICAgICAgICAgaXNPQVMzICYmIHBhcmFtLmdldChcImV4YW1wbGVzXCIpID8gKFxuICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJwYXJhbWV0ZXItY29udHJvbHNcIj5cbiAgICAgICAgICAgICAgICA8RXhhbXBsZXNTZWxlY3RWYWx1ZVJldGFpbmVyXG4gICAgICAgICAgICAgICAgICBleGFtcGxlcz17cGFyYW0uZ2V0KFwiZXhhbXBsZXNcIil9XG4gICAgICAgICAgICAgICAgICBvblNlbGVjdD17dGhpcy5fb25FeGFtcGxlU2VsZWN0fVxuICAgICAgICAgICAgICAgICAgdXBkYXRlVmFsdWU9e3RoaXMub25DaGFuZ2VXcmFwcGVyfVxuICAgICAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICBkZWZhdWx0VG9GaXJzdEV4YW1wbGU9e3RydWV9XG4gICAgICAgICAgICAgICAgICBjdXJyZW50S2V5PXtvYXMzU2VsZWN0b3JzLmFjdGl2ZUV4YW1wbGVzTWVtYmVyKC4uLnBhdGhNZXRob2QsIFwicGFyYW1ldGVyc1wiLCB0aGlzLmdldFBhcmFtS2V5KCkpfVxuICAgICAgICAgICAgICAgICAgY3VycmVudFVzZXJJbnB1dFZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICApIDogbnVsbFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHsgKGlzT2JqZWN0IHx8IGlzQXJyYXlPZk9iamVjdHMpID8gKFxuICAgICAgICAgICAgPE1vZGVsRXhhbXBsZVxuICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH1cbiAgICAgICAgICAgICAgc3BlY1BhdGg9e3NwZWNQYXRoLnB1c2goXCJzY2hlbWFcIil9XG4gICAgICAgICAgICAgIGdldENvbmZpZ3M9e2dldENvbmZpZ3N9XG4gICAgICAgICAgICAgIGlzRXhlY3V0ZT17aXNFeGVjdXRlfVxuICAgICAgICAgICAgICBzcGVjU2VsZWN0b3JzPXtzcGVjU2VsZWN0b3JzfVxuICAgICAgICAgICAgICBzY2hlbWE9e3NjaGVtYX1cbiAgICAgICAgICAgICAgZXhhbXBsZT17anNvblNjaGVtYUZvcm19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IGpzb25TY2hlbWFGb3JtXG4gICAgICAgICAgfVxuXG4gICAgICAgICAge1xuICAgICAgICAgICAgYm9keVBhcmFtICYmIHNjaGVtYSA/IDxNb2RlbEV4YW1wbGUgZ2V0Q29tcG9uZW50PXsgZ2V0Q29tcG9uZW50IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNQYXRoPXtzcGVjUGF0aC5wdXNoKFwic2NoZW1hXCIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29uZmlncz17IGdldENvbmZpZ3MgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNFeGVjdXRlPXsgaXNFeGVjdXRlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNTZWxlY3RvcnM9eyBzcGVjU2VsZWN0b3JzIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYT17IHNjaGVtYSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGFtcGxlPXsgYm9keVBhcmFtIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVXcml0ZU9ubHk9eyB0cnVlIH0vPlxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB7XG4gICAgICAgICAgICAhYm9keVBhcmFtICYmIGlzRXhlY3V0ZSAmJiBwYXJhbS5nZXQoXCJhbGxvd0VtcHR5VmFsdWVcIikgP1xuICAgICAgICAgICAgPFBhcmFtZXRlckluY2x1ZGVFbXB0eVxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZUluY2x1ZGVFbXB0eX1cbiAgICAgICAgICAgICAgaXNJbmNsdWRlZD17c3BlY1NlbGVjdG9ycy5wYXJhbWV0ZXJJbmNsdXNpb25TZXR0aW5nRm9yKHBhdGhNZXRob2QsIHBhcmFtLmdldChcIm5hbWVcIiksIHBhcmFtLmdldChcImluXCIpKX1cbiAgICAgICAgICAgICAgaXNEaXNhYmxlZD17IWlzRW1wdHlWYWx1ZSh2YWx1ZSl9IC8+XG4gICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB7XG4gICAgICAgICAgICBpc09BUzMgJiYgcGFyYW0uZ2V0KFwiZXhhbXBsZXNcIikgPyAoXG4gICAgICAgICAgICAgIDxFeGFtcGxlXG4gICAgICAgICAgICAgICAgZXhhbXBsZT17cGFyYW0uZ2V0SW4oW1xuICAgICAgICAgICAgICAgICAgXCJleGFtcGxlc1wiLFxuICAgICAgICAgICAgICAgICAgb2FzM1NlbGVjdG9ycy5hY3RpdmVFeGFtcGxlc01lbWJlciguLi5wYXRoTWV0aG9kLCBcInBhcmFtZXRlcnNcIiwgdGhpcy5nZXRQYXJhbUtleSgpKVxuICAgICAgICAgICAgICAgIF0pfVxuICAgICAgICAgICAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgICAgICAgICAgICAgIGdldENvbmZpZ3M9e2dldENvbmZpZ3N9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHsgIXNob3dDb21tb25FeHRlbnNpb25zIHx8ICFjb21tb25FeHQuc2l6ZSA/IG51bGwgOiBjb21tb25FeHQuZW50cnlTZXEoKS5tYXAoKFtrZXksIHZdKSA9PiA8UGFyYW1ldGVyRXh0IGtleT17YCR7a2V5fS0ke3Z9YH0geEtleT17a2V5fSB4VmFsPXt2fSAvPiApfVxuICAgICAgICAgIHsgIXNob3dFeHRlbnNpb25zIHx8ICFleHRlbnNpb25zLnNpemUgPyBudWxsIDogZXh0ZW5zaW9ucy5lbnRyeVNlcSgpLm1hcCgoW2tleSwgdl0pID0+IDxQYXJhbWV0ZXJFeHQga2V5PXtgJHtrZXl9LSR7dn1gfSB4S2V5PXtrZXl9IHhWYWw9e3Z9IC8+ICl9XG5cbiAgICAgICAgPC90ZD5cblxuICAgICAgPC90cj5cbiAgICApXG5cbiAgfVxuXG59XG4iLCJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFeGVjdXRlIGV4dGVuZHMgQ29tcG9uZW50IHtcblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBzcGVjQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG9wZXJhdGlvbjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHBhdGg6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBtZXRob2Q6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBvYXMzU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgb2FzM0FjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBvbkV4ZWN1dGU6IFByb3BUeXBlcy5mdW5jLFxuICAgIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbFxuICB9XG5cbiAgaGFuZGxlVmFsaWRhdGVQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgIGxldCB7IHNwZWNTZWxlY3RvcnMsIHNwZWNBY3Rpb25zLCBwYXRoLCBtZXRob2QgfSA9IHRoaXMucHJvcHNcbiAgICBzcGVjQWN0aW9ucy52YWxpZGF0ZVBhcmFtcyhbcGF0aCwgbWV0aG9kXSlcbiAgICByZXR1cm4gc3BlY1NlbGVjdG9ycy52YWxpZGF0ZUJlZm9yZUV4ZWN1dGUoW3BhdGgsIG1ldGhvZF0pXG4gIH1cblxuICBoYW5kbGVWYWxpZGF0ZVJlcXVlc3RCb2R5ID0gKCkgPT4ge1xuICAgIGxldCB7IHBhdGgsIG1ldGhvZCwgc3BlY1NlbGVjdG9ycywgb2FzM1NlbGVjdG9ycywgb2FzM0FjdGlvbnMgfSA9IHRoaXMucHJvcHNcbiAgICBsZXQgdmFsaWRhdGlvbkVycm9ycyA9IHtcbiAgICAgIG1pc3NpbmdCb2R5VmFsdWU6IGZhbHNlLFxuICAgICAgbWlzc2luZ1JlcXVpcmVkS2V5czogW11cbiAgICB9XG4gICAgLy8gY29udGV4dDogcmVzZXQgZXJyb3JzLCB0aGVuIChyZSl2YWxpZGF0ZVxuICAgIG9hczNBY3Rpb25zLmNsZWFyUmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yKHsgcGF0aCwgbWV0aG9kIH0pXG4gICAgbGV0IG9hczNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGUgPSBzcGVjU2VsZWN0b3JzLmdldE9BUzNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGUoW3BhdGgsIG1ldGhvZF0pXG4gICAgbGV0IG9hczNSZXF1ZXN0Qm9keVZhbHVlID0gb2FzM1NlbGVjdG9ycy5yZXF1ZXN0Qm9keVZhbHVlKHBhdGgsIG1ldGhvZClcbiAgICBsZXQgb2FzM1ZhbGlkYXRlQmVmb3JlRXhlY3V0ZVN1Y2Nlc3MgPSBvYXMzU2VsZWN0b3JzLnZhbGlkYXRlQmVmb3JlRXhlY3V0ZShbcGF0aCwgbWV0aG9kXSlcbiAgICBsZXQgb2FzM1JlcXVlc3RDb250ZW50VHlwZSA9IG9hczNTZWxlY3RvcnMucmVxdWVzdENvbnRlbnRUeXBlKHBhdGgsIG1ldGhvZClcblxuICAgIGlmICghb2FzM1ZhbGlkYXRlQmVmb3JlRXhlY3V0ZVN1Y2Nlc3MpIHtcbiAgICAgIHZhbGlkYXRpb25FcnJvcnMubWlzc2luZ0JvZHlWYWx1ZSA9IHRydWVcbiAgICAgIG9hczNBY3Rpb25zLnNldFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcih7IHBhdGgsIG1ldGhvZCwgdmFsaWRhdGlvbkVycm9ycyB9KVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICAgIGlmICghb2FzM1JlcXVpcmVkUmVxdWVzdEJvZHlDb250ZW50VHlwZSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgbGV0IG1pc3NpbmdSZXF1aXJlZEtleXMgPSBvYXMzU2VsZWN0b3JzLnZhbGlkYXRlU2hhbGxvd1JlcXVpcmVkKHtcbiAgICAgIG9hczNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGUsXG4gICAgICBvYXMzUmVxdWVzdENvbnRlbnRUeXBlLFxuICAgICAgb2FzM1JlcXVlc3RCb2R5VmFsdWVcbiAgICB9KVxuICAgIGlmICghbWlzc2luZ1JlcXVpcmVkS2V5cyB8fCBtaXNzaW5nUmVxdWlyZWRLZXlzLmxlbmd0aCA8IDEpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIG1pc3NpbmdSZXF1aXJlZEtleXMuZm9yRWFjaCgobWlzc2luZ0tleSkgPT4ge1xuICAgICAgdmFsaWRhdGlvbkVycm9ycy5taXNzaW5nUmVxdWlyZWRLZXlzLnB1c2gobWlzc2luZ0tleSlcbiAgICB9KVxuICAgIG9hczNBY3Rpb25zLnNldFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcih7IHBhdGgsIG1ldGhvZCwgdmFsaWRhdGlvbkVycm9ycyB9KVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaGFuZGxlVmFsaWRhdGlvblJlc3VsdFBhc3MgPSAoKSA9PiB7XG4gICAgbGV0IHsgc3BlY0FjdGlvbnMsIG9wZXJhdGlvbiwgcGF0aCwgbWV0aG9kIH0gPSB0aGlzLnByb3BzXG4gICAgaWYgKHRoaXMucHJvcHMub25FeGVjdXRlKSB7XG4gICAgICAvLyBsb2FkaW5nIHNwaW5uZXJcbiAgICAgIHRoaXMucHJvcHMub25FeGVjdXRlKClcbiAgICB9XG4gICAgc3BlY0FjdGlvbnMuZXhlY3V0ZSh7IG9wZXJhdGlvbiwgcGF0aCwgbWV0aG9kIH0pXG4gIH1cblxuICBoYW5kbGVWYWxpZGF0aW9uUmVzdWx0RmFpbCA9ICgpID0+IHtcbiAgICBsZXQgeyBzcGVjQWN0aW9ucywgcGF0aCwgbWV0aG9kIH0gPSB0aGlzLnByb3BzXG4gICAgLy8gZGVmZXJyZWQgYnkgNDBtcywgdG8gZ2l2ZSBlbGVtZW50IGNsYXNzIGNoYW5nZSB0aW1lIHRvIHNldHRsZS5cbiAgICBzcGVjQWN0aW9ucy5jbGVhclZhbGlkYXRlUGFyYW1zKFtwYXRoLCBtZXRob2RdKVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc3BlY0FjdGlvbnMudmFsaWRhdGVQYXJhbXMoW3BhdGgsIG1ldGhvZF0pXG4gICAgfSwgNDApXG4gIH1cblxuICBoYW5kbGVWYWxpZGF0aW9uUmVzdWx0ID0gKGlzUGFzcykgPT4ge1xuICAgIGlmIChpc1Bhc3MpIHtcbiAgICAgIHRoaXMuaGFuZGxlVmFsaWRhdGlvblJlc3VsdFBhc3MoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhbmRsZVZhbGlkYXRpb25SZXN1bHRGYWlsKClcbiAgICB9XG4gIH1cblxuICBvbkNsaWNrID0gKCkgPT4ge1xuICAgIGxldCBwYXJhbXNSZXN1bHQgPSB0aGlzLmhhbmRsZVZhbGlkYXRlUGFyYW1ldGVycygpXG4gICAgbGV0IHJlcXVlc3RCb2R5UmVzdWx0ID0gdGhpcy5oYW5kbGVWYWxpZGF0ZVJlcXVlc3RCb2R5KClcbiAgICBsZXQgaXNQYXNzID0gcGFyYW1zUmVzdWx0ICYmIHJlcXVlc3RCb2R5UmVzdWx0XG4gICAgdGhpcy5oYW5kbGVWYWxpZGF0aW9uUmVzdWx0KGlzUGFzcylcbiAgfVxuXG4gIG9uQ2hhbmdlUHJvZHVjZXNXcmFwcGVyID0gKCB2YWwgKSA9PiB0aGlzLnByb3BzLnNwZWNBY3Rpb25zLmNoYW5nZVByb2R1Y2VzVmFsdWUoW3RoaXMucHJvcHMucGF0aCwgdGhpcy5wcm9wcy5tZXRob2RdLCB2YWwpXG5cbiAgcmVuZGVyKCl7XG4gICAgY29uc3QgeyBkaXNhYmxlZCB9ID0gdGhpcy5wcm9wc1xuICAgIHJldHVybiAoXG4gICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYnRuIGV4ZWN1dGUgb3BibG9jay1jb250cm9sX19idG5cIiBvbkNsaWNrPXsgdGhpcy5vbkNsaWNrIH0gZGlzYWJsZWQ9e2Rpc2FibGVkfT5cbiAgICAgICAgICBFeGVjdXRlXG4gICAgICAgIDwvYnV0dG9uPlxuICAgIClcbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBJbSBmcm9tIFwiaW1tdXRhYmxlXCJcblxuY29uc3QgcHJvcENsYXNzID0gXCJoZWFkZXItZXhhbXBsZVwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEhlYWRlcnMgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGhlYWRlcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyBoZWFkZXJzLCBnZXRDb21wb25lbnQgfSA9IHRoaXMucHJvcHNcblxuICAgIGNvbnN0IFByb3BlcnR5ID0gZ2V0Q29tcG9uZW50KFwiUHJvcGVydHlcIilcbiAgICBjb25zdCBNYXJrZG93biA9IGdldENvbXBvbmVudChcIk1hcmtkb3duXCIsIHRydWUpXG5cbiAgICBpZiAoICFoZWFkZXJzIHx8ICFoZWFkZXJzLnNpemUgKVxuICAgICAgcmV0dXJuIG51bGxcblxuICAgICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGVhZGVycy13cmFwcGVyXCI+XG4gICAgICAgIDxoNCBjbGFzc05hbWU9XCJoZWFkZXJzX190aXRsZVwiPkhlYWRlcnM6PC9oND5cbiAgICAgICAgPHRhYmxlIGNsYXNzTmFtZT1cImhlYWRlcnNcIj5cbiAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICA8dHIgY2xhc3NOYW1lPVwiaGVhZGVyLXJvd1wiPlxuICAgICAgICAgICAgICA8dGggY2xhc3NOYW1lPVwiaGVhZGVyLWNvbFwiPk5hbWU8L3RoPlxuICAgICAgICAgICAgICA8dGggY2xhc3NOYW1lPVwiaGVhZGVyLWNvbFwiPkRlc2NyaXB0aW9uPC90aD5cbiAgICAgICAgICAgICAgPHRoIGNsYXNzTmFtZT1cImhlYWRlci1jb2xcIj5UeXBlPC90aD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAge1xuICAgICAgICAgICAgaGVhZGVycy5lbnRyeVNlcSgpLm1hcCggKFsga2V5LCBoZWFkZXIgXSkgPT4ge1xuICAgICAgICAgICAgICBpZighSW0uTWFwLmlzTWFwKGhlYWRlcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBoZWFkZXIuZ2V0KFwiZGVzY3JpcHRpb25cIilcbiAgICAgICAgICAgICAgY29uc3QgdHlwZSA9IGhlYWRlci5nZXRJbihbXCJzY2hlbWFcIl0pID8gaGVhZGVyLmdldEluKFtcInNjaGVtYVwiLCBcInR5cGVcIl0pIDogaGVhZGVyLmdldEluKFtcInR5cGVcIl0pXG4gICAgICAgICAgICAgIGNvbnN0IHNjaGVtYUV4YW1wbGUgPSBoZWFkZXIuZ2V0SW4oW1wic2NoZW1hXCIsIFwiZXhhbXBsZVwiXSlcblxuICAgICAgICAgICAgICByZXR1cm4gKDx0ciBrZXk9eyBrZXkgfT5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwiaGVhZGVyLWNvbFwiPnsga2V5IH08L3RkPlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJoZWFkZXItY29sXCI+e1xuICAgICAgICAgICAgICAgICAgIWRlc2NyaXB0aW9uID8gbnVsbCA6IDxNYXJrZG93biBzb3VyY2U9eyBkZXNjcmlwdGlvbiB9IC8+XG4gICAgICAgICAgICAgICAgfTwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT1cImhlYWRlci1jb2xcIj57IHR5cGUgfSB7IHNjaGVtYUV4YW1wbGUgPyA8UHJvcGVydHkgcHJvcEtleT17IFwiRXhhbXBsZVwiIH0gcHJvcFZhbD17IHNjaGVtYUV4YW1wbGUgfSBwcm9wQ2xhc3M9eyBwcm9wQ2xhc3MgfSAvPiA6IG51bGwgfTwvdGQ+XG4gICAgICAgICAgICAgIDwvdHI+KVxuICAgICAgICAgICAgfSkudG9BcnJheSgpXG4gICAgICAgICAgfVxuICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDwvdGFibGU+XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgeyBMaXN0IH0gZnJvbSBcImltbXV0YWJsZVwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVycm9ycyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBlZGl0b3JBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGVyclNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGxheW91dFNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGxheW91dEFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHsgZWRpdG9yQWN0aW9ucywgZXJyU2VsZWN0b3JzLCBsYXlvdXRTZWxlY3RvcnMsIGxheW91dEFjdGlvbnMsIGdldENvbXBvbmVudCB9ID0gdGhpcy5wcm9wc1xuXG4gICAgY29uc3QgQ29sbGFwc2UgPSBnZXRDb21wb25lbnQoXCJDb2xsYXBzZVwiKVxuXG4gICAgaWYoZWRpdG9yQWN0aW9ucyAmJiBlZGl0b3JBY3Rpb25zLmp1bXBUb0xpbmUpIHtcbiAgICAgIHZhciBqdW1wVG9MaW5lID0gZWRpdG9yQWN0aW9ucy5qdW1wVG9MaW5lXG4gICAgfVxuXG4gICAgbGV0IGVycm9ycyA9IGVyclNlbGVjdG9ycy5hbGxFcnJvcnMoKVxuXG4gICAgLy8gYWxsIHRocm93biBlcnJvcnMsIHBsdXMgZXJyb3ItbGV2ZWwgZXZlcnl0aGluZyBlbHNlXG4gICAgbGV0IGFsbEVycm9yc1RvRGlzcGxheSA9IGVycm9ycy5maWx0ZXIoZXJyID0+IGVyci5nZXQoXCJ0eXBlXCIpID09PSBcInRocm93blwiID8gdHJ1ZSA6ZXJyLmdldChcImxldmVsXCIpID09PSBcImVycm9yXCIpXG5cbiAgICBpZighYWxsRXJyb3JzVG9EaXNwbGF5IHx8IGFsbEVycm9yc1RvRGlzcGxheS5jb3VudCgpIDwgMSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBsZXQgaXNWaXNpYmxlID0gbGF5b3V0U2VsZWN0b3JzLmlzU2hvd24oW1wiZXJyb3JQYW5lXCJdLCB0cnVlKVxuICAgIGxldCB0b2dnbGVWaXNpYmlsaXR5ID0gKCkgPT4gbGF5b3V0QWN0aW9ucy5zaG93KFtcImVycm9yUGFuZVwiXSwgIWlzVmlzaWJsZSlcblxuICAgIGxldCBzb3J0ZWRKU0Vycm9ycyA9IGFsbEVycm9yc1RvRGlzcGxheS5zb3J0QnkoZXJyID0+IGVyci5nZXQoXCJsaW5lXCIpKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxwcmUgY2xhc3NOYW1lPVwiZXJyb3JzLXdyYXBwZXJcIj5cbiAgICAgICAgPGhncm91cCBjbGFzc05hbWU9XCJlcnJvclwiPlxuICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJlcnJvcnNfX3RpdGxlXCI+RXJyb3JzPC9oND5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0biBlcnJvcnNfX2NsZWFyLWJ0blwiIG9uQ2xpY2s9eyB0b2dnbGVWaXNpYmlsaXR5IH0+eyBpc1Zpc2libGUgPyBcIkhpZGVcIiA6IFwiU2hvd1wiIH08L2J1dHRvbj5cbiAgICAgICAgPC9oZ3JvdXA+XG4gICAgICAgIDxDb2xsYXBzZSBpc09wZW5lZD17IGlzVmlzaWJsZSB9IGFuaW1hdGVkID5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImVycm9yc1wiPlxuICAgICAgICAgICAgeyBzb3J0ZWRKU0Vycm9ycy5tYXAoKGVyciwgaSkgPT4ge1xuICAgICAgICAgICAgICBsZXQgdHlwZSA9IGVyci5nZXQoXCJ0eXBlXCIpXG4gICAgICAgICAgICAgIGlmKHR5cGUgPT09IFwidGhyb3duXCIgfHwgdHlwZSA9PT0gXCJhdXRoXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gPFRocm93bkVycm9ySXRlbSBrZXk9eyBpIH0gZXJyb3I9eyBlcnIuZ2V0KFwiZXJyb3JcIikgfHwgZXJyIH0ganVtcFRvTGluZT17anVtcFRvTGluZX0gLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZih0eXBlID09PSBcInNwZWNcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiA8U3BlY0Vycm9ySXRlbSBrZXk9eyBpIH0gZXJyb3I9eyBlcnIgfSBqdW1wVG9MaW5lPXtqdW1wVG9MaW5lfSAvPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvQ29sbGFwc2U+XG4gICAgICA8L3ByZT5cbiAgICAgIClcbiAgICB9XG59XG5cbmNvbnN0IFRocm93bkVycm9ySXRlbSA9ICggeyBlcnJvciwganVtcFRvTGluZSB9ICkgPT4ge1xuICBpZighZXJyb3IpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGxldCBlcnJvckxpbmUgPSBlcnJvci5nZXQoXCJsaW5lXCIpXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImVycm9yLXdyYXBwZXJcIj5cbiAgICAgIHsgIWVycm9yID8gbnVsbCA6XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGg0PnsgKGVycm9yLmdldChcInNvdXJjZVwiKSAmJiBlcnJvci5nZXQoXCJsZXZlbFwiKSkgP1xuICAgICAgICAgICAgdG9UaXRsZUNhc2UoZXJyb3IuZ2V0KFwic291cmNlXCIpKSArIFwiIFwiICsgZXJyb3IuZ2V0KFwibGV2ZWxcIikgOiBcIlwiIH1cbiAgICAgICAgICB7IGVycm9yLmdldChcInBhdGhcIikgPyA8c21hbGw+IGF0IHtlcnJvci5nZXQoXCJwYXRoXCIpfTwvc21hbGw+OiBudWxsIH08L2g0PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm1lc3NhZ2UgdGhyb3duXCI+XG4gICAgICAgICAgICB7IGVycm9yLmdldChcIm1lc3NhZ2VcIikgfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImVycm9yLWxpbmVcIj5cbiAgICAgICAgICAgIHsgZXJyb3JMaW5lICYmIGp1bXBUb0xpbmUgPyA8YSBvbkNsaWNrPXtqdW1wVG9MaW5lLmJpbmQobnVsbCwgZXJyb3JMaW5lKX0+SnVtcCB0byBsaW5lIHsgZXJyb3JMaW5lIH08L2E+IDogbnVsbCB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG5jb25zdCBTcGVjRXJyb3JJdGVtID0gKCB7IGVycm9yLCBqdW1wVG9MaW5lID0gbnVsbCB9ICkgPT4ge1xuICBsZXQgbG9jYXRpb25NZXNzYWdlID0gbnVsbFxuXG4gIGlmKGVycm9yLmdldChcInBhdGhcIikpIHtcbiAgICBpZihMaXN0LmlzTGlzdChlcnJvci5nZXQoXCJwYXRoXCIpKSkge1xuICAgICAgbG9jYXRpb25NZXNzYWdlID0gPHNtYWxsPmF0IHsgZXJyb3IuZ2V0KFwicGF0aFwiKS5qb2luKFwiLlwiKSB9PC9zbWFsbD5cbiAgICB9IGVsc2Uge1xuICAgICAgbG9jYXRpb25NZXNzYWdlID0gPHNtYWxsPmF0IHsgZXJyb3IuZ2V0KFwicGF0aFwiKSB9PC9zbWFsbD5cbiAgICB9XG4gIH0gZWxzZSBpZihlcnJvci5nZXQoXCJsaW5lXCIpICYmICFqdW1wVG9MaW5lKSB7XG4gICAgbG9jYXRpb25NZXNzYWdlID0gPHNtYWxsPm9uIGxpbmUgeyBlcnJvci5nZXQoXCJsaW5lXCIpIH08L3NtYWxsPlxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImVycm9yLXdyYXBwZXJcIj5cbiAgICAgIHsgIWVycm9yID8gbnVsbCA6XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGg0PnsgdG9UaXRsZUNhc2UoZXJyb3IuZ2V0KFwic291cmNlXCIpKSArIFwiIFwiICsgZXJyb3IuZ2V0KFwibGV2ZWxcIikgfSZuYnNwO3sgbG9jYXRpb25NZXNzYWdlIH08L2g0PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm1lc3NhZ2VcIj57IGVycm9yLmdldChcIm1lc3NhZ2VcIikgfTwvc3Bhbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImVycm9yLWxpbmVcIj5cbiAgICAgICAgICAgIHsganVtcFRvTGluZSA/IChcbiAgICAgICAgICAgICAgPGEgb25DbGljaz17anVtcFRvTGluZS5iaW5kKG51bGwsIGVycm9yLmdldChcImxpbmVcIikpfT5KdW1wIHRvIGxpbmUgeyBlcnJvci5nZXQoXCJsaW5lXCIpIH08L2E+XG4gICAgICAgICAgICApIDogbnVsbCB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG5mdW5jdGlvbiB0b1RpdGxlQ2FzZShzdHIpIHtcbiAgcmV0dXJuIChzdHIgfHwgXCJcIilcbiAgICAuc3BsaXQoXCIgXCIpXG4gICAgLm1hcChzdWJzdHIgPT4gc3Vic3RyWzBdLnRvVXBwZXJDYXNlKCkgKyBzdWJzdHIuc2xpY2UoMSkpXG4gICAgLmpvaW4oXCIgXCIpXG59XG5cblRocm93bkVycm9ySXRlbS5wcm9wVHlwZXMgPSB7XG4gIGVycm9yOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGp1bXBUb0xpbmU6IFByb3BUeXBlcy5mdW5jXG59XG5cblNwZWNFcnJvckl0ZW0ucHJvcFR5cGVzID0ge1xuICBlcnJvcjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBqdW1wVG9MaW5lOiBQcm9wVHlwZXMuZnVuY1xufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5pbXBvcnQgeyBmcm9tSlMgfSBmcm9tIFwiaW1tdXRhYmxlXCJcblxuY29uc3Qgbm9vcCA9ICgpPT57fVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb250ZW50VHlwZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBhcmlhQ29udHJvbHM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY29udGVudFR5cGVzOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtJbVByb3BUeXBlcy5saXN0LCBJbVByb3BUeXBlcy5zZXQsIEltUHJvcFR5cGVzLnNlcV0pLFxuICAgIGNvbnRyb2xJZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB2YWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGFyaWFMYWJlbDogUHJvcFR5cGVzLnN0cmluZ1xuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBvbkNoYW5nZTogbm9vcCxcbiAgICB2YWx1ZTogbnVsbCxcbiAgICBjb250ZW50VHlwZXM6IGZyb21KUyhbXCJhcHBsaWNhdGlvbi9qc29uXCJdKSxcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIC8vIE5lZWRlZCB0byBwb3B1bGF0ZSB0aGUgZm9ybSwgaW5pdGlhbGx5XG4gICAgaWYodGhpcy5wcm9wcy5jb250ZW50VHlwZXMpIHtcbiAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UodGhpcy5wcm9wcy5jb250ZW50VHlwZXMuZmlyc3QoKSlcbiAgICB9XG4gIH1cblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICBpZighbmV4dFByb3BzLmNvbnRlbnRUeXBlcyB8fCAhbmV4dFByb3BzLmNvbnRlbnRUeXBlcy5zaXplKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZighbmV4dFByb3BzLmNvbnRlbnRUeXBlcy5pbmNsdWRlcyhuZXh0UHJvcHMudmFsdWUpKSB7XG4gICAgICBuZXh0UHJvcHMub25DaGFuZ2UobmV4dFByb3BzLmNvbnRlbnRUeXBlcy5maXJzdCgpKVxuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlV3JhcHBlciA9IGUgPT4gdGhpcy5wcm9wcy5vbkNoYW5nZShlLnRhcmdldC52YWx1ZSlcblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHsgYXJpYUNvbnRyb2xzLCBhcmlhTGFiZWwsIGNsYXNzTmFtZSwgY29udGVudFR5cGVzLCBjb250cm9sSWQsIHZhbHVlIH0gPSB0aGlzLnByb3BzXG5cbiAgICBpZiAoICFjb250ZW50VHlwZXMgfHwgIWNvbnRlbnRUeXBlcy5zaXplIClcbiAgICAgIHJldHVybiBudWxsXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9eyBcImNvbnRlbnQtdHlwZS13cmFwcGVyIFwiICsgKCBjbGFzc05hbWUgfHwgXCJcIiApIH0+XG4gICAgICAgIDxzZWxlY3QgYXJpYS1jb250cm9scz17YXJpYUNvbnRyb2xzfSBhcmlhLWxhYmVsPXthcmlhTGFiZWx9IGNsYXNzTmFtZT1cImNvbnRlbnQtdHlwZVwiIGlkPXtjb250cm9sSWR9IG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlV3JhcHBlcn0gdmFsdWU9e3ZhbHVlIHx8IFwiXCJ9ID5cbiAgICAgICAgICB7IGNvbnRlbnRUeXBlcy5tYXAoICh2YWwpID0+IHtcbiAgICAgICAgICAgIHJldHVybiA8b3B0aW9uIGtleT17IHZhbCB9IHZhbHVlPXsgdmFsIH0+eyB2YWwgfTwvb3B0aW9uPlxuICAgICAgICAgIH0pLnRvQXJyYXkoKX1cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmZ1bmN0aW9uIHhjbGFzcyguLi5hcmdzKSB7XG4gIHJldHVybiBhcmdzLmZpbHRlcihhID0+ICEhYSkuam9pbihcIiBcIikudHJpbSgpXG59XG5cbmV4cG9ydCBjbGFzcyBDb250YWluZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICByZW5kZXIoKSB7XG4gICAgbGV0IHsgZnVsbHNjcmVlbiwgZnVsbCwgLi4ucmVzdCB9ID0gdGhpcy5wcm9wc1xuICAgIC8vIE5vcm1hbCBlbGVtZW50XG5cbiAgICBpZihmdWxsc2NyZWVuKVxuICAgICAgcmV0dXJuIDxzZWN0aW9uIHsuLi5yZXN0fS8+XG5cbiAgICBsZXQgY29udGFpbmVyQ2xhc3MgPSBcInN3YWdnZXItY29udGFpbmVyXCIgKyAoZnVsbCA/IFwiLWZ1bGxcIiA6IFwiXCIpXG4gICAgcmV0dXJuIChcbiAgICAgIDxzZWN0aW9uIHsuLi5yZXN0fSBjbGFzc05hbWU9e3hjbGFzcyhyZXN0LmNsYXNzTmFtZSwgY29udGFpbmVyQ2xhc3MpfS8+XG4gICAgKVxuICB9XG59XG5cbkNvbnRhaW5lci5wcm9wVHlwZXMgPSB7XG4gIGZ1bGxzY3JlZW46IFByb3BUeXBlcy5ib29sLFxuICBmdWxsOiBQcm9wVHlwZXMuYm9vbCxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nXG59XG5cbmNvbnN0IERFVklDRVMgPSB7XG4gIFwibW9iaWxlXCI6IFwiXCIsXG4gIFwidGFibGV0XCI6IFwiLXRhYmxldFwiLFxuICBcImRlc2t0b3BcIjogXCItZGVza3RvcFwiLFxuICBcImxhcmdlXCI6IFwiLWhkXCJcbn1cblxuZXhwb3J0IGNsYXNzIENvbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGhpZGUsXG4gICAgICBrZWVwQ29udGVudHMsXG4gICAgICAvKiB3ZSBkb24ndCB3YW50IHRoZXNlIGluIHRoZSBgcmVzdGAgb2JqZWN0IHRoYXQgcGFzc2VzIHRvIHRoZSBmaW5hbCBjb21wb25lbnQsXG4gICAgICAgICBzaW5jZSBSZWFjdCBub3cgY29tcGxhaW5zLiBTbyB3ZSBleHRyYWN0IHRoZW0gKi9cbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4gICAgICBtb2JpbGUsXG4gICAgICB0YWJsZXQsXG4gICAgICBkZXNrdG9wLFxuICAgICAgbGFyZ2UsXG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC12YXJzICovXG4gICAgICAuLi5yZXN0XG4gICAgfSA9IHRoaXMucHJvcHNcblxuICAgIGlmKGhpZGUgJiYgIWtlZXBDb250ZW50cylcbiAgICAgIHJldHVybiA8c3Bhbi8+XG5cbiAgICBsZXQgY2xhc3Nlc0FyID0gW11cblxuICAgIGZvciAobGV0IGRldmljZSBpbiBERVZJQ0VTKSB7XG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChERVZJQ0VTLCBkZXZpY2UpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBsZXQgZGV2aWNlQ2xhc3MgPSBERVZJQ0VTW2RldmljZV1cbiAgICAgIGlmKGRldmljZSBpbiB0aGlzLnByb3BzKSB7XG4gICAgICAgIGxldCB2YWwgPSB0aGlzLnByb3BzW2RldmljZV1cblxuICAgICAgICBpZih2YWwgPCAxKSB7XG4gICAgICAgICAgY2xhc3Nlc0FyLnB1c2goXCJub25lXCIgKyBkZXZpY2VDbGFzcylcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG5cbiAgICAgICAgY2xhc3Nlc0FyLnB1c2goXCJibG9ja1wiICsgZGV2aWNlQ2xhc3MpXG4gICAgICAgIGNsYXNzZXNBci5wdXNoKFwiY29sLVwiICsgdmFsICsgZGV2aWNlQ2xhc3MpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGhpZGUpIHtcbiAgICAgIGNsYXNzZXNBci5wdXNoKFwiaGlkZGVuXCIpXG4gICAgfVxuXG4gICAgbGV0IGNsYXNzZXMgPSB4Y2xhc3MocmVzdC5jbGFzc05hbWUsIC4uLmNsYXNzZXNBcilcblxuICAgIHJldHVybiAoXG4gICAgICA8c2VjdGlvbiB7Li4ucmVzdH0gY2xhc3NOYW1lPXtjbGFzc2VzfS8+XG4gICAgKVxuICB9XG5cbn1cblxuQ29sLnByb3BUeXBlcyA9IHtcbiAgaGlkZTogUHJvcFR5cGVzLmJvb2wsXG4gIGtlZXBDb250ZW50czogUHJvcFR5cGVzLmJvb2wsXG4gIG1vYmlsZTogUHJvcFR5cGVzLm51bWJlcixcbiAgdGFibGV0OiBQcm9wVHlwZXMubnVtYmVyLFxuICBkZXNrdG9wOiBQcm9wVHlwZXMubnVtYmVyLFxuICBsYXJnZTogUHJvcFR5cGVzLm51bWJlcixcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nXG59XG5cbmV4cG9ydCBjbGFzcyBSb3cgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gPGRpdiB7Li4udGhpcy5wcm9wc30gY2xhc3NOYW1lPXt4Y2xhc3ModGhpcy5wcm9wcy5jbGFzc05hbWUsIFwid3JhcHBlclwiKX0gLz5cbiAgfVxuXG59XG5cblJvdy5wcm9wVHlwZXMgPSB7XG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZ1xufVxuXG5leHBvcnQgY2xhc3MgQnV0dG9uIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZ1xuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBjbGFzc05hbWU6IFwiXCJcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gPGJ1dHRvbiB7Li4udGhpcy5wcm9wc30gY2xhc3NOYW1lPXt4Y2xhc3ModGhpcy5wcm9wcy5jbGFzc05hbWUsIFwiYnV0dG9uXCIpfSAvPlxuICB9XG5cbn1cblxuXG5leHBvcnQgY29uc3QgVGV4dEFyZWEgPSAocHJvcHMpID0+IDx0ZXh0YXJlYSB7Li4ucHJvcHN9IC8+XG5cbmV4cG9ydCBjb25zdCBJbnB1dCA9IChwcm9wcykgPT4gPGlucHV0IHsuLi5wcm9wc30gLz5cblxuZXhwb3J0IGNsYXNzIFNlbGVjdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgYWxsb3dlZFZhbHVlczogUHJvcFR5cGVzLmFycmF5LFxuICAgIHZhbHVlOiBQcm9wVHlwZXMuYW55LFxuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBtdWx0aXBsZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgYWxsb3dFbXB0eVZhbHVlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBtdWx0aXBsZTogZmFsc2UsXG4gICAgYWxsb3dFbXB0eVZhbHVlOiB0cnVlXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm9wcywgY29udGV4dCkge1xuICAgIHN1cGVyKHByb3BzLCBjb250ZXh0KVxuXG4gICAgbGV0IHZhbHVlXG5cbiAgICBpZiAocHJvcHMudmFsdWUpIHtcbiAgICAgIHZhbHVlID0gcHJvcHMudmFsdWVcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUgPSBwcm9wcy5tdWx0aXBsZSA/IFtcIlwiXSA6IFwiXCJcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlID0geyB2YWx1ZTogdmFsdWUgfVxuICB9XG5cbiAgb25DaGFuZ2UgPSAoZSkgPT4ge1xuICAgIGxldCB7IG9uQ2hhbmdlLCBtdWx0aXBsZSB9ID0gdGhpcy5wcm9wc1xuICAgIGxldCBvcHRpb25zID0gW10uc2xpY2UuY2FsbChlLnRhcmdldC5vcHRpb25zKVxuICAgIGxldCB2YWx1ZVxuXG5cbiAgICBpZiAobXVsdGlwbGUpIHtcbiAgICAgIHZhbHVlID0gb3B0aW9ucy5maWx0ZXIoZnVuY3Rpb24gKG9wdGlvbikge1xuICAgICAgICAgIHJldHVybiBvcHRpb24uc2VsZWN0ZWRcbiAgICAgICAgfSlcbiAgICAgICAgLm1hcChmdW5jdGlvbiAob3B0aW9uKXtcbiAgICAgICAgICByZXR1cm4gb3B0aW9uLnZhbHVlXG4gICAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gZS50YXJnZXQudmFsdWVcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0YXRlKHt2YWx1ZTogdmFsdWV9KVxuXG4gICAgaWYob25DaGFuZ2UpIHtcbiAgICAgIG9uQ2hhbmdlKHZhbHVlKVxuICAgIH1cbiAgfVxuXG4gIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcykge1xuICAgIC8vIFRPRE86IHRoaXMgcHV0cyB1cyBpbiBhIHdlaXJkIGFyZWEgYnR3biB1bi9jb250cm9sbGVkIHNlbGVjdGlvbi4uLiByZXZpZXdcbiAgICBpZihuZXh0UHJvcHMudmFsdWUgIT09IHRoaXMucHJvcHMudmFsdWUpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyB2YWx1ZTogbmV4dFByb3BzLnZhbHVlIH0pXG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCl7XG4gICAgbGV0IHsgYWxsb3dlZFZhbHVlcywgbXVsdGlwbGUsIGFsbG93RW1wdHlWYWx1ZSwgZGlzYWJsZWQgfSA9IHRoaXMucHJvcHNcbiAgICBsZXQgdmFsdWUgPSB0aGlzLnN0YXRlLnZhbHVlPy50b0pTPy4oKSB8fCB0aGlzLnN0YXRlLnZhbHVlXG5cbiAgICByZXR1cm4gKFxuICAgICAgPHNlbGVjdCBjbGFzc05hbWU9e3RoaXMucHJvcHMuY2xhc3NOYW1lfSBtdWx0aXBsZT17IG11bHRpcGxlIH0gdmFsdWU9e3ZhbHVlfSBvbkNoYW5nZT17IHRoaXMub25DaGFuZ2UgfSBkaXNhYmxlZD17ZGlzYWJsZWR9ID5cbiAgICAgICAgeyBhbGxvd0VtcHR5VmFsdWUgPyA8b3B0aW9uIHZhbHVlPVwiXCI+LS08L29wdGlvbj4gOiBudWxsIH1cbiAgICAgICAge1xuICAgICAgICAgIGFsbG93ZWRWYWx1ZXMubWFwKGZ1bmN0aW9uIChpdGVtLCBrZXkpIHtcbiAgICAgICAgICAgIHJldHVybiA8b3B0aW9uIGtleT17IGtleSB9IHZhbHVlPXsgU3RyaW5nKGl0ZW0pIH0+eyBTdHJpbmcoaXRlbSkgfTwvb3B0aW9uPlxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIDwvc2VsZWN0PlxuICAgIClcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTGluayBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiA8YSB7Li4udGhpcy5wcm9wc30gcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiIGNsYXNzTmFtZT17eGNsYXNzKHRoaXMucHJvcHMuY2xhc3NOYW1lLCBcImxpbmtcIil9Lz5cbiAgfVxuXG59XG5cbkxpbmsucHJvcFR5cGVzID0ge1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmdcbn1cblxuY29uc3QgTm9NYXJnaW4gPSAoe2NoaWxkcmVufSkgPT4gPGRpdiBjbGFzc05hbWU9XCJuby1tYXJnaW5cIj4ge2NoaWxkcmVufSA8L2Rpdj5cblxuTm9NYXJnaW4ucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGVcbn1cblxuZXhwb3J0IGNsYXNzIENvbGxhcHNlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGlzT3BlbmVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgICBhbmltYXRlZDogUHJvcFR5cGVzLmJvb2xcbiAgfVxuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgaXNPcGVuZWQ6IGZhbHNlLFxuICAgIGFuaW1hdGVkOiBmYWxzZVxuICB9XG5cbiAgcmVuZGVyTm90QW5pbWF0ZWQoKSB7XG4gICAgaWYoIXRoaXMucHJvcHMuaXNPcGVuZWQpXG4gICAgICByZXR1cm4gPG5vc2NyaXB0Lz5cbiAgICByZXR1cm4gKFxuICAgICAgPE5vTWFyZ2luPlxuICAgICAgICB7dGhpcy5wcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvTm9NYXJnaW4+XG4gICAgKVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IGFuaW1hdGVkLCBpc09wZW5lZCwgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHNcblxuICAgIGlmKCFhbmltYXRlZClcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlck5vdEFuaW1hdGVkKClcblxuICAgIGNoaWxkcmVuID0gaXNPcGVuZWQgPyBjaGlsZHJlbiA6IG51bGxcbiAgICByZXR1cm4gKFxuICAgICAgPE5vTWFyZ2luPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L05vTWFyZ2luPlxuICAgIClcbiAgfVxuXG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHsgTGluayB9IGZyb20gXCJjb3JlL2NvbXBvbmVudHMvbGF5b3V0LXV0aWxzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT3ZlcnZpZXcgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKC4uLmFyZ3MpIHtcbiAgICBzdXBlciguLi5hcmdzKVxuICAgIHRoaXMuc2V0VGFnU2hvd24gPSB0aGlzLl9zZXRUYWdTaG93bi5iaW5kKHRoaXMpXG4gIH1cblxuICBfc2V0VGFnU2hvd24oc2hvd1RhZ0lkLCBzaG93bikge1xuICAgIHRoaXMucHJvcHMubGF5b3V0QWN0aW9ucy5zaG93KHNob3dUYWdJZCwgc2hvd24pXG4gIH1cblxuICBzaG93T3Aoa2V5LCBzaG93bikge1xuICAgIGxldCB7IGxheW91dEFjdGlvbnMgfSA9IHRoaXMucHJvcHNcbiAgICBsYXlvdXRBY3Rpb25zLnNob3coa2V5LCBzaG93bilcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyBzcGVjU2VsZWN0b3JzLCBsYXlvdXRTZWxlY3RvcnMsIGxheW91dEFjdGlvbnMsIGdldENvbXBvbmVudCB9ID0gdGhpcy5wcm9wc1xuICAgIGxldCB0YWdnZWRPcHMgPSBzcGVjU2VsZWN0b3JzLnRhZ2dlZE9wZXJhdGlvbnMoKVxuXG4gICAgY29uc3QgQ29sbGFwc2UgPSBnZXRDb21wb25lbnQoXCJDb2xsYXBzZVwiKVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwib3ZlcnZpZXctdGl0bGVcIj5PdmVydmlldzwvaDQ+XG5cbiAgICAgICAgICB7XG4gICAgICAgICAgICB0YWdnZWRPcHMubWFwKCAodGFnT2JqLCB0YWcpID0+IHtcbiAgICAgICAgICAgICAgbGV0IG9wZXJhdGlvbnMgPSB0YWdPYmouZ2V0KFwib3BlcmF0aW9uc1wiKVxuXG4gICAgICAgICAgICAgIGxldCBzaG93VGFnSWQgPSBbXCJvdmVydmlldy10YWdzXCIsIHRhZ11cbiAgICAgICAgICAgICAgbGV0IHNob3dUYWcgPSBsYXlvdXRTZWxlY3RvcnMuaXNTaG93bihzaG93VGFnSWQsIHRydWUpXG4gICAgICAgICAgICAgIGxldCB0b2dnbGVTaG93ID0gKCk9PiBsYXlvdXRBY3Rpb25zLnNob3coc2hvd1RhZ0lkLCAhc2hvd1RhZylcblxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxkaXYga2V5PXtcIm92ZXJ2aWV3LVwiK3RhZ30+XG5cblxuICAgICAgICAgICAgICAgICAgPGg0IG9uQ2xpY2s9e3RvZ2dsZVNob3d9IGNsYXNzTmFtZT1cImxpbmsgb3ZlcnZpZXctdGFnXCI+IHtzaG93VGFnID8gXCItXCIgOiBcIitcIn17dGFnfTwvaDQ+XG5cbiAgICAgICAgICAgICAgICAgIDxDb2xsYXBzZSBpc09wZW5lZD17c2hvd1RhZ30gYW5pbWF0ZWQ+XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25zLm1hcCggb3AgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHsgcGF0aCwgbWV0aG9kLCBpZCB9ID0gb3AudG9PYmplY3QoKSAvLyB0b09iamVjdCBpcyBzaGFsbG93XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2hvd09wSWRQcmVmaXggPSBcIm9wZXJhdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNob3dPcElkID0gaWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzaG93biA9IGxheW91dFNlbGVjdG9ycy5pc1Nob3duKFtzaG93T3BJZFByZWZpeCwgc2hvd09wSWRdKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxPcGVyYXRpb25MaW5rIGtleT17aWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aD17cGF0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q9e21ldGhvZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17cGF0aCArIFwiLVwiICsgbWV0aG9kfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3duPXtzaG93bn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93T3BJZD17c2hvd09wSWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd09wSWRQcmVmaXg9e3Nob3dPcElkUHJlZml4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2Ajb3BlcmF0aW9uLSR7c2hvd09wSWR9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtsYXlvdXRBY3Rpb25zLnNob3d9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgfSkudG9BcnJheSgpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvQ29sbGFwc2U+XG5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KS50b0FycmF5KClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB7IHRhZ2dlZE9wcy5zaXplIDwgMSAmJiA8aDM+IE5vIG9wZXJhdGlvbnMgZGVmaW5lZCBpbiBzcGVjISA8L2gzPiB9XG4gICAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG59XG5cbk92ZXJ2aWV3LnByb3BUeXBlcyA9IHtcbiAgbGF5b3V0U2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgbGF5b3V0QWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbn1cblxuZXhwb3J0IGNsYXNzIE9wZXJhdGlvbkxpbmsgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpXG4gICAgdGhpcy5vbkNsaWNrID0gdGhpcy5fb25DbGljay5iaW5kKHRoaXMpXG4gIH1cblxuICBfb25DbGljaygpIHtcbiAgICBsZXQgeyBzaG93T3BJZCwgc2hvd09wSWRQcmVmaXgsIG9uQ2xpY2ssIHNob3duIH0gPSB0aGlzLnByb3BzXG4gICAgb25DbGljayhbc2hvd09wSWRQcmVmaXgsIHNob3dPcElkXSwgIXNob3duKVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IGlkLCBtZXRob2QsIHNob3duLCBocmVmIH0gPSB0aGlzLnByb3BzXG5cbiAgICByZXR1cm4gKFxuICAgICAgPExpbmsgaHJlZj17IGhyZWYgfSBvbkNsaWNrPXt0aGlzLm9uQ2xpY2t9IGNsYXNzTmFtZT17YGJsb2NrIG9wYmxvY2stbGluayAke3Nob3duID8gXCJzaG93blwiIDogXCJcIn1gfT5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8c21hbGwgY2xhc3NOYW1lPXtgYm9sZC1sYWJlbC0ke21ldGhvZH1gfT57bWV0aG9kLnRvVXBwZXJDYXNlKCl9PC9zbWFsbD5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJib2xkLWxhYmVsXCIgPntpZH08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9MaW5rPlxuICAgIClcbiAgfVxuXG59XG5cbk9wZXJhdGlvbkxpbmsucHJvcFR5cGVzID0ge1xuICBocmVmOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgbWV0aG9kOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHNob3duOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBzaG93T3BJZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBzaG93T3BJZFByZWZpeDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkXG59XG4iLCIvLyBUaGlzIGNvbXBvbmVudCBwcm92aWRlcyBhbiBpbnRlcmZhY2UgdGhhdCBmZWVscyBsaWtlIGFuIHVuY29udHJvbGxlZCBpbnB1dFxuLy8gdG8gY29uc3VtZXJzLCB3aGlsZSBwcm92aWRpbmcgYSBgZGVmYXVsdFZhbHVlYCBpbnRlcmZhY2UgdGhhdCBpbml0aWFsaXplc1xuLy8gdGhlIGlucHV0J3MgdmFsdWUgdXNpbmcgSmF2YVNjcmlwdCB2YWx1ZSBwcm9wZXJ0eSBBUElzIGluc3RlYWQgb2YgUmVhY3QncyBcbi8vIHZhbmlsbGFbMF0gaW1wbGVtZW50YXRpb24gdGhhdCB1c2VzIEhUTUwgdmFsdWUgYXR0cmlidXRlcy5cbi8vXG4vLyBUaGlzIGlzIHVzZWZ1bCBpbiBzaXR1YXRpb25zIHdoZXJlIHdlIGRvbid0IHdhbnQgdG8gc3VyZmFjZSBhbiBpbnB1dCdzIHZhbHVlXG4vLyBpbnRvIHRoZSBIVE1ML0NTUy1leHBvc2VkIHNpZGUgb2YgdGhlIERPTSwgZm9yIGV4YW1wbGUgdG8gYXZvaWQgc2VxdWVudGlhbFxuLy8gaW5wdXQgY2hhaW5pbmcgYXR0YWNrc1sxXS5cbi8vIFxuLy8gWzBdOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvYmxvYi9iYWZmNWNjMmY2OWQzMDU4OWE1ZGM2NWIwODllNDc3NjU0MzcyOTRiL2ZpeHR1cmVzL2RvbS9zcmMvY29tcG9uZW50cy9maXh0dXJlcy90ZXh0LWlucHV0cy9SRUFETUUubWRcbi8vIFsxXTogaHR0cHM6Ly9naXRodWIuY29tL2QwbnV0cHRyL3NpY1xuXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJbml0aWFsaXplZElucHV0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgLy8gU2V0IHRoZSBlbGVtZW50J3MgYHZhbHVlYCBwcm9wZXJ0eSAoKm5vdCogdGhlIGB2YWx1ZWAgYXR0cmlidXRlKVxuICAgIC8vIG9uY2UsIG9uIG1vdW50LCBpZiBhbiBgaW5pdGlhbFZhbHVlYCBpcyBwcm92aWRlZC5cbiAgICBpZih0aGlzLnByb3BzLmluaXRpYWxWYWx1ZSkge1xuICAgICAgdGhpcy5pbnB1dFJlZi52YWx1ZSA9IHRoaXMucHJvcHMuaW5pdGlhbFZhbHVlXG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIC8vIEZpbHRlciBvdXQgYHZhbHVlYCBhbmQgYGRlZmF1bHRWYWx1ZWAsIHNpbmNlIHdlIGhhdmUgb3VyIG93blxuICAgIC8vIGBpbml0aWFsVmFsdWVgIGludGVyZmFjZSB0aGF0IHdlIHByb3ZpZGUuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCByZWFjdC9wcm9wLXR5cGVzXG4gICAgY29uc3QgeyB2YWx1ZSwgZGVmYXVsdFZhbHVlLCBpbml0aWFsVmFsdWUsIC4uLm90aGVyUHJvcHMgfSA9IHRoaXMucHJvcHNcbiAgICByZXR1cm4gPGlucHV0IHsuLi5vdGhlclByb3BzfSByZWY9e2MgPT4gdGhpcy5pbnB1dFJlZiA9IGN9IC8+XG4gIH1cbn1cblxuSW5pdGlhbGl6ZWRJbnB1dC5wcm9wVHlwZXMgPSB7XG4gIGluaXRpYWxWYWx1ZTogUHJvcFR5cGVzLnN0cmluZ1xufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5pbXBvcnQgeyBzYWZlQnVpbGRVcmwsIHNhbml0aXplVXJsIH0gZnJvbSBcImNvcmUvdXRpbHMvdXJsXCJcblxuZXhwb3J0IGNsYXNzIEluZm9CYXNlUGF0aCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaG9zdDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBiYXNlUGF0aDogUHJvcFR5cGVzLnN0cmluZyxcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGhvc3QsIGJhc2VQYXRoIH0gPSB0aGlzLnByb3BzXG5cbiAgICByZXR1cm4gKFxuICAgICAgPHByZSBjbGFzc05hbWU9XCJiYXNlLXVybFwiPlxuICAgICAgICBbIEJhc2UgVVJMOiB7aG9zdH1cbiAgICAgICAge2Jhc2VQYXRofSBdXG4gICAgICA8L3ByZT5cbiAgICApXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEluZm9VcmwgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICB1cmw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyB1cmwsIGdldENvbXBvbmVudCB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IExpbmsgPSBnZXRDb21wb25lbnQoXCJMaW5rXCIpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPExpbmsgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17c2FuaXRpemVVcmwodXJsKX0+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInVybFwiPiB7dXJsfTwvc3Bhbj5cbiAgICAgIDwvTGluaz5cbiAgICApXG4gIH1cbn1cblxuY2xhc3MgSW5mbyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgdGl0bGU6IFByb3BUeXBlcy5hbnksXG4gICAgZGVzY3JpcHRpb246IFByb3BUeXBlcy5hbnksXG4gICAgdmVyc2lvbjogUHJvcFR5cGVzLmFueSxcbiAgICBpbmZvOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBob3N0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGJhc2VQYXRoOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGV4dGVybmFsRG9jczogSW1Qcm9wVHlwZXMubWFwLFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvYXMzc2VsZWN0b3JzOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBzZWxlY3RlZFNlcnZlcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBpbmZvLFxuICAgICAgdXJsLFxuICAgICAgaG9zdCxcbiAgICAgIGJhc2VQYXRoLFxuICAgICAgZ2V0Q29tcG9uZW50LFxuICAgICAgZXh0ZXJuYWxEb2NzLFxuICAgICAgc2VsZWN0ZWRTZXJ2ZXIsXG4gICAgICB1cmw6IHNwZWNVcmwsXG4gICAgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB2ZXJzaW9uID0gaW5mby5nZXQoXCJ2ZXJzaW9uXCIpXG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSBpbmZvLmdldChcImRlc2NyaXB0aW9uXCIpXG4gICAgY29uc3QgdGl0bGUgPSBpbmZvLmdldChcInRpdGxlXCIpXG4gICAgY29uc3QgdGVybXNPZlNlcnZpY2VVcmwgPSBzYWZlQnVpbGRVcmwoXG4gICAgICBpbmZvLmdldChcInRlcm1zT2ZTZXJ2aWNlXCIpLFxuICAgICAgc3BlY1VybCxcbiAgICAgIHsgc2VsZWN0ZWRTZXJ2ZXIgfVxuICAgIClcbiAgICBjb25zdCBjb250YWN0RGF0YSA9IGluZm8uZ2V0KFwiY29udGFjdFwiKVxuICAgIGNvbnN0IGxpY2Vuc2VEYXRhID0gaW5mby5nZXQoXCJsaWNlbnNlXCIpXG4gICAgY29uc3QgcmF3RXh0ZXJuYWxEb2NzVXJsID0gZXh0ZXJuYWxEb2NzICYmIGV4dGVybmFsRG9jcy5nZXQoXCJ1cmxcIilcbiAgICBjb25zdCBleHRlcm5hbERvY3NVcmwgPSBzYWZlQnVpbGRVcmwocmF3RXh0ZXJuYWxEb2NzVXJsLCBzcGVjVXJsLCB7XG4gICAgICBzZWxlY3RlZFNlcnZlcixcbiAgICB9KVxuICAgIGNvbnN0IGV4dGVybmFsRG9jc0Rlc2NyaXB0aW9uID1cbiAgICAgIGV4dGVybmFsRG9jcyAmJiBleHRlcm5hbERvY3MuZ2V0KFwiZGVzY3JpcHRpb25cIilcblxuICAgIGNvbnN0IE1hcmtkb3duID0gZ2V0Q29tcG9uZW50KFwiTWFya2Rvd25cIiwgdHJ1ZSlcbiAgICBjb25zdCBMaW5rID0gZ2V0Q29tcG9uZW50KFwiTGlua1wiKVxuICAgIGNvbnN0IFZlcnNpb25TdGFtcCA9IGdldENvbXBvbmVudChcIlZlcnNpb25TdGFtcFwiKVxuICAgIGNvbnN0IE9wZW5BUElWZXJzaW9uID0gZ2V0Q29tcG9uZW50KFwiT3BlbkFQSVZlcnNpb25cIilcbiAgICBjb25zdCBJbmZvVXJsID0gZ2V0Q29tcG9uZW50KFwiSW5mb1VybFwiKVxuICAgIGNvbnN0IEluZm9CYXNlUGF0aCA9IGdldENvbXBvbmVudChcIkluZm9CYXNlUGF0aFwiKVxuICAgIGNvbnN0IExpY2Vuc2UgPSBnZXRDb21wb25lbnQoXCJMaWNlbnNlXCIpXG4gICAgY29uc3QgQ29udGFjdCA9IGdldENvbXBvbmVudChcIkNvbnRhY3RcIilcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cbiAgICAgICAgPGhncm91cCBjbGFzc05hbWU9XCJtYWluXCI+XG4gICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRpdGxlXCI+XG4gICAgICAgICAgICB7dGl0bGV9XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAge3ZlcnNpb24gJiYgPFZlcnNpb25TdGFtcCB2ZXJzaW9uPXt2ZXJzaW9ufSAvPn1cbiAgICAgICAgICAgICAgPE9wZW5BUElWZXJzaW9uIG9hc1ZlcnNpb249XCIyLjBcIiAvPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvaDI+XG4gICAgICAgICAge2hvc3QgfHwgYmFzZVBhdGggPyAoXG4gICAgICAgICAgICA8SW5mb0Jhc2VQYXRoIGhvc3Q9e2hvc3R9IGJhc2VQYXRoPXtiYXNlUGF0aH0gLz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICB7dXJsICYmIDxJbmZvVXJsIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fSB1cmw9e3VybH0gLz59XG4gICAgICAgIDwvaGdyb3VwPlxuXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICA8TWFya2Rvd24gc291cmNlPXtkZXNjcmlwdGlvbn0gLz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAge3Rlcm1zT2ZTZXJ2aWNlVXJsICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9fX3Rvc1wiPlxuICAgICAgICAgICAgPExpbmsgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17c2FuaXRpemVVcmwodGVybXNPZlNlcnZpY2VVcmwpfT5cbiAgICAgICAgICAgICAgVGVybXMgb2Ygc2VydmljZVxuICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuXG4gICAgICAgIHtjb250YWN0RGF0YT8uc2l6ZSA+IDAgJiYgKFxuICAgICAgICAgIDxDb250YWN0XG4gICAgICAgICAgICBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH1cbiAgICAgICAgICAgIGRhdGE9e2NvbnRhY3REYXRhfVxuICAgICAgICAgICAgc2VsZWN0ZWRTZXJ2ZXI9e3NlbGVjdGVkU2VydmVyfVxuICAgICAgICAgICAgdXJsPXt1cmx9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAge2xpY2Vuc2VEYXRhPy5zaXplID4gMCAmJiAoXG4gICAgICAgICAgPExpY2Vuc2VcbiAgICAgICAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgICAgICAgICAgbGljZW5zZT17bGljZW5zZURhdGF9XG4gICAgICAgICAgICBzZWxlY3RlZFNlcnZlcj17c2VsZWN0ZWRTZXJ2ZXJ9XG4gICAgICAgICAgICB1cmw9e3VybH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7ZXh0ZXJuYWxEb2NzVXJsID8gKFxuICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJpbmZvX19leHRkb2NzXCJcbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICBocmVmPXtzYW5pdGl6ZVVybChleHRlcm5hbERvY3NVcmwpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtleHRlcm5hbERvY3NEZXNjcmlwdGlvbiB8fCBleHRlcm5hbERvY3NVcmx9XG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBJbmZvXG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJbmZvQ29udGFpbmVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHNwZWNBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvYXMzU2VsZWN0b3JzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB9XG5cbiAgcmVuZGVyICgpIHtcbiAgICBjb25zdCB7c3BlY1NlbGVjdG9ycywgZ2V0Q29tcG9uZW50LCBvYXMzU2VsZWN0b3JzfSA9IHRoaXMucHJvcHNcblxuICAgIGNvbnN0IGluZm8gPSBzcGVjU2VsZWN0b3JzLmluZm8oKVxuICAgIGNvbnN0IHVybCA9IHNwZWNTZWxlY3RvcnMudXJsKClcbiAgICBjb25zdCBiYXNlUGF0aCA9IHNwZWNTZWxlY3RvcnMuYmFzZVBhdGgoKVxuICAgIGNvbnN0IGhvc3QgPSBzcGVjU2VsZWN0b3JzLmhvc3QoKVxuICAgIGNvbnN0IGV4dGVybmFsRG9jcyA9IHNwZWNTZWxlY3RvcnMuZXh0ZXJuYWxEb2NzKClcbiAgICBjb25zdCBzZWxlY3RlZFNlcnZlciA9IG9hczNTZWxlY3RvcnMuc2VsZWN0ZWRTZXJ2ZXIoKVxuXG4gICAgY29uc3QgSW5mbyA9IGdldENvbXBvbmVudChcImluZm9cIilcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICB7aW5mbyAmJiBpbmZvLmNvdW50KCkgPyAoXG4gICAgICAgICAgPEluZm8gaW5mbz17aW5mb30gdXJsPXt1cmx9IGhvc3Q9e2hvc3R9IGJhc2VQYXRoPXtiYXNlUGF0aH0gZXh0ZXJuYWxEb2NzPXtleHRlcm5hbERvY3N9XG4gICAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9IHNlbGVjdGVkU2VydmVyPXtzZWxlY3RlZFNlcnZlcn0gLz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgeyBzYWZlQnVpbGRVcmwsIHNhbml0aXplVXJsIH0gZnJvbSBcImNvcmUvdXRpbHMvdXJsXCJcblxuY2xhc3MgQ29udGFjdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgZGF0YTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHNlbGVjdGVkU2VydmVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHVybDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgZGF0YSwgZ2V0Q29tcG9uZW50LCBzZWxlY3RlZFNlcnZlciwgdXJsOiBzcGVjVXJsIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgbmFtZSA9IGRhdGEuZ2V0KFwibmFtZVwiLCBcInRoZSBkZXZlbG9wZXJcIilcbiAgICBjb25zdCB1cmwgPSBzYWZlQnVpbGRVcmwoZGF0YS5nZXQoXCJ1cmxcIiksIHNwZWNVcmwsIHsgc2VsZWN0ZWRTZXJ2ZXIgfSlcbiAgICBjb25zdCBlbWFpbCA9IGRhdGEuZ2V0KFwiZW1haWxcIilcblxuICAgIGNvbnN0IExpbmsgPSBnZXRDb21wb25lbnQoXCJMaW5rXCIpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvX19jb250YWN0XCI+XG4gICAgICAgIHt1cmwgJiYgKFxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8TGluayBocmVmPXtzYW5pdGl6ZVVybCh1cmwpfSB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICAgICAge25hbWV9IC0gV2Vic2l0ZVxuICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICB7ZW1haWwgJiYgKFxuICAgICAgICAgIDxMaW5rIGhyZWY9e3Nhbml0aXplVXJsKGBtYWlsdG86JHtlbWFpbH1gKX0+XG4gICAgICAgICAgICB7dXJsID8gYFNlbmQgZW1haWwgdG8gJHtuYW1lfWAgOiBgQ29udGFjdCAke25hbWV9YH1cbiAgICAgICAgICA8L0xpbms+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29udGFjdFxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCB7IHNhZmVCdWlsZFVybCwgc2FuaXRpemVVcmwgfSBmcm9tIFwiY29yZS91dGlscy91cmxcIlxuXG5jbGFzcyBMaWNlbnNlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBsaWNlbnNlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgc2VsZWN0ZWRTZXJ2ZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgdXJsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBsaWNlbnNlLCBnZXRDb21wb25lbnQsIHNlbGVjdGVkU2VydmVyLCB1cmw6IHNwZWNVcmwgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBuYW1lID0gbGljZW5zZS5nZXQoXCJuYW1lXCIsIFwiTGljZW5zZVwiKVxuICAgIGNvbnN0IHVybCA9IHNhZmVCdWlsZFVybChsaWNlbnNlLmdldChcInVybFwiKSwgc3BlY1VybCwgeyBzZWxlY3RlZFNlcnZlciB9KVxuXG4gICAgY29uc3QgTGluayA9IGdldENvbXBvbmVudChcIkxpbmtcIilcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9fX2xpY2Vuc2VcIj5cbiAgICAgICAge3VybCA/IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9fX2xpY2Vuc2VfX3VybFwiPlxuICAgICAgICAgICAgPExpbmsgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17c2FuaXRpemVVcmwodXJsKX0+XG4gICAgICAgICAgICAgIHtuYW1lfVxuICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxzcGFuPntuYW1lfTwvc3Bhbj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBMaWNlbnNlXG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcblxuLy8gTm90aGluZyBieSBkZWZhdWx0LSBjb21wb25lbnQgY2FuIGJlIG92ZXJyaWRkZW4gYnkgYW5vdGhlciBwbHVnaW4uXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEp1bXBUb1BhdGggZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBDb3B5VG9DbGlwYm9hcmQgfSBmcm9tIFwicmVhY3QtY29weS10by1jbGlwYm9hcmRcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbi8qKlxuICogQHBhcmFtIHt7IGdldENvbXBvbmVudDogZnVuYywgdGV4dFRvQ29weTogc3RyaW5nIH19IHByb3BzXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9XG4gKiBAY29uc3RydWN0b3JcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29weVRvQ2xpcGJvYXJkQnRuIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IGdldENvbXBvbmVudCB9ID0gdGhpcy5wcm9wc1xuXG4gICAgY29uc3QgQ29weUljb24gPSBnZXRDb21wb25lbnQoXCJDb3B5SWNvblwiKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwidmlldy1saW5lLWxpbmsgY29weS10by1jbGlwYm9hcmRcIiB0aXRsZT1cIkNvcHkgdG8gY2xpcGJvYXJkXCI+XG4gICAgICAgIDxDb3B5VG9DbGlwYm9hcmQgdGV4dD17dGhpcy5wcm9wcy50ZXh0VG9Db3B5fT5cbiAgICAgICAgICA8Q29weUljb24gLz5cbiAgICAgICAgPC9Db3B5VG9DbGlwYm9hcmQ+XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICB0ZXh0VG9Db3B5OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGb290ZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9vdGVyXCI+PC9kaXY+XG4gICAgKVxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWx0ZXJDb250YWluZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGxheW91dFNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGxheW91dEFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIH1cblxuICBvbkZpbHRlckNoYW5nZSA9IChlKSA9PiB7XG4gICAgY29uc3Qge3RhcmdldDoge3ZhbHVlfX0gPSBlXG4gICAgdGhpcy5wcm9wcy5sYXlvdXRBY3Rpb25zLnVwZGF0ZUZpbHRlcih2YWx1ZSlcbiAgfVxuXG4gIHJlbmRlciAoKSB7XG4gICAgY29uc3Qge3NwZWNTZWxlY3RvcnMsIGxheW91dFNlbGVjdG9ycywgZ2V0Q29tcG9uZW50fSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBDb2wgPSBnZXRDb21wb25lbnQoXCJDb2xcIilcblxuICAgIGNvbnN0IGlzTG9hZGluZyA9IHNwZWNTZWxlY3RvcnMubG9hZGluZ1N0YXR1cygpID09PSBcImxvYWRpbmdcIlxuICAgIGNvbnN0IGlzRmFpbGVkID0gc3BlY1NlbGVjdG9ycy5sb2FkaW5nU3RhdHVzKCkgPT09IFwiZmFpbGVkXCJcbiAgICBjb25zdCBmaWx0ZXIgPSBsYXlvdXRTZWxlY3RvcnMuY3VycmVudEZpbHRlcigpXG5cbiAgICBjb25zdCBjbGFzc05hbWVzID0gW1wib3BlcmF0aW9uLWZpbHRlci1pbnB1dFwiXVxuICAgIGlmIChpc0ZhaWxlZCkgY2xhc3NOYW1lcy5wdXNoKFwiZmFpbGVkXCIpXG4gICAgaWYgKGlzTG9hZGluZykgY2xhc3NOYW1lcy5wdXNoKFwibG9hZGluZ1wiKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIHtmaWx0ZXIgPT09IGZhbHNlID8gbnVsbCA6XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWx0ZXItY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8Q29sIGNsYXNzTmFtZT1cImZpbHRlciB3cmFwcGVyXCIgbW9iaWxlPXsxMn0+XG4gICAgICAgICAgICAgIDxpbnB1dCBjbGFzc05hbWU9e2NsYXNzTmFtZXMuam9pbihcIiBcIil9IHBsYWNlaG9sZGVyPVwiRmlsdGVyIGJ5IHRhZ1wiIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uRmlsdGVyQ2hhbmdlfSB2YWx1ZT17dHlwZW9mIGZpbHRlciA9PT0gXCJzdHJpbmdcIiA/IGZpbHRlciA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNMb2FkaW5nfS8+XG4gICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCB7IGZyb21KUywgTGlzdCB9IGZyb20gXCJpbW11dGFibGVcIlxuaW1wb3J0IHsgZ2V0S25vd25TeW50YXhIaWdobGlnaHRlckxhbmd1YWdlIH0gZnJvbSBcImNvcmUvdXRpbHMvanNvblBhcnNlXCJcbmltcG9ydCBjcmVhdGVIdG1sUmVhZHlJZCBmcm9tIFwiY29yZS91dGlscy9jcmVhdGUtaHRtbC1yZWFkeS1pZFwiXG5cbmNvbnN0IE5PT1AgPSBGdW5jdGlvbi5wcm90b3R5cGVcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGFyYW1Cb2R5IGV4dGVuZHMgUHVyZUNvbXBvbmVudCB7XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBwYXJhbTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25DaGFuZ2VDb25zdW1lczogUHJvcFR5cGVzLmZ1bmMsXG4gICAgY29uc3VtZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgY29uc3VtZXNWYWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBmbjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBpc0V4ZWN1dGU6IFByb3BUeXBlcy5ib29sLFxuICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBwYXRoTWV0aG9kOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZFxuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wID0ge1xuICAgIGNvbnN1bWVzOiBmcm9tSlMoW1wiYXBwbGljYXRpb24vanNvblwiXSksXG4gICAgcGFyYW06IGZyb21KUyh7fSksXG4gICAgb25DaGFuZ2U6IE5PT1AsXG4gICAgb25DaGFuZ2VDb25zdW1lczogTk9PUCxcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3BzLCBjb250ZXh0KSB7XG4gICAgc3VwZXIocHJvcHMsIGNvbnRleHQpXG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgaXNFZGl0Qm94OiBmYWxzZSxcbiAgICAgIHZhbHVlOiBcIlwiXG4gICAgfVxuXG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlcy5jYWxsKHRoaXMsIHRoaXMucHJvcHMpXG4gIH1cblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlcy5jYWxsKHRoaXMsIG5leHRQcm9wcylcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlcyA9IChwcm9wcykgPT4ge1xuICAgIGxldCB7IHBhcmFtLCBpc0V4ZWN1dGUsIGNvbnN1bWVzVmFsdWU9XCJcIiB9ID0gcHJvcHNcbiAgICBsZXQgaXNYbWwgPSAveG1sL2kudGVzdChjb25zdW1lc1ZhbHVlKVxuICAgIGxldCBpc0pzb24gPSAvanNvbi9pLnRlc3QoY29uc3VtZXNWYWx1ZSlcbiAgICBsZXQgcGFyYW1WYWx1ZSA9IGlzWG1sID8gcGFyYW0uZ2V0KFwidmFsdWVfeG1sXCIpIDogcGFyYW0uZ2V0KFwidmFsdWVcIilcblxuICAgIGlmICggcGFyYW1WYWx1ZSAhPT0gdW5kZWZpbmVkICkge1xuICAgICAgbGV0IHZhbCA9ICFwYXJhbVZhbHVlICYmIGlzSnNvbiA/IFwie31cIiA6IHBhcmFtVmFsdWVcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyB2YWx1ZTogdmFsIH0pXG4gICAgICB0aGlzLm9uQ2hhbmdlKHZhbCwge2lzWG1sOiBpc1htbCwgaXNFZGl0Qm94OiBpc0V4ZWN1dGV9KVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaXNYbWwpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNhbXBsZShcInhtbFwiKSwge2lzWG1sOiBpc1htbCwgaXNFZGl0Qm94OiBpc0V4ZWN1dGV9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNhbXBsZSgpLCB7aXNFZGl0Qm94OiBpc0V4ZWN1dGV9KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNhbXBsZSA9ICh4bWwpID0+IHtcbiAgICBsZXQgeyBwYXJhbSwgZm59ID0gdGhpcy5wcm9wc1xuICAgIGxldCBzY2hlbWEgPSBmbi5pbmZlclNjaGVtYShwYXJhbS50b0pTKCkpXG5cbiAgICByZXR1cm4gZm4uZ2V0U2FtcGxlU2NoZW1hKHNjaGVtYSwgeG1sLCB7XG4gICAgICBpbmNsdWRlV3JpdGVPbmx5OiB0cnVlXG4gICAgfSlcbiAgfVxuXG4gIG9uQ2hhbmdlID0gKHZhbHVlLCB7IGlzRWRpdEJveCwgaXNYbWwgfSkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoe3ZhbHVlLCBpc0VkaXRCb3h9KVxuICAgIHRoaXMuX29uQ2hhbmdlKHZhbHVlLCBpc1htbClcbiAgfVxuXG4gIF9vbkNoYW5nZSA9ICh2YWwsIGlzWG1sKSA9PiB7ICh0aGlzLnByb3BzLm9uQ2hhbmdlIHx8IE5PT1ApKHZhbCwgaXNYbWwpIH1cblxuICBoYW5kbGVPbkNoYW5nZSA9IGUgPT4ge1xuICAgIGNvbnN0IHtjb25zdW1lc1ZhbHVlfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBpc1htbCA9IC94bWwvaS50ZXN0KGNvbnN1bWVzVmFsdWUpXG4gICAgY29uc3QgaW5wdXRWYWx1ZSA9IGUudGFyZ2V0LnZhbHVlXG4gICAgdGhpcy5vbkNoYW5nZShpbnB1dFZhbHVlLCB7aXNYbWwsIGlzRWRpdEJveDogdGhpcy5zdGF0ZS5pc0VkaXRCb3h9KVxuICB9XG5cbiAgdG9nZ2xlSXNFZGl0Qm94ID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSggc3RhdGUgPT4gKHtpc0VkaXRCb3g6ICFzdGF0ZS5pc0VkaXRCb3h9KSlcblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHtcbiAgICAgIG9uQ2hhbmdlQ29uc3VtZXMsXG4gICAgICBwYXJhbSxcbiAgICAgIGlzRXhlY3V0ZSxcbiAgICAgIHNwZWNTZWxlY3RvcnMsXG4gICAgICBwYXRoTWV0aG9kLFxuICAgICAgZ2V0Q29tcG9uZW50LFxuICAgIH0gPSB0aGlzLnByb3BzXG5cbiAgICBjb25zdCBCdXR0b24gPSBnZXRDb21wb25lbnQoXCJCdXR0b25cIilcbiAgICBjb25zdCBUZXh0QXJlYSA9IGdldENvbXBvbmVudChcIlRleHRBcmVhXCIpXG4gICAgY29uc3QgSGlnaGxpZ2h0Q29kZSA9IGdldENvbXBvbmVudChcIkhpZ2hsaWdodENvZGVcIiwgdHJ1ZSlcbiAgICBjb25zdCBDb250ZW50VHlwZSA9IGdldENvbXBvbmVudChcImNvbnRlbnRUeXBlXCIpXG4gICAgLy8gZm9yIGRvbWFpbnMgd2hlcmUgc3BlY1NlbGVjdG9ycyBub3QgcGFzc2VkXG4gICAgbGV0IHBhcmFtZXRlciA9IHNwZWNTZWxlY3RvcnMgPyBzcGVjU2VsZWN0b3JzLnBhcmFtZXRlcldpdGhNZXRhQnlJZGVudGl0eShwYXRoTWV0aG9kLCBwYXJhbSkgOiBwYXJhbVxuICAgIGxldCBlcnJvcnMgPSBwYXJhbWV0ZXIuZ2V0KFwiZXJyb3JzXCIsIExpc3QoKSlcbiAgICBsZXQgY29uc3VtZXNWYWx1ZSA9IHNwZWNTZWxlY3RvcnMuY29udGVudFR5cGVWYWx1ZXMocGF0aE1ldGhvZCkuZ2V0KFwicmVxdWVzdENvbnRlbnRUeXBlXCIpXG4gICAgbGV0IGNvbnN1bWVzID0gdGhpcy5wcm9wcy5jb25zdW1lcyAmJiB0aGlzLnByb3BzLmNvbnN1bWVzLnNpemUgPyB0aGlzLnByb3BzLmNvbnN1bWVzIDogUGFyYW1Cb2R5LmRlZmF1bHRQcm9wLmNvbnN1bWVzXG5cbiAgICBsZXQgeyB2YWx1ZSwgaXNFZGl0Qm94IH0gPSB0aGlzLnN0YXRlXG4gICAgbGV0IGxhbmd1YWdlID0gbnVsbFxuICAgIGxldCB0ZXN0VmFsdWVGb3JKc29uID0gZ2V0S25vd25TeW50YXhIaWdobGlnaHRlckxhbmd1YWdlKHZhbHVlKVxuICAgIGlmICh0ZXN0VmFsdWVGb3JKc29uKSB7XG4gICAgICBsYW5ndWFnZSA9IFwianNvblwiXG4gICAgfVxuXG4gICAgY29uc3QgcmVnaW9uSWQgPSBjcmVhdGVIdG1sUmVhZHlJZChgJHtwYXRoTWV0aG9kWzFdfSR7cGF0aE1ldGhvZFswXX1fcGFyYW1ldGVyc2ApXG4gICAgY29uc3QgY29udHJvbElkID0gYCR7cmVnaW9uSWR9X3NlbGVjdGBcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImJvZHktcGFyYW1cIiBkYXRhLXBhcmFtLW5hbWU9e3BhcmFtLmdldChcIm5hbWVcIil9IGRhdGEtcGFyYW0taW49e3BhcmFtLmdldChcImluXCIpfT5cbiAgICAgICAge1xuICAgICAgICAgIGlzRWRpdEJveCAmJiBpc0V4ZWN1dGVcbiAgICAgICAgICAgID8gPFRleHRBcmVhIGNsYXNzTmFtZT17IFwiYm9keS1wYXJhbV9fdGV4dFwiICsgKCBlcnJvcnMuY291bnQoKSA/IFwiIGludmFsaWRcIiA6IFwiXCIpfSB2YWx1ZT17dmFsdWV9IG9uQ2hhbmdlPXsgdGhpcy5oYW5kbGVPbkNoYW5nZSB9Lz5cbiAgICAgICAgICAgIDogKHZhbHVlICYmIDxIaWdobGlnaHRDb2RlIGNsYXNzTmFtZT1cImJvZHktcGFyYW1fX2V4YW1wbGVcIiBsYW5ndWFnZT17IGxhbmd1YWdlIH0+e3ZhbHVlfTwvSGlnaGxpZ2h0Q29kZT4pXG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJib2R5LXBhcmFtLW9wdGlvbnNcIj5cbiAgICAgICAgICB7XG4gICAgICAgICAgICAhaXNFeGVjdXRlID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICA6IDxkaXYgY2xhc3NOYW1lPVwiYm9keS1wYXJhbS1lZGl0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIGNsYXNzTmFtZT17aXNFZGl0Qm94ID8gXCJidG4gY2FuY2VsIGJvZHktcGFyYW1fX2V4YW1wbGUtZWRpdFwiIDogXCJidG4gZWRpdCBib2R5LXBhcmFtX19leGFtcGxlLWVkaXRcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMudG9nZ2xlSXNFZGl0Qm94fT57IGlzRWRpdEJveCA/IFwiQ2FuY2VsXCIgOiBcIkVkaXRcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGxhYmVsIGh0bWxGb3I9e2NvbnRyb2xJZH0+XG4gICAgICAgICAgICA8c3Bhbj5QYXJhbWV0ZXIgY29udGVudCB0eXBlPC9zcGFuPlxuICAgICAgICAgICAgPENvbnRlbnRUeXBlXG4gICAgICAgICAgICAgIHZhbHVlPXsgY29uc3VtZXNWYWx1ZSB9XG4gICAgICAgICAgICAgIGNvbnRlbnRUeXBlcz17IGNvbnN1bWVzIH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlQ29uc3VtZXN9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJvZHktcGFyYW0tY29udGVudC10eXBlXCJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiUGFyYW1ldGVyIGNvbnRlbnQgdHlwZVwiXG4gICAgICAgICAgICAgIGNvbnRyb2xJZD17Y29udHJvbElkfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgPC9kaXY+XG4gICAgKVxuXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgeyBDb3B5VG9DbGlwYm9hcmQgfSBmcm9tIFwicmVhY3QtY29weS10by1jbGlwYm9hcmRcIlxuaW1wb3J0IHsgcmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfY3VybF9iYXNoIH0gZnJvbSBcIi4uL3BsdWdpbnMvcmVxdWVzdC1zbmlwcGV0cy9mblwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEN1cmwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICByZXF1ZXN0OiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWRcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IHJlcXVlc3QsIGdldENvbXBvbmVudCB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IGN1cmwgPSByZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX2Jhc2gocmVxdWVzdClcbiAgICBjb25zdCBTeW50YXhIaWdobGlnaHRlciA9IGdldENvbXBvbmVudChcIlN5bnRheEhpZ2hsaWdodGVyXCIsIHRydWUpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjdXJsLWNvbW1hbmRcIj5cbiAgICAgICAgPGg0PkN1cmw8L2g0PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvcHktdG8tY2xpcGJvYXJkXCI+XG4gICAgICAgICAgICA8Q29weVRvQ2xpcGJvYXJkIHRleHQ9e2N1cmx9PjxidXR0b24vPjwvQ29weVRvQ2xpcGJvYXJkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8U3ludGF4SGlnaGxpZ2h0ZXJcbiAgICAgICAgICAgIGxhbmd1YWdlPVwiYmFzaFwiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJjdXJsIG1pY3JvbGlnaHRcIlxuICAgICAgICAgICAgcmVuZGVyUGxhaW5UZXh0PXsoeyBjaGlsZHJlbiwgUGxhaW5UZXh0Vmlld2VyIH0pID0+IChcbiAgICAgICAgICAgICAgPFBsYWluVGV4dFZpZXdlciBjbGFzc05hbWU9XCJjdXJsXCI+e2NoaWxkcmVufTwvUGxhaW5UZXh0Vmlld2VyPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y3VybH1cbiAgICAgICAgICA8L1N5bnRheEhpZ2hsaWdodGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5leHBvcnQgY29uc3QgUHJvcGVydHkgPSAoeyBwcm9wS2V5LCBwcm9wVmFsLCBwcm9wQ2xhc3MgfSkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT17IHByb3BDbGFzcyB9PlxuICAgICAgICAgIDxiciAvPnsgcHJvcEtleSB9OiB7IFN0cmluZyhwcm9wVmFsKSB9PC9zcGFuPlxuICAgIClcbn1cblByb3BlcnR5LnByb3BUeXBlcyA9IHtcbiAgcHJvcEtleTogUHJvcFR5cGVzLnN0cmluZyxcbiAgcHJvcFZhbDogUHJvcFR5cGVzLmFueSxcbiAgcHJvcENsYXNzOiBQcm9wVHlwZXMuc3RyaW5nXG59XG5cbmV4cG9ydCBkZWZhdWx0IFByb3BlcnR5XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUcnlJdE91dEJ1dHRvbiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBvblRyeW91dENsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvblJlc2V0Q2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uQ2FuY2VsQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICAgIGVuYWJsZWQ6IFByb3BUeXBlcy5ib29sLCAvLyBUcnkgaXQgb3V0IGlzIGVuYWJsZWQsIGllOiB0aGUgdXNlciBoYXMgYWNjZXNzIHRvIHRoZSBmb3JtXG4gICAgaGFzVXNlckVkaXRlZEJvZHk6IFByb3BUeXBlcy5ib29sLCAvLyBUcnkgaXQgb3V0IGlzIGVuYWJsZWQsIGllOiB0aGUgdXNlciBoYXMgYWNjZXNzIHRvIHRoZSBmb3JtXG4gICAgaXNPQVMzOiBQcm9wVHlwZXMuYm9vbCwgLy8gVHJ5IGl0IG91dCBpcyBlbmFibGVkLCBpZTogdGhlIHVzZXIgaGFzIGFjY2VzcyB0byB0aGUgZm9ybVxuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBvblRyeW91dENsaWNrOiBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgb25DYW5jZWxDbGljazogRnVuY3Rpb24ucHJvdG90eXBlLFxuICAgIG9uUmVzZXRDbGljazogRnVuY3Rpb24ucHJvdG90eXBlLFxuICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIGhhc1VzZXJFZGl0ZWRCb2R5OiBmYWxzZSxcbiAgICBpc09BUzM6IGZhbHNlLFxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgb25UcnlvdXRDbGljaywgb25DYW5jZWxDbGljaywgb25SZXNldENsaWNrLCBlbmFibGVkLCBoYXNVc2VyRWRpdGVkQm9keSwgaXNPQVMzIH0gPSB0aGlzLnByb3BzXG5cbiAgICBjb25zdCBzaG93UmVzZXQgPSBpc09BUzMgJiYgaGFzVXNlckVkaXRlZEJvZHlcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e3Nob3dSZXNldCA/IFwidHJ5LW91dCBidG4tZ3JvdXBcIiA6IFwidHJ5LW91dFwifT5cbiAgICAgICAge1xuICAgICAgICAgIGVuYWJsZWQgPyA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0biB0cnktb3V0X19idG4gY2FuY2VsXCIgb25DbGljaz17IG9uQ2FuY2VsQ2xpY2sgfT5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDogPGJ1dHRvbiBjbGFzc05hbWU9XCJidG4gdHJ5LW91dF9fYnRuXCIgb25DbGljaz17IG9uVHJ5b3V0Q2xpY2sgfT5UcnkgaXQgb3V0IDwvYnV0dG9uPlxuXG4gICAgICAgIH1cbiAgICAgICAge1xuICAgICAgICAgIHNob3dSZXNldCAmJiA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0biB0cnktb3V0X19idG4gcmVzZXRcIiBvbkNsaWNrPXsgb25SZXNldENsaWNrIH0+UmVzZXQ8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZXJzaW9uUHJhZ21hRmlsdGVyIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNTd2FnZ2VyMjogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBpc09BUzM6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgYnlwYXNzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBhbHNvU2hvdzogUHJvcFR5cGVzLmVsZW1lbnQsXG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnksXG4gIH1cblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGFsc29TaG93OiBudWxsLFxuICAgIGNoaWxkcmVuOiBudWxsLFxuICAgIGJ5cGFzczogZmFsc2UsXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBieXBhc3MsIGlzU3dhZ2dlcjIsIGlzT0FTMywgYWxzb1Nob3cgfSA9IHRoaXMucHJvcHNcblxuICAgIGlmKGJ5cGFzcykge1xuICAgICAgcmV0dXJuIDxkaXY+eyB0aGlzLnByb3BzLmNoaWxkcmVuIH08L2Rpdj5cbiAgICB9XG5cbiAgICBpZihpc1N3YWdnZXIyICYmIGlzT0FTMykge1xuICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwidmVyc2lvbi1wcmFnbWFcIj5cbiAgICAgICAge2Fsc29TaG93fVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInZlcnNpb24tcHJhZ21hX19tZXNzYWdlIHZlcnNpb24tcHJhZ21hX19tZXNzYWdlLS1hbWJpZ3VvdXNcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGgzPlVuYWJsZSB0byByZW5kZXIgdGhpcyBkZWZpbml0aW9uPC9oMz5cbiAgICAgICAgICAgIDxwPjxjb2RlPnN3YWdnZXI8L2NvZGU+IGFuZCA8Y29kZT5vcGVuYXBpPC9jb2RlPiBmaWVsZHMgY2Fubm90IGJlIHByZXNlbnQgaW4gdGhlIHNhbWUgU3dhZ2dlciBvciBPcGVuQVBJIGRlZmluaXRpb24uIFBsZWFzZSByZW1vdmUgb25lIG9mIHRoZSBmaWVsZHMuPC9wPlxuICAgICAgICAgICAgPHA+U3VwcG9ydGVkIHZlcnNpb24gZmllbGRzIGFyZSA8Y29kZT5zd2FnZ2VyOiB7XCJcXFwiMi4wXFxcIlwifTwvY29kZT4gYW5kIHRob3NlIHRoYXQgbWF0Y2ggPGNvZGU+b3BlbmFwaTogMy4wLm48L2NvZGU+IChmb3IgZXhhbXBsZSwgPGNvZGU+b3BlbmFwaTogMy4wLjQ8L2NvZGU+KS48L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgaWYoIWlzU3dhZ2dlcjIgJiYgIWlzT0FTMykge1xuICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwidmVyc2lvbi1wcmFnbWFcIj5cbiAgICAgICAge2Fsc29TaG93fVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInZlcnNpb24tcHJhZ21hX19tZXNzYWdlIHZlcnNpb24tcHJhZ21hX19tZXNzYWdlLS1taXNzaW5nXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxoMz5VbmFibGUgdG8gcmVuZGVyIHRoaXMgZGVmaW5pdGlvbjwvaDM+XG4gICAgICAgICAgICA8cD5UaGUgcHJvdmlkZWQgZGVmaW5pdGlvbiBkb2VzIG5vdCBzcGVjaWZ5IGEgdmFsaWQgdmVyc2lvbiBmaWVsZC48L3A+XG4gICAgICAgICAgICA8cD5QbGVhc2UgaW5kaWNhdGUgYSB2YWxpZCBTd2FnZ2VyIG9yIE9wZW5BUEkgdmVyc2lvbiBmaWVsZC4gU3VwcG9ydGVkIHZlcnNpb24gZmllbGRzIGFyZSA8Y29kZT5zd2FnZ2VyOiB7XCJcXFwiMi4wXFxcIlwifTwvY29kZT4gYW5kIHRob3NlIHRoYXQgbWF0Y2ggPGNvZGU+b3BlbmFwaTogMy4wLm48L2NvZGU+IChmb3IgZXhhbXBsZSwgPGNvZGU+b3BlbmFwaTogMy4wLjQ8L2NvZGU+KS48L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgcmV0dXJuIDxkaXY+eyB0aGlzLnByb3BzLmNoaWxkcmVuIH08L2Rpdj5cbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuY29uc3QgVmVyc2lvblN0YW1wID0gKHsgdmVyc2lvbiB9KSA9PiB7XG4gIHJldHVybiA8c21hbGw+PHByZSBjbGFzc05hbWU9XCJ2ZXJzaW9uXCI+IHsgdmVyc2lvbiB9IDwvcHJlPjwvc21hbGw+XG59XG5cblZlcnNpb25TdGFtcC5wcm9wVHlwZXMgPSB7XG4gIHZlcnNpb246IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZFxufVxuXG5leHBvcnQgZGVmYXVsdCBWZXJzaW9uU3RhbXBcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cblxuY29uc3QgT3BlbkFQSVZlcnNpb24gPSAoeyBvYXNWZXJzaW9uIH0pID0+IChcbiAgPHNtYWxsIGNsYXNzTmFtZT1cInZlcnNpb24tc3RhbXBcIj5cbiAgICA8cHJlIGNsYXNzTmFtZT1cInZlcnNpb25cIj5PQVMge29hc1ZlcnNpb259PC9wcmU+XG4gIDwvc21hbGw+XG4pXG5cbk9wZW5BUElWZXJzaW9uLnByb3BUeXBlcyA9IHtcbiAgb2FzVmVyc2lvbjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkXG59XG5cbmV4cG9ydCBkZWZhdWx0IE9wZW5BUElWZXJzaW9uXG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5leHBvcnQgY29uc3QgRGVlcExpbmsgPSAoeyBlbmFibGVkLCBwYXRoLCB0ZXh0IH0pID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgICA8YSBjbGFzc05hbWU9XCJub3N0eWxlXCJcbiAgICAgICAgICBvbkNsaWNrPXtlbmFibGVkID8gKGUpID0+IGUucHJldmVudERlZmF1bHQoKSA6IG51bGx9XG4gICAgICAgICAgaHJlZj17ZW5hYmxlZCA/IGAjLyR7cGF0aH1gIDogbnVsbH0+XG4gICAgICAgICAgPHNwYW4+e3RleHR9PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgKVxufVxuRGVlcExpbmsucHJvcFR5cGVzID0ge1xuICBlbmFibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgaXNTaG93bjogUHJvcFR5cGVzLmJvb2wsXG4gIHBhdGg6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHRleHQ6IFByb3BUeXBlcy5ub2RlXG59XG5cbmV4cG9ydCBkZWZhdWx0IERlZXBMaW5rXG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmNvbnN0IFN2Z0Fzc2V0cyA9ICgpID0+XG4gIDxkaXY+XG4gICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnNYbGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiBjbGFzc05hbWU9XCJzdmctYXNzZXRzXCI+XG4gICAgICA8ZGVmcz5cbiAgICAgICAgPHN5bWJvbCB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgaWQ9XCJ1bmxvY2tlZFwiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuOCA4SDE0VjUuNkMxNCAyLjcwMyAxMi42NjUgMSAxMCAxIDcuMzM0IDEgNiAyLjcwMyA2IDUuNlY2aDJ2LS44MDFDOCAzLjc1NCA4Ljc5NyAzIDEwIDNjMS4yMDMgMCAyIC43NTQgMiAyLjE5OVY4SDRjLS41NTMgMC0xIC42NDYtMSAxLjE5OVYxN2MwIC41NDkuNDI4IDEuMTM5Ljk1MSAxLjMwN2wxLjE5Ny4zODdDNS42NzIgMTguODYxIDYuNTUgMTkgNy4xIDE5aDUuOGMuNTQ5IDAgMS40MjgtLjEzOSAxLjk1MS0uMzA3bDEuMTk2LS4zODdjLjUyNC0uMTY3Ljk1My0uNzU3Ljk1My0xLjMwNlY5LjE5OUMxNyA4LjY0NiAxNi4zNTIgOCAxNS44IDh6XCI+PC9wYXRoPlxuICAgICAgICA8L3N5bWJvbD5cblxuICAgICAgICA8c3ltYm9sIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBpZD1cImxvY2tlZFwiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuOCA4SDE0VjUuNkMxNCAyLjcwMyAxMi42NjUgMSAxMCAxIDcuMzM0IDEgNiAyLjcwMyA2IDUuNlY4SDRjLS41NTMgMC0xIC42NDYtMSAxLjE5OVYxN2MwIC41NDkuNDI4IDEuMTM5Ljk1MSAxLjMwN2wxLjE5Ny4zODdDNS42NzIgMTguODYxIDYuNTUgMTkgNy4xIDE5aDUuOGMuNTQ5IDAgMS40MjgtLjEzOSAxLjk1MS0uMzA3bDEuMTk2LS4zODdjLjUyNC0uMTY3Ljk1My0uNzU3Ljk1My0xLjMwNlY5LjE5OUMxNyA4LjY0NiAxNi4zNTIgOCAxNS44IDh6TTEyIDhIOFY1LjE5OUM4IDMuNzU0IDguNzk3IDMgMTAgM2MxLjIwMyAwIDIgLjc1NCAyIDIuMTk5Vjh6XCIvPlxuICAgICAgICA8L3N5bWJvbD5cblxuICAgICAgICA8c3ltYm9sIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBpZD1cImNsb3NlXCI+XG4gICAgICAgICAgPHBhdGggZD1cIk0xNC4zNDggMTQuODQ5Yy0uNDY5LjQ2OS0xLjIyOS40NjktMS42OTcgMEwxMCAxMS44MTlsLTIuNjUxIDMuMDI5Yy0uNDY5LjQ2OS0xLjIyOS40NjktMS42OTcgMC0uNDY5LS40NjktLjQ2OS0xLjIyOSAwLTEuNjk3bDIuNzU4LTMuMTUtMi43NTktMy4xNTJjLS40NjktLjQ2OS0uNDY5LTEuMjI4IDAtMS42OTcuNDY5LS40NjkgMS4yMjgtLjQ2OSAxLjY5NyAwTDEwIDguMTgzbDIuNjUxLTMuMDMxYy40NjktLjQ2OSAxLjIyOC0uNDY5IDEuNjk3IDAgLjQ2OS40NjkuNDY5IDEuMjI5IDAgMS42OTdsLTIuNzU4IDMuMTUyIDIuNzU4IDMuMTVjLjQ2OS40NjkuNDY5IDEuMjI5IDAgMS42OTh6XCIvPlxuICAgICAgICA8L3N5bWJvbD5cblxuICAgICAgICA8c3ltYm9sIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBpZD1cImxhcmdlLWFycm93XCI+XG4gICAgICAgICAgPHBhdGggZD1cIk0xMy4yNSAxMEw2LjEwOSAyLjU4Yy0uMjY4LS4yNy0uMjY4LS43MDcgMC0uOTc5LjI2OC0uMjcuNzAxLS4yNy45NjkgMGw3LjgzIDcuOTA4Yy4yNjguMjcxLjI2OC43MDkgMCAuOTc5bC03LjgzIDcuOTA4Yy0uMjY4LjI3MS0uNzAxLjI3LS45NjkgMC0uMjY4LS4yNjktLjI2OC0uNzA3IDAtLjk3OUwxMy4yNSAxMHpcIi8+XG4gICAgICAgIDwvc3ltYm9sPlxuXG4gICAgICAgIDxzeW1ib2wgdmlld0JveD1cIjAgMCAyMCAyMFwiIGlkPVwibGFyZ2UtYXJyb3ctZG93blwiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNMTcuNDE4IDYuMTA5Yy4yNzItLjI2OC43MDktLjI2OC45NzkgMHMuMjcxLjcwMSAwIC45NjlsLTcuOTA4IDcuODNjLS4yNy4yNjgtLjcwNy4yNjgtLjk3OSAwbC03LjkwOC03LjgzYy0uMjctLjI2OC0uMjctLjcwMSAwLS45NjkuMjcxLS4yNjguNzA5LS4yNjguOTc5IDBMMTAgMTMuMjVsNy40MTgtNy4xNDF6XCIvPlxuICAgICAgICA8L3N5bWJvbD5cblxuICAgICAgICA8c3ltYm9sIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBpZD1cImxhcmdlLWFycm93LXVwXCI+XG4gICAgICAgICAgPHBhdGggZD1cIk0gMTcuNDE4IDE0LjkwOCBDIDE3LjY5IDE1LjE3NiAxOC4xMjcgMTUuMTc2IDE4LjM5NyAxNC45MDggQyAxOC42NjcgMTQuNjQgMTguNjY4IDE0LjIwNyAxOC4zOTcgMTMuOTM5IEwgMTAuNDg5IDYuMTA5IEMgMTAuMjE5IDUuODQxIDkuNzgyIDUuODQxIDkuNTEgNi4xMDkgTCAxLjYwMiAxMy45MzkgQyAxLjMzMiAxNC4yMDcgMS4zMzIgMTQuNjQgMS42MDIgMTQuOTA4IEMgMS44NzMgMTUuMTc2IDIuMzExIDE1LjE3NiAyLjU4MSAxNC45MDggTCAxMCA3Ljc2NyBMIDE3LjQxOCAxNC45MDggWlwiLz5cbiAgICAgICAgPC9zeW1ib2w+XG5cbiAgICAgICAgPHN5bWJvbCB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgaWQ9XCJqdW1wLXRvXCI+XG4gICAgICAgICAgPHBhdGggZD1cIk0xOSA3djRINS44M2wzLjU4LTMuNTlMOCA2bC02IDYgNiA2IDEuNDEtMS40MUw1LjgzIDEzSDIxVjd6XCIvPlxuICAgICAgICA8L3N5bWJvbD5cblxuICAgICAgICA8c3ltYm9sIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBpZD1cImV4cGFuZFwiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNMTAgMThoNHYtMmgtNHYyek0zIDZ2MmgxOFY2SDN6bTMgN2gxMnYtMkg2djJ6XCIvPlxuICAgICAgICA8L3N5bWJvbD5cblxuICAgICAgICA8c3ltYm9sIHZpZXdCb3g9XCIwIDAgMTUgMTZcIiBpZD1cImNvcHlcIj5cbiAgICAgICAgICA8ZyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgyLCAtMSknPlxuICAgICAgICAgICAgPHBhdGggZmlsbD0nI2ZmZmZmZicgZmlsbFJ1bGU9J2V2ZW5vZGQnIGQ9J00yIDEzaDR2MUgydi0xem01LTZIMnYxaDVWN3ptMiAzVjhsLTMgMyAzIDN2LTJoNXYtMkg5ek00LjUgOUgydjFoMi41Vjl6TTIgMTJoMi41di0xSDJ2MXptOSAxaDF2MmMtLjAyLjI4LS4xMS41Mi0uMy43LS4xOS4xOC0uNDIuMjgtLjcuM0gxYy0uNTUgMC0xLS40NS0xLTFWNGMwLS41NS40NS0xIDEtMWgzYzAtMS4xMS44OS0yIDItMiAxLjExIDAgMiAuODkgMiAyaDNjLjU1IDAgMSAuNDUgMSAxdjVoLTFWNkgxdjloMTB2LTJ6TTIgNWg4YzAtLjU1LS40NS0xLTEtMUg4Yy0uNTUgMC0xLS40NS0xLTFzLS40NS0xLTEtMS0xIC40NS0xIDEtLjQ1IDEtMSAxSDNjLS41NSAwLTEgLjQ1LTEgMXonPjwvcGF0aD5cbiAgICAgICAgICA8L2c+XG4gICAgICAgIDwvc3ltYm9sPlxuXG4gICAgICA8L2RlZnM+XG4gICAgPC9zdmc+XG4gIDwvZGl2PlxuXG5leHBvcnQgZGVmYXVsdCBTdmdBc3NldHNcbiIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcIlJlbWFya2FibGVcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZW1hcmthYmxlX18uUmVtYXJrYWJsZTsgfSB9KTsiLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJsaW5raWZ5XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVtYXJrYWJsZV9saW5raWZ5XzM0ODI5YmE2X18ubGlua2lmeTsgfSB9KTsiLCJ2YXIgeCA9IGZ1bmN0aW9uKHkpIHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gZnVuY3Rpb24oeCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiB4OyB9OyB9XG52YXIgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJkZWZhdWx0XCJdOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfZG9tcHVyaWZ5X19bXCJkZWZhdWx0XCJdOyB9IH0pOyIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgeyBSZW1hcmthYmxlIH0gZnJvbSBcInJlbWFya2FibGVcIlxuaW1wb3J0IHsgbGlua2lmeSB9IGZyb20gXCJyZW1hcmthYmxlL2xpbmtpZnlcIlxuaW1wb3J0IERvbVB1cmlmeSBmcm9tIFwiZG9tcHVyaWZ5XCJcbmltcG9ydCBjeCBmcm9tIFwiY2xhc3NuYW1lc1wiXG5cbmlmIChEb21QdXJpZnkuYWRkSG9vaykge1xuICBEb21QdXJpZnkuYWRkSG9vayhcImJlZm9yZVNhbml0aXplRWxlbWVudHNcIiwgZnVuY3Rpb24gKGN1cnJlbnQsICkge1xuICAgIC8vIEF0dGFjaCBzYWZlIGByZWxgIHZhbHVlcyB0byBhbGwgZWxlbWVudHMgdGhhdCBjb250YWluIGFuIGBocmVmYCxcbiAgICAvLyBpLmUuIGFsbCBhbmNob3JzIHRoYXQgYXJlIGxpbmtzLlxuICAgIC8vIFdlIF9jb3VsZF8ganVzdCBsb29rIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgYSBub24tc2VsZiB0YXJnZXQsXG4gICAgLy8gYnV0IGFwcGx5aW5nIGl0IG1vcmUgYnJvYWRseSBzaG91bGRuJ3QgaHVydCBhbnl0aGluZywgYW5kIGlzIHNhZmVyLlxuICAgIGlmIChjdXJyZW50LmhyZWYpIHtcbiAgICAgIGN1cnJlbnQuc2V0QXR0cmlidXRlKFwicmVsXCIsIFwibm9vcGVuZXIgbm9yZWZlcnJlclwiKVxuICAgIH1cbiAgICByZXR1cm4gY3VycmVudFxuICB9KVxufVxuXG5mdW5jdGlvbiBNYXJrZG93bih7IHNvdXJjZSwgY2xhc3NOYW1lID0gXCJcIiwgZ2V0Q29uZmlncyA9ICgpID0+ICh7IHVzZVVuc2FmZU1hcmtkb3duOiBmYWxzZSB9KSB9KSB7XG4gIGlmICh0eXBlb2Ygc291cmNlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IG1kID0gbmV3IFJlbWFya2FibGUoe1xuICAgIGh0bWw6IHRydWUsXG4gICAgdHlwb2dyYXBoZXI6IHRydWUsXG4gICAgYnJlYWtzOiB0cnVlLFxuICAgIGxpbmtUYXJnZXQ6IFwiX2JsYW5rXCJcbiAgfSkudXNlKGxpbmtpZnkpXG5cbiAgbWQuY29yZS5ydWxlci5kaXNhYmxlKFtcInJlcGxhY2VtZW50c1wiLCBcInNtYXJ0cXVvdGVzXCJdKVxuXG4gIGNvbnN0IHsgdXNlVW5zYWZlTWFya2Rvd24gfSA9IGdldENvbmZpZ3MoKVxuICBjb25zdCBodG1sID0gbWQucmVuZGVyKHNvdXJjZSlcbiAgY29uc3Qgc2FuaXRpemVkID0gc2FuaXRpemVyKGh0bWwsIHsgdXNlVW5zYWZlTWFya2Rvd24gfSlcblxuICBpZiAoIXNvdXJjZSB8fCAhaHRtbCB8fCAhc2FuaXRpemVkKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2N4KGNsYXNzTmFtZSwgXCJtYXJrZG93blwiKX0gZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3sgX19odG1sOiBzYW5pdGl6ZWQgfX0+PC9kaXY+XG4gIClcbn1cblxuTWFya2Rvd24ucHJvcFR5cGVzID0ge1xuICBzb3VyY2U6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBnZXRDb25maWdzOiBQcm9wVHlwZXMuZnVuYyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWFya2Rvd25cblxuZXhwb3J0IGZ1bmN0aW9uIHNhbml0aXplcihzdHIsIHsgdXNlVW5zYWZlTWFya2Rvd24gPSBmYWxzZSB9ID0ge30pIHtcbiAgY29uc3QgQUxMT1dfREFUQV9BVFRSID0gdXNlVW5zYWZlTWFya2Rvd25cbiAgY29uc3QgRk9SQklEX0FUVFIgPSB1c2VVbnNhZmVNYXJrZG93biA/IFtdIDogW1wic3R5bGVcIiwgXCJjbGFzc1wiXVxuXG4gIGlmICh1c2VVbnNhZmVNYXJrZG93biAmJiAhc2FuaXRpemVyLmhhc1dhcm5lZEFib3V0RGVwcmVjYXRpb24pIHtcbiAgICBjb25zb2xlLndhcm4oYHVzZVVuc2FmZU1hcmtkb3duIGRpc3BsYXkgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaXMgZGVwcmVjYXRlZCBzaW5jZSA+My4yNi4wIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdjQuMC4wLmApXG4gICAgc2FuaXRpemVyLmhhc1dhcm5lZEFib3V0RGVwcmVjYXRpb24gPSB0cnVlXG4gIH1cblxuICByZXR1cm4gRG9tUHVyaWZ5LnNhbml0aXplKHN0ciwge1xuICAgIEFERF9BVFRSOiBbXCJ0YXJnZXRcIl0sXG4gICAgRk9SQklEX1RBR1M6IFtcInN0eWxlXCIsIFwiZm9ybVwiXSxcbiAgICBBTExPV19EQVRBX0FUVFIsXG4gICAgRk9SQklEX0FUVFIsXG4gIH0pXG59XG5zYW5pdGl6ZXIuaGFzV2FybmVkQWJvdXREZXByZWNhdGlvbiA9IGZhbHNlXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCYXNlTGF5b3V0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBlcnJTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBlcnJBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG9hczNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBvYXMzQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGVyclNlbGVjdG9ycywgc3BlY1NlbGVjdG9ycywgZ2V0Q29tcG9uZW50IH0gPSB0aGlzLnByb3BzXG5cbiAgICBjb25zdCBTdmdBc3NldHMgPSBnZXRDb21wb25lbnQoXCJTdmdBc3NldHNcIilcbiAgICBjb25zdCBJbmZvQ29udGFpbmVyID0gZ2V0Q29tcG9uZW50KFwiSW5mb0NvbnRhaW5lclwiLCB0cnVlKVxuICAgIGNvbnN0IFZlcnNpb25QcmFnbWFGaWx0ZXIgPSBnZXRDb21wb25lbnQoXCJWZXJzaW9uUHJhZ21hRmlsdGVyXCIpXG4gICAgY29uc3QgT3BlcmF0aW9ucyA9IGdldENvbXBvbmVudChcIm9wZXJhdGlvbnNcIiwgdHJ1ZSlcbiAgICBjb25zdCBNb2RlbHMgPSBnZXRDb21wb25lbnQoXCJNb2RlbHNcIiwgdHJ1ZSlcbiAgICBjb25zdCBXZWJob29rcyA9IGdldENvbXBvbmVudChcIldlYmhvb2tzXCIsIHRydWUpXG4gICAgY29uc3QgUm93ID0gZ2V0Q29tcG9uZW50KFwiUm93XCIpXG4gICAgY29uc3QgQ29sID0gZ2V0Q29tcG9uZW50KFwiQ29sXCIpXG4gICAgY29uc3QgRXJyb3JzID0gZ2V0Q29tcG9uZW50KFwiZXJyb3JzXCIsIHRydWUpXG5cbiAgICBjb25zdCBTZXJ2ZXJzQ29udGFpbmVyID0gZ2V0Q29tcG9uZW50KFwiU2VydmVyc0NvbnRhaW5lclwiLCB0cnVlKVxuICAgIGNvbnN0IFNjaGVtZXNDb250YWluZXIgPSBnZXRDb21wb25lbnQoXCJTY2hlbWVzQ29udGFpbmVyXCIsIHRydWUpXG4gICAgY29uc3QgQXV0aG9yaXplQnRuQ29udGFpbmVyID0gZ2V0Q29tcG9uZW50KFwiQXV0aG9yaXplQnRuQ29udGFpbmVyXCIsIHRydWUpXG4gICAgY29uc3QgRmlsdGVyQ29udGFpbmVyID0gZ2V0Q29tcG9uZW50KFwiRmlsdGVyQ29udGFpbmVyXCIsIHRydWUpXG4gICAgY29uc3QgaXNTd2FnZ2VyMiA9IHNwZWNTZWxlY3RvcnMuaXNTd2FnZ2VyMigpXG4gICAgY29uc3QgaXNPQVMzID0gc3BlY1NlbGVjdG9ycy5pc09BUzMoKVxuICAgIGNvbnN0IGlzT0FTMzEgPSBzcGVjU2VsZWN0b3JzLmlzT0FTMzEoKVxuXG4gICAgY29uc3QgaXNTcGVjRW1wdHkgPSAhc3BlY1NlbGVjdG9ycy5zcGVjU3RyKClcblxuICAgIGNvbnN0IGxvYWRpbmdTdGF0dXMgPSBzcGVjU2VsZWN0b3JzLmxvYWRpbmdTdGF0dXMoKVxuXG4gICAgbGV0IGxvYWRpbmdNZXNzYWdlID0gbnVsbFxuXG4gICAgaWYgKGxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGluZ1wiKSB7XG4gICAgICBsb2FkaW5nTWVzc2FnZSA9IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2FkaW5nLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2FkaW5nXCI+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKVxuICAgIH1cblxuICAgIGlmIChsb2FkaW5nU3RhdHVzID09PSBcImZhaWxlZFwiKSB7XG4gICAgICBsb2FkaW5nTWVzc2FnZSA9IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2FkaW5nLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cInRpdGxlXCI+RmFpbGVkIHRvIGxvYWQgQVBJIGRlZmluaXRpb24uPC9oND5cbiAgICAgICAgICAgIDxFcnJvcnMgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKGxvYWRpbmdTdGF0dXMgPT09IFwiZmFpbGVkQ29uZmlnXCIpIHtcbiAgICAgIGNvbnN0IGxhc3RFcnIgPSBlcnJTZWxlY3RvcnMubGFzdEVycm9yKClcbiAgICAgIGNvbnN0IGxhc3RFcnJNc2cgPSBsYXN0RXJyID8gbGFzdEVyci5nZXQoXCJtZXNzYWdlXCIpIDogXCJcIlxuICAgICAgbG9hZGluZ01lc3NhZ2UgPSAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mbyBmYWlsZWQtY29uZmlnXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2FkaW5nLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cInRpdGxlXCI+RmFpbGVkIHRvIGxvYWQgcmVtb3RlIGNvbmZpZ3VyYXRpb24uPC9oND5cbiAgICAgICAgICAgIDxwPntsYXN0RXJyTXNnfTwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKCFsb2FkaW5nTWVzc2FnZSAmJiBpc1NwZWNFbXB0eSkge1xuICAgICAgbG9hZGluZ01lc3NhZ2UgPSA8aDQ+Tm8gQVBJIGRlZmluaXRpb24gcHJvdmlkZWQuPC9oND5cbiAgICB9XG5cbiAgICBpZiAobG9hZGluZ01lc3NhZ2UpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3dhZ2dlci11aVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibG9hZGluZy1jb250YWluZXJcIj57bG9hZGluZ01lc3NhZ2V9PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IHNlcnZlcnMgPSBzcGVjU2VsZWN0b3JzLnNlcnZlcnMoKVxuICAgIGNvbnN0IHNjaGVtZXMgPSBzcGVjU2VsZWN0b3JzLnNjaGVtZXMoKVxuXG4gICAgY29uc3QgaGFzU2VydmVycyA9IHNlcnZlcnMgJiYgc2VydmVycy5zaXplXG4gICAgY29uc3QgaGFzU2NoZW1lcyA9IHNjaGVtZXMgJiYgc2NoZW1lcy5zaXplXG4gICAgY29uc3QgaGFzU2VjdXJpdHlEZWZpbml0aW9ucyA9ICEhc3BlY1NlbGVjdG9ycy5zZWN1cml0eURlZmluaXRpb25zKClcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInN3YWdnZXItdWlcIj5cbiAgICAgICAgPFN2Z0Fzc2V0cyAvPlxuICAgICAgICA8VmVyc2lvblByYWdtYUZpbHRlclxuICAgICAgICAgIGlzU3dhZ2dlcjI9e2lzU3dhZ2dlcjJ9XG4gICAgICAgICAgaXNPQVMzPXtpc09BUzN9XG4gICAgICAgICAgYWxzb1Nob3c9ezxFcnJvcnMgLz59XG4gICAgICAgID5cbiAgICAgICAgICA8RXJyb3JzIC8+XG4gICAgICAgICAgPFJvdyBjbGFzc05hbWU9XCJpbmZvcm1hdGlvbi1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxDb2wgbW9iaWxlPXsxMn0+XG4gICAgICAgICAgICAgIDxJbmZvQ29udGFpbmVyIC8+XG4gICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8L1Jvdz5cblxuICAgICAgICAgIHtoYXNTZXJ2ZXJzIHx8IGhhc1NjaGVtZXMgfHwgaGFzU2VjdXJpdHlEZWZpbml0aW9ucyA/IChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2NoZW1lLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICA8Q29sIGNsYXNzTmFtZT1cInNjaGVtZXMgd3JhcHBlclwiIG1vYmlsZT17MTJ9PlxuICAgICAgICAgICAgICAgIHtoYXNTZXJ2ZXJzIHx8IGhhc1NjaGVtZXMgPyAoXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNjaGVtZXMtc2VydmVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICB7aGFzU2VydmVycyA/IDxTZXJ2ZXJzQ29udGFpbmVyIC8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAge2hhc1NjaGVtZXMgPyA8U2NoZW1lc0NvbnRhaW5lciAvPiA6IG51bGx9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7aGFzU2VjdXJpdHlEZWZpbml0aW9ucyA/IDxBdXRob3JpemVCdG5Db250YWluZXIgLz4gOiBudWxsfVxuICAgICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgICAgPEZpbHRlckNvbnRhaW5lciAvPlxuXG4gICAgICAgICAgPFJvdz5cbiAgICAgICAgICAgIDxDb2wgbW9iaWxlPXsxMn0gZGVza3RvcD17MTJ9PlxuICAgICAgICAgICAgICA8T3BlcmF0aW9ucyAvPlxuICAgICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPC9Sb3c+XG5cbiAgICAgICAgICB7aXNPQVMzMSAmJiAoXG4gICAgICAgICAgICA8Um93IGNsYXNzTmFtZT1cIndlYmhvb2tzLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICA8Q29sIG1vYmlsZT17MTJ9IGRlc2t0b3A9ezEyfT5cbiAgICAgICAgICAgICAgICA8V2ViaG9va3MgLz5cbiAgICAgICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgICA8L1Jvdz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAgPFJvdz5cbiAgICAgICAgICAgIDxDb2wgbW9iaWxlPXsxMn0gZGVza3RvcD17MTJ9PlxuICAgICAgICAgICAgICA8TW9kZWxzIC8+XG4gICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8L1Jvdz5cbiAgICAgICAgPC9WZXJzaW9uUHJhZ21hRmlsdGVyPlxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG59XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgQXBwIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvYXBwXCJcbmltcG9ydCBBdXRob3JpemF0aW9uUG9wdXAgZnJvbSBcImNvcmUvY29tcG9uZW50cy9hdXRoL2F1dGhvcml6YXRpb24tcG9wdXBcIlxuaW1wb3J0IEF1dGhvcml6ZUJ0biBmcm9tIFwiY29yZS9jb21wb25lbnRzL2F1dGgvYXV0aG9yaXplLWJ0blwiXG5pbXBvcnQgQXV0aG9yaXplQnRuQ29udGFpbmVyIGZyb20gXCJjb3JlL2NvbnRhaW5lcnMvYXV0aG9yaXplLWJ0blwiXG5pbXBvcnQgQXV0aG9yaXplT3BlcmF0aW9uQnRuIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvYXV0aC9hdXRob3JpemUtb3BlcmF0aW9uLWJ0blwiXG5pbXBvcnQgQXV0aHMgZnJvbSBcImNvcmUvY29tcG9uZW50cy9hdXRoL2F1dGhzXCJcbmltcG9ydCBBdXRoSXRlbSBmcm9tIFwiY29yZS9jb21wb25lbnRzL2F1dGgvYXV0aC1pdGVtXCJcbmltcG9ydCBBdXRoRXJyb3IgZnJvbSBcImNvcmUvY29tcG9uZW50cy9hdXRoL2Vycm9yXCJcbmltcG9ydCBBcGlLZXlBdXRoIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvYXV0aC9hcGkta2V5LWF1dGhcIlxuaW1wb3J0IEJhc2ljQXV0aCBmcm9tIFwiY29yZS9jb21wb25lbnRzL2F1dGgvYmFzaWMtYXV0aFwiXG5pbXBvcnQgRXhhbXBsZSBmcm9tIFwiY29yZS9jb21wb25lbnRzL2V4YW1wbGVcIlxuaW1wb3J0IEV4YW1wbGVzU2VsZWN0IGZyb20gXCJjb3JlL2NvbXBvbmVudHMvZXhhbXBsZXMtc2VsZWN0XCJcbmltcG9ydCBFeGFtcGxlc1NlbGVjdFZhbHVlUmV0YWluZXIgZnJvbSBcImNvcmUvY29tcG9uZW50cy9leGFtcGxlcy1zZWxlY3QtdmFsdWUtcmV0YWluZXJcIlxuaW1wb3J0IE9hdXRoMiBmcm9tIFwiY29yZS9jb21wb25lbnRzL2F1dGgvb2F1dGgyXCJcbmltcG9ydCBDbGVhciBmcm9tIFwiY29yZS9jb21wb25lbnRzL2NsZWFyXCJcbmltcG9ydCBMaXZlUmVzcG9uc2UgZnJvbSBcImNvcmUvY29tcG9uZW50cy9saXZlLXJlc3BvbnNlXCJcbmltcG9ydCBPbmxpbmVWYWxpZGF0b3JCYWRnZSBmcm9tIFwiY29yZS9jb21wb25lbnRzL29ubGluZS12YWxpZGF0b3ItYmFkZ2VcIlxuaW1wb3J0IE9wZXJhdGlvbnMgZnJvbSBcImNvcmUvY29tcG9uZW50cy9vcGVyYXRpb25zXCJcbmltcG9ydCBPcGVyYXRpb25UYWcgZnJvbSBcImNvcmUvY29tcG9uZW50cy9vcGVyYXRpb24tdGFnXCJcbmltcG9ydCBPcGVyYXRpb24gZnJvbSBcImNvcmUvY29tcG9uZW50cy9vcGVyYXRpb25cIlxuaW1wb3J0IE9wZXJhdGlvbkNvbnRhaW5lciBmcm9tIFwiY29yZS9jb250YWluZXJzL09wZXJhdGlvbkNvbnRhaW5lclwiXG5pbXBvcnQgT3BlcmF0aW9uU3VtbWFyeSBmcm9tIFwiY29yZS9jb21wb25lbnRzL29wZXJhdGlvbi1zdW1tYXJ5XCJcbmltcG9ydCBPcGVyYXRpb25TdW1tYXJ5TWV0aG9kIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvb3BlcmF0aW9uLXN1bW1hcnktbWV0aG9kXCJcbmltcG9ydCBPcGVyYXRpb25TdW1tYXJ5UGF0aCBmcm9tIFwiY29yZS9jb21wb25lbnRzL29wZXJhdGlvbi1zdW1tYXJ5LXBhdGhcIlxuaW1wb3J0IE9wZXJhdGlvbkV4dCBmcm9tIFwiY29yZS9jb21wb25lbnRzL29wZXJhdGlvbi1leHRlbnNpb25zXCJcbmltcG9ydCBPcGVyYXRpb25FeHRSb3cgZnJvbSBcImNvcmUvY29tcG9uZW50cy9vcGVyYXRpb24tZXh0ZW5zaW9uLXJvd1wiXG5pbXBvcnQgUmVzcG9uc2VzIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvcmVzcG9uc2VzXCJcbmltcG9ydCBSZXNwb25zZSBmcm9tIFwiY29yZS9jb21wb25lbnRzL3Jlc3BvbnNlXCJcbmltcG9ydCBSZXNwb25zZUV4dGVuc2lvbiBmcm9tIFwiY29yZS9jb21wb25lbnRzL3Jlc3BvbnNlLWV4dGVuc2lvblwiXG5pbXBvcnQgUmVzcG9uc2VCb2R5IGZyb20gXCJjb3JlL2NvbXBvbmVudHMvcmVzcG9uc2UtYm9keVwiXG5pbXBvcnQgeyBQYXJhbWV0ZXJzIH0gZnJvbSBcImNvcmUvY29tcG9uZW50cy9wYXJhbWV0ZXJzXCJcbmltcG9ydCBQYXJhbWV0ZXJFeHQgZnJvbSBcImNvcmUvY29tcG9uZW50cy9wYXJhbWV0ZXItZXh0ZW5zaW9uXCJcbmltcG9ydCBQYXJhbWV0ZXJJbmNsdWRlRW1wdHkgZnJvbSBcImNvcmUvY29tcG9uZW50cy9wYXJhbWV0ZXItaW5jbHVkZS1lbXB0eVwiXG5pbXBvcnQgUGFyYW1ldGVyUm93IGZyb20gXCJjb3JlL2NvbXBvbmVudHMvcGFyYW1ldGVyLXJvd1wiXG5pbXBvcnQgRXhlY3V0ZSBmcm9tIFwiY29yZS9jb21wb25lbnRzL2V4ZWN1dGVcIlxuaW1wb3J0IEhlYWRlcnMgZnJvbSBcImNvcmUvY29tcG9uZW50cy9oZWFkZXJzXCJcbmltcG9ydCBFcnJvcnMgZnJvbSBcImNvcmUvY29tcG9uZW50cy9lcnJvcnNcIlxuaW1wb3J0IENvbnRlbnRUeXBlIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvY29udGVudC10eXBlXCJcbmltcG9ydCBPdmVydmlldyBmcm9tIFwiY29yZS9jb21wb25lbnRzL292ZXJ2aWV3XCJcbmltcG9ydCBJbml0aWFsaXplZElucHV0IGZyb20gXCJjb3JlL2NvbXBvbmVudHMvaW5pdGlhbGl6ZWQtaW5wdXRcIlxuaW1wb3J0IEluZm8sIHsgSW5mb1VybCwgSW5mb0Jhc2VQYXRoIH0gZnJvbSBcImNvcmUvY29tcG9uZW50cy9pbmZvXCJcbmltcG9ydCBJbmZvQ29udGFpbmVyIGZyb20gXCJjb3JlL2NvbnRhaW5lcnMvaW5mb1wiXG5pbXBvcnQgQ29udGFjdCBmcm9tIFwiY29yZS9jb21wb25lbnRzL2NvbnRhY3RcIlxuaW1wb3J0IExpY2Vuc2UgZnJvbSBcImNvcmUvY29tcG9uZW50cy9saWNlbnNlXCJcbmltcG9ydCBKdW1wVG9QYXRoIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvanVtcC10by1wYXRoXCJcbmltcG9ydCBDb3B5VG9DbGlwYm9hcmRCdG4gZnJvbSBcImNvcmUvY29tcG9uZW50cy9jb3B5LXRvLWNsaXBib2FyZC1idG5cIlxuaW1wb3J0IEZvb3RlciBmcm9tIFwiY29yZS9jb21wb25lbnRzL2Zvb3RlclwiXG5pbXBvcnQgRmlsdGVyQ29udGFpbmVyIGZyb20gXCJjb3JlL2NvbnRhaW5lcnMvZmlsdGVyXCJcbmltcG9ydCBQYXJhbUJvZHkgZnJvbSBcImNvcmUvY29tcG9uZW50cy9wYXJhbS1ib2R5XCJcbmltcG9ydCBDdXJsIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvY3VybFwiXG5pbXBvcnQgUHJvcGVydHkgZnJvbSBcImNvcmUvY29tcG9uZW50cy9wcm9wZXJ0eVwiXG5pbXBvcnQgVHJ5SXRPdXRCdXR0b24gZnJvbSBcImNvcmUvY29tcG9uZW50cy90cnktaXQtb3V0LWJ1dHRvblwiXG5pbXBvcnQgVmVyc2lvblByYWdtYUZpbHRlciBmcm9tIFwiY29yZS9jb21wb25lbnRzL3ZlcnNpb24tcHJhZ21hLWZpbHRlclwiXG5pbXBvcnQgVmVyc2lvblN0YW1wIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvdmVyc2lvbi1zdGFtcFwiXG5pbXBvcnQgT3BlbkFQSVZlcnNpb24gZnJvbSBcImNvcmUvY29tcG9uZW50cy9vcGVuYXBpLXZlcnNpb25cIlxuaW1wb3J0IERlZXBMaW5rIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvZGVlcC1saW5rXCJcbmltcG9ydCBTdmdBc3NldHMgZnJvbSBcImNvcmUvY29tcG9uZW50cy9zdmctYXNzZXRzXCJcbmltcG9ydCBNYXJrZG93biBmcm9tIFwiY29yZS9jb21wb25lbnRzL3Byb3ZpZGVycy9tYXJrZG93blwiXG5pbXBvcnQgQmFzZUxheW91dCBmcm9tIFwiY29yZS9jb21wb25lbnRzL2xheW91dHMvYmFzZVwiXG5cbmNvbnN0IENvcmVDb21wb25lbnRzUGx1Z2luID0gKCkgPT4gKHtcbiAgY29tcG9uZW50czoge1xuICAgIEFwcCxcbiAgICBhdXRob3JpemF0aW9uUG9wdXA6IEF1dGhvcml6YXRpb25Qb3B1cCxcbiAgICBhdXRob3JpemVCdG46IEF1dGhvcml6ZUJ0bixcbiAgICBBdXRob3JpemVCdG5Db250YWluZXIsXG4gICAgYXV0aG9yaXplT3BlcmF0aW9uQnRuOiBBdXRob3JpemVPcGVyYXRpb25CdG4sXG4gICAgYXV0aHM6IEF1dGhzLFxuICAgIEF1dGhJdGVtOiBBdXRoSXRlbSxcbiAgICBhdXRoRXJyb3I6IEF1dGhFcnJvcixcbiAgICBvYXV0aDI6IE9hdXRoMixcbiAgICBhcGlLZXlBdXRoOiBBcGlLZXlBdXRoLFxuICAgIGJhc2ljQXV0aDogQmFzaWNBdXRoLFxuICAgIGNsZWFyOiBDbGVhcixcbiAgICBsaXZlUmVzcG9uc2U6IExpdmVSZXNwb25zZSxcbiAgICBJbml0aWFsaXplZElucHV0LFxuICAgIGluZm86IEluZm8sXG4gICAgSW5mb0NvbnRhaW5lcixcbiAgICBJbmZvVXJsLFxuICAgIEluZm9CYXNlUGF0aCxcbiAgICBDb250YWN0LFxuICAgIExpY2Vuc2UsXG4gICAgSnVtcFRvUGF0aCxcbiAgICBDb3B5VG9DbGlwYm9hcmRCdG4sXG4gICAgb25saW5lVmFsaWRhdG9yQmFkZ2U6IE9ubGluZVZhbGlkYXRvckJhZGdlLFxuICAgIG9wZXJhdGlvbnM6IE9wZXJhdGlvbnMsXG4gICAgb3BlcmF0aW9uOiBPcGVyYXRpb24sXG4gICAgT3BlcmF0aW9uU3VtbWFyeSxcbiAgICBPcGVyYXRpb25TdW1tYXJ5TWV0aG9kLFxuICAgIE9wZXJhdGlvblN1bW1hcnlQYXRoLFxuICAgIHJlc3BvbnNlczogUmVzcG9uc2VzLFxuICAgIHJlc3BvbnNlOiBSZXNwb25zZSxcbiAgICBSZXNwb25zZUV4dGVuc2lvbjogUmVzcG9uc2VFeHRlbnNpb24sXG4gICAgcmVzcG9uc2VCb2R5OiBSZXNwb25zZUJvZHksXG4gICAgcGFyYW1ldGVyczogUGFyYW1ldGVycyxcbiAgICBwYXJhbWV0ZXJSb3c6IFBhcmFtZXRlclJvdyxcbiAgICBleGVjdXRlOiBFeGVjdXRlLFxuICAgIGhlYWRlcnM6IEhlYWRlcnMsXG4gICAgZXJyb3JzOiBFcnJvcnMsXG4gICAgY29udGVudFR5cGU6IENvbnRlbnRUeXBlLFxuICAgIG92ZXJ2aWV3OiBPdmVydmlldyxcbiAgICBmb290ZXI6IEZvb3RlcixcbiAgICBGaWx0ZXJDb250YWluZXIsXG4gICAgUGFyYW1Cb2R5OiBQYXJhbUJvZHksXG4gICAgY3VybDogQ3VybCxcbiAgICBQcm9wZXJ0eSxcbiAgICBUcnlJdE91dEJ1dHRvbixcbiAgICBNYXJrZG93bixcbiAgICBCYXNlTGF5b3V0LFxuICAgIFZlcnNpb25QcmFnbWFGaWx0ZXIsXG4gICAgVmVyc2lvblN0YW1wLFxuICAgIE9wZXJhdGlvbkV4dCxcbiAgICBPcGVyYXRpb25FeHRSb3csXG4gICAgUGFyYW1ldGVyRXh0LFxuICAgIFBhcmFtZXRlckluY2x1ZGVFbXB0eSxcbiAgICBPcGVyYXRpb25UYWcsXG4gICAgT3BlcmF0aW9uQ29udGFpbmVyLFxuICAgIE9wZW5BUElWZXJzaW9uLFxuICAgIERlZXBMaW5rLFxuICAgIFN2Z0Fzc2V0cyxcbiAgICBFeGFtcGxlLFxuICAgIEV4YW1wbGVzU2VsZWN0LFxuICAgIEV4YW1wbGVzU2VsZWN0VmFsdWVSZXRhaW5lcixcbiAgfSxcbn0pXG5cbmV4cG9ydCBkZWZhdWx0IENvcmVDb21wb25lbnRzUGx1Z2luXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgKiBhcyBMYXlvdXRVdGlscyBmcm9tIFwiY29yZS9jb21wb25lbnRzL2xheW91dC11dGlsc1wiXG5cbmNvbnN0IEZvcm1Db21wb25lbnRzUGx1Z2luID0gKCkgPT4gKHtcbiAgY29tcG9uZW50czogeyAuLi5MYXlvdXRVdGlscyB9LFxufSlcblxuZXhwb3J0IGRlZmF1bHQgRm9ybUNvbXBvbmVudHNQbHVnaW5cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBBdXRoUGx1Z2luIGZyb20gXCJjb3JlL3BsdWdpbnMvYXV0aC9cIlxuaW1wb3J0IENvbmZpZ3NQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy9jb25maWdzXCJcbmltcG9ydCBEZWVwTGlua2luZ1BsdWdpbiBmcm9tIFwiY29yZS9wbHVnaW5zL2RlZXAtbGlua2luZ1wiXG5pbXBvcnQgRXJyUGx1Z2luIGZyb20gXCJjb3JlL3BsdWdpbnMvZXJyXCJcbmltcG9ydCBGaWx0ZXJQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy9maWx0ZXJcIlxuaW1wb3J0IEljb25zUGx1Z2luIGZyb20gXCJjb3JlL3BsdWdpbnMvaWNvbnNcIlxuaW1wb3J0IExheW91dFBsdWdpbiBmcm9tIFwiY29yZS9wbHVnaW5zL2xheW91dFwiXG5pbXBvcnQgTG9nc1BsdWdpbiBmcm9tIFwiY29yZS9wbHVnaW5zL2xvZ3NcIlxuaW1wb3J0IE9uQ29tcGxldGVQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy9vbi1jb21wbGV0ZVwiXG5pbXBvcnQgUmVxdWVzdFNuaXBwZXRzUGx1Z2luIGZyb20gXCJjb3JlL3BsdWdpbnMvcmVxdWVzdC1zbmlwcGV0c1wiXG5pbXBvcnQgSlNPTlNjaGVtYTVQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01XCJcbmltcG9ydCBKU09OU2NoZW1hNVNhbXBsZXNQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01LXNhbXBsZXNcIlxuaW1wb3J0IFNwZWNQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy9zcGVjXCJcbmltcG9ydCBTd2FnZ2VyQ2xpZW50UGx1Z2luIGZyb20gXCJjb3JlL3BsdWdpbnMvc3dhZ2dlci1jbGllbnRcIlxuaW1wb3J0IFV0aWxQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy91dGlsXCJcbmltcG9ydCBWaWV3UGx1Z2luIGZyb20gXCJjb3JlL3BsdWdpbnMvdmlld1wiXG5pbXBvcnQgVmlld0xlZ2FjeVBsdWdpbiBmcm9tIFwiY29yZS9wbHVnaW5zL3ZpZXctbGVnYWN5XCJcbmltcG9ydCBEb3dubG9hZFVybFBsdWdpbiBmcm9tIFwiY29yZS9wbHVnaW5zL2Rvd25sb2FkLXVybFwiXG5pbXBvcnQgU3ludGF4SGlnaGxpZ2h0aW5nUGx1Z2luIGZyb20gXCJjb3JlL3BsdWdpbnMvc3ludGF4LWhpZ2hsaWdodGluZ1wiXG5pbXBvcnQgVmVyc2lvbnNQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy92ZXJzaW9uc1wiXG5pbXBvcnQgU2FmZVJlbmRlclBsdWdpbiBmcm9tIFwiY29yZS9wbHVnaW5zL3NhZmUtcmVuZGVyXCJcbi8vIGFkLWhvYyBwbHVnaW5zXG5pbXBvcnQgQ29yZUNvbXBvbmVudHNQbHVnaW4gZnJvbSBcImNvcmUvcHJlc2V0cy9iYXNlL3BsdWdpbnMvY29yZS1jb21wb25lbnRzXCJcbmltcG9ydCBGb3JtQ29tcG9uZW50c1BsdWdpbiBmcm9tIFwiY29yZS9wcmVzZXRzL2Jhc2UvcGx1Z2lucy9mb3JtLWNvbXBvbmVudHNcIlxuXG5jb25zdCBCYXNlUHJlc2V0ID0gKCkgPT4gW1xuICBDb25maWdzUGx1Z2luLFxuICBVdGlsUGx1Z2luLFxuICBMb2dzUGx1Z2luLFxuICBWaWV3UGx1Z2luLFxuICBWaWV3TGVnYWN5UGx1Z2luLFxuICBTcGVjUGx1Z2luLFxuICBFcnJQbHVnaW4sXG4gIEljb25zUGx1Z2luLFxuICBMYXlvdXRQbHVnaW4sXG4gIEpTT05TY2hlbWE1UGx1Z2luLFxuICBKU09OU2NoZW1hNVNhbXBsZXNQbHVnaW4sXG4gIENvcmVDb21wb25lbnRzUGx1Z2luLFxuICBGb3JtQ29tcG9uZW50c1BsdWdpbixcbiAgU3dhZ2dlckNsaWVudFBsdWdpbixcbiAgQXV0aFBsdWdpbixcbiAgRG93bmxvYWRVcmxQbHVnaW4sXG4gIERlZXBMaW5raW5nUGx1Z2luLFxuICBGaWx0ZXJQbHVnaW4sXG4gIE9uQ29tcGxldGVQbHVnaW4sXG4gIFJlcXVlc3RTbmlwcGV0c1BsdWdpbixcbiAgU3ludGF4SGlnaGxpZ2h0aW5nUGx1Z2luLFxuICBWZXJzaW9uc1BsdWdpbixcbiAgU2FmZVJlbmRlclBsdWdpbigpLFxuXVxuXG5leHBvcnQgZGVmYXVsdCBCYXNlUHJlc2V0XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gXCJyZXNlbGVjdFwiXG5pbXBvcnQgY29uc3RhbnQgZnJvbSBcImxvZGFzaC9jb25zdGFudFwiXG5pbXBvcnQgeyBzcGVjSnNvbldpdGhSZXNvbHZlZFN1YnRyZWVzIH0gZnJvbSBcIi4uLy4uL3NwZWMvc2VsZWN0b3JzXCJcbmltcG9ydCB7IE1hcCB9IGZyb20gXCJpbW11dGFibGVcIlxuXG4vKipcbiAqIEhlbHBlcnNcbiAqL1xuXG5jb25zdCBtYXAgPSBNYXAoKVxuXG5mdW5jdGlvbiBvbmx5T0FTMyhzZWxlY3Rvcikge1xuICByZXR1cm4gKG9yaSwgc3lzdGVtKSA9PlxuICAgICguLi5hcmdzKSA9PiB7XG4gICAgICBpZiAoc3lzdGVtLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuaXNPQVMzKCkpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0b3IoLi4uYXJncylcbiAgICAgICAgcmV0dXJuIHR5cGVvZiByZXN1bHQgPT09IFwiZnVuY3Rpb25cIiA/IHJlc3VsdChzeXN0ZW0pIDogcmVzdWx0XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gb3JpKC4uLmFyZ3MpXG4gICAgICB9XG4gICAgfVxufVxuXG5jb25zdCBudWxsU2VsZWN0b3IgPSBjb25zdGFudChudWxsKVxuXG5jb25zdCBPQVMzTnVsbFNlbGVjdG9yID0gb25seU9BUzMobnVsbFNlbGVjdG9yKVxuXG4vKipcbiAqIFdyYXBwZXJzXG4gKi9cblxuZXhwb3J0IGNvbnN0IGZpbmREZWZpbml0aW9uID0gb25seU9BUzMoKHN0YXRlLCBzY2hlbWFOYW1lKSA9PiAoc3lzdGVtKSA9PiB7XG4gIHJldHVybiBzeXN0ZW0uZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5maW5kU2NoZW1hKHNjaGVtYU5hbWUpXG59KVxuXG5leHBvcnQgY29uc3QgZGVmaW5pdGlvbnMgPSBvbmx5T0FTMygoKSA9PiAoc3lzdGVtKSA9PiB7XG4gIGNvbnN0IHNwZWMgPSBzeXN0ZW0uZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpXG4gIGNvbnN0IHNjaGVtYXMgPSBzcGVjLmdldEluKFtcImNvbXBvbmVudHNcIiwgXCJzY2hlbWFzXCJdKVxuICByZXR1cm4gTWFwLmlzTWFwKHNjaGVtYXMpID8gc2NoZW1hcyA6IG1hcFxufSlcblxuZXhwb3J0IGNvbnN0IGhhc0hvc3QgPSBvbmx5T0FTMygoKSA9PiAoc3lzdGVtKSA9PiB7XG4gIGNvbnN0IHNwZWMgPSBzeXN0ZW0uZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpXG4gIHJldHVybiBzcGVjLmhhc0luKFtcInNlcnZlcnNcIiwgMF0pXG59KVxuXG5leHBvcnQgY29uc3Qgc2VjdXJpdHlEZWZpbml0aW9ucyA9IG9ubHlPQVMzKFxuICBjcmVhdGVTZWxlY3RvcihcbiAgICBzcGVjSnNvbldpdGhSZXNvbHZlZFN1YnRyZWVzLFxuICAgIChzcGVjKSA9PiBzcGVjLmdldEluKFtcImNvbXBvbmVudHNcIiwgXCJzZWN1cml0eVNjaGVtZXNcIl0pIHx8IG51bGxcbiAgKVxuKVxuXG5leHBvcnQgY29uc3QgdmFsaWRPcGVyYXRpb25NZXRob2RzID1cbiAgKG9yaVNlbGVjdG9yLCBzeXN0ZW0pID0+XG4gIChzdGF0ZSwgLi4uYXJncykgPT4ge1xuICAgIGlmIChzeXN0ZW0uc3BlY1NlbGVjdG9ycy5pc09BUzMoKSkge1xuICAgICAgcmV0dXJuIHN5c3RlbS5vYXMzU2VsZWN0b3JzLnZhbGlkT3BlcmF0aW9uTWV0aG9kcygpXG4gICAgfVxuXG4gICAgcmV0dXJuIG9yaVNlbGVjdG9yKC4uLmFyZ3MpXG4gIH1cblxuZXhwb3J0IGNvbnN0IGhvc3QgPSBPQVMzTnVsbFNlbGVjdG9yXG5leHBvcnQgY29uc3QgYmFzZVBhdGggPSBPQVMzTnVsbFNlbGVjdG9yXG5leHBvcnQgY29uc3QgY29uc3VtZXMgPSBPQVMzTnVsbFNlbGVjdG9yXG5leHBvcnQgY29uc3QgcHJvZHVjZXMgPSBPQVMzTnVsbFNlbGVjdG9yXG5leHBvcnQgY29uc3Qgc2NoZW1lcyA9IE9BUzNOdWxsU2VsZWN0b3JcbiIsImltcG9ydCB7IGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSBcInJlc2VsZWN0XCJcbmltcG9ydCB7IExpc3QsIE1hcCwgZnJvbUpTIH0gZnJvbSBcImltbXV0YWJsZVwiXG5cblxuLy8gSGVscGVyc1xuXG5jb25zdCBzdGF0ZSA9IHN0YXRlID0+IHN0YXRlXG5cbmZ1bmN0aW9uIG9ubHlPQVMzKHNlbGVjdG9yKSB7XG4gIHJldHVybiAob3JpLCBzeXN0ZW0pID0+ICguLi5hcmdzKSA9PiB7XG4gICAgaWYoc3lzdGVtLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuaXNPQVMzKCkpIHtcbiAgICAgIC8vIFBhc3MgdGhlIHNwZWMgcGx1Z2luIHN0YXRlIHRvIFJlc2VsZWN0IHRvIHRyaWdnZXIgb24gc2VjdXJpdHlEZWZpbml0aW9ucyB1cGRhdGVcbiAgICAgIGxldCByZXNvbHZlZFNjaGVtZXMgPSBzeXN0ZW0uZ2V0U3RhdGUoKS5nZXRJbihbXCJzcGVjXCIsIFwicmVzb2x2ZWRTdWJ0cmVlc1wiLFxuICAgICAgICBcImNvbXBvbmVudHNcIiwgXCJzZWN1cml0eVNjaGVtZXNcIl0pXG4gICAgICByZXR1cm4gc2VsZWN0b3Ioc3lzdGVtLCByZXNvbHZlZFNjaGVtZXMsIC4uLmFyZ3MpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvcmkoLi4uYXJncylcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGRlZmluaXRpb25zVG9BdXRob3JpemUgPSBvbmx5T0FTMyhjcmVhdGVTZWxlY3RvcihcbiAgICBzdGF0ZSxcbiAgICAoe3NwZWNTZWxlY3RvcnN9KSA9PiBzcGVjU2VsZWN0b3JzLnNlY3VyaXR5RGVmaW5pdGlvbnMoKSxcbiAgICAoc3lzdGVtLCBkZWZpbml0aW9ucykgPT4ge1xuICAgICAgLy8gQ29lcmNlIG91ciBPcGVuQVBJIDMuMCBkZWZpbml0aW9ucyBpbnRvIG1vbm9mbG93IGRlZmluaXRpb25zXG4gICAgICAvLyB0aGF0IGxvb2sgbGlrZSBTd2FnZ2VyMiBkZWZpbml0aW9ucy5cbiAgICAgIGxldCBsaXN0ID0gTGlzdCgpXG5cbiAgICAgIGlmKCFkZWZpbml0aW9ucykge1xuICAgICAgICByZXR1cm4gbGlzdFxuICAgICAgfVxuXG4gICAgICBkZWZpbml0aW9ucy5lbnRyeVNlcSgpLmZvckVhY2goIChbIGRlZk5hbWUsIGRlZmluaXRpb24gXSkgPT4ge1xuICAgICAgICBjb25zdCB0eXBlID0gZGVmaW5pdGlvbj8uZ2V0KFwidHlwZVwiKVxuXG4gICAgICAgIGlmKHR5cGUgPT09IFwib2F1dGgyXCIpIHtcbiAgICAgICAgICBkZWZpbml0aW9uLmdldChcImZsb3dzXCIpLmVudHJ5U2VxKCkuZm9yRWFjaCgoW2Zsb3dLZXksIGZsb3dWYWxdKSA9PiB7XG4gICAgICAgICAgICBsZXQgdHJhbnNsYXRlZERlZiA9IGZyb21KUyh7XG4gICAgICAgICAgICAgIGZsb3c6IGZsb3dLZXksXG4gICAgICAgICAgICAgIGF1dGhvcml6YXRpb25Vcmw6IGZsb3dWYWwuZ2V0KFwiYXV0aG9yaXphdGlvblVybFwiKSxcbiAgICAgICAgICAgICAgdG9rZW5Vcmw6IGZsb3dWYWwuZ2V0KFwidG9rZW5VcmxcIiksXG4gICAgICAgICAgICAgIHNjb3BlczogZmxvd1ZhbC5nZXQoXCJzY29wZXNcIiksXG4gICAgICAgICAgICAgIHR5cGU6IGRlZmluaXRpb24uZ2V0KFwidHlwZVwiKSxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGRlZmluaXRpb24uZ2V0KFwiZGVzY3JpcHRpb25cIilcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGxpc3QgPSBsaXN0LnB1c2gobmV3IE1hcCh7XG4gICAgICAgICAgICAgIFtkZWZOYW1lXTogdHJhbnNsYXRlZERlZi5maWx0ZXIoKHYpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBmaWx0ZXIgb3V0IHVuc2V0IHZhbHVlcywgc29tZXRpbWVzIGBhdXRob3JpemF0aW9uVXJsYFxuICAgICAgICAgICAgICAgIC8vIGFuZCBgdG9rZW5VcmxgIGNvbWUgb3V0IGFzIGB1bmRlZmluZWRgIGluIHRoZSBkYXRhXG4gICAgICAgICAgICAgICAgcmV0dXJuIHYgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICBpZih0eXBlID09PSBcImh0dHBcIiB8fCB0eXBlID09PSBcImFwaUtleVwiKSB7XG4gICAgICAgICAgbGlzdCA9IGxpc3QucHVzaChuZXcgTWFwKHtcbiAgICAgICAgICAgIFtkZWZOYW1lXTogZGVmaW5pdGlvblxuICAgICAgICAgIH0pKVxuICAgICAgICB9XG4gICAgICAgIGlmKHR5cGUgPT09IFwib3BlbklkQ29ubmVjdFwiICYmIGRlZmluaXRpb24uZ2V0KFwib3BlbklkQ29ubmVjdERhdGFcIikpIHtcbiAgICAgICAgICBsZXQgb2lkY0RhdGEgPSBkZWZpbml0aW9uLmdldChcIm9wZW5JZENvbm5lY3REYXRhXCIpXG4gICAgICAgICAgbGV0IGdyYW50cyA9IG9pZGNEYXRhLmdldChcImdyYW50X3R5cGVzX3N1cHBvcnRlZFwiKSB8fCBbXCJhdXRob3JpemF0aW9uX2NvZGVcIiwgXCJpbXBsaWNpdFwiXVxuICAgICAgICAgIGdyYW50cy5mb3JFYWNoKChncmFudCkgPT4ge1xuICAgICAgICAgICAgLy8gQ29udmVydCBmcm9tIE9JREMgbGlzdCBvZiBzY29wZXMgdG8gdGhlIE9BUy1zdHlsZSBtYXAgd2l0aCBlbXB0eSBkZXNjcmlwdGlvbnNcbiAgICAgICAgICAgIGxldCB0cmFuc2xhdGVkU2NvcGVzID0gb2lkY0RhdGEuZ2V0KFwic2NvcGVzX3N1cHBvcnRlZFwiKSAmJlxuICAgICAgICAgICAgICBvaWRjRGF0YS5nZXQoXCJzY29wZXNfc3VwcG9ydGVkXCIpLnJlZHVjZSgoYWNjLCBjdXIpID0+IGFjYy5zZXQoY3VyLCBcIlwiKSwgbmV3IE1hcCgpKVxuXG4gICAgICAgICAgICBsZXQgdHJhbnNsYXRlZERlZiA9IGZyb21KUyh7XG4gICAgICAgICAgICAgIGZsb3c6IGdyYW50LFxuICAgICAgICAgICAgICBhdXRob3JpemF0aW9uVXJsOiBvaWRjRGF0YS5nZXQoXCJhdXRob3JpemF0aW9uX2VuZHBvaW50XCIpLFxuICAgICAgICAgICAgICB0b2tlblVybDogb2lkY0RhdGEuZ2V0KFwidG9rZW5fZW5kcG9pbnRcIiksXG4gICAgICAgICAgICAgIHNjb3BlczogdHJhbnNsYXRlZFNjb3BlcyxcbiAgICAgICAgICAgICAgdHlwZTogXCJvYXV0aDJcIixcbiAgICAgICAgICAgICAgb3BlbklkQ29ubmVjdFVybDogZGVmaW5pdGlvbi5nZXQoXCJvcGVuSWRDb25uZWN0VXJsXCIpXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBsaXN0ID0gbGlzdC5wdXNoKG5ldyBNYXAoe1xuICAgICAgICAgICAgICBbZGVmTmFtZV06IHRyYW5zbGF0ZWREZWYuZmlsdGVyKCh2KSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gZmlsdGVyIG91dCB1bnNldCB2YWx1ZXMsIHNvbWV0aW1lcyBgYXV0aG9yaXphdGlvblVybGBcbiAgICAgICAgICAgICAgICAvLyBhbmQgYHRva2VuVXJsYCBjb21lIG91dCBhcyBgdW5kZWZpbmVkYCBpbiB0aGUgZGF0YVxuICAgICAgICAgICAgICAgIHJldHVybiB2ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIHJldHVybiBsaXN0XG4gICAgfVxuKSlcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5leHBvcnQgZnVuY3Rpb24gaXNPQVMzMChqc1NwZWMpIHtcbiAgY29uc3Qgb2FzVmVyc2lvbiA9IGpzU3BlYy5nZXQoXCJvcGVuYXBpXCIpXG5cbiAgcmV0dXJuIChcbiAgICB0eXBlb2Ygb2FzVmVyc2lvbiA9PT0gXCJzdHJpbmdcIiAmJiAvXjNcXC4wXFwuKD86WzEtOV1cXGQqfDApJC8udGVzdChvYXNWZXJzaW9uKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N3YWdnZXIyKGpzU3BlYykge1xuICBjb25zdCBzd2FnZ2VyVmVyc2lvbiA9IGpzU3BlYy5nZXQoXCJzd2FnZ2VyXCIpXG5cbiAgcmV0dXJuIHR5cGVvZiBzd2FnZ2VyVmVyc2lvbiA9PT0gXCJzdHJpbmdcIiAmJiBzd2FnZ2VyVmVyc2lvbiA9PT0gXCIyLjBcIlxufVxuXG5leHBvcnQgZnVuY3Rpb24gT0FTM0NvbXBvbmVudFdyYXBGYWN0b3J5KENvbXBvbmVudCkge1xuICByZXR1cm4gKE9yaSwgc3lzdGVtKSA9PiAocHJvcHMpID0+IHtcbiAgICBpZiAodHlwZW9mIHN5c3RlbS5zcGVjU2VsZWN0b3JzPy5pc09BUzMgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgaWYgKHN5c3RlbS5zcGVjU2VsZWN0b3JzLmlzT0FTMygpKSB7XG4gICAgICAgIHJldHVybiA8Q29tcG9uZW50IHsuLi5wcm9wc30gey4uLnN5c3RlbX0gT3JpPXtPcml9PjwvQ29tcG9uZW50PlxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDxPcmkgey4uLnByb3BzfT48L09yaT5cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKFwiT0FTMyB3cmFwcGVyOiBjb3VsZG4ndCBnZXQgc3BlY1wiKVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIE9BUzMwQ29tcG9uZW50V3JhcEZhY3RvcnkoQ29tcG9uZW50KSB7XG4gIHJldHVybiAoT3JpLCBzeXN0ZW0pID0+IChwcm9wcykgPT4ge1xuICAgIGlmICh0eXBlb2Ygc3lzdGVtLnNwZWNTZWxlY3RvcnM/LmlzT0FTMzAgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgaWYgKHN5c3RlbS5zcGVjU2VsZWN0b3JzLmlzT0FTMzAoKSkge1xuICAgICAgICByZXR1cm4gPENvbXBvbmVudCB7Li4ucHJvcHN9IHsuLi5zeXN0ZW19IE9yaT17T3JpfT48L0NvbXBvbmVudD5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiA8T3JpIHsuLi5wcm9wc30+PC9Pcmk+XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybihcIk9BUzMwIHdyYXBwZXI6IGNvdWxkbid0IGdldCBzcGVjXCIpXG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgTGlzdCwgTWFwIH0gZnJvbSBcImltbXV0YWJsZVwiXG5cbmltcG9ydCB7XG4gIGlzU3dhZ2dlcjIgYXMgaXNTd2FnZ2VyMkhlbHBlcixcbiAgaXNPQVMzMCBhcyBpc09BUzMwSGVscGVyLFxufSBmcm9tIFwiLi4vaGVscGVyc1wiXG5cbi8qKlxuICogSGVscGVyc1xuICovXG5cbmNvbnN0IG1hcCA9IE1hcCgpXG5cbmV4cG9ydCBjb25zdCBpc1N3YWdnZXIyID0gKCkgPT4gKHN5c3RlbSkgPT4ge1xuICBjb25zdCBzcGVjID0gc3lzdGVtLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuc3BlY0pzb24oKVxuICByZXR1cm4gaXNTd2FnZ2VyMkhlbHBlcihzcGVjKVxufVxuXG5leHBvcnQgY29uc3QgaXNPQVMzMCA9ICgpID0+IChzeXN0ZW0pID0+IHtcbiAgY29uc3Qgc3BlYyA9IHN5c3RlbS5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLnNwZWNKc29uKClcbiAgcmV0dXJuIGlzT0FTMzBIZWxwZXIoc3BlYylcbn1cblxuZXhwb3J0IGNvbnN0IGlzT0FTMyA9ICgpID0+IChzeXN0ZW0pID0+IHtcbiAgcmV0dXJuIHN5c3RlbS5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLmlzT0FTMzAoKVxufVxuXG5mdW5jdGlvbiBvbmx5T0FTMyhzZWxlY3Rvcikge1xuICByZXR1cm4gKHN0YXRlLCAuLi5hcmdzKSA9PlxuICAgIChzeXN0ZW0pID0+IHtcbiAgICAgIGlmIChzeXN0ZW0uc3BlY1NlbGVjdG9ycy5pc09BUzMoKSkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gc2VsZWN0b3Ioc3RhdGUsIC4uLmFyZ3MpXG4gICAgICAgIHJldHVybiB0eXBlb2Ygc2VsZWN0ZWRWYWx1ZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgPyBzZWxlY3RlZFZhbHVlKHN5c3RlbSlcbiAgICAgICAgICA6IHNlbGVjdGVkVmFsdWVcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY29uc3Qgc2VydmVycyA9IG9ubHlPQVMzKCgpID0+IChzeXN0ZW0pID0+IHtcbiAgY29uc3Qgc3BlYyA9IHN5c3RlbS5zcGVjU2VsZWN0b3JzLnNwZWNKc29uKClcbiAgcmV0dXJuIHNwZWMuZ2V0KFwic2VydmVyc1wiLCBtYXApXG59KVxuXG5leHBvcnQgY29uc3QgZmluZFNjaGVtYSA9IChzdGF0ZSwgc2NoZW1hTmFtZSkgPT4ge1xuICBjb25zdCByZXNvbHZlZFNjaGVtYSA9IHN0YXRlLmdldEluKFxuICAgIFtcInJlc29sdmVkU3VidHJlZXNcIiwgXCJjb21wb25lbnRzXCIsIFwic2NoZW1hc1wiLCBzY2hlbWFOYW1lXSxcbiAgICBudWxsXG4gIClcbiAgY29uc3QgdW5yZXNvbHZlZFNjaGVtYSA9IHN0YXRlLmdldEluKFxuICAgIFtcImpzb25cIiwgXCJjb21wb25lbnRzXCIsIFwic2NoZW1hc1wiLCBzY2hlbWFOYW1lXSxcbiAgICBudWxsXG4gIClcblxuICByZXR1cm4gcmVzb2x2ZWRTY2hlbWEgfHwgdW5yZXNvbHZlZFNjaGVtYSB8fCBudWxsXG59XG5cbmV4cG9ydCBjb25zdCBjYWxsYmFja3NPcGVyYXRpb25zID0gb25seU9BUzMoXG4gIChzdGF0ZSwgeyBjYWxsYmFja3MsIHNwZWNQYXRoIH0pID0+XG4gICAgKHN5c3RlbSkgPT4ge1xuICAgICAgY29uc3QgdmFsaWRPcGVyYXRpb25NZXRob2RzID0gc3lzdGVtLnNwZWNTZWxlY3RvcnMudmFsaWRPcGVyYXRpb25NZXRob2RzKClcblxuICAgICAgaWYgKCFNYXAuaXNNYXAoY2FsbGJhY2tzKSkgcmV0dXJuIHt9XG5cbiAgICAgIHJldHVybiBjYWxsYmFja3NcbiAgICAgICAgLnJlZHVjZSgoYWxsT3BlcmF0aW9ucywgY2FsbGJhY2ssIGNhbGxiYWNrTmFtZSkgPT4ge1xuICAgICAgICAgIGlmICghTWFwLmlzTWFwKGNhbGxiYWNrKSkgcmV0dXJuIGFsbE9wZXJhdGlvbnNcblxuICAgICAgICAgIGNvbnN0IGNhbGxiYWNrT3BlcmF0aW9ucyA9IGNhbGxiYWNrLnJlZHVjZShcbiAgICAgICAgICAgIChjYWxsYmFja09wcywgcGF0aEl0ZW0sIGV4cHJlc3Npb24pID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFNYXAuaXNNYXAocGF0aEl0ZW0pKSByZXR1cm4gY2FsbGJhY2tPcHNcblxuICAgICAgICAgICAgICBjb25zdCBwYXRoSXRlbU9wZXJhdGlvbnMgPSBwYXRoSXRlbVxuICAgICAgICAgICAgICAgIC5lbnRyeVNlcSgpXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoW2tleV0pID0+IHZhbGlkT3BlcmF0aW9uTWV0aG9kcy5pbmNsdWRlcyhrZXkpKVxuICAgICAgICAgICAgICAgIC5tYXAoKFttZXRob2QsIG9wZXJhdGlvbl0pID0+ICh7XG4gICAgICAgICAgICAgICAgICBvcGVyYXRpb246IE1hcCh7IG9wZXJhdGlvbiB9KSxcbiAgICAgICAgICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICAgICAgICAgIHBhdGg6IGV4cHJlc3Npb24sXG4gICAgICAgICAgICAgICAgICBjYWxsYmFja05hbWUsXG4gICAgICAgICAgICAgICAgICBzcGVjUGF0aDogc3BlY1BhdGguY29uY2F0KFtjYWxsYmFja05hbWUsIGV4cHJlc3Npb24sIG1ldGhvZF0pLFxuICAgICAgICAgICAgICAgIH0pKVxuXG4gICAgICAgICAgICAgIHJldHVybiBjYWxsYmFja09wcy5jb25jYXQocGF0aEl0ZW1PcGVyYXRpb25zKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIExpc3QoKVxuICAgICAgICAgIClcblxuICAgICAgICAgIHJldHVybiBhbGxPcGVyYXRpb25zLmNvbmNhdChjYWxsYmFja09wZXJhdGlvbnMpXG4gICAgICAgIH0sIExpc3QoKSlcbiAgICAgICAgLmdyb3VwQnkoKG9wZXJhdGlvbkRUTykgPT4gb3BlcmF0aW9uRFRPLmNhbGxiYWNrTmFtZSlcbiAgICAgICAgLm1hcCgob3BlcmF0aW9ucykgPT4gb3BlcmF0aW9ucy50b0FycmF5KCkpXG4gICAgICAgIC50b09iamVjdCgpXG4gICAgfVxuKVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5cbmNvbnN0IENhbGxiYWNrcyA9ICh7IGNhbGxiYWNrcywgc3BlY1BhdGgsIHNwZWNTZWxlY3RvcnMsIGdldENvbXBvbmVudCB9KSA9PiB7XG4gIGNvbnN0IG9wZXJhdGlvbkRUT3MgPSBzcGVjU2VsZWN0b3JzLmNhbGxiYWNrc09wZXJhdGlvbnMoe1xuICAgIGNhbGxiYWNrcyxcbiAgICBzcGVjUGF0aCxcbiAgfSlcbiAgY29uc3QgY2FsbGJhY2tOYW1lcyA9IE9iamVjdC5rZXlzKG9wZXJhdGlvbkRUT3MpXG5cbiAgY29uc3QgT3BlcmF0aW9uQ29udGFpbmVyID0gZ2V0Q29tcG9uZW50KFwiT3BlcmF0aW9uQ29udGFpbmVyXCIsIHRydWUpXG5cbiAgaWYgKGNhbGxiYWNrTmFtZXMubGVuZ3RoID09PSAwKSByZXR1cm4gPHNwYW4+Tm8gY2FsbGJhY2tzPC9zcGFuPlxuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIHtjYWxsYmFja05hbWVzLm1hcCgoY2FsbGJhY2tOYW1lKSA9PiAoXG4gICAgICAgIDxkaXYga2V5PXtgJHtjYWxsYmFja05hbWV9YH0+XG4gICAgICAgICAgPGgyPntjYWxsYmFja05hbWV9PC9oMj5cblxuICAgICAgICAgIHtvcGVyYXRpb25EVE9zW2NhbGxiYWNrTmFtZV0ubWFwKChvcGVyYXRpb25EVE8pID0+IChcbiAgICAgICAgICAgIDxPcGVyYXRpb25Db250YWluZXJcbiAgICAgICAgICAgICAga2V5PXtgJHtjYWxsYmFja05hbWV9LSR7b3BlcmF0aW9uRFRPLnBhdGh9LSR7b3BlcmF0aW9uRFRPLm1ldGhvZH1gfVxuICAgICAgICAgICAgICBvcD17b3BlcmF0aW9uRFRPLm9wZXJhdGlvbn1cbiAgICAgICAgICAgICAgdGFnPVwiY2FsbGJhY2tzXCJcbiAgICAgICAgICAgICAgbWV0aG9kPXtvcGVyYXRpb25EVE8ubWV0aG9kfVxuICAgICAgICAgICAgICBwYXRoPXtvcGVyYXRpb25EVE8ucGF0aH1cbiAgICAgICAgICAgICAgc3BlY1BhdGg9e29wZXJhdGlvbkRUTy5zcGVjUGF0aH1cbiAgICAgICAgICAgICAgYWxsb3dUcnlJdE91dD17ZmFsc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICkpfVxuICAgIDwvZGl2PlxuICApXG59XG5cbkNhbGxiYWNrcy5wcm9wVHlwZXMgPSB7XG4gIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBjYWxsYmFja3NPcGVyYXRpb25zOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB9KS5pc1JlcXVpcmVkLFxuICBjYWxsYmFja3M6IEltUHJvcFR5cGVzLml0ZXJhYmxlLmlzUmVxdWlyZWQsXG4gIHNwZWNQYXRoOiBJbVByb3BUeXBlcy5saXN0LmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IENhbGxiYWNrc1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5pbXBvcnQgeyBNYXAsIE9yZGVyZWRNYXAsIExpc3QsIGZyb21KUyB9IGZyb20gXCJpbW11dGFibGVcIlxuaW1wb3J0IHsgZ2V0Q29tbW9uRXh0ZW5zaW9ucywgc3RyaW5naWZ5LCBpc0VtcHR5VmFsdWUgfSBmcm9tIFwiY29yZS91dGlsc1wiXG5pbXBvcnQgeyBnZXRLbm93blN5bnRheEhpZ2hsaWdodGVyTGFuZ3VhZ2UgfSBmcm9tIFwiY29yZS91dGlscy9qc29uUGFyc2VcIlxuXG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFJlcXVlc3RCb2R5VmFsdWUgPSAocmVxdWVzdEJvZHksIG1lZGlhVHlwZSwgYWN0aXZlRXhhbXBsZXNLZXksIGZuKSA9PiB7XG4gIGNvbnN0IG1lZGlhVHlwZVZhbHVlID0gcmVxdWVzdEJvZHkuZ2V0SW4oW1wiY29udGVudFwiLCBtZWRpYVR5cGVdKSA/PyBPcmRlcmVkTWFwKClcbiAgY29uc3Qgc2NoZW1hID0gbWVkaWFUeXBlVmFsdWUuZ2V0KFwic2NoZW1hXCIsIE9yZGVyZWRNYXAoKSkudG9KUygpXG5cbiAgY29uc3QgaGFzRXhhbXBsZXNLZXkgPSBtZWRpYVR5cGVWYWx1ZS5nZXQoXCJleGFtcGxlc1wiKSAhPT0gdW5kZWZpbmVkXG4gIGNvbnN0IGV4YW1wbGVTY2hlbWEgPSBtZWRpYVR5cGVWYWx1ZS5nZXQoXCJleGFtcGxlXCIpXG4gIGNvbnN0IG1lZGlhVHlwZUV4YW1wbGUgPSBoYXNFeGFtcGxlc0tleVxuICAgID8gbWVkaWFUeXBlVmFsdWUuZ2V0SW4oW1xuICAgICAgXCJleGFtcGxlc1wiLFxuICAgICAgYWN0aXZlRXhhbXBsZXNLZXksXG4gICAgICBcInZhbHVlXCJcbiAgICBdKVxuICAgIDogZXhhbXBsZVNjaGVtYVxuXG4gIGNvbnN0IGV4YW1wbGVWYWx1ZSA9IGZuLmdldFNhbXBsZVNjaGVtYShcbiAgICBzY2hlbWEsXG4gICAgbWVkaWFUeXBlLFxuICAgIHtcbiAgICAgIGluY2x1ZGVXcml0ZU9ubHk6IHRydWVcbiAgICB9LFxuICAgIG1lZGlhVHlwZUV4YW1wbGVcbiAgKVxuICByZXR1cm4gc3RyaW5naWZ5KGV4YW1wbGVWYWx1ZSlcbn1cblxuXG5cbmNvbnN0IFJlcXVlc3RCb2R5ID0gKHtcbiAgdXNlckhhc0VkaXRlZEJvZHksXG4gIHJlcXVlc3RCb2R5LFxuICByZXF1ZXN0Qm9keVZhbHVlLFxuICByZXF1ZXN0Qm9keUluY2x1c2lvblNldHRpbmcsXG4gIHJlcXVlc3RCb2R5RXJyb3JzLFxuICBnZXRDb21wb25lbnQsXG4gIGdldENvbmZpZ3MsXG4gIHNwZWNTZWxlY3RvcnMsXG4gIGZuLFxuICBjb250ZW50VHlwZSxcbiAgaXNFeGVjdXRlLFxuICBzcGVjUGF0aCxcbiAgb25DaGFuZ2UsXG4gIG9uQ2hhbmdlSW5jbHVkZUVtcHR5LFxuICBhY3RpdmVFeGFtcGxlc0tleSxcbiAgdXBkYXRlQWN0aXZlRXhhbXBsZXNLZXksXG4gIHNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnXG59KSA9PiB7XG4gIGNvbnN0IGhhbmRsZUZpbGUgPSAoZSkgPT4ge1xuICAgIG9uQ2hhbmdlKGUudGFyZ2V0LmZpbGVzWzBdKVxuICB9XG4gIGNvbnN0IHNldElzSW5jbHVkZWRPcHRpb25zID0gKGtleSkgPT4ge1xuICAgIGxldCBvcHRpb25zID0ge1xuICAgICAga2V5LFxuICAgICAgc2hvdWxkRGlzcGF0Y2hJbml0OiBmYWxzZSxcbiAgICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZVxuICAgIH1cbiAgICBsZXQgY3VycmVudEluY2x1c2lvbiA9IHJlcXVlc3RCb2R5SW5jbHVzaW9uU2V0dGluZy5nZXQoa2V5LCBcIm5vIHZhbHVlXCIpXG4gICAgaWYgKGN1cnJlbnRJbmNsdXNpb24gPT09IFwibm8gdmFsdWVcIikge1xuICAgICAgb3B0aW9ucy5zaG91bGREaXNwYXRjaEluaXQgPSB0cnVlXG4gICAgICAvLyBmdXR1cmU6IGNhbiBnZXQvc2V0IGRlZmF1bHRWYWx1ZSBmcm9tIGEgY29uZmlnIHNldHRpbmdcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnNcbiAgfVxuXG4gIGNvbnN0IE1hcmtkb3duID0gZ2V0Q29tcG9uZW50KFwiTWFya2Rvd25cIiwgdHJ1ZSlcbiAgY29uc3QgTW9kZWxFeGFtcGxlID0gZ2V0Q29tcG9uZW50KFwibW9kZWxFeGFtcGxlXCIpXG4gIGNvbnN0IFJlcXVlc3RCb2R5RWRpdG9yID0gZ2V0Q29tcG9uZW50KFwiUmVxdWVzdEJvZHlFZGl0b3JcIilcbiAgY29uc3QgSGlnaGxpZ2h0Q29kZSA9IGdldENvbXBvbmVudChcIkhpZ2hsaWdodENvZGVcIiwgdHJ1ZSlcbiAgY29uc3QgRXhhbXBsZXNTZWxlY3RWYWx1ZVJldGFpbmVyID0gZ2V0Q29tcG9uZW50KFwiRXhhbXBsZXNTZWxlY3RWYWx1ZVJldGFpbmVyXCIpXG4gIGNvbnN0IEV4YW1wbGUgPSBnZXRDb21wb25lbnQoXCJFeGFtcGxlXCIpXG4gIGNvbnN0IFBhcmFtZXRlckluY2x1ZGVFbXB0eSA9IGdldENvbXBvbmVudChcIlBhcmFtZXRlckluY2x1ZGVFbXB0eVwiKVxuXG4gIGNvbnN0IHsgc2hvd0NvbW1vbkV4dGVuc2lvbnMgfSA9IGdldENvbmZpZ3MoKVxuXG4gIGNvbnN0IHJlcXVlc3RCb2R5RGVzY3JpcHRpb24gPSByZXF1ZXN0Qm9keT8uZ2V0KFwiZGVzY3JpcHRpb25cIikgPz8gbnVsbFxuICBjb25zdCByZXF1ZXN0Qm9keUNvbnRlbnQgPSByZXF1ZXN0Qm9keT8uZ2V0KFwiY29udGVudFwiKSA/PyBuZXcgT3JkZXJlZE1hcCgpXG4gIGNvbnRlbnRUeXBlID0gY29udGVudFR5cGUgfHwgcmVxdWVzdEJvZHlDb250ZW50LmtleVNlcSgpLmZpcnN0KCkgfHwgXCJcIlxuXG4gIGNvbnN0IG1lZGlhVHlwZVZhbHVlID0gcmVxdWVzdEJvZHlDb250ZW50LmdldChjb250ZW50VHlwZSkgPz8gT3JkZXJlZE1hcCgpXG4gIGNvbnN0IHNjaGVtYUZvck1lZGlhVHlwZSA9IG1lZGlhVHlwZVZhbHVlLmdldChcInNjaGVtYVwiLCBPcmRlcmVkTWFwKCkpXG4gIGNvbnN0IHJhd0V4YW1wbGVzT2ZNZWRpYVR5cGUgPSBtZWRpYVR5cGVWYWx1ZS5nZXQoXCJleGFtcGxlc1wiLCBudWxsKVxuICBjb25zdCBzYW1wbGVGb3JNZWRpYVR5cGUgPSByYXdFeGFtcGxlc09mTWVkaWFUeXBlPy5tYXAoKGNvbnRhaW5lciwga2V5KSA9PiB7XG4gICAgY29uc3QgdmFsID0gY29udGFpbmVyPy5nZXQoXCJ2YWx1ZVwiLCBudWxsKVxuICAgIGlmKHZhbCkge1xuICAgICAgY29udGFpbmVyID0gY29udGFpbmVyLnNldChcInZhbHVlXCIsIGdldERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlKFxuICAgICAgICByZXF1ZXN0Qm9keSxcbiAgICAgICAgY29udGVudFR5cGUsXG4gICAgICAgIGtleSxcbiAgICAgICAgZm4sXG4gICAgICApLCB2YWwpXG4gICAgfVxuICAgIHJldHVybiBjb250YWluZXJcbiAgfSlcblxuICBjb25zdCBoYW5kbGVFeGFtcGxlc1NlbGVjdCA9IChrZXkgLyosIHsgaXNTeW50aGV0aWNDaGFuZ2UgfSAqLykgPT4ge1xuICAgIHVwZGF0ZUFjdGl2ZUV4YW1wbGVzS2V5KGtleSlcbiAgfVxuICByZXF1ZXN0Qm9keUVycm9ycyA9IExpc3QuaXNMaXN0KHJlcXVlc3RCb2R5RXJyb3JzKSA/IHJlcXVlc3RCb2R5RXJyb3JzIDogTGlzdCgpXG5cbiAgY29uc3QgaXNGaWxlVXBsb2FkSW50ZW5kZWQgPSBmbi5pc0ZpbGVVcGxvYWRJbnRlbmRlZChcbiAgICBtZWRpYVR5cGVWYWx1ZT8uZ2V0KFwic2NoZW1hXCIpLFxuICAgIGNvbnRlbnRUeXBlXG4gIClcblxuICBpZihcbiAgICBpc0ZpbGVVcGxvYWRJbnRlbmRlZFxuICApIHtcbiAgICBjb25zdCBJbnB1dCA9IGdldENvbXBvbmVudChcIklucHV0XCIpXG5cbiAgICBpZighaXNFeGVjdXRlKSB7XG4gICAgICByZXR1cm4gPGk+XG4gICAgICAgIEV4YW1wbGUgdmFsdWVzIGFyZSBub3QgYXZhaWxhYmxlIGZvciA8Y29kZT57Y29udGVudFR5cGV9PC9jb2RlPiBtZWRpYSB0eXBlcy5cbiAgICAgIDwvaT5cbiAgICB9XG5cbiAgICByZXR1cm4gPElucHV0IHR5cGU9e1wiZmlsZVwifSBvbkNoYW5nZT17aGFuZGxlRmlsZX0gLz5cbiAgfVxuXG5cbiAgaWYgKCFtZWRpYVR5cGVWYWx1ZS5zaXplKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGlzT2JqZWN0Q29udGVudCA9IGZuLmhhc1NjaGVtYVR5cGUobWVkaWFUeXBlVmFsdWUuZ2V0KFwic2NoZW1hXCIpLCBcIm9iamVjdFwiKVxuXG4gIGlmIChcbiAgICBpc09iamVjdENvbnRlbnQgJiZcbiAgICAoXG4gICAgICBjb250ZW50VHlwZSA9PT0gXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIiB8fFxuICAgICAgY29udGVudFR5cGUuaW5kZXhPZihcIm11bHRpcGFydC9cIikgPT09IDBcbiAgICApICYmXG4gICAgc2NoZW1hRm9yTWVkaWFUeXBlLmdldChcInByb3BlcnRpZXNcIiwgT3JkZXJlZE1hcCgpKS5zaXplID4gMFxuICApIHtcbiAgICBjb25zdCBKc29uU2NoZW1hRm9ybSA9IGdldENvbXBvbmVudChcIkpzb25TY2hlbWFGb3JtXCIpXG4gICAgY29uc3QgUGFyYW1ldGVyRXh0ID0gZ2V0Q29tcG9uZW50KFwiUGFyYW1ldGVyRXh0XCIpXG4gICAgY29uc3QgYm9keVByb3BlcnRpZXMgPSBzY2hlbWFGb3JNZWRpYVR5cGUuZ2V0KFwicHJvcGVydGllc1wiLCBPcmRlcmVkTWFwKCkpXG4gICAgcmVxdWVzdEJvZHlWYWx1ZSA9IE1hcC5pc01hcChyZXF1ZXN0Qm9keVZhbHVlKSA/IHJlcXVlc3RCb2R5VmFsdWUgOiBPcmRlcmVkTWFwKClcblxuICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT1cInRhYmxlLWNvbnRhaW5lclwiPlxuICAgICAgeyByZXF1ZXN0Qm9keURlc2NyaXB0aW9uICYmXG4gICAgICAgIDxNYXJrZG93biBzb3VyY2U9e3JlcXVlc3RCb2R5RGVzY3JpcHRpb259IC8+XG4gICAgICB9XG4gICAgICA8dGFibGU+XG4gICAgICAgIDx0Ym9keT5cbiAgICAgICAgICB7XG4gICAgICAgICAgICBNYXAuaXNNYXAoYm9keVByb3BlcnRpZXMpICYmIGJvZHlQcm9wZXJ0aWVzLmVudHJ5U2VxKCkubWFwKChba2V5LCBzY2hlbWFdKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChzY2hlbWEuZ2V0KFwicmVhZE9ubHlcIikpIHJldHVyblxuXG4gICAgICAgICAgICAgIGNvbnN0IG9uZU9mID0gc2NoZW1hLmdldChcIm9uZU9mXCIpPy5nZXQoMCk/LnRvSlMoKVxuICAgICAgICAgICAgICBjb25zdCBhbnlPZiA9IHNjaGVtYS5nZXQoXCJhbnlPZlwiKT8uZ2V0KDApPy50b0pTKClcbiAgICAgICAgICAgICAgc2NoZW1hID0gZnJvbUpTKGZuLm1lcmdlSnNvblNjaGVtYShzY2hlbWEudG9KUygpLCBvbmVPZiA/PyBhbnlPZiA/PyB7fSkpXG5cbiAgICAgICAgICAgICAgbGV0IGNvbW1vbkV4dCA9IHNob3dDb21tb25FeHRlbnNpb25zID8gZ2V0Q29tbW9uRXh0ZW5zaW9ucyhzY2hlbWEpIDogbnVsbFxuICAgICAgICAgICAgICBjb25zdCByZXF1aXJlZCA9IHNjaGVtYUZvck1lZGlhVHlwZS5nZXQoXCJyZXF1aXJlZFwiLCBMaXN0KCkpLmluY2x1ZGVzKGtleSlcbiAgICAgICAgICAgICAgY29uc3Qgb2JqZWN0VHlwZSA9IGZuLmdldFNjaGVtYU9iamVjdFR5cGUoc2NoZW1hKVxuICAgICAgICAgICAgICBjb25zdCBvYmplY3RUeXBlTGFiZWwgPSBmbi5nZXRTY2hlbWFPYmplY3RUeXBlTGFiZWwoc2NoZW1hKVxuICAgICAgICAgICAgICBjb25zdCBzY2hlbWFJdGVtc1R5cGUgPSBmbi5nZXRTY2hlbWFPYmplY3RUeXBlKHNjaGVtYT8uZ2V0KFwiaXRlbXNcIikpXG4gICAgICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IHNjaGVtYS5nZXQoXCJmb3JtYXRcIilcbiAgICAgICAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBzY2hlbWEuZ2V0KFwiZGVzY3JpcHRpb25cIilcbiAgICAgICAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gcmVxdWVzdEJvZHlWYWx1ZS5nZXRJbihba2V5LCBcInZhbHVlXCJdKVxuICAgICAgICAgICAgICBjb25zdCBjdXJyZW50RXJyb3JzID0gcmVxdWVzdEJvZHlWYWx1ZS5nZXRJbihba2V5LCBcImVycm9yc1wiXSkgfHwgcmVxdWVzdEJvZHlFcnJvcnNcbiAgICAgICAgICAgICAgY29uc3QgaW5jbHVkZWQgPSByZXF1ZXN0Qm9keUluY2x1c2lvblNldHRpbmcuZ2V0KGtleSkgfHwgZmFsc2VcblxuICAgICAgICAgICAgICBsZXQgaW5pdGlhbFZhbHVlID0gZm4uZ2V0U2FtcGxlU2NoZW1hKHNjaGVtYSwgZmFsc2UsIHtcbiAgICAgICAgICAgICAgICBpbmNsdWRlV3JpdGVPbmx5OiB0cnVlXG4gICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWUgPSBcImZhbHNlXCJcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChpbml0aWFsVmFsdWUgPT09IDApIHtcbiAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWUgPSBcIjBcIlxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBpbml0aWFsVmFsdWUgIT09IFwic3RyaW5nXCIgJiYgb2JqZWN0VHlwZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlID0gc3RyaW5naWZ5KGluaXRpYWxWYWx1ZSlcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgaW5pdGlhbFZhbHVlID09PSBcInN0cmluZ1wiICYmIG9iamVjdFR5cGUgPT09IFwiYXJyYXlcIikge1xuICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZSA9IEpTT04ucGFyc2UoaW5pdGlhbFZhbHVlKVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3QgaXNGaWxlVXBsb2FkSW50ZW5kZWQgPSBmbi5pc0ZpbGVVcGxvYWRJbnRlbmRlZChzY2hlbWEpXG5cbiAgICAgICAgICAgICAgY29uc3QganNvblNjaGVtYUZvcm0gPSA8SnNvblNjaGVtYUZvcm1cbiAgICAgICAgICAgICAgICBmbj17Zm59XG4gICAgICAgICAgICAgICAgZGlzcGF0Y2hJbml0aWFsVmFsdWU9eyFpc0ZpbGVVcGxvYWRJbnRlbmRlZH1cbiAgICAgICAgICAgICAgICBzY2hlbWE9e3NjaGVtYX1cbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17a2V5fVxuICAgICAgICAgICAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgICAgICAgICAgICAgIHZhbHVlPXtjdXJyZW50VmFsdWUgPT09IHVuZGVmaW5lZCA/IGluaXRpYWxWYWx1ZSA6IGN1cnJlbnRWYWx1ZX1cbiAgICAgICAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgZXJyb3JzPXtjdXJyZW50RXJyb3JzfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlLCBba2V5XSlcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgIHJldHVybiA8dHIga2V5PXtrZXl9IGNsYXNzTmFtZT1cInBhcmFtZXRlcnNcIiBkYXRhLXByb3BlcnR5LW5hbWU9e2tleX0+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJwYXJhbWV0ZXJzLWNvbF9uYW1lXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3JlcXVpcmVkID8gXCJwYXJhbWV0ZXJfX25hbWUgcmVxdWlyZWRcIiA6IFwicGFyYW1ldGVyX19uYW1lXCJ9PlxuICAgICAgICAgICAgICAgICAgeyBrZXkgfVxuICAgICAgICAgICAgICAgICAgeyAhcmVxdWlyZWQgPyBudWxsIDogPHNwYW4+Jm5ic3A7Kjwvc3Bhbj4gfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFyYW1ldGVyX190eXBlXCI+XG4gICAgICAgICAgICAgICAgICB7IG9iamVjdFR5cGVMYWJlbCB9XG4gICAgICAgICAgICAgICAgICB7IGZvcm1hdCAmJiA8c3BhbiBjbGFzc05hbWU9XCJwcm9wLWZvcm1hdFwiPigke2Zvcm1hdH0pPC9zcGFuPn1cbiAgICAgICAgICAgICAgICAgIHshc2hvd0NvbW1vbkV4dGVuc2lvbnMgfHwgIWNvbW1vbkV4dC5zaXplID8gbnVsbCA6IGNvbW1vbkV4dC5lbnRyeVNlcSgpLm1hcCgoW2tleSwgdl0pID0+IDxQYXJhbWV0ZXJFeHQga2V5PXtgJHtrZXl9LSR7dn1gfSB4S2V5PXtrZXl9IHhWYWw9e3Z9IC8+KX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBhcmFtZXRlcl9fZGVwcmVjYXRlZFwiPlxuICAgICAgICAgICAgICAgICAgeyBzY2hlbWEuZ2V0KFwiZGVwcmVjYXRlZFwiKSA/IFwiZGVwcmVjYXRlZFwiOiBudWxsIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT1cInBhcmFtZXRlcnMtY29sX2Rlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPE1hcmtkb3duIHNvdXJjZT17IGRlc2NyaXB0aW9uIH0+PC9NYXJrZG93bj5cbiAgICAgICAgICAgICAgICB7aXNFeGVjdXRlID8gPGRpdj5cbiAgICAgICAgICAgICAgICAgIHsob2JqZWN0VHlwZSA9PT0gXCJvYmplY3RcIiB8fCBzY2hlbWFJdGVtc1R5cGUgPT09IFwib2JqZWN0XCIpID8gKFxuICAgICAgICAgICAgICAgICAgICA8TW9kZWxFeGFtcGxlXG4gICAgICAgICAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgc3BlY1BhdGg9e3NwZWNQYXRoLnB1c2goXCJzY2hlbWFcIil9XG4gICAgICAgICAgICAgICAgICAgICAgZ2V0Q29uZmlncz17Z2V0Q29uZmlnc31cbiAgICAgICAgICAgICAgICAgICAgICBpc0V4ZWN1dGU9e2lzRXhlY3V0ZX1cbiAgICAgICAgICAgICAgICAgICAgICBzcGVjU2VsZWN0b3JzPXtzcGVjU2VsZWN0b3JzfVxuICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYT17c2NoZW1hfVxuICAgICAgICAgICAgICAgICAgICAgIGV4YW1wbGU9e2pzb25TY2hlbWFGb3JtfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICApIDoganNvblNjaGVtYUZvcm1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHtyZXF1aXJlZCA/IG51bGwgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxQYXJhbWV0ZXJJbmNsdWRlRW1wdHlcbiAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHZhbHVlKSA9PiBvbkNoYW5nZUluY2x1ZGVFbXB0eShrZXksIHZhbHVlKX1cbiAgICAgICAgICAgICAgICAgICAgICBpc0luY2x1ZGVkPXtpbmNsdWRlZH1cbiAgICAgICAgICAgICAgICAgICAgICBpc0luY2x1ZGVkT3B0aW9ucz17c2V0SXNJbmNsdWRlZE9wdGlvbnMoa2V5KX1cbiAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXtBcnJheS5pc0FycmF5KGN1cnJlbnRWYWx1ZSkgPyBjdXJyZW50VmFsdWUubGVuZ3RoICE9PSAwIDogIWlzRW1wdHlWYWx1ZShjdXJyZW50VmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L2Rpdj4gOiBudWxsIH1cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIGNvbnN0IHNhbXBsZVJlcXVlc3RCb2R5ID0gZ2V0RGVmYXVsdFJlcXVlc3RCb2R5VmFsdWUoXG4gICAgcmVxdWVzdEJvZHksXG4gICAgY29udGVudFR5cGUsXG4gICAgYWN0aXZlRXhhbXBsZXNLZXksXG4gICAgZm4sXG4gIClcbiAgbGV0IGxhbmd1YWdlID0gbnVsbFxuICBsZXQgdGVzdFZhbHVlRm9ySnNvbiA9IGdldEtub3duU3ludGF4SGlnaGxpZ2h0ZXJMYW5ndWFnZShzYW1wbGVSZXF1ZXN0Qm9keSlcbiAgaWYgKHRlc3RWYWx1ZUZvckpzb24pIHtcbiAgICBsYW5ndWFnZSA9IFwianNvblwiXG4gIH1cbiAgY29uc3QgZXhhbXBsZSA9IGlzRXhlY3V0ZSA/IDxSZXF1ZXN0Qm9keUVkaXRvclxuICAgICAgdmFsdWU9e3JlcXVlc3RCb2R5VmFsdWV9XG4gICAgICBlcnJvcnM9e3JlcXVlc3RCb2R5RXJyb3JzfVxuICAgICAgZGVmYXVsdFZhbHVlPXtzYW1wbGVSZXF1ZXN0Qm9keX1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgIC8+IDogPEhpZ2hsaWdodENvZGUgY2xhc3NOYW1lPVwiYm9keS1wYXJhbV9fZXhhbXBsZVwiIGxhbmd1YWdlPXtsYW5ndWFnZX0+XG4gICAgICB7c3RyaW5naWZ5KHJlcXVlc3RCb2R5VmFsdWUpIHx8IHNhbXBsZVJlcXVlc3RCb2R5fVxuICAgIDwvSGlnaGxpZ2h0Q29kZT5cblxuICByZXR1cm4gPGRpdj5cbiAgICB7IHJlcXVlc3RCb2R5RGVzY3JpcHRpb24gJiZcbiAgICAgIDxNYXJrZG93biBzb3VyY2U9e3JlcXVlc3RCb2R5RGVzY3JpcHRpb259IC8+XG4gICAgfVxuICAgIHtcbiAgICAgIHNhbXBsZUZvck1lZGlhVHlwZSA/IChcbiAgICAgICAgPEV4YW1wbGVzU2VsZWN0VmFsdWVSZXRhaW5lclxuICAgICAgICAgICAgdXNlckhhc0VkaXRlZEJvZHk9e3VzZXJIYXNFZGl0ZWRCb2R5fVxuICAgICAgICAgICAgZXhhbXBsZXM9e3NhbXBsZUZvck1lZGlhVHlwZX1cbiAgICAgICAgICAgIGN1cnJlbnRLZXk9e2FjdGl2ZUV4YW1wbGVzS2V5fVxuICAgICAgICAgICAgY3VycmVudFVzZXJJbnB1dFZhbHVlPXtyZXF1ZXN0Qm9keVZhbHVlfVxuICAgICAgICAgICAgb25TZWxlY3Q9e2hhbmRsZUV4YW1wbGVzU2VsZWN0fVxuICAgICAgICAgICAgdXBkYXRlVmFsdWU9e29uQ2hhbmdlfVxuICAgICAgICAgICAgZGVmYXVsdFRvRmlyc3RFeGFtcGxlPXt0cnVlfVxuICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9XG4gICAgICAgICAgICBzZXRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlRmxhZz17c2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWd9XG4gICAgICAgICAgLz5cbiAgICAgICkgOiBudWxsXG4gICAgfVxuICAgIDxNb2RlbEV4YW1wbGVcbiAgICAgIGdldENvbXBvbmVudD17IGdldENvbXBvbmVudCB9XG4gICAgICBnZXRDb25maWdzPXsgZ2V0Q29uZmlncyB9XG4gICAgICBzcGVjU2VsZWN0b3JzPXsgc3BlY1NlbGVjdG9ycyB9XG4gICAgICBleHBhbmREZXB0aD17MX1cbiAgICAgIGlzRXhlY3V0ZT17aXNFeGVjdXRlfVxuICAgICAgc2NoZW1hPXttZWRpYVR5cGVWYWx1ZS5nZXQoXCJzY2hlbWFcIil9XG4gICAgICBzcGVjUGF0aD17c3BlY1BhdGgucHVzaChcImNvbnRlbnRcIiwgY29udGVudFR5cGUpfVxuICAgICAgZXhhbXBsZT17ZXhhbXBsZX1cbiAgICAgIGluY2x1ZGVXcml0ZU9ubHk9e3RydWV9XG4gICAgLz5cbiAgICB7XG4gICAgICBzYW1wbGVGb3JNZWRpYVR5cGUgPyAoXG4gICAgICAgIDxFeGFtcGxlXG4gICAgICAgICAgZXhhbXBsZT17c2FtcGxlRm9yTWVkaWFUeXBlLmdldChhY3RpdmVFeGFtcGxlc0tleSl9XG4gICAgICAgICAgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9XG4gICAgICAgICAgZ2V0Q29uZmlncz17Z2V0Q29uZmlnc31cbiAgICAgICAgLz5cbiAgICAgICkgOiBudWxsXG4gICAgfVxuICA8L2Rpdj5cbn1cblxuUmVxdWVzdEJvZHkucHJvcFR5cGVzID0ge1xuICB1c2VySGFzRWRpdGVkQm9keTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgcmVxdWVzdEJvZHk6IEltUHJvcFR5cGVzLm9yZGVyZWRNYXAuaXNSZXF1aXJlZCxcbiAgcmVxdWVzdEJvZHlWYWx1ZTogSW1Qcm9wVHlwZXMub3JkZXJlZE1hcC5pc1JlcXVpcmVkLFxuICByZXF1ZXN0Qm9keUluY2x1c2lvblNldHRpbmc6IEltUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICByZXF1ZXN0Qm9keUVycm9yczogSW1Qcm9wVHlwZXMubGlzdC5pc1JlcXVpcmVkLFxuICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGdldENvbmZpZ3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGZuOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgY29udGVudFR5cGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGlzRXhlY3V0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uQ2hhbmdlSW5jbHVkZUVtcHR5OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzcGVjUGF0aDogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gIGFjdGl2ZUV4YW1wbGVzS2V5OiBQcm9wVHlwZXMuc3RyaW5nLFxuICB1cGRhdGVBY3RpdmVFeGFtcGxlc0tleTogUHJvcFR5cGVzLmZ1bmMsXG4gIHNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnOiBQcm9wVHlwZXMuZnVuYyxcbiAgb2FzM0FjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZFxufVxuXG5leHBvcnQgZGVmYXVsdCBSZXF1ZXN0Qm9keVxuIiwiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5cbmNsYXNzIE9wZXJhdGlvbkxpbmsgZXh0ZW5kcyBDb21wb25lbnQge1xuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBsaW5rLCBuYW1lLCBnZXRDb21wb25lbnQgfSA9IHRoaXMucHJvcHNcblxuICAgIGNvbnN0IE1hcmtkb3duID0gZ2V0Q29tcG9uZW50KFwiTWFya2Rvd25cIiwgdHJ1ZSlcblxuICAgIGxldCB0YXJnZXRPcCA9IGxpbmsuZ2V0KFwib3BlcmF0aW9uSWRcIikgfHwgbGluay5nZXQoXCJvcGVyYXRpb25SZWZcIilcbiAgICBsZXQgcGFyYW1ldGVycyA9IGxpbmsuZ2V0KFwicGFyYW1ldGVyc1wiKSAmJiBsaW5rLmdldChcInBhcmFtZXRlcnNcIikudG9KUygpXG4gICAgbGV0IGRlc2NyaXB0aW9uID0gbGluay5nZXQoXCJkZXNjcmlwdGlvblwiKVxuXG4gICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwib3BlcmF0aW9uLWxpbmtcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgPGI+PGNvZGU+e25hbWV9PC9jb2RlPjwvYj5cbiAgICAgICAgeyBkZXNjcmlwdGlvbiA/IDxNYXJrZG93biBzb3VyY2U9e2Rlc2NyaXB0aW9ufT48L01hcmtkb3duPiA6IG51bGwgfVxuICAgICAgPC9kaXY+XG4gICAgICA8cHJlPlxuICAgICAgICBPcGVyYXRpb24gYHt0YXJnZXRPcH1gPGJyIC8+PGJyIC8+XG4gICAgICAgIFBhcmFtZXRlcnMge3BhZFN0cmluZygwLCBKU09OLnN0cmluZ2lmeShwYXJhbWV0ZXJzLCBudWxsLCAyKSkgfHwgXCJ7fVwifTxiciAvPlxuICAgICAgPC9wcmU+XG4gICAgPC9kaXY+XG4gIH1cblxufVxuXG5mdW5jdGlvbiBwYWRTdHJpbmcobiwgc3RyaW5nKSB7XG4gIGlmKHR5cGVvZiBzdHJpbmcgIT09IFwic3RyaW5nXCIpIHsgcmV0dXJuIFwiXCIgfVxuICByZXR1cm4gc3RyaW5nXG4gICAgLnNwbGl0KFwiXFxuXCIpXG4gICAgLm1hcCgobGluZSwgaSkgPT4gaSA+IDAgPyBBcnJheShuICsgMSkuam9pbihcIiBcIikgKyBsaW5lIDogbGluZSlcbiAgICAuam9pbihcIlxcblwiKVxufVxuXG5PcGVyYXRpb25MaW5rLnByb3BUeXBlcyA9IHtcbiAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBsaW5rOiBJbVByb3BUeXBlcy5vcmRlcmVkTWFwLmlzUmVxdWlyZWQsXG4gIG5hbWU6IFByb3BUeXBlcy5TdHJpbmdcbn1cblxuZXhwb3J0IGRlZmF1bHQgT3BlcmF0aW9uTGlua1xuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgT3JkZXJlZE1hcCB9IGZyb20gXCJpbW11dGFibGVcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuXG5jb25zdCBTZXJ2ZXJzID0gKHtcbiAgc2VydmVycyxcbiAgY3VycmVudFNlcnZlcixcbiAgc2V0U2VsZWN0ZWRTZXJ2ZXIsXG4gIHNldFNlcnZlclZhcmlhYmxlVmFsdWUsXG4gIGdldFNlcnZlclZhcmlhYmxlLFxuICBnZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZSxcbn0pID0+IHtcbiAgY29uc3QgY3VycmVudFNlcnZlckRlZmluaXRpb24gPVxuICAgIHNlcnZlcnMuZmluZCgocykgPT4gcy5nZXQoXCJ1cmxcIikgPT09IGN1cnJlbnRTZXJ2ZXIpIHx8IE9yZGVyZWRNYXAoKVxuICBjb25zdCBjdXJyZW50U2VydmVyVmFyaWFibGVEZWZzID1cbiAgICBjdXJyZW50U2VydmVyRGVmaW5pdGlvbi5nZXQoXCJ2YXJpYWJsZXNcIikgfHwgT3JkZXJlZE1hcCgpXG4gIGNvbnN0IHNob3VsZFNob3dWYXJpYWJsZVVJID0gY3VycmVudFNlcnZlclZhcmlhYmxlRGVmcy5zaXplICE9PSAwXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY3VycmVudFNlcnZlcikgcmV0dXJuXG5cbiAgICAvLyBmaXJlICdjaGFuZ2UnIGV2ZW50IHRvIHNldCBkZWZhdWx0ICd2YWx1ZScgb2Ygc2VsZWN0XG4gICAgc2V0U2VsZWN0ZWRTZXJ2ZXIoc2VydmVycy5maXJzdCgpPy5nZXQoXCJ1cmxcIikpXG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gc2VydmVyIGhhcyBjaGFuZ2VkLCB3ZSBtYXkgbmVlZCB0byBzZXQgZGVmYXVsdCB2YWx1ZXNcbiAgICBjb25zdCBjdXJyZW50U2VydmVyRGVmaW5pdGlvbiA9IHNlcnZlcnMuZmluZChcbiAgICAgIChzZXJ2ZXIpID0+IHNlcnZlci5nZXQoXCJ1cmxcIikgPT09IGN1cnJlbnRTZXJ2ZXJcbiAgICApXG4gICAgaWYgKCFjdXJyZW50U2VydmVyRGVmaW5pdGlvbikge1xuICAgICAgc2V0U2VsZWN0ZWRTZXJ2ZXIoc2VydmVycy5maXJzdCgpLmdldChcInVybFwiKSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRTZXJ2ZXJWYXJpYWJsZURlZnMgPVxuICAgICAgY3VycmVudFNlcnZlckRlZmluaXRpb24uZ2V0KFwidmFyaWFibGVzXCIpIHx8IE9yZGVyZWRNYXAoKVxuICAgIGN1cnJlbnRTZXJ2ZXJWYXJpYWJsZURlZnMubWFwKCh2YWwsIGtleSkgPT4ge1xuICAgICAgc2V0U2VydmVyVmFyaWFibGVWYWx1ZSh7XG4gICAgICAgIHNlcnZlcjogY3VycmVudFNlcnZlcixcbiAgICAgICAga2V5LFxuICAgICAgICB2YWw6IHZhbC5nZXQoXCJkZWZhdWx0XCIpIHx8IFwiXCIsXG4gICAgICB9KVxuICAgIH0pXG4gIH0sIFtjdXJyZW50U2VydmVyLCBzZXJ2ZXJzXSlcblxuICBjb25zdCBoYW5kbGVTZXJ2ZXJDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoZSkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRTZXJ2ZXIoZS50YXJnZXQudmFsdWUpXG4gICAgfSxcbiAgICBbc2V0U2VsZWN0ZWRTZXJ2ZXJdXG4gIClcblxuICBjb25zdCBoYW5kbGVTZXJ2ZXJWYXJpYWJsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChlKSA9PiB7XG4gICAgICBjb25zdCB2YXJpYWJsZU5hbWUgPSBlLnRhcmdldC5nZXRBdHRyaWJ1dGUoXCJkYXRhLXZhcmlhYmxlXCIpXG4gICAgICBjb25zdCBuZXdWYXJpYWJsZVZhbHVlID0gZS50YXJnZXQudmFsdWVcblxuICAgICAgc2V0U2VydmVyVmFyaWFibGVWYWx1ZSh7XG4gICAgICAgIHNlcnZlcjogY3VycmVudFNlcnZlcixcbiAgICAgICAga2V5OiB2YXJpYWJsZU5hbWUsXG4gICAgICAgIHZhbDogbmV3VmFyaWFibGVWYWx1ZSxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbc2V0U2VydmVyVmFyaWFibGVWYWx1ZSwgY3VycmVudFNlcnZlcl1cbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJzZXJ2ZXJzXCI+XG4gICAgICA8bGFiZWwgaHRtbEZvcj1cInNlcnZlcnNcIj5cbiAgICAgICAgPHNlbGVjdFxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVTZXJ2ZXJDaGFuZ2V9XG4gICAgICAgICAgdmFsdWU9e2N1cnJlbnRTZXJ2ZXJ9XG4gICAgICAgICAgaWQ9XCJzZXJ2ZXJzXCJcbiAgICAgICAgPlxuICAgICAgICAgIHtzZXJ2ZXJzXG4gICAgICAgICAgICAudmFsdWVTZXEoKVxuICAgICAgICAgICAgLm1hcCgoc2VydmVyKSA9PiAoXG4gICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9e3NlcnZlci5nZXQoXCJ1cmxcIil9IGtleT17c2VydmVyLmdldChcInVybFwiKX0+XG4gICAgICAgICAgICAgICAge3NlcnZlci5nZXQoXCJ1cmxcIil9XG4gICAgICAgICAgICAgICAge3NlcnZlci5nZXQoXCJkZXNjcmlwdGlvblwiKSAmJiBgIC0gJHtzZXJ2ZXIuZ2V0KFwiZGVzY3JpcHRpb25cIil9YH1cbiAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICApKVxuICAgICAgICAgICAgLnRvQXJyYXkoKX1cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L2xhYmVsPlxuICAgICAge3Nob3VsZFNob3dWYXJpYWJsZVVJICYmIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJjb21wdXRlZC11cmxcIn0+XG4gICAgICAgICAgICBDb21wdXRlZCBVUkw6XG4gICAgICAgICAgICA8Y29kZT57Z2V0RWZmZWN0aXZlU2VydmVyVmFsdWUoY3VycmVudFNlcnZlcil9PC9jb2RlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxoND5TZXJ2ZXIgdmFyaWFibGVzPC9oND5cbiAgICAgICAgICA8dGFibGU+XG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgIHtjdXJyZW50U2VydmVyVmFyaWFibGVEZWZzLmVudHJ5U2VxKCkubWFwKChbbmFtZSwgdmFsXSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8dHIga2V5PXtuYW1lfT5cbiAgICAgICAgICAgICAgICAgICAgPHRkPntuYW1lfTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgICB7dmFsLmdldChcImVudW1cIikgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdmFyaWFibGU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVTZXJ2ZXJWYXJpYWJsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3ZhbC5nZXQoXCJlbnVtXCIpLm1hcCgoZW51bVZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1WYWx1ZSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRTZXJ2ZXJWYXJpYWJsZShjdXJyZW50U2VydmVyLCBuYW1lKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17ZW51bVZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17ZW51bVZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZW51bVZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT17XCJ0ZXh0XCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtnZXRTZXJ2ZXJWYXJpYWJsZShjdXJyZW50U2VydmVyLCBuYW1lKSB8fCBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlU2VydmVyVmFyaWFibGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdmFyaWFibGU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9pbnB1dD5cbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gIClcbn1cblNlcnZlcnMucHJvcFR5cGVzID0ge1xuICBzZXJ2ZXJzOiBJbVByb3BUeXBlcy5saXN0LmlzUmVxdWlyZWQsXG4gIGN1cnJlbnRTZXJ2ZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgc2V0U2VsZWN0ZWRTZXJ2ZXI6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNldFNlcnZlclZhcmlhYmxlVmFsdWU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGdldFNlcnZlclZhcmlhYmxlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBnZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgU2VydmVyc1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VydmVyc0NvbnRhaW5lciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgb2FzM1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG9hczNBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB9XG5cbiAgcmVuZGVyICgpIHtcbiAgICBjb25zdCB7c3BlY1NlbGVjdG9ycywgb2FzM1NlbGVjdG9ycywgb2FzM0FjdGlvbnMsIGdldENvbXBvbmVudH0gPSB0aGlzLnByb3BzXG5cbiAgICBjb25zdCBzZXJ2ZXJzID0gc3BlY1NlbGVjdG9ycy5zZXJ2ZXJzKClcblxuICAgIGNvbnN0IFNlcnZlcnMgPSBnZXRDb21wb25lbnQoXCJTZXJ2ZXJzXCIpXG5cbiAgICByZXR1cm4gc2VydmVycyAmJiBzZXJ2ZXJzLnNpemUgPyAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzZXJ2ZXJzLXRpdGxlXCI+U2VydmVyczwvc3Bhbj5cbiAgICAgICAgPFNlcnZlcnNcbiAgICAgICAgICBzZXJ2ZXJzPXtzZXJ2ZXJzfVxuICAgICAgICAgIGN1cnJlbnRTZXJ2ZXI9e29hczNTZWxlY3RvcnMuc2VsZWN0ZWRTZXJ2ZXIoKX1cbiAgICAgICAgICBzZXRTZWxlY3RlZFNlcnZlcj17b2FzM0FjdGlvbnMuc2V0U2VsZWN0ZWRTZXJ2ZXJ9XG4gICAgICAgICAgc2V0U2VydmVyVmFyaWFibGVWYWx1ZT17b2FzM0FjdGlvbnMuc2V0U2VydmVyVmFyaWFibGVWYWx1ZX1cbiAgICAgICAgICBnZXRTZXJ2ZXJWYXJpYWJsZT17b2FzM1NlbGVjdG9ycy5zZXJ2ZXJWYXJpYWJsZVZhbHVlfVxuICAgICAgICAgIGdldEVmZmVjdGl2ZVNlcnZlclZhbHVlPXtvYXMzU2VsZWN0b3JzLnNlcnZlckVmZmVjdGl2ZVZhbHVlfVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+ICkgOiBudWxsXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IGN4IGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCB7IHN0cmluZ2lmeSB9IGZyb20gXCJjb3JlL3V0aWxzXCJcblxuY29uc3QgTk9PUCA9IEZ1bmN0aW9uLnByb3RvdHlwZVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZXF1ZXN0Qm9keUVkaXRvciBleHRlbmRzIFB1cmVDb21wb25lbnQge1xuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICB2YWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBkZWZhdWx0VmFsdWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZXJyb3JzOiBQcm9wVHlwZXMuYXJyYXksXG4gIH1cblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIG9uQ2hhbmdlOiBOT09QLFxuICAgIHVzZXJIYXNFZGl0ZWRCb2R5OiBmYWxzZSxcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3BzLCBjb250ZXh0KSB7XG4gICAgc3VwZXIocHJvcHMsIGNvbnRleHQpXG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgdmFsdWU6IHN0cmluZ2lmeShwcm9wcy52YWx1ZSkgfHwgcHJvcHMuZGVmYXVsdFZhbHVlXG4gICAgfVxuXG4gICAgLy8gdGhpcyBpcyB0aGUgZ2x1ZSB0aGF0IG1ha2VzIHN1cmUgb3VyIGluaXRpYWwgdmFsdWUgZ2V0cyBzZXQgYXMgdGhlXG4gICAgLy8gY3VycmVudCByZXF1ZXN0IGJvZHkgdmFsdWVcbiAgICAvLyBUT0RPOiBhY2hpZXZlIHRoaXMgaW4gYSBzZWxlY3RvciBpbnN0ZWFkXG4gICAgcHJvcHMub25DaGFuZ2UocHJvcHMudmFsdWUpXG4gIH1cblxuICBhcHBseURlZmF1bHRWYWx1ZSA9IChuZXh0UHJvcHMpID0+IHtcbiAgICBjb25zdCB7IG9uQ2hhbmdlLCBkZWZhdWx0VmFsdWUgfSA9IChuZXh0UHJvcHMgPyBuZXh0UHJvcHMgOiB0aGlzLnByb3BzKVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICB2YWx1ZTogZGVmYXVsdFZhbHVlXG4gICAgfSlcblxuICAgIHJldHVybiBvbkNoYW5nZShkZWZhdWx0VmFsdWUpXG4gIH1cblxuICBvbkNoYW5nZSA9ICh2YWx1ZSkgPT4ge1xuICAgIHRoaXMucHJvcHMub25DaGFuZ2Uoc3RyaW5naWZ5KHZhbHVlKSlcbiAgfVxuXG4gIG9uRG9tQ2hhbmdlID0gZSA9PiB7XG4gICAgY29uc3QgaW5wdXRWYWx1ZSA9IGUudGFyZ2V0LnZhbHVlXG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHZhbHVlOiBpbnB1dFZhbHVlLFxuICAgIH0sICgpID0+IHRoaXMub25DaGFuZ2UoaW5wdXRWYWx1ZSkpXG4gIH1cblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICBpZihcbiAgICAgIHRoaXMucHJvcHMudmFsdWUgIT09IG5leHRQcm9wcy52YWx1ZSAmJlxuICAgICAgbmV4dFByb3BzLnZhbHVlICE9PSB0aGlzLnN0YXRlLnZhbHVlXG4gICAgKSB7XG5cbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICB2YWx1ZTogc3RyaW5naWZ5KG5leHRQcm9wcy52YWx1ZSlcbiAgICAgIH0pXG4gICAgfVxuXG5cblxuICAgIGlmKCFuZXh0UHJvcHMudmFsdWUgJiYgbmV4dFByb3BzLmRlZmF1bHRWYWx1ZSAmJiAhIXRoaXMuc3RhdGUudmFsdWUpIHtcbiAgICAgIC8vIGlmIG5ldyB2YWx1ZSBpcyBmYWxzeSwgd2UgaGF2ZSBhIGRlZmF1bHQsIEFORCB0aGUgZmFsc3kgdmFsdWUgZGlkbid0XG4gICAgICAvLyBjb21lIGZyb20gdXMgb3JpZ2luYWxseVxuICAgICAgdGhpcy5hcHBseURlZmF1bHRWYWx1ZShuZXh0UHJvcHMpXG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7XG4gICAgICBnZXRDb21wb25lbnQsXG4gICAgICBlcnJvcnMsXG4gICAgfSA9IHRoaXMucHJvcHNcblxuICAgIGxldCB7XG4gICAgICB2YWx1ZVxuICAgIH0gPSB0aGlzLnN0YXRlXG5cbiAgICBsZXQgaXNJbnZhbGlkID0gZXJyb3JzLnNpemUgPiAwID8gdHJ1ZSA6IGZhbHNlXG4gICAgY29uc3QgVGV4dEFyZWEgPSBnZXRDb21wb25lbnQoXCJUZXh0QXJlYVwiKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm9keS1wYXJhbVwiPlxuICAgICAgICA8VGV4dEFyZWFcbiAgICAgICAgICBjbGFzc05hbWU9e2N4KFwiYm9keS1wYXJhbV9fdGV4dFwiLCB7IGludmFsaWQ6IGlzSW52YWxpZCB9ICl9XG4gICAgICAgICAgdGl0bGU9e2Vycm9ycy5zaXplID8gZXJyb3JzLmpvaW4oXCIsIFwiKSA6IFwiXCJ9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIG9uQ2hhbmdlPXsgdGhpcy5vbkRvbUNoYW5nZSB9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICApXG5cbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSHR0cEF1dGggZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGF1dGhvcml6ZWQ6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGVyclNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHNjaGVtYTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgYXV0aFNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm9wcywgY29udGV4dCkge1xuICAgIHN1cGVyKHByb3BzLCBjb250ZXh0KVxuICAgIGxldCB7IG5hbWUsIHNjaGVtYSB9ID0gdGhpcy5wcm9wc1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKVxuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICBzY2hlbWE6IHNjaGVtYSxcbiAgICAgIHZhbHVlOiB2YWx1ZVxuICAgIH1cbiAgfVxuXG4gIGdldFZhbHVlICgpIHtcbiAgICBsZXQgeyBuYW1lLCBhdXRob3JpemVkIH0gPSB0aGlzLnByb3BzXG5cbiAgICByZXR1cm4gYXV0aG9yaXplZCAmJiBhdXRob3JpemVkLmdldEluKFtuYW1lLCBcInZhbHVlXCJdKVxuICB9XG5cbiAgb25DaGFuZ2UgPShlKSA9PiB7XG4gICAgbGV0IHsgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHNcbiAgICBsZXQgeyB2YWx1ZSwgbmFtZSB9ID0gZS50YXJnZXRcblxuICAgIGxldCBuZXdWYWx1ZSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuc3RhdGUudmFsdWUpXG5cbiAgICBpZihuYW1lKSB7XG4gICAgICBuZXdWYWx1ZVtuYW1lXSA9IHZhbHVlXG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld1ZhbHVlID0gdmFsdWVcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0YXRlKHsgdmFsdWU6IG5ld1ZhbHVlIH0sICgpID0+IG9uQ2hhbmdlKHRoaXMuc3RhdGUpKVxuXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHsgc2NoZW1hLCBnZXRDb21wb25lbnQsIGVyclNlbGVjdG9ycywgbmFtZSwgYXV0aFNlbGVjdG9ycyB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IElucHV0ID0gZ2V0Q29tcG9uZW50KFwiSW5wdXRcIilcbiAgICBjb25zdCBSb3cgPSBnZXRDb21wb25lbnQoXCJSb3dcIilcbiAgICBjb25zdCBDb2wgPSBnZXRDb21wb25lbnQoXCJDb2xcIilcbiAgICBjb25zdCBBdXRoRXJyb3IgPSBnZXRDb21wb25lbnQoXCJhdXRoRXJyb3JcIilcbiAgICBjb25zdCBNYXJrZG93biA9IGdldENvbXBvbmVudChcIk1hcmtkb3duXCIsIHRydWUpXG4gICAgY29uc3QgSnVtcFRvUGF0aCA9IGdldENvbXBvbmVudChcIkp1bXBUb1BhdGhcIiwgdHJ1ZSlcblxuICAgIGNvbnN0IHNjaGVtZSA9IChzY2hlbWEuZ2V0KFwic2NoZW1lXCIpIHx8IFwiXCIpLnRvTG93ZXJDYXNlKClcbiAgICBjb25zdCBwYXRoID0gYXV0aFNlbGVjdG9ycy5zZWxlY3RBdXRoUGF0aChuYW1lKVxuICAgIGxldCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKVxuICAgIGxldCBlcnJvcnMgPSBlcnJTZWxlY3RvcnMuYWxsRXJyb3JzKCkuZmlsdGVyKCBlcnIgPT4gZXJyLmdldChcImF1dGhJZFwiKSA9PT0gbmFtZSlcblxuICAgIGlmKHNjaGVtZSA9PT0gXCJiYXNpY1wiKSB7XG4gICAgICBsZXQgdXNlcm5hbWUgPSB2YWx1ZSA/IHZhbHVlLmdldChcInVzZXJuYW1lXCIpIDogbnVsbFxuICAgICAgcmV0dXJuIDxkaXY+XG4gICAgICAgIDxoND5cbiAgICAgICAgICA8Y29kZT57bmFtZX08L2NvZGU+Jm5ic3A7XG4gICAgICAgICAgICAoaHR0cCwgQmFzaWMpXG4gICAgICAgICAgICA8SnVtcFRvUGF0aCBwYXRoPXtwYXRofSAvPlxuICAgICAgICAgIDwvaDQ+XG4gICAgICAgIHsgdXNlcm5hbWUgJiYgPGg2PkF1dGhvcml6ZWQ8L2g2PiB9XG4gICAgICAgIDxSb3c+XG4gICAgICAgICAgPE1hcmtkb3duIHNvdXJjZT17IHNjaGVtYS5nZXQoXCJkZXNjcmlwdGlvblwiKSB9IC8+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93PlxuICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwiYXV0aC1iYXNpYy11c2VybmFtZVwiPlVzZXJuYW1lOjwvbGFiZWw+XG4gICAgICAgICAge1xuICAgICAgICAgICAgdXNlcm5hbWUgPyA8Y29kZT4geyB1c2VybmFtZSB9IDwvY29kZT5cbiAgICAgICAgICAgICAgOiA8Q29sPlxuICAgICAgICAgICAgICAgICAgPElucHV0IFxuICAgICAgICAgICAgICAgICAgICBpZD1cImF1dGgtYmFzaWMtdXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPVwicmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwidXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiYXV0aC1iYXNpYy11c2VybmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsgdGhpcy5vbkNoYW5nZSB9XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93PlxuICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwiYXV0aC1iYXNpYy1wYXNzd29yZFwiPlBhc3N3b3JkOjwvbGFiZWw+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHVzZXJuYW1lID8gPGNvZGU+ICoqKioqKiA8L2NvZGU+XG4gICAgICAgICAgICAgICAgICAgICAgIDogPENvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImF1dGgtYmFzaWMtcGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwibmV3LXBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cImF1dGgtYmFzaWMtcGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyB0aGlzLm9uQ2hhbmdlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvUm93PlxuICAgICAgICB7XG4gICAgICAgICAgZXJyb3JzLnZhbHVlU2VxKCkubWFwKCAoZXJyb3IsIGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIDxBdXRoRXJyb3IgZXJyb3I9eyBlcnJvciB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9eyBrZXkgfS8+XG4gICAgICAgICAgfSApXG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIGlmKHNjaGVtZSA9PT0gXCJiZWFyZXJcIikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8aDQ+XG4gICAgICAgICAgICA8Y29kZT57bmFtZX08L2NvZGU+Jm5ic3A7XG4gICAgICAgICAgICAgIChodHRwLCBCZWFyZXIpXG4gICAgICAgICAgICAgIDxKdW1wVG9QYXRoIHBhdGg9e3BhdGh9IC8+XG4gICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgeyB2YWx1ZSAmJiA8aDY+QXV0aG9yaXplZDwvaDY+fVxuICAgICAgICAgICAgPFJvdz5cbiAgICAgICAgICAgICAgPE1hcmtkb3duIHNvdXJjZT17IHNjaGVtYS5nZXQoXCJkZXNjcmlwdGlvblwiKSB9IC8+XG4gICAgICAgICAgICA8L1Jvdz5cbiAgICAgICAgICAgIDxSb3c+XG4gICAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwiYXV0aC1iZWFyZXItdmFsdWVcIj5WYWx1ZTo8L2xhYmVsPlxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPyA8Y29kZT4gKioqKioqIDwvY29kZT5cbiAgICAgICAgICAgICAgOiA8Q29sPlxuICAgICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgIGlkPVwiYXV0aC1iZWFyZXItdmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJhdXRoLWJlYXJlci12YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsgdGhpcy5vbkNoYW5nZSB9XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvUm93PlxuICAgICAgICB7XG4gICAgICAgICAgZXJyb3JzLnZhbHVlU2VxKCkubWFwKCAoZXJyb3IsIGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIDxBdXRoRXJyb3IgZXJyb3I9eyBlcnJvciB9XG4gICAgICAgICAgICAgIGtleT17IGtleSB9Lz5cbiAgICAgICAgICB9IClcbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgKVxuICAgIH1cbiAgcmV0dXJuIDxkaXY+XG4gICAgPGVtPjxiPntuYW1lfTwvYj4gSFRUUCBhdXRoZW50aWNhdGlvbjogdW5zdXBwb3J0ZWQgc2NoZW1lIHtgJyR7c2NoZW1lfSdgfTwvZW0+XG4gIDwvZGl2PlxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT3BlcmF0aW9uU2VydmVycyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgLy8gZm9yIHNlbGZcbiAgICBwYXRoOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgbWV0aG9kOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgb3BlcmF0aW9uU2VydmVyczogSW1Qcm9wVHlwZXMubGlzdCxcbiAgICBwYXRoU2VydmVyczogSW1Qcm9wVHlwZXMubGlzdCxcbiAgICBzZXRTZWxlY3RlZFNlcnZlcjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGdldFNlbGVjdGVkU2VydmVyOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGdldFNlcnZlclZhcmlhYmxlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGdldEVmZmVjdGl2ZVNlcnZlclZhbHVlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuXG4gICAgLy8gdXRpbHNcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbiAgfVxuXG4gIHNldFNlbGVjdGVkU2VydmVyID0gKHNlcnZlcikgPT4ge1xuICAgIGNvbnN0IHsgcGF0aCwgbWV0aG9kIH0gPSB0aGlzLnByb3BzXG4gICAgLy8gRklYTUU6IHdlIHNob3VsZCBiZSBrZWVwaW5nIHVwIHdpdGggdGhpcyBpbiBwcm9wcy9zdGF0ZSB1cHN0cmVhbSBvZiB1c1xuICAgIC8vIGluc3RlYWQgb2YgY2hlYXRpbmfihKIgd2l0aCBgZm9yY2VVcGRhdGVgXG4gICAgdGhpcy5mb3JjZVVwZGF0ZSgpXG4gICAgcmV0dXJuIHRoaXMucHJvcHMuc2V0U2VsZWN0ZWRTZXJ2ZXIoc2VydmVyLCBgJHtwYXRofToke21ldGhvZH1gKVxuICB9XG5cbiAgc2V0U2VydmVyVmFyaWFibGVWYWx1ZSA9IChvYmopID0+IHtcbiAgICBjb25zdCB7IHBhdGgsIG1ldGhvZCB9ID0gdGhpcy5wcm9wc1xuICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgYmUga2VlcGluZyB1cCB3aXRoIHRoaXMgaW4gcHJvcHMvc3RhdGUgdXBzdHJlYW0gb2YgdXNcbiAgICAvLyBpbnN0ZWFkIG9mIGNoZWF0aW5n4oSiIHdpdGggYGZvcmNlVXBkYXRlYFxuICAgIHRoaXMuZm9yY2VVcGRhdGUoKVxuICAgIHJldHVybiB0aGlzLnByb3BzLnNldFNlcnZlclZhcmlhYmxlVmFsdWUoe1xuICAgICAgLi4ub2JqLFxuICAgICAgbmFtZXNwYWNlOiBgJHtwYXRofToke21ldGhvZH1gXG4gICAgfSlcbiAgfVxuXG4gIGdldFNlbGVjdGVkU2VydmVyID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgcGF0aCwgbWV0aG9kIH0gPSB0aGlzLnByb3BzXG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZ2V0U2VsZWN0ZWRTZXJ2ZXIoYCR7cGF0aH06JHttZXRob2R9YClcbiAgfVxuXG4gIGdldFNlcnZlclZhcmlhYmxlID0gKHNlcnZlciwga2V5KSA9PiB7XG4gICAgY29uc3QgeyBwYXRoLCBtZXRob2QgfSA9IHRoaXMucHJvcHNcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5nZXRTZXJ2ZXJWYXJpYWJsZSh7XG4gICAgICBuYW1lc3BhY2U6IGAke3BhdGh9OiR7bWV0aG9kfWAsXG4gICAgICBzZXJ2ZXJcbiAgICB9LCBrZXkpXG4gIH1cblxuICBnZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZSA9IChzZXJ2ZXIpID0+IHtcbiAgICBjb25zdCB7IHBhdGgsIG1ldGhvZCB9ID0gdGhpcy5wcm9wc1xuICAgIHJldHVybiB0aGlzLnByb3BzLmdldEVmZmVjdGl2ZVNlcnZlclZhbHVlKHtcbiAgICAgIHNlcnZlcixcbiAgICAgIG5hbWVzcGFjZTogYCR7cGF0aH06JHttZXRob2R9YFxuICAgIH0pXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgLy8gZm9yIHNlbGZcbiAgICAgIG9wZXJhdGlvblNlcnZlcnMsXG4gICAgICBwYXRoU2VydmVycyxcblxuICAgICAgLy8gdXRpbFxuICAgICAgZ2V0Q29tcG9uZW50XG4gICAgfSA9IHRoaXMucHJvcHNcblxuICAgIGlmKCFvcGVyYXRpb25TZXJ2ZXJzICYmICFwYXRoU2VydmVycykge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCBTZXJ2ZXJzID0gZ2V0Q29tcG9uZW50KFwiU2VydmVyc1wiKVxuXG4gICAgY29uc3Qgc2VydmVyc1RvRGlzcGxheSA9IG9wZXJhdGlvblNlcnZlcnMgfHwgcGF0aFNlcnZlcnNcbiAgICBjb25zdCBkaXNwbGF5aW5nID0gb3BlcmF0aW9uU2VydmVycyA/IFwib3BlcmF0aW9uXCIgOiBcInBhdGhcIlxuXG4gICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwib3BibG9jay1zZWN0aW9uIG9wZXJhdGlvbi1zZXJ2ZXJzXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm9wYmxvY2stc2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0YWItaGVhZGVyXCI+XG4gICAgICAgICAgPGg0IGNsYXNzTmFtZT1cIm9wYmxvY2stdGl0bGVcIj5TZXJ2ZXJzPC9oND5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwib3BibG9jay1kZXNjcmlwdGlvbi13cmFwcGVyXCI+XG4gICAgICAgIDxoNCBjbGFzc05hbWU9XCJtZXNzYWdlXCI+XG4gICAgICAgICAgVGhlc2Uge2Rpc3BsYXlpbmd9LWxldmVsIG9wdGlvbnMgb3ZlcnJpZGUgdGhlIGdsb2JhbCBzZXJ2ZXIgb3B0aW9ucy5cbiAgICAgICAgPC9oND5cbiAgICAgICAgPFNlcnZlcnNcbiAgICAgICAgICBzZXJ2ZXJzPXtzZXJ2ZXJzVG9EaXNwbGF5fVxuICAgICAgICAgIGN1cnJlbnRTZXJ2ZXI9e3RoaXMuZ2V0U2VsZWN0ZWRTZXJ2ZXIoKX1cbiAgICAgICAgICBzZXRTZWxlY3RlZFNlcnZlcj17dGhpcy5zZXRTZWxlY3RlZFNlcnZlcn1cbiAgICAgICAgICBzZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlPXt0aGlzLnNldFNlcnZlclZhcmlhYmxlVmFsdWV9XG4gICAgICAgICAgZ2V0U2VydmVyVmFyaWFibGU9e3RoaXMuZ2V0U2VydmVyVmFyaWFibGV9XG4gICAgICAgICAgZ2V0RWZmZWN0aXZlU2VydmVyVmFsdWU9e3RoaXMuZ2V0RWZmZWN0aXZlU2VydmVyVmFsdWV9XG4gICAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG59XG4iLCJpbXBvcnQgQ2FsbGJhY2tzIGZyb20gXCIuL2NhbGxiYWNrc1wiXG5pbXBvcnQgUmVxdWVzdEJvZHkgZnJvbSBcIi4vcmVxdWVzdC1ib2R5XCJcbmltcG9ydCBPcGVyYXRpb25MaW5rIGZyb20gXCIuL29wZXJhdGlvbi1saW5rXCJcbmltcG9ydCBTZXJ2ZXJzIGZyb20gXCIuL3NlcnZlcnNcIlxuaW1wb3J0IFNlcnZlcnNDb250YWluZXIgZnJvbSBcIi4vc2VydmVycy1jb250YWluZXJcIlxuaW1wb3J0IFJlcXVlc3RCb2R5RWRpdG9yIGZyb20gXCIuL3JlcXVlc3QtYm9keS1lZGl0b3JcIlxuaW1wb3J0IEh0dHBBdXRoIGZyb20gXCIuL2F1dGgvaHR0cC1hdXRoXCJcbmltcG9ydCBPcGVyYXRpb25TZXJ2ZXJzIGZyb20gXCIuL29wZXJhdGlvbi1zZXJ2ZXJzXCJcblxuZXhwb3J0IGRlZmF1bHQge1xuICBDYWxsYmFja3MsXG4gIEh0dHBBdXRoLFxuICBSZXF1ZXN0Qm9keSxcbiAgU2VydmVycyxcbiAgU2VydmVyc0NvbnRhaW5lcixcbiAgUmVxdWVzdEJvZHlFZGl0b3IsXG4gIE9wZXJhdGlvblNlcnZlcnMsXG4gIG9wZXJhdGlvbkxpbms6IE9wZXJhdGlvbkxpbmssXG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IGN4IGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCB7IFJlbWFya2FibGUgfSBmcm9tIFwicmVtYXJrYWJsZVwiXG5pbXBvcnQgeyBPQVMzQ29tcG9uZW50V3JhcEZhY3RvcnkgfSBmcm9tIFwiLi4vaGVscGVyc1wiXG5pbXBvcnQgeyBzYW5pdGl6ZXIgfSBmcm9tIFwiY29yZS9jb21wb25lbnRzL3Byb3ZpZGVycy9tYXJrZG93blwiXG5cbmNvbnN0IHBhcnNlciA9IG5ldyBSZW1hcmthYmxlKFwiY29tbW9ubWFya1wiKVxucGFyc2VyLmJsb2NrLnJ1bGVyLmVuYWJsZShbXCJ0YWJsZVwiXSlcbnBhcnNlci5zZXQoeyBsaW5rVGFyZ2V0OiBcIl9ibGFua1wiIH0pXG5cbmV4cG9ydCBjb25zdCBNYXJrZG93biA9ICh7IHNvdXJjZSwgY2xhc3NOYW1lID0gXCJcIiwgZ2V0Q29uZmlncyA9ICgpID0+ICh7IHVzZVVuc2FmZU1hcmtkb3duOiBmYWxzZSB9KSB9KSA9PiB7XG4gIGlmKHR5cGVvZiBzb3VyY2UgIT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgaWYgKCBzb3VyY2UgKSB7XG4gICAgY29uc3QgeyB1c2VVbnNhZmVNYXJrZG93biB9ID0gZ2V0Q29uZmlncygpXG4gICAgY29uc3QgaHRtbCA9IHBhcnNlci5yZW5kZXIoc291cmNlKVxuICAgIGNvbnN0IHNhbml0aXplZCA9IHNhbml0aXplcihodG1sLCB7IHVzZVVuc2FmZU1hcmtkb3duIH0pXG5cbiAgICBsZXQgdHJpbW1lZFxuXG4gICAgaWYodHlwZW9mIHNhbml0aXplZCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgdHJpbW1lZCA9IHNhbml0aXplZC50cmltKClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdlxuICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgIF9faHRtbDogdHJpbW1lZFxuICAgICAgICB9fVxuICAgICAgICBjbGFzc05hbWU9e2N4KGNsYXNzTmFtZSwgXCJyZW5kZXJlZE1hcmtkb3duXCIpfVxuICAgICAgLz5cbiAgICApXG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cbk1hcmtkb3duLnByb3BUeXBlcyA9IHtcbiAgc291cmNlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGdldENvbmZpZ3M6IFByb3BUeXBlcy5mdW5jLFxufVxuXG5leHBvcnQgZGVmYXVsdCBPQVMzQ29tcG9uZW50V3JhcEZhY3RvcnkoTWFya2Rvd24pXG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IE9BUzNDb21wb25lbnRXcmFwRmFjdG9yeSB9IGZyb20gXCIuLi8uLi9oZWxwZXJzXCJcblxuZXhwb3J0IGRlZmF1bHQgT0FTM0NvbXBvbmVudFdyYXBGYWN0b3J5KCh7IE9yaSwgLi4ucHJvcHMgfSkgPT4ge1xuICBjb25zdCB7XG4gICAgc2NoZW1hLCBnZXRDb21wb25lbnQsIGVyclNlbGVjdG9ycywgYXV0aG9yaXplZCwgb25BdXRoQ2hhbmdlLCBuYW1lLCBhdXRoU2VsZWN0b3JzXG4gIH0gPSBwcm9wc1xuXG4gIGNvbnN0IEh0dHBBdXRoID0gZ2V0Q29tcG9uZW50KFwiSHR0cEF1dGhcIilcbiAgY29uc3QgdHlwZSA9IHNjaGVtYS5nZXQoXCJ0eXBlXCIpXG5cblxuICBpZih0eXBlID09PSBcImh0dHBcIikge1xuICAgIHJldHVybiA8SHR0cEF1dGgga2V5PXsgbmFtZSB9XG4gICAgICAgICAgICAgIHNjaGVtYT17IHNjaGVtYSB9XG4gICAgICAgICAgICAgIG5hbWU9eyBuYW1lIH1cbiAgICAgICAgICAgICAgZXJyU2VsZWN0b3JzPXsgZXJyU2VsZWN0b3JzIH1cbiAgICAgICAgICAgICAgYXV0aG9yaXplZD17IGF1dGhvcml6ZWQgfVxuICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9eyBnZXRDb21wb25lbnQgfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17IG9uQXV0aENoYW5nZSB9XG4gICAgICAgICAgICAgIGF1dGhTZWxlY3RvcnM9IHsgYXV0aFNlbGVjdG9ycyB9Lz5cbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gPE9yaSB7Li4ucHJvcHN9IC8+XG4gIH1cbn0pXG4iLCJpbXBvcnQgeyBPQVMzQ29tcG9uZW50V3JhcEZhY3RvcnkgfSBmcm9tIFwiLi4vaGVscGVyc1wiXG5pbXBvcnQgT25saW5lVmFsaWRhdG9yQmFkZ2UgZnJvbSBcImNvcmUvY29tcG9uZW50cy9vbmxpbmUtdmFsaWRhdG9yLWJhZGdlXCJcblxuLy8gT0FTMyBzcGVjIGlzIG5vdyBzdXBwb3J0ZWQgYnkgdGhlIG9ubGluZSB2YWxpZGF0b3IuXG5leHBvcnQgZGVmYXVsdCBPQVMzQ29tcG9uZW50V3JhcEZhY3RvcnkoT25saW5lVmFsaWRhdG9yQmFkZ2UpXG4iLCJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHsgT0FTM0NvbXBvbmVudFdyYXBGYWN0b3J5IH0gZnJvbSBcIi4uL2hlbHBlcnNcIlxuXG5jbGFzcyBNb2RlbENvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgc2NoZW1hOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29uZmlnczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZXhwYW5kRGVwdGg6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgaW5jbHVkZVJlYWRPbmx5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpbmNsdWRlV3JpdGVPbmx5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBPcmk6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIH1cblxuICByZW5kZXIoKXtcbiAgICBsZXQgeyBnZXRDb25maWdzLCBzY2hlbWEsIE9yaTogTW9kZWwgfSA9IHRoaXMucHJvcHNcbiAgICBsZXQgY2xhc3NlcyA9IFtcIm1vZGVsLWJveFwiXVxuICAgIGxldCBpc0RlcHJlY2F0ZWQgPSBzY2hlbWEuZ2V0KFwiZGVwcmVjYXRlZFwiKSA9PT0gdHJ1ZVxuICAgIGxldCBtZXNzYWdlID0gbnVsbFxuXG4gICAgaWYoaXNEZXByZWNhdGVkKSB7XG4gICAgICBjbGFzc2VzLnB1c2goXCJkZXByZWNhdGVkXCIpXG4gICAgICBtZXNzYWdlID0gPHNwYW4gY2xhc3NOYW1lPVwibW9kZWwtZGVwcmVjYXRlZC13YXJuaW5nXCI+RGVwcmVjYXRlZDo8L3NwYW4+XG4gICAgfVxuXG4gICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmpvaW4oXCIgXCIpfT5cbiAgICAgIHttZXNzYWdlfVxuICAgICAgPE1vZGVsIHsgLi4udGhpcy5wcm9wcyB9XG4gICAgICAgIGdldENvbmZpZ3M9eyBnZXRDb25maWdzIH1cbiAgICAgICAgZGVwdGg9eyAxIH1cbiAgICAgICAgZXhwYW5kRGVwdGg9eyB0aGlzLnByb3BzLmV4cGFuZERlcHRoIHx8IDAgfVxuICAgICAgICAvPlxuICAgIDwvZGl2PlxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE9BUzNDb21wb25lbnRXcmFwRmFjdG9yeShNb2RlbENvbXBvbmVudClcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgT0FTM0NvbXBvbmVudFdyYXBGYWN0b3J5IH0gZnJvbSBcIi4uL2hlbHBlcnNcIlxuXG5leHBvcnQgZGVmYXVsdCBPQVMzQ29tcG9uZW50V3JhcEZhY3RvcnkoKHsgT3JpLCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IHtcbiAgICBzY2hlbWEsXG4gICAgZ2V0Q29tcG9uZW50LFxuICAgIGVycm9ycyxcbiAgICBvbkNoYW5nZSxcbiAgICBmblxuICB9ID0gcHJvcHNcblxuICBjb25zdCBpc0ZpbGVVcGxvYWRJbnRlbmRlZCA9IGZuLmlzRmlsZVVwbG9hZEludGVuZGVkKHNjaGVtYSlcbiAgY29uc3QgSW5wdXQgPSBnZXRDb21wb25lbnQoXCJJbnB1dFwiKVxuXG4gIGlmIChpc0ZpbGVVcGxvYWRJbnRlbmRlZCkge1xuICAgIHJldHVybiA8SW5wdXQgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17IGVycm9ycy5sZW5ndGggPyBcImludmFsaWRcIiA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgdGl0bGU9eyBlcnJvcnMubGVuZ3RoID8gZXJyb3JzIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlKGUudGFyZ2V0LmZpbGVzWzBdKVxuICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e09yaS5pc0Rpc2FibGVkfS8+XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIDxPcmkgey4uLnByb3BzfSAvPlxuICB9XG59KVxuIiwiaW1wb3J0IE1hcmtkb3duIGZyb20gXCIuL21hcmtkb3duXCJcbmltcG9ydCBBdXRoSXRlbSBmcm9tIFwiLi9hdXRoL2F1dGgtaXRlbVwiXG5pbXBvcnQgT25saW5lVmFsaWRhdG9yQmFkZ2UgZnJvbSBcIi4vb25saW5lLXZhbGlkYXRvci1iYWRnZVwiXG5pbXBvcnQgTW9kZWwgZnJvbSBcIi4vbW9kZWxcIlxuaW1wb3J0IEpzb25TY2hlbWFfc3RyaW5nIGZyb20gXCIuL2pzb24tc2NoZW1hLXN0cmluZ1wiXG5pbXBvcnQgT3BlbkFQSVZlcnNpb24gZnJvbSBcIi4vb3BlbmFwaS12ZXJzaW9uXCJcblxuZXhwb3J0IGRlZmF1bHQge1xuICBNYXJrZG93bixcbiAgQXV0aEl0ZW0sXG4gIE9wZW5BUElWZXJzaW9uLFxuICBKc29uU2NoZW1hX3N0cmluZyxcbiAgbW9kZWw6IE1vZGVsLFxuICBvbmxpbmVWYWxpZGF0b3JCYWRnZTogT25saW5lVmFsaWRhdG9yQmFkZ2UsXG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IE9BUzMwQ29tcG9uZW50V3JhcEZhY3RvcnkgfSBmcm9tIFwiLi4vaGVscGVyc1wiXG5cbmV4cG9ydCBkZWZhdWx0IE9BUzMwQ29tcG9uZW50V3JhcEZhY3RvcnkoKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgT3JpIH0gPSBwcm9wc1xuICByZXR1cm4gPE9yaSBvYXNWZXJzaW9uPVwiMy4wXCIgLz5cbn0pXG4iLCIvLyBBY3Rpb25zIGNvbmZvcm0gdG8gRlNBIChmbHV4LXN0YW5kYXJkLWFjdGlvbnMpXG4vLyB7dHlwZTogc3RyaW5nLHBheWxvYWQ6IEFueXxFcnJvciwgbWV0YTogb2JqLCBlcnJvcjogYm9vbH1cblxuZXhwb3J0IGNvbnN0IFVQREFURV9TRUxFQ1RFRF9TRVJWRVIgPSBcIm9hczNfc2V0X3NlcnZlcnNcIlxuZXhwb3J0IGNvbnN0IFVQREFURV9SRVFVRVNUX0JPRFlfVkFMVUUgPSBcIm9hczNfc2V0X3JlcXVlc3RfYm9keV92YWx1ZVwiXG5leHBvcnQgY29uc3QgVVBEQVRFX1JFUVVFU1RfQk9EWV9WQUxVRV9SRVRBSU5fRkxBRyA9IFwib2FzM19zZXRfcmVxdWVzdF9ib2R5X3JldGFpbl9mbGFnXCJcbmV4cG9ydCBjb25zdCBVUERBVEVfUkVRVUVTVF9CT0RZX0lOQ0xVU0lPTiA9IFwib2FzM19zZXRfcmVxdWVzdF9ib2R5X2luY2x1c2lvblwiXG5leHBvcnQgY29uc3QgVVBEQVRFX0FDVElWRV9FWEFNUExFU19NRU1CRVIgPSBcIm9hczNfc2V0X2FjdGl2ZV9leGFtcGxlc19tZW1iZXJcIlxuZXhwb3J0IGNvbnN0IFVQREFURV9SRVFVRVNUX0NPTlRFTlRfVFlQRSA9IFwib2FzM19zZXRfcmVxdWVzdF9jb250ZW50X3R5cGVcIlxuZXhwb3J0IGNvbnN0IFVQREFURV9SRVNQT05TRV9DT05URU5UX1RZUEUgPSBcIm9hczNfc2V0X3Jlc3BvbnNlX2NvbnRlbnRfdHlwZVwiXG5leHBvcnQgY29uc3QgVVBEQVRFX1NFUlZFUl9WQVJJQUJMRV9WQUxVRSA9IFwib2FzM19zZXRfc2VydmVyX3ZhcmlhYmxlX3ZhbHVlXCJcbmV4cG9ydCBjb25zdCBTRVRfUkVRVUVTVF9CT0RZX1ZBTElEQVRFX0VSUk9SID0gXCJvYXMzX3NldF9yZXF1ZXN0X2JvZHlfdmFsaWRhdGVfZXJyb3JcIlxuZXhwb3J0IGNvbnN0IENMRUFSX1JFUVVFU1RfQk9EWV9WQUxJREFURV9FUlJPUiA9IFwib2FzM19jbGVhcl9yZXF1ZXN0X2JvZHlfdmFsaWRhdGVfZXJyb3JcIlxuZXhwb3J0IGNvbnN0IENMRUFSX1JFUVVFU1RfQk9EWV9WQUxVRSA9IFwib2FzM19jbGVhcl9yZXF1ZXN0X2JvZHlfdmFsdWVcIlxuXG5leHBvcnQgZnVuY3Rpb24gc2V0U2VsZWN0ZWRTZXJ2ZXIgKHNlbGVjdGVkU2VydmVyVXJsLCBuYW1lc3BhY2UpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBVUERBVEVfU0VMRUNURURfU0VSVkVSLFxuICAgIHBheWxvYWQ6IHtzZWxlY3RlZFNlcnZlclVybCwgbmFtZXNwYWNlfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRSZXF1ZXN0Qm9keVZhbHVlICh7IHZhbHVlLCBwYXRoTWV0aG9kIH0pIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBVUERBVEVfUkVRVUVTVF9CT0RZX1ZBTFVFLFxuICAgIHBheWxvYWQ6IHsgdmFsdWUsIHBhdGhNZXRob2QgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBzZXRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlRmxhZyA9ICh7IHZhbHVlLCBwYXRoTWV0aG9kIH0pID0+IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBVUERBVEVfUkVRVUVTVF9CT0RZX1ZBTFVFX1JFVEFJTl9GTEFHLFxuICAgIHBheWxvYWQ6IHsgdmFsdWUsIHBhdGhNZXRob2QgfVxuICB9XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlcXVlc3RCb2R5SW5jbHVzaW9uICh7IHZhbHVlLCBwYXRoTWV0aG9kLCBuYW1lIH0pIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBVUERBVEVfUkVRVUVTVF9CT0RZX0lOQ0xVU0lPTixcbiAgICBwYXlsb2FkOiB7IHZhbHVlLCBwYXRoTWV0aG9kLCBuYW1lIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0QWN0aXZlRXhhbXBsZXNNZW1iZXIgKHsgbmFtZSwgcGF0aE1ldGhvZCwgY29udGV4dFR5cGUsIGNvbnRleHROYW1lIH0pIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBVUERBVEVfQUNUSVZFX0VYQU1QTEVTX01FTUJFUixcbiAgICBwYXlsb2FkOiB7IG5hbWUsIHBhdGhNZXRob2QsIGNvbnRleHRUeXBlLCBjb250ZXh0TmFtZSB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlcXVlc3RDb250ZW50VHlwZSAoeyB2YWx1ZSwgcGF0aE1ldGhvZCB9KSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogVVBEQVRFX1JFUVVFU1RfQ09OVEVOVF9UWVBFLFxuICAgIHBheWxvYWQ6IHsgdmFsdWUsIHBhdGhNZXRob2QgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRSZXNwb25zZUNvbnRlbnRUeXBlICh7IHZhbHVlLCBwYXRoLCBtZXRob2QgfSkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9SRVNQT05TRV9DT05URU5UX1RZUEUsXG4gICAgcGF5bG9hZDogeyB2YWx1ZSwgcGF0aCwgbWV0aG9kIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0U2VydmVyVmFyaWFibGVWYWx1ZSAoeyBzZXJ2ZXIsIG5hbWVzcGFjZSwga2V5LCB2YWwgfSkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9TRVJWRVJfVkFSSUFCTEVfVkFMVUUsXG4gICAgcGF5bG9hZDogeyBzZXJ2ZXIsIG5hbWVzcGFjZSwga2V5LCB2YWwgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBzZXRSZXF1ZXN0Qm9keVZhbGlkYXRlRXJyb3IgPSAoeyBwYXRoLCBtZXRob2QsIHZhbGlkYXRpb25FcnJvcnMgfSkgPT4ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFNFVF9SRVFVRVNUX0JPRFlfVkFMSURBVEVfRVJST1IsXG4gICAgcGF5bG9hZDogeyBwYXRoLCBtZXRob2QsIHZhbGlkYXRpb25FcnJvcnMgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBjbGVhclJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvciA9ICh7IHBhdGgsIG1ldGhvZCB9KSA9PiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogQ0xFQVJfUkVRVUVTVF9CT0RZX1ZBTElEQVRFX0VSUk9SLFxuICAgIHBheWxvYWQ6IHsgcGF0aCwgbWV0aG9kIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgaW5pdFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvciA9ICh7IHBhdGhNZXRob2QgfSApID0+IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBDTEVBUl9SRVFVRVNUX0JPRFlfVkFMSURBVEVfRVJST1IsXG4gICAgcGF5bG9hZDogeyBwYXRoOiBwYXRoTWV0aG9kWzBdLCBtZXRob2Q6IHBhdGhNZXRob2RbMV0gfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBjbGVhclJlcXVlc3RCb2R5VmFsdWUgPSAoeyBwYXRoTWV0aG9kIH0pID0+IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAgQ0xFQVJfUkVRVUVTVF9CT0RZX1ZBTFVFLFxuICAgIHBheWxvYWQ6IHsgcGF0aE1ldGhvZCB9XG4gIH1cbn1cbiIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImRlZmF1bHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfZXNjYXBlUmVnRXhwX2RjY2E1MTQwX19bXCJkZWZhdWx0XCJdOyB9IH0pOyIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IE9yZGVyZWRNYXAsIE1hcCwgTGlzdCB9IGZyb20gXCJpbW11dGFibGVcIlxuaW1wb3J0IGVzY2FwZVJlZ0V4cCBmcm9tIFwibG9kYXNoL2VzY2FwZVJlZ0V4cFwiXG5pbXBvcnQgY29uc3RhbnQgZnJvbSBcImxvZGFzaC9jb25zdGFudFwiXG5cbmltcG9ydCB7IGdldERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlIH0gZnJvbSBcIi4vY29tcG9uZW50cy9yZXF1ZXN0LWJvZHlcIlxuaW1wb3J0IHsgc3RyaW5naWZ5IH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuXG4vLyBIZWxwZXJzXG5cbmNvbnN0IG9ubHlPQVMzID1cbiAgKHNlbGVjdG9yKSA9PlxuICAoc3RhdGUsIC4uLmFyZ3MpID0+XG4gIChzeXN0ZW0pID0+IHtcbiAgICBpZiAoc3lzdGVtLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuaXNPQVMzKCkpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkVmFsdWUgPSBzZWxlY3RvcihzdGF0ZSwgLi4uYXJncylcbiAgICAgIHJldHVybiB0eXBlb2Ygc2VsZWN0ZWRWYWx1ZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgID8gc2VsZWN0ZWRWYWx1ZShzeXN0ZW0pXG4gICAgICAgIDogc2VsZWN0ZWRWYWx1ZVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgfVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVJlcXVlc3RCb2R5SXNSZXF1aXJlZChzZWxlY3Rvcikge1xuICByZXR1cm4gKC4uLmFyZ3MpID0+XG4gICAgKHN5c3RlbSkgPT4ge1xuICAgICAgY29uc3Qgc3BlY0pzb24gPSBzeXN0ZW0uZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpXG4gICAgICBjb25zdCBhcmdzTGlzdCA9IFsuLi5hcmdzXVxuICAgICAgLy8gZXhwZWN0IGFyZ3NMaXN0WzBdID0gc3RhdGVcbiAgICAgIGxldCBwYXRoTWV0aG9kID0gYXJnc0xpc3RbMV0gfHwgW11cbiAgICAgIGxldCBpc09hczNSZXF1ZXN0Qm9keVJlcXVpcmVkID0gc3BlY0pzb24uZ2V0SW4oW1xuICAgICAgICBcInBhdGhzXCIsXG4gICAgICAgIC4uLnBhdGhNZXRob2QsXG4gICAgICAgIFwicmVxdWVzdEJvZHlcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiLFxuICAgICAgXSlcblxuICAgICAgaWYgKGlzT2FzM1JlcXVlc3RCb2R5UmVxdWlyZWQpIHtcbiAgICAgICAgcmV0dXJuIHNlbGVjdG9yKC4uLmFyZ3MpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyB2YWxpZGF0aW9uIHBhc3MgYi9jIG5vdCByZXF1aXJlZFxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgIH1cbn1cblxuY29uc3QgdmFsaWRhdGVSZXF1ZXN0Qm9keVZhbHVlRXhpc3RzID0gKHN0YXRlLCBwYXRoTWV0aG9kKSA9PiB7XG4gIHBhdGhNZXRob2QgPSBwYXRoTWV0aG9kIHx8IFtdXG4gIGxldCBvYXMzUmVxdWVzdEJvZHlWYWx1ZSA9IHN0YXRlLmdldEluKFtcbiAgICBcInJlcXVlc3REYXRhXCIsXG4gICAgLi4ucGF0aE1ldGhvZCxcbiAgICBcImJvZHlWYWx1ZVwiLFxuICBdKVxuICAvLyBjb250ZXh0OiBib2R5VmFsdWUgY2FuIGJlIGEgU3RyaW5nLCBvciBhIE1hcFxuICBpZiAoIW9hczNSZXF1ZXN0Qm9keVZhbHVlKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgLy8gdmFsaWRhdGlvbiBwYXNzIGlmIFN0cmluZyBpcyBub3QgZW1wdHksIG9yIGlmIE1hcCBleGlzdHNcbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHNlbGVjdGVkU2VydmVyID0gb25seU9BUzMoKHN0YXRlLCBuYW1lc3BhY2UpID0+IHtcbiAgY29uc3QgcGF0aCA9IG5hbWVzcGFjZSA/IFtuYW1lc3BhY2UsIFwic2VsZWN0ZWRTZXJ2ZXJcIl0gOiBbXCJzZWxlY3RlZFNlcnZlclwiXVxuICByZXR1cm4gc3RhdGUuZ2V0SW4ocGF0aCkgfHwgXCJcIlxufSlcblxuZXhwb3J0IGNvbnN0IHJlcXVlc3RCb2R5VmFsdWUgPSBvbmx5T0FTMygoc3RhdGUsIHBhdGgsIG1ldGhvZCkgPT4ge1xuICByZXR1cm4gc3RhdGUuZ2V0SW4oW1wicmVxdWVzdERhdGFcIiwgcGF0aCwgbWV0aG9kLCBcImJvZHlWYWx1ZVwiXSkgfHwgbnVsbFxufSlcblxuZXhwb3J0IGNvbnN0IHNob3VsZFJldGFpblJlcXVlc3RCb2R5VmFsdWUgPSBvbmx5T0FTMygoc3RhdGUsIHBhdGgsIG1ldGhvZCkgPT4ge1xuICByZXR1cm4gc3RhdGUuZ2V0SW4oW1wicmVxdWVzdERhdGFcIiwgcGF0aCwgbWV0aG9kLCBcInJldGFpbkJvZHlWYWx1ZVwiXSkgfHwgZmFsc2Vcbn0pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3REZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZSA9XG4gIChzdGF0ZSwgcGF0aCwgbWV0aG9kKSA9PiAoc3lzdGVtKSA9PiB7XG4gICAgY29uc3QgeyBvYXMzU2VsZWN0b3JzLCBzcGVjU2VsZWN0b3JzLCBmbiB9ID0gc3lzdGVtLmdldFN5c3RlbSgpXG5cbiAgICBpZiAoc3BlY1NlbGVjdG9ycy5pc09BUzMoKSkge1xuICAgICAgY29uc3QgY3VycmVudE1lZGlhVHlwZSA9IG9hczNTZWxlY3RvcnMucmVxdWVzdENvbnRlbnRUeXBlKHBhdGgsIG1ldGhvZClcbiAgICAgIGlmIChjdXJyZW50TWVkaWFUeXBlKSB7XG4gICAgICAgIHJldHVybiBnZXREZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZShcbiAgICAgICAgICBzcGVjU2VsZWN0b3JzLnNwZWNSZXNvbHZlZFN1YnRyZWUoW1xuICAgICAgICAgICAgXCJwYXRoc1wiLFxuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICAgIFwicmVxdWVzdEJvZHlcIixcbiAgICAgICAgICBdKSxcbiAgICAgICAgICBjdXJyZW50TWVkaWFUeXBlLFxuICAgICAgICAgIG9hczNTZWxlY3RvcnMuYWN0aXZlRXhhbXBsZXNNZW1iZXIoXG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgXCJyZXF1ZXN0Qm9keVwiLFxuICAgICAgICAgICAgXCJyZXF1ZXN0Qm9keVwiXG4gICAgICAgICAgKSxcbiAgICAgICAgICBmblxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuZXhwb3J0IGNvbnN0IGhhc1VzZXJFZGl0ZWRCb2R5ID0gb25seU9BUzMoKHN0YXRlLCBwYXRoLCBtZXRob2QpID0+IChzeXN0ZW0pID0+IHtcbiAgY29uc3QgeyBvYXMzU2VsZWN0b3JzLCBzcGVjU2VsZWN0b3JzLCBmbiB9ID0gc3lzdGVtXG5cbiAgbGV0IHVzZXJIYXNFZGl0ZWRCb2R5ID0gZmFsc2VcbiAgY29uc3QgY3VycmVudE1lZGlhVHlwZSA9IG9hczNTZWxlY3RvcnMucmVxdWVzdENvbnRlbnRUeXBlKHBhdGgsIG1ldGhvZClcbiAgbGV0IHVzZXJFZGl0ZWRSZXF1ZXN0Qm9keSA9IG9hczNTZWxlY3RvcnMucmVxdWVzdEJvZHlWYWx1ZShwYXRoLCBtZXRob2QpXG4gIGNvbnN0IHJlcXVlc3RCb2R5ID0gc3BlY1NlbGVjdG9ycy5zcGVjUmVzb2x2ZWRTdWJ0cmVlKFtcbiAgICBcInBhdGhzXCIsXG4gICAgcGF0aCxcbiAgICBtZXRob2QsXG4gICAgXCJyZXF1ZXN0Qm9keVwiLFxuICBdKVxuXG4gIC8qKlxuICAgKiBUaGUgb25seSByZXF1ZXN0IGJvZHkgdGhhdCBjYW4gY3VycmVudGx5IGJlIGVkaXRlZCBpcyBmb3IgUGF0aCBJdGVtcyB0aGF0IGFyZSBkaXJlY3QgdmFsdWVzIG9mIE9wZW5BUEkucGF0aHMuXG4gICAqIFBhdGggSXRlbSBjb250YWluZWQgd2l0aGluIHRoZSBDYWxsYmFjayBPYmplY3Qgb3IgT3BlbkFQSS53ZWJob29rcyAoT3BlbkFQSSAzLjEuMCkgaGF2ZSBgVHJ5IGl0IG91dGBcbiAgICogZGlzYWJsZWQgYW5kIHRodXMgYm9keSBjYW5ub3QgYmUgZWRpdGVkLlxuICAgKi9cbiAgaWYgKCFyZXF1ZXN0Qm9keSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKE1hcC5pc01hcCh1c2VyRWRpdGVkUmVxdWVzdEJvZHkpKSB7XG4gICAgLy8gY29udGV4dCBpcyBub3QgYXBwbGljYXRpb24vanNvbiBtZWRpYS10eXBlXG4gICAgdXNlckVkaXRlZFJlcXVlc3RCb2R5ID0gc3RyaW5naWZ5KFxuICAgICAgdXNlckVkaXRlZFJlcXVlc3RCb2R5XG4gICAgICAgIC5tYXBFbnRyaWVzKChrdikgPT5cbiAgICAgICAgICBNYXAuaXNNYXAoa3ZbMV0pID8gW2t2WzBdLCBrdlsxXS5nZXQoXCJ2YWx1ZVwiKV0gOiBrdlxuICAgICAgICApXG4gICAgICAgIC50b0pTKClcbiAgICApXG4gIH1cbiAgaWYgKExpc3QuaXNMaXN0KHVzZXJFZGl0ZWRSZXF1ZXN0Qm9keSkpIHtcbiAgICB1c2VyRWRpdGVkUmVxdWVzdEJvZHkgPSBzdHJpbmdpZnkodXNlckVkaXRlZFJlcXVlc3RCb2R5KVxuICB9XG5cbiAgaWYgKGN1cnJlbnRNZWRpYVR5cGUpIHtcbiAgICBjb25zdCBjdXJyZW50TWVkaWFUeXBlRGVmYXVsdEJvZHlWYWx1ZSA9IGdldERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlKFxuICAgICAgcmVxdWVzdEJvZHksXG4gICAgICBjdXJyZW50TWVkaWFUeXBlLFxuICAgICAgb2FzM1NlbGVjdG9ycy5hY3RpdmVFeGFtcGxlc01lbWJlcihcbiAgICAgICAgcGF0aCxcbiAgICAgICAgbWV0aG9kLFxuICAgICAgICBcInJlcXVlc3RCb2R5XCIsXG4gICAgICAgIFwicmVxdWVzdEJvZHlcIlxuICAgICAgKSxcbiAgICAgIGZuXG4gICAgKVxuICAgIHVzZXJIYXNFZGl0ZWRCb2R5ID1cbiAgICAgICEhdXNlckVkaXRlZFJlcXVlc3RCb2R5ICYmXG4gICAgICB1c2VyRWRpdGVkUmVxdWVzdEJvZHkgIT09IGN1cnJlbnRNZWRpYVR5cGVEZWZhdWx0Qm9keVZhbHVlXG4gIH1cbiAgcmV0dXJuIHVzZXJIYXNFZGl0ZWRCb2R5XG59KVxuXG5leHBvcnQgY29uc3QgcmVxdWVzdEJvZHlJbmNsdXNpb25TZXR0aW5nID0gb25seU9BUzMoKHN0YXRlLCBwYXRoLCBtZXRob2QpID0+IHtcbiAgcmV0dXJuIHN0YXRlLmdldEluKFtcInJlcXVlc3REYXRhXCIsIHBhdGgsIG1ldGhvZCwgXCJib2R5SW5jbHVzaW9uXCJdKSB8fCBNYXAoKVxufSlcblxuZXhwb3J0IGNvbnN0IHJlcXVlc3RCb2R5RXJyb3JzID0gb25seU9BUzMoKHN0YXRlLCBwYXRoLCBtZXRob2QpID0+IHtcbiAgcmV0dXJuIHN0YXRlLmdldEluKFtcInJlcXVlc3REYXRhXCIsIHBhdGgsIG1ldGhvZCwgXCJlcnJvcnNcIl0pIHx8IG51bGxcbn0pXG5cbmV4cG9ydCBjb25zdCBhY3RpdmVFeGFtcGxlc01lbWJlciA9IG9ubHlPQVMzKFxuICAoc3RhdGUsIHBhdGgsIG1ldGhvZCwgdHlwZSwgbmFtZSkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBzdGF0ZS5nZXRJbihbXCJleGFtcGxlc1wiLCBwYXRoLCBtZXRob2QsIHR5cGUsIG5hbWUsIFwiYWN0aXZlRXhhbXBsZVwiXSkgfHxcbiAgICAgIG51bGxcbiAgICApXG4gIH1cbilcblxuZXhwb3J0IGNvbnN0IHJlcXVlc3RDb250ZW50VHlwZSA9IG9ubHlPQVMzKChzdGF0ZSwgcGF0aCwgbWV0aG9kKSA9PiB7XG4gIHJldHVybiAoXG4gICAgc3RhdGUuZ2V0SW4oW1wicmVxdWVzdERhdGFcIiwgcGF0aCwgbWV0aG9kLCBcInJlcXVlc3RDb250ZW50VHlwZVwiXSkgfHwgbnVsbFxuICApXG59KVxuXG5leHBvcnQgY29uc3QgcmVzcG9uc2VDb250ZW50VHlwZSA9IG9ubHlPQVMzKChzdGF0ZSwgcGF0aCwgbWV0aG9kKSA9PiB7XG4gIHJldHVybiAoXG4gICAgc3RhdGUuZ2V0SW4oW1wicmVxdWVzdERhdGFcIiwgcGF0aCwgbWV0aG9kLCBcInJlc3BvbnNlQ29udGVudFR5cGVcIl0pIHx8IG51bGxcbiAgKVxufSlcblxuZXhwb3J0IGNvbnN0IHNlcnZlclZhcmlhYmxlVmFsdWUgPSBvbmx5T0FTMygoc3RhdGUsIGxvY2F0aW9uRGF0YSwga2V5KSA9PiB7XG4gIGxldCBwYXRoXG5cbiAgLy8gbG9jYXRpb25EYXRhIG1heSB0YWtlIG9uZSBvZiB0d28gZm9ybXMsIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAvLyBPYmplY3Q6ICh7c2VydmVyLCBuYW1lc3BhY2U/fSkgb3IgU3RyaW5nOihzZXJ2ZXIpXG4gIGlmICh0eXBlb2YgbG9jYXRpb25EYXRhICE9PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgeyBzZXJ2ZXIsIG5hbWVzcGFjZSB9ID0gbG9jYXRpb25EYXRhXG4gICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgcGF0aCA9IFtuYW1lc3BhY2UsIFwic2VydmVyVmFyaWFibGVWYWx1ZXNcIiwgc2VydmVyLCBrZXldXG4gICAgfSBlbHNlIHtcbiAgICAgIHBhdGggPSBbXCJzZXJ2ZXJWYXJpYWJsZVZhbHVlc1wiLCBzZXJ2ZXIsIGtleV1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3Qgc2VydmVyID0gbG9jYXRpb25EYXRhXG4gICAgcGF0aCA9IFtcInNlcnZlclZhcmlhYmxlVmFsdWVzXCIsIHNlcnZlciwga2V5XVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlLmdldEluKHBhdGgpIHx8IG51bGxcbn0pXG5cbmV4cG9ydCBjb25zdCBzZXJ2ZXJWYXJpYWJsZXMgPSBvbmx5T0FTMygoc3RhdGUsIGxvY2F0aW9uRGF0YSkgPT4ge1xuICBsZXQgcGF0aFxuXG4gIC8vIGxvY2F0aW9uRGF0YSBtYXkgdGFrZSBvbmUgb2YgdHdvIGZvcm1zLCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgLy8gT2JqZWN0OiAoe3NlcnZlciwgbmFtZXNwYWNlP30pIG9yIFN0cmluZzooc2VydmVyKVxuICBpZiAodHlwZW9mIGxvY2F0aW9uRGF0YSAhPT0gXCJzdHJpbmdcIikge1xuICAgIGNvbnN0IHsgc2VydmVyLCBuYW1lc3BhY2UgfSA9IGxvY2F0aW9uRGF0YVxuICAgIGlmIChuYW1lc3BhY2UpIHtcbiAgICAgIHBhdGggPSBbbmFtZXNwYWNlLCBcInNlcnZlclZhcmlhYmxlVmFsdWVzXCIsIHNlcnZlcl1cbiAgICB9IGVsc2Uge1xuICAgICAgcGF0aCA9IFtcInNlcnZlclZhcmlhYmxlVmFsdWVzXCIsIHNlcnZlcl1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3Qgc2VydmVyID0gbG9jYXRpb25EYXRhXG4gICAgcGF0aCA9IFtcInNlcnZlclZhcmlhYmxlVmFsdWVzXCIsIHNlcnZlcl1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZS5nZXRJbihwYXRoKSB8fCBPcmRlcmVkTWFwKClcbn0pXG5cbmV4cG9ydCBjb25zdCBzZXJ2ZXJFZmZlY3RpdmVWYWx1ZSA9IG9ubHlPQVMzKChzdGF0ZSwgbG9jYXRpb25EYXRhKSA9PiB7XG4gIHZhciB2YXJWYWx1ZXMsIHNlcnZlclZhbHVlXG5cbiAgLy8gbG9jYXRpb25EYXRhIG1heSB0YWtlIG9uZSBvZiB0d28gZm9ybXMsIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAvLyBPYmplY3Q6ICh7c2VydmVyLCBuYW1lc3BhY2U/fSkgb3IgU3RyaW5nOihzZXJ2ZXIpXG4gIGlmICh0eXBlb2YgbG9jYXRpb25EYXRhICE9PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgeyBzZXJ2ZXIsIG5hbWVzcGFjZSB9ID0gbG9jYXRpb25EYXRhXG4gICAgc2VydmVyVmFsdWUgPSBzZXJ2ZXJcbiAgICBpZiAobmFtZXNwYWNlKSB7XG4gICAgICB2YXJWYWx1ZXMgPSBzdGF0ZS5nZXRJbihbbmFtZXNwYWNlLCBcInNlcnZlclZhcmlhYmxlVmFsdWVzXCIsIHNlcnZlclZhbHVlXSlcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyVmFsdWVzID0gc3RhdGUuZ2V0SW4oW1wic2VydmVyVmFyaWFibGVWYWx1ZXNcIiwgc2VydmVyVmFsdWVdKVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBzZXJ2ZXJWYWx1ZSA9IGxvY2F0aW9uRGF0YVxuICAgIHZhclZhbHVlcyA9IHN0YXRlLmdldEluKFtcInNlcnZlclZhcmlhYmxlVmFsdWVzXCIsIHNlcnZlclZhbHVlXSlcbiAgfVxuXG4gIHZhclZhbHVlcyA9IHZhclZhbHVlcyB8fCBPcmRlcmVkTWFwKClcbiAgbGV0IHN0ciA9IHNlcnZlclZhbHVlXG5cbiAgdmFyVmFsdWVzLm1hcCgodmFsLCBrZXkpID0+IHtcbiAgICBzdHIgPSBzdHIucmVwbGFjZShuZXcgUmVnRXhwKGB7JHtlc2NhcGVSZWdFeHAoa2V5KX19YCwgXCJnXCIpLCB2YWwpXG4gIH0pXG5cbiAgcmV0dXJuIHN0clxufSlcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlQmVmb3JlRXhlY3V0ZSA9IHZhbGlkYXRlUmVxdWVzdEJvZHlJc1JlcXVpcmVkKFxuICAoc3RhdGUsIHBhdGhNZXRob2QpID0+IHZhbGlkYXRlUmVxdWVzdEJvZHlWYWx1ZUV4aXN0cyhzdGF0ZSwgcGF0aE1ldGhvZClcbilcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlU2hhbGxvd1JlcXVpcmVkID0gKFxuICBzdGF0ZSxcbiAge1xuICAgIG9hczNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGUsXG4gICAgb2FzM1JlcXVlc3RDb250ZW50VHlwZSxcbiAgICBvYXMzUmVxdWVzdEJvZHlWYWx1ZSxcbiAgfVxuKSA9PiB7XG4gIGxldCBtaXNzaW5nUmVxdWlyZWRLZXlzID0gW11cbiAgLy8gY29udGV4dDoganNvbiA9PiBTdHJpbmc7IHVybGVuY29kZWQsIGZvcm0tZGF0YSA9PiBNYXBcbiAgaWYgKCFNYXAuaXNNYXAob2FzM1JlcXVlc3RCb2R5VmFsdWUpKSB7XG4gICAgcmV0dXJuIG1pc3NpbmdSZXF1aXJlZEtleXNcbiAgfVxuICBsZXQgcmVxdWlyZWRLZXlzID0gW11cbiAgLy8gQ3ljbGUgdGhyb3VnaCBsaXN0IG9mIHBvc3NpYmxlIGNvbnRlbnRUeXBlcyBmb3IgbWF0Y2hpbmcgY29udGVudFR5cGUgYW5kIGRlZmluZWQgcmVxdWlyZWRLZXlzXG4gIE9iamVjdC5rZXlzKG9hczNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGUucmVxdWVzdENvbnRlbnRUeXBlKS5mb3JFYWNoKFxuICAgIChjb250ZW50VHlwZSkgPT4ge1xuICAgICAgaWYgKGNvbnRlbnRUeXBlID09PSBvYXMzUmVxdWVzdENvbnRlbnRUeXBlKSB7XG4gICAgICAgIGxldCBjb250ZW50VHlwZVZhbCA9XG4gICAgICAgICAgb2FzM1JlcXVpcmVkUmVxdWVzdEJvZHlDb250ZW50VHlwZS5yZXF1ZXN0Q29udGVudFR5cGVbY29udGVudFR5cGVdXG4gICAgICAgIGNvbnRlbnRUeXBlVmFsLmZvckVhY2goKHJlcXVpcmVkS2V5KSA9PiB7XG4gICAgICAgICAgaWYgKHJlcXVpcmVkS2V5cy5pbmRleE9mKHJlcXVpcmVkS2V5KSA8IDApIHtcbiAgICAgICAgICAgIHJlcXVpcmVkS2V5cy5wdXNoKHJlcXVpcmVkS2V5KVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIClcbiAgcmVxdWlyZWRLZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGxldCByZXF1aXJlZEtleVZhbHVlID0gb2FzM1JlcXVlc3RCb2R5VmFsdWUuZ2V0SW4oW2tleSwgXCJ2YWx1ZVwiXSlcbiAgICBpZiAoIXJlcXVpcmVkS2V5VmFsdWUpIHtcbiAgICAgIG1pc3NpbmdSZXF1aXJlZEtleXMucHVzaChrZXkpXG4gICAgfVxuICB9KVxuICByZXR1cm4gbWlzc2luZ1JlcXVpcmVkS2V5c1xufVxuXG5leHBvcnQgY29uc3QgdmFsaWRPcGVyYXRpb25NZXRob2RzID0gY29uc3RhbnQoW1xuICBcImdldFwiLFxuICBcInB1dFwiLFxuICBcInBvc3RcIixcbiAgXCJkZWxldGVcIixcbiAgXCJvcHRpb25zXCIsXG4gIFwiaGVhZFwiLFxuICBcInBhdGNoXCIsXG4gIFwidHJhY2VcIixcbl0pXG4iLCJpbXBvcnQgeyBmcm9tSlMsIE1hcCB9IGZyb20gXCJpbW11dGFibGVcIlxuXG5pbXBvcnQge1xuICBVUERBVEVfU0VMRUNURURfU0VSVkVSLFxuICBVUERBVEVfUkVRVUVTVF9CT0RZX1ZBTFVFLFxuICBVUERBVEVfUkVRVUVTVF9CT0RZX0lOQ0xVU0lPTixcbiAgVVBEQVRFX0FDVElWRV9FWEFNUExFU19NRU1CRVIsXG4gIFVQREFURV9SRVFVRVNUX0NPTlRFTlRfVFlQRSxcbiAgVVBEQVRFX1NFUlZFUl9WQVJJQUJMRV9WQUxVRSxcbiAgVVBEQVRFX1JFU1BPTlNFX0NPTlRFTlRfVFlQRSxcbiAgU0VUX1JFUVVFU1RfQk9EWV9WQUxJREFURV9FUlJPUixcbiAgQ0xFQVJfUkVRVUVTVF9CT0RZX1ZBTElEQVRFX0VSUk9SLFxuICBDTEVBUl9SRVFVRVNUX0JPRFlfVkFMVUUsIFVQREFURV9SRVFVRVNUX0JPRFlfVkFMVUVfUkVUQUlOX0ZMQUcsXG59IGZyb20gXCIuL2FjdGlvbnNcIlxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIFtVUERBVEVfU0VMRUNURURfU0VSVkVSXTogKHN0YXRlLCB7IHBheWxvYWQ6IHsgc2VsZWN0ZWRTZXJ2ZXJVcmwsIG5hbWVzcGFjZSB9IH0gKSA9PntcbiAgICBjb25zdCBwYXRoID0gbmFtZXNwYWNlID8gWyBuYW1lc3BhY2UsIFwic2VsZWN0ZWRTZXJ2ZXJcIl0gOiBbIFwic2VsZWN0ZWRTZXJ2ZXJcIl1cbiAgICByZXR1cm4gc3RhdGUuc2V0SW4oIHBhdGgsIHNlbGVjdGVkU2VydmVyVXJsKVxuICB9LFxuICBbVVBEQVRFX1JFUVVFU1RfQk9EWV9WQUxVRV06IChzdGF0ZSwgeyBwYXlsb2FkOiB7IHZhbHVlLCBwYXRoTWV0aG9kIH0gfSApID0+e1xuICAgIGxldCBbcGF0aCwgbWV0aG9kXSA9IHBhdGhNZXRob2RcbiAgICBpZiAoIU1hcC5pc01hcCh2YWx1ZSkpIHtcbiAgICAgIC8vIGNvbnRleHQ6IGFwcGxpY2F0aW9uL2pzb24gaXMgYWx3YXlzIGEgU3RyaW5nIChpbnN0ZWFkIG9mIE1hcClcbiAgICAgIHJldHVybiBzdGF0ZS5zZXRJbiggWyBcInJlcXVlc3REYXRhXCIsIHBhdGgsIG1ldGhvZCwgXCJib2R5VmFsdWVcIiBdLCB2YWx1ZSlcbiAgICB9XG4gICAgbGV0IGN1cnJlbnRWYWwgPSBzdGF0ZS5nZXRJbihbXCJyZXF1ZXN0RGF0YVwiLCBwYXRoLCBtZXRob2QsIFwiYm9keVZhbHVlXCJdKSB8fCBNYXAoKVxuICAgIGlmICghTWFwLmlzTWFwKGN1cnJlbnRWYWwpKSB7XG4gICAgICAvLyBjb250ZXh0OiB1c2VyIHN3aXRjaCBmcm9tIGFwcGxpY2F0aW9uL2pzb24gdG8gYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXG4gICAgICBjdXJyZW50VmFsID0gTWFwKClcbiAgICB9XG4gICAgbGV0IG5ld1ZhbFxuICAgIGNvbnN0IFsuLi52YWx1ZUtleXNdID0gdmFsdWUua2V5cygpXG4gICAgdmFsdWVLZXlzLmZvckVhY2goKHZhbHVlS2V5KSA9PiB7XG4gICAgICBsZXQgdmFsdWVLZXlWYWwgPSB2YWx1ZS5nZXRJbihbdmFsdWVLZXldKVxuICAgICAgaWYgKCFjdXJyZW50VmFsLmhhcyh2YWx1ZUtleSkpIHtcbiAgICAgICAgbmV3VmFsID0gY3VycmVudFZhbC5zZXRJbihbdmFsdWVLZXksIFwidmFsdWVcIl0sIHZhbHVlS2V5VmFsKVxuICAgICAgfSBlbHNlIGlmICghTWFwLmlzTWFwKHZhbHVlS2V5VmFsKSkge1xuICAgICAgICAvLyBjb250ZXh0OiB1c2VyIGlucHV0IHdpbGwgYmUgcmVjZWl2ZWQgYXMgU3RyaW5nXG4gICAgICAgIG5ld1ZhbCA9IGN1cnJlbnRWYWwuc2V0SW4oW3ZhbHVlS2V5LCBcInZhbHVlXCJdLCB2YWx1ZUtleVZhbClcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiBzdGF0ZS5zZXRJbihbXCJyZXF1ZXN0RGF0YVwiLCBwYXRoLCBtZXRob2QsIFwiYm9keVZhbHVlXCJdLCBuZXdWYWwpXG4gIH0sXG4gIFtVUERBVEVfUkVRVUVTVF9CT0RZX1ZBTFVFX1JFVEFJTl9GTEFHXTogKHN0YXRlLCB7IHBheWxvYWQ6IHsgdmFsdWUsIHBhdGhNZXRob2QgfSB9ICkgPT57XG4gICAgbGV0IFtwYXRoLCBtZXRob2RdID0gcGF0aE1ldGhvZFxuICAgIHJldHVybiBzdGF0ZS5zZXRJbihbXCJyZXF1ZXN0RGF0YVwiLCBwYXRoLCBtZXRob2QsIFwicmV0YWluQm9keVZhbHVlXCJdLCB2YWx1ZSlcbiAgfSxcbiAgW1VQREFURV9SRVFVRVNUX0JPRFlfSU5DTFVTSU9OXTogKHN0YXRlLCB7IHBheWxvYWQ6IHsgdmFsdWUsIHBhdGhNZXRob2QsIG5hbWUgfSB9ICkgPT57XG4gICAgbGV0IFtwYXRoLCBtZXRob2RdID0gcGF0aE1ldGhvZFxuICAgIHJldHVybiBzdGF0ZS5zZXRJbiggWyBcInJlcXVlc3REYXRhXCIsIHBhdGgsIG1ldGhvZCwgXCJib2R5SW5jbHVzaW9uXCIsIG5hbWUgXSwgdmFsdWUpXG4gIH0sXG4gIFtVUERBVEVfQUNUSVZFX0VYQU1QTEVTX01FTUJFUl06IChzdGF0ZSwgeyBwYXlsb2FkOiB7IG5hbWUsIHBhdGhNZXRob2QsIGNvbnRleHRUeXBlLCBjb250ZXh0TmFtZSB9IH0gKSA9PntcbiAgICBsZXQgW3BhdGgsIG1ldGhvZF0gPSBwYXRoTWV0aG9kXG4gICAgcmV0dXJuIHN0YXRlLnNldEluKCBbIFwiZXhhbXBsZXNcIiwgcGF0aCwgbWV0aG9kLCBjb250ZXh0VHlwZSwgY29udGV4dE5hbWUsIFwiYWN0aXZlRXhhbXBsZVwiIF0sIG5hbWUpXG4gIH0sXG4gIFtVUERBVEVfUkVRVUVTVF9DT05URU5UX1RZUEVdOiAoc3RhdGUsIHsgcGF5bG9hZDogeyB2YWx1ZSwgcGF0aE1ldGhvZCB9IH0gKSA9PntcbiAgICBsZXQgW3BhdGgsIG1ldGhvZF0gPSBwYXRoTWV0aG9kXG4gICAgcmV0dXJuIHN0YXRlLnNldEluKCBbIFwicmVxdWVzdERhdGFcIiwgcGF0aCwgbWV0aG9kLCBcInJlcXVlc3RDb250ZW50VHlwZVwiIF0sIHZhbHVlKVxuICB9LFxuICBbVVBEQVRFX1JFU1BPTlNFX0NPTlRFTlRfVFlQRV06IChzdGF0ZSwgeyBwYXlsb2FkOiB7IHZhbHVlLCBwYXRoLCBtZXRob2QgfSB9ICkgPT57XG4gICAgcmV0dXJuIHN0YXRlLnNldEluKCBbIFwicmVxdWVzdERhdGFcIiwgcGF0aCwgbWV0aG9kLCBcInJlc3BvbnNlQ29udGVudFR5cGVcIiBdLCB2YWx1ZSlcbiAgfSxcbiAgW1VQREFURV9TRVJWRVJfVkFSSUFCTEVfVkFMVUVdOiAoc3RhdGUsIHsgcGF5bG9hZDogeyBzZXJ2ZXIsIG5hbWVzcGFjZSwga2V5LCB2YWwgfSB9ICkgPT57XG4gICAgY29uc3QgcGF0aCA9IG5hbWVzcGFjZSA/IFsgbmFtZXNwYWNlLCBcInNlcnZlclZhcmlhYmxlVmFsdWVzXCIsIHNlcnZlciwga2V5IF0gOiBbIFwic2VydmVyVmFyaWFibGVWYWx1ZXNcIiwgc2VydmVyLCBrZXkgXVxuICAgIHJldHVybiBzdGF0ZS5zZXRJbihwYXRoLCB2YWwpXG4gIH0sXG4gIFtTRVRfUkVRVUVTVF9CT0RZX1ZBTElEQVRFX0VSUk9SXTogKHN0YXRlLCB7IHBheWxvYWQ6IHsgcGF0aCwgbWV0aG9kLCB2YWxpZGF0aW9uRXJyb3JzIH0gfSApID0+IHtcbiAgICBsZXQgZXJyb3JzID0gW11cbiAgICBlcnJvcnMucHVzaChcIlJlcXVpcmVkIGZpZWxkIGlzIG5vdCBwcm92aWRlZFwiKVxuICAgIGlmICh2YWxpZGF0aW9uRXJyb3JzLm1pc3NpbmdCb2R5VmFsdWUpIHtcbiAgICAgIC8vIGNvbnRleHQ6IGlzIGFwcGxpY2F0aW9uL2pzb24gb3IgYXBwbGljYXRpb24veG1sLCB3aGVyZSB0eXBlb2YgKG1pc3NpbmcpIGJvZHlWYWx1ZSA9IFN0cmluZ1xuICAgICAgcmV0dXJuIHN0YXRlLnNldEluKFtcInJlcXVlc3REYXRhXCIsIHBhdGgsIG1ldGhvZCwgXCJlcnJvcnNcIl0sIGZyb21KUyhlcnJvcnMpKVxuICAgIH1cbiAgICBpZiAodmFsaWRhdGlvbkVycm9ycy5taXNzaW5nUmVxdWlyZWRLZXlzICYmIHZhbGlkYXRpb25FcnJvcnMubWlzc2luZ1JlcXVpcmVkS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBjb250ZXh0OiBpcyBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQsIHdpdGggbGlzdCBvZiBtaXNzaW5nIGtleXNcbiAgICAgIGNvbnN0IHsgbWlzc2luZ1JlcXVpcmVkS2V5cyB9ID0gdmFsaWRhdGlvbkVycm9yc1xuICAgICAgcmV0dXJuIHN0YXRlLnVwZGF0ZUluKFtcInJlcXVlc3REYXRhXCIsIHBhdGgsIG1ldGhvZCwgXCJib2R5VmFsdWVcIl0sIGZyb21KUyh7fSksIG1pc3NpbmdLZXlWYWx1ZXMgPT4ge1xuICAgICAgICByZXR1cm4gbWlzc2luZ1JlcXVpcmVkS2V5cy5yZWR1Y2UoKGJvZHlWYWx1ZSwgY3VycmVudE1pc3NpbmdLZXkpID0+IHtcbiAgICAgICAgICByZXR1cm4gYm9keVZhbHVlLnNldEluKFtjdXJyZW50TWlzc2luZ0tleSwgXCJlcnJvcnNcIl0sIGZyb21KUyhlcnJvcnMpKVxuICAgICAgICB9LCBtaXNzaW5nS2V5VmFsdWVzKVxuICAgICAgfSlcbiAgICB9XG4gICAgY29uc29sZS53YXJuKFwidW5leHBlY3RlZCByZXN1bHQ6IFNFVF9SRVFVRVNUX0JPRFlfVkFMSURBVEVfRVJST1JcIilcbiAgICByZXR1cm4gc3RhdGVcbiAgfSxcbiAgW0NMRUFSX1JFUVVFU1RfQk9EWV9WQUxJREFURV9FUlJPUl06IChzdGF0ZSwgeyBwYXlsb2FkOiB7IHBhdGgsIG1ldGhvZCB9IH0pID0+IHtcbiAgICBjb25zdCByZXF1ZXN0Qm9keVZhbHVlID0gc3RhdGUuZ2V0SW4oW1wicmVxdWVzdERhdGFcIiwgcGF0aCwgbWV0aG9kLCBcImJvZHlWYWx1ZVwiXSlcbiAgICBpZiAoIU1hcC5pc01hcChyZXF1ZXN0Qm9keVZhbHVlKSkge1xuICAgICAgcmV0dXJuIHN0YXRlLnNldEluKFtcInJlcXVlc3REYXRhXCIsIHBhdGgsIG1ldGhvZCwgXCJlcnJvcnNcIl0sIGZyb21KUyhbXSkpXG4gICAgfVxuICAgIGNvbnN0IFsuLi52YWx1ZUtleXNdID0gcmVxdWVzdEJvZHlWYWx1ZS5rZXlzKClcbiAgICBpZiAoIXZhbHVlS2V5cykge1xuICAgICAgcmV0dXJuIHN0YXRlXG4gICAgfVxuICAgIHJldHVybiBzdGF0ZS51cGRhdGVJbihbXCJyZXF1ZXN0RGF0YVwiLCBwYXRoLCBtZXRob2QsIFwiYm9keVZhbHVlXCJdLCBmcm9tSlMoe30pLCBib2R5VmFsdWVzID0+IHtcbiAgICAgIHJldHVybiB2YWx1ZUtleXMucmVkdWNlKChib2R5VmFsdWUsIGN1cnIpID0+IHtcbiAgICAgICAgcmV0dXJuIGJvZHlWYWx1ZS5zZXRJbihbY3VyciwgXCJlcnJvcnNcIl0sIGZyb21KUyhbXSkpXG4gICAgICB9LCBib2R5VmFsdWVzKVxuICAgIH0pXG4gIH0sXG4gIFtDTEVBUl9SRVFVRVNUX0JPRFlfVkFMVUVdOiAoc3RhdGUsIHsgcGF5bG9hZDogeyBwYXRoTWV0aG9kIH19KSA9PiB7XG4gICAgbGV0IFtwYXRoLCBtZXRob2RdID0gcGF0aE1ldGhvZFxuICAgIGNvbnN0IHJlcXVlc3RCb2R5VmFsdWUgPSBzdGF0ZS5nZXRJbihbXCJyZXF1ZXN0RGF0YVwiLCBwYXRoLCBtZXRob2QsIFwiYm9keVZhbHVlXCJdKVxuICAgIGlmICghcmVxdWVzdEJvZHlWYWx1ZSkge1xuICAgICAgcmV0dXJuIHN0YXRlXG4gICAgfVxuICAgIGlmICghTWFwLmlzTWFwKHJlcXVlc3RCb2R5VmFsdWUpKSB7XG4gICAgICByZXR1cm4gc3RhdGUuc2V0SW4oW1wicmVxdWVzdERhdGFcIiwgcGF0aCwgbWV0aG9kLCBcImJvZHlWYWx1ZVwiXSwgXCJcIilcbiAgICB9XG4gICAgcmV0dXJuIHN0YXRlLnNldEluKFtcInJlcXVlc3REYXRhXCIsIHBhdGgsIG1ldGhvZCwgXCJib2R5VmFsdWVcIl0sIE1hcCgpKVxuICB9XG59XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgKiBhcyBzcGVjV3JhcFNlbGVjdG9ycyBmcm9tIFwiLi9zcGVjLWV4dGVuc2lvbnMvd3JhcC1zZWxlY3RvcnNcIlxuaW1wb3J0ICogYXMgYXV0aFdyYXBTZWxlY3RvcnMgZnJvbSBcIi4vYXV0aC1leHRlbnNpb25zL3dyYXAtc2VsZWN0b3JzXCJcbmltcG9ydCAqIGFzIHNwZWNTZWxlY3RvcnMgZnJvbSBcIi4vc3BlYy1leHRlbnNpb25zL3NlbGVjdG9yc1wiXG5pbXBvcnQgY29tcG9uZW50cyBmcm9tIFwiLi9jb21wb25lbnRzXCJcbmltcG9ydCB3cmFwQ29tcG9uZW50cyBmcm9tIFwiLi93cmFwLWNvbXBvbmVudHNcIlxuaW1wb3J0ICogYXMgYWN0aW9ucyBmcm9tIFwiLi9hY3Rpb25zXCJcbmltcG9ydCAqIGFzIHNlbGVjdG9ycyBmcm9tIFwiLi9zZWxlY3RvcnNcIlxuaW1wb3J0IHJlZHVjZXJzIGZyb20gXCIuL3JlZHVjZXJzXCJcbmltcG9ydCB7IG1ha2VJc0ZpbGVVcGxvYWRJbnRlbmRlZCB9IGZyb20gXCIuL2ZuXCJcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKHsgZ2V0U3lzdGVtIH0pIHtcbiAgY29uc3QgaXNGaWxlVXBsb2FkSW50ZW5kZWQgPSBtYWtlSXNGaWxlVXBsb2FkSW50ZW5kZWQoZ2V0U3lzdGVtKVxuXG4gIHJldHVybiB7XG4gICAgY29tcG9uZW50cyxcbiAgICB3cmFwQ29tcG9uZW50cyxcbiAgICBzdGF0ZVBsdWdpbnM6IHtcbiAgICAgIHNwZWM6IHtcbiAgICAgICAgd3JhcFNlbGVjdG9yczogc3BlY1dyYXBTZWxlY3RvcnMsXG4gICAgICAgIHNlbGVjdG9yczogc3BlY1NlbGVjdG9ycyxcbiAgICAgIH0sXG4gICAgICBhdXRoOiB7XG4gICAgICAgIHdyYXBTZWxlY3RvcnM6IGF1dGhXcmFwU2VsZWN0b3JzLFxuICAgICAgfSxcbiAgICAgIG9hczM6IHtcbiAgICAgICAgYWN0aW9uczogeyAuLi5hY3Rpb25zIH0sXG4gICAgICAgIHJlZHVjZXJzLFxuICAgICAgICBzZWxlY3RvcnM6IHsgLi4uc2VsZWN0b3JzIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgZm46IHtcbiAgICAgIGlzRmlsZVVwbG9hZEludGVuZGVkLFxuICAgICAgaXNGaWxlVXBsb2FkSW50ZW5kZWRPQVMzMDogaXNGaWxlVXBsb2FkSW50ZW5kZWQsXG4gICAgfSxcbiAgfVxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgTWFwIH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tIFwibG9kYXNoL2lzUGxhaW5PYmplY3RcIlxuXG5leHBvcnQgY29uc3QgbWFrZUlzRmlsZVVwbG9hZEludGVuZGVkID0gKGdldFN5c3RlbSkgPT4ge1xuICBjb25zdCBpc0ZpbGVVcGxvYWRJbnRlbmRlZCA9IChzY2hlbWEsIG1lZGlhVHlwZSA9IG51bGwpID0+IHtcbiAgICBjb25zdCB7IGdldENvbmZpZ3MsIGZuIH0gPSBnZXRTeXN0ZW0oKVxuICAgIGNvbnN0IHsgZmlsZVVwbG9hZE1lZGlhVHlwZXMgfSA9IGdldENvbmZpZ3MoKVxuICAgIGNvbnN0IGlzRmlsZVVwbG9hZE1lZGlhVHlwZSA9XG4gICAgICB0eXBlb2YgbWVkaWFUeXBlID09PSBcInN0cmluZ1wiICYmXG4gICAgICBmaWxlVXBsb2FkTWVkaWFUeXBlcy5zb21lKChmaWxlVXBsb2FkTWVkaWFUeXBlKSA9PlxuICAgICAgICBtZWRpYVR5cGUuc3RhcnRzV2l0aChmaWxlVXBsb2FkTWVkaWFUeXBlKVxuICAgICAgKVxuXG4gICAgaWYgKGlzRmlsZVVwbG9hZE1lZGlhVHlwZSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBjb25zdCBpc1NjaGVtYUltbXV0YWJsZSA9IE1hcC5pc01hcChzY2hlbWEpXG5cbiAgICBpZiAoIWlzU2NoZW1hSW1tdXRhYmxlICYmICFpc1BsYWluT2JqZWN0KHNjaGVtYSkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGNvbnN0IGZvcm1hdCA9IGlzU2NoZW1hSW1tdXRhYmxlID8gc2NoZW1hLmdldChcImZvcm1hdFwiKSA6IHNjaGVtYS5mb3JtYXRcblxuICAgIHJldHVybiAoXG4gICAgICBmbi5oYXNTY2hlbWFUeXBlKHNjaGVtYSwgXCJzdHJpbmdcIikgJiYgW1wiYmluYXJ5XCIsIFwiYnl0ZVwiXS5pbmNsdWRlcyhmb3JtYXQpXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIGlzRmlsZVVwbG9hZEludGVuZGVkXG59XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHsgTGlzdCB9IGZyb20gXCJpbW11dGFibGVcIlxuXG5jb25zdCBXZWJob29rcyA9ICh7IHNwZWNTZWxlY3RvcnMsIGdldENvbXBvbmVudCB9KSA9PiB7XG4gIGNvbnN0IG9wZXJhdGlvbkRUT3MgPSBzcGVjU2VsZWN0b3JzLnNlbGVjdFdlYmhvb2tzT3BlcmF0aW9ucygpXG4gIGNvbnN0IHBhdGhJdGVtTmFtZXMgPSBPYmplY3Qua2V5cyhvcGVyYXRpb25EVE9zKVxuXG4gIGNvbnN0IE9wZXJhdGlvbkNvbnRhaW5lciA9IGdldENvbXBvbmVudChcIk9wZXJhdGlvbkNvbnRhaW5lclwiLCB0cnVlKVxuXG4gIGlmIChwYXRoSXRlbU5hbWVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwid2ViaG9va3NcIj5cbiAgICAgIDxoMj5XZWJob29rczwvaDI+XG5cbiAgICAgIHtwYXRoSXRlbU5hbWVzLm1hcCgocGF0aEl0ZW1OYW1lKSA9PiAoXG4gICAgICAgIDxkaXYga2V5PXtgJHtwYXRoSXRlbU5hbWV9LXdlYmhvb2tgfT5cbiAgICAgICAgICB7b3BlcmF0aW9uRFRPc1twYXRoSXRlbU5hbWVdLm1hcCgob3BlcmF0aW9uRFRPKSA9PiAoXG4gICAgICAgICAgICA8T3BlcmF0aW9uQ29udGFpbmVyXG4gICAgICAgICAgICAgIGtleT17YCR7cGF0aEl0ZW1OYW1lfS0ke29wZXJhdGlvbkRUTy5tZXRob2R9LXdlYmhvb2tgfVxuICAgICAgICAgICAgICBvcD17b3BlcmF0aW9uRFRPLm9wZXJhdGlvbn1cbiAgICAgICAgICAgICAgdGFnPVwid2ViaG9va3NcIlxuICAgICAgICAgICAgICBtZXRob2Q9e29wZXJhdGlvbkRUTy5tZXRob2R9XG4gICAgICAgICAgICAgIHBhdGg9e3BhdGhJdGVtTmFtZX1cbiAgICAgICAgICAgICAgc3BlY1BhdGg9e0xpc3Qob3BlcmF0aW9uRFRPLnNwZWNQYXRoKX1cbiAgICAgICAgICAgICAgYWxsb3dUcnlJdE91dD17ZmFsc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICkpfVxuICAgIDwvZGl2PlxuICApXG59XG5cbldlYmhvb2tzLnByb3BUeXBlcyA9IHtcbiAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBzZWxlY3RXZWJob29rc09wZXJhdGlvbnM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIH0pLmlzUmVxdWlyZWQsXG4gIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgV2ViaG9va3NcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmltcG9ydCB7IHNhbml0aXplVXJsIH0gZnJvbSBcImNvcmUvdXRpbHMvdXJsXCJcblxuY29uc3QgTGljZW5zZSA9ICh7IGdldENvbXBvbmVudCwgc3BlY1NlbGVjdG9ycyB9KSA9PiB7XG4gIGNvbnN0IG5hbWUgPSBzcGVjU2VsZWN0b3JzLnNlbGVjdExpY2Vuc2VOYW1lRmllbGQoKVxuICBjb25zdCB1cmwgPSBzcGVjU2VsZWN0b3JzLnNlbGVjdExpY2Vuc2VVcmwoKVxuXG4gIGNvbnN0IExpbmsgPSBnZXRDb21wb25lbnQoXCJMaW5rXCIpXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9fX2xpY2Vuc2VcIj5cbiAgICAgIHt1cmwgPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb19fbGljZW5zZV9fdXJsXCI+XG4gICAgICAgICAgPExpbmsgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17c2FuaXRpemVVcmwodXJsKX0+XG4gICAgICAgICAgICB7bmFtZX1cbiAgICAgICAgICA8L0xpbms+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSA6IChcbiAgICAgICAgPHNwYW4+e25hbWV9PC9zcGFuPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5MaWNlbnNlLnByb3BUeXBlcyA9IHtcbiAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIHNlbGVjdExpY2Vuc2VOYW1lRmllbGQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2VsZWN0TGljZW5zZVVybDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgfSkuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgTGljZW5zZVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuaW1wb3J0IHsgc2FuaXRpemVVcmwgfSBmcm9tIFwiY29yZS91dGlscy91cmxcIlxuXG5jb25zdCBDb250YWN0ID0gKHsgZ2V0Q29tcG9uZW50LCBzcGVjU2VsZWN0b3JzIH0pID0+IHtcbiAgY29uc3QgbmFtZSA9IHNwZWNTZWxlY3RvcnMuc2VsZWN0Q29udGFjdE5hbWVGaWVsZCgpXG4gIGNvbnN0IHVybCA9IHNwZWNTZWxlY3RvcnMuc2VsZWN0Q29udGFjdFVybCgpXG4gIGNvbnN0IGVtYWlsID0gc3BlY1NlbGVjdG9ycy5zZWxlY3RDb250YWN0RW1haWxGaWVsZCgpXG5cbiAgY29uc3QgTGluayA9IGdldENvbXBvbmVudChcIkxpbmtcIilcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb19fY29udGFjdFwiPlxuICAgICAge3VybCAmJiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPExpbmsgaHJlZj17c2FuaXRpemVVcmwodXJsKX0gdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgICB7bmFtZX0gLSBXZWJzaXRlXG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgICB7ZW1haWwgJiYgKFxuICAgICAgICA8TGluayBocmVmPXtzYW5pdGl6ZVVybChgbWFpbHRvOiR7ZW1haWx9YCl9PlxuICAgICAgICAgIHt1cmwgPyBgU2VuZCBlbWFpbCB0byAke25hbWV9YCA6IGBDb250YWN0ICR7bmFtZX1gfVxuICAgICAgICA8L0xpbms+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApXG59XG5cbkNvbnRhY3QucHJvcFR5cGVzID0ge1xuICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgc2VsZWN0Q29udGFjdE5hbWVGaWVsZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzZWxlY3RDb250YWN0VXJsOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNlbGVjdENvbnRhY3RFbWFpbEZpZWxkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB9KS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBDb250YWN0XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5pbXBvcnQgeyBzYW5pdGl6ZVVybCB9IGZyb20gXCJjb3JlL3V0aWxzL3VybFwiXG5cbmNvbnN0IEluZm8gPSAoeyBnZXRDb21wb25lbnQsIHNwZWNTZWxlY3RvcnMgfSkgPT4ge1xuICBjb25zdCB2ZXJzaW9uID0gc3BlY1NlbGVjdG9ycy52ZXJzaW9uKClcbiAgY29uc3QgdXJsID0gc3BlY1NlbGVjdG9ycy51cmwoKVxuICBjb25zdCBiYXNlUGF0aCA9IHNwZWNTZWxlY3RvcnMuYmFzZVBhdGgoKVxuICBjb25zdCBob3N0ID0gc3BlY1NlbGVjdG9ycy5ob3N0KClcbiAgY29uc3Qgc3VtbWFyeSA9IHNwZWNTZWxlY3RvcnMuc2VsZWN0SW5mb1N1bW1hcnlGaWVsZCgpXG4gIGNvbnN0IGRlc2NyaXB0aW9uID0gc3BlY1NlbGVjdG9ycy5zZWxlY3RJbmZvRGVzY3JpcHRpb25GaWVsZCgpXG4gIGNvbnN0IHRpdGxlID0gc3BlY1NlbGVjdG9ycy5zZWxlY3RJbmZvVGl0bGVGaWVsZCgpXG4gIGNvbnN0IHRlcm1zT2ZTZXJ2aWNlVXJsID0gc3BlY1NlbGVjdG9ycy5zZWxlY3RJbmZvVGVybXNPZlNlcnZpY2VVcmwoKVxuICBjb25zdCBleHRlcm5hbERvY3NVcmwgPSBzcGVjU2VsZWN0b3JzLnNlbGVjdEV4dGVybmFsRG9jc1VybCgpXG4gIGNvbnN0IGV4dGVybmFsRG9jc0Rlc2MgPSBzcGVjU2VsZWN0b3JzLnNlbGVjdEV4dGVybmFsRG9jc0Rlc2NyaXB0aW9uRmllbGQoKVxuICBjb25zdCBjb250YWN0ID0gc3BlY1NlbGVjdG9ycy5jb250YWN0KClcbiAgY29uc3QgbGljZW5zZSA9IHNwZWNTZWxlY3RvcnMubGljZW5zZSgpXG5cbiAgY29uc3QgTWFya2Rvd24gPSBnZXRDb21wb25lbnQoXCJNYXJrZG93blwiLCB0cnVlKVxuICBjb25zdCBMaW5rID0gZ2V0Q29tcG9uZW50KFwiTGlua1wiKVxuICBjb25zdCBWZXJzaW9uU3RhbXAgPSBnZXRDb21wb25lbnQoXCJWZXJzaW9uU3RhbXBcIilcbiAgY29uc3QgT3BlbkFQSVZlcnNpb24gPSBnZXRDb21wb25lbnQoXCJPcGVuQVBJVmVyc2lvblwiKVxuICBjb25zdCBJbmZvVXJsID0gZ2V0Q29tcG9uZW50KFwiSW5mb1VybFwiKVxuICBjb25zdCBJbmZvQmFzZVBhdGggPSBnZXRDb21wb25lbnQoXCJJbmZvQmFzZVBhdGhcIilcbiAgY29uc3QgTGljZW5zZSA9IGdldENvbXBvbmVudChcIkxpY2Vuc2VcIiwgdHJ1ZSlcbiAgY29uc3QgQ29udGFjdCA9IGdldENvbXBvbmVudChcIkNvbnRhY3RcIiwgdHJ1ZSlcbiAgY29uc3QgSnNvblNjaGVtYURpYWxlY3QgPSBnZXRDb21wb25lbnQoXCJKc29uU2NoZW1hRGlhbGVjdFwiLCB0cnVlKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XG4gICAgICA8aGdyb3VwIGNsYXNzTmFtZT1cIm1haW5cIj5cbiAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRpdGxlXCI+XG4gICAgICAgICAge3RpdGxlfVxuICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAge3ZlcnNpb24gJiYgPFZlcnNpb25TdGFtcCB2ZXJzaW9uPXt2ZXJzaW9ufSAvPn1cbiAgICAgICAgICAgIDxPcGVuQVBJVmVyc2lvbiBvYXNWZXJzaW9uPVwiMy4xXCIgLz5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvaDI+XG5cbiAgICAgICAgeyhob3N0IHx8IGJhc2VQYXRoKSAmJiA8SW5mb0Jhc2VQYXRoIGhvc3Q9e2hvc3R9IGJhc2VQYXRoPXtiYXNlUGF0aH0gLz59XG4gICAgICAgIHt1cmwgJiYgPEluZm9VcmwgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9IHVybD17dXJsfSAvPn1cbiAgICAgIDwvaGdyb3VwPlxuXG4gICAgICB7c3VtbWFyeSAmJiA8cCBjbGFzc05hbWU9XCJpbmZvX19zdW1tYXJ5XCI+e3N1bW1hcnl9PC9wPn1cblxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvX19kZXNjcmlwdGlvbiBkZXNjcmlwdGlvblwiPlxuICAgICAgICA8TWFya2Rvd24gc291cmNlPXtkZXNjcmlwdGlvbn0gLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7dGVybXNPZlNlcnZpY2VVcmwgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9fX3Rvc1wiPlxuICAgICAgICAgIDxMaW5rIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9e3Nhbml0aXplVXJsKHRlcm1zT2ZTZXJ2aWNlVXJsKX0+XG4gICAgICAgICAgICBUZXJtcyBvZiBzZXJ2aWNlXG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG5cbiAgICAgIHtjb250YWN0LnNpemUgPiAwICYmIDxDb250YWN0IC8+fVxuXG4gICAgICB7bGljZW5zZS5zaXplID4gMCAmJiA8TGljZW5zZSAvPn1cblxuICAgICAge2V4dGVybmFsRG9jc1VybCAmJiAoXG4gICAgICAgIDxMaW5rXG4gICAgICAgICAgY2xhc3NOYW1lPVwiaW5mb19fZXh0ZG9jc1wiXG4gICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICBocmVmPXtzYW5pdGl6ZVVybChleHRlcm5hbERvY3NVcmwpfVxuICAgICAgICA+XG4gICAgICAgICAge2V4dGVybmFsRG9jc0Rlc2MgfHwgZXh0ZXJuYWxEb2NzVXJsfVxuICAgICAgICA8L0xpbms+XG4gICAgICApfVxuXG4gICAgICA8SnNvblNjaGVtYURpYWxlY3QgLz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5JbmZvLnByb3BUeXBlcyA9IHtcbiAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIHZlcnNpb246IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXJsOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGJhc2VQYXRoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGhvc3Q6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2VsZWN0SW5mb1N1bW1hcnlGaWVsZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzZWxlY3RJbmZvRGVzY3JpcHRpb25GaWVsZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzZWxlY3RJbmZvVGl0bGVGaWVsZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzZWxlY3RJbmZvVGVybXNPZlNlcnZpY2VVcmw6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2VsZWN0RXh0ZXJuYWxEb2NzVXJsOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNlbGVjdEV4dGVybmFsRG9jc0Rlc2NyaXB0aW9uRmllbGQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgY29udGFjdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBsaWNlbnNlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB9KS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBJbmZvXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmltcG9ydCB7IHNhbml0aXplVXJsIH0gZnJvbSBcImNvcmUvdXRpbHMvdXJsXCJcblxuY29uc3QgSnNvblNjaGVtYURpYWxlY3QgPSAoeyBnZXRDb21wb25lbnQsIHNwZWNTZWxlY3RvcnMgfSkgPT4ge1xuICBjb25zdCBqc29uU2NoZW1hRGlhbGVjdCA9IHNwZWNTZWxlY3RvcnMuc2VsZWN0SnNvblNjaGVtYURpYWxlY3RGaWVsZCgpXG4gIGNvbnN0IGpzb25TY2hlbWFEaWFsZWN0RGVmYXVsdCA9IHNwZWNTZWxlY3RvcnMuc2VsZWN0SnNvblNjaGVtYURpYWxlY3REZWZhdWx0KCkgLy8gcHJldHRpZXItaWdub3JlXG5cbiAgY29uc3QgTGluayA9IGdldENvbXBvbmVudChcIkxpbmtcIilcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7anNvblNjaGVtYURpYWxlY3QgJiYganNvblNjaGVtYURpYWxlY3QgPT09IGpzb25TY2hlbWFEaWFsZWN0RGVmYXVsdCAmJiAoXG4gICAgICAgIDxwIGNsYXNzTmFtZT1cImluZm9fX2pzb25zY2hlbWFkaWFsZWN0XCI+XG4gICAgICAgICAgSlNPTiBTY2hlbWEgZGlhbGVjdDp7XCIgXCJ9XG4gICAgICAgICAgPExpbmsgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17c2FuaXRpemVVcmwoanNvblNjaGVtYURpYWxlY3QpfT5cbiAgICAgICAgICAgIHtqc29uU2NoZW1hRGlhbGVjdH1cbiAgICAgICAgICA8L0xpbms+XG4gICAgICAgIDwvcD5cbiAgICAgICl9XG5cbiAgICAgIHtqc29uU2NoZW1hRGlhbGVjdCAmJiBqc29uU2NoZW1hRGlhbGVjdCAhPT0ganNvblNjaGVtYURpYWxlY3REZWZhdWx0ICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJlcnJvci13cmFwcGVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuby1tYXJnaW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXJyb3JzXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXJyb3JzLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyXCI+V2FybmluZzwvaDQ+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwibWVzc2FnZVwiPlxuICAgICAgICAgICAgICAgICAgPHN0cm9uZz5PcGVuQVBJLmpzb25TY2hlbWFEaWFsZWN0PC9zdHJvbmc+IGZpZWxkIGNvbnRhaW5zIGFcbiAgICAgICAgICAgICAgICAgIHZhbHVlIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IHZhbHVlIG9me1wiIFwifVxuICAgICAgICAgICAgICAgICAgPExpbmsgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17anNvblNjaGVtYURpYWxlY3REZWZhdWx0fT5cbiAgICAgICAgICAgICAgICAgICAge2pzb25TY2hlbWFEaWFsZWN0RGVmYXVsdH1cbiAgICAgICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgICAgIC4gVmFsdWVzIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IG9uZSBhcmUgY3VycmVudGx5IG5vdFxuICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkLiBQbGVhc2UgZWl0aGVyIG9taXQgdGhlIGZpZWxkIG9yIHByb3ZpZGUgaXQgd2l0aCB0aGVcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHQgdmFsdWUuXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC8+XG4gIClcbn1cblxuSnNvblNjaGVtYURpYWxlY3QucHJvcFR5cGVzID0ge1xuICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgc2VsZWN0SnNvblNjaGVtYURpYWxlY3RGaWVsZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzZWxlY3RKc29uU2NoZW1hRGlhbGVjdERlZmF1bHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIH0pLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEpzb25TY2hlbWFEaWFsZWN0XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5jb25zdCBWZXJzaW9uUHJhZ21hRmlsdGVyID0gKHtcbiAgYnlwYXNzLFxuICBpc1N3YWdnZXIyLFxuICBpc09BUzMsXG4gIGlzT0FTMzEsXG4gIGFsc29TaG93LFxuICBjaGlsZHJlbixcbn0pID0+IHtcbiAgaWYgKGJ5cGFzcykge1xuICAgIHJldHVybiA8ZGl2PntjaGlsZHJlbn08L2Rpdj5cbiAgfVxuXG4gIGlmIChpc1N3YWdnZXIyICYmIChpc09BUzMgfHwgaXNPQVMzMSkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ2ZXJzaW9uLXByYWdtYVwiPlxuICAgICAgICB7YWxzb1Nob3d9XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidmVyc2lvbi1wcmFnbWFfX21lc3NhZ2UgdmVyc2lvbi1wcmFnbWFfX21lc3NhZ2UtLWFtYmlndW91c1wiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8aDM+VW5hYmxlIHRvIHJlbmRlciB0aGlzIGRlZmluaXRpb248L2gzPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIDxjb2RlPnN3YWdnZXI8L2NvZGU+IGFuZCA8Y29kZT5vcGVuYXBpPC9jb2RlPiBmaWVsZHMgY2Fubm90IGJlXG4gICAgICAgICAgICAgIHByZXNlbnQgaW4gdGhlIHNhbWUgU3dhZ2dlciBvciBPcGVuQVBJIGRlZmluaXRpb24uIFBsZWFzZSByZW1vdmVcbiAgICAgICAgICAgICAgb25lIG9mIHRoZSBmaWVsZHMuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgU3VwcG9ydGVkIHZlcnNpb24gZmllbGRzIGFyZSA8Y29kZT5zd2FnZ2VyOiAmcXVvdDsyLjAmcXVvdDs8L2NvZGU+IGFuZFxuICAgICAgICAgICAgICB0aG9zZSB0aGF0IG1hdGNoIDxjb2RlPm9wZW5hcGk6IDMueC55PC9jb2RlPiAoZm9yIGV4YW1wbGUse1wiIFwifVxuICAgICAgICAgICAgICA8Y29kZT5vcGVuYXBpOiAzLjEuMDwvY29kZT4pLlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIGlmICghaXNTd2FnZ2VyMiAmJiAhaXNPQVMzICYmICFpc09BUzMxKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwidmVyc2lvbi1wcmFnbWFcIj5cbiAgICAgICAge2Fsc29TaG93fVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInZlcnNpb24tcHJhZ21hX19tZXNzYWdlIHZlcnNpb24tcHJhZ21hX19tZXNzYWdlLS1taXNzaW5nXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxoMz5VbmFibGUgdG8gcmVuZGVyIHRoaXMgZGVmaW5pdGlvbjwvaDM+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgVGhlIHByb3ZpZGVkIGRlZmluaXRpb24gZG9lcyBub3Qgc3BlY2lmeSBhIHZhbGlkIHZlcnNpb24gZmllbGQuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgUGxlYXNlIGluZGljYXRlIGEgdmFsaWQgU3dhZ2dlciBvciBPcGVuQVBJIHZlcnNpb24gZmllbGQuXG4gICAgICAgICAgICAgIFN1cHBvcnRlZCB2ZXJzaW9uIGZpZWxkcyBhcmUgPGNvZGU+c3dhZ2dlcjogJnF1b3Q7Mi4wJnF1b3Q7PC9jb2RlPiBhbmRcbiAgICAgICAgICAgICAgdGhvc2UgdGhhdCBtYXRjaCA8Y29kZT5vcGVuYXBpOiAzLngueTwvY29kZT4gKGZvciBleGFtcGxlLHtcIiBcIn1cbiAgICAgICAgICAgICAgPGNvZGU+b3BlbmFwaTogMy4xLjA8L2NvZGU+KS5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cblxuICByZXR1cm4gPGRpdj57Y2hpbGRyZW59PC9kaXY+XG59XG5cblZlcnNpb25QcmFnbWFGaWx0ZXIucHJvcFR5cGVzID0ge1xuICBpc1N3YWdnZXIyOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBpc09BUzM6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGlzT0FTMzE6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGJ5cGFzczogUHJvcFR5cGVzLmJvb2wsXG4gIGFsc29TaG93OiBQcm9wVHlwZXMuZWxlbWVudCxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnksXG59XG5cbmV4cG9ydCBkZWZhdWx0IFZlcnNpb25QcmFnbWFGaWx0ZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCwgeyBmb3J3YXJkUmVmLCB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5cbmNvbnN0IGRlY29kZVJlZk5hbWUgPSAodXJpKSA9PiB7XG4gIGNvbnN0IHVuZXNjYXBlZCA9IHVyaS5yZXBsYWNlKC9+MS9nLCBcIi9cIikucmVwbGFjZSgvfjAvZywgXCJ+XCIpXG4gIHRyeSB7XG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh1bmVzY2FwZWQpXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmVzY2FwZWRcbiAgfVxufVxuY29uc3QgZ2V0TW9kZWxOYW1lID0gKHVyaSkgPT4ge1xuICBpZiAodHlwZW9mIHVyaSA9PT0gXCJzdHJpbmdcIiAmJiB1cmkuaW5jbHVkZXMoXCIjL2NvbXBvbmVudHMvc2NoZW1hcy9cIikpIHtcbiAgICByZXR1cm4gZGVjb2RlUmVmTmFtZSh1cmkucmVwbGFjZSgvXi4qI1xcL2NvbXBvbmVudHNcXC9zY2hlbWFzXFwvLywgXCJcIikpXG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuY29uc3QgTW9kZWwgPSBmb3J3YXJkUmVmKFxuICAoeyBzY2hlbWEsIGdldENvbXBvbmVudCwgb25Ub2dnbGUgPSAoKSA9PiB7fSwgc3BlY1BhdGggfSwgcmVmKSA9PiB7XG4gICAgY29uc3QgSlNPTlNjaGVtYTIwMjAxMiA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJcIilcbiAgICBjb25zdCBuYW1lID0gZ2V0TW9kZWxOYW1lKHNjaGVtYS5nZXQoXCIkJHJlZlwiKSlcblxuICAgIGNvbnN0IGhhbmRsZUV4cGFuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGUsIGV4cGFuZGVkKSA9PiB7XG4gICAgICAgIG9uVG9nZ2xlKG5hbWUsIGV4cGFuZGVkKVxuICAgICAgfSxcbiAgICAgIFtuYW1lLCBvblRvZ2dsZV1cbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPEpTT05TY2hlbWEyMDIwMTJcbiAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgc2NoZW1hPXtzY2hlbWEudG9KUygpfVxuICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgb25FeHBhbmQ9e2hhbmRsZUV4cGFuZH1cbiAgICAgICAgaWRlbnRpZmllcj17c3BlY1BhdGgudG9KUygpLmpvaW4oXCJfXCIpfVxuICAgICAgLz5cbiAgICApXG4gIH1cbilcblxuTW9kZWwucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IEltUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uVG9nZ2xlOiBQcm9wVHlwZXMuZnVuYyxcbiAgc3BlY1BhdGg6IEltUHJvcFR5cGVzLmxpc3QuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgTW9kZWxcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuXG5jb25zdCBNb2RlbHMgPSAoe1xuICBzcGVjQWN0aW9ucyxcbiAgc3BlY1NlbGVjdG9ycyxcbiAgbGF5b3V0U2VsZWN0b3JzLFxuICBsYXlvdXRBY3Rpb25zLFxuICBnZXRDb21wb25lbnQsXG4gIGdldENvbmZpZ3MsXG4gIGZuLFxufSkgPT4ge1xuICBjb25zdCBzY2hlbWFzID0gc3BlY1NlbGVjdG9ycy5zZWxlY3RTY2hlbWFzKClcbiAgY29uc3QgaGFzU2NoZW1hcyA9IE9iamVjdC5rZXlzKHNjaGVtYXMpLmxlbmd0aCA+IDBcbiAgY29uc3Qgc2NoZW1hc1BhdGggPSBbXCJjb21wb25lbnRzXCIsIFwic2NoZW1hc1wiXVxuICBjb25zdCB7IGRvY0V4cGFuc2lvbiwgZGVmYXVsdE1vZGVsc0V4cGFuZERlcHRoIH0gPSBnZXRDb25maWdzKClcbiAgY29uc3QgaXNPcGVuRGVmYXVsdCA9IGRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aCA+IDAgJiYgZG9jRXhwYW5zaW9uICE9PSBcIm5vbmVcIlxuICBjb25zdCBpc09wZW4gPSBsYXlvdXRTZWxlY3RvcnMuaXNTaG93bihzY2hlbWFzUGF0aCwgaXNPcGVuRGVmYXVsdClcbiAgY29uc3QgQ29sbGFwc2UgPSBnZXRDb21wb25lbnQoXCJDb2xsYXBzZVwiKVxuICBjb25zdCBKU09OU2NoZW1hMjAyMDEyID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMlwiKVxuICBjb25zdCBBcnJvd1VwSWNvbiA9IGdldENvbXBvbmVudChcIkFycm93VXBJY29uXCIpXG4gIGNvbnN0IEFycm93RG93bkljb24gPSBnZXRDb21wb25lbnQoXCJBcnJvd0Rvd25JY29uXCIpXG4gIGNvbnN0IHsgZ2V0VGl0bGUgfSA9IGZuLmpzb25TY2hlbWEyMDIwMTIudXNlRm4oKVxuXG4gIC8qKlxuICAgKiBFZmZlY3RzLlxuICAgKi9cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBpc09wZW5BbmRFeHBhbmRlZCA9IGlzT3BlbiAmJiBkZWZhdWx0TW9kZWxzRXhwYW5kRGVwdGggPiAxXG4gICAgY29uc3QgaXNSZXNvbHZlZCA9IHNwZWNTZWxlY3RvcnMuc3BlY1Jlc29sdmVkU3VidHJlZShzY2hlbWFzUGF0aCkgIT0gbnVsbFxuICAgIGlmIChpc09wZW5BbmRFeHBhbmRlZCAmJiAhaXNSZXNvbHZlZCkge1xuICAgICAgc3BlY0FjdGlvbnMucmVxdWVzdFJlc29sdmVkU3VidHJlZShzY2hlbWFzUGF0aClcbiAgICB9XG4gIH0sIFtpc09wZW4sIGRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aF0pXG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXJzLlxuICAgKi9cblxuICBjb25zdCBoYW5kbGVNb2RlbHNFeHBhbmQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbGF5b3V0QWN0aW9ucy5zaG93KHNjaGVtYXNQYXRoLCAhaXNPcGVuKVxuICB9LCBbaXNPcGVuXSlcbiAgY29uc3QgaGFuZGxlTW9kZWxzUmVmID0gdXNlQ2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgbGF5b3V0QWN0aW9ucy5yZWFkeVRvU2Nyb2xsKHNjaGVtYXNQYXRoLCBub2RlKVxuICAgIH1cbiAgfSwgW10pXG4gIGNvbnN0IGhhbmRsZUpTT05TY2hlbWEyMDIwMTJSZWYgPSAoc2NoZW1hTmFtZSkgPT4gKG5vZGUpID0+IHtcbiAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgbGF5b3V0QWN0aW9ucy5yZWFkeVRvU2Nyb2xsKFsuLi5zY2hlbWFzUGF0aCwgc2NoZW1hTmFtZV0sIG5vZGUpXG4gICAgfVxuICB9XG4gIGNvbnN0IGhhbmRsZUpTT05TY2hlbWEyMDIwMTJFeHBhbmQgPSAoc2NoZW1hTmFtZSkgPT4gKGUsIGV4cGFuZGVkKSA9PiB7XG4gICAgaWYgKGV4cGFuZGVkKSB7XG4gICAgICBjb25zdCBzY2hlbWFQYXRoID0gWy4uLnNjaGVtYXNQYXRoLCBzY2hlbWFOYW1lXVxuICAgICAgY29uc3QgaXNSZXNvbHZlZCA9IHNwZWNTZWxlY3RvcnMuc3BlY1Jlc29sdmVkU3VidHJlZShzY2hlbWFQYXRoKSAhPSBudWxsXG4gICAgICBpZiAoIWlzUmVzb2x2ZWQpIHtcbiAgICAgICAgc3BlY0FjdGlvbnMucmVxdWVzdFJlc29sdmVkU3VidHJlZShbLi4uc2NoZW1hc1BhdGgsIHNjaGVtYU5hbWVdKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJpbmcuXG4gICAqL1xuXG4gIGlmICghaGFzU2NoZW1hcyB8fCBkZWZhdWx0TW9kZWxzRXhwYW5kRGVwdGggPCAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPHNlY3Rpb25cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcIm1vZGVsc1wiLCB7IFwiaXMtb3BlblwiOiBpc09wZW4gfSl9XG4gICAgICByZWY9e2hhbmRsZU1vZGVsc1JlZn1cbiAgICA+XG4gICAgICA8aDQ+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtpc09wZW59XG4gICAgICAgICAgY2xhc3NOYW1lPVwibW9kZWxzLWNvbnRyb2xcIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZU1vZGVsc0V4cGFuZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuPlNjaGVtYXM8L3NwYW4+XG4gICAgICAgICAge2lzT3BlbiA/IDxBcnJvd1VwSWNvbiAvPiA6IDxBcnJvd0Rvd25JY29uIC8+fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvaDQ+XG4gICAgICA8Q29sbGFwc2UgaXNPcGVuZWQ9e2lzT3Blbn0+XG4gICAgICAgIHtPYmplY3QuZW50cmllcyhzY2hlbWFzKS5tYXAoKFtzY2hlbWFOYW1lLCBzY2hlbWFdKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmFtZSA9IGdldFRpdGxlKHNjaGVtYSwgeyBsb29rdXA6IFwiYmFzaWNcIiB9KSB8fCBzY2hlbWFOYW1lXG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPEpTT05TY2hlbWEyMDIwMTJcbiAgICAgICAgICAgICAga2V5PXtzY2hlbWFOYW1lfVxuICAgICAgICAgICAgICByZWY9e2hhbmRsZUpTT05TY2hlbWEyMDIwMTJSZWYoc2NoZW1hTmFtZSl9XG4gICAgICAgICAgICAgIHNjaGVtYT17c2NoZW1hfVxuICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICBvbkV4cGFuZD17aGFuZGxlSlNPTlNjaGVtYTIwMjAxMkV4cGFuZChzY2hlbWFOYW1lKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cbiAgICAgIDwvQ29sbGFwc2U+XG4gICAgPC9zZWN0aW9uPlxuICApXG59XG5cbk1vZGVscy5wcm9wVHlwZXMgPSB7XG4gIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZ2V0Q29uZmlnczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBzZWxlY3RTY2hlbWFzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNwZWNSZXNvbHZlZFN1YnRyZWU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIH0pLmlzUmVxdWlyZWQsXG4gIHNwZWNBY3Rpb25zOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIHJlcXVlc3RSZXNvbHZlZFN1YnRyZWU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIH0pLmlzUmVxdWlyZWQsXG4gIGxheW91dFNlbGVjdG9yczogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBpc1Nob3duOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB9KS5pc1JlcXVpcmVkLFxuICBsYXlvdXRBY3Rpb25zOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIHNob3c6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgcmVhZHlUb1Njcm9sbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgfSkuaXNSZXF1aXJlZCxcbiAgZm46IFByb3BUeXBlcy5zaGFwZSh7XG4gICAganNvblNjaGVtYTIwMjAxMjogUHJvcFR5cGVzLmZ1bmMuc2hhcGUoe1xuICAgICAgdXNlRm46IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgfSkuaXNSZXF1aXJlZCxcbiAgfSkuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgTW9kZWxzXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5jb25zdCBNdXR1YWxUTFNBdXRoID0gKHsgc2NoZW1hLCBnZXRDb21wb25lbnQsIG5hbWUsIGF1dGhTZWxlY3RvcnMgfSkgPT4ge1xuICBjb25zdCBKdW1wVG9QYXRoID0gZ2V0Q29tcG9uZW50KFwiSnVtcFRvUGF0aFwiLCB0cnVlKVxuICBjb25zdCBwYXRoID0gYXV0aFNlbGVjdG9ycy5zZWxlY3RBdXRoUGF0aChuYW1lKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIDxoND5cbiAgICAgICAge25hbWV9IChtdXR1YWxUTFMpIDxKdW1wVG9QYXRoIHBhdGg9e3BhdGh9IC8+XG4gICAgICA8L2g0PlxuICAgICAgPHA+XG4gICAgICAgIE11dHVhbCBUTFMgaXMgcmVxdWlyZWQgYnkgdGhpcyBBUEkvT3BlcmF0aW9uLiBDZXJ0aWZpY2F0ZXMgYXJlIG1hbmFnZWRcbiAgICAgICAgdmlhIHlvdXIgT3BlcmF0aW5nIFN5c3RlbSBhbmQvb3IgeW91ciBicm93c2VyLlxuICAgICAgPC9wPlxuICAgICAgPHA+e3NjaGVtYS5nZXQoXCJkZXNjcmlwdGlvblwiKX08L3A+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuTXV0dWFsVExTQXV0aC5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgYXV0aFNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBNdXR1YWxUTFNBdXRoXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcblxuY2xhc3MgQXV0aHMgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGRlZmluaXRpb25zOiBJbVByb3BUeXBlcy5pdGVyYWJsZS5pc1JlcXVpcmVkLFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBhdXRoU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgYXV0aEFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBlcnJTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm9wcywgY29udGV4dCkge1xuICAgIHN1cGVyKHByb3BzLCBjb250ZXh0KVxuXG4gICAgdGhpcy5zdGF0ZSA9IHt9XG4gIH1cblxuICBvbkF1dGhDaGFuZ2UgPSAoYXV0aCkgPT4ge1xuICAgIGxldCB7IG5hbWUgfSA9IGF1dGhcblxuICAgIHRoaXMuc2V0U3RhdGUoeyBbbmFtZV06IGF1dGggfSlcbiAgfVxuXG4gIHN1Ym1pdEF1dGggPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuXG4gICAgbGV0IHsgYXV0aEFjdGlvbnMgfSA9IHRoaXMucHJvcHNcbiAgICBhdXRoQWN0aW9ucy5hdXRob3JpemVXaXRoUGVyc2lzdE9wdGlvbih0aGlzLnN0YXRlKVxuICB9XG5cbiAgbG9nb3V0Q2xpY2sgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuXG4gICAgbGV0IHsgYXV0aEFjdGlvbnMsIGRlZmluaXRpb25zIH0gPSB0aGlzLnByb3BzXG4gICAgbGV0IGF1dGhzID0gZGVmaW5pdGlvbnNcbiAgICAgIC5tYXAoKHZhbCwga2V5KSA9PiB7XG4gICAgICAgIHJldHVybiBrZXlcbiAgICAgIH0pXG4gICAgICAudG9BcnJheSgpXG5cbiAgICB0aGlzLnNldFN0YXRlKFxuICAgICAgYXV0aHMucmVkdWNlKChwcmV2LCBhdXRoKSA9PiB7XG4gICAgICAgIHByZXZbYXV0aF0gPSBcIlwiXG4gICAgICAgIHJldHVybiBwcmV2XG4gICAgICB9LCB7fSlcbiAgICApXG5cbiAgICBhdXRoQWN0aW9ucy5sb2dvdXRXaXRoUGVyc2lzdE9wdGlvbihhdXRocylcbiAgfVxuXG4gIGNsb3NlID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBsZXQgeyBhdXRoQWN0aW9ucyB9ID0gdGhpcy5wcm9wc1xuXG4gICAgYXV0aEFjdGlvbnMuc2hvd0RlZmluaXRpb25zKGZhbHNlKVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IGRlZmluaXRpb25zLCBnZXRDb21wb25lbnQsIGF1dGhTZWxlY3RvcnMsIGVyclNlbGVjdG9ycyB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IEF1dGhJdGVtID0gZ2V0Q29tcG9uZW50KFwiQXV0aEl0ZW1cIilcbiAgICBjb25zdCBPYXV0aDIgPSBnZXRDb21wb25lbnQoXCJvYXV0aDJcIiwgdHJ1ZSlcbiAgICBjb25zdCBCdXR0b24gPSBnZXRDb21wb25lbnQoXCJCdXR0b25cIilcblxuICAgIGNvbnN0IGF1dGhvcml6ZWQgPSBhdXRoU2VsZWN0b3JzLmF1dGhvcml6ZWQoKVxuICAgIGNvbnN0IGF1dGhvcml6ZWRBdXRoID0gZGVmaW5pdGlvbnMuZmlsdGVyKChkZWZpbml0aW9uLCBrZXkpID0+IHtcbiAgICAgIHJldHVybiAhIWF1dGhvcml6ZWQuZ2V0KGtleSlcbiAgICB9KVxuICAgIGNvbnN0IG5vbk9hdXRoRGVmaW5pdGlvbnMgPSBkZWZpbml0aW9ucy5maWx0ZXIoXG4gICAgICAoc2NoZW1hKSA9PlxuICAgICAgICBzY2hlbWEuZ2V0KFwidHlwZVwiKSAhPT0gXCJvYXV0aDJcIiAmJiBzY2hlbWEuZ2V0KFwidHlwZVwiKSAhPT0gXCJtdXR1YWxUTFNcIlxuICAgIClcbiAgICBjb25zdCBvYXV0aERlZmluaXRpb25zID0gZGVmaW5pdGlvbnMuZmlsdGVyKFxuICAgICAgKHNjaGVtYSkgPT4gc2NoZW1hLmdldChcInR5cGVcIikgPT09IFwib2F1dGgyXCJcbiAgICApXG4gICAgY29uc3QgbXV0dWFsVExTRGVmaW5pdGlvbnMgPSBkZWZpbml0aW9ucy5maWx0ZXIoXG4gICAgICAoc2NoZW1hKSA9PiBzY2hlbWEuZ2V0KFwidHlwZVwiKSA9PT0gXCJtdXR1YWxUTFNcIlxuICAgIClcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJhdXRoLWNvbnRhaW5lclwiPlxuICAgICAgICB7bm9uT2F1dGhEZWZpbml0aW9ucy5zaXplID4gMCAmJiAoXG4gICAgICAgICAgPGZvcm0gb25TdWJtaXQ9e3RoaXMuc3VibWl0QXV0aH0+XG4gICAgICAgICAgICB7bm9uT2F1dGhEZWZpbml0aW9uc1xuICAgICAgICAgICAgICAubWFwKChzY2hlbWEsIG5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPEF1dGhJdGVtXG4gICAgICAgICAgICAgICAgICAgIGtleT17bmFtZX1cbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hPXtzY2hlbWF9XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBvbkF1dGhDaGFuZ2U9e3RoaXMub25BdXRoQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBhdXRob3JpemVkPXthdXRob3JpemVkfVxuICAgICAgICAgICAgICAgICAgICBlcnJTZWxlY3RvcnM9e2VyclNlbGVjdG9yc31cbiAgICAgICAgICAgICAgICAgICAgYXV0aFNlbGVjdG9ycz17YXV0aFNlbGVjdG9yc31cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAudG9BcnJheSgpfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhdXRoLWJ0bi13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIHtub25PYXV0aERlZmluaXRpb25zLnNpemUgPT09IGF1dGhvcml6ZWRBdXRoLnNpemUgPyAoXG4gICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnRuIG1vZGFsLWJ0biBhdXRoXCJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMubG9nb3V0Q2xpY2t9XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiUmVtb3ZlIGF1dGhvcml6YXRpb25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIExvZ291dFxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnRuIG1vZGFsLWJ0biBhdXRoIGF1dGhvcml6ZVwiXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQXBwbHkgY3JlZGVudGlhbHNcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEF1dGhvcml6ZVxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnRuIG1vZGFsLWJ0biBhdXRoIGJ0bi1kb25lXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmNsb3NlfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQ2xvc2VcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICl9XG5cbiAgICAgICAge29hdXRoRGVmaW5pdGlvbnMuc2l6ZSA+IDAgPyAoXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2NvcGUtZGVmXCI+XG4gICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgIFNjb3BlcyBhcmUgdXNlZCB0byBncmFudCBhbiBhcHBsaWNhdGlvbiBkaWZmZXJlbnQgbGV2ZWxzIG9mXG4gICAgICAgICAgICAgICAgYWNjZXNzIHRvIGRhdGEgb24gYmVoYWxmIG9mIHRoZSBlbmQgdXNlci4gRWFjaCBBUEkgbWF5IGRlY2xhcmVcbiAgICAgICAgICAgICAgICBvbmUgb3IgbW9yZSBzY29wZXMuXG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgQVBJIHJlcXVpcmVzIHRoZSBmb2xsb3dpbmcgc2NvcGVzLiBTZWxlY3Qgd2hpY2ggb25lcyB5b3Ugd2FudCB0b1xuICAgICAgICAgICAgICAgIGdyYW50IHRvIFN3YWdnZXIgVUkuXG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge2RlZmluaXRpb25zXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHNjaGVtYSkgPT4gc2NoZW1hLmdldChcInR5cGVcIikgPT09IFwib2F1dGgyXCIpXG4gICAgICAgICAgICAgIC5tYXAoKHNjaGVtYSwgbmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8ZGl2IGtleT17bmFtZX0+XG4gICAgICAgICAgICAgICAgICAgIDxPYXV0aDJcbiAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpemVkPXthdXRob3JpemVkfVxuICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYT17c2NoZW1hfVxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC50b0FycmF5KCl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICB7bXV0dWFsVExTRGVmaW5pdGlvbnMuc2l6ZSA+IDAgJiYgKFxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7bXV0dWFsVExTRGVmaW5pdGlvbnNcbiAgICAgICAgICAgICAgLm1hcCgoc2NoZW1hLCBuYW1lKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDxBdXRoSXRlbVxuICAgICAgICAgICAgICAgICAgICBrZXk9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYT17c2NoZW1hfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgb25BdXRoQ2hhbmdlPXt0aGlzLm9uQXV0aENoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXplZD17YXV0aG9yaXplZH1cbiAgICAgICAgICAgICAgICAgICAgZXJyU2VsZWN0b3JzPXtlcnJTZWxlY3RvcnN9XG4gICAgICAgICAgICAgICAgICAgIGF1dGhTZWxlY3RvcnM9e2F1dGhTZWxlY3RvcnN9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLnRvQXJyYXkoKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBBdXRoc1xuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmV4cG9ydCBjb25zdCBpc09BUzMxID0gKGpzU3BlYykgPT4ge1xuICBjb25zdCBvYXNWZXJzaW9uID0ganNTcGVjLmdldChcIm9wZW5hcGlcIilcblxuICByZXR1cm4gKFxuICAgIHR5cGVvZiBvYXNWZXJzaW9uID09PSBcInN0cmluZ1wiICYmIC9eM1xcLjFcXC4oPzpbMS05XVxcZCp8MCkkLy50ZXN0KG9hc1ZlcnNpb24pXG4gIClcbn1cblxuLyoqXG4gKiBDcmVhdGVzIHNlbGVjdG9yIHRoYXQgcmV0dXJucyB2YWx1ZSBvZiB0aGUgcGFzc2VkXG4gKiBzZWxlY3RvciB3aGVuIHNwZWMgaXMgT3BlbkFQSSAzLjEuMC4sIG51bGwgb3RoZXJ3aXNlLlxuICpcbiAqIEBwYXJhbSBzZWxlY3RvclxuICogQHJldHVybnMge2Z1bmN0aW9uKCosIC4uLlsqXSk6IGZ1bmN0aW9uKCopOiAoKnxudWxsKX1cbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yID1cbiAgKHNlbGVjdG9yKSA9PlxuICAoc3RhdGUsIC4uLmFyZ3MpID0+XG4gIChzeXN0ZW0pID0+IHtcbiAgICBpZiAoc3lzdGVtLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuaXNPQVMzMSgpKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gc2VsZWN0b3Ioc3RhdGUsIC4uLmFyZ3MpXG4gICAgICByZXR1cm4gdHlwZW9mIHNlbGVjdGVkVmFsdWUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICA/IHNlbGVjdGVkVmFsdWUoc3lzdGVtKVxuICAgICAgICA6IHNlbGVjdGVkVmFsdWVcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gIH1cblxuLyoqXG4gKiBDcmVhdGVzIHNlbGVjdG9yIHdyYXBwZXIgdGhhdCByZXR1cm5zIHZhbHVlIG9mIHRoZSBwYXNzZWRcbiAqIHNlbGVjdG9yIHdoZW4gc3BlYyBpcyBPcGVuQVBJIDMuMS4wLiwgY2FsbHMgb3JpZ2luYWwgc2VsZWN0b3Igb3RoZXJ3aXNlLlxuICpcbiAqXG4gKiBAcGFyYW0gc2VsZWN0b3JcbiAqIEByZXR1cm5zIHtmdW5jdGlvbigqLCAqKTogZnVuY3Rpb24oKiwgLi4uWypdKTogKCopfVxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlT25seU9BUzMxU2VsZWN0b3JXcmFwcGVyID1cbiAgKHNlbGVjdG9yKSA9PlxuICAob3JpU2VsZWN0b3IsIHN5c3RlbSkgPT5cbiAgKHN0YXRlLCAuLi5hcmdzKSA9PiB7XG4gICAgaWYgKHN5c3RlbS5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLmlzT0FTMzEoKSkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IHNlbGVjdG9yKHN0YXRlLCAuLi5hcmdzKVxuICAgICAgcmV0dXJuIHR5cGVvZiBzZWxlY3RlZFZhbHVlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgPyBzZWxlY3RlZFZhbHVlKG9yaVNlbGVjdG9yLCBzeXN0ZW0pXG4gICAgICAgIDogc2VsZWN0ZWRWYWx1ZVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3JpU2VsZWN0b3IoLi4uYXJncylcbiAgICB9XG4gIH1cblxuLyoqXG4gKiBDcmVhdGVzIHNlbGVjdG9yIHRoYXQgcHJvdmlkZXMgc3lzdGVtIGFzIHRoZVxuICogc2Vjb25kIGFyZ3VtZW50LiBUaGlzIGFsbG93cyB0byBjcmVhdGUgbWVtb2l6ZWRcbiAqIGNvbXBvc2VkIHNlbGVjdG9ycyBmcm9tIGRpZmZlcmVudCBwbHVnaW5zLlxuICpcbiAqIEBwYXJhbSBzZWxlY3RvclxuICogQHJldHVybnMge2Z1bmN0aW9uKCosIC4uLlsqXSk6IGZ1bmN0aW9uKCopOiAqfVxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlU3lzdGVtU2VsZWN0b3IgPVxuICAoc2VsZWN0b3IpID0+XG4gIChzdGF0ZSwgLi4uYXJncykgPT5cbiAgKHN5c3RlbSkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkVmFsdWUgPSBzZWxlY3RvcihzdGF0ZSwgc3lzdGVtLCAuLi5hcmdzKVxuICAgIHJldHVybiB0eXBlb2Ygc2VsZWN0ZWRWYWx1ZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICA/IHNlbGVjdGVkVmFsdWUoc3lzdGVtKVxuICAgICAgOiBzZWxlY3RlZFZhbHVlXG4gIH1cblxuLyogZXNsaW50LWRpc2FibGUgIHJlYWN0L2pzeC1maWxlbmFtZS1leHRlbnNpb24gKi9cbi8qKlxuICogQ3JlYXRlcyBjb21wb25lbnQgd3JhcHBlciB0aGF0IG9ubHkgd3JhcHMgdGhlIGNvbXBvbmVudFxuICogd2hlbiBzcGVjIGlzIE9wZW5BUEkgMy4xLjAuIE90aGVyd2lzZSwgcmV0dXJucyBvcmlnaW5hbFxuICogY29tcG9uZW50IHdpdGggcGFzc2VkIHByb3BzLlxuICpcbiAqIEBwYXJhbSBDb21wb25lbnRcbiAqIEByZXR1cm5zIHtmdW5jdGlvbigqLCAqKTogZnVuY3Rpb24oKik6ICp9XG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyID1cbiAgKENvbXBvbmVudCkgPT4gKE9yaWdpbmFsLCBzeXN0ZW0pID0+IChwcm9wcykgPT4ge1xuICAgIGlmIChzeXN0ZW0uc3BlY1NlbGVjdG9ycy5pc09BUzMxKCkpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxDb21wb25lbnRcbiAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgb3JpZ2luYWxDb21wb25lbnQ9e09yaWdpbmFsfVxuICAgICAgICAgIGdldFN5c3RlbT17c3lzdGVtLmdldFN5c3RlbX1cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gPE9yaWdpbmFsIHsuLi5wcm9wc30gLz5cbiAgfVxuLyogZXNsaW50LWVuYWJsZSAgcmVhY3QvanN4LWZpbGVuYW1lLWV4dGVuc2lvbiAqL1xuXG4vKipcbiAqIFJ1bnMgdGhlIGZuIHJlcGxhY2VtZW50IGltcGxlbWVudGF0aW9uIHdoZW4gc3BlYyBpcyBPcGVuQVBJIDMuMS5cbiAqIFJ1bnMgdGhlIGZuIG9yaWdpbmFsIGltcGxlbWVudGF0aW9uIG90aGVyd2lzZS5cbiAqXG4gKiBAcGFyYW0gZm5cbiAqIEBwYXJhbSBzeXN0ZW1cbiAqIEByZXR1cm5zIHt7W3A6IHN0cmluZ106IGZ1bmN0aW9uKC4uLlsqXSk6ICp9fVxuICovXG5leHBvcnQgY29uc3Qgd3JhcE9BUzMxRm4gPSAoZm4sIHN5c3RlbSkgPT4ge1xuICBjb25zdCB7IGZuOiBzeXN0ZW1Gbiwgc3BlY1NlbGVjdG9ycyB9ID0gc3lzdGVtXG5cbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3QuZW50cmllcyhmbikubWFwKChbbmFtZSwgbmV3SW1wbF0pID0+IHtcbiAgICAgIGNvbnN0IG9yaUltcGwgPSBzeXN0ZW1GbltuYW1lXVxuICAgICAgY29uc3QgaW1wbCA9ICguLi5hcmdzKSA9PlxuICAgICAgICBzcGVjU2VsZWN0b3JzLmlzT0FTMzEoKVxuICAgICAgICAgID8gbmV3SW1wbCguLi5hcmdzKVxuICAgICAgICAgIDogdHlwZW9mIG9yaUltcGwgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgPyBvcmlJbXBsKC4uLmFyZ3MpXG4gICAgICAgICAgICA6IHVuZGVmaW5lZFxuXG4gICAgICByZXR1cm4gW25hbWUsIGltcGxdXG4gICAgfSlcbiAgKVxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IGNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIgfSBmcm9tIFwiLi4vZm5cIlxuXG5jb25zdCBMaWNlbnNlV3JhcHBlciA9IGNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoKHsgZ2V0U3lzdGVtIH0pID0+IHtcbiAgY29uc3Qgc3lzdGVtID0gZ2V0U3lzdGVtKClcbiAgY29uc3QgT0FTMzFMaWNlbnNlID0gc3lzdGVtLmdldENvbXBvbmVudChcIk9BUzMxTGljZW5zZVwiLCB0cnVlKVxuXG4gIHJldHVybiA8T0FTMzFMaWNlbnNlIC8+XG59KVxuXG5leHBvcnQgZGVmYXVsdCBMaWNlbnNlV3JhcHBlclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IGNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIgfSBmcm9tIFwiLi4vZm5cIlxuXG5jb25zdCBDb250YWN0V3JhcHBlciA9IGNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoKHsgZ2V0U3lzdGVtIH0pID0+IHtcbiAgY29uc3Qgc3lzdGVtID0gZ2V0U3lzdGVtKClcbiAgY29uc3QgT0FTMzFDb250YWN0ID0gc3lzdGVtLmdldENvbXBvbmVudChcIk9BUzMxQ29udGFjdFwiLCB0cnVlKVxuXG4gIHJldHVybiA8T0FTMzFDb250YWN0IC8+XG59KVxuXG5leHBvcnQgZGVmYXVsdCBDb250YWN0V3JhcHBlclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IGNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIgfSBmcm9tIFwiLi4vZm5cIlxuXG5jb25zdCBJbmZvV3JhcHBlciA9IGNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoKHsgZ2V0U3lzdGVtIH0pID0+IHtcbiAgY29uc3Qgc3lzdGVtID0gZ2V0U3lzdGVtKClcbiAgY29uc3QgT0FTMzFJbmZvID0gc3lzdGVtLmdldENvbXBvbmVudChcIk9BUzMxSW5mb1wiLCB0cnVlKVxuXG4gIHJldHVybiA8T0FTMzFJbmZvIC8+XG59KVxuXG5leHBvcnQgZGVmYXVsdCBJbmZvV3JhcHBlclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VJc0V4cGFuZGFibGUgPSAob3JpZ2luYWwsIGdldFN5c3RlbSkgPT4ge1xuICBjb25zdCB7IGZuIH0gPSBnZXRTeXN0ZW0oKVxuXG4gIGlmICh0eXBlb2Ygb3JpZ2luYWwgIT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCB7IGhhc0tleXdvcmQgfSA9IGZuLmpzb25TY2hlbWEyMDIwMTJcblxuICByZXR1cm4gKHNjaGVtYSkgPT5cbiAgICBvcmlnaW5hbChzY2hlbWEpIHx8XG4gICAgaGFzS2V5d29yZChzY2hlbWEsIFwiZXhhbXBsZVwiKSB8fFxuICAgIHNjaGVtYT8ueG1sIHx8XG4gICAgc2NoZW1hPy5kaXNjcmltaW5hdG9yIHx8XG4gICAgc2NoZW1hPy5leHRlcm5hbERvY3Ncbn1cblxuZXhwb3J0IGNvbnN0IGdldFByb3BlcnRpZXMgPSAoXG4gIHNjaGVtYSxcbiAgeyBpbmNsdWRlUmVhZE9ubHksIGluY2x1ZGVXcml0ZU9ubHkgfVxuKSA9PiB7XG4gIC8vIHNob3J0Y3V0XG4gIGlmICghc2NoZW1hPy5wcm9wZXJ0aWVzKSByZXR1cm4ge31cblxuICBjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0LmVudHJpZXMoc2NoZW1hLnByb3BlcnRpZXMpXG4gIGNvbnN0IGZpbHRlcmVkUHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKChbLCB2YWx1ZV0pID0+IHtcbiAgICBjb25zdCBpc1JlYWRPbmx5ID0gdmFsdWU/LnJlYWRPbmx5ID09PSB0cnVlXG4gICAgY29uc3QgaXNXcml0ZU9ubHkgPSB2YWx1ZT8ud3JpdGVPbmx5ID09PSB0cnVlXG5cbiAgICByZXR1cm4gKFxuICAgICAgKCFpc1JlYWRPbmx5IHx8IGluY2x1ZGVSZWFkT25seSkgJiYgKCFpc1dyaXRlT25seSB8fCBpbmNsdWRlV3JpdGVPbmx5KVxuICAgIClcbiAgfSlcblxuICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKGZpbHRlcmVkUHJvcGVydGllcylcbn1cblxuZXhwb3J0IGNvbnN0IG1ha2VHZXRTY2hlbWFLZXl3b3JkcyA9IChvcmlnaW5hbCkgPT4ge1xuICBpZiAodHlwZW9mIG9yaWdpbmFsICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QganNvblNjaGVtYTIwMjAxMktleXdvcmRzID0gb3JpZ2luYWwoKVxuXG4gIHJldHVybiAoKSA9PiBbXG4gICAgLi4uanNvblNjaGVtYTIwMjAxMktleXdvcmRzLFxuICAgIFwiZGlzY3JpbWluYXRvclwiLFxuICAgIFwieG1sXCIsXG4gICAgXCJleHRlcm5hbERvY3NcIixcbiAgICBcImV4YW1wbGVcIixcbiAgICAvLyAkJHJlZiBpcyBhbiBpbnRlcm5hbCBrZXl3b3JkIHVzZWQgZm9yIGRlcmVmZXJlbmNpbmdcbiAgICBcIiQkcmVmXCIsXG4gIF1cbn1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyIH0gZnJvbSBcIi4uL2ZuXCJcbmltcG9ydCB7IG1ha2VHZXRTY2hlbWFLZXl3b3JkcyB9IGZyb20gXCIuLi9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvZm5cIlxuXG5jb25zdCBNb2RlbFdyYXBwZXIgPSBjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyKFxuICAoeyBnZXRTeXN0ZW0sIC4uLnByb3BzIH0pID0+IHtcbiAgICBjb25zdCBzeXN0ZW0gPSBnZXRTeXN0ZW0oKVxuICAgIGNvbnN0IHsgZ2V0Q29tcG9uZW50LCBmbiwgZ2V0Q29uZmlncyB9ID0gc3lzdGVtXG4gICAgY29uc3QgY29uZmlncyA9IGdldENvbmZpZ3MoKVxuXG4gICAgY29uc3QgTW9kZWwgPSBnZXRDb21wb25lbnQoXCJPQVMzMU1vZGVsXCIpXG4gICAgY29uc3Qgd2l0aEpTT05TY2hlbWFTeXN0ZW1Db250ZXh0ID0gZ2V0Q29tcG9uZW50KFxuICAgICAgXCJ3aXRoSlNPTlNjaGVtYTIwMjAxMlN5c3RlbUNvbnRleHRcIlxuICAgIClcblxuICAgIC8vIHdlIGNhY2hlIHRoZSBIT0MgYXMgcmVjcmVhdGluZyBpdCB3aXRoIGV2ZXJ5IHJlLXJlbmRlciBpcyBxdWl0ZSBleHBlbnNpdmVcbiAgICBNb2RlbFdyYXBwZXIuTW9kZWxXaXRoSlNPTlNjaGVtYUNvbnRleHQgPz89IHdpdGhKU09OU2NoZW1hU3lzdGVtQ29udGV4dChcbiAgICAgIE1vZGVsLFxuICAgICAge1xuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBkZWZhdWx0JHNjaGVtYTogXCJodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy8zLjEvZGlhbGVjdC9iYXNlXCIsXG4gICAgICAgICAgZGVmYXVsdEV4cGFuZGVkTGV2ZWxzOiBjb25maWdzLmRlZmF1bHRNb2RlbEV4cGFuZERlcHRoLFxuICAgICAgICAgIGluY2x1ZGVSZWFkT25seTogcHJvcHMuaW5jbHVkZVJlYWRPbmx5LFxuICAgICAgICAgIGluY2x1ZGVXcml0ZU9ubHk6IHByb3BzLmluY2x1ZGVXcml0ZU9ubHksXG4gICAgICAgIH0sXG4gICAgICAgIGZuOiB7XG4gICAgICAgICAgZ2V0UHJvcGVydGllczogZm4uanNvblNjaGVtYTIwMjAxMi5nZXRQcm9wZXJ0aWVzLFxuICAgICAgICAgIGlzRXhwYW5kYWJsZTogZm4uanNvblNjaGVtYTIwMjAxMi5pc0V4cGFuZGFibGUsXG4gICAgICAgICAgZ2V0U2NoZW1hS2V5d29yZHM6IG1ha2VHZXRTY2hlbWFLZXl3b3JkcyhcbiAgICAgICAgICAgIGZuLmpzb25TY2hlbWEyMDIwMTIuZ2V0U2NoZW1hS2V5d29yZHNcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIClcblxuICAgIHJldHVybiA8TW9kZWxXcmFwcGVyLk1vZGVsV2l0aEpTT05TY2hlbWFDb250ZXh0IHsuLi5wcm9wc30gLz5cbiAgfVxuKVxuXG5leHBvcnQgZGVmYXVsdCBNb2RlbFdyYXBwZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyIH0gZnJvbSBcIi4uL2ZuXCJcbmltcG9ydCB7IG1ha2VHZXRTY2hlbWFLZXl3b3JkcyB9IGZyb20gXCIuLi9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvZm5cIlxuXG5jb25zdCBNb2RlbHNXcmFwcGVyID0gY3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcigoeyBnZXRTeXN0ZW0gfSkgPT4ge1xuICBjb25zdCB7IGdldENvbXBvbmVudCwgZm4sIGdldENvbmZpZ3MgfSA9IGdldFN5c3RlbSgpXG4gIGNvbnN0IGNvbmZpZ3MgPSBnZXRDb25maWdzKClcblxuICBpZiAoTW9kZWxzV3JhcHBlci5Nb2RlbHNXaXRoSlNPTlNjaGVtYUNvbnRleHQpIHtcbiAgICByZXR1cm4gPE1vZGVsc1dyYXBwZXIuTW9kZWxzV2l0aEpTT05TY2hlbWFDb250ZXh0IC8+XG4gIH1cblxuICBjb25zdCBNb2RlbHMgPSBnZXRDb21wb25lbnQoXCJPQVMzMU1vZGVsc1wiLCB0cnVlKVxuICBjb25zdCB3aXRoSlNPTlNjaGVtYVN5c3RlbUNvbnRleHQgPSBnZXRDb21wb25lbnQoXG4gICAgXCJ3aXRoSlNPTlNjaGVtYTIwMjAxMlN5c3RlbUNvbnRleHRcIlxuICApXG5cbiAgLy8gd2UgY2FjaGUgdGhlIEhPQyBhcyByZWNyZWF0aW5nIGl0IHdpdGggZXZlcnkgcmUtcmVuZGVyIGlzIHF1aXRlIGV4cGVuc2l2ZVxuICBNb2RlbHNXcmFwcGVyLk1vZGVsc1dpdGhKU09OU2NoZW1hQ29udGV4dCA/Pz0gd2l0aEpTT05TY2hlbWFTeXN0ZW1Db250ZXh0KFxuICAgIE1vZGVscyxcbiAgICB7XG4gICAgICBjb25maWc6IHtcbiAgICAgICAgZGVmYXVsdCRzY2hlbWE6IFwiaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvMy4xL2RpYWxlY3QvYmFzZVwiLFxuICAgICAgICBkZWZhdWx0RXhwYW5kZWRMZXZlbHM6IGNvbmZpZ3MuZGVmYXVsdE1vZGVsc0V4cGFuZERlcHRoIC0gMSxcbiAgICAgICAgaW5jbHVkZVJlYWRPbmx5OiB0cnVlLFxuICAgICAgICBpbmNsdWRlV3JpdGVPbmx5OiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGZuOiB7XG4gICAgICAgIGdldFByb3BlcnRpZXM6IGZuLmpzb25TY2hlbWEyMDIwMTIuZ2V0UHJvcGVydGllcyxcbiAgICAgICAgaXNFeHBhbmRhYmxlOiBmbi5qc29uU2NoZW1hMjAyMDEyLmlzRXhwYW5kYWJsZSxcbiAgICAgICAgZ2V0U2NoZW1hS2V5d29yZHM6IG1ha2VHZXRTY2hlbWFLZXl3b3JkcyhcbiAgICAgICAgICBmbi5qc29uU2NoZW1hMjAyMDEyLmdldFNjaGVtYUtleXdvcmRzXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH1cbiAgKVxuXG4gIHJldHVybiA8TW9kZWxzV3JhcHBlci5Nb2RlbHNXaXRoSlNPTlNjaGVtYUNvbnRleHQgLz5cbn0pXG5cbk1vZGVsc1dyYXBwZXIuTW9kZWxzV2l0aEpTT05TY2hlbWFDb250ZXh0ID0gbnVsbFxuXG5leHBvcnQgZGVmYXVsdCBNb2RlbHNXcmFwcGVyXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcblxuY29uc3QgVmVyc2lvblByYWdtYUZpbHRlcldyYXBwZXIgPSAoT3JpZ2luYWwsIHN5c3RlbSkgPT4gKHByb3BzKSA9PiB7XG4gIGNvbnN0IGlzT0FTMzEgPSBzeXN0ZW0uc3BlY1NlbGVjdG9ycy5pc09BUzMxKClcblxuICBjb25zdCBPQVMzMVZlcnNpb25QcmFnbWFGaWx0ZXIgPSBzeXN0ZW0uZ2V0Q29tcG9uZW50KFxuICAgIFwiT0FTMzFWZXJzaW9uUHJhZ21hRmlsdGVyXCJcbiAgKVxuXG4gIHJldHVybiA8T0FTMzFWZXJzaW9uUHJhZ21hRmlsdGVyIGlzT0FTMzE9e2lzT0FTMzF9IHsuLi5wcm9wc30gLz5cbn1cblxuZXhwb3J0IGRlZmF1bHQgVmVyc2lvblByYWdtYUZpbHRlcldyYXBwZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyIH0gZnJvbSBcIi4uLy4uL2ZuXCJcblxuY29uc3QgQXV0aEl0ZW0gPSBjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyKFxuICAoeyBvcmlnaW5hbENvbXBvbmVudDogT3JpLCAuLi5wcm9wcyB9KSA9PiB7XG4gICAgY29uc3QgeyBnZXRDb21wb25lbnQsIHNjaGVtYSwgbmFtZSB9ID0gcHJvcHNcbiAgICBjb25zdCBNdXR1YWxUTFNBdXRoID0gZ2V0Q29tcG9uZW50KFwiTXV0dWFsVExTQXV0aFwiLCB0cnVlKVxuICAgIGNvbnN0IHR5cGUgPSBzY2hlbWEuZ2V0KFwidHlwZVwiKVxuXG4gICAgaWYgKHR5cGUgPT09IFwibXV0dWFsVExTXCIpIHtcbiAgICAgIHJldHVybiA8TXV0dWFsVExTQXV0aCBzY2hlbWE9e3NjaGVtYX0gbmFtZT17bmFtZX0gLz5cbiAgICB9XG5cbiAgICByZXR1cm4gPE9yaSB7Li4ucHJvcHN9IC8+XG4gIH1cbilcblxuZXhwb3J0IGRlZmF1bHQgQXV0aEl0ZW1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyIH0gZnJvbSBcIi4uL2ZuXCJcblxuY29uc3QgQXV0aHNXcmFwcGVyID0gY3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcihcbiAgKHsgZ2V0U3lzdGVtLCAuLi5wcm9wcyB9KSA9PiB7XG4gICAgY29uc3Qgc3lzdGVtID0gZ2V0U3lzdGVtKClcbiAgICBjb25zdCBPQVMzMUF1dGhzID0gc3lzdGVtLmdldENvbXBvbmVudChcIk9BUzMxQXV0aHNcIiwgdHJ1ZSlcblxuICAgIHJldHVybiA8T0FTMzFBdXRocyB7Li4ucHJvcHN9IC8+XG4gIH1cbilcblxuZXhwb3J0IGRlZmF1bHQgQXV0aHNXcmFwcGVyXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBMaXN0LCBNYXAgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCB7IGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSBcInJlc2VsZWN0XCJcblxuaW1wb3J0IHsgc2FmZUJ1aWxkVXJsIH0gZnJvbSBcImNvcmUvdXRpbHMvdXJsXCJcbmltcG9ydCB7IGlzT0FTMzEgYXMgaXNPQVMzMUZuIH0gZnJvbSBcIi4uL2ZuXCJcblxuY29uc3QgbWFwID0gTWFwKClcblxuZXhwb3J0IGNvbnN0IGlzT0FTMzEgPSBjcmVhdGVTZWxlY3RvcihcbiAgKHN0YXRlLCBzeXN0ZW0pID0+IHN5c3RlbS5zcGVjU2VsZWN0b3JzLnNwZWNKc29uKCksXG4gIGlzT0FTMzFGblxuKVxuXG5leHBvcnQgY29uc3Qgd2ViaG9va3MgPSAoKSA9PiAoc3lzdGVtKSA9PiB7XG4gIGNvbnN0IHdlYmhvb2tzID0gc3lzdGVtLnNwZWNTZWxlY3RvcnMuc3BlY0pzb24oKS5nZXQoXCJ3ZWJob29rc1wiKVxuICByZXR1cm4gTWFwLmlzTWFwKHdlYmhvb2tzKSA/IHdlYmhvb2tzIDogbWFwXG59XG5cbi8qKlxuICogYHNwZWNSZXNvbHZlZFN1YnRyZWVgIHNlbGVjdG9yIGlzIG5lZWRlZCBhcyBpbnB1dCBzZWxlY3RvcixcbiAqIHNvIHRoYXQgd2UgcmVnZW5lcmF0ZSB0aGUgc2VsZWN0ZWQgcmVzdWx0IHdoZW5ldmVyIHRoZSBsYXp5XG4gKiByZXNvbHV0aW9uIGhhcHBlbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBzZWxlY3RXZWJob29rc09wZXJhdGlvbnMgPSBjcmVhdGVTZWxlY3RvcihcbiAgW1xuICAgIChzdGF0ZSwgc3lzdGVtKSA9PiBzeXN0ZW0uc3BlY1NlbGVjdG9ycy53ZWJob29rcygpLFxuICAgIChzdGF0ZSwgc3lzdGVtKSA9PiBzeXN0ZW0uc3BlY1NlbGVjdG9ycy52YWxpZE9wZXJhdGlvbk1ldGhvZHMoKSxcbiAgICAoc3RhdGUsIHN5c3RlbSkgPT4gc3lzdGVtLnNwZWNTZWxlY3RvcnMuc3BlY1Jlc29sdmVkU3VidHJlZShbXCJ3ZWJob29rc1wiXSksXG4gIF0sXG4gICh3ZWJob29rcywgdmFsaWRPcGVyYXRpb25NZXRob2RzKSA9PlxuICAgIHdlYmhvb2tzXG4gICAgICAucmVkdWNlKChhbGxPcGVyYXRpb25zLCBwYXRoSXRlbSwgcGF0aEl0ZW1OYW1lKSA9PiB7XG4gICAgICAgIGlmICghTWFwLmlzTWFwKHBhdGhJdGVtKSkgcmV0dXJuIGFsbE9wZXJhdGlvbnNcblxuICAgICAgICBjb25zdCBwYXRoSXRlbU9wZXJhdGlvbnMgPSBwYXRoSXRlbVxuICAgICAgICAgIC5lbnRyeVNlcSgpXG4gICAgICAgICAgLmZpbHRlcigoW2tleV0pID0+IHZhbGlkT3BlcmF0aW9uTWV0aG9kcy5pbmNsdWRlcyhrZXkpKVxuICAgICAgICAgIC5tYXAoKFttZXRob2QsIG9wZXJhdGlvbl0pID0+ICh7XG4gICAgICAgICAgICBvcGVyYXRpb246IE1hcCh7IG9wZXJhdGlvbiB9KSxcbiAgICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICAgIHBhdGg6IHBhdGhJdGVtTmFtZSxcbiAgICAgICAgICAgIHNwZWNQYXRoOiBbXCJ3ZWJob29rc1wiLCBwYXRoSXRlbU5hbWUsIG1ldGhvZF0sXG4gICAgICAgICAgfSkpXG5cbiAgICAgICAgcmV0dXJuIGFsbE9wZXJhdGlvbnMuY29uY2F0KHBhdGhJdGVtT3BlcmF0aW9ucylcbiAgICAgIH0sIExpc3QoKSlcbiAgICAgIC5ncm91cEJ5KChvcGVyYXRpb25EVE8pID0+IG9wZXJhdGlvbkRUTy5wYXRoKVxuICAgICAgLm1hcCgob3BlcmF0aW9ucykgPT4gb3BlcmF0aW9ucy50b0FycmF5KCkpXG4gICAgICAudG9PYmplY3QoKVxuKVxuXG5leHBvcnQgY29uc3QgbGljZW5zZSA9ICgpID0+IChzeXN0ZW0pID0+IHtcbiAgY29uc3QgbGljZW5zZSA9IHN5c3RlbS5zcGVjU2VsZWN0b3JzLmluZm8oKS5nZXQoXCJsaWNlbnNlXCIpXG4gIHJldHVybiBNYXAuaXNNYXAobGljZW5zZSkgPyBsaWNlbnNlIDogbWFwXG59XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RMaWNlbnNlTmFtZUZpZWxkID0gKCkgPT4gKHN5c3RlbSkgPT4ge1xuICByZXR1cm4gc3lzdGVtLnNwZWNTZWxlY3RvcnMubGljZW5zZSgpLmdldChcIm5hbWVcIiwgXCJMaWNlbnNlXCIpXG59XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RMaWNlbnNlVXJsRmllbGQgPSAoKSA9PiAoc3lzdGVtKSA9PiB7XG4gIHJldHVybiBzeXN0ZW0uc3BlY1NlbGVjdG9ycy5saWNlbnNlKCkuZ2V0KFwidXJsXCIpXG59XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RMaWNlbnNlVXJsID0gY3JlYXRlU2VsZWN0b3IoXG4gIFtcbiAgICAoc3RhdGUsIHN5c3RlbSkgPT4gc3lzdGVtLnNwZWNTZWxlY3RvcnMudXJsKCksXG4gICAgKHN0YXRlLCBzeXN0ZW0pID0+IHN5c3RlbS5vYXMzU2VsZWN0b3JzLnNlbGVjdGVkU2VydmVyKCksXG4gICAgKHN0YXRlLCBzeXN0ZW0pID0+IHN5c3RlbS5zcGVjU2VsZWN0b3JzLnNlbGVjdExpY2Vuc2VVcmxGaWVsZCgpLFxuICBdLFxuICAoc3BlY1VybCwgc2VsZWN0ZWRTZXJ2ZXIsIHVybCkgPT4ge1xuICAgIGlmICh1cmwpIHtcbiAgICAgIHJldHVybiBzYWZlQnVpbGRVcmwodXJsLCBzcGVjVXJsLCB7IHNlbGVjdGVkU2VydmVyIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG4pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RMaWNlbnNlSWRlbnRpZmllckZpZWxkID0gKCkgPT4gKHN5c3RlbSkgPT4ge1xuICByZXR1cm4gc3lzdGVtLnNwZWNTZWxlY3RvcnMubGljZW5zZSgpLmdldChcImlkZW50aWZpZXJcIilcbn1cblxuZXhwb3J0IGNvbnN0IGNvbnRhY3QgPSAoKSA9PiAoc3lzdGVtKSA9PiB7XG4gIGNvbnN0IGNvbnRhY3QgPSBzeXN0ZW0uc3BlY1NlbGVjdG9ycy5pbmZvKCkuZ2V0KFwiY29udGFjdFwiKVxuICByZXR1cm4gTWFwLmlzTWFwKGNvbnRhY3QpID8gY29udGFjdCA6IG1hcFxufVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0Q29udGFjdE5hbWVGaWVsZCA9ICgpID0+IChzeXN0ZW0pID0+IHtcbiAgcmV0dXJuIHN5c3RlbS5zcGVjU2VsZWN0b3JzLmNvbnRhY3QoKS5nZXQoXCJuYW1lXCIsIFwidGhlIGRldmVsb3BlclwiKVxufVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0Q29udGFjdEVtYWlsRmllbGQgPSAoKSA9PiAoc3lzdGVtKSA9PiB7XG4gIHJldHVybiBzeXN0ZW0uc3BlY1NlbGVjdG9ycy5jb250YWN0KCkuZ2V0KFwiZW1haWxcIilcbn1cblxuZXhwb3J0IGNvbnN0IHNlbGVjdENvbnRhY3RVcmxGaWVsZCA9ICgpID0+IChzeXN0ZW0pID0+IHtcbiAgcmV0dXJuIHN5c3RlbS5zcGVjU2VsZWN0b3JzLmNvbnRhY3QoKS5nZXQoXCJ1cmxcIilcbn1cblxuZXhwb3J0IGNvbnN0IHNlbGVjdENvbnRhY3RVcmwgPSBjcmVhdGVTZWxlY3RvcihcbiAgW1xuICAgIChzdGF0ZSwgc3lzdGVtKSA9PiBzeXN0ZW0uc3BlY1NlbGVjdG9ycy51cmwoKSxcbiAgICAoc3RhdGUsIHN5c3RlbSkgPT4gc3lzdGVtLm9hczNTZWxlY3RvcnMuc2VsZWN0ZWRTZXJ2ZXIoKSxcbiAgICAoc3RhdGUsIHN5c3RlbSkgPT4gc3lzdGVtLnNwZWNTZWxlY3RvcnMuc2VsZWN0Q29udGFjdFVybEZpZWxkKCksXG4gIF0sXG4gIChzcGVjVXJsLCBzZWxlY3RlZFNlcnZlciwgdXJsKSA9PiB7XG4gICAgaWYgKHVybCkge1xuICAgICAgcmV0dXJuIHNhZmVCdWlsZFVybCh1cmwsIHNwZWNVcmwsIHsgc2VsZWN0ZWRTZXJ2ZXIgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cbilcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEluZm9UaXRsZUZpZWxkID0gKCkgPT4gKHN5c3RlbSkgPT4ge1xuICByZXR1cm4gc3lzdGVtLnNwZWNTZWxlY3RvcnMuaW5mbygpLmdldChcInRpdGxlXCIpXG59XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RJbmZvU3VtbWFyeUZpZWxkID0gKCkgPT4gKHN5c3RlbSkgPT4ge1xuICByZXR1cm4gc3lzdGVtLnNwZWNTZWxlY3RvcnMuaW5mbygpLmdldChcInN1bW1hcnlcIilcbn1cblxuZXhwb3J0IGNvbnN0IHNlbGVjdEluZm9EZXNjcmlwdGlvbkZpZWxkID0gKCkgPT4gKHN5c3RlbSkgPT4ge1xuICByZXR1cm4gc3lzdGVtLnNwZWNTZWxlY3RvcnMuaW5mbygpLmdldChcImRlc2NyaXB0aW9uXCIpXG59XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RJbmZvVGVybXNPZlNlcnZpY2VGaWVsZCA9ICgpID0+IChzeXN0ZW0pID0+IHtcbiAgcmV0dXJuIHN5c3RlbS5zcGVjU2VsZWN0b3JzLmluZm8oKS5nZXQoXCJ0ZXJtc09mU2VydmljZVwiKVxufVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0SW5mb1Rlcm1zT2ZTZXJ2aWNlVXJsID0gY3JlYXRlU2VsZWN0b3IoXG4gIFtcbiAgICAoc3RhdGUsIHN5c3RlbSkgPT4gc3lzdGVtLnNwZWNTZWxlY3RvcnMudXJsKCksXG4gICAgKHN0YXRlLCBzeXN0ZW0pID0+IHN5c3RlbS5vYXMzU2VsZWN0b3JzLnNlbGVjdGVkU2VydmVyKCksXG4gICAgKHN0YXRlLCBzeXN0ZW0pID0+IHN5c3RlbS5zcGVjU2VsZWN0b3JzLnNlbGVjdEluZm9UZXJtc09mU2VydmljZUZpZWxkKCksXG4gIF0sXG4gIChzcGVjVXJsLCBzZWxlY3RlZFNlcnZlciwgdGVybXNPZlNlcnZpY2UpID0+IHtcbiAgICBpZiAodGVybXNPZlNlcnZpY2UpIHtcbiAgICAgIHJldHVybiBzYWZlQnVpbGRVcmwodGVybXNPZlNlcnZpY2UsIHNwZWNVcmwsIHsgc2VsZWN0ZWRTZXJ2ZXIgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cbilcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEV4dGVybmFsRG9jc0Rlc2NyaXB0aW9uRmllbGQgPSAoKSA9PiAoc3lzdGVtKSA9PiB7XG4gIHJldHVybiBzeXN0ZW0uc3BlY1NlbGVjdG9ycy5leHRlcm5hbERvY3MoKS5nZXQoXCJkZXNjcmlwdGlvblwiKVxufVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0RXh0ZXJuYWxEb2NzVXJsRmllbGQgPSAoKSA9PiAoc3lzdGVtKSA9PiB7XG4gIHJldHVybiBzeXN0ZW0uc3BlY1NlbGVjdG9ycy5leHRlcm5hbERvY3MoKS5nZXQoXCJ1cmxcIilcbn1cblxuZXhwb3J0IGNvbnN0IHNlbGVjdEV4dGVybmFsRG9jc1VybCA9IGNyZWF0ZVNlbGVjdG9yKFxuICBbXG4gICAgKHN0YXRlLCBzeXN0ZW0pID0+IHN5c3RlbS5zcGVjU2VsZWN0b3JzLnVybCgpLFxuICAgIChzdGF0ZSwgc3lzdGVtKSA9PiBzeXN0ZW0ub2FzM1NlbGVjdG9ycy5zZWxlY3RlZFNlcnZlcigpLFxuICAgIChzdGF0ZSwgc3lzdGVtKSA9PiBzeXN0ZW0uc3BlY1NlbGVjdG9ycy5zZWxlY3RFeHRlcm5hbERvY3NVcmxGaWVsZCgpLFxuICBdLFxuICAoc3BlY1VybCwgc2VsZWN0ZWRTZXJ2ZXIsIHVybCkgPT4ge1xuICAgIGlmICh1cmwpIHtcbiAgICAgIHJldHVybiBzYWZlQnVpbGRVcmwodXJsLCBzcGVjVXJsLCB7IHNlbGVjdGVkU2VydmVyIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG4pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RKc29uU2NoZW1hRGlhbGVjdEZpZWxkID0gKCkgPT4gKHN5c3RlbSkgPT4ge1xuICByZXR1cm4gc3lzdGVtLnNwZWNTZWxlY3RvcnMuc3BlY0pzb24oKS5nZXQoXCJqc29uU2NoZW1hRGlhbGVjdFwiKVxufVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0SnNvblNjaGVtYURpYWxlY3REZWZhdWx0ID0gKCkgPT5cbiAgXCJodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy8zLjEvZGlhbGVjdC9iYXNlXCJcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFNjaGVtYXMgPSBjcmVhdGVTZWxlY3RvcihcbiAgKHN0YXRlLCBzeXN0ZW0pID0+IHN5c3RlbS5zcGVjU2VsZWN0b3JzLmRlZmluaXRpb25zKCksXG4gIChzdGF0ZSwgc3lzdGVtKSA9PlxuICAgIHN5c3RlbS5zcGVjU2VsZWN0b3JzLnNwZWNSZXNvbHZlZFN1YnRyZWUoW1wiY29tcG9uZW50c1wiLCBcInNjaGVtYXNcIl0pLFxuXG4gIChyYXdTY2hlbWFzLCByZXNvbHZlZFNjaGVtYXMpID0+IHtcbiAgICBpZiAoIU1hcC5pc01hcChyYXdTY2hlbWFzKSkgcmV0dXJuIHt9XG4gICAgaWYgKCFNYXAuaXNNYXAocmVzb2x2ZWRTY2hlbWFzKSkgcmV0dXJuIHJhd1NjaGVtYXMudG9KUygpXG5cbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmF3U2NoZW1hcy50b0pTKCkpLnJlZHVjZShcbiAgICAgIChhY2MsIFtzY2hlbWFOYW1lLCByYXdTY2hlbWFdKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkU2NoZW1hID0gcmVzb2x2ZWRTY2hlbWFzLmdldChzY2hlbWFOYW1lKVxuICAgICAgICBhY2Nbc2NoZW1hTmFtZV0gPSByZXNvbHZlZFNjaGVtYT8udG9KUygpIHx8IHJhd1NjaGVtYVxuICAgICAgICByZXR1cm4gYWNjXG4gICAgICB9LFxuICAgICAge31cbiAgICApXG4gIH1cbilcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cblxuaW1wb3J0IHsgY3JlYXRlT25seU9BUzMxU2VsZWN0b3JXcmFwcGVyIH0gZnJvbSBcIi4uL2ZuXCJcblxuZXhwb3J0IGNvbnN0IGlzT0FTMyA9XG4gIChvcmlTZWxlY3Rvciwgc3lzdGVtKSA9PlxuICAoc3RhdGUsIC4uLmFyZ3MpID0+IHtcbiAgICBjb25zdCBpc09BUzMxID0gc3lzdGVtLnNwZWNTZWxlY3RvcnMuaXNPQVMzMSgpXG4gICAgcmV0dXJuIGlzT0FTMzEgfHwgb3JpU2VsZWN0b3IoLi4uYXJncylcbiAgfVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0TGljZW5zZVVybCA9IGNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yV3JhcHBlcihcbiAgKCkgPT4gKG9yaVNlbGVjdG9yLCBzeXN0ZW0pID0+IHtcbiAgICByZXR1cm4gc3lzdGVtLm9hczMxU2VsZWN0b3JzLnNlbGVjdExpY2Vuc2VVcmwoKVxuICB9XG4pXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBNYXAgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCB7IGNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yV3JhcHBlciB9IGZyb20gXCIuLi9mblwiXG5cbmV4cG9ydCBjb25zdCBkZWZpbml0aW9uc1RvQXV0aG9yaXplID0gY3JlYXRlT25seU9BUzMxU2VsZWN0b3JXcmFwcGVyKFxuICAoKSA9PiAob3JpU2VsZWN0b3IsIHN5c3RlbSkgPT4ge1xuICAgIGNvbnN0IGRlZmluaXRpb25zID0gc3lzdGVtLnNwZWNTZWxlY3RvcnMuc2VjdXJpdHlEZWZpbml0aW9ucygpXG4gICAgbGV0IGxpc3QgPSBvcmlTZWxlY3RvcigpXG5cbiAgICBpZiAoIWRlZmluaXRpb25zKSByZXR1cm4gbGlzdFxuXG4gICAgZGVmaW5pdGlvbnMuZW50cnlTZXEoKS5mb3JFYWNoKChbZGVmTmFtZSwgZGVmaW5pdGlvbl0pID0+IHtcbiAgICAgIGNvbnN0IHR5cGUgPSBkZWZpbml0aW9uPy5nZXQoXCJ0eXBlXCIpXG5cbiAgICAgIGlmICh0eXBlID09PSBcIm11dHVhbFRMU1wiKSB7XG4gICAgICAgIGxpc3QgPSBsaXN0LnB1c2goXG4gICAgICAgICAgbmV3IE1hcCh7XG4gICAgICAgICAgICBbZGVmTmFtZV06IGRlZmluaXRpb24sXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICByZXR1cm4gbGlzdFxuICB9XG4pXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gXCJyZXNlbGVjdFwiXG5cbmltcG9ydCB7IHNhZmVCdWlsZFVybCB9IGZyb20gXCJjb3JlL3V0aWxzL3VybFwiXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RMaWNlbnNlVXJsID0gY3JlYXRlU2VsZWN0b3IoXG4gIFtcbiAgICAoc3RhdGUsIHN5c3RlbSkgPT4gc3lzdGVtLnNwZWNTZWxlY3RvcnMudXJsKCksXG4gICAgKHN0YXRlLCBzeXN0ZW0pID0+IHN5c3RlbS5vYXMzU2VsZWN0b3JzLnNlbGVjdGVkU2VydmVyKCksXG4gICAgKHN0YXRlLCBzeXN0ZW0pID0+IHN5c3RlbS5zcGVjU2VsZWN0b3JzLnNlbGVjdExpY2Vuc2VVcmxGaWVsZCgpLFxuICAgIChzdGF0ZSwgc3lzdGVtKSA9PiBzeXN0ZW0uc3BlY1NlbGVjdG9ycy5zZWxlY3RMaWNlbnNlSWRlbnRpZmllckZpZWxkKCksXG4gIF0sXG4gIChzcGVjVXJsLCBzZWxlY3RlZFNlcnZlciwgdXJsLCBpZGVudGlmaWVyKSA9PiB7XG4gICAgaWYgKHVybCkge1xuICAgICAgcmV0dXJuIHNhZmVCdWlsZFVybCh1cmwsIHNwZWNVcmwsIHsgc2VsZWN0ZWRTZXJ2ZXIgfSlcbiAgICB9XG5cbiAgICBpZiAoaWRlbnRpZmllcikge1xuICAgICAgcmV0dXJuIGBodHRwczovL3NwZHgub3JnL2xpY2Vuc2VzLyR7aWRlbnRpZmllcn0uaHRtbGBcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cbilcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmNvbnN0IEV4YW1wbGUgPSAoeyBzY2hlbWEsIGdldFN5c3RlbSB9KSA9PiB7XG4gIGNvbnN0IHsgZm4sIGdldENvbXBvbmVudCB9ID0gZ2V0U3lzdGVtKClcbiAgY29uc3QgeyBoYXNLZXl3b3JkIH0gPSBmbi5qc29uU2NoZW1hMjAyMDEyLnVzZUZuKClcbiAgY29uc3QgSlNPTlZpZXdlciA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJKU09OVmlld2VyXCIpXG5cbiAgaWYgKCFoYXNLZXl3b3JkKHNjaGVtYSwgXCJleGFtcGxlXCIpKSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPEpTT05WaWV3ZXJcbiAgICAgIG5hbWU9XCJFeGFtcGxlXCJcbiAgICAgIHZhbHVlPXtzY2hlbWEuZXhhbXBsZX1cbiAgICAgIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWV4YW1wbGVcIlxuICAgIC8+XG4gIClcbn1cblxuRXhhbXBsZS5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm9iamVjdCwgUHJvcFR5cGVzLmJvb2xdKS5pc1JlcXVpcmVkLFxuICBnZXRTeXN0ZW06IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEV4YW1wbGVcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCB7IGdldEV4dGVuc2lvbnMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vdXRpbHNcIlxuXG5jb25zdCBYbWwgPSAoeyBzY2hlbWEsIGdldFN5c3RlbSB9KSA9PiB7XG4gIGNvbnN0IHhtbCA9IHNjaGVtYT8ueG1sIHx8IHt9XG4gIGNvbnN0IHsgZm4sIGdldENvbXBvbmVudCwgZ2V0Q29uZmlncyB9ID0gZ2V0U3lzdGVtKClcbiAgY29uc3QgeyBzaG93RXh0ZW5zaW9ucyB9ID0gZ2V0Q29uZmlncygpXG4gIGNvbnN0IHsgdXNlQ29tcG9uZW50LCB1c2VJc0V4cGFuZGVkLCB1c2VQYXRoLCB1c2VMZXZlbCB9ID0gZm4uanNvblNjaGVtYTIwMjAxMlxuICBjb25zdCBwYXRoVG9rZW4gPSBcInhtbFwiXG4gIGNvbnN0IHsgcGF0aCB9ID0gdXNlUGF0aChwYXRoVG9rZW4pXG4gIGNvbnN0IHsgaXNFeHBhbmRlZCwgc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZCB9ID0gdXNlSXNFeHBhbmRlZChwYXRoVG9rZW4pXG4gIGNvbnN0IFtsZXZlbCwgbmV4dExldmVsXSA9IHVzZUxldmVsKClcbiAgY29uc3QgZXh0ZW5zaW9ucyA9IHNob3dFeHRlbnNpb25zID8gZ2V0RXh0ZW5zaW9ucyh4bWwpIDogW11cbiAgY29uc3QgaXNFeHBhbmRhYmxlID0gISEoXG4gICAgeG1sLm5hbWUgfHxcbiAgICB4bWwubmFtZXNwYWNlIHx8XG4gICAgeG1sLnByZWZpeCB8fFxuICAgIGV4dGVuc2lvbnMubGVuZ3RoID4gMFxuICApXG4gIGNvbnN0IEFjY29yZGlvbiA9IHVzZUNvbXBvbmVudChcIkFjY29yZGlvblwiKVxuICBjb25zdCBFeHBhbmREZWVwQnV0dG9uID0gdXNlQ29tcG9uZW50KFwiRXhwYW5kRGVlcEJ1dHRvblwiKVxuICBjb25zdCBPcGVuQVBJMzFFeHRlbnNpb25zID0gZ2V0Q29tcG9uZW50KFwiT3BlbkFQSTMxRXh0ZW5zaW9uc1wiKVxuICBjb25zdCBKU09OU2NoZW1hUGF0aENvbnRleHQgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyUGF0aENvbnRleHRcIikoKVxuICBjb25zdCBKU09OU2NoZW1hTGV2ZWxDb250ZXh0ID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMkxldmVsQ29udGV4dFwiKSgpXG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXJzLlxuICAgKi9cbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChpc0V4cGFuZGVkKSB7XG4gICAgICBzZXRDb2xsYXBzZWQoKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRFeHBhbmRlZCgpXG4gICAgfVxuICB9LCBbaXNFeHBhbmRlZCwgc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZF0pXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvbkRlZXAgPSB1c2VDYWxsYmFjayhcbiAgICAoZSwgZXhwYW5kZWREZWVwTmV3KSA9PiB7XG4gICAgICBpZiAoZXhwYW5kZWREZWVwTmV3KSB7XG4gICAgICAgIHNldEV4cGFuZGVkKHsgZGVlcDogdHJ1ZSB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0Q29sbGFwc2VkKHsgZGVlcDogdHJ1ZSB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgW3NldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWRdXG4gIClcblxuICAvKipcbiAgICogUmVuZGVyaW5nLlxuICAgKi9cbiAgaWYgKE9iamVjdC5rZXlzKHhtbCkubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEpTT05TY2hlbWFQYXRoQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cGF0aH0+XG4gICAgICA8SlNPTlNjaGVtYUxldmVsQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bmV4dExldmVsfT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLXhtbFwiXG4gICAgICAgICAgZGF0YS1qc29uLXNjaGVtYS1sZXZlbD17bGV2ZWx9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNFeHBhbmRhYmxlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPEFjY29yZGlvbiBleHBhbmRlZD17aXNFeHBhbmRlZH0gb25DaGFuZ2U9e2hhbmRsZUV4cGFuc2lvbn0+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAgICBYTUxcbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvQWNjb3JkaW9uPlxuICAgICAgICAgICAgICA8RXhwYW5kRGVlcEJ1dHRvblxuICAgICAgICAgICAgICAgIGV4cGFuZGVkPXtpc0V4cGFuZGVkfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUV4cGFuc2lvbkRlZXB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgIFhNTFxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICl9XG4gICAgICAgICAge3htbC5hdHRyaWJ1dGUgPT09IHRydWUgJiYgKFxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tbXV0ZWRcIj5cbiAgICAgICAgICAgICAgYXR0cmlidXRlXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7eG1sLndyYXBwZWQgPT09IHRydWUgJiYgKFxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tbXV0ZWRcIj5cbiAgICAgICAgICAgICAgd3JhcHBlZFxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPHN0cm9uZyBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5XCI+XG4gICAgICAgICAgICBvYmplY3RcbiAgICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgICA8dWxcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW5cIiwge1xuICAgICAgICAgICAgICBcImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4tLWNvbGxhcHNlZFwiOiAhaXNFeHBhbmRlZCxcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpc0V4cGFuZGVkICYmIChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICB7eG1sLm5hbWUgJiYgKFxuICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eG1sLm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgIHt4bWwubmFtZXNwYWNlICYmIChcbiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt4bWwubmFtZXNwYWNlfVxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICB7eG1sLnByZWZpeCAmJiAoXG4gICAgICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eG1sLnByZWZpeH1cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7ZXh0ZW5zaW9ucy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgICAgPE9wZW5BUEkzMUV4dGVuc2lvbnNcbiAgICAgICAgICAgICAgICBvcGVuQVBJU3BlY09iaj17eG1sfVxuICAgICAgICAgICAgICAgIG9wZW5BUElFeHRlbnNpb25zPXtleHRlbnNpb25zfVxuICAgICAgICAgICAgICAgIGdldFN5c3RlbT17Z2V0U3lzdGVtfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvSlNPTlNjaGVtYUxldmVsQ29udGV4dC5Qcm92aWRlcj5cbiAgICA8L0pTT05TY2hlbWFQYXRoQ29udGV4dC5Qcm92aWRlcj5cbiAgKVxufVxuXG5YbWwucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5vYmplY3QsIFByb3BUeXBlcy5ib29sXSkuaXNSZXF1aXJlZCxcbiAgZ2V0U3lzdGVtOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBYbWxcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmNvbnN0IERpc2NyaW1pbmF0b3JNYXBwaW5nID0gKHsgZGlzY3JpbWluYXRvciB9KSA9PiB7XG4gIGNvbnN0IG1hcHBpbmcgPSBkaXNjcmltaW5hdG9yPy5tYXBwaW5nIHx8IHt9XG5cbiAgaWYgKE9iamVjdC5rZXlzKG1hcHBpbmcpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gT2JqZWN0LmVudHJpZXMobWFwcGluZykubWFwKChba2V5LCB2YWx1ZV0pID0+IChcbiAgICA8ZGl2IGtleT17YCR7a2V5fS0ke3ZhbHVlfWB9IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZFwiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgIHtrZXl9XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeVwiPlxuICAgICAgICB7dmFsdWV9XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICkpXG59XG5cbkRpc2NyaW1pbmF0b3JNYXBwaW5nLnByb3BUeXBlcyA9IHtcbiAgZGlzY3JpbWluYXRvcjogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBtYXBwaW5nOiBQcm9wVHlwZXMuYW55LFxuICB9KSxcbn1cblxuZXhwb3J0IGRlZmF1bHQgRGlzY3JpbWluYXRvck1hcHBpbmdcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcblxuaW1wb3J0IERpc2NyaW1pbmF0b3JNYXBwaW5nIGZyb20gXCIuL0Rpc2NyaW1pbmF0b3JNYXBwaW5nXCJcbmltcG9ydCB7IGdldEV4dGVuc2lvbnMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vdXRpbHNcIlxuXG5jb25zdCBEaXNjcmltaW5hdG9yID0gKHsgc2NoZW1hLCBnZXRTeXN0ZW0gfSkgPT4ge1xuICBjb25zdCBkaXNjcmltaW5hdG9yID0gc2NoZW1hPy5kaXNjcmltaW5hdG9yIHx8IHt9XG4gIGNvbnN0IHsgZm4sIGdldENvbXBvbmVudCwgZ2V0Q29uZmlncyB9ID0gZ2V0U3lzdGVtKClcbiAgY29uc3QgeyBzaG93RXh0ZW5zaW9ucyB9ID0gZ2V0Q29uZmlncygpXG4gIGNvbnN0IHsgdXNlQ29tcG9uZW50LCB1c2VJc0V4cGFuZGVkLCB1c2VQYXRoLCB1c2VMZXZlbCB9ID0gZm4uanNvblNjaGVtYTIwMjAxMlxuICBjb25zdCBwYXRoVG9rZW4gPSBcImRpc2NyaW1pbmF0b3JcIlxuICBjb25zdCB7IHBhdGggfSA9IHVzZVBhdGgocGF0aFRva2VuKVxuICBjb25zdCB7IGlzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWQgfSA9IHVzZUlzRXhwYW5kZWQocGF0aFRva2VuKVxuICBjb25zdCBbbGV2ZWwsIG5leHRMZXZlbF0gPSB1c2VMZXZlbCgpXG4gIGNvbnN0IGV4dGVuc2lvbnMgPSBzaG93RXh0ZW5zaW9ucyA/IGdldEV4dGVuc2lvbnMoZGlzY3JpbWluYXRvcikgOiBbXVxuICBjb25zdCBpc0V4cGFuZGFibGUgPSAhIShkaXNjcmltaW5hdG9yLm1hcHBpbmcgfHwgZXh0ZW5zaW9ucy5sZW5ndGggPiAwKVxuICBjb25zdCBBY2NvcmRpb24gPSB1c2VDb21wb25lbnQoXCJBY2NvcmRpb25cIilcbiAgY29uc3QgRXhwYW5kRGVlcEJ1dHRvbiA9IHVzZUNvbXBvbmVudChcIkV4cGFuZERlZXBCdXR0b25cIilcbiAgY29uc3QgT3BlbkFQSTMxRXh0ZW5zaW9ucyA9IGdldENvbXBvbmVudChcIk9wZW5BUEkzMUV4dGVuc2lvbnNcIilcbiAgY29uc3QgSlNPTlNjaGVtYVBhdGhDb250ZXh0ID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMlBhdGhDb250ZXh0XCIpKClcbiAgY29uc3QgSlNPTlNjaGVtYUxldmVsQ29udGV4dCA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJMZXZlbENvbnRleHRcIikoKVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVycy5cbiAgICovXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoaXNFeHBhbmRlZCkge1xuICAgICAgc2V0Q29sbGFwc2VkKClcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RXhwYW5kZWQoKVxuICAgIH1cbiAgfSwgW2lzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWRdKVxuICBjb25zdCBoYW5kbGVFeHBhbnNpb25EZWVwID0gdXNlQ2FsbGJhY2soXG4gICAgKGUsIGV4cGFuZGVkRGVlcE5ldykgPT4ge1xuICAgICAgaWYgKGV4cGFuZGVkRGVlcE5ldykge1xuICAgICAgICBzZXRFeHBhbmRlZCh7IGRlZXA6IHRydWUgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldENvbGxhcHNlZCh7IGRlZXA6IHRydWUgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZXRFeHBhbmRlZCwgc2V0Q29sbGFwc2VkXVxuICApXG5cbiAgLyoqXG4gICAqIFJlbmRlcmluZy5cbiAgICovXG4gIGlmIChPYmplY3Qua2V5cyhkaXNjcmltaW5hdG9yKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8SlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwYXRofT5cbiAgICAgIDxKU09OU2NoZW1hTGV2ZWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtuZXh0TGV2ZWx9PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZGlzY3JpbWluYXRvclwiXG4gICAgICAgICAgZGF0YS1qc29uLXNjaGVtYS1sZXZlbD17bGV2ZWx9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNFeHBhbmRhYmxlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPEFjY29yZGlvbiBleHBhbmRlZD17aXNFeHBhbmRlZH0gb25DaGFuZ2U9e2hhbmRsZUV4cGFuc2lvbn0+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAgICBEaXNjcmltaW5hdG9yXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L0FjY29yZGlvbj5cbiAgICAgICAgICAgICAgPEV4cGFuZERlZXBCdXR0b25cbiAgICAgICAgICAgICAgICBleHBhbmRlZD17aXNFeHBhbmRlZH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVFeHBhbnNpb25EZWVwfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICBEaXNjcmltaW5hdG9yXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHtkaXNjcmltaW5hdG9yLnByb3BlcnR5TmFtZSAmJiAoXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1tdXRlZFwiPlxuICAgICAgICAgICAgICB7ZGlzY3JpbWluYXRvci5wcm9wZXJ0eU5hbWV9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnlcIj5cbiAgICAgICAgICAgIG9iamVjdFxuICAgICAgICAgIDwvc3Ryb25nPlxuICAgICAgICAgIDx1bFxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlblwiLCB7XG4gICAgICAgICAgICAgIFwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkXCI6ICFpc0V4cGFuZGVkLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lzRXhwYW5kZWQgJiYgKFxuICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eVwiPlxuICAgICAgICAgICAgICAgIDxEaXNjcmltaW5hdG9yTWFwcGluZyBkaXNjcmltaW5hdG9yPXtkaXNjcmltaW5hdG9yfSAvPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtleHRlbnNpb25zLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICA8T3BlbkFQSTMxRXh0ZW5zaW9uc1xuICAgICAgICAgICAgICAgIG9wZW5BUElTcGVjT2JqPXtkaXNjcmltaW5hdG9yfVxuICAgICAgICAgICAgICAgIG9wZW5BUElFeHRlbnNpb25zPXtleHRlbnNpb25zfVxuICAgICAgICAgICAgICAgIGdldFN5c3RlbT17Z2V0U3lzdGVtfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvSlNPTlNjaGVtYUxldmVsQ29udGV4dC5Qcm92aWRlcj5cbiAgICA8L0pTT05TY2hlbWFQYXRoQ29udGV4dC5Qcm92aWRlcj5cbiAgKVxufVxuXG5EaXNjcmltaW5hdG9yLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMub2JqZWN0LCBQcm9wVHlwZXMuYm9vbF0pLmlzUmVxdWlyZWQsXG4gIGdldFN5c3RlbTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgRGlzY3JpbWluYXRvclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuY29uc3QgT3BlbkFQSUV4dGVuc2lvbnMgPSAoe1xuICBvcGVuQVBJU3BlY09iaixcbiAgZ2V0U3lzdGVtLFxuICBvcGVuQVBJRXh0ZW5zaW9ucyxcbn0pID0+IHtcbiAgY29uc3QgeyBmbiB9ID0gZ2V0U3lzdGVtKClcbiAgY29uc3QgeyB1c2VDb21wb25lbnQgfSA9IGZuLmpzb25TY2hlbWEyMDIwMTJcblxuICBjb25zdCBKU09OVmlld2VyID0gdXNlQ29tcG9uZW50KFwiSlNPTlZpZXdlclwiKVxuICByZXR1cm4gb3BlbkFQSUV4dGVuc2lvbnMubWFwKChrZXl3b3JkKSA9PiAoXG4gICAgPEpTT05WaWV3ZXJcbiAgICAgIGtleT17a2V5d29yZH1cbiAgICAgIG5hbWU9e2tleXdvcmR9XG4gICAgICB2YWx1ZT17b3BlbkFQSVNwZWNPYmpba2V5d29yZF19XG4gICAgICBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyLWV4dGVuc2lvbi1rZXl3b3JkXCJcbiAgICAvPlxuICApKVxufVxuXG5PcGVuQVBJRXh0ZW5zaW9ucy5wcm9wVHlwZXMgPSB7XG4gIG9wZW5BUElTcGVjT2JqOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMub2JqZWN0LCBQcm9wVHlwZXMuYm9vbF0pXG4gICAgLmlzUmVxdWlyZWQsXG4gIGdldFN5c3RlbTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb3BlbkFQSUV4dGVuc2lvbnM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IE9wZW5BUElFeHRlbnNpb25zXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiXG5cbmltcG9ydCB7IHNhbml0aXplVXJsIH0gZnJvbSBcImNvcmUvdXRpbHMvdXJsXCJcbmltcG9ydCB7IGdldEV4dGVuc2lvbnMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vdXRpbHNcIlxuXG5jb25zdCBFeHRlcm5hbERvY3MgPSAoeyBzY2hlbWEsIGdldFN5c3RlbSB9KSA9PiB7XG4gIGNvbnN0IGV4dGVybmFsRG9jcyA9IHNjaGVtYT8uZXh0ZXJuYWxEb2NzIHx8IHt9XG4gIGNvbnN0IHsgZm4sIGdldENvbXBvbmVudCwgZ2V0Q29uZmlncyB9ID0gZ2V0U3lzdGVtKClcbiAgY29uc3QgeyBzaG93RXh0ZW5zaW9ucyB9ID0gZ2V0Q29uZmlncygpXG4gIGNvbnN0IHsgdXNlQ29tcG9uZW50LCB1c2VJc0V4cGFuZGVkLCB1c2VQYXRoLCB1c2VMZXZlbCB9ID0gZm4uanNvblNjaGVtYTIwMjAxMlxuICBjb25zdCBwYXRoVG9rZW4gPSBcImV4dGVybmFsRG9jc1wiXG4gIGNvbnN0IHsgcGF0aCB9ID0gdXNlUGF0aChwYXRoVG9rZW4pXG4gIGNvbnN0IHsgaXNFeHBhbmRlZCwgc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZCB9ID0gdXNlSXNFeHBhbmRlZChwYXRoVG9rZW4pXG4gIGNvbnN0IFtsZXZlbCwgbmV4dExldmVsXSA9IHVzZUxldmVsKClcbiAgY29uc3QgZXh0ZW5zaW9ucyA9IHNob3dFeHRlbnNpb25zID8gZ2V0RXh0ZW5zaW9ucyhleHRlcm5hbERvY3MpIDogW11cbiAgY29uc3QgaXNFeHBhbmRhYmxlID0gISEoXG4gICAgZXh0ZXJuYWxEb2NzLmRlc2NyaXB0aW9uIHx8XG4gICAgZXh0ZXJuYWxEb2NzLnVybCB8fFxuICAgIGV4dGVuc2lvbnMubGVuZ3RoID4gMFxuICApXG4gIGNvbnN0IEFjY29yZGlvbiA9IHVzZUNvbXBvbmVudChcIkFjY29yZGlvblwiKVxuICBjb25zdCBFeHBhbmREZWVwQnV0dG9uID0gdXNlQ29tcG9uZW50KFwiRXhwYW5kRGVlcEJ1dHRvblwiKVxuICBjb25zdCBLZXl3b3JkRGVzY3JpcHRpb24gPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlc2NyaXB0aW9uXCIpXG4gIGNvbnN0IExpbmsgPSBnZXRDb21wb25lbnQoXCJMaW5rXCIpXG4gIGNvbnN0IE9wZW5BUEkzMUV4dGVuc2lvbnMgPSBnZXRDb21wb25lbnQoXCJPcGVuQVBJMzFFeHRlbnNpb25zXCIpXG4gIGNvbnN0IEpTT05TY2hlbWFQYXRoQ29udGV4dCA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJQYXRoQ29udGV4dFwiKSgpXG4gIGNvbnN0IEpTT05TY2hlbWFMZXZlbENvbnRleHQgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyTGV2ZWxDb250ZXh0XCIpKClcblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlcnMuXG4gICAqL1xuICBjb25zdCBoYW5kbGVFeHBhbnNpb24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKGlzRXhwYW5kZWQpIHtcbiAgICAgIHNldENvbGxhcHNlZCgpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEV4cGFuZGVkKClcbiAgICB9XG4gIH0sIFtpc0V4cGFuZGVkLCBzZXRFeHBhbmRlZCwgc2V0Q29sbGFwc2VkXSlcbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uRGVlcCA9IHVzZUNhbGxiYWNrKFxuICAgIChlLCBleHBhbmRlZERlZXBOZXcpID0+IHtcbiAgICAgIGlmIChleHBhbmRlZERlZXBOZXcpIHtcbiAgICAgICAgc2V0RXhwYW5kZWQoeyBkZWVwOiB0cnVlIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRDb2xsYXBzZWQoeyBkZWVwOiB0cnVlIH0pXG4gICAgICB9XG4gICAgfSxcbiAgICBbc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZF1cbiAgKVxuXG4gIC8qKlxuICAgKiBSZW5kZXJpbmcuXG4gICAqL1xuICBpZiAoT2JqZWN0LmtleXMoZXh0ZXJuYWxEb2NzKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8SlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwYXRofT5cbiAgICAgIDxKU09OU2NoZW1hTGV2ZWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtuZXh0TGV2ZWx9PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZXh0ZXJuYWxEb2NzXCJcbiAgICAgICAgICBkYXRhLWpzb24tc2NoZW1hLWxldmVsPXtsZXZlbH1cbiAgICAgICAgPlxuICAgICAgICAgIHtpc0V4cGFuZGFibGUgPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICA8QWNjb3JkaW9uIGV4cGFuZGVkPXtpc0V4cGFuZGVkfSBvbkNoYW5nZT17aGFuZGxlRXhwYW5zaW9ufT5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAgICAgIEV4dGVybmFsIGRvY3VtZW50YXRpb25cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvQWNjb3JkaW9uPlxuICAgICAgICAgICAgICA8RXhwYW5kRGVlcEJ1dHRvblxuICAgICAgICAgICAgICAgIGV4cGFuZGVkPXtpc0V4cGFuZGVkfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUV4cGFuc2lvbkRlZXB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgIEV4dGVybmFsIGRvY3VtZW50YXRpb25cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxzdHJvbmcgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeVwiPlxuICAgICAgICAgICAgb2JqZWN0XG4gICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuXCIsIHtcbiAgICAgICAgICAgICAgXCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWRcIjogIWlzRXhwYW5kZWQsXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aXNFeHBhbmRlZCAmJiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2V4dGVybmFsRG9jcy5kZXNjcmlwdGlvbiAmJiAoXG4gICAgICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eVwiPlxuICAgICAgICAgICAgICAgICAgICA8S2V5d29yZERlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgc2NoZW1hPXtleHRlcm5hbERvY3N9XG4gICAgICAgICAgICAgICAgICAgICAgZ2V0U3lzdGVtPXtnZXRTeXN0ZW19XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICB7ZXh0ZXJuYWxEb2NzLnVybCAmJiAoXG4gICAgICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHVybFxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17c2FuaXRpemVVcmwoZXh0ZXJuYWxEb2NzLnVybCl9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtleHRlcm5hbERvY3MudXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtleHRlbnNpb25zLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICA8T3BlbkFQSTMxRXh0ZW5zaW9uc1xuICAgICAgICAgICAgICAgIG9wZW5BUElTcGVjT2JqPXtleHRlcm5hbERvY3N9XG4gICAgICAgICAgICAgICAgb3BlbkFQSUV4dGVuc2lvbnM9e2V4dGVuc2lvbnN9XG4gICAgICAgICAgICAgICAgZ2V0U3lzdGVtPXtnZXRTeXN0ZW19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9KU09OU2NoZW1hTGV2ZWxDb250ZXh0LlByb3ZpZGVyPlxuICAgIDwvSlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbkV4dGVybmFsRG9jcy5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm9iamVjdCwgUHJvcFR5cGVzLmJvb2xdKS5pc1JlcXVpcmVkLFxuICBnZXRTeXN0ZW06IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEV4dGVybmFsRG9jc1xuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuY29uc3QgRGVzY3JpcHRpb24gPSAoeyBzY2hlbWEsIGdldFN5c3RlbSB9KSA9PiB7XG4gIGlmICghc2NoZW1hPy5kZXNjcmlwdGlvbikgcmV0dXJuIG51bGxcblxuICBjb25zdCB7IGdldENvbXBvbmVudCB9ID0gZ2V0U3lzdGVtKClcbiAgY29uc3QgTWFya0Rvd24gPSBnZXRDb21wb25lbnQoXCJNYXJrZG93blwiKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kZXNjcmlwdGlvblwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWNvcmUta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1jb3JlLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnlcIj5cbiAgICAgICAgPE1hcmtEb3duIHNvdXJjZT17c2NoZW1hLmRlc2NyaXB0aW9ufSAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuRGVzY3JpcHRpb24ucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5vYmplY3QsIFByb3BUeXBlcy5ib29sXSkuaXNSZXF1aXJlZCxcbiAgZ2V0U3lzdGVtOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBEZXNjcmlwdGlvblxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IERlc2NyaXB0aW9uS2V5d29yZCBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9rZXl3b3Jkcy9EZXNjcmlwdGlvblwiXG5pbXBvcnQgeyBjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyIH0gZnJvbSBcIi4uLy4uLy4uL2ZuXCJcblxuY29uc3QgRGVzY3JpcHRpb25XcmFwcGVyID0gY3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcihEZXNjcmlwdGlvbktleXdvcmQpXG5cbmV4cG9ydCBkZWZhdWx0IERlc2NyaXB0aW9uV3JhcHBlclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyIH0gZnJvbSBcIi4uLy4uLy4uL2ZuXCJcblxuY29uc3QgRXhhbXBsZXNXcmFwcGVyID0gY3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcihcbiAgKHsgc2NoZW1hLCBnZXRTeXN0ZW0sIG9yaWdpbmFsQ29tcG9uZW50OiBLZXl3b3JkRXhhbXBsZXMgfSkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0Q29tcG9uZW50IH0gPSBnZXRTeXN0ZW0oKVxuICAgIGNvbnN0IEtleXdvcmREaXNjcmltaW5hdG9yID0gZ2V0Q29tcG9uZW50KFxuICAgICAgXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERpc2NyaW1pbmF0b3JcIlxuICAgIClcbiAgICBjb25zdCBLZXl3b3JkWG1sID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRYbWxcIilcbiAgICBjb25zdCBLZXl3b3JkRXhhbXBsZSA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXhhbXBsZVwiKVxuICAgIGNvbnN0IEtleXdvcmRFeHRlcm5hbERvY3MgPSBnZXRDb21wb25lbnQoXG4gICAgICBcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXh0ZXJuYWxEb2NzXCJcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPEtleXdvcmRFeGFtcGxlcyBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgPEtleXdvcmREaXNjcmltaW5hdG9yIHNjaGVtYT17c2NoZW1hfSBnZXRTeXN0ZW09e2dldFN5c3RlbX0gLz5cbiAgICAgICAgPEtleXdvcmRYbWwgc2NoZW1hPXtzY2hlbWF9IGdldFN5c3RlbT17Z2V0U3lzdGVtfSAvPlxuICAgICAgICA8S2V5d29yZEV4dGVybmFsRG9jcyBzY2hlbWE9e3NjaGVtYX0gZ2V0U3lzdGVtPXtnZXRTeXN0ZW19IC8+XG4gICAgICAgIDxLZXl3b3JkRXhhbXBsZSBzY2hlbWE9e3NjaGVtYX0gZ2V0U3lzdGVtPXtnZXRTeXN0ZW19IC8+XG4gICAgICA8Lz5cbiAgICApXG4gIH1cbilcblxuZXhwb3J0IGRlZmF1bHQgRXhhbXBsZXNXcmFwcGVyXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuXG5jb25zdCBQcm9wZXJ0aWVzID0gKHsgc2NoZW1hLCBnZXRTeXN0ZW0gfSkgPT4ge1xuICBjb25zdCB7IGZuLCBnZXRDb21wb25lbnQgfSA9IGdldFN5c3RlbSgpXG4gIGNvbnN0IHsgdXNlQ29tcG9uZW50LCB1c2VQYXRoIH0gPSBmbi5qc29uU2NoZW1hMjAyMDEyXG4gIGNvbnN0IHsgZ2V0RGVwZW5kZW50UmVxdWlyZWQsIGdldFByb3BlcnRpZXMgfSA9IGZuLmpzb25TY2hlbWEyMDIwMTIudXNlRm4oKVxuICBjb25zdCBjb25maWcgPSBmbi5qc29uU2NoZW1hMjAyMDEyLnVzZUNvbmZpZygpXG4gIGNvbnN0IHJlcXVpcmVkID0gQXJyYXkuaXNBcnJheShzY2hlbWE/LnJlcXVpcmVkKSA/IHNjaGVtYS5yZXF1aXJlZCA6IFtdXG4gIGNvbnN0IHsgcGF0aCB9ID0gdXNlUGF0aChcInByb3BlcnRpZXNcIilcbiAgY29uc3QgSlNPTlNjaGVtYSA9IHVzZUNvbXBvbmVudChcIkpTT05TY2hlbWFcIilcbiAgY29uc3QgSlNPTlNjaGVtYVBhdGhDb250ZXh0ID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMlBhdGhDb250ZXh0XCIpKClcbiAgY29uc3QgcHJvcGVydGllcyA9IGdldFByb3BlcnRpZXMoc2NoZW1hLCBjb25maWcpXG5cbiAgLyoqXG4gICAqIFJlbmRlcmluZy5cbiAgICovXG4gIGlmIChPYmplY3Qua2V5cyhwcm9wZXJ0aWVzKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8SlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwYXRofT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tcHJvcGVydGllc1wiPlxuICAgICAgICA8dWw+XG4gICAgICAgICAge09iamVjdC5lbnRyaWVzKHByb3BlcnRpZXMpLm1hcCgoW3Byb3BlcnR5TmFtZSwgcHJvcGVydHlTY2hlbWFdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc1JlcXVpcmVkID0gcmVxdWlyZWQuaW5jbHVkZXMocHJvcGVydHlOYW1lKVxuICAgICAgICAgICAgY29uc3QgZGVwZW5kZW50UmVxdWlyZWQgPSBnZXREZXBlbmRlbnRSZXF1aXJlZChwcm9wZXJ0eU5hbWUsIHNjaGVtYSlcblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAga2V5PXtwcm9wZXJ0eU5hbWV9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eVwiLCB7XG4gICAgICAgICAgICAgICAgICBcImpzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHktLXJlcXVpcmVkXCI6IGlzUmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8SlNPTlNjaGVtYVxuICAgICAgICAgICAgICAgICAgbmFtZT17cHJvcGVydHlOYW1lfVxuICAgICAgICAgICAgICAgICAgc2NoZW1hPXtwcm9wZXJ0eVNjaGVtYX1cbiAgICAgICAgICAgICAgICAgIGRlcGVuZGVudFJlcXVpcmVkPXtkZXBlbmRlbnRSZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0pfVxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgPC9KU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuUHJvcGVydGllcy5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm9iamVjdCwgUHJvcFR5cGVzLmJvb2xdKS5pc1JlcXVpcmVkLFxuICBnZXRTeXN0ZW06IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFByb3BlcnRpZXNcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBQcm9wZXJ0aWVzS2V5d29yZCBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9rZXl3b3Jkcy9Qcm9wZXJ0aWVzXCJcbmltcG9ydCB7IGNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIgfSBmcm9tIFwiLi4vLi4vLi4vZm5cIlxuXG5jb25zdCBQcm9wZXJ0aWVzV3JhcHBlciA9IGNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoUHJvcGVydGllc0tleXdvcmQpXG5cbmV4cG9ydCBkZWZhdWx0IFByb3BlcnRpZXNXcmFwcGVyXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQge1xuICBtYWtlSXNFeHBhbmRhYmxlLFxuICBnZXRQcm9wZXJ0aWVzLFxufSBmcm9tIFwiLi9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvZm5cIlxuaW1wb3J0IHsgd3JhcE9BUzMxRm4gfSBmcm9tIFwiLi9mblwiXG5pbXBvcnQgeyBtYWtlSXNGaWxlVXBsb2FkSW50ZW5kZWQgfSBmcm9tIFwiLi9vYXMzLWV4dGVuc2lvbnMvZm5cIlxuaW1wb3J0IHsgaW1tdXRhYmxlVG9KUyB9IGZyb20gXCJjb3JlL3V0aWxzXCJcblxuZnVuY3Rpb24gYWZ0ZXJMb2FkKHsgZm4sIGdldFN5c3RlbSB9KSB7XG4gIC8vIG92ZXJyaWRlcyBmb3IgZm4uanNvblNjaGVtYTIwMjAxMlxuICBpZiAoZm4uanNvblNjaGVtYTIwMjAxMikge1xuICAgIGNvbnN0IGlzRXhwYW5kYWJsZSA9IG1ha2VJc0V4cGFuZGFibGUoXG4gICAgICBmbi5qc29uU2NoZW1hMjAyMDEyLmlzRXhwYW5kYWJsZSxcbiAgICAgIGdldFN5c3RlbVxuICAgIClcblxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5mbi5qc29uU2NoZW1hMjAyMDEyLCB7IGlzRXhwYW5kYWJsZSwgZ2V0UHJvcGVydGllcyB9KVxuICB9XG5cbiAgLy8gd3JhcHMgc2NoZW1hIGdlbmVyYXRvcnMgZnJvbSBzYW1wbGVzIHBsdWdpbiBhbmQgbWFrZSB0aGVtIHNwZWNpZmljIHRvIE9wZW5BUEkgMy4xIHZlcnNpb25cbiAgaWYgKHR5cGVvZiBmbi5zYW1wbGVGcm9tU2NoZW1hID09PSBcImZ1bmN0aW9uXCIgJiYgZm4uanNvblNjaGVtYTIwMjAxMikge1xuICAgIGNvbnN0IHdyYXBwZWRGbnMgPSB3cmFwT0FTMzFGbihcbiAgICAgIHtcbiAgICAgICAgc2FtcGxlRnJvbVNjaGVtYTogZm4uanNvblNjaGVtYTIwMjAxMi5zYW1wbGVGcm9tU2NoZW1hLFxuICAgICAgICBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYzogZm4uanNvblNjaGVtYTIwMjAxMi5zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyxcbiAgICAgICAgY3JlYXRlWE1MRXhhbXBsZTogZm4uanNvblNjaGVtYTIwMjAxMi5jcmVhdGVYTUxFeGFtcGxlLFxuICAgICAgICBtZW1vaXplZFNhbXBsZUZyb21TY2hlbWE6IGZuLmpzb25TY2hlbWEyMDIwMTIubWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hLFxuICAgICAgICBtZW1vaXplZENyZWF0ZVhNTEV4YW1wbGU6IGZuLmpzb25TY2hlbWEyMDIwMTIubWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlLFxuICAgICAgICBnZXRKc29uU2FtcGxlU2NoZW1hOiBmbi5qc29uU2NoZW1hMjAyMDEyLmdldEpzb25TYW1wbGVTY2hlbWEsXG4gICAgICAgIGdldFlhbWxTYW1wbGVTY2hlbWE6IGZuLmpzb25TY2hlbWEyMDIwMTIuZ2V0WWFtbFNhbXBsZVNjaGVtYSxcbiAgICAgICAgZ2V0WG1sU2FtcGxlU2NoZW1hOiBmbi5qc29uU2NoZW1hMjAyMDEyLmdldFhtbFNhbXBsZVNjaGVtYSxcbiAgICAgICAgZ2V0U2FtcGxlU2NoZW1hOiBmbi5qc29uU2NoZW1hMjAyMDEyLmdldFNhbXBsZVNjaGVtYSxcbiAgICAgICAgbWVyZ2VKc29uU2NoZW1hOiBmbi5qc29uU2NoZW1hMjAyMDEyLm1lcmdlSnNvblNjaGVtYSxcbiAgICAgICAgZ2V0U2NoZW1hT2JqZWN0VHlwZUxhYmVsOiAoc2NoZW1hKSA9PlxuICAgICAgICAgIGZuLmpzb25TY2hlbWEyMDIwMTIuZ2V0VHlwZShpbW11dGFibGVUb0pTKHNjaGVtYSkpLFxuICAgICAgICBnZXRTY2hlbWFPYmplY3RUeXBlOiAoc2NoZW1hKSA9PlxuICAgICAgICAgIGZuLmpzb25TY2hlbWEyMDIwMTIuZm9sZFR5cGUoaW1tdXRhYmxlVG9KUyhzY2hlbWEpPy50eXBlKSxcbiAgICAgIH0sXG4gICAgICBnZXRTeXN0ZW0oKVxuICAgIClcblxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5mbiwgd3JhcHBlZEZucylcbiAgfVxuXG4gIC8vIG92ZXJyaWRlcyBiZWhhdmlvciBpbiBPcGVuQVBJIDMuMS54LCByZWNvZ25pemVzIG1vcmUgaW50ZW50aW9uc1xuICBjb25zdCBpc0ZpbGVVcGxvYWRJbnRlbmRlZCA9IG1ha2VJc0ZpbGVVcGxvYWRJbnRlbmRlZChnZXRTeXN0ZW0pXG4gIGNvbnN0IHsgaXNGaWxlVXBsb2FkSW50ZW5kZWQ6IGlzRmlsZVVwbG9hZEludGVuZGVkV3JhcCB9ID0gd3JhcE9BUzMxRm4oXG4gICAge1xuICAgICAgaXNGaWxlVXBsb2FkSW50ZW5kZWQsXG4gICAgfSxcbiAgICBnZXRTeXN0ZW0oKVxuICApXG5cbiAgdGhpcy5mbi5pc0ZpbGVVcGxvYWRJbnRlbmRlZCA9IGlzRmlsZVVwbG9hZEludGVuZGVkV3JhcFxuICB0aGlzLmZuLmlzRmlsZVVwbG9hZEludGVuZGVkT0FTMzEgPSBpc0ZpbGVVcGxvYWRJbnRlbmRlZFxuXG4gIGlmIChmbi5qc29uU2NoZW1hMjAyMDEyKSB7XG4gICAgY29uc3QgeyBoYXNTY2hlbWFUeXBlIH0gPSB3cmFwT0FTMzFGbihcbiAgICAgIHtcbiAgICAgICAgaGFzU2NoZW1hVHlwZTogZm4uanNvblNjaGVtYTIwMjAxMi5oYXNTY2hlbWFUeXBlLFxuICAgICAgfSxcbiAgICAgIGdldFN5c3RlbSgpXG4gICAgKVxuXG4gICAgdGhpcy5mbi5oYXNTY2hlbWFUeXBlID0gaGFzU2NoZW1hVHlwZVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFmdGVyTG9hZFxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgTWFwIH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tIFwibG9kYXNoL2lzUGxhaW5PYmplY3RcIlxuXG5leHBvcnQgY29uc3QgbWFrZUlzRmlsZVVwbG9hZEludGVuZGVkID0gKGdldFN5c3RlbSkgPT4ge1xuICBjb25zdCBpc0ZpbGVVcGxvYWRJbnRlbmRlZCA9IChzY2hlbWEsIG1lZGlhVHlwZSA9IG51bGwpID0+IHtcbiAgICBjb25zdCB7IGZuIH0gPSBnZXRTeXN0ZW0oKVxuXG4gICAgLyoqXG4gICAgICogIFJldHVybiBgdHJ1ZWAgZWFybHkgaWYgdGhlIG1lZGlhIHR5cGUgaW5kaWNhdGVzIGEgZmlsZSB1cGxvYWRcbiAgICAgKiAgb3IgaWYgYSBjb21iaW5hdGlvbiBvZiB0eXBlOiBgc3RyaW5nYCBhbmQgZm9ybWF0OiBgYmluYXJ5L2J5dGVgIGlzIGRldGVjdGVkLlxuICAgICAqICBUaGlzIGVuc3VyZXMgc3VwcG9ydCBmb3IgZW1wdHkgTWVkaWEgVHlwZSBPYmplY3RzLFxuICAgICAqICBhcyB0aGUgc2NoZW1hIGNoZWNrIGlzIHBlcmZvcm1lZCBsYXRlci5cbiAgICAgKi9cbiAgICBjb25zdCBpc0ZpbGVVcGxvYWRJbnRlbmRlZE9BUzMwID0gZm4uaXNGaWxlVXBsb2FkSW50ZW5kZWRPQVMzMChcbiAgICAgIHNjaGVtYSxcbiAgICAgIG1lZGlhVHlwZVxuICAgIClcblxuICAgIGlmIChpc0ZpbGVVcGxvYWRJbnRlbmRlZE9BUzMwKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGNvbnN0IGlzU2NoZW1hSW1tdXRhYmxlID0gTWFwLmlzTWFwKHNjaGVtYSlcblxuICAgIGlmICghaXNTY2hlbWFJbW11dGFibGUgJiYgIWlzUGxhaW5PYmplY3Qoc2NoZW1hKSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgY29uc3QgY29udGVudE1lZGlhVHlwZSA9IGlzU2NoZW1hSW1tdXRhYmxlXG4gICAgICA/IHNjaGVtYS5nZXQoXCJjb250ZW50TWVkaWFUeXBlXCIpXG4gICAgICA6IHNjaGVtYS5jb250ZW50TWVkaWFUeXBlXG4gICAgY29uc3QgY29udGVudEVuY29kaW5nID0gaXNTY2hlbWFJbW11dGFibGVcbiAgICAgID8gc2NoZW1hLmdldChcImNvbnRlbnRFbmNvZGluZ1wiKVxuICAgICAgOiBzY2hlbWEuY29udGVudEVuY29kaW5nXG5cbiAgICByZXR1cm4gKFxuICAgICAgKHR5cGVvZiBjb250ZW50TWVkaWFUeXBlID09PSBcInN0cmluZ1wiICYmIGNvbnRlbnRNZWRpYVR5cGUgIT09IFwiXCIpIHx8XG4gICAgICAodHlwZW9mIGNvbnRlbnRFbmNvZGluZyA9PT0gXCJzdHJpbmdcIiAmJiBjb250ZW50RW5jb2RpbmcgIT09IFwiXCIpXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIGlzRmlsZVVwbG9hZEludGVuZGVkXG59XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgV2ViaG9va3MgZnJvbSBcIi4vY29tcG9uZW50cy93ZWJob29rc1wiXG5pbXBvcnQgTGljZW5zZSBmcm9tIFwiLi9jb21wb25lbnRzL2xpY2Vuc2VcIlxuaW1wb3J0IENvbnRhY3QgZnJvbSBcIi4vY29tcG9uZW50cy9jb250YWN0XCJcbmltcG9ydCBJbmZvIGZyb20gXCIuL2NvbXBvbmVudHMvaW5mb1wiXG5pbXBvcnQgSnNvblNjaGVtYURpYWxlY3QgZnJvbSBcIi4vY29tcG9uZW50cy9qc29uLXNjaGVtYS1kaWFsZWN0XCJcbmltcG9ydCBWZXJzaW9uUHJhZ21hRmlsdGVyIGZyb20gXCIuL2NvbXBvbmVudHMvdmVyc2lvbi1wcmFnbWEtZmlsdGVyXCJcbmltcG9ydCBNb2RlbCBmcm9tIFwiLi9jb21wb25lbnRzL21vZGVsL21vZGVsXCJcbmltcG9ydCBNb2RlbHMgZnJvbSBcIi4vY29tcG9uZW50cy9tb2RlbHMvbW9kZWxzXCJcbmltcG9ydCBNdXR1YWxUTFNBdXRoIGZyb20gXCIuL2NvbXBvbmVudHMvYXV0aC9tdXR1YWwtdGxzLWF1dGhcIlxuaW1wb3J0IEF1dGhzIGZyb20gXCIuL2NvbXBvbmVudHMvYXV0aC9hdXRoc1wiXG5pbXBvcnQgTGljZW5zZVdyYXBwZXIgZnJvbSBcIi4vd3JhcC1jb21wb25lbnRzL2xpY2Vuc2VcIlxuaW1wb3J0IENvbnRhY3RXcmFwcGVyIGZyb20gXCIuL3dyYXAtY29tcG9uZW50cy9jb250YWN0XCJcbmltcG9ydCBJbmZvV3JhcHBlciBmcm9tIFwiLi93cmFwLWNvbXBvbmVudHMvaW5mb1wiXG5pbXBvcnQgTW9kZWxXcmFwcGVyIGZyb20gXCIuL3dyYXAtY29tcG9uZW50cy9tb2RlbFwiXG5pbXBvcnQgTW9kZWxzV3JhcHBlciBmcm9tIFwiLi93cmFwLWNvbXBvbmVudHMvbW9kZWxzXCJcbmltcG9ydCBWZXJzaW9uUHJhZ21hRmlsdGVyV3JhcHBlciBmcm9tIFwiLi93cmFwLWNvbXBvbmVudHMvdmVyc2lvbi1wcmFnbWEtZmlsdGVyXCJcbmltcG9ydCBBdXRoSXRlbVdyYXBwZXIgZnJvbSBcIi4vd3JhcC1jb21wb25lbnRzL2F1dGgvYXV0aC1pdGVtXCJcbmltcG9ydCBBdXRoc1dyYXBwZXIgZnJvbSBcIi4vd3JhcC1jb21wb25lbnRzL2F1dGhzXCJcbmltcG9ydCB7XG4gIGlzT0FTMzEgYXMgaXNPQVMzMUZuLFxuICBjcmVhdGVPbmx5T0FTMzFTZWxlY3RvciBhcyBjcmVhdGVPbmx5T0FTMzFTZWxlY3RvckZuLFxuICBjcmVhdGVTeXN0ZW1TZWxlY3RvciBhcyBjcmVhdGVTeXN0ZW1TZWxlY3RvckZuLFxufSBmcm9tIFwiLi9mblwiXG5pbXBvcnQge1xuICBsaWNlbnNlIGFzIHNlbGVjdExpY2Vuc2UsXG4gIGNvbnRhY3QgYXMgc2VsZWN0Q29udGFjdCxcbiAgd2ViaG9va3MgYXMgc2VsZWN0V2ViaG9va3MsXG4gIHNlbGVjdExpY2Vuc2VOYW1lRmllbGQsXG4gIHNlbGVjdExpY2Vuc2VVcmxGaWVsZCxcbiAgc2VsZWN0TGljZW5zZUlkZW50aWZpZXJGaWVsZCxcbiAgc2VsZWN0Q29udGFjdE5hbWVGaWVsZCxcbiAgc2VsZWN0Q29udGFjdEVtYWlsRmllbGQsXG4gIHNlbGVjdENvbnRhY3RVcmxGaWVsZCxcbiAgc2VsZWN0Q29udGFjdFVybCxcbiAgaXNPQVMzMSBhcyBzZWxlY3RJc09BUzMxLFxuICBzZWxlY3RMaWNlbnNlVXJsLFxuICBzZWxlY3RJbmZvVGl0bGVGaWVsZCxcbiAgc2VsZWN0SW5mb1N1bW1hcnlGaWVsZCxcbiAgc2VsZWN0SW5mb0Rlc2NyaXB0aW9uRmllbGQsXG4gIHNlbGVjdEluZm9UZXJtc09mU2VydmljZUZpZWxkLFxuICBzZWxlY3RJbmZvVGVybXNPZlNlcnZpY2VVcmwsXG4gIHNlbGVjdEV4dGVybmFsRG9jc0Rlc2NyaXB0aW9uRmllbGQsXG4gIHNlbGVjdEV4dGVybmFsRG9jc1VybEZpZWxkLFxuICBzZWxlY3RFeHRlcm5hbERvY3NVcmwsXG4gIHNlbGVjdFdlYmhvb2tzT3BlcmF0aW9ucyxcbiAgc2VsZWN0SnNvblNjaGVtYURpYWxlY3RGaWVsZCxcbiAgc2VsZWN0SnNvblNjaGVtYURpYWxlY3REZWZhdWx0LFxuICBzZWxlY3RTY2hlbWFzLFxufSBmcm9tIFwiLi9zcGVjLWV4dGVuc2lvbnMvc2VsZWN0b3JzXCJcbmltcG9ydCB7XG4gIGlzT0FTMyBhcyBpc09BUzNTZWxlY3RvcldyYXBwZXIsXG4gIHNlbGVjdExpY2Vuc2VVcmwgYXMgc2VsZWN0TGljZW5zZVVybFdyYXBwZXIsXG59IGZyb20gXCIuL3NwZWMtZXh0ZW5zaW9ucy93cmFwLXNlbGVjdG9yc1wiXG5pbXBvcnQgeyBkZWZpbml0aW9uc1RvQXV0aG9yaXplIGFzIGRlZmluaXRpb25zVG9BdXRob3JpemVXcmFwcGVyIH0gZnJvbSBcIi4vYXV0aC1leHRlbnNpb25zL3dyYXAtc2VsZWN0b3JzXCJcbmltcG9ydCB7IHNlbGVjdExpY2Vuc2VVcmwgYXMgc2VsZWN0T0FTMzFMaWNlbnNlVXJsIH0gZnJvbSBcIi4vc2VsZWN0b3JzXCJcbmltcG9ydCBKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4YW1wbGUgZnJvbSBcIi4vanNvbi1zY2hlbWEtMjAyMC0xMi1leHRlbnNpb25zL2NvbXBvbmVudHMva2V5d29yZHMvRXhhbXBsZVwiXG5pbXBvcnQgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRYbWwgZnJvbSBcIi4vanNvbi1zY2hlbWEtMjAyMC0xMi1leHRlbnNpb25zL2NvbXBvbmVudHMva2V5d29yZHMvWG1sXCJcbmltcG9ydCBKU09OU2NoZW1hMjAyMDEyS2V5d29yZERpc2NyaW1pbmF0b3IgZnJvbSBcIi4vanNvbi1zY2hlbWEtMjAyMC0xMi1leHRlbnNpb25zL2NvbXBvbmVudHMva2V5d29yZHMvRGlzY3JpbWluYXRvci9EaXNjcmltaW5hdG9yXCJcbmltcG9ydCBPcGVuQVBJRXh0ZW5zaW9ucyBmcm9tIFwiLi9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvY29tcG9uZW50cy9rZXl3b3Jkcy9PcGVuQVBJRXh0ZW5zaW9uc1wiXG5pbXBvcnQgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFeHRlcm5hbERvY3MgZnJvbSBcIi4vanNvbi1zY2hlbWEtMjAyMC0xMi1leHRlbnNpb25zL2NvbXBvbmVudHMva2V5d29yZHMvRXh0ZXJuYWxEb2NzXCJcbmltcG9ydCBKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlc2NyaXB0aW9uV3JhcHBlciBmcm9tIFwiLi9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvd3JhcC1jb21wb25lbnRzL2tleXdvcmRzL0Rlc2NyaXB0aW9uXCJcbmltcG9ydCBKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4YW1wbGVzV3JhcHBlciBmcm9tIFwiLi9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvd3JhcC1jb21wb25lbnRzL2tleXdvcmRzL0V4YW1wbGVzXCJcbmltcG9ydCBKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByb3BlcnRpZXNXcmFwcGVyIGZyb20gXCIuL2pzb24tc2NoZW1hLTIwMjAtMTItZXh0ZW5zaW9ucy93cmFwLWNvbXBvbmVudHMva2V5d29yZHMvUHJvcGVydGllc1wiXG5pbXBvcnQgYWZ0ZXJMb2FkIGZyb20gXCIuL2FmdGVyLWxvYWRcIlxuXG5jb25zdCBPQVMzMVBsdWdpbiA9ICh7IGZuIH0pID0+IHtcbiAgY29uc3QgY3JlYXRlU3lzdGVtU2VsZWN0b3IgPSBmbi5jcmVhdGVTeXN0ZW1TZWxlY3RvciB8fCBjcmVhdGVTeXN0ZW1TZWxlY3RvckZuXG4gIGNvbnN0IGNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yID0gZm4uY3JlYXRlT25seU9BUzMxU2VsZWN0b3IgfHwgY3JlYXRlT25seU9BUzMxU2VsZWN0b3JGbiAvLyBwcmV0dGllci1pZ25vcmVcblxuICByZXR1cm4ge1xuICAgIGFmdGVyTG9hZCxcbiAgICBmbjoge1xuICAgICAgaXNPQVMzMTogaXNPQVMzMUZuLFxuICAgICAgY3JlYXRlU3lzdGVtU2VsZWN0b3I6IGNyZWF0ZVN5c3RlbVNlbGVjdG9yRm4sXG4gICAgICBjcmVhdGVPbmx5T0FTMzFTZWxlY3RvcjogY3JlYXRlT25seU9BUzMxU2VsZWN0b3JGbixcbiAgICB9LFxuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgIFdlYmhvb2tzLFxuICAgICAgSnNvblNjaGVtYURpYWxlY3QsXG4gICAgICBNdXR1YWxUTFNBdXRoLFxuICAgICAgT0FTMzFJbmZvOiBJbmZvLFxuICAgICAgT0FTMzFMaWNlbnNlOiBMaWNlbnNlLFxuICAgICAgT0FTMzFDb250YWN0OiBDb250YWN0LFxuICAgICAgT0FTMzFWZXJzaW9uUHJhZ21hRmlsdGVyOiBWZXJzaW9uUHJhZ21hRmlsdGVyLFxuICAgICAgT0FTMzFNb2RlbDogTW9kZWwsXG4gICAgICBPQVMzMU1vZGVsczogTW9kZWxzLFxuICAgICAgT0FTMzFBdXRoczogQXV0aHMsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4YW1wbGUsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZFhtbCxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGlzY3JpbWluYXRvcixcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXh0ZXJuYWxEb2NzLFxuICAgICAgT3BlbkFQSTMxRXh0ZW5zaW9uczogT3BlbkFQSUV4dGVuc2lvbnMsXG4gICAgfSxcbiAgICB3cmFwQ29tcG9uZW50czoge1xuICAgICAgSW5mb0NvbnRhaW5lcjogSW5mb1dyYXBwZXIsXG4gICAgICBMaWNlbnNlOiBMaWNlbnNlV3JhcHBlcixcbiAgICAgIENvbnRhY3Q6IENvbnRhY3RXcmFwcGVyLFxuICAgICAgVmVyc2lvblByYWdtYUZpbHRlcjogVmVyc2lvblByYWdtYUZpbHRlcldyYXBwZXIsXG4gICAgICBNb2RlbDogTW9kZWxXcmFwcGVyLFxuICAgICAgTW9kZWxzOiBNb2RlbHNXcmFwcGVyLFxuICAgICAgQXV0aEl0ZW06IEF1dGhJdGVtV3JhcHBlcixcbiAgICAgIGF1dGhzOiBBdXRoc1dyYXBwZXIsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlc2NyaXB0aW9uOlxuICAgICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlc2NyaXB0aW9uV3JhcHBlcixcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXhhbXBsZXM6IEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXhhbXBsZXNXcmFwcGVyLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRQcm9wZXJ0aWVzOlxuICAgICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByb3BlcnRpZXNXcmFwcGVyLFxuICAgIH0sXG4gICAgc3RhdGVQbHVnaW5zOiB7XG4gICAgICBhdXRoOiB7XG4gICAgICAgIHdyYXBTZWxlY3RvcnM6IHtcbiAgICAgICAgICBkZWZpbml0aW9uc1RvQXV0aG9yaXplOiBkZWZpbml0aW9uc1RvQXV0aG9yaXplV3JhcHBlcixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzcGVjOiB7XG4gICAgICAgIHNlbGVjdG9yczoge1xuICAgICAgICAgIGlzT0FTMzE6IGNyZWF0ZVN5c3RlbVNlbGVjdG9yKHNlbGVjdElzT0FTMzEpLFxuXG4gICAgICAgICAgbGljZW5zZTogc2VsZWN0TGljZW5zZSxcbiAgICAgICAgICBzZWxlY3RMaWNlbnNlTmFtZUZpZWxkLFxuICAgICAgICAgIHNlbGVjdExpY2Vuc2VVcmxGaWVsZCxcbiAgICAgICAgICBzZWxlY3RMaWNlbnNlSWRlbnRpZmllckZpZWxkOiBjcmVhdGVPbmx5T0FTMzFTZWxlY3RvcihzZWxlY3RMaWNlbnNlSWRlbnRpZmllckZpZWxkKSwgLy8gcHJldHRpZXItaWdub3JlXG4gICAgICAgICAgc2VsZWN0TGljZW5zZVVybDogY3JlYXRlU3lzdGVtU2VsZWN0b3Ioc2VsZWN0TGljZW5zZVVybCksXG5cbiAgICAgICAgICBjb250YWN0OiBzZWxlY3RDb250YWN0LFxuICAgICAgICAgIHNlbGVjdENvbnRhY3ROYW1lRmllbGQsXG4gICAgICAgICAgc2VsZWN0Q29udGFjdEVtYWlsRmllbGQsXG4gICAgICAgICAgc2VsZWN0Q29udGFjdFVybEZpZWxkLFxuICAgICAgICAgIHNlbGVjdENvbnRhY3RVcmw6IGNyZWF0ZVN5c3RlbVNlbGVjdG9yKHNlbGVjdENvbnRhY3RVcmwpLFxuXG4gICAgICAgICAgc2VsZWN0SW5mb1RpdGxlRmllbGQsXG4gICAgICAgICAgc2VsZWN0SW5mb1N1bW1hcnlGaWVsZDogY3JlYXRlT25seU9BUzMxU2VsZWN0b3Ioc2VsZWN0SW5mb1N1bW1hcnlGaWVsZCksIC8vIHByZXR0aWVyLWlnbm9yZVxuICAgICAgICAgIHNlbGVjdEluZm9EZXNjcmlwdGlvbkZpZWxkLFxuICAgICAgICAgIHNlbGVjdEluZm9UZXJtc09mU2VydmljZUZpZWxkLFxuICAgICAgICAgIHNlbGVjdEluZm9UZXJtc09mU2VydmljZVVybDogY3JlYXRlU3lzdGVtU2VsZWN0b3Ioc2VsZWN0SW5mb1Rlcm1zT2ZTZXJ2aWNlVXJsKSwgLy8gcHJldHRpZXItaWdub3JlXG5cbiAgICAgICAgICBzZWxlY3RFeHRlcm5hbERvY3NEZXNjcmlwdGlvbkZpZWxkLFxuICAgICAgICAgIHNlbGVjdEV4dGVybmFsRG9jc1VybEZpZWxkLFxuICAgICAgICAgIHNlbGVjdEV4dGVybmFsRG9jc1VybDogY3JlYXRlU3lzdGVtU2VsZWN0b3Ioc2VsZWN0RXh0ZXJuYWxEb2NzVXJsKSxcblxuICAgICAgICAgIHdlYmhvb2tzOiBjcmVhdGVPbmx5T0FTMzFTZWxlY3RvcihzZWxlY3RXZWJob29rcyksXG4gICAgICAgICAgc2VsZWN0V2ViaG9va3NPcGVyYXRpb25zOiBjcmVhdGVPbmx5T0FTMzFTZWxlY3RvcihjcmVhdGVTeXN0ZW1TZWxlY3RvcihzZWxlY3RXZWJob29rc09wZXJhdGlvbnMpKSwgLy8gcHJldHRpZXItaWdub3JlXG5cbiAgICAgICAgICBzZWxlY3RKc29uU2NoZW1hRGlhbGVjdEZpZWxkLFxuICAgICAgICAgIHNlbGVjdEpzb25TY2hlbWFEaWFsZWN0RGVmYXVsdCxcblxuICAgICAgICAgIHNlbGVjdFNjaGVtYXM6IGNyZWF0ZVN5c3RlbVNlbGVjdG9yKHNlbGVjdFNjaGVtYXMpLFxuICAgICAgICB9LFxuICAgICAgICB3cmFwU2VsZWN0b3JzOiB7XG4gICAgICAgICAgaXNPQVMzOiBpc09BUzNTZWxlY3RvcldyYXBwZXIsXG4gICAgICAgICAgc2VsZWN0TGljZW5zZVVybDogc2VsZWN0TGljZW5zZVVybFdyYXBwZXIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgb2FzMzE6IHtcbiAgICAgICAgc2VsZWN0b3JzOiB7XG4gICAgICAgICAgc2VsZWN0TGljZW5zZVVybDogY3JlYXRlT25seU9BUzMxU2VsZWN0b3IoY3JlYXRlU3lzdGVtU2VsZWN0b3Ioc2VsZWN0T0FTMzFMaWNlbnNlVXJsKSksIC8vIHByZXR0aWVyLWlnbm9yZVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE9BUzMxUGx1Z2luXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuZXhwb3J0IGNvbnN0IG9iamVjdFNjaGVtYSA9IFByb3BUeXBlcy5vYmplY3RcblxuZXhwb3J0IGNvbnN0IGJvb2xlYW5TY2hlbWEgPSBQcm9wVHlwZXMuYm9vbFxuXG5leHBvcnQgY29uc3Qgc2NoZW1hID0gUHJvcFR5cGVzLm9uZU9mVHlwZShbb2JqZWN0U2NoZW1hLCBib29sZWFuU2NoZW1hXSlcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIlxuXG5leHBvcnQgY29uc3QgSlNPTlNjaGVtYUNvbnRleHQgPSBjcmVhdGVDb250ZXh0KG51bGwpXG5KU09OU2NoZW1hQ29udGV4dC5kaXNwbGF5TmFtZSA9IFwiSlNPTlNjaGVtYUNvbnRleHRcIlxuXG5leHBvcnQgY29uc3QgSlNPTlNjaGVtYUxldmVsQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoMClcbkpTT05TY2hlbWFMZXZlbENvbnRleHQuZGlzcGxheU5hbWUgPSBcIkpTT05TY2hlbWFMZXZlbENvbnRleHRcIlxuXG5leHBvcnQgY29uc3QgSlNPTlNjaGVtYUN5Y2xlc0NvbnRleHQgPSBjcmVhdGVDb250ZXh0KG5ldyBTZXQoKSlcblxuZXhwb3J0IGNvbnN0IEpTT05TY2hlbWFQYXRoQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoW10pXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5leHBvcnQgY2xhc3MgSlNPTlNjaGVtYUlzRXhwYW5kZWRTdGF0ZSB7XG4gIHN0YXRpYyBDb2xsYXBzZWQgPSBcImNvbGxhcHNlZFwiXG5cbiAgc3RhdGljIEV4cGFuZGVkID0gXCJleHBhbmRlZFwiXG5cbiAgc3RhdGljIERlZXBseUV4cGFuZGVkID0gXCJkZWVwbHktZXhwYW5kZWRcIlxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQge1xuICBKU09OU2NoZW1hQ29udGV4dCxcbiAgSlNPTlNjaGVtYUxldmVsQ29udGV4dCxcbiAgSlNPTlNjaGVtYUN5Y2xlc0NvbnRleHQsXG4gIEpTT05TY2hlbWFQYXRoQ29udGV4dCxcbn0gZnJvbSBcIi4vY29udGV4dFwiXG5pbXBvcnQgeyBKU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlIH0gZnJvbSBcIi4vZW51bVwiXG5cbmV4cG9ydCBjb25zdCB1c2VDb25maWcgPSAoKSA9PiB7XG4gIGNvbnN0IHsgY29uZmlnIH0gPSB1c2VDb250ZXh0KEpTT05TY2hlbWFDb250ZXh0KVxuICByZXR1cm4gY29uZmlnXG59XG5cbmV4cG9ydCBjb25zdCB1c2VDb21wb25lbnQgPSAoY29tcG9uZW50TmFtZSkgPT4ge1xuICBjb25zdCB7IGNvbXBvbmVudHMgfSA9IHVzZUNvbnRleHQoSlNPTlNjaGVtYUNvbnRleHQpXG4gIHJldHVybiBjb21wb25lbnRzW2NvbXBvbmVudE5hbWVdIHx8IG51bGxcbn1cblxuZXhwb3J0IGNvbnN0IHVzZUZuID0gKGZuTmFtZSA9IHVuZGVmaW5lZCkgPT4ge1xuICBjb25zdCB7IGZuIH0gPSB1c2VDb250ZXh0KEpTT05TY2hlbWFDb250ZXh0KVxuXG4gIHJldHVybiB0eXBlb2YgZm5OYW1lICE9PSBcInVuZGVmaW5lZFwiID8gZm5bZm5OYW1lXSA6IGZuXG59XG5cbmV4cG9ydCBjb25zdCB1c2VKU09OU2NoZW1hQ29udGV4dFN0YXRlID0gKCkgPT4ge1xuICBjb25zdCBbLCBzZXRGYWtlU3RhdGVdID0gdXNlU3RhdGUobnVsbClcbiAgY29uc3QgeyBzdGF0ZSB9ID0gdXNlQ29udGV4dChKU09OU2NoZW1hQ29udGV4dClcbiAgY29uc3Qgc2V0U3RhdGUgPSAodXBkYXRlRm4pID0+IHtcbiAgICB1cGRhdGVGbihzdGF0ZSlcbiAgICBzZXRGYWtlU3RhdGUoe30pXG4gIH1cblxuICByZXR1cm4geyBzdGF0ZSwgc2V0U3RhdGUgfVxufVxuXG5leHBvcnQgY29uc3QgdXNlTGV2ZWwgPSAoKSA9PiB7XG4gIGNvbnN0IGxldmVsID0gdXNlQ29udGV4dChKU09OU2NoZW1hTGV2ZWxDb250ZXh0KVxuXG4gIHJldHVybiBbbGV2ZWwsIGxldmVsICsgMV1cbn1cblxuZXhwb3J0IGNvbnN0IHVzZUlzRW1iZWRkZWQgPSAoKSA9PiB7XG4gIGNvbnN0IFtsZXZlbF0gPSB1c2VMZXZlbCgpXG5cbiAgcmV0dXJuIGxldmVsID4gMFxufVxuXG5leHBvcnQgY29uc3QgdXNlUGF0aCA9IChwYXRoVG9rZW4pID0+IHtcbiAgY29uc3QgcGF0aCA9IHVzZUNvbnRleHQoSlNPTlNjaGVtYVBhdGhDb250ZXh0KVxuICBjb25zdCB7IHNldFN0YXRlIH0gPSB1c2VKU09OU2NoZW1hQ29udGV4dFN0YXRlKClcbiAgY29uc3QgY3VycmVudFBhdGggPVxuICAgIHR5cGVvZiBwYXRoVG9rZW4gPT09IFwic3RyaW5nXCIgPyBbLi4ucGF0aCwgcGF0aFRva2VuXSA6IHBhdGhcblxuICBjb25zdCBwYXRoTXV0YXRvciA9ICh2YWx1ZSwgb3B0aW9ucyA9IHsgZGVlcDogZmFsc2UgfSkgPT4ge1xuICAgIGNvbnN0IHN0YXJ0UGF0aCA9IGN1cnJlbnRQYXRoLnRvU3RyaW5nKClcbiAgICBjb25zdCB1cGRhdGVGbiA9IChzdGF0ZSkgPT4ge1xuICAgICAgc3RhdGUucGF0aHNbc3RhcnRQYXRoXSA9IHZhbHVlXG5cbiAgICAgIGlmICh2YWx1ZSA9PT0gSlNPTlNjaGVtYUlzRXhwYW5kZWRTdGF0ZS5Db2xsYXBzZWQpIHtcbiAgICAgICAgT2JqZWN0LmtleXMoc3RhdGUucGF0aHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGtleS5zdGFydHNXaXRoKHN0YXJ0UGF0aCkgJiZcbiAgICAgICAgICAgIHN0YXRlLnBhdGhzW2tleV0gPT09IEpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuRGVlcGx5RXhwYW5kZWRcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHN0YXRlLnBhdGhzW2tleV0gPSBKU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkV4cGFuZGVkXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB1cGRhdGVEZWVwRm4gPSAoc3RhdGUpID0+IHtcbiAgICAgIE9iamVjdC5rZXlzKHN0YXRlLnBhdGhzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgaWYgKGtleS5zdGFydHNXaXRoKHN0YXJ0UGF0aCkpIHtcbiAgICAgICAgICBzdGF0ZS5wYXRoc1trZXldID0gdmFsdWVcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5kZWVwKSB7XG4gICAgICBzZXRTdGF0ZSh1cGRhdGVEZWVwRm4pXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFN0YXRlKHVwZGF0ZUZuKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IHBhdGg6IGN1cnJlbnRQYXRoLCBwYXRoTXV0YXRvciB9XG59XG5cbmV4cG9ydCBjb25zdCB1c2VJc0V4cGFuZGVkID0gKG5hbWUpID0+IHtcbiAgY29uc3QgW2xldmVsXSA9IHVzZUxldmVsKClcbiAgY29uc3QgeyBkZWZhdWx0RXhwYW5kZWRMZXZlbHMgfSA9IHVzZUNvbmZpZygpXG4gIGNvbnN0IHsgcGF0aCwgcGF0aE11dGF0b3IgfSA9IHVzZVBhdGgobmFtZSlcbiAgY29uc3QgeyBwYXRoOiBwYXJlbnRQYXRoIH0gPSB1c2VQYXRoKClcbiAgY29uc3QgeyBzdGF0ZSB9ID0gdXNlSlNPTlNjaGVtYUNvbnRleHRTdGF0ZSgpXG4gIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHN0YXRlLnBhdGhzW3BhdGgudG9TdHJpbmcoKV1cbiAgY29uc3QgcGFyZW50U3RhdGUgPVxuICAgIHN0YXRlLnBhdGhzW3BhcmVudFBhdGgudG9TdHJpbmcoKV0gPz9cbiAgICBzdGF0ZS5wYXRoc1twYXJlbnRQYXRoLnNsaWNlKDAsIC0xKS50b1N0cmluZygpXVxuICBjb25zdCBpc0V4cGFuZGVkU3RhdGUgPVxuICAgIGN1cnJlbnRTdGF0ZSA/P1xuICAgIChkZWZhdWx0RXhwYW5kZWRMZXZlbHMgLSBsZXZlbCA+IDBcbiAgICAgID8gSlNPTlNjaGVtYUlzRXhwYW5kZWRTdGF0ZS5FeHBhbmRlZFxuICAgICAgOiBKU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkNvbGxhcHNlZClcbiAgY29uc3QgaXNFeHBhbmRlZCA9IGlzRXhwYW5kZWRTdGF0ZSAhPT0gSlNPTlNjaGVtYUlzRXhwYW5kZWRTdGF0ZS5Db2xsYXBzZWRcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHBhdGhNdXRhdG9yKFxuICAgICAgcGFyZW50U3RhdGUgPT09IEpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuRGVlcGx5RXhwYW5kZWRcbiAgICAgICAgPyBKU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkRlZXBseUV4cGFuZGVkXG4gICAgICAgIDogaXNFeHBhbmRlZFN0YXRlXG4gICAgKVxuICB9LCBbcGFyZW50U3RhdGVdKVxuXG4gIGNvbnN0IHNldEV4cGFuZGVkID0gdXNlQ2FsbGJhY2soKG9wdGlvbnMgPSB7IGRlZXA6IGZhbHNlIH0pID0+IHtcbiAgICBwYXRoTXV0YXRvcihcbiAgICAgIG9wdGlvbnMuZGVlcFxuICAgICAgICA/IEpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuRGVlcGx5RXhwYW5kZWRcbiAgICAgICAgOiBKU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkV4cGFuZGVkXG4gICAgKVxuICB9LCBbXSlcblxuICBjb25zdCBzZXRDb2xsYXBzZWQgPSB1c2VDYWxsYmFjaygob3B0aW9ucyA9IHsgZGVlcDogZmFsc2UgfSkgPT4ge1xuICAgIHBhdGhNdXRhdG9yKEpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuQ29sbGFwc2VkLCBvcHRpb25zKVxuICB9LCBbXSlcblxuICByZXR1cm4geyBpc0V4cGFuZGVkLCBzZXRFeHBhbmRlZCwgc2V0Q29sbGFwc2VkIH1cbn1cblxuZXhwb3J0IGNvbnN0IHVzZVJlbmRlcmVkU2NoZW1hcyA9IChzY2hlbWEgPSB1bmRlZmluZWQpID0+IHtcbiAgaWYgKHR5cGVvZiBzY2hlbWEgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICByZXR1cm4gdXNlQ29udGV4dChKU09OU2NoZW1hQ3ljbGVzQ29udGV4dClcbiAgfVxuXG4gIGNvbnN0IHJlbmRlcmVkU2NoZW1hcyA9IHVzZUNvbnRleHQoSlNPTlNjaGVtYUN5Y2xlc0NvbnRleHQpXG4gIHJldHVybiBuZXcgU2V0KFsuLi5yZW5kZXJlZFNjaGVtYXMsIHNjaGVtYV0pXG59XG5leHBvcnQgY29uc3QgdXNlSXNDaXJjdWxhciA9IChzY2hlbWEpID0+IHtcbiAgY29uc3QgcmVuZGVyZWRTY2hlbWFzID0gdXNlUmVuZGVyZWRTY2hlbWFzKClcbiAgcmV0dXJuIHJlbmRlcmVkU2NoZW1hcy5oYXMoc2NoZW1hKVxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuXG5pbXBvcnQgKiBhcyBwcm9wVHlwZXMgZnJvbSBcIi4uLy4uL3Byb3AtdHlwZXNcIlxuaW1wb3J0IHtcbiAgdXNlQ29tcG9uZW50LFxuICB1c2VMZXZlbCxcbiAgdXNlRm4sXG4gIHVzZUlzRW1iZWRkZWQsXG4gIHVzZUlzRXhwYW5kZWQsXG4gIHVzZUlzQ2lyY3VsYXIsXG4gIHVzZVJlbmRlcmVkU2NoZW1hcyxcbiAgdXNlUGF0aCxcbn0gZnJvbSBcIi4uLy4uL2hvb2tzXCJcbmltcG9ydCB7XG4gIEpTT05TY2hlbWFMZXZlbENvbnRleHQsXG4gIEpTT05TY2hlbWFDeWNsZXNDb250ZXh0LFxuICBKU09OU2NoZW1hUGF0aENvbnRleHQsXG59IGZyb20gXCIuLi8uLi9jb250ZXh0XCJcblxuY29uc3QgSlNPTlNjaGVtYSA9IGZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBzY2hlbWEsXG4gICAgICBuYW1lID0gXCJcIixcbiAgICAgIGRlcGVuZGVudFJlcXVpcmVkID0gW10sXG4gICAgICBvbkV4cGFuZCA9ICgpID0+IHt9LFxuICAgICAgaWRlbnRpZmllciA9IFwiXCIsXG4gICAgfSxcbiAgICByZWZcbiAgKSA9PiB7XG4gICAgY29uc3QgZm4gPSB1c2VGbigpXG4gICAgLy8gdGhpcyBpbXBsZW1lbnRhdGlvbiBhc3N1bWVzIHRoYXQgJGlkIGlzIGFsd2F5cyBub24tcmVsYXRpdmUgVVJJXG4gICAgY29uc3QgcGF0aFRva2VuID0gaWRlbnRpZmllciB8fCBzY2hlbWE/LiRpZCB8fCBuYW1lXG4gICAgY29uc3QgeyBwYXRoIH0gPSB1c2VQYXRoKHBhdGhUb2tlbilcbiAgICBjb25zdCB7IGlzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWQgfSA9IHVzZUlzRXhwYW5kZWQocGF0aFRva2VuKVxuICAgIGNvbnN0IFtsZXZlbCwgbmV4dExldmVsXSA9IHVzZUxldmVsKClcbiAgICBjb25zdCBpc0VtYmVkZGVkID0gdXNlSXNFbWJlZGRlZCgpXG4gICAgY29uc3QgaXNFeHBhbmRhYmxlID0gZm4uaXNFeHBhbmRhYmxlKHNjaGVtYSkgfHwgZGVwZW5kZW50UmVxdWlyZWQubGVuZ3RoID4gMFxuICAgIGNvbnN0IGlzQ2lyY3VsYXIgPSB1c2VJc0NpcmN1bGFyKHNjaGVtYSlcbiAgICBjb25zdCByZW5kZXJlZFNjaGVtYXMgPSB1c2VSZW5kZXJlZFNjaGVtYXMoc2NoZW1hKVxuICAgIGNvbnN0IGNvbnN0cmFpbnRzID0gZm4uc3RyaW5naWZ5Q29uc3RyYWludHMoc2NoZW1hKVxuICAgIGNvbnN0IEFjY29yZGlvbiA9IHVzZUNvbXBvbmVudChcIkFjY29yZGlvblwiKVxuICAgIGNvbnN0IEtleXdvcmQkc2NoZW1hID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZCRzY2hlbWFcIilcbiAgICBjb25zdCBLZXl3b3JkJHZvY2FidWxhcnkgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkJHZvY2FidWxhcnlcIilcbiAgICBjb25zdCBLZXl3b3JkJGlkID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZCRpZFwiKVxuICAgIGNvbnN0IEtleXdvcmQkYW5jaG9yID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZCRhbmNob3JcIilcbiAgICBjb25zdCBLZXl3b3JkJGR5bmFtaWNBbmNob3IgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkJGR5bmFtaWNBbmNob3JcIilcbiAgICBjb25zdCBLZXl3b3JkJHJlZiA9IHVzZUNvbXBvbmVudChcIktleXdvcmQkcmVmXCIpXG4gICAgY29uc3QgS2V5d29yZCRkeW5hbWljUmVmID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZCRkeW5hbWljUmVmXCIpXG4gICAgY29uc3QgS2V5d29yZCRkZWZzID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZCRkZWZzXCIpXG4gICAgY29uc3QgS2V5d29yZCRjb21tZW50ID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZCRjb21tZW50XCIpXG4gICAgY29uc3QgS2V5d29yZEFsbE9mID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZEFsbE9mXCIpXG4gICAgY29uc3QgS2V5d29yZEFueU9mID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZEFueU9mXCIpXG4gICAgY29uc3QgS2V5d29yZE9uZU9mID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZE9uZU9mXCIpXG4gICAgY29uc3QgS2V5d29yZE5vdCA9IHVzZUNvbXBvbmVudChcIktleXdvcmROb3RcIilcbiAgICBjb25zdCBLZXl3b3JkSWYgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkSWZcIilcbiAgICBjb25zdCBLZXl3b3JkVGhlbiA9IHVzZUNvbXBvbmVudChcIktleXdvcmRUaGVuXCIpXG4gICAgY29uc3QgS2V5d29yZEVsc2UgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkRWxzZVwiKVxuICAgIGNvbnN0IEtleXdvcmREZXBlbmRlbnRTY2hlbWFzID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZERlcGVuZGVudFNjaGVtYXNcIilcbiAgICBjb25zdCBLZXl3b3JkUHJlZml4SXRlbXMgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkUHJlZml4SXRlbXNcIilcbiAgICBjb25zdCBLZXl3b3JkSXRlbXMgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkSXRlbXNcIilcbiAgICBjb25zdCBLZXl3b3JkQ29udGFpbnMgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkQ29udGFpbnNcIilcbiAgICBjb25zdCBLZXl3b3JkUHJvcGVydGllcyA9IHVzZUNvbXBvbmVudChcIktleXdvcmRQcm9wZXJ0aWVzXCIpXG4gICAgY29uc3QgS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzXCIpXG4gICAgY29uc3QgS2V5d29yZEFkZGl0aW9uYWxQcm9wZXJ0aWVzID0gdXNlQ29tcG9uZW50KFxuICAgICAgXCJLZXl3b3JkQWRkaXRpb25hbFByb3BlcnRpZXNcIlxuICAgIClcbiAgICBjb25zdCBLZXl3b3JkUHJvcGVydHlOYW1lcyA9IHVzZUNvbXBvbmVudChcIktleXdvcmRQcm9wZXJ0eU5hbWVzXCIpXG4gICAgY29uc3QgS2V5d29yZFVuZXZhbHVhdGVkSXRlbXMgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtc1wiKVxuICAgIGNvbnN0IEtleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXMgPSB1c2VDb21wb25lbnQoXG4gICAgICBcIktleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXNcIlxuICAgIClcbiAgICBjb25zdCBLZXl3b3JkVHlwZSA9IHVzZUNvbXBvbmVudChcIktleXdvcmRUeXBlXCIpXG4gICAgY29uc3QgS2V5d29yZEVudW0gPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkRW51bVwiKVxuICAgIGNvbnN0IEtleXdvcmRDb25zdCA9IHVzZUNvbXBvbmVudChcIktleXdvcmRDb25zdFwiKVxuICAgIGNvbnN0IEtleXdvcmRDb25zdHJhaW50ID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZENvbnN0cmFpbnRcIilcbiAgICBjb25zdCBLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWRcIilcbiAgICBjb25zdCBLZXl3b3JkQ29udGVudFNjaGVtYSA9IHVzZUNvbXBvbmVudChcIktleXdvcmRDb250ZW50U2NoZW1hXCIpXG4gICAgY29uc3QgS2V5d29yZFRpdGxlID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZFRpdGxlXCIpXG4gICAgY29uc3QgS2V5d29yZERlc2NyaXB0aW9uID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZERlc2NyaXB0aW9uXCIpXG4gICAgY29uc3QgS2V5d29yZERlZmF1bHQgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkRGVmYXVsdFwiKVxuICAgIGNvbnN0IEtleXdvcmREZXByZWNhdGVkID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZERlcHJlY2F0ZWRcIilcbiAgICBjb25zdCBLZXl3b3JkUmVhZE9ubHkgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkUmVhZE9ubHlcIilcbiAgICBjb25zdCBLZXl3b3JkV3JpdGVPbmx5ID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZFdyaXRlT25seVwiKVxuICAgIGNvbnN0IEtleXdvcmRFeGFtcGxlcyA9IHVzZUNvbXBvbmVudChcIktleXdvcmRFeGFtcGxlc1wiKVxuICAgIGNvbnN0IEV4dGVuc2lvbktleXdvcmRzID0gdXNlQ29tcG9uZW50KFwiRXh0ZW5zaW9uS2V5d29yZHNcIilcbiAgICBjb25zdCBFeHBhbmREZWVwQnV0dG9uID0gdXNlQ29tcG9uZW50KFwiRXhwYW5kRGVlcEJ1dHRvblwiKVxuXG4gICAgLyoqXG4gICAgICogRXZlbnQgaGFuZGxlcnMuXG4gICAgICovXG4gICAgY29uc3QgaGFuZGxlRXhwYW5zaW9uID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZSwgZXhwYW5kZWROZXcpID0+IHtcbiAgICAgICAgaWYgKGV4cGFuZGVkTmV3KSB7XG4gICAgICAgICAgc2V0RXhwYW5kZWQoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldENvbGxhcHNlZCgpXG4gICAgICAgIH1cbiAgICAgICAgb25FeHBhbmQoZSwgZXhwYW5kZWROZXcsIGZhbHNlKVxuICAgICAgfSxcbiAgICAgIFtvbkV4cGFuZCwgc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZF1cbiAgICApXG4gICAgY29uc3QgaGFuZGxlRXhwYW5zaW9uRGVlcCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGUsIGV4cGFuZGVkRGVlcE5ldykgPT4ge1xuICAgICAgICBpZiAoZXhwYW5kZWREZWVwTmV3KSB7XG4gICAgICAgICAgc2V0RXhwYW5kZWQoeyBkZWVwOiB0cnVlIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2V0Q29sbGFwc2VkKHsgZGVlcDogdHJ1ZSB9KVxuICAgICAgICB9XG4gICAgICAgIG9uRXhwYW5kKGUsIGV4cGFuZGVkRGVlcE5ldywgdHJ1ZSlcbiAgICAgIH0sXG4gICAgICBbb25FeHBhbmQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWRdXG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxKU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3BhdGh9PlxuICAgICAgICA8SlNPTlNjaGVtYUxldmVsQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bmV4dExldmVsfT5cbiAgICAgICAgICA8SlNPTlNjaGVtYUN5Y2xlc0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3JlbmRlcmVkU2NoZW1hc30+XG4gICAgICAgICAgICA8YXJ0aWNsZVxuICAgICAgICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgICAgICAgZGF0YS1qc29uLXNjaGVtYS1sZXZlbD17bGV2ZWx9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcImpzb24tc2NoZW1hLTIwMjAtMTJcIiwge1xuICAgICAgICAgICAgICAgIFwianNvbi1zY2hlbWEtMjAyMC0xMi0tZW1iZWRkZWRcIjogaXNFbWJlZGRlZCxcbiAgICAgICAgICAgICAgICBcImpzb24tc2NoZW1hLTIwMjAtMTItLWNpcmN1bGFyXCI6IGlzQ2lyY3VsYXIsXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTItaGVhZFwiPlxuICAgICAgICAgICAgICAgIHtpc0V4cGFuZGFibGUgJiYgIWlzQ2lyY3VsYXIgPyAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8QWNjb3JkaW9uIGV4cGFuZGVkPXtpc0V4cGFuZGVkfSBvbkNoYW5nZT17aGFuZGxlRXhwYW5zaW9ufT5cbiAgICAgICAgICAgICAgICAgICAgICA8S2V5d29yZFRpdGxlIHRpdGxlPXtuYW1lfSBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9BY2NvcmRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxFeHBhbmREZWVwQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWQ9e2lzRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlRXhwYW5zaW9uRGVlcH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICA8S2V5d29yZFRpdGxlIHRpdGxlPXtuYW1lfSBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDxLZXl3b3JkRGVwcmVjYXRlZCBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICA8S2V5d29yZFJlYWRPbmx5IHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgICAgIDxLZXl3b3JkV3JpdGVPbmx5IHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgICAgIDxLZXl3b3JkVHlwZSBzY2hlbWE9e3NjaGVtYX0gaXNDaXJjdWxhcj17aXNDaXJjdWxhcn0gLz5cbiAgICAgICAgICAgICAgICB7Y29uc3RyYWludHMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMubWFwKChjb25zdHJhaW50KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkQ29uc3RyYWludFxuICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7Y29uc3RyYWludC5zY29wZX0tJHtjb25zdHJhaW50LnZhbHVlfWB9XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3RyYWludD17Y29uc3RyYWludH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcImpzb24tc2NoZW1hLTIwMjAtMTItYm9keVwiLCB7XG4gICAgICAgICAgICAgICAgICBcImpzb24tc2NoZW1hLTIwMjAtMTItYm9keS0tY29sbGFwc2VkXCI6ICFpc0V4cGFuZGVkLFxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2lzRXhwYW5kZWQgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPEtleXdvcmREZXNjcmlwdGlvbiBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgeyFpc0NpcmN1bGFyICYmIGlzRXhwYW5kYWJsZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkUHJvcGVydGllcyBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkUGF0dGVyblByb3BlcnRpZXMgc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8S2V5d29yZEFkZGl0aW9uYWxQcm9wZXJ0aWVzIHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEtleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXMgc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8S2V5d29yZFByb3BlcnR5TmFtZXMgc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8S2V5d29yZEFsbE9mIHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEtleXdvcmRBbnlPZiBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkT25lT2Ygc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8S2V5d29yZE5vdCBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkSWYgc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8S2V5d29yZFRoZW4gc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8S2V5d29yZEVsc2Ugc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8S2V5d29yZERlcGVuZGVudFNjaGVtYXMgc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8S2V5d29yZFByZWZpeEl0ZW1zIHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEtleXdvcmRJdGVtcyBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtcyBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkQ29udGFpbnMgc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8S2V5d29yZENvbnRlbnRTY2hlbWEgc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkRW51bSBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgPEtleXdvcmRDb25zdCBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgPEtleXdvcmREZXBlbmRlbnRSZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYT17c2NoZW1hfVxuICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVudFJlcXVpcmVkPXtkZXBlbmRlbnRSZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPEtleXdvcmREZWZhdWx0IHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgICAgICAgICA8S2V5d29yZEV4YW1wbGVzIHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgICAgICAgICA8S2V5d29yZCRzY2hlbWEgc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkJHZvY2FidWxhcnkgc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkJGlkIHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgICAgICAgICA8S2V5d29yZCRhbmNob3Igc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkJGR5bmFtaWNBbmNob3Igc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkJHJlZiBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgeyFpc0NpcmN1bGFyICYmIGlzRXhwYW5kYWJsZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPEtleXdvcmQkZGVmcyBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPEtleXdvcmQkZHluYW1pY1JlZiBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgPEtleXdvcmQkY29tbWVudCBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgPEV4dGVuc2lvbktleXdvcmRzIHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2FydGljbGU+XG4gICAgICAgICAgPC9KU09OU2NoZW1hQ3ljbGVzQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgPC9KU09OU2NoZW1hTGV2ZWxDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgPC9KU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXI+XG4gICAgKVxuICB9XG4pXG5cbkpTT05TY2hlbWEucHJvcFR5cGVzID0ge1xuICBuYW1lOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMuZWxlbWVudF0pLFxuICBzY2hlbWE6IHByb3BUeXBlcy5zY2hlbWEuaXNSZXF1aXJlZCxcbiAgZGVwZW5kZW50UmVxdWlyZWQ6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxuICBvbkV4cGFuZDogUHJvcFR5cGVzLmZ1bmMsXG4gIGlkZW50aWZpZXI6IFByb3BUeXBlcy5zdHJpbmcsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEpTT05TY2hlbWFcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5cbmNvbnN0ICRzY2hlbWEgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBpZiAoIXNjaGVtYT8uJHNjaGVtYSkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJHNjaGVtYVwiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICRzY2hlbWFcbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgIHtzY2hlbWEuJHNjaGVtYX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG4kc2NoZW1hLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgJHNjaGVtYVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcblxuaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSBcIi4uLy4uLy4uL3Byb3AtdHlwZXNcIlxuaW1wb3J0IHsgdXNlQ29tcG9uZW50LCB1c2VJc0V4cGFuZGVkLCB1c2VQYXRoIH0gZnJvbSBcIi4uLy4uLy4uL2hvb2tzXCJcbmltcG9ydCB7IEpTT05TY2hlbWFQYXRoQ29udGV4dCB9IGZyb20gXCIuLi8uLi8uLi9jb250ZXh0XCJcblxuY29uc3QgJHZvY2FidWxhcnkgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBwYXRoVG9rZW4gPSBcIiR2b2NhYnVsYXJ5XCJcbiAgY29uc3QgeyBwYXRoIH0gPSB1c2VQYXRoKHBhdGhUb2tlbilcbiAgY29uc3QgeyBpc0V4cGFuZGVkLCBzZXRFeHBhbmRlZCwgc2V0Q29sbGFwc2VkIH0gPSB1c2VJc0V4cGFuZGVkKHBhdGhUb2tlbilcbiAgY29uc3QgQWNjb3JkaW9uID0gdXNlQ29tcG9uZW50KFwiQWNjb3JkaW9uXCIpXG5cbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChpc0V4cGFuZGVkKSB7XG4gICAgICBzZXRDb2xsYXBzZWQoKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRFeHBhbmRlZCgpXG4gICAgfVxuICB9LCBbaXNFeHBhbmRlZCwgc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZF0pXG5cbiAgLyoqXG4gICAqIFJlbmRlcmluZy5cbiAgICovXG4gIGlmICghc2NoZW1hPy4kdm9jYWJ1bGFyeSkgcmV0dXJuIG51bGxcbiAgaWYgKHR5cGVvZiBzY2hlbWEuJHZvY2FidWxhcnkgIT09IFwib2JqZWN0XCIpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8SlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwYXRofT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJHZvY2FidWxhcnlcIj5cbiAgICAgICAgPEFjY29yZGlvbiBleHBhbmRlZD17aXNFeHBhbmRlZH0gb25DaGFuZ2U9e2hhbmRsZUV4cGFuc2lvbn0+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAkdm9jYWJ1bGFyeVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9BY2NvcmRpb24+XG4gICAgICAgIDxzdHJvbmcgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeVwiPlxuICAgICAgICAgIG9iamVjdFxuICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgPHVsPlxuICAgICAgICAgIHtpc0V4cGFuZGVkICYmXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhzY2hlbWEuJHZvY2FidWxhcnkpLm1hcCgoW3VyaSwgZW5hYmxlZF0pID0+IChcbiAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAga2V5PXt1cml9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwianNvbi1zY2hlbWEtMjAyMC0xMi0kdm9jYWJ1bGFyeS11cmlcIiwge1xuICAgICAgICAgICAgICAgICAgXCJqc29uLXNjaGVtYS0yMDIwLTEyLSR2b2NhYnVsYXJ5LXVyaS0tZGlzYWJsZWRcIjogIWVuYWJsZWQsXG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICAgICAge3VyaX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgIDwvSlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbiR2b2NhYnVsYXJ5LnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgJHZvY2FidWxhcnlcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5cbmNvbnN0ICRpZCA9ICh7IHNjaGVtYSB9KSA9PiB7XG4gIGlmICghc2NoZW1hPy4kaWQpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLSRpZFwiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICRpZFxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnlcIj5cbiAgICAgICAge3NjaGVtYS4kaWR9XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuJGlkLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgJGlkXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcblxuaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSBcIi4uLy4uL3Byb3AtdHlwZXNcIlxuXG5jb25zdCAkYW5jaG9yID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgaWYgKCFzY2hlbWE/LiRhbmNob3IpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLSRhbmNob3JcIj5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeVwiPlxuICAgICAgICAkYW5jaG9yXG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeVwiPlxuICAgICAgICB7c2NoZW1hLiRhbmNob3J9XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuJGFuY2hvci5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0ICRhbmNob3JcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5cbmNvbnN0ICRkeW5hbWljQW5jaG9yID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgaWYgKCFzY2hlbWE/LiRkeW5hbWljQW5jaG9yKSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS0kZHluYW1pY0FuY2hvclwiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICRkeW5hbWljQW5jaG9yXG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeVwiPlxuICAgICAgICB7c2NoZW1hLiRkeW5hbWljQW5jaG9yfVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICApXG59XG5cbiRkeW5hbWljQW5jaG9yLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgJGR5bmFtaWNBbmNob3JcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5cbmNvbnN0ICRyZWYgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBpZiAoIXNjaGVtYT8uJHJlZikgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJHJlZlwiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICRyZWZcbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgIHtzY2hlbWEuJHJlZn1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG4kcmVmLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgJHJlZlxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IHNjaGVtYSB9IGZyb20gXCIuLi8uLi9wcm9wLXR5cGVzXCJcblxuY29uc3QgJGR5bmFtaWNSZWYgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBpZiAoIXNjaGVtYT8uJGR5bmFtaWNSZWYpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLSRkeW5hbWljUmVmXCI+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnlcIj5cbiAgICAgICAgJGR5bmFtaWNSZWZcbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgIHtzY2hlbWEuJGR5bmFtaWNSZWZ9XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuJGR5bmFtaWNSZWYucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCAkZHluYW1pY1JlZlxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcblxuaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSBcIi4uLy4uL3Byb3AtdHlwZXNcIlxuaW1wb3J0IHsgdXNlQ29tcG9uZW50LCB1c2VJc0V4cGFuZGVkLCB1c2VQYXRoLCB1c2VMZXZlbCB9IGZyb20gXCIuLi8uLi9ob29rc1wiXG5pbXBvcnQgeyBKU09OU2NoZW1hTGV2ZWxDb250ZXh0LCBKU09OU2NoZW1hUGF0aENvbnRleHQgfSBmcm9tIFwiLi4vLi4vY29udGV4dFwiXG5cbmNvbnN0ICRkZWZzID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgY29uc3QgJGRlZnMgPSBzY2hlbWE/LiRkZWZzIHx8IHt9XG4gIGNvbnN0IHBhdGhUb2tlbiA9IFwiJGRlZnNcIlxuICBjb25zdCB7IHBhdGggfSA9IHVzZVBhdGgocGF0aFRva2VuKVxuICBjb25zdCB7IGlzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWQgfSA9IHVzZUlzRXhwYW5kZWQocGF0aFRva2VuKVxuICBjb25zdCBbbGV2ZWwsIG5leHRMZXZlbF0gPSB1c2VMZXZlbCgpXG4gIGNvbnN0IEFjY29yZGlvbiA9IHVzZUNvbXBvbmVudChcIkFjY29yZGlvblwiKVxuICBjb25zdCBFeHBhbmREZWVwQnV0dG9uID0gdXNlQ29tcG9uZW50KFwiRXhwYW5kRGVlcEJ1dHRvblwiKVxuICBjb25zdCBKU09OU2NoZW1hID0gdXNlQ29tcG9uZW50KFwiSlNPTlNjaGVtYVwiKVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVycy5cbiAgICovXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoaXNFeHBhbmRlZCkge1xuICAgICAgc2V0Q29sbGFwc2VkKClcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RXhwYW5kZWQoKVxuICAgIH1cbiAgfSwgW2lzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWRdKVxuICBjb25zdCBoYW5kbGVFeHBhbnNpb25EZWVwID0gdXNlQ2FsbGJhY2soXG4gICAgKGUsIGV4cGFuZGVkRGVlcE5ldykgPT4ge1xuICAgICAgaWYgKGV4cGFuZGVkRGVlcE5ldykge1xuICAgICAgICBzZXRFeHBhbmRlZCh7IGRlZXA6IHRydWUgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldENvbGxhcHNlZCh7IGRlZXA6IHRydWUgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZXRFeHBhbmRlZCwgc2V0Q29sbGFwc2VkXVxuICApXG5cbiAgLyoqXG4gICAqIFJlbmRlcmluZy5cbiAgICovXG4gIGlmIChPYmplY3Qua2V5cygkZGVmcykubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEpTT05TY2hlbWFQYXRoQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cGF0aH0+XG4gICAgICA8SlNPTlNjaGVtYUxldmVsQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bmV4dExldmVsfT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLSRkZWZzXCJcbiAgICAgICAgICBkYXRhLWpzb24tc2NoZW1hLWxldmVsPXtsZXZlbH1cbiAgICAgICAgPlxuICAgICAgICAgIDxBY2NvcmRpb24gZXhwYW5kZWQ9e2lzRXhwYW5kZWR9IG9uQ2hhbmdlPXtoYW5kbGVFeHBhbnNpb259PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICRkZWZzXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9BY2NvcmRpb24+XG4gICAgICAgICAgPEV4cGFuZERlZXBCdXR0b25cbiAgICAgICAgICAgIGV4cGFuZGVkPXtpc0V4cGFuZGVkfVxuICAgICAgICAgICAgb25DbGljaz17aGFuZGxlRXhwYW5zaW9uRGVlcH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeVwiPlxuICAgICAgICAgICAgb2JqZWN0XG4gICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuXCIsIHtcbiAgICAgICAgICAgICAgXCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWRcIjogIWlzRXhwYW5kZWQsXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aXNFeHBhbmRlZCAmJiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge09iamVjdC5lbnRyaWVzKCRkZWZzKS5tYXAoKFtzY2hlbWFOYW1lLCBzY2hlbWFdKSA9PiAoXG4gICAgICAgICAgICAgICAgICA8bGkga2V5PXtzY2hlbWFOYW1lfSBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxKU09OU2NoZW1hIG5hbWU9e3NjaGVtYU5hbWV9IHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9KU09OU2NoZW1hTGV2ZWxDb250ZXh0LlByb3ZpZGVyPlxuICAgIDwvSlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbiRkZWZzLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgJGRlZnNcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5cbmNvbnN0ICRjb21tZW50ID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgaWYgKCFzY2hlbWE/LiRjb21tZW50KSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS0kY29tbWVudFwiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICRjb21tZW50XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeVwiPlxuICAgICAgICB7c2NoZW1hLiRjb21tZW50fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICApXG59XG5cbiRjb21tZW50LnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgJGNvbW1lbnRcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiXG5cbmltcG9ydCB7IHNjaGVtYSB9IGZyb20gXCIuLi8uLi9wcm9wLXR5cGVzXCJcbmltcG9ydCB7XG4gIHVzZUZuLFxuICB1c2VDb21wb25lbnQsXG4gIHVzZUlzRXhwYW5kZWQsXG4gIHVzZVBhdGgsXG4gIHVzZUxldmVsLFxufSBmcm9tIFwiLi4vLi4vaG9va3NcIlxuaW1wb3J0IHsgSlNPTlNjaGVtYUxldmVsQ29udGV4dCwgSlNPTlNjaGVtYVBhdGhDb250ZXh0IH0gZnJvbSBcIi4uLy4uL2NvbnRleHRcIlxuXG5jb25zdCBBbGxPZiA9ICh7IHNjaGVtYSB9KSA9PiB7XG4gIGNvbnN0IGFsbE9mID0gc2NoZW1hPy5hbGxPZiB8fCBbXVxuICBjb25zdCBmbiA9IHVzZUZuKClcbiAgY29uc3QgcGF0aFRva2VuID0gXCJhbGxPZlwiXG4gIGNvbnN0IHsgcGF0aCB9ID0gdXNlUGF0aChwYXRoVG9rZW4pXG4gIGNvbnN0IHsgaXNFeHBhbmRlZCwgc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZCB9ID0gdXNlSXNFeHBhbmRlZChwYXRoVG9rZW4pXG4gIGNvbnN0IFtsZXZlbCwgbmV4dExldmVsXSA9IHVzZUxldmVsKClcbiAgY29uc3QgQWNjb3JkaW9uID0gdXNlQ29tcG9uZW50KFwiQWNjb3JkaW9uXCIpXG4gIGNvbnN0IEV4cGFuZERlZXBCdXR0b24gPSB1c2VDb21wb25lbnQoXCJFeHBhbmREZWVwQnV0dG9uXCIpXG4gIGNvbnN0IEpTT05TY2hlbWEgPSB1c2VDb21wb25lbnQoXCJKU09OU2NoZW1hXCIpXG4gIGNvbnN0IEtleXdvcmRUeXBlID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZFR5cGVcIilcblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlcnMuXG4gICAqL1xuICBjb25zdCBoYW5kbGVFeHBhbnNpb24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKGlzRXhwYW5kZWQpIHtcbiAgICAgIHNldENvbGxhcHNlZCgpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEV4cGFuZGVkKClcbiAgICB9XG4gIH0sIFtpc0V4cGFuZGVkLCBzZXRFeHBhbmRlZCwgc2V0Q29sbGFwc2VkXSlcbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uRGVlcCA9IHVzZUNhbGxiYWNrKFxuICAgIChlLCBleHBhbmRlZERlZXBOZXcpID0+IHtcbiAgICAgIGlmIChleHBhbmRlZERlZXBOZXcpIHtcbiAgICAgICAgc2V0RXhwYW5kZWQoeyBkZWVwOiB0cnVlIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRDb2xsYXBzZWQoeyBkZWVwOiB0cnVlIH0pXG4gICAgICB9XG4gICAgfSxcbiAgICBbc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZF1cbiAgKVxuXG4gIC8qKlxuICAgKiBSZW5kZXJpbmcuXG4gICAqL1xuICBpZiAoIUFycmF5LmlzQXJyYXkoYWxsT2YpIHx8IGFsbE9mLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxKU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3BhdGh9PlxuICAgICAgPEpTT05TY2hlbWFMZXZlbENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e25leHRMZXZlbH0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1hbGxPZlwiXG4gICAgICAgICAgZGF0YS1qc29uLXNjaGVtYS1sZXZlbD17bGV2ZWx9XG4gICAgICAgID5cbiAgICAgICAgICA8QWNjb3JkaW9uIGV4cGFuZGVkPXtpc0V4cGFuZGVkfSBvbkNoYW5nZT17aGFuZGxlRXhwYW5zaW9ufT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnlcIj5cbiAgICAgICAgICAgICAgQWxsIG9mXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9BY2NvcmRpb24+XG4gICAgICAgICAgPEV4cGFuZERlZXBCdXR0b25cbiAgICAgICAgICAgIGV4cGFuZGVkPXtpc0V4cGFuZGVkfVxuICAgICAgICAgICAgb25DbGljaz17aGFuZGxlRXhwYW5zaW9uRGVlcH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxLZXl3b3JkVHlwZSBzY2hlbWE9e3sgYWxsT2YgfX0gLz5cbiAgICAgICAgICA8dWxcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW5cIiwge1xuICAgICAgICAgICAgICBcImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4tLWNvbGxhcHNlZFwiOiAhaXNFeHBhbmRlZCxcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpc0V4cGFuZGVkICYmIChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICB7YWxsT2YubWFwKChzY2hlbWEsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAga2V5PXtgIyR7aW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxKU09OU2NoZW1hXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17YCMke2luZGV4fSAke2ZuLmdldFRpdGxlKHNjaGVtYSl9YH1cbiAgICAgICAgICAgICAgICAgICAgICBzY2hlbWE9e3NjaGVtYX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvSlNPTlNjaGVtYUxldmVsQ29udGV4dC5Qcm92aWRlcj5cbiAgICA8L0pTT05TY2hlbWFQYXRoQ29udGV4dC5Qcm92aWRlcj5cbiAgKVxufVxuXG5BbGxPZi5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEFsbE9mXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQge1xuICB1c2VGbixcbiAgdXNlQ29tcG9uZW50LFxuICB1c2VJc0V4cGFuZGVkLFxuICB1c2VQYXRoLFxuICB1c2VMZXZlbCxcbn0gZnJvbSBcIi4uLy4uL2hvb2tzXCJcbmltcG9ydCB7IEpTT05TY2hlbWFMZXZlbENvbnRleHQsIEpTT05TY2hlbWFQYXRoQ29udGV4dCB9IGZyb20gXCIuLi8uLi9jb250ZXh0XCJcblxuY29uc3QgQW55T2YgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBhbnlPZiA9IHNjaGVtYT8uYW55T2YgfHwgW11cbiAgY29uc3QgZm4gPSB1c2VGbigpXG4gIGNvbnN0IHBhdGhUb2tlbiA9IFwiYW55T2ZcIlxuICBjb25zdCB7IHBhdGggfSA9IHVzZVBhdGgocGF0aFRva2VuKVxuICBjb25zdCB7IGlzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWQgfSA9IHVzZUlzRXhwYW5kZWQocGF0aFRva2VuKVxuICBjb25zdCBbbGV2ZWwsIG5leHRMZXZlbF0gPSB1c2VMZXZlbCgpXG4gIGNvbnN0IEFjY29yZGlvbiA9IHVzZUNvbXBvbmVudChcIkFjY29yZGlvblwiKVxuICBjb25zdCBFeHBhbmREZWVwQnV0dG9uID0gdXNlQ29tcG9uZW50KFwiRXhwYW5kRGVlcEJ1dHRvblwiKVxuICBjb25zdCBKU09OU2NoZW1hID0gdXNlQ29tcG9uZW50KFwiSlNPTlNjaGVtYVwiKVxuICBjb25zdCBLZXl3b3JkVHlwZSA9IHVzZUNvbXBvbmVudChcIktleXdvcmRUeXBlXCIpXG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXJzLlxuICAgKi9cbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChpc0V4cGFuZGVkKSB7XG4gICAgICBzZXRDb2xsYXBzZWQoKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRFeHBhbmRlZCgpXG4gICAgfVxuICB9LCBbaXNFeHBhbmRlZCwgc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZF0pXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvbkRlZXAgPSB1c2VDYWxsYmFjayhcbiAgICAoZSwgZXhwYW5kZWREZWVwTmV3KSA9PiB7XG4gICAgICBpZiAoZXhwYW5kZWREZWVwTmV3KSB7XG4gICAgICAgIHNldEV4cGFuZGVkKHsgZGVlcDogdHJ1ZSB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0Q29sbGFwc2VkKHsgZGVlcDogdHJ1ZSB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgW3NldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWRdXG4gIClcblxuICAvKipcbiAgICogUmVuZGVyaW5nLlxuICAgKi9cbiAgaWYgKCFBcnJheS5pc0FycmF5KGFueU9mKSB8fCBhbnlPZi5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8SlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwYXRofT5cbiAgICAgIDxKU09OU2NoZW1hTGV2ZWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtuZXh0TGV2ZWx9PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tYW55T2ZcIlxuICAgICAgICAgIGRhdGEtanNvbi1zY2hlbWEtbGV2ZWw9e2xldmVsfVxuICAgICAgICA+XG4gICAgICAgICAgPEFjY29yZGlvbiBleHBhbmRlZD17aXNFeHBhbmRlZH0gb25DaGFuZ2U9e2hhbmRsZUV4cGFuc2lvbn0+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5XCI+XG4gICAgICAgICAgICAgIEFueSBvZlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvQWNjb3JkaW9uPlxuICAgICAgICAgIDxFeHBhbmREZWVwQnV0dG9uXG4gICAgICAgICAgICBleHBhbmRlZD17aXNFeHBhbmRlZH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUV4cGFuc2lvbkRlZXB9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8S2V5d29yZFR5cGUgc2NoZW1hPXt7IGFueU9mIH19IC8+XG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuXCIsIHtcbiAgICAgICAgICAgICAgXCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWRcIjogIWlzRXhwYW5kZWQsXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aXNFeHBhbmRlZCAmJiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2FueU9mLm1hcCgoc2NoZW1hLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgIGtleT17YCMke2luZGV4fWB9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHlcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8SlNPTlNjaGVtYVxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2AjJHtpbmRleH0gJHtmbi5nZXRUaXRsZShzY2hlbWEpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgc2NoZW1hPXtzY2hlbWF9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0pTT05TY2hlbWFMZXZlbENvbnRleHQuUHJvdmlkZXI+XG4gICAgPC9KU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuQW55T2YucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBBbnlPZlxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcblxuaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSBcIi4uLy4uL3Byb3AtdHlwZXNcIlxuaW1wb3J0IHtcbiAgdXNlRm4sXG4gIHVzZUNvbXBvbmVudCxcbiAgdXNlSXNFeHBhbmRlZCxcbiAgdXNlUGF0aCxcbiAgdXNlTGV2ZWwsXG59IGZyb20gXCIuLi8uLi9ob29rc1wiXG5pbXBvcnQgeyBKU09OU2NoZW1hTGV2ZWxDb250ZXh0LCBKU09OU2NoZW1hUGF0aENvbnRleHQgfSBmcm9tIFwiLi4vLi4vY29udGV4dFwiXG5cbmNvbnN0IE9uZU9mID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgY29uc3Qgb25lT2YgPSBzY2hlbWE/Lm9uZU9mIHx8IFtdXG4gIGNvbnN0IGZuID0gdXNlRm4oKVxuICBjb25zdCBwYXRoVG9rZW4gPSBcIm9uZU9mXCJcbiAgY29uc3QgeyBwYXRoIH0gPSB1c2VQYXRoKHBhdGhUb2tlbilcbiAgY29uc3QgeyBpc0V4cGFuZGVkLCBzZXRFeHBhbmRlZCwgc2V0Q29sbGFwc2VkIH0gPSB1c2VJc0V4cGFuZGVkKHBhdGhUb2tlbilcbiAgY29uc3QgW2xldmVsLCBuZXh0TGV2ZWxdID0gdXNlTGV2ZWwoKVxuICBjb25zdCBBY2NvcmRpb24gPSB1c2VDb21wb25lbnQoXCJBY2NvcmRpb25cIilcbiAgY29uc3QgRXhwYW5kRGVlcEJ1dHRvbiA9IHVzZUNvbXBvbmVudChcIkV4cGFuZERlZXBCdXR0b25cIilcbiAgY29uc3QgSlNPTlNjaGVtYSA9IHVzZUNvbXBvbmVudChcIkpTT05TY2hlbWFcIilcbiAgY29uc3QgS2V5d29yZFR5cGUgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkVHlwZVwiKVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVycy5cbiAgICovXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoaXNFeHBhbmRlZCkge1xuICAgICAgc2V0Q29sbGFwc2VkKClcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RXhwYW5kZWQoKVxuICAgIH1cbiAgfSwgW2lzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWRdKVxuICBjb25zdCBoYW5kbGVFeHBhbnNpb25EZWVwID0gdXNlQ2FsbGJhY2soXG4gICAgKGUsIGV4cGFuZGVkRGVlcE5ldykgPT4ge1xuICAgICAgaWYgKGV4cGFuZGVkRGVlcE5ldykge1xuICAgICAgICBzZXRFeHBhbmRlZCh7IGRlZXA6IHRydWUgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldENvbGxhcHNlZCh7IGRlZXA6IHRydWUgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZXRFeHBhbmRlZCwgc2V0Q29sbGFwc2VkXVxuICApXG5cbiAgLyoqXG4gICAqIFJlbmRlcmluZy5cbiAgICovXG4gIGlmICghQXJyYXkuaXNBcnJheShvbmVPZikgfHwgb25lT2YubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEpTT05TY2hlbWFQYXRoQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cGF0aH0+XG4gICAgICA8SlNPTlNjaGVtYUxldmVsQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bmV4dExldmVsfT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLW9uZU9mXCJcbiAgICAgICAgICBkYXRhLWpzb24tc2NoZW1hLWxldmVsPXtsZXZlbH1cbiAgICAgICAgPlxuICAgICAgICAgIDxBY2NvcmRpb24gZXhwYW5kZWQ9e2lzRXhwYW5kZWR9IG9uQ2hhbmdlPXtoYW5kbGVFeHBhbnNpb259PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeVwiPlxuICAgICAgICAgICAgICBPbmUgb2ZcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L0FjY29yZGlvbj5cbiAgICAgICAgICA8RXhwYW5kRGVlcEJ1dHRvblxuICAgICAgICAgICAgZXhwYW5kZWQ9e2lzRXhwYW5kZWR9XG4gICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVFeHBhbnNpb25EZWVwfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEtleXdvcmRUeXBlIHNjaGVtYT17eyBvbmVPZiB9fSAvPlxuICAgICAgICAgIDx1bFxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlblwiLCB7XG4gICAgICAgICAgICAgIFwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkXCI6ICFpc0V4cGFuZGVkLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lzRXhwYW5kZWQgJiYgKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtvbmVPZi5tYXAoKHNjaGVtYSwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICBrZXk9e2AjJHtpbmRleH1gfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPEpTT05TY2hlbWFcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtgIyR7aW5kZXh9ICR7Zm4uZ2V0VGl0bGUoc2NoZW1hKX1gfVxuICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYT17c2NoZW1hfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9KU09OU2NoZW1hTGV2ZWxDb250ZXh0LlByb3ZpZGVyPlxuICAgIDwvSlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbk9uZU9mLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgT25lT2ZcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VGbiwgdXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2hvb2tzXCJcblxuY29uc3QgTm90ID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgY29uc3QgZm4gPSB1c2VGbigpXG4gIGNvbnN0IEpTT05TY2hlbWEgPSB1c2VDb21wb25lbnQoXCJKU09OU2NoZW1hXCIpXG5cbiAgLyoqXG4gICAqIFJlbmRlcmluZy5cbiAgICovXG4gIGlmICghZm4uaGFzS2V5d29yZChzY2hlbWEsIFwibm90XCIpKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IG5hbWUgPSAoXG4gICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeVwiPlxuICAgICAgTm90XG4gICAgPC9zcGFuPlxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLW5vdFwiPlxuICAgICAgPEpTT05TY2hlbWEgbmFtZT17bmFtZX0gc2NoZW1hPXtzY2hlbWEubm90fSBpZGVudGlmaWVyPVwibm90XCIgLz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5Ob3QucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBOb3RcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VGbiwgdXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2hvb2tzXCJcblxuY29uc3QgSWYgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBmbiA9IHVzZUZuKClcbiAgY29uc3QgSlNPTlNjaGVtYSA9IHVzZUNvbXBvbmVudChcIkpTT05TY2hlbWFcIilcblxuICAvKipcbiAgICogUmVuZGVyaW5nLlxuICAgKi9cbiAgaWYgKCFmbi5oYXNLZXl3b3JkKHNjaGVtYSwgXCJpZlwiKSkgcmV0dXJuIG51bGxcblxuICBjb25zdCBuYW1lID0gKFxuICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnlcIj5cbiAgICAgIElmXG4gICAgPC9zcGFuPlxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWlmXCI+XG4gICAgICA8SlNPTlNjaGVtYSBuYW1lPXtuYW1lfSBzY2hlbWE9e3NjaGVtYS5pZn0gaWRlbnRpZmllcj1cImlmXCIgLz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5JZi5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IElmXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcblxuaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSBcIi4uLy4uL3Byb3AtdHlwZXNcIlxuaW1wb3J0IHsgdXNlRm4sIHVzZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9ob29rc1wiXG5cbmNvbnN0IFRoZW4gPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBmbiA9IHVzZUZuKClcbiAgY29uc3QgSlNPTlNjaGVtYSA9IHVzZUNvbXBvbmVudChcIkpTT05TY2hlbWFcIilcblxuICAvKipcbiAgICogUmVuZGVyaW5nLlxuICAgKi9cbiAgaWYgKCFmbi5oYXNLZXl3b3JkKHNjaGVtYSwgXCJ0aGVuXCIpKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IG5hbWUgPSAoXG4gICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeVwiPlxuICAgICAgVGhlblxuICAgIDwvc3Bhbj5cbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS10aGVuXCI+XG4gICAgICA8SlNPTlNjaGVtYSBuYW1lPXtuYW1lfSBzY2hlbWE9e3NjaGVtYS50aGVufSBpZGVudGlmaWVyPVwidGhlblwiIC8+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuVGhlbi5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFRoZW5cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VGbiwgdXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2hvb2tzXCJcblxuY29uc3QgRWxzZSA9ICh7IHNjaGVtYSB9KSA9PiB7XG4gIGNvbnN0IGZuID0gdXNlRm4oKVxuICBjb25zdCBKU09OU2NoZW1hID0gdXNlQ29tcG9uZW50KFwiSlNPTlNjaGVtYVwiKVxuXG4gIC8qKlxuICAgKiBSZW5kZXJpbmcuXG4gICAqL1xuICBpZiAoIWZuLmhhc0tleXdvcmQoc2NoZW1hLCBcImVsc2VcIikpIHJldHVybiBudWxsXG5cbiAgY29uc3QgbmFtZSA9IChcbiAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5XCI+XG4gICAgICBFbHNlXG4gICAgPC9zcGFuPlxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWlmXCI+XG4gICAgICA8SlNPTlNjaGVtYSBuYW1lPXtuYW1lfSBzY2hlbWE9e3NjaGVtYS5lbHNlfSBpZGVudGlmaWVyPVwiZWxzZVwiIC8+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuRWxzZS5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEVsc2VcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiXG5cbmltcG9ydCB7IHNjaGVtYSB9IGZyb20gXCIuLi8uLi9wcm9wLXR5cGVzXCJcbmltcG9ydCB7IHVzZUNvbXBvbmVudCwgdXNlSXNFeHBhbmRlZCwgdXNlTGV2ZWwsIHVzZVBhdGggfSBmcm9tIFwiLi4vLi4vaG9va3NcIlxuaW1wb3J0IHsgSlNPTlNjaGVtYUxldmVsQ29udGV4dCwgSlNPTlNjaGVtYVBhdGhDb250ZXh0IH0gZnJvbSBcIi4uLy4uL2NvbnRleHRcIlxuXG5jb25zdCBEZXBlbmRlbnRTY2hlbWFzID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgY29uc3QgZGVwZW5kZW50U2NoZW1hcyA9IHNjaGVtYT8uZGVwZW5kZW50U2NoZW1hcyB8fCBbXVxuICBjb25zdCBwYXRoVG9rZW4gPSBcImRlcGVuZGVudFNjaGVtYXNcIlxuICBjb25zdCB7IHBhdGggfSA9IHVzZVBhdGgocGF0aFRva2VuKVxuICBjb25zdCB7IGlzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWQgfSA9IHVzZUlzRXhwYW5kZWQocGF0aFRva2VuKVxuICBjb25zdCBbbGV2ZWwsIG5leHRMZXZlbF0gPSB1c2VMZXZlbCgpXG4gIGNvbnN0IEFjY29yZGlvbiA9IHVzZUNvbXBvbmVudChcIkFjY29yZGlvblwiKVxuICBjb25zdCBFeHBhbmREZWVwQnV0dG9uID0gdXNlQ29tcG9uZW50KFwiRXhwYW5kRGVlcEJ1dHRvblwiKVxuICBjb25zdCBKU09OU2NoZW1hID0gdXNlQ29tcG9uZW50KFwiSlNPTlNjaGVtYVwiKVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVycy5cbiAgICovXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoaXNFeHBhbmRlZCkge1xuICAgICAgc2V0Q29sbGFwc2VkKClcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RXhwYW5kZWQoKVxuICAgIH1cbiAgfSwgW2lzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWRdKVxuICBjb25zdCBoYW5kbGVFeHBhbnNpb25EZWVwID0gdXNlQ2FsbGJhY2soXG4gICAgKGUsIGV4cGFuZGVkRGVlcE5ldykgPT4ge1xuICAgICAgaWYgKGV4cGFuZGVkRGVlcE5ldykge1xuICAgICAgICBzZXRFeHBhbmRlZCh7IGRlZXA6IHRydWUgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldENvbGxhcHNlZCh7IGRlZXA6IHRydWUgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZXRFeHBhbmRlZCwgc2V0Q29sbGFwc2VkXVxuICApXG5cbiAgLyoqXG4gICAqIFJlbmRlcmluZy5cbiAgICovXG4gIGlmICh0eXBlb2YgZGVwZW5kZW50U2NoZW1hcyAhPT0gXCJvYmplY3RcIikgcmV0dXJuIG51bGxcbiAgaWYgKE9iamVjdC5rZXlzKGRlcGVuZGVudFNjaGVtYXMpLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxKU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3BhdGh9PlxuICAgICAgPEpTT05TY2hlbWFMZXZlbENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e25leHRMZXZlbH0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kZXBlbmRlbnRTY2hlbWFzXCJcbiAgICAgICAgICBkYXRhLWpzb24tc2NoZW1hLWxldmVsPXtsZXZlbH1cbiAgICAgICAgPlxuICAgICAgICAgIDxBY2NvcmRpb24gZXhwYW5kZWQ9e2lzRXhwYW5kZWR9IG9uQ2hhbmdlPXtoYW5kbGVFeHBhbnNpb259PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeVwiPlxuICAgICAgICAgICAgICBEZXBlbmRlbnQgc2NoZW1hc1xuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvQWNjb3JkaW9uPlxuICAgICAgICAgIDxFeHBhbmREZWVwQnV0dG9uXG4gICAgICAgICAgICBleHBhbmRlZD17aXNFeHBhbmRlZH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUV4cGFuc2lvbkRlZXB9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnlcIj5cbiAgICAgICAgICAgIG9iamVjdFxuICAgICAgICAgIDwvc3Ryb25nPlxuICAgICAgICAgIDx1bFxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlblwiLCB7XG4gICAgICAgICAgICAgIFwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkXCI6ICFpc0V4cGFuZGVkLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lzRXhwYW5kZWQgJiYgKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtPYmplY3QuZW50cmllcyhkZXBlbmRlbnRTY2hlbWFzKS5tYXAoXG4gICAgICAgICAgICAgICAgICAoW3NjaGVtYU5hbWUsIHNjaGVtYV0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtzY2hlbWFOYW1lfVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHlcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPEpTT05TY2hlbWEgbmFtZT17c2NoZW1hTmFtZX0gc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9KU09OU2NoZW1hTGV2ZWxDb250ZXh0LlByb3ZpZGVyPlxuICAgIDwvSlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbkRlcGVuZGVudFNjaGVtYXMucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBEZXBlbmRlbnRTY2hlbWFzXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQge1xuICB1c2VGbixcbiAgdXNlQ29tcG9uZW50LFxuICB1c2VJc0V4cGFuZGVkLFxuICB1c2VQYXRoLFxuICB1c2VMZXZlbCxcbn0gZnJvbSBcIi4uLy4uL2hvb2tzXCJcbmltcG9ydCB7IEpTT05TY2hlbWFMZXZlbENvbnRleHQsIEpTT05TY2hlbWFQYXRoQ29udGV4dCB9IGZyb20gXCIuLi8uLi9jb250ZXh0XCJcblxuY29uc3QgUHJlZml4SXRlbXMgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBwcmVmaXhJdGVtcyA9IHNjaGVtYT8ucHJlZml4SXRlbXMgfHwgW11cbiAgY29uc3QgZm4gPSB1c2VGbigpXG4gIGNvbnN0IHBhdGhUb2tlbiA9IFwicHJlZml4SXRlbXNcIlxuICBjb25zdCB7IHBhdGggfSA9IHVzZVBhdGgocGF0aFRva2VuKVxuICBjb25zdCB7IGlzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWQgfSA9IHVzZUlzRXhwYW5kZWQocGF0aFRva2VuKVxuICBjb25zdCBbbGV2ZWwsIG5leHRMZXZlbF0gPSB1c2VMZXZlbCgpXG4gIGNvbnN0IEFjY29yZGlvbiA9IHVzZUNvbXBvbmVudChcIkFjY29yZGlvblwiKVxuICBjb25zdCBFeHBhbmREZWVwQnV0dG9uID0gdXNlQ29tcG9uZW50KFwiRXhwYW5kRGVlcEJ1dHRvblwiKVxuICBjb25zdCBKU09OU2NoZW1hID0gdXNlQ29tcG9uZW50KFwiSlNPTlNjaGVtYVwiKVxuICBjb25zdCBLZXl3b3JkVHlwZSA9IHVzZUNvbXBvbmVudChcIktleXdvcmRUeXBlXCIpXG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXJzLlxuICAgKi9cbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChpc0V4cGFuZGVkKSB7XG4gICAgICBzZXRDb2xsYXBzZWQoKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRFeHBhbmRlZCgpXG4gICAgfVxuICB9LCBbaXNFeHBhbmRlZCwgc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZF0pXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvbkRlZXAgPSB1c2VDYWxsYmFjayhcbiAgICAoZSwgZXhwYW5kZWREZWVwTmV3KSA9PiB7XG4gICAgICBpZiAoZXhwYW5kZWREZWVwTmV3KSB7XG4gICAgICAgIHNldEV4cGFuZGVkKHsgZGVlcDogdHJ1ZSB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0Q29sbGFwc2VkKHsgZGVlcDogdHJ1ZSB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgW3NldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWRdXG4gIClcblxuICAvKipcbiAgICogUmVuZGVyaW5nLlxuICAgKi9cbiAgaWYgKCFBcnJheS5pc0FycmF5KHByZWZpeEl0ZW1zKSB8fCBwcmVmaXhJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8SlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwYXRofT5cbiAgICAgIDxKU09OU2NoZW1hTGV2ZWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtuZXh0TGV2ZWx9PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tcHJlZml4SXRlbXNcIlxuICAgICAgICAgIGRhdGEtanNvbi1zY2hlbWEtbGV2ZWw9e2xldmVsfVxuICAgICAgICA+XG4gICAgICAgICAgPEFjY29yZGlvbiBleHBhbmRlZD17aXNFeHBhbmRlZH0gb25DaGFuZ2U9e2hhbmRsZUV4cGFuc2lvbn0+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5XCI+XG4gICAgICAgICAgICAgIFByZWZpeCBpdGVtc1xuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvQWNjb3JkaW9uPlxuICAgICAgICAgIDxFeHBhbmREZWVwQnV0dG9uXG4gICAgICAgICAgICBleHBhbmRlZD17aXNFeHBhbmRlZH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUV4cGFuc2lvbkRlZXB9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8S2V5d29yZFR5cGUgc2NoZW1hPXt7IHByZWZpeEl0ZW1zIH19IC8+XG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuXCIsIHtcbiAgICAgICAgICAgICAgXCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWRcIjogIWlzRXhwYW5kZWQsXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aXNFeHBhbmRlZCAmJiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge3ByZWZpeEl0ZW1zLm1hcCgoc2NoZW1hLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgIGtleT17YCMke2luZGV4fWB9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHlcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8SlNPTlNjaGVtYVxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2AjJHtpbmRleH0gJHtmbi5nZXRUaXRsZShzY2hlbWEpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgc2NoZW1hPXtzY2hlbWF9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0pTT05TY2hlbWFMZXZlbENvbnRleHQuUHJvdmlkZXI+XG4gICAgPC9KU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuUHJlZml4SXRlbXMucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBQcmVmaXhJdGVtc1xuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IHNjaGVtYSB9IGZyb20gXCIuLi8uLi9wcm9wLXR5cGVzXCJcbmltcG9ydCB7IHVzZUZuLCB1c2VDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vaG9va3NcIlxuXG5jb25zdCBJdGVtcyA9ICh7IHNjaGVtYSB9KSA9PiB7XG4gIGNvbnN0IGZuID0gdXNlRm4oKVxuICBjb25zdCBKU09OU2NoZW1hID0gdXNlQ29tcG9uZW50KFwiSlNPTlNjaGVtYVwiKVxuXG4gIC8qKlxuICAgKiBSZW5kZXJpbmcuXG4gICAqL1xuICBpZiAoIWZuLmhhc0tleXdvcmQoc2NoZW1hLCBcIml0ZW1zXCIpKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IG5hbWUgPSAoXG4gICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeVwiPlxuICAgICAgSXRlbXNcbiAgICA8L3NwYW4+XG4gIClcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0taXRlbXNcIj5cbiAgICAgIDxKU09OU2NoZW1hIG5hbWU9e25hbWV9IHNjaGVtYT17c2NoZW1hLml0ZW1zfSBpZGVudGlmaWVyPVwiaXRlbXNcIiAvPlxuICAgIDwvZGl2PlxuICApXG59XG5cbkl0ZW1zLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgSXRlbXNcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VGbiwgdXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2hvb2tzXCJcblxuY29uc3QgQ29udGFpbnMgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBmbiA9IHVzZUZuKClcbiAgY29uc3QgSlNPTlNjaGVtYSA9IHVzZUNvbXBvbmVudChcIkpTT05TY2hlbWFcIilcblxuICAvKipcbiAgICogUmVuZGVyaW5nLlxuICAgKi9cbiAgaWYgKCFmbi5oYXNLZXl3b3JkKHNjaGVtYSwgXCJjb250YWluc1wiKSkgcmV0dXJuIG51bGxcblxuICBjb25zdCBuYW1lID0gKFxuICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnlcIj5cbiAgICAgIENvbnRhaW5zXG4gICAgPC9zcGFuPlxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWNvbnRhaW5zXCI+XG4gICAgICA8SlNPTlNjaGVtYSBuYW1lPXtuYW1lfSBzY2hlbWE9e3NjaGVtYS5jb250YWluc30gaWRlbnRpZmllcj1cImNvbnRhaW5zXCIgLz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5Db250YWlucy5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbnRhaW5zXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcblxuaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSBcIi4uLy4uLy4uL3Byb3AtdHlwZXNcIlxuaW1wb3J0IHsgdXNlRm4sIHVzZUNvbXBvbmVudCwgdXNlUGF0aCB9IGZyb20gXCIuLi8uLi8uLi9ob29rc1wiXG5pbXBvcnQgeyBKU09OU2NoZW1hUGF0aENvbnRleHQgfSBmcm9tIFwiLi4vLi4vLi4vY29udGV4dFwiXG5cbmNvbnN0IFByb3BlcnRpZXMgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBmbiA9IHVzZUZuKClcbiAgY29uc3QgcHJvcGVydGllcyA9IHNjaGVtYT8ucHJvcGVydGllcyB8fCB7fVxuICBjb25zdCByZXF1aXJlZCA9IEFycmF5LmlzQXJyYXkoc2NoZW1hPy5yZXF1aXJlZCkgPyBzY2hlbWEucmVxdWlyZWQgOiBbXVxuICBjb25zdCBKU09OU2NoZW1hID0gdXNlQ29tcG9uZW50KFwiSlNPTlNjaGVtYVwiKVxuICBjb25zdCB7IHBhdGggfSA9IHVzZVBhdGgoXCJwcm9wZXJ0aWVzXCIpXG5cbiAgLyoqXG4gICAqIFJlbmRlcmluZy5cbiAgICovXG4gIGlmIChPYmplY3Qua2V5cyhwcm9wZXJ0aWVzKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8SlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwYXRofT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tcHJvcGVydGllc1wiPlxuICAgICAgICA8dWw+XG4gICAgICAgICAge09iamVjdC5lbnRyaWVzKHByb3BlcnRpZXMpLm1hcCgoW3Byb3BlcnR5TmFtZSwgcHJvcGVydHlTY2hlbWFdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc1JlcXVpcmVkID0gcmVxdWlyZWQuaW5jbHVkZXMocHJvcGVydHlOYW1lKVxuICAgICAgICAgICAgY29uc3QgZGVwZW5kZW50UmVxdWlyZWQgPSBmbi5nZXREZXBlbmRlbnRSZXF1aXJlZChcbiAgICAgICAgICAgICAgcHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgICBzY2hlbWFcbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAga2V5PXtwcm9wZXJ0eU5hbWV9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eVwiLCB7XG4gICAgICAgICAgICAgICAgICBcImpzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHktLXJlcXVpcmVkXCI6IGlzUmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8SlNPTlNjaGVtYVxuICAgICAgICAgICAgICAgICAgbmFtZT17cHJvcGVydHlOYW1lfVxuICAgICAgICAgICAgICAgICAgc2NoZW1hPXtwcm9wZXJ0eVNjaGVtYX1cbiAgICAgICAgICAgICAgICAgIGRlcGVuZGVudFJlcXVpcmVkPXtkZXBlbmRlbnRSZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0pfVxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgPC9KU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuUHJvcGVydGllcy5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFByb3BlcnRpZXNcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VDb21wb25lbnQsIHVzZVBhdGggfSBmcm9tIFwiLi4vLi4vLi4vaG9va3NcIlxuaW1wb3J0IHsgSlNPTlNjaGVtYVBhdGhDb250ZXh0IH0gZnJvbSBcIi4uLy4uLy4uL2NvbnRleHRcIlxuXG5jb25zdCBQYXR0ZXJuUHJvcGVydGllcyA9ICh7IHNjaGVtYSB9KSA9PiB7XG4gIGNvbnN0IHBhdHRlcm5Qcm9wZXJ0aWVzID0gc2NoZW1hPy5wYXR0ZXJuUHJvcGVydGllcyB8fCB7fVxuICBjb25zdCBKU09OU2NoZW1hID0gdXNlQ29tcG9uZW50KFwiSlNPTlNjaGVtYVwiKVxuICBjb25zdCB7IHBhdGggfSA9IHVzZVBhdGgoXCJwYXR0ZXJuUHJvcGVydGllc1wiKVxuXG4gIC8qKlxuICAgKiBSZW5kZXJpbmcuXG4gICAqL1xuICBpZiAoT2JqZWN0LmtleXMocGF0dGVyblByb3BlcnRpZXMpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxKU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3BhdGh9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1wYXR0ZXJuUHJvcGVydGllc1wiPlxuICAgICAgICA8dWw+XG4gICAgICAgICAge09iamVjdC5lbnRyaWVzKHBhdHRlcm5Qcm9wZXJ0aWVzKS5tYXAoKFtwcm9wZXJ0eU5hbWUsIHNjaGVtYV0pID0+IChcbiAgICAgICAgICAgIDxsaSBrZXk9e3Byb3BlcnR5TmFtZX0gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eVwiPlxuICAgICAgICAgICAgICA8SlNPTlNjaGVtYSBuYW1lPXtwcm9wZXJ0eU5hbWV9IHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgIDwvSlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cblBhdHRlcm5Qcm9wZXJ0aWVzLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgUGF0dGVyblByb3BlcnRpZXNcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VGbiwgdXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2hvb2tzXCJcblxuY29uc3QgQWRkaXRpb25hbFByb3BlcnRpZXMgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBmbiA9IHVzZUZuKClcbiAgY29uc3QgSlNPTlNjaGVtYSA9IHVzZUNvbXBvbmVudChcIkpTT05TY2hlbWFcIilcblxuICBpZiAoIWZuLmhhc0tleXdvcmQoc2NoZW1hLCBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCIpKSByZXR1cm4gbnVsbFxuXG4gIC8qKlxuICAgKiBSZW5kZXJpbmcuXG4gICAqL1xuICBjb25zdCBuYW1lID0gKFxuICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnlcIj5cbiAgICAgIEFkZGl0aW9uYWwgcHJvcGVydGllc1xuICAgIDwvc3Bhbj5cbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1hZGRpdGlvbmFsUHJvcGVydGllc1wiPlxuICAgICAge3NjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcyA9PT0gdHJ1ZSA/IChcbiAgICAgICAgPD5cbiAgICAgICAgICB7bmFtZX1cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5XCI+XG4gICAgICAgICAgICBhbGxvd2VkXG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8Lz5cbiAgICAgICkgOiBzY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXMgPT09IGZhbHNlID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIHtuYW1lfVxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnlcIj5cbiAgICAgICAgICAgIGZvcmJpZGRlblxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC8+XG4gICAgICApIDogKFxuICAgICAgICA8SlNPTlNjaGVtYVxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgc2NoZW1hPXtzY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXN9XG4gICAgICAgICAgaWRlbnRpZmllcj1cImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCJcbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gIClcbn1cblxuQWRkaXRpb25hbFByb3BlcnRpZXMucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBBZGRpdGlvbmFsUHJvcGVydGllc1xuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IHNjaGVtYSB9IGZyb20gXCIuLi8uLi9wcm9wLXR5cGVzXCJcbmltcG9ydCB7IHVzZUZuLCB1c2VDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vaG9va3NcIlxuXG5jb25zdCBQcm9wZXJ0eU5hbWVzID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgY29uc3QgZm4gPSB1c2VGbigpXG4gIGNvbnN0IEpTT05TY2hlbWEgPSB1c2VDb21wb25lbnQoXCJKU09OU2NoZW1hXCIpXG4gIGNvbnN0IG5hbWUgPSAoXG4gICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeVwiPlxuICAgICAgUHJvcGVydHkgbmFtZXNcbiAgICA8L3NwYW4+XG4gIClcblxuICAvKipcbiAgICogUmVuZGVyaW5nLlxuICAgKi9cbiAgaWYgKCFmbi5oYXNLZXl3b3JkKHNjaGVtYSwgXCJwcm9wZXJ0eU5hbWVzXCIpKSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1wcm9wZXJ0eU5hbWVzXCI+XG4gICAgICA8SlNPTlNjaGVtYVxuICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICBzY2hlbWE9e3NjaGVtYS5wcm9wZXJ0eU5hbWVzfVxuICAgICAgICBpZGVudGlmaWVyPVwicHJvcGVydHlOYW1lc1wiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApXG59XG5cblByb3BlcnR5TmFtZXMucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBQcm9wZXJ0eU5hbWVzXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcblxuaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSBcIi4uLy4uL3Byb3AtdHlwZXNcIlxuaW1wb3J0IHsgdXNlRm4sIHVzZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9ob29rc1wiXG5cbmNvbnN0IFVuZXZhbHVhdGVkSXRlbXMgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBmbiA9IHVzZUZuKClcbiAgY29uc3QgSlNPTlNjaGVtYSA9IHVzZUNvbXBvbmVudChcIkpTT05TY2hlbWFcIilcblxuICAvKipcbiAgICogUmVuZGVyaW5nLlxuICAgKi9cbiAgaWYgKCFmbi5oYXNLZXl3b3JkKHNjaGVtYSwgXCJ1bmV2YWx1YXRlZEl0ZW1zXCIpKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IG5hbWUgPSAoXG4gICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeVwiPlxuICAgICAgVW5ldmFsdWF0ZWQgaXRlbXNcbiAgICA8L3NwYW4+XG4gIClcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tdW5ldmFsdWF0ZWRJdGVtc1wiPlxuICAgICAgPEpTT05TY2hlbWFcbiAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgc2NoZW1hPXtzY2hlbWEudW5ldmFsdWF0ZWRJdGVtc31cbiAgICAgICAgaWRlbnRpZmllcj1cInVuZXZhbHVhdGVkSXRlbXNcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5VbmV2YWx1YXRlZEl0ZW1zLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgVW5ldmFsdWF0ZWRJdGVtc1xuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IHNjaGVtYSB9IGZyb20gXCIuLi8uLi9wcm9wLXR5cGVzXCJcbmltcG9ydCB7IHVzZUZuLCB1c2VDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vaG9va3NcIlxuXG5jb25zdCBVbmV2YWx1YXRlZFByb3BlcnRpZXMgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBmbiA9IHVzZUZuKClcbiAgY29uc3QgSlNPTlNjaGVtYSA9IHVzZUNvbXBvbmVudChcIkpTT05TY2hlbWFcIilcblxuICAvKipcbiAgICogUmVuZGVyaW5nLlxuICAgKi9cbiAgaWYgKCFmbi5oYXNLZXl3b3JkKHNjaGVtYSwgXCJ1bmV2YWx1YXRlZFByb3BlcnRpZXNcIikpIHJldHVybiBudWxsXG5cbiAgY29uc3QgbmFtZSA9IChcbiAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5XCI+XG4gICAgICBVbmV2YWx1YXRlZCBwcm9wZXJ0aWVzXG4gICAgPC9zcGFuPlxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLXVuZXZhbHVhdGVkUHJvcGVydGllc1wiPlxuICAgICAgPEpTT05TY2hlbWFcbiAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgc2NoZW1hPXtzY2hlbWEudW5ldmFsdWF0ZWRQcm9wZXJ0aWVzfVxuICAgICAgICBpZGVudGlmaWVyPVwidW5ldmFsdWF0ZWRQcm9wZXJ0aWVzXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VGbiB9IGZyb20gXCIuLi8uLi9ob29rc1wiXG5cbmNvbnN0IFR5cGUgPSAoeyBzY2hlbWEsIGlzQ2lyY3VsYXIgPSBmYWxzZSB9KSA9PiB7XG4gIGNvbnN0IGZuID0gdXNlRm4oKVxuICBjb25zdCB0eXBlID0gZm4uZ2V0VHlwZShzY2hlbWEpXG4gIGNvbnN0IGNpcmN1bGFyU3VmZml4ID0gaXNDaXJjdWxhciA/IFwiIFtjaXJjdWxhcl1cIiA6IFwiXCJcblxuICByZXR1cm4gKFxuICAgIDxzdHJvbmcgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeVwiPlxuICAgICAge2Ake3R5cGV9JHtjaXJjdWxhclN1ZmZpeH1gfVxuICAgIDwvc3Ryb25nPlxuICApXG59XG5cblR5cGUucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxuICBpc0NpcmN1bGFyOiBQcm9wVHlwZXMuYm9vbCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgVHlwZVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IHNjaGVtYSB9IGZyb20gXCIuLi8uLi8uLi9wcm9wLXR5cGVzXCJcbmltcG9ydCB7IHVzZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi8uLi9ob29rc1wiXG5cbmNvbnN0IEVudW0gPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBKU09OVmlld2VyID0gdXNlQ29tcG9uZW50KFwiSlNPTlZpZXdlclwiKVxuXG4gIGlmICghQXJyYXkuaXNBcnJheShzY2hlbWE/LmVudW0pKSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPEpTT05WaWV3ZXJcbiAgICAgIG5hbWU9XCJFbnVtXCJcbiAgICAgIHZhbHVlPXtzY2hlbWEuZW51bX1cbiAgICAgIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWVudW1cIlxuICAgIC8+XG4gIClcbn1cblxuRW51bS5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEVudW1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VDb21wb25lbnQsIHVzZUZuIH0gZnJvbSBcIi4uLy4uLy4uL2hvb2tzXCJcblxuY29uc3QgQ29uc3QgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBmbiA9IHVzZUZuKClcbiAgY29uc3QgSlNPTlZpZXdlciA9IHVzZUNvbXBvbmVudChcIkpTT05WaWV3ZXJcIilcblxuICBpZiAoIWZuLmhhc0tleXdvcmQoc2NoZW1hLCBcImNvbnN0XCIpKSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPEpTT05WaWV3ZXJcbiAgICAgIG5hbWU9XCJDb25zdFwiXG4gICAgICB2YWx1ZT17c2NoZW1hLmNvbnN0fVxuICAgICAgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tY29uc3RcIlxuICAgIC8+XG4gIClcbn1cblxuQ29uc3QucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBDb25zdFxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgTGlzdCwgTWFwIH0gZnJvbSBcImltbXV0YWJsZVwiXG5cbmV4cG9ydCBjb25zdCB1cHBlckZpcnN0ID0gKHZhbHVlKSA9PiB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gYCR7dmFsdWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHt2YWx1ZS5zbGljZSgxKX1gXG4gIH1cbiAgcmV0dXJuIHZhbHVlXG59XG5cbi8qKlxuICogTG9va3VwIGNhbiBiZSBgYmFzaWNgIG9yIGBleHRlbmRlZGAuIEJ5IGRlZmF1bHQgdGhlIGxvb2t1cCBpcyBgZXh0ZW5kZWRgLlxuICovXG5leHBvcnQgY29uc3QgbWFrZUdldFRpdGxlID0gKGZuQWNjZXNzb3IpID0+IHtcbiAgY29uc3QgZ2V0VGl0bGUgPSAoc2NoZW1hLCB7IGxvb2t1cCA9IFwiZXh0ZW5kZWRcIiB9ID0ge30pID0+IHtcbiAgICBjb25zdCBmbiA9IGZuQWNjZXNzb3IoKVxuXG4gICAgaWYgKHNjaGVtYT8udGl0bGUgIT0gbnVsbCkgcmV0dXJuIGZuLnVwcGVyRmlyc3QoU3RyaW5nKHNjaGVtYS50aXRsZSkpXG4gICAgaWYgKGxvb2t1cCA9PT0gXCJleHRlbmRlZFwiKSB7XG4gICAgICBpZiAoc2NoZW1hPy4kYW5jaG9yICE9IG51bGwpIHJldHVybiBmbi51cHBlckZpcnN0KFN0cmluZyhzY2hlbWEuJGFuY2hvcikpXG4gICAgICBpZiAoc2NoZW1hPy4kaWQgIT0gbnVsbCkgcmV0dXJuIFN0cmluZyhzY2hlbWEuJGlkKVxuICAgIH1cblxuICAgIHJldHVybiBcIlwiXG4gIH1cblxuICByZXR1cm4gZ2V0VGl0bGVcbn1cblxuZXhwb3J0IGNvbnN0IG1ha2VHZXRUeXBlID0gKGZuQWNjZXNzb3IpID0+IHtcbiAgY29uc3QgZ2V0VHlwZSA9IChzY2hlbWEsIHByb2Nlc3NlZFNjaGVtYXMgPSBuZXcgV2Vha1NldCgpKSA9PiB7XG4gICAgY29uc3QgZm4gPSBmbkFjY2Vzc29yKClcblxuICAgIGlmIChzY2hlbWEgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFwiYW55XCJcbiAgICB9XG5cbiAgICBpZiAoZm4uaXNCb29sZWFuSlNPTlNjaGVtYShzY2hlbWEpKSB7XG4gICAgICByZXR1cm4gc2NoZW1hID8gXCJhbnlcIiA6IFwibmV2ZXJcIlxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygc2NoZW1hICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICByZXR1cm4gXCJhbnlcIlxuICAgIH1cblxuICAgIGlmIChwcm9jZXNzZWRTY2hlbWFzLmhhcyhzY2hlbWEpKSB7XG4gICAgICByZXR1cm4gXCJhbnlcIiAvLyBkZXRlY3QgYSBjeWNsZVxuICAgIH1cbiAgICBwcm9jZXNzZWRTY2hlbWFzLmFkZChzY2hlbWEpXG5cbiAgICBjb25zdCB7IHR5cGUsIHByZWZpeEl0ZW1zLCBpdGVtcyB9ID0gc2NoZW1hXG5cbiAgICBjb25zdCBnZXRBcnJheVR5cGUgPSAoKSA9PiB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShwcmVmaXhJdGVtcykpIHtcbiAgICAgICAgY29uc3QgcHJlZml4SXRlbXNUeXBlcyA9IHByZWZpeEl0ZW1zLm1hcCgoaXRlbVNjaGVtYSkgPT5cbiAgICAgICAgICBnZXRUeXBlKGl0ZW1TY2hlbWEsIHByb2Nlc3NlZFNjaGVtYXMpXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgaXRlbXNUeXBlID0gaXRlbXMgPyBnZXRUeXBlKGl0ZW1zLCBwcm9jZXNzZWRTY2hlbWFzKSA6IFwiYW55XCJcbiAgICAgICAgcmV0dXJuIGBhcnJheTxbJHtwcmVmaXhJdGVtc1R5cGVzLmpvaW4oXCIsIFwiKX1dLCAke2l0ZW1zVHlwZX0+YFxuICAgICAgfSBlbHNlIGlmIChpdGVtcykge1xuICAgICAgICBjb25zdCBpdGVtc1R5cGUgPSBnZXRUeXBlKGl0ZW1zLCBwcm9jZXNzZWRTY2hlbWFzKVxuICAgICAgICByZXR1cm4gYGFycmF5PCR7aXRlbXNUeXBlfT5gXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gXCJhcnJheTxhbnk+XCJcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBpbmZlclR5cGUgPSAoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIE9iamVjdC5oYXNPd24oc2NoZW1hLCBcInByZWZpeEl0ZW1zXCIpIHx8XG4gICAgICAgIE9iamVjdC5oYXNPd24oc2NoZW1hLCBcIml0ZW1zXCIpIHx8XG4gICAgICAgIE9iamVjdC5oYXNPd24oc2NoZW1hLCBcImNvbnRhaW5zXCIpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGdldEFycmF5VHlwZSgpXG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBPYmplY3QuaGFzT3duKHNjaGVtYSwgXCJwcm9wZXJ0aWVzXCIpIHx8XG4gICAgICAgIE9iamVjdC5oYXNPd24oc2NoZW1hLCBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCIpIHx8XG4gICAgICAgIE9iamVjdC5oYXNPd24oc2NoZW1hLCBcInBhdHRlcm5Qcm9wZXJ0aWVzXCIpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIFwib2JqZWN0XCJcbiAgICAgIH0gZWxzZSBpZiAoW1wiaW50MzJcIiwgXCJpbnQ2NFwiXS5pbmNsdWRlcyhzY2hlbWEuZm9ybWF0KSkge1xuICAgICAgICAvLyBPcGVuQVBJIDMuMS4wIGludGVnZXIgY3VzdG9tIGZvcm1hdHNcbiAgICAgICAgcmV0dXJuIFwiaW50ZWdlclwiXG4gICAgICB9IGVsc2UgaWYgKFtcImZsb2F0XCIsIFwiZG91YmxlXCJdLmluY2x1ZGVzKHNjaGVtYS5mb3JtYXQpKSB7XG4gICAgICAgIC8vIE9wZW5BUEkgMy4xLjAgbnVtYmVyIGN1c3RvbSBmb3JtYXRzXG4gICAgICAgIHJldHVybiBcIm51bWJlclwiXG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBPYmplY3QuaGFzT3duKHNjaGVtYSwgXCJtaW5pbXVtXCIpIHx8XG4gICAgICAgIE9iamVjdC5oYXNPd24oc2NoZW1hLCBcIm1heGltdW1cIikgfHxcbiAgICAgICAgT2JqZWN0Lmhhc093bihzY2hlbWEsIFwiZXhjbHVzaXZlTWluaW11bVwiKSB8fFxuICAgICAgICBPYmplY3QuaGFzT3duKHNjaGVtYSwgXCJleGNsdXNpdmVNYXhpbXVtXCIpIHx8XG4gICAgICAgIE9iamVjdC5oYXNPd24oc2NoZW1hLCBcIm11bHRpcGxlT2ZcIilcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gXCJudW1iZXIgfCBpbnRlZ2VyXCJcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIE9iamVjdC5oYXNPd24oc2NoZW1hLCBcInBhdHRlcm5cIikgfHxcbiAgICAgICAgT2JqZWN0Lmhhc093bihzY2hlbWEsIFwiZm9ybWF0XCIpIHx8XG4gICAgICAgIE9iamVjdC5oYXNPd24oc2NoZW1hLCBcIm1pbkxlbmd0aFwiKSB8fFxuICAgICAgICBPYmplY3QuaGFzT3duKHNjaGVtYSwgXCJtYXhMZW5ndGhcIikgfHxcbiAgICAgICAgT2JqZWN0Lmhhc093bihzY2hlbWEsIFwiY29udGVudEVuY29kaW5nXCIpIHx8XG4gICAgICAgIE9iamVjdC5oYXNPd24oc2NoZW1hLCBcImNvbnRlbnRNZWRpYVR5cGVcIilcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gXCJzdHJpbmdcIlxuICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc2NoZW1hLmNvbnN0ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIGlmIChzY2hlbWEuY29uc3QgPT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gXCJudWxsXCJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc2NoZW1hLmNvbnN0ID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgIHJldHVybiBcImJvb2xlYW5cIlxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzY2hlbWEuY29uc3QgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICByZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihzY2hlbWEuY29uc3QpID8gXCJpbnRlZ2VyXCIgOiBcIm51bWJlclwiXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHNjaGVtYS5jb25zdCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIHJldHVybiBcInN0cmluZ1wiXG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEuY29uc3QpKSB7XG4gICAgICAgICAgcmV0dXJuIFwiYXJyYXk8YW55PlwiXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHNjaGVtYS5jb25zdCA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgIHJldHVybiBcIm9iamVjdFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgaWYgKHNjaGVtYS5ub3QgJiYgZ2V0VHlwZShzY2hlbWEubm90KSA9PT0gXCJhbnlcIikge1xuICAgICAgcmV0dXJuIFwibmV2ZXJcIlxuICAgIH1cblxuICAgIGNvbnN0IHR5cGVTdHJpbmcgPSBBcnJheS5pc0FycmF5KHR5cGUpXG4gICAgICA/IHR5cGUubWFwKCh0KSA9PiAodCA9PT0gXCJhcnJheVwiID8gZ2V0QXJyYXlUeXBlKCkgOiB0KSkuam9pbihcIiB8IFwiKVxuICAgICAgOiB0eXBlID09PSBcImFycmF5XCJcbiAgICAgICAgPyBnZXRBcnJheVR5cGUoKVxuICAgICAgICA6IFtcbiAgICAgICAgICAgICAgXCJudWxsXCIsXG4gICAgICAgICAgICAgIFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICBcImFycmF5XCIsXG4gICAgICAgICAgICAgIFwibnVtYmVyXCIsXG4gICAgICAgICAgICAgIFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXS5pbmNsdWRlcyh0eXBlKVxuICAgICAgICAgID8gdHlwZVxuICAgICAgICAgIDogaW5mZXJUeXBlKClcblxuICAgIGNvbnN0IGhhbmRsZUNvbWJpbmluZ0tleXdvcmRzID0gKGtleXdvcmQsIHNlcGFyYXRvcikgPT4ge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hW2tleXdvcmRdKSkge1xuICAgICAgICBjb25zdCBjb21iaW5lZFR5cGVzID0gc2NoZW1hW2tleXdvcmRdLm1hcCgoc3ViU2NoZW1hKSA9PlxuICAgICAgICAgIGdldFR5cGUoc3ViU2NoZW1hLCBwcm9jZXNzZWRTY2hlbWFzKVxuICAgICAgICApXG4gICAgICAgIHJldHVybiBgKCR7Y29tYmluZWRUeXBlcy5qb2luKHNlcGFyYXRvcil9KWBcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29uc3Qgb25lT2ZTdHJpbmcgPSBoYW5kbGVDb21iaW5pbmdLZXl3b3JkcyhcIm9uZU9mXCIsIFwiIHwgXCIpXG4gICAgY29uc3QgYW55T2ZTdHJpbmcgPSBoYW5kbGVDb21iaW5pbmdLZXl3b3JkcyhcImFueU9mXCIsIFwiIHwgXCIpXG4gICAgY29uc3QgYWxsT2ZTdHJpbmcgPSBoYW5kbGVDb21iaW5pbmdLZXl3b3JkcyhcImFsbE9mXCIsIFwiICYgXCIpXG5cbiAgICBjb25zdCBjb21iaW5lZFN0cmluZ3MgPSBbdHlwZVN0cmluZywgb25lT2ZTdHJpbmcsIGFueU9mU3RyaW5nLCBhbGxPZlN0cmluZ11cbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgIC5qb2luKFwiIHwgXCIpXG5cbiAgICBwcm9jZXNzZWRTY2hlbWFzLmRlbGV0ZShzY2hlbWEpXG5cbiAgICByZXR1cm4gY29tYmluZWRTdHJpbmdzIHx8IFwiYW55XCJcbiAgfVxuXG4gIHJldHVybiBnZXRUeXBlXG59XG5cbmV4cG9ydCBjb25zdCBpc0Jvb2xlYW5KU09OU2NoZW1hID0gKHNjaGVtYSkgPT4gdHlwZW9mIHNjaGVtYSA9PT0gXCJib29sZWFuXCJcblxuZXhwb3J0IGNvbnN0IGhhc0tleXdvcmQgPSAoc2NoZW1hLCBrZXl3b3JkKSA9PlxuICBzY2hlbWEgIT09IG51bGwgJiZcbiAgdHlwZW9mIHNjaGVtYSA9PT0gXCJvYmplY3RcIiAmJlxuICBPYmplY3QuaGFzT3duKHNjaGVtYSwga2V5d29yZClcblxuZXhwb3J0IGNvbnN0IG1ha2VJc0V4cGFuZGFibGUgPSAoZm5BY2Nlc3NvcikgPT4ge1xuICBjb25zdCBpc0V4cGFuZGFibGUgPSAoc2NoZW1hKSA9PiB7XG4gICAgY29uc3QgZm4gPSBmbkFjY2Vzc29yKClcblxuICAgIHJldHVybiAoXG4gICAgICBzY2hlbWE/LiRzY2hlbWEgfHxcbiAgICAgIHNjaGVtYT8uJHZvY2FidWxhcnkgfHxcbiAgICAgIHNjaGVtYT8uJGlkIHx8XG4gICAgICBzY2hlbWE/LiRhbmNob3IgfHxcbiAgICAgIHNjaGVtYT8uJGR5bmFtaWNBbmNob3IgfHxcbiAgICAgIHNjaGVtYT8uJHJlZiB8fFxuICAgICAgc2NoZW1hPy4kZHluYW1pY1JlZiB8fFxuICAgICAgc2NoZW1hPy4kZGVmcyB8fFxuICAgICAgc2NoZW1hPy4kY29tbWVudCB8fFxuICAgICAgc2NoZW1hPy5hbGxPZiB8fFxuICAgICAgc2NoZW1hPy5hbnlPZiB8fFxuICAgICAgc2NoZW1hPy5vbmVPZiB8fFxuICAgICAgZm4uaGFzS2V5d29yZChzY2hlbWEsIFwibm90XCIpIHx8XG4gICAgICBmbi5oYXNLZXl3b3JkKHNjaGVtYSwgXCJpZlwiKSB8fFxuICAgICAgZm4uaGFzS2V5d29yZChzY2hlbWEsIFwidGhlblwiKSB8fFxuICAgICAgZm4uaGFzS2V5d29yZChzY2hlbWEsIFwiZWxzZVwiKSB8fFxuICAgICAgc2NoZW1hPy5kZXBlbmRlbnRTY2hlbWFzIHx8XG4gICAgICBzY2hlbWE/LnByZWZpeEl0ZW1zIHx8XG4gICAgICBmbi5oYXNLZXl3b3JkKHNjaGVtYSwgXCJpdGVtc1wiKSB8fFxuICAgICAgZm4uaGFzS2V5d29yZChzY2hlbWEsIFwiY29udGFpbnNcIikgfHxcbiAgICAgIHNjaGVtYT8ucHJvcGVydGllcyB8fFxuICAgICAgc2NoZW1hPy5wYXR0ZXJuUHJvcGVydGllcyB8fFxuICAgICAgZm4uaGFzS2V5d29yZChzY2hlbWEsIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIikgfHxcbiAgICAgIGZuLmhhc0tleXdvcmQoc2NoZW1hLCBcInByb3BlcnR5TmFtZXNcIikgfHxcbiAgICAgIGZuLmhhc0tleXdvcmQoc2NoZW1hLCBcInVuZXZhbHVhdGVkSXRlbXNcIikgfHxcbiAgICAgIGZuLmhhc0tleXdvcmQoc2NoZW1hLCBcInVuZXZhbHVhdGVkUHJvcGVydGllc1wiKSB8fFxuICAgICAgc2NoZW1hPy5kZXNjcmlwdGlvbiB8fFxuICAgICAgc2NoZW1hPy5lbnVtIHx8XG4gICAgICBmbi5oYXNLZXl3b3JkKHNjaGVtYSwgXCJjb25zdFwiKSB8fFxuICAgICAgZm4uaGFzS2V5d29yZChzY2hlbWEsIFwiY29udGVudFNjaGVtYVwiKSB8fFxuICAgICAgZm4uaGFzS2V5d29yZChzY2hlbWEsIFwiZGVmYXVsdFwiKSB8fFxuICAgICAgc2NoZW1hPy5leGFtcGxlcyB8fFxuICAgICAgZm4uZ2V0RXh0ZW5zaW9uS2V5d29yZHMoc2NoZW1hKS5sZW5ndGggPiAwXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIGlzRXhwYW5kYWJsZVxufVxuXG5leHBvcnQgY29uc3Qgc3RyaW5naWZ5ID0gKHZhbHVlKSA9PiB7XG4gIGlmIChcbiAgICB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgIFtcIm51bWJlclwiLCBcImJpZ2ludFwiLCBcImJvb2xlYW5cIl0uaW5jbHVkZXModHlwZW9mIHZhbHVlKVxuICApIHtcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKVxuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIGBbJHt2YWx1ZS5tYXAoc3RyaW5naWZ5KS5qb2luKFwiLCBcIil9XWBcbiAgfVxuXG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSlcbn1cblxuY29uc3Qgc3RyaW5naWZ5Q29uc3RyYWludE11bHRpcGxlT2YgPSAoc2NoZW1hKSA9PiB7XG4gIGlmICh0eXBlb2Ygc2NoZW1hPy5tdWx0aXBsZU9mICE9PSBcIm51bWJlclwiKSByZXR1cm4gbnVsbFxuICBpZiAoc2NoZW1hLm11bHRpcGxlT2YgPD0gMCkgcmV0dXJuIG51bGxcbiAgaWYgKHNjaGVtYS5tdWx0aXBsZU9mID09PSAxKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IHsgbXVsdGlwbGVPZiB9ID0gc2NoZW1hXG5cbiAgaWYgKE51bWJlci5pc0ludGVnZXIobXVsdGlwbGVPZikpIHtcbiAgICByZXR1cm4gYG11bHRpcGxlIG9mICR7bXVsdGlwbGVPZn1gXG4gIH1cblxuICBjb25zdCBkZWNpbWFsUGxhY2VzID0gbXVsdGlwbGVPZi50b1N0cmluZygpLnNwbGl0KFwiLlwiKVsxXS5sZW5ndGhcbiAgY29uc3QgZmFjdG9yID0gMTAgKiogZGVjaW1hbFBsYWNlc1xuICBjb25zdCBudW1lcmF0b3IgPSBtdWx0aXBsZU9mICogZmFjdG9yXG4gIGNvbnN0IGRlbm9taW5hdG9yID0gZmFjdG9yXG4gIHJldHVybiBgbXVsdGlwbGUgb2YgJHtudW1lcmF0b3J9LyR7ZGVub21pbmF0b3J9YFxufVxuXG5jb25zdCBzdHJpbmdpZnlDb25zdHJhaW50TnVtYmVyUmFuZ2UgPSAoc2NoZW1hKSA9PiB7XG4gIGNvbnN0IG1pbmltdW0gPSBzY2hlbWE/Lm1pbmltdW1cbiAgY29uc3QgbWF4aW11bSA9IHNjaGVtYT8ubWF4aW11bVxuICBjb25zdCBleGNsdXNpdmVNaW5pbXVtID0gc2NoZW1hPy5leGNsdXNpdmVNaW5pbXVtXG4gIGNvbnN0IGV4Y2x1c2l2ZU1heGltdW0gPSBzY2hlbWE/LmV4Y2x1c2l2ZU1heGltdW1cbiAgY29uc3QgaGFzTWluaW11bSA9IHR5cGVvZiBtaW5pbXVtID09PSBcIm51bWJlclwiXG4gIGNvbnN0IGhhc01heGltdW0gPSB0eXBlb2YgbWF4aW11bSA9PT0gXCJudW1iZXJcIlxuICBjb25zdCBoYXNFeGNsdXNpdmVNaW5pbXVtID0gdHlwZW9mIGV4Y2x1c2l2ZU1pbmltdW0gPT09IFwibnVtYmVyXCJcbiAgY29uc3QgaGFzRXhjbHVzaXZlTWF4aW11bSA9IHR5cGVvZiBleGNsdXNpdmVNYXhpbXVtID09PSBcIm51bWJlclwiXG4gIGNvbnN0IGlzTWluRXhjbHVzaXZlID0gaGFzRXhjbHVzaXZlTWluaW11bSAmJiAoIWhhc01pbmltdW0gfHwgbWluaW11bSA8IGV4Y2x1c2l2ZU1pbmltdW0pIC8vIHByZXR0aWVyLWlnbm9yZVxuICBjb25zdCBpc01heEV4Y2x1c2l2ZSA9IGhhc0V4Y2x1c2l2ZU1heGltdW0gJiYgKCFoYXNNYXhpbXVtIHx8IG1heGltdW0gPiBleGNsdXNpdmVNYXhpbXVtKSAvLyBwcmV0dGllci1pZ25vcmVcblxuICBpZiAoXG4gICAgKGhhc01pbmltdW0gfHwgaGFzRXhjbHVzaXZlTWluaW11bSkgJiZcbiAgICAoaGFzTWF4aW11bSB8fCBoYXNFeGNsdXNpdmVNYXhpbXVtKVxuICApIHtcbiAgICBjb25zdCBtaW5TeW1ib2wgPSBpc01pbkV4Y2x1c2l2ZSA/IFwiKFwiIDogXCJbXCJcbiAgICBjb25zdCBtYXhTeW1ib2wgPSBpc01heEV4Y2x1c2l2ZSA/IFwiKVwiIDogXCJdXCJcbiAgICBjb25zdCBtaW5WYWx1ZSA9IGlzTWluRXhjbHVzaXZlID8gZXhjbHVzaXZlTWluaW11bSA6IG1pbmltdW1cbiAgICBjb25zdCBtYXhWYWx1ZSA9IGlzTWF4RXhjbHVzaXZlID8gZXhjbHVzaXZlTWF4aW11bSA6IG1heGltdW1cbiAgICByZXR1cm4gYCR7bWluU3ltYm9sfSR7bWluVmFsdWV9LCAke21heFZhbHVlfSR7bWF4U3ltYm9sfWBcbiAgfVxuICBpZiAoaGFzTWluaW11bSB8fCBoYXNFeGNsdXNpdmVNaW5pbXVtKSB7XG4gICAgY29uc3QgbWluU3ltYm9sID0gaXNNaW5FeGNsdXNpdmUgPyBcIj5cIiA6IFwi4omlXCJcbiAgICBjb25zdCBtaW5WYWx1ZSA9IGlzTWluRXhjbHVzaXZlID8gZXhjbHVzaXZlTWluaW11bSA6IG1pbmltdW1cbiAgICByZXR1cm4gYCR7bWluU3ltYm9sfSAke21pblZhbHVlfWBcbiAgfVxuICBpZiAoaGFzTWF4aW11bSB8fCBoYXNFeGNsdXNpdmVNYXhpbXVtKSB7XG4gICAgY29uc3QgbWF4U3ltYm9sID0gaXNNYXhFeGNsdXNpdmUgPyBcIjxcIiA6IFwi4omkXCJcbiAgICBjb25zdCBtYXhWYWx1ZSA9IGlzTWF4RXhjbHVzaXZlID8gZXhjbHVzaXZlTWF4aW11bSA6IG1heGltdW1cbiAgICByZXR1cm4gYCR7bWF4U3ltYm9sfSAke21heFZhbHVlfWBcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG5cbmNvbnN0IHN0cmluZ2lmeUNvbnN0cmFpbnRSYW5nZSA9IChsYWJlbCwgbWluLCBtYXgpID0+IHtcbiAgY29uc3QgaGFzTWluID0gdHlwZW9mIG1pbiA9PT0gXCJudW1iZXJcIlxuICBjb25zdCBoYXNNYXggPSB0eXBlb2YgbWF4ID09PSBcIm51bWJlclwiXG5cbiAgaWYgKGhhc01pbiAmJiBoYXNNYXgpIHtcbiAgICBpZiAobWluID09PSBtYXgpIHtcbiAgICAgIHJldHVybiBgJHttaW59ICR7bGFiZWx9YFxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYFske21pbn0sICR7bWF4fV0gJHtsYWJlbH1gXG4gICAgfVxuICB9XG4gIGlmIChoYXNNaW4pIHtcbiAgICByZXR1cm4gYOKJpSAke21pbn0gJHtsYWJlbH1gXG4gIH1cbiAgaWYgKGhhc01heCkge1xuICAgIHJldHVybiBg4omkICR7bWF4fSAke2xhYmVsfWBcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBjb25zdCBzdHJpbmdpZnlDb25zdHJhaW50cyA9IChzY2hlbWEpID0+IHtcbiAgY29uc3QgY29uc3RyYWludHMgPSBbXVxuXG4gIC8vIHZhbGlkYXRpb24gS2V5d29yZHMgZm9yIE51bWVyaWMgSW5zdGFuY2VzIChudW1iZXIgYW5kIGludGVnZXIpXG4gIGNvbnN0IG11bHRpcGxlT2YgPSBzdHJpbmdpZnlDb25zdHJhaW50TXVsdGlwbGVPZihzY2hlbWEpXG4gIGlmIChtdWx0aXBsZU9mICE9PSBudWxsKSB7XG4gICAgY29uc3RyYWludHMucHVzaCh7IHNjb3BlOiBcIm51bWJlclwiLCB2YWx1ZTogbXVsdGlwbGVPZiB9KVxuICB9XG4gIGNvbnN0IG51bWJlclJhbmdlID0gc3RyaW5naWZ5Q29uc3RyYWludE51bWJlclJhbmdlKHNjaGVtYSlcbiAgaWYgKG51bWJlclJhbmdlICE9PSBudWxsKSB7XG4gICAgY29uc3RyYWludHMucHVzaCh7IHNjb3BlOiBcIm51bWJlclwiLCB2YWx1ZTogbnVtYmVyUmFuZ2UgfSlcbiAgfVxuXG4gIC8vIHZvY2FidWxhcmllcyBmb3IgU2VtYW50aWMgQ29udGVudCBXaXRoIFwiZm9ybWF0XCJcbiAgaWYgKHNjaGVtYT8uZm9ybWF0KSB7XG4gICAgY29uc3RyYWludHMucHVzaCh7IHNjb3BlOiBcInN0cmluZ1wiLCB2YWx1ZTogc2NoZW1hLmZvcm1hdCB9KVxuICB9XG5cbiAgLy8gdmFsaWRhdGlvbiBLZXl3b3JkcyBmb3IgU3RyaW5nc1xuICBjb25zdCBzdHJpbmdSYW5nZSA9IHN0cmluZ2lmeUNvbnN0cmFpbnRSYW5nZShcbiAgICBcImNoYXJhY3RlcnNcIixcbiAgICBzY2hlbWE/Lm1pbkxlbmd0aCxcbiAgICBzY2hlbWE/Lm1heExlbmd0aFxuICApXG4gIGlmIChzdHJpbmdSYW5nZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0cmFpbnRzLnB1c2goeyBzY29wZTogXCJzdHJpbmdcIiwgdmFsdWU6IHN0cmluZ1JhbmdlIH0pXG4gIH1cbiAgaWYgKHNjaGVtYT8ucGF0dGVybikge1xuICAgIGNvbnN0cmFpbnRzLnB1c2goeyBzY29wZTogXCJzdHJpbmdcIiwgdmFsdWU6IGBtYXRjaGVzICR7c2NoZW1hPy5wYXR0ZXJufWAgfSlcbiAgfVxuXG4gIC8vIHZvY2FidWxhcnkgZm9yIHRoZSBDb250ZW50cyBvZiBTdHJpbmctRW5jb2RlZCBEYXRhXG4gIGlmIChzY2hlbWE/LmNvbnRlbnRNZWRpYVR5cGUpIHtcbiAgICBjb25zdHJhaW50cy5wdXNoKHtcbiAgICAgIHNjb3BlOiBcInN0cmluZ1wiLFxuICAgICAgdmFsdWU6IGBtZWRpYSB0eXBlOiAke3NjaGVtYS5jb250ZW50TWVkaWFUeXBlfWAsXG4gICAgfSlcbiAgfVxuICBpZiAoc2NoZW1hPy5jb250ZW50RW5jb2RpbmcpIHtcbiAgICBjb25zdHJhaW50cy5wdXNoKHtcbiAgICAgIHNjb3BlOiBcInN0cmluZ1wiLFxuICAgICAgdmFsdWU6IGBlbmNvZGluZzogJHtzY2hlbWEuY29udGVudEVuY29kaW5nfWAsXG4gICAgfSlcbiAgfVxuXG4gIC8vIHZhbGlkYXRpb24gS2V5d29yZHMgZm9yIEFycmF5c1xuICBjb25zdCBhcnJheVJhbmdlID0gc3RyaW5naWZ5Q29uc3RyYWludFJhbmdlKFxuICAgIHNjaGVtYT8udW5pcXVlSXRlbXMgPyBcInVuaXF1ZSBpdGVtc1wiIDogXCJpdGVtc1wiLFxuICAgIHNjaGVtYT8ubWluSXRlbXMsXG4gICAgc2NoZW1hPy5tYXhJdGVtc1xuICApXG4gIGlmIChhcnJheVJhbmdlICE9PSBudWxsKSB7XG4gICAgY29uc3RyYWludHMucHVzaCh7IHNjb3BlOiBcImFycmF5XCIsIHZhbHVlOiBhcnJheVJhbmdlIH0pXG4gIH1cbiAgaWYgKHNjaGVtYT8udW5pcXVlSXRlbXMgJiYgIWFycmF5UmFuZ2UpIHtcbiAgICBjb25zdHJhaW50cy5wdXNoKHsgc2NvcGU6IFwiYXJyYXlcIiwgdmFsdWU6IFwidW5pcXVlXCIgfSlcbiAgfVxuICBjb25zdCBjb250YWluc1JhbmdlID0gc3RyaW5naWZ5Q29uc3RyYWludFJhbmdlKFxuICAgIFwiY29udGFpbmVkIGl0ZW1zXCIsXG4gICAgc2NoZW1hPy5taW5Db250YWlucyxcbiAgICBzY2hlbWE/Lm1heENvbnRhaW5zXG4gIClcbiAgaWYgKGNvbnRhaW5zUmFuZ2UgIT09IG51bGwpIHtcbiAgICBjb25zdHJhaW50cy5wdXNoKHsgc2NvcGU6IFwiYXJyYXlcIiwgdmFsdWU6IGNvbnRhaW5zUmFuZ2UgfSlcbiAgfVxuXG4gIC8vIHZhbGlkYXRpb24gS2V5d29yZHMgZm9yIE9iamVjdHNcbiAgY29uc3Qgb2JqZWN0UmFuZ2UgPSBzdHJpbmdpZnlDb25zdHJhaW50UmFuZ2UoXG4gICAgXCJwcm9wZXJ0aWVzXCIsXG4gICAgc2NoZW1hPy5taW5Qcm9wZXJ0aWVzLFxuICAgIHNjaGVtYT8ubWF4UHJvcGVydGllc1xuICApXG4gIGlmIChvYmplY3RSYW5nZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0cmFpbnRzLnB1c2goeyBzY29wZTogXCJvYmplY3RcIiwgdmFsdWU6IG9iamVjdFJhbmdlIH0pXG4gIH1cblxuICByZXR1cm4gY29uc3RyYWludHNcbn1cblxuZXhwb3J0IGNvbnN0IGdldERlcGVuZGVudFJlcXVpcmVkID0gKHByb3BlcnR5TmFtZSwgc2NoZW1hKSA9PiB7XG4gIGlmICghc2NoZW1hPy5kZXBlbmRlbnRSZXF1aXJlZCkgcmV0dXJuIFtdXG5cbiAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgT2JqZWN0LmVudHJpZXMoc2NoZW1hLmRlcGVuZGVudFJlcXVpcmVkKS5yZWR1Y2UoKGFjYywgW3Byb3AsIGxpc3RdKSA9PiB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkobGlzdCkpIHJldHVybiBhY2NcbiAgICAgIGlmICghbGlzdC5pbmNsdWRlcyhwcm9wZXJ0eU5hbWUpKSByZXR1cm4gYWNjXG5cbiAgICAgIGFjYy5hZGQocHJvcClcblxuICAgICAgcmV0dXJuIGFjY1xuICAgIH0sIG5ldyBTZXQoKSlcbiAgKVxufVxuXG5leHBvcnQgY29uc3QgaXNQbGFpbk9iamVjdCA9ICh2YWx1ZSkgPT5cbiAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmXG4gIHZhbHVlICE9PSBudWxsICYmXG4gICFBcnJheS5pc0FycmF5KHZhbHVlKSAmJlxuICAoT2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbHVlKSA9PT0gbnVsbCB8fFxuICAgIE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSkgPT09IE9iamVjdC5wcm90b3R5cGUpXG5cbmV4cG9ydCBjb25zdCBpc0VtcHR5T2JqZWN0ID0gKHZhbHVlKSA9PlxuICBpc1BsYWluT2JqZWN0KHZhbHVlKSAmJiBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwXG5cbmV4cG9ydCBjb25zdCBpc0VtcHR5QXJyYXkgPSAodmFsdWUpID0+XG4gIEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMFxuXG5leHBvcnQgY29uc3QgZGlmZmVyZW5jZSA9ICh2YWx1ZSwgY29tcGFyaXNvblZhbHVlKSA9PiB7XG4gIGNvbnN0IGNvbXBhcmlzb25TZXQgPSBuZXcgU2V0KGNvbXBhcmlzb25WYWx1ZSlcbiAgcmV0dXJuIHZhbHVlLmZpbHRlcigoaXRlbSkgPT4gIWNvbXBhcmlzb25TZXQuaGFzKGl0ZW0pKVxufVxuXG5leHBvcnQgY29uc3QgZ2V0U2NoZW1hS2V5d29yZHMgPSAoKSA9PiB7XG4gIHJldHVybiBbXG4gICAgLy8gY29yZSB2b2NhYnVsYXJ5XG4gICAgXCIkc2NoZW1hXCIsXG4gICAgXCIkdm9jYWJ1bGFyeVwiLFxuICAgIFwiJGlkXCIsXG4gICAgXCIkYW5jaG9yXCIsXG4gICAgXCIkZHluYW1pY0FuY2hvclwiLFxuICAgIFwiJGR5bmFtaWNSZWZcIixcbiAgICBcIiRyZWZcIixcbiAgICBcIiRkZWZzXCIsXG4gICAgXCIkY29tbWVudFwiLFxuICAgIC8vIGFwcGxpY2F0b3Igdm9jYWJ1bGFyeVxuICAgIFwiYWxsT2ZcIixcbiAgICBcImFueU9mXCIsXG4gICAgXCJvbmVPZlwiLFxuICAgIFwibm90XCIsXG4gICAgXCJpZlwiLFxuICAgIFwidGhlblwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZGVwZW5kZW50U2NoZW1hc1wiLFxuICAgIFwicHJlZml4SXRlbXNcIixcbiAgICBcIml0ZW1zXCIsXG4gICAgXCJjb250YWluc1wiLFxuICAgIFwicHJvcGVydGllc1wiLFxuICAgIFwicGF0dGVyblByb3BlcnRpZXNcIixcbiAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCIsXG4gICAgXCJwcm9wZXJ0eU5hbWVzXCIsXG4gICAgLy8gdW5ldmFsdWF0ZWQgTG9jYXRpb25zIHZvY2FidWxhcnlcbiAgICBcInVuZXZhbHVhdGVkSXRlbXNcIixcbiAgICBcInVuZXZhbHVhdGVkUHJvcGVydGllc1wiLFxuICAgIC8vIHZhbGlkYXRpb24gdm9jYWJ1bGFyeVxuICAgIC8vIHZhbGlkYXRpb24gS2V5d29yZHMgZm9yIEFueSBJbnN0YW5jZSBUeXBlXG4gICAgXCJ0eXBlXCIsXG4gICAgXCJlbnVtXCIsXG4gICAgXCJjb25zdFwiLFxuICAgIC8vIHZhbGlkYXRpb24gS2V5d29yZHMgZm9yIE51bWVyaWMgSW5zdGFuY2VzIChudW1iZXIgYW5kIGludGVnZXIpXG4gICAgXCJtdWx0aXBsZU9mXCIsXG4gICAgXCJtYXhpbXVtXCIsXG4gICAgXCJleGNsdXNpdmVNYXhpbXVtXCIsXG4gICAgXCJtaW5pbXVtXCIsXG4gICAgXCJleGNsdXNpdmVNaW5pbXVtXCIsXG4gICAgLy8gdmFsaWRhdGlvbiBLZXl3b3JkcyBmb3IgU3RyaW5nc1xuICAgIFwibWF4TGVuZ3RoXCIsXG4gICAgXCJtaW5MZW5ndGhcIixcbiAgICBcInBhdHRlcm5cIixcbiAgICAvLyB2YWxpZGF0aW9uIEtleXdvcmRzIGZvciBBcnJheXNcbiAgICBcIm1heEl0ZW1zXCIsXG4gICAgXCJtaW5JdGVtc1wiLFxuICAgIFwidW5pcXVlSXRlbXNcIixcbiAgICBcIm1heENvbnRhaW5zXCIsXG4gICAgXCJtaW5Db250YWluc1wiLFxuICAgIC8vIHZhbGlkYXRpb24gS2V5d29yZHMgZm9yIE9iamVjdHNcbiAgICBcIm1heFByb3BlcnRpZXNcIixcbiAgICBcIm1pblByb3BlcnRpZXNcIixcbiAgICBcInJlcXVpcmVkXCIsXG4gICAgXCJkZXBlbmRlbnRSZXF1aXJlZFwiLFxuICAgIC8vIGJhc2ljIE1ldGEtRGF0YSBBbm5vdGF0aW9ucyB2b2NhYnVsYXJ5XG4gICAgXCJ0aXRsZVwiLFxuICAgIFwiZGVzY3JpcHRpb25cIixcbiAgICBcImRlZmF1bHRcIixcbiAgICBcImRlcHJlY2F0ZWRcIixcbiAgICBcInJlYWRPbmx5XCIsXG4gICAgXCJ3cml0ZU9ubHlcIixcbiAgICBcImV4YW1wbGVzXCIsXG4gICAgLy8gc2VtYW50aWMgQ29udGVudCBXaXRoIFwiZm9ybWF0XCIgdm9jYWJ1bGFyeVxuICAgIFwiZm9ybWF0XCIsXG4gICAgLy8gY29udGVudHMgb2YgU3RyaW5nLUVuY29kZWQgRGF0YSB2b2NhYnVsYXJ5XG4gICAgXCJjb250ZW50RW5jb2RpbmdcIixcbiAgICBcImNvbnRlbnRNZWRpYVR5cGVcIixcbiAgICBcImNvbnRlbnRTY2hlbWFcIixcbiAgXVxufVxuXG5leHBvcnQgY29uc3QgbWFrZUdldEV4dGVuc2lvbktleXdvcmRzID0gKGZuQWNjZXNzb3IpID0+IHtcbiAgY29uc3QgZ2V0RXh0ZW5zaW9uS2V5d29yZHMgPSAoc2NoZW1hKSA9PiB7XG4gICAgY29uc3QgZm4gPSBmbkFjY2Vzc29yKClcbiAgICBjb25zdCBrZXl3b3JkcyA9IGZuLmdldFNjaGVtYUtleXdvcmRzKClcblxuICAgIHJldHVybiBpc1BsYWluT2JqZWN0KHNjaGVtYSlcbiAgICAgID8gZGlmZmVyZW5jZShPYmplY3Qua2V5cyhzY2hlbWEpLCBrZXl3b3JkcylcbiAgICAgIDogW11cbiAgfVxuXG4gIHJldHVybiBnZXRFeHRlbnNpb25LZXl3b3Jkc1xufVxuXG5leHBvcnQgY29uc3QgaGFzU2NoZW1hVHlwZSA9IChzY2hlbWEsIHR5cGUpID0+IHtcbiAgY29uc3QgaXNTY2hlbWFJbW11dGFibGUgPSBNYXAuaXNNYXAoc2NoZW1hKVxuXG4gIGlmICghaXNTY2hlbWFJbW11dGFibGUgJiYgIWlzUGxhaW5PYmplY3Qoc2NoZW1hKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY29uc3QgaGFzVHlwZSA9IChzY2hlbWFUeXBlKSA9PlxuICAgIHR5cGUgPT09IHNjaGVtYVR5cGUgfHwgKEFycmF5LmlzQXJyYXkodHlwZSkgJiYgdHlwZS5pbmNsdWRlcyhzY2hlbWFUeXBlKSlcblxuICBjb25zdCBzY2hlbWFUeXBlID0gaXNTY2hlbWFJbW11dGFibGUgPyBzY2hlbWEuZ2V0KFwidHlwZVwiKSA6IHNjaGVtYS50eXBlXG5cbiAgaWYgKExpc3QuaXNMaXN0KHNjaGVtYVR5cGUpIHx8IEFycmF5LmlzQXJyYXkoc2NoZW1hVHlwZSkpIHtcbiAgICByZXR1cm4gc2NoZW1hVHlwZS5zb21lKCh0KSA9PiBoYXNUeXBlKHQpKVxuICB9XG5cbiAgcmV0dXJuIGhhc1R5cGUoc2NoZW1hVHlwZSlcbn1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmltcG9ydCB7IGlzUGxhaW5PYmplY3QgfSBmcm9tIFwiLi4vLi4vLi4vZm5cIlxuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IHJlcHJlc2VudHMgdmFyaW91cyBjb25zdHJhaW50IGtleXdvcmRzXG4gKiBmcm9tIEpTT04gU2NoZW1hIDIwMjAtMTIgdmFsaWRhdGlvbiB2b2NhYnVsYXJ5LlxuICovXG5jb25zdCBDb25zdHJhaW50ID0gKHsgY29uc3RyYWludCB9KSA9PiB7XG4gIGlmIChcbiAgICAhaXNQbGFpbk9iamVjdChjb25zdHJhaW50KSB8fFxuICAgIHR5cGVvZiBjb25zdHJhaW50LnNjb3BlICE9PSBcInN0cmluZ1wiIHx8XG4gICAgdHlwZW9mIGNvbnN0cmFpbnQudmFsdWUgIT09IFwic3RyaW5nXCJcbiAgKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPHNwYW5cbiAgICAgIGNsYXNzTmFtZT17YGpzb24tc2NoZW1hLTIwMjAtMTJfX2NvbnN0cmFpbnQganNvbi1zY2hlbWEtMjAyMC0xMl9fY29uc3RyYWludC0tJHtjb25zdHJhaW50LnNjb3BlfWB9XG4gICAgPlxuICAgICAge2NvbnN0cmFpbnQudmFsdWV9XG4gICAgPC9zcGFuPlxuICApXG59XG5cbkNvbnN0cmFpbnQucHJvcFR5cGVzID0ge1xuICBjb25zdHJhaW50OiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIHNjb3BlOiBQcm9wVHlwZXMub25lT2YoW1wibnVtYmVyXCIsIFwic3RyaW5nXCIsIFwiYXJyYXlcIiwgXCJvYmplY3RcIl0pLmlzUmVxdWlyZWQsXG4gICAgdmFsdWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfSkuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVhY3QubWVtbyhDb25zdHJhaW50KVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuaW1wb3J0ICogYXMgcHJvcFR5cGVzIGZyb20gXCIuLi8uLi8uLi9wcm9wLXR5cGVzXCJcblxuY29uc3QgRGVwZW5kZW50UmVxdWlyZWQgPSAoeyBkZXBlbmRlbnRSZXF1aXJlZCB9KSA9PiB7XG4gIGlmICghQXJyYXkuaXNBcnJheShkZXBlbmRlbnRSZXF1aXJlZCkgfHwgZGVwZW5kZW50UmVxdWlyZWQubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kZXBlbmRlbnRSZXF1aXJlZFwiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeVwiPlxuICAgICAgICBSZXF1aXJlZCB3aGVuIGRlZmluZWRcbiAgICAgIDwvc3Bhbj5cbiAgICAgIDx1bD5cbiAgICAgICAge2RlcGVuZGVudFJlcXVpcmVkLm1hcCgocHJvcGVydHlOYW1lKSA9PiAoXG4gICAgICAgICAgPGxpIGtleT17cHJvcGVydHlOYW1lfT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0td2FybmluZ1wiPlxuICAgICAgICAgICAgICB7cHJvcGVydHlOYW1lfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICkpfVxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5EZXBlbmRlbnRSZXF1aXJlZC5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogcHJvcFR5cGVzLnNjaGVtYS5pc1JlcXVpcmVkLFxuICBkZXBlbmRlbnRSZXF1aXJlZDogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZykuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgRGVwZW5kZW50UmVxdWlyZWRcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VGbiwgdXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2hvb2tzXCJcblxuY29uc3QgQ29udGVudFNjaGVtYSA9ICh7IHNjaGVtYSB9KSA9PiB7XG4gIGNvbnN0IGZuID0gdXNlRm4oKVxuICBjb25zdCBKU09OU2NoZW1hID0gdXNlQ29tcG9uZW50KFwiSlNPTlNjaGVtYVwiKVxuXG4gIC8qKlxuICAgKiBSZW5kZXJpbmcuXG4gICAqL1xuICBpZiAoIWZuLmhhc0tleXdvcmQoc2NoZW1hLCBcImNvbnRlbnRTY2hlbWFcIikpIHJldHVybiBudWxsXG5cbiAgY29uc3QgbmFtZSA9IChcbiAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5XCI+XG4gICAgICBDb250ZW50IHNjaGVtYVxuICAgIDwvc3Bhbj5cbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1jb250ZW50U2NoZW1hXCI+XG4gICAgICA8SlNPTlNjaGVtYVxuICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICBzY2hlbWE9e3NjaGVtYS5jb250ZW50U2NoZW1hfVxuICAgICAgICBpZGVudGlmaWVyPVwiY29udGVudFNjaGVtYVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApXG59XG5cbkNvbnRlbnRTY2hlbWEucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBDb250ZW50U2NoZW1hXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VGbiB9IGZyb20gXCIuLi8uLi8uLi9ob29rc1wiXG5cbmNvbnN0IFRpdGxlID0gKHsgdGl0bGUgPSBcIlwiLCBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBmbiA9IHVzZUZuKClcbiAgY29uc3QgcmVuZGVyZWRUaXRsZSA9IHRpdGxlIHx8IGZuLmdldFRpdGxlKHNjaGVtYSlcblxuICBpZiAoIXJlbmRlcmVkVGl0bGUpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMl9fdGl0bGVcIj57cmVuZGVyZWRUaXRsZX08L2Rpdj5cbn1cblxuVGl0bGUucHJvcFR5cGVzID0ge1xuICB0aXRsZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLmVsZW1lbnRdKSxcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgVGl0bGVcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vLi4vcHJvcC10eXBlc1wiXG5cbmNvbnN0IERlc2NyaXB0aW9uID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgaWYgKCFzY2hlbWE/LmRlc2NyaXB0aW9uKSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kZXNjcmlwdGlvblwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWNvcmUta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1jb3JlLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnlcIj5cbiAgICAgICAge3NjaGVtYS5kZXNjcmlwdGlvbn1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG5cbkRlc2NyaXB0aW9uLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgRGVzY3JpcHRpb25cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VDb21wb25lbnQsIHVzZUZuIH0gZnJvbSBcIi4uLy4uLy4uL2hvb2tzXCJcblxuY29uc3QgRGVmYXVsdCA9ICh7IHNjaGVtYSB9KSA9PiB7XG4gIGNvbnN0IGZuID0gdXNlRm4oKVxuICBjb25zdCBKU09OVmlld2VyID0gdXNlQ29tcG9uZW50KFwiSlNPTlZpZXdlclwiKVxuXG4gIGlmICghZm4uaGFzS2V5d29yZChzY2hlbWEsIFwiZGVmYXVsdFwiKSkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxKU09OVmlld2VyXG4gICAgICBuYW1lPVwiRGVmYXVsdFwiXG4gICAgICB2YWx1ZT17c2NoZW1hLmRlZmF1bHR9XG4gICAgICBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kZWZhdWx0XCJcbiAgICAvPlxuICApXG59XG5cbkRlZmF1bHQucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBEZWZhdWx0XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcblxuaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSBcIi4uLy4uL3Byb3AtdHlwZXNcIlxuXG5jb25zdCBEZXByZWNhdGVkID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgaWYgKHNjaGVtYT8uZGVwcmVjYXRlZCAhPT0gdHJ1ZSkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXdhcm5pbmdcIj5cbiAgICAgIGRlcHJlY2F0ZWRcbiAgICA8L3NwYW4+XG4gIClcbn1cblxuRGVwcmVjYXRlZC5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IERlcHJlY2F0ZWRcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5cbmNvbnN0IFJlYWRPbmx5ID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgaWYgKHNjaGVtYT8ucmVhZE9ubHkgIT09IHRydWUpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1tdXRlZFwiPlxuICAgICAgcmVhZC1vbmx5XG4gICAgPC9zcGFuPlxuICApXG59XG5cblJlYWRPbmx5LnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVhZE9ubHlcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5cbmNvbnN0IFdyaXRlT25seSA9ICh7IHNjaGVtYSB9KSA9PiB7XG4gIGlmIChzY2hlbWE/LndyaXRlT25seSAhPT0gdHJ1ZSkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLW11dGVkXCI+XG4gICAgICB3cml0ZS1vbmx5XG4gICAgPC9zcGFuPlxuICApXG59XG5cbldyaXRlT25seS5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFdyaXRlT25seVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IHNjaGVtYSB9IGZyb20gXCIuLi8uLi8uLi9wcm9wLXR5cGVzXCJcbmltcG9ydCB7IHVzZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi8uLi9ob29rc1wiXG5cbmNvbnN0IEV4YW1wbGVzID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgY29uc3QgZXhhbXBsZXMgPSBzY2hlbWE/LmV4YW1wbGVzIHx8IFtdXG4gIGNvbnN0IEpTT05WaWV3ZXIgPSB1c2VDb21wb25lbnQoXCJKU09OVmlld2VyXCIpXG5cbiAgaWYgKCFBcnJheS5pc0FycmF5KGV4YW1wbGVzKSB8fCBleGFtcGxlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8SlNPTlZpZXdlclxuICAgICAgbmFtZT1cIkV4YW1wbGVzXCJcbiAgICAgIHZhbHVlPXtzY2hlbWEuZXhhbXBsZXN9XG4gICAgICBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1leGFtcGxlc1wiXG4gICAgLz5cbiAgKVxufVxuXG5FeGFtcGxlcy5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEV4YW1wbGVzXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vLi4vcHJvcC10eXBlc1wiXG5cbmltcG9ydCB7XG4gIHVzZUNvbXBvbmVudCxcbiAgdXNlSXNFeHBhbmRlZCxcbiAgdXNlRm4sXG4gIHVzZVBhdGgsXG4gIHVzZUxldmVsLFxuICB1c2VDb25maWcsXG59IGZyb20gXCIuLi8uLi8uLi9ob29rc1wiXG5pbXBvcnQgeyBKU09OU2NoZW1hTGV2ZWxDb250ZXh0LCBKU09OU2NoZW1hUGF0aENvbnRleHQgfSBmcm9tIFwiLi4vLi4vLi4vY29udGV4dFwiXG5cbmNvbnN0IEV4dGVuc2lvbktleXdvcmRzID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgY29uc3QgZm4gPSB1c2VGbigpXG4gIGNvbnN0IHBhdGhUb2tlbiA9IFwiRXh0ZW5zaW9uS2V5d29yZHNcIlxuICBjb25zdCB7IHBhdGggfSA9IHVzZVBhdGgocGF0aFRva2VuKVxuICBjb25zdCB7IGlzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWQgfSA9IHVzZUlzRXhwYW5kZWQocGF0aFRva2VuKVxuICBjb25zdCBbbGV2ZWwsIG5leHRMZXZlbF0gPSB1c2VMZXZlbCgpXG4gIGNvbnN0IEFjY29yZGlvbiA9IHVzZUNvbXBvbmVudChcIkFjY29yZGlvblwiKVxuICBjb25zdCBFeHBhbmREZWVwQnV0dG9uID0gdXNlQ29tcG9uZW50KFwiRXhwYW5kRGVlcEJ1dHRvblwiKVxuICBjb25zdCBKU09OVmlld2VyID0gdXNlQ29tcG9uZW50KFwiSlNPTlZpZXdlclwiKVxuICBjb25zdCB7IHNob3dFeHRlbnNpb25LZXl3b3JkcyB9ID0gdXNlQ29uZmlnKFwic2hvd0V4dGVuc2lvbktleXdvcmRzXCIpXG4gIGNvbnN0IGV4dGVuc2lvbktleXdvcmRzID0gZm4uZ2V0RXh0ZW5zaW9uS2V5d29yZHMoc2NoZW1hKVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVycy5cbiAgICovXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoaXNFeHBhbmRlZCkge1xuICAgICAgc2V0Q29sbGFwc2VkKClcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RXhwYW5kZWQoKVxuICAgIH1cbiAgfSwgW2lzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWRdKVxuICBjb25zdCBoYW5kbGVFeHBhbnNpb25EZWVwID0gdXNlQ2FsbGJhY2soXG4gICAgKGUsIGV4cGFuZGVkRGVlcE5ldykgPT4ge1xuICAgICAgaWYgKGV4cGFuZGVkRGVlcE5ldykge1xuICAgICAgICBzZXRFeHBhbmRlZCh7IGRlZXA6IHRydWUgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldENvbGxhcHNlZCh7IGRlZXA6IHRydWUgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZXRFeHBhbmRlZCwgc2V0Q29sbGFwc2VkXVxuICApXG5cbiAgLyoqXG4gICAqIFJlbmRlcmluZy5cbiAgICovXG4gIGlmICghc2hvd0V4dGVuc2lvbktleXdvcmRzIHx8IGV4dGVuc2lvbktleXdvcmRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxKU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3BhdGh9PlxuICAgICAgPEpTT05TY2hlbWFMZXZlbENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e25leHRMZXZlbH0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1leHRlbnNpb24ta2V5d29yZHNcIlxuICAgICAgICAgIGRhdGEtanNvbi1zY2hlbWEtbGV2ZWw9e2xldmVsfVxuICAgICAgICA+XG4gICAgICAgICAgPEFjY29yZGlvbiBleHBhbmRlZD17aXNFeHBhbmRlZH0gb25DaGFuZ2U9e2hhbmRsZUV4cGFuc2lvbn0+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1leHRlbnNpb25cIj5cbiAgICAgICAgICAgICAgRXh0ZW5zaW9uIEtleXdvcmRzXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9BY2NvcmRpb24+XG4gICAgICAgICAgPEV4cGFuZERlZXBCdXR0b25cbiAgICAgICAgICAgIGV4cGFuZGVkPXtpc0V4cGFuZGVkfVxuICAgICAgICAgICAgb25DbGljaz17aGFuZGxlRXhwYW5zaW9uRGVlcH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDx1bFxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlblwiLCB7XG4gICAgICAgICAgICAgIFwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkXCI6ICFpc0V4cGFuZGVkLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lzRXhwYW5kZWQgJiYgKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtleHRlbnNpb25LZXl3b3Jkcy5tYXAoKGtleXdvcmQpID0+IChcbiAgICAgICAgICAgICAgICAgIDxKU09OVmlld2VyXG4gICAgICAgICAgICAgICAgICAgIGtleT17a2V5d29yZH1cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17a2V5d29yZH1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3NjaGVtYVtrZXl3b3JkXX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlci1leHRlbnNpb24ta2V5d29yZFwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0pTT05TY2hlbWFMZXZlbENvbnRleHQuUHJvdmlkZXI+XG4gICAgPC9KU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuRXh0ZW5zaW9uS2V5d29yZHMucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBFeHRlbnNpb25LZXl3b3Jkc1xuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuXG5pbXBvcnQge1xuICB1c2VDb21wb25lbnQsXG4gIHVzZUlzRXhwYW5kZWQsXG4gIHVzZUZuLFxuICB1c2VQYXRoLFxuICB1c2VMZXZlbCxcbn0gZnJvbSBcIi4uLy4uL2hvb2tzXCJcbmltcG9ydCB7IEpTT05TY2hlbWFMZXZlbENvbnRleHQsIEpTT05TY2hlbWFQYXRoQ29udGV4dCB9IGZyb20gXCIuLi8uLi9jb250ZXh0XCJcbmltcG9ydCB7IGlzRW1wdHlPYmplY3QsIGlzRW1wdHlBcnJheSB9IGZyb20gXCIuLi8uLi9mblwiXG5cbmNvbnN0IEpTT05WaWV3ZXIgPSAoeyBuYW1lLCB2YWx1ZSwgY2xhc3NOYW1lIH0pID0+IHtcbiAgY29uc3QgZm4gPSB1c2VGbigpXG4gIGNvbnN0IHsgcGF0aCB9ID0gdXNlUGF0aChuYW1lKVxuICBjb25zdCB7IGlzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWQgfSA9IHVzZUlzRXhwYW5kZWQobmFtZSlcbiAgY29uc3QgW2xldmVsLCBuZXh0TGV2ZWxdID0gdXNlTGV2ZWwoKVxuICBjb25zdCBBY2NvcmRpb24gPSB1c2VDb21wb25lbnQoXCJBY2NvcmRpb25cIilcbiAgY29uc3QgRXhwYW5kRGVlcEJ1dHRvbiA9IHVzZUNvbXBvbmVudChcIkV4cGFuZERlZXBCdXR0b25cIilcbiAgY29uc3QgaXNQcmltaXRpdmUgPVxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiB8fFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiB8fFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJiaWdpbnRcIiB8fFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCIgfHxcbiAgICB0eXBlb2YgdmFsdWUgPT09IFwic3ltYm9sXCIgfHxcbiAgICB2YWx1ZSA9PSBudWxsXG4gIGNvbnN0IGlzRW1wdHkgPSBpc0VtcHR5T2JqZWN0KHZhbHVlKSB8fCBpc0VtcHR5QXJyYXkodmFsdWUpXG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXJzLlxuICAgKi9cbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChpc0V4cGFuZGVkKSB7XG4gICAgICBzZXRDb2xsYXBzZWQoKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRFeHBhbmRlZCgpXG4gICAgfVxuICB9LCBbaXNFeHBhbmRlZCwgc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZF0pXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvbkRlZXAgPSB1c2VDYWxsYmFjayhcbiAgICAoZSwgZXhwYW5kZWREZWVwTmV3KSA9PiB7XG4gICAgICBpZiAoZXhwYW5kZWREZWVwTmV3KSB7XG4gICAgICAgIHNldEV4cGFuZGVkKHsgZGVlcDogdHJ1ZSB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0Q29sbGFwc2VkKHsgZGVlcDogdHJ1ZSB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgW3NldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWRdXG4gIClcblxuICAvKipcbiAgICogUmVuZGVyaW5nLlxuICAgKi9cbiAgaWYgKGlzUHJpbWl0aXZlKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlclwiLCBjbGFzc05hbWUpfT5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19uYW1lLS1zZWNvbmRhcnlcIj5cbiAgICAgICAgICB7bmFtZX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX192YWx1ZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAge2ZuLnN0cmluZ2lmeSh2YWx1ZSl9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIGlmIChpc0VtcHR5KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlclwiLCBjbGFzc05hbWUpfT5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19uYW1lLS1zZWNvbmRhcnlcIj5cbiAgICAgICAgICB7bmFtZX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3Ryb25nIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnlcIj5cbiAgICAgICAgICB7QXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBcImVtcHR5IGFycmF5XCIgOiBcImVtcHR5IG9iamVjdFwifVxuICAgICAgICA8L3N0cm9uZz5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEpTT05TY2hlbWFQYXRoQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cGF0aH0+XG4gICAgICA8SlNPTlNjaGVtYUxldmVsQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bmV4dExldmVsfT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcImpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJcIiwgY2xhc3NOYW1lKX1cbiAgICAgICAgICBkYXRhLWpzb24tc2NoZW1hLWxldmVsPXtsZXZlbH1cbiAgICAgICAgPlxuICAgICAgICAgIDxBY2NvcmRpb24gZXhwYW5kZWQ9e2lzRXhwYW5kZWR9IG9uQ2hhbmdlPXtoYW5kbGVFeHBhbnNpb259PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19uYW1lLS1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAge25hbWV9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9BY2NvcmRpb24+XG4gICAgICAgICAgPEV4cGFuZERlZXBCdXR0b25cbiAgICAgICAgICAgIGV4cGFuZGVkPXtpc0V4cGFuZGVkfVxuICAgICAgICAgICAgb25DbGljaz17aGFuZGxlRXhwYW5zaW9uRGVlcH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeVwiPlxuICAgICAgICAgICAge0FycmF5LmlzQXJyYXkodmFsdWUpID8gXCJhcnJheVwiIDogXCJvYmplY3RcIn1cbiAgICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgICA8dWxcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcImpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX2NoaWxkcmVuXCIsIHtcbiAgICAgICAgICAgICAgXCJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19jaGlsZHJlbi0tY29sbGFwc2VkXCI6XG4gICAgICAgICAgICAgICAgIWlzRXhwYW5kZWQsXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aXNFeHBhbmRlZCAmJiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge0FycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICAgICAgICAgICAgICA/IHZhbHVlLm1hcCgoaXRlbSwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCMke2luZGV4fWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5XCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8SlNPTlZpZXdlclxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtgIyR7aW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2l0ZW19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgOiBPYmplY3QuZW50cmllcyh2YWx1ZSkubWFwKFxuICAgICAgICAgICAgICAgICAgICAgIChbcHJvcGVydHlOYW1lLCBwcm9wZXJ0eVZhbHVlXSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17cHJvcGVydHlOYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEpTT05WaWV3ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtwcm9wZXJ0eU5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3Byb3BlcnR5VmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9KU09OU2NoZW1hTGV2ZWxDb250ZXh0LlByb3ZpZGVyPlxuICAgIDwvSlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbkpTT05WaWV3ZXIucHJvcFR5cGVzID0ge1xuICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHZhbHVlOiBQcm9wVHlwZXMuYW55LmlzUmVxdWlyZWQsXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgSlNPTlZpZXdlclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuXG5pbXBvcnQgeyB1c2VDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vaG9va3NcIlxuXG5jb25zdCBBY2NvcmRpb24gPSAoeyBleHBhbmRlZCA9IGZhbHNlLCBjaGlsZHJlbiwgb25DaGFuZ2UgfSkgPT4ge1xuICBjb25zdCBDaGV2cm9uUmlnaHRJY29uID0gdXNlQ29tcG9uZW50KFwiQ2hldnJvblJpZ2h0SWNvblwiKVxuXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudCkgPT4ge1xuICAgICAgb25DaGFuZ2UoZXZlbnQsICFleHBhbmRlZClcbiAgICB9LFxuICAgIFtleHBhbmRlZCwgb25DaGFuZ2VdXG4gIClcblxuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb25cIlxuICAgICAgb25DbGljaz17aGFuZGxlRXhwYW5zaW9ufVxuICAgID5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb25fX2NoaWxkcmVuXCI+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwianNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb25fX2ljb25cIiwge1xuICAgICAgICAgIFwianNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb25fX2ljb24tLWV4cGFuZGVkXCI6IGV4cGFuZGVkLFxuICAgICAgICAgIFwianNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb25fX2ljb24tLWNvbGxhcHNlZFwiOiAhZXhwYW5kZWQsXG4gICAgICAgIH0pfVxuICAgICAgPlxuICAgICAgICA8Q2hldnJvblJpZ2h0SWNvbiAvPlxuICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICApXG59XG5cbkFjY29yZGlvbi5wcm9wVHlwZXMgPSB7XG4gIGV4cGFuZGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLmlzUmVxdWlyZWQsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBBY2NvcmRpb25cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuY29uc3QgRXhwYW5kRGVlcEJ1dHRvbiA9ICh7IGV4cGFuZGVkLCBvbkNsaWNrIH0pID0+IHtcbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50KSA9PiB7XG4gICAgICBvbkNsaWNrKGV2ZW50LCAhZXhwYW5kZWQpXG4gICAgfSxcbiAgICBbZXhwYW5kZWQsIG9uQ2xpY2tdXG4gIClcblxuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1leHBhbmQtZGVlcC1idXR0b25cIlxuICAgICAgb25DbGljaz17aGFuZGxlRXhwYW5zaW9ufVxuICAgID5cbiAgICAgIHtleHBhbmRlZCA/IFwiQ29sbGFwc2UgYWxsXCIgOiBcIkV4cGFuZCBhbGxcIn1cbiAgICA8L2J1dHRvbj5cbiAgKVxufVxuXG5FeHBhbmREZWVwQnV0dG9uLnByb3BUeXBlcyA9IHtcbiAgZXhwYW5kZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEV4cGFuZERlZXBCdXR0b25cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5jb25zdCBDaGV2cm9uUmlnaHQgPSAoKSA9PiAoXG4gIDxzdmdcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICB3aWR0aD1cIjI0XCJcbiAgICBoZWlnaHQ9XCIyNFwiXG4gICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gID5cbiAgICA8cGF0aCBkPVwiTTEwIDZMOC41OSA3LjQxIDEzLjE3IDEybC00LjU4IDQuNTlMMTAgMThsNi02elwiIC8+XG4gIDwvc3ZnPlxuKVxuXG5leHBvcnQgZGVmYXVsdCBDaGV2cm9uUmlnaHRcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgSlNPTlNjaGVtYSBmcm9tIFwiLi9jb21wb25lbnRzL0pTT05TY2hlbWEvSlNPTlNjaGVtYVwiXG5pbXBvcnQgS2V5d29yZCRzY2hlbWEgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy8kc2NoZW1hXCJcbmltcG9ydCBLZXl3b3JkJHZvY2FidWxhcnkgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy8kdm9jYWJ1bGFyeS8kdm9jYWJ1bGFyeVwiXG5pbXBvcnQgS2V5d29yZCRpZCBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzLyRpZFwiXG5pbXBvcnQgS2V5d29yZCRhbmNob3IgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy8kYW5jaG9yXCJcbmltcG9ydCBLZXl3b3JkJGR5bmFtaWNBbmNob3IgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy8kZHluYW1pY0FuY2hvclwiXG5pbXBvcnQgS2V5d29yZCRyZWYgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy8kcmVmXCJcbmltcG9ydCBLZXl3b3JkJGR5bmFtaWNSZWYgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy8kZHluYW1pY1JlZlwiXG5pbXBvcnQgS2V5d29yZCRkZWZzIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvJGRlZnNcIlxuaW1wb3J0IEtleXdvcmQkY29tbWVudCBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzLyRjb21tZW50XCJcbmltcG9ydCBLZXl3b3JkQWxsT2YgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9BbGxPZlwiXG5pbXBvcnQgS2V5d29yZEFueU9mIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvQW55T2ZcIlxuaW1wb3J0IEtleXdvcmRPbmVPZiBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL09uZU9mXCJcbmltcG9ydCBLZXl3b3JkTm90IGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvTm90XCJcbmltcG9ydCBLZXl3b3JkSWYgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9JZlwiXG5pbXBvcnQgS2V5d29yZFRoZW4gZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9UaGVuXCJcbmltcG9ydCBLZXl3b3JkRWxzZSBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0Vsc2VcIlxuaW1wb3J0IEtleXdvcmREZXBlbmRlbnRTY2hlbWFzIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvRGVwZW5kZW50U2NoZW1hc1wiXG5pbXBvcnQgS2V5d29yZFByZWZpeEl0ZW1zIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvUHJlZml4SXRlbXNcIlxuaW1wb3J0IEtleXdvcmRJdGVtcyBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0l0ZW1zXCJcbmltcG9ydCBLZXl3b3JkQ29udGFpbnMgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9Db250YWluc1wiXG5pbXBvcnQgS2V5d29yZFByb3BlcnRpZXMgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9Qcm9wZXJ0aWVzL1Byb3BlcnRpZXNcIlxuaW1wb3J0IEtleXdvcmRQYXR0ZXJuUHJvcGVydGllcyBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL1BhdHRlcm5Qcm9wZXJ0aWVzL1BhdHRlcm5Qcm9wZXJ0aWVzXCJcbmltcG9ydCBLZXl3b3JkQWRkaXRpb25hbFByb3BlcnRpZXMgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9BZGRpdGlvbmFsUHJvcGVydGllc1wiXG5pbXBvcnQgS2V5d29yZFByb3BlcnR5TmFtZXMgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9Qcm9wZXJ0eU5hbWVzXCJcbmltcG9ydCBLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtcyBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL1VuZXZhbHVhdGVkSXRlbXNcIlxuaW1wb3J0IEtleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXMgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9VbmV2YWx1YXRlZFByb3BlcnRpZXNcIlxuaW1wb3J0IEtleXdvcmRUeXBlIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvVHlwZVwiXG5pbXBvcnQgS2V5d29yZEVudW0gZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9FbnVtL0VudW1cIlxuaW1wb3J0IEtleXdvcmRDb25zdCBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0NvbnN0L0NvbnN0XCJcbmltcG9ydCBLZXl3b3JkQ29uc3RyYWludCBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0NvbnN0cmFpbnQvQ29uc3RyYWludFwiXG5pbXBvcnQgS2V5d29yZERlcGVuZGVudFJlcXVpcmVkIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvRGVwZW5kZW50UmVxdWlyZWQvRGVwZW5kZW50UmVxdWlyZWRcIlxuaW1wb3J0IEtleXdvcmRDb250ZW50U2NoZW1hIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvQ29udGVudFNjaGVtYVwiXG5pbXBvcnQgS2V5d29yZFRpdGxlIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvVGl0bGUvVGl0bGVcIlxuaW1wb3J0IEtleXdvcmREZXNjcmlwdGlvbiBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0Rlc2NyaXB0aW9uL0Rlc2NyaXB0aW9uXCJcbmltcG9ydCBLZXl3b3JkRGVmYXVsdCBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0RlZmF1bHQvRGVmYXVsdFwiXG5pbXBvcnQgS2V5d29yZERlcHJlY2F0ZWQgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9EZXByZWNhdGVkXCJcbmltcG9ydCBLZXl3b3JkUmVhZE9ubHkgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9SZWFkT25seVwiXG5pbXBvcnQgS2V5d29yZFdyaXRlT25seSBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL1dyaXRlT25seVwiXG5pbXBvcnQgS2V5d29yZEV4YW1wbGVzIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvRXhhbXBsZXMvRXhhbXBsZXNcIlxuaW1wb3J0IEV4dGVuc2lvbktleXdvcmRzIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvRXh0ZW5zaW9uS2V5d29yZHMvRXh0ZW5zaW9uS2V5d29yZHNcIlxuaW1wb3J0IEpTT05WaWV3ZXIgZnJvbSBcIi4vY29tcG9uZW50cy9KU09OVmlld2VyL0pTT05WaWV3ZXJcIlxuaW1wb3J0IEFjY29yZGlvbiBmcm9tIFwiLi9jb21wb25lbnRzL0FjY29yZGlvbi9BY2NvcmRpb25cIlxuaW1wb3J0IEV4cGFuZERlZXBCdXR0b24gZnJvbSBcIi4vY29tcG9uZW50cy9FeHBhbmREZWVwQnV0dG9uL0V4cGFuZERlZXBCdXR0b25cIlxuaW1wb3J0IENoZXZyb25SaWdodEljb24gZnJvbSBcIi4vY29tcG9uZW50cy9pY29ucy9DaGV2cm9uUmlnaHRcIlxuaW1wb3J0IHsgSlNPTlNjaGVtYUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0XCJcbmltcG9ydCB7IHVzZUZuIH0gZnJvbSBcIi4vaG9va3NcIlxuaW1wb3J0IHtcbiAgbWFrZUdldFRpdGxlLFxuICBpc0Jvb2xlYW5KU09OU2NoZW1hLFxuICB1cHBlckZpcnN0LFxuICBtYWtlR2V0VHlwZSxcbiAgaGFzS2V5d29yZCxcbiAgbWFrZUlzRXhwYW5kYWJsZSxcbiAgc3RyaW5naWZ5LFxuICBzdHJpbmdpZnlDb25zdHJhaW50cyxcbiAgZ2V0RGVwZW5kZW50UmVxdWlyZWQsXG4gIGdldFNjaGVtYUtleXdvcmRzLFxuICBtYWtlR2V0RXh0ZW5zaW9uS2V5d29yZHMsXG59IGZyb20gXCIuL2ZuXCJcblxuZXhwb3J0IGNvbnN0IHdpdGhKU09OU2NoZW1hQ29udGV4dCA9IChDb21wb25lbnQsIG92ZXJyaWRlcyA9IHt9KSA9PiB7XG4gIGNvbnN0IHZhbHVlID0ge1xuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgIEpTT05TY2hlbWEsXG4gICAgICBLZXl3b3JkJHNjaGVtYSxcbiAgICAgIEtleXdvcmQkdm9jYWJ1bGFyeSxcbiAgICAgIEtleXdvcmQkaWQsXG4gICAgICBLZXl3b3JkJGFuY2hvcixcbiAgICAgIEtleXdvcmQkZHluYW1pY0FuY2hvcixcbiAgICAgIEtleXdvcmQkcmVmLFxuICAgICAgS2V5d29yZCRkeW5hbWljUmVmLFxuICAgICAgS2V5d29yZCRkZWZzLFxuICAgICAgS2V5d29yZCRjb21tZW50LFxuICAgICAgS2V5d29yZEFsbE9mLFxuICAgICAgS2V5d29yZEFueU9mLFxuICAgICAgS2V5d29yZE9uZU9mLFxuICAgICAgS2V5d29yZE5vdCxcbiAgICAgIEtleXdvcmRJZixcbiAgICAgIEtleXdvcmRUaGVuLFxuICAgICAgS2V5d29yZEVsc2UsXG4gICAgICBLZXl3b3JkRGVwZW5kZW50U2NoZW1hcyxcbiAgICAgIEtleXdvcmRQcmVmaXhJdGVtcyxcbiAgICAgIEtleXdvcmRJdGVtcyxcbiAgICAgIEtleXdvcmRDb250YWlucyxcbiAgICAgIEtleXdvcmRQcm9wZXJ0aWVzLFxuICAgICAgS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzLFxuICAgICAgS2V5d29yZEFkZGl0aW9uYWxQcm9wZXJ0aWVzLFxuICAgICAgS2V5d29yZFByb3BlcnR5TmFtZXMsXG4gICAgICBLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtcyxcbiAgICAgIEtleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXMsXG4gICAgICBLZXl3b3JkVHlwZSxcbiAgICAgIEtleXdvcmRFbnVtLFxuICAgICAgS2V5d29yZENvbnN0LFxuICAgICAgS2V5d29yZENvbnN0cmFpbnQsXG4gICAgICBLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQsXG4gICAgICBLZXl3b3JkQ29udGVudFNjaGVtYSxcbiAgICAgIEtleXdvcmRUaXRsZSxcbiAgICAgIEtleXdvcmREZXNjcmlwdGlvbixcbiAgICAgIEtleXdvcmREZWZhdWx0LFxuICAgICAgS2V5d29yZERlcHJlY2F0ZWQsXG4gICAgICBLZXl3b3JkUmVhZE9ubHksXG4gICAgICBLZXl3b3JkV3JpdGVPbmx5LFxuICAgICAgS2V5d29yZEV4YW1wbGVzLFxuICAgICAgRXh0ZW5zaW9uS2V5d29yZHMsXG4gICAgICBKU09OVmlld2VyLFxuICAgICAgQWNjb3JkaW9uLFxuICAgICAgRXhwYW5kRGVlcEJ1dHRvbixcbiAgICAgIENoZXZyb25SaWdodEljb24sXG4gICAgICAuLi5vdmVycmlkZXMuY29tcG9uZW50cyxcbiAgICB9LFxuICAgIGNvbmZpZzoge1xuICAgICAgZGVmYXVsdCRzY2hlbWE6IFwiaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWFcIixcbiAgICAgIC8qKlxuICAgICAgICogRGVmaW5lcyBhbiB1cHBlciBleGNsdXNpdmUgYm91bmRhcnkgb2YgdGhlIGxldmVsIHJhbmdlIGZvciBhdXRvbWF0aWMgZXhwYW5zaW9uLlxuICAgICAgICpcbiAgICAgICAqIDAgLT4gZG8gbm90aGluZ1xuICAgICAgICogMSAtPiBbMF0uLi4oMSlcbiAgICAgICAqIDIgLT4gWzBdLi4uKDIpXG4gICAgICAgKiAzIC0+IFswXS4uLigzKVxuICAgICAgICovXG4gICAgICBkZWZhdWx0RXhwYW5kZWRMZXZlbHM6IDAsIC8vIDIgPSAwLi4uMlxuICAgICAgc2hvd0V4dGVuc2lvbktleXdvcmRzOiB0cnVlLFxuICAgICAgLi4ub3ZlcnJpZGVzLmNvbmZpZyxcbiAgICB9LFxuICAgIGZuOiB7XG4gICAgICB1cHBlckZpcnN0LFxuICAgICAgZ2V0VGl0bGU6IG1ha2VHZXRUaXRsZSh1c2VGbiksXG4gICAgICBnZXRUeXBlOiBtYWtlR2V0VHlwZSh1c2VGbiksXG4gICAgICBpc0Jvb2xlYW5KU09OU2NoZW1hLFxuICAgICAgaGFzS2V5d29yZCxcbiAgICAgIGlzRXhwYW5kYWJsZTogbWFrZUlzRXhwYW5kYWJsZSh1c2VGbiksXG4gICAgICBzdHJpbmdpZnksXG4gICAgICBzdHJpbmdpZnlDb25zdHJhaW50cyxcbiAgICAgIGdldERlcGVuZGVudFJlcXVpcmVkLFxuICAgICAgZ2V0U2NoZW1hS2V5d29yZHMsXG4gICAgICBnZXRFeHRlbnNpb25LZXl3b3JkczogbWFrZUdldEV4dGVuc2lvbktleXdvcmRzKHVzZUZuKSxcbiAgICAgIC4uLm92ZXJyaWRlcy5mbixcbiAgICB9LFxuICAgIHN0YXRlOiB7IHBhdGhzOiB7fSB9LFxuICB9XG5cbiAgY29uc3QgSE9DID0gKHByb3BzKSA9PiAoXG4gICAgPEpTT05TY2hlbWFDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+XG4gICAgICA8Q29tcG9uZW50IHsuLi5wcm9wc30gLz5cbiAgICA8L0pTT05TY2hlbWFDb250ZXh0LlByb3ZpZGVyPlxuICApXG4gIEhPQy5jb250ZXh0cyA9IHtcbiAgICBKU09OU2NoZW1hQ29udGV4dCxcbiAgfVxuICBIT0MuZGlzcGxheU5hbWUgPSBDb21wb25lbnQuZGlzcGxheU5hbWVcblxuICByZXR1cm4gSE9DXG59XG5cbmV4cG9ydCBjb25zdCBtYWtlV2l0aEpTT05TY2hlbWFTeXN0ZW1Db250ZXh0ID1cbiAgKHsgZ2V0U3lzdGVtIH0pID0+XG4gIChDb21wb25lbnQsIG92ZXJyaWRlcyA9IHt9KSA9PiB7XG4gICAgY29uc3QgeyBnZXRDb21wb25lbnQsIGdldENvbmZpZ3MgfSA9IGdldFN5c3RlbSgpXG4gICAgY29uc3QgY29uZmlncyA9IGdldENvbmZpZ3MoKVxuXG4gICAgY29uc3QgSlNPTlNjaGVtYSA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJcIilcbiAgICBjb25zdCBLZXl3b3JkJHNjaGVtYSA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJHNjaGVtYVwiKVxuICAgIGNvbnN0IEtleXdvcmQkdm9jYWJ1bGFyeSA9IGdldENvbXBvbmVudChcbiAgICAgIFwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkdm9jYWJ1bGFyeVwiXG4gICAgKVxuICAgIGNvbnN0IEtleXdvcmQkaWQgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRpZFwiKVxuICAgIGNvbnN0IEtleXdvcmQkYW5jaG9yID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkYW5jaG9yXCIpXG4gICAgY29uc3QgS2V5d29yZCRkeW5hbWljQW5jaG9yID0gZ2V0Q29tcG9uZW50KFxuICAgICAgXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRkeW5hbWljQW5jaG9yXCJcbiAgICApXG4gICAgY29uc3QgS2V5d29yZCRyZWYgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRyZWZcIilcbiAgICBjb25zdCBLZXl3b3JkJGR5bmFtaWNSZWYgPSBnZXRDb21wb25lbnQoXG4gICAgICBcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGR5bmFtaWNSZWZcIlxuICAgIClcbiAgICBjb25zdCBLZXl3b3JkJGRlZnMgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRkZWZzXCIpXG4gICAgY29uc3QgS2V5d29yZCRjb21tZW50ID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkY29tbWVudFwiKVxuICAgIGNvbnN0IEtleXdvcmRBbGxPZiA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQWxsT2ZcIilcbiAgICBjb25zdCBLZXl3b3JkQW55T2YgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEFueU9mXCIpXG4gICAgY29uc3QgS2V5d29yZE9uZU9mID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRPbmVPZlwiKVxuICAgIGNvbnN0IEtleXdvcmROb3QgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZE5vdFwiKVxuICAgIGNvbnN0IEtleXdvcmRJZiA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkSWZcIilcbiAgICBjb25zdCBLZXl3b3JkVGhlbiA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVGhlblwiKVxuICAgIGNvbnN0IEtleXdvcmRFbHNlID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFbHNlXCIpXG4gICAgY29uc3QgS2V5d29yZERlcGVuZGVudFNjaGVtYXMgPSBnZXRDb21wb25lbnQoXG4gICAgICBcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwZW5kZW50U2NoZW1hc1wiXG4gICAgKVxuICAgIGNvbnN0IEtleXdvcmRQcmVmaXhJdGVtcyA9IGdldENvbXBvbmVudChcbiAgICAgIFwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRQcmVmaXhJdGVtc1wiXG4gICAgKVxuICAgIGNvbnN0IEtleXdvcmRJdGVtcyA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkSXRlbXNcIilcbiAgICBjb25zdCBLZXl3b3JkQ29udGFpbnMgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZENvbnRhaW5zXCIpXG4gICAgY29uc3QgS2V5d29yZFByb3BlcnRpZXMgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByb3BlcnRpZXNcIilcbiAgICBjb25zdCBLZXl3b3JkUGF0dGVyblByb3BlcnRpZXMgPSBnZXRDb21wb25lbnQoXG4gICAgICBcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUGF0dGVyblByb3BlcnRpZXNcIlxuICAgIClcbiAgICBjb25zdCBLZXl3b3JkQWRkaXRpb25hbFByb3BlcnRpZXMgPSBnZXRDb21wb25lbnQoXG4gICAgICBcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQWRkaXRpb25hbFByb3BlcnRpZXNcIlxuICAgIClcbiAgICBjb25zdCBLZXl3b3JkUHJvcGVydHlOYW1lcyA9IGdldENvbXBvbmVudChcbiAgICAgIFwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRQcm9wZXJ0eU5hbWVzXCJcbiAgICApXG4gICAgY29uc3QgS2V5d29yZFVuZXZhbHVhdGVkSXRlbXMgPSBnZXRDb21wb25lbnQoXG4gICAgICBcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtc1wiXG4gICAgKVxuICAgIGNvbnN0IEtleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXMgPSBnZXRDb21wb25lbnQoXG4gICAgICBcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzXCJcbiAgICApXG4gICAgY29uc3QgS2V5d29yZFR5cGUgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFR5cGVcIilcbiAgICBjb25zdCBLZXl3b3JkRW51bSA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRW51bVwiKVxuICAgIGNvbnN0IEtleXdvcmRDb25zdCA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29uc3RcIilcbiAgICBjb25zdCBLZXl3b3JkQ29uc3RyYWludCA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29uc3RyYWludFwiKVxuICAgIGNvbnN0IEtleXdvcmREZXBlbmRlbnRSZXF1aXJlZCA9IGdldENvbXBvbmVudChcbiAgICAgIFwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXBlbmRlbnRSZXF1aXJlZFwiXG4gICAgKVxuICAgIGNvbnN0IEtleXdvcmRDb250ZW50U2NoZW1hID0gZ2V0Q29tcG9uZW50KFxuICAgICAgXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZENvbnRlbnRTY2hlbWFcIlxuICAgIClcbiAgICBjb25zdCBLZXl3b3JkVGl0bGUgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRpdGxlXCIpXG4gICAgY29uc3QgS2V5d29yZERlc2NyaXB0aW9uID0gZ2V0Q29tcG9uZW50KFxuICAgICAgXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlc2NyaXB0aW9uXCJcbiAgICApXG4gICAgY29uc3QgS2V5d29yZERlZmF1bHQgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlZmF1bHRcIilcbiAgICBjb25zdCBLZXl3b3JkRGVwcmVjYXRlZCA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwcmVjYXRlZFwiKVxuICAgIGNvbnN0IEtleXdvcmRSZWFkT25seSA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUmVhZE9ubHlcIilcbiAgICBjb25zdCBLZXl3b3JkV3JpdGVPbmx5ID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRXcml0ZU9ubHlcIilcbiAgICBjb25zdCBLZXl3b3JkRXhhbXBsZXMgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4YW1wbGVzXCIpXG4gICAgY29uc3QgRXh0ZW5zaW9uS2V5d29yZHMgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyRXh0ZW5zaW9uS2V5d29yZHNcIilcbiAgICBjb25zdCBKU09OVmlld2VyID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMkpTT05WaWV3ZXJcIilcbiAgICBjb25zdCBBY2NvcmRpb24gPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyQWNjb3JkaW9uXCIpXG4gICAgY29uc3QgRXhwYW5kRGVlcEJ1dHRvbiA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJFeHBhbmREZWVwQnV0dG9uXCIpXG4gICAgY29uc3QgQ2hldnJvblJpZ2h0SWNvbiA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJDaGV2cm9uUmlnaHRJY29uXCIpXG5cbiAgICByZXR1cm4gd2l0aEpTT05TY2hlbWFDb250ZXh0KENvbXBvbmVudCwge1xuICAgICAgY29tcG9uZW50czoge1xuICAgICAgICBKU09OU2NoZW1hLFxuICAgICAgICBLZXl3b3JkJHNjaGVtYSxcbiAgICAgICAgS2V5d29yZCR2b2NhYnVsYXJ5LFxuICAgICAgICBLZXl3b3JkJGlkLFxuICAgICAgICBLZXl3b3JkJGFuY2hvcixcbiAgICAgICAgS2V5d29yZCRkeW5hbWljQW5jaG9yLFxuICAgICAgICBLZXl3b3JkJHJlZixcbiAgICAgICAgS2V5d29yZCRkeW5hbWljUmVmLFxuICAgICAgICBLZXl3b3JkJGRlZnMsXG4gICAgICAgIEtleXdvcmQkY29tbWVudCxcbiAgICAgICAgS2V5d29yZEFsbE9mLFxuICAgICAgICBLZXl3b3JkQW55T2YsXG4gICAgICAgIEtleXdvcmRPbmVPZixcbiAgICAgICAgS2V5d29yZE5vdCxcbiAgICAgICAgS2V5d29yZElmLFxuICAgICAgICBLZXl3b3JkVGhlbixcbiAgICAgICAgS2V5d29yZEVsc2UsXG4gICAgICAgIEtleXdvcmREZXBlbmRlbnRTY2hlbWFzLFxuICAgICAgICBLZXl3b3JkUHJlZml4SXRlbXMsXG4gICAgICAgIEtleXdvcmRJdGVtcyxcbiAgICAgICAgS2V5d29yZENvbnRhaW5zLFxuICAgICAgICBLZXl3b3JkUHJvcGVydGllcyxcbiAgICAgICAgS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzLFxuICAgICAgICBLZXl3b3JkQWRkaXRpb25hbFByb3BlcnRpZXMsXG4gICAgICAgIEtleXdvcmRQcm9wZXJ0eU5hbWVzLFxuICAgICAgICBLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtcyxcbiAgICAgICAgS2V5d29yZFVuZXZhbHVhdGVkUHJvcGVydGllcyxcbiAgICAgICAgS2V5d29yZFR5cGUsXG4gICAgICAgIEtleXdvcmRFbnVtLFxuICAgICAgICBLZXl3b3JkQ29uc3QsXG4gICAgICAgIEtleXdvcmRDb25zdHJhaW50LFxuICAgICAgICBLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQsXG4gICAgICAgIEtleXdvcmRDb250ZW50U2NoZW1hLFxuICAgICAgICBLZXl3b3JkVGl0bGUsXG4gICAgICAgIEtleXdvcmREZXNjcmlwdGlvbixcbiAgICAgICAgS2V5d29yZERlZmF1bHQsXG4gICAgICAgIEtleXdvcmREZXByZWNhdGVkLFxuICAgICAgICBLZXl3b3JkUmVhZE9ubHksXG4gICAgICAgIEtleXdvcmRXcml0ZU9ubHksXG4gICAgICAgIEtleXdvcmRFeGFtcGxlcyxcbiAgICAgICAgRXh0ZW5zaW9uS2V5d29yZHMsXG4gICAgICAgIEpTT05WaWV3ZXIsXG4gICAgICAgIEFjY29yZGlvbixcbiAgICAgICAgRXhwYW5kRGVlcEJ1dHRvbixcbiAgICAgICAgQ2hldnJvblJpZ2h0SWNvbixcbiAgICAgICAgLi4ub3ZlcnJpZGVzLmNvbXBvbmVudHMsXG4gICAgICB9LFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIHNob3dFeHRlbnNpb25LZXl3b3JkczogY29uZmlncy5zaG93RXh0ZW5zaW9ucyxcbiAgICAgICAgLi4ub3ZlcnJpZGVzLmNvbmZpZyxcbiAgICAgIH0sXG4gICAgICBmbjoge1xuICAgICAgICAuLi5vdmVycmlkZXMuZm4sXG4gICAgICB9LFxuICAgIH0pXG4gIH1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBKU09OU2NoZW1hIGZyb20gXCIuL2NvbXBvbmVudHMvSlNPTlNjaGVtYS9KU09OU2NoZW1hXCJcbmltcG9ydCBLZXl3b3JkJHNjaGVtYSBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzLyRzY2hlbWFcIlxuaW1wb3J0IEtleXdvcmQkdm9jYWJ1bGFyeSBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzLyR2b2NhYnVsYXJ5LyR2b2NhYnVsYXJ5XCJcbmltcG9ydCBLZXl3b3JkJGlkIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvJGlkXCJcbmltcG9ydCBLZXl3b3JkJGFuY2hvciBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzLyRhbmNob3JcIlxuaW1wb3J0IEtleXdvcmQkZHluYW1pY0FuY2hvciBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzLyRkeW5hbWljQW5jaG9yXCJcbmltcG9ydCBLZXl3b3JkJHJlZiBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzLyRyZWZcIlxuaW1wb3J0IEtleXdvcmQkZHluYW1pY1JlZiBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzLyRkeW5hbWljUmVmXCJcbmltcG9ydCBLZXl3b3JkJGRlZnMgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy8kZGVmc1wiXG5pbXBvcnQgS2V5d29yZCRjb21tZW50IGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvJGNvbW1lbnRcIlxuaW1wb3J0IEtleXdvcmRBbGxPZiBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0FsbE9mXCJcbmltcG9ydCBLZXl3b3JkQW55T2YgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9BbnlPZlwiXG5pbXBvcnQgS2V5d29yZE9uZU9mIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvT25lT2ZcIlxuaW1wb3J0IEtleXdvcmROb3QgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9Ob3RcIlxuaW1wb3J0IEtleXdvcmRJZiBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0lmXCJcbmltcG9ydCBLZXl3b3JkVGhlbiBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL1RoZW5cIlxuaW1wb3J0IEtleXdvcmRFbHNlIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvRWxzZVwiXG5pbXBvcnQgS2V5d29yZERlcGVuZGVudFNjaGVtYXMgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9EZXBlbmRlbnRTY2hlbWFzXCJcbmltcG9ydCBLZXl3b3JkUHJlZml4SXRlbXMgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9QcmVmaXhJdGVtc1wiXG5pbXBvcnQgS2V5d29yZEl0ZW1zIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvSXRlbXNcIlxuaW1wb3J0IEtleXdvcmRDb250YWlucyBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0NvbnRhaW5zXCJcbmltcG9ydCBLZXl3b3JkUHJvcGVydGllcyBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL1Byb3BlcnRpZXMvUHJvcGVydGllc1wiXG5pbXBvcnQgS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvUGF0dGVyblByb3BlcnRpZXMvUGF0dGVyblByb3BlcnRpZXNcIlxuaW1wb3J0IEtleXdvcmRBZGRpdGlvbmFsUHJvcGVydGllcyBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0FkZGl0aW9uYWxQcm9wZXJ0aWVzXCJcbmltcG9ydCBLZXl3b3JkUHJvcGVydHlOYW1lcyBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL1Byb3BlcnR5TmFtZXNcIlxuaW1wb3J0IEtleXdvcmRVbmV2YWx1YXRlZEl0ZW1zIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvVW5ldmFsdWF0ZWRJdGVtc1wiXG5pbXBvcnQgS2V5d29yZFVuZXZhbHVhdGVkUHJvcGVydGllcyBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL1VuZXZhbHVhdGVkUHJvcGVydGllc1wiXG5pbXBvcnQgS2V5d29yZFR5cGUgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9UeXBlXCJcbmltcG9ydCBLZXl3b3JkRW51bSBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0VudW0vRW51bVwiXG5pbXBvcnQgS2V5d29yZENvbnN0IGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvQ29uc3QvQ29uc3RcIlxuaW1wb3J0IEtleXdvcmRDb25zdHJhaW50IGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvQ29uc3RyYWludC9Db25zdHJhaW50XCJcbmltcG9ydCBLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9EZXBlbmRlbnRSZXF1aXJlZC9EZXBlbmRlbnRSZXF1aXJlZFwiXG5pbXBvcnQgS2V5d29yZENvbnRlbnRTY2hlbWEgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9Db250ZW50U2NoZW1hXCJcbmltcG9ydCBLZXl3b3JkVGl0bGUgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9UaXRsZS9UaXRsZVwiXG5pbXBvcnQgS2V5d29yZERlc2NyaXB0aW9uIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvRGVzY3JpcHRpb24vRGVzY3JpcHRpb25cIlxuaW1wb3J0IEtleXdvcmREZWZhdWx0IGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvRGVmYXVsdC9EZWZhdWx0XCJcbmltcG9ydCBLZXl3b3JkRGVwcmVjYXRlZCBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0RlcHJlY2F0ZWRcIlxuaW1wb3J0IEtleXdvcmRSZWFkT25seSBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL1JlYWRPbmx5XCJcbmltcG9ydCBLZXl3b3JkV3JpdGVPbmx5IGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvV3JpdGVPbmx5XCJcbmltcG9ydCBLZXl3b3JkRXhhbXBsZXMgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9FeGFtcGxlcy9FeGFtcGxlc1wiXG5pbXBvcnQgRXh0ZW5zaW9uS2V5d29yZHMgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9FeHRlbnNpb25LZXl3b3Jkcy9FeHRlbnNpb25LZXl3b3Jkc1wiXG5pbXBvcnQgSlNPTlZpZXdlciBmcm9tIFwiLi9jb21wb25lbnRzL0pTT05WaWV3ZXIvSlNPTlZpZXdlclwiXG5pbXBvcnQgQWNjb3JkaW9uIGZyb20gXCIuL2NvbXBvbmVudHMvQWNjb3JkaW9uL0FjY29yZGlvblwiXG5pbXBvcnQgRXhwYW5kRGVlcEJ1dHRvbiBmcm9tIFwiLi9jb21wb25lbnRzL0V4cGFuZERlZXBCdXR0b24vRXhwYW5kRGVlcEJ1dHRvblwiXG5pbXBvcnQgQ2hldnJvblJpZ2h0SWNvbiBmcm9tIFwiLi9jb21wb25lbnRzL2ljb25zL0NoZXZyb25SaWdodFwiXG5pbXBvcnQge1xuICB1cHBlckZpcnN0LFxuICBoYXNLZXl3b3JkLFxuICBtYWtlR2V0VGl0bGUsXG4gIG1ha2VHZXRUeXBlLFxuICBtYWtlSXNFeHBhbmRhYmxlLFxuICBpc0Jvb2xlYW5KU09OU2NoZW1hLFxuICBnZXRTY2hlbWFLZXl3b3JkcyxcbiAgbWFrZUdldEV4dGVuc2lvbktleXdvcmRzLFxuICBoYXNTY2hlbWFUeXBlLFxufSBmcm9tIFwiLi9mblwiXG5pbXBvcnQgeyBKU09OU2NoZW1hUGF0aENvbnRleHQsIEpTT05TY2hlbWFMZXZlbENvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0XCJcbmltcG9ydCB7XG4gIHVzZUZuLFxuICB1c2VDb25maWcsXG4gIHVzZUNvbXBvbmVudCxcbiAgdXNlSXNFeHBhbmRlZCxcbiAgdXNlUGF0aCxcbiAgdXNlTGV2ZWwsXG59IGZyb20gXCIuL2hvb2tzXCJcbmltcG9ydCB7IHdpdGhKU09OU2NoZW1hQ29udGV4dCwgbWFrZVdpdGhKU09OU2NoZW1hU3lzdGVtQ29udGV4dCB9IGZyb20gXCIuL2hvY1wiXG5cbmNvbnN0IEpTT05TY2hlbWEyMDIwMTJQbHVnaW4gPSAoeyBnZXRTeXN0ZW0sIGZuIH0pID0+IHtcbiAgY29uc3QgZm5BY2Nlc3NvciA9ICgpID0+ICh7XG4gICAgdXBwZXJGaXJzdDogZm4udXBwZXJGaXJzdCxcbiAgICAuLi5mbi5qc29uU2NoZW1hMjAyMDEyLFxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgY29tcG9uZW50czoge1xuICAgICAgSlNPTlNjaGVtYTIwMjAxMjogSlNPTlNjaGVtYSxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJHNjaGVtYTogS2V5d29yZCRzY2hlbWEsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZCR2b2NhYnVsYXJ5OiBLZXl3b3JkJHZvY2FidWxhcnksXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRpZDogS2V5d29yZCRpZCxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGFuY2hvcjogS2V5d29yZCRhbmNob3IsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRkeW5hbWljQW5jaG9yOiBLZXl3b3JkJGR5bmFtaWNBbmNob3IsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRyZWY6IEtleXdvcmQkcmVmLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkZHluYW1pY1JlZjogS2V5d29yZCRkeW5hbWljUmVmLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkZGVmczogS2V5d29yZCRkZWZzLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkY29tbWVudDogS2V5d29yZCRjb21tZW50LFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBbGxPZjogS2V5d29yZEFsbE9mLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBbnlPZjogS2V5d29yZEFueU9mLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRPbmVPZjogS2V5d29yZE9uZU9mLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmROb3Q6IEtleXdvcmROb3QsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZElmOiBLZXl3b3JkSWYsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRoZW46IEtleXdvcmRUaGVuLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFbHNlOiBLZXl3b3JkRWxzZSxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwZW5kZW50U2NoZW1hczogS2V5d29yZERlcGVuZGVudFNjaGVtYXMsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByZWZpeEl0ZW1zOiBLZXl3b3JkUHJlZml4SXRlbXMsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZEl0ZW1zOiBLZXl3b3JkSXRlbXMsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZENvbnRhaW5zOiBLZXl3b3JkQ29udGFpbnMsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByb3BlcnRpZXM6IEtleXdvcmRQcm9wZXJ0aWVzLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRQYXR0ZXJuUHJvcGVydGllczogS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBZGRpdGlvbmFsUHJvcGVydGllczogS2V5d29yZEFkZGl0aW9uYWxQcm9wZXJ0aWVzLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRQcm9wZXJ0eU5hbWVzOiBLZXl3b3JkUHJvcGVydHlOYW1lcyxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtczogS2V5d29yZFVuZXZhbHVhdGVkSXRlbXMsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZFVuZXZhbHVhdGVkUHJvcGVydGllczpcbiAgICAgICAgS2V5d29yZFVuZXZhbHVhdGVkUHJvcGVydGllcyxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVHlwZTogS2V5d29yZFR5cGUsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZEVudW06IEtleXdvcmRFbnVtLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRDb25zdDogS2V5d29yZENvbnN0LFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRDb25zdHJhaW50OiBLZXl3b3JkQ29uc3RyYWludCxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQ6IEtleXdvcmREZXBlbmRlbnRSZXF1aXJlZCxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29udGVudFNjaGVtYTogS2V5d29yZENvbnRlbnRTY2hlbWEsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRpdGxlOiBLZXl3b3JkVGl0bGUsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlc2NyaXB0aW9uOiBLZXl3b3JkRGVzY3JpcHRpb24sXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlZmF1bHQ6IEtleXdvcmREZWZhdWx0LFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXByZWNhdGVkOiBLZXl3b3JkRGVwcmVjYXRlZCxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUmVhZE9ubHk6IEtleXdvcmRSZWFkT25seSxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkV3JpdGVPbmx5OiBLZXl3b3JkV3JpdGVPbmx5LFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFeGFtcGxlczogS2V5d29yZEV4YW1wbGVzLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMkV4dGVuc2lvbktleXdvcmRzOiBFeHRlbnNpb25LZXl3b3JkcyxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJKU09OVmlld2VyOiBKU09OVmlld2VyLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMkFjY29yZGlvbjogQWNjb3JkaW9uLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMkV4cGFuZERlZXBCdXR0b246IEV4cGFuZERlZXBCdXR0b24sXG4gICAgICBKU09OU2NoZW1hMjAyMDEyQ2hldnJvblJpZ2h0SWNvbjogQ2hldnJvblJpZ2h0SWNvbixcbiAgICAgIHdpdGhKU09OU2NoZW1hMjAyMDEyQ29udGV4dDogd2l0aEpTT05TY2hlbWFDb250ZXh0LFxuICAgICAgd2l0aEpTT05TY2hlbWEyMDIwMTJTeXN0ZW1Db250ZXh0OlxuICAgICAgICBtYWtlV2l0aEpTT05TY2hlbWFTeXN0ZW1Db250ZXh0KGdldFN5c3RlbSgpKSxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJQYXRoQ29udGV4dDogKCkgPT4gSlNPTlNjaGVtYVBhdGhDb250ZXh0LFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMkxldmVsQ29udGV4dDogKCkgPT4gSlNPTlNjaGVtYUxldmVsQ29udGV4dCxcbiAgICB9LFxuICAgIGZuOiB7XG4gICAgICB1cHBlckZpcnN0LFxuICAgICAganNvblNjaGVtYTIwMjAxMjoge1xuICAgICAgICBnZXRUaXRsZTogbWFrZUdldFRpdGxlKGZuQWNjZXNzb3IpLFxuICAgICAgICBnZXRUeXBlOiBtYWtlR2V0VHlwZShmbkFjY2Vzc29yKSxcbiAgICAgICAgaXNFeHBhbmRhYmxlOiBtYWtlSXNFeHBhbmRhYmxlKGZuQWNjZXNzb3IpLFxuICAgICAgICBpc0Jvb2xlYW5KU09OU2NoZW1hLFxuICAgICAgICBoYXNLZXl3b3JkLFxuICAgICAgICB1c2VGbixcbiAgICAgICAgdXNlQ29uZmlnLFxuICAgICAgICB1c2VDb21wb25lbnQsXG4gICAgICAgIHVzZUlzRXhwYW5kZWQsXG4gICAgICAgIHVzZVBhdGgsXG4gICAgICAgIHVzZUxldmVsLFxuICAgICAgICBnZXRTY2hlbWFLZXl3b3JkcyxcbiAgICAgICAgZ2V0RXh0ZW5zaW9uS2V5d29yZHM6IG1ha2VHZXRFeHRlbnNpb25LZXl3b3JkcyhmbkFjY2Vzc29yKSxcbiAgICAgICAgaGFzU2NoZW1hVHlwZSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBKU09OU2NoZW1hMjAyMDEyUGx1Z2luXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5cbmV4cG9ydCBjb25zdCBhcHBseUFycmF5Q29uc3RyYWludHMgPSAoYXJyYXksIGNvbnN0cmFpbnRzID0ge30pID0+IHtcbiAgY29uc3QgeyBtaW5JdGVtcywgbWF4SXRlbXMsIHVuaXF1ZUl0ZW1zIH0gPSBjb25zdHJhaW50c1xuICBjb25zdCB7IGNvbnRhaW5zLCBtaW5Db250YWlucywgbWF4Q29udGFpbnMgfSA9IGNvbnN0cmFpbnRzXG4gIGxldCBjb25zdHJhaW5lZEFycmF5ID0gWy4uLmFycmF5XVxuXG4gIGlmIChjb250YWlucyAhPSBudWxsICYmIHR5cGVvZiBjb250YWlucyA9PT0gXCJvYmplY3RcIikge1xuICAgIGlmIChOdW1iZXIuaXNJbnRlZ2VyKG1pbkNvbnRhaW5zKSAmJiBtaW5Db250YWlucyA+IDEpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5zSXRlbSA9IGNvbnN0cmFpbmVkQXJyYXkuYXQoMClcbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgbWluQ29udGFpbnM7IGkgKz0gMSkge1xuICAgICAgICBjb25zdHJhaW5lZEFycmF5LnVuc2hpZnQoY29udGFpbnNJdGVtKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoTnVtYmVyLmlzSW50ZWdlcihtYXhDb250YWlucykgJiYgbWF4Q29udGFpbnMgPiAwKSB7XG4gICAgICAvKipcbiAgICAgICAqIFRoaXMgaXMgbm9vcC4gYG1pbkNvbnRhaW5zYCBhbHJlYWR5IGdlbmVyYXRlIG1pbmltdW0gcmVxdWlyZWRcbiAgICAgICAqIG51bWJlciBvZiBpdGVtcyB0aGF0IHNhdGlzZmllcyBgY29udGFpbnNgLiBgbWF4Q29udGFpbnNgIHdvdWxkXG4gICAgICAgKiBoYXZlIG5vIGVmZmVjdC5cbiAgICAgICAqL1xuICAgIH1cbiAgfVxuXG4gIGlmIChOdW1iZXIuaXNJbnRlZ2VyKG1heEl0ZW1zKSAmJiBtYXhJdGVtcyA+IDApIHtcbiAgICBjb25zdHJhaW5lZEFycmF5ID0gYXJyYXkuc2xpY2UoMCwgbWF4SXRlbXMpXG4gIH1cbiAgaWYgKE51bWJlci5pc0ludGVnZXIobWluSXRlbXMpICYmIG1pbkl0ZW1zID4gMCkge1xuICAgIGZvciAobGV0IGkgPSAwOyBjb25zdHJhaW5lZEFycmF5Lmxlbmd0aCA8IG1pbkl0ZW1zOyBpICs9IDEpIHtcbiAgICAgIGNvbnN0cmFpbmVkQXJyYXkucHVzaChjb25zdHJhaW5lZEFycmF5W2kgJSBjb25zdHJhaW5lZEFycmF5Lmxlbmd0aF0pXG4gICAgfVxuICB9XG5cbiAgaWYgKHVuaXF1ZUl0ZW1zID09PSB0cnVlKSB7XG4gICAgLyoqXG4gICAgICogIElmIHVuaXF1ZUl0ZW1zIGlzIHRydWUsIGl0IGltcGxpZXMgdGhhdCBldmVyeSBpdGVtIGluIHRoZSBhcnJheSBtdXN0IGJlIHVuaXF1ZS5cbiAgICAgKiAgVGhpcyBvdmVycmlkZXMgYW55IG1pbkl0ZW1zIGNvbnN0cmFpbnQgdGhhdCBjYW5ub3QgYmUgc2F0aXNmaWVkIHdpdGggdW5pcXVlIGl0ZW1zLlxuICAgICAqICBTbyBpZiBtaW5JdGVtcyBpcyBncmVhdGVyIHRoYW4gdGhlIG51bWJlciBvZiB1bmlxdWUgaXRlbXMsXG4gICAgICogIGl0IHNob3VsZCBiZSByZWR1Y2VkIHRvIHRoZSBudW1iZXIgb2YgdW5pcXVlIGl0ZW1zLlxuICAgICAqL1xuICAgIGNvbnN0cmFpbmVkQXJyYXkgPSBBcnJheS5mcm9tKG5ldyBTZXQoY29uc3RyYWluZWRBcnJheSkpXG4gIH1cblxuICByZXR1cm4gY29uc3RyYWluZWRBcnJheVxufVxuXG5jb25zdCBhcnJheVR5cGUgPSAoc2NoZW1hLCB7IHNhbXBsZSA9IFtdIH0gPSB7fSkgPT4ge1xuICByZXR1cm4gYXBwbHlBcnJheUNvbnN0cmFpbnRzKHNhbXBsZSwgc2NoZW1hKVxufVxuXG5leHBvcnQgZGVmYXVsdCBhcnJheVR5cGVcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cblxuY29uc3Qgb2JqZWN0VHlwZSA9ICgpID0+IHtcbiAgdGhyb3cgbmV3IEVycm9yKFwiTm90IGltcGxlbWVudGVkXCIpXG59XG5cbmV4cG9ydCBkZWZhdWx0IG9iamVjdFR5cGVcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCByYW5kb21CeXRlcyBmcm9tIFwicmFuZG9tYnl0ZXNcIlxuaW1wb3J0IFJhbmRFeHAgZnJvbSBcInJhbmRleHBcIlxuXG4vKipcbiAqIFNvbWUgb2YgdGhlIGZ1bmN0aW9ucyByZXR1cm5zIGNvbnN0YW50cy4gVGhpcyBpcyBkdWUgdG8gdGhlIG5hdHVyZVxuICogb2YgU3dhZ2dlclVJIGV4cGVjdGF0aW9ucyAtIHByb3ZpZGUgYXMgc3RhYmxlIGRhdGEgYXMgcG9zc2libGUuXG4gKlxuICogSW4gZnV0dXJlLCB3ZSBtYXkgZGVjaWRlIHRvIHJhbmRvbWl6ZSB0aGVzZSBmdW5jdGlvbiBhbmQgcHJvdmlkZVxuICogdHJ1ZSByYW5kb20gdmFsdWVzLlxuICovXG5cbmV4cG9ydCBjb25zdCBieXRlcyA9IChsZW5ndGgpID0+IHJhbmRvbUJ5dGVzKGxlbmd0aClcblxuZXhwb3J0IGNvbnN0IHJhbmRleHAgPSAocGF0dGVybikgPT4ge1xuICB0cnkge1xuICAgIC8qKlxuICAgICAqIEFwcGx5aW5nIG1heGltdW0gdmFsdWUgKDEwMCkgdG8gbnVtYmVycyBmcm9tIHJlZ2V4IHBhdHRlcm5zIHRvIGF2b2lkIFJlRG9TOlxuICAgICAqIDEuIHt4fVxuICAgICAqIDIuIHt4LH1cbiAgICAgKiAzLiB7LHl9XG4gICAgICogNC4ge3gseX1cbiAgICAgKi9cbiAgICBjb25zdCBwYXR0ZXJuU2FuaXRpemVyID1cbiAgICAgIC8oPzw9KD88IVxcXFwpXFx7KShcXGR7Myx9KSg/PVxcfSl8KD88PSg/PCFcXFxcKVxce1xcZCosKShcXGR7Myx9KSg/PVxcfSl8KD88PSg/PCFcXFxcKVxceykoXFxkezMsfSkoPz0sXFxkKlxcfSkvZ1xuICAgIGNvbnN0IHNhZmVQYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKHBhdHRlcm5TYW5pdGl6ZXIsIFwiMTAwXCIpXG4gICAgY29uc3QgcmFuZGV4cEluc3RhbmNlID0gbmV3IFJhbmRFeHAoc2FmZVBhdHRlcm4pXG4gICAgcmFuZGV4cEluc3RhbmNlLm1heCA9IDEwMFxuICAgIHJldHVybiByYW5kZXhwSW5zdGFuY2UuZ2VuKClcbiAgfSBjYXRjaCB7XG4gICAgLy8gaW52YWxpZCByZWdleCBzaG91bGQgbm90IGNhdXNlIGEgY3Jhc2ggKHJlZ2V4IHN5bnRheCB2YXJpZXMgYWNyb3NzIGxhbmd1YWdlcylcbiAgICByZXR1cm4gXCJzdHJpbmdcIlxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBwaWNrID0gKGxpc3QpID0+IHtcbiAgcmV0dXJuIGxpc3QuYXQoMClcbn1cblxuZXhwb3J0IGNvbnN0IHN0cmluZyA9ICgpID0+IFwic3RyaW5nXCJcblxuZXhwb3J0IGNvbnN0IG51bWJlciA9ICgpID0+IDBcblxuZXhwb3J0IGNvbnN0IGludGVnZXIgPSAoKSA9PiAwXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tIFwibG9kYXNoL2lzUGxhaW5PYmplY3RcIlxuXG5leHBvcnQgY29uc3QgaXNCb29sZWFuSlNPTlNjaGVtYSA9IChzY2hlbWEpID0+IHtcbiAgcmV0dXJuIHR5cGVvZiBzY2hlbWEgPT09IFwiYm9vbGVhblwiXG59XG5cbmV4cG9ydCBjb25zdCBpc0pTT05TY2hlbWFPYmplY3QgPSAoc2NoZW1hKSA9PiB7XG4gIHJldHVybiBpc1BsYWluT2JqZWN0KHNjaGVtYSlcbn1cblxuZXhwb3J0IGNvbnN0IGlzSlNPTlNjaGVtYSA9IChzY2hlbWEpID0+IHtcbiAgcmV0dXJuIGlzQm9vbGVhbkpTT05TY2hlbWEoc2NoZW1hKSB8fCBpc0pTT05TY2hlbWFPYmplY3Qoc2NoZW1hKVxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY2xhc3MgUmVnaXN0cnkge1xuICBkYXRhID0ge31cblxuICByZWdpc3RlcihuYW1lLCB2YWx1ZSkge1xuICAgIHRoaXMuZGF0YVtuYW1lXSA9IHZhbHVlXG4gIH1cblxuICB1bnJlZ2lzdGVyKG5hbWUpIHtcbiAgICBpZiAodHlwZW9mIG5hbWUgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHRoaXMuZGF0YSA9IHt9XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSB0aGlzLmRhdGFbbmFtZV1cbiAgICB9XG4gIH1cblxuICBnZXQobmFtZSkge1xuICAgIHJldHVybiB0aGlzLmRhdGFbbmFtZV1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBSZWdpc3RyeVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgaW50MzJHZW5lcmF0b3IgPSAoKSA9PiAwXG5cbmV4cG9ydCBkZWZhdWx0IGludDMyR2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBpbnQ2NEdlbmVyYXRvciA9ICgpID0+IDBcblxuZXhwb3J0IGRlZmF1bHQgaW50NjRHZW5lcmF0b3JcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGZsb2F0R2VuZXJhdG9yID0gKCkgPT4gMC4xXG5cbmV4cG9ydCBkZWZhdWx0IGZsb2F0R2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBkb3VibGVHZW5lcmF0b3IgPSAoKSA9PiAwLjFcblxuZXhwb3J0IGRlZmF1bHQgZG91YmxlR2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBlbWFpbEdlbmVyYXRvciA9ICgpID0+IFwidXNlckBleGFtcGxlLmNvbVwiXG5cbmV4cG9ydCBkZWZhdWx0IGVtYWlsR2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBpZG5FbWFpbEdlbmVyYXRvciA9ICgpID0+IFwi7Iuk66GAQGV4YW1wbGUuY29tXCJcblxuZXhwb3J0IGRlZmF1bHQgaWRuRW1haWxHZW5lcmF0b3JcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGhvc3RuYW1lR2VuZXJhdG9yID0gKCkgPT4gXCJleGFtcGxlLmNvbVwiXG5cbmV4cG9ydCBkZWZhdWx0IGhvc3RuYW1lR2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBpZG5Ib3N0bmFtZUdlbmVyYXRvciA9ICgpID0+IFwi7Iuk66GALmNvbVwiXG5cbmV4cG9ydCBkZWZhdWx0IGlkbkhvc3RuYW1lR2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBpcHY0R2VuZXJhdG9yID0gKCkgPT4gXCIxOTguNTEuMTAwLjQyXCJcblxuZXhwb3J0IGRlZmF1bHQgaXB2NEdlbmVyYXRvclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgaXB2NkdlbmVyYXRvciA9ICgpID0+IFwiMjAwMTowZGI4OjViOTY6MDAwMDowMDAwOjQyNmY6OGUxNzo2NDJhXCJcblxuZXhwb3J0IGRlZmF1bHQgaXB2NkdlbmVyYXRvclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgdXJpR2VuZXJhdG9yID0gKCkgPT4gXCJodHRwczovL2V4YW1wbGUuY29tL1wiXG5cbmV4cG9ydCBkZWZhdWx0IHVyaUdlbmVyYXRvclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgdXJpUmVmZXJlbmNlR2VuZXJhdG9yID0gKCkgPT4gXCJwYXRoL2luZGV4Lmh0bWxcIlxuXG5leHBvcnQgZGVmYXVsdCB1cmlSZWZlcmVuY2VHZW5lcmF0b3JcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGlyaUdlbmVyYXRvciA9ICgpID0+IFwiaHR0cHM6Ly/si6TroYAuY29tL1wiXG5cbmV4cG9ydCBkZWZhdWx0IGlyaUdlbmVyYXRvclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgaXJpUmVmZXJlbmNlR2VuZXJhdG9yID0gKCkgPT4gXCJwYXRoL+yLpOuhgC5odG1sXCJcblxuZXhwb3J0IGRlZmF1bHQgaXJpUmVmZXJlbmNlR2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCB1dWlkR2VuZXJhdG9yID0gKCkgPT4gXCIzZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTZcIlxuXG5leHBvcnQgZGVmYXVsdCB1dWlkR2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCB1cmlUZW1wbGF0ZUdlbmVyYXRvciA9ICgpID0+XG4gIFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9kaWN0aW9uYXJ5L3t0ZXJtOjF9L3t0ZXJtfVwiXG5cbmV4cG9ydCBkZWZhdWx0IHVyaVRlbXBsYXRlR2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBqc29uUG9pbnRlckdlbmVyYXRvciA9ICgpID0+IFwiL2EvYi9jXCJcblxuZXhwb3J0IGRlZmF1bHQganNvblBvaW50ZXJHZW5lcmF0b3JcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IHJlbGF0aXZlSnNvblBvaW50ZXJHZW5lcmF0b3IgPSAoKSA9PiBcIjEvMFwiXG5cbmV4cG9ydCBkZWZhdWx0IHJlbGF0aXZlSnNvblBvaW50ZXJHZW5lcmF0b3JcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGRhdGVUaW1lR2VuZXJhdG9yID0gKCkgPT4gbmV3IERhdGUoKS50b0lTT1N0cmluZygpXG5cbmV4cG9ydCBkZWZhdWx0IGRhdGVUaW1lR2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBkYXRlR2VuZXJhdG9yID0gKCkgPT4gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnN1YnN0cmluZygwLCAxMClcblxuZXhwb3J0IGRlZmF1bHQgZGF0ZUdlbmVyYXRvclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgdGltZUdlbmVyYXRvciA9ICgpID0+IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zdWJzdHJpbmcoMTEpXG5cbmV4cG9ydCBkZWZhdWx0IHRpbWVHZW5lcmF0b3JcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGR1cmF0aW9uR2VuZXJhdG9yID0gKCkgPT4gXCJQM0RcIiAvLyBleHByZXNzZXMgYSBkdXJhdGlvbiBvZiAzIGRheXNcblxuZXhwb3J0IGRlZmF1bHQgZHVyYXRpb25HZW5lcmF0b3JcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IHBhc3N3b3JkR2VuZXJhdG9yID0gKCkgPT4gXCIqKioqKioqKlwiXG5cbmV4cG9ydCBkZWZhdWx0IHBhc3N3b3JkR2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCByZWdleEdlbmVyYXRvciA9ICgpID0+IFwiXlthLXpdKyRcIlxuXG5leHBvcnQgZGVmYXVsdCByZWdleEdlbmVyYXRvclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuXG5pbXBvcnQgRm9ybWF0UmVnaXN0cnkgZnJvbSBcIi4uL2NsYXNzL0Zvcm1hdFJlZ2lzdHJ5XCJcblxuY29uc3QgcmVnaXN0cnkgPSBuZXcgRm9ybWF0UmVnaXN0cnkoKVxuXG5jb25zdCBmb3JtYXRBUEkgPSAoZm9ybWF0LCBnZW5lcmF0b3IpID0+IHtcbiAgaWYgKHR5cGVvZiBnZW5lcmF0b3IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiByZWdpc3RyeS5yZWdpc3Rlcihmb3JtYXQsIGdlbmVyYXRvcilcbiAgfSBlbHNlIGlmIChnZW5lcmF0b3IgPT09IG51bGwpIHtcbiAgICByZXR1cm4gcmVnaXN0cnkudW5yZWdpc3Rlcihmb3JtYXQpXG4gIH1cblxuICByZXR1cm4gcmVnaXN0cnkuZ2V0KGZvcm1hdClcbn1cbmZvcm1hdEFQSS5nZXREZWZhdWx0cyA9ICgpID0+IHJlZ2lzdHJ5LmRlZmF1bHRzXG5cbmV4cG9ydCBkZWZhdWx0IGZvcm1hdEFQSVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlZ2lzdHJ5IGZyb20gXCIuL1JlZ2lzdHJ5XCJcbmltcG9ydCBpbnQzMkdlbmVyYXRvciBmcm9tIFwiLi4vZ2VuZXJhdG9ycy9pbnQzMlwiXG5pbXBvcnQgaW50NjRHZW5lcmF0b3IgZnJvbSBcIi4uL2dlbmVyYXRvcnMvaW50NjRcIlxuaW1wb3J0IGZsb2F0R2VuZXJhdG9yIGZyb20gXCIuLi9nZW5lcmF0b3JzL2Zsb2F0XCJcbmltcG9ydCBkb3VibGVHZW5lcmF0b3IgZnJvbSBcIi4uL2dlbmVyYXRvcnMvZG91YmxlXCJcbmltcG9ydCBlbWFpbEdlbmVyYXRvciBmcm9tIFwiLi4vZ2VuZXJhdG9ycy9lbWFpbFwiXG5pbXBvcnQgaWRuRW1haWxHZW5lcmF0b3IgZnJvbSBcIi4uL2dlbmVyYXRvcnMvaWRuLWVtYWlsXCJcbmltcG9ydCBob3N0bmFtZUdlbmVyYXRvciBmcm9tIFwiLi4vZ2VuZXJhdG9ycy9ob3N0bmFtZVwiXG5pbXBvcnQgaWRuSG9zdG5hbWVHZW5lcmF0b3IgZnJvbSBcIi4uL2dlbmVyYXRvcnMvaWRuLWhvc3RuYW1lXCJcbmltcG9ydCBpcHY0R2VuZXJhdG9yIGZyb20gXCIuLi9nZW5lcmF0b3JzL2lwdjRcIlxuaW1wb3J0IGlwdjZHZW5lcmF0b3IgZnJvbSBcIi4uL2dlbmVyYXRvcnMvaXB2NlwiXG5pbXBvcnQgdXJpR2VuZXJhdG9yIGZyb20gXCIuLi9nZW5lcmF0b3JzL3VyaVwiXG5pbXBvcnQgdXJpUmVmZXJlbmNlR2VuZXJhdG9yIGZyb20gXCIuLi9nZW5lcmF0b3JzL3VyaS1yZWZlcmVuY2VcIlxuaW1wb3J0IGlyaUdlbmVyYXRvciBmcm9tIFwiLi4vZ2VuZXJhdG9ycy9pcmlcIlxuaW1wb3J0IGlyaVJlZmVyZW5jZUdlbmVyYXRvciBmcm9tIFwiLi4vZ2VuZXJhdG9ycy9pcmktcmVmZXJlbmNlXCJcbmltcG9ydCB1dWlkR2VuZXJhdG9yIGZyb20gXCIuLi9nZW5lcmF0b3JzL3V1aWRcIlxuaW1wb3J0IHVyaVRlbXBsYXRlR2VuZXJhdG9yIGZyb20gXCIuLi9nZW5lcmF0b3JzL3VyaS10ZW1wbGF0ZVwiXG5pbXBvcnQganNvblBvaW50ZXJHZW5lcmF0b3IgZnJvbSBcIi4uL2dlbmVyYXRvcnMvanNvbi1wb2ludGVyXCJcbmltcG9ydCByZWxhdGl2ZUpzb25Qb2ludGVyR2VuZXJhdG9yIGZyb20gXCIuLi9nZW5lcmF0b3JzL3JlbGF0aXZlLWpzb24tcG9pbnRlclwiXG5pbXBvcnQgZGF0ZVRpbWVHZW5lcmF0b3IgZnJvbSBcIi4uL2dlbmVyYXRvcnMvZGF0ZS10aW1lXCJcbmltcG9ydCBkYXRlR2VuZXJhdG9yIGZyb20gXCIuLi9nZW5lcmF0b3JzL2RhdGVcIlxuaW1wb3J0IHRpbWVHZW5lcmF0b3IgZnJvbSBcIi4uL2dlbmVyYXRvcnMvdGltZVwiXG5pbXBvcnQgZHVyYXRpb25HZW5lcmF0b3IgZnJvbSBcIi4uL2dlbmVyYXRvcnMvZHVyYXRpb25cIlxuaW1wb3J0IHBhc3N3b3JkR2VuZXJhdG9yIGZyb20gXCIuLi9nZW5lcmF0b3JzL3Bhc3N3b3JkXCJcbmltcG9ydCByZWdleEdlbmVyYXRvciBmcm9tIFwiLi4vZ2VuZXJhdG9ycy9yZWdleFwiXG5cbmNsYXNzIEZvcm1hdFJlZ2lzdHJ5IGV4dGVuZHMgUmVnaXN0cnkge1xuICAjZGVmYXVsdHMgPSB7XG4gICAgaW50MzI6IGludDMyR2VuZXJhdG9yLFxuICAgIGludDY0OiBpbnQ2NEdlbmVyYXRvcixcbiAgICBmbG9hdDogZmxvYXRHZW5lcmF0b3IsXG4gICAgZG91YmxlOiBkb3VibGVHZW5lcmF0b3IsXG4gICAgZW1haWw6IGVtYWlsR2VuZXJhdG9yLFxuICAgIFwiaWRuLWVtYWlsXCI6IGlkbkVtYWlsR2VuZXJhdG9yLFxuICAgIGhvc3RuYW1lOiBob3N0bmFtZUdlbmVyYXRvcixcbiAgICBcImlkbi1ob3N0bmFtZVwiOiBpZG5Ib3N0bmFtZUdlbmVyYXRvcixcbiAgICBpcHY0OiBpcHY0R2VuZXJhdG9yLFxuICAgIGlwdjY6IGlwdjZHZW5lcmF0b3IsXG4gICAgdXJpOiB1cmlHZW5lcmF0b3IsXG4gICAgXCJ1cmktcmVmZXJlbmNlXCI6IHVyaVJlZmVyZW5jZUdlbmVyYXRvcixcbiAgICBpcmk6IGlyaUdlbmVyYXRvcixcbiAgICBcImlyaS1yZWZlcmVuY2VcIjogaXJpUmVmZXJlbmNlR2VuZXJhdG9yLFxuICAgIHV1aWQ6IHV1aWRHZW5lcmF0b3IsXG4gICAgXCJ1cmktdGVtcGxhdGVcIjogdXJpVGVtcGxhdGVHZW5lcmF0b3IsXG4gICAgXCJqc29uLXBvaW50ZXJcIjoganNvblBvaW50ZXJHZW5lcmF0b3IsXG4gICAgXCJyZWxhdGl2ZS1qc29uLXBvaW50ZXJcIjogcmVsYXRpdmVKc29uUG9pbnRlckdlbmVyYXRvcixcbiAgICBcImRhdGUtdGltZVwiOiBkYXRlVGltZUdlbmVyYXRvcixcbiAgICBkYXRlOiBkYXRlR2VuZXJhdG9yLFxuICAgIHRpbWU6IHRpbWVHZW5lcmF0b3IsXG4gICAgZHVyYXRpb246IGR1cmF0aW9uR2VuZXJhdG9yLFxuICAgIHBhc3N3b3JkOiBwYXNzd29yZEdlbmVyYXRvcixcbiAgICByZWdleDogcmVnZXhHZW5lcmF0b3IsXG4gIH1cblxuICBkYXRhID0geyAuLi50aGlzLiNkZWZhdWx0cyB9XG5cbiAgZ2V0IGRlZmF1bHRzKCkge1xuICAgIHJldHVybiB7IC4uLnRoaXMuI2RlZmF1bHRzIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBGb3JtYXRSZWdpc3RyeVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgZW5jb2RlN2JpdCA9IChjb250ZW50KSA9PiBCdWZmZXIuZnJvbShjb250ZW50KS50b1N0cmluZyhcImFzY2lpXCIpXG5cbmV4cG9ydCBkZWZhdWx0IGVuY29kZTdiaXRcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGVuY29kZThiaXQgPSAoY29udGVudCkgPT4gQnVmZmVyLmZyb20oY29udGVudCkudG9TdHJpbmcoXCJ1dGY4XCIpXG5cbmV4cG9ydCBkZWZhdWx0IGVuY29kZThiaXRcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGVuY29kZUJpbmFyeSA9IChjb250ZW50KSA9PiBCdWZmZXIuZnJvbShjb250ZW50KS50b1N0cmluZyhcImJpbmFyeVwiKVxuXG5leHBvcnQgZGVmYXVsdCBlbmNvZGVCaW5hcnlcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGVuY29kZVF1b3RlZFByaW50YWJsZSA9IChjb250ZW50KSA9PiB7XG4gIGxldCBxdW90ZWRQcmludGFibGUgPSBcIlwiXG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb250ZW50Lmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY2hhckNvZGUgPSBjb250ZW50LmNoYXJDb2RlQXQoaSlcblxuICAgIGlmIChjaGFyQ29kZSA9PT0gNjEpIHtcbiAgICAgIC8vIEFTQ0lJIGNvbnRlbnQgb2YgXCI9XCJcbiAgICAgIHF1b3RlZFByaW50YWJsZSArPSBcIj0zRFwiXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIChjaGFyQ29kZSA+PSAzMyAmJiBjaGFyQ29kZSA8PSA2MCkgfHxcbiAgICAgIChjaGFyQ29kZSA+PSA2MiAmJiBjaGFyQ29kZSA8PSAxMjYpIHx8XG4gICAgICBjaGFyQ29kZSA9PT0gOSB8fFxuICAgICAgY2hhckNvZGUgPT09IDMyXG4gICAgKSB7XG4gICAgICBxdW90ZWRQcmludGFibGUgKz0gY29udGVudC5jaGFyQXQoaSlcbiAgICB9IGVsc2UgaWYgKGNoYXJDb2RlID09PSAxMyB8fCBjaGFyQ29kZSA9PT0gMTApIHtcbiAgICAgIHF1b3RlZFByaW50YWJsZSArPSBcIlxcclxcblwiXG4gICAgfSBlbHNlIGlmIChjaGFyQ29kZSA+IDEyNikge1xuICAgICAgLy8gY29udmVydCBub24tQVNDSUkgY2hhcmFjdGVycyB0byBVVEYtOCBhbmQgZW5jb2RlIGVhY2ggYnl0ZVxuICAgICAgY29uc3QgdXRmOCA9IHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChjb250ZW50LmNoYXJBdChpKSkpXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHV0ZjgubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgcXVvdGVkUHJpbnRhYmxlICs9XG4gICAgICAgICAgXCI9XCIgKyAoXCIwXCIgKyB1dGY4LmNoYXJDb2RlQXQoaikudG9TdHJpbmcoMTYpKS5zbGljZSgtMikudG9VcHBlckNhc2UoKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBxdW90ZWRQcmludGFibGUgKz1cbiAgICAgICAgXCI9XCIgKyAoXCIwXCIgKyBjaGFyQ29kZS50b1N0cmluZygxNikpLnNsaWNlKC0yKS50b1VwcGVyQ2FzZSgpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHF1b3RlZFByaW50YWJsZVxufVxuXG5leHBvcnQgZGVmYXVsdCBlbmNvZGVRdW90ZWRQcmludGFibGVcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGVuY29kZUJhc2UxNiA9IChjb250ZW50KSA9PiBCdWZmZXIuZnJvbShjb250ZW50KS50b1N0cmluZyhcImhleFwiKVxuXG5leHBvcnQgZGVmYXVsdCBlbmNvZGVCYXNlMTZcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGVuY29kZUJhc2UzMiA9IChjb250ZW50KSA9PiB7XG4gIGNvbnN0IHV0ZjhWYWx1ZSA9IEJ1ZmZlci5mcm9tKGNvbnRlbnQpLnRvU3RyaW5nKFwidXRmOFwiKVxuICBjb25zdCBiYXNlMzJBbHBoYWJldCA9IFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1NjdcIlxuICBsZXQgcGFkZGluZ0NvdW50ID0gMFxuICBsZXQgYmFzZTMyU3RyID0gXCJcIlxuICBsZXQgYnVmZmVyID0gMFxuICBsZXQgYnVmZmVyTGVuZ3RoID0gMFxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdXRmOFZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgYnVmZmVyID0gKGJ1ZmZlciA8PCA4KSB8IHV0ZjhWYWx1ZS5jaGFyQ29kZUF0KGkpXG4gICAgYnVmZmVyTGVuZ3RoICs9IDhcblxuICAgIHdoaWxlIChidWZmZXJMZW5ndGggPj0gNSkge1xuICAgICAgYmFzZTMyU3RyICs9IGJhc2UzMkFscGhhYmV0LmNoYXJBdCgoYnVmZmVyID4+PiAoYnVmZmVyTGVuZ3RoIC0gNSkpICYgMzEpXG4gICAgICBidWZmZXJMZW5ndGggLT0gNVxuICAgIH1cbiAgfVxuXG4gIGlmIChidWZmZXJMZW5ndGggPiAwKSB7XG4gICAgYmFzZTMyU3RyICs9IGJhc2UzMkFscGhhYmV0LmNoYXJBdCgoYnVmZmVyIDw8ICg1IC0gYnVmZmVyTGVuZ3RoKSkgJiAzMSlcbiAgICBwYWRkaW5nQ291bnQgPSAoOCAtICgodXRmOFZhbHVlLmxlbmd0aCAqIDgpICUgNSkpICUgNVxuICB9XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYWRkaW5nQ291bnQ7IGkrKykge1xuICAgIGJhc2UzMlN0ciArPSBcIj1cIlxuICB9XG5cbiAgcmV0dXJuIGJhc2UzMlN0clxufVxuXG5leHBvcnQgZGVmYXVsdCBlbmNvZGVCYXNlMzJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGVuY29kZUJhc2U2NCA9IChjb250ZW50KSA9PiBCdWZmZXIuZnJvbShjb250ZW50KS50b1N0cmluZyhcImJhc2U2NFwiKVxuXG5leHBvcnQgZGVmYXVsdCBlbmNvZGVCYXNlNjRcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGVuY29kZUJhc2U2NFVybCA9IChjb250ZW50KSA9PiBCdWZmZXIuZnJvbShjb250ZW50KS50b1N0cmluZyhcImJhc2U2NHVybFwiKVxuXG5leHBvcnQgZGVmYXVsdCBlbmNvZGVCYXNlNjRVcmxcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cblxuaW1wb3J0IEVuY29kZXJSZWdpc3RyeSBmcm9tIFwiLi4vY2xhc3MvRW5jb2RlclJlZ2lzdHJ5XCJcblxuY29uc3QgcmVnaXN0cnkgPSBuZXcgRW5jb2RlclJlZ2lzdHJ5KClcblxuY29uc3QgZW5jb2RlckFQSSA9IChlbmNvZGluZ05hbWUsIGVuY29kZXIpID0+IHtcbiAgaWYgKHR5cGVvZiBlbmNvZGVyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICByZXR1cm4gcmVnaXN0cnkucmVnaXN0ZXIoZW5jb2RpbmdOYW1lLCBlbmNvZGVyKVxuICB9IGVsc2UgaWYgKGVuY29kZXIgPT09IG51bGwpIHtcbiAgICByZXR1cm4gcmVnaXN0cnkudW5yZWdpc3RlcihlbmNvZGluZ05hbWUpXG4gIH1cblxuICByZXR1cm4gcmVnaXN0cnkuZ2V0KGVuY29kaW5nTmFtZSlcbn1cbmVuY29kZXJBUEkuZ2V0RGVmYXVsdHMgPSAoKSA9PiByZWdpc3RyeS5kZWZhdWx0c1xuXG5leHBvcnQgZGVmYXVsdCBlbmNvZGVyQVBJXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVnaXN0cnkgZnJvbSBcIi4vUmVnaXN0cnlcIlxuaW1wb3J0IGVuY29kZTdiaXQgZnJvbSBcIi4uL2VuY29kZXJzLzdiaXRcIlxuaW1wb3J0IGVuY29kZThiaXQgZnJvbSBcIi4uL2VuY29kZXJzLzhiaXRcIlxuaW1wb3J0IGVuY29kZUJpbmFyeSBmcm9tIFwiLi4vZW5jb2RlcnMvYmluYXJ5XCJcbmltcG9ydCBlbmNvZGVRdW90ZWRQcmludGFibGUgZnJvbSBcIi4uL2VuY29kZXJzL3F1b3RlZC1wcmludGFibGVcIlxuaW1wb3J0IGVuY29kZUJhc2UxNiBmcm9tIFwiLi4vZW5jb2RlcnMvYmFzZTE2XCJcbmltcG9ydCBlbmNvZGVCYXNlMzIgZnJvbSBcIi4uL2VuY29kZXJzL2Jhc2UzMlwiXG5pbXBvcnQgZW5jb2RlQmFzZTY0IGZyb20gXCIuLi9lbmNvZGVycy9iYXNlNjRcIlxuaW1wb3J0IGVuY29kZUJhc2U2NFVybCBmcm9tIFwiLi4vZW5jb2RlcnMvYmFzZTY0dXJsXCJcblxuY2xhc3MgRW5jb2RlclJlZ2lzdHJ5IGV4dGVuZHMgUmVnaXN0cnkge1xuICAjZGVmYXVsdHMgPSB7XG4gICAgXCI3Yml0XCI6IGVuY29kZTdiaXQsXG4gICAgXCI4Yml0XCI6IGVuY29kZThiaXQsXG4gICAgYmluYXJ5OiBlbmNvZGVCaW5hcnksXG4gICAgXCJxdW90ZWQtcHJpbnRhYmxlXCI6IGVuY29kZVF1b3RlZFByaW50YWJsZSxcbiAgICBiYXNlMTY6IGVuY29kZUJhc2UxNixcbiAgICBiYXNlMzI6IGVuY29kZUJhc2UzMixcbiAgICBiYXNlNjQ6IGVuY29kZUJhc2U2NCxcbiAgICBiYXNlNjR1cmw6IGVuY29kZUJhc2U2NFVybCxcbiAgfVxuXG4gIGRhdGEgPSB7IC4uLnRoaXMuI2RlZmF1bHRzIH1cblxuICBnZXQgZGVmYXVsdHMoKSB7XG4gICAgcmV0dXJuIHsgLi4udGhpcy4jZGVmYXVsdHMgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEVuY29kZXJSZWdpc3RyeVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL0Jhc2ljc19vZl9IVFRQL01JTUVfdHlwZXMvQ29tbW9uX3R5cGVzXG5jb25zdCB0ZXh0TWVkaWFUeXBlc0dlbmVyYXRvcnMgPSB7XG4gIFwidGV4dC9wbGFpblwiOiAoKSA9PiBcInN0cmluZ1wiLFxuICBcInRleHQvY3NzXCI6ICgpID0+IFwiLnNlbGVjdG9yIHsgYm9yZGVyOiAxcHggc29saWQgcmVkIH1cIixcbiAgXCJ0ZXh0L2NzdlwiOiAoKSA9PiBcInZhbHVlMSx2YWx1ZTIsdmFsdWUzXCIsXG4gIFwidGV4dC9odG1sXCI6ICgpID0+IFwiPHA+Y29udGVudDwvcD5cIixcbiAgXCJ0ZXh0L2NhbGVuZGFyXCI6ICgpID0+IFwiQkVHSU46VkNBTEVOREFSXCIsXG4gIFwidGV4dC9qYXZhc2NyaXB0XCI6ICgpID0+IFwiY29uc29sZS5kaXIoJ0hlbGxvIHdvcmxkIScpO1wiLFxuICBcInRleHQveG1sXCI6ICgpID0+ICc8cGVyc29uIGFnZT1cIjMwXCI+Sm9obiBEb2U8L3BlcnNvbj4nLFxuICBcInRleHQvKlwiOiAoKSA9PiBcInN0cmluZ1wiLFxufVxuXG5leHBvcnQgZGVmYXVsdCB0ZXh0TWVkaWFUeXBlc0dlbmVyYXRvcnNcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IGJ5dGVzIH0gZnJvbSBcIi4uLy4uL2NvcmUvcmFuZG9tXCJcblxuY29uc3QgaW1hZ2VNZWRpYVR5cGVzR2VuZXJhdG9ycyA9IHtcbiAgXCJpbWFnZS8qXCI6ICgpID0+IGJ5dGVzKDI1KS50b1N0cmluZyhcImJpbmFyeVwiKSxcbn1cblxuZXhwb3J0IGRlZmF1bHQgaW1hZ2VNZWRpYVR5cGVzR2VuZXJhdG9yc1xuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgYnl0ZXMgfSBmcm9tIFwiLi4vLi4vY29yZS9yYW5kb21cIlxuXG5jb25zdCBhdWRpb01lZGlhVHlwZXNHZW5lcmF0b3JzID0ge1xuICBcImF1ZGlvLypcIjogKCkgPT4gYnl0ZXMoMjUpLnRvU3RyaW5nKFwiYmluYXJ5XCIpLFxufVxuXG5leHBvcnQgZGVmYXVsdCBhdWRpb01lZGlhVHlwZXNHZW5lcmF0b3JzXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBieXRlcyB9IGZyb20gXCIuLi8uLi9jb3JlL3JhbmRvbVwiXG5cbmNvbnN0IHZpZGVvTWVkaWFUeXBlc0dlbmVyYXRvcnMgPSB7XG4gIFwidmlkZW8vKlwiOiAoKSA9PiBieXRlcygyNSkudG9TdHJpbmcoXCJiaW5hcnlcIiksXG59XG5cbmV4cG9ydCBkZWZhdWx0IHZpZGVvTWVkaWFUeXBlc0dlbmVyYXRvcnNcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IGJ5dGVzIH0gZnJvbSBcIi4uLy4uL2NvcmUvcmFuZG9tXCJcblxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9CYXNpY3Nfb2ZfSFRUUC9NSU1FX3R5cGVzL0NvbW1vbl90eXBlc1xuY29uc3QgYXBwbGljYXRpb25NZWRpYVR5cGVzR2VuZXJhdG9ycyA9IHtcbiAgXCJhcHBsaWNhdGlvbi9qc29uXCI6ICgpID0+ICd7XCJrZXlcIjpcInZhbHVlXCJ9JyxcbiAgXCJhcHBsaWNhdGlvbi9sZCtqc29uXCI6ICgpID0+ICd7XCJuYW1lXCI6IFwiSm9obiBEb2VcIn0nLFxuICBcImFwcGxpY2F0aW9uL3gtaHR0cGQtcGhwXCI6ICgpID0+IFwiPD9waHAgZWNobyAnPHA+SGVsbG8gV29ybGQhPC9wPic7ID8+XCIsXG4gIFwiYXBwbGljYXRpb24vcnRmXCI6ICgpID0+IFN0cmluZy5yYXdge1xccnRmMVxcYWRlZmxhbmcxMDI1XFxhbnNpXFxhbnNpY3BnMTI1MlxcdWMxYCxcbiAgXCJhcHBsaWNhdGlvbi94LXNoXCI6ICgpID0+ICdlY2hvIFwiSGVsbG8gV29ybGQhXCInLFxuICBcImFwcGxpY2F0aW9uL3hodG1sK3htbFwiOiAoKSA9PiBcIjxwPmNvbnRlbnQ8L3A+XCIsXG4gIFwiYXBwbGljYXRpb24vKlwiOiAoKSA9PiBieXRlcygyNSkudG9TdHJpbmcoXCJiaW5hcnlcIiksXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFwcGxpY2F0aW9uTWVkaWFUeXBlc0dlbmVyYXRvcnNcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cblxuaW1wb3J0IE1lZGlhVHlwZVJlZ2lzdHJ5IGZyb20gXCIuLi9jbGFzcy9NZWRpYVR5cGVSZWdpc3RyeVwiXG5cbmNvbnN0IHJlZ2lzdHJ5ID0gbmV3IE1lZGlhVHlwZVJlZ2lzdHJ5KClcblxuY29uc3QgbWVkaWFUeXBlQVBJID0gKG1lZGlhVHlwZSwgZ2VuZXJhdG9yKSA9PiB7XG4gIGlmICh0eXBlb2YgZ2VuZXJhdG9yID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICByZXR1cm4gcmVnaXN0cnkucmVnaXN0ZXIobWVkaWFUeXBlLCBnZW5lcmF0b3IpXG4gIH0gZWxzZSBpZiAoZ2VuZXJhdG9yID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHJlZ2lzdHJ5LnVucmVnaXN0ZXIobWVkaWFUeXBlKVxuICB9XG5cbiAgY29uc3QgbWVkaWFUeXBlTm9QYXJhbXMgPSBtZWRpYVR5cGUuc3BsaXQoXCI7XCIpLmF0KDApXG4gIGNvbnN0IHRvcExldmVsTWVkaWFUeXBlID0gYCR7bWVkaWFUeXBlTm9QYXJhbXMuc3BsaXQoXCIvXCIpLmF0KDApfS8qYFxuXG4gIHJldHVybiAoXG4gICAgcmVnaXN0cnkuZ2V0KG1lZGlhVHlwZSkgfHxcbiAgICByZWdpc3RyeS5nZXQobWVkaWFUeXBlTm9QYXJhbXMpIHx8XG4gICAgcmVnaXN0cnkuZ2V0KHRvcExldmVsTWVkaWFUeXBlKVxuICApXG59XG5tZWRpYVR5cGVBUEkuZ2V0RGVmYXVsdHMgPSAoKSA9PiByZWdpc3RyeS5kZWZhdWx0c1xuXG5leHBvcnQgZGVmYXVsdCBtZWRpYVR5cGVBUElcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWdpc3RyeSBmcm9tIFwiLi9SZWdpc3RyeVwiXG5pbXBvcnQgdGV4dE1lZGlhVHlwZXNHZW5lcmF0b3JzIGZyb20gXCIuLi9nZW5lcmF0b3JzL21lZGlhLXR5cGVzL3RleHRcIlxuaW1wb3J0IGltYWdlTWVkaWFUeXBlc0dlbmVyYXRvcnMgZnJvbSBcIi4uL2dlbmVyYXRvcnMvbWVkaWEtdHlwZXMvaW1hZ2VcIlxuaW1wb3J0IGF1ZGlvTWVkaWFUeXBlc0dlbmVyYXRvcnMgZnJvbSBcIi4uL2dlbmVyYXRvcnMvbWVkaWEtdHlwZXMvYXVkaW9cIlxuaW1wb3J0IHZpZGVvTWVkaWFUeXBlc0dlbmVyYXRvcnMgZnJvbSBcIi4uL2dlbmVyYXRvcnMvbWVkaWEtdHlwZXMvdmlkZW9cIlxuaW1wb3J0IGFwcGxpY2F0aW9uTWVkaWFUeXBlc0dlbmVyYXRvcnMgZnJvbSBcIi4uL2dlbmVyYXRvcnMvbWVkaWEtdHlwZXMvYXBwbGljYXRpb25cIlxuXG5jbGFzcyBNZWRpYVR5cGVSZWdpc3RyeSBleHRlbmRzIFJlZ2lzdHJ5IHtcbiAgI2RlZmF1bHRzID0ge1xuICAgIC4uLnRleHRNZWRpYVR5cGVzR2VuZXJhdG9ycyxcbiAgICAuLi5pbWFnZU1lZGlhVHlwZXNHZW5lcmF0b3JzLFxuICAgIC4uLmF1ZGlvTWVkaWFUeXBlc0dlbmVyYXRvcnMsXG4gICAgLi4udmlkZW9NZWRpYVR5cGVzR2VuZXJhdG9ycyxcbiAgICAuLi5hcHBsaWNhdGlvbk1lZGlhVHlwZXNHZW5lcmF0b3JzLFxuICB9XG5cbiAgZGF0YSA9IHsgLi4udGhpcy4jZGVmYXVsdHMgfVxuXG4gIGdldCBkZWZhdWx0cygpIHtcbiAgICByZXR1cm4geyAuLi50aGlzLiNkZWZhdWx0cyB9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTWVkaWFUeXBlUmVnaXN0cnlcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBpZGVudGl0eSBmcm9tIFwibG9kYXNoL2lkZW50aXR5XCJcblxuaW1wb3J0IHsgc3RyaW5nIGFzIHJhbmRvbVN0cmluZywgcmFuZGV4cCB9IGZyb20gXCIuLi9jb3JlL3JhbmRvbVwiXG5pbXBvcnQgeyBpc0pTT05TY2hlbWEgfSBmcm9tIFwiLi4vY29yZS9wcmVkaWNhdGVzXCJcbmltcG9ydCBmb3JtYXRBUEkgZnJvbSBcIi4uL2FwaS9mb3JtYXRBUElcIlxuaW1wb3J0IGVuY29kZXJBUEkgZnJvbSBcIi4uL2FwaS9lbmNvZGVyQVBJXCJcbmltcG9ydCBtZWRpYVR5cGVBUEkgZnJvbSBcIi4uL2FwaS9tZWRpYVR5cGVBUElcIlxuXG5jb25zdCBnZW5lcmF0ZUZvcm1hdCA9IChzY2hlbWEpID0+IHtcbiAgY29uc3QgeyBmb3JtYXQgfSA9IHNjaGVtYVxuXG4gIGNvbnN0IGZvcm1hdEdlbmVyYXRvciA9IGZvcm1hdEFQSShmb3JtYXQpXG4gIGlmICh0eXBlb2YgZm9ybWF0R2VuZXJhdG9yID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICByZXR1cm4gZm9ybWF0R2VuZXJhdG9yKHNjaGVtYSlcbiAgfVxuXG4gIHJldHVybiByYW5kb21TdHJpbmcoKVxufVxuXG5jb25zdCBnZW5lcmF0ZU1lZGlhVHlwZSA9IChzY2hlbWEpID0+IHtcbiAgY29uc3QgeyBjb250ZW50TWVkaWFUeXBlIH0gPSBzY2hlbWFcblxuICBjb25zdCBtZWRpYVR5cGVHZW5lcmF0b3IgPSBtZWRpYVR5cGVBUEkoY29udGVudE1lZGlhVHlwZSlcbiAgaWYgKHR5cGVvZiBtZWRpYVR5cGVHZW5lcmF0b3IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiBtZWRpYVR5cGVHZW5lcmF0b3Ioc2NoZW1hKVxuICB9XG5cbiAgcmV0dXJuIHJhbmRvbVN0cmluZygpXG59XG5cbmNvbnN0IGFwcGx5U3RyaW5nQ29uc3RyYWludHMgPSAoc3RyaW5nLCBjb25zdHJhaW50cyA9IHt9KSA9PiB7XG4gIGNvbnN0IHsgbWF4TGVuZ3RoLCBtaW5MZW5ndGggfSA9IGNvbnN0cmFpbnRzXG4gIGxldCBjb25zdHJhaW5lZFN0cmluZyA9IHN0cmluZ1xuXG4gIGlmIChOdW1iZXIuaXNJbnRlZ2VyKG1heExlbmd0aCkgJiYgbWF4TGVuZ3RoID4gMCkge1xuICAgIGNvbnN0cmFpbmVkU3RyaW5nID0gY29uc3RyYWluZWRTdHJpbmcuc2xpY2UoMCwgbWF4TGVuZ3RoKVxuICB9XG4gIGlmIChOdW1iZXIuaXNJbnRlZ2VyKG1pbkxlbmd0aCkgJiYgbWluTGVuZ3RoID4gMCkge1xuICAgIGxldCBpID0gMFxuICAgIHdoaWxlIChjb25zdHJhaW5lZFN0cmluZy5sZW5ndGggPCBtaW5MZW5ndGgpIHtcbiAgICAgIGNvbnN0cmFpbmVkU3RyaW5nICs9IGNvbnN0cmFpbmVkU3RyaW5nW2krKyAlIGNvbnN0cmFpbmVkU3RyaW5nLmxlbmd0aF1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uc3RyYWluZWRTdHJpbmdcbn1cblxuY29uc3Qgc3RyaW5nVHlwZSA9IChzY2hlbWEsIHsgc2FtcGxlIH0gPSB7fSkgPT4ge1xuICBjb25zdCB7IGNvbnRlbnRFbmNvZGluZywgY29udGVudE1lZGlhVHlwZSwgY29udGVudFNjaGVtYSB9ID0gc2NoZW1hXG4gIGNvbnN0IHsgcGF0dGVybiwgZm9ybWF0IH0gPSBzY2hlbWFcbiAgY29uc3QgZW5jb2RlID0gZW5jb2RlckFQSShjb250ZW50RW5jb2RpbmcpIHx8IGlkZW50aXR5XG4gIGxldCBnZW5lcmF0ZWRTdHJpbmdcblxuICBpZiAodHlwZW9mIHBhdHRlcm4gPT09IFwic3RyaW5nXCIpIHtcbiAgICBnZW5lcmF0ZWRTdHJpbmcgPSBhcHBseVN0cmluZ0NvbnN0cmFpbnRzKHJhbmRleHAocGF0dGVybiksIHNjaGVtYSlcbiAgfSBlbHNlIGlmICh0eXBlb2YgZm9ybWF0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgZ2VuZXJhdGVkU3RyaW5nID0gZ2VuZXJhdGVGb3JtYXQoc2NoZW1hKVxuICB9IGVsc2UgaWYgKFxuICAgIGlzSlNPTlNjaGVtYShjb250ZW50U2NoZW1hKSAmJlxuICAgIHR5cGVvZiBjb250ZW50TWVkaWFUeXBlID09PSBcInN0cmluZ1wiICYmXG4gICAgdHlwZW9mIHNhbXBsZSAhPT0gXCJ1bmRlZmluZWRcIlxuICApIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShzYW1wbGUpIHx8IHR5cGVvZiBzYW1wbGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGdlbmVyYXRlZFN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHNhbXBsZSlcbiAgICB9IGVsc2Uge1xuICAgICAgZ2VuZXJhdGVkU3RyaW5nID0gYXBwbHlTdHJpbmdDb25zdHJhaW50cyhTdHJpbmcoc2FtcGxlKSwgc2NoZW1hKVxuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgY29udGVudE1lZGlhVHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIGdlbmVyYXRlZFN0cmluZyA9IGdlbmVyYXRlTWVkaWFUeXBlKHNjaGVtYSlcbiAgfSBlbHNlIHtcbiAgICBnZW5lcmF0ZWRTdHJpbmcgPSBhcHBseVN0cmluZ0NvbnN0cmFpbnRzKHJhbmRvbVN0cmluZygpLCBzY2hlbWEpXG4gIH1cblxuICByZXR1cm4gZW5jb2RlKGdlbmVyYXRlZFN0cmluZylcbn1cblxuZXhwb3J0IGRlZmF1bHQgc3RyaW5nVHlwZVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgbnVtYmVyIGFzIHJhbmRvbU51bWJlciB9IGZyb20gXCIuLi9jb3JlL3JhbmRvbVwiXG5pbXBvcnQgZm9ybWF0QVBJIGZyb20gXCIuLi9hcGkvZm9ybWF0QVBJXCJcblxuY29uc3QgZ2VuZXJhdGVGb3JtYXQgPSAoc2NoZW1hKSA9PiB7XG4gIGNvbnN0IHsgZm9ybWF0IH0gPSBzY2hlbWFcblxuICBjb25zdCBmb3JtYXRHZW5lcmF0b3IgPSBmb3JtYXRBUEkoZm9ybWF0KVxuICBpZiAodHlwZW9mIGZvcm1hdEdlbmVyYXRvciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIGZvcm1hdEdlbmVyYXRvcihzY2hlbWEpXG4gIH1cblxuICByZXR1cm4gcmFuZG9tTnVtYmVyKClcbn1cblxuZXhwb3J0IGNvbnN0IGFwcGx5TnVtYmVyQ29uc3RyYWludHMgPSAobnVtYmVyLCBjb25zdHJhaW50cyA9IHt9KSA9PiB7XG4gIGNvbnN0IHsgbWluaW11bSwgbWF4aW11bSwgZXhjbHVzaXZlTWluaW11bSwgZXhjbHVzaXZlTWF4aW11bSB9ID0gY29uc3RyYWludHNcbiAgY29uc3QgeyBtdWx0aXBsZU9mIH0gPSBjb25zdHJhaW50c1xuICBjb25zdCBlcHNpbG9uID0gTnVtYmVyLmlzSW50ZWdlcihudW1iZXIpID8gMSA6IE51bWJlci5FUFNJTE9OXG4gIGxldCBtaW5WYWx1ZSA9IHR5cGVvZiBtaW5pbXVtID09PSBcIm51bWJlclwiID8gbWluaW11bSA6IG51bGxcbiAgbGV0IG1heFZhbHVlID0gdHlwZW9mIG1heGltdW0gPT09IFwibnVtYmVyXCIgPyBtYXhpbXVtIDogbnVsbFxuICBsZXQgY29uc3RyYWluZWROdW1iZXIgPSBudW1iZXJcblxuICBpZiAodHlwZW9mIGV4Y2x1c2l2ZU1pbmltdW0gPT09IFwibnVtYmVyXCIpIHtcbiAgICBtaW5WYWx1ZSA9XG4gICAgICBtaW5WYWx1ZSAhPT0gbnVsbFxuICAgICAgICA/IE1hdGgubWF4KG1pblZhbHVlLCBleGNsdXNpdmVNaW5pbXVtICsgZXBzaWxvbilcbiAgICAgICAgOiBleGNsdXNpdmVNaW5pbXVtICsgZXBzaWxvblxuICB9XG4gIGlmICh0eXBlb2YgZXhjbHVzaXZlTWF4aW11bSA9PT0gXCJudW1iZXJcIikge1xuICAgIG1heFZhbHVlID1cbiAgICAgIG1heFZhbHVlICE9PSBudWxsXG4gICAgICAgID8gTWF0aC5taW4obWF4VmFsdWUsIGV4Y2x1c2l2ZU1heGltdW0gLSBlcHNpbG9uKVxuICAgICAgICA6IGV4Y2x1c2l2ZU1heGltdW0gLSBlcHNpbG9uXG4gIH1cbiAgY29uc3RyYWluZWROdW1iZXIgPVxuICAgIChtaW5WYWx1ZSA+IG1heFZhbHVlICYmIG51bWJlcikgfHwgbWluVmFsdWUgfHwgbWF4VmFsdWUgfHwgY29uc3RyYWluZWROdW1iZXJcblxuICBpZiAodHlwZW9mIG11bHRpcGxlT2YgPT09IFwibnVtYmVyXCIgJiYgbXVsdGlwbGVPZiA+IDApIHtcbiAgICBjb25zdCByZW1haW5kZXIgPSBjb25zdHJhaW5lZE51bWJlciAlIG11bHRpcGxlT2ZcbiAgICBjb25zdHJhaW5lZE51bWJlciA9XG4gICAgICByZW1haW5kZXIgPT09IDBcbiAgICAgICAgPyBjb25zdHJhaW5lZE51bWJlclxuICAgICAgICA6IGNvbnN0cmFpbmVkTnVtYmVyICsgbXVsdGlwbGVPZiAtIHJlbWFpbmRlclxuICB9XG5cbiAgcmV0dXJuIGNvbnN0cmFpbmVkTnVtYmVyXG59XG5cbmNvbnN0IG51bWJlclR5cGUgPSAoc2NoZW1hKSA9PiB7XG4gIGNvbnN0IHsgZm9ybWF0IH0gPSBzY2hlbWFcbiAgbGV0IGdlbmVyYXRlZE51bWJlclxuXG4gIGlmICh0eXBlb2YgZm9ybWF0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgZ2VuZXJhdGVkTnVtYmVyID0gZ2VuZXJhdGVGb3JtYXQoc2NoZW1hKVxuICB9IGVsc2Uge1xuICAgIGdlbmVyYXRlZE51bWJlciA9IHJhbmRvbU51bWJlcigpXG4gIH1cblxuICByZXR1cm4gYXBwbHlOdW1iZXJDb25zdHJhaW50cyhnZW5lcmF0ZWROdW1iZXIsIHNjaGVtYSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgbnVtYmVyVHlwZVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgaW50ZWdlciBhcyByYW5kb21JbnRlZ2VyIH0gZnJvbSBcIi4uL2NvcmUvcmFuZG9tXCJcbmltcG9ydCBmb3JtYXRBUEkgZnJvbSBcIi4uL2FwaS9mb3JtYXRBUElcIlxuaW1wb3J0IGludDMyR2VuZXJhdG9yIGZyb20gXCIuLi9nZW5lcmF0b3JzL2ludDMyXCJcbmltcG9ydCBpbnQ2NEdlbmVyYXRvciBmcm9tIFwiLi4vZ2VuZXJhdG9ycy9pbnQ2NFwiXG5pbXBvcnQgeyBhcHBseU51bWJlckNvbnN0cmFpbnRzIH0gZnJvbSBcIi4vbnVtYmVyXCJcblxuY29uc3QgZ2VuZXJhdGVGb3JtYXQgPSAoc2NoZW1hKSA9PiB7XG4gIGNvbnN0IHsgZm9ybWF0IH0gPSBzY2hlbWFcblxuICBjb25zdCBmb3JtYXRHZW5lcmF0b3IgPSBmb3JtYXRBUEkoZm9ybWF0KVxuICBpZiAodHlwZW9mIGZvcm1hdEdlbmVyYXRvciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIGZvcm1hdEdlbmVyYXRvcihzY2hlbWEpXG4gIH1cblxuICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgIGNhc2UgXCJpbnQzMlwiOiB7XG4gICAgICByZXR1cm4gaW50MzJHZW5lcmF0b3IoKVxuICAgIH1cbiAgICBjYXNlIFwiaW50NjRcIjoge1xuICAgICAgcmV0dXJuIGludDY0R2VuZXJhdG9yKClcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmFuZG9tSW50ZWdlcigpXG59XG5cbmNvbnN0IGludGVnZXJUeXBlID0gKHNjaGVtYSkgPT4ge1xuICBjb25zdCB7IGZvcm1hdCB9ID0gc2NoZW1hXG4gIGxldCBnZW5lcmF0ZWRJbnRlZ2VyXG5cbiAgaWYgKHR5cGVvZiBmb3JtYXQgPT09IFwic3RyaW5nXCIpIHtcbiAgICBnZW5lcmF0ZWRJbnRlZ2VyID0gZ2VuZXJhdGVGb3JtYXQoc2NoZW1hKVxuICB9IGVsc2Uge1xuICAgIGdlbmVyYXRlZEludGVnZXIgPSByYW5kb21JbnRlZ2VyKClcbiAgfVxuXG4gIHJldHVybiBhcHBseU51bWJlckNvbnN0cmFpbnRzKGdlbmVyYXRlZEludGVnZXIsIHNjaGVtYSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgaW50ZWdlclR5cGVcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cblxuY29uc3QgYm9vbGVhblR5cGUgPSAoc2NoZW1hKSA9PiB7XG4gIHJldHVybiB0eXBlb2Ygc2NoZW1hLmRlZmF1bHQgPT09IFwiYm9vbGVhblwiID8gc2NoZW1hLmRlZmF1bHQgOiB0cnVlXG59XG5cbmV4cG9ydCBkZWZhdWx0IGJvb2xlYW5UeXBlXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgYXJyYXlUeXBlIGZyb20gXCIuL2FycmF5XCJcbmltcG9ydCBvYmplY3RUeXBlIGZyb20gXCIuL29iamVjdFwiXG5pbXBvcnQgc3RyaW5nVHlwZSBmcm9tIFwiLi9zdHJpbmdcIlxuaW1wb3J0IG51bWJlclR5cGUgZnJvbSBcIi4vbnVtYmVyXCJcbmltcG9ydCBpbnRlZ2VyVHlwZSBmcm9tIFwiLi9pbnRlZ2VyXCJcbmltcG9ydCBib29sZWFuVHlwZSBmcm9tIFwiLi9ib29sZWFuXCJcbmltcG9ydCBudWxsVHlwZSBmcm9tIFwiLi9udWxsXCJcblxuY29uc3QgdHlwZU1hcCA9IHtcbiAgYXJyYXk6IGFycmF5VHlwZSxcbiAgb2JqZWN0OiBvYmplY3RUeXBlLFxuICBzdHJpbmc6IHN0cmluZ1R5cGUsXG4gIG51bWJlcjogbnVtYmVyVHlwZSxcbiAgaW50ZWdlcjogaW50ZWdlclR5cGUsXG4gIGJvb2xlYW46IGJvb2xlYW5UeXBlLFxuICBudWxsOiBudWxsVHlwZSxcbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IFByb3h5KHR5cGVNYXAsIHtcbiAgZ2V0KHRhcmdldCwgcHJvcCkge1xuICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gXCJzdHJpbmdcIiAmJiBPYmplY3QuaGFzT3duKHRhcmdldCwgcHJvcCkpIHtcbiAgICAgIHJldHVybiB0YXJnZXRbcHJvcF1cbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4gYFVua25vd24gVHlwZTogJHtwcm9wfWBcbiAgfSxcbn0pXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5cbmNvbnN0IG51bGxUeXBlID0gKCkgPT4ge1xuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgZGVmYXVsdCBudWxsVHlwZVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuZXhwb3J0IGNvbnN0IFNDQUxBUl9UWVBFUyA9IFtcIm51bWJlclwiLCBcImludGVnZXJcIiwgXCJzdHJpbmdcIiwgXCJib29sZWFuXCIsIFwibnVsbFwiXVxuXG5leHBvcnQgY29uc3QgQUxMX1RZUEVTID0gW1wiYXJyYXlcIiwgXCJvYmplY3RcIiwgLi4uU0NBTEFSX1RZUEVTXVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgaXNKU09OU2NoZW1hT2JqZWN0IH0gZnJvbSBcIi4vcHJlZGljYXRlc1wiXG5cbi8qKlxuICogUHJlY2VkZW5jZSBvZiBrZXl3b3JkcyB0aGF0IHByb3ZpZGVzIGF1dGhvciBkZWZpbmVkIHZhbHVlcyAodG9wIG9mIHRoZSBsaXN0ID0gaGlnaGVyIHByaW9yaXR5KVxuICpcbiAqICAjIyMgZXhhbXBsZXNcbiAqICBBcnJheSBjb250YWluaW5nIGV4YW1wbGUgdmFsdWVzIGZvciB0aGUgaXRlbSBkZWZpbmVkIGJ5IHRoZSBzY2hlbWEuXG4gKiAgTm90IGd1YXJhbnRlZWQgdG8gYmUgdmFsaWQgb3IgaW52YWxpZCBhZ2FpbnN0IHRoZSBzY2hlbWFcbiAqXG4gKiAgIyMjIGRlZmF1bHRcbiAqICBEZWZhdWx0IHZhbHVlIGZvciBhbiBpdGVtIGRlZmluZWQgYnkgdGhlIHNjaGVtYS5cbiAqICBJcyBleHBlY3RlZCB0byBiZSBhIHZhbGlkIGluc3RhbmNlIG9mIHRoZSBzY2hlbWEuXG4gKlxuICogICMjIyBleGFtcGxlXG4gKiAgRGVwcmVjYXRlZC4gUGFydCBvZiBPcGVuQVBJIDMuMS4wIFNjaGVtYSBPYmplY3QgZGlhbGVjdC5cbiAqICBSZXByZXNlbnRzIHNpbmdsZSBleGFtcGxlLiBFcXVpdmFsZW50IG9mIGBleGFtcGxlc2Aga2V5d29yZHNcbiAqICB3aXRoIHNpbmdsZSBpdGVtLlxuICovXG5cbmV4cG9ydCBjb25zdCBoYXNFeGFtcGxlID0gKHNjaGVtYSkgPT4ge1xuICBpZiAoIWlzSlNPTlNjaGVtYU9iamVjdChzY2hlbWEpKSByZXR1cm4gZmFsc2VcblxuICBjb25zdCB7IGV4YW1wbGVzLCBleGFtcGxlLCBkZWZhdWx0OiBkZWZhdWx0VmFsIH0gPSBzY2hlbWFcblxuICBpZiAoQXJyYXkuaXNBcnJheShleGFtcGxlcykgJiYgZXhhbXBsZXMubGVuZ3RoID49IDEpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKHR5cGVvZiBkZWZhdWx0VmFsICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHJldHVybiB0eXBlb2YgZXhhbXBsZSAhPT0gXCJ1bmRlZmluZWRcIlxufVxuXG5leHBvcnQgY29uc3QgZXh0cmFjdEV4YW1wbGUgPSAoc2NoZW1hKSA9PiB7XG4gIGlmICghaXNKU09OU2NoZW1hT2JqZWN0KHNjaGVtYSkpIHJldHVybiBudWxsXG5cbiAgY29uc3QgeyBleGFtcGxlcywgZXhhbXBsZSwgZGVmYXVsdDogZGVmYXVsdFZhbCB9ID0gc2NoZW1hXG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoZXhhbXBsZXMpICYmIGV4YW1wbGVzLmxlbmd0aCA+PSAxKSB7XG4gICAgcmV0dXJuIGV4YW1wbGVzLmF0KDApXG4gIH1cblxuICBpZiAodHlwZW9mIGRlZmF1bHRWYWwgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICByZXR1cm4gZGVmYXVsdFZhbFxuICB9XG5cbiAgaWYgKHR5cGVvZiBleGFtcGxlICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIGV4YW1wbGVcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWRcbn1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IEFMTF9UWVBFUyB9IGZyb20gXCIuL2NvbnN0YW50c1wiXG5pbXBvcnQgeyBpc0pTT05TY2hlbWFPYmplY3QgfSBmcm9tIFwiLi9wcmVkaWNhdGVzXCJcbmltcG9ydCB7IHBpY2sgYXMgcmFuZG9tUGljayB9IGZyb20gXCIuL3JhbmRvbVwiXG5pbXBvcnQgeyBoYXNFeGFtcGxlLCBleHRyYWN0RXhhbXBsZSB9IGZyb20gXCIuL2V4YW1wbGVcIlxuXG5jb25zdCBpbmZlcnJpbmdLZXl3b3JkcyA9IHtcbiAgYXJyYXk6IFtcbiAgICBcIml0ZW1zXCIsXG4gICAgXCJwcmVmaXhJdGVtc1wiLFxuICAgIFwiY29udGFpbnNcIixcbiAgICBcIm1heENvbnRhaW5zXCIsXG4gICAgXCJtaW5Db250YWluc1wiLFxuICAgIFwibWF4SXRlbXNcIixcbiAgICBcIm1pbkl0ZW1zXCIsXG4gICAgXCJ1bmlxdWVJdGVtc1wiLFxuICAgIFwidW5ldmFsdWF0ZWRJdGVtc1wiLFxuICBdLFxuICBvYmplY3Q6IFtcbiAgICBcInByb3BlcnRpZXNcIixcbiAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCIsXG4gICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiLFxuICAgIFwicHJvcGVydHlOYW1lc1wiLFxuICAgIFwibWluUHJvcGVydGllc1wiLFxuICAgIFwibWF4UHJvcGVydGllc1wiLFxuICAgIFwicmVxdWlyZWRcIixcbiAgICBcImRlcGVuZGVudFNjaGVtYXNcIixcbiAgICBcImRlcGVuZGVudFJlcXVpcmVkXCIsXG4gICAgXCJ1bmV2YWx1YXRlZFByb3BlcnRpZXNcIixcbiAgXSxcbiAgc3RyaW5nOiBbXG4gICAgXCJwYXR0ZXJuXCIsXG4gICAgXCJmb3JtYXRcIixcbiAgICBcIm1pbkxlbmd0aFwiLFxuICAgIFwibWF4TGVuZ3RoXCIsXG4gICAgXCJjb250ZW50RW5jb2RpbmdcIixcbiAgICBcImNvbnRlbnRNZWRpYVR5cGVcIixcbiAgICBcImNvbnRlbnRTY2hlbWFcIixcbiAgXSxcbiAgaW50ZWdlcjogW1xuICAgIFwibWluaW11bVwiLFxuICAgIFwibWF4aW11bVwiLFxuICAgIFwiZXhjbHVzaXZlTWluaW11bVwiLFxuICAgIFwiZXhjbHVzaXZlTWF4aW11bVwiLFxuICAgIFwibXVsdGlwbGVPZlwiLFxuICBdLFxufVxuaW5mZXJyaW5nS2V5d29yZHMubnVtYmVyID0gaW5mZXJyaW5nS2V5d29yZHMuaW50ZWdlclxuXG5jb25zdCBmYWxsYmFja1R5cGUgPSBcInN0cmluZ1wiXG5cbmNvbnN0IGluZmVyVHlwZUZyb21WYWx1ZSA9ICh2YWx1ZSkgPT4ge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gbnVsbFxuICBpZiAodmFsdWUgPT09IG51bGwpIHJldHVybiBcIm51bGxcIlxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJldHVybiBcImFycmF5XCJcbiAgaWYgKE51bWJlci5pc0ludGVnZXIodmFsdWUpKSByZXR1cm4gXCJpbnRlZ2VyXCJcblxuICByZXR1cm4gdHlwZW9mIHZhbHVlXG59XG5cbmV4cG9ydCBjb25zdCBmb2xkVHlwZSA9ICh0eXBlKSA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KHR5cGUpICYmIHR5cGUubGVuZ3RoID49IDEpIHtcbiAgICBpZiAodHlwZS5pbmNsdWRlcyhcImFycmF5XCIpKSB7XG4gICAgICByZXR1cm4gXCJhcnJheVwiXG4gICAgfSBlbHNlIGlmICh0eXBlLmluY2x1ZGVzKFwib2JqZWN0XCIpKSB7XG4gICAgICByZXR1cm4gXCJvYmplY3RcIlxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub3ROdWxsVHlwZXMgPSB0eXBlLmZpbHRlcigodCkgPT4gdCAhPT0gXCJudWxsXCIpXG4gICAgICBjb25zdCBwaWNrZWRUeXBlID0gcmFuZG9tUGljayhcbiAgICAgICAgbm90TnVsbFR5cGVzLmxlbmd0aCA+IDAgPyBub3ROdWxsVHlwZXMgOiB0eXBlXG4gICAgICApXG4gICAgICBpZiAoQUxMX1RZUEVTLmluY2x1ZGVzKHBpY2tlZFR5cGUpKSB7XG4gICAgICAgIHJldHVybiBwaWNrZWRUeXBlXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKEFMTF9UWVBFUy5pbmNsdWRlcyh0eXBlKSkge1xuICAgIHJldHVybiB0eXBlXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgY29uc3QgaW5mZXJUeXBlID0gKHNjaGVtYSwgcHJvY2Vzc2VkU2NoZW1hcyA9IG5ldyBXZWFrU2V0KCkpID0+IHtcbiAgaWYgKCFpc0pTT05TY2hlbWFPYmplY3Qoc2NoZW1hKSkgcmV0dXJuIGZhbGxiYWNrVHlwZVxuICBpZiAocHJvY2Vzc2VkU2NoZW1hcy5oYXMoc2NoZW1hKSkgcmV0dXJuIGZhbGxiYWNrVHlwZVxuXG4gIHByb2Nlc3NlZFNjaGVtYXMuYWRkKHNjaGVtYSlcblxuICBsZXQgeyB0eXBlLCBjb25zdDogY29uc3RhbnQgfSA9IHNjaGVtYVxuICB0eXBlID0gZm9sZFR5cGUodHlwZSlcblxuICAvLyBpbmZlcnJpbmcgdHlwZSBmcm9tIGluZmVycmluZyBrZXl3b3Jkc1xuICBpZiAodHlwZW9mIHR5cGUgIT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCBpbmZlcnJpbmdUeXBlcyA9IE9iamVjdC5rZXlzKGluZmVycmluZ0tleXdvcmRzKVxuXG4gICAgaW50ZXJydXB0OiBmb3IgKGxldCBpID0gMDsgaSA8IGluZmVycmluZ1R5cGVzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBjb25zdCBpbmZlcnJpbmdUeXBlID0gaW5mZXJyaW5nVHlwZXNbaV1cbiAgICAgIGNvbnN0IGluZmVycmluZ1R5cGVLZXl3b3JkcyA9IGluZmVycmluZ0tleXdvcmRzW2luZmVycmluZ1R5cGVdXG5cbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgaW5mZXJyaW5nVHlwZUtleXdvcmRzLmxlbmd0aDsgaiArPSAxKSB7XG4gICAgICAgIGNvbnN0IGluZmVycmluZ0tleXdvcmQgPSBpbmZlcnJpbmdUeXBlS2V5d29yZHNbal1cbiAgICAgICAgaWYgKE9iamVjdC5oYXNPd24oc2NoZW1hLCBpbmZlcnJpbmdLZXl3b3JkKSkge1xuICAgICAgICAgIHR5cGUgPSBpbmZlcnJpbmdUeXBlXG4gICAgICAgICAgYnJlYWsgaW50ZXJydXB0XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBpbmZlcnJpbmcgdHlwZSBmcm9tIGNvbnN0IGtleXdvcmRcbiAgaWYgKHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiICYmIHR5cGVvZiBjb25zdGFudCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGNvbnN0IGNvbnN0VHlwZSA9IGluZmVyVHlwZUZyb21WYWx1ZShjb25zdGFudClcbiAgICB0eXBlID0gdHlwZW9mIGNvbnN0VHlwZSA9PT0gXCJzdHJpbmdcIiA/IGNvbnN0VHlwZSA6IHR5cGVcbiAgfVxuXG4gIC8vIGluZmVycmluZyB0eXBlIGZyb20gY29tYmluaW5nIHNjaGVtYXNcbiAgaWYgKHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgY29tYmluZVR5cGVzID0gKGtleXdvcmQpID0+IHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYVtrZXl3b3JkXSkpIHtcbiAgICAgICAgY29uc3QgY29tYmluZWRUeXBlcyA9IHNjaGVtYVtrZXl3b3JkXS5tYXAoKHN1YlNjaGVtYSkgPT5cbiAgICAgICAgICBpbmZlclR5cGUoc3ViU2NoZW1hLCBwcm9jZXNzZWRTY2hlbWFzKVxuICAgICAgICApXG4gICAgICAgIHJldHVybiBmb2xkVHlwZShjb21iaW5lZFR5cGVzKVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCBhbGxPZiA9IGNvbWJpbmVUeXBlcyhcImFsbE9mXCIpXG4gICAgY29uc3QgYW55T2YgPSBjb21iaW5lVHlwZXMoXCJhbnlPZlwiKVxuICAgIGNvbnN0IG9uZU9mID0gY29tYmluZVR5cGVzKFwib25lT2ZcIilcbiAgICBjb25zdCBub3QgPSBzY2hlbWEubm90ID8gaW5mZXJUeXBlKHNjaGVtYS5ub3QsIHByb2Nlc3NlZFNjaGVtYXMpIDogbnVsbFxuXG4gICAgaWYgKGFsbE9mIHx8IGFueU9mIHx8IG9uZU9mIHx8IG5vdCkge1xuICAgICAgdHlwZSA9IGZvbGRUeXBlKFthbGxPZiwgYW55T2YsIG9uZU9mLCBub3RdLmZpbHRlcihCb29sZWFuKSlcbiAgICB9XG4gIH1cblxuICAvLyBpbmZlcnJpbmcgdHlwZSBmcm9tIGV4YW1wbGVcbiAgaWYgKHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiICYmIGhhc0V4YW1wbGUoc2NoZW1hKSkge1xuICAgIGNvbnN0IGV4YW1wbGUgPSBleHRyYWN0RXhhbXBsZShzY2hlbWEpXG4gICAgY29uc3QgZXhhbXBsZVR5cGUgPSBpbmZlclR5cGVGcm9tVmFsdWUoZXhhbXBsZSlcbiAgICB0eXBlID0gdHlwZW9mIGV4YW1wbGVUeXBlID09PSBcInN0cmluZ1wiID8gZXhhbXBsZVR5cGUgOiB0eXBlXG4gIH1cblxuICBwcm9jZXNzZWRTY2hlbWFzLmRlbGV0ZShzY2hlbWEpXG5cbiAgcmV0dXJuIHR5cGUgfHwgZmFsbGJhY2tUeXBlXG59XG5cbmV4cG9ydCBjb25zdCBnZXRUeXBlID0gKHNjaGVtYSkgPT4ge1xuICByZXR1cm4gaW5mZXJUeXBlKHNjaGVtYSlcbn1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IGlzQm9vbGVhbkpTT05TY2hlbWEsIGlzSlNPTlNjaGVtYU9iamVjdCB9IGZyb20gXCIuL3ByZWRpY2F0ZXNcIlxuXG5leHBvcnQgY29uc3QgZnJvbUpTT05Cb29sZWFuU2NoZW1hID0gKHNjaGVtYSkgPT4ge1xuICBpZiAoc2NoZW1hID09PSBmYWxzZSkge1xuICAgIHJldHVybiB7IG5vdDoge30gfVxuICB9XG5cbiAgcmV0dXJuIHt9XG59XG5cbmV4cG9ydCBjb25zdCB0eXBlQ2FzdCA9IChzY2hlbWEpID0+IHtcbiAgaWYgKGlzQm9vbGVhbkpTT05TY2hlbWEoc2NoZW1hKSkge1xuICAgIHJldHVybiBmcm9tSlNPTkJvb2xlYW5TY2hlbWEoc2NoZW1hKVxuICB9XG4gIGlmICghaXNKU09OU2NoZW1hT2JqZWN0KHNjaGVtYSkpIHtcbiAgICByZXR1cm4ge31cbiAgfVxuXG4gIHJldHVybiBzY2hlbWFcbn1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IG5vcm1hbGl6ZUFycmF5IGFzIGVuc3VyZUFycmF5IH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuaW1wb3J0IHsgaXNCb29sZWFuSlNPTlNjaGVtYSwgaXNKU09OU2NoZW1hIH0gZnJvbSBcIi4vcHJlZGljYXRlc1wiXG5cbmNvbnN0IG1lcmdlID0gKHRhcmdldCwgc291cmNlLCBjb25maWcgPSB7fSkgPT4ge1xuICBpZiAoaXNCb29sZWFuSlNPTlNjaGVtYSh0YXJnZXQpICYmIHRhcmdldCA9PT0gdHJ1ZSkgcmV0dXJuIHRydWVcbiAgaWYgKGlzQm9vbGVhbkpTT05TY2hlbWEodGFyZ2V0KSAmJiB0YXJnZXQgPT09IGZhbHNlKSByZXR1cm4gZmFsc2VcbiAgaWYgKGlzQm9vbGVhbkpTT05TY2hlbWEoc291cmNlKSAmJiBzb3VyY2UgPT09IHRydWUpIHJldHVybiB0cnVlXG4gIGlmIChpc0Jvb2xlYW5KU09OU2NoZW1hKHNvdXJjZSkgJiYgc291cmNlID09PSBmYWxzZSkgcmV0dXJuIGZhbHNlXG5cbiAgaWYgKCFpc0pTT05TY2hlbWEodGFyZ2V0KSkgcmV0dXJuIHNvdXJjZVxuICBpZiAoIWlzSlNPTlNjaGVtYShzb3VyY2UpKSByZXR1cm4gdGFyZ2V0XG5cbiAgLyoqXG4gICAqIE1lcmdpbmcgcHJvcGVydGllcyBmcm9tIHRoZSBzb3VyY2Ugb2JqZWN0IGludG8gdGhlIHRhcmdldCBvYmplY3RcbiAgICogb25seSBpZiB0aGV5IGRvIG5vdCBhbHJlYWR5IGV4aXN0IGluIHRoZSB0YXJnZXQgb2JqZWN0LlxuICAgKi9cbiAgY29uc3QgbWVyZ2VkID0geyAuLi5zb3VyY2UsIC4uLnRhcmdldCB9XG5cbiAgLy8gbWVyZ2luZyB0aGUgdHlwZSBrZXl3b3JkXG4gIGlmIChzb3VyY2UudHlwZSAmJiB0YXJnZXQudHlwZSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZS50eXBlKSAmJiB0eXBlb2Ygc291cmNlLnR5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGNvbnN0IG1lcmdlZFR5cGUgPSBlbnN1cmVBcnJheShzb3VyY2UudHlwZSkuY29uY2F0KHRhcmdldC50eXBlKVxuICAgICAgbWVyZ2VkLnR5cGUgPSBBcnJheS5mcm9tKG5ldyBTZXQobWVyZ2VkVHlwZSkpXG4gICAgfVxuICB9XG5cbiAgLy8gbWVyZ2luZyByZXF1aXJlZCBrZXl3b3JkXG4gIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZS5yZXF1aXJlZCkgJiYgQXJyYXkuaXNBcnJheSh0YXJnZXQucmVxdWlyZWQpKSB7XG4gICAgbWVyZ2VkLnJlcXVpcmVkID0gWy4uLm5ldyBTZXQoWy4uLnRhcmdldC5yZXF1aXJlZCwgLi4uc291cmNlLnJlcXVpcmVkXSldXG4gIH1cblxuICAvLyBtZXJnaW5nIHByb3BlcnRpZXMga2V5d29yZFxuICBpZiAoc291cmNlLnByb3BlcnRpZXMgJiYgdGFyZ2V0LnByb3BlcnRpZXMpIHtcbiAgICBjb25zdCBhbGxQcm9wZXJ0eU5hbWVzID0gbmV3IFNldChbXG4gICAgICAuLi5PYmplY3Qua2V5cyhzb3VyY2UucHJvcGVydGllcyksXG4gICAgICAuLi5PYmplY3Qua2V5cyh0YXJnZXQucHJvcGVydGllcyksXG4gICAgXSlcblxuICAgIG1lcmdlZC5wcm9wZXJ0aWVzID0ge31cbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgYWxsUHJvcGVydHlOYW1lcykge1xuICAgICAgY29uc3Qgc291cmNlUHJvcGVydHkgPSBzb3VyY2UucHJvcGVydGllc1tuYW1lXSB8fCB7fVxuICAgICAgY29uc3QgdGFyZ2V0UHJvcGVydHkgPSB0YXJnZXQucHJvcGVydGllc1tuYW1lXSB8fCB7fVxuXG4gICAgICBpZiAoXG4gICAgICAgIChzb3VyY2VQcm9wZXJ0eS5yZWFkT25seSAmJiAhY29uZmlnLmluY2x1ZGVSZWFkT25seSkgfHxcbiAgICAgICAgKHNvdXJjZVByb3BlcnR5LndyaXRlT25seSAmJiAhY29uZmlnLmluY2x1ZGVXcml0ZU9ubHkpXG4gICAgICApIHtcbiAgICAgICAgbWVyZ2VkLnJlcXVpcmVkID0gKG1lcmdlZC5yZXF1aXJlZCB8fCBbXSkuZmlsdGVyKChwKSA9PiBwICE9PSBuYW1lKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVyZ2VkLnByb3BlcnRpZXNbbmFtZV0gPSBtZXJnZSh0YXJnZXRQcm9wZXJ0eSwgc291cmNlUHJvcGVydHksIGNvbmZpZylcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBtZXJnaW5nIGl0ZW1zIGtleXdvcmRcbiAgaWYgKGlzSlNPTlNjaGVtYShzb3VyY2UuaXRlbXMpICYmIGlzSlNPTlNjaGVtYSh0YXJnZXQuaXRlbXMpKSB7XG4gICAgbWVyZ2VkLml0ZW1zID0gbWVyZ2UodGFyZ2V0Lml0ZW1zLCBzb3VyY2UuaXRlbXMsIGNvbmZpZylcbiAgfVxuXG4gIC8vIG1lcmdpbmcgY29udGFpbnMga2V5d29yZFxuICBpZiAoaXNKU09OU2NoZW1hKHNvdXJjZS5jb250YWlucykgJiYgaXNKU09OU2NoZW1hKHRhcmdldC5jb250YWlucykpIHtcbiAgICBtZXJnZWQuY29udGFpbnMgPSBtZXJnZSh0YXJnZXQuY29udGFpbnMsIHNvdXJjZS5jb250YWlucywgY29uZmlnKVxuICB9XG5cbiAgLy8gbWVyZ2luZyBjb250ZW50U2NoZW1hIGtleXdvcmRcbiAgaWYgKFxuICAgIGlzSlNPTlNjaGVtYShzb3VyY2UuY29udGVudFNjaGVtYSkgJiZcbiAgICBpc0pTT05TY2hlbWEodGFyZ2V0LmNvbnRlbnRTY2hlbWEpXG4gICkge1xuICAgIG1lcmdlZC5jb250ZW50U2NoZW1hID0gbWVyZ2UoXG4gICAgICB0YXJnZXQuY29udGVudFNjaGVtYSxcbiAgICAgIHNvdXJjZS5jb250ZW50U2NoZW1hLFxuICAgICAgY29uZmlnXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG1lcmdlZFxufVxuXG5leHBvcnQgZGVmYXVsdCBtZXJnZVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFhNTCBmcm9tIFwieG1sXCJcbmltcG9ydCBpc0VtcHR5IGZyb20gXCJsb2Rhc2gvaXNFbXB0eVwiXG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tIFwibG9kYXNoL2lzUGxhaW5PYmplY3RcIlxuXG5pbXBvcnQgeyBvYmplY3RpZnksIG5vcm1hbGl6ZUFycmF5IH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuaW1wb3J0IG1lbW9pemVOIGZyb20gXCJjb3JlL3V0aWxzL21lbW9pemVOXCJcbmltcG9ydCB0eXBlTWFwIGZyb20gXCIuL3R5cGVzL2luZGV4XCJcbmltcG9ydCB7IGdldFR5cGUgfSBmcm9tIFwiLi9jb3JlL3R5cGVcIlxuaW1wb3J0IHsgdHlwZUNhc3QgfSBmcm9tIFwiLi9jb3JlL3V0aWxzXCJcbmltcG9ydCB7IGhhc0V4YW1wbGUsIGV4dHJhY3RFeGFtcGxlIH0gZnJvbSBcIi4vY29yZS9leGFtcGxlXCJcbmltcG9ydCB7IHBpY2sgYXMgcmFuZG9tUGljayB9IGZyb20gXCIuL2NvcmUvcmFuZG9tXCJcbmltcG9ydCBtZXJnZSBmcm9tIFwiLi9jb3JlL21lcmdlXCJcbmltcG9ydCB7IGlzQm9vbGVhbkpTT05TY2hlbWEsIGlzSlNPTlNjaGVtYU9iamVjdCB9IGZyb20gXCIuL2NvcmUvcHJlZGljYXRlc1wiXG5cbmV4cG9ydCBjb25zdCBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyA9IChcbiAgc2NoZW1hLFxuICBjb25maWcgPSB7fSxcbiAgZXhhbXBsZU92ZXJyaWRlID0gdW5kZWZpbmVkLFxuICByZXNwZWN0WE1MID0gZmFsc2VcbikgPT4ge1xuICAvLyB0aGVyZSBpcyBub3RoaW5nIHRvIGdlbmVyYXRlIHNjaGVtYSBmcm9tXG4gIGlmIChzY2hlbWEgPT0gbnVsbCAmJiBleGFtcGxlT3ZlcnJpZGUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHVuZGVmaW5lZFxuXG4gIGlmICh0eXBlb2Ygc2NoZW1hPy50b0pTID09PSBcImZ1bmN0aW9uXCIpIHNjaGVtYSA9IHNjaGVtYS50b0pTKClcbiAgc2NoZW1hID0gdHlwZUNhc3Qoc2NoZW1hKVxuXG4gIGxldCB1c2VQbGFpblZhbHVlID0gZXhhbXBsZU92ZXJyaWRlICE9PSB1bmRlZmluZWQgfHwgaGFzRXhhbXBsZShzY2hlbWEpXG4gIC8vIGZpcnN0IGNoZWNrIGlmIHRoZXJlIGlzIHRoZSBuZWVkIG9mIGNvbWJpbmluZyB0aGlzIHNjaGVtYSB3aXRoIG90aGVycyByZXF1aXJlZCBieSBhbGxPZlxuICBjb25zdCBoYXNPbmVPZiA9XG4gICAgIXVzZVBsYWluVmFsdWUgJiYgQXJyYXkuaXNBcnJheShzY2hlbWEub25lT2YpICYmIHNjaGVtYS5vbmVPZi5sZW5ndGggPiAwXG4gIGNvbnN0IGhhc0FueU9mID1cbiAgICAhdXNlUGxhaW5WYWx1ZSAmJiBBcnJheS5pc0FycmF5KHNjaGVtYS5hbnlPZikgJiYgc2NoZW1hLmFueU9mLmxlbmd0aCA+IDBcbiAgaWYgKCF1c2VQbGFpblZhbHVlICYmIChoYXNPbmVPZiB8fCBoYXNBbnlPZikpIHtcbiAgICBjb25zdCBzY2hlbWFUb0FkZCA9IHR5cGVDYXN0KFxuICAgICAgaGFzT25lT2YgPyByYW5kb21QaWNrKHNjaGVtYS5vbmVPZikgOiByYW5kb21QaWNrKHNjaGVtYS5hbnlPZilcbiAgICApXG4gICAgc2NoZW1hID0gbWVyZ2Uoc2NoZW1hLCBzY2hlbWFUb0FkZCwgY29uZmlnKVxuICAgIGlmICghc2NoZW1hLnhtbCAmJiBzY2hlbWFUb0FkZC54bWwpIHtcbiAgICAgIHNjaGVtYS54bWwgPSBzY2hlbWFUb0FkZC54bWxcbiAgICB9XG4gICAgaWYgKGhhc0V4YW1wbGUoc2NoZW1hKSAmJiBoYXNFeGFtcGxlKHNjaGVtYVRvQWRkKSkge1xuICAgICAgdXNlUGxhaW5WYWx1ZSA9IHRydWVcbiAgICB9XG4gIH1cbiAgY29uc3QgX2F0dHIgPSB7fVxuICBsZXQgeyB4bWwsIHByb3BlcnRpZXMsIGFkZGl0aW9uYWxQcm9wZXJ0aWVzLCBpdGVtcywgY29udGFpbnMgfSA9IHNjaGVtYSB8fCB7fVxuICBsZXQgdHlwZSA9IGdldFR5cGUoc2NoZW1hKVxuICBsZXQgeyBpbmNsdWRlUmVhZE9ubHksIGluY2x1ZGVXcml0ZU9ubHkgfSA9IGNvbmZpZ1xuICB4bWwgPSB4bWwgfHwge31cbiAgbGV0IHsgbmFtZSwgcHJlZml4LCBuYW1lc3BhY2UgfSA9IHhtbFxuICBsZXQgZGlzcGxheU5hbWVcbiAgbGV0IHJlcyA9IHt9XG5cbiAgaWYgKCFPYmplY3QuaGFzT3duKHNjaGVtYSwgXCJ0eXBlXCIpKSB7XG4gICAgc2NoZW1hLnR5cGUgPSB0eXBlXG4gIH1cblxuICAvLyBzZXQgeG1sIG5hbWluZyBhbmQgYXR0cmlidXRlc1xuICBpZiAocmVzcGVjdFhNTCkge1xuICAgIG5hbWUgPSBuYW1lIHx8IFwibm90YWduYW1lXCJcbiAgICAvLyBhZGQgcHJlZml4IHRvIG5hbWUgaWYgZXhpc3RzXG4gICAgZGlzcGxheU5hbWUgPSAocHJlZml4ID8gYCR7cHJlZml4fTpgIDogXCJcIikgKyBuYW1lXG4gICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgLy9hZGQgcHJlZml4IHRvIG5hbWVzcGFjZSBpZiBleGlzdHNcbiAgICAgIGxldCBuYW1lc3BhY2VQcmVmaXggPSBwcmVmaXggPyBgeG1sbnM6JHtwcmVmaXh9YCA6IFwieG1sbnNcIlxuICAgICAgX2F0dHJbbmFtZXNwYWNlUHJlZml4XSA9IG5hbWVzcGFjZVxuICAgIH1cbiAgfVxuXG4gIC8vIGluaXQgeG1sIGRlZmF1bHQgcmVzcG9uc2Ugc2FtcGxlIG9ialxuICBpZiAocmVzcGVjdFhNTCkge1xuICAgIHJlc1tkaXNwbGF5TmFtZV0gPSBbXVxuICB9XG5cbiAgLy8gYWRkIHRvIHJlc3VsdCBoZWxwZXIgaW5pdCBmb3IgeG1sIG9yIGpzb25cbiAgY29uc3QgcHJvcHMgPSBvYmplY3RpZnkocHJvcGVydGllcylcbiAgbGV0IGFkZFByb3BlcnR5VG9SZXN1bHRcbiAgbGV0IHByb3BlcnR5QWRkZWRDb3VudGVyID0gMFxuXG4gIGNvbnN0IGhhc0V4Y2VlZGVkTWF4UHJvcGVydGllcyA9ICgpID0+XG4gICAgTnVtYmVyLmlzSW50ZWdlcihzY2hlbWEubWF4UHJvcGVydGllcykgJiZcbiAgICBzY2hlbWEubWF4UHJvcGVydGllcyA+IDAgJiZcbiAgICBwcm9wZXJ0eUFkZGVkQ291bnRlciA+PSBzY2hlbWEubWF4UHJvcGVydGllc1xuXG4gIGNvbnN0IHJlcXVpcmVkUHJvcGVydGllc1RvQWRkID0gKCkgPT4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShzY2hlbWEucmVxdWlyZWQpIHx8IHNjaGVtYS5yZXF1aXJlZC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiAwXG4gICAgfVxuICAgIGxldCBhZGRlZENvdW50ID0gMFxuICAgIGlmIChyZXNwZWN0WE1MKSB7XG4gICAgICBzY2hlbWEucmVxdWlyZWQuZm9yRWFjaChcbiAgICAgICAgKGtleSkgPT4gKGFkZGVkQ291bnQgKz0gcmVzW2tleV0gPT09IHVuZGVmaW5lZCA/IDAgOiAxKVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBzY2hlbWEucmVxdWlyZWQuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGFkZGVkQ291bnQgKz1cbiAgICAgICAgICByZXNbZGlzcGxheU5hbWVdPy5maW5kKCh4KSA9PiB4W2tleV0gIT09IHVuZGVmaW5lZCkgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICA6IDFcbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVybiBzY2hlbWEucmVxdWlyZWQubGVuZ3RoIC0gYWRkZWRDb3VudFxuICB9XG5cbiAgY29uc3QgaXNPcHRpb25hbFByb3BlcnR5ID0gKHByb3BOYW1lKSA9PiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHNjaGVtYS5yZXF1aXJlZCkpIHJldHVybiB0cnVlXG4gICAgaWYgKHNjaGVtYS5yZXF1aXJlZC5sZW5ndGggPT09IDApIHJldHVybiB0cnVlXG5cbiAgICByZXR1cm4gIXNjaGVtYS5yZXF1aXJlZC5pbmNsdWRlcyhwcm9wTmFtZSlcbiAgfVxuXG4gIGNvbnN0IGNhbkFkZFByb3BlcnR5ID0gKHByb3BOYW1lKSA9PiB7XG4gICAgaWYgKCEoTnVtYmVyLmlzSW50ZWdlcihzY2hlbWEubWF4UHJvcGVydGllcykgJiYgc2NoZW1hLm1heFByb3BlcnRpZXMgPiAwKSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgaWYgKGhhc0V4Y2VlZGVkTWF4UHJvcGVydGllcygpKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgaWYgKCFpc09wdGlvbmFsUHJvcGVydHkocHJvcE5hbWUpKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgc2NoZW1hLm1heFByb3BlcnRpZXMgLSBwcm9wZXJ0eUFkZGVkQ291bnRlciAtIHJlcXVpcmVkUHJvcGVydGllc1RvQWRkKCkgPlxuICAgICAgMFxuICAgIClcbiAgfVxuXG4gIGlmIChyZXNwZWN0WE1MKSB7XG4gICAgYWRkUHJvcGVydHlUb1Jlc3VsdCA9IChwcm9wTmFtZSwgb3ZlcnJpZGVFID0gdW5kZWZpbmVkKSA9PiB7XG4gICAgICBpZiAoc2NoZW1hICYmIHByb3BzW3Byb3BOYW1lXSkge1xuICAgICAgICAvLyBjYXNlIGl0IGlzIGEgeG1sIGF0dHJpYnV0ZVxuICAgICAgICBwcm9wc1twcm9wTmFtZV0ueG1sID0gcHJvcHNbcHJvcE5hbWVdLnhtbCB8fCB7fVxuXG4gICAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0ueG1sLmF0dHJpYnV0ZSkge1xuICAgICAgICAgIGNvbnN0IGVudW1BdHRyVmFsID0gQXJyYXkuaXNBcnJheShwcm9wc1twcm9wTmFtZV0uZW51bSlcbiAgICAgICAgICAgID8gcmFuZG9tUGljayhwcm9wc1twcm9wTmFtZV0uZW51bSlcbiAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgaWYgKGhhc0V4YW1wbGUocHJvcHNbcHJvcE5hbWVdKSkge1xuICAgICAgICAgICAgX2F0dHJbcHJvcHNbcHJvcE5hbWVdLnhtbC5uYW1lIHx8IHByb3BOYW1lXSA9IGV4dHJhY3RFeGFtcGxlKFxuICAgICAgICAgICAgICBwcm9wc1twcm9wTmFtZV1cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9IGVsc2UgaWYgKGVudW1BdHRyVmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIF9hdHRyW3Byb3BzW3Byb3BOYW1lXS54bWwubmFtZSB8fCBwcm9wTmFtZV0gPSBlbnVtQXR0clZhbFxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwcm9wU2NoZW1hID0gdHlwZUNhc3QocHJvcHNbcHJvcE5hbWVdKVxuICAgICAgICAgICAgY29uc3QgcHJvcFNjaGVtYVR5cGUgPSBnZXRUeXBlKHByb3BTY2hlbWEpXG4gICAgICAgICAgICBjb25zdCBhdHRyTmFtZSA9IHByb3BzW3Byb3BOYW1lXS54bWwubmFtZSB8fCBwcm9wTmFtZVxuXG4gICAgICAgICAgICBpZiAocHJvcFNjaGVtYVR5cGUgPT09IFwiYXJyYXlcIikge1xuICAgICAgICAgICAgICBjb25zdCBhcnJheVNhbXBsZSA9IHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKFxuICAgICAgICAgICAgICAgIHByb3BzW3Byb3BOYW1lXSxcbiAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgb3ZlcnJpZGVFLFxuICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgX2F0dHJbYXR0ck5hbWVdID0gYXJyYXlTYW1wbGVcbiAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoaXNQbGFpbk9iamVjdChpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gXCJVbmtub3duVHlwZU9iamVjdFwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gXCJVbmtub3duVHlwZUFycmF5XCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuam9pbihcIiBcIilcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIF9hdHRyW2F0dHJOYW1lXSA9XG4gICAgICAgICAgICAgICAgcHJvcFNjaGVtYVR5cGUgPT09IFwib2JqZWN0XCJcbiAgICAgICAgICAgICAgICAgID8gXCJVbmtub3duVHlwZU9iamVjdFwiXG4gICAgICAgICAgICAgICAgICA6IHR5cGVNYXBbcHJvcFNjaGVtYVR5cGVdKHByb3BTY2hlbWEpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgcHJvcHNbcHJvcE5hbWVdLnhtbC5uYW1lID0gcHJvcHNbcHJvcE5hbWVdLnhtbC5uYW1lIHx8IHByb3BOYW1lXG4gICAgICB9IGVsc2UgaWYgKCFwcm9wc1twcm9wTmFtZV0gJiYgYWRkaXRpb25hbFByb3BlcnRpZXMgIT09IGZhbHNlKSB7XG4gICAgICAgIC8vIGNhc2Ugb25seSBhZGRpdGlvbmFsUHJvcGVydHkgdGhhdCBpcyBub3QgZGVmaW5lZCBpbiBzY2hlbWFcbiAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0ge1xuICAgICAgICAgIHhtbDoge1xuICAgICAgICAgICAgbmFtZTogcHJvcE5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsZXQgdCA9IHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKFxuICAgICAgICBwcm9wc1twcm9wTmFtZV0sXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgb3ZlcnJpZGVFLFxuICAgICAgICByZXNwZWN0WE1MXG4gICAgICApXG4gICAgICBpZiAoIWNhbkFkZFByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgcHJvcGVydHlBZGRlZENvdW50ZXIrK1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodCkpIHtcbiAgICAgICAgcmVzW2Rpc3BsYXlOYW1lXSA9IHJlc1tkaXNwbGF5TmFtZV0uY29uY2F0KHQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNbZGlzcGxheU5hbWVdLnB1c2godClcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgYWRkUHJvcGVydHlUb1Jlc3VsdCA9IChwcm9wTmFtZSwgb3ZlcnJpZGVFKSA9PiB7XG4gICAgICBpZiAoIWNhbkFkZFByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgaXNQbGFpbk9iamVjdChzY2hlbWEuZGlzY3JpbWluYXRvcj8ubWFwcGluZykgJiZcbiAgICAgICAgc2NoZW1hLmRpc2NyaW1pbmF0b3IucHJvcGVydHlOYW1lID09PSBwcm9wTmFtZSAmJlxuICAgICAgICB0eXBlb2Ygc2NoZW1hLiQkcmVmID09PSBcInN0cmluZ1wiXG4gICAgICApIHtcbiAgICAgICAgZm9yIChjb25zdCBwYWlyIGluIHNjaGVtYS5kaXNjcmltaW5hdG9yLm1hcHBpbmcpIHtcbiAgICAgICAgICBpZiAoc2NoZW1hLiQkcmVmLnNlYXJjaChzY2hlbWEuZGlzY3JpbWluYXRvci5tYXBwaW5nW3BhaXJdKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHJlc1twcm9wTmFtZV0gPSBwYWlyXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzW3Byb3BOYW1lXSA9IHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKFxuICAgICAgICAgIHByb3BzW3Byb3BOYW1lXSxcbiAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgb3ZlcnJpZGVFLFxuICAgICAgICAgIHJlc3BlY3RYTUxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcHJvcGVydHlBZGRlZENvdW50ZXIrK1xuICAgIH1cbiAgfVxuXG4gIC8vIGNoZWNrIGZvciBwbGFpbiB2YWx1ZSBhbmQgaWYgZm91bmQgdXNlIGl0IHRvIGdlbmVyYXRlIHNhbXBsZSBmcm9tIGl0XG4gIGlmICh1c2VQbGFpblZhbHVlKSB7XG4gICAgbGV0IHNhbXBsZVxuICAgIGlmIChleGFtcGxlT3ZlcnJpZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgc2FtcGxlID0gZXhhbXBsZU92ZXJyaWRlXG4gICAgfSBlbHNlIHtcbiAgICAgIHNhbXBsZSA9IGV4dHJhY3RFeGFtcGxlKHNjaGVtYSlcbiAgICB9XG5cbiAgICAvLyBpZiBqc29uIGp1c3QgcmV0dXJuXG4gICAgaWYgKCFyZXNwZWN0WE1MKSB7XG4gICAgICAvLyBzcGVjaWFsIGNhc2UgeWFtbCBwYXJzZXIgY2FuIG5vdCBrbm93IGFib3V0XG4gICAgICBpZiAodHlwZW9mIHNhbXBsZSA9PT0gXCJudW1iZXJcIiAmJiB0eXBlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBgJHtzYW1wbGV9YFxuICAgICAgfVxuICAgICAgLy8gcmV0dXJuIGlmIHNhbXBsZSBkb2VzIG5vdCBuZWVkIGFueSBwYXJzaW5nXG4gICAgICBpZiAodHlwZW9mIHNhbXBsZSAhPT0gXCJzdHJpbmdcIiB8fCB0eXBlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBzYW1wbGVcbiAgICAgIH1cbiAgICAgIC8vIGNoZWNrIGlmIHNhbXBsZSBpcyBwYXJzYWJsZSBvciBqdXN0IGEgcGxhaW4gc3RyaW5nXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShzYW1wbGUpXG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgLy8gc2FtcGxlIGlzIGp1c3QgcGxhaW4gc3RyaW5nIHJldHVybiBpdFxuICAgICAgICByZXR1cm4gc2FtcGxlXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gZ2VuZXJhdGUgeG1sIHNhbXBsZSByZWN1cnNpdmVseSBmb3IgYXJyYXkgY2FzZVxuICAgIGlmICh0eXBlID09PSBcImFycmF5XCIpIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShzYW1wbGUpKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2FtcGxlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgcmV0dXJuIHNhbXBsZVxuICAgICAgICB9XG4gICAgICAgIHNhbXBsZSA9IFtzYW1wbGVdXG4gICAgICB9XG5cbiAgICAgIGxldCBpdGVtU2FtcGxlcyA9IFtdXG5cbiAgICAgIGlmIChpc0pTT05TY2hlbWFPYmplY3QoaXRlbXMpKSB7XG4gICAgICAgIGl0ZW1zLnhtbCA9IGl0ZW1zLnhtbCB8fCB4bWwgfHwge31cbiAgICAgICAgaXRlbXMueG1sLm5hbWUgPSBpdGVtcy54bWwubmFtZSB8fCB4bWwubmFtZVxuICAgICAgICBpdGVtU2FtcGxlcyA9IHNhbXBsZS5tYXAoKHMpID0+XG4gICAgICAgICAgc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoaXRlbXMsIGNvbmZpZywgcywgcmVzcGVjdFhNTClcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNKU09OU2NoZW1hT2JqZWN0KGNvbnRhaW5zKSkge1xuICAgICAgICBjb250YWlucy54bWwgPSBjb250YWlucy54bWwgfHwgeG1sIHx8IHt9XG4gICAgICAgIGNvbnRhaW5zLnhtbC5uYW1lID0gY29udGFpbnMueG1sLm5hbWUgfHwgeG1sLm5hbWVcbiAgICAgICAgaXRlbVNhbXBsZXMgPSBbXG4gICAgICAgICAgc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoY29udGFpbnMsIGNvbmZpZywgdW5kZWZpbmVkLCByZXNwZWN0WE1MKSxcbiAgICAgICAgICAuLi5pdGVtU2FtcGxlcyxcbiAgICAgICAgXVxuICAgICAgfVxuXG4gICAgICBpdGVtU2FtcGxlcyA9IHR5cGVNYXAuYXJyYXkoc2NoZW1hLCB7IHNhbXBsZTogaXRlbVNhbXBsZXMgfSlcbiAgICAgIGlmICh4bWwud3JhcHBlZCkge1xuICAgICAgICByZXNbZGlzcGxheU5hbWVdID0gaXRlbVNhbXBsZXNcbiAgICAgICAgaWYgKCFpc0VtcHR5KF9hdHRyKSkge1xuICAgICAgICAgIHJlc1tkaXNwbGF5TmFtZV0ucHVzaCh7IF9hdHRyOiBfYXR0ciB9KVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXMgPSBpdGVtU2FtcGxlc1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc1xuICAgIH1cblxuICAgIC8vIGdlbmVyYXRlIHhtbCBzYW1wbGUgcmVjdXJzaXZlbHkgZm9yIG9iamVjdCBjYXNlXG4gICAgaWYgKHR5cGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIC8vIGNhc2UgbGl0ZXJhbCBleGFtcGxlXG4gICAgICBpZiAodHlwZW9mIHNhbXBsZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gc2FtcGxlXG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IHByb3BOYW1lIGluIHNhbXBsZSkge1xuICAgICAgICBpZiAoIU9iamVjdC5oYXNPd24oc2FtcGxlLCBwcm9wTmFtZSkpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0/LnJlYWRPbmx5ICYmICFpbmNsdWRlUmVhZE9ubHkpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0/LndyaXRlT25seSAmJiAhaW5jbHVkZVdyaXRlT25seSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXT8ueG1sPy5hdHRyaWJ1dGUpIHtcbiAgICAgICAgICBfYXR0cltwcm9wc1twcm9wTmFtZV0ueG1sLm5hbWUgfHwgcHJvcE5hbWVdID0gc2FtcGxlW3Byb3BOYW1lXVxuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgYWRkUHJvcGVydHlUb1Jlc3VsdChwcm9wTmFtZSwgc2FtcGxlW3Byb3BOYW1lXSlcbiAgICAgIH1cbiAgICAgIGlmICghaXNFbXB0eShfYXR0cikpIHtcbiAgICAgICAgcmVzW2Rpc3BsYXlOYW1lXS5wdXNoKHsgX2F0dHI6IF9hdHRyIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNcbiAgICB9XG5cbiAgICByZXNbZGlzcGxheU5hbWVdID0gIWlzRW1wdHkoX2F0dHIpID8gW3sgX2F0dHI6IF9hdHRyIH0sIHNhbXBsZV0gOiBzYW1wbGVcbiAgICByZXR1cm4gcmVzXG4gIH1cblxuICAvLyB1c2Ugc2NoZW1hIHRvIGdlbmVyYXRlIHNhbXBsZVxuICBpZiAodHlwZSA9PT0gXCJhcnJheVwiKSB7XG4gICAgbGV0IHNhbXBsZUFycmF5ID0gW11cblxuICAgIGlmIChpc0pTT05TY2hlbWFPYmplY3QoY29udGFpbnMpKSB7XG4gICAgICBpZiAocmVzcGVjdFhNTCkge1xuICAgICAgICBjb250YWlucy54bWwgPSBjb250YWlucy54bWwgfHwgc2NoZW1hLnhtbCB8fCB7fVxuICAgICAgICBjb250YWlucy54bWwubmFtZSA9IGNvbnRhaW5zLnhtbC5uYW1lIHx8IHhtbC5uYW1lXG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGNvbnRhaW5zLmFueU9mKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgICAgICAgY29uc3QgeyBhbnlPZiwgLi4uY29udGFpbnNXaXRob3V0QW55T2YgfSA9IGl0ZW1zXG5cbiAgICAgICAgc2FtcGxlQXJyYXkucHVzaChcbiAgICAgICAgICAuLi5jb250YWlucy5hbnlPZi5tYXAoKGFueU9mU2NoZW1hKSA9PlxuICAgICAgICAgICAgc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoXG4gICAgICAgICAgICAgIG1lcmdlKGFueU9mU2NoZW1hLCBjb250YWluc1dpdGhvdXRBbnlPZiwgY29uZmlnKSxcbiAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIHJlc3BlY3RYTUxcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjb250YWlucy5vbmVPZikpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgICAgIGNvbnN0IHsgb25lT2YsIC4uLmNvbnRhaW5zV2l0aG91dE9uZU9mIH0gPSBpdGVtc1xuXG4gICAgICAgIHNhbXBsZUFycmF5LnB1c2goXG4gICAgICAgICAgLi4uY29udGFpbnMub25lT2YubWFwKChvbmVPZlNjaGVtYSkgPT5cbiAgICAgICAgICAgIHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKFxuICAgICAgICAgICAgICBtZXJnZShvbmVPZlNjaGVtYSwgY29udGFpbnNXaXRob3V0T25lT2YsIGNvbmZpZyksXG4gICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICByZXNwZWN0WE1MXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9IGVsc2UgaWYgKCFyZXNwZWN0WE1MIHx8IChyZXNwZWN0WE1MICYmIHhtbC53cmFwcGVkKSkge1xuICAgICAgICBzYW1wbGVBcnJheS5wdXNoKFxuICAgICAgICAgIHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKGNvbnRhaW5zLCBjb25maWcsIHVuZGVmaW5lZCwgcmVzcGVjdFhNTClcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKGNvbnRhaW5zLCBjb25maWcsIHVuZGVmaW5lZCwgcmVzcGVjdFhNTClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaXNKU09OU2NoZW1hT2JqZWN0KGl0ZW1zKSkge1xuICAgICAgaWYgKHJlc3BlY3RYTUwpIHtcbiAgICAgICAgaXRlbXMueG1sID0gaXRlbXMueG1sIHx8IHNjaGVtYS54bWwgfHwge31cbiAgICAgICAgaXRlbXMueG1sLm5hbWUgPSBpdGVtcy54bWwubmFtZSB8fCB4bWwubmFtZVxuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtcy5hbnlPZikpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgICAgIGNvbnN0IHsgYW55T2YsIC4uLml0ZW1zV2l0aG91dEFueU9mIH0gPSBpdGVtc1xuXG4gICAgICAgIHNhbXBsZUFycmF5LnB1c2goXG4gICAgICAgICAgLi4uaXRlbXMuYW55T2YubWFwKChpKSA9PlxuICAgICAgICAgICAgc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoXG4gICAgICAgICAgICAgIG1lcmdlKGksIGl0ZW1zV2l0aG91dEFueU9mLCBjb25maWcpLFxuICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgcmVzcGVjdFhNTFxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGl0ZW1zLm9uZU9mKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgICAgICAgY29uc3QgeyBvbmVPZiwgLi4uaXRlbXNXaXRob3V0T25lT2YgfSA9IGl0ZW1zXG5cbiAgICAgICAgc2FtcGxlQXJyYXkucHVzaChcbiAgICAgICAgICAuLi5pdGVtcy5vbmVPZi5tYXAoKGkpID0+XG4gICAgICAgICAgICBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhcbiAgICAgICAgICAgICAgbWVyZ2UoaSwgaXRlbXNXaXRob3V0T25lT2YsIGNvbmZpZyksXG4gICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICByZXNwZWN0WE1MXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9IGVsc2UgaWYgKCFyZXNwZWN0WE1MIHx8IChyZXNwZWN0WE1MICYmIHhtbC53cmFwcGVkKSkge1xuICAgICAgICBzYW1wbGVBcnJheS5wdXNoKFxuICAgICAgICAgIHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKGl0ZW1zLCBjb25maWcsIHVuZGVmaW5lZCwgcmVzcGVjdFhNTClcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKGl0ZW1zLCBjb25maWcsIHVuZGVmaW5lZCwgcmVzcGVjdFhNTClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzYW1wbGVBcnJheSA9IHR5cGVNYXAuYXJyYXkoc2NoZW1hLCB7IHNhbXBsZTogc2FtcGxlQXJyYXkgfSlcbiAgICBpZiAocmVzcGVjdFhNTCAmJiB4bWwud3JhcHBlZCkge1xuICAgICAgcmVzW2Rpc3BsYXlOYW1lXSA9IHNhbXBsZUFycmF5XG4gICAgICBpZiAoIWlzRW1wdHkoX2F0dHIpKSB7XG4gICAgICAgIHJlc1tkaXNwbGF5TmFtZV0ucHVzaCh7IF9hdHRyOiBfYXR0ciB9KVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc1xuICAgIH1cblxuICAgIHJldHVybiBzYW1wbGVBcnJheVxuICB9XG5cbiAgaWYgKHR5cGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICBmb3IgKGxldCBwcm9wTmFtZSBpbiBwcm9wcykge1xuICAgICAgaWYgKCFPYmplY3QuaGFzT3duKHByb3BzLCBwcm9wTmFtZSkpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0/LmRlcHJlY2F0ZWQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0/LnJlYWRPbmx5ICYmICFpbmNsdWRlUmVhZE9ubHkpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0/LndyaXRlT25seSAmJiAhaW5jbHVkZVdyaXRlT25seSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgYWRkUHJvcGVydHlUb1Jlc3VsdChwcm9wTmFtZSlcbiAgICB9XG4gICAgaWYgKHJlc3BlY3RYTUwgJiYgX2F0dHIpIHtcbiAgICAgIHJlc1tkaXNwbGF5TmFtZV0ucHVzaCh7IF9hdHRyOiBfYXR0ciB9KVxuICAgIH1cblxuICAgIGlmIChoYXNFeGNlZWRlZE1heFByb3BlcnRpZXMoKSkge1xuICAgICAgcmV0dXJuIHJlc1xuICAgIH1cblxuICAgIGlmIChpc0Jvb2xlYW5KU09OU2NoZW1hKGFkZGl0aW9uYWxQcm9wZXJ0aWVzKSAmJiBhZGRpdGlvbmFsUHJvcGVydGllcykge1xuICAgICAgaWYgKHJlc3BlY3RYTUwpIHtcbiAgICAgICAgcmVzW2Rpc3BsYXlOYW1lXS5wdXNoKHsgYWRkaXRpb25hbFByb3A6IFwiQW55dGhpbmcgY2FuIGJlIGhlcmVcIiB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzLmFkZGl0aW9uYWxQcm9wMSA9IHt9XG4gICAgICB9XG4gICAgICBwcm9wZXJ0eUFkZGVkQ291bnRlcisrXG4gICAgfSBlbHNlIGlmIChpc0pTT05TY2hlbWFPYmplY3QoYWRkaXRpb25hbFByb3BlcnRpZXMpKSB7XG4gICAgICBjb25zdCBhZGRpdGlvbmFsUHJvcHMgPSBhZGRpdGlvbmFsUHJvcGVydGllc1xuICAgICAgY29uc3QgYWRkaXRpb25hbFByb3BTYW1wbGUgPSBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhcbiAgICAgICAgYWRkaXRpb25hbFByb3BzLFxuICAgICAgICBjb25maWcsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgcmVzcGVjdFhNTFxuICAgICAgKVxuXG4gICAgICBpZiAoXG4gICAgICAgIHJlc3BlY3RYTUwgJiZcbiAgICAgICAgdHlwZW9mIGFkZGl0aW9uYWxQcm9wcz8ueG1sPy5uYW1lID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgIGFkZGl0aW9uYWxQcm9wcz8ueG1sPy5uYW1lICE9PSBcIm5vdGFnbmFtZVwiXG4gICAgICApIHtcbiAgICAgICAgcmVzW2Rpc3BsYXlOYW1lXS5wdXNoKGFkZGl0aW9uYWxQcm9wU2FtcGxlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdG9HZW5lcmF0ZUNvdW50ID1cbiAgICAgICAgICBOdW1iZXIuaXNJbnRlZ2VyKHNjaGVtYS5taW5Qcm9wZXJ0aWVzKSAmJlxuICAgICAgICAgIHNjaGVtYS5taW5Qcm9wZXJ0aWVzID4gMCAmJlxuICAgICAgICAgIHByb3BlcnR5QWRkZWRDb3VudGVyIDwgc2NoZW1hLm1pblByb3BlcnRpZXNcbiAgICAgICAgICAgID8gc2NoZW1hLm1pblByb3BlcnRpZXMgLSBwcm9wZXJ0eUFkZGVkQ291bnRlclxuICAgICAgICAgICAgOiAzXG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHRvR2VuZXJhdGVDb3VudDsgaSsrKSB7XG4gICAgICAgICAgaWYgKGhhc0V4Y2VlZGVkTWF4UHJvcGVydGllcygpKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyZXNwZWN0WE1MKSB7XG4gICAgICAgICAgICBjb25zdCB0ZW1wID0ge31cbiAgICAgICAgICAgIHRlbXBbXCJhZGRpdGlvbmFsUHJvcFwiICsgaV0gPSBhZGRpdGlvbmFsUHJvcFNhbXBsZVtcIm5vdGFnbmFtZVwiXVxuICAgICAgICAgICAgcmVzW2Rpc3BsYXlOYW1lXS5wdXNoKHRlbXApXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc1tcImFkZGl0aW9uYWxQcm9wXCIgKyBpXSA9IGFkZGl0aW9uYWxQcm9wU2FtcGxlXG4gICAgICAgICAgfVxuICAgICAgICAgIHByb3BlcnR5QWRkZWRDb3VudGVyKytcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzXG4gIH1cblxuICBsZXQgdmFsdWVcbiAgaWYgKHR5cGVvZiBzY2hlbWEuY29uc3QgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAvLyBkaXNwbGF5IGNvbnN0IHZhbHVlXG4gICAgdmFsdWUgPSBzY2hlbWEuY29uc3RcbiAgfSBlbHNlIGlmIChzY2hlbWEgJiYgQXJyYXkuaXNBcnJheShzY2hlbWEuZW51bSkpIHtcbiAgICAvL2Rpc3BsYXkgZW51bSBmaXJzdCB2YWx1ZVxuICAgIHZhbHVlID0gcmFuZG9tUGljayhub3JtYWxpemVBcnJheShzY2hlbWEuZW51bSkpXG4gIH0gZWxzZSB7XG4gICAgLy8gZGlzcGxheSBzY2hlbWEgZGVmYXVsdFxuICAgIGNvbnN0IGNvbnRlbnRTYW1wbGUgPSBpc0pTT05TY2hlbWFPYmplY3Qoc2NoZW1hLmNvbnRlbnRTY2hlbWEpXG4gICAgICA/IHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKFxuICAgICAgICAgIHNjaGVtYS5jb250ZW50U2NoZW1hLFxuICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgcmVzcGVjdFhNTFxuICAgICAgICApXG4gICAgICA6IHVuZGVmaW5lZFxuICAgIHZhbHVlID0gdHlwZU1hcFt0eXBlXShzY2hlbWEsIHsgc2FtcGxlOiBjb250ZW50U2FtcGxlIH0pXG4gIH1cblxuICBpZiAocmVzcGVjdFhNTCkge1xuICAgIHJlc1tkaXNwbGF5TmFtZV0gPSAhaXNFbXB0eShfYXR0cikgPyBbeyBfYXR0cjogX2F0dHIgfSwgdmFsdWVdIDogdmFsdWVcbiAgICByZXR1cm4gcmVzXG4gIH1cblxuICByZXR1cm4gdmFsdWVcbn1cblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVhNTEV4YW1wbGUgPSAoc2NoZW1hLCBjb25maWcsIG8pID0+IHtcbiAgY29uc3QganNvbiA9IHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKHNjaGVtYSwgY29uZmlnLCBvLCB0cnVlKVxuICBpZiAoIWpzb24pIHtcbiAgICByZXR1cm5cbiAgfVxuICBpZiAodHlwZW9mIGpzb24gPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4ganNvblxuICB9XG4gIHJldHVybiBYTUwoanNvbiwgeyBkZWNsYXJhdGlvbjogdHJ1ZSwgaW5kZW50OiBcIlxcdFwiIH0pXG59XG5cbmV4cG9ydCBjb25zdCBzYW1wbGVGcm9tU2NoZW1hID0gKHNjaGVtYSwgY29uZmlnLCBvKSA9PiB7XG4gIHJldHVybiBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhzY2hlbWEsIGNvbmZpZywgbywgZmFsc2UpXG59XG5cbmNvbnN0IHJlc29sdmVyID0gKGFyZzEsIGFyZzIsIGFyZzMpID0+IFtcbiAgYXJnMSxcbiAgSlNPTi5zdHJpbmdpZnkoYXJnMiksXG4gIEpTT04uc3RyaW5naWZ5KGFyZzMpLFxuXVxuXG5leHBvcnQgY29uc3QgbWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlID0gbWVtb2l6ZU4oY3JlYXRlWE1MRXhhbXBsZSwgcmVzb2x2ZXIpXG5cbmV4cG9ydCBjb25zdCBtZW1vaXplZFNhbXBsZUZyb21TY2hlbWEgPSBtZW1vaXplTihzYW1wbGVGcm9tU2NoZW1hLCByZXNvbHZlcilcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cblxuaW1wb3J0IE9wdGlvblJlZ2lzdHJ5IGZyb20gXCIuLi9jbGFzcy9PcHRpb25SZWdpc3RyeVwiXG5cbmNvbnN0IHJlZ2lzdHJ5ID0gbmV3IE9wdGlvblJlZ2lzdHJ5KClcblxuY29uc3Qgb3B0aW9uQVBJID0gKG9wdGlvbk5hbWUsIG9wdGlvblZhbHVlKSA9PiB7XG4gIGlmICh0eXBlb2Ygb3B0aW9uVmFsdWUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICByZWdpc3RyeS5yZWdpc3RlcihvcHRpb25OYW1lLCBvcHRpb25WYWx1ZSlcbiAgfVxuXG4gIHJldHVybiByZWdpc3RyeS5nZXQob3B0aW9uTmFtZSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgb3B0aW9uQVBJXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVnaXN0cnkgZnJvbSBcIi4vUmVnaXN0cnlcIlxuXG5jbGFzcyBPcHRpb25SZWdpc3RyeSBleHRlbmRzIFJlZ2lzdHJ5IHtcbiAgI2RlZmF1bHRzID0ge31cblxuICBkYXRhID0geyAuLi50aGlzLiNkZWZhdWx0cyB9XG5cbiAgZ2V0IGRlZmF1bHRzKCkge1xuICAgIHJldHVybiB7IC4uLnRoaXMuI2RlZmF1bHRzIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBPcHRpb25SZWdpc3RyeVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHNvbWUgZnJvbSBcImxvZGFzaC9zb21lXCJcblxuY29uc3Qgc2hvdWxkU3RyaW5naWZ5VHlwZXNDb25maWcgPSBbXG4gIHtcbiAgICB3aGVuOiAvanNvbi8sXG4gICAgc2hvdWxkU3RyaW5naWZ5VHlwZXM6IFtcInN0cmluZ1wiXSxcbiAgfSxcbl1cbmNvbnN0IGRlZmF1bHRTdHJpbmdpZnlUeXBlcyA9IFtcIm9iamVjdFwiXVxuY29uc3QgbWFrZUdldEpzb25TYW1wbGVTY2hlbWEgPVxuICAoZ2V0U3lzdGVtKSA9PiAoc2NoZW1hLCBjb25maWcsIGNvbnRlbnRUeXBlLCBleGFtcGxlT3ZlcnJpZGUpID0+IHtcbiAgICBjb25zdCB7IGZuIH0gPSBnZXRTeXN0ZW0oKVxuICAgIGNvbnN0IHJlcyA9IGZuLmpzb25TY2hlbWEyMDIwMTIubWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hKFxuICAgICAgc2NoZW1hLFxuICAgICAgY29uZmlnLFxuICAgICAgZXhhbXBsZU92ZXJyaWRlXG4gICAgKVxuICAgIGNvbnN0IHJlc1R5cGUgPSB0eXBlb2YgcmVzXG5cbiAgICBjb25zdCB0eXBlc1RvU3RyaW5naWZ5ID0gc2hvdWxkU3RyaW5naWZ5VHlwZXNDb25maWcucmVkdWNlKFxuICAgICAgKHR5cGVzLCBuZXh0Q29uZmlnKSA9PlxuICAgICAgICBuZXh0Q29uZmlnLndoZW4udGVzdChjb250ZW50VHlwZSlcbiAgICAgICAgICA/IFsuLi50eXBlcywgLi4ubmV4dENvbmZpZy5zaG91bGRTdHJpbmdpZnlUeXBlc11cbiAgICAgICAgICA6IHR5cGVzLFxuICAgICAgZGVmYXVsdFN0cmluZ2lmeVR5cGVzXG4gICAgKVxuXG4gICAgcmV0dXJuIHNvbWUodHlwZXNUb1N0cmluZ2lmeSwgKHgpID0+IHggPT09IHJlc1R5cGUpXG4gICAgICA/IEpTT04uc3RyaW5naWZ5KHJlcywgbnVsbCwgMilcbiAgICAgIDogcmVzXG4gIH1cblxuZXhwb3J0IGRlZmF1bHQgbWFrZUdldEpzb25TYW1wbGVTY2hlbWFcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBZQU1MLCB7IEpTT05fU0NIRU1BIH0gZnJvbSBcImpzLXlhbWxcIlxuXG5jb25zdCBtYWtlR2V0WWFtbFNhbXBsZVNjaGVtYSA9XG4gIChnZXRTeXN0ZW0pID0+IChzY2hlbWEsIGNvbmZpZywgY29udGVudFR5cGUsIGV4YW1wbGVPdmVycmlkZSkgPT4ge1xuICAgIGNvbnN0IHsgZm4gfSA9IGdldFN5c3RlbSgpXG4gICAgY29uc3QganNvbkV4YW1wbGUgPSBmbi5qc29uU2NoZW1hMjAyMDEyLmdldEpzb25TYW1wbGVTY2hlbWEoXG4gICAgICBzY2hlbWEsXG4gICAgICBjb25maWcsXG4gICAgICBjb250ZW50VHlwZSxcbiAgICAgIGV4YW1wbGVPdmVycmlkZVxuICAgIClcbiAgICBsZXQgeWFtbFN0cmluZ1xuICAgIHRyeSB7XG4gICAgICB5YW1sU3RyaW5nID0gWUFNTC5kdW1wKFxuICAgICAgICBZQU1MLmxvYWQoanNvbkV4YW1wbGUpLFxuICAgICAgICB7XG4gICAgICAgICAgbGluZVdpZHRoOiAtMSwgLy8gZG9uJ3QgZ2VuZXJhdGUgbGluZSBmb2xkc1xuICAgICAgICB9LFxuICAgICAgICB7IHNjaGVtYTogSlNPTl9TQ0hFTUEgfVxuICAgICAgKVxuICAgICAgaWYgKHlhbWxTdHJpbmdbeWFtbFN0cmluZy5sZW5ndGggLSAxXSA9PT0gXCJcXG5cIikge1xuICAgICAgICB5YW1sU3RyaW5nID0geWFtbFN0cmluZy5zbGljZSgwLCB5YW1sU3RyaW5nLmxlbmd0aCAtIDEpXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcihlKVxuICAgICAgcmV0dXJuIFwiZXJyb3I6IGNvdWxkIG5vdCBnZW5lcmF0ZSB5YW1sIGV4YW1wbGVcIlxuICAgIH1cbiAgICByZXR1cm4geWFtbFN0cmluZy5yZXBsYWNlKC9cXHQvZywgXCIgIFwiKVxuICB9XG5cbmV4cG9ydCBkZWZhdWx0IG1ha2VHZXRZYW1sU2FtcGxlU2NoZW1hXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBtYWtlR2V0WG1sU2FtcGxlU2NoZW1hID1cbiAgKGdldFN5c3RlbSkgPT4gKHNjaGVtYSwgY29uZmlnLCBleGFtcGxlT3ZlcnJpZGUpID0+IHtcbiAgICBjb25zdCB7IGZuIH0gPSBnZXRTeXN0ZW0oKVxuXG4gICAgaWYgKHNjaGVtYSAmJiAhc2NoZW1hLnhtbCkge1xuICAgICAgc2NoZW1hLnhtbCA9IHt9XG4gICAgfVxuICAgIGlmIChzY2hlbWEgJiYgIXNjaGVtYS54bWwubmFtZSkge1xuICAgICAgaWYgKFxuICAgICAgICAhc2NoZW1hLiQkcmVmICYmXG4gICAgICAgIChzY2hlbWEudHlwZSB8fFxuICAgICAgICAgIHNjaGVtYS5pdGVtcyB8fFxuICAgICAgICAgIHNjaGVtYS5wcm9wZXJ0aWVzIHx8XG4gICAgICAgICAgc2NoZW1hLmFkZGl0aW9uYWxQcm9wZXJ0aWVzKVxuICAgICAgKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBxdW90ZXNcbiAgICAgICAgcmV0dXJuICc8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJVVEYtOFwiPz5cXG48IS0tIFhNTCBleGFtcGxlIGNhbm5vdCBiZSBnZW5lcmF0ZWQ7IHJvb3QgZWxlbWVudCBuYW1lIGlzIHVuZGVmaW5lZCAtLT4nXG4gICAgICB9XG4gICAgICBpZiAoc2NoZW1hLiQkcmVmKSB7XG4gICAgICAgIGxldCBtYXRjaCA9IHNjaGVtYS4kJHJlZi5tYXRjaCgvXFxTKlxcLyhcXFMrKSQvKVxuICAgICAgICBzY2hlbWEueG1sLm5hbWUgPSBtYXRjaFsxXVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmbi5qc29uU2NoZW1hMjAyMDEyLm1lbW9pemVkQ3JlYXRlWE1MRXhhbXBsZShcbiAgICAgIHNjaGVtYSxcbiAgICAgIGNvbmZpZyxcbiAgICAgIGV4YW1wbGVPdmVycmlkZVxuICAgIClcbiAgfVxuXG5leHBvcnQgZGVmYXVsdCBtYWtlR2V0WG1sU2FtcGxlU2NoZW1hXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBtYWtlR2V0U2FtcGxlU2NoZW1hID1cbiAgKGdldFN5c3RlbSkgPT5cbiAgKHNjaGVtYSwgY29udGVudFR5cGUgPSBcIlwiLCBjb25maWcgPSB7fSwgZXhhbXBsZU92ZXJyaWRlID0gdW5kZWZpbmVkKSA9PiB7XG4gICAgY29uc3QgeyBmbiB9ID0gZ2V0U3lzdGVtKClcblxuICAgIGlmICh0eXBlb2Ygc2NoZW1hPy50b0pTID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHNjaGVtYSA9IHNjaGVtYS50b0pTKClcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBleGFtcGxlT3ZlcnJpZGU/LnRvSlMgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgZXhhbXBsZU92ZXJyaWRlID0gZXhhbXBsZU92ZXJyaWRlLnRvSlMoKVxuICAgIH1cblxuICAgIGlmICgveG1sLy50ZXN0KGNvbnRlbnRUeXBlKSkge1xuICAgICAgcmV0dXJuIGZuLmpzb25TY2hlbWEyMDIwMTIuZ2V0WG1sU2FtcGxlU2NoZW1hKFxuICAgICAgICBzY2hlbWEsXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgZXhhbXBsZU92ZXJyaWRlXG4gICAgICApXG4gICAgfVxuICAgIGlmICgvKHlhbWx8eW1sKS8udGVzdChjb250ZW50VHlwZSkpIHtcbiAgICAgIHJldHVybiBmbi5qc29uU2NoZW1hMjAyMDEyLmdldFlhbWxTYW1wbGVTY2hlbWEoXG4gICAgICAgIHNjaGVtYSxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBjb250ZW50VHlwZSxcbiAgICAgICAgZXhhbXBsZU92ZXJyaWRlXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBmbi5qc29uU2NoZW1hMjAyMDEyLmdldEpzb25TYW1wbGVTY2hlbWEoXG4gICAgICBzY2hlbWEsXG4gICAgICBjb25maWcsXG4gICAgICBjb250ZW50VHlwZSxcbiAgICAgIGV4YW1wbGVPdmVycmlkZVxuICAgIClcbiAgfVxuXG5leHBvcnQgZGVmYXVsdCBtYWtlR2V0U2FtcGxlU2NoZW1hXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQge1xuICBzYW1wbGVGcm9tU2NoZW1hLFxuICBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyxcbiAgY3JlYXRlWE1MRXhhbXBsZSxcbiAgbWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hLFxuICBtZW1vaXplZENyZWF0ZVhNTEV4YW1wbGUsXG4gIG9wdGlvbkFQSSxcbiAgZW5jb2RlckFQSSxcbiAgbWVkaWFUeXBlQVBJLFxuICBmb3JtYXRBUEksXG4gIG1lcmdlSnNvblNjaGVtYSxcbiAgZm9sZFR5cGUsXG59IGZyb20gXCIuL2ZuL2luZGV4XCJcbmltcG9ydCBtYWtlR2V0SnNvblNhbXBsZVNjaGVtYSBmcm9tIFwiLi9mbi9nZXQtanNvbi1zYW1wbGUtc2NoZW1hXCJcbmltcG9ydCBtYWtlR2V0WWFtbFNhbXBsZVNjaGVtYSBmcm9tIFwiLi9mbi9nZXQteWFtbC1zYW1wbGUtc2NoZW1hXCJcbmltcG9ydCBtYWtlR2V0WG1sU2FtcGxlU2NoZW1hIGZyb20gXCIuL2ZuL2dldC14bWwtc2FtcGxlLXNjaGVtYVwiXG5pbXBvcnQgbWFrZUdldFNhbXBsZVNjaGVtYSBmcm9tIFwiLi9mbi9nZXQtc2FtcGxlLXNjaGVtYVwiXG5cbmNvbnN0IEpTT05TY2hlbWEyMDIwMTJTYW1wbGVzUGx1Z2luID0gKHsgZ2V0U3lzdGVtIH0pID0+IHtcbiAgY29uc3QgZ2V0SnNvblNhbXBsZVNjaGVtYSA9IG1ha2VHZXRKc29uU2FtcGxlU2NoZW1hKGdldFN5c3RlbSlcbiAgY29uc3QgZ2V0WWFtbFNhbXBsZVNjaGVtYSA9IG1ha2VHZXRZYW1sU2FtcGxlU2NoZW1hKGdldFN5c3RlbSlcbiAgY29uc3QgZ2V0WG1sU2FtcGxlU2NoZW1hID0gbWFrZUdldFhtbFNhbXBsZVNjaGVtYShnZXRTeXN0ZW0pXG4gIGNvbnN0IGdldFNhbXBsZVNjaGVtYSA9IG1ha2VHZXRTYW1wbGVTY2hlbWEoZ2V0U3lzdGVtKVxuXG4gIHJldHVybiB7XG4gICAgZm46IHtcbiAgICAgIGpzb25TY2hlbWEyMDIwMTI6IHtcbiAgICAgICAgc2FtcGxlRnJvbVNjaGVtYSxcbiAgICAgICAgc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMsXG4gICAgICAgIHNhbXBsZU9wdGlvbkFQSTogb3B0aW9uQVBJLFxuICAgICAgICBzYW1wbGVFbmNvZGVyQVBJOiBlbmNvZGVyQVBJLFxuICAgICAgICBzYW1wbGVGb3JtYXRBUEk6IGZvcm1hdEFQSSxcbiAgICAgICAgc2FtcGxlTWVkaWFUeXBlQVBJOiBtZWRpYVR5cGVBUEksXG4gICAgICAgIGNyZWF0ZVhNTEV4YW1wbGUsXG4gICAgICAgIG1lbW9pemVkU2FtcGxlRnJvbVNjaGVtYSxcbiAgICAgICAgbWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlLFxuICAgICAgICBnZXRKc29uU2FtcGxlU2NoZW1hLFxuICAgICAgICBnZXRZYW1sU2FtcGxlU2NoZW1hLFxuICAgICAgICBnZXRYbWxTYW1wbGVTY2hlbWEsXG4gICAgICAgIGdldFNhbXBsZVNjaGVtYSxcbiAgICAgICAgbWVyZ2VKc29uU2NoZW1hLFxuICAgICAgICBmb2xkVHlwZSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBKU09OU2NoZW1hMjAyMDEyU2FtcGxlc1BsdWdpblxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IEJhc2VQcmVzZXQgZnJvbSBcImNvcmUvcHJlc2V0cy9iYXNlXCJcbmltcG9ydCBPcGVuQVBJMzBQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy9vYXMzXCJcbmltcG9ydCBPcGVuQVBJMzFQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy9vYXMzMVwiXG5pbXBvcnQgSlNPTlNjaGVtYTIwMjAxMlBsdWdpbiBmcm9tIFwiY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTJcIlxuaW1wb3J0IEpTT05TY2hlbWEyMDIwMTJTYW1wbGVzUGx1Z2luIGZyb20gXCJjb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUHJlc2V0QXBpcygpIHtcbiAgcmV0dXJuIFtcbiAgICBCYXNlUHJlc2V0LFxuICAgIE9wZW5BUEkzMFBsdWdpbixcbiAgICBKU09OU2NoZW1hMjAyMDEyUGx1Z2luLFxuICAgIEpTT05TY2hlbWEyMDIwMTJTYW1wbGVzUGx1Z2luLFxuICAgIE9wZW5BUEkzMVBsdWdpbixcbiAgXVxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuXG5jb25zdCBJbmxpbmVQbHVnaW5GYWN0b3JpemF0aW9uID0gKG9wdGlvbnMpID0+ICgpID0+ICh7XG4gIGZuOiBvcHRpb25zLmZuLFxuICBjb21wb25lbnRzOiBvcHRpb25zLmNvbXBvbmVudHMsXG59KVxuXG5leHBvcnQgZGVmYXVsdCBJbmxpbmVQbHVnaW5GYWN0b3JpemF0aW9uXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgZGVlcEV4dGVuZCBmcm9tIFwiZGVlcC1leHRlbmRcIlxuXG5jb25zdCBzeXN0ZW1GYWN0b3JpemF0aW9uID0gKG9wdGlvbnMpID0+IHtcbiAgY29uc3Qgc3RhdGUgPSBkZWVwRXh0ZW5kKFxuICAgIHtcbiAgICAgIGxheW91dDoge1xuICAgICAgICBsYXlvdXQ6IG9wdGlvbnMubGF5b3V0LFxuICAgICAgICBmaWx0ZXI6IG9wdGlvbnMuZmlsdGVyLFxuICAgICAgfSxcbiAgICAgIHNwZWM6IHtcbiAgICAgICAgc3BlYzogXCJcIixcbiAgICAgICAgdXJsOiBvcHRpb25zLnVybCxcbiAgICAgIH0sXG4gICAgICByZXF1ZXN0U25pcHBldHM6IG9wdGlvbnMucmVxdWVzdFNuaXBwZXRzLFxuICAgIH0sXG4gICAgb3B0aW9ucy5pbml0aWFsU3RhdGVcbiAgKVxuXG4gIGlmIChvcHRpb25zLmluaXRpYWxTdGF0ZSkge1xuICAgIC8qKlxuICAgICAqIElmIHRoZSB1c2VyIHNldHMgYSBrZXkgYXMgYHVuZGVmaW5lZGAsIHRoYXQgc2lnbmFscyB0byB1cyB0aGF0IHdlXG4gICAgICogc2hvdWxkIGRlbGV0ZSB0aGUga2V5IGVudGlyZWx5LlxuICAgICAqIGtub3duIHVzYWdlOiBTd2FnZ2VyLUVkaXRvciB2YWxpZGF0ZSBwbHVnaW4gdGVzdHNcbiAgICAgKi9cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvcHRpb25zLmluaXRpYWxTdGF0ZSkpIHtcbiAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRlbGV0ZSBzdGF0ZVtrZXldXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBzeXN0ZW06IHtcbiAgICAgIGNvbmZpZ3M6IG9wdGlvbnMuY29uZmlncyxcbiAgICB9LFxuICAgIHBsdWdpbnM6IG9wdGlvbnMucHJlc2V0cyxcbiAgICBzdGF0ZSxcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBzeXN0ZW1GYWN0b3JpemF0aW9uXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgc2V0IGZyb20gXCJsb2Rhc2gvc2V0XCJcbmltcG9ydCB7IHBhcnNlU2VhcmNoIH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuXG4vKipcbiAqIFJlY2VpdmVzIG9wdGlvbnMgZnJvbSB0aGUgcXVlcnkgc3RyaW5nIG9mIHRoZSBVUkwgd2hlcmUgU3dhZ2dlclVJXG4gKiBpcyBiZWluZyBzZXJ2ZWQuXG4gKi9cblxuY29uc3Qgb3B0aW9uc0Zyb21RdWVyeSA9ICgpID0+IChvcHRpb25zKSA9PiB7XG4gIGNvbnN0IHVybFNlYXJjaFBhcmFtcyA9IG9wdGlvbnMucXVlcnlDb25maWdFbmFibGVkID8gcGFyc2VTZWFyY2goKSA6IHt9XG5cbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHVybFNlYXJjaFBhcmFtcykucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIC8vIFRPRE8ob2xpd2lhLnJvZ2FsYUBzbWFydGJlYXIuY29tKTogZHJvcCBzdXBwb3J0IGZvciBgY29uZmlnYCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlXG4gICAgaWYgKGtleSA9PT0gXCJjb25maWdcIikge1xuICAgICAgYWNjW1wiY29uZmlnVXJsXCJdID0gdmFsdWVcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gXCJ1cmxzLnByaW1hcnlOYW1lXCIpIHtcbiAgICAgIGFjY1trZXldID0gdmFsdWVcbiAgICB9IGVsc2Uge1xuICAgICAgYWNjID0gc2V0KGFjYywga2V5LCB2YWx1ZSlcbiAgICB9XG4gICAgcmV0dXJuIGFjY1xuICB9LCB7fSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgb3B0aW9uc0Zyb21RdWVyeVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqIFJlY2VpdmVzIG9wdGlvbnMgZnJvbSBhIHJlbW90ZSBVUkwuXG4gKi9cbmNvbnN0IG1ha2VEZWZlcnJlZCA9ICgpID0+IHtcbiAgY29uc3QgZGVmZXJyZWQgPSB7fVxuICBkZWZlcnJlZC5wcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGRlZmVycmVkLnJlc29sdmUgPSByZXNvbHZlXG4gICAgZGVmZXJyZWQucmVqZWN0ID0gcmVqZWN0XG4gIH0pXG4gIHJldHVybiBkZWZlcnJlZFxufVxuXG5jb25zdCBvcHRpb25zRnJvbVVSTCA9XG4gICh7IHVybCwgc3lzdGVtIH0pID0+XG4gIGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgaWYgKCF1cmwpIHJldHVybiB7fVxuICAgIGlmICh0eXBlb2Ygc3lzdGVtLmNvbmZpZ3NBY3Rpb25zPy5nZXRDb25maWdCeVVybCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4ge31cbiAgICBjb25zdCBkZWZlcnJlZCA9IG1ha2VEZWZlcnJlZCgpXG4gICAgY29uc3QgY2FsbGJhY2sgPSAoZmV0Y2hlZE9wdGlvbnMpID0+IHtcbiAgICAgIC8vIHJlY2VpdmVzIG51bGwgb24gcmVtb3RlIFVSTCBmZXRjaCBmYWlsdXJlXG4gICAgICBkZWZlcnJlZC5yZXNvbHZlKGZldGNoZWRPcHRpb25zKVxuICAgIH1cblxuICAgIHN5c3RlbS5jb25maWdzQWN0aW9ucy5nZXRDb25maWdCeVVybChcbiAgICAgIHtcbiAgICAgICAgdXJsLFxuICAgICAgICBsb2FkUmVtb3RlQ29uZmlnOiB0cnVlLFxuICAgICAgICByZXF1ZXN0SW50ZXJjZXB0b3I6IG9wdGlvbnMucmVxdWVzdEludGVyY2VwdG9yLFxuICAgICAgICByZXNwb25zZUludGVyY2VwdG9yOiBvcHRpb25zLnJlc3BvbnNlSW50ZXJjZXB0b3IsXG4gICAgICB9LFxuICAgICAgY2FsbGJhY2tcbiAgICApXG5cbiAgICByZXR1cm4gZGVmZXJyZWQucHJvbWlzZVxuICB9XG5cbmV4cG9ydCBkZWZhdWx0IG9wdGlvbnNGcm9tVVJMXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICpcbiAqIFJlY2VpdmVzIG9wdGlvbnMgYXQgcnVudGltZS5cbiAqL1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bmRlZiAqL1xuY29uc3Qgb3B0aW9uc0Zyb21SdW50aW1lID0gKCkgPT4gKCkgPT4ge1xuICBjb25zdCBvcHRpb25zID0ge31cblxuICBpZiAoZ2xvYmFsVGhpcy5sb2NhdGlvbikge1xuICAgIG9wdGlvbnMub2F1dGgyUmVkaXJlY3RVcmwgPSBgJHtnbG9iYWxUaGlzLmxvY2F0aW9uLnByb3RvY29sfS8vJHtnbG9iYWxUaGlzLmxvY2F0aW9uLmhvc3R9JHtnbG9iYWxUaGlzLmxvY2F0aW9uLnBhdGhuYW1lLnN1YnN0cmluZygwLCBnbG9iYWxUaGlzLmxvY2F0aW9uLnBhdGhuYW1lLmxhc3RJbmRleE9mKFwiL1wiKSl9L29hdXRoMi1yZWRpcmVjdC5odG1sYFxuICB9XG5cbiAgcmV0dXJuIG9wdGlvbnNcbn1cblxuZXhwb3J0IGRlZmF1bHQgb3B0aW9uc0Zyb21SdW50aW1lXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgQXBpc1ByZXNldCBmcm9tIFwiY29yZS9wcmVzZXRzL2FwaXNcIlxuXG5jb25zdCBkZWZhdWx0T3B0aW9ucyA9IE9iamVjdC5mcmVlemUoe1xuICBkb21faWQ6IG51bGwsXG4gIGRvbU5vZGU6IG51bGwsXG4gIHNwZWM6IHt9LFxuICB1cmw6IFwiXCIsXG4gIHVybHM6IG51bGwsXG4gIGNvbmZpZ1VybDogbnVsbCxcbiAgbGF5b3V0OiBcIkJhc2VMYXlvdXRcIixcbiAgZG9jRXhwYW5zaW9uOiBcImxpc3RcIixcbiAgbWF4RGlzcGxheWVkVGFnczogLTEsXG4gIGZpbHRlcjogZmFsc2UsXG4gIHZhbGlkYXRvclVybDogXCJodHRwczovL3ZhbGlkYXRvci5zd2FnZ2VyLmlvL3ZhbGlkYXRvclwiLFxuICBvYXV0aDJSZWRpcmVjdFVybDogdW5kZWZpbmVkLFxuICBwZXJzaXN0QXV0aG9yaXphdGlvbjogZmFsc2UsXG4gIGNvbmZpZ3M6IHt9LFxuICBkaXNwbGF5T3BlcmF0aW9uSWQ6IGZhbHNlLFxuICBkaXNwbGF5UmVxdWVzdER1cmF0aW9uOiBmYWxzZSxcbiAgZGVlcExpbmtpbmc6IGZhbHNlLFxuICB0cnlJdE91dEVuYWJsZWQ6IGZhbHNlLFxuICByZXF1ZXN0SW50ZXJjZXB0b3I6IChyZXF1ZXN0KSA9PiB7XG4gICAgcmVxdWVzdC5jdXJsT3B0aW9ucyA9IFtdXG4gICAgcmV0dXJuIHJlcXVlc3RcbiAgfSxcbiAgcmVzcG9uc2VJbnRlcmNlcHRvcjogKGEpID0+IGEsXG4gIHNob3dNdXRhdGVkUmVxdWVzdDogdHJ1ZSxcbiAgZGVmYXVsdE1vZGVsUmVuZGVyaW5nOiBcImV4YW1wbGVcIixcbiAgZGVmYXVsdE1vZGVsRXhwYW5kRGVwdGg6IDEsXG4gIGRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aDogMSxcbiAgc2hvd0V4dGVuc2lvbnM6IGZhbHNlLFxuICBzaG93Q29tbW9uRXh0ZW5zaW9uczogZmFsc2UsXG4gIHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG4gIHJlcXVlc3RTbmlwcGV0c0VuYWJsZWQ6IGZhbHNlLFxuICByZXF1ZXN0U25pcHBldHM6IHtcbiAgICBnZW5lcmF0b3JzOiB7XG4gICAgICBjdXJsX2Jhc2g6IHtcbiAgICAgICAgdGl0bGU6IFwiY1VSTCAoYmFzaClcIixcbiAgICAgICAgc3ludGF4OiBcImJhc2hcIixcbiAgICAgIH0sXG4gICAgICBjdXJsX3Bvd2Vyc2hlbGw6IHtcbiAgICAgICAgdGl0bGU6IFwiY1VSTCAoUG93ZXJTaGVsbClcIixcbiAgICAgICAgc3ludGF4OiBcInBvd2Vyc2hlbGxcIixcbiAgICAgIH0sXG4gICAgICBjdXJsX2NtZDoge1xuICAgICAgICB0aXRsZTogXCJjVVJMIChDTUQpXCIsXG4gICAgICAgIHN5bnRheDogXCJiYXNoXCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAgZGVmYXVsdEV4cGFuZGVkOiB0cnVlLFxuICAgIGxhbmd1YWdlczogbnVsbCwgLy8gZS5nLiBvbmx5IHNob3cgY3VybCBiYXNoID0gW1wiY3VybF9iYXNoXCJdXG4gIH0sXG4gIHN1cHBvcnRlZFN1Ym1pdE1ldGhvZHM6IFtcbiAgICBcImdldFwiLFxuICAgIFwicHV0XCIsXG4gICAgXCJwb3N0XCIsXG4gICAgXCJkZWxldGVcIixcbiAgICBcIm9wdGlvbnNcIixcbiAgICBcImhlYWRcIixcbiAgICBcInBhdGNoXCIsXG4gICAgXCJ0cmFjZVwiLFxuICBdLFxuICBxdWVyeUNvbmZpZ0VuYWJsZWQ6IGZhbHNlLFxuXG4gIC8vIEluaXRpYWwgc2V0IG9mIHBsdWdpbnMgKCBUT0RPIHJlbmFtZSB0aGlzLCBvciByZWZhY3RvciAtIHdlIGRvbid0IG5lZWQgcHJlc2V0cyBfYW5kXyBwbHVnaW5zLiBJdHMganVzdCB0aGVyZSBmb3IgcGVyZm9ybWFuY2UuXG4gIC8vIEluc3RlYWQsIHdlIGNhbiBjb21waWxlIHRoZSBmaXJzdCBwbHVnaW4gKCBpdCBjYW4gYmUgYSBjb2xsZWN0aW9uIG9mIHBsdWdpbnMgKSwgdGhlbiBiYXRjaCB0aGUgcmVzdC5cbiAgcHJlc2V0czogW0FwaXNQcmVzZXRdLFxuXG4gIC8vIFBsdWdpbnM7ICggbG9hZGVkIGFmdGVyIHByZXNldHMgKVxuICBwbHVnaW5zOiBbXSxcblxuICBpbml0aWFsU3RhdGU6IHt9LFxuXG4gIC8vIElubGluZSBQbHVnaW5cbiAgZm46IHt9LFxuICBjb21wb25lbnRzOiB7fSxcblxuICBzeW50YXhIaWdobGlnaHQ6IHtcbiAgICBhY3RpdmF0ZWQ6IHRydWUsXG4gICAgdGhlbWU6IFwiYWdhdGVcIixcbiAgfSxcbiAgb3BlcmF0aW9uc1NvcnRlcjogbnVsbCxcbiAgdGFnc1NvcnRlcjogbnVsbCxcbiAgb25Db21wbGV0ZTogbnVsbCxcbiAgbW9kZWxQcm9wZXJ0eU1hY3JvOiBudWxsLFxuICBwYXJhbWV0ZXJNYWNybzogbnVsbCxcblxuICBmaWxlVXBsb2FkTWVkaWFUeXBlczogW1xuICAgIFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIsXG4gICAgXCJpbWFnZS9cIixcbiAgICBcImF1ZGlvL1wiLFxuICAgIFwidmlkZW8vXCIsXG4gIF0sXG5cbiAgdW5jYXVnaHRFeGNlcHRpb25IYW5kbGVyOiBudWxsLFxufSlcblxuZXhwb3J0IGRlZmF1bHQgZGVmYXVsdE9wdGlvbnNcbiIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImRlZmF1bHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfaGFzX2U5ZTQ1M2JlX19bXCJkZWZhdWx0XCJdOyB9IH0pOyIsInZhciB4ID0gZnVuY3Rpb24oeSkge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSBmdW5jdGlvbih4KSB7IHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImRlZmF1bHRcIl06IGZ1bmN0aW9uKCkgeyByZXR1cm4gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfZnBfc2V0X2IyZjM4Mzk2X19bXCJkZWZhdWx0XCJdOyB9IH0pOyIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGFycmF5VHlwZUNhc3RlciA9ICh2YWx1ZSwgZGVmYXVsdFZhbHVlID0gW10pID0+XG4gIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBkZWZhdWx0VmFsdWVcblxuZXhwb3J0IGRlZmF1bHQgYXJyYXlUeXBlQ2FzdGVyXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBib29sZWFuVHlwZUNhc3RlciA9ICh2YWx1ZSwgZGVmYXVsdFZhbHVlID0gZmFsc2UpID0+XG4gIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSBcInRydWVcIiB8fCB2YWx1ZSA9PT0gMSB8fCB2YWx1ZSA9PT0gXCIxXCJcbiAgICA/IHRydWVcbiAgICA6IHZhbHVlID09PSBmYWxzZSB8fCB2YWx1ZSA9PT0gXCJmYWxzZVwiIHx8IHZhbHVlID09PSAwIHx8IHZhbHVlID09PSBcIjBcIlxuICAgICAgPyBmYWxzZVxuICAgICAgOiBkZWZhdWx0VmFsdWVcblxuZXhwb3J0IGRlZmF1bHQgYm9vbGVhblR5cGVDYXN0ZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGRvbU5vZGVUeXBlQ2FzdGVyID0gKHZhbHVlKSA9PlxuICB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gXCJudWxsXCIgPyBudWxsIDogdmFsdWVcblxuZXhwb3J0IGRlZmF1bHQgZG9tTm9kZVR5cGVDYXN0ZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBib29sZWFuVHlwZUNhc3RlciBmcm9tIFwiLi9ib29sZWFuXCJcblxuY29uc3QgZmlsdGVyVHlwZUNhc3RlciA9ICh2YWx1ZSkgPT4ge1xuICBjb25zdCBkZWZhdWx0VmFsdWUgPSBTdHJpbmcodmFsdWUpXG4gIHJldHVybiBib29sZWFuVHlwZUNhc3Rlcih2YWx1ZSwgZGVmYXVsdFZhbHVlKVxufVxuXG5leHBvcnQgZGVmYXVsdCBmaWx0ZXJUeXBlQ2FzdGVyXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBmdW5jdGlvblR5cGVDYXN0ZXIgPSAodmFsdWUsIGRlZmF1bHRWYWx1ZSkgPT5cbiAgdHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCIgPyB2YWx1ZSA6IGRlZmF1bHRWYWx1ZVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvblR5cGVDYXN0ZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IG51bGxhYmxlQXJyYXlUeXBlQ2FzdGVyID0gKHZhbHVlKSA9PiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IG51bGwpXG5cbmV4cG9ydCBkZWZhdWx0IG51bGxhYmxlQXJyYXlUeXBlQ2FzdGVyXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBudWxsYWJsZUZ1bmN0aW9uVHlwZUNhc3RlciA9ICh2YWx1ZSkgPT5cbiAgdHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCIgPyB2YWx1ZSA6IG51bGxcblxuZXhwb3J0IGRlZmF1bHQgbnVsbGFibGVGdW5jdGlvblR5cGVDYXN0ZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IG51bGxhYmxlU3RyaW5nVHlwZUNhc3RlciA9ICh2YWx1ZSkgPT5cbiAgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IFwibnVsbFwiID8gbnVsbCA6IFN0cmluZyh2YWx1ZSlcblxuZXhwb3J0IGRlZmF1bHQgbnVsbGFibGVTdHJpbmdUeXBlQ2FzdGVyXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBudW1iZXJUeXBlQ2FzdGVyID0gKHZhbHVlLCBkZWZhdWx0VmFsdWUgPSAtMSkgPT4ge1xuICBjb25zdCBwYXJzZWRWYWx1ZSA9IHBhcnNlSW50KHZhbHVlLCAxMClcbiAgcmV0dXJuIE51bWJlci5pc05hTihwYXJzZWRWYWx1ZSkgPyBkZWZhdWx0VmFsdWUgOiBwYXJzZWRWYWx1ZVxufVxuXG5leHBvcnQgZGVmYXVsdCBudW1iZXJUeXBlQ2FzdGVyXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tIFwibG9kYXNoL2lzUGxhaW5PYmplY3RcIlxuXG5jb25zdCBvYmplY3RUeXBlQ2FzdGVyID0gKHZhbHVlLCBkZWZhdWx0VmFsdWUgPSB7fSkgPT5cbiAgaXNQbGFpbk9iamVjdCh2YWx1ZSkgPyB2YWx1ZSA6IGRlZmF1bHRWYWx1ZVxuXG5leHBvcnQgZGVmYXVsdCBvYmplY3RUeXBlQ2FzdGVyXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBzb3J0ZXJUeXBlQ2FzdGVyID0gKHZhbHVlKSA9PlxuICB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIiB8fCB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgPyB2YWx1ZSA6IG51bGxcblxuZXhwb3J0IGRlZmF1bHQgc29ydGVyVHlwZUNhc3RlclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3Qgc3RyaW5nVHlwZUNhc3RlciA9ICh2YWx1ZSkgPT4gU3RyaW5nKHZhbHVlKVxuXG5leHBvcnQgZGVmYXVsdCBzdHJpbmdUeXBlQ2FzdGVyXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tIFwibG9kYXNoL2lzUGxhaW5PYmplY3RcIlxuXG5jb25zdCBzeW50YXhIaWdobGlnaHRUeXBlQ2FzdGVyID0gKHZhbHVlLCBkZWZhdWx0VmFsdWUpID0+IHtcbiAgcmV0dXJuIGlzUGxhaW5PYmplY3QodmFsdWUpXG4gICAgPyB2YWx1ZVxuICAgIDogdmFsdWUgPT09IGZhbHNlIHx8IHZhbHVlID09PSBcImZhbHNlXCIgfHwgdmFsdWUgPT09IDAgfHwgdmFsdWUgPT09IFwiMFwiXG4gICAgICA/IHsgYWN0aXZhdGVkOiBmYWxzZSB9XG4gICAgICA6IGRlZmF1bHRWYWx1ZVxufVxuXG5leHBvcnQgZGVmYXVsdCBzeW50YXhIaWdobGlnaHRUeXBlQ2FzdGVyXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCB1bmRlZmluZWRTdHJpbmdUeXBlQ2FzdGVyID0gKHZhbHVlKSA9PlxuICB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBcInVuZGVmaW5lZFwiID8gdW5kZWZpbmVkIDogU3RyaW5nKHZhbHVlKVxuXG5leHBvcnQgZGVmYXVsdCB1bmRlZmluZWRTdHJpbmdUeXBlQ2FzdGVyXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgYXJyYXlUeXBlQ2FzdGVyIGZyb20gXCIuL3R5cGUtY2FzdGVycy9hcnJheVwiXG5pbXBvcnQgYm9vbGVhblR5cGVDYXN0ZXIgZnJvbSBcIi4vdHlwZS1jYXN0ZXJzL2Jvb2xlYW5cIlxuaW1wb3J0IGRvbU5vZGVUeXBlQ2FzdGVyIGZyb20gXCIuL3R5cGUtY2FzdGVycy9kb20tbm9kZVwiXG5pbXBvcnQgZmlsdGVyVHlwZUNhc3RlciBmcm9tIFwiLi90eXBlLWNhc3RlcnMvZmlsdGVyXCJcbmltcG9ydCBmdW5jdGlvblR5cGVDYXN0ZXIgZnJvbSBcIi4vdHlwZS1jYXN0ZXJzL2Z1bmN0aW9uXCJcbmltcG9ydCBudWxsYWJsZUFycmF5VHlwZUNhc3RlciBmcm9tIFwiLi90eXBlLWNhc3RlcnMvbnVsbGFibGUtYXJyYXlcIlxuaW1wb3J0IG51bGxhYmxlRnVuY3Rpb25UeXBlQ2FzdGVyIGZyb20gXCIuL3R5cGUtY2FzdGVycy9udWxsYWJsZS1mdW5jdGlvblwiXG5pbXBvcnQgbnVsbGFibGVTdHJpbmdUeXBlQ2FzdGVyIGZyb20gXCIuL3R5cGUtY2FzdGVycy9udWxsYWJsZS1zdHJpbmdcIlxuaW1wb3J0IG51bWJlclR5cGVDYXN0ZXIgZnJvbSBcIi4vdHlwZS1jYXN0ZXJzL251bWJlclwiXG5pbXBvcnQgb2JqZWN0VHlwZUNhc3RlciBmcm9tIFwiLi90eXBlLWNhc3RlcnMvb2JqZWN0XCJcbmltcG9ydCBzb3J0ZXJUeXBlQ2FzdGVyIGZyb20gXCIuL3R5cGUtY2FzdGVycy9zb3J0ZXJcIlxuaW1wb3J0IHN0cmluZ1R5cGVDYXN0ZXIgZnJvbSBcIi4vdHlwZS1jYXN0ZXJzL3N0cmluZ1wiXG5pbXBvcnQgc3ludGF4SGlnaGxpZ2h0VHlwZUNhc3RlciBmcm9tIFwiLi90eXBlLWNhc3RlcnMvc3ludGF4LWhpZ2hsaWdodFwiXG5pbXBvcnQgdW5kZWZpbmVkU3RyaW5nVHlwZUNhc3RlciBmcm9tIFwiLi90eXBlLWNhc3RlcnMvdW5kZWZpbmVkLXN0cmluZ1wiXG5pbXBvcnQgZGVmYXVsdE9wdGlvbnMgZnJvbSBcIi4uL2RlZmF1bHRzXCJcblxuY29uc3QgbWFwcGluZ3MgPSB7XG4gIGNvbXBvbmVudHM6IHsgdHlwZUNhc3Rlcjogb2JqZWN0VHlwZUNhc3RlciB9LFxuICBjb25maWdzOiB7IHR5cGVDYXN0ZXI6IG9iamVjdFR5cGVDYXN0ZXIgfSxcbiAgY29uZmlnVXJsOiB7IHR5cGVDYXN0ZXI6IG51bGxhYmxlU3RyaW5nVHlwZUNhc3RlciB9LFxuICBkZWVwTGlua2luZzoge1xuICAgIHR5cGVDYXN0ZXI6IGJvb2xlYW5UeXBlQ2FzdGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdE9wdGlvbnMuZGVlcExpbmtpbmcsXG4gIH0sXG4gIGRlZmF1bHRNb2RlbEV4cGFuZERlcHRoOiB7XG4gICAgdHlwZUNhc3RlcjogbnVtYmVyVHlwZUNhc3RlcixcbiAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRPcHRpb25zLmRlZmF1bHRNb2RlbEV4cGFuZERlcHRoLFxuICB9LFxuICBkZWZhdWx0TW9kZWxSZW5kZXJpbmc6IHsgdHlwZUNhc3Rlcjogc3RyaW5nVHlwZUNhc3RlciB9LFxuICBkZWZhdWx0TW9kZWxzRXhwYW5kRGVwdGg6IHtcbiAgICB0eXBlQ2FzdGVyOiBudW1iZXJUeXBlQ2FzdGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdE9wdGlvbnMuZGVmYXVsdE1vZGVsc0V4cGFuZERlcHRoLFxuICB9LFxuICBkaXNwbGF5T3BlcmF0aW9uSWQ6IHtcbiAgICB0eXBlQ2FzdGVyOiBib29sZWFuVHlwZUNhc3RlcixcbiAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRPcHRpb25zLmRpc3BsYXlPcGVyYXRpb25JZCxcbiAgfSxcbiAgZGlzcGxheVJlcXVlc3REdXJhdGlvbjoge1xuICAgIHR5cGVDYXN0ZXI6IGJvb2xlYW5UeXBlQ2FzdGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdE9wdGlvbnMuZGlzcGxheVJlcXVlc3REdXJhdGlvbixcbiAgfSxcbiAgZG9jRXhwYW5zaW9uOiB7IHR5cGVDYXN0ZXI6IHN0cmluZ1R5cGVDYXN0ZXIgfSxcbiAgZG9tX2lkOiB7IHR5cGVDYXN0ZXI6IG51bGxhYmxlU3RyaW5nVHlwZUNhc3RlciB9LFxuICBkb21Ob2RlOiB7IHR5cGVDYXN0ZXI6IGRvbU5vZGVUeXBlQ2FzdGVyIH0sXG4gIGZpbGVVcGxvYWRNZWRpYVR5cGVzOiB7XG4gICAgdHlwZUNhc3RlcjogYXJyYXlUeXBlQ2FzdGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdE9wdGlvbnMuZmlsZVVwbG9hZE1lZGlhVHlwZXMsXG4gIH0sXG4gIGZpbHRlcjogeyB0eXBlQ2FzdGVyOiBmaWx0ZXJUeXBlQ2FzdGVyIH0sXG4gIGZuOiB7IHR5cGVDYXN0ZXI6IG9iamVjdFR5cGVDYXN0ZXIgfSxcbiAgaW5pdGlhbFN0YXRlOiB7IHR5cGVDYXN0ZXI6IG9iamVjdFR5cGVDYXN0ZXIgfSxcbiAgbGF5b3V0OiB7IHR5cGVDYXN0ZXI6IHN0cmluZ1R5cGVDYXN0ZXIgfSxcbiAgbWF4RGlzcGxheWVkVGFnczoge1xuICAgIHR5cGVDYXN0ZXI6IG51bWJlclR5cGVDYXN0ZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0T3B0aW9ucy5tYXhEaXNwbGF5ZWRUYWdzLFxuICB9LFxuICBtb2RlbFByb3BlcnR5TWFjcm86IHsgdHlwZUNhc3RlcjogbnVsbGFibGVGdW5jdGlvblR5cGVDYXN0ZXIgfSxcbiAgb2F1dGgyUmVkaXJlY3RVcmw6IHsgdHlwZUNhc3RlcjogdW5kZWZpbmVkU3RyaW5nVHlwZUNhc3RlciB9LFxuICBvbkNvbXBsZXRlOiB7IHR5cGVDYXN0ZXI6IG51bGxhYmxlRnVuY3Rpb25UeXBlQ2FzdGVyIH0sXG4gIG9wZXJhdGlvbnNTb3J0ZXI6IHtcbiAgICB0eXBlQ2FzdGVyOiBzb3J0ZXJUeXBlQ2FzdGVyLFxuICB9LFxuICBwYXJhbWF0ZXJNYWNybzogeyB0eXBlQ2FzdGVyOiBudWxsYWJsZUZ1bmN0aW9uVHlwZUNhc3RlciB9LFxuICBwZXJzaXN0QXV0aG9yaXphdGlvbjoge1xuICAgIHR5cGVDYXN0ZXI6IGJvb2xlYW5UeXBlQ2FzdGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdE9wdGlvbnMucGVyc2lzdEF1dGhvcml6YXRpb24sXG4gIH0sXG4gIHBsdWdpbnM6IHtcbiAgICB0eXBlQ2FzdGVyOiBhcnJheVR5cGVDYXN0ZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0T3B0aW9ucy5wbHVnaW5zLFxuICB9LFxuICBwcmVzZXRzOiB7XG4gICAgdHlwZUNhc3RlcjogYXJyYXlUeXBlQ2FzdGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdE9wdGlvbnMucHJlc2V0cyxcbiAgfSxcbiAgcmVxdWVzdEludGVyY2VwdG9yOiB7XG4gICAgdHlwZUNhc3RlcjogZnVuY3Rpb25UeXBlQ2FzdGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdE9wdGlvbnMucmVxdWVzdEludGVyY2VwdG9yLFxuICB9LFxuICByZXF1ZXN0U25pcHBldHM6IHtcbiAgICB0eXBlQ2FzdGVyOiBvYmplY3RUeXBlQ2FzdGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdE9wdGlvbnMucmVxdWVzdFNuaXBwZXRzLFxuICB9LFxuICByZXF1ZXN0U25pcHBldHNFbmFibGVkOiB7XG4gICAgdHlwZUNhc3RlcjogYm9vbGVhblR5cGVDYXN0ZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0T3B0aW9ucy5yZXF1ZXN0U25pcHBldHNFbmFibGVkLFxuICB9LFxuICByZXNwb25zZUludGVyY2VwdG9yOiB7XG4gICAgdHlwZUNhc3RlcjogZnVuY3Rpb25UeXBlQ2FzdGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdE9wdGlvbnMucmVzcG9uc2VJbnRlcmNlcHRvcixcbiAgfSxcbiAgc2hvd0NvbW1vbkV4dGVuc2lvbnM6IHtcbiAgICB0eXBlQ2FzdGVyOiBib29sZWFuVHlwZUNhc3RlcixcbiAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRPcHRpb25zLnNob3dDb21tb25FeHRlbnNpb25zLFxuICB9LFxuICBzaG93RXh0ZW5zaW9uczoge1xuICAgIHR5cGVDYXN0ZXI6IGJvb2xlYW5UeXBlQ2FzdGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdE9wdGlvbnMuc2hvd0V4dGVuc2lvbnMsXG4gIH0sXG4gIHNob3dNdXRhdGVkUmVxdWVzdDoge1xuICAgIHR5cGVDYXN0ZXI6IGJvb2xlYW5UeXBlQ2FzdGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdE9wdGlvbnMuc2hvd011dGF0ZWRSZXF1ZXN0LFxuICB9LFxuICBzcGVjOiB7IHR5cGVDYXN0ZXI6IG9iamVjdFR5cGVDYXN0ZXIsIGRlZmF1bHRWYWx1ZTogZGVmYXVsdE9wdGlvbnMuc3BlYyB9LFxuICBzdXBwb3J0ZWRTdWJtaXRNZXRob2RzOiB7XG4gICAgdHlwZUNhc3RlcjogYXJyYXlUeXBlQ2FzdGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdE9wdGlvbnMuc3VwcG9ydGVkU3VibWl0TWV0aG9kcyxcbiAgfSxcbiAgc3ludGF4SGlnaGxpZ2h0OiB7XG4gICAgdHlwZUNhc3Rlcjogc3ludGF4SGlnaGxpZ2h0VHlwZUNhc3RlcixcbiAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRPcHRpb25zLnN5bnRheEhpZ2hsaWdodCxcbiAgfSxcbiAgXCJzeW50YXhIaWdobGlnaHQuYWN0aXZhdGVkXCI6IHtcbiAgICB0eXBlQ2FzdGVyOiBib29sZWFuVHlwZUNhc3RlcixcbiAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRPcHRpb25zLnN5bnRheEhpZ2hsaWdodC5hY3RpdmF0ZWQsXG4gIH0sXG4gIFwic3ludGF4SGlnaGxpZ2h0LnRoZW1lXCI6IHsgdHlwZUNhc3Rlcjogc3RyaW5nVHlwZUNhc3RlciB9LFxuICB0YWdzU29ydGVyOiB7XG4gICAgdHlwZUNhc3Rlcjogc29ydGVyVHlwZUNhc3RlcixcbiAgfSxcbiAgdHJ5SXRPdXRFbmFibGVkOiB7XG4gICAgdHlwZUNhc3RlcjogYm9vbGVhblR5cGVDYXN0ZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0T3B0aW9ucy50cnlJdE91dEVuYWJsZWQsXG4gIH0sXG4gIHVybDogeyB0eXBlQ2FzdGVyOiBzdHJpbmdUeXBlQ2FzdGVyIH0sXG4gIHVybHM6IHsgdHlwZUNhc3RlcjogbnVsbGFibGVBcnJheVR5cGVDYXN0ZXIgfSxcbiAgXCJ1cmxzLnByaW1hcnlOYW1lXCI6IHsgdHlwZUNhc3Rlcjogc3RyaW5nVHlwZUNhc3RlciB9LFxuICB2YWxpZGF0b3JVcmw6IHsgdHlwZUNhc3RlcjogbnVsbGFibGVTdHJpbmdUeXBlQ2FzdGVyIH0sXG4gIHdpdGhDcmVkZW50aWFsczoge1xuICAgIHR5cGVDYXN0ZXI6IGJvb2xlYW5UeXBlQ2FzdGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdE9wdGlvbnMud2l0aENyZWRlbnRpYWxzLFxuICB9LFxuICB1bmNhdWdodEV4Y2VwdGlvbkhhbmRsZXI6IHsgdHlwZUNhc3RlcjogbnVsbGFibGVGdW5jdGlvblR5cGVDYXN0ZXIgfSxcbn1cblxuZXhwb3J0IGRlZmF1bHQgbWFwcGluZ3NcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBoYXMgZnJvbSBcImxvZGFzaC9oYXNcIlxuaW1wb3J0IGdldCBmcm9tIFwibG9kYXNoL2dldFwiXG5pbXBvcnQgc2V0IGZyb20gXCJsb2Rhc2gvZnAvc2V0XCJcblxuaW1wb3J0IG1hcHBpbmdzIGZyb20gXCIuL21hcHBpbmdzXCJcblxuY29uc3QgdHlwZUNhc3QgPSAob3B0aW9ucykgPT4ge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMobWFwcGluZ3MpLnJlZHVjZShcbiAgICAoYWNjLCBbb3B0aW9uUGF0aCwgeyB0eXBlQ2FzdGVyLCBkZWZhdWx0VmFsdWUgfV0pID0+IHtcbiAgICAgIGlmIChoYXMoYWNjLCBvcHRpb25QYXRoKSkge1xuICAgICAgICBjb25zdCB1bmNhc3RlZCA9IGdldChhY2MsIG9wdGlvblBhdGgpXG4gICAgICAgIGNvbnN0IGNhc3RlZCA9IHR5cGVDYXN0ZXIodW5jYXN0ZWQsIGRlZmF1bHRWYWx1ZSlcbiAgICAgICAgYWNjID0gc2V0KG9wdGlvblBhdGgsIGNhc3RlZCwgYWNjKVxuICAgICAgfVxuICAgICAgcmV0dXJuIGFjY1xuICAgIH0sXG4gICAgeyAuLi5vcHRpb25zIH1cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCB0eXBlQ2FzdFxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqXG4gKiBXZSdyZSBjdXJyZW50bHkgc3R1Y2sgd2l0aCB1c2luZyBkZWVwLWV4dGVuZCBhcyBpdCBoYW5kbGVzIHRoZSBmb2xsb3dpbmcgY2FzZTpcbiAqXG4gKiBkZWVwRXh0ZW5kKHsgYTogMSB9LCB7IGE6IHVuZGVmaW5lZCB9KSA9PiB7IGE6IHVuZGVmaW5lZCB9XG4gKlxuICogTk9URTE6IGxvZGFzaC5tZXJnZSAmIGxvZGFzaC5tZXJnZVdpdGggcHJlZmVycyB0byBpZ25vcmUgdW5kZWZpbmVkIHZhbHVlc1xuICogTk9URTI6IHNwZWNpYWwgaGFuZGxpbmcgb2YgYGRvbU5vZGVgIG9wdGlvbiBpcyBub3cgcmVxdWlyZWQgYXMgYGRlZXAtZXh0ZW5kYCB3aWxsIGNvcnJ1cHQgaXQgKGxvZGFzaC5tZXJnZSBoYW5kbGVzIGl0IGNvcnJlY3RseSlcbiAqIE5PVEUzOiBvYXV0aDJSZWRpcmVjdFVybCBvcHRpb24gY2FuIGJlIHNldCB0byB1bmRlZmluZWQuIEJ5IGV4cGVjdGluZyBudWxsIGluc3RlYWQgb2YgdW5kZWZpbmVkLCB3ZSBjYW4ndCB1c2UgbG9kYXNoLm1lcmdlLlxuICogTk9URTQ6IHVybHMucHJpbWFyeU5hbWUgbmVlZHMgdG8gaGFuZGxlZCBpbiBzcGVjaWFsIHdheSwgYmVjYXVzZSBpdCdzIGFuIGFyYml0cmFyeSBwcm9wZXJ0eSBvbiBBcnJheSBpbnN0YW5jZVxuICpcbiAqIFRPRE8odmxhZGltaXIuZ29yZWpAZ21haWwuY29tKTogcmVtb3ZlIGRlZXAtZXh0ZW5kIGluIGZhdm9yIG9mIGxvZGFzaC5tZXJnZVxuICovXG5pbXBvcnQgZGVlcEV4dGVuZCBmcm9tIFwiZGVlcC1leHRlbmRcIlxuaW1wb3J0IHR5cGVDYXN0IGZyb20gXCIuL3R5cGUtY2FzdFwiXG5cbmNvbnN0IG1lcmdlID0gKHRhcmdldCwgLi4uc291cmNlcykgPT4ge1xuICBsZXQgZG9tTm9kZSA9IFN5bWJvbC5mb3IoXCJkb21Ob2RlXCIpXG4gIGxldCBwcmltYXJ5TmFtZSA9IFN5bWJvbC5mb3IoXCJwcmltYXJ5TmFtZVwiKVxuICBjb25zdCBzb3VyY2VzV2l0aG91dEV4Y2VwdGlvbnMgPSBbXVxuXG4gIGZvciAoY29uc3Qgc291cmNlIG9mIHNvdXJjZXMpIHtcbiAgICBjb25zdCBzb3VyY2VXaXRob3V0RXhjZXB0aW9ucyA9IHsgLi4uc291cmNlIH1cblxuICAgIGlmIChPYmplY3QuaGFzT3duKHNvdXJjZVdpdGhvdXRFeGNlcHRpb25zLCBcImRvbU5vZGVcIikpIHtcbiAgICAgIGRvbU5vZGUgPSBzb3VyY2VXaXRob3V0RXhjZXB0aW9ucy5kb21Ob2RlXG4gICAgICBkZWxldGUgc291cmNlV2l0aG91dEV4Y2VwdGlvbnMuZG9tTm9kZVxuICAgIH1cblxuICAgIGlmIChPYmplY3QuaGFzT3duKHNvdXJjZVdpdGhvdXRFeGNlcHRpb25zLCBcInVybHMucHJpbWFyeU5hbWVcIikpIHtcbiAgICAgIHByaW1hcnlOYW1lID0gc291cmNlV2l0aG91dEV4Y2VwdGlvbnNbXCJ1cmxzLnByaW1hcnlOYW1lXCJdXG4gICAgICBkZWxldGUgc291cmNlV2l0aG91dEV4Y2VwdGlvbnNbXCJ1cmxzLnByaW1hcnlOYW1lXCJdXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIEFycmF5LmlzQXJyYXkoc291cmNlV2l0aG91dEV4Y2VwdGlvbnMudXJscykgJiZcbiAgICAgIE9iamVjdC5oYXNPd24oc291cmNlV2l0aG91dEV4Y2VwdGlvbnMudXJscywgXCJwcmltYXJ5TmFtZVwiKVxuICAgICkge1xuICAgICAgcHJpbWFyeU5hbWUgPSBzb3VyY2VXaXRob3V0RXhjZXB0aW9ucy51cmxzLnByaW1hcnlOYW1lXG4gICAgICBkZWxldGUgc291cmNlV2l0aG91dEV4Y2VwdGlvbnMudXJscy5wcmltYXJ5TmFtZVxuICAgIH1cblxuICAgIHNvdXJjZXNXaXRob3V0RXhjZXB0aW9ucy5wdXNoKHNvdXJjZVdpdGhvdXRFeGNlcHRpb25zKVxuICB9XG5cbiAgY29uc3QgbWVyZ2VkID0gZGVlcEV4dGVuZCh0YXJnZXQsIC4uLnNvdXJjZXNXaXRob3V0RXhjZXB0aW9ucylcblxuICBpZiAoZG9tTm9kZSAhPT0gU3ltYm9sLmZvcihcImRvbU5vZGVcIikpIHtcbiAgICBtZXJnZWQuZG9tTm9kZSA9IGRvbU5vZGVcbiAgfVxuXG4gIGlmIChwcmltYXJ5TmFtZSAhPT0gU3ltYm9sLmZvcihcInByaW1hcnlOYW1lXCIpICYmIEFycmF5LmlzQXJyYXkobWVyZ2VkLnVybHMpKSB7XG4gICAgbWVyZ2VkLnVybHMucHJpbWFyeU5hbWUgPSBwcmltYXJ5TmFtZVxuICB9XG5cbiAgcmV0dXJuIHR5cGVDYXN0KG1lcmdlZClcbn1cblxuZXhwb3J0IGRlZmF1bHQgbWVyZ2VcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBTeXN0ZW0gZnJvbSBcIi4vc3lzdGVtXCJcbi8vIHByZXNldHNcbmltcG9ydCBCYXNlUHJlc2V0IGZyb20gXCIuL3ByZXNldHMvYmFzZVwiXG5pbXBvcnQgQXBpc1ByZXNldCBmcm9tIFwiLi9wcmVzZXRzL2FwaXNcIlxuLy8gcGx1Z2luc1xuaW1wb3J0IEF1dGhQbHVnaW4gZnJvbSBcIi4vcGx1Z2lucy9hdXRoL1wiXG5pbXBvcnQgQ29uZmlnc1BsdWdpbiBmcm9tIFwiLi9wbHVnaW5zL2NvbmZpZ3NcIlxuaW1wb3J0IERlZXBMaW5raW5nUGx1Z2luIGZyb20gXCIuL3BsdWdpbnMvZGVlcC1saW5raW5nXCJcbmltcG9ydCBFcnJQbHVnaW4gZnJvbSBcIi4vcGx1Z2lucy9lcnJcIlxuaW1wb3J0IEZpbHRlclBsdWdpbiBmcm9tIFwiLi9wbHVnaW5zL2ZpbHRlclwiXG5pbXBvcnQgSWNvbnNQbHVnaW4gZnJvbSBcIi4vcGx1Z2lucy9pY29uc1wiXG5pbXBvcnQgSlNPTlNjaGVtYTVQbHVnaW4gZnJvbSBcIi4vcGx1Z2lucy9qc29uLXNjaGVtYS01XCJcbmltcG9ydCBKU09OU2NoZW1hMjAyMDEyUGx1Z2luIGZyb20gXCIuL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMlwiXG5pbXBvcnQgSlNPTlNjaGVtYTIwMjAxMlNhbXBsZXNQbHVnaW4gZnJvbSBcIi4vcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXNcIlxuaW1wb3J0IExheW91dFBsdWdpbiBmcm9tIFwiLi9wbHVnaW5zL2xheW91dFwiXG5pbXBvcnQgTG9nc1BsdWdpbiBmcm9tIFwiLi9wbHVnaW5zL2xvZ3NcIlxuaW1wb3J0IE9wZW5BUEkzMFBsdWdpbiBmcm9tIFwiLi9wbHVnaW5zL29hczNcIlxuaW1wb3J0IE9wZW5BUEkzMVBsdWdpbiBmcm9tIFwiLi9wbHVnaW5zL29hczNcIlxuaW1wb3J0IE9uQ29tcGxldGVQbHVnaW4gZnJvbSBcIi4vcGx1Z2lucy9vbi1jb21wbGV0ZVwiXG5pbXBvcnQgUmVxdWVzdFNuaXBwZXRzUGx1Z2luIGZyb20gXCIuL3BsdWdpbnMvcmVxdWVzdC1zbmlwcGV0c1wiXG5pbXBvcnQgSlNPTlNjaGVtYTVTYW1wbGVzUGx1Z2luIGZyb20gXCIuL3BsdWdpbnMvanNvbi1zY2hlbWEtNS1zYW1wbGVzXCJcbmltcG9ydCBTcGVjUGx1Z2luIGZyb20gXCIuL3BsdWdpbnMvc3BlY1wiXG5pbXBvcnQgU3dhZ2dlckNsaWVudFBsdWdpbiBmcm9tIFwiLi9wbHVnaW5zL3N3YWdnZXItY2xpZW50XCJcbmltcG9ydCBVdGlsUGx1Z2luIGZyb20gXCIuL3BsdWdpbnMvdXRpbFwiXG5pbXBvcnQgVmlld1BsdWdpbiBmcm9tIFwiLi9wbHVnaW5zL3ZpZXdcIlxuaW1wb3J0IFZpZXdMZWdhY3lQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy92aWV3LWxlZ2FjeVwiXG5pbXBvcnQgRG93bmxvYWRVcmxQbHVnaW4gZnJvbSBcIi4vcGx1Z2lucy9kb3dubG9hZC11cmxcIlxuaW1wb3J0IFN5bnRheEhpZ2hsaWdodGluZ1BsdWdpbiBmcm9tIFwiY29yZS9wbHVnaW5zL3N5bnRheC1oaWdobGlnaHRpbmdcIlxuaW1wb3J0IFZlcnNpb25zUGx1Z2luIGZyb20gXCJjb3JlL3BsdWdpbnMvdmVyc2lvbnNcIlxuaW1wb3J0IFNhZmVSZW5kZXJQbHVnaW4gZnJvbSBcIi4vcGx1Z2lucy9zYWZlLXJlbmRlclwiXG5cbmltcG9ydCB7XG4gIGRlZmF1bHRPcHRpb25zLFxuICBvcHRpb25zRnJvbVF1ZXJ5LFxuICBvcHRpb25zRnJvbVVSTCxcbiAgb3B0aW9uc0Zyb21SdW50aW1lLFxuICBtZXJnZU9wdGlvbnMsXG4gIGlubGluZVBsdWdpbk9wdGlvbnNGYWN0b3JpemF0aW9uLFxuICBzeXN0ZW1PcHRpb25zRmFjdG9yaXphdGlvbixcbiAgdHlwZUNhc3RPcHRpb25zLFxuICB0eXBlQ2FzdE1hcHBpbmdzLFxufSBmcm9tIFwiLi9jb25maWdcIlxuXG5mdW5jdGlvbiBTd2FnZ2VyVUkodXNlck9wdGlvbnMpIHtcbiAgY29uc3QgcXVlcnlPcHRpb25zID0gb3B0aW9uc0Zyb21RdWVyeSgpKHVzZXJPcHRpb25zKVxuICBjb25zdCBydW50aW1lT3B0aW9ucyA9IG9wdGlvbnNGcm9tUnVudGltZSgpKClcbiAgY29uc3QgbWVyZ2VkT3B0aW9ucyA9IFN3YWdnZXJVSS5jb25maWcubWVyZ2UoXG4gICAge30sXG4gICAgU3dhZ2dlclVJLmNvbmZpZy5kZWZhdWx0cyxcbiAgICBydW50aW1lT3B0aW9ucyxcbiAgICB1c2VyT3B0aW9ucyxcbiAgICBxdWVyeU9wdGlvbnNcbiAgKVxuICBjb25zdCBzeXN0ZW1PcHRpb25zID0gc3lzdGVtT3B0aW9uc0ZhY3Rvcml6YXRpb24obWVyZ2VkT3B0aW9ucylcbiAgY29uc3QgSW5saW5lUGx1Z2luID0gaW5saW5lUGx1Z2luT3B0aW9uc0ZhY3Rvcml6YXRpb24obWVyZ2VkT3B0aW9ucylcblxuICBjb25zdCB1bmJvdW5kU3lzdGVtID0gbmV3IFN5c3RlbShzeXN0ZW1PcHRpb25zKVxuICB1bmJvdW5kU3lzdGVtLnJlZ2lzdGVyKFttZXJnZWRPcHRpb25zLnBsdWdpbnMsIElubGluZVBsdWdpbl0pXG4gIGNvbnN0IHN5c3RlbSA9IHVuYm91bmRTeXN0ZW0uZ2V0U3lzdGVtKClcblxuICBjb25zdCBwZXJzaXN0Q29uZmlncyA9IChvcHRpb25zKSA9PiB7XG4gICAgdW5ib3VuZFN5c3RlbS5zZXRDb25maWdzKG9wdGlvbnMpXG4gICAgc3lzdGVtLmNvbmZpZ3NBY3Rpb25zLmxvYWRlZCgpXG4gIH1cbiAgY29uc3QgdXBkYXRlU3BlYyA9IChvcHRpb25zKSA9PiB7XG4gICAgaWYgKFxuICAgICAgIXF1ZXJ5T3B0aW9ucy51cmwgJiZcbiAgICAgIHR5cGVvZiBvcHRpb25zLnNwZWMgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgIE9iamVjdC5rZXlzKG9wdGlvbnMuc3BlYykubGVuZ3RoID4gMFxuICAgICkge1xuICAgICAgc3lzdGVtLnNwZWNBY3Rpb25zLnVwZGF0ZVVybChcIlwiKVxuICAgICAgc3lzdGVtLnNwZWNBY3Rpb25zLnVwZGF0ZUxvYWRpbmdTdGF0dXMoXCJzdWNjZXNzXCIpXG4gICAgICBzeXN0ZW0uc3BlY0FjdGlvbnMudXBkYXRlU3BlYyhKU09OLnN0cmluZ2lmeShvcHRpb25zLnNwZWMpKVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0eXBlb2Ygc3lzdGVtLnNwZWNBY3Rpb25zLmRvd25sb2FkID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgIG9wdGlvbnMudXJsICYmXG4gICAgICAhb3B0aW9ucy51cmxzXG4gICAgKSB7XG4gICAgICBzeXN0ZW0uc3BlY0FjdGlvbnMudXBkYXRlVXJsKG9wdGlvbnMudXJsKVxuICAgICAgc3lzdGVtLnNwZWNBY3Rpb25zLmRvd25sb2FkKG9wdGlvbnMudXJsKVxuICAgIH1cbiAgfVxuICBjb25zdCByZW5kZXIgPSAob3B0aW9ucykgPT4ge1xuICAgIGlmIChvcHRpb25zLmRvbU5vZGUpIHtcbiAgICAgIHN5c3RlbS5yZW5kZXIob3B0aW9ucy5kb21Ob2RlLCBcIkFwcFwiKVxuICAgIH0gZWxzZSBpZiAob3B0aW9ucy5kb21faWQpIHtcbiAgICAgIGNvbnN0IGRvbU5vZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKG9wdGlvbnMuZG9tX2lkKVxuICAgICAgc3lzdGVtLnJlbmRlcihkb21Ob2RlLCBcIkFwcFwiKVxuICAgIH0gZWxzZSBpZiAob3B0aW9ucy5kb21faWQgPT09IG51bGwgfHwgb3B0aW9ucy5kb21Ob2RlID09PSBudWxsKSB7XG4gICAgICAvKipcbiAgICAgICAqIG5vb3BcbiAgICAgICAqXG4gICAgICAgKiBTd2FnZ2VyVUkgaW5zdGFuY2UgY2FuIGJlIGNyZWF0ZWQgd2l0aG91dCBhbnkgcmVuZGVyaW5nIGludm9sdmVkLlxuICAgICAgICogVGhpcyBpcyBhbHNvIHVzZWZ1bCBmb3IgbGF6eSByZW5kZXJpbmcgb3IgdGVzdGluZy5cbiAgICAgICAqL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiU2tpcHBlZCByZW5kZXJpbmc6IG5vIGBkb21faWRgIG9yIGBkb21Ob2RlYCB3YXMgc3BlY2lmaWVkXCIpXG4gICAgfVxuICB9XG5cbiAgLy8gaWYgbm8gY29uZmlnVXJsIGlzIHByb3ZpZGVkLCB3ZSBjYW4gc2FmZWx5IHBlcnNpc3QgdGhlIGNvbmZpZ3MgYW5kIHJlbmRlclxuICBpZiAoIW1lcmdlZE9wdGlvbnMuY29uZmlnVXJsKSB7XG4gICAgcGVyc2lzdENvbmZpZ3MobWVyZ2VkT3B0aW9ucylcbiAgICB1cGRhdGVTcGVjKG1lcmdlZE9wdGlvbnMpXG4gICAgcmVuZGVyKG1lcmdlZE9wdGlvbnMpXG5cbiAgICByZXR1cm4gc3lzdGVtXG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZXh0cmEtc2VtaVxuICA7KGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7IGNvbmZpZ1VybDogdXJsIH0gPSBtZXJnZWRPcHRpb25zXG4gICAgY29uc3QgdXJsT3B0aW9ucyA9IGF3YWl0IG9wdGlvbnNGcm9tVVJMKHsgdXJsLCBzeXN0ZW0gfSkobWVyZ2VkT3B0aW9ucylcbiAgICBjb25zdCB1cmxNZXJnZWRPcHRpb25zID0gU3dhZ2dlclVJLmNvbmZpZy5tZXJnZShcbiAgICAgIHt9LFxuICAgICAgbWVyZ2VkT3B0aW9ucyxcbiAgICAgIHVybE9wdGlvbnMsXG4gICAgICBxdWVyeU9wdGlvbnNcbiAgICApXG5cbiAgICBwZXJzaXN0Q29uZmlncyh1cmxNZXJnZWRPcHRpb25zKVxuICAgIGlmICh1cmxPcHRpb25zICE9PSBudWxsKSB1cGRhdGVTcGVjKHVybE1lcmdlZE9wdGlvbnMpXG4gICAgcmVuZGVyKHVybE1lcmdlZE9wdGlvbnMpXG4gIH0pKClcblxuICByZXR1cm4gc3lzdGVtXG59XG5cblN3YWdnZXJVSS5TeXN0ZW0gPSBTeXN0ZW1cblxuU3dhZ2dlclVJLmNvbmZpZyA9IHtcbiAgZGVmYXVsdHM6IGRlZmF1bHRPcHRpb25zLFxuICBtZXJnZTogbWVyZ2VPcHRpb25zLFxuICB0eXBlQ2FzdDogdHlwZUNhc3RPcHRpb25zLFxuICB0eXBlQ2FzdE1hcHBpbmdzLFxufVxuXG5Td2FnZ2VyVUkucHJlc2V0cyA9IHtcbiAgYmFzZTogQmFzZVByZXNldCxcbiAgYXBpczogQXBpc1ByZXNldCxcbn1cblxuU3dhZ2dlclVJLnBsdWdpbnMgPSB7XG4gIEF1dGg6IEF1dGhQbHVnaW4sXG4gIENvbmZpZ3M6IENvbmZpZ3NQbHVnaW4sXG4gIERlZXBMaW5pbmc6IERlZXBMaW5raW5nUGx1Z2luLFxuICBFcnI6IEVyclBsdWdpbixcbiAgRmlsdGVyOiBGaWx0ZXJQbHVnaW4sXG4gIEljb25zOiBJY29uc1BsdWdpbixcbiAgSlNPTlNjaGVtYTU6IEpTT05TY2hlbWE1UGx1Z2luLFxuICBKU09OU2NoZW1hNVNhbXBsZXM6IEpTT05TY2hlbWE1U2FtcGxlc1BsdWdpbixcbiAgSlNPTlNjaGVtYTIwMjAxMjogSlNPTlNjaGVtYTIwMjAxMlBsdWdpbixcbiAgSlNPTlNjaGVtYTIwMjAxMlNhbXBsZXM6IEpTT05TY2hlbWEyMDIwMTJTYW1wbGVzUGx1Z2luLFxuICBMYXlvdXQ6IExheW91dFBsdWdpbixcbiAgTG9nczogTG9nc1BsdWdpbixcbiAgT3BlbkFQSTMwOiBPcGVuQVBJMzBQbHVnaW4sXG4gIE9wZW5BUEkzMTogT3BlbkFQSTMxUGx1Z2luLFxuICBPbkNvbXBsZXRlOiBPbkNvbXBsZXRlUGx1Z2luLFxuICBSZXF1ZXN0U25pcHBldHM6IFJlcXVlc3RTbmlwcGV0c1BsdWdpbixcbiAgU3BlYzogU3BlY1BsdWdpbixcbiAgU3dhZ2dlckNsaWVudDogU3dhZ2dlckNsaWVudFBsdWdpbixcbiAgVXRpbDogVXRpbFBsdWdpbixcbiAgVmlldzogVmlld1BsdWdpbixcbiAgVmlld0xlZ2FjeTogVmlld0xlZ2FjeVBsdWdpbixcbiAgRG93bmxvYWRVcmw6IERvd25sb2FkVXJsUGx1Z2luLFxuICBTeW50YXhIaWdobGlnaHRpbmc6IFN5bnRheEhpZ2hsaWdodGluZ1BsdWdpbixcbiAgVmVyc2lvbnM6IFZlcnNpb25zUGx1Z2luLFxuICBTYWZlUmVuZGVyOiBTYWZlUmVuZGVyUGx1Z2luLFxufVxuXG5leHBvcnQgZGVmYXVsdCBTd2FnZ2VyVUlcbiIsImltcG9ydCBTd2FnZ2VyVUkgZnJvbSBcIi4vY29yZVwiXG5cbmV4cG9ydCBkZWZhdWx0IFN3YWdnZXJVSVxuIl0sIm5hbWVzIjpbIlJlZmxlY3RPd25LZXlzIiwiUiIsIlJlZmxlY3QiLCJSZWZsZWN0QXBwbHkiLCJhcHBseSIsInRhcmdldCIsInJlY2VpdmVyIiwiYXJncyIsIkZ1bmN0aW9uIiwicHJvdG90eXBlIiwiY2FsbCIsIm93bktleXMiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiY29uY2F0IiwiTnVtYmVySXNOYU4iLCJOdW1iZXIiLCJpc05hTiIsInZhbHVlIiwiRXZlbnRFbWl0dGVyIiwiaW5pdCIsInRoaXMiLCJtb2R1bGUiLCJleHBvcnRzIiwib25jZSIsImVtaXR0ZXIiLCJuYW1lIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJlcnJvckxpc3RlbmVyIiwiZXJyIiwicmVtb3ZlTGlzdGVuZXIiLCJyZXNvbHZlciIsInNsaWNlIiwiYXJndW1lbnRzIiwiZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyIiwiYWRkRXJyb3JIYW5kbGVySWZFdmVudEVtaXR0ZXIiLCJoYW5kbGVyIiwiZmxhZ3MiLCJvbiIsIl9ldmVudHMiLCJ1bmRlZmluZWQiLCJfZXZlbnRzQ291bnQiLCJfbWF4TGlzdGVuZXJzIiwiZGVmYXVsdE1heExpc3RlbmVycyIsImNoZWNrTGlzdGVuZXIiLCJsaXN0ZW5lciIsIlR5cGVFcnJvciIsIl9nZXRNYXhMaXN0ZW5lcnMiLCJ0aGF0IiwiX2FkZExpc3RlbmVyIiwidHlwZSIsInByZXBlbmQiLCJtIiwiZXZlbnRzIiwiZXhpc3RpbmciLCJjcmVhdGUiLCJuZXdMaXN0ZW5lciIsImVtaXQiLCJ1bnNoaWZ0IiwicHVzaCIsImxlbmd0aCIsIndhcm5lZCIsInciLCJFcnJvciIsIlN0cmluZyIsImNvdW50IiwiUHJvY2Vzc0VtaXRXYXJuaW5nIiwid2FybmluZyIsImNvbnNvbGUiLCJ3YXJuIiwib25jZVdyYXBwZXIiLCJmaXJlZCIsIndyYXBGbiIsIl9vbmNlV3JhcCIsInN0YXRlIiwid3JhcHBlZCIsImJpbmQiLCJfbGlzdGVuZXJzIiwidW53cmFwIiwiZXZsaXN0ZW5lciIsInVud3JhcExpc3RlbmVycyIsImFyciIsInJldCIsIkFycmF5IiwiaSIsImFycmF5Q2xvbmUiLCJsaXN0ZW5lckNvdW50IiwibiIsImNvcHkiLCJhZGRFdmVudExpc3RlbmVyIiwid3JhcExpc3RlbmVyIiwiYXJnIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsInNldCIsIlJhbmdlRXJyb3IiLCJnZXRQcm90b3R5cGVPZiIsInNldE1heExpc3RlbmVycyIsImdldE1heExpc3RlbmVycyIsImRvRXJyb3IiLCJlcnJvciIsImVyIiwibWVzc2FnZSIsImNvbnRleHQiLCJsZW4iLCJsaXN0ZW5lcnMiLCJhZGRMaXN0ZW5lciIsInByZXBlbmRMaXN0ZW5lciIsInByZXBlbmRPbmNlTGlzdGVuZXIiLCJsaXN0IiwicG9zaXRpb24iLCJvcmlnaW5hbExpc3RlbmVyIiwic2hpZnQiLCJzcGxpY2VPbmUiLCJpbmRleCIsInBvcCIsIm9mZiIsInJlbW92ZUFsbExpc3RlbmVycyIsImtleSIsImtleXMiLCJyYXdMaXN0ZW5lcnMiLCJldmVudE5hbWVzIiwiY29kZXMiLCJjcmVhdGVFcnJvclR5cGUiLCJjb2RlIiwiQmFzZSIsIk5vZGVFcnJvciIsIl9CYXNlIiwiYXJnMSIsImFyZzIiLCJhcmczIiwiZ2V0TWVzc2FnZSIsIl9pbmhlcml0c0xvb3NlIiwic3ViQ2xhc3MiLCJzdXBlckNsYXNzIiwiY29uc3RydWN0b3IiLCJfX3Byb3RvX18iLCJvbmVPZiIsImV4cGVjdGVkIiwidGhpbmciLCJpc0FycmF5IiwibWFwIiwiam9pbiIsImFjdHVhbCIsImRldGVybWluZXIiLCJtc2ciLCJzdGFydHNXaXRoIiwic3RyIiwic2VhcmNoIiwicG9zIiwic3Vic3RyIiwicmVwbGFjZSIsImVuZHNXaXRoIiwidGhpc19sZW4iLCJzdWJzdHJpbmciLCJpbmNsdWRlcyIsInN0YXJ0IiwiaW5kZXhPZiIsImluaGVyaXRzIiwiSGFzaCIsIkJ1ZmZlciIsIksiLCJXIiwiU2hhMjU2IiwiX3ciLCJjaCIsIngiLCJ5IiwieiIsIm1haiIsInNpZ21hMCIsInNpZ21hMSIsImdhbW1hMCIsImdhbW1hMSIsIl9hIiwiX2IiLCJfYyIsIl9kIiwiX2UiLCJfZiIsIl9nIiwiX2giLCJfdXBkYXRlIiwiTSIsImEiLCJiIiwiYyIsImQiLCJlIiwiZiIsImciLCJoIiwicmVhZEludDMyQkUiLCJqIiwiVDEiLCJUMiIsIl9oYXNoIiwiSCIsImFsbG9jVW5zYWZlIiwid3JpdGVJbnQzMkJFIiwiZXNjYXBlRm9yWE1MIiwiU3RyZWFtIiwiZGF0YSIsImluZGVudCIsImluZGVudF9jb3VudCIsImluZGVudF9zcGFjZXMiLCJjcmVhdGVfaW5kZW50IiwiY2hhcmFjdGVyIiwidmFsdWVzIiwiX2VsZW0iLCJpY291bnQiLCJpbmRlbnRzIiwiaW50ZXJydXB0IiwiaXNTdHJpbmdDb250ZW50IiwiYXR0cmlidXRlcyIsImNvbnRlbnQiLCJnZXRfYXR0cmlidXRlcyIsIm9iaiIsImZvckVhY2giLCJhdHRyaWJ1dGUiLCJfYXR0ciIsIl9jZGF0YSIsImZvcm1hdCIsImFwcGVuZCIsImVsZW0iLCJlbmQiLCJwcm9jZWVkIiwieG1sIiwiaW5wdXQiLCJvcHRpb25zIiwic3RyZWFtIiwib3V0cHV0IiwiaW50ZXJydXB0ZWQiLCJpbnN0YW50IiwiZGVsYXkiLCJmdW5jIiwicHJvY2VzcyIsIm5leHRUaWNrIiwib3V0IiwiYWRkIiwibGFzdCIsInJlYWRhYmxlIiwiZGVjbGFyYXRpb24iLCJhZGRYbWxEZWNsYXJhdGlvbiIsImF0dHIiLCJ2ZXJzaW9uIiwiZW5jb2RpbmciLCJzdGFuZGFsb25lIiwiZWxlbWVudCIsIkVsZW1lbnQiLCJzZWxmIiwiaXNFbmNvZGluZyIsInRvTG93ZXJDYXNlIiwiU3RyaW5nRGVjb2RlciIsIm5iIiwibm9ybWFsaXplRW5jb2RpbmciLCJlbmMiLCJuZW5jIiwiX25vcm1hbGl6ZUVuY29kaW5nIiwicmV0cmllZCIsInRleHQiLCJ1dGYxNlRleHQiLCJ1dGYxNkVuZCIsImZpbGxMYXN0IiwidXRmOEZpbGxMYXN0IiwiYmFzZTY0VGV4dCIsImJhc2U2NEVuZCIsIndyaXRlIiwic2ltcGxlV3JpdGUiLCJzaW1wbGVFbmQiLCJsYXN0TmVlZCIsImxhc3RUb3RhbCIsImxhc3RDaGFyIiwidXRmOENoZWNrQnl0ZSIsImJ5dGUiLCJidWYiLCJwIiwiciIsInV0ZjhDaGVja0V4dHJhQnl0ZXMiLCJ0b1N0cmluZyIsImNoYXJDb2RlQXQiLCJ1dGY4RW5kIiwidXRmOFRleHQiLCJ0b3RhbCIsInV0ZjhDaGVja0luY29tcGxldGUiLCJNQVhfQllURVMiLCJNQVhfVUlOVDMyIiwiY3J5cHRvIiwibXNDcnlwdG8iLCJnZXRSYW5kb21WYWx1ZXMiLCJyYW5kb21CeXRlcyIsInNpemUiLCJjYiIsImJ5dGVzIiwiZ2VuZXJhdGVkIiwib2xkQnJvd3NlciIsIkVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFIiwibm9vcCIsImVvcyIsIm9wdHMiLCJjYWxsYmFjayIsImNhbGxlZCIsIl9sZW4iLCJfa2V5Iiwid3JpdGFibGUiLCJvbmxlZ2FjeWZpbmlzaCIsIm9uZmluaXNoIiwid3JpdGFibGVFbmRlZCIsIl93cml0YWJsZVN0YXRlIiwiZmluaXNoZWQiLCJyZWFkYWJsZUVuZGVkIiwiX3JlYWRhYmxlU3RhdGUiLCJlbmRFbWl0dGVkIiwib25lbmQiLCJvbmVycm9yIiwib25jbG9zZSIsImVuZGVkIiwib25yZXF1ZXN0IiwicmVxIiwiaXNSZXF1ZXN0Iiwic2V0SGVhZGVyIiwiYWJvcnQiLCJiYXNlNjQiLCJpZWVlNzU0IiwiY3VzdG9tSW5zcGVjdFN5bWJvbCIsIlN5bWJvbCIsIlNsb3dCdWZmZXIiLCJhbGxvYyIsIklOU1BFQ1RfTUFYX0JZVEVTIiwiS19NQVhfTEVOR1RIIiwiY3JlYXRlQnVmZmVyIiwiVWludDhBcnJheSIsInNldFByb3RvdHlwZU9mIiwiZW5jb2RpbmdPck9mZnNldCIsImZyb20iLCJmcm9tU3RyaW5nIiwic3RyaW5nIiwiYnl0ZUxlbmd0aCIsIkFycmF5QnVmZmVyIiwiaXNWaWV3IiwiZnJvbUFycmF5VmlldyIsImFycmF5VmlldyIsImlzSW5zdGFuY2UiLCJmcm9tQXJyYXlCdWZmZXIiLCJidWZmZXIiLCJieXRlT2Zmc2V0IiwiZnJvbUFycmF5TGlrZSIsIlNoYXJlZEFycmF5QnVmZmVyIiwidmFsdWVPZiIsImZyb21PYmplY3QiLCJpc0J1ZmZlciIsImNoZWNrZWQiLCJudW1iZXJJc05hTiIsInRvUHJpbWl0aXZlIiwiYXNzZXJ0U2l6ZSIsImFycmF5IiwibXVzdE1hdGNoIiwibG93ZXJlZENhc2UiLCJ1dGY4VG9CeXRlcyIsImJhc2U2NFRvQnl0ZXMiLCJzbG93VG9TdHJpbmciLCJoZXhTbGljZSIsInV0ZjhTbGljZSIsImFzY2lpU2xpY2UiLCJsYXRpbjFTbGljZSIsImJhc2U2NFNsaWNlIiwidXRmMTZsZVNsaWNlIiwic3dhcCIsImJpZGlyZWN0aW9uYWxJbmRleE9mIiwidmFsIiwiZGlyIiwiYXJyYXlJbmRleE9mIiwibGFzdEluZGV4T2YiLCJpbmRleFNpemUiLCJhcnJMZW5ndGgiLCJ2YWxMZW5ndGgiLCJyZWFkIiwicmVhZFVJbnQxNkJFIiwiZm91bmRJbmRleCIsImZvdW5kIiwiaGV4V3JpdGUiLCJvZmZzZXQiLCJyZW1haW5pbmciLCJzdHJMZW4iLCJwYXJzZWQiLCJwYXJzZUludCIsInV0ZjhXcml0ZSIsImJsaXRCdWZmZXIiLCJhc2NpaVdyaXRlIiwiYXNjaWlUb0J5dGVzIiwiYnl0ZUFycmF5IiwiYmFzZTY0V3JpdGUiLCJ1Y3MyV3JpdGUiLCJ1dGYxNmxlVG9CeXRlcyIsInVuaXRzIiwiaGkiLCJsbyIsImZyb21CeXRlQXJyYXkiLCJNYXRoIiwibWluIiwicmVzIiwiZmlyc3RCeXRlIiwiY29kZVBvaW50IiwiYnl0ZXNQZXJTZXF1ZW5jZSIsInNlY29uZEJ5dGUiLCJ0aGlyZEJ5dGUiLCJmb3VydGhCeXRlIiwidGVtcENvZGVQb2ludCIsImRlY29kZUNvZGVQb2ludHNBcnJheSIsImNvZGVQb2ludHMiLCJNQVhfQVJHVU1FTlRTX0xFTkdUSCIsImZyb21DaGFyQ29kZSIsImtNYXhMZW5ndGgiLCJUWVBFRF9BUlJBWV9TVVBQT1JUIiwidHlwZWRBcnJheVN1cHBvcnQiLCJwcm90byIsImZvbyIsInBvb2xTaXplIiwiZmlsbCIsImFsbG9jVW5zYWZlU2xvdyIsIl9pc0J1ZmZlciIsImNvbXBhcmUiLCJzd2FwMTYiLCJzd2FwMzIiLCJzd2FwNjQiLCJ0b0xvY2FsZVN0cmluZyIsImVxdWFscyIsImluc3BlY3QiLCJtYXgiLCJ0cmltIiwidGhpc1N0YXJ0IiwidGhpc0VuZCIsInRoaXNDb3B5IiwidGFyZ2V0Q29weSIsImlzRmluaXRlIiwidG9KU09OIiwiX2FyciIsImhleFNsaWNlTG9va3VwVGFibGUiLCJjaGVja09mZnNldCIsImV4dCIsImNoZWNrSW50Iiwid3J0QmlnVUludDY0TEUiLCJjaGVja0ludEJJIiwiQmlnSW50Iiwid3J0QmlnVUludDY0QkUiLCJjaGVja0lFRUU3NTQiLCJ3cml0ZUZsb2F0IiwibGl0dGxlRW5kaWFuIiwibm9Bc3NlcnQiLCJ3cml0ZURvdWJsZSIsIm5ld0J1ZiIsInN1YmFycmF5IiwicmVhZFVpbnRMRSIsInJlYWRVSW50TEUiLCJtdWwiLCJyZWFkVWludEJFIiwicmVhZFVJbnRCRSIsInJlYWRVaW50OCIsInJlYWRVSW50OCIsInJlYWRVaW50MTZMRSIsInJlYWRVSW50MTZMRSIsInJlYWRVaW50MTZCRSIsInJlYWRVaW50MzJMRSIsInJlYWRVSW50MzJMRSIsInJlYWRVaW50MzJCRSIsInJlYWRVSW50MzJCRSIsInJlYWRCaWdVSW50NjRMRSIsImRlZmluZUJpZ0ludE1ldGhvZCIsInZhbGlkYXRlTnVtYmVyIiwiZmlyc3QiLCJib3VuZHNFcnJvciIsInJlYWRCaWdVSW50NjRCRSIsInJlYWRJbnRMRSIsInBvdyIsInJlYWRJbnRCRSIsInJlYWRJbnQ4IiwicmVhZEludDE2TEUiLCJyZWFkSW50MTZCRSIsInJlYWRJbnQzMkxFIiwicmVhZEJpZ0ludDY0TEUiLCJyZWFkQmlnSW50NjRCRSIsInJlYWRGbG9hdExFIiwicmVhZEZsb2F0QkUiLCJyZWFkRG91YmxlTEUiLCJyZWFkRG91YmxlQkUiLCJ3cml0ZVVpbnRMRSIsIndyaXRlVUludExFIiwid3JpdGVVaW50QkUiLCJ3cml0ZVVJbnRCRSIsIndyaXRlVWludDgiLCJ3cml0ZVVJbnQ4Iiwid3JpdGVVaW50MTZMRSIsIndyaXRlVUludDE2TEUiLCJ3cml0ZVVpbnQxNkJFIiwid3JpdGVVSW50MTZCRSIsIndyaXRlVWludDMyTEUiLCJ3cml0ZVVJbnQzMkxFIiwid3JpdGVVaW50MzJCRSIsIndyaXRlVUludDMyQkUiLCJ3cml0ZUJpZ1VJbnQ2NExFIiwid3JpdGVCaWdVSW50NjRCRSIsIndyaXRlSW50TEUiLCJsaW1pdCIsInN1YiIsIndyaXRlSW50QkUiLCJ3cml0ZUludDgiLCJ3cml0ZUludDE2TEUiLCJ3cml0ZUludDE2QkUiLCJ3cml0ZUludDMyTEUiLCJ3cml0ZUJpZ0ludDY0TEUiLCJ3cml0ZUJpZ0ludDY0QkUiLCJ3cml0ZUZsb2F0TEUiLCJ3cml0ZUZsb2F0QkUiLCJ3cml0ZURvdWJsZUxFIiwid3JpdGVEb3VibGVCRSIsInRhcmdldFN0YXJ0IiwiY29weVdpdGhpbiIsImVycm9ycyIsIkUiLCJzeW0iLCJzdXBlciIsImNvbmZpZ3VyYWJsZSIsInN0YWNrIiwiYWRkTnVtZXJpY2FsU2VwYXJhdG9yIiwicmFuZ2UiLCJFUlJfT1VUX09GX1JBTkdFIiwiY2hlY2tCb3VuZHMiLCJFUlJfSU5WQUxJRF9BUkdfVFlQRSIsImZsb29yIiwiRVJSX0JVRkZFUl9PVVRfT0ZfQk9VTkRTIiwicmVjZWl2ZWQiLCJpc0ludGVnZXIiLCJhYnMiLCJJTlZBTElEX0JBU0U2NF9SRSIsIkluZmluaXR5IiwibGVhZFN1cnJvZ2F0ZSIsInRvQnl0ZUFycmF5IiwiYmFzZTY0Y2xlYW4iLCJzcGxpdCIsInNyYyIsImRzdCIsImFscGhhYmV0IiwidGFibGUiLCJpMTYiLCJmbiIsIkJ1ZmZlckJpZ0ludE5vdERlZmluZWQiLCJFUlJfSU5WQUxJRF9PUFRfVkFMVUUiLCJnZXRIaWdoV2F0ZXJNYXJrIiwiZHVwbGV4S2V5IiwiaXNEdXBsZXgiLCJod20iLCJoaWdoV2F0ZXJNYXJrRnJvbSIsImhpZ2hXYXRlck1hcmsiLCJvYmplY3RNb2RlIiwiRUUiLCJSZWFkYWJsZSIsIldyaXRhYmxlIiwiRHVwbGV4IiwiVHJhbnNmb3JtIiwiUGFzc1Rocm91Z2giLCJwaXBlbGluZSIsInBpcGUiLCJkZXN0Iiwic291cmNlIiwib25kYXRhIiwiY2h1bmsiLCJwYXVzZSIsIm9uZHJhaW4iLCJyZXN1bWUiLCJfaXNTdGRpbyIsImRpZE9uRW5kIiwiZGVzdHJveSIsImNsZWFudXAiLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX2llZWU3NTRfXyIsIm9iamVjdEtleXMiLCJ2IiwibWV0aG9kIiwiYWxsb3dIYWxmT3BlbiIsIm9uRW5kTlQiLCJnZXRCdWZmZXIiLCJkZXN0cm95ZWQiLCJibG9ja1NpemUiLCJmaW5hbFNpemUiLCJfYmxvY2siLCJfZmluYWxTaXplIiwiX2Jsb2NrU2l6ZSIsInVwZGF0ZSIsImJsb2NrIiwiYWNjdW0iLCJhc3NpZ25lZCIsInJlbWFpbmRlciIsImRpZ2VzdCIsInJlbSIsImJpdHMiLCJsb3dCaXRzIiwiaGlnaEJpdHMiLCJoYXNoIiwiUmVhZGFibGVTdGF0ZSIsIkVFbGlzdGVuZXJDb3VudCIsIk91clVpbnQ4QXJyYXkiLCJ3aW5kb3ciLCJkZWJ1ZyIsImRlYnVnVXRpbCIsImRlYnVnbG9nIiwiY3JlYXRlUmVhZGFibGVTdHJlYW1Bc3luY0l0ZXJhdG9yIiwiQnVmZmVyTGlzdCIsImRlc3Ryb3lJbXBsIiwiX3JlcXVpcmUkY29kZXMiLCJFUlJfU1RSRUFNX1BVU0hfQUZURVJfRU9GIiwiRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQiLCJFUlJfU1RSRUFNX1VOU0hJRlRfQUZURVJfRU5EX0VWRU5UIiwiZXJyb3JPckRlc3Ryb3kiLCJrUHJveHlFdmVudHMiLCJyZWFkYWJsZU9iamVjdE1vZGUiLCJwaXBlcyIsInBpcGVzQ291bnQiLCJmbG93aW5nIiwicmVhZGluZyIsInN5bmMiLCJuZWVkUmVhZGFibGUiLCJlbWl0dGVkUmVhZGFibGUiLCJyZWFkYWJsZUxpc3RlbmluZyIsInJlc3VtZVNjaGVkdWxlZCIsInBhdXNlZCIsImVtaXRDbG9zZSIsImF1dG9EZXN0cm95IiwiZGVmYXVsdEVuY29kaW5nIiwiYXdhaXREcmFpbiIsInJlYWRpbmdNb3JlIiwiZGVjb2RlciIsIl9yZWFkIiwiX2Rlc3Ryb3kiLCJyZWFkYWJsZUFkZENodW5rIiwiYWRkVG9Gcm9udCIsInNraXBDaHVua0NoZWNrIiwib25Fb2ZDaHVuayIsImVtaXRSZWFkYWJsZSIsImVtaXRSZWFkYWJsZV8iLCJjaHVua0ludmFsaWQiLCJfaXNVaW50OEFycmF5IiwiX3VpbnQ4QXJyYXlUb0J1ZmZlciIsImFkZENodW5rIiwibWF5YmVSZWFkTW9yZSIsIl91bmRlc3Ryb3kiLCJ1bmRlc3Ryb3kiLCJpc1BhdXNlZCIsInNldEVuY29kaW5nIiwiaGVhZCIsIm5leHQiLCJjbGVhciIsIk1BWF9IV00iLCJob3dNdWNoVG9SZWFkIiwiY29tcHV0ZU5ld0hpZ2hXYXRlck1hcmsiLCJmbG93IiwibWF5YmVSZWFkTW9yZV8iLCJ1cGRhdGVSZWFkYWJsZUxpc3RlbmluZyIsIm5SZWFkaW5nTmV4dFRpY2siLCJyZXN1bWVfIiwiZnJvbUxpc3QiLCJjb25zdW1lIiwiZW5kUmVhZGFibGUiLCJlbmRSZWFkYWJsZU5UIiwid1N0YXRlIiwieHMiLCJsIiwibk9yaWciLCJkb1JlYWQiLCJwaXBlT3B0cyIsImVuZEZuIiwic3Rkb3V0Iiwic3RkZXJyIiwidW5waXBlIiwib251bnBpcGUiLCJ1bnBpcGVJbmZvIiwiaGFzVW5waXBlZCIsImNsZWFuZWRVcCIsIm5lZWREcmFpbiIsInBpcGVPbkRyYWluIiwicGlwZU9uRHJhaW5GdW5jdGlvblJlc3VsdCIsImV2ZW50IiwiZGVzdHMiLCJzcGxpY2UiLCJldiIsIndyYXAiLCJfdGhpcyIsIm1ldGhvZFdyYXAiLCJtZXRob2RXcmFwUmV0dXJuRnVuY3Rpb24iLCJhc3luY0l0ZXJhdG9yIiwiX2Zyb21MaXN0IiwiaXRlcmFibGUiLCJYTUxfQ0hBUkFDVEVSX01BUCIsIml0ZW0iLCJfdHJhbnNmb3JtIiwiY2FjaGVkU2V0VGltZW91dCIsImNhY2hlZENsZWFyVGltZW91dCIsImRlZmF1bHRTZXRUaW1vdXQiLCJkZWZhdWx0Q2xlYXJUaW1lb3V0IiwicnVuVGltZW91dCIsImZ1biIsInNldFRpbWVvdXQiLCJjbGVhclRpbWVvdXQiLCJjdXJyZW50UXVldWUiLCJxdWV1ZSIsImRyYWluaW5nIiwicXVldWVJbmRleCIsImNsZWFuVXBOZXh0VGljayIsImRyYWluUXVldWUiLCJ0aW1lb3V0IiwicnVuIiwicnVuQ2xlYXJUaW1lb3V0IiwibWFya2VyIiwiSXRlbSIsInRpdGxlIiwiYnJvd3NlciIsImVudiIsImFyZ3YiLCJ2ZXJzaW9ucyIsImJpbmRpbmciLCJjd2QiLCJjaGRpciIsInVtYXNrIiwiRVJSX01VTFRJUExFX0NBTExCQUNLIiwiRVJSX1RSQU5TRk9STV9BTFJFQURZX1RSQU5TRk9STUlORyIsIkVSUl9UUkFOU0ZPUk1fV0lUSF9MRU5HVEhfMCIsImFmdGVyVHJhbnNmb3JtIiwidHMiLCJfdHJhbnNmb3JtU3RhdGUiLCJ0cmFuc2Zvcm1pbmciLCJ3cml0ZWNiIiwid3JpdGVjaHVuayIsInJzIiwibmVlZFRyYW5zZm9ybSIsIndyaXRlZW5jb2RpbmciLCJ0cmFuc2Zvcm0iLCJmbHVzaCIsIl9mbHVzaCIsInByZWZpbmlzaCIsImRvbmUiLCJfd3JpdGUiLCJlcnIyIiwiY29uZmlnIiwibG9jYWxTdG9yYWdlIiwiXyIsImRlcHJlY2F0ZSIsImRlcHJlY2F0ZWQiLCJ0cmFjZSIsImN0b3IiLCJzdXBlckN0b3IiLCJzdXBlcl8iLCJUZW1wQ3RvciIsIkNvcmtlZFJlcXVlc3QiLCJlbnRyeSIsImZpbmlzaCIsIm9uQ29ya2VkRmluaXNoIiwiY29ya1JlcSIsInBlbmRpbmdjYiIsImNvcmtlZFJlcXVlc3RzRnJlZSIsIldyaXRhYmxlU3RhdGUiLCJpbnRlcm5hbFV0aWwiLCJyZWFsSGFzSW5zdGFuY2UiLCJFUlJfU1RSRUFNX0NBTk5PVF9QSVBFIiwiRVJSX1NUUkVBTV9ERVNUUk9ZRUQiLCJFUlJfU1RSRUFNX05VTExfVkFMVUVTIiwiRVJSX1NUUkVBTV9XUklURV9BRlRFUl9FTkQiLCJFUlJfVU5LTk9XTl9FTkNPRElORyIsIm5vcCIsIndyaXRhYmxlT2JqZWN0TW9kZSIsImZpbmFsQ2FsbGVkIiwiZW5kaW5nIiwibm9EZWNvZGUiLCJkZWNvZGVTdHJpbmdzIiwid3JpdGluZyIsImNvcmtlZCIsImJ1ZmZlclByb2Nlc3NpbmciLCJvbndyaXRlIiwib253cml0ZVN0YXRlVXBkYXRlIiwid3JpdGVsZW4iLCJvbndyaXRlRXJyb3IiLCJmaW5pc2hNYXliZSIsImVycm9yRW1pdHRlZCIsIm5lZWRGaW5pc2giLCJidWZmZXJlZFJlcXVlc3QiLCJjbGVhckJ1ZmZlciIsImFmdGVyV3JpdGUiLCJsYXN0QnVmZmVyZWRSZXF1ZXN0IiwicHJlZmluaXNoZWQiLCJidWZmZXJlZFJlcXVlc3RDb3VudCIsIndyaXRldiIsIl93cml0ZXYiLCJmaW5hbCIsIl9maW5hbCIsImRvV3JpdGUiLCJvbndyaXRlRHJhaW4iLCJob2xkZXIiLCJhbGxCdWZmZXJzIiwiaXNCdWYiLCJjYWxsRmluYWwiLCJuZWVkIiwiclN0YXRlIiwiY3VycmVudCIsIndyaXRhYmxlU3RhdGVCdWZmZXJHZXR0ZXIiLCJoYXNJbnN0YW5jZSIsIm9iamVjdCIsIndyaXRlQWZ0ZXJFbmQiLCJ2YWxpZENodW5rIiwid3JpdGVPckJ1ZmZlciIsIm5ld0NodW5rIiwiZGVjb2RlQ2h1bmsiLCJjb3JrIiwidW5jb3JrIiwic2V0RGVmYXVsdEVuY29kaW5nIiwiZW5kV3JpdGFibGUiLCJTaGEyMjQiLCJlbnVtZXJhYmxlT25seSIsInN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfb2JqZWN0U3ByZWFkIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfdG9Qcm9wZXJ0eUtleSIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwicHJvcHMiLCJkZXNjcmlwdG9yIiwiX3RvUHJpbWl0aXZlIiwiaGludCIsInByaW0iLCJjdXN0b20iLCJjb3B5QnVmZmVyIiwiX2NsYXNzQ2FsbENoZWNrIiwiaW5zdGFuY2UiLCJDb25zdHJ1Y3RvciIsInRhaWwiLCJfY3JlYXRlQ2xhc3MiLCJwcm90b1Byb3BzIiwic3RhdGljUHJvcHMiLCJzIiwiaGFzU3RyaW5ncyIsIl9nZXRTdHJpbmciLCJfZ2V0QnVmZmVyIiwiZGVwdGgiLCJjdXN0b21JbnNwZWN0IiwiU2hhMSIsInJvdGw1IiwibnVtIiwicm90bDMwIiwiZnQiLCJ0IiwiRVJSX01JU1NJTkdfQVJHUyIsInRvIiwic3RyZWFtcyIsInBvcENhbGxiYWNrIiwiZGVzdHJveXMiLCJkZXN0cm95ZXIiLCJjbG9zZWQiLCJyZWR1Y2UiLCJTSEEiLCJhbGdvcml0aG0iLCJBbGdvcml0aG0iLCJzaGEiLCJzaGExIiwic2hhMjI0Iiwic2hhMjU2Iiwic2hhMzg0Iiwic2hhNTEyIiwiU2hhIiwiU0hBNTEyIiwiU2hhMzg0IiwiX2FoIiwiX2JoIiwiX2NoIiwiX2RoIiwiX2VoIiwiX2ZoIiwiX2doIiwiX2hoIiwiX2FsIiwiX2JsIiwiX2NsIiwiX2RsIiwiX2VsIiwiX2ZsIiwiX2dsIiwiX2hsIiwid3JpdGVJbnQ2NEJFIiwiY29weVByb3BzIiwiU2FmZUJ1ZmZlciIsIlNoYTUxMiIsIkNoIiwieGwiLCJHYW1tYTAiLCJHYW1tYTBsIiwiR2FtbWExIiwiR2FtbWExbCIsImdldENhcnJ5IiwiYWgiLCJiaCIsImRoIiwiZWgiLCJmaCIsImdoIiwiaGgiLCJhbCIsImJsIiwiY2wiLCJkbCIsImVsIiwiZmwiLCJnbCIsImhsIiwieGgiLCJnYW1tYTBsIiwiZ2FtbWExbCIsIldpN2giLCJXaTdsIiwiV2kxNmgiLCJXaTE2bCIsIldpbCIsIldpaCIsIm1hamgiLCJtYWpsIiwic2lnbWEwaCIsInNpZ21hMGwiLCJzaWdtYTFoIiwic2lnbWExbCIsIktpaCIsIktpbCIsImNoaCIsImNobCIsInQxbCIsInQxaCIsInQybCIsInQyaCIsImVtaXRFcnJvckFuZENsb3NlTlQiLCJlbWl0RXJyb3JOVCIsImVtaXRDbG9zZU5UIiwicmVhZGFibGVEZXN0cm95ZWQiLCJ3cml0YWJsZURlc3Ryb3llZCIsImlzU3BlY2lmaWNWYWx1ZSIsIkRhdGUiLCJSZWdFeHAiLCJjbG9uZVNwZWNpZmljVmFsdWUiLCJnZXRUaW1lIiwiZGVlcENsb25lQXJyYXkiLCJjbG9uZSIsImRlZXBFeHRlbmQiLCJzYWZlR2V0UHJvcGVydHkiLCJwcm9wZXJ0eSIsIl9PYmplY3Qkc2V0UHJvdG90eXBlTyIsImtMYXN0UmVzb2x2ZSIsImtMYXN0UmVqZWN0Iiwia0Vycm9yIiwia0VuZGVkIiwia0xhc3RQcm9taXNlIiwia0hhbmRsZVByb21pc2UiLCJrU3RyZWFtIiwiY3JlYXRlSXRlclJlc3VsdCIsInJlYWRBbmRSZXNvbHZlIiwiaXRlciIsIm9uUmVhZGFibGUiLCJBc3luY0l0ZXJhdG9yUHJvdG90eXBlIiwiUmVhZGFibGVTdHJlYW1Bc3luY0l0ZXJhdG9yUHJvdG90eXBlIiwicHJvbWlzZSIsImxhc3RQcm9taXNlIiwid3JhcEZvck5leHQiLCJ0aGVuIiwiX3JldHVybiIsIl90aGlzMiIsIl9PYmplY3QkY3JlYXRlIiwiaXRlcmF0b3IiLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX2Jhc2U2NF9qc19mMTQ1ZWI2ZV9fIiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiY2FjaGVkTW9kdWxlIiwiX193ZWJwYWNrX21vZHVsZXNfXyIsImdldHRlciIsIl9fZXNNb2R1bGUiLCJkZWZpbml0aW9uIiwibyIsImdsb2JhbFRoaXMiLCJwcm9wIiwiaGFzT3duUHJvcGVydHkiLCJ0b1N0cmluZ1RhZyIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3RfXyIsIkNvbXBvbmVudCIsIlB1cmVDb21wb25lbnQiLCJjcmVhdGVDb250ZXh0IiwiY3JlYXRlRWxlbWVudCIsImZvcndhcmRSZWYiLCJ1c2VDYWxsYmFjayIsInVzZUNvbnRleHQiLCJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlZHV4X18iLCJhcHBseU1pZGRsZXdhcmUiLCJiaW5kQWN0aW9uQ3JlYXRvcnMiLCJjb21wb3NlIiwiY3JlYXRlU3RvcmUiLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX2ltbXV0YWJsZV9fIiwiTGlzdCIsIk1hcCIsIk9yZGVyZWRNYXAiLCJTZXEiLCJTZXQiLCJmcm9tSlMiLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlZHV4X2ltbXV0YWJsZV80NDZjOWY4Ml9fIiwiY29tYmluZVJlZHVjZXJzIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9zZXJpYWxpemVfZXJyb3JfNWYyZGYzZTVfXyIsInNlcmlhbGl6ZUVycm9yIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfbWVyZ2VfY2Y5OTM3NWFfXyIsIk5FV19USFJPV05fRVJSIiwiTkVXX1RIUk9XTl9FUlJfQkFUQ0giLCJORVdfU1BFQ19FUlIiLCJORVdfU1BFQ19FUlJfQkFUQ0giLCJORVdfQVVUSF9FUlIiLCJDTEVBUiIsIkNMRUFSX0JZIiwibmV3VGhyb3duRXJyIiwicGF5bG9hZCIsIm5ld1Rocm93bkVyckJhdGNoIiwibmV3U3BlY0VyciIsIm5ld1NwZWNFcnJCYXRjaCIsImVyckFycmF5IiwibmV3QXV0aEVyciIsImNsZWFyQnkiLCJtYWtlV2luZG93Iiwid2luIiwibG9jYXRpb24iLCJoaXN0b3J5Iiwib3BlbiIsImNsb3NlIiwiRmlsZSIsIkZvcm1EYXRhIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfbWVtb2l6ZV8yYjViYzQ3N19fIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfZmluZF9lOGVjYzJjYl9fIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfc29tZV81Y2Q0NzgwOV9fIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfZXFfYjQxYjgyM2FfXyIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfbG9kYXNoX2lzRnVuY3Rpb25fZjkwYjIwZDZfXyIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfY3NzX2VzY2FwZV8yZDMwMTQ0OF9fIiwic3dhZ2dlcjJTY2hlbWFLZXlzIiwiSW0iLCJvZiIsImdldFBhcmFtZXRlclNjaGVtYSIsInBhcmFtZXRlciIsImlzT0FTMyIsImlzTWFwIiwic2NoZW1hIiwicGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZSIsImsiLCJrZXlTZXEiLCJnZXRJbiIsIkRFRkFVTFRfUkVTUE9OU0VfS0VZIiwiaXNJbW11dGFibGUiLCJtYXliZSIsImlzSXRlcmFibGUiLCJpbW11dGFibGVUb0pTIiwidG9KUyIsIm9iamVjdGlmeSIsImlzT2JqZWN0IiwiZnJvbUpTT3JkZXJlZCIsImpzIiwidG9MaXN0IiwiaXNGdW5jdGlvbiIsImVudHJpZXMiLCJvYmpXaXRoSGFzaGVkS2V5cyIsImNyZWF0ZU9ialdpdGhIYXNoZWRLZXlzIiwiZmRPYmoiLCJuZXdPYmoiLCJoYXNoSWR4IiwidHJhY2tLZXlzIiwicGFpciIsImNvbnRhaW5zTXVsdGlwbGUiLCJub3JtYWxpemVBcnJheSIsImlzRm4iLCJpc0Z1bmMiLCJtZW1vaXplIiwiX21lbW9pemUiLCJvYmpNYXAiLCJvYmpSZWR1Y2UiLCJhc3NpZ24iLCJzeXN0ZW1UaHVua01pZGRsZXdhcmUiLCJnZXRTeXN0ZW0iLCJkaXNwYXRjaCIsImdldFN0YXRlIiwiYWN0aW9uIiwidmFsaWRhdGVWYWx1ZUJ5U2NoZW1hIiwicmVxdWlyZWRCeVBhcmFtIiwiYnlwYXNzUmVxdWlyZWRDaGVjayIsIm51bGxhYmxlIiwicmVxdWlyZWRCeVNjaGVtYSIsIm1heGltdW0iLCJtaW5pbXVtIiwibWF4TGVuZ3RoIiwibWluTGVuZ3RoIiwidW5pcXVlSXRlbXMiLCJtYXhJdGVtcyIsIm1pbkl0ZW1zIiwicGF0dGVybiIsInNjaGVtYVJlcXVpcmVzVmFsdWUiLCJoYXNWYWx1ZSIsInJlcXVpcmVzRnVydGhlclZhbGlkYXRpb24iLCJpc1ZhbGlkTnVsbGFibGUiLCJzdHJpbmdDaGVjayIsImFycmF5Q2hlY2siLCJhcnJheUxpc3RDaGVjayIsImlzTGlzdCIsInBhc3NlZEFueUNoZWNrIiwic29tZSIsIm9iamVjdFZhbCIsIkpTT04iLCJwYXJzZSIsImhhcyIsInByb3BLZXkiLCJlcnJzIiwidmFsaWRhdGVQYXR0ZXJuIiwicnhQYXR0ZXJuIiwidGVzdCIsInZhbGlkYXRlTWluSXRlbXMiLCJ2YWxpZGF0ZU1heEl0ZW1zIiwibmVlZFJlbW92ZSIsImVycm9yUGVySXRlbSIsInZhbGlkYXRlVW5pcXVlSXRlbXMiLCJ0b1NldCIsImVycm9yc1BlckluZGV4IiwidG9BcnJheSIsInZhbGlkYXRlTWF4TGVuZ3RoIiwidmFsaWRhdGVNaW5MZW5ndGgiLCJ2YWxpZGF0ZU1heGltdW0iLCJ2YWxpZGF0ZU1pbmltdW0iLCJ2YWxpZGF0ZURhdGVUaW1lIiwidmFsaWRhdGVHdWlkIiwidmFsaWRhdGVTdHJpbmciLCJ2YWxpZGF0ZUJvb2xlYW4iLCJ2YWxpZGF0ZUludGVnZXIiLCJ2YWxpZGF0ZUZpbGUiLCJidG9hIiwic29ydGVycyIsIm9wZXJhdGlvbnNTb3J0ZXIiLCJhbHBoYSIsImxvY2FsZUNvbXBhcmUiLCJ0YWdzU29ydGVyIiwiYnVpbGRGb3JtRGF0YSIsImZvcm1BcnIiLCJlbmNvZGVVUklDb21wb25lbnQiLCJzaGFsbG93RXF1YWxLZXlzIiwiZmluZCIsImVxIiwicmVxdWlyZXNWYWxpZGF0aW9uVVJMIiwidXJpIiwiY3JlYXRlRGVlcExpbmtQYXRoIiwiZXNjYXBlRGVlcExpbmtQYXRoIiwiY3NzRXNjYXBlIiwiZ2V0RXh0ZW5zaW9ucyIsImRlZk9iaiIsImV4dGVuc2lvblJlZ0V4cCIsImdldENvbW1vbkV4dGVuc2lvbnMiLCJkZWVwbHlTdHJpcEtleSIsImtleVRvU3RyaXAiLCJwcmVkaWNhdGUiLCJzdHJpbmdpZnkiLCJwYXJhbVRvSWRlbnRpZmllciIsInBhcmFtIiwicmV0dXJuQWxsIiwiYWxsb3dIYXNoZXMiLCJwYXJhbU5hbWUiLCJwYXJhbUluIiwiZ2VuZXJhdGVkSWRlbnRpZmllcnMiLCJoYXNoQ29kZSIsInBhcmFtVG9WYWx1ZSIsInBhcmFtVmFsdWVzIiwiaWQiLCJiNjR0b0I2NFVybEVuY29kZWQiLCJpc0VtcHR5VmFsdWUiLCJpc0VtcHR5IiwiaWRGbiIsIlN0b3JlIiwicGx1Z2lucyIsInN5c3RlbSIsImNvbmZpZ3MiLCJjb21wb25lbnRzIiwicm9vdEluamVjdHMiLCJzdGF0ZVBsdWdpbnMiLCJib3VuZFN5c3RlbSIsInRvb2xib3giLCJfZ2V0U3lzdGVtIiwic3RvcmUiLCJjb25maWd1cmVTdG9yZSIsInJvb3RSZWR1Y2VyIiwiaW5pdGlhbFN0YXRlIiwiY3JlYXRlU3RvcmVXaXRoTWlkZGxld2FyZSIsIm1pZGRsd2FyZXMiLCJjb21wb3NlRW5oYW5jZXJzIiwiX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fQ09NUE9TRV9fIiwiYnVpbGRTeXN0ZW0iLCJyZWdpc3RlciIsImdldFN0b3JlIiwicmVidWlsZCIsInBsdWdpblN5c3RlbSIsImNvbWJpbmVQbHVnaW5zIiwic3lzdGVtRXh0ZW5kIiwiY2FsbEFmdGVyTG9hZCIsImJ1aWxkUmVkdWNlciIsImdldFJvb3RJbmplY3RzIiwiZ2V0V3JhcHBlZEFuZEJvdW5kQWN0aW9ucyIsImdldFdyYXBwZWRBbmRCb3VuZFNlbGVjdG9ycyIsImdldFN0YXRlVGh1bmtzIiwiZ2V0Rm4iLCJnZXRDb25maWdzIiwicmVidWlsZFJlZHVjZXIiLCJnZXRDb21wb25lbnRzIiwiX2dldENvbmZpZ3MiLCJSZWFjdCIsInNldENvbmZpZ3MiLCJyZXBsYWNlUmVkdWNlciIsInN0YXRlcyIsImFsbFJlZHVjZXJzIiwicmVkdWNlclN5c3RlbSIsInJlZHVjZXJzIiwibWFrZVJlZHVjZXIiLCJyZWR1Y2VyT2JqIiwicmVkRm4iLCJ3cmFwV2l0aFRyeUNhdGNoIiwiZ2V0VHlwZSIsInVwTmFtZSIsInRvVXBwZXJDYXNlIiwibmFtZXNwYWNlIiwiZ2V0U2VsZWN0b3JzIiwiZ2V0QWN0aW9ucyIsImFjdGlvbnMiLCJhY3Rpb25OYW1lIiwiZ2V0Qm91bmRBY3Rpb25zIiwiYWN0aW9uR3JvdXBOYW1lIiwid3JhcHBlcnMiLCJ3cmFwQWN0aW9ucyIsImFjYyIsIm5ld0FjdGlvbiIsImdldEJvdW5kU2VsZWN0b3JzIiwic2VsZWN0b3JzIiwic2VsZWN0b3JHcm91cE5hbWUiLCJzdGF0ZU5hbWUiLCJ3cmFwU2VsZWN0b3JzIiwic2VsZWN0b3IiLCJzZWxlY3Rvck5hbWUiLCJ3cmFwcGVkU2VsZWN0b3IiLCJnZXRTdGF0ZXMiLCJjb21wb25lbnQiLCJvcmkiLCJ3cmFwcGVyIiwiY3JlYXRvciIsImFjdGlvbkNyZWF0b3IiLCJnZXRNYXBTdGF0ZVRvUHJvcHMiLCJnZXRNYXBEaXNwYXRjaFRvUHJvcHMiLCJleHRyYXMiLCJtZXJnZSIsInBsdWdpbiIsImhhc0xvYWRlZCIsImNhbGxlZFNvbWV0aGluZyIsImFmdGVyTG9hZCIsIndyYXBDb21wb25lbnRzIiwid3JhcHBlckZuIiwibmFtZXNwYWNlT2JqIiwibG9nRXJyb3JzIiwidW5jYXVnaHRFeGNlcHRpb25IYW5kbGVyIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV91cmxfcGFyc2VfNjQ1NjEwNWZfXyIsIlNIT1dfQVVUSF9QT1BVUCIsIkFVVEhPUklaRSIsIkxPR09VVCIsIkFVVEhPUklaRV9PQVVUSDIiLCJDT05GSUdVUkVfQVVUSCIsIlJFU1RPUkVfQVVUSE9SSVpBVElPTiIsInNob3dEZWZpbml0aW9ucyIsImF1dGhvcml6ZSIsImF1dGhvcml6ZVdpdGhQZXJzaXN0T3B0aW9uIiwiYXV0aEFjdGlvbnMiLCJwZXJzaXN0QXV0aG9yaXphdGlvbklmTmVlZGVkIiwibG9nb3V0IiwibG9nb3V0V2l0aFBlcnNpc3RPcHRpb24iLCJwcmVBdXRob3JpemVJbXBsaWNpdCIsImVyckFjdGlvbnMiLCJhdXRoIiwidG9rZW4iLCJpc1ZhbGlkIiwic3dhZ2dlclVJUmVkaXJlY3RPYXV0aDIiLCJhdXRoSWQiLCJsZXZlbCIsImF1dGhvcml6ZU9hdXRoMldpdGhQZXJzaXN0T3B0aW9uIiwiYXV0aG9yaXplT2F1dGgyIiwiYXV0aG9yaXplUGFzc3dvcmQiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwicGFzc3dvcmRUeXBlIiwiY2xpZW50SWQiLCJjbGllbnRTZWNyZXQiLCJmb3JtIiwiZ3JhbnRfdHlwZSIsInNjb3BlIiwic2NvcGVzIiwiaGVhZGVycyIsInNldENsaWVudElkQW5kU2VjcmV0IiwiY2xpZW50X2lkIiwiY2xpZW50X3NlY3JldCIsIkF1dGhvcml6YXRpb24iLCJhdXRob3JpemVSZXF1ZXN0IiwiYm9keSIsInVybCIsInF1ZXJ5IiwiYXV0aG9yaXplQXBwbGljYXRpb24iLCJhdXRob3JpemVBY2Nlc3NDb2RlV2l0aEZvcm1QYXJhbXMiLCJyZWRpcmVjdFVybCIsImNvZGVWZXJpZmllciIsInJlZGlyZWN0X3VyaSIsImNvZGVfdmVyaWZpZXIiLCJhdXRob3JpemVBY2Nlc3NDb2RlV2l0aEJhc2ljQXV0aGVudGljYXRpb24iLCJvYXMzU2VsZWN0b3JzIiwic3BlY1NlbGVjdG9ycyIsImF1dGhTZWxlY3RvcnMiLCJwYXJzZWRVcmwiLCJhZGRpdGlvbmFsUXVlcnlTdHJpbmdQYXJhbXMiLCJmaW5hbFNlcnZlclVybCIsInNlcnZlckVmZmVjdGl2ZVZhbHVlIiwic2VsZWN0ZWRTZXJ2ZXIiLCJwYXJzZVVybCIsImZldGNoVXJsIiwiX2hlYWRlcnMiLCJmZXRjaCIsInJlcXVlc3RJbnRlcmNlcHRvciIsInJlc3BvbnNlSW50ZXJjZXB0b3IiLCJyZXNwb25zZSIsInBhcnNlRXJyb3IiLCJvayIsInN0YXR1c1RleHQiLCJjYXRjaCIsImVyckRhdGEiLCJqc29uUmVzcG9uc2UiLCJlcnJvcl9kZXNjcmlwdGlvbiIsImpzb25FcnJvciIsImNvbmZpZ3VyZUF1dGgiLCJyZXN0b3JlQXV0aG9yaXphdGlvbiIsInBlcnNpc3RBdXRob3JpemF0aW9uIiwiYXV0aG9yaXplZCIsInNldEl0ZW0iLCJhdXRoUG9wdXAiLCJzZWN1cml0aWVzIiwiZW50cnlTZXEiLCJzZWN1cml0eSIsInNldEluIiwiaGVhZGVyIiwicGFyc2VkQXV0aCIsInJlc3VsdCIsIndpdGhNdXRhdGlvbnMiLCJkZWxldGUiLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3Jlc2VsZWN0X18iLCJjcmVhdGVTZWxlY3RvciIsInNob3duRGVmaW5pdGlvbnMiLCJkZWZpbml0aW9uc1RvQXV0aG9yaXplIiwiZGVmaW5pdGlvbnMiLCJzZWN1cml0eURlZmluaXRpb25zIiwic2VsZWN0QXV0aFBhdGgiLCJnZXREZWZpbml0aW9uc0J5TmFtZXMiLCJ2YWx1ZVNlcSIsIm5hbWVzIiwiYWxsb3dlZFNjb3BlcyIsImNvbnRhaW5zIiwiZGVmaW5pdGlvbnNGb3JSZXF1aXJlbWVudHMiLCJhbGxEZWZpbml0aW9ucyIsInNlYyIsInNlY3VyaXR5U2NvcGVzIiwiZGVmaW5pdGlvblNjb3BlcyIsImlzQXV0aG9yaXplZCIsImV4ZWN1dGUiLCJvcmlBY3Rpb24iLCJwYXRoIiwib3BlcmF0aW9uIiwic3BlY1NlY3VyaXR5IiwibG9hZGVkIiwiZ2V0SXRlbSIsImlzQXBpS2V5QXV0aCIsImlzSW5Db29raWUiLCJkb2N1bWVudCIsImNvb2tpZSIsImF1dGhvcml6ZWROYW1lIiwiY29va2llTmFtZSIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcHJvcF90eXBlc19hZGZlOGUzMV9fIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfb21pdF9kOTMwZTBmM19fIiwiTG9ja0F1dGhJY29uIiwibWFwU3RhdGVUb1Byb3BzIiwib3duUHJvcHMiLCJvbWl0IiwicmVuZGVyIiwiZ2V0Q29tcG9uZW50IiwiTG9ja0ljb24iLCJVbmxvY2tBdXRoSWNvbiIsIlVubG9ja0ljb24iLCJpbml0T0F1dGgiLCJwcmVhdXRob3JpemVBcGlLZXkiLCJwcmVhdXRob3JpemVCYXNpYyIsIkxvY2tBdXRoT3BlcmF0aW9uSWNvbiIsIlVubG9ja0F1dGhPcGVyYXRpb25JY29uIiwid3JhcHBlZEF1dGhvcml6ZUFjdGlvbiIsIndyYXBwZWRMb2dvdXRBY3Rpb24iLCJzcGVjIiwic3BlY0pzb24iLCJkZWZpbml0aW9uQmFzZSIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfanNfeWFtbF83ODM4NDAzMl9fIiwiSlNPTl9TQ0hFTUEiLCJVUERBVEVfQ09ORklHUyIsIlRPR0dMRV9DT05GSUdTIiwiY29uZmlnTmFtZSIsImNvbmZpZ1ZhbHVlIiwidG9nZ2xlIiwiZG93bmxvYWRDb25maWciLCJnZXRDb25maWdCeVVybCIsInNwZWNBY3Rpb25zIiwiY29uZmlnc0FjdGlvbnMiLCJzdGF0dXMiLCJ1cGRhdGVMb2FkaW5nU3RhdHVzIiwidXBkYXRlVXJsIiwicGFyc2VDb25maWciLCJ5YW1sIiwiWUFNTCIsIm9yaVZhbCIsImNvbmZpZ3NQbHVnaW4iLCJzZXRIYXNoIiwicHVzaFN0YXRlIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV96ZW5zY3JvbGxfXyIsIlNDUk9MTF9UTyIsIkNMRUFSX1NDUk9MTF9UTyIsImdldFNjcm9sbFBhcmVudCIsImluY2x1ZGVIaWRkZW4iLCJMQVNUX1JFU09SVCIsImRvY3VtZW50RWxlbWVudCIsInN0eWxlIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImV4Y2x1ZGVTdGF0aWNQYXJlbnQiLCJvdmVyZmxvd1JlZ2V4IiwicGFyZW50IiwicGFyZW50RWxlbWVudCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIiwib3ZlcmZsb3dYIiwibGF5b3V0Iiwic2Nyb2xsVG9FbGVtZW50IiwicmVmIiwiY29udGFpbmVyIiwiemVuc2Nyb2xsIiwic2Nyb2xsVG8iLCJjbGVhclNjcm9sbFRvIiwicmVhZHlUb1Njcm9sbCIsImlzU2hvd25LZXkiLCJzY3JvbGxUb0tleSIsImxheW91dFNlbGVjdG9ycyIsImdldFNjcm9sbFRvS2V5IiwibGF5b3V0QWN0aW9ucyIsInBhcnNlRGVlcExpbmtIYXNoIiwicmF3SGFzaCIsImRlZXBMaW5raW5nIiwiaGFzaEFycmF5IiwiaXNTaG93bktleUZyb21VcmxIYXNoQXJyYXkiLCJ0YWdJZCIsIm1heWJlT3BlcmF0aW9uSWQiLCJ0YWdJc1Nob3duS2V5Iiwic2hvdyIsInVybEhhc2hBcnJheSIsInRhZyIsIm9wZXJhdGlvbklkIiwidXJsSGFzaEFycmF5RnJvbUlzU2hvd25LZXkiLCJ0b2tlbkFycmF5Iiwic2hvd24iLCJhc3NldE5hbWUiLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X2ltbXV0YWJsZV9wcm9wdHlwZXNfODljN2QwODNfXyIsIldyYXBwZXIiLCJPcmkiLCJPcGVyYXRpb25XcmFwcGVyIiwib25Mb2FkIiwidG9PYmplY3QiLCJPcGVyYXRpb25UYWdXcmFwcGVyIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiT3BlcmF0aW9uVGFnIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfcmVkdWNlXzExZTY5OTk2X18iLCJzZWVrU3RyIiwidHlwZXMiLCJtYWtlTmV3TWVzc2FnZSIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfbG9kYXNoX2dldF85NDI3Zjg5OV9fIiwianNTcGVjIiwiZXJyb3JUcmFuc2Zvcm1lcnMiLCJOb3RPZlR5cGUiLCJQYXJhbWV0ZXJPbmVPZiIsInRyYW5zZm9ybUVycm9ycyIsImlucHV0cyIsInRyYW5zZm9ybWVkRXJyb3JzIiwidHJhbnNmb3JtZXIiLCJERUZBVUxUX0VSUk9SX1NUUlVDVFVSRSIsImxpbmUiLCJhbGxFcnJvcnMiLCJsYXN0RXJyb3IiLCJhbGwiLCJzb3J0QnkiLCJuZXdFcnJvcnMiLCJldmVyeSIsImVyclZhbHVlIiwiZmlsdGVyVmFsdWUiLCJ0YWdnZWRPcHMiLCJwaHJhc2UiLCJ0YWdPYmoiLCJvcHNGaWx0ZXIiLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX19iYWJlbF9ydW50aW1lX2NvcmVqczNfaGVscGVyc19leHRlbmRzX2QyMGQzY2ViX18iLCJBcnJvd1VwIiwiY2xhc3NOYW1lIiwid2lkdGgiLCJoZWlnaHQiLCJyZXN0IiwiX2V4dGVuZHMiLCJ4bWxucyIsInZpZXdCb3giLCJmb2N1c2FibGUiLCJBcnJvd0Rvd24iLCJBcnJvdyIsIkNsb3NlIiwiQ29weSIsImZpbGxSdWxlIiwiTG9jayIsIlVubG9jayIsIkljb25zUGx1Z2luIiwiQXJyb3dVcEljb24iLCJBcnJvd0Rvd25JY29uIiwiQXJyb3dJY29uIiwiQ2xvc2VJY29uIiwiQ29weUljb24iLCJVUERBVEVfTEFZT1VUIiwiVVBEQVRFX0ZJTFRFUiIsIlVQREFURV9NT0RFIiwiU0hPVyIsInVwZGF0ZUxheW91dCIsInVwZGF0ZUZpbHRlciIsImNoYW5nZU1vZGUiLCJtb2RlIiwiaXNTaG93biIsInRoaW5nVG9TaG93IiwiY3VycmVudEZpbHRlciIsImRlZiIsIndoYXRNb2RlIiwic2hvd1N1bW1hcnkiLCJ0YWdnZWRPcGVyYXRpb25zIiwib3JpU2VsZWN0b3IiLCJtYXhEaXNwbGF5ZWRUYWdzIiwibGV2ZWxzIiwiZ2V0TGV2ZWwiLCJsb2dMZXZlbCIsImxvZ0xldmVsSW50IiwibG9nIiwiaW5mbyIsImVuZ2FnZWQiLCJ1cGRhdGVTcGVjIiwidXBkYXRlSnNvblNwZWMiLCJvbkNvbXBsZXRlIiwiZXh0cmFjdEtleSIsImVzY2FwZVNoZWxsIiwiZXNjYXBlQ01EIiwiZXNjYXBlUG93ZXJzaGVsbCIsImN1cmxpZnkiLCJyZXF1ZXN0IiwiZXNjYXBlIiwibmV3TGluZSIsImlzTXVsdGlwYXJ0Rm9ybURhdGFSZXF1ZXN0IiwiY3VybGlmaWVkIiwiYWRkV29yZHMiLCJhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2UiLCJhZGROZXdMaW5lIiwiYWRkSW5kZW50IiwicmVwZWF0IiwiY3VybE9wdGlvbnMiLCJleHRyYWN0ZWRLZXkiLCJyZXFCb2R5IiwiZ2V0U3RyaW5nQm9keU9mTWFwIiwiY3VybGlmeVRvSm9pbiIsInJlcXVlc3RTbmlwcGV0R2VuZXJhdG9yX2N1cmxfcG93ZXJzaGVsbCIsInJlcXVlc3RTbmlwcGV0R2VuZXJhdG9yX2N1cmxfYmFzaCIsInJlcXVlc3RTbmlwcGV0R2VuZXJhdG9yX2N1cmxfY21kIiwiZ2V0R2VuZXJhdG9ycyIsImxhbmd1YWdlS2V5cyIsImdlbmVyYXRvcnMiLCJnZXRTbmlwcGV0R2VuZXJhdG9ycyIsImdlbiIsImdlbkZuIiwiZ2V0R2VuRm4iLCJnZXRBY3RpdmVMYW5ndWFnZSIsImdldERlZmF1bHRFeHBhbmRlZCIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfY2xhc3NuYW1lc19fIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9jb3B5X3RvX2NsaXBib2FyZF81YjExZGQ1N19fIiwiQ29weVRvQ2xpcGJvYXJkIiwiY3Vyc29yIiwibGluZUhlaWdodCIsImRpc3BsYXkiLCJiYWNrZ3JvdW5kQ29sb3IiLCJwYWRkaW5nQm90dG9tIiwicGFkZGluZ1RvcCIsImJvcmRlciIsImJvcmRlclJhZGl1cyIsImJveFNoYWRvdyIsImJvcmRlckJvdHRvbSIsImFjdGl2ZVN0eWxlIiwibWFyZ2luVG9wIiwibWFyZ2luUmlnaHQiLCJtYXJnaW5MZWZ0IiwiekluZGV4IiwiUmVxdWVzdFNuaXBwZXRzIiwicmVxdWVzdFNuaXBwZXRzU2VsZWN0b3JzIiwicm9vdFJlZiIsIlN5bnRheEhpZ2hsaWdodGVyIiwiYWN0aXZlTGFuZ3VhZ2UiLCJzZXRBY3RpdmVMYW5ndWFnZSIsImlzRXhwYW5kZWQiLCJzZXRJc0V4cGFuZGVkIiwic25pcHBldEdlbmVyYXRvcnMiLCJhY3RpdmVHZW5lcmF0b3IiLCJzbmlwcGV0IiwiaGFuZGxlU2V0SXNFeHBhbmRlZCIsImhhbmRsZUdldEJ0blN0eWxlIiwiaGFuZGxlUHJldmVudFlTY3JvbGxpbmdCZXlvbmRFbGVtZW50IiwiZGVsdGFZIiwic2Nyb2xsSGVpZ2h0IiwiY29udGVudEhlaWdodCIsIm9mZnNldEhlaWdodCIsInZpc2libGVIZWlnaHQiLCJzY3JvbGxUb3AiLCJwcmV2ZW50RGVmYXVsdCIsImNoaWxkTm9kZXMiLCJub2RlIiwibm9kZVR5cGUiLCJjbGFzc0xpc3QiLCJwYXNzaXZlIiwianVzdGlmeUNvbnRlbnQiLCJhbGlnbkl0ZW1zIiwibWFyZ2luQm90dG9tIiwib25DbGljayIsImJhY2tncm91bmQiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCIsImNsYXNzTmFtZXMiLCJoYW5kbGVHZW5DaGFuZ2UiLCJjb2xvciIsImxhbmd1YWdlIiwicmVuZGVyUGxhaW5UZXh0IiwiY2hpbGRyZW4iLCJQbGFpblRleHRWaWV3ZXIiLCJyZXF1ZXN0U25pcHBldHMiLCJNb2RlbENvbGxhcHNlIiwic3RhdGljIiwiY29sbGFwc2VkQ29udGVudCIsImV4cGFuZGVkIiwib25Ub2dnbGUiLCJoaWRlU2VsZk9uRXhwYW5kIiwic3BlY1BhdGgiLCJkZWZhdWx0UHJvcHMiLCJjb21wb25lbnREaWRNb3VudCIsIm1vZGVsTmFtZSIsIlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIiwibmV4dFByb3BzIiwic2V0U3RhdGUiLCJ0b2dnbGVDb2xsYXBzZWQiLCJjbGFzc2VzIiwidXNlVGFicyIsImluaXRpYWxUYWIiLCJpc0V4ZWN1dGUiLCJleGFtcGxlIiwidGFicyIsIm1vZGVsIiwidGFiIiwicHJldklzRXhlY3V0ZSIsInVzZVByZXZpb3VzIiwiYWN0aXZlVGFiIiwic2V0QWN0aXZlVGFiIiwiaGFuZGxlVGFiQ2hhbmdlIiwiZGF0YXNldCIsIm9uVGFiQ2hhbmdlIiwiTW9kZWxFeGFtcGxlIiwiaW5jbHVkZVdyaXRlT25seSIsImluY2x1ZGVSZWFkT25seSIsImRlZmF1bHRNb2RlbFJlbmRlcmluZyIsImRlZmF1bHRNb2RlbEV4cGFuZERlcHRoIiwiTW9kZWxXcmFwcGVyIiwiSGlnaGxpZ2h0Q29kZSIsImV4YW1wbGVUYWJJZCIsImV4YW1wbGVQYW5lbElkIiwibW9kZWxUYWJJZCIsIm1vZGVsUGFuZWxJZCIsInJvbGUiLCJjeCIsImFjdGl2ZSIsImluYWN0aXZlIiwidGFiSW5kZXgiLCJleHBhbmREZXB0aCIsImZ1bGxQYXRoIiwiTW9kZWwiLCJfY2lyY2xlIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9pbW11dGFibGVfcHVyZV9jb21wb25lbnRfY2JjZmFlYmRfXyIsInByZXNlcnZlQXNwZWN0UmF0aW8iLCJiYWNrZ3JvdW5kSW1hZ2UiLCJiYWNrZ3JvdW5kUG9zaXRpb24iLCJiYWNrZ3JvdW5kUmVwZWF0IiwiY3kiLCJzdHJva2UiLCJzdHJva2VEYXNoYXJyYXkiLCJzdHJva2VXaWR0aCIsImF0dHJpYnV0ZU5hbWUiLCJiZWdpbiIsImNhbGNNb2RlIiwiZHVyIiwia2V5VGltZXMiLCJyZXBlYXRDb3VudCIsImRlY29kZVJlZk5hbWUiLCJ1bmVzY2FwZWQiLCJJbW11dGFibGVQdXJlQ29tcG9uZW50IiwiSW1Qcm9wVHlwZXMiLCJpc1JlcXVpcmVkIiwiUHJvcFR5cGVzIiwiZGlzcGxheU5hbWUiLCJpc1JlZiIsInJlcXVpcmVkIiwiZ2V0TW9kZWxOYW1lIiwiZ2V0UmVmU2NoZW1hIiwiZmluZERlZmluaXRpb24iLCJPYmplY3RNb2RlbCIsIkFycmF5TW9kZWwiLCJQcmltaXRpdmVNb2RlbCIsIiQkcmVmIiwiJHJlZiIsInJlZk5hbWUiLCJyZWZTY2hlbWEiLCJtZXJnZURlZXAiLCJSb2xsaW5nTG9hZFNWRyIsIk1vZGVscyIsImdldFNjaGVtYUJhc2VQYXRoIiwiZ2V0Q29sbGFwc2VkQ29udGVudCIsImhhbmRsZVRvZ2dsZSIsInJlcXVlc3RSZXNvbHZlZFN1YnRyZWUiLCJvbkxvYWRNb2RlbHMiLCJvbkxvYWRNb2RlbCIsImdldEF0dHJpYnV0ZSIsImRvY0V4cGFuc2lvbiIsImRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aCIsInNwZWNQYXRoQmFzZSIsInNob3dNb2RlbHMiLCJDb2xsYXBzZSIsIkp1bXBUb1BhdGgiLCJpc09wZW5lZCIsInNjaGVtYVZhbHVlIiwic3BlY1Jlc29sdmVkU3VidHJlZSIsInJhd1NjaGVtYVZhbHVlIiwicmF3U2NoZW1hIiwiRW51bU1vZGVsIiwiaXNBYnNvbHV0ZVVybCIsIm1hdGNoIiwiYnVpbGRCYXNlVXJsIiwic3BlY1VybCIsImFkZFByb3RvY29sIiwicHJvdG9jb2wiLCJVUkwiLCJocmVmIiwic2FmZUJ1aWxkVXJsIiwiYnVpbGRVcmwiLCJiYXNlVXJsIiwic2FuaXRpemVVcmwiLCJ1cmxUcmltbWVkIiwiYmxhbmtVUkwiLCJiYXNlIiwicmFuZG9tIiwidXJsT2JqZWN0Iiwic2NoZW1lIiwib3JpZ2luIiwicGF0aG5hbWUiLCJvdGhlclByb3BzIiwiaXNFbWJlZGRlZCIsInNob3dFeHRlbnNpb25zIiwiZXh0ZW5zaW9ucyIsImRlc2NyaXB0aW9uIiwicHJvcGVydGllcyIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwicmVxdWlyZWRQcm9wZXJ0aWVzIiwiaW5mb1Byb3BlcnRpZXMiLCJleHRlcm5hbERvY3NVcmwiLCJleHRlcm5hbERvY3NEZXNjcmlwdGlvbiIsIk1hcmtkb3duIiwiUHJvcGVydHkiLCJMaW5rIiwiTW9kZWxFeHRlbnNpb25zIiwiSnVtcFRvUGF0aFNlY3Rpb24iLCJhbGxPZiIsImFueU9mIiwibm90IiwidGl0bGVFbCIsImlzRGVwcmVjYXRlZCIsInByb3BDbGFzcyIsInByb3BWYWwiLCJpdGVtcyIsIlByaW1pdGl2ZSIsImVudW1BcnJheSIsImZpbHRlck5vdCIsIlNjaGVtZXMiLCJVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50Iiwic2NoZW1lcyIsInNldFNjaGVtZSIsImN1cnJlbnRTY2hlbWUiLCJvbkNoYW5nZSIsImh0bWxGb3IiLCJTY2hlbWVzQ29udGFpbmVyIiwib3BlcmF0aW9uU2NoZW1lIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9kZWJvdW5jZV9pbnB1dF83ZWQzZTA2OF9fIiwiSnNvblNjaGVtYURlZmF1bHRQcm9wcyIsImtleU5hbWUiLCJKc29uU2NoZW1hRm9ybSIsImRpc3BhdGNoSW5pdGlhbFZhbHVlIiwiZGlzYWJsZWQiLCJvYmplY3RUeXBlIiwiZ2V0U2NoZW1hT2JqZWN0VHlwZSIsImlzRmlsZVVwbG9hZEludGVuZGVkIiwiZ2V0Q29tcG9uZW50U2lsZW50bHkiLCJmYWlsU2lsZW50bHkiLCJDb21wIiwiSnNvblNjaGVtYV9zdHJpbmciLCJmaWxlcyIsIm9uRW51bUNoYW5nZSIsImVudW1WYWx1ZSIsInNjaGVtYUluIiwiU2VsZWN0IiwiYWxsb3dlZFZhbHVlcyIsImFsbG93RW1wdHlWYWx1ZSIsImlzRGlzYWJsZWQiLCJJbnB1dCIsIkRlYm91bmNlSW5wdXQiLCJkZWJvdW5jZVRpbWVvdXQiLCJwbGFjZWhvbGRlciIsIkpzb25TY2hlbWFfYXJyYXkiLCJ2YWx1ZU9yRW1wdHlMaXN0Iiwib25JdGVtQ2hhbmdlIiwiaXRlbVZhbCIsInJlbW92ZUl0ZW0iLCJhZGRJdGVtIiwibmV3VmFsdWUiLCJnZXRTYW1wbGVTY2hlbWEiLCJhcnJheUVycm9ycyIsIm5lZWRzUmVtb3ZlRXJyb3IiLCJzaG91bGRSZW5kZXJWYWx1ZSIsInNjaGVtYUl0ZW1zRW51bSIsInNjaGVtYUl0ZW1zIiwic2NoZW1hSXRlbXNUeXBlIiwic2NoZW1hSXRlbXNUeXBlTGFiZWwiLCJnZXRTY2hlbWFPYmplY3RUeXBlTGFiZWwiLCJzY2hlbWFJdGVtc0Zvcm1hdCIsInNjaGVtYUl0ZW1zU2NoZW1hIiwiQXJyYXlJdGVtc0NvbXBvbmVudCIsImlzQXJyYXlJdGVtVGV4dCIsImlzQXJyYXlJdGVtRmlsZSIsIm11bHRpcGxlIiwiQnV0dG9uIiwiaXRlbUVycm9ycyIsIkpzb25TY2hlbWFBcnJheUl0ZW1GaWxlIiwiSnNvblNjaGVtYUFycmF5SXRlbVRleHQiLCJvbkZpbGVDaGFuZ2UiLCJKc29uU2NoZW1hX2Jvb2xlYW4iLCJib29sZWFuVmFsdWUiLCJzdHJpbmdpZnlPYmplY3RFcnJvcnMiLCJtZXRhIiwic3RyaW5nRXJyb3IiLCJjdXJyZW50RXJyb3IiLCJwYXJ0IiwiSnNvblNjaGVtYV9vYmplY3QiLCJoYW5kbGVPbkNoYW5nZSIsImlucHV0VmFsdWUiLCJUZXh0QXJlYSIsImludmFsaWQiLCJub3JtYWxpemVkVmFsdWUiLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX2xvZGFzaF9pc1BsYWluT2JqZWN0XzExNmYyMjQzX18iLCJoYXNTY2hlbWFUeXBlIiwiaXNTY2hlbWFJbW11dGFibGUiLCJpc1BsYWluT2JqZWN0Iiwic2NoZW1hVHlwZSIsInByb2Nlc3NlZFNjaGVtYXMiLCJXZWFrU2V0IiwiaGFzT3duIiwiZ2V0QXJyYXlUeXBlIiwiSlNPTlNjaGVtYTVQbHVnaW4iLCJtb2RlbEV4YW1wbGUiLCJKU09OU2NoZW1hQ29tcG9uZW50cyIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmFuZGV4cF9fIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfaXNFbXB0eV9lMTA5ZmQ2Yl9fIiwic2hhbGxvd0FycmF5RXF1YWxzIiwiQ2FjaGUiLCJmb3VuZEtleSIsImZpbmRJbmRleCIsIm1lbW9pemVOIiwiT3JpZ2luYWxDYWNoZSIsIm1lbW9pemVkIiwicHJpbWl0aXZlcyIsImdlbmVyYXRlU3RyaW5nRnJvbVJlZ2V4IiwicGF0dGVyblNhbml0aXplciIsInNhZmVQYXR0ZXJuIiwicmFuZGV4cEluc3RhbmNlIiwiUmFuZEV4cCIsInN0cmluZ19lbWFpbCIsInN0cmluZ19kYXRlLXRpbWUiLCJ0b0lTT1N0cmluZyIsInN0cmluZ19kYXRlIiwic3RyaW5nX3RpbWUiLCJzdHJpbmdfdXVpZCIsInN0cmluZ19ob3N0bmFtZSIsInN0cmluZ19pcHY0Iiwic3RyaW5nX2lwdjYiLCJudW1iZXIiLCJudW1iZXJfZmxvYXQiLCJpbnRlZ2VyIiwiZGVmYXVsdCIsInByaW1pdGl2ZSIsInNhbml0aXplUmVmIiwib2JqZWN0Q29udHJhY3RzIiwiYXJyYXlDb250cmFjdHMiLCJudW1iZXJDb250cmFjdHMiLCJzdHJpbmdDb250cmFjdHMiLCJtZXJnZUpzb25TY2hlbWEiLCJtZXJnZWQiLCJzZXRJZk5vdERlZmluZWRJblRhcmdldCIsInByb3BOYW1lIiwicmVhZE9ubHkiLCJ3cml0ZU9ubHkiLCJzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyIsImV4YW1wbGVPdmVycmlkZSIsInJlc3BlY3RYTUwiLCJ1c2VQbGFpblZhbHVlIiwiaGFzT25lT2YiLCJoYXNBbnlPZiIsInNjaGVtYVRvQWRkIiwicHJlZml4Iiwic2NoZW1hSGFzQW55IiwiZW51bSIsImhhbmRsZU1pbk1heEl0ZW1zIiwic2FtcGxlQXJyYXkiLCJhZGRQcm9wZXJ0eVRvUmVzdWx0IiwicHJvcGVydHlBZGRlZENvdW50ZXIiLCJoYXNFeGNlZWRlZE1heFByb3BlcnRpZXMiLCJtYXhQcm9wZXJ0aWVzIiwiY2FuQWRkUHJvcGVydHkiLCJpc09wdGlvbmFsUHJvcGVydHkiLCJyZXF1aXJlZFByb3BlcnRpZXNUb0FkZCIsImFkZGVkQ291bnQiLCJvdmVycmlkZUUiLCJlbnVtQXR0clZhbCIsImF0dHJFeGFtcGxlIiwiYXR0ckRlZmF1bHQiLCJkaXNjcmltaW5hdG9yIiwibWFwcGluZyIsInByb3BlcnR5TmFtZSIsInNhbXBsZSIsIml0ZW1TY2hlbWEiLCJpdGVtU2FtcGxlcyIsImFkZGl0aW9uYWxQcm9wIiwiYWRkaXRpb25hbFByb3AxIiwiYWRkaXRpb25hbFByb3BzIiwiYWRkaXRpb25hbFByb3BTYW1wbGUiLCJ0b0dlbmVyYXRlQ291bnQiLCJtaW5Qcm9wZXJ0aWVzIiwidGVtcCIsImV4Y2x1c2l2ZU1pbmltdW0iLCJleGNsdXNpdmVNYXhpbXVtIiwiaW5mZXJTY2hlbWEiLCJjcmVhdGVYTUxFeGFtcGxlIiwianNvbiIsIlhNTCIsInNhbXBsZUZyb21TY2hlbWEiLCJtZW1vaXplZENyZWF0ZVhNTEV4YW1wbGUiLCJtZW1vaXplZFNhbXBsZUZyb21TY2hlbWEiLCJzaG91bGRTdHJpbmdpZnlUeXBlc0NvbmZpZyIsIndoZW4iLCJzaG91bGRTdHJpbmdpZnlUeXBlcyIsImRlZmF1bHRTdHJpbmdpZnlUeXBlcyIsImNvbnRlbnRUeXBlIiwicmVzVHlwZSIsInR5cGVzVG9TdHJpbmdpZnkiLCJuZXh0Q29uZmlnIiwianNvbkV4YW1wbGUiLCJnZXRKc29uU2FtcGxlU2NoZW1hIiwieWFtbFN0cmluZyIsImxpbmVXaWR0aCIsImdldFhtbFNhbXBsZVNjaGVtYSIsImdldFlhbWxTYW1wbGVTY2hlbWEiLCJKU09OU2NoZW1hNVNhbXBsZXNQbHVnaW4iLCJtYWtlR2V0SnNvblNhbXBsZVNjaGVtYSIsIm1ha2VHZXRZYW1sU2FtcGxlU2NoZW1hIiwibWFrZUdldFhtbFNhbXBsZVNjaGVtYSIsIm1ha2VHZXRTYW1wbGVTY2hlbWEiLCJqc29uU2NoZW1hNSIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfbG9kYXNoX2NvbnN0YW50X2Y1YzA4NzlmX18iLCJPUEVSQVRJT05fTUVUSE9EUyIsInNwZWNTdHIiLCJzcGVjU291cmNlIiwic3BlY0pTIiwic3BlY1Jlc29sdmVkIiwibWVyZ2VyRm4iLCJvbGRWYWwiLCJuZXdWYWwiLCJtZXJnZVdpdGgiLCJzcGVjSnNvbldpdGhSZXNvbHZlZFN1YnRyZWVzIiwicmV0dXJuU2VsZk9yTmV3TWFwIiwiZXh0ZXJuYWxEb2NzIiwic2VtdmVyIiwiZXhlYyIsInBhdGhzIiwidmFsaWRPcGVyYXRpb25NZXRob2RzIiwiY29uc3RhbnQiLCJvcGVyYXRpb25zIiwicGF0aE5hbWUiLCJjb25zdW1lcyIsInByb2R1Y2VzIiwicmVzb2x2ZWRSZXMiLCJ1bnJlc29sdmVkUmVzIiwiYmFzZVBhdGgiLCJob3N0Iiwib3BlcmF0aW9uc1dpdGhSb290SW5oZXJpdGVkIiwib3BzIiwib3AiLCJ0YWdzIiwidGFnRGV0YWlscyIsIm9wZXJhdGlvbnNXaXRoVGFncyIsInRhZ2dlZE1hcCIsImFyIiwidGFnQSIsInRhZ0IiLCJzb3J0Rm4iLCJzb3J0IiwicmVzcG9uc2VzIiwicmVxdWVzdHMiLCJtdXRhdGVkUmVxdWVzdHMiLCJyZXNwb25zZUZvciIsInJlcXVlc3RGb3IiLCJtdXRhdGVkUmVxdWVzdEZvciIsImFsbG93VHJ5SXRPdXRGb3IiLCJwYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkiLCJwYXRoTWV0aG9kIiwib3BQYXJhbXMiLCJtZXRhUGFyYW1zIiwiY3VycmVudFBhcmFtIiwiaW5OYW1lS2V5ZWRNZXRhIiwiaGFzaEtleWVkTWV0YSIsImN1cnIiLCJwYXJhbWV0ZXJJbmNsdXNpb25TZXR0aW5nRm9yIiwicGFyYW1LZXkiLCJwYXJhbWV0ZXJXaXRoTWV0YSIsIm9wZXJhdGlvbldpdGhNZXRhIiwibWVyZ2VkUGFyYW1zIiwiZ2V0UGFyYW1ldGVyIiwiaW5UeXBlIiwiaGFzSG9zdCIsInBhcmFtZXRlclZhbHVlcyIsImlzWG1sIiwicGFyYW1ldGVyc0luY2x1ZGVJbiIsInBhcmFtZXRlcnMiLCJpblZhbHVlIiwicGFyYW1ldGVyc0luY2x1ZGVUeXBlIiwidHlwZVZhbHVlIiwiY29udGVudFR5cGVWYWx1ZXMiLCJwcm9kdWNlc1ZhbHVlIiwiY3VycmVudFByb2R1Y2VzRm9yIiwicmVxdWVzdENvbnRlbnRUeXBlIiwicmVzcG9uc2VDb250ZW50VHlwZSIsImN1cnJlbnRQcm9kdWNlc1ZhbHVlIiwiZmlyc3RQcm9kdWNlc0FycmF5SXRlbSIsInByb2R1Y2VzT3B0aW9uc0ZvciIsIm9wZXJhdGlvblByb2R1Y2VzIiwicGF0aEl0ZW1Qcm9kdWNlcyIsImdsb2JhbFByb2R1Y2VzIiwiY29uc3VtZXNPcHRpb25zRm9yIiwib3BlcmF0aW9uQ29uc3VtZXMiLCJwYXRoSXRlbUNvbnN1bWVzIiwiZ2xvYmFsQ29uc3VtZXMiLCJtYXRjaFJlc3VsdCIsInVybFNjaGVtZSIsImNhbkV4ZWN1dGVTY2hlbWUiLCJ2YWxpZGF0aW9uRXJyb3JzIiwiZ2V0RXJyb3JzV2l0aFBhdGhzIiwiZ2V0TmVzdGVkRXJyb3JzV2l0aFBhdGhzIiwiY3VyclBhdGgiLCJmb3JtYXRFcnJvciIsInZhbGlkYXRlQmVmb3JlRXhlY3V0ZSIsImdldE9BUzNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGUiLCJyZXF1aXJlZE9iaiIsInJlcXVlc3RCb2R5IiwiaXNNZWRpYVR5cGVTY2hlbWFQcm9wZXJ0aWVzRXF1YWwiLCJjdXJyZW50TWVkaWFUeXBlIiwidGFyZ2V0TWVkaWFUeXBlIiwicmVxdWVzdEJvZHlDb250ZW50IiwiY3VycmVudE1lZGlhVHlwZVNjaGVtYVByb3BlcnRpZXMiLCJ0YXJnZXRNZWRpYVR5cGVTY2hlbWFQcm9wZXJ0aWVzIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfaXNTdHJpbmdfZTZmYThhNWJfXyIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfbG9kYXNoX2RlYm91bmNlXzM1NDBiYWJlX18iLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX2xvZGFzaF9zZXRfYjRiMTVlZTVfXyIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfbG9kYXNoX2ZwX2Fzc29jUGF0aF9mOWQ2NGUzM19fIiwiVVBEQVRFX1NQRUMiLCJVUERBVEVfVVJMIiwiVVBEQVRFX0pTT04iLCJVUERBVEVfUEFSQU0iLCJVUERBVEVfRU1QVFlfUEFSQU1fSU5DTFVTSU9OIiwiVkFMSURBVEVfUEFSQU1TIiwiU0VUX1JFU1BPTlNFIiwiU0VUX1JFUVVFU1QiLCJTRVRfTVVUQVRFRF9SRVFVRVNUIiwiTE9HX1JFUVVFU1QiLCJDTEVBUl9SRVNQT05TRSIsIkNMRUFSX1JFUVVFU1QiLCJDTEVBUl9WQUxJREFURV9QQVJBTVMiLCJVUERBVEVfT1BFUkFUSU9OX01FVEFfVkFMVUUiLCJVUERBVEVfUkVTT0xWRUQiLCJVUERBVEVfUkVTT0xWRURfU1VCVFJFRSIsIlNFVF9TQ0hFTUUiLCJ0b1N0ciIsImlzU3RyaW5nIiwiY2xlYW5TcGVjIiwidXBkYXRlUmVzb2x2ZWQiLCJwYXJzZVRvSnNvbiIsInJlYXNvbiIsIm1hcmsiLCJoYXNXYXJuZWRBYm91dFJlc29sdmVTcGVjRGVwcmVjYXRpb24iLCJyZXNvbHZlU3BlYyIsIkFTVCIsIm1vZGVsUHJvcGVydHlNYWNybyIsInBhcmFtZXRlck1hY3JvIiwiZ2V0TGluZU51bWJlckZvclBhdGgiLCJiYXNlRG9jIiwiYmFzZVVSSSIsInByZXBhcmVkRXJyb3JzIiwicmVxdWVzdEJhdGNoIiwiZGViUmVzb2x2ZVN1YnRyZWVzIiwiZGVib3VuY2UiLCJzeXN0ZW1QYXJ0aXRpb25lZEJhdGNoZXMiLCJhc3luYyIsInN5c3RlbVJlcXVlc3RCYXRjaCIsInJlc29sdmVTdWJ0cmVlIiwiZXJyU2VsZWN0b3JzIiwiYmF0Y2hSZXN1bHQiLCJwcmV2IiwicmVzdWx0TWFwIiwic3BlY1dpdGhDdXJyZW50U3VidHJlZXMiLCJvaWRjU2NoZW1lIiwib3BlbklkQ29ubmVjdFVybCIsIm9wZW5JZENvbm5lY3REYXRhIiwiYXNzb2NQYXRoIiwiSW1tdXRhYmxlTWFwIiwidXBkYXRlUmVzb2x2ZWRTdWJ0cmVlIiwiYmF0Y2hlZFBhdGgiLCJiYXRjaGVkU3lzdGVtIiwiY2hhbmdlUGFyYW0iLCJjaGFuZ2VQYXJhbUJ5SWRlbnRpdHkiLCJpbnZhbGlkYXRlUmVzb2x2ZWRTdWJ0cmVlQ2FjaGUiLCJ2YWxpZGF0ZVBhcmFtcyIsInVwZGF0ZUVtcHR5UGFyYW1JbmNsdXNpb24iLCJpbmNsdWRlRW1wdHlWYWx1ZSIsImNsZWFyVmFsaWRhdGVQYXJhbXMiLCJjaGFuZ2VDb25zdW1lc1ZhbHVlIiwiY2hhbmdlUHJvZHVjZXNWYWx1ZSIsInNldFJlc3BvbnNlIiwic2V0UmVxdWVzdCIsInNldE11dGF0ZWRSZXF1ZXN0IiwibG9nUmVxdWVzdCIsImV4ZWN1dGVSZXF1ZXN0IiwicGFyYW1WYWx1ZSIsImNvbnRleHRVcmwiLCJvcElkIiwic2VydmVyIiwibmFtZXNwYWNlVmFyaWFibGVzIiwic2VydmVyVmFyaWFibGVzIiwiZ2xvYmFsVmFyaWFibGVzIiwicmVxdWVzdEJvZHlWYWx1ZSIsInJlcXVlc3RCb2R5SW5jbHVzaW9uU2V0dGluZyIsInBhcnNlZFJlcXVlc3QiLCJidWlsZFJlcXVlc3QiLCJtdXRhdGVkUmVxdWVzdCIsInBhcnNlZE11dGF0ZWRSZXF1ZXN0Iiwic3RhcnRUaW1lIiwibm93IiwiZHVyYXRpb24iLCJjbGVhclJlc3BvbnNlIiwiY2xlYXJSZXF1ZXN0IiwidmFsdWVLZXkiLCJ1cGRhdGVJbiIsInBhcmFtTWV0YSIsImlzRW1wdHlWYWx1ZUluY2x1ZGVkIiwidmFsaWRhdGVQYXJhbSIsInBhcmFtUmVxdWlyZWQiLCJwYXJhbURldGFpbHMiLCJzdGF0dXNDb2RlIiwibmV3U3RhdGUiLCJCbG9iIiwib3BlcmF0aW9uUGF0aCIsIm1ldGFQYXRoIiwiZGVsZXRlSW4iLCJwYXRoSXRlbXMiLCJTcGVjUGx1Z2luIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9zd2FnZ2VyX2NsaWVudF9lc19yZXNvbHZlcl9zdHJhdGVnaWVzX2dlbmVyaWNfMDhkZDUyMDBfXyIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfc3dhZ2dlcl9jbGllbnRfZXNfcmVzb2x2ZXJfc3RyYXRlZ2llc19vcGVuYXBpXzJfZmY2ZTc5Y2ZfXyIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfc3dhZ2dlcl9jbGllbnRfZXNfcmVzb2x2ZXJfc3RyYXRlZ2llc19vcGVuYXBpXzNfMF8yZmEwZmY3Y19fIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9zd2FnZ2VyX2NsaWVudF9lc19yZXNvbHZlcl9zdHJhdGVnaWVzX29wZW5hcGlfM18xX2FwaWRvbV81ZTYyOGQzOV9fIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9zd2FnZ2VyX2NsaWVudF9lc19yZXNvbHZlcl9mODc5YzYzOF9fIiwibWFrZVJlc29sdmUiLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3N3YWdnZXJfY2xpZW50X2VzX2V4ZWN1dGVfZDQ4NmQzZDZfXyIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfc3dhZ2dlcl9jbGllbnRfZXNfaHR0cF82OTY1NTU2MF9fIiwibWFrZUh0dHAiLCJzZXJpYWxpemVSZXMiLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3N3YWdnZXJfY2xpZW50X2VzX3N1YnRyZWVfcmVzb2x2ZXJfNzQxY2I5ZDlfXyIsIm1ha2VSZXNvbHZlU3VidHJlZSIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfc3dhZ2dlcl9jbGllbnRfZXNfaGVscGVyc180ZDdiZWE0N19fIiwid2l0aENyZWRlbnRpYWxzIiwiSHR0cCIsInByZUZldGNoIiwicG9zdEZldGNoIiwic3RyYXRlZ2llcyIsIm9wZW5BcGkzMUFwaURPTVJlc29sdmVTdHJhdGVneSIsIm9wZW5BcGkzMFJlc29sdmVTdHJhdGVneSIsIm9wZW5BcGkyUmVzb2x2ZVN0cmF0ZWd5IiwiZ2VuZXJpY1Jlc29sdmVTdHJhdGVneSIsImZyZXNoQ29uZmlncyIsImRlZmF1bHRPcHRpb25zIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9kb21fN2RhYzllZWVfXyIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3RfcmVkdXhfODdiZTAzYjBfXyIsIlByb3ZpZGVyIiwiY29ubmVjdCIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfbG9kYXNoX2lkZW50aXR5Xzc1ZmZlNGE3X18iLCJ3aXRoU3lzdGVtIiwiV3JhcHBlZENvbXBvbmVudCIsIldpdGhTeXN0ZW0iLCJnZXREaXNwbGF5TmFtZSIsIndpdGhSb290IiwicmVkdXhTdG9yZSIsIldpdGhSb290Iiwid2l0aENvbm5lY3QiLCJpZGVudGl0eSIsImN1c3RvbU1hcFN0YXRlVG9Qcm9wcyIsImhhbmRsZVByb3BzIiwib2xkUHJvcHMiLCJ3aXRoTWFwcGVkQ29udGFpbmVyIiwibWVtR2V0Q29tcG9uZW50IiwiY29tcG9uZW50TmFtZSIsIldpdGhNYXBwZWRDb250YWluZXIiLCJjbGVhblByb3BzIiwiZG9tTm9kZSIsIkFwcCIsImNyZWF0ZVJvb3QiLCJSZWFjdERPTSIsInZpZXdQbHVnaW4iLCJtZW1vaXplRm9yR2V0Q29tcG9uZW50IiwibWVtTWFrZU1hcHBlZENvbnRhaW5lciIsIm1lbW9pemVGb3JXaXRoTWFwcGVkQ29udGFpbmVyIiwibWFrZU1hcHBlZENvbnRhaW5lciIsIlZpZXdMZWdhY3lQbHVnaW4iLCJyZWFjdE1ham9yVmVyc2lvbiIsImRvd25sb2FkVXJsUGx1Z2luIiwiZG93bmxvYWQiLCJjaGVja1Bvc3NpYmxlRmFpbFJlYXNvbnMiLCJsb2FkU3BlYyIsImNyZWRlbnRpYWxzIiwiQWNjZXB0IiwiZW51bXMiLCJsb2FkaW5nU3RhdHVzIiwic3BlY191cGRhdGVfbG9hZGluZ19zdGF0dXMiLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X3N5bnRheF9oaWdobGlnaHRlcl9kaXN0X2VzbV9saWdodF83NDZlMTk1OF9fIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9zeW50YXhfaGlnaGxpZ2h0ZXJfZGlzdF9lc21fbGFuZ3VhZ2VzX2hsanNfamF2YXNjcmlwdF9lMjI5MTFmN19fIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9zeW50YXhfaGlnaGxpZ2h0ZXJfZGlzdF9lc21fbGFuZ3VhZ2VzX2hsanNfanNvbl9iODc2YWZjNV9fIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9zeW50YXhfaGlnaGxpZ2h0ZXJfZGlzdF9lc21fbGFuZ3VhZ2VzX2hsanNfeG1sX2E4MWM4MDdiX18iLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X3N5bnRheF9oaWdobGlnaHRlcl9kaXN0X2VzbV9sYW5ndWFnZXNfaGxqc19iYXNoXzE2MjFjNjIxX18iLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X3N5bnRheF9oaWdobGlnaHRlcl9kaXN0X2VzbV9sYW5ndWFnZXNfaGxqc195YW1sXzAyODM4ZjM0X18iLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X3N5bnRheF9oaWdobGlnaHRlcl9kaXN0X2VzbV9sYW5ndWFnZXNfaGxqc19odHRwXzRlOTI0YjIzX18iLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X3N5bnRheF9oaWdobGlnaHRlcl9kaXN0X2VzbV9sYW5ndWFnZXNfaGxqc19wb3dlcnNoZWxsX2Q1MWViNGY2X18iLCJodHRwIiwiYmFzaCIsInBvd2Vyc2hlbGwiLCJqYXZhc2NyaXB0IiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9zeW50YXhfaGlnaGxpZ2h0ZXJfZGlzdF9lc21fc3R5bGVzX2hsanNfYWdhdGVfOTlhNDZhYTJfXyIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3Rfc3ludGF4X2hpZ2hsaWdodGVyX2Rpc3RfZXNtX3N0eWxlc19obGpzX2FydGFfNTcwNjkxZmNfXyIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3Rfc3ludGF4X2hpZ2hsaWdodGVyX2Rpc3RfZXNtX3N0eWxlc19obGpzX21vbm9rYWlfMjUyOWJhZmJfXyIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3Rfc3ludGF4X2hpZ2hsaWdodGVyX2Rpc3RfZXNtX3N0eWxlc19obGpzX25vcmRfNWJmYTEwOTlfXyIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3Rfc3ludGF4X2hpZ2hsaWdodGVyX2Rpc3RfZXNtX3N0eWxlc19obGpzX29ic2lkaWFuX2EyNzhkZDUyX18iLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X3N5bnRheF9oaWdobGlnaHRlcl9kaXN0X2VzbV9zdHlsZXNfaGxqc190b21vcnJvd19uaWdodF82Mzc2NWRmOV9fIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9zeW50YXhfaGlnaGxpZ2h0ZXJfZGlzdF9lc21fc3R5bGVzX2hsanNfaWRlYV8wMjNhYmEyZV9fIiwic3R5bGVzIiwiYWdhdGUiLCJhcnRhIiwibW9ub2thaSIsIm5vcmQiLCJvYnNpZGlhbiIsInRvbW9ycm93TmlnaHQiLCJpZGVhIiwiZGVmYXVsdFN0eWxlIiwic3ludGF4SGlnaGxpZ2h0aW5nIiwidGhlbWUiLCJzeW50YXhIaWdobGlnaHQiLCJSZWFjdFN5bnRheEhpZ2hsaWdodGVyIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9qc19maWxlX2Rvd25sb2FkX2JkMjNkYmI2X18iLCJmaWxlTmFtZSIsImRvd25sb2FkYWJsZSIsImNhbkNvcHkiLCJoYW5kbGVEb3dubG9hZCIsInNhdmVBcyIsIlN5bnRheEhpZ2hsaWdodGVyV3JhcHBlciIsIk9yaWdpbmFsIiwiY2FuU3ludGF4SGlnaGxpZ2h0IiwiYWN0aXZhdGVkIiwiU3ludGF4SGlnaGxpZ2h0aW5nUGx1Z2luMSIsIlN5bnRheEhpZ2hsaWdodGluZ1BsdWdpbjIiLCJTeW50YXhIaWdobGlnaHRpbmdQbHVnaW4iLCJHSVRfRElSVFkiLCJHSVRfQ09NTUlUIiwiUEFDS0FHRV9WRVJTSU9OIiwiQlVJTERfVElNRSIsImJ1aWxkSW5mbyIsInN3YWdnZXJVSSIsImdpdFJldmlzaW9uIiwiZ2l0RGlydHkiLCJidWlsZFRpbWVzdGFtcCIsIlZlcnNpb25zUGx1Z2luIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfemlwT2JqZWN0X2M3NGYxYzE0X18iLCJjb21wb25lbnREaWRDYXRjaCIsIndpdGhFcnJvckJvdW5kYXJ5IiwiRXJyb3JCb3VuZGFyeSIsInRhcmdldE5hbWUiLCJXaXRoRXJyb3JCb3VuZGFyeSIsImlzQ2xhc3NDb21wb25lbnQiLCJpc1JlYWN0Q29tcG9uZW50IiwiRmFsbGJhY2siLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJoYXNFcnJvciIsImVycm9ySW5mbyIsIkZhbGxiYWNrQ29tcG9uZW50Iiwic2FmZVJlbmRlclBsdWdpbiIsImNvbXBvbmVudExpc3QiLCJmdWxsT3ZlcnJpZGUiLCJtZXJnZWRDb21wb25lbnRMaXN0IiwiemlwT2JqZWN0Iiwid3JhcEZhY3RvcnkiLCJnZXRMYXlvdXQiLCJsYXlvdXROYW1lIiwiTGF5b3V0IiwiQXV0aG9yaXphdGlvblBvcHVwIiwiQXV0aHMiLCJBdXRob3JpemVCdG4iLCJzaG93UG9wdXAiLCJBdXRob3JpemVCdG5Db250YWluZXIiLCJhdXRob3JpemFibGVEZWZpbml0aW9ucyIsIkF1dGhvcml6ZU9wZXJhdGlvbkJ0biIsInN0b3BQcm9wYWdhdGlvbiIsIm9uQXV0aENoYW5nZSIsInN1Ym1pdEF1dGgiLCJsb2dvdXRDbGljayIsImF1dGhzIiwiQXV0aEl0ZW0iLCJPYXV0aDIiLCJhdXRob3JpemVkQXV0aCIsIm5vbk9hdXRoRGVmaW5pdGlvbnMiLCJvYXV0aERlZmluaXRpb25zIiwib25TdWJtaXQiLCJBcGlLZXlBdXRoIiwiQmFzaWNBdXRoIiwiYXV0aEVsIiwiQXV0aEVycm9yIiwiZ2V0VmFsdWUiLCJSb3ciLCJDb2wiLCJhdXRvRm9jdXMiLCJhdXRvQ29tcGxldGUiLCJFeGFtcGxlIiwic2hvd1ZhbHVlIiwiRXhhbXBsZXNTZWxlY3QiLCJleGFtcGxlcyIsIm9uU2VsZWN0IiwiY3VycmVudEV4YW1wbGVLZXkiLCJzaG93TGFiZWxzIiwiX29uU2VsZWN0IiwiaXNTeW50aGV0aWNDaGFuZ2UiLCJfb25Eb21TZWxlY3QiLCJzZWxlY3RlZE9wdGlvbnMiLCJnZXRDdXJyZW50RXhhbXBsZSIsImN1cnJlbnRFeGFtcGxlUGVyUHJvcHMiLCJmaXJzdEV4YW1wbGVzS2V5IiwiZmlyc3RFeGFtcGxlIiwiZmlyc3RFeGFtcGxlS2V5Iiwia2V5T2YiLCJpc1ZhbHVlTW9kaWZpZWQiLCJpc01vZGlmaWVkVmFsdWVBdmFpbGFibGUiLCJleGFtcGxlTmFtZSIsInN0cmluZ2lmeVVubGVzc0xpc3QiLCJFeGFtcGxlc1NlbGVjdFZhbHVlUmV0YWluZXIiLCJ1c2VySGFzRWRpdGVkQm9keSIsImN1cnJlbnROYW1lc3BhY2UiLCJzZXRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlRmxhZyIsInVwZGF0ZVZhbHVlIiwidmFsdWVGcm9tRXhhbXBsZSIsIl9nZXRDdXJyZW50RXhhbXBsZVZhbHVlIiwibGFzdFVzZXJFZGl0ZWRWYWx1ZSIsImN1cnJlbnRVc2VySW5wdXRWYWx1ZSIsImxhc3REb3duc3RyZWFtVmFsdWUiLCJpc01vZGlmaWVkVmFsdWVTZWxlY3RlZCIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiX2dldFN0YXRlRm9yQ3VycmVudE5hbWVzcGFjZSIsIl9zZXRTdGF0ZUZvckN1cnJlbnROYW1lc3BhY2UiLCJfc2V0U3RhdGVGb3JOYW1lc3BhY2UiLCJuZXdTdGF0ZUZvck5hbWVzcGFjZSIsIl9pc0N1cnJlbnRVc2VySW5wdXRTYW1lQXNFeGFtcGxlVmFsdWUiLCJfZ2V0VmFsdWVGb3JFeGFtcGxlIiwiZXhhbXBsZUtleSIsImN1cnJlbnRLZXkiLCJfb25FeGFtcGxlc1NlbGVjdCIsIm90aGVyQXJncyIsInZhbHVlRnJvbUN1cnJlbnRFeGFtcGxlIiwiZXhhbXBsZXNNYXRjaGluZ05ld1ZhbHVlIiwiYXV0aENvbmZpZ3MiLCJjdXJyZW50U2VydmVyIiwib2F1dGgyUmVkaXJlY3RVcmwiLCJzY29wZXNBcnJheSIsInNjb3BlU2VwYXJhdG9yIiwicmVhbG0iLCJ1c2VQa2NlV2l0aEF1dGhvcml6YXRpb25Db2RlR3JhbnQiLCJnZW5lcmF0ZUNvZGVWZXJpZmllciIsImNvZGVDaGFsbGVuZ2UiLCJjcmVhdGVDb2RlQ2hhbGxlbmdlIiwic2hhSnMiLCJhdXRob3JpemF0aW9uVXJsIiwic2FuaXRpemVkQXV0aG9yaXphdGlvblVybCIsInVzZUJhc2ljQXV0aGVudGljYXRpb25XaXRoQWNjZXNzQ29kZUdyYW50IiwiZXJyQ2IiLCJhcHBOYW1lIiwib2F1dGgyQXV0aG9yaXplIiwib25TY29wZUNoYW5nZSIsIm5ld1Njb3BlcyIsIm9uSW5wdXRDaGFuZ2UiLCJzZWxlY3RTY29wZXMiLCJJbml0aWFsaXplZElucHV0Iiwib2lkY1VybCIsIkFVVEhfRkxPV19JTVBMSUNJVCIsIkFVVEhfRkxPV19QQVNTV09SRCIsIkFVVEhfRkxPV19BQ0NFU1NfQ09ERSIsIkFVVEhfRkxPV19BUFBMSUNBVElPTiIsImlzUGtjZUNvZGVHcmFudCIsImZsb3dUb0Rpc3BsYXkiLCJ0YWJsZXQiLCJkZXNrdG9wIiwiaW5pdGlhbFZhbHVlIiwiQ2xlYXIiLCJIZWFkZXJzIiwiRHVyYXRpb24iLCJMaXZlUmVzcG9uc2UiLCJzaG91bGRDb21wb25lbnRVcGRhdGUiLCJkaXNwbGF5UmVxdWVzdER1cmF0aW9uIiwic2hvd011dGF0ZWRSZXF1ZXN0IiwicmVxdWVzdFNuaXBwZXRzRW5hYmxlZCIsImN1cmxSZXF1ZXN0Iiwibm90RG9jdW1lbnRlZCIsImlzRXJyb3IiLCJoZWFkZXJzS2V5cyIsIlJlc3BvbnNlQm9keSIsInJldHVybk9iamVjdCIsImpvaW5lZEhlYWRlcnMiLCJoYXNIZWFkZXJzIiwiQ3VybCIsIk9ubGluZVZhbGlkYXRvckJhZGdlIiwidmFsaWRhdG9yVXJsIiwiZ2V0RGVmaW5pdGlvblVybCIsInNhbml0aXplZFZhbGlkYXRvclVybCIsInJlbCIsIlZhbGlkYXRvckltYWdlIiwiYWx0IiwiaW1nIiwiSW1hZ2UiLCJvbmxvYWQiLCJPcGVyYXRpb25zIiwicmVuZGVyT3BlcmF0aW9uVGFnIiwiT3BlcmF0aW9uQ29udGFpbmVyIiwiRGVlcExpbmsiLCJ0YWdFeHRlcm5hbERvY3NVcmwiLCJ0YWdEZXNjcmlwdGlvbiIsInRhZ0V4dGVybmFsRG9jc0Rlc2NyaXB0aW9uIiwicmF3VGFnRXh0ZXJuYWxEb2NzVXJsIiwic2hvd1RhZyIsImVuYWJsZWQiLCJPcGVyYXRpb24iLCJzdW1tYXJ5IiwidG9nZ2xlU2hvd24iLCJvblRyeW91dENsaWNrIiwib25SZXNldENsaWNrIiwib25DYW5jZWxDbGljayIsIm9uRXhlY3V0ZSIsIm9hczNBY3Rpb25zIiwib3BlcmF0aW9uUHJvcHMiLCJhbGxvd1RyeUl0T3V0IiwidHJ5SXRPdXRFbmFibGVkIiwiZXhlY3V0ZUluUHJvZ3Jlc3MiLCJnZXRMaXN0IiwiUmVzcG9uc2VzIiwiUGFyYW1ldGVycyIsIkV4ZWN1dGUiLCJPcGVyYXRpb25TZXJ2ZXJzIiwiT3BlcmF0aW9uRXh0IiwiT3BlcmF0aW9uU3VtbWFyeSIsIm9uQ2hhbmdlS2V5Iiwib3BlcmF0aW9uU2VydmVycyIsInBhdGhTZXJ2ZXJzIiwiZ2V0U2VsZWN0ZWRTZXJ2ZXIiLCJzZXRTZWxlY3RlZFNlcnZlciIsInNldFNlcnZlclZhcmlhYmxlVmFsdWUiLCJnZXRTZXJ2ZXJWYXJpYWJsZSIsInNlcnZlclZhcmlhYmxlVmFsdWUiLCJnZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZSIsInRyeUl0T3V0UmVzcG9uc2UiLCJkaXNwbGF5T3BlcmF0aW9uSWQiLCJuZXh0U3RhdGUiLCJzdXBwb3J0ZWRTdWJtaXRNZXRob2RzIiwiaXNEZWVwTGlua2luZ0VuYWJsZWQiLCJqdW1wVG9LZXkiLCJyZXNvbHZlZFN1YnRyZWUiLCJnZXRSZXNvbHZlZFN1YnRyZWUiLCJkZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZSIsInNlbGVjdERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlIiwic2V0UmVxdWVzdEJvZHlWYWx1ZSIsInVucmVzb2x2ZWRPcCIsIm9yaWdpbmFsT3BlcmF0aW9uSWQiLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX2xvZGFzaF90b1N0cmluZ19kYTkzMWYwNV9fIiwicmVzb2x2ZWRTdW1tYXJ5IiwiT3BlcmF0aW9uU3VtbWFyeU1ldGhvZCIsIk9wZXJhdGlvblN1bW1hcnlQYXRoIiwiQ29weVRvQ2xpcGJvYXJkQnRuIiwiaGFzU2VjdXJpdHkiLCJzZWN1cml0eUlzT3B0aW9uYWwiLCJhbGxvd0Fub255bW91cyIsInRleHRUb0NvcHkiLCJhcHBsaWNhYmxlRGVmaW5pdGlvbnMiLCJwYXRoUGFydHMiLCJPcGVyYXRpb25FeHRSb3ciLCJ4S2V5IiwieFZhbCIsInhOb3JtYWxpemVkVmFsdWUiLCJjcmVhdGVIdG1sUmVhZHlJZCIsInJlcGxhY2VtZW50Iiwib25DaGFuZ2VQcm9kdWNlc1dyYXBwZXIiLCJvblJlc3BvbnNlQ29udGVudFR5cGVDaGFuZ2UiLCJjb250cm9sc0FjY2VwdEhlYWRlciIsInNldFJlc3BvbnNlQ29udGVudFR5cGUiLCJkZWZhdWx0Q29kZSIsImRlZmF1bHRTdGF0dXNDb2RlIiwiQ29udGVudFR5cGUiLCJSZXNwb25zZSIsImFjY2VwdENvbnRyb2xsaW5nUmVzcG9uc2UiLCJnZXRBY2NlcHRDb250cm9sbGluZ1Jlc3BvbnNlIiwiaXNPcmRlcmVkTWFwIiwic3VpdGFibGUyeHhSZXNwb25zZSIsImRlZmF1bHRSZXNwb25zZSIsInN1aXRhYmxlRGVmYXVsdFJlc3BvbnNlIiwicmVnaW9uSWQiLCJjb250cm9sSWQiLCJhcmlhQ29udHJvbHMiLCJhcmlhTGFiZWwiLCJjb250ZW50VHlwZXMiLCJpc0RlZmF1bHQiLCJvbkNvbnRlbnRUeXBlQ2hhbmdlIiwiYWN0aXZlRXhhbXBsZXNLZXkiLCJhY3RpdmVFeGFtcGxlc01lbWJlciIsImdldEtub3duU3ludGF4SGlnaGxpZ2h0ZXJMYW5ndWFnZSIsImNhbkpzb25QYXJzZSIsIl9vbkNvbnRlbnRUeXBlQ2hhbmdlIiwiZ2V0VGFyZ2V0RXhhbXBsZXNLZXkiLCJhY3RpdmVDb250ZW50VHlwZSIsImxpbmtzIiwiUmVzcG9uc2VFeHRlbnNpb24iLCJPcGVyYXRpb25MaW5rIiwic3BlY1BhdGhXaXRoUG9zc2libGVTY2hlbWEiLCJhY3RpdmVNZWRpYVR5cGUiLCJleGFtcGxlc0Zvck1lZGlhVHlwZSIsIm9hczNTY2hlbWFGb3JDb250ZW50VHlwZSIsIm1lZGlhVHlwZUV4YW1wbGUiLCJzYW1wbGVTY2hlbWEiLCJzaG91bGRPdmVycmlkZVNjaGVtYUV4YW1wbGUiLCJzYW1wbGVHZW5Db25maWciLCJ0YXJnZXRFeGFtcGxlc0tleSIsImdldE1lZGlhVHlwZUV4YW1wbGUiLCJ0YXJnZXRFeGFtcGxlIiwib2xkT0FTTWVkaWFUeXBlRXhhbXBsZSIsImdldEV4YW1wbGVDb21wb25lbnQiLCJzYW1wbGVSZXNwb25zZSIsInNldEFjdGl2ZUV4YW1wbGVzTWVtYmVyIiwiY29udGV4dFR5cGUiLCJjb250ZXh0TmFtZSIsIm9taXRWYWx1ZSIsInRvU2VxIiwibGluayIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfeG1sX2J1dF9wcmV0dGllcl8yZWQ0ZDVjYl9fIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfdG9Mb3dlcl9jMjllZTJiMF9fIiwicGFyc2VkQ29udGVudCIsInVwZGF0ZVBhcnNlZENvbnRlbnQiLCJwcmV2Q29udGVudCIsInJlYWRlciIsIkZpbGVSZWFkZXIiLCJyZWFkQXNUZXh0IiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwiZG93bmxvYWROYW1lIiwiYm9keUVsIiwiYmxvYiIsImNyZWF0ZU9iamVjdFVSTCIsImRpc3Bvc2l0aW9uIiwicmVzcG9uc2VGaWxlbmFtZSIsImV4dHJhY3RGaWxlTmFtZUZyb21Db250ZW50RGlzcG9zaXRpb25IZWFkZXIiLCJyZWdleCIsIm5hdmlnYXRvciIsIm1zU2F2ZU9yT3BlbkJsb2IiLCJmb3JtYXRYbWwiLCJ0ZXh0Tm9kZXNPblNhbWVMaW5lIiwiaW5kZW50b3IiLCJ0b0xvd2VyIiwiY29udHJvbHMiLCJjYWxsYmFja1Zpc2libGUiLCJwYXJhbWV0ZXJzVmlzaWJsZSIsIm9uQ2hhbmdlQ29uc3VtZXNXcmFwcGVyIiwidG9nZ2xlVGFiIiwib25DaGFuZ2VNZWRpYVR5cGUiLCJoYXNVc2VyRWRpdGVkQm9keSIsInNob3VsZFJldGFpblJlcXVlc3RCb2R5VmFsdWUiLCJzZXRSZXF1ZXN0Q29udGVudFR5cGUiLCJpbml0UmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yIiwiUGFyYW1ldGVyUm93IiwiVHJ5SXRPdXRCdXR0b24iLCJDYWxsYmFja3MiLCJSZXF1ZXN0Qm9keSIsImdyb3VwZWRQYXJhbWV0ZXJzQXJyIiwicmF3UGFyYW0iLCJvbkNoYW5nZUNvbnN1bWVzIiwiY2FsbGJhY2tzIiwicmVxdWVzdEJvZHlFcnJvcnMiLCJ1cGRhdGVBY3RpdmVFeGFtcGxlc0tleSIsImxhc3RWYWx1ZSIsInVzYWJsZVZhbHVlIiwib25DaGFuZ2VJbmNsdWRlRW1wdHkiLCJzZXRSZXF1ZXN0Qm9keUluY2x1c2lvbiIsIlBhcmFtZXRlckV4dCIsIlBhcmFtZXRlckluY2x1ZGVFbXB0eURlZmF1bHRQcm9wcyIsImlzSW5jbHVkZWRPcHRpb25zIiwiUGFyYW1ldGVySW5jbHVkZUVtcHR5Iiwic2hvdWxkRGlzcGF0Y2hJbml0IiwiZGVmYXVsdFZhbHVlIiwib25DaGVja2JveENoYW5nZSIsImlzSW5jbHVkZWQiLCJzZXREZWZhdWx0VmFsdWUiLCJvbkNoYW5nZVdyYXBwZXIiLCJudW1iZXJUb1N0cmluZyIsInZhbHVlRm9yVXBzdHJlYW0iLCJfb25FeGFtcGxlU2VsZWN0IiwiZ2V0UGFyYW1LZXkiLCJwYXJhbVdpdGhNZXRhIiwicGFyYW1ldGVyTWVkaWFUeXBlIiwiZ2VuZXJhdGVkU2FtcGxlVmFsdWUiLCJpc1N3YWdnZXIyIiwiY29tcG9zZUpzb25TY2hlbWEiLCJzY2hlbWFPYmplY3RUeXBlIiwic2hvd0NvbW1vbkV4dGVuc2lvbnMiLCJQYXJhbUJvZHkiLCJib2R5UGFyYW0iLCJjb25zdW1lc1ZhbHVlIiwiaXNGb3JtRGF0YSIsImlzRm9ybURhdGFTdXBwb3J0ZWQiLCJzY2hlbWFPYmplY3RUeXBlTGFiZWwiLCJpc0FycmF5T2ZPYmplY3RzIiwicGFyYW1JdGVtcyIsInBhcmFtRW51bSIsInBhcmFtRGVmYXVsdFZhbHVlIiwicGFyYW1FeGFtcGxlIiwiY29tbW9uRXh0IiwiaXNEaXNwbGF5UGFyYW1FbnVtIiwianNvblNjaGVtYUZvcm0iLCJkZWZhdWx0VG9GaXJzdEV4YW1wbGUiLCJoYW5kbGVWYWxpZGF0ZVBhcmFtZXRlcnMiLCJoYW5kbGVWYWxpZGF0ZVJlcXVlc3RCb2R5IiwibWlzc2luZ0JvZHlWYWx1ZSIsIm1pc3NpbmdSZXF1aXJlZEtleXMiLCJjbGVhclJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvciIsIm9hczNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGUiLCJvYXMzUmVxdWVzdEJvZHlWYWx1ZSIsIm9hczNWYWxpZGF0ZUJlZm9yZUV4ZWN1dGVTdWNjZXNzIiwib2FzM1JlcXVlc3RDb250ZW50VHlwZSIsInNldFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvciIsInZhbGlkYXRlU2hhbGxvd1JlcXVpcmVkIiwibWlzc2luZ0tleSIsImhhbmRsZVZhbGlkYXRpb25SZXN1bHRQYXNzIiwiaGFuZGxlVmFsaWRhdGlvblJlc3VsdEZhaWwiLCJoYW5kbGVWYWxpZGF0aW9uUmVzdWx0IiwiaXNQYXNzIiwicGFyYW1zUmVzdWx0IiwicmVxdWVzdEJvZHlSZXN1bHQiLCJzY2hlbWFFeGFtcGxlIiwiRXJyb3JzIiwiZWRpdG9yQWN0aW9ucyIsImp1bXBUb0xpbmUiLCJhbGxFcnJvcnNUb0Rpc3BsYXkiLCJpc1Zpc2libGUiLCJzb3J0ZWRKU0Vycm9ycyIsInRvZ2dsZVZpc2liaWxpdHkiLCJhbmltYXRlZCIsIlRocm93bkVycm9ySXRlbSIsIlNwZWNFcnJvckl0ZW0iLCJlcnJvckxpbmUiLCJ0b1RpdGxlQ2FzZSIsImxvY2F0aW9uTWVzc2FnZSIsInhjbGFzcyIsIkNvbnRhaW5lciIsImZ1bGxzY3JlZW4iLCJmdWxsIiwiY29udGFpbmVyQ2xhc3MiLCJERVZJQ0VTIiwiaGlkZSIsImtlZXBDb250ZW50cyIsIm1vYmlsZSIsImxhcmdlIiwiY2xhc3Nlc0FyIiwiZGV2aWNlIiwiZGV2aWNlQ2xhc3MiLCJvcHRpb24iLCJzZWxlY3RlZCIsIk5vTWFyZ2luIiwicmVuZGVyTm90QW5pbWF0ZWQiLCJPdmVydmlldyIsInNldFRhZ1Nob3duIiwiX3NldFRhZ1Nob3duIiwic2hvd1RhZ0lkIiwic2hvd09wIiwidG9nZ2xlU2hvdyIsInNob3dPcElkUHJlZml4Iiwic2hvd09wSWQiLCJfb25DbGljayIsImlucHV0UmVmIiwiSW5mb0Jhc2VQYXRoIiwiSW5mb1VybCIsIkluZm8iLCJ0ZXJtc09mU2VydmljZVVybCIsImNvbnRhY3REYXRhIiwibGljZW5zZURhdGEiLCJWZXJzaW9uU3RhbXAiLCJPcGVuQVBJVmVyc2lvbiIsIkxpY2Vuc2UiLCJDb250YWN0Iiwib2FzVmVyc2lvbiIsImxpY2Vuc2UiLCJJbmZvQ29udGFpbmVyIiwiZW1haWwiLCJGb290ZXIiLCJGaWx0ZXJDb250YWluZXIiLCJvbkZpbHRlckNoYW5nZSIsImlzTG9hZGluZyIsImlzRmFpbGVkIiwiTk9PUCIsImlzRWRpdEJveCIsInVwZGF0ZVZhbHVlcyIsImlzSnNvbiIsIl9vbkNoYW5nZSIsInRvZ2dsZUlzRWRpdEJveCIsImRlZmF1bHRQcm9wIiwiY3VybCIsInNob3dSZXNldCIsIlZlcnNpb25QcmFnbWFGaWx0ZXIiLCJhbHNvU2hvdyIsImJ5cGFzcyIsIlN2Z0Fzc2V0cyIsInhtbG5zWGxpbmsiLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlbWFya2FibGVfXyIsIlJlbWFya2FibGUiLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlbWFya2FibGVfbGlua2lmeV8zNDgyOWJhNl9fIiwibGlua2lmeSIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfZG9tcHVyaWZ5X18iLCJEb21QdXJpZnkiLCJzZXRBdHRyaWJ1dGUiLCJ1c2VVbnNhZmVNYXJrZG93biIsIm1kIiwiaHRtbCIsInR5cG9ncmFwaGVyIiwiYnJlYWtzIiwibGlua1RhcmdldCIsInVzZSIsImNvcmUiLCJydWxlciIsImRpc2FibGUiLCJzYW5pdGl6ZWQiLCJzYW5pdGl6ZXIiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsIkFMTE9XX0RBVEFfQVRUUiIsIkZPUkJJRF9BVFRSIiwiaGFzV2FybmVkQWJvdXREZXByZWNhdGlvbiIsIkFERF9BVFRSIiwiRk9SQklEX1RBR1MiLCJCYXNlTGF5b3V0IiwiV2ViaG9va3MiLCJTZXJ2ZXJzQ29udGFpbmVyIiwiaXNPQVMzMSIsImlzU3BlY0VtcHR5IiwibG9hZGluZ01lc3NhZ2UiLCJsYXN0RXJyIiwibGFzdEVyck1zZyIsInNlcnZlcnMiLCJoYXNTZXJ2ZXJzIiwiaGFzU2NoZW1lcyIsImhhc1NlY3VyaXR5RGVmaW5pdGlvbnMiLCJDb3JlQ29tcG9uZW50c1BsdWdpbiIsImF1dGhvcml6YXRpb25Qb3B1cCIsImF1dGhvcml6ZUJ0biIsImF1dGhvcml6ZU9wZXJhdGlvbkJ0biIsImF1dGhFcnJvciIsIm9hdXRoMiIsImFwaUtleUF1dGgiLCJiYXNpY0F1dGgiLCJsaXZlUmVzcG9uc2UiLCJvbmxpbmVWYWxpZGF0b3JCYWRnZSIsInJlc3BvbnNlQm9keSIsInBhcmFtZXRlclJvdyIsIm92ZXJ2aWV3IiwiZm9vdGVyIiwiRm9ybUNvbXBvbmVudHNQbHVnaW4iLCJMYXlvdXRVdGlscyIsIkJhc2VQcmVzZXQiLCJDb25maWdzUGx1Z2luIiwiVXRpbFBsdWdpbiIsIkxvZ3NQbHVnaW4iLCJWaWV3UGx1Z2luIiwiRXJyUGx1Z2luIiwiTGF5b3V0UGx1Z2luIiwiU3dhZ2dlckNsaWVudFBsdWdpbiIsIkF1dGhQbHVnaW4iLCJEb3dubG9hZFVybFBsdWdpbiIsIkRlZXBMaW5raW5nUGx1Z2luIiwiRmlsdGVyUGx1Z2luIiwiT25Db21wbGV0ZVBsdWdpbiIsIlJlcXVlc3RTbmlwcGV0c1BsdWdpbiIsIlNhZmVSZW5kZXJQbHVnaW4iLCJvbmx5T0FTMyIsIk9BUzNOdWxsU2VsZWN0b3IiLCJzY2hlbWFOYW1lIiwiZmluZFNjaGVtYSIsInNjaGVtYXMiLCJoYXNJbiIsInJlc29sdmVkU2NoZW1lcyIsImRlZk5hbWUiLCJmbG93S2V5IiwiZmxvd1ZhbCIsInRyYW5zbGF0ZWREZWYiLCJ0b2tlblVybCIsIm9pZGNEYXRhIiwiZ3JhbnQiLCJ0cmFuc2xhdGVkU2NvcGVzIiwiY3VyIiwiT0FTM0NvbXBvbmVudFdyYXBGYWN0b3J5Iiwic3dhZ2dlclZlcnNpb24iLCJpc1N3YWdnZXIySGVscGVyIiwiaXNPQVMzMCIsImlzT0FTMzBIZWxwZXIiLCJzZWxlY3RlZFZhbHVlIiwicmVzb2x2ZWRTY2hlbWEiLCJ1bnJlc29sdmVkU2NoZW1hIiwiY2FsbGJhY2tzT3BlcmF0aW9ucyIsImFsbE9wZXJhdGlvbnMiLCJjYWxsYmFja05hbWUiLCJjYWxsYmFja09wZXJhdGlvbnMiLCJjYWxsYmFja09wcyIsInBhdGhJdGVtIiwiZXhwcmVzc2lvbiIsInBhdGhJdGVtT3BlcmF0aW9ucyIsImdyb3VwQnkiLCJvcGVyYXRpb25EVE8iLCJvcGVyYXRpb25EVE9zIiwiY2FsbGJhY2tOYW1lcyIsImdldERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlIiwibWVkaWFUeXBlIiwibWVkaWFUeXBlVmFsdWUiLCJoYXNFeGFtcGxlc0tleSIsImV4YW1wbGVTY2hlbWEiLCJoYW5kbGVGaWxlIiwic2V0SXNJbmNsdWRlZE9wdGlvbnMiLCJSZXF1ZXN0Qm9keUVkaXRvciIsInJlcXVlc3RCb2R5RGVzY3JpcHRpb24iLCJzY2hlbWFGb3JNZWRpYVR5cGUiLCJyYXdFeGFtcGxlc09mTWVkaWFUeXBlIiwic2FtcGxlRm9yTWVkaWFUeXBlIiwiYm9keVByb3BlcnRpZXMiLCJvYmplY3RUeXBlTGFiZWwiLCJjdXJyZW50VmFsdWUiLCJjdXJyZW50RXJyb3JzIiwiaW5jbHVkZWQiLCJzYW1wbGVSZXF1ZXN0Qm9keSIsInRhcmdldE9wIiwicGFkU3RyaW5nIiwiU2VydmVycyIsImN1cnJlbnRTZXJ2ZXJWYXJpYWJsZURlZnMiLCJzaG91bGRTaG93VmFyaWFibGVVSSIsImN1cnJlbnRTZXJ2ZXJEZWZpbml0aW9uIiwiaGFuZGxlU2VydmVyQ2hhbmdlIiwiaGFuZGxlU2VydmVyVmFyaWFibGVDaGFuZ2UiLCJ2YXJpYWJsZU5hbWUiLCJuZXdWYXJpYWJsZVZhbHVlIiwiYXBwbHlEZWZhdWx0VmFsdWUiLCJvbkRvbUNoYW5nZSIsImlzSW52YWxpZCIsIkh0dHBBdXRoIiwiZm9yY2VVcGRhdGUiLCJzZXJ2ZXJzVG9EaXNwbGF5IiwiZGlzcGxheWluZyIsIm9wZXJhdGlvbkxpbmsiLCJwYXJzZXIiLCJlbmFibGUiLCJ0cmltbWVkIiwiTW9kZWxDb21wb25lbnQiLCJPQVMzMENvbXBvbmVudFdyYXBGYWN0b3J5IiwiVVBEQVRFX1NFTEVDVEVEX1NFUlZFUiIsIlVQREFURV9SRVFVRVNUX0JPRFlfVkFMVUUiLCJVUERBVEVfUkVRVUVTVF9CT0RZX1ZBTFVFX1JFVEFJTl9GTEFHIiwiVVBEQVRFX1JFUVVFU1RfQk9EWV9JTkNMVVNJT04iLCJVUERBVEVfQUNUSVZFX0VYQU1QTEVTX01FTUJFUiIsIlVQREFURV9SRVFVRVNUX0NPTlRFTlRfVFlQRSIsIlVQREFURV9SRVNQT05TRV9DT05URU5UX1RZUEUiLCJVUERBVEVfU0VSVkVSX1ZBUklBQkxFX1ZBTFVFIiwiU0VUX1JFUVVFU1RfQk9EWV9WQUxJREFURV9FUlJPUiIsIkNMRUFSX1JFUVVFU1RfQk9EWV9WQUxJREFURV9FUlJPUiIsIkNMRUFSX1JFUVVFU1RfQk9EWV9WQUxVRSIsInNlbGVjdGVkU2VydmVyVXJsIiwiY2xlYXJSZXF1ZXN0Qm9keVZhbHVlIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9sb2Rhc2hfZXNjYXBlUmVnRXhwX2RjY2E1MTQwX18iLCJ1c2VyRWRpdGVkUmVxdWVzdEJvZHkiLCJtYXBFbnRyaWVzIiwia3YiLCJjdXJyZW50TWVkaWFUeXBlRGVmYXVsdEJvZHlWYWx1ZSIsImxvY2F0aW9uRGF0YSIsInZhclZhbHVlcyIsInNlcnZlclZhbHVlIiwiZXNjYXBlUmVnRXhwIiwidmFsaWRhdGVSZXF1ZXN0Qm9keUlzUmVxdWlyZWQiLCJ2YWxpZGF0ZVJlcXVlc3RCb2R5VmFsdWVFeGlzdHMiLCJyZXF1aXJlZEtleXMiLCJyZXF1aXJlZEtleSIsImN1cnJlbnRWYWwiLCJ2YWx1ZUtleXMiLCJ2YWx1ZUtleVZhbCIsIm1pc3NpbmdLZXlWYWx1ZXMiLCJib2R5VmFsdWUiLCJjdXJyZW50TWlzc2luZ0tleSIsImJvZHlWYWx1ZXMiLCJtYWtlSXNGaWxlVXBsb2FkSW50ZW5kZWQiLCJmaWxlVXBsb2FkTWVkaWFUeXBlcyIsImZpbGVVcGxvYWRNZWRpYVR5cGUiLCJzcGVjV3JhcFNlbGVjdG9ycyIsImF1dGhXcmFwU2VsZWN0b3JzIiwib2FzMyIsImlzRmlsZVVwbG9hZEludGVuZGVkT0FTMzAiLCJzZWxlY3RXZWJob29rc09wZXJhdGlvbnMiLCJwYXRoSXRlbU5hbWVzIiwicGF0aEl0ZW1OYW1lIiwic2VsZWN0TGljZW5zZU5hbWVGaWVsZCIsInNlbGVjdExpY2Vuc2VVcmwiLCJzZWxlY3RDb250YWN0TmFtZUZpZWxkIiwic2VsZWN0Q29udGFjdFVybCIsInNlbGVjdENvbnRhY3RFbWFpbEZpZWxkIiwic2VsZWN0SW5mb1N1bW1hcnlGaWVsZCIsInNlbGVjdEluZm9EZXNjcmlwdGlvbkZpZWxkIiwic2VsZWN0SW5mb1RpdGxlRmllbGQiLCJzZWxlY3RJbmZvVGVybXNPZlNlcnZpY2VVcmwiLCJzZWxlY3RFeHRlcm5hbERvY3NVcmwiLCJleHRlcm5hbERvY3NEZXNjIiwic2VsZWN0RXh0ZXJuYWxEb2NzRGVzY3JpcHRpb25GaWVsZCIsImNvbnRhY3QiLCJKc29uU2NoZW1hRGlhbGVjdCIsImpzb25TY2hlbWFEaWFsZWN0Iiwic2VsZWN0SnNvblNjaGVtYURpYWxlY3RGaWVsZCIsImpzb25TY2hlbWFEaWFsZWN0RGVmYXVsdCIsInNlbGVjdEpzb25TY2hlbWFEaWFsZWN0RGVmYXVsdCIsIkpTT05TY2hlbWEyMDIwMTIiLCJoYW5kbGVFeHBhbmQiLCJvbkV4cGFuZCIsImlkZW50aWZpZXIiLCJzZWxlY3RTY2hlbWFzIiwiaGFzU2NoZW1hcyIsInNjaGVtYXNQYXRoIiwiaXNPcGVuRGVmYXVsdCIsImlzT3BlbiIsImdldFRpdGxlIiwianNvblNjaGVtYTIwMjAxMiIsInVzZUZuIiwiaXNPcGVuQW5kRXhwYW5kZWQiLCJpc1Jlc29sdmVkIiwiaGFuZGxlTW9kZWxzRXhwYW5kIiwiaGFuZGxlTW9kZWxzUmVmIiwiaGFuZGxlSlNPTlNjaGVtYTIwMjAxMlJlZiIsImhhbmRsZUpTT05TY2hlbWEyMDIwMTJFeHBhbmQiLCJzY2hlbWFQYXRoIiwibG9va3VwIiwiTXV0dWFsVExTQXV0aCIsIm11dHVhbFRMU0RlZmluaXRpb25zIiwiY3JlYXRlT25seU9BUzMxU2VsZWN0b3IiLCJjcmVhdGVPbmx5T0FTMzFTZWxlY3RvcldyYXBwZXIiLCJjcmVhdGVTeXN0ZW1TZWxlY3RvciIsImNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIiLCJvcmlnaW5hbENvbXBvbmVudCIsIndyYXBPQVMzMUZuIiwic3lzdGVtRm4iLCJmcm9tRW50cmllcyIsIm5ld0ltcGwiLCJvcmlJbXBsIiwiaW1wbCIsIk9BUzMxTGljZW5zZSIsIk9BUzMxQ29udGFjdCIsIk9BUzMxSW5mbyIsImdldFByb3BlcnRpZXMiLCJmaWx0ZXJlZFByb3BlcnRpZXMiLCJtYWtlR2V0U2NoZW1hS2V5d29yZHMiLCJvcmlnaW5hbCIsImpzb25TY2hlbWEyMDIwMTJLZXl3b3JkcyIsIndpdGhKU09OU2NoZW1hU3lzdGVtQ29udGV4dCIsIk1vZGVsV2l0aEpTT05TY2hlbWFDb250ZXh0IiwiZGVmYXVsdCRzY2hlbWEiLCJkZWZhdWx0RXhwYW5kZWRMZXZlbHMiLCJpc0V4cGFuZGFibGUiLCJnZXRTY2hlbWFLZXl3b3JkcyIsIk1vZGVsc1dyYXBwZXIiLCJNb2RlbHNXaXRoSlNPTlNjaGVtYUNvbnRleHQiLCJWZXJzaW9uUHJhZ21hRmlsdGVyV3JhcHBlciIsIk9BUzMxVmVyc2lvblByYWdtYUZpbHRlciIsIk9BUzMxQXV0aHMiLCJpc09BUzMxRm4iLCJ3ZWJob29rcyIsInNlbGVjdExpY2Vuc2VVcmxGaWVsZCIsInNlbGVjdExpY2Vuc2VJZGVudGlmaWVyRmllbGQiLCJzZWxlY3RDb250YWN0VXJsRmllbGQiLCJzZWxlY3RJbmZvVGVybXNPZlNlcnZpY2VGaWVsZCIsInRlcm1zT2ZTZXJ2aWNlIiwic2VsZWN0RXh0ZXJuYWxEb2NzVXJsRmllbGQiLCJyYXdTY2hlbWFzIiwicmVzb2x2ZWRTY2hlbWFzIiwib2FzMzFTZWxlY3RvcnMiLCJoYXNLZXl3b3JkIiwiSlNPTlZpZXdlciIsIlhtbCIsInVzZUNvbXBvbmVudCIsInVzZUlzRXhwYW5kZWQiLCJ1c2VQYXRoIiwidXNlTGV2ZWwiLCJzZXRFeHBhbmRlZCIsInNldENvbGxhcHNlZCIsIm5leHRMZXZlbCIsIkFjY29yZGlvbiIsIkV4cGFuZERlZXBCdXR0b24iLCJPcGVuQVBJMzFFeHRlbnNpb25zIiwiSlNPTlNjaGVtYVBhdGhDb250ZXh0IiwiSlNPTlNjaGVtYUxldmVsQ29udGV4dCIsImhhbmRsZUV4cGFuc2lvbiIsImhhbmRsZUV4cGFuc2lvbkRlZXAiLCJleHBhbmRlZERlZXBOZXciLCJkZWVwIiwib3BlbkFQSVNwZWNPYmoiLCJvcGVuQVBJRXh0ZW5zaW9ucyIsIkRpc2NyaW1pbmF0b3JNYXBwaW5nIiwiRGlzY3JpbWluYXRvciIsInBhdGhUb2tlbiIsIk9wZW5BUElFeHRlbnNpb25zIiwia2V5d29yZCIsIkV4dGVybmFsRG9jcyIsIktleXdvcmREZXNjcmlwdGlvbiIsIkRlc2NyaXB0aW9uIiwiTWFya0Rvd24iLCJEZXNjcmlwdGlvbktleXdvcmQiLCJFeGFtcGxlc1dyYXBwZXIiLCJLZXl3b3JkRXhhbXBsZXMiLCJLZXl3b3JkRGlzY3JpbWluYXRvciIsIktleXdvcmRYbWwiLCJLZXl3b3JkRXhhbXBsZSIsIktleXdvcmRFeHRlcm5hbERvY3MiLCJQcm9wZXJ0aWVzIiwiZ2V0RGVwZW5kZW50UmVxdWlyZWQiLCJ1c2VDb25maWciLCJKU09OU2NoZW1hIiwicHJvcGVydHlTY2hlbWEiLCJkZXBlbmRlbnRSZXF1aXJlZCIsIlByb3BlcnRpZXNLZXl3b3JkIiwibWFrZUlzRXhwYW5kYWJsZSIsIndyYXBwZWRGbnMiLCJmb2xkVHlwZSIsImNvbnRlbnRNZWRpYVR5cGUiLCJjb250ZW50RW5jb2RpbmciLCJpc0ZpbGVVcGxvYWRJbnRlbmRlZFdyYXAiLCJpc0ZpbGVVcGxvYWRJbnRlbmRlZE9BUzMxIiwiT0FTMzFQbHVnaW4iLCJjcmVhdGVTeXN0ZW1TZWxlY3RvckZuIiwiY3JlYXRlT25seU9BUzMxU2VsZWN0b3JGbiIsIk9BUzMxTW9kZWwiLCJPQVMzMU1vZGVscyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXhhbXBsZSIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkWG1sIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREaXNjcmltaW5hdG9yIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFeHRlcm5hbERvY3MiLCJJbmZvV3JhcHBlciIsIkxpY2Vuc2VXcmFwcGVyIiwiQ29udGFjdFdyYXBwZXIiLCJBdXRoSXRlbVdyYXBwZXIiLCJBdXRoc1dyYXBwZXIiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlc2NyaXB0aW9uIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXNjcmlwdGlvbldyYXBwZXIiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4YW1wbGVzIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFeGFtcGxlc1dyYXBwZXIiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByb3BlcnRpZXMiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByb3BlcnRpZXNXcmFwcGVyIiwiZGVmaW5pdGlvbnNUb0F1dGhvcml6ZVdyYXBwZXIiLCJzZWxlY3RJc09BUzMxIiwic2VsZWN0TGljZW5zZSIsInNlbGVjdENvbnRhY3QiLCJzZWxlY3RXZWJob29rcyIsImlzT0FTM1NlbGVjdG9yV3JhcHBlciIsInNlbGVjdExpY2Vuc2VVcmxXcmFwcGVyIiwib2FzMzEiLCJzZWxlY3RPQVMzMUxpY2Vuc2VVcmwiLCJvYmplY3RTY2hlbWEiLCJib29sZWFuU2NoZW1hIiwiSlNPTlNjaGVtYUNvbnRleHQiLCJKU09OU2NoZW1hQ3ljbGVzQ29udGV4dCIsIkpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUiLCJmbk5hbWUiLCJ1c2VKU09OU2NoZW1hQ29udGV4dFN0YXRlIiwic2V0RmFrZVN0YXRlIiwidXBkYXRlRm4iLCJjdXJyZW50UGF0aCIsInBhdGhNdXRhdG9yIiwic3RhcnRQYXRoIiwiQ29sbGFwc2VkIiwiRGVlcGx5RXhwYW5kZWQiLCJFeHBhbmRlZCIsInVwZGF0ZURlZXBGbiIsInBhcmVudFBhdGgiLCJjdXJyZW50U3RhdGUiLCJwYXJlbnRTdGF0ZSIsImlzRXhwYW5kZWRTdGF0ZSIsInVzZVJlbmRlcmVkU2NoZW1hcyIsInJlbmRlcmVkU2NoZW1hcyIsIiRpZCIsInVzZUlzRW1iZWRkZWQiLCJpc0NpcmN1bGFyIiwidXNlSXNDaXJjdWxhciIsImNvbnN0cmFpbnRzIiwic3RyaW5naWZ5Q29uc3RyYWludHMiLCJLZXl3b3JkJHNjaGVtYSIsIktleXdvcmQkdm9jYWJ1bGFyeSIsIktleXdvcmQkaWQiLCJLZXl3b3JkJGFuY2hvciIsIktleXdvcmQkZHluYW1pY0FuY2hvciIsIktleXdvcmQkcmVmIiwiS2V5d29yZCRkeW5hbWljUmVmIiwiS2V5d29yZCRkZWZzIiwiS2V5d29yZCRjb21tZW50IiwiS2V5d29yZEFsbE9mIiwiS2V5d29yZEFueU9mIiwiS2V5d29yZE9uZU9mIiwiS2V5d29yZE5vdCIsIktleXdvcmRJZiIsIktleXdvcmRUaGVuIiwiS2V5d29yZEVsc2UiLCJLZXl3b3JkRGVwZW5kZW50U2NoZW1hcyIsIktleXdvcmRQcmVmaXhJdGVtcyIsIktleXdvcmRJdGVtcyIsIktleXdvcmRDb250YWlucyIsIktleXdvcmRQcm9wZXJ0aWVzIiwiS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzIiwiS2V5d29yZEFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiS2V5d29yZFByb3BlcnR5TmFtZXMiLCJLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtcyIsIktleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXMiLCJLZXl3b3JkVHlwZSIsIktleXdvcmRFbnVtIiwiS2V5d29yZENvbnN0IiwiS2V5d29yZENvbnN0cmFpbnQiLCJLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQiLCJLZXl3b3JkQ29udGVudFNjaGVtYSIsIktleXdvcmRUaXRsZSIsIktleXdvcmREZWZhdWx0IiwiS2V5d29yZERlcHJlY2F0ZWQiLCJLZXl3b3JkUmVhZE9ubHkiLCJLZXl3b3JkV3JpdGVPbmx5IiwiRXh0ZW5zaW9uS2V5d29yZHMiLCJleHBhbmRlZE5ldyIsImNvbnN0cmFpbnQiLCIkc2NoZW1hIiwiJHZvY2FidWxhcnkiLCIkYW5jaG9yIiwiJGR5bmFtaWNBbmNob3IiLCIkZHluYW1pY1JlZiIsIiRkZWZzIiwiJGNvbW1lbnQiLCJBbGxPZiIsIkFueU9mIiwiT25lT2YiLCJOb3QiLCJJZiIsImlmIiwiVGhlbiIsIkVsc2UiLCJlbHNlIiwiRGVwZW5kZW50U2NoZW1hcyIsImRlcGVuZGVudFNjaGVtYXMiLCJQcmVmaXhJdGVtcyIsInByZWZpeEl0ZW1zIiwiSXRlbXMiLCJDb250YWlucyIsIlBhdHRlcm5Qcm9wZXJ0aWVzIiwicGF0dGVyblByb3BlcnRpZXMiLCJBZGRpdGlvbmFsUHJvcGVydGllcyIsIlByb3BlcnR5TmFtZXMiLCJwcm9wZXJ0eU5hbWVzIiwiVW5ldmFsdWF0ZWRJdGVtcyIsInVuZXZhbHVhdGVkSXRlbXMiLCJVbmV2YWx1YXRlZFByb3BlcnRpZXMiLCJ1bmV2YWx1YXRlZFByb3BlcnRpZXMiLCJUeXBlIiwiY2lyY3VsYXJTdWZmaXgiLCJFbnVtIiwiQ29uc3QiLCJjb25zdCIsInVwcGVyRmlyc3QiLCJjaGFyQXQiLCJtYWtlR2V0VGl0bGUiLCJmbkFjY2Vzc29yIiwibWFrZUdldFR5cGUiLCJpc0Jvb2xlYW5KU09OU2NoZW1hIiwicHJlZml4SXRlbXNUeXBlcyIsIml0ZW1zVHlwZSIsImhhbmRsZUNvbWJpbmluZ0tleXdvcmRzIiwic2VwYXJhdG9yIiwic3ViU2NoZW1hIiwiY29tYmluZWRTdHJpbmdzIiwiaW5mZXJUeXBlIiwiQm9vbGVhbiIsImdldEV4dGVuc2lvbktleXdvcmRzIiwic3RyaW5naWZ5Q29uc3RyYWludFJhbmdlIiwibGFiZWwiLCJoYXNNaW4iLCJoYXNNYXgiLCJtdWx0aXBsZU9mIiwic3RyaW5naWZ5Q29uc3RyYWludE11bHRpcGxlT2YiLCJmYWN0b3IiLCJudW1iZXJSYW5nZSIsInN0cmluZ2lmeUNvbnN0cmFpbnROdW1iZXJSYW5nZSIsImhhc01pbmltdW0iLCJoYXNNYXhpbXVtIiwiaGFzRXhjbHVzaXZlTWluaW11bSIsImhhc0V4Y2x1c2l2ZU1heGltdW0iLCJpc01pbkV4Y2x1c2l2ZSIsImlzTWF4RXhjbHVzaXZlIiwic3RyaW5nUmFuZ2UiLCJhcnJheVJhbmdlIiwiY29udGFpbnNSYW5nZSIsIm1pbkNvbnRhaW5zIiwibWF4Q29udGFpbnMiLCJvYmplY3RSYW5nZSIsIm1ha2VHZXRFeHRlbnNpb25LZXl3b3JkcyIsImtleXdvcmRzIiwiZGlmZmVyZW5jZSIsImNvbXBhcmlzb25WYWx1ZSIsImNvbXBhcmlzb25TZXQiLCJoYXNUeXBlIiwiQ29uc3RyYWludCIsIkRlcGVuZGVudFJlcXVpcmVkIiwiQ29udGVudFNjaGVtYSIsImNvbnRlbnRTY2hlbWEiLCJUaXRsZSIsInJlbmRlcmVkVGl0bGUiLCJEZWZhdWx0IiwiRGVwcmVjYXRlZCIsIlJlYWRPbmx5IiwiV3JpdGVPbmx5IiwiRXhhbXBsZXMiLCJzaG93RXh0ZW5zaW9uS2V5d29yZHMiLCJleHRlbnNpb25LZXl3b3JkcyIsImlzUHJpbWl0aXZlIiwiaXNFbXB0eU9iamVjdCIsImlzRW1wdHlBcnJheSIsInByb3BlcnR5VmFsdWUiLCJDaGV2cm9uUmlnaHRJY29uIiwiQ2hldnJvblJpZ2h0Iiwid2l0aEpTT05TY2hlbWFDb250ZXh0Iiwib3ZlcnJpZGVzIiwiSE9DIiwiY29udGV4dHMiLCJtYWtlV2l0aEpTT05TY2hlbWFTeXN0ZW1Db250ZXh0IiwiSlNPTlNjaGVtYTIwMjAxMlBsdWdpbiIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJHNjaGVtYSIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJHZvY2FidWxhcnkiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRpZCIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGFuY2hvciIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGR5bmFtaWNBbmNob3IiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRyZWYiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRkeW5hbWljUmVmIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkZGVmcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGNvbW1lbnQiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEFsbE9mIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBbnlPZiIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkT25lT2YiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZE5vdCIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkSWYiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRoZW4iLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEVsc2UiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlcGVuZGVudFNjaGVtYXMiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByZWZpeEl0ZW1zIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRJdGVtcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29udGFpbnMiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBZGRpdGlvbmFsUHJvcGVydGllcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUHJvcGVydHlOYW1lcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRUeXBlIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFbnVtIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRDb25zdCIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29uc3RyYWludCIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZENvbnRlbnRTY2hlbWEiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRpdGxlIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZWZhdWx0IiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXByZWNhdGVkIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRSZWFkT25seSIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkV3JpdGVPbmx5IiwiSlNPTlNjaGVtYTIwMjAxMkV4dGVuc2lvbktleXdvcmRzIiwiSlNPTlNjaGVtYTIwMjAxMkpTT05WaWV3ZXIiLCJKU09OU2NoZW1hMjAyMDEyQWNjb3JkaW9uIiwiSlNPTlNjaGVtYTIwMjAxMkV4cGFuZERlZXBCdXR0b24iLCJKU09OU2NoZW1hMjAyMDEyQ2hldnJvblJpZ2h0SWNvbiIsIndpdGhKU09OU2NoZW1hMjAyMDEyQ29udGV4dCIsIndpdGhKU09OU2NoZW1hMjAyMDEyU3lzdGVtQ29udGV4dCIsIkpTT05TY2hlbWEyMDIwMTJQYXRoQ29udGV4dCIsIkpTT05TY2hlbWEyMDIwMTJMZXZlbENvbnRleHQiLCJhcnJheVR5cGUiLCJhcHBseUFycmF5Q29uc3RyYWludHMiLCJjb25zdHJhaW5lZEFycmF5IiwiY29udGFpbnNJdGVtIiwiYXQiLCJwaWNrIiwiaXNKU09OU2NoZW1hT2JqZWN0IiwiaXNKU09OU2NoZW1hIiwiUmVnaXN0cnkiLCJ1bnJlZ2lzdGVyIiwiaW50MzJHZW5lcmF0b3IiLCJpbnQ2NEdlbmVyYXRvciIsImZsb2F0R2VuZXJhdG9yIiwiZG91YmxlR2VuZXJhdG9yIiwiZW1haWxHZW5lcmF0b3IiLCJpZG5FbWFpbEdlbmVyYXRvciIsImhvc3RuYW1lR2VuZXJhdG9yIiwiaWRuSG9zdG5hbWVHZW5lcmF0b3IiLCJpcHY0R2VuZXJhdG9yIiwiaXB2NkdlbmVyYXRvciIsInVyaUdlbmVyYXRvciIsInVyaVJlZmVyZW5jZUdlbmVyYXRvciIsImlyaUdlbmVyYXRvciIsImlyaVJlZmVyZW5jZUdlbmVyYXRvciIsInV1aWRHZW5lcmF0b3IiLCJ1cmlUZW1wbGF0ZUdlbmVyYXRvciIsImpzb25Qb2ludGVyR2VuZXJhdG9yIiwicmVsYXRpdmVKc29uUG9pbnRlckdlbmVyYXRvciIsImRhdGVUaW1lR2VuZXJhdG9yIiwiZGF0ZUdlbmVyYXRvciIsInRpbWVHZW5lcmF0b3IiLCJkdXJhdGlvbkdlbmVyYXRvciIsInBhc3N3b3JkR2VuZXJhdG9yIiwicmVnZXhHZW5lcmF0b3IiLCJyZWdpc3RyeSIsIkZvcm1hdFJlZ2lzdHJ5IiwiaW50MzIiLCJpbnQ2NCIsImZsb2F0IiwiZG91YmxlIiwiaG9zdG5hbWUiLCJpcHY0IiwiaXB2NiIsImlyaSIsInV1aWQiLCJkYXRlIiwidGltZSIsImRlZmF1bHRzIiwiZm9ybWF0QVBJIiwiZ2VuZXJhdG9yIiwiZ2V0RGVmYXVsdHMiLCJxdW90ZWRQcmludGFibGUiLCJjaGFyQ29kZSIsInV0ZjgiLCJ1bmVzY2FwZSIsInV0ZjhWYWx1ZSIsImJhc2UzMkFscGhhYmV0IiwicGFkZGluZ0NvdW50IiwiYmFzZTMyU3RyIiwiYnVmZmVyTGVuZ3RoIiwiRW5jb2RlclJlZ2lzdHJ5IiwiZW5jb2RlN2JpdCIsImVuY29kZThiaXQiLCJiaW5hcnkiLCJlbmNvZGVRdW90ZWRQcmludGFibGUiLCJiYXNlMTYiLCJiYXNlMzIiLCJiYXNlNjR1cmwiLCJlbmNvZGVyQVBJIiwiZW5jb2RpbmdOYW1lIiwiZW5jb2RlciIsInRleHQvcGxhaW4iLCJ0ZXh0L2NzcyIsInRleHQvY3N2IiwidGV4dC9odG1sIiwidGV4dC9jYWxlbmRhciIsInRleHQvamF2YXNjcmlwdCIsInRleHQveG1sIiwidGV4dC8qIiwiaW1hZ2UvKiIsImF1ZGlvLyoiLCJ2aWRlby8qIiwiYXBwbGljYXRpb24vanNvbiIsImFwcGxpY2F0aW9uL2xkK2pzb24iLCJhcHBsaWNhdGlvbi94LWh0dHBkLXBocCIsImFwcGxpY2F0aW9uL3J0ZiIsInJhdyIsImFwcGxpY2F0aW9uL3gtc2giLCJhcHBsaWNhdGlvbi94aHRtbCt4bWwiLCJhcHBsaWNhdGlvbi8qIiwiTWVkaWFUeXBlUmVnaXN0cnkiLCJ0ZXh0TWVkaWFUeXBlc0dlbmVyYXRvcnMiLCJpbWFnZU1lZGlhVHlwZXNHZW5lcmF0b3JzIiwiYXVkaW9NZWRpYVR5cGVzR2VuZXJhdG9ycyIsInZpZGVvTWVkaWFUeXBlc0dlbmVyYXRvcnMiLCJhcHBsaWNhdGlvbk1lZGlhVHlwZXNHZW5lcmF0b3JzIiwibWVkaWFUeXBlQVBJIiwibWVkaWFUeXBlTm9QYXJhbXMiLCJ0b3BMZXZlbE1lZGlhVHlwZSIsImFwcGx5U3RyaW5nQ29uc3RyYWludHMiLCJjb25zdHJhaW5lZFN0cmluZyIsInN0cmluZ1R5cGUiLCJlbmNvZGUiLCJnZW5lcmF0ZWRTdHJpbmciLCJyYW5kZXhwIiwiZ2VuZXJhdGVGb3JtYXQiLCJmb3JtYXRHZW5lcmF0b3IiLCJnZW5lcmF0ZU1lZGlhVHlwZSIsIm1lZGlhVHlwZUdlbmVyYXRvciIsImFwcGx5TnVtYmVyQ29uc3RyYWludHMiLCJlcHNpbG9uIiwiRVBTSUxPTiIsIm1pblZhbHVlIiwibWF4VmFsdWUiLCJjb25zdHJhaW5lZE51bWJlciIsImdlbmVyYXRlZE51bWJlciIsImdlbmVyYXRlZEludGVnZXIiLCJQcm94eSIsIm51bWJlclR5cGUiLCJpbnRlZ2VyVHlwZSIsImJvb2xlYW4iLCJib29sZWFuVHlwZSIsIm51bGwiLCJudWxsVHlwZSIsIkFMTF9UWVBFUyIsImhhc0V4YW1wbGUiLCJkZWZhdWx0VmFsIiwiZXh0cmFjdEV4YW1wbGUiLCJpbmZlcnJpbmdLZXl3b3JkcyIsImZhbGxiYWNrVHlwZSIsImluZmVyVHlwZUZyb21WYWx1ZSIsIm5vdE51bGxUeXBlcyIsInBpY2tlZFR5cGUiLCJyYW5kb21QaWNrIiwiaW5mZXJyaW5nVHlwZXMiLCJpbmZlcnJpbmdUeXBlIiwiaW5mZXJyaW5nVHlwZUtleXdvcmRzIiwiaW5mZXJyaW5nS2V5d29yZCIsImNvbnN0VHlwZSIsImNvbWJpbmVUeXBlcyIsImNvbWJpbmVkVHlwZXMiLCJleGFtcGxlVHlwZSIsInR5cGVDYXN0IiwiZnJvbUpTT05Cb29sZWFuU2NoZW1hIiwibWVyZ2VkVHlwZSIsImVuc3VyZUFycmF5IiwiYWxsUHJvcGVydHlOYW1lcyIsInNvdXJjZVByb3BlcnR5IiwidGFyZ2V0UHJvcGVydHkiLCJwcm9wU2NoZW1hIiwicHJvcFNjaGVtYVR5cGUiLCJhdHRyTmFtZSIsImFycmF5U2FtcGxlIiwidHlwZU1hcCIsImNvbnRhaW5zV2l0aG91dEFueU9mIiwiYW55T2ZTY2hlbWEiLCJjb250YWluc1dpdGhvdXRPbmVPZiIsIm9uZU9mU2NoZW1hIiwiaXRlbXNXaXRob3V0QW55T2YiLCJpdGVtc1dpdGhvdXRPbmVPZiIsImNvbnRlbnRTYW1wbGUiLCJPcHRpb25SZWdpc3RyeSIsIm9wdGlvbkFQSSIsIm9wdGlvbk5hbWUiLCJvcHRpb25WYWx1ZSIsIkpTT05TY2hlbWEyMDIwMTJTYW1wbGVzUGx1Z2luIiwic2FtcGxlT3B0aW9uQVBJIiwic2FtcGxlRW5jb2RlckFQSSIsInNhbXBsZUZvcm1hdEFQSSIsInNhbXBsZU1lZGlhVHlwZUFQSSIsIlByZXNldEFwaXMiLCJPcGVuQVBJMzBQbHVnaW4iLCJPcGVuQVBJMzFQbHVnaW4iLCJwcmVzZXRzIiwib3B0aW9uc0Zyb21RdWVyeSIsInVybFNlYXJjaFBhcmFtcyIsInF1ZXJ5Q29uZmlnRW5hYmxlZCIsInBhcnNlU2VhcmNoIiwic2VhcmNoUGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwib3B0aW9uc0Zyb21VUkwiLCJkZWZlcnJlZCIsIm1ha2VEZWZlcnJlZCIsImxvYWRSZW1vdGVDb25maWciLCJmZXRjaGVkT3B0aW9ucyIsIm9wdGlvbnNGcm9tUnVudGltZSIsImZyZWV6ZSIsImRvbV9pZCIsInVybHMiLCJjb25maWdVcmwiLCJjdXJsX2Jhc2giLCJzeW50YXgiLCJjdXJsX3Bvd2Vyc2hlbGwiLCJjdXJsX2NtZCIsImRlZmF1bHRFeHBhbmRlZCIsImxhbmd1YWdlcyIsIkFwaXNQcmVzZXQiLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX2xvZGFzaF9oYXNfZTllNDUzYmVfXyIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfbG9kYXNoX2ZwX3NldF9iMmYzODM5Nl9fIiwiYXJyYXlUeXBlQ2FzdGVyIiwiYm9vbGVhblR5cGVDYXN0ZXIiLCJmdW5jdGlvblR5cGVDYXN0ZXIiLCJudW1iZXJUeXBlQ2FzdGVyIiwicGFyc2VkVmFsdWUiLCJvYmplY3RUeXBlQ2FzdGVyIiwic3ludGF4SGlnaGxpZ2h0VHlwZUNhc3RlciIsInR5cGVDYXN0ZXIiLCJudWxsYWJsZVN0cmluZ1R5cGVDYXN0ZXIiLCJzdHJpbmdUeXBlQ2FzdGVyIiwiZG9tTm9kZVR5cGVDYXN0ZXIiLCJmaWx0ZXJUeXBlQ2FzdGVyIiwibnVsbGFibGVGdW5jdGlvblR5cGVDYXN0ZXIiLCJ1bmRlZmluZWRTdHJpbmdUeXBlQ2FzdGVyIiwic29ydGVyVHlwZUNhc3RlciIsInBhcmFtYXRlck1hY3JvIiwibnVsbGFibGVBcnJheVR5cGVDYXN0ZXIiLCJtYXBwaW5ncyIsIm9wdGlvblBhdGgiLCJjYXN0ZWQiLCJzb3VyY2VzIiwiZm9yIiwicHJpbWFyeU5hbWUiLCJzb3VyY2VzV2l0aG91dEV4Y2VwdGlvbnMiLCJzb3VyY2VXaXRob3V0RXhjZXB0aW9ucyIsIlN3YWdnZXJVSSIsInVzZXJPcHRpb25zIiwicXVlcnlPcHRpb25zIiwicnVudGltZU9wdGlvbnMiLCJtZXJnZWRPcHRpb25zIiwic3lzdGVtT3B0aW9ucyIsInN5c3RlbU9wdGlvbnNGYWN0b3JpemF0aW9uIiwiSW5saW5lUGx1Z2luIiwiaW5saW5lUGx1Z2luT3B0aW9uc0ZhY3Rvcml6YXRpb24iLCJ1bmJvdW5kU3lzdGVtIiwiU3lzdGVtIiwicGVyc2lzdENvbmZpZ3MiLCJxdWVyeVNlbGVjdG9yIiwidXJsT3B0aW9ucyIsInVybE1lcmdlZE9wdGlvbnMiLCJtZXJnZU9wdGlvbnMiLCJ0eXBlQ2FzdE9wdGlvbnMiLCJ0eXBlQ2FzdE1hcHBpbmdzIiwiYXBpcyIsIkF1dGgiLCJDb25maWdzIiwiRGVlcExpbmluZyIsIkVyciIsIkZpbHRlciIsIkljb25zIiwiSlNPTlNjaGVtYTUiLCJKU09OU2NoZW1hNVNhbXBsZXMiLCJKU09OU2NoZW1hMjAyMDEyU2FtcGxlcyIsIkxvZ3MiLCJPcGVuQVBJMzAiLCJPcGVuQVBJMzEiLCJPbkNvbXBsZXRlIiwiU3BlYyIsIlN3YWdnZXJDbGllbnQiLCJVdGlsIiwiVmlldyIsIlZpZXdMZWdhY3kiLCJEb3dubG9hZFVybCIsIlN5bnRheEhpZ2hsaWdodGluZyIsIlZlcnNpb25zIiwiU2FmZVJlbmRlciJdLCJzb3VyY2VSb290IjoiIn0=</File>
        <File Location="var/httpd/htdocs/js/thirdparty/swagger/swagger-ui-es-bundle.js" Permission="660" Encode="Base64">LyohIEZvciBsaWNlbnNlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgc3dhZ2dlci11aS1lcy1idW5kbGUuanMuTElDRU5TRS50eHQgKi8KKCgpPT57dmFyIHM9ezI1MToocyxvKT0+e28ucmVhZD1mdW5jdGlvbihzLG8saSxhLHUpe3ZhciBfLHcseD04KnUtYS0xLEM9KDE8PHgpLTEsaj1DPj4xLEw9LTcsQj1pP3UtMTowLCQ9aT8tMToxLFY9c1tvK0JdO2ZvcihCKz0kLF89ViYoMTw8LUwpLTEsVj4+PS1MLEwrPXg7TD4wO189MjU2Kl8rc1tvK0JdLEIrPSQsTC09OCk7Zm9yKHc9XyYoMTw8LUwpLTEsXz4+PS1MLEwrPWE7TD4wO3c9MjU2Kncrc1tvK0JdLEIrPSQsTC09OCk7aWYoMD09PV8pXz0xLWo7ZWxzZXtpZihfPT09QylyZXR1cm4gdz9OYU46MS8wKihWPy0xOjEpO3crPU1hdGgucG93KDIsYSksXy09an1yZXR1cm4oVj8tMToxKSp3Kk1hdGgucG93KDIsXy1hKX0sby53cml0ZT1mdW5jdGlvbihzLG8saSxhLHUsXyl7dmFyIHcseCxDLGo9OCpfLXUtMSxMPSgxPDxqKS0xLEI9TD4+MSwkPTIzPT09dT9NYXRoLnBvdygyLC0yNCktTWF0aC5wb3coMiwtNzcpOjAsVj1hPzA6Xy0xLFU9YT8xOi0xLHo9bzwwfHwwPT09byYmMS9vPDA/MTowO2ZvcihvPU1hdGguYWJzKG8pLGlzTmFOKG8pfHxvPT09MS8wPyh4PWlzTmFOKG8pPzE6MCx3PUwpOih3PU1hdGguZmxvb3IoTWF0aC5sb2cobykvTWF0aC5MTjIpLG8qKEM9TWF0aC5wb3coMiwtdykpPDEmJih3LS0sQyo9MiksKG8rPXcrQj49MT8kL0M6JCpNYXRoLnBvdygyLDEtQikpKkM+PTImJih3KyssQy89MiksdytCPj1MPyh4PTAsdz1MKTp3K0I+PTE/KHg9KG8qQy0xKSpNYXRoLnBvdygyLHUpLHcrPUIpOih4PW8qTWF0aC5wb3coMixCLTEpKk1hdGgucG93KDIsdSksdz0wKSk7dT49ODtzW2krVl09MjU1JngsVis9VSx4Lz0yNTYsdS09OCk7Zm9yKHc9dzw8dXx4LGorPXU7aj4wO3NbaStWXT0yNTUmdyxWKz1VLHcvPTI1NixqLT04KTtzW2krVi1VXXw9MTI4Knp9fSw0NjI6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDQwOTc1KTtzLmV4cG9ydHM9YX0sNjU5OihzLG8saSk9Pnt2YXIgYT1pKDUxODczKSx1PU9iamVjdC5wcm90b3R5cGUsXz11Lmhhc093blByb3BlcnR5LHc9dS50b1N0cmluZyx4PWE/YS50b1N0cmluZ1RhZzp2b2lkIDA7cy5leHBvcnRzPWZ1bmN0aW9uIGdldFJhd1RhZyhzKXt2YXIgbz1fLmNhbGwocyx4KSxpPXNbeF07dHJ5e3NbeF09dm9pZCAwO3ZhciBhPSEwfWNhdGNoKHMpe312YXIgdT13LmNhbGwocyk7cmV0dXJuIGEmJihvP3NbeF09aTpkZWxldGUgc1t4XSksdX19LDY5NDoocyxvLGkpPT57InVzZSBzdHJpY3QiO2koOTE1OTkpO3ZhciBhPWkoMzcyNTcpO2koMTI1NjApLHMuZXhwb3J0cz1hfSw5NTM6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0IjtzLmV4cG9ydHM9aSg1MzM3NSl9LDE3MzM6cz0+e3ZhciBvPS9bXlx4MDAtXHgyZlx4M2EtXHg0MFx4NWItXHg2MFx4N2ItXHg3Zl0rL2c7cy5leHBvcnRzPWZ1bmN0aW9uIGFzY2lpV29yZHMocyl7cmV0dXJuIHMubWF0Y2gobyl8fFtdfX0sMTg4MjoocyxvLGkpPT57dmFyIGE9aSg3MjU1MiksdT1pKDIzODA1KTtzLmV4cG9ydHM9ZnVuY3Rpb24gaXNGdW5jdGlvbihzKXtpZighdShzKSlyZXR1cm4hMTt2YXIgbz1hKHMpO3JldHVybiJbb2JqZWN0IEZ1bmN0aW9uXSI9PW98fCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PW98fCJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dIj09b3x8IltvYmplY3QgUHJveHldIj09b319LDE5MDc6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDQxNTA1KSx1PUZ1bmN0aW9uLnByb3RvdHlwZSxfPXUuY2FsbCx3PWEmJnUuYmluZC5iaW5kKF8sXyk7cy5leHBvcnRzPWE/dzpmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gXy5hcHBseShzLGFyZ3VtZW50cyl9fX0sMjIwNTpmdW5jdGlvbihzLG8saSl7dmFyIGE7YT12b2lkIDAhPT1pLmc/aS5nOnRoaXMscy5leHBvcnRzPWZ1bmN0aW9uKHMpe2lmKHMuQ1NTJiZzLkNTUy5lc2NhcGUpcmV0dXJuIHMuQ1NTLmVzY2FwZTt2YXIgY3NzRXNjYXBlPWZ1bmN0aW9uKHMpe2lmKDA9PWFyZ3VtZW50cy5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiYENTUy5lc2NhcGVgIHJlcXVpcmVzIGFuIGFyZ3VtZW50LiIpO2Zvcih2YXIgbyxpPVN0cmluZyhzKSxhPWkubGVuZ3RoLHU9LTEsXz0iIix3PWkuY2hhckNvZGVBdCgwKTsrK3U8YTspMCE9KG89aS5jaGFyQ29kZUF0KHUpKT9fKz1vPj0xJiZvPD0zMXx8MTI3PT1vfHwwPT11JiZvPj00OCYmbzw9NTd8fDE9PXUmJm8+PTQ4JiZvPD01NyYmNDU9PXc/IlxcIitvLnRvU3RyaW5nKDE2KSsiICI6MD09dSYmMT09YSYmNDU9PW98fCEobz49MTI4fHw0NT09b3x8OTU9PW98fG8+PTQ4JiZvPD01N3x8bz49NjUmJm88PTkwfHxvPj05NyYmbzw9MTIyKT8iXFwiK2kuY2hhckF0KHUpOmkuY2hhckF0KHUpOl8rPSLvv70iO3JldHVybiBffTtyZXR1cm4gcy5DU1N8fChzLkNTUz17fSkscy5DU1MuZXNjYXBlPWNzc0VzY2FwZSxjc3NFc2NhcGV9KGEpfSwyMjA5OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGEsdT1pKDk0MDQpLF89ZnVuY3Rpb24gcHJvZHVjdGlvblR5cGVDaGVja2VyKCl7aW52YXJpYW50KCExLCJJbW11dGFibGVQcm9wVHlwZXMgdHlwZSBjaGVja2luZyBjb2RlIGlzIHN0cmlwcGVkIGluIHByb2R1Y3Rpb24uIil9O18uaXNSZXF1aXJlZD1fO3ZhciB3PWZ1bmN0aW9uIGdldFByb2R1Y3Rpb25UeXBlQ2hlY2tlcigpe3JldHVybiBffTtmdW5jdGlvbiBnZXRQcm9wVHlwZShzKXt2YXIgbz10eXBlb2YgcztyZXR1cm4gQXJyYXkuaXNBcnJheShzKT8iYXJyYXkiOnMgaW5zdGFuY2VvZiBSZWdFeHA/Im9iamVjdCI6cyBpbnN0YW5jZW9mIHUuSXRlcmFibGU/IkltbXV0YWJsZS4iK3MudG9Tb3VyY2UoKS5zcGxpdCgiICIpWzBdOm99ZnVuY3Rpb24gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIocyl7ZnVuY3Rpb24gY2hlY2tUeXBlKG8saSxhLHUsXyx3KXtmb3IodmFyIHg9YXJndW1lbnRzLmxlbmd0aCxDPUFycmF5KHg+Nj94LTY6MCksaj02O2o8eDtqKyspQ1tqLTZdPWFyZ3VtZW50c1tqXTtyZXR1cm4gdz13fHxhLHU9dXx8Ijw8YW5vbnltb3VzPj4iLG51bGwhPWlbYV0/cy5hcHBseSh2b2lkIDAsW2ksYSx1LF8sd10uY29uY2F0KEMpKTpvP25ldyBFcnJvcigiUmVxdWlyZWQgIitfKyIgYCIrdysiYCB3YXMgbm90IHNwZWNpZmllZCBpbiBgIit1KyJgLiIpOnZvaWQgMH12YXIgbz1jaGVja1R5cGUuYmluZChudWxsLCExKTtyZXR1cm4gby5pc1JlcXVpcmVkPWNoZWNrVHlwZS5iaW5kKG51bGwsITApLG99ZnVuY3Rpb24gY3JlYXRlSXRlcmFibGVTdWJjbGFzc1R5cGVDaGVja2VyKHMsbyl7cmV0dXJuIGZ1bmN0aW9uIGNyZWF0ZUltbXV0YWJsZVR5cGVDaGVja2VyKHMsbyl7cmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKChmdW5jdGlvbiB2YWxpZGF0ZShpLGEsdSxfLHcpe3ZhciB4PWlbYV07aWYoIW8oeCkpe3ZhciBDPWdldFByb3BUeXBlKHgpO3JldHVybiBuZXcgRXJyb3IoIkludmFsaWQgIitfKyIgYCIrdysiYCBvZiB0eXBlIGAiK0MrImAgc3VwcGxpZWQgdG8gYCIrdSsiYCwgZXhwZWN0ZWQgYCIrcysiYC4iKX1yZXR1cm4gbnVsbH0pKX0oIkl0ZXJhYmxlLiIrcywoZnVuY3Rpb24ocyl7cmV0dXJuIHUuSXRlcmFibGUuaXNJdGVyYWJsZShzKSYmbyhzKX0pKX0oYT17bGlzdE9mOncsbWFwT2Y6dyxvcmRlcmVkTWFwT2Y6dyxzZXRPZjp3LG9yZGVyZWRTZXRPZjp3LHN0YWNrT2Y6dyxpdGVyYWJsZU9mOncscmVjb3JkT2Y6dyxzaGFwZTp3LGNvbnRhaW5zOncsbWFwQ29udGFpbnM6dyxvcmRlcmVkTWFwQ29udGFpbnM6dyxsaXN0Ol8sbWFwOl8sb3JkZXJlZE1hcDpfLHNldDpfLG9yZGVyZWRTZXQ6XyxzdGFjazpfLHNlcTpfLHJlY29yZDpfLGl0ZXJhYmxlOl99KS5pdGVyYWJsZS5pbmRleGVkPWNyZWF0ZUl0ZXJhYmxlU3ViY2xhc3NUeXBlQ2hlY2tlcigiSW5kZXhlZCIsdS5JdGVyYWJsZS5pc0luZGV4ZWQpLGEuaXRlcmFibGUua2V5ZWQ9Y3JlYXRlSXRlcmFibGVTdWJjbGFzc1R5cGVDaGVja2VyKCJLZXllZCIsdS5JdGVyYWJsZS5pc0tleWVkKSxzLmV4cG9ydHM9YX0sMjQwNDoocyxvLGkpPT57dmFyIGE9aSg2MDI3MCk7cy5leHBvcnRzPWZ1bmN0aW9uIGlzRXF1YWwocyxvKXtyZXR1cm4gYShzLG8pfX0sMjUyMzpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VGaW5kSW5kZXgocyxvLGksYSl7Zm9yKHZhciB1PXMubGVuZ3RoLF89aSsoYT8xOi0xKTthP18tLTorK188dTspaWYobyhzW19dLF8scykpcmV0dXJuIF87cmV0dXJuLTF9fSwyNTMyOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg0NTk1MSksdT1PYmplY3QuZGVmaW5lUHJvcGVydHk7cy5leHBvcnRzPWZ1bmN0aW9uKHMsbyl7dHJ5e3UoYSxzLHt2YWx1ZTpvLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pfWNhdGNoKGkpe2Fbc109b31yZXR1cm4gb319LDI2OTQ6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDY5MjUpO2Z1bmN0aW9uIGVtcHR5RnVuY3Rpb24oKXt9ZnVuY3Rpb24gZW1wdHlGdW5jdGlvbldpdGhSZXNldCgpe31lbXB0eUZ1bmN0aW9uV2l0aFJlc2V0LnJlc2V0V2FybmluZ0NhY2hlPWVtcHR5RnVuY3Rpb24scy5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gc2hpbShzLG8saSx1LF8sdyl7aWYodyE9PWEpe3ZhciB4PW5ldyBFcnJvcigiQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gVXNlIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcygpIHRvIGNhbGwgdGhlbS4gUmVhZCBtb3JlIGF0IGh0dHA6Ly9mYi5tZS91c2UtY2hlY2stcHJvcC10eXBlcyIpO3Rocm93IHgubmFtZT0iSW52YXJpYW50IFZpb2xhdGlvbiIseH19ZnVuY3Rpb24gZ2V0U2hpbSgpe3JldHVybiBzaGltfXNoaW0uaXNSZXF1aXJlZD1zaGltO3ZhciBzPXthcnJheTpzaGltLGJpZ2ludDpzaGltLGJvb2w6c2hpbSxmdW5jOnNoaW0sbnVtYmVyOnNoaW0sb2JqZWN0OnNoaW0sc3RyaW5nOnNoaW0sc3ltYm9sOnNoaW0sYW55OnNoaW0sYXJyYXlPZjpnZXRTaGltLGVsZW1lbnQ6c2hpbSxlbGVtZW50VHlwZTpzaGltLGluc3RhbmNlT2Y6Z2V0U2hpbSxub2RlOnNoaW0sb2JqZWN0T2Y6Z2V0U2hpbSxvbmVPZjpnZXRTaGltLG9uZU9mVHlwZTpnZXRTaGltLHNoYXBlOmdldFNoaW0sZXhhY3Q6Z2V0U2hpbSxjaGVja1Byb3BUeXBlczplbXB0eUZ1bmN0aW9uV2l0aFJlc2V0LHJlc2V0V2FybmluZ0NhY2hlOmVtcHR5RnVuY3Rpb259O3JldHVybiBzLlByb3BUeXBlcz1zLHN9fSwyODc0OnM9PntzLmV4cG9ydHM9e319LDI4NzU6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDIzMDQ1KSx1PWkoODAzNzYpO3MuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24ga2V5cyhzKXtyZXR1cm4gYShzLHUpfX0sMjk1NToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhLHU9aSg2NTYwNik7ZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KHMsbyxpKXtyZXR1cm4obz1mdW5jdGlvbiBfdG9Qcm9wZXJ0eUtleShzKXt2YXIgbz1mdW5jdGlvbiBfdG9QcmltaXRpdmUocyxvKXtpZigib2JqZWN0IiE9dHlwZW9mIHN8fG51bGw9PT1zKXJldHVybiBzO3ZhciBpPXNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1pKXt2YXIgYT1pLmNhbGwocyxvfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgYSlyZXR1cm4gYTt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PW8/U3RyaW5nOk51bWJlcikocyl9KHMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2Ygbz9vOlN0cmluZyhvKX0obykpaW4gcz9PYmplY3QuZGVmaW5lUHJvcGVydHkocyxvLHt2YWx1ZTppLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6c1tvXT1pLHN9dmFyIF89aSg4NjIzOCksdz1TeW1ib2woImxhc3RSZXNvbHZlIikseD1TeW1ib2woImxhc3RSZWplY3QiKSxDPVN5bWJvbCgiZXJyb3IiKSxqPVN5bWJvbCgiZW5kZWQiKSxMPVN5bWJvbCgibGFzdFByb21pc2UiKSxCPVN5bWJvbCgiaGFuZGxlUHJvbWlzZSIpLCQ9U3ltYm9sKCJzdHJlYW0iKTtmdW5jdGlvbiBjcmVhdGVJdGVyUmVzdWx0KHMsbyl7cmV0dXJue3ZhbHVlOnMsZG9uZTpvfX1mdW5jdGlvbiByZWFkQW5kUmVzb2x2ZShzKXt2YXIgbz1zW3ddO2lmKG51bGwhPT1vKXt2YXIgaT1zWyRdLnJlYWQoKTtudWxsIT09aSYmKHNbTF09bnVsbCxzW3ddPW51bGwsc1t4XT1udWxsLG8oY3JlYXRlSXRlclJlc3VsdChpLCExKSkpfX1mdW5jdGlvbiBvblJlYWRhYmxlKHMpe3UubmV4dFRpY2socmVhZEFuZFJlc29sdmUscyl9dmFyIFY9T2JqZWN0LmdldFByb3RvdHlwZU9mKChmdW5jdGlvbigpe30pKSxVPU9iamVjdC5zZXRQcm90b3R5cGVPZigoX2RlZmluZVByb3BlcnR5KGE9e2dldCBzdHJlYW0oKXtyZXR1cm4gdGhpc1skXX0sbmV4dDpmdW5jdGlvbiBuZXh0KCl7dmFyIHM9dGhpcyxvPXRoaXNbQ107aWYobnVsbCE9PW8pcmV0dXJuIFByb21pc2UucmVqZWN0KG8pO2lmKHRoaXNbal0pcmV0dXJuIFByb21pc2UucmVzb2x2ZShjcmVhdGVJdGVyUmVzdWx0KHZvaWQgMCwhMCkpO2lmKHRoaXNbJF0uZGVzdHJveWVkKXJldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24obyxpKXt1Lm5leHRUaWNrKChmdW5jdGlvbigpe3NbQ10/aShzW0NdKTpvKGNyZWF0ZUl0ZXJSZXN1bHQodm9pZCAwLCEwKSl9KSl9KSk7dmFyIGksYT10aGlzW0xdO2lmKGEpaT1uZXcgUHJvbWlzZShmdW5jdGlvbiB3cmFwRm9yTmV4dChzLG8pe3JldHVybiBmdW5jdGlvbihpLGEpe3MudGhlbigoZnVuY3Rpb24oKXtvW2pdP2koY3JlYXRlSXRlclJlc3VsdCh2b2lkIDAsITApKTpvW0JdKGksYSl9KSxhKX19KGEsdGhpcykpO2Vsc2V7dmFyIF89dGhpc1skXS5yZWFkKCk7aWYobnVsbCE9PV8pcmV0dXJuIFByb21pc2UucmVzb2x2ZShjcmVhdGVJdGVyUmVzdWx0KF8sITEpKTtpPW5ldyBQcm9taXNlKHRoaXNbQl0pfXJldHVybiB0aGlzW0xdPWksaX19LFN5bWJvbC5hc3luY0l0ZXJhdG9yLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLF9kZWZpbmVQcm9wZXJ0eShhLCJyZXR1cm4iLChmdW5jdGlvbiBfcmV0dXJuKCl7dmFyIHM9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKG8saSl7c1skXS5kZXN0cm95KG51bGwsKGZ1bmN0aW9uKHMpe3M/aShzKTpvKGNyZWF0ZUl0ZXJSZXN1bHQodm9pZCAwLCEwKSl9KSl9KSl9KSksYSksVik7cy5leHBvcnRzPWZ1bmN0aW9uIGNyZWF0ZVJlYWRhYmxlU3RyZWFtQXN5bmNJdGVyYXRvcihzKXt2YXIgbyxpPU9iamVjdC5jcmVhdGUoVSwoX2RlZmluZVByb3BlcnR5KG89e30sJCx7dmFsdWU6cyx3cml0YWJsZTohMH0pLF9kZWZpbmVQcm9wZXJ0eShvLHcse3ZhbHVlOm51bGwsd3JpdGFibGU6ITB9KSxfZGVmaW5lUHJvcGVydHkobyx4LHt2YWx1ZTpudWxsLHdyaXRhYmxlOiEwfSksX2RlZmluZVByb3BlcnR5KG8sQyx7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0pLF9kZWZpbmVQcm9wZXJ0eShvLGose3ZhbHVlOnMuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCx3cml0YWJsZTohMH0pLF9kZWZpbmVQcm9wZXJ0eShvLEIse3ZhbHVlOmZ1bmN0aW9uIHZhbHVlKHMsbyl7dmFyIGE9aVskXS5yZWFkKCk7YT8oaVtMXT1udWxsLGlbd109bnVsbCxpW3hdPW51bGwscyhjcmVhdGVJdGVyUmVzdWx0KGEsITEpKSk6KGlbd109cyxpW3hdPW8pfSx3cml0YWJsZTohMH0pLG8pKTtyZXR1cm4gaVtMXT1udWxsLF8ocywoZnVuY3Rpb24ocyl7aWYocyYmIkVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFIiE9PXMuY29kZSl7dmFyIG89aVt4XTtyZXR1cm4gbnVsbCE9PW8mJihpW0xdPW51bGwsaVt3XT1udWxsLGlbeF09bnVsbCxvKHMpKSx2b2lkKGlbQ109cyl9dmFyIGE9aVt3XTtudWxsIT09YSYmKGlbTF09bnVsbCxpW3ddPW51bGwsaVt4XT1udWxsLGEoY3JlYXRlSXRlclJlc3VsdCh2b2lkIDAsITApKSksaVtqXT0hMH0pKSxzLm9uKCJyZWFkYWJsZSIsb25SZWFkYWJsZS5iaW5kKG51bGwsaSkpLGl9fSwzMTEwOihzLG8saSk9Pntjb25zdCBhPWkoNTE4NyksdT1pKDg1MDE1KSxfPWkoOTgwMjMpLHc9aSg1MzgxMikseD1pKDIzODA1KSxDPWkoODUxMDUpLGo9aSg4NjgwNCk7Y2xhc3MgTmFtZXNwYWNle2NvbnN0cnVjdG9yKHMpe3RoaXMuZWxlbWVudE1hcD17fSx0aGlzLmVsZW1lbnREZXRlY3Rpb249W10sdGhpcy5FbGVtZW50PWouRWxlbWVudCx0aGlzLktleVZhbHVlUGFpcj1qLktleVZhbHVlUGFpcixzJiZzLm5vRGVmYXVsdHx8dGhpcy51c2VEZWZhdWx0KCksdGhpcy5fYXR0cmlidXRlRWxlbWVudEtleXM9W10sdGhpcy5fYXR0cmlidXRlRWxlbWVudEFycmF5S2V5cz1bXX11c2Uocyl7cmV0dXJuIHMubmFtZXNwYWNlJiZzLm5hbWVzcGFjZSh7YmFzZTp0aGlzfSkscy5sb2FkJiZzLmxvYWQoe2Jhc2U6dGhpc30pLHRoaXN9dXNlRGVmYXVsdCgpe3JldHVybiB0aGlzLnJlZ2lzdGVyKCJudWxsIixqLk51bGxFbGVtZW50KS5yZWdpc3Rlcigic3RyaW5nIixqLlN0cmluZ0VsZW1lbnQpLnJlZ2lzdGVyKCJudW1iZXIiLGouTnVtYmVyRWxlbWVudCkucmVnaXN0ZXIoImJvb2xlYW4iLGouQm9vbGVhbkVsZW1lbnQpLnJlZ2lzdGVyKCJhcnJheSIsai5BcnJheUVsZW1lbnQpLnJlZ2lzdGVyKCJvYmplY3QiLGouT2JqZWN0RWxlbWVudCkucmVnaXN0ZXIoIm1lbWJlciIsai5NZW1iZXJFbGVtZW50KS5yZWdpc3RlcigicmVmIixqLlJlZkVsZW1lbnQpLnJlZ2lzdGVyKCJsaW5rIixqLkxpbmtFbGVtZW50KSx0aGlzLmRldGVjdChhLGouTnVsbEVsZW1lbnQsITEpLmRldGVjdCh1LGouU3RyaW5nRWxlbWVudCwhMSkuZGV0ZWN0KF8sai5OdW1iZXJFbGVtZW50LCExKS5kZXRlY3QodyxqLkJvb2xlYW5FbGVtZW50LCExKS5kZXRlY3QoQXJyYXkuaXNBcnJheSxqLkFycmF5RWxlbWVudCwhMSkuZGV0ZWN0KHgsai5PYmplY3RFbGVtZW50LCExKSx0aGlzfXJlZ2lzdGVyKHMsbyl7cmV0dXJuIHRoaXMuX2VsZW1lbnRzPXZvaWQgMCx0aGlzLmVsZW1lbnRNYXBbc109byx0aGlzfXVucmVnaXN0ZXIocyl7cmV0dXJuIHRoaXMuX2VsZW1lbnRzPXZvaWQgMCxkZWxldGUgdGhpcy5lbGVtZW50TWFwW3NdLHRoaXN9ZGV0ZWN0KHMsbyxpKXtyZXR1cm4gdm9pZCAwPT09aXx8aT90aGlzLmVsZW1lbnREZXRlY3Rpb24udW5zaGlmdChbcyxvXSk6dGhpcy5lbGVtZW50RGV0ZWN0aW9uLnB1c2goW3Msb10pLHRoaXN9dG9FbGVtZW50KHMpe2lmKHMgaW5zdGFuY2VvZiB0aGlzLkVsZW1lbnQpcmV0dXJuIHM7bGV0IG87Zm9yKGxldCBpPTA7aTx0aGlzLmVsZW1lbnREZXRlY3Rpb24ubGVuZ3RoO2krPTEpe2NvbnN0IGE9dGhpcy5lbGVtZW50RGV0ZWN0aW9uW2ldWzBdLHU9dGhpcy5lbGVtZW50RGV0ZWN0aW9uW2ldWzFdO2lmKGEocykpe289bmV3IHUocyk7YnJlYWt9fXJldHVybiBvfWdldEVsZW1lbnRDbGFzcyhzKXtjb25zdCBvPXRoaXMuZWxlbWVudE1hcFtzXTtyZXR1cm4gdm9pZCAwPT09bz90aGlzLkVsZW1lbnQ6b31mcm9tUmVmcmFjdChzKXtyZXR1cm4gdGhpcy5zZXJpYWxpc2VyLmRlc2VyaWFsaXNlKHMpfXRvUmVmcmFjdChzKXtyZXR1cm4gdGhpcy5zZXJpYWxpc2VyLnNlcmlhbGlzZShzKX1nZXQgZWxlbWVudHMoKXtyZXR1cm4gdm9pZCAwPT09dGhpcy5fZWxlbWVudHMmJih0aGlzLl9lbGVtZW50cz17RWxlbWVudDp0aGlzLkVsZW1lbnR9LE9iamVjdC5rZXlzKHRoaXMuZWxlbWVudE1hcCkuZm9yRWFjaCgocz0+e2NvbnN0IG89c1swXS50b1VwcGVyQ2FzZSgpK3Muc3Vic3RyKDEpO3RoaXMuX2VsZW1lbnRzW29dPXRoaXMuZWxlbWVudE1hcFtzXX0pKSksdGhpcy5fZWxlbWVudHN9Z2V0IHNlcmlhbGlzZXIoKXtyZXR1cm4gbmV3IEModGhpcyl9fUMucHJvdG90eXBlLk5hbWVzcGFjZT1OYW1lc3BhY2Uscy5leHBvcnRzPU5hbWVzcGFjZX0sMzEyMToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNjU0ODIpLHU9TWF0aC5taW47cy5leHBvcnRzPWZ1bmN0aW9uKHMpe3ZhciBvPWEocyk7cmV0dXJuIG8+MD91KG8sOTAwNzE5OTI1NDc0MDk5MSk6MH19LDMyMDk6KHMsbyxpKT0+e3ZhciBhPWkoOTE1OTYpLHU9aSg1MzMyMCksXz1pKDM2MzA2KSx3PSJfX2xvZGFzaF9wbGFjZWhvbGRlcl9fIix4PTEyOCxDPU1hdGgubWluO3MuZXhwb3J0cz1mdW5jdGlvbiBtZXJnZURhdGEocyxvKXt2YXIgaT1zWzFdLGo9b1sxXSxMPWl8aixCPUw8MTMxLCQ9aj09eCYmOD09aXx8aj09eCYmMjU2PT1pJiZzWzddLmxlbmd0aDw9b1s4XXx8Mzg0PT1qJiZvWzddLmxlbmd0aDw9b1s4XSYmOD09aTtpZighQiYmISQpcmV0dXJuIHM7MSZqJiYoc1syXT1vWzJdLEx8PTEmaT8wOjQpO3ZhciBWPW9bM107aWYoVil7dmFyIFU9c1szXTtzWzNdPVU/YShVLFYsb1s0XSk6VixzWzRdPVU/XyhzWzNdLHcpOm9bNF19cmV0dXJuKFY9b1s1XSkmJihVPXNbNV0sc1s1XT1VP3UoVSxWLG9bNl0pOlYsc1s2XT1VP18oc1s1XSx3KTpvWzZdKSwoVj1vWzddKSYmKHNbN109ViksaiZ4JiYoc1s4XT1udWxsPT1zWzhdP29bOF06QyhzWzhdLG9bOF0pKSxudWxsPT1zWzldJiYoc1s5XT1vWzldKSxzWzBdPW9bMF0sc1sxXT1MLHN9fSwzNjUwOihzLG8saSk9Pnt2YXIgYT1pKDc0MzM1KShPYmplY3Qua2V5cyxPYmplY3QpO3MuZXhwb3J0cz1hfSwzNjU2OihzLG8saSk9PntzPWkubm1kKHMpO3ZhciBhPWkoOTMyNSksdT1pKDg5OTM1KSxfPW8mJiFvLm5vZGVUeXBlJiZvLHc9XyYmcyYmIXMubm9kZVR5cGUmJnMseD13JiZ3LmV4cG9ydHM9PT1fP2EuQnVmZmVyOnZvaWQgMCxDPSh4P3guaXNCdWZmZXI6dm9pZCAwKXx8dTtzLmV4cG9ydHM9Q30sNDUwOToocyxvLGkpPT57dmFyIGE9aSgxMjY1MSk7cy5leHBvcnRzPWZ1bmN0aW9uIG1hcENhY2hlSGFzKHMpe3JldHVybiBhKHRoaXMscykuaGFzKHMpfX0sNDY0MDpzPT57InVzZSBzdHJpY3QiO3ZhciBvPVN0cmluZztzLmV4cG9ydHM9ZnVuY3Rpb24ocyl7dHJ5e3JldHVybiBvKHMpfWNhdGNoKHMpe3JldHVybiJPYmplY3QifX19LDQ2NjQ6KHMsbyxpKT0+e3ZhciBhPWkoNzk3NzApLHU9aSg2MzM0NSksXz1PYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLHc9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyx4PXc/ZnVuY3Rpb24ocyl7cmV0dXJuIG51bGw9PXM/W106KHM9T2JqZWN0KHMpLGEodyhzKSwoZnVuY3Rpb24obyl7cmV0dXJuIF8uY2FsbChzLG8pfSkpKX06dTtzLmV4cG9ydHM9eH0sNDkwMToocyxvLGkpPT57dmFyIGE9aSg3MjU1MiksdT1pKDMwMjk0KSxfPWkoNDAzNDYpLHc9e307d1siW29iamVjdCBGbG9hdDMyQXJyYXldIl09d1siW29iamVjdCBGbG9hdDY0QXJyYXldIl09d1siW29iamVjdCBJbnQ4QXJyYXldIl09d1siW29iamVjdCBJbnQxNkFycmF5XSJdPXdbIltvYmplY3QgSW50MzJBcnJheV0iXT13WyJbb2JqZWN0IFVpbnQ4QXJyYXldIl09d1siW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iXT13WyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPXdbIltvYmplY3QgVWludDMyQXJyYXldIl09ITAsd1siW29iamVjdCBBcmd1bWVudHNdIl09d1siW29iamVjdCBBcnJheV0iXT13WyJbb2JqZWN0IEFycmF5QnVmZmVyXSJdPXdbIltvYmplY3QgQm9vbGVhbl0iXT13WyJbb2JqZWN0IERhdGFWaWV3XSJdPXdbIltvYmplY3QgRGF0ZV0iXT13WyJbb2JqZWN0IEVycm9yXSJdPXdbIltvYmplY3QgRnVuY3Rpb25dIl09d1siW29iamVjdCBNYXBdIl09d1siW29iamVjdCBOdW1iZXJdIl09d1siW29iamVjdCBPYmplY3RdIl09d1siW29iamVjdCBSZWdFeHBdIl09d1siW29iamVjdCBTZXRdIl09d1siW29iamVjdCBTdHJpbmddIl09d1siW29iamVjdCBXZWFrTWFwXSJdPSExLHMuZXhwb3J0cz1mdW5jdGlvbiBiYXNlSXNUeXBlZEFycmF5KHMpe3JldHVybiBfKHMpJiZ1KHMubGVuZ3RoKSYmISF3W2EocyldfX0sNDk5MzoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMTY5NDYpLHU9aSg3NDIzOSk7cy5leHBvcnRzPWZ1bmN0aW9uKHMpe3JldHVybiBhKHUocykpfX0sNTE4NzpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIGlzTnVsbChzKXtyZXR1cm4gbnVsbD09PXN9fSw1NDE5OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvLGksYSl7dmFyIHU9bmV3IEJsb2Iodm9pZCAwIT09YT9bYSxzXTpbc10se3R5cGU6aXx8ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSJ9KTtpZih2b2lkIDAhPT13aW5kb3cubmF2aWdhdG9yLm1zU2F2ZUJsb2Ipd2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKHUsbyk7ZWxzZXt2YXIgXz13aW5kb3cuVVJMJiZ3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTD93aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTCh1KTp3aW5kb3cud2Via2l0VVJMLmNyZWF0ZU9iamVjdFVSTCh1KSx3PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTt3LnN0eWxlLmRpc3BsYXk9Im5vbmUiLHcuaHJlZj1fLHcuc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsbyksdm9pZCAwPT09dy5kb3dubG9hZCYmdy5zZXRBdHRyaWJ1dGUoInRhcmdldCIsIl9ibGFuayIpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodyksdy5jbGljaygpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh3KSx3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTChfKX0pLDIwMCl9fX0sNTU1NjoocyxvLGkpPT57cy5leHBvcnRzPWkoMjY5NCkoKX0sNTg2MToocyxvLGkpPT57dmFyIGE9aSg1NTU4MCksdT1pKDY4MjIzKSxfPWkoMzI4MDQpLHc9aSg3NjU0NSkseD1pKDI4MzAzKSxDPWkoNzI1NTIpLGo9aSg0NzQ3MyksTD0iW29iamVjdCBNYXBdIixCPSJbb2JqZWN0IFByb21pc2VdIiwkPSJbb2JqZWN0IFNldF0iLFY9IltvYmplY3QgV2Vha01hcF0iLFU9IltvYmplY3QgRGF0YVZpZXddIix6PWooYSksWT1qKHUpLFo9aihfKSxlZT1qKHcpLGllPWooeCksYWU9QzsoYSYmYWUobmV3IGEobmV3IEFycmF5QnVmZmVyKDEpKSkhPVV8fHUmJmFlKG5ldyB1KSE9THx8XyYmYWUoXy5yZXNvbHZlKCkpIT1CfHx3JiZhZShuZXcgdykhPSR8fHgmJmFlKG5ldyB4KSE9VikmJihhZT1mdW5jdGlvbihzKXt2YXIgbz1DKHMpLGk9IltvYmplY3QgT2JqZWN0XSI9PW8/cy5jb25zdHJ1Y3Rvcjp2b2lkIDAsYT1pP2ooaSk6IiI7aWYoYSlzd2l0Y2goYSl7Y2FzZSB6OnJldHVybiBVO2Nhc2UgWTpyZXR1cm4gTDtjYXNlIFo6cmV0dXJuIEI7Y2FzZSBlZTpyZXR1cm4gJDtjYXNlIGllOnJldHVybiBWfXJldHVybiBvfSkscy5leHBvcnRzPWFlfSw2MDQ4OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gbmVnYXRlKHMpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBzKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZnVuY3Rpb24iKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1hcmd1bWVudHM7c3dpdGNoKG8ubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIXMuY2FsbCh0aGlzKTtjYXNlIDE6cmV0dXJuIXMuY2FsbCh0aGlzLG9bMF0pO2Nhc2UgMjpyZXR1cm4hcy5jYWxsKHRoaXMsb1swXSxvWzFdKTtjYXNlIDM6cmV0dXJuIXMuY2FsbCh0aGlzLG9bMF0sb1sxXSxvWzJdKX1yZXR1cm4hcy5hcHBseSh0aGlzLG8pfX19LDYyMDU6cz0+e3MuZXhwb3J0cz17Uk9PVDowLEdST1VQOjEsUE9TSVRJT046MixTRVQ6MyxSQU5HRTo0LFJFUEVUSVRJT046NSxSRUZFUkVOQ0U6NixDSEFSOjd9fSw2MjMzOihzLG8saSk9Pntjb25zdCBhPWkoNjA0OCksdT1pKDEwMzE2KSxfPWkoOTIzNDApO2NsYXNzIEFycmF5RWxlbWVudCBleHRlbmRzIHV7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHN8fFtdLG8saSksdGhpcy5lbGVtZW50PSJhcnJheSJ9cHJpbWl0aXZlKCl7cmV0dXJuImFycmF5In1nZXQocyl7cmV0dXJuIHRoaXMuY29udGVudFtzXX1nZXRWYWx1ZShzKXtjb25zdCBvPXRoaXMuZ2V0KHMpO2lmKG8pcmV0dXJuIG8udG9WYWx1ZSgpfWdldEluZGV4KHMpe3JldHVybiB0aGlzLmNvbnRlbnRbc119c2V0KHMsbyl7cmV0dXJuIHRoaXMuY29udGVudFtzXT10aGlzLnJlZnJhY3QobyksdGhpc31yZW1vdmUocyl7Y29uc3Qgbz10aGlzLmNvbnRlbnQuc3BsaWNlKHMsMSk7cmV0dXJuIG8ubGVuZ3RoP29bMF06bnVsbH1tYXAocyxvKXtyZXR1cm4gdGhpcy5jb250ZW50Lm1hcChzLG8pfWZsYXRNYXAocyxvKXtyZXR1cm4gdGhpcy5tYXAocyxvKS5yZWR1Y2UoKChzLG8pPT5zLmNvbmNhdChvKSksW10pfWNvbXBhY3RNYXAocyxvKXtjb25zdCBpPVtdO3JldHVybiB0aGlzLmZvckVhY2goKGE9Pntjb25zdCB1PXMuYmluZChvKShhKTt1JiZpLnB1c2godSl9KSksaX1maWx0ZXIocyxvKXtyZXR1cm4gbmV3IF8odGhpcy5jb250ZW50LmZpbHRlcihzLG8pKX1yZWplY3QocyxvKXtyZXR1cm4gdGhpcy5maWx0ZXIoYShzKSxvKX1yZWR1Y2UocyxvKXtsZXQgaSxhO3ZvaWQgMCE9PW8/KGk9MCxhPXRoaXMucmVmcmFjdChvKSk6KGk9MSxhPSJvYmplY3QiPT09dGhpcy5wcmltaXRpdmUoKT90aGlzLmZpcnN0LnZhbHVlOnRoaXMuZmlyc3QpO2ZvcihsZXQgbz1pO288dGhpcy5sZW5ndGg7bys9MSl7Y29uc3QgaT10aGlzLmNvbnRlbnRbb107YT0ib2JqZWN0Ij09PXRoaXMucHJpbWl0aXZlKCk/dGhpcy5yZWZyYWN0KHMoYSxpLnZhbHVlLGkua2V5LGksdGhpcykpOnRoaXMucmVmcmFjdChzKGEsaSxvLHRoaXMpKX1yZXR1cm4gYX1mb3JFYWNoKHMsbyl7dGhpcy5jb250ZW50LmZvckVhY2goKChpLGEpPT57cy5iaW5kKG8pKGksdGhpcy5yZWZyYWN0KGEpKX0pKX1zaGlmdCgpe3JldHVybiB0aGlzLmNvbnRlbnQuc2hpZnQoKX11bnNoaWZ0KHMpe3RoaXMuY29udGVudC51bnNoaWZ0KHRoaXMucmVmcmFjdChzKSl9cHVzaChzKXtyZXR1cm4gdGhpcy5jb250ZW50LnB1c2godGhpcy5yZWZyYWN0KHMpKSx0aGlzfWFkZChzKXt0aGlzLnB1c2gocyl9ZmluZEVsZW1lbnRzKHMsbyl7Y29uc3QgaT1vfHx7fSxhPSEhaS5yZWN1cnNpdmUsdT12b2lkIDA9PT1pLnJlc3VsdHM/W106aS5yZXN1bHRzO3JldHVybiB0aGlzLmZvckVhY2goKChvLGksXyk9PnthJiZ2b2lkIDAhPT1vLmZpbmRFbGVtZW50cyYmby5maW5kRWxlbWVudHMocyx7cmVzdWx0czp1LHJlY3Vyc2l2ZTphfSkscyhvLGksXykmJnUucHVzaChvKX0pKSx1fWZpbmQocyl7cmV0dXJuIG5ldyBfKHRoaXMuZmluZEVsZW1lbnRzKHMse3JlY3Vyc2l2ZTohMH0pKX1maW5kQnlFbGVtZW50KHMpe3JldHVybiB0aGlzLmZpbmQoKG89Pm8uZWxlbWVudD09PXMpKX1maW5kQnlDbGFzcyhzKXtyZXR1cm4gdGhpcy5maW5kKChvPT5vLmNsYXNzZXMuaW5jbHVkZXMocykpKX1nZXRCeUlkKHMpe3JldHVybiB0aGlzLmZpbmQoKG89Pm8uaWQudG9WYWx1ZSgpPT09cykpLmZpcnN0fWluY2x1ZGVzKHMpe3JldHVybiB0aGlzLmNvbnRlbnQuc29tZSgobz0+by5lcXVhbHMocykpKX1jb250YWlucyhzKXtyZXR1cm4gdGhpcy5pbmNsdWRlcyhzKX1lbXB0eSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcihbXSl9ImZhbnRhc3ktbGFuZC9lbXB0eSIoKXtyZXR1cm4gdGhpcy5lbXB0eSgpfWNvbmNhdChzKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5jb250ZW50LmNvbmNhdChzLmNvbnRlbnQpKX0iZmFudGFzeS1sYW5kL2NvbmNhdCIocyl7cmV0dXJuIHRoaXMuY29uY2F0KHMpfSJmYW50YXN5LWxhbmQvbWFwIihzKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5tYXAocykpfSJmYW50YXN5LWxhbmQvY2hhaW4iKHMpe3JldHVybiB0aGlzLm1hcCgobz0+cyhvKSksdGhpcykucmVkdWNlKCgocyxvKT0+cy5jb25jYXQobykpLHRoaXMuZW1wdHkoKSl9ImZhbnRhc3ktbGFuZC9maWx0ZXIiKHMpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLmNvbnRlbnQuZmlsdGVyKHMpKX0iZmFudGFzeS1sYW5kL3JlZHVjZSIocyxvKXtyZXR1cm4gdGhpcy5jb250ZW50LnJlZHVjZShzLG8pfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5jb250ZW50Lmxlbmd0aH1nZXQgaXNFbXB0eSgpe3JldHVybiAwPT09dGhpcy5jb250ZW50Lmxlbmd0aH1nZXQgZmlyc3QoKXtyZXR1cm4gdGhpcy5nZXRJbmRleCgwKX1nZXQgc2Vjb25kKCl7cmV0dXJuIHRoaXMuZ2V0SW5kZXgoMSl9Z2V0IGxhc3QoKXtyZXR1cm4gdGhpcy5nZXRJbmRleCh0aGlzLmxlbmd0aC0xKX19QXJyYXlFbGVtZW50LmVtcHR5PWZ1bmN0aW9uIGVtcHR5KCl7cmV0dXJuIG5ldyB0aGlzfSxBcnJheUVsZW1lbnRbImZhbnRhc3ktbGFuZC9lbXB0eSJdPUFycmF5RWxlbWVudC5lbXB0eSwidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmKEFycmF5RWxlbWVudC5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbiBzeW1ib2woKXtyZXR1cm4gdGhpcy5jb250ZW50W1N5bWJvbC5pdGVyYXRvcl0oKX0pLHMuZXhwb3J0cz1BcnJheUVsZW1lbnR9LDY0OTk6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDE5MDcpLHU9MCxfPU1hdGgucmFuZG9tKCksdz1hKDEuLnRvU3RyaW5nKTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyl7cmV0dXJuIlN5bWJvbCgiKyh2b2lkIDA9PT1zPyIiOnMpKyIpXyIrdygrK3UrXywzNil9fSw2OTI1OnM9PnsidXNlIHN0cmljdCI7cy5leHBvcnRzPSJTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCJ9LDcwNTc6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDExNDcwKS5jaGFyQXQsdT1pKDkwMTYwKSxfPWkoNjQ5MzIpLHc9aSg2MDE4MykseD1pKDU5NTUwKSxDPSJTdHJpbmcgSXRlcmF0b3IiLGo9Xy5zZXQsTD1fLmdldHRlckZvcihDKTt3KFN0cmluZywiU3RyaW5nIiwoZnVuY3Rpb24ocyl7aih0aGlzLHt0eXBlOkMsc3RyaW5nOnUocyksaW5kZXg6MH0pfSksKGZ1bmN0aW9uIG5leHQoKXt2YXIgcyxvPUwodGhpcyksaT1vLnN0cmluZyx1PW8uaW5kZXg7cmV0dXJuIHU+PWkubGVuZ3RoP3godm9pZCAwLCEwKToocz1hKGksdSksby5pbmRleCs9cy5sZW5ndGgseChzLCExKSl9KSl9LDczMDk6KHMsbyxpKT0+e3ZhciBhPWkoNjIwMDYpKGkoMjQ3MTMpKTtzLmV4cG9ydHM9YX0sNzM3NjpzPT57InVzZSBzdHJpY3QiO3MuZXhwb3J0cz0hMH0sNzQ2MzoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoOTg4MjgpLHU9aSg2MjI1MCksXz0vI3xcLnByb3RvdHlwZVwuLyxpc0ZvcmNlZD1mdW5jdGlvbihzLG8pe3ZhciBpPXhbdyhzKV07cmV0dXJuIGk9PT1qfHxpIT09QyYmKHUobyk/YShvKTohIW8pfSx3PWlzRm9yY2VkLm5vcm1hbGl6ZT1mdW5jdGlvbihzKXtyZXR1cm4gU3RyaW5nKHMpLnJlcGxhY2UoXywiLiIpLnRvTG93ZXJDYXNlKCl9LHg9aXNGb3JjZWQuZGF0YT17fSxDPWlzRm9yY2VkLk5BVElWRT0iTiIsaj1pc0ZvcmNlZC5QT0xZRklMTD0iUCI7cy5leHBvcnRzPWlzRm9yY2VkfSw3NjY2OihzLG8saSk9Pnt2YXIgYT1pKDg0ODUxKSx1PWkoOTUzKTtmdW5jdGlvbiBfZXh0ZW5kcygpe3ZhciBvO3JldHVybiBzLmV4cG9ydHM9X2V4dGVuZHM9YT91KG89YSkuY2FsbChvKTpmdW5jdGlvbihzKXtmb3IodmFyIG89MTtvPGFyZ3VtZW50cy5sZW5ndGg7bysrKXt2YXIgaT1hcmd1bWVudHNbb107Zm9yKHZhciBhIGluIGkpKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksYSkmJihzW2FdPWlbYV0pfXJldHVybiBzfSxzLmV4cG9ydHMuX19lc01vZHVsZT0hMCxzLmV4cG9ydHMuZGVmYXVsdD1zLmV4cG9ydHMsX2V4dGVuZHMuYXBwbHkobnVsbCxhcmd1bWVudHMpfXMuZXhwb3J0cz1fZXh0ZW5kcyxzLmV4cG9ydHMuX19lc01vZHVsZT0hMCxzLmV4cG9ydHMuZGVmYXVsdD1zLmV4cG9ydHN9LDgwNDg6KHMsbyxpKT0+e2NvbnN0IGE9aSg2MjA1KTtvLndvcmRCb3VuZGFyeT0oKT0+KHt0eXBlOmEuUE9TSVRJT04sdmFsdWU6ImIifSksby5ub25Xb3JkQm91bmRhcnk9KCk9Pih7dHlwZTphLlBPU0lUSU9OLHZhbHVlOiJCIn0pLG8uYmVnaW49KCk9Pih7dHlwZTphLlBPU0lUSU9OLHZhbHVlOiJeIn0pLG8uZW5kPSgpPT4oe3R5cGU6YS5QT1NJVElPTix2YWx1ZToiJCJ9KX0sODA2ODpzPT57InVzZSBzdHJpY3QiO3ZhciBvPSgoKT0+e3ZhciBzPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsaT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyxhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsdT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LF89T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxfX2RlZk5vcm1hbFByb3A9KG8saSxhKT0+aSBpbiBvP3MobyxpLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTphfSk6b1tpXT1hLF9fc3ByZWFkVmFsdWVzPShzLG8pPT57Zm9yKHZhciBpIGluIG98fChvPXt9KSl1LmNhbGwobyxpKSYmX19kZWZOb3JtYWxQcm9wKHMsaSxvW2ldKTtpZihhKWZvcih2YXIgaSBvZiBhKG8pKV8uY2FsbChvLGkpJiZfX2RlZk5vcm1hbFByb3AocyxpLG9baV0pO3JldHVybiBzfSxfX3B1YmxpY0ZpZWxkPShzLG8saSk9Pl9fZGVmTm9ybWFsUHJvcChzLCJzeW1ib2wiIT10eXBlb2Ygbz9vKyIiOm8saSksdz17fTsoKG8saSk9Pntmb3IodmFyIGEgaW4gaSlzKG8sYSx7Z2V0OmlbYV0sZW51bWVyYWJsZTohMH0pfSkodyx7REVGQVVMVF9PUFRJT05TOigpPT5DLERFRkFVTFRfVVVJRF9MRU5HVEg6KCk9PngsZGVmYXVsdDooKT0+Qn0pO3ZhciB4PTYsQz17ZGljdGlvbmFyeToiYWxwaGFudW0iLHNodWZmbGU6ITAsZGVidWc6ITEsbGVuZ3RoOngsY291bnRlcjowfSxqPWNsYXNzIF9TaG9ydFVuaXF1ZUlke2NvbnN0cnVjdG9yKHM9e30pe19fcHVibGljRmllbGQodGhpcywiY291bnRlciIpLF9fcHVibGljRmllbGQodGhpcywiZGVidWciKSxfX3B1YmxpY0ZpZWxkKHRoaXMsImRpY3QiKSxfX3B1YmxpY0ZpZWxkKHRoaXMsInZlcnNpb24iKSxfX3B1YmxpY0ZpZWxkKHRoaXMsImRpY3RJbmRleCIsMCksX19wdWJsaWNGaWVsZCh0aGlzLCJkaWN0UmFuZ2UiLFtdKSxfX3B1YmxpY0ZpZWxkKHRoaXMsImxvd2VyQm91bmQiLDApLF9fcHVibGljRmllbGQodGhpcywidXBwZXJCb3VuZCIsMCksX19wdWJsaWNGaWVsZCh0aGlzLCJkaWN0TGVuZ3RoIiwwKSxfX3B1YmxpY0ZpZWxkKHRoaXMsInV1aWRMZW5ndGgiKSxfX3B1YmxpY0ZpZWxkKHRoaXMsIl9kaWdpdF9maXJzdF9hc2NpaSIsNDgpLF9fcHVibGljRmllbGQodGhpcywiX2RpZ2l0X2xhc3RfYXNjaWkiLDU4KSxfX3B1YmxpY0ZpZWxkKHRoaXMsIl9hbHBoYV9sb3dlcl9maXJzdF9hc2NpaSIsOTcpLF9fcHVibGljRmllbGQodGhpcywiX2FscGhhX2xvd2VyX2xhc3RfYXNjaWkiLDEyMyksX19wdWJsaWNGaWVsZCh0aGlzLCJfaGV4X2xhc3RfYXNjaWkiLDEwMyksX19wdWJsaWNGaWVsZCh0aGlzLCJfYWxwaGFfdXBwZXJfZmlyc3RfYXNjaWkiLDY1KSxfX3B1YmxpY0ZpZWxkKHRoaXMsIl9hbHBoYV91cHBlcl9sYXN0X2FzY2lpIiw5MSksX19wdWJsaWNGaWVsZCh0aGlzLCJfbnVtYmVyX2RpY3RfcmFuZ2VzIix7ZGlnaXRzOlt0aGlzLl9kaWdpdF9maXJzdF9hc2NpaSx0aGlzLl9kaWdpdF9sYXN0X2FzY2lpXX0pLF9fcHVibGljRmllbGQodGhpcywiX2FscGhhX2RpY3RfcmFuZ2VzIix7bG93ZXJDYXNlOlt0aGlzLl9hbHBoYV9sb3dlcl9maXJzdF9hc2NpaSx0aGlzLl9hbHBoYV9sb3dlcl9sYXN0X2FzY2lpXSx1cHBlckNhc2U6W3RoaXMuX2FscGhhX3VwcGVyX2ZpcnN0X2FzY2lpLHRoaXMuX2FscGhhX3VwcGVyX2xhc3RfYXNjaWldfSksX19wdWJsaWNGaWVsZCh0aGlzLCJfYWxwaGFfbG93ZXJfZGljdF9yYW5nZXMiLHtsb3dlckNhc2U6W3RoaXMuX2FscGhhX2xvd2VyX2ZpcnN0X2FzY2lpLHRoaXMuX2FscGhhX2xvd2VyX2xhc3RfYXNjaWldfSksX19wdWJsaWNGaWVsZCh0aGlzLCJfYWxwaGFfdXBwZXJfZGljdF9yYW5nZXMiLHt1cHBlckNhc2U6W3RoaXMuX2FscGhhX3VwcGVyX2ZpcnN0X2FzY2lpLHRoaXMuX2FscGhhX3VwcGVyX2xhc3RfYXNjaWldfSksX19wdWJsaWNGaWVsZCh0aGlzLCJfYWxwaGFudW1fZGljdF9yYW5nZXMiLHtkaWdpdHM6W3RoaXMuX2RpZ2l0X2ZpcnN0X2FzY2lpLHRoaXMuX2RpZ2l0X2xhc3RfYXNjaWldLGxvd2VyQ2FzZTpbdGhpcy5fYWxwaGFfbG93ZXJfZmlyc3RfYXNjaWksdGhpcy5fYWxwaGFfbG93ZXJfbGFzdF9hc2NpaV0sdXBwZXJDYXNlOlt0aGlzLl9hbHBoYV91cHBlcl9maXJzdF9hc2NpaSx0aGlzLl9hbHBoYV91cHBlcl9sYXN0X2FzY2lpXX0pLF9fcHVibGljRmllbGQodGhpcywiX2FscGhhbnVtX2xvd2VyX2RpY3RfcmFuZ2VzIix7ZGlnaXRzOlt0aGlzLl9kaWdpdF9maXJzdF9hc2NpaSx0aGlzLl9kaWdpdF9sYXN0X2FzY2lpXSxsb3dlckNhc2U6W3RoaXMuX2FscGhhX2xvd2VyX2ZpcnN0X2FzY2lpLHRoaXMuX2FscGhhX2xvd2VyX2xhc3RfYXNjaWldfSksX19wdWJsaWNGaWVsZCh0aGlzLCJfYWxwaGFudW1fdXBwZXJfZGljdF9yYW5nZXMiLHtkaWdpdHM6W3RoaXMuX2RpZ2l0X2ZpcnN0X2FzY2lpLHRoaXMuX2RpZ2l0X2xhc3RfYXNjaWldLHVwcGVyQ2FzZTpbdGhpcy5fYWxwaGFfdXBwZXJfZmlyc3RfYXNjaWksdGhpcy5fYWxwaGFfdXBwZXJfbGFzdF9hc2NpaV19KSxfX3B1YmxpY0ZpZWxkKHRoaXMsIl9oZXhfZGljdF9yYW5nZXMiLHtkZWNEaWdpdHM6W3RoaXMuX2RpZ2l0X2ZpcnN0X2FzY2lpLHRoaXMuX2RpZ2l0X2xhc3RfYXNjaWldLGFscGhhRGlnaXRzOlt0aGlzLl9hbHBoYV9sb3dlcl9maXJzdF9hc2NpaSx0aGlzLl9oZXhfbGFzdF9hc2NpaV19KSxfX3B1YmxpY0ZpZWxkKHRoaXMsIl9kaWN0X3JhbmdlcyIse19udW1iZXJfZGljdF9yYW5nZXM6dGhpcy5fbnVtYmVyX2RpY3RfcmFuZ2VzLF9hbHBoYV9kaWN0X3Jhbmdlczp0aGlzLl9hbHBoYV9kaWN0X3JhbmdlcyxfYWxwaGFfbG93ZXJfZGljdF9yYW5nZXM6dGhpcy5fYWxwaGFfbG93ZXJfZGljdF9yYW5nZXMsX2FscGhhX3VwcGVyX2RpY3RfcmFuZ2VzOnRoaXMuX2FscGhhX3VwcGVyX2RpY3RfcmFuZ2VzLF9hbHBoYW51bV9kaWN0X3Jhbmdlczp0aGlzLl9hbHBoYW51bV9kaWN0X3JhbmdlcyxfYWxwaGFudW1fbG93ZXJfZGljdF9yYW5nZXM6dGhpcy5fYWxwaGFudW1fbG93ZXJfZGljdF9yYW5nZXMsX2FscGhhbnVtX3VwcGVyX2RpY3RfcmFuZ2VzOnRoaXMuX2FscGhhbnVtX3VwcGVyX2RpY3RfcmFuZ2VzLF9oZXhfZGljdF9yYW5nZXM6dGhpcy5faGV4X2RpY3RfcmFuZ2VzfSksX19wdWJsaWNGaWVsZCh0aGlzLCJsb2ciLCgoLi4ucyk9Pntjb25zdCBvPVsuLi5zXTtvWzBdPSJbc2hvcnQtdW5pcXVlLWlkXSAiLmNvbmNhdChzWzBdKSwhMCE9PXRoaXMuZGVidWd8fCJ1bmRlZmluZWQiPT10eXBlb2YgY29uc29sZXx8bnVsbD09PWNvbnNvbGV8fGNvbnNvbGUubG9nKC4uLm8pfSkpLF9fcHVibGljRmllbGQodGhpcywiX25vcm1hbGl6ZURpY3Rpb25hcnkiLCgocyxvKT0+e2xldCBpO2lmKHMmJkFycmF5LmlzQXJyYXkocykmJnMubGVuZ3RoPjEpaT1zO2Vsc2V7aT1bXSx0aGlzLmRpY3RJbmRleD0wO2NvbnN0IG89Il8iLmNvbmNhdChzLCJfZGljdF9yYW5nZXMiKSxhPXRoaXMuX2RpY3RfcmFuZ2VzW29dO2xldCB1PTA7Zm9yKGNvbnN0WyxzXW9mIE9iamVjdC5lbnRyaWVzKGEpKXtjb25zdFtvLGldPXM7dSs9TWF0aC5hYnMoaS1vKX1pPW5ldyBBcnJheSh1KTtsZXQgXz0wO2Zvcihjb25zdFssc11vZiBPYmplY3QuZW50cmllcyhhKSl7dGhpcy5kaWN0UmFuZ2U9cyx0aGlzLmxvd2VyQm91bmQ9dGhpcy5kaWN0UmFuZ2VbMF0sdGhpcy51cHBlckJvdW5kPXRoaXMuZGljdFJhbmdlWzFdO2NvbnN0IG89dGhpcy5sb3dlckJvdW5kPD10aGlzLnVwcGVyQm91bmQsYT10aGlzLmxvd2VyQm91bmQsdT10aGlzLnVwcGVyQm91bmQ7aWYobylmb3IobGV0IHM9YTtzPHU7cysrKWlbXysrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKHMpLHRoaXMuZGljdEluZGV4PXM7ZWxzZSBmb3IobGV0IHM9YTtzPnU7cy0tKWlbXysrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKHMpLHRoaXMuZGljdEluZGV4PXN9aS5sZW5ndGg9X31pZihvKXtmb3IobGV0IHM9aS5sZW5ndGgtMTtzPjA7cy0tKXtjb25zdCBvPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoocysxKSk7W2lbc10saVtvXV09W2lbb10saVtzXV19fXJldHVybiBpfSkpLF9fcHVibGljRmllbGQodGhpcywic2V0RGljdGlvbmFyeSIsKChzLG8pPT57dGhpcy5kaWN0PXRoaXMuX25vcm1hbGl6ZURpY3Rpb25hcnkocyxvKSx0aGlzLmRpY3RMZW5ndGg9dGhpcy5kaWN0Lmxlbmd0aCx0aGlzLnNldENvdW50ZXIoMCl9KSksX19wdWJsaWNGaWVsZCh0aGlzLCJzZXEiLCgoKT0+dGhpcy5zZXF1ZW50aWFsVVVJRCgpKSksX19wdWJsaWNGaWVsZCh0aGlzLCJzZXF1ZW50aWFsVVVJRCIsKCgpPT57Y29uc3Qgcz10aGlzLmRpY3RMZW5ndGgsbz10aGlzLmRpY3Q7bGV0IGk9dGhpcy5jb3VudGVyO2NvbnN0IGE9W107ZG97Y29uc3QgdT1pJXM7aT1NYXRoLnRydW5jKGkvcyksYS5wdXNoKG9bdV0pfXdoaWxlKDAhPT1pKTtjb25zdCB1PWEuam9pbigiIik7cmV0dXJuIHRoaXMuY291bnRlcis9MSx1fSkpLF9fcHVibGljRmllbGQodGhpcywicm5kIiwoKHM9dGhpcy51dWlkTGVuZ3RofHx4KT0+dGhpcy5yYW5kb21VVUlEKHMpKSksX19wdWJsaWNGaWVsZCh0aGlzLCJyYW5kb21VVUlEIiwoKHM9dGhpcy51dWlkTGVuZ3RofHx4KT0+e2lmKG51bGw9PXN8fHM8MSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgVVVJRCBMZW5ndGggUHJvdmlkZWQiKTtjb25zdCBvPW5ldyBBcnJheShzKSxpPXRoaXMuZGljdExlbmd0aCxhPXRoaXMuZGljdDtmb3IobGV0IHU9MDt1PHM7dSsrKXtjb25zdCBzPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSppKTtvW3VdPWFbc119cmV0dXJuIG8uam9pbigiIil9KSksX19wdWJsaWNGaWVsZCh0aGlzLCJmbXQiLCgocyxvKT0+dGhpcy5mb3JtYXR0ZWRVVUlEKHMsbykpKSxfX3B1YmxpY0ZpZWxkKHRoaXMsImZvcm1hdHRlZFVVSUQiLCgocyxvKT0+e2NvbnN0IGk9eyRyOnRoaXMucmFuZG9tVVVJRCwkczp0aGlzLnNlcXVlbnRpYWxVVUlELCR0OnRoaXMuc3RhbXB9O3JldHVybiBzLnJlcGxhY2UoL1wkW3JzXVxkezAsfXxcJHQwfFwkdFsxLTldXGR7MSx9L2csKHM9Pntjb25zdCBhPXMuc2xpY2UoMCwyKSx1PU51bWJlci5wYXJzZUludChzLnNsaWNlKDIpLDEwKTtyZXR1cm4iJHMiPT09YT9pW2FdKCkucGFkU3RhcnQodSwiMCIpOiIkdCI9PT1hJiZvP2lbYV0odSxvKTppW2FdKHUpfSkpfSkpLF9fcHVibGljRmllbGQodGhpcywiYXZhaWxhYmxlVVVJRHMiLCgocz10aGlzLnV1aWRMZW5ndGgpPT5OdW1iZXIucGFyc2VGbG9hdCgoWy4uLm5ldyBTZXQodGhpcy5kaWN0KV0ubGVuZ3RoKipzKS50b0ZpeGVkKDApKSkpLF9fcHVibGljRmllbGQodGhpcywiX2NvbGxpc2lvbkNhY2hlIixuZXcgTWFwKSxfX3B1YmxpY0ZpZWxkKHRoaXMsImFwcHJveE1heEJlZm9yZUNvbGxpc2lvbiIsKChzPXRoaXMuYXZhaWxhYmxlVVVJRHModGhpcy51dWlkTGVuZ3RoKSk9Pntjb25zdCBvPXMsaT10aGlzLl9jb2xsaXNpb25DYWNoZS5nZXQobyk7aWYodm9pZCAwIT09aSlyZXR1cm4gaTtjb25zdCBhPU51bWJlci5wYXJzZUZsb2F0KE1hdGguc3FydChNYXRoLlBJLzIqcykudG9GaXhlZCgyMCkpO3JldHVybiB0aGlzLl9jb2xsaXNpb25DYWNoZS5zZXQobyxhKSxhfSkpLF9fcHVibGljRmllbGQodGhpcywiY29sbGlzaW9uUHJvYmFiaWxpdHkiLCgocz10aGlzLmF2YWlsYWJsZVVVSURzKHRoaXMudXVpZExlbmd0aCksbz10aGlzLnV1aWRMZW5ndGgpPT5OdW1iZXIucGFyc2VGbG9hdCgodGhpcy5hcHByb3hNYXhCZWZvcmVDb2xsaXNpb24ocykvdGhpcy5hdmFpbGFibGVVVUlEcyhvKSkudG9GaXhlZCgyMCkpKSksX19wdWJsaWNGaWVsZCh0aGlzLCJ1bmlxdWVuZXNzIiwoKHM9dGhpcy5hdmFpbGFibGVVVUlEcyh0aGlzLnV1aWRMZW5ndGgpKT0+e2NvbnN0IG89TnVtYmVyLnBhcnNlRmxvYXQoKDEtdGhpcy5hcHByb3hNYXhCZWZvcmVDb2xsaXNpb24ocykvcykudG9GaXhlZCgyMCkpO3JldHVybiBvPjE/MTpvPDA/MDpvfSkpLF9fcHVibGljRmllbGQodGhpcywiZ2V0VmVyc2lvbiIsKCgpPT50aGlzLnZlcnNpb24pKSxfX3B1YmxpY0ZpZWxkKHRoaXMsInN0YW1wIiwoKHMsbyk9Pntjb25zdCBpPU1hdGguZmxvb3IoKyhvfHxuZXcgRGF0ZSkvMWUzKS50b1N0cmluZygxNik7aWYoIm51bWJlciI9PXR5cGVvZiBzJiYwPT09cylyZXR1cm4gaTtpZigibnVtYmVyIiE9dHlwZW9mIHN8fHM8MTApdGhyb3cgbmV3IEVycm9yKFsiUGFyYW0gZmluYWxMZW5ndGggbXVzdCBiZSBhIG51bWJlciBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMTAsIiwib3IgMCBpZiB5b3Ugd2FudCB0aGUgcmF3IGhleGFkZWNpbWFsIHRpbWVzdGFtcCJdLmpvaW4oIlxuIikpO2NvbnN0IGE9cy05LHU9TWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKihhPjE1PzE1OmEpKSxfPXRoaXMucmFuZG9tVVVJRChhKTtyZXR1cm4iIi5jb25jYXQoXy5zdWJzdHJpbmcoMCx1KSkuY29uY2F0KGkpLmNvbmNhdChfLnN1YnN0cmluZyh1KSkuY29uY2F0KHUudG9TdHJpbmcoMTYpKX0pKSxfX3B1YmxpY0ZpZWxkKHRoaXMsInBhcnNlU3RhbXAiLCgocyxvKT0+e2lmKG8mJiEvdDB8dFsxLTldXGR7MSx9Ly50ZXN0KG8pKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGV4dHJhY3QgZGF0ZSBmcm9tIGEgZm9ybWF0ZWQgVVVJRCB3aXRoIG5vIHRpbWVzdGFtcCBpbiB0aGUgZm9ybWF0Iik7Y29uc3QgaT1vP28ucmVwbGFjZSgvXCRbcnNdXGR7MCx9fFwkdDB8XCR0WzEtOV1cZHsxLH0vZywocz0+e2NvbnN0IG89eyRyOnM9PlsuLi5BcnJheShzKV0ubWFwKCgoKT0+InIiKSkuam9pbigiIiksJHM6cz0+Wy4uLkFycmF5KHMpXS5tYXAoKCgpPT4icyIpKS5qb2luKCIiKSwkdDpzPT5bLi4uQXJyYXkocyldLm1hcCgoKCk9PiJ0IikpLmpvaW4oIiIpfSxpPXMuc2xpY2UoMCwyKSxhPU51bWJlci5wYXJzZUludChzLnNsaWNlKDIpLDEwKTtyZXR1cm4gb1tpXShhKX0pKS5yZXBsYWNlKC9eKC4qPykodHs4LH0pKC4qKSQvZywoKG8saSxhKT0+cy5zdWJzdHJpbmcoaS5sZW5ndGgsaS5sZW5ndGgrYS5sZW5ndGgpKSk6cztpZig4PT09aS5sZW5ndGgpcmV0dXJuIG5ldyBEYXRlKDFlMypOdW1iZXIucGFyc2VJbnQoaSwxNikpO2lmKGkubGVuZ3RoPDEwKXRocm93IG5ldyBFcnJvcigiU3RhbXAgbGVuZ3RoIGludmFsaWQiKTtjb25zdCBhPU51bWJlci5wYXJzZUludChpLnN1YnN0cmluZyhpLmxlbmd0aC0xKSwxNik7cmV0dXJuIG5ldyBEYXRlKDFlMypOdW1iZXIucGFyc2VJbnQoaS5zdWJzdHJpbmcoYSxhKzgpLDE2KSl9KSksX19wdWJsaWNGaWVsZCh0aGlzLCJzZXRDb3VudGVyIiwocz0+e3RoaXMuY291bnRlcj1zfSkpLF9fcHVibGljRmllbGQodGhpcywidmFsaWRhdGUiLCgocyxvKT0+e2NvbnN0IGk9bz90aGlzLl9ub3JtYWxpemVEaWN0aW9uYXJ5KG8pOnRoaXMuZGljdDtyZXR1cm4gcy5zcGxpdCgiIikuZXZlcnkoKHM9PmkuaW5jbHVkZXMocykpKX0pKTtjb25zdCBvPV9fc3ByZWFkVmFsdWVzKF9fc3ByZWFkVmFsdWVzKHt9LEMpLHMpO3RoaXMuY291bnRlcj0wLHRoaXMuZGVidWc9ITEsdGhpcy5kaWN0PVtdLHRoaXMudmVyc2lvbj0iNS4zLjIiO2NvbnN0e2RpY3Rpb25hcnk6aSxzaHVmZmxlOmEsbGVuZ3RoOnUsY291bnRlcjpffT1vO3RoaXMudXVpZExlbmd0aD11LHRoaXMuc2V0RGljdGlvbmFyeShpLGEpLHRoaXMuc2V0Q291bnRlcihfKSx0aGlzLmRlYnVnPW8uZGVidWcsdGhpcy5sb2codGhpcy5kaWN0KSx0aGlzLmxvZygiR2VuZXJhdG9yIGluc3RhbnRpYXRlZCB3aXRoIERpY3Rpb25hcnkgU2l6ZSAiLmNvbmNhdCh0aGlzLmRpY3RMZW5ndGgsIiBhbmQgY291bnRlciBzZXQgdG8gIikuY29uY2F0KHRoaXMuY291bnRlcikpLHRoaXMubG9nPXRoaXMubG9nLmJpbmQodGhpcyksdGhpcy5zZXREaWN0aW9uYXJ5PXRoaXMuc2V0RGljdGlvbmFyeS5iaW5kKHRoaXMpLHRoaXMuc2V0Q291bnRlcj10aGlzLnNldENvdW50ZXIuYmluZCh0aGlzKSx0aGlzLnNlcT10aGlzLnNlcS5iaW5kKHRoaXMpLHRoaXMuc2VxdWVudGlhbFVVSUQ9dGhpcy5zZXF1ZW50aWFsVVVJRC5iaW5kKHRoaXMpLHRoaXMucm5kPXRoaXMucm5kLmJpbmQodGhpcyksdGhpcy5yYW5kb21VVUlEPXRoaXMucmFuZG9tVVVJRC5iaW5kKHRoaXMpLHRoaXMuZm10PXRoaXMuZm10LmJpbmQodGhpcyksdGhpcy5mb3JtYXR0ZWRVVUlEPXRoaXMuZm9ybWF0dGVkVVVJRC5iaW5kKHRoaXMpLHRoaXMuYXZhaWxhYmxlVVVJRHM9dGhpcy5hdmFpbGFibGVVVUlEcy5iaW5kKHRoaXMpLHRoaXMuYXBwcm94TWF4QmVmb3JlQ29sbGlzaW9uPXRoaXMuYXBwcm94TWF4QmVmb3JlQ29sbGlzaW9uLmJpbmQodGhpcyksdGhpcy5jb2xsaXNpb25Qcm9iYWJpbGl0eT10aGlzLmNvbGxpc2lvblByb2JhYmlsaXR5LmJpbmQodGhpcyksdGhpcy51bmlxdWVuZXNzPXRoaXMudW5pcXVlbmVzcy5iaW5kKHRoaXMpLHRoaXMuZ2V0VmVyc2lvbj10aGlzLmdldFZlcnNpb24uYmluZCh0aGlzKSx0aGlzLnN0YW1wPXRoaXMuc3RhbXAuYmluZCh0aGlzKSx0aGlzLnBhcnNlU3RhbXA9dGhpcy5wYXJzZVN0YW1wLmJpbmQodGhpcyl9fTtfX3B1YmxpY0ZpZWxkKGosImRlZmF1bHQiLGopO3ZhciBMLEI9ajtyZXR1cm4gTD13LCgoYSxfLHcseCk9PntpZihfJiYib2JqZWN0Ij09dHlwZW9mIF98fCJmdW5jdGlvbiI9PXR5cGVvZiBfKWZvcihsZXQgQyBvZiBpKF8pKXUuY2FsbChhLEMpfHxDPT09d3x8cyhhLEMse2dldDooKT0+X1tDXSxlbnVtZXJhYmxlOiEoeD1vKF8sQykpfHx4LmVudW1lcmFibGV9KTtyZXR1cm4gYX0pKHMoe30sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEwpfSkoKTtzLmV4cG9ydHM9by5kZWZhdWx0LCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYobz1vLmRlZmF1bHQpfSw5MzI1OihzLG8saSk9Pnt2YXIgYT1pKDM0ODQwKSx1PSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsXz1hfHx1fHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpO3MuZXhwb3J0cz1ffSw5NDA0OmZ1bmN0aW9uKHMpe3MuZXhwb3J0cz1mdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgcz1BcnJheS5wcm90b3R5cGUuc2xpY2U7ZnVuY3Rpb24gY3JlYXRlQ2xhc3MocyxvKXtvJiYocy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShvLnByb3RvdHlwZSkpLHMucHJvdG90eXBlLmNvbnN0cnVjdG9yPXN9ZnVuY3Rpb24gSXRlcmFibGUocyl7cmV0dXJuIGlzSXRlcmFibGUocyk/czpTZXEocyl9ZnVuY3Rpb24gS2V5ZWRJdGVyYWJsZShzKXtyZXR1cm4gaXNLZXllZChzKT9zOktleWVkU2VxKHMpfWZ1bmN0aW9uIEluZGV4ZWRJdGVyYWJsZShzKXtyZXR1cm4gaXNJbmRleGVkKHMpP3M6SW5kZXhlZFNlcShzKX1mdW5jdGlvbiBTZXRJdGVyYWJsZShzKXtyZXR1cm4gaXNJdGVyYWJsZShzKSYmIWlzQXNzb2NpYXRpdmUocyk/czpTZXRTZXEocyl9ZnVuY3Rpb24gaXNJdGVyYWJsZShzKXtyZXR1cm4hKCFzfHwhc1tvXSl9ZnVuY3Rpb24gaXNLZXllZChzKXtyZXR1cm4hKCFzfHwhc1tpXSl9ZnVuY3Rpb24gaXNJbmRleGVkKHMpe3JldHVybiEoIXN8fCFzW2FdKX1mdW5jdGlvbiBpc0Fzc29jaWF0aXZlKHMpe3JldHVybiBpc0tleWVkKHMpfHxpc0luZGV4ZWQocyl9ZnVuY3Rpb24gaXNPcmRlcmVkKHMpe3JldHVybiEoIXN8fCFzW3VdKX1jcmVhdGVDbGFzcyhLZXllZEl0ZXJhYmxlLEl0ZXJhYmxlKSxjcmVhdGVDbGFzcyhJbmRleGVkSXRlcmFibGUsSXRlcmFibGUpLGNyZWF0ZUNsYXNzKFNldEl0ZXJhYmxlLEl0ZXJhYmxlKSxJdGVyYWJsZS5pc0l0ZXJhYmxlPWlzSXRlcmFibGUsSXRlcmFibGUuaXNLZXllZD1pc0tleWVkLEl0ZXJhYmxlLmlzSW5kZXhlZD1pc0luZGV4ZWQsSXRlcmFibGUuaXNBc3NvY2lhdGl2ZT1pc0Fzc29jaWF0aXZlLEl0ZXJhYmxlLmlzT3JkZXJlZD1pc09yZGVyZWQsSXRlcmFibGUuS2V5ZWQ9S2V5ZWRJdGVyYWJsZSxJdGVyYWJsZS5JbmRleGVkPUluZGV4ZWRJdGVyYWJsZSxJdGVyYWJsZS5TZXQ9U2V0SXRlcmFibGU7dmFyIG89IkBAX19JTU1VVEFCTEVfSVRFUkFCTEVfX0BAIixpPSJAQF9fSU1NVVRBQkxFX0tFWUVEX19AQCIsYT0iQEBfX0lNTVVUQUJMRV9JTkRFWEVEX19AQCIsdT0iQEBfX0lNTVVUQUJMRV9PUkRFUkVEX19AQCIsXz0iZGVsZXRlIix3PTUseD0xPDx3LEM9eC0xLGo9e30sTD17dmFsdWU6ITF9LEI9e3ZhbHVlOiExfTtmdW5jdGlvbiBNYWtlUmVmKHMpe3JldHVybiBzLnZhbHVlPSExLHN9ZnVuY3Rpb24gU2V0UmVmKHMpe3MmJihzLnZhbHVlPSEwKX1mdW5jdGlvbiBPd25lcklEKCl7fWZ1bmN0aW9uIGFyckNvcHkocyxvKXtvPW98fDA7Zm9yKHZhciBpPU1hdGgubWF4KDAscy5sZW5ndGgtbyksYT1uZXcgQXJyYXkoaSksdT0wO3U8aTt1KyspYVt1XT1zW3Urb107cmV0dXJuIGF9ZnVuY3Rpb24gZW5zdXJlU2l6ZShzKXtyZXR1cm4gdm9pZCAwPT09cy5zaXplJiYocy5zaXplPXMuX19pdGVyYXRlKHJldHVyblRydWUpKSxzLnNpemV9ZnVuY3Rpb24gd3JhcEluZGV4KHMsbyl7aWYoIm51bWJlciIhPXR5cGVvZiBvKXt2YXIgaT1vPj4+MDtpZigiIitpIT09b3x8NDI5NDk2NzI5NT09PWkpcmV0dXJuIE5hTjtvPWl9cmV0dXJuIG88MD9lbnN1cmVTaXplKHMpK286b31mdW5jdGlvbiByZXR1cm5UcnVlKCl7cmV0dXJuITB9ZnVuY3Rpb24gd2hvbGVTbGljZShzLG8saSl7cmV0dXJuKDA9PT1zfHx2b2lkIDAhPT1pJiZzPD0taSkmJih2b2lkIDA9PT1vfHx2b2lkIDAhPT1pJiZvPj1pKX1mdW5jdGlvbiByZXNvbHZlQmVnaW4ocyxvKXtyZXR1cm4gcmVzb2x2ZUluZGV4KHMsbywwKX1mdW5jdGlvbiByZXNvbHZlRW5kKHMsbyl7cmV0dXJuIHJlc29sdmVJbmRleChzLG8sbyl9ZnVuY3Rpb24gcmVzb2x2ZUluZGV4KHMsbyxpKXtyZXR1cm4gdm9pZCAwPT09cz9pOnM8MD9NYXRoLm1heCgwLG8rcyk6dm9pZCAwPT09bz9zOk1hdGgubWluKG8scyl9dmFyICQ9MCxWPTEsVT0yLHo9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yLFk9IkBAaXRlcmF0b3IiLFo9enx8WTtmdW5jdGlvbiBJdGVyYXRvcihzKXt0aGlzLm5leHQ9c31mdW5jdGlvbiBpdGVyYXRvclZhbHVlKHMsbyxpLGEpe3ZhciB1PTA9PT1zP286MT09PXM/aTpbbyxpXTtyZXR1cm4gYT9hLnZhbHVlPXU6YT17dmFsdWU6dSxkb25lOiExfSxhfWZ1bmN0aW9uIGl0ZXJhdG9yRG9uZSgpe3JldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19ZnVuY3Rpb24gaGFzSXRlcmF0b3Iocyl7cmV0dXJuISFnZXRJdGVyYXRvckZuKHMpfWZ1bmN0aW9uIGlzSXRlcmF0b3Iocyl7cmV0dXJuIHMmJiJmdW5jdGlvbiI9PXR5cGVvZiBzLm5leHR9ZnVuY3Rpb24gZ2V0SXRlcmF0b3Iocyl7dmFyIG89Z2V0SXRlcmF0b3JGbihzKTtyZXR1cm4gbyYmby5jYWxsKHMpfWZ1bmN0aW9uIGdldEl0ZXJhdG9yRm4ocyl7dmFyIG89cyYmKHomJnNbel18fHNbWV0pO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBvKXJldHVybiBvfWZ1bmN0aW9uIGlzQXJyYXlMaWtlKHMpe3JldHVybiBzJiYibnVtYmVyIj09dHlwZW9mIHMubGVuZ3RofWZ1bmN0aW9uIFNlcShzKXtyZXR1cm4gbnVsbD09cz9lbXB0eVNlcXVlbmNlKCk6aXNJdGVyYWJsZShzKT9zLnRvU2VxKCk6c2VxRnJvbVZhbHVlKHMpfWZ1bmN0aW9uIEtleWVkU2VxKHMpe3JldHVybiBudWxsPT1zP2VtcHR5U2VxdWVuY2UoKS50b0tleWVkU2VxKCk6aXNJdGVyYWJsZShzKT9pc0tleWVkKHMpP3MudG9TZXEoKTpzLmZyb21FbnRyeVNlcSgpOmtleWVkU2VxRnJvbVZhbHVlKHMpfWZ1bmN0aW9uIEluZGV4ZWRTZXEocyl7cmV0dXJuIG51bGw9PXM/ZW1wdHlTZXF1ZW5jZSgpOmlzSXRlcmFibGUocyk/aXNLZXllZChzKT9zLmVudHJ5U2VxKCk6cy50b0luZGV4ZWRTZXEoKTppbmRleGVkU2VxRnJvbVZhbHVlKHMpfWZ1bmN0aW9uIFNldFNlcShzKXtyZXR1cm4obnVsbD09cz9lbXB0eVNlcXVlbmNlKCk6aXNJdGVyYWJsZShzKT9pc0tleWVkKHMpP3MuZW50cnlTZXEoKTpzOmluZGV4ZWRTZXFGcm9tVmFsdWUocykpLnRvU2V0U2VxKCl9SXRlcmF0b3IucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIltJdGVyYXRvcl0ifSxJdGVyYXRvci5LRVlTPSQsSXRlcmF0b3IuVkFMVUVTPVYsSXRlcmF0b3IuRU5UUklFUz1VLEl0ZXJhdG9yLnByb3RvdHlwZS5pbnNwZWN0PUl0ZXJhdG9yLnByb3RvdHlwZS50b1NvdXJjZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKCl9LEl0ZXJhdG9yLnByb3RvdHlwZVtaXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxjcmVhdGVDbGFzcyhTZXEsSXRlcmFibGUpLFNlcS5vZj1mdW5jdGlvbigpe3JldHVybiBTZXEoYXJndW1lbnRzKX0sU2VxLnByb3RvdHlwZS50b1NlcT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxTZXEucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX190b1N0cmluZygiU2VxIHsiLCJ9Iil9LFNlcS5wcm90b3R5cGUuY2FjaGVSZXN1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5fY2FjaGUmJnRoaXMuX19pdGVyYXRlVW5jYWNoZWQmJih0aGlzLl9jYWNoZT10aGlzLmVudHJ5U2VxKCkudG9BcnJheSgpLHRoaXMuc2l6ZT10aGlzLl9jYWNoZS5sZW5ndGgpLHRoaXN9LFNlcS5wcm90b3R5cGUuX19pdGVyYXRlPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHNlcUl0ZXJhdGUodGhpcyxzLG8sITApfSxTZXEucHJvdG90eXBlLl9faXRlcmF0b3I9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gc2VxSXRlcmF0b3IodGhpcyxzLG8sITApfSxjcmVhdGVDbGFzcyhLZXllZFNlcSxTZXEpLEtleWVkU2VxLnByb3RvdHlwZS50b0tleWVkU2VxPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGNyZWF0ZUNsYXNzKEluZGV4ZWRTZXEsU2VxKSxJbmRleGVkU2VxLm9mPWZ1bmN0aW9uKCl7cmV0dXJuIEluZGV4ZWRTZXEoYXJndW1lbnRzKX0sSW5kZXhlZFNlcS5wcm90b3R5cGUudG9JbmRleGVkU2VxPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LEluZGV4ZWRTZXEucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX190b1N0cmluZygiU2VxIFsiLCJdIil9LEluZGV4ZWRTZXEucHJvdG90eXBlLl9faXRlcmF0ZT1mdW5jdGlvbihzLG8pe3JldHVybiBzZXFJdGVyYXRlKHRoaXMscyxvLCExKX0sSW5kZXhlZFNlcS5wcm90b3R5cGUuX19pdGVyYXRvcj1mdW5jdGlvbihzLG8pe3JldHVybiBzZXFJdGVyYXRvcih0aGlzLHMsbywhMSl9LGNyZWF0ZUNsYXNzKFNldFNlcSxTZXEpLFNldFNlcS5vZj1mdW5jdGlvbigpe3JldHVybiBTZXRTZXEoYXJndW1lbnRzKX0sU2V0U2VxLnByb3RvdHlwZS50b1NldFNlcT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxTZXEuaXNTZXE9aXNTZXEsU2VxLktleWVkPUtleWVkU2VxLFNlcS5TZXQ9U2V0U2VxLFNlcS5JbmRleGVkPUluZGV4ZWRTZXE7dmFyIGVlLGllLGFlLGNlPSJAQF9fSU1NVVRBQkxFX1NFUV9fQEAiO2Z1bmN0aW9uIEFycmF5U2VxKHMpe3RoaXMuX2FycmF5PXMsdGhpcy5zaXplPXMubGVuZ3RofWZ1bmN0aW9uIE9iamVjdFNlcShzKXt2YXIgbz1PYmplY3Qua2V5cyhzKTt0aGlzLl9vYmplY3Q9cyx0aGlzLl9rZXlzPW8sdGhpcy5zaXplPW8ubGVuZ3RofWZ1bmN0aW9uIEl0ZXJhYmxlU2VxKHMpe3RoaXMuX2l0ZXJhYmxlPXMsdGhpcy5zaXplPXMubGVuZ3RofHxzLnNpemV9ZnVuY3Rpb24gSXRlcmF0b3JTZXEocyl7dGhpcy5faXRlcmF0b3I9cyx0aGlzLl9pdGVyYXRvckNhY2hlPVtdfWZ1bmN0aW9uIGlzU2VxKHMpe3JldHVybiEoIXN8fCFzW2NlXSl9ZnVuY3Rpb24gZW1wdHlTZXF1ZW5jZSgpe3JldHVybiBlZXx8KGVlPW5ldyBBcnJheVNlcShbXSkpfWZ1bmN0aW9uIGtleWVkU2VxRnJvbVZhbHVlKHMpe3ZhciBvPUFycmF5LmlzQXJyYXkocyk/bmV3IEFycmF5U2VxKHMpLmZyb21FbnRyeVNlcSgpOmlzSXRlcmF0b3Iocyk/bmV3IEl0ZXJhdG9yU2VxKHMpLmZyb21FbnRyeVNlcSgpOmhhc0l0ZXJhdG9yKHMpP25ldyBJdGVyYWJsZVNlcShzKS5mcm9tRW50cnlTZXEoKToib2JqZWN0Ij09dHlwZW9mIHM/bmV3IE9iamVjdFNlcShzKTp2b2lkIDA7aWYoIW8pdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgQXJyYXkgb3IgaXRlcmFibGUgb2JqZWN0IG9mIFtrLCB2XSBlbnRyaWVzLCBvciBrZXllZCBvYmplY3Q6ICIrcyk7cmV0dXJuIG99ZnVuY3Rpb24gaW5kZXhlZFNlcUZyb21WYWx1ZShzKXt2YXIgbz1tYXliZUluZGV4ZWRTZXFGcm9tVmFsdWUocyk7aWYoIW8pdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgQXJyYXkgb3IgaXRlcmFibGUgb2JqZWN0IG9mIHZhbHVlczogIitzKTtyZXR1cm4gb31mdW5jdGlvbiBzZXFGcm9tVmFsdWUocyl7dmFyIG89bWF5YmVJbmRleGVkU2VxRnJvbVZhbHVlKHMpfHwib2JqZWN0Ij09dHlwZW9mIHMmJm5ldyBPYmplY3RTZXEocyk7aWYoIW8pdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgQXJyYXkgb3IgaXRlcmFibGUgb2JqZWN0IG9mIHZhbHVlcywgb3Iga2V5ZWQgb2JqZWN0OiAiK3MpO3JldHVybiBvfWZ1bmN0aW9uIG1heWJlSW5kZXhlZFNlcUZyb21WYWx1ZShzKXtyZXR1cm4gaXNBcnJheUxpa2Uocyk/bmV3IEFycmF5U2VxKHMpOmlzSXRlcmF0b3Iocyk/bmV3IEl0ZXJhdG9yU2VxKHMpOmhhc0l0ZXJhdG9yKHMpP25ldyBJdGVyYWJsZVNlcShzKTp2b2lkIDB9ZnVuY3Rpb24gc2VxSXRlcmF0ZShzLG8saSxhKXt2YXIgdT1zLl9jYWNoZTtpZih1KXtmb3IodmFyIF89dS5sZW5ndGgtMSx3PTA7dzw9Xzt3Kyspe3ZhciB4PXVbaT9fLXc6d107aWYoITE9PT1vKHhbMV0sYT94WzBdOncscykpcmV0dXJuIHcrMX1yZXR1cm4gd31yZXR1cm4gcy5fX2l0ZXJhdGVVbmNhY2hlZChvLGkpfWZ1bmN0aW9uIHNlcUl0ZXJhdG9yKHMsbyxpLGEpe3ZhciB1PXMuX2NhY2hlO2lmKHUpe3ZhciBfPXUubGVuZ3RoLTEsdz0wO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7dmFyIHM9dVtpP18tdzp3XTtyZXR1cm4gdysrPl8/aXRlcmF0b3JEb25lKCk6aXRlcmF0b3JWYWx1ZShvLGE/c1swXTp3LTEsc1sxXSl9KSl9cmV0dXJuIHMuX19pdGVyYXRvclVuY2FjaGVkKG8saSl9ZnVuY3Rpb24gZnJvbUpTKHMsbyl7cmV0dXJuIG8/ZnJvbUpTV2l0aChvLHMsIiIseyIiOnN9KTpmcm9tSlNEZWZhdWx0KHMpfWZ1bmN0aW9uIGZyb21KU1dpdGgocyxvLGksYSl7cmV0dXJuIEFycmF5LmlzQXJyYXkobyk/cy5jYWxsKGEsaSxJbmRleGVkU2VxKG8pLm1hcCgoZnVuY3Rpb24oaSxhKXtyZXR1cm4gZnJvbUpTV2l0aChzLGksYSxvKX0pKSk6aXNQbGFpbk9iaihvKT9zLmNhbGwoYSxpLEtleWVkU2VxKG8pLm1hcCgoZnVuY3Rpb24oaSxhKXtyZXR1cm4gZnJvbUpTV2l0aChzLGksYSxvKX0pKSk6b31mdW5jdGlvbiBmcm9tSlNEZWZhdWx0KHMpe3JldHVybiBBcnJheS5pc0FycmF5KHMpP0luZGV4ZWRTZXEocykubWFwKGZyb21KU0RlZmF1bHQpLnRvTGlzdCgpOmlzUGxhaW5PYmoocyk/S2V5ZWRTZXEocykubWFwKGZyb21KU0RlZmF1bHQpLnRvTWFwKCk6c31mdW5jdGlvbiBpc1BsYWluT2JqKHMpe3JldHVybiBzJiYocy5jb25zdHJ1Y3Rvcj09PU9iamVjdHx8dm9pZCAwPT09cy5jb25zdHJ1Y3Rvcil9ZnVuY3Rpb24gaXMocyxvKXtpZihzPT09b3x8cyE9cyYmbyE9bylyZXR1cm4hMDtpZighc3x8IW8pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHMudmFsdWVPZiYmImZ1bmN0aW9uIj09dHlwZW9mIG8udmFsdWVPZil7aWYoKHM9cy52YWx1ZU9mKCkpPT09KG89by52YWx1ZU9mKCkpfHxzIT1zJiZvIT1vKXJldHVybiEwO2lmKCFzfHwhbylyZXR1cm4hMX1yZXR1cm4hKCJmdW5jdGlvbiIhPXR5cGVvZiBzLmVxdWFsc3x8ImZ1bmN0aW9uIiE9dHlwZW9mIG8uZXF1YWxzfHwhcy5lcXVhbHMobykpfWZ1bmN0aW9uIGRlZXBFcXVhbChzLG8pe2lmKHM9PT1vKXJldHVybiEwO2lmKCFpc0l0ZXJhYmxlKG8pfHx2b2lkIDAhPT1zLnNpemUmJnZvaWQgMCE9PW8uc2l6ZSYmcy5zaXplIT09by5zaXplfHx2b2lkIDAhPT1zLl9faGFzaCYmdm9pZCAwIT09by5fX2hhc2gmJnMuX19oYXNoIT09by5fX2hhc2h8fGlzS2V5ZWQocykhPT1pc0tleWVkKG8pfHxpc0luZGV4ZWQocykhPT1pc0luZGV4ZWQobyl8fGlzT3JkZXJlZChzKSE9PWlzT3JkZXJlZChvKSlyZXR1cm4hMTtpZigwPT09cy5zaXplJiYwPT09by5zaXplKXJldHVybiEwO3ZhciBpPSFpc0Fzc29jaWF0aXZlKHMpO2lmKGlzT3JkZXJlZChzKSl7dmFyIGE9cy5lbnRyaWVzKCk7cmV0dXJuIG8uZXZlcnkoKGZ1bmN0aW9uKHMsbyl7dmFyIHU9YS5uZXh0KCkudmFsdWU7cmV0dXJuIHUmJmlzKHVbMV0scykmJihpfHxpcyh1WzBdLG8pKX0pKSYmYS5uZXh0KCkuZG9uZX12YXIgdT0hMTtpZih2b2lkIDA9PT1zLnNpemUpaWYodm9pZCAwPT09by5zaXplKSJmdW5jdGlvbiI9PXR5cGVvZiBzLmNhY2hlUmVzdWx0JiZzLmNhY2hlUmVzdWx0KCk7ZWxzZXt1PSEwO3ZhciBfPXM7cz1vLG89X312YXIgdz0hMCx4PW8uX19pdGVyYXRlKChmdW5jdGlvbihvLGEpe2lmKGk/IXMuaGFzKG8pOnU/IWlzKG8scy5nZXQoYSxqKSk6IWlzKHMuZ2V0KGEsaiksbykpcmV0dXJuIHc9ITEsITF9KSk7cmV0dXJuIHcmJnMuc2l6ZT09PXh9ZnVuY3Rpb24gUmVwZWF0KHMsbyl7aWYoISh0aGlzIGluc3RhbmNlb2YgUmVwZWF0KSlyZXR1cm4gbmV3IFJlcGVhdChzLG8pO2lmKHRoaXMuX3ZhbHVlPXMsdGhpcy5zaXplPXZvaWQgMD09PW8/MS8wOk1hdGgubWF4KDAsbyksMD09PXRoaXMuc2l6ZSl7aWYoaWUpcmV0dXJuIGllO2llPXRoaXN9fWZ1bmN0aW9uIGludmFyaWFudChzLG8pe2lmKCFzKXRocm93IG5ldyBFcnJvcihvKX1mdW5jdGlvbiBSYW5nZShzLG8saSl7aWYoISh0aGlzIGluc3RhbmNlb2YgUmFuZ2UpKXJldHVybiBuZXcgUmFuZ2UocyxvLGkpO2lmKGludmFyaWFudCgwIT09aSwiQ2Fubm90IHN0ZXAgYSBSYW5nZSBieSAwIikscz1zfHwwLHZvaWQgMD09PW8mJihvPTEvMCksaT12b2lkIDA9PT1pPzE6TWF0aC5hYnMoaSksbzxzJiYoaT0taSksdGhpcy5fc3RhcnQ9cyx0aGlzLl9lbmQ9byx0aGlzLl9zdGVwPWksdGhpcy5zaXplPU1hdGgubWF4KDAsTWF0aC5jZWlsKChvLXMpL2ktMSkrMSksMD09PXRoaXMuc2l6ZSl7aWYoYWUpcmV0dXJuIGFlO2FlPXRoaXN9fWZ1bmN0aW9uIENvbGxlY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoIkFic3RyYWN0Iil9ZnVuY3Rpb24gS2V5ZWRDb2xsZWN0aW9uKCl7fWZ1bmN0aW9uIEluZGV4ZWRDb2xsZWN0aW9uKCl7fWZ1bmN0aW9uIFNldENvbGxlY3Rpb24oKXt9U2VxLnByb3RvdHlwZVtjZV09ITAsY3JlYXRlQ2xhc3MoQXJyYXlTZXEsSW5kZXhlZFNlcSksQXJyYXlTZXEucHJvdG90eXBlLmdldD1mdW5jdGlvbihzLG8pe3JldHVybiB0aGlzLmhhcyhzKT90aGlzLl9hcnJheVt3cmFwSW5kZXgodGhpcyxzKV06b30sQXJyYXlTZXEucHJvdG90eXBlLl9faXRlcmF0ZT1mdW5jdGlvbihzLG8pe2Zvcih2YXIgaT10aGlzLl9hcnJheSxhPWkubGVuZ3RoLTEsdT0wO3U8PWE7dSsrKWlmKCExPT09cyhpW28/YS11OnVdLHUsdGhpcykpcmV0dXJuIHUrMTtyZXR1cm4gdX0sQXJyYXlTZXEucHJvdG90eXBlLl9faXRlcmF0b3I9ZnVuY3Rpb24ocyxvKXt2YXIgaT10aGlzLl9hcnJheSxhPWkubGVuZ3RoLTEsdT0wO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7cmV0dXJuIHU+YT9pdGVyYXRvckRvbmUoKTppdGVyYXRvclZhbHVlKHMsdSxpW28/YS11Kys6dSsrXSl9KSl9LGNyZWF0ZUNsYXNzKE9iamVjdFNlcSxLZXllZFNlcSksT2JqZWN0U2VxLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdm9pZCAwPT09b3x8dGhpcy5oYXMocyk/dGhpcy5fb2JqZWN0W3NdOm99LE9iamVjdFNlcS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLl9vYmplY3QuaGFzT3duUHJvcGVydHkocyl9LE9iamVjdFNlcS5wcm90b3R5cGUuX19pdGVyYXRlPWZ1bmN0aW9uKHMsbyl7Zm9yKHZhciBpPXRoaXMuX29iamVjdCxhPXRoaXMuX2tleXMsdT1hLmxlbmd0aC0xLF89MDtfPD11O18rKyl7dmFyIHc9YVtvP3UtXzpfXTtpZighMT09PXMoaVt3XSx3LHRoaXMpKXJldHVybiBfKzF9cmV0dXJuIF99LE9iamVjdFNlcS5wcm90b3R5cGUuX19pdGVyYXRvcj1mdW5jdGlvbihzLG8pe3ZhciBpPXRoaXMuX29iamVjdCxhPXRoaXMuX2tleXMsdT1hLmxlbmd0aC0xLF89MDtyZXR1cm4gbmV3IEl0ZXJhdG9yKChmdW5jdGlvbigpe3ZhciB3PWFbbz91LV86X107cmV0dXJuIF8rKz51P2l0ZXJhdG9yRG9uZSgpOml0ZXJhdG9yVmFsdWUocyx3LGlbd10pfSkpfSxPYmplY3RTZXEucHJvdG90eXBlW3VdPSEwLGNyZWF0ZUNsYXNzKEl0ZXJhYmxlU2VxLEluZGV4ZWRTZXEpLEl0ZXJhYmxlU2VxLnByb3RvdHlwZS5fX2l0ZXJhdGVVbmNhY2hlZD1mdW5jdGlvbihzLG8pe2lmKG8pcmV0dXJuIHRoaXMuY2FjaGVSZXN1bHQoKS5fX2l0ZXJhdGUocyxvKTt2YXIgaT1nZXRJdGVyYXRvcih0aGlzLl9pdGVyYWJsZSksYT0wO2lmKGlzSXRlcmF0b3IoaSkpZm9yKHZhciB1OyEodT1pLm5leHQoKSkuZG9uZSYmITEhPT1zKHUudmFsdWUsYSsrLHRoaXMpOyk7cmV0dXJuIGF9LEl0ZXJhYmxlU2VxLnByb3RvdHlwZS5fX2l0ZXJhdG9yVW5jYWNoZWQ9ZnVuY3Rpb24ocyxvKXtpZihvKXJldHVybiB0aGlzLmNhY2hlUmVzdWx0KCkuX19pdGVyYXRvcihzLG8pO3ZhciBpPWdldEl0ZXJhdG9yKHRoaXMuX2l0ZXJhYmxlKTtpZighaXNJdGVyYXRvcihpKSlyZXR1cm4gbmV3IEl0ZXJhdG9yKGl0ZXJhdG9yRG9uZSk7dmFyIGE9MDtyZXR1cm4gbmV3IEl0ZXJhdG9yKChmdW5jdGlvbigpe3ZhciBvPWkubmV4dCgpO3JldHVybiBvLmRvbmU/bzppdGVyYXRvclZhbHVlKHMsYSsrLG8udmFsdWUpfSkpfSxjcmVhdGVDbGFzcyhJdGVyYXRvclNlcSxJbmRleGVkU2VxKSxJdGVyYXRvclNlcS5wcm90b3R5cGUuX19pdGVyYXRlVW5jYWNoZWQ9ZnVuY3Rpb24ocyxvKXtpZihvKXJldHVybiB0aGlzLmNhY2hlUmVzdWx0KCkuX19pdGVyYXRlKHMsbyk7Zm9yKHZhciBpLGE9dGhpcy5faXRlcmF0b3IsdT10aGlzLl9pdGVyYXRvckNhY2hlLF89MDtfPHUubGVuZ3RoOylpZighMT09PXModVtfXSxfKyssdGhpcykpcmV0dXJuIF87Zm9yKDshKGk9YS5uZXh0KCkpLmRvbmU7KXt2YXIgdz1pLnZhbHVlO2lmKHVbX109dywhMT09PXModyxfKyssdGhpcykpYnJlYWt9cmV0dXJuIF99LEl0ZXJhdG9yU2VxLnByb3RvdHlwZS5fX2l0ZXJhdG9yVW5jYWNoZWQ9ZnVuY3Rpb24ocyxvKXtpZihvKXJldHVybiB0aGlzLmNhY2hlUmVzdWx0KCkuX19pdGVyYXRvcihzLG8pO3ZhciBpPXRoaXMuX2l0ZXJhdG9yLGE9dGhpcy5faXRlcmF0b3JDYWNoZSx1PTA7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXtpZih1Pj1hLmxlbmd0aCl7dmFyIG89aS5uZXh0KCk7aWYoby5kb25lKXJldHVybiBvO2FbdV09by52YWx1ZX1yZXR1cm4gaXRlcmF0b3JWYWx1ZShzLHUsYVt1KytdKX0pKX0sY3JlYXRlQ2xhc3MoUmVwZWF0LEluZGV4ZWRTZXEpLFJlcGVhdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuc2l6ZT8iUmVwZWF0IFtdIjoiUmVwZWF0IFsgIit0aGlzLl92YWx1ZSsiICIrdGhpcy5zaXplKyIgdGltZXMgXSJ9LFJlcGVhdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHRoaXMuaGFzKHMpP3RoaXMuX3ZhbHVlOm99LFJlcGVhdC5wcm90b3R5cGUuaW5jbHVkZXM9ZnVuY3Rpb24ocyl7cmV0dXJuIGlzKHRoaXMuX3ZhbHVlLHMpfSxSZXBlYXQucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uKHMsbyl7dmFyIGk9dGhpcy5zaXplO3JldHVybiB3aG9sZVNsaWNlKHMsbyxpKT90aGlzOm5ldyBSZXBlYXQodGhpcy5fdmFsdWUscmVzb2x2ZUVuZChvLGkpLXJlc29sdmVCZWdpbihzLGkpKX0sUmVwZWF0LnByb3RvdHlwZS5yZXZlcnNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LFJlcGVhdC5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbihzKXtyZXR1cm4gaXModGhpcy5fdmFsdWUscyk/MDotMX0sUmVwZWF0LnByb3RvdHlwZS5sYXN0SW5kZXhPZj1mdW5jdGlvbihzKXtyZXR1cm4gaXModGhpcy5fdmFsdWUscyk/dGhpcy5zaXplOi0xfSxSZXBlYXQucHJvdG90eXBlLl9faXRlcmF0ZT1mdW5jdGlvbihzLG8pe2Zvcih2YXIgaT0wO2k8dGhpcy5zaXplO2krKylpZighMT09PXModGhpcy5fdmFsdWUsaSx0aGlzKSlyZXR1cm4gaSsxO3JldHVybiBpfSxSZXBlYXQucHJvdG90eXBlLl9faXRlcmF0b3I9ZnVuY3Rpb24ocyxvKXt2YXIgaT10aGlzLGE9MDtyZXR1cm4gbmV3IEl0ZXJhdG9yKChmdW5jdGlvbigpe3JldHVybiBhPGkuc2l6ZT9pdGVyYXRvclZhbHVlKHMsYSsrLGkuX3ZhbHVlKTppdGVyYXRvckRvbmUoKX0pKX0sUmVwZWF0LnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24ocyl7cmV0dXJuIHMgaW5zdGFuY2VvZiBSZXBlYXQ/aXModGhpcy5fdmFsdWUscy5fdmFsdWUpOmRlZXBFcXVhbChzKX0sY3JlYXRlQ2xhc3MoUmFuZ2UsSW5kZXhlZFNlcSksUmFuZ2UucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnNpemU/IlJhbmdlIFtdIjoiUmFuZ2UgWyAiK3RoaXMuX3N0YXJ0KyIuLi4iK3RoaXMuX2VuZCsoMSE9PXRoaXMuX3N0ZXA/IiBieSAiK3RoaXMuX3N0ZXA6IiIpKyIgXSJ9LFJhbmdlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdGhpcy5oYXMocyk/dGhpcy5fc3RhcnQrd3JhcEluZGV4KHRoaXMscykqdGhpcy5fc3RlcDpvfSxSYW5nZS5wcm90b3R5cGUuaW5jbHVkZXM9ZnVuY3Rpb24ocyl7dmFyIG89KHMtdGhpcy5fc3RhcnQpL3RoaXMuX3N0ZXA7cmV0dXJuIG8+PTAmJm88dGhpcy5zaXplJiZvPT09TWF0aC5mbG9vcihvKX0sUmFuZ2UucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHdob2xlU2xpY2UocyxvLHRoaXMuc2l6ZSk/dGhpczoocz1yZXNvbHZlQmVnaW4ocyx0aGlzLnNpemUpLChvPXJlc29sdmVFbmQobyx0aGlzLnNpemUpKTw9cz9uZXcgUmFuZ2UoMCwwKTpuZXcgUmFuZ2UodGhpcy5nZXQocyx0aGlzLl9lbmQpLHRoaXMuZ2V0KG8sdGhpcy5fZW5kKSx0aGlzLl9zdGVwKSl9LFJhbmdlLnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKHMpe3ZhciBvPXMtdGhpcy5fc3RhcnQ7aWYobyV0aGlzLl9zdGVwPT0wKXt2YXIgaT1vL3RoaXMuX3N0ZXA7aWYoaT49MCYmaTx0aGlzLnNpemUpcmV0dXJuIGl9cmV0dXJuLTF9LFJhbmdlLnByb3RvdHlwZS5sYXN0SW5kZXhPZj1mdW5jdGlvbihzKXtyZXR1cm4gdGhpcy5pbmRleE9mKHMpfSxSYW5nZS5wcm90b3R5cGUuX19pdGVyYXRlPWZ1bmN0aW9uKHMsbyl7Zm9yKHZhciBpPXRoaXMuc2l6ZS0xLGE9dGhpcy5fc3RlcCx1PW8/dGhpcy5fc3RhcnQraSphOnRoaXMuX3N0YXJ0LF89MDtfPD1pO18rKyl7aWYoITE9PT1zKHUsXyx0aGlzKSlyZXR1cm4gXysxO3UrPW8/LWE6YX1yZXR1cm4gX30sUmFuZ2UucHJvdG90eXBlLl9faXRlcmF0b3I9ZnVuY3Rpb24ocyxvKXt2YXIgaT10aGlzLnNpemUtMSxhPXRoaXMuX3N0ZXAsdT1vP3RoaXMuX3N0YXJ0K2kqYTp0aGlzLl9zdGFydCxfPTA7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXt2YXIgdz11O3JldHVybiB1Kz1vPy1hOmEsXz5pP2l0ZXJhdG9yRG9uZSgpOml0ZXJhdG9yVmFsdWUocyxfKyssdyl9KSl9LFJhbmdlLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24ocyl7cmV0dXJuIHMgaW5zdGFuY2VvZiBSYW5nZT90aGlzLl9zdGFydD09PXMuX3N0YXJ0JiZ0aGlzLl9lbmQ9PT1zLl9lbmQmJnRoaXMuX3N0ZXA9PT1zLl9zdGVwOmRlZXBFcXVhbCh0aGlzLHMpfSxjcmVhdGVDbGFzcyhDb2xsZWN0aW9uLEl0ZXJhYmxlKSxjcmVhdGVDbGFzcyhLZXllZENvbGxlY3Rpb24sQ29sbGVjdGlvbiksY3JlYXRlQ2xhc3MoSW5kZXhlZENvbGxlY3Rpb24sQ29sbGVjdGlvbiksY3JlYXRlQ2xhc3MoU2V0Q29sbGVjdGlvbixDb2xsZWN0aW9uKSxDb2xsZWN0aW9uLktleWVkPUtleWVkQ29sbGVjdGlvbixDb2xsZWN0aW9uLkluZGV4ZWQ9SW5kZXhlZENvbGxlY3Rpb24sQ29sbGVjdGlvbi5TZXQ9U2V0Q29sbGVjdGlvbjt2YXIgbGU9ImZ1bmN0aW9uIj09dHlwZW9mIE1hdGguaW11bCYmLTI9PT1NYXRoLmltdWwoNDI5NDk2NzI5NSwyKT9NYXRoLmltdWw6ZnVuY3Rpb24gaW11bChzLG8pe3ZhciBpPTY1NTM1JihzfD0wKSxhPTY1NTM1JihvfD0wKTtyZXR1cm4gaSphKygocz4+PjE2KSphK2kqKG8+Pj4xNik8PDE2Pj4+MCl8MH07ZnVuY3Rpb24gc21pKHMpe3JldHVybiBzPj4+MSYxMDczNzQxODI0fDMyMjEyMjU0NzEmc31mdW5jdGlvbiBoYXNoKHMpe2lmKCExPT09c3x8bnVsbD09cylyZXR1cm4gMDtpZigiZnVuY3Rpb24iPT10eXBlb2Ygcy52YWx1ZU9mJiYoITE9PT0ocz1zLnZhbHVlT2YoKSl8fG51bGw9PXMpKXJldHVybiAwO2lmKCEwPT09cylyZXR1cm4gMTt2YXIgbz10eXBlb2YgcztpZigibnVtYmVyIj09PW8pe2lmKHMhPXN8fHM9PT0xLzApcmV0dXJuIDA7dmFyIGk9MHxzO2ZvcihpIT09cyYmKGlePTQyOTQ5NjcyOTUqcyk7cz40Mjk0OTY3Mjk1OylpXj1zLz00Mjk0OTY3Mjk1O3JldHVybiBzbWkoaSl9aWYoInN0cmluZyI9PT1vKXJldHVybiBzLmxlbmd0aD5TZT9jYWNoZWRIYXNoU3RyaW5nKHMpOmhhc2hTdHJpbmcocyk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHMuaGFzaENvZGUpcmV0dXJuIHMuaGFzaENvZGUoKTtpZigib2JqZWN0Ij09PW8pcmV0dXJuIGhhc2hKU09iaihzKTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygcy50b1N0cmluZylyZXR1cm4gaGFzaFN0cmluZyhzLnRvU3RyaW5nKCkpO3Rocm93IG5ldyBFcnJvcigiVmFsdWUgdHlwZSAiK28rIiBjYW5ub3QgYmUgaGFzaGVkLiIpfWZ1bmN0aW9uIGNhY2hlZEhhc2hTdHJpbmcocyl7dmFyIG89UGVbc107cmV0dXJuIHZvaWQgMD09PW8mJihvPWhhc2hTdHJpbmcocykseGU9PT13ZSYmKHhlPTAsUGU9e30pLHhlKyssUGVbc109byksb31mdW5jdGlvbiBoYXNoU3RyaW5nKHMpe2Zvcih2YXIgbz0wLGk9MDtpPHMubGVuZ3RoO2krKylvPTMxKm8rcy5jaGFyQ29kZUF0KGkpfDA7cmV0dXJuIHNtaShvKX1mdW5jdGlvbiBoYXNoSlNPYmoocyl7dmFyIG87aWYoeWUmJnZvaWQgMCE9PShvPWZlLmdldChzKSkpcmV0dXJuIG87aWYodm9pZCAwIT09KG89c1tfZV0pKXJldHVybiBvO2lmKCFkZSl7aWYodm9pZCAwIT09KG89cy5wcm9wZXJ0eUlzRW51bWVyYWJsZSYmcy5wcm9wZXJ0eUlzRW51bWVyYWJsZVtfZV0pKXJldHVybiBvO2lmKHZvaWQgMCE9PShvPWdldElFTm9kZUhhc2gocykpKXJldHVybiBvfWlmKG89KytiZSwxMDczNzQxODI0JmJlJiYoYmU9MCkseWUpZmUuc2V0KHMsbyk7ZWxzZXtpZih2b2lkIDAhPT1wZSYmITE9PT1wZShzKSl0aHJvdyBuZXcgRXJyb3IoIk5vbi1leHRlbnNpYmxlIG9iamVjdHMgYXJlIG5vdCBhbGxvd2VkIGFzIGtleXMuIik7aWYoZGUpT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsX2Use2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiExLHdyaXRhYmxlOiExLHZhbHVlOm99KTtlbHNlIGlmKHZvaWQgMCE9PXMucHJvcGVydHlJc0VudW1lcmFibGUmJnMucHJvcGVydHlJc0VudW1lcmFibGU9PT1zLmNvbnN0cnVjdG9yLnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSlzLnByb3BlcnR5SXNFbnVtZXJhYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0scy5wcm9wZXJ0eUlzRW51bWVyYWJsZVtfZV09bztlbHNle2lmKHZvaWQgMD09PXMubm9kZVR5cGUpdGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gc2V0IGEgbm9uLWVudW1lcmFibGUgcHJvcGVydHkgb24gb2JqZWN0LiIpO3NbX2VdPW99fXJldHVybiBvfXZhciBwZT1PYmplY3QuaXNFeHRlbnNpYmxlLGRlPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIkAiLHt9KSwhMH1jYXRjaChzKXtyZXR1cm4hMX19KCk7ZnVuY3Rpb24gZ2V0SUVOb2RlSGFzaChzKXtpZihzJiZzLm5vZGVUeXBlPjApc3dpdGNoKHMubm9kZVR5cGUpe2Nhc2UgMTpyZXR1cm4gcy51bmlxdWVJRDtjYXNlIDk6cmV0dXJuIHMuZG9jdW1lbnRFbGVtZW50JiZzLmRvY3VtZW50RWxlbWVudC51bmlxdWVJRH19dmFyIGZlLHllPSJmdW5jdGlvbiI9PXR5cGVvZiBXZWFrTWFwO3llJiYoZmU9bmV3IFdlYWtNYXApO3ZhciBiZT0wLF9lPSJfX2ltbXV0YWJsZWhhc2hfXyI7ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKF9lPVN5bWJvbChfZSkpO3ZhciBTZT0xNix3ZT0yNTUseGU9MCxQZT17fTtmdW5jdGlvbiBhc3NlcnROb3RJbmZpbml0ZShzKXtpbnZhcmlhbnQocyE9PTEvMCwiQ2Fubm90IHBlcmZvcm0gdGhpcyBhY3Rpb24gd2l0aCBhbiBpbmZpbml0ZSBzaXplLiIpfWZ1bmN0aW9uIE1hcChzKXtyZXR1cm4gbnVsbD09cz9lbXB0eU1hcCgpOmlzTWFwKHMpJiYhaXNPcmRlcmVkKHMpP3M6ZW1wdHlNYXAoKS53aXRoTXV0YXRpb25zKChmdW5jdGlvbihvKXt2YXIgaT1LZXllZEl0ZXJhYmxlKHMpO2Fzc2VydE5vdEluZmluaXRlKGkuc2l6ZSksaS5mb3JFYWNoKChmdW5jdGlvbihzLGkpe3JldHVybiBvLnNldChpLHMpfSkpfSkpfWZ1bmN0aW9uIGlzTWFwKHMpe3JldHVybiEoIXN8fCFzW1JlXSl9Y3JlYXRlQ2xhc3MoTWFwLEtleWVkQ29sbGVjdGlvbiksTWFwLm9mPWZ1bmN0aW9uKCl7dmFyIG89cy5jYWxsKGFyZ3VtZW50cywwKTtyZXR1cm4gZW1wdHlNYXAoKS53aXRoTXV0YXRpb25zKChmdW5jdGlvbihzKXtmb3IodmFyIGk9MDtpPG8ubGVuZ3RoO2krPTIpe2lmKGkrMT49by5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIHZhbHVlIGZvciBrZXk6ICIrb1tpXSk7cy5zZXQob1tpXSxvW2krMV0pfX0pKX0sTWFwLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9fdG9TdHJpbmcoIk1hcCB7IiwifSIpfSxNYXAucHJvdG90eXBlLmdldD1mdW5jdGlvbihzLG8pe3JldHVybiB0aGlzLl9yb290P3RoaXMuX3Jvb3QuZ2V0KDAsdm9pZCAwLHMsbyk6b30sTWFwLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdXBkYXRlTWFwKHRoaXMscyxvKX0sTWFwLnByb3RvdHlwZS5zZXRJbj1mdW5jdGlvbihzLG8pe3JldHVybiB0aGlzLnVwZGF0ZUluKHMsaiwoZnVuY3Rpb24oKXtyZXR1cm4gb30pKX0sTWFwLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24ocyl7cmV0dXJuIHVwZGF0ZU1hcCh0aGlzLHMsail9LE1hcC5wcm90b3R5cGUuZGVsZXRlSW49ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMudXBkYXRlSW4ocywoZnVuY3Rpb24oKXtyZXR1cm4gan0pKX0sTWFwLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24ocyxvLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9zKHRoaXMpOnRoaXMudXBkYXRlSW4oW3NdLG8saSl9LE1hcC5wcm90b3R5cGUudXBkYXRlSW49ZnVuY3Rpb24ocyxvLGkpe2l8fChpPW8sbz12b2lkIDApO3ZhciBhPXVwZGF0ZUluRGVlcE1hcCh0aGlzLGZvcmNlSXRlcmF0b3IocyksbyxpKTtyZXR1cm4gYT09PWo/dm9pZCAwOmF9LE1hcC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuc2l6ZT90aGlzOnRoaXMuX19vd25lcklEPyh0aGlzLnNpemU9MCx0aGlzLl9yb290PW51bGwsdGhpcy5fX2hhc2g9dm9pZCAwLHRoaXMuX19hbHRlcmVkPSEwLHRoaXMpOmVtcHR5TWFwKCl9LE1hcC5wcm90b3R5cGUubWVyZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gbWVyZ2VJbnRvTWFwV2l0aCh0aGlzLHZvaWQgMCxhcmd1bWVudHMpfSxNYXAucHJvdG90eXBlLm1lcmdlV2l0aD1mdW5jdGlvbihvKXtyZXR1cm4gbWVyZ2VJbnRvTWFwV2l0aCh0aGlzLG8scy5jYWxsKGFyZ3VtZW50cywxKSl9LE1hcC5wcm90b3R5cGUubWVyZ2VJbj1mdW5jdGlvbihvKXt2YXIgaT1zLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiB0aGlzLnVwZGF0ZUluKG8sZW1wdHlNYXAoKSwoZnVuY3Rpb24ocyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHMubWVyZ2U/cy5tZXJnZS5hcHBseShzLGkpOmlbaS5sZW5ndGgtMV19KSl9LE1hcC5wcm90b3R5cGUubWVyZ2VEZWVwPWZ1bmN0aW9uKCl7cmV0dXJuIG1lcmdlSW50b01hcFdpdGgodGhpcyxkZWVwTWVyZ2VyLGFyZ3VtZW50cyl9LE1hcC5wcm90b3R5cGUubWVyZ2VEZWVwV2l0aD1mdW5jdGlvbihvKXt2YXIgaT1zLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBtZXJnZUludG9NYXBXaXRoKHRoaXMsZGVlcE1lcmdlcldpdGgobyksaSl9LE1hcC5wcm90b3R5cGUubWVyZ2VEZWVwSW49ZnVuY3Rpb24obyl7dmFyIGk9cy5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gdGhpcy51cGRhdGVJbihvLGVtcHR5TWFwKCksKGZ1bmN0aW9uKHMpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBzLm1lcmdlRGVlcD9zLm1lcmdlRGVlcC5hcHBseShzLGkpOmlbaS5sZW5ndGgtMV19KSl9LE1hcC5wcm90b3R5cGUuc29ydD1mdW5jdGlvbihzKXtyZXR1cm4gT3JkZXJlZE1hcChzb3J0RmFjdG9yeSh0aGlzLHMpKX0sTWFwLnByb3RvdHlwZS5zb3J0Qnk9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gT3JkZXJlZE1hcChzb3J0RmFjdG9yeSh0aGlzLG8scykpfSxNYXAucHJvdG90eXBlLndpdGhNdXRhdGlvbnM9ZnVuY3Rpb24ocyl7dmFyIG89dGhpcy5hc011dGFibGUoKTtyZXR1cm4gcyhvKSxvLndhc0FsdGVyZWQoKT9vLl9fZW5zdXJlT3duZXIodGhpcy5fX293bmVySUQpOnRoaXN9LE1hcC5wcm90b3R5cGUuYXNNdXRhYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19vd25lcklEP3RoaXM6dGhpcy5fX2Vuc3VyZU93bmVyKG5ldyBPd25lcklEKX0sTWFwLnByb3RvdHlwZS5hc0ltbXV0YWJsZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9fZW5zdXJlT3duZXIoKX0sTWFwLnByb3RvdHlwZS53YXNBbHRlcmVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19hbHRlcmVkfSxNYXAucHJvdG90eXBlLl9faXRlcmF0b3I9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gbmV3IE1hcEl0ZXJhdG9yKHRoaXMscyxvKX0sTWFwLnByb3RvdHlwZS5fX2l0ZXJhdGU9ZnVuY3Rpb24ocyxvKXt2YXIgaT10aGlzLGE9MDtyZXR1cm4gdGhpcy5fcm9vdCYmdGhpcy5fcm9vdC5pdGVyYXRlKChmdW5jdGlvbihvKXtyZXR1cm4gYSsrLHMob1sxXSxvWzBdLGkpfSksbyksYX0sTWFwLnByb3RvdHlwZS5fX2Vuc3VyZU93bmVyPWZ1bmN0aW9uKHMpe3JldHVybiBzPT09dGhpcy5fX293bmVySUQ/dGhpczpzP21ha2VNYXAodGhpcy5zaXplLHRoaXMuX3Jvb3Qscyx0aGlzLl9faGFzaCk6KHRoaXMuX19vd25lcklEPXMsdGhpcy5fX2FsdGVyZWQ9ITEsdGhpcyl9LE1hcC5pc01hcD1pc01hcDt2YXIgVGUsUmU9IkBAX19JTU1VVEFCTEVfTUFQX19AQCIsJGU9TWFwLnByb3RvdHlwZTtmdW5jdGlvbiBBcnJheU1hcE5vZGUocyxvKXt0aGlzLm93bmVySUQ9cyx0aGlzLmVudHJpZXM9b31mdW5jdGlvbiBCaXRtYXBJbmRleGVkTm9kZShzLG8saSl7dGhpcy5vd25lcklEPXMsdGhpcy5iaXRtYXA9byx0aGlzLm5vZGVzPWl9ZnVuY3Rpb24gSGFzaEFycmF5TWFwTm9kZShzLG8saSl7dGhpcy5vd25lcklEPXMsdGhpcy5jb3VudD1vLHRoaXMubm9kZXM9aX1mdW5jdGlvbiBIYXNoQ29sbGlzaW9uTm9kZShzLG8saSl7dGhpcy5vd25lcklEPXMsdGhpcy5rZXlIYXNoPW8sdGhpcy5lbnRyaWVzPWl9ZnVuY3Rpb24gVmFsdWVOb2RlKHMsbyxpKXt0aGlzLm93bmVySUQ9cyx0aGlzLmtleUhhc2g9byx0aGlzLmVudHJ5PWl9ZnVuY3Rpb24gTWFwSXRlcmF0b3IocyxvLGkpe3RoaXMuX3R5cGU9byx0aGlzLl9yZXZlcnNlPWksdGhpcy5fc3RhY2s9cy5fcm9vdCYmbWFwSXRlcmF0b3JGcmFtZShzLl9yb290KX1mdW5jdGlvbiBtYXBJdGVyYXRvclZhbHVlKHMsbyl7cmV0dXJuIGl0ZXJhdG9yVmFsdWUocyxvWzBdLG9bMV0pfWZ1bmN0aW9uIG1hcEl0ZXJhdG9yRnJhbWUocyxvKXtyZXR1cm57bm9kZTpzLGluZGV4OjAsX19wcmV2Om99fWZ1bmN0aW9uIG1ha2VNYXAocyxvLGksYSl7dmFyIHU9T2JqZWN0LmNyZWF0ZSgkZSk7cmV0dXJuIHUuc2l6ZT1zLHUuX3Jvb3Q9byx1Ll9fb3duZXJJRD1pLHUuX19oYXNoPWEsdS5fX2FsdGVyZWQ9ITEsdX1mdW5jdGlvbiBlbXB0eU1hcCgpe3JldHVybiBUZXx8KFRlPW1ha2VNYXAoMCkpfWZ1bmN0aW9uIHVwZGF0ZU1hcChzLG8saSl7dmFyIGEsdTtpZihzLl9yb290KXt2YXIgXz1NYWtlUmVmKEwpLHc9TWFrZVJlZihCKTtpZihhPXVwZGF0ZU5vZGUocy5fcm9vdCxzLl9fb3duZXJJRCwwLHZvaWQgMCxvLGksXyx3KSwhdy52YWx1ZSlyZXR1cm4gczt1PXMuc2l6ZSsoXy52YWx1ZT9pPT09aj8tMToxOjApfWVsc2V7aWYoaT09PWopcmV0dXJuIHM7dT0xLGE9bmV3IEFycmF5TWFwTm9kZShzLl9fb3duZXJJRCxbW28saV1dKX1yZXR1cm4gcy5fX293bmVySUQ/KHMuc2l6ZT11LHMuX3Jvb3Q9YSxzLl9faGFzaD12b2lkIDAscy5fX2FsdGVyZWQ9ITAscyk6YT9tYWtlTWFwKHUsYSk6ZW1wdHlNYXAoKX1mdW5jdGlvbiB1cGRhdGVOb2RlKHMsbyxpLGEsdSxfLHcseCl7cmV0dXJuIHM/cy51cGRhdGUobyxpLGEsdSxfLHcseCk6Xz09PWo/czooU2V0UmVmKHgpLFNldFJlZih3KSxuZXcgVmFsdWVOb2RlKG8sYSxbdSxfXSkpfWZ1bmN0aW9uIGlzTGVhZk5vZGUocyl7cmV0dXJuIHMuY29uc3RydWN0b3I9PT1WYWx1ZU5vZGV8fHMuY29uc3RydWN0b3I9PT1IYXNoQ29sbGlzaW9uTm9kZX1mdW5jdGlvbiBtZXJnZUludG9Ob2RlKHMsbyxpLGEsdSl7aWYocy5rZXlIYXNoPT09YSlyZXR1cm4gbmV3IEhhc2hDb2xsaXNpb25Ob2RlKG8sYSxbcy5lbnRyeSx1XSk7dmFyIF8seD0oMD09PWk/cy5rZXlIYXNoOnMua2V5SGFzaD4+PmkpJkMsaj0oMD09PWk/YTphPj4+aSkmQztyZXR1cm4gbmV3IEJpdG1hcEluZGV4ZWROb2RlKG8sMTw8eHwxPDxqLHg9PT1qP1ttZXJnZUludG9Ob2RlKHMsbyxpK3csYSx1KV06KF89bmV3IFZhbHVlTm9kZShvLGEsdSkseDxqP1tzLF9dOltfLHNdKSl9ZnVuY3Rpb24gY3JlYXRlTm9kZXMocyxvLGksYSl7c3x8KHM9bmV3IE93bmVySUQpO2Zvcih2YXIgdT1uZXcgVmFsdWVOb2RlKHMsaGFzaChpKSxbaSxhXSksXz0wO188by5sZW5ndGg7XysrKXt2YXIgdz1vW19dO3U9dS51cGRhdGUocywwLHZvaWQgMCx3WzBdLHdbMV0pfXJldHVybiB1fWZ1bmN0aW9uIHBhY2tOb2RlcyhzLG8saSxhKXtmb3IodmFyIHU9MCxfPTAsdz1uZXcgQXJyYXkoaSkseD0wLEM9MSxqPW8ubGVuZ3RoO3g8ajt4KyssQzw8PTEpe3ZhciBMPW9beF07dm9pZCAwIT09TCYmeCE9PWEmJih1fD1DLHdbXysrXT1MKX1yZXR1cm4gbmV3IEJpdG1hcEluZGV4ZWROb2RlKHMsdSx3KX1mdW5jdGlvbiBleHBhbmROb2RlcyhzLG8saSxhLHUpe2Zvcih2YXIgXz0wLHc9bmV3IEFycmF5KHgpLEM9MDswIT09aTtDKyssaT4+Pj0xKXdbQ109MSZpP29bXysrXTp2b2lkIDA7cmV0dXJuIHdbYV09dSxuZXcgSGFzaEFycmF5TWFwTm9kZShzLF8rMSx3KX1mdW5jdGlvbiBtZXJnZUludG9NYXBXaXRoKHMsbyxpKXtmb3IodmFyIGE9W10sdT0wO3U8aS5sZW5ndGg7dSsrKXt2YXIgXz1pW3VdLHc9S2V5ZWRJdGVyYWJsZShfKTtpc0l0ZXJhYmxlKF8pfHwodz13Lm1hcCgoZnVuY3Rpb24ocyl7cmV0dXJuIGZyb21KUyhzKX0pKSksYS5wdXNoKHcpfXJldHVybiBtZXJnZUludG9Db2xsZWN0aW9uV2l0aChzLG8sYSl9ZnVuY3Rpb24gZGVlcE1lcmdlcihzLG8saSl7cmV0dXJuIHMmJnMubWVyZ2VEZWVwJiZpc0l0ZXJhYmxlKG8pP3MubWVyZ2VEZWVwKG8pOmlzKHMsbyk/czpvfWZ1bmN0aW9uIGRlZXBNZXJnZXJXaXRoKHMpe3JldHVybiBmdW5jdGlvbihvLGksYSl7aWYobyYmby5tZXJnZURlZXBXaXRoJiZpc0l0ZXJhYmxlKGkpKXJldHVybiBvLm1lcmdlRGVlcFdpdGgocyxpKTt2YXIgdT1zKG8saSxhKTtyZXR1cm4gaXMobyx1KT9vOnV9fWZ1bmN0aW9uIG1lcmdlSW50b0NvbGxlY3Rpb25XaXRoKHMsbyxpKXtyZXR1cm4gMD09PShpPWkuZmlsdGVyKChmdW5jdGlvbihzKXtyZXR1cm4gMCE9PXMuc2l6ZX0pKSkubGVuZ3RoP3M6MCE9PXMuc2l6ZXx8cy5fX293bmVySUR8fDEhPT1pLmxlbmd0aD9zLndpdGhNdXRhdGlvbnMoKGZ1bmN0aW9uKHMpe2Zvcih2YXIgYT1vP2Z1bmN0aW9uKGksYSl7cy51cGRhdGUoYSxqLChmdW5jdGlvbihzKXtyZXR1cm4gcz09PWo/aTpvKHMsaSxhKX0pKX06ZnVuY3Rpb24obyxpKXtzLnNldChpLG8pfSx1PTA7dTxpLmxlbmd0aDt1KyspaVt1XS5mb3JFYWNoKGEpfSkpOnMuY29uc3RydWN0b3IoaVswXSl9ZnVuY3Rpb24gdXBkYXRlSW5EZWVwTWFwKHMsbyxpLGEpe3ZhciB1PXM9PT1qLF89by5uZXh0KCk7aWYoXy5kb25lKXt2YXIgdz11P2k6cyx4PWEodyk7cmV0dXJuIHg9PT13P3M6eH1pbnZhcmlhbnQodXx8cyYmcy5zZXQsImludmFsaWQga2V5UGF0aCIpO3ZhciBDPV8udmFsdWUsTD11P2o6cy5nZXQoQyxqKSxCPXVwZGF0ZUluRGVlcE1hcChMLG8saSxhKTtyZXR1cm4gQj09PUw/czpCPT09aj9zLnJlbW92ZShDKToodT9lbXB0eU1hcCgpOnMpLnNldChDLEIpfWZ1bmN0aW9uIHBvcENvdW50KHMpe3JldHVybiBzPShzPSg4NTg5OTM0NTkmKHMtPXM+PjEmMTQzMTY1NTc2NSkpKyhzPj4yJjg1ODk5MzQ1OSkpKyhzPj40KSYyNTI2NDUxMzUscys9cz4+OCwxMjcmKHMrPXM+PjE2KX1mdW5jdGlvbiBzZXRJbihzLG8saSxhKXt2YXIgdT1hP3M6YXJyQ29weShzKTtyZXR1cm4gdVtvXT1pLHV9ZnVuY3Rpb24gc3BsaWNlSW4ocyxvLGksYSl7dmFyIHU9cy5sZW5ndGgrMTtpZihhJiZvKzE9PT11KXJldHVybiBzW29dPWkscztmb3IodmFyIF89bmV3IEFycmF5KHUpLHc9MCx4PTA7eDx1O3grKyl4PT09bz8oX1t4XT1pLHc9LTEpOl9beF09c1t4K3ddO3JldHVybiBffWZ1bmN0aW9uIHNwbGljZU91dChzLG8saSl7dmFyIGE9cy5sZW5ndGgtMTtpZihpJiZvPT09YSlyZXR1cm4gcy5wb3AoKSxzO2Zvcih2YXIgdT1uZXcgQXJyYXkoYSksXz0wLHc9MDt3PGE7dysrKXc9PT1vJiYoXz0xKSx1W3ddPXNbdytfXTtyZXR1cm4gdX0kZVtSZV09ITAsJGVbX109JGUucmVtb3ZlLCRlLnJlbW92ZUluPSRlLmRlbGV0ZUluLEFycmF5TWFwTm9kZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHMsbyxpLGEpe2Zvcih2YXIgdT10aGlzLmVudHJpZXMsXz0wLHc9dS5sZW5ndGg7Xzx3O18rKylpZihpcyhpLHVbX11bMF0pKXJldHVybiB1W19dWzFdO3JldHVybiBhfSxBcnJheU1hcE5vZGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihzLG8saSxhLHUsXyx3KXtmb3IodmFyIHg9dT09PWosQz10aGlzLmVudHJpZXMsTD0wLEI9Qy5sZW5ndGg7TDxCJiYhaXMoYSxDW0xdWzBdKTtMKyspO3ZhciAkPUw8QjtpZigkP0NbTF1bMV09PT11OngpcmV0dXJuIHRoaXM7aWYoU2V0UmVmKHcpLCh4fHwhJCkmJlNldFJlZihfKSwheHx8MSE9PUMubGVuZ3RoKXtpZighJCYmIXgmJkMubGVuZ3RoPj1xZSlyZXR1cm4gY3JlYXRlTm9kZXMocyxDLGEsdSk7dmFyIFY9cyYmcz09PXRoaXMub3duZXJJRCxVPVY/QzphcnJDb3B5KEMpO3JldHVybiAkP3g/TD09PUItMT9VLnBvcCgpOlVbTF09VS5wb3AoKTpVW0xdPVthLHVdOlUucHVzaChbYSx1XSksVj8odGhpcy5lbnRyaWVzPVUsdGhpcyk6bmV3IEFycmF5TWFwTm9kZShzLFUpfX0sQml0bWFwSW5kZXhlZE5vZGUucHJvdG90eXBlLmdldD1mdW5jdGlvbihzLG8saSxhKXt2b2lkIDA9PT1vJiYobz1oYXNoKGkpKTt2YXIgdT0xPDwoKDA9PT1zP286bz4+PnMpJkMpLF89dGhpcy5iaXRtYXA7cmV0dXJuIF8mdT90aGlzLm5vZGVzW3BvcENvdW50KF8mdS0xKV0uZ2V0KHMrdyxvLGksYSk6YX0sQml0bWFwSW5kZXhlZE5vZGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihzLG8saSxhLHUsXyx4KXt2b2lkIDA9PT1pJiYoaT1oYXNoKGEpKTt2YXIgTD0oMD09PW8/aTppPj4+bykmQyxCPTE8PEwsJD10aGlzLmJpdG1hcCxWPSEhKCQmQik7aWYoIVYmJnU9PT1qKXJldHVybiB0aGlzO3ZhciBVPXBvcENvdW50KCQmQi0xKSx6PXRoaXMubm9kZXMsWT1WP3pbVV06dm9pZCAwLFo9dXBkYXRlTm9kZShZLHMsbyt3LGksYSx1LF8seCk7aWYoWj09PVkpcmV0dXJuIHRoaXM7aWYoIVYmJlomJnoubGVuZ3RoPj16ZSlyZXR1cm4gZXhwYW5kTm9kZXMocyx6LCQsTCxaKTtpZihWJiYhWiYmMj09PXoubGVuZ3RoJiZpc0xlYWZOb2RlKHpbMV5VXSkpcmV0dXJuIHpbMV5VXTtpZihWJiZaJiYxPT09ei5sZW5ndGgmJmlzTGVhZk5vZGUoWikpcmV0dXJuIFo7dmFyIGVlPXMmJnM9PT10aGlzLm93bmVySUQsaWU9Vj9aPyQ6JF5COiR8QixhZT1WP1o/c2V0SW4oeixVLFosZWUpOnNwbGljZU91dCh6LFUsZWUpOnNwbGljZUluKHosVSxaLGVlKTtyZXR1cm4gZWU/KHRoaXMuYml0bWFwPWllLHRoaXMubm9kZXM9YWUsdGhpcyk6bmV3IEJpdG1hcEluZGV4ZWROb2RlKHMsaWUsYWUpfSxIYXNoQXJyYXlNYXBOb2RlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24ocyxvLGksYSl7dm9pZCAwPT09byYmKG89aGFzaChpKSk7dmFyIHU9KDA9PT1zP286bz4+PnMpJkMsXz10aGlzLm5vZGVzW3VdO3JldHVybiBfP18uZ2V0KHMrdyxvLGksYSk6YX0sSGFzaEFycmF5TWFwTm9kZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHMsbyxpLGEsdSxfLHgpe3ZvaWQgMD09PWkmJihpPWhhc2goYSkpO3ZhciBMPSgwPT09bz9pOmk+Pj5vKSZDLEI9dT09PWosJD10aGlzLm5vZGVzLFY9JFtMXTtpZihCJiYhVilyZXR1cm4gdGhpczt2YXIgVT11cGRhdGVOb2RlKFYscyxvK3csaSxhLHUsXyx4KTtpZihVPT09VilyZXR1cm4gdGhpczt2YXIgej10aGlzLmNvdW50O2lmKFYpe2lmKCFVJiYtLXo8V2UpcmV0dXJuIHBhY2tOb2RlcyhzLCQseixMKX1lbHNlIHorKzt2YXIgWT1zJiZzPT09dGhpcy5vd25lcklELFo9c2V0SW4oJCxMLFUsWSk7cmV0dXJuIFk/KHRoaXMuY291bnQ9eix0aGlzLm5vZGVzPVosdGhpcyk6bmV3IEhhc2hBcnJheU1hcE5vZGUocyx6LFopfSxIYXNoQ29sbGlzaW9uTm9kZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHMsbyxpLGEpe2Zvcih2YXIgdT10aGlzLmVudHJpZXMsXz0wLHc9dS5sZW5ndGg7Xzx3O18rKylpZihpcyhpLHVbX11bMF0pKXJldHVybiB1W19dWzFdO3JldHVybiBhfSxIYXNoQ29sbGlzaW9uTm9kZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHMsbyxpLGEsdSxfLHcpe3ZvaWQgMD09PWkmJihpPWhhc2goYSkpO3ZhciB4PXU9PT1qO2lmKGkhPT10aGlzLmtleUhhc2gpcmV0dXJuIHg/dGhpczooU2V0UmVmKHcpLFNldFJlZihfKSxtZXJnZUludG9Ob2RlKHRoaXMscyxvLGksW2EsdV0pKTtmb3IodmFyIEM9dGhpcy5lbnRyaWVzLEw9MCxCPUMubGVuZ3RoO0w8QiYmIWlzKGEsQ1tMXVswXSk7TCsrKTt2YXIgJD1MPEI7aWYoJD9DW0xdWzFdPT09dTp4KXJldHVybiB0aGlzO2lmKFNldFJlZih3KSwoeHx8ISQpJiZTZXRSZWYoXykseCYmMj09PUIpcmV0dXJuIG5ldyBWYWx1ZU5vZGUocyx0aGlzLmtleUhhc2gsQ1sxXkxdKTt2YXIgVj1zJiZzPT09dGhpcy5vd25lcklELFU9Vj9DOmFyckNvcHkoQyk7cmV0dXJuICQ/eD9MPT09Qi0xP1UucG9wKCk6VVtMXT1VLnBvcCgpOlVbTF09W2EsdV06VS5wdXNoKFthLHVdKSxWPyh0aGlzLmVudHJpZXM9VSx0aGlzKTpuZXcgSGFzaENvbGxpc2lvbk5vZGUocyx0aGlzLmtleUhhc2gsVSl9LFZhbHVlTm9kZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHMsbyxpLGEpe3JldHVybiBpcyhpLHRoaXMuZW50cnlbMF0pP3RoaXMuZW50cnlbMV06YX0sVmFsdWVOb2RlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24ocyxvLGksYSx1LF8sdyl7dmFyIHg9dT09PWosQz1pcyhhLHRoaXMuZW50cnlbMF0pO3JldHVybihDP3U9PT10aGlzLmVudHJ5WzFdOngpP3RoaXM6KFNldFJlZih3KSx4P3ZvaWQgU2V0UmVmKF8pOkM/cyYmcz09PXRoaXMub3duZXJJRD8odGhpcy5lbnRyeVsxXT11LHRoaXMpOm5ldyBWYWx1ZU5vZGUocyx0aGlzLmtleUhhc2gsW2EsdV0pOihTZXRSZWYoXyksbWVyZ2VJbnRvTm9kZSh0aGlzLHMsbyxoYXNoKGEpLFthLHVdKSkpfSxBcnJheU1hcE5vZGUucHJvdG90eXBlLml0ZXJhdGU9SGFzaENvbGxpc2lvbk5vZGUucHJvdG90eXBlLml0ZXJhdGU9ZnVuY3Rpb24ocyxvKXtmb3IodmFyIGk9dGhpcy5lbnRyaWVzLGE9MCx1PWkubGVuZ3RoLTE7YTw9dTthKyspaWYoITE9PT1zKGlbbz91LWE6YV0pKXJldHVybiExfSxCaXRtYXBJbmRleGVkTm9kZS5wcm90b3R5cGUuaXRlcmF0ZT1IYXNoQXJyYXlNYXBOb2RlLnByb3RvdHlwZS5pdGVyYXRlPWZ1bmN0aW9uKHMsbyl7Zm9yKHZhciBpPXRoaXMubm9kZXMsYT0wLHU9aS5sZW5ndGgtMTthPD11O2ErKyl7dmFyIF89aVtvP3UtYTphXTtpZihfJiYhMT09PV8uaXRlcmF0ZShzLG8pKXJldHVybiExfX0sVmFsdWVOb2RlLnByb3RvdHlwZS5pdGVyYXRlPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHModGhpcy5lbnRyeSl9LGNyZWF0ZUNsYXNzKE1hcEl0ZXJhdG9yLEl0ZXJhdG9yKSxNYXBJdGVyYXRvci5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe2Zvcih2YXIgcz10aGlzLl90eXBlLG89dGhpcy5fc3RhY2s7bzspe3ZhciBpLGE9by5ub2RlLHU9by5pbmRleCsrO2lmKGEuZW50cnkpe2lmKDA9PT11KXJldHVybiBtYXBJdGVyYXRvclZhbHVlKHMsYS5lbnRyeSl9ZWxzZSBpZihhLmVudHJpZXMpe2lmKHU8PShpPWEuZW50cmllcy5sZW5ndGgtMSkpcmV0dXJuIG1hcEl0ZXJhdG9yVmFsdWUocyxhLmVudHJpZXNbdGhpcy5fcmV2ZXJzZT9pLXU6dV0pfWVsc2UgaWYodTw9KGk9YS5ub2Rlcy5sZW5ndGgtMSkpe3ZhciBfPWEubm9kZXNbdGhpcy5fcmV2ZXJzZT9pLXU6dV07aWYoXyl7aWYoXy5lbnRyeSlyZXR1cm4gbWFwSXRlcmF0b3JWYWx1ZShzLF8uZW50cnkpO289dGhpcy5fc3RhY2s9bWFwSXRlcmF0b3JGcmFtZShfLG8pfWNvbnRpbnVlfW89dGhpcy5fc3RhY2s9dGhpcy5fc3RhY2suX19wcmV2fXJldHVybiBpdGVyYXRvckRvbmUoKX07dmFyIHFlPXgvNCx6ZT14LzIsV2U9eC80O2Z1bmN0aW9uIExpc3Qocyl7dmFyIG89ZW1wdHlMaXN0KCk7aWYobnVsbD09cylyZXR1cm4gbztpZihpc0xpc3QocykpcmV0dXJuIHM7dmFyIGk9SW5kZXhlZEl0ZXJhYmxlKHMpLGE9aS5zaXplO3JldHVybiAwPT09YT9vOihhc3NlcnROb3RJbmZpbml0ZShhKSxhPjAmJmE8eD9tYWtlTGlzdCgwLGEsdyxudWxsLG5ldyBWTm9kZShpLnRvQXJyYXkoKSkpOm8ud2l0aE11dGF0aW9ucygoZnVuY3Rpb24ocyl7cy5zZXRTaXplKGEpLGkuZm9yRWFjaCgoZnVuY3Rpb24obyxpKXtyZXR1cm4gcy5zZXQoaSxvKX0pKX0pKSl9ZnVuY3Rpb24gaXNMaXN0KHMpe3JldHVybiEoIXN8fCFzW0hlXSl9Y3JlYXRlQ2xhc3MoTGlzdCxJbmRleGVkQ29sbGVjdGlvbiksTGlzdC5vZj1mdW5jdGlvbigpe3JldHVybiB0aGlzKGFyZ3VtZW50cyl9LExpc3QucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX190b1N0cmluZygiTGlzdCBbIiwiXSIpfSxMaXN0LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24ocyxvKXtpZigocz13cmFwSW5kZXgodGhpcyxzKSk+PTAmJnM8dGhpcy5zaXplKXt2YXIgaT1saXN0Tm9kZUZvcih0aGlzLHMrPXRoaXMuX29yaWdpbik7cmV0dXJuIGkmJmkuYXJyYXlbcyZDXX1yZXR1cm4gb30sTGlzdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHVwZGF0ZUxpc3QodGhpcyxzLG8pfSxMaXN0LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMuaGFzKHMpPzA9PT1zP3RoaXMuc2hpZnQoKTpzPT09dGhpcy5zaXplLTE/dGhpcy5wb3AoKTp0aGlzLnNwbGljZShzLDEpOnRoaXN9LExpc3QucHJvdG90eXBlLmluc2VydD1mdW5jdGlvbihzLG8pe3JldHVybiB0aGlzLnNwbGljZShzLDAsbyl9LExpc3QucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnNpemU/dGhpczp0aGlzLl9fb3duZXJJRD8odGhpcy5zaXplPXRoaXMuX29yaWdpbj10aGlzLl9jYXBhY2l0eT0wLHRoaXMuX2xldmVsPXcsdGhpcy5fcm9vdD10aGlzLl90YWlsPW51bGwsdGhpcy5fX2hhc2g9dm9pZCAwLHRoaXMuX19hbHRlcmVkPSEwLHRoaXMpOmVtcHR5TGlzdCgpfSxMaXN0LnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKCl7dmFyIHM9YXJndW1lbnRzLG89dGhpcy5zaXplO3JldHVybiB0aGlzLndpdGhNdXRhdGlvbnMoKGZ1bmN0aW9uKGkpe3NldExpc3RCb3VuZHMoaSwwLG8rcy5sZW5ndGgpO2Zvcih2YXIgYT0wO2E8cy5sZW5ndGg7YSsrKWkuc2V0KG8rYSxzW2FdKX0pKX0sTGlzdC5wcm90b3R5cGUucG9wPWZ1bmN0aW9uKCl7cmV0dXJuIHNldExpc3RCb3VuZHModGhpcywwLC0xKX0sTGlzdC5wcm90b3R5cGUudW5zaGlmdD1mdW5jdGlvbigpe3ZhciBzPWFyZ3VtZW50cztyZXR1cm4gdGhpcy53aXRoTXV0YXRpb25zKChmdW5jdGlvbihvKXtzZXRMaXN0Qm91bmRzKG8sLXMubGVuZ3RoKTtmb3IodmFyIGk9MDtpPHMubGVuZ3RoO2krKylvLnNldChpLHNbaV0pfSkpfSxMaXN0LnByb3RvdHlwZS5zaGlmdD1mdW5jdGlvbigpe3JldHVybiBzZXRMaXN0Qm91bmRzKHRoaXMsMSl9LExpc3QucHJvdG90eXBlLm1lcmdlPWZ1bmN0aW9uKCl7cmV0dXJuIG1lcmdlSW50b0xpc3RXaXRoKHRoaXMsdm9pZCAwLGFyZ3VtZW50cyl9LExpc3QucHJvdG90eXBlLm1lcmdlV2l0aD1mdW5jdGlvbihvKXtyZXR1cm4gbWVyZ2VJbnRvTGlzdFdpdGgodGhpcyxvLHMuY2FsbChhcmd1bWVudHMsMSkpfSxMaXN0LnByb3RvdHlwZS5tZXJnZURlZXA9ZnVuY3Rpb24oKXtyZXR1cm4gbWVyZ2VJbnRvTGlzdFdpdGgodGhpcyxkZWVwTWVyZ2VyLGFyZ3VtZW50cyl9LExpc3QucHJvdG90eXBlLm1lcmdlRGVlcFdpdGg9ZnVuY3Rpb24obyl7dmFyIGk9cy5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gbWVyZ2VJbnRvTGlzdFdpdGgodGhpcyxkZWVwTWVyZ2VyV2l0aChvKSxpKX0sTGlzdC5wcm90b3R5cGUuc2V0U2l6ZT1mdW5jdGlvbihzKXtyZXR1cm4gc2V0TGlzdEJvdW5kcyh0aGlzLDAscyl9LExpc3QucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uKHMsbyl7dmFyIGk9dGhpcy5zaXplO3JldHVybiB3aG9sZVNsaWNlKHMsbyxpKT90aGlzOnNldExpc3RCb3VuZHModGhpcyxyZXNvbHZlQmVnaW4ocyxpKSxyZXNvbHZlRW5kKG8saSkpfSxMaXN0LnByb3RvdHlwZS5fX2l0ZXJhdG9yPWZ1bmN0aW9uKHMsbyl7dmFyIGk9MCxhPWl0ZXJhdGVMaXN0KHRoaXMsbyk7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXt2YXIgbz1hKCk7cmV0dXJuIG89PT1ldD9pdGVyYXRvckRvbmUoKTppdGVyYXRvclZhbHVlKHMsaSsrLG8pfSkpfSxMaXN0LnByb3RvdHlwZS5fX2l0ZXJhdGU9ZnVuY3Rpb24ocyxvKXtmb3IodmFyIGksYT0wLHU9aXRlcmF0ZUxpc3QodGhpcyxvKTsoaT11KCkpIT09ZXQmJiExIT09cyhpLGErKyx0aGlzKTspO3JldHVybiBhfSxMaXN0LnByb3RvdHlwZS5fX2Vuc3VyZU93bmVyPWZ1bmN0aW9uKHMpe3JldHVybiBzPT09dGhpcy5fX293bmVySUQ/dGhpczpzP21ha2VMaXN0KHRoaXMuX29yaWdpbix0aGlzLl9jYXBhY2l0eSx0aGlzLl9sZXZlbCx0aGlzLl9yb290LHRoaXMuX3RhaWwscyx0aGlzLl9faGFzaCk6KHRoaXMuX19vd25lcklEPXMsdGhpcyl9LExpc3QuaXNMaXN0PWlzTGlzdDt2YXIgSGU9IkBAX19JTU1VVEFCTEVfTElTVF9fQEAiLFllPUxpc3QucHJvdG90eXBlO2Z1bmN0aW9uIFZOb2RlKHMsbyl7dGhpcy5hcnJheT1zLHRoaXMub3duZXJJRD1vfVllW0hlXT0hMCxZZVtfXT1ZZS5yZW1vdmUsWWUuc2V0SW49JGUuc2V0SW4sWWUuZGVsZXRlSW49WWUucmVtb3ZlSW49JGUucmVtb3ZlSW4sWWUudXBkYXRlPSRlLnVwZGF0ZSxZZS51cGRhdGVJbj0kZS51cGRhdGVJbixZZS5tZXJnZUluPSRlLm1lcmdlSW4sWWUubWVyZ2VEZWVwSW49JGUubWVyZ2VEZWVwSW4sWWUud2l0aE11dGF0aW9ucz0kZS53aXRoTXV0YXRpb25zLFllLmFzTXV0YWJsZT0kZS5hc011dGFibGUsWWUuYXNJbW11dGFibGU9JGUuYXNJbW11dGFibGUsWWUud2FzQWx0ZXJlZD0kZS53YXNBbHRlcmVkLFZOb2RlLnByb3RvdHlwZS5yZW1vdmVCZWZvcmU9ZnVuY3Rpb24ocyxvLGkpe2lmKGk9PT1vPzE8PG86MD09PXRoaXMuYXJyYXkubGVuZ3RoKXJldHVybiB0aGlzO3ZhciBhPWk+Pj5vJkM7aWYoYT49dGhpcy5hcnJheS5sZW5ndGgpcmV0dXJuIG5ldyBWTm9kZShbXSxzKTt2YXIgdSxfPTA9PT1hO2lmKG8+MCl7dmFyIHg9dGhpcy5hcnJheVthXTtpZigodT14JiZ4LnJlbW92ZUJlZm9yZShzLG8tdyxpKSk9PT14JiZfKXJldHVybiB0aGlzfWlmKF8mJiF1KXJldHVybiB0aGlzO3ZhciBqPWVkaXRhYmxlVk5vZGUodGhpcyxzKTtpZighXylmb3IodmFyIEw9MDtMPGE7TCsrKWouYXJyYXlbTF09dm9pZCAwO3JldHVybiB1JiYoai5hcnJheVthXT11KSxqfSxWTm9kZS5wcm90b3R5cGUucmVtb3ZlQWZ0ZXI9ZnVuY3Rpb24ocyxvLGkpe2lmKGk9PT0obz8xPDxvOjApfHwwPT09dGhpcy5hcnJheS5sZW5ndGgpcmV0dXJuIHRoaXM7dmFyIGEsdT1pLTE+Pj5vJkM7aWYodT49dGhpcy5hcnJheS5sZW5ndGgpcmV0dXJuIHRoaXM7aWYobz4wKXt2YXIgXz10aGlzLmFycmF5W3VdO2lmKChhPV8mJl8ucmVtb3ZlQWZ0ZXIocyxvLXcsaSkpPT09XyYmdT09PXRoaXMuYXJyYXkubGVuZ3RoLTEpcmV0dXJuIHRoaXN9dmFyIHg9ZWRpdGFibGVWTm9kZSh0aGlzLHMpO3JldHVybiB4LmFycmF5LnNwbGljZSh1KzEpLGEmJih4LmFycmF5W3VdPWEpLHh9O3ZhciBYZSxRZSxldD17fTtmdW5jdGlvbiBpdGVyYXRlTGlzdChzLG8pe3ZhciBpPXMuX29yaWdpbixhPXMuX2NhcGFjaXR5LHU9Z2V0VGFpbE9mZnNldChhKSxfPXMuX3RhaWw7cmV0dXJuIGl0ZXJhdGVOb2RlT3JMZWFmKHMuX3Jvb3Qscy5fbGV2ZWwsMCk7ZnVuY3Rpb24gaXRlcmF0ZU5vZGVPckxlYWYocyxvLGkpe3JldHVybiAwPT09bz9pdGVyYXRlTGVhZihzLGkpOml0ZXJhdGVOb2RlKHMsbyxpKX1mdW5jdGlvbiBpdGVyYXRlTGVhZihzLHcpe3ZhciBDPXc9PT11P18mJl8uYXJyYXk6cyYmcy5hcnJheSxqPXc+aT8wOmktdyxMPWEtdztyZXR1cm4gTD54JiYoTD14KSxmdW5jdGlvbigpe2lmKGo9PT1MKXJldHVybiBldDt2YXIgcz1vPy0tTDpqKys7cmV0dXJuIEMmJkNbc119fWZ1bmN0aW9uIGl0ZXJhdGVOb2RlKHMsdSxfKXt2YXIgQyxqPXMmJnMuYXJyYXksTD1fPmk/MDppLV8+PnUsQj0xKyhhLV8+PnUpO3JldHVybiBCPngmJihCPXgpLGZ1bmN0aW9uKCl7Zm9yKDs7KXtpZihDKXt2YXIgcz1DKCk7aWYocyE9PWV0KXJldHVybiBzO0M9bnVsbH1pZihMPT09QilyZXR1cm4gZXQ7dmFyIGk9bz8tLUI6TCsrO0M9aXRlcmF0ZU5vZGVPckxlYWYoaiYmaltpXSx1LXcsXysoaTw8dSkpfX19fWZ1bmN0aW9uIG1ha2VMaXN0KHMsbyxpLGEsdSxfLHcpe3ZhciB4PU9iamVjdC5jcmVhdGUoWWUpO3JldHVybiB4LnNpemU9by1zLHguX29yaWdpbj1zLHguX2NhcGFjaXR5PW8seC5fbGV2ZWw9aSx4Ll9yb290PWEseC5fdGFpbD11LHguX19vd25lcklEPV8seC5fX2hhc2g9dyx4Ll9fYWx0ZXJlZD0hMSx4fWZ1bmN0aW9uIGVtcHR5TGlzdCgpe3JldHVybiBYZXx8KFhlPW1ha2VMaXN0KDAsMCx3KSl9ZnVuY3Rpb24gdXBkYXRlTGlzdChzLG8saSl7aWYoKG89d3JhcEluZGV4KHMsbykpIT1vKXJldHVybiBzO2lmKG8+PXMuc2l6ZXx8bzwwKXJldHVybiBzLndpdGhNdXRhdGlvbnMoKGZ1bmN0aW9uKHMpe288MD9zZXRMaXN0Qm91bmRzKHMsbykuc2V0KDAsaSk6c2V0TGlzdEJvdW5kcyhzLDAsbysxKS5zZXQobyxpKX0pKTtvKz1zLl9vcmlnaW47dmFyIGE9cy5fdGFpbCx1PXMuX3Jvb3QsXz1NYWtlUmVmKEIpO3JldHVybiBvPj1nZXRUYWlsT2Zmc2V0KHMuX2NhcGFjaXR5KT9hPXVwZGF0ZVZOb2RlKGEscy5fX293bmVySUQsMCxvLGksXyk6dT11cGRhdGVWTm9kZSh1LHMuX19vd25lcklELHMuX2xldmVsLG8saSxfKSxfLnZhbHVlP3MuX19vd25lcklEPyhzLl9yb290PXUscy5fdGFpbD1hLHMuX19oYXNoPXZvaWQgMCxzLl9fYWx0ZXJlZD0hMCxzKTptYWtlTGlzdChzLl9vcmlnaW4scy5fY2FwYWNpdHkscy5fbGV2ZWwsdSxhKTpzfWZ1bmN0aW9uIHVwZGF0ZVZOb2RlKHMsbyxpLGEsdSxfKXt2YXIgeCxqPWE+Pj5pJkMsTD1zJiZqPHMuYXJyYXkubGVuZ3RoO2lmKCFMJiZ2b2lkIDA9PT11KXJldHVybiBzO2lmKGk+MCl7dmFyIEI9cyYmcy5hcnJheVtqXSwkPXVwZGF0ZVZOb2RlKEIsbyxpLXcsYSx1LF8pO3JldHVybiAkPT09Qj9zOigoeD1lZGl0YWJsZVZOb2RlKHMsbykpLmFycmF5W2pdPSQseCl9cmV0dXJuIEwmJnMuYXJyYXlbal09PT11P3M6KFNldFJlZihfKSx4PWVkaXRhYmxlVk5vZGUocyxvKSx2b2lkIDA9PT11JiZqPT09eC5hcnJheS5sZW5ndGgtMT94LmFycmF5LnBvcCgpOnguYXJyYXlbal09dSx4KX1mdW5jdGlvbiBlZGl0YWJsZVZOb2RlKHMsbyl7cmV0dXJuIG8mJnMmJm89PT1zLm93bmVySUQ/czpuZXcgVk5vZGUocz9zLmFycmF5LnNsaWNlKCk6W10sbyl9ZnVuY3Rpb24gbGlzdE5vZGVGb3IocyxvKXtpZihvPj1nZXRUYWlsT2Zmc2V0KHMuX2NhcGFjaXR5KSlyZXR1cm4gcy5fdGFpbDtpZihvPDE8PHMuX2xldmVsK3cpe2Zvcih2YXIgaT1zLl9yb290LGE9cy5fbGV2ZWw7aSYmYT4wOylpPWkuYXJyYXlbbz4+PmEmQ10sYS09dztyZXR1cm4gaX19ZnVuY3Rpb24gc2V0TGlzdEJvdW5kcyhzLG8saSl7dm9pZCAwIT09byYmKG98PTApLHZvaWQgMCE9PWkmJihpfD0wKTt2YXIgYT1zLl9fb3duZXJJRHx8bmV3IE93bmVySUQsdT1zLl9vcmlnaW4sXz1zLl9jYXBhY2l0eSx4PXUrbyxqPXZvaWQgMD09PWk/XzppPDA/XytpOnUraTtpZih4PT09dSYmaj09PV8pcmV0dXJuIHM7aWYoeD49ailyZXR1cm4gcy5jbGVhcigpO2Zvcih2YXIgTD1zLl9sZXZlbCxCPXMuX3Jvb3QsJD0wO3grJDwwOylCPW5ldyBWTm9kZShCJiZCLmFycmF5Lmxlbmd0aD9bdm9pZCAwLEJdOltdLGEpLCQrPTE8PChMKz13KTskJiYoeCs9JCx1Kz0kLGorPSQsXys9JCk7Zm9yKHZhciBWPWdldFRhaWxPZmZzZXQoXyksVT1nZXRUYWlsT2Zmc2V0KGopO1U+PTE8PEwrdzspQj1uZXcgVk5vZGUoQiYmQi5hcnJheS5sZW5ndGg/W0JdOltdLGEpLEwrPXc7dmFyIHo9cy5fdGFpbCxZPVU8Vj9saXN0Tm9kZUZvcihzLGotMSk6VT5WP25ldyBWTm9kZShbXSxhKTp6O2lmKHomJlU+ViYmeDxfJiZ6LmFycmF5Lmxlbmd0aCl7Zm9yKHZhciBaPUI9ZWRpdGFibGVWTm9kZShCLGEpLGVlPUw7ZWU+dztlZS09dyl7dmFyIGllPVY+Pj5lZSZDO1o9Wi5hcnJheVtpZV09ZWRpdGFibGVWTm9kZShaLmFycmF5W2llXSxhKX1aLmFycmF5W1Y+Pj53JkNdPXp9aWYoajxfJiYoWT1ZJiZZLnJlbW92ZUFmdGVyKGEsMCxqKSkseD49VSl4LT1VLGotPVUsTD13LEI9bnVsbCxZPVkmJlkucmVtb3ZlQmVmb3JlKGEsMCx4KTtlbHNlIGlmKHg+dXx8VTxWKXtmb3IoJD0wO0I7KXt2YXIgYWU9eD4+PkwmQztpZihhZSE9PVU+Pj5MJkMpYnJlYWs7YWUmJigkKz0oMTw8TCkqYWUpLEwtPXcsQj1CLmFycmF5W2FlXX1CJiZ4PnUmJihCPUIucmVtb3ZlQmVmb3JlKGEsTCx4LSQpKSxCJiZVPFYmJihCPUIucmVtb3ZlQWZ0ZXIoYSxMLFUtJCkpLCQmJih4LT0kLGotPSQpfXJldHVybiBzLl9fb3duZXJJRD8ocy5zaXplPWoteCxzLl9vcmlnaW49eCxzLl9jYXBhY2l0eT1qLHMuX2xldmVsPUwscy5fcm9vdD1CLHMuX3RhaWw9WSxzLl9faGFzaD12b2lkIDAscy5fX2FsdGVyZWQ9ITAscyk6bWFrZUxpc3QoeCxqLEwsQixZKX1mdW5jdGlvbiBtZXJnZUludG9MaXN0V2l0aChzLG8saSl7Zm9yKHZhciBhPVtdLHU9MCxfPTA7XzxpLmxlbmd0aDtfKyspe3ZhciB3PWlbX10seD1JbmRleGVkSXRlcmFibGUodyk7eC5zaXplPnUmJih1PXguc2l6ZSksaXNJdGVyYWJsZSh3KXx8KHg9eC5tYXAoKGZ1bmN0aW9uKHMpe3JldHVybiBmcm9tSlMocyl9KSkpLGEucHVzaCh4KX1yZXR1cm4gdT5zLnNpemUmJihzPXMuc2V0U2l6ZSh1KSksbWVyZ2VJbnRvQ29sbGVjdGlvbldpdGgocyxvLGEpfWZ1bmN0aW9uIGdldFRhaWxPZmZzZXQocyl7cmV0dXJuIHM8eD8wOnMtMT4+Pnc8PHd9ZnVuY3Rpb24gT3JkZXJlZE1hcChzKXtyZXR1cm4gbnVsbD09cz9lbXB0eU9yZGVyZWRNYXAoKTppc09yZGVyZWRNYXAocyk/czplbXB0eU9yZGVyZWRNYXAoKS53aXRoTXV0YXRpb25zKChmdW5jdGlvbihvKXt2YXIgaT1LZXllZEl0ZXJhYmxlKHMpO2Fzc2VydE5vdEluZmluaXRlKGkuc2l6ZSksaS5mb3JFYWNoKChmdW5jdGlvbihzLGkpe3JldHVybiBvLnNldChpLHMpfSkpfSkpfWZ1bmN0aW9uIGlzT3JkZXJlZE1hcChzKXtyZXR1cm4gaXNNYXAocykmJmlzT3JkZXJlZChzKX1mdW5jdGlvbiBtYWtlT3JkZXJlZE1hcChzLG8saSxhKXt2YXIgdT1PYmplY3QuY3JlYXRlKE9yZGVyZWRNYXAucHJvdG90eXBlKTtyZXR1cm4gdS5zaXplPXM/cy5zaXplOjAsdS5fbWFwPXMsdS5fbGlzdD1vLHUuX19vd25lcklEPWksdS5fX2hhc2g9YSx1fWZ1bmN0aW9uIGVtcHR5T3JkZXJlZE1hcCgpe3JldHVybiBRZXx8KFFlPW1ha2VPcmRlcmVkTWFwKGVtcHR5TWFwKCksZW1wdHlMaXN0KCkpKX1mdW5jdGlvbiB1cGRhdGVPcmRlcmVkTWFwKHMsbyxpKXt2YXIgYSx1LF89cy5fbWFwLHc9cy5fbGlzdCxDPV8uZ2V0KG8pLEw9dm9pZCAwIT09QztpZihpPT09ail7aWYoIUwpcmV0dXJuIHM7dy5zaXplPj14JiZ3LnNpemU+PTIqXy5zaXplPyhhPSh1PXcuZmlsdGVyKChmdW5jdGlvbihzLG8pe3JldHVybiB2b2lkIDAhPT1zJiZDIT09b30pKSkudG9LZXllZFNlcSgpLm1hcCgoZnVuY3Rpb24ocyl7cmV0dXJuIHNbMF19KSkuZmxpcCgpLnRvTWFwKCkscy5fX293bmVySUQmJihhLl9fb3duZXJJRD11Ll9fb3duZXJJRD1zLl9fb3duZXJJRCkpOihhPV8ucmVtb3ZlKG8pLHU9Qz09PXcuc2l6ZS0xP3cucG9wKCk6dy5zZXQoQyx2b2lkIDApKX1lbHNlIGlmKEwpe2lmKGk9PT13LmdldChDKVsxXSlyZXR1cm4gczthPV8sdT13LnNldChDLFtvLGldKX1lbHNlIGE9Xy5zZXQobyx3LnNpemUpLHU9dy5zZXQody5zaXplLFtvLGldKTtyZXR1cm4gcy5fX293bmVySUQ/KHMuc2l6ZT1hLnNpemUscy5fbWFwPWEscy5fbGlzdD11LHMuX19oYXNoPXZvaWQgMCxzKTptYWtlT3JkZXJlZE1hcChhLHUpfWZ1bmN0aW9uIFRvS2V5ZWRTZXF1ZW5jZShzLG8pe3RoaXMuX2l0ZXI9cyx0aGlzLl91c2VLZXlzPW8sdGhpcy5zaXplPXMuc2l6ZX1mdW5jdGlvbiBUb0luZGV4ZWRTZXF1ZW5jZShzKXt0aGlzLl9pdGVyPXMsdGhpcy5zaXplPXMuc2l6ZX1mdW5jdGlvbiBUb1NldFNlcXVlbmNlKHMpe3RoaXMuX2l0ZXI9cyx0aGlzLnNpemU9cy5zaXplfWZ1bmN0aW9uIEZyb21FbnRyaWVzU2VxdWVuY2Uocyl7dGhpcy5faXRlcj1zLHRoaXMuc2l6ZT1zLnNpemV9ZnVuY3Rpb24gZmxpcEZhY3Rvcnkocyl7dmFyIG89bWFrZVNlcXVlbmNlKHMpO3JldHVybiBvLl9pdGVyPXMsby5zaXplPXMuc2l6ZSxvLmZsaXA9ZnVuY3Rpb24oKXtyZXR1cm4gc30sby5yZXZlcnNlPWZ1bmN0aW9uKCl7dmFyIG89cy5yZXZlcnNlLmFwcGx5KHRoaXMpO3JldHVybiBvLmZsaXA9ZnVuY3Rpb24oKXtyZXR1cm4gcy5yZXZlcnNlKCl9LG99LG8uaGFzPWZ1bmN0aW9uKG8pe3JldHVybiBzLmluY2x1ZGVzKG8pfSxvLmluY2x1ZGVzPWZ1bmN0aW9uKG8pe3JldHVybiBzLmhhcyhvKX0sby5jYWNoZVJlc3VsdD1jYWNoZVJlc3VsdFRocm91Z2gsby5fX2l0ZXJhdGVVbmNhY2hlZD1mdW5jdGlvbihvLGkpe3ZhciBhPXRoaXM7cmV0dXJuIHMuX19pdGVyYXRlKChmdW5jdGlvbihzLGkpe3JldHVybiExIT09byhpLHMsYSl9KSxpKX0sby5fX2l0ZXJhdG9yVW5jYWNoZWQ9ZnVuY3Rpb24obyxpKXtpZihvPT09VSl7dmFyIGE9cy5fX2l0ZXJhdG9yKG8saSk7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXt2YXIgcz1hLm5leHQoKTtpZighcy5kb25lKXt2YXIgbz1zLnZhbHVlWzBdO3MudmFsdWVbMF09cy52YWx1ZVsxXSxzLnZhbHVlWzFdPW99cmV0dXJuIHN9KSl9cmV0dXJuIHMuX19pdGVyYXRvcihvPT09Vj8kOlYsaSl9LG99ZnVuY3Rpb24gbWFwRmFjdG9yeShzLG8saSl7dmFyIGE9bWFrZVNlcXVlbmNlKHMpO3JldHVybiBhLnNpemU9cy5zaXplLGEuaGFzPWZ1bmN0aW9uKG8pe3JldHVybiBzLmhhcyhvKX0sYS5nZXQ9ZnVuY3Rpb24oYSx1KXt2YXIgXz1zLmdldChhLGopO3JldHVybiBfPT09aj91Om8uY2FsbChpLF8sYSxzKX0sYS5fX2l0ZXJhdGVVbmNhY2hlZD1mdW5jdGlvbihhLHUpe3ZhciBfPXRoaXM7cmV0dXJuIHMuX19pdGVyYXRlKChmdW5jdGlvbihzLHUsdyl7cmV0dXJuITEhPT1hKG8uY2FsbChpLHMsdSx3KSx1LF8pfSksdSl9LGEuX19pdGVyYXRvclVuY2FjaGVkPWZ1bmN0aW9uKGEsdSl7dmFyIF89cy5fX2l0ZXJhdG9yKFUsdSk7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXt2YXIgdT1fLm5leHQoKTtpZih1LmRvbmUpcmV0dXJuIHU7dmFyIHc9dS52YWx1ZSx4PXdbMF07cmV0dXJuIGl0ZXJhdG9yVmFsdWUoYSx4LG8uY2FsbChpLHdbMV0seCxzKSx1KX0pKX0sYX1mdW5jdGlvbiByZXZlcnNlRmFjdG9yeShzLG8pe3ZhciBpPW1ha2VTZXF1ZW5jZShzKTtyZXR1cm4gaS5faXRlcj1zLGkuc2l6ZT1zLnNpemUsaS5yZXZlcnNlPWZ1bmN0aW9uKCl7cmV0dXJuIHN9LHMuZmxpcCYmKGkuZmxpcD1mdW5jdGlvbigpe3ZhciBvPWZsaXBGYWN0b3J5KHMpO3JldHVybiBvLnJldmVyc2U9ZnVuY3Rpb24oKXtyZXR1cm4gcy5mbGlwKCl9LG99KSxpLmdldD1mdW5jdGlvbihpLGEpe3JldHVybiBzLmdldChvP2k6LTEtaSxhKX0saS5oYXM9ZnVuY3Rpb24oaSl7cmV0dXJuIHMuaGFzKG8/aTotMS1pKX0saS5pbmNsdWRlcz1mdW5jdGlvbihvKXtyZXR1cm4gcy5pbmNsdWRlcyhvKX0saS5jYWNoZVJlc3VsdD1jYWNoZVJlc3VsdFRocm91Z2gsaS5fX2l0ZXJhdGU9ZnVuY3Rpb24obyxpKXt2YXIgYT10aGlzO3JldHVybiBzLl9faXRlcmF0ZSgoZnVuY3Rpb24ocyxpKXtyZXR1cm4gbyhzLGksYSl9KSwhaSl9LGkuX19pdGVyYXRvcj1mdW5jdGlvbihvLGkpe3JldHVybiBzLl9faXRlcmF0b3IobywhaSl9LGl9ZnVuY3Rpb24gZmlsdGVyRmFjdG9yeShzLG8saSxhKXt2YXIgdT1tYWtlU2VxdWVuY2Uocyk7cmV0dXJuIGEmJih1Lmhhcz1mdW5jdGlvbihhKXt2YXIgdT1zLmdldChhLGopO3JldHVybiB1IT09aiYmISFvLmNhbGwoaSx1LGEscyl9LHUuZ2V0PWZ1bmN0aW9uKGEsdSl7dmFyIF89cy5nZXQoYSxqKTtyZXR1cm4gXyE9PWomJm8uY2FsbChpLF8sYSxzKT9fOnV9KSx1Ll9faXRlcmF0ZVVuY2FjaGVkPWZ1bmN0aW9uKHUsXyl7dmFyIHc9dGhpcyx4PTA7cmV0dXJuIHMuX19pdGVyYXRlKChmdW5jdGlvbihzLF8sQyl7aWYoby5jYWxsKGkscyxfLEMpKXJldHVybiB4KyssdShzLGE/Xzp4LTEsdyl9KSxfKSx4fSx1Ll9faXRlcmF0b3JVbmNhY2hlZD1mdW5jdGlvbih1LF8pe3ZhciB3PXMuX19pdGVyYXRvcihVLF8pLHg9MDtyZXR1cm4gbmV3IEl0ZXJhdG9yKChmdW5jdGlvbigpe2Zvcig7Oyl7dmFyIF89dy5uZXh0KCk7aWYoXy5kb25lKXJldHVybiBfO3ZhciBDPV8udmFsdWUsaj1DWzBdLEw9Q1sxXTtpZihvLmNhbGwoaSxMLGoscykpcmV0dXJuIGl0ZXJhdG9yVmFsdWUodSxhP2o6eCsrLEwsXyl9fSkpfSx1fWZ1bmN0aW9uIGNvdW50QnlGYWN0b3J5KHMsbyxpKXt2YXIgYT1NYXAoKS5hc011dGFibGUoKTtyZXR1cm4gcy5fX2l0ZXJhdGUoKGZ1bmN0aW9uKHUsXyl7YS51cGRhdGUoby5jYWxsKGksdSxfLHMpLDAsKGZ1bmN0aW9uKHMpe3JldHVybiBzKzF9KSl9KSksYS5hc0ltbXV0YWJsZSgpfWZ1bmN0aW9uIGdyb3VwQnlGYWN0b3J5KHMsbyxpKXt2YXIgYT1pc0tleWVkKHMpLHU9KGlzT3JkZXJlZChzKT9PcmRlcmVkTWFwKCk6TWFwKCkpLmFzTXV0YWJsZSgpO3MuX19pdGVyYXRlKChmdW5jdGlvbihfLHcpe3UudXBkYXRlKG8uY2FsbChpLF8sdyxzKSwoZnVuY3Rpb24ocyl7cmV0dXJuKHM9c3x8W10pLnB1c2goYT9bdyxfXTpfKSxzfSkpfSkpO3ZhciBfPWl0ZXJhYmxlQ2xhc3Mocyk7cmV0dXJuIHUubWFwKChmdW5jdGlvbihvKXtyZXR1cm4gcmVpZnkocyxfKG8pKX0pKX1mdW5jdGlvbiBzbGljZUZhY3RvcnkocyxvLGksYSl7dmFyIHU9cy5zaXplO2lmKHZvaWQgMCE9PW8mJihvfD0wKSx2b2lkIDAhPT1pJiYoaT09PTEvMD9pPXU6aXw9MCksd2hvbGVTbGljZShvLGksdSkpcmV0dXJuIHM7dmFyIF89cmVzb2x2ZUJlZ2luKG8sdSksdz1yZXNvbHZlRW5kKGksdSk7aWYoXyE9X3x8dyE9dylyZXR1cm4gc2xpY2VGYWN0b3J5KHMudG9TZXEoKS5jYWNoZVJlc3VsdCgpLG8saSxhKTt2YXIgeCxDPXctXztDPT1DJiYoeD1DPDA/MDpDKTt2YXIgaj1tYWtlU2VxdWVuY2Uocyk7cmV0dXJuIGouc2l6ZT0wPT09eD94OnMuc2l6ZSYmeHx8dm9pZCAwLCFhJiZpc1NlcShzKSYmeD49MCYmKGouZ2V0PWZ1bmN0aW9uKG8saSl7cmV0dXJuKG89d3JhcEluZGV4KHRoaXMsbykpPj0wJiZvPHg/cy5nZXQobytfLGkpOml9KSxqLl9faXRlcmF0ZVVuY2FjaGVkPWZ1bmN0aW9uKG8saSl7dmFyIHU9dGhpcztpZigwPT09eClyZXR1cm4gMDtpZihpKXJldHVybiB0aGlzLmNhY2hlUmVzdWx0KCkuX19pdGVyYXRlKG8saSk7dmFyIHc9MCxDPSEwLGo9MDtyZXR1cm4gcy5fX2l0ZXJhdGUoKGZ1bmN0aW9uKHMsaSl7aWYoIUN8fCEoQz13Kys8XykpcmV0dXJuIGorKywhMSE9PW8ocyxhP2k6ai0xLHUpJiZqIT09eH0pKSxqfSxqLl9faXRlcmF0b3JVbmNhY2hlZD1mdW5jdGlvbihvLGkpe2lmKDAhPT14JiZpKXJldHVybiB0aGlzLmNhY2hlUmVzdWx0KCkuX19pdGVyYXRvcihvLGkpO3ZhciB1PTAhPT14JiZzLl9faXRlcmF0b3IobyxpKSx3PTAsQz0wO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7Zm9yKDt3Kys8XzspdS5uZXh0KCk7aWYoKytDPngpcmV0dXJuIGl0ZXJhdG9yRG9uZSgpO3ZhciBzPXUubmV4dCgpO3JldHVybiBhfHxvPT09Vj9zOml0ZXJhdG9yVmFsdWUobyxDLTEsbz09PSQ/dm9pZCAwOnMudmFsdWVbMV0scyl9KSl9LGp9ZnVuY3Rpb24gdGFrZVdoaWxlRmFjdG9yeShzLG8saSl7dmFyIGE9bWFrZVNlcXVlbmNlKHMpO3JldHVybiBhLl9faXRlcmF0ZVVuY2FjaGVkPWZ1bmN0aW9uKGEsdSl7dmFyIF89dGhpcztpZih1KXJldHVybiB0aGlzLmNhY2hlUmVzdWx0KCkuX19pdGVyYXRlKGEsdSk7dmFyIHc9MDtyZXR1cm4gcy5fX2l0ZXJhdGUoKGZ1bmN0aW9uKHMsdSx4KXtyZXR1cm4gby5jYWxsKGkscyx1LHgpJiYrK3cmJmEocyx1LF8pfSkpLHd9LGEuX19pdGVyYXRvclVuY2FjaGVkPWZ1bmN0aW9uKGEsdSl7dmFyIF89dGhpcztpZih1KXJldHVybiB0aGlzLmNhY2hlUmVzdWx0KCkuX19pdGVyYXRvcihhLHUpO3ZhciB3PXMuX19pdGVyYXRvcihVLHUpLHg9ITA7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXtpZigheClyZXR1cm4gaXRlcmF0b3JEb25lKCk7dmFyIHM9dy5uZXh0KCk7aWYocy5kb25lKXJldHVybiBzO3ZhciB1PXMudmFsdWUsQz11WzBdLGo9dVsxXTtyZXR1cm4gby5jYWxsKGksaixDLF8pP2E9PT1VP3M6aXRlcmF0b3JWYWx1ZShhLEMsaixzKTooeD0hMSxpdGVyYXRvckRvbmUoKSl9KSl9LGF9ZnVuY3Rpb24gc2tpcFdoaWxlRmFjdG9yeShzLG8saSxhKXt2YXIgdT1tYWtlU2VxdWVuY2Uocyk7cmV0dXJuIHUuX19pdGVyYXRlVW5jYWNoZWQ9ZnVuY3Rpb24odSxfKXt2YXIgdz10aGlzO2lmKF8pcmV0dXJuIHRoaXMuY2FjaGVSZXN1bHQoKS5fX2l0ZXJhdGUodSxfKTt2YXIgeD0hMCxDPTA7cmV0dXJuIHMuX19pdGVyYXRlKChmdW5jdGlvbihzLF8sail7aWYoIXh8fCEoeD1vLmNhbGwoaSxzLF8saikpKXJldHVybiBDKyssdShzLGE/XzpDLTEsdyl9KSksQ30sdS5fX2l0ZXJhdG9yVW5jYWNoZWQ9ZnVuY3Rpb24odSxfKXt2YXIgdz10aGlzO2lmKF8pcmV0dXJuIHRoaXMuY2FjaGVSZXN1bHQoKS5fX2l0ZXJhdG9yKHUsXyk7dmFyIHg9cy5fX2l0ZXJhdG9yKFUsXyksQz0hMCxqPTA7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXt2YXIgcyxfLEw7ZG97aWYoKHM9eC5uZXh0KCkpLmRvbmUpcmV0dXJuIGF8fHU9PT1WP3M6aXRlcmF0b3JWYWx1ZSh1LGorKyx1PT09JD92b2lkIDA6cy52YWx1ZVsxXSxzKTt2YXIgQj1zLnZhbHVlO189QlswXSxMPUJbMV0sQyYmKEM9by5jYWxsKGksTCxfLHcpKX13aGlsZShDKTtyZXR1cm4gdT09PVU/czppdGVyYXRvclZhbHVlKHUsXyxMLHMpfSkpfSx1fWZ1bmN0aW9uIGNvbmNhdEZhY3RvcnkocyxvKXt2YXIgaT1pc0tleWVkKHMpLGE9W3NdLmNvbmNhdChvKS5tYXAoKGZ1bmN0aW9uKHMpe3JldHVybiBpc0l0ZXJhYmxlKHMpP2kmJihzPUtleWVkSXRlcmFibGUocykpOnM9aT9rZXllZFNlcUZyb21WYWx1ZShzKTppbmRleGVkU2VxRnJvbVZhbHVlKEFycmF5LmlzQXJyYXkocyk/czpbc10pLHN9KSkuZmlsdGVyKChmdW5jdGlvbihzKXtyZXR1cm4gMCE9PXMuc2l6ZX0pKTtpZigwPT09YS5sZW5ndGgpcmV0dXJuIHM7aWYoMT09PWEubGVuZ3RoKXt2YXIgdT1hWzBdO2lmKHU9PT1zfHxpJiZpc0tleWVkKHUpfHxpc0luZGV4ZWQocykmJmlzSW5kZXhlZCh1KSlyZXR1cm4gdX12YXIgXz1uZXcgQXJyYXlTZXEoYSk7cmV0dXJuIGk/Xz1fLnRvS2V5ZWRTZXEoKTppc0luZGV4ZWQocyl8fChfPV8udG9TZXRTZXEoKSksKF89Xy5mbGF0dGVuKCEwKSkuc2l6ZT1hLnJlZHVjZSgoZnVuY3Rpb24ocyxvKXtpZih2b2lkIDAhPT1zKXt2YXIgaT1vLnNpemU7aWYodm9pZCAwIT09aSlyZXR1cm4gcytpfX0pLDApLF99ZnVuY3Rpb24gZmxhdHRlbkZhY3RvcnkocyxvLGkpe3ZhciBhPW1ha2VTZXF1ZW5jZShzKTtyZXR1cm4gYS5fX2l0ZXJhdGVVbmNhY2hlZD1mdW5jdGlvbihhLHUpe3ZhciBfPTAsdz0hMTtmdW5jdGlvbiBmbGF0RGVlcChzLHgpe3ZhciBDPXRoaXM7cy5fX2l0ZXJhdGUoKGZ1bmN0aW9uKHMsdSl7cmV0dXJuKCFvfHx4PG8pJiZpc0l0ZXJhYmxlKHMpP2ZsYXREZWVwKHMseCsxKTohMT09PWEocyxpP3U6XysrLEMpJiYodz0hMCksIXd9KSx1KX1yZXR1cm4gZmxhdERlZXAocywwKSxffSxhLl9faXRlcmF0b3JVbmNhY2hlZD1mdW5jdGlvbihhLHUpe3ZhciBfPXMuX19pdGVyYXRvcihhLHUpLHc9W10seD0wO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7Zm9yKDtfOyl7dmFyIHM9Xy5uZXh0KCk7aWYoITE9PT1zLmRvbmUpe3ZhciBDPXMudmFsdWU7aWYoYT09PVUmJihDPUNbMV0pLG8mJiEody5sZW5ndGg8byl8fCFpc0l0ZXJhYmxlKEMpKXJldHVybiBpP3M6aXRlcmF0b3JWYWx1ZShhLHgrKyxDLHMpO3cucHVzaChfKSxfPUMuX19pdGVyYXRvcihhLHUpfWVsc2UgXz13LnBvcCgpfXJldHVybiBpdGVyYXRvckRvbmUoKX0pKX0sYX1mdW5jdGlvbiBmbGF0TWFwRmFjdG9yeShzLG8saSl7dmFyIGE9aXRlcmFibGVDbGFzcyhzKTtyZXR1cm4gcy50b1NlcSgpLm1hcCgoZnVuY3Rpb24odSxfKXtyZXR1cm4gYShvLmNhbGwoaSx1LF8scykpfSkpLmZsYXR0ZW4oITApfWZ1bmN0aW9uIGludGVycG9zZUZhY3RvcnkocyxvKXt2YXIgaT1tYWtlU2VxdWVuY2Uocyk7cmV0dXJuIGkuc2l6ZT1zLnNpemUmJjIqcy5zaXplLTEsaS5fX2l0ZXJhdGVVbmNhY2hlZD1mdW5jdGlvbihpLGEpe3ZhciB1PXRoaXMsXz0wO3JldHVybiBzLl9faXRlcmF0ZSgoZnVuY3Rpb24ocyxhKXtyZXR1cm4oIV98fCExIT09aShvLF8rKyx1KSkmJiExIT09aShzLF8rKyx1KX0pLGEpLF99LGkuX19pdGVyYXRvclVuY2FjaGVkPWZ1bmN0aW9uKGksYSl7dmFyIHUsXz1zLl9faXRlcmF0b3IoVixhKSx3PTA7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXtyZXR1cm4oIXV8fHclMikmJih1PV8ubmV4dCgpKS5kb25lP3U6dyUyP2l0ZXJhdG9yVmFsdWUoaSx3Kyssbyk6aXRlcmF0b3JWYWx1ZShpLHcrKyx1LnZhbHVlLHUpfSkpfSxpfWZ1bmN0aW9uIHNvcnRGYWN0b3J5KHMsbyxpKXtvfHwobz1kZWZhdWx0Q29tcGFyYXRvcik7dmFyIGE9aXNLZXllZChzKSx1PTAsXz1zLnRvU2VxKCkubWFwKChmdW5jdGlvbihvLGEpe3JldHVyblthLG8sdSsrLGk/aShvLGEscyk6b119KSkudG9BcnJheSgpO3JldHVybiBfLnNvcnQoKGZ1bmN0aW9uKHMsaSl7cmV0dXJuIG8oc1szXSxpWzNdKXx8c1syXS1pWzJdfSkpLmZvckVhY2goYT9mdW5jdGlvbihzLG8pe19bb10ubGVuZ3RoPTJ9OmZ1bmN0aW9uKHMsbyl7X1tvXT1zWzFdfSksYT9LZXllZFNlcShfKTppc0luZGV4ZWQocyk/SW5kZXhlZFNlcShfKTpTZXRTZXEoXyl9ZnVuY3Rpb24gbWF4RmFjdG9yeShzLG8saSl7aWYob3x8KG89ZGVmYXVsdENvbXBhcmF0b3IpLGkpe3ZhciBhPXMudG9TZXEoKS5tYXAoKGZ1bmN0aW9uKG8sYSl7cmV0dXJuW28saShvLGEscyldfSkpLnJlZHVjZSgoZnVuY3Rpb24ocyxpKXtyZXR1cm4gbWF4Q29tcGFyZShvLHNbMV0saVsxXSk/aTpzfSkpO3JldHVybiBhJiZhWzBdfXJldHVybiBzLnJlZHVjZSgoZnVuY3Rpb24ocyxpKXtyZXR1cm4gbWF4Q29tcGFyZShvLHMsaSk/aTpzfSkpfWZ1bmN0aW9uIG1heENvbXBhcmUocyxvLGkpe3ZhciBhPXMoaSxvKTtyZXR1cm4gMD09PWEmJmkhPT1vJiYobnVsbD09aXx8aSE9aSl8fGE+MH1mdW5jdGlvbiB6aXBXaXRoRmFjdG9yeShzLG8saSl7dmFyIGE9bWFrZVNlcXVlbmNlKHMpO3JldHVybiBhLnNpemU9bmV3IEFycmF5U2VxKGkpLm1hcCgoZnVuY3Rpb24ocyl7cmV0dXJuIHMuc2l6ZX0pKS5taW4oKSxhLl9faXRlcmF0ZT1mdW5jdGlvbihzLG8pe2Zvcih2YXIgaSxhPXRoaXMuX19pdGVyYXRvcihWLG8pLHU9MDshKGk9YS5uZXh0KCkpLmRvbmUmJiExIT09cyhpLnZhbHVlLHUrKyx0aGlzKTspO3JldHVybiB1fSxhLl9faXRlcmF0b3JVbmNhY2hlZD1mdW5jdGlvbihzLGEpe3ZhciB1PWkubWFwKChmdW5jdGlvbihzKXtyZXR1cm4gcz1JdGVyYWJsZShzKSxnZXRJdGVyYXRvcihhP3MucmV2ZXJzZSgpOnMpfSkpLF89MCx3PSExO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7dmFyIGk7cmV0dXJuIHd8fChpPXUubWFwKChmdW5jdGlvbihzKXtyZXR1cm4gcy5uZXh0KCl9KSksdz1pLnNvbWUoKGZ1bmN0aW9uKHMpe3JldHVybiBzLmRvbmV9KSkpLHc/aXRlcmF0b3JEb25lKCk6aXRlcmF0b3JWYWx1ZShzLF8rKyxvLmFwcGx5KG51bGwsaS5tYXAoKGZ1bmN0aW9uKHMpe3JldHVybiBzLnZhbHVlfSkpKSl9KSl9LGF9ZnVuY3Rpb24gcmVpZnkocyxvKXtyZXR1cm4gaXNTZXEocyk/bzpzLmNvbnN0cnVjdG9yKG8pfWZ1bmN0aW9uIHZhbGlkYXRlRW50cnkocyl7aWYocyE9PU9iamVjdChzKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBbSywgVl0gdHVwbGU6ICIrcyl9ZnVuY3Rpb24gcmVzb2x2ZVNpemUocyl7cmV0dXJuIGFzc2VydE5vdEluZmluaXRlKHMuc2l6ZSksZW5zdXJlU2l6ZShzKX1mdW5jdGlvbiBpdGVyYWJsZUNsYXNzKHMpe3JldHVybiBpc0tleWVkKHMpP0tleWVkSXRlcmFibGU6aXNJbmRleGVkKHMpP0luZGV4ZWRJdGVyYWJsZTpTZXRJdGVyYWJsZX1mdW5jdGlvbiBtYWtlU2VxdWVuY2Uocyl7cmV0dXJuIE9iamVjdC5jcmVhdGUoKGlzS2V5ZWQocyk/S2V5ZWRTZXE6aXNJbmRleGVkKHMpP0luZGV4ZWRTZXE6U2V0U2VxKS5wcm90b3R5cGUpfWZ1bmN0aW9uIGNhY2hlUmVzdWx0VGhyb3VnaCgpe3JldHVybiB0aGlzLl9pdGVyLmNhY2hlUmVzdWx0Pyh0aGlzLl9pdGVyLmNhY2hlUmVzdWx0KCksdGhpcy5zaXplPXRoaXMuX2l0ZXIuc2l6ZSx0aGlzKTpTZXEucHJvdG90eXBlLmNhY2hlUmVzdWx0LmNhbGwodGhpcyl9ZnVuY3Rpb24gZGVmYXVsdENvbXBhcmF0b3IocyxvKXtyZXR1cm4gcz5vPzE6czxvPy0xOjB9ZnVuY3Rpb24gZm9yY2VJdGVyYXRvcihzKXt2YXIgbz1nZXRJdGVyYXRvcihzKTtpZighbyl7aWYoIWlzQXJyYXlMaWtlKHMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGl0ZXJhYmxlIG9yIGFycmF5LWxpa2U6ICIrcyk7bz1nZXRJdGVyYXRvcihJdGVyYWJsZShzKSl9cmV0dXJuIG99ZnVuY3Rpb24gUmVjb3JkKHMsbyl7dmFyIGksYT1mdW5jdGlvbiBSZWNvcmQoXyl7aWYoXyBpbnN0YW5jZW9mIGEpcmV0dXJuIF87aWYoISh0aGlzIGluc3RhbmNlb2YgYSkpcmV0dXJuIG5ldyBhKF8pO2lmKCFpKXtpPSEwO3ZhciB3PU9iamVjdC5rZXlzKHMpO3NldFByb3BzKHUsdyksdS5zaXplPXcubGVuZ3RoLHUuX25hbWU9byx1Ll9rZXlzPXcsdS5fZGVmYXVsdFZhbHVlcz1zfXRoaXMuX21hcD1NYXAoXyl9LHU9YS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0dCk7cmV0dXJuIHUuY29uc3RydWN0b3I9YSxhfWNyZWF0ZUNsYXNzKE9yZGVyZWRNYXAsTWFwKSxPcmRlcmVkTWFwLm9mPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMoYXJndW1lbnRzKX0sT3JkZXJlZE1hcC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX3RvU3RyaW5nKCJPcmRlcmVkTWFwIHsiLCJ9Iil9LE9yZGVyZWRNYXAucHJvdG90eXBlLmdldD1mdW5jdGlvbihzLG8pe3ZhciBpPXRoaXMuX21hcC5nZXQocyk7cmV0dXJuIHZvaWQgMCE9PWk/dGhpcy5fbGlzdC5nZXQoaSlbMV06b30sT3JkZXJlZE1hcC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuc2l6ZT90aGlzOnRoaXMuX19vd25lcklEPyh0aGlzLnNpemU9MCx0aGlzLl9tYXAuY2xlYXIoKSx0aGlzLl9saXN0LmNsZWFyKCksdGhpcyk6ZW1wdHlPcmRlcmVkTWFwKCl9LE9yZGVyZWRNYXAucHJvdG90eXBlLnNldD1mdW5jdGlvbihzLG8pe3JldHVybiB1cGRhdGVPcmRlcmVkTWFwKHRoaXMscyxvKX0sT3JkZXJlZE1hcC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHMpe3JldHVybiB1cGRhdGVPcmRlcmVkTWFwKHRoaXMscyxqKX0sT3JkZXJlZE1hcC5wcm90b3R5cGUud2FzQWx0ZXJlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXAud2FzQWx0ZXJlZCgpfHx0aGlzLl9saXN0Lndhc0FsdGVyZWQoKX0sT3JkZXJlZE1hcC5wcm90b3R5cGUuX19pdGVyYXRlPWZ1bmN0aW9uKHMsbyl7dmFyIGk9dGhpcztyZXR1cm4gdGhpcy5fbGlzdC5fX2l0ZXJhdGUoKGZ1bmN0aW9uKG8pe3JldHVybiBvJiZzKG9bMV0sb1swXSxpKX0pLG8pfSxPcmRlcmVkTWFwLnByb3RvdHlwZS5fX2l0ZXJhdG9yPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHRoaXMuX2xpc3QuZnJvbUVudHJ5U2VxKCkuX19pdGVyYXRvcihzLG8pfSxPcmRlcmVkTWFwLnByb3RvdHlwZS5fX2Vuc3VyZU93bmVyPWZ1bmN0aW9uKHMpe2lmKHM9PT10aGlzLl9fb3duZXJJRClyZXR1cm4gdGhpczt2YXIgbz10aGlzLl9tYXAuX19lbnN1cmVPd25lcihzKSxpPXRoaXMuX2xpc3QuX19lbnN1cmVPd25lcihzKTtyZXR1cm4gcz9tYWtlT3JkZXJlZE1hcChvLGkscyx0aGlzLl9faGFzaCk6KHRoaXMuX19vd25lcklEPXMsdGhpcy5fbWFwPW8sdGhpcy5fbGlzdD1pLHRoaXMpfSxPcmRlcmVkTWFwLmlzT3JkZXJlZE1hcD1pc09yZGVyZWRNYXAsT3JkZXJlZE1hcC5wcm90b3R5cGVbdV09ITAsT3JkZXJlZE1hcC5wcm90b3R5cGVbX109T3JkZXJlZE1hcC5wcm90b3R5cGUucmVtb3ZlLGNyZWF0ZUNsYXNzKFRvS2V5ZWRTZXF1ZW5jZSxLZXllZFNlcSksVG9LZXllZFNlcXVlbmNlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdGhpcy5faXRlci5nZXQocyxvKX0sVG9LZXllZFNlcXVlbmNlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMuX2l0ZXIuaGFzKHMpfSxUb0tleWVkU2VxdWVuY2UucHJvdG90eXBlLnZhbHVlU2VxPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2l0ZXIudmFsdWVTZXEoKX0sVG9LZXllZFNlcXVlbmNlLnByb3RvdHlwZS5yZXZlcnNlPWZ1bmN0aW9uKCl7dmFyIHM9dGhpcyxvPXJldmVyc2VGYWN0b3J5KHRoaXMsITApO3JldHVybiB0aGlzLl91c2VLZXlzfHwoby52YWx1ZVNlcT1mdW5jdGlvbigpe3JldHVybiBzLl9pdGVyLnRvU2VxKCkucmV2ZXJzZSgpfSksb30sVG9LZXllZFNlcXVlbmNlLnByb3RvdHlwZS5tYXA9ZnVuY3Rpb24ocyxvKXt2YXIgaT10aGlzLGE9bWFwRmFjdG9yeSh0aGlzLHMsbyk7cmV0dXJuIHRoaXMuX3VzZUtleXN8fChhLnZhbHVlU2VxPWZ1bmN0aW9uKCl7cmV0dXJuIGkuX2l0ZXIudG9TZXEoKS5tYXAocyxvKX0pLGF9LFRvS2V5ZWRTZXF1ZW5jZS5wcm90b3R5cGUuX19pdGVyYXRlPWZ1bmN0aW9uKHMsbyl7dmFyIGksYT10aGlzO3JldHVybiB0aGlzLl9pdGVyLl9faXRlcmF0ZSh0aGlzLl91c2VLZXlzP2Z1bmN0aW9uKG8saSl7cmV0dXJuIHMobyxpLGEpfTooaT1vP3Jlc29sdmVTaXplKHRoaXMpOjAsZnVuY3Rpb24odSl7cmV0dXJuIHModSxvPy0taTppKyssYSl9KSxvKX0sVG9LZXllZFNlcXVlbmNlLnByb3RvdHlwZS5fX2l0ZXJhdG9yPWZ1bmN0aW9uKHMsbyl7aWYodGhpcy5fdXNlS2V5cylyZXR1cm4gdGhpcy5faXRlci5fX2l0ZXJhdG9yKHMsbyk7dmFyIGk9dGhpcy5faXRlci5fX2l0ZXJhdG9yKFYsbyksYT1vP3Jlc29sdmVTaXplKHRoaXMpOjA7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXt2YXIgdT1pLm5leHQoKTtyZXR1cm4gdS5kb25lP3U6aXRlcmF0b3JWYWx1ZShzLG8/LS1hOmErKyx1LnZhbHVlLHUpfSkpfSxUb0tleWVkU2VxdWVuY2UucHJvdG90eXBlW3VdPSEwLGNyZWF0ZUNsYXNzKFRvSW5kZXhlZFNlcXVlbmNlLEluZGV4ZWRTZXEpLFRvSW5kZXhlZFNlcXVlbmNlLnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbihzKXtyZXR1cm4gdGhpcy5faXRlci5pbmNsdWRlcyhzKX0sVG9JbmRleGVkU2VxdWVuY2UucHJvdG90eXBlLl9faXRlcmF0ZT1mdW5jdGlvbihzLG8pe3ZhciBpPXRoaXMsYT0wO3JldHVybiB0aGlzLl9pdGVyLl9faXRlcmF0ZSgoZnVuY3Rpb24obyl7cmV0dXJuIHMobyxhKyssaSl9KSxvKX0sVG9JbmRleGVkU2VxdWVuY2UucHJvdG90eXBlLl9faXRlcmF0b3I9ZnVuY3Rpb24ocyxvKXt2YXIgaT10aGlzLl9pdGVyLl9faXRlcmF0b3IoVixvKSxhPTA7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXt2YXIgbz1pLm5leHQoKTtyZXR1cm4gby5kb25lP286aXRlcmF0b3JWYWx1ZShzLGErKyxvLnZhbHVlLG8pfSkpfSxjcmVhdGVDbGFzcyhUb1NldFNlcXVlbmNlLFNldFNlcSksVG9TZXRTZXF1ZW5jZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLl9pdGVyLmluY2x1ZGVzKHMpfSxUb1NldFNlcXVlbmNlLnByb3RvdHlwZS5fX2l0ZXJhdGU9ZnVuY3Rpb24ocyxvKXt2YXIgaT10aGlzO3JldHVybiB0aGlzLl9pdGVyLl9faXRlcmF0ZSgoZnVuY3Rpb24obyl7cmV0dXJuIHMobyxvLGkpfSksbyl9LFRvU2V0U2VxdWVuY2UucHJvdG90eXBlLl9faXRlcmF0b3I9ZnVuY3Rpb24ocyxvKXt2YXIgaT10aGlzLl9pdGVyLl9faXRlcmF0b3IoVixvKTtyZXR1cm4gbmV3IEl0ZXJhdG9yKChmdW5jdGlvbigpe3ZhciBvPWkubmV4dCgpO3JldHVybiBvLmRvbmU/bzppdGVyYXRvclZhbHVlKHMsby52YWx1ZSxvLnZhbHVlLG8pfSkpfSxjcmVhdGVDbGFzcyhGcm9tRW50cmllc1NlcXVlbmNlLEtleWVkU2VxKSxGcm9tRW50cmllc1NlcXVlbmNlLnByb3RvdHlwZS5lbnRyeVNlcT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9pdGVyLnRvU2VxKCl9LEZyb21FbnRyaWVzU2VxdWVuY2UucHJvdG90eXBlLl9faXRlcmF0ZT1mdW5jdGlvbihzLG8pe3ZhciBpPXRoaXM7cmV0dXJuIHRoaXMuX2l0ZXIuX19pdGVyYXRlKChmdW5jdGlvbihvKXtpZihvKXt2YWxpZGF0ZUVudHJ5KG8pO3ZhciBhPWlzSXRlcmFibGUobyk7cmV0dXJuIHMoYT9vLmdldCgxKTpvWzFdLGE/by5nZXQoMCk6b1swXSxpKX19KSxvKX0sRnJvbUVudHJpZXNTZXF1ZW5jZS5wcm90b3R5cGUuX19pdGVyYXRvcj1mdW5jdGlvbihzLG8pe3ZhciBpPXRoaXMuX2l0ZXIuX19pdGVyYXRvcihWLG8pO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7Zm9yKDs7KXt2YXIgbz1pLm5leHQoKTtpZihvLmRvbmUpcmV0dXJuIG87dmFyIGE9by52YWx1ZTtpZihhKXt2YWxpZGF0ZUVudHJ5KGEpO3ZhciB1PWlzSXRlcmFibGUoYSk7cmV0dXJuIGl0ZXJhdG9yVmFsdWUocyx1P2EuZ2V0KDApOmFbMF0sdT9hLmdldCgxKTphWzFdLG8pfX19KSl9LFRvSW5kZXhlZFNlcXVlbmNlLnByb3RvdHlwZS5jYWNoZVJlc3VsdD1Ub0tleWVkU2VxdWVuY2UucHJvdG90eXBlLmNhY2hlUmVzdWx0PVRvU2V0U2VxdWVuY2UucHJvdG90eXBlLmNhY2hlUmVzdWx0PUZyb21FbnRyaWVzU2VxdWVuY2UucHJvdG90eXBlLmNhY2hlUmVzdWx0PWNhY2hlUmVzdWx0VGhyb3VnaCxjcmVhdGVDbGFzcyhSZWNvcmQsS2V5ZWRDb2xsZWN0aW9uKSxSZWNvcmQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX190b1N0cmluZyhyZWNvcmROYW1lKHRoaXMpKyIgeyIsIn0iKX0sUmVjb3JkLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMuX2RlZmF1bHRWYWx1ZXMuaGFzT3duUHJvcGVydHkocyl9LFJlY29yZC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHMsbyl7aWYoIXRoaXMuaGFzKHMpKXJldHVybiBvO3ZhciBpPXRoaXMuX2RlZmF1bHRWYWx1ZXNbc107cmV0dXJuIHRoaXMuX21hcD90aGlzLl9tYXAuZ2V0KHMsaSk6aX0sUmVjb3JkLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe2lmKHRoaXMuX19vd25lcklEKXJldHVybiB0aGlzLl9tYXAmJnRoaXMuX21hcC5jbGVhcigpLHRoaXM7dmFyIHM9dGhpcy5jb25zdHJ1Y3RvcjtyZXR1cm4gcy5fZW1wdHl8fChzLl9lbXB0eT1tYWtlUmVjb3JkKHRoaXMsZW1wdHlNYXAoKSkpfSxSZWNvcmQucHJvdG90eXBlLnNldD1mdW5jdGlvbihzLG8pe2lmKCF0aGlzLmhhcyhzKSl0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBzZXQgdW5rbm93biBrZXkgIicrcysnIiBvbiAnK3JlY29yZE5hbWUodGhpcykpO2lmKHRoaXMuX21hcCYmIXRoaXMuX21hcC5oYXMocykmJm89PT10aGlzLl9kZWZhdWx0VmFsdWVzW3NdKXJldHVybiB0aGlzO3ZhciBpPXRoaXMuX21hcCYmdGhpcy5fbWFwLnNldChzLG8pO3JldHVybiB0aGlzLl9fb3duZXJJRHx8aT09PXRoaXMuX21hcD90aGlzOm1ha2VSZWNvcmQodGhpcyxpKX0sUmVjb3JkLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24ocyl7aWYoIXRoaXMuaGFzKHMpKXJldHVybiB0aGlzO3ZhciBvPXRoaXMuX21hcCYmdGhpcy5fbWFwLnJlbW92ZShzKTtyZXR1cm4gdGhpcy5fX293bmVySUR8fG89PT10aGlzLl9tYXA/dGhpczptYWtlUmVjb3JkKHRoaXMsbyl9LFJlY29yZC5wcm90b3R5cGUud2FzQWx0ZXJlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXAud2FzQWx0ZXJlZCgpfSxSZWNvcmQucHJvdG90eXBlLl9faXRlcmF0b3I9ZnVuY3Rpb24ocyxvKXt2YXIgaT10aGlzO3JldHVybiBLZXllZEl0ZXJhYmxlKHRoaXMuX2RlZmF1bHRWYWx1ZXMpLm1hcCgoZnVuY3Rpb24ocyxvKXtyZXR1cm4gaS5nZXQobyl9KSkuX19pdGVyYXRvcihzLG8pfSxSZWNvcmQucHJvdG90eXBlLl9faXRlcmF0ZT1mdW5jdGlvbihzLG8pe3ZhciBpPXRoaXM7cmV0dXJuIEtleWVkSXRlcmFibGUodGhpcy5fZGVmYXVsdFZhbHVlcykubWFwKChmdW5jdGlvbihzLG8pe3JldHVybiBpLmdldChvKX0pKS5fX2l0ZXJhdGUocyxvKX0sUmVjb3JkLnByb3RvdHlwZS5fX2Vuc3VyZU93bmVyPWZ1bmN0aW9uKHMpe2lmKHM9PT10aGlzLl9fb3duZXJJRClyZXR1cm4gdGhpczt2YXIgbz10aGlzLl9tYXAmJnRoaXMuX21hcC5fX2Vuc3VyZU93bmVyKHMpO3JldHVybiBzP21ha2VSZWNvcmQodGhpcyxvLHMpOih0aGlzLl9fb3duZXJJRD1zLHRoaXMuX21hcD1vLHRoaXMpfTt2YXIgdHQ9UmVjb3JkLnByb3RvdHlwZTtmdW5jdGlvbiBtYWtlUmVjb3JkKHMsbyxpKXt2YXIgYT1PYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZihzKSk7cmV0dXJuIGEuX21hcD1vLGEuX19vd25lcklEPWksYX1mdW5jdGlvbiByZWNvcmROYW1lKHMpe3JldHVybiBzLl9uYW1lfHxzLmNvbnN0cnVjdG9yLm5hbWV8fCJSZWNvcmQifWZ1bmN0aW9uIHNldFByb3BzKHMsbyl7dHJ5e28uZm9yRWFjaChzZXRQcm9wLmJpbmQodm9pZCAwLHMpKX1jYXRjaChzKXt9fWZ1bmN0aW9uIHNldFByb3AocyxvKXtPYmplY3QuZGVmaW5lUHJvcGVydHkocyxvLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQobyl9LHNldDpmdW5jdGlvbihzKXtpbnZhcmlhbnQodGhpcy5fX293bmVySUQsIkNhbm5vdCBzZXQgb24gYW4gaW1tdXRhYmxlIHJlY29yZC4iKSx0aGlzLnNldChvLHMpfX0pfWZ1bmN0aW9uIFNldChzKXtyZXR1cm4gbnVsbD09cz9lbXB0eVNldCgpOmlzU2V0KHMpJiYhaXNPcmRlcmVkKHMpP3M6ZW1wdHlTZXQoKS53aXRoTXV0YXRpb25zKChmdW5jdGlvbihvKXt2YXIgaT1TZXRJdGVyYWJsZShzKTthc3NlcnROb3RJbmZpbml0ZShpLnNpemUpLGkuZm9yRWFjaCgoZnVuY3Rpb24ocyl7cmV0dXJuIG8uYWRkKHMpfSkpfSkpfWZ1bmN0aW9uIGlzU2V0KHMpe3JldHVybiEoIXN8fCFzW250XSl9dHRbX109dHQucmVtb3ZlLHR0LmRlbGV0ZUluPXR0LnJlbW92ZUluPSRlLnJlbW92ZUluLHR0Lm1lcmdlPSRlLm1lcmdlLHR0Lm1lcmdlV2l0aD0kZS5tZXJnZVdpdGgsdHQubWVyZ2VJbj0kZS5tZXJnZUluLHR0Lm1lcmdlRGVlcD0kZS5tZXJnZURlZXAsdHQubWVyZ2VEZWVwV2l0aD0kZS5tZXJnZURlZXBXaXRoLHR0Lm1lcmdlRGVlcEluPSRlLm1lcmdlRGVlcEluLHR0LnNldEluPSRlLnNldEluLHR0LnVwZGF0ZT0kZS51cGRhdGUsdHQudXBkYXRlSW49JGUudXBkYXRlSW4sdHQud2l0aE11dGF0aW9ucz0kZS53aXRoTXV0YXRpb25zLHR0LmFzTXV0YWJsZT0kZS5hc011dGFibGUsdHQuYXNJbW11dGFibGU9JGUuYXNJbW11dGFibGUsY3JlYXRlQ2xhc3MoU2V0LFNldENvbGxlY3Rpb24pLFNldC5vZj1mdW5jdGlvbigpe3JldHVybiB0aGlzKGFyZ3VtZW50cyl9LFNldC5mcm9tS2V5cz1mdW5jdGlvbihzKXtyZXR1cm4gdGhpcyhLZXllZEl0ZXJhYmxlKHMpLmtleVNlcSgpKX0sU2V0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9fdG9TdHJpbmcoIlNldCB7IiwifSIpfSxTZXQucHJvdG90eXBlLmhhcz1mdW5jdGlvbihzKXtyZXR1cm4gdGhpcy5fbWFwLmhhcyhzKX0sU2V0LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24ocyl7cmV0dXJuIHVwZGF0ZVNldCh0aGlzLHRoaXMuX21hcC5zZXQocywhMCkpfSxTZXQucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihzKXtyZXR1cm4gdXBkYXRlU2V0KHRoaXMsdGhpcy5fbWFwLnJlbW92ZShzKSl9LFNldC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXtyZXR1cm4gdXBkYXRlU2V0KHRoaXMsdGhpcy5fbWFwLmNsZWFyKCkpfSxTZXQucHJvdG90eXBlLnVuaW9uPWZ1bmN0aW9uKCl7dmFyIG89cy5jYWxsKGFyZ3VtZW50cywwKTtyZXR1cm4gMD09PShvPW8uZmlsdGVyKChmdW5jdGlvbihzKXtyZXR1cm4gMCE9PXMuc2l6ZX0pKSkubGVuZ3RoP3RoaXM6MCE9PXRoaXMuc2l6ZXx8dGhpcy5fX293bmVySUR8fDEhPT1vLmxlbmd0aD90aGlzLndpdGhNdXRhdGlvbnMoKGZ1bmN0aW9uKHMpe2Zvcih2YXIgaT0wO2k8by5sZW5ndGg7aSsrKVNldEl0ZXJhYmxlKG9baV0pLmZvckVhY2goKGZ1bmN0aW9uKG8pe3JldHVybiBzLmFkZChvKX0pKX0pKTp0aGlzLmNvbnN0cnVjdG9yKG9bMF0pfSxTZXQucHJvdG90eXBlLmludGVyc2VjdD1mdW5jdGlvbigpe3ZhciBvPXMuY2FsbChhcmd1bWVudHMsMCk7aWYoMD09PW8ubGVuZ3RoKXJldHVybiB0aGlzO289by5tYXAoKGZ1bmN0aW9uKHMpe3JldHVybiBTZXRJdGVyYWJsZShzKX0pKTt2YXIgaT10aGlzO3JldHVybiB0aGlzLndpdGhNdXRhdGlvbnMoKGZ1bmN0aW9uKHMpe2kuZm9yRWFjaCgoZnVuY3Rpb24oaSl7by5ldmVyeSgoZnVuY3Rpb24ocyl7cmV0dXJuIHMuaW5jbHVkZXMoaSl9KSl8fHMucmVtb3ZlKGkpfSkpfSkpfSxTZXQucHJvdG90eXBlLnN1YnRyYWN0PWZ1bmN0aW9uKCl7dmFyIG89cy5jYWxsKGFyZ3VtZW50cywwKTtpZigwPT09by5sZW5ndGgpcmV0dXJuIHRoaXM7bz1vLm1hcCgoZnVuY3Rpb24ocyl7cmV0dXJuIFNldEl0ZXJhYmxlKHMpfSkpO3ZhciBpPXRoaXM7cmV0dXJuIHRoaXMud2l0aE11dGF0aW9ucygoZnVuY3Rpb24ocyl7aS5mb3JFYWNoKChmdW5jdGlvbihpKXtvLnNvbWUoKGZ1bmN0aW9uKHMpe3JldHVybiBzLmluY2x1ZGVzKGkpfSkpJiZzLnJlbW92ZShpKX0pKX0pKX0sU2V0LnByb3RvdHlwZS5tZXJnZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnVuaW9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sU2V0LnByb3RvdHlwZS5tZXJnZVdpdGg9ZnVuY3Rpb24obyl7dmFyIGk9cy5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gdGhpcy51bmlvbi5hcHBseSh0aGlzLGkpfSxTZXQucHJvdG90eXBlLnNvcnQ9ZnVuY3Rpb24ocyl7cmV0dXJuIE9yZGVyZWRTZXQoc29ydEZhY3RvcnkodGhpcyxzKSl9LFNldC5wcm90b3R5cGUuc29ydEJ5PWZ1bmN0aW9uKHMsbyl7cmV0dXJuIE9yZGVyZWRTZXQoc29ydEZhY3RvcnkodGhpcyxvLHMpKX0sU2V0LnByb3RvdHlwZS53YXNBbHRlcmVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21hcC53YXNBbHRlcmVkKCl9LFNldC5wcm90b3R5cGUuX19pdGVyYXRlPWZ1bmN0aW9uKHMsbyl7dmFyIGk9dGhpcztyZXR1cm4gdGhpcy5fbWFwLl9faXRlcmF0ZSgoZnVuY3Rpb24obyxhKXtyZXR1cm4gcyhhLGEsaSl9KSxvKX0sU2V0LnByb3RvdHlwZS5fX2l0ZXJhdG9yPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHRoaXMuX21hcC5tYXAoKGZ1bmN0aW9uKHMsbyl7cmV0dXJuIG99KSkuX19pdGVyYXRvcihzLG8pfSxTZXQucHJvdG90eXBlLl9fZW5zdXJlT3duZXI9ZnVuY3Rpb24ocyl7aWYocz09PXRoaXMuX19vd25lcklEKXJldHVybiB0aGlzO3ZhciBvPXRoaXMuX21hcC5fX2Vuc3VyZU93bmVyKHMpO3JldHVybiBzP3RoaXMuX19tYWtlKG8scyk6KHRoaXMuX19vd25lcklEPXMsdGhpcy5fbWFwPW8sdGhpcyl9LFNldC5pc1NldD1pc1NldDt2YXIgcnQsbnQ9IkBAX19JTU1VVEFCTEVfU0VUX19AQCIsc3Q9U2V0LnByb3RvdHlwZTtmdW5jdGlvbiB1cGRhdGVTZXQocyxvKXtyZXR1cm4gcy5fX293bmVySUQ/KHMuc2l6ZT1vLnNpemUscy5fbWFwPW8scyk6bz09PXMuX21hcD9zOjA9PT1vLnNpemU/cy5fX2VtcHR5KCk6cy5fX21ha2Uobyl9ZnVuY3Rpb24gbWFrZVNldChzLG8pe3ZhciBpPU9iamVjdC5jcmVhdGUoc3QpO3JldHVybiBpLnNpemU9cz9zLnNpemU6MCxpLl9tYXA9cyxpLl9fb3duZXJJRD1vLGl9ZnVuY3Rpb24gZW1wdHlTZXQoKXtyZXR1cm4gcnR8fChydD1tYWtlU2V0KGVtcHR5TWFwKCkpKX1mdW5jdGlvbiBPcmRlcmVkU2V0KHMpe3JldHVybiBudWxsPT1zP2VtcHR5T3JkZXJlZFNldCgpOmlzT3JkZXJlZFNldChzKT9zOmVtcHR5T3JkZXJlZFNldCgpLndpdGhNdXRhdGlvbnMoKGZ1bmN0aW9uKG8pe3ZhciBpPVNldEl0ZXJhYmxlKHMpO2Fzc2VydE5vdEluZmluaXRlKGkuc2l6ZSksaS5mb3JFYWNoKChmdW5jdGlvbihzKXtyZXR1cm4gby5hZGQocyl9KSl9KSl9ZnVuY3Rpb24gaXNPcmRlcmVkU2V0KHMpe3JldHVybiBpc1NldChzKSYmaXNPcmRlcmVkKHMpfXN0W250XT0hMCxzdFtfXT1zdC5yZW1vdmUsc3QubWVyZ2VEZWVwPXN0Lm1lcmdlLHN0Lm1lcmdlRGVlcFdpdGg9c3QubWVyZ2VXaXRoLHN0LndpdGhNdXRhdGlvbnM9JGUud2l0aE11dGF0aW9ucyxzdC5hc011dGFibGU9JGUuYXNNdXRhYmxlLHN0LmFzSW1tdXRhYmxlPSRlLmFzSW1tdXRhYmxlLHN0Ll9fZW1wdHk9ZW1wdHlTZXQsc3QuX19tYWtlPW1ha2VTZXQsY3JlYXRlQ2xhc3MoT3JkZXJlZFNldCxTZXQpLE9yZGVyZWRTZXQub2Y9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcyhhcmd1bWVudHMpfSxPcmRlcmVkU2V0LmZyb21LZXlzPWZ1bmN0aW9uKHMpe3JldHVybiB0aGlzKEtleWVkSXRlcmFibGUocykua2V5U2VxKCkpfSxPcmRlcmVkU2V0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9fdG9TdHJpbmcoIk9yZGVyZWRTZXQgeyIsIn0iKX0sT3JkZXJlZFNldC5pc09yZGVyZWRTZXQ9aXNPcmRlcmVkU2V0O3ZhciBvdCxpdD1PcmRlcmVkU2V0LnByb3RvdHlwZTtmdW5jdGlvbiBtYWtlT3JkZXJlZFNldChzLG8pe3ZhciBpPU9iamVjdC5jcmVhdGUoaXQpO3JldHVybiBpLnNpemU9cz9zLnNpemU6MCxpLl9tYXA9cyxpLl9fb3duZXJJRD1vLGl9ZnVuY3Rpb24gZW1wdHlPcmRlcmVkU2V0KCl7cmV0dXJuIG90fHwob3Q9bWFrZU9yZGVyZWRTZXQoZW1wdHlPcmRlcmVkTWFwKCkpKX1mdW5jdGlvbiBTdGFjayhzKXtyZXR1cm4gbnVsbD09cz9lbXB0eVN0YWNrKCk6aXNTdGFjayhzKT9zOmVtcHR5U3RhY2soKS51bnNoaWZ0QWxsKHMpfWZ1bmN0aW9uIGlzU3RhY2socyl7cmV0dXJuISghc3x8IXNbY3RdKX1pdFt1XT0hMCxpdC5fX2VtcHR5PWVtcHR5T3JkZXJlZFNldCxpdC5fX21ha2U9bWFrZU9yZGVyZWRTZXQsY3JlYXRlQ2xhc3MoU3RhY2ssSW5kZXhlZENvbGxlY3Rpb24pLFN0YWNrLm9mPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMoYXJndW1lbnRzKX0sU3RhY2sucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX190b1N0cmluZygiU3RhY2sgWyIsIl0iKX0sU3RhY2sucHJvdG90eXBlLmdldD1mdW5jdGlvbihzLG8pe3ZhciBpPXRoaXMuX2hlYWQ7Zm9yKHM9d3JhcEluZGV4KHRoaXMscyk7aSYmcy0tOylpPWkubmV4dDtyZXR1cm4gaT9pLnZhbHVlOm99LFN0YWNrLnByb3RvdHlwZS5wZWVrPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hlYWQmJnRoaXMuX2hlYWQudmFsdWV9LFN0YWNrLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKCl7aWYoMD09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXM7Zm9yKHZhciBzPXRoaXMuc2l6ZSthcmd1bWVudHMubGVuZ3RoLG89dGhpcy5faGVhZCxpPWFyZ3VtZW50cy5sZW5ndGgtMTtpPj0wO2ktLSlvPXt2YWx1ZTphcmd1bWVudHNbaV0sbmV4dDpvfTtyZXR1cm4gdGhpcy5fX293bmVySUQ/KHRoaXMuc2l6ZT1zLHRoaXMuX2hlYWQ9byx0aGlzLl9faGFzaD12b2lkIDAsdGhpcy5fX2FsdGVyZWQ9ITAsdGhpcyk6bWFrZVN0YWNrKHMsbyl9LFN0YWNrLnByb3RvdHlwZS5wdXNoQWxsPWZ1bmN0aW9uKHMpe2lmKDA9PT0ocz1JbmRleGVkSXRlcmFibGUocykpLnNpemUpcmV0dXJuIHRoaXM7YXNzZXJ0Tm90SW5maW5pdGUocy5zaXplKTt2YXIgbz10aGlzLnNpemUsaT10aGlzLl9oZWFkO3JldHVybiBzLnJldmVyc2UoKS5mb3JFYWNoKChmdW5jdGlvbihzKXtvKyssaT17dmFsdWU6cyxuZXh0Oml9fSkpLHRoaXMuX19vd25lcklEPyh0aGlzLnNpemU9byx0aGlzLl9oZWFkPWksdGhpcy5fX2hhc2g9dm9pZCAwLHRoaXMuX19hbHRlcmVkPSEwLHRoaXMpOm1ha2VTdGFjayhvLGkpfSxTdGFjay5wcm90b3R5cGUucG9wPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2xpY2UoMSl9LFN0YWNrLnByb3RvdHlwZS51bnNoaWZ0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFN0YWNrLnByb3RvdHlwZS51bnNoaWZ0QWxsPWZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLnB1c2hBbGwocyl9LFN0YWNrLnByb3RvdHlwZS5zaGlmdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnBvcC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFN0YWNrLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5zaXplP3RoaXM6dGhpcy5fX293bmVySUQ/KHRoaXMuc2l6ZT0wLHRoaXMuX2hlYWQ9dm9pZCAwLHRoaXMuX19oYXNoPXZvaWQgMCx0aGlzLl9fYWx0ZXJlZD0hMCx0aGlzKTplbXB0eVN0YWNrKCl9LFN0YWNrLnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbihzLG8pe2lmKHdob2xlU2xpY2UocyxvLHRoaXMuc2l6ZSkpcmV0dXJuIHRoaXM7dmFyIGk9cmVzb2x2ZUJlZ2luKHMsdGhpcy5zaXplKTtpZihyZXNvbHZlRW5kKG8sdGhpcy5zaXplKSE9PXRoaXMuc2l6ZSlyZXR1cm4gSW5kZXhlZENvbGxlY3Rpb24ucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcyxzLG8pO2Zvcih2YXIgYT10aGlzLnNpemUtaSx1PXRoaXMuX2hlYWQ7aS0tOyl1PXUubmV4dDtyZXR1cm4gdGhpcy5fX293bmVySUQ/KHRoaXMuc2l6ZT1hLHRoaXMuX2hlYWQ9dSx0aGlzLl9faGFzaD12b2lkIDAsdGhpcy5fX2FsdGVyZWQ9ITAsdGhpcyk6bWFrZVN0YWNrKGEsdSl9LFN0YWNrLnByb3RvdHlwZS5fX2Vuc3VyZU93bmVyPWZ1bmN0aW9uKHMpe3JldHVybiBzPT09dGhpcy5fX293bmVySUQ/dGhpczpzP21ha2VTdGFjayh0aGlzLnNpemUsdGhpcy5faGVhZCxzLHRoaXMuX19oYXNoKToodGhpcy5fX293bmVySUQ9cyx0aGlzLl9fYWx0ZXJlZD0hMSx0aGlzKX0sU3RhY2sucHJvdG90eXBlLl9faXRlcmF0ZT1mdW5jdGlvbihzLG8pe2lmKG8pcmV0dXJuIHRoaXMucmV2ZXJzZSgpLl9faXRlcmF0ZShzKTtmb3IodmFyIGk9MCxhPXRoaXMuX2hlYWQ7YSYmITEhPT1zKGEudmFsdWUsaSsrLHRoaXMpOylhPWEubmV4dDtyZXR1cm4gaX0sU3RhY2sucHJvdG90eXBlLl9faXRlcmF0b3I9ZnVuY3Rpb24ocyxvKXtpZihvKXJldHVybiB0aGlzLnJldmVyc2UoKS5fX2l0ZXJhdG9yKHMpO3ZhciBpPTAsYT10aGlzLl9oZWFkO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7aWYoYSl7dmFyIG89YS52YWx1ZTtyZXR1cm4gYT1hLm5leHQsaXRlcmF0b3JWYWx1ZShzLGkrKyxvKX1yZXR1cm4gaXRlcmF0b3JEb25lKCl9KSl9LFN0YWNrLmlzU3RhY2s9aXNTdGFjazt2YXIgYXQsY3Q9IkBAX19JTU1VVEFCTEVfU1RBQ0tfX0BAIixsdD1TdGFjay5wcm90b3R5cGU7ZnVuY3Rpb24gbWFrZVN0YWNrKHMsbyxpLGEpe3ZhciB1PU9iamVjdC5jcmVhdGUobHQpO3JldHVybiB1LnNpemU9cyx1Ll9oZWFkPW8sdS5fX293bmVySUQ9aSx1Ll9faGFzaD1hLHUuX19hbHRlcmVkPSExLHV9ZnVuY3Rpb24gZW1wdHlTdGFjaygpe3JldHVybiBhdHx8KGF0PW1ha2VTdGFjaygwKSl9ZnVuY3Rpb24gbWl4aW4ocyxvKXt2YXIga2V5Q29waWVyPWZ1bmN0aW9uKGkpe3MucHJvdG90eXBlW2ldPW9baV19O3JldHVybiBPYmplY3Qua2V5cyhvKS5mb3JFYWNoKGtleUNvcGllciksT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvKS5mb3JFYWNoKGtleUNvcGllciksc31sdFtjdF09ITAsbHQud2l0aE11dGF0aW9ucz0kZS53aXRoTXV0YXRpb25zLGx0LmFzTXV0YWJsZT0kZS5hc011dGFibGUsbHQuYXNJbW11dGFibGU9JGUuYXNJbW11dGFibGUsbHQud2FzQWx0ZXJlZD0kZS53YXNBbHRlcmVkLEl0ZXJhYmxlLkl0ZXJhdG9yPUl0ZXJhdG9yLG1peGluKEl0ZXJhYmxlLHt0b0FycmF5OmZ1bmN0aW9uKCl7YXNzZXJ0Tm90SW5maW5pdGUodGhpcy5zaXplKTt2YXIgcz1uZXcgQXJyYXkodGhpcy5zaXplfHwwKTtyZXR1cm4gdGhpcy52YWx1ZVNlcSgpLl9faXRlcmF0ZSgoZnVuY3Rpb24obyxpKXtzW2ldPW99KSksc30sdG9JbmRleGVkU2VxOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBUb0luZGV4ZWRTZXF1ZW5jZSh0aGlzKX0sdG9KUzpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU2VxKCkubWFwKChmdW5jdGlvbihzKXtyZXR1cm4gcyYmImZ1bmN0aW9uIj09dHlwZW9mIHMudG9KUz9zLnRvSlMoKTpzfSkpLl9fdG9KUygpfSx0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1NlcSgpLm1hcCgoZnVuY3Rpb24ocyl7cmV0dXJuIHMmJiJmdW5jdGlvbiI9PXR5cGVvZiBzLnRvSlNPTj9zLnRvSlNPTigpOnN9KSkuX190b0pTKCl9LHRvS2V5ZWRTZXE6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFRvS2V5ZWRTZXF1ZW5jZSh0aGlzLCEwKX0sdG9NYXA6ZnVuY3Rpb24oKXtyZXR1cm4gTWFwKHRoaXMudG9LZXllZFNlcSgpKX0sdG9PYmplY3Q6ZnVuY3Rpb24oKXthc3NlcnROb3RJbmZpbml0ZSh0aGlzLnNpemUpO3ZhciBzPXt9O3JldHVybiB0aGlzLl9faXRlcmF0ZSgoZnVuY3Rpb24obyxpKXtzW2ldPW99KSksc30sdG9PcmRlcmVkTWFwOmZ1bmN0aW9uKCl7cmV0dXJuIE9yZGVyZWRNYXAodGhpcy50b0tleWVkU2VxKCkpfSx0b09yZGVyZWRTZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gT3JkZXJlZFNldChpc0tleWVkKHRoaXMpP3RoaXMudmFsdWVTZXEoKTp0aGlzKX0sdG9TZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gU2V0KGlzS2V5ZWQodGhpcyk/dGhpcy52YWx1ZVNlcSgpOnRoaXMpfSx0b1NldFNlcTpmdW5jdGlvbigpe3JldHVybiBuZXcgVG9TZXRTZXF1ZW5jZSh0aGlzKX0sdG9TZXE6ZnVuY3Rpb24oKXtyZXR1cm4gaXNJbmRleGVkKHRoaXMpP3RoaXMudG9JbmRleGVkU2VxKCk6aXNLZXllZCh0aGlzKT90aGlzLnRvS2V5ZWRTZXEoKTp0aGlzLnRvU2V0U2VxKCl9LHRvU3RhY2s6ZnVuY3Rpb24oKXtyZXR1cm4gU3RhY2soaXNLZXllZCh0aGlzKT90aGlzLnZhbHVlU2VxKCk6dGhpcyl9LHRvTGlzdDpmdW5jdGlvbigpe3JldHVybiBMaXN0KGlzS2V5ZWQodGhpcyk/dGhpcy52YWx1ZVNlcSgpOnRoaXMpfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiJbSXRlcmFibGVdIn0sX190b1N0cmluZzpmdW5jdGlvbihzLG8pe3JldHVybiAwPT09dGhpcy5zaXplP3MrbzpzKyIgIit0aGlzLnRvU2VxKCkubWFwKHRoaXMuX190b1N0cmluZ01hcHBlcikuam9pbigiLCAiKSsiICIrb30sY29uY2F0OmZ1bmN0aW9uKCl7cmV0dXJuIHJlaWZ5KHRoaXMsY29uY2F0RmFjdG9yeSh0aGlzLHMuY2FsbChhcmd1bWVudHMsMCkpKX0saW5jbHVkZXM6ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMuc29tZSgoZnVuY3Rpb24obyl7cmV0dXJuIGlzKG8scyl9KSl9LGVudHJpZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX2l0ZXJhdG9yKFUpfSxldmVyeTpmdW5jdGlvbihzLG8pe2Fzc2VydE5vdEluZmluaXRlKHRoaXMuc2l6ZSk7dmFyIGk9ITA7cmV0dXJuIHRoaXMuX19pdGVyYXRlKChmdW5jdGlvbihhLHUsXyl7aWYoIXMuY2FsbChvLGEsdSxfKSlyZXR1cm4gaT0hMSwhMX0pKSxpfSxmaWx0ZXI6ZnVuY3Rpb24ocyxvKXtyZXR1cm4gcmVpZnkodGhpcyxmaWx0ZXJGYWN0b3J5KHRoaXMscyxvLCEwKSl9LGZpbmQ6ZnVuY3Rpb24ocyxvLGkpe3ZhciBhPXRoaXMuZmluZEVudHJ5KHMsbyk7cmV0dXJuIGE/YVsxXTppfSxmb3JFYWNoOmZ1bmN0aW9uKHMsbyl7cmV0dXJuIGFzc2VydE5vdEluZmluaXRlKHRoaXMuc2l6ZSksdGhpcy5fX2l0ZXJhdGUobz9zLmJpbmQobyk6cyl9LGpvaW46ZnVuY3Rpb24ocyl7YXNzZXJ0Tm90SW5maW5pdGUodGhpcy5zaXplKSxzPXZvaWQgMCE9PXM/IiIrczoiLCI7dmFyIG89IiIsaT0hMDtyZXR1cm4gdGhpcy5fX2l0ZXJhdGUoKGZ1bmN0aW9uKGEpe2k/aT0hMTpvKz1zLG8rPW51bGwhPWE/YS50b1N0cmluZygpOiIifSkpLG99LGtleXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX2l0ZXJhdG9yKCQpfSxtYXA6ZnVuY3Rpb24ocyxvKXtyZXR1cm4gcmVpZnkodGhpcyxtYXBGYWN0b3J5KHRoaXMscyxvKSl9LHJlZHVjZTpmdW5jdGlvbihzLG8saSl7dmFyIGEsdTtyZXR1cm4gYXNzZXJ0Tm90SW5maW5pdGUodGhpcy5zaXplKSxhcmd1bWVudHMubGVuZ3RoPDI/dT0hMDphPW8sdGhpcy5fX2l0ZXJhdGUoKGZ1bmN0aW9uKG8sXyx3KXt1Pyh1PSExLGE9byk6YT1zLmNhbGwoaSxhLG8sXyx3KX0pKSxhfSxyZWR1Y2VSaWdodDpmdW5jdGlvbihzLG8saSl7dmFyIGE9dGhpcy50b0tleWVkU2VxKCkucmV2ZXJzZSgpO3JldHVybiBhLnJlZHVjZS5hcHBseShhLGFyZ3VtZW50cyl9LHJldmVyc2U6ZnVuY3Rpb24oKXtyZXR1cm4gcmVpZnkodGhpcyxyZXZlcnNlRmFjdG9yeSh0aGlzLCEwKSl9LHNsaWNlOmZ1bmN0aW9uKHMsbyl7cmV0dXJuIHJlaWZ5KHRoaXMsc2xpY2VGYWN0b3J5KHRoaXMscyxvLCEwKSl9LHNvbWU6ZnVuY3Rpb24ocyxvKXtyZXR1cm4hdGhpcy5ldmVyeShub3Qocyksbyl9LHNvcnQ6ZnVuY3Rpb24ocyl7cmV0dXJuIHJlaWZ5KHRoaXMsc29ydEZhY3RvcnkodGhpcyxzKSl9LHZhbHVlczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9faXRlcmF0b3IoVil9LGJ1dExhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zbGljZSgwLC0xKX0saXNFbXB0eTpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLnNpemU/MD09PXRoaXMuc2l6ZTohdGhpcy5zb21lKChmdW5jdGlvbigpe3JldHVybiEwfSkpfSxjb3VudDpmdW5jdGlvbihzLG8pe3JldHVybiBlbnN1cmVTaXplKHM/dGhpcy50b1NlcSgpLmZpbHRlcihzLG8pOnRoaXMpfSxjb3VudEJ5OmZ1bmN0aW9uKHMsbyl7cmV0dXJuIGNvdW50QnlGYWN0b3J5KHRoaXMscyxvKX0sZXF1YWxzOmZ1bmN0aW9uKHMpe3JldHVybiBkZWVwRXF1YWwodGhpcyxzKX0sZW50cnlTZXE6ZnVuY3Rpb24oKXt2YXIgcz10aGlzO2lmKHMuX2NhY2hlKXJldHVybiBuZXcgQXJyYXlTZXEocy5fY2FjaGUpO3ZhciBvPXMudG9TZXEoKS5tYXAoZW50cnlNYXBwZXIpLnRvSW5kZXhlZFNlcSgpO3JldHVybiBvLmZyb21FbnRyeVNlcT1mdW5jdGlvbigpe3JldHVybiBzLnRvU2VxKCl9LG99LGZpbHRlck5vdDpmdW5jdGlvbihzLG8pe3JldHVybiB0aGlzLmZpbHRlcihub3Qocyksbyl9LGZpbmRFbnRyeTpmdW5jdGlvbihzLG8saSl7dmFyIGE9aTtyZXR1cm4gdGhpcy5fX2l0ZXJhdGUoKGZ1bmN0aW9uKGksdSxfKXtpZihzLmNhbGwobyxpLHUsXykpcmV0dXJuIGE9W3UsaV0sITF9KSksYX0sZmluZEtleTpmdW5jdGlvbihzLG8pe3ZhciBpPXRoaXMuZmluZEVudHJ5KHMsbyk7cmV0dXJuIGkmJmlbMF19LGZpbmRMYXN0OmZ1bmN0aW9uKHMsbyxpKXtyZXR1cm4gdGhpcy50b0tleWVkU2VxKCkucmV2ZXJzZSgpLmZpbmQocyxvLGkpfSxmaW5kTGFzdEVudHJ5OmZ1bmN0aW9uKHMsbyxpKXtyZXR1cm4gdGhpcy50b0tleWVkU2VxKCkucmV2ZXJzZSgpLmZpbmRFbnRyeShzLG8saSl9LGZpbmRMYXN0S2V5OmZ1bmN0aW9uKHMsbyl7cmV0dXJuIHRoaXMudG9LZXllZFNlcSgpLnJldmVyc2UoKS5maW5kS2V5KHMsbyl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmluZChyZXR1cm5UcnVlKX0sZmxhdE1hcDpmdW5jdGlvbihzLG8pe3JldHVybiByZWlmeSh0aGlzLGZsYXRNYXBGYWN0b3J5KHRoaXMscyxvKSl9LGZsYXR0ZW46ZnVuY3Rpb24ocyl7cmV0dXJuIHJlaWZ5KHRoaXMsZmxhdHRlbkZhY3RvcnkodGhpcyxzLCEwKSl9LGZyb21FbnRyeVNlcTpmdW5jdGlvbigpe3JldHVybiBuZXcgRnJvbUVudHJpZXNTZXF1ZW5jZSh0aGlzKX0sZ2V0OmZ1bmN0aW9uKHMsbyl7cmV0dXJuIHRoaXMuZmluZCgoZnVuY3Rpb24obyxpKXtyZXR1cm4gaXMoaSxzKX0pLHZvaWQgMCxvKX0sZ2V0SW46ZnVuY3Rpb24ocyxvKXtmb3IodmFyIGksYT10aGlzLHU9Zm9yY2VJdGVyYXRvcihzKTshKGk9dS5uZXh0KCkpLmRvbmU7KXt2YXIgXz1pLnZhbHVlO2lmKChhPWEmJmEuZ2V0P2EuZ2V0KF8saik6aik9PT1qKXJldHVybiBvfXJldHVybiBhfSxncm91cEJ5OmZ1bmN0aW9uKHMsbyl7cmV0dXJuIGdyb3VwQnlGYWN0b3J5KHRoaXMscyxvKX0saGFzOmZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLmdldChzLGopIT09an0saGFzSW46ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMuZ2V0SW4ocyxqKSE9PWp9LGlzU3Vic2V0OmZ1bmN0aW9uKHMpe3JldHVybiBzPSJmdW5jdGlvbiI9PXR5cGVvZiBzLmluY2x1ZGVzP3M6SXRlcmFibGUocyksdGhpcy5ldmVyeSgoZnVuY3Rpb24obyl7cmV0dXJuIHMuaW5jbHVkZXMobyl9KSl9LGlzU3VwZXJzZXQ6ZnVuY3Rpb24ocyl7cmV0dXJuKHM9ImZ1bmN0aW9uIj09dHlwZW9mIHMuaXNTdWJzZXQ/czpJdGVyYWJsZShzKSkuaXNTdWJzZXQodGhpcyl9LGtleU9mOmZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLmZpbmRLZXkoKGZ1bmN0aW9uKG8pe3JldHVybiBpcyhvLHMpfSkpfSxrZXlTZXE6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1NlcSgpLm1hcChrZXlNYXBwZXIpLnRvSW5kZXhlZFNlcSgpfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TZXEoKS5yZXZlcnNlKCkuZmlyc3QoKX0sbGFzdEtleU9mOmZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLnRvS2V5ZWRTZXEoKS5yZXZlcnNlKCkua2V5T2Yocyl9LG1heDpmdW5jdGlvbihzKXtyZXR1cm4gbWF4RmFjdG9yeSh0aGlzLHMpfSxtYXhCeTpmdW5jdGlvbihzLG8pe3JldHVybiBtYXhGYWN0b3J5KHRoaXMsbyxzKX0sbWluOmZ1bmN0aW9uKHMpe3JldHVybiBtYXhGYWN0b3J5KHRoaXMscz9uZWcocyk6ZGVmYXVsdE5lZ0NvbXBhcmF0b3IpfSxtaW5CeTpmdW5jdGlvbihzLG8pe3JldHVybiBtYXhGYWN0b3J5KHRoaXMsbz9uZWcobyk6ZGVmYXVsdE5lZ0NvbXBhcmF0b3Iscyl9LHJlc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zbGljZSgxKX0sc2tpcDpmdW5jdGlvbihzKXtyZXR1cm4gdGhpcy5zbGljZShNYXRoLm1heCgwLHMpKX0sc2tpcExhc3Q6ZnVuY3Rpb24ocyl7cmV0dXJuIHJlaWZ5KHRoaXMsdGhpcy50b1NlcSgpLnJldmVyc2UoKS5za2lwKHMpLnJldmVyc2UoKSl9LHNraXBXaGlsZTpmdW5jdGlvbihzLG8pe3JldHVybiByZWlmeSh0aGlzLHNraXBXaGlsZUZhY3RvcnkodGhpcyxzLG8sITApKX0sc2tpcFVudGlsOmZ1bmN0aW9uKHMsbyl7cmV0dXJuIHRoaXMuc2tpcFdoaWxlKG5vdChzKSxvKX0sc29ydEJ5OmZ1bmN0aW9uKHMsbyl7cmV0dXJuIHJlaWZ5KHRoaXMsc29ydEZhY3RvcnkodGhpcyxvLHMpKX0sdGFrZTpmdW5jdGlvbihzKXtyZXR1cm4gdGhpcy5zbGljZSgwLE1hdGgubWF4KDAscykpfSx0YWtlTGFzdDpmdW5jdGlvbihzKXtyZXR1cm4gcmVpZnkodGhpcyx0aGlzLnRvU2VxKCkucmV2ZXJzZSgpLnRha2UocykucmV2ZXJzZSgpKX0sdGFrZVdoaWxlOmZ1bmN0aW9uKHMsbyl7cmV0dXJuIHJlaWZ5KHRoaXMsdGFrZVdoaWxlRmFjdG9yeSh0aGlzLHMsbykpfSx0YWtlVW50aWw6ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdGhpcy50YWtlV2hpbGUobm90KHMpLG8pfSx2YWx1ZVNlcTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRvSW5kZXhlZFNlcSgpfSxoYXNoQ29kZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9faGFzaHx8KHRoaXMuX19oYXNoPWhhc2hJdGVyYWJsZSh0aGlzKSl9fSk7dmFyIHV0PUl0ZXJhYmxlLnByb3RvdHlwZTt1dFtvXT0hMCx1dFtaXT11dC52YWx1ZXMsdXQuX190b0pTPXV0LnRvQXJyYXksdXQuX190b1N0cmluZ01hcHBlcj1xdW90ZVN0cmluZyx1dC5pbnNwZWN0PXV0LnRvU291cmNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoKX0sdXQuY2hhaW49dXQuZmxhdE1hcCx1dC5jb250YWlucz11dC5pbmNsdWRlcyxtaXhpbihLZXllZEl0ZXJhYmxlLHtmbGlwOmZ1bmN0aW9uKCl7cmV0dXJuIHJlaWZ5KHRoaXMsZmxpcEZhY3RvcnkodGhpcykpfSxtYXBFbnRyaWVzOmZ1bmN0aW9uKHMsbyl7dmFyIGk9dGhpcyxhPTA7cmV0dXJuIHJlaWZ5KHRoaXMsdGhpcy50b1NlcSgpLm1hcCgoZnVuY3Rpb24odSxfKXtyZXR1cm4gcy5jYWxsKG8sW18sdV0sYSsrLGkpfSkpLmZyb21FbnRyeVNlcSgpKX0sbWFwS2V5czpmdW5jdGlvbihzLG8pe3ZhciBpPXRoaXM7cmV0dXJuIHJlaWZ5KHRoaXMsdGhpcy50b1NlcSgpLmZsaXAoKS5tYXAoKGZ1bmN0aW9uKGEsdSl7cmV0dXJuIHMuY2FsbChvLGEsdSxpKX0pKS5mbGlwKCkpfX0pO3ZhciBwdD1LZXllZEl0ZXJhYmxlLnByb3RvdHlwZTtmdW5jdGlvbiBrZXlNYXBwZXIocyxvKXtyZXR1cm4gb31mdW5jdGlvbiBlbnRyeU1hcHBlcihzLG8pe3JldHVybltvLHNdfWZ1bmN0aW9uIG5vdChzKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4hcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIG5lZyhzKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4tcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIHF1b3RlU3RyaW5nKHMpe3JldHVybiJzdHJpbmciPT10eXBlb2Ygcz9KU09OLnN0cmluZ2lmeShzKTpTdHJpbmcocyl9ZnVuY3Rpb24gZGVmYXVsdFppcHBlcigpe3JldHVybiBhcnJDb3B5KGFyZ3VtZW50cyl9ZnVuY3Rpb24gZGVmYXVsdE5lZ0NvbXBhcmF0b3IocyxvKXtyZXR1cm4gczxvPzE6cz5vPy0xOjB9ZnVuY3Rpb24gaGFzaEl0ZXJhYmxlKHMpe2lmKHMuc2l6ZT09PTEvMClyZXR1cm4gMDt2YXIgbz1pc09yZGVyZWQocyksaT1pc0tleWVkKHMpLGE9bz8xOjA7cmV0dXJuIG11cm11ckhhc2hPZlNpemUocy5fX2l0ZXJhdGUoaT9vP2Z1bmN0aW9uKHMsbyl7YT0zMSphK2hhc2hNZXJnZShoYXNoKHMpLGhhc2gobykpfDB9OmZ1bmN0aW9uKHMsbyl7YT1hK2hhc2hNZXJnZShoYXNoKHMpLGhhc2gobykpfDB9Om8/ZnVuY3Rpb24ocyl7YT0zMSphK2hhc2gocyl8MH06ZnVuY3Rpb24ocyl7YT1hK2hhc2gocyl8MH0pLGEpfWZ1bmN0aW9uIG11cm11ckhhc2hPZlNpemUocyxvKXtyZXR1cm4gbz1sZShvLDM0MzI5MTgzNTMpLG89bGUobzw8MTV8bz4+Pi0xNSw0NjE4NDU5MDcpLG89bGUobzw8MTN8bz4+Pi0xMyw1KSxvPWxlKChvPW8rMzg2NDI5MjE5Nl5zKV5vPj4+MTYsMjI0NjgyMjUwNyksbz1zbWkoKG89bGUob15vPj4+MTMsMzI2NjQ4OTkwOSkpXm8+Pj4xNil9ZnVuY3Rpb24gaGFzaE1lcmdlKHMsbyl7cmV0dXJuIHNebysyNjU0NDM1NzY5KyhzPDw2KSsocz4+Mil9cmV0dXJuIHB0W2ldPSEwLHB0W1pdPXV0LmVudHJpZXMscHQuX190b0pTPXV0LnRvT2JqZWN0LHB0Ll9fdG9TdHJpbmdNYXBwZXI9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkobykrIjogIitxdW90ZVN0cmluZyhzKX0sbWl4aW4oSW5kZXhlZEl0ZXJhYmxlLHt0b0tleWVkU2VxOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBUb0tleWVkU2VxdWVuY2UodGhpcywhMSl9LGZpbHRlcjpmdW5jdGlvbihzLG8pe3JldHVybiByZWlmeSh0aGlzLGZpbHRlckZhY3RvcnkodGhpcyxzLG8sITEpKX0sZmluZEluZGV4OmZ1bmN0aW9uKHMsbyl7dmFyIGk9dGhpcy5maW5kRW50cnkocyxvKTtyZXR1cm4gaT9pWzBdOi0xfSxpbmRleE9mOmZ1bmN0aW9uKHMpe3ZhciBvPXRoaXMua2V5T2Yocyk7cmV0dXJuIHZvaWQgMD09PW8/LTE6b30sbGFzdEluZGV4T2Y6ZnVuY3Rpb24ocyl7dmFyIG89dGhpcy5sYXN0S2V5T2Yocyk7cmV0dXJuIHZvaWQgMD09PW8/LTE6b30scmV2ZXJzZTpmdW5jdGlvbigpe3JldHVybiByZWlmeSh0aGlzLHJldmVyc2VGYWN0b3J5KHRoaXMsITEpKX0sc2xpY2U6ZnVuY3Rpb24ocyxvKXtyZXR1cm4gcmVpZnkodGhpcyxzbGljZUZhY3RvcnkodGhpcyxzLG8sITEpKX0sc3BsaWNlOmZ1bmN0aW9uKHMsbyl7dmFyIGk9YXJndW1lbnRzLmxlbmd0aDtpZihvPU1hdGgubWF4KDB8bywwKSwwPT09aXx8Mj09PWkmJiFvKXJldHVybiB0aGlzO3M9cmVzb2x2ZUJlZ2luKHMsczwwP3RoaXMuY291bnQoKTp0aGlzLnNpemUpO3ZhciBhPXRoaXMuc2xpY2UoMCxzKTtyZXR1cm4gcmVpZnkodGhpcywxPT09aT9hOmEuY29uY2F0KGFyckNvcHkoYXJndW1lbnRzLDIpLHRoaXMuc2xpY2UocytvKSkpfSxmaW5kTGFzdEluZGV4OmZ1bmN0aW9uKHMsbyl7dmFyIGk9dGhpcy5maW5kTGFzdEVudHJ5KHMsbyk7cmV0dXJuIGk/aVswXTotMX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoMCl9LGZsYXR0ZW46ZnVuY3Rpb24ocyl7cmV0dXJuIHJlaWZ5KHRoaXMsZmxhdHRlbkZhY3RvcnkodGhpcyxzLCExKSl9LGdldDpmdW5jdGlvbihzLG8pe3JldHVybihzPXdyYXBJbmRleCh0aGlzLHMpKTwwfHx0aGlzLnNpemU9PT0xLzB8fHZvaWQgMCE9PXRoaXMuc2l6ZSYmcz50aGlzLnNpemU/bzp0aGlzLmZpbmQoKGZ1bmN0aW9uKG8saSl7cmV0dXJuIGk9PT1zfSksdm9pZCAwLG8pfSxoYXM6ZnVuY3Rpb24ocyl7cmV0dXJuKHM9d3JhcEluZGV4KHRoaXMscykpPj0wJiYodm9pZCAwIT09dGhpcy5zaXplP3RoaXMuc2l6ZT09PTEvMHx8czx0aGlzLnNpemU6LTEhPT10aGlzLmluZGV4T2YocykpfSxpbnRlcnBvc2U6ZnVuY3Rpb24ocyl7cmV0dXJuIHJlaWZ5KHRoaXMsaW50ZXJwb3NlRmFjdG9yeSh0aGlzLHMpKX0saW50ZXJsZWF2ZTpmdW5jdGlvbigpe3ZhciBzPVt0aGlzXS5jb25jYXQoYXJyQ29weShhcmd1bWVudHMpKSxvPXppcFdpdGhGYWN0b3J5KHRoaXMudG9TZXEoKSxJbmRleGVkU2VxLm9mLHMpLGk9by5mbGF0dGVuKCEwKTtyZXR1cm4gby5zaXplJiYoaS5zaXplPW8uc2l6ZSpzLmxlbmd0aCkscmVpZnkodGhpcyxpKX0sa2V5U2VxOmZ1bmN0aW9uKCl7cmV0dXJuIFJhbmdlKDAsdGhpcy5zaXplKX0sbGFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldCgtMSl9LHNraXBXaGlsZTpmdW5jdGlvbihzLG8pe3JldHVybiByZWlmeSh0aGlzLHNraXBXaGlsZUZhY3RvcnkodGhpcyxzLG8sITEpKX0semlwOmZ1bmN0aW9uKCl7cmV0dXJuIHJlaWZ5KHRoaXMsemlwV2l0aEZhY3RvcnkodGhpcyxkZWZhdWx0WmlwcGVyLFt0aGlzXS5jb25jYXQoYXJyQ29weShhcmd1bWVudHMpKSkpfSx6aXBXaXRoOmZ1bmN0aW9uKHMpe3ZhciBvPWFyckNvcHkoYXJndW1lbnRzKTtyZXR1cm4gb1swXT10aGlzLHJlaWZ5KHRoaXMsemlwV2l0aEZhY3RvcnkodGhpcyxzLG8pKX19KSxJbmRleGVkSXRlcmFibGUucHJvdG90eXBlW2FdPSEwLEluZGV4ZWRJdGVyYWJsZS5wcm90b3R5cGVbdV09ITAsbWl4aW4oU2V0SXRlcmFibGUse2dldDpmdW5jdGlvbihzLG8pe3JldHVybiB0aGlzLmhhcyhzKT9zOm99LGluY2x1ZGVzOmZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLmhhcyhzKX0sa2V5U2VxOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVTZXEoKX19KSxTZXRJdGVyYWJsZS5wcm90b3R5cGUuaGFzPXV0LmluY2x1ZGVzLFNldEl0ZXJhYmxlLnByb3RvdHlwZS5jb250YWlucz1TZXRJdGVyYWJsZS5wcm90b3R5cGUuaW5jbHVkZXMsbWl4aW4oS2V5ZWRTZXEsS2V5ZWRJdGVyYWJsZS5wcm90b3R5cGUpLG1peGluKEluZGV4ZWRTZXEsSW5kZXhlZEl0ZXJhYmxlLnByb3RvdHlwZSksbWl4aW4oU2V0U2VxLFNldEl0ZXJhYmxlLnByb3RvdHlwZSksbWl4aW4oS2V5ZWRDb2xsZWN0aW9uLEtleWVkSXRlcmFibGUucHJvdG90eXBlKSxtaXhpbihJbmRleGVkQ29sbGVjdGlvbixJbmRleGVkSXRlcmFibGUucHJvdG90eXBlKSxtaXhpbihTZXRDb2xsZWN0aW9uLFNldEl0ZXJhYmxlLnByb3RvdHlwZSkse0l0ZXJhYmxlLFNlcSxDb2xsZWN0aW9uLE1hcCxPcmRlcmVkTWFwLExpc3QsU3RhY2ssU2V0LE9yZGVyZWRTZXQsUmVjb3JkLFJhbmdlLFJlcGVhdCxpcyxmcm9tSlN9fSgpfSw5NzQ4OihzLG8saSk9PnsidXNlIHN0cmljdCI7aSg3MTM0MCk7dmFyIGE9aSg5MjA0Nik7cy5leHBvcnRzPWEuT2JqZWN0LmFzc2lnbn0sOTk5OToocyxvLGkpPT57dmFyIGE9aSgzNzIxNyksdT1pKDgzNzI5KSxfPWkoMTY1NDcpLHc9aSg3NDczMykseD1pKDQzODM4KSxDPWkoOTMyOTApLGo9aSgyMzAwNyksTD1pKDkyMjcxKSxCPWkoNDg5NDgpLCQ9aSg1MDAwMiksVj1pKDgzMzQ5KSxVPWkoNTg2MSksej1pKDc2MTg5KSxZPWkoNzcxOTkpLFo9aSgzNTUyOSksZWU9aSg1NjQ0OSksaWU9aSgzNjU2KSxhZT1pKDg3NzMwKSxjZT1pKDIzODA1KSxsZT1pKDM4NDQwKSxwZT1pKDk1OTUwKSxkZT1pKDM3MjQxKSxmZT0iW29iamVjdCBBcmd1bWVudHNdIix5ZT0iW29iamVjdCBGdW5jdGlvbl0iLGJlPSJbb2JqZWN0IE9iamVjdF0iLF9lPXt9O19lW2ZlXT1fZVsiW29iamVjdCBBcnJheV0iXT1fZVsiW29iamVjdCBBcnJheUJ1ZmZlcl0iXT1fZVsiW29iamVjdCBEYXRhVmlld10iXT1fZVsiW29iamVjdCBCb29sZWFuXSJdPV9lWyJbb2JqZWN0IERhdGVdIl09X2VbIltvYmplY3QgRmxvYXQzMkFycmF5XSJdPV9lWyJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXT1fZVsiW29iamVjdCBJbnQ4QXJyYXldIl09X2VbIltvYmplY3QgSW50MTZBcnJheV0iXT1fZVsiW29iamVjdCBJbnQzMkFycmF5XSJdPV9lWyJbb2JqZWN0IE1hcF0iXT1fZVsiW29iamVjdCBOdW1iZXJdIl09X2VbYmVdPV9lWyJbb2JqZWN0IFJlZ0V4cF0iXT1fZVsiW29iamVjdCBTZXRdIl09X2VbIltvYmplY3QgU3RyaW5nXSJdPV9lWyJbb2JqZWN0IFN5bWJvbF0iXT1fZVsiW29iamVjdCBVaW50OEFycmF5XSJdPV9lWyJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSJdPV9lWyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPV9lWyJbb2JqZWN0IFVpbnQzMkFycmF5XSJdPSEwLF9lWyJbb2JqZWN0IEVycm9yXSJdPV9lW3llXT1fZVsiW29iamVjdCBXZWFrTWFwXSJdPSExLHMuZXhwb3J0cz1mdW5jdGlvbiBiYXNlQ2xvbmUocyxvLGksU2Usd2UseGUpe3ZhciBQZSxUZT0xJm8sUmU9MiZvLCRlPTQmbztpZihpJiYoUGU9d2U/aShzLFNlLHdlLHhlKTppKHMpKSx2b2lkIDAhPT1QZSlyZXR1cm4gUGU7aWYoIWNlKHMpKXJldHVybiBzO3ZhciBxZT1lZShzKTtpZihxZSl7aWYoUGU9eihzKSwhVGUpcmV0dXJuIGoocyxQZSl9ZWxzZXt2YXIgemU9VShzKSxXZT16ZT09eWV8fCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PXplO2lmKGllKHMpKXJldHVybiBDKHMsVGUpO2lmKHplPT1iZXx8emU9PWZlfHxXZSYmIXdlKXtpZihQZT1SZXx8V2U/e306WihzKSwhVGUpcmV0dXJuIFJlP0Iocyx4KFBlLHMpKTpMKHMsdyhQZSxzKSl9ZWxzZXtpZighX2VbemVdKXJldHVybiB3ZT9zOnt9O1BlPVkocyx6ZSxUZSl9fXhlfHwoeGU9bmV3IGEpO3ZhciBIZT14ZS5nZXQocyk7aWYoSGUpcmV0dXJuIEhlO3hlLnNldChzLFBlKSxsZShzKT9zLmZvckVhY2goKGZ1bmN0aW9uKGEpe1BlLmFkZChiYXNlQ2xvbmUoYSxvLGksYSxzLHhlKSl9KSk6YWUocykmJnMuZm9yRWFjaCgoZnVuY3Rpb24oYSx1KXtQZS5zZXQodSxiYXNlQ2xvbmUoYSxvLGksdSxzLHhlKSl9KSk7dmFyIFllPXFlP3ZvaWQgMDooJGU/UmU/VjokOlJlP2RlOnBlKShzKTtyZXR1cm4gdShZZXx8cywoZnVuY3Rpb24oYSx1KXtZZSYmKGE9c1t1PWFdKSxfKFBlLHUsYmFzZUNsb25lKGEsbyxpLHUscyx4ZSkpfSkpLFBlfX0sMTAwMjM6KHMsbyxpKT0+e2NvbnN0IGE9aSg2MjA1KSxJTlRTPSgpPT5be3R5cGU6YS5SQU5HRSxmcm9tOjQ4LHRvOjU3fV0sV09SRFM9KCk9Plt7dHlwZTphLkNIQVIsdmFsdWU6OTV9LHt0eXBlOmEuUkFOR0UsZnJvbTo5Nyx0bzoxMjJ9LHt0eXBlOmEuUkFOR0UsZnJvbTo2NSx0bzo5MH1dLmNvbmNhdChJTlRTKCkpLFdISVRFU1BBQ0U9KCk9Plt7dHlwZTphLkNIQVIsdmFsdWU6OX0se3R5cGU6YS5DSEFSLHZhbHVlOjEwfSx7dHlwZTphLkNIQVIsdmFsdWU6MTF9LHt0eXBlOmEuQ0hBUix2YWx1ZToxMn0se3R5cGU6YS5DSEFSLHZhbHVlOjEzfSx7dHlwZTphLkNIQVIsdmFsdWU6MzJ9LHt0eXBlOmEuQ0hBUix2YWx1ZToxNjB9LHt0eXBlOmEuQ0hBUix2YWx1ZTo1NzYwfSx7dHlwZTphLlJBTkdFLGZyb206ODE5Mix0bzo4MjAyfSx7dHlwZTphLkNIQVIsdmFsdWU6ODIzMn0se3R5cGU6YS5DSEFSLHZhbHVlOjgyMzN9LHt0eXBlOmEuQ0hBUix2YWx1ZTo4MjM5fSx7dHlwZTphLkNIQVIsdmFsdWU6ODI4N30se3R5cGU6YS5DSEFSLHZhbHVlOjEyMjg4fSx7dHlwZTphLkNIQVIsdmFsdWU6NjUyNzl9XTtvLndvcmRzPSgpPT4oe3R5cGU6YS5TRVQsc2V0OldPUkRTKCksbm90OiExfSksby5ub3RXb3Jkcz0oKT0+KHt0eXBlOmEuU0VULHNldDpXT1JEUygpLG5vdDohMH0pLG8uaW50cz0oKT0+KHt0eXBlOmEuU0VULHNldDpJTlRTKCksbm90OiExfSksby5ub3RJbnRzPSgpPT4oe3R5cGU6YS5TRVQsc2V0OklOVFMoKSxub3Q6ITB9KSxvLndoaXRlc3BhY2U9KCk9Pih7dHlwZTphLlNFVCxzZXQ6V0hJVEVTUEFDRSgpLG5vdDohMX0pLG8ubm90V2hpdGVzcGFjZT0oKT0+KHt0eXBlOmEuU0VULHNldDpXSElURVNQQUNFKCksbm90OiEwfSksby5hbnlDaGFyPSgpPT4oe3R5cGU6YS5TRVQsc2V0Olt7dHlwZTphLkNIQVIsdmFsdWU6MTB9LHt0eXBlOmEuQ0hBUix2YWx1ZToxM30se3R5cGU6YS5DSEFSLHZhbHVlOjgyMzJ9LHt0eXBlOmEuQ0hBUix2YWx1ZTo4MjMzfV0sbm90OiEwfSl9LDEwMDQzOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg1NDAxOCksdT1TdHJpbmcsXz1UeXBlRXJyb3I7cy5leHBvcnRzPWZ1bmN0aW9uKHMpe2lmKGEocykpcmV0dXJuIHM7dGhyb3cgbmV3IF8oIkNhbid0IHNldCAiK3UocykrIiBhcyBhIHByb3RvdHlwZSIpfX0sMTAxMjQ6KHMsbyxpKT0+e3ZhciBhPWkoOTMyNSk7cy5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuIGEuRGF0ZS5ub3coKX19LDEwMzAwOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgxMzkzMCksdT1pKDgyMTU5KSxfPWkoMzY2MjQpLHc9aSg0NjQwKSx4PWkoNzM0NDgpLEM9VHlwZUVycm9yO3MuZXhwb3J0cz1mdW5jdGlvbihzLG8pe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg8Mj94KHMpOm87aWYodShpKSlyZXR1cm4gXyhhKGkscykpO3Rocm93IG5ldyBDKHcocykrIiBpcyBub3QgaXRlcmFibGUiKX19LDEwMzE2OihzLG8saSk9Pntjb25zdCBhPWkoMjQwNCksdT1pKDU1OTczKSxfPWkoOTIzNDApO2NsYXNzIEVsZW1lbnR7Y29uc3RydWN0b3IocyxvLGkpe28mJih0aGlzLm1ldGE9byksaSYmKHRoaXMuYXR0cmlidXRlcz1pKSx0aGlzLmNvbnRlbnQ9c31mcmVlemUoKXtPYmplY3QuaXNGcm96ZW4odGhpcyl8fCh0aGlzLl9tZXRhJiYodGhpcy5tZXRhLnBhcmVudD10aGlzLHRoaXMubWV0YS5mcmVlemUoKSksdGhpcy5fYXR0cmlidXRlcyYmKHRoaXMuYXR0cmlidXRlcy5wYXJlbnQ9dGhpcyx0aGlzLmF0dHJpYnV0ZXMuZnJlZXplKCkpLHRoaXMuY2hpbGRyZW4uZm9yRWFjaCgocz0+e3MucGFyZW50PXRoaXMscy5mcmVlemUoKX0pLHRoaXMpLHRoaXMuY29udGVudCYmQXJyYXkuaXNBcnJheSh0aGlzLmNvbnRlbnQpJiZPYmplY3QuZnJlZXplKHRoaXMuY29udGVudCksT2JqZWN0LmZyZWV6ZSh0aGlzKSl9cHJpbWl0aXZlKCl7fWNsb25lKCl7Y29uc3Qgcz1uZXcgdGhpcy5jb25zdHJ1Y3RvcjtyZXR1cm4gcy5lbGVtZW50PXRoaXMuZWxlbWVudCx0aGlzLm1ldGEubGVuZ3RoJiYocy5fbWV0YT10aGlzLm1ldGEuY2xvbmUoKSksdGhpcy5hdHRyaWJ1dGVzLmxlbmd0aCYmKHMuX2F0dHJpYnV0ZXM9dGhpcy5hdHRyaWJ1dGVzLmNsb25lKCkpLHRoaXMuY29udGVudD90aGlzLmNvbnRlbnQuY2xvbmU/cy5jb250ZW50PXRoaXMuY29udGVudC5jbG9uZSgpOkFycmF5LmlzQXJyYXkodGhpcy5jb250ZW50KT9zLmNvbnRlbnQ9dGhpcy5jb250ZW50Lm1hcCgocz0+cy5jbG9uZSgpKSk6cy5jb250ZW50PXRoaXMuY29udGVudDpzLmNvbnRlbnQ9dGhpcy5jb250ZW50LHN9dG9WYWx1ZSgpe3JldHVybiB0aGlzLmNvbnRlbnQgaW5zdGFuY2VvZiBFbGVtZW50P3RoaXMuY29udGVudC50b1ZhbHVlKCk6dGhpcy5jb250ZW50IGluc3RhbmNlb2YgdT97a2V5OnRoaXMuY29udGVudC5rZXkudG9WYWx1ZSgpLHZhbHVlOnRoaXMuY29udGVudC52YWx1ZT90aGlzLmNvbnRlbnQudmFsdWUudG9WYWx1ZSgpOnZvaWQgMH06dGhpcy5jb250ZW50JiZ0aGlzLmNvbnRlbnQubWFwP3RoaXMuY29udGVudC5tYXAoKHM9PnMudG9WYWx1ZSgpKSx0aGlzKTp0aGlzLmNvbnRlbnR9dG9SZWYocyl7aWYoIiI9PT10aGlzLmlkLnRvVmFsdWUoKSl0aHJvdyBFcnJvcigiQ2Fubm90IGNyZWF0ZSByZWZlcmVuY2UgdG8gYW4gZWxlbWVudCB0aGF0IGRvZXMgbm90IGNvbnRhaW4gYW4gSUQiKTtjb25zdCBvPW5ldyB0aGlzLlJlZkVsZW1lbnQodGhpcy5pZC50b1ZhbHVlKCkpO3JldHVybiBzJiYoby5wYXRoPXMpLG99ZmluZFJlY3Vyc2l2ZSguLi5zKXtpZihhcmd1bWVudHMubGVuZ3RoPjEmJiF0aGlzLmlzRnJvemVuKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGZpbmQgcmVjdXJzaXZlIHdpdGggbXVsdGlwbGUgZWxlbWVudCBuYW1lcyB3aXRob3V0IGZpcnN0IGZyZWV6aW5nIHRoZSBlbGVtZW50LiBDYWxsIGBlbGVtZW50LmZyZWV6ZSgpYCIpO2NvbnN0IG89cy5wb3AoKTtsZXQgaT1uZXcgXztjb25zdCBhcHBlbmQ9KHMsbyk9PihzLnB1c2gobykscyksY2hlY2tFbGVtZW50PShzLGkpPT57aS5lbGVtZW50PT09byYmcy5wdXNoKGkpO2NvbnN0IGE9aS5maW5kUmVjdXJzaXZlKG8pO3JldHVybiBhJiZhLnJlZHVjZShhcHBlbmQscyksaS5jb250ZW50IGluc3RhbmNlb2YgdSYmKGkuY29udGVudC5rZXkmJmNoZWNrRWxlbWVudChzLGkuY29udGVudC5rZXkpLGkuY29udGVudC52YWx1ZSYmY2hlY2tFbGVtZW50KHMsaS5jb250ZW50LnZhbHVlKSksc307cmV0dXJuIHRoaXMuY29udGVudCYmKHRoaXMuY29udGVudC5lbGVtZW50JiZjaGVja0VsZW1lbnQoaSx0aGlzLmNvbnRlbnQpLEFycmF5LmlzQXJyYXkodGhpcy5jb250ZW50KSYmdGhpcy5jb250ZW50LnJlZHVjZShjaGVja0VsZW1lbnQsaSkpLHMuaXNFbXB0eXx8KGk9aS5maWx0ZXIoKG89PntsZXQgaT1vLnBhcmVudHMubWFwKChzPT5zLmVsZW1lbnQpKTtmb3IoY29uc3QgbyBpbiBzKXtjb25zdCBhPXNbb10sdT1pLmluZGV4T2YoYSk7aWYoLTE9PT11KXJldHVybiExO2k9aS5zcGxpY2UoMCx1KX1yZXR1cm4hMH0pKSksaX1zZXQocyl7cmV0dXJuIHRoaXMuY29udGVudD1zLHRoaXN9ZXF1YWxzKHMpe3JldHVybiBhKHRoaXMudG9WYWx1ZSgpLHMpfWdldE1ldGFQcm9wZXJ0eShzLG8pe2lmKCF0aGlzLm1ldGEuaGFzS2V5KHMpKXtpZih0aGlzLmlzRnJvemVuKXtjb25zdCBzPXRoaXMucmVmcmFjdChvKTtyZXR1cm4gcy5mcmVlemUoKSxzfXRoaXMubWV0YS5zZXQocyxvKX1yZXR1cm4gdGhpcy5tZXRhLmdldChzKX1zZXRNZXRhUHJvcGVydHkocyxvKXt0aGlzLm1ldGEuc2V0KHMsbyl9Z2V0IGVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fc3RvcmVkRWxlbWVudHx8ImVsZW1lbnQifXNldCBlbGVtZW50KHMpe3RoaXMuX3N0b3JlZEVsZW1lbnQ9c31nZXQgY29udGVudCgpe3JldHVybiB0aGlzLl9jb250ZW50fXNldCBjb250ZW50KHMpe2lmKHMgaW5zdGFuY2VvZiBFbGVtZW50KXRoaXMuX2NvbnRlbnQ9cztlbHNlIGlmKHMgaW5zdGFuY2VvZiBfKXRoaXMuY29udGVudD1zLmVsZW1lbnRzO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBzfHwibnVtYmVyIj09dHlwZW9mIHN8fCJib29sZWFuIj09dHlwZW9mIHN8fCJudWxsIj09PXN8fG51bGw9PXMpdGhpcy5fY29udGVudD1zO2Vsc2UgaWYocyBpbnN0YW5jZW9mIHUpdGhpcy5fY29udGVudD1zO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShzKSl0aGlzLl9jb250ZW50PXMubWFwKHRoaXMucmVmcmFjdCk7ZWxzZXtpZigib2JqZWN0IiE9dHlwZW9mIHMpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2V0IGNvbnRlbnQgdG8gZ2l2ZW4gdmFsdWUiKTt0aGlzLl9jb250ZW50PU9iamVjdC5rZXlzKHMpLm1hcCgobz0+bmV3IHRoaXMuTWVtYmVyRWxlbWVudChvLHNbb10pKSl9fWdldCBtZXRhKCl7aWYoIXRoaXMuX21ldGEpe2lmKHRoaXMuaXNGcm96ZW4pe2NvbnN0IHM9bmV3IHRoaXMuT2JqZWN0RWxlbWVudDtyZXR1cm4gcy5mcmVlemUoKSxzfXRoaXMuX21ldGE9bmV3IHRoaXMuT2JqZWN0RWxlbWVudH1yZXR1cm4gdGhpcy5fbWV0YX1zZXQgbWV0YShzKXtzIGluc3RhbmNlb2YgdGhpcy5PYmplY3RFbGVtZW50P3RoaXMuX21ldGE9czp0aGlzLm1ldGEuc2V0KHN8fHt9KX1nZXQgYXR0cmlidXRlcygpe2lmKCF0aGlzLl9hdHRyaWJ1dGVzKXtpZih0aGlzLmlzRnJvemVuKXtjb25zdCBzPW5ldyB0aGlzLk9iamVjdEVsZW1lbnQ7cmV0dXJuIHMuZnJlZXplKCksc310aGlzLl9hdHRyaWJ1dGVzPW5ldyB0aGlzLk9iamVjdEVsZW1lbnR9cmV0dXJuIHRoaXMuX2F0dHJpYnV0ZXN9c2V0IGF0dHJpYnV0ZXMocyl7cyBpbnN0YW5jZW9mIHRoaXMuT2JqZWN0RWxlbWVudD90aGlzLl9hdHRyaWJ1dGVzPXM6dGhpcy5hdHRyaWJ1dGVzLnNldChzfHx7fSl9Z2V0IGlkKCl7cmV0dXJuIHRoaXMuZ2V0TWV0YVByb3BlcnR5KCJpZCIsIiIpfXNldCBpZChzKXt0aGlzLnNldE1ldGFQcm9wZXJ0eSgiaWQiLHMpfWdldCBjbGFzc2VzKCl7cmV0dXJuIHRoaXMuZ2V0TWV0YVByb3BlcnR5KCJjbGFzc2VzIixbXSl9c2V0IGNsYXNzZXMocyl7dGhpcy5zZXRNZXRhUHJvcGVydHkoImNsYXNzZXMiLHMpfWdldCB0aXRsZSgpe3JldHVybiB0aGlzLmdldE1ldGFQcm9wZXJ0eSgidGl0bGUiLCIiKX1zZXQgdGl0bGUocyl7dGhpcy5zZXRNZXRhUHJvcGVydHkoInRpdGxlIixzKX1nZXQgZGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy5nZXRNZXRhUHJvcGVydHkoImRlc2NyaXB0aW9uIiwiIil9c2V0IGRlc2NyaXB0aW9uKHMpe3RoaXMuc2V0TWV0YVByb3BlcnR5KCJkZXNjcmlwdGlvbiIscyl9Z2V0IGxpbmtzKCl7cmV0dXJuIHRoaXMuZ2V0TWV0YVByb3BlcnR5KCJsaW5rcyIsW10pfXNldCBsaW5rcyhzKXt0aGlzLnNldE1ldGFQcm9wZXJ0eSgibGlua3MiLHMpfWdldCBpc0Zyb3plbigpe3JldHVybiBPYmplY3QuaXNGcm96ZW4odGhpcyl9Z2V0IHBhcmVudHMoKXtsZXR7cGFyZW50OnN9PXRoaXM7Y29uc3Qgbz1uZXcgXztmb3IoO3M7KW8ucHVzaChzKSxzPXMucGFyZW50O3JldHVybiBvfWdldCBjaGlsZHJlbigpe2lmKEFycmF5LmlzQXJyYXkodGhpcy5jb250ZW50KSlyZXR1cm4gbmV3IF8odGhpcy5jb250ZW50KTtpZih0aGlzLmNvbnRlbnQgaW5zdGFuY2VvZiB1KXtjb25zdCBzPW5ldyBfKFt0aGlzLmNvbnRlbnQua2V5XSk7cmV0dXJuIHRoaXMuY29udGVudC52YWx1ZSYmcy5wdXNoKHRoaXMuY29udGVudC52YWx1ZSksc31yZXR1cm4gdGhpcy5jb250ZW50IGluc3RhbmNlb2YgRWxlbWVudD9uZXcgXyhbdGhpcy5jb250ZW50XSk6bmV3IF99Z2V0IHJlY3Vyc2l2ZUNoaWxkcmVuKCl7Y29uc3Qgcz1uZXcgXztyZXR1cm4gdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChvPT57cy5wdXNoKG8pLG8ucmVjdXJzaXZlQ2hpbGRyZW4uZm9yRWFjaCgobz0+e3MucHVzaChvKX0pKX0pKSxzfX1zLmV4cG9ydHM9RWxlbWVudH0sMTAzOTI6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBnZXRWYWx1ZShzLG8pe3JldHVybiBudWxsPT1zP3ZvaWQgMDpzW29dfX0sMTA3NzY6KHMsbyxpKT0+e3ZhciBhPWkoMzA3NTYpLHU9aSg5NTk1MCk7cy5leHBvcnRzPWZ1bmN0aW9uIGdldE1hdGNoRGF0YShzKXtmb3IodmFyIG89dShzKSxpPW8ubGVuZ3RoO2ktLTspe3ZhciBfPW9baV0sdz1zW19dO29baV09W18sdyxhKHcpXX1yZXR1cm4gb319LDEwODY2OihzLG8saSk9Pntjb25zdCBhPWkoNjA0OCksdT1pKDkyMzQwKTtjbGFzcyBPYmplY3RTbGljZSBleHRlbmRzIHV7bWFwKHMsbyl7cmV0dXJuIHRoaXMuZWxlbWVudHMubWFwKChpPT5zLmJpbmQobykoaS52YWx1ZSxpLmtleSxpKSkpfWZpbHRlcihzLG8pe3JldHVybiBuZXcgT2JqZWN0U2xpY2UodGhpcy5lbGVtZW50cy5maWx0ZXIoKGk9PnMuYmluZChvKShpLnZhbHVlLGkua2V5LGkpKSkpfXJlamVjdChzLG8pe3JldHVybiB0aGlzLmZpbHRlcihhKHMuYmluZChvKSkpfWZvckVhY2gocyxvKXtyZXR1cm4gdGhpcy5lbGVtZW50cy5mb3JFYWNoKCgoaSxhKT0+e3MuYmluZChvKShpLnZhbHVlLGkua2V5LGksYSl9KSl9a2V5cygpe3JldHVybiB0aGlzLm1hcCgoKHMsbyk9Pm8udG9WYWx1ZSgpKSl9dmFsdWVzKCl7cmV0dXJuIHRoaXMubWFwKChzPT5zLnRvVmFsdWUoKSkpfX1zLmV4cG9ydHM9T2JqZWN0U2xpY2V9LDExMDQyOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg4NTU4MiksdT1pKDE5MDcpLF89aSgyNDQ0Myksdz1pKDg3MTcwKSx4PWkoMzY2MjQpLEM9dShbXS5jb25jYXQpO3MuZXhwb3J0cz1hKCJSZWZsZWN0Iiwib3duS2V5cyIpfHxmdW5jdGlvbiBvd25LZXlzKHMpe3ZhciBvPV8uZih4KHMpKSxpPXcuZjtyZXR1cm4gaT9DKG8saShzKSk6b319LDExMDkxOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg0NTk1MSksdT1pKDc2MDI0KSxfPWkoOTIzNjEpLHc9aSg2MjI1MCkseD1pKDEzODQ2KS5mLEM9aSg3NDYzKSxqPWkoOTIwNDYpLEw9aSgyODMxMSksQj1pKDYxNjI2KSwkPWkoNDk3MjQpO2koMzYxMjgpO3ZhciB3cmFwQ29uc3RydWN0b3I9ZnVuY3Rpb24ocyl7dmFyIFdyYXBwZXI9ZnVuY3Rpb24obyxpLGEpe2lmKHRoaXMgaW5zdGFuY2VvZiBXcmFwcGVyKXtzd2l0Y2goYXJndW1lbnRzLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBuZXcgcztjYXNlIDE6cmV0dXJuIG5ldyBzKG8pO2Nhc2UgMjpyZXR1cm4gbmV3IHMobyxpKX1yZXR1cm4gbmV3IHMobyxpLGEpfXJldHVybiB1KHMsdGhpcyxhcmd1bWVudHMpfTtyZXR1cm4gV3JhcHBlci5wcm90b3R5cGU9cy5wcm90b3R5cGUsV3JhcHBlcn07cy5leHBvcnRzPWZ1bmN0aW9uKHMsbyl7dmFyIGksdSxWLFUseixZLFosZWUsaWUsYWU9cy50YXJnZXQsY2U9cy5nbG9iYWwsbGU9cy5zdGF0LHBlPXMucHJvdG8sZGU9Y2U/YTpsZT9hW2FlXTphW2FlXSYmYVthZV0ucHJvdG90eXBlLGZlPWNlP2o6althZV18fEIoaixhZSx7fSlbYWVdLHllPWZlLnByb3RvdHlwZTtmb3IoVSBpbiBvKXU9IShpPUMoY2U/VTphZSsobGU/Ii4iOiIjIikrVSxzLmZvcmNlZCkpJiZkZSYmJChkZSxVKSxZPWZlW1VdLHUmJihaPXMuZG9udENhbGxHZXRTZXQ/KGllPXgoZGUsVSkpJiZpZS52YWx1ZTpkZVtVXSksej11JiZaP1o6b1tVXSwoaXx8cGV8fHR5cGVvZiBZIT10eXBlb2YgeikmJihlZT1zLmJpbmQmJnU/TCh6LGEpOnMud3JhcCYmdT93cmFwQ29uc3RydWN0b3Ioeik6cGUmJncoeik/Xyh6KTp6LChzLnNoYW18fHomJnouc2hhbXx8WSYmWS5zaGFtKSYmQihlZSwic2hhbSIsITApLEIoZmUsVSxlZSkscGUmJigkKGosVj1hZSsiUHJvdG90eXBlIil8fEIoaixWLHt9KSxCKGpbVl0sVSx6KSxzLnJlYWwmJnllJiYoaXx8IXllW1VdKSYmQih5ZSxVLHopKSl9fSwxMTI4NzpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIGdldEhvbGRlcihzKXtyZXR1cm4gcy5wbGFjZWhvbGRlcn19LDExMzMxOihzLG8saSk9Pnt2YXIgYT1pKDcyNTUyKSx1PWkoMjg4NzkpLF89aSg0MDM0Niksdz1GdW5jdGlvbi5wcm90b3R5cGUseD1PYmplY3QucHJvdG90eXBlLEM9dy50b1N0cmluZyxqPXguaGFzT3duUHJvcGVydHksTD1DLmNhbGwoT2JqZWN0KTtzLmV4cG9ydHM9ZnVuY3Rpb24gaXNQbGFpbk9iamVjdChzKXtpZighXyhzKXx8IltvYmplY3QgT2JqZWN0XSIhPWEocykpcmV0dXJuITE7dmFyIG89dShzKTtpZihudWxsPT09bylyZXR1cm4hMDt2YXIgaT1qLmNhbGwobywiY29uc3RydWN0b3IiKSYmby5jb25zdHJ1Y3RvcjtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgaSYmaSBpbnN0YW5jZW9mIGkmJkMuY2FsbChpKT09TH19LDExNDcwOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgxOTA3KSx1PWkoNjU0ODIpLF89aSg5MDE2MCksdz1pKDc0MjM5KSx4PWEoIiIuY2hhckF0KSxDPWEoIiIuY2hhckNvZGVBdCksaj1hKCIiLnNsaWNlKSxjcmVhdGVNZXRob2Q9ZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uKG8saSl7dmFyIGEsTCxCPV8odyhvKSksJD11KGkpLFY9Qi5sZW5ndGg7cmV0dXJuICQ8MHx8JD49Vj9zPyIiOnZvaWQgMDooYT1DKEIsJCkpPDU1Mjk2fHxhPjU2MzE5fHwkKzE9PT1WfHwoTD1DKEIsJCsxKSk8NTYzMjB8fEw+NTczNDM/cz94KEIsJCk6YTpzP2ooQiwkLCQrMik6TC01NjMyMCsoYS01NTI5Njw8MTApKzY1NTM2fX07cy5leHBvcnRzPXtjb2RlQXQ6Y3JlYXRlTWV0aG9kKCExKSxjaGFyQXQ6Y3JlYXRlTWV0aG9kKCEwKX19LDExODQyOihzLG8saSk9Pnt2YXIgYT1pKDgyODE5KSx1PWkoOTMyNSk7cy5leHBvcnRzPWZ1bmN0aW9uIGNyZWF0ZUJpbmQocyxvLGkpe3ZhciBfPTEmbyx3PWEocyk7cmV0dXJuIGZ1bmN0aW9uIHdyYXBwZXIoKXtyZXR1cm4odGhpcyYmdGhpcyE9PXUmJnRoaXMgaW5zdGFuY2VvZiB3cmFwcGVyP3c6cykuYXBwbHkoXz9pOnRoaXMsYXJndW1lbnRzKX19fSwxMjI0MjoocyxvLGkpPT57Y29uc3QgYT1pKDEwMzE2KTtzLmV4cG9ydHM9Y2xhc3MgQm9vbGVhbkVsZW1lbnQgZXh0ZW5kcyBhe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJib29sZWFuIn1wcmltaXRpdmUoKXtyZXR1cm4iYm9vbGVhbiJ9fX0sMTI1MDc6KHMsbyxpKT0+e3ZhciBhPWkoMjg3NTQpLHU9aSg0OTY5OCksXz1pKDYzOTEyKSx3PWkoMTMyMjIpO3MuZXhwb3J0cz1mdW5jdGlvbiBjcmVhdGVDYXNlRmlyc3Qocyl7cmV0dXJuIGZ1bmN0aW9uKG8pe289dyhvKTt2YXIgaT11KG8pP18obyk6dm9pZCAwLHg9aT9pWzBdOm8uY2hhckF0KDApLEM9aT9hKGksMSkuam9pbigiIik6by5zbGljZSgxKTtyZXR1cm4geFtzXSgpK0N9fX0sMTI1NjA6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0IjtpKDk5MzYzKTt2YXIgYT1pKDE5Mjg3KSx1PWkoNDU5NTEpLF89aSgxNDg0MCksdz1pKDkzNzQyKTtmb3IodmFyIHggaW4gYSlfKHVbeF0seCksd1t4XT13LkFycmF5fSwxMjY1MToocyxvLGkpPT57dmFyIGE9aSg3NDIxOCk7cy5leHBvcnRzPWZ1bmN0aW9uIGdldE1hcERhdGEocyxvKXt2YXIgaT1zLl9fZGF0YV9fO3JldHVybiBhKG8pP2lbInN0cmluZyI9PXR5cGVvZiBvPyJzdHJpbmciOiJoYXNoIl06aS5tYXB9fSwxMjc0OToocyxvLGkpPT57dmFyIGE9aSg4MTA0MiksdT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3MuZXhwb3J0cz1mdW5jdGlvbiBoYXNoSGFzKHMpe3ZhciBvPXRoaXMuX19kYXRhX187cmV0dXJuIGE/dm9pZCAwIT09b1tzXTp1LmNhbGwobyxzKX19LDEzMjIyOihzLG8saSk9Pnt2YXIgYT1pKDc3NTU2KTtzLmV4cG9ydHM9ZnVuY3Rpb24gdG9TdHJpbmcocyl7cmV0dXJuIG51bGw9PXM/IiI6YShzKX19LDEzODQ2OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgzOTQ0NyksdT1pKDEzOTMwKSxfPWkoMjI1NzQpLHc9aSg3NTgxNykseD1pKDQ5OTMpLEM9aSg3MDQ3MCksaj1pKDQ5NzI0KSxMPWkoNzM2NDgpLEI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtvLmY9YT9COmZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLG8pe2lmKHM9eChzKSxvPUMobyksTCl0cnl7cmV0dXJuIEIocyxvKX1jYXRjaChzKXt9aWYoaihzLG8pKXJldHVybiB3KCF1KF8uZixzLG8pLHNbb10pfX0sMTM5MzA6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDQxNTA1KSx1PUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsO3MuZXhwb3J0cz1hP3UuYmluZCh1KTpmdW5jdGlvbigpe3JldHVybiB1LmFwcGx5KHUsYXJndW1lbnRzKX19LDE0MjQ4OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gYXJyYXlTb21lKHMsbyl7Zm9yKHZhciBpPS0xLGE9bnVsbD09cz8wOnMubGVuZ3RoOysraTxhOylpZihvKHNbaV0saSxzKSlyZXR1cm4hMDtyZXR1cm4hMX19LDE0NTI4OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gYXJyYXlQdXNoKHMsbyl7Zm9yKHZhciBpPS0xLGE9by5sZW5ndGgsdT1zLmxlbmd0aDsrK2k8YTspc1t1K2ldPW9baV07cmV0dXJuIHN9fSwxNDU0MDoocyxvLGkpPT57Y29uc3QgYT1pKDEwMzE2KTtzLmV4cG9ydHM9Y2xhc3MgUmVmRWxlbWVudCBleHRlbmRzIGF7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHN8fFtdLG8saSksdGhpcy5lbGVtZW50PSJyZWYiLHRoaXMucGF0aHx8KHRoaXMucGF0aD0iZWxlbWVudCIpfWdldCBwYXRoKCl7cmV0dXJuIHRoaXMuYXR0cmlidXRlcy5nZXQoInBhdGgiKX1zZXQgcGF0aChzKXt0aGlzLmF0dHJpYnV0ZXMuc2V0KCJwYXRoIixzKX19fSwxNDc0NDpzPT57InVzZSBzdHJpY3QiO3ZhciBvPWZ1bmN0aW9uIGlzTWVyZ2VhYmxlT2JqZWN0KHMpe3JldHVybiBmdW5jdGlvbiBpc05vbk51bGxPYmplY3Qocyl7cmV0dXJuISFzJiYib2JqZWN0Ij09dHlwZW9mIHN9KHMpJiYhZnVuY3Rpb24gaXNTcGVjaWFsKHMpe3ZhciBvPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzKTtyZXR1cm4iW29iamVjdCBSZWdFeHBdIj09PW98fCJbb2JqZWN0IERhdGVdIj09PW98fGZ1bmN0aW9uIGlzUmVhY3RFbGVtZW50KHMpe3JldHVybiBzLiQkdHlwZW9mPT09aX0ocyl9KHMpfTt2YXIgaT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuZm9yP1N5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKTo2MDEwMztmdW5jdGlvbiBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZChzLG8pe3JldHVybiExIT09by5jbG9uZSYmby5pc01lcmdlYWJsZU9iamVjdChzKT9kZWVwbWVyZ2UoZnVuY3Rpb24gZW1wdHlUYXJnZXQocyl7cmV0dXJuIEFycmF5LmlzQXJyYXkocyk/W106e319KHMpLHMsbyk6c31mdW5jdGlvbiBkZWZhdWx0QXJyYXlNZXJnZShzLG8saSl7cmV0dXJuIHMuY29uY2F0KG8pLm1hcCgoZnVuY3Rpb24ocyl7cmV0dXJuIGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKHMsaSl9KSl9ZnVuY3Rpb24gZ2V0S2V5cyhzKXtyZXR1cm4gT2JqZWN0LmtleXMocykuY29uY2F0KGZ1bmN0aW9uIGdldEVudW1lcmFibGVPd25Qcm9wZXJ0eVN5bWJvbHMocyl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM/T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKS5maWx0ZXIoKGZ1bmN0aW9uKG8pe3JldHVybiBPYmplY3QucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLG8pfSkpOltdfShzKSl9ZnVuY3Rpb24gcHJvcGVydHlJc09uT2JqZWN0KHMsbyl7dHJ5e3JldHVybiBvIGluIHN9Y2F0Y2gocyl7cmV0dXJuITF9fWZ1bmN0aW9uIG1lcmdlT2JqZWN0KHMsbyxpKXt2YXIgYT17fTtyZXR1cm4gaS5pc01lcmdlYWJsZU9iamVjdChzKSYmZ2V0S2V5cyhzKS5mb3JFYWNoKChmdW5jdGlvbihvKXthW29dPWNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKHNbb10saSl9KSksZ2V0S2V5cyhvKS5mb3JFYWNoKChmdW5jdGlvbih1KXsoZnVuY3Rpb24gcHJvcGVydHlJc1Vuc2FmZShzLG8pe3JldHVybiBwcm9wZXJ0eUlzT25PYmplY3QocyxvKSYmIShPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChzLG8pJiZPYmplY3QucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLG8pKX0pKHMsdSl8fChwcm9wZXJ0eUlzT25PYmplY3Qocyx1KSYmaS5pc01lcmdlYWJsZU9iamVjdChvW3VdKT9hW3VdPWZ1bmN0aW9uIGdldE1lcmdlRnVuY3Rpb24ocyxvKXtpZighby5jdXN0b21NZXJnZSlyZXR1cm4gZGVlcG1lcmdlO3ZhciBpPW8uY3VzdG9tTWVyZ2Uocyk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGk/aTpkZWVwbWVyZ2V9KHUsaSkoc1t1XSxvW3VdLGkpOmFbdV09Y2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQob1t1XSxpKSl9KSksYX1mdW5jdGlvbiBkZWVwbWVyZ2UocyxpLGEpeyhhPWF8fHt9KS5hcnJheU1lcmdlPWEuYXJyYXlNZXJnZXx8ZGVmYXVsdEFycmF5TWVyZ2UsYS5pc01lcmdlYWJsZU9iamVjdD1hLmlzTWVyZ2VhYmxlT2JqZWN0fHxvLGEuY2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQ9Y2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQ7dmFyIHU9QXJyYXkuaXNBcnJheShpKTtyZXR1cm4gdT09PUFycmF5LmlzQXJyYXkocyk/dT9hLmFycmF5TWVyZ2UocyxpLGEpOm1lcmdlT2JqZWN0KHMsaSxhKTpjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZChpLGEpfWRlZXBtZXJnZS5hbGw9ZnVuY3Rpb24gZGVlcG1lcmdlQWxsKHMsbyl7aWYoIUFycmF5LmlzQXJyYXkocykpdGhyb3cgbmV3IEVycm9yKCJmaXJzdCBhcmd1bWVudCBzaG91bGQgYmUgYW4gYXJyYXkiKTtyZXR1cm4gcy5yZWR1Y2UoKGZ1bmN0aW9uKHMsaSl7cmV0dXJuIGRlZXBtZXJnZShzLGksbyl9KSx7fSl9O3ZhciBhPWRlZXBtZXJnZTtzLmV4cG9ydHM9YX0sMTQ3OTI6KHMsbyxpKT0+e3ZhciBhPWkoMTMyMjIpLHU9aSg1NTgwOCk7cy5leHBvcnRzPWZ1bmN0aW9uIGNhcGl0YWxpemUocyl7cmV0dXJuIHUoYShzKS50b0xvd2VyQ2FzZSgpKX19LDE0ODQwOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg1MjYyMyksdT1pKDc0Mjg0KS5mLF89aSg2MTYyNiksdz1pKDQ5NzI0KSx4PWkoNTQ4NzgpLEM9aSg3NjI2NCkoInRvU3RyaW5nVGFnIik7cy5leHBvcnRzPWZ1bmN0aW9uKHMsbyxpLGope3ZhciBMPWk/czpzJiZzLnByb3RvdHlwZTtMJiYodyhMLEMpfHx1KEwsQyx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOm99KSxqJiYhYSYmXyhMLCJ0b1N0cmluZyIseCkpfX0sMTQ5NzQ6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBzYWZlR2V0KHMsbyl7aWYoKCJjb25zdHJ1Y3RvciIhPT1vfHwiZnVuY3Rpb24iIT10eXBlb2Ygc1tvXSkmJiJfX3Byb3RvX18iIT1vKXJldHVybiBzW29dfX0sMTUyODc6KHMsbyk9PnsidXNlIHN0cmljdCI7dmFyIGk9U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpLGE9U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIiksdT1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLF89U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSx3PVN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIikseD1TeW1ib2wuZm9yKCJyZWFjdC5wcm92aWRlciIpLEM9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLGo9U3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKSxMPVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlIiksQj1TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIiksJD1TeW1ib2wuZm9yKCJyZWFjdC5sYXp5IiksVj1TeW1ib2wuaXRlcmF0b3I7dmFyIFU9e2lzTW91bnRlZDpmdW5jdGlvbigpe3JldHVybiExfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbigpe319LHo9T2JqZWN0LmFzc2lnbixZPXt9O2Z1bmN0aW9uIEUocyxvLGkpe3RoaXMucHJvcHM9cyx0aGlzLmNvbnRleHQ9byx0aGlzLnJlZnM9WSx0aGlzLnVwZGF0ZXI9aXx8VX1mdW5jdGlvbiBGKCl7fWZ1bmN0aW9uIEcocyxvLGkpe3RoaXMucHJvcHM9cyx0aGlzLmNvbnRleHQ9byx0aGlzLnJlZnM9WSx0aGlzLnVwZGF0ZXI9aXx8VX1FLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9LEUucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKHMsbyl7aWYoIm9iamVjdCIhPXR5cGVvZiBzJiYiZnVuY3Rpb24iIT10eXBlb2YgcyYmbnVsbCE9cyl0aHJvdyBFcnJvcigic2V0U3RhdGUoLi4uKTogdGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMuIik7dGhpcy51cGRhdGVyLmVucXVldWVTZXRTdGF0ZSh0aGlzLHMsbywic2V0U3RhdGUiKX0sRS5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24ocyl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLHMsImZvcmNlVXBkYXRlIil9LEYucHJvdG90eXBlPUUucHJvdG90eXBlO3ZhciBaPUcucHJvdG90eXBlPW5ldyBGO1ouY29uc3RydWN0b3I9Ryx6KFosRS5wcm90b3R5cGUpLFouaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIGVlPUFycmF5LmlzQXJyYXksaWU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxhZT17Y3VycmVudDpudWxsfSxjZT17a2V5OiEwLHJlZjohMCxfX3NlbGY6ITAsX19zb3VyY2U6ITB9O2Z1bmN0aW9uIE0ocyxvLGEpe3ZhciB1LF89e30sdz1udWxsLHg9bnVsbDtpZihudWxsIT1vKWZvcih1IGluIHZvaWQgMCE9PW8ucmVmJiYoeD1vLnJlZiksdm9pZCAwIT09by5rZXkmJih3PSIiK28ua2V5KSxvKWllLmNhbGwobyx1KSYmIWNlLmhhc093blByb3BlcnR5KHUpJiYoX1t1XT1vW3VdKTt2YXIgQz1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PUMpXy5jaGlsZHJlbj1hO2Vsc2UgaWYoMTxDKXtmb3IodmFyIGo9QXJyYXkoQyksTD0wO0w8QztMKyspaltMXT1hcmd1bWVudHNbTCsyXTtfLmNoaWxkcmVuPWp9aWYocyYmcy5kZWZhdWx0UHJvcHMpZm9yKHUgaW4gQz1zLmRlZmF1bHRQcm9wcyl2b2lkIDA9PT1fW3VdJiYoX1t1XT1DW3VdKTtyZXR1cm57JCR0eXBlb2Y6aSx0eXBlOnMsa2V5OncscmVmOngscHJvcHM6Xyxfb3duZXI6YWUuY3VycmVudH19ZnVuY3Rpb24gTyhzKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHMmJm51bGwhPT1zJiZzLiQkdHlwZW9mPT09aX12YXIgbGU9L1wvKy9nO2Z1bmN0aW9uIFEocyxvKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHMmJm51bGwhPT1zJiZudWxsIT1zLmtleT9mdW5jdGlvbiBlc2NhcGUocyl7dmFyIG89eyI9IjoiPTAiLCI6IjoiPTIifTtyZXR1cm4iJCIrcy5yZXBsYWNlKC9bPTpdL2csKGZ1bmN0aW9uKHMpe3JldHVybiBvW3NdfSkpfSgiIitzLmtleSk6by50b1N0cmluZygzNil9ZnVuY3Rpb24gUihzLG8sdSxfLHcpe3ZhciB4PXR5cGVvZiBzOyJ1bmRlZmluZWQiIT09eCYmImJvb2xlYW4iIT09eHx8KHM9bnVsbCk7dmFyIEM9ITE7aWYobnVsbD09PXMpQz0hMDtlbHNlIHN3aXRjaCh4KXtjYXNlInN0cmluZyI6Y2FzZSJudW1iZXIiOkM9ITA7YnJlYWs7Y2FzZSJvYmplY3QiOnN3aXRjaChzLiQkdHlwZW9mKXtjYXNlIGk6Y2FzZSBhOkM9ITB9fWlmKEMpcmV0dXJuIHc9dyhDPXMpLHM9IiI9PT1fPyIuIitRKEMsMCk6XyxlZSh3KT8odT0iIixudWxsIT1zJiYodT1zLnJlcGxhY2UobGUsIiQmLyIpKyIvIiksUih3LG8sdSwiIiwoZnVuY3Rpb24ocyl7cmV0dXJuIHN9KSkpOm51bGwhPXcmJihPKHcpJiYodz1mdW5jdGlvbiBOKHMsbyl7cmV0dXJueyQkdHlwZW9mOmksdHlwZTpzLnR5cGUsa2V5Om8scmVmOnMucmVmLHByb3BzOnMucHJvcHMsX293bmVyOnMuX293bmVyfX0odyx1Kyghdy5rZXl8fEMmJkMua2V5PT09dy5rZXk/IiI6KCIiK3cua2V5KS5yZXBsYWNlKGxlLCIkJi8iKSsiLyIpK3MpKSxvLnB1c2godykpLDE7aWYoQz0wLF89IiI9PT1fPyIuIjpfKyI6IixlZShzKSlmb3IodmFyIGo9MDtqPHMubGVuZ3RoO2orKyl7dmFyIEw9XytRKHg9c1tqXSxqKTtDKz1SKHgsbyx1LEwsdyl9ZWxzZSBpZihMPWZ1bmN0aW9uIEEocyl7cmV0dXJuIG51bGw9PT1zfHwib2JqZWN0IiE9dHlwZW9mIHM/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2Yocz1WJiZzW1ZdfHxzWyJAQGl0ZXJhdG9yIl0pP3M6bnVsbH0ocyksImZ1bmN0aW9uIj09dHlwZW9mIEwpZm9yKHM9TC5jYWxsKHMpLGo9MDshKHg9cy5uZXh0KCkpLmRvbmU7KUMrPVIoeD14LnZhbHVlLG8sdSxMPV8rUSh4LGorKyksdyk7ZWxzZSBpZigib2JqZWN0Ij09PXgpdGhyb3cgbz1TdHJpbmcocyksRXJyb3IoIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogIisoIltvYmplY3QgT2JqZWN0XSI9PT1vPyJvYmplY3Qgd2l0aCBrZXlzIHsiK09iamVjdC5rZXlzKHMpLmpvaW4oIiwgIikrIn0iOm8pKyIpLiBJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5IGluc3RlYWQuIik7cmV0dXJuIEN9ZnVuY3Rpb24gUyhzLG8saSl7aWYobnVsbD09cylyZXR1cm4gczt2YXIgYT1bXSx1PTA7cmV0dXJuIFIocyxhLCIiLCIiLChmdW5jdGlvbihzKXtyZXR1cm4gby5jYWxsKGkscyx1KyspfSkpLGF9ZnVuY3Rpb24gVChzKXtpZigtMT09PXMuX3N0YXR1cyl7dmFyIG89cy5fcmVzdWx0OyhvPW8oKSkudGhlbigoZnVuY3Rpb24obyl7MCE9PXMuX3N0YXR1cyYmLTEhPT1zLl9zdGF0dXN8fChzLl9zdGF0dXM9MSxzLl9yZXN1bHQ9byl9KSwoZnVuY3Rpb24obyl7MCE9PXMuX3N0YXR1cyYmLTEhPT1zLl9zdGF0dXN8fChzLl9zdGF0dXM9MixzLl9yZXN1bHQ9byl9KSksLTE9PT1zLl9zdGF0dXMmJihzLl9zdGF0dXM9MCxzLl9yZXN1bHQ9byl9aWYoMT09PXMuX3N0YXR1cylyZXR1cm4gcy5fcmVzdWx0LmRlZmF1bHQ7dGhyb3cgcy5fcmVzdWx0fXZhciBwZT17Y3VycmVudDpudWxsfSxkZT17dHJhbnNpdGlvbjpudWxsfSxmZT17UmVhY3RDdXJyZW50RGlzcGF0Y2hlcjpwZSxSZWFjdEN1cnJlbnRCYXRjaENvbmZpZzpkZSxSZWFjdEN1cnJlbnRPd25lcjphZX07ZnVuY3Rpb24gWCgpe3Rocm93IEVycm9yKCJhY3QoLi4uKSBpcyBub3Qgc3VwcG9ydGVkIGluIHByb2R1Y3Rpb24gYnVpbGRzIG9mIFJlYWN0LiIpfW8uQ2hpbGRyZW49e21hcDpTLGZvckVhY2g6ZnVuY3Rpb24ocyxvLGkpe1MocywoZnVuY3Rpb24oKXtvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLGkpfSxjb3VudDpmdW5jdGlvbihzKXt2YXIgbz0wO3JldHVybiBTKHMsKGZ1bmN0aW9uKCl7bysrfSkpLG99LHRvQXJyYXk6ZnVuY3Rpb24ocyl7cmV0dXJuIFMocywoZnVuY3Rpb24ocyl7cmV0dXJuIHN9KSl8fFtdfSxvbmx5OmZ1bmN0aW9uKHMpe2lmKCFPKHMpKXRocm93IEVycm9yKCJSZWFjdC5DaGlsZHJlbi5vbmx5IGV4cGVjdGVkIHRvIHJlY2VpdmUgYSBzaW5nbGUgUmVhY3QgZWxlbWVudCBjaGlsZC4iKTtyZXR1cm4gc319LG8uQ29tcG9uZW50PUUsby5GcmFnbWVudD11LG8uUHJvZmlsZXI9dyxvLlB1cmVDb21wb25lbnQ9RyxvLlN0cmljdE1vZGU9XyxvLlN1c3BlbnNlPUwsby5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRD1mZSxvLmFjdD1YLG8uY2xvbmVFbGVtZW50PWZ1bmN0aW9uKHMsbyxhKXtpZihudWxsPT1zKXRocm93IEVycm9yKCJSZWFjdC5jbG9uZUVsZW1lbnQoLi4uKTogVGhlIGFyZ3VtZW50IG11c3QgYmUgYSBSZWFjdCBlbGVtZW50LCBidXQgeW91IHBhc3NlZCAiK3MrIi4iKTt2YXIgdT16KHt9LHMucHJvcHMpLF89cy5rZXksdz1zLnJlZix4PXMuX293bmVyO2lmKG51bGwhPW8pe2lmKHZvaWQgMCE9PW8ucmVmJiYodz1vLnJlZix4PWFlLmN1cnJlbnQpLHZvaWQgMCE9PW8ua2V5JiYoXz0iIitvLmtleSkscy50eXBlJiZzLnR5cGUuZGVmYXVsdFByb3BzKXZhciBDPXMudHlwZS5kZWZhdWx0UHJvcHM7Zm9yKGogaW4gbylpZS5jYWxsKG8saikmJiFjZS5oYXNPd25Qcm9wZXJ0eShqKSYmKHVbal09dm9pZCAwPT09b1tqXSYmdm9pZCAwIT09Qz9DW2pdOm9bal0pfXZhciBqPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09ail1LmNoaWxkcmVuPWE7ZWxzZSBpZigxPGope0M9QXJyYXkoaik7Zm9yKHZhciBMPTA7TDxqO0wrKylDW0xdPWFyZ3VtZW50c1tMKzJdO3UuY2hpbGRyZW49Q31yZXR1cm57JCR0eXBlb2Y6aSx0eXBlOnMudHlwZSxrZXk6XyxyZWY6dyxwcm9wczp1LF9vd25lcjp4fX0sby5jcmVhdGVDb250ZXh0PWZ1bmN0aW9uKHMpe3JldHVybihzPXskJHR5cGVvZjpDLF9jdXJyZW50VmFsdWU6cyxfY3VycmVudFZhbHVlMjpzLF90aHJlYWRDb3VudDowLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbCxfZGVmYXVsdFZhbHVlOm51bGwsX2dsb2JhbE5hbWU6bnVsbH0pLlByb3ZpZGVyPXskJHR5cGVvZjp4LF9jb250ZXh0OnN9LHMuQ29uc3VtZXI9c30sby5jcmVhdGVFbGVtZW50PU0sby5jcmVhdGVGYWN0b3J5PWZ1bmN0aW9uKHMpe3ZhciBvPU0uYmluZChudWxsLHMpO3JldHVybiBvLnR5cGU9cyxvfSxvLmNyZWF0ZVJlZj1mdW5jdGlvbigpe3JldHVybntjdXJyZW50Om51bGx9fSxvLmZvcndhcmRSZWY9ZnVuY3Rpb24ocyl7cmV0dXJueyQkdHlwZW9mOmoscmVuZGVyOnN9fSxvLmlzVmFsaWRFbGVtZW50PU8sby5sYXp5PWZ1bmN0aW9uKHMpe3JldHVybnskJHR5cGVvZjokLF9wYXlsb2FkOntfc3RhdHVzOi0xLF9yZXN1bHQ6c30sX2luaXQ6VH19LG8ubWVtbz1mdW5jdGlvbihzLG8pe3JldHVybnskJHR5cGVvZjpCLHR5cGU6cyxjb21wYXJlOnZvaWQgMD09PW8/bnVsbDpvfX0sby5zdGFydFRyYW5zaXRpb249ZnVuY3Rpb24ocyl7dmFyIG89ZGUudHJhbnNpdGlvbjtkZS50cmFuc2l0aW9uPXt9O3RyeXtzKCl9ZmluYWxseXtkZS50cmFuc2l0aW9uPW99fSxvLnVuc3RhYmxlX2FjdD1YLG8udXNlQ2FsbGJhY2s9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gcGUuY3VycmVudC51c2VDYWxsYmFjayhzLG8pfSxvLnVzZUNvbnRleHQ9ZnVuY3Rpb24ocyl7cmV0dXJuIHBlLmN1cnJlbnQudXNlQ29udGV4dChzKX0sby51c2VEZWJ1Z1ZhbHVlPWZ1bmN0aW9uKCl7fSxvLnVzZURlZmVycmVkVmFsdWU9ZnVuY3Rpb24ocyl7cmV0dXJuIHBlLmN1cnJlbnQudXNlRGVmZXJyZWRWYWx1ZShzKX0sby51c2VFZmZlY3Q9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gcGUuY3VycmVudC51c2VFZmZlY3QocyxvKX0sby51c2VJZD1mdW5jdGlvbigpe3JldHVybiBwZS5jdXJyZW50LnVzZUlkKCl9LG8udXNlSW1wZXJhdGl2ZUhhbmRsZT1mdW5jdGlvbihzLG8saSl7cmV0dXJuIHBlLmN1cnJlbnQudXNlSW1wZXJhdGl2ZUhhbmRsZShzLG8saSl9LG8udXNlSW5zZXJ0aW9uRWZmZWN0PWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHBlLmN1cnJlbnQudXNlSW5zZXJ0aW9uRWZmZWN0KHMsbyl9LG8udXNlTGF5b3V0RWZmZWN0PWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHBlLmN1cnJlbnQudXNlTGF5b3V0RWZmZWN0KHMsbyl9LG8udXNlTWVtbz1mdW5jdGlvbihzLG8pe3JldHVybiBwZS5jdXJyZW50LnVzZU1lbW8ocyxvKX0sby51c2VSZWR1Y2VyPWZ1bmN0aW9uKHMsbyxpKXtyZXR1cm4gcGUuY3VycmVudC51c2VSZWR1Y2VyKHMsbyxpKX0sby51c2VSZWY9ZnVuY3Rpb24ocyl7cmV0dXJuIHBlLmN1cnJlbnQudXNlUmVmKHMpfSxvLnVzZVN0YXRlPWZ1bmN0aW9uKHMpe3JldHVybiBwZS5jdXJyZW50LnVzZVN0YXRlKHMpfSxvLnVzZVN5bmNFeHRlcm5hbFN0b3JlPWZ1bmN0aW9uKHMsbyxpKXtyZXR1cm4gcGUuY3VycmVudC51c2VTeW5jRXh0ZXJuYWxTdG9yZShzLG8saSl9LG8udXNlVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiBwZS5jdXJyZW50LnVzZVRyYW5zaXRpb24oKX0sby52ZXJzaW9uPSIxOC4zLjEifSwxNTMyNToocyxvLGkpPT57dmFyIGE9aSg5NjEzMSk7cy5leHBvcnRzPWZ1bmN0aW9uIGFycmF5SW5jbHVkZXMocyxvKXtyZXR1cm4hIShudWxsPT1zPzA6cy5sZW5ndGgpJiZhKHMsbywwKT4tMX19LDE1MzQwOigpPT57fSwxNTM4OToocyxvLGkpPT57dmFyIGE9aSg5MzY2MyksdT1pKDg3OTc4KSxfPWkoODM0ODgpLHc9aSg1NjQ0OSkseD1pKDUwNTgzKTtzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZUl0ZXJhdGVlKHMpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBzP3M6bnVsbD09cz9fOiJvYmplY3QiPT10eXBlb2Ygcz93KHMpP3Uoc1swXSxzWzFdKTphKHMpOngocyl9fSwxNTk3MjoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNDk3MjQpLHU9aSg2MjI1MCksXz1pKDM5Mjk4KSx3PWkoOTI1MjIpLHg9aSg1NzM4MiksQz13KCJJRV9QUk9UTyIpLGo9T2JqZWN0LEw9ai5wcm90b3R5cGU7cy5leHBvcnRzPXg/ai5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihzKXt2YXIgbz1fKHMpO2lmKGEobyxDKSlyZXR1cm4gb1tDXTt2YXIgaT1vLmNvbnN0cnVjdG9yO3JldHVybiB1KGkpJiZvIGluc3RhbmNlb2YgaT9pLnByb3RvdHlwZTpvIGluc3RhbmNlb2Ygaj9MOm51bGx9fSwxNjAzODoocyxvLGkpPT57dmFyIGE9aSg1ODYxKSx1PWkoNDAzNDYpO3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlSXNTZXQocyl7cmV0dXJuIHUocykmJiJbb2JqZWN0IFNldF0iPT1hKHMpfX0sMTY0MjY6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBzPWRvY3VtZW50LmdldFNlbGVjdGlvbigpO2lmKCFzLnJhbmdlQ291bnQpcmV0dXJuIGZ1bmN0aW9uKCl7fTtmb3IodmFyIG89ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxpPVtdLGE9MDthPHMucmFuZ2VDb3VudDthKyspaS5wdXNoKHMuZ2V0UmFuZ2VBdChhKSk7c3dpdGNoKG8udGFnTmFtZS50b1VwcGVyQ2FzZSgpKXtjYXNlIklOUFVUIjpjYXNlIlRFWFRBUkVBIjpvLmJsdXIoKTticmVhaztkZWZhdWx0Om89bnVsbH1yZXR1cm4gcy5yZW1vdmVBbGxSYW5nZXMoKSxmdW5jdGlvbigpeyJDYXJldCI9PT1zLnR5cGUmJnMucmVtb3ZlQWxsUmFuZ2VzKCkscy5yYW5nZUNvdW50fHxpLmZvckVhY2goKGZ1bmN0aW9uKG8pe3MuYWRkUmFuZ2Uobyl9KSksbyYmby5mb2N1cygpfX19LDE2NTQ3OihzLG8saSk9Pnt2YXIgYT1pKDQzMzYwKSx1PWkoNzUyODgpLF89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtzLmV4cG9ydHM9ZnVuY3Rpb24gYXNzaWduVmFsdWUocyxvLGkpe3ZhciB3PXNbb107Xy5jYWxsKHMsbykmJnUodyxpKSYmKHZvaWQgMCE9PWl8fG8gaW4gcyl8fGEocyxvLGkpfX0sMTY3MDg6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYSx1PWkoNjU2MDYpO2Z1bmN0aW9uIENvcmtlZFJlcXVlc3Qocyl7dmFyIG89dGhpczt0aGlzLm5leHQ9bnVsbCx0aGlzLmVudHJ5PW51bGwsdGhpcy5maW5pc2g9ZnVuY3Rpb24oKXshZnVuY3Rpb24gb25Db3JrZWRGaW5pc2gocyxvLGkpe3ZhciBhPXMuZW50cnk7cy5lbnRyeT1udWxsO2Zvcig7YTspe3ZhciB1PWEuY2FsbGJhY2s7by5wZW5kaW5nY2ItLSx1KGkpLGE9YS5uZXh0fW8uY29ya2VkUmVxdWVzdHNGcmVlLm5leHQ9c30obyxzKX19cy5leHBvcnRzPVdyaXRhYmxlLFdyaXRhYmxlLldyaXRhYmxlU3RhdGU9V3JpdGFibGVTdGF0ZTt2YXIgXz17ZGVwcmVjYXRlOmkoOTQ2NDMpfSx3PWkoNDAzNDUpLHg9aSg0ODI4NykuQnVmZmVyLEM9KHZvaWQgMCE9PWkuZz9pLmc6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnt9KS5VaW50OEFycmF5fHxmdW5jdGlvbigpe307dmFyIGosTD1pKDc1ODk2KSxCPWkoNjUyOTEpLmdldEhpZ2hXYXRlck1hcmssJD1pKDg2MDQ4KS5GLFY9JC5FUlJfSU5WQUxJRF9BUkdfVFlQRSxVPSQuRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQsej0kLkVSUl9NVUxUSVBMRV9DQUxMQkFDSyxZPSQuRVJSX1NUUkVBTV9DQU5OT1RfUElQRSxaPSQuRVJSX1NUUkVBTV9ERVNUUk9ZRUQsZWU9JC5FUlJfU1RSRUFNX05VTExfVkFMVUVTLGllPSQuRVJSX1NUUkVBTV9XUklURV9BRlRFUl9FTkQsYWU9JC5FUlJfVU5LTk9XTl9FTkNPRElORyxjZT1MLmVycm9yT3JEZXN0cm95O2Z1bmN0aW9uIG5vcCgpe31mdW5jdGlvbiBXcml0YWJsZVN0YXRlKHMsbyxfKXthPWF8fGkoMjUzODIpLHM9c3x8e30sImJvb2xlYW4iIT10eXBlb2YgXyYmKF89byBpbnN0YW5jZW9mIGEpLHRoaXMub2JqZWN0TW9kZT0hIXMub2JqZWN0TW9kZSxfJiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISFzLndyaXRhYmxlT2JqZWN0TW9kZSksdGhpcy5oaWdoV2F0ZXJNYXJrPUIodGhpcyxzLCJ3cml0YWJsZUhpZ2hXYXRlck1hcmsiLF8pLHRoaXMuZmluYWxDYWxsZWQ9ITEsdGhpcy5uZWVkRHJhaW49ITEsdGhpcy5lbmRpbmc9ITEsdGhpcy5lbmRlZD0hMSx0aGlzLmZpbmlzaGVkPSExLHRoaXMuZGVzdHJveWVkPSExO3ZhciB3PSExPT09cy5kZWNvZGVTdHJpbmdzO3RoaXMuZGVjb2RlU3RyaW5ncz0hdyx0aGlzLmRlZmF1bHRFbmNvZGluZz1zLmRlZmF1bHRFbmNvZGluZ3x8InV0ZjgiLHRoaXMubGVuZ3RoPTAsdGhpcy53cml0aW5nPSExLHRoaXMuY29ya2VkPTAsdGhpcy5zeW5jPSEwLHRoaXMuYnVmZmVyUHJvY2Vzc2luZz0hMSx0aGlzLm9ud3JpdGU9ZnVuY3Rpb24ocyl7IWZ1bmN0aW9uIG9ud3JpdGUocyxvKXt2YXIgaT1zLl93cml0YWJsZVN0YXRlLGE9aS5zeW5jLF89aS53cml0ZWNiO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBfKXRocm93IG5ldyB6O2lmKGZ1bmN0aW9uIG9ud3JpdGVTdGF0ZVVwZGF0ZShzKXtzLndyaXRpbmc9ITEscy53cml0ZWNiPW51bGwscy5sZW5ndGgtPXMud3JpdGVsZW4scy53cml0ZWxlbj0wfShpKSxvKSFmdW5jdGlvbiBvbndyaXRlRXJyb3IocyxvLGksYSxfKXstLW8ucGVuZGluZ2NiLGk/KHUubmV4dFRpY2soXyxhKSx1Lm5leHRUaWNrKGZpbmlzaE1heWJlLHMsbykscy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsY2UocyxhKSk6KF8oYSkscy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsY2UocyxhKSxmaW5pc2hNYXliZShzLG8pKX0ocyxpLGEsbyxfKTtlbHNle3ZhciB3PW5lZWRGaW5pc2goaSl8fHMuZGVzdHJveWVkO3d8fGkuY29ya2VkfHxpLmJ1ZmZlclByb2Nlc3Npbmd8fCFpLmJ1ZmZlcmVkUmVxdWVzdHx8Y2xlYXJCdWZmZXIocyxpKSxhP3UubmV4dFRpY2soYWZ0ZXJXcml0ZSxzLGksdyxfKTphZnRlcldyaXRlKHMsaSx3LF8pfX0obyxzKX0sdGhpcy53cml0ZWNiPW51bGwsdGhpcy53cml0ZWxlbj0wLHRoaXMuYnVmZmVyZWRSZXF1ZXN0PW51bGwsdGhpcy5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwsdGhpcy5wZW5kaW5nY2I9MCx0aGlzLnByZWZpbmlzaGVkPSExLHRoaXMuZXJyb3JFbWl0dGVkPSExLHRoaXMuZW1pdENsb3NlPSExIT09cy5lbWl0Q2xvc2UsdGhpcy5hdXRvRGVzdHJveT0hIXMuYXV0b0Rlc3Ryb3ksdGhpcy5idWZmZXJlZFJlcXVlc3RDb3VudD0wLHRoaXMuY29ya2VkUmVxdWVzdHNGcmVlPW5ldyBDb3JrZWRSZXF1ZXN0KHRoaXMpfWZ1bmN0aW9uIFdyaXRhYmxlKHMpe3ZhciBvPXRoaXMgaW5zdGFuY2VvZihhPWF8fGkoMjUzODIpKTtpZighbyYmIWouY2FsbChXcml0YWJsZSx0aGlzKSlyZXR1cm4gbmV3IFdyaXRhYmxlKHMpO3RoaXMuX3dyaXRhYmxlU3RhdGU9bmV3IFdyaXRhYmxlU3RhdGUocyx0aGlzLG8pLHRoaXMud3JpdGFibGU9ITAscyYmKCJmdW5jdGlvbiI9PXR5cGVvZiBzLndyaXRlJiYodGhpcy5fd3JpdGU9cy53cml0ZSksImZ1bmN0aW9uIj09dHlwZW9mIHMud3JpdGV2JiYodGhpcy5fd3JpdGV2PXMud3JpdGV2KSwiZnVuY3Rpb24iPT10eXBlb2Ygcy5kZXN0cm95JiYodGhpcy5fZGVzdHJveT1zLmRlc3Ryb3kpLCJmdW5jdGlvbiI9PXR5cGVvZiBzLmZpbmFsJiYodGhpcy5fZmluYWw9cy5maW5hbCkpLHcuY2FsbCh0aGlzKX1mdW5jdGlvbiBkb1dyaXRlKHMsbyxpLGEsdSxfLHcpe28ud3JpdGVsZW49YSxvLndyaXRlY2I9dyxvLndyaXRpbmc9ITAsby5zeW5jPSEwLG8uZGVzdHJveWVkP28ub253cml0ZShuZXcgWigid3JpdGUiKSk6aT9zLl93cml0ZXYodSxvLm9ud3JpdGUpOnMuX3dyaXRlKHUsXyxvLm9ud3JpdGUpLG8uc3luYz0hMX1mdW5jdGlvbiBhZnRlcldyaXRlKHMsbyxpLGEpe2l8fGZ1bmN0aW9uIG9ud3JpdGVEcmFpbihzLG8pezA9PT1vLmxlbmd0aCYmby5uZWVkRHJhaW4mJihvLm5lZWREcmFpbj0hMSxzLmVtaXQoImRyYWluIikpfShzLG8pLG8ucGVuZGluZ2NiLS0sYSgpLGZpbmlzaE1heWJlKHMsbyl9ZnVuY3Rpb24gY2xlYXJCdWZmZXIocyxvKXtvLmJ1ZmZlclByb2Nlc3Npbmc9ITA7dmFyIGk9by5idWZmZXJlZFJlcXVlc3Q7aWYocy5fd3JpdGV2JiZpJiZpLm5leHQpe3ZhciBhPW8uYnVmZmVyZWRSZXF1ZXN0Q291bnQsdT1uZXcgQXJyYXkoYSksXz1vLmNvcmtlZFJlcXVlc3RzRnJlZTtfLmVudHJ5PWk7Zm9yKHZhciB3PTAseD0hMDtpOyl1W3ddPWksaS5pc0J1Znx8KHg9ITEpLGk9aS5uZXh0LHcrPTE7dS5hbGxCdWZmZXJzPXgsZG9Xcml0ZShzLG8sITAsby5sZW5ndGgsdSwiIixfLmZpbmlzaCksby5wZW5kaW5nY2IrKyxvLmxhc3RCdWZmZXJlZFJlcXVlc3Q9bnVsbCxfLm5leHQ/KG8uY29ya2VkUmVxdWVzdHNGcmVlPV8ubmV4dCxfLm5leHQ9bnVsbCk6by5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IENvcmtlZFJlcXVlc3Qobyksby5idWZmZXJlZFJlcXVlc3RDb3VudD0wfWVsc2V7Zm9yKDtpOyl7dmFyIEM9aS5jaHVuayxqPWkuZW5jb2RpbmcsTD1pLmNhbGxiYWNrO2lmKGRvV3JpdGUocyxvLCExLG8ub2JqZWN0TW9kZT8xOkMubGVuZ3RoLEMsaixMKSxpPWkubmV4dCxvLmJ1ZmZlcmVkUmVxdWVzdENvdW50LS0sby53cml0aW5nKWJyZWFrfW51bGw9PT1pJiYoby5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwpfW8uYnVmZmVyZWRSZXF1ZXN0PWksby5idWZmZXJQcm9jZXNzaW5nPSExfWZ1bmN0aW9uIG5lZWRGaW5pc2gocyl7cmV0dXJuIHMuZW5kaW5nJiYwPT09cy5sZW5ndGgmJm51bGw9PT1zLmJ1ZmZlcmVkUmVxdWVzdCYmIXMuZmluaXNoZWQmJiFzLndyaXRpbmd9ZnVuY3Rpb24gY2FsbEZpbmFsKHMsbyl7cy5fZmluYWwoKGZ1bmN0aW9uKGkpe28ucGVuZGluZ2NiLS0saSYmY2UocyxpKSxvLnByZWZpbmlzaGVkPSEwLHMuZW1pdCgicHJlZmluaXNoIiksZmluaXNoTWF5YmUocyxvKX0pKX1mdW5jdGlvbiBmaW5pc2hNYXliZShzLG8pe3ZhciBpPW5lZWRGaW5pc2gobyk7aWYoaSYmKGZ1bmN0aW9uIHByZWZpbmlzaChzLG8pe28ucHJlZmluaXNoZWR8fG8uZmluYWxDYWxsZWR8fCgiZnVuY3Rpb24iIT10eXBlb2Ygcy5fZmluYWx8fG8uZGVzdHJveWVkPyhvLnByZWZpbmlzaGVkPSEwLHMuZW1pdCgicHJlZmluaXNoIikpOihvLnBlbmRpbmdjYisrLG8uZmluYWxDYWxsZWQ9ITAsdS5uZXh0VGljayhjYWxsRmluYWwscyxvKSkpfShzLG8pLDA9PT1vLnBlbmRpbmdjYiYmKG8uZmluaXNoZWQ9ITAscy5lbWl0KCJmaW5pc2giKSxvLmF1dG9EZXN0cm95KSkpe3ZhciBhPXMuX3JlYWRhYmxlU3RhdGU7KCFhfHxhLmF1dG9EZXN0cm95JiZhLmVuZEVtaXR0ZWQpJiZzLmRlc3Ryb3koKX1yZXR1cm4gaX1pKDU2Njk4KShXcml0YWJsZSx3KSxXcml0YWJsZVN0YXRlLnByb3RvdHlwZS5nZXRCdWZmZXI9ZnVuY3Rpb24gZ2V0QnVmZmVyKCl7Zm9yKHZhciBzPXRoaXMuYnVmZmVyZWRSZXF1ZXN0LG89W107czspby5wdXNoKHMpLHM9cy5uZXh0O3JldHVybiBvfSxmdW5jdGlvbigpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoV3JpdGFibGVTdGF0ZS5wcm90b3R5cGUsImJ1ZmZlciIse2dldDpfLmRlcHJlY2F0ZSgoZnVuY3Rpb24gd3JpdGFibGVTdGF0ZUJ1ZmZlckdldHRlcigpe3JldHVybiB0aGlzLmdldEJ1ZmZlcigpfSksIl93cml0YWJsZVN0YXRlLmJ1ZmZlciBpcyBkZXByZWNhdGVkLiBVc2UgX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyIGluc3RlYWQuIiwiREVQMDAwMyIpfSl9Y2F0Y2gocyl7fX0oKSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaGFzSW5zdGFuY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXT8oaj1GdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSxPYmplY3QuZGVmaW5lUHJvcGVydHkoV3JpdGFibGUsU3ltYm9sLmhhc0luc3RhbmNlLHt2YWx1ZTpmdW5jdGlvbiB2YWx1ZShzKXtyZXR1cm4hIWouY2FsbCh0aGlzLHMpfHx0aGlzPT09V3JpdGFibGUmJihzJiZzLl93cml0YWJsZVN0YXRlIGluc3RhbmNlb2YgV3JpdGFibGVTdGF0ZSl9fSkpOmo9ZnVuY3Rpb24gcmVhbEhhc0luc3RhbmNlKHMpe3JldHVybiBzIGluc3RhbmNlb2YgdGhpc30sV3JpdGFibGUucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24oKXtjZSh0aGlzLG5ldyBZKX0sV3JpdGFibGUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHMsbyxpKXt2YXIgYT10aGlzLl93cml0YWJsZVN0YXRlLF89ITEsdz0hYS5vYmplY3RNb2RlJiZmdW5jdGlvbiBfaXNVaW50OEFycmF5KHMpe3JldHVybiB4LmlzQnVmZmVyKHMpfHxzIGluc3RhbmNlb2YgQ30ocyk7cmV0dXJuIHcmJiF4LmlzQnVmZmVyKHMpJiYocz1mdW5jdGlvbiBfdWludDhBcnJheVRvQnVmZmVyKHMpe3JldHVybiB4LmZyb20ocyl9KHMpKSwiZnVuY3Rpb24iPT10eXBlb2YgbyYmKGk9byxvPW51bGwpLHc/bz0iYnVmZmVyIjpvfHwobz1hLmRlZmF1bHRFbmNvZGluZyksImZ1bmN0aW9uIiE9dHlwZW9mIGkmJihpPW5vcCksYS5lbmRpbmc/ZnVuY3Rpb24gd3JpdGVBZnRlckVuZChzLG8pe3ZhciBpPW5ldyBpZTtjZShzLGkpLHUubmV4dFRpY2sobyxpKX0odGhpcyxpKTood3x8ZnVuY3Rpb24gdmFsaWRDaHVuayhzLG8saSxhKXt2YXIgXztyZXR1cm4gbnVsbD09PWk/Xz1uZXcgZWU6InN0cmluZyI9PXR5cGVvZiBpfHxvLm9iamVjdE1vZGV8fChfPW5ldyBWKCJjaHVuayIsWyJzdHJpbmciLCJCdWZmZXIiXSxpKSksIV98fChjZShzLF8pLHUubmV4dFRpY2soYSxfKSwhMSl9KHRoaXMsYSxzLGkpKSYmKGEucGVuZGluZ2NiKyssXz1mdW5jdGlvbiB3cml0ZU9yQnVmZmVyKHMsbyxpLGEsdSxfKXtpZighaSl7dmFyIHc9ZnVuY3Rpb24gZGVjb2RlQ2h1bmsocyxvLGkpe3Mub2JqZWN0TW9kZXx8ITE9PT1zLmRlY29kZVN0cmluZ3N8fCJzdHJpbmciIT10eXBlb2Ygb3x8KG89eC5mcm9tKG8saSkpO3JldHVybiBvfShvLGEsdSk7YSE9PXcmJihpPSEwLHU9ImJ1ZmZlciIsYT13KX12YXIgQz1vLm9iamVjdE1vZGU/MTphLmxlbmd0aDtvLmxlbmd0aCs9Qzt2YXIgaj1vLmxlbmd0aDxvLmhpZ2hXYXRlck1hcms7anx8KG8ubmVlZERyYWluPSEwKTtpZihvLndyaXRpbmd8fG8uY29ya2VkKXt2YXIgTD1vLmxhc3RCdWZmZXJlZFJlcXVlc3Q7by5sYXN0QnVmZmVyZWRSZXF1ZXN0PXtjaHVuazphLGVuY29kaW5nOnUsaXNCdWY6aSxjYWxsYmFjazpfLG5leHQ6bnVsbH0sTD9MLm5leHQ9by5sYXN0QnVmZmVyZWRSZXF1ZXN0Om8uYnVmZmVyZWRSZXF1ZXN0PW8ubGFzdEJ1ZmZlcmVkUmVxdWVzdCxvLmJ1ZmZlcmVkUmVxdWVzdENvdW50Kz0xfWVsc2UgZG9Xcml0ZShzLG8sITEsQyxhLHUsXyk7cmV0dXJuIGp9KHRoaXMsYSx3LHMsbyxpKSksX30sV3JpdGFibGUucHJvdG90eXBlLmNvcms9ZnVuY3Rpb24oKXt0aGlzLl93cml0YWJsZVN0YXRlLmNvcmtlZCsrfSxXcml0YWJsZS5wcm90b3R5cGUudW5jb3JrPWZ1bmN0aW9uKCl7dmFyIHM9dGhpcy5fd3JpdGFibGVTdGF0ZTtzLmNvcmtlZCYmKHMuY29ya2VkLS0scy53cml0aW5nfHxzLmNvcmtlZHx8cy5idWZmZXJQcm9jZXNzaW5nfHwhcy5idWZmZXJlZFJlcXVlc3R8fGNsZWFyQnVmZmVyKHRoaXMscykpfSxXcml0YWJsZS5wcm90b3R5cGUuc2V0RGVmYXVsdEVuY29kaW5nPWZ1bmN0aW9uIHNldERlZmF1bHRFbmNvZGluZyhzKXtpZigic3RyaW5nIj09dHlwZW9mIHMmJihzPXMudG9Mb3dlckNhc2UoKSksIShbImhleCIsInV0ZjgiLCJ1dGYtOCIsImFzY2lpIiwiYmluYXJ5IiwiYmFzZTY0IiwidWNzMiIsInVjcy0yIiwidXRmMTZsZSIsInV0Zi0xNmxlIiwicmF3Il0uaW5kZXhPZigocysiIikudG9Mb3dlckNhc2UoKSk+LTEpKXRocm93IG5ldyBhZShzKTtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5kZWZhdWx0RW5jb2Rpbmc9cyx0aGlzfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoV3JpdGFibGUucHJvdG90eXBlLCJ3cml0YWJsZUJ1ZmZlciIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uIGdldCgpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl93cml0YWJsZVN0YXRlLmdldEJ1ZmZlcigpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXcml0YWJsZS5wcm90b3R5cGUsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uIGdldCgpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSksV3JpdGFibGUucHJvdG90eXBlLl93cml0ZT1mdW5jdGlvbihzLG8saSl7aShuZXcgVSgiX3dyaXRlKCkiKSl9LFdyaXRhYmxlLnByb3RvdHlwZS5fd3JpdGV2PW51bGwsV3JpdGFibGUucHJvdG90eXBlLmVuZD1mdW5jdGlvbihzLG8saSl7dmFyIGE9dGhpcy5fd3JpdGFibGVTdGF0ZTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygcz8oaT1zLHM9bnVsbCxvPW51bGwpOiJmdW5jdGlvbiI9PXR5cGVvZiBvJiYoaT1vLG89bnVsbCksbnVsbCE9cyYmdGhpcy53cml0ZShzLG8pLGEuY29ya2VkJiYoYS5jb3JrZWQ9MSx0aGlzLnVuY29yaygpKSxhLmVuZGluZ3x8ZnVuY3Rpb24gZW5kV3JpdGFibGUocyxvLGkpe28uZW5kaW5nPSEwLGZpbmlzaE1heWJlKHMsbyksaSYmKG8uZmluaXNoZWQ/dS5uZXh0VGljayhpKTpzLm9uY2UoImZpbmlzaCIsaSkpO28uZW5kZWQ9ITAscy53cml0YWJsZT0hMX0odGhpcyxhLGkpLHRoaXN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXcml0YWJsZS5wcm90b3R5cGUsIndyaXRhYmxlTGVuZ3RoIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUubGVuZ3RofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXcml0YWJsZS5wcm90b3R5cGUsImRlc3Ryb3llZCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uIGdldCgpe3JldHVybiB2b2lkIDAhPT10aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZH0sc2V0OmZ1bmN0aW9uIHNldChzKXt0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9cyl9fSksV3JpdGFibGUucHJvdG90eXBlLmRlc3Ryb3k9TC5kZXN0cm95LFdyaXRhYmxlLnByb3RvdHlwZS5fdW5kZXN0cm95PUwudW5kZXN0cm95LFdyaXRhYmxlLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihzLG8pe28ocyl9fSwxNjk0NjoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMTkwNyksdT1pKDk4ODI4KSxfPWkoNDU4MDcpLHc9T2JqZWN0LHg9YSgiIi5zcGxpdCk7cy5leHBvcnRzPXUoKGZ1bmN0aW9uKCl7cmV0dXJuIXcoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbihzKXtyZXR1cm4iU3RyaW5nIj09PV8ocyk/eChzLCIiKTp3KHMpfTp3fSwxNjk2MjoocyxvKT0+e28uYWxpYXNUb1JlYWw9e2VhY2g6ImZvckVhY2giLGVhY2hSaWdodDoiZm9yRWFjaFJpZ2h0IixlbnRyaWVzOiJ0b1BhaXJzIixlbnRyaWVzSW46InRvUGFpcnNJbiIsZXh0ZW5kOiJhc3NpZ25JbiIsZXh0ZW5kQWxsOiJhc3NpZ25JbkFsbCIsZXh0ZW5kQWxsV2l0aDoiYXNzaWduSW5BbGxXaXRoIixleHRlbmRXaXRoOiJhc3NpZ25JbldpdGgiLGZpcnN0OiJoZWFkIixjb25mb3JtczoiY29uZm9ybXNUbyIsbWF0Y2hlczoiaXNNYXRjaCIscHJvcGVydHk6ImdldCIsX186InBsYWNlaG9sZGVyIixGOiJzdHViRmFsc2UiLFQ6InN0dWJUcnVlIixhbGw6ImV2ZXJ5IixhbGxQYXNzOiJvdmVyRXZlcnkiLGFsd2F5czoiY29uc3RhbnQiLGFueToic29tZSIsYW55UGFzczoib3ZlclNvbWUiLGFwcGx5OiJzcHJlYWQiLGFzc29jOiJzZXQiLGFzc29jUGF0aDoic2V0Iixjb21wbGVtZW50OiJuZWdhdGUiLGNvbXBvc2U6ImZsb3dSaWdodCIsY29udGFpbnM6ImluY2x1ZGVzIixkaXNzb2M6InVuc2V0IixkaXNzb2NQYXRoOiJ1bnNldCIsZHJvcExhc3Q6ImRyb3BSaWdodCIsZHJvcExhc3RXaGlsZToiZHJvcFJpZ2h0V2hpbGUiLGVxdWFsczoiaXNFcXVhbCIsaWRlbnRpY2FsOiJlcSIsaW5kZXhCeToia2V5QnkiLGluaXQ6ImluaXRpYWwiLGludmVydE9iajoiaW52ZXJ0IixqdXh0OiJvdmVyIixvbWl0QWxsOiJvbWl0IixuQXJ5OiJhcnkiLHBhdGg6ImdldCIscGF0aEVxOiJtYXRjaGVzUHJvcGVydHkiLHBhdGhPcjoiZ2V0T3IiLHBhdGhzOiJhdCIscGlja0FsbDoicGljayIscGlwZToiZmxvdyIscGx1Y2s6Im1hcCIscHJvcDoiZ2V0Iixwcm9wRXE6Im1hdGNoZXNQcm9wZXJ0eSIscHJvcE9yOiJnZXRPciIscHJvcHM6ImF0IixzeW1tZXRyaWNEaWZmZXJlbmNlOiJ4b3IiLHN5bW1ldHJpY0RpZmZlcmVuY2VCeToieG9yQnkiLHN5bW1ldHJpY0RpZmZlcmVuY2VXaXRoOiJ4b3JXaXRoIix0YWtlTGFzdDoidGFrZVJpZ2h0Iix0YWtlTGFzdFdoaWxlOiJ0YWtlUmlnaHRXaGlsZSIsdW5hcHBseToicmVzdCIsdW5uZXN0OiJmbGF0dGVuIix1c2VXaXRoOiJvdmVyQXJncyIsd2hlcmU6ImNvbmZvcm1zVG8iLHdoZXJlRXE6ImlzTWF0Y2giLHppcE9iajoiemlwT2JqZWN0In0sby5hcnlNZXRob2Q9ezE6WyJhc3NpZ25BbGwiLCJhc3NpZ25JbkFsbCIsImF0dGVtcHQiLCJjYXN0QXJyYXkiLCJjZWlsIiwiY3JlYXRlIiwiY3VycnkiLCJjdXJyeVJpZ2h0IiwiZGVmYXVsdHNBbGwiLCJkZWZhdWx0c0RlZXBBbGwiLCJmbG9vciIsImZsb3ciLCJmbG93UmlnaHQiLCJmcm9tUGFpcnMiLCJpbnZlcnQiLCJpdGVyYXRlZSIsIm1lbW9pemUiLCJtZXRob2QiLCJtZXJnZUFsbCIsIm1ldGhvZE9mIiwibWl4aW4iLCJudGhBcmciLCJvdmVyIiwib3ZlckV2ZXJ5Iiwib3ZlclNvbWUiLCJyZXN0IiwicmV2ZXJzZSIsInJvdW5kIiwicnVuSW5Db250ZXh0Iiwic3ByZWFkIiwidGVtcGxhdGUiLCJ0cmltIiwidHJpbUVuZCIsInRyaW1TdGFydCIsInVuaXF1ZUlkIiwid29yZHMiLCJ6aXBBbGwiXSwyOlsiYWRkIiwiYWZ0ZXIiLCJhcnkiLCJhc3NpZ24iLCJhc3NpZ25BbGxXaXRoIiwiYXNzaWduSW4iLCJhc3NpZ25JbkFsbFdpdGgiLCJhdCIsImJlZm9yZSIsImJpbmQiLCJiaW5kQWxsIiwiYmluZEtleSIsImNodW5rIiwiY2xvbmVEZWVwV2l0aCIsImNsb25lV2l0aCIsImNvbmNhdCIsImNvbmZvcm1zVG8iLCJjb3VudEJ5IiwiY3VycnlOIiwiY3VycnlSaWdodE4iLCJkZWJvdW5jZSIsImRlZmF1bHRzIiwiZGVmYXVsdHNEZWVwIiwiZGVmYXVsdFRvIiwiZGVsYXkiLCJkaWZmZXJlbmNlIiwiZGl2aWRlIiwiZHJvcCIsImRyb3BSaWdodCIsImRyb3BSaWdodFdoaWxlIiwiZHJvcFdoaWxlIiwiZW5kc1dpdGgiLCJlcSIsImV2ZXJ5IiwiZmlsdGVyIiwiZmluZCIsImZpbmRJbmRleCIsImZpbmRLZXkiLCJmaW5kTGFzdCIsImZpbmRMYXN0SW5kZXgiLCJmaW5kTGFzdEtleSIsImZsYXRNYXAiLCJmbGF0TWFwRGVlcCIsImZsYXR0ZW5EZXB0aCIsImZvckVhY2giLCJmb3JFYWNoUmlnaHQiLCJmb3JJbiIsImZvckluUmlnaHQiLCJmb3JPd24iLCJmb3JPd25SaWdodCIsImdldCIsImdyb3VwQnkiLCJndCIsImd0ZSIsImhhcyIsImhhc0luIiwiaW5jbHVkZXMiLCJpbmRleE9mIiwiaW50ZXJzZWN0aW9uIiwiaW52ZXJ0QnkiLCJpbnZva2UiLCJpbnZva2VNYXAiLCJpc0VxdWFsIiwiaXNNYXRjaCIsImpvaW4iLCJrZXlCeSIsImxhc3RJbmRleE9mIiwibHQiLCJsdGUiLCJtYXAiLCJtYXBLZXlzIiwibWFwVmFsdWVzIiwibWF0Y2hlc1Byb3BlcnR5IiwibWF4QnkiLCJtZWFuQnkiLCJtZXJnZSIsIm1lcmdlQWxsV2l0aCIsIm1pbkJ5IiwibXVsdGlwbHkiLCJudGgiLCJvbWl0Iiwib21pdEJ5Iiwib3ZlckFyZ3MiLCJwYWQiLCJwYWRFbmQiLCJwYWRTdGFydCIsInBhcnNlSW50IiwicGFydGlhbCIsInBhcnRpYWxSaWdodCIsInBhcnRpdGlvbiIsInBpY2siLCJwaWNrQnkiLCJwcm9wZXJ0eU9mIiwicHVsbCIsInB1bGxBbGwiLCJwdWxsQXQiLCJyYW5kb20iLCJyYW5nZSIsInJhbmdlUmlnaHQiLCJyZWFyZyIsInJlamVjdCIsInJlbW92ZSIsInJlcGVhdCIsInJlc3RGcm9tIiwicmVzdWx0Iiwic2FtcGxlU2l6ZSIsInNvbWUiLCJzb3J0QnkiLCJzb3J0ZWRJbmRleCIsInNvcnRlZEluZGV4T2YiLCJzb3J0ZWRMYXN0SW5kZXgiLCJzb3J0ZWRMYXN0SW5kZXhPZiIsInNvcnRlZFVuaXFCeSIsInNwbGl0Iiwic3ByZWFkRnJvbSIsInN0YXJ0c1dpdGgiLCJzdWJ0cmFjdCIsInN1bUJ5IiwidGFrZSIsInRha2VSaWdodCIsInRha2VSaWdodFdoaWxlIiwidGFrZVdoaWxlIiwidGFwIiwidGhyb3R0bGUiLCJ0aHJ1IiwidGltZXMiLCJ0cmltQ2hhcnMiLCJ0cmltQ2hhcnNFbmQiLCJ0cmltQ2hhcnNTdGFydCIsInRydW5jYXRlIiwidW5pb24iLCJ1bmlxQnkiLCJ1bmlxV2l0aCIsInVuc2V0IiwidW56aXBXaXRoIiwid2l0aG91dCIsIndyYXAiLCJ4b3IiLCJ6aXAiLCJ6aXBPYmplY3QiLCJ6aXBPYmplY3REZWVwIl0sMzpbImFzc2lnbkluV2l0aCIsImFzc2lnbldpdGgiLCJjbGFtcCIsImRpZmZlcmVuY2VCeSIsImRpZmZlcmVuY2VXaXRoIiwiZmluZEZyb20iLCJmaW5kSW5kZXhGcm9tIiwiZmluZExhc3RGcm9tIiwiZmluZExhc3RJbmRleEZyb20iLCJnZXRPciIsImluY2x1ZGVzRnJvbSIsImluZGV4T2ZGcm9tIiwiaW5SYW5nZSIsImludGVyc2VjdGlvbkJ5IiwiaW50ZXJzZWN0aW9uV2l0aCIsImludm9rZUFyZ3MiLCJpbnZva2VBcmdzTWFwIiwiaXNFcXVhbFdpdGgiLCJpc01hdGNoV2l0aCIsImZsYXRNYXBEZXB0aCIsImxhc3RJbmRleE9mRnJvbSIsIm1lcmdlV2l0aCIsIm9yZGVyQnkiLCJwYWRDaGFycyIsInBhZENoYXJzRW5kIiwicGFkQ2hhcnNTdGFydCIsInB1bGxBbGxCeSIsInB1bGxBbGxXaXRoIiwicmFuZ2VTdGVwIiwicmFuZ2VTdGVwUmlnaHQiLCJyZWR1Y2UiLCJyZWR1Y2VSaWdodCIsInJlcGxhY2UiLCJzZXQiLCJzbGljZSIsInNvcnRlZEluZGV4QnkiLCJzb3J0ZWRMYXN0SW5kZXhCeSIsInRyYW5zZm9ybSIsInVuaW9uQnkiLCJ1bmlvbldpdGgiLCJ1cGRhdGUiLCJ4b3JCeSIsInhvcldpdGgiLCJ6aXBXaXRoIl0sNDpbImZpbGwiLCJzZXRXaXRoIiwidXBkYXRlV2l0aCJdfSxvLmFyeVJlYXJnPXsyOlsxLDBdLDM6WzIsMCwxXSw0OlszLDIsMCwxXX0sby5pdGVyYXRlZUFyeT17ZHJvcFJpZ2h0V2hpbGU6MSxkcm9wV2hpbGU6MSxldmVyeToxLGZpbHRlcjoxLGZpbmQ6MSxmaW5kRnJvbToxLGZpbmRJbmRleDoxLGZpbmRJbmRleEZyb206MSxmaW5kS2V5OjEsZmluZExhc3Q6MSxmaW5kTGFzdEZyb206MSxmaW5kTGFzdEluZGV4OjEsZmluZExhc3RJbmRleEZyb206MSxmaW5kTGFzdEtleToxLGZsYXRNYXA6MSxmbGF0TWFwRGVlcDoxLGZsYXRNYXBEZXB0aDoxLGZvckVhY2g6MSxmb3JFYWNoUmlnaHQ6MSxmb3JJbjoxLGZvckluUmlnaHQ6MSxmb3JPd246MSxmb3JPd25SaWdodDoxLG1hcDoxLG1hcEtleXM6MSxtYXBWYWx1ZXM6MSxwYXJ0aXRpb246MSxyZWR1Y2U6MixyZWR1Y2VSaWdodDoyLHJlamVjdDoxLHJlbW92ZToxLHNvbWU6MSx0YWtlUmlnaHRXaGlsZToxLHRha2VXaGlsZToxLHRpbWVzOjEsdHJhbnNmb3JtOjJ9LG8uaXRlcmF0ZWVSZWFyZz17bWFwS2V5czpbMV0scmVkdWNlUmlnaHQ6WzEsMF19LG8ubWV0aG9kUmVhcmc9e2Fzc2lnbkluQWxsV2l0aDpbMSwwXSxhc3NpZ25JbldpdGg6WzEsMiwwXSxhc3NpZ25BbGxXaXRoOlsxLDBdLGFzc2lnbldpdGg6WzEsMiwwXSxkaWZmZXJlbmNlQnk6WzEsMiwwXSxkaWZmZXJlbmNlV2l0aDpbMSwyLDBdLGdldE9yOlsyLDEsMF0saW50ZXJzZWN0aW9uQnk6WzEsMiwwXSxpbnRlcnNlY3Rpb25XaXRoOlsxLDIsMF0saXNFcXVhbFdpdGg6WzEsMiwwXSxpc01hdGNoV2l0aDpbMiwxLDBdLG1lcmdlQWxsV2l0aDpbMSwwXSxtZXJnZVdpdGg6WzEsMiwwXSxwYWRDaGFyczpbMiwxLDBdLHBhZENoYXJzRW5kOlsyLDEsMF0scGFkQ2hhcnNTdGFydDpbMiwxLDBdLHB1bGxBbGxCeTpbMiwxLDBdLHB1bGxBbGxXaXRoOlsyLDEsMF0scmFuZ2VTdGVwOlsxLDIsMF0scmFuZ2VTdGVwUmlnaHQ6WzEsMiwwXSxzZXRXaXRoOlszLDEsMiwwXSxzb3J0ZWRJbmRleEJ5OlsyLDEsMF0sc29ydGVkTGFzdEluZGV4Qnk6WzIsMSwwXSx1bmlvbkJ5OlsxLDIsMF0sdW5pb25XaXRoOlsxLDIsMF0sdXBkYXRlV2l0aDpbMywxLDIsMF0seG9yQnk6WzEsMiwwXSx4b3JXaXRoOlsxLDIsMF0semlwV2l0aDpbMSwyLDBdfSxvLm1ldGhvZFNwcmVhZD17YXNzaWduQWxsOntzdGFydDowfSxhc3NpZ25BbGxXaXRoOntzdGFydDowfSxhc3NpZ25JbkFsbDp7c3RhcnQ6MH0sYXNzaWduSW5BbGxXaXRoOntzdGFydDowfSxkZWZhdWx0c0FsbDp7c3RhcnQ6MH0sZGVmYXVsdHNEZWVwQWxsOntzdGFydDowfSxpbnZva2VBcmdzOntzdGFydDoyfSxpbnZva2VBcmdzTWFwOntzdGFydDoyfSxtZXJnZUFsbDp7c3RhcnQ6MH0sbWVyZ2VBbGxXaXRoOntzdGFydDowfSxwYXJ0aWFsOntzdGFydDoxfSxwYXJ0aWFsUmlnaHQ6e3N0YXJ0OjF9LHdpdGhvdXQ6e3N0YXJ0OjF9LHppcEFsbDp7c3RhcnQ6MH19LG8ubXV0YXRlPXthcnJheTp7ZmlsbDohMCxwdWxsOiEwLHB1bGxBbGw6ITAscHVsbEFsbEJ5OiEwLHB1bGxBbGxXaXRoOiEwLHB1bGxBdDohMCxyZW1vdmU6ITAscmV2ZXJzZTohMH0sb2JqZWN0Onthc3NpZ246ITAsYXNzaWduQWxsOiEwLGFzc2lnbkFsbFdpdGg6ITAsYXNzaWduSW46ITAsYXNzaWduSW5BbGw6ITAsYXNzaWduSW5BbGxXaXRoOiEwLGFzc2lnbkluV2l0aDohMCxhc3NpZ25XaXRoOiEwLGRlZmF1bHRzOiEwLGRlZmF1bHRzQWxsOiEwLGRlZmF1bHRzRGVlcDohMCxkZWZhdWx0c0RlZXBBbGw6ITAsbWVyZ2U6ITAsbWVyZ2VBbGw6ITAsbWVyZ2VBbGxXaXRoOiEwLG1lcmdlV2l0aDohMH0sc2V0OntzZXQ6ITAsc2V0V2l0aDohMCx1bnNldDohMCx1cGRhdGU6ITAsdXBkYXRlV2l0aDohMH19LG8ucmVhbFRvQWxpYXM9ZnVuY3Rpb24oKXt2YXIgcz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGk9by5hbGlhc1RvUmVhbCxhPXt9O2Zvcih2YXIgdSBpbiBpKXt2YXIgXz1pW3VdO3MuY2FsbChhLF8pP2FbX10ucHVzaCh1KTphW19dPVt1XX1yZXR1cm4gYX0oKSxvLnJlbWFwPXthc3NpZ25BbGw6ImFzc2lnbiIsYXNzaWduQWxsV2l0aDoiYXNzaWduV2l0aCIsYXNzaWduSW5BbGw6ImFzc2lnbkluIixhc3NpZ25JbkFsbFdpdGg6ImFzc2lnbkluV2l0aCIsY3VycnlOOiJjdXJyeSIsY3VycnlSaWdodE46ImN1cnJ5UmlnaHQiLGRlZmF1bHRzQWxsOiJkZWZhdWx0cyIsZGVmYXVsdHNEZWVwQWxsOiJkZWZhdWx0c0RlZXAiLGZpbmRGcm9tOiJmaW5kIixmaW5kSW5kZXhGcm9tOiJmaW5kSW5kZXgiLGZpbmRMYXN0RnJvbToiZmluZExhc3QiLGZpbmRMYXN0SW5kZXhGcm9tOiJmaW5kTGFzdEluZGV4IixnZXRPcjoiZ2V0IixpbmNsdWRlc0Zyb206ImluY2x1ZGVzIixpbmRleE9mRnJvbToiaW5kZXhPZiIsaW52b2tlQXJnczoiaW52b2tlIixpbnZva2VBcmdzTWFwOiJpbnZva2VNYXAiLGxhc3RJbmRleE9mRnJvbToibGFzdEluZGV4T2YiLG1lcmdlQWxsOiJtZXJnZSIsbWVyZ2VBbGxXaXRoOiJtZXJnZVdpdGgiLHBhZENoYXJzOiJwYWQiLHBhZENoYXJzRW5kOiJwYWRFbmQiLHBhZENoYXJzU3RhcnQ6InBhZFN0YXJ0Iixwcm9wZXJ0eU9mOiJnZXQiLHJhbmdlU3RlcDoicmFuZ2UiLHJhbmdlU3RlcFJpZ2h0OiJyYW5nZVJpZ2h0IixyZXN0RnJvbToicmVzdCIsc3ByZWFkRnJvbToic3ByZWFkIix0cmltQ2hhcnM6InRyaW0iLHRyaW1DaGFyc0VuZDoidHJpbUVuZCIsdHJpbUNoYXJzU3RhcnQ6InRyaW1TdGFydCIsemlwQWxsOiJ6aXAifSxvLnNraXBGaXhlZD17Y2FzdEFycmF5OiEwLGZsb3c6ITAsZmxvd1JpZ2h0OiEwLGl0ZXJhdGVlOiEwLG1peGluOiEwLHJlYXJnOiEwLHJ1bkluQ29udGV4dDohMH0sby5za2lwUmVhcmc9e2FkZDohMCxhc3NpZ246ITAsYXNzaWduSW46ITAsYmluZDohMCxiaW5kS2V5OiEwLGNvbmNhdDohMCxkaWZmZXJlbmNlOiEwLGRpdmlkZTohMCxlcTohMCxndDohMCxndGU6ITAsaXNFcXVhbDohMCxsdDohMCxsdGU6ITAsbWF0Y2hlc1Byb3BlcnR5OiEwLG1lcmdlOiEwLG11bHRpcGx5OiEwLG92ZXJBcmdzOiEwLHBhcnRpYWw6ITAscGFydGlhbFJpZ2h0OiEwLHByb3BlcnR5T2Y6ITAscmFuZG9tOiEwLHJhbmdlOiEwLHJhbmdlUmlnaHQ6ITAsc3VidHJhY3Q6ITAsemlwOiEwLHppcE9iamVjdDohMCx6aXBPYmplY3REZWVwOiEwfX0sMTcyNTU6KHMsbyxpKT0+e3ZhciBhPWkoNDc0MjIpO3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlUHJvcGVydHlEZWVwKHMpe3JldHVybiBmdW5jdGlvbihvKXtyZXR1cm4gYShvLHMpfX19LDE3Mjg1OnM9PntmdW5jdGlvbiBzb3VyY2Uocyl7cmV0dXJuIHM/InN0cmluZyI9PXR5cGVvZiBzP3M6cy5zb3VyY2U6bnVsbH1mdW5jdGlvbiBsb29rYWhlYWQocyl7cmV0dXJuIGNvbmNhdCgiKD89IixzLCIpIil9ZnVuY3Rpb24gY29uY2F0KC4uLnMpe3JldHVybiBzLm1hcCgocz0+c291cmNlKHMpKSkuam9pbigiIil9ZnVuY3Rpb24gZWl0aGVyKC4uLnMpe3JldHVybiIoIitzLm1hcCgocz0+c291cmNlKHMpKSkuam9pbigifCIpKyIpIn1zLmV4cG9ydHM9ZnVuY3Rpb24geG1sKHMpe2NvbnN0IG89Y29uY2F0KC9bQS1aX10vLGZ1bmN0aW9uIG9wdGlvbmFsKHMpe3JldHVybiBjb25jYXQoIigiLHMsIik/Iil9KC9bQS1aMC05Xy4tXSo6LyksL1tBLVowLTlfLi1dKi8pLGk9e2NsYXNzTmFtZToic3ltYm9sIixiZWdpbjovJlthLXpdKzt8JiNbMC05XSs7fCYjeFthLWYwLTldKzsvfSxhPXtiZWdpbjovXHMvLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJtZXRhLWtleXdvcmQiLGJlZ2luOi8jP1thLXpfXVthLXoxLTlfLV0rLyxpbGxlZ2FsOi9cbi99XX0sdT1zLmluaGVyaXQoYSx7YmVnaW46L1woLyxlbmQ6L1wpL30pLF89cy5pbmhlcml0KHMuQVBPU19TVFJJTkdfTU9ERSx7Y2xhc3NOYW1lOiJtZXRhLXN0cmluZyJ9KSx3PXMuaW5oZXJpdChzLlFVT1RFX1NUUklOR19NT0RFLHtjbGFzc05hbWU6Im1ldGEtc3RyaW5nIn0pLHg9e2VuZHNXaXRoUGFyZW50OiEwLGlsbGVnYWw6LzwvLHJlbGV2YW5jZTowLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJhdHRyIixiZWdpbjovW0EtWmEtejAtOS5fOi1dKy8scmVsZXZhbmNlOjB9LHtiZWdpbjovPVxzKi8scmVsZXZhbmNlOjAsY29udGFpbnM6W3tjbGFzc05hbWU6InN0cmluZyIsZW5kc1BhcmVudDohMCx2YXJpYW50czpbe2JlZ2luOi8iLyxlbmQ6LyIvLGNvbnRhaW5zOltpXX0se2JlZ2luOi8nLyxlbmQ6LycvLGNvbnRhaW5zOltpXX0se2JlZ2luOi9bXlxzIic9PD5gXSsvfV19XX1dfTtyZXR1cm57bmFtZToiSFRNTCwgWE1MIixhbGlhc2VzOlsiaHRtbCIsInhodG1sIiwicnNzIiwiYXRvbSIsInhqYiIsInhzZCIsInhzbCIsInBsaXN0Iiwid3NmIiwic3ZnIl0sY2FzZV9pbnNlbnNpdGl2ZTohMCxjb250YWluczpbe2NsYXNzTmFtZToibWV0YSIsYmVnaW46LzwhW2Etel0vLGVuZDovPi8scmVsZXZhbmNlOjEwLGNvbnRhaW5zOlthLHcsXyx1LHtiZWdpbjovXFsvLGVuZDovXF0vLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjovPCFbYS16XS8sZW5kOi8+Lyxjb250YWluczpbYSx1LHcsX119XX1dfSxzLkNPTU1FTlQoLzwhLS0vLC8tLT4vLHtyZWxldmFuY2U6MTB9KSx7YmVnaW46LzwhXFtDREFUQVxbLyxlbmQ6L1xdXF0+LyxyZWxldmFuY2U6MTB9LGkse2NsYXNzTmFtZToibWV0YSIsYmVnaW46LzxcP3htbC8sZW5kOi9cPz4vLHJlbGV2YW5jZToxMH0se2NsYXNzTmFtZToidGFnIixiZWdpbjovPHN0eWxlKD89XHN8PikvLGVuZDovPi8sa2V5d29yZHM6e25hbWU6InN0eWxlIn0sY29udGFpbnM6W3hdLHN0YXJ0czp7ZW5kOi88XC9zdHlsZT4vLHJldHVybkVuZDohMCxzdWJMYW5ndWFnZTpbImNzcyIsInhtbCJdfX0se2NsYXNzTmFtZToidGFnIixiZWdpbjovPHNjcmlwdCg/PVxzfD4pLyxlbmQ6Lz4vLGtleXdvcmRzOntuYW1lOiJzY3JpcHQifSxjb250YWluczpbeF0sc3RhcnRzOntlbmQ6LzxcL3NjcmlwdD4vLHJldHVybkVuZDohMCxzdWJMYW5ndWFnZTpbImphdmFzY3JpcHQiLCJoYW5kbGViYXJzIiwieG1sIl19fSx7Y2xhc3NOYW1lOiJ0YWciLGJlZ2luOi88Pnw8XC8+L30se2NsYXNzTmFtZToidGFnIixiZWdpbjpjb25jYXQoLzwvLGxvb2thaGVhZChjb25jYXQobyxlaXRoZXIoL1wvPi8sLz4vLC9ccy8pKSkpLGVuZDovXC8/Pi8sY29udGFpbnM6W3tjbGFzc05hbWU6Im5hbWUiLGJlZ2luOm8scmVsZXZhbmNlOjAsc3RhcnRzOnh9XX0se2NsYXNzTmFtZToidGFnIixiZWdpbjpjb25jYXQoLzxcLy8sbG9va2FoZWFkKGNvbmNhdChvLC8+LykpKSxjb250YWluczpbe2NsYXNzTmFtZToibmFtZSIsYmVnaW46byxyZWxldmFuY2U6MH0se2JlZ2luOi8+LyxyZWxldmFuY2U6MCxlbmRzUGFyZW50OiEwfV19XX19fSwxNzQwMDoocyxvLGkpPT57dmFyIGE9aSg5OTM3NCksdT0xLzA7cy5leHBvcnRzPWZ1bmN0aW9uIHRvRmluaXRlKHMpe3JldHVybiBzPyhzPWEocykpPT09dXx8cz09PS0xLzA/MTc5NzY5MzEzNDg2MjMxNTdlMjkyKihzPDA/LTE6MSk6cz09cz9zOjA6MD09PXM/czowfX0sMTc1MzM6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiB5YW1sKHMpe3ZhciBvPSJ0cnVlIGZhbHNlIHllcyBubyBudWxsIixpPSJbXFx3IzsvPzpAJj0rJCwufionKClbXFxdXSsiLGE9e2NsYXNzTmFtZToic3RyaW5nIixyZWxldmFuY2U6MCx2YXJpYW50czpbe2JlZ2luOi8nLyxlbmQ6LycvfSx7YmVnaW46LyIvLGVuZDovIi99LHtiZWdpbjovXFMrL31dLGNvbnRhaW5zOltzLkJBQ0tTTEFTSF9FU0NBUEUse2NsYXNzTmFtZToidGVtcGxhdGUtdmFyaWFibGUiLHZhcmlhbnRzOlt7YmVnaW46L1x7XHsvLGVuZDovXH1cfS99LHtiZWdpbjovJVx7LyxlbmQ6L1x9L31dfV19LHU9cy5pbmhlcml0KGEse3ZhcmlhbnRzOlt7YmVnaW46LycvLGVuZDovJy99LHtiZWdpbjovIi8sZW5kOi8iL30se2JlZ2luOi9bXlxzLHt9W1xdXSsvfV19KSxfPXtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46IlxcYlswLTldezR9KC1bMC05XVswLTldKXswLDJ9KFtUdCBcXHRdWzAtOV1bMC05XT8oOlswLTldWzAtOV0pezJ9KT8oXFwuWzAtOV0qKT8oWyBcXHRdKSooWnxbLStdWzAtOV1bMC05XT8oOlswLTldWzAtOV0pPyk/XFxiIn0sdz17ZW5kOiIsIixlbmRzV2l0aFBhcmVudDohMCxleGNsdWRlRW5kOiEwLGtleXdvcmRzOm8scmVsZXZhbmNlOjB9LHg9e2JlZ2luOi9cey8sZW5kOi9cfS8sY29udGFpbnM6W3ddLGlsbGVnYWw6IlxcbiIscmVsZXZhbmNlOjB9LEM9e2JlZ2luOiJcXFsiLGVuZDoiXFxdIixjb250YWluczpbd10saWxsZWdhbDoiXFxuIixyZWxldmFuY2U6MH0saj1be2NsYXNzTmFtZToiYXR0ciIsdmFyaWFudHM6W3tiZWdpbjoiXFx3W1xcdyA6XFwvLi1dKjooPz1bIFx0XXwkKSJ9LHtiZWdpbjonIlxcd1tcXHcgOlxcLy4tXSoiOig/PVsgXHRdfCQpJ30se2JlZ2luOiInXFx3W1xcdyA6XFwvLi1dKic6KD89WyBcdF18JCkifV19LHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiJeLS0tXFxzKiQiLHJlbGV2YW5jZToxMH0se2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiW1xcfD5dKFsxLTldP1srLV0pP1sgXSpcXG4oICspW14gXVteXFxuXSpcXG4oXFwyW15cXG5dK1xcbj8pKiJ9LHtiZWdpbjoiPCVbJT0tXT8iLGVuZDoiWyUtXT8lPiIsc3ViTGFuZ3VhZ2U6InJ1YnkiLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoiIVxcdyshIitpfSx7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoiITwiK2krIj4ifSx7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoiISIraX0se2NsYXNzTmFtZToidHlwZSIsYmVnaW46IiEhIitpfSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiJiIrcy5VTkRFUlNDT1JFX0lERU5UX1JFKyIkIn0se2NsYXNzTmFtZToibWV0YSIsYmVnaW46IlxcKiIrcy5VTkRFUlNDT1JFX0lERU5UX1JFKyIkIn0se2NsYXNzTmFtZToiYnVsbGV0IixiZWdpbjoiLSg/PVsgXXwkKSIscmVsZXZhbmNlOjB9LHMuSEFTSF9DT01NRU5UX01PREUse2JlZ2luS2V5d29yZHM6byxrZXl3b3Jkczp7bGl0ZXJhbDpvfX0sXyx7Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOnMuQ19OVU1CRVJfUkUrIlxcYiIscmVsZXZhbmNlOjB9LHgsQyxhXSxMPVsuLi5qXTtyZXR1cm4gTC5wb3AoKSxMLnB1c2godSksdy5jb250YWlucz1MLHtuYW1lOiJZQU1MIixjYXNlX2luc2Vuc2l0aXZlOiEwLGFsaWFzZXM6WyJ5bWwiXSxjb250YWluczpqfX19LDE3NjcwOihzLG8saSk9Pnt2YXIgYT1pKDEyNjUxKTtzLmV4cG9ydHM9ZnVuY3Rpb24gbWFwQ2FjaGVEZWxldGUocyl7dmFyIG89YSh0aGlzLHMpLmRlbGV0ZShzKTtyZXR1cm4gdGhpcy5zaXplLT1vPzE6MCxvfX0sMTc5NjU6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDE2NDI2KSx1PXsidGV4dC9wbGFpbiI6IlRleHQiLCJ0ZXh0L2h0bWwiOiJVcmwiLGRlZmF1bHQ6IlRleHQifTtzLmV4cG9ydHM9ZnVuY3Rpb24gY29weShzLG8pe3ZhciBpLF8sdyx4LEMsaixMPSExO298fChvPXt9KSxpPW8uZGVidWd8fCExO3RyeXtpZih3PWEoKSx4PWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksQz1kb2N1bWVudC5nZXRTZWxlY3Rpb24oKSwoaj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpLnRleHRDb250ZW50PXMsai5hcmlhSGlkZGVuPSJ0cnVlIixqLnN0eWxlLmFsbD0idW5zZXQiLGouc3R5bGUucG9zaXRpb249ImZpeGVkIixqLnN0eWxlLnRvcD0wLGouc3R5bGUuY2xpcD0icmVjdCgwLCAwLCAwLCAwKSIsai5zdHlsZS53aGl0ZVNwYWNlPSJwcmUiLGouc3R5bGUud2Via2l0VXNlclNlbGVjdD0idGV4dCIsai5zdHlsZS5Nb3pVc2VyU2VsZWN0PSJ0ZXh0IixqLnN0eWxlLm1zVXNlclNlbGVjdD0idGV4dCIsai5zdHlsZS51c2VyU2VsZWN0PSJ0ZXh0IixqLmFkZEV2ZW50TGlzdGVuZXIoImNvcHkiLChmdW5jdGlvbihhKXtpZihhLnN0b3BQcm9wYWdhdGlvbigpLG8uZm9ybWF0KWlmKGEucHJldmVudERlZmF1bHQoKSx2b2lkIDA9PT1hLmNsaXBib2FyZERhdGEpe2kmJmNvbnNvbGUud2FybigidW5hYmxlIHRvIHVzZSBlLmNsaXBib2FyZERhdGEiKSxpJiZjb25zb2xlLndhcm4oInRyeWluZyBJRSBzcGVjaWZpYyBzdHVmZiIpLHdpbmRvdy5jbGlwYm9hcmREYXRhLmNsZWFyRGF0YSgpO3ZhciBfPXVbby5mb3JtYXRdfHx1LmRlZmF1bHQ7d2luZG93LmNsaXBib2FyZERhdGEuc2V0RGF0YShfLHMpfWVsc2UgYS5jbGlwYm9hcmREYXRhLmNsZWFyRGF0YSgpLGEuY2xpcGJvYXJkRGF0YS5zZXREYXRhKG8uZm9ybWF0LHMpO28ub25Db3B5JiYoYS5wcmV2ZW50RGVmYXVsdCgpLG8ub25Db3B5KGEuY2xpcGJvYXJkRGF0YSkpfSkpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaikseC5zZWxlY3ROb2RlQ29udGVudHMoaiksQy5hZGRSYW5nZSh4KSwhZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKSl0aHJvdyBuZXcgRXJyb3IoImNvcHkgY29tbWFuZCB3YXMgdW5zdWNjZXNzZnVsIik7TD0hMH1jYXRjaChhKXtpJiZjb25zb2xlLmVycm9yKCJ1bmFibGUgdG8gY29weSB1c2luZyBleGVjQ29tbWFuZDogIixhKSxpJiZjb25zb2xlLndhcm4oInRyeWluZyBJRSBzcGVjaWZpYyBzdHVmZiIpO3RyeXt3aW5kb3cuY2xpcGJvYXJkRGF0YS5zZXREYXRhKG8uZm9ybWF0fHwidGV4dCIscyksby5vbkNvcHkmJm8ub25Db3B5KHdpbmRvdy5jbGlwYm9hcmREYXRhKSxMPSEwfWNhdGNoKGEpe2kmJmNvbnNvbGUuZXJyb3IoInVuYWJsZSB0byBjb3B5IHVzaW5nIGNsaXBib2FyZERhdGE6ICIsYSksaSYmY29uc29sZS5lcnJvcigiZmFsbGluZyBiYWNrIHRvIHByb21wdCIpLF89ZnVuY3Rpb24gZm9ybWF0KHMpe3ZhciBvPSgvbWFjIG9zIHgvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpPyLijJgiOiJDdHJsIikrIitDIjtyZXR1cm4gcy5yZXBsYWNlKC8je1xzKmtleVxzKn0vZyxvKX0oIm1lc3NhZ2UiaW4gbz9vLm1lc3NhZ2U6IkNvcHkgdG8gY2xpcGJvYXJkOiAje2tleX0sIEVudGVyIiksd2luZG93LnByb21wdChfLHMpfX1maW5hbGx5e0MmJigiZnVuY3Rpb24iPT10eXBlb2YgQy5yZW1vdmVSYW5nZT9DLnJlbW92ZVJhbmdlKHgpOkMucmVtb3ZlQWxsUmFuZ2VzKCkpLGomJmRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaiksdygpfXJldHVybiBMfX0sMTgwNzM6KHMsbyxpKT0+e3ZhciBhPWkoODUwODcpLHU9aSg1NDY0MSksXz1pKDcwOTgxKTtzLmV4cG9ydHM9ZnVuY3Rpb24gY3JlYXRlUmVjdXJyeShzLG8saSx3LHgsQyxqLEwsQiwkKXt2YXIgVj04Jm87b3w9Vj8zMjo2NCw0JihvJj1+KFY/NjQ6MzIpKXx8KG8mPS00KTt2YXIgVT1bcyxvLHgsVj9DOnZvaWQgMCxWP2o6dm9pZCAwLFY/dm9pZCAwOkMsVj92b2lkIDA6aixMLEIsJF0sej1pLmFwcGx5KHZvaWQgMCxVKTtyZXR1cm4gYShzKSYmdSh6LFUpLHoucGxhY2Vob2xkZXI9dyxfKHoscyxvKX19LDE5MTIzOihzLG8saSk9Pnt2YXIgYT1pKDY1NjA2KSx1PWkoMzE0OTkpLF89aSg4ODMxMCkuU3RyZWFtO2Z1bmN0aW9uIHJlc29sdmUocyxvLGkpe3ZhciBhLF89ZnVuY3Rpb24gY3JlYXRlX2luZGVudChzLG8pe3JldHVybiBuZXcgQXJyYXkob3x8MCkuam9pbihzfHwiIil9KG8saT1pfHwwKSx3PXM7aWYoIm9iamVjdCI9PXR5cGVvZiBzJiYoKHc9c1thPU9iamVjdC5rZXlzKHMpWzBdXSkmJncuX2VsZW0pKXJldHVybiB3Ll9lbGVtLm5hbWU9YSx3Ll9lbGVtLmljb3VudD1pLHcuX2VsZW0uaW5kZW50PW8sdy5fZWxlbS5pbmRlbnRzPV8sdy5fZWxlbS5pbnRlcnJ1cHQ9dyx3Ll9lbGVtO3ZhciB4LEM9W10saj1bXTtmdW5jdGlvbiBnZXRfYXR0cmlidXRlcyhzKXtPYmplY3Qua2V5cyhzKS5mb3JFYWNoKChmdW5jdGlvbihvKXtDLnB1c2goZnVuY3Rpb24gYXR0cmlidXRlKHMsbyl7cmV0dXJuIHMrJz0iJyt1KG8pKyciJ30obyxzW29dKSl9KSl9c3dpdGNoKHR5cGVvZiB3KXtjYXNlIm9iamVjdCI6aWYobnVsbD09PXcpYnJlYWs7dy5fYXR0ciYmZ2V0X2F0dHJpYnV0ZXMody5fYXR0ciksdy5fY2RhdGEmJmoucHVzaCgoIjwhW0NEQVRBWyIrdy5fY2RhdGEpLnJlcGxhY2UoL1xdXF0+L2csIl1dXV0+PCFbQ0RBVEFbPiIpKyJdXT4iKSx3LmZvckVhY2gmJih4PSExLGoucHVzaCgiIiksdy5mb3JFYWNoKChmdW5jdGlvbihzKXsib2JqZWN0Ij09dHlwZW9mIHM/Il9hdHRyIj09T2JqZWN0LmtleXMocylbMF0/Z2V0X2F0dHJpYnV0ZXMocy5fYXR0cik6ai5wdXNoKHJlc29sdmUocyxvLGkrMSkpOihqLnBvcCgpLHg9ITAsai5wdXNoKHUocykpKX0pKSx4fHxqLnB1c2goIiIpKTticmVhaztkZWZhdWx0OmoucHVzaCh1KHcpKX1yZXR1cm57bmFtZTphLGludGVycnVwdDohMSxhdHRyaWJ1dGVzOkMsY29udGVudDpqLGljb3VudDppLGluZGVudHM6XyxpbmRlbnQ6b319ZnVuY3Rpb24gZm9ybWF0KHMsbyxpKXtpZigib2JqZWN0IiE9dHlwZW9mIG8pcmV0dXJuIHMoITEsbyk7dmFyIGE9by5pbnRlcnJ1cHQ/MTpvLmNvbnRlbnQubGVuZ3RoO2Z1bmN0aW9uIHByb2NlZWQoKXtmb3IoO28uY29udGVudC5sZW5ndGg7KXt2YXIgdT1vLmNvbnRlbnQuc2hpZnQoKTtpZih2b2lkIDAhPT11KXtpZihpbnRlcnJ1cHQodSkpcmV0dXJuO2Zvcm1hdChzLHUpfX1zKCExLChhPjE/by5pbmRlbnRzOiIiKSsoby5uYW1lPyI8LyIrby5uYW1lKyI+IjoiIikrKG8uaW5kZW50JiYhaT8iXG4iOiIiKSksaSYmaSgpfWZ1bmN0aW9uIGludGVycnVwdChvKXtyZXR1cm4hIW8uaW50ZXJydXB0JiYoby5pbnRlcnJ1cHQuYXBwZW5kPXMsby5pbnRlcnJ1cHQuZW5kPXByb2NlZWQsby5pbnRlcnJ1cHQ9ITEscyghMCksITApfWlmKHMoITEsby5pbmRlbnRzKyhvLm5hbWU/IjwiK28ubmFtZToiIikrKG8uYXR0cmlidXRlcy5sZW5ndGg/IiAiK28uYXR0cmlidXRlcy5qb2luKCIgIik6IiIpKyhhP28ubmFtZT8iPiI6IiI6by5uYW1lPyIvPiI6IiIpKyhvLmluZGVudCYmYT4xPyJcbiI6IiIpKSwhYSlyZXR1cm4gcyghMSxvLmluZGVudD8iXG4iOiIiKTtpbnRlcnJ1cHQobyl8fHByb2NlZWQoKX1zLmV4cG9ydHM9ZnVuY3Rpb24geG1sKHMsbyl7Im9iamVjdCIhPXR5cGVvZiBvJiYobz17aW5kZW50Om99KTt2YXIgaT1vLnN0cmVhbT9uZXcgXzpudWxsLHU9IiIsdz0hMSx4PW8uaW5kZW50PyEwPT09by5pbmRlbnQ/IiAgICAiOm8uaW5kZW50OiIiLEM9ITA7ZnVuY3Rpb24gZGVsYXkocyl7Qz9hLm5leHRUaWNrKHMpOnMoKX1mdW5jdGlvbiBhcHBlbmQocyxvKXtpZih2b2lkIDAhPT1vJiYodSs9bykscyYmIXcmJihpPWl8fG5ldyBfLHc9ITApLHMmJncpe3ZhciBhPXU7ZGVsYXkoKGZ1bmN0aW9uKCl7aS5lbWl0KCJkYXRhIixhKX0pKSx1PSIifX1mdW5jdGlvbiBhZGQocyxvKXtmb3JtYXQoYXBwZW5kLHJlc29sdmUocyx4LHg/MTowKSxvKX1mdW5jdGlvbiBlbmQoKXtpZihpKXt2YXIgcz11O2RlbGF5KChmdW5jdGlvbigpe2kuZW1pdCgiZGF0YSIscyksaS5lbWl0KCJlbmQiKSxpLnJlYWRhYmxlPSExLGkuZW1pdCgiY2xvc2UiKX0pKX19cmV0dXJuIGRlbGF5KChmdW5jdGlvbigpe0M9ITF9KSksby5kZWNsYXJhdGlvbiYmZnVuY3Rpb24gYWRkWG1sRGVjbGFyYXRpb24ocyl7dmFyIG89e3ZlcnNpb246IjEuMCIsZW5jb2Rpbmc6cy5lbmNvZGluZ3x8IlVURi04In07cy5zdGFuZGFsb25lJiYoby5zdGFuZGFsb25lPXMuc3RhbmRhbG9uZSksYWRkKHsiP3htbCI6e19hdHRyOm99fSksdT11LnJlcGxhY2UoIi8+IiwiPz4iKX0oby5kZWNsYXJhdGlvbikscyYmcy5mb3JFYWNoP3MuZm9yRWFjaCgoZnVuY3Rpb24obyxpKXt2YXIgYTtpKzE9PT1zLmxlbmd0aCYmKGE9ZW5kKSxhZGQobyxhKX0pKTphZGQocyxlbmQpLGk/KGkucmVhZGFibGU9ITAsaSk6dX0scy5leHBvcnRzLmVsZW1lbnQ9cy5leHBvcnRzLkVsZW1lbnQ9ZnVuY3Rpb24gZWxlbWVudCgpe3ZhciBzPXtfZWxlbTpyZXNvbHZlKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpLHB1c2g6ZnVuY3Rpb24ocyl7aWYoIXRoaXMuYXBwZW5kKXRocm93IG5ldyBFcnJvcigibm90IGFzc2lnbmVkIHRvIGEgcGFyZW50ISIpO3ZhciBvPXRoaXMsaT10aGlzLl9lbGVtLmluZGVudDtmb3JtYXQodGhpcy5hcHBlbmQscmVzb2x2ZShzLGksdGhpcy5fZWxlbS5pY291bnQrKGk/MTowKSksKGZ1bmN0aW9uKCl7by5hcHBlbmQoITApfSkpfSxjbG9zZTpmdW5jdGlvbihzKXt2b2lkIDAhPT1zJiZ0aGlzLnB1c2gocyksdGhpcy5lbmQmJnRoaXMuZW5kKCl9fTtyZXR1cm4gc319LDE5MjE5OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gY2FjaGVIYXMocyxvKXtyZXR1cm4gcy5oYXMobyl9fSwxOTI4NzpzPT57InVzZSBzdHJpY3QiO3MuZXhwb3J0cz17Q1NTUnVsZUxpc3Q6MCxDU1NTdHlsZURlY2xhcmF0aW9uOjAsQ1NTVmFsdWVMaXN0OjAsQ2xpZW50UmVjdExpc3Q6MCxET01SZWN0TGlzdDowLERPTVN0cmluZ0xpc3Q6MCxET01Ub2tlbkxpc3Q6MSxEYXRhVHJhbnNmZXJJdGVtTGlzdDowLEZpbGVMaXN0OjAsSFRNTEFsbENvbGxlY3Rpb246MCxIVE1MQ29sbGVjdGlvbjowLEhUTUxGb3JtRWxlbWVudDowLEhUTUxTZWxlY3RFbGVtZW50OjAsTWVkaWFMaXN0OjAsTWltZVR5cGVBcnJheTowLE5hbWVkTm9kZU1hcDowLE5vZGVMaXN0OjEsUGFpbnRSZXF1ZXN0TGlzdDowLFBsdWdpbjowLFBsdWdpbkFycmF5OjAsU1ZHTGVuZ3RoTGlzdDowLFNWR051bWJlckxpc3Q6MCxTVkdQYXRoU2VnTGlzdDowLFNWR1BvaW50TGlzdDowLFNWR1N0cmluZ0xpc3Q6MCxTVkdUcmFuc2Zvcm1MaXN0OjAsU291cmNlQnVmZmVyTGlzdDowLFN0eWxlU2hlZXRMaXN0OjAsVGV4dFRyYWNrQ3VlTGlzdDowLFRleHRUcmFja0xpc3Q6MCxUb3VjaExpc3Q6MH19LDE5MzU4OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg4NTU4MiksdT1pKDQ5NzI0KSxfPWkoNjE2MjYpLHc9aSg4ODI4MCkseD1pKDc5MTkyKSxDPWkoMTk1OTUpLGo9aSg1NDgyOSksTD1pKDM0MDg0KSxCPWkoMzIwOTYpLCQ9aSgzOTI1OSksVj1pKDg1ODg0KSxVPWkoMzk0NDcpLHo9aSg3Mzc2KTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvLGksWSl7dmFyIFo9InN0YWNrVHJhY2VMaW1pdCIsZWU9WT8yOjEsaWU9cy5zcGxpdCgiLiIpLGFlPWllW2llLmxlbmd0aC0xXSxjZT1hLmFwcGx5KG51bGwsaWUpO2lmKGNlKXt2YXIgbGU9Y2UucHJvdG90eXBlO2lmKCF6JiZ1KGxlLCJjYXVzZSIpJiZkZWxldGUgbGUuY2F1c2UsIWkpcmV0dXJuIGNlO3ZhciBwZT1hKCJFcnJvciIpLGRlPW8oKGZ1bmN0aW9uKHMsbyl7dmFyIGk9QihZP286cyx2b2lkIDApLGE9WT9uZXcgY2Uocyk6bmV3IGNlO3JldHVybiB2b2lkIDAhPT1pJiZfKGEsIm1lc3NhZ2UiLGkpLFYoYSxkZSxhLnN0YWNrLDIpLHRoaXMmJncobGUsdGhpcykmJkwoYSx0aGlzLGRlKSxhcmd1bWVudHMubGVuZ3RoPmVlJiYkKGEsYXJndW1lbnRzW2VlXSksYX0pKTtpZihkZS5wcm90b3R5cGU9bGUsIkVycm9yIiE9PWFlP3g/eChkZSxwZSk6QyhkZSxwZSx7bmFtZTohMH0pOlUmJlogaW4gY2UmJihqKGRlLGNlLFopLGooZGUsY2UsInByZXBhcmVTdGFja1RyYWNlIikpLEMoZGUsY2UpLCF6KXRyeXtsZS5uYW1lIT09YWUmJl8obGUsIm5hbWUiLGFlKSxsZS5jb25zdHJ1Y3Rvcj1kZX1jYXRjaChzKXt9cmV0dXJuIGRlfX19LDE5NTcwOihzLG8saSk9Pnt2YXIgYT1pKDM3MzM0KSx1PWkoOTMyNDMpLF89aSg4MzQ4OCksdz11P2Z1bmN0aW9uKHMsbyl7cmV0dXJuIHUocywidG9TdHJpbmciLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx2YWx1ZTphKG8pLHdyaXRhYmxlOiEwfSl9Ol87cy5leHBvcnRzPXd9LDE5NTk1OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg0OTcyNCksdT1pKDExMDQyKSxfPWkoMTM4NDYpLHc9aSg3NDI4NCk7cy5leHBvcnRzPWZ1bmN0aW9uKHMsbyxpKXtmb3IodmFyIHg9dShvKSxDPXcuZixqPV8uZixMPTA7TDx4Lmxlbmd0aDtMKyspe3ZhciBCPXhbTF07YShzLEIpfHxpJiZhKGksQil8fEMocyxCLGoobyxCKSl9fX0sMTk3MDk6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDIzMDM0KTtzLmV4cG9ydHM9YX0sMTk4NDY6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDIwNzk4KSx1PWkoOTg4MjgpLF89aSg0NTk1MSkuU3RyaW5nO3MuZXhwb3J0cz0hIU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJiF1KChmdW5jdGlvbigpe3ZhciBzPVN5bWJvbCgic3ltYm9sIGRldGVjdGlvbiIpO3JldHVybiFfKHMpfHwhKE9iamVjdChzKWluc3RhbmNlb2YgU3ltYm9sKXx8IVN5bWJvbC5zaGFtJiZhJiZhPDQxfSkpfSwxOTkzMToocyxvLGkpPT57dmFyIGE9aSgzMTc2OSksdT1pKDY4MDkwKSxfPWkoNjg5NjkpLHc9aSg3Nzc5Nyk7cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VVbnNldChzLG8pe3JldHVybiBvPWEobyxzKSxudWxsPT0ocz1fKHMsbykpfHxkZWxldGUgc1t3KHUobykpXX19LDIwMTgxOihzLG8saSk9Pnt2YXIgYT0vXlxzK3xccyskL2csdT0vXlstK10weFswLTlhLWZdKyQvaSxfPS9eMGJbMDFdKyQvaSx3PS9eMG9bMC03XSskL2kseD1wYXJzZUludCxDPSJvYmplY3QiPT10eXBlb2YgaS5nJiZpLmcmJmkuZy5PYmplY3Q9PT1PYmplY3QmJmkuZyxqPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsTD1DfHxqfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLEI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZywkPU1hdGgubWF4LFY9TWF0aC5taW4sbm93PWZ1bmN0aW9uKCl7cmV0dXJuIEwuRGF0ZS5ub3coKX07ZnVuY3Rpb24gaXNPYmplY3Qocyl7dmFyIG89dHlwZW9mIHM7cmV0dXJuISFzJiYoIm9iamVjdCI9PW98fCJmdW5jdGlvbiI9PW8pfWZ1bmN0aW9uIHRvTnVtYmVyKHMpe2lmKCJudW1iZXIiPT10eXBlb2YgcylyZXR1cm4gcztpZihmdW5jdGlvbiBpc1N5bWJvbChzKXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHN8fGZ1bmN0aW9uIGlzT2JqZWN0TGlrZShzKXtyZXR1cm4hIXMmJiJvYmplY3QiPT10eXBlb2Ygc30ocykmJiJbb2JqZWN0IFN5bWJvbF0iPT1CLmNhbGwocyl9KHMpKXJldHVybiBOYU47aWYoaXNPYmplY3Qocykpe3ZhciBvPSJmdW5jdGlvbiI9PXR5cGVvZiBzLnZhbHVlT2Y/cy52YWx1ZU9mKCk6cztzPWlzT2JqZWN0KG8pP28rIiI6b31pZigic3RyaW5nIiE9dHlwZW9mIHMpcmV0dXJuIDA9PT1zP3M6K3M7cz1zLnJlcGxhY2UoYSwiIik7dmFyIGk9Xy50ZXN0KHMpO3JldHVybiBpfHx3LnRlc3Qocyk/eChzLnNsaWNlKDIpLGk/Mjo4KTp1LnRlc3Qocyk/TmFOOitzfXMuZXhwb3J0cz1mdW5jdGlvbiBkZWJvdW5jZShzLG8saSl7dmFyIGEsdSxfLHcseCxDLGo9MCxMPSExLEI9ITEsVT0hMDtpZigiZnVuY3Rpb24iIT10eXBlb2Ygcyl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGZ1bmN0aW9uIik7ZnVuY3Rpb24gaW52b2tlRnVuYyhvKXt2YXIgaT1hLF89dTtyZXR1cm4gYT11PXZvaWQgMCxqPW8sdz1zLmFwcGx5KF8saSl9ZnVuY3Rpb24gc2hvdWxkSW52b2tlKHMpe3ZhciBpPXMtQztyZXR1cm4gdm9pZCAwPT09Q3x8aT49b3x8aTwwfHxCJiZzLWo+PV99ZnVuY3Rpb24gdGltZXJFeHBpcmVkKCl7dmFyIHM9bm93KCk7aWYoc2hvdWxkSW52b2tlKHMpKXJldHVybiB0cmFpbGluZ0VkZ2Uocyk7eD1zZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCxmdW5jdGlvbiByZW1haW5pbmdXYWl0KHMpe3ZhciBpPW8tKHMtQyk7cmV0dXJuIEI/VihpLF8tKHMtaikpOml9KHMpKX1mdW5jdGlvbiB0cmFpbGluZ0VkZ2Uocyl7cmV0dXJuIHg9dm9pZCAwLFUmJmE/aW52b2tlRnVuYyhzKTooYT11PXZvaWQgMCx3KX1mdW5jdGlvbiBkZWJvdW5jZWQoKXt2YXIgcz1ub3coKSxpPXNob3VsZEludm9rZShzKTtpZihhPWFyZ3VtZW50cyx1PXRoaXMsQz1zLGkpe2lmKHZvaWQgMD09PXgpcmV0dXJuIGZ1bmN0aW9uIGxlYWRpbmdFZGdlKHMpe3JldHVybiBqPXMseD1zZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCxvKSxMP2ludm9rZUZ1bmMocyk6d30oQyk7aWYoQilyZXR1cm4geD1zZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCxvKSxpbnZva2VGdW5jKEMpfXJldHVybiB2b2lkIDA9PT14JiYoeD1zZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCxvKSksd31yZXR1cm4gbz10b051bWJlcihvKXx8MCxpc09iamVjdChpKSYmKEw9ISFpLmxlYWRpbmcsXz0oQj0ibWF4V2FpdCJpbiBpKT8kKHRvTnVtYmVyKGkubWF4V2FpdCl8fDAsbyk6XyxVPSJ0cmFpbGluZyJpbiBpPyEhaS50cmFpbGluZzpVKSxkZWJvdW5jZWQuY2FuY2VsPWZ1bmN0aW9uIGNhbmNlbCgpe3ZvaWQgMCE9PXgmJmNsZWFyVGltZW91dCh4KSxqPTAsYT1DPXU9eD12b2lkIDB9LGRlYm91bmNlZC5mbHVzaD1mdW5jdGlvbiBmbHVzaCgpe3JldHVybiB2b2lkIDA9PT14P3c6dHJhaWxpbmdFZGdlKG5vdygpKX0sZGVib3VuY2VkfX0sMjAzMTc6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBtYXBUb0FycmF5KHMpe3ZhciBvPS0xLGk9QXJyYXkocy5zaXplKTtyZXR1cm4gcy5mb3JFYWNoKChmdW5jdGlvbihzLGEpe2lbKytvXT1bYSxzXX0pKSxpfX0sMjAzMzQ6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDQ4Mjg3KS5CdWZmZXI7Y2xhc3MgTm9uRXJyb3IgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihzKXtzdXBlcihOb25FcnJvci5fcHJlcGFyZVN1cGVyTWVzc2FnZShzKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIm5hbWUiLHt2YWx1ZToiTm9uRXJyb3IiLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlJiZFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLE5vbkVycm9yKX1zdGF0aWMgX3ByZXBhcmVTdXBlck1lc3NhZ2Uocyl7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShzKX1jYXRjaHtyZXR1cm4gU3RyaW5nKHMpfX19Y29uc3QgdT1be3Byb3BlcnR5OiJuYW1lIixlbnVtZXJhYmxlOiExfSx7cHJvcGVydHk6Im1lc3NhZ2UiLGVudW1lcmFibGU6ITF9LHtwcm9wZXJ0eToic3RhY2siLGVudW1lcmFibGU6ITF9LHtwcm9wZXJ0eToiY29kZSIsZW51bWVyYWJsZTohMH1dLF89U3ltYm9sKCIudG9KU09OIGNhbGxlZCIpLGRlc3Ryb3lDaXJjdWxhcj0oe2Zyb206cyxzZWVuOm8sdG9fOmksZm9yY2VFbnVtZXJhYmxlOncsbWF4RGVwdGg6eCxkZXB0aDpDfSk9Pntjb25zdCBqPWl8fChBcnJheS5pc0FycmF5KHMpP1tdOnt9KTtpZihvLnB1c2gocyksQz49eClyZXR1cm4gajtpZigiZnVuY3Rpb24iPT10eXBlb2Ygcy50b0pTT04mJiEwIT09c1tfXSlyZXR1cm4ocz0+e3NbX109ITA7Y29uc3Qgbz1zLnRvSlNPTigpO3JldHVybiBkZWxldGUgc1tfXSxvfSkocyk7Zm9yKGNvbnN0W2ksdV1vZiBPYmplY3QuZW50cmllcyhzKSkiZnVuY3Rpb24iPT10eXBlb2YgYSYmYS5pc0J1ZmZlcih1KT9qW2ldPSJbb2JqZWN0IEJ1ZmZlcl0iOiJmdW5jdGlvbiIhPXR5cGVvZiB1JiYodSYmIm9iamVjdCI9PXR5cGVvZiB1P28uaW5jbHVkZXMoc1tpXSk/altpXT0iW0NpcmN1bGFyXSI6KEMrKyxqW2ldPWRlc3Ryb3lDaXJjdWxhcih7ZnJvbTpzW2ldLHNlZW46by5zbGljZSgpLGZvcmNlRW51bWVyYWJsZTp3LG1heERlcHRoOngsZGVwdGg6Q30pKTpqW2ldPXUpO2Zvcihjb25zdHtwcm9wZXJ0eTpvLGVudW1lcmFibGU6aX1vZiB1KSJzdHJpbmciPT10eXBlb2Ygc1tvXSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGosbyx7dmFsdWU6c1tvXSxlbnVtZXJhYmxlOiEhd3x8aSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTtyZXR1cm4gan07cy5leHBvcnRzPXtzZXJpYWxpemVFcnJvcjoocyxvPXt9KT0+e2NvbnN0e21heERlcHRoOmk9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZfT1vO3JldHVybiJvYmplY3QiPT10eXBlb2YgcyYmbnVsbCE9PXM/ZGVzdHJveUNpcmN1bGFyKHtmcm9tOnMsc2VlbjpbXSxmb3JjZUVudW1lcmFibGU6ITAsbWF4RGVwdGg6aSxkZXB0aDowfSk6ImZ1bmN0aW9uIj09dHlwZW9mIHM/YFtGdW5jdGlvbjogJHtzLm5hbWV8fCJhbm9ueW1vdXMifV1gOnN9LGRlc2VyaWFsaXplRXJyb3I6KHMsbz17fSk9Pntjb25zdHttYXhEZXB0aDppPU51bWJlci5QT1NJVElWRV9JTkZJTklUWX09bztpZihzIGluc3RhbmNlb2YgRXJyb3IpcmV0dXJuIHM7aWYoIm9iamVjdCI9PXR5cGVvZiBzJiZudWxsIT09cyYmIUFycmF5LmlzQXJyYXkocykpe2NvbnN0IG89bmV3IEVycm9yO3JldHVybiBkZXN0cm95Q2lyY3VsYXIoe2Zyb206cyxzZWVuOltdLHRvXzpvLG1heERlcHRoOmksZGVwdGg6MH0pLG99cmV0dXJuIG5ldyBOb25FcnJvcihzKX19fSwyMDQyNjpzPT57dmFyIG89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZUhhcyhzLGkpe3JldHVybiBudWxsIT1zJiZvLmNhbGwocyxpKX19LDIwNTc1OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgzMTIxKTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyl7cmV0dXJuIGEocy5sZW5ndGgpfX0sMjA3OTg6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYSx1LF89aSg0NTk1MSksdz1pKDk2Nzk0KSx4PV8ucHJvY2VzcyxDPV8uRGVubyxqPXgmJngudmVyc2lvbnN8fEMmJkMudmVyc2lvbixMPWomJmoudjg7TCYmKHU9KGE9TC5zcGxpdCgiLiIpKVswXT4wJiZhWzBdPDQ/MTorKGFbMF0rYVsxXSkpLCF1JiZ3JiYoIShhPXcubWF0Y2goL0VkZ2VcLyhcZCspLykpfHxhWzFdPj03NCkmJihhPXcubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJih1PSthWzFdKSxzLmV4cG9ydHM9dX0sMjA4NTA6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0IjtzLmV4cG9ydHM9aSg0NjA3Nil9LDIwOTk5OihzLG8saSk9Pnt2YXIgYT1pKDY5MzAyKSx1PWkoMzY4MDApO3MuZXhwb3J0cz1mdW5jdGlvbiBjcmVhdGVBc3NpZ25lcihzKXtyZXR1cm4gYSgoZnVuY3Rpb24obyxpKXt2YXIgYT0tMSxfPWkubGVuZ3RoLHc9Xz4xP2lbXy0xXTp2b2lkIDAseD1fPjI/aVsyXTp2b2lkIDA7Zm9yKHc9cy5sZW5ndGg+MyYmImZ1bmN0aW9uIj09dHlwZW9mIHc/KF8tLSx3KTp2b2lkIDAseCYmdShpWzBdLGlbMV0seCkmJih3PV88Mz92b2lkIDA6dyxfPTEpLG89T2JqZWN0KG8pOysrYTxfOyl7dmFyIEM9aVthXTtDJiZzKG8sQyxhLHcpfXJldHVybiBvfSkpfX0sMjE1NDk6KHMsbyxpKT0+e3ZhciBhPWkoMjIwMzIpLHU9aSg2Mzg2MiksXz1pKDY2NzIxKSx3PWkoMTI3NDkpLHg9aSgzNTc0OSk7ZnVuY3Rpb24gSGFzaChzKXt2YXIgbz0tMSxpPW51bGw9PXM/MDpzLmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrbzxpOyl7dmFyIGE9c1tvXTt0aGlzLnNldChhWzBdLGFbMV0pfX1IYXNoLnByb3RvdHlwZS5jbGVhcj1hLEhhc2gucHJvdG90eXBlLmRlbGV0ZT11LEhhc2gucHJvdG90eXBlLmdldD1fLEhhc2gucHJvdG90eXBlLmhhcz13LEhhc2gucHJvdG90eXBlLnNldD14LHMuZXhwb3J0cz1IYXNofSwyMTc5MToocyxvLGkpPT57dmFyIGE9aSgxNjU0NyksdT1pKDQzMzYwKTtzLmV4cG9ydHM9ZnVuY3Rpb24gY29weU9iamVjdChzLG8saSxfKXt2YXIgdz0haTtpfHwoaT17fSk7Zm9yKHZhciB4PS0xLEM9by5sZW5ndGg7Kyt4PEM7KXt2YXIgaj1vW3hdLEw9Xz9fKGlbal0sc1tqXSxqLGkscyk6dm9pZCAwO3ZvaWQgMD09PUwmJihMPXNbal0pLHc/dShpLGosTCk6YShpLGosTCl9cmV0dXJuIGl9fSwyMTk4NjoocyxvLGkpPT57dmFyIGE9aSg1MTg3MyksdT1pKDM3ODI4KSxfPWkoNzUyODgpLHc9aSgyNTkxMSkseD1pKDIwMzE3KSxDPWkoODQyNDcpLGo9YT9hLnByb3RvdHlwZTp2b2lkIDAsTD1qP2oudmFsdWVPZjp2b2lkIDA7cy5leHBvcnRzPWZ1bmN0aW9uIGVxdWFsQnlUYWcocyxvLGksYSxqLEIsJCl7c3dpdGNoKGkpe2Nhc2UiW29iamVjdCBEYXRhVmlld10iOmlmKHMuYnl0ZUxlbmd0aCE9by5ieXRlTGVuZ3RofHxzLmJ5dGVPZmZzZXQhPW8uYnl0ZU9mZnNldClyZXR1cm4hMTtzPXMuYnVmZmVyLG89by5idWZmZXI7Y2FzZSJbb2JqZWN0IEFycmF5QnVmZmVyXSI6cmV0dXJuIShzLmJ5dGVMZW5ndGghPW8uYnl0ZUxlbmd0aHx8IUIobmV3IHUocyksbmV3IHUobykpKTtjYXNlIltvYmplY3QgQm9vbGVhbl0iOmNhc2UiW29iamVjdCBEYXRlXSI6Y2FzZSJbb2JqZWN0IE51bWJlcl0iOnJldHVybiBfKCtzLCtvKTtjYXNlIltvYmplY3QgRXJyb3JdIjpyZXR1cm4gcy5uYW1lPT1vLm5hbWUmJnMubWVzc2FnZT09by5tZXNzYWdlO2Nhc2UiW29iamVjdCBSZWdFeHBdIjpjYXNlIltvYmplY3QgU3RyaW5nXSI6cmV0dXJuIHM9PW8rIiI7Y2FzZSJbb2JqZWN0IE1hcF0iOnZhciBWPXg7Y2FzZSJbb2JqZWN0IFNldF0iOnZhciBVPTEmYTtpZihWfHwoVj1DKSxzLnNpemUhPW8uc2l6ZSYmIVUpcmV0dXJuITE7dmFyIHo9JC5nZXQocyk7aWYoeilyZXR1cm4gej09bzthfD0yLCQuc2V0KHMsbyk7dmFyIFk9dyhWKHMpLFYobyksYSxqLEIsJCk7cmV0dXJuICQuZGVsZXRlKHMpLFk7Y2FzZSJbb2JqZWN0IFN5bWJvbF0iOmlmKEwpcmV0dXJuIEwuY2FsbChzKT09TC5jYWxsKG8pfXJldHVybiExfX0sMjIwMzI6KHMsbyxpKT0+e3ZhciBhPWkoODEwNDIpO3MuZXhwb3J0cz1mdW5jdGlvbiBoYXNoQ2xlYXIoKXt0aGlzLl9fZGF0YV9fPWE/YShudWxsKTp7fSx0aGlzLnNpemU9MH19LDIyMjI1OnM9Pnt2YXIgbz0iXFx1ZDgwMC1cXHVkZmZmIixpPSJcXHUyNzAwLVxcdTI3YmYiLGE9ImEtelxceGRmLVxceGY2XFx4ZjgtXFx4ZmYiLHU9IkEtWlxceGMwLVxceGQ2XFx4ZDgtXFx4ZGUiLF89IlxceGFjXFx4YjFcXHhkN1xceGY3XFx4MDAtXFx4MmZcXHgzYS1cXHg0MFxceDViLVxceDYwXFx4N2ItXFx4YmZcXHUyMDAwLVxcdTIwNmYgXFx0XFx4MGJcXGZcXHhhMFxcdWZlZmZcXG5cXHJcXHUyMDI4XFx1MjAyOVxcdTE2ODBcXHUxODBlXFx1MjAwMFxcdTIwMDFcXHUyMDAyXFx1MjAwM1xcdTIwMDRcXHUyMDA1XFx1MjAwNlxcdTIwMDdcXHUyMDA4XFx1MjAwOVxcdTIwMGFcXHUyMDJmXFx1MjA1ZlxcdTMwMDAiLHc9IlsiK18rIl0iLHg9IlxcZCsiLEM9IlsiK2krIl0iLGo9IlsiK2ErIl0iLEw9IlteIitvK18reCtpK2ErdSsiXSIsQj0iKD86XFx1ZDgzY1tcXHVkZGU2LVxcdWRkZmZdKXsyfSIsJD0iW1xcdWQ4MDAtXFx1ZGJmZl1bXFx1ZGMwMC1cXHVkZmZmXSIsVj0iWyIrdSsiXSIsVT0iKD86IitqKyJ8IitMKyIpIix6PSIoPzoiK1YrInwiK0wrIikiLFk9Iig/Olsn4oCZXSg/OmR8bGx8bXxyZXxzfHR8dmUpKT8iLFo9Iig/Olsn4oCZXSg/OkR8TEx8TXxSRXxTfFR8VkUpKT8iLGVlPSIoPzpbXFx1MDMwMC1cXHUwMzZmXFx1ZmUyMC1cXHVmZTJmXFx1MjBkMC1cXHUyMGZmXXxcXHVkODNjW1xcdWRmZmItXFx1ZGZmZl0pPyIsaWU9IltcXHVmZTBlXFx1ZmUwZl0/IixhZT1pZStlZSsoIig/OlxcdTIwMGQoPzoiK1siW14iK28rIl0iLEIsJF0uam9pbigifCIpKyIpIitpZStlZSsiKSoiKSxjZT0iKD86IitbQyxCLCRdLmpvaW4oInwiKSsiKSIrYWUsbGU9UmVnRXhwKFtWKyI/IitqKyIrIitZKyIoPz0iK1t3LFYsIiQiXS5qb2luKCJ8IikrIikiLHorIisiK1orIig/PSIrW3csVitVLCIkIl0uam9pbigifCIpKyIpIixWKyI/IitVKyIrIitZLFYrIisiK1osIlxcZCooPzoxU1R8Mk5EfDNSRHwoPyFbMTIzXSlcXGRUSCkoPz1cXGJ8W2Etel9dKSIsIlxcZCooPzoxc3R8Mm5kfDNyZHwoPyFbMTIzXSlcXGR0aCkoPz1cXGJ8W0EtWl9dKSIseCxjZV0uam9pbigifCIpLCJnIik7cy5leHBvcnRzPWZ1bmN0aW9uIHVuaWNvZGVXb3JkcyhzKXtyZXR1cm4gcy5tYXRjaChsZSl8fFtdfX0sMjI1NTE6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDk2NTQwKSx1PWkoNjk5ODIpO2Z1bmN0aW9uIHAocyl7Zm9yKHZhciBvPSJodHRwczovL3JlYWN0anMub3JnL2RvY3MvZXJyb3ItZGVjb2Rlci5odG1sP2ludmFyaWFudD0iK3MsaT0xO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspbys9IiZhcmdzW109IitlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzW2ldKTtyZXR1cm4iTWluaWZpZWQgUmVhY3QgZXJyb3IgIyIrcysiOyB2aXNpdCAiK28rIiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuIn12YXIgXz1uZXcgU2V0LHc9e307ZnVuY3Rpb24gZmEocyxvKXtoYShzLG8pLGhhKHMrIkNhcHR1cmUiLG8pfWZ1bmN0aW9uIGhhKHMsbyl7Zm9yKHdbc109byxzPTA7czxvLmxlbmd0aDtzKyspXy5hZGQob1tzXSl9dmFyIHg9ISgidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvd3x8dm9pZCAwPT09d2luZG93LmRvY3VtZW50fHx2b2lkIDA9PT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCksQz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGo9L15bOkEtWl9hLXpcdTAwQzAtXHUwMEQ2XHUwMEQ4LVx1MDBGNlx1MDBGOC1cdTAyRkZcdTAzNzAtXHUwMzdEXHUwMzdGLVx1MUZGRlx1MjAwQy1cdTIwMERcdTIwNzAtXHUyMThGXHUyQzAwLVx1MkZFRlx1MzAwMS1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZGRF1bOkEtWl9hLXpcdTAwQzAtXHUwMEQ2XHUwMEQ4LVx1MDBGNlx1MDBGOC1cdTAyRkZcdTAzNzAtXHUwMzdEXHUwMzdGLVx1MUZGRlx1MjAwQy1cdTIwMERcdTIwNzAtXHUyMThGXHUyQzAwLVx1MkZFRlx1MzAwMS1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZGRFwtLjAtOVx1MDBCN1x1MDMwMC1cdTAzNkZcdTIwM0YtXHUyMDQwXSokLyxMPXt9LEI9e307ZnVuY3Rpb24gdihzLG8saSxhLHUsXyx3KXt0aGlzLmFjY2VwdHNCb29sZWFucz0yPT09b3x8Mz09PW98fDQ9PT1vLHRoaXMuYXR0cmlidXRlTmFtZT1hLHRoaXMuYXR0cmlidXRlTmFtZXNwYWNlPXUsdGhpcy5tdXN0VXNlUHJvcGVydHk9aSx0aGlzLnByb3BlcnR5TmFtZT1zLHRoaXMudHlwZT1vLHRoaXMuc2FuaXRpemVVUkw9Xyx0aGlzLnJlbW92ZUVtcHR5U3RyaW5nPXd9dmFyICQ9e307ImNoaWxkcmVuIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIGRlZmF1bHRWYWx1ZSBkZWZhdWx0Q2hlY2tlZCBpbm5lckhUTUwgc3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIHN1cHByZXNzSHlkcmF0aW9uV2FybmluZyBzdHlsZSIuc3BsaXQoIiAiKS5mb3JFYWNoKChmdW5jdGlvbihzKXskW3NdPW5ldyB2KHMsMCwhMSxzLG51bGwsITEsITEpfSkpLFtbImFjY2VwdENoYXJzZXQiLCJhY2NlcHQtY2hhcnNldCJdLFsiY2xhc3NOYW1lIiwiY2xhc3MiXSxbImh0bWxGb3IiLCJmb3IiXSxbImh0dHBFcXVpdiIsImh0dHAtZXF1aXYiXV0uZm9yRWFjaCgoZnVuY3Rpb24ocyl7dmFyIG89c1swXTskW29dPW5ldyB2KG8sMSwhMSxzWzFdLG51bGwsITEsITEpfSkpLFsiY29udGVudEVkaXRhYmxlIiwiZHJhZ2dhYmxlIiwic3BlbGxDaGVjayIsInZhbHVlIl0uZm9yRWFjaCgoZnVuY3Rpb24ocyl7JFtzXT1uZXcgdihzLDIsITEscy50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSkpLFsiYXV0b1JldmVyc2UiLCJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIiwiZm9jdXNhYmxlIiwicHJlc2VydmVBbHBoYSJdLmZvckVhY2goKGZ1bmN0aW9uKHMpeyRbc109bmV3IHYocywyLCExLHMsbnVsbCwhMSwhMSl9KSksImFsbG93RnVsbFNjcmVlbiBhc3luYyBhdXRvRm9jdXMgYXV0b1BsYXkgY29udHJvbHMgZGVmYXVsdCBkZWZlciBkaXNhYmxlZCBkaXNhYmxlUGljdHVyZUluUGljdHVyZSBkaXNhYmxlUmVtb3RlUGxheWJhY2sgZm9ybU5vVmFsaWRhdGUgaGlkZGVuIGxvb3Agbm9Nb2R1bGUgbm9WYWxpZGF0ZSBvcGVuIHBsYXlzSW5saW5lIHJlYWRPbmx5IHJlcXVpcmVkIHJldmVyc2VkIHNjb3BlZCBzZWFtbGVzcyBpdGVtU2NvcGUiLnNwbGl0KCIgIikuZm9yRWFjaCgoZnVuY3Rpb24ocyl7JFtzXT1uZXcgdihzLDMsITEscy50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSkpLFsiY2hlY2tlZCIsIm11bHRpcGxlIiwibXV0ZWQiLCJzZWxlY3RlZCJdLmZvckVhY2goKGZ1bmN0aW9uKHMpeyRbc109bmV3IHYocywzLCEwLHMsbnVsbCwhMSwhMSl9KSksWyJjYXB0dXJlIiwiZG93bmxvYWQiXS5mb3JFYWNoKChmdW5jdGlvbihzKXskW3NdPW5ldyB2KHMsNCwhMSxzLG51bGwsITEsITEpfSkpLFsiY29scyIsInJvd3MiLCJzaXplIiwic3BhbiJdLmZvckVhY2goKGZ1bmN0aW9uKHMpeyRbc109bmV3IHYocyw2LCExLHMsbnVsbCwhMSwhMSl9KSksWyJyb3dTcGFuIiwic3RhcnQiXS5mb3JFYWNoKChmdW5jdGlvbihzKXskW3NdPW5ldyB2KHMsNSwhMSxzLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KSk7dmFyIFY9L1tcLTpdKFthLXpdKS9nO2Z1bmN0aW9uIHNhKHMpe3JldHVybiBzWzFdLnRvVXBwZXJDYXNlKCl9ZnVuY3Rpb24gdGEocyxvLGksYSl7dmFyIHU9JC5oYXNPd25Qcm9wZXJ0eShvKT8kW29dOm51bGw7KG51bGwhPT11PzAhPT11LnR5cGU6YXx8ISgyPG8ubGVuZ3RoKXx8Im8iIT09b1swXSYmIk8iIT09b1swXXx8Im4iIT09b1sxXSYmIk4iIT09b1sxXSkmJihmdW5jdGlvbiBxYShzLG8saSxhKXtpZihudWxsPT1vfHxmdW5jdGlvbiBwYShzLG8saSxhKXtpZihudWxsIT09aSYmMD09PWkudHlwZSlyZXR1cm4hMTtzd2l0Y2godHlwZW9mIG8pe2Nhc2UiZnVuY3Rpb24iOmNhc2Uic3ltYm9sIjpyZXR1cm4hMDtjYXNlImJvb2xlYW4iOnJldHVybiFhJiYobnVsbCE9PWk/IWkuYWNjZXB0c0Jvb2xlYW5zOiJkYXRhLSIhPT0ocz1zLnRvTG93ZXJDYXNlKCkuc2xpY2UoMCw1KSkmJiJhcmlhLSIhPT1zKTtkZWZhdWx0OnJldHVybiExfX0ocyxvLGksYSkpcmV0dXJuITA7aWYoYSlyZXR1cm4hMTtpZihudWxsIT09aSlzd2l0Y2goaS50eXBlKXtjYXNlIDM6cmV0dXJuIW87Y2FzZSA0OnJldHVybiExPT09bztjYXNlIDU6cmV0dXJuIGlzTmFOKG8pO2Nhc2UgNjpyZXR1cm4gaXNOYU4obyl8fDE+b31yZXR1cm4hMX0obyxpLHUsYSkmJihpPW51bGwpLGF8fG51bGw9PT11P2Z1bmN0aW9uIG9hKHMpe3JldHVybiEhQy5jYWxsKEIscyl8fCFDLmNhbGwoTCxzKSYmKGoudGVzdChzKT9CW3NdPSEwOihMW3NdPSEwLCExKSl9KG8pJiYobnVsbD09PWk/cy5yZW1vdmVBdHRyaWJ1dGUobyk6cy5zZXRBdHRyaWJ1dGUobywiIitpKSk6dS5tdXN0VXNlUHJvcGVydHk/c1t1LnByb3BlcnR5TmFtZV09bnVsbD09PWk/MyE9PXUudHlwZSYmIiI6aToobz11LmF0dHJpYnV0ZU5hbWUsYT11LmF0dHJpYnV0ZU5hbWVzcGFjZSxudWxsPT09aT9zLnJlbW92ZUF0dHJpYnV0ZShvKTooaT0zPT09KHU9dS50eXBlKXx8ND09PXUmJiEwPT09aT8iIjoiIitpLGE/cy5zZXRBdHRyaWJ1dGVOUyhhLG8saSk6cy5zZXRBdHRyaWJ1dGUobyxpKSkpKX0iYWNjZW50LWhlaWdodCBhbGlnbm1lbnQtYmFzZWxpbmUgYXJhYmljLWZvcm0gYmFzZWxpbmUtc2hpZnQgY2FwLWhlaWdodCBjbGlwLXBhdGggY2xpcC1ydWxlIGNvbG9yLWludGVycG9sYXRpb24gY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIGNvbG9yLXByb2ZpbGUgY29sb3ItcmVuZGVyaW5nIGRvbWluYW50LWJhc2VsaW5lIGVuYWJsZS1iYWNrZ3JvdW5kIGZpbGwtb3BhY2l0eSBmaWxsLXJ1bGUgZmxvb2QtY29sb3IgZmxvb2Qtb3BhY2l0eSBmb250LWZhbWlseSBmb250LXNpemUgZm9udC1zaXplLWFkanVzdCBmb250LXN0cmV0Y2ggZm9udC1zdHlsZSBmb250LXZhcmlhbnQgZm9udC13ZWlnaHQgZ2x5cGgtbmFtZSBnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIGdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIGhvcml6LWFkdi14IGhvcml6LW9yaWdpbi14IGltYWdlLXJlbmRlcmluZyBsZXR0ZXItc3BhY2luZyBsaWdodGluZy1jb2xvciBtYXJrZXItZW5kIG1hcmtlci1taWQgbWFya2VyLXN0YXJ0IG92ZXJsaW5lLXBvc2l0aW9uIG92ZXJsaW5lLXRoaWNrbmVzcyBwYWludC1vcmRlciBwYW5vc2UtMSBwb2ludGVyLWV2ZW50cyByZW5kZXJpbmctaW50ZW50IHNoYXBlLXJlbmRlcmluZyBzdG9wLWNvbG9yIHN0b3Atb3BhY2l0eSBzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIHN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIHN0cm9rZS1kYXNoYXJyYXkgc3Ryb2tlLWRhc2hvZmZzZXQgc3Ryb2tlLWxpbmVjYXAgc3Ryb2tlLWxpbmVqb2luIHN0cm9rZS1taXRlcmxpbWl0IHN0cm9rZS1vcGFjaXR5IHN0cm9rZS13aWR0aCB0ZXh0LWFuY2hvciB0ZXh0LWRlY29yYXRpb24gdGV4dC1yZW5kZXJpbmcgdW5kZXJsaW5lLXBvc2l0aW9uIHVuZGVybGluZS10aGlja25lc3MgdW5pY29kZS1iaWRpIHVuaWNvZGUtcmFuZ2UgdW5pdHMtcGVyLWVtIHYtYWxwaGFiZXRpYyB2LWhhbmdpbmcgdi1pZGVvZ3JhcGhpYyB2LW1hdGhlbWF0aWNhbCB2ZWN0b3ItZWZmZWN0IHZlcnQtYWR2LXkgdmVydC1vcmlnaW4teCB2ZXJ0LW9yaWdpbi15IHdvcmQtc3BhY2luZyB3cml0aW5nLW1vZGUgeG1sbnM6eGxpbmsgeC1oZWlnaHQiLnNwbGl0KCIgIikuZm9yRWFjaCgoZnVuY3Rpb24ocyl7dmFyIG89cy5yZXBsYWNlKFYsc2EpOyRbb109bmV3IHYobywxLCExLHMsbnVsbCwhMSwhMSl9KSksInhsaW5rOmFjdHVhdGUgeGxpbms6YXJjcm9sZSB4bGluazpyb2xlIHhsaW5rOnNob3cgeGxpbms6dGl0bGUgeGxpbms6dHlwZSIuc3BsaXQoIiAiKS5mb3JFYWNoKChmdW5jdGlvbihzKXt2YXIgbz1zLnJlcGxhY2UoVixzYSk7JFtvXT1uZXcgdihvLDEsITEscywiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsITEsITEpfSkpLFsieG1sOmJhc2UiLCJ4bWw6bGFuZyIsInhtbDpzcGFjZSJdLmZvckVhY2goKGZ1bmN0aW9uKHMpe3ZhciBvPXMucmVwbGFjZShWLHNhKTskW29dPW5ldyB2KG8sMSwhMSxzLCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLCExLCExKX0pKSxbInRhYkluZGV4IiwiY3Jvc3NPcmlnaW4iXS5mb3JFYWNoKChmdW5jdGlvbihzKXskW3NdPW5ldyB2KHMsMSwhMSxzLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KSksJC54bGlua0hyZWY9bmV3IHYoInhsaW5rSHJlZiIsMSwhMSwieGxpbms6aHJlZiIsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCEwLCExKSxbInNyYyIsImhyZWYiLCJhY3Rpb24iLCJmb3JtQWN0aW9uIl0uZm9yRWFjaCgoZnVuY3Rpb24ocyl7JFtzXT1uZXcgdihzLDEsITEscy50b0xvd2VyQ2FzZSgpLG51bGwsITAsITApfSkpO3ZhciBVPWEuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQsej1TeW1ib2wuZm9yKCJyZWFjdC5lbGVtZW50IiksWT1TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKSxaPVN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50IiksZWU9U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSxpZT1TeW1ib2wuZm9yKCJyZWFjdC5wcm9maWxlciIpLGFlPVN5bWJvbC5mb3IoInJlYWN0LnByb3ZpZGVyIiksY2U9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLGxlPVN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIikscGU9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKSxkZT1TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZV9saXN0IiksZmU9U3ltYm9sLmZvcigicmVhY3QubWVtbyIpLHllPVN5bWJvbC5mb3IoInJlYWN0LmxhenkiKTtTeW1ib2wuZm9yKCJyZWFjdC5zY29wZSIpLFN5bWJvbC5mb3IoInJlYWN0LmRlYnVnX3RyYWNlX21vZGUiKTt2YXIgYmU9U3ltYm9sLmZvcigicmVhY3Qub2Zmc2NyZWVuIik7U3ltYm9sLmZvcigicmVhY3QubGVnYWN5X2hpZGRlbiIpLFN5bWJvbC5mb3IoInJlYWN0LmNhY2hlIiksU3ltYm9sLmZvcigicmVhY3QudHJhY2luZ19tYXJrZXIiKTt2YXIgX2U9U3ltYm9sLml0ZXJhdG9yO2Z1bmN0aW9uIEthKHMpe3JldHVybiBudWxsPT09c3x8Im9iamVjdCIhPXR5cGVvZiBzP251bGw6ImZ1bmN0aW9uIj09dHlwZW9mKHM9X2UmJnNbX2VdfHxzWyJAQGl0ZXJhdG9yIl0pP3M6bnVsbH12YXIgU2Usd2U9T2JqZWN0LmFzc2lnbjtmdW5jdGlvbiBNYShzKXtpZih2b2lkIDA9PT1TZSl0cnl7dGhyb3cgRXJyb3IoKX1jYXRjaChzKXt2YXIgbz1zLnN0YWNrLnRyaW0oKS5tYXRjaCgvXG4oICooYXQgKT8pLyk7U2U9byYmb1sxXXx8IiJ9cmV0dXJuIlxuIitTZStzfXZhciB4ZT0hMTtmdW5jdGlvbiBPYShzLG8pe2lmKCFzfHx4ZSlyZXR1cm4iIjt4ZT0hMDt2YXIgaT1FcnJvci5wcmVwYXJlU3RhY2tUcmFjZTtFcnJvci5wcmVwYXJlU3RhY2tUcmFjZT12b2lkIDA7dHJ5e2lmKG8paWYobz1mdW5jdGlvbigpe3Rocm93IEVycm9yKCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLnByb3RvdHlwZSwicHJvcHMiLHtzZXQ6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpfX0pLCJvYmplY3QiPT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5jb25zdHJ1Y3Qpe3RyeXtSZWZsZWN0LmNvbnN0cnVjdChvLFtdKX1jYXRjaChzKXt2YXIgYT1zfVJlZmxlY3QuY29uc3RydWN0KHMsW10sbyl9ZWxzZXt0cnl7by5jYWxsKCl9Y2F0Y2gocyl7YT1zfXMuY2FsbChvLnByb3RvdHlwZSl9ZWxzZXt0cnl7dGhyb3cgRXJyb3IoKX1jYXRjaChzKXthPXN9cygpfX1jYXRjaChvKXtpZihvJiZhJiYic3RyaW5nIj09dHlwZW9mIG8uc3RhY2spe2Zvcih2YXIgdT1vLnN0YWNrLnNwbGl0KCJcbiIpLF89YS5zdGFjay5zcGxpdCgiXG4iKSx3PXUubGVuZ3RoLTEseD1fLmxlbmd0aC0xOzE8PXcmJjA8PXgmJnVbd10hPT1fW3hdOyl4LS07Zm9yKDsxPD13JiYwPD14O3ctLSx4LS0paWYodVt3XSE9PV9beF0pe2lmKDEhPT13fHwxIT09eClkb3tpZih3LS0sMD4tLXh8fHVbd10hPT1fW3hdKXt2YXIgQz0iXG4iK3Vbd10ucmVwbGFjZSgiIGF0IG5ldyAiLCIgYXQgIik7cmV0dXJuIHMuZGlzcGxheU5hbWUmJkMuaW5jbHVkZXMoIjxhbm9ueW1vdXM+IikmJihDPUMucmVwbGFjZSgiPGFub255bW91cz4iLHMuZGlzcGxheU5hbWUpKSxDfX13aGlsZSgxPD13JiYwPD14KTticmVha319fWZpbmFsbHl7eGU9ITEsRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U9aX1yZXR1cm4ocz1zP3MuZGlzcGxheU5hbWV8fHMubmFtZToiIik/TWEocyk6IiJ9ZnVuY3Rpb24gUGEocyl7c3dpdGNoKHMudGFnKXtjYXNlIDU6cmV0dXJuIE1hKHMudHlwZSk7Y2FzZSAxNjpyZXR1cm4gTWEoIkxhenkiKTtjYXNlIDEzOnJldHVybiBNYSgiU3VzcGVuc2UiKTtjYXNlIDE5OnJldHVybiBNYSgiU3VzcGVuc2VMaXN0Iik7Y2FzZSAwOmNhc2UgMjpjYXNlIDE1OnJldHVybiBzPU9hKHMudHlwZSwhMSk7Y2FzZSAxMTpyZXR1cm4gcz1PYShzLnR5cGUucmVuZGVyLCExKTtjYXNlIDE6cmV0dXJuIHM9T2Eocy50eXBlLCEwKTtkZWZhdWx0OnJldHVybiIifX1mdW5jdGlvbiBRYShzKXtpZihudWxsPT1zKXJldHVybiBudWxsO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBzKXJldHVybiBzLmRpc3BsYXlOYW1lfHxzLm5hbWV8fG51bGw7aWYoInN0cmluZyI9PXR5cGVvZiBzKXJldHVybiBzO3N3aXRjaChzKXtjYXNlIFo6cmV0dXJuIkZyYWdtZW50IjtjYXNlIFk6cmV0dXJuIlBvcnRhbCI7Y2FzZSBpZTpyZXR1cm4iUHJvZmlsZXIiO2Nhc2UgZWU6cmV0dXJuIlN0cmljdE1vZGUiO2Nhc2UgcGU6cmV0dXJuIlN1c3BlbnNlIjtjYXNlIGRlOnJldHVybiJTdXNwZW5zZUxpc3QifWlmKCJvYmplY3QiPT10eXBlb2Ygcylzd2l0Y2gocy4kJHR5cGVvZil7Y2FzZSBjZTpyZXR1cm4ocy5kaXNwbGF5TmFtZXx8IkNvbnRleHQiKSsiLkNvbnN1bWVyIjtjYXNlIGFlOnJldHVybihzLl9jb250ZXh0LmRpc3BsYXlOYW1lfHwiQ29udGV4dCIpKyIuUHJvdmlkZXIiO2Nhc2UgbGU6dmFyIG89cy5yZW5kZXI7cmV0dXJuKHM9cy5kaXNwbGF5TmFtZSl8fChzPSIiIT09KHM9by5kaXNwbGF5TmFtZXx8by5uYW1lfHwiIik/IkZvcndhcmRSZWYoIitzKyIpIjoiRm9yd2FyZFJlZiIpLHM7Y2FzZSBmZTpyZXR1cm4gbnVsbCE9PShvPXMuZGlzcGxheU5hbWV8fG51bGwpP286UWEocy50eXBlKXx8Ik1lbW8iO2Nhc2UgeWU6bz1zLl9wYXlsb2FkLHM9cy5faW5pdDt0cnl7cmV0dXJuIFFhKHMobykpfWNhdGNoKHMpe319cmV0dXJuIG51bGx9ZnVuY3Rpb24gUmEocyl7dmFyIG89cy50eXBlO3N3aXRjaChzLnRhZyl7Y2FzZSAyNDpyZXR1cm4iQ2FjaGUiO2Nhc2UgOTpyZXR1cm4oby5kaXNwbGF5TmFtZXx8IkNvbnRleHQiKSsiLkNvbnN1bWVyIjtjYXNlIDEwOnJldHVybihvLl9jb250ZXh0LmRpc3BsYXlOYW1lfHwiQ29udGV4dCIpKyIuUHJvdmlkZXIiO2Nhc2UgMTg6cmV0dXJuIkRlaHlkcmF0ZWRGcmFnbWVudCI7Y2FzZSAxMTpyZXR1cm4gcz0ocz1vLnJlbmRlcikuZGlzcGxheU5hbWV8fHMubmFtZXx8IiIsby5kaXNwbGF5TmFtZXx8KCIiIT09cz8iRm9yd2FyZFJlZigiK3MrIikiOiJGb3J3YXJkUmVmIik7Y2FzZSA3OnJldHVybiJGcmFnbWVudCI7Y2FzZSA1OnJldHVybiBvO2Nhc2UgNDpyZXR1cm4iUG9ydGFsIjtjYXNlIDM6cmV0dXJuIlJvb3QiO2Nhc2UgNjpyZXR1cm4iVGV4dCI7Y2FzZSAxNjpyZXR1cm4gUWEobyk7Y2FzZSA4OnJldHVybiBvPT09ZWU/IlN0cmljdE1vZGUiOiJNb2RlIjtjYXNlIDIyOnJldHVybiJPZmZzY3JlZW4iO2Nhc2UgMTI6cmV0dXJuIlByb2ZpbGVyIjtjYXNlIDIxOnJldHVybiJTY29wZSI7Y2FzZSAxMzpyZXR1cm4iU3VzcGVuc2UiO2Nhc2UgMTk6cmV0dXJuIlN1c3BlbnNlTGlzdCI7Y2FzZSAyNTpyZXR1cm4iVHJhY2luZ01hcmtlciI7Y2FzZSAxOmNhc2UgMDpjYXNlIDE3OmNhc2UgMjpjYXNlIDE0OmNhc2UgMTU6aWYoImZ1bmN0aW9uIj09dHlwZW9mIG8pcmV0dXJuIG8uZGlzcGxheU5hbWV8fG8ubmFtZXx8bnVsbDtpZigic3RyaW5nIj09dHlwZW9mIG8pcmV0dXJuIG99cmV0dXJuIG51bGx9ZnVuY3Rpb24gU2Eocyl7c3dpdGNoKHR5cGVvZiBzKXtjYXNlImJvb2xlYW4iOmNhc2UibnVtYmVyIjpjYXNlInN0cmluZyI6Y2FzZSJ1bmRlZmluZWQiOmNhc2Uib2JqZWN0IjpyZXR1cm4gcztkZWZhdWx0OnJldHVybiIifX1mdW5jdGlvbiBUYShzKXt2YXIgbz1zLnR5cGU7cmV0dXJuKHM9cy5ub2RlTmFtZSkmJiJpbnB1dCI9PT1zLnRvTG93ZXJDYXNlKCkmJigiY2hlY2tib3giPT09b3x8InJhZGlvIj09PW8pfWZ1bmN0aW9uIFZhKHMpe3MuX3ZhbHVlVHJhY2tlcnx8KHMuX3ZhbHVlVHJhY2tlcj1mdW5jdGlvbiBVYShzKXt2YXIgbz1UYShzKT8iY2hlY2tlZCI6InZhbHVlIixpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iocy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsbyksYT0iIitzW29dO2lmKCFzLmhhc093blByb3BlcnR5KG8pJiZ2b2lkIDAhPT1pJiYiZnVuY3Rpb24iPT10eXBlb2YgaS5nZXQmJiJmdW5jdGlvbiI9PXR5cGVvZiBpLnNldCl7dmFyIHU9aS5nZXQsXz1pLnNldDtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsbyx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB1LmNhbGwodGhpcyl9LHNldDpmdW5jdGlvbihzKXthPSIiK3MsXy5jYWxsKHRoaXMscyl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsbyx7ZW51bWVyYWJsZTppLmVudW1lcmFibGV9KSx7Z2V0VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sc2V0VmFsdWU6ZnVuY3Rpb24ocyl7YT0iIitzfSxzdG9wVHJhY2tpbmc6ZnVuY3Rpb24oKXtzLl92YWx1ZVRyYWNrZXI9bnVsbCxkZWxldGUgc1tvXX19fX0ocykpfWZ1bmN0aW9uIFdhKHMpe2lmKCFzKXJldHVybiExO3ZhciBvPXMuX3ZhbHVlVHJhY2tlcjtpZighbylyZXR1cm4hMDt2YXIgaT1vLmdldFZhbHVlKCksYT0iIjtyZXR1cm4gcyYmKGE9VGEocyk/cy5jaGVja2VkPyJ0cnVlIjoiZmFsc2UiOnMudmFsdWUpLChzPWEpIT09aSYmKG8uc2V0VmFsdWUocyksITApfWZ1bmN0aW9uIFhhKHMpe2lmKHZvaWQgMD09PShzPXN8fCgidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50OnZvaWQgMCkpKXJldHVybiBudWxsO3RyeXtyZXR1cm4gcy5hY3RpdmVFbGVtZW50fHxzLmJvZHl9Y2F0Y2gobyl7cmV0dXJuIHMuYm9keX19ZnVuY3Rpb24gWWEocyxvKXt2YXIgaT1vLmNoZWNrZWQ7cmV0dXJuIHdlKHt9LG8se2RlZmF1bHRDaGVja2VkOnZvaWQgMCxkZWZhdWx0VmFsdWU6dm9pZCAwLHZhbHVlOnZvaWQgMCxjaGVja2VkOm51bGwhPWk/aTpzLl93cmFwcGVyU3RhdGUuaW5pdGlhbENoZWNrZWR9KX1mdW5jdGlvbiBaYShzLG8pe3ZhciBpPW51bGw9PW8uZGVmYXVsdFZhbHVlPyIiOm8uZGVmYXVsdFZhbHVlLGE9bnVsbCE9by5jaGVja2VkP28uY2hlY2tlZDpvLmRlZmF1bHRDaGVja2VkO2k9U2EobnVsbCE9by52YWx1ZT9vLnZhbHVlOmkpLHMuX3dyYXBwZXJTdGF0ZT17aW5pdGlhbENoZWNrZWQ6YSxpbml0aWFsVmFsdWU6aSxjb250cm9sbGVkOiJjaGVja2JveCI9PT1vLnR5cGV8fCJyYWRpbyI9PT1vLnR5cGU/bnVsbCE9by5jaGVja2VkOm51bGwhPW8udmFsdWV9fWZ1bmN0aW9uIGFiKHMsbyl7bnVsbCE9KG89by5jaGVja2VkKSYmdGEocywiY2hlY2tlZCIsbywhMSl9ZnVuY3Rpb24gYmIocyxvKXthYihzLG8pO3ZhciBpPVNhKG8udmFsdWUpLGE9by50eXBlO2lmKG51bGwhPWkpIm51bWJlciI9PT1hPygwPT09aSYmIiI9PT1zLnZhbHVlfHxzLnZhbHVlIT1pKSYmKHMudmFsdWU9IiIraSk6cy52YWx1ZSE9PSIiK2kmJihzLnZhbHVlPSIiK2kpO2Vsc2UgaWYoInN1Ym1pdCI9PT1hfHwicmVzZXQiPT09YSlyZXR1cm4gdm9pZCBzLnJlbW92ZUF0dHJpYnV0ZSgidmFsdWUiKTtvLmhhc093blByb3BlcnR5KCJ2YWx1ZSIpP2NiKHMsby50eXBlLGkpOm8uaGFzT3duUHJvcGVydHkoImRlZmF1bHRWYWx1ZSIpJiZjYihzLG8udHlwZSxTYShvLmRlZmF1bHRWYWx1ZSkpLG51bGw9PW8uY2hlY2tlZCYmbnVsbCE9by5kZWZhdWx0Q2hlY2tlZCYmKHMuZGVmYXVsdENoZWNrZWQ9ISFvLmRlZmF1bHRDaGVja2VkKX1mdW5jdGlvbiBkYihzLG8saSl7aWYoby5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKXx8by5oYXNPd25Qcm9wZXJ0eSgiZGVmYXVsdFZhbHVlIikpe3ZhciBhPW8udHlwZTtpZighKCJzdWJtaXQiIT09YSYmInJlc2V0IiE9PWF8fHZvaWQgMCE9PW8udmFsdWUmJm51bGwhPT1vLnZhbHVlKSlyZXR1cm47bz0iIitzLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlLGl8fG89PT1zLnZhbHVlfHwocy52YWx1ZT1vKSxzLmRlZmF1bHRWYWx1ZT1vfSIiIT09KGk9cy5uYW1lKSYmKHMubmFtZT0iIikscy5kZWZhdWx0Q2hlY2tlZD0hIXMuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZCwiIiE9PWkmJihzLm5hbWU9aSl9ZnVuY3Rpb24gY2IocyxvLGkpeyJudW1iZXIiPT09byYmWGEocy5vd25lckRvY3VtZW50KT09PXN8fChudWxsPT1pP3MuZGVmYXVsdFZhbHVlPSIiK3MuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWU6cy5kZWZhdWx0VmFsdWUhPT0iIitpJiYocy5kZWZhdWx0VmFsdWU9IiIraSkpfXZhciBQZT1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIGZiKHMsbyxpLGEpe2lmKHM9cy5vcHRpb25zLG8pe289e307Zm9yKHZhciB1PTA7dTxpLmxlbmd0aDt1Kyspb1siJCIraVt1XV09ITA7Zm9yKGk9MDtpPHMubGVuZ3RoO2krKyl1PW8uaGFzT3duUHJvcGVydHkoIiQiK3NbaV0udmFsdWUpLHNbaV0uc2VsZWN0ZWQhPT11JiYoc1tpXS5zZWxlY3RlZD11KSx1JiZhJiYoc1tpXS5kZWZhdWx0U2VsZWN0ZWQ9ITApfWVsc2V7Zm9yKGk9IiIrU2EoaSksbz1udWxsLHU9MDt1PHMubGVuZ3RoO3UrKyl7aWYoc1t1XS52YWx1ZT09PWkpcmV0dXJuIHNbdV0uc2VsZWN0ZWQ9ITAsdm9pZChhJiYoc1t1XS5kZWZhdWx0U2VsZWN0ZWQ9ITApKTtudWxsIT09b3x8c1t1XS5kaXNhYmxlZHx8KG89c1t1XSl9bnVsbCE9PW8mJihvLnNlbGVjdGVkPSEwKX19ZnVuY3Rpb24gZ2IocyxvKXtpZihudWxsIT1vLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKXRocm93IEVycm9yKHAoOTEpKTtyZXR1cm4gd2Uoe30sbyx7dmFsdWU6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsY2hpbGRyZW46IiIrcy5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZX0pfWZ1bmN0aW9uIGhiKHMsbyl7dmFyIGk9by52YWx1ZTtpZihudWxsPT1pKXtpZihpPW8uY2hpbGRyZW4sbz1vLmRlZmF1bHRWYWx1ZSxudWxsIT1pKXtpZihudWxsIT1vKXRocm93IEVycm9yKHAoOTIpKTtpZihQZShpKSl7aWYoMTxpLmxlbmd0aCl0aHJvdyBFcnJvcihwKDkzKSk7aT1pWzBdfW89aX1udWxsPT1vJiYobz0iIiksaT1vfXMuX3dyYXBwZXJTdGF0ZT17aW5pdGlhbFZhbHVlOlNhKGkpfX1mdW5jdGlvbiBpYihzLG8pe3ZhciBpPVNhKG8udmFsdWUpLGE9U2Eoby5kZWZhdWx0VmFsdWUpO251bGwhPWkmJigoaT0iIitpKSE9PXMudmFsdWUmJihzLnZhbHVlPWkpLG51bGw9PW8uZGVmYXVsdFZhbHVlJiZzLmRlZmF1bHRWYWx1ZSE9PWkmJihzLmRlZmF1bHRWYWx1ZT1pKSksbnVsbCE9YSYmKHMuZGVmYXVsdFZhbHVlPSIiK2EpfWZ1bmN0aW9uIGpiKHMpe3ZhciBvPXMudGV4dENvbnRlbnQ7bz09PXMuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUmJiIiIT09byYmbnVsbCE9PW8mJihzLnZhbHVlPW8pfWZ1bmN0aW9uIGtiKHMpe3N3aXRjaChzKXtjYXNlInN2ZyI6cmV0dXJuImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjtjYXNlIm1hdGgiOnJldHVybiJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIjtkZWZhdWx0OnJldHVybiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIn19ZnVuY3Rpb24gbGIocyxvKXtyZXR1cm4gbnVsbD09c3x8Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPT09cz9rYihvKToiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPT09cyYmImZvcmVpZ25PYmplY3QiPT09bz8iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI6c312YXIgVGUsUmUsJGU9KFJlPWZ1bmN0aW9uKHMsbyl7aWYoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiE9PXMubmFtZXNwYWNlVVJJfHwiaW5uZXJIVE1MImluIHMpcy5pbm5lckhUTUw9bztlbHNle2ZvcigoVGU9VGV8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5pbm5lckhUTUw9Ijxzdmc+IitvLnZhbHVlT2YoKS50b1N0cmluZygpKyI8L3N2Zz4iLG89VGUuZmlyc3RDaGlsZDtzLmZpcnN0Q2hpbGQ7KXMucmVtb3ZlQ2hpbGQocy5maXJzdENoaWxkKTtmb3IoO28uZmlyc3RDaGlsZDspcy5hcHBlbmRDaGlsZChvLmZpcnN0Q2hpbGQpfX0sInVuZGVmaW5lZCIhPXR5cGVvZiBNU0FwcCYmTVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24/ZnVuY3Rpb24ocyxvLGksYSl7TVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24oKGZ1bmN0aW9uKCl7cmV0dXJuIFJlKHMsbyl9KSl9OlJlKTtmdW5jdGlvbiBvYihzLG8pe2lmKG8pe3ZhciBpPXMuZmlyc3RDaGlsZDtpZihpJiZpPT09cy5sYXN0Q2hpbGQmJjM9PT1pLm5vZGVUeXBlKXJldHVybiB2b2lkKGkubm9kZVZhbHVlPW8pfXMudGV4dENvbnRlbnQ9b312YXIgcWU9e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiEwLGFzcGVjdFJhdGlvOiEwLGJvcmRlckltYWdlT3V0c2V0OiEwLGJvcmRlckltYWdlU2xpY2U6ITAsYm9yZGVySW1hZ2VXaWR0aDohMCxib3hGbGV4OiEwLGJveEZsZXhHcm91cDohMCxib3hPcmRpbmFsR3JvdXA6ITAsY29sdW1uQ291bnQ6ITAsY29sdW1uczohMCxmbGV4OiEwLGZsZXhHcm93OiEwLGZsZXhQb3NpdGl2ZTohMCxmbGV4U2hyaW5rOiEwLGZsZXhOZWdhdGl2ZTohMCxmbGV4T3JkZXI6ITAsZ3JpZEFyZWE6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLGdyaWRSb3dTcGFuOiEwLGdyaWRSb3dTdGFydDohMCxncmlkQ29sdW1uOiEwLGdyaWRDb2x1bW5FbmQ6ITAsZ3JpZENvbHVtblNwYW46ITAsZ3JpZENvbHVtblN0YXJ0OiEwLGZvbnRXZWlnaHQ6ITAsbGluZUNsYW1wOiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHRhYlNpemU6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwLGZpbGxPcGFjaXR5OiEwLGZsb29kT3BhY2l0eTohMCxzdG9wT3BhY2l0eTohMCxzdHJva2VEYXNoYXJyYXk6ITAsc3Ryb2tlRGFzaG9mZnNldDohMCxzdHJva2VNaXRlcmxpbWl0OiEwLHN0cm9rZU9wYWNpdHk6ITAsc3Ryb2tlV2lkdGg6ITB9LHplPVsiV2Via2l0IiwibXMiLCJNb3oiLCJPIl07ZnVuY3Rpb24gcmIocyxvLGkpe3JldHVybiBudWxsPT1vfHwiYm9vbGVhbiI9PXR5cGVvZiBvfHwiIj09PW8/IiI6aXx8Im51bWJlciIhPXR5cGVvZiBvfHwwPT09b3x8cWUuaGFzT3duUHJvcGVydHkocykmJnFlW3NdPygiIitvKS50cmltKCk6bysicHgifWZ1bmN0aW9uIHNiKHMsbyl7Zm9yKHZhciBpIGluIHM9cy5zdHlsZSxvKWlmKG8uaGFzT3duUHJvcGVydHkoaSkpe3ZhciBhPTA9PT1pLmluZGV4T2YoIi0tIiksdT1yYihpLG9baV0sYSk7ImZsb2F0Ij09PWkmJihpPSJjc3NGbG9hdCIpLGE/cy5zZXRQcm9wZXJ0eShpLHUpOnNbaV09dX19T2JqZWN0LmtleXMocWUpLmZvckVhY2goKGZ1bmN0aW9uKHMpe3plLmZvckVhY2goKGZ1bmN0aW9uKG8pe289bytzLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Muc3Vic3RyaW5nKDEpLHFlW29dPXFlW3NdfSkpfSkpO3ZhciBXZT13ZSh7bWVudWl0ZW06ITB9LHthcmVhOiEwLGJhc2U6ITAsYnI6ITAsY29sOiEwLGVtYmVkOiEwLGhyOiEwLGltZzohMCxpbnB1dDohMCxrZXlnZW46ITAsbGluazohMCxtZXRhOiEwLHBhcmFtOiEwLHNvdXJjZTohMCx0cmFjazohMCx3YnI6ITB9KTtmdW5jdGlvbiB1YihzLG8pe2lmKG8pe2lmKFdlW3NdJiYobnVsbCE9by5jaGlsZHJlbnx8bnVsbCE9by5kYW5nZXJvdXNseVNldElubmVySFRNTCkpdGhyb3cgRXJyb3IocCgxMzcscykpO2lmKG51bGwhPW8uZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpe2lmKG51bGwhPW8uY2hpbGRyZW4pdGhyb3cgRXJyb3IocCg2MCkpO2lmKCJvYmplY3QiIT10eXBlb2Ygby5kYW5nZXJvdXNseVNldElubmVySFRNTHx8ISgiX19odG1sImluIG8uZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpKXRocm93IEVycm9yKHAoNjEpKX1pZihudWxsIT1vLnN0eWxlJiYib2JqZWN0IiE9dHlwZW9mIG8uc3R5bGUpdGhyb3cgRXJyb3IocCg2MikpfX1mdW5jdGlvbiB2YihzLG8pe2lmKC0xPT09cy5pbmRleE9mKCItIikpcmV0dXJuInN0cmluZyI9PXR5cGVvZiBvLmlzO3N3aXRjaChzKXtjYXNlImFubm90YXRpb24teG1sIjpjYXNlImNvbG9yLXByb2ZpbGUiOmNhc2UiZm9udC1mYWNlIjpjYXNlImZvbnQtZmFjZS1zcmMiOmNhc2UiZm9udC1mYWNlLXVyaSI6Y2FzZSJmb250LWZhY2UtZm9ybWF0IjpjYXNlImZvbnQtZmFjZS1uYW1lIjpjYXNlIm1pc3NpbmctZ2x5cGgiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fXZhciBIZT1udWxsO2Z1bmN0aW9uIHhiKHMpe3JldHVybihzPXMudGFyZ2V0fHxzLnNyY0VsZW1lbnR8fHdpbmRvdykuY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQmJihzPXMuY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQpLDM9PT1zLm5vZGVUeXBlP3MucGFyZW50Tm9kZTpzfXZhciBZZT1udWxsLFhlPW51bGwsUWU9bnVsbDtmdW5jdGlvbiBCYihzKXtpZihzPUNiKHMpKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgWWUpdGhyb3cgRXJyb3IocCgyODApKTt2YXIgbz1zLnN0YXRlTm9kZTtvJiYobz1EYihvKSxZZShzLnN0YXRlTm9kZSxzLnR5cGUsbykpfX1mdW5jdGlvbiBFYihzKXtYZT9RZT9RZS5wdXNoKHMpOlFlPVtzXTpYZT1zfWZ1bmN0aW9uIEZiKCl7aWYoWGUpe3ZhciBzPVhlLG89UWU7aWYoUWU9WGU9bnVsbCxCYihzKSxvKWZvcihzPTA7czxvLmxlbmd0aDtzKyspQmIob1tzXSl9fWZ1bmN0aW9uIEdiKHMsbyl7cmV0dXJuIHMobyl9ZnVuY3Rpb24gSGIoKXt9dmFyIGV0PSExO2Z1bmN0aW9uIEpiKHMsbyxpKXtpZihldClyZXR1cm4gcyhvLGkpO2V0PSEwO3RyeXtyZXR1cm4gR2IocyxvLGkpfWZpbmFsbHl7ZXQ9ITEsKG51bGwhPT1YZXx8bnVsbCE9PVFlKSYmKEhiKCksRmIoKSl9fWZ1bmN0aW9uIEtiKHMsbyl7dmFyIGk9cy5zdGF0ZU5vZGU7aWYobnVsbD09PWkpcmV0dXJuIG51bGw7dmFyIGE9RGIoaSk7aWYobnVsbD09PWEpcmV0dXJuIG51bGw7aT1hW29dO2U6c3dpdGNoKG8pe2Nhc2Uib25DbGljayI6Y2FzZSJvbkNsaWNrQ2FwdHVyZSI6Y2FzZSJvbkRvdWJsZUNsaWNrIjpjYXNlIm9uRG91YmxlQ2xpY2tDYXB0dXJlIjpjYXNlIm9uTW91c2VEb3duIjpjYXNlIm9uTW91c2VEb3duQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlTW92ZSI6Y2FzZSJvbk1vdXNlTW92ZUNhcHR1cmUiOmNhc2Uib25Nb3VzZVVwIjpjYXNlIm9uTW91c2VVcENhcHR1cmUiOmNhc2Uib25Nb3VzZUVudGVyIjooYT0hYS5kaXNhYmxlZCl8fChhPSEoImJ1dHRvbiI9PT0ocz1zLnR5cGUpfHwiaW5wdXQiPT09c3x8InNlbGVjdCI9PT1zfHwidGV4dGFyZWEiPT09cykpLHM9IWE7YnJlYWsgZTtkZWZhdWx0OnM9ITF9aWYocylyZXR1cm4gbnVsbDtpZihpJiYiZnVuY3Rpb24iIT10eXBlb2YgaSl0aHJvdyBFcnJvcihwKDIzMSxvLHR5cGVvZiBpKSk7cmV0dXJuIGl9dmFyIHR0PSExO2lmKHgpdHJ5e3ZhciBydD17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkocnQsInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXt0dD0hMH19KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIscnQscnQpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixydCxydCl9Y2F0Y2goUmUpe3R0PSExfWZ1bmN0aW9uIE5iKHMsbyxpLGEsdSxfLHcseCxDKXt2YXIgaj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMyk7dHJ5e28uYXBwbHkoaSxqKX1jYXRjaChzKXt0aGlzLm9uRXJyb3Iocyl9fXZhciBudD0hMSxzdD1udWxsLG90PSExLGl0PW51bGwsYXQ9e29uRXJyb3I6ZnVuY3Rpb24ocyl7bnQ9ITAsc3Q9c319O2Z1bmN0aW9uIFRiKHMsbyxpLGEsdSxfLHcseCxDKXtudD0hMSxzdD1udWxsLE5iLmFwcGx5KGF0LGFyZ3VtZW50cyl9ZnVuY3Rpb24gVmIocyl7dmFyIG89cyxpPXM7aWYocy5hbHRlcm5hdGUpZm9yKDtvLnJldHVybjspbz1vLnJldHVybjtlbHNle3M9bztkb3shISg0MDk4JihvPXMpLmZsYWdzKSYmKGk9by5yZXR1cm4pLHM9by5yZXR1cm59d2hpbGUocyl9cmV0dXJuIDM9PT1vLnRhZz9pOm51bGx9ZnVuY3Rpb24gV2Iocyl7aWYoMTM9PT1zLnRhZyl7dmFyIG89cy5tZW1vaXplZFN0YXRlO2lmKG51bGw9PT1vJiYobnVsbCE9PShzPXMuYWx0ZXJuYXRlKSYmKG89cy5tZW1vaXplZFN0YXRlKSksbnVsbCE9PW8pcmV0dXJuIG8uZGVoeWRyYXRlZH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBYYihzKXtpZihWYihzKSE9PXMpdGhyb3cgRXJyb3IocCgxODgpKX1mdW5jdGlvbiBaYihzKXtyZXR1cm4gbnVsbCE9PShzPWZ1bmN0aW9uIFliKHMpe3ZhciBvPXMuYWx0ZXJuYXRlO2lmKCFvKXtpZihudWxsPT09KG89VmIocykpKXRocm93IEVycm9yKHAoMTg4KSk7cmV0dXJuIG8hPT1zP251bGw6c31mb3IodmFyIGk9cyxhPW87Oyl7dmFyIHU9aS5yZXR1cm47aWYobnVsbD09PXUpYnJlYWs7dmFyIF89dS5hbHRlcm5hdGU7aWYobnVsbD09PV8pe2lmKG51bGwhPT0oYT11LnJldHVybikpe2k9YTtjb250aW51ZX1icmVha31pZih1LmNoaWxkPT09Xy5jaGlsZCl7Zm9yKF89dS5jaGlsZDtfOyl7aWYoXz09PWkpcmV0dXJuIFhiKHUpLHM7aWYoXz09PWEpcmV0dXJuIFhiKHUpLG87Xz1fLnNpYmxpbmd9dGhyb3cgRXJyb3IocCgxODgpKX1pZihpLnJldHVybiE9PWEucmV0dXJuKWk9dSxhPV87ZWxzZXtmb3IodmFyIHc9ITEseD11LmNoaWxkO3g7KXtpZih4PT09aSl7dz0hMCxpPXUsYT1fO2JyZWFrfWlmKHg9PT1hKXt3PSEwLGE9dSxpPV87YnJlYWt9eD14LnNpYmxpbmd9aWYoIXcpe2Zvcih4PV8uY2hpbGQ7eDspe2lmKHg9PT1pKXt3PSEwLGk9XyxhPXU7YnJlYWt9aWYoeD09PWEpe3c9ITAsYT1fLGk9dTticmVha314PXguc2libGluZ31pZighdyl0aHJvdyBFcnJvcihwKDE4OSkpfX1pZihpLmFsdGVybmF0ZSE9PWEpdGhyb3cgRXJyb3IocCgxOTApKX1pZigzIT09aS50YWcpdGhyb3cgRXJyb3IocCgxODgpKTtyZXR1cm4gaS5zdGF0ZU5vZGUuY3VycmVudD09PWk/czpvfShzKSk/JGIocyk6bnVsbH1mdW5jdGlvbiAkYihzKXtpZig1PT09cy50YWd8fDY9PT1zLnRhZylyZXR1cm4gcztmb3Iocz1zLmNoaWxkO251bGwhPT1zOyl7dmFyIG89JGIocyk7aWYobnVsbCE9PW8pcmV0dXJuIG87cz1zLnNpYmxpbmd9cmV0dXJuIG51bGx9dmFyIGN0PXUudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayxsdD11LnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrLHV0PXUudW5zdGFibGVfc2hvdWxkWWllbGQscHQ9dS51bnN0YWJsZV9yZXF1ZXN0UGFpbnQsaHQ9dS51bnN0YWJsZV9ub3csZHQ9dS51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbCxtdD11LnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5LGd0PXUudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHkseXQ9dS51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSx2dD11LnVuc3RhYmxlX0xvd1ByaW9yaXR5LGJ0PXUudW5zdGFibGVfSWRsZVByaW9yaXR5LF90PW51bGwsU3Q9bnVsbDt2YXIgRXQ9TWF0aC5jbHozMj9NYXRoLmNsejMyOmZ1bmN0aW9uIG5jKHMpe3JldHVybiBzPj4+PTAsMD09PXM/MzI6MzEtKHd0KHMpL3h0fDApfDB9LHd0PU1hdGgubG9nLHh0PU1hdGguTE4yO3ZhciBrdD02NCxPdD00MTk0MzA0O2Z1bmN0aW9uIHRjKHMpe3N3aXRjaChzJi1zKXtjYXNlIDE6cmV0dXJuIDE7Y2FzZSAyOnJldHVybiAyO2Nhc2UgNDpyZXR1cm4gNDtjYXNlIDg6cmV0dXJuIDg7Y2FzZSAxNjpyZXR1cm4gMTY7Y2FzZSAzMjpyZXR1cm4gMzI7Y2FzZSA2NDpjYXNlIDEyODpjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpyZXR1cm4gNDE5NDI0MCZzO2Nhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAxNjc3NzIxNjpjYXNlIDMzNTU0NDMyOmNhc2UgNjcxMDg4NjQ6cmV0dXJuIDEzMDAyMzQyNCZzO2Nhc2UgMTM0MjE3NzI4OnJldHVybiAxMzQyMTc3Mjg7Y2FzZSAyNjg0MzU0NTY6cmV0dXJuIDI2ODQzNTQ1NjtjYXNlIDUzNjg3MDkxMjpyZXR1cm4gNTM2ODcwOTEyO2Nhc2UgMTA3Mzc0MTgyNDpyZXR1cm4gMTA3Mzc0MTgyNDtkZWZhdWx0OnJldHVybiBzfX1mdW5jdGlvbiB1YyhzLG8pe3ZhciBpPXMucGVuZGluZ0xhbmVzO2lmKDA9PT1pKXJldHVybiAwO3ZhciBhPTAsdT1zLnN1c3BlbmRlZExhbmVzLF89cy5waW5nZWRMYW5lcyx3PTI2ODQzNTQ1NSZpO2lmKDAhPT13KXt2YXIgeD13Jn51OzAhPT14P2E9dGMoeCk6MCE9PShfJj13KSYmKGE9dGMoXykpfWVsc2UgMCE9PSh3PWkmfnUpP2E9dGModyk6MCE9PV8mJihhPXRjKF8pKTtpZigwPT09YSlyZXR1cm4gMDtpZigwIT09byYmbyE9PWEmJiEobyZ1KSYmKCh1PWEmLWEpPj0oXz1vJi1vKXx8MTY9PT11JiY0MTk0MjQwJl8pKXJldHVybiBvO2lmKDQmYSYmKGF8PTE2JmkpLDAhPT0obz1zLmVudGFuZ2xlZExhbmVzKSlmb3Iocz1zLmVudGFuZ2xlbWVudHMsbyY9YTswPG87KXU9MTw8KGk9MzEtRXQobykpLGF8PXNbaV0sbyY9fnU7cmV0dXJuIGF9ZnVuY3Rpb24gdmMocyxvKXtzd2l0Y2gocyl7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6cmV0dXJuIG8rMjUwO2Nhc2UgODpjYXNlIDE2OmNhc2UgMzI6Y2FzZSA2NDpjYXNlIDEyODpjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpyZXR1cm4gbys1ZTM7ZGVmYXVsdDpyZXR1cm4tMX19ZnVuY3Rpb24geGMocyl7cmV0dXJuIDAhPT0ocz0tMTA3Mzc0MTgyNSZzLnBlbmRpbmdMYW5lcyk/czoxMDczNzQxODI0JnM/MTA3Mzc0MTgyNDowfWZ1bmN0aW9uIHljKCl7dmFyIHM9a3Q7cmV0dXJuISg0MTk0MjQwJihrdDw8PTEpKSYmKGt0PTY0KSxzfWZ1bmN0aW9uIHpjKHMpe2Zvcih2YXIgbz1bXSxpPTA7MzE+aTtpKyspby5wdXNoKHMpO3JldHVybiBvfWZ1bmN0aW9uIEFjKHMsbyxpKXtzLnBlbmRpbmdMYW5lc3w9byw1MzY4NzA5MTIhPT1vJiYocy5zdXNwZW5kZWRMYW5lcz0wLHMucGluZ2VkTGFuZXM9MCksKHM9cy5ldmVudFRpbWVzKVtvPTMxLUV0KG8pXT1pfWZ1bmN0aW9uIENjKHMsbyl7dmFyIGk9cy5lbnRhbmdsZWRMYW5lc3w9bztmb3Iocz1zLmVudGFuZ2xlbWVudHM7aTspe3ZhciBhPTMxLUV0KGkpLHU9MTw8YTt1Jm98c1thXSZvJiYoc1thXXw9byksaSY9fnV9fXZhciBDdD0wO2Z1bmN0aW9uIERjKHMpe3JldHVybiAxPChzJj0tcyk/NDxzPzI2ODQzNTQ1NSZzPzE2OjUzNjg3MDkxMjo0OjF9dmFyIEF0LGp0LFB0LEl0LFR0LE50PSExLE10PVtdLFJ0PW51bGwsRHQ9bnVsbCxMdD1udWxsLEZ0PW5ldyBNYXAsQnQ9bmV3IE1hcCwkdD1bXSxxdD0ibW91c2Vkb3duIG1vdXNldXAgdG91Y2hjYW5jZWwgdG91Y2hlbmQgdG91Y2hzdGFydCBhdXhjbGljayBkYmxjbGljayBwb2ludGVyY2FuY2VsIHBvaW50ZXJkb3duIHBvaW50ZXJ1cCBkcmFnZW5kIGRyYWdzdGFydCBkcm9wIGNvbXBvc2l0aW9uZW5kIGNvbXBvc2l0aW9uc3RhcnQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBpbnB1dCB0ZXh0SW5wdXQgY29weSBjdXQgcGFzdGUgY2xpY2sgY2hhbmdlIGNvbnRleHRtZW51IHJlc2V0IHN1Ym1pdCIuc3BsaXQoIiAiKTtmdW5jdGlvbiBTYyhzLG8pe3N3aXRjaChzKXtjYXNlImZvY3VzaW4iOmNhc2UiZm9jdXNvdXQiOlJ0PW51bGw7YnJlYWs7Y2FzZSJkcmFnZW50ZXIiOmNhc2UiZHJhZ2xlYXZlIjpEdD1udWxsO2JyZWFrO2Nhc2UibW91c2VvdmVyIjpjYXNlIm1vdXNlb3V0IjpMdD1udWxsO2JyZWFrO2Nhc2UicG9pbnRlcm92ZXIiOmNhc2UicG9pbnRlcm91dCI6RnQuZGVsZXRlKG8ucG9pbnRlcklkKTticmVhaztjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpjYXNlImxvc3Rwb2ludGVyY2FwdHVyZSI6QnQuZGVsZXRlKG8ucG9pbnRlcklkKX19ZnVuY3Rpb24gVGMocyxvLGksYSx1LF8pe3JldHVybiBudWxsPT09c3x8cy5uYXRpdmVFdmVudCE9PV8/KHM9e2Jsb2NrZWRPbjpvLGRvbUV2ZW50TmFtZTppLGV2ZW50U3lzdGVtRmxhZ3M6YSxuYXRpdmVFdmVudDpfLHRhcmdldENvbnRhaW5lcnM6W3VdfSxudWxsIT09byYmKG51bGwhPT0obz1DYihvKSkmJmp0KG8pKSxzKToocy5ldmVudFN5c3RlbUZsYWdzfD1hLG89cy50YXJnZXRDb250YWluZXJzLG51bGwhPT11JiYtMT09PW8uaW5kZXhPZih1KSYmby5wdXNoKHUpLHMpfWZ1bmN0aW9uIFZjKHMpe3ZhciBvPVdjKHMudGFyZ2V0KTtpZihudWxsIT09byl7dmFyIGk9VmIobyk7aWYobnVsbCE9PWkpaWYoMTM9PT0obz1pLnRhZykpe2lmKG51bGwhPT0obz1XYihpKSkpcmV0dXJuIHMuYmxvY2tlZE9uPW8sdm9pZCBUdChzLnByaW9yaXR5LChmdW5jdGlvbigpe1B0KGkpfSkpfWVsc2UgaWYoMz09PW8mJmkuc3RhdGVOb2RlLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpcmV0dXJuIHZvaWQocy5ibG9ja2VkT249Mz09PWkudGFnP2kuc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbCl9cy5ibG9ja2VkT249bnVsbH1mdW5jdGlvbiBYYyhzKXtpZihudWxsIT09cy5ibG9ja2VkT24pcmV0dXJuITE7Zm9yKHZhciBvPXMudGFyZ2V0Q29udGFpbmVyczswPG8ubGVuZ3RoOyl7dmFyIGk9WWMocy5kb21FdmVudE5hbWUscy5ldmVudFN5c3RlbUZsYWdzLG9bMF0scy5uYXRpdmVFdmVudCk7aWYobnVsbCE9PWkpcmV0dXJuIG51bGwhPT0obz1DYihpKSkmJmp0KG8pLHMuYmxvY2tlZE9uPWksITE7dmFyIGE9bmV3KGk9cy5uYXRpdmVFdmVudCkuY29uc3RydWN0b3IoaS50eXBlLGkpO0hlPWEsaS50YXJnZXQuZGlzcGF0Y2hFdmVudChhKSxIZT1udWxsLG8uc2hpZnQoKX1yZXR1cm4hMH1mdW5jdGlvbiBaYyhzLG8saSl7WGMocykmJmkuZGVsZXRlKG8pfWZ1bmN0aW9uICRjKCl7TnQ9ITEsbnVsbCE9PVJ0JiZYYyhSdCkmJihSdD1udWxsKSxudWxsIT09RHQmJlhjKER0KSYmKER0PW51bGwpLG51bGwhPT1MdCYmWGMoTHQpJiYoTHQ9bnVsbCksRnQuZm9yRWFjaChaYyksQnQuZm9yRWFjaChaYyl9ZnVuY3Rpb24gYWQocyxvKXtzLmJsb2NrZWRPbj09PW8mJihzLmJsb2NrZWRPbj1udWxsLE50fHwoTnQ9ITAsdS51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrKHUudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksJGMpKSl9ZnVuY3Rpb24gYmQocyl7ZnVuY3Rpb24gYihvKXtyZXR1cm4gYWQobyxzKX1pZigwPE10Lmxlbmd0aCl7YWQoTXRbMF0scyk7Zm9yKHZhciBvPTE7bzxNdC5sZW5ndGg7bysrKXt2YXIgaT1NdFtvXTtpLmJsb2NrZWRPbj09PXMmJihpLmJsb2NrZWRPbj1udWxsKX19Zm9yKG51bGwhPT1SdCYmYWQoUnQscyksbnVsbCE9PUR0JiZhZChEdCxzKSxudWxsIT09THQmJmFkKEx0LHMpLEZ0LmZvckVhY2goYiksQnQuZm9yRWFjaChiKSxvPTA7bzwkdC5sZW5ndGg7bysrKShpPSR0W29dKS5ibG9ja2VkT249PT1zJiYoaS5ibG9ja2VkT249bnVsbCk7Zm9yKDswPCR0Lmxlbmd0aCYmbnVsbD09PShvPSR0WzBdKS5ibG9ja2VkT247KVZjKG8pLG51bGw9PT1vLmJsb2NrZWRPbiYmJHQuc2hpZnQoKX12YXIgVnQ9VS5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZyxVdD0hMDtmdW5jdGlvbiBlZChzLG8saSxhKXt2YXIgdT1DdCxfPVZ0LnRyYW5zaXRpb247VnQudHJhbnNpdGlvbj1udWxsO3RyeXtDdD0xLGZkKHMsbyxpLGEpfWZpbmFsbHl7Q3Q9dSxWdC50cmFuc2l0aW9uPV99fWZ1bmN0aW9uIGdkKHMsbyxpLGEpe3ZhciB1PUN0LF89VnQudHJhbnNpdGlvbjtWdC50cmFuc2l0aW9uPW51bGw7dHJ5e0N0PTQsZmQocyxvLGksYSl9ZmluYWxseXtDdD11LFZ0LnRyYW5zaXRpb249X319ZnVuY3Rpb24gZmQocyxvLGksYSl7aWYoVXQpe3ZhciB1PVljKHMsbyxpLGEpO2lmKG51bGw9PT11KWhkKHMsbyxhLHp0LGkpLFNjKHMsYSk7ZWxzZSBpZihmdW5jdGlvbiBVYyhzLG8saSxhLHUpe3N3aXRjaChvKXtjYXNlImZvY3VzaW4iOnJldHVybiBSdD1UYyhSdCxzLG8saSxhLHUpLCEwO2Nhc2UiZHJhZ2VudGVyIjpyZXR1cm4gRHQ9VGMoRHQscyxvLGksYSx1KSwhMDtjYXNlIm1vdXNlb3ZlciI6cmV0dXJuIEx0PVRjKEx0LHMsbyxpLGEsdSksITA7Y2FzZSJwb2ludGVyb3ZlciI6dmFyIF89dS5wb2ludGVySWQ7cmV0dXJuIEZ0LnNldChfLFRjKEZ0LmdldChfKXx8bnVsbCxzLG8saSxhLHUpKSwhMDtjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpyZXR1cm4gXz11LnBvaW50ZXJJZCxCdC5zZXQoXyxUYyhCdC5nZXQoXyl8fG51bGwscyxvLGksYSx1KSksITB9cmV0dXJuITF9KHUscyxvLGksYSkpYS5zdG9wUHJvcGFnYXRpb24oKTtlbHNlIGlmKFNjKHMsYSksNCZvJiYtMTxxdC5pbmRleE9mKHMpKXtmb3IoO251bGwhPT11Oyl7dmFyIF89Q2IodSk7aWYobnVsbCE9PV8mJkF0KF8pLG51bGw9PT0oXz1ZYyhzLG8saSxhKSkmJmhkKHMsbyxhLHp0LGkpLF89PT11KWJyZWFrO3U9X31udWxsIT09dSYmYS5zdG9wUHJvcGFnYXRpb24oKX1lbHNlIGhkKHMsbyxhLG51bGwsaSl9fXZhciB6dD1udWxsO2Z1bmN0aW9uIFljKHMsbyxpLGEpe2lmKHp0PW51bGwsbnVsbCE9PShzPVdjKHM9eGIoYSkpKSlpZihudWxsPT09KG89VmIocykpKXM9bnVsbDtlbHNlIGlmKDEzPT09KGk9by50YWcpKXtpZihudWxsIT09KHM9V2IobykpKXJldHVybiBzO3M9bnVsbH1lbHNlIGlmKDM9PT1pKXtpZihvLnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXJldHVybiAzPT09by50YWc/by5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsO3M9bnVsbH1lbHNlIG8hPT1zJiYocz1udWxsKTtyZXR1cm4genQ9cyxudWxsfWZ1bmN0aW9uIGpkKHMpe3N3aXRjaChzKXtjYXNlImNhbmNlbCI6Y2FzZSJjbGljayI6Y2FzZSJjbG9zZSI6Y2FzZSJjb250ZXh0bWVudSI6Y2FzZSJjb3B5IjpjYXNlImN1dCI6Y2FzZSJhdXhjbGljayI6Y2FzZSJkYmxjbGljayI6Y2FzZSJkcmFnZW5kIjpjYXNlImRyYWdzdGFydCI6Y2FzZSJkcm9wIjpjYXNlImZvY3VzaW4iOmNhc2UiZm9jdXNvdXQiOmNhc2UiaW5wdXQiOmNhc2UiaW52YWxpZCI6Y2FzZSJrZXlkb3duIjpjYXNlImtleXByZXNzIjpjYXNlImtleXVwIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJtb3VzZXVwIjpjYXNlInBhc3RlIjpjYXNlInBhdXNlIjpjYXNlInBsYXkiOmNhc2UicG9pbnRlcmNhbmNlbCI6Y2FzZSJwb2ludGVyZG93biI6Y2FzZSJwb2ludGVydXAiOmNhc2UicmF0ZWNoYW5nZSI6Y2FzZSJyZXNldCI6Y2FzZSJyZXNpemUiOmNhc2Uic2Vla2VkIjpjYXNlInN1Ym1pdCI6Y2FzZSJ0b3VjaGNhbmNlbCI6Y2FzZSJ0b3VjaGVuZCI6Y2FzZSJ0b3VjaHN0YXJ0IjpjYXNlInZvbHVtZWNoYW5nZSI6Y2FzZSJjaGFuZ2UiOmNhc2Uic2VsZWN0aW9uY2hhbmdlIjpjYXNlInRleHRJbnB1dCI6Y2FzZSJjb21wb3NpdGlvbnN0YXJ0IjpjYXNlImNvbXBvc2l0aW9uZW5kIjpjYXNlImNvbXBvc2l0aW9udXBkYXRlIjpjYXNlImJlZm9yZWJsdXIiOmNhc2UiYWZ0ZXJibHVyIjpjYXNlImJlZm9yZWlucHV0IjpjYXNlImJsdXIiOmNhc2UiZnVsbHNjcmVlbmNoYW5nZSI6Y2FzZSJmb2N1cyI6Y2FzZSJoYXNoY2hhbmdlIjpjYXNlInBvcHN0YXRlIjpjYXNlInNlbGVjdCI6Y2FzZSJzZWxlY3RzdGFydCI6cmV0dXJuIDE7Y2FzZSJkcmFnIjpjYXNlImRyYWdlbnRlciI6Y2FzZSJkcmFnZXhpdCI6Y2FzZSJkcmFnbGVhdmUiOmNhc2UiZHJhZ292ZXIiOmNhc2UibW91c2Vtb3ZlIjpjYXNlIm1vdXNlb3V0IjpjYXNlIm1vdXNlb3ZlciI6Y2FzZSJwb2ludGVybW92ZSI6Y2FzZSJwb2ludGVyb3V0IjpjYXNlInBvaW50ZXJvdmVyIjpjYXNlInNjcm9sbCI6Y2FzZSJ0b2dnbGUiOmNhc2UidG91Y2htb3ZlIjpjYXNlIndoZWVsIjpjYXNlIm1vdXNlZW50ZXIiOmNhc2UibW91c2VsZWF2ZSI6Y2FzZSJwb2ludGVyZW50ZXIiOmNhc2UicG9pbnRlcmxlYXZlIjpyZXR1cm4gNDtjYXNlIm1lc3NhZ2UiOnN3aXRjaChkdCgpKXtjYXNlIG10OnJldHVybiAxO2Nhc2UgZ3Q6cmV0dXJuIDQ7Y2FzZSB5dDpjYXNlIHZ0OnJldHVybiAxNjtjYXNlIGJ0OnJldHVybiA1MzY4NzA5MTI7ZGVmYXVsdDpyZXR1cm4gMTZ9ZGVmYXVsdDpyZXR1cm4gMTZ9fXZhciBXdD1udWxsLEp0PW51bGwsSHQ9bnVsbDtmdW5jdGlvbiBuZCgpe2lmKEh0KXJldHVybiBIdDt2YXIgcyxvLGk9SnQsYT1pLmxlbmd0aCx1PSJ2YWx1ZSJpbiBXdD9XdC52YWx1ZTpXdC50ZXh0Q29udGVudCxfPXUubGVuZ3RoO2ZvcihzPTA7czxhJiZpW3NdPT09dVtzXTtzKyspO3ZhciB3PWEtcztmb3Iobz0xO288PXcmJmlbYS1vXT09PXVbXy1vXTtvKyspO3JldHVybiBIdD11LnNsaWNlKHMsMTxvPzEtbzp2b2lkIDApfWZ1bmN0aW9uIG9kKHMpe3ZhciBvPXMua2V5Q29kZTtyZXR1cm4iY2hhckNvZGUiaW4gcz8wPT09KHM9cy5jaGFyQ29kZSkmJjEzPT09byYmKHM9MTMpOnM9bywxMD09PXMmJihzPTEzKSwzMjw9c3x8MTM9PT1zP3M6MH1mdW5jdGlvbiBwZCgpe3JldHVybiEwfWZ1bmN0aW9uIHFkKCl7cmV0dXJuITF9ZnVuY3Rpb24gcmQocyl7ZnVuY3Rpb24gYihvLGksYSx1LF8pe2Zvcih2YXIgdyBpbiB0aGlzLl9yZWFjdE5hbWU9byx0aGlzLl90YXJnZXRJbnN0PWEsdGhpcy50eXBlPWksdGhpcy5uYXRpdmVFdmVudD11LHRoaXMudGFyZ2V0PV8sdGhpcy5jdXJyZW50VGFyZ2V0PW51bGwscylzLmhhc093blByb3BlcnR5KHcpJiYobz1zW3ddLHRoaXNbd109bz9vKHUpOnVbd10pO3JldHVybiB0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD0obnVsbCE9dS5kZWZhdWx0UHJldmVudGVkP3UuZGVmYXVsdFByZXZlbnRlZDohMT09PXUucmV0dXJuVmFsdWUpP3BkOnFkLHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9cWQsdGhpc31yZXR1cm4gd2UoYi5wcm90b3R5cGUse3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwO3ZhciBzPXRoaXMubmF0aXZlRXZlbnQ7cyYmKHMucHJldmVudERlZmF1bHQ/cy5wcmV2ZW50RGVmYXVsdCgpOiJ1bmtub3duIiE9dHlwZW9mIHMucmV0dXJuVmFsdWUmJihzLnJldHVyblZhbHVlPSExKSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1wZCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBzPXRoaXMubmF0aXZlRXZlbnQ7cyYmKHMuc3RvcFByb3BhZ2F0aW9uP3Muc3RvcFByb3BhZ2F0aW9uKCk6InVua25vd24iIT10eXBlb2Ygcy5jYW5jZWxCdWJibGUmJihzLmNhbmNlbEJ1YmJsZT0hMCksdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1wZCl9LHBlcnNpc3Q6ZnVuY3Rpb24oKXt9LGlzUGVyc2lzdGVudDpwZH0pLGJ9dmFyIEt0LEd0LFl0LFh0PXtldmVudFBoYXNlOjAsYnViYmxlczowLGNhbmNlbGFibGU6MCx0aW1lU3RhbXA6ZnVuY3Rpb24ocyl7cmV0dXJuIHMudGltZVN0YW1wfHxEYXRlLm5vdygpfSxkZWZhdWx0UHJldmVudGVkOjAsaXNUcnVzdGVkOjB9LFF0PXJkKFh0KSxadD13ZSh7fSxYdCx7dmlldzowLGRldGFpbDowfSksZXI9cmQoWnQpLHRyPXdlKHt9LFp0LHtzY3JlZW5YOjAsc2NyZWVuWTowLGNsaWVudFg6MCxjbGllbnRZOjAscGFnZVg6MCxwYWdlWTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGFsdEtleTowLG1ldGFLZXk6MCxnZXRNb2RpZmllclN0YXRlOnpkLGJ1dHRvbjowLGJ1dHRvbnM6MCxyZWxhdGVkVGFyZ2V0OmZ1bmN0aW9uKHMpe3JldHVybiB2b2lkIDA9PT1zLnJlbGF0ZWRUYXJnZXQ/cy5mcm9tRWxlbWVudD09PXMuc3JjRWxlbWVudD9zLnRvRWxlbWVudDpzLmZyb21FbGVtZW50OnMucmVsYXRlZFRhcmdldH0sbW92ZW1lbnRYOmZ1bmN0aW9uKHMpe3JldHVybiJtb3ZlbWVudFgiaW4gcz9zLm1vdmVtZW50WDoocyE9PVl0JiYoWXQmJiJtb3VzZW1vdmUiPT09cy50eXBlPyhLdD1zLnNjcmVlblgtWXQuc2NyZWVuWCxHdD1zLnNjcmVlblktWXQuc2NyZWVuWSk6R3Q9S3Q9MCxZdD1zKSxLdCl9LG1vdmVtZW50WTpmdW5jdGlvbihzKXtyZXR1cm4ibW92ZW1lbnRZImluIHM/cy5tb3ZlbWVudFk6R3R9fSkscnI9cmQodHIpLG5yPXJkKHdlKHt9LHRyLHtkYXRhVHJhbnNmZXI6MH0pKSxzcj1yZCh3ZSh7fSxadCx7cmVsYXRlZFRhcmdldDowfSkpLGlyPXJkKHdlKHt9LFh0LHthbmltYXRpb25OYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSksYXI9d2Uoe30sWHQse2NsaXBib2FyZERhdGE6ZnVuY3Rpb24ocyl7cmV0dXJuImNsaXBib2FyZERhdGEiaW4gcz9zLmNsaXBib2FyZERhdGE6d2luZG93LmNsaXBib2FyZERhdGF9fSksY3I9cmQoYXIpLGxyPXJkKHdlKHt9LFh0LHtkYXRhOjB9KSksdXI9e0VzYzoiRXNjYXBlIixTcGFjZWJhcjoiICIsTGVmdDoiQXJyb3dMZWZ0IixVcDoiQXJyb3dVcCIsUmlnaHQ6IkFycm93UmlnaHQiLERvd246IkFycm93RG93biIsRGVsOiJEZWxldGUiLFdpbjoiT1MiLE1lbnU6IkNvbnRleHRNZW51IixBcHBzOiJDb250ZXh0TWVudSIsU2Nyb2xsOiJTY3JvbGxMb2NrIixNb3pQcmludGFibGVLZXk6IlVuaWRlbnRpZmllZCJ9LHByPXs4OiJCYWNrc3BhY2UiLDk6IlRhYiIsMTI6IkNsZWFyIiwxMzoiRW50ZXIiLDE2OiJTaGlmdCIsMTc6IkNvbnRyb2wiLDE4OiJBbHQiLDE5OiJQYXVzZSIsMjA6IkNhcHNMb2NrIiwyNzoiRXNjYXBlIiwzMjoiICIsMzM6IlBhZ2VVcCIsMzQ6IlBhZ2VEb3duIiwzNToiRW5kIiwzNjoiSG9tZSIsMzc6IkFycm93TGVmdCIsMzg6IkFycm93VXAiLDM5OiJBcnJvd1JpZ2h0Iiw0MDoiQXJyb3dEb3duIiw0NToiSW5zZXJ0Iiw0NjoiRGVsZXRlIiwxMTI6IkYxIiwxMTM6IkYyIiwxMTQ6IkYzIiwxMTU6IkY0IiwxMTY6IkY1IiwxMTc6IkY2IiwxMTg6IkY3IiwxMTk6IkY4IiwxMjA6IkY5IiwxMjE6IkYxMCIsMTIyOiJGMTEiLDEyMzoiRjEyIiwxNDQ6Ik51bUxvY2siLDE0NToiU2Nyb2xsTG9jayIsMjI0OiJNZXRhIn0sZHI9e0FsdDoiYWx0S2V5IixDb250cm9sOiJjdHJsS2V5IixNZXRhOiJtZXRhS2V5IixTaGlmdDoic2hpZnRLZXkifTtmdW5jdGlvbiBQZChzKXt2YXIgbz10aGlzLm5hdGl2ZUV2ZW50O3JldHVybiBvLmdldE1vZGlmaWVyU3RhdGU/by5nZXRNb2RpZmllclN0YXRlKHMpOiEhKHM9ZHJbc10pJiYhIW9bc119ZnVuY3Rpb24gemQoKXtyZXR1cm4gUGR9dmFyIGZyPXdlKHt9LFp0LHtrZXk6ZnVuY3Rpb24ocyl7aWYocy5rZXkpe3ZhciBvPXVyW3Mua2V5XXx8cy5rZXk7aWYoIlVuaWRlbnRpZmllZCIhPT1vKXJldHVybiBvfXJldHVybiJrZXlwcmVzcyI9PT1zLnR5cGU/MTM9PT0ocz1vZChzKSk/IkVudGVyIjpTdHJpbmcuZnJvbUNoYXJDb2RlKHMpOiJrZXlkb3duIj09PXMudHlwZXx8ImtleXVwIj09PXMudHlwZT9wcltzLmtleUNvZGVdfHwiVW5pZGVudGlmaWVkIjoiIn0sY29kZTowLGxvY2F0aW9uOjAsY3RybEtleTowLHNoaWZ0S2V5OjAsYWx0S2V5OjAsbWV0YUtleTowLHJlcGVhdDowLGxvY2FsZTowLGdldE1vZGlmaWVyU3RhdGU6emQsY2hhckNvZGU6ZnVuY3Rpb24ocyl7cmV0dXJuImtleXByZXNzIj09PXMudHlwZT9vZChzKTowfSxrZXlDb2RlOmZ1bmN0aW9uKHMpe3JldHVybiJrZXlkb3duIj09PXMudHlwZXx8ImtleXVwIj09PXMudHlwZT9zLmtleUNvZGU6MH0sd2hpY2g6ZnVuY3Rpb24ocyl7cmV0dXJuImtleXByZXNzIj09PXMudHlwZT9vZChzKToia2V5ZG93biI9PT1zLnR5cGV8fCJrZXl1cCI9PT1zLnR5cGU/cy5rZXlDb2RlOjB9fSksbXI9cmQoZnIpLGdyPXJkKHdlKHt9LHRyLHtwb2ludGVySWQ6MCx3aWR0aDowLGhlaWdodDowLHByZXNzdXJlOjAsdGFuZ2VudGlhbFByZXNzdXJlOjAsdGlsdFg6MCx0aWx0WTowLHR3aXN0OjAscG9pbnRlclR5cGU6MCxpc1ByaW1hcnk6MH0pKSx5cj1yZCh3ZSh7fSxadCx7dG91Y2hlczowLHRhcmdldFRvdWNoZXM6MCxjaGFuZ2VkVG91Y2hlczowLGFsdEtleTowLG1ldGFLZXk6MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxnZXRNb2RpZmllclN0YXRlOnpkfSkpLHZyPXJkKHdlKHt9LFh0LHtwcm9wZXJ0eU5hbWU6MCxlbGFwc2VkVGltZTowLHBzZXVkb0VsZW1lbnQ6MH0pKSxicj13ZSh7fSx0cix7ZGVsdGFYOmZ1bmN0aW9uKHMpe3JldHVybiJkZWx0YVgiaW4gcz9zLmRlbHRhWDoid2hlZWxEZWx0YVgiaW4gcz8tcy53aGVlbERlbHRhWDowfSxkZWx0YVk6ZnVuY3Rpb24ocyl7cmV0dXJuImRlbHRhWSJpbiBzP3MuZGVsdGFZOiJ3aGVlbERlbHRhWSJpbiBzPy1zLndoZWVsRGVsdGFZOiJ3aGVlbERlbHRhImluIHM/LXMud2hlZWxEZWx0YTowfSxkZWx0YVo6MCxkZWx0YU1vZGU6MH0pLF9yPXJkKGJyKSxTcj1bOSwxMywyNywzMl0sRXI9eCYmIkNvbXBvc2l0aW9uRXZlbnQiaW4gd2luZG93LHdyPW51bGw7eCYmImRvY3VtZW50TW9kZSJpbiBkb2N1bWVudCYmKHdyPWRvY3VtZW50LmRvY3VtZW50TW9kZSk7dmFyIHhyPXgmJiJUZXh0RXZlbnQiaW4gd2luZG93JiYhd3Isa3I9eCYmKCFFcnx8d3ImJjg8d3ImJjExPj13ciksT3I9U3RyaW5nLmZyb21DaGFyQ29kZSgzMiksQ3I9ITE7ZnVuY3Rpb24gZ2UocyxvKXtzd2l0Y2gocyl7Y2FzZSJrZXl1cCI6cmV0dXJuLTEhPT1Tci5pbmRleE9mKG8ua2V5Q29kZSk7Y2FzZSJrZXlkb3duIjpyZXR1cm4gMjI5IT09by5rZXlDb2RlO2Nhc2Uia2V5cHJlc3MiOmNhc2UibW91c2Vkb3duIjpjYXNlImZvY3Vzb3V0IjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBoZShzKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mKHM9cy5kZXRhaWwpJiYiZGF0YSJpbiBzP3MuZGF0YTpudWxsfXZhciBBcj0hMTt2YXIganI9e2NvbG9yOiEwLGRhdGU6ITAsZGF0ZXRpbWU6ITAsImRhdGV0aW1lLWxvY2FsIjohMCxlbWFpbDohMCxtb250aDohMCxudW1iZXI6ITAscGFzc3dvcmQ6ITAscmFuZ2U6ITAsc2VhcmNoOiEwLHRlbDohMCx0ZXh0OiEwLHRpbWU6ITAsdXJsOiEwLHdlZWs6ITB9O2Z1bmN0aW9uIG1lKHMpe3ZhciBvPXMmJnMubm9kZU5hbWUmJnMubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09bz8hIWpyW3MudHlwZV06InRleHRhcmVhIj09PW99ZnVuY3Rpb24gbmUocyxvLGksYSl7RWIoYSksMDwobz1vZShvLCJvbkNoYW5nZSIpKS5sZW5ndGgmJihpPW5ldyBRdCgib25DaGFuZ2UiLCJjaGFuZ2UiLG51bGwsaSxhKSxzLnB1c2goe2V2ZW50OmksbGlzdGVuZXJzOm99KSl9dmFyIFByPW51bGwsSXI9bnVsbDtmdW5jdGlvbiByZShzKXtzZShzLDApfWZ1bmN0aW9uIHRlKHMpe2lmKFdhKHVlKHMpKSlyZXR1cm4gc31mdW5jdGlvbiB2ZShzLG8pe2lmKCJjaGFuZ2UiPT09cylyZXR1cm4gb312YXIgVHI9ITE7aWYoeCl7dmFyIE5yO2lmKHgpe3ZhciBNcj0ib25pbnB1dCJpbiBkb2N1bWVudDtpZighTXIpe3ZhciBScj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtSci5zZXRBdHRyaWJ1dGUoIm9uaW5wdXQiLCJyZXR1cm47IiksTXI9ImZ1bmN0aW9uIj09dHlwZW9mIFJyLm9uaW5wdXR9TnI9TXJ9ZWxzZSBOcj0hMTtUcj1OciYmKCFkb2N1bWVudC5kb2N1bWVudE1vZGV8fDk8ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKX1mdW5jdGlvbiBBZSgpe1ByJiYoUHIuZGV0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLEJlKSxJcj1Qcj1udWxsKX1mdW5jdGlvbiBCZShzKXtpZigidmFsdWUiPT09cy5wcm9wZXJ0eU5hbWUmJnRlKElyKSl7dmFyIG89W107bmUobyxJcixzLHhiKHMpKSxKYihyZSxvKX19ZnVuY3Rpb24gQ2UocyxvLGkpeyJmb2N1c2luIj09PXM/KEFlKCksSXI9aSwoUHI9bykuYXR0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLEJlKSk6ImZvY3Vzb3V0Ij09PXMmJkFlKCl9ZnVuY3Rpb24gRGUocyl7aWYoInNlbGVjdGlvbmNoYW5nZSI9PT1zfHwia2V5dXAiPT09c3x8ImtleWRvd24iPT09cylyZXR1cm4gdGUoSXIpfWZ1bmN0aW9uIEVlKHMsbyl7aWYoImNsaWNrIj09PXMpcmV0dXJuIHRlKG8pfWZ1bmN0aW9uIEZlKHMsbyl7aWYoImlucHV0Ij09PXN8fCJjaGFuZ2UiPT09cylyZXR1cm4gdGUobyl9dmFyIERyPSJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuaXM/T2JqZWN0LmlzOmZ1bmN0aW9uIEdlKHMsbyl7cmV0dXJuIHM9PT1vJiYoMCE9PXN8fDEvcz09MS9vKXx8cyE9cyYmbyE9b307ZnVuY3Rpb24gSWUocyxvKXtpZihEcihzLG8pKXJldHVybiEwO2lmKCJvYmplY3QiIT10eXBlb2Ygc3x8bnVsbD09PXN8fCJvYmplY3QiIT10eXBlb2Ygb3x8bnVsbD09PW8pcmV0dXJuITE7dmFyIGk9T2JqZWN0LmtleXMocyksYT1PYmplY3Qua2V5cyhvKTtpZihpLmxlbmd0aCE9PWEubGVuZ3RoKXJldHVybiExO2ZvcihhPTA7YTxpLmxlbmd0aDthKyspe3ZhciB1PWlbYV07aWYoIUMuY2FsbChvLHUpfHwhRHIoc1t1XSxvW3VdKSlyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBKZShzKXtmb3IoO3MmJnMuZmlyc3RDaGlsZDspcz1zLmZpcnN0Q2hpbGQ7cmV0dXJuIHN9ZnVuY3Rpb24gS2UocyxvKXt2YXIgaSxhPUplKHMpO2ZvcihzPTA7YTspe2lmKDM9PT1hLm5vZGVUeXBlKXtpZihpPXMrYS50ZXh0Q29udGVudC5sZW5ndGgsczw9byYmaT49bylyZXR1cm57bm9kZTphLG9mZnNldDpvLXN9O3M9aX1lOntmb3IoO2E7KXtpZihhLm5leHRTaWJsaW5nKXthPWEubmV4dFNpYmxpbmc7YnJlYWsgZX1hPWEucGFyZW50Tm9kZX1hPXZvaWQgMH1hPUplKGEpfX1mdW5jdGlvbiBMZShzLG8pe3JldHVybiEoIXN8fCFvKSYmKHM9PT1vfHwoIXN8fDMhPT1zLm5vZGVUeXBlKSYmKG8mJjM9PT1vLm5vZGVUeXBlP0xlKHMsby5wYXJlbnROb2RlKToiY29udGFpbnMiaW4gcz9zLmNvbnRhaW5zKG8pOiEhcy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmISEoMTYmcy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihvKSkpKX1mdW5jdGlvbiBNZSgpe2Zvcih2YXIgcz13aW5kb3csbz1YYSgpO28gaW5zdGFuY2VvZiBzLkhUTUxJRnJhbWVFbGVtZW50Oyl7dHJ5e3ZhciBpPSJzdHJpbmciPT10eXBlb2Ygby5jb250ZW50V2luZG93LmxvY2F0aW9uLmhyZWZ9Y2F0Y2gocyl7aT0hMX1pZighaSlicmVhaztvPVhhKChzPW8uY29udGVudFdpbmRvdykuZG9jdW1lbnQpfXJldHVybiBvfWZ1bmN0aW9uIE5lKHMpe3ZhciBvPXMmJnMubm9kZU5hbWUmJnMubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gbyYmKCJpbnB1dCI9PT1vJiYoInRleHQiPT09cy50eXBlfHwic2VhcmNoIj09PXMudHlwZXx8InRlbCI9PT1zLnR5cGV8fCJ1cmwiPT09cy50eXBlfHwicGFzc3dvcmQiPT09cy50eXBlKXx8InRleHRhcmVhIj09PW98fCJ0cnVlIj09PXMuY29udGVudEVkaXRhYmxlKX1mdW5jdGlvbiBPZShzKXt2YXIgbz1NZSgpLGk9cy5mb2N1c2VkRWxlbSxhPXMuc2VsZWN0aW9uUmFuZ2U7aWYobyE9PWkmJmkmJmkub3duZXJEb2N1bWVudCYmTGUoaS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxpKSl7aWYobnVsbCE9PWEmJk5lKGkpKWlmKG89YS5zdGFydCx2b2lkIDA9PT0ocz1hLmVuZCkmJihzPW8pLCJzZWxlY3Rpb25TdGFydCJpbiBpKWkuc2VsZWN0aW9uU3RhcnQ9byxpLnNlbGVjdGlvbkVuZD1NYXRoLm1pbihzLGkudmFsdWUubGVuZ3RoKTtlbHNlIGlmKChzPShvPWkub3duZXJEb2N1bWVudHx8ZG9jdW1lbnQpJiZvLmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbil7cz1zLmdldFNlbGVjdGlvbigpO3ZhciB1PWkudGV4dENvbnRlbnQubGVuZ3RoLF89TWF0aC5taW4oYS5zdGFydCx1KTthPXZvaWQgMD09PWEuZW5kP186TWF0aC5taW4oYS5lbmQsdSksIXMuZXh0ZW5kJiZfPmEmJih1PWEsYT1fLF89dSksdT1LZShpLF8pO3ZhciB3PUtlKGksYSk7dSYmdyYmKDEhPT1zLnJhbmdlQ291bnR8fHMuYW5jaG9yTm9kZSE9PXUubm9kZXx8cy5hbmNob3JPZmZzZXQhPT11Lm9mZnNldHx8cy5mb2N1c05vZGUhPT13Lm5vZGV8fHMuZm9jdXNPZmZzZXQhPT13Lm9mZnNldCkmJigobz1vLmNyZWF0ZVJhbmdlKCkpLnNldFN0YXJ0KHUubm9kZSx1Lm9mZnNldCkscy5yZW1vdmVBbGxSYW5nZXMoKSxfPmE/KHMuYWRkUmFuZ2Uobykscy5leHRlbmQody5ub2RlLHcub2Zmc2V0KSk6KG8uc2V0RW5kKHcubm9kZSx3Lm9mZnNldCkscy5hZGRSYW5nZShvKSkpfWZvcihvPVtdLHM9aTtzPXMucGFyZW50Tm9kZTspMT09PXMubm9kZVR5cGUmJm8ucHVzaCh7ZWxlbWVudDpzLGxlZnQ6cy5zY3JvbGxMZWZ0LHRvcDpzLnNjcm9sbFRvcH0pO2ZvcigiZnVuY3Rpb24iPT10eXBlb2YgaS5mb2N1cyYmaS5mb2N1cygpLGk9MDtpPG8ubGVuZ3RoO2krKykocz1vW2ldKS5lbGVtZW50LnNjcm9sbExlZnQ9cy5sZWZ0LHMuZWxlbWVudC5zY3JvbGxUb3A9cy50b3B9fXZhciBMcj14JiYiZG9jdW1lbnRNb2RlImluIGRvY3VtZW50JiYxMT49ZG9jdW1lbnQuZG9jdW1lbnRNb2RlLEZyPW51bGwsQnI9bnVsbCwkcj1udWxsLHFyPSExO2Z1bmN0aW9uIFVlKHMsbyxpKXt2YXIgYT1pLndpbmRvdz09PWk/aS5kb2N1bWVudDo5PT09aS5ub2RlVHlwZT9pOmkub3duZXJEb2N1bWVudDtxcnx8bnVsbD09RnJ8fEZyIT09WGEoYSl8fCgic2VsZWN0aW9uU3RhcnQiaW4oYT1GcikmJk5lKGEpP2E9e3N0YXJ0OmEuc2VsZWN0aW9uU3RhcnQsZW5kOmEuc2VsZWN0aW9uRW5kfTphPXthbmNob3JOb2RlOihhPShhLm93bmVyRG9jdW1lbnQmJmEub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93KS5nZXRTZWxlY3Rpb24oKSkuYW5jaG9yTm9kZSxhbmNob3JPZmZzZXQ6YS5hbmNob3JPZmZzZXQsZm9jdXNOb2RlOmEuZm9jdXNOb2RlLGZvY3VzT2Zmc2V0OmEuZm9jdXNPZmZzZXR9LCRyJiZJZSgkcixhKXx8KCRyPWEsMDwoYT1vZShCciwib25TZWxlY3QiKSkubGVuZ3RoJiYobz1uZXcgUXQoIm9uU2VsZWN0Iiwic2VsZWN0IixudWxsLG8saSkscy5wdXNoKHtldmVudDpvLGxpc3RlbmVyczphfSksby50YXJnZXQ9RnIpKSl9ZnVuY3Rpb24gVmUocyxvKXt2YXIgaT17fTtyZXR1cm4gaVtzLnRvTG93ZXJDYXNlKCldPW8udG9Mb3dlckNhc2UoKSxpWyJXZWJraXQiK3NdPSJ3ZWJraXQiK28saVsiTW96IitzXT0ibW96IitvLGl9dmFyIFZyPXthbmltYXRpb25lbmQ6VmUoIkFuaW1hdGlvbiIsIkFuaW1hdGlvbkVuZCIpLGFuaW1hdGlvbml0ZXJhdGlvbjpWZSgiQW5pbWF0aW9uIiwiQW5pbWF0aW9uSXRlcmF0aW9uIiksYW5pbWF0aW9uc3RhcnQ6VmUoIkFuaW1hdGlvbiIsIkFuaW1hdGlvblN0YXJ0IiksdHJhbnNpdGlvbmVuZDpWZSgiVHJhbnNpdGlvbiIsIlRyYW5zaXRpb25FbmQiKX0sVXI9e30senI9e307ZnVuY3Rpb24gWmUocyl7aWYoVXJbc10pcmV0dXJuIFVyW3NdO2lmKCFWcltzXSlyZXR1cm4gczt2YXIgbyxpPVZyW3NdO2ZvcihvIGluIGkpaWYoaS5oYXNPd25Qcm9wZXJ0eShvKSYmbyBpbiB6cilyZXR1cm4gVXJbc109aVtvXTtyZXR1cm4gc314JiYoenI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUsIkFuaW1hdGlvbkV2ZW50ImluIHdpbmRvd3x8KGRlbGV0ZSBWci5hbmltYXRpb25lbmQuYW5pbWF0aW9uLGRlbGV0ZSBWci5hbmltYXRpb25pdGVyYXRpb24uYW5pbWF0aW9uLGRlbGV0ZSBWci5hbmltYXRpb25zdGFydC5hbmltYXRpb24pLCJUcmFuc2l0aW9uRXZlbnQiaW4gd2luZG93fHxkZWxldGUgVnIudHJhbnNpdGlvbmVuZC50cmFuc2l0aW9uKTt2YXIgV3I9WmUoImFuaW1hdGlvbmVuZCIpLEpyPVplKCJhbmltYXRpb25pdGVyYXRpb24iKSxIcj1aZSgiYW5pbWF0aW9uc3RhcnQiKSxLcj1aZSgidHJhbnNpdGlvbmVuZCIpLEdyPW5ldyBNYXAsWXI9ImFib3J0IGF1eENsaWNrIGNhbmNlbCBjYW5QbGF5IGNhblBsYXlUaHJvdWdoIGNsaWNrIGNsb3NlIGNvbnRleHRNZW51IGNvcHkgY3V0IGRyYWcgZHJhZ0VuZCBkcmFnRW50ZXIgZHJhZ0V4aXQgZHJhZ0xlYXZlIGRyYWdPdmVyIGRyYWdTdGFydCBkcm9wIGR1cmF0aW9uQ2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGdvdFBvaW50ZXJDYXB0dXJlIGlucHV0IGludmFsaWQga2V5RG93biBrZXlQcmVzcyBrZXlVcCBsb2FkIGxvYWRlZERhdGEgbG9hZGVkTWV0YWRhdGEgbG9hZFN0YXJ0IGxvc3RQb2ludGVyQ2FwdHVyZSBtb3VzZURvd24gbW91c2VNb3ZlIG1vdXNlT3V0IG1vdXNlT3ZlciBtb3VzZVVwIHBhc3RlIHBhdXNlIHBsYXkgcGxheWluZyBwb2ludGVyQ2FuY2VsIHBvaW50ZXJEb3duIHBvaW50ZXJNb3ZlIHBvaW50ZXJPdXQgcG9pbnRlck92ZXIgcG9pbnRlclVwIHByb2dyZXNzIHJhdGVDaGFuZ2UgcmVzZXQgcmVzaXplIHNlZWtlZCBzZWVraW5nIHN0YWxsZWQgc3VibWl0IHN1c3BlbmQgdGltZVVwZGF0ZSB0b3VjaENhbmNlbCB0b3VjaEVuZCB0b3VjaFN0YXJ0IHZvbHVtZUNoYW5nZSBzY3JvbGwgdG9nZ2xlIHRvdWNoTW92ZSB3YWl0aW5nIHdoZWVsIi5zcGxpdCgiICIpO2Z1bmN0aW9uIGZmKHMsbyl7R3Iuc2V0KHMsbyksZmEobyxbc10pfWZvcih2YXIgWHI9MDtYcjxZci5sZW5ndGg7WHIrKyl7dmFyIFFyPVlyW1hyXTtmZihRci50b0xvd2VyQ2FzZSgpLCJvbiIrKFFyWzBdLnRvVXBwZXJDYXNlKCkrUXIuc2xpY2UoMSkpKX1mZihXciwib25BbmltYXRpb25FbmQiKSxmZihKciwib25BbmltYXRpb25JdGVyYXRpb24iKSxmZihIciwib25BbmltYXRpb25TdGFydCIpLGZmKCJkYmxjbGljayIsIm9uRG91YmxlQ2xpY2siKSxmZigiZm9jdXNpbiIsIm9uRm9jdXMiKSxmZigiZm9jdXNvdXQiLCJvbkJsdXIiKSxmZihLciwib25UcmFuc2l0aW9uRW5kIiksaGEoIm9uTW91c2VFbnRlciIsWyJtb3VzZW91dCIsIm1vdXNlb3ZlciJdKSxoYSgib25Nb3VzZUxlYXZlIixbIm1vdXNlb3V0IiwibW91c2VvdmVyIl0pLGhhKCJvblBvaW50ZXJFbnRlciIsWyJwb2ludGVyb3V0IiwicG9pbnRlcm92ZXIiXSksaGEoIm9uUG9pbnRlckxlYXZlIixbInBvaW50ZXJvdXQiLCJwb2ludGVyb3ZlciJdKSxmYSgib25DaGFuZ2UiLCJjaGFuZ2UgY2xpY2sgZm9jdXNpbiBmb2N1c291dCBpbnB1dCBrZXlkb3duIGtleXVwIHNlbGVjdGlvbmNoYW5nZSIuc3BsaXQoIiAiKSksZmEoIm9uU2VsZWN0IiwiZm9jdXNvdXQgY29udGV4dG1lbnUgZHJhZ2VuZCBmb2N1c2luIGtleWRvd24ga2V5dXAgbW91c2Vkb3duIG1vdXNldXAgc2VsZWN0aW9uY2hhbmdlIi5zcGxpdCgiICIpKSxmYSgib25CZWZvcmVJbnB1dCIsWyJjb21wb3NpdGlvbmVuZCIsImtleXByZXNzIiwidGV4dElucHV0IiwicGFzdGUiXSksZmEoIm9uQ29tcG9zaXRpb25FbmQiLCJjb21wb3NpdGlvbmVuZCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93biIuc3BsaXQoIiAiKSksZmEoIm9uQ29tcG9zaXRpb25TdGFydCIsImNvbXBvc2l0aW9uc3RhcnQgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd24iLnNwbGl0KCIgIikpLGZhKCJvbkNvbXBvc2l0aW9uVXBkYXRlIiwiY29tcG9zaXRpb251cGRhdGUgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd24iLnNwbGl0KCIgIikpO3ZhciBacj0iYWJvcnQgY2FucGxheSBjYW5wbGF5dGhyb3VnaCBkdXJhdGlvbmNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBsb2FkZWRkYXRhIGxvYWRlZG1ldGFkYXRhIGxvYWRzdGFydCBwYXVzZSBwbGF5IHBsYXlpbmcgcHJvZ3Jlc3MgcmF0ZWNoYW5nZSByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdXNwZW5kIHRpbWV1cGRhdGUgdm9sdW1lY2hhbmdlIHdhaXRpbmciLnNwbGl0KCIgIiksZW49bmV3IFNldCgiY2FuY2VsIGNsb3NlIGludmFsaWQgbG9hZCBzY3JvbGwgdG9nZ2xlIi5zcGxpdCgiICIpLmNvbmNhdChacikpO2Z1bmN0aW9uIG5mKHMsbyxpKXt2YXIgYT1zLnR5cGV8fCJ1bmtub3duLWV2ZW50IjtzLmN1cnJlbnRUYXJnZXQ9aSxmdW5jdGlvbiBVYihzLG8saSxhLHUsXyx3LHgsQyl7aWYoVGIuYXBwbHkodGhpcyxhcmd1bWVudHMpLG50KXtpZighbnQpdGhyb3cgRXJyb3IocCgxOTgpKTt2YXIgaj1zdDtudD0hMSxzdD1udWxsLG90fHwob3Q9ITAsaXQ9ail9fShhLG8sdm9pZCAwLHMpLHMuY3VycmVudFRhcmdldD1udWxsfWZ1bmN0aW9uIHNlKHMsbyl7bz0hISg0Jm8pO2Zvcih2YXIgaT0wO2k8cy5sZW5ndGg7aSsrKXt2YXIgYT1zW2ldLHU9YS5ldmVudDthPWEubGlzdGVuZXJzO2U6e3ZhciBfPXZvaWQgMDtpZihvKWZvcih2YXIgdz1hLmxlbmd0aC0xOzA8PXc7dy0tKXt2YXIgeD1hW3ddLEM9eC5pbnN0YW5jZSxqPXguY3VycmVudFRhcmdldDtpZih4PXgubGlzdGVuZXIsQyE9PV8mJnUuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVhayBlO25mKHUseCxqKSxfPUN9ZWxzZSBmb3Iodz0wO3c8YS5sZW5ndGg7dysrKXtpZihDPSh4PWFbd10pLmluc3RhbmNlLGo9eC5jdXJyZW50VGFyZ2V0LHg9eC5saXN0ZW5lcixDIT09XyYmdS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWJyZWFrIGU7bmYodSx4LGopLF89Q319fWlmKG90KXRocm93IHM9aXQsb3Q9ITEsaXQ9bnVsbCxzfWZ1bmN0aW9uIEQocyxvKXt2YXIgaT1vW21uXTt2b2lkIDA9PT1pJiYoaT1vW21uXT1uZXcgU2V0KTt2YXIgYT1zKyJfX2J1YmJsZSI7aS5oYXMoYSl8fChwZihvLHMsMiwhMSksaS5hZGQoYSkpfWZ1bmN0aW9uIHFmKHMsbyxpKXt2YXIgYT0wO28mJihhfD00KSxwZihpLHMsYSxvKX12YXIgdG49Il9yZWFjdExpc3RlbmluZyIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMik7ZnVuY3Rpb24gc2Yocyl7aWYoIXNbdG5dKXtzW3RuXT0hMCxfLmZvckVhY2goKGZ1bmN0aW9uKG8peyJzZWxlY3Rpb25jaGFuZ2UiIT09byYmKGVuLmhhcyhvKXx8cWYobywhMSxzKSxxZihvLCEwLHMpKX0pKTt2YXIgbz05PT09cy5ub2RlVHlwZT9zOnMub3duZXJEb2N1bWVudDtudWxsPT09b3x8b1t0bl18fChvW3RuXT0hMCxxZigic2VsZWN0aW9uY2hhbmdlIiwhMSxvKSl9fWZ1bmN0aW9uIHBmKHMsbyxpLGEpe3N3aXRjaChqZChvKSl7Y2FzZSAxOnZhciB1PWVkO2JyZWFrO2Nhc2UgNDp1PWdkO2JyZWFrO2RlZmF1bHQ6dT1mZH1pPXUuYmluZChudWxsLG8saSxzKSx1PXZvaWQgMCwhdHR8fCJ0b3VjaHN0YXJ0IiE9PW8mJiJ0b3VjaG1vdmUiIT09byYmIndoZWVsIiE9PW98fCh1PSEwKSxhP3ZvaWQgMCE9PXU/cy5hZGRFdmVudExpc3RlbmVyKG8saSx7Y2FwdHVyZTohMCxwYXNzaXZlOnV9KTpzLmFkZEV2ZW50TGlzdGVuZXIobyxpLCEwKTp2b2lkIDAhPT11P3MuYWRkRXZlbnRMaXN0ZW5lcihvLGkse3Bhc3NpdmU6dX0pOnMuYWRkRXZlbnRMaXN0ZW5lcihvLGksITEpfWZ1bmN0aW9uIGhkKHMsbyxpLGEsdSl7dmFyIF89YTtpZighKDEmb3x8MiZvfHxudWxsPT09YSkpZTpmb3IoOzspe2lmKG51bGw9PT1hKXJldHVybjt2YXIgdz1hLnRhZztpZigzPT09d3x8ND09PXcpe3ZhciB4PWEuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87aWYoeD09PXV8fDg9PT14Lm5vZGVUeXBlJiZ4LnBhcmVudE5vZGU9PT11KWJyZWFrO2lmKDQ9PT13KWZvcih3PWEucmV0dXJuO251bGwhPT13Oyl7dmFyIEM9dy50YWc7aWYoKDM9PT1DfHw0PT09QykmJigoQz13LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKT09PXV8fDg9PT1DLm5vZGVUeXBlJiZDLnBhcmVudE5vZGU9PT11KSlyZXR1cm47dz13LnJldHVybn1mb3IoO251bGwhPT14Oyl7aWYobnVsbD09PSh3PVdjKHgpKSlyZXR1cm47aWYoNT09PShDPXcudGFnKXx8Nj09PUMpe2E9Xz13O2NvbnRpbnVlIGV9eD14LnBhcmVudE5vZGV9fWE9YS5yZXR1cm59SmIoKGZ1bmN0aW9uKCl7dmFyIGE9Xyx1PXhiKGkpLHc9W107ZTp7dmFyIHg9R3IuZ2V0KHMpO2lmKHZvaWQgMCE9PXgpe3ZhciBDPVF0LGo9cztzd2l0Y2gocyl7Y2FzZSJrZXlwcmVzcyI6aWYoMD09PW9kKGkpKWJyZWFrIGU7Y2FzZSJrZXlkb3duIjpjYXNlImtleXVwIjpDPW1yO2JyZWFrO2Nhc2UiZm9jdXNpbiI6aj0iZm9jdXMiLEM9c3I7YnJlYWs7Y2FzZSJmb2N1c291dCI6aj0iYmx1ciIsQz1zcjticmVhaztjYXNlImJlZm9yZWJsdXIiOmNhc2UiYWZ0ZXJibHVyIjpDPXNyO2JyZWFrO2Nhc2UiY2xpY2siOmlmKDI9PT1pLmJ1dHRvbilicmVhayBlO2Nhc2UiYXV4Y2xpY2siOmNhc2UiZGJsY2xpY2siOmNhc2UibW91c2Vkb3duIjpjYXNlIm1vdXNlbW92ZSI6Y2FzZSJtb3VzZXVwIjpjYXNlIm1vdXNlb3V0IjpjYXNlIm1vdXNlb3ZlciI6Y2FzZSJjb250ZXh0bWVudSI6Qz1ycjticmVhaztjYXNlImRyYWciOmNhc2UiZHJhZ2VuZCI6Y2FzZSJkcmFnZW50ZXIiOmNhc2UiZHJhZ2V4aXQiOmNhc2UiZHJhZ2xlYXZlIjpjYXNlImRyYWdvdmVyIjpjYXNlImRyYWdzdGFydCI6Y2FzZSJkcm9wIjpDPW5yO2JyZWFrO2Nhc2UidG91Y2hjYW5jZWwiOmNhc2UidG91Y2hlbmQiOmNhc2UidG91Y2htb3ZlIjpjYXNlInRvdWNoc3RhcnQiOkM9eXI7YnJlYWs7Y2FzZSBXcjpjYXNlIEpyOmNhc2UgSHI6Qz1pcjticmVhaztjYXNlIEtyOkM9dnI7YnJlYWs7Y2FzZSJzY3JvbGwiOkM9ZXI7YnJlYWs7Y2FzZSJ3aGVlbCI6Qz1fcjticmVhaztjYXNlImNvcHkiOmNhc2UiY3V0IjpjYXNlInBhc3RlIjpDPWNyO2JyZWFrO2Nhc2UiZ290cG9pbnRlcmNhcHR1cmUiOmNhc2UibG9zdHBvaW50ZXJjYXB0dXJlIjpjYXNlInBvaW50ZXJjYW5jZWwiOmNhc2UicG9pbnRlcmRvd24iOmNhc2UicG9pbnRlcm1vdmUiOmNhc2UicG9pbnRlcm91dCI6Y2FzZSJwb2ludGVyb3ZlciI6Y2FzZSJwb2ludGVydXAiOkM9Z3J9dmFyIEw9ISEoNCZvKSxCPSFMJiYic2Nyb2xsIj09PXMsJD1MP251bGwhPT14P3grIkNhcHR1cmUiOm51bGw6eDtMPVtdO2Zvcih2YXIgVixVPWE7bnVsbCE9PVU7KXt2YXIgej0oVj1VKS5zdGF0ZU5vZGU7aWYoNT09PVYudGFnJiZudWxsIT09eiYmKFY9eixudWxsIT09JCYmKG51bGwhPSh6PUtiKFUsJCkpJiZMLnB1c2godGYoVSx6LFYpKSkpLEIpYnJlYWs7VT1VLnJldHVybn0wPEwubGVuZ3RoJiYoeD1uZXcgQyh4LGosbnVsbCxpLHUpLHcucHVzaCh7ZXZlbnQ6eCxsaXN0ZW5lcnM6TH0pKX19aWYoISg3Jm8pKXtpZihDPSJtb3VzZW91dCI9PT1zfHwicG9pbnRlcm91dCI9PT1zLCghKHg9Im1vdXNlb3ZlciI9PT1zfHwicG9pbnRlcm92ZXIiPT09cyl8fGk9PT1IZXx8IShqPWkucmVsYXRlZFRhcmdldHx8aS5mcm9tRWxlbWVudCl8fCFXYyhqKSYmIWpbZm5dKSYmKEN8fHgpJiYoeD11LndpbmRvdz09PXU/dTooeD11Lm93bmVyRG9jdW1lbnQpP3guZGVmYXVsdFZpZXd8fHgucGFyZW50V2luZG93OndpbmRvdyxDPyhDPWEsbnVsbCE9PShqPShqPWkucmVsYXRlZFRhcmdldHx8aS50b0VsZW1lbnQpP1djKGopOm51bGwpJiYoaiE9PShCPVZiKGopKXx8NSE9PWoudGFnJiY2IT09ai50YWcpJiYoaj1udWxsKSk6KEM9bnVsbCxqPWEpLEMhPT1qKSl7aWYoTD1ycix6PSJvbk1vdXNlTGVhdmUiLCQ9Im9uTW91c2VFbnRlciIsVT0ibW91c2UiLCJwb2ludGVyb3V0IiE9PXMmJiJwb2ludGVyb3ZlciIhPT1zfHwoTD1ncix6PSJvblBvaW50ZXJMZWF2ZSIsJD0ib25Qb2ludGVyRW50ZXIiLFU9InBvaW50ZXIiKSxCPW51bGw9PUM/eDp1ZShDKSxWPW51bGw9PWo/eDp1ZShqKSwoeD1uZXcgTCh6LFUrImxlYXZlIixDLGksdSkpLnRhcmdldD1CLHgucmVsYXRlZFRhcmdldD1WLHo9bnVsbCxXYyh1KT09PWEmJigoTD1uZXcgTCgkLFUrImVudGVyIixqLGksdSkpLnRhcmdldD1WLEwucmVsYXRlZFRhcmdldD1CLHo9TCksQj16LEMmJmopZTp7Zm9yKCQ9aixVPTAsVj1MPUM7VjtWPXZmKFYpKVUrKztmb3IoVj0wLHo9JDt6O3o9dmYoeikpVisrO2Zvcig7MDxVLVY7KUw9dmYoTCksVS0tO2Zvcig7MDxWLVU7KSQ9dmYoJCksVi0tO2Zvcig7VS0tOyl7aWYoTD09PSR8fG51bGwhPT0kJiZMPT09JC5hbHRlcm5hdGUpYnJlYWsgZTtMPXZmKEwpLCQ9dmYoJCl9TD1udWxsfWVsc2UgTD1udWxsO251bGwhPT1DJiZ3Zih3LHgsQyxMLCExKSxudWxsIT09aiYmbnVsbCE9PUImJndmKHcsQixqLEwsITApfWlmKCJzZWxlY3QiPT09KEM9KHg9YT91ZShhKTp3aW5kb3cpLm5vZGVOYW1lJiZ4Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpfHwiaW5wdXQiPT09QyYmImZpbGUiPT09eC50eXBlKXZhciBZPXZlO2Vsc2UgaWYobWUoeCkpaWYoVHIpWT1GZTtlbHNle1k9RGU7dmFyIFo9Q2V9ZWxzZShDPXgubm9kZU5hbWUpJiYiaW5wdXQiPT09Qy50b0xvd2VyQ2FzZSgpJiYoImNoZWNrYm94Ij09PXgudHlwZXx8InJhZGlvIj09PXgudHlwZSkmJihZPUVlKTtzd2l0Y2goWSYmKFk9WShzLGEpKT9uZSh3LFksaSx1KTooWiYmWihzLHgsYSksImZvY3Vzb3V0Ij09PXMmJihaPXguX3dyYXBwZXJTdGF0ZSkmJlouY29udHJvbGxlZCYmIm51bWJlciI9PT14LnR5cGUmJmNiKHgsIm51bWJlciIseC52YWx1ZSkpLFo9YT91ZShhKTp3aW5kb3cscyl7Y2FzZSJmb2N1c2luIjoobWUoWil8fCJ0cnVlIj09PVouY29udGVudEVkaXRhYmxlKSYmKEZyPVosQnI9YSwkcj1udWxsKTticmVhaztjYXNlImZvY3Vzb3V0Ijokcj1Ccj1Gcj1udWxsO2JyZWFrO2Nhc2UibW91c2Vkb3duIjpxcj0hMDticmVhaztjYXNlImNvbnRleHRtZW51IjpjYXNlIm1vdXNldXAiOmNhc2UiZHJhZ2VuZCI6cXI9ITEsVWUodyxpLHUpO2JyZWFrO2Nhc2Uic2VsZWN0aW9uY2hhbmdlIjppZihMcilicmVhaztjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOlVlKHcsaSx1KX12YXIgZWU7aWYoRXIpZTp7c3dpdGNoKHMpe2Nhc2UiY29tcG9zaXRpb25zdGFydCI6dmFyIGllPSJvbkNvbXBvc2l0aW9uU3RhcnQiO2JyZWFrIGU7Y2FzZSJjb21wb3NpdGlvbmVuZCI6aWU9Im9uQ29tcG9zaXRpb25FbmQiO2JyZWFrIGU7Y2FzZSJjb21wb3NpdGlvbnVwZGF0ZSI6aWU9Im9uQ29tcG9zaXRpb25VcGRhdGUiO2JyZWFrIGV9aWU9dm9pZCAwfWVsc2UgQXI/Z2UocyxpKSYmKGllPSJvbkNvbXBvc2l0aW9uRW5kIik6ImtleWRvd24iPT09cyYmMjI5PT09aS5rZXlDb2RlJiYoaWU9Im9uQ29tcG9zaXRpb25TdGFydCIpO2llJiYoa3ImJiJrbyIhPT1pLmxvY2FsZSYmKEFyfHwib25Db21wb3NpdGlvblN0YXJ0IiE9PWllPyJvbkNvbXBvc2l0aW9uRW5kIj09PWllJiZBciYmKGVlPW5kKCkpOihKdD0idmFsdWUiaW4oV3Q9dSk/V3QudmFsdWU6V3QudGV4dENvbnRlbnQsQXI9ITApKSwwPChaPW9lKGEsaWUpKS5sZW5ndGgmJihpZT1uZXcgbHIoaWUscyxudWxsLGksdSksdy5wdXNoKHtldmVudDppZSxsaXN0ZW5lcnM6Wn0pLGVlP2llLmRhdGE9ZWU6bnVsbCE9PShlZT1oZShpKSkmJihpZS5kYXRhPWVlKSkpLChlZT14cj9mdW5jdGlvbiBqZShzLG8pe3N3aXRjaChzKXtjYXNlImNvbXBvc2l0aW9uZW5kIjpyZXR1cm4gaGUobyk7Y2FzZSJrZXlwcmVzcyI6cmV0dXJuIDMyIT09by53aGljaD9udWxsOihDcj0hMCxPcik7Y2FzZSJ0ZXh0SW5wdXQiOnJldHVybihzPW8uZGF0YSk9PT1PciYmQ3I/bnVsbDpzO2RlZmF1bHQ6cmV0dXJuIG51bGx9fShzLGkpOmZ1bmN0aW9uIGtlKHMsbyl7aWYoQXIpcmV0dXJuImNvbXBvc2l0aW9uZW5kIj09PXN8fCFFciYmZ2UocyxvKT8ocz1uZCgpLEh0PUp0PVd0PW51bGwsQXI9ITEscyk6bnVsbDtzd2l0Y2gocyl7Y2FzZSJwYXN0ZSI6ZGVmYXVsdDpyZXR1cm4gbnVsbDtjYXNlImtleXByZXNzIjppZighKG8uY3RybEtleXx8by5hbHRLZXl8fG8ubWV0YUtleSl8fG8uY3RybEtleSYmby5hbHRLZXkpe2lmKG8uY2hhciYmMTxvLmNoYXIubGVuZ3RoKXJldHVybiBvLmNoYXI7aWYoby53aGljaClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShvLndoaWNoKX1yZXR1cm4gbnVsbDtjYXNlImNvbXBvc2l0aW9uZW5kIjpyZXR1cm4ga3ImJiJrbyIhPT1vLmxvY2FsZT9udWxsOm8uZGF0YX19KHMsaSkpJiYoMDwoYT1vZShhLCJvbkJlZm9yZUlucHV0IikpLmxlbmd0aCYmKHU9bmV3IGxyKCJvbkJlZm9yZUlucHV0IiwiYmVmb3JlaW5wdXQiLG51bGwsaSx1KSx3LnB1c2goe2V2ZW50OnUsbGlzdGVuZXJzOmF9KSx1LmRhdGE9ZWUpKX1zZSh3LG8pfSkpfWZ1bmN0aW9uIHRmKHMsbyxpKXtyZXR1cm57aW5zdGFuY2U6cyxsaXN0ZW5lcjpvLGN1cnJlbnRUYXJnZXQ6aX19ZnVuY3Rpb24gb2UocyxvKXtmb3IodmFyIGk9bysiQ2FwdHVyZSIsYT1bXTtudWxsIT09czspe3ZhciB1PXMsXz11LnN0YXRlTm9kZTs1PT09dS50YWcmJm51bGwhPT1fJiYodT1fLG51bGwhPShfPUtiKHMsaSkpJiZhLnVuc2hpZnQodGYocyxfLHUpKSxudWxsIT0oXz1LYihzLG8pKSYmYS5wdXNoKHRmKHMsXyx1KSkpLHM9cy5yZXR1cm59cmV0dXJuIGF9ZnVuY3Rpb24gdmYocyl7aWYobnVsbD09PXMpcmV0dXJuIG51bGw7ZG97cz1zLnJldHVybn13aGlsZShzJiY1IT09cy50YWcpO3JldHVybiBzfHxudWxsfWZ1bmN0aW9uIHdmKHMsbyxpLGEsdSl7Zm9yKHZhciBfPW8uX3JlYWN0TmFtZSx3PVtdO251bGwhPT1pJiZpIT09YTspe3ZhciB4PWksQz14LmFsdGVybmF0ZSxqPXguc3RhdGVOb2RlO2lmKG51bGwhPT1DJiZDPT09YSlicmVhazs1PT09eC50YWcmJm51bGwhPT1qJiYoeD1qLHU/bnVsbCE9KEM9S2IoaSxfKSkmJncudW5zaGlmdCh0ZihpLEMseCkpOnV8fG51bGwhPShDPUtiKGksXykpJiZ3LnB1c2godGYoaSxDLHgpKSksaT1pLnJldHVybn0wIT09dy5sZW5ndGgmJnMucHVzaCh7ZXZlbnQ6byxsaXN0ZW5lcnM6d30pfXZhciBybj0vXHJcbj8vZyxubj0vXHUwMDAwfFx1RkZGRC9nO2Z1bmN0aW9uIHpmKHMpe3JldHVybigic3RyaW5nIj09dHlwZW9mIHM/czoiIitzKS5yZXBsYWNlKHJuLCJcbiIpLnJlcGxhY2Uobm4sIiIpfWZ1bmN0aW9uIEFmKHMsbyxpKXtpZihvPXpmKG8pLHpmKHMpIT09byYmaSl0aHJvdyBFcnJvcihwKDQyNSkpfWZ1bmN0aW9uIEJmKCl7fXZhciBzbj1udWxsLG9uPW51bGw7ZnVuY3Rpb24gRWYocyxvKXtyZXR1cm4idGV4dGFyZWEiPT09c3x8Im5vc2NyaXB0Ij09PXN8fCJzdHJpbmciPT10eXBlb2Ygby5jaGlsZHJlbnx8Im51bWJlciI9PXR5cGVvZiBvLmNoaWxkcmVufHwib2JqZWN0Ij09dHlwZW9mIG8uZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJm51bGwhPT1vLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT1vLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbH12YXIgYW49ImZ1bmN0aW9uIj09dHlwZW9mIHNldFRpbWVvdXQ/c2V0VGltZW91dDp2b2lkIDAsY249ImZ1bmN0aW9uIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6dm9pZCAwLGxuPSJmdW5jdGlvbiI9PXR5cGVvZiBQcm9taXNlP1Byb21pc2U6dm9pZCAwLHVuPSJmdW5jdGlvbiI9PXR5cGVvZiBxdWV1ZU1pY3JvdGFzaz9xdWV1ZU1pY3JvdGFzazp2b2lkIDAhPT1sbj9mdW5jdGlvbihzKXtyZXR1cm4gbG4ucmVzb2x2ZShudWxsKS50aGVuKHMpLmNhdGNoKElmKX06YW47ZnVuY3Rpb24gSWYocyl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0aHJvdyBzfSkpfWZ1bmN0aW9uIEtmKHMsbyl7dmFyIGk9byxhPTA7ZG97dmFyIHU9aS5uZXh0U2libGluZztpZihzLnJlbW92ZUNoaWxkKGkpLHUmJjg9PT11Lm5vZGVUeXBlKWlmKCIvJCI9PT0oaT11LmRhdGEpKXtpZigwPT09YSlyZXR1cm4gcy5yZW1vdmVDaGlsZCh1KSx2b2lkIGJkKG8pO2EtLX1lbHNlIiQiIT09aSYmIiQ/IiE9PWkmJiIkISIhPT1pfHxhKys7aT11fXdoaWxlKGkpO2JkKG8pfWZ1bmN0aW9uIExmKHMpe2Zvcig7bnVsbCE9cztzPXMubmV4dFNpYmxpbmcpe3ZhciBvPXMubm9kZVR5cGU7aWYoMT09PW98fDM9PT1vKWJyZWFrO2lmKDg9PT1vKXtpZigiJCI9PT0obz1zLmRhdGEpfHwiJCEiPT09b3x8IiQ/Ij09PW8pYnJlYWs7aWYoIi8kIj09PW8pcmV0dXJuIG51bGx9fXJldHVybiBzfWZ1bmN0aW9uIE1mKHMpe3M9cy5wcmV2aW91c1NpYmxpbmc7Zm9yKHZhciBvPTA7czspe2lmKDg9PT1zLm5vZGVUeXBlKXt2YXIgaT1zLmRhdGE7aWYoIiQiPT09aXx8IiQhIj09PWl8fCIkPyI9PT1pKXtpZigwPT09bylyZXR1cm4gcztvLS19ZWxzZSIvJCI9PT1pJiZvKyt9cz1zLnByZXZpb3VzU2libGluZ31yZXR1cm4gbnVsbH12YXIgcG49TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiksaG49Il9fcmVhY3RGaWJlciQiK3BuLGRuPSJfX3JlYWN0UHJvcHMkIitwbixmbj0iX19yZWFjdENvbnRhaW5lciQiK3BuLG1uPSJfX3JlYWN0RXZlbnRzJCIrcG4sZ249Il9fcmVhY3RMaXN0ZW5lcnMkIitwbix5bj0iX19yZWFjdEhhbmRsZXMkIitwbjtmdW5jdGlvbiBXYyhzKXt2YXIgbz1zW2huXTtpZihvKXJldHVybiBvO2Zvcih2YXIgaT1zLnBhcmVudE5vZGU7aTspe2lmKG89aVtmbl18fGlbaG5dKXtpZihpPW8uYWx0ZXJuYXRlLG51bGwhPT1vLmNoaWxkfHxudWxsIT09aSYmbnVsbCE9PWkuY2hpbGQpZm9yKHM9TWYocyk7bnVsbCE9PXM7KXtpZihpPXNbaG5dKXJldHVybiBpO3M9TWYocyl9cmV0dXJuIG99aT0ocz1pKS5wYXJlbnROb2RlfXJldHVybiBudWxsfWZ1bmN0aW9uIENiKHMpe3JldHVybiEocz1zW2huXXx8c1tmbl0pfHw1IT09cy50YWcmJjYhPT1zLnRhZyYmMTMhPT1zLnRhZyYmMyE9PXMudGFnP251bGw6c31mdW5jdGlvbiB1ZShzKXtpZig1PT09cy50YWd8fDY9PT1zLnRhZylyZXR1cm4gcy5zdGF0ZU5vZGU7dGhyb3cgRXJyb3IocCgzMykpfWZ1bmN0aW9uIERiKHMpe3JldHVybiBzW2RuXXx8bnVsbH12YXIgdm49W10sYm49LTE7ZnVuY3Rpb24gVWYocyl7cmV0dXJue2N1cnJlbnQ6c319ZnVuY3Rpb24gRShzKXswPmJufHwocy5jdXJyZW50PXZuW2JuXSx2bltibl09bnVsbCxibi0tKX1mdW5jdGlvbiBHKHMsbyl7Ym4rKyx2bltibl09cy5jdXJyZW50LHMuY3VycmVudD1vfXZhciBfbj17fSxTbj1VZihfbiksRW49VWYoITEpLHduPV9uO2Z1bmN0aW9uIFlmKHMsbyl7dmFyIGk9cy50eXBlLmNvbnRleHRUeXBlcztpZighaSlyZXR1cm4gX247dmFyIGE9cy5zdGF0ZU5vZGU7aWYoYSYmYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PT09bylyZXR1cm4gYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dDt2YXIgdSxfPXt9O2Zvcih1IGluIGkpX1t1XT1vW3VdO3JldHVybiBhJiYoKHM9cy5zdGF0ZU5vZGUpLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQ9byxzLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0PV8pLF99ZnVuY3Rpb24gWmYocyl7cmV0dXJuIG51bGwhPShzPXMuY2hpbGRDb250ZXh0VHlwZXMpfWZ1bmN0aW9uICRmKCl7RShFbiksRShTbil9ZnVuY3Rpb24gYWcocyxvLGkpe2lmKFNuLmN1cnJlbnQhPT1fbil0aHJvdyBFcnJvcihwKDE2OCkpO0coU24sbyksRyhFbixpKX1mdW5jdGlvbiBiZyhzLG8saSl7dmFyIGE9cy5zdGF0ZU5vZGU7aWYobz1vLmNoaWxkQ29udGV4dFR5cGVzLCJmdW5jdGlvbiIhPXR5cGVvZiBhLmdldENoaWxkQ29udGV4dClyZXR1cm4gaTtmb3IodmFyIHUgaW4gYT1hLmdldENoaWxkQ29udGV4dCgpKWlmKCEodSBpbiBvKSl0aHJvdyBFcnJvcihwKDEwOCxSYShzKXx8IlVua25vd24iLHUpKTtyZXR1cm4gd2Uoe30saSxhKX1mdW5jdGlvbiBjZyhzKXtyZXR1cm4gcz0ocz1zLnN0YXRlTm9kZSkmJnMuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHR8fF9uLHduPVNuLmN1cnJlbnQsRyhTbixzKSxHKEVuLEVuLmN1cnJlbnQpLCEwfWZ1bmN0aW9uIGRnKHMsbyxpKXt2YXIgYT1zLnN0YXRlTm9kZTtpZighYSl0aHJvdyBFcnJvcihwKDE2OSkpO2k/KHM9YmcocyxvLHduKSxhLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0PXMsRShFbiksRShTbiksRyhTbixzKSk6RShFbiksRyhFbixpKX12YXIgeG49bnVsbCxrbj0hMSxPbj0hMTtmdW5jdGlvbiBoZyhzKXtudWxsPT09eG4/eG49W3NdOnhuLnB1c2gocyl9ZnVuY3Rpb24gamcoKXtpZighT24mJm51bGwhPT14bil7T249ITA7dmFyIHM9MCxvPUN0O3RyeXt2YXIgaT14bjtmb3IoQ3Q9MTtzPGkubGVuZ3RoO3MrKyl7dmFyIGE9aVtzXTtkb3thPWEoITApfXdoaWxlKG51bGwhPT1hKX14bj1udWxsLGtuPSExfWNhdGNoKG8pe3Rocm93IG51bGwhPT14biYmKHhuPXhuLnNsaWNlKHMrMSkpLGN0KG10LGpnKSxvfWZpbmFsbHl7Q3Q9byxPbj0hMX19cmV0dXJuIG51bGx9dmFyIENuPVtdLEFuPTAsam49bnVsbCxQbj0wLEluPVtdLFRuPTAsTm49bnVsbCxNbj0xLFJuPSIiO2Z1bmN0aW9uIHRnKHMsbyl7Q25bQW4rK109UG4sQ25bQW4rK109am4sam49cyxQbj1vfWZ1bmN0aW9uIHVnKHMsbyxpKXtJbltUbisrXT1NbixJbltUbisrXT1SbixJbltUbisrXT1ObixObj1zO3ZhciBhPU1uO3M9Um47dmFyIHU9MzItRXQoYSktMTthJj1+KDE8PHUpLGkrPTE7dmFyIF89MzItRXQobykrdTtpZigzMDxfKXt2YXIgdz11LXUlNTtfPShhJigxPDx3KS0xKS50b1N0cmluZygzMiksYT4+PXcsdS09dyxNbj0xPDwzMi1FdChvKSt1fGk8PHV8YSxSbj1fK3N9ZWxzZSBNbj0xPDxffGk8PHV8YSxSbj1zfWZ1bmN0aW9uIHZnKHMpe251bGwhPT1zLnJldHVybiYmKHRnKHMsMSksdWcocywxLDApKX1mdW5jdGlvbiB3ZyhzKXtmb3IoO3M9PT1qbjspam49Q25bLS1Bbl0sQ25bQW5dPW51bGwsUG49Q25bLS1Bbl0sQ25bQW5dPW51bGw7Zm9yKDtzPT09Tm47KU5uPUluWy0tVG5dLEluW1RuXT1udWxsLFJuPUluWy0tVG5dLEluW1RuXT1udWxsLE1uPUluWy0tVG5dLEluW1RuXT1udWxsfXZhciBEbj1udWxsLExuPW51bGwsRm49ITEsQm49bnVsbDtmdW5jdGlvbiBBZyhzLG8pe3ZhciBpPUJnKDUsbnVsbCxudWxsLDApO2kuZWxlbWVudFR5cGU9IkRFTEVURUQiLGkuc3RhdGVOb2RlPW8saS5yZXR1cm49cyxudWxsPT09KG89cy5kZWxldGlvbnMpPyhzLmRlbGV0aW9ucz1baV0scy5mbGFnc3w9MTYpOm8ucHVzaChpKX1mdW5jdGlvbiBDZyhzLG8pe3N3aXRjaChzLnRhZyl7Y2FzZSA1OnZhciBpPXMudHlwZTtyZXR1cm4gbnVsbCE9PShvPTEhPT1vLm5vZGVUeXBlfHxpLnRvTG93ZXJDYXNlKCkhPT1vLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk/bnVsbDpvKSYmKHMuc3RhdGVOb2RlPW8sRG49cyxMbj1MZihvLmZpcnN0Q2hpbGQpLCEwKTtjYXNlIDY6cmV0dXJuIG51bGwhPT0obz0iIj09PXMucGVuZGluZ1Byb3BzfHwzIT09by5ub2RlVHlwZT9udWxsOm8pJiYocy5zdGF0ZU5vZGU9byxEbj1zLExuPW51bGwsITApO2Nhc2UgMTM6cmV0dXJuIG51bGwhPT0obz04IT09by5ub2RlVHlwZT9udWxsOm8pJiYoaT1udWxsIT09Tm4/e2lkOk1uLG92ZXJmbG93OlJufTpudWxsLHMubWVtb2l6ZWRTdGF0ZT17ZGVoeWRyYXRlZDpvLHRyZWVDb250ZXh0OmkscmV0cnlMYW5lOjEwNzM3NDE4MjR9LChpPUJnKDE4LG51bGwsbnVsbCwwKSkuc3RhdGVOb2RlPW8saS5yZXR1cm49cyxzLmNoaWxkPWksRG49cyxMbj1udWxsLCEwKTtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBEZyhzKXtyZXR1cm4hKCEoMSZzLm1vZGUpfHwxMjgmcy5mbGFncyl9ZnVuY3Rpb24gRWcocyl7aWYoRm4pe3ZhciBvPUxuO2lmKG8pe3ZhciBpPW87aWYoIUNnKHMsbykpe2lmKERnKHMpKXRocm93IEVycm9yKHAoNDE4KSk7bz1MZihpLm5leHRTaWJsaW5nKTt2YXIgYT1EbjtvJiZDZyhzLG8pP0FnKGEsaSk6KHMuZmxhZ3M9LTQwOTcmcy5mbGFnc3wyLEZuPSExLERuPXMpfX1lbHNle2lmKERnKHMpKXRocm93IEVycm9yKHAoNDE4KSk7cy5mbGFncz0tNDA5NyZzLmZsYWdzfDIsRm49ITEsRG49c319fWZ1bmN0aW9uIEZnKHMpe2ZvcihzPXMucmV0dXJuO251bGwhPT1zJiY1IT09cy50YWcmJjMhPT1zLnRhZyYmMTMhPT1zLnRhZzspcz1zLnJldHVybjtEbj1zfWZ1bmN0aW9uIEdnKHMpe2lmKHMhPT1EbilyZXR1cm4hMTtpZighRm4pcmV0dXJuIEZnKHMpLEZuPSEwLCExO3ZhciBvO2lmKChvPTMhPT1zLnRhZykmJiEobz01IT09cy50YWcpJiYobz0iaGVhZCIhPT0obz1zLnR5cGUpJiYiYm9keSIhPT1vJiYhRWYocy50eXBlLHMubWVtb2l6ZWRQcm9wcykpLG8mJihvPUxuKSl7aWYoRGcocykpdGhyb3cgSGcoKSxFcnJvcihwKDQxOCkpO2Zvcig7bzspQWcocyxvKSxvPUxmKG8ubmV4dFNpYmxpbmcpfWlmKEZnKHMpLDEzPT09cy50YWcpe2lmKCEocz1udWxsIT09KHM9cy5tZW1vaXplZFN0YXRlKT9zLmRlaHlkcmF0ZWQ6bnVsbCkpdGhyb3cgRXJyb3IocCgzMTcpKTtlOntmb3Iocz1zLm5leHRTaWJsaW5nLG89MDtzOyl7aWYoOD09PXMubm9kZVR5cGUpe3ZhciBpPXMuZGF0YTtpZigiLyQiPT09aSl7aWYoMD09PW8pe0xuPUxmKHMubmV4dFNpYmxpbmcpO2JyZWFrIGV9by0tfWVsc2UiJCIhPT1pJiYiJCEiIT09aSYmIiQ/IiE9PWl8fG8rK31zPXMubmV4dFNpYmxpbmd9TG49bnVsbH19ZWxzZSBMbj1Ebj9MZihzLnN0YXRlTm9kZS5uZXh0U2libGluZyk6bnVsbDtyZXR1cm4hMH1mdW5jdGlvbiBIZygpe2Zvcih2YXIgcz1MbjtzOylzPUxmKHMubmV4dFNpYmxpbmcpfWZ1bmN0aW9uIElnKCl7TG49RG49bnVsbCxGbj0hMX1mdW5jdGlvbiBKZyhzKXtudWxsPT09Qm4/Qm49W3NdOkJuLnB1c2gocyl9dmFyICRuPVUuUmVhY3RDdXJyZW50QmF0Y2hDb25maWc7ZnVuY3Rpb24gTGcocyxvLGkpe2lmKG51bGwhPT0ocz1pLnJlZikmJiJmdW5jdGlvbiIhPXR5cGVvZiBzJiYib2JqZWN0IiE9dHlwZW9mIHMpe2lmKGkuX293bmVyKXtpZihpPWkuX293bmVyKXtpZigxIT09aS50YWcpdGhyb3cgRXJyb3IocCgzMDkpKTt2YXIgYT1pLnN0YXRlTm9kZX1pZighYSl0aHJvdyBFcnJvcihwKDE0NyxzKSk7dmFyIHU9YSxfPSIiK3M7cmV0dXJuIG51bGwhPT1vJiZudWxsIT09by5yZWYmJiJmdW5jdGlvbiI9PXR5cGVvZiBvLnJlZiYmby5yZWYuX3N0cmluZ1JlZj09PV8/by5yZWY6KG89ZnVuY3Rpb24ocyl7dmFyIG89dS5yZWZzO251bGw9PT1zP2RlbGV0ZSBvW19dOm9bX109c30sby5fc3RyaW5nUmVmPV8sbyl9aWYoInN0cmluZyIhPXR5cGVvZiBzKXRocm93IEVycm9yKHAoMjg0KSk7aWYoIWkuX293bmVyKXRocm93IEVycm9yKHAoMjkwLHMpKX1yZXR1cm4gc31mdW5jdGlvbiBNZyhzLG8pe3Rocm93IHM9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLEVycm9yKHAoMzEsIltvYmplY3QgT2JqZWN0XSI9PT1zPyJvYmplY3Qgd2l0aCBrZXlzIHsiK09iamVjdC5rZXlzKG8pLmpvaW4oIiwgIikrIn0iOnMpKX1mdW5jdGlvbiBOZyhzKXtyZXR1cm4oMCxzLl9pbml0KShzLl9wYXlsb2FkKX1mdW5jdGlvbiBPZyhzKXtmdW5jdGlvbiBiKG8saSl7aWYocyl7dmFyIGE9by5kZWxldGlvbnM7bnVsbD09PWE/KG8uZGVsZXRpb25zPVtpXSxvLmZsYWdzfD0xNik6YS5wdXNoKGkpfX1mdW5jdGlvbiBjKG8saSl7aWYoIXMpcmV0dXJuIG51bGw7Zm9yKDtudWxsIT09aTspYihvLGkpLGk9aS5zaWJsaW5nO3JldHVybiBudWxsfWZ1bmN0aW9uIGQocyxvKXtmb3Iocz1uZXcgTWFwO251bGwhPT1vOyludWxsIT09by5rZXk/cy5zZXQoby5rZXksbyk6cy5zZXQoby5pbmRleCxvKSxvPW8uc2libGluZztyZXR1cm4gc31mdW5jdGlvbiBlKHMsbyl7cmV0dXJuKHM9UGcocyxvKSkuaW5kZXg9MCxzLnNpYmxpbmc9bnVsbCxzfWZ1bmN0aW9uIGYobyxpLGEpe3JldHVybiBvLmluZGV4PWEscz9udWxsIT09KGE9by5hbHRlcm5hdGUpPyhhPWEuaW5kZXgpPGk/KG8uZmxhZ3N8PTIsaSk6YTooby5mbGFnc3w9MixpKTooby5mbGFnc3w9MTA0ODU3NixpKX1mdW5jdGlvbiBnKG8pe3JldHVybiBzJiZudWxsPT09by5hbHRlcm5hdGUmJihvLmZsYWdzfD0yKSxvfWZ1bmN0aW9uIGgocyxvLGksYSl7cmV0dXJuIG51bGw9PT1vfHw2IT09by50YWc/KChvPVFnKGkscy5tb2RlLGEpKS5yZXR1cm49cyxvKTooKG89ZShvLGkpKS5yZXR1cm49cyxvKX1mdW5jdGlvbiBrKHMsbyxpLGEpe3ZhciB1PWkudHlwZTtyZXR1cm4gdT09PVo/bShzLG8saS5wcm9wcy5jaGlsZHJlbixhLGkua2V5KTpudWxsIT09byYmKG8uZWxlbWVudFR5cGU9PT11fHwib2JqZWN0Ij09dHlwZW9mIHUmJm51bGwhPT11JiZ1LiQkdHlwZW9mPT09eWUmJk5nKHUpPT09by50eXBlKT8oKGE9ZShvLGkucHJvcHMpKS5yZWY9TGcocyxvLGkpLGEucmV0dXJuPXMsYSk6KChhPVJnKGkudHlwZSxpLmtleSxpLnByb3BzLG51bGwscy5tb2RlLGEpKS5yZWY9TGcocyxvLGkpLGEucmV0dXJuPXMsYSl9ZnVuY3Rpb24gbChzLG8saSxhKXtyZXR1cm4gbnVsbD09PW98fDQhPT1vLnRhZ3x8by5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyE9PWkuY29udGFpbmVySW5mb3x8by5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb24hPT1pLmltcGxlbWVudGF0aW9uPygobz1TZyhpLHMubW9kZSxhKSkucmV0dXJuPXMsbyk6KChvPWUobyxpLmNoaWxkcmVufHxbXSkpLnJldHVybj1zLG8pfWZ1bmN0aW9uIG0ocyxvLGksYSx1KXtyZXR1cm4gbnVsbD09PW98fDchPT1vLnRhZz8oKG89VGcoaSxzLm1vZGUsYSx1KSkucmV0dXJuPXMsbyk6KChvPWUobyxpKSkucmV0dXJuPXMsbyl9ZnVuY3Rpb24gcShzLG8saSl7aWYoInN0cmluZyI9PXR5cGVvZiBvJiYiIiE9PW98fCJudW1iZXIiPT10eXBlb2YgbylyZXR1cm4obz1RZygiIitvLHMubW9kZSxpKSkucmV0dXJuPXMsbztpZigib2JqZWN0Ij09dHlwZW9mIG8mJm51bGwhPT1vKXtzd2l0Y2goby4kJHR5cGVvZil7Y2FzZSB6OnJldHVybihpPVJnKG8udHlwZSxvLmtleSxvLnByb3BzLG51bGwscy5tb2RlLGkpKS5yZWY9TGcocyxudWxsLG8pLGkucmV0dXJuPXMsaTtjYXNlIFk6cmV0dXJuKG89U2cobyxzLm1vZGUsaSkpLnJldHVybj1zLG87Y2FzZSB5ZTpyZXR1cm4gcShzLCgwLG8uX2luaXQpKG8uX3BheWxvYWQpLGkpfWlmKFBlKG8pfHxLYShvKSlyZXR1cm4obz1UZyhvLHMubW9kZSxpLG51bGwpKS5yZXR1cm49cyxvO01nKHMsbyl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gcihzLG8saSxhKXt2YXIgdT1udWxsIT09bz9vLmtleTpudWxsO2lmKCJzdHJpbmciPT10eXBlb2YgaSYmIiIhPT1pfHwibnVtYmVyIj09dHlwZW9mIGkpcmV0dXJuIG51bGwhPT11P251bGw6aChzLG8sIiIraSxhKTtpZigib2JqZWN0Ij09dHlwZW9mIGkmJm51bGwhPT1pKXtzd2l0Y2goaS4kJHR5cGVvZil7Y2FzZSB6OnJldHVybiBpLmtleT09PXU/ayhzLG8saSxhKTpudWxsO2Nhc2UgWTpyZXR1cm4gaS5rZXk9PT11P2wocyxvLGksYSk6bnVsbDtjYXNlIHllOnJldHVybiByKHMsbywodT1pLl9pbml0KShpLl9wYXlsb2FkKSxhKX1pZihQZShpKXx8S2EoaSkpcmV0dXJuIG51bGwhPT11P251bGw6bShzLG8saSxhLG51bGwpO01nKHMsaSl9cmV0dXJuIG51bGx9ZnVuY3Rpb24geShzLG8saSxhLHUpe2lmKCJzdHJpbmciPT10eXBlb2YgYSYmIiIhPT1hfHwibnVtYmVyIj09dHlwZW9mIGEpcmV0dXJuIGgobyxzPXMuZ2V0KGkpfHxudWxsLCIiK2EsdSk7aWYoIm9iamVjdCI9PXR5cGVvZiBhJiZudWxsIT09YSl7c3dpdGNoKGEuJCR0eXBlb2Ype2Nhc2UgejpyZXR1cm4gayhvLHM9cy5nZXQobnVsbD09PWEua2V5P2k6YS5rZXkpfHxudWxsLGEsdSk7Y2FzZSBZOnJldHVybiBsKG8scz1zLmdldChudWxsPT09YS5rZXk/aTphLmtleSl8fG51bGwsYSx1KTtjYXNlIHllOnJldHVybiB5KHMsbyxpLCgwLGEuX2luaXQpKGEuX3BheWxvYWQpLHUpfWlmKFBlKGEpfHxLYShhKSlyZXR1cm4gbShvLHM9cy5nZXQoaSl8fG51bGwsYSx1LG51bGwpO01nKG8sYSl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gbihvLGksYSx1KXtmb3IodmFyIF89bnVsbCx3PW51bGwseD1pLEM9aT0wLGo9bnVsbDtudWxsIT09eCYmQzxhLmxlbmd0aDtDKyspe3guaW5kZXg+Qz8oaj14LHg9bnVsbCk6aj14LnNpYmxpbmc7dmFyIEw9cihvLHgsYVtDXSx1KTtpZihudWxsPT09TCl7bnVsbD09PXgmJih4PWopO2JyZWFrfXMmJngmJm51bGw9PT1MLmFsdGVybmF0ZSYmYihvLHgpLGk9ZihMLGksQyksbnVsbD09PXc/Xz1MOncuc2libGluZz1MLHc9TCx4PWp9aWYoQz09PWEubGVuZ3RoKXJldHVybiBjKG8seCksRm4mJnRnKG8sQyksXztpZihudWxsPT09eCl7Zm9yKDtDPGEubGVuZ3RoO0MrKyludWxsIT09KHg9cShvLGFbQ10sdSkpJiYoaT1mKHgsaSxDKSxudWxsPT09dz9fPXg6dy5zaWJsaW5nPXgsdz14KTtyZXR1cm4gRm4mJnRnKG8sQyksX31mb3IoeD1kKG8seCk7QzxhLmxlbmd0aDtDKyspbnVsbCE9PShqPXkoeCxvLEMsYVtDXSx1KSkmJihzJiZudWxsIT09ai5hbHRlcm5hdGUmJnguZGVsZXRlKG51bGw9PT1qLmtleT9DOmoua2V5KSxpPWYoaixpLEMpLG51bGw9PT13P189ajp3LnNpYmxpbmc9aix3PWopO3JldHVybiBzJiZ4LmZvckVhY2goKGZ1bmN0aW9uKHMpe3JldHVybiBiKG8scyl9KSksRm4mJnRnKG8sQyksX31mdW5jdGlvbiB0KG8saSxhLHUpe3ZhciBfPUthKGEpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBfKXRocm93IEVycm9yKHAoMTUwKSk7aWYobnVsbD09KGE9Xy5jYWxsKGEpKSl0aHJvdyBFcnJvcihwKDE1MSkpO2Zvcih2YXIgdz1fPW51bGwseD1pLEM9aT0wLGo9bnVsbCxMPWEubmV4dCgpO251bGwhPT14JiYhTC5kb25lO0MrKyxMPWEubmV4dCgpKXt4LmluZGV4PkM/KGo9eCx4PW51bGwpOmo9eC5zaWJsaW5nO3ZhciBCPXIobyx4LEwudmFsdWUsdSk7aWYobnVsbD09PUIpe251bGw9PT14JiYoeD1qKTticmVha31zJiZ4JiZudWxsPT09Qi5hbHRlcm5hdGUmJmIobyx4KSxpPWYoQixpLEMpLG51bGw9PT13P189Qjp3LnNpYmxpbmc9Qix3PUIseD1qfWlmKEwuZG9uZSlyZXR1cm4gYyhvLHgpLEZuJiZ0ZyhvLEMpLF87aWYobnVsbD09PXgpe2Zvcig7IUwuZG9uZTtDKyssTD1hLm5leHQoKSludWxsIT09KEw9cShvLEwudmFsdWUsdSkpJiYoaT1mKEwsaSxDKSxudWxsPT09dz9fPUw6dy5zaWJsaW5nPUwsdz1MKTtyZXR1cm4gRm4mJnRnKG8sQyksX31mb3IoeD1kKG8seCk7IUwuZG9uZTtDKyssTD1hLm5leHQoKSludWxsIT09KEw9eSh4LG8sQyxMLnZhbHVlLHUpKSYmKHMmJm51bGwhPT1MLmFsdGVybmF0ZSYmeC5kZWxldGUobnVsbD09PUwua2V5P0M6TC5rZXkpLGk9ZihMLGksQyksbnVsbD09PXc/Xz1MOncuc2libGluZz1MLHc9TCk7cmV0dXJuIHMmJnguZm9yRWFjaCgoZnVuY3Rpb24ocyl7cmV0dXJuIGIobyxzKX0pKSxGbiYmdGcobyxDKSxffXJldHVybiBmdW5jdGlvbiBKKHMsbyxpLGEpe2lmKCJvYmplY3QiPT10eXBlb2YgaSYmbnVsbCE9PWkmJmkudHlwZT09PVomJm51bGw9PT1pLmtleSYmKGk9aS5wcm9wcy5jaGlsZHJlbiksIm9iamVjdCI9PXR5cGVvZiBpJiZudWxsIT09aSl7c3dpdGNoKGkuJCR0eXBlb2Ype2Nhc2UgejplOntmb3IodmFyIHU9aS5rZXksXz1vO251bGwhPT1fOyl7aWYoXy5rZXk9PT11KXtpZigodT1pLnR5cGUpPT09Wil7aWYoNz09PV8udGFnKXtjKHMsXy5zaWJsaW5nKSwobz1lKF8saS5wcm9wcy5jaGlsZHJlbikpLnJldHVybj1zLHM9bzticmVhayBlfX1lbHNlIGlmKF8uZWxlbWVudFR5cGU9PT11fHwib2JqZWN0Ij09dHlwZW9mIHUmJm51bGwhPT11JiZ1LiQkdHlwZW9mPT09eWUmJk5nKHUpPT09Xy50eXBlKXtjKHMsXy5zaWJsaW5nKSwobz1lKF8saS5wcm9wcykpLnJlZj1MZyhzLF8saSksby5yZXR1cm49cyxzPW87YnJlYWsgZX1jKHMsXyk7YnJlYWt9YihzLF8pLF89Xy5zaWJsaW5nfWkudHlwZT09PVo/KChvPVRnKGkucHJvcHMuY2hpbGRyZW4scy5tb2RlLGEsaS5rZXkpKS5yZXR1cm49cyxzPW8pOigoYT1SZyhpLnR5cGUsaS5rZXksaS5wcm9wcyxudWxsLHMubW9kZSxhKSkucmVmPUxnKHMsbyxpKSxhLnJldHVybj1zLHM9YSl9cmV0dXJuIGcocyk7Y2FzZSBZOmU6e2ZvcihfPWkua2V5O251bGwhPT1vOyl7aWYoby5rZXk9PT1fKXtpZig0PT09by50YWcmJm8uc3RhdGVOb2RlLmNvbnRhaW5lckluZm89PT1pLmNvbnRhaW5lckluZm8mJm8uc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uPT09aS5pbXBsZW1lbnRhdGlvbil7YyhzLG8uc2libGluZyksKG89ZShvLGkuY2hpbGRyZW58fFtdKSkucmV0dXJuPXMscz1vO2JyZWFrIGV9YyhzLG8pO2JyZWFrfWIocyxvKSxvPW8uc2libGluZ30obz1TZyhpLHMubW9kZSxhKSkucmV0dXJuPXMscz1vfXJldHVybiBnKHMpO2Nhc2UgeWU6cmV0dXJuIEoocyxvLChfPWkuX2luaXQpKGkuX3BheWxvYWQpLGEpfWlmKFBlKGkpKXJldHVybiBuKHMsbyxpLGEpO2lmKEthKGkpKXJldHVybiB0KHMsbyxpLGEpO01nKHMsaSl9cmV0dXJuInN0cmluZyI9PXR5cGVvZiBpJiYiIiE9PWl8fCJudW1iZXIiPT10eXBlb2YgaT8oaT0iIitpLG51bGwhPT1vJiY2PT09by50YWc/KGMocyxvLnNpYmxpbmcpLChvPWUobyxpKSkucmV0dXJuPXMscz1vKTooYyhzLG8pLChvPVFnKGkscy5tb2RlLGEpKS5yZXR1cm49cyxzPW8pLGcocykpOmMocyxvKX19dmFyIHFuPU9nKCEwKSxWbj1PZyghMSksVW49VWYobnVsbCksem49bnVsbCxXbj1udWxsLEpuPW51bGw7ZnVuY3Rpb24gJGcoKXtKbj1Xbj16bj1udWxsfWZ1bmN0aW9uIGFoKHMpe3ZhciBvPVVuLmN1cnJlbnQ7RShVbikscy5fY3VycmVudFZhbHVlPW99ZnVuY3Rpb24gYmgocyxvLGkpe2Zvcig7bnVsbCE9PXM7KXt2YXIgYT1zLmFsdGVybmF0ZTtpZigocy5jaGlsZExhbmVzJm8pIT09bz8ocy5jaGlsZExhbmVzfD1vLG51bGwhPT1hJiYoYS5jaGlsZExhbmVzfD1vKSk6bnVsbCE9PWEmJihhLmNoaWxkTGFuZXMmbykhPT1vJiYoYS5jaGlsZExhbmVzfD1vKSxzPT09aSlicmVhaztzPXMucmV0dXJufX1mdW5jdGlvbiBjaChzLG8pe3puPXMsSm49V249bnVsbCxudWxsIT09KHM9cy5kZXBlbmRlbmNpZXMpJiZudWxsIT09cy5maXJzdENvbnRleHQmJighIShzLmxhbmVzJm8pJiYoYnM9ITApLHMuZmlyc3RDb250ZXh0PW51bGwpfWZ1bmN0aW9uIGVoKHMpe3ZhciBvPXMuX2N1cnJlbnRWYWx1ZTtpZihKbiE9PXMpaWYocz17Y29udGV4dDpzLG1lbW9pemVkVmFsdWU6byxuZXh0Om51bGx9LG51bGw9PT1Xbil7aWYobnVsbD09PXpuKXRocm93IEVycm9yKHAoMzA4KSk7V249cyx6bi5kZXBlbmRlbmNpZXM9e2xhbmVzOjAsZmlyc3RDb250ZXh0OnN9fWVsc2UgV249V24ubmV4dD1zO3JldHVybiBvfXZhciBIbj1udWxsO2Z1bmN0aW9uIGdoKHMpe251bGw9PT1Ibj9Ibj1bc106SG4ucHVzaChzKX1mdW5jdGlvbiBoaChzLG8saSxhKXt2YXIgdT1vLmludGVybGVhdmVkO3JldHVybiBudWxsPT09dT8oaS5uZXh0PWksZ2gobykpOihpLm5leHQ9dS5uZXh0LHUubmV4dD1pKSxvLmludGVybGVhdmVkPWksaWgocyxhKX1mdW5jdGlvbiBpaChzLG8pe3MubGFuZXN8PW87dmFyIGk9cy5hbHRlcm5hdGU7Zm9yKG51bGwhPT1pJiYoaS5sYW5lc3w9byksaT1zLHM9cy5yZXR1cm47bnVsbCE9PXM7KXMuY2hpbGRMYW5lc3w9byxudWxsIT09KGk9cy5hbHRlcm5hdGUpJiYoaS5jaGlsZExhbmVzfD1vKSxpPXMscz1zLnJldHVybjtyZXR1cm4gMz09PWkudGFnP2kuc3RhdGVOb2RlOm51bGx9dmFyIEtuPSExO2Z1bmN0aW9uIGtoKHMpe3MudXBkYXRlUXVldWU9e2Jhc2VTdGF0ZTpzLm1lbW9pemVkU3RhdGUsZmlyc3RCYXNlVXBkYXRlOm51bGwsbGFzdEJhc2VVcGRhdGU6bnVsbCxzaGFyZWQ6e3BlbmRpbmc6bnVsbCxpbnRlcmxlYXZlZDpudWxsLGxhbmVzOjB9LGVmZmVjdHM6bnVsbH19ZnVuY3Rpb24gbGgocyxvKXtzPXMudXBkYXRlUXVldWUsby51cGRhdGVRdWV1ZT09PXMmJihvLnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6cy5iYXNlU3RhdGUsZmlyc3RCYXNlVXBkYXRlOnMuZmlyc3RCYXNlVXBkYXRlLGxhc3RCYXNlVXBkYXRlOnMubGFzdEJhc2VVcGRhdGUsc2hhcmVkOnMuc2hhcmVkLGVmZmVjdHM6cy5lZmZlY3RzfSl9ZnVuY3Rpb24gbWgocyxvKXtyZXR1cm57ZXZlbnRUaW1lOnMsbGFuZTpvLHRhZzowLHBheWxvYWQ6bnVsbCxjYWxsYmFjazpudWxsLG5leHQ6bnVsbH19ZnVuY3Rpb24gbmgocyxvLGkpe3ZhciBhPXMudXBkYXRlUXVldWU7aWYobnVsbD09PWEpcmV0dXJuIG51bGw7aWYoYT1hLnNoYXJlZCwyJkxzKXt2YXIgdT1hLnBlbmRpbmc7cmV0dXJuIG51bGw9PT11P28ubmV4dD1vOihvLm5leHQ9dS5uZXh0LHUubmV4dD1vKSxhLnBlbmRpbmc9byxpaChzLGkpfXJldHVybiBudWxsPT09KHU9YS5pbnRlcmxlYXZlZCk/KG8ubmV4dD1vLGdoKGEpKTooby5uZXh0PXUubmV4dCx1Lm5leHQ9byksYS5pbnRlcmxlYXZlZD1vLGloKHMsaSl9ZnVuY3Rpb24gb2gocyxvLGkpe2lmKG51bGwhPT0obz1vLnVwZGF0ZVF1ZXVlKSYmKG89by5zaGFyZWQsNDE5NDI0MCZpKSl7dmFyIGE9by5sYW5lcztpfD1hJj1zLnBlbmRpbmdMYW5lcyxvLmxhbmVzPWksQ2MocyxpKX19ZnVuY3Rpb24gcGgocyxvKXt2YXIgaT1zLnVwZGF0ZVF1ZXVlLGE9cy5hbHRlcm5hdGU7aWYobnVsbCE9PWEmJmk9PT0oYT1hLnVwZGF0ZVF1ZXVlKSl7dmFyIHU9bnVsbCxfPW51bGw7aWYobnVsbCE9PShpPWkuZmlyc3RCYXNlVXBkYXRlKSl7ZG97dmFyIHc9e2V2ZW50VGltZTppLmV2ZW50VGltZSxsYW5lOmkubGFuZSx0YWc6aS50YWcscGF5bG9hZDppLnBheWxvYWQsY2FsbGJhY2s6aS5jYWxsYmFjayxuZXh0Om51bGx9O251bGw9PT1fP3U9Xz13Ol89Xy5uZXh0PXcsaT1pLm5leHR9d2hpbGUobnVsbCE9PWkpO251bGw9PT1fP3U9Xz1vOl89Xy5uZXh0PW99ZWxzZSB1PV89bztyZXR1cm4gaT17YmFzZVN0YXRlOmEuYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTp1LGxhc3RCYXNlVXBkYXRlOl8sc2hhcmVkOmEuc2hhcmVkLGVmZmVjdHM6YS5lZmZlY3RzfSx2b2lkKHMudXBkYXRlUXVldWU9aSl9bnVsbD09PShzPWkubGFzdEJhc2VVcGRhdGUpP2kuZmlyc3RCYXNlVXBkYXRlPW86cy5uZXh0PW8saS5sYXN0QmFzZVVwZGF0ZT1vfWZ1bmN0aW9uIHFoKHMsbyxpLGEpe3ZhciB1PXMudXBkYXRlUXVldWU7S249ITE7dmFyIF89dS5maXJzdEJhc2VVcGRhdGUsdz11Lmxhc3RCYXNlVXBkYXRlLHg9dS5zaGFyZWQucGVuZGluZztpZihudWxsIT09eCl7dS5zaGFyZWQucGVuZGluZz1udWxsO3ZhciBDPXgsaj1DLm5leHQ7Qy5uZXh0PW51bGwsbnVsbD09PXc/Xz1qOncubmV4dD1qLHc9Qzt2YXIgTD1zLmFsdGVybmF0ZTtudWxsIT09TCYmKCh4PShMPUwudXBkYXRlUXVldWUpLmxhc3RCYXNlVXBkYXRlKSE9PXcmJihudWxsPT09eD9MLmZpcnN0QmFzZVVwZGF0ZT1qOngubmV4dD1qLEwubGFzdEJhc2VVcGRhdGU9QykpfWlmKG51bGwhPT1fKXt2YXIgQj11LmJhc2VTdGF0ZTtmb3Iodz0wLEw9aj1DPW51bGwseD1fOzspe3ZhciAkPXgubGFuZSxWPXguZXZlbnRUaW1lO2lmKChhJiQpPT09JCl7bnVsbCE9PUwmJihMPUwubmV4dD17ZXZlbnRUaW1lOlYsbGFuZTowLHRhZzp4LnRhZyxwYXlsb2FkOngucGF5bG9hZCxjYWxsYmFjazp4LmNhbGxiYWNrLG5leHQ6bnVsbH0pO2U6e3ZhciBVPXMsej14O3N3aXRjaCgkPW8sVj1pLHoudGFnKXtjYXNlIDE6aWYoImZ1bmN0aW9uIj09dHlwZW9mKFU9ei5wYXlsb2FkKSl7Qj1VLmNhbGwoVixCLCQpO2JyZWFrIGV9Qj1VO2JyZWFrIGU7Y2FzZSAzOlUuZmxhZ3M9LTY1NTM3JlUuZmxhZ3N8MTI4O2Nhc2UgMDppZihudWxsPT0oJD0iZnVuY3Rpb24iPT10eXBlb2YoVT16LnBheWxvYWQpP1UuY2FsbChWLEIsJCk6VSkpYnJlYWsgZTtCPXdlKHt9LEIsJCk7YnJlYWsgZTtjYXNlIDI6S249ITB9fW51bGwhPT14LmNhbGxiYWNrJiYwIT09eC5sYW5lJiYocy5mbGFnc3w9NjQsbnVsbD09PSgkPXUuZWZmZWN0cyk/dS5lZmZlY3RzPVt4XTokLnB1c2goeCkpfWVsc2UgVj17ZXZlbnRUaW1lOlYsbGFuZTokLHRhZzp4LnRhZyxwYXlsb2FkOngucGF5bG9hZCxjYWxsYmFjazp4LmNhbGxiYWNrLG5leHQ6bnVsbH0sbnVsbD09PUw/KGo9TD1WLEM9Qik6TD1MLm5leHQ9Vix3fD0kO2lmKG51bGw9PT0oeD14Lm5leHQpKXtpZihudWxsPT09KHg9dS5zaGFyZWQucGVuZGluZykpYnJlYWs7eD0oJD14KS5uZXh0LCQubmV4dD1udWxsLHUubGFzdEJhc2VVcGRhdGU9JCx1LnNoYXJlZC5wZW5kaW5nPW51bGx9fWlmKG51bGw9PT1MJiYoQz1CKSx1LmJhc2VTdGF0ZT1DLHUuZmlyc3RCYXNlVXBkYXRlPWosdS5sYXN0QmFzZVVwZGF0ZT1MLG51bGwhPT0obz11LnNoYXJlZC5pbnRlcmxlYXZlZCkpe3U9bztkb3t3fD11LmxhbmUsdT11Lm5leHR9d2hpbGUodSE9PW8pfWVsc2UgbnVsbD09PV8mJih1LnNoYXJlZC5sYW5lcz0wKTtXc3w9dyxzLmxhbmVzPXcscy5tZW1vaXplZFN0YXRlPUJ9fWZ1bmN0aW9uIHNoKHMsbyxpKXtpZihzPW8uZWZmZWN0cyxvLmVmZmVjdHM9bnVsbCxudWxsIT09cylmb3Iobz0wO288cy5sZW5ndGg7bysrKXt2YXIgYT1zW29dLHU9YS5jYWxsYmFjaztpZihudWxsIT09dSl7aWYoYS5jYWxsYmFjaz1udWxsLGE9aSwiZnVuY3Rpb24iIT10eXBlb2YgdSl0aHJvdyBFcnJvcihwKDE5MSx1KSk7dS5jYWxsKGEpfX19dmFyIEduPXt9LFluPVVmKEduKSxYbj1VZihHbiksUW49VWYoR24pO2Z1bmN0aW9uIHhoKHMpe2lmKHM9PT1Hbil0aHJvdyBFcnJvcihwKDE3NCkpO3JldHVybiBzfWZ1bmN0aW9uIHloKHMsbyl7c3dpdGNoKEcoUW4sbyksRyhYbixzKSxHKFluLEduKSxzPW8ubm9kZVR5cGUpe2Nhc2UgOTpjYXNlIDExOm89KG89by5kb2N1bWVudEVsZW1lbnQpP28ubmFtZXNwYWNlVVJJOmxiKG51bGwsIiIpO2JyZWFrO2RlZmF1bHQ6bz1sYihvPShzPTg9PT1zP28ucGFyZW50Tm9kZTpvKS5uYW1lc3BhY2VVUkl8fG51bGwscz1zLnRhZ05hbWUpfUUoWW4pLEcoWW4sbyl9ZnVuY3Rpb24gemgoKXtFKFluKSxFKFhuKSxFKFFuKX1mdW5jdGlvbiBBaChzKXt4aChRbi5jdXJyZW50KTt2YXIgbz14aChZbi5jdXJyZW50KSxpPWxiKG8scy50eXBlKTtvIT09aSYmKEcoWG4scyksRyhZbixpKSl9ZnVuY3Rpb24gQmgocyl7WG4uY3VycmVudD09PXMmJihFKFluKSxFKFhuKSl9dmFyIFpuPVVmKDApO2Z1bmN0aW9uIENoKHMpe2Zvcih2YXIgbz1zO251bGwhPT1vOyl7aWYoMTM9PT1vLnRhZyl7dmFyIGk9by5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1pJiYobnVsbD09PShpPWkuZGVoeWRyYXRlZCl8fCIkPyI9PT1pLmRhdGF8fCIkISI9PT1pLmRhdGEpKXJldHVybiBvfWVsc2UgaWYoMTk9PT1vLnRhZyYmdm9pZCAwIT09by5tZW1vaXplZFByb3BzLnJldmVhbE9yZGVyKXtpZigxMjgmby5mbGFncylyZXR1cm4gb31lbHNlIGlmKG51bGwhPT1vLmNoaWxkKXtvLmNoaWxkLnJldHVybj1vLG89by5jaGlsZDtjb250aW51ZX1pZihvPT09cylicmVhaztmb3IoO251bGw9PT1vLnNpYmxpbmc7KXtpZihudWxsPT09by5yZXR1cm58fG8ucmV0dXJuPT09cylyZXR1cm4gbnVsbDtvPW8ucmV0dXJufW8uc2libGluZy5yZXR1cm49by5yZXR1cm4sbz1vLnNpYmxpbmd9cmV0dXJuIG51bGx9dmFyIGVzPVtdO2Z1bmN0aW9uIEVoKCl7Zm9yKHZhciBzPTA7czxlcy5sZW5ndGg7cysrKWVzW3NdLl93b3JrSW5Qcm9ncmVzc1ZlcnNpb25QcmltYXJ5PW51bGw7ZXMubGVuZ3RoPTB9dmFyIHRzPVUuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixycz1VLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLG5zPTAsc3M9bnVsbCxvcz1udWxsLGFzPW51bGwsY3M9ITEsbHM9ITEsdXM9MCxwcz0wO2Z1bmN0aW9uIFAoKXt0aHJvdyBFcnJvcihwKDMyMSkpfWZ1bmN0aW9uIE1oKHMsbyl7aWYobnVsbD09PW8pcmV0dXJuITE7Zm9yKHZhciBpPTA7aTxvLmxlbmd0aCYmaTxzLmxlbmd0aDtpKyspaWYoIURyKHNbaV0sb1tpXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gTmgocyxvLGksYSx1LF8pe2lmKG5zPV8sc3M9byxvLm1lbW9pemVkU3RhdGU9bnVsbCxvLnVwZGF0ZVF1ZXVlPW51bGwsby5sYW5lcz0wLHRzLmN1cnJlbnQ9bnVsbD09PXN8fG51bGw9PT1zLm1lbW9pemVkU3RhdGU/ZHM6ZnMscz1pKGEsdSksbHMpe189MDtkb3tpZihscz0hMSx1cz0wLDI1PD1fKXRocm93IEVycm9yKHAoMzAxKSk7Xys9MSxhcz1vcz1udWxsLG8udXBkYXRlUXVldWU9bnVsbCx0cy5jdXJyZW50PW1zLHM9aShhLHUpfXdoaWxlKGxzKX1pZih0cy5jdXJyZW50PWhzLG89bnVsbCE9PW9zJiZudWxsIT09b3MubmV4dCxucz0wLGFzPW9zPXNzPW51bGwsY3M9ITEsbyl0aHJvdyBFcnJvcihwKDMwMCkpO3JldHVybiBzfWZ1bmN0aW9uIFNoKCl7dmFyIHM9MCE9PXVzO3JldHVybiB1cz0wLHN9ZnVuY3Rpb24gVGgoKXt2YXIgcz17bWVtb2l6ZWRTdGF0ZTpudWxsLGJhc2VTdGF0ZTpudWxsLGJhc2VRdWV1ZTpudWxsLHF1ZXVlOm51bGwsbmV4dDpudWxsfTtyZXR1cm4gbnVsbD09PWFzP3NzLm1lbW9pemVkU3RhdGU9YXM9czphcz1hcy5uZXh0PXMsYXN9ZnVuY3Rpb24gVWgoKXtpZihudWxsPT09b3Mpe3ZhciBzPXNzLmFsdGVybmF0ZTtzPW51bGwhPT1zP3MubWVtb2l6ZWRTdGF0ZTpudWxsfWVsc2Ugcz1vcy5uZXh0O3ZhciBvPW51bGw9PT1hcz9zcy5tZW1vaXplZFN0YXRlOmFzLm5leHQ7aWYobnVsbCE9PW8pYXM9byxvcz1zO2Vsc2V7aWYobnVsbD09PXMpdGhyb3cgRXJyb3IocCgzMTApKTtzPXttZW1vaXplZFN0YXRlOihvcz1zKS5tZW1vaXplZFN0YXRlLGJhc2VTdGF0ZTpvcy5iYXNlU3RhdGUsYmFzZVF1ZXVlOm9zLmJhc2VRdWV1ZSxxdWV1ZTpvcy5xdWV1ZSxuZXh0Om51bGx9LG51bGw9PT1hcz9zcy5tZW1vaXplZFN0YXRlPWFzPXM6YXM9YXMubmV4dD1zfXJldHVybiBhc31mdW5jdGlvbiBWaChzLG8pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBvP28ocyk6b31mdW5jdGlvbiBXaChzKXt2YXIgbz1VaCgpLGk9by5xdWV1ZTtpZihudWxsPT09aSl0aHJvdyBFcnJvcihwKDMxMSkpO2kubGFzdFJlbmRlcmVkUmVkdWNlcj1zO3ZhciBhPW9zLHU9YS5iYXNlUXVldWUsXz1pLnBlbmRpbmc7aWYobnVsbCE9PV8pe2lmKG51bGwhPT11KXt2YXIgdz11Lm5leHQ7dS5uZXh0PV8ubmV4dCxfLm5leHQ9d31hLmJhc2VRdWV1ZT11PV8saS5wZW5kaW5nPW51bGx9aWYobnVsbCE9PXUpe189dS5uZXh0LGE9YS5iYXNlU3RhdGU7dmFyIHg9dz1udWxsLEM9bnVsbCxqPV87ZG97dmFyIEw9ai5sYW5lO2lmKChucyZMKT09PUwpbnVsbCE9PUMmJihDPUMubmV4dD17bGFuZTowLGFjdGlvbjpqLmFjdGlvbixoYXNFYWdlclN0YXRlOmouaGFzRWFnZXJTdGF0ZSxlYWdlclN0YXRlOmouZWFnZXJTdGF0ZSxuZXh0Om51bGx9KSxhPWouaGFzRWFnZXJTdGF0ZT9qLmVhZ2VyU3RhdGU6cyhhLGouYWN0aW9uKTtlbHNle3ZhciBCPXtsYW5lOkwsYWN0aW9uOmouYWN0aW9uLGhhc0VhZ2VyU3RhdGU6ai5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6ai5lYWdlclN0YXRlLG5leHQ6bnVsbH07bnVsbD09PUM/KHg9Qz1CLHc9YSk6Qz1DLm5leHQ9Qixzcy5sYW5lc3w9TCxXc3w9TH1qPWoubmV4dH13aGlsZShudWxsIT09aiYmaiE9PV8pO251bGw9PT1DP3c9YTpDLm5leHQ9eCxEcihhLG8ubWVtb2l6ZWRTdGF0ZSl8fChicz0hMCksby5tZW1vaXplZFN0YXRlPWEsby5iYXNlU3RhdGU9dyxvLmJhc2VRdWV1ZT1DLGkubGFzdFJlbmRlcmVkU3RhdGU9YX1pZihudWxsIT09KHM9aS5pbnRlcmxlYXZlZCkpe3U9cztkb3tfPXUubGFuZSxzcy5sYW5lc3w9XyxXc3w9Xyx1PXUubmV4dH13aGlsZSh1IT09cyl9ZWxzZSBudWxsPT09dSYmKGkubGFuZXM9MCk7cmV0dXJuW28ubWVtb2l6ZWRTdGF0ZSxpLmRpc3BhdGNoXX1mdW5jdGlvbiBYaChzKXt2YXIgbz1VaCgpLGk9by5xdWV1ZTtpZihudWxsPT09aSl0aHJvdyBFcnJvcihwKDMxMSkpO2kubGFzdFJlbmRlcmVkUmVkdWNlcj1zO3ZhciBhPWkuZGlzcGF0Y2gsdT1pLnBlbmRpbmcsXz1vLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PXUpe2kucGVuZGluZz1udWxsO3ZhciB3PXU9dS5uZXh0O2Rve189cyhfLHcuYWN0aW9uKSx3PXcubmV4dH13aGlsZSh3IT09dSk7RHIoXyxvLm1lbW9pemVkU3RhdGUpfHwoYnM9ITApLG8ubWVtb2l6ZWRTdGF0ZT1fLG51bGw9PT1vLmJhc2VRdWV1ZSYmKG8uYmFzZVN0YXRlPV8pLGkubGFzdFJlbmRlcmVkU3RhdGU9X31yZXR1cm5bXyxhXX1mdW5jdGlvbiBZaCgpe31mdW5jdGlvbiBaaChzLG8pe3ZhciBpPXNzLGE9VWgoKSx1PW8oKSxfPSFEcihhLm1lbW9pemVkU3RhdGUsdSk7aWYoXyYmKGEubWVtb2l6ZWRTdGF0ZT11LGJzPSEwKSxhPWEucXVldWUsJGgoYWkuYmluZChudWxsLGksYSxzKSxbc10pLGEuZ2V0U25hcHNob3QhPT1vfHxffHxudWxsIT09YXMmJjEmYXMubWVtb2l6ZWRTdGF0ZS50YWcpe2lmKGkuZmxhZ3N8PTIwNDgsYmkoOSxjaS5iaW5kKG51bGwsaSxhLHUsbyksdm9pZCAwLG51bGwpLG51bGw9PT1Gcyl0aHJvdyBFcnJvcihwKDM0OSkpOzMwJm5zfHxkaShpLG8sdSl9cmV0dXJuIHV9ZnVuY3Rpb24gZGkocyxvLGkpe3MuZmxhZ3N8PTE2Mzg0LHM9e2dldFNuYXBzaG90Om8sdmFsdWU6aX0sbnVsbD09PShvPXNzLnVwZGF0ZVF1ZXVlKT8obz17bGFzdEVmZmVjdDpudWxsLHN0b3JlczpudWxsfSxzcy51cGRhdGVRdWV1ZT1vLG8uc3RvcmVzPVtzXSk6bnVsbD09PShpPW8uc3RvcmVzKT9vLnN0b3Jlcz1bc106aS5wdXNoKHMpfWZ1bmN0aW9uIGNpKHMsbyxpLGEpe28udmFsdWU9aSxvLmdldFNuYXBzaG90PWEsZWkobykmJmZpKHMpfWZ1bmN0aW9uIGFpKHMsbyxpKXtyZXR1cm4gaSgoZnVuY3Rpb24oKXtlaShvKSYmZmkocyl9KSl9ZnVuY3Rpb24gZWkocyl7dmFyIG89cy5nZXRTbmFwc2hvdDtzPXMudmFsdWU7dHJ5e3ZhciBpPW8oKTtyZXR1cm4hRHIocyxpKX1jYXRjaChzKXtyZXR1cm4hMH19ZnVuY3Rpb24gZmkocyl7dmFyIG89aWgocywxKTtudWxsIT09byYmZ2kobyxzLDEsLTEpfWZ1bmN0aW9uIGhpKHMpe3ZhciBvPVRoKCk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHMmJihzPXMoKSksby5tZW1vaXplZFN0YXRlPW8uYmFzZVN0YXRlPXMscz17cGVuZGluZzpudWxsLGludGVybGVhdmVkOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6VmgsbGFzdFJlbmRlcmVkU3RhdGU6c30sby5xdWV1ZT1zLHM9cy5kaXNwYXRjaD1paS5iaW5kKG51bGwsc3MscyksW28ubWVtb2l6ZWRTdGF0ZSxzXX1mdW5jdGlvbiBiaShzLG8saSxhKXtyZXR1cm4gcz17dGFnOnMsY3JlYXRlOm8sZGVzdHJveTppLGRlcHM6YSxuZXh0Om51bGx9LG51bGw9PT0obz1zcy51cGRhdGVRdWV1ZSk/KG89e2xhc3RFZmZlY3Q6bnVsbCxzdG9yZXM6bnVsbH0sc3MudXBkYXRlUXVldWU9byxvLmxhc3RFZmZlY3Q9cy5uZXh0PXMpOm51bGw9PT0oaT1vLmxhc3RFZmZlY3QpP28ubGFzdEVmZmVjdD1zLm5leHQ9czooYT1pLm5leHQsaS5uZXh0PXMscy5uZXh0PWEsby5sYXN0RWZmZWN0PXMpLHN9ZnVuY3Rpb24gamkoKXtyZXR1cm4gVWgoKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIGtpKHMsbyxpLGEpe3ZhciB1PVRoKCk7c3MuZmxhZ3N8PXMsdS5tZW1vaXplZFN0YXRlPWJpKDF8byxpLHZvaWQgMCx2b2lkIDA9PT1hP251bGw6YSl9ZnVuY3Rpb24gbGkocyxvLGksYSl7dmFyIHU9VWgoKTthPXZvaWQgMD09PWE/bnVsbDphO3ZhciBfPXZvaWQgMDtpZihudWxsIT09b3Mpe3ZhciB3PW9zLm1lbW9pemVkU3RhdGU7aWYoXz13LmRlc3Ryb3ksbnVsbCE9PWEmJk1oKGEsdy5kZXBzKSlyZXR1cm4gdm9pZCh1Lm1lbW9pemVkU3RhdGU9YmkobyxpLF8sYSkpfXNzLmZsYWdzfD1zLHUubWVtb2l6ZWRTdGF0ZT1iaSgxfG8saSxfLGEpfWZ1bmN0aW9uIG1pKHMsbyl7cmV0dXJuIGtpKDgzOTA2NTYsOCxzLG8pfWZ1bmN0aW9uICRoKHMsbyl7cmV0dXJuIGxpKDIwNDgsOCxzLG8pfWZ1bmN0aW9uIG5pKHMsbyl7cmV0dXJuIGxpKDQsMixzLG8pfWZ1bmN0aW9uIG9pKHMsbyl7cmV0dXJuIGxpKDQsNCxzLG8pfWZ1bmN0aW9uIHBpKHMsbyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG8/KHM9cygpLG8ocyksZnVuY3Rpb24oKXtvKG51bGwpfSk6bnVsbCE9bz8ocz1zKCksby5jdXJyZW50PXMsZnVuY3Rpb24oKXtvLmN1cnJlbnQ9bnVsbH0pOnZvaWQgMH1mdW5jdGlvbiBxaShzLG8saSl7cmV0dXJuIGk9bnVsbCE9aT9pLmNvbmNhdChbc10pOm51bGwsbGkoNCw0LHBpLmJpbmQobnVsbCxvLHMpLGkpfWZ1bmN0aW9uIHJpKCl7fWZ1bmN0aW9uIHNpKHMsbyl7dmFyIGk9VWgoKTtvPXZvaWQgMD09PW8/bnVsbDpvO3ZhciBhPWkubWVtb2l6ZWRTdGF0ZTtyZXR1cm4gbnVsbCE9PWEmJm51bGwhPT1vJiZNaChvLGFbMV0pP2FbMF06KGkubWVtb2l6ZWRTdGF0ZT1bcyxvXSxzKX1mdW5jdGlvbiB0aShzLG8pe3ZhciBpPVVoKCk7bz12b2lkIDA9PT1vP251bGw6bzt2YXIgYT1pLm1lbW9pemVkU3RhdGU7cmV0dXJuIG51bGwhPT1hJiZudWxsIT09byYmTWgobyxhWzFdKT9hWzBdOihzPXMoKSxpLm1lbW9pemVkU3RhdGU9W3Msb10scyl9ZnVuY3Rpb24gdWkocyxvLGkpe3JldHVybiAyMSZucz8oRHIoaSxvKXx8KGk9eWMoKSxzcy5sYW5lc3w9aSxXc3w9aSxzLmJhc2VTdGF0ZT0hMCksbyk6KHMuYmFzZVN0YXRlJiYocy5iYXNlU3RhdGU9ITEsYnM9ITApLHMubWVtb2l6ZWRTdGF0ZT1pKX1mdW5jdGlvbiB2aShzLG8pe3ZhciBpPUN0O0N0PTAhPT1pJiY0Pmk/aTo0LHMoITApO3ZhciBhPXJzLnRyYW5zaXRpb247cnMudHJhbnNpdGlvbj17fTt0cnl7cyghMSksbygpfWZpbmFsbHl7Q3Q9aSxycy50cmFuc2l0aW9uPWF9fWZ1bmN0aW9uIHdpKCl7cmV0dXJuIFVoKCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiB4aShzLG8saSl7dmFyIGE9eWkocyk7aWYoaT17bGFuZTphLGFjdGlvbjppLGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH0semkocykpQWkobyxpKTtlbHNlIGlmKG51bGwhPT0oaT1oaChzLG8saSxhKSkpe2dpKGkscyxhLFIoKSksQmkoaSxvLGEpfX1mdW5jdGlvbiBpaShzLG8saSl7dmFyIGE9eWkocyksdT17bGFuZTphLGFjdGlvbjppLGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH07aWYoemkocykpQWkobyx1KTtlbHNle3ZhciBfPXMuYWx0ZXJuYXRlO2lmKDA9PT1zLmxhbmVzJiYobnVsbD09PV98fDA9PT1fLmxhbmVzKSYmbnVsbCE9PShfPW8ubGFzdFJlbmRlcmVkUmVkdWNlcikpdHJ5e3ZhciB3PW8ubGFzdFJlbmRlcmVkU3RhdGUseD1fKHcsaSk7aWYodS5oYXNFYWdlclN0YXRlPSEwLHUuZWFnZXJTdGF0ZT14LERyKHgsdykpe3ZhciBDPW8uaW50ZXJsZWF2ZWQ7cmV0dXJuIG51bGw9PT1DPyh1Lm5leHQ9dSxnaChvKSk6KHUubmV4dD1DLm5leHQsQy5uZXh0PXUpLHZvaWQoby5pbnRlcmxlYXZlZD11KX19Y2F0Y2gocyl7fW51bGwhPT0oaT1oaChzLG8sdSxhKSkmJihnaShpLHMsYSx1PVIoKSksQmkoaSxvLGEpKX19ZnVuY3Rpb24gemkocyl7dmFyIG89cy5hbHRlcm5hdGU7cmV0dXJuIHM9PT1zc3x8bnVsbCE9PW8mJm89PT1zc31mdW5jdGlvbiBBaShzLG8pe2xzPWNzPSEwO3ZhciBpPXMucGVuZGluZztudWxsPT09aT9vLm5leHQ9bzooby5uZXh0PWkubmV4dCxpLm5leHQ9bykscy5wZW5kaW5nPW99ZnVuY3Rpb24gQmkocyxvLGkpe2lmKDQxOTQyNDAmaSl7dmFyIGE9by5sYW5lcztpfD1hJj1zLnBlbmRpbmdMYW5lcyxvLmxhbmVzPWksQ2MocyxpKX19dmFyIGhzPXtyZWFkQ29udGV4dDplaCx1c2VDYWxsYmFjazpQLHVzZUNvbnRleHQ6UCx1c2VFZmZlY3Q6UCx1c2VJbXBlcmF0aXZlSGFuZGxlOlAsdXNlSW5zZXJ0aW9uRWZmZWN0OlAsdXNlTGF5b3V0RWZmZWN0OlAsdXNlTWVtbzpQLHVzZVJlZHVjZXI6UCx1c2VSZWY6UCx1c2VTdGF0ZTpQLHVzZURlYnVnVmFsdWU6UCx1c2VEZWZlcnJlZFZhbHVlOlAsdXNlVHJhbnNpdGlvbjpQLHVzZU11dGFibGVTb3VyY2U6UCx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpQLHVzZUlkOlAsdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfSxkcz17cmVhZENvbnRleHQ6ZWgsdXNlQ2FsbGJhY2s6ZnVuY3Rpb24ocyxvKXtyZXR1cm4gVGgoKS5tZW1vaXplZFN0YXRlPVtzLHZvaWQgMD09PW8/bnVsbDpvXSxzfSx1c2VDb250ZXh0OmVoLHVzZUVmZmVjdDptaSx1c2VJbXBlcmF0aXZlSGFuZGxlOmZ1bmN0aW9uKHMsbyxpKXtyZXR1cm4gaT1udWxsIT1pP2kuY29uY2F0KFtzXSk6bnVsbCxraSg0MTk0MzA4LDQscGkuYmluZChudWxsLG8scyksaSl9LHVzZUxheW91dEVmZmVjdDpmdW5jdGlvbihzLG8pe3JldHVybiBraSg0MTk0MzA4LDQscyxvKX0sdXNlSW5zZXJ0aW9uRWZmZWN0OmZ1bmN0aW9uKHMsbyl7cmV0dXJuIGtpKDQsMixzLG8pfSx1c2VNZW1vOmZ1bmN0aW9uKHMsbyl7dmFyIGk9VGgoKTtyZXR1cm4gbz12b2lkIDA9PT1vP251bGw6byxzPXMoKSxpLm1lbW9pemVkU3RhdGU9W3Msb10sc30sdXNlUmVkdWNlcjpmdW5jdGlvbihzLG8saSl7dmFyIGE9VGgoKTtyZXR1cm4gbz12b2lkIDAhPT1pP2kobyk6byxhLm1lbW9pemVkU3RhdGU9YS5iYXNlU3RhdGU9byxzPXtwZW5kaW5nOm51bGwsaW50ZXJsZWF2ZWQ6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjpzLGxhc3RSZW5kZXJlZFN0YXRlOm99LGEucXVldWU9cyxzPXMuZGlzcGF0Y2g9eGkuYmluZChudWxsLHNzLHMpLFthLm1lbW9pemVkU3RhdGUsc119LHVzZVJlZjpmdW5jdGlvbihzKXtyZXR1cm4gcz17Y3VycmVudDpzfSxUaCgpLm1lbW9pemVkU3RhdGU9c30sdXNlU3RhdGU6aGksdXNlRGVidWdWYWx1ZTpyaSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKHMpe3JldHVybiBUaCgpLm1lbW9pemVkU3RhdGU9c30sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciBzPWhpKCExKSxvPXNbMF07cmV0dXJuIHM9dmkuYmluZChudWxsLHNbMV0pLFRoKCkubWVtb2l6ZWRTdGF0ZT1zLFtvLHNdfSx1c2VNdXRhYmxlU291cmNlOmZ1bmN0aW9uKCl7fSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpmdW5jdGlvbihzLG8saSl7dmFyIGE9c3MsdT1UaCgpO2lmKEZuKXtpZih2b2lkIDA9PT1pKXRocm93IEVycm9yKHAoNDA3KSk7aT1pKCl9ZWxzZXtpZihpPW8oKSxudWxsPT09RnMpdGhyb3cgRXJyb3IocCgzNDkpKTszMCZuc3x8ZGkoYSxvLGkpfXUubWVtb2l6ZWRTdGF0ZT1pO3ZhciBfPXt2YWx1ZTppLGdldFNuYXBzaG90Om99O3JldHVybiB1LnF1ZXVlPV8sbWkoYWkuYmluZChudWxsLGEsXyxzKSxbc10pLGEuZmxhZ3N8PTIwNDgsYmkoOSxjaS5iaW5kKG51bGwsYSxfLGksbyksdm9pZCAwLG51bGwpLGl9LHVzZUlkOmZ1bmN0aW9uKCl7dmFyIHM9VGgoKSxvPUZzLmlkZW50aWZpZXJQcmVmaXg7aWYoRm4pe3ZhciBpPVJuO289IjoiK28rIlIiKyhpPShNbiZ+KDE8PDMyLUV0KE1uKS0xKSkudG9TdHJpbmcoMzIpK2kpLDA8KGk9dXMrKykmJihvKz0iSCIraS50b1N0cmluZygzMikpLG8rPSI6In1lbHNlIG89IjoiK28rInIiKyhpPXBzKyspLnRvU3RyaW5nKDMyKSsiOiI7cmV0dXJuIHMubWVtb2l6ZWRTdGF0ZT1vfSx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9LGZzPXtyZWFkQ29udGV4dDplaCx1c2VDYWxsYmFjazpzaSx1c2VDb250ZXh0OmVoLHVzZUVmZmVjdDokaCx1c2VJbXBlcmF0aXZlSGFuZGxlOnFpLHVzZUluc2VydGlvbkVmZmVjdDpuaSx1c2VMYXlvdXRFZmZlY3Q6b2ksdXNlTWVtbzp0aSx1c2VSZWR1Y2VyOldoLHVzZVJlZjpqaSx1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBXaChWaCl9LHVzZURlYnVnVmFsdWU6cmksdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihzKXtyZXR1cm4gdWkoVWgoKSxvcy5tZW1vaXplZFN0YXRlLHMpfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuW1doKFZoKVswXSxVaCgpLm1lbW9pemVkU3RhdGVdfSx1c2VNdXRhYmxlU291cmNlOlloLHVzZVN5bmNFeHRlcm5hbFN0b3JlOlpoLHVzZUlkOndpLHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0sbXM9e3JlYWRDb250ZXh0OmVoLHVzZUNhbGxiYWNrOnNpLHVzZUNvbnRleHQ6ZWgsdXNlRWZmZWN0OiRoLHVzZUltcGVyYXRpdmVIYW5kbGU6cWksdXNlSW5zZXJ0aW9uRWZmZWN0Om5pLHVzZUxheW91dEVmZmVjdDpvaSx1c2VNZW1vOnRpLHVzZVJlZHVjZXI6WGgsdXNlUmVmOmppLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIFhoKFZoKX0sdXNlRGVidWdWYWx1ZTpyaSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKHMpe3ZhciBvPVVoKCk7cmV0dXJuIG51bGw9PT1vcz9vLm1lbW9pemVkU3RhdGU9czp1aShvLG9zLm1lbW9pemVkU3RhdGUscyl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm5bWGgoVmgpWzBdLFVoKCkubWVtb2l6ZWRTdGF0ZV19LHVzZU11dGFibGVTb3VyY2U6WWgsdXNlU3luY0V4dGVybmFsU3RvcmU6WmgsdXNlSWQ6d2ksdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfTtmdW5jdGlvbiBDaShzLG8pe2lmKHMmJnMuZGVmYXVsdFByb3BzKXtmb3IodmFyIGkgaW4gbz13ZSh7fSxvKSxzPXMuZGVmYXVsdFByb3BzKXZvaWQgMD09PW9baV0mJihvW2ldPXNbaV0pO3JldHVybiBvfXJldHVybiBvfWZ1bmN0aW9uIERpKHMsbyxpLGEpe2k9bnVsbD09KGk9aShhLG89cy5tZW1vaXplZFN0YXRlKSk/bzp3ZSh7fSxvLGkpLHMubWVtb2l6ZWRTdGF0ZT1pLDA9PT1zLmxhbmVzJiYocy51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9aSl9dmFyIGdzPXtpc01vdW50ZWQ6ZnVuY3Rpb24ocyl7cmV0dXJuISEocz1zLl9yZWFjdEludGVybmFscykmJlZiKHMpPT09c30sZW5xdWV1ZVNldFN0YXRlOmZ1bmN0aW9uKHMsbyxpKXtzPXMuX3JlYWN0SW50ZXJuYWxzO3ZhciBhPVIoKSx1PXlpKHMpLF89bWgoYSx1KTtfLnBheWxvYWQ9byxudWxsIT1pJiYoXy5jYWxsYmFjaz1pKSxudWxsIT09KG89bmgocyxfLHUpKSYmKGdpKG8scyx1LGEpLG9oKG8scyx1KSl9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24ocyxvLGkpe3M9cy5fcmVhY3RJbnRlcm5hbHM7dmFyIGE9UigpLHU9eWkocyksXz1taChhLHUpO18udGFnPTEsXy5wYXlsb2FkPW8sbnVsbCE9aSYmKF8uY2FsbGJhY2s9aSksbnVsbCE9PShvPW5oKHMsXyx1KSkmJihnaShvLHMsdSxhKSxvaChvLHMsdSkpfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24ocyxvKXtzPXMuX3JlYWN0SW50ZXJuYWxzO3ZhciBpPVIoKSxhPXlpKHMpLHU9bWgoaSxhKTt1LnRhZz0yLG51bGwhPW8mJih1LmNhbGxiYWNrPW8pLG51bGwhPT0obz1uaChzLHUsYSkpJiYoZ2kobyxzLGEsaSksb2gobyxzLGEpKX19O2Z1bmN0aW9uIEZpKHMsbyxpLGEsdSxfLHcpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZihzPXMuc3RhdGVOb2RlKS5zaG91bGRDb21wb25lbnRVcGRhdGU/cy5zaG91bGRDb21wb25lbnRVcGRhdGUoYSxfLHcpOiFvLnByb3RvdHlwZXx8IW8ucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50fHwoIUllKGksYSl8fCFJZSh1LF8pKX1mdW5jdGlvbiBHaShzLG8saSl7dmFyIGE9ITEsdT1fbixfPW8uY29udGV4dFR5cGU7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBfJiZudWxsIT09Xz9fPWVoKF8pOih1PVpmKG8pP3duOlNuLmN1cnJlbnQsXz0oYT1udWxsIT0oYT1vLmNvbnRleHRUeXBlcykpP1lmKHMsdSk6X24pLG89bmV3IG8oaSxfKSxzLm1lbW9pemVkU3RhdGU9bnVsbCE9PW8uc3RhdGUmJnZvaWQgMCE9PW8uc3RhdGU/by5zdGF0ZTpudWxsLG8udXBkYXRlcj1ncyxzLnN0YXRlTm9kZT1vLG8uX3JlYWN0SW50ZXJuYWxzPXMsYSYmKChzPXMuc3RhdGVOb2RlKS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PXUscy5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dD1fKSxvfWZ1bmN0aW9uIEhpKHMsbyxpLGEpe3M9by5zdGF0ZSwiZnVuY3Rpb24iPT10eXBlb2Ygby5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZvLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoaSxhKSwiZnVuY3Rpb24iPT10eXBlb2Ygby5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmby5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhpLGEpLG8uc3RhdGUhPT1zJiZncy5lbnF1ZXVlUmVwbGFjZVN0YXRlKG8sby5zdGF0ZSxudWxsKX1mdW5jdGlvbiBJaShzLG8saSxhKXt2YXIgdT1zLnN0YXRlTm9kZTt1LnByb3BzPWksdS5zdGF0ZT1zLm1lbW9pemVkU3RhdGUsdS5yZWZzPXt9LGtoKHMpO3ZhciBfPW8uY29udGV4dFR5cGU7Im9iamVjdCI9PXR5cGVvZiBfJiZudWxsIT09Xz91LmNvbnRleHQ9ZWgoXyk6KF89WmYobyk/d246U24uY3VycmVudCx1LmNvbnRleHQ9WWYocyxfKSksdS5zdGF0ZT1zLm1lbW9pemVkU3RhdGUsImZ1bmN0aW9uIj09dHlwZW9mKF89by5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMpJiYoRGkocyxvLF8saSksdS5zdGF0ZT1zLm1lbW9pemVkU3RhdGUpLCJmdW5jdGlvbiI9PXR5cGVvZiBvLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc3x8ImZ1bmN0aW9uIj09dHlwZW9mIHUuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fCJmdW5jdGlvbiIhPXR5cGVvZiB1LlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJiJmdW5jdGlvbiIhPXR5cGVvZiB1LmNvbXBvbmVudFdpbGxNb3VudHx8KG89dS5zdGF0ZSwiZnVuY3Rpb24iPT10eXBlb2YgdS5jb21wb25lbnRXaWxsTW91bnQmJnUuY29tcG9uZW50V2lsbE1vdW50KCksImZ1bmN0aW9uIj09dHlwZW9mIHUuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmdS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCksbyE9PXUuc3RhdGUmJmdzLmVucXVldWVSZXBsYWNlU3RhdGUodSx1LnN0YXRlLG51bGwpLHFoKHMsaSx1LGEpLHUuc3RhdGU9cy5tZW1vaXplZFN0YXRlKSwiZnVuY3Rpb24iPT10eXBlb2YgdS5jb21wb25lbnREaWRNb3VudCYmKHMuZmxhZ3N8PTQxOTQzMDgpfWZ1bmN0aW9uIEppKHMsbyl7dHJ5e3ZhciBpPSIiLGE9bztkb3tpKz1QYShhKSxhPWEucmV0dXJufXdoaWxlKGEpO3ZhciB1PWl9Y2F0Y2gocyl7dT0iXG5FcnJvciBnZW5lcmF0aW5nIHN0YWNrOiAiK3MubWVzc2FnZSsiXG4iK3Muc3RhY2t9cmV0dXJue3ZhbHVlOnMsc291cmNlOm8sc3RhY2s6dSxkaWdlc3Q6bnVsbH19ZnVuY3Rpb24gS2kocyxvLGkpe3JldHVybnt2YWx1ZTpzLHNvdXJjZTpudWxsLHN0YWNrOm51bGwhPWk/aTpudWxsLGRpZ2VzdDpudWxsIT1vP286bnVsbH19ZnVuY3Rpb24gTGkocyxvKXt0cnl7Y29uc29sZS5lcnJvcihvLnZhbHVlKX1jYXRjaChzKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe3Rocm93IHN9KSl9fXZhciB5cz0iZnVuY3Rpb24iPT10eXBlb2YgV2Vha01hcD9XZWFrTWFwOk1hcDtmdW5jdGlvbiBOaShzLG8saSl7KGk9bWgoLTEsaSkpLnRhZz0zLGkucGF5bG9hZD17ZWxlbWVudDpudWxsfTt2YXIgYT1vLnZhbHVlO3JldHVybiBpLmNhbGxiYWNrPWZ1bmN0aW9uKCl7WnN8fChacz0hMCxlbz1hKSxMaSgwLG8pfSxpfWZ1bmN0aW9uIFFpKHMsbyxpKXsoaT1taCgtMSxpKSkudGFnPTM7dmFyIGE9cy50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcjtpZigiZnVuY3Rpb24iPT10eXBlb2YgYSl7dmFyIHU9by52YWx1ZTtpLnBheWxvYWQ9ZnVuY3Rpb24oKXtyZXR1cm4gYSh1KX0saS5jYWxsYmFjaz1mdW5jdGlvbigpe0xpKDAsbyl9fXZhciBfPXMuc3RhdGVOb2RlO3JldHVybiBudWxsIT09XyYmImZ1bmN0aW9uIj09dHlwZW9mIF8uY29tcG9uZW50RGlkQ2F0Y2gmJihpLmNhbGxiYWNrPWZ1bmN0aW9uKCl7TGkoMCxvKSwiZnVuY3Rpb24iIT10eXBlb2YgYSYmKG51bGw9PT10bz90bz1uZXcgU2V0KFt0aGlzXSk6dG8uYWRkKHRoaXMpKTt2YXIgcz1vLnN0YWNrO3RoaXMuY29tcG9uZW50RGlkQ2F0Y2goby52YWx1ZSx7Y29tcG9uZW50U3RhY2s6bnVsbCE9PXM/czoiIn0pfSksaX1mdW5jdGlvbiBTaShzLG8saSl7dmFyIGE9cy5waW5nQ2FjaGU7aWYobnVsbD09PWEpe2E9cy5waW5nQ2FjaGU9bmV3IHlzO3ZhciB1PW5ldyBTZXQ7YS5zZXQobyx1KX1lbHNlIHZvaWQgMD09PSh1PWEuZ2V0KG8pKSYmKHU9bmV3IFNldCxhLnNldChvLHUpKTt1LmhhcyhpKXx8KHUuYWRkKGkpLHM9VGkuYmluZChudWxsLHMsbyxpKSxvLnRoZW4ocyxzKSl9ZnVuY3Rpb24gVWkocyl7ZG97dmFyIG87aWYoKG89MTM9PT1zLnRhZykmJihvPW51bGw9PT0obz1zLm1lbW9pemVkU3RhdGUpfHxudWxsIT09by5kZWh5ZHJhdGVkKSxvKXJldHVybiBzO3M9cy5yZXR1cm59d2hpbGUobnVsbCE9PXMpO3JldHVybiBudWxsfWZ1bmN0aW9uIFZpKHMsbyxpLGEsdSl7cmV0dXJuIDEmcy5tb2RlPyhzLmZsYWdzfD02NTUzNixzLmxhbmVzPXUscyk6KHM9PT1vP3MuZmxhZ3N8PTY1NTM2OihzLmZsYWdzfD0xMjgsaS5mbGFnc3w9MTMxMDcyLGkuZmxhZ3MmPS01MjgwNSwxPT09aS50YWcmJihudWxsPT09aS5hbHRlcm5hdGU/aS50YWc9MTc6KChvPW1oKC0xLDEpKS50YWc9MixuaChpLG8sMSkpKSxpLmxhbmVzfD0xKSxzKX12YXIgdnM9VS5SZWFjdEN1cnJlbnRPd25lcixicz0hMTtmdW5jdGlvbiBYaShzLG8saSxhKXtvLmNoaWxkPW51bGw9PT1zP1ZuKG8sbnVsbCxpLGEpOnFuKG8scy5jaGlsZCxpLGEpfWZ1bmN0aW9uIFlpKHMsbyxpLGEsdSl7aT1pLnJlbmRlcjt2YXIgXz1vLnJlZjtyZXR1cm4gY2gobyx1KSxhPU5oKHMsbyxpLGEsXyx1KSxpPVNoKCksbnVsbD09PXN8fGJzPyhGbiYmaSYmdmcobyksby5mbGFnc3w9MSxYaShzLG8sYSx1KSxvLmNoaWxkKTooby51cGRhdGVRdWV1ZT1zLnVwZGF0ZVF1ZXVlLG8uZmxhZ3MmPS0yMDUzLHMubGFuZXMmPX51LFppKHMsbyx1KSl9ZnVuY3Rpb24gJGkocyxvLGksYSx1KXtpZihudWxsPT09cyl7dmFyIF89aS50eXBlO3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiBffHxhaihfKXx8dm9pZCAwIT09Xy5kZWZhdWx0UHJvcHN8fG51bGwhPT1pLmNvbXBhcmV8fHZvaWQgMCE9PWkuZGVmYXVsdFByb3BzPygocz1SZyhpLnR5cGUsbnVsbCxhLG8sby5tb2RlLHUpKS5yZWY9by5yZWYscy5yZXR1cm49byxvLmNoaWxkPXMpOihvLnRhZz0xNSxvLnR5cGU9XyxiaihzLG8sXyxhLHUpKX1pZihfPXMuY2hpbGQsIShzLmxhbmVzJnUpKXt2YXIgdz1fLm1lbW9pemVkUHJvcHM7aWYoKGk9bnVsbCE9PShpPWkuY29tcGFyZSk/aTpJZSkodyxhKSYmcy5yZWY9PT1vLnJlZilyZXR1cm4gWmkocyxvLHUpfXJldHVybiBvLmZsYWdzfD0xLChzPVBnKF8sYSkpLnJlZj1vLnJlZixzLnJldHVybj1vLG8uY2hpbGQ9c31mdW5jdGlvbiBiaihzLG8saSxhLHUpe2lmKG51bGwhPT1zKXt2YXIgXz1zLm1lbW9pemVkUHJvcHM7aWYoSWUoXyxhKSYmcy5yZWY9PT1vLnJlZil7aWYoYnM9ITEsby5wZW5kaW5nUHJvcHM9YT1fLCEocy5sYW5lcyZ1KSlyZXR1cm4gby5sYW5lcz1zLmxhbmVzLFppKHMsbyx1KTsxMzEwNzImcy5mbGFncyYmKGJzPSEwKX19cmV0dXJuIGNqKHMsbyxpLGEsdSl9ZnVuY3Rpb24gZGoocyxvLGkpe3ZhciBhPW8ucGVuZGluZ1Byb3BzLHU9YS5jaGlsZHJlbixfPW51bGwhPT1zP3MubWVtb2l6ZWRTdGF0ZTpudWxsO2lmKCJoaWRkZW4iPT09YS5tb2RlKWlmKDEmby5tb2RlKXtpZighKDEwNzM3NDE4MjQmaSkpcmV0dXJuIHM9bnVsbCE9PV8/Xy5iYXNlTGFuZXN8aTppLG8ubGFuZXM9by5jaGlsZExhbmVzPTEwNzM3NDE4MjQsby5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6cyxjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczpudWxsfSxvLnVwZGF0ZVF1ZXVlPW51bGwsRyhWcyxxcykscXN8PXMsbnVsbDtvLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczowLGNhY2hlUG9vbDpudWxsLHRyYW5zaXRpb25zOm51bGx9LGE9bnVsbCE9PV8/Xy5iYXNlTGFuZXM6aSxHKFZzLHFzKSxxc3w9YX1lbHNlIG8ubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOjAsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH0sRyhWcyxxcykscXN8PWk7ZWxzZSBudWxsIT09Xz8oYT1fLmJhc2VMYW5lc3xpLG8ubWVtb2l6ZWRTdGF0ZT1udWxsKTphPWksRyhWcyxxcykscXN8PWE7cmV0dXJuIFhpKHMsbyx1LGkpLG8uY2hpbGR9ZnVuY3Rpb24gZ2oocyxvKXt2YXIgaT1vLnJlZjsobnVsbD09PXMmJm51bGwhPT1pfHxudWxsIT09cyYmcy5yZWYhPT1pKSYmKG8uZmxhZ3N8PTUxMixvLmZsYWdzfD0yMDk3MTUyKX1mdW5jdGlvbiBjaihzLG8saSxhLHUpe3ZhciBfPVpmKGkpP3duOlNuLmN1cnJlbnQ7cmV0dXJuIF89WWYobyxfKSxjaChvLHUpLGk9TmgocyxvLGksYSxfLHUpLGE9U2goKSxudWxsPT09c3x8YnM/KEZuJiZhJiZ2ZyhvKSxvLmZsYWdzfD0xLFhpKHMsbyxpLHUpLG8uY2hpbGQpOihvLnVwZGF0ZVF1ZXVlPXMudXBkYXRlUXVldWUsby5mbGFncyY9LTIwNTMscy5sYW5lcyY9fnUsWmkocyxvLHUpKX1mdW5jdGlvbiBoaihzLG8saSxhLHUpe2lmKFpmKGkpKXt2YXIgXz0hMDtjZyhvKX1lbHNlIF89ITE7aWYoY2gobyx1KSxudWxsPT09by5zdGF0ZU5vZGUpaWoocyxvKSxHaShvLGksYSksSWkobyxpLGEsdSksYT0hMDtlbHNlIGlmKG51bGw9PT1zKXt2YXIgdz1vLnN0YXRlTm9kZSx4PW8ubWVtb2l6ZWRQcm9wczt3LnByb3BzPXg7dmFyIEM9dy5jb250ZXh0LGo9aS5jb250ZXh0VHlwZTsib2JqZWN0Ij09dHlwZW9mIGomJm51bGwhPT1qP2o9ZWgoaik6aj1ZZihvLGo9WmYoaSk/d246U24uY3VycmVudCk7dmFyIEw9aS5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMsQj0iZnVuY3Rpb24iPT10eXBlb2YgTHx8ImZ1bmN0aW9uIj09dHlwZW9mIHcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGU7Qnx8ImZ1bmN0aW9uIiE9dHlwZW9mIHcuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJiJmdW5jdGlvbiIhPXR5cGVvZiB3LmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHN8fCh4IT09YXx8QyE9PWopJiZIaShvLHcsYSxqKSxLbj0hMTt2YXIgJD1vLm1lbW9pemVkU3RhdGU7dy5zdGF0ZT0kLHFoKG8sYSx3LHUpLEM9by5tZW1vaXplZFN0YXRlLHghPT1hfHwkIT09Q3x8RW4uY3VycmVudHx8S24/KCJmdW5jdGlvbiI9PXR5cGVvZiBMJiYoRGkobyxpLEwsYSksQz1vLm1lbW9pemVkU3RhdGUpLCh4PUtufHxGaShvLGkseCxhLCQsQyxqKSk/KEJ8fCJmdW5jdGlvbiIhPXR5cGVvZiB3LlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJiJmdW5jdGlvbiIhPXR5cGVvZiB3LmNvbXBvbmVudFdpbGxNb3VudHx8KCJmdW5jdGlvbiI9PXR5cGVvZiB3LmNvbXBvbmVudFdpbGxNb3VudCYmdy5jb21wb25lbnRXaWxsTW91bnQoKSwiZnVuY3Rpb24iPT10eXBlb2Ygdy5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZ3LlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSksImZ1bmN0aW9uIj09dHlwZW9mIHcuY29tcG9uZW50RGlkTW91bnQmJihvLmZsYWdzfD00MTk0MzA4KSk6KCJmdW5jdGlvbiI9PXR5cGVvZiB3LmNvbXBvbmVudERpZE1vdW50JiYoby5mbGFnc3w9NDE5NDMwOCksby5tZW1vaXplZFByb3BzPWEsby5tZW1vaXplZFN0YXRlPUMpLHcucHJvcHM9YSx3LnN0YXRlPUMsdy5jb250ZXh0PWosYT14KTooImZ1bmN0aW9uIj09dHlwZW9mIHcuY29tcG9uZW50RGlkTW91bnQmJihvLmZsYWdzfD00MTk0MzA4KSxhPSExKX1lbHNle3c9by5zdGF0ZU5vZGUsbGgocyxvKSx4PW8ubWVtb2l6ZWRQcm9wcyxqPW8udHlwZT09PW8uZWxlbWVudFR5cGU/eDpDaShvLnR5cGUseCksdy5wcm9wcz1qLEI9by5wZW5kaW5nUHJvcHMsJD13LmNvbnRleHQsIm9iamVjdCI9PXR5cGVvZihDPWkuY29udGV4dFR5cGUpJiZudWxsIT09Qz9DPWVoKEMpOkM9WWYobyxDPVpmKGkpP3duOlNuLmN1cnJlbnQpO3ZhciBWPWkuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzOyhMPSJmdW5jdGlvbiI9PXR5cGVvZiBWfHwiZnVuY3Rpb24iPT10eXBlb2Ygdy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSl8fCJmdW5jdGlvbiIhPXR5cGVvZiB3LlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiYiZnVuY3Rpb24iIT10eXBlb2Ygdy5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzfHwoeCE9PUJ8fCQhPT1DKSYmSGkobyx3LGEsQyksS249ITEsJD1vLm1lbW9pemVkU3RhdGUsdy5zdGF0ZT0kLHFoKG8sYSx3LHUpO3ZhciBVPW8ubWVtb2l6ZWRTdGF0ZTt4IT09Qnx8JCE9PVV8fEVuLmN1cnJlbnR8fEtuPygiZnVuY3Rpb24iPT10eXBlb2YgViYmKERpKG8saSxWLGEpLFU9by5tZW1vaXplZFN0YXRlKSwoaj1Lbnx8RmkobyxpLGosYSwkLFUsQyl8fCExKT8oTHx8ImZ1bmN0aW9uIiE9dHlwZW9mIHcuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUmJiJmdW5jdGlvbiIhPXR5cGVvZiB3LmNvbXBvbmVudFdpbGxVcGRhdGV8fCgiZnVuY3Rpb24iPT10eXBlb2Ygdy5jb21wb25lbnRXaWxsVXBkYXRlJiZ3LmNvbXBvbmVudFdpbGxVcGRhdGUoYSxVLEMpLCJmdW5jdGlvbiI9PXR5cGVvZiB3LlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiZ3LlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKGEsVSxDKSksImZ1bmN0aW9uIj09dHlwZW9mIHcuY29tcG9uZW50RGlkVXBkYXRlJiYoby5mbGFnc3w9NCksImZ1bmN0aW9uIj09dHlwZW9mIHcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUmJihvLmZsYWdzfD0xMDI0KSk6KCJmdW5jdGlvbiIhPXR5cGVvZiB3LmNvbXBvbmVudERpZFVwZGF0ZXx8eD09PXMubWVtb2l6ZWRQcm9wcyYmJD09PXMubWVtb2l6ZWRTdGF0ZXx8KG8uZmxhZ3N8PTQpLCJmdW5jdGlvbiIhPXR5cGVvZiB3LmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHx4PT09cy5tZW1vaXplZFByb3BzJiYkPT09cy5tZW1vaXplZFN0YXRlfHwoby5mbGFnc3w9MTAyNCksby5tZW1vaXplZFByb3BzPWEsby5tZW1vaXplZFN0YXRlPVUpLHcucHJvcHM9YSx3LnN0YXRlPVUsdy5jb250ZXh0PUMsYT1qKTooImZ1bmN0aW9uIiE9dHlwZW9mIHcuY29tcG9uZW50RGlkVXBkYXRlfHx4PT09cy5tZW1vaXplZFByb3BzJiYkPT09cy5tZW1vaXplZFN0YXRlfHwoby5mbGFnc3w9NCksImZ1bmN0aW9uIiE9dHlwZW9mIHcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fHg9PT1zLm1lbW9pemVkUHJvcHMmJiQ9PT1zLm1lbW9pemVkU3RhdGV8fChvLmZsYWdzfD0xMDI0KSxhPSExKX1yZXR1cm4gamoocyxvLGksYSxfLHUpfWZ1bmN0aW9uIGpqKHMsbyxpLGEsdSxfKXtnaihzLG8pO3ZhciB3PSEhKDEyOCZvLmZsYWdzKTtpZighYSYmIXcpcmV0dXJuIHUmJmRnKG8saSwhMSksWmkocyxvLF8pO2E9by5zdGF0ZU5vZGUsdnMuY3VycmVudD1vO3ZhciB4PXcmJiJmdW5jdGlvbiIhPXR5cGVvZiBpLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcj9udWxsOmEucmVuZGVyKCk7cmV0dXJuIG8uZmxhZ3N8PTEsbnVsbCE9PXMmJnc/KG8uY2hpbGQ9cW4obyxzLmNoaWxkLG51bGwsXyksby5jaGlsZD1xbihvLG51bGwseCxfKSk6WGkocyxvLHgsXyksby5tZW1vaXplZFN0YXRlPWEuc3RhdGUsdSYmZGcobyxpLCEwKSxvLmNoaWxkfWZ1bmN0aW9uIGtqKHMpe3ZhciBvPXMuc3RhdGVOb2RlO28ucGVuZGluZ0NvbnRleHQ/YWcoMCxvLnBlbmRpbmdDb250ZXh0LG8ucGVuZGluZ0NvbnRleHQhPT1vLmNvbnRleHQpOm8uY29udGV4dCYmYWcoMCxvLmNvbnRleHQsITEpLHloKHMsby5jb250YWluZXJJbmZvKX1mdW5jdGlvbiBsaihzLG8saSxhLHUpe3JldHVybiBJZygpLEpnKHUpLG8uZmxhZ3N8PTI1NixYaShzLG8saSxhKSxvLmNoaWxkfXZhciBfcyxTcyxFcyx3cyx4cz17ZGVoeWRyYXRlZDpudWxsLHRyZWVDb250ZXh0Om51bGwscmV0cnlMYW5lOjB9O2Z1bmN0aW9uIG5qKHMpe3JldHVybntiYXNlTGFuZXM6cyxjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczpudWxsfX1mdW5jdGlvbiBvaihzLG8saSl7dmFyIGEsdT1vLnBlbmRpbmdQcm9wcyxfPVpuLmN1cnJlbnQsdz0hMSx4PSEhKDEyOCZvLmZsYWdzKTtpZigoYT14KXx8KGE9KG51bGw9PT1zfHxudWxsIT09cy5tZW1vaXplZFN0YXRlKSYmISEoMiZfKSksYT8odz0hMCxvLmZsYWdzJj0tMTI5KTpudWxsIT09cyYmbnVsbD09PXMubWVtb2l6ZWRTdGF0ZXx8KF98PTEpLEcoWm4sMSZfKSxudWxsPT09cylyZXR1cm4gRWcobyksbnVsbCE9PShzPW8ubWVtb2l6ZWRTdGF0ZSkmJm51bGwhPT0ocz1zLmRlaHlkcmF0ZWQpPygxJm8ubW9kZT8iJCEiPT09cy5kYXRhP28ubGFuZXM9ODpvLmxhbmVzPTEwNzM3NDE4MjQ6by5sYW5lcz0xLG51bGwpOih4PXUuY2hpbGRyZW4scz11LmZhbGxiYWNrLHc/KHU9by5tb2RlLHc9by5jaGlsZCx4PXttb2RlOiJoaWRkZW4iLGNoaWxkcmVuOnh9LDEmdXx8bnVsbD09PXc/dz1waih4LHUsMCxudWxsKToody5jaGlsZExhbmVzPTAsdy5wZW5kaW5nUHJvcHM9eCkscz1UZyhzLHUsaSxudWxsKSx3LnJldHVybj1vLHMucmV0dXJuPW8sdy5zaWJsaW5nPXMsby5jaGlsZD13LG8uY2hpbGQubWVtb2l6ZWRTdGF0ZT1uaihpKSxvLm1lbW9pemVkU3RhdGU9eHMscyk6cWoobyx4KSk7aWYobnVsbCE9PShfPXMubWVtb2l6ZWRTdGF0ZSkmJm51bGwhPT0oYT1fLmRlaHlkcmF0ZWQpKXJldHVybiBmdW5jdGlvbiByaihzLG8saSxhLHUsXyx3KXtpZihpKXJldHVybiAyNTYmby5mbGFncz8oby5mbGFncyY9LTI1NyxzaihzLG8sdyxhPUtpKEVycm9yKHAoNDIyKSkpKSk6bnVsbCE9PW8ubWVtb2l6ZWRTdGF0ZT8oby5jaGlsZD1zLmNoaWxkLG8uZmxhZ3N8PTEyOCxudWxsKTooXz1hLmZhbGxiYWNrLHU9by5tb2RlLGE9cGooe21vZGU6InZpc2libGUiLGNoaWxkcmVuOmEuY2hpbGRyZW59LHUsMCxudWxsKSwoXz1UZyhfLHUsdyxudWxsKSkuZmxhZ3N8PTIsYS5yZXR1cm49byxfLnJldHVybj1vLGEuc2libGluZz1fLG8uY2hpbGQ9YSwxJm8ubW9kZSYmcW4obyxzLmNoaWxkLG51bGwsdyksby5jaGlsZC5tZW1vaXplZFN0YXRlPW5qKHcpLG8ubWVtb2l6ZWRTdGF0ZT14cyxfKTtpZighKDEmby5tb2RlKSlyZXR1cm4gc2oocyxvLHcsbnVsbCk7aWYoIiQhIj09PXUuZGF0YSl7aWYoYT11Lm5leHRTaWJsaW5nJiZ1Lm5leHRTaWJsaW5nLmRhdGFzZXQpdmFyIHg9YS5kZ3N0O3JldHVybiBhPXgsc2oocyxvLHcsYT1LaShfPUVycm9yKHAoNDE5KSksYSx2b2lkIDApKX1pZih4PSEhKHcmcy5jaGlsZExhbmVzKSxic3x8eCl7aWYobnVsbCE9PShhPUZzKSl7c3dpdGNoKHcmLXcpe2Nhc2UgNDp1PTI7YnJlYWs7Y2FzZSAxNjp1PTg7YnJlYWs7Y2FzZSA2NDpjYXNlIDEyODpjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpjYXNlIDQxOTQzMDQ6Y2FzZSA4Mzg4NjA4OmNhc2UgMTY3NzcyMTY6Y2FzZSAzMzU1NDQzMjpjYXNlIDY3MTA4ODY0OnU9MzI7YnJlYWs7Y2FzZSA1MzY4NzA5MTI6dT0yNjg0MzU0NTY7YnJlYWs7ZGVmYXVsdDp1PTB9MCE9PSh1PXUmKGEuc3VzcGVuZGVkTGFuZXN8dyk/MDp1KSYmdSE9PV8ucmV0cnlMYW5lJiYoXy5yZXRyeUxhbmU9dSxpaChzLHUpLGdpKGEscyx1LC0xKSl9cmV0dXJuIHRqKCksc2oocyxvLHcsYT1LaShFcnJvcihwKDQyMSkpKSl9cmV0dXJuIiQ/Ij09PXUuZGF0YT8oby5mbGFnc3w9MTI4LG8uY2hpbGQ9cy5jaGlsZCxvPXVqLmJpbmQobnVsbCxzKSx1Ll9yZWFjdFJldHJ5PW8sbnVsbCk6KHM9Xy50cmVlQ29udGV4dCxMbj1MZih1Lm5leHRTaWJsaW5nKSxEbj1vLEZuPSEwLEJuPW51bGwsbnVsbCE9PXMmJihJbltUbisrXT1NbixJbltUbisrXT1SbixJbltUbisrXT1ObixNbj1zLmlkLFJuPXMub3ZlcmZsb3csTm49byksbz1xaihvLGEuY2hpbGRyZW4pLG8uZmxhZ3N8PTQwOTYsbyl9KHMsbyx4LHUsYSxfLGkpO2lmKHcpe3c9dS5mYWxsYmFjayx4PW8ubW9kZSxhPShfPXMuY2hpbGQpLnNpYmxpbmc7dmFyIEM9e21vZGU6ImhpZGRlbiIsY2hpbGRyZW46dS5jaGlsZHJlbn07cmV0dXJuIDEmeHx8by5jaGlsZD09PV8/KHU9UGcoXyxDKSkuc3VidHJlZUZsYWdzPTE0NjgwMDY0Jl8uc3VidHJlZUZsYWdzOigodT1vLmNoaWxkKS5jaGlsZExhbmVzPTAsdS5wZW5kaW5nUHJvcHM9QyxvLmRlbGV0aW9ucz1udWxsKSxudWxsIT09YT93PVBnKGEsdyk6KHc9VGcodyx4LGksbnVsbCkpLmZsYWdzfD0yLHcucmV0dXJuPW8sdS5yZXR1cm49byx1LnNpYmxpbmc9dyxvLmNoaWxkPXUsdT13LHc9by5jaGlsZCx4PW51bGw9PT0oeD1zLmNoaWxkLm1lbW9pemVkU3RhdGUpP25qKGkpOntiYXNlTGFuZXM6eC5iYXNlTGFuZXN8aSxjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczp4LnRyYW5zaXRpb25zfSx3Lm1lbW9pemVkU3RhdGU9eCx3LmNoaWxkTGFuZXM9cy5jaGlsZExhbmVzJn5pLG8ubWVtb2l6ZWRTdGF0ZT14cyx1fXJldHVybiBzPSh3PXMuY2hpbGQpLnNpYmxpbmcsdT1QZyh3LHttb2RlOiJ2aXNpYmxlIixjaGlsZHJlbjp1LmNoaWxkcmVufSksISgxJm8ubW9kZSkmJih1LmxhbmVzPWkpLHUucmV0dXJuPW8sdS5zaWJsaW5nPW51bGwsbnVsbCE9PXMmJihudWxsPT09KGk9by5kZWxldGlvbnMpPyhvLmRlbGV0aW9ucz1bc10sby5mbGFnc3w9MTYpOmkucHVzaChzKSksby5jaGlsZD11LG8ubWVtb2l6ZWRTdGF0ZT1udWxsLHV9ZnVuY3Rpb24gcWoocyxvKXtyZXR1cm4obz1waih7bW9kZToidmlzaWJsZSIsY2hpbGRyZW46b30scy5tb2RlLDAsbnVsbCkpLnJldHVybj1zLHMuY2hpbGQ9b31mdW5jdGlvbiBzaihzLG8saSxhKXtyZXR1cm4gbnVsbCE9PWEmJkpnKGEpLHFuKG8scy5jaGlsZCxudWxsLGkpLChzPXFqKG8sby5wZW5kaW5nUHJvcHMuY2hpbGRyZW4pKS5mbGFnc3w9MixvLm1lbW9pemVkU3RhdGU9bnVsbCxzfWZ1bmN0aW9uIHZqKHMsbyxpKXtzLmxhbmVzfD1vO3ZhciBhPXMuYWx0ZXJuYXRlO251bGwhPT1hJiYoYS5sYW5lc3w9byksYmgocy5yZXR1cm4sbyxpKX1mdW5jdGlvbiB3aihzLG8saSxhLHUpe3ZhciBfPXMubWVtb2l6ZWRTdGF0ZTtudWxsPT09Xz9zLm1lbW9pemVkU3RhdGU9e2lzQmFja3dhcmRzOm8scmVuZGVyaW5nOm51bGwscmVuZGVyaW5nU3RhcnRUaW1lOjAsbGFzdDphLHRhaWw6aSx0YWlsTW9kZTp1fTooXy5pc0JhY2t3YXJkcz1vLF8ucmVuZGVyaW5nPW51bGwsXy5yZW5kZXJpbmdTdGFydFRpbWU9MCxfLmxhc3Q9YSxfLnRhaWw9aSxfLnRhaWxNb2RlPXUpfWZ1bmN0aW9uIHhqKHMsbyxpKXt2YXIgYT1vLnBlbmRpbmdQcm9wcyx1PWEucmV2ZWFsT3JkZXIsXz1hLnRhaWw7aWYoWGkocyxvLGEuY2hpbGRyZW4saSksMiYoYT1abi5jdXJyZW50KSlhPTEmYXwyLG8uZmxhZ3N8PTEyODtlbHNle2lmKG51bGwhPT1zJiYxMjgmcy5mbGFncyllOmZvcihzPW8uY2hpbGQ7bnVsbCE9PXM7KXtpZigxMz09PXMudGFnKW51bGwhPT1zLm1lbW9pemVkU3RhdGUmJnZqKHMsaSxvKTtlbHNlIGlmKDE5PT09cy50YWcpdmoocyxpLG8pO2Vsc2UgaWYobnVsbCE9PXMuY2hpbGQpe3MuY2hpbGQucmV0dXJuPXMscz1zLmNoaWxkO2NvbnRpbnVlfWlmKHM9PT1vKWJyZWFrIGU7Zm9yKDtudWxsPT09cy5zaWJsaW5nOyl7aWYobnVsbD09PXMucmV0dXJufHxzLnJldHVybj09PW8pYnJlYWsgZTtzPXMucmV0dXJufXMuc2libGluZy5yZXR1cm49cy5yZXR1cm4scz1zLnNpYmxpbmd9YSY9MX1pZihHKFpuLGEpLDEmby5tb2RlKXN3aXRjaCh1KXtjYXNlImZvcndhcmRzIjpmb3IoaT1vLmNoaWxkLHU9bnVsbDtudWxsIT09aTspbnVsbCE9PShzPWkuYWx0ZXJuYXRlKSYmbnVsbD09PUNoKHMpJiYodT1pKSxpPWkuc2libGluZztudWxsPT09KGk9dSk/KHU9by5jaGlsZCxvLmNoaWxkPW51bGwpOih1PWkuc2libGluZyxpLnNpYmxpbmc9bnVsbCksd2oobywhMSx1LGksXyk7YnJlYWs7Y2FzZSJiYWNrd2FyZHMiOmZvcihpPW51bGwsdT1vLmNoaWxkLG8uY2hpbGQ9bnVsbDtudWxsIT09dTspe2lmKG51bGwhPT0ocz11LmFsdGVybmF0ZSkmJm51bGw9PT1DaChzKSl7by5jaGlsZD11O2JyZWFrfXM9dS5zaWJsaW5nLHUuc2libGluZz1pLGk9dSx1PXN9d2oobywhMCxpLG51bGwsXyk7YnJlYWs7Y2FzZSJ0b2dldGhlciI6d2oobywhMSxudWxsLG51bGwsdm9pZCAwKTticmVhaztkZWZhdWx0Om8ubWVtb2l6ZWRTdGF0ZT1udWxsfWVsc2Ugby5tZW1vaXplZFN0YXRlPW51bGw7cmV0dXJuIG8uY2hpbGR9ZnVuY3Rpb24gaWoocyxvKXshKDEmby5tb2RlKSYmbnVsbCE9PXMmJihzLmFsdGVybmF0ZT1udWxsLG8uYWx0ZXJuYXRlPW51bGwsby5mbGFnc3w9Mil9ZnVuY3Rpb24gWmkocyxvLGkpe2lmKG51bGwhPT1zJiYoby5kZXBlbmRlbmNpZXM9cy5kZXBlbmRlbmNpZXMpLFdzfD1vLmxhbmVzLCEoaSZvLmNoaWxkTGFuZXMpKXJldHVybiBudWxsO2lmKG51bGwhPT1zJiZvLmNoaWxkIT09cy5jaGlsZCl0aHJvdyBFcnJvcihwKDE1MykpO2lmKG51bGwhPT1vLmNoaWxkKXtmb3IoaT1QZyhzPW8uY2hpbGQscy5wZW5kaW5nUHJvcHMpLG8uY2hpbGQ9aSxpLnJldHVybj1vO251bGwhPT1zLnNpYmxpbmc7KXM9cy5zaWJsaW5nLChpPWkuc2libGluZz1QZyhzLHMucGVuZGluZ1Byb3BzKSkucmV0dXJuPW87aS5zaWJsaW5nPW51bGx9cmV0dXJuIG8uY2hpbGR9ZnVuY3Rpb24gRGoocyxvKXtpZighRm4pc3dpdGNoKHMudGFpbE1vZGUpe2Nhc2UiaGlkZGVuIjpvPXMudGFpbDtmb3IodmFyIGk9bnVsbDtudWxsIT09bzspbnVsbCE9PW8uYWx0ZXJuYXRlJiYoaT1vKSxvPW8uc2libGluZztudWxsPT09aT9zLnRhaWw9bnVsbDppLnNpYmxpbmc9bnVsbDticmVhaztjYXNlImNvbGxhcHNlZCI6aT1zLnRhaWw7Zm9yKHZhciBhPW51bGw7bnVsbCE9PWk7KW51bGwhPT1pLmFsdGVybmF0ZSYmKGE9aSksaT1pLnNpYmxpbmc7bnVsbD09PWE/b3x8bnVsbD09PXMudGFpbD9zLnRhaWw9bnVsbDpzLnRhaWwuc2libGluZz1udWxsOmEuc2libGluZz1udWxsfX1mdW5jdGlvbiBTKHMpe3ZhciBvPW51bGwhPT1zLmFsdGVybmF0ZSYmcy5hbHRlcm5hdGUuY2hpbGQ9PT1zLmNoaWxkLGk9MCxhPTA7aWYobylmb3IodmFyIHU9cy5jaGlsZDtudWxsIT09dTspaXw9dS5sYW5lc3x1LmNoaWxkTGFuZXMsYXw9MTQ2ODAwNjQmdS5zdWJ0cmVlRmxhZ3MsYXw9MTQ2ODAwNjQmdS5mbGFncyx1LnJldHVybj1zLHU9dS5zaWJsaW5nO2Vsc2UgZm9yKHU9cy5jaGlsZDtudWxsIT09dTspaXw9dS5sYW5lc3x1LmNoaWxkTGFuZXMsYXw9dS5zdWJ0cmVlRmxhZ3MsYXw9dS5mbGFncyx1LnJldHVybj1zLHU9dS5zaWJsaW5nO3JldHVybiBzLnN1YnRyZWVGbGFnc3w9YSxzLmNoaWxkTGFuZXM9aSxvfWZ1bmN0aW9uIEVqKHMsbyxpKXt2YXIgYT1vLnBlbmRpbmdQcm9wcztzd2l0Y2god2cobyksby50YWcpe2Nhc2UgMjpjYXNlIDE2OmNhc2UgMTU6Y2FzZSAwOmNhc2UgMTE6Y2FzZSA3OmNhc2UgODpjYXNlIDEyOmNhc2UgOTpjYXNlIDE0OnJldHVybiBTKG8pLG51bGw7Y2FzZSAxOmNhc2UgMTc6cmV0dXJuIFpmKG8udHlwZSkmJiRmKCksUyhvKSxudWxsO2Nhc2UgMzpyZXR1cm4gYT1vLnN0YXRlTm9kZSx6aCgpLEUoRW4pLEUoU24pLEVoKCksYS5wZW5kaW5nQ29udGV4dCYmKGEuY29udGV4dD1hLnBlbmRpbmdDb250ZXh0LGEucGVuZGluZ0NvbnRleHQ9bnVsbCksbnVsbCE9PXMmJm51bGwhPT1zLmNoaWxkfHwoR2cobyk/by5mbGFnc3w9NDpudWxsPT09c3x8cy5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCYmISgyNTYmby5mbGFncyl8fChvLmZsYWdzfD0xMDI0LG51bGwhPT1CbiYmKEZqKEJuKSxCbj1udWxsKSkpLFNzKHMsbyksUyhvKSxudWxsO2Nhc2UgNTpCaChvKTt2YXIgdT14aChRbi5jdXJyZW50KTtpZihpPW8udHlwZSxudWxsIT09cyYmbnVsbCE9by5zdGF0ZU5vZGUpRXMocyxvLGksYSx1KSxzLnJlZiE9PW8ucmVmJiYoby5mbGFnc3w9NTEyLG8uZmxhZ3N8PTIwOTcxNTIpO2Vsc2V7aWYoIWEpe2lmKG51bGw9PT1vLnN0YXRlTm9kZSl0aHJvdyBFcnJvcihwKDE2NikpO3JldHVybiBTKG8pLG51bGx9aWYocz14aChZbi5jdXJyZW50KSxHZyhvKSl7YT1vLnN0YXRlTm9kZSxpPW8udHlwZTt2YXIgXz1vLm1lbW9pemVkUHJvcHM7c3dpdGNoKGFbaG5dPW8sYVtkbl09XyxzPSEhKDEmby5tb2RlKSxpKXtjYXNlImRpYWxvZyI6RCgiY2FuY2VsIixhKSxEKCJjbG9zZSIsYSk7YnJlYWs7Y2FzZSJpZnJhbWUiOmNhc2Uib2JqZWN0IjpjYXNlImVtYmVkIjpEKCJsb2FkIixhKTticmVhaztjYXNlInZpZGVvIjpjYXNlImF1ZGlvIjpmb3IodT0wO3U8WnIubGVuZ3RoO3UrKylEKFpyW3VdLGEpO2JyZWFrO2Nhc2Uic291cmNlIjpEKCJlcnJvciIsYSk7YnJlYWs7Y2FzZSJpbWciOmNhc2UiaW1hZ2UiOmNhc2UibGluayI6RCgiZXJyb3IiLGEpLEQoImxvYWQiLGEpO2JyZWFrO2Nhc2UiZGV0YWlscyI6RCgidG9nZ2xlIixhKTticmVhaztjYXNlImlucHV0IjpaYShhLF8pLEQoImludmFsaWQiLGEpO2JyZWFrO2Nhc2Uic2VsZWN0IjphLl93cmFwcGVyU3RhdGU9e3dhc011bHRpcGxlOiEhXy5tdWx0aXBsZX0sRCgiaW52YWxpZCIsYSk7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6aGIoYSxfKSxEKCJpbnZhbGlkIixhKX1mb3IodmFyIHggaW4gdWIoaSxfKSx1PW51bGwsXylpZihfLmhhc093blByb3BlcnR5KHgpKXt2YXIgQz1fW3hdOyJjaGlsZHJlbiI9PT14PyJzdHJpbmciPT10eXBlb2YgQz9hLnRleHRDb250ZW50IT09QyYmKCEwIT09Xy5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcmJkFmKGEudGV4dENvbnRlbnQsQyxzKSx1PVsiY2hpbGRyZW4iLENdKToibnVtYmVyIj09dHlwZW9mIEMmJmEudGV4dENvbnRlbnQhPT0iIitDJiYoITAhPT1fLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyYmQWYoYS50ZXh0Q29udGVudCxDLHMpLHU9WyJjaGlsZHJlbiIsIiIrQ10pOncuaGFzT3duUHJvcGVydHkoeCkmJm51bGwhPUMmJiJvblNjcm9sbCI9PT14JiZEKCJzY3JvbGwiLGEpfXN3aXRjaChpKXtjYXNlImlucHV0IjpWYShhKSxkYihhLF8sITApO2JyZWFrO2Nhc2UidGV4dGFyZWEiOlZhKGEpLGpiKGEpO2JyZWFrO2Nhc2Uic2VsZWN0IjpjYXNlIm9wdGlvbiI6YnJlYWs7ZGVmYXVsdDoiZnVuY3Rpb24iPT10eXBlb2YgXy5vbkNsaWNrJiYoYS5vbmNsaWNrPUJmKX1hPXUsby51cGRhdGVRdWV1ZT1hLG51bGwhPT1hJiYoby5mbGFnc3w9NCl9ZWxzZXt4PTk9PT11Lm5vZGVUeXBlP3U6dS5vd25lckRvY3VtZW50LCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj09PXMmJihzPWtiKGkpKSwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI9PT1zPyJzY3JpcHQiPT09aT8oKHM9eC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuaW5uZXJIVE1MPSI8c2NyaXB0PjxcL3NjcmlwdD4iLHM9cy5yZW1vdmVDaGlsZChzLmZpcnN0Q2hpbGQpKToic3RyaW5nIj09dHlwZW9mIGEuaXM/cz14LmNyZWF0ZUVsZW1lbnQoaSx7aXM6YS5pc30pOihzPXguY3JlYXRlRWxlbWVudChpKSwic2VsZWN0Ij09PWkmJih4PXMsYS5tdWx0aXBsZT94Lm11bHRpcGxlPSEwOmEuc2l6ZSYmKHguc2l6ZT1hLnNpemUpKSk6cz14LmNyZWF0ZUVsZW1lbnROUyhzLGkpLHNbaG5dPW8sc1tkbl09YSxfcyhzLG8sITEsITEpLG8uc3RhdGVOb2RlPXM7ZTp7c3dpdGNoKHg9dmIoaSxhKSxpKXtjYXNlImRpYWxvZyI6RCgiY2FuY2VsIixzKSxEKCJjbG9zZSIscyksdT1hO2JyZWFrO2Nhc2UiaWZyYW1lIjpjYXNlIm9iamVjdCI6Y2FzZSJlbWJlZCI6RCgibG9hZCIscyksdT1hO2JyZWFrO2Nhc2UidmlkZW8iOmNhc2UiYXVkaW8iOmZvcih1PTA7dTxaci5sZW5ndGg7dSsrKUQoWnJbdV0scyk7dT1hO2JyZWFrO2Nhc2Uic291cmNlIjpEKCJlcnJvciIscyksdT1hO2JyZWFrO2Nhc2UiaW1nIjpjYXNlImltYWdlIjpjYXNlImxpbmsiOkQoImVycm9yIixzKSxEKCJsb2FkIixzKSx1PWE7YnJlYWs7Y2FzZSJkZXRhaWxzIjpEKCJ0b2dnbGUiLHMpLHU9YTticmVhaztjYXNlImlucHV0IjpaYShzLGEpLHU9WWEocyxhKSxEKCJpbnZhbGlkIixzKTticmVhaztjYXNlIm9wdGlvbiI6ZGVmYXVsdDp1PWE7YnJlYWs7Y2FzZSJzZWxlY3QiOnMuX3dyYXBwZXJTdGF0ZT17d2FzTXVsdGlwbGU6ISFhLm11bHRpcGxlfSx1PXdlKHt9LGEse3ZhbHVlOnZvaWQgMH0pLEQoImludmFsaWQiLHMpO2JyZWFrO2Nhc2UidGV4dGFyZWEiOmhiKHMsYSksdT1nYihzLGEpLEQoImludmFsaWQiLHMpfWZvcihfIGluIHViKGksdSksQz11KWlmKEMuaGFzT3duUHJvcGVydHkoXykpe3ZhciBqPUNbX107InN0eWxlIj09PV8/c2IocyxqKToiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiPT09Xz9udWxsIT0oaj1qP2ouX19odG1sOnZvaWQgMCkmJiRlKHMsaik6ImNoaWxkcmVuIj09PV8/InN0cmluZyI9PXR5cGVvZiBqPygidGV4dGFyZWEiIT09aXx8IiIhPT1qKSYmb2IocyxqKToibnVtYmVyIj09dHlwZW9mIGomJm9iKHMsIiIraik6InN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyIhPT1fJiYic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIiE9PV8mJiJhdXRvRm9jdXMiIT09XyYmKHcuaGFzT3duUHJvcGVydHkoXyk/bnVsbCE9aiYmIm9uU2Nyb2xsIj09PV8mJkQoInNjcm9sbCIscyk6bnVsbCE9aiYmdGEocyxfLGoseCkpfXN3aXRjaChpKXtjYXNlImlucHV0IjpWYShzKSxkYihzLGEsITEpO2JyZWFrO2Nhc2UidGV4dGFyZWEiOlZhKHMpLGpiKHMpO2JyZWFrO2Nhc2Uib3B0aW9uIjpudWxsIT1hLnZhbHVlJiZzLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIiK1NhKGEudmFsdWUpKTticmVhaztjYXNlInNlbGVjdCI6cy5tdWx0aXBsZT0hIWEubXVsdGlwbGUsbnVsbCE9KF89YS52YWx1ZSk/ZmIocywhIWEubXVsdGlwbGUsXywhMSk6bnVsbCE9YS5kZWZhdWx0VmFsdWUmJmZiKHMsISFhLm11bHRpcGxlLGEuZGVmYXVsdFZhbHVlLCEwKTticmVhaztkZWZhdWx0OiJmdW5jdGlvbiI9PXR5cGVvZiB1Lm9uQ2xpY2smJihzLm9uY2xpY2s9QmYpfXN3aXRjaChpKXtjYXNlImJ1dHRvbiI6Y2FzZSJpbnB1dCI6Y2FzZSJzZWxlY3QiOmNhc2UidGV4dGFyZWEiOmE9ISFhLmF1dG9Gb2N1czticmVhayBlO2Nhc2UiaW1nIjphPSEwO2JyZWFrIGU7ZGVmYXVsdDphPSExfX1hJiYoby5mbGFnc3w9NCl9bnVsbCE9PW8ucmVmJiYoby5mbGFnc3w9NTEyLG8uZmxhZ3N8PTIwOTcxNTIpfXJldHVybiBTKG8pLG51bGw7Y2FzZSA2OmlmKHMmJm51bGwhPW8uc3RhdGVOb2RlKXdzKHMsbyxzLm1lbW9pemVkUHJvcHMsYSk7ZWxzZXtpZigic3RyaW5nIiE9dHlwZW9mIGEmJm51bGw9PT1vLnN0YXRlTm9kZSl0aHJvdyBFcnJvcihwKDE2NikpO2lmKGk9eGgoUW4uY3VycmVudCkseGgoWW4uY3VycmVudCksR2cobykpe2lmKGE9by5zdGF0ZU5vZGUsaT1vLm1lbW9pemVkUHJvcHMsYVtobl09bywoXz1hLm5vZGVWYWx1ZSE9PWkpJiZudWxsIT09KHM9RG4pKXN3aXRjaChzLnRhZyl7Y2FzZSAzOkFmKGEubm9kZVZhbHVlLGksISEoMSZzLm1vZGUpKTticmVhaztjYXNlIDU6ITAhPT1zLm1lbW9pemVkUHJvcHMuc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nJiZBZihhLm5vZGVWYWx1ZSxpLCEhKDEmcy5tb2RlKSl9XyYmKG8uZmxhZ3N8PTQpfWVsc2UoYT0oOT09PWkubm9kZVR5cGU/aTppLm93bmVyRG9jdW1lbnQpLmNyZWF0ZVRleHROb2RlKGEpKVtobl09byxvLnN0YXRlTm9kZT1hfXJldHVybiBTKG8pLG51bGw7Y2FzZSAxMzppZihFKFpuKSxhPW8ubWVtb2l6ZWRTdGF0ZSxudWxsPT09c3x8bnVsbCE9PXMubWVtb2l6ZWRTdGF0ZSYmbnVsbCE9PXMubWVtb2l6ZWRTdGF0ZS5kZWh5ZHJhdGVkKXtpZihGbiYmbnVsbCE9PUxuJiYxJm8ubW9kZSYmISgxMjgmby5mbGFncykpSGcoKSxJZygpLG8uZmxhZ3N8PTk4NTYwLF89ITE7ZWxzZSBpZihfPUdnKG8pLG51bGwhPT1hJiZudWxsIT09YS5kZWh5ZHJhdGVkKXtpZihudWxsPT09cyl7aWYoIV8pdGhyb3cgRXJyb3IocCgzMTgpKTtpZighKF89bnVsbCE9PShfPW8ubWVtb2l6ZWRTdGF0ZSk/Xy5kZWh5ZHJhdGVkOm51bGwpKXRocm93IEVycm9yKHAoMzE3KSk7X1tobl09b31lbHNlIElnKCksISgxMjgmby5mbGFncykmJihvLm1lbW9pemVkU3RhdGU9bnVsbCksby5mbGFnc3w9NDtTKG8pLF89ITF9ZWxzZSBudWxsIT09Qm4mJihGaihCbiksQm49bnVsbCksXz0hMDtpZighXylyZXR1cm4gNjU1MzYmby5mbGFncz9vOm51bGx9cmV0dXJuIDEyOCZvLmZsYWdzPyhvLmxhbmVzPWksbyk6KChhPW51bGwhPT1hKSE9PShudWxsIT09cyYmbnVsbCE9PXMubWVtb2l6ZWRTdGF0ZSkmJmEmJihvLmNoaWxkLmZsYWdzfD04MTkyLDEmby5tb2RlJiYobnVsbD09PXN8fDEmWm4uY3VycmVudD8wPT09VXMmJihVcz0zKTp0aigpKSksbnVsbCE9PW8udXBkYXRlUXVldWUmJihvLmZsYWdzfD00KSxTKG8pLG51bGwpO2Nhc2UgNDpyZXR1cm4gemgoKSxTcyhzLG8pLG51bGw9PT1zJiZzZihvLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxTKG8pLG51bGw7Y2FzZSAxMDpyZXR1cm4gYWgoby50eXBlLl9jb250ZXh0KSxTKG8pLG51bGw7Y2FzZSAxOTppZihFKFpuKSxudWxsPT09KF89by5tZW1vaXplZFN0YXRlKSlyZXR1cm4gUyhvKSxudWxsO2lmKGE9ISEoMTI4Jm8uZmxhZ3MpLG51bGw9PT0oeD1fLnJlbmRlcmluZykpaWYoYSlEaihfLCExKTtlbHNle2lmKDAhPT1Vc3x8bnVsbCE9PXMmJjEyOCZzLmZsYWdzKWZvcihzPW8uY2hpbGQ7bnVsbCE9PXM7KXtpZihudWxsIT09KHg9Q2gocykpKXtmb3Ioby5mbGFnc3w9MTI4LERqKF8sITEpLG51bGwhPT0oYT14LnVwZGF0ZVF1ZXVlKSYmKG8udXBkYXRlUXVldWU9YSxvLmZsYWdzfD00KSxvLnN1YnRyZWVGbGFncz0wLGE9aSxpPW8uY2hpbGQ7bnVsbCE9PWk7KXM9YSwoXz1pKS5mbGFncyY9MTQ2ODAwNjYsbnVsbD09PSh4PV8uYWx0ZXJuYXRlKT8oXy5jaGlsZExhbmVzPTAsXy5sYW5lcz1zLF8uY2hpbGQ9bnVsbCxfLnN1YnRyZWVGbGFncz0wLF8ubWVtb2l6ZWRQcm9wcz1udWxsLF8ubWVtb2l6ZWRTdGF0ZT1udWxsLF8udXBkYXRlUXVldWU9bnVsbCxfLmRlcGVuZGVuY2llcz1udWxsLF8uc3RhdGVOb2RlPW51bGwpOihfLmNoaWxkTGFuZXM9eC5jaGlsZExhbmVzLF8ubGFuZXM9eC5sYW5lcyxfLmNoaWxkPXguY2hpbGQsXy5zdWJ0cmVlRmxhZ3M9MCxfLmRlbGV0aW9ucz1udWxsLF8ubWVtb2l6ZWRQcm9wcz14Lm1lbW9pemVkUHJvcHMsXy5tZW1vaXplZFN0YXRlPXgubWVtb2l6ZWRTdGF0ZSxfLnVwZGF0ZVF1ZXVlPXgudXBkYXRlUXVldWUsXy50eXBlPXgudHlwZSxzPXguZGVwZW5kZW5jaWVzLF8uZGVwZW5kZW5jaWVzPW51bGw9PT1zP251bGw6e2xhbmVzOnMubGFuZXMsZmlyc3RDb250ZXh0OnMuZmlyc3RDb250ZXh0fSksaT1pLnNpYmxpbmc7cmV0dXJuIEcoWm4sMSZabi5jdXJyZW50fDIpLG8uY2hpbGR9cz1zLnNpYmxpbmd9bnVsbCE9PV8udGFpbCYmaHQoKT5YcyYmKG8uZmxhZ3N8PTEyOCxhPSEwLERqKF8sITEpLG8ubGFuZXM9NDE5NDMwNCl9ZWxzZXtpZighYSlpZihudWxsIT09KHM9Q2goeCkpKXtpZihvLmZsYWdzfD0xMjgsYT0hMCxudWxsIT09KGk9cy51cGRhdGVRdWV1ZSkmJihvLnVwZGF0ZVF1ZXVlPWksby5mbGFnc3w9NCksRGooXywhMCksbnVsbD09PV8udGFpbCYmImhpZGRlbiI9PT1fLnRhaWxNb2RlJiYheC5hbHRlcm5hdGUmJiFGbilyZXR1cm4gUyhvKSxudWxsfWVsc2UgMipodCgpLV8ucmVuZGVyaW5nU3RhcnRUaW1lPlhzJiYxMDczNzQxODI0IT09aSYmKG8uZmxhZ3N8PTEyOCxhPSEwLERqKF8sITEpLG8ubGFuZXM9NDE5NDMwNCk7Xy5pc0JhY2t3YXJkcz8oeC5zaWJsaW5nPW8uY2hpbGQsby5jaGlsZD14KToobnVsbCE9PShpPV8ubGFzdCk/aS5zaWJsaW5nPXg6by5jaGlsZD14LF8ubGFzdD14KX1yZXR1cm4gbnVsbCE9PV8udGFpbD8obz1fLnRhaWwsXy5yZW5kZXJpbmc9byxfLnRhaWw9by5zaWJsaW5nLF8ucmVuZGVyaW5nU3RhcnRUaW1lPWh0KCksby5zaWJsaW5nPW51bGwsaT1abi5jdXJyZW50LEcoWm4sYT8xJml8MjoxJmkpLG8pOihTKG8pLG51bGwpO2Nhc2UgMjI6Y2FzZSAyMzpyZXR1cm4gSGooKSxhPW51bGwhPT1vLm1lbW9pemVkU3RhdGUsbnVsbCE9PXMmJm51bGwhPT1zLm1lbW9pemVkU3RhdGUhPT1hJiYoby5mbGFnc3w9ODE5MiksYSYmMSZvLm1vZGU/ISEoMTA3Mzc0MTgyNCZxcykmJihTKG8pLDYmby5zdWJ0cmVlRmxhZ3MmJihvLmZsYWdzfD04MTkyKSk6UyhvKSxudWxsO2Nhc2UgMjQ6Y2FzZSAyNTpyZXR1cm4gbnVsbH10aHJvdyBFcnJvcihwKDE1NixvLnRhZykpfWZ1bmN0aW9uIElqKHMsbyl7c3dpdGNoKHdnKG8pLG8udGFnKXtjYXNlIDE6cmV0dXJuIFpmKG8udHlwZSkmJiRmKCksNjU1MzYmKHM9by5mbGFncyk/KG8uZmxhZ3M9LTY1NTM3JnN8MTI4LG8pOm51bGw7Y2FzZSAzOnJldHVybiB6aCgpLEUoRW4pLEUoU24pLEVoKCksNjU1MzYmKHM9by5mbGFncykmJiEoMTI4JnMpPyhvLmZsYWdzPS02NTUzNyZzfDEyOCxvKTpudWxsO2Nhc2UgNTpyZXR1cm4gQmgobyksbnVsbDtjYXNlIDEzOmlmKEUoWm4pLG51bGwhPT0ocz1vLm1lbW9pemVkU3RhdGUpJiZudWxsIT09cy5kZWh5ZHJhdGVkKXtpZihudWxsPT09by5hbHRlcm5hdGUpdGhyb3cgRXJyb3IocCgzNDApKTtJZygpfXJldHVybiA2NTUzNiYocz1vLmZsYWdzKT8oby5mbGFncz0tNjU1Mzcmc3wxMjgsbyk6bnVsbDtjYXNlIDE5OnJldHVybiBFKFpuKSxudWxsO2Nhc2UgNDpyZXR1cm4gemgoKSxudWxsO2Nhc2UgMTA6cmV0dXJuIGFoKG8udHlwZS5fY29udGV4dCksbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIEhqKCksbnVsbDtkZWZhdWx0OnJldHVybiBudWxsfX1fcz1mdW5jdGlvbihzLG8pe2Zvcih2YXIgaT1vLmNoaWxkO251bGwhPT1pOyl7aWYoNT09PWkudGFnfHw2PT09aS50YWcpcy5hcHBlbmRDaGlsZChpLnN0YXRlTm9kZSk7ZWxzZSBpZig0IT09aS50YWcmJm51bGwhPT1pLmNoaWxkKXtpLmNoaWxkLnJldHVybj1pLGk9aS5jaGlsZDtjb250aW51ZX1pZihpPT09bylicmVhaztmb3IoO251bGw9PT1pLnNpYmxpbmc7KXtpZihudWxsPT09aS5yZXR1cm58fGkucmV0dXJuPT09bylyZXR1cm47aT1pLnJldHVybn1pLnNpYmxpbmcucmV0dXJuPWkucmV0dXJuLGk9aS5zaWJsaW5nfX0sU3M9ZnVuY3Rpb24oKXt9LEVzPWZ1bmN0aW9uKHMsbyxpLGEpe3ZhciB1PXMubWVtb2l6ZWRQcm9wcztpZih1IT09YSl7cz1vLnN0YXRlTm9kZSx4aChZbi5jdXJyZW50KTt2YXIgXyx4PW51bGw7c3dpdGNoKGkpe2Nhc2UiaW5wdXQiOnU9WWEocyx1KSxhPVlhKHMsYSkseD1bXTticmVhaztjYXNlInNlbGVjdCI6dT13ZSh7fSx1LHt2YWx1ZTp2b2lkIDB9KSxhPXdlKHt9LGEse3ZhbHVlOnZvaWQgMH0pLHg9W107YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6dT1nYihzLHUpLGE9Z2IocyxhKSx4PVtdO2JyZWFrO2RlZmF1bHQ6ImZ1bmN0aW9uIiE9dHlwZW9mIHUub25DbGljayYmImZ1bmN0aW9uIj09dHlwZW9mIGEub25DbGljayYmKHMub25jbGljaz1CZil9Zm9yKEwgaW4gdWIoaSxhKSxpPW51bGwsdSlpZighYS5oYXNPd25Qcm9wZXJ0eShMKSYmdS5oYXNPd25Qcm9wZXJ0eShMKSYmbnVsbCE9dVtMXSlpZigic3R5bGUiPT09TCl7dmFyIEM9dVtMXTtmb3IoXyBpbiBDKUMuaGFzT3duUHJvcGVydHkoXykmJihpfHwoaT17fSksaVtfXT0iIil9ZWxzZSJkYW5nZXJvdXNseVNldElubmVySFRNTCIhPT1MJiYiY2hpbGRyZW4iIT09TCYmInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyIhPT1MJiYic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIiE9PUwmJiJhdXRvRm9jdXMiIT09TCYmKHcuaGFzT3duUHJvcGVydHkoTCk/eHx8KHg9W10pOih4PXh8fFtdKS5wdXNoKEwsbnVsbCkpO2ZvcihMIGluIGEpe3ZhciBqPWFbTF07aWYoQz1udWxsIT11P3VbTF06dm9pZCAwLGEuaGFzT3duUHJvcGVydHkoTCkmJmohPT1DJiYobnVsbCE9anx8bnVsbCE9QykpaWYoInN0eWxlIj09PUwpaWYoQyl7Zm9yKF8gaW4gQykhQy5oYXNPd25Qcm9wZXJ0eShfKXx8aiYmai5oYXNPd25Qcm9wZXJ0eShfKXx8KGl8fChpPXt9KSxpW19dPSIiKTtmb3IoXyBpbiBqKWouaGFzT3duUHJvcGVydHkoXykmJkNbX10hPT1qW19dJiYoaXx8KGk9e30pLGlbX109altfXSl9ZWxzZSBpfHwoeHx8KHg9W10pLHgucHVzaChMLGkpKSxpPWo7ZWxzZSJkYW5nZXJvdXNseVNldElubmVySFRNTCI9PT1MPyhqPWo/ai5fX2h0bWw6dm9pZCAwLEM9Qz9DLl9faHRtbDp2b2lkIDAsbnVsbCE9aiYmQyE9PWomJih4PXh8fFtdKS5wdXNoKEwsaikpOiJjaGlsZHJlbiI9PT1MPyJzdHJpbmciIT10eXBlb2YgaiYmIm51bWJlciIhPXR5cGVvZiBqfHwoeD14fHxbXSkucHVzaChMLCIiK2opOiJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmciIT09TCYmInN1cHByZXNzSHlkcmF0aW9uV2FybmluZyIhPT1MJiYody5oYXNPd25Qcm9wZXJ0eShMKT8obnVsbCE9aiYmIm9uU2Nyb2xsIj09PUwmJkQoInNjcm9sbCIscykseHx8Qz09PWp8fCh4PVtdKSk6KHg9eHx8W10pLnB1c2goTCxqKSl9aSYmKHg9eHx8W10pLnB1c2goInN0eWxlIixpKTt2YXIgTD14OyhvLnVwZGF0ZVF1ZXVlPUwpJiYoby5mbGFnc3w9NCl9fSx3cz1mdW5jdGlvbihzLG8saSxhKXtpIT09YSYmKG8uZmxhZ3N8PTQpfTt2YXIga3M9ITEsT3M9ITEsQ3M9ImZ1bmN0aW9uIj09dHlwZW9mIFdlYWtTZXQ/V2Vha1NldDpTZXQsQXM9bnVsbDtmdW5jdGlvbiBMaihzLG8pe3ZhciBpPXMucmVmO2lmKG51bGwhPT1pKWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBpKXRyeXtpKG51bGwpfWNhdGNoKGkpe1cocyxvLGkpfWVsc2UgaS5jdXJyZW50PW51bGx9ZnVuY3Rpb24gTWoocyxvLGkpe3RyeXtpKCl9Y2F0Y2goaSl7VyhzLG8saSl9fXZhciBqcz0hMTtmdW5jdGlvbiBQaihzLG8saSl7dmFyIGE9by51cGRhdGVRdWV1ZTtpZihudWxsIT09KGE9bnVsbCE9PWE/YS5sYXN0RWZmZWN0Om51bGwpKXt2YXIgdT1hPWEubmV4dDtkb3tpZigodS50YWcmcyk9PT1zKXt2YXIgXz11LmRlc3Ryb3k7dS5kZXN0cm95PXZvaWQgMCx2b2lkIDAhPT1fJiZNaihvLGksXyl9dT11Lm5leHR9d2hpbGUodSE9PWEpfX1mdW5jdGlvbiBRaihzLG8pe2lmKG51bGwhPT0obz1udWxsIT09KG89by51cGRhdGVRdWV1ZSk/by5sYXN0RWZmZWN0Om51bGwpKXt2YXIgaT1vPW8ubmV4dDtkb3tpZigoaS50YWcmcyk9PT1zKXt2YXIgYT1pLmNyZWF0ZTtpLmRlc3Ryb3k9YSgpfWk9aS5uZXh0fXdoaWxlKGkhPT1vKX19ZnVuY3Rpb24gUmoocyl7dmFyIG89cy5yZWY7aWYobnVsbCE9PW8pe3ZhciBpPXMuc3RhdGVOb2RlO3MudGFnLHM9aSwiZnVuY3Rpb24iPT10eXBlb2Ygbz9vKHMpOm8uY3VycmVudD1zfX1mdW5jdGlvbiBTaihzKXt2YXIgbz1zLmFsdGVybmF0ZTtudWxsIT09byYmKHMuYWx0ZXJuYXRlPW51bGwsU2oobykpLHMuY2hpbGQ9bnVsbCxzLmRlbGV0aW9ucz1udWxsLHMuc2libGluZz1udWxsLDU9PT1zLnRhZyYmKG51bGwhPT0obz1zLnN0YXRlTm9kZSkmJihkZWxldGUgb1tobl0sZGVsZXRlIG9bZG5dLGRlbGV0ZSBvW21uXSxkZWxldGUgb1tnbl0sZGVsZXRlIG9beW5dKSkscy5zdGF0ZU5vZGU9bnVsbCxzLnJldHVybj1udWxsLHMuZGVwZW5kZW5jaWVzPW51bGwscy5tZW1vaXplZFByb3BzPW51bGwscy5tZW1vaXplZFN0YXRlPW51bGwscy5wZW5kaW5nUHJvcHM9bnVsbCxzLnN0YXRlTm9kZT1udWxsLHMudXBkYXRlUXVldWU9bnVsbH1mdW5jdGlvbiBUaihzKXtyZXR1cm4gNT09PXMudGFnfHwzPT09cy50YWd8fDQ9PT1zLnRhZ31mdW5jdGlvbiBVaihzKXtlOmZvcig7Oyl7Zm9yKDtudWxsPT09cy5zaWJsaW5nOyl7aWYobnVsbD09PXMucmV0dXJufHxUaihzLnJldHVybikpcmV0dXJuIG51bGw7cz1zLnJldHVybn1mb3Iocy5zaWJsaW5nLnJldHVybj1zLnJldHVybixzPXMuc2libGluZzs1IT09cy50YWcmJjYhPT1zLnRhZyYmMTghPT1zLnRhZzspe2lmKDImcy5mbGFncyljb250aW51ZSBlO2lmKG51bGw9PT1zLmNoaWxkfHw0PT09cy50YWcpY29udGludWUgZTtzLmNoaWxkLnJldHVybj1zLHM9cy5jaGlsZH1pZighKDImcy5mbGFncykpcmV0dXJuIHMuc3RhdGVOb2RlfX1mdW5jdGlvbiBWaihzLG8saSl7dmFyIGE9cy50YWc7aWYoNT09PWF8fDY9PT1hKXM9cy5zdGF0ZU5vZGUsbz84PT09aS5ub2RlVHlwZT9pLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHMsbyk6aS5pbnNlcnRCZWZvcmUocyxvKTooOD09PWkubm9kZVR5cGU/KG89aS5wYXJlbnROb2RlKS5pbnNlcnRCZWZvcmUocyxpKToobz1pKS5hcHBlbmRDaGlsZChzKSxudWxsIT0oaT1pLl9yZWFjdFJvb3RDb250YWluZXIpfHxudWxsIT09by5vbmNsaWNrfHwoby5vbmNsaWNrPUJmKSk7ZWxzZSBpZig0IT09YSYmbnVsbCE9PShzPXMuY2hpbGQpKWZvcihWaihzLG8saSkscz1zLnNpYmxpbmc7bnVsbCE9PXM7KVZqKHMsbyxpKSxzPXMuc2libGluZ31mdW5jdGlvbiBXaihzLG8saSl7dmFyIGE9cy50YWc7aWYoNT09PWF8fDY9PT1hKXM9cy5zdGF0ZU5vZGUsbz9pLmluc2VydEJlZm9yZShzLG8pOmkuYXBwZW5kQ2hpbGQocyk7ZWxzZSBpZig0IT09YSYmbnVsbCE9PShzPXMuY2hpbGQpKWZvcihXaihzLG8saSkscz1zLnNpYmxpbmc7bnVsbCE9PXM7KVdqKHMsbyxpKSxzPXMuc2libGluZ312YXIgUHM9bnVsbCxJcz0hMTtmdW5jdGlvbiBZaihzLG8saSl7Zm9yKGk9aS5jaGlsZDtudWxsIT09aTspWmoocyxvLGkpLGk9aS5zaWJsaW5nfWZ1bmN0aW9uIFpqKHMsbyxpKXtpZihTdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN0Lm9uQ29tbWl0RmliZXJVbm1vdW50KXRyeXtTdC5vbkNvbW1pdEZpYmVyVW5tb3VudChfdCxpKX1jYXRjaChzKXt9c3dpdGNoKGkudGFnKXtjYXNlIDU6T3N8fExqKGksbyk7Y2FzZSA2OnZhciBhPVBzLHU9SXM7UHM9bnVsbCxZaihzLG8saSksSXM9dSxudWxsIT09KFBzPWEpJiYoSXM/KHM9UHMsaT1pLnN0YXRlTm9kZSw4PT09cy5ub2RlVHlwZT9zLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaSk6cy5yZW1vdmVDaGlsZChpKSk6UHMucmVtb3ZlQ2hpbGQoaS5zdGF0ZU5vZGUpKTticmVhaztjYXNlIDE4Om51bGwhPT1QcyYmKElzPyhzPVBzLGk9aS5zdGF0ZU5vZGUsOD09PXMubm9kZVR5cGU/S2Yocy5wYXJlbnROb2RlLGkpOjE9PT1zLm5vZGVUeXBlJiZLZihzLGkpLGJkKHMpKTpLZihQcyxpLnN0YXRlTm9kZSkpO2JyZWFrO2Nhc2UgNDphPVBzLHU9SXMsUHM9aS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxJcz0hMCxZaihzLG8saSksUHM9YSxJcz11O2JyZWFrO2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTppZighT3MmJihudWxsIT09KGE9aS51cGRhdGVRdWV1ZSkmJm51bGwhPT0oYT1hLmxhc3RFZmZlY3QpKSl7dT1hPWEubmV4dDtkb3t2YXIgXz11LHc9Xy5kZXN0cm95O189Xy50YWcsdm9pZCAwIT09dyYmKDImX3x8NCZfKSYmTWooaSxvLHcpLHU9dS5uZXh0fXdoaWxlKHUhPT1hKX1ZaihzLG8saSk7YnJlYWs7Y2FzZSAxOmlmKCFPcyYmKExqKGksbyksImZ1bmN0aW9uIj09dHlwZW9mKGE9aS5zdGF0ZU5vZGUpLmNvbXBvbmVudFdpbGxVbm1vdW50KSl0cnl7YS5wcm9wcz1pLm1lbW9pemVkUHJvcHMsYS5zdGF0ZT1pLm1lbW9pemVkU3RhdGUsYS5jb21wb25lbnRXaWxsVW5tb3VudCgpfWNhdGNoKHMpe1coaSxvLHMpfVlqKHMsbyxpKTticmVhaztjYXNlIDIxOllqKHMsbyxpKTticmVhaztjYXNlIDIyOjEmaS5tb2RlPyhPcz0oYT1Pcyl8fG51bGwhPT1pLm1lbW9pemVkU3RhdGUsWWoocyxvLGkpLE9zPWEpOllqKHMsbyxpKTticmVhaztkZWZhdWx0OllqKHMsbyxpKX19ZnVuY3Rpb24gYWsocyl7dmFyIG89cy51cGRhdGVRdWV1ZTtpZihudWxsIT09byl7cy51cGRhdGVRdWV1ZT1udWxsO3ZhciBpPXMuc3RhdGVOb2RlO251bGw9PT1pJiYoaT1zLnN0YXRlTm9kZT1uZXcgQ3MpLG8uZm9yRWFjaCgoZnVuY3Rpb24obyl7dmFyIGE9YmsuYmluZChudWxsLHMsbyk7aS5oYXMobyl8fChpLmFkZChvKSxvLnRoZW4oYSxhKSl9KSl9fWZ1bmN0aW9uIGNrKHMsbyl7dmFyIGk9by5kZWxldGlvbnM7aWYobnVsbCE9PWkpZm9yKHZhciBhPTA7YTxpLmxlbmd0aDthKyspe3ZhciB1PWlbYV07dHJ5e3ZhciBfPXMsdz1vLHg9dztlOmZvcig7bnVsbCE9PXg7KXtzd2l0Y2goeC50YWcpe2Nhc2UgNTpQcz14LnN0YXRlTm9kZSxJcz0hMTticmVhayBlO2Nhc2UgMzpjYXNlIDQ6UHM9eC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxJcz0hMDticmVhayBlfXg9eC5yZXR1cm59aWYobnVsbD09PVBzKXRocm93IEVycm9yKHAoMTYwKSk7WmooXyx3LHUpLFBzPW51bGwsSXM9ITE7dmFyIEM9dS5hbHRlcm5hdGU7bnVsbCE9PUMmJihDLnJldHVybj1udWxsKSx1LnJldHVybj1udWxsfWNhdGNoKHMpe1codSxvLHMpfX1pZigxMjg1NCZvLnN1YnRyZWVGbGFncylmb3Iobz1vLmNoaWxkO251bGwhPT1vOylkayhvLHMpLG89by5zaWJsaW5nfWZ1bmN0aW9uIGRrKHMsbyl7dmFyIGk9cy5hbHRlcm5hdGUsYT1zLmZsYWdzO3N3aXRjaChzLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmlmKGNrKG8scyksZWsocyksNCZhKXt0cnl7UGooMyxzLHMucmV0dXJuKSxRaigzLHMpfWNhdGNoKG8pe1cocyxzLnJldHVybixvKX10cnl7UGooNSxzLHMucmV0dXJuKX1jYXRjaChvKXtXKHMscy5yZXR1cm4sbyl9fWJyZWFrO2Nhc2UgMTpjayhvLHMpLGVrKHMpLDUxMiZhJiZudWxsIT09aSYmTGooaSxpLnJldHVybik7YnJlYWs7Y2FzZSA1OmlmKGNrKG8scyksZWsocyksNTEyJmEmJm51bGwhPT1pJiZMaihpLGkucmV0dXJuKSwzMiZzLmZsYWdzKXt2YXIgdT1zLnN0YXRlTm9kZTt0cnl7b2IodSwiIil9Y2F0Y2gobyl7VyhzLHMucmV0dXJuLG8pfX1pZig0JmEmJm51bGwhPSh1PXMuc3RhdGVOb2RlKSl7dmFyIF89cy5tZW1vaXplZFByb3BzLHc9bnVsbCE9PWk/aS5tZW1vaXplZFByb3BzOl8seD1zLnR5cGUsQz1zLnVwZGF0ZVF1ZXVlO2lmKHMudXBkYXRlUXVldWU9bnVsbCxudWxsIT09Qyl0cnl7ImlucHV0Ij09PXgmJiJyYWRpbyI9PT1fLnR5cGUmJm51bGwhPV8ubmFtZSYmYWIodSxfKSx2Yih4LHcpO3ZhciBqPXZiKHgsXyk7Zm9yKHc9MDt3PEMubGVuZ3RoO3crPTIpe3ZhciBMPUNbd10sQj1DW3crMV07InN0eWxlIj09PUw/c2IodSxCKToiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiPT09TD8kZSh1LEIpOiJjaGlsZHJlbiI9PT1MP29iKHUsQik6dGEodSxMLEIsail9c3dpdGNoKHgpe2Nhc2UiaW5wdXQiOmJiKHUsXyk7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6aWIodSxfKTticmVhaztjYXNlInNlbGVjdCI6dmFyICQ9dS5fd3JhcHBlclN0YXRlLndhc011bHRpcGxlO3UuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZT0hIV8ubXVsdGlwbGU7dmFyIFY9Xy52YWx1ZTtudWxsIT1WP2ZiKHUsISFfLm11bHRpcGxlLFYsITEpOiQhPT0hIV8ubXVsdGlwbGUmJihudWxsIT1fLmRlZmF1bHRWYWx1ZT9mYih1LCEhXy5tdWx0aXBsZSxfLmRlZmF1bHRWYWx1ZSwhMCk6ZmIodSwhIV8ubXVsdGlwbGUsXy5tdWx0aXBsZT9bXToiIiwhMSkpfXVbZG5dPV99Y2F0Y2gobyl7VyhzLHMucmV0dXJuLG8pfX1icmVhaztjYXNlIDY6aWYoY2sobyxzKSxlayhzKSw0JmEpe2lmKG51bGw9PT1zLnN0YXRlTm9kZSl0aHJvdyBFcnJvcihwKDE2MikpO3U9cy5zdGF0ZU5vZGUsXz1zLm1lbW9pemVkUHJvcHM7dHJ5e3Uubm9kZVZhbHVlPV99Y2F0Y2gobyl7VyhzLHMucmV0dXJuLG8pfX1icmVhaztjYXNlIDM6aWYoY2sobyxzKSxlayhzKSw0JmEmJm51bGwhPT1pJiZpLm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXRyeXtiZChvLmNvbnRhaW5lckluZm8pfWNhdGNoKG8pe1cocyxzLnJldHVybixvKX1icmVhaztjYXNlIDQ6ZGVmYXVsdDpjayhvLHMpLGVrKHMpO2JyZWFrO2Nhc2UgMTM6Y2sobyxzKSxlayhzKSw4MTkyJih1PXMuY2hpbGQpLmZsYWdzJiYoXz1udWxsIT09dS5tZW1vaXplZFN0YXRlLHUuc3RhdGVOb2RlLmlzSGlkZGVuPV8sIV98fG51bGwhPT11LmFsdGVybmF0ZSYmbnVsbCE9PXUuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGV8fChZcz1odCgpKSksNCZhJiZhayhzKTticmVhaztjYXNlIDIyOmlmKEw9bnVsbCE9PWkmJm51bGwhPT1pLm1lbW9pemVkU3RhdGUsMSZzLm1vZGU/KE9zPShqPU9zKXx8TCxjayhvLHMpLE9zPWopOmNrKG8scyksZWsocyksODE5MiZhKXtpZihqPW51bGwhPT1zLm1lbW9pemVkU3RhdGUsKHMuc3RhdGVOb2RlLmlzSGlkZGVuPWopJiYhTCYmMSZzLm1vZGUpZm9yKEFzPXMsTD1zLmNoaWxkO251bGwhPT1MOyl7Zm9yKEI9QXM9TDtudWxsIT09QXM7KXtzd2l0Y2goVj0oJD1BcykuY2hpbGQsJC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTpQaig0LCQsJC5yZXR1cm4pO2JyZWFrO2Nhc2UgMTpMaigkLCQucmV0dXJuKTt2YXIgVT0kLnN0YXRlTm9kZTtpZigiZnVuY3Rpb24iPT10eXBlb2YgVS5jb21wb25lbnRXaWxsVW5tb3VudCl7YT0kLGk9JC5yZXR1cm47dHJ5e289YSxVLnByb3BzPW8ubWVtb2l6ZWRQcm9wcyxVLnN0YXRlPW8ubWVtb2l6ZWRTdGF0ZSxVLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2gocyl7VyhhLGkscyl9fWJyZWFrO2Nhc2UgNTpMaigkLCQucmV0dXJuKTticmVhaztjYXNlIDIyOmlmKG51bGwhPT0kLm1lbW9pemVkU3RhdGUpe2drKEIpO2NvbnRpbnVlfX1udWxsIT09Vj8oVi5yZXR1cm49JCxBcz1WKTpnayhCKX1MPUwuc2libGluZ31lOmZvcihMPW51bGwsQj1zOzspe2lmKDU9PT1CLnRhZyl7aWYobnVsbD09PUwpe0w9Qjt0cnl7dT1CLnN0YXRlTm9kZSxqPyJmdW5jdGlvbiI9PXR5cGVvZihfPXUuc3R5bGUpLnNldFByb3BlcnR5P18uc2V0UHJvcGVydHkoImRpc3BsYXkiLCJub25lIiwiaW1wb3J0YW50Iik6Xy5kaXNwbGF5PSJub25lIjooeD1CLnN0YXRlTm9kZSx3PW51bGwhPShDPUIubWVtb2l6ZWRQcm9wcy5zdHlsZSkmJkMuaGFzT3duUHJvcGVydHkoImRpc3BsYXkiKT9DLmRpc3BsYXk6bnVsbCx4LnN0eWxlLmRpc3BsYXk9cmIoImRpc3BsYXkiLHcpKX1jYXRjaChvKXtXKHMscy5yZXR1cm4sbyl9fX1lbHNlIGlmKDY9PT1CLnRhZyl7aWYobnVsbD09PUwpdHJ5e0Iuc3RhdGVOb2RlLm5vZGVWYWx1ZT1qPyIiOkIubWVtb2l6ZWRQcm9wc31jYXRjaChvKXtXKHMscy5yZXR1cm4sbyl9fWVsc2UgaWYoKDIyIT09Qi50YWcmJjIzIT09Qi50YWd8fG51bGw9PT1CLm1lbW9pemVkU3RhdGV8fEI9PT1zKSYmbnVsbCE9PUIuY2hpbGQpe0IuY2hpbGQucmV0dXJuPUIsQj1CLmNoaWxkO2NvbnRpbnVlfWlmKEI9PT1zKWJyZWFrIGU7Zm9yKDtudWxsPT09Qi5zaWJsaW5nOyl7aWYobnVsbD09PUIucmV0dXJufHxCLnJldHVybj09PXMpYnJlYWsgZTtMPT09QiYmKEw9bnVsbCksQj1CLnJldHVybn1MPT09QiYmKEw9bnVsbCksQi5zaWJsaW5nLnJldHVybj1CLnJldHVybixCPUIuc2libGluZ319YnJlYWs7Y2FzZSAxOTpjayhvLHMpLGVrKHMpLDQmYSYmYWsocyk7Y2FzZSAyMTp9fWZ1bmN0aW9uIGVrKHMpe3ZhciBvPXMuZmxhZ3M7aWYoMiZvKXt0cnl7ZTp7Zm9yKHZhciBpPXMucmV0dXJuO251bGwhPT1pOyl7aWYoVGooaSkpe3ZhciBhPWk7YnJlYWsgZX1pPWkucmV0dXJufXRocm93IEVycm9yKHAoMTYwKSl9c3dpdGNoKGEudGFnKXtjYXNlIDU6dmFyIHU9YS5zdGF0ZU5vZGU7MzImYS5mbGFncyYmKG9iKHUsIiIpLGEuZmxhZ3MmPS0zMyksV2oocyxVaihzKSx1KTticmVhaztjYXNlIDM6Y2FzZSA0OnZhciBfPWEuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87VmoocyxVaihzKSxfKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKHAoMTYxKSl9fWNhdGNoKG8pe1cocyxzLnJldHVybixvKX1zLmZsYWdzJj0tM300MDk2Jm8mJihzLmZsYWdzJj0tNDA5Nyl9ZnVuY3Rpb24gaGsocyxvLGkpe0FzPXMsaWsocyxvLGkpfWZ1bmN0aW9uIGlrKHMsbyxpKXtmb3IodmFyIGE9ISEoMSZzLm1vZGUpO251bGwhPT1Bczspe3ZhciB1PUFzLF89dS5jaGlsZDtpZigyMj09PXUudGFnJiZhKXt2YXIgdz1udWxsIT09dS5tZW1vaXplZFN0YXRlfHxrcztpZighdyl7dmFyIHg9dS5hbHRlcm5hdGUsQz1udWxsIT09eCYmbnVsbCE9PXgubWVtb2l6ZWRTdGF0ZXx8T3M7eD1rczt2YXIgaj1PcztpZihrcz13LChPcz1DKSYmIWopZm9yKEFzPXU7bnVsbCE9PUFzOylDPSh3PUFzKS5jaGlsZCwyMj09PXcudGFnJiZudWxsIT09dy5tZW1vaXplZFN0YXRlP2prKHUpOm51bGwhPT1DPyhDLnJldHVybj13LEFzPUMpOmprKHUpO2Zvcig7bnVsbCE9PV87KUFzPV8saWsoXyxvLGkpLF89Xy5zaWJsaW5nO0FzPXUsa3M9eCxPcz1qfWtrKHMpfWVsc2UgODc3MiZ1LnN1YnRyZWVGbGFncyYmbnVsbCE9PV8/KF8ucmV0dXJuPXUsQXM9Xyk6a2socyl9fWZ1bmN0aW9uIGtrKHMpe2Zvcig7bnVsbCE9PUFzOyl7dmFyIG89QXM7aWYoODc3MiZvLmZsYWdzKXt2YXIgaT1vLmFsdGVybmF0ZTt0cnl7aWYoODc3MiZvLmZsYWdzKXN3aXRjaChvLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpPc3x8UWooNSxvKTticmVhaztjYXNlIDE6dmFyIGE9by5zdGF0ZU5vZGU7aWYoNCZvLmZsYWdzJiYhT3MpaWYobnVsbD09PWkpYS5jb21wb25lbnREaWRNb3VudCgpO2Vsc2V7dmFyIHU9by5lbGVtZW50VHlwZT09PW8udHlwZT9pLm1lbW9pemVkUHJvcHM6Q2koby50eXBlLGkubWVtb2l6ZWRQcm9wcyk7YS5jb21wb25lbnREaWRVcGRhdGUodSxpLm1lbW9pemVkU3RhdGUsYS5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZSl9dmFyIF89by51cGRhdGVRdWV1ZTtudWxsIT09XyYmc2gobyxfLGEpO2JyZWFrO2Nhc2UgMzp2YXIgdz1vLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT13KXtpZihpPW51bGwsbnVsbCE9PW8uY2hpbGQpc3dpdGNoKG8uY2hpbGQudGFnKXtjYXNlIDU6Y2FzZSAxOmk9by5jaGlsZC5zdGF0ZU5vZGV9c2gobyx3LGkpfWJyZWFrO2Nhc2UgNTp2YXIgeD1vLnN0YXRlTm9kZTtpZihudWxsPT09aSYmNCZvLmZsYWdzKXtpPXg7dmFyIEM9by5tZW1vaXplZFByb3BzO3N3aXRjaChvLnR5cGUpe2Nhc2UiYnV0dG9uIjpjYXNlImlucHV0IjpjYXNlInNlbGVjdCI6Y2FzZSJ0ZXh0YXJlYSI6Qy5hdXRvRm9jdXMmJmkuZm9jdXMoKTticmVhaztjYXNlImltZyI6Qy5zcmMmJihpLnNyYz1DLnNyYyl9fWJyZWFrO2Nhc2UgNjpjYXNlIDQ6Y2FzZSAxMjpjYXNlIDE5OmNhc2UgMTc6Y2FzZSAyMTpjYXNlIDIyOmNhc2UgMjM6Y2FzZSAyNTpicmVhaztjYXNlIDEzOmlmKG51bGw9PT1vLm1lbW9pemVkU3RhdGUpe3ZhciBqPW8uYWx0ZXJuYXRlO2lmKG51bGwhPT1qKXt2YXIgTD1qLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PUwpe3ZhciBCPUwuZGVoeWRyYXRlZDtudWxsIT09QiYmYmQoQil9fX1icmVhaztkZWZhdWx0OnRocm93IEVycm9yKHAoMTYzKSl9T3N8fDUxMiZvLmZsYWdzJiZSaihvKX1jYXRjaChzKXtXKG8sby5yZXR1cm4scyl9fWlmKG89PT1zKXtBcz1udWxsO2JyZWFrfWlmKG51bGwhPT0oaT1vLnNpYmxpbmcpKXtpLnJldHVybj1vLnJldHVybixBcz1pO2JyZWFrfUFzPW8ucmV0dXJufX1mdW5jdGlvbiBnayhzKXtmb3IoO251bGwhPT1Bczspe3ZhciBvPUFzO2lmKG89PT1zKXtBcz1udWxsO2JyZWFrfXZhciBpPW8uc2libGluZztpZihudWxsIT09aSl7aS5yZXR1cm49by5yZXR1cm4sQXM9aTticmVha31Bcz1vLnJldHVybn19ZnVuY3Rpb24gamsocyl7Zm9yKDtudWxsIT09QXM7KXt2YXIgbz1Bczt0cnl7c3dpdGNoKG8udGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OnZhciBpPW8ucmV0dXJuO3RyeXtRaig0LG8pfWNhdGNoKHMpe1cobyxpLHMpfWJyZWFrO2Nhc2UgMTp2YXIgYT1vLnN0YXRlTm9kZTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS5jb21wb25lbnREaWRNb3VudCl7dmFyIHU9by5yZXR1cm47dHJ5e2EuY29tcG9uZW50RGlkTW91bnQoKX1jYXRjaChzKXtXKG8sdSxzKX19dmFyIF89by5yZXR1cm47dHJ5e1JqKG8pfWNhdGNoKHMpe1cobyxfLHMpfWJyZWFrO2Nhc2UgNTp2YXIgdz1vLnJldHVybjt0cnl7Umoobyl9Y2F0Y2gocyl7VyhvLHcscyl9fX1jYXRjaChzKXtXKG8sby5yZXR1cm4scyl9aWYobz09PXMpe0FzPW51bGw7YnJlYWt9dmFyIHg9by5zaWJsaW5nO2lmKG51bGwhPT14KXt4LnJldHVybj1vLnJldHVybixBcz14O2JyZWFrfUFzPW8ucmV0dXJufX12YXIgVHMsTnM9TWF0aC5jZWlsLE1zPVUuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixScz1VLlJlYWN0Q3VycmVudE93bmVyLERzPVUuUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsTHM9MCxGcz1udWxsLEJzPW51bGwsJHM9MCxxcz0wLFZzPVVmKDApLFVzPTAsenM9bnVsbCxXcz0wLEpzPTAsSHM9MCxLcz1udWxsLEdzPW51bGwsWXM9MCxYcz0xLzAsUXM9bnVsbCxacz0hMSxlbz1udWxsLHRvPW51bGwscm89ITEsbm89bnVsbCxzbz0wLG9vPTAsaW89bnVsbCxhbz0tMSxjbz0wO2Z1bmN0aW9uIFIoKXtyZXR1cm4gNiZMcz9odCgpOi0xIT09YW8/YW86YW89aHQoKX1mdW5jdGlvbiB5aShzKXtyZXR1cm4gMSZzLm1vZGU/MiZMcyYmMCE9PSRzPyRzJi0kczpudWxsIT09JG4udHJhbnNpdGlvbj8oMD09PWNvJiYoY289eWMoKSksY28pOjAhPT0ocz1DdCk/czpzPXZvaWQgMD09PShzPXdpbmRvdy5ldmVudCk/MTY6amQocy50eXBlKToxfWZ1bmN0aW9uIGdpKHMsbyxpLGEpe2lmKDUwPG9vKXRocm93IG9vPTAsaW89bnVsbCxFcnJvcihwKDE4NSkpO0FjKHMsaSxhKSwyJkxzJiZzPT09RnN8fChzPT09RnMmJighKDImTHMpJiYoSnN8PWkpLDQ9PT1VcyYmQ2socywkcykpLERrKHMsYSksMT09PWkmJjA9PT1McyYmISgxJm8ubW9kZSkmJihYcz1odCgpKzUwMCxrbiYmamcoKSkpfWZ1bmN0aW9uIERrKHMsbyl7dmFyIGk9cy5jYWxsYmFja05vZGU7IWZ1bmN0aW9uIHdjKHMsbyl7Zm9yKHZhciBpPXMuc3VzcGVuZGVkTGFuZXMsYT1zLnBpbmdlZExhbmVzLHU9cy5leHBpcmF0aW9uVGltZXMsXz1zLnBlbmRpbmdMYW5lczswPF87KXt2YXIgdz0zMS1FdChfKSx4PTE8PHcsQz11W3ddOy0xPT09Qz94JmkmJiEoeCZhKXx8KHVbd109dmMoeCxvKSk6Qzw9byYmKHMuZXhwaXJlZExhbmVzfD14KSxfJj1+eH19KHMsbyk7dmFyIGE9dWMocyxzPT09RnM/JHM6MCk7aWYoMD09PWEpbnVsbCE9PWkmJmx0KGkpLHMuY2FsbGJhY2tOb2RlPW51bGwscy5jYWxsYmFja1ByaW9yaXR5PTA7ZWxzZSBpZihvPWEmLWEscy5jYWxsYmFja1ByaW9yaXR5IT09byl7aWYobnVsbCE9aSYmbHQoaSksMT09PW8pMD09PXMudGFnP2Z1bmN0aW9uIGlnKHMpe2tuPSEwLGhnKHMpfShFay5iaW5kKG51bGwscykpOmhnKEVrLmJpbmQobnVsbCxzKSksdW4oKGZ1bmN0aW9uKCl7ISg2JkxzKSYmamcoKX0pKSxpPW51bGw7ZWxzZXtzd2l0Y2goRGMoYSkpe2Nhc2UgMTppPW10O2JyZWFrO2Nhc2UgNDppPWd0O2JyZWFrO2Nhc2UgMTY6ZGVmYXVsdDppPXl0O2JyZWFrO2Nhc2UgNTM2ODcwOTEyOmk9YnR9aT1GayhpLEdrLmJpbmQobnVsbCxzKSl9cy5jYWxsYmFja1ByaW9yaXR5PW8scy5jYWxsYmFja05vZGU9aX19ZnVuY3Rpb24gR2socyxvKXtpZihhbz0tMSxjbz0wLDYmTHMpdGhyb3cgRXJyb3IocCgzMjcpKTt2YXIgaT1zLmNhbGxiYWNrTm9kZTtpZihIaygpJiZzLmNhbGxiYWNrTm9kZSE9PWkpcmV0dXJuIG51bGw7dmFyIGE9dWMocyxzPT09RnM/JHM6MCk7aWYoMD09PWEpcmV0dXJuIG51bGw7aWYoMzAmYXx8YSZzLmV4cGlyZWRMYW5lc3x8bylvPUlrKHMsYSk7ZWxzZXtvPWE7dmFyIHU9THM7THN8PTI7dmFyIF89SmsoKTtmb3IoRnM9PT1zJiYkcz09PW98fChRcz1udWxsLFhzPWh0KCkrNTAwLEtrKHMsbykpOzspdHJ5e0xrKCk7YnJlYWt9Y2F0Y2gobyl7TWsocyxvKX0kZygpLE1zLmN1cnJlbnQ9XyxMcz11LG51bGwhPT1Ccz9vPTA6KEZzPW51bGwsJHM9MCxvPVVzKX1pZigwIT09byl7aWYoMj09PW8mJigwIT09KHU9eGMocykpJiYoYT11LG89Tmsocyx1KSkpLDE9PT1vKXRocm93IGk9enMsS2socywwKSxDayhzLGEpLERrKHMsaHQoKSksaTtpZig2PT09bylDayhzLGEpO2Vsc2V7aWYodT1zLmN1cnJlbnQuYWx0ZXJuYXRlLCEoMzAmYXx8ZnVuY3Rpb24gT2socyl7Zm9yKHZhciBvPXM7Oyl7aWYoMTYzODQmby5mbGFncyl7dmFyIGk9by51cGRhdGVRdWV1ZTtpZihudWxsIT09aSYmbnVsbCE9PShpPWkuc3RvcmVzKSlmb3IodmFyIGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIHU9aVthXSxfPXUuZ2V0U25hcHNob3Q7dT11LnZhbHVlO3RyeXtpZighRHIoXygpLHUpKXJldHVybiExfWNhdGNoKHMpe3JldHVybiExfX19aWYoaT1vLmNoaWxkLDE2Mzg0Jm8uc3VidHJlZUZsYWdzJiZudWxsIT09aSlpLnJldHVybj1vLG89aTtlbHNle2lmKG89PT1zKWJyZWFrO2Zvcig7bnVsbD09PW8uc2libGluZzspe2lmKG51bGw9PT1vLnJldHVybnx8by5yZXR1cm49PT1zKXJldHVybiEwO289by5yZXR1cm59by5zaWJsaW5nLnJldHVybj1vLnJldHVybixvPW8uc2libGluZ319cmV0dXJuITB9KHUpfHwobz1JayhzLGEpLDI9PT1vJiYoXz14YyhzKSwwIT09XyYmKGE9XyxvPU5rKHMsXykpKSwxIT09bykpKXRocm93IGk9enMsS2socywwKSxDayhzLGEpLERrKHMsaHQoKSksaTtzd2l0Y2gocy5maW5pc2hlZFdvcms9dSxzLmZpbmlzaGVkTGFuZXM9YSxvKXtjYXNlIDA6Y2FzZSAxOnRocm93IEVycm9yKHAoMzQ1KSk7Y2FzZSAyOmNhc2UgNTpQayhzLEdzLFFzKTticmVhaztjYXNlIDM6aWYoQ2socyxhKSwoMTMwMDIzNDI0JmEpPT09YSYmMTA8KG89WXMrNTAwLWh0KCkpKXtpZigwIT09dWMocywwKSlicmVhaztpZigoKHU9cy5zdXNwZW5kZWRMYW5lcykmYSkhPT1hKXtSKCkscy5waW5nZWRMYW5lc3w9cy5zdXNwZW5kZWRMYW5lcyZ1O2JyZWFrfXMudGltZW91dEhhbmRsZT1hbihQay5iaW5kKG51bGwscyxHcyxRcyksbyk7YnJlYWt9UGsocyxHcyxRcyk7YnJlYWs7Y2FzZSA0OmlmKENrKHMsYSksKDQxOTQyNDAmYSk9PT1hKWJyZWFrO2ZvcihvPXMuZXZlbnRUaW1lcyx1PS0xOzA8YTspe3ZhciB3PTMxLUV0KGEpO189MTw8dywodz1vW3ddKT51JiYodT13KSxhJj1+X31pZihhPXUsMTA8KGE9KDEyMD4oYT1odCgpLWEpPzEyMDo0ODA+YT80ODA6MTA4MD5hPzEwODA6MTkyMD5hPzE5MjA6M2UzPmE/M2UzOjQzMjA+YT80MzIwOjE5NjAqTnMoYS8xOTYwKSktYSkpe3MudGltZW91dEhhbmRsZT1hbihQay5iaW5kKG51bGwscyxHcyxRcyksYSk7YnJlYWt9UGsocyxHcyxRcyk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihwKDMyOSkpfX19cmV0dXJuIERrKHMsaHQoKSkscy5jYWxsYmFja05vZGU9PT1pP0drLmJpbmQobnVsbCxzKTpudWxsfWZ1bmN0aW9uIE5rKHMsbyl7dmFyIGk9S3M7cmV0dXJuIHMuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCYmKEtrKHMsbykuZmxhZ3N8PTI1NiksMiE9PShzPUlrKHMsbykpJiYobz1HcyxHcz1pLG51bGwhPT1vJiZGaihvKSksc31mdW5jdGlvbiBGaihzKXtudWxsPT09R3M/R3M9czpHcy5wdXNoLmFwcGx5KEdzLHMpfWZ1bmN0aW9uIENrKHMsbyl7Zm9yKG8mPX5IcyxvJj1+SnMscy5zdXNwZW5kZWRMYW5lc3w9byxzLnBpbmdlZExhbmVzJj1+byxzPXMuZXhwaXJhdGlvblRpbWVzOzA8bzspe3ZhciBpPTMxLUV0KG8pLGE9MTw8aTtzW2ldPS0xLG8mPX5hfX1mdW5jdGlvbiBFayhzKXtpZig2JkxzKXRocm93IEVycm9yKHAoMzI3KSk7SGsoKTt2YXIgbz11YyhzLDApO2lmKCEoMSZvKSlyZXR1cm4gRGsocyxodCgpKSxudWxsO3ZhciBpPUlrKHMsbyk7aWYoMCE9PXMudGFnJiYyPT09aSl7dmFyIGE9eGMocyk7MCE9PWEmJihvPWEsaT1OayhzLGEpKX1pZigxPT09aSl0aHJvdyBpPXpzLEtrKHMsMCksQ2socyxvKSxEayhzLGh0KCkpLGk7aWYoNj09PWkpdGhyb3cgRXJyb3IocCgzNDUpKTtyZXR1cm4gcy5maW5pc2hlZFdvcms9cy5jdXJyZW50LmFsdGVybmF0ZSxzLmZpbmlzaGVkTGFuZXM9byxQayhzLEdzLFFzKSxEayhzLGh0KCkpLG51bGx9ZnVuY3Rpb24gUWsocyxvKXt2YXIgaT1McztMc3w9MTt0cnl7cmV0dXJuIHMobyl9ZmluYWxseXswPT09KExzPWkpJiYoWHM9aHQoKSs1MDAsa24mJmpnKCkpfX1mdW5jdGlvbiBSayhzKXtudWxsIT09bm8mJjA9PT1uby50YWcmJiEoNiZMcykmJkhrKCk7dmFyIG89THM7THN8PTE7dmFyIGk9RHMudHJhbnNpdGlvbixhPUN0O3RyeXtpZihEcy50cmFuc2l0aW9uPW51bGwsQ3Q9MSxzKXJldHVybiBzKCl9ZmluYWxseXtDdD1hLERzLnRyYW5zaXRpb249aSwhKDYmKExzPW8pKSYmamcoKX19ZnVuY3Rpb24gSGooKXtxcz1Wcy5jdXJyZW50LEUoVnMpfWZ1bmN0aW9uIEtrKHMsbyl7cy5maW5pc2hlZFdvcms9bnVsbCxzLmZpbmlzaGVkTGFuZXM9MDt2YXIgaT1zLnRpbWVvdXRIYW5kbGU7aWYoLTEhPT1pJiYocy50aW1lb3V0SGFuZGxlPS0xLGNuKGkpKSxudWxsIT09QnMpZm9yKGk9QnMucmV0dXJuO251bGwhPT1pOyl7dmFyIGE9aTtzd2l0Y2god2coYSksYS50YWcpe2Nhc2UgMTpudWxsIT0oYT1hLnR5cGUuY2hpbGRDb250ZXh0VHlwZXMpJiYkZigpO2JyZWFrO2Nhc2UgMzp6aCgpLEUoRW4pLEUoU24pLEVoKCk7YnJlYWs7Y2FzZSA1OkJoKGEpO2JyZWFrO2Nhc2UgNDp6aCgpO2JyZWFrO2Nhc2UgMTM6Y2FzZSAxOTpFKFpuKTticmVhaztjYXNlIDEwOmFoKGEudHlwZS5fY29udGV4dCk7YnJlYWs7Y2FzZSAyMjpjYXNlIDIzOkhqKCl9aT1pLnJldHVybn1pZihGcz1zLEJzPXM9UGcocy5jdXJyZW50LG51bGwpLCRzPXFzPW8sVXM9MCx6cz1udWxsLEhzPUpzPVdzPTAsR3M9S3M9bnVsbCxudWxsIT09SG4pe2ZvcihvPTA7bzxIbi5sZW5ndGg7bysrKWlmKG51bGwhPT0oYT0oaT1IbltvXSkuaW50ZXJsZWF2ZWQpKXtpLmludGVybGVhdmVkPW51bGw7dmFyIHU9YS5uZXh0LF89aS5wZW5kaW5nO2lmKG51bGwhPT1fKXt2YXIgdz1fLm5leHQ7Xy5uZXh0PXUsYS5uZXh0PXd9aS5wZW5kaW5nPWF9SG49bnVsbH1yZXR1cm4gc31mdW5jdGlvbiBNayhzLG8pe2Zvcig7Oyl7dmFyIGk9QnM7dHJ5e2lmKCRnKCksdHMuY3VycmVudD1ocyxjcyl7Zm9yKHZhciBhPXNzLm1lbW9pemVkU3RhdGU7bnVsbCE9PWE7KXt2YXIgdT1hLnF1ZXVlO251bGwhPT11JiYodS5wZW5kaW5nPW51bGwpLGE9YS5uZXh0fWNzPSExfWlmKG5zPTAsYXM9b3M9c3M9bnVsbCxscz0hMSx1cz0wLFJzLmN1cnJlbnQ9bnVsbCxudWxsPT09aXx8bnVsbD09PWkucmV0dXJuKXtVcz0xLHpzPW8sQnM9bnVsbDticmVha31lOnt2YXIgXz1zLHc9aS5yZXR1cm4seD1pLEM9bztpZihvPSRzLHguZmxhZ3N8PTMyNzY4LG51bGwhPT1DJiYib2JqZWN0Ij09dHlwZW9mIEMmJiJmdW5jdGlvbiI9PXR5cGVvZiBDLnRoZW4pe3ZhciBqPUMsTD14LEI9TC50YWc7aWYoISgxJkwubW9kZXx8MCE9PUImJjExIT09QiYmMTUhPT1CKSl7dmFyICQ9TC5hbHRlcm5hdGU7JD8oTC51cGRhdGVRdWV1ZT0kLnVwZGF0ZVF1ZXVlLEwubWVtb2l6ZWRTdGF0ZT0kLm1lbW9pemVkU3RhdGUsTC5sYW5lcz0kLmxhbmVzKTooTC51cGRhdGVRdWV1ZT1udWxsLEwubWVtb2l6ZWRTdGF0ZT1udWxsKX12YXIgVj1VaSh3KTtpZihudWxsIT09Vil7Vi5mbGFncyY9LTI1NyxWaShWLHcseCwwLG8pLDEmVi5tb2RlJiZTaShfLGosbyksQz1qO3ZhciBVPShvPVYpLnVwZGF0ZVF1ZXVlO2lmKG51bGw9PT1VKXt2YXIgej1uZXcgU2V0O3ouYWRkKEMpLG8udXBkYXRlUXVldWU9en1lbHNlIFUuYWRkKEMpO2JyZWFrIGV9aWYoISgxJm8pKXtTaShfLGosbyksdGooKTticmVhayBlfUM9RXJyb3IocCg0MjYpKX1lbHNlIGlmKEZuJiYxJngubW9kZSl7dmFyIFk9VWkodyk7aWYobnVsbCE9PVkpeyEoNjU1MzYmWS5mbGFncykmJihZLmZsYWdzfD0yNTYpLFZpKFksdyx4LDAsbyksSmcoSmkoQyx4KSk7YnJlYWsgZX19Xz1DPUppKEMseCksNCE9PVVzJiYoVXM9MiksbnVsbD09PUtzP0tzPVtfXTpLcy5wdXNoKF8pLF89dztkb3tzd2l0Y2goXy50YWcpe2Nhc2UgMzpfLmZsYWdzfD02NTUzNixvJj0tbyxfLmxhbmVzfD1vLHBoKF8sTmkoMCxDLG8pKTticmVhayBlO2Nhc2UgMTp4PUM7dmFyIFo9Xy50eXBlLGVlPV8uc3RhdGVOb2RlO2lmKCEoMTI4Jl8uZmxhZ3N8fCJmdW5jdGlvbiIhPXR5cGVvZiBaLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvciYmKG51bGw9PT1lZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGVlLmNvbXBvbmVudERpZENhdGNofHxudWxsIT09dG8mJnRvLmhhcyhlZSkpKSl7Xy5mbGFnc3w9NjU1MzYsbyY9LW8sXy5sYW5lc3w9byxwaChfLFFpKF8seCxvKSk7YnJlYWsgZX19Xz1fLnJldHVybn13aGlsZShudWxsIT09Xyl9U2soaSl9Y2F0Y2gocyl7bz1zLEJzPT09aSYmbnVsbCE9PWkmJihCcz1pPWkucmV0dXJuKTtjb250aW51ZX1icmVha319ZnVuY3Rpb24gSmsoKXt2YXIgcz1Ncy5jdXJyZW50O3JldHVybiBNcy5jdXJyZW50PWhzLG51bGw9PT1zP2hzOnN9ZnVuY3Rpb24gdGooKXswIT09VXMmJjMhPT1VcyYmMiE9PVVzfHwoVXM9NCksbnVsbD09PUZzfHwhKDI2ODQzNTQ1NSZXcykmJiEoMjY4NDM1NDU1JkpzKXx8Q2soRnMsJHMpfWZ1bmN0aW9uIElrKHMsbyl7dmFyIGk9THM7THN8PTI7dmFyIGE9SmsoKTtmb3IoRnM9PT1zJiYkcz09PW98fChRcz1udWxsLEtrKHMsbykpOzspdHJ5e1RrKCk7YnJlYWt9Y2F0Y2gobyl7TWsocyxvKX1pZigkZygpLExzPWksTXMuY3VycmVudD1hLG51bGwhPT1Ccyl0aHJvdyBFcnJvcihwKDI2MSkpO3JldHVybiBGcz1udWxsLCRzPTAsVXN9ZnVuY3Rpb24gVGsoKXtmb3IoO251bGwhPT1CczspVWsoQnMpfWZ1bmN0aW9uIExrKCl7Zm9yKDtudWxsIT09QnMmJiF1dCgpOylVayhCcyl9ZnVuY3Rpb24gVWsocyl7dmFyIG89VHMocy5hbHRlcm5hdGUscyxxcyk7cy5tZW1vaXplZFByb3BzPXMucGVuZGluZ1Byb3BzLG51bGw9PT1vP1NrKHMpOkJzPW8sUnMuY3VycmVudD1udWxsfWZ1bmN0aW9uIFNrKHMpe3ZhciBvPXM7ZG97dmFyIGk9by5hbHRlcm5hdGU7aWYocz1vLnJldHVybiwzMjc2OCZvLmZsYWdzKXtpZihudWxsIT09KGk9SWooaSxvKSkpcmV0dXJuIGkuZmxhZ3MmPTMyNzY3LHZvaWQoQnM9aSk7aWYobnVsbD09PXMpcmV0dXJuIFVzPTYsdm9pZChCcz1udWxsKTtzLmZsYWdzfD0zMjc2OCxzLnN1YnRyZWVGbGFncz0wLHMuZGVsZXRpb25zPW51bGx9ZWxzZSBpZihudWxsIT09KGk9RWooaSxvLHFzKSkpcmV0dXJuIHZvaWQoQnM9aSk7aWYobnVsbCE9PShvPW8uc2libGluZykpcmV0dXJuIHZvaWQoQnM9byk7QnM9bz1zfXdoaWxlKG51bGwhPT1vKTswPT09VXMmJihVcz01KX1mdW5jdGlvbiBQayhzLG8saSl7dmFyIGE9Q3QsdT1Ecy50cmFuc2l0aW9uO3RyeXtEcy50cmFuc2l0aW9uPW51bGwsQ3Q9MSxmdW5jdGlvbiBXayhzLG8saSxhKXtkb3tIaygpfXdoaWxlKG51bGwhPT1ubyk7aWYoNiZMcyl0aHJvdyBFcnJvcihwKDMyNykpO2k9cy5maW5pc2hlZFdvcms7dmFyIHU9cy5maW5pc2hlZExhbmVzO2lmKG51bGw9PT1pKXJldHVybiBudWxsO2lmKHMuZmluaXNoZWRXb3JrPW51bGwscy5maW5pc2hlZExhbmVzPTAsaT09PXMuY3VycmVudCl0aHJvdyBFcnJvcihwKDE3NykpO3MuY2FsbGJhY2tOb2RlPW51bGwscy5jYWxsYmFja1ByaW9yaXR5PTA7dmFyIF89aS5sYW5lc3xpLmNoaWxkTGFuZXM7aWYoZnVuY3Rpb24gQmMocyxvKXt2YXIgaT1zLnBlbmRpbmdMYW5lcyZ+bztzLnBlbmRpbmdMYW5lcz1vLHMuc3VzcGVuZGVkTGFuZXM9MCxzLnBpbmdlZExhbmVzPTAscy5leHBpcmVkTGFuZXMmPW8scy5tdXRhYmxlUmVhZExhbmVzJj1vLHMuZW50YW5nbGVkTGFuZXMmPW8sbz1zLmVudGFuZ2xlbWVudHM7dmFyIGE9cy5ldmVudFRpbWVzO2ZvcihzPXMuZXhwaXJhdGlvblRpbWVzOzA8aTspe3ZhciB1PTMxLUV0KGkpLF89MTw8dTtvW3VdPTAsYVt1XT0tMSxzW3VdPS0xLGkmPX5ffX0ocyxfKSxzPT09RnMmJihCcz1Gcz1udWxsLCRzPTApLCEoMjA2NCZpLnN1YnRyZWVGbGFncykmJiEoMjA2NCZpLmZsYWdzKXx8cm98fChybz0hMCxGayh5dCwoZnVuY3Rpb24oKXtyZXR1cm4gSGsoKSxudWxsfSkpKSxfPSEhKDE1OTkwJmkuZmxhZ3MpLCEhKDE1OTkwJmkuc3VidHJlZUZsYWdzKXx8Xyl7Xz1Ecy50cmFuc2l0aW9uLERzLnRyYW5zaXRpb249bnVsbDt2YXIgdz1DdDtDdD0xO3ZhciB4PUxzO0xzfD00LFJzLmN1cnJlbnQ9bnVsbCxmdW5jdGlvbiBPaihzLG8pe2lmKHNuPVV0LE5lKHM9TWUoKSkpe2lmKCJzZWxlY3Rpb25TdGFydCJpbiBzKXZhciBpPXtzdGFydDpzLnNlbGVjdGlvblN0YXJ0LGVuZDpzLnNlbGVjdGlvbkVuZH07ZWxzZSBlOnt2YXIgYT0oaT0oaT1zLm93bmVyRG9jdW1lbnQpJiZpLmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbiYmaS5nZXRTZWxlY3Rpb24oKTtpZihhJiYwIT09YS5yYW5nZUNvdW50KXtpPWEuYW5jaG9yTm9kZTt2YXIgdT1hLmFuY2hvck9mZnNldCxfPWEuZm9jdXNOb2RlO2E9YS5mb2N1c09mZnNldDt0cnl7aS5ub2RlVHlwZSxfLm5vZGVUeXBlfWNhdGNoKHMpe2k9bnVsbDticmVhayBlfXZhciB3PTAseD0tMSxDPS0xLGo9MCxMPTAsQj1zLCQ9bnVsbDt0OmZvcig7Oyl7Zm9yKHZhciBWO0IhPT1pfHwwIT09dSYmMyE9PUIubm9kZVR5cGV8fCh4PXcrdSksQiE9PV98fDAhPT1hJiYzIT09Qi5ub2RlVHlwZXx8KEM9dythKSwzPT09Qi5ub2RlVHlwZSYmKHcrPUIubm9kZVZhbHVlLmxlbmd0aCksbnVsbCE9PShWPUIuZmlyc3RDaGlsZCk7KSQ9QixCPVY7Zm9yKDs7KXtpZihCPT09cylicmVhayB0O2lmKCQ9PT1pJiYrK2o9PT11JiYoeD13KSwkPT09XyYmKytMPT09YSYmKEM9dyksbnVsbCE9PShWPUIubmV4dFNpYmxpbmcpKWJyZWFrOyQ9KEI9JCkucGFyZW50Tm9kZX1CPVZ9aT0tMT09PXh8fC0xPT09Qz9udWxsOntzdGFydDp4LGVuZDpDfX1lbHNlIGk9bnVsbH1pPWl8fHtzdGFydDowLGVuZDowfX1lbHNlIGk9bnVsbDtmb3Iob249e2ZvY3VzZWRFbGVtOnMsc2VsZWN0aW9uUmFuZ2U6aX0sVXQ9ITEsQXM9bztudWxsIT09QXM7KWlmKHM9KG89QXMpLmNoaWxkLDEwMjgmby5zdWJ0cmVlRmxhZ3MmJm51bGwhPT1zKXMucmV0dXJuPW8sQXM9cztlbHNlIGZvcig7bnVsbCE9PUFzOyl7bz1Bczt0cnl7dmFyIFU9by5hbHRlcm5hdGU7aWYoMTAyNCZvLmZsYWdzKXN3aXRjaChvLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpjYXNlIDU6Y2FzZSA2OmNhc2UgNDpjYXNlIDE3OmJyZWFrO2Nhc2UgMTppZihudWxsIT09VSl7dmFyIHo9VS5tZW1vaXplZFByb3BzLFk9VS5tZW1vaXplZFN0YXRlLFo9by5zdGF0ZU5vZGUsZWU9Wi5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShvLmVsZW1lbnRUeXBlPT09by50eXBlP3o6Q2koby50eXBlLHopLFkpO1ouX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGU9ZWV9YnJlYWs7Y2FzZSAzOnZhciBpZT1vLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOzE9PT1pZS5ub2RlVHlwZT9pZS50ZXh0Q29udGVudD0iIjo5PT09aWUubm9kZVR5cGUmJmllLmRvY3VtZW50RWxlbWVudCYmaWUucmVtb3ZlQ2hpbGQoaWUuZG9jdW1lbnRFbGVtZW50KTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKHAoMTYzKSl9fWNhdGNoKHMpe1cobyxvLnJldHVybixzKX1pZihudWxsIT09KHM9by5zaWJsaW5nKSl7cy5yZXR1cm49by5yZXR1cm4sQXM9czticmVha31Bcz1vLnJldHVybn1yZXR1cm4gVT1qcyxqcz0hMSxVfShzLGkpLGRrKGkscyksT2Uob24pLFV0PSEhc24sb249c249bnVsbCxzLmN1cnJlbnQ9aSxoayhpLHMsdSkscHQoKSxMcz14LEN0PXcsRHMudHJhbnNpdGlvbj1ffWVsc2Ugcy5jdXJyZW50PWk7aWYocm8mJihybz0hMSxubz1zLHNvPXUpLF89cy5wZW5kaW5nTGFuZXMsMD09PV8mJih0bz1udWxsKSxmdW5jdGlvbiBtYyhzKXtpZihTdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN0Lm9uQ29tbWl0RmliZXJSb290KXRyeXtTdC5vbkNvbW1pdEZpYmVyUm9vdChfdCxzLHZvaWQgMCwhKDEyOCZ+cy5jdXJyZW50LmZsYWdzKSl9Y2F0Y2gocyl7fX0oaS5zdGF0ZU5vZGUpLERrKHMsaHQoKSksbnVsbCE9PW8pZm9yKGE9cy5vblJlY292ZXJhYmxlRXJyb3IsaT0wO2k8by5sZW5ndGg7aSsrKXU9b1tpXSxhKHUudmFsdWUse2NvbXBvbmVudFN0YWNrOnUuc3RhY2ssZGlnZXN0OnUuZGlnZXN0fSk7aWYoWnMpdGhyb3cgWnM9ITEscz1lbyxlbz1udWxsLHM7cmV0dXJuISEoMSZzbykmJjAhPT1zLnRhZyYmSGsoKSxfPXMucGVuZGluZ0xhbmVzLDEmXz9zPT09aW8/b28rKzoob289MCxpbz1zKTpvbz0wLGpnKCksbnVsbH0ocyxvLGksYSl9ZmluYWxseXtEcy50cmFuc2l0aW9uPXUsQ3Q9YX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBIaygpe2lmKG51bGwhPT1ubyl7dmFyIHM9RGMoc28pLG89RHMudHJhbnNpdGlvbixpPUN0O3RyeXtpZihEcy50cmFuc2l0aW9uPW51bGwsQ3Q9MTY+cz8xNjpzLG51bGw9PT1ubyl2YXIgYT0hMTtlbHNle2lmKHM9bm8sbm89bnVsbCxzbz0wLDYmTHMpdGhyb3cgRXJyb3IocCgzMzEpKTt2YXIgdT1Mcztmb3IoTHN8PTQsQXM9cy5jdXJyZW50O251bGwhPT1Bczspe3ZhciBfPUFzLHc9Xy5jaGlsZDtpZigxNiZBcy5mbGFncyl7dmFyIHg9Xy5kZWxldGlvbnM7aWYobnVsbCE9PXgpe2Zvcih2YXIgQz0wO0M8eC5sZW5ndGg7QysrKXt2YXIgaj14W0NdO2ZvcihBcz1qO251bGwhPT1Bczspe3ZhciBMPUFzO3N3aXRjaChMLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpQaig4LEwsXyl9dmFyIEI9TC5jaGlsZDtpZihudWxsIT09QilCLnJldHVybj1MLEFzPUI7ZWxzZSBmb3IoO251bGwhPT1Bczspe3ZhciAkPShMPUFzKS5zaWJsaW5nLFY9TC5yZXR1cm47aWYoU2ooTCksTD09PWope0FzPW51bGw7YnJlYWt9aWYobnVsbCE9PSQpeyQucmV0dXJuPVYsQXM9JDticmVha31Bcz1WfX19dmFyIFU9Xy5hbHRlcm5hdGU7aWYobnVsbCE9PVUpe3ZhciB6PVUuY2hpbGQ7aWYobnVsbCE9PXope1UuY2hpbGQ9bnVsbDtkb3t2YXIgWT16LnNpYmxpbmc7ei5zaWJsaW5nPW51bGwsej1ZfXdoaWxlKG51bGwhPT16KX19QXM9X319aWYoMjA2NCZfLnN1YnRyZWVGbGFncyYmbnVsbCE9PXcpdy5yZXR1cm49XyxBcz13O2Vsc2UgZTpmb3IoO251bGwhPT1Bczspe2lmKDIwNDgmKF89QXMpLmZsYWdzKXN3aXRjaChfLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpQaig5LF8sXy5yZXR1cm4pfXZhciBaPV8uc2libGluZztpZihudWxsIT09Wil7Wi5yZXR1cm49Xy5yZXR1cm4sQXM9WjticmVhayBlfUFzPV8ucmV0dXJufX12YXIgZWU9cy5jdXJyZW50O2ZvcihBcz1lZTtudWxsIT09QXM7KXt2YXIgaWU9KHc9QXMpLmNoaWxkO2lmKDIwNjQmdy5zdWJ0cmVlRmxhZ3MmJm51bGwhPT1pZSlpZS5yZXR1cm49dyxBcz1pZTtlbHNlIGU6Zm9yKHc9ZWU7bnVsbCE9PUFzOyl7aWYoMjA0OCYoeD1BcykuZmxhZ3MpdHJ5e3N3aXRjaCh4LnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpRaig5LHgpfX1jYXRjaChzKXtXKHgseC5yZXR1cm4scyl9aWYoeD09PXcpe0FzPW51bGw7YnJlYWsgZX12YXIgYWU9eC5zaWJsaW5nO2lmKG51bGwhPT1hZSl7YWUucmV0dXJuPXgucmV0dXJuLEFzPWFlO2JyZWFrIGV9QXM9eC5yZXR1cm59fWlmKExzPXUsamcoKSxTdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN0Lm9uUG9zdENvbW1pdEZpYmVyUm9vdCl0cnl7U3Qub25Qb3N0Q29tbWl0RmliZXJSb290KF90LHMpfWNhdGNoKHMpe31hPSEwfXJldHVybiBhfWZpbmFsbHl7Q3Q9aSxEcy50cmFuc2l0aW9uPW99fXJldHVybiExfWZ1bmN0aW9uIFhrKHMsbyxpKXtzPW5oKHMsbz1OaSgwLG89SmkoaSxvKSwxKSwxKSxvPVIoKSxudWxsIT09cyYmKEFjKHMsMSxvKSxEayhzLG8pKX1mdW5jdGlvbiBXKHMsbyxpKXtpZigzPT09cy50YWcpWGsocyxzLGkpO2Vsc2UgZm9yKDtudWxsIT09bzspe2lmKDM9PT1vLnRhZyl7WGsobyxzLGkpO2JyZWFrfWlmKDE9PT1vLnRhZyl7dmFyIGE9by5zdGF0ZU5vZGU7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG8udHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3J8fCJmdW5jdGlvbiI9PXR5cGVvZiBhLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PXRvfHwhdG8uaGFzKGEpKSl7bz1uaChvLHM9UWkobyxzPUppKGkscyksMSksMSkscz1SKCksbnVsbCE9PW8mJihBYyhvLDEscyksRGsobyxzKSk7YnJlYWt9fW89by5yZXR1cm59fWZ1bmN0aW9uIFRpKHMsbyxpKXt2YXIgYT1zLnBpbmdDYWNoZTtudWxsIT09YSYmYS5kZWxldGUobyksbz1SKCkscy5waW5nZWRMYW5lc3w9cy5zdXNwZW5kZWRMYW5lcyZpLEZzPT09cyYmKCRzJmkpPT09aSYmKDQ9PT1Vc3x8Mz09PVVzJiYoMTMwMDIzNDI0JiRzKT09PSRzJiY1MDA+aHQoKS1Zcz9LayhzLDApOkhzfD1pKSxEayhzLG8pfWZ1bmN0aW9uIFlrKHMsbyl7MD09PW8mJigxJnMubW9kZT8obz1PdCwhKDEzMDAyMzQyNCYoT3Q8PD0xKSkmJihPdD00MTk0MzA0KSk6bz0xKTt2YXIgaT1SKCk7bnVsbCE9PShzPWloKHMsbykpJiYoQWMocyxvLGkpLERrKHMsaSkpfWZ1bmN0aW9uIHVqKHMpe3ZhciBvPXMubWVtb2l6ZWRTdGF0ZSxpPTA7bnVsbCE9PW8mJihpPW8ucmV0cnlMYW5lKSxZayhzLGkpfWZ1bmN0aW9uIGJrKHMsbyl7dmFyIGk9MDtzd2l0Y2gocy50YWcpe2Nhc2UgMTM6dmFyIGE9cy5zdGF0ZU5vZGUsdT1zLm1lbW9pemVkU3RhdGU7bnVsbCE9PXUmJihpPXUucmV0cnlMYW5lKTticmVhaztjYXNlIDE5OmE9cy5zdGF0ZU5vZGU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihwKDMxNCkpfW51bGwhPT1hJiZhLmRlbGV0ZShvKSxZayhzLGkpfWZ1bmN0aW9uIEZrKHMsbyl7cmV0dXJuIGN0KHMsbyl9ZnVuY3Rpb24gJGsocyxvLGksYSl7dGhpcy50YWc9cyx0aGlzLmtleT1pLHRoaXMuc2libGluZz10aGlzLmNoaWxkPXRoaXMucmV0dXJuPXRoaXMuc3RhdGVOb2RlPXRoaXMudHlwZT10aGlzLmVsZW1lbnRUeXBlPW51bGwsdGhpcy5pbmRleD0wLHRoaXMucmVmPW51bGwsdGhpcy5wZW5kaW5nUHJvcHM9byx0aGlzLmRlcGVuZGVuY2llcz10aGlzLm1lbW9pemVkU3RhdGU9dGhpcy51cGRhdGVRdWV1ZT10aGlzLm1lbW9pemVkUHJvcHM9bnVsbCx0aGlzLm1vZGU9YSx0aGlzLnN1YnRyZWVGbGFncz10aGlzLmZsYWdzPTAsdGhpcy5kZWxldGlvbnM9bnVsbCx0aGlzLmNoaWxkTGFuZXM9dGhpcy5sYW5lcz0wLHRoaXMuYWx0ZXJuYXRlPW51bGx9ZnVuY3Rpb24gQmcocyxvLGksYSl7cmV0dXJuIG5ldyAkayhzLG8saSxhKX1mdW5jdGlvbiBhaihzKXtyZXR1cm4hKCEocz1zLnByb3RvdHlwZSl8fCFzLmlzUmVhY3RDb21wb25lbnQpfWZ1bmN0aW9uIFBnKHMsbyl7dmFyIGk9cy5hbHRlcm5hdGU7cmV0dXJuIG51bGw9PT1pPygoaT1CZyhzLnRhZyxvLHMua2V5LHMubW9kZSkpLmVsZW1lbnRUeXBlPXMuZWxlbWVudFR5cGUsaS50eXBlPXMudHlwZSxpLnN0YXRlTm9kZT1zLnN0YXRlTm9kZSxpLmFsdGVybmF0ZT1zLHMuYWx0ZXJuYXRlPWkpOihpLnBlbmRpbmdQcm9wcz1vLGkudHlwZT1zLnR5cGUsaS5mbGFncz0wLGkuc3VidHJlZUZsYWdzPTAsaS5kZWxldGlvbnM9bnVsbCksaS5mbGFncz0xNDY4MDA2NCZzLmZsYWdzLGkuY2hpbGRMYW5lcz1zLmNoaWxkTGFuZXMsaS5sYW5lcz1zLmxhbmVzLGkuY2hpbGQ9cy5jaGlsZCxpLm1lbW9pemVkUHJvcHM9cy5tZW1vaXplZFByb3BzLGkubWVtb2l6ZWRTdGF0ZT1zLm1lbW9pemVkU3RhdGUsaS51cGRhdGVRdWV1ZT1zLnVwZGF0ZVF1ZXVlLG89cy5kZXBlbmRlbmNpZXMsaS5kZXBlbmRlbmNpZXM9bnVsbD09PW8/bnVsbDp7bGFuZXM6by5sYW5lcyxmaXJzdENvbnRleHQ6by5maXJzdENvbnRleHR9LGkuc2libGluZz1zLnNpYmxpbmcsaS5pbmRleD1zLmluZGV4LGkucmVmPXMucmVmLGl9ZnVuY3Rpb24gUmcocyxvLGksYSx1LF8pe3ZhciB3PTI7aWYoYT1zLCJmdW5jdGlvbiI9PXR5cGVvZiBzKWFqKHMpJiYodz0xKTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2Ygcyl3PTU7ZWxzZSBlOnN3aXRjaChzKXtjYXNlIFo6cmV0dXJuIFRnKGkuY2hpbGRyZW4sdSxfLG8pO2Nhc2UgZWU6dz04LHV8PTg7YnJlYWs7Y2FzZSBpZTpyZXR1cm4ocz1CZygxMixpLG8sMnx1KSkuZWxlbWVudFR5cGU9aWUscy5sYW5lcz1fLHM7Y2FzZSBwZTpyZXR1cm4ocz1CZygxMyxpLG8sdSkpLmVsZW1lbnRUeXBlPXBlLHMubGFuZXM9XyxzO2Nhc2UgZGU6cmV0dXJuKHM9QmcoMTksaSxvLHUpKS5lbGVtZW50VHlwZT1kZSxzLmxhbmVzPV8scztjYXNlIGJlOnJldHVybiBwaihpLHUsXyxvKTtkZWZhdWx0OmlmKCJvYmplY3QiPT10eXBlb2YgcyYmbnVsbCE9PXMpc3dpdGNoKHMuJCR0eXBlb2Ype2Nhc2UgYWU6dz0xMDticmVhayBlO2Nhc2UgY2U6dz05O2JyZWFrIGU7Y2FzZSBsZTp3PTExO2JyZWFrIGU7Y2FzZSBmZTp3PTE0O2JyZWFrIGU7Y2FzZSB5ZTp3PTE2LGE9bnVsbDticmVhayBlfXRocm93IEVycm9yKHAoMTMwLG51bGw9PXM/czp0eXBlb2YgcywiIikpfXJldHVybihvPUJnKHcsaSxvLHUpKS5lbGVtZW50VHlwZT1zLG8udHlwZT1hLG8ubGFuZXM9XyxvfWZ1bmN0aW9uIFRnKHMsbyxpLGEpe3JldHVybihzPUJnKDcscyxhLG8pKS5sYW5lcz1pLHN9ZnVuY3Rpb24gcGoocyxvLGksYSl7cmV0dXJuKHM9QmcoMjIscyxhLG8pKS5lbGVtZW50VHlwZT1iZSxzLmxhbmVzPWkscy5zdGF0ZU5vZGU9e2lzSGlkZGVuOiExfSxzfWZ1bmN0aW9uIFFnKHMsbyxpKXtyZXR1cm4ocz1CZyg2LHMsbnVsbCxvKSkubGFuZXM9aSxzfWZ1bmN0aW9uIFNnKHMsbyxpKXtyZXR1cm4obz1CZyg0LG51bGwhPT1zLmNoaWxkcmVuP3MuY2hpbGRyZW46W10scy5rZXksbykpLmxhbmVzPWksby5zdGF0ZU5vZGU9e2NvbnRhaW5lckluZm86cy5jb250YWluZXJJbmZvLHBlbmRpbmdDaGlsZHJlbjpudWxsLGltcGxlbWVudGF0aW9uOnMuaW1wbGVtZW50YXRpb259LG99ZnVuY3Rpb24gYWwocyxvLGksYSx1KXt0aGlzLnRhZz1vLHRoaXMuY29udGFpbmVySW5mbz1zLHRoaXMuZmluaXNoZWRXb3JrPXRoaXMucGluZ0NhY2hlPXRoaXMuY3VycmVudD10aGlzLnBlbmRpbmdDaGlsZHJlbj1udWxsLHRoaXMudGltZW91dEhhbmRsZT0tMSx0aGlzLmNhbGxiYWNrTm9kZT10aGlzLnBlbmRpbmdDb250ZXh0PXRoaXMuY29udGV4dD1udWxsLHRoaXMuY2FsbGJhY2tQcmlvcml0eT0wLHRoaXMuZXZlbnRUaW1lcz16YygwKSx0aGlzLmV4cGlyYXRpb25UaW1lcz16YygtMSksdGhpcy5lbnRhbmdsZWRMYW5lcz10aGlzLmZpbmlzaGVkTGFuZXM9dGhpcy5tdXRhYmxlUmVhZExhbmVzPXRoaXMuZXhwaXJlZExhbmVzPXRoaXMucGluZ2VkTGFuZXM9dGhpcy5zdXNwZW5kZWRMYW5lcz10aGlzLnBlbmRpbmdMYW5lcz0wLHRoaXMuZW50YW5nbGVtZW50cz16YygwKSx0aGlzLmlkZW50aWZpZXJQcmVmaXg9YSx0aGlzLm9uUmVjb3ZlcmFibGVFcnJvcj11LHRoaXMubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YT1udWxsfWZ1bmN0aW9uIGJsKHMsbyxpLGEsdSxfLHcseCxDKXtyZXR1cm4gcz1uZXcgYWwocyxvLGkseCxDKSwxPT09bz8obz0xLCEwPT09XyYmKG98PTgpKTpvPTAsXz1CZygzLG51bGwsbnVsbCxvKSxzLmN1cnJlbnQ9XyxfLnN0YXRlTm9kZT1zLF8ubWVtb2l6ZWRTdGF0ZT17ZWxlbWVudDphLGlzRGVoeWRyYXRlZDppLGNhY2hlOm51bGwsdHJhbnNpdGlvbnM6bnVsbCxwZW5kaW5nU3VzcGVuc2VCb3VuZGFyaWVzOm51bGx9LGtoKF8pLHN9ZnVuY3Rpb24gZGwocyl7aWYoIXMpcmV0dXJuIF9uO2U6e2lmKFZiKHM9cy5fcmVhY3RJbnRlcm5hbHMpIT09c3x8MSE9PXMudGFnKXRocm93IEVycm9yKHAoMTcwKSk7dmFyIG89cztkb3tzd2l0Y2goby50YWcpe2Nhc2UgMzpvPW8uc3RhdGVOb2RlLmNvbnRleHQ7YnJlYWsgZTtjYXNlIDE6aWYoWmYoby50eXBlKSl7bz1vLnN0YXRlTm9kZS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1lcmdlZENoaWxkQ29udGV4dDticmVhayBlfX1vPW8ucmV0dXJufXdoaWxlKG51bGwhPT1vKTt0aHJvdyBFcnJvcihwKDE3MSkpfWlmKDE9PT1zLnRhZyl7dmFyIGk9cy50eXBlO2lmKFpmKGkpKXJldHVybiBiZyhzLGksbyl9cmV0dXJuIG99ZnVuY3Rpb24gZWwocyxvLGksYSx1LF8sdyx4LEMpe3JldHVybihzPWJsKGksYSwhMCxzLDAsXywwLHgsQykpLmNvbnRleHQ9ZGwobnVsbCksaT1zLmN1cnJlbnQsKF89bWgoYT1SKCksdT15aShpKSkpLmNhbGxiYWNrPW51bGwhPW8/bzpudWxsLG5oKGksXyx1KSxzLmN1cnJlbnQubGFuZXM9dSxBYyhzLHUsYSksRGsocyxhKSxzfWZ1bmN0aW9uIGZsKHMsbyxpLGEpe3ZhciB1PW8uY3VycmVudCxfPVIoKSx3PXlpKHUpO3JldHVybiBpPWRsKGkpLG51bGw9PT1vLmNvbnRleHQ/by5jb250ZXh0PWk6by5wZW5kaW5nQ29udGV4dD1pLChvPW1oKF8sdykpLnBheWxvYWQ9e2VsZW1lbnQ6c30sbnVsbCE9PShhPXZvaWQgMD09PWE/bnVsbDphKSYmKG8uY2FsbGJhY2s9YSksbnVsbCE9PShzPW5oKHUsbyx3KSkmJihnaShzLHUsdyxfKSxvaChzLHUsdykpLHd9ZnVuY3Rpb24gZ2wocyl7cmV0dXJuKHM9cy5jdXJyZW50KS5jaGlsZD8ocy5jaGlsZC50YWcscy5jaGlsZC5zdGF0ZU5vZGUpOm51bGx9ZnVuY3Rpb24gaGwocyxvKXtpZihudWxsIT09KHM9cy5tZW1vaXplZFN0YXRlKSYmbnVsbCE9PXMuZGVoeWRyYXRlZCl7dmFyIGk9cy5yZXRyeUxhbmU7cy5yZXRyeUxhbmU9MCE9PWkmJmk8bz9pOm99fWZ1bmN0aW9uIGlsKHMsbyl7aGwocyxvKSwocz1zLmFsdGVybmF0ZSkmJmhsKHMsbyl9VHM9ZnVuY3Rpb24ocyxvLGkpe2lmKG51bGwhPT1zKWlmKHMubWVtb2l6ZWRQcm9wcyE9PW8ucGVuZGluZ1Byb3BzfHxFbi5jdXJyZW50KWJzPSEwO2Vsc2V7aWYoIShzLmxhbmVzJml8fDEyOCZvLmZsYWdzKSlyZXR1cm4gYnM9ITEsZnVuY3Rpb24geWoocyxvLGkpe3N3aXRjaChvLnRhZyl7Y2FzZSAzOmtqKG8pLElnKCk7YnJlYWs7Y2FzZSA1OkFoKG8pO2JyZWFrO2Nhc2UgMTpaZihvLnR5cGUpJiZjZyhvKTticmVhaztjYXNlIDQ6eWgobyxvLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTticmVhaztjYXNlIDEwOnZhciBhPW8udHlwZS5fY29udGV4dCx1PW8ubWVtb2l6ZWRQcm9wcy52YWx1ZTtHKFVuLGEuX2N1cnJlbnRWYWx1ZSksYS5fY3VycmVudFZhbHVlPXU7YnJlYWs7Y2FzZSAxMzppZihudWxsIT09KGE9by5tZW1vaXplZFN0YXRlKSlyZXR1cm4gbnVsbCE9PWEuZGVoeWRyYXRlZD8oRyhabiwxJlpuLmN1cnJlbnQpLG8uZmxhZ3N8PTEyOCxudWxsKTppJm8uY2hpbGQuY2hpbGRMYW5lcz9vaihzLG8saSk6KEcoWm4sMSZabi5jdXJyZW50KSxudWxsIT09KHM9WmkocyxvLGkpKT9zLnNpYmxpbmc6bnVsbCk7RyhabiwxJlpuLmN1cnJlbnQpO2JyZWFrO2Nhc2UgMTk6aWYoYT0hIShpJm8uY2hpbGRMYW5lcyksMTI4JnMuZmxhZ3Mpe2lmKGEpcmV0dXJuIHhqKHMsbyxpKTtvLmZsYWdzfD0xMjh9aWYobnVsbCE9PSh1PW8ubWVtb2l6ZWRTdGF0ZSkmJih1LnJlbmRlcmluZz1udWxsLHUudGFpbD1udWxsLHUubGFzdEVmZmVjdD1udWxsKSxHKFpuLFpuLmN1cnJlbnQpLGEpYnJlYWs7cmV0dXJuIG51bGw7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBvLmxhbmVzPTAsZGoocyxvLGkpfXJldHVybiBaaShzLG8saSl9KHMsbyxpKTticz0hISgxMzEwNzImcy5mbGFncyl9ZWxzZSBicz0hMSxGbiYmMTA0ODU3NiZvLmZsYWdzJiZ1ZyhvLFBuLG8uaW5kZXgpO3N3aXRjaChvLmxhbmVzPTAsby50YWcpe2Nhc2UgMjp2YXIgYT1vLnR5cGU7aWoocyxvKSxzPW8ucGVuZGluZ1Byb3BzO3ZhciB1PVlmKG8sU24uY3VycmVudCk7Y2gobyxpKSx1PU5oKG51bGwsbyxhLHMsdSxpKTt2YXIgXz1TaCgpO3JldHVybiBvLmZsYWdzfD0xLCJvYmplY3QiPT10eXBlb2YgdSYmbnVsbCE9PXUmJiJmdW5jdGlvbiI9PXR5cGVvZiB1LnJlbmRlciYmdm9pZCAwPT09dS4kJHR5cGVvZj8oby50YWc9MSxvLm1lbW9pemVkU3RhdGU9bnVsbCxvLnVwZGF0ZVF1ZXVlPW51bGwsWmYoYSk/KF89ITAsY2cobykpOl89ITEsby5tZW1vaXplZFN0YXRlPW51bGwhPT11LnN0YXRlJiZ2b2lkIDAhPT11LnN0YXRlP3Uuc3RhdGU6bnVsbCxraChvKSx1LnVwZGF0ZXI9Z3Msby5zdGF0ZU5vZGU9dSx1Ll9yZWFjdEludGVybmFscz1vLElpKG8sYSxzLGkpLG89amoobnVsbCxvLGEsITAsXyxpKSk6KG8udGFnPTAsRm4mJl8mJnZnKG8pLFhpKG51bGwsbyx1LGkpLG89by5jaGlsZCksbztjYXNlIDE2OmE9by5lbGVtZW50VHlwZTtlOntzd2l0Y2goaWoocyxvKSxzPW8ucGVuZGluZ1Byb3BzLGE9KHU9YS5faW5pdCkoYS5fcGF5bG9hZCksby50eXBlPWEsdT1vLnRhZz1mdW5jdGlvbiBaayhzKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgcylyZXR1cm4gYWoocyk/MTowO2lmKG51bGwhPXMpe2lmKChzPXMuJCR0eXBlb2YpPT09bGUpcmV0dXJuIDExO2lmKHM9PT1mZSlyZXR1cm4gMTR9cmV0dXJuIDJ9KGEpLHM9Q2koYSxzKSx1KXtjYXNlIDA6bz1jaihudWxsLG8sYSxzLGkpO2JyZWFrIGU7Y2FzZSAxOm89aGoobnVsbCxvLGEscyxpKTticmVhayBlO2Nhc2UgMTE6bz1ZaShudWxsLG8sYSxzLGkpO2JyZWFrIGU7Y2FzZSAxNDpvPSRpKG51bGwsbyxhLENpKGEudHlwZSxzKSxpKTticmVhayBlfXRocm93IEVycm9yKHAoMzA2LGEsIiIpKX1yZXR1cm4gbztjYXNlIDA6cmV0dXJuIGE9by50eXBlLHU9by5wZW5kaW5nUHJvcHMsY2oocyxvLGEsdT1vLmVsZW1lbnRUeXBlPT09YT91OkNpKGEsdSksaSk7Y2FzZSAxOnJldHVybiBhPW8udHlwZSx1PW8ucGVuZGluZ1Byb3BzLGhqKHMsbyxhLHU9by5lbGVtZW50VHlwZT09PWE/dTpDaShhLHUpLGkpO2Nhc2UgMzplOntpZihraihvKSxudWxsPT09cyl0aHJvdyBFcnJvcihwKDM4NykpO2E9by5wZW5kaW5nUHJvcHMsdT0oXz1vLm1lbW9pemVkU3RhdGUpLmVsZW1lbnQsbGgocyxvKSxxaChvLGEsbnVsbCxpKTt2YXIgdz1vLm1lbW9pemVkU3RhdGU7aWYoYT13LmVsZW1lbnQsXy5pc0RlaHlkcmF0ZWQpe2lmKF89e2VsZW1lbnQ6YSxpc0RlaHlkcmF0ZWQ6ITEsY2FjaGU6dy5jYWNoZSxwZW5kaW5nU3VzcGVuc2VCb3VuZGFyaWVzOncucGVuZGluZ1N1c3BlbnNlQm91bmRhcmllcyx0cmFuc2l0aW9uczp3LnRyYW5zaXRpb25zfSxvLnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZT1fLG8ubWVtb2l6ZWRTdGF0ZT1fLDI1NiZvLmZsYWdzKXtvPWxqKHMsbyxhLGksdT1KaShFcnJvcihwKDQyMykpLG8pKTticmVhayBlfWlmKGEhPT11KXtvPWxqKHMsbyxhLGksdT1KaShFcnJvcihwKDQyNCkpLG8pKTticmVhayBlfWZvcihMbj1MZihvLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLmZpcnN0Q2hpbGQpLERuPW8sRm49ITAsQm49bnVsbCxpPVZuKG8sbnVsbCxhLGkpLG8uY2hpbGQ9aTtpOylpLmZsYWdzPS0zJmkuZmxhZ3N8NDA5NixpPWkuc2libGluZ31lbHNle2lmKElnKCksYT09PXUpe289WmkocyxvLGkpO2JyZWFrIGV9WGkocyxvLGEsaSl9bz1vLmNoaWxkfXJldHVybiBvO2Nhc2UgNTpyZXR1cm4gQWgobyksbnVsbD09PXMmJkVnKG8pLGE9by50eXBlLHU9by5wZW5kaW5nUHJvcHMsXz1udWxsIT09cz9zLm1lbW9pemVkUHJvcHM6bnVsbCx3PXUuY2hpbGRyZW4sRWYoYSx1KT93PW51bGw6bnVsbCE9PV8mJkVmKGEsXykmJihvLmZsYWdzfD0zMiksZ2oocyxvKSxYaShzLG8sdyxpKSxvLmNoaWxkO2Nhc2UgNjpyZXR1cm4gbnVsbD09PXMmJkVnKG8pLG51bGw7Y2FzZSAxMzpyZXR1cm4gb2oocyxvLGkpO2Nhc2UgNDpyZXR1cm4geWgobyxvLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxhPW8ucGVuZGluZ1Byb3BzLG51bGw9PT1zP28uY2hpbGQ9cW4obyxudWxsLGEsaSk6WGkocyxvLGEsaSksby5jaGlsZDtjYXNlIDExOnJldHVybiBhPW8udHlwZSx1PW8ucGVuZGluZ1Byb3BzLFlpKHMsbyxhLHU9by5lbGVtZW50VHlwZT09PWE/dTpDaShhLHUpLGkpO2Nhc2UgNzpyZXR1cm4gWGkocyxvLG8ucGVuZGluZ1Byb3BzLGkpLG8uY2hpbGQ7Y2FzZSA4OmNhc2UgMTI6cmV0dXJuIFhpKHMsbyxvLnBlbmRpbmdQcm9wcy5jaGlsZHJlbixpKSxvLmNoaWxkO2Nhc2UgMTA6ZTp7aWYoYT1vLnR5cGUuX2NvbnRleHQsdT1vLnBlbmRpbmdQcm9wcyxfPW8ubWVtb2l6ZWRQcm9wcyx3PXUudmFsdWUsRyhVbixhLl9jdXJyZW50VmFsdWUpLGEuX2N1cnJlbnRWYWx1ZT13LG51bGwhPT1fKWlmKERyKF8udmFsdWUsdykpe2lmKF8uY2hpbGRyZW49PT11LmNoaWxkcmVuJiYhRW4uY3VycmVudCl7bz1aaShzLG8saSk7YnJlYWsgZX19ZWxzZSBmb3IobnVsbCE9PShfPW8uY2hpbGQpJiYoXy5yZXR1cm49byk7bnVsbCE9PV87KXt2YXIgeD1fLmRlcGVuZGVuY2llcztpZihudWxsIT09eCl7dz1fLmNoaWxkO2Zvcih2YXIgQz14LmZpcnN0Q29udGV4dDtudWxsIT09Qzspe2lmKEMuY29udGV4dD09PWEpe2lmKDE9PT1fLnRhZyl7KEM9bWgoLTEsaSYtaSkpLnRhZz0yO3ZhciBqPV8udXBkYXRlUXVldWU7aWYobnVsbCE9PWope3ZhciBMPShqPWouc2hhcmVkKS5wZW5kaW5nO251bGw9PT1MP0MubmV4dD1DOihDLm5leHQ9TC5uZXh0LEwubmV4dD1DKSxqLnBlbmRpbmc9Q319Xy5sYW5lc3w9aSxudWxsIT09KEM9Xy5hbHRlcm5hdGUpJiYoQy5sYW5lc3w9aSksYmgoXy5yZXR1cm4saSxvKSx4LmxhbmVzfD1pO2JyZWFrfUM9Qy5uZXh0fX1lbHNlIGlmKDEwPT09Xy50YWcpdz1fLnR5cGU9PT1vLnR5cGU/bnVsbDpfLmNoaWxkO2Vsc2UgaWYoMTg9PT1fLnRhZyl7aWYobnVsbD09PSh3PV8ucmV0dXJuKSl0aHJvdyBFcnJvcihwKDM0MSkpO3cubGFuZXN8PWksbnVsbCE9PSh4PXcuYWx0ZXJuYXRlKSYmKHgubGFuZXN8PWkpLGJoKHcsaSxvKSx3PV8uc2libGluZ31lbHNlIHc9Xy5jaGlsZDtpZihudWxsIT09dyl3LnJldHVybj1fO2Vsc2UgZm9yKHc9XztudWxsIT09dzspe2lmKHc9PT1vKXt3PW51bGw7YnJlYWt9aWYobnVsbCE9PShfPXcuc2libGluZykpe18ucmV0dXJuPXcucmV0dXJuLHc9XzticmVha313PXcucmV0dXJufV89d31YaShzLG8sdS5jaGlsZHJlbixpKSxvPW8uY2hpbGR9cmV0dXJuIG87Y2FzZSA5OnJldHVybiB1PW8udHlwZSxhPW8ucGVuZGluZ1Byb3BzLmNoaWxkcmVuLGNoKG8saSksYT1hKHU9ZWgodSkpLG8uZmxhZ3N8PTEsWGkocyxvLGEsaSksby5jaGlsZDtjYXNlIDE0OnJldHVybiB1PUNpKGE9by50eXBlLG8ucGVuZGluZ1Byb3BzKSwkaShzLG8sYSx1PUNpKGEudHlwZSx1KSxpKTtjYXNlIDE1OnJldHVybiBiaihzLG8sby50eXBlLG8ucGVuZGluZ1Byb3BzLGkpO2Nhc2UgMTc6cmV0dXJuIGE9by50eXBlLHU9by5wZW5kaW5nUHJvcHMsdT1vLmVsZW1lbnRUeXBlPT09YT91OkNpKGEsdSksaWoocyxvKSxvLnRhZz0xLFpmKGEpPyhzPSEwLGNnKG8pKTpzPSExLGNoKG8saSksR2kobyxhLHUpLElpKG8sYSx1LGkpLGpqKG51bGwsbyxhLCEwLHMsaSk7Y2FzZSAxOTpyZXR1cm4geGoocyxvLGkpO2Nhc2UgMjI6cmV0dXJuIGRqKHMsbyxpKX10aHJvdyBFcnJvcihwKDE1NixvLnRhZykpfTt2YXIgbG89ImZ1bmN0aW9uIj09dHlwZW9mIHJlcG9ydEVycm9yP3JlcG9ydEVycm9yOmZ1bmN0aW9uKHMpe2NvbnNvbGUuZXJyb3Iocyl9O2Z1bmN0aW9uIGxsKHMpe3RoaXMuX2ludGVybmFsUm9vdD1zfWZ1bmN0aW9uIG1sKHMpe3RoaXMuX2ludGVybmFsUm9vdD1zfWZ1bmN0aW9uIG5sKHMpe3JldHVybiEoIXN8fDEhPT1zLm5vZGVUeXBlJiY5IT09cy5ub2RlVHlwZSYmMTEhPT1zLm5vZGVUeXBlKX1mdW5jdGlvbiBvbChzKXtyZXR1cm4hKCFzfHwxIT09cy5ub2RlVHlwZSYmOSE9PXMubm9kZVR5cGUmJjExIT09cy5ub2RlVHlwZSYmKDghPT1zLm5vZGVUeXBlfHwiIHJlYWN0LW1vdW50LXBvaW50LXVuc3RhYmxlICIhPT1zLm5vZGVWYWx1ZSkpfWZ1bmN0aW9uIHBsKCl7fWZ1bmN0aW9uIHJsKHMsbyxpLGEsdSl7dmFyIF89aS5fcmVhY3RSb290Q29udGFpbmVyO2lmKF8pe3ZhciB3PV87aWYoImZ1bmN0aW9uIj09dHlwZW9mIHUpe3ZhciB4PXU7dT1mdW5jdGlvbigpe3ZhciBzPWdsKHcpO3guY2FsbChzKX19Zmwobyx3LHMsdSl9ZWxzZSB3PWZ1bmN0aW9uIHFsKHMsbyxpLGEsdSl7aWYodSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEpe3ZhciBfPWE7YT1mdW5jdGlvbigpe3ZhciBzPWdsKHcpO18uY2FsbChzKX19dmFyIHc9ZWwobyxhLHMsMCxudWxsLCExLDAsIiIscGwpO3JldHVybiBzLl9yZWFjdFJvb3RDb250YWluZXI9dyxzW2ZuXT13LmN1cnJlbnQsc2YoOD09PXMubm9kZVR5cGU/cy5wYXJlbnROb2RlOnMpLFJrKCksd31mb3IoO3U9cy5sYXN0Q2hpbGQ7KXMucmVtb3ZlQ2hpbGQodSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEpe3ZhciB4PWE7YT1mdW5jdGlvbigpe3ZhciBzPWdsKEMpO3guY2FsbChzKX19dmFyIEM9YmwocywwLCExLG51bGwsMCwhMSwwLCIiLHBsKTtyZXR1cm4gcy5fcmVhY3RSb290Q29udGFpbmVyPUMsc1tmbl09Qy5jdXJyZW50LHNmKDg9PT1zLm5vZGVUeXBlP3MucGFyZW50Tm9kZTpzKSxSaygoZnVuY3Rpb24oKXtmbChvLEMsaSxhKX0pKSxDfShpLG8scyx1LGEpO3JldHVybiBnbCh3KX1tbC5wcm90b3R5cGUucmVuZGVyPWxsLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24ocyl7dmFyIG89dGhpcy5faW50ZXJuYWxSb290O2lmKG51bGw9PT1vKXRocm93IEVycm9yKHAoNDA5KSk7ZmwocyxvLG51bGwsbnVsbCl9LG1sLnByb3RvdHlwZS51bm1vdW50PWxsLnByb3RvdHlwZS51bm1vdW50PWZ1bmN0aW9uKCl7dmFyIHM9dGhpcy5faW50ZXJuYWxSb290O2lmKG51bGwhPT1zKXt0aGlzLl9pbnRlcm5hbFJvb3Q9bnVsbDt2YXIgbz1zLmNvbnRhaW5lckluZm87UmsoKGZ1bmN0aW9uKCl7ZmwobnVsbCxzLG51bGwsbnVsbCl9KSksb1tmbl09bnVsbH19LG1sLnByb3RvdHlwZS51bnN0YWJsZV9zY2hlZHVsZUh5ZHJhdGlvbj1mdW5jdGlvbihzKXtpZihzKXt2YXIgbz1JdCgpO3M9e2Jsb2NrZWRPbjpudWxsLHRhcmdldDpzLHByaW9yaXR5Om99O2Zvcih2YXIgaT0wO2k8JHQubGVuZ3RoJiYwIT09byYmbzwkdFtpXS5wcmlvcml0eTtpKyspOyR0LnNwbGljZShpLDAscyksMD09PWkmJlZjKHMpfX0sQXQ9ZnVuY3Rpb24ocyl7c3dpdGNoKHMudGFnKXtjYXNlIDM6dmFyIG89cy5zdGF0ZU5vZGU7aWYoby5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXt2YXIgaT10YyhvLnBlbmRpbmdMYW5lcyk7MCE9PWkmJihDYyhvLDF8aSksRGsobyxodCgpKSwhKDYmTHMpJiYoWHM9aHQoKSs1MDAsamcoKSkpfWJyZWFrO2Nhc2UgMTM6UmsoKGZ1bmN0aW9uKCl7dmFyIG89aWgocywxKTtpZihudWxsIT09byl7dmFyIGk9UigpO2dpKG8scywxLGkpfX0pKSxpbChzLDEpfX0sanQ9ZnVuY3Rpb24ocyl7aWYoMTM9PT1zLnRhZyl7dmFyIG89aWgocywxMzQyMTc3MjgpO2lmKG51bGwhPT1vKWdpKG8scywxMzQyMTc3MjgsUigpKTtpbChzLDEzNDIxNzcyOCl9fSxQdD1mdW5jdGlvbihzKXtpZigxMz09PXMudGFnKXt2YXIgbz15aShzKSxpPWloKHMsbyk7aWYobnVsbCE9PWkpZ2koaSxzLG8sUigpKTtpbChzLG8pfX0sSXQ9ZnVuY3Rpb24oKXtyZXR1cm4gQ3R9LFR0PWZ1bmN0aW9uKHMsbyl7dmFyIGk9Q3Q7dHJ5e3JldHVybiBDdD1zLG8oKX1maW5hbGx5e0N0PWl9fSxZZT1mdW5jdGlvbihzLG8saSl7c3dpdGNoKG8pe2Nhc2UiaW5wdXQiOmlmKGJiKHMsaSksbz1pLm5hbWUsInJhZGlvIj09PWkudHlwZSYmbnVsbCE9byl7Zm9yKGk9cztpLnBhcmVudE5vZGU7KWk9aS5wYXJlbnROb2RlO2ZvcihpPWkucXVlcnlTZWxlY3RvckFsbCgiaW5wdXRbbmFtZT0iK0pTT04uc3RyaW5naWZ5KCIiK28pKyddW3R5cGU9InJhZGlvIl0nKSxvPTA7bzxpLmxlbmd0aDtvKyspe3ZhciBhPWlbb107aWYoYSE9PXMmJmEuZm9ybT09PXMuZm9ybSl7dmFyIHU9RGIoYSk7aWYoIXUpdGhyb3cgRXJyb3IocCg5MCkpO1dhKGEpLGJiKGEsdSl9fX1icmVhaztjYXNlInRleHRhcmVhIjppYihzLGkpO2JyZWFrO2Nhc2Uic2VsZWN0IjpudWxsIT0obz1pLnZhbHVlKSYmZmIocywhIWkubXVsdGlwbGUsbywhMSl9fSxHYj1RayxIYj1Sazt2YXIgdW89e3VzaW5nQ2xpZW50RW50cnlQb2ludDohMSxFdmVudHM6W0NiLHVlLERiLEViLEZiLFFrXX0scG89e2ZpbmRGaWJlckJ5SG9zdEluc3RhbmNlOldjLGJ1bmRsZVR5cGU6MCx2ZXJzaW9uOiIxOC4zLjEiLHJlbmRlcmVyUGFja2FnZU5hbWU6InJlYWN0LWRvbSJ9LGhvPXtidW5kbGVUeXBlOnBvLmJ1bmRsZVR5cGUsdmVyc2lvbjpwby52ZXJzaW9uLHJlbmRlcmVyUGFja2FnZU5hbWU6cG8ucmVuZGVyZXJQYWNrYWdlTmFtZSxyZW5kZXJlckNvbmZpZzpwby5yZW5kZXJlckNvbmZpZyxvdmVycmlkZUhvb2tTdGF0ZTpudWxsLG92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aDpudWxsLG92ZXJyaWRlSG9va1N0YXRlUmVuYW1lUGF0aDpudWxsLG92ZXJyaWRlUHJvcHM6bnVsbCxvdmVycmlkZVByb3BzRGVsZXRlUGF0aDpudWxsLG92ZXJyaWRlUHJvcHNSZW5hbWVQYXRoOm51bGwsc2V0RXJyb3JIYW5kbGVyOm51bGwsc2V0U3VzcGVuc2VIYW5kbGVyOm51bGwsc2NoZWR1bGVVcGRhdGU6bnVsbCxjdXJyZW50RGlzcGF0Y2hlclJlZjpVLlJlYWN0Q3VycmVudERpc3BhdGNoZXIsZmluZEhvc3RJbnN0YW5jZUJ5RmliZXI6ZnVuY3Rpb24ocyl7cmV0dXJuIG51bGw9PT0ocz1aYihzKSk/bnVsbDpzLnN0YXRlTm9kZX0sZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6cG8uZmluZEZpYmVyQnlIb3N0SW5zdGFuY2V8fGZ1bmN0aW9uIGpsKCl7cmV0dXJuIG51bGx9LGZpbmRIb3N0SW5zdGFuY2VzRm9yUmVmcmVzaDpudWxsLHNjaGVkdWxlUmVmcmVzaDpudWxsLHNjaGVkdWxlUm9vdDpudWxsLHNldFJlZnJlc2hIYW5kbGVyOm51bGwsZ2V0Q3VycmVudEZpYmVyOm51bGwscmVjb25jaWxlclZlcnNpb246IjE4LjMuMS1uZXh0LWYxMzM4ZjgwODAtMjAyNDA0MjYifTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyl7dmFyIGZvPV9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztpZighZm8uaXNEaXNhYmxlZCYmZm8uc3VwcG9ydHNGaWJlcil0cnl7X3Q9Zm8uaW5qZWN0KGhvKSxTdD1mb31jYXRjaChSZSl7fX1vLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEPXVvLG8uY3JlYXRlUG9ydGFsPWZ1bmN0aW9uKHMsbyl7dmFyIGk9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGw7aWYoIW5sKG8pKXRocm93IEVycm9yKHAoMjAwKSk7cmV0dXJuIGZ1bmN0aW9uIGNsKHMsbyxpKXt2YXIgYT0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbDtyZXR1cm57JCR0eXBlb2Y6WSxrZXk6bnVsbD09YT9udWxsOiIiK2EsY2hpbGRyZW46cyxjb250YWluZXJJbmZvOm8saW1wbGVtZW50YXRpb246aX19KHMsbyxudWxsLGkpfSxvLmNyZWF0ZVJvb3Q9ZnVuY3Rpb24ocyxvKXtpZighbmwocykpdGhyb3cgRXJyb3IocCgyOTkpKTt2YXIgaT0hMSxhPSIiLHU9bG87cmV0dXJuIG51bGwhPW8mJighMD09PW8udW5zdGFibGVfc3RyaWN0TW9kZSYmKGk9ITApLHZvaWQgMCE9PW8uaWRlbnRpZmllclByZWZpeCYmKGE9by5pZGVudGlmaWVyUHJlZml4KSx2b2lkIDAhPT1vLm9uUmVjb3ZlcmFibGVFcnJvciYmKHU9by5vblJlY292ZXJhYmxlRXJyb3IpKSxvPWJsKHMsMSwhMSxudWxsLDAsaSwwLGEsdSksc1tmbl09by5jdXJyZW50LHNmKDg9PT1zLm5vZGVUeXBlP3MucGFyZW50Tm9kZTpzKSxuZXcgbGwobyl9LG8uZmluZERPTU5vZGU9ZnVuY3Rpb24ocyl7aWYobnVsbD09cylyZXR1cm4gbnVsbDtpZigxPT09cy5ub2RlVHlwZSlyZXR1cm4gczt2YXIgbz1zLl9yZWFjdEludGVybmFscztpZih2b2lkIDA9PT1vKXtpZigiZnVuY3Rpb24iPT10eXBlb2Ygcy5yZW5kZXIpdGhyb3cgRXJyb3IocCgxODgpKTt0aHJvdyBzPU9iamVjdC5rZXlzKHMpLmpvaW4oIiwiKSxFcnJvcihwKDI2OCxzKSl9cmV0dXJuIHM9bnVsbD09PShzPVpiKG8pKT9udWxsOnMuc3RhdGVOb2RlfSxvLmZsdXNoU3luYz1mdW5jdGlvbihzKXtyZXR1cm4gUmsocyl9LG8uaHlkcmF0ZT1mdW5jdGlvbihzLG8saSl7aWYoIW9sKG8pKXRocm93IEVycm9yKHAoMjAwKSk7cmV0dXJuIHJsKG51bGwscyxvLCEwLGkpfSxvLmh5ZHJhdGVSb290PWZ1bmN0aW9uKHMsbyxpKXtpZighbmwocykpdGhyb3cgRXJyb3IocCg0MDUpKTt2YXIgYT1udWxsIT1pJiZpLmh5ZHJhdGVkU291cmNlc3x8bnVsbCx1PSExLF89IiIsdz1sbztpZihudWxsIT1pJiYoITA9PT1pLnVuc3RhYmxlX3N0cmljdE1vZGUmJih1PSEwKSx2b2lkIDAhPT1pLmlkZW50aWZpZXJQcmVmaXgmJihfPWkuaWRlbnRpZmllclByZWZpeCksdm9pZCAwIT09aS5vblJlY292ZXJhYmxlRXJyb3ImJih3PWkub25SZWNvdmVyYWJsZUVycm9yKSksbz1lbChvLG51bGwscywxLG51bGwhPWk/aTpudWxsLHUsMCxfLHcpLHNbZm5dPW8uY3VycmVudCxzZihzKSxhKWZvcihzPTA7czxhLmxlbmd0aDtzKyspdT0odT0oaT1hW3NdKS5fZ2V0VmVyc2lvbikoaS5fc291cmNlKSxudWxsPT1vLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGE/by5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhPVtpLHVdOm8ubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YS5wdXNoKGksdSk7cmV0dXJuIG5ldyBtbChvKX0sby5yZW5kZXI9ZnVuY3Rpb24ocyxvLGkpe2lmKCFvbChvKSl0aHJvdyBFcnJvcihwKDIwMCkpO3JldHVybiBybChudWxsLHMsbywhMSxpKX0sby51bm1vdW50Q29tcG9uZW50QXROb2RlPWZ1bmN0aW9uKHMpe2lmKCFvbChzKSl0aHJvdyBFcnJvcihwKDQwKSk7cmV0dXJuISFzLl9yZWFjdFJvb3RDb250YWluZXImJihSaygoZnVuY3Rpb24oKXtybChudWxsLG51bGwscywhMSwoZnVuY3Rpb24oKXtzLl9yZWFjdFJvb3RDb250YWluZXI9bnVsbCxzW2ZuXT1udWxsfSkpfSkpLCEwKX0sby51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcz1RayxvLnVuc3RhYmxlX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyPWZ1bmN0aW9uKHMsbyxpLGEpe2lmKCFvbChpKSl0aHJvdyBFcnJvcihwKDIwMCkpO2lmKG51bGw9PXN8fHZvaWQgMD09PXMuX3JlYWN0SW50ZXJuYWxzKXRocm93IEVycm9yKHAoMzgpKTtyZXR1cm4gcmwocyxvLGksITEsYSl9LG8udmVyc2lvbj0iMTguMy4xLW5leHQtZjEzMzhmODA4MC0yMDI0MDQyNiJ9LDIyNTc0OihzLG8pPT57InVzZSBzdHJpY3QiO3ZhciBpPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLGE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcix1PWEmJiFpLmNhbGwoezE6Mn0sMSk7by5mPXU/ZnVuY3Rpb24gcHJvcGVydHlJc0VudW1lcmFibGUocyl7dmFyIG89YSh0aGlzLHMpO3JldHVybiEhbyYmby5lbnVtZXJhYmxlfTppfSwyMzAwNzpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIGNvcHlBcnJheShzLG8pe3ZhciBpPS0xLGE9cy5sZW5ndGg7Zm9yKG98fChvPUFycmF5KGEpKTsrK2k8YTspb1tpXT1zW2ldO3JldHVybiBvfX0sMjMwMzQ6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDg4MjgwKSx1PWkoMzI1NjcpLF89RnVuY3Rpb24ucHJvdG90eXBlO3MuZXhwb3J0cz1mdW5jdGlvbihzKXt2YXIgbz1zLmJpbmQ7cmV0dXJuIHM9PT1ffHxhKF8scykmJm89PT1fLmJpbmQ/dTpvfX0sMjMwNDU6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDE5MDcpLHU9aSg0OTcyNCksXz1pKDQ5OTMpLHc9aSg3NDQzNikuaW5kZXhPZix4PWkoMzg1MzApLEM9YShbXS5wdXNoKTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvKXt2YXIgaSxhPV8ocyksaj0wLEw9W107Zm9yKGkgaW4gYSkhdSh4LGkpJiZ1KGEsaSkmJkMoTCxpKTtmb3IoO28ubGVuZ3RoPmo7KXUoYSxpPW9baisrXSkmJih+dyhMLGkpfHxDKEwsaSkpO3JldHVybiBMfX0sMjM1NDY6KHMsbyxpKT0+e3ZhciBhPWkoNzI1NTIpLHU9aSg0MDM0NiksXz1pKDExMzMxKTtzLmV4cG9ydHM9ZnVuY3Rpb24gaXNFcnJvcihzKXtpZighdShzKSlyZXR1cm4hMTt2YXIgbz1hKHMpO3JldHVybiJbb2JqZWN0IEVycm9yXSI9PW98fCJbb2JqZWN0IERPTUV4Y2VwdGlvbl0iPT1vfHwic3RyaW5nIj09dHlwZW9mIHMubWVzc2FnZSYmInN0cmluZyI9PXR5cGVvZiBzLm5hbWUmJiFfKHMpfX0sMjM4MDU6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBpc09iamVjdChzKXt2YXIgbz10eXBlb2YgcztyZXR1cm4gbnVsbCE9cyYmKCJvYmplY3QiPT1vfHwiZnVuY3Rpb24iPT1vKX19LDIzODg4OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg5ODgyOCksdT1pKDc1ODE3KTtzLmV4cG9ydHM9IWEoKGZ1bmN0aW9uKCl7dmFyIHM9bmV3IEVycm9yKCJhIik7cmV0dXJuISgic3RhY2siaW4gcyl8fChPYmplY3QuZGVmaW5lUHJvcGVydHkocywic3RhY2siLHUoMSw3KSksNyE9PXMuc3RhY2spfSkpfSwyNDEwNzoocyxvLGkpPT57dmFyIGE9aSg1NjY5OCksdT1pKDkwMzkyKSxfPWkoOTI4NjEpLkJ1ZmZlcix3PVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdLHg9bmV3IEFycmF5KDY0KTtmdW5jdGlvbiBTaGEyNTYoKXt0aGlzLmluaXQoKSx0aGlzLl93PXgsdS5jYWxsKHRoaXMsNjQsNTYpfWZ1bmN0aW9uIGNoKHMsbyxpKXtyZXR1cm4gaV5zJihvXmkpfWZ1bmN0aW9uIG1haihzLG8saSl7cmV0dXJuIHMmb3xpJihzfG8pfWZ1bmN0aW9uIHNpZ21hMChzKXtyZXR1cm4ocz4+PjJ8czw8MzApXihzPj4+MTN8czw8MTkpXihzPj4+MjJ8czw8MTApfWZ1bmN0aW9uIHNpZ21hMShzKXtyZXR1cm4ocz4+PjZ8czw8MjYpXihzPj4+MTF8czw8MjEpXihzPj4+MjV8czw8Nyl9ZnVuY3Rpb24gZ2FtbWEwKHMpe3JldHVybihzPj4+N3xzPDwyNSleKHM+Pj4xOHxzPDwxNClecz4+PjN9YShTaGEyNTYsdSksU2hhMjU2LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2E9MTc3OTAzMzcwMyx0aGlzLl9iPTMxNDQxMzQyNzcsdGhpcy5fYz0xMDEzOTA0MjQyLHRoaXMuX2Q9Mjc3MzQ4MDc2Mix0aGlzLl9lPTEzNTk4OTMxMTksdGhpcy5fZj0yNjAwODIyOTI0LHRoaXMuX2c9NTI4NzM0NjM1LHRoaXMuX2g9MTU0MTQ1OTIyNSx0aGlzfSxTaGEyNTYucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24ocyl7Zm9yKHZhciBvLGk9dGhpcy5fdyxhPTB8dGhpcy5fYSx1PTB8dGhpcy5fYixfPTB8dGhpcy5fYyx4PTB8dGhpcy5fZCxDPTB8dGhpcy5fZSxqPTB8dGhpcy5fZixMPTB8dGhpcy5fZyxCPTB8dGhpcy5faCwkPTA7JDwxNjsrKyQpaVskXT1zLnJlYWRJbnQzMkJFKDQqJCk7Zm9yKDskPDY0OysrJClpWyRdPTB8KCgobz1pWyQtMl0pPj4+MTd8bzw8MTUpXihvPj4+MTl8bzw8MTMpXm8+Pj4xMCkraVskLTddK2dhbW1hMChpWyQtMTVdKStpWyQtMTZdO2Zvcih2YXIgVj0wO1Y8NjQ7KytWKXt2YXIgVT1CK3NpZ21hMShDKStjaChDLGosTCkrd1tWXStpW1ZdfDAsej1zaWdtYTAoYSkrbWFqKGEsdSxfKXwwO0I9TCxMPWosaj1DLEM9eCtVfDAseD1fLF89dSx1PWEsYT1VK3p8MH10aGlzLl9hPWErdGhpcy5fYXwwLHRoaXMuX2I9dSt0aGlzLl9ifDAsdGhpcy5fYz1fK3RoaXMuX2N8MCx0aGlzLl9kPXgrdGhpcy5fZHwwLHRoaXMuX2U9Qyt0aGlzLl9lfDAsdGhpcy5fZj1qK3RoaXMuX2Z8MCx0aGlzLl9nPUwrdGhpcy5fZ3wwLHRoaXMuX2g9Qit0aGlzLl9ofDB9LFNoYTI1Ni5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgcz1fLmFsbG9jVW5zYWZlKDMyKTtyZXR1cm4gcy53cml0ZUludDMyQkUodGhpcy5fYSwwKSxzLndyaXRlSW50MzJCRSh0aGlzLl9iLDQpLHMud3JpdGVJbnQzMkJFKHRoaXMuX2MsOCkscy53cml0ZUludDMyQkUodGhpcy5fZCwxMikscy53cml0ZUludDMyQkUodGhpcy5fZSwxNikscy53cml0ZUludDMyQkUodGhpcy5fZiwyMCkscy53cml0ZUludDMyQkUodGhpcy5fZywyNCkscy53cml0ZUludDMyQkUodGhpcy5faCwyOCksc30scy5leHBvcnRzPVNoYTI1Nn0sMjQxNjg6KHMsbyxpKT0+e3ZhciBhPWkoOTEwMzMpLHU9aSg4MjgxOSksXz1pKDkzMjUpO3MuZXhwb3J0cz1mdW5jdGlvbiBjcmVhdGVQYXJ0aWFsKHMsbyxpLHcpe3ZhciB4PTEmbyxDPXUocyk7cmV0dXJuIGZ1bmN0aW9uIHdyYXBwZXIoKXtmb3IodmFyIG89LTEsdT1hcmd1bWVudHMubGVuZ3RoLGo9LTEsTD13Lmxlbmd0aCxCPUFycmF5KEwrdSksJD10aGlzJiZ0aGlzIT09XyYmdGhpcyBpbnN0YW5jZW9mIHdyYXBwZXI/QzpzOysrajxMOylCW2pdPXdbal07Zm9yKDt1LS07KUJbaisrXT1hcmd1bWVudHNbKytvXTtyZXR1cm4gYSgkLHg/aTp0aGlzLEIpfX19LDI0NDQzOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgyMzA0NSksdT1pKDgwMzc2KS5jb25jYXQoImxlbmd0aCIsInByb3RvdHlwZSIpO28uZj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhzKXtyZXR1cm4gYShzLHUpfX0sMjQ2NDc6KHMsbyxpKT0+e3ZhciBhPWkoNTQ1NTIpKHvDgDoiQSIsw4E6IkEiLMOCOiJBIizDgzoiQSIsw4Q6IkEiLMOFOiJBIizDoDoiYSIsw6E6ImEiLMOiOiJhIizDozoiYSIsw6Q6ImEiLMOlOiJhIizDhzoiQyIsw6c6ImMiLMOQOiJEIizDsDoiZCIsw4g6IkUiLMOJOiJFIizDijoiRSIsw4s6IkUiLMOoOiJlIizDqToiZSIsw6o6ImUiLMOrOiJlIizDjDoiSSIsw406IkkiLMOOOiJJIizDjzoiSSIsw6w6ImkiLMOtOiJpIizDrjoiaSIsw686ImkiLMOROiJOIizDsToibiIsw5I6Ik8iLMOTOiJPIizDlDoiTyIsw5U6Ik8iLMOWOiJPIizDmDoiTyIsw7I6Im8iLMOzOiJvIizDtDoibyIsw7U6Im8iLMO2OiJvIizDuDoibyIsw5k6IlUiLMOaOiJVIizDmzoiVSIsw5w6IlUiLMO5OiJ1IizDujoidSIsw7s6InUiLMO8OiJ1IizDnToiWSIsw706InkiLMO/OiJ5IizDhjoiQWUiLMOmOiJhZSIsw546IlRoIizDvjoidGgiLMOfOiJzcyIsxIA6IkEiLMSCOiJBIizEhDoiQSIsxIE6ImEiLMSDOiJhIizEhToiYSIsxIY6IkMiLMSIOiJDIizEijoiQyIsxIw6IkMiLMSHOiJjIizEiToiYyIsxIs6ImMiLMSNOiJjIizEjjoiRCIsxJA6IkQiLMSPOiJkIizEkToiZCIsxJI6IkUiLMSUOiJFIizEljoiRSIsxJg6IkUiLMSaOiJFIizEkzoiZSIsxJU6ImUiLMSXOiJlIizEmToiZSIsxJs6ImUiLMScOiJHIizEnjoiRyIsxKA6IkciLMSiOiJHIizEnToiZyIsxJ86ImciLMShOiJnIizEozoiZyIsxKQ6IkgiLMSmOiJIIizEpToiaCIsxKc6ImgiLMSoOiJJIizEqjoiSSIsxKw6IkkiLMSuOiJJIizEsDoiSSIsxKk6ImkiLMSrOiJpIizErToiaSIsxK86ImkiLMSxOiJpIizEtDoiSiIsxLU6ImoiLMS2OiJLIizEtzoiayIsxLg6ImsiLMS5OiJMIizEuzoiTCIsxL06IkwiLMS/OiJMIizFgToiTCIsxLo6ImwiLMS8OiJsIizEvjoibCIsxYA6ImwiLMWCOiJsIizFgzoiTiIsxYU6Ik4iLMWHOiJOIizFijoiTiIsxYQ6Im4iLMWGOiJuIizFiDoibiIsxYs6Im4iLMWMOiJPIizFjjoiTyIsxZA6Ik8iLMWNOiJvIizFjzoibyIsxZE6Im8iLMWUOiJSIizFljoiUiIsxZg6IlIiLMWVOiJyIizFlzoiciIsxZk6InIiLMWaOiJTIizFnDoiUyIsxZ46IlMiLMWgOiJTIizFmzoicyIsxZ06InMiLMWfOiJzIizFoToicyIsxaI6IlQiLMWkOiJUIizFpjoiVCIsxaM6InQiLMWlOiJ0IizFpzoidCIsxag6IlUiLMWqOiJVIizFrDoiVSIsxa46IlUiLMWwOiJVIizFsjoiVSIsxak6InUiLMWrOiJ1IizFrToidSIsxa86InUiLMWxOiJ1IizFszoidSIsxbQ6IlciLMW1OiJ3IizFtjoiWSIsxbc6InkiLMW4OiJZIizFuToiWiIsxbs6IloiLMW9OiJaIizFujoieiIsxbw6InoiLMW+OiJ6IizEsjoiSUoiLMSzOiJpaiIsxZI6Ik9lIizFkzoib2UiLMWJOiInbiIsxb86InMifSk7cy5leHBvcnRzPWF9LDI0Njc3OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg4MTIxNCkuRGVib3VuY2VJbnB1dDthLkRlYm91bmNlSW5wdXQ9YSxzLmV4cG9ydHM9YX0sMjQ3MTM6KHMsbyxpKT0+e3ZhciBhPWkoMjUyMyksdT1pKDE1Mzg5KSxfPWkoNjE0ODkpLHc9TWF0aC5tYXg7cy5leHBvcnRzPWZ1bmN0aW9uIGZpbmRJbmRleChzLG8saSl7dmFyIHg9bnVsbD09cz8wOnMubGVuZ3RoO2lmKCF4KXJldHVybi0xO3ZhciBDPW51bGw9PWk/MDpfKGkpO3JldHVybiBDPDAmJihDPXcoeCtDLDApKSxhKHMsdShvLDMpLEMpfX0sMjQ3Mzk6KHMsbyxpKT0+e3ZhciBhPWkoMjYwMjUpO3MuZXhwb3J0cz1mdW5jdGlvbiBsaXN0Q2FjaGVHZXQocyl7dmFyIG89dGhpcy5fX2RhdGFfXyxpPWEobyxzKTtyZXR1cm4gaTwwP3ZvaWQgMDpvW2ldWzFdfX0sMjQ4MjM6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDI4MzExKSx1PWkoMTM5MzApLF89aSgzNjYyNCksdz1pKDQ2NDApLHg9aSgzNzgxMiksQz1pKDIwNTc1KSxqPWkoODgyODApLEw9aSgxMDMwMCksQj1pKDczNDQ4KSwkPWkoNDAxNTQpLFY9VHlwZUVycm9yLFJlc3VsdD1mdW5jdGlvbihzLG8pe3RoaXMuc3RvcHBlZD1zLHRoaXMucmVzdWx0PW99LFU9UmVzdWx0LnByb3RvdHlwZTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvLGkpe3ZhciB6LFksWixlZSxpZSxhZSxjZSxsZT1pJiZpLnRoYXQscGU9ISghaXx8IWkuQVNfRU5UUklFUyksZGU9ISghaXx8IWkuSVNfUkVDT1JEKSxmZT0hKCFpfHwhaS5JU19JVEVSQVRPUikseWU9ISghaXx8IWkuSU5URVJSVVBURUQpLGJlPWEobyxsZSksc3RvcD1mdW5jdGlvbihzKXtyZXR1cm4geiYmJCh6LCJub3JtYWwiLHMpLG5ldyBSZXN1bHQoITAscyl9LGNhbGxGbj1mdW5jdGlvbihzKXtyZXR1cm4gcGU/KF8ocykseWU/YmUoc1swXSxzWzFdLHN0b3ApOmJlKHNbMF0sc1sxXSkpOnllP2JlKHMsc3RvcCk6YmUocyl9O2lmKGRlKXo9cy5pdGVyYXRvcjtlbHNlIGlmKGZlKXo9cztlbHNle2lmKCEoWT1CKHMpKSl0aHJvdyBuZXcgVih3KHMpKyIgaXMgbm90IGl0ZXJhYmxlIik7aWYoeChZKSl7Zm9yKFo9MCxlZT1DKHMpO2VlPlo7WisrKWlmKChpZT1jYWxsRm4oc1taXSkpJiZqKFUsaWUpKXJldHVybiBpZTtyZXR1cm4gbmV3IFJlc3VsdCghMSl9ej1MKHMsWSl9Zm9yKGFlPWRlP3MubmV4dDp6Lm5leHQ7IShjZT11KGFlLHopKS5kb25lOyl7dHJ5e2llPWNhbGxGbihjZS52YWx1ZSl9Y2F0Y2gocyl7JCh6LCJ0aHJvdyIscyl9aWYoIm9iamVjdCI9PXR5cGVvZiBpZSYmaWUmJmooVSxpZSkpcmV0dXJuIGllfXJldHVybiBuZXcgUmVzdWx0KCExKX19LDI1MTYwOnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZVNsaWNlKHMsbyxpKXt2YXIgYT0tMSx1PXMubGVuZ3RoO288MCYmKG89LW8+dT8wOnUrbyksKGk9aT51P3U6aSk8MCYmKGkrPXUpLHU9bz5pPzA6aS1vPj4+MCxvPj4+PTA7Zm9yKHZhciBfPUFycmF5KHUpOysrYTx1OylfW2FdPXNbYStvXTtyZXR1cm4gX319LDI1MjY0OihzLG8saSk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gX3R5cGVvZihzKXtyZXR1cm4gX3R5cGVvZj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihzKXtyZXR1cm4gdHlwZW9mIHN9OmZ1bmN0aW9uKHMpe3JldHVybiBzJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZzLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZzIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2Ygc30sX3R5cGVvZihzKX1PYmplY3QuZGVmaW5lUHJvcGVydHkobywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksby5Db3B5VG9DbGlwYm9hcmQ9dm9pZCAwO3ZhciBhPV9pbnRlcm9wUmVxdWlyZURlZmF1bHQoaSg5NjU0MCkpLHU9X2ludGVyb3BSZXF1aXJlRGVmYXVsdChpKDE3OTY1KSksXz1bInRleHQiLCJvbkNvcHkiLCJvcHRpb25zIiwiY2hpbGRyZW4iXTtmdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHMpe3JldHVybiBzJiZzLl9fZXNNb2R1bGU/czp7ZGVmYXVsdDpzfX1mdW5jdGlvbiBvd25LZXlzKHMsbyl7dmFyIGk9T2JqZWN0LmtleXMocyk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtvJiYoYT1hLmZpbHRlcigoZnVuY3Rpb24obyl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocyxvKS5lbnVtZXJhYmxlfSkpKSxpLnB1c2guYXBwbHkoaSxhKX1yZXR1cm4gaX1mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKHMpe2Zvcih2YXIgbz0xO288YXJndW1lbnRzLmxlbmd0aDtvKyspe3ZhciBpPW51bGwhPWFyZ3VtZW50c1tvXT9hcmd1bWVudHNbb106e307byUyP293bktleXMoT2JqZWN0KGkpLCEwKS5mb3JFYWNoKChmdW5jdGlvbihvKXtfZGVmaW5lUHJvcGVydHkocyxvLGlbb10pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHMsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoaSkpOm93bktleXMoT2JqZWN0KGkpKS5mb3JFYWNoKChmdW5jdGlvbihvKXtPYmplY3QuZGVmaW5lUHJvcGVydHkocyxvLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaSxvKSl9KSl9cmV0dXJuIHN9ZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHMsbyl7aWYobnVsbD09cylyZXR1cm57fTt2YXIgaSxhLHU9ZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UocyxvKXtpZihudWxsPT1zKXJldHVybnt9O3ZhciBpLGEsdT17fSxfPU9iamVjdC5rZXlzKHMpO2ZvcihhPTA7YTxfLmxlbmd0aDthKyspaT1fW2FdLG8uaW5kZXhPZihpKT49MHx8KHVbaV09c1tpXSk7cmV0dXJuIHV9KHMsbyk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIF89T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtmb3IoYT0wO2E8Xy5sZW5ndGg7YSsrKWk9X1thXSxvLmluZGV4T2YoaSk+PTB8fE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLGkpJiYodVtpXT1zW2ldKX1yZXR1cm4gdX1mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyhzLG8pe2Zvcih2YXIgaT0wO2k8by5sZW5ndGg7aSsrKXt2YXIgYT1vW2ldO2EuZW51bWVyYWJsZT1hLmVudW1lcmFibGV8fCExLGEuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBhJiYoYS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsYS5rZXksYSl9fWZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihzLG8pe3JldHVybiBfc2V0UHJvdG90eXBlT2Y9T2JqZWN0LnNldFByb3RvdHlwZU9mfHxmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YocyxvKXtyZXR1cm4gcy5fX3Byb3RvX189byxzfSxfc2V0UHJvdG90eXBlT2YocyxvKX1mdW5jdGlvbiBfY3JlYXRlU3VwZXIocyl7dmFyIG89ZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChzKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCl7dmFyIGksYT1fZ2V0UHJvdG90eXBlT2Yocyk7aWYobyl7dmFyIHU9X2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yO2k9UmVmbGVjdC5jb25zdHJ1Y3QoYSxhcmd1bWVudHMsdSl9ZWxzZSBpPWEuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBmdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzLG8pe2lmKG8mJigib2JqZWN0Ij09PV90eXBlb2Yobyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBvKSlyZXR1cm4gbztpZih2b2lkIDAhPT1vKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQocyl9KHRoaXMsaSl9fWZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQocyl7aWYodm9pZCAwPT09cyl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBzfWZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihzKXtyZXR1cm4gX2dldFByb3RvdHlwZU9mPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKHMpe3JldHVybiBzLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHMpfSxfZ2V0UHJvdG90eXBlT2Yocyl9ZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KHMsbyxpKXtyZXR1cm4gbyBpbiBzP09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLG8se3ZhbHVlOmksZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpzW29dPWksc312YXIgdz1mdW5jdGlvbihzKXshZnVuY3Rpb24gX2luaGVyaXRzKHMsbyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG8mJm51bGwhPT1vKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7cy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShvJiZvLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnMsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLG8mJl9zZXRQcm90b3R5cGVPZihzLG8pfShDb3B5VG9DbGlwYm9hcmQscyk7dmFyIG89X2NyZWF0ZVN1cGVyKENvcHlUb0NsaXBib2FyZCk7ZnVuY3Rpb24gQ29weVRvQ2xpcGJvYXJkKCl7dmFyIHM7IWZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhzLG8pe2lmKCEocyBpbnN0YW5jZW9mIG8pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLENvcHlUb0NsaXBib2FyZCk7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGgsXz1uZXcgQXJyYXkoaSksdz0wO3c8aTt3KyspX1t3XT1hcmd1bWVudHNbd107cmV0dXJuIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHM9by5jYWxsLmFwcGx5KG8sW3RoaXNdLmNvbmNhdChfKSkpLCJvbkNsaWNrIiwoZnVuY3Rpb24obyl7dmFyIGk9cy5wcm9wcyxfPWkudGV4dCx3PWkub25Db3B5LHg9aS5jaGlsZHJlbixDPWkub3B0aW9ucyxqPWEuZGVmYXVsdC5DaGlsZHJlbi5vbmx5KHgpLEw9KDAsdS5kZWZhdWx0KShfLEMpO3cmJncoXyxMKSxqJiZqLnByb3BzJiYiZnVuY3Rpb24iPT10eXBlb2Ygai5wcm9wcy5vbkNsaWNrJiZqLnByb3BzLm9uQ2xpY2sobyl9KSksc31yZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKHMsbyxpKXtyZXR1cm4gbyYmX2RlZmluZVByb3BlcnRpZXMocy5wcm90b3R5cGUsbyksaSYmX2RlZmluZVByb3BlcnRpZXMocyxpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocywicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxzfShDb3B5VG9DbGlwYm9hcmQsW3trZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24gcmVuZGVyKCl7dmFyIHM9dGhpcy5wcm9wcyxvPShzLnRleHQscy5vbkNvcHkscy5vcHRpb25zLHMuY2hpbGRyZW4pLGk9X29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHMsXyksdT1hLmRlZmF1bHQuQ2hpbGRyZW4ub25seShvKTtyZXR1cm4gYS5kZWZhdWx0LmNsb25lRWxlbWVudCh1LF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSxpKSx7fSx7b25DbGljazp0aGlzLm9uQ2xpY2t9KSl9fV0pLENvcHlUb0NsaXBib2FyZH0oYS5kZWZhdWx0LlB1cmVDb21wb25lbnQpO28uQ29weVRvQ2xpcGJvYXJkPXcsX2RlZmluZVByb3BlcnR5KHcsImRlZmF1bHRQcm9wcyIse29uQ29weTp2b2lkIDAsb3B0aW9uczp2b2lkIDB9KX0sMjUzODI6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDY1NjA2KSx1PU9iamVjdC5rZXlzfHxmdW5jdGlvbihzKXt2YXIgbz1bXTtmb3IodmFyIGkgaW4gcylvLnB1c2goaSk7cmV0dXJuIG99O3MuZXhwb3J0cz1EdXBsZXg7dmFyIF89aSg0NTQxMiksdz1pKDE2NzA4KTtpKDU2Njk4KShEdXBsZXgsXyk7Zm9yKHZhciB4PXUody5wcm90b3R5cGUpLEM9MDtDPHgubGVuZ3RoO0MrKyl7dmFyIGo9eFtDXTtEdXBsZXgucHJvdG90eXBlW2pdfHwoRHVwbGV4LnByb3RvdHlwZVtqXT13LnByb3RvdHlwZVtqXSl9ZnVuY3Rpb24gRHVwbGV4KHMpe2lmKCEodGhpcyBpbnN0YW5jZW9mIER1cGxleCkpcmV0dXJuIG5ldyBEdXBsZXgocyk7Xy5jYWxsKHRoaXMscyksdy5jYWxsKHRoaXMscyksdGhpcy5hbGxvd0hhbGZPcGVuPSEwLHMmJighMT09PXMucmVhZGFibGUmJih0aGlzLnJlYWRhYmxlPSExKSwhMT09PXMud3JpdGFibGUmJih0aGlzLndyaXRhYmxlPSExKSwhMT09PXMuYWxsb3dIYWxmT3BlbiYmKHRoaXMuYWxsb3dIYWxmT3Blbj0hMSx0aGlzLm9uY2UoImVuZCIsb25lbmQpKSl9ZnVuY3Rpb24gb25lbmQoKXt0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkfHxhLm5leHRUaWNrKG9uRW5kTlQsdGhpcyl9ZnVuY3Rpb24gb25FbmROVChzKXtzLmVuZCgpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShEdXBsZXgucHJvdG90eXBlLCJ3cml0YWJsZUhpZ2hXYXRlck1hcmsiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbiBnZXQoKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEdXBsZXgucHJvdG90eXBlLCJ3cml0YWJsZUJ1ZmZlciIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uIGdldCgpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl93cml0YWJsZVN0YXRlLmdldEJ1ZmZlcigpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEdXBsZXgucHJvdG90eXBlLCJ3cml0YWJsZUxlbmd0aCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uIGdldCgpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmxlbmd0aH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRHVwbGV4LnByb3RvdHlwZSwiZGVzdHJveWVkIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3JlYWRhYmxlU3RhdGUmJnZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZCYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQpfSxzZXQ6ZnVuY3Rpb24gc2V0KHMpe3ZvaWQgMCE9PXRoaXMuX3JlYWRhYmxlU3RhdGUmJnZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD1zLHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPXMpfX0pfSwyNTU5NDoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoODU1ODIpLHU9aSg2MjI1MCksXz1pKDg4MjgwKSx3PWkoNTExNzUpLHg9T2JqZWN0O3MuZXhwb3J0cz13P2Z1bmN0aW9uKHMpe3JldHVybiJzeW1ib2wiPT10eXBlb2Ygc306ZnVuY3Rpb24ocyl7dmFyIG89YSgiU3ltYm9sIik7cmV0dXJuIHUobykmJl8oby5wcm90b3R5cGUseChzKSl9fSwyNTkxMToocyxvLGkpPT57dmFyIGE9aSgzODg1OSksdT1pKDE0MjQ4KSxfPWkoMTkyMTkpO3MuZXhwb3J0cz1mdW5jdGlvbiBlcXVhbEFycmF5cyhzLG8saSx3LHgsQyl7dmFyIGo9MSZpLEw9cy5sZW5ndGgsQj1vLmxlbmd0aDtpZihMIT1CJiYhKGomJkI+TCkpcmV0dXJuITE7dmFyICQ9Qy5nZXQocyksVj1DLmdldChvKTtpZigkJiZWKXJldHVybiAkPT1vJiZWPT1zO3ZhciBVPS0xLHo9ITAsWT0yJmk/bmV3IGE6dm9pZCAwO2ZvcihDLnNldChzLG8pLEMuc2V0KG8scyk7KytVPEw7KXt2YXIgWj1zW1VdLGVlPW9bVV07aWYodyl2YXIgaWU9aj93KGVlLFosVSxvLHMsQyk6dyhaLGVlLFUscyxvLEMpO2lmKHZvaWQgMCE9PWllKXtpZihpZSljb250aW51ZTt6PSExO2JyZWFrfWlmKFkpe2lmKCF1KG8sKGZ1bmN0aW9uKHMsbyl7aWYoIV8oWSxvKSYmKFo9PT1zfHx4KFoscyxpLHcsQykpKXJldHVybiBZLnB1c2gobyl9KSkpe3o9ITE7YnJlYWt9fWVsc2UgaWYoWiE9PWVlJiYheChaLGVlLGksdyxDKSl7ej0hMTticmVha319cmV0dXJuIEMuZGVsZXRlKHMpLEMuZGVsZXRlKG8pLHp9fSwyNjAyNToocyxvLGkpPT57dmFyIGE9aSg3NTI4OCk7cy5leHBvcnRzPWZ1bmN0aW9uIGFzc29jSW5kZXhPZihzLG8pe2Zvcih2YXIgaT1zLmxlbmd0aDtpLS07KWlmKGEoc1tpXVswXSxvKSlyZXR1cm4gaTtyZXR1cm4tMX19LDI2MzExOnM9PnshZnVuY3Rpb24oKXt2YXIgbztmdW5jdGlvbiBmb3JtYXQocyl7Zm9yKHZhciBvLGksYSx1LF89MSx3PVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSx4PTAsQz1zLmxlbmd0aCxqPSIiLEw9ITEsQj0hMSxuZXh0QXJnPWZ1bmN0aW9uKCl7cmV0dXJuIHdbXysrXX0sc2x1cnBOdW1iZXI9ZnVuY3Rpb24oKXtmb3IodmFyIGk9IiI7L1xkLy50ZXN0KHNbeF0pOylpKz1zW3grK10sbz1zW3hdO3JldHVybiBpLmxlbmd0aD4wP3BhcnNlSW50KGkpOm51bGx9O3g8QzsrK3gpaWYobz1zW3hdLEwpc3dpdGNoKEw9ITEsIi4iPT1vPyhCPSExLG89c1srK3hdKToiMCI9PW8mJiIuIj09c1t4KzFdPyhCPSEwLG89c1t4Kz0yXSk6Qj0hMCx1PXNsdXJwTnVtYmVyKCksbyl7Y2FzZSJiIjpqKz1wYXJzZUludChuZXh0QXJnKCksMTApLnRvU3RyaW5nKDIpO2JyZWFrO2Nhc2UiYyI6ais9InN0cmluZyI9PXR5cGVvZihpPW5leHRBcmcoKSl8fGkgaW5zdGFuY2VvZiBTdHJpbmc/aTpTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGksMTApKTticmVhaztjYXNlImQiOmorPXBhcnNlSW50KG5leHRBcmcoKSwxMCk7YnJlYWs7Y2FzZSJmIjphPVN0cmluZyhwYXJzZUZsb2F0KG5leHRBcmcoKSkudG9GaXhlZCh1fHw2KSksais9Qj9hOmEucmVwbGFjZSgvXjAvLCIiKTticmVhaztjYXNlImoiOmorPUpTT04uc3RyaW5naWZ5KG5leHRBcmcoKSk7YnJlYWs7Y2FzZSJvIjpqKz0iMCIrcGFyc2VJbnQobmV4dEFyZygpLDEwKS50b1N0cmluZyg4KTticmVhaztjYXNlInMiOmorPW5leHRBcmcoKTticmVhaztjYXNlIngiOmorPSIweCIrcGFyc2VJbnQobmV4dEFyZygpLDEwKS50b1N0cmluZygxNik7YnJlYWs7Y2FzZSJYIjpqKz0iMHgiK3BhcnNlSW50KG5leHRBcmcoKSwxMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7YnJlYWs7ZGVmYXVsdDpqKz1vfWVsc2UiJSI9PT1vP0w9ITA6ais9bztyZXR1cm4gan0obz1zLmV4cG9ydHM9Zm9ybWF0KS5mb3JtYXQ9Zm9ybWF0LG8udnNwcmludGY9ZnVuY3Rpb24gdnNwcmludGYocyxvKXtyZXR1cm4gZm9ybWF0LmFwcGx5KG51bGwsW3NdLmNvbmNhdChvKSl9LCJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmImZ1bmN0aW9uIj09dHlwZW9mIGNvbnNvbGUubG9nJiYoby5wcmludGY9ZnVuY3Rpb24gcHJpbnRmKCl7Y29uc29sZS5sb2coZm9ybWF0LmFwcGx5KG51bGwsYXJndW1lbnRzKSl9KX0oKX0sMjY1NzE6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBwb3dlcnNoZWxsKHMpe2NvbnN0IG89eyRwYXR0ZXJuOi8tP1tBLXpcLlwtXStcYi8sa2V5d29yZDoiaWYgZWxzZSBmb3JlYWNoIHJldHVybiBkbyB3aGlsZSB1bnRpbCBlbHNlaWYgYmVnaW4gZm9yIHRyYXAgZGF0YSBkeW5hbWljcGFyYW0gZW5kIGJyZWFrIHRocm93IHBhcmFtIGNvbnRpbnVlIGZpbmFsbHkgaW4gc3dpdGNoIGV4aXQgZmlsdGVyIHRyeSBwcm9jZXNzIGNhdGNoIGhpZGRlbiBzdGF0aWMgcGFyYW1ldGVyIixidWlsdF9pbjoiYWMgYXNucCBjYXQgY2QgQ0ZTIGNoZGlyIGNsYyBjbGVhciBjbGh5IGNsaSBjbHAgY2xzIGNsdiBjbnNuIGNvbXBhcmUgY29weSBjcCBjcGkgY3BwIGN1cmwgY3ZwYSBkYnAgZGVsIGRpZmYgZGlyIGRuc24gZWJwIGVjaG98MCBlcGFsIGVwY3N2IGVwc24gZXJhc2UgZXRzbiBleHNuIGZjIGZoeCBmbCBmdCBmdyBnYWwgZ2JwIGdjIGdjYiBnY2kgZ2NtIGdjcyBnZHIgZ2VyciBnaHkgZ2kgZ2luIGdqYiBnbCBnbSBnbW8gZ3AgZ3BzIGdwdiBncm91cCBnc24gZ3NucCBnc3YgZ3R6IGd1IGd2IGd3bWkgaCBoaXN0b3J5IGljbSBpZXggaWh5IGlpIGlwYWwgaXBjc3YgaXBtbyBpcHNuIGlybSBpc2UgaXdtaSBpd3Iga2lsbCBscCBscyBtYW4gbWQgbWVhc3VyZSBtaSBtb3VudCBtb3ZlIG1wIG12IG5hbCBuZHIgbmkgbm1vIG5wc3NjIG5zbiBudiBvZ3Ygb2ggcG9wZCBwcyBwdXNoZCBwd2QgciByYnAgcmNqYiByY3NuIHJkIHJkciByZW4gcmkgcmpiIHJtIHJtZGlyIHJtbyBybmkgcm5wIHJwIHJzbiByc25wIHJ1amIgcnYgcnZwYSByd21pIHNhamIgc2FsIHNhcHMgc2FzdiBzYnAgc2Mgc2NiIHNlbGVjdCBzZXQgc2hjbSBzaSBzbCBzbGVlcCBzbHMgc29ydCBzcCBzcGpiIHNwcHMgc3BzdiBzdGFydCBzdHogc3VqYiBzdiBzd21pIHRlZSB0cmNtIHR5cGUgd2dldCB3aGVyZSB3amIgd3JpdGUifSxpPXtiZWdpbjoiYFtcXHNcXFNdIixyZWxldmFuY2U6MH0sYT17Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsdmFyaWFudHM6W3tiZWdpbjovXCRcQi99LHtjbGFzc05hbWU6ImtleXdvcmQiLGJlZ2luOi9cJHRoaXMvfSx7YmVnaW46L1wkW1x3XGRdW1x3XGRfOl0qL31dfSx1PXtjbGFzc05hbWU6InN0cmluZyIsdmFyaWFudHM6W3tiZWdpbjovIi8sZW5kOi8iL30se2JlZ2luOi9AIi8sZW5kOi9eIkAvfV0sY29udGFpbnM6W2ksYSx7Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsYmVnaW46L1wkW0Etel0vLGVuZDovW15BLXpdL31dfSxfPXtjbGFzc05hbWU6InN0cmluZyIsdmFyaWFudHM6W3tiZWdpbjovJy8sZW5kOi8nL30se2JlZ2luOi9AJy8sZW5kOi9eJ0AvfV19LHc9cy5pbmhlcml0KHMuQ09NTUVOVChudWxsLG51bGwpLHt2YXJpYW50czpbe2JlZ2luOi8jLyxlbmQ6LyQvfSx7YmVnaW46LzwjLyxlbmQ6LyM+L31dLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJkb2N0YWciLHZhcmlhbnRzOlt7YmVnaW46L1wuKHN5bm9wc2lzfGRlc2NyaXB0aW9ufGV4YW1wbGV8aW5wdXRzfG91dHB1dHN8bm90ZXN8bGlua3xjb21wb25lbnR8cm9sZXxmdW5jdGlvbmFsaXR5KS99LHtiZWdpbjovXC4ocGFyYW1ldGVyfGZvcndhcmRoZWxwdGFyZ2V0bmFtZXxmb3J3YXJkaGVscGNhdGVnb3J5fHJlbW90ZWhlbHBydW5zcGFjZXxleHRlcm5hbGhlbHApXHMrXFMrL31dfV19KSx4PXtjbGFzc05hbWU6ImJ1aWx0X2luIix2YXJpYW50czpbe2JlZ2luOiIoIi5jb25jYXQoIkFkZHxDbGVhcnxDbG9zZXxDb3B5fEVudGVyfEV4aXR8RmluZHxGb3JtYXR8R2V0fEhpZGV8Sm9pbnxMb2NrfE1vdmV8TmV3fE9wZW58T3B0aW1pemV8UG9wfFB1c2h8UmVkb3xSZW1vdmV8UmVuYW1lfFJlc2V0fFJlc2l6ZXxTZWFyY2h8U2VsZWN0fFNldHxTaG93fFNraXB8U3BsaXR8U3RlcHxTd2l0Y2h8VW5kb3xVbmxvY2t8V2F0Y2h8QmFja3VwfENoZWNrcG9pbnR8Q29tcGFyZXxDb21wcmVzc3xDb252ZXJ0fENvbnZlcnRGcm9tfENvbnZlcnRUb3xEaXNtb3VudHxFZGl0fEV4cGFuZHxFeHBvcnR8R3JvdXB8SW1wb3J0fEluaXRpYWxpemV8TGltaXR8TWVyZ2V8TW91bnR8T3V0fFB1Ymxpc2h8UmVzdG9yZXxTYXZlfFN5bmN8VW5wdWJsaXNofFVwZGF0ZXxBcHByb3ZlfEFzc2VydHxCdWlsZHxDb21wbGV0ZXxDb25maXJtfERlbnl8RGVwbG95fERpc2FibGV8RW5hYmxlfEluc3RhbGx8SW52b2tlfFJlZ2lzdGVyfFJlcXVlc3R8UmVzdGFydHxSZXN1bWV8U3RhcnR8U3RvcHxTdWJtaXR8U3VzcGVuZHxVbmluc3RhbGx8VW5yZWdpc3RlcnxXYWl0fERlYnVnfE1lYXN1cmV8UGluZ3xSZXBhaXJ8UmVzb2x2ZXxUZXN0fFRyYWNlfENvbm5lY3R8RGlzY29ubmVjdHxSZWFkfFJlY2VpdmV8U2VuZHxXcml0ZXxCbG9ja3xHcmFudHxQcm90ZWN0fFJldm9rZXxVbmJsb2NrfFVucHJvdGVjdHxVc2V8Rm9yRWFjaHxTb3J0fFRlZXxXaGVyZSIsIikrKC0pW1xcd1xcZF0rIil9XX0sQz17Y2xhc3NOYW1lOiJjbGFzcyIsYmVnaW5LZXl3b3JkczoiY2xhc3MgZW51bSIsZW5kOi9ccypbe10vLGV4Y2x1ZGVFbmQ6ITAscmVsZXZhbmNlOjAsY29udGFpbnM6W3MuVElUTEVfTU9ERV19LGo9e2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luOi9mdW5jdGlvblxzKy8sZW5kOi9ccypce3wkLyxleGNsdWRlRW5kOiEwLHJldHVybkJlZ2luOiEwLHJlbGV2YW5jZTowLGNvbnRhaW5zOlt7YmVnaW46ImZ1bmN0aW9uIixyZWxldmFuY2U6MCxjbGFzc05hbWU6ImtleXdvcmQifSx7Y2xhc3NOYW1lOiJ0aXRsZSIsYmVnaW46L1x3W1x3XGRdKigoLSlbXHdcZF0rKSovLHJlbGV2YW5jZTowfSx7YmVnaW46L1woLyxlbmQ6L1wpLyxjbGFzc05hbWU6InBhcmFtcyIscmVsZXZhbmNlOjAsY29udGFpbnM6W2FdfV19LEw9e2JlZ2luOi91c2luZ1xzLyxlbmQ6LyQvLHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOlt1LF8se2NsYXNzTmFtZToia2V5d29yZCIsYmVnaW46Lyh1c2luZ3xhc3NlbWJseXxjb21tYW5kfG1vZHVsZXxuYW1lc3BhY2V8dHlwZSkvfV19LEI9e3ZhcmlhbnRzOlt7Y2xhc3NOYW1lOiJvcGVyYXRvciIsYmVnaW46IigiLmNvbmNhdCgiLWFuZHwtYXN8LWJhbmR8LWJub3R8LWJvcnwtYnhvcnwtY2FzZXNlbnNpdGl2ZXwtY2NvbnRhaW5zfC1jZXF8LWNnZXwtY2d0fC1jbGV8LWNsaWtlfC1jbHR8LWNtYXRjaHwtY25lfC1jbm90Y29udGFpbnN8LWNub3RsaWtlfC1jbm90bWF0Y2h8LWNvbnRhaW5zfC1jcmVwbGFjZXwtY3NwbGl0fC1lcXwtZXhhY3R8LWZ8LWZpbGV8LWdlfC1ndHwtaWNvbnRhaW5zfC1pZXF8LWlnZXwtaWd0fC1pbGV8LWlsaWtlfC1pbHR8LWltYXRjaHwtaW58LWluZXwtaW5vdGNvbnRhaW5zfC1pbm90bGlrZXwtaW5vdG1hdGNofC1pcmVwbGFjZXwtaXN8LWlzbm90fC1pc3BsaXR8LWpvaW58LWxlfC1saWtlfC1sdHwtbWF0Y2h8LW5lfC1ub3R8LW5vdGNvbnRhaW5zfC1ub3Rpbnwtbm90bGlrZXwtbm90bWF0Y2h8LW9yfC1yZWdleHwtcmVwbGFjZXwtc2hsfC1zaHJ8LXNwbGl0fC13aWxkY2FyZHwteG9yIiwiKVxcYiIpfSx7Y2xhc3NOYW1lOiJsaXRlcmFsIixiZWdpbjovKC0pW1x3XGRdKy8scmVsZXZhbmNlOjB9XX0sJD17Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW46L1xbLipcXVxzKltcd10rWyBdPz9cKC8sZW5kOi8kLyxyZXR1cm5CZWdpbjohMCxyZWxldmFuY2U6MCxjb250YWluczpbe2NsYXNzTmFtZToia2V5d29yZCIsYmVnaW46IigiLmNvbmNhdChvLmtleXdvcmQudG9TdHJpbmcoKS5yZXBsYWNlKC9ccy9nLCJ8IiksIilcXGIiKSxlbmRzUGFyZW50OiEwLHJlbGV2YW5jZTowfSxzLmluaGVyaXQocy5USVRMRV9NT0RFLHtlbmRzUGFyZW50OiEwfSldfSxWPVskLHcsaSxzLk5VTUJFUl9NT0RFLHUsXyx4LGEse2NsYXNzTmFtZToibGl0ZXJhbCIsYmVnaW46L1wkKG51bGx8dHJ1ZXxmYWxzZSlcYi99LHtjbGFzc05hbWU6InNlbGVjdG9yLXRhZyIsYmVnaW46L0BcQi8scmVsZXZhbmNlOjB9XSxVPXtiZWdpbjovXFsvLGVuZDovXF0vLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwLHJlbGV2YW5jZTowLGNvbnRhaW5zOltdLmNvbmNhdCgic2VsZiIsVix7YmVnaW46IigiK1sic3RyaW5nIiwiY2hhciIsImJ5dGUiLCJpbnQiLCJsb25nIiwiYm9vbCIsImRlY2ltYWwiLCJzaW5nbGUiLCJkb3VibGUiLCJEYXRlVGltZSIsInhtbCIsImFycmF5IiwiaGFzaHRhYmxlIiwidm9pZCJdLmpvaW4oInwiKSsiKSIsY2xhc3NOYW1lOiJidWlsdF9pbiIscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOi9bXC5cd1xkXSsvLHJlbGV2YW5jZTowfSl9O3JldHVybiAkLmNvbnRhaW5zLnVuc2hpZnQoVSkse25hbWU6IlBvd2VyU2hlbGwiLGFsaWFzZXM6WyJwcyIsInBzMSJdLGNhc2VfaW5zZW5zaXRpdmU6ITAsa2V5d29yZHM6byxjb250YWluczpWLmNvbmNhdChDLGosTCxCLFUpfX19LDI2NjU3OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg3NTIwOCksdT1mdW5jdGlvbiBpc0Nsb3NpbmdUYWcocyl7cmV0dXJuLzxcLytbXj5dKz4vLnRlc3Qocyl9LF89ZnVuY3Rpb24gaXNTZWxmQ2xvc2luZ1RhZyhzKXtyZXR1cm4vPFtePl0rXC8+Ly50ZXN0KHMpfTtmdW5jdGlvbiBnZXRUeXBlKHMpe3JldHVybiB1KHMpPyJDbG9zaW5nVGFnIjpmdW5jdGlvbiBpc09wZW5pbmdUYWcocyl7cmV0dXJuIGZ1bmN0aW9uIGlzVGFnKHMpe3JldHVybi88W14+IV0rPi8udGVzdChzKX0ocykmJiF1KHMpJiYhXyhzKX0ocyk/Ik9wZW5pbmdUYWciOl8ocyk/IlNlbGZDbG9zaW5nVGFnIjoiVGV4dCJ9cy5leHBvcnRzPWZ1bmN0aW9uKHMpe3ZhciBvPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxpPW8uaW5kZW50b3IsdT1vLnRleHROb2Rlc09uU2FtZUxpbmUsXz0wLHc9W107aT1pfHwiICAgICI7dmFyIHg9ZnVuY3Rpb24gbGV4ZXIocyl7cmV0dXJuIGZ1bmN0aW9uIHNwbGl0T25UYWdzKHMpe3JldHVybiBzLnNwbGl0KC8oPFwvP1tePl0rPikvZykuZmlsdGVyKChmdW5jdGlvbihzKXtyZXR1cm4iIiE9PXMudHJpbSgpfSkpfShzKS5tYXAoKGZ1bmN0aW9uKHMpe3JldHVybnt2YWx1ZTpzLHR5cGU6Z2V0VHlwZShzKX19KSl9KHMpLm1hcCgoZnVuY3Rpb24ocyxvLHgpe3ZhciBDPXMudmFsdWUsaj1zLnR5cGU7IkNsb3NpbmdUYWciPT09aiYmXy0tO3ZhciBMPWEoaSxfKSxCPUwrQztpZigiT3BlbmluZ1RhZyI9PT1qJiZfKyssdSl7dmFyICQ9eFtvLTFdLFY9eFtvLTJdOyJDbG9zaW5nVGFnIj09PWomJiJUZXh0Ij09PSQudHlwZSYmIk9wZW5pbmdUYWciPT09Vi50eXBlJiYoQj0iIitMK1YudmFsdWUrJC52YWx1ZStDLHcucHVzaChvLTIsby0xKSl9cmV0dXJuIEJ9KSk7cmV0dXJuIHcuZm9yRWFjaCgoZnVuY3Rpb24ocyl7cmV0dXJuIHhbc109bnVsbH0pKSx4LmZpbHRlcigoZnVuY3Rpb24ocyl7cmV0dXJuISFzfSkpLmpvaW4oIlxuIil9fSwyNjcxMDoocyxvLGkpPT57dmFyIGE9aSg1NjY5OCksdT1pKDI0MTA3KSxfPWkoOTAzOTIpLHc9aSg5Mjg2MSkuQnVmZmVyLHg9bmV3IEFycmF5KDY0KTtmdW5jdGlvbiBTaGEyMjQoKXt0aGlzLmluaXQoKSx0aGlzLl93PXgsXy5jYWxsKHRoaXMsNjQsNTYpfWEoU2hhMjI0LHUpLFNoYTIyNC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPTMyMzgzNzEwMzIsdGhpcy5fYj05MTQxNTA2NjMsdGhpcy5fYz04MTI3MDI5OTksdGhpcy5fZD00MTQ0OTEyNjk3LHRoaXMuX2U9NDI5MDc3NTg1Nyx0aGlzLl9mPTE3NTA2MDMwMjUsdGhpcy5fZz0xNjk0MDc2ODM5LHRoaXMuX2g9MzIwNDA3NTQyOCx0aGlzfSxTaGEyMjQucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIHM9dy5hbGxvY1Vuc2FmZSgyOCk7cmV0dXJuIHMud3JpdGVJbnQzMkJFKHRoaXMuX2EsMCkscy53cml0ZUludDMyQkUodGhpcy5fYiw0KSxzLndyaXRlSW50MzJCRSh0aGlzLl9jLDgpLHMud3JpdGVJbnQzMkJFKHRoaXMuX2QsMTIpLHMud3JpdGVJbnQzMkJFKHRoaXMuX2UsMTYpLHMud3JpdGVJbnQzMkJFKHRoaXMuX2YsMjApLHMud3JpdGVJbnQzMkJFKHRoaXMuX2csMjQpLHN9LHMuZXhwb3J0cz1TaGEyMjR9LDI3MDk2OihzLG8saSk9Pntjb25zdCBhPWkoODc1ODYpLHU9aSg2MjA1KSxfPWkoMTAwMjMpLHc9aSg4MDQ4KTtzLmV4cG9ydHM9cz0+e3ZhciBvLGkseD0wLEM9e3R5cGU6dS5ST09ULHN0YWNrOltdfSxqPUMsTD1DLnN0YWNrLEI9W10scmVwZWF0RXJyPW89PnthLmVycm9yKHMsIk5vdGhpbmcgdG8gcmVwZWF0IGF0IGNvbHVtbiAiKyhvLTEpKX0sJD1hLnN0clRvQ2hhcnMocyk7Zm9yKG89JC5sZW5ndGg7eDxvOylzd2l0Y2goaT0kW3grK10pe2Nhc2UiXFwiOnN3aXRjaChpPSRbeCsrXSl7Y2FzZSJiIjpMLnB1c2gody53b3JkQm91bmRhcnkoKSk7YnJlYWs7Y2FzZSJCIjpMLnB1c2gody5ub25Xb3JkQm91bmRhcnkoKSk7YnJlYWs7Y2FzZSJ3IjpMLnB1c2goXy53b3JkcygpKTticmVhaztjYXNlIlciOkwucHVzaChfLm5vdFdvcmRzKCkpO2JyZWFrO2Nhc2UiZCI6TC5wdXNoKF8uaW50cygpKTticmVhaztjYXNlIkQiOkwucHVzaChfLm5vdEludHMoKSk7YnJlYWs7Y2FzZSJzIjpMLnB1c2goXy53aGl0ZXNwYWNlKCkpO2JyZWFrO2Nhc2UiUyI6TC5wdXNoKF8ubm90V2hpdGVzcGFjZSgpKTticmVhaztkZWZhdWx0Oi9cZC8udGVzdChpKT9MLnB1c2goe3R5cGU6dS5SRUZFUkVOQ0UsdmFsdWU6cGFyc2VJbnQoaSwxMCl9KTpMLnB1c2goe3R5cGU6dS5DSEFSLHZhbHVlOmkuY2hhckNvZGVBdCgwKX0pfWJyZWFrO2Nhc2UiXiI6TC5wdXNoKHcuYmVnaW4oKSk7YnJlYWs7Y2FzZSIkIjpMLnB1c2gody5lbmQoKSk7YnJlYWs7Y2FzZSJbIjp2YXIgVjsiXiI9PT0kW3hdPyhWPSEwLHgrKyk6Vj0hMTt2YXIgVT1hLnRva2VuaXplQ2xhc3MoJC5zbGljZSh4KSxzKTt4Kz1VWzFdLEwucHVzaCh7dHlwZTp1LlNFVCxzZXQ6VVswXSxub3Q6Vn0pO2JyZWFrO2Nhc2UiLiI6TC5wdXNoKF8uYW55Q2hhcigpKTticmVhaztjYXNlIigiOnZhciB6PXt0eXBlOnUuR1JPVVAsc3RhY2s6W10scmVtZW1iZXI6ITB9OyI/Ij09PShpPSRbeF0pJiYoaT0kW3grMV0seCs9MiwiPSI9PT1pP3ouZm9sbG93ZWRCeT0hMDoiISI9PT1pP3oubm90Rm9sbG93ZWRCeT0hMDoiOiIhPT1pJiZhLmVycm9yKHMsYEludmFsaWQgZ3JvdXAsIGNoYXJhY3RlciAnJHtpfScgYWZ0ZXIgJz8nIGF0IGNvbHVtbiBgKyh4LTEpKSx6LnJlbWVtYmVyPSExKSxMLnB1c2goeiksQi5wdXNoKGopLGo9eixMPXouc3RhY2s7YnJlYWs7Y2FzZSIpIjowPT09Qi5sZW5ndGgmJmEuZXJyb3IocywiVW5tYXRjaGVkICkgYXQgY29sdW1uICIrKHgtMSkpLEw9KGo9Qi5wb3AoKSkub3B0aW9ucz9qLm9wdGlvbnNbai5vcHRpb25zLmxlbmd0aC0xXTpqLnN0YWNrO2JyZWFrO2Nhc2UifCI6ai5vcHRpb25zfHwoai5vcHRpb25zPVtqLnN0YWNrXSxkZWxldGUgai5zdGFjayk7dmFyIFk9W107ai5vcHRpb25zLnB1c2goWSksTD1ZO2JyZWFrO2Nhc2UieyI6dmFyIFosZWUsaWU9L14oXGQrKSgsKFxkKyk/KT9cfS8uZXhlYygkLnNsaWNlKHgpKTtudWxsIT09aWU/KDA9PT1MLmxlbmd0aCYmcmVwZWF0RXJyKHgpLFo9cGFyc2VJbnQoaWVbMV0sMTApLGVlPWllWzJdP2llWzNdP3BhcnNlSW50KGllWzNdLDEwKToxLzA6Wix4Kz1pZVswXS5sZW5ndGgsTC5wdXNoKHt0eXBlOnUuUkVQRVRJVElPTixtaW46WixtYXg6ZWUsdmFsdWU6TC5wb3AoKX0pKTpMLnB1c2goe3R5cGU6dS5DSEFSLHZhbHVlOjEyM30pO2JyZWFrO2Nhc2UiPyI6MD09PUwubGVuZ3RoJiZyZXBlYXRFcnIoeCksTC5wdXNoKHt0eXBlOnUuUkVQRVRJVElPTixtaW46MCxtYXg6MSx2YWx1ZTpMLnBvcCgpfSk7YnJlYWs7Y2FzZSIrIjowPT09TC5sZW5ndGgmJnJlcGVhdEVycih4KSxMLnB1c2goe3R5cGU6dS5SRVBFVElUSU9OLG1pbjoxLG1heDoxLzAsdmFsdWU6TC5wb3AoKX0pO2JyZWFrO2Nhc2UiKiI6MD09PUwubGVuZ3RoJiZyZXBlYXRFcnIoeCksTC5wdXNoKHt0eXBlOnUuUkVQRVRJVElPTixtaW46MCxtYXg6MS8wLHZhbHVlOkwucG9wKCl9KTticmVhaztkZWZhdWx0OkwucHVzaCh7dHlwZTp1LkNIQVIsdmFsdWU6aS5jaGFyQ29kZUF0KDApfSl9cmV0dXJuIDAhPT1CLmxlbmd0aCYmYS5lcnJvcihzLCJVbnRlcm1pbmF0ZWQgZ3JvdXAiKSxDfSxzLmV4cG9ydHMudHlwZXM9dX0sMjczMDE6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlVW5hcnkocyl7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBzKG8pfX19LDI3Mzc0OihzLG8pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxvLmRlZmF1bHQ9ZnVuY3Rpb24ocyxvLGkpe2lmKHZvaWQgMD09PXMpdGhyb3cgbmV3IEVycm9yKCdSZWR1Y2VyICInK28rJyIgcmV0dXJuZWQgdW5kZWZpbmVkIHdoZW4gaGFuZGxpbmcgIicraS50eXBlKyciIGFjdGlvbi4gVG8gaWdub3JlIGFuIGFjdGlvbiwgeW91IG11c3QgZXhwbGljaXRseSByZXR1cm4gdGhlIHByZXZpb3VzIHN0YXRlLicpfSxzLmV4cG9ydHM9by5kZWZhdWx0fSwyNzUzNDoocyxvLGkpPT57dmFyIGE9aSg3MjU1MiksdT1pKDQwMzQ2KTtzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZUlzQXJndW1lbnRzKHMpe3JldHVybiB1KHMpJiYiW29iamVjdCBBcmd1bWVudHNdIj09YShzKX19LDI3ODE2OihzLG8saSk9Pnt2YXIgYT1pKDU2Njk4KSx1PWkoOTAzOTIpLF89aSg5Mjg2MSkuQnVmZmVyLHc9WzE1MTg1MDAyNDksMTg1OTc3NTM5MywtMTg5NDAwNzU4OCwtODk5NDk3NTE0XSx4PW5ldyBBcnJheSg4MCk7ZnVuY3Rpb24gU2hhKCl7dGhpcy5pbml0KCksdGhpcy5fdz14LHUuY2FsbCh0aGlzLDY0LDU2KX1mdW5jdGlvbiByb3RsMzAocyl7cmV0dXJuIHM8PDMwfHM+Pj4yfWZ1bmN0aW9uIGZ0KHMsbyxpLGEpe3JldHVybiAwPT09cz9vJml8fm8mYToyPT09cz9vJml8byZhfGkmYTpvXmleYX1hKFNoYSx1KSxTaGEucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIwLHRoaXN9LFNoYS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihzKXtmb3IodmFyIG8saT10aGlzLl93LGE9MHx0aGlzLl9hLHU9MHx0aGlzLl9iLF89MHx0aGlzLl9jLHg9MHx0aGlzLl9kLEM9MHx0aGlzLl9lLGo9MDtqPDE2OysrailpW2pdPXMucmVhZEludDMyQkUoNCpqKTtmb3IoO2o8ODA7KytqKWlbal09aVtqLTNdXmlbai04XV5pW2otMTRdXmlbai0xNl07Zm9yKHZhciBMPTA7TDw4MDsrK0wpe3ZhciBCPX5+KEwvMjApLCQ9MHwoKG89YSk8PDV8bz4+PjI3KStmdChCLHUsXyx4KStDK2lbTF0rd1tCXTtDPXgseD1fLF89cm90bDMwKHUpLHU9YSxhPSR9dGhpcy5fYT1hK3RoaXMuX2F8MCx0aGlzLl9iPXUrdGhpcy5fYnwwLHRoaXMuX2M9Xyt0aGlzLl9jfDAsdGhpcy5fZD14K3RoaXMuX2R8MCx0aGlzLl9lPUMrdGhpcy5fZXwwfSxTaGEucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIHM9Xy5hbGxvY1Vuc2FmZSgyMCk7cmV0dXJuIHMud3JpdGVJbnQzMkJFKDB8dGhpcy5fYSwwKSxzLndyaXRlSW50MzJCRSgwfHRoaXMuX2IsNCkscy53cml0ZUludDMyQkUoMHx0aGlzLl9jLDgpLHMud3JpdGVJbnQzMkJFKDB8dGhpcy5fZCwxMikscy53cml0ZUludDMyQkUoMHx0aGlzLl9lLDE2KSxzfSxzLmV4cG9ydHM9U2hhfSwyODA3NzpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VIYXNJbihzLG8pe3JldHVybiBudWxsIT1zJiZvIGluIE9iamVjdChzKX19LDI4MzAzOihzLG8saSk9Pnt2YXIgYT1pKDU2MTEwKShpKDkzMjUpLCJXZWFrTWFwIik7cy5leHBvcnRzPWF9LDI4MzExOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg5MjM2MSksdT1pKDgyMTU5KSxfPWkoNDE1MDUpLHc9YShhLmJpbmQpO3MuZXhwb3J0cz1mdW5jdGlvbihzLG8pe3JldHVybiB1KHMpLHZvaWQgMD09PW8/czpfP3cocyxvKTpmdW5jdGlvbigpe3JldHVybiBzLmFwcGx5KG8sYXJndW1lbnRzKX19fSwyODU4NjoocyxvLGkpPT57dmFyIGE9aSg1NjQ0OSksdT1pKDQ0Mzk0KSxfPS9cLnxcWyg/OlteW1xdXSp8KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSo/XDEpXF0vLHc9L15cdyokLztzLmV4cG9ydHM9ZnVuY3Rpb24gaXNLZXkocyxvKXtpZihhKHMpKXJldHVybiExO3ZhciBpPXR5cGVvZiBzO3JldHVybiEoIm51bWJlciIhPWkmJiJzeW1ib2wiIT1pJiYiYm9vbGVhbiIhPWkmJm51bGwhPXMmJiF1KHMpKXx8KHcudGVzdChzKXx8IV8udGVzdChzKXx8bnVsbCE9byYmcyBpbiBPYmplY3QobykpfX0sMjg3NTQ6KHMsbyxpKT0+e3ZhciBhPWkoMjUxNjApO3MuZXhwb3J0cz1mdW5jdGlvbiBjYXN0U2xpY2UocyxvLGkpe3ZhciB1PXMubGVuZ3RoO3JldHVybiBpPXZvaWQgMD09PWk/dTppLCFvJiZpPj11P3M6YShzLG8saSl9fSwyODg3OToocyxvLGkpPT57dmFyIGE9aSg3NDMzNSkoT2JqZWN0LmdldFByb3RvdHlwZU9mLE9iamVjdCk7cy5leHBvcnRzPWF9LDI5MTcyOihzLG8saSk9Pnt2YXIgYT1pKDU4NjEpLHU9aSg0MDM0Nik7cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VJc01hcChzKXtyZXR1cm4gdShzKSYmIltvYmplY3QgTWFwXSI9PWEocyl9fSwyOTM2NzoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoODIxNTkpLHU9aSg4NzEzNik7cy5leHBvcnRzPWZ1bmN0aW9uKHMsbyl7dmFyIGk9c1tvXTtyZXR1cm4gdShpKT92b2lkIDA6YShpKX19LDI5NTM4OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgzOTQ0NyksdT1pKDE5MDcpLF89aSgxMzkzMCksdz1pKDk4ODI4KSx4PWkoMjg3NSksQz1pKDg3MTcwKSxqPWkoMjI1NzQpLEw9aSgzOTI5OCksQj1pKDE2OTQ2KSwkPU9iamVjdC5hc3NpZ24sVj1PYmplY3QuZGVmaW5lUHJvcGVydHksVT11KFtdLmNvbmNhdCk7cy5leHBvcnRzPSEkfHx3KChmdW5jdGlvbigpe2lmKGEmJjEhPT0kKHtiOjF9LCQoVih7fSwiYSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7Vih0aGlzLCJiIix7dmFsdWU6MyxlbnVtZXJhYmxlOiExfSl9fSkse2I6Mn0pKS5iKXJldHVybiEwO3ZhciBzPXt9LG89e30saT1TeW1ib2woImFzc2lnbiBkZXRlY3Rpb24iKSx1PSJhYmNkZWZnaGlqa2xtbm9wcXJzdCI7cmV0dXJuIHNbaV09Nyx1LnNwbGl0KCIiKS5mb3JFYWNoKChmdW5jdGlvbihzKXtvW3NdPXN9KSksNyE9PSQoe30scylbaV18fHgoJCh7fSxvKSkuam9pbigiIikhPT11fSkpP2Z1bmN0aW9uIGFzc2lnbihzLG8pe2Zvcih2YXIgaT1MKHMpLHU9YXJndW1lbnRzLmxlbmd0aCx3PTEsJD1DLmYsVj1qLmY7dT53Oylmb3IodmFyIHosWT1CKGFyZ3VtZW50c1t3KytdKSxaPSQ/VSh4KFkpLCQoWSkpOngoWSksZWU9Wi5sZW5ndGgsaWU9MDtlZT5pZTspej1aW2llKytdLGEmJiFfKFYsWSx6KXx8KGlbel09WVt6XSk7cmV0dXJuIGl9OiR9LDI5ODE3OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gc3RhY2tIYXMocyl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHMpfX0sMjk4NDQ6KHMsbyk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZihzLG8pe3ZhciBpPXMubGVuZ3RoO3MucHVzaChvKTtlOmZvcig7MDxpOyl7dmFyIGE9aS0xPj4+MSx1PXNbYV07aWYoISgwPGcodSxvKSkpYnJlYWsgZTtzW2FdPW8sc1tpXT11LGk9YX19ZnVuY3Rpb24gaChzKXtyZXR1cm4gMD09PXMubGVuZ3RoP251bGw6c1swXX1mdW5jdGlvbiBrKHMpe2lmKDA9PT1zLmxlbmd0aClyZXR1cm4gbnVsbDt2YXIgbz1zWzBdLGk9cy5wb3AoKTtpZihpIT09byl7c1swXT1pO2U6Zm9yKHZhciBhPTAsdT1zLmxlbmd0aCxfPXU+Pj4xO2E8Xzspe3ZhciB3PTIqKGErMSktMSx4PXNbd10sQz13KzEsaj1zW0NdO2lmKDA+Zyh4LGkpKUM8dSYmMD5nKGoseCk/KHNbYV09aixzW0NdPWksYT1DKTooc1thXT14LHNbd109aSxhPXcpO2Vsc2V7aWYoIShDPHUmJjA+ZyhqLGkpKSlicmVhayBlO3NbYV09aixzW0NdPWksYT1DfX19cmV0dXJuIG99ZnVuY3Rpb24gZyhzLG8pe3ZhciBpPXMuc29ydEluZGV4LW8uc29ydEluZGV4O3JldHVybiAwIT09aT9pOnMuaWQtby5pZH1pZigib2JqZWN0Ij09dHlwZW9mIHBlcmZvcm1hbmNlJiYiZnVuY3Rpb24iPT10eXBlb2YgcGVyZm9ybWFuY2Uubm93KXt2YXIgaT1wZXJmb3JtYW5jZTtvLnVuc3RhYmxlX25vdz1mdW5jdGlvbigpe3JldHVybiBpLm5vdygpfX1lbHNle3ZhciBhPURhdGUsdT1hLm5vdygpO28udW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIGEubm93KCktdX19dmFyIF89W10sdz1bXSx4PTEsQz1udWxsLGo9MyxMPSExLEI9ITEsJD0hMSxWPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6bnVsbCxVPSJmdW5jdGlvbiI9PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0Om51bGwsej0idW5kZWZpbmVkIiE9dHlwZW9mIHNldEltbWVkaWF0ZT9zZXRJbW1lZGlhdGU6bnVsbDtmdW5jdGlvbiBHKHMpe2Zvcih2YXIgbz1oKHcpO251bGwhPT1vOyl7aWYobnVsbD09PW8uY2FsbGJhY2spayh3KTtlbHNle2lmKCEoby5zdGFydFRpbWU8PXMpKWJyZWFrO2sodyksby5zb3J0SW5kZXg9by5leHBpcmF0aW9uVGltZSxmKF8sbyl9bz1oKHcpfX1mdW5jdGlvbiBIKHMpe2lmKCQ9ITEsRyhzKSwhQilpZihudWxsIT09aChfKSlCPSEwLEkoSik7ZWxzZXt2YXIgbz1oKHcpO251bGwhPT1vJiZLKEgsby5zdGFydFRpbWUtcyl9fWZ1bmN0aW9uIEoocyxpKXtCPSExLCQmJigkPSExLFUoaWUpLGllPS0xKSxMPSEwO3ZhciBhPWo7dHJ5e2ZvcihHKGkpLEM9aChfKTtudWxsIT09QyYmKCEoQy5leHBpcmF0aW9uVGltZT5pKXx8cyYmIU0oKSk7KXt2YXIgdT1DLmNhbGxiYWNrO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB1KXtDLmNhbGxiYWNrPW51bGwsaj1DLnByaW9yaXR5TGV2ZWw7dmFyIHg9dShDLmV4cGlyYXRpb25UaW1lPD1pKTtpPW8udW5zdGFibGVfbm93KCksImZ1bmN0aW9uIj09dHlwZW9mIHg/Qy5jYWxsYmFjaz14OkM9PT1oKF8pJiZrKF8pLEcoaSl9ZWxzZSBrKF8pO0M9aChfKX1pZihudWxsIT09Qyl2YXIgVj0hMDtlbHNle3ZhciB6PWgodyk7bnVsbCE9PXomJksoSCx6LnN0YXJ0VGltZS1pKSxWPSExfXJldHVybiBWfWZpbmFsbHl7Qz1udWxsLGo9YSxMPSExfX0idW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmdm9pZCAwIT09bmF2aWdhdG9yLnNjaGVkdWxpbmcmJnZvaWQgMCE9PW5hdmlnYXRvci5zY2hlZHVsaW5nLmlzSW5wdXRQZW5kaW5nJiZuYXZpZ2F0b3Iuc2NoZWR1bGluZy5pc0lucHV0UGVuZGluZy5iaW5kKG5hdmlnYXRvci5zY2hlZHVsaW5nKTt2YXIgWSxaPSExLGVlPW51bGwsaWU9LTEsYWU9NSxjZT0tMTtmdW5jdGlvbiBNKCl7cmV0dXJuIShvLnVuc3RhYmxlX25vdygpLWNlPGFlKX1mdW5jdGlvbiBSKCl7aWYobnVsbCE9PWVlKXt2YXIgcz1vLnVuc3RhYmxlX25vdygpO2NlPXM7dmFyIGk9ITA7dHJ5e2k9ZWUoITAscyl9ZmluYWxseXtpP1koKTooWj0hMSxlZT1udWxsKX19ZWxzZSBaPSExfWlmKCJmdW5jdGlvbiI9PXR5cGVvZiB6KVk9ZnVuY3Rpb24oKXt6KFIpfTtlbHNlIGlmKCJ1bmRlZmluZWQiIT10eXBlb2YgTWVzc2FnZUNoYW5uZWwpe3ZhciBsZT1uZXcgTWVzc2FnZUNoYW5uZWwscGU9bGUucG9ydDI7bGUucG9ydDEub25tZXNzYWdlPVIsWT1mdW5jdGlvbigpe3BlLnBvc3RNZXNzYWdlKG51bGwpfX1lbHNlIFk9ZnVuY3Rpb24oKXtWKFIsMCl9O2Z1bmN0aW9uIEkocyl7ZWU9cyxafHwoWj0hMCxZKCkpfWZ1bmN0aW9uIEsocyxpKXtpZT1WKChmdW5jdGlvbigpe3Moby51bnN0YWJsZV9ub3coKSl9KSxpKX1vLnVuc3RhYmxlX0lkbGVQcmlvcml0eT01LG8udW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHk9MSxvLnVuc3RhYmxlX0xvd1ByaW9yaXR5PTQsby51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eT0zLG8udW5zdGFibGVfUHJvZmlsaW5nPW51bGwsby51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eT0yLG8udW5zdGFibGVfY2FuY2VsQ2FsbGJhY2s9ZnVuY3Rpb24ocyl7cy5jYWxsYmFjaz1udWxsfSxvLnVuc3RhYmxlX2NvbnRpbnVlRXhlY3V0aW9uPWZ1bmN0aW9uKCl7Qnx8THx8KEI9ITAsSShKKSl9LG8udW5zdGFibGVfZm9yY2VGcmFtZVJhdGU9ZnVuY3Rpb24ocyl7MD5zfHwxMjU8cz9jb25zb2xlLmVycm9yKCJmb3JjZUZyYW1lUmF0ZSB0YWtlcyBhIHBvc2l0aXZlIGludCBiZXR3ZWVuIDAgYW5kIDEyNSwgZm9yY2luZyBmcmFtZSByYXRlcyBoaWdoZXIgdGhhbiAxMjUgZnBzIGlzIG5vdCBzdXBwb3J0ZWQiKTphZT0wPHM/TWF0aC5mbG9vcigxZTMvcyk6NX0sby51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbD1mdW5jdGlvbigpe3JldHVybiBqfSxvLnVuc3RhYmxlX2dldEZpcnN0Q2FsbGJhY2tOb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIGgoXyl9LG8udW5zdGFibGVfbmV4dD1mdW5jdGlvbihzKXtzd2l0Y2goail7Y2FzZSAxOmNhc2UgMjpjYXNlIDM6dmFyIG89MzticmVhaztkZWZhdWx0Om89an12YXIgaT1qO2o9bzt0cnl7cmV0dXJuIHMoKX1maW5hbGx5e2o9aX19LG8udW5zdGFibGVfcGF1c2VFeGVjdXRpb249ZnVuY3Rpb24oKXt9LG8udW5zdGFibGVfcmVxdWVzdFBhaW50PWZ1bmN0aW9uKCl7fSxvLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eT1mdW5jdGlvbihzLG8pe3N3aXRjaChzKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6cz0zfXZhciBpPWo7aj1zO3RyeXtyZXR1cm4gbygpfWZpbmFsbHl7aj1pfX0sby51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrPWZ1bmN0aW9uKHMsaSxhKXt2YXIgdT1vLnVuc3RhYmxlX25vdygpO3N3aXRjaCgib2JqZWN0Ij09dHlwZW9mIGEmJm51bGwhPT1hP2E9Im51bWJlciI9PXR5cGVvZihhPWEuZGVsYXkpJiYwPGE/dSthOnU6YT11LHMpe2Nhc2UgMTp2YXIgQz0tMTticmVhaztjYXNlIDI6Qz0yNTA7YnJlYWs7Y2FzZSA1OkM9MTA3Mzc0MTgyMzticmVhaztjYXNlIDQ6Qz0xZTQ7YnJlYWs7ZGVmYXVsdDpDPTVlM31yZXR1cm4gcz17aWQ6eCsrLGNhbGxiYWNrOmkscHJpb3JpdHlMZXZlbDpzLHN0YXJ0VGltZTphLGV4cGlyYXRpb25UaW1lOkM9YStDLHNvcnRJbmRleDotMX0sYT51PyhzLnNvcnRJbmRleD1hLGYodyxzKSxudWxsPT09aChfKSYmcz09PWgodykmJigkPyhVKGllKSxpZT0tMSk6JD0hMCxLKEgsYS11KSkpOihzLnNvcnRJbmRleD1DLGYoXyxzKSxCfHxMfHwoQj0hMCxJKEopKSksc30sby51bnN0YWJsZV9zaG91bGRZaWVsZD1NLG8udW5zdGFibGVfd3JhcENhbGxiYWNrPWZ1bmN0aW9uKHMpe3ZhciBvPWo7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9ajtqPW87dHJ5e3JldHVybiBzLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e2o9aX19fX0sMzAyOTQ6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBpc0xlbmd0aChzKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHMmJnM+LTEmJnMlMT09MCYmczw9OTAwNzE5OTI1NDc0MDk5MX19LDMwMzYxOnM9Pnt2YXIgbz0vXig/OjB8WzEtOV1cZCopJC87cy5leHBvcnRzPWZ1bmN0aW9uIGlzSW5kZXgocyxpKXt2YXIgYT10eXBlb2YgcztyZXR1cm4hIShpPW51bGw9PWk/OTAwNzE5OTI1NDc0MDk5MTppKSYmKCJudW1iZXIiPT1hfHwic3ltYm9sIiE9YSYmby50ZXN0KHMpKSYmcz4tMSYmcyUxPT0wJiZzPGl9fSwzMDY0MToocyxvLGkpPT57dmFyIGE9aSg4NjY0OSksdT1pKDk1OTUwKTtzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZUZvck93bihzLG8pe3JldHVybiBzJiZhKHMsbyx1KX19LDMwNzU2OihzLG8saSk9Pnt2YXIgYT1pKDIzODA1KTtzLmV4cG9ydHM9ZnVuY3Rpb24gaXNTdHJpY3RDb21wYXJhYmxlKHMpe3JldHVybiBzPT1zJiYhYShzKX19LDMwOTgwOihzLG8saSk9Pnt2YXIgYT1pKDM5MzQ0KSx1PWkoOTQwMzMpO2Z1bmN0aW9uIExhenlXcmFwcGVyKHMpe3RoaXMuX193cmFwcGVkX189cyx0aGlzLl9fYWN0aW9uc19fPVtdLHRoaXMuX19kaXJfXz0xLHRoaXMuX19maWx0ZXJlZF9fPSExLHRoaXMuX19pdGVyYXRlZXNfXz1bXSx0aGlzLl9fdGFrZUNvdW50X189NDI5NDk2NzI5NSx0aGlzLl9fdmlld3NfXz1bXX1MYXp5V3JhcHBlci5wcm90b3R5cGU9YSh1LnByb3RvdHlwZSksTGF6eVdyYXBwZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yPUxhenlXcmFwcGVyLHMuZXhwb3J0cz1MYXp5V3JhcHBlcn0sMzExNzU6KHMsbyxpKT0+e3ZhciBhPWkoMjYwMjUpO3MuZXhwb3J0cz1mdW5jdGlvbiBsaXN0Q2FjaGVTZXQocyxvKXt2YXIgaT10aGlzLl9fZGF0YV9fLHU9YShpLHMpO3JldHVybiB1PDA/KCsrdGhpcy5zaXplLGkucHVzaChbcyxvXSkpOmlbdV1bMV09byx0aGlzfX0sMzEzODA6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBzZXRDYWNoZUFkZChzKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5zZXQocywiX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyIpLHRoaXN9fSwzMTQ5OTpzPT57dmFyIG89eyImIjoiJmFtcDsiLCciJzoiJnF1b3Q7IiwiJyI6IiZhcG9zOyIsIjwiOiImbHQ7IiwiPiI6IiZndDsifTtzLmV4cG9ydHM9ZnVuY3Rpb24gZXNjYXBlRm9yWE1MKHMpe3JldHVybiBzJiZzLnJlcGxhY2U/cy5yZXBsYWNlKC8oWyYiPD4nXSkvZywoZnVuY3Rpb24ocyxpKXtyZXR1cm4gb1tpXX0pKTpzfX0sMzE3Njk6KHMsbyxpKT0+e3ZhciBhPWkoNTY0NDkpLHU9aSgyODU4NiksXz1pKDYxODAyKSx3PWkoMTMyMjIpO3MuZXhwb3J0cz1mdW5jdGlvbiBjYXN0UGF0aChzLG8pe3JldHVybiBhKHMpP3M6dShzLG8pP1tzXTpfKHcocykpfX0sMzE4MDA6cz0+e3ZhciBvPS9ccy87cy5leHBvcnRzPWZ1bmN0aW9uIHRyaW1tZWRFbmRJbmRleChzKXtmb3IodmFyIGk9cy5sZW5ndGg7aS0tJiZvLnRlc3Qocy5jaGFyQXQoaSkpOyk7cmV0dXJuIGl9fSwzMjA5NjoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoOTAxNjApO3MuZXhwb3J0cz1mdW5jdGlvbihzLG8pe3JldHVybiB2b2lkIDA9PT1zP2FyZ3VtZW50cy5sZW5ndGg8Mj8iIjpvOmEocyl9fSwzMjU2NzoocyxvLGkpPT57InVzZSBzdHJpY3QiO2koNzkzMDcpO3ZhciBhPWkoNjE3NDcpO3MuZXhwb3J0cz1hKCJGdW5jdGlvbiIsImJpbmQiKX0sMzI2Mjk6KHMsbyxpKT0+e3ZhciBhPWkoOTk5OSk7cy5leHBvcnRzPWZ1bmN0aW9uIGNsb25lKHMpe3JldHVybiBhKHMsNCl9fSwzMjgwNDoocyxvLGkpPT57dmFyIGE9aSg1NjExMCkoaSg5MzI1KSwiUHJvbWlzZSIpO3MuZXhwb3J0cz1hfSwzMjgyNzoocyxvLGkpPT57dmFyIGE9aSg1NjY5OCksdT1pKDgyODkwKSxfPWkoOTAzOTIpLHc9aSg5Mjg2MSkuQnVmZmVyLHg9bmV3IEFycmF5KDE2MCk7ZnVuY3Rpb24gU2hhMzg0KCl7dGhpcy5pbml0KCksdGhpcy5fdz14LF8uY2FsbCh0aGlzLDEyOCwxMTIpfWEoU2hhMzg0LHUpLFNoYTM4NC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9haD0zNDE4MDcwMzY1LHRoaXMuX2JoPTE2NTQyNzAyNTAsdGhpcy5fY2g9MjQzODUyOTM3MCx0aGlzLl9kaD0zNTU0NjIzNjAsdGhpcy5fZWg9MTczMTQwNTQxNSx0aGlzLl9maD0yMzk0MTgwMjMxLHRoaXMuX2doPTM2NzUwMDg1MjUsdGhpcy5faGg9MTIwMzA2MjgxMyx0aGlzLl9hbD0zMjM4MzcxMDMyLHRoaXMuX2JsPTkxNDE1MDY2Myx0aGlzLl9jbD04MTI3MDI5OTksdGhpcy5fZGw9NDE0NDkxMjY5Nyx0aGlzLl9lbD00MjkwNzc1ODU3LHRoaXMuX2ZsPTE3NTA2MDMwMjUsdGhpcy5fZ2w9MTY5NDA3NjgzOSx0aGlzLl9obD0zMjA0MDc1NDI4LHRoaXN9LFNoYTM4NC5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgcz13LmFsbG9jVW5zYWZlKDQ4KTtmdW5jdGlvbiB3cml0ZUludDY0QkUobyxpLGEpe3Mud3JpdGVJbnQzMkJFKG8sYSkscy53cml0ZUludDMyQkUoaSxhKzQpfXJldHVybiB3cml0ZUludDY0QkUodGhpcy5fYWgsdGhpcy5fYWwsMCksd3JpdGVJbnQ2NEJFKHRoaXMuX2JoLHRoaXMuX2JsLDgpLHdyaXRlSW50NjRCRSh0aGlzLl9jaCx0aGlzLl9jbCwxNiksd3JpdGVJbnQ2NEJFKHRoaXMuX2RoLHRoaXMuX2RsLDI0KSx3cml0ZUludDY0QkUodGhpcy5fZWgsdGhpcy5fZWwsMzIpLHdyaXRlSW50NjRCRSh0aGlzLl9maCx0aGlzLl9mbCw0MCksc30scy5leHBvcnRzPVNoYTM4NH0sMzI4NjU6KHMsbyxpKT0+e3ZhciBhPWkoMTk1NzApLHU9aSg1MTgxMSkoYSk7cy5leHBvcnRzPXV9LDMzODU1OihzLG8saSk9Pnt2YXIgYT1pKDk5OTkpLHU9aSgxNTM4OSk7cy5leHBvcnRzPWZ1bmN0aW9uIGl0ZXJhdGVlKHMpe3JldHVybiB1KCJmdW5jdGlvbiI9PXR5cGVvZiBzP3M6YShzLDEpKX19LDM0MDM1OihzLG8saSk9Pntjb25zdCBhPWkoMzExMCksdT1pKDg2ODA0KTtvLmckPWEsby5LZXlWYWx1ZVBhaXI9aSg1NTk3Myksby5HNj11LkFycmF5U2xpY2Usby5vdD11Lk9iamVjdFNsaWNlLG8uSGc9dS5FbGVtZW50LG8uT209dS5TdHJpbmdFbGVtZW50LG8ua1Q9dS5OdW1iZXJFbGVtZW50LG8uYmQ9dS5Cb29sZWFuRWxlbWVudCxvLk9zPXUuTnVsbEVsZW1lbnQsby53RT11LkFycmF5RWxlbWVudCxvLlNoPXUuT2JqZWN0RWxlbWVudCxvLlByPXUuTWVtYmVyRWxlbWVudCxvLnNJPXUuUmVmRWxlbWVudCxvLkZ0PXUuTGlua0VsZW1lbnQsby5lPXUucmVmcmFjdCxpKDg1MTA1KSxpKDc1MTQ3KX0sMzQwODQ6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDYyMjUwKSx1PWkoNDYyODUpLF89aSg3OTE5Mik7cy5leHBvcnRzPWZ1bmN0aW9uKHMsbyxpKXt2YXIgdyx4O3JldHVybiBfJiZhKHc9by5jb25zdHJ1Y3RvcikmJnchPT1pJiZ1KHg9dy5wcm90b3R5cGUpJiZ4IT09aS5wcm90b3R5cGUmJl8ocyx4KSxzfX0sMzQ4NDA6KHMsbyxpKT0+e3ZhciBhPSJvYmplY3QiPT10eXBlb2YgaS5nJiZpLmcmJmkuZy5PYmplY3Q9PT1PYmplY3QmJmkuZztzLmV4cG9ydHM9YX0sMzQ4NDk6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDY1NDgyKSx1PU1hdGgubWF4LF89TWF0aC5taW47cy5leHBvcnRzPWZ1bmN0aW9uKHMsbyl7dmFyIGk9YShzKTtyZXR1cm4gaTwwP3UoaStvLDApOl8oaSxvKX19LDM0OTMyOnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gYXJyYXlNYXAocyxvKXtmb3IodmFyIGk9LTEsYT1udWxsPT1zPzA6cy5sZW5ndGgsdT1BcnJheShhKTsrK2k8YTspdVtpXT1vKHNbaV0saSxzKTtyZXR1cm4gdX19LDM1MzQ0OnM9PntmdW5jdGlvbiBjb25jYXQoLi4ucyl7cmV0dXJuIHMubWFwKChzPT5mdW5jdGlvbiBzb3VyY2Uocyl7cmV0dXJuIHM/InN0cmluZyI9PXR5cGVvZiBzP3M6cy5zb3VyY2U6bnVsbH0ocykpKS5qb2luKCIiKX1zLmV4cG9ydHM9ZnVuY3Rpb24gYmFzaChzKXtjb25zdCBvPXt9LGk9e2JlZ2luOi9cJFx7LyxlbmQ6L1x9Lyxjb250YWluczpbInNlbGYiLHtiZWdpbjovOi0vLGNvbnRhaW5zOltvXX1dfTtPYmplY3QuYXNzaWduKG8se2NsYXNzTmFtZToidmFyaWFibGUiLHZhcmlhbnRzOlt7YmVnaW46Y29uY2F0KC9cJFtcd1xkI0BdW1x3XGRfXSovLCIoPyFbXFx3XFxkXSkoPyFbJF0pIil9LGldfSk7Y29uc3QgYT17Y2xhc3NOYW1lOiJzdWJzdCIsYmVnaW46L1wkXCgvLGVuZDovXCkvLGNvbnRhaW5zOltzLkJBQ0tTTEFTSF9FU0NBUEVdfSx1PXtiZWdpbjovPDwtP1xzKig/PVx3KykvLHN0YXJ0czp7Y29udGFpbnM6W3MuRU5EX1NBTUVfQVNfQkVHSU4oe2JlZ2luOi8oXHcrKS8sZW5kOi8oXHcrKS8sY2xhc3NOYW1lOiJzdHJpbmcifSldfX0sXz17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi8iLyxlbmQ6LyIvLGNvbnRhaW5zOltzLkJBQ0tTTEFTSF9FU0NBUEUsbyxhXX07YS5jb250YWlucy5wdXNoKF8pO2NvbnN0IHc9e2JlZ2luOi9cJFwoXCgvLGVuZDovXClcKS8sY29udGFpbnM6W3tiZWdpbjovXGQrI1swLTlhLWZdKy8sY2xhc3NOYW1lOiJudW1iZXIifSxzLk5VTUJFUl9NT0RFLG9dfSx4PXMuU0hFQkFORyh7YmluYXJ5OmAoJHtbImZpc2giLCJiYXNoIiwienNoIiwic2giLCJjc2giLCJrc2giLCJ0Y3NoIiwiZGFzaCIsInNjc2giXS5qb2luKCJ8Iil9KWAscmVsZXZhbmNlOjEwfSksQz17Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW46L1x3W1x3XGRfXSpccypcKFxzKlwpXHMqXHsvLHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOltzLmluaGVyaXQocy5USVRMRV9NT0RFLHtiZWdpbjovXHdbXHdcZF9dKi99KV0scmVsZXZhbmNlOjB9O3JldHVybntuYW1lOiJCYXNoIixhbGlhc2VzOlsic2giLCJ6c2giXSxrZXl3b3Jkczp7JHBhdHRlcm46L1xiW2Etei5fLV0rXGIvLGtleXdvcmQ6ImlmIHRoZW4gZWxzZSBlbGlmIGZpIGZvciB3aGlsZSBpbiBkbyBkb25lIGNhc2UgZXNhYyBmdW5jdGlvbiIsbGl0ZXJhbDoidHJ1ZSBmYWxzZSIsYnVpbHRfaW46ImJyZWFrIGNkIGNvbnRpbnVlIGV2YWwgZXhlYyBleGl0IGV4cG9ydCBnZXRvcHRzIGhhc2ggcHdkIHJlYWRvbmx5IHJldHVybiBzaGlmdCB0ZXN0IHRpbWVzIHRyYXAgdW1hc2sgdW5zZXQgYWxpYXMgYmluZCBidWlsdGluIGNhbGxlciBjb21tYW5kIGRlY2xhcmUgZWNobyBlbmFibGUgaGVscCBsZXQgbG9jYWwgbG9nb3V0IG1hcGZpbGUgcHJpbnRmIHJlYWQgcmVhZGFycmF5IHNvdXJjZSB0eXBlIHR5cGVzZXQgdWxpbWl0IHVuYWxpYXMgc2V0IHNob3B0IGF1dG9sb2FkIGJnIGJpbmRrZXkgYnllIGNhcCBjaGRpciBjbG9uZSBjb21wYXJndW1lbnRzIGNvbXBjYWxsIGNvbXBjdGwgY29tcGRlc2NyaWJlIGNvbXBmaWxlcyBjb21wZ3JvdXBzIGNvbXBxdW90ZSBjb21wdGFncyBjb21wdHJ5IGNvbXB2YWx1ZXMgZGlycyBkaXNhYmxlIGRpc293biBlY2hvdGMgZWNob3RpIGVtdWxhdGUgZmMgZmcgZmxvYXQgZnVuY3Rpb25zIGdldGNhcCBnZXRsbiBoaXN0b3J5IGludGVnZXIgam9icyBraWxsIGxpbWl0IGxvZyBub2dsb2IgcG9wZCBwcmludCBwdXNoZCBwdXNobG4gcmVoYXNoIHNjaGVkIHNldGNhcCBzZXRvcHQgc3RhdCBzdXNwZW5kIHR0eWN0bCB1bmZ1bmN0aW9uIHVuaGFzaCB1bmxpbWl0IHVuc2V0b3B0IHZhcmVkIHdhaXQgd2hlbmNlIHdoZXJlIHdoaWNoIHpjb21waWxlIHpmb3JtYXQgemZ0cCB6bGUgem1vZGxvYWQgenBhcnNlb3B0cyB6cHJvZiB6cHR5IHpyZWdleHBhcnNlIHpzb2NrZXQgenN0eWxlIHp0Y3AifSxjb250YWluczpbeCxzLlNIRUJBTkcoKSxDLHcscy5IQVNIX0NPTU1FTlRfTU9ERSx1LF8se2NsYXNzTmFtZToiIixiZWdpbjovXFwiL30se2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjovJy8sZW5kOi8nL30sb119fX0sMzU1Mjk6KHMsbyxpKT0+e3ZhciBhPWkoMzkzNDQpLHU9aSgyODg3OSksXz1pKDU1NTI3KTtzLmV4cG9ydHM9ZnVuY3Rpb24gaW5pdENsb25lT2JqZWN0KHMpe3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiBzLmNvbnN0cnVjdG9yfHxfKHMpP3t9OmEodShzKSl9fSwzNTc0OToocyxvLGkpPT57dmFyIGE9aSg4MTA0Mik7cy5leHBvcnRzPWZ1bmN0aW9uIGhhc2hTZXQocyxvKXt2YXIgaT10aGlzLl9fZGF0YV9fO3JldHVybiB0aGlzLnNpemUrPXRoaXMuaGFzKHMpPzA6MSxpW3NdPWEmJnZvaWQgMD09PW8/Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iOm8sdGhpc319LDM1OTcwOihzLG8saSk9Pnt2YXIgYT1pKDgzMTIwKTtzLmV4cG9ydHM9ZnVuY3Rpb24gZmxhdHRlbihzKXtyZXR1cm4obnVsbD09cz8wOnMubGVuZ3RoKT9hKHMsMSk6W119fSwzNjEyODoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNzM3NiksdT1pKDQ1OTUxKSxfPWkoMjUzMiksdz0iX19jb3JlLWpzX3NoYXJlZF9fIix4PXMuZXhwb3J0cz11W3ddfHxfKHcse30pOyh4LnZlcnNpb25zfHwoeC52ZXJzaW9ucz1bXSkpLnB1c2goe3ZlcnNpb246IjMuNDAuMCIsbW9kZTphPyJwdXJlIjoiZ2xvYmFsIixjb3B5cmlnaHQ6IsKpIDIwMTQtMjAyNSBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSIsbGljZW5zZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvYmxvYi92My40MC4wL0xJQ0VOU0UiLHNvdXJjZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMifSl9LDM2MzA2OnM9Pnt2YXIgbz0iX19sb2Rhc2hfcGxhY2Vob2xkZXJfXyI7cy5leHBvcnRzPWZ1bmN0aW9uIHJlcGxhY2VIb2xkZXJzKHMsaSl7Zm9yKHZhciBhPS0xLHU9cy5sZW5ndGgsXz0wLHc9W107KythPHU7KXt2YXIgeD1zW2FdO3ghPT1pJiZ4IT09b3x8KHNbYV09byx3W18rK109YSl9cmV0dXJuIHd9fSwzNjM3MToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMTEwOTEpLHU9aSg4NTU4MiksXz1pKDc2MDI0KSx3PWkoOTg4MjgpLHg9aSgxOTM1OCksQz0iQWdncmVnYXRlRXJyb3IiLGo9dShDKSxMPSF3KChmdW5jdGlvbigpe3JldHVybiAxIT09aihbMV0pLmVycm9yc1swXX0pKSYmdygoZnVuY3Rpb24oKXtyZXR1cm4gNyE9PWooWzFdLEMse2NhdXNlOjd9KS5jYXVzZX0pKTthKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsYXJpdHk6Mixmb3JjZWQ6TH0se0FnZ3JlZ2F0ZUVycm9yOngoQywoZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uIEFnZ3JlZ2F0ZUVycm9yKG8saSl7cmV0dXJuIF8ocyx0aGlzLGFyZ3VtZW50cyl9fSksTCwhMCl9KX0sMzY2MjQ6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDQ2Mjg1KSx1PVN0cmluZyxfPVR5cGVFcnJvcjtzLmV4cG9ydHM9ZnVuY3Rpb24ocyl7aWYoYShzKSlyZXR1cm4gczt0aHJvdyBuZXcgXyh1KHMpKyIgaXMgbm90IGFuIG9iamVjdCIpfX0sMzY4MDA6KHMsbyxpKT0+e3ZhciBhPWkoNzUyODgpLHU9aSg2NDg5NCksXz1pKDMwMzYxKSx3PWkoMjM4MDUpO3MuZXhwb3J0cz1mdW5jdGlvbiBpc0l0ZXJhdGVlQ2FsbChzLG8saSl7aWYoIXcoaSkpcmV0dXJuITE7dmFyIHg9dHlwZW9mIG87cmV0dXJuISEoIm51bWJlciI9PXg/dShpKSYmXyhvLGkubGVuZ3RoKToic3RyaW5nIj09eCYmbyBpbiBpKSYmYShpW29dLHMpfX0sMzY4MzM6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDM5NDQ3KSx1PWkoNDk3MjQpLF89RnVuY3Rpb24ucHJvdG90eXBlLHc9YSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcix4PXUoXywibmFtZSIpLEM9eCYmInNvbWV0aGluZyI9PT1mdW5jdGlvbiBzb21ldGhpbmcoKXt9Lm5hbWUsaj14JiYoIWF8fGEmJncoXywibmFtZSIpLmNvbmZpZ3VyYWJsZSk7cy5leHBvcnRzPXtFWElTVFM6eCxQUk9QRVI6QyxDT05GSUdVUkFCTEU6an19LDM3MDA3OnM9PnsidXNlIHN0cmljdCI7dmFyIG8saT0ib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3Q/UmVmbGVjdDpudWxsLGE9aSYmImZ1bmN0aW9uIj09dHlwZW9mIGkuYXBwbHk/aS5hcHBseTpmdW5jdGlvbiBSZWZsZWN0QXBwbHkocyxvLGkpe3JldHVybiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChzLG8saSl9O289aSYmImZ1bmN0aW9uIj09dHlwZW9mIGkub3duS2V5cz9pLm93bktleXM6T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz9mdW5jdGlvbiBSZWZsZWN0T3duS2V5cyhzKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMocykuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocykpfTpmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyhzKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMocyl9O3ZhciB1PU51bWJlci5pc05hTnx8ZnVuY3Rpb24gTnVtYmVySXNOYU4ocyl7cmV0dXJuIHMhPXN9O2Z1bmN0aW9uIEV2ZW50RW1pdHRlcigpe0V2ZW50RW1pdHRlci5pbml0LmNhbGwodGhpcyl9cy5leHBvcnRzPUV2ZW50RW1pdHRlcixzLmV4cG9ydHMub25jZT1mdW5jdGlvbiBvbmNlKHMsbyl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihpLGEpe2Z1bmN0aW9uIGVycm9yTGlzdGVuZXIoaSl7cy5yZW1vdmVMaXN0ZW5lcihvLHJlc29sdmVyKSxhKGkpfWZ1bmN0aW9uIHJlc29sdmVyKCl7ImZ1bmN0aW9uIj09dHlwZW9mIHMucmVtb3ZlTGlzdGVuZXImJnMucmVtb3ZlTGlzdGVuZXIoImVycm9yIixlcnJvckxpc3RlbmVyKSxpKFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSl9ZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKHMsbyxyZXNvbHZlcix7b25jZTohMH0pLCJlcnJvciIhPT1vJiZmdW5jdGlvbiBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihzLG8saSl7ImZ1bmN0aW9uIj09dHlwZW9mIHMub24mJmV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihzLCJlcnJvciIsbyxpKX0ocyxlcnJvckxpc3RlbmVyLHtvbmNlOiEwfSl9KSl9LEV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXI9RXZlbnRFbWl0dGVyLEV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50cz12b2lkIDAsRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fZXZlbnRzQ291bnQ9MCxFdmVudEVtaXR0ZXIucHJvdG90eXBlLl9tYXhMaXN0ZW5lcnM9dm9pZCAwO3ZhciBfPTEwO2Z1bmN0aW9uIGNoZWNrTGlzdGVuZXIocyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHMpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJsaXN0ZW5lciIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIHMpfWZ1bmN0aW9uIF9nZXRNYXhMaXN0ZW5lcnMocyl7cmV0dXJuIHZvaWQgMD09PXMuX21heExpc3RlbmVycz9FdmVudEVtaXR0ZXIuZGVmYXVsdE1heExpc3RlbmVyczpzLl9tYXhMaXN0ZW5lcnN9ZnVuY3Rpb24gX2FkZExpc3RlbmVyKHMsbyxpLGEpe3ZhciB1LF8sdztpZihjaGVja0xpc3RlbmVyKGkpLHZvaWQgMD09PShfPXMuX2V2ZW50cyk/KF89cy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCkscy5fZXZlbnRzQ291bnQ9MCk6KHZvaWQgMCE9PV8ubmV3TGlzdGVuZXImJihzLmVtaXQoIm5ld0xpc3RlbmVyIixvLGkubGlzdGVuZXI/aS5saXN0ZW5lcjppKSxfPXMuX2V2ZW50cyksdz1fW29dKSx2b2lkIDA9PT13KXc9X1tvXT1pLCsrcy5fZXZlbnRzQ291bnQ7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2Ygdz93PV9bb109YT9baSx3XTpbdyxpXTphP3cudW5zaGlmdChpKTp3LnB1c2goaSksKHU9X2dldE1heExpc3RlbmVycyhzKSk+MCYmdy5sZW5ndGg+dSYmIXcud2FybmVkKXt3Lndhcm5lZD0hMDt2YXIgeD1uZXcgRXJyb3IoIlBvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gIit3Lmxlbmd0aCsiICIrU3RyaW5nKG8pKyIgbGlzdGVuZXJzIGFkZGVkLiBVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byBpbmNyZWFzZSBsaW1pdCIpO3gubmFtZT0iTWF4TGlzdGVuZXJzRXhjZWVkZWRXYXJuaW5nIix4LmVtaXR0ZXI9cyx4LnR5cGU9byx4LmNvdW50PXcubGVuZ3RoLGZ1bmN0aW9uIFByb2Nlc3NFbWl0V2FybmluZyhzKXtjb25zb2xlJiZjb25zb2xlLndhcm4mJmNvbnNvbGUud2FybihzKX0oeCl9cmV0dXJuIHN9ZnVuY3Rpb24gb25jZVdyYXBwZXIoKXtpZighdGhpcy5maXJlZClyZXR1cm4gdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLHRoaXMud3JhcEZuKSx0aGlzLmZpcmVkPSEwLDA9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk6dGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCxhcmd1bWVudHMpfWZ1bmN0aW9uIF9vbmNlV3JhcChzLG8saSl7dmFyIGE9e2ZpcmVkOiExLHdyYXBGbjp2b2lkIDAsdGFyZ2V0OnMsdHlwZTpvLGxpc3RlbmVyOml9LHU9b25jZVdyYXBwZXIuYmluZChhKTtyZXR1cm4gdS5saXN0ZW5lcj1pLGEud3JhcEZuPXUsdX1mdW5jdGlvbiBfbGlzdGVuZXJzKHMsbyxpKXt2YXIgYT1zLl9ldmVudHM7aWYodm9pZCAwPT09YSlyZXR1cm5bXTt2YXIgdT1hW29dO3JldHVybiB2b2lkIDA9PT11P1tdOiJmdW5jdGlvbiI9PXR5cGVvZiB1P2k/W3UubGlzdGVuZXJ8fHVdOlt1XTppP2Z1bmN0aW9uIHVud3JhcExpc3RlbmVycyhzKXtmb3IodmFyIG89bmV3IEFycmF5KHMubGVuZ3RoKSxpPTA7aTxvLmxlbmd0aDsrK2kpb1tpXT1zW2ldLmxpc3RlbmVyfHxzW2ldO3JldHVybiBvfSh1KTphcnJheUNsb25lKHUsdS5sZW5ndGgpfWZ1bmN0aW9uIGxpc3RlbmVyQ291bnQocyl7dmFyIG89dGhpcy5fZXZlbnRzO2lmKHZvaWQgMCE9PW8pe3ZhciBpPW9bc107aWYoImZ1bmN0aW9uIj09dHlwZW9mIGkpcmV0dXJuIDE7aWYodm9pZCAwIT09aSlyZXR1cm4gaS5sZW5ndGh9cmV0dXJuIDB9ZnVuY3Rpb24gYXJyYXlDbG9uZShzLG8pe2Zvcih2YXIgaT1uZXcgQXJyYXkobyksYT0wO2E8bzsrK2EpaVthXT1zW2FdO3JldHVybiBpfWZ1bmN0aW9uIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihzLG8saSxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2Ygcy5vbilhLm9uY2U/cy5vbmNlKG8saSk6cy5vbihvLGkpO2Vsc2V7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHMuYWRkRXZlbnRMaXN0ZW5lcil0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgImVtaXR0ZXIiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBFdmVudEVtaXR0ZXIuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2Ygcyk7cy5hZGRFdmVudExpc3RlbmVyKG8sKGZ1bmN0aW9uIHdyYXBMaXN0ZW5lcih1KXthLm9uY2UmJnMucmVtb3ZlRXZlbnRMaXN0ZW5lcihvLHdyYXBMaXN0ZW5lciksaSh1KX0pKX19T2JqZWN0LmRlZmluZVByb3BlcnR5KEV2ZW50RW1pdHRlciwiZGVmYXVsdE1heExpc3RlbmVycyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIF99LHNldDpmdW5jdGlvbihzKXtpZigibnVtYmVyIiE9dHlwZW9mIHN8fHM8MHx8dShzKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mICJkZWZhdWx0TWF4TGlzdGVuZXJzIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnK3MrIi4iKTtfPXN9fSksRXZlbnRFbWl0dGVyLmluaXQ9ZnVuY3Rpb24oKXt2b2lkIDAhPT10aGlzLl9ldmVudHMmJnRoaXMuX2V2ZW50cyE9PU9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fZXZlbnRzfHwodGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5fZXZlbnRzQ291bnQ9MCksdGhpcy5fbWF4TGlzdGVuZXJzPXRoaXMuX21heExpc3RlbmVyc3x8dm9pZCAwfSxFdmVudEVtaXR0ZXIucHJvdG90eXBlLnNldE1heExpc3RlbmVycz1mdW5jdGlvbiBzZXRNYXhMaXN0ZW5lcnMocyl7aWYoIm51bWJlciIhPXR5cGVvZiBzfHxzPDB8fHUocykpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiAibiIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJytzKyIuIik7cmV0dXJuIHRoaXMuX21heExpc3RlbmVycz1zLHRoaXN9LEV2ZW50RW1pdHRlci5wcm90b3R5cGUuZ2V0TWF4TGlzdGVuZXJzPWZ1bmN0aW9uIGdldE1heExpc3RlbmVycygpe3JldHVybiBfZ2V0TWF4TGlzdGVuZXJzKHRoaXMpfSxFdmVudEVtaXR0ZXIucHJvdG90eXBlLmVtaXQ9ZnVuY3Rpb24gZW1pdChzKXtmb3IodmFyIG89W10saT0xO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspby5wdXNoKGFyZ3VtZW50c1tpXSk7dmFyIHU9ImVycm9yIj09PXMsXz10aGlzLl9ldmVudHM7aWYodm9pZCAwIT09Xyl1PXUmJnZvaWQgMD09PV8uZXJyb3I7ZWxzZSBpZighdSlyZXR1cm4hMTtpZih1KXt2YXIgdztpZihvLmxlbmd0aD4wJiYodz1vWzBdKSx3IGluc3RhbmNlb2YgRXJyb3IpdGhyb3cgdzt2YXIgeD1uZXcgRXJyb3IoIlVuaGFuZGxlZCBlcnJvci4iKyh3PyIgKCIrdy5tZXNzYWdlKyIpIjoiIikpO3Rocm93IHguY29udGV4dD13LHh9dmFyIEM9X1tzXTtpZih2b2lkIDA9PT1DKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBDKWEoQyx0aGlzLG8pO2Vsc2V7dmFyIGo9Qy5sZW5ndGgsTD1hcnJheUNsb25lKEMsaik7Zm9yKGk9MDtpPGo7KytpKWEoTFtpXSx0aGlzLG8pfXJldHVybiEwfSxFdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyPWZ1bmN0aW9uIGFkZExpc3RlbmVyKHMsbyl7cmV0dXJuIF9hZGRMaXN0ZW5lcih0aGlzLHMsbywhMSl9LEV2ZW50RW1pdHRlci5wcm90b3R5cGUub249RXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lcixFdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRMaXN0ZW5lcj1mdW5jdGlvbiBwcmVwZW5kTGlzdGVuZXIocyxvKXtyZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMscyxvLCEwKX0sRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbmNlPWZ1bmN0aW9uIG9uY2UocyxvKXtyZXR1cm4gY2hlY2tMaXN0ZW5lcihvKSx0aGlzLm9uKHMsX29uY2VXcmFwKHRoaXMscyxvKSksdGhpc30sRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kT25jZUxpc3RlbmVyPWZ1bmN0aW9uIHByZXBlbmRPbmNlTGlzdGVuZXIocyxvKXtyZXR1cm4gY2hlY2tMaXN0ZW5lcihvKSx0aGlzLnByZXBlbmRMaXN0ZW5lcihzLF9vbmNlV3JhcCh0aGlzLHMsbykpLHRoaXN9LEV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXIocyxvKXt2YXIgaSxhLHUsXyx3O2lmKGNoZWNrTGlzdGVuZXIobyksdm9pZCAwPT09KGE9dGhpcy5fZXZlbnRzKSlyZXR1cm4gdGhpcztpZih2b2lkIDA9PT0oaT1hW3NdKSlyZXR1cm4gdGhpcztpZihpPT09b3x8aS5saXN0ZW5lcj09PW8pMD09LS10aGlzLl9ldmVudHNDb3VudD90aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKTooZGVsZXRlIGFbc10sYS5yZW1vdmVMaXN0ZW5lciYmdGhpcy5lbWl0KCJyZW1vdmVMaXN0ZW5lciIscyxpLmxpc3RlbmVyfHxvKSk7ZWxzZSBpZigiZnVuY3Rpb24iIT10eXBlb2YgaSl7Zm9yKHU9LTEsXz1pLmxlbmd0aC0xO18+PTA7Xy0tKWlmKGlbX109PT1vfHxpW19dLmxpc3RlbmVyPT09byl7dz1pW19dLmxpc3RlbmVyLHU9XzticmVha31pZih1PDApcmV0dXJuIHRoaXM7MD09PXU/aS5zaGlmdCgpOmZ1bmN0aW9uIHNwbGljZU9uZShzLG8pe2Zvcig7bysxPHMubGVuZ3RoO28rKylzW29dPXNbbysxXTtzLnBvcCgpfShpLHUpLDE9PT1pLmxlbmd0aCYmKGFbc109aVswXSksdm9pZCAwIT09YS5yZW1vdmVMaXN0ZW5lciYmdGhpcy5lbWl0KCJyZW1vdmVMaXN0ZW5lciIscyx3fHxvKX1yZXR1cm4gdGhpc30sRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vZmY9RXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcixFdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1mdW5jdGlvbiByZW1vdmVBbGxMaXN0ZW5lcnMocyl7dmFyIG8saSxhO2lmKHZvaWQgMD09PShpPXRoaXMuX2V2ZW50cykpcmV0dXJuIHRoaXM7aWYodm9pZCAwPT09aS5yZW1vdmVMaXN0ZW5lcilyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2V2ZW50c0NvdW50PTApOnZvaWQgMCE9PWlbc10mJigwPT0tLXRoaXMuX2V2ZW50c0NvdW50P3RoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpOmRlbGV0ZSBpW3NdKSx0aGlzO2lmKDA9PT1hcmd1bWVudHMubGVuZ3RoKXt2YXIgdSxfPU9iamVjdC5rZXlzKGkpO2ZvcihhPTA7YTxfLmxlbmd0aDsrK2EpInJlbW92ZUxpc3RlbmVyIiE9PSh1PV9bYV0pJiZ0aGlzLnJlbW92ZUFsbExpc3RlbmVycyh1KTtyZXR1cm4gdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoInJlbW92ZUxpc3RlbmVyIiksdGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5fZXZlbnRzQ291bnQ9MCx0aGlzfWlmKCJmdW5jdGlvbiI9PXR5cGVvZihvPWlbc10pKXRoaXMucmVtb3ZlTGlzdGVuZXIocyxvKTtlbHNlIGlmKHZvaWQgMCE9PW8pZm9yKGE9by5sZW5ndGgtMTthPj0wO2EtLSl0aGlzLnJlbW92ZUxpc3RlbmVyKHMsb1thXSk7cmV0dXJuIHRoaXN9LEV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJzPWZ1bmN0aW9uIGxpc3RlbmVycyhzKXtyZXR1cm4gX2xpc3RlbmVycyh0aGlzLHMsITApfSxFdmVudEVtaXR0ZXIucHJvdG90eXBlLnJhd0xpc3RlbmVycz1mdW5jdGlvbiByYXdMaXN0ZW5lcnMocyl7cmV0dXJuIF9saXN0ZW5lcnModGhpcyxzLCExKX0sRXZlbnRFbWl0dGVyLmxpc3RlbmVyQ291bnQ9ZnVuY3Rpb24ocyxvKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygcy5saXN0ZW5lckNvdW50P3MubGlzdGVuZXJDb3VudChvKTpsaXN0ZW5lckNvdW50LmNhbGwocyxvKX0sRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lckNvdW50PWxpc3RlbmVyQ291bnQsRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5ldmVudE5hbWVzPWZ1bmN0aW9uIGV2ZW50TmFtZXMoKXtyZXR1cm4gdGhpcy5fZXZlbnRzQ291bnQ+MD9vKHRoaXMuX2V2ZW50cyk6W119fSwzNzE2NzoocyxvLGkpPT57dmFyIGE9aSg0OTAxKSx1PWkoMjczMDEpLF89aSg4NjAwOSksdz1fJiZfLmlzVHlwZWRBcnJheSx4PXc/dSh3KTphO3MuZXhwb3J0cz14fSwzNzIxNzoocyxvLGkpPT57dmFyIGE9aSg4MDA3OSksdT1pKDUxNDIwKSxfPWkoOTA5MzgpLHc9aSg2MzYwNSkseD1pKDI5ODE3KSxDPWkoODA5NDUpO2Z1bmN0aW9uIFN0YWNrKHMpe3ZhciBvPXRoaXMuX19kYXRhX189bmV3IGEocyk7dGhpcy5zaXplPW8uc2l6ZX1TdGFjay5wcm90b3R5cGUuY2xlYXI9dSxTdGFjay5wcm90b3R5cGUuZGVsZXRlPV8sU3RhY2sucHJvdG90eXBlLmdldD13LFN0YWNrLnByb3RvdHlwZS5oYXM9eCxTdGFjay5wcm90b3R5cGUuc2V0PUMscy5leHBvcnRzPVN0YWNrfSwzNzI0MToocyxvLGkpPT57dmFyIGE9aSg3MDY5NSksdT1pKDcyOTAzKSxfPWkoNjQ4OTQpO3MuZXhwb3J0cz1mdW5jdGlvbiBrZXlzSW4ocyl7cmV0dXJuIF8ocyk/YShzLCEwKTp1KHMpfX0sMzcyNTc6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0IjtpKDk2NjA1KSxpKDY0NTAyKSxpKDM2MzcxKSxpKDk5MzYzKSxpKDcwNTcpO3ZhciBhPWkoOTIwNDYpO3MuZXhwb3J0cz1hLkFnZ3JlZ2F0ZUVycm9yfSwzNzMzNDpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIGNvbnN0YW50KHMpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBzfX19LDM3MzgxOihzLG8saSk9Pnt2YXIgYT1pKDQ4MTUyKSx1PWkoNjM5NTApLF89YT9mdW5jdGlvbihzKXtyZXR1cm4gYS5nZXQocyl9OnU7cy5leHBvcnRzPV99LDM3NDcxOihzLG8saSk9Pnt2YXIgYT1pKDkxNTk2KSx1PWkoNTMzMjApLF89aSg1ODUyMyksdz1pKDgyODE5KSx4PWkoMTgwNzMpLEM9aSgxMTI4Nyksaj1pKDY4Mjk0KSxMPWkoMzYzMDYpLEI9aSg5MzI1KTtzLmV4cG9ydHM9ZnVuY3Rpb24gY3JlYXRlSHlicmlkKHMsbyxpLCQsVixVLHosWSxaLGVlKXt2YXIgaWU9MTI4Jm8sYWU9MSZvLGNlPTImbyxsZT0yNCZvLHBlPTUxMiZvLGRlPWNlP3ZvaWQgMDp3KHMpO3JldHVybiBmdW5jdGlvbiB3cmFwcGVyKCl7Zm9yKHZhciBmZT1hcmd1bWVudHMubGVuZ3RoLHllPUFycmF5KGZlKSxiZT1mZTtiZS0tOyl5ZVtiZV09YXJndW1lbnRzW2JlXTtpZihsZSl2YXIgX2U9Qyh3cmFwcGVyKSxTZT1fKHllLF9lKTtpZigkJiYoeWU9YSh5ZSwkLFYsbGUpKSxVJiYoeWU9dSh5ZSxVLHosbGUpKSxmZS09U2UsbGUmJmZlPGVlKXt2YXIgd2U9TCh5ZSxfZSk7cmV0dXJuIHgocyxvLGNyZWF0ZUh5YnJpZCx3cmFwcGVyLnBsYWNlaG9sZGVyLGkseWUsd2UsWSxaLGVlLWZlKX12YXIgeGU9YWU/aTp0aGlzLFBlPWNlP3hlW3NdOnM7cmV0dXJuIGZlPXllLmxlbmd0aCxZP3llPWooeWUsWSk6cGUmJmZlPjEmJnllLnJldmVyc2UoKSxpZSYmWjxmZSYmKHllLmxlbmd0aD1aKSx0aGlzJiZ0aGlzIT09QiYmdGhpcyBpbnN0YW5jZW9mIHdyYXBwZXImJihQZT1kZXx8dyhQZSkpLFBlLmFwcGx5KHhlLHllKX19fSwzNzgxMjoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNzYyNjQpLHU9aSg5Mzc0MiksXz1hKCJpdGVyYXRvciIpLHc9QXJyYXkucHJvdG90eXBlO3MuZXhwb3J0cz1mdW5jdGlvbihzKXtyZXR1cm4gdm9pZCAwIT09cyYmKHUuQXJyYXk9PT1zfHx3W19dPT09cyl9fSwzNzgyODoocyxvLGkpPT57dmFyIGE9aSg5MzI1KS5VaW50OEFycmF5O3MuZXhwb3J0cz1hfSwzODIyMToocyxvLGkpPT57dmFyIGE9aSgyMzgwNSksdT1pKDEwMTI0KSxfPWkoOTkzNzQpLHc9TWF0aC5tYXgseD1NYXRoLm1pbjtzLmV4cG9ydHM9ZnVuY3Rpb24gZGVib3VuY2UocyxvLGkpe3ZhciBDLGosTCxCLCQsVixVPTAsej0hMSxZPSExLFo9ITA7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHMpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBmdW5jdGlvbiIpO2Z1bmN0aW9uIGludm9rZUZ1bmMobyl7dmFyIGk9QyxhPWo7cmV0dXJuIEM9aj12b2lkIDAsVT1vLEI9cy5hcHBseShhLGkpfWZ1bmN0aW9uIHNob3VsZEludm9rZShzKXt2YXIgaT1zLVY7cmV0dXJuIHZvaWQgMD09PVZ8fGk+PW98fGk8MHx8WSYmcy1VPj1MfWZ1bmN0aW9uIHRpbWVyRXhwaXJlZCgpe3ZhciBzPXUoKTtpZihzaG91bGRJbnZva2UocykpcmV0dXJuIHRyYWlsaW5nRWRnZShzKTskPXNldFRpbWVvdXQodGltZXJFeHBpcmVkLGZ1bmN0aW9uIHJlbWFpbmluZ1dhaXQocyl7dmFyIGk9by0ocy1WKTtyZXR1cm4gWT94KGksTC0ocy1VKSk6aX0ocykpfWZ1bmN0aW9uIHRyYWlsaW5nRWRnZShzKXtyZXR1cm4gJD12b2lkIDAsWiYmQz9pbnZva2VGdW5jKHMpOihDPWo9dm9pZCAwLEIpfWZ1bmN0aW9uIGRlYm91bmNlZCgpe3ZhciBzPXUoKSxpPXNob3VsZEludm9rZShzKTtpZihDPWFyZ3VtZW50cyxqPXRoaXMsVj1zLGkpe2lmKHZvaWQgMD09PSQpcmV0dXJuIGZ1bmN0aW9uIGxlYWRpbmdFZGdlKHMpe3JldHVybiBVPXMsJD1zZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCxvKSx6P2ludm9rZUZ1bmMocyk6Qn0oVik7aWYoWSlyZXR1cm4gY2xlYXJUaW1lb3V0KCQpLCQ9c2V0VGltZW91dCh0aW1lckV4cGlyZWQsbyksaW52b2tlRnVuYyhWKX1yZXR1cm4gdm9pZCAwPT09JCYmKCQ9c2V0VGltZW91dCh0aW1lckV4cGlyZWQsbykpLEJ9cmV0dXJuIG89XyhvKXx8MCxhKGkpJiYoej0hIWkubGVhZGluZyxMPShZPSJtYXhXYWl0ImluIGkpP3coXyhpLm1heFdhaXQpfHwwLG8pOkwsWj0idHJhaWxpbmciaW4gaT8hIWkudHJhaWxpbmc6WiksZGVib3VuY2VkLmNhbmNlbD1mdW5jdGlvbiBjYW5jZWwoKXt2b2lkIDAhPT0kJiZjbGVhclRpbWVvdXQoJCksVT0wLEM9Vj1qPSQ9dm9pZCAwfSxkZWJvdW5jZWQuZmx1c2g9ZnVuY3Rpb24gZmx1c2goKXtyZXR1cm4gdm9pZCAwPT09JD9COnRyYWlsaW5nRWRnZSh1KCkpfSxkZWJvdW5jZWR9fSwzODMyOToocyxvLGkpPT57dmFyIGE9aSg2NDg5NCk7cy5leHBvcnRzPWZ1bmN0aW9uIGNyZWF0ZUJhc2VFYWNoKHMsbyl7cmV0dXJuIGZ1bmN0aW9uKGksdSl7aWYobnVsbD09aSlyZXR1cm4gaTtpZighYShpKSlyZXR1cm4gcyhpLHUpO2Zvcih2YXIgXz1pLmxlbmd0aCx3PW8/XzotMSx4PU9iamVjdChpKTsobz93LS06Kyt3PF8pJiYhMSE9PXUoeFt3XSx3LHgpOyk7cmV0dXJuIGl9fX0sMzg0NDA6KHMsbyxpKT0+e3ZhciBhPWkoMTYwMzgpLHU9aSgyNzMwMSksXz1pKDg2MDA5KSx3PV8mJl8uaXNTZXQseD13P3Uodyk6YTtzLmV4cG9ydHM9eH0sMzg1MzA6cz0+eyJ1c2Ugc3RyaWN0IjtzLmV4cG9ydHM9e319LDM4ODE2OihzLG8saSk9Pnt2YXIgYT1pKDM1OTcwKSx1PWkoNTY3NTcpLF89aSgzMjg2NSk7cy5leHBvcnRzPWZ1bmN0aW9uIGZsYXRSZXN0KHMpe3JldHVybiBfKHUocyx2b2lkIDAsYSkscysiIil9fSwzODg1OToocyxvLGkpPT57dmFyIGE9aSg1MzY2MSksdT1pKDMxMzgwKSxfPWkoNTE0NTkpO2Z1bmN0aW9uIFNldENhY2hlKHMpe3ZhciBvPS0xLGk9bnVsbD09cz8wOnMubGVuZ3RoO2Zvcih0aGlzLl9fZGF0YV9fPW5ldyBhOysrbzxpOyl0aGlzLmFkZChzW29dKX1TZXRDYWNoZS5wcm90b3R5cGUuYWRkPVNldENhY2hlLnByb3RvdHlwZS5wdXNoPXUsU2V0Q2FjaGUucHJvdG90eXBlLmhhcz1fLHMuZXhwb3J0cz1TZXRDYWNoZX0sMzkyNTk6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDQ2Mjg1KSx1PWkoNjE2MjYpO3MuZXhwb3J0cz1mdW5jdGlvbihzLG8pe2EobykmJiJjYXVzZSJpbiBvJiZ1KHMsImNhdXNlIixvLmNhdXNlKX19LDM5Mjk4OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg3NDIzOSksdT1PYmplY3Q7cy5leHBvcnRzPWZ1bmN0aW9uKHMpe3JldHVybiB1KGEocykpfX0sMzkzNDQ6KHMsbyxpKT0+e3ZhciBhPWkoMjM4MDUpLHU9T2JqZWN0LmNyZWF0ZSxfPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gb2JqZWN0KCl7fXJldHVybiBmdW5jdGlvbihzKXtpZighYShzKSlyZXR1cm57fTtpZih1KXJldHVybiB1KHMpO29iamVjdC5wcm90b3R5cGU9czt2YXIgbz1uZXcgb2JqZWN0O3JldHVybiBvYmplY3QucHJvdG90eXBlPXZvaWQgMCxvfX0oKTtzLmV4cG9ydHM9X30sMzk0NDc6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDk4ODI4KTtzLmV4cG9ydHM9IWEoKGZ1bmN0aW9uKCl7cmV0dXJuIDchPT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sMSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSlbMV19KSl9LDQwMTU0OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgxMzkzMCksdT1pKDM2NjI0KSxfPWkoMjkzNjcpO3MuZXhwb3J0cz1mdW5jdGlvbihzLG8saSl7dmFyIHcseDt1KHMpO3RyeXtpZighKHc9XyhzLCJyZXR1cm4iKSkpe2lmKCJ0aHJvdyI9PT1vKXRocm93IGk7cmV0dXJuIGl9dz1hKHcscyl9Y2F0Y2gocyl7eD0hMCx3PXN9aWYoInRocm93Ij09PW8pdGhyb3cgaTtpZih4KXRocm93IHc7cmV0dXJuIHUodyksaX19LDQwMjM5OihzLG8saSk9Pntjb25zdCBhPWkoMTAzMTYpO3MuZXhwb3J0cz1jbGFzcyBOdW1iZXJFbGVtZW50IGV4dGVuZHMgYXtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0ibnVtYmVyIn1wcmltaXRpdmUoKXtyZXR1cm4ibnVtYmVyIn19fSw0MDM0NToocyxvLGkpPT57cy5leHBvcnRzPWkoMzcwMDcpLkV2ZW50RW1pdHRlcn0sNDAzNDY6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBpc09iamVjdExpa2Uocyl7cmV0dXJuIG51bGwhPXMmJiJvYmplY3QiPT10eXBlb2Ygc319LDQwNTUxOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg0NTk1MSksdT1pKDYyMjUwKSxfPWEuV2Vha01hcDtzLmV4cG9ydHM9dShfKSYmL25hdGl2ZSBjb2RlLy50ZXN0KFN0cmluZyhfKSl9LDQwODYwOihzLG8saSk9Pnt2YXIgYT1pKDQwODgyKSx1PWkoODA5MDkpLF89aSgxNTM4OSksdz1pKDg1NTU4KSx4PWkoNTY0NDkpO3MuZXhwb3J0cz1mdW5jdGlvbiByZWR1Y2UocyxvLGkpe3ZhciBDPXgocyk/YTp3LGo9YXJndW1lbnRzLmxlbmd0aDwzO3JldHVybiBDKHMsXyhvLDQpLGksaix1KX19LDQwODgyOnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gYXJyYXlSZWR1Y2UocyxvLGksYSl7dmFyIHU9LTEsXz1udWxsPT1zPzA6cy5sZW5ndGg7Zm9yKGEmJl8mJihpPXNbKyt1XSk7Kyt1PF87KWk9byhpLHNbdV0sdSxzKTtyZXR1cm4gaX19LDQwOTYxOihzLG8saSk9PnsidXNlIHN0cmljdCI7IWZ1bmN0aW9uIGNoZWNrRENFKCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18mJiJmdW5jdGlvbiI9PXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UpdHJ5e19fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShjaGVja0RDRSl9Y2F0Y2gocyl7Y29uc29sZS5lcnJvcihzKX19KCkscy5leHBvcnRzPWkoMjI1NTEpfSw0MDk3NToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoOTc0OCk7cy5leHBvcnRzPWF9LDQxMDY3OihzLG8saSk9Pntjb25zdCBhPWkoMTAzMTYpO3MuZXhwb3J0cz1jbGFzcyBOdWxsRWxlbWVudCBleHRlbmRzIGF7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHN8fG51bGwsbyxpKSx0aGlzLmVsZW1lbnQ9Im51bGwifXByaW1pdGl2ZSgpe3JldHVybiJudWxsIn1zZXQoKXtyZXR1cm4gbmV3IEVycm9yKCJDYW5ub3Qgc2V0IHRoZSB2YWx1ZSBvZiBudWxsIil9fX0sNDExNzY6cz0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbz1NYXRoLmNlaWwsaT1NYXRoLmZsb29yO3MuZXhwb3J0cz1NYXRoLnRydW5jfHxmdW5jdGlvbiB0cnVuYyhzKXt2YXIgYT0rcztyZXR1cm4oYT4wP2k6bykoYSl9fSw0MTUwNToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoOTg4MjgpO3MuZXhwb3J0cz0hYSgoZnVuY3Rpb24oKXt2YXIgcz1mdW5jdGlvbigpe30uYmluZCgpO3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiBzfHxzLmhhc093blByb3BlcnR5KCJwcm90b3R5cGUiKX0pKX0sNDE3OTk6KHMsbyxpKT0+e3ZhciBhPWkoMzcyMTcpLHU9aSg2MDI3MCk7cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VJc01hdGNoKHMsbyxpLF8pe3ZhciB3PWkubGVuZ3RoLHg9dyxDPSFfO2lmKG51bGw9PXMpcmV0dXJuIXg7Zm9yKHM9T2JqZWN0KHMpO3ctLTspe3ZhciBqPWlbd107aWYoQyYmalsyXT9qWzFdIT09c1tqWzBdXTohKGpbMF1pbiBzKSlyZXR1cm4hMX1mb3IoOysrdzx4Oyl7dmFyIEw9KGo9aVt3XSlbMF0sQj1zW0xdLCQ9alsxXTtpZihDJiZqWzJdKXtpZih2b2lkIDA9PT1CJiYhKEwgaW4gcykpcmV0dXJuITF9ZWxzZXt2YXIgVj1uZXcgYTtpZihfKXZhciBVPV8oQiwkLEwscyxvLFYpO2lmKCEodm9pZCAwPT09VT91KCQsQiwzLF8sVik6VSkpcmV0dXJuITF9fXJldHVybiEwfX0sNDE4NTk6KHMsbyxpKT0+e2NvbnN0IGE9aSgyNzA5NiksdT1pKDc4MDA0KSxfPWEudHlwZXM7cy5leHBvcnRzPWNsYXNzIFJhbmRFeHB7Y29uc3RydWN0b3IocyxvKXtpZih0aGlzLl9zZXREZWZhdWx0cyhzKSxzIGluc3RhbmNlb2YgUmVnRXhwKXRoaXMuaWdub3JlQ2FzZT1zLmlnbm9yZUNhc2UsdGhpcy5tdWx0aWxpbmU9cy5tdWx0aWxpbmUscz1zLnNvdXJjZTtlbHNle2lmKCJzdHJpbmciIT10eXBlb2Ygcyl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIGEgcmVnZXhwIG9yIHN0cmluZyIpO3RoaXMuaWdub3JlQ2FzZT1vJiYtMSE9PW8uaW5kZXhPZigiaSIpLHRoaXMubXVsdGlsaW5lPW8mJi0xIT09by5pbmRleE9mKCJtIil9dGhpcy50b2tlbnM9YShzKX1fc2V0RGVmYXVsdHMocyl7dGhpcy5tYXg9bnVsbCE9cy5tYXg/cy5tYXg6bnVsbCE9UmFuZEV4cC5wcm90b3R5cGUubWF4P1JhbmRFeHAucHJvdG90eXBlLm1heDoxMDAsdGhpcy5kZWZhdWx0UmFuZ2U9cy5kZWZhdWx0UmFuZ2U/cy5kZWZhdWx0UmFuZ2U6dGhpcy5kZWZhdWx0UmFuZ2UuY2xvbmUoKSxzLnJhbmRJbnQmJih0aGlzLnJhbmRJbnQ9cy5yYW5kSW50KX1nZW4oKXtyZXR1cm4gdGhpcy5fZ2VuKHRoaXMudG9rZW5zLFtdKX1fZ2VuKHMsbyl7dmFyIGksYSx1LHcseDtzd2l0Y2gocy50eXBlKXtjYXNlIF8uUk9PVDpjYXNlIF8uR1JPVVA6aWYocy5mb2xsb3dlZEJ5fHxzLm5vdEZvbGxvd2VkQnkpcmV0dXJuIiI7Zm9yKHMucmVtZW1iZXImJnZvaWQgMD09PXMuZ3JvdXBOdW1iZXImJihzLmdyb3VwTnVtYmVyPW8ucHVzaChudWxsKS0xKSxhPSIiLHc9MCx4PShpPXMub3B0aW9ucz90aGlzLl9yYW5kU2VsZWN0KHMub3B0aW9ucyk6cy5zdGFjaykubGVuZ3RoO3c8eDt3KyspYSs9dGhpcy5fZ2VuKGlbd10sbyk7cmV0dXJuIHMucmVtZW1iZXImJihvW3MuZ3JvdXBOdW1iZXJdPWEpLGE7Y2FzZSBfLlBPU0lUSU9OOnJldHVybiIiO2Nhc2UgXy5TRVQ6dmFyIEM9dGhpcy5fZXhwYW5kKHMpO3JldHVybiBDLmxlbmd0aD9TdHJpbmcuZnJvbUNoYXJDb2RlKHRoaXMuX3JhbmRTZWxlY3QoQykpOiIiO2Nhc2UgXy5SRVBFVElUSU9OOmZvcih1PXRoaXMucmFuZEludChzLm1pbixzLm1heD09PTEvMD9zLm1pbit0aGlzLm1heDpzLm1heCksYT0iIix3PTA7dzx1O3crKylhKz10aGlzLl9nZW4ocy52YWx1ZSxvKTtyZXR1cm4gYTtjYXNlIF8uUkVGRVJFTkNFOnJldHVybiBvW3MudmFsdWUtMV18fCIiO2Nhc2UgXy5DSEFSOnZhciBqPXRoaXMuaWdub3JlQ2FzZSYmdGhpcy5fcmFuZEJvb2woKT90aGlzLl90b090aGVyQ2FzZShzLnZhbHVlKTpzLnZhbHVlO3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGopfX1fdG9PdGhlckNhc2Uocyl7cmV0dXJuIHMrKDk3PD1zJiZzPD0xMjI/LTMyOjY1PD1zJiZzPD05MD8zMjowKX1fcmFuZEJvb2woKXtyZXR1cm4hdGhpcy5yYW5kSW50KDAsMSl9X3JhbmRTZWxlY3Qocyl7cmV0dXJuIHMgaW5zdGFuY2VvZiB1P3MuaW5kZXgodGhpcy5yYW5kSW50KDAscy5sZW5ndGgtMSkpOnNbdGhpcy5yYW5kSW50KDAscy5sZW5ndGgtMSldfV9leHBhbmQocyl7aWYocy50eXBlPT09YS50eXBlcy5DSEFSKXJldHVybiBuZXcgdShzLnZhbHVlKTtpZihzLnR5cGU9PT1hLnR5cGVzLlJBTkdFKXJldHVybiBuZXcgdShzLmZyb20scy50byk7e2xldCBvPW5ldyB1O2ZvcihsZXQgaT0wO2k8cy5zZXQubGVuZ3RoO2krKyl7bGV0IGE9dGhpcy5fZXhwYW5kKHMuc2V0W2ldKTtpZihvLmFkZChhKSx0aGlzLmlnbm9yZUNhc2UpZm9yKGxldCBzPTA7czxhLmxlbmd0aDtzKyspe2xldCBpPWEuaW5kZXgocyksdT10aGlzLl90b090aGVyQ2FzZShpKTtpIT09dSYmby5hZGQodSl9fXJldHVybiBzLm5vdD90aGlzLmRlZmF1bHRSYW5nZS5jbG9uZSgpLnN1YnRyYWN0KG8pOnRoaXMuZGVmYXVsdFJhbmdlLmNsb25lKCkuaW50ZXJzZWN0KG8pfX1yYW5kSW50KHMsbyl7cmV0dXJuIHMrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKigxK28tcykpfWdldCBkZWZhdWx0UmFuZ2UoKXtyZXR1cm4gdGhpcy5fcmFuZ2U9dGhpcy5fcmFuZ2V8fG5ldyB1KDMyLDEyNil9c2V0IGRlZmF1bHRSYW5nZShzKXt0aGlzLl9yYW5nZT1zfXN0YXRpYyByYW5kZXhwKHMsbyl7dmFyIGk7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBzJiYocz1uZXcgUmVnRXhwKHMsbykpLHZvaWQgMD09PXMuX3JhbmRleHA/KGk9bmV3IFJhbmRFeHAocyxvKSxzLl9yYW5kZXhwPWkpOihpPXMuX3JhbmRleHApLl9zZXREZWZhdWx0cyhzKSxpLmdlbigpfXN0YXRpYyBzdWdhcigpe1JlZ0V4cC5wcm90b3R5cGUuZ2VuPWZ1bmN0aW9uKCl7cmV0dXJuIFJhbmRFeHAucmFuZGV4cCh0aGlzKX19fX0sNDIwNTQ6cz0+e3ZhciBvPSJcXHVkODAwLVxcdWRmZmYiLGk9IlsiK28rIl0iLGE9IltcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZdIix1PSJcXHVkODNjW1xcdWRmZmItXFx1ZGZmZl0iLF89IlteIitvKyJdIix3PSIoPzpcXHVkODNjW1xcdWRkZTYtXFx1ZGRmZl0pezJ9Iix4PSJbXFx1ZDgwMC1cXHVkYmZmXVtcXHVkYzAwLVxcdWRmZmZdIixDPSIoPzoiK2ErInwiK3UrIikiKyI/IixqPSJbXFx1ZmUwZVxcdWZlMGZdPyIsTD1qK0MrKCIoPzpcXHUyMDBkKD86IitbXyx3LHhdLmpvaW4oInwiKSsiKSIraitDKyIpKiIpLEI9Iig/OiIrW18rYSsiPyIsYSx3LHgsaV0uam9pbigifCIpKyIpIiwkPVJlZ0V4cCh1KyIoPz0iK3UrIil8IitCK0wsImciKTtzLmV4cG9ydHM9ZnVuY3Rpb24gdW5pY29kZVRvQXJyYXkocyl7cmV0dXJuIHMubWF0Y2goJCl8fFtdfX0sNDIwNzI6KHMsbyxpKT0+e3ZhciBhPWkoMzQ5MzIpLHU9aSgyMzAwNyksXz1pKDU2NDQ5KSx3PWkoNDQzOTQpLHg9aSg2MTgwMiksQz1pKDc3Nzk3KSxqPWkoMTMyMjIpO3MuZXhwb3J0cz1mdW5jdGlvbiB0b1BhdGgocyl7cmV0dXJuIF8ocyk/YShzLEMpOncocyk/W3NdOnUoeChqKHMpKSl9fSw0MjE1NjpzPT57InVzZSBzdHJpY3QiO3MuZXhwb3J0cz1mdW5jdGlvbigpe319LDQyMjIwOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgzOTQ0NyksdT1pKDU4NjYxKSxfPWkoNzQyODQpLHc9aSgzNjYyNCkseD1pKDQ5OTMpLEM9aSgyODc1KTtvLmY9YSYmIXU/T2JqZWN0LmRlZmluZVByb3BlcnRpZXM6ZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyhzLG8pe3cocyk7Zm9yKHZhciBpLGE9eChvKSx1PUMobyksaj11Lmxlbmd0aCxMPTA7aj5MOylfLmYocyxpPXVbTCsrXSxhW2ldKTtyZXR1cm4gc319LDQyNDI2OihzLG8saSk9Pnt2YXIgYT1pKDE0MjQ4KSx1PWkoMTUzODkpLF89aSg5MDkxNiksdz1pKDU2NDQ5KSx4PWkoMzY4MDApO3MuZXhwb3J0cz1mdW5jdGlvbiBzb21lKHMsbyxpKXt2YXIgQz13KHMpP2E6XztyZXR1cm4gaSYmeChzLG8saSkmJihvPXZvaWQgMCksQyhzLHUobywzKSl9fSw0MjgyNDoocyxvLGkpPT57dmFyIGE9aSg4NzgwNSksdT1pKDkzMjkwKSxfPWkoNzE5NjEpLHc9aSgyMzAwNykseD1pKDM1NTI5KSxDPWkoNzI0MjgpLGo9aSg1NjQ0OSksTD1pKDgzNjkzKSxCPWkoMzY1NiksJD1pKDE4ODIpLFY9aSgyMzgwNSksVT1pKDExMzMxKSx6PWkoMzcxNjcpLFk9aSgxNDk3NCksWj1pKDY5ODg0KTtzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZU1lcmdlRGVlcChzLG8saSxlZSxpZSxhZSxjZSl7dmFyIGxlPVkocyxpKSxwZT1ZKG8saSksZGU9Y2UuZ2V0KHBlKTtpZihkZSlhKHMsaSxkZSk7ZWxzZXt2YXIgZmU9YWU/YWUobGUscGUsaSsiIixzLG8sY2UpOnZvaWQgMCx5ZT12b2lkIDA9PT1mZTtpZih5ZSl7dmFyIGJlPWoocGUpLF9lPSFiZSYmQihwZSksU2U9IWJlJiYhX2UmJnoocGUpO2ZlPXBlLGJlfHxfZXx8U2U/aihsZSk/ZmU9bGU6TChsZSk/ZmU9dyhsZSk6X2U/KHllPSExLGZlPXUocGUsITApKTpTZT8oeWU9ITEsZmU9XyhwZSwhMCkpOmZlPVtdOlUocGUpfHxDKHBlKT8oZmU9bGUsQyhsZSk/ZmU9WihsZSk6VihsZSkmJiEkKGxlKXx8KGZlPXgocGUpKSk6eWU9ITF9eWUmJihjZS5zZXQocGUsZmUpLGllKGZlLHBlLGVlLGFlLGNlKSxjZS5kZWxldGUocGUpKSxhKHMsaSxmZSl9fX0sNDMzNjA6KHMsbyxpKT0+e3ZhciBhPWkoOTMyNDMpO3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlQXNzaWduVmFsdWUocyxvLGkpeyJfX3Byb3RvX18iPT1vJiZhP2EocyxvLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTppLHdyaXRhYmxlOiEwfSk6c1tvXT1pfX0sNDM3Njg6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDQ1OTgxKSx1PWkoODU1ODcpO28uaGlnaGxpZ2h0PWhpZ2hsaWdodCxvLmhpZ2hsaWdodEF1dG89ZnVuY3Rpb24gaGlnaGxpZ2h0QXV0byhzLG8pe3ZhciBpLHcseCxDLGo9b3x8e30sTD1qLnN1YnNldHx8YS5saXN0TGFuZ3VhZ2VzKCksQj1qLnByZWZpeCwkPUwubGVuZ3RoLFY9LTE7bnVsbD09QiYmKEI9Xyk7aWYoInN0cmluZyIhPXR5cGVvZiBzKXRocm93IHUoIkV4cGVjdGVkIGBzdHJpbmdgIGZvciB2YWx1ZSwgZ290IGAlc2AiLHMpO3c9e3JlbGV2YW5jZTowLGxhbmd1YWdlOm51bGwsdmFsdWU6W119LGk9e3JlbGV2YW5jZTowLGxhbmd1YWdlOm51bGwsdmFsdWU6W119O2Zvcig7KytWPCQ7KUM9TFtWXSxhLmdldExhbmd1YWdlKEMpJiYoKHg9aGlnaGxpZ2h0KEMscyxvKSkubGFuZ3VhZ2U9Qyx4LnJlbGV2YW5jZT53LnJlbGV2YW5jZSYmKHc9eCkseC5yZWxldmFuY2U+aS5yZWxldmFuY2UmJih3PWksaT14KSk7dy5sYW5ndWFnZSYmKGkuc2Vjb25kQmVzdD13KTtyZXR1cm4gaX0sby5yZWdpc3Rlckxhbmd1YWdlPWZ1bmN0aW9uIHJlZ2lzdGVyTGFuZ3VhZ2UocyxvKXthLnJlZ2lzdGVyTGFuZ3VhZ2UocyxvKX0sby5saXN0TGFuZ3VhZ2VzPWZ1bmN0aW9uIGxpc3RMYW5ndWFnZXMoKXtyZXR1cm4gYS5saXN0TGFuZ3VhZ2VzKCl9LG8ucmVnaXN0ZXJBbGlhcz1mdW5jdGlvbiByZWdpc3RlckFsaWFzKHMsbyl7dmFyIGksdT1zO28mJigodT17fSlbc109byk7Zm9yKGkgaW4gdSlhLnJlZ2lzdGVyQWxpYXNlcyh1W2ldLHtsYW5ndWFnZU5hbWU6aX0pfSxFbWl0dGVyLnByb3RvdHlwZS5hZGRUZXh0PWZ1bmN0aW9uIHRleHQocyl7dmFyIG8saSxhPXRoaXMuc3RhY2s7aWYoIiI9PT1zKXJldHVybjtvPWFbYS5sZW5ndGgtMV0sKGk9by5jaGlsZHJlbltvLmNoaWxkcmVuLmxlbmd0aC0xXSkmJiJ0ZXh0Ij09PWkudHlwZT9pLnZhbHVlKz1zOm8uY2hpbGRyZW4ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6c30pfSxFbWl0dGVyLnByb3RvdHlwZS5hZGRLZXl3b3JkPWZ1bmN0aW9uIGFkZEtleXdvcmQocyxvKXt0aGlzLm9wZW5Ob2RlKG8pLHRoaXMuYWRkVGV4dChzKSx0aGlzLmNsb3NlTm9kZSgpfSxFbWl0dGVyLnByb3RvdHlwZS5hZGRTdWJsYW5ndWFnZT1mdW5jdGlvbiBhZGRTdWJsYW5ndWFnZShzLG8pe3ZhciBpPXRoaXMuc3RhY2ssYT1pW2kubGVuZ3RoLTFdLHU9cy5yb290Tm9kZS5jaGlsZHJlbixfPW8/e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InNwYW4iLHByb3BlcnRpZXM6e2NsYXNzTmFtZTpbb119LGNoaWxkcmVuOnV9OnU7YS5jaGlsZHJlbj1hLmNoaWxkcmVuLmNvbmNhdChfKX0sRW1pdHRlci5wcm90b3R5cGUub3Blbk5vZGU9ZnVuY3Rpb24gb3BlbihzKXt2YXIgbz10aGlzLnN0YWNrLGk9dGhpcy5vcHRpb25zLmNsYXNzUHJlZml4K3MsYT1vW28ubGVuZ3RoLTFdLHU9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InNwYW4iLHByb3BlcnRpZXM6e2NsYXNzTmFtZTpbaV19LGNoaWxkcmVuOltdfTthLmNoaWxkcmVuLnB1c2godSksby5wdXNoKHUpfSxFbWl0dGVyLnByb3RvdHlwZS5jbG9zZU5vZGU9ZnVuY3Rpb24gY2xvc2UoKXt0aGlzLnN0YWNrLnBvcCgpfSxFbWl0dGVyLnByb3RvdHlwZS5jbG9zZUFsbE5vZGVzPW5vb3AsRW1pdHRlci5wcm90b3R5cGUuZmluYWxpemU9bm9vcCxFbWl0dGVyLnByb3RvdHlwZS50b0hUTUw9ZnVuY3Rpb24gdG9IdG1sTm9vcCgpe3JldHVybiIifTt2YXIgXz0iaGxqcy0iO2Z1bmN0aW9uIGhpZ2hsaWdodChzLG8saSl7dmFyIHcseD1hLmNvbmZpZ3VyZSh7fSksQz0oaXx8e30pLnByZWZpeDtpZigic3RyaW5nIiE9dHlwZW9mIHMpdGhyb3cgdSgiRXhwZWN0ZWQgYHN0cmluZ2AgZm9yIG5hbWUsIGdvdCBgJXNgIixzKTtpZighYS5nZXRMYW5ndWFnZShzKSl0aHJvdyB1KCJVbmtub3duIGxhbmd1YWdlOiBgJXNgIGlzIG5vdCByZWdpc3RlcmVkIixzKTtpZigic3RyaW5nIiE9dHlwZW9mIG8pdGhyb3cgdSgiRXhwZWN0ZWQgYHN0cmluZ2AgZm9yIHZhbHVlLCBnb3QgYCVzYCIsbyk7aWYobnVsbD09QyYmKEM9XyksYS5jb25maWd1cmUoe19fZW1pdHRlcjpFbWl0dGVyLGNsYXNzUHJlZml4OkN9KSx3PWEuaGlnaGxpZ2h0KG8se2xhbmd1YWdlOnMsaWdub3JlSWxsZWdhbHM6ITB9KSxhLmNvbmZpZ3VyZSh4fHx7fSksdy5lcnJvclJhaXNlZCl0aHJvdyB3LmVycm9yUmFpc2VkO3JldHVybntyZWxldmFuY2U6dy5yZWxldmFuY2UsbGFuZ3VhZ2U6dy5sYW5ndWFnZSx2YWx1ZTp3LmVtaXR0ZXIucm9vdE5vZGUuY2hpbGRyZW59fWZ1bmN0aW9uIEVtaXR0ZXIocyl7dGhpcy5vcHRpb25zPXMsdGhpcy5yb290Tm9kZT17Y2hpbGRyZW46W119LHRoaXMuc3RhY2s9W3RoaXMucm9vdE5vZGVdfWZ1bmN0aW9uIG5vb3AoKXt9fSw0MzgzODoocyxvLGkpPT57dmFyIGE9aSgyMTc5MSksdT1pKDM3MjQxKTtzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZUFzc2lnbkluKHMsbyl7cmV0dXJuIHMmJmEobyx1KG8pLHMpfX0sNDQzOTQ6KHMsbyxpKT0+e3ZhciBhPWkoNzI1NTIpLHU9aSg0MDM0Nik7cy5leHBvcnRzPWZ1bmN0aW9uIGlzU3ltYm9sKHMpe3JldHVybiJzeW1ib2wiPT10eXBlb2Ygc3x8dShzKSYmIltvYmplY3QgU3ltYm9sXSI9PWEocyl9fSw0NDY3MzoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMTkwNyksdT1pKDgyMTU5KSxfPWkoNDYyODUpLHc9aSg0OTcyNCkseD1pKDkzNDI3KSxDPWkoNDE1MDUpLGo9RnVuY3Rpb24sTD1hKFtdLmNvbmNhdCksQj1hKFtdLmpvaW4pLCQ9e307cy5leHBvcnRzPUM/ai5iaW5kOmZ1bmN0aW9uIGJpbmQocyl7dmFyIG89dSh0aGlzKSxpPW8ucHJvdG90eXBlLGE9eChhcmd1bWVudHMsMSksQz1mdW5jdGlvbiBib3VuZCgpe3ZhciBpPUwoYSx4KGFyZ3VtZW50cykpO3JldHVybiB0aGlzIGluc3RhbmNlb2YgQz9mdW5jdGlvbihzLG8saSl7aWYoIXcoJCxvKSl7Zm9yKHZhciBhPVtdLHU9MDt1PG87dSsrKWFbdV09ImFbIit1KyJdIjskW29dPWooIkMsYSIsInJldHVybiBuZXcgQygiK0IoYSwiLCIpKyIpIil9cmV0dXJuICRbb10ocyxpKX0obyxpLmxlbmd0aCxpKTpvLmFwcGx5KHMsaSl9O3JldHVybiBfKGkpJiYoQy5wcm90b3R5cGU9aSksQ319LDQ1MDgzOihzLG8saSk9Pnt2YXIgYT1pKDE4ODIpLHU9aSg4NzI5NiksXz1pKDIzODA1KSx3PWkoNDc0NzMpLHg9L15cW29iamVjdCAuKz9Db25zdHJ1Y3RvclxdJC8sQz1GdW5jdGlvbi5wcm90b3R5cGUsaj1PYmplY3QucHJvdG90eXBlLEw9Qy50b1N0cmluZyxCPWouaGFzT3duUHJvcGVydHksJD1SZWdFeHAoIl4iK0wuY2FsbChCKS5yZXBsYWNlKC9bXFxeJC4qKz8oKVtcXXt9fF0vZywiXFwkJiIpLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFwoKXwgZm9yIC4rPyg/PVxcXF0pL2csIiQxLio/IikrIiQiKTtzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZUlzTmF0aXZlKHMpe3JldHVybiEoIV8ocyl8fHUocykpJiYoYShzKT8kOngpLnRlc3QodyhzKSl9fSw0NTQxMjoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhLHU9aSg2NTYwNik7cy5leHBvcnRzPVJlYWRhYmxlLFJlYWRhYmxlLlJlYWRhYmxlU3RhdGU9UmVhZGFibGVTdGF0ZTtpKDM3MDA3KS5FdmVudEVtaXR0ZXI7dmFyIF89ZnVuY3Rpb24gRUVsaXN0ZW5lckNvdW50KHMsbyl7cmV0dXJuIHMubGlzdGVuZXJzKG8pLmxlbmd0aH0sdz1pKDQwMzQ1KSx4PWkoNDgyODcpLkJ1ZmZlcixDPSh2b2lkIDAhPT1pLmc/aS5nOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjp7fSkuVWludDhBcnJheXx8ZnVuY3Rpb24oKXt9O3ZhciBqLEw9aSg3OTgzOCk7aj1MJiZMLmRlYnVnbG9nP0wuZGVidWdsb2coInN0cmVhbSIpOmZ1bmN0aW9uIGRlYnVnKCl7fTt2YXIgQiwkLFYsVT1pKDgwMzQ1KSx6PWkoNzU4OTYpLFk9aSg2NTI5MSkuZ2V0SGlnaFdhdGVyTWFyayxaPWkoODYwNDgpLkYsZWU9Wi5FUlJfSU5WQUxJRF9BUkdfVFlQRSxpZT1aLkVSUl9TVFJFQU1fUFVTSF9BRlRFUl9FT0YsYWU9Wi5FUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCxjZT1aLkVSUl9TVFJFQU1fVU5TSElGVF9BRlRFUl9FTkRfRVZFTlQ7aSg1NjY5OCkoUmVhZGFibGUsdyk7dmFyIGxlPXouZXJyb3JPckRlc3Ryb3kscGU9WyJlcnJvciIsImNsb3NlIiwiZGVzdHJveSIsInBhdXNlIiwicmVzdW1lIl07ZnVuY3Rpb24gUmVhZGFibGVTdGF0ZShzLG8sdSl7YT1hfHxpKDI1MzgyKSxzPXN8fHt9LCJib29sZWFuIiE9dHlwZW9mIHUmJih1PW8gaW5zdGFuY2VvZiBhKSx0aGlzLm9iamVjdE1vZGU9ISFzLm9iamVjdE1vZGUsdSYmKHRoaXMub2JqZWN0TW9kZT10aGlzLm9iamVjdE1vZGV8fCEhcy5yZWFkYWJsZU9iamVjdE1vZGUpLHRoaXMuaGlnaFdhdGVyTWFyaz1ZKHRoaXMscywicmVhZGFibGVIaWdoV2F0ZXJNYXJrIix1KSx0aGlzLmJ1ZmZlcj1uZXcgVSx0aGlzLmxlbmd0aD0wLHRoaXMucGlwZXM9bnVsbCx0aGlzLnBpcGVzQ291bnQ9MCx0aGlzLmZsb3dpbmc9bnVsbCx0aGlzLmVuZGVkPSExLHRoaXMuZW5kRW1pdHRlZD0hMSx0aGlzLnJlYWRpbmc9ITEsdGhpcy5zeW5jPSEwLHRoaXMubmVlZFJlYWRhYmxlPSExLHRoaXMuZW1pdHRlZFJlYWRhYmxlPSExLHRoaXMucmVhZGFibGVMaXN0ZW5pbmc9ITEsdGhpcy5yZXN1bWVTY2hlZHVsZWQ9ITEsdGhpcy5wYXVzZWQ9ITAsdGhpcy5lbWl0Q2xvc2U9ITEhPT1zLmVtaXRDbG9zZSx0aGlzLmF1dG9EZXN0cm95PSEhcy5hdXRvRGVzdHJveSx0aGlzLmRlc3Ryb3llZD0hMSx0aGlzLmRlZmF1bHRFbmNvZGluZz1zLmRlZmF1bHRFbmNvZGluZ3x8InV0ZjgiLHRoaXMuYXdhaXREcmFpbj0wLHRoaXMucmVhZGluZ01vcmU9ITEsdGhpcy5kZWNvZGVyPW51bGwsdGhpcy5lbmNvZGluZz1udWxsLHMuZW5jb2RpbmcmJihCfHwoQj1pKDgzMTQxKS5JKSx0aGlzLmRlY29kZXI9bmV3IEIocy5lbmNvZGluZyksdGhpcy5lbmNvZGluZz1zLmVuY29kaW5nKX1mdW5jdGlvbiBSZWFkYWJsZShzKXtpZihhPWF8fGkoMjUzODIpLCEodGhpcyBpbnN0YW5jZW9mIFJlYWRhYmxlKSlyZXR1cm4gbmV3IFJlYWRhYmxlKHMpO3ZhciBvPXRoaXMgaW5zdGFuY2VvZiBhO3RoaXMuX3JlYWRhYmxlU3RhdGU9bmV3IFJlYWRhYmxlU3RhdGUocyx0aGlzLG8pLHRoaXMucmVhZGFibGU9ITAscyYmKCJmdW5jdGlvbiI9PXR5cGVvZiBzLnJlYWQmJih0aGlzLl9yZWFkPXMucmVhZCksImZ1bmN0aW9uIj09dHlwZW9mIHMuZGVzdHJveSYmKHRoaXMuX2Rlc3Ryb3k9cy5kZXN0cm95KSksdy5jYWxsKHRoaXMpfWZ1bmN0aW9uIHJlYWRhYmxlQWRkQ2h1bmsocyxvLGksYSx1KXtqKCJyZWFkYWJsZUFkZENodW5rIixvKTt2YXIgXyx3PXMuX3JlYWRhYmxlU3RhdGU7aWYobnVsbD09PW8pdy5yZWFkaW5nPSExLGZ1bmN0aW9uIG9uRW9mQ2h1bmsocyxvKXtpZihqKCJvbkVvZkNodW5rIiksby5lbmRlZClyZXR1cm47aWYoby5kZWNvZGVyKXt2YXIgaT1vLmRlY29kZXIuZW5kKCk7aSYmaS5sZW5ndGgmJihvLmJ1ZmZlci5wdXNoKGkpLG8ubGVuZ3RoKz1vLm9iamVjdE1vZGU/MTppLmxlbmd0aCl9by5lbmRlZD0hMCxvLnN5bmM/ZW1pdFJlYWRhYmxlKHMpOihvLm5lZWRSZWFkYWJsZT0hMSxvLmVtaXR0ZWRSZWFkYWJsZXx8KG8uZW1pdHRlZFJlYWRhYmxlPSEwLGVtaXRSZWFkYWJsZV8ocykpKX0ocyx3KTtlbHNlIGlmKHV8fChfPWZ1bmN0aW9uIGNodW5rSW52YWxpZChzLG8pe3ZhciBpOyhmdW5jdGlvbiBfaXNVaW50OEFycmF5KHMpe3JldHVybiB4LmlzQnVmZmVyKHMpfHxzIGluc3RhbmNlb2YgQ30pKG8pfHwic3RyaW5nIj09dHlwZW9mIG98fHZvaWQgMD09PW98fHMub2JqZWN0TW9kZXx8KGk9bmV3IGVlKCJjaHVuayIsWyJzdHJpbmciLCJCdWZmZXIiLCJVaW50OEFycmF5Il0sbykpO3JldHVybiBpfSh3LG8pKSxfKWxlKHMsXyk7ZWxzZSBpZih3Lm9iamVjdE1vZGV8fG8mJm8ubGVuZ3RoPjApaWYoInN0cmluZyI9PXR5cGVvZiBvfHx3Lm9iamVjdE1vZGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZihvKT09PXgucHJvdG90eXBlfHwobz1mdW5jdGlvbiBfdWludDhBcnJheVRvQnVmZmVyKHMpe3JldHVybiB4LmZyb20ocyl9KG8pKSxhKXcuZW5kRW1pdHRlZD9sZShzLG5ldyBjZSk6YWRkQ2h1bmsocyx3LG8sITApO2Vsc2UgaWYody5lbmRlZClsZShzLG5ldyBpZSk7ZWxzZXtpZih3LmRlc3Ryb3llZClyZXR1cm4hMTt3LnJlYWRpbmc9ITEsdy5kZWNvZGVyJiYhaT8obz13LmRlY29kZXIud3JpdGUobyksdy5vYmplY3RNb2RlfHwwIT09by5sZW5ndGg/YWRkQ2h1bmsocyx3LG8sITEpOm1heWJlUmVhZE1vcmUocyx3KSk6YWRkQ2h1bmsocyx3LG8sITEpfWVsc2UgYXx8KHcucmVhZGluZz0hMSxtYXliZVJlYWRNb3JlKHMsdykpO3JldHVybiF3LmVuZGVkJiYody5sZW5ndGg8dy5oaWdoV2F0ZXJNYXJrfHwwPT09dy5sZW5ndGgpfWZ1bmN0aW9uIGFkZENodW5rKHMsbyxpLGEpe28uZmxvd2luZyYmMD09PW8ubGVuZ3RoJiYhby5zeW5jPyhvLmF3YWl0RHJhaW49MCxzLmVtaXQoImRhdGEiLGkpKTooby5sZW5ndGgrPW8ub2JqZWN0TW9kZT8xOmkubGVuZ3RoLGE/by5idWZmZXIudW5zaGlmdChpKTpvLmJ1ZmZlci5wdXNoKGkpLG8ubmVlZFJlYWRhYmxlJiZlbWl0UmVhZGFibGUocykpLG1heWJlUmVhZE1vcmUocyxvKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoUmVhZGFibGUucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbiBnZXQoKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbiBzZXQocyl7dGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPXMpfX0pLFJlYWRhYmxlLnByb3RvdHlwZS5kZXN0cm95PXouZGVzdHJveSxSZWFkYWJsZS5wcm90b3R5cGUuX3VuZGVzdHJveT16LnVuZGVzdHJveSxSZWFkYWJsZS5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24ocyxvKXtvKHMpfSxSZWFkYWJsZS5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihzLG8pe3ZhciBpLGE9dGhpcy5fcmVhZGFibGVTdGF0ZTtyZXR1cm4gYS5vYmplY3RNb2RlP2k9ITA6InN0cmluZyI9PXR5cGVvZiBzJiYoKG89b3x8YS5kZWZhdWx0RW5jb2RpbmcpIT09YS5lbmNvZGluZyYmKHM9eC5mcm9tKHMsbyksbz0iIiksaT0hMCkscmVhZGFibGVBZGRDaHVuayh0aGlzLHMsbywhMSxpKX0sUmVhZGFibGUucHJvdG90eXBlLnVuc2hpZnQ9ZnVuY3Rpb24ocyl7cmV0dXJuIHJlYWRhYmxlQWRkQ2h1bmsodGhpcyxzLG51bGwsITAsITEpfSxSZWFkYWJsZS5wcm90b3R5cGUuaXNQYXVzZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMT09PXRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZ30sUmVhZGFibGUucHJvdG90eXBlLnNldEVuY29kaW5nPWZ1bmN0aW9uKHMpe0J8fChCPWkoODMxNDEpLkkpO3ZhciBvPW5ldyBCKHMpO3RoaXMuX3JlYWRhYmxlU3RhdGUuZGVjb2Rlcj1vLHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5jb2Rpbmc9dGhpcy5fcmVhZGFibGVTdGF0ZS5kZWNvZGVyLmVuY29kaW5nO2Zvcih2YXIgYT10aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlci5oZWFkLHU9IiI7bnVsbCE9PWE7KXUrPW8ud3JpdGUoYS5kYXRhKSxhPWEubmV4dDtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXIuY2xlYXIoKSwiIiE9PXUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyLnB1c2godSksdGhpcy5fcmVhZGFibGVTdGF0ZS5sZW5ndGg9dS5sZW5ndGgsdGhpc307dmFyIGRlPTEwNzM3NDE4MjQ7ZnVuY3Rpb24gaG93TXVjaFRvUmVhZChzLG8pe3JldHVybiBzPD0wfHwwPT09by5sZW5ndGgmJm8uZW5kZWQ/MDpvLm9iamVjdE1vZGU/MTpzIT1zP28uZmxvd2luZyYmby5sZW5ndGg/by5idWZmZXIuaGVhZC5kYXRhLmxlbmd0aDpvLmxlbmd0aDoocz5vLmhpZ2hXYXRlck1hcmsmJihvLmhpZ2hXYXRlck1hcms9ZnVuY3Rpb24gY29tcHV0ZU5ld0hpZ2hXYXRlck1hcmsocyl7cmV0dXJuIHM+PWRlP3M9ZGU6KHMtLSxzfD1zPj4+MSxzfD1zPj4+MixzfD1zPj4+NCxzfD1zPj4+OCxzfD1zPj4+MTYscysrKSxzfShzKSksczw9by5sZW5ndGg/czpvLmVuZGVkP28ubGVuZ3RoOihvLm5lZWRSZWFkYWJsZT0hMCwwKSl9ZnVuY3Rpb24gZW1pdFJlYWRhYmxlKHMpe3ZhciBvPXMuX3JlYWRhYmxlU3RhdGU7aigiZW1pdFJlYWRhYmxlIixvLm5lZWRSZWFkYWJsZSxvLmVtaXR0ZWRSZWFkYWJsZSksby5uZWVkUmVhZGFibGU9ITEsby5lbWl0dGVkUmVhZGFibGV8fChqKCJlbWl0UmVhZGFibGUiLG8uZmxvd2luZyksby5lbWl0dGVkUmVhZGFibGU9ITAsdS5uZXh0VGljayhlbWl0UmVhZGFibGVfLHMpKX1mdW5jdGlvbiBlbWl0UmVhZGFibGVfKHMpe3ZhciBvPXMuX3JlYWRhYmxlU3RhdGU7aigiZW1pdFJlYWRhYmxlXyIsby5kZXN0cm95ZWQsby5sZW5ndGgsby5lbmRlZCksby5kZXN0cm95ZWR8fCFvLmxlbmd0aCYmIW8uZW5kZWR8fChzLmVtaXQoInJlYWRhYmxlIiksby5lbWl0dGVkUmVhZGFibGU9ITEpLG8ubmVlZFJlYWRhYmxlPSFvLmZsb3dpbmcmJiFvLmVuZGVkJiZvLmxlbmd0aDw9by5oaWdoV2F0ZXJNYXJrLGZsb3cocyl9ZnVuY3Rpb24gbWF5YmVSZWFkTW9yZShzLG8pe28ucmVhZGluZ01vcmV8fChvLnJlYWRpbmdNb3JlPSEwLHUubmV4dFRpY2sobWF5YmVSZWFkTW9yZV8scyxvKSl9ZnVuY3Rpb24gbWF5YmVSZWFkTW9yZV8ocyxvKXtmb3IoOyFvLnJlYWRpbmcmJiFvLmVuZGVkJiYoby5sZW5ndGg8by5oaWdoV2F0ZXJNYXJrfHxvLmZsb3dpbmcmJjA9PT1vLmxlbmd0aCk7KXt2YXIgaT1vLmxlbmd0aDtpZihqKCJtYXliZVJlYWRNb3JlIHJlYWQgMCIpLHMucmVhZCgwKSxpPT09by5sZW5ndGgpYnJlYWt9by5yZWFkaW5nTW9yZT0hMX1mdW5jdGlvbiB1cGRhdGVSZWFkYWJsZUxpc3RlbmluZyhzKXt2YXIgbz1zLl9yZWFkYWJsZVN0YXRlO28ucmVhZGFibGVMaXN0ZW5pbmc9cy5saXN0ZW5lckNvdW50KCJyZWFkYWJsZSIpPjAsby5yZXN1bWVTY2hlZHVsZWQmJiFvLnBhdXNlZD9vLmZsb3dpbmc9ITA6cy5saXN0ZW5lckNvdW50KCJkYXRhIik+MCYmcy5yZXN1bWUoKX1mdW5jdGlvbiBuUmVhZGluZ05leHRUaWNrKHMpe2ooInJlYWRhYmxlIG5leHR0aWNrIHJlYWQgMCIpLHMucmVhZCgwKX1mdW5jdGlvbiByZXN1bWVfKHMsbyl7aigicmVzdW1lIixvLnJlYWRpbmcpLG8ucmVhZGluZ3x8cy5yZWFkKDApLG8ucmVzdW1lU2NoZWR1bGVkPSExLHMuZW1pdCgicmVzdW1lIiksZmxvdyhzKSxvLmZsb3dpbmcmJiFvLnJlYWRpbmcmJnMucmVhZCgwKX1mdW5jdGlvbiBmbG93KHMpe3ZhciBvPXMuX3JlYWRhYmxlU3RhdGU7Zm9yKGooImZsb3ciLG8uZmxvd2luZyk7by5mbG93aW5nJiZudWxsIT09cy5yZWFkKCk7KTt9ZnVuY3Rpb24gZnJvbUxpc3QocyxvKXtyZXR1cm4gMD09PW8ubGVuZ3RoP251bGw6KG8ub2JqZWN0TW9kZT9pPW8uYnVmZmVyLnNoaWZ0KCk6IXN8fHM+PW8ubGVuZ3RoPyhpPW8uZGVjb2Rlcj9vLmJ1ZmZlci5qb2luKCIiKToxPT09by5idWZmZXIubGVuZ3RoP28uYnVmZmVyLmZpcnN0KCk6by5idWZmZXIuY29uY2F0KG8ubGVuZ3RoKSxvLmJ1ZmZlci5jbGVhcigpKTppPW8uYnVmZmVyLmNvbnN1bWUocyxvLmRlY29kZXIpLGkpO3ZhciBpfWZ1bmN0aW9uIGVuZFJlYWRhYmxlKHMpe3ZhciBvPXMuX3JlYWRhYmxlU3RhdGU7aigiZW5kUmVhZGFibGUiLG8uZW5kRW1pdHRlZCksby5lbmRFbWl0dGVkfHwoby5lbmRlZD0hMCx1Lm5leHRUaWNrKGVuZFJlYWRhYmxlTlQsbyxzKSl9ZnVuY3Rpb24gZW5kUmVhZGFibGVOVChzLG8pe2lmKGooImVuZFJlYWRhYmxlTlQiLHMuZW5kRW1pdHRlZCxzLmxlbmd0aCksIXMuZW5kRW1pdHRlZCYmMD09PXMubGVuZ3RoJiYocy5lbmRFbWl0dGVkPSEwLG8ucmVhZGFibGU9ITEsby5lbWl0KCJlbmQiKSxzLmF1dG9EZXN0cm95KSl7dmFyIGk9by5fd3JpdGFibGVTdGF0ZTsoIWl8fGkuYXV0b0Rlc3Ryb3kmJmkuZmluaXNoZWQpJiZvLmRlc3Ryb3koKX19ZnVuY3Rpb24gaW5kZXhPZihzLG8pe2Zvcih2YXIgaT0wLGE9cy5sZW5ndGg7aTxhO2krKylpZihzW2ldPT09bylyZXR1cm4gaTtyZXR1cm4tMX1SZWFkYWJsZS5wcm90b3R5cGUucmVhZD1mdW5jdGlvbihzKXtqKCJyZWFkIixzKSxzPXBhcnNlSW50KHMsMTApO3ZhciBvPXRoaXMuX3JlYWRhYmxlU3RhdGUsaT1zO2lmKDAhPT1zJiYoby5lbWl0dGVkUmVhZGFibGU9ITEpLDA9PT1zJiZvLm5lZWRSZWFkYWJsZSYmKCgwIT09by5oaWdoV2F0ZXJNYXJrP28ubGVuZ3RoPj1vLmhpZ2hXYXRlck1hcms6by5sZW5ndGg+MCl8fG8uZW5kZWQpKXJldHVybiBqKCJyZWFkOiBlbWl0UmVhZGFibGUiLG8ubGVuZ3RoLG8uZW5kZWQpLDA9PT1vLmxlbmd0aCYmby5lbmRlZD9lbmRSZWFkYWJsZSh0aGlzKTplbWl0UmVhZGFibGUodGhpcyksbnVsbDtpZigwPT09KHM9aG93TXVjaFRvUmVhZChzLG8pKSYmby5lbmRlZClyZXR1cm4gMD09PW8ubGVuZ3RoJiZlbmRSZWFkYWJsZSh0aGlzKSxudWxsO3ZhciBhLHU9by5uZWVkUmVhZGFibGU7cmV0dXJuIGooIm5lZWQgcmVhZGFibGUiLHUpLCgwPT09by5sZW5ndGh8fG8ubGVuZ3RoLXM8by5oaWdoV2F0ZXJNYXJrKSYmaigibGVuZ3RoIGxlc3MgdGhhbiB3YXRlcm1hcmsiLHU9ITApLG8uZW5kZWR8fG8ucmVhZGluZz9qKCJyZWFkaW5nIG9yIGVuZGVkIix1PSExKTp1JiYoaigiZG8gcmVhZCIpLG8ucmVhZGluZz0hMCxvLnN5bmM9ITAsMD09PW8ubGVuZ3RoJiYoby5uZWVkUmVhZGFibGU9ITApLHRoaXMuX3JlYWQoby5oaWdoV2F0ZXJNYXJrKSxvLnN5bmM9ITEsby5yZWFkaW5nfHwocz1ob3dNdWNoVG9SZWFkKGksbykpKSxudWxsPT09KGE9cz4wP2Zyb21MaXN0KHMsbyk6bnVsbCk/KG8ubmVlZFJlYWRhYmxlPW8ubGVuZ3RoPD1vLmhpZ2hXYXRlck1hcmsscz0wKTooby5sZW5ndGgtPXMsby5hd2FpdERyYWluPTApLDA9PT1vLmxlbmd0aCYmKG8uZW5kZWR8fChvLm5lZWRSZWFkYWJsZT0hMCksaSE9PXMmJm8uZW5kZWQmJmVuZFJlYWRhYmxlKHRoaXMpKSxudWxsIT09YSYmdGhpcy5lbWl0KCJkYXRhIixhKSxhfSxSZWFkYWJsZS5wcm90b3R5cGUuX3JlYWQ9ZnVuY3Rpb24ocyl7bGUodGhpcyxuZXcgYWUoIl9yZWFkKCkiKSl9LFJlYWRhYmxlLnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKHMsbyl7dmFyIGk9dGhpcyxhPXRoaXMuX3JlYWRhYmxlU3RhdGU7c3dpdGNoKGEucGlwZXNDb3VudCl7Y2FzZSAwOmEucGlwZXM9czticmVhaztjYXNlIDE6YS5waXBlcz1bYS5waXBlcyxzXTticmVhaztkZWZhdWx0OmEucGlwZXMucHVzaChzKX1hLnBpcGVzQ291bnQrPTEsaigicGlwZSBjb3VudD0lZCBvcHRzPSVqIixhLnBpcGVzQ291bnQsbyk7dmFyIHc9KCFvfHwhMSE9PW8uZW5kKSYmcyE9PXUuc3Rkb3V0JiZzIT09dS5zdGRlcnI/b25lbmQ6dW5waXBlO2Z1bmN0aW9uIG9udW5waXBlKG8sdSl7aigib251bnBpcGUiKSxvPT09aSYmdSYmITE9PT11Lmhhc1VucGlwZWQmJih1Lmhhc1VucGlwZWQ9ITAsZnVuY3Rpb24gY2xlYW51cCgpe2ooImNsZWFudXAiKSxzLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsb25jbG9zZSkscy5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixvbmZpbmlzaCkscy5yZW1vdmVMaXN0ZW5lcigiZHJhaW4iLHgpLHMucmVtb3ZlTGlzdGVuZXIoImVycm9yIixvbmVycm9yKSxzLnJlbW92ZUxpc3RlbmVyKCJ1bnBpcGUiLG9udW5waXBlKSxpLnJlbW92ZUxpc3RlbmVyKCJlbmQiLG9uZW5kKSxpLnJlbW92ZUxpc3RlbmVyKCJlbmQiLHVucGlwZSksaS5yZW1vdmVMaXN0ZW5lcigiZGF0YSIsb25kYXRhKSxDPSEwLCFhLmF3YWl0RHJhaW58fHMuX3dyaXRhYmxlU3RhdGUmJiFzLl93cml0YWJsZVN0YXRlLm5lZWREcmFpbnx8eCgpfSgpKX1mdW5jdGlvbiBvbmVuZCgpe2ooIm9uZW5kIikscy5lbmQoKX1hLmVuZEVtaXR0ZWQ/dS5uZXh0VGljayh3KTppLm9uY2UoImVuZCIsdykscy5vbigidW5waXBlIixvbnVucGlwZSk7dmFyIHg9ZnVuY3Rpb24gcGlwZU9uRHJhaW4ocyl7cmV0dXJuIGZ1bmN0aW9uIHBpcGVPbkRyYWluRnVuY3Rpb25SZXN1bHQoKXt2YXIgbz1zLl9yZWFkYWJsZVN0YXRlO2ooInBpcGVPbkRyYWluIixvLmF3YWl0RHJhaW4pLG8uYXdhaXREcmFpbiYmby5hd2FpdERyYWluLS0sMD09PW8uYXdhaXREcmFpbiYmXyhzLCJkYXRhIikmJihvLmZsb3dpbmc9ITAsZmxvdyhzKSl9fShpKTtzLm9uKCJkcmFpbiIseCk7dmFyIEM9ITE7ZnVuY3Rpb24gb25kYXRhKG8pe2ooIm9uZGF0YSIpO3ZhciB1PXMud3JpdGUobyk7aigiZGVzdC53cml0ZSIsdSksITE9PT11JiYoKDE9PT1hLnBpcGVzQ291bnQmJmEucGlwZXM9PT1zfHxhLnBpcGVzQ291bnQ+MSYmLTEhPT1pbmRleE9mKGEucGlwZXMscykpJiYhQyYmKGooImZhbHNlIHdyaXRlIHJlc3BvbnNlLCBwYXVzZSIsYS5hd2FpdERyYWluKSxhLmF3YWl0RHJhaW4rKyksaS5wYXVzZSgpKX1mdW5jdGlvbiBvbmVycm9yKG8pe2ooIm9uZXJyb3IiLG8pLHVucGlwZSgpLHMucmVtb3ZlTGlzdGVuZXIoImVycm9yIixvbmVycm9yKSwwPT09XyhzLCJlcnJvciIpJiZsZShzLG8pfWZ1bmN0aW9uIG9uY2xvc2UoKXtzLnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLG9uZmluaXNoKSx1bnBpcGUoKX1mdW5jdGlvbiBvbmZpbmlzaCgpe2ooIm9uZmluaXNoIikscy5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLG9uY2xvc2UpLHVucGlwZSgpfWZ1bmN0aW9uIHVucGlwZSgpe2ooInVucGlwZSIpLGkudW5waXBlKHMpfXJldHVybiBpLm9uKCJkYXRhIixvbmRhdGEpLGZ1bmN0aW9uIHByZXBlbmRMaXN0ZW5lcihzLG8saSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHMucHJlcGVuZExpc3RlbmVyKXJldHVybiBzLnByZXBlbmRMaXN0ZW5lcihvLGkpO3MuX2V2ZW50cyYmcy5fZXZlbnRzW29dP0FycmF5LmlzQXJyYXkocy5fZXZlbnRzW29dKT9zLl9ldmVudHNbb10udW5zaGlmdChpKTpzLl9ldmVudHNbb109W2kscy5fZXZlbnRzW29dXTpzLm9uKG8saSl9KHMsImVycm9yIixvbmVycm9yKSxzLm9uY2UoImNsb3NlIixvbmNsb3NlKSxzLm9uY2UoImZpbmlzaCIsb25maW5pc2gpLHMuZW1pdCgicGlwZSIsaSksYS5mbG93aW5nfHwoaigicGlwZSByZXN1bWUiKSxpLnJlc3VtZSgpKSxzfSxSZWFkYWJsZS5wcm90b3R5cGUudW5waXBlPWZ1bmN0aW9uKHMpe3ZhciBvPXRoaXMuX3JlYWRhYmxlU3RhdGUsaT17aGFzVW5waXBlZDohMX07aWYoMD09PW8ucGlwZXNDb3VudClyZXR1cm4gdGhpcztpZigxPT09by5waXBlc0NvdW50KXJldHVybiBzJiZzIT09by5waXBlc3x8KHN8fChzPW8ucGlwZXMpLG8ucGlwZXM9bnVsbCxvLnBpcGVzQ291bnQ9MCxvLmZsb3dpbmc9ITEscyYmcy5lbWl0KCJ1bnBpcGUiLHRoaXMsaSkpLHRoaXM7aWYoIXMpe3ZhciBhPW8ucGlwZXMsdT1vLnBpcGVzQ291bnQ7by5waXBlcz1udWxsLG8ucGlwZXNDb3VudD0wLG8uZmxvd2luZz0hMTtmb3IodmFyIF89MDtfPHU7XysrKWFbX10uZW1pdCgidW5waXBlIix0aGlzLHtoYXNVbnBpcGVkOiExfSk7cmV0dXJuIHRoaXN9dmFyIHc9aW5kZXhPZihvLnBpcGVzLHMpO3JldHVybi0xPT09d3x8KG8ucGlwZXMuc3BsaWNlKHcsMSksby5waXBlc0NvdW50LT0xLDE9PT1vLnBpcGVzQ291bnQmJihvLnBpcGVzPW8ucGlwZXNbMF0pLHMuZW1pdCgidW5waXBlIix0aGlzLGkpKSx0aGlzfSxSZWFkYWJsZS5wcm90b3R5cGUub249ZnVuY3Rpb24ocyxvKXt2YXIgaT13LnByb3RvdHlwZS5vbi5jYWxsKHRoaXMscyxvKSxhPXRoaXMuX3JlYWRhYmxlU3RhdGU7cmV0dXJuImRhdGEiPT09cz8oYS5yZWFkYWJsZUxpc3RlbmluZz10aGlzLmxpc3RlbmVyQ291bnQoInJlYWRhYmxlIik+MCwhMSE9PWEuZmxvd2luZyYmdGhpcy5yZXN1bWUoKSk6InJlYWRhYmxlIj09PXMmJihhLmVuZEVtaXR0ZWR8fGEucmVhZGFibGVMaXN0ZW5pbmd8fChhLnJlYWRhYmxlTGlzdGVuaW5nPWEubmVlZFJlYWRhYmxlPSEwLGEuZmxvd2luZz0hMSxhLmVtaXR0ZWRSZWFkYWJsZT0hMSxqKCJvbiByZWFkYWJsZSIsYS5sZW5ndGgsYS5yZWFkaW5nKSxhLmxlbmd0aD9lbWl0UmVhZGFibGUodGhpcyk6YS5yZWFkaW5nfHx1Lm5leHRUaWNrKG5SZWFkaW5nTmV4dFRpY2ssdGhpcykpKSxpfSxSZWFkYWJsZS5wcm90b3R5cGUuYWRkTGlzdGVuZXI9UmVhZGFibGUucHJvdG90eXBlLm9uLFJlYWRhYmxlLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj1mdW5jdGlvbihzLG8pe3ZhciBpPXcucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyLmNhbGwodGhpcyxzLG8pO3JldHVybiJyZWFkYWJsZSI9PT1zJiZ1Lm5leHRUaWNrKHVwZGF0ZVJlYWRhYmxlTGlzdGVuaW5nLHRoaXMpLGl9LFJlYWRhYmxlLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnM9ZnVuY3Rpb24ocyl7dmFyIG89dy5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4icmVhZGFibGUiIT09cyYmdm9pZCAwIT09c3x8dS5uZXh0VGljayh1cGRhdGVSZWFkYWJsZUxpc3RlbmluZyx0aGlzKSxvfSxSZWFkYWJsZS5wcm90b3R5cGUucmVzdW1lPWZ1bmN0aW9uKCl7dmFyIHM9dGhpcy5fcmVhZGFibGVTdGF0ZTtyZXR1cm4gcy5mbG93aW5nfHwoaigicmVzdW1lIikscy5mbG93aW5nPSFzLnJlYWRhYmxlTGlzdGVuaW5nLGZ1bmN0aW9uIHJlc3VtZShzLG8pe28ucmVzdW1lU2NoZWR1bGVkfHwoby5yZXN1bWVTY2hlZHVsZWQ9ITAsdS5uZXh0VGljayhyZXN1bWVfLHMsbykpfSh0aGlzLHMpKSxzLnBhdXNlZD0hMSx0aGlzfSxSZWFkYWJsZS5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oKXtyZXR1cm4gaigiY2FsbCBwYXVzZSBmbG93aW5nPSVqIix0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcpLCExIT09dGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nJiYoaigicGF1c2UiKSx0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmc9ITEsdGhpcy5lbWl0KCJwYXVzZSIpKSx0aGlzLl9yZWFkYWJsZVN0YXRlLnBhdXNlZD0hMCx0aGlzfSxSZWFkYWJsZS5wcm90b3R5cGUud3JhcD1mdW5jdGlvbihzKXt2YXIgbz10aGlzLGk9dGhpcy5fcmVhZGFibGVTdGF0ZSxhPSExO2Zvcih2YXIgdSBpbiBzLm9uKCJlbmQiLChmdW5jdGlvbigpe2lmKGooIndyYXBwZWQgZW5kIiksaS5kZWNvZGVyJiYhaS5lbmRlZCl7dmFyIHM9aS5kZWNvZGVyLmVuZCgpO3MmJnMubGVuZ3RoJiZvLnB1c2gocyl9by5wdXNoKG51bGwpfSkpLHMub24oImRhdGEiLChmdW5jdGlvbih1KXsoaigid3JhcHBlZCBkYXRhIiksaS5kZWNvZGVyJiYodT1pLmRlY29kZXIud3JpdGUodSkpLGkub2JqZWN0TW9kZSYmbnVsbD09dSl8fChpLm9iamVjdE1vZGV8fHUmJnUubGVuZ3RoKSYmKG8ucHVzaCh1KXx8KGE9ITAscy5wYXVzZSgpKSl9KSkscyl2b2lkIDA9PT10aGlzW3VdJiYiZnVuY3Rpb24iPT10eXBlb2Ygc1t1XSYmKHRoaXNbdV09ZnVuY3Rpb24gbWV0aG9kV3JhcChvKXtyZXR1cm4gZnVuY3Rpb24gbWV0aG9kV3JhcFJldHVybkZ1bmN0aW9uKCl7cmV0dXJuIHNbb10uYXBwbHkocyxhcmd1bWVudHMpfX0odSkpO2Zvcih2YXIgXz0wO188cGUubGVuZ3RoO18rKylzLm9uKHBlW19dLHRoaXMuZW1pdC5iaW5kKHRoaXMscGVbX10pKTtyZXR1cm4gdGhpcy5fcmVhZD1mdW5jdGlvbihvKXtqKCJ3cmFwcGVkIF9yZWFkIixvKSxhJiYoYT0hMSxzLnJlc3VtZSgpKX0sdGhpc30sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKFJlYWRhYmxlLnByb3RvdHlwZVtTeW1ib2wuYXN5bmNJdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09JCYmKCQ9aSgyOTU1KSksJCh0aGlzKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWFkYWJsZS5wcm90b3R5cGUsInJlYWRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uIGdldCgpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlYWRhYmxlLnByb3RvdHlwZSwicmVhZGFibGVCdWZmZXIiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbiBnZXQoKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlYWRhYmxlLnByb3RvdHlwZSwicmVhZGFibGVGbG93aW5nIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZ30sc2V0OmZ1bmN0aW9uIHNldChzKXt0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nPXMpfX0pLFJlYWRhYmxlLl9mcm9tTGlzdD1mcm9tTGlzdCxPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVhZGFibGUucHJvdG90eXBlLCJyZWFkYWJsZUxlbmd0aCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uIGdldCgpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmxlbmd0aH19KSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoUmVhZGFibGUuZnJvbT1mdW5jdGlvbihzLG8pe3JldHVybiB2b2lkIDA9PT1WJiYoVj1pKDU1MTU3KSksVihSZWFkYWJsZSxzLG8pfSl9LDQ1NDM0OnM9Pnt2YXIgbz0vW2Etel1bQS1aXXxbQS1aXXsyfVthLXpdfFswLTldW2EtekEtWl18W2EtekEtWl1bMC05XXxbXmEtekEtWjAtOSBdLztzLmV4cG9ydHM9ZnVuY3Rpb24gaGFzVW5pY29kZVdvcmQocyl7cmV0dXJuIG8udGVzdChzKX19LDQ1NTM5OihzLG8saSk9Pnt2YXIgYT1pKDQwODgyKSx1PWkoNTA4MjgpLF89aSg2NjY0NSksdz1SZWdFeHAoIlsn4oCZXSIsImciKTtzLmV4cG9ydHM9ZnVuY3Rpb24gY3JlYXRlQ29tcG91bmRlcihzKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIGEoXyh1KG8pLnJlcGxhY2UodywiIikpLHMsIiIpfX19LDQ1ODA3OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgxOTA3KSx1PWEoe30udG9TdHJpbmcpLF89YSgiIi5zbGljZSk7cy5leHBvcnRzPWZ1bmN0aW9uKHMpe3JldHVybiBfKHUocyksOCwtMSl9fSw0NTg5MToocyxvLGkpPT57dmFyIGE9aSg1MTg3MyksdT1pKDcyNDI4KSxfPWkoNTY0NDkpLHc9YT9hLmlzQ29uY2F0U3ByZWFkYWJsZTp2b2lkIDA7cy5leHBvcnRzPWZ1bmN0aW9uIGlzRmxhdHRlbmFibGUocyl7cmV0dXJuIF8ocyl8fHUocyl8fCEhKHcmJnMmJnNbd10pfX0sNDU5NTE6ZnVuY3Rpb24ocyxvLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgY2hlY2s9ZnVuY3Rpb24ocyl7cmV0dXJuIHMmJnMuTWF0aD09PU1hdGgmJnN9O3MuZXhwb3J0cz1jaGVjaygib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMpfHxjaGVjaygib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93KXx8Y2hlY2soIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmKXx8Y2hlY2soIm9iamVjdCI9PXR5cGVvZiBpLmcmJmkuZyl8fGNoZWNrKCJvYmplY3QiPT10eXBlb2YgdGhpcyYmdGhpcyl8fGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCl8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCl9LDQ1OTgxOnM9PntmdW5jdGlvbiBkZWVwRnJlZXplKHMpe3JldHVybiBzIGluc3RhbmNlb2YgTWFwP3MuY2xlYXI9cy5kZWxldGU9cy5zZXQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIm1hcCBpcyByZWFkLW9ubHkiKX06cyBpbnN0YW5jZW9mIFNldCYmKHMuYWRkPXMuY2xlYXI9cy5kZWxldGU9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoInNldCBpcyByZWFkLW9ubHkiKX0pLE9iamVjdC5mcmVlemUocyksT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMocykuZm9yRWFjaCgoZnVuY3Rpb24obyl7dmFyIGk9c1tvXTsib2JqZWN0IiE9dHlwZW9mIGl8fE9iamVjdC5pc0Zyb3plbihpKXx8ZGVlcEZyZWV6ZShpKX0pKSxzfXZhciBvPWRlZXBGcmVlemUsaT1kZWVwRnJlZXplO28uZGVmYXVsdD1pO2NsYXNzIFJlc3BvbnNle2NvbnN0cnVjdG9yKHMpe3ZvaWQgMD09PXMuZGF0YSYmKHMuZGF0YT17fSksdGhpcy5kYXRhPXMuZGF0YSx0aGlzLmlzTWF0Y2hJZ25vcmVkPSExfWlnbm9yZU1hdGNoKCl7dGhpcy5pc01hdGNoSWdub3JlZD0hMH19ZnVuY3Rpb24gZXNjYXBlSFRNTChzKXtyZXR1cm4gcy5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvIi9nLCImcXVvdDsiKS5yZXBsYWNlKC8nL2csIiYjeDI3OyIpfWZ1bmN0aW9uIGluaGVyaXQocywuLi5vKXtjb25zdCBpPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGNvbnN0IG8gaW4gcylpW29dPXNbb107cmV0dXJuIG8uZm9yRWFjaCgoZnVuY3Rpb24ocyl7Zm9yKGNvbnN0IG8gaW4gcylpW29dPXNbb119KSksaX1jb25zdCBlbWl0c1dyYXBwaW5nVGFncz1zPT4hIXMua2luZDtjbGFzcyBIVE1MUmVuZGVyZXJ7Y29uc3RydWN0b3IocyxvKXt0aGlzLmJ1ZmZlcj0iIix0aGlzLmNsYXNzUHJlZml4PW8uY2xhc3NQcmVmaXgscy53YWxrKHRoaXMpfWFkZFRleHQocyl7dGhpcy5idWZmZXIrPWVzY2FwZUhUTUwocyl9b3Blbk5vZGUocyl7aWYoIWVtaXRzV3JhcHBpbmdUYWdzKHMpKXJldHVybjtsZXQgbz1zLmtpbmQ7cy5zdWJsYW5ndWFnZXx8KG89YCR7dGhpcy5jbGFzc1ByZWZpeH0ke299YCksdGhpcy5zcGFuKG8pfWNsb3NlTm9kZShzKXtlbWl0c1dyYXBwaW5nVGFncyhzKSYmKHRoaXMuYnVmZmVyKz0iPC9zcGFuPiIpfXZhbHVlKCl7cmV0dXJuIHRoaXMuYnVmZmVyfXNwYW4ocyl7dGhpcy5idWZmZXIrPWA8c3BhbiBjbGFzcz0iJHtzfSI+YH19Y2xhc3MgVG9rZW5UcmVle2NvbnN0cnVjdG9yKCl7dGhpcy5yb290Tm9kZT17Y2hpbGRyZW46W119LHRoaXMuc3RhY2s9W3RoaXMucm9vdE5vZGVdfWdldCB0b3AoKXtyZXR1cm4gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXX1nZXQgcm9vdCgpe3JldHVybiB0aGlzLnJvb3ROb2RlfWFkZChzKXt0aGlzLnRvcC5jaGlsZHJlbi5wdXNoKHMpfW9wZW5Ob2RlKHMpe2NvbnN0IG89e2tpbmQ6cyxjaGlsZHJlbjpbXX07dGhpcy5hZGQobyksdGhpcy5zdGFjay5wdXNoKG8pfWNsb3NlTm9kZSgpe2lmKHRoaXMuc3RhY2subGVuZ3RoPjEpcmV0dXJuIHRoaXMuc3RhY2sucG9wKCl9Y2xvc2VBbGxOb2Rlcygpe2Zvcig7dGhpcy5jbG9zZU5vZGUoKTspO310b0pTT04oKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5yb290Tm9kZSxudWxsLDQpfXdhbGsocyl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuX3dhbGsocyx0aGlzLnJvb3ROb2RlKX1zdGF0aWMgX3dhbGsocyxvKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIG8/cy5hZGRUZXh0KG8pOm8uY2hpbGRyZW4mJihzLm9wZW5Ob2RlKG8pLG8uY2hpbGRyZW4uZm9yRWFjaCgobz0+dGhpcy5fd2FsayhzLG8pKSkscy5jbG9zZU5vZGUobykpLHN9c3RhdGljIF9jb2xsYXBzZShzKXsic3RyaW5nIiE9dHlwZW9mIHMmJnMuY2hpbGRyZW4mJihzLmNoaWxkcmVuLmV2ZXJ5KChzPT4ic3RyaW5nIj09dHlwZW9mIHMpKT9zLmNoaWxkcmVuPVtzLmNoaWxkcmVuLmpvaW4oIiIpXTpzLmNoaWxkcmVuLmZvckVhY2goKHM9PntUb2tlblRyZWUuX2NvbGxhcHNlKHMpfSkpKX19Y2xhc3MgVG9rZW5UcmVlRW1pdHRlciBleHRlbmRzIFRva2VuVHJlZXtjb25zdHJ1Y3RvcihzKXtzdXBlcigpLHRoaXMub3B0aW9ucz1zfWFkZEtleXdvcmQocyxvKXsiIiE9PXMmJih0aGlzLm9wZW5Ob2RlKG8pLHRoaXMuYWRkVGV4dChzKSx0aGlzLmNsb3NlTm9kZSgpKX1hZGRUZXh0KHMpeyIiIT09cyYmdGhpcy5hZGQocyl9YWRkU3VibGFuZ3VhZ2UocyxvKXtjb25zdCBpPXMucm9vdDtpLmtpbmQ9byxpLnN1Ymxhbmd1YWdlPSEwLHRoaXMuYWRkKGkpfXRvSFRNTCgpe3JldHVybiBuZXcgSFRNTFJlbmRlcmVyKHRoaXMsdGhpcy5vcHRpb25zKS52YWx1ZSgpfWZpbmFsaXplKCl7cmV0dXJuITB9fWZ1bmN0aW9uIHNvdXJjZShzKXtyZXR1cm4gcz8ic3RyaW5nIj09dHlwZW9mIHM/czpzLnNvdXJjZTpudWxsfWNvbnN0IGE9L1xbKD86W15cXFxdXXxcXC4pKlxdfFwoXD8/fFxcKFsxLTldWzAtOV0qKXxcXC4vO2NvbnN0IHU9IlthLXpBLVpdXFx3KiIsXz0iW2EtekEtWl9dXFx3KiIsdz0iXFxiXFxkKyhcXC5cXGQrKT8iLHg9IigtPykoXFxiMFt4WF1bYS1mQS1GMC05XSt8KFxcYlxcZCsoXFwuXFxkKik/fFxcLlxcZCspKFtlRV1bLStdP1xcZCspPykiLEM9IlxcYigwYlswMV0rKSIsaj17YmVnaW46IlxcXFxbXFxzXFxTXSIscmVsZXZhbmNlOjB9LEw9e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiJyIsZW5kOiInIixpbGxlZ2FsOiJcXG4iLGNvbnRhaW5zOltqXX0sQj17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiciJyxlbmQ6JyInLGlsbGVnYWw6IlxcbiIsY29udGFpbnM6W2pdfSwkPXtiZWdpbjovXGIoYXxhbnx0aGV8YXJlfEknbXxpc24ndHxkb24ndHxkb2Vzbid0fHdvbid0fGJ1dHxqdXN0fHNob3VsZHxwcmV0dHl8c2ltcGx5fGVub3VnaHxnb25uYXxnb2luZ3x3dGZ8c298c3VjaHx3aWxsfHlvdXx5b3VyfHRoZXl8bGlrZXxtb3JlKVxiL30sQ09NTUVOVD1mdW5jdGlvbihzLG8saT17fSl7Y29uc3QgYT1pbmhlcml0KHtjbGFzc05hbWU6ImNvbW1lbnQiLGJlZ2luOnMsZW5kOm8sY29udGFpbnM6W119LGkpO3JldHVybiBhLmNvbnRhaW5zLnB1c2goJCksYS5jb250YWlucy5wdXNoKHtjbGFzc05hbWU6ImRvY3RhZyIsYmVnaW46Iig/OlRPRE98RklYTUV8Tk9URXxCVUd8T1BUSU1JWkV8SEFDS3xYWFgpOiIscmVsZXZhbmNlOjB9KSxhfSxWPUNPTU1FTlQoIi8vIiwiJCIpLFU9Q09NTUVOVCgiL1xcKiIsIlxcKi8iKSx6PUNPTU1FTlQoIiMiLCIkIiksWT17Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOncscmVsZXZhbmNlOjB9LFo9e2NsYXNzTmFtZToibnVtYmVyIixiZWdpbjp4LHJlbGV2YW5jZTowfSxlZT17Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOkMscmVsZXZhbmNlOjB9LGllPXtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46dysiKCV8ZW18ZXh8Y2h8cmVtfHZ3fHZofHZtaW58dm1heHxjbXxtbXxpbnxwdHxwY3xweHxkZWd8Z3JhZHxyYWR8dHVybnxzfG1zfEh6fGtIenxkcGl8ZHBjbXxkcHB4KT8iLHJlbGV2YW5jZTowfSxhZT17YmVnaW46Lyg/PVwvW14vXG5dKlwvKS8sY29udGFpbnM6W3tjbGFzc05hbWU6InJlZ2V4cCIsYmVnaW46L1wvLyxlbmQ6L1wvW2dpbXV5XSovLGlsbGVnYWw6L1xuLyxjb250YWluczpbaix7YmVnaW46L1xbLyxlbmQ6L1xdLyxyZWxldmFuY2U6MCxjb250YWluczpbal19XX1dfSxjZT17Y2xhc3NOYW1lOiJ0aXRsZSIsYmVnaW46dSxyZWxldmFuY2U6MH0sbGU9e2NsYXNzTmFtZToidGl0bGUiLGJlZ2luOl8scmVsZXZhbmNlOjB9LHBlPXtiZWdpbjoiXFwuXFxzKiIrXyxyZWxldmFuY2U6MH07dmFyIGRlPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLE1BVENIX05PVEhJTkdfUkU6L1xiXEIvLElERU5UX1JFOnUsVU5ERVJTQ09SRV9JREVOVF9SRTpfLE5VTUJFUl9SRTp3LENfTlVNQkVSX1JFOngsQklOQVJZX05VTUJFUl9SRTpDLFJFX1NUQVJURVJTX1JFOiIhfCE9fCE9PXwlfCU9fCZ8JiZ8Jj18XFwqfFxcKj18XFwrfFxcKz18LHwtfC09fC89fC98Onw7fDw8fDw8PXw8PXw8fD09PXw9PXw9fD4+Pj18Pj49fD49fD4+Pnw+Pnw+fFxcP3xcXFt8XFx7fFxcKHxcXF58XFxePXxcXHx8XFx8PXxcXHxcXHx8fiIsU0hFQkFORzoocz17fSk9Pntjb25zdCBvPS9eIyFbIF0qXC8vO3JldHVybiBzLmJpbmFyeSYmKHMuYmVnaW49ZnVuY3Rpb24gY29uY2F0KC4uLnMpe3JldHVybiBzLm1hcCgocz0+c291cmNlKHMpKSkuam9pbigiIil9KG8sLy4qXGIvLHMuYmluYXJ5LC9cYi4qLykpLGluaGVyaXQoe2NsYXNzTmFtZToibWV0YSIsYmVnaW46byxlbmQ6LyQvLHJlbGV2YW5jZTowLCJvbjpiZWdpbiI6KHMsbyk9PnswIT09cy5pbmRleCYmby5pZ25vcmVNYXRjaCgpfX0scyl9LEJBQ0tTTEFTSF9FU0NBUEU6aixBUE9TX1NUUklOR19NT0RFOkwsUVVPVEVfU1RSSU5HX01PREU6QixQSFJBU0FMX1dPUkRTX01PREU6JCxDT01NRU5ULENfTElORV9DT01NRU5UX01PREU6VixDX0JMT0NLX0NPTU1FTlRfTU9ERTpVLEhBU0hfQ09NTUVOVF9NT0RFOnosTlVNQkVSX01PREU6WSxDX05VTUJFUl9NT0RFOlosQklOQVJZX05VTUJFUl9NT0RFOmVlLENTU19OVU1CRVJfTU9ERTppZSxSRUdFWFBfTU9ERTphZSxUSVRMRV9NT0RFOmNlLFVOREVSU0NPUkVfVElUTEVfTU9ERTpsZSxNRVRIT0RfR1VBUkQ6cGUsRU5EX1NBTUVfQVNfQkVHSU46ZnVuY3Rpb24ocyl7cmV0dXJuIE9iamVjdC5hc3NpZ24ocyx7Im9uOmJlZ2luIjoocyxvKT0+e28uZGF0YS5fYmVnaW5NYXRjaD1zWzFdfSwib246ZW5kIjoocyxvKT0+e28uZGF0YS5fYmVnaW5NYXRjaCE9PXNbMV0mJm8uaWdub3JlTWF0Y2goKX19KX19KTtmdW5jdGlvbiBza2lwSWZoYXNQcmVjZWRpbmdEb3QocyxvKXsiLiI9PT1zLmlucHV0W3MuaW5kZXgtMV0mJm8uaWdub3JlTWF0Y2goKX1mdW5jdGlvbiBiZWdpbktleXdvcmRzKHMsbyl7byYmcy5iZWdpbktleXdvcmRzJiYocy5iZWdpbj0iXFxiKCIrcy5iZWdpbktleXdvcmRzLnNwbGl0KCIgIikuam9pbigifCIpKyIpKD8hXFwuKSg/PVxcYnxcXHMpIixzLl9fYmVmb3JlQmVnaW49c2tpcElmaGFzUHJlY2VkaW5nRG90LHMua2V5d29yZHM9cy5rZXl3b3Jkc3x8cy5iZWdpbktleXdvcmRzLGRlbGV0ZSBzLmJlZ2luS2V5d29yZHMsdm9pZCAwPT09cy5yZWxldmFuY2UmJihzLnJlbGV2YW5jZT0wKSl9ZnVuY3Rpb24gY29tcGlsZUlsbGVnYWwocyxvKXtBcnJheS5pc0FycmF5KHMuaWxsZWdhbCkmJihzLmlsbGVnYWw9ZnVuY3Rpb24gZWl0aGVyKC4uLnMpe3JldHVybiIoIitzLm1hcCgocz0+c291cmNlKHMpKSkuam9pbigifCIpKyIpIn0oLi4ucy5pbGxlZ2FsKSl9ZnVuY3Rpb24gY29tcGlsZU1hdGNoKHMsbyl7aWYocy5tYXRjaCl7aWYocy5iZWdpbnx8cy5lbmQpdGhyb3cgbmV3IEVycm9yKCJiZWdpbiAmIGVuZCBhcmUgbm90IHN1cHBvcnRlZCB3aXRoIG1hdGNoIik7cy5iZWdpbj1zLm1hdGNoLGRlbGV0ZSBzLm1hdGNofX1mdW5jdGlvbiBjb21waWxlUmVsZXZhbmNlKHMsbyl7dm9pZCAwPT09cy5yZWxldmFuY2UmJihzLnJlbGV2YW5jZT0xKX1jb25zdCBmZT1bIm9mIiwiYW5kIiwiZm9yIiwiaW4iLCJub3QiLCJvciIsImlmIiwidGhlbiIsInBhcmVudCIsImxpc3QiLCJ2YWx1ZSJdO2Z1bmN0aW9uIGNvbXBpbGVLZXl3b3JkcyhzLG8saT0ia2V5d29yZCIpe2NvbnN0IGE9e307cmV0dXJuInN0cmluZyI9PXR5cGVvZiBzP2NvbXBpbGVMaXN0KGkscy5zcGxpdCgiICIpKTpBcnJheS5pc0FycmF5KHMpP2NvbXBpbGVMaXN0KGkscyk6T2JqZWN0LmtleXMocykuZm9yRWFjaCgoZnVuY3Rpb24oaSl7T2JqZWN0LmFzc2lnbihhLGNvbXBpbGVLZXl3b3JkcyhzW2ldLG8saSkpfSkpLGE7ZnVuY3Rpb24gY29tcGlsZUxpc3QocyxpKXtvJiYoaT1pLm1hcCgocz0+cy50b0xvd2VyQ2FzZSgpKSkpLGkuZm9yRWFjaCgoZnVuY3Rpb24obyl7Y29uc3QgaT1vLnNwbGl0KCJ8Iik7YVtpWzBdXT1bcyxzY29yZUZvcktleXdvcmQoaVswXSxpWzFdKV19KSl9fWZ1bmN0aW9uIHNjb3JlRm9yS2V5d29yZChzLG8pe3JldHVybiBvP051bWJlcihvKTpmdW5jdGlvbiBjb21tb25LZXl3b3JkKHMpe3JldHVybiBmZS5pbmNsdWRlcyhzLnRvTG93ZXJDYXNlKCkpfShzKT8wOjF9ZnVuY3Rpb24gY29tcGlsZUxhbmd1YWdlKHMse3BsdWdpbnM6b30pe2Z1bmN0aW9uIGxhbmdSZShvLGkpe3JldHVybiBuZXcgUmVnRXhwKHNvdXJjZShvKSwibSIrKHMuY2FzZV9pbnNlbnNpdGl2ZT8iaSI6IiIpKyhpPyJnIjoiIikpfWNsYXNzIE11bHRpUmVnZXh7Y29uc3RydWN0b3IoKXt0aGlzLm1hdGNoSW5kZXhlcz17fSx0aGlzLnJlZ2V4ZXM9W10sdGhpcy5tYXRjaEF0PTEsdGhpcy5wb3NpdGlvbj0wfWFkZFJ1bGUocyxvKXtvLnBvc2l0aW9uPXRoaXMucG9zaXRpb24rKyx0aGlzLm1hdGNoSW5kZXhlc1t0aGlzLm1hdGNoQXRdPW8sdGhpcy5yZWdleGVzLnB1c2goW28sc10pLHRoaXMubWF0Y2hBdCs9ZnVuY3Rpb24gY291bnRNYXRjaEdyb3VwcyhzKXtyZXR1cm4gbmV3IFJlZ0V4cChzLnRvU3RyaW5nKCkrInwiKS5leGVjKCIiKS5sZW5ndGgtMX0ocykrMX1jb21waWxlKCl7MD09PXRoaXMucmVnZXhlcy5sZW5ndGgmJih0aGlzLmV4ZWM9KCk9Pm51bGwpO2NvbnN0IHM9dGhpcy5yZWdleGVzLm1hcCgocz0+c1sxXSkpO3RoaXMubWF0Y2hlclJlPWxhbmdSZShmdW5jdGlvbiBqb2luKHMsbz0ifCIpe2xldCBpPTA7cmV0dXJuIHMubWFwKChzPT57aSs9MTtjb25zdCBvPWk7bGV0IHU9c291cmNlKHMpLF89IiI7Zm9yKDt1Lmxlbmd0aD4wOyl7Y29uc3Qgcz1hLmV4ZWModSk7aWYoIXMpe18rPXU7YnJlYWt9Xys9dS5zdWJzdHJpbmcoMCxzLmluZGV4KSx1PXUuc3Vic3RyaW5nKHMuaW5kZXgrc1swXS5sZW5ndGgpLCJcXCI9PT1zWzBdWzBdJiZzWzFdP18rPSJcXCIrU3RyaW5nKE51bWJlcihzWzFdKStvKTooXys9c1swXSwiKCI9PT1zWzBdJiZpKyspfXJldHVybiBffSkpLm1hcCgocz0+YCgke3N9KWApKS5qb2luKG8pfShzKSwhMCksdGhpcy5sYXN0SW5kZXg9MH1leGVjKHMpe3RoaXMubWF0Y2hlclJlLmxhc3RJbmRleD10aGlzLmxhc3RJbmRleDtjb25zdCBvPXRoaXMubWF0Y2hlclJlLmV4ZWMocyk7aWYoIW8pcmV0dXJuIG51bGw7Y29uc3QgaT1vLmZpbmRJbmRleCgoKHMsbyk9Pm8+MCYmdm9pZCAwIT09cykpLGE9dGhpcy5tYXRjaEluZGV4ZXNbaV07cmV0dXJuIG8uc3BsaWNlKDAsaSksT2JqZWN0LmFzc2lnbihvLGEpfX1jbGFzcyBSZXN1bWFibGVNdWx0aVJlZ2V4e2NvbnN0cnVjdG9yKCl7dGhpcy5ydWxlcz1bXSx0aGlzLm11bHRpUmVnZXhlcz1bXSx0aGlzLmNvdW50PTAsdGhpcy5sYXN0SW5kZXg9MCx0aGlzLnJlZ2V4SW5kZXg9MH1nZXRNYXRjaGVyKHMpe2lmKHRoaXMubXVsdGlSZWdleGVzW3NdKXJldHVybiB0aGlzLm11bHRpUmVnZXhlc1tzXTtjb25zdCBvPW5ldyBNdWx0aVJlZ2V4O3JldHVybiB0aGlzLnJ1bGVzLnNsaWNlKHMpLmZvckVhY2goKChbcyxpXSk9Pm8uYWRkUnVsZShzLGkpKSksby5jb21waWxlKCksdGhpcy5tdWx0aVJlZ2V4ZXNbc109byxvfXJlc3VtaW5nU2NhbkF0U2FtZVBvc2l0aW9uKCl7cmV0dXJuIDAhPT10aGlzLnJlZ2V4SW5kZXh9Y29uc2lkZXJBbGwoKXt0aGlzLnJlZ2V4SW5kZXg9MH1hZGRSdWxlKHMsbyl7dGhpcy5ydWxlcy5wdXNoKFtzLG9dKSwiYmVnaW4iPT09by50eXBlJiZ0aGlzLmNvdW50Kyt9ZXhlYyhzKXtjb25zdCBvPXRoaXMuZ2V0TWF0Y2hlcih0aGlzLnJlZ2V4SW5kZXgpO28ubGFzdEluZGV4PXRoaXMubGFzdEluZGV4O2xldCBpPW8uZXhlYyhzKTtpZih0aGlzLnJlc3VtaW5nU2NhbkF0U2FtZVBvc2l0aW9uKCkpaWYoaSYmaS5pbmRleD09PXRoaXMubGFzdEluZGV4KTtlbHNle2NvbnN0IG89dGhpcy5nZXRNYXRjaGVyKDApO28ubGFzdEluZGV4PXRoaXMubGFzdEluZGV4KzEsaT1vLmV4ZWMocyl9cmV0dXJuIGkmJih0aGlzLnJlZ2V4SW5kZXgrPWkucG9zaXRpb24rMSx0aGlzLnJlZ2V4SW5kZXg9PT10aGlzLmNvdW50JiZ0aGlzLmNvbnNpZGVyQWxsKCkpLGl9fWlmKHMuY29tcGlsZXJFeHRlbnNpb25zfHwocy5jb21waWxlckV4dGVuc2lvbnM9W10pLHMuY29udGFpbnMmJnMuY29udGFpbnMuaW5jbHVkZXMoInNlbGYiKSl0aHJvdyBuZXcgRXJyb3IoIkVSUjogY29udGFpbnMgYHNlbGZgIGlzIG5vdCBzdXBwb3J0ZWQgYXQgdGhlIHRvcC1sZXZlbCBvZiBhIGxhbmd1YWdlLiAgU2VlIGRvY3VtZW50YXRpb24uIik7cmV0dXJuIHMuY2xhc3NOYW1lQWxpYXNlcz1pbmhlcml0KHMuY2xhc3NOYW1lQWxpYXNlc3x8e30pLGZ1bmN0aW9uIGNvbXBpbGVNb2RlKG8saSl7Y29uc3QgYT1vO2lmKG8uaXNDb21waWxlZClyZXR1cm4gYTtbY29tcGlsZU1hdGNoXS5mb3JFYWNoKChzPT5zKG8saSkpKSxzLmNvbXBpbGVyRXh0ZW5zaW9ucy5mb3JFYWNoKChzPT5zKG8saSkpKSxvLl9fYmVmb3JlQmVnaW49bnVsbCxbYmVnaW5LZXl3b3Jkcyxjb21waWxlSWxsZWdhbCxjb21waWxlUmVsZXZhbmNlXS5mb3JFYWNoKChzPT5zKG8saSkpKSxvLmlzQ29tcGlsZWQ9ITA7bGV0IHU9bnVsbDtpZigib2JqZWN0Ij09dHlwZW9mIG8ua2V5d29yZHMmJih1PW8ua2V5d29yZHMuJHBhdHRlcm4sZGVsZXRlIG8ua2V5d29yZHMuJHBhdHRlcm4pLG8ua2V5d29yZHMmJihvLmtleXdvcmRzPWNvbXBpbGVLZXl3b3JkcyhvLmtleXdvcmRzLHMuY2FzZV9pbnNlbnNpdGl2ZSkpLG8ubGV4ZW1lcyYmdSl0aHJvdyBuZXcgRXJyb3IoIkVSUjogUHJlZmVyIGBrZXl3b3Jkcy4kcGF0dGVybmAgdG8gYG1vZGUubGV4ZW1lc2AsIEJPVEggYXJlIG5vdCBhbGxvd2VkLiAoc2VlIG1vZGUgcmVmZXJlbmNlKSAiKTtyZXR1cm4gdT11fHxvLmxleGVtZXN8fC9cdysvLGEua2V5d29yZFBhdHRlcm5SZT1sYW5nUmUodSwhMCksaSYmKG8uYmVnaW58fChvLmJlZ2luPS9cQnxcYi8pLGEuYmVnaW5SZT1sYW5nUmUoby5iZWdpbiksby5lbmRTYW1lQXNCZWdpbiYmKG8uZW5kPW8uYmVnaW4pLG8uZW5kfHxvLmVuZHNXaXRoUGFyZW50fHwoby5lbmQ9L1xCfFxiLyksby5lbmQmJihhLmVuZFJlPWxhbmdSZShvLmVuZCkpLGEudGVybWluYXRvckVuZD1zb3VyY2Uoby5lbmQpfHwiIixvLmVuZHNXaXRoUGFyZW50JiZpLnRlcm1pbmF0b3JFbmQmJihhLnRlcm1pbmF0b3JFbmQrPShvLmVuZD8ifCI6IiIpK2kudGVybWluYXRvckVuZCkpLG8uaWxsZWdhbCYmKGEuaWxsZWdhbFJlPWxhbmdSZShvLmlsbGVnYWwpKSxvLmNvbnRhaW5zfHwoby5jb250YWlucz1bXSksby5jb250YWlucz1bXS5jb25jYXQoLi4uby5jb250YWlucy5tYXAoKGZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbiBleHBhbmRPckNsb25lTW9kZShzKXtzLnZhcmlhbnRzJiYhcy5jYWNoZWRWYXJpYW50cyYmKHMuY2FjaGVkVmFyaWFudHM9cy52YXJpYW50cy5tYXAoKGZ1bmN0aW9uKG8pe3JldHVybiBpbmhlcml0KHMse3ZhcmlhbnRzOm51bGx9LG8pfSkpKTtpZihzLmNhY2hlZFZhcmlhbnRzKXJldHVybiBzLmNhY2hlZFZhcmlhbnRzO2lmKGRlcGVuZGVuY3lPblBhcmVudChzKSlyZXR1cm4gaW5oZXJpdChzLHtzdGFydHM6cy5zdGFydHM/aW5oZXJpdChzLnN0YXJ0cyk6bnVsbH0pO2lmKE9iamVjdC5pc0Zyb3plbihzKSlyZXR1cm4gaW5oZXJpdChzKTtyZXR1cm4gc30oInNlbGYiPT09cz9vOnMpfSkpKSxvLmNvbnRhaW5zLmZvckVhY2goKGZ1bmN0aW9uKHMpe2NvbXBpbGVNb2RlKHMsYSl9KSksby5zdGFydHMmJmNvbXBpbGVNb2RlKG8uc3RhcnRzLGkpLGEubWF0Y2hlcj1mdW5jdGlvbiBidWlsZE1vZGVSZWdleChzKXtjb25zdCBvPW5ldyBSZXN1bWFibGVNdWx0aVJlZ2V4O3JldHVybiBzLmNvbnRhaW5zLmZvckVhY2goKHM9Pm8uYWRkUnVsZShzLmJlZ2luLHtydWxlOnMsdHlwZToiYmVnaW4ifSkpKSxzLnRlcm1pbmF0b3JFbmQmJm8uYWRkUnVsZShzLnRlcm1pbmF0b3JFbmQse3R5cGU6ImVuZCJ9KSxzLmlsbGVnYWwmJm8uYWRkUnVsZShzLmlsbGVnYWwse3R5cGU6ImlsbGVnYWwifSksb30oYSksYX0ocyl9ZnVuY3Rpb24gZGVwZW5kZW5jeU9uUGFyZW50KHMpe3JldHVybiEhcyYmKHMuZW5kc1dpdGhQYXJlbnR8fGRlcGVuZGVuY3lPblBhcmVudChzLnN0YXJ0cykpfWZ1bmN0aW9uIEJ1aWxkVnVlUGx1Z2luKHMpe2NvbnN0IG89e3Byb3BzOlsibGFuZ3VhZ2UiLCJjb2RlIiwiYXV0b2RldGVjdCJdLGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57ZGV0ZWN0ZWRMYW5ndWFnZToiIix1bmtub3duTGFuZ3VhZ2U6ITF9fSxjb21wdXRlZDp7Y2xhc3NOYW1lKCl7cmV0dXJuIHRoaXMudW5rbm93bkxhbmd1YWdlPyIiOiJobGpzICIrdGhpcy5kZXRlY3RlZExhbmd1YWdlfSxoaWdobGlnaHRlZCgpe2lmKCF0aGlzLmF1dG9EZXRlY3QmJiFzLmdldExhbmd1YWdlKHRoaXMubGFuZ3VhZ2UpKXJldHVybiBjb25zb2xlLndhcm4oYFRoZSBsYW5ndWFnZSAiJHt0aGlzLmxhbmd1YWdlfSIgeW91IHNwZWNpZmllZCBjb3VsZCBub3QgYmUgZm91bmQuYCksdGhpcy51bmtub3duTGFuZ3VhZ2U9ITAsZXNjYXBlSFRNTCh0aGlzLmNvZGUpO2xldCBvPXt9O3JldHVybiB0aGlzLmF1dG9EZXRlY3Q/KG89cy5oaWdobGlnaHRBdXRvKHRoaXMuY29kZSksdGhpcy5kZXRlY3RlZExhbmd1YWdlPW8ubGFuZ3VhZ2UpOihvPXMuaGlnaGxpZ2h0KHRoaXMubGFuZ3VhZ2UsdGhpcy5jb2RlLHRoaXMuaWdub3JlSWxsZWdhbHMpLHRoaXMuZGV0ZWN0ZWRMYW5ndWFnZT10aGlzLmxhbmd1YWdlKSxvLnZhbHVlfSxhdXRvRGV0ZWN0KCl7cmV0dXJuIXRoaXMubGFuZ3VhZ2V8fGZ1bmN0aW9uIGhhc1ZhbHVlT3JFbXB0eUF0dHJpYnV0ZShzKXtyZXR1cm4gQm9vbGVhbihzfHwiIj09PXMpfSh0aGlzLmF1dG9kZXRlY3QpfSxpZ25vcmVJbGxlZ2FsczooKT0+ITB9LHJlbmRlcihzKXtyZXR1cm4gcygicHJlIix7fSxbcygiY29kZSIse2NsYXNzOnRoaXMuY2xhc3NOYW1lLGRvbVByb3BzOntpbm5lckhUTUw6dGhpcy5oaWdobGlnaHRlZH19KV0pfX07cmV0dXJue0NvbXBvbmVudDpvLFZ1ZVBsdWdpbjp7aW5zdGFsbChzKXtzLmNvbXBvbmVudCgiaGlnaGxpZ2h0anMiLG8pfX19fWNvbnN0IHllPXsiYWZ0ZXI6aGlnaGxpZ2h0RWxlbWVudCI6KHtlbDpzLHJlc3VsdDpvLHRleHQ6aX0pPT57Y29uc3QgYT1ub2RlU3RyZWFtKHMpO2lmKCFhLmxlbmd0aClyZXR1cm47Y29uc3QgdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt1LmlubmVySFRNTD1vLnZhbHVlLG8udmFsdWU9ZnVuY3Rpb24gbWVyZ2VTdHJlYW1zKHMsbyxpKXtsZXQgYT0wLHU9IiI7Y29uc3QgXz1bXTtmdW5jdGlvbiBzZWxlY3RTdHJlYW0oKXtyZXR1cm4gcy5sZW5ndGgmJm8ubGVuZ3RoP3NbMF0ub2Zmc2V0IT09b1swXS5vZmZzZXQ/c1swXS5vZmZzZXQ8b1swXS5vZmZzZXQ/czpvOiJzdGFydCI9PT1vWzBdLmV2ZW50P3M6bzpzLmxlbmd0aD9zOm99ZnVuY3Rpb24gb3BlbihzKXtmdW5jdGlvbiBhdHRyaWJ1dGVTdHJpbmcocyl7cmV0dXJuIiAiK3Mubm9kZU5hbWUrJz0iJytlc2NhcGVIVE1MKHMudmFsdWUpKyciJ311Kz0iPCIrdGFnKHMpK1tdLm1hcC5jYWxsKHMuYXR0cmlidXRlcyxhdHRyaWJ1dGVTdHJpbmcpLmpvaW4oIiIpKyI+In1mdW5jdGlvbiBjbG9zZShzKXt1Kz0iPC8iK3RhZyhzKSsiPiJ9ZnVuY3Rpb24gcmVuZGVyKHMpeygic3RhcnQiPT09cy5ldmVudD9vcGVuOmNsb3NlKShzLm5vZGUpfWZvcig7cy5sZW5ndGh8fG8ubGVuZ3RoOyl7bGV0IG89c2VsZWN0U3RyZWFtKCk7aWYodSs9ZXNjYXBlSFRNTChpLnN1YnN0cmluZyhhLG9bMF0ub2Zmc2V0KSksYT1vWzBdLm9mZnNldCxvPT09cyl7Xy5yZXZlcnNlKCkuZm9yRWFjaChjbG9zZSk7ZG97cmVuZGVyKG8uc3BsaWNlKDAsMSlbMF0pLG89c2VsZWN0U3RyZWFtKCl9d2hpbGUobz09PXMmJm8ubGVuZ3RoJiZvWzBdLm9mZnNldD09PWEpO18ucmV2ZXJzZSgpLmZvckVhY2gob3Blbil9ZWxzZSJzdGFydCI9PT1vWzBdLmV2ZW50P18ucHVzaChvWzBdLm5vZGUpOl8ucG9wKCkscmVuZGVyKG8uc3BsaWNlKDAsMSlbMF0pfXJldHVybiB1K2VzY2FwZUhUTUwoaS5zdWJzdHIoYSkpfShhLG5vZGVTdHJlYW0odSksaSl9fTtmdW5jdGlvbiB0YWcocyl7cmV0dXJuIHMubm9kZU5hbWUudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBub2RlU3RyZWFtKHMpe2NvbnN0IG89W107cmV0dXJuIGZ1bmN0aW9uIF9ub2RlU3RyZWFtKHMsaSl7Zm9yKGxldCBhPXMuZmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZykzPT09YS5ub2RlVHlwZT9pKz1hLm5vZGVWYWx1ZS5sZW5ndGg6MT09PWEubm9kZVR5cGUmJihvLnB1c2goe2V2ZW50OiJzdGFydCIsb2Zmc2V0Omksbm9kZTphfSksaT1fbm9kZVN0cmVhbShhLGkpLHRhZyhhKS5tYXRjaCgvYnJ8aHJ8aW1nfGlucHV0Lyl8fG8ucHVzaCh7ZXZlbnQ6InN0b3AiLG9mZnNldDppLG5vZGU6YX0pKTtyZXR1cm4gaX0ocywwKSxvfWNvbnN0IGJlPXt9LGVycm9yPXM9Pntjb25zb2xlLmVycm9yKHMpfSx3YXJuPShzLC4uLm8pPT57Y29uc29sZS5sb2coYFdBUk46ICR7c31gLC4uLm8pfSxkZXByZWNhdGVkPShzLG8pPT57YmVbYCR7c30vJHtvfWBdfHwoY29uc29sZS5sb2coYERlcHJlY2F0ZWQgYXMgb2YgJHtzfS4gJHtvfWApLGJlW2Ake3N9LyR7b31gXT0hMCl9LF9lPWVzY2FwZUhUTUwsU2U9aW5oZXJpdCx3ZT1TeW1ib2woIm5vbWF0Y2giKTt2YXIgeGU9ZnVuY3Rpb24ocyl7Y29uc3QgaT1PYmplY3QuY3JlYXRlKG51bGwpLGE9T2JqZWN0LmNyZWF0ZShudWxsKSx1PVtdO2xldCBfPSEwO2NvbnN0IHc9LyheKDxbXj5dKz58XHR8KSt8XG4pL2dtLHg9IkNvdWxkIG5vdCBmaW5kIHRoZSBsYW5ndWFnZSAne30nLCBkaWQgeW91IGZvcmdldCB0byBsb2FkL2luY2x1ZGUgYSBsYW5ndWFnZSBtb2R1bGU/IixDPXtkaXNhYmxlQXV0b2RldGVjdDohMCxuYW1lOiJQbGFpbiB0ZXh0Iixjb250YWluczpbXX07bGV0IGo9e25vSGlnaGxpZ2h0UmU6L14obm8tP2hpZ2hsaWdodCkkL2ksbGFuZ3VhZ2VEZXRlY3RSZTovXGJsYW5nKD86dWFnZSk/LShbXHctXSspXGIvaSxjbGFzc1ByZWZpeDoiaGxqcy0iLHRhYlJlcGxhY2U6bnVsbCx1c2VCUjohMSxsYW5ndWFnZXM6bnVsbCxfX2VtaXR0ZXI6VG9rZW5UcmVlRW1pdHRlcn07ZnVuY3Rpb24gc2hvdWxkTm90SGlnaGxpZ2h0KHMpe3JldHVybiBqLm5vSGlnaGxpZ2h0UmUudGVzdChzKX1mdW5jdGlvbiBoaWdobGlnaHQocyxvLGksYSl7bGV0IHU9IiIsXz0iIjsib2JqZWN0Ij09dHlwZW9mIG8/KHU9cyxpPW8uaWdub3JlSWxsZWdhbHMsXz1vLmxhbmd1YWdlLGE9dm9pZCAwKTooZGVwcmVjYXRlZCgiMTAuNy4wIiwiaGlnaGxpZ2h0KGxhbmcsIGNvZGUsIC4uLmFyZ3MpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIiksZGVwcmVjYXRlZCgiMTAuNy4wIiwiUGxlYXNlIHVzZSBoaWdobGlnaHQoY29kZSwgb3B0aW9ucykgaW5zdGVhZC5cbmh0dHBzOi8vZ2l0aHViLmNvbS9oaWdobGlnaHRqcy9oaWdobGlnaHQuanMvaXNzdWVzLzIyNzciKSxfPXMsdT1vKTtjb25zdCB3PXtjb2RlOnUsbGFuZ3VhZ2U6X307ZmlyZSgiYmVmb3JlOmhpZ2hsaWdodCIsdyk7Y29uc3QgeD13LnJlc3VsdD93LnJlc3VsdDpfaGlnaGxpZ2h0KHcubGFuZ3VhZ2Usdy5jb2RlLGksYSk7cmV0dXJuIHguY29kZT13LmNvZGUsZmlyZSgiYWZ0ZXI6aGlnaGxpZ2h0Iix4KSx4fWZ1bmN0aW9uIF9oaWdobGlnaHQocyxvLGEsdyl7ZnVuY3Rpb24ga2V5d29yZERhdGEocyxvKXtjb25zdCBpPUwuY2FzZV9pbnNlbnNpdGl2ZT9vWzBdLnRvTG93ZXJDYXNlKCk6b1swXTtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMua2V5d29yZHMsaSkmJnMua2V5d29yZHNbaV19ZnVuY3Rpb24gcHJvY2Vzc0J1ZmZlcigpe251bGwhPVYuc3ViTGFuZ3VhZ2U/ZnVuY3Rpb24gcHJvY2Vzc1N1Ykxhbmd1YWdlKCl7aWYoIiI9PT1ZKXJldHVybjtsZXQgcz1udWxsO2lmKCJzdHJpbmciPT10eXBlb2YgVi5zdWJMYW5ndWFnZSl7aWYoIWlbVi5zdWJMYW5ndWFnZV0pcmV0dXJuIHZvaWQgei5hZGRUZXh0KFkpO3M9X2hpZ2hsaWdodChWLnN1Ykxhbmd1YWdlLFksITAsVVtWLnN1Ykxhbmd1YWdlXSksVVtWLnN1Ykxhbmd1YWdlXT1zLnRvcH1lbHNlIHM9aGlnaGxpZ2h0QXV0byhZLFYuc3ViTGFuZ3VhZ2UubGVuZ3RoP1Yuc3ViTGFuZ3VhZ2U6bnVsbCk7Vi5yZWxldmFuY2U+MCYmKForPXMucmVsZXZhbmNlKSx6LmFkZFN1Ymxhbmd1YWdlKHMuZW1pdHRlcixzLmxhbmd1YWdlKX0oKTpmdW5jdGlvbiBwcm9jZXNzS2V5d29yZHMoKXtpZighVi5rZXl3b3JkcylyZXR1cm4gdm9pZCB6LmFkZFRleHQoWSk7bGV0IHM9MDtWLmtleXdvcmRQYXR0ZXJuUmUubGFzdEluZGV4PTA7bGV0IG89Vi5rZXl3b3JkUGF0dGVyblJlLmV4ZWMoWSksaT0iIjtmb3IoO287KXtpKz1ZLnN1YnN0cmluZyhzLG8uaW5kZXgpO2NvbnN0IGE9a2V5d29yZERhdGEoVixvKTtpZihhKXtjb25zdFtzLHVdPWE7aWYoei5hZGRUZXh0KGkpLGk9IiIsWis9dSxzLnN0YXJ0c1dpdGgoIl8iKSlpKz1vWzBdO2Vsc2V7Y29uc3QgaT1MLmNsYXNzTmFtZUFsaWFzZXNbc118fHM7ei5hZGRLZXl3b3JkKG9bMF0saSl9fWVsc2UgaSs9b1swXTtzPVYua2V5d29yZFBhdHRlcm5SZS5sYXN0SW5kZXgsbz1WLmtleXdvcmRQYXR0ZXJuUmUuZXhlYyhZKX1pKz1ZLnN1YnN0cihzKSx6LmFkZFRleHQoaSl9KCksWT0iIn1mdW5jdGlvbiBzdGFydE5ld01vZGUocyl7cmV0dXJuIHMuY2xhc3NOYW1lJiZ6Lm9wZW5Ob2RlKEwuY2xhc3NOYW1lQWxpYXNlc1tzLmNsYXNzTmFtZV18fHMuY2xhc3NOYW1lKSxWPU9iamVjdC5jcmVhdGUocyx7cGFyZW50Ont2YWx1ZTpWfX0pLFZ9ZnVuY3Rpb24gZW5kT2ZNb2RlKHMsbyxpKXtsZXQgYT1mdW5jdGlvbiBzdGFydHNXaXRoKHMsbyl7Y29uc3QgaT1zJiZzLmV4ZWMobyk7cmV0dXJuIGkmJjA9PT1pLmluZGV4fShzLmVuZFJlLGkpO2lmKGEpe2lmKHNbIm9uOmVuZCJdKXtjb25zdCBpPW5ldyBSZXNwb25zZShzKTtzWyJvbjplbmQiXShvLGkpLGkuaXNNYXRjaElnbm9yZWQmJihhPSExKX1pZihhKXtmb3IoO3MuZW5kc1BhcmVudCYmcy5wYXJlbnQ7KXM9cy5wYXJlbnQ7cmV0dXJuIHN9fWlmKHMuZW5kc1dpdGhQYXJlbnQpcmV0dXJuIGVuZE9mTW9kZShzLnBhcmVudCxvLGkpfWZ1bmN0aW9uIGRvSWdub3JlKHMpe3JldHVybiAwPT09Vi5tYXRjaGVyLnJlZ2V4SW5kZXg/KFkrPXNbMF0sMSk6KGFlPSEwLDApfWZ1bmN0aW9uIGRvQmVnaW5NYXRjaChzKXtjb25zdCBvPXNbMF0saT1zLnJ1bGUsYT1uZXcgUmVzcG9uc2UoaSksdT1baS5fX2JlZm9yZUJlZ2luLGlbIm9uOmJlZ2luIl1dO2Zvcihjb25zdCBpIG9mIHUpaWYoaSYmKGkocyxhKSxhLmlzTWF0Y2hJZ25vcmVkKSlyZXR1cm4gZG9JZ25vcmUobyk7cmV0dXJuIGkmJmkuZW5kU2FtZUFzQmVnaW4mJihpLmVuZFJlPWZ1bmN0aW9uIGVzY2FwZShzKXtyZXR1cm4gbmV3IFJlZ0V4cChzLnJlcGxhY2UoL1stL1xcXiQqKz8uKCl8W1xde31dL2csIlxcJCYiKSwibSIpfShvKSksaS5za2lwP1krPW86KGkuZXhjbHVkZUJlZ2luJiYoWSs9bykscHJvY2Vzc0J1ZmZlcigpLGkucmV0dXJuQmVnaW58fGkuZXhjbHVkZUJlZ2lufHwoWT1vKSksc3RhcnROZXdNb2RlKGkpLGkucmV0dXJuQmVnaW4/MDpvLmxlbmd0aH1mdW5jdGlvbiBkb0VuZE1hdGNoKHMpe2NvbnN0IGk9c1swXSxhPW8uc3Vic3RyKHMuaW5kZXgpLHU9ZW5kT2ZNb2RlKFYscyxhKTtpZighdSlyZXR1cm4gd2U7Y29uc3QgXz1WO18uc2tpcD9ZKz1pOihfLnJldHVybkVuZHx8Xy5leGNsdWRlRW5kfHwoWSs9aSkscHJvY2Vzc0J1ZmZlcigpLF8uZXhjbHVkZUVuZCYmKFk9aSkpO2Rve1YuY2xhc3NOYW1lJiZ6LmNsb3NlTm9kZSgpLFYuc2tpcHx8Vi5zdWJMYW5ndWFnZXx8KForPVYucmVsZXZhbmNlKSxWPVYucGFyZW50fXdoaWxlKFYhPT11LnBhcmVudCk7cmV0dXJuIHUuc3RhcnRzJiYodS5lbmRTYW1lQXNCZWdpbiYmKHUuc3RhcnRzLmVuZFJlPXUuZW5kUmUpLHN0YXJ0TmV3TW9kZSh1LnN0YXJ0cykpLF8ucmV0dXJuRW5kPzA6aS5sZW5ndGh9bGV0IEM9e307ZnVuY3Rpb24gcHJvY2Vzc0xleGVtZShpLHUpe2NvbnN0IHc9dSYmdVswXTtpZihZKz1pLG51bGw9PXcpcmV0dXJuIHByb2Nlc3NCdWZmZXIoKSwwO2lmKCJiZWdpbiI9PT1DLnR5cGUmJiJlbmQiPT09dS50eXBlJiZDLmluZGV4PT09dS5pbmRleCYmIiI9PT13KXtpZihZKz1vLnNsaWNlKHUuaW5kZXgsdS5pbmRleCsxKSwhXyl7Y29uc3Qgbz1uZXcgRXJyb3IoIjAgd2lkdGggbWF0Y2ggcmVnZXgiKTt0aHJvdyBvLmxhbmd1YWdlTmFtZT1zLG8uYmFkUnVsZT1DLnJ1bGUsb31yZXR1cm4gMX1pZihDPXUsImJlZ2luIj09PXUudHlwZSlyZXR1cm4gZG9CZWdpbk1hdGNoKHUpO2lmKCJpbGxlZ2FsIj09PXUudHlwZSYmIWEpe2NvbnN0IHM9bmV3IEVycm9yKCdJbGxlZ2FsIGxleGVtZSAiJyt3KyciIGZvciBtb2RlICInKyhWLmNsYXNzTmFtZXx8Ijx1bm5hbWVkPiIpKyciJyk7dGhyb3cgcy5tb2RlPVYsc31pZigiZW5kIj09PXUudHlwZSl7Y29uc3Qgcz1kb0VuZE1hdGNoKHUpO2lmKHMhPT13ZSlyZXR1cm4gc31pZigiaWxsZWdhbCI9PT11LnR5cGUmJiIiPT09dylyZXR1cm4gMTtpZihpZT4xZTUmJmllPjMqdS5pbmRleCl7dGhyb3cgbmV3IEVycm9yKCJwb3RlbnRpYWwgaW5maW5pdGUgbG9vcCwgd2F5IG1vcmUgaXRlcmF0aW9ucyB0aGFuIG1hdGNoZXMiKX1yZXR1cm4gWSs9dyx3Lmxlbmd0aH1jb25zdCBMPWdldExhbmd1YWdlKHMpO2lmKCFMKXRocm93IGVycm9yKHgucmVwbGFjZSgie30iLHMpKSxuZXcgRXJyb3IoJ1Vua25vd24gbGFuZ3VhZ2U6ICInK3MrJyInKTtjb25zdCBCPWNvbXBpbGVMYW5ndWFnZShMLHtwbHVnaW5zOnV9KTtsZXQgJD0iIixWPXd8fEI7Y29uc3QgVT17fSx6PW5ldyBqLl9fZW1pdHRlcihqKTshZnVuY3Rpb24gcHJvY2Vzc0NvbnRpbnVhdGlvbnMoKXtjb25zdCBzPVtdO2ZvcihsZXQgbz1WO28hPT1MO289by5wYXJlbnQpby5jbGFzc05hbWUmJnMudW5zaGlmdChvLmNsYXNzTmFtZSk7cy5mb3JFYWNoKChzPT56Lm9wZW5Ob2RlKHMpKSl9KCk7bGV0IFk9IiIsWj0wLGVlPTAsaWU9MCxhZT0hMTt0cnl7Zm9yKFYubWF0Y2hlci5jb25zaWRlckFsbCgpOzspe2llKyssYWU/YWU9ITE6Vi5tYXRjaGVyLmNvbnNpZGVyQWxsKCksVi5tYXRjaGVyLmxhc3RJbmRleD1lZTtjb25zdCBzPVYubWF0Y2hlci5leGVjKG8pO2lmKCFzKWJyZWFrO2NvbnN0IGk9cHJvY2Vzc0xleGVtZShvLnN1YnN0cmluZyhlZSxzLmluZGV4KSxzKTtlZT1zLmluZGV4K2l9cmV0dXJuIHByb2Nlc3NMZXhlbWUoby5zdWJzdHIoZWUpKSx6LmNsb3NlQWxsTm9kZXMoKSx6LmZpbmFsaXplKCksJD16LnRvSFRNTCgpLHtyZWxldmFuY2U6TWF0aC5mbG9vcihaKSx2YWx1ZTokLGxhbmd1YWdlOnMsaWxsZWdhbDohMSxlbWl0dGVyOnosdG9wOlZ9fWNhdGNoKGkpe2lmKGkubWVzc2FnZSYmaS5tZXNzYWdlLmluY2x1ZGVzKCJJbGxlZ2FsIikpcmV0dXJue2lsbGVnYWw6ITAsaWxsZWdhbEJ5Onttc2c6aS5tZXNzYWdlLGNvbnRleHQ6by5zbGljZShlZS0xMDAsZWUrMTAwKSxtb2RlOmkubW9kZX0sc29mYXI6JCxyZWxldmFuY2U6MCx2YWx1ZTpfZShvKSxlbWl0dGVyOnp9O2lmKF8pcmV0dXJue2lsbGVnYWw6ITEscmVsZXZhbmNlOjAsdmFsdWU6X2UobyksZW1pdHRlcjp6LGxhbmd1YWdlOnMsdG9wOlYsZXJyb3JSYWlzZWQ6aX07dGhyb3cgaX19ZnVuY3Rpb24gaGlnaGxpZ2h0QXV0byhzLG8pe289b3x8ai5sYW5ndWFnZXN8fE9iamVjdC5rZXlzKGkpO2NvbnN0IGE9ZnVuY3Rpb24ganVzdFRleHRIaWdobGlnaHRSZXN1bHQocyl7Y29uc3Qgbz17cmVsZXZhbmNlOjAsZW1pdHRlcjpuZXcgai5fX2VtaXR0ZXIoaiksdmFsdWU6X2UocyksaWxsZWdhbDohMSx0b3A6Q307cmV0dXJuIG8uZW1pdHRlci5hZGRUZXh0KHMpLG99KHMpLHU9by5maWx0ZXIoZ2V0TGFuZ3VhZ2UpLmZpbHRlcihhdXRvRGV0ZWN0aW9uKS5tYXAoKG89Pl9oaWdobGlnaHQobyxzLCExKSkpO3UudW5zaGlmdChhKTtjb25zdCBfPXUuc29ydCgoKHMsbyk9PntpZihzLnJlbGV2YW5jZSE9PW8ucmVsZXZhbmNlKXJldHVybiBvLnJlbGV2YW5jZS1zLnJlbGV2YW5jZTtpZihzLmxhbmd1YWdlJiZvLmxhbmd1YWdlKXtpZihnZXRMYW5ndWFnZShzLmxhbmd1YWdlKS5zdXBlcnNldE9mPT09by5sYW5ndWFnZSlyZXR1cm4gMTtpZihnZXRMYW5ndWFnZShvLmxhbmd1YWdlKS5zdXBlcnNldE9mPT09cy5sYW5ndWFnZSlyZXR1cm4tMX1yZXR1cm4gMH0pKSxbdyx4XT1fLEw9dztyZXR1cm4gTC5zZWNvbmRfYmVzdD14LEx9Y29uc3QgTD17ImJlZm9yZTpoaWdobGlnaHRFbGVtZW50Ijooe2VsOnN9KT0+e2oudXNlQlImJihzLmlubmVySFRNTD1zLmlubmVySFRNTC5yZXBsYWNlKC9cbi9nLCIiKS5yZXBsYWNlKC88YnJbIC9dKj4vZywiXG4iKSl9LCJhZnRlcjpoaWdobGlnaHRFbGVtZW50Ijooe3Jlc3VsdDpzfSk9PntqLnVzZUJSJiYocy52YWx1ZT1zLnZhbHVlLnJlcGxhY2UoL1xuL2csIjxicj4iKSl9fSxCPS9eKDxbXj5dKz58XHQpKy9nbSwkPXsiYWZ0ZXI6aGlnaGxpZ2h0RWxlbWVudCI6KHtyZXN1bHQ6c30pPT57ai50YWJSZXBsYWNlJiYocy52YWx1ZT1zLnZhbHVlLnJlcGxhY2UoQiwocz0+cy5yZXBsYWNlKC9cdC9nLGoudGFiUmVwbGFjZSkpKSl9fTtmdW5jdGlvbiBoaWdobGlnaHRFbGVtZW50KHMpe2xldCBvPW51bGw7Y29uc3QgaT1mdW5jdGlvbiBibG9ja0xhbmd1YWdlKHMpe2xldCBvPXMuY2xhc3NOYW1lKyIgIjtvKz1zLnBhcmVudE5vZGU/cy5wYXJlbnROb2RlLmNsYXNzTmFtZToiIjtjb25zdCBpPWoubGFuZ3VhZ2VEZXRlY3RSZS5leGVjKG8pO2lmKGkpe2NvbnN0IG89Z2V0TGFuZ3VhZ2UoaVsxXSk7cmV0dXJuIG98fCh3YXJuKHgucmVwbGFjZSgie30iLGlbMV0pKSx3YXJuKCJGYWxsaW5nIGJhY2sgdG8gbm8taGlnaGxpZ2h0IG1vZGUgZm9yIHRoaXMgYmxvY2suIixzKSksbz9pWzFdOiJuby1oaWdobGlnaHQifXJldHVybiBvLnNwbGl0KC9ccysvKS5maW5kKChzPT5zaG91bGROb3RIaWdobGlnaHQocyl8fGdldExhbmd1YWdlKHMpKSl9KHMpO2lmKHNob3VsZE5vdEhpZ2hsaWdodChpKSlyZXR1cm47ZmlyZSgiYmVmb3JlOmhpZ2hsaWdodEVsZW1lbnQiLHtlbDpzLGxhbmd1YWdlOml9KSxvPXM7Y29uc3QgdT1vLnRleHRDb250ZW50LF89aT9oaWdobGlnaHQodSx7bGFuZ3VhZ2U6aSxpZ25vcmVJbGxlZ2FsczohMH0pOmhpZ2hsaWdodEF1dG8odSk7ZmlyZSgiYWZ0ZXI6aGlnaGxpZ2h0RWxlbWVudCIse2VsOnMscmVzdWx0Ol8sdGV4dDp1fSkscy5pbm5lckhUTUw9Xy52YWx1ZSxmdW5jdGlvbiB1cGRhdGVDbGFzc05hbWUocyxvLGkpe2NvbnN0IHU9bz9hW29dOmk7cy5jbGFzc0xpc3QuYWRkKCJobGpzIiksdSYmcy5jbGFzc0xpc3QuYWRkKHUpfShzLGksXy5sYW5ndWFnZSkscy5yZXN1bHQ9e2xhbmd1YWdlOl8ubGFuZ3VhZ2UscmU6Xy5yZWxldmFuY2UscmVsYXZhbmNlOl8ucmVsZXZhbmNlfSxfLnNlY29uZF9iZXN0JiYocy5zZWNvbmRfYmVzdD17bGFuZ3VhZ2U6Xy5zZWNvbmRfYmVzdC5sYW5ndWFnZSxyZTpfLnNlY29uZF9iZXN0LnJlbGV2YW5jZSxyZWxhdmFuY2U6Xy5zZWNvbmRfYmVzdC5yZWxldmFuY2V9KX1jb25zdCBpbml0SGlnaGxpZ2h0aW5nPSgpPT57aWYoaW5pdEhpZ2hsaWdodGluZy5jYWxsZWQpcmV0dXJuO2luaXRIaWdobGlnaHRpbmcuY2FsbGVkPSEwLGRlcHJlY2F0ZWQoIjEwLjYuMCIsImluaXRIaWdobGlnaHRpbmcoKSBpcyBkZXByZWNhdGVkLiAgVXNlIGhpZ2hsaWdodEFsbCgpIGluc3RlYWQuIik7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgicHJlIGNvZGUiKS5mb3JFYWNoKGhpZ2hsaWdodEVsZW1lbnQpfTtsZXQgVj0hMTtmdW5jdGlvbiBoaWdobGlnaHRBbGwoKXtpZigibG9hZGluZyI9PT1kb2N1bWVudC5yZWFkeVN0YXRlKXJldHVybiB2b2lkKFY9ITApO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInByZSBjb2RlIikuZm9yRWFjaChoaWdobGlnaHRFbGVtZW50KX1mdW5jdGlvbiBnZXRMYW5ndWFnZShzKXtyZXR1cm4gcz0oc3x8IiIpLnRvTG93ZXJDYXNlKCksaVtzXXx8aVthW3NdXX1mdW5jdGlvbiByZWdpc3RlckFsaWFzZXMocyx7bGFuZ3VhZ2VOYW1lOm99KXsic3RyaW5nIj09dHlwZW9mIHMmJihzPVtzXSkscy5mb3JFYWNoKChzPT57YVtzLnRvTG93ZXJDYXNlKCldPW99KSl9ZnVuY3Rpb24gYXV0b0RldGVjdGlvbihzKXtjb25zdCBvPWdldExhbmd1YWdlKHMpO3JldHVybiBvJiYhby5kaXNhYmxlQXV0b2RldGVjdH1mdW5jdGlvbiBmaXJlKHMsbyl7Y29uc3QgaT1zO3UuZm9yRWFjaCgoZnVuY3Rpb24ocyl7c1tpXSYmc1tpXShvKX0pKX0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93LmFkZEV2ZW50TGlzdGVuZXImJndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwoZnVuY3Rpb24gYm9vdCgpe1YmJmhpZ2hsaWdodEFsbCgpfSksITEpLE9iamVjdC5hc3NpZ24ocyx7aGlnaGxpZ2h0LGhpZ2hsaWdodEF1dG8saGlnaGxpZ2h0QWxsLGZpeE1hcmt1cDpmdW5jdGlvbiBkZXByZWNhdGVGaXhNYXJrdXAocyl7cmV0dXJuIGRlcHJlY2F0ZWQoIjEwLjIuMCIsImZpeE1hcmt1cCB3aWxsIGJlIHJlbW92ZWQgZW50aXJlbHkgaW4gdjExLjAiKSxkZXByZWNhdGVkKCIxMC4yLjAiLCJQbGVhc2Ugc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oaWdobGlnaHRqcy9oaWdobGlnaHQuanMvaXNzdWVzLzI1MzQiKSxmdW5jdGlvbiBmaXhNYXJrdXAocyl7cmV0dXJuIGoudGFiUmVwbGFjZXx8ai51c2VCUj9zLnJlcGxhY2Uodywocz0+IlxuIj09PXM/ai51c2VCUj8iPGJyPiI6czpqLnRhYlJlcGxhY2U/cy5yZXBsYWNlKC9cdC9nLGoudGFiUmVwbGFjZSk6cykpOnN9KHMpfSxoaWdobGlnaHRFbGVtZW50LGhpZ2hsaWdodEJsb2NrOmZ1bmN0aW9uIGRlcHJlY2F0ZUhpZ2hsaWdodEJsb2NrKHMpe3JldHVybiBkZXByZWNhdGVkKCIxMC43LjAiLCJoaWdobGlnaHRCbG9jayB3aWxsIGJlIHJlbW92ZWQgZW50aXJlbHkgaW4gdjEyLjAiKSxkZXByZWNhdGVkKCIxMC43LjAiLCJQbGVhc2UgdXNlIGhpZ2hsaWdodEVsZW1lbnQgbm93LiIpLGhpZ2hsaWdodEVsZW1lbnQocyl9LGNvbmZpZ3VyZTpmdW5jdGlvbiBjb25maWd1cmUocyl7cy51c2VCUiYmKGRlcHJlY2F0ZWQoIjEwLjMuMCIsIid1c2VCUicgd2lsbCBiZSByZW1vdmVkIGVudGlyZWx5IGluIHYxMS4wIiksZGVwcmVjYXRlZCgiMTAuMy4wIiwiUGxlYXNlIHNlZSBodHRwczovL2dpdGh1Yi5jb20vaGlnaGxpZ2h0anMvaGlnaGxpZ2h0LmpzL2lzc3Vlcy8yNTU5IikpLGo9U2UoaixzKX0saW5pdEhpZ2hsaWdodGluZyxpbml0SGlnaGxpZ2h0aW5nT25Mb2FkOmZ1bmN0aW9uIGluaXRIaWdobGlnaHRpbmdPbkxvYWQoKXtkZXByZWNhdGVkKCIxMC42LjAiLCJpbml0SGlnaGxpZ2h0aW5nT25Mb2FkKCkgaXMgZGVwcmVjYXRlZC4gIFVzZSBoaWdobGlnaHRBbGwoKSBpbnN0ZWFkLiIpLFY9ITB9LHJlZ2lzdGVyTGFuZ3VhZ2U6ZnVuY3Rpb24gcmVnaXN0ZXJMYW5ndWFnZShvLGEpe2xldCB1PW51bGw7dHJ5e3U9YShzKX1jYXRjaChzKXtpZihlcnJvcigiTGFuZ3VhZ2UgZGVmaW5pdGlvbiBmb3IgJ3t9JyBjb3VsZCBub3QgYmUgcmVnaXN0ZXJlZC4iLnJlcGxhY2UoInt9IixvKSksIV8pdGhyb3cgcztlcnJvcihzKSx1PUN9dS5uYW1lfHwodS5uYW1lPW8pLGlbb109dSx1LnJhd0RlZmluaXRpb249YS5iaW5kKG51bGwscyksdS5hbGlhc2VzJiZyZWdpc3RlckFsaWFzZXModS5hbGlhc2VzLHtsYW5ndWFnZU5hbWU6b30pfSx1bnJlZ2lzdGVyTGFuZ3VhZ2U6ZnVuY3Rpb24gdW5yZWdpc3Rlckxhbmd1YWdlKHMpe2RlbGV0ZSBpW3NdO2Zvcihjb25zdCBvIG9mIE9iamVjdC5rZXlzKGEpKWFbb109PT1zJiZkZWxldGUgYVtvXX0sbGlzdExhbmd1YWdlczpmdW5jdGlvbiBsaXN0TGFuZ3VhZ2VzKCl7cmV0dXJuIE9iamVjdC5rZXlzKGkpfSxnZXRMYW5ndWFnZSxyZWdpc3RlckFsaWFzZXMscmVxdWlyZUxhbmd1YWdlOmZ1bmN0aW9uIHJlcXVpcmVMYW5ndWFnZShzKXtkZXByZWNhdGVkKCIxMC40LjAiLCJyZXF1aXJlTGFuZ3VhZ2Ugd2lsbCBiZSByZW1vdmVkIGVudGlyZWx5IGluIHYxMS4iKSxkZXByZWNhdGVkKCIxMC40LjAiLCJQbGVhc2Ugc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oaWdobGlnaHRqcy9oaWdobGlnaHQuanMvcHVsbC8yODQ0Iik7Y29uc3Qgbz1nZXRMYW5ndWFnZShzKTtpZihvKXJldHVybiBvO3Rocm93IG5ldyBFcnJvcigiVGhlICd7fScgbGFuZ3VhZ2UgaXMgcmVxdWlyZWQsIGJ1dCBub3QgbG9hZGVkLiIucmVwbGFjZSgie30iLHMpKX0sYXV0b0RldGVjdGlvbixpbmhlcml0OlNlLGFkZFBsdWdpbjpmdW5jdGlvbiBhZGRQbHVnaW4ocyl7IWZ1bmN0aW9uIHVwZ3JhZGVQbHVnaW5BUEkocyl7c1siYmVmb3JlOmhpZ2hsaWdodEJsb2NrIl0mJiFzWyJiZWZvcmU6aGlnaGxpZ2h0RWxlbWVudCJdJiYoc1siYmVmb3JlOmhpZ2hsaWdodEVsZW1lbnQiXT1vPT57c1siYmVmb3JlOmhpZ2hsaWdodEJsb2NrIl0oT2JqZWN0LmFzc2lnbih7YmxvY2s6by5lbH0sbykpfSksc1siYWZ0ZXI6aGlnaGxpZ2h0QmxvY2siXSYmIXNbImFmdGVyOmhpZ2hsaWdodEVsZW1lbnQiXSYmKHNbImFmdGVyOmhpZ2hsaWdodEVsZW1lbnQiXT1vPT57c1siYWZ0ZXI6aGlnaGxpZ2h0QmxvY2siXShPYmplY3QuYXNzaWduKHtibG9jazpvLmVsfSxvKSl9KX0ocyksdS5wdXNoKHMpfSx2dWVQbHVnaW46QnVpbGRWdWVQbHVnaW4ocykuVnVlUGx1Z2lufSkscy5kZWJ1Z01vZGU9ZnVuY3Rpb24oKXtfPSExfSxzLnNhZmVNb2RlPWZ1bmN0aW9uKCl7Xz0hMH0scy52ZXJzaW9uU3RyaW5nPSIxMC43LjMiO2Zvcihjb25zdCBzIGluIGRlKSJvYmplY3QiPT10eXBlb2YgZGVbc10mJm8oZGVbc10pO3JldHVybiBPYmplY3QuYXNzaWduKHMsZGUpLHMuYWRkUGx1Z2luKEwpLHMuYWRkUGx1Z2luKHllKSxzLmFkZFBsdWdpbigkKSxzfSh7fSk7cy5leHBvcnRzPXhlfSw0NjAyODoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMTM5MzApLHU9aSg0NjI4NSksXz1pKDI1NTk0KSx3PWkoMjkzNjcpLHg9aSg2MDU4MSksQz1pKDc2MjY0KSxqPVR5cGVFcnJvcixMPUMoInRvUHJpbWl0aXZlIik7cy5leHBvcnRzPWZ1bmN0aW9uKHMsbyl7aWYoIXUocyl8fF8ocykpcmV0dXJuIHM7dmFyIGksQz13KHMsTCk7aWYoQyl7aWYodm9pZCAwPT09byYmKG89ImRlZmF1bHQiKSxpPWEoQyxzLG8pLCF1KGkpfHxfKGkpKXJldHVybiBpO3Rocm93IG5ldyBqKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX1yZXR1cm4gdm9pZCAwPT09byYmKG89Im51bWJlciIpLHgocyxvKX19LDQ2MDc2OihzLG8saSk9PnsidXNlIHN0cmljdCI7aSg5MTU5OSk7dmFyIGE9aSg2ODYyMyk7cy5leHBvcnRzPWF9LDQ2Mjg1OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg2MjI1MCk7cy5leHBvcnRzPWZ1bmN0aW9uKHMpe3JldHVybiJvYmplY3QiPT10eXBlb2Ygcz9udWxsIT09czphKHMpfX0sNDY5NDI6KHMsbyk9Pnt2YXIgaTshZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGE9e30uaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gY2xhc3NOYW1lcygpe2Zvcih2YXIgcz0iIixvPTA7bzxhcmd1bWVudHMubGVuZ3RoO28rKyl7dmFyIGk9YXJndW1lbnRzW29dO2kmJihzPWFwcGVuZENsYXNzKHMscGFyc2VWYWx1ZShpKSkpfXJldHVybiBzfWZ1bmN0aW9uIHBhcnNlVmFsdWUocyl7aWYoInN0cmluZyI9PXR5cGVvZiBzfHwibnVtYmVyIj09dHlwZW9mIHMpcmV0dXJuIHM7aWYoIm9iamVjdCIhPXR5cGVvZiBzKXJldHVybiIiO2lmKEFycmF5LmlzQXJyYXkocykpcmV0dXJuIGNsYXNzTmFtZXMuYXBwbHkobnVsbCxzKTtpZihzLnRvU3RyaW5nIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyYmIXMudG9TdHJpbmcudG9TdHJpbmcoKS5pbmNsdWRlcygiW25hdGl2ZSBjb2RlXSIpKXJldHVybiBzLnRvU3RyaW5nKCk7dmFyIG89IiI7Zm9yKHZhciBpIGluIHMpYS5jYWxsKHMsaSkmJnNbaV0mJihvPWFwcGVuZENsYXNzKG8saSkpO3JldHVybiBvfWZ1bmN0aW9uIGFwcGVuZENsYXNzKHMsbyl7cmV0dXJuIG8/cz9zKyIgIitvOnMrbzpzfXMuZXhwb3J0cz8oY2xhc3NOYW1lcy5kZWZhdWx0PWNsYXNzTmFtZXMscy5leHBvcnRzPWNsYXNzTmFtZXMpOnZvaWQgMD09PShpPWZ1bmN0aW9uKCl7cmV0dXJuIGNsYXNzTmFtZXN9LmFwcGx5KG8sW10pKXx8KHMuZXhwb3J0cz1pKX0oKX0sNDcxODE6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDk1MTE2KS5JdGVyYXRvclByb3RvdHlwZSx1PWkoNTgwNzUpLF89aSg3NTgxNyksdz1pKDE0ODQwKSx4PWkoOTM3NDIpLHJldHVyblRoaXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307cy5leHBvcnRzPWZ1bmN0aW9uKHMsbyxpLEMpe3ZhciBqPW8rIiBJdGVyYXRvciI7cmV0dXJuIHMucHJvdG90eXBlPXUoYSx7bmV4dDpfKCshQyxpKX0pLHcocyxqLCExLCEwKSx4W2pdPXJldHVyblRoaXMsc319LDQ3MjM3OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZVByb3BlcnR5KHMpe3JldHVybiBmdW5jdGlvbihvKXtyZXR1cm4gbnVsbD09bz92b2lkIDA6b1tzXX19fSw0NzI0ODoocyxvLGkpPT57dmFyIGE9aSgxNjU0NyksdT1pKDUxMjM0KTtzLmV4cG9ydHM9ZnVuY3Rpb24gemlwT2JqZWN0KHMsbyl7cmV0dXJuIHUoc3x8W10sb3x8W10sYSl9fSw0NzQyMjoocyxvLGkpPT57dmFyIGE9aSgzMTc2OSksdT1pKDc3Nzk3KTtzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZUdldChzLG8pe2Zvcih2YXIgaT0wLF89KG89YShvLHMpKS5sZW5ndGg7bnVsbCE9cyYmaTxfOylzPXNbdShvW2krK10pXTtyZXR1cm4gaSYmaT09Xz9zOnZvaWQgMH19LDQ3NDczOnM9Pnt2YXIgbz1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc7cy5leHBvcnRzPWZ1bmN0aW9uIHRvU291cmNlKHMpe2lmKG51bGwhPXMpe3RyeXtyZXR1cm4gby5jYWxsKHMpfWNhdGNoKHMpe310cnl7cmV0dXJuIHMrIiJ9Y2F0Y2gocyl7fX1yZXR1cm4iIn19LDQ3ODg2OihzLG8saSk9Pnt2YXIgYT1pKDU4NjEpLHU9aSg0MDM0Nik7cy5leHBvcnRzPWZ1bmN0aW9uIGlzV2Vha01hcChzKXtyZXR1cm4gdShzKSYmIltvYmplY3QgV2Vha01hcF0iPT1hKHMpfX0sNDc5MzQ6KHMsbyxpKT0+e3MuZXhwb3J0cz17YXJ5OmkoNjQ2MjYpLGFzc2lnbjppKDc0NzMzKSxjbG9uZTppKDMyNjI5KSxjdXJyeTppKDQ5NzQ3KSxmb3JFYWNoOmkoODM3MjkpLGlzQXJyYXk6aSg1NjQ0OSksaXNFcnJvcjppKDIzNTQ2KSxpc0Z1bmN0aW9uOmkoMTg4MiksaXNXZWFrTWFwOmkoNDc4ODYpLGl0ZXJhdGVlOmkoMzM4NTUpLGtleXM6aSg4ODk4NCkscmVhcmc6aSg4NDE5NSksdG9JbnRlZ2VyOmkoNjE0ODkpLHRvUGF0aDppKDQyMDcyKX19LDQ4MTUyOihzLG8saSk9Pnt2YXIgYT1pKDI4MzAzKSx1PWEmJm5ldyBhO3MuZXhwb3J0cz11fSw0ODI4NzoocyxvLGkpPT57InVzZSBzdHJpY3QiO2NvbnN0IGE9aSg2NzUyNiksdT1pKDI1MSksXz0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sLmZvcj9TeW1ib2wuZm9yKCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbSIpOm51bGw7by5CdWZmZXI9QnVmZmVyLG8uU2xvd0J1ZmZlcj1mdW5jdGlvbiBTbG93QnVmZmVyKHMpeytzIT1zJiYocz0wKTtyZXR1cm4gQnVmZmVyLmFsbG9jKCtzKX0sby5JTlNQRUNUX01BWF9CWVRFUz01MDtjb25zdCB3PTIxNDc0ODM2NDc7ZnVuY3Rpb24gY3JlYXRlQnVmZmVyKHMpe2lmKHM+dyl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlICInK3MrJyIgaXMgaW52YWxpZCBmb3Igb3B0aW9uICJzaXplIicpO2NvbnN0IG89bmV3IFVpbnQ4QXJyYXkocyk7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZihvLEJ1ZmZlci5wcm90b3R5cGUpLG99ZnVuY3Rpb24gQnVmZmVyKHMsbyxpKXtpZigibnVtYmVyIj09dHlwZW9mIHMpe2lmKCJzdHJpbmciPT10eXBlb2Ygbyl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInN0cmluZyIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZy4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTtyZXR1cm4gYWxsb2NVbnNhZmUocyl9cmV0dXJuIGZyb20ocyxvLGkpfWZ1bmN0aW9uIGZyb20ocyxvLGkpe2lmKCJzdHJpbmciPT10eXBlb2YgcylyZXR1cm4gZnVuY3Rpb24gZnJvbVN0cmluZyhzLG8peyJzdHJpbmciPT10eXBlb2YgbyYmIiIhPT1vfHwobz0idXRmOCIpO2lmKCFCdWZmZXIuaXNFbmNvZGluZyhvKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK28pO2NvbnN0IGk9MHxieXRlTGVuZ3RoKHMsbyk7bGV0IGE9Y3JlYXRlQnVmZmVyKGkpO2NvbnN0IHU9YS53cml0ZShzLG8pO3UhPT1pJiYoYT1hLnNsaWNlKDAsdSkpO3JldHVybiBhfShzLG8pO2lmKEFycmF5QnVmZmVyLmlzVmlldyhzKSlyZXR1cm4gZnVuY3Rpb24gZnJvbUFycmF5VmlldyhzKXtpZihpc0luc3RhbmNlKHMsVWludDhBcnJheSkpe2NvbnN0IG89bmV3IFVpbnQ4QXJyYXkocyk7cmV0dXJuIGZyb21BcnJheUJ1ZmZlcihvLmJ1ZmZlcixvLmJ5dGVPZmZzZXQsby5ieXRlTGVuZ3RoKX1yZXR1cm4gZnJvbUFycmF5TGlrZShzKX0ocyk7aWYobnVsbD09cyl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiBzKTtpZihpc0luc3RhbmNlKHMsQXJyYXlCdWZmZXIpfHxzJiZpc0luc3RhbmNlKHMuYnVmZmVyLEFycmF5QnVmZmVyKSlyZXR1cm4gZnJvbUFycmF5QnVmZmVyKHMsbyxpKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFNoYXJlZEFycmF5QnVmZmVyJiYoaXNJbnN0YW5jZShzLFNoYXJlZEFycmF5QnVmZmVyKXx8cyYmaXNJbnN0YW5jZShzLmJ1ZmZlcixTaGFyZWRBcnJheUJ1ZmZlcikpKXJldHVybiBmcm9tQXJyYXlCdWZmZXIocyxvLGkpO2lmKCJudW1iZXIiPT10eXBlb2Ygcyl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInZhbHVlIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTtjb25zdCBhPXMudmFsdWVPZiYmcy52YWx1ZU9mKCk7aWYobnVsbCE9YSYmYSE9PXMpcmV0dXJuIEJ1ZmZlci5mcm9tKGEsbyxpKTtjb25zdCB1PWZ1bmN0aW9uIGZyb21PYmplY3Qocyl7aWYoQnVmZmVyLmlzQnVmZmVyKHMpKXtjb25zdCBvPTB8Y2hlY2tlZChzLmxlbmd0aCksaT1jcmVhdGVCdWZmZXIobyk7cmV0dXJuIDA9PT1pLmxlbmd0aHx8cy5jb3B5KGksMCwwLG8pLGl9aWYodm9pZCAwIT09cy5sZW5ndGgpcmV0dXJuIm51bWJlciIhPXR5cGVvZiBzLmxlbmd0aHx8bnVtYmVySXNOYU4ocy5sZW5ndGgpP2NyZWF0ZUJ1ZmZlcigwKTpmcm9tQXJyYXlMaWtlKHMpO2lmKCJCdWZmZXIiPT09cy50eXBlJiZBcnJheS5pc0FycmF5KHMuZGF0YSkpcmV0dXJuIGZyb21BcnJheUxpa2Uocy5kYXRhKX0ocyk7aWYodSlyZXR1cm4gdTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9U3ltYm9sLnRvUHJpbWl0aXZlJiYiZnVuY3Rpb24iPT10eXBlb2Ygc1tTeW1ib2wudG9QcmltaXRpdmVdKXJldHVybiBCdWZmZXIuZnJvbShzW1N5bWJvbC50b1ByaW1pdGl2ZV0oInN0cmluZyIpLG8saSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgIit0eXBlb2Ygcyl9ZnVuY3Rpb24gYXNzZXJ0U2l6ZShzKXtpZigibnVtYmVyIiE9dHlwZW9mIHMpdGhyb3cgbmV3IFR5cGVFcnJvcignInNpemUiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBudW1iZXInKTtpZihzPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJytzKyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKX1mdW5jdGlvbiBhbGxvY1Vuc2FmZShzKXtyZXR1cm4gYXNzZXJ0U2l6ZShzKSxjcmVhdGVCdWZmZXIoczwwPzA6MHxjaGVja2VkKHMpKX1mdW5jdGlvbiBmcm9tQXJyYXlMaWtlKHMpe2NvbnN0IG89cy5sZW5ndGg8MD8wOjB8Y2hlY2tlZChzLmxlbmd0aCksaT1jcmVhdGVCdWZmZXIobyk7Zm9yKGxldCBhPTA7YTxvO2ErPTEpaVthXT0yNTUmc1thXTtyZXR1cm4gaX1mdW5jdGlvbiBmcm9tQXJyYXlCdWZmZXIocyxvLGkpe2lmKG88MHx8cy5ieXRlTGVuZ3RoPG8pdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJvZmZzZXQiIGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kcycpO2lmKHMuYnl0ZUxlbmd0aDxvKyhpfHwwKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignImxlbmd0aCIgaXMgb3V0c2lkZSBvZiBidWZmZXIgYm91bmRzJyk7bGV0IGE7cmV0dXJuIGE9dm9pZCAwPT09byYmdm9pZCAwPT09aT9uZXcgVWludDhBcnJheShzKTp2b2lkIDA9PT1pP25ldyBVaW50OEFycmF5KHMsbyk6bmV3IFVpbnQ4QXJyYXkocyxvLGkpLE9iamVjdC5zZXRQcm90b3R5cGVPZihhLEJ1ZmZlci5wcm90b3R5cGUpLGF9ZnVuY3Rpb24gY2hlY2tlZChzKXtpZihzPj13KXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtIHNpemU6IDB4Iit3LnRvU3RyaW5nKDE2KSsiIGJ5dGVzIik7cmV0dXJuIDB8c31mdW5jdGlvbiBieXRlTGVuZ3RoKHMsbyl7aWYoQnVmZmVyLmlzQnVmZmVyKHMpKXJldHVybiBzLmxlbmd0aDtpZihBcnJheUJ1ZmZlci5pc1ZpZXcocyl8fGlzSW5zdGFuY2UocyxBcnJheUJ1ZmZlcikpcmV0dXJuIHMuYnl0ZUxlbmd0aDtpZigic3RyaW5nIiE9dHlwZW9mIHMpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJzdHJpbmciIGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIG9yIEFycmF5QnVmZmVyLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIHMpO2NvbnN0IGk9cy5sZW5ndGgsYT1hcmd1bWVudHMubGVuZ3RoPjImJiEwPT09YXJndW1lbnRzWzJdO2lmKCFhJiYwPT09aSlyZXR1cm4gMDtsZXQgdT0hMTtmb3IoOzspc3dpdGNoKG8pe2Nhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIGk7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4gdXRmOFRvQnl0ZXMocykubGVuZ3RoO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gMippO2Nhc2UiaGV4IjpyZXR1cm4gaT4+PjE7Y2FzZSJiYXNlNjQiOnJldHVybiBiYXNlNjRUb0J5dGVzKHMpLmxlbmd0aDtkZWZhdWx0OmlmKHUpcmV0dXJuIGE/LTE6dXRmOFRvQnl0ZXMocykubGVuZ3RoO289KCIiK28pLnRvTG93ZXJDYXNlKCksdT0hMH19ZnVuY3Rpb24gc2xvd1RvU3RyaW5nKHMsbyxpKXtsZXQgYT0hMTtpZigodm9pZCAwPT09b3x8bzwwKSYmKG89MCksbz50aGlzLmxlbmd0aClyZXR1cm4iIjtpZigodm9pZCAwPT09aXx8aT50aGlzLmxlbmd0aCkmJihpPXRoaXMubGVuZ3RoKSxpPD0wKXJldHVybiIiO2lmKChpPj4+PTApPD0obz4+Pj0wKSlyZXR1cm4iIjtmb3Ioc3x8KHM9InV0ZjgiKTs7KXN3aXRjaChzKXtjYXNlImhleCI6cmV0dXJuIGhleFNsaWNlKHRoaXMsbyxpKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiB1dGY4U2xpY2UodGhpcyxvLGkpO2Nhc2UiYXNjaWkiOnJldHVybiBhc2NpaVNsaWNlKHRoaXMsbyxpKTtjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiBsYXRpbjFTbGljZSh0aGlzLG8saSk7Y2FzZSJiYXNlNjQiOnJldHVybiBiYXNlNjRTbGljZSh0aGlzLG8saSk7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiB1dGYxNmxlU2xpY2UodGhpcyxvLGkpO2RlZmF1bHQ6aWYoYSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3MpO3M9KHMrIiIpLnRvTG93ZXJDYXNlKCksYT0hMH19ZnVuY3Rpb24gc3dhcChzLG8saSl7Y29uc3QgYT1zW29dO3Nbb109c1tpXSxzW2ldPWF9ZnVuY3Rpb24gYmlkaXJlY3Rpb25hbEluZGV4T2YocyxvLGksYSx1KXtpZigwPT09cy5sZW5ndGgpcmV0dXJuLTE7aWYoInN0cmluZyI9PXR5cGVvZiBpPyhhPWksaT0wKTppPjIxNDc0ODM2NDc/aT0yMTQ3NDgzNjQ3Omk8LTIxNDc0ODM2NDgmJihpPS0yMTQ3NDgzNjQ4KSxudW1iZXJJc05hTihpPStpKSYmKGk9dT8wOnMubGVuZ3RoLTEpLGk8MCYmKGk9cy5sZW5ndGgraSksaT49cy5sZW5ndGgpe2lmKHUpcmV0dXJuLTE7aT1zLmxlbmd0aC0xfWVsc2UgaWYoaTwwKXtpZighdSlyZXR1cm4tMTtpPTB9aWYoInN0cmluZyI9PXR5cGVvZiBvJiYobz1CdWZmZXIuZnJvbShvLGEpKSxCdWZmZXIuaXNCdWZmZXIobykpcmV0dXJuIDA9PT1vLmxlbmd0aD8tMTphcnJheUluZGV4T2YocyxvLGksYSx1KTtpZigibnVtYmVyIj09dHlwZW9mIG8pcmV0dXJuIG8mPTI1NSwiZnVuY3Rpb24iPT10eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZj91P1VpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChzLG8saSk6VWludDhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChzLG8saSk6YXJyYXlJbmRleE9mKHMsW29dLGksYSx1KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJ2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXIiKX1mdW5jdGlvbiBhcnJheUluZGV4T2YocyxvLGksYSx1KXtsZXQgXyx3PTEseD1zLmxlbmd0aCxDPW8ubGVuZ3RoO2lmKHZvaWQgMCE9PWEmJigidWNzMiI9PT0oYT1TdHJpbmcoYSkudG9Mb3dlckNhc2UoKSl8fCJ1Y3MtMiI9PT1hfHwidXRmMTZsZSI9PT1hfHwidXRmLTE2bGUiPT09YSkpe2lmKHMubGVuZ3RoPDJ8fG8ubGVuZ3RoPDIpcmV0dXJuLTE7dz0yLHgvPTIsQy89MixpLz0yfWZ1bmN0aW9uIHJlYWQocyxvKXtyZXR1cm4gMT09PXc/c1tvXTpzLnJlYWRVSW50MTZCRShvKncpfWlmKHUpe2xldCBhPS0xO2ZvcihfPWk7Xzx4O18rKylpZihyZWFkKHMsXyk9PT1yZWFkKG8sLTE9PT1hPzA6Xy1hKSl7aWYoLTE9PT1hJiYoYT1fKSxfLWErMT09PUMpcmV0dXJuIGEqd31lbHNlLTEhPT1hJiYoXy09Xy1hKSxhPS0xfWVsc2UgZm9yKGkrQz54JiYoaT14LUMpLF89aTtfPj0wO18tLSl7bGV0IGk9ITA7Zm9yKGxldCBhPTA7YTxDO2ErKylpZihyZWFkKHMsXythKSE9PXJlYWQobyxhKSl7aT0hMTticmVha31pZihpKXJldHVybiBffXJldHVybi0xfWZ1bmN0aW9uIGhleFdyaXRlKHMsbyxpLGEpe2k9TnVtYmVyKGkpfHwwO2NvbnN0IHU9cy5sZW5ndGgtaTthPyhhPU51bWJlcihhKSk+dSYmKGE9dSk6YT11O2NvbnN0IF89by5sZW5ndGg7bGV0IHc7Zm9yKGE+Xy8yJiYoYT1fLzIpLHc9MDt3PGE7Kyt3KXtjb25zdCBhPXBhcnNlSW50KG8uc3Vic3RyKDIqdywyKSwxNik7aWYobnVtYmVySXNOYU4oYSkpcmV0dXJuIHc7c1tpK3ddPWF9cmV0dXJuIHd9ZnVuY3Rpb24gdXRmOFdyaXRlKHMsbyxpLGEpe3JldHVybiBibGl0QnVmZmVyKHV0ZjhUb0J5dGVzKG8scy5sZW5ndGgtaSkscyxpLGEpfWZ1bmN0aW9uIGFzY2lpV3JpdGUocyxvLGksYSl7cmV0dXJuIGJsaXRCdWZmZXIoZnVuY3Rpb24gYXNjaWlUb0J5dGVzKHMpe2NvbnN0IG89W107Zm9yKGxldCBpPTA7aTxzLmxlbmd0aDsrK2kpby5wdXNoKDI1NSZzLmNoYXJDb2RlQXQoaSkpO3JldHVybiBvfShvKSxzLGksYSl9ZnVuY3Rpb24gYmFzZTY0V3JpdGUocyxvLGksYSl7cmV0dXJuIGJsaXRCdWZmZXIoYmFzZTY0VG9CeXRlcyhvKSxzLGksYSl9ZnVuY3Rpb24gdWNzMldyaXRlKHMsbyxpLGEpe3JldHVybiBibGl0QnVmZmVyKGZ1bmN0aW9uIHV0ZjE2bGVUb0J5dGVzKHMsbyl7bGV0IGksYSx1O2NvbnN0IF89W107Zm9yKGxldCB3PTA7dzxzLmxlbmd0aCYmISgoby09Mik8MCk7Kyt3KWk9cy5jaGFyQ29kZUF0KHcpLGE9aT4+OCx1PWklMjU2LF8ucHVzaCh1KSxfLnB1c2goYSk7cmV0dXJuIF99KG8scy5sZW5ndGgtaSkscyxpLGEpfWZ1bmN0aW9uIGJhc2U2NFNsaWNlKHMsbyxpKXtyZXR1cm4gMD09PW8mJmk9PT1zLmxlbmd0aD9hLmZyb21CeXRlQXJyYXkocyk6YS5mcm9tQnl0ZUFycmF5KHMuc2xpY2UobyxpKSl9ZnVuY3Rpb24gdXRmOFNsaWNlKHMsbyxpKXtpPU1hdGgubWluKHMubGVuZ3RoLGkpO2NvbnN0IGE9W107bGV0IHU9bztmb3IoO3U8aTspe2NvbnN0IG89c1t1XTtsZXQgXz1udWxsLHc9bz4yMzk/NDpvPjIyMz8zOm8+MTkxPzI6MTtpZih1K3c8PWkpe2xldCBpLGEseCxDO3N3aXRjaCh3KXtjYXNlIDE6bzwxMjgmJihfPW8pO2JyZWFrO2Nhc2UgMjppPXNbdSsxXSwxMjg9PSgxOTImaSkmJihDPSgzMSZvKTw8Nnw2MyZpLEM+MTI3JiYoXz1DKSk7YnJlYWs7Y2FzZSAzOmk9c1t1KzFdLGE9c1t1KzJdLDEyOD09KDE5MiZpKSYmMTI4PT0oMTkyJmEpJiYoQz0oMTUmbyk8PDEyfCg2MyZpKTw8Nnw2MyZhLEM+MjA0NyYmKEM8NTUyOTZ8fEM+NTczNDMpJiYoXz1DKSk7YnJlYWs7Y2FzZSA0Omk9c1t1KzFdLGE9c1t1KzJdLHg9c1t1KzNdLDEyOD09KDE5MiZpKSYmMTI4PT0oMTkyJmEpJiYxMjg9PSgxOTImeCkmJihDPSgxNSZvKTw8MTh8KDYzJmkpPDwxMnwoNjMmYSk8PDZ8NjMmeCxDPjY1NTM1JiZDPDExMTQxMTImJihfPUMpKX19bnVsbD09PV8/KF89NjU1MzMsdz0xKTpfPjY1NTM1JiYoXy09NjU1MzYsYS5wdXNoKF8+Pj4xMCYxMDIzfDU1Mjk2KSxfPTU2MzIwfDEwMjMmXyksYS5wdXNoKF8pLHUrPXd9cmV0dXJuIGZ1bmN0aW9uIGRlY29kZUNvZGVQb2ludHNBcnJheShzKXtjb25zdCBvPXMubGVuZ3RoO2lmKG88PXgpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHMpO2xldCBpPSIiLGE9MDtmb3IoO2E8bzspaSs9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcscy5zbGljZShhLGErPXgpKTtyZXR1cm4gaX0oYSl9by5rTWF4TGVuZ3RoPXcsQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQ9ZnVuY3Rpb24gdHlwZWRBcnJheVN1cHBvcnQoKXt0cnl7Y29uc3Qgcz1uZXcgVWludDhBcnJheSgxKSxvPXtmb286ZnVuY3Rpb24oKXtyZXR1cm4gNDJ9fTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKG8sVWludDhBcnJheS5wcm90b3R5cGUpLE9iamVjdC5zZXRQcm90b3R5cGVPZihzLG8pLDQyPT09cy5mb28oKX1jYXRjaChzKXtyZXR1cm4hMX19KCksQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlR8fCJ1bmRlZmluZWQiPT10eXBlb2YgY29uc29sZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGNvbnNvbGUuZXJyb3J8fGNvbnNvbGUuZXJyb3IoIlRoaXMgYnJvd3NlciBsYWNrcyB0eXBlZCBhcnJheSAoVWludDhBcnJheSkgc3VwcG9ydCB3aGljaCBpcyByZXF1aXJlZCBieSBgYnVmZmVyYCB2NS54LiBVc2UgYGJ1ZmZlcmAgdjQueCBpZiB5b3UgcmVxdWlyZSBvbGQgYnJvd3NlciBzdXBwb3J0LiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShCdWZmZXIucHJvdG90eXBlLCJwYXJlbnQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKEJ1ZmZlci5pc0J1ZmZlcih0aGlzKSlyZXR1cm4gdGhpcy5idWZmZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEJ1ZmZlci5wcm90b3R5cGUsIm9mZnNldCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7aWYoQnVmZmVyLmlzQnVmZmVyKHRoaXMpKXJldHVybiB0aGlzLmJ5dGVPZmZzZXR9fSksQnVmZmVyLnBvb2xTaXplPTgxOTIsQnVmZmVyLmZyb209ZnVuY3Rpb24ocyxvLGkpe3JldHVybiBmcm9tKHMsbyxpKX0sT2JqZWN0LnNldFByb3RvdHlwZU9mKEJ1ZmZlci5wcm90b3R5cGUsVWludDhBcnJheS5wcm90b3R5cGUpLE9iamVjdC5zZXRQcm90b3R5cGVPZihCdWZmZXIsVWludDhBcnJheSksQnVmZmVyLmFsbG9jPWZ1bmN0aW9uKHMsbyxpKXtyZXR1cm4gZnVuY3Rpb24gYWxsb2MocyxvLGkpe3JldHVybiBhc3NlcnRTaXplKHMpLHM8PTA/Y3JlYXRlQnVmZmVyKHMpOnZvaWQgMCE9PW8/InN0cmluZyI9PXR5cGVvZiBpP2NyZWF0ZUJ1ZmZlcihzKS5maWxsKG8saSk6Y3JlYXRlQnVmZmVyKHMpLmZpbGwobyk6Y3JlYXRlQnVmZmVyKHMpfShzLG8saSl9LEJ1ZmZlci5hbGxvY1Vuc2FmZT1mdW5jdGlvbihzKXtyZXR1cm4gYWxsb2NVbnNhZmUocyl9LEJ1ZmZlci5hbGxvY1Vuc2FmZVNsb3c9ZnVuY3Rpb24ocyl7cmV0dXJuIGFsbG9jVW5zYWZlKHMpfSxCdWZmZXIuaXNCdWZmZXI9ZnVuY3Rpb24gaXNCdWZmZXIocyl7cmV0dXJuIG51bGwhPXMmJiEwPT09cy5faXNCdWZmZXImJnMhPT1CdWZmZXIucHJvdG90eXBlfSxCdWZmZXIuY29tcGFyZT1mdW5jdGlvbiBjb21wYXJlKHMsbyl7aWYoaXNJbnN0YW5jZShzLFVpbnQ4QXJyYXkpJiYocz1CdWZmZXIuZnJvbShzLHMub2Zmc2V0LHMuYnl0ZUxlbmd0aCkpLGlzSW5zdGFuY2UobyxVaW50OEFycmF5KSYmKG89QnVmZmVyLmZyb20obyxvLm9mZnNldCxvLmJ5dGVMZW5ndGgpKSwhQnVmZmVyLmlzQnVmZmVyKHMpfHwhQnVmZmVyLmlzQnVmZmVyKG8pKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAiYnVmMSIsICJidWYyIiBhcmd1bWVudHMgbXVzdCBiZSBvbmUgb2YgdHlwZSBCdWZmZXIgb3IgVWludDhBcnJheScpO2lmKHM9PT1vKXJldHVybiAwO2xldCBpPXMubGVuZ3RoLGE9by5sZW5ndGg7Zm9yKGxldCB1PTAsXz1NYXRoLm1pbihpLGEpO3U8XzsrK3UpaWYoc1t1XSE9PW9bdV0pe2k9c1t1XSxhPW9bdV07YnJlYWt9cmV0dXJuIGk8YT8tMTphPGk/MTowfSxCdWZmZXIuaXNFbmNvZGluZz1mdW5jdGlvbiBpc0VuY29kaW5nKHMpe3N3aXRjaChTdHJpbmcocykudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpjYXNlImJhc2U2NCI6Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fSxCdWZmZXIuY29uY2F0PWZ1bmN0aW9uIGNvbmNhdChzLG8pe2lmKCFBcnJheS5pc0FycmF5KHMpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTtpZigwPT09cy5sZW5ndGgpcmV0dXJuIEJ1ZmZlci5hbGxvYygwKTtsZXQgaTtpZih2b2lkIDA9PT1vKWZvcihvPTAsaT0wO2k8cy5sZW5ndGg7KytpKW8rPXNbaV0ubGVuZ3RoO2NvbnN0IGE9QnVmZmVyLmFsbG9jVW5zYWZlKG8pO2xldCB1PTA7Zm9yKGk9MDtpPHMubGVuZ3RoOysraSl7bGV0IG89c1tpXTtpZihpc0luc3RhbmNlKG8sVWludDhBcnJheSkpdStvLmxlbmd0aD5hLmxlbmd0aD8oQnVmZmVyLmlzQnVmZmVyKG8pfHwobz1CdWZmZXIuZnJvbShvKSksby5jb3B5KGEsdSkpOlVpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKGEsbyx1KTtlbHNle2lmKCFCdWZmZXIuaXNCdWZmZXIobykpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO28uY29weShhLHUpfXUrPW8ubGVuZ3RofXJldHVybiBhfSxCdWZmZXIuYnl0ZUxlbmd0aD1ieXRlTGVuZ3RoLEJ1ZmZlci5wcm90b3R5cGUuX2lzQnVmZmVyPSEwLEJ1ZmZlci5wcm90b3R5cGUuc3dhcDE2PWZ1bmN0aW9uIHN3YXAxNigpe2NvbnN0IHM9dGhpcy5sZW5ndGg7aWYocyUyIT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMTYtYml0cyIpO2ZvcihsZXQgbz0wO288cztvKz0yKXN3YXAodGhpcyxvLG8rMSk7cmV0dXJuIHRoaXN9LEJ1ZmZlci5wcm90b3R5cGUuc3dhcDMyPWZ1bmN0aW9uIHN3YXAzMigpe2NvbnN0IHM9dGhpcy5sZW5ndGg7aWYocyU0IT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMzItYml0cyIpO2ZvcihsZXQgbz0wO288cztvKz00KXN3YXAodGhpcyxvLG8rMyksc3dhcCh0aGlzLG8rMSxvKzIpO3JldHVybiB0aGlzfSxCdWZmZXIucHJvdG90eXBlLnN3YXA2ND1mdW5jdGlvbiBzd2FwNjQoKXtjb25zdCBzPXRoaXMubGVuZ3RoO2lmKHMlOCE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDY0LWJpdHMiKTtmb3IobGV0IG89MDtvPHM7bys9OClzd2FwKHRoaXMsbyxvKzcpLHN3YXAodGhpcyxvKzEsbys2KSxzd2FwKHRoaXMsbysyLG8rNSksc3dhcCh0aGlzLG8rMyxvKzQpO3JldHVybiB0aGlzfSxCdWZmZXIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uIHRvU3RyaW5nKCl7Y29uc3Qgcz10aGlzLmxlbmd0aDtyZXR1cm4gMD09PXM/IiI6MD09PWFyZ3VtZW50cy5sZW5ndGg/dXRmOFNsaWNlKHRoaXMsMCxzKTpzbG93VG9TdHJpbmcuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxCdWZmZXIucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nPUJ1ZmZlci5wcm90b3R5cGUudG9TdHJpbmcsQnVmZmVyLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24gZXF1YWxzKHMpe2lmKCFCdWZmZXIuaXNCdWZmZXIocykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciIpO3JldHVybiB0aGlzPT09c3x8MD09PUJ1ZmZlci5jb21wYXJlKHRoaXMscyl9LEJ1ZmZlci5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbiBpbnNwZWN0KCl7bGV0IHM9IiI7Y29uc3QgaT1vLklOU1BFQ1RfTUFYX0JZVEVTO3JldHVybiBzPXRoaXMudG9TdHJpbmcoImhleCIsMCxpKS5yZXBsYWNlKC8oLnsyfSkvZywiJDEgIikudHJpbSgpLHRoaXMubGVuZ3RoPmkmJihzKz0iIC4uLiAiKSwiPEJ1ZmZlciAiK3MrIj4ifSxfJiYoQnVmZmVyLnByb3RvdHlwZVtfXT1CdWZmZXIucHJvdG90eXBlLmluc3BlY3QpLEJ1ZmZlci5wcm90b3R5cGUuY29tcGFyZT1mdW5jdGlvbiBjb21wYXJlKHMsbyxpLGEsdSl7aWYoaXNJbnN0YW5jZShzLFVpbnQ4QXJyYXkpJiYocz1CdWZmZXIuZnJvbShzLHMub2Zmc2V0LHMuYnl0ZUxlbmd0aCkpLCFCdWZmZXIuaXNCdWZmZXIocykpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJ0YXJnZXQiIGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgQnVmZmVyIG9yIFVpbnQ4QXJyYXkuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2Ygcyk7aWYodm9pZCAwPT09byYmKG89MCksdm9pZCAwPT09aSYmKGk9cz9zLmxlbmd0aDowKSx2b2lkIDA9PT1hJiYoYT0wKSx2b2lkIDA9PT11JiYodT10aGlzLmxlbmd0aCksbzwwfHxpPnMubGVuZ3RofHxhPDB8fHU+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm91dCBvZiByYW5nZSBpbmRleCIpO2lmKGE+PXUmJm8+PWkpcmV0dXJuIDA7aWYoYT49dSlyZXR1cm4tMTtpZihvPj1pKXJldHVybiAxO2lmKHRoaXM9PT1zKXJldHVybiAwO2xldCBfPSh1Pj4+PTApLShhPj4+PTApLHc9KGk+Pj49MCktKG8+Pj49MCk7Y29uc3QgeD1NYXRoLm1pbihfLHcpLEM9dGhpcy5zbGljZShhLHUpLGo9cy5zbGljZShvLGkpO2ZvcihsZXQgcz0wO3M8eDsrK3MpaWYoQ1tzXSE9PWpbc10pe189Q1tzXSx3PWpbc107YnJlYWt9cmV0dXJuIF88dz8tMTp3PF8/MTowfSxCdWZmZXIucHJvdG90eXBlLmluY2x1ZGVzPWZ1bmN0aW9uIGluY2x1ZGVzKHMsbyxpKXtyZXR1cm4tMSE9PXRoaXMuaW5kZXhPZihzLG8saSl9LEJ1ZmZlci5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbiBpbmRleE9mKHMsbyxpKXtyZXR1cm4gYmlkaXJlY3Rpb25hbEluZGV4T2YodGhpcyxzLG8saSwhMCl9LEJ1ZmZlci5wcm90b3R5cGUubGFzdEluZGV4T2Y9ZnVuY3Rpb24gbGFzdEluZGV4T2YocyxvLGkpe3JldHVybiBiaWRpcmVjdGlvbmFsSW5kZXhPZih0aGlzLHMsbyxpLCExKX0sQnVmZmVyLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbiB3cml0ZShzLG8saSxhKXtpZih2b2lkIDA9PT1vKWE9InV0ZjgiLGk9dGhpcy5sZW5ndGgsbz0wO2Vsc2UgaWYodm9pZCAwPT09aSYmInN0cmluZyI9PXR5cGVvZiBvKWE9byxpPXRoaXMubGVuZ3RoLG89MDtlbHNle2lmKCFpc0Zpbml0ZShvKSl0aHJvdyBuZXcgRXJyb3IoIkJ1ZmZlci53cml0ZShzdHJpbmcsIGVuY29kaW5nLCBvZmZzZXRbLCBsZW5ndGhdKSBpcyBubyBsb25nZXIgc3VwcG9ydGVkIik7bz4+Pj0wLGlzRmluaXRlKGkpPyhpPj4+PTAsdm9pZCAwPT09YSYmKGE9InV0ZjgiKSk6KGE9aSxpPXZvaWQgMCl9Y29uc3QgdT10aGlzLmxlbmd0aC1vO2lmKCh2b2lkIDA9PT1pfHxpPnUpJiYoaT11KSxzLmxlbmd0aD4wJiYoaTwwfHxvPDApfHxvPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kcyIpO2F8fChhPSJ1dGY4Iik7bGV0IF89ITE7Zm9yKDs7KXN3aXRjaChhKXtjYXNlImhleCI6cmV0dXJuIGhleFdyaXRlKHRoaXMscyxvLGkpO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIHV0ZjhXcml0ZSh0aGlzLHMsbyxpKTtjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiBhc2NpaVdyaXRlKHRoaXMscyxvLGkpO2Nhc2UiYmFzZTY0IjpyZXR1cm4gYmFzZTY0V3JpdGUodGhpcyxzLG8saSk7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiB1Y3MyV3JpdGUodGhpcyxzLG8saSk7ZGVmYXVsdDppZihfKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrYSk7YT0oIiIrYSkudG9Mb3dlckNhc2UoKSxfPSEwfX0sQnVmZmVyLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24gdG9KU09OKCl7cmV0dXJue3R5cGU6IkJ1ZmZlciIsZGF0YTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9hcnJ8fHRoaXMsMCl9fTtjb25zdCB4PTQwOTY7ZnVuY3Rpb24gYXNjaWlTbGljZShzLG8saSl7bGV0IGE9IiI7aT1NYXRoLm1pbihzLmxlbmd0aCxpKTtmb3IobGV0IHU9bzt1PGk7Kyt1KWErPVN0cmluZy5mcm9tQ2hhckNvZGUoMTI3JnNbdV0pO3JldHVybiBhfWZ1bmN0aW9uIGxhdGluMVNsaWNlKHMsbyxpKXtsZXQgYT0iIjtpPU1hdGgubWluKHMubGVuZ3RoLGkpO2ZvcihsZXQgdT1vO3U8aTsrK3UpYSs9U3RyaW5nLmZyb21DaGFyQ29kZShzW3VdKTtyZXR1cm4gYX1mdW5jdGlvbiBoZXhTbGljZShzLG8saSl7Y29uc3QgYT1zLmxlbmd0aDsoIW98fG88MCkmJihvPTApLCghaXx8aTwwfHxpPmEpJiYoaT1hKTtsZXQgdT0iIjtmb3IobGV0IGE9bzthPGk7KythKXUrPUxbc1thXV07cmV0dXJuIHV9ZnVuY3Rpb24gdXRmMTZsZVNsaWNlKHMsbyxpKXtjb25zdCBhPXMuc2xpY2UobyxpKTtsZXQgdT0iIjtmb3IobGV0IHM9MDtzPGEubGVuZ3RoLTE7cys9Mil1Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKGFbc10rMjU2KmFbcysxXSk7cmV0dXJuIHV9ZnVuY3Rpb24gY2hlY2tPZmZzZXQocyxvLGkpe2lmKHMlMSE9MHx8czwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJvZmZzZXQgaXMgbm90IHVpbnQiKTtpZihzK28+aSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVHJ5aW5nIHRvIGFjY2VzcyBiZXlvbmQgYnVmZmVyIGxlbmd0aCIpfWZ1bmN0aW9uIGNoZWNrSW50KHMsbyxpLGEsdSxfKXtpZighQnVmZmVyLmlzQnVmZmVyKHMpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJidWZmZXIiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgaW5zdGFuY2UnKTtpZihvPnV8fG88Xyl0aHJvdyBuZXcgUmFuZ2VFcnJvcignInZhbHVlIiBhcmd1bWVudCBpcyBvdXQgb2YgYm91bmRzJyk7aWYoaSthPnMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiB3cnRCaWdVSW50NjRMRShzLG8saSxhLHUpe2NoZWNrSW50QkkobyxhLHUscyxpLDcpO2xldCBfPU51bWJlcihvJkJpZ0ludCg0Mjk0OTY3Mjk1KSk7c1tpKytdPV8sXz4+PTgsc1tpKytdPV8sXz4+PTgsc1tpKytdPV8sXz4+PTgsc1tpKytdPV87bGV0IHc9TnVtYmVyKG8+PkJpZ0ludCgzMikmQmlnSW50KDQyOTQ5NjcyOTUpKTtyZXR1cm4gc1tpKytdPXcsdz4+PTgsc1tpKytdPXcsdz4+PTgsc1tpKytdPXcsdz4+PTgsc1tpKytdPXcsaX1mdW5jdGlvbiB3cnRCaWdVSW50NjRCRShzLG8saSxhLHUpe2NoZWNrSW50QkkobyxhLHUscyxpLDcpO2xldCBfPU51bWJlcihvJkJpZ0ludCg0Mjk0OTY3Mjk1KSk7c1tpKzddPV8sXz4+PTgsc1tpKzZdPV8sXz4+PTgsc1tpKzVdPV8sXz4+PTgsc1tpKzRdPV87bGV0IHc9TnVtYmVyKG8+PkJpZ0ludCgzMikmQmlnSW50KDQyOTQ5NjcyOTUpKTtyZXR1cm4gc1tpKzNdPXcsdz4+PTgsc1tpKzJdPXcsdz4+PTgsc1tpKzFdPXcsdz4+PTgsc1tpXT13LGkrOH1mdW5jdGlvbiBjaGVja0lFRUU3NTQocyxvLGksYSx1LF8pe2lmKGkrYT5zLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYoaTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiB3cml0ZUZsb2F0KHMsbyxpLGEsXyl7cmV0dXJuIG89K28saT4+Pj0wLF98fGNoZWNrSUVFRTc1NChzLDAsaSw0KSx1LndyaXRlKHMsbyxpLGEsMjMsNCksaSs0fWZ1bmN0aW9uIHdyaXRlRG91YmxlKHMsbyxpLGEsXyl7cmV0dXJuIG89K28saT4+Pj0wLF98fGNoZWNrSUVFRTc1NChzLDAsaSw4KSx1LndyaXRlKHMsbyxpLGEsNTIsOCksaSs4fUJ1ZmZlci5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24gc2xpY2UocyxvKXtjb25zdCBpPXRoaXMubGVuZ3RoOyhzPX5+cyk8MD8ocys9aSk8MCYmKHM9MCk6cz5pJiYocz1pKSwobz12b2lkIDA9PT1vP2k6fn5vKTwwPyhvKz1pKTwwJiYobz0wKTpvPmkmJihvPWkpLG88cyYmKG89cyk7Y29uc3QgYT10aGlzLnN1YmFycmF5KHMsbyk7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZihhLEJ1ZmZlci5wcm90b3R5cGUpLGF9LEJ1ZmZlci5wcm90b3R5cGUucmVhZFVpbnRMRT1CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50TEU9ZnVuY3Rpb24gcmVhZFVJbnRMRShzLG8saSl7cz4+Pj0wLG8+Pj49MCxpfHxjaGVja09mZnNldChzLG8sdGhpcy5sZW5ndGgpO2xldCBhPXRoaXNbc10sdT0xLF89MDtmb3IoOysrXzxvJiYodSo9MjU2KTspYSs9dGhpc1tzK19dKnU7cmV0dXJuIGF9LEJ1ZmZlci5wcm90b3R5cGUucmVhZFVpbnRCRT1CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50QkU9ZnVuY3Rpb24gcmVhZFVJbnRCRShzLG8saSl7cz4+Pj0wLG8+Pj49MCxpfHxjaGVja09mZnNldChzLG8sdGhpcy5sZW5ndGgpO2xldCBhPXRoaXNbcystLW9dLHU9MTtmb3IoO28+MCYmKHUqPTI1Nik7KWErPXRoaXNbcystLW9dKnU7cmV0dXJuIGF9LEJ1ZmZlci5wcm90b3R5cGUucmVhZFVpbnQ4PUJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQ4PWZ1bmN0aW9uIHJlYWRVSW50OChzLG8pe3JldHVybiBzPj4+PTAsb3x8Y2hlY2tPZmZzZXQocywxLHRoaXMubGVuZ3RoKSx0aGlzW3NdfSxCdWZmZXIucHJvdG90eXBlLnJlYWRVaW50MTZMRT1CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MTZMRT1mdW5jdGlvbiByZWFkVUludDE2TEUocyxvKXtyZXR1cm4gcz4+Pj0wLG98fGNoZWNrT2Zmc2V0KHMsMix0aGlzLmxlbmd0aCksdGhpc1tzXXx0aGlzW3MrMV08PDh9LEJ1ZmZlci5wcm90b3R5cGUucmVhZFVpbnQxNkJFPUJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQxNkJFPWZ1bmN0aW9uIHJlYWRVSW50MTZCRShzLG8pe3JldHVybiBzPj4+PTAsb3x8Y2hlY2tPZmZzZXQocywyLHRoaXMubGVuZ3RoKSx0aGlzW3NdPDw4fHRoaXNbcysxXX0sQnVmZmVyLnByb3RvdHlwZS5yZWFkVWludDMyTEU9QnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDMyTEU9ZnVuY3Rpb24gcmVhZFVJbnQzMkxFKHMsbyl7cmV0dXJuIHM+Pj49MCxvfHxjaGVja09mZnNldChzLDQsdGhpcy5sZW5ndGgpLCh0aGlzW3NdfHRoaXNbcysxXTw8OHx0aGlzW3MrMl08PDE2KSsxNjc3NzIxNip0aGlzW3MrM119LEJ1ZmZlci5wcm90b3R5cGUucmVhZFVpbnQzMkJFPUJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQzMkJFPWZ1bmN0aW9uIHJlYWRVSW50MzJCRShzLG8pe3JldHVybiBzPj4+PTAsb3x8Y2hlY2tPZmZzZXQocyw0LHRoaXMubGVuZ3RoKSwxNjc3NzIxNip0aGlzW3NdKyh0aGlzW3MrMV08PDE2fHRoaXNbcysyXTw8OHx0aGlzW3MrM10pfSxCdWZmZXIucHJvdG90eXBlLnJlYWRCaWdVSW50NjRMRT1kZWZpbmVCaWdJbnRNZXRob2QoKGZ1bmN0aW9uIHJlYWRCaWdVSW50NjRMRShzKXt2YWxpZGF0ZU51bWJlcihzPj4+PTAsIm9mZnNldCIpO2NvbnN0IG89dGhpc1tzXSxpPXRoaXNbcys3XTt2b2lkIDAhPT1vJiZ2b2lkIDAhPT1pfHxib3VuZHNFcnJvcihzLHRoaXMubGVuZ3RoLTgpO2NvbnN0IGE9bysyNTYqdGhpc1srK3NdKzY1NTM2KnRoaXNbKytzXSt0aGlzWysrc10qMioqMjQsdT10aGlzWysrc10rMjU2KnRoaXNbKytzXSs2NTUzNip0aGlzWysrc10raSoyKioyNDtyZXR1cm4gQmlnSW50KGEpKyhCaWdJbnQodSk8PEJpZ0ludCgzMikpfSkpLEJ1ZmZlci5wcm90b3R5cGUucmVhZEJpZ1VJbnQ2NEJFPWRlZmluZUJpZ0ludE1ldGhvZCgoZnVuY3Rpb24gcmVhZEJpZ1VJbnQ2NEJFKHMpe3ZhbGlkYXRlTnVtYmVyKHM+Pj49MCwib2Zmc2V0Iik7Y29uc3Qgbz10aGlzW3NdLGk9dGhpc1tzKzddO3ZvaWQgMCE9PW8mJnZvaWQgMCE9PWl8fGJvdW5kc0Vycm9yKHMsdGhpcy5sZW5ndGgtOCk7Y29uc3QgYT1vKjIqKjI0KzY1NTM2KnRoaXNbKytzXSsyNTYqdGhpc1srK3NdK3RoaXNbKytzXSx1PXRoaXNbKytzXSoyKioyNCs2NTUzNip0aGlzWysrc10rMjU2KnRoaXNbKytzXStpO3JldHVybihCaWdJbnQoYSk8PEJpZ0ludCgzMikpK0JpZ0ludCh1KX0pKSxCdWZmZXIucHJvdG90eXBlLnJlYWRJbnRMRT1mdW5jdGlvbiByZWFkSW50TEUocyxvLGkpe3M+Pj49MCxvPj4+PTAsaXx8Y2hlY2tPZmZzZXQocyxvLHRoaXMubGVuZ3RoKTtsZXQgYT10aGlzW3NdLHU9MSxfPTA7Zm9yKDsrK188byYmKHUqPTI1Nik7KWErPXRoaXNbcytfXSp1O3JldHVybiB1Kj0xMjgsYT49dSYmKGEtPU1hdGgucG93KDIsOCpvKSksYX0sQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50QkU9ZnVuY3Rpb24gcmVhZEludEJFKHMsbyxpKXtzPj4+PTAsbz4+Pj0wLGl8fGNoZWNrT2Zmc2V0KHMsbyx0aGlzLmxlbmd0aCk7bGV0IGE9byx1PTEsXz10aGlzW3MrLS1hXTtmb3IoO2E+MCYmKHUqPTI1Nik7KV8rPXRoaXNbcystLWFdKnU7cmV0dXJuIHUqPTEyOCxfPj11JiYoXy09TWF0aC5wb3coMiw4Km8pKSxffSxCdWZmZXIucHJvdG90eXBlLnJlYWRJbnQ4PWZ1bmN0aW9uIHJlYWRJbnQ4KHMsbyl7cmV0dXJuIHM+Pj49MCxvfHxjaGVja09mZnNldChzLDEsdGhpcy5sZW5ndGgpLDEyOCZ0aGlzW3NdPy0xKigyNTUtdGhpc1tzXSsxKTp0aGlzW3NdfSxCdWZmZXIucHJvdG90eXBlLnJlYWRJbnQxNkxFPWZ1bmN0aW9uIHJlYWRJbnQxNkxFKHMsbyl7cz4+Pj0wLG98fGNoZWNrT2Zmc2V0KHMsMix0aGlzLmxlbmd0aCk7Y29uc3QgaT10aGlzW3NdfHRoaXNbcysxXTw8ODtyZXR1cm4gMzI3NjgmaT80Mjk0OTAxNzYwfGk6aX0sQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MTZCRT1mdW5jdGlvbiByZWFkSW50MTZCRShzLG8pe3M+Pj49MCxvfHxjaGVja09mZnNldChzLDIsdGhpcy5sZW5ndGgpO2NvbnN0IGk9dGhpc1tzKzFdfHRoaXNbc108PDg7cmV0dXJuIDMyNzY4Jmk/NDI5NDkwMTc2MHxpOml9LEJ1ZmZlci5wcm90b3R5cGUucmVhZEludDMyTEU9ZnVuY3Rpb24gcmVhZEludDMyTEUocyxvKXtyZXR1cm4gcz4+Pj0wLG98fGNoZWNrT2Zmc2V0KHMsNCx0aGlzLmxlbmd0aCksdGhpc1tzXXx0aGlzW3MrMV08PDh8dGhpc1tzKzJdPDwxNnx0aGlzW3MrM108PDI0fSxCdWZmZXIucHJvdG90eXBlLnJlYWRJbnQzMkJFPWZ1bmN0aW9uIHJlYWRJbnQzMkJFKHMsbyl7cmV0dXJuIHM+Pj49MCxvfHxjaGVja09mZnNldChzLDQsdGhpcy5sZW5ndGgpLHRoaXNbc108PDI0fHRoaXNbcysxXTw8MTZ8dGhpc1tzKzJdPDw4fHRoaXNbcyszXX0sQnVmZmVyLnByb3RvdHlwZS5yZWFkQmlnSW50NjRMRT1kZWZpbmVCaWdJbnRNZXRob2QoKGZ1bmN0aW9uIHJlYWRCaWdJbnQ2NExFKHMpe3ZhbGlkYXRlTnVtYmVyKHM+Pj49MCwib2Zmc2V0Iik7Y29uc3Qgbz10aGlzW3NdLGk9dGhpc1tzKzddO3ZvaWQgMCE9PW8mJnZvaWQgMCE9PWl8fGJvdW5kc0Vycm9yKHMsdGhpcy5sZW5ndGgtOCk7Y29uc3QgYT10aGlzW3MrNF0rMjU2KnRoaXNbcys1XSs2NTUzNip0aGlzW3MrNl0rKGk8PDI0KTtyZXR1cm4oQmlnSW50KGEpPDxCaWdJbnQoMzIpKStCaWdJbnQobysyNTYqdGhpc1srK3NdKzY1NTM2KnRoaXNbKytzXSt0aGlzWysrc10qMioqMjQpfSkpLEJ1ZmZlci5wcm90b3R5cGUucmVhZEJpZ0ludDY0QkU9ZGVmaW5lQmlnSW50TWV0aG9kKChmdW5jdGlvbiByZWFkQmlnSW50NjRCRShzKXt2YWxpZGF0ZU51bWJlcihzPj4+PTAsIm9mZnNldCIpO2NvbnN0IG89dGhpc1tzXSxpPXRoaXNbcys3XTt2b2lkIDAhPT1vJiZ2b2lkIDAhPT1pfHxib3VuZHNFcnJvcihzLHRoaXMubGVuZ3RoLTgpO2NvbnN0IGE9KG88PDI0KSs2NTUzNip0aGlzWysrc10rMjU2KnRoaXNbKytzXSt0aGlzWysrc107cmV0dXJuKEJpZ0ludChhKTw8QmlnSW50KDMyKSkrQmlnSW50KHRoaXNbKytzXSoyKioyNCs2NTUzNip0aGlzWysrc10rMjU2KnRoaXNbKytzXStpKX0pKSxCdWZmZXIucHJvdG90eXBlLnJlYWRGbG9hdExFPWZ1bmN0aW9uIHJlYWRGbG9hdExFKHMsbyl7cmV0dXJuIHM+Pj49MCxvfHxjaGVja09mZnNldChzLDQsdGhpcy5sZW5ndGgpLHUucmVhZCh0aGlzLHMsITAsMjMsNCl9LEJ1ZmZlci5wcm90b3R5cGUucmVhZEZsb2F0QkU9ZnVuY3Rpb24gcmVhZEZsb2F0QkUocyxvKXtyZXR1cm4gcz4+Pj0wLG98fGNoZWNrT2Zmc2V0KHMsNCx0aGlzLmxlbmd0aCksdS5yZWFkKHRoaXMscywhMSwyMyw0KX0sQnVmZmVyLnByb3RvdHlwZS5yZWFkRG91YmxlTEU9ZnVuY3Rpb24gcmVhZERvdWJsZUxFKHMsbyl7cmV0dXJuIHM+Pj49MCxvfHxjaGVja09mZnNldChzLDgsdGhpcy5sZW5ndGgpLHUucmVhZCh0aGlzLHMsITAsNTIsOCl9LEJ1ZmZlci5wcm90b3R5cGUucmVhZERvdWJsZUJFPWZ1bmN0aW9uIHJlYWREb3VibGVCRShzLG8pe3JldHVybiBzPj4+PTAsb3x8Y2hlY2tPZmZzZXQocyw4LHRoaXMubGVuZ3RoKSx1LnJlYWQodGhpcyxzLCExLDUyLDgpfSxCdWZmZXIucHJvdG90eXBlLndyaXRlVWludExFPUJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50TEU9ZnVuY3Rpb24gd3JpdGVVSW50TEUocyxvLGksYSl7aWYocz0rcyxvPj4+PTAsaT4+Pj0wLCFhKXtjaGVja0ludCh0aGlzLHMsbyxpLE1hdGgucG93KDIsOCppKS0xLDApfWxldCB1PTEsXz0wO2Zvcih0aGlzW29dPTI1NSZzOysrXzxpJiYodSo9MjU2KTspdGhpc1tvK19dPXMvdSYyNTU7cmV0dXJuIG8raX0sQnVmZmVyLnByb3RvdHlwZS53cml0ZVVpbnRCRT1CdWZmZXIucHJvdG90eXBlLndyaXRlVUludEJFPWZ1bmN0aW9uIHdyaXRlVUludEJFKHMsbyxpLGEpe2lmKHM9K3Msbz4+Pj0wLGk+Pj49MCwhYSl7Y2hlY2tJbnQodGhpcyxzLG8saSxNYXRoLnBvdygyLDgqaSktMSwwKX1sZXQgdT1pLTEsXz0xO2Zvcih0aGlzW28rdV09MjU1JnM7LS11Pj0wJiYoXyo9MjU2KTspdGhpc1tvK3VdPXMvXyYyNTU7cmV0dXJuIG8raX0sQnVmZmVyLnByb3RvdHlwZS53cml0ZVVpbnQ4PUJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50OD1mdW5jdGlvbiB3cml0ZVVJbnQ4KHMsbyxpKXtyZXR1cm4gcz0rcyxvPj4+PTAsaXx8Y2hlY2tJbnQodGhpcyxzLG8sMSwyNTUsMCksdGhpc1tvXT0yNTUmcyxvKzF9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVVaW50MTZMRT1CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDE2TEU9ZnVuY3Rpb24gd3JpdGVVSW50MTZMRShzLG8saSl7cmV0dXJuIHM9K3Msbz4+Pj0wLGl8fGNoZWNrSW50KHRoaXMscyxvLDIsNjU1MzUsMCksdGhpc1tvXT0yNTUmcyx0aGlzW28rMV09cz4+PjgsbysyfSxCdWZmZXIucHJvdG90eXBlLndyaXRlVWludDE2QkU9QnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQxNkJFPWZ1bmN0aW9uIHdyaXRlVUludDE2QkUocyxvLGkpe3JldHVybiBzPStzLG8+Pj49MCxpfHxjaGVja0ludCh0aGlzLHMsbywyLDY1NTM1LDApLHRoaXNbb109cz4+PjgsdGhpc1tvKzFdPTI1NSZzLG8rMn0sQnVmZmVyLnByb3RvdHlwZS53cml0ZVVpbnQzMkxFPUJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MzJMRT1mdW5jdGlvbiB3cml0ZVVJbnQzMkxFKHMsbyxpKXtyZXR1cm4gcz0rcyxvPj4+PTAsaXx8Y2hlY2tJbnQodGhpcyxzLG8sNCw0Mjk0OTY3Mjk1LDApLHRoaXNbbyszXT1zPj4+MjQsdGhpc1tvKzJdPXM+Pj4xNix0aGlzW28rMV09cz4+PjgsdGhpc1tvXT0yNTUmcyxvKzR9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVVaW50MzJCRT1CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDMyQkU9ZnVuY3Rpb24gd3JpdGVVSW50MzJCRShzLG8saSl7cmV0dXJuIHM9K3Msbz4+Pj0wLGl8fGNoZWNrSW50KHRoaXMscyxvLDQsNDI5NDk2NzI5NSwwKSx0aGlzW29dPXM+Pj4yNCx0aGlzW28rMV09cz4+PjE2LHRoaXNbbysyXT1zPj4+OCx0aGlzW28rM109MjU1JnMsbys0fSxCdWZmZXIucHJvdG90eXBlLndyaXRlQmlnVUludDY0TEU9ZGVmaW5lQmlnSW50TWV0aG9kKChmdW5jdGlvbiB3cml0ZUJpZ1VJbnQ2NExFKHMsbz0wKXtyZXR1cm4gd3J0QmlnVUludDY0TEUodGhpcyxzLG8sQmlnSW50KDApLEJpZ0ludCgiMHhmZmZmZmZmZmZmZmZmZmZmIikpfSkpLEJ1ZmZlci5wcm90b3R5cGUud3JpdGVCaWdVSW50NjRCRT1kZWZpbmVCaWdJbnRNZXRob2QoKGZ1bmN0aW9uIHdyaXRlQmlnVUludDY0QkUocyxvPTApe3JldHVybiB3cnRCaWdVSW50NjRCRSh0aGlzLHMsbyxCaWdJbnQoMCksQmlnSW50KCIweGZmZmZmZmZmZmZmZmZmZmYiKSl9KSksQnVmZmVyLnByb3RvdHlwZS53cml0ZUludExFPWZ1bmN0aW9uIHdyaXRlSW50TEUocyxvLGksYSl7aWYocz0rcyxvPj4+PTAsIWEpe2NvbnN0IGE9TWF0aC5wb3coMiw4KmktMSk7Y2hlY2tJbnQodGhpcyxzLG8saSxhLTEsLWEpfWxldCB1PTAsXz0xLHc9MDtmb3IodGhpc1tvXT0yNTUmczsrK3U8aSYmKF8qPTI1Nik7KXM8MCYmMD09PXcmJjAhPT10aGlzW28rdS0xXSYmKHc9MSksdGhpc1tvK3VdPShzL198MCktdyYyNTU7cmV0dXJuIG8raX0sQnVmZmVyLnByb3RvdHlwZS53cml0ZUludEJFPWZ1bmN0aW9uIHdyaXRlSW50QkUocyxvLGksYSl7aWYocz0rcyxvPj4+PTAsIWEpe2NvbnN0IGE9TWF0aC5wb3coMiw4KmktMSk7Y2hlY2tJbnQodGhpcyxzLG8saSxhLTEsLWEpfWxldCB1PWktMSxfPTEsdz0wO2Zvcih0aGlzW28rdV09MjU1JnM7LS11Pj0wJiYoXyo9MjU2KTspczwwJiYwPT09dyYmMCE9PXRoaXNbbyt1KzFdJiYodz0xKSx0aGlzW28rdV09KHMvX3wwKS13JjI1NTtyZXR1cm4gbytpfSxCdWZmZXIucHJvdG90eXBlLndyaXRlSW50OD1mdW5jdGlvbiB3cml0ZUludDgocyxvLGkpe3JldHVybiBzPStzLG8+Pj49MCxpfHxjaGVja0ludCh0aGlzLHMsbywxLDEyNywtMTI4KSxzPDAmJihzPTI1NStzKzEpLHRoaXNbb109MjU1JnMsbysxfSxCdWZmZXIucHJvdG90eXBlLndyaXRlSW50MTZMRT1mdW5jdGlvbiB3cml0ZUludDE2TEUocyxvLGkpe3JldHVybiBzPStzLG8+Pj49MCxpfHxjaGVja0ludCh0aGlzLHMsbywyLDMyNzY3LC0zMjc2OCksdGhpc1tvXT0yNTUmcyx0aGlzW28rMV09cz4+PjgsbysyfSxCdWZmZXIucHJvdG90eXBlLndyaXRlSW50MTZCRT1mdW5jdGlvbiB3cml0ZUludDE2QkUocyxvLGkpe3JldHVybiBzPStzLG8+Pj49MCxpfHxjaGVja0ludCh0aGlzLHMsbywyLDMyNzY3LC0zMjc2OCksdGhpc1tvXT1zPj4+OCx0aGlzW28rMV09MjU1JnMsbysyfSxCdWZmZXIucHJvdG90eXBlLndyaXRlSW50MzJMRT1mdW5jdGlvbiB3cml0ZUludDMyTEUocyxvLGkpe3JldHVybiBzPStzLG8+Pj49MCxpfHxjaGVja0ludCh0aGlzLHMsbyw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLHRoaXNbb109MjU1JnMsdGhpc1tvKzFdPXM+Pj44LHRoaXNbbysyXT1zPj4+MTYsdGhpc1tvKzNdPXM+Pj4yNCxvKzR9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQzMkJFPWZ1bmN0aW9uIHdyaXRlSW50MzJCRShzLG8saSl7cmV0dXJuIHM9K3Msbz4+Pj0wLGl8fGNoZWNrSW50KHRoaXMscyxvLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksczwwJiYocz00Mjk0OTY3Mjk1K3MrMSksdGhpc1tvXT1zPj4+MjQsdGhpc1tvKzFdPXM+Pj4xNix0aGlzW28rMl09cz4+PjgsdGhpc1tvKzNdPTI1NSZzLG8rNH0sQnVmZmVyLnByb3RvdHlwZS53cml0ZUJpZ0ludDY0TEU9ZGVmaW5lQmlnSW50TWV0aG9kKChmdW5jdGlvbiB3cml0ZUJpZ0ludDY0TEUocyxvPTApe3JldHVybiB3cnRCaWdVSW50NjRMRSh0aGlzLHMsbywtQmlnSW50KCIweDgwMDAwMDAwMDAwMDAwMDAiKSxCaWdJbnQoIjB4N2ZmZmZmZmZmZmZmZmZmZiIpKX0pKSxCdWZmZXIucHJvdG90eXBlLndyaXRlQmlnSW50NjRCRT1kZWZpbmVCaWdJbnRNZXRob2QoKGZ1bmN0aW9uIHdyaXRlQmlnSW50NjRCRShzLG89MCl7cmV0dXJuIHdydEJpZ1VJbnQ2NEJFKHRoaXMscyxvLC1CaWdJbnQoIjB4ODAwMDAwMDAwMDAwMDAwMCIpLEJpZ0ludCgiMHg3ZmZmZmZmZmZmZmZmZmZmIikpfSkpLEJ1ZmZlci5wcm90b3R5cGUud3JpdGVGbG9hdExFPWZ1bmN0aW9uIHdyaXRlRmxvYXRMRShzLG8saSl7cmV0dXJuIHdyaXRlRmxvYXQodGhpcyxzLG8sITAsaSl9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVGbG9hdEJFPWZ1bmN0aW9uIHdyaXRlRmxvYXRCRShzLG8saSl7cmV0dXJuIHdyaXRlRmxvYXQodGhpcyxzLG8sITEsaSl9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVEb3VibGVMRT1mdW5jdGlvbiB3cml0ZURvdWJsZUxFKHMsbyxpKXtyZXR1cm4gd3JpdGVEb3VibGUodGhpcyxzLG8sITAsaSl9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVEb3VibGVCRT1mdW5jdGlvbiB3cml0ZURvdWJsZUJFKHMsbyxpKXtyZXR1cm4gd3JpdGVEb3VibGUodGhpcyxzLG8sITEsaSl9LEJ1ZmZlci5wcm90b3R5cGUuY29weT1mdW5jdGlvbiBjb3B5KHMsbyxpLGEpe2lmKCFCdWZmZXIuaXNCdWZmZXIocykpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXJndW1lbnQgc2hvdWxkIGJlIGEgQnVmZmVyIik7aWYoaXx8KGk9MCksYXx8MD09PWF8fChhPXRoaXMubGVuZ3RoKSxvPj1zLmxlbmd0aCYmKG89cy5sZW5ndGgpLG98fChvPTApLGE+MCYmYTxpJiYoYT1pKSxhPT09aSlyZXR1cm4gMDtpZigwPT09cy5sZW5ndGh8fDA9PT10aGlzLmxlbmd0aClyZXR1cm4gMDtpZihvPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoInRhcmdldFN0YXJ0IG91dCBvZiBib3VuZHMiKTtpZihpPDB8fGk+PXRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKTtpZihhPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoInNvdXJjZUVuZCBvdXQgb2YgYm91bmRzIik7YT50aGlzLmxlbmd0aCYmKGE9dGhpcy5sZW5ndGgpLHMubGVuZ3RoLW88YS1pJiYoYT1zLmxlbmd0aC1vK2kpO2NvbnN0IHU9YS1pO3JldHVybiB0aGlzPT09cyYmImZ1bmN0aW9uIj09dHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4/dGhpcy5jb3B5V2l0aGluKG8saSxhKTpVaW50OEFycmF5LnByb3RvdHlwZS5zZXQuY2FsbChzLHRoaXMuc3ViYXJyYXkoaSxhKSxvKSx1fSxCdWZmZXIucHJvdG90eXBlLmZpbGw9ZnVuY3Rpb24gZmlsbChzLG8saSxhKXtpZigic3RyaW5nIj09dHlwZW9mIHMpe2lmKCJzdHJpbmciPT10eXBlb2Ygbz8oYT1vLG89MCxpPXRoaXMubGVuZ3RoKToic3RyaW5nIj09dHlwZW9mIGkmJihhPWksaT10aGlzLmxlbmd0aCksdm9pZCAwIT09YSYmInN0cmluZyIhPXR5cGVvZiBhKXRocm93IG5ldyBUeXBlRXJyb3IoImVuY29kaW5nIG11c3QgYmUgYSBzdHJpbmciKTtpZigic3RyaW5nIj09dHlwZW9mIGEmJiFCdWZmZXIuaXNFbmNvZGluZyhhKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK2EpO2lmKDE9PT1zLmxlbmd0aCl7Y29uc3Qgbz1zLmNoYXJDb2RlQXQoMCk7KCJ1dGY4Ij09PWEmJm88MTI4fHwibGF0aW4xIj09PWEpJiYocz1vKX19ZWxzZSJudW1iZXIiPT10eXBlb2Ygcz9zJj0yNTU6ImJvb2xlYW4iPT10eXBlb2YgcyYmKHM9TnVtYmVyKHMpKTtpZihvPDB8fHRoaXMubGVuZ3RoPG98fHRoaXMubGVuZ3RoPGkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk91dCBvZiByYW5nZSBpbmRleCIpO2lmKGk8PW8pcmV0dXJuIHRoaXM7bGV0IHU7aWYobz4+Pj0wLGk9dm9pZCAwPT09aT90aGlzLmxlbmd0aDppPj4+MCxzfHwocz0wKSwibnVtYmVyIj09dHlwZW9mIHMpZm9yKHU9bzt1PGk7Kyt1KXRoaXNbdV09cztlbHNle2NvbnN0IF89QnVmZmVyLmlzQnVmZmVyKHMpP3M6QnVmZmVyLmZyb20ocyxhKSx3PV8ubGVuZ3RoO2lmKDA9PT13KXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSB2YWx1ZSAiJytzKyciIGlzIGludmFsaWQgZm9yIGFyZ3VtZW50ICJ2YWx1ZSInKTtmb3IodT0wO3U8aS1vOysrdSl0aGlzW3Urb109X1t1JXddfXJldHVybiB0aGlzfTtjb25zdCBDPXt9O2Z1bmN0aW9uIEUocyxvLGkpe0Nbc109Y2xhc3MgTm9kZUVycm9yIGV4dGVuZHMgaXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIm1lc3NhZ2UiLHt2YWx1ZTpvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0aGlzLm5hbWU9YCR7dGhpcy5uYW1lfSBbJHtzfV1gLHRoaXMuc3RhY2ssZGVsZXRlIHRoaXMubmFtZX1nZXQgY29kZSgpe3JldHVybiBzfXNldCBjb2RlKHMpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJjb2RlIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6cyx3cml0YWJsZTohMH0pfXRvU3RyaW5nKCl7cmV0dXJuYCR7dGhpcy5uYW1lfSBbJHtzfV06ICR7dGhpcy5tZXNzYWdlfWB9fX1mdW5jdGlvbiBhZGROdW1lcmljYWxTZXBhcmF0b3Iocyl7bGV0IG89IiIsaT1zLmxlbmd0aDtjb25zdCBhPSItIj09PXNbMF0/MTowO2Zvcig7aT49YSs0O2ktPTMpbz1gXyR7cy5zbGljZShpLTMsaSl9JHtvfWA7cmV0dXJuYCR7cy5zbGljZSgwLGkpfSR7b31gfWZ1bmN0aW9uIGNoZWNrSW50QkkocyxvLGksYSx1LF8pe2lmKHM+aXx8czxvKXtjb25zdCBhPSJiaWdpbnQiPT10eXBlb2Ygbz8ibiI6IiI7bGV0IHU7dGhyb3cgdT1fPjM/MD09PW98fG89PT1CaWdJbnQoMCk/YD49IDAke2F9IGFuZCA8IDIke2F9ICoqICR7OCooXysxKX0ke2F9YDpgPj0gLSgyJHthfSAqKiAkezgqKF8rMSktMX0ke2F9KSBhbmQgPCAyICoqICR7OCooXysxKS0xfSR7YX1gOmA+PSAke299JHthfSBhbmQgPD0gJHtpfSR7YX1gLG5ldyBDLkVSUl9PVVRfT0ZfUkFOR0UoInZhbHVlIix1LHMpfSFmdW5jdGlvbiBjaGVja0JvdW5kcyhzLG8saSl7dmFsaWRhdGVOdW1iZXIobywib2Zmc2V0Iiksdm9pZCAwIT09c1tvXSYmdm9pZCAwIT09c1tvK2ldfHxib3VuZHNFcnJvcihvLHMubGVuZ3RoLShpKzEpKX0oYSx1LF8pfWZ1bmN0aW9uIHZhbGlkYXRlTnVtYmVyKHMsbyl7aWYoIm51bWJlciIhPXR5cGVvZiBzKXRocm93IG5ldyBDLkVSUl9JTlZBTElEX0FSR19UWVBFKG8sIm51bWJlciIscyl9ZnVuY3Rpb24gYm91bmRzRXJyb3IocyxvLGkpe2lmKE1hdGguZmxvb3IocykhPT1zKXRocm93IHZhbGlkYXRlTnVtYmVyKHMsaSksbmV3IEMuRVJSX09VVF9PRl9SQU5HRShpfHwib2Zmc2V0IiwiYW4gaW50ZWdlciIscyk7aWYobzwwKXRocm93IG5ldyBDLkVSUl9CVUZGRVJfT1VUX09GX0JPVU5EUzt0aHJvdyBuZXcgQy5FUlJfT1VUX09GX1JBTkdFKGl8fCJvZmZzZXQiLGA+PSAke2k/MTowfSBhbmQgPD0gJHtvfWAscyl9RSgiRVJSX0JVRkZFUl9PVVRfT0ZfQk9VTkRTIiwoZnVuY3Rpb24ocyl7cmV0dXJuIHM/YCR7c30gaXMgb3V0c2lkZSBvZiBidWZmZXIgYm91bmRzYDoiQXR0ZW1wdCB0byBhY2Nlc3MgbWVtb3J5IG91dHNpZGUgYnVmZmVyIGJvdW5kcyJ9KSxSYW5nZUVycm9yKSxFKCJFUlJfSU5WQUxJRF9BUkdfVFlQRSIsKGZ1bmN0aW9uKHMsbyl7cmV0dXJuYFRoZSAiJHtzfSIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSAke3R5cGVvZiBvfWB9KSxUeXBlRXJyb3IpLEUoIkVSUl9PVVRfT0ZfUkFOR0UiLChmdW5jdGlvbihzLG8saSl7bGV0IGE9YFRoZSB2YWx1ZSBvZiAiJHtzfSIgaXMgb3V0IG9mIHJhbmdlLmAsdT1pO3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKGkpJiZNYXRoLmFicyhpKT4yKiozMj91PWFkZE51bWVyaWNhbFNlcGFyYXRvcihTdHJpbmcoaSkpOiJiaWdpbnQiPT10eXBlb2YgaSYmKHU9U3RyaW5nKGkpLChpPkJpZ0ludCgyKSoqQmlnSW50KDMyKXx8aTwtKEJpZ0ludCgyKSoqQmlnSW50KDMyKSkpJiYodT1hZGROdW1lcmljYWxTZXBhcmF0b3IodSkpLHUrPSJuIiksYSs9YCBJdCBtdXN0IGJlICR7b30uIFJlY2VpdmVkICR7dX1gLGF9KSxSYW5nZUVycm9yKTtjb25zdCBqPS9bXisvMC05QS1aYS16LV9dL2c7ZnVuY3Rpb24gdXRmOFRvQnl0ZXMocyxvKXtsZXQgaTtvPW98fDEvMDtjb25zdCBhPXMubGVuZ3RoO2xldCB1PW51bGw7Y29uc3QgXz1bXTtmb3IobGV0IHc9MDt3PGE7Kyt3KXtpZihpPXMuY2hhckNvZGVBdCh3KSxpPjU1Mjk1JiZpPDU3MzQ0KXtpZighdSl7aWYoaT41NjMxOSl7KG8tPTMpPi0xJiZfLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfWlmKHcrMT09PWEpeyhvLT0zKT4tMSYmXy5wdXNoKDIzOSwxOTEsMTg5KTtjb250aW51ZX11PWk7Y29udGludWV9aWYoaTw1NjMyMCl7KG8tPTMpPi0xJiZfLnB1c2goMjM5LDE5MSwxODkpLHU9aTtjb250aW51ZX1pPTY1NTM2Kyh1LTU1Mjk2PDwxMHxpLTU2MzIwKX1lbHNlIHUmJihvLT0zKT4tMSYmXy5wdXNoKDIzOSwxOTEsMTg5KTtpZih1PW51bGwsaTwxMjgpe2lmKChvLT0xKTwwKWJyZWFrO18ucHVzaChpKX1lbHNlIGlmKGk8MjA0OCl7aWYoKG8tPTIpPDApYnJlYWs7Xy5wdXNoKGk+PjZ8MTkyLDYzJml8MTI4KX1lbHNlIGlmKGk8NjU1MzYpe2lmKChvLT0zKTwwKWJyZWFrO18ucHVzaChpPj4xMnwyMjQsaT4+NiY2M3wxMjgsNjMmaXwxMjgpfWVsc2V7aWYoIShpPDExMTQxMTIpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBjb2RlIHBvaW50Iik7aWYoKG8tPTQpPDApYnJlYWs7Xy5wdXNoKGk+PjE4fDI0MCxpPj4xMiY2M3wxMjgsaT4+NiY2M3wxMjgsNjMmaXwxMjgpfX1yZXR1cm4gX31mdW5jdGlvbiBiYXNlNjRUb0J5dGVzKHMpe3JldHVybiBhLnRvQnl0ZUFycmF5KGZ1bmN0aW9uIGJhc2U2NGNsZWFuKHMpe2lmKChzPShzPXMuc3BsaXQoIj0iKVswXSkudHJpbSgpLnJlcGxhY2UoaiwiIikpLmxlbmd0aDwyKXJldHVybiIiO2Zvcig7cy5sZW5ndGglNCE9MDspcys9Ij0iO3JldHVybiBzfShzKSl9ZnVuY3Rpb24gYmxpdEJ1ZmZlcihzLG8saSxhKXtsZXQgdTtmb3IodT0wO3U8YSYmISh1K2k+PW8ubGVuZ3RofHx1Pj1zLmxlbmd0aCk7Kyt1KW9bdStpXT1zW3VdO3JldHVybiB1fWZ1bmN0aW9uIGlzSW5zdGFuY2UocyxvKXtyZXR1cm4gcyBpbnN0YW5jZW9mIG98fG51bGwhPXMmJm51bGwhPXMuY29uc3RydWN0b3ImJm51bGwhPXMuY29uc3RydWN0b3IubmFtZSYmcy5jb25zdHJ1Y3Rvci5uYW1lPT09by5uYW1lfWZ1bmN0aW9uIG51bWJlcklzTmFOKHMpe3JldHVybiBzIT1zfWNvbnN0IEw9ZnVuY3Rpb24oKXtjb25zdCBzPSIwMTIzNDU2Nzg5YWJjZGVmIixvPW5ldyBBcnJheSgyNTYpO2ZvcihsZXQgaT0wO2k8MTY7KytpKXtjb25zdCBhPTE2Kmk7Zm9yKGxldCB1PTA7dTwxNjsrK3Upb1thK3VdPXNbaV0rc1t1XX1yZXR1cm4gb30oKTtmdW5jdGlvbiBkZWZpbmVCaWdJbnRNZXRob2Qocyl7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBCaWdJbnQ/QnVmZmVyQmlnSW50Tm90RGVmaW5lZDpzfWZ1bmN0aW9uIEJ1ZmZlckJpZ0ludE5vdERlZmluZWQoKXt0aHJvdyBuZXcgRXJyb3IoIkJpZ0ludCBub3Qgc3VwcG9ydGVkIil9fSw0ODU5MDoocyxvKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksby5kZWZhdWx0PWZ1bmN0aW9uKHMpe3JldHVybiBzJiYiQEByZWR1eC9JTklUIj09PXMudHlwZT8iaW5pdGlhbFN0YXRlIGFyZ3VtZW50IHBhc3NlZCB0byBjcmVhdGVTdG9yZSI6InByZXZpb3VzIHN0YXRlIHJlY2VpdmVkIGJ5IHRoZSByZWR1Y2VyIn0scy5leHBvcnRzPW8uZGVmYXVsdH0sNDg2NTU6KHMsbyxpKT0+e3ZhciBhPWkoMjYwMjUpO3MuZXhwb3J0cz1mdW5jdGlvbiBsaXN0Q2FjaGVIYXMocyl7cmV0dXJuIGEodGhpcy5fX2RhdGFfXyxzKT4tMX19LDQ4Njc1OihzLG8saSk9PntzLmV4cG9ydHM9aSgyMDg1MCl9LDQ4OTQ4OihzLG8saSk9Pnt2YXIgYT1pKDIxNzkxKSx1PWkoODYzNzUpO3MuZXhwb3J0cz1mdW5jdGlvbiBjb3B5U3ltYm9sc0luKHMsbyl7cmV0dXJuIGEocyx1KHMpLG8pfX0sNDkzMjY6KHMsbyxpKT0+e3ZhciBhPWkoMzE3NjkpLHU9aSg3MjQyOCksXz1pKDU2NDQ5KSx3PWkoMzAzNjEpLHg9aSgzMDI5NCksQz1pKDc3Nzk3KTtzLmV4cG9ydHM9ZnVuY3Rpb24gaGFzUGF0aChzLG8saSl7Zm9yKHZhciBqPS0xLEw9KG89YShvLHMpKS5sZW5ndGgsQj0hMTsrK2o8TDspe3ZhciAkPUMob1tqXSk7aWYoIShCPW51bGwhPXMmJmkocywkKSkpYnJlYWs7cz1zWyRdfXJldHVybiBCfHwrK2ohPUw/QjohIShMPW51bGw9PXM/MDpzLmxlbmd0aCkmJngoTCkmJncoJCxMKSYmKF8ocyl8fHUocykpfX0sNDk1NTI6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDQ1OTUxKSx1PWkoNDYyODUpLF89YS5kb2N1bWVudCx3PXUoXykmJnUoXy5jcmVhdGVFbGVtZW50KTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyl7cmV0dXJuIHc/Xy5jcmVhdGVFbGVtZW50KHMpOnt9fX0sNDk2NTM6KHMsbyxpKT0+e3ZhciBhPWkoMzc4MjgpO3MuZXhwb3J0cz1mdW5jdGlvbiBjbG9uZUFycmF5QnVmZmVyKHMpe3ZhciBvPW5ldyBzLmNvbnN0cnVjdG9yKHMuYnl0ZUxlbmd0aCk7cmV0dXJuIG5ldyBhKG8pLnNldChuZXcgYShzKSksb319LDQ5Njk4OnM9Pnt2YXIgbz1SZWdFeHAoIltcXHUyMDBkXFx1ZDgwMC1cXHVkZmZmXFx1MDMwMC1cXHUwMzZmXFx1ZmUyMC1cXHVmZTJmXFx1MjBkMC1cXHUyMGZmXFx1ZmUwZVxcdWZlMGZdIik7cy5leHBvcnRzPWZ1bmN0aW9uIGhhc1VuaWNvZGUocyl7cmV0dXJuIG8udGVzdChzKX19LDQ5NzI0OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgxOTA3KSx1PWkoMzkyOTgpLF89YSh7fS5oYXNPd25Qcm9wZXJ0eSk7cy5leHBvcnRzPU9iamVjdC5oYXNPd258fGZ1bmN0aW9uIGhhc093bihzLG8pe3JldHVybiBfKHUocyksbyl9fSw0OTc0NzoocyxvLGkpPT57dmFyIGE9aSg2Njk3Nyk7ZnVuY3Rpb24gY3VycnkocyxvLGkpe3ZhciB1PWEocyw4LHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsbz1pP3ZvaWQgMDpvKTtyZXR1cm4gdS5wbGFjZWhvbGRlcj1jdXJyeS5wbGFjZWhvbGRlcix1fWN1cnJ5LnBsYWNlaG9sZGVyPXt9LHMuZXhwb3J0cz1jdXJyeX0sNTAwMDI6KHMsbyxpKT0+e3ZhciBhPWkoODIxOTkpLHU9aSg0NjY0KSxfPWkoOTU5NTApO3MuZXhwb3J0cz1mdW5jdGlvbiBnZXRBbGxLZXlzKHMpe3JldHVybiBhKHMsXyx1KX19LDUwMTA0OihzLG8saSk9Pnt2YXIgYT1pKDUzNjYxKTtmdW5jdGlvbiBtZW1vaXplKHMsbyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHN8fG51bGwhPW8mJiJmdW5jdGlvbiIhPXR5cGVvZiBvKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZnVuY3Rpb24iKTt2YXIgbWVtb2l6ZWQ9ZnVuY3Rpb24oKXt2YXIgaT1hcmd1bWVudHMsYT1vP28uYXBwbHkodGhpcyxpKTppWzBdLHU9bWVtb2l6ZWQuY2FjaGU7aWYodS5oYXMoYSkpcmV0dXJuIHUuZ2V0KGEpO3ZhciBfPXMuYXBwbHkodGhpcyxpKTtyZXR1cm4gbWVtb2l6ZWQuY2FjaGU9dS5zZXQoYSxfKXx8dSxffTtyZXR1cm4gbWVtb2l6ZWQuY2FjaGU9bmV3KG1lbW9pemUuQ2FjaGV8fGEpLG1lbW9pemVkfW1lbW9pemUuQ2FjaGU9YSxzLmV4cG9ydHM9bWVtb2l6ZX0sNTA1ODM6KHMsbyxpKT0+e3ZhciBhPWkoNDcyMzcpLHU9aSgxNzI1NSksXz1pKDI4NTg2KSx3PWkoNzc3OTcpO3MuZXhwb3J0cz1mdW5jdGlvbiBwcm9wZXJ0eShzKXtyZXR1cm4gXyhzKT9hKHcocykpOnUocyl9fSw1MDY4OToocyxvLGkpPT57dmFyIGE9aSg1MDAwMiksdT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3MuZXhwb3J0cz1mdW5jdGlvbiBlcXVhbE9iamVjdHMocyxvLGksXyx3LHgpe3ZhciBDPTEmaSxqPWEocyksTD1qLmxlbmd0aDtpZihMIT1hKG8pLmxlbmd0aCYmIUMpcmV0dXJuITE7Zm9yKHZhciBCPUw7Qi0tOyl7dmFyICQ9altCXTtpZighKEM/JCBpbiBvOnUuY2FsbChvLCQpKSlyZXR1cm4hMX12YXIgVj14LmdldChzKSxVPXguZ2V0KG8pO2lmKFYmJlUpcmV0dXJuIFY9PW8mJlU9PXM7dmFyIHo9ITA7eC5zZXQocyxvKSx4LnNldChvLHMpO2Zvcih2YXIgWT1DOysrQjxMOyl7dmFyIFo9c1skPWpbQl1dLGVlPW9bJF07aWYoXyl2YXIgaWU9Qz9fKGVlLFosJCxvLHMseCk6XyhaLGVlLCQscyxvLHgpO2lmKCEodm9pZCAwPT09aWU/Wj09PWVlfHx3KFosZWUsaSxfLHgpOmllKSl7ej0hMTticmVha31ZfHwoWT0iY29uc3RydWN0b3IiPT0kKX1pZih6JiYhWSl7dmFyIGFlPXMuY29uc3RydWN0b3IsY2U9by5jb25zdHJ1Y3RvcjthZT09Y2V8fCEoImNvbnN0cnVjdG9yImluIHMpfHwhKCJjb25zdHJ1Y3RvciJpbiBvKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGFlJiZhZSBpbnN0YW5jZW9mIGFlJiYiZnVuY3Rpb24iPT10eXBlb2YgY2UmJmNlIGluc3RhbmNlb2YgY2V8fCh6PSExKX1yZXR1cm4geC5kZWxldGUocykseC5kZWxldGUobyksen19LDUwODI4OihzLG8saSk9Pnt2YXIgYT1pKDI0NjQ3KSx1PWkoMTMyMjIpLF89L1tceGMwLVx4ZDZceGQ4LVx4ZjZceGY4LVx4ZmZcdTAxMDAtXHUwMTdmXS9nLHc9UmVnRXhwKCJbXFx1MDMwMC1cXHUwMzZmXFx1ZmUyMC1cXHVmZTJmXFx1MjBkMC1cXHUyMGZmXSIsImciKTtzLmV4cG9ydHM9ZnVuY3Rpb24gZGVidXJyKHMpe3JldHVybihzPXUocykpJiZzLnJlcGxhY2UoXyxhKS5yZXBsYWNlKHcsIiIpfX0sNTExNzU6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDE5ODQ2KTtzLmV4cG9ydHM9YSYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcn0sNTEyMzQ6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlWmlwT2JqZWN0KHMsbyxpKXtmb3IodmFyIGE9LTEsdT1zLmxlbmd0aCxfPW8ubGVuZ3RoLHc9e307KythPHU7KXt2YXIgeD1hPF8/b1thXTp2b2lkIDA7aSh3LHNbYV0seCl9cmV0dXJuIHd9fSw1MTQyMDoocyxvLGkpPT57dmFyIGE9aSg4MDA3OSk7cy5leHBvcnRzPWZ1bmN0aW9uIHN0YWNrQ2xlYXIoKXt0aGlzLl9fZGF0YV9fPW5ldyBhLHRoaXMuc2l6ZT0wfX0sNTE0NTk6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBzZXRDYWNoZUhhcyhzKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMocyl9fSw1MTgxMTpzPT57dmFyIG89RGF0ZS5ub3c7cy5leHBvcnRzPWZ1bmN0aW9uIHNob3J0T3V0KHMpe3ZhciBpPTAsYT0wO3JldHVybiBmdW5jdGlvbigpe3ZhciB1PW8oKSxfPTE2LSh1LWEpO2lmKGE9dSxfPjApe2lmKCsraT49ODAwKXJldHVybiBhcmd1bWVudHNbMF19ZWxzZSBpPTA7cmV0dXJuIHMuYXBwbHkodm9pZCAwLGFyZ3VtZW50cyl9fX0sNTE4NzE6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDE5MDcpLHU9aSg4MjE1OSk7cy5leHBvcnRzPWZ1bmN0aW9uKHMsbyxpKXt0cnl7cmV0dXJuIGEodShPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsbylbaV0pKX1jYXRjaChzKXt9fX0sNTE4NzM6KHMsbyxpKT0+e3ZhciBhPWkoOTMyNSkuU3ltYm9sO3MuZXhwb3J0cz1hfSw1MjYyMzoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPXt9O2FbaSg3NjI2NCkoInRvU3RyaW5nVGFnIildPSJ6IixzLmV4cG9ydHM9IltvYmplY3Qgel0iPT09U3RyaW5nKGEpfSw1MzEzODoocyxvLGkpPT57dmFyIGE9aSgxMTMzMSk7cy5leHBvcnRzPWZ1bmN0aW9uIGN1c3RvbU9taXRDbG9uZShzKXtyZXR1cm4gYShzKT92b2lkIDA6c319LDUzMjA5OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg2NTYwNiksdT02NTUzNixfPTQyOTQ5NjcyOTU7dmFyIHc9aSg5Mjg2MSkuQnVmZmVyLHg9aS5nLmNyeXB0b3x8aS5nLm1zQ3J5cHRvO3gmJnguZ2V0UmFuZG9tVmFsdWVzP3MuZXhwb3J0cz1mdW5jdGlvbiByYW5kb21CeXRlcyhzLG8pe2lmKHM+Xyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigicmVxdWVzdGVkIHRvbyBtYW55IHJhbmRvbSBieXRlcyIpO3ZhciBpPXcuYWxsb2NVbnNhZmUocyk7aWYocz4wKWlmKHM+dSlmb3IodmFyIEM9MDtDPHM7Qys9dSl4LmdldFJhbmRvbVZhbHVlcyhpLnNsaWNlKEMsQyt1KSk7ZWxzZSB4LmdldFJhbmRvbVZhbHVlcyhpKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgbylyZXR1cm4gYS5uZXh0VGljaygoZnVuY3Rpb24oKXtvKG51bGwsaSl9KSk7cmV0dXJuIGl9OnMuZXhwb3J0cz1mdW5jdGlvbiBvbGRCcm93c2VyKCl7dGhyb3cgbmV3IEVycm9yKCJTZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyLlxuVXNlIENocm9tZSwgRmlyZWZveCBvciBJbnRlcm5ldCBFeHBsb3JlciAxMSIpfX0sNTMzMjA6cz0+e3ZhciBvPU1hdGgubWF4O3MuZXhwb3J0cz1mdW5jdGlvbiBjb21wb3NlQXJnc1JpZ2h0KHMsaSxhLHUpe2Zvcih2YXIgXz0tMSx3PXMubGVuZ3RoLHg9LTEsQz1hLmxlbmd0aCxqPS0xLEw9aS5sZW5ndGgsQj1vKHctQywwKSwkPUFycmF5KEIrTCksVj0hdTsrK188QjspJFtfXT1zW19dO2Zvcih2YXIgVT1fOysrajxMOykkW1Ural09aVtqXTtmb3IoOysreDxDOykoVnx8Xzx3KSYmKCRbVSthW3hdXT1zW18rK10pO3JldHVybiAkfX0sNTMzNzU6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDkzNzAwKTtzLmV4cG9ydHM9YX0sNTM2NjE6KHMsbyxpKT0+e3ZhciBhPWkoNjMwNDApLHU9aSgxNzY3MCksXz1pKDkwMjg5KSx3PWkoNDUwOSkseD1pKDcyOTQ5KTtmdW5jdGlvbiBNYXBDYWNoZShzKXt2YXIgbz0tMSxpPW51bGw9PXM/MDpzLmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrbzxpOyl7dmFyIGE9c1tvXTt0aGlzLnNldChhWzBdLGFbMV0pfX1NYXBDYWNoZS5wcm90b3R5cGUuY2xlYXI9YSxNYXBDYWNoZS5wcm90b3R5cGUuZGVsZXRlPXUsTWFwQ2FjaGUucHJvdG90eXBlLmdldD1fLE1hcENhY2hlLnByb3RvdHlwZS5oYXM9dyxNYXBDYWNoZS5wcm90b3R5cGUuc2V0PXgscy5leHBvcnRzPU1hcENhY2hlfSw1Mzc1ODoocyxvLGkpPT57dmFyIGE9aSgzMDk4MCksdT1pKDU2MDE3KSxfPWkoOTQwMzMpLHc9aSg1NjQ0OSkseD1pKDQwMzQ2KSxDPWkoODAyNTcpLGo9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBsb2Rhc2gocyl7aWYoeChzKSYmIXcocykmJiEocyBpbnN0YW5jZW9mIGEpKXtpZihzIGluc3RhbmNlb2YgdSlyZXR1cm4gcztpZihqLmNhbGwocywiX193cmFwcGVkX18iKSlyZXR1cm4gQyhzKX1yZXR1cm4gbmV3IHUocyl9bG9kYXNoLnByb3RvdHlwZT1fLnByb3RvdHlwZSxsb2Rhc2gucHJvdG90eXBlLmNvbnN0cnVjdG9yPWxvZGFzaCxzLmV4cG9ydHM9bG9kYXNofSw1MzgxMjoocyxvLGkpPT57dmFyIGE9aSg3MjU1MiksdT1pKDQwMzQ2KTtzLmV4cG9ydHM9ZnVuY3Rpb24gaXNCb29sZWFuKHMpe3JldHVybiEwPT09c3x8ITE9PT1zfHx1KHMpJiYiW29iamVjdCBCb29sZWFuXSI9PWEocyl9fSw1NDAxODoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNDYyODUpO3MuZXhwb3J0cz1mdW5jdGlvbihzKXtyZXR1cm4gYShzKXx8bnVsbD09PXN9fSw1NDEyODoocyxvLGkpPT57dmFyIGE9aSgzMTgwMCksdT0vXlxzKy87cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VUcmltKHMpe3JldHVybiBzP3Muc2xpY2UoMCxhKHMpKzEpLnJlcGxhY2UodSwiIik6c319LDU0NTUyOnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZVByb3BlcnR5T2Yocyl7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBudWxsPT1zP3ZvaWQgMDpzW29dfX19LDU0NjQxOihzLG8saSk9Pnt2YXIgYT1pKDY4ODgyKSx1PWkoNTE4MTEpKGEpO3MuZXhwb3J0cz11fSw1NDgyOToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNzQyODQpLmY7cy5leHBvcnRzPWZ1bmN0aW9uKHMsbyxpKXtpIGluIHN8fGEocyxpLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG9baV19LHNldDpmdW5jdGlvbihzKXtvW2ldPXN9fSl9fSw1NDg3ODoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNTI2MjMpLHU9aSg3Mzk0OCk7cy5leHBvcnRzPWE/e30udG9TdHJpbmc6ZnVuY3Rpb24gdG9TdHJpbmcoKXtyZXR1cm4iW29iamVjdCAiK3UodGhpcykrIl0ifX0sNTUxNTc6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiUmVhZGFibGUuZnJvbSBpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBicm93c2VyIil9fSw1NTM2NDoocyxvLGkpPT57dmFyIGE9aSg4NTI1MCksdT1pKDIwOTk5KSgoZnVuY3Rpb24ocyxvLGkpe2EocyxvLGkpfSkpO3MuZXhwb3J0cz11fSw1NTQ4MToocyxvLGkpPT57dmFyIGE9aSg5MzI1KVsiX19jb3JlLWpzX3NoYXJlZF9fIl07cy5leHBvcnRzPWF9LDU1NTI3OnM9Pnt2YXIgbz1PYmplY3QucHJvdG90eXBlO3MuZXhwb3J0cz1mdW5jdGlvbiBpc1Byb3RvdHlwZShzKXt2YXIgaT1zJiZzLmNvbnN0cnVjdG9yO3JldHVybiBzPT09KCJmdW5jdGlvbiI9PXR5cGVvZiBpJiZpLnByb3RvdHlwZXx8byl9fSw1NTU4MDoocyxvLGkpPT57dmFyIGE9aSg1NjExMCkoaSg5MzI1KSwiRGF0YVZpZXciKTtzLmV4cG9ydHM9YX0sNTU2NzQ6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksby52YWxpZGF0ZU5leHRTdGF0ZT1vLmdldFVuZXhwZWN0ZWRJbnZvY2F0aW9uUGFyYW1ldGVyTWVzc2FnZT1vLmdldFN0YXRlTmFtZT12b2lkIDA7dmFyIGE9X2ludGVyb3BSZXF1aXJlRGVmYXVsdChpKDQ4NTkwKSksdT1faW50ZXJvcFJlcXVpcmVEZWZhdWx0KGkoODIyNjEpKSxfPV9pbnRlcm9wUmVxdWlyZURlZmF1bHQoaSgyNzM3NCkpO2Z1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocyl7cmV0dXJuIHMmJnMuX19lc01vZHVsZT9zOntkZWZhdWx0OnN9fW8uZ2V0U3RhdGVOYW1lPWEuZGVmYXVsdCxvLmdldFVuZXhwZWN0ZWRJbnZvY2F0aW9uUGFyYW1ldGVyTWVzc2FnZT11LmRlZmF1bHQsby52YWxpZGF0ZU5leHRTdGF0ZT1fLmRlZmF1bHR9LDU1ODA4OihzLG8saSk9Pnt2YXIgYT1pKDEyNTA3KSgidG9VcHBlckNhc2UiKTtzLmV4cG9ydHM9YX0sNTU5NzM6cz0+e2NsYXNzIEtleVZhbHVlUGFpcntjb25zdHJ1Y3RvcihzLG8pe3RoaXMua2V5PXMsdGhpcy52YWx1ZT1vfWNsb25lKCl7Y29uc3Qgcz1uZXcgS2V5VmFsdWVQYWlyO3JldHVybiB0aGlzLmtleSYmKHMua2V5PXRoaXMua2V5LmNsb25lKCkpLHRoaXMudmFsdWUmJihzLnZhbHVlPXRoaXMudmFsdWUuY2xvbmUoKSksc319cy5leHBvcnRzPUtleVZhbHVlUGFpcn0sNTYwMTc6KHMsbyxpKT0+e3ZhciBhPWkoMzkzNDQpLHU9aSg5NDAzMyk7ZnVuY3Rpb24gTG9kYXNoV3JhcHBlcihzLG8pe3RoaXMuX193cmFwcGVkX189cyx0aGlzLl9fYWN0aW9uc19fPVtdLHRoaXMuX19jaGFpbl9fPSEhbyx0aGlzLl9faW5kZXhfXz0wLHRoaXMuX192YWx1ZXNfXz12b2lkIDB9TG9kYXNoV3JhcHBlci5wcm90b3R5cGU9YSh1LnByb3RvdHlwZSksTG9kYXNoV3JhcHBlci5wcm90b3R5cGUuY29uc3RydWN0b3I9TG9kYXNoV3JhcHBlcixzLmV4cG9ydHM9TG9kYXNoV3JhcHBlcn0sNTYxMTA6KHMsbyxpKT0+e3ZhciBhPWkoNDUwODMpLHU9aSgxMDM5Mik7cy5leHBvcnRzPWZ1bmN0aW9uIGdldE5hdGl2ZShzLG8pe3ZhciBpPXUocyxvKTtyZXR1cm4gYShpKT9pOnZvaWQgMH19LDU2MzY3OihzLG8saSk9PntzLmV4cG9ydHM9aSg3NzczMSl9LDU2NDQ5OnM9Pnt2YXIgbz1BcnJheS5pc0FycmF5O3MuZXhwb3J0cz1vfSw1NjY5ODpzPT57ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5jcmVhdGU/cy5leHBvcnRzPWZ1bmN0aW9uIGluaGVyaXRzKHMsbyl7byYmKHMuc3VwZXJfPW8scy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShvLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnMsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSkpfTpzLmV4cG9ydHM9ZnVuY3Rpb24gaW5oZXJpdHMocyxvKXtpZihvKXtzLnN1cGVyXz1vO3ZhciBUZW1wQ3Rvcj1mdW5jdGlvbigpe307VGVtcEN0b3IucHJvdG90eXBlPW8ucHJvdG90eXBlLHMucHJvdG90eXBlPW5ldyBUZW1wQ3RvcixzLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1zfX19LDU2NzU3OihzLG8saSk9Pnt2YXIgYT1pKDkxMDMzKSx1PU1hdGgubWF4O3MuZXhwb3J0cz1mdW5jdGlvbiBvdmVyUmVzdChzLG8saSl7cmV0dXJuIG89dSh2b2lkIDA9PT1vP3MubGVuZ3RoLTE6bywwKSxmdW5jdGlvbigpe2Zvcih2YXIgXz1hcmd1bWVudHMsdz0tMSx4PXUoXy5sZW5ndGgtbywwKSxDPUFycmF5KHgpOysrdzx4OylDW3ddPV9bbyt3XTt3PS0xO2Zvcih2YXIgaj1BcnJheShvKzEpOysrdzxvOylqW3ddPV9bd107cmV0dXJuIGpbb109aShDKSxhKHMsdGhpcyxqKX19fSw1NzM4MjoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoOTg4MjgpO3MuZXhwb3J0cz0hYSgoZnVuY3Rpb24oKXtmdW5jdGlvbiBGKCl7fXJldHVybiBGLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1udWxsLE9iamVjdC5nZXRQcm90b3R5cGVPZihuZXcgRikhPT1GLnByb3RvdHlwZX0pKX0sNTc3NTg6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYTt2YXIgdT1pKDg2MDQ4KS5GLF89dS5FUlJfTUlTU0lOR19BUkdTLHc9dS5FUlJfU1RSRUFNX0RFU1RST1lFRDtmdW5jdGlvbiBub29wKHMpe2lmKHMpdGhyb3cgc31mdW5jdGlvbiBjYWxsKHMpe3MoKX1mdW5jdGlvbiBwaXBlKHMsbyl7cmV0dXJuIHMucGlwZShvKX1zLmV4cG9ydHM9ZnVuY3Rpb24gcGlwZWxpbmUoKXtmb3IodmFyIHM9YXJndW1lbnRzLmxlbmd0aCxvPW5ldyBBcnJheShzKSx1PTA7dTxzO3UrKylvW3VdPWFyZ3VtZW50c1t1XTt2YXIgeCxDPWZ1bmN0aW9uIHBvcENhbGxiYWNrKHMpe3JldHVybiBzLmxlbmd0aD8iZnVuY3Rpb24iIT10eXBlb2Ygc1tzLmxlbmd0aC0xXT9ub29wOnMucG9wKCk6bm9vcH0obyk7aWYoQXJyYXkuaXNBcnJheShvWzBdKSYmKG89b1swXSksby5sZW5ndGg8Mil0aHJvdyBuZXcgXygic3RyZWFtcyIpO3ZhciBqPW8ubWFwKChmdW5jdGlvbihzLHUpe3ZhciBfPXU8by5sZW5ndGgtMTtyZXR1cm4gZnVuY3Rpb24gZGVzdHJveWVyKHMsbyx1LF8pe189ZnVuY3Rpb24gb25jZShzKXt2YXIgbz0hMTtyZXR1cm4gZnVuY3Rpb24oKXtvfHwobz0hMCxzLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpKX19KF8pO3ZhciB4PSExO3Mub24oImNsb3NlIiwoZnVuY3Rpb24oKXt4PSEwfSkpLHZvaWQgMD09PWEmJihhPWkoODYyMzgpKSxhKHMse3JlYWRhYmxlOm8sd3JpdGFibGU6dX0sKGZ1bmN0aW9uKHMpe2lmKHMpcmV0dXJuIF8ocyk7eD0hMCxfKCl9KSk7dmFyIEM9ITE7cmV0dXJuIGZ1bmN0aW9uKG8pe2lmKCF4JiYhQylyZXR1cm4gQz0hMCxmdW5jdGlvbiBpc1JlcXVlc3Qocyl7cmV0dXJuIHMuc2V0SGVhZGVyJiYiZnVuY3Rpb24iPT10eXBlb2Ygcy5hYm9ydH0ocyk/cy5hYm9ydCgpOiJmdW5jdGlvbiI9PXR5cGVvZiBzLmRlc3Ryb3k/cy5kZXN0cm95KCk6dm9pZCBfKG98fG5ldyB3KCJwaXBlIikpfX0ocyxfLHU+MCwoZnVuY3Rpb24ocyl7eHx8KHg9cykscyYmai5mb3JFYWNoKGNhbGwpLF98fChqLmZvckVhY2goY2FsbCksQyh4KSl9KSl9KSk7cmV0dXJuIG8ucmVkdWNlKHBpcGUpfX0sNTgwNzU6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYSx1PWkoMzY2MjQpLF89aSg0MjIyMCksdz1pKDgwMzc2KSx4PWkoMzg1MzApLEM9aSg2MjQxNiksaj1pKDQ5NTUyKSxMPWkoOTI1MjIpLEI9InByb3RvdHlwZSIsJD0ic2NyaXB0IixWPUwoIklFX1BST1RPIiksRW1wdHlDb25zdHJ1Y3Rvcj1mdW5jdGlvbigpe30sc2NyaXB0VGFnPWZ1bmN0aW9uKHMpe3JldHVybiI8IiskKyI+IitzKyI8LyIrJCsiPiJ9LE51bGxQcm90b09iamVjdFZpYUFjdGl2ZVg9ZnVuY3Rpb24ocyl7cy53cml0ZShzY3JpcHRUYWcoIiIpKSxzLmNsb3NlKCk7dmFyIG89cy5wYXJlbnRXaW5kb3cuT2JqZWN0O3JldHVybiBzPW51bGwsb30sTnVsbFByb3RvT2JqZWN0PWZ1bmN0aW9uKCl7dHJ5e2E9bmV3IEFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIil9Y2F0Y2gocyl7fXZhciBzLG8saTtOdWxsUHJvdG9PYmplY3Q9InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudC5kb21haW4mJmE/TnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWChhKToobz1qKCJpZnJhbWUiKSxpPSJqYXZhIiskKyI6IixvLnN0eWxlLmRpc3BsYXk9Im5vbmUiLEMuYXBwZW5kQ2hpbGQobyksby5zcmM9U3RyaW5nKGkpLChzPW8uY29udGVudFdpbmRvdy5kb2N1bWVudCkub3BlbigpLHMud3JpdGUoc2NyaXB0VGFnKCJkb2N1bWVudC5GPU9iamVjdCIpKSxzLmNsb3NlKCkscy5GKTpOdWxsUHJvdG9PYmplY3RWaWFBY3RpdmVYKGEpO2Zvcih2YXIgdT13Lmxlbmd0aDt1LS07KWRlbGV0ZSBOdWxsUHJvdG9PYmplY3RbQl1bd1t1XV07cmV0dXJuIE51bGxQcm90b09iamVjdCgpfTt4W1ZdPSEwLHMuZXhwb3J0cz1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbiBjcmVhdGUocyxvKXt2YXIgaTtyZXR1cm4gbnVsbCE9PXM/KEVtcHR5Q29uc3RydWN0b3JbQl09dShzKSxpPW5ldyBFbXB0eUNvbnN0cnVjdG9yLEVtcHR5Q29uc3RydWN0b3JbQl09bnVsbCxpW1ZdPXMpOmk9TnVsbFByb3RvT2JqZWN0KCksdm9pZCAwPT09bz9pOl8uZihpLG8pfX0sNTgxNTY6KHMsbyxpKT0+e3ZhciBhPWkoNDc0MjIpO3MuZXhwb3J0cz1mdW5jdGlvbiBnZXQocyxvLGkpe3ZhciB1PW51bGw9PXM/dm9pZCAwOmEocyxvKTtyZXR1cm4gdm9pZCAwPT09dT9pOnV9fSw1ODUyMzpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIGNvdW50SG9sZGVycyhzLG8pe2Zvcih2YXIgaT1zLmxlbmd0aCxhPTA7aS0tOylzW2ldPT09byYmKythO3JldHVybiBhfX0sNTg2NjE6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDM5NDQ3KSx1PWkoOTg4MjgpO3MuZXhwb3J0cz1hJiZ1KChmdW5jdGlvbigpe3JldHVybiA0MiE9PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSgoZnVuY3Rpb24oKXt9KSwicHJvdG90eXBlIix7dmFsdWU6NDIsd3JpdGFibGU6ITF9KS5wcm90b3R5cGV9KSl9LDU5MzUwOnM9Pnt2YXIgbz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO3MuZXhwb3J0cz1mdW5jdGlvbiBvYmplY3RUb1N0cmluZyhzKXtyZXR1cm4gby5jYWxsKHMpfX0sNTkzOTk6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDI1MjY0KS5Db3B5VG9DbGlwYm9hcmQ7YS5Db3B5VG9DbGlwYm9hcmQ9YSxzLmV4cG9ydHM9YX0sNTk1NTA6cz0+eyJ1c2Ugc3RyaWN0IjtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvKXtyZXR1cm57dmFsdWU6cyxkb25lOm99fX0sNjAxODM6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDExMDkxKSx1PWkoMTM5MzApLF89aSg3Mzc2KSx3PWkoMzY4MzMpLHg9aSg2MjI1MCksQz1pKDQ3MTgxKSxqPWkoMTU5NzIpLEw9aSg3OTE5MiksQj1pKDE0ODQwKSwkPWkoNjE2MjYpLFY9aSg2ODA1NSksVT1pKDc2MjY0KSx6PWkoOTM3NDIpLFk9aSg5NTExNiksWj13LlBST1BFUixlZT13LkNPTkZJR1VSQUJMRSxpZT1ZLkl0ZXJhdG9yUHJvdG90eXBlLGFlPVkuQlVHR1lfU0FGQVJJX0lURVJBVE9SUyxjZT1VKCJpdGVyYXRvciIpLGxlPSJrZXlzIixwZT0idmFsdWVzIixkZT0iZW50cmllcyIscmV0dXJuVGhpcz1mdW5jdGlvbigpe3JldHVybiB0aGlzfTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvLGksdyxVLFksZmUpe0MoaSxvLHcpO3ZhciB5ZSxiZSxfZSxnZXRJdGVyYXRpb25NZXRob2Q9ZnVuY3Rpb24ocyl7aWYocz09PVUmJlRlKXJldHVybiBUZTtpZighYWUmJnMmJnMgaW4geGUpcmV0dXJuIHhlW3NdO3N3aXRjaChzKXtjYXNlIGxlOnJldHVybiBmdW5jdGlvbiBrZXlzKCl7cmV0dXJuIG5ldyBpKHRoaXMscyl9O2Nhc2UgcGU6cmV0dXJuIGZ1bmN0aW9uIHZhbHVlcygpe3JldHVybiBuZXcgaSh0aGlzLHMpfTtjYXNlIGRlOnJldHVybiBmdW5jdGlvbiBlbnRyaWVzKCl7cmV0dXJuIG5ldyBpKHRoaXMscyl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgaSh0aGlzKX19LFNlPW8rIiBJdGVyYXRvciIsd2U9ITEseGU9cy5wcm90b3R5cGUsUGU9eGVbY2VdfHx4ZVsiQEBpdGVyYXRvciJdfHxVJiZ4ZVtVXSxUZT0hYWUmJlBlfHxnZXRJdGVyYXRpb25NZXRob2QoVSksUmU9IkFycmF5Ij09PW8mJnhlLmVudHJpZXN8fFBlO2lmKFJlJiYoeWU9aihSZS5jYWxsKG5ldyBzKSkpIT09T2JqZWN0LnByb3RvdHlwZSYmeWUubmV4dCYmKF98fGooeWUpPT09aWV8fChMP0woeWUsaWUpOngoeWVbY2VdKXx8Vih5ZSxjZSxyZXR1cm5UaGlzKSksQih5ZSxTZSwhMCwhMCksXyYmKHpbU2VdPXJldHVyblRoaXMpKSxaJiZVPT09cGUmJlBlJiZQZS5uYW1lIT09cGUmJighXyYmZWU/JCh4ZSwibmFtZSIscGUpOih3ZT0hMCxUZT1mdW5jdGlvbiB2YWx1ZXMoKXtyZXR1cm4gdShQZSx0aGlzKX0pKSxVKWlmKGJlPXt2YWx1ZXM6Z2V0SXRlcmF0aW9uTWV0aG9kKHBlKSxrZXlzOlk/VGU6Z2V0SXRlcmF0aW9uTWV0aG9kKGxlKSxlbnRyaWVzOmdldEl0ZXJhdGlvbk1ldGhvZChkZSl9LGZlKWZvcihfZSBpbiBiZSkoYWV8fHdlfHwhKF9lIGluIHhlKSkmJlYoeGUsX2UsYmVbX2VdKTtlbHNlIGEoe3RhcmdldDpvLHByb3RvOiEwLGZvcmNlZDphZXx8d2V9LGJlKTtyZXR1cm4gXyYmIWZlfHx4ZVtjZV09PT1UZXx8Vih4ZSxjZSxUZSx7bmFtZTpVfSkseltvXT1UZSxiZX19LDYwMjcwOihzLG8saSk9Pnt2YXIgYT1pKDg3MDY4KSx1PWkoNDAzNDYpO3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlSXNFcXVhbChzLG8saSxfLHcpe3JldHVybiBzPT09b3x8KG51bGw9PXN8fG51bGw9PW98fCF1KHMpJiYhdShvKT9zIT1zJiZvIT1vOmEocyxvLGksXyxiYXNlSXNFcXVhbCx3KSl9fSw2MDU4MToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMTM5MzApLHU9aSg2MjI1MCksXz1pKDQ2Mjg1KSx3PVR5cGVFcnJvcjtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvKXt2YXIgaSx4O2lmKCJzdHJpbmciPT09byYmdShpPXMudG9TdHJpbmcpJiYhXyh4PWEoaSxzKSkpcmV0dXJuIHg7aWYodShpPXMudmFsdWVPZikmJiFfKHg9YShpLHMpKSlyZXR1cm4geDtpZigic3RyaW5nIiE9PW8mJnUoaT1zLnRvU3RyaW5nKSYmIV8oeD1hKGkscykpKXJldHVybiB4O3Rocm93IG5ldyB3KCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX19LDYwNjgwOihzLG8saSk9Pnt2YXIgYT1pKDEzMjIyKSx1PS9bXFxeJC4qKz8oKVtcXXt9fF0vZyxfPVJlZ0V4cCh1LnNvdXJjZSk7cy5leHBvcnRzPWZ1bmN0aW9uIGVzY2FwZVJlZ0V4cChzKXtyZXR1cm4ocz1hKHMpKSYmXy50ZXN0KHMpP3MucmVwbGFjZSh1LCJcXCQmIik6c319LDYxMDQ1OihzLG8saSk9Pntjb25zdCBhPWkoNjA0OCksdT1pKDIzODA1KSxfPWkoNjIzMyksdz1pKDg3NzI2KSx4PWkoMTA4NjYpO3MuZXhwb3J0cz1jbGFzcyBPYmplY3RFbGVtZW50IGV4dGVuZHMgX3tjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIoc3x8W10sbyxpKSx0aGlzLmVsZW1lbnQ9Im9iamVjdCJ9cHJpbWl0aXZlKCl7cmV0dXJuIm9iamVjdCJ9dG9WYWx1ZSgpe3JldHVybiB0aGlzLmNvbnRlbnQucmVkdWNlKCgocyxvKT0+KHNbby5rZXkudG9WYWx1ZSgpXT1vLnZhbHVlP28udmFsdWUudG9WYWx1ZSgpOnZvaWQgMCxzKSkse30pfWdldChzKXtjb25zdCBvPXRoaXMuZ2V0TWVtYmVyKHMpO2lmKG8pcmV0dXJuIG8udmFsdWV9Z2V0TWVtYmVyKHMpe2lmKHZvaWQgMCE9PXMpcmV0dXJuIHRoaXMuY29udGVudC5maW5kKChvPT5vLmtleS50b1ZhbHVlKCk9PT1zKSl9cmVtb3ZlKHMpe2xldCBvPW51bGw7cmV0dXJuIHRoaXMuY29udGVudD10aGlzLmNvbnRlbnQuZmlsdGVyKChpPT5pLmtleS50b1ZhbHVlKCkhPT1zfHwobz1pLCExKSkpLG99Z2V0S2V5KHMpe2NvbnN0IG89dGhpcy5nZXRNZW1iZXIocyk7aWYobylyZXR1cm4gby5rZXl9c2V0KHMsbyl7aWYodShzKSlyZXR1cm4gT2JqZWN0LmtleXMocykuZm9yRWFjaCgobz0+e3RoaXMuc2V0KG8sc1tvXSl9KSksdGhpcztjb25zdCBpPXMsYT10aGlzLmdldE1lbWJlcihpKTtyZXR1cm4gYT9hLnZhbHVlPW86dGhpcy5jb250ZW50LnB1c2gobmV3IHcoaSxvKSksdGhpc31rZXlzKCl7cmV0dXJuIHRoaXMuY29udGVudC5tYXAoKHM9PnMua2V5LnRvVmFsdWUoKSkpfXZhbHVlcygpe3JldHVybiB0aGlzLmNvbnRlbnQubWFwKChzPT5zLnZhbHVlLnRvVmFsdWUoKSkpfWhhc0tleShzKXtyZXR1cm4gdGhpcy5jb250ZW50LnNvbWUoKG89Pm8ua2V5LmVxdWFscyhzKSkpfWl0ZW1zKCl7cmV0dXJuIHRoaXMuY29udGVudC5tYXAoKHM9PltzLmtleS50b1ZhbHVlKCkscy52YWx1ZS50b1ZhbHVlKCldKSl9bWFwKHMsbyl7cmV0dXJuIHRoaXMuY29udGVudC5tYXAoKGk9PnMuYmluZChvKShpLnZhbHVlLGkua2V5LGkpKSl9Y29tcGFjdE1hcChzLG8pe2NvbnN0IGk9W107cmV0dXJuIHRoaXMuZm9yRWFjaCgoKGEsdSxfKT0+e2NvbnN0IHc9cy5iaW5kKG8pKGEsdSxfKTt3JiZpLnB1c2godyl9KSksaX1maWx0ZXIocyxvKXtyZXR1cm4gbmV3IHgodGhpcy5jb250ZW50KS5maWx0ZXIocyxvKX1yZWplY3QocyxvKXtyZXR1cm4gdGhpcy5maWx0ZXIoYShzKSxvKX1mb3JFYWNoKHMsbyl7cmV0dXJuIHRoaXMuY29udGVudC5mb3JFYWNoKChpPT5zLmJpbmQobykoaS52YWx1ZSxpLmtleSxpKSkpfX19LDYxMDc0OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gYXNjaWlUb0FycmF5KHMpe3JldHVybiBzLnNwbGl0KCIiKX19LDYxMTYwOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg5MjA2MyksdT1pKDczOTkyKSxfPS9eW1x4MDAtXHgyMFx1MDBhMFx1MTY4MFx1MjAwMC1cdTIwMGFcdTIwMjhcdTIwMjlcdTIwMmZcdTIwNWZcdTMwMDBcdWZlZmZdKy8sdz0vW1xuXHJcdF0vZyx4PS9eW0EtWmEtel1bQS1aYS16MC05Ky0uXSo6XC9cLy8sQz0vOlxkKyQvLGo9L14oW2Etel1bYS16MC05ListXSo6KT8oXC9cLyk/KFtcXC9dKyk/KFtcU1xzXSopL2ksTD0vXlthLXpBLVpdOi87ZnVuY3Rpb24gdHJpbUxlZnQocyl7cmV0dXJuKHN8fCIiKS50b1N0cmluZygpLnJlcGxhY2UoXywiIil9dmFyIEI9W1siIyIsImhhc2giXSxbIj8iLCJxdWVyeSJdLGZ1bmN0aW9uIHNhbml0aXplKHMsbyl7cmV0dXJuIGlzU3BlY2lhbChvLnByb3RvY29sKT9zLnJlcGxhY2UoL1xcL2csIi8iKTpzfSxbIi8iLCJwYXRobmFtZSJdLFsiQCIsImF1dGgiLDFdLFtOYU4sImhvc3QiLHZvaWQgMCwxLDFdLFsvOihcZCopJC8sInBvcnQiLHZvaWQgMCwxXSxbTmFOLCJob3N0bmFtZSIsdm9pZCAwLDEsMV1dLCQ9e2hhc2g6MSxxdWVyeToxfTtmdW5jdGlvbiBsb2xjYXRpb24ocyl7dmFyIG8sYT0oInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OnZvaWQgMCE9PWkuZz9pLmc6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30pLmxvY2F0aW9ufHx7fSx1PXt9LF89dHlwZW9mKHM9c3x8YSk7aWYoImJsb2I6Ij09PXMucHJvdG9jb2wpdT1uZXcgVXJsKHVuZXNjYXBlKHMucGF0aG5hbWUpLHt9KTtlbHNlIGlmKCJzdHJpbmciPT09Xylmb3IobyBpbiB1PW5ldyBVcmwocyx7fSksJClkZWxldGUgdVtvXTtlbHNlIGlmKCJvYmplY3QiPT09Xyl7Zm9yKG8gaW4gcylvIGluICR8fCh1W29dPXNbb10pO3ZvaWQgMD09PXUuc2xhc2hlcyYmKHUuc2xhc2hlcz14LnRlc3Qocy5ocmVmKSl9cmV0dXJuIHV9ZnVuY3Rpb24gaXNTcGVjaWFsKHMpe3JldHVybiJmaWxlOiI9PT1zfHwiZnRwOiI9PT1zfHwiaHR0cDoiPT09c3x8Imh0dHBzOiI9PT1zfHwid3M6Ij09PXN8fCJ3c3M6Ij09PXN9ZnVuY3Rpb24gZXh0cmFjdFByb3RvY29sKHMsbyl7cz0ocz10cmltTGVmdChzKSkucmVwbGFjZSh3LCIiKSxvPW98fHt9O3ZhciBpLGE9ai5leGVjKHMpLHU9YVsxXT9hWzFdLnRvTG93ZXJDYXNlKCk6IiIsXz0hIWFbMl0seD0hIWFbM10sQz0wO3JldHVybiBfP3g/KGk9YVsyXSthWzNdK2FbNF0sQz1hWzJdLmxlbmd0aCthWzNdLmxlbmd0aCk6KGk9YVsyXSthWzRdLEM9YVsyXS5sZW5ndGgpOng/KGk9YVszXSthWzRdLEM9YVszXS5sZW5ndGgpOmk9YVs0XSwiZmlsZToiPT09dT9DPj0yJiYoaT1pLnNsaWNlKDIpKTppc1NwZWNpYWwodSk/aT1hWzRdOnU/XyYmKGk9aS5zbGljZSgyKSk6Qz49MiYmaXNTcGVjaWFsKG8ucHJvdG9jb2wpJiYoaT1hWzRdKSx7cHJvdG9jb2w6dSxzbGFzaGVzOl98fGlzU3BlY2lhbCh1KSxzbGFzaGVzQ291bnQ6QyxyZXN0Oml9fWZ1bmN0aW9uIFVybChzLG8saSl7aWYocz0ocz10cmltTGVmdChzKSkucmVwbGFjZSh3LCIiKSwhKHRoaXMgaW5zdGFuY2VvZiBVcmwpKXJldHVybiBuZXcgVXJsKHMsbyxpKTt2YXIgXyx4LEMsaiwkLFYsVT1CLnNsaWNlKCksej10eXBlb2YgbyxZPXRoaXMsWj0wO2Zvcigib2JqZWN0IiE9PXomJiJzdHJpbmciIT09eiYmKGk9byxvPW51bGwpLGkmJiJmdW5jdGlvbiIhPXR5cGVvZiBpJiYoaT11LnBhcnNlKSxfPSEoeD1leHRyYWN0UHJvdG9jb2woc3x8IiIsbz1sb2xjYXRpb24obykpKS5wcm90b2NvbCYmIXguc2xhc2hlcyxZLnNsYXNoZXM9eC5zbGFzaGVzfHxfJiZvLnNsYXNoZXMsWS5wcm90b2NvbD14LnByb3RvY29sfHxvLnByb3RvY29sfHwiIixzPXgucmVzdCwoImZpbGU6Ij09PXgucHJvdG9jb2wmJigyIT09eC5zbGFzaGVzQ291bnR8fEwudGVzdChzKSl8fCF4LnNsYXNoZXMmJih4LnByb3RvY29sfHx4LnNsYXNoZXNDb3VudDwyfHwhaXNTcGVjaWFsKFkucHJvdG9jb2wpKSkmJihVWzNdPVsvKC4qKS8sInBhdGhuYW1lIl0pO1o8VS5sZW5ndGg7WisrKSJmdW5jdGlvbiIhPXR5cGVvZihqPVVbWl0pPyhDPWpbMF0sVj1qWzFdLEMhPUM/WVtWXT1zOiJzdHJpbmciPT10eXBlb2YgQz9+KCQ9IkAiPT09Qz9zLmxhc3RJbmRleE9mKEMpOnMuaW5kZXhPZihDKSkmJigibnVtYmVyIj09dHlwZW9mIGpbMl0/KFlbVl09cy5zbGljZSgwLCQpLHM9cy5zbGljZSgkK2pbMl0pKTooWVtWXT1zLnNsaWNlKCQpLHM9cy5zbGljZSgwLCQpKSk6KCQ9Qy5leGVjKHMpKSYmKFlbVl09JFsxXSxzPXMuc2xpY2UoMCwkLmluZGV4KSksWVtWXT1ZW1ZdfHxfJiZqWzNdJiZvW1ZdfHwiIixqWzRdJiYoWVtWXT1ZW1ZdLnRvTG93ZXJDYXNlKCkpKTpzPWoocyxZKTtpJiYoWS5xdWVyeT1pKFkucXVlcnkpKSxfJiZvLnNsYXNoZXMmJiIvIiE9PVkucGF0aG5hbWUuY2hhckF0KDApJiYoIiIhPT1ZLnBhdGhuYW1lfHwiIiE9PW8ucGF0aG5hbWUpJiYoWS5wYXRobmFtZT1mdW5jdGlvbiByZXNvbHZlKHMsbyl7aWYoIiI9PT1zKXJldHVybiBvO2Zvcih2YXIgaT0ob3x8Ii8iKS5zcGxpdCgiLyIpLnNsaWNlKDAsLTEpLmNvbmNhdChzLnNwbGl0KCIvIikpLGE9aS5sZW5ndGgsdT1pW2EtMV0sXz0hMSx3PTA7YS0tOykiLiI9PT1pW2FdP2kuc3BsaWNlKGEsMSk6Ii4uIj09PWlbYV0/KGkuc3BsaWNlKGEsMSksdysrKTp3JiYoMD09PWEmJihfPSEwKSxpLnNwbGljZShhLDEpLHctLSk7cmV0dXJuIF8mJmkudW5zaGlmdCgiIiksIi4iIT09dSYmIi4uIiE9PXV8fGkucHVzaCgiIiksaS5qb2luKCIvIil9KFkucGF0aG5hbWUsby5wYXRobmFtZSkpLCIvIiE9PVkucGF0aG5hbWUuY2hhckF0KDApJiZpc1NwZWNpYWwoWS5wcm90b2NvbCkmJihZLnBhdGhuYW1lPSIvIitZLnBhdGhuYW1lKSxhKFkucG9ydCxZLnByb3RvY29sKXx8KFkuaG9zdD1ZLmhvc3RuYW1lLFkucG9ydD0iIiksWS51c2VybmFtZT1ZLnBhc3N3b3JkPSIiLFkuYXV0aCYmKH4oJD1ZLmF1dGguaW5kZXhPZigiOiIpKT8oWS51c2VybmFtZT1ZLmF1dGguc2xpY2UoMCwkKSxZLnVzZXJuYW1lPWVuY29kZVVSSUNvbXBvbmVudChkZWNvZGVVUklDb21wb25lbnQoWS51c2VybmFtZSkpLFkucGFzc3dvcmQ9WS5hdXRoLnNsaWNlKCQrMSksWS5wYXNzd29yZD1lbmNvZGVVUklDb21wb25lbnQoZGVjb2RlVVJJQ29tcG9uZW50KFkucGFzc3dvcmQpKSk6WS51c2VybmFtZT1lbmNvZGVVUklDb21wb25lbnQoZGVjb2RlVVJJQ29tcG9uZW50KFkuYXV0aCkpLFkuYXV0aD1ZLnBhc3N3b3JkP1kudXNlcm5hbWUrIjoiK1kucGFzc3dvcmQ6WS51c2VybmFtZSksWS5vcmlnaW49ImZpbGU6IiE9PVkucHJvdG9jb2wmJmlzU3BlY2lhbChZLnByb3RvY29sKSYmWS5ob3N0P1kucHJvdG9jb2wrIi8vIitZLmhvc3Q6Im51bGwiLFkuaHJlZj1ZLnRvU3RyaW5nKCl9VXJsLnByb3RvdHlwZT17c2V0OmZ1bmN0aW9uIHNldChzLG8saSl7dmFyIF89dGhpcztzd2l0Y2gocyl7Y2FzZSJxdWVyeSI6InN0cmluZyI9PXR5cGVvZiBvJiZvLmxlbmd0aCYmKG89KGl8fHUucGFyc2UpKG8pKSxfW3NdPW87YnJlYWs7Y2FzZSJwb3J0IjpfW3NdPW8sYShvLF8ucHJvdG9jb2wpP28mJihfLmhvc3Q9Xy5ob3N0bmFtZSsiOiIrbyk6KF8uaG9zdD1fLmhvc3RuYW1lLF9bc109IiIpO2JyZWFrO2Nhc2UiaG9zdG5hbWUiOl9bc109byxfLnBvcnQmJihvKz0iOiIrXy5wb3J0KSxfLmhvc3Q9bzticmVhaztjYXNlImhvc3QiOl9bc109byxDLnRlc3Qobyk/KG89by5zcGxpdCgiOiIpLF8ucG9ydD1vLnBvcCgpLF8uaG9zdG5hbWU9by5qb2luKCI6IikpOihfLmhvc3RuYW1lPW8sXy5wb3J0PSIiKTticmVhaztjYXNlInByb3RvY29sIjpfLnByb3RvY29sPW8udG9Mb3dlckNhc2UoKSxfLnNsYXNoZXM9IWk7YnJlYWs7Y2FzZSJwYXRobmFtZSI6Y2FzZSJoYXNoIjppZihvKXt2YXIgdz0icGF0aG5hbWUiPT09cz8iLyI6IiMiO19bc109by5jaGFyQXQoMCkhPT13P3crbzpvfWVsc2UgX1tzXT1vO2JyZWFrO2Nhc2UidXNlcm5hbWUiOmNhc2UicGFzc3dvcmQiOl9bc109ZW5jb2RlVVJJQ29tcG9uZW50KG8pO2JyZWFrO2Nhc2UiYXV0aCI6dmFyIHg9by5pbmRleE9mKCI6Iik7fng/KF8udXNlcm5hbWU9by5zbGljZSgwLHgpLF8udXNlcm5hbWU9ZW5jb2RlVVJJQ29tcG9uZW50KGRlY29kZVVSSUNvbXBvbmVudChfLnVzZXJuYW1lKSksXy5wYXNzd29yZD1vLnNsaWNlKHgrMSksXy5wYXNzd29yZD1lbmNvZGVVUklDb21wb25lbnQoZGVjb2RlVVJJQ29tcG9uZW50KF8ucGFzc3dvcmQpKSk6Xy51c2VybmFtZT1lbmNvZGVVUklDb21wb25lbnQoZGVjb2RlVVJJQ29tcG9uZW50KG8pKX1mb3IodmFyIGo9MDtqPEIubGVuZ3RoO2orKyl7dmFyIEw9QltqXTtMWzRdJiYoX1tMWzFdXT1fW0xbMV1dLnRvTG93ZXJDYXNlKCkpfXJldHVybiBfLmF1dGg9Xy5wYXNzd29yZD9fLnVzZXJuYW1lKyI6IitfLnBhc3N3b3JkOl8udXNlcm5hbWUsXy5vcmlnaW49ImZpbGU6IiE9PV8ucHJvdG9jb2wmJmlzU3BlY2lhbChfLnByb3RvY29sKSYmXy5ob3N0P18ucHJvdG9jb2wrIi8vIitfLmhvc3Q6Im51bGwiLF8uaHJlZj1fLnRvU3RyaW5nKCksX30sdG9TdHJpbmc6ZnVuY3Rpb24gdG9TdHJpbmcocyl7cyYmImZ1bmN0aW9uIj09dHlwZW9mIHN8fChzPXUuc3RyaW5naWZ5KTt2YXIgbyxpPXRoaXMsYT1pLmhvc3QsXz1pLnByb3RvY29sO18mJiI6IiE9PV8uY2hhckF0KF8ubGVuZ3RoLTEpJiYoXys9IjoiKTt2YXIgdz1fKyhpLnByb3RvY29sJiZpLnNsYXNoZXN8fGlzU3BlY2lhbChpLnByb3RvY29sKT8iLy8iOiIiKTtyZXR1cm4gaS51c2VybmFtZT8odys9aS51c2VybmFtZSxpLnBhc3N3b3JkJiYodys9IjoiK2kucGFzc3dvcmQpLHcrPSJAIik6aS5wYXNzd29yZD8odys9IjoiK2kucGFzc3dvcmQsdys9IkAiKToiZmlsZToiIT09aS5wcm90b2NvbCYmaXNTcGVjaWFsKGkucHJvdG9jb2wpJiYhYSYmIi8iIT09aS5wYXRobmFtZSYmKHcrPSJAIiksKCI6Ij09PWFbYS5sZW5ndGgtMV18fEMudGVzdChpLmhvc3RuYW1lKSYmIWkucG9ydCkmJihhKz0iOiIpLHcrPWEraS5wYXRobmFtZSwobz0ib2JqZWN0Ij09dHlwZW9mIGkucXVlcnk/cyhpLnF1ZXJ5KTppLnF1ZXJ5KSYmKHcrPSI/IiE9PW8uY2hhckF0KDApPyI/IitvOm8pLGkuaGFzaCYmKHcrPWkuaGFzaCksd319LFVybC5leHRyYWN0UHJvdG9jb2w9ZXh0cmFjdFByb3RvY29sLFVybC5sb2NhdGlvbj1sb2xjYXRpb24sVXJsLnRyaW1MZWZ0PXRyaW1MZWZ0LFVybC5xcz11LHMuZXhwb3J0cz1Vcmx9LDYxNDQ4OihzLG8saSk9Pnt2YXIgYT1pKDIwNDI2KSx1PWkoNDkzMjYpO3MuZXhwb3J0cz1mdW5jdGlvbiBoYXMocyxvKXtyZXR1cm4gbnVsbCE9cyYmdShzLG8sYSl9fSw2MTQ4OToocyxvLGkpPT57dmFyIGE9aSgxNzQwMCk7cy5leHBvcnRzPWZ1bmN0aW9uIHRvSW50ZWdlcihzKXt2YXIgbz1hKHMpLGk9byUxO3JldHVybiBvPT1vP2k/by1pOm86MH19LDYxNjI2OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgzOTQ0NyksdT1pKDc0Mjg0KSxfPWkoNzU4MTcpO3MuZXhwb3J0cz1hP2Z1bmN0aW9uKHMsbyxpKXtyZXR1cm4gdS5mKHMsbyxfKDEsaSkpfTpmdW5jdGlvbihzLG8saSl7cmV0dXJuIHNbb109aSxzfX0sNjE3NDc6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDQ1OTUxKSx1PWkoOTIwNDYpO3MuZXhwb3J0cz1mdW5jdGlvbihzLG8pe3ZhciBpPXVbcysiUHJvdG90eXBlIl0sXz1pJiZpW29dO2lmKF8pcmV0dXJuIF87dmFyIHc9YVtzXSx4PXcmJncucHJvdG90eXBlO3JldHVybiB4JiZ4W29dfX0sNjE4MDI6KHMsbyxpKT0+e3ZhciBhPWkoNjIyMjQpLHU9L1teLltcXV0rfFxbKD86KC0/XGQrKD86XC5cZCspPyl8KFsiJ10pKCg/Oig/IVwyKVteXFxdfFxcLikqPylcMilcXXwoPz0oPzpcLnxcW1xdKSg/OlwufFxbXF18JCkpL2csXz0vXFwoXFwpPy9nLHc9YSgoZnVuY3Rpb24ocyl7dmFyIG89W107cmV0dXJuIDQ2PT09cy5jaGFyQ29kZUF0KDApJiZvLnB1c2goIiIpLHMucmVwbGFjZSh1LChmdW5jdGlvbihzLGksYSx1KXtvLnB1c2goYT91LnJlcGxhY2UoXywiJDEiKTppfHxzKX0pKSxvfSkpO3MuZXhwb3J0cz13fSw2MjAwNjoocyxvLGkpPT57dmFyIGE9aSgxNTM4OSksdT1pKDY0ODk0KSxfPWkoOTU5NTApO3MuZXhwb3J0cz1mdW5jdGlvbiBjcmVhdGVGaW5kKHMpe3JldHVybiBmdW5jdGlvbihvLGksdyl7dmFyIHg9T2JqZWN0KG8pO2lmKCF1KG8pKXt2YXIgQz1hKGksMyk7bz1fKG8pLGk9ZnVuY3Rpb24ocyl7cmV0dXJuIEMoeFtzXSxzLHgpfX12YXIgaj1zKG8saSx3KTtyZXR1cm4gaj4tMT94W0M/b1tqXTpqXTp2b2lkIDB9fX0sNjIwNjA6cz0+e3ZhciBvPS9ceyg/OlxuXC9cKiBcW3dyYXBwZWQgd2l0aCAuK1xdIFwqXC8pP1xuPy87cy5leHBvcnRzPWZ1bmN0aW9uIGluc2VydFdyYXBEZXRhaWxzKHMsaSl7dmFyIGE9aS5sZW5ndGg7aWYoIWEpcmV0dXJuIHM7dmFyIHU9YS0xO3JldHVybiBpW3VdPShhPjE/IiYgIjoiIikraVt1XSxpPWkuam9pbihhPjI/IiwgIjoiICIpLHMucmVwbGFjZShvLCJ7XG4vKiBbd3JhcHBlZCB3aXRoICIraSsiXSAqL1xuIil9fSw2MjE5MzoocyxvLGkpPT57dmFyIGE9aSg4ODk4NCksdT1pKDU4NjEpLF89aSg3MjQyOCksdz1pKDU2NDQ5KSx4PWkoNjQ4OTQpLEM9aSgzNjU2KSxqPWkoNTU1MjcpLEw9aSgzNzE2NyksQj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3MuZXhwb3J0cz1mdW5jdGlvbiBpc0VtcHR5KHMpe2lmKG51bGw9PXMpcmV0dXJuITA7aWYoeChzKSYmKHcocyl8fCJzdHJpbmciPT10eXBlb2Ygc3x8ImZ1bmN0aW9uIj09dHlwZW9mIHMuc3BsaWNlfHxDKHMpfHxMKHMpfHxfKHMpKSlyZXR1cm4hcy5sZW5ndGg7dmFyIG89dShzKTtpZigiW29iamVjdCBNYXBdIj09b3x8IltvYmplY3QgU2V0XSI9PW8pcmV0dXJuIXMuc2l6ZTtpZihqKHMpKXJldHVybiFhKHMpLmxlbmd0aDtmb3IodmFyIGkgaW4gcylpZihCLmNhbGwocyxpKSlyZXR1cm4hMTtyZXR1cm4hMH19LDYyMjI0OihzLG8saSk9Pnt2YXIgYT1pKDUwMTA0KTtzLmV4cG9ydHM9ZnVuY3Rpb24gbWVtb2l6ZUNhcHBlZChzKXt2YXIgbz1hKHMsKGZ1bmN0aW9uKHMpe3JldHVybiA1MDA9PT1pLnNpemUmJmkuY2xlYXIoKSxzfSkpLGk9by5jYWNoZTtyZXR1cm4gb319LDYyMjUwOnM9PnsidXNlIHN0cmljdCI7dmFyIG89Im9iamVjdCI9PXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQuYWxsO3MuZXhwb3J0cz12b2lkIDA9PT1vJiZ2b2lkIDAhPT1vP2Z1bmN0aW9uKHMpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBzfHxzPT09b306ZnVuY3Rpb24ocyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHN9fSw2MjI4NDoocyxvLGkpPT57dmFyIGE9aSg4NDYyOSksdT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3MuZXhwb3J0cz1mdW5jdGlvbiBnZXRGdW5jTmFtZShzKXtmb3IodmFyIG89cy5uYW1lKyIiLGk9YVtvXSxfPXUuY2FsbChhLG8pP2kubGVuZ3RoOjA7Xy0tOyl7dmFyIHc9aVtfXSx4PXcuZnVuYztpZihudWxsPT14fHx4PT1zKXJldHVybiB3Lm5hbWV9cmV0dXJuIG99fSw2MjQxNjoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoODU1ODIpO3MuZXhwb3J0cz1hKCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIpfSw2MjgwMjoocyxvLGkpPT57dmFyIGE9cy5leHBvcnRzPWZ1bmN0aW9uIFNIQShzKXtzPXMudG9Mb3dlckNhc2UoKTt2YXIgbz1hW3NdO2lmKCFvKXRocm93IG5ldyBFcnJvcihzKyIgaXMgbm90IHN1cHBvcnRlZCAod2UgYWNjZXB0IHB1bGwgcmVxdWVzdHMpIik7cmV0dXJuIG5ldyBvfTthLnNoYT1pKDI3ODE2KSxhLnNoYTE9aSg2MzczNyksYS5zaGEyMjQ9aSgyNjcxMCksYS5zaGEyNTY9aSgyNDEwNyksYS5zaGEzODQ9aSgzMjgyNyksYS5zaGE1MTI9aSg4Mjg5MCl9LDYzMDQwOihzLG8saSk9Pnt2YXIgYT1pKDIxNTQ5KSx1PWkoODAwNzkpLF89aSg2ODIyMyk7cy5leHBvcnRzPWZ1bmN0aW9uIG1hcENhY2hlQ2xlYXIoKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBhLG1hcDpuZXcoX3x8dSksc3RyaW5nOm5ldyBhfX19LDYzMzQ1OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gc3R1YkFycmF5KCl7cmV0dXJuW119fSw2MzU2MDoocyxvLGkpPT57dmFyIGE9aSg3MzE3MCk7cy5leHBvcnRzPWZ1bmN0aW9uIHNldChzLG8saSl7cmV0dXJuIG51bGw9PXM/czphKHMsbyxpKX19LDYzNjAwOihzLG8saSk9PnsidXNlIHN0cmljdCI7cy5leHBvcnRzPVBhc3NUaHJvdWdoO3ZhciBhPWkoNzQ2MTApO2Z1bmN0aW9uIFBhc3NUaHJvdWdoKHMpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFBhc3NUaHJvdWdoKSlyZXR1cm4gbmV3IFBhc3NUaHJvdWdoKHMpO2EuY2FsbCh0aGlzLHMpfWkoNTY2OTgpKFBhc3NUaHJvdWdoLGEpLFBhc3NUaHJvdWdoLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKHMsbyxpKXtpKG51bGwscyl9fSw2MzYwNTpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIHN0YWNrR2V0KHMpe3JldHVybiB0aGlzLl9fZGF0YV9fLmdldChzKX19LDYzNzAyOnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gbGlzdENhY2hlQ2xlYXIoKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfX0sNjM3Mzc6KHMsbyxpKT0+e3ZhciBhPWkoNTY2OTgpLHU9aSg5MDM5MiksXz1pKDkyODYxKS5CdWZmZXIsdz1bMTUxODUwMDI0OSwxODU5Nzc1MzkzLC0xODk0MDA3NTg4LC04OTk0OTc1MTRdLHg9bmV3IEFycmF5KDgwKTtmdW5jdGlvbiBTaGExKCl7dGhpcy5pbml0KCksdGhpcy5fdz14LHUuY2FsbCh0aGlzLDY0LDU2KX1mdW5jdGlvbiByb3RsNShzKXtyZXR1cm4gczw8NXxzPj4+Mjd9ZnVuY3Rpb24gcm90bDMwKHMpe3JldHVybiBzPDwzMHxzPj4+Mn1mdW5jdGlvbiBmdChzLG8saSxhKXtyZXR1cm4gMD09PXM/byZpfH5vJmE6Mj09PXM/byZpfG8mYXxpJmE6b15pXmF9YShTaGExLHUpLFNoYTEucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIwLHRoaXN9LFNoYTEucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24ocyl7Zm9yKHZhciBvLGk9dGhpcy5fdyxhPTB8dGhpcy5fYSx1PTB8dGhpcy5fYixfPTB8dGhpcy5fYyx4PTB8dGhpcy5fZCxDPTB8dGhpcy5fZSxqPTA7ajwxNjsrK2opaVtqXT1zLnJlYWRJbnQzMkJFKDQqaik7Zm9yKDtqPDgwOysrailpW2pdPShvPWlbai0zXV5pW2otOF1eaVtqLTE0XV5pW2otMTZdKTw8MXxvPj4+MzE7Zm9yKHZhciBMPTA7TDw4MDsrK0wpe3ZhciBCPX5+KEwvMjApLCQ9cm90bDUoYSkrZnQoQix1LF8seCkrQytpW0xdK3dbQl18MDtDPXgseD1fLF89cm90bDMwKHUpLHU9YSxhPSR9dGhpcy5fYT1hK3RoaXMuX2F8MCx0aGlzLl9iPXUrdGhpcy5fYnwwLHRoaXMuX2M9Xyt0aGlzLl9jfDAsdGhpcy5fZD14K3RoaXMuX2R8MCx0aGlzLl9lPUMrdGhpcy5fZXwwfSxTaGExLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBzPV8uYWxsb2NVbnNhZmUoMjApO3JldHVybiBzLndyaXRlSW50MzJCRSgwfHRoaXMuX2EsMCkscy53cml0ZUludDMyQkUoMHx0aGlzLl9iLDQpLHMud3JpdGVJbnQzMkJFKDB8dGhpcy5fYyw4KSxzLndyaXRlSW50MzJCRSgwfHRoaXMuX2QsMTIpLHMud3JpdGVJbnQzMkJFKDB8dGhpcy5fZSwxNiksc30scy5leHBvcnRzPVNoYTF9LDYzODYyOnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gaGFzaERlbGV0ZShzKXt2YXIgbz10aGlzLmhhcyhzKSYmZGVsZXRlIHRoaXMuX19kYXRhX19bc107cmV0dXJuIHRoaXMuc2l6ZS09bz8xOjAsb319LDYzOTEyOihzLG8saSk9Pnt2YXIgYT1pKDYxMDc0KSx1PWkoNDk2OTgpLF89aSg0MjA1NCk7cy5leHBvcnRzPWZ1bmN0aW9uIHN0cmluZ1RvQXJyYXkocyl7cmV0dXJuIHUocyk/XyhzKTphKHMpfX0sNjM5NTA6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBub29wKCl7fX0sNjQ1MDI6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0IjtpKDgyMDQ4KX0sNjQ2MjY6KHMsbyxpKT0+e3ZhciBhPWkoNjY5NzcpO3MuZXhwb3J0cz1mdW5jdGlvbiBhcnkocyxvLGkpe3JldHVybiBvPWk/dm9pZCAwOm8sbz1zJiZudWxsPT1vP3MubGVuZ3RoOm8sYShzLDEyOCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsbyl9fSw2NDg5NDoocyxvLGkpPT57dmFyIGE9aSgxODgyKSx1PWkoMzAyOTQpO3MuZXhwb3J0cz1mdW5jdGlvbiBpc0FycmF5TGlrZShzKXtyZXR1cm4gbnVsbCE9cyYmdShzLmxlbmd0aCkmJiFhKHMpfX0sNjQ5MzI6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYSx1LF8sdz1pKDQwNTUxKSx4PWkoNDU5NTEpLEM9aSg0NjI4NSksaj1pKDYxNjI2KSxMPWkoNDk3MjQpLEI9aSgzNjEyOCksJD1pKDkyNTIyKSxWPWkoMzg1MzApLFU9Ik9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIix6PXguVHlwZUVycm9yLFk9eC5XZWFrTWFwO2lmKHd8fEIuc3RhdGUpe3ZhciBaPUIuc3RhdGV8fChCLnN0YXRlPW5ldyBZKTtaLmdldD1aLmdldCxaLmhhcz1aLmhhcyxaLnNldD1aLnNldCxhPWZ1bmN0aW9uKHMsbyl7aWYoWi5oYXMocykpdGhyb3cgbmV3IHooVSk7cmV0dXJuIG8uZmFjYWRlPXMsWi5zZXQocyxvKSxvfSx1PWZ1bmN0aW9uKHMpe3JldHVybiBaLmdldChzKXx8e319LF89ZnVuY3Rpb24ocyl7cmV0dXJuIFouaGFzKHMpfX1lbHNle3ZhciBlZT0kKCJzdGF0ZSIpO1ZbZWVdPSEwLGE9ZnVuY3Rpb24ocyxvKXtpZihMKHMsZWUpKXRocm93IG5ldyB6KFUpO3JldHVybiBvLmZhY2FkZT1zLGoocyxlZSxvKSxvfSx1PWZ1bmN0aW9uKHMpe3JldHVybiBMKHMsZWUpP3NbZWVdOnt9fSxfPWZ1bmN0aW9uKHMpe3JldHVybiBMKHMsZWUpfX1zLmV4cG9ydHM9e3NldDphLGdldDp1LGhhczpfLGVuZm9yY2U6ZnVuY3Rpb24ocyl7cmV0dXJuIF8ocyk/dShzKTphKHMse30pfSxnZXR0ZXJGb3I6ZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uKG8pe3ZhciBpO2lmKCFDKG8pfHwoaT11KG8pKS50eXBlIT09cyl0aHJvdyBuZXcgeigiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAiK3MrIiByZXF1aXJlZCIpO3JldHVybiBpfX19fSw2NTI5MToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoODYwNDgpLkYuRVJSX0lOVkFMSURfT1BUX1ZBTFVFO3MuZXhwb3J0cz17Z2V0SGlnaFdhdGVyTWFyazpmdW5jdGlvbiBnZXRIaWdoV2F0ZXJNYXJrKHMsbyxpLHUpe3ZhciBfPWZ1bmN0aW9uIGhpZ2hXYXRlck1hcmtGcm9tKHMsbyxpKXtyZXR1cm4gbnVsbCE9cy5oaWdoV2F0ZXJNYXJrP3MuaGlnaFdhdGVyTWFyazpvP3NbaV06bnVsbH0obyx1LGkpO2lmKG51bGwhPV8pe2lmKCFpc0Zpbml0ZShfKXx8TWF0aC5mbG9vcihfKSE9PV98fF88MCl0aHJvdyBuZXcgYSh1P2k6ImhpZ2hXYXRlck1hcmsiLF8pO3JldHVybiBNYXRoLmZsb29yKF8pfXJldHVybiBzLm9iamVjdE1vZGU/MTY6MTYzODR9fX0sNjU0ODI6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDQxMTc2KTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyl7dmFyIG89K3M7cmV0dXJuIG8hPW98fDA9PT1vPzA6YShvKX19LDY1NjA2OnM9Pnt2YXIgbyxpLGE9cy5leHBvcnRzPXt9O2Z1bmN0aW9uIGRlZmF1bHRTZXRUaW1vdXQoKXt0aHJvdyBuZXcgRXJyb3IoInNldFRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQiKX1mdW5jdGlvbiBkZWZhdWx0Q2xlYXJUaW1lb3V0KCl7dGhyb3cgbmV3IEVycm9yKCJjbGVhclRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQiKX1mdW5jdGlvbiBydW5UaW1lb3V0KHMpe2lmKG89PT1zZXRUaW1lb3V0KXJldHVybiBzZXRUaW1lb3V0KHMsMCk7aWYoKG89PT1kZWZhdWx0U2V0VGltb3V0fHwhbykmJnNldFRpbWVvdXQpcmV0dXJuIG89c2V0VGltZW91dCxzZXRUaW1lb3V0KHMsMCk7dHJ5e3JldHVybiBvKHMsMCl9Y2F0Y2goaSl7dHJ5e3JldHVybiBvLmNhbGwobnVsbCxzLDApfWNhdGNoKGkpe3JldHVybiBvLmNhbGwodGhpcyxzLDApfX19IWZ1bmN0aW9uKCl7dHJ5e289ImZ1bmN0aW9uIj09dHlwZW9mIHNldFRpbWVvdXQ/c2V0VGltZW91dDpkZWZhdWx0U2V0VGltb3V0fWNhdGNoKHMpe289ZGVmYXVsdFNldFRpbW91dH10cnl7aT0iZnVuY3Rpb24iPT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDpkZWZhdWx0Q2xlYXJUaW1lb3V0fWNhdGNoKHMpe2k9ZGVmYXVsdENsZWFyVGltZW91dH19KCk7dmFyIHUsXz1bXSx3PSExLHg9LTE7ZnVuY3Rpb24gY2xlYW5VcE5leHRUaWNrKCl7dyYmdSYmKHc9ITEsdS5sZW5ndGg/Xz11LmNvbmNhdChfKTp4PS0xLF8ubGVuZ3RoJiZkcmFpblF1ZXVlKCkpfWZ1bmN0aW9uIGRyYWluUXVldWUoKXtpZighdyl7dmFyIHM9cnVuVGltZW91dChjbGVhblVwTmV4dFRpY2spO3c9ITA7Zm9yKHZhciBvPV8ubGVuZ3RoO287KXtmb3IodT1fLF89W107Kyt4PG87KXUmJnVbeF0ucnVuKCk7eD0tMSxvPV8ubGVuZ3RofXU9bnVsbCx3PSExLGZ1bmN0aW9uIHJ1bkNsZWFyVGltZW91dChzKXtpZihpPT09Y2xlYXJUaW1lb3V0KXJldHVybiBjbGVhclRpbWVvdXQocyk7aWYoKGk9PT1kZWZhdWx0Q2xlYXJUaW1lb3V0fHwhaSkmJmNsZWFyVGltZW91dClyZXR1cm4gaT1jbGVhclRpbWVvdXQsY2xlYXJUaW1lb3V0KHMpO3RyeXtyZXR1cm4gaShzKX1jYXRjaChvKXt0cnl7cmV0dXJuIGkuY2FsbChudWxsLHMpfWNhdGNoKG8pe3JldHVybiBpLmNhbGwodGhpcyxzKX19fShzKX19ZnVuY3Rpb24gSXRlbShzLG8pe3RoaXMuZnVuPXMsdGhpcy5hcnJheT1vfWZ1bmN0aW9uIG5vb3AoKXt9YS5uZXh0VGljaz1mdW5jdGlvbihzKXt2YXIgbz1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aC0xKTtpZihhcmd1bWVudHMubGVuZ3RoPjEpZm9yKHZhciBpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKylvW2ktMV09YXJndW1lbnRzW2ldO18ucHVzaChuZXcgSXRlbShzLG8pKSwxIT09Xy5sZW5ndGh8fHd8fHJ1blRpbWVvdXQoZHJhaW5RdWV1ZSl9LEl0ZW0ucHJvdG90eXBlLnJ1bj1mdW5jdGlvbigpe3RoaXMuZnVuLmFwcGx5KG51bGwsdGhpcy5hcnJheSl9LGEudGl0bGU9ImJyb3dzZXIiLGEuYnJvd3Nlcj0hMCxhLmVudj17fSxhLmFyZ3Y9W10sYS52ZXJzaW9uPSIiLGEudmVyc2lvbnM9e30sYS5vbj1ub29wLGEuYWRkTGlzdGVuZXI9bm9vcCxhLm9uY2U9bm9vcCxhLm9mZj1ub29wLGEucmVtb3ZlTGlzdGVuZXI9bm9vcCxhLnJlbW92ZUFsbExpc3RlbmVycz1ub29wLGEuZW1pdD1ub29wLGEucHJlcGVuZExpc3RlbmVyPW5vb3AsYS5wcmVwZW5kT25jZUxpc3RlbmVyPW5vb3AsYS5saXN0ZW5lcnM9ZnVuY3Rpb24ocyl7cmV0dXJuW119LGEuYmluZGluZz1mdW5jdGlvbihzKXt0aHJvdyBuZXcgRXJyb3IoInByb2Nlc3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkIil9LGEuY3dkPWZ1bmN0aW9uKCl7cmV0dXJuIi8ifSxhLmNoZGlyPWZ1bmN0aW9uKHMpe3Rocm93IG5ldyBFcnJvcigicHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkIil9LGEudW1hc2s9ZnVuY3Rpb24oKXtyZXR1cm4gMH19LDY1NzcyOnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24ganNvbihzKXtjb25zdCBvPXtsaXRlcmFsOiJ0cnVlIGZhbHNlIG51bGwifSxpPVtzLkNfTElORV9DT01NRU5UX01PREUscy5DX0JMT0NLX0NPTU1FTlRfTU9ERV0sYT1bcy5RVU9URV9TVFJJTkdfTU9ERSxzLkNfTlVNQkVSX01PREVdLHU9e2VuZDoiLCIsZW5kc1dpdGhQYXJlbnQ6ITAsZXhjbHVkZUVuZDohMCxjb250YWluczphLGtleXdvcmRzOm99LF89e2JlZ2luOi9cey8sZW5kOi9cfS8sY29udGFpbnM6W3tjbGFzc05hbWU6ImF0dHIiLGJlZ2luOi8iLyxlbmQ6LyIvLGNvbnRhaW5zOltzLkJBQ0tTTEFTSF9FU0NBUEVdLGlsbGVnYWw6IlxcbiJ9LHMuaW5oZXJpdCh1LHtiZWdpbjovOi99KV0uY29uY2F0KGkpLGlsbGVnYWw6IlxcUyJ9LHc9e2JlZ2luOiJcXFsiLGVuZDoiXFxdIixjb250YWluczpbcy5pbmhlcml0KHUpXSxpbGxlZ2FsOiJcXFMifTtyZXR1cm4gYS5wdXNoKF8sdyksaS5mb3JFYWNoKChmdW5jdGlvbihzKXthLnB1c2gocyl9KSkse25hbWU6IkpTT04iLGNvbnRhaW5zOmEsa2V5d29yZHM6byxpbGxlZ2FsOiJcXFMifX19LDY2NjQ1OihzLG8saSk9Pnt2YXIgYT1pKDE3MzMpLHU9aSg0NTQzNCksXz1pKDEzMjIyKSx3PWkoMjIyMjUpO3MuZXhwb3J0cz1mdW5jdGlvbiB3b3JkcyhzLG8saSl7cmV0dXJuIHM9XyhzKSx2b2lkIDA9PT0obz1pP3ZvaWQgMDpvKT91KHMpP3cocyk6YShzKTpzLm1hdGNoKG8pfHxbXX19LDY2NzIxOihzLG8saSk9Pnt2YXIgYT1pKDgxMDQyKSx1PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7cy5leHBvcnRzPWZ1bmN0aW9uIGhhc2hHZXQocyl7dmFyIG89dGhpcy5fX2RhdGFfXztpZihhKXt2YXIgaT1vW3NdO3JldHVybiJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIj09PWk/dm9pZCAwOml9cmV0dXJuIHUuY2FsbChvLHMpP29bc106dm9pZCAwfX0sNjY5Nzc6KHMsbyxpKT0+e3ZhciBhPWkoNjg4ODIpLHU9aSgxMTg0MiksXz1pKDc3MDc4KSx3PWkoMzc0NzEpLHg9aSgyNDE2OCksQz1pKDM3MzgxKSxqPWkoMzIwOSksTD1pKDU0NjQxKSxCPWkoNzA5ODEpLCQ9aSg2MTQ4OSksVj1NYXRoLm1heDtzLmV4cG9ydHM9ZnVuY3Rpb24gY3JlYXRlV3JhcChzLG8saSxVLHosWSxaLGVlKXt2YXIgaWU9MiZvO2lmKCFpZSYmImZ1bmN0aW9uIiE9dHlwZW9mIHMpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBmdW5jdGlvbiIpO3ZhciBhZT1VP1UubGVuZ3RoOjA7aWYoYWV8fChvJj0tOTcsVT16PXZvaWQgMCksWj12b2lkIDA9PT1aP1o6VigkKFopLDApLGVlPXZvaWQgMD09PWVlP2VlOiQoZWUpLGFlLT16P3oubGVuZ3RoOjAsNjQmbyl7dmFyIGNlPVUsbGU9ejtVPXo9dm9pZCAwfXZhciBwZT1pZT92b2lkIDA6QyhzKSxkZT1bcyxvLGksVSx6LGNlLGxlLFksWixlZV07aWYocGUmJmooZGUscGUpLHM9ZGVbMF0sbz1kZVsxXSxpPWRlWzJdLFU9ZGVbM10sej1kZVs0XSwhKGVlPWRlWzldPXZvaWQgMD09PWRlWzldP2llPzA6cy5sZW5ndGg6VihkZVs5XS1hZSwwKSkmJjI0Jm8mJihvJj0tMjUpLG8mJjEhPW8pZmU9OD09b3x8MTY9PW8/XyhzLG8sZWUpOjMyIT1vJiYzMyE9b3x8ei5sZW5ndGg/dy5hcHBseSh2b2lkIDAsZGUpOngocyxvLGksVSk7ZWxzZSB2YXIgZmU9dShzLG8saSk7cmV0dXJuIEIoKHBlP2E6TCkoZmUsZGUpLHMsbyl9fSw2NzE5NzpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIG1hdGNoZXNTdHJpY3RDb21wYXJhYmxlKHMsbyl7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBudWxsIT1pJiYoaVtzXT09PW8mJih2b2lkIDAhPT1vfHxzIGluIE9iamVjdChpKSkpfX19LDY3NTI2OihzLG8pPT57InVzZSBzdHJpY3QiO28uYnl0ZUxlbmd0aD1mdW5jdGlvbiBieXRlTGVuZ3RoKHMpe3ZhciBvPWdldExlbnMocyksaT1vWzBdLGE9b1sxXTtyZXR1cm4gMyooaSthKS80LWF9LG8udG9CeXRlQXJyYXk9ZnVuY3Rpb24gdG9CeXRlQXJyYXkocyl7dmFyIG8saSxfPWdldExlbnMocyksdz1fWzBdLHg9X1sxXSxDPW5ldyB1KGZ1bmN0aW9uIF9ieXRlTGVuZ3RoKHMsbyxpKXtyZXR1cm4gMyoobytpKS80LWl9KDAsdyx4KSksaj0wLEw9eD4wP3ctNDp3O2ZvcihpPTA7aTxMO2krPTQpbz1hW3MuY2hhckNvZGVBdChpKV08PDE4fGFbcy5jaGFyQ29kZUF0KGkrMSldPDwxMnxhW3MuY2hhckNvZGVBdChpKzIpXTw8NnxhW3MuY2hhckNvZGVBdChpKzMpXSxDW2orK109bz4+MTYmMjU1LENbaisrXT1vPj44JjI1NSxDW2orK109MjU1Jm87Mj09PXgmJihvPWFbcy5jaGFyQ29kZUF0KGkpXTw8MnxhW3MuY2hhckNvZGVBdChpKzEpXT4+NCxDW2orK109MjU1Jm8pOzE9PT14JiYobz1hW3MuY2hhckNvZGVBdChpKV08PDEwfGFbcy5jaGFyQ29kZUF0KGkrMSldPDw0fGFbcy5jaGFyQ29kZUF0KGkrMildPj4yLENbaisrXT1vPj44JjI1NSxDW2orK109MjU1Jm8pO3JldHVybiBDfSxvLmZyb21CeXRlQXJyYXk9ZnVuY3Rpb24gZnJvbUJ5dGVBcnJheShzKXtmb3IodmFyIG8sYT1zLmxlbmd0aCx1PWElMyxfPVtdLHc9MTYzODMseD0wLEM9YS11O3g8Qzt4Kz13KV8ucHVzaChlbmNvZGVDaHVuayhzLHgseCt3PkM/Qzp4K3cpKTsxPT09dT8obz1zW2EtMV0sXy5wdXNoKGlbbz4+Ml0raVtvPDw0JjYzXSsiPT0iKSk6Mj09PXUmJihvPShzW2EtMl08PDgpK3NbYS0xXSxfLnB1c2goaVtvPj4xMF0raVtvPj40JjYzXStpW288PDImNjNdKyI9IikpO3JldHVybiBfLmpvaW4oIiIpfTtmb3IodmFyIGk9W10sYT1bXSx1PSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheT9VaW50OEFycmF5OkFycmF5LF89IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLHc9MDt3PDY0OysrdylpW3ddPV9bd10sYVtfLmNoYXJDb2RlQXQodyldPXc7ZnVuY3Rpb24gZ2V0TGVucyhzKXt2YXIgbz1zLmxlbmd0aDtpZihvJTQ+MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc3RyaW5nLiBMZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQiKTt2YXIgaT1zLmluZGV4T2YoIj0iKTtyZXR1cm4tMT09PWkmJihpPW8pLFtpLGk9PT1vPzA6NC1pJTRdfWZ1bmN0aW9uIGVuY29kZUNodW5rKHMsbyxhKXtmb3IodmFyIHUsXyx3PVtdLHg9bzt4PGE7eCs9Myl1PShzW3hdPDwxNiYxNjcxMTY4MCkrKHNbeCsxXTw8OCY2NTI4MCkrKDI1NSZzW3grMl0pLHcucHVzaChpWyhfPXUpPj4xOCY2M10raVtfPj4xMiY2M10raVtfPj42JjYzXStpWzYzJl9dKTtyZXR1cm4gdy5qb2luKCIiKX1hWyItIi5jaGFyQ29kZUF0KDApXT02MixhWyJfIi5jaGFyQ29kZUF0KDApXT02M30sNjgwNTU6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDYxNjI2KTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvLGksdSl7cmV0dXJuIHUmJnUuZW51bWVyYWJsZT9zW29dPWk6YShzLG8saSksc319LDY4MDkwOnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gbGFzdChzKXt2YXIgbz1udWxsPT1zPzA6cy5sZW5ndGg7cmV0dXJuIG8/c1tvLTFdOnZvaWQgMH19LDY4MjIzOihzLG8saSk9Pnt2YXIgYT1pKDU2MTEwKShpKDkzMjUpLCJNYXAiKTtzLmV4cG9ydHM9YX0sNjgyOTQ6KHMsbyxpKT0+e3ZhciBhPWkoMjMwMDcpLHU9aSgzMDM2MSksXz1NYXRoLm1pbjtzLmV4cG9ydHM9ZnVuY3Rpb24gcmVvcmRlcihzLG8pe2Zvcih2YXIgaT1zLmxlbmd0aCx3PV8oby5sZW5ndGgsaSkseD1hKHMpO3ctLTspe3ZhciBDPW9bd107c1t3XT11KEMsaSk/eFtDXTp2b2lkIDB9cmV0dXJuIHN9fSw2ODYyMzoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNjk0KTtzLmV4cG9ydHM9YX0sNjg4ODI6KHMsbyxpKT0+e3ZhciBhPWkoODM0ODgpLHU9aSg0ODE1MiksXz11P2Z1bmN0aW9uKHMsbyl7cmV0dXJuIHUuc2V0KHMsbyksc306YTtzLmV4cG9ydHM9X30sNjg5Njk6KHMsbyxpKT0+e3ZhciBhPWkoNDc0MjIpLHU9aSgyNTE2MCk7cy5leHBvcnRzPWZ1bmN0aW9uIHBhcmVudChzLG8pe3JldHVybiBvLmxlbmd0aDwyP3M6YShzLHUobywwLC0xKSl9fSw2OTMwMjoocyxvLGkpPT57dmFyIGE9aSg4MzQ4OCksdT1pKDU2NzU3KSxfPWkoMzI4NjUpO3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlUmVzdChzLG8pe3JldHVybiBfKHUocyxvLGEpLHMrIiIpfX0sNjk4ODQ6KHMsbyxpKT0+e3ZhciBhPWkoMjE3OTEpLHU9aSgzNzI0MSk7cy5leHBvcnRzPWZ1bmN0aW9uIHRvUGxhaW5PYmplY3Qocyl7cmV0dXJuIGEocyx1KHMpKX19LDY5OTgyOihzLG8saSk9PnsidXNlIHN0cmljdCI7cy5leHBvcnRzPWkoMjk4NDQpfSw3MDA4MDoocyxvLGkpPT57dmFyIGE9aSgyNjAyNSksdT1BcnJheS5wcm90b3R5cGUuc3BsaWNlO3MuZXhwb3J0cz1mdW5jdGlvbiBsaXN0Q2FjaGVEZWxldGUocyl7dmFyIG89dGhpcy5fX2RhdGFfXyxpPWEobyxzKTtyZXR1cm4hKGk8MCkmJihpPT1vLmxlbmd0aC0xP28ucG9wKCk6dS5jYWxsKG8saSwxKSwtLXRoaXMuc2l6ZSwhMCl9fSw3MDQ3MDoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNDYwMjgpLHU9aSgyNTU5NCk7cy5leHBvcnRzPWZ1bmN0aW9uKHMpe3ZhciBvPWEocywic3RyaW5nIik7cmV0dXJuIHUobyk/bzpvKyIifX0sNzA2OTU6KHMsbyxpKT0+e3ZhciBhPWkoNzgwOTYpLHU9aSg3MjQyOCksXz1pKDU2NDQ5KSx3PWkoMzY1NikseD1pKDMwMzYxKSxDPWkoMzcxNjcpLGo9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtzLmV4cG9ydHM9ZnVuY3Rpb24gYXJyYXlMaWtlS2V5cyhzLG8pe3ZhciBpPV8ocyksTD0haSYmdShzKSxCPSFpJiYhTCYmdyhzKSwkPSFpJiYhTCYmIUImJkMocyksVj1pfHxMfHxCfHwkLFU9Vj9hKHMubGVuZ3RoLFN0cmluZyk6W10sej1VLmxlbmd0aDtmb3IodmFyIFkgaW4gcykhbyYmIWouY2FsbChzLFkpfHxWJiYoImxlbmd0aCI9PVl8fEImJigib2Zmc2V0Ij09WXx8InBhcmVudCI9PVkpfHwkJiYoImJ1ZmZlciI9PVl8fCJieXRlTGVuZ3RoIj09WXx8ImJ5dGVPZmZzZXQiPT1ZKXx8eChZLHopKXx8VS5wdXNoKFkpO3JldHVybiBVfX0sNzA5ODE6KHMsbyxpKT0+e3ZhciBhPWkoNzUyNTEpLHU9aSg2MjA2MCksXz1pKDMyODY1KSx3PWkoNzU5NDgpO3MuZXhwb3J0cz1mdW5jdGlvbiBzZXRXcmFwVG9TdHJpbmcocyxvLGkpe3ZhciB4PW8rIiI7cmV0dXJuIF8ocyx1KHgsdyhhKHgpLGkpKSl9fSw3MTE2NzoocyxvLGkpPT57Y29uc3QgYT1pKDEwMzE2KTtzLmV4cG9ydHM9Y2xhc3MgU3RyaW5nRWxlbWVudCBleHRlbmRzIGF7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9InN0cmluZyJ9cHJpbWl0aXZlKCl7cmV0dXJuInN0cmluZyJ9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmNvbnRlbnQubGVuZ3RofX19LDcxMzQwOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgxMTA5MSksdT1pKDI5NTM4KTthKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxhcml0eToyLGZvcmNlZDpPYmplY3QuYXNzaWduIT09dX0se2Fzc2lnbjp1fSl9LDcxOTYxOihzLG8saSk9Pnt2YXIgYT1pKDQ5NjUzKTtzLmV4cG9ydHM9ZnVuY3Rpb24gY2xvbmVUeXBlZEFycmF5KHMsbyl7dmFyIGk9bz9hKHMuYnVmZmVyKTpzLmJ1ZmZlcjtyZXR1cm4gbmV3IHMuY29uc3RydWN0b3IoaSxzLmJ5dGVPZmZzZXQscy5sZW5ndGgpfX0sNzI0Mjg6KHMsbyxpKT0+e3ZhciBhPWkoMjc1MzQpLHU9aSg0MDM0NiksXz1PYmplY3QucHJvdG90eXBlLHc9Xy5oYXNPd25Qcm9wZXJ0eSx4PV8ucHJvcGVydHlJc0VudW1lcmFibGUsQz1hKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk/YTpmdW5jdGlvbihzKXtyZXR1cm4gdShzKSYmdy5jYWxsKHMsImNhbGxlZSIpJiYheC5jYWxsKHMsImNhbGxlZSIpfTtzLmV4cG9ydHM9Q30sNzI1NTI6KHMsbyxpKT0+e3ZhciBhPWkoNTE4NzMpLHU9aSg2NTkpLF89aSg1OTM1MCksdz1hP2EudG9TdHJpbmdUYWc6dm9pZCAwO3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlR2V0VGFnKHMpe3JldHVybiBudWxsPT1zP3ZvaWQgMD09PXM/IltvYmplY3QgVW5kZWZpbmVkXSI6IltvYmplY3QgTnVsbF0iOncmJncgaW4gT2JqZWN0KHMpP3Uocyk6XyhzKX19LDcyOTAzOihzLG8saSk9Pnt2YXIgYT1pKDIzODA1KSx1PWkoNTU1MjcpLF89aSg5MDE4MSksdz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlS2V5c0luKHMpe2lmKCFhKHMpKXJldHVybiBfKHMpO3ZhciBvPXUocyksaT1bXTtmb3IodmFyIHggaW4gcykoImNvbnN0cnVjdG9yIiE9eHx8IW8mJncuY2FsbChzLHgpKSYmaS5wdXNoKHgpO3JldHVybiBpfX0sNzI5NDk6KHMsbyxpKT0+e3ZhciBhPWkoMTI2NTEpO3MuZXhwb3J0cz1mdW5jdGlvbiBtYXBDYWNoZVNldChzLG8pe3ZhciBpPWEodGhpcyxzKSx1PWkuc2l6ZTtyZXR1cm4gaS5zZXQocyxvKSx0aGlzLnNpemUrPWkuc2l6ZT09dT8wOjEsdGhpc319LDczMTcwOihzLG8saSk9Pnt2YXIgYT1pKDE2NTQ3KSx1PWkoMzE3NjkpLF89aSgzMDM2MSksdz1pKDIzODA1KSx4PWkoNzc3OTcpO3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlU2V0KHMsbyxpLEMpe2lmKCF3KHMpKXJldHVybiBzO2Zvcih2YXIgaj0tMSxMPShvPXUobyxzKSkubGVuZ3RoLEI9TC0xLCQ9cztudWxsIT0kJiYrK2o8TDspe3ZhciBWPXgob1tqXSksVT1pO2lmKCJfX3Byb3RvX18iPT09Vnx8ImNvbnN0cnVjdG9yIj09PVZ8fCJwcm90b3R5cGUiPT09VilyZXR1cm4gcztpZihqIT1CKXt2YXIgej0kW1ZdO3ZvaWQgMD09PShVPUM/Qyh6LFYsJCk6dm9pZCAwKSYmKFU9dyh6KT96Ol8ob1tqKzFdKT9bXTp7fSl9YSgkLFYsVSksJD0kW1ZdfXJldHVybiBzfX0sNzMyMDE6cz0+e3ZhciBvPS9cdyokLztzLmV4cG9ydHM9ZnVuY3Rpb24gY2xvbmVSZWdFeHAocyl7dmFyIGk9bmV3IHMuY29uc3RydWN0b3Iocy5zb3VyY2Usby5leGVjKHMpKTtyZXR1cm4gaS5sYXN0SW5kZXg9cy5sYXN0SW5kZXgsaX19LDczNDAyOnM9PntmdW5jdGlvbiBjb25jYXQoLi4ucyl7cmV0dXJuIHMubWFwKChzPT5mdW5jdGlvbiBzb3VyY2Uocyl7cmV0dXJuIHM/InN0cmluZyI9PXR5cGVvZiBzP3M6cy5zb3VyY2U6bnVsbH0ocykpKS5qb2luKCIiKX1zLmV4cG9ydHM9ZnVuY3Rpb24gaHR0cChzKXtjb25zdCBvPSJIVFRQLygyfDFcXC5bMDFdKSIsaT17Y2xhc3NOYW1lOiJhdHRyaWJ1dGUiLGJlZ2luOmNvbmNhdCgiXiIsL1tBLVphLXpdW0EtWmEtejAtOS1dKi8sIig/PVxcOlxccykiKSxzdGFydHM6e2NvbnRhaW5zOlt7Y2xhc3NOYW1lOiJwdW5jdHVhdGlvbiIsYmVnaW46LzogLyxyZWxldmFuY2U6MCxzdGFydHM6e2VuZDoiJCIscmVsZXZhbmNlOjB9fV19fSxhPVtpLHtiZWdpbjoiXFxuXFxuIixzdGFydHM6e3N1Ykxhbmd1YWdlOltdLGVuZHNXaXRoUGFyZW50OiEwfX1dO3JldHVybntuYW1lOiJIVFRQIixhbGlhc2VzOlsiaHR0cHMiXSxpbGxlZ2FsOi9cUy8sY29udGFpbnM6W3tiZWdpbjoiXig/PSIrbysiIFxcZHszfSkiLGVuZDovJC8sY29udGFpbnM6W3tjbGFzc05hbWU6Im1ldGEiLGJlZ2luOm99LHtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46IlxcYlxcZHszfVxcYiJ9XSxzdGFydHM6e2VuZDovXGJcQi8saWxsZWdhbDovXFMvLGNvbnRhaW5zOmF9fSx7YmVnaW46Iig/PV5bQS1aXSsgKC4qPykgIitvKyIkKSIsZW5kOi8kLyxjb250YWluczpbe2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiICIsZW5kOiIgIixleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMH0se2NsYXNzTmFtZToibWV0YSIsYmVnaW46b30se2NsYXNzTmFtZToia2V5d29yZCIsYmVnaW46IltBLVpdKyJ9XSxzdGFydHM6e2VuZDovXGJcQi8saWxsZWdhbDovXFMvLGNvbnRhaW5zOmF9fSxzLmluaGVyaXQoaSx7cmVsZXZhbmNlOjB9KV19fX0sNzM0MjQ6KHMsbyxpKT0+e3ZhciBhPWkoMTY5NjIpLHU9aSgyODc0KSxfPUFycmF5LnByb3RvdHlwZS5wdXNoO2Z1bmN0aW9uIGJhc2VBcnkocyxvKXtyZXR1cm4gMj09bz9mdW5jdGlvbihvLGkpe3JldHVybiBzKG8saSl9OmZ1bmN0aW9uKG8pe3JldHVybiBzKG8pfX1mdW5jdGlvbiBjbG9uZUFycmF5KHMpe2Zvcih2YXIgbz1zP3MubGVuZ3RoOjAsaT1BcnJheShvKTtvLS07KWlbb109c1tvXTtyZXR1cm4gaX1mdW5jdGlvbiB3cmFwSW1tdXRhYmxlKHMsbyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9YXJndW1lbnRzLmxlbmd0aDtpZihpKXtmb3IodmFyIGE9QXJyYXkoaSk7aS0tOylhW2ldPWFyZ3VtZW50c1tpXTt2YXIgdT1hWzBdPW8uYXBwbHkodm9pZCAwLGEpO3JldHVybiBzLmFwcGx5KHZvaWQgMCxhKSx1fX19cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VDb252ZXJ0KHMsbyxpLHcpe3ZhciB4PSJmdW5jdGlvbiI9PXR5cGVvZiBvLEM9bz09PU9iamVjdChvKTtpZihDJiYodz1pLGk9byxvPXZvaWQgMCksbnVsbD09aSl0aHJvdyBuZXcgVHlwZUVycm9yO3d8fCh3PXt9KTt2YXIgaj0hKCJjYXAiaW4gdyl8fHcuY2FwLEw9ISgiY3VycnkiaW4gdyl8fHcuY3VycnksQj0hKCJmaXhlZCJpbiB3KXx8dy5maXhlZCwkPSEoImltbXV0YWJsZSJpbiB3KXx8dy5pbW11dGFibGUsVj0hKCJyZWFyZyJpbiB3KXx8dy5yZWFyZyxVPXg/aTp1LHo9ImN1cnJ5ImluIHcmJncuY3VycnksWT0iZml4ZWQiaW4gdyYmdy5maXhlZCxaPSJyZWFyZyJpbiB3JiZ3LnJlYXJnLGVlPXg/aS5ydW5JbkNvbnRleHQoKTp2b2lkIDAsaWU9eD9pOnthcnk6cy5hcnksYXNzaWduOnMuYXNzaWduLGNsb25lOnMuY2xvbmUsY3Vycnk6cy5jdXJyeSxmb3JFYWNoOnMuZm9yRWFjaCxpc0FycmF5OnMuaXNBcnJheSxpc0Vycm9yOnMuaXNFcnJvcixpc0Z1bmN0aW9uOnMuaXNGdW5jdGlvbixpc1dlYWtNYXA6cy5pc1dlYWtNYXAsaXRlcmF0ZWU6cy5pdGVyYXRlZSxrZXlzOnMua2V5cyxyZWFyZzpzLnJlYXJnLHRvSW50ZWdlcjpzLnRvSW50ZWdlcix0b1BhdGg6cy50b1BhdGh9LGFlPWllLmFyeSxjZT1pZS5hc3NpZ24sbGU9aWUuY2xvbmUscGU9aWUuY3VycnksZGU9aWUuZm9yRWFjaCxmZT1pZS5pc0FycmF5LHllPWllLmlzRXJyb3IsYmU9aWUuaXNGdW5jdGlvbixfZT1pZS5pc1dlYWtNYXAsU2U9aWUua2V5cyx3ZT1pZS5yZWFyZyx4ZT1pZS50b0ludGVnZXIsUGU9aWUudG9QYXRoLFRlPVNlKGEuYXJ5TWV0aG9kKSxSZT17Y2FzdEFycmF5OmZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbigpe3ZhciBvPWFyZ3VtZW50c1swXTtyZXR1cm4gZmUobyk/cyhjbG9uZUFycmF5KG8pKTpzLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfX0saXRlcmF0ZWU6ZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89YXJndW1lbnRzWzFdLGk9cyhhcmd1bWVudHNbMF0sbyksYT1pLmxlbmd0aDtyZXR1cm4gaiYmIm51bWJlciI9PXR5cGVvZiBvPyhvPW8+Mj9vLTI6MSxhJiZhPD1vP2k6YmFzZUFyeShpLG8pKTppfX0sbWl4aW46ZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uKG8pe3ZhciBpPXRoaXM7aWYoIWJlKGkpKXJldHVybiBzKGksT2JqZWN0KG8pKTt2YXIgYT1bXTtyZXR1cm4gZGUoU2UobyksKGZ1bmN0aW9uKHMpe2JlKG9bc10pJiZhLnB1c2goW3MsaS5wcm90b3R5cGVbc11dKX0pKSxzKGksT2JqZWN0KG8pKSxkZShhLChmdW5jdGlvbihzKXt2YXIgbz1zWzFdO2JlKG8pP2kucHJvdG90eXBlW3NbMF1dPW86ZGVsZXRlIGkucHJvdG90eXBlW3NbMF1dfSkpLGl9fSxudGhBcmc6ZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uKG8pe3ZhciBpPW88MD8xOnhlKG8pKzE7cmV0dXJuIHBlKHMobyksaSl9fSxyZWFyZzpmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24obyxpKXt2YXIgYT1pP2kubGVuZ3RoOjA7cmV0dXJuIHBlKHMobyxpKSxhKX19LHJ1bkluQ29udGV4dDpmdW5jdGlvbihvKXtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuIGJhc2VDb252ZXJ0KHMsbyhpKSx3KX19fTtmdW5jdGlvbiBjYXN0Q2FwKHMsbyl7aWYoail7dmFyIGk9YS5pdGVyYXRlZVJlYXJnW3NdO2lmKGkpcmV0dXJuIGZ1bmN0aW9uIGl0ZXJhdGVlUmVhcmcocyxvKXtyZXR1cm4gb3ZlckFyZyhzLChmdW5jdGlvbihzKXt2YXIgaT1vLmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24gYmFzZUFyaXR5KHMsbyl7cmV0dXJuIDI9PW8/ZnVuY3Rpb24obyxpKXtyZXR1cm4gcy5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX06ZnVuY3Rpb24obyl7cmV0dXJuIHMuYXBwbHkodm9pZCAwLGFyZ3VtZW50cyl9fSh3ZShiYXNlQXJ5KHMsaSksbyksaSl9KSl9KG8saSk7dmFyIHU9IXgmJmEuaXRlcmF0ZWVBcnlbc107aWYodSlyZXR1cm4gZnVuY3Rpb24gaXRlcmF0ZWVBcnkocyxvKXtyZXR1cm4gb3ZlckFyZyhzLChmdW5jdGlvbihzKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygcz9iYXNlQXJ5KHMsbyk6c30pKX0obyx1KX1yZXR1cm4gb31mdW5jdGlvbiBjYXN0Rml4ZWQocyxvLGkpe2lmKEImJihZfHwhYS5za2lwRml4ZWRbc10pKXt2YXIgdT1hLm1ldGhvZFNwcmVhZFtzXSx3PXUmJnUuc3RhcnQ7cmV0dXJuIHZvaWQgMD09PXc/YWUobyxpKTpmdW5jdGlvbiBmbGF0U3ByZWFkKHMsbyl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGgsYT1pLTEsdT1BcnJheShpKTtpLS07KXVbaV09YXJndW1lbnRzW2ldO3ZhciB3PXVbb10seD11LnNsaWNlKDAsbyk7cmV0dXJuIHcmJl8uYXBwbHkoeCx3KSxvIT1hJiZfLmFwcGx5KHgsdS5zbGljZShvKzEpKSxzLmFwcGx5KHRoaXMseCl9fShvLHcpfXJldHVybiBvfWZ1bmN0aW9uIGNhc3RSZWFyZyhzLG8saSl7cmV0dXJuIFYmJmk+MSYmKFp8fCFhLnNraXBSZWFyZ1tzXSk/d2UobyxhLm1ldGhvZFJlYXJnW3NdfHxhLmFyeVJlYXJnW2ldKTpvfWZ1bmN0aW9uIGNsb25lQnlQYXRoKHMsbyl7Zm9yKHZhciBpPS0xLGE9KG89UGUobykpLmxlbmd0aCx1PWEtMSxfPWxlKE9iamVjdChzKSksdz1fO251bGwhPXcmJisraTxhOyl7dmFyIHg9b1tpXSxDPXdbeF07bnVsbD09Q3x8YmUoQyl8fHllKEMpfHxfZShDKXx8KHdbeF09bGUoaT09dT9DOk9iamVjdChDKSkpLHc9d1t4XX1yZXR1cm4gX31mdW5jdGlvbiBjcmVhdGVDb252ZXJ0ZXIocyxvKXt2YXIgaT1hLmFsaWFzVG9SZWFsW3NdfHxzLHU9YS5yZW1hcFtpXXx8aSxfPXc7cmV0dXJuIGZ1bmN0aW9uKHMpe3ZhciBhPXg/ZWU6aWUsdz14P2VlW3VdOm8sQz1jZShjZSh7fSxfKSxzKTtyZXR1cm4gYmFzZUNvbnZlcnQoYSxpLHcsQyl9fWZ1bmN0aW9uIG92ZXJBcmcocyxvKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoO2lmKCFpKXJldHVybiBzKCk7Zm9yKHZhciBhPUFycmF5KGkpO2ktLTspYVtpXT1hcmd1bWVudHNbaV07dmFyIHU9Vj8wOmktMTtyZXR1cm4gYVt1XT1vKGFbdV0pLHMuYXBwbHkodm9pZCAwLGEpfX1mdW5jdGlvbiB3cmFwKHMsbyxpKXt2YXIgdSxfPWEuYWxpYXNUb1JlYWxbc118fHMsdz1vLHg9UmVbX107cmV0dXJuIHg/dz14KG8pOiQmJihhLm11dGF0ZS5hcnJheVtfXT93PXdyYXBJbW11dGFibGUobyxjbG9uZUFycmF5KTphLm11dGF0ZS5vYmplY3RbX10/dz13cmFwSW1tdXRhYmxlKG8sZnVuY3Rpb24gY3JlYXRlQ2xvbmVyKHMpe3JldHVybiBmdW5jdGlvbihvKXtyZXR1cm4gcyh7fSxvKX19KG8pKTphLm11dGF0ZS5zZXRbX10mJih3PXdyYXBJbW11dGFibGUobyxjbG9uZUJ5UGF0aCkpKSxkZShUZSwoZnVuY3Rpb24ocyl7cmV0dXJuIGRlKGEuYXJ5TWV0aG9kW3NdLChmdW5jdGlvbihvKXtpZihfPT1vKXt2YXIgaT1hLm1ldGhvZFNwcmVhZFtfXSx4PWkmJmkuYWZ0ZXJSZWFyZztyZXR1cm4gdT14P2Nhc3RGaXhlZChfLGNhc3RSZWFyZyhfLHcscykscyk6Y2FzdFJlYXJnKF8sY2FzdEZpeGVkKF8sdyxzKSxzKSx1PWZ1bmN0aW9uIGNhc3RDdXJyeShzLG8saSl7cmV0dXJuIHp8fEwmJmk+MT9wZShvLGkpOm99KDAsdT1jYXN0Q2FwKF8sdSkscyksITF9fSkpLCF1fSkpLHV8fCh1PXcpLHU9PW8mJih1PXo/cGUodSwxKTpmdW5jdGlvbigpe3JldHVybiBvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLHUuY29udmVydD1jcmVhdGVDb252ZXJ0ZXIoXyxvKSx1LnBsYWNlaG9sZGVyPW8ucGxhY2Vob2xkZXI9aSx1fWlmKCFDKXJldHVybiB3cmFwKG8saSxVKTt2YXIgJGU9aSxxZT1bXTtyZXR1cm4gZGUoVGUsKGZ1bmN0aW9uKHMpe2RlKGEuYXJ5TWV0aG9kW3NdLChmdW5jdGlvbihzKXt2YXIgbz0kZVthLnJlbWFwW3NdfHxzXTtvJiZxZS5wdXNoKFtzLHdyYXAocyxvLCRlKV0pfSkpfSkpLGRlKFNlKCRlKSwoZnVuY3Rpb24ocyl7dmFyIG89JGVbc107aWYoImZ1bmN0aW9uIj09dHlwZW9mIG8pe2Zvcih2YXIgaT1xZS5sZW5ndGg7aS0tOylpZihxZVtpXVswXT09cylyZXR1cm47by5jb252ZXJ0PWNyZWF0ZUNvbnZlcnRlcihzLG8pLHFlLnB1c2goW3Msb10pfX0pKSxkZShxZSwoZnVuY3Rpb24ocyl7JGVbc1swXV09c1sxXX0pKSwkZS5jb252ZXJ0PWZ1bmN0aW9uIGNvbnZlcnRMaWIocyl7cmV0dXJuICRlLnJ1bkluQ29udGV4dC5jb252ZXJ0KHMpKHZvaWQgMCl9LCRlLnBsYWNlaG9sZGVyPSRlLGRlKFNlKCRlKSwoZnVuY3Rpb24ocyl7ZGUoYS5yZWFsVG9BbGlhc1tzXXx8W10sKGZ1bmN0aW9uKG8peyRlW29dPSRlW3NdfSkpfSkpLCRlfX0sNzM0NDg6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDczOTQ4KSx1PWkoMjkzNjcpLF89aSg4NzEzNiksdz1pKDkzNzQyKSx4PWkoNzYyNjQpKCJpdGVyYXRvciIpO3MuZXhwb3J0cz1mdW5jdGlvbihzKXtpZighXyhzKSlyZXR1cm4gdShzLHgpfHx1KHMsIkBAaXRlcmF0b3IiKXx8d1thKHMpXX19LDczNjQ4OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgzOTQ0NyksdT1pKDk4ODI4KSxfPWkoNDk1NTIpO3MuZXhwb3J0cz0hYSYmIXUoKGZ1bmN0aW9uKCl7cmV0dXJuIDchPT1PYmplY3QuZGVmaW5lUHJvcGVydHkoXygiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSkpfSw3Mzk0ODoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNTI2MjMpLHU9aSg2MjI1MCksXz1pKDQ1ODA3KSx3PWkoNzYyNjQpKCJ0b1N0cmluZ1RhZyIpLHg9T2JqZWN0LEM9IkFyZ3VtZW50cyI9PT1fKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk7cy5leHBvcnRzPWE/XzpmdW5jdGlvbihzKXt2YXIgbyxpLGE7cmV0dXJuIHZvaWQgMD09PXM/IlVuZGVmaW5lZCI6bnVsbD09PXM/Ik51bGwiOiJzdHJpbmciPT10eXBlb2YoaT1mdW5jdGlvbihzLG8pe3RyeXtyZXR1cm4gc1tvXX1jYXRjaChzKXt9fShvPXgocyksdykpP2k6Qz9fKG8pOiJPYmplY3QiPT09KGE9XyhvKSkmJnUoby5jYWxsZWUpPyJBcmd1bWVudHMiOmF9fSw3Mzk5MjoocyxvKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIGRlY29kZShzKXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChzLnJlcGxhY2UoL1wrL2csIiAiKSl9Y2F0Y2gocyl7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIGVuY29kZShzKXt0cnl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChzKX1jYXRjaChzKXtyZXR1cm4gbnVsbH19by5zdHJpbmdpZnk9ZnVuY3Rpb24gcXVlcnlzdHJpbmdpZnkocyxvKXtvPW98fCIiO3ZhciBhLHUsXz1bXTtmb3IodSBpbiJzdHJpbmciIT10eXBlb2YgbyYmKG89Ij8iKSxzKWlmKGkuY2FsbChzLHUpKXtpZigoYT1zW3VdKXx8bnVsbCE9YSYmIWlzTmFOKGEpfHwoYT0iIiksdT1lbmNvZGUodSksYT1lbmNvZGUoYSksbnVsbD09PXV8fG51bGw9PT1hKWNvbnRpbnVlO18ucHVzaCh1KyI9IithKX1yZXR1cm4gXy5sZW5ndGg/bytfLmpvaW4oIiYiKToiIn0sby5wYXJzZT1mdW5jdGlvbiBxdWVyeXN0cmluZyhzKXtmb3IodmFyIG8saT0vKFtePT8jJl0rKT0/KFteJl0qKS9nLGE9e307bz1pLmV4ZWMocyk7KXt2YXIgdT1kZWNvZGUob1sxXSksXz1kZWNvZGUob1syXSk7bnVsbD09PXV8fG51bGw9PT1ffHx1IGluIGF8fChhW3VdPV8pfXJldHVybiBhfX0sNzQyMTg6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBpc0tleWFibGUocyl7dmFyIG89dHlwZW9mIHM7cmV0dXJuInN0cmluZyI9PW98fCJudW1iZXIiPT1vfHwic3ltYm9sIj09b3x8ImJvb2xlYW4iPT1vPyJfX3Byb3RvX18iIT09czpudWxsPT09c319LDc0MjM5OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg4NzEzNiksdT1UeXBlRXJyb3I7cy5leHBvcnRzPWZ1bmN0aW9uKHMpe2lmKGEocykpdGhyb3cgbmV3IHUoIkNhbid0IGNhbGwgbWV0aG9kIG9uICIrcyk7cmV0dXJuIHN9fSw3NDI4NDoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMzk0NDcpLHU9aSg3MzY0OCksXz1pKDU4NjYxKSx3PWkoMzY2MjQpLHg9aSg3MDQ3MCksQz1UeXBlRXJyb3Isaj1PYmplY3QuZGVmaW5lUHJvcGVydHksTD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLEI9ImVudW1lcmFibGUiLCQ9ImNvbmZpZ3VyYWJsZSIsVj0id3JpdGFibGUiO28uZj1hP18/ZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkocyxvLGkpe2lmKHcocyksbz14KG8pLHcoaSksImZ1bmN0aW9uIj09dHlwZW9mIHMmJiJwcm90b3R5cGUiPT09byYmInZhbHVlImluIGkmJlYgaW4gaSYmIWlbVl0pe3ZhciBhPUwocyxvKTthJiZhW1ZdJiYoc1tvXT1pLnZhbHVlLGk9e2NvbmZpZ3VyYWJsZTokIGluIGk/aVskXTphWyRdLGVudW1lcmFibGU6QiBpbiBpP2lbQl06YVtCXSx3cml0YWJsZTohMX0pfXJldHVybiBqKHMsbyxpKX06ajpmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShzLG8saSl7aWYodyhzKSxvPXgobyksdyhpKSx1KXRyeXtyZXR1cm4gaihzLG8saSl9Y2F0Y2gocyl7fWlmKCJnZXQiaW4gaXx8InNldCJpbiBpKXRocm93IG5ldyBDKCJBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCIpO3JldHVybiJ2YWx1ZSJpbiBpJiYoc1tvXT1pLnZhbHVlKSxzfX0sNzQzMzU6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBvdmVyQXJnKHMsbyl7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBzKG8oaSkpfX19LDc0NDM2OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg0OTkzKSx1PWkoMzQ4NDkpLF89aSgyMDU3NSksY3JlYXRlTWV0aG9kPWZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbihvLGksdyl7dmFyIHg9YShvKSxDPV8oeCk7aWYoMD09PUMpcmV0dXJuIXMmJi0xO3ZhciBqLEw9dSh3LEMpO2lmKHMmJmkhPWkpe2Zvcig7Qz5MOylpZigoaj14W0wrK10pIT1qKXJldHVybiEwfWVsc2UgZm9yKDtDPkw7TCsrKWlmKChzfHxMIGluIHgpJiZ4W0xdPT09aSlyZXR1cm4gc3x8THx8MDtyZXR1cm4hcyYmLTF9fTtzLmV4cG9ydHM9e2luY2x1ZGVzOmNyZWF0ZU1ldGhvZCghMCksaW5kZXhPZjpjcmVhdGVNZXRob2QoITEpfX0sNzQ2MTA6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0IjtzLmV4cG9ydHM9VHJhbnNmb3JtO3ZhciBhPWkoODYwNDgpLkYsdT1hLkVSUl9NRVRIT0RfTk9UX0lNUExFTUVOVEVELF89YS5FUlJfTVVMVElQTEVfQ0FMTEJBQ0ssdz1hLkVSUl9UUkFOU0ZPUk1fQUxSRUFEWV9UUkFOU0ZPUk1JTkcseD1hLkVSUl9UUkFOU0ZPUk1fV0lUSF9MRU5HVEhfMCxDPWkoMjUzODIpO2Z1bmN0aW9uIGFmdGVyVHJhbnNmb3JtKHMsbyl7dmFyIGk9dGhpcy5fdHJhbnNmb3JtU3RhdGU7aS50cmFuc2Zvcm1pbmc9ITE7dmFyIGE9aS53cml0ZWNiO2lmKG51bGw9PT1hKXJldHVybiB0aGlzLmVtaXQoImVycm9yIixuZXcgXyk7aS53cml0ZWNodW5rPW51bGwsaS53cml0ZWNiPW51bGwsbnVsbCE9byYmdGhpcy5wdXNoKG8pLGEocyk7dmFyIHU9dGhpcy5fcmVhZGFibGVTdGF0ZTt1LnJlYWRpbmc9ITEsKHUubmVlZFJlYWRhYmxlfHx1Lmxlbmd0aDx1LmhpZ2hXYXRlck1hcmspJiZ0aGlzLl9yZWFkKHUuaGlnaFdhdGVyTWFyayl9ZnVuY3Rpb24gVHJhbnNmb3JtKHMpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFRyYW5zZm9ybSkpcmV0dXJuIG5ldyBUcmFuc2Zvcm0ocyk7Qy5jYWxsKHRoaXMscyksdGhpcy5fdHJhbnNmb3JtU3RhdGU9e2FmdGVyVHJhbnNmb3JtOmFmdGVyVHJhbnNmb3JtLmJpbmQodGhpcyksbmVlZFRyYW5zZm9ybTohMSx0cmFuc2Zvcm1pbmc6ITEsd3JpdGVjYjpudWxsLHdyaXRlY2h1bms6bnVsbCx3cml0ZWVuY29kaW5nOm51bGx9LHRoaXMuX3JlYWRhYmxlU3RhdGUubmVlZFJlYWRhYmxlPSEwLHRoaXMuX3JlYWRhYmxlU3RhdGUuc3luYz0hMSxzJiYoImZ1bmN0aW9uIj09dHlwZW9mIHMudHJhbnNmb3JtJiYodGhpcy5fdHJhbnNmb3JtPXMudHJhbnNmb3JtKSwiZnVuY3Rpb24iPT10eXBlb2Ygcy5mbHVzaCYmKHRoaXMuX2ZsdXNoPXMuZmx1c2gpKSx0aGlzLm9uKCJwcmVmaW5pc2giLHByZWZpbmlzaCl9ZnVuY3Rpb24gcHJlZmluaXNoKCl7dmFyIHM9dGhpczsiZnVuY3Rpb24iIT10eXBlb2YgdGhpcy5fZmx1c2h8fHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkP2RvbmUodGhpcyxudWxsLG51bGwpOnRoaXMuX2ZsdXNoKChmdW5jdGlvbihvLGkpe2RvbmUocyxvLGkpfSkpfWZ1bmN0aW9uIGRvbmUocyxvLGkpe2lmKG8pcmV0dXJuIHMuZW1pdCgiZXJyb3IiLG8pO2lmKG51bGwhPWkmJnMucHVzaChpKSxzLl93cml0YWJsZVN0YXRlLmxlbmd0aCl0aHJvdyBuZXcgeDtpZihzLl90cmFuc2Zvcm1TdGF0ZS50cmFuc2Zvcm1pbmcpdGhyb3cgbmV3IHc7cmV0dXJuIHMucHVzaChudWxsKX1pKDU2Njk4KShUcmFuc2Zvcm0sQyksVHJhbnNmb3JtLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHRoaXMuX3RyYW5zZm9ybVN0YXRlLm5lZWRUcmFuc2Zvcm09ITEsQy5wcm90b3R5cGUucHVzaC5jYWxsKHRoaXMscyxvKX0sVHJhbnNmb3JtLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKHMsbyxpKXtpKG5ldyB1KCJfdHJhbnNmb3JtKCkiKSl9LFRyYW5zZm9ybS5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKHMsbyxpKXt2YXIgYT10aGlzLl90cmFuc2Zvcm1TdGF0ZTtpZihhLndyaXRlY2I9aSxhLndyaXRlY2h1bms9cyxhLndyaXRlZW5jb2Rpbmc9bywhYS50cmFuc2Zvcm1pbmcpe3ZhciB1PXRoaXMuX3JlYWRhYmxlU3RhdGU7KGEubmVlZFRyYW5zZm9ybXx8dS5uZWVkUmVhZGFibGV8fHUubGVuZ3RoPHUuaGlnaFdhdGVyTWFyaykmJnRoaXMuX3JlYWQodS5oaWdoV2F0ZXJNYXJrKX19LFRyYW5zZm9ybS5wcm90b3R5cGUuX3JlYWQ9ZnVuY3Rpb24ocyl7dmFyIG89dGhpcy5fdHJhbnNmb3JtU3RhdGU7bnVsbD09PW8ud3JpdGVjaHVua3x8by50cmFuc2Zvcm1pbmc/by5uZWVkVHJhbnNmb3JtPSEwOihvLnRyYW5zZm9ybWluZz0hMCx0aGlzLl90cmFuc2Zvcm0oby53cml0ZWNodW5rLG8ud3JpdGVlbmNvZGluZyxvLmFmdGVyVHJhbnNmb3JtKSl9LFRyYW5zZm9ybS5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24ocyxvKXtDLnByb3RvdHlwZS5fZGVzdHJveS5jYWxsKHRoaXMscywoZnVuY3Rpb24ocyl7byhzKX0pKX19LDc0NzMzOihzLG8saSk9Pnt2YXIgYT1pKDIxNzkxKSx1PWkoOTU5NTApO3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlQXNzaWduKHMsbyl7cmV0dXJuIHMmJmEobyx1KG8pLHMpfX0sNzUxNDc6KHMsbyxpKT0+e2NvbnN0IGE9aSg4NTEwNSk7cy5leHBvcnRzPWNsYXNzIEpTT04wNlNlcmlhbGlzZXIgZXh0ZW5kcyBhe3NlcmlhbGlzZShzKXtpZighKHMgaW5zdGFuY2VvZiB0aGlzLm5hbWVzcGFjZS5lbGVtZW50cy5FbGVtZW50KSl0aHJvdyBuZXcgVHlwZUVycm9yKGBHaXZlbiBlbGVtZW50IFxgJHtzfVxgIGlzIG5vdCBhbiBFbGVtZW50IGluc3RhbmNlYCk7bGV0IG87cy5fYXR0cmlidXRlcyYmcy5hdHRyaWJ1dGVzLmdldCgidmFyaWFibGUiKSYmKG89cy5hdHRyaWJ1dGVzLmdldCgidmFyaWFibGUiKSk7Y29uc3QgaT17ZWxlbWVudDpzLmVsZW1lbnR9O3MuX21ldGEmJnMuX21ldGEubGVuZ3RoPjAmJihpLm1ldGE9dGhpcy5zZXJpYWxpc2VPYmplY3Qocy5tZXRhKSk7Y29uc3QgYT0iZW51bSI9PT1zLmVsZW1lbnR8fC0xIT09cy5hdHRyaWJ1dGVzLmtleXMoKS5pbmRleE9mKCJlbnVtZXJhdGlvbnMiKTtpZihhKXtjb25zdCBvPXRoaXMuZW51bVNlcmlhbGlzZUF0dHJpYnV0ZXMocyk7byYmKGkuYXR0cmlidXRlcz1vKX1lbHNlIGlmKHMuX2F0dHJpYnV0ZXMmJnMuX2F0dHJpYnV0ZXMubGVuZ3RoPjApe2xldHthdHRyaWJ1dGVzOmF9PXM7YS5nZXQoIm1ldGFkYXRhIikmJihhPWEuY2xvbmUoKSxhLnNldCgibWV0YSIsYS5nZXQoIm1ldGFkYXRhIikpLGEucmVtb3ZlKCJtZXRhZGF0YSIpKSwibWVtYmVyIj09PXMuZWxlbWVudCYmbyYmKGE9YS5jbG9uZSgpLGEucmVtb3ZlKCJ2YXJpYWJsZSIpKSxhLmxlbmd0aD4wJiYoaS5hdHRyaWJ1dGVzPXRoaXMuc2VyaWFsaXNlT2JqZWN0KGEpKX1pZihhKWkuY29udGVudD10aGlzLmVudW1TZXJpYWxpc2VDb250ZW50KHMsaSk7ZWxzZSBpZih0aGlzW2Ake3MuZWxlbWVudH1TZXJpYWxpc2VDb250ZW50YF0paS5jb250ZW50PXRoaXNbYCR7cy5lbGVtZW50fVNlcmlhbGlzZUNvbnRlbnRgXShzLGkpO2Vsc2UgaWYodm9pZCAwIT09cy5jb250ZW50KXtsZXQgYTtvJiZzLmNvbnRlbnQua2V5PyhhPXMuY29udGVudC5jbG9uZSgpLGEua2V5LmF0dHJpYnV0ZXMuc2V0KCJ2YXJpYWJsZSIsbyksYT10aGlzLnNlcmlhbGlzZUNvbnRlbnQoYSkpOmE9dGhpcy5zZXJpYWxpc2VDb250ZW50KHMuY29udGVudCksdGhpcy5zaG91bGRTZXJpYWxpc2VDb250ZW50KHMsYSkmJihpLmNvbnRlbnQ9YSl9ZWxzZSB0aGlzLnNob3VsZFNlcmlhbGlzZUNvbnRlbnQocyxzLmNvbnRlbnQpJiZzIGluc3RhbmNlb2YgdGhpcy5uYW1lc3BhY2UuZWxlbWVudHMuQXJyYXkmJihpLmNvbnRlbnQ9W10pO3JldHVybiBpfXNob3VsZFNlcmlhbGlzZUNvbnRlbnQocyxvKXtyZXR1cm4icGFyc2VSZXN1bHQiPT09cy5lbGVtZW50fHwiaHR0cFJlcXVlc3QiPT09cy5lbGVtZW50fHwiaHR0cFJlc3BvbnNlIj09PXMuZWxlbWVudHx8ImNhdGVnb3J5Ij09PXMuZWxlbWVudHx8ImxpbmsiPT09cy5lbGVtZW50fHx2b2lkIDAhPT1vJiYoIUFycmF5LmlzQXJyYXkobyl8fDAhPT1vLmxlbmd0aCl9cmVmU2VyaWFsaXNlQ29udGVudChzLG8pe3JldHVybiBkZWxldGUgby5hdHRyaWJ1dGVzLHtocmVmOnMudG9WYWx1ZSgpLHBhdGg6cy5wYXRoLnRvVmFsdWUoKX19c291cmNlTWFwU2VyaWFsaXNlQ29udGVudChzKXtyZXR1cm4gcy50b1ZhbHVlKCl9ZGF0YVN0cnVjdHVyZVNlcmlhbGlzZUNvbnRlbnQocyl7cmV0dXJuW3RoaXMuc2VyaWFsaXNlQ29udGVudChzLmNvbnRlbnQpXX1lbnVtU2VyaWFsaXNlQXR0cmlidXRlcyhzKXtjb25zdCBvPXMuYXR0cmlidXRlcy5jbG9uZSgpLGk9by5yZW1vdmUoImVudW1lcmF0aW9ucyIpfHxuZXcgdGhpcy5uYW1lc3BhY2UuZWxlbWVudHMuQXJyYXkoW10pLGE9by5nZXQoImRlZmF1bHQiKTtsZXQgdT1vLmdldCgic2FtcGxlcyIpfHxuZXcgdGhpcy5uYW1lc3BhY2UuZWxlbWVudHMuQXJyYXkoW10pO2lmKGEmJmEuY29udGVudCYmKGEuY29udGVudC5hdHRyaWJ1dGVzJiZhLmNvbnRlbnQuYXR0cmlidXRlcy5yZW1vdmUoInR5cGVBdHRyaWJ1dGVzIiksby5zZXQoImRlZmF1bHQiLG5ldyB0aGlzLm5hbWVzcGFjZS5lbGVtZW50cy5BcnJheShbYS5jb250ZW50XSkpKSx1LmZvckVhY2goKHM9PntzLmNvbnRlbnQmJnMuY29udGVudC5lbGVtZW50JiZzLmNvbnRlbnQuYXR0cmlidXRlcy5yZW1vdmUoInR5cGVBdHRyaWJ1dGVzIil9KSkscy5jb250ZW50JiYwIT09aS5sZW5ndGgmJnUudW5zaGlmdChzLmNvbnRlbnQpLHU9dS5tYXAoKHM9PnMgaW5zdGFuY2VvZiB0aGlzLm5hbWVzcGFjZS5lbGVtZW50cy5BcnJheT9bc106bmV3IHRoaXMubmFtZXNwYWNlLmVsZW1lbnRzLkFycmF5KFtzLmNvbnRlbnRdKSkpLHUubGVuZ3RoJiZvLnNldCgic2FtcGxlcyIsdSksby5sZW5ndGg+MClyZXR1cm4gdGhpcy5zZXJpYWxpc2VPYmplY3Qobyl9ZW51bVNlcmlhbGlzZUNvbnRlbnQocyl7aWYocy5fYXR0cmlidXRlcyl7Y29uc3Qgbz1zLmF0dHJpYnV0ZXMuZ2V0KCJlbnVtZXJhdGlvbnMiKTtpZihvJiZvLmxlbmd0aD4wKXJldHVybiBvLmNvbnRlbnQubWFwKChzPT57Y29uc3Qgbz1zLmNsb25lKCk7cmV0dXJuIG8uYXR0cmlidXRlcy5yZW1vdmUoInR5cGVBdHRyaWJ1dGVzIiksdGhpcy5zZXJpYWxpc2Uobyl9KSl9aWYocy5jb250ZW50KXtjb25zdCBvPXMuY29udGVudC5jbG9uZSgpO3JldHVybiBvLmF0dHJpYnV0ZXMucmVtb3ZlKCJ0eXBlQXR0cmlidXRlcyIpLFt0aGlzLnNlcmlhbGlzZShvKV19cmV0dXJuW119ZGVzZXJpYWxpc2Uocyl7aWYoInN0cmluZyI9PXR5cGVvZiBzKXJldHVybiBuZXcgdGhpcy5uYW1lc3BhY2UuZWxlbWVudHMuU3RyaW5nKHMpO2lmKCJudW1iZXIiPT10eXBlb2YgcylyZXR1cm4gbmV3IHRoaXMubmFtZXNwYWNlLmVsZW1lbnRzLk51bWJlcihzKTtpZigiYm9vbGVhbiI9PXR5cGVvZiBzKXJldHVybiBuZXcgdGhpcy5uYW1lc3BhY2UuZWxlbWVudHMuQm9vbGVhbihzKTtpZihudWxsPT09cylyZXR1cm4gbmV3IHRoaXMubmFtZXNwYWNlLmVsZW1lbnRzLk51bGw7aWYoQXJyYXkuaXNBcnJheShzKSlyZXR1cm4gbmV3IHRoaXMubmFtZXNwYWNlLmVsZW1lbnRzLkFycmF5KHMubWFwKHRoaXMuZGVzZXJpYWxpc2UsdGhpcykpO2NvbnN0IG89dGhpcy5uYW1lc3BhY2UuZ2V0RWxlbWVudENsYXNzKHMuZWxlbWVudCksaT1uZXcgbztpLmVsZW1lbnQhPT1zLmVsZW1lbnQmJihpLmVsZW1lbnQ9cy5lbGVtZW50KSxzLm1ldGEmJnRoaXMuZGVzZXJpYWxpc2VPYmplY3Qocy5tZXRhLGkubWV0YSkscy5hdHRyaWJ1dGVzJiZ0aGlzLmRlc2VyaWFsaXNlT2JqZWN0KHMuYXR0cmlidXRlcyxpLmF0dHJpYnV0ZXMpO2NvbnN0IGE9dGhpcy5kZXNlcmlhbGlzZUNvbnRlbnQocy5jb250ZW50KTtpZih2b2lkIDA9PT1hJiZudWxsIT09aS5jb250ZW50fHwoaS5jb250ZW50PWEpLCJlbnVtIj09PWkuZWxlbWVudCl7aS5jb250ZW50JiZpLmF0dHJpYnV0ZXMuc2V0KCJlbnVtZXJhdGlvbnMiLGkuY29udGVudCk7bGV0IHM9aS5hdHRyaWJ1dGVzLmdldCgic2FtcGxlcyIpO2lmKGkuYXR0cmlidXRlcy5yZW1vdmUoInNhbXBsZXMiKSxzKXtjb25zdCBhPXM7cz1uZXcgdGhpcy5uYW1lc3BhY2UuZWxlbWVudHMuQXJyYXksYS5mb3JFYWNoKChhPT57YS5mb3JFYWNoKChhPT57Y29uc3QgdT1uZXcgbyhhKTt1LmVsZW1lbnQ9aS5lbGVtZW50LHMucHVzaCh1KX0pKX0pKTtjb25zdCB1PXMuc2hpZnQoKTtpLmNvbnRlbnQ9dT91LmNvbnRlbnQ6dm9pZCAwLGkuYXR0cmlidXRlcy5zZXQoInNhbXBsZXMiLHMpfWVsc2UgaS5jb250ZW50PXZvaWQgMDtsZXQgYT1pLmF0dHJpYnV0ZXMuZ2V0KCJkZWZhdWx0Iik7aWYoYSYmYS5sZW5ndGg+MCl7YT1hLmdldCgwKTtjb25zdCBzPW5ldyBvKGEpO3MuZWxlbWVudD1pLmVsZW1lbnQsaS5hdHRyaWJ1dGVzLnNldCgiZGVmYXVsdCIscyl9fWVsc2UgaWYoImRhdGFTdHJ1Y3R1cmUiPT09aS5lbGVtZW50JiZBcnJheS5pc0FycmF5KGkuY29udGVudCkpW2kuY29udGVudF09aS5jb250ZW50O2Vsc2UgaWYoImNhdGVnb3J5Ij09PWkuZWxlbWVudCl7Y29uc3Qgcz1pLmF0dHJpYnV0ZXMuZ2V0KCJtZXRhIik7cyYmKGkuYXR0cmlidXRlcy5zZXQoIm1ldGFkYXRhIixzKSxpLmF0dHJpYnV0ZXMucmVtb3ZlKCJtZXRhIikpfWVsc2UibWVtYmVyIj09PWkuZWxlbWVudCYmaS5rZXkmJmkua2V5Ll9hdHRyaWJ1dGVzJiZpLmtleS5fYXR0cmlidXRlcy5nZXRWYWx1ZSgidmFyaWFibGUiKSYmKGkuYXR0cmlidXRlcy5zZXQoInZhcmlhYmxlIixpLmtleS5hdHRyaWJ1dGVzLmdldCgidmFyaWFibGUiKSksaS5rZXkuYXR0cmlidXRlcy5yZW1vdmUoInZhcmlhYmxlIikpO3JldHVybiBpfXNlcmlhbGlzZUNvbnRlbnQocyl7aWYocyBpbnN0YW5jZW9mIHRoaXMubmFtZXNwYWNlLmVsZW1lbnRzLkVsZW1lbnQpcmV0dXJuIHRoaXMuc2VyaWFsaXNlKHMpO2lmKHMgaW5zdGFuY2VvZiB0aGlzLm5hbWVzcGFjZS5LZXlWYWx1ZVBhaXIpe2NvbnN0IG89e2tleTp0aGlzLnNlcmlhbGlzZShzLmtleSl9O3JldHVybiBzLnZhbHVlJiYoby52YWx1ZT10aGlzLnNlcmlhbGlzZShzLnZhbHVlKSksb31yZXR1cm4gcyYmcy5tYXA/cy5tYXAodGhpcy5zZXJpYWxpc2UsdGhpcyk6c31kZXNlcmlhbGlzZUNvbnRlbnQocyl7aWYocyl7aWYocy5lbGVtZW50KXJldHVybiB0aGlzLmRlc2VyaWFsaXNlKHMpO2lmKHMua2V5KXtjb25zdCBvPW5ldyB0aGlzLm5hbWVzcGFjZS5LZXlWYWx1ZVBhaXIodGhpcy5kZXNlcmlhbGlzZShzLmtleSkpO3JldHVybiBzLnZhbHVlJiYoby52YWx1ZT10aGlzLmRlc2VyaWFsaXNlKHMudmFsdWUpKSxvfWlmKHMubWFwKXJldHVybiBzLm1hcCh0aGlzLmRlc2VyaWFsaXNlLHRoaXMpfXJldHVybiBzfXNob3VsZFJlZnJhY3Qocyl7cmV0dXJuISEocy5fYXR0cmlidXRlcyYmcy5hdHRyaWJ1dGVzLmtleXMoKS5sZW5ndGh8fHMuX21ldGEmJnMubWV0YS5rZXlzKCkubGVuZ3RoKXx8ImVudW0iIT09cy5lbGVtZW50JiYocy5lbGVtZW50IT09cy5wcmltaXRpdmUoKXx8Im1lbWJlciI9PT1zLmVsZW1lbnQpfWNvbnZlcnRLZXlUb1JlZnJhY3QocyxvKXtyZXR1cm4gdGhpcy5zaG91bGRSZWZyYWN0KG8pP3RoaXMuc2VyaWFsaXNlKG8pOiJlbnVtIj09PW8uZWxlbWVudD90aGlzLnNlcmlhbGlzZUVudW0obyk6ImFycmF5Ij09PW8uZWxlbWVudD9vLm1hcCgobz0+dGhpcy5zaG91bGRSZWZyYWN0KG8pfHwiZGVmYXVsdCI9PT1zP3RoaXMuc2VyaWFsaXNlKG8pOiJhcnJheSI9PT1vLmVsZW1lbnR8fCJvYmplY3QiPT09by5lbGVtZW50fHwiZW51bSI9PT1vLmVsZW1lbnQ/by5jaGlsZHJlbi5tYXAoKHM9PnRoaXMuc2VyaWFsaXNlKHMpKSk6by50b1ZhbHVlKCkpKToib2JqZWN0Ij09PW8uZWxlbWVudD8oby5jb250ZW50fHxbXSkubWFwKHRoaXMuc2VyaWFsaXNlLHRoaXMpOm8udG9WYWx1ZSgpfXNlcmlhbGlzZUVudW0ocyl7cmV0dXJuIHMuY2hpbGRyZW4ubWFwKChzPT50aGlzLnNlcmlhbGlzZShzKSkpfXNlcmlhbGlzZU9iamVjdChzKXtjb25zdCBvPXt9O3JldHVybiBzLmZvckVhY2goKChzLGkpPT57aWYocyl7Y29uc3QgYT1pLnRvVmFsdWUoKTtvW2FdPXRoaXMuY29udmVydEtleVRvUmVmcmFjdChhLHMpfX0pKSxvfWRlc2VyaWFsaXNlT2JqZWN0KHMsbyl7T2JqZWN0LmtleXMocykuZm9yRWFjaCgoaT0+e28uc2V0KGksdGhpcy5kZXNlcmlhbGlzZShzW2ldKSl9KSl9fX0sNzUyMDg6cz0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbyxpPSIiO3MuZXhwb3J0cz1mdW5jdGlvbiByZXBlYXQocyxhKXtpZigic3RyaW5nIiE9dHlwZW9mIHMpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhwZWN0ZWQgYSBzdHJpbmciKTtpZigxPT09YSlyZXR1cm4gcztpZigyPT09YSlyZXR1cm4gcytzO3ZhciB1PXMubGVuZ3RoKmE7aWYobyE9PXN8fHZvaWQgMD09PW8pbz1zLGk9IiI7ZWxzZSBpZihpLmxlbmd0aD49dSlyZXR1cm4gaS5zdWJzdHIoMCx1KTtmb3IoO3U+aS5sZW5ndGgmJmE+MTspMSZhJiYoaSs9cyksYT4+PTEscys9cztyZXR1cm4gaT0oaSs9cykuc3Vic3RyKDAsdSl9fSw3NTI1MTpzPT57dmFyIG89L1x7XG5cL1wqIFxbd3JhcHBlZCB3aXRoICguKylcXSBcKi8saT0vLD8gJiAvO3MuZXhwb3J0cz1mdW5jdGlvbiBnZXRXcmFwRGV0YWlscyhzKXt2YXIgYT1zLm1hdGNoKG8pO3JldHVybiBhP2FbMV0uc3BsaXQoaSk6W119fSw3NTI4ODpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIGVxKHMsbyl7cmV0dXJuIHM9PT1vfHxzIT1zJiZvIT1vfX0sNzU4MTc6cz0+eyJ1c2Ugc3RyaWN0IjtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvKXtyZXR1cm57ZW51bWVyYWJsZTohKDEmcyksY29uZmlndXJhYmxlOiEoMiZzKSx3cml0YWJsZTohKDQmcyksdmFsdWU6b319fSw3NTg5NjoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNjU2MDYpO2Z1bmN0aW9uIGVtaXRFcnJvckFuZENsb3NlTlQocyxvKXtlbWl0RXJyb3JOVChzLG8pLGVtaXRDbG9zZU5UKHMpfWZ1bmN0aW9uIGVtaXRDbG9zZU5UKHMpe3MuX3dyaXRhYmxlU3RhdGUmJiFzLl93cml0YWJsZVN0YXRlLmVtaXRDbG9zZXx8cy5fcmVhZGFibGVTdGF0ZSYmIXMuX3JlYWRhYmxlU3RhdGUuZW1pdENsb3NlfHxzLmVtaXQoImNsb3NlIil9ZnVuY3Rpb24gZW1pdEVycm9yTlQocyxvKXtzLmVtaXQoImVycm9yIixvKX1zLmV4cG9ydHM9e2Rlc3Ryb3k6ZnVuY3Rpb24gZGVzdHJveShzLG8pe3ZhciBpPXRoaXMsdT10aGlzLl9yZWFkYWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZCxfPXRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkO3JldHVybiB1fHxfPyhvP28ocyk6cyYmKHRoaXMuX3dyaXRhYmxlU3RhdGU/dGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWR8fCh0aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxhLm5leHRUaWNrKGVtaXRFcnJvck5ULHRoaXMscykpOmEubmV4dFRpY2soZW1pdEVycm9yTlQsdGhpcyxzKSksdGhpcyk6KHRoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD0hMCksdGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPSEwKSx0aGlzLl9kZXN0cm95KHN8fG51bGwsKGZ1bmN0aW9uKHMpeyFvJiZzP2kuX3dyaXRhYmxlU3RhdGU/aS5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ/YS5uZXh0VGljayhlbWl0Q2xvc2VOVCxpKTooaS5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsYS5uZXh0VGljayhlbWl0RXJyb3JBbmRDbG9zZU5ULGkscykpOmEubmV4dFRpY2soZW1pdEVycm9yQW5kQ2xvc2VOVCxpLHMpOm8/KGEubmV4dFRpY2soZW1pdENsb3NlTlQsaSksbyhzKSk6YS5uZXh0VGljayhlbWl0Q2xvc2VOVCxpKX0pKSx0aGlzKX0sdW5kZXN0cm95OmZ1bmN0aW9uIHVuZGVzdHJveSgpe3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLnJlYWRpbmc9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRlZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0ZWQ9ITEpLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZW5kaW5nPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZmluYWxDYWxsZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5wcmVmaW5pc2hlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSExKX0sZXJyb3JPckRlc3Ryb3k6ZnVuY3Rpb24gZXJyb3JPckRlc3Ryb3kocyxvKXt2YXIgaT1zLl9yZWFkYWJsZVN0YXRlLGE9cy5fd3JpdGFibGVTdGF0ZTtpJiZpLmF1dG9EZXN0cm95fHxhJiZhLmF1dG9EZXN0cm95P3MuZGVzdHJveShvKTpzLmVtaXQoImVycm9yIixvKX19fSw3NTk0ODoocyxvLGkpPT57dmFyIGE9aSg4MzcyOSksdT1pKDE1MzI1KSxfPVtbImFyeSIsMTI4XSxbImJpbmQiLDFdLFsiYmluZEtleSIsMl0sWyJjdXJyeSIsOF0sWyJjdXJyeVJpZ2h0IiwxNl0sWyJmbGlwIiw1MTJdLFsicGFydGlhbCIsMzJdLFsicGFydGlhbFJpZ2h0Iiw2NF0sWyJyZWFyZyIsMjU2XV07cy5leHBvcnRzPWZ1bmN0aW9uIHVwZGF0ZVdyYXBEZXRhaWxzKHMsbyl7cmV0dXJuIGEoXywoZnVuY3Rpb24oaSl7dmFyIGE9Il8uIitpWzBdO28maVsxXSYmIXUocyxhKSYmcy5wdXNoKGEpfSkpLHMuc29ydCgpfX0sNzYwMjQ6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDQxNTA1KSx1PUZ1bmN0aW9uLnByb3RvdHlwZSxfPXUuYXBwbHksdz11LmNhbGw7cy5leHBvcnRzPSJvYmplY3QiPT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5hcHBseXx8KGE/dy5iaW5kKF8pOmZ1bmN0aW9uKCl7cmV0dXJuIHcuYXBwbHkoXyxhcmd1bWVudHMpfSl9LDc2MTY5OihzLG8saSk9Pnt2YXIgYT1pKDQ5NjUzKTtzLmV4cG9ydHM9ZnVuY3Rpb24gY2xvbmVEYXRhVmlldyhzLG8pe3ZhciBpPW8/YShzLmJ1ZmZlcik6cy5idWZmZXI7cmV0dXJuIG5ldyBzLmNvbnN0cnVjdG9yKGkscy5ieXRlT2Zmc2V0LHMuYnl0ZUxlbmd0aCl9fSw3NjE4OTpzPT57dmFyIG89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtzLmV4cG9ydHM9ZnVuY3Rpb24gaW5pdENsb25lQXJyYXkocyl7dmFyIGk9cy5sZW5ndGgsYT1uZXcgcy5jb25zdHJ1Y3RvcihpKTtyZXR1cm4gaSYmInN0cmluZyI9PXR5cGVvZiBzWzBdJiZvLmNhbGwocywiaW5kZXgiKSYmKGEuaW5kZXg9cy5pbmRleCxhLmlucHV0PXMuaW5wdXQpLGF9fSw3NjI2NDoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNDU5NTEpLHU9aSg4NTgxNiksXz1pKDQ5NzI0KSx3PWkoNjQ5OSkseD1pKDE5ODQ2KSxDPWkoNTExNzUpLGo9YS5TeW1ib2wsTD11KCJ3a3MiKSxCPUM/ai5mb3J8fGo6aiYmai53aXRob3V0U2V0dGVyfHx3O3MuZXhwb3J0cz1mdW5jdGlvbihzKXtyZXR1cm4gXyhMLHMpfHwoTFtzXT14JiZfKGoscyk/altzXTpCKCJTeW1ib2wuIitzKSksTFtzXX19LDc2NTQ1OihzLG8saSk9Pnt2YXIgYT1pKDU2MTEwKShpKDkzMjUpLCJTZXQiKTtzLmV4cG9ydHM9YX0sNzY5NTk6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBzdHJpY3RJbmRleE9mKHMsbyxpKXtmb3IodmFyIGE9aS0xLHU9cy5sZW5ndGg7KythPHU7KWlmKHNbYV09PT1vKXJldHVybiBhO3JldHVybi0xfX0sNzcwNzg6KHMsbyxpKT0+e3ZhciBhPWkoOTEwMzMpLHU9aSg4MjgxOSksXz1pKDM3NDcxKSx3PWkoMTgwNzMpLHg9aSgxMTI4NyksQz1pKDM2MzA2KSxqPWkoOTMyNSk7cy5leHBvcnRzPWZ1bmN0aW9uIGNyZWF0ZUN1cnJ5KHMsbyxpKXt2YXIgTD11KHMpO3JldHVybiBmdW5jdGlvbiB3cmFwcGVyKCl7Zm9yKHZhciB1PWFyZ3VtZW50cy5sZW5ndGgsQj1BcnJheSh1KSwkPXUsVj14KHdyYXBwZXIpOyQtLTspQlskXT1hcmd1bWVudHNbJF07dmFyIFU9dTwzJiZCWzBdIT09ViYmQlt1LTFdIT09Vj9bXTpDKEIsVik7cmV0dXJuKHUtPVUubGVuZ3RoKTxpP3cocyxvLF8sd3JhcHBlci5wbGFjZWhvbGRlcix2b2lkIDAsQixVLHZvaWQgMCx2b2lkIDAsaS11KTphKHRoaXMmJnRoaXMhPT1qJiZ0aGlzIGluc3RhbmNlb2Ygd3JhcHBlcj9MOnMsdGhpcyxCKX19fSw3NzE5OToocyxvLGkpPT57dmFyIGE9aSg0OTY1MyksdT1pKDc2MTY5KSxfPWkoNzMyMDEpLHc9aSg5MzczNikseD1pKDcxOTYxKTtzLmV4cG9ydHM9ZnVuY3Rpb24gaW5pdENsb25lQnlUYWcocyxvLGkpe3ZhciBDPXMuY29uc3RydWN0b3I7c3dpdGNoKG8pe2Nhc2UiW29iamVjdCBBcnJheUJ1ZmZlcl0iOnJldHVybiBhKHMpO2Nhc2UiW29iamVjdCBCb29sZWFuXSI6Y2FzZSJbb2JqZWN0IERhdGVdIjpyZXR1cm4gbmV3IEMoK3MpO2Nhc2UiW29iamVjdCBEYXRhVmlld10iOnJldHVybiB1KHMsaSk7Y2FzZSJbb2JqZWN0IEZsb2F0MzJBcnJheV0iOmNhc2UiW29iamVjdCBGbG9hdDY0QXJyYXldIjpjYXNlIltvYmplY3QgSW50OEFycmF5XSI6Y2FzZSJbb2JqZWN0IEludDE2QXJyYXldIjpjYXNlIltvYmplY3QgSW50MzJBcnJheV0iOmNhc2UiW29iamVjdCBVaW50OEFycmF5XSI6Y2FzZSJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSI6Y2FzZSJbb2JqZWN0IFVpbnQxNkFycmF5XSI6Y2FzZSJbb2JqZWN0IFVpbnQzMkFycmF5XSI6cmV0dXJuIHgocyxpKTtjYXNlIltvYmplY3QgTWFwXSI6Y2FzZSJbb2JqZWN0IFNldF0iOnJldHVybiBuZXcgQztjYXNlIltvYmplY3QgTnVtYmVyXSI6Y2FzZSJbb2JqZWN0IFN0cmluZ10iOnJldHVybiBuZXcgQyhzKTtjYXNlIltvYmplY3QgUmVnRXhwXSI6cmV0dXJuIF8ocyk7Y2FzZSJbb2JqZWN0IFN5bWJvbF0iOnJldHVybiB3KHMpfX19LDc3NTU2OihzLG8saSk9Pnt2YXIgYT1pKDUxODczKSx1PWkoMzQ5MzIpLF89aSg1NjQ0OSksdz1pKDQ0Mzk0KSx4PWE/YS5wcm90b3R5cGU6dm9pZCAwLEM9eD94LnRvU3RyaW5nOnZvaWQgMDtzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZVRvU3RyaW5nKHMpe2lmKCJzdHJpbmciPT10eXBlb2YgcylyZXR1cm4gcztpZihfKHMpKXJldHVybiB1KHMsYmFzZVRvU3RyaW5nKSsiIjtpZih3KHMpKXJldHVybiBDP0MuY2FsbChzKToiIjt2YXIgbz1zKyIiO3JldHVybiIwIj09byYmMS9zPT0tMS8wPyItMCI6b319LDc3NzMxOihzLG8saSk9Pnt2YXIgYT1pKDc5OTIwKSgic2V0IixpKDYzNTYwKSk7YS5wbGFjZWhvbGRlcj1pKDI4NzQpLHMuZXhwb3J0cz1hfSw3Nzc5NzoocyxvLGkpPT57dmFyIGE9aSg0NDM5NCk7cy5leHBvcnRzPWZ1bmN0aW9uIHRvS2V5KHMpe2lmKCJzdHJpbmciPT10eXBlb2Ygc3x8YShzKSlyZXR1cm4gczt2YXIgbz1zKyIiO3JldHVybiIwIj09byYmMS9zPT0tMS8wPyItMCI6b319LDc4MDA0OnM9PnsidXNlIHN0cmljdCI7Y2xhc3MgU3ViUmFuZ2V7Y29uc3RydWN0b3IocyxvKXt0aGlzLmxvdz1zLHRoaXMuaGlnaD1vLHRoaXMubGVuZ3RoPTErby1zfW92ZXJsYXBzKHMpe3JldHVybiEodGhpcy5oaWdoPHMubG93fHx0aGlzLmxvdz5zLmhpZ2gpfXRvdWNoZXMocyl7cmV0dXJuISh0aGlzLmhpZ2grMTxzLmxvd3x8dGhpcy5sb3ctMT5zLmhpZ2gpfWFkZChzKXtyZXR1cm4gbmV3IFN1YlJhbmdlKE1hdGgubWluKHRoaXMubG93LHMubG93KSxNYXRoLm1heCh0aGlzLmhpZ2gscy5oaWdoKSl9c3VidHJhY3Qocyl7cmV0dXJuIHMubG93PD10aGlzLmxvdyYmcy5oaWdoPj10aGlzLmhpZ2g/W106cy5sb3c+dGhpcy5sb3cmJnMuaGlnaDx0aGlzLmhpZ2g/W25ldyBTdWJSYW5nZSh0aGlzLmxvdyxzLmxvdy0xKSxuZXcgU3ViUmFuZ2Uocy5oaWdoKzEsdGhpcy5oaWdoKV06cy5sb3c8PXRoaXMubG93P1tuZXcgU3ViUmFuZ2Uocy5oaWdoKzEsdGhpcy5oaWdoKV06W25ldyBTdWJSYW5nZSh0aGlzLmxvdyxzLmxvdy0xKV19dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5sb3c9PXRoaXMuaGlnaD90aGlzLmxvdy50b1N0cmluZygpOnRoaXMubG93KyItIit0aGlzLmhpZ2h9fWNsYXNzIERSYW5nZXtjb25zdHJ1Y3RvcihzLG8pe3RoaXMucmFuZ2VzPVtdLHRoaXMubGVuZ3RoPTAsbnVsbCE9cyYmdGhpcy5hZGQocyxvKX1fdXBkYXRlX2xlbmd0aCgpe3RoaXMubGVuZ3RoPXRoaXMucmFuZ2VzLnJlZHVjZSgoKHMsbyk9PnMrby5sZW5ndGgpLDApfWFkZChzLG8pe3ZhciBfYWRkPXM9Pntmb3IodmFyIG89MDtvPHRoaXMucmFuZ2VzLmxlbmd0aCYmIXMudG91Y2hlcyh0aGlzLnJhbmdlc1tvXSk7KW8rKztmb3IodmFyIGk9dGhpcy5yYW5nZXMuc2xpY2UoMCxvKTtvPHRoaXMucmFuZ2VzLmxlbmd0aCYmcy50b3VjaGVzKHRoaXMucmFuZ2VzW29dKTspcz1zLmFkZCh0aGlzLnJhbmdlc1tvXSksbysrO2kucHVzaChzKSx0aGlzLnJhbmdlcz1pLmNvbmNhdCh0aGlzLnJhbmdlcy5zbGljZShvKSksdGhpcy5fdXBkYXRlX2xlbmd0aCgpfTtyZXR1cm4gcyBpbnN0YW5jZW9mIERSYW5nZT9zLnJhbmdlcy5mb3JFYWNoKF9hZGQpOihudWxsPT1vJiYobz1zKSxfYWRkKG5ldyBTdWJSYW5nZShzLG8pKSksdGhpc31zdWJ0cmFjdChzLG8pe3ZhciBfc3VidHJhY3Q9cz0+e2Zvcih2YXIgbz0wO288dGhpcy5yYW5nZXMubGVuZ3RoJiYhcy5vdmVybGFwcyh0aGlzLnJhbmdlc1tvXSk7KW8rKztmb3IodmFyIGk9dGhpcy5yYW5nZXMuc2xpY2UoMCxvKTtvPHRoaXMucmFuZ2VzLmxlbmd0aCYmcy5vdmVybGFwcyh0aGlzLnJhbmdlc1tvXSk7KWk9aS5jb25jYXQodGhpcy5yYW5nZXNbb10uc3VidHJhY3QocykpLG8rKzt0aGlzLnJhbmdlcz1pLmNvbmNhdCh0aGlzLnJhbmdlcy5zbGljZShvKSksdGhpcy5fdXBkYXRlX2xlbmd0aCgpfTtyZXR1cm4gcyBpbnN0YW5jZW9mIERSYW5nZT9zLnJhbmdlcy5mb3JFYWNoKF9zdWJ0cmFjdCk6KG51bGw9PW8mJihvPXMpLF9zdWJ0cmFjdChuZXcgU3ViUmFuZ2UocyxvKSkpLHRoaXN9aW50ZXJzZWN0KHMsbyl7dmFyIGk9W10sX2ludGVyc2VjdD1zPT57Zm9yKHZhciBvPTA7bzx0aGlzLnJhbmdlcy5sZW5ndGgmJiFzLm92ZXJsYXBzKHRoaXMucmFuZ2VzW29dKTspbysrO2Zvcig7bzx0aGlzLnJhbmdlcy5sZW5ndGgmJnMub3ZlcmxhcHModGhpcy5yYW5nZXNbb10pOyl7dmFyIGE9TWF0aC5tYXgodGhpcy5yYW5nZXNbb10ubG93LHMubG93KSx1PU1hdGgubWluKHRoaXMucmFuZ2VzW29dLmhpZ2gscy5oaWdoKTtpLnB1c2gobmV3IFN1YlJhbmdlKGEsdSkpLG8rK319O3JldHVybiBzIGluc3RhbmNlb2YgRFJhbmdlP3MucmFuZ2VzLmZvckVhY2goX2ludGVyc2VjdCk6KG51bGw9PW8mJihvPXMpLF9pbnRlcnNlY3QobmV3IFN1YlJhbmdlKHMsbykpKSx0aGlzLnJhbmdlcz1pLHRoaXMuX3VwZGF0ZV9sZW5ndGgoKSx0aGlzfWluZGV4KHMpe2Zvcih2YXIgbz0wO288dGhpcy5yYW5nZXMubGVuZ3RoJiZ0aGlzLnJhbmdlc1tvXS5sZW5ndGg8PXM7KXMtPXRoaXMucmFuZ2VzW29dLmxlbmd0aCxvKys7cmV0dXJuIHRoaXMucmFuZ2VzW29dLmxvdytzfXRvU3RyaW5nKCl7cmV0dXJuIlsgIit0aGlzLnJhbmdlcy5qb2luKCIsICIpKyIgXSJ9Y2xvbmUoKXtyZXR1cm4gbmV3IERSYW5nZSh0aGlzKX1udW1iZXJzKCl7cmV0dXJuIHRoaXMucmFuZ2VzLnJlZHVjZSgoKHMsbyk9Pntmb3IodmFyIGk9by5sb3c7aTw9by5oaWdoOylzLnB1c2goaSksaSsrO3JldHVybiBzfSksW10pfXN1YnJhbmdlcygpe3JldHVybiB0aGlzLnJhbmdlcy5tYXAoKHM9Pih7bG93OnMubG93LGhpZ2g6cy5oaWdoLGxlbmd0aDoxK3MuaGlnaC1zLmxvd30pKSl9fXMuZXhwb3J0cz1EUmFuZ2V9LDc4MDk2OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZVRpbWVzKHMsbyl7Zm9yKHZhciBpPS0xLGE9QXJyYXkocyk7KytpPHM7KWFbaV09byhpKTtyZXR1cm4gYX19LDc4NDE4OihzLG8saSk9PnsidXNlIHN0cmljdCI7aSg4NTE2MCl9LDc5MTkyOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg1MTg3MSksdT1pKDQ2Mjg1KSxfPWkoNzQyMzkpLHc9aSgxMDA0Myk7cy5leHBvcnRzPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8KCJfX3Byb3RvX18iaW57fT9mdW5jdGlvbigpe3ZhciBzLG89ITEsaT17fTt0cnl7KHM9YShPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iLCJzZXQiKSkoaSxbXSksbz1pIGluc3RhbmNlb2YgQXJyYXl9Y2F0Y2gocyl7fXJldHVybiBmdW5jdGlvbiBzZXRQcm90b3R5cGVPZihpLGEpe3JldHVybiBfKGkpLHcoYSksdShpKT8obz9zKGksYSk6aS5fX3Byb3RvX189YSxpKTppfX0oKTp2b2lkIDApfSw3OTMwNzoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMTEwOTEpLHU9aSg0NDY3Myk7YSh7dGFyZ2V0OiJGdW5jdGlvbiIscHJvdG86ITAsZm9yY2VkOkZ1bmN0aW9uLmJpbmQhPT11fSx7YmluZDp1fSl9LDc5NzcwOnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gYXJyYXlGaWx0ZXIocyxvKXtmb3IodmFyIGk9LTEsYT1udWxsPT1zPzA6cy5sZW5ndGgsdT0wLF89W107KytpPGE7KXt2YXIgdz1zW2ldO28odyxpLHMpJiYoX1t1KytdPXcpfXJldHVybiBffX0sNzk4Mzg6KCk9Pnt9LDc5OTIwOihzLG8saSk9Pnt2YXIgYT1pKDczNDI0KSx1PWkoNDc5MzQpO3MuZXhwb3J0cz1mdW5jdGlvbiBjb252ZXJ0KHMsbyxpKXtyZXR1cm4gYSh1LHMsbyxpKX19LDgwMDc5OihzLG8saSk9Pnt2YXIgYT1pKDYzNzAyKSx1PWkoNzAwODApLF89aSgyNDczOSksdz1pKDQ4NjU1KSx4PWkoMzExNzUpO2Z1bmN0aW9uIExpc3RDYWNoZShzKXt2YXIgbz0tMSxpPW51bGw9PXM/MDpzLmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrbzxpOyl7dmFyIGE9c1tvXTt0aGlzLnNldChhWzBdLGFbMV0pfX1MaXN0Q2FjaGUucHJvdG90eXBlLmNsZWFyPWEsTGlzdENhY2hlLnByb3RvdHlwZS5kZWxldGU9dSxMaXN0Q2FjaGUucHJvdG90eXBlLmdldD1fLExpc3RDYWNoZS5wcm90b3R5cGUuaGFzPXcsTGlzdENhY2hlLnByb3RvdHlwZS5zZXQ9eCxzLmV4cG9ydHM9TGlzdENhY2hlfSw4MDIxODoocyxvLGkpPT57dmFyIGE9aSgxMzIyMik7cy5leHBvcnRzPWZ1bmN0aW9uIHRvTG93ZXIocyl7cmV0dXJuIGEocykudG9Mb3dlckNhc2UoKX19LDgwMjU3OihzLG8saSk9Pnt2YXIgYT1pKDMwOTgwKSx1PWkoNTYwMTcpLF89aSgyMzAwNyk7cy5leHBvcnRzPWZ1bmN0aW9uIHdyYXBwZXJDbG9uZShzKXtpZihzIGluc3RhbmNlb2YgYSlyZXR1cm4gcy5jbG9uZSgpO3ZhciBvPW5ldyB1KHMuX193cmFwcGVkX18scy5fX2NoYWluX18pO3JldHVybiBvLl9fYWN0aW9uc19fPV8ocy5fX2FjdGlvbnNfXyksby5fX2luZGV4X189cy5fX2luZGV4X18sby5fX3ZhbHVlc19fPXMuX192YWx1ZXNfXyxvfX0sODAzNDU6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvd25LZXlzKHMsbyl7dmFyIGk9T2JqZWN0LmtleXMocyk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtvJiYoYT1hLmZpbHRlcigoZnVuY3Rpb24obyl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocyxvKS5lbnVtZXJhYmxlfSkpKSxpLnB1c2guYXBwbHkoaSxhKX1yZXR1cm4gaX1mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKHMpe2Zvcih2YXIgbz0xO288YXJndW1lbnRzLmxlbmd0aDtvKyspe3ZhciBpPW51bGwhPWFyZ3VtZW50c1tvXT9hcmd1bWVudHNbb106e307byUyP293bktleXMoT2JqZWN0KGkpLCEwKS5mb3JFYWNoKChmdW5jdGlvbihvKXtfZGVmaW5lUHJvcGVydHkocyxvLGlbb10pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHMsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoaSkpOm93bktleXMoT2JqZWN0KGkpKS5mb3JFYWNoKChmdW5jdGlvbihvKXtPYmplY3QuZGVmaW5lUHJvcGVydHkocyxvLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaSxvKSl9KSl9cmV0dXJuIHN9ZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KHMsbyxpKXtyZXR1cm4obz1fdG9Qcm9wZXJ0eUtleShvKSlpbiBzP09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLG8se3ZhbHVlOmksZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpzW29dPWksc31mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyhzLG8pe2Zvcih2YXIgaT0wO2k8by5sZW5ndGg7aSsrKXt2YXIgYT1vW2ldO2EuZW51bWVyYWJsZT1hLmVudW1lcmFibGV8fCExLGEuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBhJiYoYS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsX3RvUHJvcGVydHlLZXkoYS5rZXkpLGEpfX1mdW5jdGlvbiBfdG9Qcm9wZXJ0eUtleShzKXt2YXIgbz1mdW5jdGlvbiBfdG9QcmltaXRpdmUocyxvKXtpZigib2JqZWN0IiE9dHlwZW9mIHN8fG51bGw9PT1zKXJldHVybiBzO3ZhciBpPXNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1pKXt2YXIgYT1pLmNhbGwocyxvfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgYSlyZXR1cm4gYTt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PW8/U3RyaW5nOk51bWJlcikocyl9KHMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2Ygbz9vOlN0cmluZyhvKX12YXIgYT1pKDQ4Mjg3KS5CdWZmZXIsdT1pKDE1MzQwKS5pbnNwZWN0LF89dSYmdS5jdXN0b218fCJpbnNwZWN0IjtzLmV4cG9ydHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBCdWZmZXJMaXN0KCl7IWZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhzLG8pe2lmKCEocyBpbnN0YW5jZW9mIG8pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLEJ1ZmZlckxpc3QpLHRoaXMuaGVhZD1udWxsLHRoaXMudGFpbD1udWxsLHRoaXMubGVuZ3RoPTB9cmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhzLG8saSl7cmV0dXJuIG8mJl9kZWZpbmVQcm9wZXJ0aWVzKHMucHJvdG90eXBlLG8pLGkmJl9kZWZpbmVQcm9wZXJ0aWVzKHMsaSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksc30oQnVmZmVyTGlzdCxbe2tleToicHVzaCIsdmFsdWU6ZnVuY3Rpb24gcHVzaChzKXt2YXIgbz17ZGF0YTpzLG5leHQ6bnVsbH07dGhpcy5sZW5ndGg+MD90aGlzLnRhaWwubmV4dD1vOnRoaXMuaGVhZD1vLHRoaXMudGFpbD1vLCsrdGhpcy5sZW5ndGh9fSx7a2V5OiJ1bnNoaWZ0Iix2YWx1ZTpmdW5jdGlvbiB1bnNoaWZ0KHMpe3ZhciBvPXtkYXRhOnMsbmV4dDp0aGlzLmhlYWR9OzA9PT10aGlzLmxlbmd0aCYmKHRoaXMudGFpbD1vKSx0aGlzLmhlYWQ9bywrK3RoaXMubGVuZ3RofX0se2tleToic2hpZnQiLHZhbHVlOmZ1bmN0aW9uIHNoaWZ0KCl7aWYoMCE9PXRoaXMubGVuZ3RoKXt2YXIgcz10aGlzLmhlYWQuZGF0YTtyZXR1cm4gMT09PXRoaXMubGVuZ3RoP3RoaXMuaGVhZD10aGlzLnRhaWw9bnVsbDp0aGlzLmhlYWQ9dGhpcy5oZWFkLm5leHQsLS10aGlzLmxlbmd0aCxzfX19LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlvbiBjbGVhcigpe3RoaXMuaGVhZD10aGlzLnRhaWw9bnVsbCx0aGlzLmxlbmd0aD0wfX0se2tleToiam9pbiIsdmFsdWU6ZnVuY3Rpb24gam9pbihzKXtpZigwPT09dGhpcy5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciBvPXRoaXMuaGVhZCxpPSIiK28uZGF0YTtvPW8ubmV4dDspaSs9cytvLmRhdGE7cmV0dXJuIGl9fSx7a2V5OiJjb25jYXQiLHZhbHVlOmZ1bmN0aW9uIGNvbmNhdChzKXtpZigwPT09dGhpcy5sZW5ndGgpcmV0dXJuIGEuYWxsb2MoMCk7Zm9yKHZhciBvLGksdSxfPWEuYWxsb2NVbnNhZmUocz4+PjApLHc9dGhpcy5oZWFkLHg9MDt3OylvPXcuZGF0YSxpPV8sdT14LGEucHJvdG90eXBlLmNvcHkuY2FsbChvLGksdSkseCs9dy5kYXRhLmxlbmd0aCx3PXcubmV4dDtyZXR1cm4gX319LHtrZXk6ImNvbnN1bWUiLHZhbHVlOmZ1bmN0aW9uIGNvbnN1bWUocyxvKXt2YXIgaTtyZXR1cm4gczx0aGlzLmhlYWQuZGF0YS5sZW5ndGg/KGk9dGhpcy5oZWFkLmRhdGEuc2xpY2UoMCxzKSx0aGlzLmhlYWQuZGF0YT10aGlzLmhlYWQuZGF0YS5zbGljZShzKSk6aT1zPT09dGhpcy5oZWFkLmRhdGEubGVuZ3RoP3RoaXMuc2hpZnQoKTpvP3RoaXMuX2dldFN0cmluZyhzKTp0aGlzLl9nZXRCdWZmZXIocyksaX19LHtrZXk6ImZpcnN0Iix2YWx1ZTpmdW5jdGlvbiBmaXJzdCgpe3JldHVybiB0aGlzLmhlYWQuZGF0YX19LHtrZXk6Il9nZXRTdHJpbmciLHZhbHVlOmZ1bmN0aW9uIF9nZXRTdHJpbmcocyl7dmFyIG89dGhpcy5oZWFkLGk9MSxhPW8uZGF0YTtmb3Iocy09YS5sZW5ndGg7bz1vLm5leHQ7KXt2YXIgdT1vLmRhdGEsXz1zPnUubGVuZ3RoP3UubGVuZ3RoOnM7aWYoXz09PXUubGVuZ3RoP2ErPXU6YSs9dS5zbGljZSgwLHMpLDA9PT0ocy09Xykpe189PT11Lmxlbmd0aD8oKytpLG8ubmV4dD90aGlzLmhlYWQ9by5uZXh0OnRoaXMuaGVhZD10aGlzLnRhaWw9bnVsbCk6KHRoaXMuaGVhZD1vLG8uZGF0YT11LnNsaWNlKF8pKTticmVha30rK2l9cmV0dXJuIHRoaXMubGVuZ3RoLT1pLGF9fSx7a2V5OiJfZ2V0QnVmZmVyIix2YWx1ZTpmdW5jdGlvbiBfZ2V0QnVmZmVyKHMpe3ZhciBvPWEuYWxsb2NVbnNhZmUocyksaT10aGlzLmhlYWQsdT0xO2ZvcihpLmRhdGEuY29weShvKSxzLT1pLmRhdGEubGVuZ3RoO2k9aS5uZXh0Oyl7dmFyIF89aS5kYXRhLHc9cz5fLmxlbmd0aD9fLmxlbmd0aDpzO2lmKF8uY29weShvLG8ubGVuZ3RoLXMsMCx3KSwwPT09KHMtPXcpKXt3PT09Xy5sZW5ndGg/KCsrdSxpLm5leHQ/dGhpcy5oZWFkPWkubmV4dDp0aGlzLmhlYWQ9dGhpcy50YWlsPW51bGwpOih0aGlzLmhlYWQ9aSxpLmRhdGE9Xy5zbGljZSh3KSk7YnJlYWt9Kyt1fXJldHVybiB0aGlzLmxlbmd0aC09dSxvfX0se2tleTpfLHZhbHVlOmZ1bmN0aW9uIHZhbHVlKHMsbyl7cmV0dXJuIHUodGhpcyxfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sbykse30se2RlcHRoOjAsY3VzdG9tSW5zcGVjdDohMX0pKX19XSksQnVmZmVyTGlzdH0oKX0sODAzNzY6cz0+eyJ1c2Ugc3RyaWN0IjtzLmV4cG9ydHM9WyJjb25zdHJ1Y3RvciIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidG9Mb2NhbGVTdHJpbmciLCJ0b1N0cmluZyIsInZhbHVlT2YiXX0sODA2MzE6KHMsbyxpKT0+e3ZhciBhPWkoMjgwNzcpLHU9aSg0OTMyNik7cy5leHBvcnRzPWZ1bmN0aW9uIGhhc0luKHMsbyl7cmV0dXJuIG51bGwhPXMmJnUocyxvLGEpfX0sODA5MDk6KHMsbyxpKT0+e3ZhciBhPWkoMzA2NDEpLHU9aSgzODMyOSkoYSk7cy5leHBvcnRzPXV9LDgwOTQ1OihzLG8saSk9Pnt2YXIgYT1pKDgwMDc5KSx1PWkoNjgyMjMpLF89aSg1MzY2MSk7cy5leHBvcnRzPWZ1bmN0aW9uIHN0YWNrU2V0KHMsbyl7dmFyIGk9dGhpcy5fX2RhdGFfXztpZihpIGluc3RhbmNlb2YgYSl7dmFyIHc9aS5fX2RhdGFfXztpZighdXx8dy5sZW5ndGg8MTk5KXJldHVybiB3LnB1c2goW3Msb10pLHRoaXMuc2l6ZT0rK2kuc2l6ZSx0aGlzO2k9dGhpcy5fX2RhdGFfXz1uZXcgXyh3KX1yZXR1cm4gaS5zZXQocyxvKSx0aGlzLnNpemU9aS5zaXplLHRoaXN9fSw4MTA0MjoocyxvLGkpPT57dmFyIGE9aSg1NjExMCkoT2JqZWN0LCJjcmVhdGUiKTtzLmV4cG9ydHM9YX0sODEyMTQ6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfdHlwZW9mKHMpe3JldHVybiBfdHlwZW9mPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHMpe3JldHVybiB0eXBlb2Ygc306ZnVuY3Rpb24ocyl7cmV0dXJuIHMmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnMuY29uc3RydWN0b3I9PT1TeW1ib2wmJnMhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBzfSxfdHlwZW9mKHMpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxvLkRlYm91bmNlSW5wdXQ9dm9pZCAwO3ZhciBhPV9pbnRlcm9wUmVxdWlyZURlZmF1bHQoaSg5NjU0MCkpLHU9X2ludGVyb3BSZXF1aXJlRGVmYXVsdChpKDIwMTgxKSksXz1bImVsZW1lbnQiLCJvbkNoYW5nZSIsInZhbHVlIiwibWluTGVuZ3RoIiwiZGVib3VuY2VUaW1lb3V0IiwiZm9yY2VOb3RpZnlCeUVudGVyIiwiZm9yY2VOb3RpZnlPbkJsdXIiLCJvbktleURvd24iLCJvbkJsdXIiLCJpbnB1dFJlZiJdO2Z1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocyl7cmV0dXJuIHMmJnMuX19lc01vZHVsZT9zOntkZWZhdWx0OnN9fWZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhzLG8pe2lmKG51bGw9PXMpcmV0dXJue307dmFyIGksYSx1PWZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHMsbyl7aWYobnVsbD09cylyZXR1cm57fTt2YXIgaSxhLHU9e30sXz1PYmplY3Qua2V5cyhzKTtmb3IoYT0wO2E8Xy5sZW5ndGg7YSsrKWk9X1thXSxvLmluZGV4T2YoaSk+PTB8fCh1W2ldPXNbaV0pO3JldHVybiB1fShzLG8pO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBfPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7Zm9yKGE9MDthPF8ubGVuZ3RoO2ErKylpPV9bYV0sby5pbmRleE9mKGkpPj0wfHxPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocyxpKSYmKHVbaV09c1tpXSl9cmV0dXJuIHV9ZnVuY3Rpb24gb3duS2V5cyhzLG8pe3ZhciBpPU9iamVjdC5rZXlzKHMpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7byYmKGE9YS5maWx0ZXIoKGZ1bmN0aW9uKG8pe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsbykuZW51bWVyYWJsZX0pKSksaS5wdXNoLmFwcGx5KGksYSl9cmV0dXJuIGl9ZnVuY3Rpb24gX29iamVjdFNwcmVhZChzKXtmb3IodmFyIG89MTtvPGFyZ3VtZW50cy5sZW5ndGg7bysrKXt2YXIgaT1udWxsIT1hcmd1bWVudHNbb10/YXJndW1lbnRzW29dOnt9O28lMj9vd25LZXlzKE9iamVjdChpKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24obyl7X2RlZmluZVByb3BlcnR5KHMsbyxpW29dKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhzLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGkpKTpvd25LZXlzKE9iamVjdChpKSkuZm9yRWFjaCgoZnVuY3Rpb24obyl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHMsbyxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksbykpfSkpfXJldHVybiBzfWZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHMsbyl7Zm9yKHZhciBpPTA7aTxvLmxlbmd0aDtpKyspe3ZhciBhPW9baV07YS5lbnVtZXJhYmxlPWEuZW51bWVyYWJsZXx8ITEsYS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGEmJihhLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocyxhLmtleSxhKX19ZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKHMsbyl7cmV0dXJuIF9zZXRQcm90b3R5cGVPZj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihzLG8pe3JldHVybiBzLl9fcHJvdG9fXz1vLHN9LF9zZXRQcm90b3R5cGVPZihzLG8pfWZ1bmN0aW9uIF9jcmVhdGVTdXBlcihzKXt2YXIgbz1mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKHMpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKXt2YXIgaSxhPV9nZXRQcm90b3R5cGVPZihzKTtpZihvKXt2YXIgdT1fZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7aT1SZWZsZWN0LmNvbnN0cnVjdChhLGFyZ3VtZW50cyx1KX1lbHNlIGk9YS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHMsbyl7aWYobyYmKCJvYmplY3QiPT09X3R5cGVvZihvKXx8ImZ1bmN0aW9uIj09dHlwZW9mIG8pKXJldHVybiBvO2lmKHZvaWQgMCE9PW8pdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzKX0odGhpcyxpKX19ZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzKXtpZih2b2lkIDA9PT1zKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIHN9ZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKHMpe3JldHVybiBfZ2V0UHJvdG90eXBlT2Y9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yocyl7cmV0dXJuIHMuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2Yocyl9LF9nZXRQcm90b3R5cGVPZihzKX1mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkocyxvLGkpe3JldHVybiBvIGluIHM/T2JqZWN0LmRlZmluZVByb3BlcnR5KHMsbyx7dmFsdWU6aSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnNbb109aSxzfXZhciB3PWZ1bmN0aW9uKHMpeyFmdW5jdGlvbiBfaW5oZXJpdHMocyxvKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgbyYmbnVsbCE9PW8pdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtzLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG8mJm8ucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6cyx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksbyYmX3NldFByb3RvdHlwZU9mKHMsbyl9KERlYm91bmNlSW5wdXQscyk7dmFyIG89X2NyZWF0ZVN1cGVyKERlYm91bmNlSW5wdXQpO2Z1bmN0aW9uIERlYm91bmNlSW5wdXQocyl7dmFyIGk7IWZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhzLG8pe2lmKCEocyBpbnN0YW5jZW9mIG8pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLERlYm91bmNlSW5wdXQpLF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKGk9by5jYWxsKHRoaXMscykpLCJvbkNoYW5nZSIsKGZ1bmN0aW9uKHMpe3MucGVyc2lzdCgpO3ZhciBvPWkuc3RhdGUudmFsdWUsYT1pLnByb3BzLm1pbkxlbmd0aDtpLnNldFN0YXRlKHt2YWx1ZTpzLnRhcmdldC52YWx1ZX0sKGZ1bmN0aW9uKCl7dmFyIHU9aS5zdGF0ZS52YWx1ZTt1Lmxlbmd0aD49YT9pLm5vdGlmeShzKTpvLmxlbmd0aD51Lmxlbmd0aCYmaS5ub3RpZnkoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LHMpLHt9LHt0YXJnZXQ6X29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LHMudGFyZ2V0KSx7fSx7dmFsdWU6IiJ9KX0pKX0pKX0pKSxfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChpKSwib25LZXlEb3duIiwoZnVuY3Rpb24ocyl7IkVudGVyIj09PXMua2V5JiZpLmZvcmNlTm90aWZ5KHMpO3ZhciBvPWkucHJvcHMub25LZXlEb3duO28mJihzLnBlcnNpc3QoKSxvKHMpKX0pKSxfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChpKSwib25CbHVyIiwoZnVuY3Rpb24ocyl7aS5mb3JjZU5vdGlmeShzKTt2YXIgbz1pLnByb3BzLm9uQmx1cjtvJiYocy5wZXJzaXN0KCksbyhzKSl9KSksX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoaSksImNyZWF0ZU5vdGlmaWVyIiwoZnVuY3Rpb24ocyl7aWYoczwwKWkubm90aWZ5PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O2Vsc2UgaWYoMD09PXMpaS5ub3RpZnk9aS5kb05vdGlmeTtlbHNle3ZhciBvPSgwLHUuZGVmYXVsdCkoKGZ1bmN0aW9uKHMpe2kuaXNEZWJvdW5jaW5nPSExLGkuZG9Ob3RpZnkocyl9KSxzKTtpLm5vdGlmeT1mdW5jdGlvbihzKXtpLmlzRGVib3VuY2luZz0hMCxvKHMpfSxpLmZsdXNoPWZ1bmN0aW9uKCl7cmV0dXJuIG8uZmx1c2goKX0saS5jYW5jZWw9ZnVuY3Rpb24oKXtpLmlzRGVib3VuY2luZz0hMSxvLmNhbmNlbCgpfX19KSksX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoaSksImRvTm90aWZ5IiwoZnVuY3Rpb24oKXtpLnByb3BzLm9uQ2hhbmdlLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfSkpLF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKGkpLCJmb3JjZU5vdGlmeSIsKGZ1bmN0aW9uKHMpe3ZhciBvPWkucHJvcHMuZGVib3VuY2VUaW1lb3V0O2lmKGkuaXNEZWJvdW5jaW5nfHwhKG8+MCkpe2kuY2FuY2VsJiZpLmNhbmNlbCgpO3ZhciBhPWkuc3RhdGUudmFsdWUsdT1pLnByb3BzLm1pbkxlbmd0aDthLmxlbmd0aD49dT9pLmRvTm90aWZ5KHMpOmkuZG9Ob3RpZnkoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LHMpLHt9LHt0YXJnZXQ6X29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LHMudGFyZ2V0KSx7fSx7dmFsdWU6YX0pfSkpfX0pKSxpLmlzRGVib3VuY2luZz0hMSxpLnN0YXRlPXt2YWx1ZTp2b2lkIDA9PT1zLnZhbHVlfHxudWxsPT09cy52YWx1ZT8iIjpzLnZhbHVlfTt2YXIgYT1pLnByb3BzLmRlYm91bmNlVGltZW91dDtyZXR1cm4gaS5jcmVhdGVOb3RpZmllcihhKSxpfXJldHVybiBmdW5jdGlvbiBfY3JlYXRlQ2xhc3MocyxvLGkpe3JldHVybiBvJiZfZGVmaW5lUHJvcGVydGllcyhzLnByb3RvdHlwZSxvKSxpJiZfZGVmaW5lUHJvcGVydGllcyhzLGkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHN9KERlYm91bmNlSW5wdXQsW3trZXk6ImNvbXBvbmVudERpZFVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHMpe2lmKCF0aGlzLmlzRGVib3VuY2luZyl7dmFyIG89dGhpcy5wcm9wcyxpPW8udmFsdWUsYT1vLmRlYm91bmNlVGltZW91dCx1PXMuZGVib3VuY2VUaW1lb3V0LF89cy52YWx1ZSx3PXRoaXMuc3RhdGUudmFsdWU7dm9pZCAwIT09aSYmXyE9PWkmJnchPT1pJiZ0aGlzLnNldFN0YXRlKHt2YWx1ZTppfSksYSE9PXUmJnRoaXMuY3JlYXRlTm90aWZpZXIoYSl9fX0se2tleToiY29tcG9uZW50V2lsbFVubW91bnQiLHZhbHVlOmZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCl7dGhpcy5mbHVzaCYmdGhpcy5mbHVzaCgpfX0se2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbiByZW5kZXIoKXt2YXIgcyxvLGk9dGhpcy5wcm9wcyx1PWkuZWxlbWVudCx3PShpLm9uQ2hhbmdlLGkudmFsdWUsaS5taW5MZW5ndGgsaS5kZWJvdW5jZVRpbWVvdXQsaS5mb3JjZU5vdGlmeUJ5RW50ZXIpLHg9aS5mb3JjZU5vdGlmeU9uQmx1cixDPWkub25LZXlEb3duLGo9aS5vbkJsdXIsTD1pLmlucHV0UmVmLEI9X29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKGksXyksJD10aGlzLnN0YXRlLnZhbHVlO3M9dz97b25LZXlEb3duOnRoaXMub25LZXlEb3dufTpDP3tvbktleURvd246Q306e30sbz14P3tvbkJsdXI6dGhpcy5vbkJsdXJ9Omo/e29uQmx1cjpqfTp7fTt2YXIgVj1MP3tyZWY6TH06e307cmV0dXJuIGEuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHUsX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSxCKSx7fSx7b25DaGFuZ2U6dGhpcy5vbkNoYW5nZSx2YWx1ZTokfSxzKSxvKSxWKSl9fV0pLERlYm91bmNlSW5wdXR9KGEuZGVmYXVsdC5QdXJlQ29tcG9uZW50KTtvLkRlYm91bmNlSW5wdXQ9dyxfZGVmaW5lUHJvcGVydHkodywiZGVmYXVsdFByb3BzIix7ZWxlbWVudDoiaW5wdXQiLHR5cGU6InRleHQiLG9uS2V5RG93bjp2b2lkIDAsb25CbHVyOnZvaWQgMCx2YWx1ZTp2b2lkIDAsbWluTGVuZ3RoOjAsZGVib3VuY2VUaW1lb3V0OjEwMCxmb3JjZU5vdGlmeUJ5RW50ZXI6ITAsZm9yY2VOb3RpZnlPbkJsdXI6ITAsaW5wdXRSZWY6dm9pZCAwfSl9LDgxOTE5OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg0ODI4NykuQnVmZmVyO2Z1bmN0aW9uIGlzU3BlY2lmaWNWYWx1ZShzKXtyZXR1cm4gcyBpbnN0YW5jZW9mIGF8fHMgaW5zdGFuY2VvZiBEYXRlfHxzIGluc3RhbmNlb2YgUmVnRXhwfWZ1bmN0aW9uIGNsb25lU3BlY2lmaWNWYWx1ZShzKXtpZihzIGluc3RhbmNlb2YgYSl7dmFyIG89YS5hbGxvYz9hLmFsbG9jKHMubGVuZ3RoKTpuZXcgYShzLmxlbmd0aCk7cmV0dXJuIHMuY29weShvKSxvfWlmKHMgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBuZXcgRGF0ZShzLmdldFRpbWUoKSk7aWYocyBpbnN0YW5jZW9mIFJlZ0V4cClyZXR1cm4gbmV3IFJlZ0V4cChzKTt0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgc2l0dWF0aW9uIil9ZnVuY3Rpb24gZGVlcENsb25lQXJyYXkocyl7dmFyIG89W107cmV0dXJuIHMuZm9yRWFjaCgoZnVuY3Rpb24ocyxpKXsib2JqZWN0Ij09dHlwZW9mIHMmJm51bGwhPT1zP0FycmF5LmlzQXJyYXkocyk/b1tpXT1kZWVwQ2xvbmVBcnJheShzKTppc1NwZWNpZmljVmFsdWUocyk/b1tpXT1jbG9uZVNwZWNpZmljVmFsdWUocyk6b1tpXT11KHt9LHMpOm9baV09c30pKSxvfWZ1bmN0aW9uIHNhZmVHZXRQcm9wZXJ0eShzLG8pe3JldHVybiJfX3Byb3RvX18iPT09bz92b2lkIDA6c1tvXX12YXIgdT1zLmV4cG9ydHM9ZnVuY3Rpb24oKXtpZihhcmd1bWVudHMubGVuZ3RoPDF8fCJvYmplY3QiIT10eXBlb2YgYXJndW1lbnRzWzBdKXJldHVybiExO2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4gYXJndW1lbnRzWzBdO3ZhciBzLG8saT1hcmd1bWVudHNbMF07cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKS5mb3JFYWNoKChmdW5jdGlvbihhKXsib2JqZWN0IiE9dHlwZW9mIGF8fG51bGw9PT1hfHxBcnJheS5pc0FycmF5KGEpfHxPYmplY3Qua2V5cyhhKS5mb3JFYWNoKChmdW5jdGlvbihfKXtyZXR1cm4gbz1zYWZlR2V0UHJvcGVydHkoaSxfKSwocz1zYWZlR2V0UHJvcGVydHkoYSxfKSk9PT1pP3ZvaWQgMDoib2JqZWN0IiE9dHlwZW9mIHN8fG51bGw9PT1zP3ZvaWQoaVtfXT1zKTpBcnJheS5pc0FycmF5KHMpP3ZvaWQoaVtfXT1kZWVwQ2xvbmVBcnJheShzKSk6aXNTcGVjaWZpY1ZhbHVlKHMpP3ZvaWQoaVtfXT1jbG9uZVNwZWNpZmljVmFsdWUocykpOiJvYmplY3QiIT10eXBlb2Ygb3x8bnVsbD09PW98fEFycmF5LmlzQXJyYXkobyk/dm9pZChpW19dPXUoe30scykpOnZvaWQoaVtfXT11KG8scykpfSkpfSkpLGl9fSw4MjA0ODoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoMTEwOTEpLHU9aSg4ODI4MCksXz1pKDE1OTcyKSx3PWkoNzkxOTIpLHg9aSgxOTU5NSksQz1pKDU4MDc1KSxqPWkoNjE2MjYpLEw9aSg3NTgxNyksQj1pKDM5MjU5KSwkPWkoODU4ODQpLFY9aSgyNDgyMyksVT1pKDMyMDk2KSx6PWkoNzYyNjQpKCJ0b1N0cmluZ1RhZyIpLFk9RXJyb3IsWj1bXS5wdXNoLGVlPWZ1bmN0aW9uIEFnZ3JlZ2F0ZUVycm9yKHMsbyl7dmFyIGksYT11KGllLHRoaXMpO3c/aT13KG5ldyBZLGE/Xyh0aGlzKTppZSk6KGk9YT90aGlzOkMoaWUpLGooaSx6LCJFcnJvciIpKSx2b2lkIDAhPT1vJiZqKGksIm1lc3NhZ2UiLFUobykpLCQoaSxlZSxpLnN0YWNrLDEpLGFyZ3VtZW50cy5sZW5ndGg+MiYmQihpLGFyZ3VtZW50c1syXSk7dmFyIHg9W107cmV0dXJuIFYocyxaLHt0aGF0Onh9KSxqKGksImVycm9ycyIseCksaX07dz93KGVlLFkpOngoZWUsWSx7bmFtZTohMH0pO3ZhciBpZT1lZS5wcm90b3R5cGU9QyhZLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6TCgxLGVlKSxtZXNzYWdlOkwoMSwiIiksbmFtZTpMKDEsIkFnZ3JlZ2F0ZUVycm9yIil9KTthKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsYXJpdHk6Mn0se0FnZ3JlZ2F0ZUVycm9yOmVlfSl9LDgyMTU5OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg2MjI1MCksdT1pKDQ2NDApLF89VHlwZUVycm9yO3MuZXhwb3J0cz1mdW5jdGlvbihzKXtpZihhKHMpKXJldHVybiBzO3Rocm93IG5ldyBfKHUocykrIiBpcyBub3QgYSBmdW5jdGlvbiIpfX0sODIxOTk6KHMsbyxpKT0+e3ZhciBhPWkoMTQ1MjgpLHU9aSg1NjQ0OSk7cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VHZXRBbGxLZXlzKHMsbyxpKXt2YXIgXz1vKHMpO3JldHVybiB1KHMpP186YShfLGkocykpfX0sODIyNjE6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGE9X2ludGVyb3BSZXF1aXJlRGVmYXVsdChpKDk0MDQpKSx1PV9pbnRlcm9wUmVxdWlyZURlZmF1bHQoaSg0ODU5MCkpO2Z1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocyl7cmV0dXJuIHMmJnMuX19lc01vZHVsZT9zOntkZWZhdWx0OnN9fW8uZGVmYXVsdD1mdW5jdGlvbihzLG8saSl7dmFyIF89T2JqZWN0LmtleXMobyk7aWYoIV8ubGVuZ3RoKXJldHVybiJTdG9yZSBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgcmVkdWNlci4gTWFrZSBzdXJlIHRoZSBhcmd1bWVudCBwYXNzZWQgdG8gY29tYmluZVJlZHVjZXJzIGlzIGFuIG9iamVjdCB3aG9zZSB2YWx1ZXMgYXJlIHJlZHVjZXJzLiI7dmFyIHc9KDAsdS5kZWZhdWx0KShpKTtpZihhLmRlZmF1bHQuaXNJbW11dGFibGU/IWEuZGVmYXVsdC5pc0ltbXV0YWJsZShzKTohYS5kZWZhdWx0Lkl0ZXJhYmxlLmlzSXRlcmFibGUocykpcmV0dXJuIlRoZSAiK3crJyBpcyBvZiB1bmV4cGVjdGVkIHR5cGUuIEV4cGVjdGVkIGFyZ3VtZW50IHRvIGJlIGFuIGluc3RhbmNlIG9mIEltbXV0YWJsZS5Db2xsZWN0aW9uIG9yIEltbXV0YWJsZS5SZWNvcmQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6ICInK18uam9pbignIiwgIicpKyciLic7dmFyIHg9cy50b1NlcSgpLmtleVNlcSgpLnRvQXJyYXkoKS5maWx0ZXIoKGZ1bmN0aW9uKHMpe3JldHVybiFvLmhhc093blByb3BlcnR5KHMpfSkpO3JldHVybiB4Lmxlbmd0aD4wPyJVbmV4cGVjdGVkICIrKDE9PT14Lmxlbmd0aD8icHJvcGVydHkiOiJwcm9wZXJ0aWVzIikrJyAiJyt4LmpvaW4oJyIsICInKSsnIiBmb3VuZCBpbiAnK3crJy4gRXhwZWN0ZWQgdG8gZmluZCBvbmUgb2YgdGhlIGtub3duIHJlZHVjZXIgcHJvcGVydHkgbmFtZXMgaW5zdGVhZDogIicrXy5qb2luKCciLCAiJykrJyIuIFVuZXhwZWN0ZWQgcHJvcGVydGllcyB3aWxsIGJlIGlnbm9yZWQuJzpudWxsfSxzLmV4cG9ydHM9by5kZWZhdWx0fSw4MjgxOToocyxvLGkpPT57dmFyIGE9aSgzOTM0NCksdT1pKDIzODA1KTtzLmV4cG9ydHM9ZnVuY3Rpb24gY3JlYXRlQ3RvcihzKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1hcmd1bWVudHM7c3dpdGNoKG8ubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIG5ldyBzO2Nhc2UgMTpyZXR1cm4gbmV3IHMob1swXSk7Y2FzZSAyOnJldHVybiBuZXcgcyhvWzBdLG9bMV0pO2Nhc2UgMzpyZXR1cm4gbmV3IHMob1swXSxvWzFdLG9bMl0pO2Nhc2UgNDpyZXR1cm4gbmV3IHMob1swXSxvWzFdLG9bMl0sb1szXSk7Y2FzZSA1OnJldHVybiBuZXcgcyhvWzBdLG9bMV0sb1syXSxvWzNdLG9bNF0pO2Nhc2UgNjpyZXR1cm4gbmV3IHMob1swXSxvWzFdLG9bMl0sb1szXSxvWzRdLG9bNV0pO2Nhc2UgNzpyZXR1cm4gbmV3IHMob1swXSxvWzFdLG9bMl0sb1szXSxvWzRdLG9bNV0sb1s2XSl9dmFyIGk9YShzLnByb3RvdHlwZSksXz1zLmFwcGx5KGksbyk7cmV0dXJuIHUoXyk/XzppfX19LDgyODkwOihzLG8saSk9Pnt2YXIgYT1pKDU2Njk4KSx1PWkoOTAzOTIpLF89aSg5Mjg2MSkuQnVmZmVyLHc9WzExMTYzNTI0MDgsMzYwOTc2NzQ1OCwxODk5NDQ3NDQxLDYwMjg5MTcyNSwzMDQ5MzIzNDcxLDM5NjQ0ODQzOTksMzkyMTAwOTU3MywyMTczMjk1NTQ4LDk2MTk4NzE2Myw0MDgxNjI4NDcyLDE1MDg5NzA5OTMsMzA1MzgzNDI2NSwyNDUzNjM1NzQ4LDI5Mzc2NzE1NzksMjg3MDc2MzIyMSwzNjY0NjA5NTYwLDM2MjQzODEwODAsMjczNDg4MzM5NCwzMTA1OTg0MDEsMTE2NDk5NjU0Miw2MDcyMjUyNzgsMTMyMzYxMDc2NCwxNDI2ODgxOTg3LDM1OTAzMDQ5OTQsMTkyNTA3ODM4OCw0MDY4MTgyMzgzLDIxNjIwNzgyMDYsOTkxMzM2MTEzLDI2MTQ4ODgxMDMsNjMzODAzMzE3LDMyNDgyMjI1ODAsMzQ3OTc3NDg2OCwzODM1MzkwNDAxLDI2NjY2MTM0NTgsNDAyMjIyNDc3NCw5NDQ3MTExMzksMjY0MzQ3MDc4LDIzNDEyNjI3NzMsNjA0ODA3NjI4LDIwMDc4MDA5MzMsNzcwMjU1OTgzLDE0OTU5OTA5MDEsMTI0OTE1MDEyMiwxODU2NDMxMjM1LDE1NTUwODE2OTIsMzE3NTIxODEzMiwxOTk2MDY0OTg2LDIxOTg5NTA4MzcsMjU1NDIyMDg4MiwzOTk5NzE5MzM5LDI4MjE4MzQzNDksNzY2Nzg0MDE2LDI5NTI5OTY4MDgsMjU2NjU5NDg3OSwzMjEwMzEzNjcxLDMyMDMzMzc5NTYsMzMzNjU3MTg5MSwxMDM0NDU3MDI2LDM1ODQ1Mjg3MTEsMjQ2Njk0ODkwMSwxMTM5MjY5OTMsMzc1ODMyNjM4MywzMzgyNDE4OTUsMTY4NzE3OTM2LDY2NjMwNzIwNSwxMTg4MTc5OTY0LDc3MzUyOTkxMiwxNTQ2MDQ1NzM0LDEyOTQ3NTczNzIsMTUyMjgwNTQ4NSwxMzk2MTgyMjkxLDI2NDM4MzM4MjMsMTY5NTE4MzcwMCwyMzQzNTI3MzkwLDE5ODY2NjEwNTEsMTAxNDQ3NzQ4MCwyMTc3MDI2MzUwLDEyMDY3NTkxNDIsMjQ1Njk1NjAzNywzNDQwNzc2MjcsMjczMDQ4NTkyMSwxMjkwODYzNDYwLDI4MjAzMDI0MTEsMzE1ODQ1NDI3MywzMjU5NzMwODAwLDM1MDU5NTI2NTcsMzM0NTc2NDc3MSwxMDYyMTcwMDgsMzUxNjA2NTgxNywzNjA2MDA4MzQ0LDM2MDAzNTI4MDQsMTQzMjcyNTc3Niw0MDk0NTcxOTA5LDE0NjcwMzE1OTQsMjc1NDIzMzQ0LDg1MTE2OTcyMCw0MzAyMjc3MzQsMzEwMDgyMzc1Miw1MDY5NDg2MTYsMTM2MzI1ODE5NSw2NTkwNjA1NTYsMzc1MDY4NTU5Myw4ODM5OTc4NzcsMzc4NTA1MDI4MCw5NTgxMzk1NzEsMzMxODMwNzQyNywxMzIyODIyMjE4LDM4MTI3MjM0MDMsMTUzNzAwMjA2MywyMDAzMDM0OTk1LDE3NDc4NzM3NzksMzYwMjAzNjg5OSwxOTU1NTYyMjIyLDE1NzU5OTAwMTIsMjAyNDEwNDgxNSwxMTI1NTkyOTI4LDIyMjc3MzA0NTIsMjcxNjkwNDMwNiwyMzYxODUyNDI0LDQ0Mjc3NjA0NCwyNDI4NDM2NDc0LDU5MzY5ODM0NCwyNzU2NzM0MTg3LDM3MzMxMTAyNDksMzIwNDAzMTQ3OSwyOTk5MzUxNTczLDMzMjkzMjUyOTgsMzgxNTkyMDQyNywzMzkxNTY5NjE0LDM5MjgzODM5MDAsMzUxNTI2NzI3MSw1NjYyODA3MTEsMzk0MDE4NzYwNiwzNDU0MDY5NTM0LDQxMTg2MzAyNzEsNDAwMDIzOTk5MiwxMTY0MTg0NzQsMTkxNDEzODU1NCwxNzQyOTI0MjEsMjczMTA1NTI3MCwyODkzODAzNTYsMzIwMzk5MzAwNiw0NjAzOTMyNjksMzIwNjIwMzE1LDY4NTQ3MTczMyw1ODc0OTY4MzYsODUyMTQyOTcxLDEwODY3OTI4NTEsMTAxNzAzNjI5OCwzNjU1NDMxMDAsMTEyNjAwMDU4MCwyNjE4Mjk3Njc2LDEyODgwMzM0NzAsMzQwOTg1NTE1OCwxNTAxNTA1OTQ4LDQyMzQ1MDk4NjYsMTYwNzE2NzkxNSw5ODcxNjc0NjgsMTgxNjQwMjMxNiwxMjQ2MTg5NTkxXSx4PW5ldyBBcnJheSgxNjApO2Z1bmN0aW9uIFNoYTUxMigpe3RoaXMuaW5pdCgpLHRoaXMuX3c9eCx1LmNhbGwodGhpcywxMjgsMTEyKX1mdW5jdGlvbiBDaChzLG8saSl7cmV0dXJuIGlecyYob15pKX1mdW5jdGlvbiBtYWoocyxvLGkpe3JldHVybiBzJm98aSYoc3xvKX1mdW5jdGlvbiBzaWdtYTAocyxvKXtyZXR1cm4ocz4+PjI4fG88PDQpXihvPj4+MnxzPDwzMCleKG8+Pj43fHM8PDI1KX1mdW5jdGlvbiBzaWdtYTEocyxvKXtyZXR1cm4ocz4+PjE0fG88PDE4KV4ocz4+PjE4fG88PDE0KV4obz4+Pjl8czw8MjMpfWZ1bmN0aW9uIEdhbW1hMChzLG8pe3JldHVybihzPj4+MXxvPDwzMSleKHM+Pj44fG88PDI0KV5zPj4+N31mdW5jdGlvbiBHYW1tYTBsKHMsbyl7cmV0dXJuKHM+Pj4xfG88PDMxKV4ocz4+Pjh8bzw8MjQpXihzPj4+N3xvPDwyNSl9ZnVuY3Rpb24gR2FtbWExKHMsbyl7cmV0dXJuKHM+Pj4xOXxvPDwxMyleKG8+Pj4yOXxzPDwzKV5zPj4+Nn1mdW5jdGlvbiBHYW1tYTFsKHMsbyl7cmV0dXJuKHM+Pj4xOXxvPDwxMyleKG8+Pj4yOXxzPDwzKV4ocz4+PjZ8bzw8MjYpfWZ1bmN0aW9uIGdldENhcnJ5KHMsbyl7cmV0dXJuIHM+Pj4wPG8+Pj4wPzE6MH1hKFNoYTUxMix1KSxTaGE1MTIucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWg9MTc3OTAzMzcwMyx0aGlzLl9iaD0zMTQ0MTM0Mjc3LHRoaXMuX2NoPTEwMTM5MDQyNDIsdGhpcy5fZGg9Mjc3MzQ4MDc2Mix0aGlzLl9laD0xMzU5ODkzMTE5LHRoaXMuX2ZoPTI2MDA4MjI5MjQsdGhpcy5fZ2g9NTI4NzM0NjM1LHRoaXMuX2hoPTE1NDE0NTkyMjUsdGhpcy5fYWw9NDA4OTIzNTcyMCx0aGlzLl9ibD0yMjI3ODczNTk1LHRoaXMuX2NsPTQyNzExNzU3MjMsdGhpcy5fZGw9MTU5NTc1MDEyOSx0aGlzLl9lbD0yOTE3NTY1MTM3LHRoaXMuX2ZsPTcyNTUxMTE5OSx0aGlzLl9nbD00MjE1Mzg5NTQ3LHRoaXMuX2hsPTMyNzAzMzIwOSx0aGlzfSxTaGE1MTIucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24ocyl7Zm9yKHZhciBvPXRoaXMuX3csaT0wfHRoaXMuX2FoLGE9MHx0aGlzLl9iaCx1PTB8dGhpcy5fY2gsXz0wfHRoaXMuX2RoLHg9MHx0aGlzLl9laCxDPTB8dGhpcy5fZmgsaj0wfHRoaXMuX2doLEw9MHx0aGlzLl9oaCxCPTB8dGhpcy5fYWwsJD0wfHRoaXMuX2JsLFY9MHx0aGlzLl9jbCxVPTB8dGhpcy5fZGwsej0wfHRoaXMuX2VsLFk9MHx0aGlzLl9mbCxaPTB8dGhpcy5fZ2wsZWU9MHx0aGlzLl9obCxpZT0wO2llPDMyO2llKz0yKW9baWVdPXMucmVhZEludDMyQkUoNCppZSksb1tpZSsxXT1zLnJlYWRJbnQzMkJFKDQqaWUrNCk7Zm9yKDtpZTwxNjA7aWUrPTIpe3ZhciBhZT1vW2llLTMwXSxjZT1vW2llLTMwKzFdLGxlPUdhbW1hMChhZSxjZSkscGU9R2FtbWEwbChjZSxhZSksZGU9R2FtbWExKGFlPW9baWUtNF0sY2U9b1tpZS00KzFdKSxmZT1HYW1tYTFsKGNlLGFlKSx5ZT1vW2llLTE0XSxiZT1vW2llLTE0KzFdLF9lPW9baWUtMzJdLFNlPW9baWUtMzIrMV0sd2U9cGUrYmV8MCx4ZT1sZSt5ZStnZXRDYXJyeSh3ZSxwZSl8MDt4ZT0oeGU9eGUrZGUrZ2V0Q2Fycnkod2U9d2UrZmV8MCxmZSl8MCkrX2UrZ2V0Q2Fycnkod2U9d2UrU2V8MCxTZSl8MCxvW2llXT14ZSxvW2llKzFdPXdlfWZvcih2YXIgUGU9MDtQZTwxNjA7UGUrPTIpe3hlPW9bUGVdLHdlPW9bUGUrMV07dmFyIFRlPW1haihpLGEsdSksUmU9bWFqKEIsJCxWKSwkZT1zaWdtYTAoaSxCKSxxZT1zaWdtYTAoQixpKSx6ZT1zaWdtYTEoeCx6KSxXZT1zaWdtYTEoeix4KSxIZT13W1BlXSxZZT13W1BlKzFdLFhlPUNoKHgsQyxqKSxRZT1DaCh6LFksWiksZXQ9ZWUrV2V8MCx0dD1MK3plK2dldENhcnJ5KGV0LGVlKXwwO3R0PSh0dD0odHQ9dHQrWGUrZ2V0Q2FycnkoZXQ9ZXQrUWV8MCxRZSl8MCkrSGUrZ2V0Q2FycnkoZXQ9ZXQrWWV8MCxZZSl8MCkreGUrZ2V0Q2FycnkoZXQ9ZXQrd2V8MCx3ZSl8MDt2YXIgcnQ9cWUrUmV8MCxudD0kZStUZStnZXRDYXJyeShydCxxZSl8MDtMPWosZWU9WixqPUMsWj1ZLEM9eCxZPXoseD1fK3R0K2dldENhcnJ5KHo9VStldHwwLFUpfDAsXz11LFU9Vix1PWEsVj0kLGE9aSwkPUIsaT10dCtudCtnZXRDYXJyeShCPWV0K3J0fDAsZXQpfDB9dGhpcy5fYWw9dGhpcy5fYWwrQnwwLHRoaXMuX2JsPXRoaXMuX2JsKyR8MCx0aGlzLl9jbD10aGlzLl9jbCtWfDAsdGhpcy5fZGw9dGhpcy5fZGwrVXwwLHRoaXMuX2VsPXRoaXMuX2VsK3p8MCx0aGlzLl9mbD10aGlzLl9mbCtZfDAsdGhpcy5fZ2w9dGhpcy5fZ2wrWnwwLHRoaXMuX2hsPXRoaXMuX2hsK2VlfDAsdGhpcy5fYWg9dGhpcy5fYWgraStnZXRDYXJyeSh0aGlzLl9hbCxCKXwwLHRoaXMuX2JoPXRoaXMuX2JoK2ErZ2V0Q2FycnkodGhpcy5fYmwsJCl8MCx0aGlzLl9jaD10aGlzLl9jaCt1K2dldENhcnJ5KHRoaXMuX2NsLFYpfDAsdGhpcy5fZGg9dGhpcy5fZGgrXytnZXRDYXJyeSh0aGlzLl9kbCxVKXwwLHRoaXMuX2VoPXRoaXMuX2VoK3grZ2V0Q2FycnkodGhpcy5fZWwseil8MCx0aGlzLl9maD10aGlzLl9maCtDK2dldENhcnJ5KHRoaXMuX2ZsLFkpfDAsdGhpcy5fZ2g9dGhpcy5fZ2graitnZXRDYXJyeSh0aGlzLl9nbCxaKXwwLHRoaXMuX2hoPXRoaXMuX2hoK0wrZ2V0Q2FycnkodGhpcy5faGwsZWUpfDB9LFNoYTUxMi5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgcz1fLmFsbG9jVW5zYWZlKDY0KTtmdW5jdGlvbiB3cml0ZUludDY0QkUobyxpLGEpe3Mud3JpdGVJbnQzMkJFKG8sYSkscy53cml0ZUludDMyQkUoaSxhKzQpfXJldHVybiB3cml0ZUludDY0QkUodGhpcy5fYWgsdGhpcy5fYWwsMCksd3JpdGVJbnQ2NEJFKHRoaXMuX2JoLHRoaXMuX2JsLDgpLHdyaXRlSW50NjRCRSh0aGlzLl9jaCx0aGlzLl9jbCwxNiksd3JpdGVJbnQ2NEJFKHRoaXMuX2RoLHRoaXMuX2RsLDI0KSx3cml0ZUludDY0QkUodGhpcy5fZWgsdGhpcy5fZWwsMzIpLHdyaXRlSW50NjRCRSh0aGlzLl9maCx0aGlzLl9mbCw0MCksd3JpdGVJbnQ2NEJFKHRoaXMuX2doLHRoaXMuX2dsLDQ4KSx3cml0ZUludDY0QkUodGhpcy5faGgsdGhpcy5faGwsNTYpLHN9LHMuZXhwb3J0cz1TaGE1MTJ9LDgzMTIwOihzLG8saSk9Pnt2YXIgYT1pKDE0NTI4KSx1PWkoNDU4OTEpO3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlRmxhdHRlbihzLG8saSxfLHcpe3ZhciB4PS0xLEM9cy5sZW5ndGg7Zm9yKGl8fChpPXUpLHd8fCh3PVtdKTsrK3g8Qzspe3ZhciBqPXNbeF07bz4wJiZpKGopP28+MT9iYXNlRmxhdHRlbihqLG8tMSxpLF8sdyk6YSh3LGopOl98fCh3W3cubGVuZ3RoXT1qKX1yZXR1cm4gd319LDgzMTQxOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg5Mjg2MSkuQnVmZmVyLHU9YS5pc0VuY29kaW5nfHxmdW5jdGlvbihzKXtzd2l0Y2goKHM9IiIrcykmJnMudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6Y2FzZSJyYXciOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fTtmdW5jdGlvbiBTdHJpbmdEZWNvZGVyKHMpe3ZhciBvO3N3aXRjaCh0aGlzLmVuY29kaW5nPWZ1bmN0aW9uIG5vcm1hbGl6ZUVuY29kaW5nKHMpe3ZhciBvPWZ1bmN0aW9uIF9ub3JtYWxpemVFbmNvZGluZyhzKXtpZighcylyZXR1cm4idXRmOCI7Zm9yKHZhciBvOzspc3dpdGNoKHMpe2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuInV0ZjgiO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4idXRmMTZsZSI7Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4ibGF0aW4xIjtjYXNlImJhc2U2NCI6Y2FzZSJhc2NpaSI6Y2FzZSJoZXgiOnJldHVybiBzO2RlZmF1bHQ6aWYobylyZXR1cm47cz0oIiIrcykudG9Mb3dlckNhc2UoKSxvPSEwfX0ocyk7aWYoInN0cmluZyIhPXR5cGVvZiBvJiYoYS5pc0VuY29kaW5nPT09dXx8IXUocykpKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitzKTtyZXR1cm4gb3x8c30ocyksdGhpcy5lbmNvZGluZyl7Y2FzZSJ1dGYxNmxlIjp0aGlzLnRleHQ9dXRmMTZUZXh0LHRoaXMuZW5kPXV0ZjE2RW5kLG89NDticmVhaztjYXNlInV0ZjgiOnRoaXMuZmlsbExhc3Q9dXRmOEZpbGxMYXN0LG89NDticmVhaztjYXNlImJhc2U2NCI6dGhpcy50ZXh0PWJhc2U2NFRleHQsdGhpcy5lbmQ9YmFzZTY0RW5kLG89MzticmVhaztkZWZhdWx0OnJldHVybiB0aGlzLndyaXRlPXNpbXBsZVdyaXRlLHZvaWQodGhpcy5lbmQ9c2ltcGxlRW5kKX10aGlzLmxhc3ROZWVkPTAsdGhpcy5sYXN0VG90YWw9MCx0aGlzLmxhc3RDaGFyPWEuYWxsb2NVbnNhZmUobyl9ZnVuY3Rpb24gdXRmOENoZWNrQnl0ZShzKXtyZXR1cm4gczw9MTI3PzA6cz4+NT09Nj8yOnM+PjQ9PTE0PzM6cz4+Mz09MzA/NDpzPj42PT0yPy0xOi0yfWZ1bmN0aW9uIHV0ZjhGaWxsTGFzdChzKXt2YXIgbz10aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLGk9ZnVuY3Rpb24gdXRmOENoZWNrRXh0cmFCeXRlcyhzLG8saSl7aWYoMTI4IT0oMTkyJm9bMF0pKXJldHVybiBzLmxhc3ROZWVkPTAsIu+/vSI7aWYocy5sYXN0TmVlZD4xJiZvLmxlbmd0aD4xKXtpZigxMjghPSgxOTImb1sxXSkpcmV0dXJuIHMubGFzdE5lZWQ9MSwi77+9IjtpZihzLmxhc3ROZWVkPjImJm8ubGVuZ3RoPjImJjEyOCE9KDE5MiZvWzJdKSlyZXR1cm4gcy5sYXN0TmVlZD0yLCLvv70ifX0odGhpcyxzKTtyZXR1cm4gdm9pZCAwIT09aT9pOnRoaXMubGFzdE5lZWQ8PXMubGVuZ3RoPyhzLmNvcHkodGhpcy5sYXN0Q2hhcixvLDAsdGhpcy5sYXN0TmVlZCksdGhpcy5sYXN0Q2hhci50b1N0cmluZyh0aGlzLmVuY29kaW5nLDAsdGhpcy5sYXN0VG90YWwpKToocy5jb3B5KHRoaXMubGFzdENoYXIsbywwLHMubGVuZ3RoKSx2b2lkKHRoaXMubGFzdE5lZWQtPXMubGVuZ3RoKSl9ZnVuY3Rpb24gdXRmMTZUZXh0KHMsbyl7aWYoKHMubGVuZ3RoLW8pJTI9PTApe3ZhciBpPXMudG9TdHJpbmcoInV0ZjE2bGUiLG8pO2lmKGkpe3ZhciBhPWkuY2hhckNvZGVBdChpLmxlbmd0aC0xKTtpZihhPj01NTI5NiYmYTw9NTYzMTkpcmV0dXJuIHRoaXMubGFzdE5lZWQ9Mix0aGlzLmxhc3RUb3RhbD00LHRoaXMubGFzdENoYXJbMF09c1tzLmxlbmd0aC0yXSx0aGlzLmxhc3RDaGFyWzFdPXNbcy5sZW5ndGgtMV0saS5zbGljZSgwLC0xKX1yZXR1cm4gaX1yZXR1cm4gdGhpcy5sYXN0TmVlZD0xLHRoaXMubGFzdFRvdGFsPTIsdGhpcy5sYXN0Q2hhclswXT1zW3MubGVuZ3RoLTFdLHMudG9TdHJpbmcoInV0ZjE2bGUiLG8scy5sZW5ndGgtMSl9ZnVuY3Rpb24gdXRmMTZFbmQocyl7dmFyIG89cyYmcy5sZW5ndGg/dGhpcy53cml0ZShzKToiIjtpZih0aGlzLmxhc3ROZWVkKXt2YXIgaT10aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkO3JldHVybiBvK3RoaXMubGFzdENoYXIudG9TdHJpbmcoInV0ZjE2bGUiLDAsaSl9cmV0dXJuIG99ZnVuY3Rpb24gYmFzZTY0VGV4dChzLG8pe3ZhciBpPShzLmxlbmd0aC1vKSUzO3JldHVybiAwPT09aT9zLnRvU3RyaW5nKCJiYXNlNjQiLG8pOih0aGlzLmxhc3ROZWVkPTMtaSx0aGlzLmxhc3RUb3RhbD0zLDE9PT1pP3RoaXMubGFzdENoYXJbMF09c1tzLmxlbmd0aC0xXToodGhpcy5sYXN0Q2hhclswXT1zW3MubGVuZ3RoLTJdLHRoaXMubGFzdENoYXJbMV09c1tzLmxlbmd0aC0xXSkscy50b1N0cmluZygiYmFzZTY0IixvLHMubGVuZ3RoLWkpKX1mdW5jdGlvbiBiYXNlNjRFbmQocyl7dmFyIG89cyYmcy5sZW5ndGg/dGhpcy53cml0ZShzKToiIjtyZXR1cm4gdGhpcy5sYXN0TmVlZD9vK3RoaXMubGFzdENoYXIudG9TdHJpbmcoImJhc2U2NCIsMCwzLXRoaXMubGFzdE5lZWQpOm99ZnVuY3Rpb24gc2ltcGxlV3JpdGUocyl7cmV0dXJuIHMudG9TdHJpbmcodGhpcy5lbmNvZGluZyl9ZnVuY3Rpb24gc2ltcGxlRW5kKHMpe3JldHVybiBzJiZzLmxlbmd0aD90aGlzLndyaXRlKHMpOiIifW8uST1TdHJpbmdEZWNvZGVyLFN0cmluZ0RlY29kZXIucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHMpe2lmKDA9PT1zLmxlbmd0aClyZXR1cm4iIjt2YXIgbyxpO2lmKHRoaXMubGFzdE5lZWQpe2lmKHZvaWQgMD09PShvPXRoaXMuZmlsbExhc3QocykpKXJldHVybiIiO2k9dGhpcy5sYXN0TmVlZCx0aGlzLmxhc3ROZWVkPTB9ZWxzZSBpPTA7cmV0dXJuIGk8cy5sZW5ndGg/bz9vK3RoaXMudGV4dChzLGkpOnRoaXMudGV4dChzLGkpOm98fCIifSxTdHJpbmdEZWNvZGVyLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24gdXRmOEVuZChzKXt2YXIgbz1zJiZzLmxlbmd0aD90aGlzLndyaXRlKHMpOiIiO3JldHVybiB0aGlzLmxhc3ROZWVkP28rIu+/vSI6b30sU3RyaW5nRGVjb2Rlci5wcm90b3R5cGUudGV4dD1mdW5jdGlvbiB1dGY4VGV4dChzLG8pe3ZhciBpPWZ1bmN0aW9uIHV0ZjhDaGVja0luY29tcGxldGUocyxvLGkpe3ZhciBhPW8ubGVuZ3RoLTE7aWYoYTxpKXJldHVybiAwO3ZhciB1PXV0ZjhDaGVja0J5dGUob1thXSk7aWYodT49MClyZXR1cm4gdT4wJiYocy5sYXN0TmVlZD11LTEpLHU7aWYoLS1hPGl8fC0yPT09dSlyZXR1cm4gMDtpZih1PXV0ZjhDaGVja0J5dGUob1thXSksdT49MClyZXR1cm4gdT4wJiYocy5sYXN0TmVlZD11LTIpLHU7aWYoLS1hPGl8fC0yPT09dSlyZXR1cm4gMDtpZih1PXV0ZjhDaGVja0J5dGUob1thXSksdT49MClyZXR1cm4gdT4wJiYoMj09PXU/dT0wOnMubGFzdE5lZWQ9dS0zKSx1O3JldHVybiAwfSh0aGlzLHMsbyk7aWYoIXRoaXMubGFzdE5lZWQpcmV0dXJuIHMudG9TdHJpbmcoInV0ZjgiLG8pO3RoaXMubGFzdFRvdGFsPWk7dmFyIGE9cy5sZW5ndGgtKGktdGhpcy5sYXN0TmVlZCk7cmV0dXJuIHMuY29weSh0aGlzLmxhc3RDaGFyLDAsYSkscy50b1N0cmluZygidXRmOCIsbyxhKX0sU3RyaW5nRGVjb2Rlci5wcm90b3R5cGUuZmlsbExhc3Q9ZnVuY3Rpb24ocyl7aWYodGhpcy5sYXN0TmVlZDw9cy5sZW5ndGgpcmV0dXJuIHMuY29weSh0aGlzLmxhc3RDaGFyLHRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsMCx0aGlzLmxhc3ROZWVkKSx0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcsMCx0aGlzLmxhc3RUb3RhbCk7cy5jb3B5KHRoaXMubGFzdENoYXIsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLHMubGVuZ3RoKSx0aGlzLmxhc3ROZWVkLT1zLmxlbmd0aH19LDgzMjIxOnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gY3JlYXRlQmFzZUZvcihzKXtyZXR1cm4gZnVuY3Rpb24obyxpLGEpe2Zvcih2YXIgdT0tMSxfPU9iamVjdChvKSx3PWEobykseD13Lmxlbmd0aDt4LS07KXt2YXIgQz13W3M/eDorK3VdO2lmKCExPT09aShfW0NdLEMsXykpYnJlYWt9cmV0dXJuIG99fX0sODMzNDk6KHMsbyxpKT0+e3ZhciBhPWkoODIxOTkpLHU9aSg4NjM3NSksXz1pKDM3MjQxKTtzLmV4cG9ydHM9ZnVuY3Rpb24gZ2V0QWxsS2V5c0luKHMpe3JldHVybiBhKHMsXyx1KX19LDgzNDg4OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gaWRlbnRpdHkocyl7cmV0dXJuIHN9fSw4MzY5MzoocyxvLGkpPT57dmFyIGE9aSg2NDg5NCksdT1pKDQwMzQ2KTtzLmV4cG9ydHM9ZnVuY3Rpb24gaXNBcnJheUxpa2VPYmplY3Qocyl7cmV0dXJuIHUocykmJmEocyl9fSw4MzcyOTpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIGFycmF5RWFjaChzLG8pe2Zvcih2YXIgaT0tMSxhPW51bGw9PXM/MDpzLmxlbmd0aDsrK2k8YSYmITEhPT1vKHNbaV0saSxzKTspO3JldHVybiBzfX0sODQwNTg6KHMsbyxpKT0+e3ZhciBhPWkoMTQ3OTIpLHU9aSg0NTUzOSkoKGZ1bmN0aW9uKHMsbyxpKXtyZXR1cm4gbz1vLnRvTG93ZXJDYXNlKCkscysoaT9hKG8pOm8pfSkpO3MuZXhwb3J0cz11fSw4NDE5NToocyxvLGkpPT57dmFyIGE9aSg2Njk3NyksdT1pKDM4ODE2KSxfPXUoKGZ1bmN0aW9uKHMsbyl7cmV0dXJuIGEocywyNTYsdm9pZCAwLHZvaWQgMCx2b2lkIDAsbyl9KSk7cy5leHBvcnRzPV99LDg0MjQ3OnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gc2V0VG9BcnJheShzKXt2YXIgbz0tMSxpPUFycmF5KHMuc2l6ZSk7cmV0dXJuIHMuZm9yRWFjaCgoZnVuY3Rpb24ocyl7aVsrK29dPXN9KSksaX19LDg0NjI5OnM9PntzLmV4cG9ydHM9e319LDg0ODUxOihzLG8saSk9PnsidXNlIHN0cmljdCI7cy5leHBvcnRzPWkoODU0MDEpfSw4NDk3NzoocyxvLGkpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgYT1mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHMpe3JldHVybiBzJiZzLl9fZXNNb2R1bGU/czp7ZGVmYXVsdDpzfX0oaSg5NDA0KSksdT1pKDU1Njc0KTtvLmRlZmF1bHQ9ZnVuY3Rpb24ocyl7dmFyIG89YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOmEuZGVmYXVsdC5NYXAsaT1PYmplY3Qua2V5cyhzKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bygpLF89YXJndW1lbnRzWzFdO3JldHVybiBhLndpdGhNdXRhdGlvbnMoKGZ1bmN0aW9uKG8pe2kuZm9yRWFjaCgoZnVuY3Rpb24oaSl7dmFyIGE9KDAsc1tpXSkoby5nZXQoaSksXyk7KDAsdS52YWxpZGF0ZU5leHRTdGF0ZSkoYSxpLF8pLG8uc2V0KGksYSl9KSl9KSl9fSxzLmV4cG9ydHM9by5kZWZhdWx0fSw4NTAxNToocyxvLGkpPT57dmFyIGE9aSg3MjU1MiksdT1pKDU2NDQ5KSxfPWkoNDAzNDYpO3MuZXhwb3J0cz1mdW5jdGlvbiBpc1N0cmluZyhzKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHN8fCF1KHMpJiZfKHMpJiYiW29iamVjdCBTdHJpbmddIj09YShzKX19LDg1MDg3OihzLG8saSk9Pnt2YXIgYT1pKDMwOTgwKSx1PWkoMzczODEpLF89aSg2MjI4NCksdz1pKDUzNzU4KTtzLmV4cG9ydHM9ZnVuY3Rpb24gaXNMYXppYWJsZShzKXt2YXIgbz1fKHMpLGk9d1tvXTtpZigiZnVuY3Rpb24iIT10eXBlb2YgaXx8IShvIGluIGEucHJvdG90eXBlKSlyZXR1cm4hMTtpZihzPT09aSlyZXR1cm4hMDt2YXIgeD11KGkpO3JldHVybiEheCYmcz09PXhbMF19fSw4NTEwNTpzPT57cy5leHBvcnRzPWNsYXNzIEpTT05TZXJpYWxpc2Vye2NvbnN0cnVjdG9yKHMpe3RoaXMubmFtZXNwYWNlPXN8fG5ldyB0aGlzLk5hbWVzcGFjZX1zZXJpYWxpc2Uocyl7aWYoIShzIGluc3RhbmNlb2YgdGhpcy5uYW1lc3BhY2UuZWxlbWVudHMuRWxlbWVudCkpdGhyb3cgbmV3IFR5cGVFcnJvcihgR2l2ZW4gZWxlbWVudCBcYCR7c31cYCBpcyBub3QgYW4gRWxlbWVudCBpbnN0YW5jZWApO2NvbnN0IG89e2VsZW1lbnQ6cy5lbGVtZW50fTtzLl9tZXRhJiZzLl9tZXRhLmxlbmd0aD4wJiYoby5tZXRhPXRoaXMuc2VyaWFsaXNlT2JqZWN0KHMubWV0YSkpLHMuX2F0dHJpYnV0ZXMmJnMuX2F0dHJpYnV0ZXMubGVuZ3RoPjAmJihvLmF0dHJpYnV0ZXM9dGhpcy5zZXJpYWxpc2VPYmplY3Qocy5hdHRyaWJ1dGVzKSk7Y29uc3QgaT10aGlzLnNlcmlhbGlzZUNvbnRlbnQocy5jb250ZW50KTtyZXR1cm4gdm9pZCAwIT09aSYmKG8uY29udGVudD1pKSxvfWRlc2VyaWFsaXNlKHMpe2lmKCFzLmVsZW1lbnQpdGhyb3cgbmV3IEVycm9yKCJHaXZlbiB2YWx1ZSBpcyBub3QgYW4gb2JqZWN0IGNvbnRhaW5pbmcgYW4gZWxlbWVudCBuYW1lIik7Y29uc3Qgbz1uZXcodGhpcy5uYW1lc3BhY2UuZ2V0RWxlbWVudENsYXNzKHMuZWxlbWVudCkpO28uZWxlbWVudCE9PXMuZWxlbWVudCYmKG8uZWxlbWVudD1zLmVsZW1lbnQpLHMubWV0YSYmdGhpcy5kZXNlcmlhbGlzZU9iamVjdChzLm1ldGEsby5tZXRhKSxzLmF0dHJpYnV0ZXMmJnRoaXMuZGVzZXJpYWxpc2VPYmplY3Qocy5hdHRyaWJ1dGVzLG8uYXR0cmlidXRlcyk7Y29uc3QgaT10aGlzLmRlc2VyaWFsaXNlQ29udGVudChzLmNvbnRlbnQpO3JldHVybiB2b2lkIDA9PT1pJiZudWxsIT09by5jb250ZW50fHwoby5jb250ZW50PWkpLG99c2VyaWFsaXNlQ29udGVudChzKXtpZihzIGluc3RhbmNlb2YgdGhpcy5uYW1lc3BhY2UuZWxlbWVudHMuRWxlbWVudClyZXR1cm4gdGhpcy5zZXJpYWxpc2Uocyk7aWYocyBpbnN0YW5jZW9mIHRoaXMubmFtZXNwYWNlLktleVZhbHVlUGFpcil7Y29uc3Qgbz17a2V5OnRoaXMuc2VyaWFsaXNlKHMua2V5KX07cmV0dXJuIHMudmFsdWUmJihvLnZhbHVlPXRoaXMuc2VyaWFsaXNlKHMudmFsdWUpKSxvfWlmKHMmJnMubWFwKXtpZigwPT09cy5sZW5ndGgpcmV0dXJuO3JldHVybiBzLm1hcCh0aGlzLnNlcmlhbGlzZSx0aGlzKX1yZXR1cm4gc31kZXNlcmlhbGlzZUNvbnRlbnQocyl7aWYocyl7aWYocy5lbGVtZW50KXJldHVybiB0aGlzLmRlc2VyaWFsaXNlKHMpO2lmKHMua2V5KXtjb25zdCBvPW5ldyB0aGlzLm5hbWVzcGFjZS5LZXlWYWx1ZVBhaXIodGhpcy5kZXNlcmlhbGlzZShzLmtleSkpO3JldHVybiBzLnZhbHVlJiYoby52YWx1ZT10aGlzLmRlc2VyaWFsaXNlKHMudmFsdWUpKSxvfWlmKHMubWFwKXJldHVybiBzLm1hcCh0aGlzLmRlc2VyaWFsaXNlLHRoaXMpfXJldHVybiBzfXNlcmlhbGlzZU9iamVjdChzKXtjb25zdCBvPXt9O2lmKHMuZm9yRWFjaCgoKHMsaSk9PntzJiYob1tpLnRvVmFsdWUoKV09dGhpcy5zZXJpYWxpc2UocykpfSkpLDAhPT1PYmplY3Qua2V5cyhvKS5sZW5ndGgpcmV0dXJuIG99ZGVzZXJpYWxpc2VPYmplY3QocyxvKXtPYmplY3Qua2V5cyhzKS5mb3JFYWNoKChpPT57by5zZXQoaSx0aGlzLmRlc2VyaWFsaXNlKHNbaV0pKX0pKX19fSw4NTE2MDoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoOTY1NDApO3ZhciB1PSJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuaXM/T2JqZWN0LmlzOmZ1bmN0aW9uIGlzKHMsbyl7cmV0dXJuIHM9PT1vJiYoMCE9PXN8fDEvcz09MS9vKXx8cyE9cyYmbyE9b30sXz1hLnVzZVN5bmNFeHRlcm5hbFN0b3JlLHc9YS51c2VSZWYseD1hLnVzZUVmZmVjdCxDPWEudXNlTWVtbyxqPWEudXNlRGVidWdWYWx1ZX0sODUyNTA6KHMsbyxpKT0+e3ZhciBhPWkoMzcyMTcpLHU9aSg4NzgwNSksXz1pKDg2NjQ5KSx3PWkoNDI4MjQpLHg9aSgyMzgwNSksQz1pKDM3MjQxKSxqPWkoMTQ5NzQpO3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlTWVyZ2UocyxvLGksTCxCKXtzIT09byYmXyhvLChmdW5jdGlvbihfLEMpe2lmKEJ8fChCPW5ldyBhKSx4KF8pKXcocyxvLEMsaSxiYXNlTWVyZ2UsTCxCKTtlbHNle3ZhciAkPUw/TChqKHMsQyksXyxDKyIiLHMsbyxCKTp2b2lkIDA7dm9pZCAwPT09JCYmKCQ9XyksdShzLEMsJCl9fSksQyl9fSw4NTQwMToocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNDYyKTtzLmV4cG9ydHM9YX0sODU0NjM6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlSXNOYU4ocyl7cmV0dXJuIHMhPXN9fSw4NTU1ODpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VSZWR1Y2UocyxvLGksYSx1KXtyZXR1cm4gdShzLChmdW5jdGlvbihzLHUsXyl7aT1hPyhhPSExLHMpOm8oaSxzLHUsXyl9KSksaX19LDg1NTgyOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg5MjA0NiksdT1pKDQ1OTUxKSxfPWkoNjIyNTApLGFGdW5jdGlvbj1mdW5jdGlvbihzKXtyZXR1cm4gXyhzKT9zOnZvaWQgMH07cy5leHBvcnRzPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9hRnVuY3Rpb24oYVtzXSl8fGFGdW5jdGlvbih1W3NdKTphW3NdJiZhW3NdW29dfHx1W3NdJiZ1W3NdW29dfX0sODU1ODc6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDI2MzExKSx1PWNyZWF0ZShFcnJvcik7ZnVuY3Rpb24gY3JlYXRlKHMpe3JldHVybiBGb3JtYXR0ZWRFcnJvci5kaXNwbGF5TmFtZT1zLmRpc3BsYXlOYW1lfHxzLm5hbWUsRm9ybWF0dGVkRXJyb3I7ZnVuY3Rpb24gRm9ybWF0dGVkRXJyb3Iobyl7cmV0dXJuIG8mJihvPWEuYXBwbHkobnVsbCxhcmd1bWVudHMpKSxuZXcgcyhvKX19cy5leHBvcnRzPXUsdS5ldmFsPWNyZWF0ZShFdmFsRXJyb3IpLHUucmFuZ2U9Y3JlYXRlKFJhbmdlRXJyb3IpLHUucmVmZXJlbmNlPWNyZWF0ZShSZWZlcmVuY2VFcnJvciksdS5zeW50YXg9Y3JlYXRlKFN5bnRheEVycm9yKSx1LnR5cGU9Y3JlYXRlKFR5cGVFcnJvciksdS51cmk9Y3JlYXRlKFVSSUVycm9yKSx1LmNyZWF0ZT1jcmVhdGV9LDg1NzYyOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgxOTA3KSx1PUVycm9yLF89YSgiIi5yZXBsYWNlKSx3PVN0cmluZyhuZXcgdSgienhjYXNkIikuc3RhY2spLHg9L1xuXHMqYXQgW146XSo6W15cbl0qLyxDPXgudGVzdCh3KTtzLmV4cG9ydHM9ZnVuY3Rpb24ocyxvKXtpZihDJiYic3RyaW5nIj09dHlwZW9mIHMmJiF1LnByZXBhcmVTdGFja1RyYWNlKWZvcig7by0tOylzPV8ocyx4LCIiKTtyZXR1cm4gc319LDg1ODE2OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSgzNjEyOCk7cy5leHBvcnRzPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIGFbc118fChhW3NdPW98fHt9KX19LDg1ODg0OihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg2MTYyNiksdT1pKDg1NzYyKSxfPWkoMjM4ODgpLHc9RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U7cy5leHBvcnRzPWZ1bmN0aW9uKHMsbyxpLHgpe18mJih3P3cocyxvKTphKHMsInN0YWNrIix1KGkseCkpKX19LDg2MDA5OihzLG8saSk9PntzPWkubm1kKHMpO3ZhciBhPWkoMzQ4NDApLHU9byYmIW8ubm9kZVR5cGUmJm8sXz11JiZzJiYhcy5ub2RlVHlwZSYmcyx3PV8mJl8uZXhwb3J0cz09PXUmJmEucHJvY2Vzcyx4PWZ1bmN0aW9uKCl7dHJ5e3ZhciBzPV8mJl8ucmVxdWlyZSYmXy5yZXF1aXJlKCJ1dGlsIikudHlwZXM7cmV0dXJuIHN8fHcmJncuYmluZGluZyYmdy5iaW5kaW5nKCJ1dGlsIil9Y2F0Y2gocyl7fX0oKTtzLmV4cG9ydHM9eH0sODYwNDg6cz0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbz17fTtmdW5jdGlvbiBjcmVhdGVFcnJvclR5cGUocyxpLGEpe2F8fChhPUVycm9yKTt2YXIgdT1mdW5jdGlvbihzKXtmdW5jdGlvbiBOb2RlRXJyb3IobyxhLHUpe3JldHVybiBzLmNhbGwodGhpcyxmdW5jdGlvbiBnZXRNZXNzYWdlKHMsbyxhKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGk/aTppKHMsbyxhKX0obyxhLHUpKXx8dGhpc31yZXR1cm4gZnVuY3Rpb24gX2luaGVyaXRzTG9vc2UocyxvKXtzLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG8ucHJvdG90eXBlKSxzLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1zLHMuX19wcm90b19fPW99KE5vZGVFcnJvcixzKSxOb2RlRXJyb3J9KGEpO3UucHJvdG90eXBlLm5hbWU9YS5uYW1lLHUucHJvdG90eXBlLmNvZGU9cyxvW3NdPXV9ZnVuY3Rpb24gb25lT2YocyxvKXtpZihBcnJheS5pc0FycmF5KHMpKXt2YXIgaT1zLmxlbmd0aDtyZXR1cm4gcz1zLm1hcCgoZnVuY3Rpb24ocyl7cmV0dXJuIFN0cmluZyhzKX0pKSxpPjI/Im9uZSBvZiAiLmNvbmNhdChvLCIgIikuY29uY2F0KHMuc2xpY2UoMCxpLTEpLmpvaW4oIiwgIiksIiwgb3IgIikrc1tpLTFdOjI9PT1pPyJvbmUgb2YgIi5jb25jYXQobywiICIpLmNvbmNhdChzWzBdLCIgb3IgIikuY29uY2F0KHNbMV0pOiJvZiAiLmNvbmNhdChvLCIgIikuY29uY2F0KHNbMF0pfXJldHVybiJvZiAiLmNvbmNhdChvLCIgIikuY29uY2F0KFN0cmluZyhzKSl9Y3JlYXRlRXJyb3JUeXBlKCJFUlJfSU5WQUxJRF9PUFRfVkFMVUUiLChmdW5jdGlvbihzLG8pe3JldHVybidUaGUgdmFsdWUgIicrbysnIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gIicrcysnIid9KSxUeXBlRXJyb3IpLGNyZWF0ZUVycm9yVHlwZSgiRVJSX0lOVkFMSURfQVJHX1RZUEUiLChmdW5jdGlvbihzLG8saSl7dmFyIGEsdTtpZigic3RyaW5nIj09dHlwZW9mIG8mJmZ1bmN0aW9uIHN0YXJ0c1dpdGgocyxvLGkpe3JldHVybiBzLnN1YnN0cighaXx8aTwwPzA6K2ksby5sZW5ndGgpPT09b30obywibm90ICIpPyhhPSJtdXN0IG5vdCBiZSIsbz1vLnJlcGxhY2UoL15ub3QgLywiIikpOmE9Im11c3QgYmUiLGZ1bmN0aW9uIGVuZHNXaXRoKHMsbyxpKXtyZXR1cm4odm9pZCAwPT09aXx8aT5zLmxlbmd0aCkmJihpPXMubGVuZ3RoKSxzLnN1YnN0cmluZyhpLW8ubGVuZ3RoLGkpPT09b30ocywiIGFyZ3VtZW50IikpdT0iVGhlICIuY29uY2F0KHMsIiAiKS5jb25jYXQoYSwiICIpLmNvbmNhdChvbmVPZihvLCJ0eXBlIikpO2Vsc2V7dmFyIF89ZnVuY3Rpb24gaW5jbHVkZXMocyxvLGkpe3JldHVybiJudW1iZXIiIT10eXBlb2YgaSYmKGk9MCksIShpK28ubGVuZ3RoPnMubGVuZ3RoKSYmLTEhPT1zLmluZGV4T2YobyxpKX0ocywiLiIpPyJwcm9wZXJ0eSI6ImFyZ3VtZW50Ijt1PSdUaGUgIicuY29uY2F0KHMsJyIgJykuY29uY2F0KF8sIiAiKS5jb25jYXQoYSwiICIpLmNvbmNhdChvbmVPZihvLCJ0eXBlIikpfXJldHVybiB1Kz0iLiBSZWNlaXZlZCB0eXBlICIuY29uY2F0KHR5cGVvZiBpKX0pLFR5cGVFcnJvciksY3JlYXRlRXJyb3JUeXBlKCJFUlJfU1RSRUFNX1BVU0hfQUZURVJfRU9GIiwic3RyZWFtLnB1c2goKSBhZnRlciBFT0YiKSxjcmVhdGVFcnJvclR5cGUoIkVSUl9NRVRIT0RfTk9UX0lNUExFTUVOVEVEIiwoZnVuY3Rpb24ocyl7cmV0dXJuIlRoZSAiK3MrIiBtZXRob2QgaXMgbm90IGltcGxlbWVudGVkIn0pKSxjcmVhdGVFcnJvclR5cGUoIkVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFIiwiUHJlbWF0dXJlIGNsb3NlIiksY3JlYXRlRXJyb3JUeXBlKCJFUlJfU1RSRUFNX0RFU1RST1lFRCIsKGZ1bmN0aW9uKHMpe3JldHVybiJDYW5ub3QgY2FsbCAiK3MrIiBhZnRlciBhIHN0cmVhbSB3YXMgZGVzdHJveWVkIn0pKSxjcmVhdGVFcnJvclR5cGUoIkVSUl9NVUxUSVBMRV9DQUxMQkFDSyIsIkNhbGxiYWNrIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyIpLGNyZWF0ZUVycm9yVHlwZSgiRVJSX1NUUkVBTV9DQU5OT1RfUElQRSIsIkNhbm5vdCBwaXBlLCBub3QgcmVhZGFibGUiKSxjcmVhdGVFcnJvclR5cGUoIkVSUl9TVFJFQU1fV1JJVEVfQUZURVJfRU5EIiwid3JpdGUgYWZ0ZXIgZW5kIiksY3JlYXRlRXJyb3JUeXBlKCJFUlJfU1RSRUFNX05VTExfVkFMVUVTIiwiTWF5IG5vdCB3cml0ZSBudWxsIHZhbHVlcyB0byBzdHJlYW0iLFR5cGVFcnJvciksY3JlYXRlRXJyb3JUeXBlKCJFUlJfVU5LTk9XTl9FTkNPRElORyIsKGZ1bmN0aW9uKHMpe3JldHVybiJVbmtub3duIGVuY29kaW5nOiAiK3N9KSxUeXBlRXJyb3IpLGNyZWF0ZUVycm9yVHlwZSgiRVJSX1NUUkVBTV9VTlNISUZUX0FGVEVSX0VORF9FVkVOVCIsInN0cmVhbS51bnNoaWZ0KCkgYWZ0ZXIgZW5kIGV2ZW50Iikscy5leHBvcnRzLkY9b30sODYyMTU6ZnVuY3Rpb24ocyxvKXt2YXIgaSxhLHU7YT1bXSxpPWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBpc05hdGl2ZVNtb290aFNjcm9sbEVuYWJsZWRPbj1mdW5jdGlvbihzKXtyZXR1cm4gcyYmImdldENvbXB1dGVkU3R5bGUiaW4gd2luZG93JiYic21vb3RoIj09PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHMpWyJzY3JvbGwtYmVoYXZpb3IiXX07aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3d8fCEoImRvY3VtZW50ImluIHdpbmRvdykpcmV0dXJue307dmFyIG1ha2VTY3JvbGxlcj1mdW5jdGlvbihzLG8saSl7dmFyIGE7bz1vfHw5OTksaXx8MD09PWl8fChpPTkpO3ZhciBzZXRTY3JvbGxUaW1lb3V0SWQ9ZnVuY3Rpb24ocyl7YT1zfSxzdG9wU2Nyb2xsPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGEpLHNldFNjcm9sbFRpbWVvdXRJZCgwKX0sZ2V0VG9wV2l0aEVkZ2VPZmZzZXQ9ZnVuY3Rpb24obyl7cmV0dXJuIE1hdGgubWF4KDAscy5nZXRUb3BPZihvKS1pKX0sc2Nyb2xsVG9ZPWZ1bmN0aW9uKGksYSx1KXtpZihzdG9wU2Nyb2xsKCksMD09PWF8fGEmJmE8MHx8aXNOYXRpdmVTbW9vdGhTY3JvbGxFbmFibGVkT24ocy5ib2R5KSlzLnRvWShpKSx1JiZ1KCk7ZWxzZXt2YXIgXz1zLmdldFkoKSx3PU1hdGgubWF4KDAsaSktXyx4PShuZXcgRGF0ZSkuZ2V0VGltZSgpO2E9YXx8TWF0aC5taW4oTWF0aC5hYnModyksbyksZnVuY3Rpb24gbG9vcFNjcm9sbCgpe3NldFNjcm9sbFRpbWVvdXRJZChzZXRUaW1lb3V0KChmdW5jdGlvbigpe3ZhciBvPU1hdGgubWluKDEsKChuZXcgRGF0ZSkuZ2V0VGltZSgpLXgpL2EpLGk9TWF0aC5tYXgoMCxNYXRoLmZsb29yKF8rdyoobzwuNT8yKm8qbzpvKig0LTIqbyktMSkpKTtzLnRvWShpKSxvPDEmJnMuZ2V0SGVpZ2h0KCkraTxzLmJvZHkuc2Nyb2xsSGVpZ2h0P2xvb3BTY3JvbGwoKTooc2V0VGltZW91dChzdG9wU2Nyb2xsLDk5KSx1JiZ1KCkpfSksOSkpfSgpfX0sc2Nyb2xsVG9FbGVtPWZ1bmN0aW9uKHMsbyxpKXtzY3JvbGxUb1koZ2V0VG9wV2l0aEVkZ2VPZmZzZXQocyksbyxpKX0sc2Nyb2xsSW50b1ZpZXc9ZnVuY3Rpb24obyxhLHUpe3ZhciBfPW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0LHc9cy5nZXRUb3BPZihvKStfLHg9cy5nZXRIZWlnaHQoKSxDPXMuZ2V0WSgpLGo9Qyt4O2dldFRvcFdpdGhFZGdlT2Zmc2V0KG8pPEN8fF8raT54P3Njcm9sbFRvRWxlbShvLGEsdSk6dytpPmo/c2Nyb2xsVG9ZKHcteCtpLGEsdSk6dSYmdSgpfSxzY3JvbGxUb0NlbnRlck9mPWZ1bmN0aW9uKG8saSxhLHUpe3Njcm9sbFRvWShNYXRoLm1heCgwLHMuZ2V0VG9wT2Yobyktcy5nZXRIZWlnaHQoKS8yKyhhfHxvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodC8yKSksaSx1KX07cmV0dXJue3NldHVwOmZ1bmN0aW9uKHMsYSl7cmV0dXJuKDA9PT1zfHxzKSYmKG89cyksKDA9PT1hfHxhKSYmKGk9YSkse2RlZmF1bHREdXJhdGlvbjpvLGVkZ2VPZmZzZXQ6aX19LHRvOnNjcm9sbFRvRWxlbSx0b1k6c2Nyb2xsVG9ZLGludG9WaWV3OnNjcm9sbEludG9WaWV3LGNlbnRlcjpzY3JvbGxUb0NlbnRlck9mLHN0b3A6c3RvcFNjcm9sbCxtb3Zpbmc6ZnVuY3Rpb24oKXtyZXR1cm4hIWF9LGdldFk6cy5nZXRZLGdldFRvcE9mOnMuZ2V0VG9wT2Z9fSxzPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxnZXREb2NZPWZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5zY3JvbGxZfHxzLnNjcm9sbFRvcH0sbz1tYWtlU2Nyb2xsZXIoe2JvZHk6ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudHx8ZG9jdW1lbnQuYm9keSx0b1k6ZnVuY3Rpb24ocyl7d2luZG93LnNjcm9sbFRvKDAscyl9LGdldFk6Z2V0RG9jWSxnZXRIZWlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LmlubmVySGVpZ2h0fHxzLmNsaWVudEhlaWdodH0sZ2V0VG9wT2Y6ZnVuY3Rpb24obyl7cmV0dXJuIG8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wK2dldERvY1koKS1zLm9mZnNldFRvcH19KTtpZihvLmNyZWF0ZVNjcm9sbGVyPWZ1bmN0aW9uKG8saSxhKXtyZXR1cm4gbWFrZVNjcm9sbGVyKHtib2R5Om8sdG9ZOmZ1bmN0aW9uKHMpe28uc2Nyb2xsVG9wPXN9LGdldFk6ZnVuY3Rpb24oKXtyZXR1cm4gby5zY3JvbGxUb3B9LGdldEhlaWdodDpmdW5jdGlvbigpe3JldHVybiBNYXRoLm1pbihvLmNsaWVudEhlaWdodCx3aW5kb3cuaW5uZXJIZWlnaHR8fHMuY2xpZW50SGVpZ2h0KX0sZ2V0VG9wT2Y6ZnVuY3Rpb24ocyl7cmV0dXJuIHMub2Zmc2V0VG9wfX0saSxhKX0sImFkZEV2ZW50TGlzdGVuZXIiaW4gd2luZG93JiYhd2luZG93Lm5vWmVuc21vb3RoJiYhaXNOYXRpdmVTbW9vdGhTY3JvbGxFbmFibGVkT24oZG9jdW1lbnQuYm9keSkpe3ZhciBpPSJoaXN0b3J5ImluIHdpbmRvdyYmInB1c2hTdGF0ZSJpbiBoaXN0b3J5LGE9aSYmInNjcm9sbFJlc3RvcmF0aW9uImluIGhpc3Rvcnk7YSYmKGhpc3Rvcnkuc2Nyb2xsUmVzdG9yYXRpb249ImF1dG8iKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKGZ1bmN0aW9uKCl7YSYmKHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aGlzdG9yeS5zY3JvbGxSZXN0b3JhdGlvbj0ibWFudWFsIn0pLDkpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsKGZ1bmN0aW9uKHMpe3Muc3RhdGUmJiJ6ZW5zY3JvbGxZImluIHMuc3RhdGUmJm8udG9ZKHMuc3RhdGUuemVuc2Nyb2xsWSl9KSwhMSkpLHdpbmRvdy5sb2NhdGlvbi5oYXNoJiZzZXRUaW1lb3V0KChmdW5jdGlvbigpe3ZhciBzPW8uc2V0dXAoKS5lZGdlT2Zmc2V0O2lmKHMpe3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCIjIilbMV0pO2lmKGkpe3ZhciBhPU1hdGgubWF4KDAsby5nZXRUb3BPZihpKS1zKSx1PW8uZ2V0WSgpLWE7MDw9dSYmdTw5JiZ3aW5kb3cuc2Nyb2xsVG8oMCxhKX19fSksOSl9KSwhMSk7dmFyIHU9bmV3IFJlZ0V4cCgiKF58XFxzKW5vWmVuc21vb3RoKFxcc3wkKSIpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKGZ1bmN0aW9uKHMpe2Zvcih2YXIgXz1zLnRhcmdldDtfJiYiQSIhPT1fLnRhZ05hbWU7KV89Xy5wYXJlbnROb2RlO2lmKCEoIV98fDEhPT1zLndoaWNofHxzLnNoaWZ0S2V5fHxzLm1ldGFLZXl8fHMuY3RybEtleXx8cy5hbHRLZXkpKXtpZihhKXt2YXIgdz1oaXN0b3J5LnN0YXRlJiYib2JqZWN0Ij09dHlwZW9mIGhpc3Rvcnkuc3RhdGU/aGlzdG9yeS5zdGF0ZTp7fTt3LnplbnNjcm9sbFk9by5nZXRZKCk7dHJ5e2hpc3RvcnkucmVwbGFjZVN0YXRlKHcsIiIpfWNhdGNoKHMpe319dmFyIHg9Xy5nZXRBdHRyaWJ1dGUoImhyZWYiKXx8IiI7aWYoMD09PXguaW5kZXhPZigiIyIpJiYhdS50ZXN0KF8uY2xhc3NOYW1lKSl7dmFyIEM9MCxqPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHguc3Vic3RyaW5nKDEpKTtpZigiIyIhPT14KXtpZighailyZXR1cm47Qz1vLmdldFRvcE9mKGopfXMucHJldmVudERlZmF1bHQoKTt2YXIgb25Eb25lPWZ1bmN0aW9uKCl7d2luZG93LmxvY2F0aW9uPXh9LEw9by5zZXR1cCgpLmVkZ2VPZmZzZXQ7TCYmKEM9TWF0aC5tYXgoMCxDLUwpLGkmJihvbkRvbmU9ZnVuY3Rpb24oKXtoaXN0b3J5LnB1c2hTdGF0ZSh7fSwiIix4KX0pKSxvLnRvWShDLG51bGwsb25Eb25lKX19fSksITEpfXJldHVybiBvfSgpLHZvaWQgMD09PSh1PSJmdW5jdGlvbiI9PXR5cGVvZiBpP2kuYXBwbHkobyxhKTppKXx8KHMuZXhwb3J0cz11KX0sODYyMzg6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDg2MDQ4KS5GLkVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFO2Z1bmN0aW9uIG5vb3AoKXt9cy5leHBvcnRzPWZ1bmN0aW9uIGVvcyhzLG8saSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG8pcmV0dXJuIGVvcyhzLG51bGwsbyk7b3x8KG89e30pLGk9ZnVuY3Rpb24gb25jZShzKXt2YXIgbz0hMTtyZXR1cm4gZnVuY3Rpb24oKXtpZighbyl7bz0hMDtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aCxhPW5ldyBBcnJheShpKSx1PTA7dTxpO3UrKylhW3VdPWFyZ3VtZW50c1t1XTtzLmFwcGx5KHRoaXMsYSl9fX0oaXx8bm9vcCk7dmFyIHU9by5yZWFkYWJsZXx8ITEhPT1vLnJlYWRhYmxlJiZzLnJlYWRhYmxlLF89by53cml0YWJsZXx8ITEhPT1vLndyaXRhYmxlJiZzLndyaXRhYmxlLHc9ZnVuY3Rpb24gb25sZWdhY3lmaW5pc2goKXtzLndyaXRhYmxlfHxDKCl9LHg9cy5fd3JpdGFibGVTdGF0ZSYmcy5fd3JpdGFibGVTdGF0ZS5maW5pc2hlZCxDPWZ1bmN0aW9uIG9uZmluaXNoKCl7Xz0hMSx4PSEwLHV8fGkuY2FsbChzKX0saj1zLl9yZWFkYWJsZVN0YXRlJiZzLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0ZWQsTD1mdW5jdGlvbiBvbmVuZCgpe3U9ITEsaj0hMCxffHxpLmNhbGwocyl9LEI9ZnVuY3Rpb24gb25lcnJvcihvKXtpLmNhbGwocyxvKX0sJD1mdW5jdGlvbiBvbmNsb3NlKCl7dmFyIG87cmV0dXJuIHUmJiFqPyhzLl9yZWFkYWJsZVN0YXRlJiZzLl9yZWFkYWJsZVN0YXRlLmVuZGVkfHwobz1uZXcgYSksaS5jYWxsKHMsbykpOl8mJiF4PyhzLl93cml0YWJsZVN0YXRlJiZzLl93cml0YWJsZVN0YXRlLmVuZGVkfHwobz1uZXcgYSksaS5jYWxsKHMsbykpOnZvaWQgMH0sVj1mdW5jdGlvbiBvbnJlcXVlc3QoKXtzLnJlcS5vbigiZmluaXNoIixDKX07cmV0dXJuIWZ1bmN0aW9uIGlzUmVxdWVzdChzKXtyZXR1cm4gcy5zZXRIZWFkZXImJiJmdW5jdGlvbiI9PXR5cGVvZiBzLmFib3J0fShzKT9fJiYhcy5fd3JpdGFibGVTdGF0ZSYmKHMub24oImVuZCIsdykscy5vbigiY2xvc2UiLHcpKToocy5vbigiY29tcGxldGUiLEMpLHMub24oImFib3J0IiwkKSxzLnJlcT9WKCk6cy5vbigicmVxdWVzdCIsVikpLHMub24oImVuZCIsTCkscy5vbigiZmluaXNoIixDKSwhMSE9PW8uZXJyb3ImJnMub24oImVycm9yIixCKSxzLm9uKCJjbG9zZSIsJCksZnVuY3Rpb24oKXtzLnJlbW92ZUxpc3RlbmVyKCJjb21wbGV0ZSIsQykscy5yZW1vdmVMaXN0ZW5lcigiYWJvcnQiLCQpLHMucmVtb3ZlTGlzdGVuZXIoInJlcXVlc3QiLFYpLHMucmVxJiZzLnJlcS5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixDKSxzLnJlbW92ZUxpc3RlbmVyKCJlbmQiLHcpLHMucmVtb3ZlTGlzdGVuZXIoImNsb3NlIix3KSxzLnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLEMpLHMucmVtb3ZlTGlzdGVuZXIoImVuZCIsTCkscy5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLEIpLHMucmVtb3ZlTGlzdGVuZXIoImNsb3NlIiwkKX19fSw4NjMwMzoocyxvLGkpPT57Y29uc3QgYT1pKDEwMzE2KTtzLmV4cG9ydHM9Y2xhc3MgTGlua0VsZW1lbnQgZXh0ZW5kcyBhe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzfHxbXSxvLGkpLHRoaXMuZWxlbWVudD0ibGluayJ9Z2V0IHJlbGF0aW9uKCl7cmV0dXJuIHRoaXMuYXR0cmlidXRlcy5nZXQoInJlbGF0aW9uIil9c2V0IHJlbGF0aW9uKHMpe3RoaXMuYXR0cmlidXRlcy5zZXQoInJlbGF0aW9uIixzKX1nZXQgaHJlZigpe3JldHVybiB0aGlzLmF0dHJpYnV0ZXMuZ2V0KCJocmVmIil9c2V0IGhyZWYocyl7dGhpcy5hdHRyaWJ1dGVzLnNldCgiaHJlZiIscyl9fX0sODYzNzU6KHMsbyxpKT0+e3ZhciBhPWkoMTQ1MjgpLHU9aSgyODg3OSksXz1pKDQ2NjQpLHc9aSg2MzM0NSkseD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2Z1bmN0aW9uKHMpe2Zvcih2YXIgbz1bXTtzOylhKG8sXyhzKSkscz11KHMpO3JldHVybiBvfTp3O3MuZXhwb3J0cz14fSw4NjY0OToocyxvLGkpPT57dmFyIGE9aSg4MzIyMSkoKTtzLmV4cG9ydHM9YX0sODY4MDQ6KHMsbyxpKT0+e2NvbnN0IGE9aSgxMDMxNiksdT1pKDQxMDY3KSxfPWkoNzExNjcpLHc9aSg0MDIzOSkseD1pKDEyMjQyKSxDPWkoNjIzMyksaj1pKDg3NzI2KSxMPWkoNjEwNDUpLEI9aSg4NjMwMyksJD1pKDE0NTQwKSxWPWkoOTIzNDApLFU9aSgxMDg2Niksej1pKDU1OTczKTtmdW5jdGlvbiByZWZyYWN0KHMpe2lmKHMgaW5zdGFuY2VvZiBhKXJldHVybiBzO2lmKCJzdHJpbmciPT10eXBlb2YgcylyZXR1cm4gbmV3IF8ocyk7aWYoIm51bWJlciI9PXR5cGVvZiBzKXJldHVybiBuZXcgdyhzKTtpZigiYm9vbGVhbiI9PXR5cGVvZiBzKXJldHVybiBuZXcgeChzKTtpZihudWxsPT09cylyZXR1cm4gbmV3IHU7aWYoQXJyYXkuaXNBcnJheShzKSlyZXR1cm4gbmV3IEMocy5tYXAocmVmcmFjdCkpO2lmKCJvYmplY3QiPT10eXBlb2Ygcyl7cmV0dXJuIG5ldyBMKHMpfXJldHVybiBzfWEucHJvdG90eXBlLk9iamVjdEVsZW1lbnQ9TCxhLnByb3RvdHlwZS5SZWZFbGVtZW50PSQsYS5wcm90b3R5cGUuTWVtYmVyRWxlbWVudD1qLGEucHJvdG90eXBlLnJlZnJhY3Q9cmVmcmFjdCxWLnByb3RvdHlwZS5yZWZyYWN0PXJlZnJhY3Qscy5leHBvcnRzPXtFbGVtZW50OmEsTnVsbEVsZW1lbnQ6dSxTdHJpbmdFbGVtZW50Ol8sTnVtYmVyRWxlbWVudDp3LEJvb2xlYW5FbGVtZW50OngsQXJyYXlFbGVtZW50OkMsTWVtYmVyRWxlbWVudDpqLE9iamVjdEVsZW1lbnQ6TCxMaW5rRWxlbWVudDpCLFJlZkVsZW1lbnQ6JCxyZWZyYWN0LEFycmF5U2xpY2U6VixPYmplY3RTbGljZTpVLEtleVZhbHVlUGFpcjp6fX0sODcwNjg6KHMsbyxpKT0+e3ZhciBhPWkoMzcyMTcpLHU9aSgyNTkxMSksXz1pKDIxOTg2KSx3PWkoNTA2ODkpLHg9aSg1ODYxKSxDPWkoNTY0NDkpLGo9aSgzNjU2KSxMPWkoMzcxNjcpLEI9IltvYmplY3QgQXJndW1lbnRzXSIsJD0iW29iamVjdCBBcnJheV0iLFY9IltvYmplY3QgT2JqZWN0XSIsVT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlSXNFcXVhbERlZXAocyxvLGkseixZLFope3ZhciBlZT1DKHMpLGllPUMobyksYWU9ZWU/JDp4KHMpLGNlPWllPyQ6eChvKSxsZT0oYWU9YWU9PUI/VjphZSk9PVYscGU9KGNlPWNlPT1CP1Y6Y2UpPT1WLGRlPWFlPT1jZTtpZihkZSYmaihzKSl7aWYoIWoobykpcmV0dXJuITE7ZWU9ITAsbGU9ITF9aWYoZGUmJiFsZSlyZXR1cm4gWnx8KFo9bmV3IGEpLGVlfHxMKHMpP3UocyxvLGkseixZLFopOl8ocyxvLGFlLGkseixZLFopO2lmKCEoMSZpKSl7dmFyIGZlPWxlJiZVLmNhbGwocywiX193cmFwcGVkX18iKSx5ZT1wZSYmVS5jYWxsKG8sIl9fd3JhcHBlZF9fIik7aWYoZmV8fHllKXt2YXIgYmU9ZmU/cy52YWx1ZSgpOnMsX2U9eWU/by52YWx1ZSgpOm87cmV0dXJuIFp8fChaPW5ldyBhKSxZKGJlLF9lLGkseixaKX19cmV0dXJuISFkZSYmKFp8fChaPW5ldyBhKSx3KHMsbyxpLHosWSxaKSl9fSw4NzEzNjpzPT57InVzZSBzdHJpY3QiO3MuZXhwb3J0cz1mdW5jdGlvbihzKXtyZXR1cm4gbnVsbD09c319LDg3MTcwOihzLG8pPT57InVzZSBzdHJpY3QiO28uZj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzfSw4NzI5NjoocyxvLGkpPT57dmFyIGEsdT1pKDU1NDgxKSxfPShhPS9bXi5dKyQvLmV4ZWModSYmdS5rZXlzJiZ1LmtleXMuSUVfUFJPVE98fCIiKSk/IlN5bWJvbChzcmMpXzEuIithOiIiO3MuZXhwb3J0cz1mdW5jdGlvbiBpc01hc2tlZChzKXtyZXR1cm4hIV8mJl8gaW4gc319LDg3NTg2OihzLG8saSk9Pntjb25zdCBhPWkoNjIwNSksdT1pKDEwMDIzKSxfPXswOjAsdDo5LG46MTAsdjoxMSxmOjEyLHI6MTN9O28uc3RyVG9DaGFycz1mdW5jdGlvbihzKXtyZXR1cm4gcz1zLnJlcGxhY2UoLyhcW1xcYlxdKXwoXFwpP1xcKD86dShbQS1GMC05XXs0fSl8eChbQS1GMC05XXsyfSl8KDA/WzAtN117Mn0pfGMoW0BBLVpbXFxcXV4/XSl8KFswdG52ZnJdKSkvZywoZnVuY3Rpb24ocyxvLGksYSx1LHcseCxDKXtpZihpKXJldHVybiBzO3ZhciBqPW8/ODphP3BhcnNlSW50KGEsMTYpOnU/cGFyc2VJbnQodSwxNik6dz9wYXJzZUludCh3LDgpOng/IkBBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eID8iLmluZGV4T2YoeCk6X1tDXSxMPVN0cmluZy5mcm9tQ2hhckNvZGUoaik7cmV0dXJuL1tbXF17fV4kLnw/KisoKV0vLnRlc3QoTCkmJihMPSJcXCIrTCksTH0pKX0sby50b2tlbml6ZUNsYXNzPShzLGkpPT57Zm9yKHZhciBfLHcseD1bXSxDPS9cXCg/Oih3KXwoZCl8KHMpfChXKXwoRCl8KFMpKXwoKD86KD86XFwpKC4pfChbXlxdXFxdKSktKD86XFwpPyhbXlxdXSkpfChcXSl8KD86XFwpPyhbXl0pL2c7bnVsbCE9KF89Qy5leGVjKHMpKTspaWYoX1sxXSl4LnB1c2godS53b3JkcygpKTtlbHNlIGlmKF9bMl0peC5wdXNoKHUuaW50cygpKTtlbHNlIGlmKF9bM10peC5wdXNoKHUud2hpdGVzcGFjZSgpKTtlbHNlIGlmKF9bNF0peC5wdXNoKHUubm90V29yZHMoKSk7ZWxzZSBpZihfWzVdKXgucHVzaCh1Lm5vdEludHMoKSk7ZWxzZSBpZihfWzZdKXgucHVzaCh1Lm5vdFdoaXRlc3BhY2UoKSk7ZWxzZSBpZihfWzddKXgucHVzaCh7dHlwZTphLlJBTkdFLGZyb206KF9bOF18fF9bOV0pLmNoYXJDb2RlQXQoMCksdG86X1sxMF0uY2hhckNvZGVBdCgwKX0pO2Vsc2V7aWYoISh3PV9bMTJdKSlyZXR1cm5beCxDLmxhc3RJbmRleF07eC5wdXNoKHt0eXBlOmEuQ0hBUix2YWx1ZTp3LmNoYXJDb2RlQXQoMCl9KX1vLmVycm9yKGksIlVudGVybWluYXRlZCBjaGFyYWN0ZXIgY2xhc3MiKX0sby5lcnJvcj0ocyxvKT0+e3Rocm93IG5ldyBTeW50YXhFcnJvcigiSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IC8iK3MrIi86ICIrbyl9fSw4NzcyNjoocyxvLGkpPT57Y29uc3QgYT1pKDU1OTczKSx1PWkoMTAzMTYpO3MuZXhwb3J0cz1jbGFzcyBNZW1iZXJFbGVtZW50IGV4dGVuZHMgdXtjb25zdHJ1Y3RvcihzLG8saSx1KXtzdXBlcihuZXcgYSxpLHUpLHRoaXMuZWxlbWVudD0ibWVtYmVyIix0aGlzLmtleT1zLHRoaXMudmFsdWU9b31nZXQga2V5KCl7cmV0dXJuIHRoaXMuY29udGVudC5rZXl9c2V0IGtleShzKXt0aGlzLmNvbnRlbnQua2V5PXRoaXMucmVmcmFjdChzKX1nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy5jb250ZW50LnZhbHVlfXNldCB2YWx1ZShzKXt0aGlzLmNvbnRlbnQudmFsdWU9dGhpcy5yZWZyYWN0KHMpfX19LDg3NzMwOihzLG8saSk9Pnt2YXIgYT1pKDI5MTcyKSx1PWkoMjczMDEpLF89aSg4NjAwOSksdz1fJiZfLmlzTWFwLHg9dz91KHcpOmE7cy5leHBvcnRzPXh9LDg3ODA1OihzLG8saSk9Pnt2YXIgYT1pKDQzMzYwKSx1PWkoNzUyODgpO3MuZXhwb3J0cz1mdW5jdGlvbiBhc3NpZ25NZXJnZVZhbHVlKHMsbyxpKXsodm9pZCAwIT09aSYmIXUoc1tvXSxpKXx8dm9pZCAwPT09aSYmIShvIGluIHMpKSYmYShzLG8saSl9fSw4Nzk3ODoocyxvLGkpPT57dmFyIGE9aSg2MDI3MCksdT1pKDU4MTU2KSxfPWkoODA2MzEpLHc9aSgyODU4NikseD1pKDMwNzU2KSxDPWkoNjcxOTcpLGo9aSg3Nzc5Nyk7cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VNYXRjaGVzUHJvcGVydHkocyxvKXtyZXR1cm4gdyhzKSYmeChvKT9DKGoocyksbyk6ZnVuY3Rpb24oaSl7dmFyIHc9dShpLHMpO3JldHVybiB2b2lkIDA9PT13JiZ3PT09bz9fKGkscyk6YShvLHcsMyl9fX0sODgyODA6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDE5MDcpO3MuZXhwb3J0cz1hKHt9LmlzUHJvdG90eXBlT2YpfSw4ODMxMDoocyxvLGkpPT57cy5leHBvcnRzPVN0cmVhbTt2YXIgYT1pKDM3MDA3KS5FdmVudEVtaXR0ZXI7ZnVuY3Rpb24gU3RyZWFtKCl7YS5jYWxsKHRoaXMpfWkoNTY2OTgpKFN0cmVhbSxhKSxTdHJlYW0uUmVhZGFibGU9aSg0NTQxMiksU3RyZWFtLldyaXRhYmxlPWkoMTY3MDgpLFN0cmVhbS5EdXBsZXg9aSgyNTM4MiksU3RyZWFtLlRyYW5zZm9ybT1pKDc0NjEwKSxTdHJlYW0uUGFzc1Rocm91Z2g9aSg2MzYwMCksU3RyZWFtLmZpbmlzaGVkPWkoODYyMzgpLFN0cmVhbS5waXBlbGluZT1pKDU3NzU4KSxTdHJlYW0uU3RyZWFtPVN0cmVhbSxTdHJlYW0ucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24ocyxvKXt2YXIgaT10aGlzO2Z1bmN0aW9uIG9uZGF0YShvKXtzLndyaXRhYmxlJiYhMT09PXMud3JpdGUobykmJmkucGF1c2UmJmkucGF1c2UoKX1mdW5jdGlvbiBvbmRyYWluKCl7aS5yZWFkYWJsZSYmaS5yZXN1bWUmJmkucmVzdW1lKCl9aS5vbigiZGF0YSIsb25kYXRhKSxzLm9uKCJkcmFpbiIsb25kcmFpbikscy5faXNTdGRpb3x8byYmITE9PT1vLmVuZHx8KGkub24oImVuZCIsb25lbmQpLGkub24oImNsb3NlIixvbmNsb3NlKSk7dmFyIHU9ITE7ZnVuY3Rpb24gb25lbmQoKXt1fHwodT0hMCxzLmVuZCgpKX1mdW5jdGlvbiBvbmNsb3NlKCl7dXx8KHU9ITAsImZ1bmN0aW9uIj09dHlwZW9mIHMuZGVzdHJveSYmcy5kZXN0cm95KCkpfWZ1bmN0aW9uIG9uZXJyb3Iocyl7aWYoY2xlYW51cCgpLDA9PT1hLmxpc3RlbmVyQ291bnQodGhpcywiZXJyb3IiKSl0aHJvdyBzfWZ1bmN0aW9uIGNsZWFudXAoKXtpLnJlbW92ZUxpc3RlbmVyKCJkYXRhIixvbmRhdGEpLHMucmVtb3ZlTGlzdGVuZXIoImRyYWluIixvbmRyYWluKSxpLnJlbW92ZUxpc3RlbmVyKCJlbmQiLG9uZW5kKSxpLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsb25jbG9zZSksaS5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLG9uZXJyb3IpLHMucmVtb3ZlTGlzdGVuZXIoImVycm9yIixvbmVycm9yKSxpLnJlbW92ZUxpc3RlbmVyKCJlbmQiLGNsZWFudXApLGkucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixjbGVhbnVwKSxzLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsY2xlYW51cCl9cmV0dXJuIGkub24oImVycm9yIixvbmVycm9yKSxzLm9uKCJlcnJvciIsb25lcnJvciksaS5vbigiZW5kIixjbGVhbnVwKSxpLm9uKCJjbG9zZSIsY2xlYW51cCkscy5vbigiY2xvc2UiLGNsZWFudXApLHMuZW1pdCgicGlwZSIsaSksc319LDg4OTg0OihzLG8saSk9Pnt2YXIgYT1pKDU1NTI3KSx1PWkoMzY1MCksXz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlS2V5cyhzKXtpZighYShzKSlyZXR1cm4gdShzKTt2YXIgbz1bXTtmb3IodmFyIGkgaW4gT2JqZWN0KHMpKV8uY2FsbChzLGkpJiYiY29uc3RydWN0b3IiIT1pJiZvLnB1c2goaSk7cmV0dXJuIG99fSw4OTU5MzoocyxvLGkpPT57InVzZSBzdHJpY3QiO28uSD12b2lkIDA7dmFyIGE9ZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChzKXtyZXR1cm4gcyYmcy5fX2VzTW9kdWxlP3M6e2RlZmF1bHQ6c319KGkoODQ5NzcpKTtvLkg9YS5kZWZhdWx0fSw4OTkzNTpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIHN0dWJGYWxzZSgpe3JldHVybiExfX0sOTAxNjA6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDczOTQ4KSx1PVN0cmluZztzLmV4cG9ydHM9ZnVuY3Rpb24ocyl7aWYoIlN5bWJvbCI9PT1hKHMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IGEgU3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIik7cmV0dXJuIHUocyl9fSw5MDE3OToocyxvLGkpPT57dmFyIGE9aSgzNDkzMiksdT1pKDk5OTkpLF89aSgxOTkzMSksdz1pKDMxNzY5KSx4PWkoMjE3OTEpLEM9aSg1MzEzOCksaj1pKDM4ODE2KSxMPWkoODMzNDkpLEI9aigoZnVuY3Rpb24ocyxvKXt2YXIgaT17fTtpZihudWxsPT1zKXJldHVybiBpO3ZhciBqPSExO289YShvLChmdW5jdGlvbihvKXtyZXR1cm4gbz13KG8scyksanx8KGo9by5sZW5ndGg+MSksb30pKSx4KHMsTChzKSxpKSxqJiYoaT11KGksNyxDKSk7Zm9yKHZhciBCPW8ubGVuZ3RoO0ItLTspXyhpLG9bQl0pO3JldHVybiBpfSkpO3MuZXhwb3J0cz1CfSw5MDE4MTpzPT57cy5leHBvcnRzPWZ1bmN0aW9uIG5hdGl2ZUtleXNJbihzKXt2YXIgbz1bXTtpZihudWxsIT1zKWZvcih2YXIgaSBpbiBPYmplY3Qocykpby5wdXNoKGkpO3JldHVybiBvfX0sOTAyODk6KHMsbyxpKT0+e3ZhciBhPWkoMTI2NTEpO3MuZXhwb3J0cz1mdW5jdGlvbiBtYXBDYWNoZUdldChzKXtyZXR1cm4gYSh0aGlzLHMpLmdldChzKX19LDkwMzkyOihzLG8saSk9Pnt2YXIgYT1pKDkyODYxKS5CdWZmZXI7ZnVuY3Rpb24gSGFzaChzLG8pe3RoaXMuX2Jsb2NrPWEuYWxsb2MocyksdGhpcy5fZmluYWxTaXplPW8sdGhpcy5fYmxvY2tTaXplPXMsdGhpcy5fbGVuPTB9SGFzaC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHMsbyl7InN0cmluZyI9PXR5cGVvZiBzJiYobz1vfHwidXRmOCIscz1hLmZyb20ocyxvKSk7Zm9yKHZhciBpPXRoaXMuX2Jsb2NrLHU9dGhpcy5fYmxvY2tTaXplLF89cy5sZW5ndGgsdz10aGlzLl9sZW4seD0wO3g8Xzspe2Zvcih2YXIgQz13JXUsaj1NYXRoLm1pbihfLXgsdS1DKSxMPTA7TDxqO0wrKylpW0MrTF09c1t4K0xdO3grPWosKHcrPWopJXU9PTAmJnRoaXMuX3VwZGF0ZShpKX1yZXR1cm4gdGhpcy5fbGVuKz1fLHRoaXN9LEhhc2gucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbihzKXt2YXIgbz10aGlzLl9sZW4ldGhpcy5fYmxvY2tTaXplO3RoaXMuX2Jsb2NrW29dPTEyOCx0aGlzLl9ibG9jay5maWxsKDAsbysxKSxvPj10aGlzLl9maW5hbFNpemUmJih0aGlzLl91cGRhdGUodGhpcy5fYmxvY2spLHRoaXMuX2Jsb2NrLmZpbGwoMCkpO3ZhciBpPTgqdGhpcy5fbGVuO2lmKGk8PTQyOTQ5NjcyOTUpdGhpcy5fYmxvY2sud3JpdGVVSW50MzJCRShpLHRoaXMuX2Jsb2NrU2l6ZS00KTtlbHNle3ZhciBhPSg0Mjk0OTY3Mjk1JmkpPj4+MCx1PShpLWEpLzQyOTQ5NjcyOTY7dGhpcy5fYmxvY2sud3JpdGVVSW50MzJCRSh1LHRoaXMuX2Jsb2NrU2l6ZS04KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKGEsdGhpcy5fYmxvY2tTaXplLTQpfXRoaXMuX3VwZGF0ZSh0aGlzLl9ibG9jayk7dmFyIF89dGhpcy5faGFzaCgpO3JldHVybiBzP18udG9TdHJpbmcocyk6X30sSGFzaC5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiX3VwZGF0ZSBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzIil9LHMuZXhwb3J0cz1IYXNofSw5MDkxNjoocyxvLGkpPT57dmFyIGE9aSg4MDkwOSk7cy5leHBvcnRzPWZ1bmN0aW9uIGJhc2VTb21lKHMsbyl7dmFyIGk7cmV0dXJuIGEocywoZnVuY3Rpb24ocyxhLHUpe3JldHVybiEoaT1vKHMsYSx1KSl9KSksISFpfX0sOTA5Mzg6cz0+e3MuZXhwb3J0cz1mdW5jdGlvbiBzdGFja0RlbGV0ZShzKXt2YXIgbz10aGlzLl9fZGF0YV9fLGk9by5kZWxldGUocyk7cmV0dXJuIHRoaXMuc2l6ZT1vLnNpemUsaX19LDkxMDMzOnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gYXBwbHkocyxvLGkpe3N3aXRjaChpLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBzLmNhbGwobyk7Y2FzZSAxOnJldHVybiBzLmNhbGwobyxpWzBdKTtjYXNlIDI6cmV0dXJuIHMuY2FsbChvLGlbMF0saVsxXSk7Y2FzZSAzOnJldHVybiBzLmNhbGwobyxpWzBdLGlbMV0saVsyXSl9cmV0dXJuIHMuYXBwbHkobyxpKX19LDkxNTk2OnM9Pnt2YXIgbz1NYXRoLm1heDtzLmV4cG9ydHM9ZnVuY3Rpb24gY29tcG9zZUFyZ3MocyxpLGEsdSl7Zm9yKHZhciBfPS0xLHc9cy5sZW5ndGgseD1hLmxlbmd0aCxDPS0xLGo9aS5sZW5ndGgsTD1vKHcteCwwKSxCPUFycmF5KGorTCksJD0hdTsrK0M8ajspQltDXT1pW0NdO2Zvcig7KytfPHg7KSgkfHxfPHcpJiYoQlthW19dXT1zW19dKTtmb3IoO0wtLTspQltDKytdPXNbXysrXTtyZXR1cm4gQn19LDkxNTk5OihzLG8saSk9PnsidXNlIHN0cmljdCI7aSg2NDUwMil9LDkyMDQ2OnM9PnsidXNlIHN0cmljdCI7cy5leHBvcnRzPXt9fSw5MjA2MzpzPT57InVzZSBzdHJpY3QiO3MuZXhwb3J0cz1mdW5jdGlvbiByZXF1aXJlZChzLG8pe2lmKG89by5zcGxpdCgiOiIpWzBdLCEocz0rcykpcmV0dXJuITE7c3dpdGNoKG8pe2Nhc2UiaHR0cCI6Y2FzZSJ3cyI6cmV0dXJuIDgwIT09cztjYXNlImh0dHBzIjpjYXNlIndzcyI6cmV0dXJuIDQ0MyE9PXM7Y2FzZSJmdHAiOnJldHVybiAyMSE9PXM7Y2FzZSJnb3BoZXIiOnJldHVybiA3MCE9PXM7Y2FzZSJmaWxlIjpyZXR1cm4hMX1yZXR1cm4gMCE9PXN9fSw5MjI3MToocyxvLGkpPT57dmFyIGE9aSgyMTc5MSksdT1pKDQ2NjQpO3MuZXhwb3J0cz1mdW5jdGlvbiBjb3B5U3ltYm9scyhzLG8pe3JldHVybiBhKHMsdShzKSxvKX19LDkyMzQwOihzLG8saSk9Pntjb25zdCBhPWkoNjA0OCk7ZnVuY3Rpb24gY29lcmNlRWxlbWVudE1hdGNoaW5nQ2FsbGJhY2socyl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBzP289Pm8uZWxlbWVudD09PXM6cy5jb25zdHJ1Y3RvciYmcy5leHRlbmQ/bz0+byBpbnN0YW5jZW9mIHM6c31jbGFzcyBBcnJheVNsaWNle2NvbnN0cnVjdG9yKHMpe3RoaXMuZWxlbWVudHM9c3x8W119dG9WYWx1ZSgpe3JldHVybiB0aGlzLmVsZW1lbnRzLm1hcCgocz0+cy50b1ZhbHVlKCkpKX1tYXAocyxvKXtyZXR1cm4gdGhpcy5lbGVtZW50cy5tYXAocyxvKX1mbGF0TWFwKHMsbyl7cmV0dXJuIHRoaXMubWFwKHMsbykucmVkdWNlKCgocyxvKT0+cy5jb25jYXQobykpLFtdKX1jb21wYWN0TWFwKHMsbyl7Y29uc3QgaT1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKChhPT57Y29uc3QgdT1zLmJpbmQobykoYSk7dSYmaS5wdXNoKHUpfSkpLGl9ZmlsdGVyKHMsbyl7cmV0dXJuIHM9Y29lcmNlRWxlbWVudE1hdGNoaW5nQ2FsbGJhY2socyksbmV3IEFycmF5U2xpY2UodGhpcy5lbGVtZW50cy5maWx0ZXIocyxvKSl9cmVqZWN0KHMsbyl7cmV0dXJuIHM9Y29lcmNlRWxlbWVudE1hdGNoaW5nQ2FsbGJhY2socyksbmV3IEFycmF5U2xpY2UodGhpcy5lbGVtZW50cy5maWx0ZXIoYShzKSxvKSl9ZmluZChzLG8pe3JldHVybiBzPWNvZXJjZUVsZW1lbnRNYXRjaGluZ0NhbGxiYWNrKHMpLHRoaXMuZWxlbWVudHMuZmluZChzLG8pfWZvckVhY2gocyxvKXt0aGlzLmVsZW1lbnRzLmZvckVhY2gocyxvKX1yZWR1Y2UocyxvKXtyZXR1cm4gdGhpcy5lbGVtZW50cy5yZWR1Y2UocyxvKX1pbmNsdWRlcyhzKXtyZXR1cm4gdGhpcy5lbGVtZW50cy5zb21lKChvPT5vLmVxdWFscyhzKSkpfXNoaWZ0KCl7cmV0dXJuIHRoaXMuZWxlbWVudHMuc2hpZnQoKX11bnNoaWZ0KHMpe3RoaXMuZWxlbWVudHMudW5zaGlmdCh0aGlzLnJlZnJhY3QocykpfXB1c2gocyl7cmV0dXJuIHRoaXMuZWxlbWVudHMucHVzaCh0aGlzLnJlZnJhY3QocykpLHRoaXN9YWRkKHMpe3RoaXMucHVzaChzKX1nZXQocyl7cmV0dXJuIHRoaXMuZWxlbWVudHNbc119Z2V0VmFsdWUocyl7Y29uc3Qgbz10aGlzLmVsZW1lbnRzW3NdO2lmKG8pcmV0dXJuIG8udG9WYWx1ZSgpfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5lbGVtZW50cy5sZW5ndGh9Z2V0IGlzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXMuZWxlbWVudHMubGVuZ3RofWdldCBmaXJzdCgpe3JldHVybiB0aGlzLmVsZW1lbnRzWzBdfX0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmKEFycmF5U2xpY2UucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24gc3ltYm9sKCl7cmV0dXJuIHRoaXMuZWxlbWVudHNbU3ltYm9sLml0ZXJhdG9yXSgpfSkscy5leHBvcnRzPUFycmF5U2xpY2V9LDkyMzYxOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg0NTgwNyksdT1pKDE5MDcpO3MuZXhwb3J0cz1mdW5jdGlvbihzKXtpZigiRnVuY3Rpb24iPT09YShzKSlyZXR1cm4gdShzKX19LDkyNTIyOihzLG8saSk9PnsidXNlIHN0cmljdCI7dmFyIGE9aSg4NTgxNiksdT1pKDY0OTkpLF89YSgia2V5cyIpO3MuZXhwb3J0cz1mdW5jdGlvbihzKXtyZXR1cm4gX1tzXXx8KF9bc109dShzKSl9fSw5Mjg2MToocyxvLGkpPT57dmFyIGE9aSg0ODI4NyksdT1hLkJ1ZmZlcjtmdW5jdGlvbiBjb3B5UHJvcHMocyxvKXtmb3IodmFyIGkgaW4gcylvW2ldPXNbaV19ZnVuY3Rpb24gU2FmZUJ1ZmZlcihzLG8saSl7cmV0dXJuIHUocyxvLGkpfXUuZnJvbSYmdS5hbGxvYyYmdS5hbGxvY1Vuc2FmZSYmdS5hbGxvY1Vuc2FmZVNsb3c/cy5leHBvcnRzPWE6KGNvcHlQcm9wcyhhLG8pLG8uQnVmZmVyPVNhZmVCdWZmZXIpLFNhZmVCdWZmZXIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodS5wcm90b3R5cGUpLGNvcHlQcm9wcyh1LFNhZmVCdWZmZXIpLFNhZmVCdWZmZXIuZnJvbT1mdW5jdGlvbihzLG8saSl7aWYoIm51bWJlciI9PXR5cGVvZiBzKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyIik7cmV0dXJuIHUocyxvLGkpfSxTYWZlQnVmZmVyLmFsbG9jPWZ1bmN0aW9uKHMsbyxpKXtpZigibnVtYmVyIiE9dHlwZW9mIHMpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3ZhciBhPXUocyk7cmV0dXJuIHZvaWQgMCE9PW8/InN0cmluZyI9PXR5cGVvZiBpP2EuZmlsbChvLGkpOmEuZmlsbChvKTphLmZpbGwoMCksYX0sU2FmZUJ1ZmZlci5hbGxvY1Vuc2FmZT1mdW5jdGlvbihzKXtpZigibnVtYmVyIiE9dHlwZW9mIHMpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiB1KHMpfSxTYWZlQnVmZmVyLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbihzKXtpZigibnVtYmVyIiE9dHlwZW9mIHMpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBhLlNsb3dCdWZmZXIocyl9fSw5MzI0MzoocyxvLGkpPT57dmFyIGE9aSg1NjExMCksdT1mdW5jdGlvbigpe3RyeXt2YXIgcz1hKE9iamVjdCwiZGVmaW5lUHJvcGVydHkiKTtyZXR1cm4gcyh7fSwiIix7fSksc31jYXRjaChzKXt9fSgpO3MuZXhwb3J0cz11fSw5MzI5MDoocyxvLGkpPT57cz1pLm5tZChzKTt2YXIgYT1pKDkzMjUpLHU9byYmIW8ubm9kZVR5cGUmJm8sXz11JiZzJiYhcy5ub2RlVHlwZSYmcyx3PV8mJl8uZXhwb3J0cz09PXU/YS5CdWZmZXI6dm9pZCAwLHg9dz93LmFsbG9jVW5zYWZlOnZvaWQgMDtzLmV4cG9ydHM9ZnVuY3Rpb24gY2xvbmVCdWZmZXIocyxvKXtpZihvKXJldHVybiBzLnNsaWNlKCk7dmFyIGk9cy5sZW5ndGgsYT14P3goaSk6bmV3IHMuY29uc3RydWN0b3IoaSk7cmV0dXJuIHMuY29weShhKSxhfX0sOTM0Mjc6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDE5MDcpO3MuZXhwb3J0cz1hKFtdLnNsaWNlKX0sOTM2NjM6KHMsbyxpKT0+e3ZhciBhPWkoNDE3OTkpLHU9aSgxMDc3NiksXz1pKDY3MTk3KTtzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZU1hdGNoZXMocyl7dmFyIG89dShzKTtyZXR1cm4gMT09by5sZW5ndGgmJm9bMF1bMl0/XyhvWzBdWzBdLG9bMF1bMV0pOmZ1bmN0aW9uKGkpe3JldHVybiBpPT09c3x8YShpLHMsbyl9fX0sOTM3MDA6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDE5NzA5KTtzLmV4cG9ydHM9YX0sOTM3MzY6KHMsbyxpKT0+e3ZhciBhPWkoNTE4NzMpLHU9YT9hLnByb3RvdHlwZTp2b2lkIDAsXz11P3UudmFsdWVPZjp2b2lkIDA7cy5leHBvcnRzPWZ1bmN0aW9uIGNsb25lU3ltYm9sKHMpe3JldHVybiBfP09iamVjdChfLmNhbGwocykpOnt9fX0sOTM3NDI6cz0+eyJ1c2Ugc3RyaWN0IjtzLmV4cG9ydHM9e319LDk0MDMzOnM9PntzLmV4cG9ydHM9ZnVuY3Rpb24gYmFzZUxvZGFzaCgpe319LDk0NjQzOihzLG8saSk9PntmdW5jdGlvbiBjb25maWcocyl7dHJ5e2lmKCFpLmcubG9jYWxTdG9yYWdlKXJldHVybiExfWNhdGNoKHMpe3JldHVybiExfXZhciBvPWkuZy5sb2NhbFN0b3JhZ2Vbc107cmV0dXJuIG51bGwhPW8mJiJ0cnVlIj09PVN0cmluZyhvKS50b0xvd2VyQ2FzZSgpfXMuZXhwb3J0cz1mdW5jdGlvbiBkZXByZWNhdGUocyxvKXtpZihjb25maWcoIm5vRGVwcmVjYXRpb24iKSlyZXR1cm4gczt2YXIgaT0hMTtyZXR1cm4gZnVuY3Rpb24gZGVwcmVjYXRlZCgpe2lmKCFpKXtpZihjb25maWcoInRocm93RGVwcmVjYXRpb24iKSl0aHJvdyBuZXcgRXJyb3Iobyk7Y29uZmlnKCJ0cmFjZURlcHJlY2F0aW9uIik/Y29uc29sZS50cmFjZShvKTpjb25zb2xlLndhcm4obyksaT0hMH1yZXR1cm4gcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX0sOTUwODk6cz0+e2NvbnN0IG89IltBLVphLXokX11bMC05QS1aYS16JF9dKiIsaT1bImFzIiwiaW4iLCJvZiIsImlmIiwiZm9yIiwid2hpbGUiLCJmaW5hbGx5IiwidmFyIiwibmV3IiwiZnVuY3Rpb24iLCJkbyIsInJldHVybiIsInZvaWQiLCJlbHNlIiwiYnJlYWsiLCJjYXRjaCIsImluc3RhbmNlb2YiLCJ3aXRoIiwidGhyb3ciLCJjYXNlIiwiZGVmYXVsdCIsInRyeSIsInN3aXRjaCIsImNvbnRpbnVlIiwidHlwZW9mIiwiZGVsZXRlIiwibGV0IiwieWllbGQiLCJjb25zdCIsImNsYXNzIiwiZGVidWdnZXIiLCJhc3luYyIsImF3YWl0Iiwic3RhdGljIiwiaW1wb3J0IiwiZnJvbSIsImV4cG9ydCIsImV4dGVuZHMiXSxhPVsidHJ1ZSIsImZhbHNlIiwibnVsbCIsInVuZGVmaW5lZCIsIk5hTiIsIkluZmluaXR5Il0sdT1bXS5jb25jYXQoWyJzZXRJbnRlcnZhbCIsInNldFRpbWVvdXQiLCJjbGVhckludGVydmFsIiwiY2xlYXJUaW1lb3V0IiwicmVxdWlyZSIsImV4cG9ydHMiLCJldmFsIiwiaXNGaW5pdGUiLCJpc05hTiIsInBhcnNlRmxvYXQiLCJwYXJzZUludCIsImRlY29kZVVSSSIsImRlY29kZVVSSUNvbXBvbmVudCIsImVuY29kZVVSSSIsImVuY29kZVVSSUNvbXBvbmVudCIsImVzY2FwZSIsInVuZXNjYXBlIl0sWyJhcmd1bWVudHMiLCJ0aGlzIiwic3VwZXIiLCJjb25zb2xlIiwid2luZG93IiwiZG9jdW1lbnQiLCJsb2NhbFN0b3JhZ2UiLCJtb2R1bGUiLCJnbG9iYWwiXSxbIkludGwiLCJEYXRhVmlldyIsIk51bWJlciIsIk1hdGgiLCJEYXRlIiwiU3RyaW5nIiwiUmVnRXhwIiwiT2JqZWN0IiwiRnVuY3Rpb24iLCJCb29sZWFuIiwiRXJyb3IiLCJTeW1ib2wiLCJTZXQiLCJNYXAiLCJXZWFrU2V0IiwiV2Vha01hcCIsIlByb3h5IiwiUmVmbGVjdCIsIkpTT04iLCJQcm9taXNlIiwiRmxvYXQ2NEFycmF5IiwiSW50MTZBcnJheSIsIkludDMyQXJyYXkiLCJJbnQ4QXJyYXkiLCJVaW50MTZBcnJheSIsIlVpbnQzMkFycmF5IiwiRmxvYXQzMkFycmF5IiwiQXJyYXkiLCJVaW50OEFycmF5IiwiVWludDhDbGFtcGVkQXJyYXkiLCJBcnJheUJ1ZmZlciIsIkJpZ0ludDY0QXJyYXkiLCJCaWdVaW50NjRBcnJheSIsIkJpZ0ludCJdLFsiRXZhbEVycm9yIiwiSW50ZXJuYWxFcnJvciIsIlJhbmdlRXJyb3IiLCJSZWZlcmVuY2VFcnJvciIsIlN5bnRheEVycm9yIiwiVHlwZUVycm9yIiwiVVJJRXJyb3IiXSk7ZnVuY3Rpb24gbG9va2FoZWFkKHMpe3JldHVybiBjb25jYXQoIig/PSIscywiKSIpfWZ1bmN0aW9uIGNvbmNhdCguLi5zKXtyZXR1cm4gcy5tYXAoKHM9PmZ1bmN0aW9uIHNvdXJjZShzKXtyZXR1cm4gcz8ic3RyaW5nIj09dHlwZW9mIHM/czpzLnNvdXJjZTpudWxsfShzKSkpLmpvaW4oIiIpfXMuZXhwb3J0cz1mdW5jdGlvbiBqYXZhc2NyaXB0KHMpe2NvbnN0IF89byx3PSI8PiIseD0iPC8+IixDPXtiZWdpbjovPFtBLVphLXowLTlcXC5fOi1dKy8sZW5kOi9cL1tBLVphLXowLTlcXC5fOi1dKz58XC8+Lyxpc1RydWx5T3BlbmluZ1RhZzoocyxvKT0+e2NvbnN0IGk9c1swXS5sZW5ndGgrcy5pbmRleCxhPXMuaW5wdXRbaV07IjwiIT09YT8iPiI9PT1hJiYoKChzLHthZnRlcjpvfSk9Pntjb25zdCBpPSI8LyIrc1swXS5zbGljZSgxKTtyZXR1cm4tMSE9PXMuaW5wdXQuaW5kZXhPZihpLG8pfSkocyx7YWZ0ZXI6aX0pfHxvLmlnbm9yZU1hdGNoKCkpOm8uaWdub3JlTWF0Y2goKX19LGo9eyRwYXR0ZXJuOm8sa2V5d29yZDppLGxpdGVyYWw6YSxidWlsdF9pbjp1fSxMPSJbMC05XShfP1swLTldKSoiLEI9YFxcLigke0x9KWAsJD0iMHxbMS05XShfP1swLTldKSp8MFswLTddKls4OV1bMC05XSoiLFY9e2NsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbe2JlZ2luOmAoXFxiKCR7JH0pKCgke0J9KXxcXC4pP3woJHtCfSkpW2VFXVsrLV0/KCR7TH0pXFxiYH0se2JlZ2luOmBcXGIoJHskfSlcXGIoKCR7Qn0pXFxifFxcLik/fCgke0J9KVxcYmB9LHtiZWdpbjoiXFxiKDB8WzEtOV0oXz9bMC05XSkqKW5cXGIifSx7YmVnaW46IlxcYjBbeFhdWzAtOWEtZkEtRl0oXz9bMC05YS1mQS1GXSkqbj9cXGIifSx7YmVnaW46IlxcYjBbYkJdWzAtMV0oXz9bMC0xXSkqbj9cXGIifSx7YmVnaW46IlxcYjBbb09dWzAtN10oXz9bMC03XSkqbj9cXGIifSx7YmVnaW46IlxcYjBbMC03XStuP1xcYiJ9XSxyZWxldmFuY2U6MH0sVT17Y2xhc3NOYW1lOiJzdWJzdCIsYmVnaW46IlxcJFxceyIsZW5kOiJcXH0iLGtleXdvcmRzOmosY29udGFpbnM6W119LHo9e2JlZ2luOiJodG1sYCIsZW5kOiIiLHN0YXJ0czp7ZW5kOiJgIixyZXR1cm5FbmQ6ITEsY29udGFpbnM6W3MuQkFDS1NMQVNIX0VTQ0FQRSxVXSxzdWJMYW5ndWFnZToieG1sIn19LFk9e2JlZ2luOiJjc3NgIixlbmQ6IiIsc3RhcnRzOntlbmQ6ImAiLHJldHVybkVuZDohMSxjb250YWluczpbcy5CQUNLU0xBU0hfRVNDQVBFLFVdLHN1Ykxhbmd1YWdlOiJjc3MifX0sWj17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiJgIixlbmQ6ImAiLGNvbnRhaW5zOltzLkJBQ0tTTEFTSF9FU0NBUEUsVV19LGVlPXtjbGFzc05hbWU6ImNvbW1lbnQiLHZhcmlhbnRzOltzLkNPTU1FTlQoL1wvXCpcKig/IVwvKS8sIlxcKi8iLHtyZWxldmFuY2U6MCxjb250YWluczpbe2NsYXNzTmFtZToiZG9jdGFnIixiZWdpbjoiQFtBLVphLXpdKyIsY29udGFpbnM6W3tjbGFzc05hbWU6InR5cGUiLGJlZ2luOiJcXHsiLGVuZDoiXFx9IixyZWxldmFuY2U6MH0se2NsYXNzTmFtZToidmFyaWFibGUiLGJlZ2luOl8rIig/PVxccyooLSl8JCkiLGVuZHNQYXJlbnQ6ITAscmVsZXZhbmNlOjB9LHtiZWdpbjovKD89W15cbl0pXHMvLHJlbGV2YW5jZTowfV19XX0pLHMuQ19CTE9DS19DT01NRU5UX01PREUscy5DX0xJTkVfQ09NTUVOVF9NT0RFXX0saWU9W3MuQVBPU19TVFJJTkdfTU9ERSxzLlFVT1RFX1NUUklOR19NT0RFLHosWSxaLFYscy5SRUdFWFBfTU9ERV07VS5jb250YWlucz1pZS5jb25jYXQoe2JlZ2luOi9cey8sZW5kOi9cfS8sa2V5d29yZHM6aixjb250YWluczpbInNlbGYiXS5jb25jYXQoaWUpfSk7Y29uc3QgYWU9W10uY29uY2F0KGVlLFUuY29udGFpbnMpLGNlPWFlLmNvbmNhdChbe2JlZ2luOi9cKC8sZW5kOi9cKS8sa2V5d29yZHM6aixjb250YWluczpbInNlbGYiXS5jb25jYXQoYWUpfV0pLGxlPXtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46L1woLyxlbmQ6L1wpLyxleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCxrZXl3b3JkczpqLGNvbnRhaW5zOmNlfTtyZXR1cm57bmFtZToiSmF2YXNjcmlwdCIsYWxpYXNlczpbImpzIiwianN4IiwibWpzIiwiY2pzIl0sa2V5d29yZHM6aixleHBvcnRzOntQQVJBTVNfQ09OVEFJTlM6Y2V9LGlsbGVnYWw6LyMoPyFbJF9BLXpdKS8sY29udGFpbnM6W3MuU0hFQkFORyh7bGFiZWw6InNoZWJhbmciLGJpbmFyeToibm9kZSIscmVsZXZhbmNlOjV9KSx7bGFiZWw6InVzZV9zdHJpY3QiLGNsYXNzTmFtZToibWV0YSIscmVsZXZhbmNlOjEwLGJlZ2luOi9eXHMqWyciXXVzZSAoc3RyaWN0fGFzbSlbJyJdL30scy5BUE9TX1NUUklOR19NT0RFLHMuUVVPVEVfU1RSSU5HX01PREUseixZLFosZWUsVix7YmVnaW46Y29uY2F0KC9beyxcbl1ccyovLGxvb2thaGVhZChjb25jYXQoLygoKFwvXC8uKiQpfChcL1wqKFwqW14vXXxbXipdKSpcKlwvKSlccyopKi8sXysiXFxzKjoiKSkpLHJlbGV2YW5jZTowLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJhdHRyIixiZWdpbjpfK2xvb2thaGVhZCgiXFxzKjoiKSxyZWxldmFuY2U6MH1dfSx7YmVnaW46IigiK3MuUkVfU1RBUlRFUlNfUkUrInxcXGIoY2FzZXxyZXR1cm58dGhyb3cpXFxiKVxccyoiLGtleXdvcmRzOiJyZXR1cm4gdGhyb3cgY2FzZSIsY29udGFpbnM6W2VlLHMuUkVHRVhQX01PREUse2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luOiIoXFwoW14oKV0qKFxcKFteKCldKihcXChbXigpXSpcXClbXigpXSopKlxcKVteKCldKikqXFwpfCIrcy5VTkRFUlNDT1JFX0lERU5UX1JFKyIpXFxzKj0+IixyZXR1cm5CZWdpbjohMCxlbmQ6Ilxccyo9PiIsY29udGFpbnM6W3tjbGFzc05hbWU6InBhcmFtcyIsdmFyaWFudHM6W3tiZWdpbjpzLlVOREVSU0NPUkVfSURFTlRfUkUscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6bnVsbCxiZWdpbjovXChccypcKS8sc2tpcDohMH0se2JlZ2luOi9cKC8sZW5kOi9cKS8sZXhjbHVkZUJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITAsa2V5d29yZHM6aixjb250YWluczpjZX1dfV19LHtiZWdpbjovLC8scmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6IiIsYmVnaW46L1xzLyxlbmQ6L1xzKi8sc2tpcDohMH0se3ZhcmlhbnRzOlt7YmVnaW46dyxlbmQ6eH0se2JlZ2luOkMuYmVnaW4sIm9uOmJlZ2luIjpDLmlzVHJ1bHlPcGVuaW5nVGFnLGVuZDpDLmVuZH1dLHN1Ykxhbmd1YWdlOiJ4bWwiLGNvbnRhaW5zOlt7YmVnaW46Qy5iZWdpbixlbmQ6Qy5lbmQsc2tpcDohMCxjb250YWluczpbInNlbGYiXX1dfV0scmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbktleXdvcmRzOiJmdW5jdGlvbiIsZW5kOi9beztdLyxleGNsdWRlRW5kOiEwLGtleXdvcmRzOmosY29udGFpbnM6WyJzZWxmIixzLmluaGVyaXQocy5USVRMRV9NT0RFLHtiZWdpbjpffSksbGVdLGlsbGVnYWw6LyUvfSx7YmVnaW5LZXl3b3Jkczoid2hpbGUgaWYgc3dpdGNoIGNhdGNoIGZvciJ9LHtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbjpzLlVOREVSU0NPUkVfSURFTlRfUkUrIlxcKFteKCldKihcXChbXigpXSooXFwoW14oKV0qXFwpW14oKV0qKSpcXClbXigpXSopKlxcKVxccypcXHsiLHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOltsZSxzLmluaGVyaXQocy5USVRMRV9NT0RFLHtiZWdpbjpffSldfSx7dmFyaWFudHM6W3tiZWdpbjoiXFwuIitffSx7YmVnaW46IlxcJCIrX31dLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJjbGFzcyIsYmVnaW5LZXl3b3JkczoiY2xhc3MiLGVuZDovW3s7PV0vLGV4Y2x1ZGVFbmQ6ITAsaWxsZWdhbDovWzoiW1xdXS8sY29udGFpbnM6W3tiZWdpbktleXdvcmRzOiJleHRlbmRzIn0scy5VTkRFUlNDT1JFX1RJVExFX01PREVdfSx7YmVnaW46L1xiKD89Y29uc3RydWN0b3IpLyxlbmQ6L1t7O10vLGV4Y2x1ZGVFbmQ6ITAsY29udGFpbnM6W3MuaW5oZXJpdChzLlRJVExFX01PREUse2JlZ2luOl99KSwic2VsZiIsbGVdfSx7YmVnaW46IihnZXR8c2V0KVxccysoPz0iK18rIlxcKCkiLGVuZDovXHsvLGtleXdvcmRzOiJnZXQgc2V0Iixjb250YWluczpbcy5pbmhlcml0KHMuVElUTEVfTU9ERSx7YmVnaW46X30pLHtiZWdpbjovXChcKS99LGxlXX0se2JlZ2luOi9cJFsoLl0vfV19fX0sOTUxMTY6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYSx1LF8sdz1pKDk4ODI4KSx4PWkoNjIyNTApLEM9aSg0NjI4NSksaj1pKDU4MDc1KSxMPWkoMTU5NzIpLEI9aSg2ODA1NSksJD1pKDc2MjY0KSxWPWkoNzM3NiksVT0kKCJpdGVyYXRvciIpLHo9ITE7W10ua2V5cyYmKCJuZXh0ImluKF89W10ua2V5cygpKT8odT1MKEwoXykpKSE9PU9iamVjdC5wcm90b3R5cGUmJihhPXUpOno9ITApLCFDKGEpfHx3KChmdW5jdGlvbigpe3ZhciBzPXt9O3JldHVybiBhW1VdLmNhbGwocykhPT1zfSkpP2E9e306ViYmKGE9aihhKSkseChhW1VdKXx8QihhLFUsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSkscy5leHBvcnRzPXtJdGVyYXRvclByb3RvdHlwZTphLEJVR0dZX1NBRkFSSV9JVEVSQVRPUlM6en19LDk1OTUwOihzLG8saSk9Pnt2YXIgYT1pKDcwNjk1KSx1PWkoODg5ODQpLF89aSg2NDg5NCk7cy5leHBvcnRzPWZ1bmN0aW9uIGtleXMocyl7cmV0dXJuIF8ocyk/YShzKTp1KHMpfX0sOTYxMzE6KHMsbyxpKT0+e3ZhciBhPWkoMjUyMyksdT1pKDg1NDYzKSxfPWkoNzY5NTkpO3MuZXhwb3J0cz1mdW5jdGlvbiBiYXNlSW5kZXhPZihzLG8saSl7cmV0dXJuIG89PW8/XyhzLG8saSk6YShzLHUsaSl9fSw5NjU0MDoocyxvLGkpPT57InVzZSBzdHJpY3QiO3MuZXhwb3J0cz1pKDE1Mjg3KX0sOTY2MDU6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDExMDkxKSx1PWkoNDU5NTEpLF89aSg3NjAyNCksdz1pKDE5MzU4KSx4PSJXZWJBc3NlbWJseSIsQz11W3hdLGo9NyE9PW5ldyBFcnJvcigiZSIse2NhdXNlOjd9KS5jYXVzZSxleHBvcnRHbG9iYWxFcnJvckNhdXNlV3JhcHBlcj1mdW5jdGlvbihzLG8pe3ZhciBpPXt9O2lbc109dyhzLG8saiksYSh7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLGFyaXR5OjEsZm9yY2VkOmp9LGkpfSxleHBvcnRXZWJBc3NlbWJseUVycm9yQ2F1c2VXcmFwcGVyPWZ1bmN0aW9uKHMsbyl7aWYoQyYmQ1tzXSl7dmFyIGk9e307aVtzXT13KHgrIi4iK3MsbyxqKSxhKHt0YXJnZXQ6eCxzdGF0OiEwLGNvbnN0cnVjdG9yOiEwLGFyaXR5OjEsZm9yY2VkOmp9LGkpfX07ZXhwb3J0R2xvYmFsRXJyb3JDYXVzZVdyYXBwZXIoIkVycm9yIiwoZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uIEVycm9yKG8pe3JldHVybiBfKHMsdGhpcyxhcmd1bWVudHMpfX0pKSxleHBvcnRHbG9iYWxFcnJvckNhdXNlV3JhcHBlcigiRXZhbEVycm9yIiwoZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uIEV2YWxFcnJvcihvKXtyZXR1cm4gXyhzLHRoaXMsYXJndW1lbnRzKX19KSksZXhwb3J0R2xvYmFsRXJyb3JDYXVzZVdyYXBwZXIoIlJhbmdlRXJyb3IiLChmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24gUmFuZ2VFcnJvcihvKXtyZXR1cm4gXyhzLHRoaXMsYXJndW1lbnRzKX19KSksZXhwb3J0R2xvYmFsRXJyb3JDYXVzZVdyYXBwZXIoIlJlZmVyZW5jZUVycm9yIiwoZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uIFJlZmVyZW5jZUVycm9yKG8pe3JldHVybiBfKHMsdGhpcyxhcmd1bWVudHMpfX0pKSxleHBvcnRHbG9iYWxFcnJvckNhdXNlV3JhcHBlcigiU3ludGF4RXJyb3IiLChmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24gU3ludGF4RXJyb3Iobyl7cmV0dXJuIF8ocyx0aGlzLGFyZ3VtZW50cyl9fSkpLGV4cG9ydEdsb2JhbEVycm9yQ2F1c2VXcmFwcGVyKCJUeXBlRXJyb3IiLChmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24gVHlwZUVycm9yKG8pe3JldHVybiBfKHMsdGhpcyxhcmd1bWVudHMpfX0pKSxleHBvcnRHbG9iYWxFcnJvckNhdXNlV3JhcHBlcigiVVJJRXJyb3IiLChmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24gVVJJRXJyb3Iobyl7cmV0dXJuIF8ocyx0aGlzLGFyZ3VtZW50cyl9fSkpLGV4cG9ydFdlYkFzc2VtYmx5RXJyb3JDYXVzZVdyYXBwZXIoIkNvbXBpbGVFcnJvciIsKGZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbiBDb21waWxlRXJyb3Iobyl7cmV0dXJuIF8ocyx0aGlzLGFyZ3VtZW50cyl9fSkpLGV4cG9ydFdlYkFzc2VtYmx5RXJyb3JDYXVzZVdyYXBwZXIoIkxpbmtFcnJvciIsKGZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbiBMaW5rRXJyb3Iobyl7cmV0dXJuIF8ocyx0aGlzLGFyZ3VtZW50cyl9fSkpLGV4cG9ydFdlYkFzc2VtYmx5RXJyb3JDYXVzZVdyYXBwZXIoIlJ1bnRpbWVFcnJvciIsKGZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbiBSdW50aW1lRXJyb3Iobyl7cmV0dXJuIF8ocyx0aGlzLGFyZ3VtZW50cyl9fSkpfSw5Njc5NDoocyxvLGkpPT57InVzZSBzdHJpY3QiO3ZhciBhPWkoNDU5NTEpLm5hdmlnYXRvcix1PWEmJmEudXNlckFnZW50O3MuZXhwb3J0cz11P1N0cmluZyh1KToiIn0sOTgwMjM6KHMsbyxpKT0+e3ZhciBhPWkoNzI1NTIpLHU9aSg0MDM0Nik7cy5leHBvcnRzPWZ1bmN0aW9uIGlzTnVtYmVyKHMpe3JldHVybiJudW1iZXIiPT10eXBlb2Ygc3x8dShzKSYmIltvYmplY3QgTnVtYmVyXSI9PWEocyl9fSw5ODgyODpzPT57InVzZSBzdHJpY3QiO3MuZXhwb3J0cz1mdW5jdGlvbihzKXt0cnl7cmV0dXJuISFzKCl9Y2F0Y2gocyl7cmV0dXJuITB9fX0sOTkzNjM6KHMsbyxpKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYT1pKDQ5OTMpLHU9aSg0MjE1NiksXz1pKDkzNzQyKSx3PWkoNjQ5MzIpLHg9aSg3NDI4NCkuZixDPWkoNjAxODMpLGo9aSg1OTU1MCksTD1pKDczNzYpLEI9aSgzOTQ0NyksJD0iQXJyYXkgSXRlcmF0b3IiLFY9dy5zZXQsVT13LmdldHRlckZvcigkKTtzLmV4cG9ydHM9QyhBcnJheSwiQXJyYXkiLChmdW5jdGlvbihzLG8pe1YodGhpcyx7dHlwZTokLHRhcmdldDphKHMpLGluZGV4OjAsa2luZDpvfSl9KSwoZnVuY3Rpb24oKXt2YXIgcz1VKHRoaXMpLG89cy50YXJnZXQsaT1zLmluZGV4Kys7aWYoIW98fGk+PW8ubGVuZ3RoKXJldHVybiBzLnRhcmdldD1udWxsLGoodm9pZCAwLCEwKTtzd2l0Y2gocy5raW5kKXtjYXNlImtleXMiOnJldHVybiBqKGksITEpO2Nhc2UidmFsdWVzIjpyZXR1cm4gaihvW2ldLCExKX1yZXR1cm4gaihbaSxvW2ldXSwhMSl9KSwidmFsdWVzIik7dmFyIHo9Xy5Bcmd1bWVudHM9Xy5BcnJheTtpZih1KCJrZXlzIiksdSgidmFsdWVzIiksdSgiZW50cmllcyIpLCFMJiZCJiYidmFsdWVzIiE9PXoubmFtZSl0cnl7eCh6LCJuYW1lIix7dmFsdWU6InZhbHVlcyJ9KX1jYXRjaChzKXt9fSw5OTM3NDoocyxvLGkpPT57dmFyIGE9aSg1NDEyOCksdT1pKDIzODA1KSxfPWkoNDQzOTQpLHc9L15bLStdMHhbMC05YS1mXSskL2kseD0vXjBiWzAxXSskL2ksQz0vXjBvWzAtN10rJC9pLGo9cGFyc2VJbnQ7cy5leHBvcnRzPWZ1bmN0aW9uIHRvTnVtYmVyKHMpe2lmKCJudW1iZXIiPT10eXBlb2YgcylyZXR1cm4gcztpZihfKHMpKXJldHVybiBOYU47aWYodShzKSl7dmFyIG89ImZ1bmN0aW9uIj09dHlwZW9mIHMudmFsdWVPZj9zLnZhbHVlT2YoKTpzO3M9dShvKT9vKyIiOm99aWYoInN0cmluZyIhPXR5cGVvZiBzKXJldHVybiAwPT09cz9zOitzO3M9YShzKTt2YXIgaT14LnRlc3Qocyk7cmV0dXJuIGl8fEMudGVzdChzKT9qKHMuc2xpY2UoMiksaT8yOjgpOncudGVzdChzKT9OYU46K3N9fX0sbz17fTtmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKGkpe3ZhciBhPW9baV07aWYodm9pZCAwIT09YSlyZXR1cm4gYS5leHBvcnRzO3ZhciB1PW9baV09e2lkOmksbG9hZGVkOiExLGV4cG9ydHM6e319O3JldHVybiBzW2ldLmNhbGwodS5leHBvcnRzLHUsdS5leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pLHUubG9hZGVkPSEwLHUuZXhwb3J0c31fX3dlYnBhY2tfcmVxdWlyZV9fLm49cz0+e3ZhciBvPXMmJnMuX19lc01vZHVsZT8oKT0+cy5kZWZhdWx0OigpPT5zO3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobyx7YTpvfSksb30sX193ZWJwYWNrX3JlcXVpcmVfXy5kPShzLG8pPT57Zm9yKHZhciBpIGluIG8pX193ZWJwYWNrX3JlcXVpcmVfXy5vKG8saSkmJiFfX3dlYnBhY2tfcmVxdWlyZV9fLm8ocyxpKSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsaSx7ZW51bWVyYWJsZTohMCxnZXQ6b1tpXX0pfSxfX3dlYnBhY2tfcmVxdWlyZV9fLmc9ZnVuY3Rpb24oKXtpZigib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMpcmV0dXJuIGdsb2JhbFRoaXM7dHJ5e3JldHVybiB0aGlzfHxuZXcgRnVuY3Rpb24oInJldHVybiB0aGlzIikoKX1jYXRjaChzKXtpZigib2JqZWN0Ij09dHlwZW9mIHdpbmRvdylyZXR1cm4gd2luZG93fX0oKSxfX3dlYnBhY2tfcmVxdWlyZV9fLm89KHMsbyk9Pk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLG8pLF9fd2VicGFja19yZXF1aXJlX18ucj1zPT57InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sX193ZWJwYWNrX3JlcXVpcmVfXy5ubWQ9cz0+KHMucGF0aHM9W10scy5jaGlsZHJlbnx8KHMuY2hpbGRyZW49W10pLHMpO3ZhciBpPXt9OygoKT0+eyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoaSx7ZGVmYXVsdDooKT0+SlR9KTt2YXIgcz17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIocyksX193ZWJwYWNrX3JlcXVpcmVfXy5kKHMse0NMRUFSOigpPT5hdCxDTEVBUl9CWTooKT0+Y3QsTkVXX0FVVEhfRVJSOigpPT5pdCxORVdfU1BFQ19FUlI6KCk9PnN0LE5FV19TUEVDX0VSUl9CQVRDSDooKT0+b3QsTkVXX1RIUk9XTl9FUlI6KCk9PnJ0LE5FV19USFJPV05fRVJSX0JBVENIOigpPT5udCxjbGVhcjooKT0+Y2xlYXIsY2xlYXJCeTooKT0+Y2xlYXJCeSxuZXdBdXRoRXJyOigpPT5uZXdBdXRoRXJyLG5ld1NwZWNFcnI6KCk9Pm5ld1NwZWNFcnIsbmV3U3BlY0VyckJhdGNoOigpPT5uZXdTcGVjRXJyQmF0Y2gsbmV3VGhyb3duRXJyOigpPT5uZXdUaHJvd25FcnIsbmV3VGhyb3duRXJyQmF0Y2g6KCk9Pm5ld1Rocm93bkVyckJhdGNofSk7dmFyIG89e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKG8pLF9fd2VicGFja19yZXF1aXJlX18uZChvLHtBVVRIT1JJWkU6KCk9PlJ0LEFVVEhPUklaRV9PQVVUSDI6KCk9Pkx0LENPTkZJR1VSRV9BVVRIOigpPT5GdCxMT0dPVVQ6KCk9PkR0LFJFU1RPUkVfQVVUSE9SSVpBVElPTjooKT0+QnQsU0hPV19BVVRIX1BPUFVQOigpPT5NdCxhdXRoUG9wdXA6KCk9PmF1dGhQb3B1cCxhdXRob3JpemU6KCk9PmF1dGhvcml6ZSxhdXRob3JpemVBY2Nlc3NDb2RlV2l0aEJhc2ljQXV0aGVudGljYXRpb246KCk9PmF1dGhvcml6ZUFjY2Vzc0NvZGVXaXRoQmFzaWNBdXRoZW50aWNhdGlvbixhdXRob3JpemVBY2Nlc3NDb2RlV2l0aEZvcm1QYXJhbXM6KCk9PmF1dGhvcml6ZUFjY2Vzc0NvZGVXaXRoRm9ybVBhcmFtcyxhdXRob3JpemVBcHBsaWNhdGlvbjooKT0+YXV0aG9yaXplQXBwbGljYXRpb24sYXV0aG9yaXplT2F1dGgyOigpPT5hdXRob3JpemVPYXV0aDIsYXV0aG9yaXplT2F1dGgyV2l0aFBlcnNpc3RPcHRpb246KCk9PmF1dGhvcml6ZU9hdXRoMldpdGhQZXJzaXN0T3B0aW9uLGF1dGhvcml6ZVBhc3N3b3JkOigpPT5hdXRob3JpemVQYXNzd29yZCxhdXRob3JpemVSZXF1ZXN0OigpPT5hdXRob3JpemVSZXF1ZXN0LGF1dGhvcml6ZVdpdGhQZXJzaXN0T3B0aW9uOigpPT5hdXRob3JpemVXaXRoUGVyc2lzdE9wdGlvbixjb25maWd1cmVBdXRoOigpPT5jb25maWd1cmVBdXRoLGxvZ291dDooKT0+bG9nb3V0LGxvZ291dFdpdGhQZXJzaXN0T3B0aW9uOigpPT5sb2dvdXRXaXRoUGVyc2lzdE9wdGlvbixwZXJzaXN0QXV0aG9yaXphdGlvbklmTmVlZGVkOigpPT5wZXJzaXN0QXV0aG9yaXphdGlvbklmTmVlZGVkLHByZUF1dGhvcml6ZUltcGxpY2l0OigpPT5wcmVBdXRob3JpemVJbXBsaWNpdCxyZXN0b3JlQXV0aG9yaXphdGlvbjooKT0+cmVzdG9yZUF1dGhvcml6YXRpb24sc2hvd0RlZmluaXRpb25zOigpPT5zaG93RGVmaW5pdGlvbnN9KTt2YXIgYT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoYSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKGEse2F1dGhvcml6ZWQ6KCk9Pkp0LGRlZmluaXRpb25zRm9yUmVxdWlyZW1lbnRzOigpPT5kZWZpbml0aW9uc0ZvclJlcXVpcmVtZW50cyxkZWZpbml0aW9uc1RvQXV0aG9yaXplOigpPT5XdCxnZXRDb25maWdzOigpPT5IdCxnZXREZWZpbml0aW9uc0J5TmFtZXM6KCk9PmdldERlZmluaXRpb25zQnlOYW1lcyxpc0F1dGhvcml6ZWQ6KCk9PmlzQXV0aG9yaXplZCxzZWxlY3RBdXRoUGF0aDooKT0+c2VsZWN0QXV0aFBhdGgsc2hvd25EZWZpbml0aW9uczooKT0+enR9KTt2YXIgdT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIodSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKHUse1RPR0dMRV9DT05GSUdTOigpPT5nbixVUERBVEVfQ09ORklHUzooKT0+bW4sZG93bmxvYWRDb25maWc6KCk9PmRvd25sb2FkQ29uZmlnLGdldENvbmZpZ0J5VXJsOigpPT5nZXRDb25maWdCeVVybCxsb2FkZWQ6KCk9PmFjdGlvbnNfbG9hZGVkLHRvZ2dsZTooKT0+dG9nZ2xlLHVwZGF0ZTooKT0+dXBkYXRlfSk7dmFyIF89e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKF8pLF9fd2VicGFja19yZXF1aXJlX18uZChfLHtnZXQ6KCk9PmdldH0pO3ZhciB3PXt9O19fd2VicGFja19yZXF1aXJlX18ucih3KSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQodyx7dHJhbnNmb3JtOigpPT50cmFuc2Zvcm19KTt2YXIgeD17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoeCksX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgse3RyYW5zZm9ybTooKT0+cGFyYW1ldGVyX29uZW9mX3RyYW5zZm9ybX0pO3ZhciBDPXt9O19fd2VicGFja19yZXF1aXJlX18ucihDKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoQyx7YWxsRXJyb3JzOigpPT5JbixsYXN0RXJyb3I6KCk9PlRufSk7dmFyIGo9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKGopLF9fd2VicGFja19yZXF1aXJlX18uZChqLHtTSE9XOigpPT5GbixVUERBVEVfRklMVEVSOigpPT5EbixVUERBVEVfTEFZT1VUOigpPT5SbixVUERBVEVfTU9ERTooKT0+TG4sY2hhbmdlTW9kZTooKT0+Y2hhbmdlTW9kZSxzaG93OigpPT5hY3Rpb25zX3Nob3csdXBkYXRlRmlsdGVyOigpPT51cGRhdGVGaWx0ZXIsdXBkYXRlTGF5b3V0OigpPT51cGRhdGVMYXlvdXR9KTt2YXIgTD17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoTCksX193ZWJwYWNrX3JlcXVpcmVfXy5kKEwse2N1cnJlbnQ6KCk9PmN1cnJlbnQsY3VycmVudEZpbHRlcjooKT0+Y3VycmVudEZpbHRlcixpc1Nob3duOigpPT5pc1Nob3duLHNob3dTdW1tYXJ5OigpPT4kbix3aGF0TW9kZTooKT0+d2hhdE1vZGV9KTt2YXIgQj17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoQiksX193ZWJwYWNrX3JlcXVpcmVfXy5kKEIse3RhZ2dlZE9wZXJhdGlvbnM6KCk9PnRhZ2dlZE9wZXJhdGlvbnN9KTt2YXIgJD17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoJCksX193ZWJwYWNrX3JlcXVpcmVfXy5kKCQse2dldEFjdGl2ZUxhbmd1YWdlOigpPT5VbixnZXREZWZhdWx0RXhwYW5kZWQ6KCk9PnpuLGdldEdlbmVyYXRvcnM6KCk9PlZuLGdldFNuaXBwZXRHZW5lcmF0b3JzOigpPT5nZXRTbmlwcGV0R2VuZXJhdG9yc30pO3ZhciBWPXt9O19fd2VicGFja19yZXF1aXJlX18ucihWKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoVix7SnNvblNjaGVtYUFycmF5SXRlbUZpbGU6KCk9Pkpzb25TY2hlbWFBcnJheUl0ZW1GaWxlLEpzb25TY2hlbWFBcnJheUl0ZW1UZXh0OigpPT5Kc29uU2NoZW1hQXJyYXlJdGVtVGV4dCxKc29uU2NoZW1hRm9ybTooKT0+SnNvblNjaGVtYUZvcm0sSnNvblNjaGVtYV9hcnJheTooKT0+SnNvblNjaGVtYV9hcnJheSxKc29uU2NoZW1hX2Jvb2xlYW46KCk9Pkpzb25TY2hlbWFfYm9vbGVhbixKc29uU2NoZW1hX29iamVjdDooKT0+SnNvblNjaGVtYV9vYmplY3QsSnNvblNjaGVtYV9zdHJpbmc6KCk9Pkpzb25TY2hlbWFfc3RyaW5nfSk7dmFyIFU9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKFUpLF9fd2VicGFja19yZXF1aXJlX18uZChVLHthbGxvd1RyeUl0T3V0Rm9yOigpPT5hbGxvd1RyeUl0T3V0Rm9yLGJhc2VQYXRoOigpPT5IcyxjYW5FeGVjdXRlU2NoZW1lOigpPT5jYW5FeGVjdXRlU2NoZW1lLGNvbnN1bWVzOigpPT5Wcyxjb25zdW1lc09wdGlvbnNGb3I6KCk9PmNvbnN1bWVzT3B0aW9uc0Zvcixjb250ZW50VHlwZVZhbHVlczooKT0+Y29udGVudFR5cGVWYWx1ZXMsY3VycmVudFByb2R1Y2VzRm9yOigpPT5jdXJyZW50UHJvZHVjZXNGb3IsZGVmaW5pdGlvbnM6KCk9PkpzLGV4dGVybmFsRG9jczooKT0+RHMsZmluZERlZmluaXRpb246KCk9PmZpbmREZWZpbml0aW9uLGdldE9BUzNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGU6KCk9PmdldE9BUzNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGUsZ2V0UGFyYW1ldGVyOigpPT5nZXRQYXJhbWV0ZXIsaGFzSG9zdDooKT0+cm8saG9zdDooKT0+S3MsaW5mbzooKT0+UnMsaXNNZWRpYVR5cGVTY2hlbWFQcm9wZXJ0aWVzRXF1YWw6KCk9PmlzTWVkaWFUeXBlU2NoZW1hUHJvcGVydGllc0VxdWFsLGlzT0FTMzooKT0+TXMsbGFzdEVycm9yOigpPT5PcyxtdXRhdGVkUmVxdWVzdEZvcjooKT0+bXV0YXRlZFJlcXVlc3RGb3IsbXV0YXRlZFJlcXVlc3RzOigpPT50byxvcGVyYXRpb25TY2hlbWU6KCk9Pm9wZXJhdGlvblNjaGVtZSxvcGVyYXRpb25XaXRoTWV0YTooKT0+b3BlcmF0aW9uV2l0aE1ldGEsb3BlcmF0aW9uczooKT0+cXMsb3BlcmF0aW9uc1dpdGhSb290SW5oZXJpdGVkOigpPT5ZcyxvcGVyYXRpb25zV2l0aFRhZ3M6KCk9PlFzLHBhcmFtZXRlckluY2x1c2lvblNldHRpbmdGb3I6KCk9PnBhcmFtZXRlckluY2x1c2lvblNldHRpbmdGb3IscGFyYW1ldGVyVmFsdWVzOigpPT5wYXJhbWV0ZXJWYWx1ZXMscGFyYW1ldGVyV2l0aE1ldGE6KCk9PnBhcmFtZXRlcldpdGhNZXRhLHBhcmFtZXRlcldpdGhNZXRhQnlJZGVudGl0eTooKT0+cGFyYW1ldGVyV2l0aE1ldGFCeUlkZW50aXR5LHBhcmFtZXRlcnNJbmNsdWRlSW46KCk9PnBhcmFtZXRlcnNJbmNsdWRlSW4scGFyYW1ldGVyc0luY2x1ZGVUeXBlOigpPT5wYXJhbWV0ZXJzSW5jbHVkZVR5cGUscGF0aHM6KCk9PkJzLHByb2R1Y2VzOigpPT5Vcyxwcm9kdWNlc09wdGlvbnNGb3I6KCk9PnByb2R1Y2VzT3B0aW9uc0ZvcixyZXF1ZXN0Rm9yOigpPT5yZXF1ZXN0Rm9yLHJlcXVlc3RzOigpPT5lbyxyZXNwb25zZUZvcjooKT0+cmVzcG9uc2VGb3IscmVzcG9uc2VzOigpPT5acyxzY2hlbWVzOigpPT5HcyxzZWN1cml0eTooKT0+enMsc2VjdXJpdHlEZWZpbml0aW9uczooKT0+V3Msc2VtdmVyOigpPT5GcyxzcGVjOigpPT5zcGVjLHNwZWNKUzooKT0+SXMsc3BlY0pzb246KCk9PlBzLHNwZWNKc29uV2l0aFJlc29sdmVkU3VidHJlZXM6KCk9Pk5zLHNwZWNSZXNvbHZlZDooKT0+VHMsc3BlY1Jlc29sdmVkU3VidHJlZTooKT0+c3BlY1Jlc29sdmVkU3VidHJlZSxzcGVjU291cmNlOigpPT5qcyxzcGVjU3RyOigpPT5Bcyx0YWdEZXRhaWxzOigpPT50YWdEZXRhaWxzLHRhZ2dlZE9wZXJhdGlvbnM6KCk9PnNlbGVjdG9yc190YWdnZWRPcGVyYXRpb25zLHRhZ3M6KCk9PlhzLHVybDooKT0+Q3MsdmFsaWRPcGVyYXRpb25NZXRob2RzOigpPT4kcyx2YWxpZGF0ZUJlZm9yZUV4ZWN1dGU6KCk9PnZhbGlkYXRlQmVmb3JlRXhlY3V0ZSx2YWxpZGF0aW9uRXJyb3JzOigpPT52YWxpZGF0aW9uRXJyb3JzLHZlcnNpb246KCk9PkxzfSk7dmFyIHo9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKHopLF9fd2VicGFja19yZXF1aXJlX18uZCh6LHtDTEVBUl9SRVFVRVNUOigpPT53byxDTEVBUl9SRVNQT05TRTooKT0+RW8sQ0xFQVJfVkFMSURBVEVfUEFSQU1TOigpPT54byxMT0dfUkVRVUVTVDooKT0+U28sU0VUX01VVEFURURfUkVRVUVTVDooKT0+X28sU0VUX1JFUVVFU1Q6KCk9PmJvLFNFVF9SRVNQT05TRTooKT0+dm8sU0VUX1NDSEVNRTooKT0+QW8sVVBEQVRFX0VNUFRZX1BBUkFNX0lOQ0xVU0lPTjooKT0+Z28sVVBEQVRFX0pTT046KCk9PmZvLFVQREFURV9PUEVSQVRJT05fTUVUQV9WQUxVRTooKT0+a28sVVBEQVRFX1BBUkFNOigpPT5tbyxVUERBVEVfUkVTT0xWRUQ6KCk9Pk9vLFVQREFURV9SRVNPTFZFRF9TVUJUUkVFOigpPT5DbyxVUERBVEVfU1BFQzooKT0+cG8sVVBEQVRFX1VSTDooKT0+aG8sVkFMSURBVEVfUEFSQU1TOigpPT55byxjaGFuZ2VDb25zdW1lc1ZhbHVlOigpPT5jaGFuZ2VDb25zdW1lc1ZhbHVlLGNoYW5nZVBhcmFtOigpPT5jaGFuZ2VQYXJhbSxjaGFuZ2VQYXJhbUJ5SWRlbnRpdHk6KCk9PmNoYW5nZVBhcmFtQnlJZGVudGl0eSxjaGFuZ2VQcm9kdWNlc1ZhbHVlOigpPT5jaGFuZ2VQcm9kdWNlc1ZhbHVlLGNsZWFyUmVxdWVzdDooKT0+Y2xlYXJSZXF1ZXN0LGNsZWFyUmVzcG9uc2U6KCk9PmNsZWFyUmVzcG9uc2UsY2xlYXJWYWxpZGF0ZVBhcmFtczooKT0+Y2xlYXJWYWxpZGF0ZVBhcmFtcyxleGVjdXRlOigpPT5hY3Rpb25zX2V4ZWN1dGUsZXhlY3V0ZVJlcXVlc3Q6KCk9PmV4ZWN1dGVSZXF1ZXN0LGludmFsaWRhdGVSZXNvbHZlZFN1YnRyZWVDYWNoZTooKT0+aW52YWxpZGF0ZVJlc29sdmVkU3VidHJlZUNhY2hlLGxvZ1JlcXVlc3Q6KCk9PmxvZ1JlcXVlc3QscGFyc2VUb0pzb246KCk9PnBhcnNlVG9Kc29uLHJlcXVlc3RSZXNvbHZlZFN1YnRyZWU6KCk9PnJlcXVlc3RSZXNvbHZlZFN1YnRyZWUscmVzb2x2ZVNwZWM6KCk9PnJlc29sdmVTcGVjLHNldE11dGF0ZWRSZXF1ZXN0OigpPT5zZXRNdXRhdGVkUmVxdWVzdCxzZXRSZXF1ZXN0OigpPT5zZXRSZXF1ZXN0LHNldFJlc3BvbnNlOigpPT5zZXRSZXNwb25zZSxzZXRTY2hlbWU6KCk9PnNldFNjaGVtZSx1cGRhdGVFbXB0eVBhcmFtSW5jbHVzaW9uOigpPT51cGRhdGVFbXB0eVBhcmFtSW5jbHVzaW9uLHVwZGF0ZUpzb25TcGVjOigpPT51cGRhdGVKc29uU3BlYyx1cGRhdGVSZXNvbHZlZDooKT0+dXBkYXRlUmVzb2x2ZWQsdXBkYXRlUmVzb2x2ZWRTdWJ0cmVlOigpPT51cGRhdGVSZXNvbHZlZFN1YnRyZWUsdXBkYXRlU3BlYzooKT0+dXBkYXRlU3BlYyx1cGRhdGVVcmw6KCk9PnVwZGF0ZVVybCx2YWxpZGF0ZVBhcmFtczooKT0+dmFsaWRhdGVQYXJhbXN9KTt2YXIgWT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoWSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKFkse2V4ZWN1dGVSZXF1ZXN0OigpPT53cmFwX2FjdGlvbnNfZXhlY3V0ZVJlcXVlc3QsdXBkYXRlSnNvblNwZWM6KCk9PndyYXBfYWN0aW9uc191cGRhdGVKc29uU3BlYyx1cGRhdGVTcGVjOigpPT53cmFwX2FjdGlvbnNfdXBkYXRlU3BlYyx2YWxpZGF0ZVBhcmFtczooKT0+d3JhcF9hY3Rpb25zX3ZhbGlkYXRlUGFyYW1zfSk7dmFyIFo9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKFopLF9fd2VicGFja19yZXF1aXJlX18uZChaLHtKc29uUGF0Y2hFcnJvcjooKT0+RG8sX2FyZUVxdWFsczooKT0+X2FyZUVxdWFscyxhcHBseU9wZXJhdGlvbjooKT0+YXBwbHlPcGVyYXRpb24sYXBwbHlQYXRjaDooKT0+YXBwbHlQYXRjaCxhcHBseVJlZHVjZXI6KCk9PmFwcGx5UmVkdWNlcixkZWVwQ2xvbmU6KCk9PkxvLGdldFZhbHVlQnlQb2ludGVyOigpPT5nZXRWYWx1ZUJ5UG9pbnRlcix2YWxpZGF0ZTooKT0+dmFsaWRhdGUsdmFsaWRhdG9yOigpPT52YWxpZGF0b3J9KTt2YXIgZWU9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKGVlKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZWUse2NvbXBhcmU6KCk9PmNvbXBhcmUsZ2VuZXJhdGU6KCk9PmdlbmVyYXRlLG9ic2VydmU6KCk9Pm9ic2VydmUsdW5vYnNlcnZlOigpPT51bm9ic2VydmV9KTt2YXIgaWU9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKGllKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoaWUse2hhc0VsZW1lbnRTb3VyY2VNYXA6KCk9Pmhhc0VsZW1lbnRTb3VyY2VNYXAsaW5jbHVkZXNDbGFzc2VzOigpPT5pbmNsdWRlc0NsYXNzZXMsaW5jbHVkZXNTeW1ib2xzOigpPT5pbmNsdWRlc1N5bWJvbHMsaXNBbm5vdGF0aW9uRWxlbWVudDooKT0+QnUsaXNBcnJheUVsZW1lbnQ6KCk9PlJ1LGlzQm9vbGVhbkVsZW1lbnQ6KCk9Pk51LGlzQ29tbWVudEVsZW1lbnQ6KCk9PiR1LGlzRWxlbWVudDooKT0+anUsaXNMaW5rRWxlbWVudDooKT0+THUsaXNNZW1iZXJFbGVtZW50OigpPT5EdSxpc051bGxFbGVtZW50OigpPT5UdSxpc051bWJlckVsZW1lbnQ6KCk9Pkl1LGlzT2JqZWN0RWxlbWVudDooKT0+TXUsaXNQYXJzZVJlc3VsdEVsZW1lbnQ6KCk9PnF1LGlzUHJpbWl0aXZlRWxlbWVudDooKT0+aXNQcmltaXRpdmVFbGVtZW50LGlzUmVmRWxlbWVudDooKT0+RnUsaXNTb3VyY2VNYXBFbGVtZW50OigpPT5WdSxpc1N0cmluZ0VsZW1lbnQ6KCk9PlB1fSk7dmFyIGFlPXt9O19fd2VicGFja19yZXF1aXJlX18ucihhZSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKGFlLHtpc0pTT05SZWZlcmVuY2VFbGVtZW50OigpPT5CZCxpc0pTT05TY2hlbWFFbGVtZW50OigpPT5GZCxpc0xpbmtEZXNjcmlwdGlvbkVsZW1lbnQ6KCk9PlZkLGlzTWVkaWFFbGVtZW50OigpPT4kZH0pO3ZhciBjZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoY2UpLF9fd2VicGFja19yZXF1aXJlX18uZChjZSx7aXNCb29sZWFuSnNvblNjaGVtYUVsZW1lbnQ6KCk9PmlzQm9vbGVhbkpzb25TY2hlbWFFbGVtZW50LGlzQ2FsbGJhY2tFbGVtZW50OigpPT5NbSxpc0NvbXBvbmVudHNFbGVtZW50OigpPT5SbSxpc0NvbnRhY3RFbGVtZW50OigpPT5EbSxpc0V4YW1wbGVFbGVtZW50OigpPT5MbSxpc0V4dGVybmFsRG9jdW1lbnRhdGlvbkVsZW1lbnQ6KCk9PkZtLGlzSGVhZGVyRWxlbWVudDooKT0+Qm0saXNJbmZvRWxlbWVudDooKT0+JG0saXNMaWNlbnNlRWxlbWVudDooKT0+cW0saXNMaW5rRWxlbWVudDooKT0+Vm0saXNNZWRpYVR5cGVFbGVtZW50OigpPT5vZyxpc09wZW5BcGkzXzBFbGVtZW50OigpPT56bSxpc09wZW5hcGlFbGVtZW50OigpPT5VbSxpc09wZXJhdGlvbkVsZW1lbnQ6KCk9PldtLGlzUGFyYW1ldGVyRWxlbWVudDooKT0+Sm0saXNQYXRoSXRlbUVsZW1lbnQ6KCk9PkhtLGlzUGF0aHNFbGVtZW50OigpPT5LbSxpc1JlZmVyZW5jZUVsZW1lbnQ6KCk9PkdtLGlzUmVxdWVzdEJvZHlFbGVtZW50OigpPT5ZbSxpc1Jlc3BvbnNlRWxlbWVudDooKT0+WG0saXNSZXNwb25zZXNFbGVtZW50OigpPT5RbSxpc1NjaGVtYUVsZW1lbnQ6KCk9PlptLGlzU2VjdXJpdHlSZXF1aXJlbWVudEVsZW1lbnQ6KCk9PmVnLGlzU2VjdXJpdHlTY2hlbWVFbGVtZW50OigpPT5yZyxpc1NlcnZlckVsZW1lbnQ6KCk9Pm5nLGlzU2VydmVyVmFyaWFibGVFbGVtZW50OigpPT5zZyxpc1NlcnZlcnNFbGVtZW50OigpPT5sZ30pO3ZhciBsZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIobGUpLF9fd2VicGFja19yZXF1aXJlX18uZChsZSx7aXNKU09OUmVmZXJlbmNlRWxlbWVudDooKT0+QmQsaXNKU09OU2NoZW1hRWxlbWVudDooKT0+eV8saXNMaW5rRGVzY3JpcHRpb25FbGVtZW50OigpPT52Xyxpc01lZGlhRWxlbWVudDooKT0+JGR9KTt2YXIgcGU9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKHBlKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQocGUse2lzSlNPTlJlZmVyZW5jZUVsZW1lbnQ6KCk9PkJkLGlzSlNPTlNjaGVtYUVsZW1lbnQ6KCk9PkFfLGlzTGlua0Rlc2NyaXB0aW9uRWxlbWVudDooKT0+al99KTt2YXIgZGU9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKGRlKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZGUse2lzSlNPTlNjaGVtYUVsZW1lbnQ6KCk9PkdfLGlzTGlua0Rlc2NyaXB0aW9uRWxlbWVudDooKT0+WV99KTt2YXIgZmU9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKGZlKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZmUse2lzSlNPTlNjaGVtYUVsZW1lbnQ6KCk9PmlTLGlzTGlua0Rlc2NyaXB0aW9uRWxlbWVudDooKT0+YVN9KTt2YXIgeWU9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKHllKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeWUse2lzQm9vbGVhbkpzb25TY2hlbWFFbGVtZW50OigpPT5wcmVkaWNhdGVzX2lzQm9vbGVhbkpzb25TY2hlbWFFbGVtZW50LGlzQ2FsbGJhY2tFbGVtZW50OigpPT5XUyxpc0NvbXBvbmVudHNFbGVtZW50OigpPT5KUyxpc0NvbnRhY3RFbGVtZW50OigpPT5IUyxpc0V4YW1wbGVFbGVtZW50OigpPT5LUyxpc0V4dGVybmFsRG9jdW1lbnRhdGlvbkVsZW1lbnQ6KCk9PkdTLGlzSGVhZGVyRWxlbWVudDooKT0+WVMsaXNJbmZvRWxlbWVudDooKT0+WFMsaXNKc29uU2NoZW1hRGlhbGVjdEVsZW1lbnQ6KCk9PlFTLGlzTGljZW5zZUVsZW1lbnQ6KCk9PlpTLGlzTGlua0VsZW1lbnQ6KCk9PmVFLGlzTWVkaWFUeXBlRWxlbWVudDooKT0+Z0UsaXNPcGVuQXBpM18xRWxlbWVudDooKT0+ckUsaXNPcGVuYXBpRWxlbWVudDooKT0+dEUsaXNPcGVyYXRpb25FbGVtZW50OigpPT5uRSxpc1BhcmFtZXRlckVsZW1lbnQ6KCk9PnNFLGlzUGF0aEl0ZW1FbGVtZW50OigpPT5vRSxpc1BhdGhJdGVtRWxlbWVudEV4dGVybmFsOigpPT5pc1BhdGhJdGVtRWxlbWVudEV4dGVybmFsLGlzUGF0aHNFbGVtZW50OigpPT5pRSxpc1JlZmVyZW5jZUVsZW1lbnQ6KCk9PmFFLGlzUmVmZXJlbmNlRWxlbWVudEV4dGVybmFsOigpPT5pc1JlZmVyZW5jZUVsZW1lbnRFeHRlcm5hbCxpc1JlcXVlc3RCb2R5RWxlbWVudDooKT0+Y0UsaXNSZXNwb25zZUVsZW1lbnQ6KCk9PmxFLGlzUmVzcG9uc2VzRWxlbWVudDooKT0+dUUsaXNTY2hlbWFFbGVtZW50OigpPT5wRSxpc1NlY3VyaXR5UmVxdWlyZW1lbnRFbGVtZW50OigpPT5oRSxpc1NlY3VyaXR5U2NoZW1lRWxlbWVudDooKT0+ZEUsaXNTZXJ2ZXJFbGVtZW50OigpPT5mRSxpc1NlcnZlclZhcmlhYmxlRWxlbWVudDooKT0+bUV9KTt2YXIgYmU9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKGJlKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoYmUse2Nvb2tpZTooKT0+Y29va2llLGhlYWRlcjooKT0+cGFyYW1ldGVyX2J1aWxkZXJzX2hlYWRlcixwYXRoOigpPT5wYXJhbWV0ZXJfYnVpbGRlcnNfcGF0aCxxdWVyeTooKT0+cXVlcnl9KTt2YXIgX2U9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKF9lKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX2Use0J1dHRvbjooKT0+QnV0dG9uLENvbDooKT0+Q29sLENvbGxhcHNlOigpPT5Db2xsYXBzZSxDb250YWluZXI6KCk9PkNvbnRhaW5lcixJbnB1dDooKT0+SW5wdXQsTGluazooKT0+bGF5b3V0X3V0aWxzX0xpbmssUm93OigpPT5Sb3csU2VsZWN0OigpPT5TZWxlY3QsVGV4dEFyZWE6KCk9PlRleHRBcmVhfSk7dmFyIFNlPXt9O19fd2VicGFja19yZXF1aXJlX18ucihTZSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKFNlLHtiYXNlUGF0aDooKT0+TVAsY29uc3VtZXM6KCk9PlJQLGRlZmluaXRpb25zOigpPT5QUCxmaW5kRGVmaW5pdGlvbjooKT0+alAsaGFzSG9zdDooKT0+SVAsaG9zdDooKT0+TlAscHJvZHVjZXM6KCk9PkRQLHNjaGVtZXM6KCk9PkxQLHNlY3VyaXR5RGVmaW5pdGlvbnM6KCk9PlRQLHZhbGlkT3BlcmF0aW9uTWV0aG9kczooKT0+d3JhcF9zZWxlY3RvcnNfdmFsaWRPcGVyYXRpb25NZXRob2RzfSk7dmFyIHdlPXt9O19fd2VicGFja19yZXF1aXJlX18ucih3ZSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKHdlLHtkZWZpbml0aW9uc1RvQXV0aG9yaXplOigpPT5GUH0pO3ZhciB4ZT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoeGUpLF9fd2VicGFja19yZXF1aXJlX18uZCh4ZSx7Y2FsbGJhY2tzT3BlcmF0aW9uczooKT0+cVAsZmluZFNjaGVtYTooKT0+ZmluZFNjaGVtYSxpc09BUzM6KCk9PnNlbGVjdG9yc19pc09BUzMsaXNPQVMzMDooKT0+c2VsZWN0b3JzX2lzT0FTMzAsaXNTd2FnZ2VyMjooKT0+c2VsZWN0b3JzX2lzU3dhZ2dlcjIsc2VydmVyczooKT0+JFB9KTt2YXIgUGU9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKFBlKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoUGUse0NMRUFSX1JFUVVFU1RfQk9EWV9WQUxJREFURV9FUlJPUjooKT0+YUksQ0xFQVJfUkVRVUVTVF9CT0RZX1ZBTFVFOigpPT5jSSxTRVRfUkVRVUVTVF9CT0RZX1ZBTElEQVRFX0VSUk9SOigpPT5pSSxVUERBVEVfQUNUSVZFX0VYQU1QTEVTX01FTUJFUjooKT0+ckksVVBEQVRFX1JFUVVFU1RfQk9EWV9JTkNMVVNJT046KCk9PnRJLFVQREFURV9SRVFVRVNUX0JPRFlfVkFMVUU6KCk9PlpQLFVQREFURV9SRVFVRVNUX0JPRFlfVkFMVUVfUkVUQUlOX0ZMQUc6KCk9PmVJLFVQREFURV9SRVFVRVNUX0NPTlRFTlRfVFlQRTooKT0+bkksVVBEQVRFX1JFU1BPTlNFX0NPTlRFTlRfVFlQRTooKT0+c0ksVVBEQVRFX1NFTEVDVEVEX1NFUlZFUjooKT0+UVAsVVBEQVRFX1NFUlZFUl9WQVJJQUJMRV9WQUxVRTooKT0+b0ksY2xlYXJSZXF1ZXN0Qm9keVZhbGlkYXRlRXJyb3I6KCk9PmNsZWFyUmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yLGNsZWFyUmVxdWVzdEJvZHlWYWx1ZTooKT0+Y2xlYXJSZXF1ZXN0Qm9keVZhbHVlLGluaXRSZXF1ZXN0Qm9keVZhbGlkYXRlRXJyb3I6KCk9PmluaXRSZXF1ZXN0Qm9keVZhbGlkYXRlRXJyb3Isc2V0QWN0aXZlRXhhbXBsZXNNZW1iZXI6KCk9PnNldEFjdGl2ZUV4YW1wbGVzTWVtYmVyLHNldFJlcXVlc3RCb2R5SW5jbHVzaW9uOigpPT5zZXRSZXF1ZXN0Qm9keUluY2x1c2lvbixzZXRSZXF1ZXN0Qm9keVZhbGlkYXRlRXJyb3I6KCk9PnNldFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcixzZXRSZXF1ZXN0Qm9keVZhbHVlOigpPT5zZXRSZXF1ZXN0Qm9keVZhbHVlLHNldFJlcXVlc3RDb250ZW50VHlwZTooKT0+c2V0UmVxdWVzdENvbnRlbnRUeXBlLHNldFJlc3BvbnNlQ29udGVudFR5cGU6KCk9PnNldFJlc3BvbnNlQ29udGVudFR5cGUsc2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWc6KCk9PnNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnLHNldFNlbGVjdGVkU2VydmVyOigpPT5zZXRTZWxlY3RlZFNlcnZlcixzZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlOigpPT5zZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlfSk7dmFyIFRlPXt9O19fd2VicGFja19yZXF1aXJlX18ucihUZSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKFRlLHthY3RpdmVFeGFtcGxlc01lbWJlcjooKT0+eUksaGFzVXNlckVkaXRlZEJvZHk6KCk9PmZJLHJlcXVlc3RCb2R5RXJyb3JzOigpPT5nSSxyZXF1ZXN0Qm9keUluY2x1c2lvblNldHRpbmc6KCk9Pm1JLHJlcXVlc3RCb2R5VmFsdWU6KCk9PmhJLHJlcXVlc3RDb250ZW50VHlwZTooKT0+dkkscmVzcG9uc2VDb250ZW50VHlwZTooKT0+Ykksc2VsZWN0RGVmYXVsdFJlcXVlc3RCb2R5VmFsdWU6KCk9PnNlbGVjdERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlLHNlbGVjdGVkU2VydmVyOigpPT5wSSxzZXJ2ZXJFZmZlY3RpdmVWYWx1ZTooKT0+RUksc2VydmVyVmFyaWFibGVWYWx1ZTooKT0+X0ksc2VydmVyVmFyaWFibGVzOigpPT5TSSxzaG91bGRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlOigpPT5kSSx2YWxpZE9wZXJhdGlvbk1ldGhvZHM6KCk9PnhJLHZhbGlkYXRlQmVmb3JlRXhlY3V0ZTooKT0+d0ksdmFsaWRhdGVTaGFsbG93UmVxdWlyZWQ6KCk9PnZhbGlkYXRlU2hhbGxvd1JlcXVpcmVkfSk7dmFyIFJlPV9fd2VicGFja19yZXF1aXJlX18oOTY1NDApO2Z1bmN0aW9uIGZvcm1hdFByb2RFcnJvck1lc3NhZ2Uocyl7cmV0dXJuYE1pbmlmaWVkIFJlZHV4IGVycm9yICMke3N9OyB2aXNpdCBodHRwczovL3JlZHV4LmpzLm9yZy9FcnJvcnM/Y29kZT0ke3N9IGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMuIGB9dmFyICRlPSgoKT0+ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLm9ic2VydmFibGV8fCJAQG9ic2VydmFibGUiKSgpLHJhbmRvbVN0cmluZz0oKT0+TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDcpLnNwbGl0KCIiKS5qb2luKCIuIikscWU9e0lOSVQ6YEBAcmVkdXgvSU5JVCR7cmFuZG9tU3RyaW5nKCl9YCxSRVBMQUNFOmBAQHJlZHV4L1JFUExBQ0Uke3JhbmRvbVN0cmluZygpfWAsUFJPQkVfVU5LTk9XTl9BQ1RJT046KCk9PmBAQHJlZHV4L1BST0JFX1VOS05PV05fQUNUSU9OJHtyYW5kb21TdHJpbmcoKX1gfTtmdW5jdGlvbiBpc1BsYWluT2JqZWN0KHMpe2lmKCJvYmplY3QiIT10eXBlb2Ygc3x8bnVsbD09PXMpcmV0dXJuITE7bGV0IG89cztmb3IoO251bGwhPT1PYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7KW89T2JqZWN0LmdldFByb3RvdHlwZU9mKG8pO3JldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2Yocyk9PT1vfHxudWxsPT09T2JqZWN0LmdldFByb3RvdHlwZU9mKHMpfWZ1bmN0aW9uIGNyZWF0ZVN0b3JlKHMsbyxpKXtpZigiZnVuY3Rpb24iIT10eXBlb2Ygcyl0aHJvdyBuZXcgRXJyb3IoZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgyKSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG8mJiJmdW5jdGlvbiI9PXR5cGVvZiBpfHwiZnVuY3Rpb24iPT10eXBlb2YgaSYmImZ1bmN0aW9uIj09dHlwZW9mIGFyZ3VtZW50c1szXSl0aHJvdyBuZXcgRXJyb3IoZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgwKSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG8mJnZvaWQgMD09PWkmJihpPW8sbz12b2lkIDApLHZvaWQgMCE9PWkpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBpKXRocm93IG5ldyBFcnJvcihmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDEpKTtyZXR1cm4gaShjcmVhdGVTdG9yZSkocyxvKX1sZXQgYT1zLHU9byxfPW5ldyBNYXAsdz1fLHg9MCxDPSExO2Z1bmN0aW9uIGVuc3VyZUNhbk11dGF0ZU5leHRMaXN0ZW5lcnMoKXt3PT09XyYmKHc9bmV3IE1hcCxfLmZvckVhY2goKChzLG8pPT57dy5zZXQobyxzKX0pKSl9ZnVuY3Rpb24gZ2V0U3RhdGUoKXtpZihDKXRocm93IG5ldyBFcnJvcihmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDMpKTtyZXR1cm4gdX1mdW5jdGlvbiBzdWJzY3JpYmUocyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHMpdGhyb3cgbmV3IEVycm9yKGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoNCkpO2lmKEMpdGhyb3cgbmV3IEVycm9yKGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoNSkpO2xldCBvPSEwO2Vuc3VyZUNhbk11dGF0ZU5leHRMaXN0ZW5lcnMoKTtjb25zdCBpPXgrKztyZXR1cm4gdy5zZXQoaSxzKSxmdW5jdGlvbiB1bnN1YnNjcmliZSgpe2lmKG8pe2lmKEMpdGhyb3cgbmV3IEVycm9yKGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoNikpO289ITEsZW5zdXJlQ2FuTXV0YXRlTmV4dExpc3RlbmVycygpLHcuZGVsZXRlKGkpLF89bnVsbH19fWZ1bmN0aW9uIGRpc3BhdGNoKHMpe2lmKCFpc1BsYWluT2JqZWN0KHMpKXRocm93IG5ldyBFcnJvcihmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDcpKTtpZih2b2lkIDA9PT1zLnR5cGUpdGhyb3cgbmV3IEVycm9yKGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoOCkpO2lmKCJzdHJpbmciIT10eXBlb2Ygcy50eXBlKXRocm93IG5ldyBFcnJvcihmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDE3KSk7aWYoQyl0aHJvdyBuZXcgRXJyb3IoZm9ybWF0UHJvZEVycm9yTWVzc2FnZSg5KSk7dHJ5e0M9ITAsdT1hKHUscyl9ZmluYWxseXtDPSExfXJldHVybihfPXcpLmZvckVhY2goKHM9PntzKCl9KSksc31kaXNwYXRjaCh7dHlwZTpxZS5JTklUfSk7cmV0dXJue2Rpc3BhdGNoLHN1YnNjcmliZSxnZXRTdGF0ZSxyZXBsYWNlUmVkdWNlcjpmdW5jdGlvbiByZXBsYWNlUmVkdWNlcihzKXtpZigiZnVuY3Rpb24iIT10eXBlb2Ygcyl0aHJvdyBuZXcgRXJyb3IoZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgxMCkpO2E9cyxkaXNwYXRjaCh7dHlwZTpxZS5SRVBMQUNFfSl9LFskZV06ZnVuY3Rpb24gb2JzZXJ2YWJsZSgpe2NvbnN0IHM9c3Vic2NyaWJlO3JldHVybntzdWJzY3JpYmUobyl7aWYoIm9iamVjdCIhPXR5cGVvZiBvfHxudWxsPT09byl0aHJvdyBuZXcgRXJyb3IoZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgxMSkpO2Z1bmN0aW9uIG9ic2VydmVTdGF0ZSgpe2NvbnN0IHM9bztzLm5leHQmJnMubmV4dChnZXRTdGF0ZSgpKX1vYnNlcnZlU3RhdGUoKTtyZXR1cm57dW5zdWJzY3JpYmU6cyhvYnNlcnZlU3RhdGUpfX0sWyRlXSgpe3JldHVybiB0aGlzfX19fX1mdW5jdGlvbiBiaW5kQWN0aW9uQ3JlYXRvcihzLG8pe3JldHVybiBmdW5jdGlvbiguLi5pKXtyZXR1cm4gbyhzLmFwcGx5KHRoaXMsaSkpfX1mdW5jdGlvbiBjb21wb3NlKC4uLnMpe3JldHVybiAwPT09cy5sZW5ndGg/cz0+czoxPT09cy5sZW5ndGg/c1swXTpzLnJlZHVjZSgoKHMsbyk9PiguLi5pKT0+cyhvKC4uLmkpKSkpfXZhciB6ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk0MDQpLFdlPV9fd2VicGFja19yZXF1aXJlX18ubih6ZSksSGU9X193ZWJwYWNrX3JlcXVpcmVfXyg4MTkxOSksWWU9X193ZWJwYWNrX3JlcXVpcmVfXy5uKEhlKSxYZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDg5NTkzKSxRZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDIwMzM0KSxldD1fX3dlYnBhY2tfcmVxdWlyZV9fKDU1MzY0KSx0dD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oZXQpO2NvbnN0IHJ0PSJlcnJfbmV3X3Rocm93bl9lcnIiLG50PSJlcnJfbmV3X3Rocm93bl9lcnJfYmF0Y2giLHN0PSJlcnJfbmV3X3NwZWNfZXJyIixvdD0iZXJyX25ld19zcGVjX2Vycl9iYXRjaCIsaXQ9ImVycl9uZXdfYXV0aF9lcnIiLGF0PSJlcnJfY2xlYXIiLGN0PSJlcnJfY2xlYXJfYnkiO2Z1bmN0aW9uIG5ld1Rocm93bkVycihzKXtyZXR1cm57dHlwZTpydCxwYXlsb2FkOigwLFFlLnNlcmlhbGl6ZUVycm9yKShzKX19ZnVuY3Rpb24gbmV3VGhyb3duRXJyQmF0Y2gocyl7cmV0dXJue3R5cGU6bnQscGF5bG9hZDpzfX1mdW5jdGlvbiBuZXdTcGVjRXJyKHMpe3JldHVybnt0eXBlOnN0LHBheWxvYWQ6c319ZnVuY3Rpb24gbmV3U3BlY0VyckJhdGNoKHMpe3JldHVybnt0eXBlOm90LHBheWxvYWQ6c319ZnVuY3Rpb24gbmV3QXV0aEVycihzKXtyZXR1cm57dHlwZTppdCxwYXlsb2FkOnN9fWZ1bmN0aW9uIGNsZWFyKHM9e30pe3JldHVybnt0eXBlOmF0LHBheWxvYWQ6c319ZnVuY3Rpb24gY2xlYXJCeShzPSgpPT4hMCl7cmV0dXJue3R5cGU6Y3QscGF5bG9hZDpzfX1jb25zdCBsdD1mdW5jdGlvbiBtYWtlV2luZG93KCl7dmFyIHM9e2xvY2F0aW9uOnt9LGhpc3Rvcnk6e30sb3BlbjooKT0+e30sY2xvc2U6KCk9Pnt9LEZpbGU6ZnVuY3Rpb24oKXt9LEZvcm1EYXRhOmZ1bmN0aW9uKCl7fX07aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cpcmV0dXJuIHM7dHJ5e3M9d2luZG93O2Zvcih2YXIgbyBvZlsiRmlsZSIsIkJsb2IiLCJGb3JtRGF0YSJdKW8gaW4gd2luZG93JiYoc1tvXT13aW5kb3dbb10pfWNhdGNoKHMpe2NvbnNvbGUuZXJyb3Iocyl9cmV0dXJuIHN9KCk7X193ZWJwYWNrX3JlcXVpcmVfXyg4NDA1OCksX193ZWJwYWNrX3JlcXVpcmVfXyg1NTgwOCk7dmFyIHV0PV9fd2VicGFja19yZXF1aXJlX18oNTAxMDQpLHB0PV9fd2VicGFja19yZXF1aXJlX18ubih1dCksaHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg3MzA5KSxkdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oaHQpLG10PV9fd2VicGFja19yZXF1aXJlX18oNDI0MjYpLGd0PV9fd2VicGFja19yZXF1aXJlX18ubihtdCkseXQ9X193ZWJwYWNrX3JlcXVpcmVfXyg3NTI4OCksdnQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKHl0KSxidD1fX3dlYnBhY2tfcmVxdWlyZV9fKDE4ODIpLF90PV9fd2VicGFja19yZXF1aXJlX18ubihidCksU3Q9X193ZWJwYWNrX3JlcXVpcmVfXygyMjA1KSxFdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oU3QpLHd0PV9fd2VicGFja19yZXF1aXJlX18oNTMyMDkpLHh0PV9fd2VicGFja19yZXF1aXJlX18ubih3dCksa3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2MjgwMiksT3Q9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGt0KTtjb25zdCBDdD1XZSgpLlNldC5vZigidHlwZSIsImZvcm1hdCIsIml0ZW1zIiwiZGVmYXVsdCIsIm1heGltdW0iLCJleGNsdXNpdmVNYXhpbXVtIiwibWluaW11bSIsImV4Y2x1c2l2ZU1pbmltdW0iLCJtYXhMZW5ndGgiLCJtaW5MZW5ndGgiLCJwYXR0ZXJuIiwibWF4SXRlbXMiLCJtaW5JdGVtcyIsInVuaXF1ZUl0ZW1zIiwiZW51bSIsIm11bHRpcGxlT2YiKTtmdW5jdGlvbiBnZXRQYXJhbWV0ZXJTY2hlbWEocyx7aXNPQVMzOm99PXt9KXtpZighV2UoKS5NYXAuaXNNYXAocykpcmV0dXJue3NjaGVtYTpXZSgpLk1hcCgpLHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGU6bnVsbH07aWYoIW8pcmV0dXJuImJvZHkiPT09cy5nZXQoImluIik/e3NjaGVtYTpzLmdldCgic2NoZW1hIixXZSgpLk1hcCgpKSxwYXJhbWV0ZXJDb250ZW50TWVkaWFUeXBlOm51bGx9OntzY2hlbWE6cy5maWx0ZXIoKChzLG8pPT5DdC5pbmNsdWRlcyhvKSkpLHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGU6bnVsbH07aWYocy5nZXQoImNvbnRlbnQiKSl7Y29uc3Qgbz1zLmdldCgiY29udGVudCIsV2UoKS5NYXAoe30pKS5rZXlTZXEoKS5maXJzdCgpO3JldHVybntzY2hlbWE6cy5nZXRJbihbImNvbnRlbnQiLG8sInNjaGVtYSJdLFdlKCkuTWFwKCkpLHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGU6b319cmV0dXJue3NjaGVtYTpzLmdldCgic2NoZW1hIik/cy5nZXQoInNjaGVtYSIsV2UoKS5NYXAoKSk6V2UoKS5NYXAoKSxwYXJhbWV0ZXJDb250ZW50TWVkaWFUeXBlOm51bGx9fXZhciBBdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ4Mjg3KS5CdWZmZXI7Y29uc3QganQ9ImRlZmF1bHQiLGlzSW1tdXRhYmxlPXM9PldlKCkuSXRlcmFibGUuaXNJdGVyYWJsZShzKSxpbW11dGFibGVUb0pTPXM9PmlzSW1tdXRhYmxlKHMpP3MudG9KUygpOnM7ZnVuY3Rpb24gb2JqZWN0aWZ5KHMpe3JldHVybiBpc09iamVjdChzKT9pbW11dGFibGVUb0pTKHMpOnt9fWZ1bmN0aW9uIGZyb21KU09yZGVyZWQocyl7aWYoaXNJbW11dGFibGUocykpcmV0dXJuIHM7aWYocyBpbnN0YW5jZW9mIGx0LkZpbGUpcmV0dXJuIHM7aWYoIWlzT2JqZWN0KHMpKXJldHVybiBzO2lmKEFycmF5LmlzQXJyYXkocykpcmV0dXJuIFdlKCkuU2VxKHMpLm1hcChmcm9tSlNPcmRlcmVkKS50b0xpc3QoKTtpZihfdCgpKHMuZW50cmllcykpe2NvbnN0IG89ZnVuY3Rpb24gY3JlYXRlT2JqV2l0aEhhc2hlZEtleXMocyl7aWYoIV90KCkocy5lbnRyaWVzKSlyZXR1cm4gcztjb25zdCBvPXt9LGk9Il8qKltdIixhPXt9O2ZvcihsZXQgdSBvZiBzLmVudHJpZXMoKSlpZihvW3VbMF1dfHxhW3VbMF1dJiZhW3VbMF1dLmNvbnRhaW5zTXVsdGlwbGUpe2lmKCFhW3VbMF1dKXthW3VbMF1dPXtjb250YWluc011bHRpcGxlOiEwLGxlbmd0aDoxfSxvW2Ake3VbMF19JHtpfSR7YVt1WzBdXS5sZW5ndGh9YF09b1t1WzBdXSxkZWxldGUgb1t1WzBdXX1hW3VbMF1dLmxlbmd0aCs9MSxvW2Ake3VbMF19JHtpfSR7YVt1WzBdXS5sZW5ndGh9YF09dVsxXX1lbHNlIG9bdVswXV09dVsxXTtyZXR1cm4gb30ocyk7cmV0dXJuIFdlKCkuT3JkZXJlZE1hcChvKS5tYXAoZnJvbUpTT3JkZXJlZCl9cmV0dXJuIFdlKCkuT3JkZXJlZE1hcChzKS5tYXAoZnJvbUpTT3JkZXJlZCl9ZnVuY3Rpb24gbm9ybWFsaXplQXJyYXkocyl7cmV0dXJuIEFycmF5LmlzQXJyYXkocyk/czpbc119ZnVuY3Rpb24gaXNGbihzKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygc31mdW5jdGlvbiBpc09iamVjdChzKXtyZXR1cm4hIXMmJiJvYmplY3QiPT10eXBlb2Ygc31mdW5jdGlvbiBpc0Z1bmMocyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHN9ZnVuY3Rpb24gaXNBcnJheShzKXtyZXR1cm4gQXJyYXkuaXNBcnJheShzKX1jb25zdCBQdD1wdCgpO2Z1bmN0aW9uIG9iak1hcChzLG8pe3JldHVybiBPYmplY3Qua2V5cyhzKS5yZWR1Y2UoKChpLGEpPT4oaVthXT1vKHNbYV0sYSksaSkpLHt9KX1mdW5jdGlvbiBvYmpSZWR1Y2UocyxvKXtyZXR1cm4gT2JqZWN0LmtleXMocykucmVkdWNlKCgoaSxhKT0+e2xldCB1PW8oc1thXSxhKTtyZXR1cm4gdSYmIm9iamVjdCI9PXR5cGVvZiB1JiZPYmplY3QuYXNzaWduKGksdSksaX0pLHt9KX1mdW5jdGlvbiBzeXN0ZW1UaHVua01pZGRsZXdhcmUocyl7cmV0dXJuKHtkaXNwYXRjaDpvLGdldFN0YXRlOml9KT0+bz0+aT0+ImZ1bmN0aW9uIj09dHlwZW9mIGk/aShzKCkpOm8oaSl9ZnVuY3Rpb24gdmFsaWRhdGVWYWx1ZUJ5U2NoZW1hKHMsbyxpLGEsdSl7aWYoIW8pcmV0dXJuW107bGV0IF89W10sdz1vLmdldCgibnVsbGFibGUiKSx4PW8uZ2V0KCJyZXF1aXJlZCIpLEM9by5nZXQoIm1heGltdW0iKSxqPW8uZ2V0KCJtaW5pbXVtIiksTD1vLmdldCgidHlwZSIpLEI9by5nZXQoImZvcm1hdCIpLCQ9by5nZXQoIm1heExlbmd0aCIpLFY9by5nZXQoIm1pbkxlbmd0aCIpLFU9by5nZXQoInVuaXF1ZUl0ZW1zIiksej1vLmdldCgibWF4SXRlbXMiKSxZPW8uZ2V0KCJtaW5JdGVtcyIpLFo9by5nZXQoInBhdHRlcm4iKTtjb25zdCBlZT1pfHwhMD09PXgsaWU9bnVsbCE9cyxhZT1lZXx8aWUmJiJhcnJheSI9PT1MfHwhKCFlZSYmIWllKSxjZT13JiZudWxsPT09cztpZihlZSYmIWllJiYhY2UmJiFhJiYhTClyZXR1cm4gXy5wdXNoKCJSZXF1aXJlZCBmaWVsZCBpcyBub3QgcHJvdmlkZWQiKSxfO2lmKGNlfHwhTHx8IWFlKXJldHVybltdO2xldCBsZT0ic3RyaW5nIj09PUwmJnMscGU9ImFycmF5Ij09PUwmJkFycmF5LmlzQXJyYXkocykmJnMubGVuZ3RoLGRlPSJhcnJheSI9PT1MJiZXZSgpLkxpc3QuaXNMaXN0KHMpJiZzLmNvdW50KCk7Y29uc3QgZmU9W2xlLHBlLGRlLCJhcnJheSI9PT1MJiYic3RyaW5nIj09dHlwZW9mIHMmJnMsImZpbGUiPT09TCYmcyBpbnN0YW5jZW9mIGx0LkZpbGUsImJvb2xlYW4iPT09TCYmKHN8fCExPT09cyksIm51bWJlciI9PT1MJiYoc3x8MD09PXMpLCJpbnRlZ2VyIj09PUwmJihzfHwwPT09cyksIm9iamVjdCI9PT1MJiYib2JqZWN0Ij09dHlwZW9mIHMmJm51bGwhPT1zLCJvYmplY3QiPT09TCYmInN0cmluZyI9PXR5cGVvZiBzJiZzXS5zb21lKChzPT4hIXMpKTtpZihlZSYmIWZlJiYhYSlyZXR1cm4gXy5wdXNoKCJSZXF1aXJlZCBmaWVsZCBpcyBub3QgcHJvdmlkZWQiKSxfO2lmKCJvYmplY3QiPT09TCYmKG51bGw9PT11fHwiYXBwbGljYXRpb24vanNvbiI9PT11KSl7bGV0IGk9cztpZigic3RyaW5nIj09dHlwZW9mIHMpdHJ5e2k9SlNPTi5wYXJzZShzKX1jYXRjaChzKXtyZXR1cm4gXy5wdXNoKCJQYXJhbWV0ZXIgc3RyaW5nIHZhbHVlIG11c3QgYmUgdmFsaWQgSlNPTiIpLF99byYmby5oYXMoInJlcXVpcmVkIikmJmlzRnVuYyh4LmlzTGlzdCkmJnguaXNMaXN0KCkmJnguZm9yRWFjaCgocz0+e3ZvaWQgMD09PWlbc10mJl8ucHVzaCh7cHJvcEtleTpzLGVycm9yOiJSZXF1aXJlZCBwcm9wZXJ0eSBub3QgZm91bmQifSl9KSksbyYmby5oYXMoInByb3BlcnRpZXMiKSYmby5nZXQoInByb3BlcnRpZXMiKS5mb3JFYWNoKCgocyxvKT0+e2NvbnN0IHc9dmFsaWRhdGVWYWx1ZUJ5U2NoZW1hKGlbb10scywhMSxhLHUpO18ucHVzaCguLi53Lm1hcCgocz0+KHtwcm9wS2V5Om8sZXJyb3I6c30pKSkpfSkpfWlmKFope2xldCBvPSgocyxvKT0+e2lmKCFuZXcgUmVnRXhwKG8pLnRlc3QocykpcmV0dXJuIlZhbHVlIG11c3QgZm9sbG93IHBhdHRlcm4gIitvfSkocyxaKTtvJiZfLnB1c2gobyl9aWYoWSYmImFycmF5Ij09PUwpe2xldCBvPSgocyxvKT0+e2lmKCFzJiZvPj0xfHxzJiZzLmxlbmd0aDxvKXJldHVybmBBcnJheSBtdXN0IGNvbnRhaW4gYXQgbGVhc3QgJHtvfSBpdGVtJHsxPT09bz8iIjoicyJ9YH0pKHMsWSk7byYmXy5wdXNoKG8pfWlmKHomJiJhcnJheSI9PT1MKXtsZXQgbz0oKHMsbyk9PntpZihzJiZzLmxlbmd0aD5vKXJldHVybmBBcnJheSBtdXN0IG5vdCBjb250YWluIG1vcmUgdGhlbiAke299IGl0ZW0kezE9PT1vPyIiOiJzIn1gfSkocyx6KTtvJiZfLnB1c2goe25lZWRSZW1vdmU6ITAsZXJyb3I6b30pfWlmKFUmJiJhcnJheSI9PT1MKXtsZXQgbz0oKHMsbyk9PntpZihzJiYoInRydWUiPT09b3x8ITA9PT1vKSl7Y29uc3Qgbz0oMCx6ZS5mcm9tSlMpKHMpLGk9by50b1NldCgpO2lmKHMubGVuZ3RoPmkuc2l6ZSl7bGV0IHM9KDAsemUuU2V0KSgpO2lmKG8uZm9yRWFjaCgoKGksYSk9PntvLmZpbHRlcigocz0+aXNGdW5jKHMuZXF1YWxzKT9zLmVxdWFscyhpKTpzPT09aSkpLnNpemU+MSYmKHM9cy5hZGQoYSkpfSkpLDAhPT1zLnNpemUpcmV0dXJuIHMubWFwKChzPT4oe2luZGV4OnMsZXJyb3I6Ik5vIGR1cGxpY2F0ZXMgYWxsb3dlZC4ifSkpKS50b0FycmF5KCl9fX0pKHMsVSk7byYmXy5wdXNoKC4uLm8pfWlmKCR8fDA9PT0kKXtsZXQgbz0oKHMsbyk9PntpZihzLmxlbmd0aD5vKXJldHVybmBWYWx1ZSBtdXN0IGJlIG5vIGxvbmdlciB0aGFuICR7b30gY2hhcmFjdGVyJHsxIT09bz8icyI6IiJ9YH0pKHMsJCk7byYmXy5wdXNoKG8pfWlmKFYpe2xldCBvPSgocyxvKT0+e2lmKHMubGVuZ3RoPG8pcmV0dXJuYFZhbHVlIG11c3QgYmUgYXQgbGVhc3QgJHtvfSBjaGFyYWN0ZXIkezEhPT1vPyJzIjoiIn1gfSkocyxWKTtvJiZfLnB1c2gobyl9aWYoQ3x8MD09PUMpe2xldCBvPSgocyxvKT0+e2lmKHM+bylyZXR1cm5gVmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHtvfWB9KShzLEMpO28mJl8ucHVzaChvKX1pZihqfHwwPT09ail7bGV0IG89KChzLG8pPT57aWYoczxvKXJldHVybmBWYWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAke299YH0pKHMsaik7byYmXy5wdXNoKG8pfWlmKCJzdHJpbmciPT09TCl7bGV0IG87aWYobz0iZGF0ZS10aW1lIj09PUI/KHM9PntpZihpc05hTihEYXRlLnBhcnNlKHMpKSlyZXR1cm4iVmFsdWUgbXVzdCBiZSBhIERhdGVUaW1lIn0pKHMpOiJ1dWlkIj09PUI/KHM9PntpZihzPXMudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLCEvXlt7KF0/WzAtOWEtZl17OH0tWzAtOWEtZl17NH0tWzAtOWEtZl17NH0tWzAtOWEtZl17NH0tWzAtOWEtZl17MTJ9Wyl9XT8kLy50ZXN0KHMpKXJldHVybiJWYWx1ZSBtdXN0IGJlIGEgR3VpZCJ9KShzKToocz0+e2lmKHMmJiJzdHJpbmciIT10eXBlb2YgcylyZXR1cm4iVmFsdWUgbXVzdCBiZSBhIHN0cmluZyJ9KShzKSwhbylyZXR1cm4gXztfLnB1c2gobyl9ZWxzZSBpZigiYm9vbGVhbiI9PT1MKXtsZXQgbz0ocz0+e2lmKCJ0cnVlIiE9PXMmJiJmYWxzZSIhPT1zJiYhMCE9PXMmJiExIT09cylyZXR1cm4iVmFsdWUgbXVzdCBiZSBhIGJvb2xlYW4ifSkocyk7aWYoIW8pcmV0dXJuIF87Xy5wdXNoKG8pfWVsc2UgaWYoIm51bWJlciI9PT1MKXtsZXQgbz0ocz0+e2lmKCEvXi0/XGQrKFwuP1xkKyk/JC8udGVzdChzKSlyZXR1cm4iVmFsdWUgbXVzdCBiZSBhIG51bWJlciJ9KShzKTtpZighbylyZXR1cm4gXztfLnB1c2gobyl9ZWxzZSBpZigiaW50ZWdlciI9PT1MKXtsZXQgbz0ocz0+e2lmKCEvXi0/XGQrJC8udGVzdChzKSlyZXR1cm4iVmFsdWUgbXVzdCBiZSBhbiBpbnRlZ2VyIn0pKHMpO2lmKCFvKXJldHVybiBfO18ucHVzaChvKX1lbHNlIGlmKCJhcnJheSI9PT1MKXtpZighcGUmJiFkZSlyZXR1cm4gXztzJiZzLmZvckVhY2goKChzLGkpPT57Y29uc3Qgdz12YWxpZGF0ZVZhbHVlQnlTY2hlbWEocyxvLmdldCgiaXRlbXMiKSwhMSxhLHUpO18ucHVzaCguLi53Lm1hcCgocz0+KHtpbmRleDppLGVycm9yOnN9KSkpKX0pKX1lbHNlIGlmKCJmaWxlIj09PUwpe2xldCBvPShzPT57aWYocyYmIShzIGluc3RhbmNlb2YgbHQuRmlsZSkpcmV0dXJuIlZhbHVlIG11c3QgYmUgYSBmaWxlIn0pKHMpO2lmKCFvKXJldHVybiBfO18ucHVzaChvKX1yZXR1cm4gX31jb25zdCB1dGlsc19idG9hPXM9PntsZXQgbztyZXR1cm4gbz1zIGluc3RhbmNlb2YgQXQ/czpBdC5mcm9tKHMudG9TdHJpbmcoKSwidXRmLTgiKSxvLnRvU3RyaW5nKCJiYXNlNjQiKX0sSXQ9e29wZXJhdGlvbnNTb3J0ZXI6e2FscGhhOihzLG8pPT5zLmdldCgicGF0aCIpLmxvY2FsZUNvbXBhcmUoby5nZXQoInBhdGgiKSksbWV0aG9kOihzLG8pPT5zLmdldCgibWV0aG9kIikubG9jYWxlQ29tcGFyZShvLmdldCgibWV0aG9kIikpfSx0YWdzU29ydGVyOnthbHBoYToocyxvKT0+cy5sb2NhbGVDb21wYXJlKG8pfX0sYnVpbGRGb3JtRGF0YT1zPT57bGV0IG89W107Zm9yKGxldCBpIGluIHMpe2xldCBhPXNbaV07dm9pZCAwIT09YSYmIiIhPT1hJiZvLnB1c2goW2ksIj0iLGVuY29kZVVSSUNvbXBvbmVudChhKS5yZXBsYWNlKC8lMjAvZywiKyIpXS5qb2luKCIiKSl9cmV0dXJuIG8uam9pbigiJiIpfSxzaGFsbG93RXF1YWxLZXlzPShzLG8saSk9PiEhZHQoKShpLChpPT52dCgpKHNbaV0sb1tpXSkpKTtmdW5jdGlvbiByZXF1aXJlc1ZhbGlkYXRpb25VUkwocyl7cmV0dXJuISghc3x8cy5pbmRleE9mKCJsb2NhbGhvc3QiKT49MHx8cy5pbmRleE9mKCIxMjcuMC4wLjEiKT49MHx8Im5vbmUiPT09cyl9Y29uc3QgY3JlYXRlRGVlcExpbmtQYXRoPXM9PiJzdHJpbmciPT10eXBlb2Ygc3x8cyBpbnN0YW5jZW9mIFN0cmluZz9zLnRyaW0oKS5yZXBsYWNlKC9ccy9nLCIlMjAiKToiIixlc2NhcGVEZWVwTGlua1BhdGg9cz0+RXQoKShjcmVhdGVEZWVwTGlua1BhdGgocykucmVwbGFjZSgvJTIwL2csIl8iKSksZ2V0RXh0ZW5zaW9ucz1zPT57Y29uc3Qgbz0vXngtLztyZXR1cm4gemUuTWFwLmlzTWFwKHMpP3MuZmlsdGVyKCgocyxpKT0+by50ZXN0KGkpKSk6T2JqZWN0LmtleXMocykuZmlsdGVyKChzPT5vLnRlc3QocykpKX0sZ2V0Q29tbW9uRXh0ZW5zaW9ucz1zPT5zLmZpbHRlcigoKHMsbyk9Pi9ecGF0dGVybnxtYXhMZW5ndGh8bWluTGVuZ3RofG1heGltdW18bWluaW11bS8udGVzdChvKSkpO2Z1bmN0aW9uIGRlZXBseVN0cmlwS2V5KHMsbyxpPSgpPT4hMCl7aWYoIm9iamVjdCIhPXR5cGVvZiBzfHxBcnJheS5pc0FycmF5KHMpfHxudWxsPT09c3x8IW8pcmV0dXJuIHM7Y29uc3QgYT1PYmplY3QuYXNzaWduKHt9LHMpO3JldHVybiBPYmplY3Qua2V5cyhhKS5mb3JFYWNoKChzPT57cz09PW8mJmkoYVtzXSxzKT9kZWxldGUgYVtzXTphW3NdPWRlZXBseVN0cmlwS2V5KGFbc10sbyxpKX0pKSxhfWZ1bmN0aW9uIHN0cmluZ2lmeShzKXtpZigic3RyaW5nIj09dHlwZW9mIHMpcmV0dXJuIHM7aWYocyYmcy50b0pTJiYocz1zLnRvSlMoKSksIm9iamVjdCI9PXR5cGVvZiBzJiZudWxsIT09cyl0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHMsbnVsbCwyKX1jYXRjaChvKXtyZXR1cm4gU3RyaW5nKHMpfXJldHVybiBudWxsPT1zPyIiOnMudG9TdHJpbmcoKX1mdW5jdGlvbiBwYXJhbVRvSWRlbnRpZmllcihzLHtyZXR1cm5BbGw6bz0hMSxhbGxvd0hhc2hlczppPSEwfT17fSl7aWYoIVdlKCkuTWFwLmlzTWFwKHMpKXRocm93IG5ldyBFcnJvcigicGFyYW1Ub0lkZW50aWZpZXI6IHJlY2VpdmVkIGEgbm9uLUltLk1hcCBwYXJhbWV0ZXIgYXMgaW5wdXQiKTtjb25zdCBhPXMuZ2V0KCJuYW1lIiksdT1zLmdldCgiaW4iKTtsZXQgXz1bXTtyZXR1cm4gcyYmcy5oYXNoQ29kZSYmdSYmYSYmaSYmXy5wdXNoKGAke3V9LiR7YX0uaGFzaC0ke3MuaGFzaENvZGUoKX1gKSx1JiZhJiZfLnB1c2goYCR7dX0uJHthfWApLF8ucHVzaChhKSxvP186X1swXXx8IiJ9ZnVuY3Rpb24gcGFyYW1Ub1ZhbHVlKHMsbyl7cmV0dXJuIHBhcmFtVG9JZGVudGlmaWVyKHMse3JldHVybkFsbDohMH0pLm1hcCgocz0+b1tzXSkpLmZpbHRlcigocz0+dm9pZCAwIT09cykpWzBdfWZ1bmN0aW9uIGI2NHRvQjY0VXJsRW5jb2RlZChzKXtyZXR1cm4gcy5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0vZywiIil9Y29uc3QgaXNFbXB0eVZhbHVlPXM9PiFzfHwhKCFpc0ltbXV0YWJsZShzKXx8IXMuaXNFbXB0eSgpKSxpZEZuPXM9PnM7ZnVuY3Rpb24gY3JlYXRlU3RvcmVXaXRoTWlkZGxld2FyZShzLG8saSl7bGV0IGE9W3N5c3RlbVRodW5rTWlkZGxld2FyZShpKV07cmV0dXJuIGNyZWF0ZVN0b3JlKHMsbywobHQuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fQ09NUE9TRV9ffHxjb21wb3NlKShmdW5jdGlvbiBhcHBseU1pZGRsZXdhcmUoLi4ucyl7cmV0dXJuIG89PihpLGEpPT57Y29uc3QgdT1vKGksYSk7bGV0IGRpc3BhdGNoPSgpPT57dGhyb3cgbmV3IEVycm9yKGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMTUpKX07Y29uc3QgXz17Z2V0U3RhdGU6dS5nZXRTdGF0ZSxkaXNwYXRjaDoocywuLi5vKT0+ZGlzcGF0Y2gocywuLi5vKX0sdz1zLm1hcCgocz0+cyhfKSkpO3JldHVybiBkaXNwYXRjaD1jb21wb3NlKC4uLncpKHUuZGlzcGF0Y2gpLHsuLi51LGRpc3BhdGNofX19KC4uLmEpKSl9Y2xhc3MgU3RvcmV7Y29uc3RydWN0b3Iocz17fSl7WWUoKSh0aGlzLHtzdGF0ZTp7fSxwbHVnaW5zOltdLHN5c3RlbTp7Y29uZmlnczp7fSxmbjp7fSxjb21wb25lbnRzOnt9LHJvb3RJbmplY3RzOnt9LHN0YXRlUGx1Z2luczp7fX0sYm91bmRTeXN0ZW06e30sdG9vbGJveDp7fX0scyksdGhpcy5nZXRTeXN0ZW09dGhpcy5fZ2V0U3lzdGVtLmJpbmQodGhpcyksdGhpcy5zdG9yZT1mdW5jdGlvbiBjb25maWd1cmVTdG9yZShzLG8saSl7cmV0dXJuIGNyZWF0ZVN0b3JlV2l0aE1pZGRsZXdhcmUocyxvLGkpfShpZEZuLCgwLHplLmZyb21KUykodGhpcy5zdGF0ZSksdGhpcy5nZXRTeXN0ZW0pLHRoaXMuYnVpbGRTeXN0ZW0oITEpLHRoaXMucmVnaXN0ZXIodGhpcy5wbHVnaW5zKX1nZXRTdG9yZSgpe3JldHVybiB0aGlzLnN0b3JlfXJlZ2lzdGVyKHMsbz0hMCl7dmFyIGk9Y29tYmluZVBsdWdpbnMocyx0aGlzLmdldFN5c3RlbSgpKTtzeXN0ZW1FeHRlbmQodGhpcy5zeXN0ZW0saSksbyYmdGhpcy5idWlsZFN5c3RlbSgpO2NhbGxBZnRlckxvYWQuY2FsbCh0aGlzLnN5c3RlbSxzLHRoaXMuZ2V0U3lzdGVtKCkpJiZ0aGlzLmJ1aWxkU3lzdGVtKCl9YnVpbGRTeXN0ZW0ocz0hMCl7bGV0IG89dGhpcy5nZXRTdG9yZSgpLmRpc3BhdGNoLGk9dGhpcy5nZXRTdG9yZSgpLmdldFN0YXRlO3RoaXMuYm91bmRTeXN0ZW09T2JqZWN0LmFzc2lnbih7fSx0aGlzLmdldFJvb3RJbmplY3RzKCksdGhpcy5nZXRXcmFwcGVkQW5kQm91bmRBY3Rpb25zKG8pLHRoaXMuZ2V0V3JhcHBlZEFuZEJvdW5kU2VsZWN0b3JzKGksdGhpcy5nZXRTeXN0ZW0pLHRoaXMuZ2V0U3RhdGVUaHVua3MoaSksdGhpcy5nZXRGbigpLHRoaXMuZ2V0Q29uZmlncygpKSxzJiZ0aGlzLnJlYnVpbGRSZWR1Y2VyKCl9X2dldFN5c3RlbSgpe3JldHVybiB0aGlzLmJvdW5kU3lzdGVtfWdldFJvb3RJbmplY3RzKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe2dldFN5c3RlbTp0aGlzLmdldFN5c3RlbSxnZXRTdG9yZTp0aGlzLmdldFN0b3JlLmJpbmQodGhpcyksZ2V0Q29tcG9uZW50czp0aGlzLmdldENvbXBvbmVudHMuYmluZCh0aGlzKSxnZXRTdGF0ZTp0aGlzLmdldFN0b3JlKCkuZ2V0U3RhdGUsZ2V0Q29uZmlnczp0aGlzLl9nZXRDb25maWdzLmJpbmQodGhpcyksSW06V2UoKSxSZWFjdDpSZX0sdGhpcy5zeXN0ZW0ucm9vdEluamVjdHN8fHt9KX1fZ2V0Q29uZmlncygpe3JldHVybiB0aGlzLnN5c3RlbS5jb25maWdzfWdldENvbmZpZ3MoKXtyZXR1cm57Y29uZmlnczp0aGlzLnN5c3RlbS5jb25maWdzfX1zZXRDb25maWdzKHMpe3RoaXMuc3lzdGVtLmNvbmZpZ3M9c31yZWJ1aWxkUmVkdWNlcigpe3RoaXMuc3RvcmUucmVwbGFjZVJlZHVjZXIoZnVuY3Rpb24gYnVpbGRSZWR1Y2VyKHMsbyl7cmV0dXJuIGZ1bmN0aW9uIGFsbFJlZHVjZXJzKHMsbyl7bGV0IGk9T2JqZWN0LmtleXMocykucmVkdWNlKCgoaSxhKT0+KGlbYV09ZnVuY3Rpb24gbWFrZVJlZHVjZXIocyxvKXtyZXR1cm4oaT1uZXcgemUuTWFwLGEpPT57aWYoIXMpcmV0dXJuIGk7bGV0IHU9c1thLnR5cGVdO2lmKHUpe2NvbnN0IHM9d3JhcFdpdGhUcnlDYXRjaCh1LG8pKGksYSk7cmV0dXJuIG51bGw9PT1zP2k6c31yZXR1cm4gaX19KHNbYV0sbyksaSkpLHt9KTtpZighT2JqZWN0LmtleXMoaSkubGVuZ3RoKXJldHVybiBpZEZuO3JldHVybigwLFhlLkgpKGkpfShvYmpNYXAocywocz0+cy5yZWR1Y2VycykpLG8pfSh0aGlzLnN5c3RlbS5zdGF0ZVBsdWdpbnMsdGhpcy5nZXRTeXN0ZW0pKX1nZXRUeXBlKHMpe2xldCBvPXNbMF0udG9VcHBlckNhc2UoKStzLnNsaWNlKDEpO3JldHVybiBvYmpSZWR1Y2UodGhpcy5zeXN0ZW0uc3RhdGVQbHVnaW5zLCgoaSxhKT0+e2xldCB1PWlbc107aWYodSlyZXR1cm57W2Erb106dX19KSl9Z2V0U2VsZWN0b3JzKCl7cmV0dXJuIHRoaXMuZ2V0VHlwZSgic2VsZWN0b3JzIil9Z2V0QWN0aW9ucygpe3JldHVybiBvYmpNYXAodGhpcy5nZXRUeXBlKCJhY3Rpb25zIiksKHM9Pm9ialJlZHVjZShzLCgocyxvKT0+e2lmKGlzRm4ocykpcmV0dXJue1tvXTpzfX0pKSkpfWdldFdyYXBwZWRBbmRCb3VuZEFjdGlvbnMocyl7cmV0dXJuIG9iak1hcCh0aGlzLmdldEJvdW5kQWN0aW9ucyhzKSwoKHMsbyk9PntsZXQgaT10aGlzLnN5c3RlbS5zdGF0ZVBsdWdpbnNbby5zbGljZSgwLC03KV0ud3JhcEFjdGlvbnM7cmV0dXJuIGk/b2JqTWFwKHMsKChzLG8pPT57bGV0IGE9aVtvXTtyZXR1cm4gYT8oQXJyYXkuaXNBcnJheShhKXx8KGE9W2FdKSxhLnJlZHVjZSgoKHMsbyk9PntsZXQgbmV3QWN0aW9uPSguLi5pKT0+byhzLHRoaXMuZ2V0U3lzdGVtKCkpKC4uLmkpO2lmKCFpc0ZuKG5ld0FjdGlvbikpdGhyb3cgbmV3IFR5cGVFcnJvcigid3JhcEFjdGlvbnMgbmVlZHMgdG8gcmV0dXJuIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgbmV3IGZ1bmN0aW9uIChpZSB0aGUgd3JhcHBlZCBhY3Rpb24pIik7cmV0dXJuIHdyYXBXaXRoVHJ5Q2F0Y2gobmV3QWN0aW9uLHRoaXMuZ2V0U3lzdGVtKX0pLHN8fEZ1bmN0aW9uLnByb3RvdHlwZSkpOnN9KSk6c30pKX1nZXRXcmFwcGVkQW5kQm91bmRTZWxlY3RvcnMocyxvKXtyZXR1cm4gb2JqTWFwKHRoaXMuZ2V0Qm91bmRTZWxlY3RvcnMocyxvKSwoKG8saSk9PntsZXQgYT1baS5zbGljZSgwLC05KV0sdT10aGlzLnN5c3RlbS5zdGF0ZVBsdWdpbnNbYV0ud3JhcFNlbGVjdG9ycztyZXR1cm4gdT9vYmpNYXAobywoKG8saSk9PntsZXQgXz11W2ldO3JldHVybiBfPyhBcnJheS5pc0FycmF5KF8pfHwoXz1bX10pLF8ucmVkdWNlKCgobyxpKT0+e2xldCB3cmFwcGVkU2VsZWN0b3I9KC4uLnUpPT5pKG8sdGhpcy5nZXRTeXN0ZW0oKSkocygpLmdldEluKGEpLC4uLnUpO2lmKCFpc0ZuKHdyYXBwZWRTZWxlY3RvcikpdGhyb3cgbmV3IFR5cGVFcnJvcigid3JhcFNlbGVjdG9yIG5lZWRzIHRvIHJldHVybiBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIG5ldyBmdW5jdGlvbiAoaWUgdGhlIHdyYXBwZWQgYWN0aW9uKSIpO3JldHVybiB3cmFwcGVkU2VsZWN0b3J9KSxvfHxGdW5jdGlvbi5wcm90b3R5cGUpKTpvfSkpOm99KSl9Z2V0U3RhdGVzKHMpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLnN5c3RlbS5zdGF0ZVBsdWdpbnMpLnJlZHVjZSgoKG8saSk9PihvW2ldPXMuZ2V0KGkpLG8pKSx7fSl9Z2V0U3RhdGVUaHVua3Mocyl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuc3lzdGVtLnN0YXRlUGx1Z2lucykucmVkdWNlKCgobyxpKT0+KG9baV09KCk9PnMoKS5nZXQoaSksbykpLHt9KX1nZXRGbigpe3JldHVybntmbjp0aGlzLnN5c3RlbS5mbn19Z2V0Q29tcG9uZW50cyhzKXtjb25zdCBvPXRoaXMuc3lzdGVtLmNvbXBvbmVudHNbc107cmV0dXJuIEFycmF5LmlzQXJyYXkobyk/by5yZWR1Y2UoKChzLG8pPT5vKHMsdGhpcy5nZXRTeXN0ZW0oKSkpKTp2b2lkIDAhPT1zP3RoaXMuc3lzdGVtLmNvbXBvbmVudHNbc106dGhpcy5zeXN0ZW0uY29tcG9uZW50c31nZXRCb3VuZFNlbGVjdG9ycyhzLG8pe3JldHVybiBvYmpNYXAodGhpcy5nZXRTZWxlY3RvcnMoKSwoKGksYSk9PntsZXQgdT1bYS5zbGljZSgwLC05KV07cmV0dXJuIG9iak1hcChpLChpPT4oLi4uYSk9PntsZXQgXz13cmFwV2l0aFRyeUNhdGNoKGksdGhpcy5nZXRTeXN0ZW0pLmFwcGx5KG51bGwsW3MoKS5nZXRJbih1KSwuLi5hXSk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIF8mJihfPXdyYXBXaXRoVHJ5Q2F0Y2goXyx0aGlzLmdldFN5c3RlbSkobygpKSksX30pKX0pKX1nZXRCb3VuZEFjdGlvbnMocyl7cz1zfHx0aGlzLmdldFN0b3JlKCkuZGlzcGF0Y2g7Y29uc3Qgbz10aGlzLmdldEFjdGlvbnMoKSxwcm9jZXNzPXM9PiJmdW5jdGlvbiIhPXR5cGVvZiBzP29iak1hcChzLChzPT5wcm9jZXNzKHMpKSk6KC4uLm8pPT57dmFyIGk9bnVsbDt0cnl7aT1zKC4uLm8pfWNhdGNoKHMpe2k9e3R5cGU6cnQsZXJyb3I6ITAscGF5bG9hZDooMCxRZS5zZXJpYWxpemVFcnJvcikocyl9fWZpbmFsbHl7cmV0dXJuIGl9fTtyZXR1cm4gb2JqTWFwKG8sKG89PmZ1bmN0aW9uIGJpbmRBY3Rpb25DcmVhdG9ycyhzLG8pe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBzKXJldHVybiBiaW5kQWN0aW9uQ3JlYXRvcihzLG8pO2lmKCJvYmplY3QiIT10eXBlb2Ygc3x8bnVsbD09PXMpdGhyb3cgbmV3IEVycm9yKGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMTYpKTtjb25zdCBpPXt9O2Zvcihjb25zdCBhIGluIHMpe2NvbnN0IHU9c1thXTsiZnVuY3Rpb24iPT10eXBlb2YgdSYmKGlbYV09YmluZEFjdGlvbkNyZWF0b3IodSxvKSl9cmV0dXJuIGl9KHByb2Nlc3MobykscykpKX1nZXRNYXBTdGF0ZVRvUHJvcHMoKXtyZXR1cm4oKT0+T2JqZWN0LmFzc2lnbih7fSx0aGlzLmdldFN5c3RlbSgpKX1nZXRNYXBEaXNwYXRjaFRvUHJvcHMocyl7cmV0dXJuIG89PlllKCkoe30sdGhpcy5nZXRXcmFwcGVkQW5kQm91bmRBY3Rpb25zKG8pLHRoaXMuZ2V0Rm4oKSxzKX19ZnVuY3Rpb24gY29tYmluZVBsdWdpbnMocyxvKXtyZXR1cm4gaXNPYmplY3QocykmJiFpc0FycmF5KHMpP3R0KCkoe30scyk6aXNGdW5jKHMpP2NvbWJpbmVQbHVnaW5zKHMobyksbyk6aXNBcnJheShzKT9zLm1hcCgocz0+Y29tYmluZVBsdWdpbnMocyxvKSkpLnJlZHVjZShzeXN0ZW1FeHRlbmQse2NvbXBvbmVudHM6by5nZXRDb21wb25lbnRzKCl9KTp7fX1mdW5jdGlvbiBjYWxsQWZ0ZXJMb2FkKHMsbyx7aGFzTG9hZGVkOml9PXt9KXtsZXQgYT1pO3JldHVybiBpc09iamVjdChzKSYmIWlzQXJyYXkocykmJiJmdW5jdGlvbiI9PXR5cGVvZiBzLmFmdGVyTG9hZCYmKGE9ITAsd3JhcFdpdGhUcnlDYXRjaChzLmFmdGVyTG9hZCxvLmdldFN5c3RlbSkuY2FsbCh0aGlzLG8pKSxpc0Z1bmMocyk/Y2FsbEFmdGVyTG9hZC5jYWxsKHRoaXMscyhvKSxvLHtoYXNMb2FkZWQ6YX0pOmlzQXJyYXkocyk/cy5tYXAoKHM9PmNhbGxBZnRlckxvYWQuY2FsbCh0aGlzLHMsbyx7aGFzTG9hZGVkOmF9KSkpOmF9ZnVuY3Rpb24gc3lzdGVtRXh0ZW5kKHM9e30sbz17fSl7aWYoIWlzT2JqZWN0KHMpKXJldHVybnt9O2lmKCFpc09iamVjdChvKSlyZXR1cm4gcztvLndyYXBDb21wb25lbnRzJiYob2JqTWFwKG8ud3JhcENvbXBvbmVudHMsKChpLGEpPT57Y29uc3QgdT1zLmNvbXBvbmVudHMmJnMuY29tcG9uZW50c1thXTt1JiZBcnJheS5pc0FycmF5KHUpPyhzLmNvbXBvbmVudHNbYV09dS5jb25jYXQoW2ldKSxkZWxldGUgby53cmFwQ29tcG9uZW50c1thXSk6dSYmKHMuY29tcG9uZW50c1thXT1bdSxpXSxkZWxldGUgby53cmFwQ29tcG9uZW50c1thXSl9KSksT2JqZWN0LmtleXMoby53cmFwQ29tcG9uZW50cykubGVuZ3RofHxkZWxldGUgby53cmFwQ29tcG9uZW50cyk7Y29uc3R7c3RhdGVQbHVnaW5zOml9PXM7aWYoaXNPYmplY3QoaSkpZm9yKGxldCBzIGluIGkpe2NvbnN0IGE9aVtzXTtpZighaXNPYmplY3QoYSkpY29udGludWU7Y29uc3R7d3JhcEFjdGlvbnM6dSx3cmFwU2VsZWN0b3JzOl99PWE7aWYoaXNPYmplY3QodSkpZm9yKGxldCBpIGluIHUpe2xldCBhPXVbaV07QXJyYXkuaXNBcnJheShhKXx8KGE9W2FdLHVbaV09YSksbyYmby5zdGF0ZVBsdWdpbnMmJm8uc3RhdGVQbHVnaW5zW3NdJiZvLnN0YXRlUGx1Z2luc1tzXS53cmFwQWN0aW9ucyYmby5zdGF0ZVBsdWdpbnNbc10ud3JhcEFjdGlvbnNbaV0mJihvLnN0YXRlUGx1Z2luc1tzXS53cmFwQWN0aW9uc1tpXT11W2ldLmNvbmNhdChvLnN0YXRlUGx1Z2luc1tzXS53cmFwQWN0aW9uc1tpXSkpfWlmKGlzT2JqZWN0KF8pKWZvcihsZXQgaSBpbiBfKXtsZXQgYT1fW2ldO0FycmF5LmlzQXJyYXkoYSl8fChhPVthXSxfW2ldPWEpLG8mJm8uc3RhdGVQbHVnaW5zJiZvLnN0YXRlUGx1Z2luc1tzXSYmby5zdGF0ZVBsdWdpbnNbc10ud3JhcFNlbGVjdG9ycyYmby5zdGF0ZVBsdWdpbnNbc10ud3JhcFNlbGVjdG9yc1tpXSYmKG8uc3RhdGVQbHVnaW5zW3NdLndyYXBTZWxlY3RvcnNbaV09X1tpXS5jb25jYXQoby5zdGF0ZVBsdWdpbnNbc10ud3JhcFNlbGVjdG9yc1tpXSkpfX1yZXR1cm4gWWUoKShzLG8pfWZ1bmN0aW9uIHdyYXBXaXRoVHJ5Q2F0Y2gocyxvLHtsb2dFcnJvcnM6aT0hMH09e30pe3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiBzP3M6ZnVuY3Rpb24oLi4uYSl7dHJ5e3JldHVybiBzLmNhbGwodGhpcywuLi5hKX1jYXRjaChzKXtpZihpKXtjb25zdHt1bmNhdWdodEV4Y2VwdGlvbkhhbmRsZXI6aX09bygpLmdldENvbmZpZ3MoKTsiZnVuY3Rpb24iPT10eXBlb2YgaT9pKHMpOmNvbnNvbGUuZXJyb3Iocyl9cmV0dXJuIG51bGx9fX12YXIgVHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg2MTE2MCksTnQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKFR0KTtjb25zdCBNdD0ic2hvd19wb3B1cCIsUnQ9ImF1dGhvcml6ZSIsRHQ9ImxvZ291dCIsTHQ9ImF1dGhvcml6ZV9vYXV0aDIiLEZ0PSJjb25maWd1cmVfYXV0aCIsQnQ9InJlc3RvcmVfYXV0aG9yaXphdGlvbiI7ZnVuY3Rpb24gc2hvd0RlZmluaXRpb25zKHMpe3JldHVybnt0eXBlOk10LHBheWxvYWQ6c319ZnVuY3Rpb24gYXV0aG9yaXplKHMpe3JldHVybnt0eXBlOlJ0LHBheWxvYWQ6c319Y29uc3QgYXV0aG9yaXplV2l0aFBlcnNpc3RPcHRpb249cz0+KHthdXRoQWN0aW9uczpvfSk9PntvLmF1dGhvcml6ZShzKSxvLnBlcnNpc3RBdXRob3JpemF0aW9uSWZOZWVkZWQoKX07ZnVuY3Rpb24gbG9nb3V0KHMpe3JldHVybnt0eXBlOkR0LHBheWxvYWQ6c319Y29uc3QgbG9nb3V0V2l0aFBlcnNpc3RPcHRpb249cz0+KHthdXRoQWN0aW9uczpvfSk9PntvLmxvZ291dChzKSxvLnBlcnNpc3RBdXRob3JpemF0aW9uSWZOZWVkZWQoKX0scHJlQXV0aG9yaXplSW1wbGljaXQ9cz0+KHthdXRoQWN0aW9uczpvLGVyckFjdGlvbnM6aX0pPT57bGV0e2F1dGg6YSx0b2tlbjp1LGlzVmFsaWQ6X309cyx7c2NoZW1hOncsbmFtZTp4fT1hLEM9dy5nZXQoImZsb3ciKTtkZWxldGUgbHQuc3dhZ2dlclVJUmVkaXJlY3RPYXV0aDIsImFjY2Vzc0NvZGUiPT09Q3x8X3x8aS5uZXdBdXRoRXJyKHthdXRoSWQ6eCxzb3VyY2U6ImF1dGgiLGxldmVsOiJ3YXJuaW5nIixtZXNzYWdlOiJBdXRob3JpemF0aW9uIG1heSBiZSB1bnNhZmUsIHBhc3NlZCBzdGF0ZSB3YXMgY2hhbmdlZCBpbiBzZXJ2ZXIgUGFzc2VkIHN0YXRlIHdhc24ndCByZXR1cm5lZCBmcm9tIGF1dGggc2VydmVyIn0pLHUuZXJyb3I/aS5uZXdBdXRoRXJyKHthdXRoSWQ6eCxzb3VyY2U6ImF1dGgiLGxldmVsOiJlcnJvciIsbWVzc2FnZTpKU09OLnN0cmluZ2lmeSh1KX0pOm8uYXV0aG9yaXplT2F1dGgyV2l0aFBlcnNpc3RPcHRpb24oe2F1dGg6YSx0b2tlbjp1fSl9O2Z1bmN0aW9uIGF1dGhvcml6ZU9hdXRoMihzKXtyZXR1cm57dHlwZTpMdCxwYXlsb2FkOnN9fWNvbnN0IGF1dGhvcml6ZU9hdXRoMldpdGhQZXJzaXN0T3B0aW9uPXM9Pih7YXV0aEFjdGlvbnM6b30pPT57by5hdXRob3JpemVPYXV0aDIocyksby5wZXJzaXN0QXV0aG9yaXphdGlvbklmTmVlZGVkKCl9LGF1dGhvcml6ZVBhc3N3b3JkPXM9Pih7YXV0aEFjdGlvbnM6b30pPT57bGV0e3NjaGVtYTppLG5hbWU6YSx1c2VybmFtZTp1LHBhc3N3b3JkOl8scGFzc3dvcmRUeXBlOncsY2xpZW50SWQ6eCxjbGllbnRTZWNyZXQ6Q309cyxqPXtncmFudF90eXBlOiJwYXNzd29yZCIsc2NvcGU6cy5zY29wZXMuam9pbigiICIpLHVzZXJuYW1lOnUscGFzc3dvcmQ6X30sTD17fTtzd2l0Y2godyl7Y2FzZSJyZXF1ZXN0LWJvZHkiOiFmdW5jdGlvbiBzZXRDbGllbnRJZEFuZFNlY3JldChzLG8saSl7byYmT2JqZWN0LmFzc2lnbihzLHtjbGllbnRfaWQ6b30pO2kmJk9iamVjdC5hc3NpZ24ocyx7Y2xpZW50X3NlY3JldDppfSl9KGoseCxDKTticmVhaztjYXNlImJhc2ljIjpMLkF1dGhvcml6YXRpb249IkJhc2ljICIrdXRpbHNfYnRvYSh4KyI6IitDKTticmVhaztkZWZhdWx0OmNvbnNvbGUud2FybihgV2FybmluZzogaW52YWxpZCBwYXNzd29yZFR5cGUgJHt3fSB3YXMgcGFzc2VkLCBub3QgaW5jbHVkaW5nIGNsaWVudCBpZCBhbmQgc2VjcmV0YCl9cmV0dXJuIG8uYXV0aG9yaXplUmVxdWVzdCh7Ym9keTpidWlsZEZvcm1EYXRhKGopLHVybDppLmdldCgidG9rZW5VcmwiKSxuYW1lOmEsaGVhZGVyczpMLHF1ZXJ5Ont9LGF1dGg6c30pfTtjb25zdCBhdXRob3JpemVBcHBsaWNhdGlvbj1zPT4oe2F1dGhBY3Rpb25zOm99KT0+e2xldHtzY2hlbWE6aSxzY29wZXM6YSxuYW1lOnUsY2xpZW50SWQ6XyxjbGllbnRTZWNyZXQ6d309cyx4PXtBdXRob3JpemF0aW9uOiJCYXNpYyAiK3V0aWxzX2J0b2EoXysiOiIrdyl9LEM9e2dyYW50X3R5cGU6ImNsaWVudF9jcmVkZW50aWFscyIsc2NvcGU6YS5qb2luKCIgIil9O3JldHVybiBvLmF1dGhvcml6ZVJlcXVlc3Qoe2JvZHk6YnVpbGRGb3JtRGF0YShDKSxuYW1lOnUsdXJsOmkuZ2V0KCJ0b2tlblVybCIpLGF1dGg6cyxoZWFkZXJzOnh9KX0sYXV0aG9yaXplQWNjZXNzQ29kZVdpdGhGb3JtUGFyYW1zPSh7YXV0aDpzLHJlZGlyZWN0VXJsOm99KT0+KHthdXRoQWN0aW9uczppfSk9PntsZXR7c2NoZW1hOmEsbmFtZTp1LGNsaWVudElkOl8sY2xpZW50U2VjcmV0OncsY29kZVZlcmlmaWVyOnh9PXMsQz17Z3JhbnRfdHlwZToiYXV0aG9yaXphdGlvbl9jb2RlIixjb2RlOnMuY29kZSxjbGllbnRfaWQ6XyxjbGllbnRfc2VjcmV0OncscmVkaXJlY3RfdXJpOm8sY29kZV92ZXJpZmllcjp4fTtyZXR1cm4gaS5hdXRob3JpemVSZXF1ZXN0KHtib2R5OmJ1aWxkRm9ybURhdGEoQyksbmFtZTp1LHVybDphLmdldCgidG9rZW5VcmwiKSxhdXRoOnN9KX0sYXV0aG9yaXplQWNjZXNzQ29kZVdpdGhCYXNpY0F1dGhlbnRpY2F0aW9uPSh7YXV0aDpzLHJlZGlyZWN0VXJsOm99KT0+KHthdXRoQWN0aW9uczppfSk9PntsZXR7c2NoZW1hOmEsbmFtZTp1LGNsaWVudElkOl8sY2xpZW50U2VjcmV0OncsY29kZVZlcmlmaWVyOnh9PXMsQz17QXV0aG9yaXphdGlvbjoiQmFzaWMgIit1dGlsc19idG9hKF8rIjoiK3cpfSxqPXtncmFudF90eXBlOiJhdXRob3JpemF0aW9uX2NvZGUiLGNvZGU6cy5jb2RlLGNsaWVudF9pZDpfLHJlZGlyZWN0X3VyaTpvLGNvZGVfdmVyaWZpZXI6eH07cmV0dXJuIGkuYXV0aG9yaXplUmVxdWVzdCh7Ym9keTpidWlsZEZvcm1EYXRhKGopLG5hbWU6dSx1cmw6YS5nZXQoInRva2VuVXJsIiksYXV0aDpzLGhlYWRlcnM6Q30pfSxhdXRob3JpemVSZXF1ZXN0PXM9Pih7Zm46byxnZXRDb25maWdzOmksYXV0aEFjdGlvbnM6YSxlcnJBY3Rpb25zOnUsb2FzM1NlbGVjdG9yczpfLHNwZWNTZWxlY3RvcnM6dyxhdXRoU2VsZWN0b3JzOnh9KT0+e2xldCBDLHtib2R5OmoscXVlcnk6TD17fSxoZWFkZXJzOkI9e30sbmFtZTokLHVybDpWLGF1dGg6VX09cyx7YWRkaXRpb25hbFF1ZXJ5U3RyaW5nUGFyYW1zOnp9PXguZ2V0Q29uZmlncygpfHx7fTtpZih3LmlzT0FTMygpKXtsZXQgcz1fLnNlcnZlckVmZmVjdGl2ZVZhbHVlKF8uc2VsZWN0ZWRTZXJ2ZXIoKSk7Qz1OdCgpKFYscywhMCl9ZWxzZSBDPU50KCkoVix3LnVybCgpLCEwKTsib2JqZWN0Ij09dHlwZW9mIHomJihDLnF1ZXJ5PU9iamVjdC5hc3NpZ24oe30sQy5xdWVyeSx6KSk7Y29uc3QgWT1DLnRvU3RyaW5nKCk7bGV0IFo9T2JqZWN0LmFzc2lnbih7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoiLCJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLCJYLVJlcXVlc3RlZC1XaXRoIjoiWE1MSHR0cFJlcXVlc3QifSxCKTtvLmZldGNoKHt1cmw6WSxtZXRob2Q6InBvc3QiLGhlYWRlcnM6WixxdWVyeTpMLGJvZHk6aixyZXF1ZXN0SW50ZXJjZXB0b3I6aSgpLnJlcXVlc3RJbnRlcmNlcHRvcixyZXNwb25zZUludGVyY2VwdG9yOmkoKS5yZXNwb25zZUludGVyY2VwdG9yfSkudGhlbigoZnVuY3Rpb24ocyl7bGV0IG89SlNPTi5wYXJzZShzLmRhdGEpLGk9byYmKG8uZXJyb3J8fCIiKSxfPW8mJihvLnBhcnNlRXJyb3J8fCIiKTtzLm9rP2l8fF8/dS5uZXdBdXRoRXJyKHthdXRoSWQ6JCxsZXZlbDoiZXJyb3IiLHNvdXJjZToiYXV0aCIsbWVzc2FnZTpKU09OLnN0cmluZ2lmeShvKX0pOmEuYXV0aG9yaXplT2F1dGgyV2l0aFBlcnNpc3RPcHRpb24oe2F1dGg6VSx0b2tlbjpvfSk6dS5uZXdBdXRoRXJyKHthdXRoSWQ6JCxsZXZlbDoiZXJyb3IiLHNvdXJjZToiYXV0aCIsbWVzc2FnZTpzLnN0YXR1c1RleHR9KX0pKS5jYXRjaCgocz0+e2xldCBvPW5ldyBFcnJvcihzKS5tZXNzYWdlO2lmKHMucmVzcG9uc2UmJnMucmVzcG9uc2UuZGF0YSl7Y29uc3QgaT1zLnJlc3BvbnNlLmRhdGE7dHJ5e2NvbnN0IHM9InN0cmluZyI9PXR5cGVvZiBpP0pTT04ucGFyc2UoaSk6aTtzLmVycm9yJiYobys9YCwgZXJyb3I6ICR7cy5lcnJvcn1gKSxzLmVycm9yX2Rlc2NyaXB0aW9uJiYobys9YCwgZGVzY3JpcHRpb246ICR7cy5lcnJvcl9kZXNjcmlwdGlvbn1gKX1jYXRjaChzKXt9fXUubmV3QXV0aEVycih7YXV0aElkOiQsbGV2ZWw6ImVycm9yIixzb3VyY2U6ImF1dGgiLG1lc3NhZ2U6b30pfSkpfTtmdW5jdGlvbiBjb25maWd1cmVBdXRoKHMpe3JldHVybnt0eXBlOkZ0LHBheWxvYWQ6c319ZnVuY3Rpb24gcmVzdG9yZUF1dGhvcml6YXRpb24ocyl7cmV0dXJue3R5cGU6QnQscGF5bG9hZDpzfX1jb25zdCBwZXJzaXN0QXV0aG9yaXphdGlvbklmTmVlZGVkPSgpPT4oe2F1dGhTZWxlY3RvcnM6cyxnZXRDb25maWdzOm99KT0+e2lmKCFvKCkucGVyc2lzdEF1dGhvcml6YXRpb24pcmV0dXJuO2NvbnN0IGk9cy5hdXRob3JpemVkKCkudG9KUygpO2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJhdXRob3JpemVkIixKU09OLnN0cmluZ2lmeShpKSl9LGF1dGhQb3B1cD0ocyxvKT0+KCk9PntsdC5zd2FnZ2VyVUlSZWRpcmVjdE9hdXRoMj1vLGx0Lm9wZW4ocyl9LCR0PXtbTXRdOihzLHtwYXlsb2FkOm99KT0+cy5zZXQoInNob3dEZWZpbml0aW9ucyIsbyksW1J0XToocyx7cGF5bG9hZDpvfSk9PntsZXQgaT0oMCx6ZS5mcm9tSlMpKG8pLGE9cy5nZXQoImF1dGhvcml6ZWQiKXx8KDAsemUuTWFwKSgpO3JldHVybiBpLmVudHJ5U2VxKCkuZm9yRWFjaCgoKFtvLGldKT0+e2lmKCFpc0Z1bmMoaS5nZXRJbikpcmV0dXJuIHMuc2V0KCJhdXRob3JpemVkIixhKTtsZXQgdT1pLmdldEluKFsic2NoZW1hIiwidHlwZSJdKTtpZigiYXBpS2V5Ij09PXV8fCJodHRwIj09PXUpYT1hLnNldChvLGkpO2Vsc2UgaWYoImJhc2ljIj09PXUpe2xldCBzPWkuZ2V0SW4oWyJ2YWx1ZSIsInVzZXJuYW1lIl0pLHU9aS5nZXRJbihbInZhbHVlIiwicGFzc3dvcmQiXSk7YT1hLnNldEluKFtvLCJ2YWx1ZSJdLHt1c2VybmFtZTpzLGhlYWRlcjoiQmFzaWMgIit1dGlsc19idG9hKHMrIjoiK3UpfSksYT1hLnNldEluKFtvLCJzY2hlbWEiXSxpLmdldCgic2NoZW1hIikpfX0pKSxzLnNldCgiYXV0aG9yaXplZCIsYSl9LFtMdF06KHMse3BheWxvYWQ6b30pPT57bGV0IGkse2F1dGg6YSx0b2tlbjp1fT1vO2EudG9rZW49T2JqZWN0LmFzc2lnbih7fSx1KSxpPSgwLHplLmZyb21KUykoYSk7bGV0IF89cy5nZXQoImF1dGhvcml6ZWQiKXx8KDAsemUuTWFwKSgpO3JldHVybiBfPV8uc2V0KGkuZ2V0KCJuYW1lIiksaSkscy5zZXQoImF1dGhvcml6ZWQiLF8pfSxbRHRdOihzLHtwYXlsb2FkOm99KT0+e2xldCBpPXMuZ2V0KCJhdXRob3JpemVkIikud2l0aE11dGF0aW9ucygocz0+e28uZm9yRWFjaCgobz0+e3MuZGVsZXRlKG8pfSkpfSkpO3JldHVybiBzLnNldCgiYXV0aG9yaXplZCIsaSl9LFtGdF06KHMse3BheWxvYWQ6b30pPT5zLnNldCgiY29uZmlncyIsbyksW0J0XToocyx7cGF5bG9hZDpvfSk9PnMuc2V0KCJhdXRob3JpemVkIiwoMCx6ZS5mcm9tSlMpKG8uYXV0aG9yaXplZCkpfTtmdW5jdGlvbiBhc3NlcnRJc0Z1bmN0aW9uKHMsbz0iZXhwZWN0ZWQgYSBmdW5jdGlvbiwgaW5zdGVhZCByZWNlaXZlZCAiK3R5cGVvZiBzKXtpZigiZnVuY3Rpb24iIT10eXBlb2Ygcyl0aHJvdyBuZXcgVHlwZUVycm9yKG8pfXZhciBlbnN1cmVJc0FycmF5PXM9PkFycmF5LmlzQXJyYXkocyk/czpbc107ZnVuY3Rpb24gZ2V0RGVwZW5kZW5jaWVzKHMpe2NvbnN0IG89QXJyYXkuaXNBcnJheShzWzBdKT9zWzBdOnM7cmV0dXJuIGZ1bmN0aW9uIGFzc2VydElzQXJyYXlPZkZ1bmN0aW9ucyhzLG89ImV4cGVjdGVkIGFsbCBpdGVtcyB0byBiZSBmdW5jdGlvbnMsIGluc3RlYWQgcmVjZWl2ZWQgdGhlIGZvbGxvd2luZyB0eXBlczogIil7aWYoIXMuZXZlcnkoKHM9PiJmdW5jdGlvbiI9PXR5cGVvZiBzKSkpe2NvbnN0IGk9cy5tYXAoKHM9PiJmdW5jdGlvbiI9PXR5cGVvZiBzP2BmdW5jdGlvbiAke3MubmFtZXx8InVubmFtZWQifSgpYDp0eXBlb2YgcykpLmpvaW4oIiwgIik7dGhyb3cgbmV3IFR5cGVFcnJvcihgJHtvfVske2l9XWApfX0obywiY3JlYXRlU2VsZWN0b3IgZXhwZWN0cyBhbGwgaW5wdXQtc2VsZWN0b3JzIHRvIGJlIGZ1bmN0aW9ucywgYnV0IHJlY2VpdmVkIHRoZSBmb2xsb3dpbmcgdHlwZXM6ICIpLG99U3ltYm9sKCksT2JqZWN0LmdldFByb3RvdHlwZU9mKHt9KTt2YXIgcXQ9InVuZGVmaW5lZCIhPXR5cGVvZiBXZWFrUmVmP1dlYWtSZWY6Y2xhc3N7Y29uc3RydWN0b3Iocyl7dGhpcy52YWx1ZT1zfWRlcmVmKCl7cmV0dXJuIHRoaXMudmFsdWV9fTtmdW5jdGlvbiB3ZWFrTWFwTWVtb2l6ZShzLG89e30pe2xldCBpPXtzOjAsdjp2b2lkIDAsbzpudWxsLHA6bnVsbH07Y29uc3R7cmVzdWx0RXF1YWxpdHlDaGVjazphfT1vO2xldCB1LF89MDtmdW5jdGlvbiBtZW1vaXplZCgpe2xldCBvPWk7Y29uc3R7bGVuZ3RoOnd9PWFyZ3VtZW50cztmb3IobGV0IHM9MCxpPXc7czxpO3MrKyl7Y29uc3QgaT1hcmd1bWVudHNbc107aWYoImZ1bmN0aW9uIj09dHlwZW9mIGl8fCJvYmplY3QiPT10eXBlb2YgaSYmbnVsbCE9PWkpe2xldCBzPW8ubztudWxsPT09cyYmKG8ubz1zPW5ldyBXZWFrTWFwKTtjb25zdCBhPXMuZ2V0KGkpO3ZvaWQgMD09PWE/KG89e3M6MCx2OnZvaWQgMCxvOm51bGwscDpudWxsfSxzLnNldChpLG8pKTpvPWF9ZWxzZXtsZXQgcz1vLnA7bnVsbD09PXMmJihvLnA9cz1uZXcgTWFwKTtjb25zdCBhPXMuZ2V0KGkpO3ZvaWQgMD09PWE/KG89e3M6MCx2OnZvaWQgMCxvOm51bGwscDpudWxsfSxzLnNldChpLG8pKTpvPWF9fWNvbnN0IHg9bztsZXQgQztpZigxPT09by5zKUM9by52O2Vsc2UgaWYoQz1zLmFwcGx5KG51bGwsYXJndW1lbnRzKSxfKyssYSl7Y29uc3Qgcz11Py5kZXJlZj8uKCk/P3U7bnVsbCE9cyYmYShzLEMpJiYoQz1zLDAhPT1fJiZfLS0pO3U9Im9iamVjdCI9PXR5cGVvZiBDJiZudWxsIT09Q3x8ImZ1bmN0aW9uIj09dHlwZW9mIEM/bmV3IHF0KEMpOkN9cmV0dXJuIHgucz0xLHgudj1DLEN9cmV0dXJuIG1lbW9pemVkLmNsZWFyQ2FjaGU9KCk9PntpPXtzOjAsdjp2b2lkIDAsbzpudWxsLHA6bnVsbH0sbWVtb2l6ZWQucmVzZXRSZXN1bHRzQ291bnQoKX0sbWVtb2l6ZWQucmVzdWx0c0NvdW50PSgpPT5fLG1lbW9pemVkLnJlc2V0UmVzdWx0c0NvdW50PSgpPT57Xz0wfSxtZW1vaXplZH1mdW5jdGlvbiBjcmVhdGVTZWxlY3RvckNyZWF0b3IocywuLi5vKXtjb25zdCBpPSJmdW5jdGlvbiI9PXR5cGVvZiBzP3ttZW1vaXplOnMsbWVtb2l6ZU9wdGlvbnM6b306cyxjcmVhdGVTZWxlY3RvcjI9KC4uLnMpPT57bGV0IG8sYT0wLHU9MCxfPXt9LHc9cy5wb3AoKTsib2JqZWN0Ij09dHlwZW9mIHcmJihfPXcsdz1zLnBvcCgpKSxhc3NlcnRJc0Z1bmN0aW9uKHcsYGNyZWF0ZVNlbGVjdG9yIGV4cGVjdHMgYW4gb3V0cHV0IGZ1bmN0aW9uIGFmdGVyIHRoZSBpbnB1dHMsIGJ1dCByZWNlaXZlZDogWyR7dHlwZW9mIHd9XWApO2NvbnN0IHg9ey4uLmksLi4uX30se21lbW9pemU6QyxtZW1vaXplT3B0aW9uczpqPVtdLGFyZ3NNZW1vaXplOkw9d2Vha01hcE1lbW9pemUsYXJnc01lbW9pemVPcHRpb25zOkI9W10sZGV2TW9kZUNoZWNrczokPXt9fT14LFY9ZW5zdXJlSXNBcnJheShqKSxVPWVuc3VyZUlzQXJyYXkoQiksej1nZXREZXBlbmRlbmNpZXMocyksWT1DKChmdW5jdGlvbiByZWNvbXB1dGF0aW9uV3JhcHBlcigpe3JldHVybiBhKyssdy5hcHBseShudWxsLGFyZ3VtZW50cyl9KSwuLi5WKTtjb25zdCBaPUwoKGZ1bmN0aW9uIGRlcGVuZGVuY2llc0NoZWNrZXIoKXt1Kys7Y29uc3Qgcz1mdW5jdGlvbiBjb2xsZWN0SW5wdXRTZWxlY3RvclJlc3VsdHMocyxvKXtjb25zdCBpPVtdLHtsZW5ndGg6YX09cztmb3IobGV0IHU9MDt1PGE7dSsrKWkucHVzaChzW3VdLmFwcGx5KG51bGwsbykpO3JldHVybiBpfSh6LGFyZ3VtZW50cyk7cmV0dXJuIG89WS5hcHBseShudWxsLHMpLG99KSwuLi5VKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihaLHtyZXN1bHRGdW5jOncsbWVtb2l6ZWRSZXN1bHRGdW5jOlksZGVwZW5kZW5jaWVzOnosZGVwZW5kZW5jeVJlY29tcHV0YXRpb25zOigpPT51LHJlc2V0RGVwZW5kZW5jeVJlY29tcHV0YXRpb25zOigpPT57dT0wfSxsYXN0UmVzdWx0OigpPT5vLHJlY29tcHV0YXRpb25zOigpPT5hLHJlc2V0UmVjb21wdXRhdGlvbnM6KCk9PnthPTB9LG1lbW9pemU6QyxhcmdzTWVtb2l6ZTpMfSl9O3JldHVybiBPYmplY3QuYXNzaWduKGNyZWF0ZVNlbGVjdG9yMix7d2l0aFR5cGVzOigpPT5jcmVhdGVTZWxlY3RvcjJ9KSxjcmVhdGVTZWxlY3RvcjJ9dmFyIFZ0PWNyZWF0ZVNlbGVjdG9yQ3JlYXRvcih3ZWFrTWFwTWVtb2l6ZSksVXQ9T2JqZWN0LmFzc2lnbigoKHMsbz1WdCk9PnshZnVuY3Rpb24gYXNzZXJ0SXNPYmplY3QocyxvPSJleHBlY3RlZCBhbiBvYmplY3QsIGluc3RlYWQgcmVjZWl2ZWQgIit0eXBlb2Ygcyl7aWYoIm9iamVjdCIhPXR5cGVvZiBzKXRocm93IG5ldyBUeXBlRXJyb3Iobyl9KHMsImNyZWF0ZVN0cnVjdHVyZWRTZWxlY3RvciBleHBlY3RzIGZpcnN0IGFyZ3VtZW50IHRvIGJlIGFuIG9iamVjdCB3aGVyZSBlYWNoIHByb3BlcnR5IGlzIGEgc2VsZWN0b3IsIGluc3RlYWQgcmVjZWl2ZWQgYSAiK3R5cGVvZiBzKTtjb25zdCBpPU9iamVjdC5rZXlzKHMpO3JldHVybiBvKGkubWFwKChvPT5zW29dKSksKCguLi5zKT0+cy5yZWR1Y2UoKChzLG8sYSk9PihzW2lbYV1dPW8scykpLHt9KSkpfSkse3dpdGhUeXBlczooKT0+VXR9KTtjb25zdCBzdGF0ZT1zPT5zLHp0PVZ0KHN0YXRlLChzPT5zLmdldCgic2hvd0RlZmluaXRpb25zIikpKSxXdD1WdChzdGF0ZSwoKCk9Pih7c3BlY1NlbGVjdG9yczpzfSk9PntsZXQgbz1zLnNlY3VyaXR5RGVmaW5pdGlvbnMoKXx8KDAsemUuTWFwKSh7fSksaT0oMCx6ZS5MaXN0KSgpO3JldHVybiBvLmVudHJ5U2VxKCkuZm9yRWFjaCgoKFtzLG9dKT0+e2xldCBhPSgwLHplLk1hcCkoKTthPWEuc2V0KHMsbyksaT1pLnB1c2goYSl9KSksaX0pKSxzZWxlY3RBdXRoUGF0aD0ocyxvKT0+KHtzcGVjU2VsZWN0b3JzOnN9KT0+KDAsemUuTGlzdCkocy5pc09BUzMoKT9bImNvbXBvbmVudHMiLCJzZWN1cml0eVNjaGVtZXMiLG9dOlsic2VjdXJpdHlEZWZpbml0aW9ucyIsb10pLGdldERlZmluaXRpb25zQnlOYW1lcz0ocyxvKT0+KHtzcGVjU2VsZWN0b3JzOnN9KT0+e2NvbnNvbGUud2FybigiV0FSTklORzogZ2V0RGVmaW5pdGlvbnNCeU5hbWVzIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uLiIpO2xldCBpPXMuc2VjdXJpdHlEZWZpbml0aW9ucygpLGE9KDAsemUuTGlzdCkoKTtyZXR1cm4gby52YWx1ZVNlcSgpLmZvckVhY2goKHM9PntsZXQgbz0oMCx6ZS5NYXApKCk7cy5lbnRyeVNlcSgpLmZvckVhY2goKChbcyxhXSk9PntsZXQgdSxfPWkuZ2V0KHMpOyJvYXV0aDIiPT09Xy5nZXQoInR5cGUiKSYmYS5zaXplJiYodT1fLmdldCgic2NvcGVzIiksdS5rZXlTZXEoKS5mb3JFYWNoKChzPT57YS5jb250YWlucyhzKXx8KHU9dS5kZWxldGUocykpfSkpLF89Xy5zZXQoImFsbG93ZWRTY29wZXMiLHUpKSxvPW8uc2V0KHMsXyl9KSksYT1hLnB1c2gobyl9KSksYX0sZGVmaW5pdGlvbnNGb3JSZXF1aXJlbWVudHM9KHMsbz0oMCx6ZS5MaXN0KSgpKT0+KHthdXRoU2VsZWN0b3JzOnN9KT0+e2NvbnN0IGk9cy5kZWZpbml0aW9uc1RvQXV0aG9yaXplKCl8fCgwLHplLkxpc3QpKCk7bGV0IGE9KDAsemUuTGlzdCkoKTtyZXR1cm4gaS5mb3JFYWNoKChzPT57bGV0IGk9by5maW5kKChvPT5vLmdldChzLmtleVNlcSgpLmZpcnN0KCkpKSk7aSYmKHMuZm9yRWFjaCgoKG8sYSk9PntpZigib2F1dGgyIj09PW8uZ2V0KCJ0eXBlIikpe2NvbnN0IHU9aS5nZXQoYSk7bGV0IF89by5nZXQoInNjb3BlcyIpO3plLkxpc3QuaXNMaXN0KHUpJiZ6ZS5NYXAuaXNNYXAoXykmJihfLmtleVNlcSgpLmZvckVhY2goKHM9Pnt1LmNvbnRhaW5zKHMpfHwoXz1fLmRlbGV0ZShzKSl9KSkscz1zLnNldChhLG8uc2V0KCJzY29wZXMiLF8pKSl9fSkpLGE9YS5wdXNoKHMpKX0pKSxhfSxKdD1WdChzdGF0ZSwocz0+cy5nZXQoImF1dGhvcml6ZWQiKXx8KDAsemUuTWFwKSgpKSksaXNBdXRob3JpemVkPShzLG8pPT4oe2F1dGhTZWxlY3RvcnM6c30pPT57bGV0IGk9cy5hdXRob3JpemVkKCk7cmV0dXJuIHplLkxpc3QuaXNMaXN0KG8pPyEhby50b0pTKCkuZmlsdGVyKChzPT4tMT09PU9iamVjdC5rZXlzKHMpLm1hcCgocz0+ISFpLmdldChzKSkpLmluZGV4T2YoITEpKSkubGVuZ3RoOm51bGx9LEh0PVZ0KHN0YXRlLChzPT5zLmdldCgiY29uZmlncyIpKSksZXhlY3V0ZT0ocyx7YXV0aFNlbGVjdG9yczpvLHNwZWNTZWxlY3RvcnM6aX0pPT4oe3BhdGg6YSxtZXRob2Q6dSxvcGVyYXRpb246XyxleHRyYXM6d30pPT57bGV0IHg9e2F1dGhvcml6ZWQ6by5hdXRob3JpemVkKCkmJm8uYXV0aG9yaXplZCgpLnRvSlMoKSxkZWZpbml0aW9uczppLnNlY3VyaXR5RGVmaW5pdGlvbnMoKSYmaS5zZWN1cml0eURlZmluaXRpb25zKCkudG9KUygpLHNwZWNTZWN1cml0eTppLnNlY3VyaXR5KCkmJmkuc2VjdXJpdHkoKS50b0pTKCl9O3JldHVybiBzKHtwYXRoOmEsbWV0aG9kOnUsb3BlcmF0aW9uOl8sc2VjdXJpdGllczp4LC4uLnd9KX0sbG9hZGVkPShzLG8pPT5pPT57Y29uc3R7Z2V0Q29uZmlnczphLGF1dGhBY3Rpb25zOnV9PW8sXz1hKCk7aWYocyhpKSxfLnBlcnNpc3RBdXRob3JpemF0aW9uKXtjb25zdCBzPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJhdXRob3JpemVkIik7cyYmdS5yZXN0b3JlQXV0aG9yaXphdGlvbih7YXV0aG9yaXplZDpKU09OLnBhcnNlKHMpfSl9fSx3cmFwX2FjdGlvbnNfYXV0aG9yaXplPShzLG8pPT5pPT57cyhpKTtpZihvLmdldENvbmZpZ3MoKS5wZXJzaXN0QXV0aG9yaXphdGlvbil0cnl7Y29uc3Rbe3NjaGVtYTpzLHZhbHVlOm99XT1PYmplY3QudmFsdWVzKGkpLGE9ImFwaUtleSI9PT1zLmdldCgidHlwZSIpLHU9ImNvb2tpZSI9PT1zLmdldCgiaW4iKTthJiZ1JiYoZG9jdW1lbnQuY29va2llPWAke3MuZ2V0KCJuYW1lIil9PSR7b307IFNhbWVTaXRlPU5vbmU7IFNlY3VyZWApfWNhdGNoKHMpe2NvbnNvbGUuZXJyb3IoIkVycm9yIHBlcnNpc3RpbmcgY29va2llIGJhc2VkIGFwaUtleSBpbiBkb2N1bWVudC5jb29raWUuIixzKX19LHdyYXBfYWN0aW9uc19sb2dvdXQ9KHMsbyk9Pmk9Pntjb25zdCBhPW8uZ2V0Q29uZmlncygpLHU9by5hdXRoU2VsZWN0b3JzLmF1dGhvcml6ZWQoKTt0cnl7YS5wZXJzaXN0QXV0aG9yaXphdGlvbiYmQXJyYXkuaXNBcnJheShpKSYmaS5mb3JFYWNoKChzPT57Y29uc3Qgbz11LmdldChzLHt9KSxpPSJhcGlLZXkiPT09by5nZXRJbihbInNjaGVtYSIsInR5cGUiXSksYT0iY29va2llIj09PW8uZ2V0SW4oWyJzY2hlbWEiLCJpbiJdKTtpZihpJiZhKXtjb25zdCBzPW8uZ2V0SW4oWyJzY2hlbWEiLCJuYW1lIl0pO2RvY3VtZW50LmNvb2tpZT1gJHtzfT07IE1heC1BZ2U9LTk5OTk5OTk5YH19KSl9Y2F0Y2gocyl7Y29uc29sZS5lcnJvcigiRXJyb3IgZGVsZXRpbmcgY29va2llIGJhc2VkIGFwaUtleSBmcm9tIGRvY3VtZW50LmNvb2tpZS4iLHMpfXMoaSl9O3ZhciBLdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDkwMTc5KSxHdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oS3QpO2NsYXNzIExvY2tBdXRoSWNvbiBleHRlbmRzIFJlLkNvbXBvbmVudHttYXBTdGF0ZVRvUHJvcHMocyxvKXtyZXR1cm57c3RhdGU6cyxvd25Qcm9wczpHdCgpKG8sT2JqZWN0LmtleXMoby5nZXRTeXN0ZW0oKSkpfX1yZW5kZXIoKXtjb25zdHtnZXRDb21wb25lbnQ6cyxvd25Qcm9wczpvfT10aGlzLnByb3BzLGk9cygiTG9ja0ljb24iKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChpLG8pfX1jb25zdCBZdD1Mb2NrQXV0aEljb247Y2xhc3MgVW5sb2NrQXV0aEljb24gZXh0ZW5kcyBSZS5Db21wb25lbnR7bWFwU3RhdGVUb1Byb3BzKHMsbyl7cmV0dXJue3N0YXRlOnMsb3duUHJvcHM6R3QoKShvLE9iamVjdC5rZXlzKG8uZ2V0U3lzdGVtKCkpKX19cmVuZGVyKCl7Y29uc3R7Z2V0Q29tcG9uZW50OnMsb3duUHJvcHM6b309dGhpcy5wcm9wcyxpPXMoIlVubG9ja0ljb24iKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChpLG8pfX1jb25zdCBYdD1VbmxvY2tBdXRoSWNvbjtmdW5jdGlvbiBhdXRoKCl7cmV0dXJue2FmdGVyTG9hZChzKXt0aGlzLnJvb3RJbmplY3RzPXRoaXMucm9vdEluamVjdHN8fHt9LHRoaXMucm9vdEluamVjdHMuaW5pdE9BdXRoPXMuYXV0aEFjdGlvbnMuY29uZmlndXJlQXV0aCx0aGlzLnJvb3RJbmplY3RzLnByZWF1dGhvcml6ZUFwaUtleT1wcmVhdXRob3JpemVBcGlLZXkuYmluZChudWxsLHMpLHRoaXMucm9vdEluamVjdHMucHJlYXV0aG9yaXplQmFzaWM9cHJlYXV0aG9yaXplQmFzaWMuYmluZChudWxsLHMpfSxjb21wb25lbnRzOntMb2NrQXV0aEljb246WXQsVW5sb2NrQXV0aEljb246WHQsTG9ja0F1dGhPcGVyYXRpb25JY29uOll0LFVubG9ja0F1dGhPcGVyYXRpb25JY29uOlh0fSxzdGF0ZVBsdWdpbnM6e2F1dGg6e3JlZHVjZXJzOiR0LGFjdGlvbnM6byxzZWxlY3RvcnM6YSx3cmFwQWN0aW9uczp7YXV0aG9yaXplOndyYXBfYWN0aW9uc19hdXRob3JpemUsbG9nb3V0OndyYXBfYWN0aW9uc19sb2dvdXR9fSxjb25maWdzOnt3cmFwQWN0aW9uczp7bG9hZGVkfX0sc3BlYzp7d3JhcEFjdGlvbnM6e2V4ZWN1dGV9fX19fWZ1bmN0aW9uIHByZWF1dGhvcml6ZUJhc2ljKHMsbyxpLGEpe2NvbnN0e2F1dGhBY3Rpb25zOnthdXRob3JpemU6dX0sc3BlY1NlbGVjdG9yczp7c3BlY0pzb246Xyxpc09BUzM6d319PXMseD13KCk/WyJjb21wb25lbnRzIiwic2VjdXJpdHlTY2hlbWVzIl06WyJzZWN1cml0eURlZmluaXRpb25zIl0sQz1fKCkuZ2V0SW4oWy4uLngsb10pO3JldHVybiBDP3Uoe1tvXTp7dmFsdWU6e3VzZXJuYW1lOmkscGFzc3dvcmQ6YX0sc2NoZW1hOkMudG9KUygpfX0pOm51bGx9ZnVuY3Rpb24gcHJlYXV0aG9yaXplQXBpS2V5KHMsbyxpKXtjb25zdHthdXRoQWN0aW9uczp7YXV0aG9yaXplOmF9LHNwZWNTZWxlY3RvcnM6e3NwZWNKc29uOnUsaXNPQVMzOl99fT1zLHc9XygpP1siY29tcG9uZW50cyIsInNlY3VyaXR5U2NoZW1lcyJdOlsic2VjdXJpdHlEZWZpbml0aW9ucyJdLHg9dSgpLmdldEluKFsuLi53LG9dKTtyZXR1cm4geD9hKHtbb106e3ZhbHVlOmksc2NoZW1hOngudG9KUygpfX0pOm51bGx9ZnVuY3Rpb24gaXNOb3RoaW5nKHMpe3JldHVybiBudWxsPT1zfXZhciBRdD1mdW5jdGlvbiByZXBlYXQocyxvKXt2YXIgaSxhPSIiO2ZvcihpPTA7aTxvO2krPTEpYSs9cztyZXR1cm4gYX0sWnQ9ZnVuY3Rpb24gaXNOZWdhdGl2ZVplcm8ocyl7cmV0dXJuIDA9PT1zJiZOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk9PT0xL3N9LGVyPXtpc05vdGhpbmcsaXNPYmplY3Q6ZnVuY3Rpb24ganNfeWFtbF9pc09iamVjdChzKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHMmJm51bGwhPT1zfSx0b0FycmF5OmZ1bmN0aW9uIHRvQXJyYXkocyl7cmV0dXJuIEFycmF5LmlzQXJyYXkocyk/czppc05vdGhpbmcocyk/W106W3NdfSxyZXBlYXQ6UXQsaXNOZWdhdGl2ZVplcm86WnQsZXh0ZW5kOmZ1bmN0aW9uIGV4dGVuZChzLG8pe3ZhciBpLGEsdSxfO2lmKG8pZm9yKGk9MCxhPShfPU9iamVjdC5rZXlzKG8pKS5sZW5ndGg7aTxhO2krPTEpc1t1PV9baV1dPW9bdV07cmV0dXJuIHN9fTtmdW5jdGlvbiBmb3JtYXRFcnJvcihzLG8pe3ZhciBpPSIiLGE9cy5yZWFzb258fCIodW5rbm93biByZWFzb24pIjtyZXR1cm4gcy5tYXJrPyhzLm1hcmsubmFtZSYmKGkrPSdpbiAiJytzLm1hcmsubmFtZSsnIiAnKSxpKz0iKCIrKHMubWFyay5saW5lKzEpKyI6Iisocy5tYXJrLmNvbHVtbisxKSsiKSIsIW8mJnMubWFyay5zbmlwcGV0JiYoaSs9IlxuXG4iK3MubWFyay5zbmlwcGV0KSxhKyIgIitpKTphfWZ1bmN0aW9uIFlBTUxFeGNlcHRpb24kMShzLG8pe0Vycm9yLmNhbGwodGhpcyksdGhpcy5uYW1lPSJZQU1MRXhjZXB0aW9uIix0aGlzLnJlYXNvbj1zLHRoaXMubWFyaz1vLHRoaXMubWVzc2FnZT1mb3JtYXRFcnJvcih0aGlzLCExKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9KG5ldyBFcnJvcikuc3RhY2t8fCIifVlBTUxFeGNlcHRpb24kMS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLFlBTUxFeGNlcHRpb24kMS5wcm90b3R5cGUuY29uc3RydWN0b3I9WUFNTEV4Y2VwdGlvbiQxLFlBTUxFeGNlcHRpb24kMS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24gdG9TdHJpbmcocyl7cmV0dXJuIHRoaXMubmFtZSsiOiAiK2Zvcm1hdEVycm9yKHRoaXMscyl9O3ZhciB0cj1ZQU1MRXhjZXB0aW9uJDE7ZnVuY3Rpb24gZ2V0TGluZShzLG8saSxhLHUpe3ZhciBfPSIiLHc9IiIseD1NYXRoLmZsb29yKHUvMiktMTtyZXR1cm4gYS1vPngmJihvPWEteCsoXz0iIC4uLiAiKS5sZW5ndGgpLGktYT54JiYoaT1hK3gtKHc9IiAuLi4iKS5sZW5ndGgpLHtzdHI6XytzLnNsaWNlKG8saSkucmVwbGFjZSgvXHQvZywi4oaSIikrdyxwb3M6YS1vK18ubGVuZ3RofX1mdW5jdGlvbiBwYWRTdGFydChzLG8pe3JldHVybiBlci5yZXBlYXQoIiAiLG8tcy5sZW5ndGgpK3N9dmFyIHJyPWZ1bmN0aW9uIG1ha2VTbmlwcGV0KHMsbyl7aWYobz1PYmplY3QuY3JlYXRlKG98fG51bGwpLCFzLmJ1ZmZlcilyZXR1cm4gbnVsbDtvLm1heExlbmd0aHx8KG8ubWF4TGVuZ3RoPTc5KSwibnVtYmVyIiE9dHlwZW9mIG8uaW5kZW50JiYoby5pbmRlbnQ9MSksIm51bWJlciIhPXR5cGVvZiBvLmxpbmVzQmVmb3JlJiYoby5saW5lc0JlZm9yZT0zKSwibnVtYmVyIiE9dHlwZW9mIG8ubGluZXNBZnRlciYmKG8ubGluZXNBZnRlcj0yKTtmb3IodmFyIGksYT0vXHI/XG58XHJ8XDAvZyx1PVswXSxfPVtdLHc9LTE7aT1hLmV4ZWMocy5idWZmZXIpOylfLnB1c2goaS5pbmRleCksdS5wdXNoKGkuaW5kZXgraVswXS5sZW5ndGgpLHMucG9zaXRpb248PWkuaW5kZXgmJnc8MCYmKHc9dS5sZW5ndGgtMik7dzwwJiYodz11Lmxlbmd0aC0xKTt2YXIgeCxDLGo9IiIsTD1NYXRoLm1pbihzLmxpbmUrby5saW5lc0FmdGVyLF8ubGVuZ3RoKS50b1N0cmluZygpLmxlbmd0aCxCPW8ubWF4TGVuZ3RoLShvLmluZGVudCtMKzMpO2Zvcih4PTE7eDw9by5saW5lc0JlZm9yZSYmISh3LXg8MCk7eCsrKUM9Z2V0TGluZShzLmJ1ZmZlcix1W3cteF0sX1t3LXhdLHMucG9zaXRpb24tKHVbd10tdVt3LXhdKSxCKSxqPWVyLnJlcGVhdCgiICIsby5pbmRlbnQpK3BhZFN0YXJ0KChzLmxpbmUteCsxKS50b1N0cmluZygpLEwpKyIgfCAiK0Muc3RyKyJcbiIrajtmb3IoQz1nZXRMaW5lKHMuYnVmZmVyLHVbd10sX1t3XSxzLnBvc2l0aW9uLEIpLGorPWVyLnJlcGVhdCgiICIsby5pbmRlbnQpK3BhZFN0YXJ0KChzLmxpbmUrMSkudG9TdHJpbmcoKSxMKSsiIHwgIitDLnN0cisiXG4iLGorPWVyLnJlcGVhdCgiLSIsby5pbmRlbnQrTCszK0MucG9zKSsiXlxuIix4PTE7eDw9by5saW5lc0FmdGVyJiYhKHcreD49Xy5sZW5ndGgpO3grKylDPWdldExpbmUocy5idWZmZXIsdVt3K3hdLF9bdyt4XSxzLnBvc2l0aW9uLSh1W3ddLXVbdyt4XSksQiksais9ZXIucmVwZWF0KCIgIixvLmluZGVudCkrcGFkU3RhcnQoKHMubGluZSt4KzEpLnRvU3RyaW5nKCksTCkrIiB8ICIrQy5zdHIrIlxuIjtyZXR1cm4gai5yZXBsYWNlKC9cbiQvLCIiKX0sbnI9WyJraW5kIiwibXVsdGkiLCJyZXNvbHZlIiwiY29uc3RydWN0IiwiaW5zdGFuY2VPZiIsInByZWRpY2F0ZSIsInJlcHJlc2VudCIsInJlcHJlc2VudE5hbWUiLCJkZWZhdWx0U3R5bGUiLCJzdHlsZUFsaWFzZXMiXSxzcj1bInNjYWxhciIsInNlcXVlbmNlIiwibWFwcGluZyJdO3ZhciBpcj1mdW5jdGlvbiBUeXBlJDEocyxvKXtpZihvPW98fHt9LE9iamVjdC5rZXlzKG8pLmZvckVhY2goKGZ1bmN0aW9uKG8pe2lmKC0xPT09bnIuaW5kZXhPZihvKSl0aHJvdyBuZXcgdHIoJ1Vua25vd24gb3B0aW9uICInK28rJyIgaXMgbWV0IGluIGRlZmluaXRpb24gb2YgIicrcysnIiBZQU1MIHR5cGUuJyl9KSksdGhpcy5vcHRpb25zPW8sdGhpcy50YWc9cyx0aGlzLmtpbmQ9by5raW5kfHxudWxsLHRoaXMucmVzb2x2ZT1vLnJlc29sdmV8fGZ1bmN0aW9uKCl7cmV0dXJuITB9LHRoaXMuY29uc3RydWN0PW8uY29uc3RydWN0fHxmdW5jdGlvbihzKXtyZXR1cm4gc30sdGhpcy5pbnN0YW5jZU9mPW8uaW5zdGFuY2VPZnx8bnVsbCx0aGlzLnByZWRpY2F0ZT1vLnByZWRpY2F0ZXx8bnVsbCx0aGlzLnJlcHJlc2VudD1vLnJlcHJlc2VudHx8bnVsbCx0aGlzLnJlcHJlc2VudE5hbWU9by5yZXByZXNlbnROYW1lfHxudWxsLHRoaXMuZGVmYXVsdFN0eWxlPW8uZGVmYXVsdFN0eWxlfHxudWxsLHRoaXMubXVsdGk9by5tdWx0aXx8ITEsdGhpcy5zdHlsZUFsaWFzZXM9ZnVuY3Rpb24gY29tcGlsZVN0eWxlQWxpYXNlcyhzKXt2YXIgbz17fTtyZXR1cm4gbnVsbCE9PXMmJk9iamVjdC5rZXlzKHMpLmZvckVhY2goKGZ1bmN0aW9uKGkpe3NbaV0uZm9yRWFjaCgoZnVuY3Rpb24ocyl7b1tTdHJpbmcocyldPWl9KSl9KSksb30oby5zdHlsZUFsaWFzZXN8fG51bGwpLC0xPT09c3IuaW5kZXhPZih0aGlzLmtpbmQpKXRocm93IG5ldyB0cignVW5rbm93biBraW5kICInK3RoaXMua2luZCsnIiBpcyBzcGVjaWZpZWQgZm9yICInK3MrJyIgWUFNTCB0eXBlLicpfTtmdW5jdGlvbiBjb21waWxlTGlzdChzLG8pe3ZhciBpPVtdO3JldHVybiBzW29dLmZvckVhY2goKGZ1bmN0aW9uKHMpe3ZhciBvPWkubGVuZ3RoO2kuZm9yRWFjaCgoZnVuY3Rpb24oaSxhKXtpLnRhZz09PXMudGFnJiZpLmtpbmQ9PT1zLmtpbmQmJmkubXVsdGk9PT1zLm11bHRpJiYobz1hKX0pKSxpW29dPXN9KSksaX1mdW5jdGlvbiBTY2hlbWEkMShzKXtyZXR1cm4gdGhpcy5leHRlbmQocyl9U2NoZW1hJDEucHJvdG90eXBlLmV4dGVuZD1mdW5jdGlvbiBleHRlbmQocyl7dmFyIG89W10saT1bXTtpZihzIGluc3RhbmNlb2YgaXIpaS5wdXNoKHMpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShzKSlpPWkuY29uY2F0KHMpO2Vsc2V7aWYoIXN8fCFBcnJheS5pc0FycmF5KHMuaW1wbGljaXQpJiYhQXJyYXkuaXNBcnJheShzLmV4cGxpY2l0KSl0aHJvdyBuZXcgdHIoIlNjaGVtYS5leHRlbmQgYXJndW1lbnQgc2hvdWxkIGJlIGEgVHlwZSwgWyBUeXBlIF0sIG9yIGEgc2NoZW1hIGRlZmluaXRpb24gKHsgaW1wbGljaXQ6IFsuLi5dLCBleHBsaWNpdDogWy4uLl0gfSkiKTtzLmltcGxpY2l0JiYobz1vLmNvbmNhdChzLmltcGxpY2l0KSkscy5leHBsaWNpdCYmKGk9aS5jb25jYXQocy5leHBsaWNpdCkpfW8uZm9yRWFjaCgoZnVuY3Rpb24ocyl7aWYoIShzIGluc3RhbmNlb2YgaXIpKXRocm93IG5ldyB0cigiU3BlY2lmaWVkIGxpc3Qgb2YgWUFNTCB0eXBlcyAob3IgYSBzaW5nbGUgVHlwZSBvYmplY3QpIGNvbnRhaW5zIGEgbm9uLVR5cGUgb2JqZWN0LiIpO2lmKHMubG9hZEtpbmQmJiJzY2FsYXIiIT09cy5sb2FkS2luZCl0aHJvdyBuZXcgdHIoIlRoZXJlIGlzIGEgbm9uLXNjYWxhciB0eXBlIGluIHRoZSBpbXBsaWNpdCBsaXN0IG9mIGEgc2NoZW1hLiBJbXBsaWNpdCByZXNvbHZpbmcgb2Ygc3VjaCB0eXBlcyBpcyBub3Qgc3VwcG9ydGVkLiIpO2lmKHMubXVsdGkpdGhyb3cgbmV3IHRyKCJUaGVyZSBpcyBhIG11bHRpIHR5cGUgaW4gdGhlIGltcGxpY2l0IGxpc3Qgb2YgYSBzY2hlbWEuIE11bHRpIHRhZ3MgY2FuIG9ubHkgYmUgbGlzdGVkIGFzIGV4cGxpY2l0LiIpfSkpLGkuZm9yRWFjaCgoZnVuY3Rpb24ocyl7aWYoIShzIGluc3RhbmNlb2YgaXIpKXRocm93IG5ldyB0cigiU3BlY2lmaWVkIGxpc3Qgb2YgWUFNTCB0eXBlcyAob3IgYSBzaW5nbGUgVHlwZSBvYmplY3QpIGNvbnRhaW5zIGEgbm9uLVR5cGUgb2JqZWN0LiIpfSkpO3ZhciBhPU9iamVjdC5jcmVhdGUoU2NoZW1hJDEucHJvdG90eXBlKTtyZXR1cm4gYS5pbXBsaWNpdD0odGhpcy5pbXBsaWNpdHx8W10pLmNvbmNhdChvKSxhLmV4cGxpY2l0PSh0aGlzLmV4cGxpY2l0fHxbXSkuY29uY2F0KGkpLGEuY29tcGlsZWRJbXBsaWNpdD1jb21waWxlTGlzdChhLCJpbXBsaWNpdCIpLGEuY29tcGlsZWRFeHBsaWNpdD1jb21waWxlTGlzdChhLCJleHBsaWNpdCIpLGEuY29tcGlsZWRUeXBlTWFwPWZ1bmN0aW9uIGNvbXBpbGVNYXAoKXt2YXIgcyxvLGk9e3NjYWxhcjp7fSxzZXF1ZW5jZTp7fSxtYXBwaW5nOnt9LGZhbGxiYWNrOnt9LG11bHRpOntzY2FsYXI6W10sc2VxdWVuY2U6W10sbWFwcGluZzpbXSxmYWxsYmFjazpbXX19O2Z1bmN0aW9uIGNvbGxlY3RUeXBlKHMpe3MubXVsdGk/KGkubXVsdGlbcy5raW5kXS5wdXNoKHMpLGkubXVsdGkuZmFsbGJhY2sucHVzaChzKSk6aVtzLmtpbmRdW3MudGFnXT1pLmZhbGxiYWNrW3MudGFnXT1zfWZvcihzPTAsbz1hcmd1bWVudHMubGVuZ3RoO3M8bztzKz0xKWFyZ3VtZW50c1tzXS5mb3JFYWNoKGNvbGxlY3RUeXBlKTtyZXR1cm4gaX0oYS5jb21waWxlZEltcGxpY2l0LGEuY29tcGlsZWRFeHBsaWNpdCksYX07dmFyIGFyPVNjaGVtYSQxLGNyPW5ldyBpcigidGFnOnlhbWwub3JnLDIwMDI6c3RyIix7a2luZDoic2NhbGFyIixjb25zdHJ1Y3Q6ZnVuY3Rpb24ocyl7cmV0dXJuIG51bGwhPT1zP3M6IiJ9fSksbHI9bmV3IGlyKCJ0YWc6eWFtbC5vcmcsMjAwMjpzZXEiLHtraW5kOiJzZXF1ZW5jZSIsY29uc3RydWN0OmZ1bmN0aW9uKHMpe3JldHVybiBudWxsIT09cz9zOltdfX0pLHVyPW5ldyBpcigidGFnOnlhbWwub3JnLDIwMDI6bWFwIix7a2luZDoibWFwcGluZyIsY29uc3RydWN0OmZ1bmN0aW9uKHMpe3JldHVybiBudWxsIT09cz9zOnt9fX0pLHByPW5ldyBhcih7ZXhwbGljaXQ6W2NyLGxyLHVyXX0pO3ZhciBkcj1uZXcgaXIoInRhZzp5YW1sLm9yZywyMDAyOm51bGwiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6ZnVuY3Rpb24gcmVzb2x2ZVlhbWxOdWxsKHMpe2lmKG51bGw9PT1zKXJldHVybiEwO3ZhciBvPXMubGVuZ3RoO3JldHVybiAxPT09byYmIn4iPT09c3x8ND09PW8mJigibnVsbCI9PT1zfHwiTnVsbCI9PT1zfHwiTlVMTCI9PT1zKX0sY29uc3RydWN0OmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxOdWxsKCl7cmV0dXJuIG51bGx9LHByZWRpY2F0ZTpmdW5jdGlvbiBpc051bGwocyl7cmV0dXJuIG51bGw9PT1zfSxyZXByZXNlbnQ6e2Nhbm9uaWNhbDpmdW5jdGlvbigpe3JldHVybiJ+In0sbG93ZXJjYXNlOmZ1bmN0aW9uKCl7cmV0dXJuIm51bGwifSx1cHBlcmNhc2U6ZnVuY3Rpb24oKXtyZXR1cm4iTlVMTCJ9LGNhbWVsY2FzZTpmdW5jdGlvbigpe3JldHVybiJOdWxsIn0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4iIn19LGRlZmF1bHRTdHlsZToibG93ZXJjYXNlIn0pO3ZhciBmcj1uZXcgaXIoInRhZzp5YW1sLm9yZywyMDAyOmJvb2wiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6ZnVuY3Rpb24gcmVzb2x2ZVlhbWxCb29sZWFuKHMpe2lmKG51bGw9PT1zKXJldHVybiExO3ZhciBvPXMubGVuZ3RoO3JldHVybiA0PT09byYmKCJ0cnVlIj09PXN8fCJUcnVlIj09PXN8fCJUUlVFIj09PXMpfHw1PT09byYmKCJmYWxzZSI9PT1zfHwiRmFsc2UiPT09c3x8IkZBTFNFIj09PXMpfSxjb25zdHJ1Y3Q6ZnVuY3Rpb24gY29uc3RydWN0WWFtbEJvb2xlYW4ocyl7cmV0dXJuInRydWUiPT09c3x8IlRydWUiPT09c3x8IlRSVUUiPT09c30scHJlZGljYXRlOmZ1bmN0aW9uIGlzQm9vbGVhbihzKXtyZXR1cm4iW29iamVjdCBCb29sZWFuXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocyl9LHJlcHJlc2VudDp7bG93ZXJjYXNlOmZ1bmN0aW9uKHMpe3JldHVybiBzPyJ0cnVlIjoiZmFsc2UifSx1cHBlcmNhc2U6ZnVuY3Rpb24ocyl7cmV0dXJuIHM/IlRSVUUiOiJGQUxTRSJ9LGNhbWVsY2FzZTpmdW5jdGlvbihzKXtyZXR1cm4gcz8iVHJ1ZSI6IkZhbHNlIn19LGRlZmF1bHRTdHlsZToibG93ZXJjYXNlIn0pO2Z1bmN0aW9uIGlzT2N0Q29kZShzKXtyZXR1cm4gNDg8PXMmJnM8PTU1fWZ1bmN0aW9uIGlzRGVjQ29kZShzKXtyZXR1cm4gNDg8PXMmJnM8PTU3fXZhciBtcj1uZXcgaXIoInRhZzp5YW1sLm9yZywyMDAyOmludCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpmdW5jdGlvbiByZXNvbHZlWWFtbEludGVnZXIocyl7aWYobnVsbD09PXMpcmV0dXJuITE7dmFyIG8saSxhPXMubGVuZ3RoLHU9MCxfPSExO2lmKCFhKXJldHVybiExO2lmKCItIiE9PShvPXNbdV0pJiYiKyIhPT1vfHwobz1zWysrdV0pLCIwIj09PW8pe2lmKHUrMT09PWEpcmV0dXJuITA7aWYoImIiPT09KG89c1srK3VdKSl7Zm9yKHUrKzt1PGE7dSsrKWlmKCJfIiE9PShvPXNbdV0pKXtpZigiMCIhPT1vJiYiMSIhPT1vKXJldHVybiExO189ITB9cmV0dXJuIF8mJiJfIiE9PW99aWYoIngiPT09byl7Zm9yKHUrKzt1PGE7dSsrKWlmKCJfIiE9PShvPXNbdV0pKXtpZighKDQ4PD0oaT1zLmNoYXJDb2RlQXQodSkpJiZpPD01N3x8NjU8PWkmJmk8PTcwfHw5Nzw9aSYmaTw9MTAyKSlyZXR1cm4hMTtfPSEwfXJldHVybiBfJiYiXyIhPT1vfWlmKCJvIj09PW8pe2Zvcih1Kys7dTxhO3UrKylpZigiXyIhPT0obz1zW3VdKSl7aWYoIWlzT2N0Q29kZShzLmNoYXJDb2RlQXQodSkpKXJldHVybiExO189ITB9cmV0dXJuIF8mJiJfIiE9PW99fWlmKCJfIj09PW8pcmV0dXJuITE7Zm9yKDt1PGE7dSsrKWlmKCJfIiE9PShvPXNbdV0pKXtpZighaXNEZWNDb2RlKHMuY2hhckNvZGVBdCh1KSkpcmV0dXJuITE7Xz0hMH1yZXR1cm4hKCFffHwiXyI9PT1vKX0sY29uc3RydWN0OmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxJbnRlZ2VyKHMpe3ZhciBvLGk9cyxhPTE7aWYoLTEhPT1pLmluZGV4T2YoIl8iKSYmKGk9aS5yZXBsYWNlKC9fL2csIiIpKSwiLSIhPT0obz1pWzBdKSYmIisiIT09b3x8KCItIj09PW8mJihhPS0xKSxvPShpPWkuc2xpY2UoMSkpWzBdKSwiMCI9PT1pKXJldHVybiAwO2lmKCIwIj09PW8pe2lmKCJiIj09PWlbMV0pcmV0dXJuIGEqcGFyc2VJbnQoaS5zbGljZSgyKSwyKTtpZigieCI9PT1pWzFdKXJldHVybiBhKnBhcnNlSW50KGkuc2xpY2UoMiksMTYpO2lmKCJvIj09PWlbMV0pcmV0dXJuIGEqcGFyc2VJbnQoaS5zbGljZSgyKSw4KX1yZXR1cm4gYSpwYXJzZUludChpLDEwKX0scHJlZGljYXRlOmZ1bmN0aW9uIGlzSW50ZWdlcihzKXtyZXR1cm4iW29iamVjdCBOdW1iZXJdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzKSYmcyUxPT0wJiYhZXIuaXNOZWdhdGl2ZVplcm8ocyl9LHJlcHJlc2VudDp7YmluYXJ5OmZ1bmN0aW9uKHMpe3JldHVybiBzPj0wPyIwYiIrcy50b1N0cmluZygyKToiLTBiIitzLnRvU3RyaW5nKDIpLnNsaWNlKDEpfSxvY3RhbDpmdW5jdGlvbihzKXtyZXR1cm4gcz49MD8iMG8iK3MudG9TdHJpbmcoOCk6Ii0wbyIrcy50b1N0cmluZyg4KS5zbGljZSgxKX0sZGVjaW1hbDpmdW5jdGlvbihzKXtyZXR1cm4gcy50b1N0cmluZygxMCl9LGhleGFkZWNpbWFsOmZ1bmN0aW9uKHMpe3JldHVybiBzPj0wPyIweCIrcy50b1N0cmluZygxNikudG9VcHBlckNhc2UoKToiLTB4IitzLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpLnNsaWNlKDEpfX0sZGVmYXVsdFN0eWxlOiJkZWNpbWFsIixzdHlsZUFsaWFzZXM6e2JpbmFyeTpbMiwiYmluIl0sb2N0YWw6WzgsIm9jdCJdLGRlY2ltYWw6WzEwLCJkZWMiXSxoZXhhZGVjaW1hbDpbMTYsImhleCJdfX0pLGdyPW5ldyBSZWdFeHAoIl4oPzpbLStdPyg/OlswLTldWzAtOV9dKikoPzpcXC5bMC05X10qKT8oPzpbZUVdWy0rXT9bMC05XSspP3xcXC5bMC05X10rKD86W2VFXVstK10/WzAtOV0rKT98Wy0rXT9cXC4oPzppbmZ8SW5mfElORil8XFwuKD86bmFufE5hTnxOQU4pKSQiKTt2YXIgeXI9L15bLStdP1swLTldK2UvO3ZhciB2cj1uZXcgaXIoInRhZzp5YW1sLm9yZywyMDAyOmZsb2F0Iix7a2luZDoic2NhbGFyIixyZXNvbHZlOmZ1bmN0aW9uIHJlc29sdmVZYW1sRmxvYXQocyl7cmV0dXJuIG51bGwhPT1zJiYhKCFnci50ZXN0KHMpfHwiXyI9PT1zW3MubGVuZ3RoLTFdKX0sY29uc3RydWN0OmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxGbG9hdChzKXt2YXIgbyxpO3JldHVybiBpPSItIj09PShvPXMucmVwbGFjZSgvXy9nLCIiKS50b0xvd2VyQ2FzZSgpKVswXT8tMToxLCIrLSIuaW5kZXhPZihvWzBdKT49MCYmKG89by5zbGljZSgxKSksIi5pbmYiPT09bz8xPT09aT9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk6TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOiIubmFuIj09PW8/TmFOOmkqcGFyc2VGbG9hdChvLDEwKX0scHJlZGljYXRlOmZ1bmN0aW9uIGlzRmxvYXQocyl7cmV0dXJuIltvYmplY3QgTnVtYmVyXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocykmJihzJTEhPTB8fGVyLmlzTmVnYXRpdmVaZXJvKHMpKX0scmVwcmVzZW50OmZ1bmN0aW9uIHJlcHJlc2VudFlhbWxGbG9hdChzLG8pe3ZhciBpO2lmKGlzTmFOKHMpKXN3aXRjaChvKXtjYXNlImxvd2VyY2FzZSI6cmV0dXJuIi5uYW4iO2Nhc2UidXBwZXJjYXNlIjpyZXR1cm4iLk5BTiI7Y2FzZSJjYW1lbGNhc2UiOnJldHVybiIuTmFOIn1lbHNlIGlmKE51bWJlci5QT1NJVElWRV9JTkZJTklUWT09PXMpc3dpdGNoKG8pe2Nhc2UibG93ZXJjYXNlIjpyZXR1cm4iLmluZiI7Y2FzZSJ1cHBlcmNhc2UiOnJldHVybiIuSU5GIjtjYXNlImNhbWVsY2FzZSI6cmV0dXJuIi5JbmYifWVsc2UgaWYoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZPT09cylzd2l0Y2gobyl7Y2FzZSJsb3dlcmNhc2UiOnJldHVybiItLmluZiI7Y2FzZSJ1cHBlcmNhc2UiOnJldHVybiItLklORiI7Y2FzZSJjYW1lbGNhc2UiOnJldHVybiItLkluZiJ9ZWxzZSBpZihlci5pc05lZ2F0aXZlWmVybyhzKSlyZXR1cm4iLTAuMCI7cmV0dXJuIGk9cy50b1N0cmluZygxMCkseXIudGVzdChpKT9pLnJlcGxhY2UoImUiLCIuZSIpOml9LGRlZmF1bHRTdHlsZToibG93ZXJjYXNlIn0pLGJyPXByLmV4dGVuZCh7aW1wbGljaXQ6W2RyLGZyLG1yLHZyXX0pLF9yPWJyLFNyPW5ldyBSZWdFeHAoIl4oWzAtOV1bMC05XVswLTldWzAtOV0pLShbMC05XVswLTldKS0oWzAtOV1bMC05XSkkIiksRXI9bmV3IFJlZ0V4cCgiXihbMC05XVswLTldWzAtOV1bMC05XSktKFswLTldWzAtOV0/KS0oWzAtOV1bMC05XT8pKD86W1R0XXxbIFxcdF0rKShbMC05XVswLTldPyk6KFswLTldWzAtOV0pOihbMC05XVswLTldKSg/OlxcLihbMC05XSopKT8oPzpbIFxcdF0qKFp8KFstK10pKFswLTldWzAtOV0/KSg/OjooWzAtOV1bMC05XSkpPykpPyQiKTt2YXIgd3I9bmV3IGlyKCJ0YWc6eWFtbC5vcmcsMjAwMjp0aW1lc3RhbXAiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6ZnVuY3Rpb24gcmVzb2x2ZVlhbWxUaW1lc3RhbXAocyl7cmV0dXJuIG51bGwhPT1zJiYobnVsbCE9PVNyLmV4ZWMocyl8fG51bGwhPT1Fci5leGVjKHMpKX0sY29uc3RydWN0OmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxUaW1lc3RhbXAocyl7dmFyIG8saSxhLHUsXyx3LHgsQyxqPTAsTD1udWxsO2lmKG51bGw9PT0obz1Tci5leGVjKHMpKSYmKG89RXIuZXhlYyhzKSksbnVsbD09PW8pdGhyb3cgbmV3IEVycm9yKCJEYXRlIHJlc29sdmUgZXJyb3IiKTtpZihpPStvWzFdLGE9K29bMl0tMSx1PStvWzNdLCFvWzRdKXJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyhpLGEsdSkpO2lmKF89K29bNF0sdz0rb1s1XSx4PStvWzZdLG9bN10pe2ZvcihqPW9bN10uc2xpY2UoMCwzKTtqLmxlbmd0aDwzOylqKz0iMCI7aj0ran1yZXR1cm4gb1s5XSYmKEw9NmU0Kig2MCorb1sxMF0rICsob1sxMV18fDApKSwiLSI9PT1vWzldJiYoTD0tTCkpLEM9bmV3IERhdGUoRGF0ZS5VVEMoaSxhLHUsXyx3LHgsaikpLEwmJkMuc2V0VGltZShDLmdldFRpbWUoKS1MKSxDfSxpbnN0YW5jZU9mOkRhdGUscmVwcmVzZW50OmZ1bmN0aW9uIHJlcHJlc2VudFlhbWxUaW1lc3RhbXAocyl7cmV0dXJuIHMudG9JU09TdHJpbmcoKX19KTt2YXIgeHI9bmV3IGlyKCJ0YWc6eWFtbC5vcmcsMjAwMjptZXJnZSIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpmdW5jdGlvbiByZXNvbHZlWWFtbE1lcmdlKHMpe3JldHVybiI8PCI9PT1zfHxudWxsPT09c319KSxrcj0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz1cblxyIjt2YXIgT3I9bmV3IGlyKCJ0YWc6eWFtbC5vcmcsMjAwMjpiaW5hcnkiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6ZnVuY3Rpb24gcmVzb2x2ZVlhbWxCaW5hcnkocyl7aWYobnVsbD09PXMpcmV0dXJuITE7dmFyIG8saSxhPTAsdT1zLmxlbmd0aCxfPWtyO2ZvcihpPTA7aTx1O2krKylpZighKChvPV8uaW5kZXhPZihzLmNoYXJBdChpKSkpPjY0KSl7aWYobzwwKXJldHVybiExO2ErPTZ9cmV0dXJuIGElOD09MH0sY29uc3RydWN0OmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxCaW5hcnkocyl7dmFyIG8saSxhPXMucmVwbGFjZSgvW1xyXG49XS9nLCIiKSx1PWEubGVuZ3RoLF89a3Isdz0wLHg9W107Zm9yKG89MDtvPHU7bysrKW8lND09MCYmbyYmKHgucHVzaCh3Pj4xNiYyNTUpLHgucHVzaCh3Pj44JjI1NSkseC5wdXNoKDI1NSZ3KSksdz13PDw2fF8uaW5kZXhPZihhLmNoYXJBdChvKSk7cmV0dXJuIDA9PT0oaT11JTQqNik/KHgucHVzaCh3Pj4xNiYyNTUpLHgucHVzaCh3Pj44JjI1NSkseC5wdXNoKDI1NSZ3KSk6MTg9PT1pPyh4LnB1c2godz4+MTAmMjU1KSx4LnB1c2godz4+MiYyNTUpKToxMj09PWkmJngucHVzaCh3Pj40JjI1NSksbmV3IFVpbnQ4QXJyYXkoeCl9LHByZWRpY2F0ZTpmdW5jdGlvbiBpc0JpbmFyeShzKXtyZXR1cm4iW29iamVjdCBVaW50OEFycmF5XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocyl9LHJlcHJlc2VudDpmdW5jdGlvbiByZXByZXNlbnRZYW1sQmluYXJ5KHMpe3ZhciBvLGksYT0iIix1PTAsXz1zLmxlbmd0aCx3PWtyO2ZvcihvPTA7bzxfO28rKylvJTM9PTAmJm8mJihhKz13W3U+PjE4JjYzXSxhKz13W3U+PjEyJjYzXSxhKz13W3U+PjYmNjNdLGErPXdbNjMmdV0pLHU9KHU8PDgpK3Nbb107cmV0dXJuIDA9PT0oaT1fJTMpPyhhKz13W3U+PjE4JjYzXSxhKz13W3U+PjEyJjYzXSxhKz13W3U+PjYmNjNdLGErPXdbNjMmdV0pOjI9PT1pPyhhKz13W3U+PjEwJjYzXSxhKz13W3U+PjQmNjNdLGErPXdbdTw8MiY2M10sYSs9d1s2NF0pOjE9PT1pJiYoYSs9d1t1Pj4yJjYzXSxhKz13W3U8PDQmNjNdLGErPXdbNjRdLGErPXdbNjRdKSxhfX0pLENyPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksQXI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzt2YXIganI9bmV3IGlyKCJ0YWc6eWFtbC5vcmcsMjAwMjpvbWFwIix7a2luZDoic2VxdWVuY2UiLHJlc29sdmU6ZnVuY3Rpb24gcmVzb2x2ZVlhbWxPbWFwKHMpe2lmKG51bGw9PT1zKXJldHVybiEwO3ZhciBvLGksYSx1LF8sdz1bXSx4PXM7Zm9yKG89MCxpPXgubGVuZ3RoO288aTtvKz0xKXtpZihhPXhbb10sXz0hMSwiW29iamVjdCBPYmplY3RdIiE9PUFyLmNhbGwoYSkpcmV0dXJuITE7Zm9yKHUgaW4gYSlpZihDci5jYWxsKGEsdSkpe2lmKF8pcmV0dXJuITE7Xz0hMH1pZighXylyZXR1cm4hMTtpZigtMSE9PXcuaW5kZXhPZih1KSlyZXR1cm4hMTt3LnB1c2godSl9cmV0dXJuITB9LGNvbnN0cnVjdDpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sT21hcChzKXtyZXR1cm4gbnVsbCE9PXM/czpbXX19KSxQcj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO3ZhciBJcj1uZXcgaXIoInRhZzp5YW1sLm9yZywyMDAyOnBhaXJzIix7a2luZDoic2VxdWVuY2UiLHJlc29sdmU6ZnVuY3Rpb24gcmVzb2x2ZVlhbWxQYWlycyhzKXtpZihudWxsPT09cylyZXR1cm4hMDt2YXIgbyxpLGEsdSxfLHc9cztmb3IoXz1uZXcgQXJyYXkody5sZW5ndGgpLG89MCxpPXcubGVuZ3RoO288aTtvKz0xKXtpZihhPXdbb10sIltvYmplY3QgT2JqZWN0XSIhPT1Qci5jYWxsKGEpKXJldHVybiExO2lmKDEhPT0odT1PYmplY3Qua2V5cyhhKSkubGVuZ3RoKXJldHVybiExO19bb109W3VbMF0sYVt1WzBdXV19cmV0dXJuITB9LGNvbnN0cnVjdDpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sUGFpcnMocyl7aWYobnVsbD09PXMpcmV0dXJuW107dmFyIG8saSxhLHUsXyx3PXM7Zm9yKF89bmV3IEFycmF5KHcubGVuZ3RoKSxvPTAsaT13Lmxlbmd0aDtvPGk7bys9MSlhPXdbb10sdT1PYmplY3Qua2V5cyhhKSxfW29dPVt1WzBdLGFbdVswXV1dO3JldHVybiBffX0pLFRyPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIE5yPW5ldyBpcigidGFnOnlhbWwub3JnLDIwMDI6c2V0Iix7a2luZDoibWFwcGluZyIscmVzb2x2ZTpmdW5jdGlvbiByZXNvbHZlWWFtbFNldChzKXtpZihudWxsPT09cylyZXR1cm4hMDt2YXIgbyxpPXM7Zm9yKG8gaW4gaSlpZihUci5jYWxsKGksbykmJm51bGwhPT1pW29dKXJldHVybiExO3JldHVybiEwfSxjb25zdHJ1Y3Q6ZnVuY3Rpb24gY29uc3RydWN0WWFtbFNldChzKXtyZXR1cm4gbnVsbCE9PXM/czp7fX19KSxNcj1fci5leHRlbmQoe2ltcGxpY2l0Olt3cix4cl0sZXhwbGljaXQ6W09yLGpyLElyLE5yXX0pLFJyPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksRHI9L1tceDAwLVx4MDhceDBCXHgwQ1x4MEUtXHgxRlx4N0YtXHg4NFx4ODYtXHg5Rlx1RkZGRVx1RkZGRl18W1x1RDgwMC1cdURCRkZdKD8hW1x1REMwMC1cdURGRkZdKXwoPzpbXlx1RDgwMC1cdURCRkZdfF4pW1x1REMwMC1cdURGRkZdLyxMcj0vW1x4ODVcdTIwMjhcdTIwMjldLyxGcj0vWyxcW1xdXHtcfV0vLEJyPS9eKD86IXwhIXwhW2EtelwtXSshKSQvaSwkcj0vXig/OiF8W14sXFtcXVx7XH1dKSg/OiVbMC05YS1mXXsyfXxbMC05YS16XC0jO1wvXD86QCY9XCtcJCxfXC4hflwqJ1woXClcW1xdXSkqJC9pO2Z1bmN0aW9uIF9jbGFzcyhzKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHMpfWZ1bmN0aW9uIGlzX0VPTChzKXtyZXR1cm4gMTA9PT1zfHwxMz09PXN9ZnVuY3Rpb24gaXNfV0hJVEVfU1BBQ0Uocyl7cmV0dXJuIDk9PT1zfHwzMj09PXN9ZnVuY3Rpb24gaXNfV1NfT1JfRU9MKHMpe3JldHVybiA5PT09c3x8MzI9PT1zfHwxMD09PXN8fDEzPT09c31mdW5jdGlvbiBpc19GTE9XX0lORElDQVRPUihzKXtyZXR1cm4gNDQ9PT1zfHw5MT09PXN8fDkzPT09c3x8MTIzPT09c3x8MTI1PT09c31mdW5jdGlvbiBmcm9tSGV4Q29kZShzKXt2YXIgbztyZXR1cm4gNDg8PXMmJnM8PTU3P3MtNDg6OTc8PShvPTMyfHMpJiZvPD0xMDI/by05NysxMDotMX1mdW5jdGlvbiBzaW1wbGVFc2NhcGVTZXF1ZW5jZShzKXtyZXR1cm4gNDg9PT1zPyJcMCI6OTc9PT1zPyIHIjo5OD09PXM/IlxiIjoxMTY9PT1zfHw5PT09cz8iXHQiOjExMD09PXM/IlxuIjoxMTg9PT1zPyJcdiI6MTAyPT09cz8iXGYiOjExND09PXM/IlxyIjoxMDE9PT1zPyIbIjozMj09PXM/IiAiOjM0PT09cz8nIic6NDc9PT1zPyIvIjo5Mj09PXM/IlxcIjo3OD09PXM/IsKFIjo5NT09PXM/IsKgIjo3Nj09PXM/Ilx1MjAyOCI6ODA9PT1zPyJcdTIwMjkiOiIifWZ1bmN0aW9uIGNoYXJGcm9tQ29kZXBvaW50KHMpe3JldHVybiBzPD02NTUzNT9TdHJpbmcuZnJvbUNoYXJDb2RlKHMpOlN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTYrKHMtNjU1MzY+PjEwKSw1NjMyMCsocy02NTUzNiYxMDIzKSl9Zm9yKHZhciBxcj1uZXcgQXJyYXkoMjU2KSxWcj1uZXcgQXJyYXkoMjU2KSxVcj0wO1VyPDI1NjtVcisrKXFyW1VyXT1zaW1wbGVFc2NhcGVTZXF1ZW5jZShVcik/MTowLFZyW1VyXT1zaW1wbGVFc2NhcGVTZXF1ZW5jZShVcik7ZnVuY3Rpb24gU3RhdGUkMShzLG8pe3RoaXMuaW5wdXQ9cyx0aGlzLmZpbGVuYW1lPW8uZmlsZW5hbWV8fG51bGwsdGhpcy5zY2hlbWE9by5zY2hlbWF8fE1yLHRoaXMub25XYXJuaW5nPW8ub25XYXJuaW5nfHxudWxsLHRoaXMubGVnYWN5PW8ubGVnYWN5fHwhMSx0aGlzLmpzb249by5qc29ufHwhMSx0aGlzLmxpc3RlbmVyPW8ubGlzdGVuZXJ8fG51bGwsdGhpcy5pbXBsaWNpdFR5cGVzPXRoaXMuc2NoZW1hLmNvbXBpbGVkSW1wbGljaXQsdGhpcy50eXBlTWFwPXRoaXMuc2NoZW1hLmNvbXBpbGVkVHlwZU1hcCx0aGlzLmxlbmd0aD1zLmxlbmd0aCx0aGlzLnBvc2l0aW9uPTAsdGhpcy5saW5lPTAsdGhpcy5saW5lU3RhcnQ9MCx0aGlzLmxpbmVJbmRlbnQ9MCx0aGlzLmZpcnN0VGFiSW5MaW5lPS0xLHRoaXMuZG9jdW1lbnRzPVtdfWZ1bmN0aW9uIGdlbmVyYXRlRXJyb3IocyxvKXt2YXIgaT17bmFtZTpzLmZpbGVuYW1lLGJ1ZmZlcjpzLmlucHV0LnNsaWNlKDAsLTEpLHBvc2l0aW9uOnMucG9zaXRpb24sbGluZTpzLmxpbmUsY29sdW1uOnMucG9zaXRpb24tcy5saW5lU3RhcnR9O3JldHVybiBpLnNuaXBwZXQ9cnIoaSksbmV3IHRyKG8saSl9ZnVuY3Rpb24gdGhyb3dFcnJvcihzLG8pe3Rocm93IGdlbmVyYXRlRXJyb3IocyxvKX1mdW5jdGlvbiB0aHJvd1dhcm5pbmcocyxvKXtzLm9uV2FybmluZyYmcy5vbldhcm5pbmcuY2FsbChudWxsLGdlbmVyYXRlRXJyb3IocyxvKSl9dmFyIHpyPXtZQU1MOmZ1bmN0aW9uIGhhbmRsZVlhbWxEaXJlY3RpdmUocyxvLGkpe3ZhciBhLHUsXztudWxsIT09cy52ZXJzaW9uJiZ0aHJvd0Vycm9yKHMsImR1cGxpY2F0aW9uIG9mICVZQU1MIGRpcmVjdGl2ZSIpLDEhPT1pLmxlbmd0aCYmdGhyb3dFcnJvcihzLCJZQU1MIGRpcmVjdGl2ZSBhY2NlcHRzIGV4YWN0bHkgb25lIGFyZ3VtZW50IiksbnVsbD09PShhPS9eKFswLTldKylcLihbMC05XSspJC8uZXhlYyhpWzBdKSkmJnRocm93RXJyb3IocywiaWxsLWZvcm1lZCBhcmd1bWVudCBvZiB0aGUgWUFNTCBkaXJlY3RpdmUiKSx1PXBhcnNlSW50KGFbMV0sMTApLF89cGFyc2VJbnQoYVsyXSwxMCksMSE9PXUmJnRocm93RXJyb3IocywidW5hY2NlcHRhYmxlIFlBTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQiKSxzLnZlcnNpb249aVswXSxzLmNoZWNrTGluZUJyZWFrcz1fPDIsMSE9PV8mJjIhPT1fJiZ0aHJvd1dhcm5pbmcocywidW5zdXBwb3J0ZWQgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCIpfSxUQUc6ZnVuY3Rpb24gaGFuZGxlVGFnRGlyZWN0aXZlKHMsbyxpKXt2YXIgYSx1OzIhPT1pLmxlbmd0aCYmdGhyb3dFcnJvcihzLCJUQUcgZGlyZWN0aXZlIGFjY2VwdHMgZXhhY3RseSB0d28gYXJndW1lbnRzIiksYT1pWzBdLHU9aVsxXSxCci50ZXN0KGEpfHx0aHJvd0Vycm9yKHMsImlsbC1mb3JtZWQgdGFnIGhhbmRsZSAoZmlyc3QgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlIiksUnIuY2FsbChzLnRhZ01hcCxhKSYmdGhyb3dFcnJvcihzLCd0aGVyZSBpcyBhIHByZXZpb3VzbHkgZGVjbGFyZWQgc3VmZml4IGZvciAiJythKyciIHRhZyBoYW5kbGUnKSwkci50ZXN0KHUpfHx0aHJvd0Vycm9yKHMsImlsbC1mb3JtZWQgdGFnIHByZWZpeCAoc2Vjb25kIGFyZ3VtZW50KSBvZiB0aGUgVEFHIGRpcmVjdGl2ZSIpO3RyeXt1PWRlY29kZVVSSUNvbXBvbmVudCh1KX1jYXRjaChvKXt0aHJvd0Vycm9yKHMsInRhZyBwcmVmaXggaXMgbWFsZm9ybWVkOiAiK3UpfXMudGFnTWFwW2FdPXV9fTtmdW5jdGlvbiBjYXB0dXJlU2VnbWVudChzLG8saSxhKXt2YXIgdSxfLHcseDtpZihvPGkpe2lmKHg9cy5pbnB1dC5zbGljZShvLGkpLGEpZm9yKHU9MCxfPXgubGVuZ3RoO3U8Xzt1Kz0xKTk9PT0odz14LmNoYXJDb2RlQXQodSkpfHwzMjw9dyYmdzw9MTExNDExMXx8dGhyb3dFcnJvcihzLCJleHBlY3RlZCB2YWxpZCBKU09OIGNoYXJhY3RlciIpO2Vsc2UgRHIudGVzdCh4KSYmdGhyb3dFcnJvcihzLCJ0aGUgc3RyZWFtIGNvbnRhaW5zIG5vbi1wcmludGFibGUgY2hhcmFjdGVycyIpO3MucmVzdWx0Kz14fX1mdW5jdGlvbiBtZXJnZU1hcHBpbmdzKHMsbyxpLGEpe3ZhciB1LF8sdyx4O2Zvcihlci5pc09iamVjdChpKXx8dGhyb3dFcnJvcihzLCJjYW5ub3QgbWVyZ2UgbWFwcGluZ3M7IHRoZSBwcm92aWRlZCBzb3VyY2Ugb2JqZWN0IGlzIHVuYWNjZXB0YWJsZSIpLHc9MCx4PSh1PU9iamVjdC5rZXlzKGkpKS5sZW5ndGg7dzx4O3crPTEpXz11W3ddLFJyLmNhbGwobyxfKXx8KG9bX109aVtfXSxhW19dPSEwKX1mdW5jdGlvbiBzdG9yZU1hcHBpbmdQYWlyKHMsbyxpLGEsdSxfLHcseCxDKXt2YXIgaixMO2lmKEFycmF5LmlzQXJyYXkodSkpZm9yKGo9MCxMPSh1PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHUpKS5sZW5ndGg7ajxMO2orPTEpQXJyYXkuaXNBcnJheSh1W2pdKSYmdGhyb3dFcnJvcihzLCJuZXN0ZWQgYXJyYXlzIGFyZSBub3Qgc3VwcG9ydGVkIGluc2lkZSBrZXlzIiksIm9iamVjdCI9PXR5cGVvZiB1JiYiW29iamVjdCBPYmplY3RdIj09PV9jbGFzcyh1W2pdKSYmKHVbal09IltvYmplY3QgT2JqZWN0XSIpO2lmKCJvYmplY3QiPT10eXBlb2YgdSYmIltvYmplY3QgT2JqZWN0XSI9PT1fY2xhc3ModSkmJih1PSJbb2JqZWN0IE9iamVjdF0iKSx1PVN0cmluZyh1KSxudWxsPT09byYmKG89e30pLCJ0YWc6eWFtbC5vcmcsMjAwMjptZXJnZSI9PT1hKWlmKEFycmF5LmlzQXJyYXkoXykpZm9yKGo9MCxMPV8ubGVuZ3RoO2o8TDtqKz0xKW1lcmdlTWFwcGluZ3MocyxvLF9bal0saSk7ZWxzZSBtZXJnZU1hcHBpbmdzKHMsbyxfLGkpO2Vsc2Ugcy5qc29ufHxSci5jYWxsKGksdSl8fCFSci5jYWxsKG8sdSl8fChzLmxpbmU9d3x8cy5saW5lLHMubGluZVN0YXJ0PXh8fHMubGluZVN0YXJ0LHMucG9zaXRpb249Q3x8cy5wb3NpdGlvbix0aHJvd0Vycm9yKHMsImR1cGxpY2F0ZWQgbWFwcGluZyBrZXkiKSksIl9fcHJvdG9fXyI9PT11P09iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHUse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KTpvW3VdPV8sZGVsZXRlIGlbdV07cmV0dXJuIG99ZnVuY3Rpb24gcmVhZExpbmVCcmVhayhzKXt2YXIgbzsxMD09PShvPXMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uKSk/cy5wb3NpdGlvbisrOjEzPT09bz8ocy5wb3NpdGlvbisrLDEwPT09cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pJiZzLnBvc2l0aW9uKyspOnRocm93RXJyb3IocywiYSBsaW5lIGJyZWFrIGlzIGV4cGVjdGVkIikscy5saW5lKz0xLHMubGluZVN0YXJ0PXMucG9zaXRpb24scy5maXJzdFRhYkluTGluZT0tMX1mdW5jdGlvbiBza2lwU2VwYXJhdGlvblNwYWNlKHMsbyxpKXtmb3IodmFyIGE9MCx1PXMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uKTswIT09dTspe2Zvcig7aXNfV0hJVEVfU1BBQ0UodSk7KTk9PT11JiYtMT09PXMuZmlyc3RUYWJJbkxpbmUmJihzLmZpcnN0VGFiSW5MaW5lPXMucG9zaXRpb24pLHU9cy5pbnB1dC5jaGFyQ29kZUF0KCsrcy5wb3NpdGlvbik7aWYobyYmMzU9PT11KWRve3U9cy5pbnB1dC5jaGFyQ29kZUF0KCsrcy5wb3NpdGlvbil9d2hpbGUoMTAhPT11JiYxMyE9PXUmJjAhPT11KTtpZighaXNfRU9MKHUpKWJyZWFrO2ZvcihyZWFkTGluZUJyZWFrKHMpLHU9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pLGErKyxzLmxpbmVJbmRlbnQ9MDszMj09PXU7KXMubGluZUluZGVudCsrLHU9cy5pbnB1dC5jaGFyQ29kZUF0KCsrcy5wb3NpdGlvbil9cmV0dXJuLTEhPT1pJiYwIT09YSYmcy5saW5lSW5kZW50PGkmJnRocm93V2FybmluZyhzLCJkZWZpY2llbnQgaW5kZW50YXRpb24iKSxhfWZ1bmN0aW9uIHRlc3REb2N1bWVudFNlcGFyYXRvcihzKXt2YXIgbyxpPXMucG9zaXRpb247cmV0dXJuISg0NSE9PShvPXMuaW5wdXQuY2hhckNvZGVBdChpKSkmJjQ2IT09b3x8byE9PXMuaW5wdXQuY2hhckNvZGVBdChpKzEpfHxvIT09cy5pbnB1dC5jaGFyQ29kZUF0KGkrMil8fChpKz0zLDAhPT0obz1zLmlucHV0LmNoYXJDb2RlQXQoaSkpJiYhaXNfV1NfT1JfRU9MKG8pKSl9ZnVuY3Rpb24gd3JpdGVGb2xkZWRMaW5lcyhzLG8pezE9PT1vP3MucmVzdWx0Kz0iICI6bz4xJiYocy5yZXN1bHQrPWVyLnJlcGVhdCgiXG4iLG8tMSkpfWZ1bmN0aW9uIHJlYWRCbG9ja1NlcXVlbmNlKHMsbyl7dmFyIGksYSx1PXMudGFnLF89cy5hbmNob3Isdz1bXSx4PSExO2lmKC0xIT09cy5maXJzdFRhYkluTGluZSlyZXR1cm4hMTtmb3IobnVsbCE9PXMuYW5jaG9yJiYocy5hbmNob3JNYXBbcy5hbmNob3JdPXcpLGE9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pOzAhPT1hJiYoLTEhPT1zLmZpcnN0VGFiSW5MaW5lJiYocy5wb3NpdGlvbj1zLmZpcnN0VGFiSW5MaW5lLHRocm93RXJyb3IocywidGFiIGNoYXJhY3RlcnMgbXVzdCBub3QgYmUgdXNlZCBpbiBpbmRlbnRhdGlvbiIpKSw0NT09PWEpJiZpc19XU19PUl9FT0wocy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24rMSkpOylpZih4PSEwLHMucG9zaXRpb24rKyxza2lwU2VwYXJhdGlvblNwYWNlKHMsITAsLTEpJiZzLmxpbmVJbmRlbnQ8PW8pdy5wdXNoKG51bGwpLGE9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pO2Vsc2UgaWYoaT1zLmxpbmUsY29tcG9zZU5vZGUocyxvLDMsITEsITApLHcucHVzaChzLnJlc3VsdCksc2tpcFNlcGFyYXRpb25TcGFjZShzLCEwLC0xKSxhPXMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uKSwocy5saW5lPT09aXx8cy5saW5lSW5kZW50Pm8pJiYwIT09YSl0aHJvd0Vycm9yKHMsImJhZCBpbmRlbnRhdGlvbiBvZiBhIHNlcXVlbmNlIGVudHJ5Iik7ZWxzZSBpZihzLmxpbmVJbmRlbnQ8bylicmVhaztyZXR1cm4hIXgmJihzLnRhZz11LHMuYW5jaG9yPV8scy5raW5kPSJzZXF1ZW5jZSIscy5yZXN1bHQ9dywhMCl9ZnVuY3Rpb24gcmVhZFRhZ1Byb3BlcnR5KHMpe3ZhciBvLGksYSx1LF89ITEsdz0hMTtpZigzMyE9PSh1PXMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uKSkpcmV0dXJuITE7aWYobnVsbCE9PXMudGFnJiZ0aHJvd0Vycm9yKHMsImR1cGxpY2F0aW9uIG9mIGEgdGFnIHByb3BlcnR5IiksNjA9PT0odT1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKSk/KF89ITAsdT1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKSk6MzM9PT11Pyh3PSEwLGk9IiEhIix1PXMuaW5wdXQuY2hhckNvZGVBdCgrK3MucG9zaXRpb24pKTppPSIhIixvPXMucG9zaXRpb24sXyl7ZG97dT1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKX13aGlsZSgwIT09dSYmNjIhPT11KTtzLnBvc2l0aW9uPHMubGVuZ3RoPyhhPXMuaW5wdXQuc2xpY2UobyxzLnBvc2l0aW9uKSx1PXMuaW5wdXQuY2hhckNvZGVBdCgrK3MucG9zaXRpb24pKTp0aHJvd0Vycm9yKHMsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgdmVyYmF0aW0gdGFnIil9ZWxzZXtmb3IoOzAhPT11JiYhaXNfV1NfT1JfRU9MKHUpOykzMz09PXUmJih3P3Rocm93RXJyb3IocywidGFnIHN1ZmZpeCBjYW5ub3QgY29udGFpbiBleGNsYW1hdGlvbiBtYXJrcyIpOihpPXMuaW5wdXQuc2xpY2Uoby0xLHMucG9zaXRpb24rMSksQnIudGVzdChpKXx8dGhyb3dFcnJvcihzLCJuYW1lZCB0YWcgaGFuZGxlIGNhbm5vdCBjb250YWluIHN1Y2ggY2hhcmFjdGVycyIpLHc9ITAsbz1zLnBvc2l0aW9uKzEpKSx1PXMuaW5wdXQuY2hhckNvZGVBdCgrK3MucG9zaXRpb24pO2E9cy5pbnB1dC5zbGljZShvLHMucG9zaXRpb24pLEZyLnRlc3QoYSkmJnRocm93RXJyb3IocywidGFnIHN1ZmZpeCBjYW5ub3QgY29udGFpbiBmbG93IGluZGljYXRvciBjaGFyYWN0ZXJzIil9YSYmISRyLnRlc3QoYSkmJnRocm93RXJyb3IocywidGFnIG5hbWUgY2Fubm90IGNvbnRhaW4gc3VjaCBjaGFyYWN0ZXJzOiAiK2EpO3RyeXthPWRlY29kZVVSSUNvbXBvbmVudChhKX1jYXRjaChvKXt0aHJvd0Vycm9yKHMsInRhZyBuYW1lIGlzIG1hbGZvcm1lZDogIithKX1yZXR1cm4gXz9zLnRhZz1hOlJyLmNhbGwocy50YWdNYXAsaSk/cy50YWc9cy50YWdNYXBbaV0rYToiISI9PT1pP3MudGFnPSIhIithOiIhISI9PT1pP3MudGFnPSJ0YWc6eWFtbC5vcmcsMjAwMjoiK2E6dGhyb3dFcnJvcihzLCd1bmRlY2xhcmVkIHRhZyBoYW5kbGUgIicraSsnIicpLCEwfWZ1bmN0aW9uIHJlYWRBbmNob3JQcm9wZXJ0eShzKXt2YXIgbyxpO2lmKDM4IT09KGk9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pKSlyZXR1cm4hMTtmb3IobnVsbCE9PXMuYW5jaG9yJiZ0aHJvd0Vycm9yKHMsImR1cGxpY2F0aW9uIG9mIGFuIGFuY2hvciBwcm9wZXJ0eSIpLGk9cy5pbnB1dC5jaGFyQ29kZUF0KCsrcy5wb3NpdGlvbiksbz1zLnBvc2l0aW9uOzAhPT1pJiYhaXNfV1NfT1JfRU9MKGkpJiYhaXNfRkxPV19JTkRJQ0FUT1IoaSk7KWk9cy5pbnB1dC5jaGFyQ29kZUF0KCsrcy5wb3NpdGlvbik7cmV0dXJuIHMucG9zaXRpb249PT1vJiZ0aHJvd0Vycm9yKHMsIm5hbWUgb2YgYW4gYW5jaG9yIG5vZGUgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIiKSxzLmFuY2hvcj1zLmlucHV0LnNsaWNlKG8scy5wb3NpdGlvbiksITB9ZnVuY3Rpb24gY29tcG9zZU5vZGUocyxvLGksYSx1KXt2YXIgXyx3LHgsQyxqLEwsQiwkLFYsVT0xLHo9ITEsWT0hMTtpZihudWxsIT09cy5saXN0ZW5lciYmcy5saXN0ZW5lcigib3BlbiIscykscy50YWc9bnVsbCxzLmFuY2hvcj1udWxsLHMua2luZD1udWxsLHMucmVzdWx0PW51bGwsXz13PXg9ND09PWl8fDM9PT1pLGEmJnNraXBTZXBhcmF0aW9uU3BhY2UocywhMCwtMSkmJih6PSEwLHMubGluZUluZGVudD5vP1U9MTpzLmxpbmVJbmRlbnQ9PT1vP1U9MDpzLmxpbmVJbmRlbnQ8byYmKFU9LTEpKSwxPT09VSlmb3IoO3JlYWRUYWdQcm9wZXJ0eShzKXx8cmVhZEFuY2hvclByb3BlcnR5KHMpOylza2lwU2VwYXJhdGlvblNwYWNlKHMsITAsLTEpPyh6PSEwLHg9XyxzLmxpbmVJbmRlbnQ+bz9VPTE6cy5saW5lSW5kZW50PT09bz9VPTA6cy5saW5lSW5kZW50PG8mJihVPS0xKSk6eD0hMTtpZih4JiYoeD16fHx1KSwxIT09VSYmNCE9PWl8fCgkPTE9PT1pfHwyPT09aT9vOm8rMSxWPXMucG9zaXRpb24tcy5saW5lU3RhcnQsMT09PVU/eCYmKHJlYWRCbG9ja1NlcXVlbmNlKHMsVil8fGZ1bmN0aW9uIHJlYWRCbG9ja01hcHBpbmcocyxvLGkpe3ZhciBhLHUsXyx3LHgsQyxqLEw9cy50YWcsQj1zLmFuY2hvciwkPXt9LFY9T2JqZWN0LmNyZWF0ZShudWxsKSxVPW51bGwsej1udWxsLFk9bnVsbCxaPSExLGVlPSExO2lmKC0xIT09cy5maXJzdFRhYkluTGluZSlyZXR1cm4hMTtmb3IobnVsbCE9PXMuYW5jaG9yJiYocy5hbmNob3JNYXBbcy5hbmNob3JdPSQpLGo9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pOzAhPT1qOyl7aWYoWnx8LTE9PT1zLmZpcnN0VGFiSW5MaW5lfHwocy5wb3NpdGlvbj1zLmZpcnN0VGFiSW5MaW5lLHRocm93RXJyb3IocywidGFiIGNoYXJhY3RlcnMgbXVzdCBub3QgYmUgdXNlZCBpbiBpbmRlbnRhdGlvbiIpKSxhPXMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uKzEpLF89cy5saW5lLDYzIT09aiYmNTghPT1qfHwhaXNfV1NfT1JfRU9MKGEpKXtpZih3PXMubGluZSx4PXMubGluZVN0YXJ0LEM9cy5wb3NpdGlvbiwhY29tcG9zZU5vZGUocyxpLDIsITEsITApKWJyZWFrO2lmKHMubGluZT09PV8pe2ZvcihqPXMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uKTtpc19XSElURV9TUEFDRShqKTspaj1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKTtpZig1OD09PWopaXNfV1NfT1JfRU9MKGo9cy5pbnB1dC5jaGFyQ29kZUF0KCsrcy5wb3NpdGlvbikpfHx0aHJvd0Vycm9yKHMsImEgd2hpdGVzcGFjZSBjaGFyYWN0ZXIgaXMgZXhwZWN0ZWQgYWZ0ZXIgdGhlIGtleS12YWx1ZSBzZXBhcmF0b3Igd2l0aGluIGEgYmxvY2sgbWFwcGluZyIpLFomJihzdG9yZU1hcHBpbmdQYWlyKHMsJCxWLFUseixudWxsLHcseCxDKSxVPXo9WT1udWxsKSxlZT0hMCxaPSExLHU9ITEsVT1zLnRhZyx6PXMucmVzdWx0O2Vsc2V7aWYoIWVlKXJldHVybiBzLnRhZz1MLHMuYW5jaG9yPUIsITA7dGhyb3dFcnJvcihzLCJjYW4gbm90IHJlYWQgYW4gaW1wbGljaXQgbWFwcGluZyBwYWlyOyBhIGNvbG9uIGlzIG1pc3NlZCIpfX1lbHNle2lmKCFlZSlyZXR1cm4gcy50YWc9TCxzLmFuY2hvcj1CLCEwO3Rocm93RXJyb3IocywiY2FuIG5vdCByZWFkIGEgYmxvY2sgbWFwcGluZyBlbnRyeTsgYSBtdWx0aWxpbmUga2V5IG1heSBub3QgYmUgYW4gaW1wbGljaXQga2V5Iil9fWVsc2UgNjM9PT1qPyhaJiYoc3RvcmVNYXBwaW5nUGFpcihzLCQsVixVLHosbnVsbCx3LHgsQyksVT16PVk9bnVsbCksZWU9ITAsWj0hMCx1PSEwKTpaPyhaPSExLHU9ITApOnRocm93RXJyb3IocywiaW5jb21wbGV0ZSBleHBsaWNpdCBtYXBwaW5nIHBhaXI7IGEga2V5IG5vZGUgaXMgbWlzc2VkOyBvciBmb2xsb3dlZCBieSBhIG5vbi10YWJ1bGF0ZWQgZW1wdHkgbGluZSIpLHMucG9zaXRpb24rPTEsaj1hO2lmKChzLmxpbmU9PT1ffHxzLmxpbmVJbmRlbnQ+bykmJihaJiYodz1zLmxpbmUseD1zLmxpbmVTdGFydCxDPXMucG9zaXRpb24pLGNvbXBvc2VOb2RlKHMsbyw0LCEwLHUpJiYoWj96PXMucmVzdWx0Olk9cy5yZXN1bHQpLFp8fChzdG9yZU1hcHBpbmdQYWlyKHMsJCxWLFUseixZLHcseCxDKSxVPXo9WT1udWxsKSxza2lwU2VwYXJhdGlvblNwYWNlKHMsITAsLTEpLGo9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pKSwocy5saW5lPT09X3x8cy5saW5lSW5kZW50Pm8pJiYwIT09ail0aHJvd0Vycm9yKHMsImJhZCBpbmRlbnRhdGlvbiBvZiBhIG1hcHBpbmcgZW50cnkiKTtlbHNlIGlmKHMubGluZUluZGVudDxvKWJyZWFrfXJldHVybiBaJiZzdG9yZU1hcHBpbmdQYWlyKHMsJCxWLFUseixudWxsLHcseCxDKSxlZSYmKHMudGFnPUwscy5hbmNob3I9QixzLmtpbmQ9Im1hcHBpbmciLHMucmVzdWx0PSQpLGVlfShzLFYsJCkpfHxmdW5jdGlvbiByZWFkRmxvd0NvbGxlY3Rpb24ocyxvKXt2YXIgaSxhLHUsXyx3LHgsQyxqLEwsQiwkLFYsVT0hMCx6PXMudGFnLFk9cy5hbmNob3IsWj1PYmplY3QuY3JlYXRlKG51bGwpO2lmKDkxPT09KFY9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pKSl3PTkzLGo9ITEsXz1bXTtlbHNle2lmKDEyMyE9PVYpcmV0dXJuITE7dz0xMjUsaj0hMCxfPXt9fWZvcihudWxsIT09cy5hbmNob3ImJihzLmFuY2hvck1hcFtzLmFuY2hvcl09XyksVj1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKTswIT09Vjspe2lmKHNraXBTZXBhcmF0aW9uU3BhY2UocywhMCxvKSwoVj1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbikpPT09dylyZXR1cm4gcy5wb3NpdGlvbisrLHMudGFnPXoscy5hbmNob3I9WSxzLmtpbmQ9aj8ibWFwcGluZyI6InNlcXVlbmNlIixzLnJlc3VsdD1fLCEwO1U/NDQ9PT1WJiZ0aHJvd0Vycm9yKHMsImV4cGVjdGVkIHRoZSBub2RlIGNvbnRlbnQsIGJ1dCBmb3VuZCAnLCciKTp0aHJvd0Vycm9yKHMsIm1pc3NlZCBjb21tYSBiZXR3ZWVuIGZsb3cgY29sbGVjdGlvbiBlbnRyaWVzIiksJD1udWxsLHg9Qz0hMSw2Mz09PVYmJmlzX1dTX09SX0VPTChzLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbisxKSkmJih4PUM9ITAscy5wb3NpdGlvbisrLHNraXBTZXBhcmF0aW9uU3BhY2UocywhMCxvKSksaT1zLmxpbmUsYT1zLmxpbmVTdGFydCx1PXMucG9zaXRpb24sY29tcG9zZU5vZGUocyxvLDEsITEsITApLEI9cy50YWcsTD1zLnJlc3VsdCxza2lwU2VwYXJhdGlvblNwYWNlKHMsITAsbyksVj1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbiksIUMmJnMubGluZSE9PWl8fDU4IT09Vnx8KHg9ITAsVj1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKSxza2lwU2VwYXJhdGlvblNwYWNlKHMsITAsbyksY29tcG9zZU5vZGUocyxvLDEsITEsITApLCQ9cy5yZXN1bHQpLGo/c3RvcmVNYXBwaW5nUGFpcihzLF8sWixCLEwsJCxpLGEsdSk6eD9fLnB1c2goc3RvcmVNYXBwaW5nUGFpcihzLG51bGwsWixCLEwsJCxpLGEsdSkpOl8ucHVzaChMKSxza2lwU2VwYXJhdGlvblNwYWNlKHMsITAsbyksNDQ9PT0oVj1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbikpPyhVPSEwLFY9cy5pbnB1dC5jaGFyQ29kZUF0KCsrcy5wb3NpdGlvbikpOlU9ITF9dGhyb3dFcnJvcihzLCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIGZsb3cgY29sbGVjdGlvbiIpfShzLCQpP1k9ITA6KHcmJmZ1bmN0aW9uIHJlYWRCbG9ja1NjYWxhcihzLG8pe3ZhciBpLGEsdSxfLHcseD0xLEM9ITEsaj0hMSxMPW8sQj0wLCQ9ITE7aWYoMTI0PT09KF89cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pKSlhPSExO2Vsc2V7aWYoNjIhPT1fKXJldHVybiExO2E9ITB9Zm9yKHMua2luZD0ic2NhbGFyIixzLnJlc3VsdD0iIjswIT09XzspaWYoNDM9PT0oXz1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKSl8fDQ1PT09XykxPT09eD94PTQzPT09Xz8zOjI6dGhyb3dFcnJvcihzLCJyZXBlYXQgb2YgYSBjaG9tcGluZyBtb2RlIGlkZW50aWZpZXIiKTtlbHNle2lmKCEoKHU9NDg8PSh3PV8pJiZ3PD01Nz93LTQ4Oi0xKT49MCkpYnJlYWs7MD09PXU/dGhyb3dFcnJvcihzLCJiYWQgZXhwbGljaXQgaW5kZW50YXRpb24gd2lkdGggb2YgYSBibG9jayBzY2FsYXI7IGl0IGNhbm5vdCBiZSBsZXNzIHRoYW4gb25lIik6aj90aHJvd0Vycm9yKHMsInJlcGVhdCBvZiBhbiBpbmRlbnRhdGlvbiB3aWR0aCBpZGVudGlmaWVyIik6KEw9byt1LTEsaj0hMCl9aWYoaXNfV0hJVEVfU1BBQ0UoXykpe2Rve189cy5pbnB1dC5jaGFyQ29kZUF0KCsrcy5wb3NpdGlvbil9d2hpbGUoaXNfV0hJVEVfU1BBQ0UoXykpO2lmKDM1PT09Xylkb3tfPXMuaW5wdXQuY2hhckNvZGVBdCgrK3MucG9zaXRpb24pfXdoaWxlKCFpc19FT0woXykmJjAhPT1fKX1mb3IoOzAhPT1fOyl7Zm9yKHJlYWRMaW5lQnJlYWsocykscy5saW5lSW5kZW50PTAsXz1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbik7KCFqfHxzLmxpbmVJbmRlbnQ8TCkmJjMyPT09Xzspcy5saW5lSW5kZW50KyssXz1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKTtpZighaiYmcy5saW5lSW5kZW50PkwmJihMPXMubGluZUluZGVudCksaXNfRU9MKF8pKUIrKztlbHNle2lmKHMubGluZUluZGVudDxMKXszPT09eD9zLnJlc3VsdCs9ZXIucmVwZWF0KCJcbiIsQz8xK0I6Qik6MT09PXgmJkMmJihzLnJlc3VsdCs9IlxuIik7YnJlYWt9Zm9yKGE/aXNfV0hJVEVfU1BBQ0UoXyk/KCQ9ITAscy5yZXN1bHQrPWVyLnJlcGVhdCgiXG4iLEM/MStCOkIpKTokPygkPSExLHMucmVzdWx0Kz1lci5yZXBlYXQoIlxuIixCKzEpKTowPT09Qj9DJiYocy5yZXN1bHQrPSIgIik6cy5yZXN1bHQrPWVyLnJlcGVhdCgiXG4iLEIpOnMucmVzdWx0Kz1lci5yZXBlYXQoIlxuIixDPzErQjpCKSxDPSEwLGo9ITAsQj0wLGk9cy5wb3NpdGlvbjshaXNfRU9MKF8pJiYwIT09XzspXz1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKTtjYXB0dXJlU2VnbWVudChzLGkscy5wb3NpdGlvbiwhMSl9fXJldHVybiEwfShzLCQpfHxmdW5jdGlvbiByZWFkU2luZ2xlUXVvdGVkU2NhbGFyKHMsbyl7dmFyIGksYSx1O2lmKDM5IT09KGk9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pKSlyZXR1cm4hMTtmb3Iocy5raW5kPSJzY2FsYXIiLHMucmVzdWx0PSIiLHMucG9zaXRpb24rKyxhPXU9cy5wb3NpdGlvbjswIT09KGk9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pKTspaWYoMzk9PT1pKXtpZihjYXB0dXJlU2VnbWVudChzLGEscy5wb3NpdGlvbiwhMCksMzkhPT0oaT1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKSkpcmV0dXJuITA7YT1zLnBvc2l0aW9uLHMucG9zaXRpb24rKyx1PXMucG9zaXRpb259ZWxzZSBpc19FT0woaSk/KGNhcHR1cmVTZWdtZW50KHMsYSx1LCEwKSx3cml0ZUZvbGRlZExpbmVzKHMsc2tpcFNlcGFyYXRpb25TcGFjZShzLCExLG8pKSxhPXU9cy5wb3NpdGlvbik6cy5wb3NpdGlvbj09PXMubGluZVN0YXJ0JiZ0ZXN0RG9jdW1lbnRTZXBhcmF0b3Iocyk/dGhyb3dFcnJvcihzLCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgZG9jdW1lbnQgd2l0aGluIGEgc2luZ2xlIHF1b3RlZCBzY2FsYXIiKToocy5wb3NpdGlvbisrLHU9cy5wb3NpdGlvbik7dGhyb3dFcnJvcihzLCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyIil9KHMsJCl8fGZ1bmN0aW9uIHJlYWREb3VibGVRdW90ZWRTY2FsYXIocyxvKXt2YXIgaSxhLHUsXyx3LHgsQztpZigzNCE9PSh4PXMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uKSkpcmV0dXJuITE7Zm9yKHMua2luZD0ic2NhbGFyIixzLnJlc3VsdD0iIixzLnBvc2l0aW9uKyssaT1hPXMucG9zaXRpb247MCE9PSh4PXMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uKSk7KXtpZigzND09PXgpcmV0dXJuIGNhcHR1cmVTZWdtZW50KHMsaSxzLnBvc2l0aW9uLCEwKSxzLnBvc2l0aW9uKyssITA7aWYoOTI9PT14KXtpZihjYXB0dXJlU2VnbWVudChzLGkscy5wb3NpdGlvbiwhMCksaXNfRU9MKHg9cy5pbnB1dC5jaGFyQ29kZUF0KCsrcy5wb3NpdGlvbikpKXNraXBTZXBhcmF0aW9uU3BhY2UocywhMSxvKTtlbHNlIGlmKHg8MjU2JiZxclt4XSlzLnJlc3VsdCs9VnJbeF0scy5wb3NpdGlvbisrO2Vsc2UgaWYoKHc9MTIwPT09KEM9eCk/MjoxMTc9PT1DPzQ6ODU9PT1DPzg6MCk+MCl7Zm9yKHU9dyxfPTA7dT4wO3UtLSkodz1mcm9tSGV4Q29kZSh4PXMuaW5wdXQuY2hhckNvZGVBdCgrK3MucG9zaXRpb24pKSk+PTA/Xz0oXzw8NCkrdzp0aHJvd0Vycm9yKHMsImV4cGVjdGVkIGhleGFkZWNpbWFsIGNoYXJhY3RlciIpO3MucmVzdWx0Kz1jaGFyRnJvbUNvZGVwb2ludChfKSxzLnBvc2l0aW9uKyt9ZWxzZSB0aHJvd0Vycm9yKHMsInVua25vd24gZXNjYXBlIHNlcXVlbmNlIik7aT1hPXMucG9zaXRpb259ZWxzZSBpc19FT0woeCk/KGNhcHR1cmVTZWdtZW50KHMsaSxhLCEwKSx3cml0ZUZvbGRlZExpbmVzKHMsc2tpcFNlcGFyYXRpb25TcGFjZShzLCExLG8pKSxpPWE9cy5wb3NpdGlvbik6cy5wb3NpdGlvbj09PXMubGluZVN0YXJ0JiZ0ZXN0RG9jdW1lbnRTZXBhcmF0b3Iocyk/dGhyb3dFcnJvcihzLCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgZG9jdW1lbnQgd2l0aGluIGEgZG91YmxlIHF1b3RlZCBzY2FsYXIiKToocy5wb3NpdGlvbisrLGE9cy5wb3NpdGlvbil9dGhyb3dFcnJvcihzLCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIGRvdWJsZSBxdW90ZWQgc2NhbGFyIil9KHMsJCk/WT0hMDohZnVuY3Rpb24gcmVhZEFsaWFzKHMpe3ZhciBvLGksYTtpZig0MiE9PShhPXMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uKSkpcmV0dXJuITE7Zm9yKGE9cy5pbnB1dC5jaGFyQ29kZUF0KCsrcy5wb3NpdGlvbiksbz1zLnBvc2l0aW9uOzAhPT1hJiYhaXNfV1NfT1JfRU9MKGEpJiYhaXNfRkxPV19JTkRJQ0FUT1IoYSk7KWE9cy5pbnB1dC5jaGFyQ29kZUF0KCsrcy5wb3NpdGlvbik7cmV0dXJuIHMucG9zaXRpb249PT1vJiZ0aHJvd0Vycm9yKHMsIm5hbWUgb2YgYW4gYWxpYXMgbm9kZSBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGNoYXJhY3RlciIpLGk9cy5pbnB1dC5zbGljZShvLHMucG9zaXRpb24pLFJyLmNhbGwocy5hbmNob3JNYXAsaSl8fHRocm93RXJyb3IocywndW5pZGVudGlmaWVkIGFsaWFzICInK2krJyInKSxzLnJlc3VsdD1zLmFuY2hvck1hcFtpXSxza2lwU2VwYXJhdGlvblNwYWNlKHMsITAsLTEpLCEwfShzKT9mdW5jdGlvbiByZWFkUGxhaW5TY2FsYXIocyxvLGkpe3ZhciBhLHUsXyx3LHgsQyxqLEwsQj1zLmtpbmQsJD1zLnJlc3VsdDtpZihpc19XU19PUl9FT0woTD1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbikpfHxpc19GTE9XX0lORElDQVRPUihMKXx8MzU9PT1MfHwzOD09PUx8fDQyPT09THx8MzM9PT1MfHwxMjQ9PT1MfHw2Mj09PUx8fDM5PT09THx8MzQ9PT1MfHwzNz09PUx8fDY0PT09THx8OTY9PT1MKXJldHVybiExO2lmKCg2Mz09PUx8fDQ1PT09TCkmJihpc19XU19PUl9FT0woYT1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbisxKSl8fGkmJmlzX0ZMT1dfSU5ESUNBVE9SKGEpKSlyZXR1cm4hMTtmb3Iocy5raW5kPSJzY2FsYXIiLHMucmVzdWx0PSIiLHU9Xz1zLnBvc2l0aW9uLHc9ITE7MCE9PUw7KXtpZig1OD09PUwpe2lmKGlzX1dTX09SX0VPTChhPXMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uKzEpKXx8aSYmaXNfRkxPV19JTkRJQ0FUT1IoYSkpYnJlYWt9ZWxzZSBpZigzNT09PUwpe2lmKGlzX1dTX09SX0VPTChzLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbi0xKSkpYnJlYWt9ZWxzZXtpZihzLnBvc2l0aW9uPT09cy5saW5lU3RhcnQmJnRlc3REb2N1bWVudFNlcGFyYXRvcihzKXx8aSYmaXNfRkxPV19JTkRJQ0FUT1IoTCkpYnJlYWs7aWYoaXNfRU9MKEwpKXtpZih4PXMubGluZSxDPXMubGluZVN0YXJ0LGo9cy5saW5lSW5kZW50LHNraXBTZXBhcmF0aW9uU3BhY2UocywhMSwtMSkscy5saW5lSW5kZW50Pj1vKXt3PSEwLEw9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pO2NvbnRpbnVlfXMucG9zaXRpb249XyxzLmxpbmU9eCxzLmxpbmVTdGFydD1DLHMubGluZUluZGVudD1qO2JyZWFrfX13JiYoY2FwdHVyZVNlZ21lbnQocyx1LF8sITEpLHdyaXRlRm9sZGVkTGluZXMocyxzLmxpbmUteCksdT1fPXMucG9zaXRpb24sdz0hMSksaXNfV0hJVEVfU1BBQ0UoTCl8fChfPXMucG9zaXRpb24rMSksTD1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKX1yZXR1cm4gY2FwdHVyZVNlZ21lbnQocyx1LF8sITEpLCEhcy5yZXN1bHR8fChzLmtpbmQ9QixzLnJlc3VsdD0kLCExKX0ocywkLDE9PT1pKSYmKFk9ITAsbnVsbD09PXMudGFnJiYocy50YWc9Ij8iKSk6KFk9ITAsbnVsbD09PXMudGFnJiZudWxsPT09cy5hbmNob3J8fHRocm93RXJyb3IocywiYWxpYXMgbm9kZSBzaG91bGQgbm90IGhhdmUgYW55IHByb3BlcnRpZXMiKSksbnVsbCE9PXMuYW5jaG9yJiYocy5hbmNob3JNYXBbcy5hbmNob3JdPXMucmVzdWx0KSk6MD09PVUmJihZPXgmJnJlYWRCbG9ja1NlcXVlbmNlKHMsVikpKSxudWxsPT09cy50YWcpbnVsbCE9PXMuYW5jaG9yJiYocy5hbmNob3JNYXBbcy5hbmNob3JdPXMucmVzdWx0KTtlbHNlIGlmKCI/Ij09PXMudGFnKXtmb3IobnVsbCE9PXMucmVzdWx0JiYic2NhbGFyIiE9PXMua2luZCYmdGhyb3dFcnJvcihzLCd1bmFjY2VwdGFibGUgbm9kZSBraW5kIGZvciAhPD8+IHRhZzsgaXQgc2hvdWxkIGJlICJzY2FsYXIiLCBub3QgIicrcy5raW5kKyciJyksQz0wLGo9cy5pbXBsaWNpdFR5cGVzLmxlbmd0aDtDPGo7Qys9MSlpZigoQj1zLmltcGxpY2l0VHlwZXNbQ10pLnJlc29sdmUocy5yZXN1bHQpKXtzLnJlc3VsdD1CLmNvbnN0cnVjdChzLnJlc3VsdCkscy50YWc9Qi50YWcsbnVsbCE9PXMuYW5jaG9yJiYocy5hbmNob3JNYXBbcy5hbmNob3JdPXMucmVzdWx0KTticmVha319ZWxzZSBpZigiISIhPT1zLnRhZyl7aWYoUnIuY2FsbChzLnR5cGVNYXBbcy5raW5kfHwiZmFsbGJhY2siXSxzLnRhZykpQj1zLnR5cGVNYXBbcy5raW5kfHwiZmFsbGJhY2siXVtzLnRhZ107ZWxzZSBmb3IoQj1udWxsLEM9MCxqPShMPXMudHlwZU1hcC5tdWx0aVtzLmtpbmR8fCJmYWxsYmFjayJdKS5sZW5ndGg7QzxqO0MrPTEpaWYocy50YWcuc2xpY2UoMCxMW0NdLnRhZy5sZW5ndGgpPT09TFtDXS50YWcpe0I9TFtDXTticmVha31CfHx0aHJvd0Vycm9yKHMsInVua25vd24gdGFnICE8IitzLnRhZysiPiIpLG51bGwhPT1zLnJlc3VsdCYmQi5raW5kIT09cy5raW5kJiZ0aHJvd0Vycm9yKHMsInVuYWNjZXB0YWJsZSBub2RlIGtpbmQgZm9yICE8IitzLnRhZysnPiB0YWc7IGl0IHNob3VsZCBiZSAiJytCLmtpbmQrJyIsIG5vdCAiJytzLmtpbmQrJyInKSxCLnJlc29sdmUocy5yZXN1bHQscy50YWcpPyhzLnJlc3VsdD1CLmNvbnN0cnVjdChzLnJlc3VsdCxzLnRhZyksbnVsbCE9PXMuYW5jaG9yJiYocy5hbmNob3JNYXBbcy5hbmNob3JdPXMucmVzdWx0KSk6dGhyb3dFcnJvcihzLCJjYW5ub3QgcmVzb2x2ZSBhIG5vZGUgd2l0aCAhPCIrcy50YWcrIj4gZXhwbGljaXQgdGFnIil9cmV0dXJuIG51bGwhPT1zLmxpc3RlbmVyJiZzLmxpc3RlbmVyKCJjbG9zZSIscyksbnVsbCE9PXMudGFnfHxudWxsIT09cy5hbmNob3J8fFl9ZnVuY3Rpb24gcmVhZERvY3VtZW50KHMpe3ZhciBvLGksYSx1LF89cy5wb3NpdGlvbix3PSExO2ZvcihzLnZlcnNpb249bnVsbCxzLmNoZWNrTGluZUJyZWFrcz1zLmxlZ2FjeSxzLnRhZ01hcD1PYmplY3QuY3JlYXRlKG51bGwpLHMuYW5jaG9yTWFwPU9iamVjdC5jcmVhdGUobnVsbCk7MCE9PSh1PXMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uKSkmJihza2lwU2VwYXJhdGlvblNwYWNlKHMsITAsLTEpLHU9cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24pLCEocy5saW5lSW5kZW50PjB8fDM3IT09dSkpOyl7Zm9yKHc9ITAsdT1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKSxvPXMucG9zaXRpb247MCE9PXUmJiFpc19XU19PUl9FT0wodSk7KXU9cy5pbnB1dC5jaGFyQ29kZUF0KCsrcy5wb3NpdGlvbik7Zm9yKGE9W10sKGk9cy5pbnB1dC5zbGljZShvLHMucG9zaXRpb24pKS5sZW5ndGg8MSYmdGhyb3dFcnJvcihzLCJkaXJlY3RpdmUgbmFtZSBtdXN0IG5vdCBiZSBsZXNzIHRoYW4gb25lIGNoYXJhY3RlciBpbiBsZW5ndGgiKTswIT09dTspe2Zvcig7aXNfV0hJVEVfU1BBQ0UodSk7KXU9cy5pbnB1dC5jaGFyQ29kZUF0KCsrcy5wb3NpdGlvbik7aWYoMzU9PT11KXtkb3t1PXMuaW5wdXQuY2hhckNvZGVBdCgrK3MucG9zaXRpb24pfXdoaWxlKDAhPT11JiYhaXNfRU9MKHUpKTticmVha31pZihpc19FT0wodSkpYnJlYWs7Zm9yKG89cy5wb3NpdGlvbjswIT09dSYmIWlzX1dTX09SX0VPTCh1KTspdT1zLmlucHV0LmNoYXJDb2RlQXQoKytzLnBvc2l0aW9uKTthLnB1c2gocy5pbnB1dC5zbGljZShvLHMucG9zaXRpb24pKX0wIT09dSYmcmVhZExpbmVCcmVhayhzKSxSci5jYWxsKHpyLGkpP3pyW2ldKHMsaSxhKTp0aHJvd1dhcm5pbmcocywndW5rbm93biBkb2N1bWVudCBkaXJlY3RpdmUgIicraSsnIicpfXNraXBTZXBhcmF0aW9uU3BhY2UocywhMCwtMSksMD09PXMubGluZUluZGVudCYmNDU9PT1zLmlucHV0LmNoYXJDb2RlQXQocy5wb3NpdGlvbikmJjQ1PT09cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24rMSkmJjQ1PT09cy5pbnB1dC5jaGFyQ29kZUF0KHMucG9zaXRpb24rMik/KHMucG9zaXRpb24rPTMsc2tpcFNlcGFyYXRpb25TcGFjZShzLCEwLC0xKSk6dyYmdGhyb3dFcnJvcihzLCJkaXJlY3RpdmVzIGVuZCBtYXJrIGlzIGV4cGVjdGVkIiksY29tcG9zZU5vZGUocyxzLmxpbmVJbmRlbnQtMSw0LCExLCEwKSxza2lwU2VwYXJhdGlvblNwYWNlKHMsITAsLTEpLHMuY2hlY2tMaW5lQnJlYWtzJiZMci50ZXN0KHMuaW5wdXQuc2xpY2UoXyxzLnBvc2l0aW9uKSkmJnRocm93V2FybmluZyhzLCJub24tQVNDSUkgbGluZSBicmVha3MgYXJlIGludGVycHJldGVkIGFzIGNvbnRlbnQiKSxzLmRvY3VtZW50cy5wdXNoKHMucmVzdWx0KSxzLnBvc2l0aW9uPT09cy5saW5lU3RhcnQmJnRlc3REb2N1bWVudFNlcGFyYXRvcihzKT80Nj09PXMuaW5wdXQuY2hhckNvZGVBdChzLnBvc2l0aW9uKSYmKHMucG9zaXRpb24rPTMsc2tpcFNlcGFyYXRpb25TcGFjZShzLCEwLC0xKSk6cy5wb3NpdGlvbjxzLmxlbmd0aC0xJiZ0aHJvd0Vycm9yKHMsImVuZCBvZiB0aGUgc3RyZWFtIG9yIGEgZG9jdW1lbnQgc2VwYXJhdG9yIGlzIGV4cGVjdGVkIil9ZnVuY3Rpb24gbG9hZERvY3VtZW50cyhzLG8pe289b3x8e30sMCE9PShzPVN0cmluZyhzKSkubGVuZ3RoJiYoMTAhPT1zLmNoYXJDb2RlQXQocy5sZW5ndGgtMSkmJjEzIT09cy5jaGFyQ29kZUF0KHMubGVuZ3RoLTEpJiYocys9IlxuIiksNjUyNzk9PT1zLmNoYXJDb2RlQXQoMCkmJihzPXMuc2xpY2UoMSkpKTt2YXIgaT1uZXcgU3RhdGUkMShzLG8pLGE9cy5pbmRleE9mKCJcMCIpO2ZvcigtMSE9PWEmJihpLnBvc2l0aW9uPWEsdGhyb3dFcnJvcihpLCJudWxsIGJ5dGUgaXMgbm90IGFsbG93ZWQgaW4gaW5wdXQiKSksaS5pbnB1dCs9IlwwIjszMj09PWkuaW5wdXQuY2hhckNvZGVBdChpLnBvc2l0aW9uKTspaS5saW5lSW5kZW50Kz0xLGkucG9zaXRpb24rPTE7Zm9yKDtpLnBvc2l0aW9uPGkubGVuZ3RoLTE7KXJlYWREb2N1bWVudChpKTtyZXR1cm4gaS5kb2N1bWVudHN9dmFyIFdyPXtsb2FkQWxsOmZ1bmN0aW9uIGxvYWRBbGwkMShzLG8saSl7bnVsbCE9PW8mJiJvYmplY3QiPT10eXBlb2YgbyYmdm9pZCAwPT09aSYmKGk9byxvPW51bGwpO3ZhciBhPWxvYWREb2N1bWVudHMocyxpKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgbylyZXR1cm4gYTtmb3IodmFyIHU9MCxfPWEubGVuZ3RoO3U8Xzt1Kz0xKW8oYVt1XSl9LGxvYWQ6ZnVuY3Rpb24gbG9hZCQxKHMsbyl7dmFyIGk9bG9hZERvY3VtZW50cyhzLG8pO2lmKDAhPT1pLmxlbmd0aCl7aWYoMT09PWkubGVuZ3RoKXJldHVybiBpWzBdO3Rocm93IG5ldyB0cigiZXhwZWN0ZWQgYSBzaW5nbGUgZG9jdW1lbnQgaW4gdGhlIHN0cmVhbSwgYnV0IGZvdW5kIG1vcmUiKX19fSxKcj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLEhyPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksS3I9NjUyNzksR3I9ezA6IlxcMCIsNzoiXFxhIiw4OiJcXGIiLDk6IlxcdCIsMTA6IlxcbiIsMTE6IlxcdiIsMTI6IlxcZiIsMTM6IlxcciIsMjc6IlxcZSIsMzQ6J1xcIicsOTI6IlxcXFwiLDEzMzoiXFxOIiwxNjA6IlxcXyIsODIzMjoiXFxMIiw4MjMzOiJcXFAifSxZcj1bInkiLCJZIiwieWVzIiwiWWVzIiwiWUVTIiwib24iLCJPbiIsIk9OIiwibiIsIk4iLCJubyIsIk5vIiwiTk8iLCJvZmYiLCJPZmYiLCJPRkYiXSxYcj0vXlstK10/WzAtOV9dKyg/OjpbMC05X10rKSsoPzpcLlswLTlfXSopPyQvO2Z1bmN0aW9uIGVuY29kZUhleChzKXt2YXIgbyxpLGE7aWYobz1zLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpLHM8PTI1NSlpPSJ4IixhPTI7ZWxzZSBpZihzPD02NTUzNSlpPSJ1IixhPTQ7ZWxzZXtpZighKHM8PTQyOTQ5NjcyOTUpKXRocm93IG5ldyB0cigiY29kZSBwb2ludCB3aXRoaW4gYSBzdHJpbmcgbWF5IG5vdCBiZSBncmVhdGVyIHRoYW4gMHhGRkZGRkZGRiIpO2k9IlUiLGE9OH1yZXR1cm4iXFwiK2krZXIucmVwZWF0KCIwIixhLW8ubGVuZ3RoKStvfWZ1bmN0aW9uIFN0YXRlKHMpe3RoaXMuc2NoZW1hPXMuc2NoZW1hfHxNcix0aGlzLmluZGVudD1NYXRoLm1heCgxLHMuaW5kZW50fHwyKSx0aGlzLm5vQXJyYXlJbmRlbnQ9cy5ub0FycmF5SW5kZW50fHwhMSx0aGlzLnNraXBJbnZhbGlkPXMuc2tpcEludmFsaWR8fCExLHRoaXMuZmxvd0xldmVsPWVyLmlzTm90aGluZyhzLmZsb3dMZXZlbCk/LTE6cy5mbG93TGV2ZWwsdGhpcy5zdHlsZU1hcD1mdW5jdGlvbiBjb21waWxlU3R5bGVNYXAocyxvKXt2YXIgaSxhLHUsXyx3LHgsQztpZihudWxsPT09bylyZXR1cm57fTtmb3IoaT17fSx1PTAsXz0oYT1PYmplY3Qua2V5cyhvKSkubGVuZ3RoO3U8Xzt1Kz0xKXc9YVt1XSx4PVN0cmluZyhvW3ddKSwiISEiPT09dy5zbGljZSgwLDIpJiYodz0idGFnOnlhbWwub3JnLDIwMDI6Iit3LnNsaWNlKDIpKSwoQz1zLmNvbXBpbGVkVHlwZU1hcC5mYWxsYmFja1t3XSkmJkhyLmNhbGwoQy5zdHlsZUFsaWFzZXMseCkmJih4PUMuc3R5bGVBbGlhc2VzW3hdKSxpW3ddPXg7cmV0dXJuIGl9KHRoaXMuc2NoZW1hLHMuc3R5bGVzfHxudWxsKSx0aGlzLnNvcnRLZXlzPXMuc29ydEtleXN8fCExLHRoaXMubGluZVdpZHRoPXMubGluZVdpZHRofHw4MCx0aGlzLm5vUmVmcz1zLm5vUmVmc3x8ITEsdGhpcy5ub0NvbXBhdE1vZGU9cy5ub0NvbXBhdE1vZGV8fCExLHRoaXMuY29uZGVuc2VGbG93PXMuY29uZGVuc2VGbG93fHwhMSx0aGlzLnF1b3RpbmdUeXBlPSciJz09PXMucXVvdGluZ1R5cGU/MjoxLHRoaXMuZm9yY2VRdW90ZXM9cy5mb3JjZVF1b3Rlc3x8ITEsdGhpcy5yZXBsYWNlcj0iZnVuY3Rpb24iPT10eXBlb2Ygcy5yZXBsYWNlcj9zLnJlcGxhY2VyOm51bGwsdGhpcy5pbXBsaWNpdFR5cGVzPXRoaXMuc2NoZW1hLmNvbXBpbGVkSW1wbGljaXQsdGhpcy5leHBsaWNpdFR5cGVzPXRoaXMuc2NoZW1hLmNvbXBpbGVkRXhwbGljaXQsdGhpcy50YWc9bnVsbCx0aGlzLnJlc3VsdD0iIix0aGlzLmR1cGxpY2F0ZXM9W10sdGhpcy51c2VkRHVwbGljYXRlcz1udWxsfWZ1bmN0aW9uIGluZGVudFN0cmluZyhzLG8pe2Zvcih2YXIgaSxhPWVyLnJlcGVhdCgiICIsbyksdT0wLF89LTEsdz0iIix4PXMubGVuZ3RoO3U8eDspLTE9PT0oXz1zLmluZGV4T2YoIlxuIix1KSk/KGk9cy5zbGljZSh1KSx1PXgpOihpPXMuc2xpY2UodSxfKzEpLHU9XysxKSxpLmxlbmd0aCYmIlxuIiE9PWkmJih3Kz1hKSx3Kz1pO3JldHVybiB3fWZ1bmN0aW9uIGdlbmVyYXRlTmV4dExpbmUocyxvKXtyZXR1cm4iXG4iK2VyLnJlcGVhdCgiICIscy5pbmRlbnQqbyl9ZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKHMpe3JldHVybiAzMj09PXN8fDk9PT1zfWZ1bmN0aW9uIGlzUHJpbnRhYmxlKHMpe3JldHVybiAzMjw9cyYmczw9MTI2fHwxNjE8PXMmJnM8PTU1Mjk1JiY4MjMyIT09cyYmODIzMyE9PXN8fDU3MzQ0PD1zJiZzPD02NTUzMyYmcyE9PUtyfHw2NTUzNjw9cyYmczw9MTExNDExMX1mdW5jdGlvbiBpc05zQ2hhck9yV2hpdGVzcGFjZShzKXtyZXR1cm4gaXNQcmludGFibGUocykmJnMhPT1LciYmMTMhPT1zJiYxMCE9PXN9ZnVuY3Rpb24gaXNQbGFpblNhZmUocyxvLGkpe3ZhciBhPWlzTnNDaGFyT3JXaGl0ZXNwYWNlKHMpLHU9YSYmIWlzV2hpdGVzcGFjZShzKTtyZXR1cm4oaT9hOmEmJjQ0IT09cyYmOTEhPT1zJiY5MyE9PXMmJjEyMyE9PXMmJjEyNSE9PXMpJiYzNSE9PXMmJiEoNTg9PT1vJiYhdSl8fGlzTnNDaGFyT3JXaGl0ZXNwYWNlKG8pJiYhaXNXaGl0ZXNwYWNlKG8pJiYzNT09PXN8fDU4PT09byYmdX1mdW5jdGlvbiBjb2RlUG9pbnRBdChzLG8pe3ZhciBpLGE9cy5jaGFyQ29kZUF0KG8pO3JldHVybiBhPj01NTI5NiYmYTw9NTYzMTkmJm8rMTxzLmxlbmd0aCYmKGk9cy5jaGFyQ29kZUF0KG8rMSkpPj01NjMyMCYmaTw9NTczNDM/MTAyNCooYS01NTI5NikraS01NjMyMCs2NTUzNjphfWZ1bmN0aW9uIG5lZWRJbmRlbnRJbmRpY2F0b3Iocyl7cmV0dXJuL15cbiogLy50ZXN0KHMpfWZ1bmN0aW9uIGNob29zZVNjYWxhclN0eWxlKHMsbyxpLGEsdSxfLHcseCl7dmFyIEMsaj0wLEw9bnVsbCxCPSExLCQ9ITEsVj0tMSE9PWEsVT0tMSx6PWZ1bmN0aW9uIGlzUGxhaW5TYWZlRmlyc3Qocyl7cmV0dXJuIGlzUHJpbnRhYmxlKHMpJiZzIT09S3ImJiFpc1doaXRlc3BhY2UocykmJjQ1IT09cyYmNjMhPT1zJiY1OCE9PXMmJjQ0IT09cyYmOTEhPT1zJiY5MyE9PXMmJjEyMyE9PXMmJjEyNSE9PXMmJjM1IT09cyYmMzghPT1zJiY0MiE9PXMmJjMzIT09cyYmMTI0IT09cyYmNjEhPT1zJiY2MiE9PXMmJjM5IT09cyYmMzQhPT1zJiYzNyE9PXMmJjY0IT09cyYmOTYhPT1zfShjb2RlUG9pbnRBdChzLDApKSYmZnVuY3Rpb24gaXNQbGFpblNhZmVMYXN0KHMpe3JldHVybiFpc1doaXRlc3BhY2UocykmJjU4IT09c30oY29kZVBvaW50QXQocyxzLmxlbmd0aC0xKSk7aWYob3x8dylmb3IoQz0wO0M8cy5sZW5ndGg7aj49NjU1MzY/Qys9MjpDKyspe2lmKCFpc1ByaW50YWJsZShqPWNvZGVQb2ludEF0KHMsQykpKXJldHVybiA1O3o9eiYmaXNQbGFpblNhZmUoaixMLHgpLEw9an1lbHNle2ZvcihDPTA7QzxzLmxlbmd0aDtqPj02NTUzNj9DKz0yOkMrKyl7aWYoMTA9PT0oaj1jb2RlUG9pbnRBdChzLEMpKSlCPSEwLFYmJigkPSR8fEMtVS0xPmEmJiIgIiE9PXNbVSsxXSxVPUMpO2Vsc2UgaWYoIWlzUHJpbnRhYmxlKGopKXJldHVybiA1O3o9eiYmaXNQbGFpblNhZmUoaixMLHgpLEw9an0kPSR8fFYmJkMtVS0xPmEmJiIgIiE9PXNbVSsxXX1yZXR1cm4gQnx8JD9pPjkmJm5lZWRJbmRlbnRJbmRpY2F0b3Iocyk/NTp3PzI9PT1fPzU6MjokPzQ6Mzohenx8d3x8dShzKT8yPT09Xz81OjI6MX1mdW5jdGlvbiB3cml0ZVNjYWxhcihzLG8saSxhLHUpe3MuZHVtcD1mdW5jdGlvbigpe2lmKDA9PT1vLmxlbmd0aClyZXR1cm4gMj09PXMucXVvdGluZ1R5cGU/JyIiJzoiJyciO2lmKCFzLm5vQ29tcGF0TW9kZSYmKC0xIT09WXIuaW5kZXhPZihvKXx8WHIudGVzdChvKSkpcmV0dXJuIDI9PT1zLnF1b3RpbmdUeXBlPyciJytvKyciJzoiJyIrbysiJyI7dmFyIF89cy5pbmRlbnQqTWF0aC5tYXgoMSxpKSx3PS0xPT09cy5saW5lV2lkdGg/LTE6TWF0aC5tYXgoTWF0aC5taW4ocy5saW5lV2lkdGgsNDApLHMubGluZVdpZHRoLV8pLHg9YXx8cy5mbG93TGV2ZWw+LTEmJmk+PXMuZmxvd0xldmVsO3N3aXRjaChjaG9vc2VTY2FsYXJTdHlsZShvLHgscy5pbmRlbnQsdywoZnVuY3Rpb24gdGVzdEFtYmlndWl0eShvKXtyZXR1cm4gZnVuY3Rpb24gdGVzdEltcGxpY2l0UmVzb2x2aW5nKHMsbyl7dmFyIGksYTtmb3IoaT0wLGE9cy5pbXBsaWNpdFR5cGVzLmxlbmd0aDtpPGE7aSs9MSlpZihzLmltcGxpY2l0VHlwZXNbaV0ucmVzb2x2ZShvKSlyZXR1cm4hMDtyZXR1cm4hMX0ocyxvKX0pLHMucXVvdGluZ1R5cGUscy5mb3JjZVF1b3RlcyYmIWEsdSkpe2Nhc2UgMTpyZXR1cm4gbztjYXNlIDI6cmV0dXJuIiciK28ucmVwbGFjZSgvJy9nLCInJyIpKyInIjtjYXNlIDM6cmV0dXJuInwiK2Jsb2NrSGVhZGVyKG8scy5pbmRlbnQpK2Ryb3BFbmRpbmdOZXdsaW5lKGluZGVudFN0cmluZyhvLF8pKTtjYXNlIDQ6cmV0dXJuIj4iK2Jsb2NrSGVhZGVyKG8scy5pbmRlbnQpK2Ryb3BFbmRpbmdOZXdsaW5lKGluZGVudFN0cmluZyhmdW5jdGlvbiBmb2xkU3RyaW5nKHMsbyl7dmFyIGksYSx1PS8oXG4rKShbXlxuXSopL2csXz0oeD1zLmluZGV4T2YoIlxuIikseD0tMSE9PXg/eDpzLmxlbmd0aCx1Lmxhc3RJbmRleD14LGZvbGRMaW5lKHMuc2xpY2UoMCx4KSxvKSksdz0iXG4iPT09c1swXXx8IiAiPT09c1swXTt2YXIgeDtmb3IoO2E9dS5leGVjKHMpOyl7dmFyIEM9YVsxXSxqPWFbMl07aT0iICI9PT1qWzBdLF8rPUMrKHd8fGl8fCIiPT09aj8iIjoiXG4iKStmb2xkTGluZShqLG8pLHc9aX1yZXR1cm4gX30obyx3KSxfKSk7Y2FzZSA1OnJldHVybiciJytmdW5jdGlvbiBlc2NhcGVTdHJpbmcocyl7Zm9yKHZhciBvLGk9IiIsYT0wLHU9MDt1PHMubGVuZ3RoO2E+PTY1NTM2P3UrPTI6dSsrKWE9Y29kZVBvaW50QXQocyx1KSwhKG89R3JbYV0pJiZpc1ByaW50YWJsZShhKT8oaSs9c1t1XSxhPj02NTUzNiYmKGkrPXNbdSsxXSkpOmkrPW98fGVuY29kZUhleChhKTtyZXR1cm4gaX0obykrJyInO2RlZmF1bHQ6dGhyb3cgbmV3IHRyKCJpbXBvc3NpYmxlIGVycm9yOiBpbnZhbGlkIHNjYWxhciBzdHlsZSIpfX0oKX1mdW5jdGlvbiBibG9ja0hlYWRlcihzLG8pe3ZhciBpPW5lZWRJbmRlbnRJbmRpY2F0b3Iocyk/U3RyaW5nKG8pOiIiLGE9IlxuIj09PXNbcy5sZW5ndGgtMV07cmV0dXJuIGkrKGEmJigiXG4iPT09c1tzLmxlbmd0aC0yXXx8IlxuIj09PXMpPyIrIjphPyIiOiItIikrIlxuIn1mdW5jdGlvbiBkcm9wRW5kaW5nTmV3bGluZShzKXtyZXR1cm4iXG4iPT09c1tzLmxlbmd0aC0xXT9zLnNsaWNlKDAsLTEpOnN9ZnVuY3Rpb24gZm9sZExpbmUocyxvKXtpZigiIj09PXN8fCIgIj09PXNbMF0pcmV0dXJuIHM7Zm9yKHZhciBpLGEsdT0vIFteIF0vZyxfPTAsdz0wLHg9MCxDPSIiO2k9dS5leGVjKHMpOykoeD1pLmluZGV4KS1fPm8mJihhPXc+Xz93OngsQys9IlxuIitzLnNsaWNlKF8sYSksXz1hKzEpLHc9eDtyZXR1cm4gQys9IlxuIixzLmxlbmd0aC1fPm8mJnc+Xz9DKz1zLnNsaWNlKF8sdykrIlxuIitzLnNsaWNlKHcrMSk6Qys9cy5zbGljZShfKSxDLnNsaWNlKDEpfWZ1bmN0aW9uIHdyaXRlQmxvY2tTZXF1ZW5jZShzLG8saSxhKXt2YXIgdSxfLHcseD0iIixDPXMudGFnO2Zvcih1PTAsXz1pLmxlbmd0aDt1PF87dSs9MSl3PWlbdV0scy5yZXBsYWNlciYmKHc9cy5yZXBsYWNlci5jYWxsKGksU3RyaW5nKHUpLHcpKSwod3JpdGVOb2RlKHMsbysxLHcsITAsITAsITEsITApfHx2b2lkIDA9PT13JiZ3cml0ZU5vZGUocyxvKzEsbnVsbCwhMCwhMCwhMSwhMCkpJiYoYSYmIiI9PT14fHwoeCs9Z2VuZXJhdGVOZXh0TGluZShzLG8pKSxzLmR1bXAmJjEwPT09cy5kdW1wLmNoYXJDb2RlQXQoMCk/eCs9Ii0iOngrPSItICIseCs9cy5kdW1wKTtzLnRhZz1DLHMuZHVtcD14fHwiW10ifWZ1bmN0aW9uIGRldGVjdFR5cGUocyxvLGkpe3ZhciBhLHUsXyx3LHgsQztmb3IoXz0wLHc9KHU9aT9zLmV4cGxpY2l0VHlwZXM6cy5pbXBsaWNpdFR5cGVzKS5sZW5ndGg7Xzx3O18rPTEpaWYoKCh4PXVbX10pLmluc3RhbmNlT2Z8fHgucHJlZGljYXRlKSYmKCF4Lmluc3RhbmNlT2Z8fCJvYmplY3QiPT10eXBlb2YgbyYmbyBpbnN0YW5jZW9mIHguaW5zdGFuY2VPZikmJigheC5wcmVkaWNhdGV8fHgucHJlZGljYXRlKG8pKSl7aWYoaT94Lm11bHRpJiZ4LnJlcHJlc2VudE5hbWU/cy50YWc9eC5yZXByZXNlbnROYW1lKG8pOnMudGFnPXgudGFnOnMudGFnPSI/Iix4LnJlcHJlc2VudCl7aWYoQz1zLnN0eWxlTWFwW3gudGFnXXx8eC5kZWZhdWx0U3R5bGUsIltvYmplY3QgRnVuY3Rpb25dIj09PUpyLmNhbGwoeC5yZXByZXNlbnQpKWE9eC5yZXByZXNlbnQobyxDKTtlbHNle2lmKCFIci5jYWxsKHgucmVwcmVzZW50LEMpKXRocm93IG5ldyB0cigiITwiK3gudGFnKyc+IHRhZyByZXNvbHZlciBhY2NlcHRzIG5vdCAiJytDKyciIHN0eWxlJyk7YT14LnJlcHJlc2VudFtDXShvLEMpfXMuZHVtcD1hfXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHdyaXRlTm9kZShzLG8saSxhLHUsXyx3KXtzLnRhZz1udWxsLHMuZHVtcD1pLGRldGVjdFR5cGUocyxpLCExKXx8ZGV0ZWN0VHlwZShzLGksITApO3ZhciB4LEM9SnIuY2FsbChzLmR1bXApLGo9YTthJiYoYT1zLmZsb3dMZXZlbDwwfHxzLmZsb3dMZXZlbD5vKTt2YXIgTCxCLCQ9IltvYmplY3QgT2JqZWN0XSI9PT1DfHwiW29iamVjdCBBcnJheV0iPT09QztpZigkJiYoQj0tMSE9PShMPXMuZHVwbGljYXRlcy5pbmRleE9mKGkpKSksKG51bGwhPT1zLnRhZyYmIj8iIT09cy50YWd8fEJ8fDIhPT1zLmluZGVudCYmbz4wKSYmKHU9ITEpLEImJnMudXNlZER1cGxpY2F0ZXNbTF0pcy5kdW1wPSIqcmVmXyIrTDtlbHNle2lmKCQmJkImJiFzLnVzZWREdXBsaWNhdGVzW0xdJiYocy51c2VkRHVwbGljYXRlc1tMXT0hMCksIltvYmplY3QgT2JqZWN0XSI9PT1DKWEmJjAhPT1PYmplY3Qua2V5cyhzLmR1bXApLmxlbmd0aD8oIWZ1bmN0aW9uIHdyaXRlQmxvY2tNYXBwaW5nKHMsbyxpLGEpe3ZhciB1LF8sdyx4LEMsaixMPSIiLEI9cy50YWcsJD1PYmplY3Qua2V5cyhpKTtpZighMD09PXMuc29ydEtleXMpJC5zb3J0KCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2Ygcy5zb3J0S2V5cykkLnNvcnQocy5zb3J0S2V5cyk7ZWxzZSBpZihzLnNvcnRLZXlzKXRocm93IG5ldyB0cigic29ydEtleXMgbXVzdCBiZSBhIGJvb2xlYW4gb3IgYSBmdW5jdGlvbiIpO2Zvcih1PTAsXz0kLmxlbmd0aDt1PF87dSs9MSlqPSIiLGEmJiIiPT09THx8KGorPWdlbmVyYXRlTmV4dExpbmUocyxvKSkseD1pW3c9JFt1XV0scy5yZXBsYWNlciYmKHg9cy5yZXBsYWNlci5jYWxsKGksdyx4KSksd3JpdGVOb2RlKHMsbysxLHcsITAsITAsITApJiYoKEM9bnVsbCE9PXMudGFnJiYiPyIhPT1zLnRhZ3x8cy5kdW1wJiZzLmR1bXAubGVuZ3RoPjEwMjQpJiYocy5kdW1wJiYxMD09PXMuZHVtcC5jaGFyQ29kZUF0KDApP2orPSI/IjpqKz0iPyAiKSxqKz1zLmR1bXAsQyYmKGorPWdlbmVyYXRlTmV4dExpbmUocyxvKSksd3JpdGVOb2RlKHMsbysxLHgsITAsQykmJihzLmR1bXAmJjEwPT09cy5kdW1wLmNoYXJDb2RlQXQoMCk/ais9IjoiOmorPSI6ICIsTCs9ais9cy5kdW1wKSk7cy50YWc9QixzLmR1bXA9THx8Int9In0ocyxvLHMuZHVtcCx1KSxCJiYocy5kdW1wPSImcmVmXyIrTCtzLmR1bXApKTooIWZ1bmN0aW9uIHdyaXRlRmxvd01hcHBpbmcocyxvLGkpe3ZhciBhLHUsXyx3LHgsQz0iIixqPXMudGFnLEw9T2JqZWN0LmtleXMoaSk7Zm9yKGE9MCx1PUwubGVuZ3RoO2E8dTthKz0xKXg9IiIsIiIhPT1DJiYoeCs9IiwgIikscy5jb25kZW5zZUZsb3cmJih4Kz0nIicpLHc9aVtfPUxbYV1dLHMucmVwbGFjZXImJih3PXMucmVwbGFjZXIuY2FsbChpLF8sdykpLHdyaXRlTm9kZShzLG8sXywhMSwhMSkmJihzLmR1bXAubGVuZ3RoPjEwMjQmJih4Kz0iPyAiKSx4Kz1zLmR1bXArKHMuY29uZGVuc2VGbG93PyciJzoiIikrIjoiKyhzLmNvbmRlbnNlRmxvdz8iIjoiICIpLHdyaXRlTm9kZShzLG8sdywhMSwhMSkmJihDKz14Kz1zLmR1bXApKTtzLnRhZz1qLHMuZHVtcD0ieyIrQysifSJ9KHMsbyxzLmR1bXApLEImJihzLmR1bXA9IiZyZWZfIitMKyIgIitzLmR1bXApKTtlbHNlIGlmKCJbb2JqZWN0IEFycmF5XSI9PT1DKWEmJjAhPT1zLmR1bXAubGVuZ3RoPyhzLm5vQXJyYXlJbmRlbnQmJiF3JiZvPjA/d3JpdGVCbG9ja1NlcXVlbmNlKHMsby0xLHMuZHVtcCx1KTp3cml0ZUJsb2NrU2VxdWVuY2UocyxvLHMuZHVtcCx1KSxCJiYocy5kdW1wPSImcmVmXyIrTCtzLmR1bXApKTooIWZ1bmN0aW9uIHdyaXRlRmxvd1NlcXVlbmNlKHMsbyxpKXt2YXIgYSx1LF8sdz0iIix4PXMudGFnO2ZvcihhPTAsdT1pLmxlbmd0aDthPHU7YSs9MSlfPWlbYV0scy5yZXBsYWNlciYmKF89cy5yZXBsYWNlci5jYWxsKGksU3RyaW5nKGEpLF8pKSwod3JpdGVOb2RlKHMsbyxfLCExLCExKXx8dm9pZCAwPT09XyYmd3JpdGVOb2RlKHMsbyxudWxsLCExLCExKSkmJigiIiE9PXcmJih3Kz0iLCIrKHMuY29uZGVuc2VGbG93PyIiOiIgIikpLHcrPXMuZHVtcCk7cy50YWc9eCxzLmR1bXA9IlsiK3crIl0ifShzLG8scy5kdW1wKSxCJiYocy5kdW1wPSImcmVmXyIrTCsiICIrcy5kdW1wKSk7ZWxzZXtpZigiW29iamVjdCBTdHJpbmddIiE9PUMpe2lmKCJbb2JqZWN0IFVuZGVmaW5lZF0iPT09QylyZXR1cm4hMTtpZihzLnNraXBJbnZhbGlkKXJldHVybiExO3Rocm93IG5ldyB0cigidW5hY2NlcHRhYmxlIGtpbmQgb2YgYW4gb2JqZWN0IHRvIGR1bXAgIitDKX0iPyIhPT1zLnRhZyYmd3JpdGVTY2FsYXIocyxzLmR1bXAsbyxfLGopfW51bGwhPT1zLnRhZyYmIj8iIT09cy50YWcmJih4PWVuY29kZVVSSSgiISI9PT1zLnRhZ1swXT9zLnRhZy5zbGljZSgxKTpzLnRhZykucmVwbGFjZSgvIS9nLCIlMjEiKSx4PSIhIj09PXMudGFnWzBdPyIhIit4OiJ0YWc6eWFtbC5vcmcsMjAwMjoiPT09eC5zbGljZSgwLDE4KT8iISEiK3guc2xpY2UoMTgpOiIhPCIreCsiPiIscy5kdW1wPXgrIiAiK3MuZHVtcCl9cmV0dXJuITB9ZnVuY3Rpb24gZ2V0RHVwbGljYXRlUmVmZXJlbmNlcyhzLG8pe3ZhciBpLGEsdT1bXSxfPVtdO2ZvcihpbnNwZWN0Tm9kZShzLHUsXyksaT0wLGE9Xy5sZW5ndGg7aTxhO2krPTEpby5kdXBsaWNhdGVzLnB1c2godVtfW2ldXSk7by51c2VkRHVwbGljYXRlcz1uZXcgQXJyYXkoYSl9ZnVuY3Rpb24gaW5zcGVjdE5vZGUocyxvLGkpe3ZhciBhLHUsXztpZihudWxsIT09cyYmIm9iamVjdCI9PXR5cGVvZiBzKWlmKC0xIT09KHU9by5pbmRleE9mKHMpKSktMT09PWkuaW5kZXhPZih1KSYmaS5wdXNoKHUpO2Vsc2UgaWYoby5wdXNoKHMpLEFycmF5LmlzQXJyYXkocykpZm9yKHU9MCxfPXMubGVuZ3RoO3U8Xzt1Kz0xKWluc3BlY3ROb2RlKHNbdV0sbyxpKTtlbHNlIGZvcih1PTAsXz0oYT1PYmplY3Qua2V5cyhzKSkubGVuZ3RoO3U8Xzt1Kz0xKWluc3BlY3ROb2RlKHNbYVt1XV0sbyxpKX12YXIgUXI9ZnVuY3Rpb24gZHVtcCQxKHMsbyl7dmFyIGk9bmV3IFN0YXRlKG89b3x8e30pO2kubm9SZWZzfHxnZXREdXBsaWNhdGVSZWZlcmVuY2VzKHMsaSk7dmFyIGE9cztyZXR1cm4gaS5yZXBsYWNlciYmKGE9aS5yZXBsYWNlci5jYWxsKHsiIjphfSwiIixhKSksd3JpdGVOb2RlKGksMCxhLCEwLCEwKT9pLmR1bXArIlxuIjoiIn07ZnVuY3Rpb24gcmVuYW1lZChzLG8pe3JldHVybiBmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiRnVuY3Rpb24geWFtbC4iK3MrIiBpcyByZW1vdmVkIGluIGpzLXlhbWwgNC4gVXNlIHlhbWwuIitvKyIgaW5zdGVhZCwgd2hpY2ggaXMgbm93IHNhZmUgYnkgZGVmYXVsdC4iKX19dmFyIFpyPWlyLGVuPWFyLHRuPXByLHJuPWJyLG5uPV9yLHNuPU1yLG9uPVdyLmxvYWQsYW49V3IubG9hZEFsbCxjbj17ZHVtcDpRcn0uZHVtcCxsbj10cix1bj17YmluYXJ5Ok9yLGZsb2F0OnZyLG1hcDp1cixudWxsOmRyLHBhaXJzOklyLHNldDpOcix0aW1lc3RhbXA6d3IsYm9vbDpmcixpbnQ6bXIsbWVyZ2U6eHIsb21hcDpqcixzZXE6bHIsc3RyOmNyfSxwbj1yZW5hbWVkKCJzYWZlTG9hZCIsImxvYWQiKSxobj1yZW5hbWVkKCJzYWZlTG9hZEFsbCIsImxvYWRBbGwiKSxkbj1yZW5hbWVkKCJzYWZlRHVtcCIsImR1bXAiKTtjb25zdCBmbj17VHlwZTpacixTY2hlbWE6ZW4sRkFJTFNBRkVfU0NIRU1BOnRuLEpTT05fU0NIRU1BOnJuLENPUkVfU0NIRU1BOm5uLERFRkFVTFRfU0NIRU1BOnNuLGxvYWQ6b24sbG9hZEFsbDphbixkdW1wOmNuLFlBTUxFeGNlcHRpb246bG4sdHlwZXM6dW4sc2FmZUxvYWQ6cG4sc2FmZUxvYWRBbGw6aG4sc2FmZUR1bXA6ZG59LG1uPSJjb25maWdzX3VwZGF0ZSIsZ249ImNvbmZpZ3NfdG9nZ2xlIjtmdW5jdGlvbiB1cGRhdGUocyxvKXtyZXR1cm57dHlwZTptbixwYXlsb2FkOntbc106b319fWZ1bmN0aW9uIHRvZ2dsZShzKXtyZXR1cm57dHlwZTpnbixwYXlsb2FkOnN9fWNvbnN0IGFjdGlvbnNfbG9hZGVkPSgpPT4oKT0+e30sZG93bmxvYWRDb25maWc9cz0+bz0+e2NvbnN0e2ZuOntmZXRjaDppfX09bztyZXR1cm4gaShzKX0sZ2V0Q29uZmlnQnlVcmw9KHMsbyk9Pmk9Pntjb25zdHtzcGVjQWN0aW9uczphLGNvbmZpZ3NBY3Rpb25zOnV9PWk7aWYocylyZXR1cm4gdS5kb3dubG9hZENvbmZpZyhzKS50aGVuKG5leHQsbmV4dCk7ZnVuY3Rpb24gbmV4dCh1KXt1IGluc3RhbmNlb2YgRXJyb3J8fHUuc3RhdHVzPj00MDA/KGEudXBkYXRlTG9hZGluZ1N0YXR1cygiZmFpbGVkQ29uZmlnIiksYS51cGRhdGVMb2FkaW5nU3RhdHVzKCJmYWlsZWRDb25maWciKSxhLnVwZGF0ZVVybCgiIiksY29uc29sZS5lcnJvcih1LnN0YXR1c1RleHQrIiAiK3MudXJsKSxvKG51bGwpKTpvKCgocyxvKT0+e3RyeXtyZXR1cm4gZm4ubG9hZChzKX1jYXRjaChzKXtyZXR1cm4gbyYmby5lcnJBY3Rpb25zLm5ld1Rocm93bkVycihuZXcgRXJyb3IocykpLHt9fX0pKHUudGV4dCxpKSl9fSxnZXQ9KHMsbyk9PnMuZ2V0SW4oQXJyYXkuaXNBcnJheShvKT9vOltvXSkseW49e1ttbl06KHMsbyk9PnMubWVyZ2UoKDAsemUuZnJvbUpTKShvLnBheWxvYWQpKSxbZ25dOihzLG8pPT57Y29uc3QgaT1vLnBheWxvYWQsYT1zLmdldChpKTtyZXR1cm4gcy5zZXQoaSwhYSl9fTtmdW5jdGlvbiBjb25maWdzUGx1Z2luKCl7cmV0dXJue3N0YXRlUGx1Z2luczp7Y29uZmlnczp7cmVkdWNlcnM6eW4sYWN0aW9uczp1LHNlbGVjdG9yczpffX19fWNvbnN0IHNldEhhc2g9cz0+cz9oaXN0b3J5LnB1c2hTdGF0ZShudWxsLG51bGwsYCMke3N9YCk6d2luZG93LmxvY2F0aW9uLmhhc2g9IiI7dmFyIHZuPV9fd2VicGFja19yZXF1aXJlX18oODYyMTUpLGJuPV9fd2VicGFja19yZXF1aXJlX18ubih2bik7Y29uc3QgX249ImxheW91dF9zY3JvbGxfdG8iLFNuPSJsYXlvdXRfY2xlYXJfc2Nyb2xsIjtjb25zdCBFbj17Zm46e2dldFNjcm9sbFBhcmVudDpmdW5jdGlvbiBnZXRTY3JvbGxQYXJlbnQocyxvKXtjb25zdCBpPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtsZXQgYT1nZXRDb21wdXRlZFN0eWxlKHMpO2NvbnN0IHU9ImFic29sdXRlIj09PWEucG9zaXRpb24sXz1vPy8oYXV0b3xzY3JvbGx8aGlkZGVuKS86LyhhdXRvfHNjcm9sbCkvO2lmKCJmaXhlZCI9PT1hLnBvc2l0aW9uKXJldHVybiBpO2ZvcihsZXQgbz1zO289by5wYXJlbnRFbGVtZW50OylpZihhPWdldENvbXB1dGVkU3R5bGUobyksKCF1fHwic3RhdGljIiE9PWEucG9zaXRpb24pJiZfLnRlc3QoYS5vdmVyZmxvdythLm92ZXJmbG93WSthLm92ZXJmbG93WCkpcmV0dXJuIG87cmV0dXJuIGl9fSxzdGF0ZVBsdWdpbnM6e2xheW91dDp7YWN0aW9uczp7c2Nyb2xsVG9FbGVtZW50OihzLG8pPT5pPT57dHJ5e289b3x8aS5mbi5nZXRTY3JvbGxQYXJlbnQocyksYm4oKS5jcmVhdGVTY3JvbGxlcihvKS50byhzKX1jYXRjaChzKXtjb25zb2xlLmVycm9yKHMpfX0sc2Nyb2xsVG86cz0+KHt0eXBlOl9uLHBheWxvYWQ6QXJyYXkuaXNBcnJheShzKT9zOltzXX0pLGNsZWFyU2Nyb2xsVG86KCk9Pih7dHlwZTpTbn0pLHJlYWR5VG9TY3JvbGw6KHMsbyk9Pmk9Pntjb25zdCBhPWkubGF5b3V0U2VsZWN0b3JzLmdldFNjcm9sbFRvS2V5KCk7V2UoKS5pcyhhLCgwLHplLmZyb21KUykocykpJiYoaS5sYXlvdXRBY3Rpb25zLnNjcm9sbFRvRWxlbWVudChvKSxpLmxheW91dEFjdGlvbnMuY2xlYXJTY3JvbGxUbygpKX0scGFyc2VEZWVwTGlua0hhc2g6cz0+KHtsYXlvdXRBY3Rpb25zOm8sbGF5b3V0U2VsZWN0b3JzOmksZ2V0Q29uZmlnczphfSk9PntpZihhKCkuZGVlcExpbmtpbmcmJnMpe2xldCBhPXMuc2xpY2UoMSk7IiEiPT09YVswXSYmKGE9YS5zbGljZSgxKSksIi8iPT09YVswXSYmKGE9YS5zbGljZSgxKSk7Y29uc3QgdT1hLnNwbGl0KCIvIikubWFwKChzPT5zfHwiIikpLF89aS5pc1Nob3duS2V5RnJvbVVybEhhc2hBcnJheSh1KSxbdyx4PSIiLEM9IiJdPV87aWYoIm9wZXJhdGlvbnMiPT09dyl7Y29uc3Qgcz1pLmlzU2hvd25LZXlGcm9tVXJsSGFzaEFycmF5KFt4XSk7eC5pbmRleE9mKCJfIik+LTEmJihjb25zb2xlLndhcm4oIldhcm5pbmc6IGVzY2FwaW5nIGRlZXAgbGluayB3aGl0ZXNwYWNlIHdpdGggYF9gIHdpbGwgYmUgdW5zdXBwb3J0ZWQgaW4gdjQuMCwgdXNlIGAlMjBgIGluc3RlYWQuIiksby5zaG93KHMubWFwKChzPT5zLnJlcGxhY2UoL18vZywiICIpKSksITApKSxvLnNob3cocywhMCl9KHguaW5kZXhPZigiXyIpPi0xfHxDLmluZGV4T2YoIl8iKT4tMSkmJihjb25zb2xlLndhcm4oIldhcm5pbmc6IGVzY2FwaW5nIGRlZXAgbGluayB3aGl0ZXNwYWNlIHdpdGggYF9gIHdpbGwgYmUgdW5zdXBwb3J0ZWQgaW4gdjQuMCwgdXNlIGAlMjBgIGluc3RlYWQuIiksby5zaG93KF8ubWFwKChzPT5zLnJlcGxhY2UoL18vZywiICIpKSksITApKSxvLnNob3coXywhMCksby5zY3JvbGxUbyhfKX19fSxzZWxlY3RvcnM6e2dldFNjcm9sbFRvS2V5OnM9PnMuZ2V0KCJzY3JvbGxUb0tleSIpLGlzU2hvd25LZXlGcm9tVXJsSGFzaEFycmF5KHMsbyl7Y29uc3RbaSxhXT1vO3JldHVybiBhP1sib3BlcmF0aW9ucyIsaSxhXTppP1sib3BlcmF0aW9ucy10YWciLGldOltdfSx1cmxIYXNoQXJyYXlGcm9tSXNTaG93bktleShzLG8pe2xldFtpLGEsdV09bztyZXR1cm4ib3BlcmF0aW9ucyI9PWk/W2EsdV06Im9wZXJhdGlvbnMtdGFnIj09aT9bYV06W119fSxyZWR1Y2Vyczp7W19uXToocyxvKT0+cy5zZXQoInNjcm9sbFRvS2V5IixXZSgpLmZyb21KUyhvLnBheWxvYWQpKSxbU25dOnM9PnMuZGVsZXRlKCJzY3JvbGxUb0tleSIpfSx3cmFwQWN0aW9uczp7c2hvdzoocyx7Z2V0Q29uZmlnczpvLGxheW91dFNlbGVjdG9yczppfSk9PiguLi5hKT0+e2lmKHMoLi4uYSksbygpLmRlZXBMaW5raW5nKXRyeXtsZXRbcyxvXT1hO3M9QXJyYXkuaXNBcnJheShzKT9zOltzXTtjb25zdCB1PWkudXJsSGFzaEFycmF5RnJvbUlzU2hvd25LZXkocyk7aWYoIXUubGVuZ3RoKXJldHVybjtjb25zdFtfLHddPXU7aWYoIW8pcmV0dXJuIHNldEhhc2goIi8iKTsyPT09dS5sZW5ndGg/c2V0SGFzaChjcmVhdGVEZWVwTGlua1BhdGgoYC8ke2VuY29kZVVSSUNvbXBvbmVudChfKX0vJHtlbmNvZGVVUklDb21wb25lbnQodyl9YCkpOjE9PT11Lmxlbmd0aCYmc2V0SGFzaChjcmVhdGVEZWVwTGlua1BhdGgoYC8ke2VuY29kZVVSSUNvbXBvbmVudChfKX1gKSl9Y2F0Y2gocyl7Y29uc29sZS5lcnJvcihzKX19fX19fTt2YXIgd249X193ZWJwYWNrX3JlcXVpcmVfXygyMjA5KSx4bj1fX3dlYnBhY2tfcmVxdWlyZV9fLm4od24pO2NvbnN0IG9wZXJhdGlvbl93cmFwcGVyPShzLG8pPT5jbGFzcyBPcGVyYXRpb25XcmFwcGVyIGV4dGVuZHMgUmUuQ29tcG9uZW50e29uTG9hZD1zPT57Y29uc3R7b3BlcmF0aW9uOml9PXRoaXMucHJvcHMse3RhZzphLG9wZXJhdGlvbklkOnV9PWkudG9PYmplY3QoKTtsZXR7aXNTaG93bktleTpffT1pLnRvT2JqZWN0KCk7Xz1ffHxbIm9wZXJhdGlvbnMiLGEsdV0sby5sYXlvdXRBY3Rpb25zLnJlYWR5VG9TY3JvbGwoXyxzKX07cmVuZGVyKCl7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyZWY6dGhpcy5vbkxvYWR9LFJlLmNyZWF0ZUVsZW1lbnQocyx0aGlzLnByb3BzKSl9fSxvcGVyYXRpb25fdGFnX3dyYXBwZXI9KHMsbyk9PmNsYXNzIE9wZXJhdGlvblRhZ1dyYXBwZXIgZXh0ZW5kcyBSZS5Db21wb25lbnR7b25Mb2FkPXM9Pntjb25zdHt0YWc6aX09dGhpcy5wcm9wcyxhPVsib3BlcmF0aW9ucy10YWciLGldO28ubGF5b3V0QWN0aW9ucy5yZWFkeVRvU2Nyb2xsKGEscyl9O3JlbmRlcigpe3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7cmVmOnRoaXMub25Mb2FkfSxSZS5jcmVhdGVFbGVtZW50KHMsdGhpcy5wcm9wcykpfX07ZnVuY3Rpb24gZGVlcF9saW5raW5nKCl7cmV0dXJuW0VuLHtzdGF0ZVBsdWdpbnM6e2NvbmZpZ3M6e3dyYXBBY3Rpb25zOntsb2FkZWQ6KHMsbyk9PiguLi5pKT0+e3MoLi4uaSk7Y29uc3QgYT1kZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLmhhc2gpO28ubGF5b3V0QWN0aW9ucy5wYXJzZURlZXBMaW5rSGFzaChhKX19fX0sd3JhcENvbXBvbmVudHM6e29wZXJhdGlvbjpvcGVyYXRpb25fd3JhcHBlcixPcGVyYXRpb25UYWc6b3BlcmF0aW9uX3RhZ193cmFwcGVyfX1dfXZhciBrbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDQwODYwKSxPbj1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oa24pO2Z1bmN0aW9uIHRyYW5zZm9ybShzKXtyZXR1cm4gcy5tYXAoKHM9PntsZXQgbz0iaXMgbm90IG9mIGEgdHlwZShzKSIsaT1zLmdldCgibWVzc2FnZSIpLmluZGV4T2Yobyk7aWYoaT4tMSl7bGV0IG89cy5nZXQoIm1lc3NhZ2UiKS5zbGljZShpKzE5KS5zcGxpdCgiLCIpO3JldHVybiBzLnNldCgibWVzc2FnZSIscy5nZXQoIm1lc3NhZ2UiKS5zbGljZSgwLGkpK2Z1bmN0aW9uIG1ha2VOZXdNZXNzYWdlKHMpe3JldHVybiBzLnJlZHVjZSgoKHMsbyxpLGEpPT5pPT09YS5sZW5ndGgtMSYmYS5sZW5ndGg+MT9zKyJvciAiK286YVtpKzFdJiZhLmxlbmd0aD4yP3MrbysiLCAiOmFbaSsxXT9zK28rIiAiOnMrbyksInNob3VsZCBiZSBhIil9KG8pKX1yZXR1cm4gc30pKX12YXIgQ249X193ZWJwYWNrX3JlcXVpcmVfXyg1ODE1NiksQW49X193ZWJwYWNrX3JlcXVpcmVfXy5uKENuKTtmdW5jdGlvbiBwYXJhbWV0ZXJfb25lb2ZfdHJhbnNmb3JtKHMse2pzU3BlYzpvfSl7cmV0dXJuIHN9Y29uc3Qgam49W3cseF07ZnVuY3Rpb24gdHJhbnNmb3JtRXJyb3JzKHMpe2xldCBvPXtqc1NwZWM6e319LGk9T24oKShqbiwoKHMsaSk9Pnt0cnl7cmV0dXJuIGkudHJhbnNmb3JtKHMsbykuZmlsdGVyKChzPT4hIXMpKX1jYXRjaChvKXtyZXR1cm4gY29uc29sZS5lcnJvcigiVHJhbnNmb3JtZXIgZXJyb3I6IixvKSxzfX0pLHMpO3JldHVybiBpLmZpbHRlcigocz0+ISFzKSkubWFwKChzPT4oIXMuZ2V0KCJsaW5lIikmJnMuZ2V0KCJwYXRoIikscykpKX1sZXQgUG49e2xpbmU6MCxsZXZlbDoiZXJyb3IiLG1lc3NhZ2U6IlVua25vd24gZXJyb3IifTtjb25zdCBJbj1WdCgocz0+cyksKHM9PnMuZ2V0KCJlcnJvcnMiLCgwLHplLkxpc3QpKCkpKSksVG49VnQoSW4sKHM9PnMubGFzdCgpKSk7ZnVuY3Rpb24gZXJyKG8pe3JldHVybntzdGF0ZVBsdWdpbnM6e2Vycjp7cmVkdWNlcnM6e1tydF06KHMse3BheWxvYWQ6b30pPT57bGV0IGk9T2JqZWN0LmFzc2lnbihQbixvLHt0eXBlOiJ0aHJvd24ifSk7cmV0dXJuIHMudXBkYXRlKCJlcnJvcnMiLChzPT4oc3x8KDAsemUuTGlzdCkoKSkucHVzaCgoMCx6ZS5mcm9tSlMpKGkpKSkpLnVwZGF0ZSgiZXJyb3JzIiwocz0+dHJhbnNmb3JtRXJyb3JzKHMpKSl9LFtudF06KHMse3BheWxvYWQ6b30pPT4obz1vLm1hcCgocz0+KDAsemUuZnJvbUpTKShPYmplY3QuYXNzaWduKFBuLHMse3R5cGU6InRocm93biJ9KSkpKSxzLnVwZGF0ZSgiZXJyb3JzIiwocz0+KHN8fCgwLHplLkxpc3QpKCkpLmNvbmNhdCgoMCx6ZS5mcm9tSlMpKG8pKSkpLnVwZGF0ZSgiZXJyb3JzIiwocz0+dHJhbnNmb3JtRXJyb3JzKHMpKSkpLFtzdF06KHMse3BheWxvYWQ6b30pPT57bGV0IGk9KDAsemUuZnJvbUpTKShvKTtyZXR1cm4gaT1pLnNldCgidHlwZSIsInNwZWMiKSxzLnVwZGF0ZSgiZXJyb3JzIiwocz0+KHN8fCgwLHplLkxpc3QpKCkpLnB1c2goKDAsemUuZnJvbUpTKShpKSkuc29ydEJ5KChzPT5zLmdldCgibGluZSIpKSkpKS51cGRhdGUoImVycm9ycyIsKHM9PnRyYW5zZm9ybUVycm9ycyhzKSkpfSxbb3RdOihzLHtwYXlsb2FkOm99KT0+KG89by5tYXAoKHM9PigwLHplLmZyb21KUykoT2JqZWN0LmFzc2lnbihQbixzLHt0eXBlOiJzcGVjIn0pKSkpLHMudXBkYXRlKCJlcnJvcnMiLChzPT4oc3x8KDAsemUuTGlzdCkoKSkuY29uY2F0KCgwLHplLmZyb21KUykobykpKSkudXBkYXRlKCJlcnJvcnMiLChzPT50cmFuc2Zvcm1FcnJvcnMocykpKSksW2l0XToocyx7cGF5bG9hZDpvfSk9PntsZXQgaT0oMCx6ZS5mcm9tSlMpKE9iamVjdC5hc3NpZ24oe30sbykpO3JldHVybiBpPWkuc2V0KCJ0eXBlIiwiYXV0aCIpLHMudXBkYXRlKCJlcnJvcnMiLChzPT4oc3x8KDAsemUuTGlzdCkoKSkucHVzaCgoMCx6ZS5mcm9tSlMpKGkpKSkpLnVwZGF0ZSgiZXJyb3JzIiwocz0+dHJhbnNmb3JtRXJyb3JzKHMpKSl9LFthdF06KHMse3BheWxvYWQ6b30pPT57aWYoIW98fCFzLmdldCgiZXJyb3JzIikpcmV0dXJuIHM7bGV0IGk9cy5nZXQoImVycm9ycyIpLmZpbHRlcigocz0+cy5rZXlTZXEoKS5ldmVyeSgoaT0+e2NvbnN0IGE9cy5nZXQoaSksdT1vW2ldO3JldHVybiF1fHxhIT09dX0pKSkpO3JldHVybiBzLm1lcmdlKHtlcnJvcnM6aX0pfSxbY3RdOihzLHtwYXlsb2FkOm99KT0+e2lmKCFvfHwiZnVuY3Rpb24iIT10eXBlb2YgbylyZXR1cm4gcztsZXQgaT1zLmdldCgiZXJyb3JzIikuZmlsdGVyKChzPT5vKHMpKSk7cmV0dXJuIHMubWVyZ2Uoe2Vycm9yczppfSl9fSxhY3Rpb25zOnMsc2VsZWN0b3JzOkN9fX19ZnVuY3Rpb24gb3BzRmlsdGVyKHMsbyl7cmV0dXJuIHMuZmlsdGVyKCgocyxpKT0+LTEhPT1pLmluZGV4T2YobykpKX1mdW5jdGlvbiBmaWx0ZXIoKXtyZXR1cm57Zm46e29wc0ZpbHRlcn19fXZhciBObj1fX3dlYnBhY2tfcmVxdWlyZV9fKDc2NjYpLE1uPV9fd2VicGFja19yZXF1aXJlX18ubihObik7Y29uc3QgYXJyb3dfdXA9KHtjbGFzc05hbWU6cz1udWxsLHdpZHRoOm89MjAsaGVpZ2h0Omk9MjAsLi4uYX0pPT5SZS5jcmVhdGVFbGVtZW50KCJzdmciLE1uKCkoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdmlld0JveDoiMCAwIDIwIDIwIixjbGFzc05hbWU6cyx3aWR0aDpvLGhlaWdodDppLCJhcmlhLWhpZGRlbiI6InRydWUiLGZvY3VzYWJsZToiZmFsc2UifSxhKSxSZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTSAxNy40MTggMTQuOTA4IEMgMTcuNjkgMTUuMTc2IDE4LjEyNyAxNS4xNzYgMTguMzk3IDE0LjkwOCBDIDE4LjY2NyAxNC42NCAxOC42NjggMTQuMjA3IDE4LjM5NyAxMy45MzkgTCAxMC40ODkgNi4xMDkgQyAxMC4yMTkgNS44NDEgOS43ODIgNS44NDEgOS41MSA2LjEwOSBMIDEuNjAyIDEzLjkzOSBDIDEuMzMyIDE0LjIwNyAxLjMzMiAxNC42NCAxLjYwMiAxNC45MDggQyAxLjg3MyAxNS4xNzYgMi4zMTEgMTUuMTc2IDIuNTgxIDE0LjkwOCBMIDEwIDcuNzY3IEwgMTcuNDE4IDE0LjkwOCBaIn0pKSxhcnJvd19kb3duPSh7Y2xhc3NOYW1lOnM9bnVsbCx3aWR0aDpvPTIwLGhlaWdodDppPTIwLC4uLmF9KT0+UmUuY3JlYXRlRWxlbWVudCgic3ZnIixNbigpKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHZpZXdCb3g6IjAgMCAyMCAyMCIsY2xhc3NOYW1lOnMsd2lkdGg6byxoZWlnaHQ6aSwiYXJpYS1oaWRkZW4iOiJ0cnVlIixmb2N1c2FibGU6ImZhbHNlIn0sYSksUmUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xNy40MTggNi4xMDljLjI3Mi0uMjY4LjcwOS0uMjY4Ljk3OSAwcy4yNzEuNzAxIDAgLjk2OWwtNy45MDggNy44M2MtLjI3LjI2OC0uNzA3LjI2OC0uOTc5IDBsLTcuOTA4LTcuODNjLS4yNy0uMjY4LS4yNy0uNzAxIDAtLjk2OS4yNzEtLjI2OC43MDktLjI2OC45NzkgMEwxMCAxMy4yNWw3LjQxOC03LjE0MXoifSkpLGFycm93PSh7Y2xhc3NOYW1lOnM9bnVsbCx3aWR0aDpvPTIwLGhlaWdodDppPTIwLC4uLmF9KT0+UmUuY3JlYXRlRWxlbWVudCgic3ZnIixNbigpKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHZpZXdCb3g6IjAgMCAyMCAyMCIsY2xhc3NOYW1lOnMsd2lkdGg6byxoZWlnaHQ6aSwiYXJpYS1oaWRkZW4iOiJ0cnVlIixmb2N1c2FibGU6ImZhbHNlIn0sYSksUmUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMy4yNSAxMEw2LjEwOSAyLjU4Yy0uMjY4LS4yNy0uMjY4LS43MDcgMC0uOTc5LjI2OC0uMjcuNzAxLS4yNy45NjkgMGw3LjgzIDcuOTA4Yy4yNjguMjcxLjI2OC43MDkgMCAuOTc5bC03LjgzIDcuOTA4Yy0uMjY4LjI3MS0uNzAxLjI3LS45NjkgMC0uMjY4LS4yNjktLjI2OC0uNzA3IDAtLjk3OUwxMy4yNSAxMHoifSkpLGNvbXBvbmVudHNfY2xvc2U9KHtjbGFzc05hbWU6cz1udWxsLHdpZHRoOm89MjAsaGVpZ2h0Omk9MjAsLi4uYX0pPT5SZS5jcmVhdGVFbGVtZW50KCJzdmciLE1uKCkoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdmlld0JveDoiMCAwIDIwIDIwIixjbGFzc05hbWU6cyx3aWR0aDpvLGhlaWdodDppLCJhcmlhLWhpZGRlbiI6InRydWUiLGZvY3VzYWJsZToiZmFsc2UifSxhKSxSZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE0LjM0OCAxNC44NDljLS40NjkuNDY5LTEuMjI5LjQ2OS0xLjY5NyAwTDEwIDExLjgxOWwtMi42NTEgMy4wMjljLS40NjkuNDY5LTEuMjI5LjQ2OS0xLjY5NyAwLS40NjktLjQ2OS0uNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtLjQ2OS0uNDY5LS40NjktMS4yMjggMC0xLjY5Ny40NjktLjQ2OSAxLjIyOC0uNDY5IDEuNjk3IDBMMTAgOC4xODNsMi42NTEtMy4wMzFjLjQ2OS0uNDY5IDEuMjI4LS40NjkgMS42OTcgMCAuNDY5LjQ2OS40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMuNDY5LjQ2OS40NjkgMS4yMjkgMCAxLjY5OHoifSkpLGNvcHk9KHtjbGFzc05hbWU6cz1udWxsLHdpZHRoOm89MTUsaGVpZ2h0Omk9MTYsLi4uYX0pPT5SZS5jcmVhdGVFbGVtZW50KCJzdmciLE1uKCkoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdmlld0JveDoiMCAwIDE1IDE2IixjbGFzc05hbWU6cyx3aWR0aDpvLGhlaWdodDppLCJhcmlhLWhpZGRlbiI6InRydWUiLGZvY3VzYWJsZToiZmFsc2UifSxhKSxSZS5jcmVhdGVFbGVtZW50KCJnIix7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoMiwgLTEpIn0sUmUuY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6IiNmZmZmZmYiLGZpbGxSdWxlOiJldmVub2RkIixkOiJNMiAxM2g0djFIMnYtMXptNS02SDJ2MWg1Vjd6bTIgM1Y4bC0zIDMgMyAzdi0yaDV2LTJIOXpNNC41IDlIMnYxaDIuNVY5ek0yIDEyaDIuNXYtMUgydjF6bTkgMWgxdjJjLS4wMi4yOC0uMTEuNTItLjMuNy0uMTkuMTgtLjQyLjI4LS43LjNIMWMtLjU1IDAtMS0uNDUtMS0xVjRjMC0uNTUuNDUtMSAxLTFoM2MwLTEuMTEuODktMiAyLTIgMS4xMSAwIDIgLjg5IDIgMmgzYy41NSAwIDEgLjQ1IDEgMXY1aC0xVjZIMXY5aDEwdi0yek0yIDVoOGMwLS41NS0uNDUtMS0xLTFIOGMtLjU1IDAtMS0uNDUtMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxLS40NSAxLTEgMUgzYy0uNTUgMC0xIC40NS0xIDF6In0pKSksbG9jaz0oe2NsYXNzTmFtZTpzPW51bGwsd2lkdGg6bz0yMCxoZWlnaHQ6aT0yMCwuLi5hfSk9PlJlLmNyZWF0ZUVsZW1lbnQoInN2ZyIsTW4oKSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix2aWV3Qm94OiIwIDAgMjAgMjAiLGNsYXNzTmFtZTpzLHdpZHRoOm8saGVpZ2h0OmksImFyaWEtaGlkZGVuIjoidHJ1ZSIsZm9jdXNhYmxlOiJmYWxzZSJ9LGEpLFJlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTUuOCA4SDE0VjUuNkMxNCAyLjcwMyAxMi42NjUgMSAxMCAxIDcuMzM0IDEgNiAyLjcwMyA2IDUuNlY4SDRjLS41NTMgMC0xIC42NDYtMSAxLjE5OVYxN2MwIC41NDkuNDI4IDEuMTM5Ljk1MSAxLjMwN2wxLjE5Ny4zODdDNS42NzIgMTguODYxIDYuNTUgMTkgNy4xIDE5aDUuOGMuNTQ5IDAgMS40MjgtLjEzOSAxLjk1MS0uMzA3bDEuMTk2LS4zODdjLjUyNC0uMTY3Ljk1My0uNzU3Ljk1My0xLjMwNlY5LjE5OUMxNyA4LjY0NiAxNi4zNTIgOCAxNS44IDh6TTEyIDhIOFY1LjE5OUM4IDMuNzU0IDguNzk3IDMgMTAgM2MxLjIwMyAwIDIgLjc1NCAyIDIuMTk5Vjh6In0pKSx1bmxvY2s9KHtjbGFzc05hbWU6cz1udWxsLHdpZHRoOm89MjAsaGVpZ2h0Omk9MjAsLi4uYX0pPT5SZS5jcmVhdGVFbGVtZW50KCJzdmciLE1uKCkoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdmlld0JveDoiMCAwIDIwIDIwIixjbGFzc05hbWU6cyx3aWR0aDpvLGhlaWdodDppLCJhcmlhLWhpZGRlbiI6InRydWUiLGZvY3VzYWJsZToiZmFsc2UifSxhKSxSZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE1LjggOEgxNFY1LjZDMTQgMi43MDMgMTIuNjY1IDEgMTAgMSA3LjMzNCAxIDYgMi43MDMgNiA1LjZWNmgydi0uODAxQzggMy43NTQgOC43OTcgMyAxMCAzYzEuMjAzIDAgMiAuNzU0IDIgMi4xOTlWOEg0Yy0uNTUzIDAtMSAuNjQ2LTEgMS4xOTlWMTdjMCAuNTQ5LjQyOCAxLjEzOS45NTEgMS4zMDdsMS4xOTcuMzg3QzUuNjcyIDE4Ljg2MSA2LjU1IDE5IDcuMSAxOWg1LjhjLjU0OSAwIDEuNDI4LS4xMzkgMS45NTEtLjMwN2wxLjE5Ni0uMzg3Yy41MjQtLjE2Ny45NTMtLjc1Ny45NTMtMS4zMDZWOS4xOTlDMTcgOC42NDYgMTYuMzUyIDggMTUuOCA4eiJ9KSksaWNvbnM9KCk9Pih7Y29tcG9uZW50czp7QXJyb3dVcEljb246YXJyb3dfdXAsQXJyb3dEb3duSWNvbjphcnJvd19kb3duLEFycm93SWNvbjphcnJvdyxDbG9zZUljb246Y29tcG9uZW50c19jbG9zZSxDb3B5SWNvbjpjb3B5LExvY2tJY29uOmxvY2ssVW5sb2NrSWNvbjp1bmxvY2t9fSksUm49ImxheW91dF91cGRhdGVfbGF5b3V0IixEbj0ibGF5b3V0X3VwZGF0ZV9maWx0ZXIiLExuPSJsYXlvdXRfdXBkYXRlX21vZGUiLEZuPSJsYXlvdXRfc2hvdyI7ZnVuY3Rpb24gdXBkYXRlTGF5b3V0KHMpe3JldHVybnt0eXBlOlJuLHBheWxvYWQ6c319ZnVuY3Rpb24gdXBkYXRlRmlsdGVyKHMpe3JldHVybnt0eXBlOkRuLHBheWxvYWQ6c319ZnVuY3Rpb24gYWN0aW9uc19zaG93KHMsbz0hMCl7cmV0dXJuIHM9bm9ybWFsaXplQXJyYXkocykse3R5cGU6Rm4scGF5bG9hZDp7dGhpbmc6cyxzaG93bjpvfX19ZnVuY3Rpb24gY2hhbmdlTW9kZShzLG89IiIpe3JldHVybiBzPW5vcm1hbGl6ZUFycmF5KHMpLHt0eXBlOkxuLHBheWxvYWQ6e3RoaW5nOnMsbW9kZTpvfX19Y29uc3QgQm49e1tSbl06KHMsbyk9PnMuc2V0KCJsYXlvdXQiLG8ucGF5bG9hZCksW0RuXToocyxvKT0+cy5zZXQoImZpbHRlciIsby5wYXlsb2FkKSxbRm5dOihzLG8pPT57Y29uc3QgaT1vLnBheWxvYWQuc2hvd24sYT0oMCx6ZS5mcm9tSlMpKG8ucGF5bG9hZC50aGluZyk7cmV0dXJuIHMudXBkYXRlKCJzaG93biIsKDAsemUuZnJvbUpTKSh7fSksKHM9PnMuc2V0KGEsaSkpKX0sW0xuXToocyxvKT0+e2xldCBpPW8ucGF5bG9hZC50aGluZyxhPW8ucGF5bG9hZC5tb2RlO3JldHVybiBzLnNldEluKFsibW9kZXMiXS5jb25jYXQoaSksKGF8fCIiKSsiIil9fSxjdXJyZW50PXM9PnMuZ2V0KCJsYXlvdXQiKSxjdXJyZW50RmlsdGVyPXM9PnMuZ2V0KCJmaWx0ZXIiKSxpc1Nob3duPShzLG8saSk9PihvPW5vcm1hbGl6ZUFycmF5KG8pLHMuZ2V0KCJzaG93biIsKDAsemUuZnJvbUpTKSh7fSkpLmdldCgoMCx6ZS5mcm9tSlMpKG8pLGkpKSx3aGF0TW9kZT0ocyxvLGk9IiIpPT4obz1ub3JtYWxpemVBcnJheShvKSxzLmdldEluKFsibW9kZXMiLC4uLm9dLGkpKSwkbj1WdCgocz0+cyksKHM9PiFpc1Nob3duKHMsImVkaXRvciIpKSksdGFnZ2VkT3BlcmF0aW9ucz0ocyxvKT0+KGksLi4uYSk9PntsZXQgdT1zKGksLi4uYSk7Y29uc3R7Zm46XyxsYXlvdXRTZWxlY3RvcnM6dyxnZXRDb25maWdzOnh9PW8uZ2V0U3lzdGVtKCksQz14KCkse21heERpc3BsYXllZFRhZ3M6an09QztsZXQgTD13LmN1cnJlbnRGaWx0ZXIoKTtyZXR1cm4gTCYmITAhPT1MJiYodT1fLm9wc0ZpbHRlcih1LEwpKSxqPj0wJiYodT11LnNsaWNlKDAsaikpLHV9O2Z1bmN0aW9uIHBsdWdpbnNfbGF5b3V0KCl7cmV0dXJue3N0YXRlUGx1Z2luczp7bGF5b3V0OntyZWR1Y2VyczpCbixhY3Rpb25zOmosc2VsZWN0b3JzOkx9LHNwZWM6e3dyYXBTZWxlY3RvcnM6Qn19fX1mdW5jdGlvbiBsb2dzKHtjb25maWdzOnN9KXtjb25zdCBvPXtkZWJ1ZzowLGluZm86MSxsb2c6Mix3YXJuOjMsZXJyb3I6NH0sZ2V0TGV2ZWw9cz0+b1tzXXx8LTE7bGV0e2xvZ0xldmVsOml9PXMsYT1nZXRMZXZlbChpKTtmdW5jdGlvbiBsb2cocywuLi5vKXtnZXRMZXZlbChzKT49YSYmY29uc29sZVtzXSguLi5vKX1yZXR1cm4gbG9nLndhcm49bG9nLmJpbmQobnVsbCwid2FybiIpLGxvZy5lcnJvcj1sb2cuYmluZChudWxsLCJlcnJvciIpLGxvZy5pbmZvPWxvZy5iaW5kKG51bGwsImluZm8iKSxsb2cuZGVidWc9bG9nLmJpbmQobnVsbCwiZGVidWciKSx7cm9vdEluamVjdHM6e2xvZ319fWxldCBxbj0hMTtmdW5jdGlvbiBvbl9jb21wbGV0ZSgpe3JldHVybntzdGF0ZVBsdWdpbnM6e3NwZWM6e3dyYXBBY3Rpb25zOnt1cGRhdGVTcGVjOnM9PiguLi5vKT0+KHFuPSEwLHMoLi4ubykpLHVwZGF0ZUpzb25TcGVjOihzLG8pPT4oLi4uaSk9Pntjb25zdCBhPW8uZ2V0Q29uZmlncygpLm9uQ29tcGxldGU7cmV0dXJuIHFuJiYiZnVuY3Rpb24iPT10eXBlb2YgYSYmKHNldFRpbWVvdXQoYSwwKSxxbj0hMSkscyguLi5pKX19fX19fWNvbnN0IGV4dHJhY3RLZXk9cz0+e2NvbnN0IG89Il8qKltdIjtyZXR1cm4gcy5pbmRleE9mKG8pPDA/czpzLnNwbGl0KG8pWzBdLnRyaW0oKX0sZXNjYXBlU2hlbGw9cz0+Ii1kICI9PT1zfHwvXltfXC8tXS9nLnRlc3Qocyk/czoiJyIrcy5yZXBsYWNlKC8nL2csIidcXCcnIikrIiciLGVzY2FwZUNNRD1zPT4iLWQgIj09PShzPXMucmVwbGFjZSgvXF4vZywiXl4iKS5yZXBsYWNlKC9cXCIvZywnXFxcXCInKS5yZXBsYWNlKC8iL2csJyIiJykucmVwbGFjZSgvXG4vZywiXlxuIikpP3MucmVwbGFjZSgvLWQgL2csIi1kIF5cbiIpOi9eW19cLy1dL2cudGVzdChzKT9zOiciJytzKyciJyxlc2NhcGVQb3dlcnNoZWxsPXM9PntpZigiLWQgIj09PXMpcmV0dXJuIHM7aWYoL1xuLy50ZXN0KHMpKXtyZXR1cm5gQCJcbiR7cy5yZXBsYWNlKC9gL2csImBgIikucmVwbGFjZSgvXCQvZywiYCQiKX1cbiJAYH1pZighL15bX1wvLV0vLnRlc3Qocykpe3JldHVybmAnJHtzLnJlcGxhY2UoLycvZywiJyciKX0nYH1yZXR1cm4gc307Y29uc3QgY3VybGlmeT0ocyxvLGksYT0iIik9PntsZXQgdT0hMSxfPSIiO2NvbnN0IGFkZFdvcmRzPSguLi5zKT0+Xys9IiAiK3MubWFwKG8pLmpvaW4oIiAiKSxhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2U9KC4uLnMpPT5fKz1zLm1hcChvKS5qb2luKCIgIiksYWRkTmV3TGluZT0oKT0+Xys9YCAke2l9YCxhZGRJbmRlbnQ9KHM9MSk9Pl8rPSIgICIucmVwZWF0KHMpO2xldCB3PXMuZ2V0KCJoZWFkZXJzIik7Xys9ImN1cmwiK2E7Y29uc3QgeD1zLmdldCgiY3VybE9wdGlvbnMiKTtpZih6ZS5MaXN0LmlzTGlzdCh4KSYmIXguaXNFbXB0eSgpJiZhZGRXb3JkcyguLi5zLmdldCgiY3VybE9wdGlvbnMiKSksYWRkV29yZHMoIi1YIixzLmdldCgibWV0aG9kIikpLGFkZE5ld0xpbmUoKSxhZGRJbmRlbnQoKSxhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2UoYCR7cy5nZXQoInVybCIpfWApLHcmJncuc2l6ZSlmb3IobGV0IG8gb2Ygcy5nZXQoImhlYWRlcnMiKS5lbnRyaWVzKCkpe2FkZE5ld0xpbmUoKSxhZGRJbmRlbnQoKTtsZXRbcyxpXT1vO2FkZFdvcmRzV2l0aG91dExlYWRpbmdTcGFjZSgiLUgiLGAke3N9OiAke2l9YCksdT11fHwvXmNvbnRlbnQtdHlwZSQvaS50ZXN0KHMpJiYvXm11bHRpcGFydFwvZm9ybS1kYXRhJC9pLnRlc3QoaSl9Y29uc3QgQz1zLmdldCgiYm9keSIpO2lmKEMpaWYodSYmWyJQT1NUIiwiUFVUIiwiUEFUQ0giXS5pbmNsdWRlcyhzLmdldCgibWV0aG9kIikpKWZvcihsZXRbcyxvXW9mIEMuZW50cnlTZXEoKSl7bGV0IGk9ZXh0cmFjdEtleShzKTthZGROZXdMaW5lKCksYWRkSW5kZW50KCksYWRkV29yZHNXaXRob3V0TGVhZGluZ1NwYWNlKCItRiIpLG8gaW5zdGFuY2VvZiBsdC5GaWxlJiYic3RyaW5nIj09dHlwZW9mIG8udmFsdWVPZigpP2FkZFdvcmRzKGAke2l9PSR7by5kYXRhfSR7by50eXBlP2A7dHlwZT0ke28udHlwZX1gOiIifWApOm8gaW5zdGFuY2VvZiBsdC5GaWxlP2FkZFdvcmRzKGAke2l9PUAke28ubmFtZX0ke28udHlwZT9gO3R5cGU9JHtvLnR5cGV9YDoiIn1gKTphZGRXb3JkcyhgJHtpfT0ke299YCl9ZWxzZSBpZihDIGluc3RhbmNlb2YgbHQuRmlsZSlhZGROZXdMaW5lKCksYWRkSW5kZW50KCksYWRkV29yZHNXaXRob3V0TGVhZGluZ1NwYWNlKGAtLWRhdGEtYmluYXJ5ICdAJHtDLm5hbWV9J2ApO2Vsc2V7YWRkTmV3TGluZSgpLGFkZEluZGVudCgpLGFkZFdvcmRzV2l0aG91dExlYWRpbmdTcGFjZSgiLWQgIik7bGV0IG89Qzt6ZS5NYXAuaXNNYXAobyk/YWRkV29yZHNXaXRob3V0TGVhZGluZ1NwYWNlKGZ1bmN0aW9uIGdldFN0cmluZ0JvZHlPZk1hcChzKXtsZXQgbz1bXTtmb3IobGV0W2ksYV1vZiBzLmdldCgiYm9keSIpLmVudHJ5U2VxKCkpe2xldCBzPWV4dHJhY3RLZXkoaSk7YSBpbnN0YW5jZW9mIGx0LkZpbGU/by5wdXNoKGAgICIke3N9Ijoge1xuICAgICJuYW1lIjogIiR7YS5uYW1lfSIke2EudHlwZT9gLFxuICAgICJ0eXBlIjogIiR7YS50eXBlfSJgOiIifVxuICB9YCk6by5wdXNoKGAgICIke3N9IjogJHtKU09OLnN0cmluZ2lmeShhLG51bGwsMikucmVwbGFjZSgvKFxyXG58XHJ8XG4pL2csIlxuICAiKX1gKX1yZXR1cm5ge1xuJHtvLmpvaW4oIixcbiIpfVxufWB9KHMpKTooInN0cmluZyIhPXR5cGVvZiBvJiYobz1KU09OLnN0cmluZ2lmeShvKSksYWRkV29yZHNXaXRob3V0TGVhZGluZ1NwYWNlKG8pKX1lbHNlIEN8fCJQT1NUIiE9PXMuZ2V0KCJtZXRob2QiKXx8KGFkZE5ld0xpbmUoKSxhZGRJbmRlbnQoKSxhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2UoIi1kICcnIikpO3JldHVybiBffSxyZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX3Bvd2Vyc2hlbGw9cz0+Y3VybGlmeShzLGVzY2FwZVBvd2Vyc2hlbGwsImBcbiIsIi5leGUiKSxyZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX2Jhc2g9cz0+Y3VybGlmeShzLGVzY2FwZVNoZWxsLCJcXFxuIikscmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfY3VybF9jbWQ9cz0+Y3VybGlmeShzLGVzY2FwZUNNRCwiXlxuIikscmVxdWVzdF9zbmlwcGV0c19zZWxlY3RvcnNfc3RhdGU9cz0+c3x8KDAsemUuTWFwKSgpLFZuPVZ0KHJlcXVlc3Rfc25pcHBldHNfc2VsZWN0b3JzX3N0YXRlLChzPT57Y29uc3Qgbz1zLmdldCgibGFuZ3VhZ2VzIiksaT1zLmdldCgiZ2VuZXJhdG9ycyIsKDAsemUuTWFwKSgpKTtyZXR1cm4hb3x8by5pc0VtcHR5KCk/aTppLmZpbHRlcigoKHMsaSk9Pm8uaW5jbHVkZXMoaSkpKX0pKSxnZXRTbmlwcGV0R2VuZXJhdG9ycz1zPT4oe2ZuOm99KT0+Vm4ocykubWFwKCgocyxpKT0+e2NvbnN0IGE9KHM9Pm9bYHJlcXVlc3RTbmlwcGV0R2VuZXJhdG9yXyR7c31gXSkoaSk7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIGE/bnVsbDpzLnNldCgiZm4iLGEpfSkpLmZpbHRlcigocz0+cykpLFVuPVZ0KHJlcXVlc3Rfc25pcHBldHNfc2VsZWN0b3JzX3N0YXRlLChzPT5zLmdldCgiYWN0aXZlTGFuZ3VhZ2UiKSkpLHpuPVZ0KHJlcXVlc3Rfc25pcHBldHNfc2VsZWN0b3JzX3N0YXRlLChzPT5zLmdldCgiZGVmYXVsdEV4cGFuZGVkIikpKTt2YXIgV249X193ZWJwYWNrX3JlcXVpcmVfXyg0Njk0MiksSm49X193ZWJwYWNrX3JlcXVpcmVfXy5uKFduKSxIbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDU5Mzk5KTtjb25zdCBLbj17Y3Vyc29yOiJwb2ludGVyIixsaW5lSGVpZ2h0OjEsZGlzcGxheToiaW5saW5lLWZsZXgiLGJhY2tncm91bmRDb2xvcjoicmdiKDI1MCwgMjUwLCAyNTApIixwYWRkaW5nQm90dG9tOiIwIixwYWRkaW5nVG9wOiIwIixib3JkZXI6IjFweCBzb2xpZCByZ2IoNTEsIDUxLCA1MSkiLGJvcmRlclJhZGl1czoiNHB4IDRweCAwIDAiLGJveFNoYWRvdzoibm9uZSIsYm9yZGVyQm90dG9tOiJub25lIn0sR249e2N1cnNvcjoicG9pbnRlciIsbGluZUhlaWdodDoxLGRpc3BsYXk6ImlubGluZS1mbGV4IixiYWNrZ3JvdW5kQ29sb3I6InJnYig1MSwgNTEsIDUxKSIsYm94U2hhZG93OiJub25lIixib3JkZXI6IjFweCBzb2xpZCByZ2IoNTEsIDUxLCA1MSkiLHBhZGRpbmdCb3R0b206IjAiLHBhZGRpbmdUb3A6IjAiLGJvcmRlclJhZGl1czoiNHB4IDRweCAwIDAiLG1hcmdpblRvcDoiLTVweCIsbWFyZ2luUmlnaHQ6Ii01cHgiLG1hcmdpbkxlZnQ6Ii01cHgiLHpJbmRleDoiOTk5OSIsYm9yZGVyQm90dG9tOiJub25lIn0scmVxdWVzdF9zbmlwcGV0cz0oe3JlcXVlc3Q6cyxyZXF1ZXN0U25pcHBldHNTZWxlY3RvcnM6byxnZXRDb21wb25lbnQ6aX0pPT57Y29uc3QgYT0oMCxSZS51c2VSZWYpKG51bGwpLHU9aSgiQXJyb3dVcEljb24iKSxfPWkoIkFycm93RG93bkljb24iKSx3PWkoIlN5bnRheEhpZ2hsaWdodGVyIiwhMCksW3gsQ109KDAsUmUudXNlU3RhdGUpKG8uZ2V0U25pcHBldEdlbmVyYXRvcnMoKT8ua2V5U2VxKCkuZmlyc3QoKSksW2osTF09KDAsUmUudXNlU3RhdGUpKG8/LmdldERlZmF1bHRFeHBhbmRlZCgpKSxCPW8uZ2V0U25pcHBldEdlbmVyYXRvcnMoKSwkPUIuZ2V0KHgpLFY9JC5nZXQoImZuIikocyksaGFuZGxlU2V0SXNFeHBhbmRlZD0oKT0+e0woIWopfSxoYW5kbGVHZXRCdG5TdHlsZT1zPT5zPT09eD9HbjpLbixoYW5kbGVQcmV2ZW50WVNjcm9sbGluZ0JleW9uZEVsZW1lbnQ9cz0+e2NvbnN0e3RhcmdldDpvLGRlbHRhWTppfT1zLHtzY3JvbGxIZWlnaHQ6YSxvZmZzZXRIZWlnaHQ6dSxzY3JvbGxUb3A6X309bzthPnUmJigwPT09XyYmaTwwfHx1K18+PWEmJmk+MCkmJnMucHJldmVudERlZmF1bHQoKX07cmV0dXJuKDAsUmUudXNlRWZmZWN0KSgoKCk9Pnt9KSxbXSksKDAsUmUudXNlRWZmZWN0KSgoKCk9Pntjb25zdCBzPUFycmF5LmZyb20oYS5jdXJyZW50LmNoaWxkTm9kZXMpLmZpbHRlcigocz0+ISFzLm5vZGVUeXBlJiZzLmNsYXNzTGlzdD8uY29udGFpbnMoImN1cmwtY29tbWFuZCIpKSk7cmV0dXJuIHMuZm9yRWFjaCgocz0+cy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXdoZWVsIixoYW5kbGVQcmV2ZW50WVNjcm9sbGluZ0JleW9uZEVsZW1lbnQse3Bhc3NpdmU6ITF9KSkpLCgpPT57cy5mb3JFYWNoKChzPT5zLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNld2hlZWwiLGhhbmRsZVByZXZlbnRZU2Nyb2xsaW5nQmV5b25kRWxlbWVudCkpKX19KSxbc10pLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicmVxdWVzdC1zbmlwcGV0cyIscmVmOmF9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOnt3aWR0aDoiMTAwJSIsZGlzcGxheToiZmxleCIsanVzdGlmeUNvbnRlbnQ6ImZsZXgtc3RhcnQiLGFsaWduSXRlbXM6ImNlbnRlciIsbWFyZ2luQm90dG9tOiIxNXB4In19LFJlLmNyZWF0ZUVsZW1lbnQoImg0Iix7b25DbGljazooKT0+aGFuZGxlU2V0SXNFeHBhbmRlZCgpLHN0eWxlOntjdXJzb3I6InBvaW50ZXIifX0sIlNuaXBwZXRzIiksUmUuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7b25DbGljazooKT0+aGFuZGxlU2V0SXNFeHBhbmRlZCgpLHN0eWxlOntib3JkZXI6Im5vbmUiLGJhY2tncm91bmQ6Im5vbmUifSx0aXRsZTpqPyJDb2xsYXBzZSBvcGVyYXRpb24iOiJFeHBhbmQgb3BlcmF0aW9uIn0saj9SZS5jcmVhdGVFbGVtZW50KF8se2NsYXNzTmFtZToiYXJyb3ciLHdpZHRoOiIxMCIsaGVpZ2h0OiIxMCJ9KTpSZS5jcmVhdGVFbGVtZW50KHUse2NsYXNzTmFtZToiYXJyb3ciLHdpZHRoOiIxMCIsaGVpZ2h0OiIxMCJ9KSkpLGomJlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiY3VybC1jb21tYW5kIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6e3BhZGRpbmdMZWZ0OiIxNXB4IixwYWRkaW5nUmlnaHQ6IjEwcHgiLHdpZHRoOiIxMDAlIixkaXNwbGF5OiJmbGV4In19LEIuZW50cnlTZXEoKS5tYXAoKChbcyxvXSk9PlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpKbigpKCJidG4iLHthY3RpdmU6cz09PXh9KSxzdHlsZTpoYW5kbGVHZXRCdG5TdHlsZShzKSxrZXk6cyxvbkNsaWNrOigpPT4ocz0+e3ghPT1zJiZDKHMpfSkocyl9LFJlLmNyZWF0ZUVsZW1lbnQoImg0Iix7c3R5bGU6cz09PXg/e2NvbG9yOiJ3aGl0ZSJ9Ont9fSxvLmdldCgidGl0bGUiKSkpKSkpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiY29weS10by1jbGlwYm9hcmQifSxSZS5jcmVhdGVFbGVtZW50KEhuLkNvcHlUb0NsaXBib2FyZCx7dGV4dDpWfSxSZS5jcmVhdGVFbGVtZW50KCJidXR0b24iLG51bGwpKSksUmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQodyx7bGFuZ3VhZ2U6JC5nZXQoInN5bnRheCIpLGNsYXNzTmFtZToiY3VybCBtaWNyb2xpZ2h0IixyZW5kZXJQbGFpblRleHQ6KHtjaGlsZHJlbjpzLFBsYWluVGV4dFZpZXdlcjpvfSk9PlJlLmNyZWF0ZUVsZW1lbnQobyx7Y2xhc3NOYW1lOiJjdXJsIn0scyl9LFYpKSkpfSxwbHVnaW5zX3JlcXVlc3Rfc25pcHBldHM9KCk9Pih7Y29tcG9uZW50czp7UmVxdWVzdFNuaXBwZXRzOnJlcXVlc3Rfc25pcHBldHN9LGZuOntyZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX2Jhc2gscmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfY3VybF9jbWQscmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfY3VybF9wb3dlcnNoZWxsfSxzdGF0ZVBsdWdpbnM6e3JlcXVlc3RTbmlwcGV0czp7c2VsZWN0b3JzOiR9fX0pO2NsYXNzIE1vZGVsQ29sbGFwc2UgZXh0ZW5kcyBSZS5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17Y29sbGFwc2VkQ29udGVudDoiey4uLn0iLGV4cGFuZGVkOiExLHRpdGxlOm51bGwsb25Ub2dnbGU6KCk9Pnt9LGhpZGVTZWxmT25FeHBhbmQ6ITEsc3BlY1BhdGg6V2UoKS5MaXN0KFtdKX07Y29uc3RydWN0b3IocyxvKXtzdXBlcihzLG8pO2xldHtleHBhbmRlZDppLGNvbGxhcHNlZENvbnRlbnQ6YX09dGhpcy5wcm9wczt0aGlzLnN0YXRlPXtleHBhbmRlZDppLGNvbGxhcHNlZENvbnRlbnQ6YXx8TW9kZWxDb2xsYXBzZS5kZWZhdWx0UHJvcHMuY29sbGFwc2VkQ29udGVudH19Y29tcG9uZW50RGlkTW91bnQoKXtjb25zdHtoaWRlU2VsZk9uRXhwYW5kOnMsZXhwYW5kZWQ6byxtb2RlbE5hbWU6aX09dGhpcy5wcm9wcztzJiZvJiZ0aGlzLnByb3BzLm9uVG9nZ2xlKGksbyl9VU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMocyl7dGhpcy5wcm9wcy5leHBhbmRlZCE9PXMuZXhwYW5kZWQmJnRoaXMuc2V0U3RhdGUoe2V4cGFuZGVkOnMuZXhwYW5kZWR9KX10b2dnbGVDb2xsYXBzZWQ9KCk9Pnt0aGlzLnByb3BzLm9uVG9nZ2xlJiZ0aGlzLnByb3BzLm9uVG9nZ2xlKHRoaXMucHJvcHMubW9kZWxOYW1lLCF0aGlzLnN0YXRlLmV4cGFuZGVkKSx0aGlzLnNldFN0YXRlKHtleHBhbmRlZDohdGhpcy5zdGF0ZS5leHBhbmRlZH0pfTtvbkxvYWQ9cz0+e2lmKHMmJnRoaXMucHJvcHMubGF5b3V0U2VsZWN0b3JzKXtjb25zdCBvPXRoaXMucHJvcHMubGF5b3V0U2VsZWN0b3JzLmdldFNjcm9sbFRvS2V5KCk7V2UoKS5pcyhvLHRoaXMucHJvcHMuc3BlY1BhdGgpJiZ0aGlzLnRvZ2dsZUNvbGxhcHNlZCgpLHRoaXMucHJvcHMubGF5b3V0QWN0aW9ucy5yZWFkeVRvU2Nyb2xsKHRoaXMucHJvcHMuc3BlY1BhdGgscy5wYXJlbnRFbGVtZW50KX19O3JlbmRlcigpe2NvbnN0e3RpdGxlOnMsY2xhc3NlczpvfT10aGlzLnByb3BzO3JldHVybiB0aGlzLnN0YXRlLmV4cGFuZGVkJiZ0aGlzLnByb3BzLmhpZGVTZWxmT25FeHBhbmQ/UmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpvfHwiIn0sdGhpcy5wcm9wcy5jaGlsZHJlbik6UmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpvfHwiIixyZWY6dGhpcy5vbkxvYWR9LFJlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIseyJhcmlhLWV4cGFuZGVkIjp0aGlzLnN0YXRlLmV4cGFuZGVkLGNsYXNzTmFtZToibW9kZWwtYm94LWNvbnRyb2wiLG9uQ2xpY2s6dGhpcy50b2dnbGVDb2xsYXBzZWR9LHMmJlJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6InBvaW50ZXIifSxzKSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtb2RlbC10b2dnbGUiKyh0aGlzLnN0YXRlLmV4cGFuZGVkPyIiOiIgY29sbGFwc2VkIil9KSwhdGhpcy5zdGF0ZS5leHBhbmRlZCYmUmUuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCx0aGlzLnN0YXRlLmNvbGxhcHNlZENvbnRlbnQpKSx0aGlzLnN0YXRlLmV4cGFuZGVkJiZ0aGlzLnByb3BzLmNoaWxkcmVuKX19Y29uc3QgdXNlVGFicz0oe2luaXRpYWxUYWI6cyxpc0V4ZWN1dGU6byxzY2hlbWE6aSxleGFtcGxlOmF9KT0+e2NvbnN0IHU9KDAsUmUudXNlTWVtbykoKCgpPT4oe2V4YW1wbGU6ImV4YW1wbGUiLG1vZGVsOiJtb2RlbCJ9KSksW10pLF89KDAsUmUudXNlTWVtbykoKCgpPT5PYmplY3Qua2V5cyh1KSksW3VdKS5pbmNsdWRlcyhzKSYmaSYmIW8/czp1LmV4YW1wbGUsdz0ocz0+e2NvbnN0IG89KDAsUmUudXNlUmVmKSgpO3JldHVybigwLFJlLnVzZUVmZmVjdCkoKCgpPT57by5jdXJyZW50PXN9KSksby5jdXJyZW50fSkobyksW3gsQ109KDAsUmUudXNlU3RhdGUpKF8pLGo9KDAsUmUudXNlQ2FsbGJhY2spKChzPT57QyhzLnRhcmdldC5kYXRhc2V0Lm5hbWUpfSksW10pO3JldHVybigwLFJlLnVzZUVmZmVjdCkoKCgpPT57dyYmIW8mJmEmJkModS5leGFtcGxlKX0pLFt3LG8sYV0pLHthY3RpdmVUYWI6eCxvblRhYkNoYW5nZTpqLHRhYnM6dX19LG1vZGVsX2V4YW1wbGU9KHtzY2hlbWE6cyxleGFtcGxlOm8saXNFeGVjdXRlOmk9ITEsc3BlY1BhdGg6YSxpbmNsdWRlV3JpdGVPbmx5OnU9ITEsaW5jbHVkZVJlYWRPbmx5Ol89ITEsZ2V0Q29tcG9uZW50OncsZ2V0Q29uZmlnczp4LHNwZWNTZWxlY3RvcnM6Q30pPT57Y29uc3R7ZGVmYXVsdE1vZGVsUmVuZGVyaW5nOmosZGVmYXVsdE1vZGVsRXhwYW5kRGVwdGg6TH09eCgpLEI9dygiTW9kZWxXcmFwcGVyIiksJD13KCJIaWdobGlnaHRDb2RlIiwhMCksVj14dCgpKDUpLnRvU3RyaW5nKCJiYXNlNjQiKSxVPXh0KCkoNSkudG9TdHJpbmcoImJhc2U2NCIpLHo9eHQoKSg1KS50b1N0cmluZygiYmFzZTY0IiksWT14dCgpKDUpLnRvU3RyaW5nKCJiYXNlNjQiKSxaPUMuaXNPQVMzKCkse2FjdGl2ZVRhYjplZSx0YWJzOmllLG9uVGFiQ2hhbmdlOmFlfT11c2VUYWJzKHtpbml0aWFsVGFiOmosaXNFeGVjdXRlOmksc2NoZW1hOnMsZXhhbXBsZTpvfSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibW9kZWwtZXhhbXBsZSJ9LFJlLmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOiJ0YWIiLHJvbGU6InRhYmxpc3QifSxSZS5jcmVhdGVFbGVtZW50KCJsaSIse2NsYXNzTmFtZTpKbigpKCJ0YWJpdGVtIix7YWN0aXZlOmVlPT09aWUuZXhhbXBsZX0pLHJvbGU6InByZXNlbnRhdGlvbiJ9LFJlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIseyJhcmlhLWNvbnRyb2xzIjpVLCJhcmlhLXNlbGVjdGVkIjplZT09PWllLmV4YW1wbGUsY2xhc3NOYW1lOiJ0YWJsaW5rcyIsImRhdGEtbmFtZSI6ImV4YW1wbGUiLGlkOlYsb25DbGljazphZSxyb2xlOiJ0YWIifSxpPyJFZGl0IFZhbHVlIjoiRXhhbXBsZSBWYWx1ZSIpKSxzJiZSZS5jcmVhdGVFbGVtZW50KCJsaSIse2NsYXNzTmFtZTpKbigpKCJ0YWJpdGVtIix7YWN0aXZlOmVlPT09aWUubW9kZWx9KSxyb2xlOiJwcmVzZW50YXRpb24ifSxSZS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHsiYXJpYS1jb250cm9scyI6WSwiYXJpYS1zZWxlY3RlZCI6ZWU9PT1pZS5tb2RlbCxjbGFzc05hbWU6Sm4oKSgidGFibGlua3MiLHtpbmFjdGl2ZTppfSksImRhdGEtbmFtZSI6Im1vZGVsIixpZDp6LG9uQ2xpY2s6YWUscm9sZToidGFiIn0sWj8iU2NoZW1hIjoiTW9kZWwiKSkpLGVlPT09aWUuZXhhbXBsZSYmUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7ImFyaWEtaGlkZGVuIjplZSE9PWllLmV4YW1wbGUsImFyaWEtbGFiZWxsZWRieSI6ViwiZGF0YS1uYW1lIjoiZXhhbXBsZVBhbmVsIixpZDpVLHJvbGU6InRhYnBhbmVsIix0YWJJbmRleDoiMCJ9LG98fFJlLmNyZWF0ZUVsZW1lbnQoJCxudWxsLCIobm8gZXhhbXBsZSBhdmFpbGFibGUiKSksZWU9PT1pZS5tb2RlbCYmUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJtb2RlbC1jb250YWluZXIiLCJhcmlhLWhpZGRlbiI6ZWU9PT1pZS5leGFtcGxlLCJhcmlhLWxhYmVsbGVkYnkiOnosImRhdGEtbmFtZSI6Im1vZGVsUGFuZWwiLGlkOlkscm9sZToidGFicGFuZWwiLHRhYkluZGV4OiIwIn0sUmUuY3JlYXRlRWxlbWVudChCLHtzY2hlbWE6cyxnZXRDb21wb25lbnQ6dyxnZXRDb25maWdzOngsc3BlY1NlbGVjdG9yczpDLGV4cGFuZERlcHRoOkwsc3BlY1BhdGg6YSxpbmNsdWRlUmVhZE9ubHk6XyxpbmNsdWRlV3JpdGVPbmx5OnV9KSkpfTtjbGFzcyBNb2RlbFdyYXBwZXIgZXh0ZW5kcyBSZS5Db21wb25lbnR7b25Ub2dnbGU9KHMsbyk9Pnt0aGlzLnByb3BzLmxheW91dEFjdGlvbnMmJnRoaXMucHJvcHMubGF5b3V0QWN0aW9ucy5zaG93KHRoaXMucHJvcHMuZnVsbFBhdGgsbyl9O3JlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6cyxnZXRDb25maWdzOm99PXRoaXMucHJvcHM7Y29uc3QgaT1zKCJNb2RlbCIpO2xldCBhO3JldHVybiB0aGlzLnByb3BzLmxheW91dFNlbGVjdG9ycyYmKGE9dGhpcy5wcm9wcy5sYXlvdXRTZWxlY3RvcnMuaXNTaG93bih0aGlzLnByb3BzLmZ1bGxQYXRoKSksUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJtb2RlbC1ib3gifSxSZS5jcmVhdGVFbGVtZW50KGksTW4oKSh7fSx0aGlzLnByb3BzLHtnZXRDb25maWdzOm8sZXhwYW5kZWQ6YSxkZXB0aDoxLG9uVG9nZ2xlOnRoaXMub25Ub2dnbGUsZXhwYW5kRGVwdGg6dGhpcy5wcm9wcy5leHBhbmREZXB0aHx8MH0pKSl9fWZ1bmN0aW9uIF90eXBlb2Yocyl7cmV0dXJuIF90eXBlb2Y9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24ocyl7cmV0dXJuIHR5cGVvZiBzfTpmdW5jdGlvbihzKXtyZXR1cm4gcyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmcy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmcyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHN9LF90eXBlb2Yocyl9ZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXMocyxvKXtmb3IodmFyIGk9MDtpPG8ubGVuZ3RoO2krKyl7dmFyIGE9b1tpXTthLmVudW1lcmFibGU9YS5lbnVtZXJhYmxlfHwhMSxhLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gYSYmKGEud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLGEua2V5LGEpfX1mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkocyxvLGkpe3JldHVybiBvIGluIHM/T2JqZWN0LmRlZmluZVByb3BlcnR5KHMsbyx7dmFsdWU6aSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnNbb109aSxzfWZ1bmN0aW9uIG93bktleXMocyxvKXt2YXIgaT1PYmplY3Qua2V5cyhzKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpO28mJihhPWEuZmlsdGVyKChmdW5jdGlvbihvKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLG8pLmVudW1lcmFibGV9KSkpLGkucHVzaC5hcHBseShpLGEpfXJldHVybiBpfWZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihzKXtyZXR1cm4gX2dldFByb3RvdHlwZU9mPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKHMpe3JldHVybiBzLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHMpfSxfZ2V0UHJvdG90eXBlT2Yocyl9ZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKHMsbyl7cmV0dXJuIF9zZXRQcm90b3R5cGVPZj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihzLG8pe3JldHVybiBzLl9fcHJvdG9fXz1vLHN9LF9zZXRQcm90b3R5cGVPZihzLG8pfWZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHMsbyl7cmV0dXJuIW98fCJvYmplY3QiIT10eXBlb2YgbyYmImZ1bmN0aW9uIiE9dHlwZW9mIG8/ZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzKXtpZih2b2lkIDA9PT1zKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIHN9KHMpOm99dmFyIFluPXt9O2Z1bmN0aW9uIHJlYWN0X2ltbXV0YWJsZV9wdXJlX2NvbXBvbmVudF9lc19nZXQocyxvLGkpe3JldHVybiBmdW5jdGlvbiBpc0ludmFsaWQocyl7cmV0dXJuIG51bGw9PXN9KHMpP2k6ZnVuY3Rpb24gaXNNYXBMaWtlKHMpe3JldHVybiBudWxsIT09cyYmIm9iamVjdCI9PT1fdHlwZW9mKHMpJiYiZnVuY3Rpb24iPT10eXBlb2Ygcy5nZXQmJiJmdW5jdGlvbiI9PXR5cGVvZiBzLmhhc30ocyk/cy5oYXMobyk/cy5nZXQobyk6aTpoYXNPd25Qcm9wZXJ0eS5jYWxsKHMsbyk/c1tvXTppfWZ1bmN0aW9uIGdldEluKHMsbyxpKXtmb3IodmFyIGE9MDthIT09by5sZW5ndGg7KWlmKChzPXJlYWN0X2ltbXV0YWJsZV9wdXJlX2NvbXBvbmVudF9lc19nZXQocyxvW2ErK10sWW4pKT09PVluKXJldHVybiBpO3JldHVybiBzfWZ1bmN0aW9uIGNoZWNrKHMpe3ZhciBvPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxpPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fSxhPWZ1bmN0aW9uIGNyZWF0ZUNoZWNrZXIocyxvKXtyZXR1cm4gZnVuY3Rpb24oaSl7aWYoInN0cmluZyI9PXR5cGVvZiBpKXJldHVybigwLHplLmlzKShvW2ldLHNbaV0pO2lmKEFycmF5LmlzQXJyYXkoaSkpcmV0dXJuKDAsemUuaXMpKGdldEluKG8saSksZ2V0SW4ocyxpKSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBrZXk6IGV4cGVjdGVkIEFycmF5IG9yIHN0cmluZzogIitpKX19KG8saSksdT1zfHxPYmplY3Qua2V5cyhmdW5jdGlvbiBfb2JqZWN0U3ByZWFkMihzKXtmb3IodmFyIG89MTtvPGFyZ3VtZW50cy5sZW5ndGg7bysrKXt2YXIgaT1udWxsIT1hcmd1bWVudHNbb10/YXJndW1lbnRzW29dOnt9O28lMj9vd25LZXlzKGksITApLmZvckVhY2goKGZ1bmN0aW9uKG8pe19kZWZpbmVQcm9wZXJ0eShzLG8saVtvXSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMocyxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhpKSk6b3duS2V5cyhpKS5mb3JFYWNoKChmdW5jdGlvbihvKXtPYmplY3QuZGVmaW5lUHJvcGVydHkocyxvLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaSxvKSl9KSl9cmV0dXJuIHN9KHt9LGkse30sbykpO3JldHVybiB1LmV2ZXJ5KGEpfWNvbnN0IFhuPWZ1bmN0aW9uKHMpe2Z1bmN0aW9uIEltbXV0YWJsZVB1cmVDb21wb25lbnQoKXtyZXR1cm4gZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKHMsbyl7aWYoIShzIGluc3RhbmNlb2YgbykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsSW1tdXRhYmxlUHVyZUNvbXBvbmVudCksX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcyxfZ2V0UHJvdG90eXBlT2YoSW1tdXRhYmxlUHVyZUNvbXBvbmVudCkuYXBwbHkodGhpcyxhcmd1bWVudHMpKX1yZXR1cm4gZnVuY3Rpb24gX2luaGVyaXRzKHMsbyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG8mJm51bGwhPT1vKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7cy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShvJiZvLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnMsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLG8mJl9zZXRQcm90b3R5cGVPZihzLG8pfShJbW11dGFibGVQdXJlQ29tcG9uZW50LHMpLGZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhzLG8saSl7cmV0dXJuIG8mJl9kZWZpbmVQcm9wZXJ0aWVzKHMucHJvdG90eXBlLG8pLGkmJl9kZWZpbmVQcm9wZXJ0aWVzKHMsaSksc30oSW1tdXRhYmxlUHVyZUNvbXBvbmVudCxbe2tleToic2hvdWxkQ29tcG9uZW50VXBkYXRlIix2YWx1ZTpmdW5jdGlvbiBzaG91bGRDb21wb25lbnRVcGRhdGUocyl7dmFyIG89YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O3JldHVybiFjaGVjayh0aGlzLnVwZGF0ZU9uUHJvcHMsdGhpcy5wcm9wcyxzLCJ1cGRhdGVPblByb3BzIil8fCFjaGVjayh0aGlzLnVwZGF0ZU9uU3RhdGVzLHRoaXMuc3RhdGUsbywidXBkYXRlT25TdGF0ZXMiKX19XSksSW1tdXRhYmxlUHVyZUNvbXBvbmVudH0oUmUuQ29tcG9uZW50KTt2YXIgUW4sWm49X193ZWJwYWNrX3JlcXVpcmVfXyg1NTU2KSxlcz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oWm4pO2Z1bmN0aW9uIF9leHRlbmRzKCl7cmV0dXJuIF9leHRlbmRzPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24ocyl7Zm9yKHZhciBvPTE7bzxhcmd1bWVudHMubGVuZ3RoO28rKyl7dmFyIGk9YXJndW1lbnRzW29dO2Zvcih2YXIgYSBpbiBpKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChpLGEpJiYoc1thXT1pW2FdKX1yZXR1cm4gc30sX2V4dGVuZHMuYXBwbHkobnVsbCxhcmd1bWVudHMpfWNvbnN0IHJvbGxpbmdfbG9hZD1zPT5SZS5jcmVhdGVFbGVtZW50KCJzdmciLF9leHRlbmRzKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjIwMCxoZWlnaHQ6MjAwLGNsYXNzTmFtZToicm9sbGluZy1sb2FkX3N2Z19fbGRzLXJvbGxpbmciLHByZXNlcnZlQXNwZWN0UmF0aW86InhNaWRZTWlkIixzdHlsZTp7YmFja2dyb3VuZEltYWdlOiJub25lIixiYWNrZ3JvdW5kUG9zaXRpb246ImluaXRpYWwgaW5pdGlhbCIsYmFja2dyb3VuZFJlcGVhdDoiaW5pdGlhbCBpbml0aWFsIn0sdmlld0JveDoiMCAwIDEwMCAxMDAifSxzKSxRbnx8KFFuPVJlLmNyZWF0ZUVsZW1lbnQoImNpcmNsZSIse2N4OjUwLGN5OjUwLHI6MzUsZmlsbDoibm9uZSIsc3Ryb2tlOiIjNTU1IixzdHJva2VEYXNoYXJyYXk6IjE2NC45MzM2MTQzMTM0NjQxNSA1Ni45Nzc4NzE0Mzc4MjEzOCIsc3Ryb2tlV2lkdGg6MTB9LFJlLmNyZWF0ZUVsZW1lbnQoImFuaW1hdGVUcmFuc2Zvcm0iLHthdHRyaWJ1dGVOYW1lOiJ0cmFuc2Zvcm0iLGJlZ2luOiIwcyIsY2FsY01vZGU6ImxpbmVhciIsZHVyOiIxcyIsa2V5VGltZXM6IjA7MSIscmVwZWF0Q291bnQ6ImluZGVmaW5pdGUiLHR5cGU6InJvdGF0ZSIsdmFsdWVzOiIwIDUwIDUwOzM2MCA1MCA1MCJ9KSkpKSxkZWNvZGVSZWZOYW1lPXM9Pntjb25zdCBvPXMucmVwbGFjZSgvfjEvZywiLyIpLnJlcGxhY2UoL34wL2csIn4iKTt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChvKX1jYXRjaHtyZXR1cm4gb319O2NsYXNzIE1vZGVsIGV4dGVuZHMgWG57c3RhdGljIHByb3BUeXBlcz17c2NoZW1hOnhuKCkubWFwLmlzUmVxdWlyZWQsZ2V0Q29tcG9uZW50OmVzKCkuZnVuYy5pc1JlcXVpcmVkLGdldENvbmZpZ3M6ZXMoKS5mdW5jLmlzUmVxdWlyZWQsc3BlY1NlbGVjdG9yczplcygpLm9iamVjdC5pc1JlcXVpcmVkLG5hbWU6ZXMoKS5zdHJpbmcsZGlzcGxheU5hbWU6ZXMoKS5zdHJpbmcsaXNSZWY6ZXMoKS5ib29sLHJlcXVpcmVkOmVzKCkuYm9vbCxleHBhbmREZXB0aDplcygpLm51bWJlcixkZXB0aDplcygpLm51bWJlcixzcGVjUGF0aDp4bigpLmxpc3QuaXNSZXF1aXJlZCxpbmNsdWRlUmVhZE9ubHk6ZXMoKS5ib29sLGluY2x1ZGVXcml0ZU9ubHk6ZXMoKS5ib29sfTtnZXRNb2RlbE5hbWU9cz0+LTEhPT1zLmluZGV4T2YoIiMvZGVmaW5pdGlvbnMvIik/ZGVjb2RlUmVmTmFtZShzLnJlcGxhY2UoL14uKiNcL2RlZmluaXRpb25zXC8vLCIiKSk6LTEhPT1zLmluZGV4T2YoIiMvY29tcG9uZW50cy9zY2hlbWFzLyIpP2RlY29kZVJlZk5hbWUocy5yZXBsYWNlKC9eLiojXC9jb21wb25lbnRzXC9zY2hlbWFzXC8vLCIiKSk6dm9pZCAwO2dldFJlZlNjaGVtYT1zPT57bGV0e3NwZWNTZWxlY3RvcnM6b309dGhpcy5wcm9wcztyZXR1cm4gby5maW5kRGVmaW5pdGlvbihzKX07cmVuZGVyKCl7bGV0e2dldENvbXBvbmVudDpzLGdldENvbmZpZ3M6byxzcGVjU2VsZWN0b3JzOmksc2NoZW1hOmEscmVxdWlyZWQ6dSxuYW1lOl8saXNSZWY6dyxzcGVjUGF0aDp4LGRpc3BsYXlOYW1lOkMsaW5jbHVkZVJlYWRPbmx5OmosaW5jbHVkZVdyaXRlT25seTpMfT10aGlzLnByb3BzO2NvbnN0IEI9cygiT2JqZWN0TW9kZWwiKSwkPXMoIkFycmF5TW9kZWwiKSxWPXMoIlByaW1pdGl2ZU1vZGVsIik7bGV0IFU9Im9iamVjdCIsej1hJiZhLmdldCgiJCRyZWYiKSxZPWEmJmEuZ2V0KCIkcmVmIik7aWYoIV8mJnomJihfPXRoaXMuZ2V0TW9kZWxOYW1lKHopKSxZKXtjb25zdCBzPXRoaXMuZ2V0TW9kZWxOYW1lKFkpLG89dGhpcy5nZXRSZWZTY2hlbWEocyk7emUuTWFwLmlzTWFwKG8pPyhhPW8ubWVyZ2VEZWVwKGEpLHp8fChhPWEuc2V0KCIkJHJlZiIsWSksej1ZKSk6emUuTWFwLmlzTWFwKGEpJiYxPT09YS5zaXplJiYoYT1udWxsLF89WSl9aWYoIWEpcmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsIG1vZGVsLXRpdGxlIn0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWwtdGl0bGVfX3RleHQifSxDfHxfKSwhWSYmUmUuY3JlYXRlRWxlbWVudChyb2xsaW5nX2xvYWQse2hlaWdodDoiMjBweCIsd2lkdGg6IjIwcHgifSkpO2NvbnN0IFo9aS5pc09BUzMoKSYmYS5nZXQoImRlcHJlY2F0ZWQiKTtzd2l0Y2godz12b2lkIDAhPT13P3c6ISF6LFU9YSYmYS5nZXQoInR5cGUiKXx8VSxVKXtjYXNlIm9iamVjdCI6cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoQixNbigpKHtjbGFzc05hbWU6Im9iamVjdCJ9LHRoaXMucHJvcHMse3NwZWNQYXRoOngsZ2V0Q29uZmlnczpvLHNjaGVtYTphLG5hbWU6XyxkZXByZWNhdGVkOlosaXNSZWY6dyxpbmNsdWRlUmVhZE9ubHk6aixpbmNsdWRlV3JpdGVPbmx5Okx9KSk7Y2FzZSJhcnJheSI6cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoJCxNbigpKHtjbGFzc05hbWU6ImFycmF5In0sdGhpcy5wcm9wcyx7Z2V0Q29uZmlnczpvLHNjaGVtYTphLG5hbWU6XyxkZXByZWNhdGVkOloscmVxdWlyZWQ6dSxpbmNsdWRlUmVhZE9ubHk6aixpbmNsdWRlV3JpdGVPbmx5Okx9KSk7ZGVmYXVsdDpyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChWLE1uKCkoe30sdGhpcy5wcm9wcyx7Z2V0Q29tcG9uZW50OnMsZ2V0Q29uZmlnczpvLHNjaGVtYTphLG5hbWU6XyxkZXByZWNhdGVkOloscmVxdWlyZWQ6dX0pKX19fWNsYXNzIE1vZGVscyBleHRlbmRzIFJlLkNvbXBvbmVudHtnZXRTY2hlbWFCYXNlUGF0aD0oKT0+dGhpcy5wcm9wcy5zcGVjU2VsZWN0b3JzLmlzT0FTMygpP1siY29tcG9uZW50cyIsInNjaGVtYXMiXTpbImRlZmluaXRpb25zIl07Z2V0Q29sbGFwc2VkQ29udGVudD0oKT0+IiAiO2hhbmRsZVRvZ2dsZT0ocyxvKT0+e2NvbnN0e2xheW91dEFjdGlvbnM6aX09dGhpcy5wcm9wcztpLnNob3coWy4uLnRoaXMuZ2V0U2NoZW1hQmFzZVBhdGgoKSxzXSxvKSxvJiZ0aGlzLnByb3BzLnNwZWNBY3Rpb25zLnJlcXVlc3RSZXNvbHZlZFN1YnRyZWUoWy4uLnRoaXMuZ2V0U2NoZW1hQmFzZVBhdGgoKSxzXSl9O29uTG9hZE1vZGVscz1zPT57cyYmdGhpcy5wcm9wcy5sYXlvdXRBY3Rpb25zLnJlYWR5VG9TY3JvbGwodGhpcy5nZXRTY2hlbWFCYXNlUGF0aCgpLHMpfTtvbkxvYWRNb2RlbD1zPT57aWYocyl7Y29uc3Qgbz1zLmdldEF0dHJpYnV0ZSgiZGF0YS1uYW1lIik7dGhpcy5wcm9wcy5sYXlvdXRBY3Rpb25zLnJlYWR5VG9TY3JvbGwoWy4uLnRoaXMuZ2V0U2NoZW1hQmFzZVBhdGgoKSxvXSxzKX19O3JlbmRlcigpe2xldHtzcGVjU2VsZWN0b3JzOnMsZ2V0Q29tcG9uZW50Om8sbGF5b3V0U2VsZWN0b3JzOmksbGF5b3V0QWN0aW9uczphLGdldENvbmZpZ3M6dX09dGhpcy5wcm9wcyxfPXMuZGVmaW5pdGlvbnMoKSx7ZG9jRXhwYW5zaW9uOncsZGVmYXVsdE1vZGVsc0V4cGFuZERlcHRoOnh9PXUoKTtpZighXy5zaXplfHx4PDApcmV0dXJuIG51bGw7Y29uc3QgQz10aGlzLmdldFNjaGVtYUJhc2VQYXRoKCk7bGV0IGo9aS5pc1Nob3duKEMseD4wJiYibm9uZSIhPT13KTtjb25zdCBMPXMuaXNPQVMzKCksQj1vKCJNb2RlbFdyYXBwZXIiKSwkPW8oIkNvbGxhcHNlIiksVj1vKCJNb2RlbENvbGxhcHNlIiksVT1vKCJKdW1wVG9QYXRoIiwhMCksej1vKCJBcnJvd1VwSWNvbiIpLFk9bygiQXJyb3dEb3duSWNvbiIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIix7Y2xhc3NOYW1lOmo/Im1vZGVscyBpcy1vcGVuIjoibW9kZWxzIixyZWY6dGhpcy5vbkxvYWRNb2RlbHN9LFJlLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIseyJhcmlhLWV4cGFuZGVkIjpqLGNsYXNzTmFtZToibW9kZWxzLWNvbnRyb2wiLG9uQ2xpY2s6KCk9PmEuc2hvdyhDLCFqKX0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxMPyJTY2hlbWFzIjoiTW9kZWxzIiksaj9SZS5jcmVhdGVFbGVtZW50KHosbnVsbCk6UmUuY3JlYXRlRWxlbWVudChZLG51bGwpKSksUmUuY3JlYXRlRWxlbWVudCgkLHtpc09wZW5lZDpqfSxfLmVudHJ5U2VxKCkubWFwKCgoW19dKT0+e2NvbnN0IHc9Wy4uLkMsX10saj1XZSgpLkxpc3QodyksTD1zLnNwZWNSZXNvbHZlZFN1YnRyZWUodyksJD1zLnNwZWNKc29uKCkuZ2V0SW4odyksej16ZS5NYXAuaXNNYXAoTCk/TDpXZSgpLk1hcCgpLFk9emUuTWFwLmlzTWFwKCQpPyQ6V2UoKS5NYXAoKSxaPXouZ2V0KCJ0aXRsZSIpfHxZLmdldCgidGl0bGUiKXx8XyxlZT1pLmlzU2hvd24odywhMSk7ZWUmJjA9PT16LnNpemUmJlkuc2l6ZT4wJiZ0aGlzLnByb3BzLnNwZWNBY3Rpb25zLnJlcXVlc3RSZXNvbHZlZFN1YnRyZWUodyk7Y29uc3QgaWU9UmUuY3JlYXRlRWxlbWVudChCLHtuYW1lOl8sZXhwYW5kRGVwdGg6eCxzY2hlbWE6enx8V2UoKS5NYXAoKSxkaXNwbGF5TmFtZTpaLGZ1bGxQYXRoOncsc3BlY1BhdGg6aixnZXRDb21wb25lbnQ6byxzcGVjU2VsZWN0b3JzOnMsZ2V0Q29uZmlnczp1LGxheW91dFNlbGVjdG9yczppLGxheW91dEFjdGlvbnM6YSxpbmNsdWRlUmVhZE9ubHk6ITAsaW5jbHVkZVdyaXRlT25seTohMH0pLGFlPVJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsLWJveCJ9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsIG1vZGVsLXRpdGxlIn0sWikpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtpZDpgbW9kZWwtJHtffWAsY2xhc3NOYW1lOiJtb2RlbC1jb250YWluZXIiLGtleTpgbW9kZWxzLXNlY3Rpb24tJHtffWAsImRhdGEtbmFtZSI6XyxyZWY6dGhpcy5vbkxvYWRNb2RlbH0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWxzLWp1bXAtdG8tcGF0aCJ9LFJlLmNyZWF0ZUVsZW1lbnQoVSx7cGF0aDpqfSkpLFJlLmNyZWF0ZUVsZW1lbnQoVix7Y2xhc3NlczoibW9kZWwtYm94Iixjb2xsYXBzZWRDb250ZW50OnRoaXMuZ2V0Q29sbGFwc2VkQ29udGVudChfKSxvblRvZ2dsZTp0aGlzLmhhbmRsZVRvZ2dsZSx0aXRsZTphZSxkaXNwbGF5TmFtZTpaLG1vZGVsTmFtZTpfLHNwZWNQYXRoOmosbGF5b3V0U2VsZWN0b3JzOmksbGF5b3V0QWN0aW9uczphLGhpZGVTZWxmT25FeHBhbmQ6ITAsZXhwYW5kZWQ6eD4wJiZlZX0saWUpKX0pKS50b0FycmF5KCkpKX19Y29uc3QgZW51bV9tb2RlbD0oe3ZhbHVlOnMsZ2V0Q29tcG9uZW50Om99KT0+e2xldCBpPW8oIk1vZGVsQ29sbGFwc2UiKSxhPVJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsIkFycmF5IFsgIixzLmNvdW50KCksIiBdIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6InByb3AtZW51bSJ9LCJFbnVtOiIsUmUuY3JlYXRlRWxlbWVudCgiYnIiLG51bGwpLFJlLmNyZWF0ZUVsZW1lbnQoaSx7Y29sbGFwc2VkQ29udGVudDphfSwiWyAiLHMubWFwKFN0cmluZykuam9pbigiLCAiKSwiIF0iKSl9O2Z1bmN0aW9uIGlzQWJzb2x1dGVVcmwocyl7cmV0dXJuIHMubWF0Y2goL14oPzpbYS16XSs6KT9cL1wvL2kpfWZ1bmN0aW9uIGJ1aWxkQmFzZVVybChzLG8pe3JldHVybiBzP2lzQWJzb2x1dGVVcmwocyk/ZnVuY3Rpb24gYWRkUHJvdG9jb2wocyl7cmV0dXJuIHMubWF0Y2goL15cL1wvL2kpP2Ake3dpbmRvdy5sb2NhdGlvbi5wcm90b2NvbH0ke3N9YDpzfShzKTpuZXcgVVJMKHMsbykuaHJlZjpvfWZ1bmN0aW9uIHNhZmVCdWlsZFVybChzLG8se3NlbGVjdGVkU2VydmVyOmk9IiJ9PXt9KXt0cnl7cmV0dXJuIGZ1bmN0aW9uIGJ1aWxkVXJsKHMsbyx7c2VsZWN0ZWRTZXJ2ZXI6aT0iIn09e30pe2lmKCFzKXJldHVybjtpZihpc0Fic29sdXRlVXJsKHMpKXJldHVybiBzO2NvbnN0IGE9YnVpbGRCYXNlVXJsKGksbyk7cmV0dXJuIGlzQWJzb2x1dGVVcmwoYSk/bmV3IFVSTChzLGEpLmhyZWY6bmV3IFVSTChzLHdpbmRvdy5sb2NhdGlvbi5ocmVmKS5ocmVmfShzLG8se3NlbGVjdGVkU2VydmVyOml9KX1jYXRjaHtyZXR1cm59fWZ1bmN0aW9uIHNhbml0aXplVXJsKHMpe2lmKCJzdHJpbmciIT10eXBlb2Ygc3x8IiI9PT1zLnRyaW0oKSlyZXR1cm4iIjtjb25zdCBvPXMudHJpbSgpLGk9ImFib3V0OmJsYW5rIjt0cnl7Y29uc3Qgcz1gaHR0cHM6Ly9iYXNlJHtTdHJpbmcoTWF0aC5yYW5kb20oKSkuc2xpY2UoMil9YCxhPW5ldyBVUkwobyxzKSx1PWEucHJvdG9jb2wuc2xpY2UoMCwtMSk7cmV0dXJuWyJqYXZhc2NyaXB0IiwiZGF0YSIsInZic2NyaXB0Il0uaW5jbHVkZXModS50b0xvd2VyQ2FzZSgpKT9pOmEub3JpZ2luPT09cz9vLnN0YXJ0c1dpdGgoIi8iKT9gJHthLnBhdGhuYW1lfSR7YS5zZWFyY2h9JHthLmhhc2h9YDpvLnN0YXJ0c1dpdGgoIi4iKT9gLiR7YS5wYXRobmFtZX0ke2Euc2VhcmNofSR7YS5oYXNofWA6YCR7YS5wYXRobmFtZS5zdWJzdHJpbmcoMSl9JHthLnNlYXJjaH0ke2EuaGFzaH1gOlN0cmluZyhhKX1jYXRjaHtyZXR1cm4gaX19Y2xhc3MgT2JqZWN0TW9kZWwgZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7bGV0e3NjaGVtYTpzLG5hbWU6byxkaXNwbGF5TmFtZTppLGlzUmVmOmEsZ2V0Q29tcG9uZW50OnUsZ2V0Q29uZmlnczpfLGRlcHRoOncsb25Ub2dnbGU6eCxleHBhbmRlZDpDLHNwZWNQYXRoOmosLi4uTH09dGhpcy5wcm9wcyx7c3BlY1NlbGVjdG9yczpCLGV4cGFuZERlcHRoOiQsaW5jbHVkZVJlYWRPbmx5OlYsaW5jbHVkZVdyaXRlT25seTpVfT1MO2NvbnN0e2lzT0FTMzp6fT1CLFk9dz4yfHwyPT09dyYmIml0ZW1zIiE9PWoubGFzdCgpO2lmKCFzKXJldHVybiBudWxsO2NvbnN0e3Nob3dFeHRlbnNpb25zOlp9PV8oKSxlZT1aP2dldEV4dGVuc2lvbnMocyk6KDAsemUuTGlzdCkoKTtsZXQgaWU9cy5nZXQoImRlc2NyaXB0aW9uIiksYWU9cy5nZXQoInByb3BlcnRpZXMiKSxjZT1zLmdldCgiYWRkaXRpb25hbFByb3BlcnRpZXMiKSxsZT1zLmdldCgidGl0bGUiKXx8aXx8byxwZT1zLmdldCgicmVxdWlyZWQiKSxkZT1zLmZpbHRlcigoKHMsbyk9Pi0xIT09WyJtYXhQcm9wZXJ0aWVzIiwibWluUHJvcGVydGllcyIsIm51bGxhYmxlIiwiZXhhbXBsZSJdLmluZGV4T2YobykpKSxmZT1zLmdldCgiZGVwcmVjYXRlZCIpLHllPXMuZ2V0SW4oWyJleHRlcm5hbERvY3MiLCJ1cmwiXSksYmU9cy5nZXRJbihbImV4dGVybmFsRG9jcyIsImRlc2NyaXB0aW9uIl0pO2NvbnN0IF9lPXUoIkp1bXBUb1BhdGgiLCEwKSxTZT11KCJNYXJrZG93biIsITApLHdlPXUoIk1vZGVsIikseGU9dSgiTW9kZWxDb2xsYXBzZSIpLFBlPXUoIlByb3BlcnR5IiksVGU9dSgiTGluayIpLCRlPXUoIk1vZGVsRXh0ZW5zaW9ucyIpLEp1bXBUb1BhdGhTZWN0aW9uPSgpPT5SZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtb2RlbC1qdW1wLXRvLXBhdGgifSxSZS5jcmVhdGVFbGVtZW50KF9lLHtwYXRoOmp9KSkscWU9UmUuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCJ7IiksIi4uLiIsUmUuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCwifSIpLGE/UmUuY3JlYXRlRWxlbWVudChKdW1wVG9QYXRoU2VjdGlvbixudWxsKToiIiksV2U9Qi5pc09BUzMoKT9zLmdldCgiYWxsT2YiKTpudWxsLEhlPUIuaXNPQVMzKCk/cy5nZXQoImFueU9mIik6bnVsbCxZZT1CLmlzT0FTMygpP3MuZ2V0KCJvbmVPZiIpOm51bGwsWGU9Qi5pc09BUzMoKT9zLmdldCgibm90Iik6bnVsbCxRZT1sZSYmUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWwtdGl0bGUifSxhJiZzLmdldCgiJCRyZWYiKSYmUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpKbigpKCJtb2RlbC1oaW50Iix7Im1vZGVsLWhpbnQtLWVtYmVkZGVkIjpZfSl9LHMuZ2V0KCIkJHJlZiIpKSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtb2RlbC10aXRsZV9fdGV4dCJ9LGxlKSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsIn0sUmUuY3JlYXRlRWxlbWVudCh4ZSx7bW9kZWxOYW1lOm8sdGl0bGU6UWUsb25Ub2dnbGU6eCxleHBhbmRlZDohIUN8fHc8PSQsY29sbGFwc2VkQ29udGVudDpxZX0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiYnJhY2Utb3BlbiBvYmplY3QifSwieyIpLGE/UmUuY3JlYXRlRWxlbWVudChKdW1wVG9QYXRoU2VjdGlvbixudWxsKTpudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6ImlubmVyLW9iamVjdCJ9LFJlLmNyZWF0ZUVsZW1lbnQoInRhYmxlIix7Y2xhc3NOYW1lOiJtb2RlbCJ9LFJlLmNyZWF0ZUVsZW1lbnQoInRib2R5IixudWxsLGllP1JlLmNyZWF0ZUVsZW1lbnQoInRyIix7Y2xhc3NOYW1lOiJkZXNjcmlwdGlvbiJ9LFJlLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLCJkZXNjcmlwdGlvbjoiKSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KFNlLHtzb3VyY2U6aWV9KSkpOm51bGwseWUmJlJlLmNyZWF0ZUVsZW1lbnQoInRyIix7Y2xhc3NOYW1lOiJleHRlcm5hbC1kb2NzIn0sUmUuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsImV4dGVybmFsRG9jczoiKSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KFRlLHt0YXJnZXQ6Il9ibGFuayIsaHJlZjpzYW5pdGl6ZVVybCh5ZSl9LGJlfHx5ZSkpKSxmZT9SZS5jcmVhdGVFbGVtZW50KCJ0ciIse2NsYXNzTmFtZToicHJvcGVydHkifSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCwiZGVwcmVjYXRlZDoiKSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCwidHJ1ZSIpKTpudWxsLGFlJiZhZS5zaXplP2FlLmVudHJ5U2VxKCkuZmlsdGVyKCgoWyxzXSk9Pighcy5nZXQoInJlYWRPbmx5Iil8fFYpJiYoIXMuZ2V0KCJ3cml0ZU9ubHkiKXx8VSkpKS5tYXAoKChbcyxpXSk9PntsZXQgYT16KCkmJmkuZ2V0KCJkZXByZWNhdGVkIikseD16ZS5MaXN0LmlzTGlzdChwZSkmJnBlLmNvbnRhaW5zKHMpLEM9WyJwcm9wZXJ0eS1yb3ciXTtyZXR1cm4gYSYmQy5wdXNoKCJkZXByZWNhdGVkIikseCYmQy5wdXNoKCJyZXF1aXJlZCIpLFJlLmNyZWF0ZUVsZW1lbnQoInRyIix7a2V5OnMsY2xhc3NOYW1lOkMuam9pbigiICIpfSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxzLHgmJlJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6InN0YXIifSwiKiIpKSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KHdlLE1uKCkoe2tleTpgb2JqZWN0LSR7b30tJHtzfV8ke2l9YH0sTCx7cmVxdWlyZWQ6eCxnZXRDb21wb25lbnQ6dSxzcGVjUGF0aDpqLnB1c2goInByb3BlcnRpZXMiLHMpLGdldENvbmZpZ3M6XyxzY2hlbWE6aSxkZXB0aDp3KzF9KSkpKX0pKS50b0FycmF5KCk6bnVsbCwwPT09ZWUuc2l6ZT9udWxsOlJlLmNyZWF0ZUVsZW1lbnQoUmUuRnJhZ21lbnQsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJ0ciIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCwiwqAiKSksUmUuY3JlYXRlRWxlbWVudCgkZSx7ZXh0ZW5zaW9uczplZSxwcm9wQ2xhc3M6ImV4dGVuc2lvbiJ9KSksY2UmJmNlLnNpemU/UmUuY3JlYXRlRWxlbWVudCgidHIiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsIjwgKiA+OiIpLFJlLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQod2UsTW4oKSh7fSxMLHtyZXF1aXJlZDohMSxnZXRDb21wb25lbnQ6dSxzcGVjUGF0aDpqLnB1c2goImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiksZ2V0Q29uZmlnczpfLHNjaGVtYTpjZSxkZXB0aDp3KzF9KSkpKTpudWxsLFdlP1JlLmNyZWF0ZUVsZW1lbnQoInRyIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLCJhbGxPZiAtPiIpLFJlLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLFdlLm1hcCgoKHMsbyk9PlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleTpvfSxSZS5jcmVhdGVFbGVtZW50KHdlLE1uKCkoe30sTCx7cmVxdWlyZWQ6ITEsZ2V0Q29tcG9uZW50OnUsc3BlY1BhdGg6ai5wdXNoKCJhbGxPZiIsbyksZ2V0Q29uZmlnczpfLHNjaGVtYTpzLGRlcHRoOncrMX0pKSkpKSkpOm51bGwsSGU/UmUuY3JlYXRlRWxlbWVudCgidHIiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsImFueU9mIC0+IiksUmUuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsSGUubWFwKCgocyxvKT0+UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5Om99LFJlLmNyZWF0ZUVsZW1lbnQod2UsTW4oKSh7fSxMLHtyZXF1aXJlZDohMSxnZXRDb21wb25lbnQ6dSxzcGVjUGF0aDpqLnB1c2goImFueU9mIixvKSxnZXRDb25maWdzOl8sc2NoZW1hOnMsZGVwdGg6dysxfSkpKSkpKSk6bnVsbCxZZT9SZS5jcmVhdGVFbGVtZW50KCJ0ciIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCwib25lT2YgLT4iKSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxZZS5tYXAoKChzLG8pPT5SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6b30sUmUuY3JlYXRlRWxlbWVudCh3ZSxNbigpKHt9LEwse3JlcXVpcmVkOiExLGdldENvbXBvbmVudDp1LHNwZWNQYXRoOmoucHVzaCgib25lT2YiLG8pLGdldENvbmZpZ3M6XyxzY2hlbWE6cyxkZXB0aDp3KzF9KSkpKSkpKTpudWxsLFhlP1JlLmNyZWF0ZUVsZW1lbnQoInRyIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLCJub3QgLT4iKSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCh3ZSxNbigpKHt9LEwse3JlcXVpcmVkOiExLGdldENvbXBvbmVudDp1LHNwZWNQYXRoOmoucHVzaCgibm90IiksZ2V0Q29uZmlnczpfLHNjaGVtYTpYZSxkZXB0aDp3KzF9KSkpKSk6bnVsbCkpKSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJicmFjZS1jbG9zZSJ9LCJ9IikpLGRlLnNpemU/ZGUuZW50cnlTZXEoKS5tYXAoKChbcyxvXSk9PlJlLmNyZWF0ZUVsZW1lbnQoUGUse2tleTpgJHtzfS0ke299YCxwcm9wS2V5OnMscHJvcFZhbDpvLHByb3BDbGFzczoicHJvcGVydHkifSkpKTpudWxsKX19Y2xhc3MgQXJyYXlNb2RlbCBleHRlbmRzIFJlLkNvbXBvbmVudHtyZW5kZXIoKXtsZXR7Z2V0Q29tcG9uZW50OnMsZ2V0Q29uZmlnczpvLHNjaGVtYTppLGRlcHRoOmEsZXhwYW5kRGVwdGg6dSxuYW1lOl8sZGlzcGxheU5hbWU6dyxzcGVjUGF0aDp4fT10aGlzLnByb3BzLEM9aS5nZXQoImRlc2NyaXB0aW9uIiksaj1pLmdldCgiaXRlbXMiKSxMPWkuZ2V0KCJ0aXRsZSIpfHx3fHxfLEI9aS5maWx0ZXIoKChzLG8pPT4tMT09PVsidHlwZSIsIml0ZW1zIiwiZGVzY3JpcHRpb24iLCIkJHJlZiIsImV4dGVybmFsRG9jcyJdLmluZGV4T2YobykpKSwkPWkuZ2V0SW4oWyJleHRlcm5hbERvY3MiLCJ1cmwiXSksVj1pLmdldEluKFsiZXh0ZXJuYWxEb2NzIiwiZGVzY3JpcHRpb24iXSk7Y29uc3QgVT1zKCJNYXJrZG93biIsITApLHo9cygiTW9kZWxDb2xsYXBzZSIpLFk9cygiTW9kZWwiKSxaPXMoIlByb3BlcnR5IiksZWU9cygiTGluayIpLGllPUwmJlJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsLXRpdGxlIn0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWwtdGl0bGVfX3RleHQifSxMKSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsIn0sUmUuY3JlYXRlRWxlbWVudCh6LHt0aXRsZTppZSxleHBhbmRlZDphPD11LGNvbGxhcHNlZENvbnRlbnQ6IlsuLi5dIn0sIlsiLEIuc2l6ZT9CLmVudHJ5U2VxKCkubWFwKCgoW3Msb10pPT5SZS5jcmVhdGVFbGVtZW50KFose2tleTpgJHtzfS0ke299YCxwcm9wS2V5OnMscHJvcFZhbDpvLHByb3BDbGFzczoicHJvcGVydHkifSkpKTpudWxsLEM/UmUuY3JlYXRlRWxlbWVudChVLHtzb3VyY2U6Q30pOkIuc2l6ZT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im1hcmtkb3duIn0pOm51bGwsJCYmUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJleHRlcm5hbC1kb2NzIn0sUmUuY3JlYXRlRWxlbWVudChlZSx7dGFyZ2V0OiJfYmxhbmsiLGhyZWY6c2FuaXRpemVVcmwoJCl9LFZ8fCQpKSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoWSxNbigpKHt9LHRoaXMucHJvcHMse2dldENvbmZpZ3M6byxzcGVjUGF0aDp4LnB1c2goIml0ZW1zIiksbmFtZTpudWxsLHNjaGVtYTpqLHJlcXVpcmVkOiExLGRlcHRoOmErMX0pKSksIl0iKSl9fWNvbnN0IHRzPSJwcm9wZXJ0eSBwcmltaXRpdmUiO2NsYXNzIFByaW1pdGl2ZSBleHRlbmRzIFJlLkNvbXBvbmVudHtyZW5kZXIoKXtsZXR7c2NoZW1hOnMsZ2V0Q29tcG9uZW50Om8sZ2V0Q29uZmlnczppLG5hbWU6YSxkaXNwbGF5TmFtZTp1LGRlcHRoOl8sZXhwYW5kRGVwdGg6d309dGhpcy5wcm9wcztjb25zdHtzaG93RXh0ZW5zaW9uczp4fT1pKCk7aWYoIXN8fCFzLmdldClyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsKTtsZXQgQz1zLmdldCgidHlwZSIpLGo9cy5nZXQoImZvcm1hdCIpLEw9cy5nZXQoInhtbCIpLEI9cy5nZXQoImVudW0iKSwkPXMuZ2V0KCJ0aXRsZSIpfHx1fHxhLFY9cy5nZXQoImRlc2NyaXB0aW9uIik7Y29uc3QgVT1nZXRFeHRlbnNpb25zKHMpO2xldCB6PXMuZmlsdGVyKCgocyxvKT0+LTE9PT1bImVudW0iLCJ0eXBlIiwiZm9ybWF0IiwiZGVzY3JpcHRpb24iLCIkJHJlZiIsImV4dGVybmFsRG9jcyJdLmluZGV4T2YobykpKS5maWx0ZXJOb3QoKChzLG8pPT5VLmhhcyhvKSkpLFk9cy5nZXRJbihbImV4dGVybmFsRG9jcyIsInVybCJdKSxaPXMuZ2V0SW4oWyJleHRlcm5hbERvY3MiLCJkZXNjcmlwdGlvbiJdKTtjb25zdCBlZT1vKCJNYXJrZG93biIsITApLGllPW8oIkVudW1Nb2RlbCIpLGFlPW8oIlByb3BlcnR5IiksY2U9bygiTW9kZWxDb2xsYXBzZSIpLGxlPW8oIkxpbmsiKSxwZT1vKCJNb2RlbEV4dGVuc2lvbnMiKSxkZT0kJiZSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtb2RlbC10aXRsZSJ9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsLXRpdGxlX190ZXh0In0sJCkpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtb2RlbCJ9LFJlLmNyZWF0ZUVsZW1lbnQoY2Use3RpdGxlOmRlLGV4cGFuZGVkOl88PXcsY29sbGFwc2VkQ29udGVudDoiWy4uLl0ifSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJwcm9wIn0sYSYmXz4xJiZSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJwcm9wLW5hbWUifSwkKSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJwcm9wLXR5cGUifSxDKSxqJiZSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJwcm9wLWZvcm1hdCJ9LCIoJCIsaiwiKSIpLHouc2l6ZT96LmVudHJ5U2VxKCkubWFwKCgoW3Msb10pPT5SZS5jcmVhdGVFbGVtZW50KGFlLHtrZXk6YCR7c30tJHtvfWAscHJvcEtleTpzLHByb3BWYWw6byxwcm9wQ2xhc3M6dHN9KSkpOm51bGwseCYmVS5zaXplPjA/UmUuY3JlYXRlRWxlbWVudChwZSx7ZXh0ZW5zaW9uczpVLHByb3BDbGFzczpgJHt0c30gZXh0ZW5zaW9uYH0pOm51bGwsVj9SZS5jcmVhdGVFbGVtZW50KGVlLHtzb3VyY2U6Vn0pOm51bGwsWSYmUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJleHRlcm5hbC1kb2NzIn0sUmUuY3JlYXRlRWxlbWVudChsZSx7dGFyZ2V0OiJfYmxhbmsiLGhyZWY6c2FuaXRpemVVcmwoWSl9LFp8fFkpKSxMJiZMLnNpemU/UmUuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJiciIsbnVsbCksUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTp0c30sInhtbDoiKSxMLmVudHJ5U2VxKCkubWFwKCgoW3Msb10pPT5SZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7a2V5OmAke3N9LSR7b31gLGNsYXNzTmFtZTp0c30sUmUuY3JlYXRlRWxlbWVudCgiYnIiLG51bGwpLCLCoMKgwqAiLHMsIjogIixTdHJpbmcobykpKSkudG9BcnJheSgpKTpudWxsLEImJlJlLmNyZWF0ZUVsZW1lbnQoaWUse3ZhbHVlOkIsZ2V0Q29tcG9uZW50Om99KSkpKX19Y2xhc3MgU2NoZW1lcyBleHRlbmRzIFJlLkNvbXBvbmVudHtVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCl7bGV0e3NjaGVtZXM6c309dGhpcy5wcm9wczt0aGlzLnNldFNjaGVtZShzLmZpcnN0KCkpfVVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHMpe3RoaXMucHJvcHMuY3VycmVudFNjaGVtZSYmcy5zY2hlbWVzLmluY2x1ZGVzKHRoaXMucHJvcHMuY3VycmVudFNjaGVtZSl8fHRoaXMuc2V0U2NoZW1lKHMuc2NoZW1lcy5maXJzdCgpKX1vbkNoYW5nZT1zPT57dGhpcy5zZXRTY2hlbWUocy50YXJnZXQudmFsdWUpfTtzZXRTY2hlbWU9cz0+e2xldHtwYXRoOm8sbWV0aG9kOmksc3BlY0FjdGlvbnM6YX09dGhpcy5wcm9wczthLnNldFNjaGVtZShzLG8saSl9O3JlbmRlcigpe2xldHtzY2hlbWVzOnMsY3VycmVudFNjaGVtZTpvfT10aGlzLnByb3BzO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6InNjaGVtZXMifSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJzY2hlbWVzLXRpdGxlIn0sIlNjaGVtZXMiKSxSZS5jcmVhdGVFbGVtZW50KCJzZWxlY3QiLHtvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlLHZhbHVlOm8saWQ6InNjaGVtZXMifSxzLnZhbHVlU2VxKCkubWFwKChzPT5SZS5jcmVhdGVFbGVtZW50KCJvcHRpb24iLHt2YWx1ZTpzLGtleTpzfSxzKSkpLnRvQXJyYXkoKSkpfX1jbGFzcyBTY2hlbWVzQ29udGFpbmVyIGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e3NwZWNBY3Rpb25zOnMsc3BlY1NlbGVjdG9yczpvLGdldENvbXBvbmVudDppfT10aGlzLnByb3BzLGE9by5vcGVyYXRpb25TY2hlbWUoKSx1PW8uc2NoZW1lcygpLF89aSgic2NoZW1lcyIpO3JldHVybiB1JiZ1LnNpemU/UmUuY3JlYXRlRWxlbWVudChfLHtjdXJyZW50U2NoZW1lOmEsc2NoZW1lczp1LHNwZWNBY3Rpb25zOnN9KTpudWxsfX12YXIgcnM9X193ZWJwYWNrX3JlcXVpcmVfXygyNDY3NyksbnM9X193ZWJwYWNrX3JlcXVpcmVfXy5uKHJzKTtjb25zdCBzcz17dmFsdWU6IiIsb25DaGFuZ2U6KCk9Pnt9LHNjaGVtYTp7fSxrZXlOYW1lOiIiLHJlcXVpcmVkOiExLGVycm9yczooMCx6ZS5MaXN0KSgpfTtjbGFzcyBKc29uU2NoZW1hRm9ybSBleHRlbmRzIFJlLkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXNzO2NvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7ZGlzcGF0Y2hJbml0aWFsVmFsdWU6cyx2YWx1ZTpvLG9uQ2hhbmdlOml9PXRoaXMucHJvcHM7cz9pKG8pOiExPT09cyYmaSgiIil9cmVuZGVyKCl7bGV0e3NjaGVtYTpzLGVycm9yczpvLHZhbHVlOmksb25DaGFuZ2U6YSxnZXRDb21wb25lbnQ6dSxmbjpfLGRpc2FibGVkOnd9PXRoaXMucHJvcHM7Y29uc3QgeD1zJiZzLmdldD9zLmdldCgiZm9ybWF0Iik6bnVsbCxDPXMmJnMuZ2V0P3MuZ2V0KCJ0eXBlIik6bnVsbCxqPV8uZ2V0U2NoZW1hT2JqZWN0VHlwZShzKSxMPV8uaXNGaWxlVXBsb2FkSW50ZW5kZWQocyk7bGV0IGdldENvbXBvbmVudFNpbGVudGx5PXM9PnUocywhMSx7ZmFpbFNpbGVudGx5OiEwfSksQj1DP2dldENvbXBvbmVudFNpbGVudGx5KHg/YEpzb25TY2hlbWFfJHtDfV8ke3h9YDpgSnNvblNjaGVtYV8ke0N9YCk6dSgiSnNvblNjaGVtYV9zdHJpbmciKTtyZXR1cm4gTHx8IXplLkxpc3QuaXNMaXN0KEMpfHwiYXJyYXkiIT09aiYmIm9iamVjdCIhPT1qfHwoQj11KCJKc29uU2NoZW1hX29iamVjdCIpKSxCfHwoQj11KCJKc29uU2NoZW1hX3N0cmluZyIpKSxSZS5jcmVhdGVFbGVtZW50KEIsTW4oKSh7fSx0aGlzLnByb3BzLHtlcnJvcnM6byxmbjpfLGdldENvbXBvbmVudDp1LHZhbHVlOmksb25DaGFuZ2U6YSxzY2hlbWE6cyxkaXNhYmxlZDp3fSkpfX1jbGFzcyBKc29uU2NoZW1hX3N0cmluZyBleHRlbmRzIFJlLkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXNzO29uQ2hhbmdlPXM9Pntjb25zdCBvPXRoaXMucHJvcHMuc2NoZW1hJiYiZmlsZSI9PT10aGlzLnByb3BzLnNjaGVtYS5nZXQoInR5cGUiKT9zLnRhcmdldC5maWxlc1swXTpzLnRhcmdldC52YWx1ZTt0aGlzLnByb3BzLm9uQ2hhbmdlKG8sdGhpcy5wcm9wcy5rZXlOYW1lKX07b25FbnVtQ2hhbmdlPXM9PnRoaXMucHJvcHMub25DaGFuZ2Uocyk7cmVuZGVyKCl7bGV0e2dldENvbXBvbmVudDpzLHZhbHVlOm8sc2NoZW1hOmksZXJyb3JzOmEscmVxdWlyZWQ6dSxkZXNjcmlwdGlvbjpfLGRpc2FibGVkOnd9PXRoaXMucHJvcHM7Y29uc3QgeD1pJiZpLmdldD9pLmdldCgiZW51bSIpOm51bGwsQz1pJiZpLmdldD9pLmdldCgiZm9ybWF0Iik6bnVsbCxqPWkmJmkuZ2V0P2kuZ2V0KCJ0eXBlIik6bnVsbCxMPWkmJmkuZ2V0P2kuZ2V0KCJpbiIpOm51bGw7aWYobz8oaXNJbW11dGFibGUobyl8fCJvYmplY3QiPT10eXBlb2YgbykmJihvPXN0cmluZ2lmeShvKSk6bz0iIixhPWEudG9KUz9hLnRvSlMoKTpbXSx4KXtjb25zdCBpPXMoIlNlbGVjdCIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KGkse2NsYXNzTmFtZTphLmxlbmd0aD8iaW52YWxpZCI6IiIsdGl0bGU6YS5sZW5ndGg/YToiIixhbGxvd2VkVmFsdWVzOlsuLi54XSx2YWx1ZTpvLGFsbG93RW1wdHlWYWx1ZTohdSxkaXNhYmxlZDp3LG9uQ2hhbmdlOnRoaXMub25FbnVtQ2hhbmdlfSl9Y29uc3QgQj13fHxMJiYiZm9ybURhdGEiPT09TCYmISgiRm9ybURhdGEiaW4gd2luZG93KSwkPXMoIklucHV0Iik7cmV0dXJuIGomJiJmaWxlIj09PWo/UmUuY3JlYXRlRWxlbWVudCgkLHt0eXBlOiJmaWxlIixjbGFzc05hbWU6YS5sZW5ndGg/ImludmFsaWQiOiIiLHRpdGxlOmEubGVuZ3RoP2E6IiIsb25DaGFuZ2U6dGhpcy5vbkNoYW5nZSxkaXNhYmxlZDpCfSk6UmUuY3JlYXRlRWxlbWVudChucygpLHt0eXBlOkMmJiJwYXNzd29yZCI9PT1DPyJwYXNzd29yZCI6InRleHQiLGNsYXNzTmFtZTphLmxlbmd0aD8iaW52YWxpZCI6IiIsdGl0bGU6YS5sZW5ndGg/YToiIix2YWx1ZTpvLG1pbkxlbmd0aDowLGRlYm91bmNlVGltZW91dDozNTAscGxhY2Vob2xkZXI6XyxvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlLGRpc2FibGVkOkJ9KX19Y2xhc3MgSnNvblNjaGVtYV9hcnJheSBleHRlbmRzIFJlLlB1cmVDb21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz1zcztjb25zdHJ1Y3RvcihzLG8pe3N1cGVyKHMsbyksdGhpcy5zdGF0ZT17dmFsdWU6dmFsdWVPckVtcHR5TGlzdChzLnZhbHVlKSxzY2hlbWE6cy5zY2hlbWF9fVVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHMpe2NvbnN0IG89dmFsdWVPckVtcHR5TGlzdChzLnZhbHVlKTtvIT09dGhpcy5zdGF0ZS52YWx1ZSYmdGhpcy5zZXRTdGF0ZSh7dmFsdWU6b30pLHMuc2NoZW1hIT09dGhpcy5zdGF0ZS5zY2hlbWEmJnRoaXMuc2V0U3RhdGUoe3NjaGVtYTpzLnNjaGVtYX0pfW9uQ2hhbmdlPSgpPT57dGhpcy5wcm9wcy5vbkNoYW5nZSh0aGlzLnN0YXRlLnZhbHVlKX07b25JdGVtQ2hhbmdlPShzLG8pPT57dGhpcy5zZXRTdGF0ZSgoKHt2YWx1ZTppfSk9Pih7dmFsdWU6aS5zZXQobyxzKX0pKSx0aGlzLm9uQ2hhbmdlKX07cmVtb3ZlSXRlbT1zPT57dGhpcy5zZXRTdGF0ZSgoKHt2YWx1ZTpvfSk9Pih7dmFsdWU6by5kZWxldGUocyl9KSksdGhpcy5vbkNoYW5nZSl9O2FkZEl0ZW09KCk9Pntjb25zdHtmbjpzfT10aGlzLnByb3BzO2xldCBvPXZhbHVlT3JFbXB0eUxpc3QodGhpcy5zdGF0ZS52YWx1ZSk7dGhpcy5zZXRTdGF0ZSgoKCk9Pih7dmFsdWU6by5wdXNoKHMuZ2V0U2FtcGxlU2NoZW1hKHRoaXMuc3RhdGUuc2NoZW1hLmdldCgiaXRlbXMiKSwhMSx7aW5jbHVkZVdyaXRlT25seTohMH0pKX0pKSx0aGlzLm9uQ2hhbmdlKX07b25FbnVtQ2hhbmdlPXM9Pnt0aGlzLnNldFN0YXRlKCgoKT0+KHt2YWx1ZTpzfSkpLHRoaXMub25DaGFuZ2UpfTtyZW5kZXIoKXtsZXR7Z2V0Q29tcG9uZW50OnMscmVxdWlyZWQ6byxzY2hlbWE6aSxlcnJvcnM6YSxmbjp1LGRpc2FibGVkOl99PXRoaXMucHJvcHM7YT1hLnRvSlM/YS50b0pTKCk6QXJyYXkuaXNBcnJheShhKT9hOltdO2NvbnN0IHc9YS5maWx0ZXIoKHM9PiJzdHJpbmciPT10eXBlb2YgcykpLHg9YS5maWx0ZXIoKHM9PnZvaWQgMCE9PXMubmVlZFJlbW92ZSkpLm1hcCgocz0+cy5lcnJvcikpLEM9dGhpcy5zdGF0ZS52YWx1ZSxqPSEhKEMmJkMuY291bnQmJkMuY291bnQoKT4wKSxMPWkuZ2V0SW4oWyJpdGVtcyIsImVudW0iXSksQj1pLmdldCgiaXRlbXMiKSwkPXUuZ2V0U2NoZW1hT2JqZWN0VHlwZShCKSxWPXUuZ2V0U2NoZW1hT2JqZWN0VHlwZUxhYmVsKEIpLFU9aS5nZXRJbihbIml0ZW1zIiwiZm9ybWF0Il0pLHo9aS5nZXQoIml0ZW1zIik7bGV0IFksWj0hMSxlZT0iZmlsZSI9PT0kfHwic3RyaW5nIj09PSQmJiJiaW5hcnkiPT09VTtpZigkJiZVP1k9cyhgSnNvblNjaGVtYV8keyR9XyR7VX1gKToiYm9vbGVhbiIhPT0kJiYiYXJyYXkiIT09JCYmIm9iamVjdCIhPT0kfHwoWT1zKGBKc29uU2NoZW1hXyR7JH1gKSksIXplLkxpc3QuaXNMaXN0KEI/LmdldCgidHlwZSIpKXx8ImFycmF5IiE9PSQmJiJvYmplY3QiIT09JHx8KFk9cygiSnNvblNjaGVtYV9vYmplY3QiKSksWXx8ZWV8fChaPSEwKSxMKXtjb25zdCBpPXMoIlNlbGVjdCIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KGkse2NsYXNzTmFtZTphLmxlbmd0aD8iaW52YWxpZCI6IiIsdGl0bGU6YS5sZW5ndGg/YToiIixtdWx0aXBsZTohMCx2YWx1ZTpDLGRpc2FibGVkOl8sYWxsb3dlZFZhbHVlczpMLGFsbG93RW1wdHlWYWx1ZTohbyxvbkNoYW5nZTp0aGlzLm9uRW51bUNoYW5nZX0pfWNvbnN0IGllPXMoIkJ1dHRvbiIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLWFycmF5In0saj9DLm1hcCgoKG8saSk9Pntjb25zdCB3PSgwLHplLmZyb21KUykoWy4uLmEuZmlsdGVyKChzPT5zLmluZGV4PT09aSkpLm1hcCgocz0+cy5lcnJvcikpXSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleTppLGNsYXNzTmFtZToianNvbi1zY2hlbWEtZm9ybS1pdGVtIn0sZWU/UmUuY3JlYXRlRWxlbWVudChKc29uU2NoZW1hQXJyYXlJdGVtRmlsZSx7dmFsdWU6byxvbkNoYW5nZTpzPT50aGlzLm9uSXRlbUNoYW5nZShzLGkpLGRpc2FibGVkOl8sZXJyb3JzOncsZ2V0Q29tcG9uZW50OnN9KTpaP1JlLmNyZWF0ZUVsZW1lbnQoSnNvblNjaGVtYUFycmF5SXRlbVRleHQse3ZhbHVlOm8sb25DaGFuZ2U6cz0+dGhpcy5vbkl0ZW1DaGFuZ2UocyxpKSxkaXNhYmxlZDpfLGVycm9yczp3fSk6UmUuY3JlYXRlRWxlbWVudChZLE1uKCkoe30sdGhpcy5wcm9wcyx7dmFsdWU6byxvbkNoYW5nZTpzPT50aGlzLm9uSXRlbUNoYW5nZShzLGkpLGRpc2FibGVkOl8sZXJyb3JzOncsc2NoZW1hOnosZ2V0Q29tcG9uZW50OnMsZm46dX0pKSxfP251bGw6UmUuY3JlYXRlRWxlbWVudChpZSx7Y2xhc3NOYW1lOmBidG4gYnRuLXNtIGpzb24tc2NoZW1hLWZvcm0taXRlbS1yZW1vdmUgJHt4Lmxlbmd0aD8iaW52YWxpZCI6bnVsbH1gLHRpdGxlOngubGVuZ3RoP3g6IiIsb25DbGljazooKT0+dGhpcy5yZW1vdmVJdGVtKGkpfSwiIC0gIikpfSkpOm51bGwsXz9udWxsOlJlLmNyZWF0ZUVsZW1lbnQoaWUse2NsYXNzTmFtZTpgYnRuIGJ0bi1zbSBqc29uLXNjaGVtYS1mb3JtLWl0ZW0tYWRkICR7dy5sZW5ndGg/ImludmFsaWQiOm51bGx9YCx0aXRsZTp3Lmxlbmd0aD93OiIiLG9uQ2xpY2s6dGhpcy5hZGRJdGVtfSwiQWRkICIsViwiIGl0ZW0iKSl9fWNsYXNzIEpzb25TY2hlbWFBcnJheUl0ZW1UZXh0IGV4dGVuZHMgUmUuQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9c3M7b25DaGFuZ2U9cz0+e2NvbnN0IG89cy50YXJnZXQudmFsdWU7dGhpcy5wcm9wcy5vbkNoYW5nZShvLHRoaXMucHJvcHMua2V5TmFtZSl9O3JlbmRlcigpe2xldHt2YWx1ZTpzLGVycm9yczpvLGRlc2NyaXB0aW9uOmksZGlzYWJsZWQ6YX09dGhpcy5wcm9wcztyZXR1cm4gcz8oaXNJbW11dGFibGUocyl8fCJvYmplY3QiPT10eXBlb2YgcykmJihzPXN0cmluZ2lmeShzKSk6cz0iIixvPW8udG9KUz9vLnRvSlMoKTpbXSxSZS5jcmVhdGVFbGVtZW50KG5zKCkse3R5cGU6InRleHQiLGNsYXNzTmFtZTpvLmxlbmd0aD8iaW52YWxpZCI6IiIsdGl0bGU6by5sZW5ndGg/bzoiIix2YWx1ZTpzLG1pbkxlbmd0aDowLGRlYm91bmNlVGltZW91dDozNTAscGxhY2Vob2xkZXI6aSxvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlLGRpc2FibGVkOmF9KX19Y2xhc3MgSnNvblNjaGVtYUFycmF5SXRlbUZpbGUgZXh0ZW5kcyBSZS5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz1zcztvbkZpbGVDaGFuZ2U9cz0+e2NvbnN0IG89cy50YXJnZXQuZmlsZXNbMF07dGhpcy5wcm9wcy5vbkNoYW5nZShvLHRoaXMucHJvcHMua2V5TmFtZSl9O3JlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6cyxlcnJvcnM6byxkaXNhYmxlZDppfT10aGlzLnByb3BzO2NvbnN0IGE9cygiSW5wdXQiKSx1PWl8fCEoIkZvcm1EYXRhImluIHdpbmRvdyk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoYSx7dHlwZToiZmlsZSIsY2xhc3NOYW1lOm8ubGVuZ3RoPyJpbnZhbGlkIjoiIix0aXRsZTpvLmxlbmd0aD9vOiIiLG9uQ2hhbmdlOnRoaXMub25GaWxlQ2hhbmdlLGRpc2FibGVkOnV9KX19Y2xhc3MgSnNvblNjaGVtYV9ib29sZWFuIGV4dGVuZHMgUmUuQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9c3M7b25FbnVtQ2hhbmdlPXM9PnRoaXMucHJvcHMub25DaGFuZ2Uocyk7cmVuZGVyKCl7bGV0e2dldENvbXBvbmVudDpzLHZhbHVlOm8sZXJyb3JzOmksc2NoZW1hOmEscmVxdWlyZWQ6dSxkaXNhYmxlZDpffT10aGlzLnByb3BzO2k9aS50b0pTP2kudG9KUygpOltdO2xldCB3PWEmJmEuZ2V0P2EuZ2V0KCJlbnVtIik6bnVsbCx4PSF3fHwhdSxDPSF3JiZbInRydWUiLCJmYWxzZSJdO2NvbnN0IGo9cygiU2VsZWN0Iik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoaix7Y2xhc3NOYW1lOmkubGVuZ3RoPyJpbnZhbGlkIjoiIix0aXRsZTppLmxlbmd0aD9pOiIiLHZhbHVlOlN0cmluZyhvKSxkaXNhYmxlZDpfLGFsbG93ZWRWYWx1ZXM6dz9bLi4ud106QyxhbGxvd0VtcHR5VmFsdWU6eCxvbkNoYW5nZTp0aGlzLm9uRW51bUNoYW5nZX0pfX1jb25zdCBzdHJpbmdpZnlPYmplY3RFcnJvcnM9cz0+cy5tYXAoKHM9Pntjb25zdCBvPXZvaWQgMCE9PXMucHJvcEtleT9zLnByb3BLZXk6cy5pbmRleDtsZXQgaT0ic3RyaW5nIj09dHlwZW9mIHM/czoic3RyaW5nIj09dHlwZW9mIHMuZXJyb3I/cy5lcnJvcjpudWxsO2lmKCFvJiZpKXJldHVybiBpO2xldCBhPXMuZXJyb3IsdT1gLyR7cy5wcm9wS2V5fWA7Zm9yKDsib2JqZWN0Ij09dHlwZW9mIGE7KXtjb25zdCBzPXZvaWQgMCE9PWEucHJvcEtleT9hLnByb3BLZXk6YS5pbmRleDtpZih2b2lkIDA9PT1zKWJyZWFrO2lmKHUrPWAvJHtzfWAsIWEuZXJyb3IpYnJlYWs7YT1hLmVycm9yfXJldHVybmAke3V9OiAke2F9YH0pKTtjbGFzcyBKc29uU2NoZW1hX29iamVjdCBleHRlbmRzIFJlLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoKXtzdXBlcigpfXN0YXRpYyBkZWZhdWx0UHJvcHM9c3M7b25DaGFuZ2U9cz0+e3RoaXMucHJvcHMub25DaGFuZ2Uocyl9O2hhbmRsZU9uQ2hhbmdlPXM9Pntjb25zdCBvPXMudGFyZ2V0LnZhbHVlO3RoaXMub25DaGFuZ2Uobyl9O3JlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6cyx2YWx1ZTpvLGVycm9yczppLGRpc2FibGVkOmF9PXRoaXMucHJvcHM7Y29uc3QgdT1zKCJUZXh0QXJlYSIpO3JldHVybiBpPWkudG9KUz9pLnRvSlMoKTpBcnJheS5pc0FycmF5KGkpP2k6W10sUmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQodSx7Y2xhc3NOYW1lOkpuKCkoe2ludmFsaWQ6aS5sZW5ndGh9KSx0aXRsZTppLmxlbmd0aD9zdHJpbmdpZnlPYmplY3RFcnJvcnMoaSkuam9pbigiLCAiKToiIix2YWx1ZTpzdHJpbmdpZnkobyksZGlzYWJsZWQ6YSxvbkNoYW5nZTp0aGlzLmhhbmRsZU9uQ2hhbmdlfSkpfX1mdW5jdGlvbiB2YWx1ZU9yRW1wdHlMaXN0KHMpe3JldHVybiB6ZS5MaXN0LmlzTGlzdChzKT9zOkFycmF5LmlzQXJyYXkocyk/KDAsemUuZnJvbUpTKShzKTooMCx6ZS5MaXN0KSgpfWNvbnN0IE1vZGVsRXh0ZW5zaW9ucz0oe2V4dGVuc2lvbnM6cyxwcm9wQ2xhc3M6bz0iIn0pPT5zLmVudHJ5U2VxKCkubWFwKCgoW3MsaV0pPT57Y29uc3QgYT1pbW11dGFibGVUb0pTKGkpPz9udWxsO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJ0ciIse2tleTpzLGNsYXNzTmFtZTpvfSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxzKSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxKU09OLnN0cmluZ2lmeShhKSkpfSkpLnRvQXJyYXkoKTt2YXIgb3M9X193ZWJwYWNrX3JlcXVpcmVfXygxMTMzMSksYXM9X193ZWJwYWNrX3JlcXVpcmVfXy5uKG9zKTtjb25zdCBoYXNTY2hlbWFUeXBlPShzLG8pPT57Y29uc3QgaT16ZS5NYXAuaXNNYXAocyk7aWYoIWkmJiFhcygpKHMpKXJldHVybiExO2NvbnN0IGE9aT9zLmdldCgidHlwZSIpOnMudHlwZTtyZXR1cm4gbz09PWF8fEFycmF5LmlzQXJyYXkobykmJm8uaW5jbHVkZXMoYSl9LGdldFR5cGU9KHMsbz1uZXcgV2Vha1NldCk9PntpZihudWxsPT1zKXJldHVybiJhbnkiO2lmKG8uaGFzKHMpKXJldHVybiJhbnkiO28uYWRkKHMpO2NvbnN0e3R5cGU6aSxpdGVtczphfT1zO3JldHVybiBPYmplY3QuaGFzT3duKHMsIml0ZW1zIik/KCgpPT57aWYoYSlyZXR1cm5gYXJyYXk8JHtnZXRUeXBlKGEsbyl9PmA7cmV0dXJuImFycmF5PGFueT4ifSkoKTppfSxnZXRTY2hlbWFPYmplY3RUeXBlTGFiZWw9cz0+Z2V0VHlwZShpbW11dGFibGVUb0pTKHMpKSxqc29uX3NjaGVtYV81PSgpPT4oe2NvbXBvbmVudHM6e21vZGVsRXhhbXBsZTptb2RlbF9leGFtcGxlLE1vZGVsV3JhcHBlcixNb2RlbENvbGxhcHNlLE1vZGVsLE1vZGVscyxFbnVtTW9kZWw6ZW51bV9tb2RlbCxPYmplY3RNb2RlbCxBcnJheU1vZGVsLFByaW1pdGl2ZU1vZGVsOlByaW1pdGl2ZSxNb2RlbEV4dGVuc2lvbnMsc2NoZW1lczpTY2hlbWVzLFNjaGVtZXNDb250YWluZXIsLi4uVn0sZm46e2hhc1NjaGVtYVR5cGUsZ2V0U2NoZW1hT2JqZWN0VHlwZUxhYmVsfX0pO3ZhciBjcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDE5MTIzKSxscz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oY3MpLHVzPV9fd2VicGFja19yZXF1aXJlX18oNDE4NTkpLHBzPV9fd2VicGFja19yZXF1aXJlX18ubih1cyksaHM9X193ZWJwYWNrX3JlcXVpcmVfXyg2MjE5MyksZHM9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGhzKTtjb25zdCBzaGFsbG93QXJyYXlFcXVhbHM9cz0+bz0+QXJyYXkuaXNBcnJheShzKSYmQXJyYXkuaXNBcnJheShvKSYmcy5sZW5ndGg9PT1vLmxlbmd0aCYmcy5ldmVyeSgoKHMsaSk9PnM9PT1vW2ldKSksbGlzdD0oLi4ucyk9PnM7Y2xhc3MgQ2FjaGUgZXh0ZW5kcyBNYXB7ZGVsZXRlKHMpe2NvbnN0IG89QXJyYXkuZnJvbSh0aGlzLmtleXMoKSkuZmluZChzaGFsbG93QXJyYXlFcXVhbHMocykpO3JldHVybiBzdXBlci5kZWxldGUobyl9Z2V0KHMpe2NvbnN0IG89QXJyYXkuZnJvbSh0aGlzLmtleXMoKSkuZmluZChzaGFsbG93QXJyYXlFcXVhbHMocykpO3JldHVybiBzdXBlci5nZXQobyl9aGFzKHMpe3JldHVybi0xIT09QXJyYXkuZnJvbSh0aGlzLmtleXMoKSkuZmluZEluZGV4KHNoYWxsb3dBcnJheUVxdWFscyhzKSl9fWNvbnN0IHV0aWxzX21lbW9pemVOPShzLG89bGlzdCk9Pntjb25zdHtDYWNoZTppfT1wdCgpO3B0KCkuQ2FjaGU9Q2FjaGU7Y29uc3QgYT1wdCgpKHMsbyk7cmV0dXJuIHB0KCkuQ2FjaGU9aSxhfSxmcz17c3RyaW5nOnM9PnMucGF0dGVybj8ocz0+e3RyeXtjb25zdCBvPS8oPzw9KD88IVxcKVx7KShcZHszLH0pKD89XH0pfCg/PD0oPzwhXFwpXHtcZCosKShcZHszLH0pKD89XH0pfCg/PD0oPzwhXFwpXHspKFxkezMsfSkoPz0sXGQqXH0pL2csaT1zLnJlcGxhY2UobywiMTAwIiksYT1uZXcocHMoKSkoaSk7cmV0dXJuIGEubWF4PTEwMCxhLmdlbigpfWNhdGNoKHMpe3JldHVybiJzdHJpbmcifX0pKHMucGF0dGVybik6InN0cmluZyIsc3RyaW5nX2VtYWlsOigpPT4idXNlckBleGFtcGxlLmNvbSIsInN0cmluZ19kYXRlLXRpbWUiOigpPT4obmV3IERhdGUpLnRvSVNPU3RyaW5nKCksc3RyaW5nX2RhdGU6KCk9PihuZXcgRGF0ZSkudG9JU09TdHJpbmcoKS5zdWJzdHJpbmcoMCwxMCksc3RyaW5nX3RpbWU6KCk9PihuZXcgRGF0ZSkudG9JU09TdHJpbmcoKS5zdWJzdHJpbmcoMTEpLHN0cmluZ191dWlkOigpPT4iM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2IixzdHJpbmdfaG9zdG5hbWU6KCk9PiJleGFtcGxlLmNvbSIsc3RyaW5nX2lwdjQ6KCk9PiIxOTguNTEuMTAwLjQyIixzdHJpbmdfaXB2NjooKT0+IjIwMDE6MGRiODo1Yjk2OjAwMDA6MDAwMDo0MjZmOjhlMTc6NjQyYSIsbnVtYmVyOigpPT4wLG51bWJlcl9mbG9hdDooKT0+MCxpbnRlZ2VyOigpPT4wLGJvb2xlYW46cz0+ImJvb2xlYW4iIT10eXBlb2Ygcy5kZWZhdWx0fHxzLmRlZmF1bHR9LHByaW1pdGl2ZT1zPT57cz1vYmplY3RpZnkocyk7bGV0e3R5cGU6byxmb3JtYXQ6aX09cyxhPWZzW2Ake299XyR7aX1gXXx8ZnNbb107cmV0dXJuIGlzRnVuYyhhKT9hKHMpOiJVbmtub3duIFR5cGU6ICIrcy50eXBlfSxzYW5pdGl6ZVJlZj1zPT5kZWVwbHlTdHJpcEtleShzLCIkJHJlZiIsKHM9PiJzdHJpbmciPT10eXBlb2YgcyYmcy5pbmRleE9mKCIjIik+LTEpKSxtcz1bIm1heFByb3BlcnRpZXMiLCJtaW5Qcm9wZXJ0aWVzIl0sZ3M9WyJtaW5JdGVtcyIsIm1heEl0ZW1zIl0seXM9WyJtaW5pbXVtIiwibWF4aW11bSIsImV4Y2x1c2l2ZU1pbmltdW0iLCJleGNsdXNpdmVNYXhpbXVtIl0sdnM9WyJtaW5MZW5ndGgiLCJtYXhMZW5ndGgiXSxtZXJnZUpzb25TY2hlbWE9KHMsbyxpPXt9KT0+e2NvbnN0IGE9ey4uLnN9O2lmKFsiZXhhbXBsZSIsImRlZmF1bHQiLCJlbnVtIiwieG1sIiwidHlwZSIsLi4ubXMsLi4uZ3MsLi4ueXMsLi4udnNdLmZvckVhY2goKHM9PihzPT57dm9pZCAwPT09YVtzXSYmdm9pZCAwIT09b1tzXSYmKGFbc109b1tzXSl9KShzKSkpLHZvaWQgMCE9PW8ucmVxdWlyZWQmJkFycmF5LmlzQXJyYXkoby5yZXF1aXJlZCkmJih2b2lkIDAhPT1hLnJlcXVpcmVkJiZhLnJlcXVpcmVkLmxlbmd0aHx8KGEucmVxdWlyZWQ9W10pLG8ucmVxdWlyZWQuZm9yRWFjaCgocz0+e2EucmVxdWlyZWQuaW5jbHVkZXMocyl8fGEucmVxdWlyZWQucHVzaChzKX0pKSksby5wcm9wZXJ0aWVzKXthLnByb3BlcnRpZXN8fChhLnByb3BlcnRpZXM9e30pO2xldCBzPW9iamVjdGlmeShvLnByb3BlcnRpZXMpO2ZvcihsZXQgdSBpbiBzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLHUpJiYoc1t1XSYmc1t1XS5kZXByZWNhdGVkfHxzW3VdJiZzW3VdLnJlYWRPbmx5JiYhaS5pbmNsdWRlUmVhZE9ubHl8fHNbdV0mJnNbdV0ud3JpdGVPbmx5JiYhaS5pbmNsdWRlV3JpdGVPbmx5fHxhLnByb3BlcnRpZXNbdV18fChhLnByb3BlcnRpZXNbdV09c1t1XSwhby5yZXF1aXJlZCYmQXJyYXkuaXNBcnJheShvLnJlcXVpcmVkKSYmLTEhPT1vLnJlcXVpcmVkLmluZGV4T2YodSkmJihhLnJlcXVpcmVkP2EucmVxdWlyZWQucHVzaCh1KTphLnJlcXVpcmVkPVt1XSkpKX1yZXR1cm4gby5pdGVtcyYmKGEuaXRlbXN8fChhLml0ZW1zPXt9KSxhLml0ZW1zPW1lcmdlSnNvblNjaGVtYShhLml0ZW1zLG8uaXRlbXMsaSkpLGF9LHNhbXBsZUZyb21TY2hlbWFHZW5lcmljPShzLG89e30saT12b2lkIDAsYT0hMSk9PntzJiZpc0Z1bmMocy50b0pTKSYmKHM9cy50b0pTKCkpO2xldCB1PXZvaWQgMCE9PWl8fHMmJnZvaWQgMCE9PXMuZXhhbXBsZXx8cyYmdm9pZCAwIT09cy5kZWZhdWx0O2NvbnN0IF89IXUmJnMmJnMub25lT2YmJnMub25lT2YubGVuZ3RoPjAsdz0hdSYmcyYmcy5hbnlPZiYmcy5hbnlPZi5sZW5ndGg+MDtpZighdSYmKF98fHcpKXtjb25zdCBpPW9iamVjdGlmeShfP3Mub25lT2ZbMF06cy5hbnlPZlswXSk7aWYoIShzPW1lcmdlSnNvblNjaGVtYShzLGksbykpLnhtbCYmaS54bWwmJihzLnhtbD1pLnhtbCksdm9pZCAwIT09cy5leGFtcGxlJiZ2b2lkIDAhPT1pLmV4YW1wbGUpdT0hMDtlbHNlIGlmKGkucHJvcGVydGllcyl7cy5wcm9wZXJ0aWVzfHwocy5wcm9wZXJ0aWVzPXt9KTtsZXQgYT1vYmplY3RpZnkoaS5wcm9wZXJ0aWVzKTtmb3IobGV0IHUgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSx1KSYmKGFbdV0mJmFbdV0uZGVwcmVjYXRlZHx8YVt1XSYmYVt1XS5yZWFkT25seSYmIW8uaW5jbHVkZVJlYWRPbmx5fHxhW3VdJiZhW3VdLndyaXRlT25seSYmIW8uaW5jbHVkZVdyaXRlT25seXx8cy5wcm9wZXJ0aWVzW3VdfHwocy5wcm9wZXJ0aWVzW3VdPWFbdV0sIWkucmVxdWlyZWQmJkFycmF5LmlzQXJyYXkoaS5yZXF1aXJlZCkmJi0xIT09aS5yZXF1aXJlZC5pbmRleE9mKHUpJiYocy5yZXF1aXJlZD9zLnJlcXVpcmVkLnB1c2godSk6cy5yZXF1aXJlZD1bdV0pKSl9fWNvbnN0IHg9e307bGV0e3htbDpDLHR5cGU6aixleGFtcGxlOkwscHJvcGVydGllczpCLGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiQsaXRlbXM6Vn09c3x8e30se2luY2x1ZGVSZWFkT25seTpVLGluY2x1ZGVXcml0ZU9ubHk6en09bztDPUN8fHt9O2xldCBZLHtuYW1lOloscHJlZml4OmVlLG5hbWVzcGFjZTppZX09QyxhZT17fTtpZihhJiYoWj1afHwibm90YWduYW1lIixZPShlZT9lZSsiOiI6IiIpK1osaWUpKXt4W2VlPyJ4bWxuczoiK2VlOiJ4bWxucyJdPWllfWEmJihhZVtZXT1bXSk7Y29uc3Qgc2NoZW1hSGFzQW55PW89Pm8uc29tZSgobz0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsbykpKTtzJiYhaiYmKEJ8fCR8fHNjaGVtYUhhc0FueShtcyk/aj0ib2JqZWN0IjpWfHxzY2hlbWFIYXNBbnkoZ3MpP2o9ImFycmF5IjpzY2hlbWFIYXNBbnkoeXMpPyhqPSJudW1iZXIiLHMudHlwZT0ibnVtYmVyIik6dXx8cy5lbnVtfHwoaj0ic3RyaW5nIixzLnR5cGU9InN0cmluZyIpKTtjb25zdCBoYW5kbGVNaW5NYXhJdGVtcz1vPT57aWYobnVsbCE9cz8ubWF4SXRlbXMmJihvPW8uc2xpY2UoMCxzPy5tYXhJdGVtcykpLG51bGwhPXM/Lm1pbkl0ZW1zKXtsZXQgaT0wO2Zvcig7by5sZW5ndGg8cz8ubWluSXRlbXM7KW8ucHVzaChvW2krKyVvLmxlbmd0aF0pfXJldHVybiBvfSxjZT1vYmplY3RpZnkoQik7bGV0IGxlLHBlPTA7Y29uc3QgaGFzRXhjZWVkZWRNYXhQcm9wZXJ0aWVzPSgpPT5zJiZudWxsIT09cy5tYXhQcm9wZXJ0aWVzJiZ2b2lkIDAhPT1zLm1heFByb3BlcnRpZXMmJnBlPj1zLm1heFByb3BlcnRpZXMsY2FuQWRkUHJvcGVydHk9bz0+IXN8fG51bGw9PT1zLm1heFByb3BlcnRpZXN8fHZvaWQgMD09PXMubWF4UHJvcGVydGllc3x8IWhhc0V4Y2VlZGVkTWF4UHJvcGVydGllcygpJiYoIShvPT4hKHMmJnMucmVxdWlyZWQmJnMucmVxdWlyZWQubGVuZ3RoJiZzLnJlcXVpcmVkLmluY2x1ZGVzKG8pKSkobyl8fHMubWF4UHJvcGVydGllcy1wZS0oKCk9PntpZighc3x8IXMucmVxdWlyZWQpcmV0dXJuIDA7bGV0IG89MDtyZXR1cm4gYT9zLnJlcXVpcmVkLmZvckVhY2goKHM9Pm8rPXZvaWQgMD09PWFlW3NdPzA6MSkpOnMucmVxdWlyZWQuZm9yRWFjaCgocz0+bys9dm9pZCAwPT09YWVbWV0/LmZpbmQoKG89PnZvaWQgMCE9PW9bc10pKT8wOjEpKSxzLnJlcXVpcmVkLmxlbmd0aC1vfSkoKT4wKTtpZihsZT1hPyhpLHU9dm9pZCAwKT0+e2lmKHMmJmNlW2ldKXtpZihjZVtpXS54bWw9Y2VbaV0ueG1sfHx7fSxjZVtpXS54bWwuYXR0cmlidXRlKXtjb25zdCBzPUFycmF5LmlzQXJyYXkoY2VbaV0uZW51bSk/Y2VbaV0uZW51bVswXTp2b2lkIDAsbz1jZVtpXS5leGFtcGxlLGE9Y2VbaV0uZGVmYXVsdDtyZXR1cm4gdm9pZCh4W2NlW2ldLnhtbC5uYW1lfHxpXT12b2lkIDAhPT1vP286dm9pZCAwIT09YT9hOnZvaWQgMCE9PXM/czpwcmltaXRpdmUoY2VbaV0pKX1jZVtpXS54bWwubmFtZT1jZVtpXS54bWwubmFtZXx8aX1lbHNlIGNlW2ldfHwhMT09PSR8fChjZVtpXT17eG1sOntuYW1lOml9fSk7bGV0IF89c2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMocyYmY2VbaV18fHZvaWQgMCxvLHUsYSk7Y2FuQWRkUHJvcGVydHkoaSkmJihwZSsrLEFycmF5LmlzQXJyYXkoXyk/YWVbWV09YWVbWV0uY29uY2F0KF8pOmFlW1ldLnB1c2goXykpfTooaSx1KT0+e2lmKGNhbkFkZFByb3BlcnR5KGkpKXtpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywiZGlzY3JpbWluYXRvciIpJiZzLmRpc2NyaW1pbmF0b3ImJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLmRpc2NyaW1pbmF0b3IsIm1hcHBpbmciKSYmcy5kaXNjcmltaW5hdG9yLm1hcHBpbmcmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCIkJHJlZiIpJiZzLiQkcmVmJiZzLmRpc2NyaW1pbmF0b3IucHJvcGVydHlOYW1lPT09aSl7Zm9yKGxldCBvIGluIHMuZGlzY3JpbWluYXRvci5tYXBwaW5nKWlmKC0xIT09cy4kJHJlZi5zZWFyY2gocy5kaXNjcmltaW5hdG9yLm1hcHBpbmdbb10pKXthZVtpXT1vO2JyZWFrfX1lbHNlIGFlW2ldPXNhbXBsZUZyb21TY2hlbWFHZW5lcmljKGNlW2ldLG8sdSxhKTtwZSsrfX0sdSl7bGV0IHU7aWYodT1zYW5pdGl6ZVJlZih2b2lkIDAhPT1pP2k6dm9pZCAwIT09TD9MOnMuZGVmYXVsdCksIWEpe2lmKCJudW1iZXIiPT10eXBlb2YgdSYmInN0cmluZyI9PT1qKXJldHVybmAke3V9YDtpZigic3RyaW5nIiE9dHlwZW9mIHV8fCJzdHJpbmciPT09ailyZXR1cm4gdTt0cnl7cmV0dXJuIEpTT04ucGFyc2UodSl9Y2F0Y2gocyl7cmV0dXJuIHV9fWlmKHN8fChqPUFycmF5LmlzQXJyYXkodSk/ImFycmF5Ijp0eXBlb2YgdSksImFycmF5Ij09PWope2lmKCFBcnJheS5pc0FycmF5KHUpKXtpZigic3RyaW5nIj09dHlwZW9mIHUpcmV0dXJuIHU7dT1bdV19Y29uc3QgaT1zP3MuaXRlbXM6dm9pZCAwO2kmJihpLnhtbD1pLnhtbHx8Q3x8e30saS54bWwubmFtZT1pLnhtbC5uYW1lfHxDLm5hbWUpO2xldCBfPXUubWFwKChzPT5zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhpLG8scyxhKSkpO3JldHVybiBfPWhhbmRsZU1pbk1heEl0ZW1zKF8pLEMud3JhcHBlZD8oYWVbWV09XyxkcygpKHgpfHxhZVtZXS5wdXNoKHtfYXR0cjp4fSkpOmFlPV8sYWV9aWYoIm9iamVjdCI9PT1qKXtpZigic3RyaW5nIj09dHlwZW9mIHUpcmV0dXJuIHU7Zm9yKGxldCBvIGluIHUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHUsbykmJihzJiZjZVtvXSYmY2Vbb10ucmVhZE9ubHkmJiFVfHxzJiZjZVtvXSYmY2Vbb10ud3JpdGVPbmx5JiYhenx8KHMmJmNlW29dJiZjZVtvXS54bWwmJmNlW29dLnhtbC5hdHRyaWJ1dGU/eFtjZVtvXS54bWwubmFtZXx8b109dVtvXTpsZShvLHVbb10pKSk7cmV0dXJuIGRzKCkoeCl8fGFlW1ldLnB1c2goe19hdHRyOnh9KSxhZX1yZXR1cm4gYWVbWV09ZHMoKSh4KT91Olt7X2F0dHI6eH0sdV0sYWV9aWYoIm9iamVjdCI9PT1qKXtmb3IobGV0IHMgaW4gY2UpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNlLHMpJiYoY2Vbc10mJmNlW3NdLmRlcHJlY2F0ZWR8fGNlW3NdJiZjZVtzXS5yZWFkT25seSYmIVV8fGNlW3NdJiZjZVtzXS53cml0ZU9ubHkmJiF6fHxsZShzKSk7aWYoYSYmeCYmYWVbWV0ucHVzaCh7X2F0dHI6eH0pLGhhc0V4Y2VlZGVkTWF4UHJvcGVydGllcygpKXJldHVybiBhZTtpZighMD09PSQpYT9hZVtZXS5wdXNoKHthZGRpdGlvbmFsUHJvcDoiQW55dGhpbmcgY2FuIGJlIGhlcmUifSk6YWUuYWRkaXRpb25hbFByb3AxPXt9LHBlKys7ZWxzZSBpZigkKXtjb25zdCBpPW9iamVjdGlmeSgkKSx1PXNhbXBsZUZyb21TY2hlbWFHZW5lcmljKGksbyx2b2lkIDAsYSk7aWYoYSYmaS54bWwmJmkueG1sLm5hbWUmJiJub3RhZ25hbWUiIT09aS54bWwubmFtZSlhZVtZXS5wdXNoKHUpO2Vsc2V7Y29uc3Qgbz1udWxsIT09cy5taW5Qcm9wZXJ0aWVzJiZ2b2lkIDAhPT1zLm1pblByb3BlcnRpZXMmJnBlPHMubWluUHJvcGVydGllcz9zLm1pblByb3BlcnRpZXMtcGU6Mztmb3IobGV0IHM9MTtzPD1vO3MrKyl7aWYoaGFzRXhjZWVkZWRNYXhQcm9wZXJ0aWVzKCkpcmV0dXJuIGFlO2lmKGEpe2NvbnN0IG89e307b1siYWRkaXRpb25hbFByb3AiK3NdPXUubm90YWduYW1lLGFlW1ldLnB1c2gobyl9ZWxzZSBhZVsiYWRkaXRpb25hbFByb3AiK3NdPXU7cGUrK319fXJldHVybiBhZX1pZigiYXJyYXkiPT09ail7aWYoIVYpcmV0dXJuO2xldCBpO2lmKGEmJihWLnhtbD1WLnhtbHx8cz8ueG1sfHx7fSxWLnhtbC5uYW1lPVYueG1sLm5hbWV8fEMubmFtZSksQXJyYXkuaXNBcnJheShWLmFueU9mKSlpPVYuYW55T2YubWFwKChzPT5zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhtZXJnZUpzb25TY2hlbWEocyxWLG8pLG8sdm9pZCAwLGEpKSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KFYub25lT2YpKWk9Vi5vbmVPZi5tYXAoKHM9PnNhbXBsZUZyb21TY2hlbWFHZW5lcmljKG1lcmdlSnNvblNjaGVtYShzLFYsbyksbyx2b2lkIDAsYSkpKTtlbHNle2lmKCEoIWF8fGEmJkMud3JhcHBlZCkpcmV0dXJuIHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKFYsbyx2b2lkIDAsYSk7aT1bc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoVixvLHZvaWQgMCxhKV19cmV0dXJuIGk9aGFuZGxlTWluTWF4SXRlbXMoaSksYSYmQy53cmFwcGVkPyhhZVtZXT1pLGRzKCkoeCl8fGFlW1ldLnB1c2goe19hdHRyOnh9KSxhZSk6aX1sZXQgZGU7aWYocyYmQXJyYXkuaXNBcnJheShzLmVudW0pKWRlPW5vcm1hbGl6ZUFycmF5KHMuZW51bSlbMF07ZWxzZXtpZighcylyZXR1cm47aWYoZGU9cHJpbWl0aXZlKHMpLCJudW1iZXIiPT10eXBlb2YgZGUpe2xldCBvPXMubWluaW11bTtudWxsIT1vJiYocy5leGNsdXNpdmVNaW5pbXVtJiZvKyssZGU9byk7bGV0IGk9cy5tYXhpbXVtO251bGwhPWkmJihzLmV4Y2x1c2l2ZU1heGltdW0mJmktLSxkZT1pKX1pZigic3RyaW5nIj09dHlwZW9mIGRlJiYobnVsbCE9PXMubWF4TGVuZ3RoJiZ2b2lkIDAhPT1zLm1heExlbmd0aCYmKGRlPWRlLnNsaWNlKDAscy5tYXhMZW5ndGgpKSxudWxsIT09cy5taW5MZW5ndGgmJnZvaWQgMCE9PXMubWluTGVuZ3RoKSl7bGV0IG89MDtmb3IoO2RlLmxlbmd0aDxzLm1pbkxlbmd0aDspZGUrPWRlW28rKyVkZS5sZW5ndGhdfX1pZigiZmlsZSIhPT1qKXJldHVybiBhPyhhZVtZXT1kcygpKHgpP2RlOlt7X2F0dHI6eH0sZGVdLGFlKTpkZX0saW5mZXJTY2hlbWE9cz0+KHMuc2NoZW1hJiYocz1zLnNjaGVtYSkscy5wcm9wZXJ0aWVzJiYocy50eXBlPSJvYmplY3QiKSxzKSxjcmVhdGVYTUxFeGFtcGxlPShzLG8saSk9Pntjb25zdCBhPXNhbXBsZUZyb21TY2hlbWFHZW5lcmljKHMsbyxpLCEwKTtpZihhKXJldHVybiJzdHJpbmciPT10eXBlb2YgYT9hOmxzKCkoYSx7ZGVjbGFyYXRpb246ITAsaW5kZW50OiJcdCJ9KX0sc2FtcGxlRnJvbVNjaGVtYT0ocyxvLGkpPT5zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhzLG8saSwhMSkscmVzb2x2ZXI9KHMsbyxpKT0+W3MsSlNPTi5zdHJpbmdpZnkobyksSlNPTi5zdHJpbmdpZnkoaSldLGJzPXV0aWxzX21lbW9pemVOKGNyZWF0ZVhNTEV4YW1wbGUscmVzb2x2ZXIpLF9zPXV0aWxzX21lbW9pemVOKHNhbXBsZUZyb21TY2hlbWEscmVzb2x2ZXIpLGdldFNjaGVtYU9iamVjdFR5cGU9cz0+aW1tdXRhYmxlVG9KUyhzKT8udHlwZT8/InN0cmluZyIsU3M9W3t3aGVuOi9qc29uLyxzaG91bGRTdHJpbmdpZnlUeXBlczpbInN0cmluZyJdfV0sRXM9WyJvYmplY3QiXSxnZXRfanNvbl9zYW1wbGVfc2NoZW1hPXM9PihvLGksYSx1KT0+e2NvbnN0e2ZuOl99PXMoKSx3PV8ubWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hKG8saSx1KSx4PXR5cGVvZiB3LEM9U3MucmVkdWNlKCgocyxvKT0+by53aGVuLnRlc3QoYSk/Wy4uLnMsLi4uby5zaG91bGRTdHJpbmdpZnlUeXBlc106cyksRXMpO3JldHVybiBndCgpKEMsKHM9PnM9PT14KSk/SlNPTi5zdHJpbmdpZnkodyxudWxsLDIpOnd9LGdldF95YW1sX3NhbXBsZV9zY2hlbWE9cz0+KG8saSxhLHUpPT57Y29uc3R7Zm46X309cygpLHc9Xy5nZXRKc29uU2FtcGxlU2NoZW1hKG8saSxhLHUpO2xldCB4O3RyeXt4PWZuLmR1bXAoZm4ubG9hZCh3KSx7bGluZVdpZHRoOi0xfSx7c2NoZW1hOnJufSksIlxuIj09PXhbeC5sZW5ndGgtMV0mJih4PXguc2xpY2UoMCx4Lmxlbmd0aC0xKSl9Y2F0Y2gocyl7cmV0dXJuIGNvbnNvbGUuZXJyb3IocyksImVycm9yOiBjb3VsZCBub3QgZ2VuZXJhdGUgeWFtbCBleGFtcGxlIn1yZXR1cm4geC5yZXBsYWNlKC9cdC9nLCIgICIpfSxnZXRfeG1sX3NhbXBsZV9zY2hlbWE9cz0+KG8saSxhKT0+e2NvbnN0e2ZuOnV9PXMoKTtpZihvJiYhby54bWwmJihvLnhtbD17fSksbyYmIW8ueG1sLm5hbWUpe2lmKCFvLiQkcmVmJiYoby50eXBlfHxvLml0ZW1zfHxvLnByb3BlcnRpZXN8fG8uYWRkaXRpb25hbFByb3BlcnRpZXMpKXJldHVybic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PlxuXHgzYyEtLSBYTUwgZXhhbXBsZSBjYW5ub3QgYmUgZ2VuZXJhdGVkOyByb290IGVsZW1lbnQgbmFtZSBpcyB1bmRlZmluZWQgLS1ceDNlJztpZihvLiQkcmVmKXtsZXQgcz1vLiQkcmVmLm1hdGNoKC9cUypcLyhcUyspJC8pO28ueG1sLm5hbWU9c1sxXX19cmV0dXJuIHUubWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlKG8saSxhKX0sZ2V0X3NhbXBsZV9zY2hlbWE9cz0+KG8saT0iIixhPXt9LHU9dm9pZCAwKT0+e2NvbnN0e2ZuOl99PXMoKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygbz8udG9KUyYmKG89by50b0pTKCkpLCJmdW5jdGlvbiI9PXR5cGVvZiB1Py50b0pTJiYodT11LnRvSlMoKSksL3htbC8udGVzdChpKT9fLmdldFhtbFNhbXBsZVNjaGVtYShvLGEsdSk6Lyh5YW1sfHltbCkvLnRlc3QoaSk/Xy5nZXRZYW1sU2FtcGxlU2NoZW1hKG8sYSxpLHUpOl8uZ2V0SnNvblNhbXBsZVNjaGVtYShvLGEsaSx1KX0sanNvbl9zY2hlbWFfNV9zYW1wbGVzPSh7Z2V0U3lzdGVtOnN9KT0+e2NvbnN0IG89Z2V0X2pzb25fc2FtcGxlX3NjaGVtYShzKSxpPWdldF95YW1sX3NhbXBsZV9zY2hlbWEocyksYT1nZXRfeG1sX3NhbXBsZV9zY2hlbWEocyksdT1nZXRfc2FtcGxlX3NjaGVtYShzKTtyZXR1cm57Zm46e2pzb25TY2hlbWE1OntpbmZlclNjaGVtYSxzYW1wbGVGcm9tU2NoZW1hLHNhbXBsZUZyb21TY2hlbWFHZW5lcmljLGNyZWF0ZVhNTEV4YW1wbGUsbWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hOl9zLG1lbW9pemVkQ3JlYXRlWE1MRXhhbXBsZTpicyxnZXRKc29uU2FtcGxlU2NoZW1hOm8sZ2V0WWFtbFNhbXBsZVNjaGVtYTppLGdldFhtbFNhbXBsZVNjaGVtYTphLGdldFNhbXBsZVNjaGVtYTp1LG1lcmdlSnNvblNjaGVtYX0saW5mZXJTY2hlbWEsc2FtcGxlRnJvbVNjaGVtYSxzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyxjcmVhdGVYTUxFeGFtcGxlLG1lbW9pemVkU2FtcGxlRnJvbVNjaGVtYTpfcyxtZW1vaXplZENyZWF0ZVhNTEV4YW1wbGU6YnMsZ2V0SnNvblNhbXBsZVNjaGVtYTpvLGdldFlhbWxTYW1wbGVTY2hlbWE6aSxnZXRYbWxTYW1wbGVTY2hlbWE6YSxnZXRTYW1wbGVTY2hlbWE6dSxtZXJnZUpzb25TY2hlbWEsZ2V0U2NoZW1hT2JqZWN0VHlwZX19fTt2YXIgd3M9X193ZWJwYWNrX3JlcXVpcmVfXygzNzMzNCkseHM9X193ZWJwYWNrX3JlcXVpcmVfXy5uKHdzKTtjb25zdCBrcz1bImdldCIsInB1dCIsInBvc3QiLCJkZWxldGUiLCJvcHRpb25zIiwiaGVhZCIsInBhdGNoIiwidHJhY2UiXSxzcGVjX3NlbGVjdG9yc19zdGF0ZT1zPT5zfHwoMCx6ZS5NYXApKCksT3M9VnQoc3BlY19zZWxlY3RvcnNfc3RhdGUsKHM9PnMuZ2V0KCJsYXN0RXJyb3IiKSkpLENzPVZ0KHNwZWNfc2VsZWN0b3JzX3N0YXRlLChzPT5zLmdldCgidXJsIikpKSxBcz1WdChzcGVjX3NlbGVjdG9yc19zdGF0ZSwocz0+cy5nZXQoInNwZWMiKXx8IiIpKSxqcz1WdChzcGVjX3NlbGVjdG9yc19zdGF0ZSwocz0+cy5nZXQoInNwZWNTb3VyY2UiKXx8Im5vdC1lZGl0b3IiKSksUHM9VnQoc3BlY19zZWxlY3RvcnNfc3RhdGUsKHM9PnMuZ2V0KCJqc29uIiwoMCx6ZS5NYXApKCkpKSksSXM9VnQoUHMsKHM9PnMudG9KUygpKSksVHM9VnQoc3BlY19zZWxlY3RvcnNfc3RhdGUsKHM9PnMuZ2V0KCJyZXNvbHZlZCIsKDAsemUuTWFwKSgpKSkpLHNwZWNSZXNvbHZlZFN1YnRyZWU9KHMsbyk9PnMuZ2V0SW4oWyJyZXNvbHZlZFN1YnRyZWVzIiwuLi5vXSx2b2lkIDApLG1lcmdlckZuPShzLG8pPT56ZS5NYXAuaXNNYXAocykmJnplLk1hcC5pc01hcChvKT9vLmdldCgiJCRyZWYiKT9vOigwLHplLk9yZGVyZWRNYXApKCkubWVyZ2VXaXRoKG1lcmdlckZuLHMsbyk6byxOcz1WdChzcGVjX3NlbGVjdG9yc19zdGF0ZSwocz0+KDAsemUuT3JkZXJlZE1hcCkoKS5tZXJnZVdpdGgobWVyZ2VyRm4scy5nZXQoImpzb24iKSxzLmdldCgicmVzb2x2ZWRTdWJ0cmVlcyIpKSkpLHNwZWM9cz0+UHMocyksTXM9VnQoc3BlYywoKCk9PiExKSksUnM9VnQoc3BlYywocz0+cmV0dXJuU2VsZk9yTmV3TWFwKHMmJnMuZ2V0KCJpbmZvIikpKSksRHM9VnQoc3BlYywocz0+cmV0dXJuU2VsZk9yTmV3TWFwKHMmJnMuZ2V0KCJleHRlcm5hbERvY3MiKSkpKSxMcz1WdChScywocz0+cyYmcy5nZXQoInZlcnNpb24iKSkpLEZzPVZ0KExzLChzPT4vdj8oWzAtOV0qKVwuKFswLTldKilcLihbMC05XSopL2kuZXhlYyhzKS5zbGljZSgxKSkpLEJzPVZ0KE5zLChzPT5zLmdldCgicGF0aHMiKSkpLCRzPXhzKCkoWyJnZXQiLCJwdXQiLCJwb3N0IiwiZGVsZXRlIiwib3B0aW9ucyIsImhlYWQiLCJwYXRjaCJdKSxxcz1WdChCcywocz0+e2xldCBvPSgwLHplLkxpc3QpKCk7cmV0dXJuIXplLk1hcC5pc01hcChzKXx8cy5pc0VtcHR5KCl8fHMuZm9yRWFjaCgoKHMsaSk9PntpZighc3x8IXMuZm9yRWFjaClyZXR1cm57fTtzLmZvckVhY2goKChzLGEpPT57a3MuaW5kZXhPZihhKTwwfHwobz1vLnB1c2goKDAsemUuZnJvbUpTKSh7cGF0aDppLG1ldGhvZDphLG9wZXJhdGlvbjpzLGlkOmAke2F9LSR7aX1gfSkpKX0pKX0pKSxvfSkpLFZzPVZ0KHNwZWMsKHM9PigwLHplLlNldCkocy5nZXQoImNvbnN1bWVzIikpKSksVXM9VnQoc3BlYywocz0+KDAsemUuU2V0KShzLmdldCgicHJvZHVjZXMiKSkpKSx6cz1WdChzcGVjLChzPT5zLmdldCgic2VjdXJpdHkiLCgwLHplLkxpc3QpKCkpKSksV3M9VnQoc3BlYywocz0+cy5nZXQoInNlY3VyaXR5RGVmaW5pdGlvbnMiKSkpLGZpbmREZWZpbml0aW9uPShzLG8pPT57Y29uc3QgaT1zLmdldEluKFsicmVzb2x2ZWRTdWJ0cmVlcyIsImRlZmluaXRpb25zIixvXSxudWxsKSxhPXMuZ2V0SW4oWyJqc29uIiwiZGVmaW5pdGlvbnMiLG9dLG51bGwpO3JldHVybiBpfHxhfHxudWxsfSxKcz1WdChzcGVjLChzPT57Y29uc3Qgbz1zLmdldCgiZGVmaW5pdGlvbnMiKTtyZXR1cm4gemUuTWFwLmlzTWFwKG8pP286KDAsemUuTWFwKSgpfSkpLEhzPVZ0KHNwZWMsKHM9PnMuZ2V0KCJiYXNlUGF0aCIpKSksS3M9VnQoc3BlYywocz0+cy5nZXQoImhvc3QiKSkpLEdzPVZ0KHNwZWMsKHM9PnMuZ2V0KCJzY2hlbWVzIiwoMCx6ZS5NYXApKCkpKSksWXM9VnQoW3FzLFZzLFVzXSwoKHMsbyxpKT0+cy5tYXAoKHM9PnMudXBkYXRlKCJvcGVyYXRpb24iLChzPT56ZS5NYXAuaXNNYXAocyk/cy53aXRoTXV0YXRpb25zKChzPT4ocy5nZXQoImNvbnN1bWVzIil8fHMudXBkYXRlKCJjb25zdW1lcyIsKHM9PigwLHplLlNldCkocykubWVyZ2UobykpKSxzLmdldCgicHJvZHVjZXMiKXx8cy51cGRhdGUoInByb2R1Y2VzIiwocz0+KDAsemUuU2V0KShzKS5tZXJnZShpKSkpLHMpKSk6KDAsemUuTWFwKSgpKSkpKSkpLFhzPVZ0KHNwZWMsKHM9Pntjb25zdCBvPXMuZ2V0KCJ0YWdzIiwoMCx6ZS5MaXN0KSgpKTtyZXR1cm4gemUuTGlzdC5pc0xpc3Qobyk/by5maWx0ZXIoKHM9PnplLk1hcC5pc01hcChzKSkpOigwLHplLkxpc3QpKCl9KSksdGFnRGV0YWlscz0ocyxvKT0+KFhzKHMpfHwoMCx6ZS5MaXN0KSgpKS5maWx0ZXIoemUuTWFwLmlzTWFwKS5maW5kKChzPT5zLmdldCgibmFtZSIpPT09byksKDAsemUuTWFwKSgpKSxRcz1WdChZcyxYcywoKHMsbyk9PnMucmVkdWNlKCgocyxvKT0+e2xldCBpPSgwLHplLlNldCkoby5nZXRJbihbIm9wZXJhdGlvbiIsInRhZ3MiXSkpO3JldHVybiBpLmNvdW50KCk8MT9zLnVwZGF0ZSgiZGVmYXVsdCIsKDAsemUuTGlzdCkoKSwocz0+cy5wdXNoKG8pKSk6aS5yZWR1Y2UoKChzLGkpPT5zLnVwZGF0ZShpLCgwLHplLkxpc3QpKCksKHM9PnMucHVzaChvKSkpKSxzKX0pLG8ucmVkdWNlKCgocyxvKT0+cy5zZXQoby5nZXQoIm5hbWUiKSwoMCx6ZS5MaXN0KSgpKSksKDAsemUuT3JkZXJlZE1hcCkoKSkpKSksc2VsZWN0b3JzX3RhZ2dlZE9wZXJhdGlvbnM9cz0+KHtnZXRDb25maWdzOm99KT0+e2xldHt0YWdzU29ydGVyOmksb3BlcmF0aW9uc1NvcnRlcjphfT1vKCk7cmV0dXJuIFFzKHMpLnNvcnRCeSgoKHMsbyk9Pm8pLCgocyxvKT0+e2xldCBhPSJmdW5jdGlvbiI9PXR5cGVvZiBpP2k6SXQudGFnc1NvcnRlcltpXTtyZXR1cm4gYT9hKHMsbyk6bnVsbH0pKS5tYXAoKChvLGkpPT57bGV0IHU9ImZ1bmN0aW9uIj09dHlwZW9mIGE/YTpJdC5vcGVyYXRpb25zU29ydGVyW2FdLF89dT9vLnNvcnQodSk6bztyZXR1cm4oMCx6ZS5NYXApKHt0YWdEZXRhaWxzOnRhZ0RldGFpbHMocyxpKSxvcGVyYXRpb25zOl99KX0pKX0sWnM9VnQoc3BlY19zZWxlY3RvcnNfc3RhdGUsKHM9PnMuZ2V0KCJyZXNwb25zZXMiLCgwLHplLk1hcCkoKSkpKSxlbz1WdChzcGVjX3NlbGVjdG9yc19zdGF0ZSwocz0+cy5nZXQoInJlcXVlc3RzIiwoMCx6ZS5NYXApKCkpKSksdG89VnQoc3BlY19zZWxlY3RvcnNfc3RhdGUsKHM9PnMuZ2V0KCJtdXRhdGVkUmVxdWVzdHMiLCgwLHplLk1hcCkoKSkpKSxyZXNwb25zZUZvcj0ocyxvLGkpPT5acyhzKS5nZXRJbihbbyxpXSxudWxsKSxyZXF1ZXN0Rm9yPShzLG8saSk9PmVvKHMpLmdldEluKFtvLGldLG51bGwpLG11dGF0ZWRSZXF1ZXN0Rm9yPShzLG8saSk9PnRvKHMpLmdldEluKFtvLGldLG51bGwpLGFsbG93VHJ5SXRPdXRGb3I9KCk9PiEwLHBhcmFtZXRlcldpdGhNZXRhQnlJZGVudGl0eT0ocyxvLGkpPT57Y29uc3QgYT1OcyhzKS5nZXRJbihbInBhdGhzIiwuLi5vLCJwYXJhbWV0ZXJzIl0sKDAsemUuT3JkZXJlZE1hcCkoKSksdT1zLmdldEluKFsibWV0YSIsInBhdGhzIiwuLi5vLCJwYXJhbWV0ZXJzIl0sKDAsemUuT3JkZXJlZE1hcCkoKSk7cmV0dXJuIGEubWFwKChzPT57Y29uc3Qgbz11LmdldChgJHtpLmdldCgiaW4iKX0uJHtpLmdldCgibmFtZSIpfWApLGE9dS5nZXQoYCR7aS5nZXQoImluIil9LiR7aS5nZXQoIm5hbWUiKX0uaGFzaC0ke2kuaGFzaENvZGUoKX1gKTtyZXR1cm4oMCx6ZS5PcmRlcmVkTWFwKSgpLm1lcmdlKHMsbyxhKX0pKS5maW5kKChzPT5zLmdldCgiaW4iKT09PWkuZ2V0KCJpbiIpJiZzLmdldCgibmFtZSIpPT09aS5nZXQoIm5hbWUiKSksKDAsemUuT3JkZXJlZE1hcCkoKSl9LHBhcmFtZXRlckluY2x1c2lvblNldHRpbmdGb3I9KHMsbyxpLGEpPT57Y29uc3QgdT1gJHthfS4ke2l9YDtyZXR1cm4gcy5nZXRJbihbIm1ldGEiLCJwYXRocyIsLi4ubywicGFyYW1ldGVyX2luY2x1c2lvbnMiLHVdLCExKX0scGFyYW1ldGVyV2l0aE1ldGE9KHMsbyxpLGEpPT57Y29uc3QgdT1OcyhzKS5nZXRJbihbInBhdGhzIiwuLi5vLCJwYXJhbWV0ZXJzIl0sKDAsemUuT3JkZXJlZE1hcCkoKSkuZmluZCgocz0+cy5nZXQoImluIik9PT1hJiZzLmdldCgibmFtZSIpPT09aSksKDAsemUuT3JkZXJlZE1hcCkoKSk7cmV0dXJuIHBhcmFtZXRlcldpdGhNZXRhQnlJZGVudGl0eShzLG8sdSl9LG9wZXJhdGlvbldpdGhNZXRhPShzLG8saSk9Pntjb25zdCBhPU5zKHMpLmdldEluKFsicGF0aHMiLG8saV0sKDAsemUuT3JkZXJlZE1hcCkoKSksdT1zLmdldEluKFsibWV0YSIsInBhdGhzIixvLGldLCgwLHplLk9yZGVyZWRNYXApKCkpLF89YS5nZXQoInBhcmFtZXRlcnMiLCgwLHplLkxpc3QpKCkpLm1hcCgoYT0+cGFyYW1ldGVyV2l0aE1ldGFCeUlkZW50aXR5KHMsW28saV0sYSkpKTtyZXR1cm4oMCx6ZS5PcmRlcmVkTWFwKSgpLm1lcmdlKGEsdSkuc2V0KCJwYXJhbWV0ZXJzIixfKX07ZnVuY3Rpb24gZ2V0UGFyYW1ldGVyKHMsbyxpLGEpe3JldHVybiBvPW98fFtdLHMuZ2V0SW4oWyJtZXRhIiwicGF0aHMiLC4uLm8sInBhcmFtZXRlcnMiXSwoMCx6ZS5mcm9tSlMpKFtdKSkuZmluZCgocz0+emUuTWFwLmlzTWFwKHMpJiZzLmdldCgibmFtZSIpPT09aSYmcy5nZXQoImluIik9PT1hKSl8fCgwLHplLk1hcCkoKX1jb25zdCBybz1WdChzcGVjLChzPT57Y29uc3Qgbz1zLmdldCgiaG9zdCIpO3JldHVybiJzdHJpbmciPT10eXBlb2YgbyYmby5sZW5ndGg+MCYmIi8iIT09b1swXX0pKTtmdW5jdGlvbiBwYXJhbWV0ZXJWYWx1ZXMocyxvLGkpe3JldHVybiBvPW98fFtdLG9wZXJhdGlvbldpdGhNZXRhKHMsLi4ubykuZ2V0KCJwYXJhbWV0ZXJzIiwoMCx6ZS5MaXN0KSgpKS5yZWR1Y2UoKChzLG8pPT57bGV0IGE9aSYmImJvZHkiPT09by5nZXQoImluIik/by5nZXQoInZhbHVlX3htbCIpOm8uZ2V0KCJ2YWx1ZSIpO3JldHVybiB6ZS5MaXN0LmlzTGlzdChhKSYmKGE9YS5maWx0ZXIoKHM9PiIiIT09cykpKSxzLnNldChwYXJhbVRvSWRlbnRpZmllcihvLHthbGxvd0hhc2hlczohMX0pLGEpfSksKDAsemUuZnJvbUpTKSh7fSkpfWZ1bmN0aW9uIHBhcmFtZXRlcnNJbmNsdWRlSW4ocyxvPSIiKXtpZih6ZS5MaXN0LmlzTGlzdChzKSlyZXR1cm4gcy5zb21lKChzPT56ZS5NYXAuaXNNYXAocykmJnMuZ2V0KCJpbiIpPT09bykpfWZ1bmN0aW9uIHBhcmFtZXRlcnNJbmNsdWRlVHlwZShzLG89IiIpe2lmKHplLkxpc3QuaXNMaXN0KHMpKXJldHVybiBzLnNvbWUoKHM9PnplLk1hcC5pc01hcChzKSYmcy5nZXQoInR5cGUiKT09PW8pKX1mdW5jdGlvbiBjb250ZW50VHlwZVZhbHVlcyhzLG8pe289b3x8W107bGV0IGk9TnMocykuZ2V0SW4oWyJwYXRocyIsLi4ub10sKDAsemUuZnJvbUpTKSh7fSkpLGE9cy5nZXRJbihbIm1ldGEiLCJwYXRocyIsLi4ub10sKDAsemUuZnJvbUpTKSh7fSkpLHU9Y3VycmVudFByb2R1Y2VzRm9yKHMsbyk7Y29uc3QgXz1pLmdldCgicGFyYW1ldGVycyIpfHxuZXcgemUuTGlzdCx3PWEuZ2V0KCJjb25zdW1lc192YWx1ZSIpP2EuZ2V0KCJjb25zdW1lc192YWx1ZSIpOnBhcmFtZXRlcnNJbmNsdWRlVHlwZShfLCJmaWxlIik/Im11bHRpcGFydC9mb3JtLWRhdGEiOnBhcmFtZXRlcnNJbmNsdWRlVHlwZShfLCJmb3JtRGF0YSIpPyJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiOnZvaWQgMDtyZXR1cm4oMCx6ZS5mcm9tSlMpKHtyZXF1ZXN0Q29udGVudFR5cGU6dyxyZXNwb25zZUNvbnRlbnRUeXBlOnV9KX1mdW5jdGlvbiBjdXJyZW50UHJvZHVjZXNGb3IocyxvKXtvPW98fFtdO2NvbnN0IGk9TnMocykuZ2V0SW4oWyJwYXRocyIsLi4ub10sbnVsbCk7aWYobnVsbD09PWkpcmV0dXJuO2NvbnN0IGE9cy5nZXRJbihbIm1ldGEiLCJwYXRocyIsLi4ubywicHJvZHVjZXNfdmFsdWUiXSxudWxsKSx1PWkuZ2V0SW4oWyJwcm9kdWNlcyIsMF0sbnVsbCk7cmV0dXJuIGF8fHV8fCJhcHBsaWNhdGlvbi9qc29uIn1mdW5jdGlvbiBwcm9kdWNlc09wdGlvbnNGb3IocyxvKXtvPW98fFtdO2NvbnN0IGk9TnMocyksYT1pLmdldEluKFsicGF0aHMiLC4uLm9dLG51bGwpO2lmKG51bGw9PT1hKXJldHVybjtjb25zdFt1XT1vLF89YS5nZXQoInByb2R1Y2VzIixudWxsKSx3PWkuZ2V0SW4oWyJwYXRocyIsdSwicHJvZHVjZXMiXSxudWxsKSx4PWkuZ2V0SW4oWyJwcm9kdWNlcyJdLG51bGwpO3JldHVybiBffHx3fHx4fWZ1bmN0aW9uIGNvbnN1bWVzT3B0aW9uc0ZvcihzLG8pe289b3x8W107Y29uc3QgaT1OcyhzKSxhPWkuZ2V0SW4oWyJwYXRocyIsLi4ub10sbnVsbCk7aWYobnVsbD09PWEpcmV0dXJuO2NvbnN0W3VdPW8sXz1hLmdldCgiY29uc3VtZXMiLG51bGwpLHc9aS5nZXRJbihbInBhdGhzIix1LCJjb25zdW1lcyJdLG51bGwpLHg9aS5nZXRJbihbImNvbnN1bWVzIl0sbnVsbCk7cmV0dXJuIF98fHd8fHh9Y29uc3Qgb3BlcmF0aW9uU2NoZW1lPShzLG8saSk9PntsZXQgYT1zLmdldCgidXJsIikubWF0Y2goL14oW2Etel1bYS16MC05K1wtLl0qKTovKSx1PUFycmF5LmlzQXJyYXkoYSk/YVsxXTpudWxsO3JldHVybiBzLmdldEluKFsic2NoZW1lIixvLGldKXx8cy5nZXRJbihbInNjaGVtZSIsIl9kZWZhdWx0U2NoZW1lIl0pfHx1fHwiIn0sY2FuRXhlY3V0ZVNjaGVtZT0ocyxvLGkpPT5bImh0dHAiLCJodHRwcyJdLmluZGV4T2Yob3BlcmF0aW9uU2NoZW1lKHMsbyxpKSk+LTEsdmFsaWRhdGlvbkVycm9ycz0ocyxvKT0+e289b3x8W107Y29uc3QgaT1zLmdldEluKFsibWV0YSIsInBhdGhzIiwuLi5vLCJwYXJhbWV0ZXJzIl0sKDAsemUuZnJvbUpTKShbXSkpLGE9W107aWYoMD09PWkubGVuZ3RoKXJldHVybiBhO2NvbnN0IGdldEVycm9yc1dpdGhQYXRocz0ocyxvPVtdKT0+e2NvbnN0IGdldE5lc3RlZEVycm9yc1dpdGhQYXRocz0ocyxvKT0+e2NvbnN0IGk9Wy4uLm8scy5nZXQoInByb3BLZXkiKXx8cy5nZXQoImluZGV4IildO3JldHVybiB6ZS5NYXAuaXNNYXAocy5nZXQoImVycm9yIikpP2dldEVycm9yc1dpdGhQYXRocyhzLmdldCgiZXJyb3IiKSxpKTp7ZXJyb3I6cy5nZXQoImVycm9yIikscGF0aDppfX07cmV0dXJuIHplLkxpc3QuaXNMaXN0KHMpP3MubWFwKChzPT56ZS5NYXAuaXNNYXAocyk/Z2V0TmVzdGVkRXJyb3JzV2l0aFBhdGhzKHMsbyk6e2Vycm9yOnMscGF0aDpvfSkpOmdldE5lc3RlZEVycm9yc1dpdGhQYXRocyhzLG8pfTtyZXR1cm4gaS5mb3JFYWNoKCgocyxvKT0+e2NvbnN0IGk9by5zcGxpdCgiLiIpLnNsaWNlKDEsLTEpLmpvaW4oIi4iKSx1PXMuZ2V0KCJlcnJvcnMiKTtpZih1JiZ1LmNvdW50KCkpe2dldEVycm9yc1dpdGhQYXRocyh1KS5mb3JFYWNoKCgoe2Vycm9yOnMscGF0aDpvfSk9PnthLnB1c2goKChzLG8saSk9PmBGb3IgJyR7aX0nJHsobz1vLnJlZHVjZSgoKHMsbyk9PiJudW1iZXIiPT10eXBlb2Ygbz9gJHtzfVske299XWA6cz9gJHtzfS4ke299YDpvKSwiIikpP2AgYXQgcGF0aCAnJHtvfSdgOiIifTogJHtzfS5gKShzLG8saSkpfSkpfX0pKSxhfSx2YWxpZGF0ZUJlZm9yZUV4ZWN1dGU9KHMsbyk9PjA9PT12YWxpZGF0aW9uRXJyb3JzKHMsbykubGVuZ3RoLGdldE9BUzNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGU9KHMsbyk9PntsZXQgaT17cmVxdWVzdEJvZHk6ITEscmVxdWVzdENvbnRlbnRUeXBlOnt9fSxhPXMuZ2V0SW4oWyJyZXNvbHZlZFN1YnRyZWVzIiwicGF0aHMiLC4uLm8sInJlcXVlc3RCb2R5Il0sKDAsemUuZnJvbUpTKShbXSkpO3JldHVybiBhLnNpemU8MXx8KGEuZ2V0SW4oWyJyZXF1aXJlZCJdKSYmKGkucmVxdWVzdEJvZHk9YS5nZXRJbihbInJlcXVpcmVkIl0pKSxhLmdldEluKFsiY29udGVudCJdKS5lbnRyeVNlcSgpLmZvckVhY2goKHM9Pntjb25zdCBvPXNbMF07aWYoc1sxXS5nZXRJbihbInNjaGVtYSIsInJlcXVpcmVkIl0pKXtjb25zdCBhPXNbMV0uZ2V0SW4oWyJzY2hlbWEiLCJyZXF1aXJlZCJdKS50b0pTKCk7aS5yZXF1ZXN0Q29udGVudFR5cGVbb109YX19KSkpLGl9LGlzTWVkaWFUeXBlU2NoZW1hUHJvcGVydGllc0VxdWFsPShzLG8saSxhKT0+e2lmKChpfHxhKSYmaT09PWEpcmV0dXJuITA7bGV0IHU9cy5nZXRJbihbInJlc29sdmVkU3VidHJlZXMiLCJwYXRocyIsLi4ubywicmVxdWVzdEJvZHkiLCJjb250ZW50Il0sKDAsemUuZnJvbUpTKShbXSkpO2lmKHUuc2l6ZTwyfHwhaXx8IWEpcmV0dXJuITE7bGV0IF89dS5nZXRJbihbaSwic2NoZW1hIiwicHJvcGVydGllcyJdLCgwLHplLmZyb21KUykoW10pKSx3PXUuZ2V0SW4oW2EsInNjaGVtYSIsInByb3BlcnRpZXMiXSwoMCx6ZS5mcm9tSlMpKFtdKSk7cmV0dXJuISFfLmVxdWFscyh3KX07ZnVuY3Rpb24gcmV0dXJuU2VsZk9yTmV3TWFwKHMpe3JldHVybiB6ZS5NYXAuaXNNYXAocyk/czpuZXcgemUuTWFwfXZhciBubz1fX3dlYnBhY2tfcmVxdWlyZV9fKDg1MDE1KSxzbz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4obm8pLG9vPV9fd2VicGFja19yZXF1aXJlX18oMzgyMjEpLGlvPV9fd2VicGFja19yZXF1aXJlX18ubihvbyksYW89X193ZWJwYWNrX3JlcXVpcmVfXyg2MzU2MCksY289X193ZWJwYWNrX3JlcXVpcmVfXy5uKGFvKSxsbz1fX3dlYnBhY2tfcmVxdWlyZV9fKDU2MzY3KSx1bz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4obG8pO2NvbnN0IHBvPSJzcGVjX3VwZGF0ZV9zcGVjIixobz0ic3BlY191cGRhdGVfdXJsIixmbz0ic3BlY191cGRhdGVfanNvbiIsbW89InNwZWNfdXBkYXRlX3BhcmFtIixnbz0ic3BlY191cGRhdGVfZW1wdHlfcGFyYW1faW5jbHVzaW9uIix5bz0ic3BlY192YWxpZGF0ZV9wYXJhbSIsdm89InNwZWNfc2V0X3Jlc3BvbnNlIixibz0ic3BlY19zZXRfcmVxdWVzdCIsX289InNwZWNfc2V0X211dGF0ZWRfcmVxdWVzdCIsU289InNwZWNfbG9nX3JlcXVlc3QiLEVvPSJzcGVjX2NsZWFyX3Jlc3BvbnNlIix3bz0ic3BlY19jbGVhcl9yZXF1ZXN0Iix4bz0ic3BlY19jbGVhcl92YWxpZGF0ZV9wYXJhbSIsa289InNwZWNfdXBkYXRlX29wZXJhdGlvbl9tZXRhX3ZhbHVlIixPbz0ic3BlY191cGRhdGVfcmVzb2x2ZWQiLENvPSJzcGVjX3VwZGF0ZV9yZXNvbHZlZF9zdWJ0cmVlIixBbz0ic2V0X3NjaGVtZSIsdG9TdHI9cz0+c28oKShzKT9zOiIiO2Z1bmN0aW9uIHVwZGF0ZVNwZWMocyl7Y29uc3Qgbz10b1N0cihzKS5yZXBsYWNlKC9cdC9nLCIgICIpO2lmKCJzdHJpbmciPT10eXBlb2YgcylyZXR1cm57dHlwZTpwbyxwYXlsb2FkOm99fWZ1bmN0aW9uIHVwZGF0ZVJlc29sdmVkKHMpe3JldHVybnt0eXBlOk9vLHBheWxvYWQ6c319ZnVuY3Rpb24gdXBkYXRlVXJsKHMpe3JldHVybnt0eXBlOmhvLHBheWxvYWQ6c319ZnVuY3Rpb24gdXBkYXRlSnNvblNwZWMocyl7cmV0dXJue3R5cGU6Zm8scGF5bG9hZDpzfX1jb25zdCBwYXJzZVRvSnNvbj1zPT4oe3NwZWNBY3Rpb25zOm8sc3BlY1NlbGVjdG9yczppLGVyckFjdGlvbnM6YX0pPT57bGV0e3NwZWNTdHI6dX09aSxfPW51bGw7dHJ5e3M9c3x8dSgpLGEuY2xlYXIoe3NvdXJjZToicGFyc2VyIn0pLF89Zm4ubG9hZChzLHtzY2hlbWE6cm59KX1jYXRjaChzKXtyZXR1cm4gY29uc29sZS5lcnJvcihzKSxhLm5ld1NwZWNFcnIoe3NvdXJjZToicGFyc2VyIixsZXZlbDoiZXJyb3IiLG1lc3NhZ2U6cy5yZWFzb24sbGluZTpzLm1hcmsmJnMubWFyay5saW5lP3MubWFyay5saW5lKzE6dm9pZCAwfSl9cmV0dXJuIF8mJiJvYmplY3QiPT10eXBlb2YgXz9vLnVwZGF0ZUpzb25TcGVjKF8pOm8udXBkYXRlSnNvblNwZWMoe30pfTtsZXQgam89ITE7Y29uc3QgcmVzb2x2ZVNwZWM9KHMsbyk9Pih7c3BlY0FjdGlvbnM6aSxzcGVjU2VsZWN0b3JzOmEsZXJyQWN0aW9uczp1LGZuOntmZXRjaDpfLHJlc29sdmU6dyxBU1Q6eD17fX0sZ2V0Q29uZmlnczpDfSk9Pntqb3x8KGNvbnNvbGUud2Fybigic3BlY0FjdGlvbnMucmVzb2x2ZVNwZWMgaXMgZGVwcmVjYXRlZCBzaW5jZSB2My4xMC4wIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdjQuMC4wOyB1c2UgcmVxdWVzdFJlc29sdmVkU3VidHJlZSBpbnN0ZWFkISIpLGpvPSEwKTtjb25zdHttb2RlbFByb3BlcnR5TWFjcm86aixwYXJhbWV0ZXJNYWNybzpMLHJlcXVlc3RJbnRlcmNlcHRvcjpCLHJlc3BvbnNlSW50ZXJjZXB0b3I6JH09QygpO3ZvaWQgMD09PXMmJihzPWEuc3BlY0pzb24oKSksdm9pZCAwPT09byYmKG89YS51cmwoKSk7bGV0IFY9eC5nZXRMaW5lTnVtYmVyRm9yUGF0aD94LmdldExpbmVOdW1iZXJGb3JQYXRoOigpPT57fSxVPWEuc3BlY1N0cigpO3JldHVybiB3KHtmZXRjaDpfLHNwZWM6cyxiYXNlRG9jOlN0cmluZyhuZXcgVVJMKG8sZG9jdW1lbnQuYmFzZVVSSSkpLG1vZGVsUHJvcGVydHlNYWNybzpqLHBhcmFtZXRlck1hY3JvOkwscmVxdWVzdEludGVyY2VwdG9yOkIscmVzcG9uc2VJbnRlcmNlcHRvcjokfSkudGhlbigoKHtzcGVjOnMsZXJyb3JzOm99KT0+e2lmKHUuY2xlYXIoe3R5cGU6InRocm93biJ9KSxBcnJheS5pc0FycmF5KG8pJiZvLmxlbmd0aD4wKXtsZXQgcz1vLm1hcCgocz0+KGNvbnNvbGUuZXJyb3Iocykscy5saW5lPXMuZnVsbFBhdGg/VihVLHMuZnVsbFBhdGgpOm51bGwscy5wYXRoPXMuZnVsbFBhdGg/cy5mdWxsUGF0aC5qb2luKCIuIik6bnVsbCxzLmxldmVsPSJlcnJvciIscy50eXBlPSJ0aHJvd24iLHMuc291cmNlPSJyZXNvbHZlciIsT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsIm1lc3NhZ2UiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnMubWVzc2FnZX0pLHMpKSk7dS5uZXdUaHJvd25FcnJCYXRjaChzKX1yZXR1cm4gaS51cGRhdGVSZXNvbHZlZChzKX0pKX07bGV0IFBvPVtdO2NvbnN0IElvPWlvKCkoKCgpPT57Y29uc3Qgcz1Qby5yZWR1Y2UoKChzLHtwYXRoOm8sc3lzdGVtOml9KT0+KHMuaGFzKGkpfHxzLnNldChpLFtdKSxzLmdldChpKS5wdXNoKG8pLHMpKSxuZXcgTWFwKTtQbz1bXSxzLmZvckVhY2goKGFzeW5jKHMsbyk9PntpZighbylyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJkZWJSZXNvbHZlU3VidHJlZXM6IGRvbid0IGhhdmUgYSBzeXN0ZW0gdG8gb3BlcmF0ZSBvbiwgYWJvcnRpbmcuIik7aWYoIW8uZm4ucmVzb2x2ZVN1YnRyZWUpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiRXJyb3I6IFN3YWdnZXItQ2xpZW50IGRpZCBub3QgcHJvdmlkZSBhIGByZXNvbHZlU3VidHJlZWAgbWV0aG9kLCBkb2luZyBub3RoaW5nLiIpO2NvbnN0e2VyckFjdGlvbnM6aSxlcnJTZWxlY3RvcnM6YSxmbjp7cmVzb2x2ZVN1YnRyZWU6dSxmZXRjaDpfLEFTVDp3PXt9fSxzcGVjU2VsZWN0b3JzOngsc3BlY0FjdGlvbnM6Q309byxqPXcuZ2V0TGluZU51bWJlckZvclBhdGg/P3hzKCkodm9pZCAwKSxMPXguc3BlY1N0cigpLHttb2RlbFByb3BlcnR5TWFjcm86QixwYXJhbWV0ZXJNYWNybzokLHJlcXVlc3RJbnRlcmNlcHRvcjpWLHJlc3BvbnNlSW50ZXJjZXB0b3I6VX09by5nZXRDb25maWdzKCk7dHJ5e2NvbnN0IG89YXdhaXQgcy5yZWR1Y2UoKGFzeW5jKHMsbyk9PntsZXR7cmVzdWx0TWFwOncsc3BlY1dpdGhDdXJyZW50U3VidHJlZXM6Q309YXdhaXQgcztjb25zdHtlcnJvcnM6eixzcGVjOll9PWF3YWl0IHUoQyxvLHtiYXNlRG9jOlN0cmluZyhuZXcgVVJMKHgudXJsKCksZG9jdW1lbnQuYmFzZVVSSSkpLG1vZGVsUHJvcGVydHlNYWNybzpCLHBhcmFtZXRlck1hY3JvOiQscmVxdWVzdEludGVyY2VwdG9yOlYscmVzcG9uc2VJbnRlcmNlcHRvcjpVfSk7aWYoYS5hbGxFcnJvcnMoKS5zaXplJiZpLmNsZWFyQnkoKHM9PiJ0aHJvd24iIT09cy5nZXQoInR5cGUiKXx8InJlc29sdmVyIiE9PXMuZ2V0KCJzb3VyY2UiKXx8IXMuZ2V0KCJmdWxsUGF0aCIpPy5ldmVyeSgoKHMsaSk9PnM9PT1vW2ldfHx2b2lkIDA9PT1vW2ldKSkpKSxBcnJheS5pc0FycmF5KHopJiZ6Lmxlbmd0aD4wKXtsZXQgcz16Lm1hcCgocz0+KHMubGluZT1zLmZ1bGxQYXRoP2ooTCxzLmZ1bGxQYXRoKTpudWxsLHMucGF0aD1zLmZ1bGxQYXRoP3MuZnVsbFBhdGguam9pbigiLiIpOm51bGwscy5sZXZlbD0iZXJyb3IiLHMudHlwZT0idGhyb3duIixzLnNvdXJjZT0icmVzb2x2ZXIiLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJtZXNzYWdlIix7ZW51bWVyYWJsZTohMCx2YWx1ZTpzLm1lc3NhZ2V9KSxzKSkpO2kubmV3VGhyb3duRXJyQmF0Y2gocyl9cmV0dXJuIFkmJnguaXNPQVMzKCkmJiJjb21wb25lbnRzIj09PW9bMF0mJiJzZWN1cml0eVNjaGVtZXMiPT09b1sxXSYmYXdhaXQgUHJvbWlzZS5hbGwoT2JqZWN0LnZhbHVlcyhZKS5maWx0ZXIoKHM9PiJvcGVuSWRDb25uZWN0Ij09PXM/LnR5cGUpKS5tYXAoKGFzeW5jIHM9Pntjb25zdCBvPXt1cmw6cy5vcGVuSWRDb25uZWN0VXJsLHJlcXVlc3RJbnRlcmNlcHRvcjpWLHJlc3BvbnNlSW50ZXJjZXB0b3I6VX07dHJ5e2NvbnN0IGk9YXdhaXQgXyhvKTtpIGluc3RhbmNlb2YgRXJyb3J8fGkuc3RhdHVzPj00MDA/Y29uc29sZS5lcnJvcihpLnN0YXR1c1RleHQrIiAiK28udXJsKTpzLm9wZW5JZENvbm5lY3REYXRhPUpTT04ucGFyc2UoaS50ZXh0KX1jYXRjaChzKXtjb25zb2xlLmVycm9yKHMpfX0pKSksY28oKSh3LG8sWSksQz11bygpKG8sWSxDKSx7cmVzdWx0TWFwOncsc3BlY1dpdGhDdXJyZW50U3VidHJlZXM6Q319KSxQcm9taXNlLnJlc29sdmUoe3Jlc3VsdE1hcDooeC5zcGVjUmVzb2x2ZWRTdWJ0cmVlKFtdKXx8KDAsemUuTWFwKSgpKS50b0pTKCksc3BlY1dpdGhDdXJyZW50U3VidHJlZXM6eC5zcGVjSlMoKX0pKTtDLnVwZGF0ZVJlc29sdmVkU3VidHJlZShbXSxvLnJlc3VsdE1hcCl9Y2F0Y2gocyl7Y29uc29sZS5lcnJvcihzKX19KSl9KSwzNSkscmVxdWVzdFJlc29sdmVkU3VidHJlZT1zPT5vPT57UG8uZmluZCgoKHtwYXRoOmksc3lzdGVtOmF9KT0+YT09PW8mJmkudG9TdHJpbmcoKT09PXMudG9TdHJpbmcoKSkpfHwoUG8ucHVzaCh7cGF0aDpzLHN5c3RlbTpvfSksSW8oKSl9O2Z1bmN0aW9uIGNoYW5nZVBhcmFtKHMsbyxpLGEsdSl7cmV0dXJue3R5cGU6bW8scGF5bG9hZDp7cGF0aDpzLHZhbHVlOmEscGFyYW1OYW1lOm8scGFyYW1JbjppLGlzWG1sOnV9fX1mdW5jdGlvbiBjaGFuZ2VQYXJhbUJ5SWRlbnRpdHkocyxvLGksYSl7cmV0dXJue3R5cGU6bW8scGF5bG9hZDp7cGF0aDpzLHBhcmFtOm8sdmFsdWU6aSxpc1htbDphfX19Y29uc3QgdXBkYXRlUmVzb2x2ZWRTdWJ0cmVlPShzLG8pPT4oe3R5cGU6Q28scGF5bG9hZDp7cGF0aDpzLHZhbHVlOm99fSksaW52YWxpZGF0ZVJlc29sdmVkU3VidHJlZUNhY2hlPSgpPT4oe3R5cGU6Q28scGF5bG9hZDp7cGF0aDpbXSx2YWx1ZTooMCx6ZS5NYXApKCl9fSksdmFsaWRhdGVQYXJhbXM9KHMsbyk9Pih7dHlwZTp5byxwYXlsb2FkOntwYXRoTWV0aG9kOnMsaXNPQVMzOm99fSksdXBkYXRlRW1wdHlQYXJhbUluY2x1c2lvbj0ocyxvLGksYSk9Pih7dHlwZTpnbyxwYXlsb2FkOntwYXRoTWV0aG9kOnMscGFyYW1OYW1lOm8scGFyYW1JbjppLGluY2x1ZGVFbXB0eVZhbHVlOmF9fSk7ZnVuY3Rpb24gY2xlYXJWYWxpZGF0ZVBhcmFtcyhzKXtyZXR1cm57dHlwZTp4byxwYXlsb2FkOntwYXRoTWV0aG9kOnN9fX1mdW5jdGlvbiBjaGFuZ2VDb25zdW1lc1ZhbHVlKHMsbyl7cmV0dXJue3R5cGU6a28scGF5bG9hZDp7cGF0aDpzLHZhbHVlOm8sa2V5OiJjb25zdW1lc192YWx1ZSJ9fX1mdW5jdGlvbiBjaGFuZ2VQcm9kdWNlc1ZhbHVlKHMsbyl7cmV0dXJue3R5cGU6a28scGF5bG9hZDp7cGF0aDpzLHZhbHVlOm8sa2V5OiJwcm9kdWNlc192YWx1ZSJ9fX1jb25zdCBzZXRSZXNwb25zZT0ocyxvLGkpPT4oe3BheWxvYWQ6e3BhdGg6cyxtZXRob2Q6byxyZXM6aX0sdHlwZTp2b30pLHNldFJlcXVlc3Q9KHMsbyxpKT0+KHtwYXlsb2FkOntwYXRoOnMsbWV0aG9kOm8scmVxOml9LHR5cGU6Ym99KSxzZXRNdXRhdGVkUmVxdWVzdD0ocyxvLGkpPT4oe3BheWxvYWQ6e3BhdGg6cyxtZXRob2Q6byxyZXE6aX0sdHlwZTpfb30pLGxvZ1JlcXVlc3Q9cz0+KHtwYXlsb2FkOnMsdHlwZTpTb30pLGV4ZWN1dGVSZXF1ZXN0PXM9Pih7Zm46byxzcGVjQWN0aW9uczppLHNwZWNTZWxlY3RvcnM6YSxnZXRDb25maWdzOnUsb2FzM1NlbGVjdG9yczpffSk9PntsZXR7cGF0aE5hbWU6dyxtZXRob2Q6eCxvcGVyYXRpb246Q309cyx7cmVxdWVzdEludGVyY2VwdG9yOmoscmVzcG9uc2VJbnRlcmNlcHRvcjpMfT11KCksQj1DLnRvSlMoKTtpZihDJiZDLmdldCgicGFyYW1ldGVycyIpJiZDLmdldCgicGFyYW1ldGVycyIpLmZpbHRlcigocz0+cyYmITA9PT1zLmdldCgiYWxsb3dFbXB0eVZhbHVlIikpKS5mb3JFYWNoKChvPT57aWYoYS5wYXJhbWV0ZXJJbmNsdXNpb25TZXR0aW5nRm9yKFt3LHhdLG8uZ2V0KCJuYW1lIiksby5nZXQoImluIikpKXtzLnBhcmFtZXRlcnM9cy5wYXJhbWV0ZXJzfHx7fTtjb25zdCBpPXBhcmFtVG9WYWx1ZShvLHMucGFyYW1ldGVycyk7KCFpfHxpJiYwPT09aS5zaXplKSYmKHMucGFyYW1ldGVyc1tvLmdldCgibmFtZSIpXT0iIil9fSkpLHMuY29udGV4dFVybD1OdCgpKGEudXJsKCkpLnRvU3RyaW5nKCksQiYmQi5vcGVyYXRpb25JZD9zLm9wZXJhdGlvbklkPUIub3BlcmF0aW9uSWQ6QiYmdyYmeCYmKHMub3BlcmF0aW9uSWQ9by5vcElkKEIsdyx4KSksYS5pc09BUzMoKSl7Y29uc3Qgbz1gJHt3fToke3h9YDtzLnNlcnZlcj1fLnNlbGVjdGVkU2VydmVyKG8pfHxfLnNlbGVjdGVkU2VydmVyKCk7Y29uc3QgaT1fLnNlcnZlclZhcmlhYmxlcyh7c2VydmVyOnMuc2VydmVyLG5hbWVzcGFjZTpvfSkudG9KUygpLGE9Xy5zZXJ2ZXJWYXJpYWJsZXMoe3NlcnZlcjpzLnNlcnZlcn0pLnRvSlMoKTtzLnNlcnZlclZhcmlhYmxlcz1PYmplY3Qua2V5cyhpKS5sZW5ndGg/aTphLHMucmVxdWVzdENvbnRlbnRUeXBlPV8ucmVxdWVzdENvbnRlbnRUeXBlKHcseCkscy5yZXNwb25zZUNvbnRlbnRUeXBlPV8ucmVzcG9uc2VDb250ZW50VHlwZSh3LHgpfHwiKi8qIjtjb25zdCB1PV8ucmVxdWVzdEJvZHlWYWx1ZSh3LHgpLEM9Xy5yZXF1ZXN0Qm9keUluY2x1c2lvblNldHRpbmcodyx4KTt1JiZ1LnRvSlM/cy5yZXF1ZXN0Qm9keT11Lm1hcCgocz0+emUuTWFwLmlzTWFwKHMpP3MuZ2V0KCJ2YWx1ZSIpOnMpKS5maWx0ZXIoKChzLG8pPT4oQXJyYXkuaXNBcnJheShzKT8wIT09cy5sZW5ndGg6IWlzRW1wdHlWYWx1ZShzKSl8fEMuZ2V0KG8pKSkudG9KUygpOnMucmVxdWVzdEJvZHk9dX1sZXQgJD1PYmplY3QuYXNzaWduKHt9LHMpOyQ9by5idWlsZFJlcXVlc3QoJCksaS5zZXRSZXF1ZXN0KHMucGF0aE5hbWUscy5tZXRob2QsJCk7cy5yZXF1ZXN0SW50ZXJjZXB0b3I9YXN5bmMgbz0+e2xldCBhPWF3YWl0IGouYXBwbHkodm9pZCAwLFtvXSksdT1PYmplY3QuYXNzaWduKHt9LGEpO3JldHVybiBpLnNldE11dGF0ZWRSZXF1ZXN0KHMucGF0aE5hbWUscy5tZXRob2QsdSksYX0scy5yZXNwb25zZUludGVyY2VwdG9yPUw7Y29uc3QgVj1EYXRlLm5vdygpO3JldHVybiBvLmV4ZWN1dGUocykudGhlbigobz0+e28uZHVyYXRpb249RGF0ZS5ub3coKS1WLGkuc2V0UmVzcG9uc2Uocy5wYXRoTmFtZSxzLm1ldGhvZCxvKX0pKS5jYXRjaCgobz0+eyJGYWlsZWQgdG8gZmV0Y2giPT09by5tZXNzYWdlJiYoby5uYW1lPSIiLG8ubWVzc2FnZT0nKipGYWlsZWQgdG8gZmV0Y2guKiogIFxuKipQb3NzaWJsZSBSZWFzb25zOioqIFxuICAtIENPUlMgXG4gIC0gTmV0d29yayBGYWlsdXJlIFxuICAtIFVSTCBzY2hlbWUgbXVzdCBiZSAiaHR0cCIgb3IgImh0dHBzIiBmb3IgQ09SUyByZXF1ZXN0LicpLGkuc2V0UmVzcG9uc2Uocy5wYXRoTmFtZSxzLm1ldGhvZCx7ZXJyb3I6ITAsZXJyOm99KX0pKX0sYWN0aW9uc19leGVjdXRlPSh7cGF0aDpzLG1ldGhvZDpvLC4uLml9PXt9KT0+YT0+e2xldHtmbjp7ZmV0Y2g6dX0sc3BlY1NlbGVjdG9yczpfLHNwZWNBY3Rpb25zOnd9PWEseD1fLnNwZWNKc29uV2l0aFJlc29sdmVkU3VidHJlZXMoKS50b0pTKCksQz1fLm9wZXJhdGlvblNjaGVtZShzLG8pLHtyZXF1ZXN0Q29udGVudFR5cGU6aixyZXNwb25zZUNvbnRlbnRUeXBlOkx9PV8uY29udGVudFR5cGVWYWx1ZXMoW3Msb10pLnRvSlMoKSxCPS94bWwvaS50ZXN0KGopLCQ9Xy5wYXJhbWV0ZXJWYWx1ZXMoW3Msb10sQikudG9KUygpO3JldHVybiB3LmV4ZWN1dGVSZXF1ZXN0KHsuLi5pLGZldGNoOnUsc3BlYzp4LHBhdGhOYW1lOnMsbWV0aG9kOm8scGFyYW1ldGVyczokLHJlcXVlc3RDb250ZW50VHlwZTpqLHNjaGVtZTpDLHJlc3BvbnNlQ29udGVudFR5cGU6TH0pfTtmdW5jdGlvbiBjbGVhclJlc3BvbnNlKHMsbyl7cmV0dXJue3R5cGU6RW8scGF5bG9hZDp7cGF0aDpzLG1ldGhvZDpvfX19ZnVuY3Rpb24gY2xlYXJSZXF1ZXN0KHMsbyl7cmV0dXJue3R5cGU6d28scGF5bG9hZDp7cGF0aDpzLG1ldGhvZDpvfX19ZnVuY3Rpb24gc2V0U2NoZW1lKHMsbyxpKXtyZXR1cm57dHlwZTpBbyxwYXlsb2FkOntzY2hlbWU6cyxwYXRoOm8sbWV0aG9kOml9fX1jb25zdCBUbz17W3BvXToocyxvKT0+InN0cmluZyI9PXR5cGVvZiBvLnBheWxvYWQ/cy5zZXQoInNwZWMiLG8ucGF5bG9hZCk6cyxbaG9dOihzLG8pPT5zLnNldCgidXJsIixvLnBheWxvYWQrIiIpLFtmb106KHMsbyk9PnMuc2V0KCJqc29uIixmcm9tSlNPcmRlcmVkKG8ucGF5bG9hZCkpLFtPb106KHMsbyk9PnMuc2V0SW4oWyJyZXNvbHZlZCJdLGZyb21KU09yZGVyZWQoby5wYXlsb2FkKSksW0NvXToocyxvKT0+e2NvbnN0e3ZhbHVlOmkscGF0aDphfT1vLnBheWxvYWQ7cmV0dXJuIHMuc2V0SW4oWyJyZXNvbHZlZFN1YnRyZWVzIiwuLi5hXSxmcm9tSlNPcmRlcmVkKGkpKX0sW21vXToocyx7cGF5bG9hZDpvfSk9PntsZXR7cGF0aDppLHBhcmFtTmFtZTphLHBhcmFtSW46dSxwYXJhbTpfLHZhbHVlOncsaXNYbWw6eH09byxDPV8/cGFyYW1Ub0lkZW50aWZpZXIoXyk6YCR7dX0uJHthfWA7Y29uc3Qgaj14PyJ2YWx1ZV94bWwiOiJ2YWx1ZSI7cmV0dXJuIHMuc2V0SW4oWyJtZXRhIiwicGF0aHMiLC4uLmksInBhcmFtZXRlcnMiLEMsal0sKDAsemUuZnJvbUpTKSh3KSl9LFtnb106KHMse3BheWxvYWQ6b30pPT57bGV0e3BhdGhNZXRob2Q6aSxwYXJhbU5hbWU6YSxwYXJhbUluOnUsaW5jbHVkZUVtcHR5VmFsdWU6X309bztpZighYXx8IXUpcmV0dXJuIGNvbnNvbGUud2FybigiV2FybmluZzogVVBEQVRFX0VNUFRZX1BBUkFNX0lOQ0xVU0lPTiBjb3VsZCBub3QgZ2VuZXJhdGUgYSBwYXJhbUtleS4iKSxzO2NvbnN0IHc9YCR7dX0uJHthfWA7cmV0dXJuIHMuc2V0SW4oWyJtZXRhIiwicGF0aHMiLC4uLmksInBhcmFtZXRlcl9pbmNsdXNpb25zIix3XSxfKX0sW3lvXToocyx7cGF5bG9hZDp7cGF0aE1ldGhvZDpvLGlzT0FTMzppfX0pPT57Y29uc3QgYT1OcyhzKS5nZXRJbihbInBhdGhzIiwuLi5vXSksdT1wYXJhbWV0ZXJWYWx1ZXMocyxvKS50b0pTKCk7cmV0dXJuIHMudXBkYXRlSW4oWyJtZXRhIiwicGF0aHMiLC4uLm8sInBhcmFtZXRlcnMiXSwoMCx6ZS5mcm9tSlMpKHt9KSwoXz0+YS5nZXQoInBhcmFtZXRlcnMiLCgwLHplLkxpc3QpKCkpLnJlZHVjZSgoKGEsXyk9Pntjb25zdCB3PXBhcmFtVG9WYWx1ZShfLHUpLHg9cGFyYW1ldGVySW5jbHVzaW9uU2V0dGluZ0ZvcihzLG8sXy5nZXQoIm5hbWUiKSxfLmdldCgiaW4iKSksQz0oKHMsbyx7aXNPQVMzOmk9ITEsYnlwYXNzUmVxdWlyZWRDaGVjazphPSExfT17fSk9PntsZXQgdT1zLmdldCgicmVxdWlyZWQiKSx7c2NoZW1hOl8scGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZTp3fT1nZXRQYXJhbWV0ZXJTY2hlbWEocyx7aXNPQVMzOml9KTtyZXR1cm4gdmFsaWRhdGVWYWx1ZUJ5U2NoZW1hKG8sXyx1LGEsdyl9KShfLHcse2J5cGFzc1JlcXVpcmVkQ2hlY2s6eCxpc09BUzM6aX0pO3JldHVybiBhLnNldEluKFtwYXJhbVRvSWRlbnRpZmllcihfKSwiZXJyb3JzIl0sKDAsemUuZnJvbUpTKShDKSl9KSxfKSkpfSxbeG9dOihzLHtwYXlsb2FkOntwYXRoTWV0aG9kOm99fSk9PnMudXBkYXRlSW4oWyJtZXRhIiwicGF0aHMiLC4uLm8sInBhcmFtZXRlcnMiXSwoMCx6ZS5mcm9tSlMpKFtdKSwocz0+cy5tYXAoKHM9PnMuc2V0KCJlcnJvcnMiLCgwLHplLmZyb21KUykoW10pKSkpKSksW3ZvXToocyx7cGF5bG9hZDp7cmVzOm8scGF0aDppLG1ldGhvZDphfX0pPT57bGV0IHU7dT1vLmVycm9yP09iamVjdC5hc3NpZ24oe2Vycm9yOiEwLG5hbWU6by5lcnIubmFtZSxtZXNzYWdlOm8uZXJyLm1lc3NhZ2Usc3RhdHVzQ29kZTpvLmVyci5zdGF0dXNDb2RlfSxvLmVyci5yZXNwb25zZSk6byx1LmhlYWRlcnM9dS5oZWFkZXJzfHx7fTtsZXQgXz1zLnNldEluKFsicmVzcG9uc2VzIixpLGFdLGZyb21KU09yZGVyZWQodSkpO3JldHVybiBsdC5CbG9iJiZ1LmRhdGEgaW5zdGFuY2VvZiBsdC5CbG9iJiYoXz1fLnNldEluKFsicmVzcG9uc2VzIixpLGEsInRleHQiXSx1LmRhdGEpKSxffSxbYm9dOihzLHtwYXlsb2FkOntyZXE6byxwYXRoOmksbWV0aG9kOmF9fSk9PnMuc2V0SW4oWyJyZXF1ZXN0cyIsaSxhXSxmcm9tSlNPcmRlcmVkKG8pKSxbX29dOihzLHtwYXlsb2FkOntyZXE6byxwYXRoOmksbWV0aG9kOmF9fSk9PnMuc2V0SW4oWyJtdXRhdGVkUmVxdWVzdHMiLGksYV0sZnJvbUpTT3JkZXJlZChvKSksW2tvXToocyx7cGF5bG9hZDp7cGF0aDpvLHZhbHVlOmksa2V5OmF9fSk9PntsZXQgdT1bInBhdGhzIiwuLi5vXSxfPVsibWV0YSIsInBhdGhzIiwuLi5vXTtyZXR1cm4gcy5nZXRJbihbImpzb24iLC4uLnVdKXx8cy5nZXRJbihbInJlc29sdmVkIiwuLi51XSl8fHMuZ2V0SW4oWyJyZXNvbHZlZFN1YnRyZWVzIiwuLi51XSk/cy5zZXRJbihbLi4uXyxhXSwoMCx6ZS5mcm9tSlMpKGkpKTpzfSxbRW9dOihzLHtwYXlsb2FkOntwYXRoOm8sbWV0aG9kOml9fSk9PnMuZGVsZXRlSW4oWyJyZXNwb25zZXMiLG8saV0pLFt3b106KHMse3BheWxvYWQ6e3BhdGg6byxtZXRob2Q6aX19KT0+cy5kZWxldGVJbihbInJlcXVlc3RzIixvLGldKSxbQW9dOihzLHtwYXlsb2FkOntzY2hlbWU6byxwYXRoOmksbWV0aG9kOmF9fSk9PmkmJmE/cy5zZXRJbihbInNjaGVtZSIsaSxhXSxvKTppfHxhP3ZvaWQgMDpzLnNldEluKFsic2NoZW1lIiwiX2RlZmF1bHRTY2hlbWUiXSxvKX0sd3JhcF9hY3Rpb25zX3VwZGF0ZVNwZWM9KHMse3NwZWNBY3Rpb25zOm99KT0+KC4uLmkpPT57cyguLi5pKSxvLnBhcnNlVG9Kc29uKC4uLmkpfSx3cmFwX2FjdGlvbnNfdXBkYXRlSnNvblNwZWM9KHMse3NwZWNBY3Rpb25zOm99KT0+KC4uLmkpPT57cyguLi5pKSxvLmludmFsaWRhdGVSZXNvbHZlZFN1YnRyZWVDYWNoZSgpO2NvbnN0W2FdPWksdT1BbigpKGEsWyJwYXRocyJdKXx8e307T2JqZWN0LmtleXModSkuZm9yRWFjaCgocz0+e2NvbnN0IGk9QW4oKSh1LFtzXSk7YXMoKShpKSYmaS4kcmVmJiZvLnJlcXVlc3RSZXNvbHZlZFN1YnRyZWUoWyJwYXRocyIsc10pfSkpLG8ucmVxdWVzdFJlc29sdmVkU3VidHJlZShbImNvbXBvbmVudHMiLCJzZWN1cml0eVNjaGVtZXMiXSl9LHdyYXBfYWN0aW9uc19leGVjdXRlUmVxdWVzdD0ocyx7c3BlY0FjdGlvbnM6b30pPT5pPT4oby5sb2dSZXF1ZXN0KGkpLHMoaSkpLHdyYXBfYWN0aW9uc192YWxpZGF0ZVBhcmFtcz0ocyx7c3BlY1NlbGVjdG9yczpvfSk9Pmk9PnMoaSxvLmlzT0FTMygpKSxwbHVnaW5zX3NwZWM9KCk9Pih7c3RhdGVQbHVnaW5zOntzcGVjOnt3cmFwQWN0aW9uczp7Li4uWX0scmVkdWNlcnM6ey4uLlRvfSxhY3Rpb25zOnsuLi56fSxzZWxlY3RvcnM6ey4uLlV9fX19KTt2YXIgTm89ZnVuY3Rpb24oKXt2YXIgZXh0ZW5kU3RhdGljcz1mdW5jdGlvbihzLG8pe3JldHVybiBleHRlbmRTdGF0aWNzPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihzLG8pe3MuX19wcm90b19fPW99fHxmdW5jdGlvbihzLG8pe2Zvcih2YXIgaSBpbiBvKW8uaGFzT3duUHJvcGVydHkoaSkmJihzW2ldPW9baV0pfSxleHRlbmRTdGF0aWNzKHMsbyl9O3JldHVybiBmdW5jdGlvbihzLG8pe2Z1bmN0aW9uIF9fKCl7dGhpcy5jb25zdHJ1Y3Rvcj1zfWV4dGVuZFN0YXRpY3MocyxvKSxzLnByb3RvdHlwZT1udWxsPT09bz9PYmplY3QuY3JlYXRlKG8pOihfXy5wcm90b3R5cGU9by5wcm90b3R5cGUsbmV3IF9fKX19KCksTW89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBtb2R1bGVfaGVscGVyc19oYXNPd25Qcm9wZXJ0eShzLG8pe3JldHVybiBNby5jYWxsKHMsbyl9ZnVuY3Rpb24gX29iamVjdEtleXMocyl7aWYoQXJyYXkuaXNBcnJheShzKSl7Zm9yKHZhciBvPW5ldyBBcnJheShzLmxlbmd0aCksaT0wO2k8by5sZW5ndGg7aSsrKW9baV09IiIraTtyZXR1cm4gb31pZihPYmplY3Qua2V5cylyZXR1cm4gT2JqZWN0LmtleXMocyk7dmFyIGE9W107Zm9yKHZhciB1IGluIHMpbW9kdWxlX2hlbHBlcnNfaGFzT3duUHJvcGVydHkocyx1KSYmYS5wdXNoKHUpO3JldHVybiBhfWZ1bmN0aW9uIF9kZWVwQ2xvbmUocyl7c3dpdGNoKHR5cGVvZiBzKXtjYXNlIm9iamVjdCI6cmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocykpO2Nhc2UidW5kZWZpbmVkIjpyZXR1cm4gbnVsbDtkZWZhdWx0OnJldHVybiBzfX1mdW5jdGlvbiBoZWxwZXJzX2lzSW50ZWdlcihzKXtmb3IodmFyIG8saT0wLGE9cy5sZW5ndGg7aTxhOyl7aWYoISgobz1zLmNoYXJDb2RlQXQoaSkpPj00OCYmbzw9NTcpKXJldHVybiExO2krK31yZXR1cm4hMH1mdW5jdGlvbiBlc2NhcGVQYXRoQ29tcG9uZW50KHMpe3JldHVybi0xPT09cy5pbmRleE9mKCIvIikmJi0xPT09cy5pbmRleE9mKCJ+Iik/czpzLnJlcGxhY2UoL34vZywifjAiKS5yZXBsYWNlKC9cLy9nLCJ+MSIpfWZ1bmN0aW9uIHVuZXNjYXBlUGF0aENvbXBvbmVudChzKXtyZXR1cm4gcy5yZXBsYWNlKC9+MS9nLCIvIikucmVwbGFjZSgvfjAvZywifiIpfWZ1bmN0aW9uIGhhc1VuZGVmaW5lZChzKXtpZih2b2lkIDA9PT1zKXJldHVybiEwO2lmKHMpaWYoQXJyYXkuaXNBcnJheShzKSl7Zm9yKHZhciBvPTAsaT1zLmxlbmd0aDtvPGk7bysrKWlmKGhhc1VuZGVmaW5lZChzW29dKSlyZXR1cm4hMH1lbHNlIGlmKCJvYmplY3QiPT10eXBlb2Ygcylmb3IodmFyIGE9X29iamVjdEtleXMocyksdT1hLmxlbmd0aCxfPTA7Xzx1O18rKylpZihoYXNVbmRlZmluZWQoc1thW19dXSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gcGF0Y2hFcnJvck1lc3NhZ2VGb3JtYXR0ZXIocyxvKXt2YXIgaT1bc107Zm9yKHZhciBhIGluIG8pe3ZhciB1PSJvYmplY3QiPT10eXBlb2Ygb1thXT9KU09OLnN0cmluZ2lmeShvW2FdLG51bGwsMik6b1thXTt2b2lkIDAhPT11JiZpLnB1c2goYSsiOiAiK3UpfXJldHVybiBpLmpvaW4oIlxuIil9dmFyIFJvPWZ1bmN0aW9uKHMpe2Z1bmN0aW9uIFBhdGNoRXJyb3IobyxpLGEsdSxfKXt2YXIgdz10aGlzLmNvbnN0cnVjdG9yLHg9cy5jYWxsKHRoaXMscGF0Y2hFcnJvck1lc3NhZ2VGb3JtYXR0ZXIobyx7bmFtZTppLGluZGV4OmEsb3BlcmF0aW9uOnUsdHJlZTpffSkpfHx0aGlzO3JldHVybiB4Lm5hbWU9aSx4LmluZGV4PWEseC5vcGVyYXRpb249dSx4LnRyZWU9XyxPYmplY3Quc2V0UHJvdG90eXBlT2YoeCx3LnByb3RvdHlwZSkseC5tZXNzYWdlPXBhdGNoRXJyb3JNZXNzYWdlRm9ybWF0dGVyKG8se25hbWU6aSxpbmRleDphLG9wZXJhdGlvbjp1LHRyZWU6X30pLHh9cmV0dXJuIE5vKFBhdGNoRXJyb3IscyksUGF0Y2hFcnJvcn0oRXJyb3IpLERvPVJvLExvPV9kZWVwQ2xvbmUsRm89e2FkZDpmdW5jdGlvbihzLG8saSl7cmV0dXJuIHNbb109dGhpcy52YWx1ZSx7bmV3RG9jdW1lbnQ6aX19LHJlbW92ZTpmdW5jdGlvbihzLG8saSl7dmFyIGE9c1tvXTtyZXR1cm4gZGVsZXRlIHNbb10se25ld0RvY3VtZW50OmkscmVtb3ZlZDphfX0scmVwbGFjZTpmdW5jdGlvbihzLG8saSl7dmFyIGE9c1tvXTtyZXR1cm4gc1tvXT10aGlzLnZhbHVlLHtuZXdEb2N1bWVudDppLHJlbW92ZWQ6YX19LG1vdmU6ZnVuY3Rpb24ocyxvLGkpe3ZhciBhPWdldFZhbHVlQnlQb2ludGVyKGksdGhpcy5wYXRoKTthJiYoYT1fZGVlcENsb25lKGEpKTt2YXIgdT1hcHBseU9wZXJhdGlvbihpLHtvcDoicmVtb3ZlIixwYXRoOnRoaXMuZnJvbX0pLnJlbW92ZWQ7cmV0dXJuIGFwcGx5T3BlcmF0aW9uKGkse29wOiJhZGQiLHBhdGg6dGhpcy5wYXRoLHZhbHVlOnV9KSx7bmV3RG9jdW1lbnQ6aSxyZW1vdmVkOmF9fSxjb3B5OmZ1bmN0aW9uKHMsbyxpKXt2YXIgYT1nZXRWYWx1ZUJ5UG9pbnRlcihpLHRoaXMuZnJvbSk7cmV0dXJuIGFwcGx5T3BlcmF0aW9uKGkse29wOiJhZGQiLHBhdGg6dGhpcy5wYXRoLHZhbHVlOl9kZWVwQ2xvbmUoYSl9KSx7bmV3RG9jdW1lbnQ6aX19LHRlc3Q6ZnVuY3Rpb24ocyxvLGkpe3JldHVybntuZXdEb2N1bWVudDppLHRlc3Q6X2FyZUVxdWFscyhzW29dLHRoaXMudmFsdWUpfX0sX2dldDpmdW5jdGlvbihzLG8saSl7cmV0dXJuIHRoaXMudmFsdWU9c1tvXSx7bmV3RG9jdW1lbnQ6aX19fSxCbz17YWRkOmZ1bmN0aW9uKHMsbyxpKXtyZXR1cm4gaGVscGVyc19pc0ludGVnZXIobyk/cy5zcGxpY2UobywwLHRoaXMudmFsdWUpOnNbb109dGhpcy52YWx1ZSx7bmV3RG9jdW1lbnQ6aSxpbmRleDpvfX0scmVtb3ZlOmZ1bmN0aW9uKHMsbyxpKXtyZXR1cm57bmV3RG9jdW1lbnQ6aSxyZW1vdmVkOnMuc3BsaWNlKG8sMSlbMF19fSxyZXBsYWNlOmZ1bmN0aW9uKHMsbyxpKXt2YXIgYT1zW29dO3JldHVybiBzW29dPXRoaXMudmFsdWUse25ld0RvY3VtZW50OmkscmVtb3ZlZDphfX0sbW92ZTpGby5tb3ZlLGNvcHk6Rm8uY29weSx0ZXN0OkZvLnRlc3QsX2dldDpGby5fZ2V0fTtmdW5jdGlvbiBnZXRWYWx1ZUJ5UG9pbnRlcihzLG8pe2lmKCIiPT1vKXJldHVybiBzO3ZhciBpPXtvcDoiX2dldCIscGF0aDpvfTtyZXR1cm4gYXBwbHlPcGVyYXRpb24ocyxpKSxpLnZhbHVlfWZ1bmN0aW9uIGFwcGx5T3BlcmF0aW9uKHMsbyxpLGEsdSxfKXtpZih2b2lkIDA9PT1pJiYoaT0hMSksdm9pZCAwPT09YSYmKGE9ITApLHZvaWQgMD09PXUmJih1PSEwKSx2b2lkIDA9PT1fJiYoXz0wKSxpJiYoImZ1bmN0aW9uIj09dHlwZW9mIGk/aShvLDAscyxvLnBhdGgpOnZhbGlkYXRvcihvLDApKSwiIj09PW8ucGF0aCl7dmFyIHc9e25ld0RvY3VtZW50OnN9O2lmKCJhZGQiPT09by5vcClyZXR1cm4gdy5uZXdEb2N1bWVudD1vLnZhbHVlLHc7aWYoInJlcGxhY2UiPT09by5vcClyZXR1cm4gdy5uZXdEb2N1bWVudD1vLnZhbHVlLHcucmVtb3ZlZD1zLHc7aWYoIm1vdmUiPT09by5vcHx8ImNvcHkiPT09by5vcClyZXR1cm4gdy5uZXdEb2N1bWVudD1nZXRWYWx1ZUJ5UG9pbnRlcihzLG8uZnJvbSksIm1vdmUiPT09by5vcCYmKHcucmVtb3ZlZD1zKSx3O2lmKCJ0ZXN0Ij09PW8ub3Ape2lmKHcudGVzdD1fYXJlRXF1YWxzKHMsby52YWx1ZSksITE9PT13LnRlc3QpdGhyb3cgbmV3IERvKCJUZXN0IG9wZXJhdGlvbiBmYWlsZWQiLCJURVNUX09QRVJBVElPTl9GQUlMRUQiLF8sbyxzKTtyZXR1cm4gdy5uZXdEb2N1bWVudD1zLHd9aWYoInJlbW92ZSI9PT1vLm9wKXJldHVybiB3LnJlbW92ZWQ9cyx3Lm5ld0RvY3VtZW50PW51bGwsdztpZigiX2dldCI9PT1vLm9wKXJldHVybiBvLnZhbHVlPXMsdztpZihpKXRocm93IG5ldyBEbygiT3BlcmF0aW9uIGBvcGAgcHJvcGVydHkgaXMgbm90IG9uZSBvZiBvcGVyYXRpb25zIGRlZmluZWQgaW4gUkZDLTY5MDIiLCJPUEVSQVRJT05fT1BfSU5WQUxJRCIsXyxvLHMpO3JldHVybiB3fWF8fChzPV9kZWVwQ2xvbmUocykpO3ZhciB4PShvLnBhdGh8fCIiKS5zcGxpdCgiLyIpLEM9cyxqPTEsTD14Lmxlbmd0aCxCPXZvaWQgMCwkPXZvaWQgMCxWPXZvaWQgMDtmb3IoVj0iZnVuY3Rpb24iPT10eXBlb2YgaT9pOnZhbGlkYXRvcjs7KXtpZigoJD14W2pdKSYmLTEhPSQuaW5kZXhPZigifiIpJiYoJD11bmVzY2FwZVBhdGhDb21wb25lbnQoJCkpLHUmJigiX19wcm90b19fIj09JHx8InByb3RvdHlwZSI9PSQmJmo+MCYmImNvbnN0cnVjdG9yIj09eFtqLTFdKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJKU09OLVBhdGNoOiBtb2RpZnlpbmcgYF9fcHJvdG9fX2Agb3IgYGNvbnN0cnVjdG9yL3Byb3RvdHlwZWAgcHJvcCBpcyBiYW5uZWQgZm9yIHNlY3VyaXR5IHJlYXNvbnMsIGlmIHRoaXMgd2FzIG9uIHB1cnBvc2UsIHBsZWFzZSBzZXQgYGJhblByb3RvdHlwZU1vZGlmaWNhdGlvbnNgIGZsYWcgZmFsc2UgYW5kIHBhc3MgaXQgdG8gdGhpcyBmdW5jdGlvbi4gTW9yZSBpbmZvIGluIGZhc3QtanNvbi1wYXRjaCBSRUFETUUiKTtpZihpJiZ2b2lkIDA9PT1CJiYodm9pZCAwPT09Q1skXT9CPXguc2xpY2UoMCxqKS5qb2luKCIvIik6aj09TC0xJiYoQj1vLnBhdGgpLHZvaWQgMCE9PUImJlYobywwLHMsQikpLGorKyxBcnJheS5pc0FycmF5KEMpKXtpZigiLSI9PT0kKSQ9Qy5sZW5ndGg7ZWxzZXtpZihpJiYhaGVscGVyc19pc0ludGVnZXIoJCkpdGhyb3cgbmV3IERvKCJFeHBlY3RlZCBhbiB1bnNpZ25lZCBiYXNlLTEwIGludGVnZXIgdmFsdWUsIG1ha2luZyB0aGUgbmV3IHJlZmVyZW5jZWQgdmFsdWUgdGhlIGFycmF5IGVsZW1lbnQgd2l0aCB0aGUgemVyby1iYXNlZCBpbmRleCIsIk9QRVJBVElPTl9QQVRIX0lMTEVHQUxfQVJSQVlfSU5ERVgiLF8sbyxzKTtoZWxwZXJzX2lzSW50ZWdlcigkKSYmKCQ9fn4kKX1pZihqPj1MKXtpZihpJiYiYWRkIj09PW8ub3AmJiQ+Qy5sZW5ndGgpdGhyb3cgbmV3IERvKCJUaGUgc3BlY2lmaWVkIGluZGV4IE1VU1QgTk9UIGJlIGdyZWF0ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBhcnJheSIsIk9QRVJBVElPTl9WQUxVRV9PVVRfT0ZfQk9VTkRTIixfLG8scyk7aWYoITE9PT0odz1Cb1tvLm9wXS5jYWxsKG8sQywkLHMpKS50ZXN0KXRocm93IG5ldyBEbygiVGVzdCBvcGVyYXRpb24gZmFpbGVkIiwiVEVTVF9PUEVSQVRJT05fRkFJTEVEIixfLG8scyk7cmV0dXJuIHd9fWVsc2UgaWYoaj49TCl7aWYoITE9PT0odz1Gb1tvLm9wXS5jYWxsKG8sQywkLHMpKS50ZXN0KXRocm93IG5ldyBEbygiVGVzdCBvcGVyYXRpb24gZmFpbGVkIiwiVEVTVF9PUEVSQVRJT05fRkFJTEVEIixfLG8scyk7cmV0dXJuIHd9aWYoQz1DWyRdLGkmJmo8TCYmKCFDfHwib2JqZWN0IiE9dHlwZW9mIEMpKXRocm93IG5ldyBEbygiQ2Fubm90IHBlcmZvcm0gb3BlcmF0aW9uIGF0IHRoZSBkZXNpcmVkIHBhdGgiLCJPUEVSQVRJT05fUEFUSF9VTlJFU09MVkFCTEUiLF8sbyxzKX19ZnVuY3Rpb24gYXBwbHlQYXRjaChzLG8saSxhLHUpe2lmKHZvaWQgMD09PWEmJihhPSEwKSx2b2lkIDA9PT11JiYodT0hMCksaSYmIUFycmF5LmlzQXJyYXkobykpdGhyb3cgbmV3IERvKCJQYXRjaCBzZXF1ZW5jZSBtdXN0IGJlIGFuIGFycmF5IiwiU0VRVUVOQ0VfTk9UX0FOX0FSUkFZIik7YXx8KHM9X2RlZXBDbG9uZShzKSk7Zm9yKHZhciBfPW5ldyBBcnJheShvLmxlbmd0aCksdz0wLHg9by5sZW5ndGg7dzx4O3crKylfW3ddPWFwcGx5T3BlcmF0aW9uKHMsb1t3XSxpLCEwLHUsdykscz1fW3ddLm5ld0RvY3VtZW50O3JldHVybiBfLm5ld0RvY3VtZW50PXMsX31mdW5jdGlvbiBhcHBseVJlZHVjZXIocyxvLGkpe3ZhciBhPWFwcGx5T3BlcmF0aW9uKHMsbyk7aWYoITE9PT1hLnRlc3QpdGhyb3cgbmV3IERvKCJUZXN0IG9wZXJhdGlvbiBmYWlsZWQiLCJURVNUX09QRVJBVElPTl9GQUlMRUQiLGksbyxzKTtyZXR1cm4gYS5uZXdEb2N1bWVudH1mdW5jdGlvbiB2YWxpZGF0b3IocyxvLGksYSl7aWYoIm9iamVjdCIhPXR5cGVvZiBzfHxudWxsPT09c3x8QXJyYXkuaXNBcnJheShzKSl0aHJvdyBuZXcgRG8oIk9wZXJhdGlvbiBpcyBub3QgYW4gb2JqZWN0IiwiT1BFUkFUSU9OX05PVF9BTl9PQkpFQ1QiLG8scyxpKTtpZighRm9bcy5vcF0pdGhyb3cgbmV3IERvKCJPcGVyYXRpb24gYG9wYCBwcm9wZXJ0eSBpcyBub3Qgb25lIG9mIG9wZXJhdGlvbnMgZGVmaW5lZCBpbiBSRkMtNjkwMiIsIk9QRVJBVElPTl9PUF9JTlZBTElEIixvLHMsaSk7aWYoInN0cmluZyIhPXR5cGVvZiBzLnBhdGgpdGhyb3cgbmV3IERvKCJPcGVyYXRpb24gYHBhdGhgIHByb3BlcnR5IGlzIG5vdCBhIHN0cmluZyIsIk9QRVJBVElPTl9QQVRIX0lOVkFMSUQiLG8scyxpKTtpZigwIT09cy5wYXRoLmluZGV4T2YoIi8iKSYmcy5wYXRoLmxlbmd0aD4wKXRocm93IG5ldyBEbygnT3BlcmF0aW9uIGBwYXRoYCBwcm9wZXJ0eSBtdXN0IHN0YXJ0IHdpdGggIi8iJywiT1BFUkFUSU9OX1BBVEhfSU5WQUxJRCIsbyxzLGkpO2lmKCgibW92ZSI9PT1zLm9wfHwiY29weSI9PT1zLm9wKSYmInN0cmluZyIhPXR5cGVvZiBzLmZyb20pdGhyb3cgbmV3IERvKCJPcGVyYXRpb24gYGZyb21gIHByb3BlcnR5IGlzIG5vdCBwcmVzZW50IChhcHBsaWNhYmxlIGluIGBtb3ZlYCBhbmQgYGNvcHlgIG9wZXJhdGlvbnMpIiwiT1BFUkFUSU9OX0ZST01fUkVRVUlSRUQiLG8scyxpKTtpZigoImFkZCI9PT1zLm9wfHwicmVwbGFjZSI9PT1zLm9wfHwidGVzdCI9PT1zLm9wKSYmdm9pZCAwPT09cy52YWx1ZSl0aHJvdyBuZXcgRG8oIk9wZXJhdGlvbiBgdmFsdWVgIHByb3BlcnR5IGlzIG5vdCBwcmVzZW50IChhcHBsaWNhYmxlIGluIGBhZGRgLCBgcmVwbGFjZWAgYW5kIGB0ZXN0YCBvcGVyYXRpb25zKSIsIk9QRVJBVElPTl9WQUxVRV9SRVFVSVJFRCIsbyxzLGkpO2lmKCgiYWRkIj09PXMub3B8fCJyZXBsYWNlIj09PXMub3B8fCJ0ZXN0Ij09PXMub3ApJiZoYXNVbmRlZmluZWQocy52YWx1ZSkpdGhyb3cgbmV3IERvKCJPcGVyYXRpb24gYHZhbHVlYCBwcm9wZXJ0eSBpcyBub3QgcHJlc2VudCAoYXBwbGljYWJsZSBpbiBgYWRkYCwgYHJlcGxhY2VgIGFuZCBgdGVzdGAgb3BlcmF0aW9ucykiLCJPUEVSQVRJT05fVkFMVUVfQ0FOTk9UX0NPTlRBSU5fVU5ERUZJTkVEIixvLHMsaSk7aWYoaSlpZigiYWRkIj09cy5vcCl7dmFyIHU9cy5wYXRoLnNwbGl0KCIvIikubGVuZ3RoLF89YS5zcGxpdCgiLyIpLmxlbmd0aDtpZih1IT09XysxJiZ1IT09Xyl0aHJvdyBuZXcgRG8oIkNhbm5vdCBwZXJmb3JtIGFuIGBhZGRgIG9wZXJhdGlvbiBhdCB0aGUgZGVzaXJlZCBwYXRoIiwiT1BFUkFUSU9OX1BBVEhfQ0FOTk9UX0FERCIsbyxzLGkpfWVsc2UgaWYoInJlcGxhY2UiPT09cy5vcHx8InJlbW92ZSI9PT1zLm9wfHwiX2dldCI9PT1zLm9wKXtpZihzLnBhdGghPT1hKXRocm93IG5ldyBEbygiQ2Fubm90IHBlcmZvcm0gdGhlIG9wZXJhdGlvbiBhdCBhIHBhdGggdGhhdCBkb2VzIG5vdCBleGlzdCIsIk9QRVJBVElPTl9QQVRIX1VOUkVTT0xWQUJMRSIsbyxzLGkpfWVsc2UgaWYoIm1vdmUiPT09cy5vcHx8ImNvcHkiPT09cy5vcCl7dmFyIHc9dmFsaWRhdGUoW3tvcDoiX2dldCIscGF0aDpzLmZyb20sdmFsdWU6dm9pZCAwfV0saSk7aWYodyYmIk9QRVJBVElPTl9QQVRIX1VOUkVTT0xWQUJMRSI9PT13Lm5hbWUpdGhyb3cgbmV3IERvKCJDYW5ub3QgcGVyZm9ybSB0aGUgb3BlcmF0aW9uIGZyb20gYSBwYXRoIHRoYXQgZG9lcyBub3QgZXhpc3QiLCJPUEVSQVRJT05fRlJPTV9VTlJFU09MVkFCTEUiLG8scyxpKX19ZnVuY3Rpb24gdmFsaWRhdGUocyxvLGkpe3RyeXtpZighQXJyYXkuaXNBcnJheShzKSl0aHJvdyBuZXcgRG8oIlBhdGNoIHNlcXVlbmNlIG11c3QgYmUgYW4gYXJyYXkiLCJTRVFVRU5DRV9OT1RfQU5fQVJSQVkiKTtpZihvKWFwcGx5UGF0Y2goX2RlZXBDbG9uZShvKSxfZGVlcENsb25lKHMpLGl8fCEwKTtlbHNle2k9aXx8dmFsaWRhdG9yO2Zvcih2YXIgYT0wO2E8cy5sZW5ndGg7YSsrKWkoc1thXSxhLG8sdm9pZCAwKX19Y2F0Y2gocyl7aWYocyBpbnN0YW5jZW9mIERvKXJldHVybiBzO3Rocm93IHN9fWZ1bmN0aW9uIF9hcmVFcXVhbHMocyxvKXtpZihzPT09bylyZXR1cm4hMDtpZihzJiZvJiYib2JqZWN0Ij09dHlwZW9mIHMmJiJvYmplY3QiPT10eXBlb2Ygbyl7dmFyIGksYSx1LF89QXJyYXkuaXNBcnJheShzKSx3PUFycmF5LmlzQXJyYXkobyk7aWYoXyYmdyl7aWYoKGE9cy5sZW5ndGgpIT1vLmxlbmd0aClyZXR1cm4hMTtmb3IoaT1hOzAhPWktLTspaWYoIV9hcmVFcXVhbHMoc1tpXSxvW2ldKSlyZXR1cm4hMTtyZXR1cm4hMH1pZihfIT13KXJldHVybiExO3ZhciB4PU9iamVjdC5rZXlzKHMpO2lmKChhPXgubGVuZ3RoKSE9PU9iamVjdC5rZXlzKG8pLmxlbmd0aClyZXR1cm4hMTtmb3IoaT1hOzAhPWktLTspaWYoIW8uaGFzT3duUHJvcGVydHkoeFtpXSkpcmV0dXJuITE7Zm9yKGk9YTswIT1pLS07KWlmKCFfYXJlRXF1YWxzKHNbdT14W2ldXSxvW3VdKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4gcyE9cyYmbyE9b312YXIgJG89bmV3IFdlYWtNYXAscW89ZnVuY3Rpb24gcW8ocyl7dGhpcy5vYnNlcnZlcnM9bmV3IE1hcCx0aGlzLm9iaj1zfSxWbz1mdW5jdGlvbiBWbyhzLG8pe3RoaXMuY2FsbGJhY2s9cyx0aGlzLm9ic2VydmVyPW99O2Z1bmN0aW9uIHVub2JzZXJ2ZShzLG8pe28udW5vYnNlcnZlKCl9ZnVuY3Rpb24gb2JzZXJ2ZShzLG8pe3ZhciBpLGE9ZnVuY3Rpb24gZ2V0TWlycm9yKHMpe3JldHVybiAkby5nZXQocyl9KHMpO2lmKGEpe3ZhciB1PWZ1bmN0aW9uIGdldE9ic2VydmVyRnJvbU1pcnJvcihzLG8pe3JldHVybiBzLm9ic2VydmVycy5nZXQobyl9KGEsbyk7aT11JiZ1Lm9ic2VydmVyfWVsc2UgYT1uZXcgcW8ocyksJG8uc2V0KHMsYSk7aWYoaSlyZXR1cm4gaTtpZihpPXt9LGEudmFsdWU9X2RlZXBDbG9uZShzKSxvKXtpLmNhbGxiYWNrPW8saS5uZXh0PW51bGw7dmFyIGRpcnR5Q2hlY2s9ZnVuY3Rpb24oKXtnZW5lcmF0ZShpKX0sZmFzdENoZWNrPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGkubmV4dCksaS5uZXh0PXNldFRpbWVvdXQoZGlydHlDaGVjayl9OyJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYod2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLGZhc3RDaGVjayksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixmYXN0Q2hlY2spLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGZhc3RDaGVjayksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZhc3RDaGVjayksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZmFzdENoZWNrKSl9cmV0dXJuIGkucGF0Y2hlcz1bXSxpLm9iamVjdD1zLGkudW5vYnNlcnZlPWZ1bmN0aW9uKCl7Z2VuZXJhdGUoaSksY2xlYXJUaW1lb3V0KGkubmV4dCksZnVuY3Rpb24gcmVtb3ZlT2JzZXJ2ZXJGcm9tTWlycm9yKHMsbyl7cy5vYnNlcnZlcnMuZGVsZXRlKG8uY2FsbGJhY2spfShhLGkpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLGZhc3RDaGVjayksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIixmYXN0Q2hlY2spLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGZhc3RDaGVjayksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZhc3RDaGVjayksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZmFzdENoZWNrKSl9LGEub2JzZXJ2ZXJzLnNldChvLG5ldyBWbyhvLGkpKSxpfWZ1bmN0aW9uIGdlbmVyYXRlKHMsbyl7dm9pZCAwPT09byYmKG89ITEpO3ZhciBpPSRvLmdldChzLm9iamVjdCk7X2dlbmVyYXRlKGkudmFsdWUscy5vYmplY3Qscy5wYXRjaGVzLCIiLG8pLHMucGF0Y2hlcy5sZW5ndGgmJmFwcGx5UGF0Y2goaS52YWx1ZSxzLnBhdGNoZXMpO3ZhciBhPXMucGF0Y2hlcztyZXR1cm4gYS5sZW5ndGg+MCYmKHMucGF0Y2hlcz1bXSxzLmNhbGxiYWNrJiZzLmNhbGxiYWNrKGEpKSxhfWZ1bmN0aW9uIF9nZW5lcmF0ZShzLG8saSxhLHUpe2lmKG8hPT1zKXsiZnVuY3Rpb24iPT10eXBlb2Ygby50b0pTT04mJihvPW8udG9KU09OKCkpO2Zvcih2YXIgXz1fb2JqZWN0S2V5cyhvKSx3PV9vYmplY3RLZXlzKHMpLHg9ITEsQz13Lmxlbmd0aC0xO0M+PTA7Qy0tKXt2YXIgaj1zW0I9d1tDXV07aWYoIW1vZHVsZV9oZWxwZXJzX2hhc093blByb3BlcnR5KG8sQil8fHZvaWQgMD09PW9bQl0mJnZvaWQgMCE9PWomJiExPT09QXJyYXkuaXNBcnJheShvKSlBcnJheS5pc0FycmF5KHMpPT09QXJyYXkuaXNBcnJheShvKT8odSYmaS5wdXNoKHtvcDoidGVzdCIscGF0aDphKyIvIitlc2NhcGVQYXRoQ29tcG9uZW50KEIpLHZhbHVlOl9kZWVwQ2xvbmUoail9KSxpLnB1c2goe29wOiJyZW1vdmUiLHBhdGg6YSsiLyIrZXNjYXBlUGF0aENvbXBvbmVudChCKX0pLHg9ITApOih1JiZpLnB1c2goe29wOiJ0ZXN0IixwYXRoOmEsdmFsdWU6c30pLGkucHVzaCh7b3A6InJlcGxhY2UiLHBhdGg6YSx2YWx1ZTpvfSksITApO2Vsc2V7dmFyIEw9b1tCXTsib2JqZWN0Ij09dHlwZW9mIGomJm51bGwhPWomJiJvYmplY3QiPT10eXBlb2YgTCYmbnVsbCE9TCYmQXJyYXkuaXNBcnJheShqKT09PUFycmF5LmlzQXJyYXkoTCk/X2dlbmVyYXRlKGosTCxpLGErIi8iK2VzY2FwZVBhdGhDb21wb25lbnQoQiksdSk6aiE9PUwmJih1JiZpLnB1c2goe29wOiJ0ZXN0IixwYXRoOmErIi8iK2VzY2FwZVBhdGhDb21wb25lbnQoQiksdmFsdWU6X2RlZXBDbG9uZShqKX0pLGkucHVzaCh7b3A6InJlcGxhY2UiLHBhdGg6YSsiLyIrZXNjYXBlUGF0aENvbXBvbmVudChCKSx2YWx1ZTpfZGVlcENsb25lKEwpfSkpfX1pZih4fHxfLmxlbmd0aCE9dy5sZW5ndGgpZm9yKEM9MDtDPF8ubGVuZ3RoO0MrKyl7dmFyIEI7bW9kdWxlX2hlbHBlcnNfaGFzT3duUHJvcGVydHkocyxCPV9bQ10pfHx2b2lkIDA9PT1vW0JdfHxpLnB1c2goe29wOiJhZGQiLHBhdGg6YSsiLyIrZXNjYXBlUGF0aENvbXBvbmVudChCKSx2YWx1ZTpfZGVlcENsb25lKG9bQl0pfSl9fX1mdW5jdGlvbiBjb21wYXJlKHMsbyxpKXt2b2lkIDA9PT1pJiYoaT0hMSk7dmFyIGE9W107cmV0dXJuIF9nZW5lcmF0ZShzLG8sYSwiIixpKSxhfU9iamVjdC5hc3NpZ24oe30sWixlZSx7SnNvblBhdGNoRXJyb3I6Um8sZGVlcENsb25lOl9kZWVwQ2xvbmUsZXNjYXBlUGF0aENvbXBvbmVudCx1bmVzY2FwZVBhdGhDb21wb25lbnR9KTt2YXIgVW89X193ZWJwYWNrX3JlcXVpcmVfXygxNDc0NCksem89X193ZWJwYWNrX3JlcXVpcmVfXy5uKFVvKTtjb25zdCBXbz17YWRkOmZ1bmN0aW9uIGFkZChzLG8pe3JldHVybntvcDoiYWRkIixwYXRoOnMsdmFsdWU6b319LHJlcGxhY2UscmVtb3ZlOmZ1bmN0aW9uIHJlbW92ZShzKXtyZXR1cm57b3A6InJlbW92ZSIscGF0aDpzfX0sbWVyZ2U6ZnVuY3Rpb24gbGliX21lcmdlKHMsbyl7cmV0dXJue3R5cGU6Im11dGF0aW9uIixvcDoibWVyZ2UiLHBhdGg6cyx2YWx1ZTpvfX0sbWVyZ2VEZWVwOmZ1bmN0aW9uIG1lcmdlRGVlcChzLG8pe3JldHVybnt0eXBlOiJtdXRhdGlvbiIsb3A6Im1lcmdlRGVlcCIscGF0aDpzLHZhbHVlOm99fSxjb250ZXh0OmZ1bmN0aW9uIGNvbnRleHQocyxvKXtyZXR1cm57dHlwZToiY29udGV4dCIscGF0aDpzLHZhbHVlOm99fSxnZXRJbjpmdW5jdGlvbiBsaWJfZ2V0SW4ocyxvKXtyZXR1cm4gby5yZWR1Y2UoKChzLG8pPT52b2lkIDAhPT1vJiZzP3Nbb106cykscyl9LGFwcGx5UGF0Y2g6ZnVuY3Rpb24gbGliX2FwcGx5UGF0Y2gocyxvLGkpe2lmKGk9aXx8e30sIm1lcmdlIj09PShvPXsuLi5vLHBhdGg6by5wYXRoJiZub3JtYWxpemVKU09OUGF0aChvLnBhdGgpfSkub3Ape2NvbnN0IGk9Z2V0SW5CeUpzb25QYXRoKHMsby5wYXRoKTtPYmplY3QuYXNzaWduKGksby52YWx1ZSksYXBwbHlQYXRjaChzLFtyZXBsYWNlKG8ucGF0aCxpKV0pfWVsc2UgaWYoIm1lcmdlRGVlcCI9PT1vLm9wKXtjb25zdCBpPWdldEluQnlKc29uUGF0aChzLG8ucGF0aCksYT16bygpKGksby52YWx1ZSx7Y3VzdG9tTWVyZ2U6cz0+e2lmKCJlbnVtIj09PXMpcmV0dXJuKHMsbyk9PkFycmF5LmlzQXJyYXkocykmJkFycmF5LmlzQXJyYXkobyk/Wy4uLm5ldyBTZXQoWy4uLnMsLi4ub10pXTp6bygpKHMsbyl9fSk7cz1hcHBseVBhdGNoKHMsW3JlcGxhY2Uoby5wYXRoLGEpXSkubmV3RG9jdW1lbnR9ZWxzZSBpZigiYWRkIj09PW8ub3AmJiIiPT09by5wYXRoJiZsaWJfaXNPYmplY3Qoby52YWx1ZSkpe2FwcGx5UGF0Y2gocyxPYmplY3Qua2V5cyhvLnZhbHVlKS5yZWR1Y2UoKChzLGkpPT4ocy5wdXNoKHtvcDoiYWRkIixwYXRoOmAvJHtub3JtYWxpemVKU09OUGF0aChpKX1gLHZhbHVlOm8udmFsdWVbaV19KSxzKSksW10pKX1lbHNlIGlmKCJyZXBsYWNlIj09PW8ub3AmJiIiPT09by5wYXRoKXtsZXR7dmFsdWU6YX09bztpLmFsbG93TWV0YVBhdGNoZXMmJm8ubWV0YSYmaXNBZGRpdGl2ZU11dGF0aW9uKG8pJiYoQXJyYXkuaXNBcnJheShvLnZhbHVlKXx8bGliX2lzT2JqZWN0KG8udmFsdWUpKSYmKGE9ey4uLmEsLi4uby5tZXRhfSkscz1hfWVsc2UgaWYoYXBwbHlQYXRjaChzLFtvXSksaS5hbGxvd01ldGFQYXRjaGVzJiZvLm1ldGEmJmlzQWRkaXRpdmVNdXRhdGlvbihvKSYmKEFycmF5LmlzQXJyYXkoby52YWx1ZSl8fGxpYl9pc09iamVjdChvLnZhbHVlKSkpe2NvbnN0IGk9ey4uLmdldEluQnlKc29uUGF0aChzLG8ucGF0aCksLi4uby5tZXRhfTthcHBseVBhdGNoKHMsW3JlcGxhY2Uoby5wYXRoLGkpXSl9cmV0dXJuIHN9LHBhcmVudFBhdGhNYXRjaDpmdW5jdGlvbiBwYXJlbnRQYXRoTWF0Y2gocyxvKXtpZighQXJyYXkuaXNBcnJheShvKSlyZXR1cm4hMTtmb3IobGV0IGk9MCxhPW8ubGVuZ3RoO2k8YTtpKz0xKWlmKG9baV0hPT1zW2ldKXJldHVybiExO3JldHVybiEwfSxmbGF0dGVuLGZ1bGx5Tm9ybWFsaXplQXJyYXk6ZnVuY3Rpb24gZnVsbHlOb3JtYWxpemVBcnJheShzKXtyZXR1cm4gY2xlYW5BcnJheShmbGF0dGVuKGxpYl9ub3JtYWxpemVBcnJheShzKSkpfSxub3JtYWxpemVBcnJheTpsaWJfbm9ybWFsaXplQXJyYXksaXNQcm9taXNlOmZ1bmN0aW9uIGlzUHJvbWlzZShzKXtyZXR1cm4gbGliX2lzT2JqZWN0KHMpJiZsaWJfaXNGdW5jdGlvbihzLnRoZW4pfSxmb3JFYWNoTmV3OmZ1bmN0aW9uIGZvckVhY2hOZXcocyxvKXt0cnl7cmV0dXJuIGZvckVhY2hOZXdQYXRjaChzLGZvckVhY2gsbyl9Y2F0Y2gocyl7cmV0dXJuIHN9fSxmb3JFYWNoTmV3UHJpbWl0aXZlOmZ1bmN0aW9uIGZvckVhY2hOZXdQcmltaXRpdmUocyxvKXt0cnl7cmV0dXJuIGZvckVhY2hOZXdQYXRjaChzLGZvckVhY2hQcmltaXRpdmUsbyl9Y2F0Y2gocyl7cmV0dXJuIHN9fSxpc0pzb25QYXRjaCxpc0NvbnRleHRQYXRjaDpmdW5jdGlvbiBpc0NvbnRleHRQYXRjaChzKXtyZXR1cm4gaXNQYXRjaChzKSYmImNvbnRleHQiPT09cy50eXBlfSxpc1BhdGNoLGlzTXV0YXRpb24saXNBZGRpdGl2ZU11dGF0aW9uLGlzR2VuZXJhdG9yOmZ1bmN0aW9uIGlzR2VuZXJhdG9yKHMpe3JldHVybiJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocyl9LGlzRnVuY3Rpb246bGliX2lzRnVuY3Rpb24saXNPYmplY3Q6bGliX2lzT2JqZWN0LGlzRXJyb3I6ZnVuY3Rpb24gbGliX2lzRXJyb3Iocyl7cmV0dXJuIHMgaW5zdGFuY2VvZiBFcnJvcn19O2Z1bmN0aW9uIG5vcm1hbGl6ZUpTT05QYXRoKHMpe3JldHVybiBBcnJheS5pc0FycmF5KHMpP3MubGVuZ3RoPDE/IiI6YC8ke3MubWFwKChzPT4ocysiIikucmVwbGFjZSgvfi9nLCJ+MCIpLnJlcGxhY2UoL1wvL2csIn4xIikpKS5qb2luKCIvIil9YDpzfWZ1bmN0aW9uIHJlcGxhY2UocyxvLGkpe3JldHVybntvcDoicmVwbGFjZSIscGF0aDpzLHZhbHVlOm8sbWV0YTppfX1mdW5jdGlvbiBmb3JFYWNoTmV3UGF0Y2gocyxvLGkpe3JldHVybiBjbGVhbkFycmF5KGZsYXR0ZW4ocy5maWx0ZXIoaXNBZGRpdGl2ZU11dGF0aW9uKS5tYXAoKHM9Pm8ocy52YWx1ZSxpLHMucGF0aCkpKXx8W10pKX1mdW5jdGlvbiBmb3JFYWNoUHJpbWl0aXZlKHMsbyxpKXtyZXR1cm4gaT1pfHxbXSxBcnJheS5pc0FycmF5KHMpP3MubWFwKCgocyxhKT0+Zm9yRWFjaFByaW1pdGl2ZShzLG8saS5jb25jYXQoYSkpKSk6bGliX2lzT2JqZWN0KHMpP09iamVjdC5rZXlzKHMpLm1hcCgoYT0+Zm9yRWFjaFByaW1pdGl2ZShzW2FdLG8saS5jb25jYXQoYSkpKSk6byhzLGlbaS5sZW5ndGgtMV0saSl9ZnVuY3Rpb24gZm9yRWFjaChzLG8saSl7bGV0IGE9W107aWYoKGk9aXx8W10pLmxlbmd0aD4wKXtjb25zdCB1PW8ocyxpW2kubGVuZ3RoLTFdLGkpO3UmJihhPWEuY29uY2F0KHUpKX1pZihBcnJheS5pc0FycmF5KHMpKXtjb25zdCB1PXMubWFwKCgocyxhKT0+Zm9yRWFjaChzLG8saS5jb25jYXQoYSkpKSk7dSYmKGE9YS5jb25jYXQodSkpfWVsc2UgaWYobGliX2lzT2JqZWN0KHMpKXtjb25zdCB1PU9iamVjdC5rZXlzKHMpLm1hcCgoYT0+Zm9yRWFjaChzW2FdLG8saS5jb25jYXQoYSkpKSk7dSYmKGE9YS5jb25jYXQodSkpfXJldHVybiBhPWZsYXR0ZW4oYSksYX1mdW5jdGlvbiBsaWJfbm9ybWFsaXplQXJyYXkocyl7cmV0dXJuIEFycmF5LmlzQXJyYXkocyk/czpbc119ZnVuY3Rpb24gZmxhdHRlbihzKXtyZXR1cm5bXS5jb25jYXQoLi4ucy5tYXAoKHM9PkFycmF5LmlzQXJyYXkocyk/ZmxhdHRlbihzKTpzKSkpfWZ1bmN0aW9uIGNsZWFuQXJyYXkocyl7cmV0dXJuIHMuZmlsdGVyKChzPT52b2lkIDAhPT1zKSl9ZnVuY3Rpb24gbGliX2lzT2JqZWN0KHMpe3JldHVybiBzJiYib2JqZWN0Ij09dHlwZW9mIHN9ZnVuY3Rpb24gbGliX2lzRnVuY3Rpb24ocyl7cmV0dXJuIHMmJiJmdW5jdGlvbiI9PXR5cGVvZiBzfWZ1bmN0aW9uIGlzSnNvblBhdGNoKHMpe2lmKGlzUGF0Y2gocykpe2NvbnN0e29wOm99PXM7cmV0dXJuImFkZCI9PT1vfHwicmVtb3ZlIj09PW98fCJyZXBsYWNlIj09PW99cmV0dXJuITF9ZnVuY3Rpb24gaXNNdXRhdGlvbihzKXtyZXR1cm4gaXNKc29uUGF0Y2gocyl8fGlzUGF0Y2gocykmJiJtdXRhdGlvbiI9PT1zLnR5cGV9ZnVuY3Rpb24gaXNBZGRpdGl2ZU11dGF0aW9uKHMpe3JldHVybiBpc011dGF0aW9uKHMpJiYoImFkZCI9PT1zLm9wfHwicmVwbGFjZSI9PT1zLm9wfHwibWVyZ2UiPT09cy5vcHx8Im1lcmdlRGVlcCI9PT1zLm9wKX1mdW5jdGlvbiBpc1BhdGNoKHMpe3JldHVybiBzJiYib2JqZWN0Ij09dHlwZW9mIHN9ZnVuY3Rpb24gZ2V0SW5CeUpzb25QYXRoKHMsbyl7dHJ5e3JldHVybiBnZXRWYWx1ZUJ5UG9pbnRlcihzLG8pfWNhdGNoKHMpe3JldHVybiBjb25zb2xlLmVycm9yKHMpLHt9fX12YXIgSm89X193ZWJwYWNrX3JlcXVpcmVfXyg0ODY3NSk7Y29uc3QgSG89Y2xhc3MgQXBpRE9NQWdncmVnYXRlRXJyb3IgZXh0ZW5kcyBKb3tjb25zdHJ1Y3RvcihzLG8saSl7aWYoc3VwZXIocyxvLGkpLHRoaXMubmFtZT10aGlzLmNvbnN0cnVjdG9yLm5hbWUsInN0cmluZyI9PXR5cGVvZiBvJiYodGhpcy5tZXNzYWdlPW8pLCJmdW5jdGlvbiI9PXR5cGVvZiBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9bmV3IEVycm9yKG8pLnN0YWNrLG51bGwhPWkmJiJvYmplY3QiPT10eXBlb2YgaSYmT2JqZWN0Lmhhc093bihpLCJjYXVzZSIpJiYhKCJjYXVzZSJpbiB0aGlzKSl7Y29uc3R7Y2F1c2U6c309aTt0aGlzLmNhdXNlPXMscyBpbnN0YW5jZW9mIEVycm9yJiYic3RhY2siaW4gcyYmKHRoaXMuc3RhY2s9YCR7dGhpcy5zdGFja31cbkNBVVNFOiAke3Muc3RhY2t9YCl9fX07Y2xhc3MgQXBpRE9NRXJyb3IgZXh0ZW5kcyBFcnJvcntzdGF0aWNbU3ltYm9sLmhhc0luc3RhbmNlXShzKXtyZXR1cm4gc3VwZXJbU3ltYm9sLmhhc0luc3RhbmNlXShzKXx8RnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0uY2FsbChIbyxzKX1jb25zdHJ1Y3RvcihzLG8pe2lmKHN1cGVyKHMsbyksdGhpcy5uYW1lPXRoaXMuY29uc3RydWN0b3IubmFtZSwic3RyaW5nIj09dHlwZW9mIHMmJih0aGlzLm1lc3NhZ2U9cyksImZ1bmN0aW9uIj09dHlwZW9mIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3Iocykuc3RhY2ssbnVsbCE9byYmIm9iamVjdCI9PXR5cGVvZiBvJiZPYmplY3QuaGFzT3duKG8sImNhdXNlIikmJiEoImNhdXNlImluIHRoaXMpKXtjb25zdHtjYXVzZTpzfT1vO3RoaXMuY2F1c2U9cyxzIGluc3RhbmNlb2YgRXJyb3ImJiJzdGFjayJpbiBzJiYodGhpcy5zdGFjaz1gJHt0aGlzLnN0YWNrfVxuQ0FVU0U6ICR7cy5zdGFja31gKX19fWNvbnN0IEtvPUFwaURPTUVycm9yO2NvbnN0IEdvPWNsYXNzIEFwaURPTVN0cnVjdHVyZWRFcnJvciBleHRlbmRzIEtve2NvbnN0cnVjdG9yKHMsbyl7aWYoc3VwZXIocyxvKSxudWxsIT1vJiYib2JqZWN0Ij09dHlwZW9mIG8pe2NvbnN0e2NhdXNlOnMsLi4uaX09bztPYmplY3QuYXNzaWduKHRoaXMsaSl9fX07dmFyIFlvPV9fd2VicGFja19yZXF1aXJlX18oNjU2MDYpO2Z1bmN0aW9uIF9pc1BsYWNlaG9sZGVyKHMpe3JldHVybiBudWxsIT1zJiYib2JqZWN0Ij09dHlwZW9mIHMmJiEwPT09c1siQEBmdW5jdGlvbmFsL3BsYWNlaG9sZGVyIl19ZnVuY3Rpb24gX2N1cnJ5MShzKXtyZXR1cm4gZnVuY3Rpb24gZjEobyl7cmV0dXJuIDA9PT1hcmd1bWVudHMubGVuZ3RofHxfaXNQbGFjZWhvbGRlcihvKT9mMTpzLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gX2N1cnJ5MihzKXtyZXR1cm4gZnVuY3Rpb24gZjIobyxpKXtzd2l0Y2goYXJndW1lbnRzLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBmMjtjYXNlIDE6cmV0dXJuIF9pc1BsYWNlaG9sZGVyKG8pP2YyOl9jdXJyeTEoKGZ1bmN0aW9uKGkpe3JldHVybiBzKG8saSl9KSk7ZGVmYXVsdDpyZXR1cm4gX2lzUGxhY2Vob2xkZXIobykmJl9pc1BsYWNlaG9sZGVyKGkpP2YyOl9pc1BsYWNlaG9sZGVyKG8pP19jdXJyeTEoKGZ1bmN0aW9uKG8pe3JldHVybiBzKG8saSl9KSk6X2lzUGxhY2Vob2xkZXIoaSk/X2N1cnJ5MSgoZnVuY3Rpb24oaSl7cmV0dXJuIHMobyxpKX0pKTpzKG8saSl9fX1mdW5jdGlvbiBfY3VycnkzKHMpe3JldHVybiBmdW5jdGlvbiBmMyhvLGksYSl7c3dpdGNoKGFyZ3VtZW50cy5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gZjM7Y2FzZSAxOnJldHVybiBfaXNQbGFjZWhvbGRlcihvKT9mMzpfY3VycnkyKChmdW5jdGlvbihpLGEpe3JldHVybiBzKG8saSxhKX0pKTtjYXNlIDI6cmV0dXJuIF9pc1BsYWNlaG9sZGVyKG8pJiZfaXNQbGFjZWhvbGRlcihpKT9mMzpfaXNQbGFjZWhvbGRlcihvKT9fY3VycnkyKChmdW5jdGlvbihvLGEpe3JldHVybiBzKG8saSxhKX0pKTpfaXNQbGFjZWhvbGRlcihpKT9fY3VycnkyKChmdW5jdGlvbihpLGEpe3JldHVybiBzKG8saSxhKX0pKTpfY3VycnkxKChmdW5jdGlvbihhKXtyZXR1cm4gcyhvLGksYSl9KSk7ZGVmYXVsdDpyZXR1cm4gX2lzUGxhY2Vob2xkZXIobykmJl9pc1BsYWNlaG9sZGVyKGkpJiZfaXNQbGFjZWhvbGRlcihhKT9mMzpfaXNQbGFjZWhvbGRlcihvKSYmX2lzUGxhY2Vob2xkZXIoaSk/X2N1cnJ5MigoZnVuY3Rpb24obyxpKXtyZXR1cm4gcyhvLGksYSl9KSk6X2lzUGxhY2Vob2xkZXIobykmJl9pc1BsYWNlaG9sZGVyKGEpP19jdXJyeTIoKGZ1bmN0aW9uKG8sYSl7cmV0dXJuIHMobyxpLGEpfSkpOl9pc1BsYWNlaG9sZGVyKGkpJiZfaXNQbGFjZWhvbGRlcihhKT9fY3VycnkyKChmdW5jdGlvbihpLGEpe3JldHVybiBzKG8saSxhKX0pKTpfaXNQbGFjZWhvbGRlcihvKT9fY3VycnkxKChmdW5jdGlvbihvKXtyZXR1cm4gcyhvLGksYSl9KSk6X2lzUGxhY2Vob2xkZXIoaSk/X2N1cnJ5MSgoZnVuY3Rpb24oaSl7cmV0dXJuIHMobyxpLGEpfSkpOl9pc1BsYWNlaG9sZGVyKGEpP19jdXJyeTEoKGZ1bmN0aW9uKGEpe3JldHVybiBzKG8saSxhKX0pKTpzKG8saSxhKX19fWNvbnN0IFhvPU51bWJlci5pc0ludGVnZXJ8fGZ1bmN0aW9uIF9pc0ludGVnZXIocyl7cmV0dXJuKHN8MCk9PT1zfTtmdW5jdGlvbiBfaXNTdHJpbmcocyl7cmV0dXJuIltvYmplY3QgU3RyaW5nXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocyl9ZnVuY3Rpb24gX250aChzLG8pe3ZhciBpPXM8MD9vLmxlbmd0aCtzOnM7cmV0dXJuIF9pc1N0cmluZyhvKT9vLmNoYXJBdChpKTpvW2ldfWZ1bmN0aW9uIF9wYXRoKHMsbyl7Zm9yKHZhciBpPW8sYT0wO2E8cy5sZW5ndGg7YSs9MSl7aWYobnVsbD09aSlyZXR1cm47dmFyIHU9c1thXTtpPVhvKHUpP19udGgodSxpKTppW3VdfXJldHVybiBpfWNvbnN0IFFvPV9jdXJyeTMoKGZ1bmN0aW9uIHBhdGhTYXRpc2ZpZXMocyxvLGkpe3JldHVybiBzKF9wYXRoKG8saSkpfSkpO2Z1bmN0aW9uIF9jbG9uZVJlZ0V4cChzKXtyZXR1cm4gbmV3IFJlZ0V4cChzLnNvdXJjZSxzLmZsYWdzP3MuZmxhZ3M6KHMuZ2xvYmFsPyJnIjoiIikrKHMuaWdub3JlQ2FzZT8iaSI6IiIpKyhzLm11bHRpbGluZT8ibSI6IiIpKyhzLnN0aWNreT8ieSI6IiIpKyhzLnVuaWNvZGU/InUiOiIiKSsocy5kb3RBbGw/InMiOiIiKSl9ZnVuY3Rpb24gX2FycmF5RnJvbUl0ZXJhdG9yKHMpe2Zvcih2YXIgbyxpPVtdOyEobz1zLm5leHQoKSkuZG9uZTspaS5wdXNoKG8udmFsdWUpO3JldHVybiBpfWZ1bmN0aW9uIF9pbmNsdWRlc1dpdGgocyxvLGkpe2Zvcih2YXIgYT0wLHU9aS5sZW5ndGg7YTx1Oyl7aWYocyhvLGlbYV0pKXJldHVybiEwO2ErPTF9cmV0dXJuITF9ZnVuY3Rpb24gX2hhcyhzLG8pe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobyxzKX1jb25zdCBabz0iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmlzP09iamVjdC5pczpmdW5jdGlvbiBfb2JqZWN0SXMocyxvKXtyZXR1cm4gcz09PW8/MCE9PXN8fDEvcz09MS9vOnMhPXMmJm8hPW99O3ZhciBfaT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2NvbnN0IEVpPWZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgQXJndW1lbnRzXSI9PT1faS5jYWxsKGFyZ3VtZW50cyk/ZnVuY3Rpb24gX2lzQXJndW1lbnRzKHMpe3JldHVybiJbb2JqZWN0IEFyZ3VtZW50c10iPT09X2kuY2FsbChzKX06ZnVuY3Rpb24gX2lzQXJndW1lbnRzKHMpe3JldHVybiBfaGFzKCJjYWxsZWUiLHMpfX0oKTt2YXIgT2k9IXt0b1N0cmluZzpudWxsfS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgidG9TdHJpbmciKSxQaT1bImNvbnN0cnVjdG9yIiwidmFsdWVPZiIsImlzUHJvdG90eXBlT2YiLCJ0b1N0cmluZyIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiaGFzT3duUHJvcGVydHkiLCJ0b0xvY2FsZVN0cmluZyJdLE1pPWZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50cy5wcm9wZXJ0eUlzRW51bWVyYWJsZSgibGVuZ3RoIil9KCksUmk9ZnVuY3Rpb24gY29udGFpbnMocyxvKXtmb3IodmFyIGk9MDtpPHMubGVuZ3RoOyl7aWYoc1tpXT09PW8pcmV0dXJuITA7aSs9MX1yZXR1cm4hMX0sV2k9ImZ1bmN0aW9uIiE9dHlwZW9mIE9iamVjdC5rZXlzfHxNaT9fY3VycnkxKChmdW5jdGlvbiBrZXlzKHMpe2lmKE9iamVjdChzKSE9PXMpcmV0dXJuW107dmFyIG8saSxhPVtdLHU9TWkmJkVpKHMpO2ZvcihvIGluIHMpIV9oYXMobyxzKXx8dSYmImxlbmd0aCI9PT1vfHwoYVthLmxlbmd0aF09byk7aWYoT2kpZm9yKGk9UGkubGVuZ3RoLTE7aT49MDspX2hhcyhvPVBpW2ldLHMpJiYhUmkoYSxvKSYmKGFbYS5sZW5ndGhdPW8pLGktPTE7cmV0dXJuIGF9KSk6X2N1cnJ5MSgoZnVuY3Rpb24ga2V5cyhzKXtyZXR1cm4gT2JqZWN0KHMpIT09cz9bXTpPYmplY3Qua2V5cyhzKX0pKTtjb25zdCBlYT1XaTtjb25zdCByYT1fY3VycnkxKChmdW5jdGlvbiB0eXBlKHMpe3JldHVybiBudWxsPT09cz8iTnVsbCI6dm9pZCAwPT09cz8iVW5kZWZpbmVkIjpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocykuc2xpY2UoOCwtMSl9KSk7ZnVuY3Rpb24gX3VuaXFDb250ZW50RXF1YWxzKHMsbyxpLGEpe3ZhciB1PV9hcnJheUZyb21JdGVyYXRvcihzKTtmdW5jdGlvbiBlcShzLG8pe3JldHVybiBfZXF1YWxzKHMsbyxpLnNsaWNlKCksYS5zbGljZSgpKX1yZXR1cm4hX2luY2x1ZGVzV2l0aCgoZnVuY3Rpb24ocyxvKXtyZXR1cm4hX2luY2x1ZGVzV2l0aChlcSxvLHMpfSksX2FycmF5RnJvbUl0ZXJhdG9yKG8pLHUpfWZ1bmN0aW9uIF9lcXVhbHMocyxvLGksYSl7aWYoWm8ocyxvKSlyZXR1cm4hMDt2YXIgdT1yYShzKTtpZih1IT09cmEobykpcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHNbImZhbnRhc3ktbGFuZC9lcXVhbHMiXXx8ImZ1bmN0aW9uIj09dHlwZW9mIG9bImZhbnRhc3ktbGFuZC9lcXVhbHMiXSlyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygc1siZmFudGFzeS1sYW5kL2VxdWFscyJdJiZzWyJmYW50YXN5LWxhbmQvZXF1YWxzIl0obykmJiJmdW5jdGlvbiI9PXR5cGVvZiBvWyJmYW50YXN5LWxhbmQvZXF1YWxzIl0mJm9bImZhbnRhc3ktbGFuZC9lcXVhbHMiXShzKTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygcy5lcXVhbHN8fCJmdW5jdGlvbiI9PXR5cGVvZiBvLmVxdWFscylyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygcy5lcXVhbHMmJnMuZXF1YWxzKG8pJiYiZnVuY3Rpb24iPT10eXBlb2Ygby5lcXVhbHMmJm8uZXF1YWxzKHMpO3N3aXRjaCh1KXtjYXNlIkFyZ3VtZW50cyI6Y2FzZSJBcnJheSI6Y2FzZSJPYmplY3QiOmlmKCJmdW5jdGlvbiI9PXR5cGVvZiBzLmNvbnN0cnVjdG9yJiYiUHJvbWlzZSI9PT1mdW5jdGlvbiBfZnVuY3Rpb25OYW1lKHMpe3ZhciBvPVN0cmluZyhzKS5tYXRjaCgvXmZ1bmN0aW9uIChcdyopLyk7cmV0dXJuIG51bGw9PW8/IiI6b1sxXX0ocy5jb25zdHJ1Y3RvcikpcmV0dXJuIHM9PT1vO2JyZWFrO2Nhc2UiQm9vbGVhbiI6Y2FzZSJOdW1iZXIiOmNhc2UiU3RyaW5nIjppZih0eXBlb2YgcyE9dHlwZW9mIG98fCFabyhzLnZhbHVlT2YoKSxvLnZhbHVlT2YoKSkpcmV0dXJuITE7YnJlYWs7Y2FzZSJEYXRlIjppZighWm8ocy52YWx1ZU9mKCksby52YWx1ZU9mKCkpKXJldHVybiExO2JyZWFrO2Nhc2UiRXJyb3IiOnJldHVybiBzLm5hbWU9PT1vLm5hbWUmJnMubWVzc2FnZT09PW8ubWVzc2FnZTtjYXNlIlJlZ0V4cCI6aWYocy5zb3VyY2UhPT1vLnNvdXJjZXx8cy5nbG9iYWwhPT1vLmdsb2JhbHx8cy5pZ25vcmVDYXNlIT09by5pZ25vcmVDYXNlfHxzLm11bHRpbGluZSE9PW8ubXVsdGlsaW5lfHxzLnN0aWNreSE9PW8uc3RpY2t5fHxzLnVuaWNvZGUhPT1vLnVuaWNvZGUpcmV0dXJuITF9Zm9yKHZhciBfPWkubGVuZ3RoLTE7Xz49MDspe2lmKGlbX109PT1zKXJldHVybiBhW19dPT09bztfLT0xfXN3aXRjaCh1KXtjYXNlIk1hcCI6cmV0dXJuIHMuc2l6ZT09PW8uc2l6ZSYmX3VuaXFDb250ZW50RXF1YWxzKHMuZW50cmllcygpLG8uZW50cmllcygpLGkuY29uY2F0KFtzXSksYS5jb25jYXQoW29dKSk7Y2FzZSJTZXQiOnJldHVybiBzLnNpemU9PT1vLnNpemUmJl91bmlxQ29udGVudEVxdWFscyhzLnZhbHVlcygpLG8udmFsdWVzKCksaS5jb25jYXQoW3NdKSxhLmNvbmNhdChbb10pKTtjYXNlIkFyZ3VtZW50cyI6Y2FzZSJBcnJheSI6Y2FzZSJPYmplY3QiOmNhc2UiQm9vbGVhbiI6Y2FzZSJOdW1iZXIiOmNhc2UiU3RyaW5nIjpjYXNlIkRhdGUiOmNhc2UiRXJyb3IiOmNhc2UiUmVnRXhwIjpjYXNlIkludDhBcnJheSI6Y2FzZSJVaW50OEFycmF5IjpjYXNlIlVpbnQ4Q2xhbXBlZEFycmF5IjpjYXNlIkludDE2QXJyYXkiOmNhc2UiVWludDE2QXJyYXkiOmNhc2UiSW50MzJBcnJheSI6Y2FzZSJVaW50MzJBcnJheSI6Y2FzZSJGbG9hdDMyQXJyYXkiOmNhc2UiRmxvYXQ2NEFycmF5IjpjYXNlIkFycmF5QnVmZmVyIjpicmVhaztkZWZhdWx0OnJldHVybiExfXZhciB3PWVhKHMpO2lmKHcubGVuZ3RoIT09ZWEobykubGVuZ3RoKXJldHVybiExO3ZhciB4PWkuY29uY2F0KFtzXSksQz1hLmNvbmNhdChbb10pO2ZvcihfPXcubGVuZ3RoLTE7Xz49MDspe3ZhciBqPXdbX107aWYoIV9oYXMoaixvKXx8IV9lcXVhbHMob1tqXSxzW2pdLHgsQykpcmV0dXJuITE7Xy09MX1yZXR1cm4hMH1jb25zdCBuYT1fY3VycnkyKChmdW5jdGlvbiBlcXVhbHMocyxvKXtyZXR1cm4gX2VxdWFscyhzLG8sW10sW10pfSkpO2Z1bmN0aW9uIF9pbmNsdWRlcyhzLG8pe3JldHVybiBmdW5jdGlvbiBfaW5kZXhPZihzLG8saSl7dmFyIGEsdTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygcy5pbmRleE9mKXN3aXRjaCh0eXBlb2Ygbyl7Y2FzZSJudW1iZXIiOmlmKDA9PT1vKXtmb3IoYT0xL287aTxzLmxlbmd0aDspe2lmKDA9PT0odT1zW2ldKSYmMS91PT09YSlyZXR1cm4gaTtpKz0xfXJldHVybi0xfWlmKG8hPW8pe2Zvcig7aTxzLmxlbmd0aDspe2lmKCJudW1iZXIiPT10eXBlb2YodT1zW2ldKSYmdSE9dSlyZXR1cm4gaTtpKz0xfXJldHVybi0xfXJldHVybiBzLmluZGV4T2YobyxpKTtjYXNlInN0cmluZyI6Y2FzZSJib29sZWFuIjpjYXNlImZ1bmN0aW9uIjpjYXNlInVuZGVmaW5lZCI6cmV0dXJuIHMuaW5kZXhPZihvLGkpO2Nhc2Uib2JqZWN0IjppZihudWxsPT09bylyZXR1cm4gcy5pbmRleE9mKG8saSl9Zm9yKDtpPHMubGVuZ3RoOyl7aWYobmEoc1tpXSxvKSlyZXR1cm4gaTtpKz0xfXJldHVybi0xfShvLHMsMCk+PTB9ZnVuY3Rpb24gX21hcChzLG8pe2Zvcih2YXIgaT0wLGE9by5sZW5ndGgsdT1BcnJheShhKTtpPGE7KXVbaV09cyhvW2ldKSxpKz0xO3JldHVybiB1fWZ1bmN0aW9uIF9xdW90ZShzKXtyZXR1cm4nIicrcy5yZXBsYWNlKC9cXC9nLCJcXFxcIikucmVwbGFjZSgvW1xiXS9nLCJcXGIiKS5yZXBsYWNlKC9cZi9nLCJcXGYiKS5yZXBsYWNlKC9cbi9nLCJcXG4iKS5yZXBsYWNlKC9cci9nLCJcXHIiKS5yZXBsYWNlKC9cdC9nLCJcXHQiKS5yZXBsYWNlKC9cdi9nLCJcXHYiKS5yZXBsYWNlKC9cMC9nLCJcXDAiKS5yZXBsYWNlKC8iL2csJ1xcIicpKyciJ312YXIgaWE9ZnVuY3Rpb24gcGFkKHMpe3JldHVybihzPDEwPyIwIjoiIikrc307Y29uc3QgYWE9ImZ1bmN0aW9uIj09dHlwZW9mIERhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nP2Z1bmN0aW9uIF90b0lTT1N0cmluZyhzKXtyZXR1cm4gcy50b0lTT1N0cmluZygpfTpmdW5jdGlvbiBfdG9JU09TdHJpbmcocyl7cmV0dXJuIHMuZ2V0VVRDRnVsbFllYXIoKSsiLSIraWEocy5nZXRVVENNb250aCgpKzEpKyItIitpYShzLmdldFVUQ0RhdGUoKSkrIlQiK2lhKHMuZ2V0VVRDSG91cnMoKSkrIjoiK2lhKHMuZ2V0VVRDTWludXRlcygpKSsiOiIraWEocy5nZXRVVENTZWNvbmRzKCkpKyIuIisocy5nZXRVVENNaWxsaXNlY29uZHMoKS8xZTMpLnRvRml4ZWQoMykuc2xpY2UoMiw1KSsiWiJ9O2Z1bmN0aW9uIF9jb21wbGVtZW50KHMpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiFzLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gX2FycmF5UmVkdWNlKHMsbyxpKXtmb3IodmFyIGE9MCx1PWkubGVuZ3RoO2E8dTspbz1zKG8saVthXSksYSs9MTtyZXR1cm4gb31jb25zdCBjYT1BcnJheS5pc0FycmF5fHxmdW5jdGlvbiBfaXNBcnJheShzKXtyZXR1cm4gbnVsbCE9cyYmcy5sZW5ndGg+PTAmJiJbb2JqZWN0IEFycmF5XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocyl9O2Z1bmN0aW9uIF9kaXNwYXRjaGFibGUocyxvLGkpe3JldHVybiBmdW5jdGlvbigpe2lmKDA9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiBpKCk7dmFyIGE9YXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGgtMV07aWYoIWNhKGEpKXtmb3IodmFyIHU9MDt1PHMubGVuZ3RoOyl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGFbc1t1XV0pcmV0dXJuIGFbc1t1XV0uYXBwbHkoYSxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCwtMSkpO3UrPTF9aWYoZnVuY3Rpb24gX2lzVHJhbnNmb3JtZXIocyl7cmV0dXJuIG51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBzWyJAQHRyYW5zZHVjZXIvc3RlcCJdfShhKSlyZXR1cm4gby5hcHBseShudWxsLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwLC0xKSkoYSl9cmV0dXJuIGkuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBfaXNPYmplY3Qocyl7cmV0dXJuIltvYmplY3QgT2JqZWN0XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocyl9Y29uc3QgX3hmQmFzZV9pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGZbIkBAdHJhbnNkdWNlci9pbml0Il0oKX0sX3hmQmFzZV9yZXN1bHQ9ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMueGZbIkBAdHJhbnNkdWNlci9yZXN1bHQiXShzKX07dmFyIGxhPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gWEZpbHRlcihzLG8pe3RoaXMueGY9byx0aGlzLmY9c31yZXR1cm4gWEZpbHRlci5wcm90b3R5cGVbIkBAdHJhbnNkdWNlci9pbml0Il09X3hmQmFzZV9pbml0LFhGaWx0ZXIucHJvdG90eXBlWyJAQHRyYW5zZHVjZXIvcmVzdWx0Il09X3hmQmFzZV9yZXN1bHQsWEZpbHRlci5wcm90b3R5cGVbIkBAdHJhbnNkdWNlci9zdGVwIl09ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdGhpcy5mKG8pP3RoaXMueGZbIkBAdHJhbnNkdWNlci9zdGVwIl0ocyxvKTpzfSxYRmlsdGVyfSgpO2Z1bmN0aW9uIF94ZmlsdGVyKHMpe3JldHVybiBmdW5jdGlvbihvKXtyZXR1cm4gbmV3IGxhKHMsbyl9fXZhciB1YT1fY3VycnkyKF9kaXNwYXRjaGFibGUoWyJmYW50YXN5LWxhbmQvZmlsdGVyIiwiZmlsdGVyIl0sX3hmaWx0ZXIsKGZ1bmN0aW9uKHMsbyl7cmV0dXJuIF9pc09iamVjdChvKT9fYXJyYXlSZWR1Y2UoKGZ1bmN0aW9uKGksYSl7cmV0dXJuIHMob1thXSkmJihpW2FdPW9bYV0pLGl9KSx7fSxlYShvKSk6ZnVuY3Rpb24gX2ZpbHRlcihzLG8pe2Zvcih2YXIgaT0wLGE9by5sZW5ndGgsdT1bXTtpPGE7KXMob1tpXSkmJih1W3UubGVuZ3RoXT1vW2ldKSxpKz0xO3JldHVybiB1fShzLG8pfSkpKTtjb25zdCBkYT11YTtjb25zdCBtYT1fY3VycnkyKChmdW5jdGlvbiByZWplY3QocyxvKXtyZXR1cm4gZGEoX2NvbXBsZW1lbnQocyksbyl9KSk7ZnVuY3Rpb24gX3RvU3RyaW5nX3RvU3RyaW5nKHMsbyl7dmFyIGk9ZnVuY3Rpb24gcmVjdXIoaSl7dmFyIGE9by5jb25jYXQoW3NdKTtyZXR1cm4gX2luY2x1ZGVzKGksYSk/IjxDaXJjdWxhcj4iOl90b1N0cmluZ190b1N0cmluZyhpLGEpfSxtYXBQYWlycz1mdW5jdGlvbihzLG8pe3JldHVybiBfbWFwKChmdW5jdGlvbihvKXtyZXR1cm4gX3F1b3RlKG8pKyI6ICIraShzW29dKX0pLG8uc2xpY2UoKS5zb3J0KCkpfTtzd2l0Y2goT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHMpKXtjYXNlIltvYmplY3QgQXJndW1lbnRzXSI6cmV0dXJuIihmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgiK19tYXAoaSxzKS5qb2luKCIsICIpKyIpKSI7Y2FzZSJbb2JqZWN0IEFycmF5XSI6cmV0dXJuIlsiK19tYXAoaSxzKS5jb25jYXQobWFwUGFpcnMocyxtYSgoZnVuY3Rpb24ocyl7cmV0dXJuL15cZCskLy50ZXN0KHMpfSksZWEocykpKSkuam9pbigiLCAiKSsiXSI7Y2FzZSJbb2JqZWN0IEJvb2xlYW5dIjpyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHM/Im5ldyBCb29sZWFuKCIraShzLnZhbHVlT2YoKSkrIikiOnMudG9TdHJpbmcoKTtjYXNlIltvYmplY3QgRGF0ZV0iOnJldHVybiJuZXcgRGF0ZSgiKyhpc05hTihzLnZhbHVlT2YoKSk/aShOYU4pOl9xdW90ZShhYShzKSkpKyIpIjtjYXNlIltvYmplY3QgTWFwXSI6cmV0dXJuIm5ldyBNYXAoIitpKEFycmF5LmZyb20ocykpKyIpIjtjYXNlIltvYmplY3QgTnVsbF0iOnJldHVybiJudWxsIjtjYXNlIltvYmplY3QgTnVtYmVyXSI6cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBzPyJuZXcgTnVtYmVyKCIraShzLnZhbHVlT2YoKSkrIikiOjEvcz09LTEvMD8iLTAiOnMudG9TdHJpbmcoMTApO2Nhc2UiW29iamVjdCBTZXRdIjpyZXR1cm4ibmV3IFNldCgiK2koQXJyYXkuZnJvbShzKS5zb3J0KCkpKyIpIjtjYXNlIltvYmplY3QgU3RyaW5nXSI6cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBzPyJuZXcgU3RyaW5nKCIraShzLnZhbHVlT2YoKSkrIikiOl9xdW90ZShzKTtjYXNlIltvYmplY3QgVW5kZWZpbmVkXSI6cmV0dXJuInVuZGVmaW5lZCI7ZGVmYXVsdDppZigiZnVuY3Rpb24iPT10eXBlb2Ygcy50b1N0cmluZyl7dmFyIGE9cy50b1N0cmluZygpO2lmKCJbb2JqZWN0IE9iamVjdF0iIT09YSlyZXR1cm4gYX1yZXR1cm4ieyIrbWFwUGFpcnMocyxlYShzKSkuam9pbigiLCAiKSsifSJ9fWNvbnN0IGdhPV9jdXJyeTEoKGZ1bmN0aW9uIHRvU3RyaW5nKHMpe3JldHVybiBfdG9TdHJpbmdfdG9TdHJpbmcocyxbXSl9KSk7dmFyIHlhPV9jdXJyeTIoKGZ1bmN0aW9uIHRlc3QocyxvKXtpZighZnVuY3Rpb24gX2lzUmVnRXhwKHMpe3JldHVybiJbb2JqZWN0IFJlZ0V4cF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHMpfShzKSl0aHJvdyBuZXcgVHlwZUVycm9yKCLigJh0ZXN04oCZIHJlcXVpcmVzIGEgdmFsdWUgb2YgdHlwZSBSZWdFeHAgYXMgaXRzIGZpcnN0IGFyZ3VtZW50OyByZWNlaXZlZCAiK2dhKHMpKTtyZXR1cm4gX2Nsb25lUmVnRXhwKHMpLnRlc3Qobyl9KSk7Y29uc3QgdmE9eWE7ZnVuY3Rpb24gX2FyaXR5KHMsbyl7c3dpdGNoKHMpe2Nhc2UgMDpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgMTpyZXR1cm4gZnVuY3Rpb24ocyl7cmV0dXJuIG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfTtjYXNlIDI6cmV0dXJuIGZ1bmN0aW9uKHMsaSl7cmV0dXJuIG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKHMsaSxhKXtyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgNDpyZXR1cm4gZnVuY3Rpb24ocyxpLGEsdSl7cmV0dXJuIG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfTtjYXNlIDU6cmV0dXJuIGZ1bmN0aW9uKHMsaSxhLHUsXyl7cmV0dXJuIG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfTtjYXNlIDY6cmV0dXJuIGZ1bmN0aW9uKHMsaSxhLHUsXyx3KXtyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgNzpyZXR1cm4gZnVuY3Rpb24ocyxpLGEsdSxfLHcseCl7cmV0dXJuIG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfTtjYXNlIDg6cmV0dXJuIGZ1bmN0aW9uKHMsaSxhLHUsXyx3LHgsQyl7cmV0dXJuIG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfTtjYXNlIDk6cmV0dXJuIGZ1bmN0aW9uKHMsaSxhLHUsXyx3LHgsQyxqKXtyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgMTA6cmV0dXJuIGZ1bmN0aW9uKHMsaSxhLHUsXyx3LHgsQyxqLEwpe3JldHVybiBvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkZpcnN0IGFyZ3VtZW50IHRvIF9hcml0eSBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgbm8gZ3JlYXRlciB0aGFuIHRlbiIpfX1mdW5jdGlvbiBfcGlwZShzLG8pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBvLmNhbGwodGhpcyxzLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fWNvbnN0IGJhPV9jdXJyeTEoKGZ1bmN0aW9uIGlzQXJyYXlMaWtlKHMpe3JldHVybiEhY2Eocyl8fCEhcyYmKCJvYmplY3QiPT10eXBlb2YgcyYmKCFfaXNTdHJpbmcocykmJigwPT09cy5sZW5ndGh8fHMubGVuZ3RoPjAmJihzLmhhc093blByb3BlcnR5KDApJiZzLmhhc093blByb3BlcnR5KHMubGVuZ3RoLTEpKSkpKX0pKTt2YXIgX2E9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2w/U3ltYm9sLml0ZXJhdG9yOiJAQGl0ZXJhdG9yIjtmdW5jdGlvbiBfY3JlYXRlUmVkdWNlKHMsbyxpKXtyZXR1cm4gZnVuY3Rpb24gX3JlZHVjZShhLHUsXyl7aWYoYmEoXykpcmV0dXJuIHMoYSx1LF8pO2lmKG51bGw9PV8pcmV0dXJuIHU7aWYoImZ1bmN0aW9uIj09dHlwZW9mIF9bImZhbnRhc3ktbGFuZC9yZWR1Y2UiXSlyZXR1cm4gbyhhLHUsXywiZmFudGFzeS1sYW5kL3JlZHVjZSIpO2lmKG51bGwhPV9bX2FdKXJldHVybiBpKGEsdSxfW19hXSgpKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgXy5uZXh0KXJldHVybiBpKGEsdSxfKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgXy5yZWR1Y2UpcmV0dXJuIG8oYSx1LF8sInJlZHVjZSIpO3Rocm93IG5ldyBUeXBlRXJyb3IoInJlZHVjZTogbGlzdCBtdXN0IGJlIGFycmF5IG9yIGl0ZXJhYmxlIil9fWZ1bmN0aW9uIF94QXJyYXlSZWR1Y2UocyxvLGkpe2Zvcih2YXIgYT0wLHU9aS5sZW5ndGg7YTx1Oyl7aWYoKG89c1siQEB0cmFuc2R1Y2VyL3N0ZXAiXShvLGlbYV0pKSYmb1siQEB0cmFuc2R1Y2VyL3JlZHVjZWQiXSl7bz1vWyJAQHRyYW5zZHVjZXIvdmFsdWUiXTticmVha31hKz0xfXJldHVybiBzWyJAQHRyYW5zZHVjZXIvcmVzdWx0Il0obyl9Y29uc3QgRWE9X2N1cnJ5MigoZnVuY3Rpb24gYmluZChzLG8pe3JldHVybiBfYXJpdHkocy5sZW5ndGgsKGZ1bmN0aW9uKCl7cmV0dXJuIHMuYXBwbHkobyxhcmd1bWVudHMpfSkpfSkpO2Z1bmN0aW9uIF94SXRlcmFibGVSZWR1Y2UocyxvLGkpe2Zvcih2YXIgYT1pLm5leHQoKTshYS5kb25lOyl7aWYoKG89c1siQEB0cmFuc2R1Y2VyL3N0ZXAiXShvLGEudmFsdWUpKSYmb1siQEB0cmFuc2R1Y2VyL3JlZHVjZWQiXSl7bz1vWyJAQHRyYW5zZHVjZXIvdmFsdWUiXTticmVha31hPWkubmV4dCgpfXJldHVybiBzWyJAQHRyYW5zZHVjZXIvcmVzdWx0Il0obyl9ZnVuY3Rpb24gX3hNZXRob2RSZWR1Y2UocyxvLGksYSl7cmV0dXJuIHNbIkBAdHJhbnNkdWNlci9yZXN1bHQiXShpW2FdKEVhKHNbIkBAdHJhbnNkdWNlci9zdGVwIl0scyksbykpfWNvbnN0IHdhPV9jcmVhdGVSZWR1Y2UoX3hBcnJheVJlZHVjZSxfeE1ldGhvZFJlZHVjZSxfeEl0ZXJhYmxlUmVkdWNlKTt2YXIgeGE9ZnVuY3Rpb24oKXtmdW5jdGlvbiBYV3JhcChzKXt0aGlzLmY9c31yZXR1cm4gWFdyYXAucHJvdG90eXBlWyJAQHRyYW5zZHVjZXIvaW5pdCJdPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJpbml0IG5vdCBpbXBsZW1lbnRlZCBvbiBYV3JhcCIpfSxYV3JhcC5wcm90b3R5cGVbIkBAdHJhbnNkdWNlci9yZXN1bHQiXT1mdW5jdGlvbihzKXtyZXR1cm4gc30sWFdyYXAucHJvdG90eXBlWyJAQHRyYW5zZHVjZXIvc3RlcCJdPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHRoaXMuZihzLG8pfSxYV3JhcH0oKTtmdW5jdGlvbiBfeHdyYXAocyl7cmV0dXJuIG5ldyB4YShzKX12YXIga2E9X2N1cnJ5MygoZnVuY3Rpb24ocyxvLGkpe3JldHVybiB3YSgiZnVuY3Rpb24iPT10eXBlb2Ygcz9feHdyYXAocyk6cyxvLGkpfSkpO2NvbnN0IENhPWthO2Z1bmN0aW9uIF9jaGVja0Zvck1ldGhvZChzLG8pe3JldHVybiBmdW5jdGlvbigpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg7aWYoMD09PWkpcmV0dXJuIG8oKTt2YXIgYT1hcmd1bWVudHNbaS0xXTtyZXR1cm4gY2EoYSl8fCJmdW5jdGlvbiIhPXR5cGVvZiBhW3NdP28uYXBwbHkodGhpcyxhcmd1bWVudHMpOmFbc10uYXBwbHkoYSxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCxpLTEpKX19dmFyIEFhPV9jdXJyeTMoX2NoZWNrRm9yTWV0aG9kKCJzbGljZSIsKGZ1bmN0aW9uIHNsaWNlKHMsbyxpKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoaSxzLG8pfSkpKTtjb25zdCBqYT1BYTtjb25zdCBJYT1fY3VycnkxKF9jaGVja0Zvck1ldGhvZCgidGFpbCIsamEoMSwxLzApKSk7ZnVuY3Rpb24gcGlwZSgpe2lmKDA9PT1hcmd1bWVudHMubGVuZ3RoKXRocm93IG5ldyBFcnJvcigicGlwZSByZXF1aXJlcyBhdCBsZWFzdCBvbmUgYXJndW1lbnQiKTtyZXR1cm4gX2FyaXR5KGFyZ3VtZW50c1swXS5sZW5ndGgsQ2EoX3BpcGUsYXJndW1lbnRzWzBdLElhKGFyZ3VtZW50cykpKX1jb25zdCBOYT1fY3VycnkyKChmdW5jdGlvbiBkZWZhdWx0VG8ocyxvKXtyZXR1cm4gbnVsbD09b3x8byE9bz9zOm99KSk7Y29uc3QgRGE9X2N1cnJ5MigoZnVuY3Rpb24gcHJvcChzLG8pe2lmKG51bGwhPW8pcmV0dXJuIFhvKHMpP19udGgocyxvKTpvW3NdfSkpO2NvbnN0IExhPV9jdXJyeTMoKGZ1bmN0aW9uIHByb3BPcihzLG8saSl7cmV0dXJuIE5hKHMsRGEobyxpKSl9KSk7dmFyIEZhPV9jdXJyeTEoKGZ1bmN0aW9uKHMpe3JldHVybiBfbnRoKC0xLHMpfSkpO2NvbnN0IEJhPUZhO2Z1bmN0aW9uIF9jdXJyeU4ocyxvLGkpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgYT1bXSx1PTAsXz1zLHc9MCx4PSExO3c8by5sZW5ndGh8fHU8YXJndW1lbnRzLmxlbmd0aDspe3ZhciBDO3c8by5sZW5ndGgmJighX2lzUGxhY2Vob2xkZXIob1t3XSl8fHU+PWFyZ3VtZW50cy5sZW5ndGgpP0M9b1t3XTooQz1hcmd1bWVudHNbdV0sdSs9MSksYVt3XT1DLF9pc1BsYWNlaG9sZGVyKEMpP3g9ITA6Xy09MSx3Kz0xfXJldHVybiF4JiZfPD0wP2kuYXBwbHkodGhpcyxhKTpfYXJpdHkoTWF0aC5tYXgoMCxfKSxfY3VycnlOKHMsYSxpKSl9fWNvbnN0ICRhPV9jdXJyeTIoKGZ1bmN0aW9uIGN1cnJ5TihzLG8pe3JldHVybiAxPT09cz9fY3VycnkxKG8pOl9hcml0eShzLF9jdXJyeU4ocyxbXSxvKSl9KSk7Y29uc3QgemE9X2N1cnJ5MSgoZnVuY3Rpb24gY3Vycnkocyl7cmV0dXJuICRhKHMubGVuZ3RoLHMpfSkpO2Z1bmN0aW9uIF9pc0Z1bmN0aW9uKHMpe3ZhciBvPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzKTtyZXR1cm4iW29iamVjdCBGdW5jdGlvbl0iPT09b3x8IltvYmplY3QgQXN5bmNGdW5jdGlvbl0iPT09b3x8IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIj09PW98fCJbb2JqZWN0IEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25dIj09PW99Y29uc3QgSmE9X2N1cnJ5MigoZnVuY3Rpb24gaW52b2tlcihzLG8pe3JldHVybiAkYShzKzEsKGZ1bmN0aW9uKCl7dmFyIGk9YXJndW1lbnRzW3NdO2lmKG51bGwhPWkmJl9pc0Z1bmN0aW9uKGlbb10pKXJldHVybiBpW29dLmFwcGx5KGksQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDAscykpO3Rocm93IG5ldyBUeXBlRXJyb3IoZ2EoaSkrJyBkb2VzIG5vdCBoYXZlIGEgbWV0aG9kIG5hbWVkICInK28rJyInKX0pKX0pKTtjb25zdCBIYT1KYSgxLCJzcGxpdCIpO2Z1bmN0aW9uIGRyb3BMYXN0V2hpbGUocyxvKXtmb3IodmFyIGk9by5sZW5ndGgtMTtpPj0wJiZzKG9baV0pOylpLT0xO3JldHVybiBqYSgwLGkrMSxvKX12YXIgR2E9ZnVuY3Rpb24oKXtmdW5jdGlvbiBYRHJvcExhc3RXaGlsZShzLG8pe3RoaXMuZj1zLHRoaXMucmV0YWluZWQ9W10sdGhpcy54Zj1vfXJldHVybiBYRHJvcExhc3RXaGlsZS5wcm90b3R5cGVbIkBAdHJhbnNkdWNlci9pbml0Il09X3hmQmFzZV9pbml0LFhEcm9wTGFzdFdoaWxlLnByb3RvdHlwZVsiQEB0cmFuc2R1Y2VyL3Jlc3VsdCJdPWZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLnJldGFpbmVkPW51bGwsdGhpcy54ZlsiQEB0cmFuc2R1Y2VyL3Jlc3VsdCJdKHMpfSxYRHJvcExhc3RXaGlsZS5wcm90b3R5cGVbIkBAdHJhbnNkdWNlci9zdGVwIl09ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdGhpcy5mKG8pP3RoaXMucmV0YWluKHMsbyk6dGhpcy5mbHVzaChzLG8pfSxYRHJvcExhc3RXaGlsZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gcz13YSh0aGlzLnhmLHMsdGhpcy5yZXRhaW5lZCksdGhpcy5yZXRhaW5lZD1bXSx0aGlzLnhmWyJAQHRyYW5zZHVjZXIvc3RlcCJdKHMsbyl9LFhEcm9wTGFzdFdoaWxlLnByb3RvdHlwZS5yZXRhaW49ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdGhpcy5yZXRhaW5lZC5wdXNoKG8pLHN9LFhEcm9wTGFzdFdoaWxlfSgpO2Z1bmN0aW9uIF94ZHJvcExhc3RXaGlsZShzKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIG5ldyBHYShzLG8pfX1jb25zdCBlYz1fY3VycnkyKF9kaXNwYXRjaGFibGUoW10sX3hkcm9wTGFzdFdoaWxlLGRyb3BMYXN0V2hpbGUpKTtjb25zdCByYz1KYSgxLCJqb2luIik7Y29uc3Qgc2M9X2N1cnJ5MSgoZnVuY3Rpb24gZmxpcChzKXtyZXR1cm4gJGEocy5sZW5ndGgsKGZ1bmN0aW9uKG8saSl7dmFyIGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApO3JldHVybiBhWzBdPWksYVsxXT1vLHMuYXBwbHkodGhpcyxhKX0pKX0pKShfY3VycnkyKF9pbmNsdWRlcykpO2NvbnN0IG9jPXphKChmdW5jdGlvbihzLG8pe3JldHVybiBwaXBlKEhhKCIiKSxlYyhzYyhzKSkscmMoIiIpKShvKX0pKTtmdW5jdGlvbiBfaXRlcmFibGVSZWR1Y2UocyxvLGkpe2Zvcih2YXIgYT1pLm5leHQoKTshYS5kb25lOylvPXMobyxhLnZhbHVlKSxhPWkubmV4dCgpO3JldHVybiBvfWZ1bmN0aW9uIF9tZXRob2RSZWR1Y2UocyxvLGksYSl7cmV0dXJuIGlbYV0ocyxvKX1jb25zdCBpYz1fY3JlYXRlUmVkdWNlKF9hcnJheVJlZHVjZSxfbWV0aG9kUmVkdWNlLF9pdGVyYWJsZVJlZHVjZSk7dmFyIGFjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gWE1hcChzLG8pe3RoaXMueGY9byx0aGlzLmY9c31yZXR1cm4gWE1hcC5wcm90b3R5cGVbIkBAdHJhbnNkdWNlci9pbml0Il09X3hmQmFzZV9pbml0LFhNYXAucHJvdG90eXBlWyJAQHRyYW5zZHVjZXIvcmVzdWx0Il09X3hmQmFzZV9yZXN1bHQsWE1hcC5wcm90b3R5cGVbIkBAdHJhbnNkdWNlci9zdGVwIl09ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdGhpcy54ZlsiQEB0cmFuc2R1Y2VyL3N0ZXAiXShzLHRoaXMuZihvKSl9LFhNYXB9KCk7Y29uc3QgY2M9X2N1cnJ5MihfZGlzcGF0Y2hhYmxlKFsiZmFudGFzeS1sYW5kL21hcCIsIm1hcCJdLChmdW5jdGlvbiBfeG1hcChzKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIG5ldyBhYyhzLG8pfX0pLChmdW5jdGlvbiBtYXAocyxvKXtzd2l0Y2goT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pKXtjYXNlIltvYmplY3QgRnVuY3Rpb25dIjpyZXR1cm4gJGEoby5sZW5ndGgsKGZ1bmN0aW9uKCl7cmV0dXJuIHMuY2FsbCh0aGlzLG8uYXBwbHkodGhpcyxhcmd1bWVudHMpKX0pKTtjYXNlIltvYmplY3QgT2JqZWN0XSI6cmV0dXJuIF9hcnJheVJlZHVjZSgoZnVuY3Rpb24oaSxhKXtyZXR1cm4gaVthXT1zKG9bYV0pLGl9KSx7fSxlYShvKSk7ZGVmYXVsdDpyZXR1cm4gX21hcChzLG8pfX0pKSk7Y29uc3QgbGM9X2N1cnJ5MigoZnVuY3Rpb24gYXAocyxvKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygb1siZmFudGFzeS1sYW5kL2FwIl0/b1siZmFudGFzeS1sYW5kL2FwIl0ocyk6ImZ1bmN0aW9uIj09dHlwZW9mIHMuYXA/cy5hcChvKToiZnVuY3Rpb24iPT10eXBlb2Ygcz9mdW5jdGlvbihpKXtyZXR1cm4gcyhpKShvKGkpKX06aWMoKGZ1bmN0aW9uKHMsaSl7cmV0dXJuIGZ1bmN0aW9uIF9jb25jYXQocyxvKXt2YXIgaTtvPW98fFtdO3ZhciBhPShzPXN8fFtdKS5sZW5ndGgsdT1vLmxlbmd0aCxfPVtdO2ZvcihpPTA7aTxhOylfW18ubGVuZ3RoXT1zW2ldLGkrPTE7Zm9yKGk9MDtpPHU7KV9bXy5sZW5ndGhdPW9baV0saSs9MTtyZXR1cm4gX30ocyxjYyhpLG8pKX0pLFtdLHMpfSkpO2NvbnN0IHBjPV9jdXJyeTIoKGZ1bmN0aW9uIGxpZnROKHMsbyl7dmFyIGk9JGEocyxvKTtyZXR1cm4gJGEocywoZnVuY3Rpb24oKXtyZXR1cm4gX2FycmF5UmVkdWNlKGxjLGNjKGksYXJndW1lbnRzWzBdKSxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSkpfSkpfSkpO2NvbnN0IGhjPV9jdXJyeTEoKGZ1bmN0aW9uIGxpZnQocyl7cmV0dXJuIHBjKHMubGVuZ3RoLHMpfSkpO2NvbnN0IGRjPWhjKF9jdXJyeTEoKGZ1bmN0aW9uIG5vdChzKXtyZXR1cm4hc30pKSk7Y29uc3QgZmM9X2N1cnJ5MSgoZnVuY3Rpb24gYWx3YXlzKHMpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBzfX0pKTtjb25zdCBnYz1mYyh2b2lkIDApO2NvbnN0IGJjPW5hKGdjKCkpO2NvbnN0IF9jPWRjKGJjKTtjb25zdCBFYz1fY3VycnkyKChmdW5jdGlvbiBtYXgocyxvKXtpZihzPT09bylyZXR1cm4gbztmdW5jdGlvbiBzYWZlTWF4KHMsbyl7aWYocz5vIT1vPnMpcmV0dXJuIG8+cz9vOnN9dmFyIGk9c2FmZU1heChzLG8pO2lmKHZvaWQgMCE9PWkpcmV0dXJuIGk7dmFyIGE9c2FmZU1heCh0eXBlb2Ygcyx0eXBlb2Ygbyk7aWYodm9pZCAwIT09YSlyZXR1cm4gYT09PXR5cGVvZiBzP3M6bzt2YXIgdT1nYShzKSxfPXNhZmVNYXgodSxnYShvKSk7cmV0dXJuIHZvaWQgMCE9PV8mJl89PT11P3M6b30pKTt2YXIga2M9X2N1cnJ5MigoZnVuY3Rpb24gcGx1Y2socyxvKXtyZXR1cm4gY2MoRGEocyksbyl9KSk7Y29uc3QgT2M9a2M7Y29uc3QgamM9X2N1cnJ5MSgoZnVuY3Rpb24gYW55UGFzcyhzKXtyZXR1cm4gJGEoQ2EoRWMsMCxPYygibGVuZ3RoIixzKSksKGZ1bmN0aW9uKCl7Zm9yKHZhciBvPTAsaT1zLmxlbmd0aDtvPGk7KXtpZihzW29dLmFwcGx5KHRoaXMsYXJndW1lbnRzKSlyZXR1cm4hMDtvKz0xfXJldHVybiExfSkpfSkpO3ZhciBpZGVudGljYWw9ZnVuY3Rpb24ocyxvKXtzd2l0Y2goYXJndW1lbnRzLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBpZGVudGljYWw7Y2FzZSAxOnJldHVybiBmdW5jdGlvbiB1bmFyeUlkZW50aWNhbChvKXtyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGg/dW5hcnlJZGVudGljYWw6Wm8ocyxvKX07ZGVmYXVsdDpyZXR1cm4gWm8ocyxvKX19O2NvbnN0IFBjPWlkZW50aWNhbDtjb25zdCBJYz0kYSgxLHBpcGUocmEsUGMoIkdlbmVyYXRvckZ1bmN0aW9uIikpKTtjb25zdCBOYz0kYSgxLHBpcGUocmEsUGMoIkFzeW5jRnVuY3Rpb24iKSkpO2NvbnN0IE1jPWpjKFtwaXBlKHJhLFBjKCJGdW5jdGlvbiIpKSxJYyxOY10pO3ZhciBSYz1fY3VycnkzKChmdW5jdGlvbiByZXBsYWNlKHMsbyxpKXtyZXR1cm4gaS5yZXBsYWNlKHMsbyl9KSk7Y29uc3QgTGM9UmM7Y29uc3QgRmM9JGEoMSxwaXBlKHJhLFBjKCJSZWdFeHAiKSkpO2NvbnN0IHFjPV9jdXJyeTMoKGZ1bmN0aW9uIHdoZW4ocyxvLGkpe3JldHVybiBzKGkpP28oaSk6aX0pKTtjb25zdCBKYz0kYSgxLHBpcGUocmEsUGMoIlN0cmluZyIpKSk7Y29uc3QgSGM9cWMoSmMsTGMoL1suKis/XiR7fSgpfFtcXVxcLV0vZywiXFwkJiIpKTt2YXIgS2M9ZnVuY3Rpb24gY2hlY2tWYWx1ZShzLG8pe2lmKCJzdHJpbmciIT10eXBlb2YgcyYmIShzIGluc3RhbmNlb2YgU3RyaW5nKSl0aHJvdyBUeXBlRXJyb3IoImAiLmNvbmNhdChvLCJgIG11c3QgYmUgYSBzdHJpbmciKSl9O2NvbnN0IEdjPWZ1bmN0aW9uIHJlcGxhY2VBbGwocyxvLGkpeyFmdW5jdGlvbiBjaGVja0FyZ3VtZW50cyhzLG8saSl7aWYobnVsbD09aXx8bnVsbD09c3x8bnVsbD09byl0aHJvdyBUeXBlRXJyb3IoIklucHV0IHZhbHVlcyBtdXN0IG5vdCBiZSBgbnVsbGAgb3IgYHVuZGVmaW5lZGAiKX0ocyxvLGkpLEtjKGksInN0ciIpLEtjKG8sInJlcGxhY2VWYWx1ZSIpLGZ1bmN0aW9uIGNoZWNrU2VhcmNoVmFsdWUocyl7aWYoISgic3RyaW5nIj09dHlwZW9mIHN8fHMgaW5zdGFuY2VvZiBTdHJpbmd8fHMgaW5zdGFuY2VvZiBSZWdFeHApKXRocm93IFR5cGVFcnJvcigiYHNlYXJjaFZhbHVlYCBtdXN0IGJlIGEgc3RyaW5nIG9yIGFuIHJlZ2V4cCIpfShzKTt2YXIgYT1uZXcgUmVnRXhwKEZjKHMpP3M6SGMocyksImciKTtyZXR1cm4gTGMoYSxvLGkpfTt2YXIgUWM9JGEoMyxHYyksdGw9SmEoMiwicmVwbGFjZUFsbCIpO2NvbnN0IHNsPU1jKFN0cmluZy5wcm90b3R5cGUucmVwbGFjZUFsbCk/dGw6UWMsaXNXaW5kb3dzPSgpPT5Rbyh2YSgvXndpbi8pLFsicGxhdGZvcm0iXSxZbyksZ2V0UHJvdG9jb2w9cz0+e3RyeXtjb25zdCBvPW5ldyBVUkwocyk7cmV0dXJuIG9jKCI6IixvLnByb3RvY29sKX1jYXRjaHtyZXR1cm59fSx1bD0ocGlwZShnZXRQcm90b2NvbCxfYykscz0+e2lmKFlvLmJyb3dzZXIpcmV0dXJuITE7Y29uc3Qgbz1nZXRQcm90b2NvbChzKTtyZXR1cm4gYmMobyl8fCJmaWxlIj09PW98fC9eW2EtekEtWl0kLy50ZXN0KG8pfSksaXNIdHRwVXJsPXM9Pntjb25zdCBvPWdldFByb3RvY29sKHMpO3JldHVybiJodHRwIj09PW98fCJodHRwcyI9PT1vfSx0b0ZpbGVTeXN0ZW1QYXRoPShzLG8pPT57Y29uc3QgaT1bLyUyMy9nLCIjIiwvJTI0L2csIiQiLC8lMjYvZywiJiIsLyUyQy9nLCIsIiwvJTQwL2csIkAiXSxhPUxhKCExLCJrZWVwRmlsZVByb3RvY29sIixvKSx1PUxhKGlzV2luZG93cywiaXNXaW5kb3dzIixvKTtsZXQgXz1kZWNvZGVVUkkocyk7Zm9yKGxldCBzPTA7czxpLmxlbmd0aDtzKz0yKV89Xy5yZXBsYWNlKGlbc10saVtzKzFdKTtsZXQgdz0iZmlsZTovLyI9PT1fLnN1YnN0cmluZygwLDcpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHcmJihfPSIvIj09PV9bN10/Xy5zdWJzdHJpbmcoOCk6Xy5zdWJzdHJpbmcoNyksdSgpJiYiLyI9PT1fWzFdJiYoXz1gJHtfWzBdfToke18uc3Vic3RyaW5nKDEpfWApLGE/Xz1gZmlsZTovLy8ke199YDoodz0hMSxfPXUoKT9fOmAvJHtffWApKSx1KCkmJiF3JiYoXz1zbCgiLyIsIlxcIixfKSwiOlxcIj09PV8uc3Vic3RyaW5nKDEsMykmJihfPV9bMF0udG9VcHBlckNhc2UoKStfLnN1YnN0cmluZygxKSkpLF99LGdldEhhc2g9cz0+e2NvbnN0IG89cy5pbmRleE9mKCIjIik7cmV0dXJuLTEhPT1vP3Muc3Vic3RyaW5nKG8pOiIjIn0sc3RyaXBIYXNoPXM9Pntjb25zdCBvPXMuaW5kZXhPZigiIyIpO2xldCBpPXM7cmV0dXJuIG8+PTAmJihpPXMuc3Vic3RyaW5nKDAsbykpLGl9LHVybF9jd2Q9KCk9PntpZihZby5icm93c2VyKXJldHVybiBzdHJpcEhhc2goZ2xvYmFsVGhpcy5sb2NhdGlvbi5ocmVmKTtjb25zdCBzPVlvLmN3ZCgpLG89QmEocyk7cmV0dXJuWyIvIiwiXFwiXS5pbmNsdWRlcyhvKT9zOnMrKGlzV2luZG93cygpPyJcXCI6Ii8iKX0scmVzb2x2ZT0ocyxvKT0+e2NvbnN0IGk9bmV3IFVSTChvLG5ldyBVUkwocywicmVzb2x2ZTovLyIpKTtpZigicmVzb2x2ZToiPT09aS5wcm90b2NvbCl7Y29uc3R7cGF0aG5hbWU6cyxzZWFyY2g6byxoYXNoOmF9PWk7cmV0dXJuIHMrbythfXJldHVybiBpLnRvU3RyaW5nKCl9LHNhbml0aXplPXM9PntpZih1bChzKSlyZXR1cm4ocz0+e2NvbnN0IG89Wy9cPy9nLCIlM0YiLC8jL2csIiUyMyJdO2xldCBpPXM7aXNXaW5kb3dzKCkmJihpPWkucmVwbGFjZSgvXFwvZywiLyIpKSxpPWVuY29kZVVSSShpKTtmb3IobGV0IHM9MDtzPG8ubGVuZ3RoO3MrPTIpaT1pLnJlcGxhY2Uob1tzXSxvW3MrMV0pO3JldHVybiBpfSkodG9GaWxlU3lzdGVtUGF0aChzKSk7dHJ5e3JldHVybiBuZXcgVVJMKHMpLnRvU3RyaW5nKCl9Y2F0Y2h7cmV0dXJuIGVuY29kZVVSSShkZWNvZGVVUkkocykpLnJlcGxhY2UoLyU1Qi9nLCJbIikucmVwbGFjZSgvJTVEL2csIl0iKX19LHVuc2FuaXRpemU9cz0+dWwocyk/dG9GaWxlU3lzdGVtUGF0aChzKTpkZWNvZGVVUkkocykse2ZldGNoOnlsLFJlc3BvbnNlOnZsLEhlYWRlcnM6X2wsUmVxdWVzdDpTbCxGb3JtRGF0YTpFbCxGaWxlOndsLEJsb2I6eGx9PWdsb2JhbFRoaXM7ZnVuY3Rpb24gX2FycmF5X2xpa2VfdG9fYXJyYXkocyxvKXsobnVsbD09b3x8bz5zLmxlbmd0aCkmJihvPXMubGVuZ3RoKTtmb3IodmFyIGk9MCxhPW5ldyBBcnJheShvKTtpPG87aSsrKWFbaV09c1tpXTtyZXR1cm4gYX1mdW5jdGlvbiBsZWdhY3lfZGVmaW5lUHJvcGVydGllcyhzLG8pe2Zvcih2YXIgaT0wO2k8by5sZW5ndGg7aSsrKXt2YXIgYT1vW2ldO2EuZW51bWVyYWJsZT1hLmVudW1lcmFibGV8fCExLGEuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBhJiYoYS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsYS5rZXksYSl9fWZ1bmN0aW9uIF9pbnN0YW5jZW9mKHMsbyl7cmV0dXJuIG51bGwhPW8mJiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZvW1N5bWJvbC5oYXNJbnN0YW5jZV0/ISFvW1N5bWJvbC5oYXNJbnN0YW5jZV0ocyk6cyBpbnN0YW5jZW9mIG99ZnVuY3Rpb24gX3NsaWNlZF90b19hcnJheShzLG8pe3JldHVybiBmdW5jdGlvbiBfYXJyYXlfd2l0aF9ob2xlcyhzKXtpZihBcnJheS5pc0FycmF5KHMpKXJldHVybiBzfShzKXx8ZnVuY3Rpb24gX2l0ZXJhYmxlX3RvX2FycmF5X2xpbWl0KHMsbyl7dmFyIGk9bnVsbD09cz9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZzW1N5bWJvbC5pdGVyYXRvcl18fHNbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1pKXt2YXIgYSx1LF89W10sdz0hMCx4PSExO3RyeXtmb3IoaT1pLmNhbGwocyk7ISh3PShhPWkubmV4dCgpKS5kb25lKSYmKF8ucHVzaChhLnZhbHVlKSwhb3x8Xy5sZW5ndGghPT1vKTt3PSEwKTt9Y2F0Y2gocyl7eD0hMCx1PXN9ZmluYWxseXt0cnl7d3x8bnVsbD09aS5yZXR1cm58fGkucmV0dXJuKCl9ZmluYWxseXtpZih4KXRocm93IHV9fXJldHVybiBffX0ocyxvKXx8ZnVuY3Rpb24gX3Vuc3VwcG9ydGVkX2l0ZXJhYmxlX3RvX2FycmF5KHMsbyl7aWYoIXMpcmV0dXJuO2lmKCJzdHJpbmciPT10eXBlb2YgcylyZXR1cm4gX2FycmF5X2xpa2VfdG9fYXJyYXkocyxvKTt2YXIgaT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocykuc2xpY2UoOCwtMSk7Ik9iamVjdCI9PT1pJiZzLmNvbnN0cnVjdG9yJiYoaT1zLmNvbnN0cnVjdG9yLm5hbWUpO2lmKCJNYXAiPT09aXx8IlNldCI9PT1pKXJldHVybiBBcnJheS5mcm9tKGkpO2lmKCJBcmd1bWVudHMiPT09aXx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaSkpcmV0dXJuIF9hcnJheV9saWtlX3RvX2FycmF5KHMsbyl9KHMsbyl8fGZ1bmN0aW9uIF9ub25faXRlcmFibGVfcmVzdCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIF90eXBlX29mKHMpe3JldHVybiBzJiYidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmcy5jb25zdHJ1Y3Rvcj09PVN5bWJvbD8ic3ltYm9sIjp0eXBlb2Ygc312b2lkIDA9PT1nbG9iYWxUaGlzLmZldGNoJiYoZ2xvYmFsVGhpcy5mZXRjaD15bCksdm9pZCAwPT09Z2xvYmFsVGhpcy5IZWFkZXJzJiYoZ2xvYmFsVGhpcy5IZWFkZXJzPV9sKSx2b2lkIDA9PT1nbG9iYWxUaGlzLlJlcXVlc3QmJihnbG9iYWxUaGlzLlJlcXVlc3Q9U2wpLHZvaWQgMD09PWdsb2JhbFRoaXMuUmVzcG9uc2UmJihnbG9iYWxUaGlzLlJlc3BvbnNlPXZsKSx2b2lkIDA9PT1nbG9iYWxUaGlzLkZvcm1EYXRhJiYoZ2xvYmFsVGhpcy5Gb3JtRGF0YT1FbCksdm9pZCAwPT09Z2xvYmFsVGhpcy5GaWxlJiYoZ2xvYmFsVGhpcy5GaWxlPXdsKSx2b2lkIDA9PT1nbG9iYWxUaGlzLkJsb2ImJihnbG9iYWxUaGlzLkJsb2I9eGwpO3ZhciBfX3R5cGVFcnJvcj1mdW5jdGlvbihzKXt0aHJvdyBUeXBlRXJyb3Iocyl9LF9fYWNjZXNzQ2hlY2s9ZnVuY3Rpb24ocyxvLGkpe3JldHVybiBvLmhhcyhzKXx8X190eXBlRXJyb3IoIkNhbm5vdCAiK2kpfSxfX3ByaXZhdGVHZXQ9ZnVuY3Rpb24ocyxvLGkpe3JldHVybiBfX2FjY2Vzc0NoZWNrKHMsbywicmVhZCBmcm9tIHByaXZhdGUgZmllbGQiKSxpP2kuY2FsbChzKTpvLmdldChzKX0sX19wcml2YXRlQWRkPWZ1bmN0aW9uKHMsbyxpKXtyZXR1cm4gby5oYXMocyk/X190eXBlRXJyb3IoIkNhbm5vdCBhZGQgdGhlIHNhbWUgcHJpdmF0ZSBtZW1iZXIgbW9yZSB0aGFuIG9uY2UiKTpfaW5zdGFuY2VvZihvLFdlYWtTZXQpP28uYWRkKHMpOm8uc2V0KHMsaSl9LF9fcHJpdmF0ZVNldD1mdW5jdGlvbihzLG8saSxhKXtyZXR1cm4gX19hY2Nlc3NDaGVjayhzLG8sIndyaXRlIHRvIHByaXZhdGUgZmllbGQiKSxhP2EuY2FsbChzLGkpOm8uc2V0KHMsaSksaX0sdG9fc3RyaW5nPWZ1bmN0aW9uKHMpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocyl9LGlzX3R5cGVkX2FycmF5PWZ1bmN0aW9uKHMpe3JldHVybiBBcnJheUJ1ZmZlci5pc1ZpZXcocykmJiFfaW5zdGFuY2VvZihzLERhdGFWaWV3KX0sa2w9QXJyYXkuaXNBcnJheSxPbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLENsPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUsQWw9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxQbD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIG93bl9lbnVtZXJhYmxlX2tleXMocyl7Zm9yKHZhciBvPU9iamVjdC5rZXlzKHMpLGk9QWwocyksYT0wO2E8aS5sZW5ndGg7YSsrKUNsLmNhbGwocyxpW2FdKSYmby5wdXNoKGlbYV0pO3JldHVybiBvfWZ1bmN0aW9uIGlzX3dyaXRhYmxlKHMsbyl7dmFyIGk7cmV0dXJuIShudWxsPT09KGk9T2wocyxvKSl8fHZvaWQgMD09PWk/dm9pZCAwOmkud3JpdGFibGUpfWZ1bmN0aW9uIGxlZ2FjeV9jb3B5KHMsbyl7aWYoIm9iamVjdCI9PT0odm9pZCAwPT09cz8idW5kZWZpbmVkIjpfdHlwZV9vZihzKSkmJm51bGwhPT1zKXt2YXIgaTtpZihrbChzKSlpPVtdO2Vsc2UgaWYoIltvYmplY3QgRGF0ZV0iPT09dG9fc3RyaW5nKHMpKWk9bmV3IERhdGUocy5nZXRUaW1lP3MuZ2V0VGltZSgpOnMpO2Vsc2UgaWYoZnVuY3Rpb24ocyl7cmV0dXJuIltvYmplY3QgUmVnRXhwXSI9PT10b19zdHJpbmcocyl9KHMpKWk9bmV3IFJlZ0V4cChzKTtlbHNlIGlmKGZ1bmN0aW9uKHMpe3JldHVybiJbb2JqZWN0IEVycm9yXSI9PT10b19zdHJpbmcocyl9KHMpKWk9e21lc3NhZ2U6cy5tZXNzYWdlfTtlbHNlIGlmKGZ1bmN0aW9uKHMpe3JldHVybiJbb2JqZWN0IEJvb2xlYW5dIj09PXRvX3N0cmluZyhzKX0ocyl8fGZ1bmN0aW9uKHMpe3JldHVybiJbb2JqZWN0IE51bWJlcl0iPT09dG9fc3RyaW5nKHMpfShzKXx8ZnVuY3Rpb24ocyl7cmV0dXJuIltvYmplY3QgU3RyaW5nXSI9PT10b19zdHJpbmcocyl9KHMpKWk9T2JqZWN0KHMpO2Vsc2V7aWYoaXNfdHlwZWRfYXJyYXkocykpcmV0dXJuIHMuc2xpY2UoKTtpPU9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKHMpKX12YXIgYT1vLmluY2x1ZGVTeW1ib2xzP293bl9lbnVtZXJhYmxlX2tleXM6T2JqZWN0LmtleXMsdT0hMCxfPSExLHc9dm9pZCAwO3RyeXtmb3IodmFyIHgsQz1hKHMpW1N5bWJvbC5pdGVyYXRvcl0oKTshKHU9KHg9Qy5uZXh0KCkpLmRvbmUpO3U9ITApe3ZhciBqPXgudmFsdWU7aVtqXT1zW2pdfX1jYXRjaChzKXtfPSEwLHc9c31maW5hbGx5e3RyeXt1fHxudWxsPT1DLnJldHVybnx8Qy5yZXR1cm4oKX1maW5hbGx5e2lmKF8pdGhyb3cgd319cmV0dXJuIGl9cmV0dXJuIHN9dmFyIElsLFRsLE5sPXtpbmNsdWRlU3ltYm9sczohMSxpbW11dGFibGU6ITF9O2Z1bmN0aW9uIHdhbGsocyxvKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06TmwsYT1bXSx1PVtdLF89ITAsdz1pLmluY2x1ZGVTeW1ib2xzP293bl9lbnVtZXJhYmxlX2tleXM6T2JqZWN0LmtleXMseD0hIWkuaW1tdXRhYmxlO3JldHVybiBmdW5jdGlvbiB3YWxrZXIocyl7dmFyIEM9eD9sZWdhY3lfY29weShzLGkpOnMsaj17fSxMPSEwLEI9e25vZGU6Qyxub2RlXzpzLHBhdGg6W10uY29uY2F0KGEpLHBhcmVudDp1W3UubGVuZ3RoLTFdLHBhcmVudHM6dSxrZXk6YVthLmxlbmd0aC0xXSxpc1Jvb3Q6MD09PWEubGVuZ3RoLGxldmVsOmEubGVuZ3RoLGNpcmN1bGFyOnZvaWQgMCxpc0xlYWY6ITEsbm90TGVhZjohMCxub3RSb290OiEwLGlzRmlyc3Q6ITEsaXNMYXN0OiExLHVwZGF0ZTpmdW5jdGlvbiB1cGRhdGUocyl7dmFyIG89YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtCLmlzUm9vdHx8KEIucGFyZW50Lm5vZGVbQi5rZXldPXMpLEIubm9kZT1zLG8mJihMPSExKX0sZGVsZXRlOmZ1bmN0aW9uIF9kZWxldGUocyl7ZGVsZXRlIEIucGFyZW50Lm5vZGVbQi5rZXldLHMmJihMPSExKX0scmVtb3ZlOmZ1bmN0aW9uIHJlbW92ZShzKXtrbChCLnBhcmVudC5ub2RlKT9CLnBhcmVudC5ub2RlLnNwbGljZShCLmtleSwxKTpkZWxldGUgQi5wYXJlbnQubm9kZVtCLmtleV0scyYmKEw9ITEpfSxrZXlzOm51bGwsYmVmb3JlOmZ1bmN0aW9uIGJlZm9yZShzKXtqLmJlZm9yZT1zfSxhZnRlcjpmdW5jdGlvbiBhZnRlcihzKXtqLmFmdGVyPXN9LHByZTpmdW5jdGlvbiBwcmUocyl7ai5wcmU9c30scG9zdDpmdW5jdGlvbiBwb3N0KHMpe2oucG9zdD1zfSxzdG9wOmZ1bmN0aW9uIHN0b3AoKXtfPSExfSxibG9jazpmdW5jdGlvbiBibG9jaygpe0w9ITF9fTtpZighXylyZXR1cm4gQjtmdW5jdGlvbiB1cGRhdGVfc3RhdGUoKXtpZigib2JqZWN0Ij09PV90eXBlX29mKEIubm9kZSkmJm51bGwhPT1CLm5vZGUpe0Iua2V5cyYmQi5ub2RlXz09PUIubm9kZXx8KEIua2V5cz13KEIubm9kZSkpLEIuaXNMZWFmPTA9PT1CLmtleXMubGVuZ3RoO2Zvcih2YXIgbz0wO288dS5sZW5ndGg7bysrKWlmKHVbb10ubm9kZV89PT1zKXtCLmNpcmN1bGFyPXVbb107YnJlYWt9fWVsc2UgQi5pc0xlYWY9ITAsQi5rZXlzPW51bGw7Qi5ub3RMZWFmPSFCLmlzTGVhZixCLm5vdFJvb3Q9IUIuaXNSb290fXVwZGF0ZV9zdGF0ZSgpO3ZhciAkPW8uY2FsbChCLEIubm9kZSk7aWYodm9pZCAwIT09JCYmQi51cGRhdGUmJkIudXBkYXRlKCQpLGouYmVmb3JlJiZqLmJlZm9yZS5jYWxsKEIsQi5ub2RlKSwhTClyZXR1cm4gQjtpZigib2JqZWN0Ij09PV90eXBlX29mKEIubm9kZSkmJm51bGwhPT1CLm5vZGUmJiFCLmNpcmN1bGFyKXt2YXIgVjt1LnB1c2goQiksdXBkYXRlX3N0YXRlKCk7dmFyIFU9ITAsej0hMSxZPXZvaWQgMDt0cnl7Zm9yKHZhciBaLGVlPU9iamVjdC5lbnRyaWVzKG51bGwhPT0oVj1CLmtleXMpJiZ2b2lkIDAhPT1WP1Y6W10pW1N5bWJvbC5pdGVyYXRvcl0oKTshKFU9KFo9ZWUubmV4dCgpKS5kb25lKTtVPSEwKXt2YXIgaWUsYWU9X3NsaWNlZF90b19hcnJheShaLnZhbHVlLDIpLGNlPWFlWzBdLGxlPWFlWzFdO2EucHVzaChsZSksai5wcmUmJmoucHJlLmNhbGwoQixCLm5vZGVbbGVdLGxlKTt2YXIgcGU9d2Fsa2VyKEIubm9kZVtsZV0pO3gmJlBsLmNhbGwoQi5ub2RlLGxlKSYmIWlzX3dyaXRhYmxlKEIubm9kZSxsZSkmJihCLm5vZGVbbGVdPXBlLm5vZGUpLHBlLmlzTGFzdD0hIShudWxsPT09KGllPUIua2V5cyl8fHZvaWQgMD09PWllP3ZvaWQgMDppZS5sZW5ndGgpJiYrY2U9PUIua2V5cy5sZW5ndGgtMSxwZS5pc0ZpcnN0PTA9PStjZSxqLnBvc3QmJmoucG9zdC5jYWxsKEIscGUpLGEucG9wKCl9fWNhdGNoKHMpe3o9ITAsWT1zfWZpbmFsbHl7dHJ5e1V8fG51bGw9PWVlLnJldHVybnx8ZWUucmV0dXJuKCl9ZmluYWxseXtpZih6KXRocm93IFl9fXUucG9wKCl9cmV0dXJuIGouYWZ0ZXImJmouYWZ0ZXIuY2FsbChCLEIubm9kZSksQn0ocykubm9kZX12YXIgTWw9ZnVuY3Rpb24oKXtmdW5jdGlvbiBUcmF2ZXJzZShzKXt2YXIgbz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06Tmw7IWZ1bmN0aW9uIF9jbGFzc19jYWxsX2NoZWNrKHMsbyl7aWYoIShzIGluc3RhbmNlb2YgbykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsVHJhdmVyc2UpLF9fcHJpdmF0ZUFkZCh0aGlzLElsKSxfX3ByaXZhdGVBZGQodGhpcyxUbCksX19wcml2YXRlU2V0KHRoaXMsSWwscyksX19wcml2YXRlU2V0KHRoaXMsVGwsbyl9cmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVfY2xhc3MocyxvLGkpe3JldHVybiBvJiZsZWdhY3lfZGVmaW5lUHJvcGVydGllcyhzLnByb3RvdHlwZSxvKSxpJiZsZWdhY3lfZGVmaW5lUHJvcGVydGllcyhzLGkpLHN9KFRyYXZlcnNlLFt7a2V5OiJnZXQiLHZhbHVlOmZ1bmN0aW9uIGdldChzKXtmb3IodmFyIG89X19wcml2YXRlR2V0KHRoaXMsSWwpLGk9MDtvJiZpPHMubGVuZ3RoO2krKyl7dmFyIGE9c1tpXTtpZighUGwuY2FsbChvLGEpfHwhX19wcml2YXRlR2V0KHRoaXMsVGwpLmluY2x1ZGVTeW1ib2xzJiYic3ltYm9sIj09PSh2b2lkIDA9PT1hPyJ1bmRlZmluZWQiOl90eXBlX29mKGEpKSlyZXR1cm47bz1vW2FdfXJldHVybiBvfX0se2tleToiaGFzIix2YWx1ZTpmdW5jdGlvbiBoYXMocyl7Zm9yKHZhciBvPV9fcHJpdmF0ZUdldCh0aGlzLElsKSxpPTA7byYmaTxzLmxlbmd0aDtpKyspe3ZhciBhPXNbaV07aWYoIVBsLmNhbGwobyxhKXx8IV9fcHJpdmF0ZUdldCh0aGlzLFRsKS5pbmNsdWRlU3ltYm9scyYmInN5bWJvbCI9PT0odm9pZCAwPT09YT8idW5kZWZpbmVkIjpfdHlwZV9vZihhKSkpcmV0dXJuITE7bz1vW2FdfXJldHVybiEwfX0se2tleToic2V0Iix2YWx1ZTpmdW5jdGlvbiBzZXQocyxvKXt2YXIgaT1fX3ByaXZhdGVHZXQodGhpcyxJbCksYT0wO2ZvcihhPTA7YTxzLmxlbmd0aC0xO2ErKyl7dmFyIHU9c1thXTtQbC5jYWxsKGksdSl8fChpW3VdPXt9KSxpPWlbdV19cmV0dXJuIGlbc1thXV09byxvfX0se2tleToibWFwIix2YWx1ZTpmdW5jdGlvbiBtYXAocyl7cmV0dXJuIHdhbGsoX19wcml2YXRlR2V0KHRoaXMsSWwpLHMse2ltbXV0YWJsZTohMCxpbmNsdWRlU3ltYm9sczohIV9fcHJpdmF0ZUdldCh0aGlzLFRsKS5pbmNsdWRlU3ltYm9sc30pfX0se2tleToiZm9yRWFjaCIsdmFsdWU6ZnVuY3Rpb24gZm9yRWFjaChzKXtyZXR1cm4gX19wcml2YXRlU2V0KHRoaXMsSWwsd2FsayhfX3ByaXZhdGVHZXQodGhpcyxJbCkscyxfX3ByaXZhdGVHZXQodGhpcyxUbCkpKSxfX3ByaXZhdGVHZXQodGhpcyxJbCl9fSx7a2V5OiJyZWR1Y2UiLHZhbHVlOmZ1bmN0aW9uIHJlZHVjZShzLG8pe3ZhciBpPTE9PT1hcmd1bWVudHMubGVuZ3RoLGE9aT9fX3ByaXZhdGVHZXQodGhpcyxJbCk6bztyZXR1cm4gdGhpcy5mb3JFYWNoKChmdW5jdGlvbihvKXt0aGlzLmlzUm9vdCYmaXx8KGE9cy5jYWxsKHRoaXMsYSxvKSl9KSksYX19LHtrZXk6InBhdGhzIix2YWx1ZTpmdW5jdGlvbiBwYXRocygpe3ZhciBzPVtdO3JldHVybiB0aGlzLmZvckVhY2goKGZ1bmN0aW9uKCl7cy5wdXNoKHRoaXMucGF0aCl9KSksc319LHtrZXk6Im5vZGVzIix2YWx1ZTpmdW5jdGlvbiBub2Rlcygpe3ZhciBzPVtdO3JldHVybiB0aGlzLmZvckVhY2goKGZ1bmN0aW9uKCl7cy5wdXNoKHRoaXMubm9kZSl9KSksc319LHtrZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbiBjbG9uZSgpe3ZhciBzPVtdLG89W10saT1fX3ByaXZhdGVHZXQodGhpcyxUbCk7cmV0dXJuIGlzX3R5cGVkX2FycmF5KF9fcHJpdmF0ZUdldCh0aGlzLElsKSk/X19wcml2YXRlR2V0KHRoaXMsSWwpLnNsaWNlKCk6ZnVuY3Rpb24gY2xvbmUoYSl7Zm9yKHZhciB1PTA7dTxzLmxlbmd0aDt1KyspaWYoc1t1XT09PWEpcmV0dXJuIG9bdV07aWYoIm9iamVjdCI9PT0odm9pZCAwPT09YT8idW5kZWZpbmVkIjpfdHlwZV9vZihhKSkmJm51bGwhPT1hKXt2YXIgXz1sZWdhY3lfY29weShhLGkpO3MucHVzaChhKSxvLnB1c2goXyk7dmFyIHc9aS5pbmNsdWRlU3ltYm9scz9vd25fZW51bWVyYWJsZV9rZXlzOk9iamVjdC5rZXlzLHg9ITAsQz0hMSxqPXZvaWQgMDt0cnl7Zm9yKHZhciBMLEI9dyhhKVtTeW1ib2wuaXRlcmF0b3JdKCk7ISh4PShMPUIubmV4dCgpKS5kb25lKTt4PSEwKXt2YXIgJD1MLnZhbHVlO19bJF09Y2xvbmUoYVskXSl9fWNhdGNoKHMpe0M9ITAsaj1zfWZpbmFsbHl7dHJ5e3h8fG51bGw9PUIucmV0dXJufHxCLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gcy5wb3AoKSxvLnBvcCgpLF99cmV0dXJuIGF9KF9fcHJpdmF0ZUdldCh0aGlzLElsKSl9fV0pLFRyYXZlcnNlfSgpO0lsPW5ldyBXZWFrTWFwLFRsPW5ldyBXZWFrTWFwO3ZhciB0cmF2ZXJzZT1mdW5jdGlvbihzLG8pe3JldHVybiBuZXcgTWwocyxvKX07dHJhdmVyc2UuZ2V0PWZ1bmN0aW9uKHMsbyxpKXtyZXR1cm4gbmV3IE1sKHMsaSkuZ2V0KG8pfSx0cmF2ZXJzZS5zZXQ9ZnVuY3Rpb24ocyxvLGksYSl7cmV0dXJuIG5ldyBNbChzLGEpLnNldChvLGkpfSx0cmF2ZXJzZS5oYXM9ZnVuY3Rpb24ocyxvLGkpe3JldHVybiBuZXcgTWwocyxpKS5oYXMobyl9LHRyYXZlcnNlLm1hcD1mdW5jdGlvbihzLG8saSl7cmV0dXJuIG5ldyBNbChzLGkpLm1hcChvKX0sdHJhdmVyc2UuZm9yRWFjaD1mdW5jdGlvbihzLG8saSl7cmV0dXJuIG5ldyBNbChzLGkpLmZvckVhY2gobyl9LHRyYXZlcnNlLnJlZHVjZT1mdW5jdGlvbihzLG8saSxhKXtyZXR1cm4gbmV3IE1sKHMsYSkucmVkdWNlKG8saSl9LHRyYXZlcnNlLnBhdGhzPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIG5ldyBNbChzLG8pLnBhdGhzKCl9LHRyYXZlcnNlLm5vZGVzPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIG5ldyBNbChzLG8pLm5vZGVzKCl9LHRyYXZlcnNlLmNsb25lPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIG5ldyBNbChzLG8pLmNsb25lKCl9O3ZhciBSbD10cmF2ZXJzZTtjb25zdCBEbD0iYXBwbGljYXRpb24vanNvbiwgYXBwbGljYXRpb24veWFtbCIsTGw9Imh0dHBzOi8vc3dhZ2dlci5pbyIsRmw9T2JqZWN0LmZyZWV6ZSh7dXJsOiIvIn0pLEJsPTNlMywkbD1bInByb3BlcnRpZXMiXSxWbD1bInByb3BlcnRpZXMiXSxVbD1bImRlZmluaXRpb25zIiwicGFyYW1ldGVycyIsInJlc3BvbnNlcyIsInNlY3VyaXR5RGVmaW5pdGlvbnMiLCJjb21wb25lbnRzL3NjaGVtYXMiLCJjb21wb25lbnRzL3Jlc3BvbnNlcyIsImNvbXBvbmVudHMvcGFyYW1ldGVycyIsImNvbXBvbmVudHMvc2VjdXJpdHlTY2hlbWVzIl0semw9WyJzY2hlbWEvZXhhbXBsZSIsIml0ZW1zL2V4YW1wbGUiXTtmdW5jdGlvbiBpc0ZyZWVseU5hbWVkKHMpe2NvbnN0IG89c1tzLmxlbmd0aC0xXSxpPXNbcy5sZW5ndGgtMl0sYT1zLmpvaW4oIi8iKTtyZXR1cm4gJGwuaW5kZXhPZihvKT4tMSYmLTE9PT1WbC5pbmRleE9mKGkpfHxVbC5pbmRleE9mKGEpPi0xfHx6bC5zb21lKChzPT5hLmluZGV4T2Yocyk+LTEpKX1mdW5jdGlvbiBhYnNvbHV0aWZ5UG9pbnRlcihzLG8pe2NvbnN0W2ksYV09cy5zcGxpdCgiIyIpLHU9bnVsbCE9bz9vOiIiLF89bnVsbCE9aT9pOiIiO2xldCB3O2lmKGlzSHR0cFVybCh1KSl3PXJlc29sdmUodSxfKTtlbHNle2NvbnN0IHM9cmVzb2x2ZShMbCx1KSxvPXJlc29sdmUocyxfKS5yZXBsYWNlKExsLCIiKTt3PV8uc3RhcnRzV2l0aCgiLyIpP286by5zdWJzdHJpbmcoMSl9cmV0dXJuIGE/YCR7d30jJHthfWA6d31jb25zdCBXbD0vXihbYS16XSs6XC9cL3xcL1wvKS9pO2NsYXNzIEpTT05SZWZFcnJvciBleHRlbmRzIEdve31jb25zdCBKbD17fSxIbD1uZXcgV2Vha01hcCxLbD1bcz0+InBhdGhzIj09PXNbMF0mJiJyZXNwb25zZXMiPT09c1szXSYmImV4YW1wbGVzIj09PXNbNV0scz0+InBhdGhzIj09PXNbMF0mJiJyZXNwb25zZXMiPT09c1szXSYmImNvbnRlbnQiPT09c1s1XSYmImV4YW1wbGUiPT09c1s3XSxzPT4icGF0aHMiPT09c1swXSYmInJlc3BvbnNlcyI9PT1zWzNdJiYiY29udGVudCI9PT1zWzVdJiYiZXhhbXBsZXMiPT09c1s3XSYmInZhbHVlIj09PXNbOV0scz0+InBhdGhzIj09PXNbMF0mJiJyZXF1ZXN0Qm9keSI9PT1zWzNdJiYiY29udGVudCI9PT1zWzRdJiYiZXhhbXBsZSI9PT1zWzZdLHM9PiJwYXRocyI9PT1zWzBdJiYicmVxdWVzdEJvZHkiPT09c1szXSYmImNvbnRlbnQiPT09c1s0XSYmImV4YW1wbGVzIj09PXNbNl0mJiJ2YWx1ZSI9PT1zWzhdLHM9PiJwYXRocyI9PT1zWzBdJiYicGFyYW1ldGVycyI9PT1zWzJdJiYiZXhhbXBsZSI9PT1zWzRdLHM9PiJwYXRocyI9PT1zWzBdJiYicGFyYW1ldGVycyI9PT1zWzNdJiYiZXhhbXBsZSI9PT1zWzVdLHM9PiJwYXRocyI9PT1zWzBdJiYicGFyYW1ldGVycyI9PT1zWzJdJiYiZXhhbXBsZXMiPT09c1s0XSYmInZhbHVlIj09PXNbNl0scz0+InBhdGhzIj09PXNbMF0mJiJwYXJhbWV0ZXJzIj09PXNbM10mJiJleGFtcGxlcyI9PT1zWzVdJiYidmFsdWUiPT09c1s3XSxzPT4icGF0aHMiPT09c1swXSYmInBhcmFtZXRlcnMiPT09c1syXSYmImNvbnRlbnQiPT09c1s0XSYmImV4YW1wbGUiPT09c1s2XSxzPT4icGF0aHMiPT09c1swXSYmInBhcmFtZXRlcnMiPT09c1syXSYmImNvbnRlbnQiPT09c1s0XSYmImV4YW1wbGVzIj09PXNbNl0mJiJ2YWx1ZSI9PT1zWzhdLHM9PiJwYXRocyI9PT1zWzBdJiYicGFyYW1ldGVycyI9PT1zWzNdJiYiY29udGVudCI9PT1zWzRdJiYiZXhhbXBsZSI9PT1zWzddLHM9PiJwYXRocyI9PT1zWzBdJiYicGFyYW1ldGVycyI9PT1zWzNdJiYiY29udGVudCI9PT1zWzVdJiYiZXhhbXBsZXMiPT09c1s3XSYmInZhbHVlIj09PXNbOV1dLEdsPXtrZXk6IiRyZWYiLHBsdWdpbjoocyxvLGksYSk9Pntjb25zdCB1PWEuZ2V0SW5zdGFuY2UoKSxfPWkuc2xpY2UoMCwtMSk7aWYoaXNGcmVlbHlOYW1lZChfKXx8KHM9PktsLnNvbWUoKG89Pm8ocykpKSkoXykpcmV0dXJuO2NvbnN0e2Jhc2VEb2M6d309YS5nZXRDb250ZXh0KGkpO2lmKCJzdHJpbmciIT10eXBlb2YgcylyZXR1cm4gbmV3IEpTT05SZWZFcnJvcigiJHJlZjogbXVzdCBiZSBhIHN0cmluZyAoSlNPTi1SZWYpIix7JHJlZjpzLGJhc2VEb2M6dyxmdWxsUGF0aDppfSk7Y29uc3QgeD1yZWZzX3NwbGl0KHMpLEM9eFswXSxqPXhbMV18fCIiO2xldCBMLEIsJDt0cnl7TD13fHxDP2Fic29sdXRlaWZ5KEMsdyk6bnVsbH1jYXRjaChvKXtyZXR1cm4gd3JhcEVycm9yKG8se3BvaW50ZXI6aiwkcmVmOnMsYmFzZVBhdGg6TCxmdWxsUGF0aDppfSl9aWYoZnVuY3Rpb24gcG9pbnRlckFscmVhZHlJblBhdGgocyxvLGksYSl7bGV0IHU9SGwuZ2V0KGEpO3V8fCh1PXt9LEhsLnNldChhLHUpKTtjb25zdCBfPWZ1bmN0aW9uIGFycmF5VG9Kc29uUG9pbnRlcihzKXtpZigwPT09cy5sZW5ndGgpcmV0dXJuIiI7cmV0dXJuYC8ke3MubWFwKGVzY2FwZUpzb25Qb2ludGVyVG9rZW4pLmpvaW4oIi8iKX1gfShpKSx3PWAke298fCI8c3BlY21hcC1iYXNlPiJ9IyR7c31gLHg9Xy5yZXBsYWNlKC9hbGxPZlwvXGQrXC8/L2csIiIpLEM9YS5jb250ZXh0VHJlZS5nZXQoW10pLmJhc2VEb2M7aWYobz09PUMmJnBvaW50ZXJJc0FQYXJlbnQoeCxzKSlyZXR1cm4hMDtsZXQgaj0iIjtjb25zdCBMPWkuc29tZSgocz0+KGo9YCR7an0vJHtlc2NhcGVKc29uUG9pbnRlclRva2VuKHMpfWAsdVtqXSYmdVtqXS5zb21lKChzPT5wb2ludGVySXNBUGFyZW50KHMsdyl8fHBvaW50ZXJJc0FQYXJlbnQodyxzKSkpKSkpO2lmKEwpcmV0dXJuITA7cmV0dXJuIHZvaWQodVt4XT0odVt4XXx8W10pLmNvbmNhdCh3KSl9KGosTCxfLGEpJiYhdS51c2VDaXJjdWxhclN0cnVjdHVyZXMpe2NvbnN0IG89YWJzb2x1dGlmeVBvaW50ZXIocyxMKTtyZXR1cm4gcz09PW8/bnVsbDpXby5yZXBsYWNlKGksbyl9aWYobnVsbD09TD8oJD1qc29uUG9pbnRlclRvQXJyYXkoaiksQj1hLmdldCgkKSx2b2lkIDA9PT1CJiYoQj1uZXcgSlNPTlJlZkVycm9yKGBDb3VsZCBub3QgcmVzb2x2ZSByZWZlcmVuY2U6ICR7c31gLHtwb2ludGVyOmosJHJlZjpzLGJhc2VEb2M6dyxmdWxsUGF0aDppfSkpKTooQj1leHRyYWN0RnJvbURvYyhMLGopLEI9bnVsbCE9Qi5fX3ZhbHVlP0IuX192YWx1ZTpCLmNhdGNoKChvPT57dGhyb3cgd3JhcEVycm9yKG8se3BvaW50ZXI6aiwkcmVmOnMsYmFzZURvYzp3LGZ1bGxQYXRoOml9KX0pKSksQiBpbnN0YW5jZW9mIEVycm9yKXJldHVybltXby5yZW1vdmUoaSksQl07Y29uc3QgVj1hYnNvbHV0aWZ5UG9pbnRlcihzLEwpLFU9V28ucmVwbGFjZShfLEIseyQkcmVmOlZ9KTtpZihMJiZMIT09dylyZXR1cm5bVSxXby5jb250ZXh0KF8se2Jhc2VEb2M6TH0pXTt0cnl7aWYoIWZ1bmN0aW9uIHBhdGNoVmFsdWVBbHJlYWR5SW5QYXRoKHMsbyl7Y29uc3QgaT1bc107cmV0dXJuIG8ucGF0aC5yZWR1Y2UoKChzLG8pPT4oaS5wdXNoKHNbb10pLHNbb10pKSxzKSxwb2ludFRvQW5jZXN0b3Ioby52YWx1ZSk7ZnVuY3Rpb24gcG9pbnRUb0FuY2VzdG9yKHMpe3JldHVybiBXby5pc09iamVjdChzKSYmKGkuaW5kZXhPZihzKT49MHx8T2JqZWN0LmtleXMocykuc29tZSgobz0+cG9pbnRUb0FuY2VzdG9yKHNbb10pKSkpfX0oYS5zdGF0ZSxVKXx8dS51c2VDaXJjdWxhclN0cnVjdHVyZXMpcmV0dXJuIFV9Y2F0Y2gocyl7cmV0dXJuIG51bGx9fX0sWWw9T2JqZWN0LmFzc2lnbihHbCx7ZG9jQ2FjaGU6SmwsYWJzb2x1dGVpZnksY2xlYXJDYWNoZTpmdW5jdGlvbiBjbGVhckNhY2hlKHMpe3ZvaWQgMCE9PXM/ZGVsZXRlIEpsW3NdOk9iamVjdC5rZXlzKEpsKS5mb3JFYWNoKChzPT57ZGVsZXRlIEpsW3NdfSkpfSxKU09OUmVmRXJyb3Isd3JhcEVycm9yLGdldERvYyxzcGxpdDpyZWZzX3NwbGl0LGV4dHJhY3RGcm9tRG9jLGZldGNoSlNPTjpmdW5jdGlvbiBmZXRjaEpTT04ocyl7cmV0dXJuIGZldGNoKHMse2hlYWRlcnM6e0FjY2VwdDpEbH0sbG9hZFNwZWM6ITB9KS50aGVuKChzPT5zLnRleHQoKSkpLnRoZW4oKHM9PmZuLmxvYWQocykpKX0sZXh0cmFjdCxqc29uUG9pbnRlclRvQXJyYXksdW5lc2NhcGVKc29uUG9pbnRlclRva2VufSksWGw9WWw7ZnVuY3Rpb24gYWJzb2x1dGVpZnkocyxvKXtpZighV2wudGVzdChzKSl7aWYoIW8pdGhyb3cgbmV3IEpTT05SZWZFcnJvcihgVHJpZWQgdG8gcmVzb2x2ZSBhIHJlbGF0aXZlIFVSTCwgd2l0aG91dCBoYXZpbmcgYSBiYXNlUGF0aC4gcGF0aDogJyR7c30nIGJhc2VQYXRoOiAnJHtvfSdgKTtyZXR1cm4gcmVzb2x2ZShvLHMpfXJldHVybiBzfWZ1bmN0aW9uIHdyYXBFcnJvcihzLG8pe2xldCBpO3JldHVybiBpPXMmJnMucmVzcG9uc2UmJnMucmVzcG9uc2UuYm9keT9gJHtzLnJlc3BvbnNlLmJvZHkuY29kZX0gJHtzLnJlc3BvbnNlLmJvZHkubWVzc2FnZX1gOnMubWVzc2FnZSxuZXcgSlNPTlJlZkVycm9yKGBDb3VsZCBub3QgcmVzb2x2ZSByZWZlcmVuY2U6ICR7aX1gLHsuLi5vLGNhdXNlOnN9KX1mdW5jdGlvbiByZWZzX3NwbGl0KHMpe3JldHVybihzKyIiKS5zcGxpdCgiIyIpfWZ1bmN0aW9uIGV4dHJhY3RGcm9tRG9jKHMsbyl7Y29uc3QgaT1KbFtzXTtpZihpJiYhV28uaXNQcm9taXNlKGkpKXRyeXtjb25zdCBzPWV4dHJhY3QobyxpKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihQcm9taXNlLnJlc29sdmUocykse19fdmFsdWU6c30pfWNhdGNoKHMpe3JldHVybiBQcm9taXNlLnJlamVjdChzKX1yZXR1cm4gZ2V0RG9jKHMpLnRoZW4oKHM9PmV4dHJhY3QobyxzKSkpfWZ1bmN0aW9uIGdldERvYyhzKXtjb25zdCBvPUpsW3NdO3JldHVybiBvP1dvLmlzUHJvbWlzZShvKT9vOlByb21pc2UucmVzb2x2ZShvKTooSmxbc109WWwuZmV0Y2hKU09OKHMpLnRoZW4oKG89PihKbFtzXT1vLG8pKSksSmxbc10pfWZ1bmN0aW9uIGV4dHJhY3QocyxvKXtjb25zdCBpPWpzb25Qb2ludGVyVG9BcnJheShzKTtpZihpLmxlbmd0aDwxKXJldHVybiBvO2NvbnN0IGE9V28uZ2V0SW4obyxpKTtpZih2b2lkIDA9PT1hKXRocm93IG5ldyBKU09OUmVmRXJyb3IoYENvdWxkIG5vdCByZXNvbHZlIHBvaW50ZXI6ICR7c30gZG9lcyBub3QgZXhpc3QgaW4gZG9jdW1lbnRgLHtwb2ludGVyOnN9KTtyZXR1cm4gYX1mdW5jdGlvbiBqc29uUG9pbnRlclRvQXJyYXkocyl7aWYoInN0cmluZyIhPXR5cGVvZiBzKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgc3RyaW5nLCBnb3QgYSAiK3R5cGVvZiBzKTtyZXR1cm4iLyI9PT1zWzBdJiYocz1zLnN1YnN0cigxKSksIiI9PT1zP1tdOnMuc3BsaXQoIi8iKS5tYXAodW5lc2NhcGVKc29uUG9pbnRlclRva2VuKX1mdW5jdGlvbiB1bmVzY2FwZUpzb25Qb2ludGVyVG9rZW4ocyl7aWYoInN0cmluZyIhPXR5cGVvZiBzKXJldHVybiBzO3JldHVybiBuZXcgVVJMU2VhcmNoUGFyYW1zKGA9JHtzLnJlcGxhY2UoL34xL2csIi8iKS5yZXBsYWNlKC9+MC9nLCJ+Iil9YCkuZ2V0KCIiKX1mdW5jdGlvbiBlc2NhcGVKc29uUG9pbnRlclRva2VuKHMpe3JldHVybiBuZXcgVVJMU2VhcmNoUGFyYW1zKFtbIiIscy5yZXBsYWNlKC9+L2csIn4wIikucmVwbGFjZSgvXC8vZywifjEiKV1dKS50b1N0cmluZygpLnNsaWNlKDEpfWNvbnN0IHBvaW50ZXJCb3VuZGFyeUNoYXI9cz0+IXN8fCIvIj09PXN8fCIjIj09PXM7ZnVuY3Rpb24gcG9pbnRlcklzQVBhcmVudChzLG8pe2lmKHBvaW50ZXJCb3VuZGFyeUNoYXIobykpcmV0dXJuITA7Y29uc3QgaT1zLmNoYXJBdChvLmxlbmd0aCksYT1vLnNsaWNlKC0xKTtyZXR1cm4gMD09PXMuaW5kZXhPZihvKSYmKCFpfHwiLyI9PT1pfHwiIyI9PT1pKSYmIiMiIT09YX1jb25zdCBRbD17a2V5OiJhbGxPZiIscGx1Z2luOihzLG8saSxhLHUpPT57aWYodS5tZXRhJiZ1Lm1ldGEuJCRyZWYpcmV0dXJuO2NvbnN0IF89aS5zbGljZSgwLC0xKTtpZihpc0ZyZWVseU5hbWVkKF8pKXJldHVybjtpZighQXJyYXkuaXNBcnJheShzKSl7Y29uc3Qgcz1uZXcgVHlwZUVycm9yKCJhbGxPZiBtdXN0IGJlIGFuIGFycmF5Iik7cmV0dXJuIHMuZnVsbFBhdGg9aSxzfWxldCB3PSExLHg9dS52YWx1ZTtpZihfLmZvckVhY2goKHM9Pnt4JiYoeD14W3NdKX0pKSx4PXsuLi54fSwwPT09T2JqZWN0LmtleXMoeCkubGVuZ3RoKXJldHVybjtkZWxldGUgeC5hbGxPZjtjb25zdCBDPVtdO3JldHVybiBDLnB1c2goYS5yZXBsYWNlKF8se30pKSxzLmZvckVhY2goKChzLG8pPT57aWYoIWEuaXNPYmplY3Qocykpe2lmKHcpcmV0dXJuIG51bGw7dz0hMDtjb25zdCBzPW5ldyBUeXBlRXJyb3IoIkVsZW1lbnRzIGluIGFsbE9mIG11c3QgYmUgb2JqZWN0cyIpO3JldHVybiBzLmZ1bGxQYXRoPWksQy5wdXNoKHMpfUMucHVzaChhLm1lcmdlRGVlcChfLHMpKTtjb25zdCB1PWZ1bmN0aW9uIGdlbmVyYXRlQWJzb2x1dGVSZWZQYXRjaGVzKHMsbyx7c3BlY21hcDppLGdldEJhc2VVcmxGb3JOb2RlUGF0aDphPXM9PmkuZ2V0Q29udGV4dChbLi4ubywuLi5zXSkuYmFzZURvYyx0YXJnZXRLZXlzOnU9WyIkcmVmIiwiJCRyZWYiXX09e30pe2NvbnN0IF89W107cmV0dXJuIFJsKHMpLmZvckVhY2goKGZ1bmN0aW9uIGNhbGxiYWNrKCl7aWYodS5pbmNsdWRlcyh0aGlzLmtleSkmJiJzdHJpbmciPT10eXBlb2YgdGhpcy5ub2RlKXtjb25zdCBzPXRoaXMucGF0aCx1PW8uY29uY2F0KHRoaXMucGF0aCksdz1hYnNvbHV0aWZ5UG9pbnRlcih0aGlzLm5vZGUsYShzKSk7Xy5wdXNoKGkucmVwbGFjZSh1LHcpKX19KSksX30ocyxpLnNsaWNlKDAsLTEpLHtnZXRCYXNlVXJsRm9yTm9kZVBhdGg6cz0+YS5nZXRDb250ZXh0KFsuLi5pLG8sLi4uc10pLmJhc2VEb2Msc3BlY21hcDphfSk7Qy5wdXNoKC4uLnUpfSkpLHguZXhhbXBsZSYmQy5wdXNoKGEucmVtb3ZlKFtdLmNvbmNhdChfLCJleGFtcGxlIikpKSxDLnB1c2goYS5tZXJnZURlZXAoXyx4KSkseC4kJHJlZnx8Qy5wdXNoKGEucmVtb3ZlKFtdLmNvbmNhdChfLCIkJHJlZiIpKSksQ319LFpsPXtrZXk6InBhcmFtZXRlcnMiLHBsdWdpbjoocyxvLGksYSk9PntpZihBcnJheS5pc0FycmF5KHMpJiZzLmxlbmd0aCl7Y29uc3Qgbz1PYmplY3QuYXNzaWduKFtdLHMpLHU9aS5zbGljZSgwLC0xKSxfPXsuLi5Xby5nZXRJbihhLnNwZWMsdSl9O2ZvcihsZXQgdT0wO3U8cy5sZW5ndGg7dSs9MSl7Y29uc3Qgdz1zW3VdO3RyeXtvW3VdLmRlZmF1bHQ9YS5wYXJhbWV0ZXJNYWNybyhfLHcpfWNhdGNoKHMpe2NvbnN0IG89bmV3IEVycm9yKHMpO3JldHVybiBvLmZ1bGxQYXRoPWksb319cmV0dXJuIFdvLnJlcGxhY2UoaSxvKX1yZXR1cm4gV28ucmVwbGFjZShpLHMpfX0sZXU9e2tleToicHJvcGVydGllcyIscGx1Z2luOihzLG8saSxhKT0+e2NvbnN0IHU9ey4uLnN9O2Zvcihjb25zdCBvIGluIHMpdHJ5e3Vbb10uZGVmYXVsdD1hLm1vZGVsUHJvcGVydHlNYWNybyh1W29dKX1jYXRjaChzKXtjb25zdCBvPW5ldyBFcnJvcihzKTtyZXR1cm4gby5mdWxsUGF0aD1pLG99cmV0dXJuIFdvLnJlcGxhY2UoaSx1KX19O2NsYXNzIENvbnRleHRUcmVle2NvbnN0cnVjdG9yKHMpe3RoaXMucm9vdD1jb250ZXh0X3RyZWVfY3JlYXRlTm9kZShzfHx7fSl9c2V0KHMsbyl7Y29uc3QgaT10aGlzLmdldFBhcmVudChzLCEwKTtpZighaSlyZXR1cm4gdm9pZCBjb250ZXh0X3RyZWVfdXBkYXRlTm9kZSh0aGlzLnJvb3QsbyxudWxsKTtjb25zdCBhPXNbcy5sZW5ndGgtMV0se2NoaWxkcmVuOnV9PWk7dVthXT9jb250ZXh0X3RyZWVfdXBkYXRlTm9kZSh1W2FdLG8saSk6dVthXT1jb250ZXh0X3RyZWVfY3JlYXRlTm9kZShvLGkpfWdldChzKXtpZigocz1zfHxbXSkubGVuZ3RoPDEpcmV0dXJuIHRoaXMucm9vdC52YWx1ZTtsZXQgbyxpLGE9dGhpcy5yb290O2ZvcihsZXQgdT0wO3U8cy5sZW5ndGgmJihpPXNbdV0sbz1hLmNoaWxkcmVuLG9baV0pO3UrPTEpYT1vW2ldO3JldHVybiBhJiZhLnByb3RvVmFsdWV9Z2V0UGFyZW50KHMsbyl7cmV0dXJuIXN8fHMubGVuZ3RoPDE/bnVsbDpzLmxlbmd0aDwyP3RoaXMucm9vdDpzLnNsaWNlKDAsLTEpLnJlZHVjZSgoKHMsaSk9PntpZighcylyZXR1cm4gcztjb25zdHtjaGlsZHJlbjphfT1zO3JldHVybiFhW2ldJiZvJiYoYVtpXT1jb250ZXh0X3RyZWVfY3JlYXRlTm9kZShudWxsLHMpKSxhW2ldfSksdGhpcy5yb290KX19ZnVuY3Rpb24gY29udGV4dF90cmVlX2NyZWF0ZU5vZGUocyxvKXtyZXR1cm4gY29udGV4dF90cmVlX3VwZGF0ZU5vZGUoe2NoaWxkcmVuOnt9fSxzLG8pfWZ1bmN0aW9uIGNvbnRleHRfdHJlZV91cGRhdGVOb2RlKHMsbyxpKXtyZXR1cm4gcy52YWx1ZT1vfHx7fSxzLnByb3RvVmFsdWU9aT97Li4uaS5wcm90b1ZhbHVlLC4uLnMudmFsdWV9OnMudmFsdWUsT2JqZWN0LmtleXMocy5jaGlsZHJlbikuZm9yRWFjaCgobz0+e2NvbnN0IGk9cy5jaGlsZHJlbltvXTtzLmNoaWxkcmVuW29dPWNvbnRleHRfdHJlZV91cGRhdGVOb2RlKGksaS52YWx1ZSxzKX0pKSxzfWNvbnN0IHNwZWNtYXBfbm9vcD0oKT0+e307Y2xhc3MgU3BlY01hcHtzdGF0aWMgZ2V0UGx1Z2luTmFtZShzKXtyZXR1cm4gcy5wbHVnaW5OYW1lfXN0YXRpYyBnZXRQYXRjaGVzT2ZUeXBlKHMsbyl7cmV0dXJuIHMuZmlsdGVyKG8pfWNvbnN0cnVjdG9yKHMpe09iamVjdC5hc3NpZ24odGhpcyx7c3BlYzoiIixkZWJ1Z0xldmVsOiJpbmZvIixwbHVnaW5zOltdLHBsdWdpbkhpc3Rvcnk6e30sZXJyb3JzOltdLG11dGF0aW9uczpbXSxwcm9taXNlZFBhdGNoZXM6W10sc3RhdGU6e30scGF0Y2hlczpbXSxjb250ZXh0Ont9LGNvbnRleHRUcmVlOm5ldyBDb250ZXh0VHJlZSxzaG93RGVidWc6ITEsYWxsUGF0Y2hlczpbXSxwbHVnaW5Qcm9wOiJzcGVjTWFwIixsaWJNZXRob2RzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZSh0aGlzKSxXbyx7Z2V0SW5zdGFuY2U6KCk9PnRoaXN9KSxhbGxvd01ldGFQYXRjaGVzOiExfSxzKSx0aGlzLmdldD10aGlzLl9nZXQuYmluZCh0aGlzKSx0aGlzLmdldENvbnRleHQ9dGhpcy5fZ2V0Q29udGV4dC5iaW5kKHRoaXMpLHRoaXMuaGFzUnVuPXRoaXMuX2hhc1J1bi5iaW5kKHRoaXMpLHRoaXMud3JhcHBlZFBsdWdpbnM9dGhpcy5wbHVnaW5zLm1hcCh0aGlzLndyYXBQbHVnaW4uYmluZCh0aGlzKSkuZmlsdGVyKFdvLmlzRnVuY3Rpb24pLHRoaXMucGF0Y2hlcy5wdXNoKFdvLmFkZChbXSx0aGlzLnNwZWMpKSx0aGlzLnBhdGNoZXMucHVzaChXby5jb250ZXh0KFtdLHRoaXMuY29udGV4dCkpLHRoaXMudXBkYXRlUGF0Y2hlcyh0aGlzLnBhdGNoZXMpfWRlYnVnKHMsLi4ubyl7dGhpcy5kZWJ1Z0xldmVsPT09cyYmY29uc29sZS5sb2coLi4ubyl9dmVyYm9zZShzLC4uLm8peyJ2ZXJib3NlIj09PXRoaXMuZGVidWdMZXZlbCYmY29uc29sZS5sb2coYFske3N9XSAgIGAsLi4ubyl9d3JhcFBsdWdpbihzLG8pe2NvbnN0e3BhdGhEaXNjcmltaW5hdG9yOml9PXRoaXM7bGV0IGEsdT1udWxsO3JldHVybiBzW3RoaXMucGx1Z2luUHJvcF0/KHU9cyxhPXNbdGhpcy5wbHVnaW5Qcm9wXSk6V28uaXNGdW5jdGlvbihzKT9hPXM6V28uaXNPYmplY3QocykmJihhPWZ1bmN0aW9uIGNyZWF0ZUtleUJhc2VkUGx1Z2luKHMpe2NvbnN0IGlzU3ViUGF0aD0ocyxvKT0+IUFycmF5LmlzQXJyYXkocyl8fHMuZXZlcnkoKChzLGkpPT5zPT09b1tpXSkpO3JldHVybiBmdW5jdGlvbipnZW5lcmF0b3IobyxhKXtjb25zdCB1PXt9O2Zvcihjb25zdFtzLGldb2Ygby5maWx0ZXIoV28uaXNBZGRpdGl2ZU11dGF0aW9uKS5lbnRyaWVzKCkpe2lmKCEoczxCbCkpcmV0dXJuO3lpZWxkKnRyYXZlcnNlKGkudmFsdWUsaS5wYXRoLGkpfWZ1bmN0aW9uKnRyYXZlcnNlKG8sXyx3KXtpZihXby5pc09iamVjdChvKSl7Y29uc3QgeD1fLmxlbmd0aC0xLEM9X1t4XSxqPV8uaW5kZXhPZigicHJvcGVydGllcyIpLEw9InByb3BlcnRpZXMiPT09QyYmeD09PWosQj1hLmFsbG93TWV0YVBhdGNoZXMmJnVbby4kJHJlZl07Zm9yKGNvbnN0IHggb2YgT2JqZWN0LmtleXMobykpe2NvbnN0IEM9b1t4XSxqPV8uY29uY2F0KHgpLCQ9V28uaXNPYmplY3QoQyksVj1vLiQkcmVmO2lmKEJ8fCQmJihhLmFsbG93TWV0YVBhdGNoZXMmJlYmJmlzU3ViUGF0aChpLGopJiYodVtWXT0hMCkseWllbGQqdHJhdmVyc2UoQyxqLHcpKSwhTCYmeD09PXMua2V5KXtjb25zdCBvPWlzU3ViUGF0aChpLF8pO2kmJiFvfHwoeWllbGQgcy5wbHVnaW4oQyx4LGosYSx3KSl9fX1lbHNlIHMua2V5PT09X1tfLmxlbmd0aC0xXSYmKHlpZWxkIHMucGx1Z2luKG8scy5rZXksXyxhKSl9fX0ocykpLE9iamVjdC5hc3NpZ24oYS5iaW5kKHUpLHtwbHVnaW5OYW1lOnMubmFtZXx8byxpc0dlbmVyYXRvcjpXby5pc0dlbmVyYXRvcihhKX0pfW5leHRQbHVnaW4oKXtyZXR1cm4gdGhpcy53cmFwcGVkUGx1Z2lucy5maW5kKChzPT50aGlzLmdldE11dGF0aW9uc0ZvclBsdWdpbihzKS5sZW5ndGg+MCkpfW5leHRQcm9taXNlZFBhdGNoKCl7aWYodGhpcy5wcm9taXNlZFBhdGNoZXMubGVuZ3RoPjApcmV0dXJuIFByb21pc2UucmFjZSh0aGlzLnByb21pc2VkUGF0Y2hlcy5tYXAoKHM9PnMudmFsdWUpKSl9Z2V0UGx1Z2luSGlzdG9yeShzKXtjb25zdCBvPXRoaXMuY29uc3RydWN0b3IuZ2V0UGx1Z2luTmFtZShzKTtyZXR1cm4gdGhpcy5wbHVnaW5IaXN0b3J5W29dfHxbXX1nZXRQbHVnaW5SdW5Db3VudChzKXtyZXR1cm4gdGhpcy5nZXRQbHVnaW5IaXN0b3J5KHMpLmxlbmd0aH1nZXRQbHVnaW5IaXN0b3J5VGlwKHMpe2NvbnN0IG89dGhpcy5nZXRQbHVnaW5IaXN0b3J5KHMpO3JldHVybiBvJiZvW28ubGVuZ3RoLTFdfHx7fX1nZXRQbHVnaW5NdXRhdGlvbkluZGV4KHMpe2NvbnN0IG89dGhpcy5nZXRQbHVnaW5IaXN0b3J5VGlwKHMpLm11dGF0aW9uSW5kZXg7cmV0dXJuIm51bWJlciIhPXR5cGVvZiBvPy0xOm99dXBkYXRlUGx1Z2luSGlzdG9yeShzLG8pe2NvbnN0IGk9dGhpcy5jb25zdHJ1Y3Rvci5nZXRQbHVnaW5OYW1lKHMpO3RoaXMucGx1Z2luSGlzdG9yeVtpXT10aGlzLnBsdWdpbkhpc3RvcnlbaV18fFtdLHRoaXMucGx1Z2luSGlzdG9yeVtpXS5wdXNoKG8pfXVwZGF0ZVBhdGNoZXMocyl7V28ubm9ybWFsaXplQXJyYXkocykuZm9yRWFjaCgocz0+e2lmKHMgaW5zdGFuY2VvZiBFcnJvcil0aGlzLmVycm9ycy5wdXNoKHMpO2Vsc2UgdHJ5e2lmKCFXby5pc09iamVjdChzKSlyZXR1cm4gdm9pZCB0aGlzLmRlYnVnKCJ1cGRhdGVQYXRjaGVzIiwiR290IGEgbm9uLW9iamVjdCBwYXRjaCIscyk7aWYodGhpcy5zaG93RGVidWcmJnRoaXMuYWxsUGF0Y2hlcy5wdXNoKHMpLFdvLmlzUHJvbWlzZShzLnZhbHVlKSlyZXR1cm4gdGhpcy5wcm9taXNlZFBhdGNoZXMucHVzaChzKSx2b2lkIHRoaXMucHJvbWlzZWRQYXRjaFRoZW4ocyk7aWYoV28uaXNDb250ZXh0UGF0Y2gocykpcmV0dXJuIHZvaWQgdGhpcy5zZXRDb250ZXh0KHMucGF0aCxzLnZhbHVlKTtXby5pc011dGF0aW9uKHMpJiZ0aGlzLnVwZGF0ZU11dGF0aW9ucyhzKX1jYXRjaChzKXtjb25zb2xlLmVycm9yKHMpLHRoaXMuZXJyb3JzLnB1c2gocyl9fSkpfXVwZGF0ZU11dGF0aW9ucyhzKXsib2JqZWN0Ij09dHlwZW9mIHMudmFsdWUmJiFBcnJheS5pc0FycmF5KHMudmFsdWUpJiZ0aGlzLmFsbG93TWV0YVBhdGNoZXMmJihzLnZhbHVlPXsuLi5zLnZhbHVlfSk7Y29uc3Qgbz1Xby5hcHBseVBhdGNoKHRoaXMuc3RhdGUscyx7YWxsb3dNZXRhUGF0Y2hlczp0aGlzLmFsbG93TWV0YVBhdGNoZXN9KTtvJiYodGhpcy5tdXRhdGlvbnMucHVzaChzKSx0aGlzLnN0YXRlPW8pfXJlbW92ZVByb21pc2VkUGF0Y2gocyl7Y29uc3Qgbz10aGlzLnByb21pc2VkUGF0Y2hlcy5pbmRleE9mKHMpO288MD90aGlzLmRlYnVnKCJUcmllZCB0byByZW1vdmUgYSBwcm9taXNlZFBhdGNoIHRoYXQgaXNuJ3QgdGhlcmUhIik6dGhpcy5wcm9taXNlZFBhdGNoZXMuc3BsaWNlKG8sMSl9cHJvbWlzZWRQYXRjaFRoZW4ocyl7cmV0dXJuIHMudmFsdWU9cy52YWx1ZS50aGVuKChvPT57Y29uc3QgaT17Li4ucyx2YWx1ZTpvfTt0aGlzLnJlbW92ZVByb21pc2VkUGF0Y2gocyksdGhpcy51cGRhdGVQYXRjaGVzKGkpfSkpLmNhdGNoKChvPT57dGhpcy5yZW1vdmVQcm9taXNlZFBhdGNoKHMpLHRoaXMudXBkYXRlUGF0Y2hlcyhvKX0pKSxzLnZhbHVlfWdldE11dGF0aW9ucyhzLG8pe3JldHVybiBzPXN8fDAsIm51bWJlciIhPXR5cGVvZiBvJiYobz10aGlzLm11dGF0aW9ucy5sZW5ndGgpLHRoaXMubXV0YXRpb25zLnNsaWNlKHMsbyl9Z2V0Q3VycmVudE11dGF0aW9ucygpe3JldHVybiB0aGlzLmdldE11dGF0aW9uc0ZvclBsdWdpbih0aGlzLmdldEN1cnJlbnRQbHVnaW4oKSl9Z2V0TXV0YXRpb25zRm9yUGx1Z2luKHMpe2NvbnN0IG89dGhpcy5nZXRQbHVnaW5NdXRhdGlvbkluZGV4KHMpO3JldHVybiB0aGlzLmdldE11dGF0aW9ucyhvKzEpfWdldEN1cnJlbnRQbHVnaW4oKXtyZXR1cm4gdGhpcy5jdXJyZW50UGx1Z2lufWdldExpYigpe3JldHVybiB0aGlzLmxpYk1ldGhvZHN9X2dldChzKXtyZXR1cm4gV28uZ2V0SW4odGhpcy5zdGF0ZSxzKX1fZ2V0Q29udGV4dChzKXtyZXR1cm4gdGhpcy5jb250ZXh0VHJlZS5nZXQocyl9c2V0Q29udGV4dChzLG8pe3JldHVybiB0aGlzLmNvbnRleHRUcmVlLnNldChzLG8pfV9oYXNSdW4ocyl7cmV0dXJuIHRoaXMuZ2V0UGx1Z2luUnVuQ291bnQodGhpcy5nZXRDdXJyZW50UGx1Z2luKCkpPihzfHwwKX1kaXNwYXRjaCgpe2NvbnN0IHM9dGhpcyxvPXRoaXMubmV4dFBsdWdpbigpO2lmKCFvKXtjb25zdCBzPXRoaXMubmV4dFByb21pc2VkUGF0Y2goKTtpZihzKXJldHVybiBzLnRoZW4oKCgpPT50aGlzLmRpc3BhdGNoKCkpKS5jYXRjaCgoKCk9PnRoaXMuZGlzcGF0Y2goKSkpO2NvbnN0IG89e3NwZWM6dGhpcy5zdGF0ZSxlcnJvcnM6dGhpcy5lcnJvcnN9O3JldHVybiB0aGlzLnNob3dEZWJ1ZyYmKG8ucGF0Y2hlcz10aGlzLmFsbFBhdGNoZXMpLFByb21pc2UucmVzb2x2ZShvKX1pZihzLnBsdWdpbkNvdW50PXMucGx1Z2luQ291bnR8fG5ldyBXZWFrTWFwLHMucGx1Z2luQ291bnQuc2V0KG8sKHMucGx1Z2luQ291bnQuZ2V0KG8pfHwwKSsxKSxzLnBsdWdpbkNvdW50W29dPjEwMClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtzcGVjOnMuc3RhdGUsZXJyb3JzOnMuZXJyb3JzLmNvbmNhdChuZXcgRXJyb3IoIldlJ3ZlIHJlYWNoZWQgYSBoYXJkIGxpbWl0IG9mIDEwMCBwbHVnaW4gcnVucyIpKX0pO2lmKG8hPT10aGlzLmN1cnJlbnRQbHVnaW4mJnRoaXMucHJvbWlzZWRQYXRjaGVzLmxlbmd0aCl7Y29uc3Qgcz10aGlzLnByb21pc2VkUGF0Y2hlcy5tYXAoKHM9PnMudmFsdWUpKTtyZXR1cm4gUHJvbWlzZS5hbGwocy5tYXAoKHM9PnMudGhlbihzcGVjbWFwX25vb3Asc3BlY21hcF9ub29wKSkpKS50aGVuKCgoKT0+dGhpcy5kaXNwYXRjaCgpKSl9cmV0dXJuIGZ1bmN0aW9uIGV4ZWN1dGVQbHVnaW4oKXtzLmN1cnJlbnRQbHVnaW49bztjb25zdCBpPXMuZ2V0Q3VycmVudE11dGF0aW9ucygpLGE9cy5tdXRhdGlvbnMubGVuZ3RoLTE7dHJ5e2lmKG8uaXNHZW5lcmF0b3IpZm9yKGNvbnN0IGEgb2YgbyhpLHMuZ2V0TGliKCkpKXVwZGF0ZVBhdGNoZXMoYSk7ZWxzZXt1cGRhdGVQYXRjaGVzKG8oaSxzLmdldExpYigpKSl9fWNhdGNoKHMpe2NvbnNvbGUuZXJyb3IocyksdXBkYXRlUGF0Y2hlcyhbT2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKHMpLHtwbHVnaW46b30pXSl9ZmluYWxseXtzLnVwZGF0ZVBsdWdpbkhpc3Rvcnkobyx7bXV0YXRpb25JbmRleDphfSl9cmV0dXJuIHMuZGlzcGF0Y2goKX0oKTtmdW5jdGlvbiB1cGRhdGVQYXRjaGVzKGkpe2kmJihpPVdvLmZ1bGx5Tm9ybWFsaXplQXJyYXkoaSkscy51cGRhdGVQYXRjaGVzKGksbykpfX19Y29uc3QgdHU9e3JlZnM6WGwsYWxsT2Y6UWwscGFyYW1ldGVyczpabCxwcm9wZXJ0aWVzOmV1fTtmdW5jdGlvbiBtYWtlRmV0Y2hKU09OKHMsbz17fSl7Y29uc3R7cmVxdWVzdEludGVyY2VwdG9yOmkscmVzcG9uc2VJbnRlcmNlcHRvcjphfT1vLHU9cy53aXRoQ3JlZGVudGlhbHM/ImluY2x1ZGUiOiJzYW1lLW9yaWdpbiI7cmV0dXJuIG89PnMoe3VybDpvLGxvYWRTcGVjOiEwLHJlcXVlc3RJbnRlcmNlcHRvcjppLHJlc3BvbnNlSW50ZXJjZXB0b3I6YSxoZWFkZXJzOntBY2NlcHQ6RGx9LGNyZWRlbnRpYWxzOnV9KS50aGVuKChzPT5zLmJvZHkpKX1mdW5jdGlvbiBpc0ZpbGUocyxvKXtyZXR1cm4gb3x8InVuZGVmaW5lZCI9PXR5cGVvZiBuYXZpZ2F0b3J8fChvPW5hdmlnYXRvciksbyYmIlJlYWN0TmF0aXZlIj09PW8ucHJvZHVjdD8hKCFzfHwib2JqZWN0IiE9dHlwZW9mIHN8fCJzdHJpbmciIT10eXBlb2Ygcy51cmkpOiJ1bmRlZmluZWQiIT10eXBlb2YgRmlsZSYmcyBpbnN0YW5jZW9mIEZpbGV8fCgidW5kZWZpbmVkIiE9dHlwZW9mIEJsb2ImJnMgaW5zdGFuY2VvZiBCbG9ifHwoISFBcnJheUJ1ZmZlci5pc1ZpZXcocyl8fG51bGwhPT1zJiYib2JqZWN0Ij09dHlwZW9mIHMmJiJmdW5jdGlvbiI9PXR5cGVvZiBzLnBpcGUpKX1mdW5jdGlvbiBpc0FycmF5T2ZGaWxlKHMsbyl7cmV0dXJuIEFycmF5LmlzQXJyYXkocykmJnMuc29tZSgocz0+aXNGaWxlKHMsbykpKX1jbGFzcyBGaWxlV2l0aERhdGEgZXh0ZW5kcyBGaWxle2NvbnN0cnVjdG9yKHMsbz0iIixpPXt9KXtzdXBlcihbc10sbyxpKSx0aGlzLmRhdGE9c312YWx1ZU9mKCl7cmV0dXJuIHRoaXMuZGF0YX10b1N0cmluZygpe3JldHVybiB0aGlzLnZhbHVlT2YoKX19Y29uc3QgaXNSZmMzOTg2UmVzZXJ2ZWQ9cz0+IjovPyNbXUAhJCYnKCkqKyw7PSIuaW5kZXhPZihzKT4tMSxpc1JmYzM5ODZVbnJlc2VydmVkPXM9Pi9eW2EtejAtOVwtLl9+XSskL2kudGVzdChzKTtmdW5jdGlvbiBlbmNvZGVDaGFyYWN0ZXJzKHMsbz0icmVzZXJ2ZWQiKXtyZXR1cm5bLi4uc10ubWFwKChzPT57aWYoaXNSZmMzOTg2VW5yZXNlcnZlZChzKSlyZXR1cm4gcztpZihpc1JmYzM5ODZSZXNlcnZlZChzKSYmInVuc2FmZSI9PT1vKXJldHVybiBzO2NvbnN0IGk9bmV3IFRleHRFbmNvZGVyO3JldHVybiBBcnJheS5mcm9tKGkuZW5jb2RlKHMpKS5tYXAoKHM9PmAwJHtzLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfWAuc2xpY2UoLTIpKSkubWFwKChzPT5gJSR7c31gKSkuam9pbigiIil9KSkuam9pbigiIil9ZnVuY3Rpb24gc3R5bGl6ZShzKXtjb25zdHt2YWx1ZTpvfT1zO3JldHVybiBBcnJheS5pc0FycmF5KG8pP2Z1bmN0aW9uIGVuY29kZUFycmF5KHtrZXk6cyx2YWx1ZTpvLHN0eWxlOmksZXhwbG9kZTphLGVzY2FwZTp1fSl7aWYoInNpbXBsZSI9PT1pKXJldHVybiBvLm1hcCgocz0+dmFsdWVFbmNvZGVyKHMsdSkpKS5qb2luKCIsIik7aWYoImxhYmVsIj09PWkpcmV0dXJuYC4ke28ubWFwKChzPT52YWx1ZUVuY29kZXIocyx1KSkpLmpvaW4oIi4iKX1gO2lmKCJtYXRyaXgiPT09aSlyZXR1cm4gby5tYXAoKHM9PnZhbHVlRW5jb2RlcihzLHUpKSkucmVkdWNlKCgobyxpKT0+IW98fGE/YCR7b3x8IiJ9OyR7c309JHtpfWA6YCR7b30sJHtpfWApLCIiKTtpZigiZm9ybSI9PT1pKXtjb25zdCBpPWE/YCYke3N9PWA6IiwiO3JldHVybiBvLm1hcCgocz0+dmFsdWVFbmNvZGVyKHMsdSkpKS5qb2luKGkpfWlmKCJzcGFjZURlbGltaXRlZCI9PT1pKXtjb25zdCBpPWE/YCR7c309YDoiIjtyZXR1cm4gby5tYXAoKHM9PnZhbHVlRW5jb2RlcihzLHUpKSkuam9pbihgICR7aX1gKX1pZigicGlwZURlbGltaXRlZCI9PT1pKXtjb25zdCBpPWE/YCR7c309YDoiIjtyZXR1cm4gby5tYXAoKHM9PnZhbHVlRW5jb2RlcihzLHUpKSkuam9pbihgfCR7aX1gKX1yZXR1cm59KHMpOiJvYmplY3QiPT10eXBlb2Ygbz9mdW5jdGlvbiBlbmNvZGVPYmplY3Qoe2tleTpzLHZhbHVlOm8sc3R5bGU6aSxleHBsb2RlOmEsZXNjYXBlOnV9KXtjb25zdCBfPU9iamVjdC5rZXlzKG8pO2lmKCJzaW1wbGUiPT09aSlyZXR1cm4gXy5yZWR1Y2UoKChzLGkpPT57Y29uc3QgXz12YWx1ZUVuY29kZXIob1tpXSx1KTtyZXR1cm5gJHtzP2Ake3N9LGA6IiJ9JHtpfSR7YT8iPSI6IiwifSR7X31gfSksIiIpO2lmKCJsYWJlbCI9PT1pKXJldHVybiBfLnJlZHVjZSgoKHMsaSk9Pntjb25zdCBfPXZhbHVlRW5jb2RlcihvW2ldLHUpO3JldHVybmAke3M/YCR7c30uYDoiLiJ9JHtpfSR7YT8iPSI6Ii4ifSR7X31gfSksIiIpO2lmKCJtYXRyaXgiPT09aSYmYSlyZXR1cm4gXy5yZWR1Y2UoKChzLGkpPT5gJHtzP2Ake3N9O2A6IjsifSR7aX09JHt2YWx1ZUVuY29kZXIob1tpXSx1KX1gKSwiIik7aWYoIm1hdHJpeCI9PT1pKXJldHVybiBfLnJlZHVjZSgoKGksYSk9Pntjb25zdCBfPXZhbHVlRW5jb2RlcihvW2FdLHUpO3JldHVybmAke2k/YCR7aX0sYDpgOyR7c309YH0ke2F9LCR7X31gfSksIiIpO2lmKCJmb3JtIj09PWkpcmV0dXJuIF8ucmVkdWNlKCgocyxpKT0+e2NvbnN0IF89dmFsdWVFbmNvZGVyKG9baV0sdSk7cmV0dXJuYCR7cz9gJHtzfSR7YT8iJiI6IiwifWA6IiJ9JHtpfSR7YT8iPSI6IiwifSR7X31gfSksIiIpO3JldHVybn0ocyk6ZnVuY3Rpb24gZW5jb2RlUHJpbWl0aXZlKHtrZXk6cyx2YWx1ZTpvLHN0eWxlOmksZXNjYXBlOmF9KXtpZigic2ltcGxlIj09PWkpcmV0dXJuIHZhbHVlRW5jb2RlcihvLGEpO2lmKCJsYWJlbCI9PT1pKXJldHVybmAuJHt2YWx1ZUVuY29kZXIobyxhKX1gO2lmKCJtYXRyaXgiPT09aSlyZXR1cm5gOyR7c309JHt2YWx1ZUVuY29kZXIobyxhKX1gO2lmKCJmb3JtIj09PWkpcmV0dXJuIHZhbHVlRW5jb2RlcihvLGEpO2lmKCJkZWVwT2JqZWN0Ij09PWkpcmV0dXJuIHZhbHVlRW5jb2RlcihvLGEpO3JldHVybn0ocyl9ZnVuY3Rpb24gdmFsdWVFbmNvZGVyKHMsbz0hMSl7cmV0dXJuIEFycmF5LmlzQXJyYXkocyl8fG51bGwhPT1zJiYib2JqZWN0Ij09dHlwZW9mIHM/cz1KU09OLnN0cmluZ2lmeShzKToibnVtYmVyIiE9dHlwZW9mIHMmJiJib29sZWFuIiE9dHlwZW9mIHN8fChzPVN0cmluZyhzKSksbyYmInN0cmluZyI9PXR5cGVvZiBzJiZzLmxlbmd0aD4wP2VuY29kZUNoYXJhY3RlcnMocyxvKTpudWxsIT1zP3M6IiJ9Y29uc3QgcnU9e2Zvcm06IiwiLHNwYWNlRGVsaW1pdGVkOiIlMjAiLHBpcGVEZWxpbWl0ZWQ6InwifSxudT17Y3N2OiIsIixzc3Y6IiUyMCIsdHN2OiIlMDkiLHBpcGVzOiJ8In07ZnVuY3Rpb24gZm9ybWF0S2V5VmFsdWUocyxvLGk9ITEpe2NvbnN0e2NvbGxlY3Rpb25Gb3JtYXQ6YSxhbGxvd0VtcHR5VmFsdWU6dSxzZXJpYWxpemF0aW9uT3B0aW9uOl8sZW5jb2Rpbmc6d309byx4PSJvYmplY3QiIT10eXBlb2Ygb3x8QXJyYXkuaXNBcnJheShvKT9vOm8udmFsdWUsQz1pP3M9PnMudG9TdHJpbmcoKTpzPT5lbmNvZGVVUklDb21wb25lbnQocyksaj1DKHMpO2lmKHZvaWQgMD09PXgmJnUpcmV0dXJuW1tqLCIiXV07aWYoaXNGaWxlKHgpfHxpc0FycmF5T2ZGaWxlKHgpKXJldHVybltbaix4XV07aWYoXylyZXR1cm4gZm9ybWF0S2V5VmFsdWVCeVNlcmlhbGl6YXRpb25PcHRpb24ocyx4LGksXyk7aWYodyl7aWYoW3R5cGVvZiB3LnN0eWxlLHR5cGVvZiB3LmV4cGxvZGUsdHlwZW9mIHcuYWxsb3dSZXNlcnZlZF0uc29tZSgocz0+InVuZGVmaW5lZCIhPT1zKSkpe2NvbnN0e3N0eWxlOm8sZXhwbG9kZTphLGFsbG93UmVzZXJ2ZWQ6dX09dztyZXR1cm4gZm9ybWF0S2V5VmFsdWVCeVNlcmlhbGl6YXRpb25PcHRpb24ocyx4LGkse3N0eWxlOm8sZXhwbG9kZTphLGFsbG93UmVzZXJ2ZWQ6dX0pfWlmKCJzdHJpbmciPT10eXBlb2Ygdy5jb250ZW50VHlwZSl7aWYody5jb250ZW50VHlwZS5zdGFydHNXaXRoKCJhcHBsaWNhdGlvbi9qc29uIikpe2NvbnN0IHM9Qygic3RyaW5nIj09dHlwZW9mIHg/eDpKU09OLnN0cmluZ2lmeSh4KSk7cmV0dXJuW1tqLG5ldyBGaWxlV2l0aERhdGEocywiYmxvYiIse3R5cGU6dy5jb250ZW50VHlwZX0pXV19Y29uc3Qgcz1DKFN0cmluZyh4KSk7cmV0dXJuW1tqLG5ldyBGaWxlV2l0aERhdGEocywiYmxvYiIse3R5cGU6dy5jb250ZW50VHlwZX0pXV19cmV0dXJuIm9iamVjdCIhPXR5cGVvZiB4P1tbaixDKHgpXV06QXJyYXkuaXNBcnJheSh4KSYmeC5ldmVyeSgocz0+Im9iamVjdCIhPXR5cGVvZiBzKSk/W1tqLHgubWFwKEMpLmpvaW4oIiwiKV1dOltbaixDKEpTT04uc3RyaW5naWZ5KHgpKV1dfXJldHVybiJvYmplY3QiIT10eXBlb2YgeD9bW2osQyh4KV1dOkFycmF5LmlzQXJyYXkoeCk/Im11bHRpIj09PWE/W1tqLHgubWFwKEMpXV06W1tqLHgubWFwKEMpLmpvaW4obnVbYXx8ImNzdiJdKV1dOltbaiwiIl1dfWZ1bmN0aW9uIGZvcm1hdEtleVZhbHVlQnlTZXJpYWxpemF0aW9uT3B0aW9uKHMsbyxpLGEpe2NvbnN0IHU9YS5zdHlsZXx8ImZvcm0iLF89dm9pZCAwPT09YS5leHBsb2RlPyJmb3JtIj09PXU6YS5leHBsb2RlLHc9IWkmJihhJiZhLmFsbG93UmVzZXJ2ZWQ/InVuc2FmZSI6InJlc2VydmVkIiksZW5jb2RlRm49cz0+dmFsdWVFbmNvZGVyKHMsdykseD1pP3M9PnM6cz0+ZW5jb2RlRm4ocyk7cmV0dXJuIm9iamVjdCIhPXR5cGVvZiBvP1tbeChzKSxlbmNvZGVGbihvKV1dOkFycmF5LmlzQXJyYXkobyk/Xz9bW3gocyksby5tYXAoZW5jb2RlRm4pXV06W1t4KHMpLG8ubWFwKGVuY29kZUZuKS5qb2luKHJ1W3VdKV1dOiJkZWVwT2JqZWN0Ij09PXU/T2JqZWN0LmtleXMobykubWFwKChpPT5beChgJHtzfVske2l9XWApLGVuY29kZUZuKG9baV0pXSkpOl8/T2JqZWN0LmtleXMobykubWFwKChzPT5beChzKSxlbmNvZGVGbihvW3NdKV0pKTpbW3gocyksT2JqZWN0LmtleXMobykubWFwKChzPT5bYCR7eChzKX0sJHtlbmNvZGVGbihvW3NdKX1gXSkpLmpvaW4oIiwiKV1dfWZ1bmN0aW9uIGVuY29kZUZvcm1PclF1ZXJ5KHMpe3JldHVybigocyx7ZW5jb2RlOm89ITB9PXt9KT0+e2NvbnN0IGJ1aWxkTmVzdGVkUGFyYW1zPShzLG8saSk9PihBcnJheS5pc0FycmF5KGkpP2kucmVkdWNlKCgoaSxhKT0+YnVpbGROZXN0ZWRQYXJhbXMocyxvLGEpKSxzKTppIGluc3RhbmNlb2YgRGF0ZT9zLmFwcGVuZChvLGkudG9JU09TdHJpbmcoKSk6Im9iamVjdCI9PXR5cGVvZiBpP09iamVjdC5lbnRyaWVzKGkpLnJlZHVjZSgoKGksW2EsdV0pPT5idWlsZE5lc3RlZFBhcmFtcyhzLGAke299WyR7YX1dYCx1KSkscyk6cy5hcHBlbmQobyxpKSxzKSxpPU9iamVjdC5lbnRyaWVzKHMpLnJlZHVjZSgoKHMsW28saV0pPT5idWlsZE5lc3RlZFBhcmFtcyhzLG8saSkpLG5ldyBVUkxTZWFyY2hQYXJhbXMpLGE9U3RyaW5nKGkpO3JldHVybiBvP2E6ZGVjb2RlVVJJQ29tcG9uZW50KGEpfSkoT2JqZWN0LmtleXMocykucmVkdWNlKCgobyxpKT0+e2Zvcihjb25zdFthLHVdb2YgZm9ybWF0S2V5VmFsdWUoaSxzW2ldKSlvW2FdPXUgaW5zdGFuY2VvZiBGaWxlV2l0aERhdGE/dS52YWx1ZU9mKCk6dTtyZXR1cm4gb30pLHt9KSx7ZW5jb2RlOiExfSl9ZnVuY3Rpb24gc2VyaWFsaXplUmVxdWVzdChzPXt9KXtjb25zdHt1cmw6bz0iIixxdWVyeTppLGZvcm06YX09cztpZihhKXtjb25zdCBvPU9iamVjdC5rZXlzKGEpLnNvbWUoKHM9Pntjb25zdHt2YWx1ZTpvfT1hW3NdO3JldHVybiBpc0ZpbGUobyl8fGlzQXJyYXlPZkZpbGUobyl9KSksaT1zLmhlYWRlcnNbImNvbnRlbnQtdHlwZSJdfHxzLmhlYWRlcnNbIkNvbnRlbnQtVHlwZSJdO2lmKG98fC9tdWx0aXBhcnRcL2Zvcm0tZGF0YS9pLnRlc3QoaSkpe2NvbnN0IG89ZnVuY3Rpb24gcmVxdWVzdF9idWlsZEZvcm1EYXRhKHMpe3JldHVybiBPYmplY3QuZW50cmllcyhzKS5yZWR1Y2UoKChzLFtvLGldKT0+e2Zvcihjb25zdFthLHVdb2YgZm9ybWF0S2V5VmFsdWUobyxpLCEwKSlpZihBcnJheS5pc0FycmF5KHUpKWZvcihjb25zdCBvIG9mIHUpaWYoQXJyYXlCdWZmZXIuaXNWaWV3KG8pKXtjb25zdCBpPW5ldyBCbG9iKFtvXSk7cy5hcHBlbmQoYSxpKX1lbHNlIHMuYXBwZW5kKGEsbyk7ZWxzZSBpZihBcnJheUJ1ZmZlci5pc1ZpZXcodSkpe2NvbnN0IG89bmV3IEJsb2IoW3VdKTtzLmFwcGVuZChhLG8pfWVsc2Ugcy5hcHBlbmQoYSx1KTtyZXR1cm4gc30pLG5ldyBGb3JtRGF0YSl9KHMuZm9ybSk7cy5mb3JtZGF0YT1vLHMuYm9keT1vfWVsc2Ugcy5ib2R5PWVuY29kZUZvcm1PclF1ZXJ5KGEpO2RlbGV0ZSBzLmZvcm19aWYoaSl7Y29uc3RbYSx1XT1vLnNwbGl0KCI/Iik7bGV0IF89IiI7aWYodSl7Y29uc3Qgcz1uZXcgVVJMU2VhcmNoUGFyYW1zKHUpO09iamVjdC5rZXlzKGkpLmZvckVhY2goKG89PnMuZGVsZXRlKG8pKSksXz1TdHJpbmcocyl9Y29uc3Qgdz0oKC4uLnMpPT57Y29uc3Qgbz1zLmZpbHRlcigocz0+cykpLmpvaW4oIiYiKTtyZXR1cm4gbz9gPyR7b31gOiIifSkoXyxlbmNvZGVGb3JtT3JRdWVyeShpKSk7cy51cmw9YSt3LGRlbGV0ZSBzLnF1ZXJ5fXJldHVybiBzfWZ1bmN0aW9uIHNlcmlhbGl6ZUhlYWRlcnMocz17fSl7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHMuZW50cmllcz97fTpBcnJheS5mcm9tKHMuZW50cmllcygpKS5yZWR1Y2UoKChzLFtvLGldKT0+KHNbb109ZnVuY3Rpb24gc2VyaWFsaXplSGVhZGVyVmFsdWUocyl7cmV0dXJuIHMuaW5jbHVkZXMoIiwgIik/cy5zcGxpdCgiLCAiKTpzfShpKSxzKSkse30pfWZ1bmN0aW9uIHNlcmlhbGl6ZVJlc3BvbnNlKHMsbyx7bG9hZFNwZWM6aT0hMX09e30pe2NvbnN0IGE9e29rOnMub2ssdXJsOnMudXJsfHxvLHN0YXR1czpzLnN0YXR1cyxzdGF0dXNUZXh0OnMuc3RhdHVzVGV4dCxoZWFkZXJzOnNlcmlhbGl6ZUhlYWRlcnMocy5oZWFkZXJzKX0sdT1hLmhlYWRlcnNbImNvbnRlbnQtdHlwZSJdLF89aXx8KChzPSIiKT0+Lyhqc29ufHhtbHx5YW1sfHRleHQpXGIvLnRlc3QocykpKHUpO3JldHVybihfP3MudGV4dDpzLmJsb2J8fHMuYnVmZmVyKS5jYWxsKHMpLnRoZW4oKHM9PntpZihhLnRleHQ9cyxhLmRhdGE9cyxfKXRyeXtjb25zdCBvPWZ1bmN0aW9uIHBhcnNlQm9keShzLG8pe3JldHVybiBvJiYoMD09PW8uaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpfHxvLmluZGV4T2YoIitqc29uIik+MCk/SlNPTi5wYXJzZShzKTpmbi5sb2FkKHMpfShzLHUpO2EuYm9keT1vLGEub2JqPW99Y2F0Y2gocyl7YS5wYXJzZUVycm9yPXN9cmV0dXJuIGF9KSl9YXN5bmMgZnVuY3Rpb24gaHR0cF9odHRwKHMsbz17fSl7Im9iamVjdCI9PXR5cGVvZiBzJiYocz0obz1zKS51cmwpLG8uaGVhZGVycz1vLmhlYWRlcnN8fHt9LChvPXNlcmlhbGl6ZVJlcXVlc3QobykpLmhlYWRlcnMmJk9iamVjdC5rZXlzKG8uaGVhZGVycykuZm9yRWFjaCgocz0+e2NvbnN0IGk9by5oZWFkZXJzW3NdOyJzdHJpbmciPT10eXBlb2YgaSYmKG8uaGVhZGVyc1tzXT1pLnJlcGxhY2UoL1xuKy9nLCIgIikpfSkpLG8ucmVxdWVzdEludGVyY2VwdG9yJiYobz1hd2FpdCBvLnJlcXVlc3RJbnRlcmNlcHRvcihvKXx8byk7Y29uc3QgaT1vLmhlYWRlcnNbImNvbnRlbnQtdHlwZSJdfHxvLmhlYWRlcnNbIkNvbnRlbnQtVHlwZSJdO2xldCBhOy9tdWx0aXBhcnRcL2Zvcm0tZGF0YS9pLnRlc3QoaSkmJihkZWxldGUgby5oZWFkZXJzWyJjb250ZW50LXR5cGUiXSxkZWxldGUgby5oZWFkZXJzWyJDb250ZW50LVR5cGUiXSk7dHJ5e2E9YXdhaXQoby51c2VyRmV0Y2h8fGZldGNoKShvLnVybCxvKSxhPWF3YWl0IHNlcmlhbGl6ZVJlc3BvbnNlKGEscyxvKSxvLnJlc3BvbnNlSW50ZXJjZXB0b3ImJihhPWF3YWl0IG8ucmVzcG9uc2VJbnRlcmNlcHRvcihhKXx8YSl9Y2F0Y2gocyl7aWYoIWEpdGhyb3cgcztjb25zdCBvPW5ldyBFcnJvcihhLnN0YXR1c1RleHR8fGByZXNwb25zZSBzdGF0dXMgaXMgJHthLnN0YXR1c31gKTt0aHJvdyBvLnN0YXR1cz1hLnN0YXR1cyxvLnN0YXR1c0NvZGU9YS5zdGF0dXMsby5yZXNwb25zZUVycm9yPXMsb31pZighYS5vayl7Y29uc3Qgcz1uZXcgRXJyb3IoYS5zdGF0dXNUZXh0fHxgcmVzcG9uc2Ugc3RhdHVzIGlzICR7YS5zdGF0dXN9YCk7dGhyb3cgcy5zdGF0dXM9YS5zdGF0dXMscy5zdGF0dXNDb2RlPWEuc3RhdHVzLHMucmVzcG9uc2U9YSxzfXJldHVybiBhfWNvbnN0IG9wdGlvbnNfcmV0cmlldmFsVVJJPXM9Pnt2YXIgbyxpO2NvbnN0e2Jhc2VEb2M6YSx1cmw6dX09cyxfPW51bGwhPT0obz1udWxsIT1hP2E6dSkmJnZvaWQgMCE9PW8/bzoiIjtyZXR1cm4ic3RyaW5nIj09dHlwZW9mKG51bGw9PT0oaT1nbG9iYWxUaGlzLmRvY3VtZW50KXx8dm9pZCAwPT09aT92b2lkIDA6aS5iYXNlVVJJKT9TdHJpbmcobmV3IFVSTChfLGdsb2JhbFRoaXMuZG9jdW1lbnQuYmFzZVVSSSkpOl99LG9wdGlvbnNfaHR0cENsaWVudD1zPT57Y29uc3R7ZmV0Y2g6byxodHRwOml9PXM7cmV0dXJuIG98fGl8fGh0dHBfaHR0cH07YXN5bmMgZnVuY3Rpb24gcmVzb2x2ZUdlbmVyaWNTdHJhdGVneShzKXtjb25zdHtzcGVjOm8sbW9kZTppLGFsbG93TWV0YVBhdGNoZXM6YT0hMCxwYXRoRGlzY3JpbWluYXRvcjp1LG1vZGVsUHJvcGVydHlNYWNybzpfLHBhcmFtZXRlck1hY3JvOncscmVxdWVzdEludGVyY2VwdG9yOngscmVzcG9uc2VJbnRlcmNlcHRvcjpDLHNraXBOb3JtYWxpemF0aW9uOmo9ITEsdXNlQ2lyY3VsYXJTdHJ1Y3R1cmVzOkwsc3RyYXRlZ2llczpCfT1zLCQ9b3B0aW9uc19yZXRyaWV2YWxVUkkocyksVj1vcHRpb25zX2h0dHBDbGllbnQocyksVT1CLmZpbmQoKHM9PnMubWF0Y2gobykpKTtyZXR1cm4gYXN5bmMgZnVuY3Rpb24gZG9SZXNvbHZlKHMpeyQmJih0dS5yZWZzLmRvY0NhY2hlWyRdPXMpO3R1LnJlZnMuZmV0Y2hKU09OPW1ha2VGZXRjaEpTT04oVix7cmVxdWVzdEludGVyY2VwdG9yOngscmVzcG9uc2VJbnRlcmNlcHRvcjpDfSk7Y29uc3Qgbz1bdHUucmVmc107ImZ1bmN0aW9uIj09dHlwZW9mIHcmJm8ucHVzaCh0dS5wYXJhbWV0ZXJzKTsiZnVuY3Rpb24iPT10eXBlb2YgXyYmby5wdXNoKHR1LnByb3BlcnRpZXMpOyJzdHJpY3QiIT09aSYmby5wdXNoKHR1LmFsbE9mKTtjb25zdCBCPWF3YWl0IGZ1bmN0aW9uIG1hcFNwZWMocyl7cmV0dXJuIG5ldyBTcGVjTWFwKHMpLmRpc3BhdGNoKCl9KHtzcGVjOnMsY29udGV4dDp7YmFzZURvYzokfSxwbHVnaW5zOm8sYWxsb3dNZXRhUGF0Y2hlczphLHBhdGhEaXNjcmltaW5hdG9yOnUscGFyYW1ldGVyTWFjcm86dyxtb2RlbFByb3BlcnR5TWFjcm86Xyx1c2VDaXJjdWxhclN0cnVjdHVyZXM6TH0pO2p8fChCLnNwZWM9VS5ub3JtYWxpemUoQi5zcGVjKSk7cmV0dXJuIEJ9KG8pfWNvbnN0IHN1PV9jdXJyeTIoKGZ1bmN0aW9uIGFuZChzLG8pe3JldHVybiBzJiZvfSkpO2NvbnN0IG91PV9jdXJyeTIoKGZ1bmN0aW9uIGJvdGgocyxvKXtyZXR1cm4gX2lzRnVuY3Rpb24ocyk/ZnVuY3Rpb24gX2JvdGgoKXtyZXR1cm4gcy5hcHBseSh0aGlzLGFyZ3VtZW50cykmJm8uYXBwbHkodGhpcyxhcmd1bWVudHMpfTpoYyhzdSkocyxvKX0pKTtjb25zdCBpdT1uYShudWxsKTtjb25zdCBhdT1kYyhpdSk7ZnVuY3Rpb24gaXNPZlR5cGVPYmplY3RfdHlwZW9mKHMpe3JldHVybiBpc09mVHlwZU9iamVjdF90eXBlb2Y9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24ocyl7cmV0dXJuIHR5cGVvZiBzfTpmdW5jdGlvbihzKXtyZXR1cm4gcyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmcy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmcyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHN9LGlzT2ZUeXBlT2JqZWN0X3R5cGVvZihzKX1jb25zdCBjdT1mdW5jdGlvbiBpc09mVHlwZU9iamVjdChzKXtyZXR1cm4ib2JqZWN0Ij09PWlzT2ZUeXBlT2JqZWN0X3R5cGVvZihzKX07Y29uc3QgbHU9JGEoMSxvdShhdSxjdSkpO3ZhciB1dT1waXBlKHJhLFBjKCJPYmplY3QiKSkscHU9cGlwZShnYSxuYShnYShPYmplY3QpKSksaHU9UW8ob3UoTWMscHUpLFsiY29uc3RydWN0b3IiXSksZHU9JGEoMSwoZnVuY3Rpb24ocyl7aWYoIWx1KHMpfHwhdXUocykpcmV0dXJuITE7dmFyIG89T2JqZWN0LmdldFByb3RvdHlwZU9mKHMpO3JldHVybiEhaXUobyl8fGh1KG8pfSkpO2NvbnN0IGZ1PWR1LHJlcGxhY2Vfc3BlY2lhbF9jaGFyc193aXRoX3VuZGVyc2NvcmU9cz0+cy5yZXBsYWNlKC9cVy9naSwiXyIpO2Z1bmN0aW9uIG9wSWQocyxvLGk9IiIse3YyT3BlcmF0aW9uSWRDb21wYXRpYmlsaXR5TW9kZTphfT17fSl7aWYoIXN8fCJvYmplY3QiIT10eXBlb2YgcylyZXR1cm4gbnVsbDtyZXR1cm4ocy5vcGVyYXRpb25JZHx8IiIpLnJlcGxhY2UoL1xzL2csIiIpLmxlbmd0aD9yZXBsYWNlX3NwZWNpYWxfY2hhcnNfd2l0aF91bmRlcnNjb3JlKHMub3BlcmF0aW9uSWQpOmZ1bmN0aW9uIGlkRnJvbVBhdGhNZXRob2QocyxvLHt2Mk9wZXJhdGlvbklkQ29tcGF0aWJpbGl0eU1vZGU6aX09e30pe2lmKGkpe2xldCBpPWAke28udG9Mb3dlckNhc2UoKX1fJHtzfWAucmVwbGFjZSgvW1xzIUAjJCVeJiooKV8rPVt7XF19Ozo8PnwuLz8sXFwnIiItXS9nLCJfIik7cmV0dXJuIGk9aXx8YCR7cy5zdWJzdHJpbmcoMSl9XyR7b31gLGkucmVwbGFjZSgvKChfKXsyLH0pL2csIl8iKS5yZXBsYWNlKC9eKF8pKi9nLCIiKS5yZXBsYWNlKC8oW19dKSokL2csIiIpfXJldHVybmAke28udG9Mb3dlckNhc2UoKX0ke3JlcGxhY2Vfc3BlY2lhbF9jaGFyc193aXRoX3VuZGVyc2NvcmUocyl9YH0obyxpLHt2Mk9wZXJhdGlvbklkQ29tcGF0aWJpbGl0eU1vZGU6YX0pfWZ1bmN0aW9uIG5vcm1hbGl6ZV9ub3JtYWxpemUocyl7Y29uc3R7c3BlYzpvfT1zLHtwYXRoczppfT1vLGE9e307aWYoIWl8fG8uJCRub3JtYWxpemVkKXJldHVybiBzO2Zvcihjb25zdCBzIGluIGkpe2NvbnN0IHU9aVtzXTtpZihudWxsPT11fHwhWyJvYmplY3QiLCJmdW5jdGlvbiJdLmluY2x1ZGVzKHR5cGVvZiB1KSljb250aW51ZTtjb25zdCBfPXUucGFyYW1ldGVycztmb3IoY29uc3QgaSBpbiB1KXtjb25zdCB3PXVbaV07aWYobnVsbD09d3x8IVsib2JqZWN0IiwiZnVuY3Rpb24iXS5pbmNsdWRlcyh0eXBlb2YgdykpY29udGludWU7Y29uc3QgeD1vcElkKHcscyxpKTtpZih4KXthW3hdP2FbeF0ucHVzaCh3KTphW3hdPVt3XTtjb25zdCBzPWFbeF07aWYocy5sZW5ndGg+MSlzLmZvckVhY2goKChzLG8pPT57cy5fX29yaWdpbmFsT3BlcmF0aW9uSWQ9cy5fX29yaWdpbmFsT3BlcmF0aW9uSWR8fHMub3BlcmF0aW9uSWQscy5vcGVyYXRpb25JZD1gJHt4fSR7bysxfWB9KSk7ZWxzZSBpZih2b2lkIDAhPT13Lm9wZXJhdGlvbklkKXtjb25zdCBvPXNbMF07by5fX29yaWdpbmFsT3BlcmF0aW9uSWQ9by5fX29yaWdpbmFsT3BlcmF0aW9uSWR8fHcub3BlcmF0aW9uSWQsby5vcGVyYXRpb25JZD14fX1pZigicGFyYW1ldGVycyIhPT1pKXtjb25zdCBzPVtdLGk9e307Zm9yKGNvbnN0IGEgaW4gbykicHJvZHVjZXMiIT09YSYmImNvbnN1bWVzIiE9PWEmJiJzZWN1cml0eSIhPT1hfHwoaVthXT1vW2FdLHMucHVzaChpKSk7aWYoXyYmKGkucGFyYW1ldGVycz1fLHMucHVzaChpKSkscy5sZW5ndGgpZm9yKGNvbnN0IG8gb2Ygcylmb3IoY29uc3QgcyBpbiBvKWlmKEFycmF5LmlzQXJyYXkod1tzXSkpe2lmKCJwYXJhbWV0ZXJzIj09PXMpZm9yKGNvbnN0IGkgb2Ygb1tzXSl7d1tzXS5zb21lKChzPT4hKCFmdShzKSYmIWZ1KGkpKSYmKHM9PT1pfHxbIm5hbWUiLCIkcmVmIiwiJCRyZWYiXS5zb21lKChvPT4ic3RyaW5nIj09dHlwZW9mIHNbb10mJiJzdHJpbmciPT10eXBlb2YgaVtvXSYmc1tvXT09PWlbb10pKSkpKXx8d1tzXS5wdXNoKGkpfX1lbHNlIHdbc109b1tzXX19fXJldHVybiBvLiQkbm9ybWFsaXplZD0hMCxzfWNvbnN0IG11PXtuYW1lOiJnZW5lcmljIixtYXRjaDooKT0+ITAsbm9ybWFsaXplKHMpe2NvbnN0e3NwZWM6b309bm9ybWFsaXplX25vcm1hbGl6ZSh7c3BlYzpzfSk7cmV0dXJuIG99LHJlc29sdmU6YXN5bmMgcz0+cmVzb2x2ZUdlbmVyaWNTdHJhdGVneShzKX0sZ3U9bXU7Y29uc3QgaXNPcGVuQVBJMzA9cz0+e3RyeXtjb25zdHtvcGVuYXBpOm99PXM7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBvJiYvXjNcLjBcLig/OlsxLTldXGQqfDApJC8udGVzdChvKX1jYXRjaHtyZXR1cm4hMX19LGlzT3BlbkFQSTMxPXM9Pnt0cnl7Y29uc3R7b3BlbmFwaTpvfT1zO3JldHVybiJzdHJpbmciPT10eXBlb2YgbyYmL14zXC4xXC4oPzpbMS05XVxkKnwwKSQvLnRlc3Qobyl9Y2F0Y2h7cmV0dXJuITF9fSxpc09wZW5BUEkzPXM9PmlzT3BlbkFQSTMwKHMpfHxpc09wZW5BUEkzMShzKSx5dT17bmFtZToib3BlbmFwaS0yIixtYXRjaDpzPT4ocz0+e3RyeXtjb25zdHtzd2FnZ2VyOm99PXM7cmV0dXJuIjIuMCI9PT1vfWNhdGNoe3JldHVybiExfX0pKHMpLG5vcm1hbGl6ZShzKXtjb25zdHtzcGVjOm99PW5vcm1hbGl6ZV9ub3JtYWxpemUoe3NwZWM6c30pO3JldHVybiBvfSxyZXNvbHZlOmFzeW5jIHM9PmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVPcGVuQVBJMlN0cmF0ZWd5KHMpe3JldHVybiByZXNvbHZlR2VuZXJpY1N0cmF0ZWd5KHMpfShzKX0sdnU9eXU7Y29uc3QgYnU9e25hbWU6Im9wZW5hcGktMy0wIixtYXRjaDpzPT5pc09wZW5BUEkzMChzKSxub3JtYWxpemUocyl7Y29uc3R7c3BlYzpvfT1ub3JtYWxpemVfbm9ybWFsaXplKHtzcGVjOnN9KTtyZXR1cm4gb30scmVzb2x2ZTphc3luYyBzPT5hc3luYyBmdW5jdGlvbiByZXNvbHZlT3BlbkFQSTMwU3RyYXRlZ3kocyl7cmV0dXJuIHJlc29sdmVHZW5lcmljU3RyYXRlZ3kocyl9KHMpfSxfdT1idTt2YXIgU3U9X193ZWJwYWNrX3JlcXVpcmVfXygzNDAzNSk7ZnVuY3Rpb24gX3JlZHVjZWQocyl7cmV0dXJuIHMmJnNbIkBAdHJhbnNkdWNlci9yZWR1Y2VkIl0/czp7IkBAdHJhbnNkdWNlci92YWx1ZSI6cywiQEB0cmFuc2R1Y2VyL3JlZHVjZWQiOiEwfX12YXIgRXU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBYQWxsKHMsbyl7dGhpcy54Zj1vLHRoaXMuZj1zLHRoaXMuYWxsPSEwfXJldHVybiBYQWxsLnByb3RvdHlwZVsiQEB0cmFuc2R1Y2VyL2luaXQiXT1feGZCYXNlX2luaXQsWEFsbC5wcm90b3R5cGVbIkBAdHJhbnNkdWNlci9yZXN1bHQiXT1mdW5jdGlvbihzKXtyZXR1cm4gdGhpcy5hbGwmJihzPXRoaXMueGZbIkBAdHJhbnNkdWNlci9zdGVwIl0ocywhMCkpLHRoaXMueGZbIkBAdHJhbnNkdWNlci9yZXN1bHQiXShzKX0sWEFsbC5wcm90b3R5cGVbIkBAdHJhbnNkdWNlci9zdGVwIl09ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdGhpcy5mKG8pfHwodGhpcy5hbGw9ITEscz1fcmVkdWNlZCh0aGlzLnhmWyJAQHRyYW5zZHVjZXIvc3RlcCJdKHMsITEpKSksc30sWEFsbH0oKTtmdW5jdGlvbiBfeGFsbChzKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIG5ldyBFdShzLG8pfX12YXIgd3U9X2N1cnJ5MihfZGlzcGF0Y2hhYmxlKFsiYWxsIl0sX3hhbGwsKGZ1bmN0aW9uIGFsbChzLG8pe2Zvcih2YXIgaT0wO2k8by5sZW5ndGg7KXtpZighcyhvW2ldKSlyZXR1cm4hMTtpKz0xfXJldHVybiEwfSkpKTtjb25zdCB4dT13dTtjbGFzcyBBbm5vdGF0aW9uIGV4dGVuZHMgU3UuT217Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9ImFubm90YXRpb24ifWdldCBjb2RlKCl7cmV0dXJuIHRoaXMuYXR0cmlidXRlcy5nZXQoImNvZGUiKX1zZXQgY29kZShzKXt0aGlzLmF0dHJpYnV0ZXMuc2V0KCJjb2RlIixzKX19Y29uc3Qga3U9QW5ub3RhdGlvbjtjbGFzcyBDb21tZW50IGV4dGVuZHMgU3UuT217Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9ImNvbW1lbnQifX1jb25zdCBPdT1Db21tZW50O2NsYXNzIFBhcnNlUmVzdWx0IGV4dGVuZHMgU3Uud0V7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9InBhcnNlUmVzdWx0In1nZXQgYXBpKCl7cmV0dXJuIHRoaXMuY2hpbGRyZW4uZmlsdGVyKChzPT5zLmNsYXNzZXMuY29udGFpbnMoImFwaSIpKSkuZmlyc3R9Z2V0IHJlc3VsdHMoKXtyZXR1cm4gdGhpcy5jaGlsZHJlbi5maWx0ZXIoKHM9PnMuY2xhc3Nlcy5jb250YWlucygicmVzdWx0IikpKX1nZXQgcmVzdWx0KCl7cmV0dXJuIHRoaXMucmVzdWx0cy5maXJzdH1nZXQgYW5ub3RhdGlvbnMoKXtyZXR1cm4gdGhpcy5jaGlsZHJlbi5maWx0ZXIoKHM9PiJhbm5vdGF0aW9uIj09PXMuZWxlbWVudCkpfWdldCB3YXJuaW5ncygpe3JldHVybiB0aGlzLmNoaWxkcmVuLmZpbHRlcigocz0+ImFubm90YXRpb24iPT09cy5lbGVtZW50JiZzLmNsYXNzZXMuY29udGFpbnMoIndhcm5pbmciKSkpfWdldCBlcnJvcnMoKXtyZXR1cm4gdGhpcy5jaGlsZHJlbi5maWx0ZXIoKHM9PiJhbm5vdGF0aW9uIj09PXMuZWxlbWVudCYmcy5jbGFzc2VzLmNvbnRhaW5zKCJlcnJvciIpKSl9Z2V0IGlzRW1wdHkoKXtyZXR1cm4gdGhpcy5jaGlsZHJlbi5yZWplY3QoKHM9PiJhbm5vdGF0aW9uIj09PXMuZWxlbWVudCkpLmlzRW1wdHl9cmVwbGFjZVJlc3VsdChzKXtjb25zdHtyZXN1bHQ6b309dGhpcztpZihiYyhvKSlyZXR1cm4hMTtjb25zdCBpPXRoaXMuY29udGVudC5maW5kSW5kZXgoKHM9PnM9PT1vKSk7cmV0dXJuLTEhPT1pJiYodGhpcy5jb250ZW50W2ldPXMsITApfX1jb25zdCBDdT1QYXJzZVJlc3VsdDtjbGFzcyBTb3VyY2VNYXAgZXh0ZW5kcyBTdS53RXtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0ic291cmNlTWFwIn1nZXQgcG9zaXRpb25TdGFydCgpe3JldHVybiB0aGlzLmNoaWxkcmVuLmZpbHRlcigocz0+cy5jbGFzc2VzLmNvbnRhaW5zKCJwb3NpdGlvbiIpKSkuZ2V0KDApfWdldCBwb3NpdGlvbkVuZCgpe3JldHVybiB0aGlzLmNoaWxkcmVuLmZpbHRlcigocz0+cy5jbGFzc2VzLmNvbnRhaW5zKCJwb3NpdGlvbiIpKSkuZ2V0KDEpfXNldCBwb3NpdGlvbihzKXtpZih2b2lkIDA9PT1zKXJldHVybjtjb25zdCBvPW5ldyBTdS53RShbcy5zdGFydC5yb3cscy5zdGFydC5jb2x1bW4scy5zdGFydC5jaGFyXSksaT1uZXcgU3Uud0UoW3MuZW5kLnJvdyxzLmVuZC5jb2x1bW4scy5lbmQuY2hhcl0pO28uY2xhc3Nlcy5wdXNoKCJwb3NpdGlvbiIpLGkuY2xhc3Nlcy5wdXNoKCJwb3NpdGlvbiIpLHRoaXMucHVzaChvKS5wdXNoKGkpfX1jb25zdCBBdT1Tb3VyY2VNYXAsaGFzTWV0aG9kPShzLG8pPT4ib2JqZWN0Ij09dHlwZW9mIG8mJm51bGwhPT1vJiZzIGluIG8mJiJmdW5jdGlvbiI9PXR5cGVvZiBvW3NdLGhhc0Jhc2ljRWxlbWVudFByb3BzPXM9PiJvYmplY3QiPT10eXBlb2YgcyYmbnVsbCE9cyYmIl9zdG9yZWRFbGVtZW50ImluIHMmJiJzdHJpbmciPT10eXBlb2Ygcy5fc3RvcmVkRWxlbWVudCYmIl9jb250ZW50ImluIHMscHJpbWl0aXZlRXE9KHMsbyk9PiJvYmplY3QiPT10eXBlb2YgbyYmbnVsbCE9PW8mJiJwcmltaXRpdmUiaW4gbyYmKCJmdW5jdGlvbiI9PXR5cGVvZiBvLnByaW1pdGl2ZSYmby5wcmltaXRpdmUoKT09PXMpLGhhc0NsYXNzPShzLG8pPT4ib2JqZWN0Ij09dHlwZW9mIG8mJm51bGwhPT1vJiYiY2xhc3NlcyJpbiBvJiYoQXJyYXkuaXNBcnJheShvLmNsYXNzZXMpfHxvLmNsYXNzZXMgaW5zdGFuY2VvZiBTdS53RSkmJm8uY2xhc3Nlcy5pbmNsdWRlcyhzKSxpc0VsZW1lbnRUeXBlPShzLG8pPT4ib2JqZWN0Ij09dHlwZW9mIG8mJm51bGwhPT1vJiYiZWxlbWVudCJpbiBvJiZvLmVsZW1lbnQ9PT1zLGhlbHBlcnM9cz0+cyh7aGFzTWV0aG9kLGhhc0Jhc2ljRWxlbWVudFByb3BzLHByaW1pdGl2ZUVxLGlzRWxlbWVudFR5cGUsaGFzQ2xhc3N9KSxqdT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMscHJpbWl0aXZlRXE6b30pPT5pPT5pIGluc3RhbmNlb2YgU3UuSGd8fHMoaSkmJm8odm9pZCAwLGkpKSksUHU9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLHByaW1pdGl2ZUVxOm99KT0+aT0+aSBpbnN0YW5jZW9mIFN1Lk9tfHxzKGkpJiZvKCJzdHJpbmciLGkpKSksSXU9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLHByaW1pdGl2ZUVxOm99KT0+aT0+aSBpbnN0YW5jZW9mIFN1LmtUfHxzKGkpJiZvKCJudW1iZXIiLGkpKSksVHU9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLHByaW1pdGl2ZUVxOm99KT0+aT0+aSBpbnN0YW5jZW9mIFN1Lk9zfHxzKGkpJiZvKCJudWxsIixpKSkpLE51PWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxwcmltaXRpdmVFcTpvfSk9Pmk9PmkgaW5zdGFuY2VvZiBTdS5iZHx8cyhpKSYmbygiYm9vbGVhbiIsaSkpKSxNdT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMscHJpbWl0aXZlRXE6byxoYXNNZXRob2Q6aX0pPT5hPT5hIGluc3RhbmNlb2YgU3UuU2h8fHMoYSkmJm8oIm9iamVjdCIsYSkmJmkoImtleXMiLGEpJiZpKCJ2YWx1ZXMiLGEpJiZpKCJpdGVtcyIsYSkpKSxSdT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMscHJpbWl0aXZlRXE6byxoYXNNZXRob2Q6aX0pPT5hPT5hIGluc3RhbmNlb2YgU3Uud0UmJiEoYSBpbnN0YW5jZW9mIFN1LlNoKXx8cyhhKSYmbygiYXJyYXkiLGEpJiZpKCJwdXNoIixhKSYmaSgidW5zaGlmdCIsYSkmJmkoIm1hcCIsYSkmJmkoInJlZHVjZSIsYSkpKSxEdT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIFN1LlByfHxzKGEpJiZvKCJtZW1iZXIiLGEpJiZpKHZvaWQgMCxhKSkpLEx1PWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgU3UuRnR8fHMoYSkmJm8oImxpbmsiLGEpJiZpKHZvaWQgMCxhKSkpLEZ1PWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgU3Uuc0l8fHMoYSkmJm8oInJlZiIsYSkmJmkodm9pZCAwLGEpKSksQnU9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBrdXx8cyhhKSYmbygiYW5ub3RhdGlvbiIsYSkmJmkoImFycmF5IixhKSkpLCR1PWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgT3V8fHMoYSkmJm8oImNvbW1lbnQiLGEpJiZpKCJzdHJpbmciLGEpKSkscXU9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBDdXx8cyhhKSYmbygicGFyc2VSZXN1bHQiLGEpJiZpKCJhcnJheSIsYSkpKSxWdT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIEF1fHxzKGEpJiZvKCJzb3VyY2VNYXAiLGEpJiZpKCJhcnJheSIsYSkpKSxpc1ByaW1pdGl2ZUVsZW1lbnQ9cz0+aXNFbGVtZW50VHlwZSgib2JqZWN0IixzKXx8aXNFbGVtZW50VHlwZSgiYXJyYXkiLHMpfHxpc0VsZW1lbnRUeXBlKCJib29sZWFuIixzKXx8aXNFbGVtZW50VHlwZSgibnVtYmVyIixzKXx8aXNFbGVtZW50VHlwZSgic3RyaW5nIixzKXx8aXNFbGVtZW50VHlwZSgibnVsbCIscyl8fGlzRWxlbWVudFR5cGUoIm1lbWJlciIscyksaGFzRWxlbWVudFNvdXJjZU1hcD1zPT5WdShzLm1ldGEuZ2V0KCJzb3VyY2VNYXAiKSksaW5jbHVkZXNTeW1ib2xzPShzLG8pPT57aWYoMD09PXMubGVuZ3RoKXJldHVybiEwO2NvbnN0IGk9by5hdHRyaWJ1dGVzLmdldCgic3ltYm9scyIpO3JldHVybiEhUnUoaSkmJnh1KHNjKGkudG9WYWx1ZSgpKSxzKX0saW5jbHVkZXNDbGFzc2VzPShzLG8pPT4wPT09cy5sZW5ndGh8fHh1KHNjKG8uY2xhc3Nlcy50b1ZhbHVlKCkpLHMpO2NvbnN0IGVzX1Q9ZnVuY3Rpb24oKXtyZXR1cm4hMH07Y29uc3QgZXNfRj1mdW5jdGlvbigpe3JldHVybiExfSxnZXRWaXNpdEZuPShzLG8saSk9Pntjb25zdCBhPXNbb107aWYobnVsbCE9YSl7aWYoIWkmJiJmdW5jdGlvbiI9PXR5cGVvZiBhKXJldHVybiBhO2NvbnN0IHM9aT9hLmxlYXZlOmEuZW50ZXI7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHMpcmV0dXJuIHN9ZWxzZXtjb25zdCBhPWk/cy5sZWF2ZTpzLmVudGVyO2lmKG51bGwhPWEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhKXJldHVybiBhO2NvbnN0IHM9YVtvXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgcylyZXR1cm4gc319cmV0dXJuIG51bGx9LFV1PXt9LGdldE5vZGVUeXBlPXM9Pm51bGw9PXM/dm9pZCAwOnMudHlwZSxpc05vZGU9cz0+InN0cmluZyI9PXR5cGVvZiBnZXROb2RlVHlwZShzKSxjbG9uZU5vZGU9cz0+T2JqZWN0LmNyZWF0ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YocyksT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMocykpLG1lcmdlQWxsPShzLHt2aXNpdEZuR2V0dGVyOm89Z2V0VmlzaXRGbixub2RlVHlwZUdldHRlcjppPWdldE5vZGVUeXBlLGJyZWFrU3ltYm9sOmE9VXUsZGVsZXRlTm9kZVN5bWJvbDp1PW51bGwsc2tpcFZpc2l0aW5nTm9kZVN5bWJvbDpfPSExLGV4cG9zZUVkaXRzOnc9ITF9PXt9KT0+e2NvbnN0IHg9U3ltYm9sKCJza2lwIiksQz1uZXcgQXJyYXkocy5sZW5ndGgpLmZpbGwoeCk7cmV0dXJue2VudGVyKGosTCxCLCQsVixVKXtsZXQgej1qLFk9ITE7Y29uc3QgWj17Li4uVSxyZXBsYWNlV2l0aChzLG8pe1UucmVwbGFjZVdpdGgocyxvKSx6PXN9fTtmb3IobGV0IGo9MDtqPHMubGVuZ3RoO2orPTEpaWYoQ1tqXT09PXgpe2NvbnN0IHg9byhzW2pdLGkoeiksITEpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB4KXtjb25zdCBvPXguY2FsbChzW2pdLHosTCxCLCQsVixaKTtpZigiZnVuY3Rpb24iPT10eXBlb2YobnVsbD09bz92b2lkIDA6by50aGVuKSl0aHJvdyBuZXcgR28oIkFzeW5jIHZpc2l0b3Igbm90IHN1cHBvcnRlZCBpbiBzeW5jIG1vZGUiLHt2aXNpdG9yOnNbal0sdmlzaXRGbjp4fSk7aWYobz09PV8pQ1tqXT16O2Vsc2UgaWYobz09PWEpQ1tqXT1hO2Vsc2V7aWYobz09PXUpcmV0dXJuIG87aWYodm9pZCAwIT09byl7aWYoIXcpcmV0dXJuIG87ej1vLFk9ITB9fX19cmV0dXJuIFk/ejp2b2lkIDB9LGxlYXZlKHUsdyxqLEwsQiwkKXtsZXQgVj11O2NvbnN0IFU9ey4uLiQscmVwbGFjZVdpdGgocyxvKXskLnJlcGxhY2VXaXRoKHMsbyksVj1zfX07Zm9yKGxldCB1PTA7dTxzLmxlbmd0aDt1Kz0xKWlmKENbdV09PT14KXtjb25zdCB4PW8oc1t1XSxpKFYpLCEwKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgeCl7Y29uc3Qgbz14LmNhbGwoc1t1XSxWLHcsaixMLEIsVSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mKG51bGw9PW8/dm9pZCAwOm8udGhlbikpdGhyb3cgbmV3IEdvKCJBc3luYyB2aXNpdG9yIG5vdCBzdXBwb3J0ZWQgaW4gc3luYyBtb2RlIix7dmlzaXRvcjpzW3VdLHZpc2l0Rm46eH0pO2lmKG89PT1hKUNbdV09YTtlbHNlIGlmKHZvaWQgMCE9PW8mJm8hPT1fKXJldHVybiBvfX1lbHNlIENbdV09PT1WJiYoQ1t1XT14KX19fTttZXJnZUFsbFtTeW1ib2wuZm9yKCJub2RlanMudXRpbC5wcm9taXNpZnkuY3VzdG9tIildPShzLHt2aXNpdEZuR2V0dGVyOm89Z2V0VmlzaXRGbixub2RlVHlwZUdldHRlcjppPWdldE5vZGVUeXBlLGJyZWFrU3ltYm9sOmE9VXUsZGVsZXRlTm9kZVN5bWJvbDp1PW51bGwsc2tpcFZpc2l0aW5nTm9kZVN5bWJvbDpfPSExLGV4cG9zZUVkaXRzOnc9ITF9PXt9KT0+e2NvbnN0IHg9U3ltYm9sKCJza2lwIiksQz1uZXcgQXJyYXkocy5sZW5ndGgpLmZpbGwoeCk7cmV0dXJue2FzeW5jIGVudGVyKGosTCxCLCQsVixVKXtsZXQgej1qLFk9ITE7Y29uc3QgWj17Li4uVSxyZXBsYWNlV2l0aChzLG8pe1UucmVwbGFjZVdpdGgocyxvKSx6PXN9fTtmb3IobGV0IGo9MDtqPHMubGVuZ3RoO2orPTEpaWYoQ1tqXT09PXgpe2NvbnN0IHg9byhzW2pdLGkoeiksITEpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB4KXtjb25zdCBvPWF3YWl0IHguY2FsbChzW2pdLHosTCxCLCQsVixaKTtpZihvPT09XylDW2pdPXo7ZWxzZSBpZihvPT09YSlDW2pdPWE7ZWxzZXtpZihvPT09dSlyZXR1cm4gbztpZih2b2lkIDAhPT1vKXtpZighdylyZXR1cm4gbzt6PW8sWT0hMH19fX1yZXR1cm4gWT96OnZvaWQgMH0sYXN5bmMgbGVhdmUodSx3LGosTCxCLCQpe2xldCBWPXU7Y29uc3QgVT17Li4uJCxyZXBsYWNlV2l0aChzLG8peyQucmVwbGFjZVdpdGgocyxvKSxWPXN9fTtmb3IobGV0IHU9MDt1PHMubGVuZ3RoO3UrPTEpaWYoQ1t1XT09PXgpe2NvbnN0IHg9byhzW3VdLGkoViksITApO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB4KXtjb25zdCBvPWF3YWl0IHguY2FsbChzW3VdLFYsdyxqLEwsQixVKTtpZihvPT09YSlDW3VdPWE7ZWxzZSBpZih2b2lkIDAhPT1vJiZvIT09XylyZXR1cm4gb319ZWxzZSBDW3VdPT09ViYmKENbdV09eCl9fX07Y29uc3QgdmlzaXQ9KHMsbyx7a2V5TWFwOmk9bnVsbCxzdGF0ZTphPXt9LGJyZWFrU3ltYm9sOnU9VXUsZGVsZXRlTm9kZVN5bWJvbDpfPW51bGwsc2tpcFZpc2l0aW5nTm9kZVN5bWJvbDp3PSExLHZpc2l0Rm5HZXR0ZXI6eD1nZXRWaXNpdEZuLG5vZGVUeXBlR2V0dGVyOkM9Z2V0Tm9kZVR5cGUsbm9kZVByZWRpY2F0ZTpqPWlzTm9kZSxub2RlQ2xvbmVGbjpMPWNsb25lTm9kZSxkZXRlY3RDeWNsZXM6Qj0hMH09e30pPT57Y29uc3QgJD1pfHx7fTtsZXQgVixVLHo9QXJyYXkuaXNBcnJheShzKSxZPVtzXSxaPS0xLGVlPVtdLGllPXM7Y29uc3QgYWU9W10sY2U9W107ZG97Wis9MTtjb25zdCBzPVo9PT1ZLmxlbmd0aDtsZXQgaTtjb25zdCBkZT1zJiYwIT09ZWUubGVuZ3RoO2lmKHMpe2lmKGk9MD09PWNlLmxlbmd0aD92b2lkIDA6YWUucG9wKCksaWU9VSxVPWNlLnBvcCgpLGRlKWlmKHope2llPWllLnNsaWNlKCk7bGV0IHM9MDtmb3IoY29uc3RbbyxpXW9mIGVlKXtjb25zdCBhPW8tcztpPT09Xz8oaWUuc3BsaWNlKGEsMSkscys9MSk6aWVbYV09aX19ZWxzZXtpZT1MKGllKTtmb3IoY29uc3RbcyxvXW9mIGVlKWllW3NdPW99Wj1WLmluZGV4LFk9Vi5rZXlzLGVlPVYuZWRpdHMsej1WLmluQXJyYXksVj1WLnByZXZ9ZWxzZSBpZihVIT09XyYmdm9pZCAwIT09VSl7aWYoaT16P1o6WVtaXSxpZT1VW2ldLGllPT09X3x8dm9pZCAwPT09aWUpY29udGludWU7YWUucHVzaChpKX1sZXQgZmU7aWYoIUFycmF5LmlzQXJyYXkoaWUpKXt2YXIgbGU7aWYoIWooaWUpKXRocm93IG5ldyBHbyhgSW52YWxpZCBBU1QgTm9kZTogICR7U3RyaW5nKGllKX1gLHtub2RlOmllfSk7aWYoQiYmY2UuaW5jbHVkZXMoaWUpKXthZS5wb3AoKTtjb250aW51ZX1jb25zdCBfPXgobyxDKGllKSxzKTtpZihfKXtmb3IoY29uc3RbcyxpXW9mIE9iamVjdC5lbnRyaWVzKGEpKW9bc109aTtjb25zdCB1PXtyZXBsYWNlV2l0aChvLGEpeyJmdW5jdGlvbiI9PXR5cGVvZiBhP2EobyxpZSxpLFUsYWUsY2UpOlUmJihVW2ldPW8pLHN8fChpZT1vKX19O2ZlPV8uY2FsbChvLGllLGksVSxhZSxjZSx1KX1pZigiZnVuY3Rpb24iPT10eXBlb2YobnVsbD09PShsZT1mZSl8fHZvaWQgMD09PWxlP3ZvaWQgMDpsZS50aGVuKSl0aHJvdyBuZXcgR28oIkFzeW5jIHZpc2l0b3Igbm90IHN1cHBvcnRlZCBpbiBzeW5jIG1vZGUiLHt2aXNpdG9yOm8sdmlzaXRGbjpffSk7aWYoZmU9PT11KWJyZWFrO2lmKGZlPT09dyl7aWYoIXMpe2FlLnBvcCgpO2NvbnRpbnVlfX1lbHNlIGlmKHZvaWQgMCE9PWZlJiYoZWUucHVzaChbaSxmZV0pLCFzKSl7aWYoIWooZmUpKXthZS5wb3AoKTtjb250aW51ZX1pZT1mZX19dmFyIHBlO2lmKHZvaWQgMD09PWZlJiZkZSYmZWUucHVzaChbaSxpZV0pLCFzKVY9e2luQXJyYXk6eixpbmRleDpaLGtleXM6WSxlZGl0czplZSxwcmV2OlZ9LHo9QXJyYXkuaXNBcnJheShpZSksWT16P2llOm51bGwhPT0ocGU9JFtDKGllKV0pJiZ2b2lkIDAhPT1wZT9wZTpbXSxaPS0xLGVlPVtdLFUhPT1fJiZ2b2lkIDAhPT1VJiZjZS5wdXNoKFUpLFU9aWV9d2hpbGUodm9pZCAwIT09Vik7cmV0dXJuIDAhPT1lZS5sZW5ndGg/ZWVbZWUubGVuZ3RoLTFdWzFdOnN9O3Zpc2l0W1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLnByb21pc2lmeS5jdXN0b20iKV09YXN5bmMocyxvLHtrZXlNYXA6aT1udWxsLHN0YXRlOmE9e30sYnJlYWtTeW1ib2w6dT1VdSxkZWxldGVOb2RlU3ltYm9sOl89bnVsbCxza2lwVmlzaXRpbmdOb2RlU3ltYm9sOnc9ITEsdmlzaXRGbkdldHRlcjp4PWdldFZpc2l0Rm4sbm9kZVR5cGVHZXR0ZXI6Qz1nZXROb2RlVHlwZSxub2RlUHJlZGljYXRlOmo9aXNOb2RlLG5vZGVDbG9uZUZuOkw9Y2xvbmVOb2RlLGRldGVjdEN5Y2xlczpCPSEwfT17fSk9Pntjb25zdCAkPWl8fHt9O2xldCBWLFUsej1BcnJheS5pc0FycmF5KHMpLFk9W3NdLFo9LTEsZWU9W10saWU9cztjb25zdCBhZT1bXSxjZT1bXTtkb3taKz0xO2NvbnN0IHM9Wj09PVkubGVuZ3RoO2xldCBpO2NvbnN0IHBlPXMmJjAhPT1lZS5sZW5ndGg7aWYocyl7aWYoaT0wPT09Y2UubGVuZ3RoP3ZvaWQgMDphZS5wb3AoKSxpZT1VLFU9Y2UucG9wKCkscGUpaWYoeil7aWU9aWUuc2xpY2UoKTtsZXQgcz0wO2Zvcihjb25zdFtvLGldb2YgZWUpe2NvbnN0IGE9by1zO2k9PT1fPyhpZS5zcGxpY2UoYSwxKSxzKz0xKTppZVthXT1pfX1lbHNle2llPUwoaWUpO2Zvcihjb25zdFtzLG9db2YgZWUpaWVbc109b31aPVYuaW5kZXgsWT1WLmtleXMsZWU9Vi5lZGl0cyx6PVYuaW5BcnJheSxWPVYucHJldn1lbHNlIGlmKFUhPT1fJiZ2b2lkIDAhPT1VKXtpZihpPXo/WjpZW1pdLGllPVVbaV0saWU9PT1ffHx2b2lkIDA9PT1pZSljb250aW51ZTthZS5wdXNoKGkpfWxldCBkZTtpZighQXJyYXkuaXNBcnJheShpZSkpe2lmKCFqKGllKSl0aHJvdyBuZXcgR28oYEludmFsaWQgQVNUIE5vZGU6ICR7U3RyaW5nKGllKX1gLHtub2RlOmllfSk7aWYoQiYmY2UuaW5jbHVkZXMoaWUpKXthZS5wb3AoKTtjb250aW51ZX1jb25zdCBfPXgobyxDKGllKSxzKTtpZihfKXtmb3IoY29uc3RbcyxpXW9mIE9iamVjdC5lbnRyaWVzKGEpKW9bc109aTtjb25zdCB1PXtyZXBsYWNlV2l0aChvLGEpeyJmdW5jdGlvbiI9PXR5cGVvZiBhP2EobyxpZSxpLFUsYWUsY2UpOlUmJihVW2ldPW8pLHN8fChpZT1vKX19O2RlPWF3YWl0IF8uY2FsbChvLGllLGksVSxhZSxjZSx1KX1pZihkZT09PXUpYnJlYWs7aWYoZGU9PT13KXtpZighcyl7YWUucG9wKCk7Y29udGludWV9fWVsc2UgaWYodm9pZCAwIT09ZGUmJihlZS5wdXNoKFtpLGRlXSksIXMpKXtpZighaihkZSkpe2FlLnBvcCgpO2NvbnRpbnVlfWllPWRlfX12YXIgbGU7aWYodm9pZCAwPT09ZGUmJnBlJiZlZS5wdXNoKFtpLGllXSksIXMpVj17aW5BcnJheTp6LGluZGV4Olosa2V5czpZLGVkaXRzOmVlLHByZXY6Vn0sej1BcnJheS5pc0FycmF5KGllKSxZPXo/aWU6bnVsbCE9PShsZT0kW0MoaWUpXSkmJnZvaWQgMCE9PWxlP2xlOltdLFo9LTEsZWU9W10sVSE9PV8mJnZvaWQgMCE9PVUmJmNlLnB1c2goVSksVT1pZX13aGlsZSh2b2lkIDAhPT1WKTtyZXR1cm4gMCE9PWVlLmxlbmd0aD9lZVtlZS5sZW5ndGgtMV1bMV06c307Y29uc3QgenU9Y2xhc3MgQ2xvbmVFcnJvciBleHRlbmRzIEdve3ZhbHVlO2NvbnN0cnVjdG9yKHMsbyl7c3VwZXIocyxvKSx2b2lkIDAhPT1vJiYodGhpcy52YWx1ZT1vLnZhbHVlKX19O2NvbnN0IFd1PWNsYXNzIERlZXBDbG9uZUVycm9yIGV4dGVuZHMgenV7fTtjb25zdCBKdT1jbGFzcyBTaGFsbG93Q2xvbmVFcnJvciBleHRlbmRzIHp1e30sY2xvbmVEZWVwPShzLG89e30pPT57Y29uc3R7dmlzaXRlZDppPW5ldyBXZWFrTWFwfT1vLGE9ey4uLm8sdmlzaXRlZDppfTtpZihpLmhhcyhzKSlyZXR1cm4gaS5nZXQocyk7aWYocyBpbnN0YW5jZW9mIFN1LktleVZhbHVlUGFpcil7Y29uc3R7a2V5Om8sdmFsdWU6dX09cyxfPWp1KG8pP2Nsb25lRGVlcChvLGEpOm8sdz1qdSh1KT9jbG9uZURlZXAodSxhKTp1LHg9bmV3IFN1LktleVZhbHVlUGFpcihfLHcpO3JldHVybiBpLnNldChzLHgpLHh9aWYocyBpbnN0YW5jZW9mIFN1Lm90KXtjb25zdCBtYXBwZXI9cz0+Y2xvbmVEZWVwKHMsYSksbz1bLi4uc10ubWFwKG1hcHBlciksdT1uZXcgU3Uub3Qobyk7cmV0dXJuIGkuc2V0KHMsdSksdX1pZihzIGluc3RhbmNlb2YgU3UuRzYpe2NvbnN0IG1hcHBlcj1zPT5jbG9uZURlZXAocyxhKSxvPVsuLi5zXS5tYXAobWFwcGVyKSx1PW5ldyBTdS5HNihvKTtyZXR1cm4gaS5zZXQocyx1KSx1fWlmKGp1KHMpKXtjb25zdCBvPWNsb25lU2hhbGxvdyhzKTtpZihpLnNldChzLG8pLHMuY29udGVudClpZihqdShzLmNvbnRlbnQpKW8uY29udGVudD1jbG9uZURlZXAocy5jb250ZW50LGEpO2Vsc2UgaWYocy5jb250ZW50IGluc3RhbmNlb2YgU3UuS2V5VmFsdWVQYWlyKW8uY29udGVudD1jbG9uZURlZXAocy5jb250ZW50LGEpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShzLmNvbnRlbnQpKXtjb25zdCBtYXBwZXI9cz0+Y2xvbmVEZWVwKHMsYSk7by5jb250ZW50PXMuY29udGVudC5tYXAobWFwcGVyKX1lbHNlIG8uY29udGVudD1zLmNvbnRlbnQ7ZWxzZSBvLmNvbnRlbnQ9cy5jb250ZW50O3JldHVybiBvfXRocm93IG5ldyBXdSgiVmFsdWUgcHJvdmlkZWQgdG8gY2xvbmVEZWVwIGZ1bmN0aW9uIGNvdWxkbid0IGJlIGNsb25lZCIse3ZhbHVlOnN9KX07Y2xvbmVEZWVwLnNhZmU9cz0+e3RyeXtyZXR1cm4gY2xvbmVEZWVwKHMpfWNhdGNoe3JldHVybiBzfX07Y29uc3QgY2xvbmVTaGFsbG93S2V5VmFsdWVQYWlyPXM9Pntjb25zdHtrZXk6byx2YWx1ZTppfT1zO3JldHVybiBuZXcgU3UuS2V5VmFsdWVQYWlyKG8saSl9LGNsb25lU2hhbGxvd0VsZW1lbnQ9cz0+e2NvbnN0IG89bmV3IHMuY29uc3RydWN0b3I7aWYoby5lbGVtZW50PXMuZWxlbWVudCxzLm1ldGEubGVuZ3RoPjAmJihvLl9tZXRhPWNsb25lRGVlcChzLm1ldGEpKSxzLmF0dHJpYnV0ZXMubGVuZ3RoPjAmJihvLl9hdHRyaWJ1dGVzPWNsb25lRGVlcChzLmF0dHJpYnV0ZXMpKSxqdShzLmNvbnRlbnQpKXtjb25zdCBpPXMuY29udGVudDtvLmNvbnRlbnQ9Y2xvbmVTaGFsbG93RWxlbWVudChpKX1lbHNlIEFycmF5LmlzQXJyYXkocy5jb250ZW50KT9vLmNvbnRlbnQ9Wy4uLnMuY29udGVudF06cy5jb250ZW50IGluc3RhbmNlb2YgU3UuS2V5VmFsdWVQYWlyP28uY29udGVudD1jbG9uZVNoYWxsb3dLZXlWYWx1ZVBhaXIocy5jb250ZW50KTpvLmNvbnRlbnQ9cy5jb250ZW50O3JldHVybiBvfSxjbG9uZVNoYWxsb3c9cz0+e2lmKHMgaW5zdGFuY2VvZiBTdS5LZXlWYWx1ZVBhaXIpcmV0dXJuIGNsb25lU2hhbGxvd0tleVZhbHVlUGFpcihzKTtpZihzIGluc3RhbmNlb2YgU3Uub3QpcmV0dXJuKHM9Pntjb25zdCBvPVsuLi5zXTtyZXR1cm4gbmV3IFN1Lm90KG8pfSkocyk7aWYocyBpbnN0YW5jZW9mIFN1Lkc2KXJldHVybihzPT57Y29uc3Qgbz1bLi4uc107cmV0dXJuIG5ldyBTdS5HNihvKX0pKHMpO2lmKGp1KHMpKXJldHVybiBjbG9uZVNoYWxsb3dFbGVtZW50KHMpO3Rocm93IG5ldyBKdSgiVmFsdWUgcHJvdmlkZWQgdG8gY2xvbmVTaGFsbG93IGZ1bmN0aW9uIGNvdWxkbid0IGJlIGNsb25lZCIse3ZhbHVlOnN9KX07Y2xvbmVTaGFsbG93LnNhZmU9cz0+e3RyeXtyZXR1cm4gY2xvbmVTaGFsbG93KHMpfWNhdGNoe3JldHVybiBzfX07Y29uc3QgdmlzaXRvcl9nZXROb2RlVHlwZT1zPT5NdShzKT8iT2JqZWN0RWxlbWVudCI6UnUocyk/IkFycmF5RWxlbWVudCI6RHUocyk/Ik1lbWJlckVsZW1lbnQiOlB1KHMpPyJTdHJpbmdFbGVtZW50IjpOdShzKT8iQm9vbGVhbkVsZW1lbnQiOkl1KHMpPyJOdW1iZXJFbGVtZW50IjpUdShzKT8iTnVsbEVsZW1lbnQiOkx1KHMpPyJMaW5rRWxlbWVudCI6RnUocyk/IlJlZkVsZW1lbnQiOnZvaWQgMCx2aXNpdG9yX2Nsb25lTm9kZT1zPT5qdShzKT9jbG9uZVNoYWxsb3cocyk6Y2xvbmVOb2RlKHMpLEh1PXBpcGUodmlzaXRvcl9nZXROb2RlVHlwZSxKYyksS3U9e09iamVjdEVsZW1lbnQ6WyJjb250ZW50Il0sQXJyYXlFbGVtZW50OlsiY29udGVudCJdLE1lbWJlckVsZW1lbnQ6WyJrZXkiLCJ2YWx1ZSJdLFN0cmluZ0VsZW1lbnQ6W10sQm9vbGVhbkVsZW1lbnQ6W10sTnVtYmVyRWxlbWVudDpbXSxOdWxsRWxlbWVudDpbXSxSZWZFbGVtZW50OltdLExpbmtFbGVtZW50OltdLEFubm90YXRpb246W10sQ29tbWVudDpbXSxQYXJzZVJlc3VsdEVsZW1lbnQ6WyJjb250ZW50Il0sU291cmNlTWFwOlsiY29udGVudCJdfTtjbGFzcyBQcmVkaWNhdGVWaXNpdG9ye3Jlc3VsdDtwcmVkaWNhdGU7cmV0dXJuT25UcnVlO3JldHVybk9uRmFsc2U7Y29uc3RydWN0b3Ioe3ByZWRpY2F0ZTpzPWVzX0YscmV0dXJuT25UcnVlOm8scmV0dXJuT25GYWxzZTppfT17fSl7dGhpcy5yZXN1bHQ9W10sdGhpcy5wcmVkaWNhdGU9cyx0aGlzLnJldHVybk9uVHJ1ZT1vLHRoaXMucmV0dXJuT25GYWxzZT1pfWVudGVyKHMpe3JldHVybiB0aGlzLnByZWRpY2F0ZShzKT8odGhpcy5yZXN1bHQucHVzaChzKSx0aGlzLnJldHVybk9uVHJ1ZSk6dGhpcy5yZXR1cm5PbkZhbHNlfX1jb25zdCB2aXNpdG9yX3Zpc2l0PShzLG8se2tleU1hcDppPUt1LC4uLmF9PXt9KT0+dmlzaXQocyxvLHtrZXlNYXA6aSxub2RlVHlwZUdldHRlcjp2aXNpdG9yX2dldE5vZGVUeXBlLG5vZGVQcmVkaWNhdGU6SHUsbm9kZUNsb25lRm46dmlzaXRvcl9jbG9uZU5vZGUsLi4uYX0pO3Zpc2l0b3JfdmlzaXRbU3ltYm9sLmZvcigibm9kZWpzLnV0aWwucHJvbWlzaWZ5LmN1c3RvbSIpXT1hc3luYyhzLG8se2tleU1hcDppPUt1LC4uLmF9PXt9KT0+dmlzaXRbU3ltYm9sLmZvcigibm9kZWpzLnV0aWwucHJvbWlzaWZ5LmN1c3RvbSIpXShzLG8se2tleU1hcDppLG5vZGVUeXBlR2V0dGVyOnZpc2l0b3JfZ2V0Tm9kZVR5cGUsbm9kZVByZWRpY2F0ZTpIdSxub2RlQ2xvbmVGbjp2aXNpdG9yX2Nsb25lTm9kZSwuLi5hfSk7Y29uc3Qgbm9kZVR5cGVHZXR0ZXI9cz0+InN0cmluZyI9PXR5cGVvZihudWxsPT1zP3ZvaWQgMDpzLnR5cGUpP3MudHlwZTp2aXNpdG9yX2dldE5vZGVUeXBlKHMpLEd1PXtFcGhlbWVyYWxPYmplY3Q6WyJjb250ZW50Il0sRXBoZW1lcmFsQXJyYXk6WyJjb250ZW50Il0sLi4uS3V9LHZhbHVlX3Zpc2l0b3JfdmlzaXQ9KHMsbyx7a2V5TWFwOmk9R3UsLi4uYX09e30pPT52aXNpdG9yX3Zpc2l0KHMsbyx7a2V5TWFwOmksbm9kZVR5cGVHZXR0ZXIsbm9kZVByZWRpY2F0ZTplc19ULGRldGVjdEN5Y2xlczohMSxkZWxldGVOb2RlU3ltYm9sOlN5bWJvbC5mb3IoImRlbGV0ZS1ub2RlIiksc2tpcFZpc2l0aW5nTm9kZVN5bWJvbDpTeW1ib2wuZm9yKCJza2lwLXZpc2l0aW5nLW5vZGUiKSwuLi5hfSk7dmFsdWVfdmlzaXRvcl92aXNpdFtTeW1ib2wuZm9yKCJub2RlanMudXRpbC5wcm9taXNpZnkuY3VzdG9tIildPWFzeW5jKHMse2tleU1hcDpvPUd1LC4uLml9PXt9KT0+dmlzaXRvcl92aXNpdFtTeW1ib2wuZm9yKCJub2RlanMudXRpbC5wcm9taXNpZnkuY3VzdG9tIildKHMsdmlzaXRvcix7a2V5TWFwOm8sbm9kZVR5cGVHZXR0ZXIsbm9kZVByZWRpY2F0ZTplc19ULGRldGVjdEN5Y2xlczohMSxkZWxldGVOb2RlU3ltYm9sOlN5bWJvbC5mb3IoImRlbGV0ZS1ub2RlIiksc2tpcFZpc2l0aW5nTm9kZVN5bWJvbDpTeW1ib2wuZm9yKCJza2lwLXZpc2l0aW5nLW5vZGUiKSwuLi5pfSk7Y29uc3QgWXU9Y2xhc3MgRXBoZW1lcmFsQXJyYXl7dHlwZT0iRXBoZW1lcmFsQXJyYXkiO2NvbnRlbnQ9W107cmVmZXJlbmNlPXZvaWQgMDtjb25zdHJ1Y3RvcihzKXt0aGlzLmNvbnRlbnQ9cyx0aGlzLnJlZmVyZW5jZT1bXX10b1JlZmVyZW5jZSgpe3JldHVybiB0aGlzLnJlZmVyZW5jZX10b0FycmF5KCl7cmV0dXJuIHRoaXMucmVmZXJlbmNlLnB1c2goLi4udGhpcy5jb250ZW50KSx0aGlzLnJlZmVyZW5jZX19O2NvbnN0IFh1PWNsYXNzIEVwaGVtZXJhbE9iamVjdHt0eXBlPSJFcGhlbWVyYWxPYmplY3QiO2NvbnRlbnQ9W107cmVmZXJlbmNlPXZvaWQgMDtjb25zdHJ1Y3RvcihzKXt0aGlzLmNvbnRlbnQ9cyx0aGlzLnJlZmVyZW5jZT17fX10b1JlZmVyZW5jZSgpe3JldHVybiB0aGlzLnJlZmVyZW5jZX10b09iamVjdCgpe3JldHVybiBPYmplY3QuYXNzaWduKHRoaXMucmVmZXJlbmNlLE9iamVjdC5mcm9tRW50cmllcyh0aGlzLmNvbnRlbnQpKX19O2NsYXNzIFZpc2l0b3J7T2JqZWN0RWxlbWVudD17ZW50ZXI6cz0+e2lmKHRoaXMucmVmZXJlbmNlcy5oYXMocykpcmV0dXJuIHRoaXMucmVmZXJlbmNlcy5nZXQocykudG9SZWZlcmVuY2UoKTtjb25zdCBvPW5ldyBYdShzLmNvbnRlbnQpO3JldHVybiB0aGlzLnJlZmVyZW5jZXMuc2V0KHMsbyksb319O0VwaGVtZXJhbE9iamVjdD17bGVhdmU6cz0+cy50b09iamVjdCgpfTtNZW1iZXJFbGVtZW50PXtlbnRlcjpzPT5bcy5rZXkscy52YWx1ZV19O0FycmF5RWxlbWVudD17ZW50ZXI6cz0+e2lmKHRoaXMucmVmZXJlbmNlcy5oYXMocykpcmV0dXJuIHRoaXMucmVmZXJlbmNlcy5nZXQocykudG9SZWZlcmVuY2UoKTtjb25zdCBvPW5ldyBZdShzLmNvbnRlbnQpO3JldHVybiB0aGlzLnJlZmVyZW5jZXMuc2V0KHMsbyksb319O0VwaGVtZXJhbEFycmF5PXtsZWF2ZTpzPT5zLnRvQXJyYXkoKX07cmVmZXJlbmNlcz1uZXcgV2Vha01hcDtCb29sZWFuRWxlbWVudChzKXtyZXR1cm4gcy50b1ZhbHVlKCl9TnVtYmVyRWxlbWVudChzKXtyZXR1cm4gcy50b1ZhbHVlKCl9U3RyaW5nRWxlbWVudChzKXtyZXR1cm4gcy50b1ZhbHVlKCl9TnVsbEVsZW1lbnQoKXtyZXR1cm4gbnVsbH1SZWZFbGVtZW50KHMsLi4ubyl7dmFyIGk7Y29uc3QgYT1vWzNdO3JldHVybiJFcGhlbWVyYWxPYmplY3QiPT09KG51bGw9PT0oaT1hW2EubGVuZ3RoLTFdKXx8dm9pZCAwPT09aT92b2lkIDA6aS50eXBlKT9TeW1ib2wuZm9yKCJkZWxldGUtbm9kZSIpOlN0cmluZyhzLnRvVmFsdWUoKSl9TGlua0VsZW1lbnQocyl7cmV0dXJuIFB1KHMuaHJlZik/cy5ocmVmLnRvVmFsdWUoKToiIn19Y29uc3Qgc2VyaWFsaXplcnNfdmFsdWU9cz0+anUocyk/UHUocyl8fEl1KHMpfHxOdShzKXx8VHUocyk/cy50b1ZhbHVlKCk6dmFsdWVfdmlzaXRvcl92aXNpdChzLG5ldyBWaXNpdG9yKTpzO2NvbnN0IFF1PV9jdXJyeTMoKGZ1bmN0aW9uIG1lcmdlV2l0aEtleShzLG8saSl7dmFyIGEsdT17fTtmb3IoYSBpbiBpPWl8fHt9LG89b3x8e30pX2hhcyhhLG8pJiYodVthXT1faGFzKGEsaSk/cyhhLG9bYV0saVthXSk6b1thXSk7Zm9yKGEgaW4gaSlfaGFzKGEsaSkmJiFfaGFzKGEsdSkmJih1W2FdPWlbYV0pO3JldHVybiB1fSkpO2NvbnN0IFp1PV9jdXJyeTMoKGZ1bmN0aW9uIG1lcmdlRGVlcFdpdGhLZXkocyxvLGkpe3JldHVybiBRdSgoZnVuY3Rpb24obyxpLGEpe3JldHVybiBfaXNPYmplY3QoaSkmJl9pc09iamVjdChhKT9tZXJnZURlZXBXaXRoS2V5KHMsaSxhKTpzKG8saSxhKX0pLG8saSl9KSk7Y29uc3QgZXA9X2N1cnJ5MigoZnVuY3Rpb24gbWVyZ2VEZWVwUmlnaHQocyxvKXtyZXR1cm4gWnUoKGZ1bmN0aW9uKHMsbyxpKXtyZXR1cm4gaX0pLHMsbyl9KSk7Y29uc3QgdHA9X2N1cnJ5MihfcGF0aCk7Y29uc3QgcnA9amEoMCwtMSk7Y29uc3QgbnA9X2N1cnJ5MigoZnVuY3Rpb24gYXBwbHkocyxvKXtyZXR1cm4gcy5hcHBseSh0aGlzLG8pfSkpO2NvbnN0IHNwPWRjKE1jKTt2YXIgb3A9X2N1cnJ5MSgoZnVuY3Rpb24gZW1wdHkocyl7cmV0dXJuIG51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBzWyJmYW50YXN5LWxhbmQvZW1wdHkiXT9zWyJmYW50YXN5LWxhbmQvZW1wdHkiXSgpOm51bGwhPXMmJm51bGwhPXMuY29uc3RydWN0b3ImJiJmdW5jdGlvbiI9PXR5cGVvZiBzLmNvbnN0cnVjdG9yWyJmYW50YXN5LWxhbmQvZW1wdHkiXT9zLmNvbnN0cnVjdG9yWyJmYW50YXN5LWxhbmQvZW1wdHkiXSgpOm51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBzLmVtcHR5P3MuZW1wdHkoKTpudWxsIT1zJiZudWxsIT1zLmNvbnN0cnVjdG9yJiYiZnVuY3Rpb24iPT10eXBlb2Ygcy5jb25zdHJ1Y3Rvci5lbXB0eT9zLmNvbnN0cnVjdG9yLmVtcHR5KCk6Y2Eocyk/W106X2lzU3RyaW5nKHMpPyIiOl9pc09iamVjdChzKT97fTpFaShzKT9mdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCk6ZnVuY3Rpb24gX2lzVHlwZWRBcnJheShzKXt2YXIgbz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocyk7cmV0dXJuIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIj09PW98fCJbb2JqZWN0IEludDhBcnJheV0iPT09b3x8IltvYmplY3QgVWludDhBcnJheV0iPT09b3x8IltvYmplY3QgSW50MTZBcnJheV0iPT09b3x8IltvYmplY3QgVWludDE2QXJyYXldIj09PW98fCJbb2JqZWN0IEludDMyQXJyYXldIj09PW98fCJbb2JqZWN0IFVpbnQzMkFycmF5XSI9PT1vfHwiW29iamVjdCBGbG9hdDMyQXJyYXldIj09PW98fCJbb2JqZWN0IEZsb2F0NjRBcnJheV0iPT09b3x8IltvYmplY3QgQmlnSW50NjRBcnJheV0iPT09b3x8IltvYmplY3QgQmlnVWludDY0QXJyYXldIj09PW99KHMpP3MuY29uc3RydWN0b3IuZnJvbSgiIik6dm9pZCAwfSkpO2NvbnN0IGlwPW9wO2NvbnN0IGNwPV9jdXJyeTEoKGZ1bmN0aW9uIGlzRW1wdHkocyl7cmV0dXJuIG51bGwhPXMmJm5hKHMsaXAocykpfSkpO2NvbnN0IGxwPSRhKDEsTWMoQXJyYXkuaXNBcnJheSk/QXJyYXkuaXNBcnJheTpwaXBlKHJhLFBjKCJBcnJheSIpKSk7Y29uc3QgdXA9b3UobHAsY3ApO3ZhciBwcD0kYSgzLChmdW5jdGlvbihzLG8saSl7dmFyIGE9dHAocyxpKSx1PXRwKHJwKHMpLGkpO2lmKCFzcChhKSYmIXVwKHMpKXt2YXIgXz1FYShhLHUpO3JldHVybiBucChfLG8pfX0pKTtjb25zdCBocD1wcDtjbGFzcyBOYW1lc3BhY2UgZXh0ZW5kcyBTdS5nJHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5yZWdpc3RlcigiYW5ub3RhdGlvbiIsa3UpLHRoaXMucmVnaXN0ZXIoImNvbW1lbnQiLE91KSx0aGlzLnJlZ2lzdGVyKCJwYXJzZVJlc3VsdCIsQ3UpLHRoaXMucmVnaXN0ZXIoInNvdXJjZU1hcCIsQXUpfX1jb25zdCBkcD1uZXcgTmFtZXNwYWNlLGNyZWF0ZU5hbWVzcGFjZT1zPT57Y29uc3Qgbz1uZXcgTmFtZXNwYWNlO3JldHVybiBmdShzKSYmby51c2Uocyksb30sZnA9ZHAsdG9vbGJveD0oKT0+KHtwcmVkaWNhdGVzOnsuLi5pZX0sbmFtZXNwYWNlOmZwfSksbXA9e3Rvb2xib3hDcmVhdG9yOnRvb2xib3gsdmlzaXRvck9wdGlvbnM6e25vZGVUeXBlR2V0dGVyOnZpc2l0b3JfZ2V0Tm9kZVR5cGUsZXhwb3NlRWRpdHM6ITB9fSxkaXNwYXRjaFBsdWdpbnNTeW5jPShzLG8saT17fSk9PntpZigwPT09by5sZW5ndGgpcmV0dXJuIHM7Y29uc3QgYT1lcChtcCxpKSx7dG9vbGJveENyZWF0b3I6dSx2aXNpdG9yT3B0aW9uczpffT1hLHc9dSgpLHg9by5tYXAoKHM9PnModykpKSxDPW1lcmdlQWxsKHgubWFwKExhKHt9LCJ2aXNpdG9yIikpLHsuLi5ffSk7eC5mb3JFYWNoKGhwKFsicHJlIl0sW10pKTtjb25zdCBqPXZpc2l0b3JfdmlzaXQocyxDLF8pO3JldHVybiB4LmZvckVhY2goaHAoWyJwb3N0Il0sW10pKSxqfTtkaXNwYXRjaFBsdWdpbnNTeW5jW1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLnByb21pc2lmeS5jdXN0b20iKV09YXN5bmMocyxvLGk9e30pPT57aWYoMD09PW8ubGVuZ3RoKXJldHVybiBzO2NvbnN0IGE9ZXAobXAsaSkse3Rvb2xib3hDcmVhdG9yOnUsdmlzaXRvck9wdGlvbnM6X309YSx3PXUoKSx4PW8ubWFwKChzPT5zKHcpKSksQz1tZXJnZUFsbFtTeW1ib2wuZm9yKCJub2RlanMudXRpbC5wcm9taXNpZnkuY3VzdG9tIildLGo9dmlzaXRvcl92aXNpdFtTeW1ib2wuZm9yKCJub2RlanMudXRpbC5wcm9taXNpZnkuY3VzdG9tIildLEw9Qyh4Lm1hcChMYSh7fSwidmlzaXRvciIpKSx7Li4uX30pO2F3YWl0IFByb21pc2UuYWxsU2V0dGxlZCh4Lm1hcChocChbInByZSJdLFtdKSkpO2NvbnN0IEI9YXdhaXQgaihzLEwsXyk7cmV0dXJuIGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZCh4Lm1hcChocChbInBvc3QiXSxbXSkpKSxCfTtjb25zdCByZWZyYWN0PShzLHtUeXBlOm8scGx1Z2luczppPVtdfSk9Pntjb25zdCBhPW5ldyBvKHMpO3JldHVybiBqdShzKSYmKHMubWV0YS5sZW5ndGg+MCYmKGEubWV0YT1jbG9uZURlZXAocy5tZXRhKSkscy5hdHRyaWJ1dGVzLmxlbmd0aD4wJiYoYS5hdHRyaWJ1dGVzPWNsb25lRGVlcChzLmF0dHJpYnV0ZXMpKSksZGlzcGF0Y2hQbHVnaW5zU3luYyhhLGkse3Rvb2xib3hDcmVhdG9yOnRvb2xib3gsdmlzaXRvck9wdGlvbnM6e25vZGVUeXBlR2V0dGVyOnZpc2l0b3JfZ2V0Tm9kZVR5cGV9fSl9LGNyZWF0ZVJlZnJhY3Rvcj1zPT4obyxpPXt9KT0+cmVmcmFjdChvLHsuLi5pLFR5cGU6c30pO1N1LlNoLnJlZnJhY3Q9Y3JlYXRlUmVmcmFjdG9yKFN1LlNoKSxTdS53RS5yZWZyYWN0PWNyZWF0ZVJlZnJhY3RvcihTdS53RSksU3UuT20ucmVmcmFjdD1jcmVhdGVSZWZyYWN0b3IoU3UuT20pLFN1LmJkLnJlZnJhY3Q9Y3JlYXRlUmVmcmFjdG9yKFN1LmJkKSxTdS5Pcy5yZWZyYWN0PWNyZWF0ZVJlZnJhY3RvcihTdS5PcyksU3Uua1QucmVmcmFjdD1jcmVhdGVSZWZyYWN0b3IoU3Uua1QpLFN1LkZ0LnJlZnJhY3Q9Y3JlYXRlUmVmcmFjdG9yKFN1LkZ0KSxTdS5zSS5yZWZyYWN0PWNyZWF0ZVJlZnJhY3RvcihTdS5zSSksa3UucmVmcmFjdD1jcmVhdGVSZWZyYWN0b3Ioa3UpLE91LnJlZnJhY3Q9Y3JlYXRlUmVmcmFjdG9yKE91KSxDdS5yZWZyYWN0PWNyZWF0ZVJlZnJhY3RvcihDdSksQXUucmVmcmFjdD1jcmVhdGVSZWZyYWN0b3IoQXUpO2NvbnN0IGNvbXB1dGVFZGdlcz0ocyxvPW5ldyBXZWFrTWFwKT0+KER1KHMpPyhvLnNldChzLmtleSxzKSxjb21wdXRlRWRnZXMocy5rZXksbyksby5zZXQocy52YWx1ZSxzKSxjb21wdXRlRWRnZXMocy52YWx1ZSxvKSk6cy5jaGlsZHJlbi5mb3JFYWNoKChpPT57by5zZXQoaSxzKSxjb21wdXRlRWRnZXMoaSxvKX0pKSxvKTtjb25zdCBncD1jbGFzcyBUcmFuc2NsdWRlcl9UcmFuc2NsdWRlcntlbGVtZW50O2VkZ2VzO2NvbnN0cnVjdG9yKHtlbGVtZW50OnN9KXt0aGlzLmVsZW1lbnQ9c310cmFuc2NsdWRlKHMsbyl7dmFyIGk7aWYocz09PXRoaXMuZWxlbWVudClyZXR1cm4gbztpZihzPT09bylyZXR1cm4gdGhpcy5lbGVtZW50O3RoaXMuZWRnZXM9bnVsbCE9PShpPXRoaXMuZWRnZXMpJiZ2b2lkIDAhPT1pP2k6Y29tcHV0ZUVkZ2VzKHRoaXMuZWxlbWVudCk7Y29uc3QgYT10aGlzLmVkZ2VzLmdldChzKTtyZXR1cm4gYmMoYSk/dm9pZCAwOihNdShhKT8oKHMsbyxpKT0+e2NvbnN0IGE9aS5nZXQocyk7TXUoYSkmJihhLmNvbnRlbnQ9YS5tYXAoKCh1LF8sdyk9Pnc9PT1zPyhpLmRlbGV0ZShzKSxpLnNldChvLGEpLG8pOncpKSl9KShzLG8sdGhpcy5lZGdlcyk6UnUoYSk/KChzLG8saSk9Pntjb25zdCBhPWkuZ2V0KHMpO1J1KGEpJiYoYS5jb250ZW50PWEubWFwKCh1PT51PT09cz8oaS5kZWxldGUocyksaS5zZXQobyxhKSxvKTp1KSkpfSkocyxvLHRoaXMuZWRnZXMpOkR1KGEpJiYoKHMsbyxpKT0+e2NvbnN0IGE9aS5nZXQocyk7RHUoYSkmJihhLmtleT09PXMmJihhLmtleT1vLGkuZGVsZXRlKHMpLGkuc2V0KG8sYSkpLGEudmFsdWU9PT1zJiYoYS52YWx1ZT1vLGkuZGVsZXRlKHMpLGkuc2V0KG8sYSkpKX0pKHMsbyx0aGlzLmVkZ2VzKSx0aGlzLmVsZW1lbnQpfX0sZnJvbVVSSVJlZmVyZW5jZT1zPT57Y29uc3Qgbz1zLmluZGV4T2YoIiMiKTtyZXR1cm4ocz0+e3RyeXtjb25zdCBvPXMuc3RhcnRzV2l0aCgiIyIpP3Muc2xpY2UoMSk6cztyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KG8pfWNhdGNoe3JldHVybiBzfX0pKC0xPT09bz8iIyI6cy5zdWJzdHJpbmcobykpfSx5cD1mdW5jdGlvbiBmbnBhcnNlcigpe2NvbnN0IHM9RXAsbz1TcCxpPXRoaXMsYT0icGFyc2VyLmpzOiBQYXJzZXIoKTogIjtpLmFzdD12b2lkIDAsaS5zdGF0cz12b2lkIDAsaS50cmFjZT12b2lkIDAsaS5jYWxsYmFja3M9W107bGV0IHUsXyx3LHgsQyxqLEwsQj0wLCQ9MCxWPTAsVT0wLHo9MCxZPW5ldyBmdW5jdGlvbiBzeXN0ZW1EYXRhKCl7dGhpcy5zdGF0ZT1zLkFDVElWRSx0aGlzLnBocmFzZUxlbmd0aD0wLHRoaXMucmVmcmVzaD0oKT0+e3RoaXMuc3RhdGU9cy5BQ1RJVkUsdGhpcy5waHJhc2VMZW5ndGg9MH19O2kucGFyc2U9KFosZWUsaWUsYWUpPT57Y29uc3QgY2U9YCR7YX1wYXJzZSgpOiBgO0I9MCwkPTAsVj0wLFU9MCx6PTAsdT12b2lkIDAsXz12b2lkIDAsdz12b2lkIDAseD12b2lkIDAsWS5yZWZyZXNoKCksQz12b2lkIDAsaj12b2lkIDAsTD12b2lkIDAseD1vLnN0cmluZ1RvQ2hhcnMoaWUpLHU9Wi5ydWxlcyxfPVoudWR0cztjb25zdCBsZT1lZS50b0xvd2VyQ2FzZSgpO2xldCBwZTtmb3IoY29uc3QgcyBpbiB1KWlmKHUuaGFzT3duUHJvcGVydHkocykmJmxlPT09dVtzXS5sb3dlcil7cGU9dVtzXS5pbmRleDticmVha31pZih2b2lkIDA9PT1wZSl0aHJvdyBuZXcgRXJyb3IoYCR7Y2V9c3RhcnQgcnVsZSBuYW1lICcke3N0YXJ0UnVsZX0nIG5vdCByZWNvZ25pemVkYCk7KCgpPT57Y29uc3Qgcz1gJHthfWluaXRpYWxpemVDYWxsYmFja3MoKTogYDtsZXQgbyx3O2ZvcihDPVtdLGo9W10sbz0wO288dS5sZW5ndGg7bys9MSlDW29dPXZvaWQgMDtmb3Iobz0wO288Xy5sZW5ndGg7bys9MSlqW29dPXZvaWQgMDtjb25zdCB4PVtdO2ZvcihvPTA7bzx1Lmxlbmd0aDtvKz0xKXgucHVzaCh1W29dLmxvd2VyKTtmb3Iobz0wO288Xy5sZW5ndGg7bys9MSl4LnB1c2goX1tvXS5sb3dlcik7Zm9yKGNvbnN0IGEgaW4gaS5jYWxsYmFja3MpaWYoaS5jYWxsYmFja3MuaGFzT3duUHJvcGVydHkoYSkpe2lmKG89eC5pbmRleE9mKGEudG9Mb3dlckNhc2UoKSksbzwwKXRocm93IG5ldyBFcnJvcihgJHtzfXN5bnRheCBjYWxsYmFjayAnJHthfScgbm90IGEgcnVsZSBvciB1ZHQgbmFtZWApO2lmKHc9aS5jYWxsYmFja3NbYV0/aS5jYWxsYmFja3NbYV06dm9pZCAwLCJmdW5jdGlvbiIhPXR5cGVvZiB3JiZ2b2lkIDAhPT13KXRocm93IG5ldyBFcnJvcihgJHtzfXN5bnRheCBjYWxsYmFja1ske2F9XSBtdXN0IGJlIGZ1bmN0aW9uIHJlZmVyZW5jZSBvciBmYWxzeSlgKTtvPHUubGVuZ3RoP0Nbb109dzpqW28tdS5sZW5ndGhdPXd9fSkoKSxpLnRyYWNlJiZpLnRyYWNlLmluaXQodSxfLHgpLGkuc3RhdHMmJmkuc3RhdHMuaW5pdCh1LF8pLGkuYXN0JiZpLmFzdC5pbml0KHUsXyx4KSxMPWFlLHc9W3t0eXBlOnMuUk5NLGluZGV4OnBlfV0sb3BFeGVjdXRlKDAsMCksdz12b2lkIDA7bGV0IGRlPSExO3N3aXRjaChZLnN0YXRlKXtjYXNlIHMuQUNUSVZFOnRocm93IG5ldyBFcnJvcihgJHtjZX1maW5hbCBzdGF0ZSBzaG91bGQgbmV2ZXIgYmUgJ0FDVElWRSdgKTtjYXNlIHMuTk9NQVRDSDpkZT0hMTticmVhaztjYXNlIHMuRU1QVFk6Y2FzZSBzLk1BVENIOmRlPVkucGhyYXNlTGVuZ3RoPT09eC5sZW5ndGg7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCBzdGF0ZSIpfXJldHVybntzdWNjZXNzOmRlLHN0YXRlOlkuc3RhdGUsc3RhdGVOYW1lOnMuaWROYW1lKFkuc3RhdGUpLGxlbmd0aDp4Lmxlbmd0aCxtYXRjaGVkOlkucGhyYXNlTGVuZ3RoLG1heE1hdGNoZWQ6eixtYXhUcmVlRGVwdGg6Vixub2RlSGl0czpVfX07Y29uc3QgdmFsaWRhdGVSbm1DYWxsYmFja1Jlc3VsdD0obyxpLHUsXyk9PntpZihpLnBocmFzZUxlbmd0aD51KXtsZXQgcz1gJHthfW9wUk5NKCR7by5uYW1lfSk6IGNhbGxiYWNrIGZ1bmN0aW9uIGVycm9yOiBgO3Rocm93IHMrPWBzeXNEYXRhLnBocmFzZUxlbmd0aDogJHtpLnBocmFzZUxlbmd0aH1gLHMrPWAgbXVzdCBiZSA8PSByZW1haW5pbmcgY2hhcnM6ICR7dX1gLG5ldyBFcnJvcihzKX1zd2l0Y2goaS5zdGF0ZSl7Y2FzZSBzLkFDVElWRTppZighXyl0aHJvdyBuZXcgRXJyb3IoYCR7YX1vcFJOTSgke28ubmFtZX0pOiBjYWxsYmFjayBmdW5jdGlvbiByZXR1cm4gZXJyb3IuIEFDVElWRSBzdGF0ZSBub3QgYWxsb3dlZC5gKTticmVhaztjYXNlIHMuRU1QVFk6aS5waHJhc2VMZW5ndGg9MDticmVhaztjYXNlIHMuTUFUQ0g6MD09PWkucGhyYXNlTGVuZ3RoJiYoaS5zdGF0ZT1zLkVNUFRZKTticmVhaztjYXNlIHMuTk9NQVRDSDppLnBocmFzZUxlbmd0aD0wO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGAke2F9b3BSTk0oJHtvLm5hbWV9KTogY2FsbGJhY2sgZnVuY3Rpb24gcmV0dXJuIGVycm9yLiBVbnJlY29nbml6ZWQgcmV0dXJuIHN0YXRlOiAke2kuc3RhdGV9YCl9fSxvcFVEVD0obyxDKT0+e2xldCAkLFYsVTtjb25zdCB6PXdbb10sWj1fW3ouaW5kZXhdO1kuVWR0SW5kZXg9Wi5pbmRleCxCfHwoVT1pLmFzdCYmaS5hc3QudWR0RGVmaW5lZCh6LmluZGV4KSxVJiYoVj11Lmxlbmd0aCt6LmluZGV4LCQ9aS5hc3QuZ2V0TGVuZ3RoKCksaS5hc3QuZG93bihWLFoubmFtZSkpKTtjb25zdCBlZT14Lmxlbmd0aC1DO2pbei5pbmRleF0oWSx4LEMsTCksKChvLGksdSk9PntpZihpLnBocmFzZUxlbmd0aD51KXtsZXQgcz1gJHthfW9wVURUKCR7by5uYW1lfSk6IGNhbGxiYWNrIGZ1bmN0aW9uIGVycm9yOiBgO3Rocm93IHMrPWBzeXNEYXRhLnBocmFzZUxlbmd0aDogJHtpLnBocmFzZUxlbmd0aH1gLHMrPWAgbXVzdCBiZSA8PSByZW1haW5pbmcgY2hhcnM6ICR7dX1gLG5ldyBFcnJvcihzKX1zd2l0Y2goaS5zdGF0ZSl7Y2FzZSBzLkFDVElWRTp0aHJvdyBuZXcgRXJyb3IoYCR7YX1vcFVEVCgke28ubmFtZX0pIEFDVElWRSBzdGF0ZSByZXR1cm4gbm90IGFsbG93ZWQuYCk7Y2FzZSBzLkVNUFRZOmlmKCFvLmVtcHR5KXRocm93IG5ldyBFcnJvcihgJHthfW9wVURUKCR7by5uYW1lfSkgbWF5IG5vdCByZXR1cm4gRU1QVFkuYCk7aS5waHJhc2VMZW5ndGg9MDticmVhaztjYXNlIHMuTUFUQ0g6aWYoMD09PWkucGhyYXNlTGVuZ3RoKXtpZighby5lbXB0eSl0aHJvdyBuZXcgRXJyb3IoYCR7YX1vcFVEVCgke28ubmFtZX0pIG1heSBub3QgcmV0dXJuIEVNUFRZLmApO2kuc3RhdGU9cy5FTVBUWX1icmVhaztjYXNlIHMuTk9NQVRDSDppLnBocmFzZUxlbmd0aD0wO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGAke2F9b3BVRFQoJHtvLm5hbWV9KTogY2FsbGJhY2sgZnVuY3Rpb24gcmV0dXJuIGVycm9yLiBVbnJlY29nbml6ZWQgcmV0dXJuIHN0YXRlOiAke2kuc3RhdGV9YCl9fSkoWixZLGVlKSxCfHxVJiYoWS5zdGF0ZT09PXMuTk9NQVRDSD9pLmFzdC5zZXRMZW5ndGgoJCk6aS5hc3QudXAoVixaLm5hbWUsQyxZLnBocmFzZUxlbmd0aCkpfSxvcEV4ZWN1dGU9KG8sXyk9Pntjb25zdCBqPWAke2F9b3BFeGVjdXRlKCk6IGAsWj13W29dO3N3aXRjaChVKz0xLCQ+ViYmKFY9JCksJCs9MSxZLnJlZnJlc2goKSxpLnRyYWNlJiZpLnRyYWNlLmRvd24oWixfKSxaLnR5cGUpe2Nhc2Ugcy5BTFQ6KChvLGkpPT57Y29uc3QgYT13W29dO2ZvcihsZXQgbz0wO288YS5jaGlsZHJlbi5sZW5ndGgmJihvcEV4ZWN1dGUoYS5jaGlsZHJlbltvXSxpKSxZLnN0YXRlPT09cy5OT01BVENIKTtvKz0xKTt9KShvLF8pO2JyZWFrO2Nhc2Ugcy5DQVQ6KChvLGEpPT57bGV0IHUsXyx4LEM7Y29uc3Qgaj13W29dO2kuYXN0JiYoXz1pLmFzdC5nZXRMZW5ndGgoKSksdT0hMCx4PWEsQz0wO2ZvcihsZXQgbz0wO288ai5jaGlsZHJlbi5sZW5ndGg7bys9MSl7aWYob3BFeGVjdXRlKGouY2hpbGRyZW5bb10seCksWS5zdGF0ZT09PXMuTk9NQVRDSCl7dT0hMTticmVha314Kz1ZLnBocmFzZUxlbmd0aCxDKz1ZLnBocmFzZUxlbmd0aH11PyhZLnN0YXRlPTA9PT1DP3MuRU1QVFk6cy5NQVRDSCxZLnBocmFzZUxlbmd0aD1DKTooWS5zdGF0ZT1zLk5PTUFUQ0gsWS5waHJhc2VMZW5ndGg9MCxpLmFzdCYmaS5hc3Quc2V0TGVuZ3RoKF8pKX0pKG8sXyk7YnJlYWs7Y2FzZSBzLlJFUDooKG8sYSk9PntsZXQgdSxfLEMsajtjb25zdCBMPXdbb107aWYoMD09PUwubWF4KXJldHVybiBZLnN0YXRlPXMuRU1QVFksdm9pZChZLnBocmFzZUxlbmd0aD0wKTtmb3IoXz1hLEM9MCxqPTAsaS5hc3QmJih1PWkuYXN0LmdldExlbmd0aCgpKTshKF8+PXgubGVuZ3RoKSYmKG9wRXhlY3V0ZShvKzEsXyksWS5zdGF0ZSE9PXMuTk9NQVRDSCkmJlkuc3RhdGUhPT1zLkVNUFRZJiYoais9MSxDKz1ZLnBocmFzZUxlbmd0aCxfKz1ZLnBocmFzZUxlbmd0aCxqIT09TC5tYXgpOyk7WS5zdGF0ZT09PXMuRU1QVFl8fGo+PUwubWluPyhZLnN0YXRlPTA9PT1DP3MuRU1QVFk6cy5NQVRDSCxZLnBocmFzZUxlbmd0aD1DKTooWS5zdGF0ZT1zLk5PTUFUQ0gsWS5waHJhc2VMZW5ndGg9MCxpLmFzdCYmaS5hc3Quc2V0TGVuZ3RoKHUpKX0pKG8sXyk7YnJlYWs7Y2FzZSBzLlJOTTooKG8sYSk9PntsZXQgXyxqLCQ7Y29uc3QgVj13W29dLFU9dVtWLmluZGV4XSx6PUNbVS5pbmRleF07aWYoQnx8KGo9aS5hc3QmJmkuYXN0LnJ1bGVEZWZpbmVkKFYuaW5kZXgpLGomJihfPWkuYXN0LmdldExlbmd0aCgpLGkuYXN0LmRvd24oVi5pbmRleCx1W1YuaW5kZXhdLm5hbWUpKSkseil7Y29uc3Qgbz14Lmxlbmd0aC1hO3ooWSx4LGEsTCksdmFsaWRhdGVSbm1DYWxsYmFja1Jlc3VsdChVLFksbywhMCksWS5zdGF0ZT09PXMuQUNUSVZFJiYoJD13LHc9VS5vcGNvZGVzLG9wRXhlY3V0ZSgwLGEpLHc9JCx6KFkseCxhLEwpLHZhbGlkYXRlUm5tQ2FsbGJhY2tSZXN1bHQoVSxZLG8sITEpKX1lbHNlICQ9dyx3PVUub3Bjb2RlcyxvcEV4ZWN1dGUoMCxhLFkpLHc9JDtCfHxqJiYoWS5zdGF0ZT09PXMuTk9NQVRDSD9pLmFzdC5zZXRMZW5ndGgoXyk6aS5hc3QudXAoVi5pbmRleCxVLm5hbWUsYSxZLnBocmFzZUxlbmd0aCkpfSkobyxfKTticmVhaztjYXNlIHMuVFJHOigobyxpKT0+e2NvbnN0IGE9d1tvXTtZLnN0YXRlPXMuTk9NQVRDSCxpPHgubGVuZ3RoJiZhLm1pbjw9eFtpXSYmeFtpXTw9YS5tYXgmJihZLnN0YXRlPXMuTUFUQ0gsWS5waHJhc2VMZW5ndGg9MSl9KShvLF8pO2JyZWFrO2Nhc2Ugcy5UQlM6KChvLGkpPT57Y29uc3QgYT13W29dLHU9YS5zdHJpbmcubGVuZ3RoO2lmKFkuc3RhdGU9cy5OT01BVENILGkrdTw9eC5sZW5ndGgpe2ZvcihsZXQgcz0wO3M8dTtzKz0xKWlmKHhbaStzXSE9PWEuc3RyaW5nW3NdKXJldHVybjtZLnN0YXRlPXMuTUFUQ0gsWS5waHJhc2VMZW5ndGg9dX19KShvLF8pO2JyZWFrO2Nhc2Ugcy5UTFM6KChvLGkpPT57bGV0IGE7Y29uc3QgdT13W29dO1kuc3RhdGU9cy5OT01BVENIO2NvbnN0IF89dS5zdHJpbmcubGVuZ3RoO2lmKDAhPT1fKXtpZihpK188PXgubGVuZ3RoKXtmb3IobGV0IHM9MDtzPF87cys9MSlpZihhPXhbaStzXSxhPj02NSYmYTw9OTAmJihhKz0zMiksYSE9PXUuc3RyaW5nW3NdKXJldHVybjtZLnN0YXRlPXMuTUFUQ0gsWS5waHJhc2VMZW5ndGg9X319ZWxzZSBZLnN0YXRlPXMuRU1QVFl9KShvLF8pO2JyZWFrO2Nhc2Ugcy5VRFQ6b3BVRFQobyxfKTticmVhaztjYXNlIHMuQU5EOigobyxpKT0+e3N3aXRjaChCKz0xLG9wRXhlY3V0ZShvKzEsaSksQi09MSxZLnBocmFzZUxlbmd0aD0wLFkuc3RhdGUpe2Nhc2Ugcy5FTVBUWTpjYXNlIHMuTUFUQ0g6WS5zdGF0ZT1zLkVNUFRZO2JyZWFrO2Nhc2Ugcy5OT01BVENIOlkuc3RhdGU9cy5OT01BVENIO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBvcEFORDogaW52YWxpZCBzdGF0ZSAke1kuc3RhdGV9YCl9fSkobyxfKTticmVhaztjYXNlIHMuTk9UOigobyxpKT0+e3N3aXRjaChCKz0xLG9wRXhlY3V0ZShvKzEsaSksQi09MSxZLnBocmFzZUxlbmd0aD0wLFkuc3RhdGUpe2Nhc2Ugcy5FTVBUWTpjYXNlIHMuTUFUQ0g6WS5zdGF0ZT1zLk5PTUFUQ0g7YnJlYWs7Y2FzZSBzLk5PTUFUQ0g6WS5zdGF0ZT1zLkVNUFRZO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBvcE5PVDogaW52YWxpZCBzdGF0ZSAke1kuc3RhdGV9YCl9fSkobyxfKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgJHtqfXVucmVjb2duaXplZCBvcGVyYXRvcmApfUJ8fF8rWS5waHJhc2VMZW5ndGg+eiYmKHo9XytZLnBocmFzZUxlbmd0aCksaS5zdGF0cyYmaS5zdGF0cy5jb2xsZWN0KFosWSksaS50cmFjZSYmaS50cmFjZS51cChaLFkuc3RhdGUsXyxZLnBocmFzZUxlbmd0aCksJC09MX19LHZwPWZ1bmN0aW9uIGZuYXN0KCl7Y29uc3Qgcz1FcCxvPVNwLGk9dGhpcztsZXQgYSx1LF8sdz0wO2NvbnN0IHg9W10sQz1bXSxqPVtdO2Z1bmN0aW9uIGluZGVudChzKXtsZXQgbz0iIjtmb3IoO3MtLSA+MDspbys9IiAiO3JldHVybiBvfWkuY2FsbGJhY2tzPVtdLGkuaW5pdD0ocyxvLEwpPT57bGV0IEI7Qy5sZW5ndGg9MCxqLmxlbmd0aD0wLHc9MCxhPXMsdT1vLF89TDtjb25zdCAkPVtdO2ZvcihCPTA7QjxhLmxlbmd0aDtCKz0xKSQucHVzaChhW0JdLmxvd2VyKTtmb3IoQj0wO0I8dS5sZW5ndGg7Qis9MSkkLnB1c2godVtCXS5sb3dlcik7Zm9yKHc9YS5sZW5ndGgrdS5sZW5ndGgsQj0wO0I8dztCKz0xKXhbQl09dm9pZCAwO2Zvcihjb25zdCBzIGluIGkuY2FsbGJhY2tzKWlmKGkuY2FsbGJhY2tzLmhhc093blByb3BlcnR5KHMpKXtjb25zdCBvPXMudG9Mb3dlckNhc2UoKTtpZihCPSQuaW5kZXhPZihvKSxCPDApdGhyb3cgbmV3IEVycm9yKGBwYXJzZXIuanM6IEFzdCgpKTogaW5pdDogbm9kZSAnJHtzfScgbm90IGEgcnVsZSBvciB1ZHQgbmFtZWApO3hbQl09aS5jYWxsYmFja3Nbc119fSxpLnJ1bGVEZWZpbmVkPXM9PiEheFtzXSxpLnVkdERlZmluZWQ9cz0+ISF4W2EubGVuZ3RoK3NdLGkuZG93bj0obyxpKT0+e2NvbnN0IGE9ai5sZW5ndGg7cmV0dXJuIEMucHVzaChhKSxqLnB1c2goe25hbWU6aSx0aGlzSW5kZXg6YSx0aGF0SW5kZXg6dm9pZCAwLHN0YXRlOnMuU0VNX1BSRSxjYWxsYmFja0luZGV4Om8scGhyYXNlSW5kZXg6dm9pZCAwLHBocmFzZUxlbmd0aDp2b2lkIDAsc3RhY2s6Qy5sZW5ndGh9KSxhfSxpLnVwPShvLGksYSx1KT0+e2NvbnN0IF89ai5sZW5ndGgsdz1DLnBvcCgpO3JldHVybiBqLnB1c2goe25hbWU6aSx0aGlzSW5kZXg6Xyx0aGF0SW5kZXg6dyxzdGF0ZTpzLlNFTV9QT1NULGNhbGxiYWNrSW5kZXg6byxwaHJhc2VJbmRleDphLHBocmFzZUxlbmd0aDp1LHN0YWNrOkMubGVuZ3RofSksalt3XS50aGF0SW5kZXg9XyxqW3ddLnBocmFzZUluZGV4PWEsalt3XS5waHJhc2VMZW5ndGg9dSxffSxpLnRyYW5zbGF0ZT1vPT57bGV0IGksYTtmb3IobGV0IHU9MDt1PGoubGVuZ3RoO3UrPTEpYT1qW3VdLGk9eFthLmNhbGxiYWNrSW5kZXhdLGkmJihhLnN0YXRlPT09cy5TRU1fUFJFP2kocy5TRU1fUFJFLF8sYS5waHJhc2VJbmRleCxhLnBocmFzZUxlbmd0aCxvKTppJiZpKHMuU0VNX1BPU1QsXyxhLnBocmFzZUluZGV4LGEucGhyYXNlTGVuZ3RoLG8pKX0saS5zZXRMZW5ndGg9cz0+e2oubGVuZ3RoPXMsQy5sZW5ndGg9cz4wP2pbcy0xXS5zdGFjazowfSxpLmdldExlbmd0aD0oKT0+ai5sZW5ndGgsaS50b1htbD0oKT0+e2xldCBpPSIiLGE9MDtyZXR1cm4gaSs9Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+XG4nLGkrPWA8cm9vdCBub2Rlcz0iJHtqLmxlbmd0aC8yfSIgY2hhcmFjdGVycz0iJHtfLmxlbmd0aH0iPlxuYCxpKz0iXHgzYyEtLSBpbnB1dCBzdHJpbmcgLS1ceDNlXG4iLGkrPWluZGVudChhKzIpLGkrPW8uY2hhcnNUb1N0cmluZyhfKSxpKz0iXG4iLGouZm9yRWFjaCgodT0+e3Uuc3RhdGU9PT1zLlNFTV9QUkU/KGErPTEsaSs9aW5kZW50KGEpLGkrPWA8bm9kZSBuYW1lPSIke3UubmFtZX0iIGluZGV4PSIke3UucGhyYXNlSW5kZXh9IiBsZW5ndGg9IiR7dS5waHJhc2VMZW5ndGh9Ij5cbmAsaSs9aW5kZW50KGErMiksaSs9by5jaGFyc1RvU3RyaW5nKF8sdS5waHJhc2VJbmRleCx1LnBocmFzZUxlbmd0aCksaSs9IlxuIik6KGkrPWluZGVudChhKSxpKz1gPC9ub2RlPlx4M2MhLS0gbmFtZT0iJHt1Lm5hbWV9IiAtLVx4M2VcbmAsYS09MSl9KSksaSs9Ijwvcm9vdD5cbiIsaX19LGJwPWZ1bmN0aW9uIGZudHJhY2UoKXtjb25zdCBzPUVwLG89U3AsaT0icGFyc2VyLmpzOiBUcmFjZSgpOiAiO2xldCBhLHUsXyx3PSIiLHg9MDtjb25zdCBDPXRoaXMsaW5kZW50PXM9PntsZXQgbz0iIixpPTA7aWYocz49MClmb3IoO3MtLTspaSs9MSw1PT09aT8obys9InwiLGk9MCk6bys9Ii4iO3JldHVybiBvfTtDLmluaXQ9KHMsbyxpKT0+e3U9cyxfPW8sYT1pfTtjb25zdCBvcE5hbWU9YT0+e2xldCB3O3N3aXRjaChhLnR5cGUpe2Nhc2Ugcy5BTFQ6dz0iQUxUIjticmVhaztjYXNlIHMuQ0FUOnc9IkNBVCI7YnJlYWs7Y2FzZSBzLlJFUDp3PWEubWF4PT09MS8wP2BSRVAoJHthLm1pbn0saW5mKWA6YFJFUCgke2EubWlufSwke2EubWF4fSlgO2JyZWFrO2Nhc2Ugcy5STk06dz1gUk5NKCR7dVthLmluZGV4XS5uYW1lfSlgO2JyZWFrO2Nhc2Ugcy5UUkc6dz1gVFJHKCR7YS5taW59LCR7YS5tYXh9KWA7YnJlYWs7Y2FzZSBzLlRCUzp3PWEuc3RyaW5nLmxlbmd0aD42P2BUQlMoJHtvLmNoYXJzVG9TdHJpbmcoYS5zdHJpbmcsMCwzKX0uLi4pYDpgVEJTKCR7by5jaGFyc1RvU3RyaW5nKGEuc3RyaW5nLDAsNil9KWA7YnJlYWs7Y2FzZSBzLlRMUzp3PWEuc3RyaW5nLmxlbmd0aD42P2BUTFMoJHtvLmNoYXJzVG9TdHJpbmcoYS5zdHJpbmcsMCwzKX0uLi4pYDpgVExTKCR7by5jaGFyc1RvU3RyaW5nKGEuc3RyaW5nLDAsNil9KWA7YnJlYWs7Y2FzZSBzLlVEVDp3PWBVRFQoJHtfW2EuaW5kZXhdLm5hbWV9KWA7YnJlYWs7Y2FzZSBzLkFORDp3PSJBTkQiO2JyZWFrO2Nhc2Ugcy5OT1Q6dz0iTk9UIjticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgJHtpfVRyYWNlOiBvcE5hbWU6IHVucmVjb2duaXplZCBvcGNvZGVgKX1yZXR1cm4gd307Qy5kb3duPShzLGkpPT57Y29uc3QgdT1pbmRlbnQoeCksXz1NYXRoLm1pbigxMDAsYS5sZW5ndGgtaSk7bGV0IEM9by5jaGFyc1RvU3RyaW5nKGEsaSxfKTtfPGEubGVuZ3RoLWkmJihDKz0iLi4uIiksQz1gJHt1fXwtfFske29wTmFtZShzKX1dJHtDfVxuYCx3Kz1DLHgrPTF9LEMudXA9KHUsXyxDLGopPT57Y29uc3QgTD1gJHtpfXRyYWNlLnVwOiBgO3gtPTE7Y29uc3QgQj1pbmRlbnQoeCk7bGV0ICQsVixVO3N3aXRjaChfKXtjYXNlIHMuRU1QVFk6VT0ifEV8IixWPSInJyI7YnJlYWs7Y2FzZSBzLk1BVENIOlU9InxNfCIsJD1NYXRoLm1pbigxMDAsaiksVj0kPGo/YCcke28uY2hhcnNUb1N0cmluZyhhLEMsJCl9Li4uJ2A6YCcke28uY2hhcnNUb1N0cmluZyhhLEMsJCl9J2A7YnJlYWs7Y2FzZSBzLk5PTUFUQ0g6VT0ifE58IixWPSIiO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGAke0x9IHVucmVjb2duaXplZCBzdGF0ZWApfVY9YCR7Qn0ke1V9WyR7b3BOYW1lKHUpfV0ke1Z9XG5gLHcrPVZ9LEMuZGlzcGxheVRyYWNlPSgpPT53fSxfcD1mdW5jdGlvbiBmbnN0YXRzKCl7Y29uc3Qgcz1FcDtsZXQgbyxpLGE7Y29uc3QgdT1bXSxfPVtdLHc9W107dGhpcy5pbml0PShzLGEpPT57bz1zLGk9YSxjbGVhcigpfSx0aGlzLmNvbGxlY3Q9KG8saSk9PntpbmNTdGF0KGEsaS5zdGF0ZSxpLnBocmFzZUxlbmd0aCksaW5jU3RhdCh1W28udHlwZV0saS5zdGF0ZSxpLnBocmFzZUxlbmd0aCksby50eXBlPT09cy5STk0mJmluY1N0YXQoX1tvLmluZGV4XSxpLnN0YXRlLGkucGhyYXNlTGVuZ3RoKSxvLnR5cGU9PT1zLlVEVCYmaW5jU3RhdCh3W28uaW5kZXhdLGkuc3RhdGUsaS5waHJhc2VMZW5ndGgpfSx0aGlzLmRpc3BsYXlTdGF0cz0oKT0+e2xldCBvPSIiO2NvbnN0IGk9e21hdGNoOjAsZW1wdHk6MCxub21hdGNoOjAsdG90YWw6MH0sZGlzcGxheVJvdz0ocyxvLGEsdSxfKT0+e2kubWF0Y2grPW8saS5lbXB0eSs9YSxpLm5vbWF0Y2grPXUsaS50b3RhbCs9XztyZXR1cm5gJHtzfSB8ICR7bm9ybWFsaXplKG8pfSB8ICR7bm9ybWFsaXplKGEpfSB8ICR7bm9ybWFsaXplKHUpfSB8ICR7bm9ybWFsaXplKF8pfSB8XG5gfTtyZXR1cm4gbys9IiAgICAgICAgICBPUEVSQVRPUiBTVEFUU1xuIixvKz0iICAgICAgfCAgIE1BVENIIHwgICBFTVBUWSB8IE5PTUFUQ0ggfCAgIFRPVEFMIHxcbiIsbys9ZGlzcGxheVJvdygiICBBTFQiLHVbcy5BTFRdLm1hdGNoLHVbcy5BTFRdLmVtcHR5LHVbcy5BTFRdLm5vbWF0Y2gsdVtzLkFMVF0udG90YWwpLG8rPWRpc3BsYXlSb3coIiAgQ0FUIix1W3MuQ0FUXS5tYXRjaCx1W3MuQ0FUXS5lbXB0eSx1W3MuQ0FUXS5ub21hdGNoLHVbcy5DQVRdLnRvdGFsKSxvKz1kaXNwbGF5Um93KCIgIFJFUCIsdVtzLlJFUF0ubWF0Y2gsdVtzLlJFUF0uZW1wdHksdVtzLlJFUF0ubm9tYXRjaCx1W3MuUkVQXS50b3RhbCksbys9ZGlzcGxheVJvdygiICBSTk0iLHVbcy5STk1dLm1hdGNoLHVbcy5STk1dLmVtcHR5LHVbcy5STk1dLm5vbWF0Y2gsdVtzLlJOTV0udG90YWwpLG8rPWRpc3BsYXlSb3coIiAgVFJHIix1W3MuVFJHXS5tYXRjaCx1W3MuVFJHXS5lbXB0eSx1W3MuVFJHXS5ub21hdGNoLHVbcy5UUkddLnRvdGFsKSxvKz1kaXNwbGF5Um93KCIgIFRCUyIsdVtzLlRCU10ubWF0Y2gsdVtzLlRCU10uZW1wdHksdVtzLlRCU10ubm9tYXRjaCx1W3MuVEJTXS50b3RhbCksbys9ZGlzcGxheVJvdygiICBUTFMiLHVbcy5UTFNdLm1hdGNoLHVbcy5UTFNdLmVtcHR5LHVbcy5UTFNdLm5vbWF0Y2gsdVtzLlRMU10udG90YWwpLG8rPWRpc3BsYXlSb3coIiAgVURUIix1W3MuVURUXS5tYXRjaCx1W3MuVURUXS5lbXB0eSx1W3MuVURUXS5ub21hdGNoLHVbcy5VRFRdLnRvdGFsKSxvKz1kaXNwbGF5Um93KCIgIEFORCIsdVtzLkFORF0ubWF0Y2gsdVtzLkFORF0uZW1wdHksdVtzLkFORF0ubm9tYXRjaCx1W3MuQU5EXS50b3RhbCksbys9ZGlzcGxheVJvdygiICBOT1QiLHVbcy5OT1RdLm1hdGNoLHVbcy5OT1RdLmVtcHR5LHVbcy5OT1RdLm5vbWF0Y2gsdVtzLk5PVF0udG90YWwpLG8rPWRpc3BsYXlSb3coIlRPVEFMIixpLm1hdGNoLGkuZW1wdHksaS5ub21hdGNoLGkudG90YWwpLG99LHRoaXMuZGlzcGxheUhpdHM9cz0+e2xldCBvPSIiO2NvbnN0IGRpc3BsYXlSb3c9KHMsbyxpLHUsXyk9PnthLm1hdGNoKz1zLGEuZW1wdHkrPW8sYS5ub21hdGNoKz1pLGEudG90YWwrPXU7cmV0dXJuYHwgJHtub3JtYWxpemUocyl9IHwgJHtub3JtYWxpemUobyl9IHwgJHtub3JtYWxpemUoaSl9IHwgJHtub3JtYWxpemUodSl9IHwgJHtffVxuYH07InN0cmluZyI9PXR5cGVvZiBzJiYiYSI9PT1zLnRvTG93ZXJDYXNlKClbMF0/KF8uc29ydChzb3J0QWxwaGEpLHcuc29ydChzb3J0QWxwaGEpLG8rPSIgICAgUlVMRVMvVURUUyBBTFBIQUJFVElDQUxMWVxuIik6InN0cmluZyI9PXR5cGVvZiBzJiYiaSI9PT1zLnRvTG93ZXJDYXNlKClbMF0/KF8uc29ydChzb3J0SW5kZXgpLHcuc29ydChzb3J0SW5kZXgpLG8rPSIgICAgUlVMRVMvVURUUyBCWSBJTkRFWFxuIik6KF8uc29ydChzb3J0SGl0cyksdy5zb3J0KHNvcnRIaXRzKSxvKz0iICAgIFJVTEVTL1VEVFMgQlkgSElUIENPVU5UXG4iKSxvKz0ifCAgIE1BVENIIHwgICBFTVBUWSB8IE5PTUFUQ0ggfCAgIFRPVEFMIHwgTkFNRVxuIjtmb3IobGV0IHM9MDtzPF8ubGVuZ3RoO3MrPTEpe2xldCBpPV9bc107aS50b3RhbCYmKG8rPWRpc3BsYXlSb3coaS5tYXRjaCxpLmVtcHR5LGkubm9tYXRjaCxpLnRvdGFsLGkubmFtZSkpfWZvcihsZXQgcz0wO3M8dy5sZW5ndGg7cys9MSl7bGV0IGk9d1tzXTtpLnRvdGFsJiYobys9ZGlzcGxheVJvdyhpLm1hdGNoLGkuZW1wdHksaS5ub21hdGNoLGkudG90YWwsaS5uYW1lKSl9cmV0dXJuIG99O2NvbnN0IG5vcm1hbGl6ZT1zPT5zPDEwP2AgICAgICAke3N9YDpzPDEwMD9gICAgICAke3N9YDpzPDFlMz9gICAgICR7c31gOnM8MWU0P2AgICAke3N9YDpzPDFlNT9gICAke3N9YDpzPDFlNj9gICR7c31gOmAke3N9YCxzb3J0QWxwaGE9KHMsbyk9PnMubG93ZXI8by5sb3dlcj8tMTpzLmxvd2VyPm8ubG93ZXI/MTowLHNvcnRIaXRzPShzLG8pPT5zLnRvdGFsPG8udG90YWw/MTpzLnRvdGFsPm8udG90YWw/LTE6c29ydEFscGhhKHMsbyksc29ydEluZGV4PShzLG8pPT5zLmluZGV4PG8uaW5kZXg/LTE6cy5pbmRleD5vLmluZGV4PzE6MCx4PWZ1bmN0aW9uIGZuZW1wdHkoKXt0aGlzLmVtcHR5PTAsdGhpcy5tYXRjaD0wLHRoaXMubm9tYXRjaD0wLHRoaXMudG90YWw9MH0sY2xlYXI9KCk9Pnt1Lmxlbmd0aD0wLGE9bmV3IHgsdVtzLkFMVF09bmV3IHgsdVtzLkNBVF09bmV3IHgsdVtzLlJFUF09bmV3IHgsdVtzLlJOTV09bmV3IHgsdVtzLlRSR109bmV3IHgsdVtzLlRCU109bmV3IHgsdVtzLlRMU109bmV3IHgsdVtzLlVEVF09bmV3IHgsdVtzLkFORF09bmV3IHgsdVtzLk5PVF09bmV3IHgsXy5sZW5ndGg9MDtmb3IobGV0IHM9MDtzPG8ubGVuZ3RoO3MrPTEpXy5wdXNoKHtlbXB0eTowLG1hdGNoOjAsbm9tYXRjaDowLHRvdGFsOjAsbmFtZTpvW3NdLm5hbWUsbG93ZXI6b1tzXS5sb3dlcixpbmRleDpvW3NdLmluZGV4fSk7aWYoaS5sZW5ndGg+MCl7dy5sZW5ndGg9MDtmb3IobGV0IHM9MDtzPGkubGVuZ3RoO3MrPTEpdy5wdXNoKHtlbXB0eTowLG1hdGNoOjAsbm9tYXRjaDowLHRvdGFsOjAsbmFtZTppW3NdLm5hbWUsbG93ZXI6aVtzXS5sb3dlcixpbmRleDppW3NdLmluZGV4fSl9fSxpbmNTdGF0PShvLGkpPT57c3dpdGNoKG8udG90YWwrPTEsaSl7Y2FzZSBzLkVNUFRZOm8uZW1wdHkrPTE7YnJlYWs7Y2FzZSBzLk1BVENIOm8ubWF0Y2grPTE7YnJlYWs7Y2FzZSBzLk5PTUFUQ0g6by5ub21hdGNoKz0xO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBwYXJzZXIuanM6IFN0YXRzKCk6IGNvbGxlY3QoKTogaW5jU3RhdCgpOiB1bnJlY29nbml6ZWQgc3RhdGU6ICR7aX1gKX19fSxTcD17c3RyaW5nVG9DaGFyczpzPT5bLi4uc10ubWFwKChzPT5zLmNvZGVQb2ludEF0KDApKSksY2hhcnNUb1N0cmluZzoocyxvLGkpPT57bGV0IGE9cztmb3IoOyEodm9pZCAwPT09b3x8bzwwKTspe2lmKHZvaWQgMD09PWkpe2E9cy5zbGljZShvKTticmVha31pZihpPD0wKXJldHVybiIiO2E9cy5zbGljZShvLG8raSk7YnJlYWt9cmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KC4uLmEpfX0sRXA9e0FMVDoxLENBVDoyLFJFUDozLFJOTTo0LFRSRzo1LFRCUzo2LFRMUzo3LFVEVDoxMSxBTkQ6MTIsTk9UOjEzLEFDVElWRToxMDAsTUFUQ0g6MTAxLEVNUFRZOjEwMixOT01BVENIOjEwMyxTRU1fUFJFOjIwMCxTRU1fUE9TVDoyMDEsU0VNX09LOjMwMCxpZE5hbWU6cz0+e3N3aXRjaChzKXtjYXNlIEVwLkFMVDpyZXR1cm4iQUxUIjtjYXNlIEVwLkNBVDpyZXR1cm4iQ0FUIjtjYXNlIEVwLlJFUDpyZXR1cm4iUkVQIjtjYXNlIEVwLlJOTTpyZXR1cm4iUk5NIjtjYXNlIEVwLlRSRzpyZXR1cm4iVFJHIjtjYXNlIEVwLlRCUzpyZXR1cm4iVEJTIjtjYXNlIEVwLlRMUzpyZXR1cm4iVExTIjtjYXNlIEVwLlVEVDpyZXR1cm4iVURUIjtjYXNlIEVwLkFORDpyZXR1cm4iQU5EIjtjYXNlIEVwLk5PVDpyZXR1cm4iTk9UIjtjYXNlIEVwLkFDVElWRTpyZXR1cm4iQUNUSVZFIjtjYXNlIEVwLkVNUFRZOnJldHVybiJFTVBUWSI7Y2FzZSBFcC5NQVRDSDpyZXR1cm4iTUFUQ0giO2Nhc2UgRXAuTk9NQVRDSDpyZXR1cm4iTk9NQVRDSCI7Y2FzZSBFcC5TRU1fUFJFOnJldHVybiJTRU1fUFJFIjtjYXNlIEVwLlNFTV9QT1NUOnJldHVybiJTRU1fUE9TVCI7Y2FzZSBFcC5TRU1fT0s6cmV0dXJuIlNFTV9PSyI7ZGVmYXVsdDpyZXR1cm4iVU5SRUNPR05JWkVEIFNUQVRFIn19fTtmdW5jdGlvbiBncmFtbWFyKCl7dGhpcy5ncmFtbWFyT2JqZWN0PSJncmFtbWFyT2JqZWN0Iix0aGlzLnJ1bGVzPVtdLHRoaXMucnVsZXNbMF09e25hbWU6Impzb24tcG9pbnRlciIsbG93ZXI6Impzb24tcG9pbnRlciIsaW5kZXg6MCxpc0JrcjohMX0sdGhpcy5ydWxlc1sxXT17bmFtZToicmVmZXJlbmNlLXRva2VuIixsb3dlcjoicmVmZXJlbmNlLXRva2VuIixpbmRleDoxLGlzQmtyOiExfSx0aGlzLnJ1bGVzWzJdPXtuYW1lOiJ1bmVzY2FwZWQiLGxvd2VyOiJ1bmVzY2FwZWQiLGluZGV4OjIsaXNCa3I6ITF9LHRoaXMucnVsZXNbM109e25hbWU6ImVzY2FwZWQiLGxvd2VyOiJlc2NhcGVkIixpbmRleDozLGlzQmtyOiExfSx0aGlzLnJ1bGVzWzRdPXtuYW1lOiJhcnJheS1sb2NhdGlvbiIsbG93ZXI6ImFycmF5LWxvY2F0aW9uIixpbmRleDo0LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzVdPXtuYW1lOiJhcnJheS1pbmRleCIsbG93ZXI6ImFycmF5LWluZGV4IixpbmRleDo1LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzZdPXtuYW1lOiJhcnJheS1kYXNoIixsb3dlcjoiYXJyYXktZGFzaCIsaW5kZXg6Nixpc0JrcjohMX0sdGhpcy5ydWxlc1s3XT17bmFtZToic2xhc2giLGxvd2VyOiJzbGFzaCIsaW5kZXg6Nyxpc0JrcjohMX0sdGhpcy51ZHRzPVtdLHRoaXMucnVsZXNbMF0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzBdLm9wY29kZXNbMF09e3R5cGU6MyxtaW46MCxtYXg6MS8wfSx0aGlzLnJ1bGVzWzBdLm9wY29kZXNbMV09e3R5cGU6MixjaGlsZHJlbjpbMiwzXX0sdGhpcy5ydWxlc1swXS5vcGNvZGVzWzJdPXt0eXBlOjQsaW5kZXg6N30sdGhpcy5ydWxlc1swXS5vcGNvZGVzWzNdPXt0eXBlOjQsaW5kZXg6MX0sdGhpcy5ydWxlc1sxXS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMV0ub3Bjb2Rlc1swXT17dHlwZTozLG1pbjowLG1heDoxLzB9LHRoaXMucnVsZXNbMV0ub3Bjb2Rlc1sxXT17dHlwZToxLGNoaWxkcmVuOlsyLDNdfSx0aGlzLnJ1bGVzWzFdLm9wY29kZXNbMl09e3R5cGU6NCxpbmRleDoyfSx0aGlzLnJ1bGVzWzFdLm9wY29kZXNbM109e3R5cGU6NCxpbmRleDozfSx0aGlzLnJ1bGVzWzJdLm9wY29kZXM9W10sdGhpcy5ydWxlc1syXS5vcGNvZGVzWzBdPXt0eXBlOjEsY2hpbGRyZW46WzEsMiwzXX0sdGhpcy5ydWxlc1syXS5vcGNvZGVzWzFdPXt0eXBlOjUsbWluOjAsbWF4OjQ2fSx0aGlzLnJ1bGVzWzJdLm9wY29kZXNbMl09e3R5cGU6NSxtaW46NDgsbWF4OjEyNX0sdGhpcy5ydWxlc1syXS5vcGNvZGVzWzNdPXt0eXBlOjUsbWluOjEyNyxtYXg6MTExNDExMX0sdGhpcy5ydWxlc1szXS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbM10ub3Bjb2Rlc1swXT17dHlwZToyLGNoaWxkcmVuOlsxLDJdfSx0aGlzLnJ1bGVzWzNdLm9wY29kZXNbMV09e3R5cGU6NyxzdHJpbmc6WzEyNl19LHRoaXMucnVsZXNbM10ub3Bjb2Rlc1syXT17dHlwZToxLGNoaWxkcmVuOlszLDRdfSx0aGlzLnJ1bGVzWzNdLm9wY29kZXNbM109e3R5cGU6NyxzdHJpbmc6WzQ4XX0sdGhpcy5ydWxlc1szXS5vcGNvZGVzWzRdPXt0eXBlOjcsc3RyaW5nOls0OV19LHRoaXMucnVsZXNbNF0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzRdLm9wY29kZXNbMF09e3R5cGU6MSxjaGlsZHJlbjpbMSwyXX0sdGhpcy5ydWxlc1s0XS5vcGNvZGVzWzFdPXt0eXBlOjQsaW5kZXg6NX0sdGhpcy5ydWxlc1s0XS5vcGNvZGVzWzJdPXt0eXBlOjQsaW5kZXg6Nn0sdGhpcy5ydWxlc1s1XS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbNV0ub3Bjb2Rlc1swXT17dHlwZToxLGNoaWxkcmVuOlsxLDJdfSx0aGlzLnJ1bGVzWzVdLm9wY29kZXNbMV09e3R5cGU6NixzdHJpbmc6WzQ4XX0sdGhpcy5ydWxlc1s1XS5vcGNvZGVzWzJdPXt0eXBlOjIsY2hpbGRyZW46WzMsNF19LHRoaXMucnVsZXNbNV0ub3Bjb2Rlc1szXT17dHlwZTo1LG1pbjo0OSxtYXg6NTd9LHRoaXMucnVsZXNbNV0ub3Bjb2Rlc1s0XT17dHlwZTozLG1pbjowLG1heDoxLzB9LHRoaXMucnVsZXNbNV0ub3Bjb2Rlc1s1XT17dHlwZTo1LG1pbjo0OCxtYXg6NTd9LHRoaXMucnVsZXNbNl0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzZdLm9wY29kZXNbMF09e3R5cGU6NyxzdHJpbmc6WzQ1XX0sdGhpcy5ydWxlc1s3XS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbN10ub3Bjb2Rlc1swXT17dHlwZTo3LHN0cmluZzpbNDddfSx0aGlzLnRvU3RyaW5nPWZ1bmN0aW9uIHRvU3RyaW5nKCl7bGV0IHM9IiI7cmV0dXJuIHMrPSI7IEphdmFTY3JpcHQgT2JqZWN0IE5vdGF0aW9uIChKU09OKSBQb2ludGVyIEFCTkYgc3ludGF4XG4iLHMrPSI7IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNjkwMVxuIixzKz0ianNvbi1wb2ludGVyICAgID0gKiggc2xhc2ggcmVmZXJlbmNlLXRva2VuICkgOyBNT0RJRklDQVRJT046IHN1cnJvZ2F0ZSB0ZXh0IHJ1bGUgdXNlZFxuIixzKz0icmVmZXJlbmNlLXRva2VuID0gKiggdW5lc2NhcGVkIC8gZXNjYXBlZCApXG4iLHMrPSJ1bmVzY2FwZWQgICAgICAgPSAleDAwLTJFIC8gJXgzMC03RCAvICV4N0YtMTBGRkZGXG4iLHMrPSIgICAgICAgICAgICAgICAgOyAleDJGICgnLycpIGFuZCAleDdFICgnficpIGFyZSBleGNsdWRlZCBmcm9tICd1bmVzY2FwZWQnXG4iLHMrPSdlc2NhcGVkICAgICAgICAgPSAifiIgKCAiMCIgLyAiMSIgKVxuJyxzKz0iICAgICAgICAgICAgICAgIDsgcmVwcmVzZW50aW5nICd+JyBhbmQgJy8nLCByZXNwZWN0aXZlbHlcbiIscys9IlxuIixzKz0iOyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzY5MDEjc2VjdGlvbi00XG4iLHMrPSJhcnJheS1sb2NhdGlvbiAgPSBhcnJheS1pbmRleCAvIGFycmF5LWRhc2hcbiIscys9ImFycmF5LWluZGV4ICAgICA9ICV4MzAgLyAoICV4MzEtMzkgKigleDMwLTM5KSApXG4iLHMrPScgICAgICAgICAgICAgICAgOyAiMCIsIG9yIGRpZ2l0cyB3aXRob3V0IGEgbGVhZGluZyAiMCJcbicscys9J2FycmF5LWRhc2ggICAgICA9ICItIlxuJyxzKz0iXG4iLHMrPSI7IFN1cnJvZ2F0ZSBuYW1lZCBydWxlc1xuIixzKz0nc2xhc2ggICAgICAgICAgID0gIi8iXG4nLCc7IEphdmFTY3JpcHQgT2JqZWN0IE5vdGF0aW9uIChKU09OKSBQb2ludGVyIEFCTkYgc3ludGF4XG47IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNjkwMVxuanNvbi1wb2ludGVyICAgID0gKiggc2xhc2ggcmVmZXJlbmNlLXRva2VuICkgOyBNT0RJRklDQVRJT046IHN1cnJvZ2F0ZSB0ZXh0IHJ1bGUgdXNlZFxucmVmZXJlbmNlLXRva2VuID0gKiggdW5lc2NhcGVkIC8gZXNjYXBlZCApXG51bmVzY2FwZWQgICAgICAgPSAleDAwLTJFIC8gJXgzMC03RCAvICV4N0YtMTBGRkZGXG4gICAgICAgICAgICAgICAgOyAleDJGIChcJy9cJykgYW5kICV4N0UgKFwnflwnKSBhcmUgZXhjbHVkZWQgZnJvbSBcJ3VuZXNjYXBlZFwnXG5lc2NhcGVkICAgICAgICAgPSAifiIgKCAiMCIgLyAiMSIgKVxuICAgICAgICAgICAgICAgIDsgcmVwcmVzZW50aW5nIFwnflwnIGFuZCBcJy9cJywgcmVzcGVjdGl2ZWx5XG5cbjsgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM2OTAxI3NlY3Rpb24tNFxuYXJyYXktbG9jYXRpb24gID0gYXJyYXktaW5kZXggLyBhcnJheS1kYXNoXG5hcnJheS1pbmRleCAgICAgPSAleDMwIC8gKCAleDMxLTM5ICooJXgzMC0zOSkgKVxuICAgICAgICAgICAgICAgIDsgIjAiLCBvciBkaWdpdHMgd2l0aG91dCBhIGxlYWRpbmcgIjAiXG5hcnJheS1kYXNoICAgICAgPSAiLSJcblxuOyBTdXJyb2dhdGUgbmFtZWQgcnVsZXNcbnNsYXNoICAgICAgICAgICA9ICIvIlxuJ319Y2xhc3MgSlNPTlBvaW50ZXJFcnJvciBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHMsbz12b2lkIDApe2lmKHN1cGVyKHMsbyksdGhpcy5uYW1lPXRoaXMuY29uc3RydWN0b3IubmFtZSwic3RyaW5nIj09dHlwZW9mIHMmJih0aGlzLm1lc3NhZ2U9cyksImZ1bmN0aW9uIj09dHlwZW9mIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3Iocykuc3RhY2ssbnVsbCE9byYmIm9iamVjdCI9PXR5cGVvZiBvJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywiY2F1c2UiKSYmISgiY2F1c2UiaW4gdGhpcykpe2NvbnN0e2NhdXNlOnN9PW87dGhpcy5jYXVzZT1zLHMgaW5zdGFuY2VvZiBFcnJvciYmInN0YWNrImluIHMmJih0aGlzLnN0YWNrPWAke3RoaXMuc3RhY2t9XG5DQVVTRTogJHtzLnN0YWNrfWApfWlmKG51bGwhPW8mJiJvYmplY3QiPT10eXBlb2Ygbyl7Y29uc3R7Y2F1c2U6cywuLi5pfT1vO09iamVjdC5hc3NpZ24odGhpcyxpKX19fWNvbnN0IHdwPUpTT05Qb2ludGVyRXJyb3I7Y29uc3QgeHA9Y2xhc3MgSlNPTlBvaW50ZXJQYXJzZUVycm9yIGV4dGVuZHMgd3B7fSxjYWxsYmFja3NfY3N0PXM9PihvLGksYSx1LF8pPT57aWYoIm9iamVjdCIhPXR5cGVvZiBffHxudWxsPT09X3x8QXJyYXkuaXNBcnJheShfKSl0aHJvdyBuZXcgeHAoInBhcnNlcidzIHVzZXIgZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO2lmKG89PT1FcC5TRU1fUFJFKXtjb25zdCBvPXt0eXBlOnMsdGV4dDpTcC5jaGFyc1RvU3RyaW5nKGksYSx1KSxzdGFydDphLGxlbmd0aDp1LGNoaWxkcmVuOltdfTtpZihfLnN0YWNrLmxlbmd0aD4wKXtfLnN0YWNrW18uc3RhY2subGVuZ3RoLTFdLmNoaWxkcmVuLnB1c2gobyl9ZWxzZSBfLnJvb3Q9bztfLnN0YWNrLnB1c2gobyl9bz09PUVwLlNFTV9QT1NUJiZfLnN0YWNrLnBvcCgpfTtjb25zdCBrcD1jbGFzcyBDU1RUcmFuc2xhdG9yX0NTVFRyYW5zbGF0b3IgZXh0ZW5kcyB2cHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5jYWxsYmFja3NbImpzb24tcG9pbnRlciJdPWNhbGxiYWNrc19jc3QoImpzb24tcG9pbnRlciIpLHRoaXMuY2FsbGJhY2tzWyJyZWZlcmVuY2UtdG9rZW4iXT1jYWxsYmFja3NfY3N0KCJyZWZlcmVuY2UtdG9rZW4iKSx0aGlzLmNhbGxiYWNrcy5zbGFzaD1jYWxsYmFja3NfY3N0KCJ0ZXh0Iil9Z2V0VHJlZSgpe2NvbnN0IHM9e3N0YWNrOltdLHJvb3Q6bnVsbH07cmV0dXJuIHRoaXMudHJhbnNsYXRlKHMpLGRlbGV0ZSBzLnN0YWNrLHN9fSxlc191bmVzY2FwZT1zPT57aWYoInN0cmluZyIhPXR5cGVvZiBzKXRocm93IG5ldyBUeXBlRXJyb3IoIlJlZmVyZW5jZSB0b2tlbiBtdXN0IGJlIGEgc3RyaW5nIik7cmV0dXJuIHMucmVwbGFjZSgvfjEvZywiLyIpLnJlcGxhY2UoL34wL2csIn4iKX07Y29uc3QgT3A9Y2xhc3MgQVNUVHJhbnNsYXRvciBleHRlbmRzIGtwe2dldFRyZWUoKXtjb25zdHtyb290OnN9PXN1cGVyLmdldFRyZWUoKTtyZXR1cm4gcy5jaGlsZHJlbi5maWx0ZXIoKCh7dHlwZTpzfSk9PiJyZWZlcmVuY2UtdG9rZW4iPT09cykpLm1hcCgoKHt0ZXh0OnN9KT0+ZXNfdW5lc2NhcGUocykpKX19O2NvbnN0IENwPWNsYXNzIEV4cGVjdGF0aW9ucyBleHRlbmRzIEFycmF5e3RvU3RyaW5nKCl7cmV0dXJuIHRoaXMubWFwKChzPT5gIiR7U3RyaW5nKHMpfSJgKSkuam9pbigiLCAiKX19O2NvbnN0IEFwPWNsYXNzIFRyYWNlIGV4dGVuZHMgYnB7aW5mZXJFeHBlY3RhdGlvbnMoKXtjb25zdCBzPXRoaXMuZGlzcGxheVRyYWNlKCkuc3BsaXQoIlxuIiksbz1uZXcgU2V0O2xldCBpPS0xO2ZvcihsZXQgYT0wO2E8cy5sZW5ndGg7YSsrKXtjb25zdCB1PXNbYV07aWYodS5pbmNsdWRlcygiTXwiKSl7Y29uc3Qgcz11Lm1hdGNoKC9dJyguKiknJC8pO3MmJnNbMV0mJihpPWEpfWlmKGE+aSl7Y29uc3Qgcz11Lm1hdGNoKC9OXHxcW1RMU1woKFteKV0rKVwpXS8pO3MmJm8uYWRkKHNbMV0pfX1yZXR1cm4gbmV3IENwKC4uLm8pfX0sanA9bmV3IGdyYW1tYXIsZXNfcGFyc2U9KHMse3RyYW5zbGF0b3I6bz1uZXcgT3Asc3RhdHM6aT0hMSx0cmFjZTphPSExfT17fSk9PntpZigic3RyaW5nIiE9dHlwZW9mIHMpdGhyb3cgbmV3IFR5cGVFcnJvcigiSlNPTiBQb2ludGVyIG11c3QgYmUgYSBzdHJpbmciKTt0cnl7Y29uc3QgdT1uZXcgeXA7byYmKHUuYXN0PW8pLGkmJih1LnN0YXRzPW5ldyBfcCksYSYmKHUudHJhY2U9bmV3IEFwKTtjb25zdCBfPXUucGFyc2UoanAsImpzb24tcG9pbnRlciIscyk7cmV0dXJue3Jlc3VsdDpfLHRyZWU6Xy5zdWNjZXNzJiZvP3UuYXN0LmdldFRyZWUoKTp2b2lkIDAsc3RhdHM6dS5zdGF0cyx0cmFjZTp1LnRyYWNlfX1jYXRjaChvKXt0aHJvdyBuZXcgeHAoIlVuZXhwZWN0ZWQgZXJyb3IgZHVyaW5nIEpTT04gUG9pbnRlciBwYXJzaW5nIix7Y2F1c2U6byxqc29uUG9pbnRlcjpzfSl9fTtuZXcgZ3JhbW1hcixuZXcgeXAsbmV3IGdyYW1tYXIsbmV3IHlwO2NvbnN0IFBwPW5ldyBncmFtbWFyLElwPW5ldyB5cCxhcnJheV9pbmRleD1zPT57aWYoInN0cmluZyIhPXR5cGVvZiBzKXJldHVybiExO3RyeXtyZXR1cm4gSXAucGFyc2UoUHAsImFycmF5LWluZGV4IixzKS5zdWNjZXNzfWNhdGNoe3JldHVybiExfX0sVHA9bmV3IGdyYW1tYXIsTnA9bmV3IHlwLGFycmF5X2Rhc2g9cz0+e2lmKCJzdHJpbmciIT10eXBlb2YgcylyZXR1cm4hMTt0cnl7cmV0dXJuIE5wLnBhcnNlKFRwLCJhcnJheS1kYXNoIixzKS5zdWNjZXNzfWNhdGNoe3JldHVybiExfX0sZXNfZXNjYXBlPXM9PntpZigic3RyaW5nIiE9dHlwZW9mIHMmJiJudW1iZXIiIT10eXBlb2Ygcyl0aHJvdyBuZXcgVHlwZUVycm9yKCJSZWZlcmVuY2UgdG9rZW4gbXVzdCBiZSBhIHN0cmluZyBvciBudW1iZXIiKTtyZXR1cm4gU3RyaW5nKHMpLnJlcGxhY2UoL34vZywifjAiKS5yZXBsYWNlKC9cLy9nLCJ+MSIpfTtjb25zdCBNcD1jbGFzcyBKU09OUG9pbnRlckNvbXBpbGVFcnJvciBleHRlbmRzIHdwe30sZXNfY29tcGlsZT1zPT57aWYoIUFycmF5LmlzQXJyYXkocykpdGhyb3cgbmV3IFR5cGVFcnJvcigiUmVmZXJlbmNlIHRva2VucyBtdXN0IGJlIGEgbGlzdCBvZiBzdHJpbmdzIG9yIG51bWJlcnMiKTt0cnl7cmV0dXJuIDA9PT1zLmxlbmd0aD8iIjpgLyR7cy5tYXAoKHM9PntpZigic3RyaW5nIiE9dHlwZW9mIHMmJiJudW1iZXIiIT10eXBlb2Ygcyl0aHJvdyBuZXcgVHlwZUVycm9yKCJSZWZlcmVuY2UgdG9rZW4gbXVzdCBiZSBhIHN0cmluZyBvciBudW1iZXIiKTtyZXR1cm4gZXNfZXNjYXBlKFN0cmluZyhzKSl9KSkuam9pbigiLyIpfWB9Y2F0Y2gobyl7dGhyb3cgbmV3IE1wKCJVbmV4cGVjdGVkIGVycm9yIGR1cmluZyBKU09OIFBvaW50ZXIgY29tcGlsYXRpb24iLHtjYXVzZTpvLHJlZmVyZW5jZVRva2VuczpzfSl9fTtjb25zdCBScD1jbGFzcyBUcmFjZUJ1aWxkZXJ7I2U7I3Q7I3I7Y29uc3RydWN0b3IocyxvPXt9KXt0aGlzLiNlPXMsdGhpcy4jZS5zdGVwcz1bXSx0aGlzLiNlLmZhaWxlZD0hMSx0aGlzLiNlLmZhaWxlZEF0PS0xLHRoaXMuI2UubWVzc2FnZT1gSlNPTiBQb2ludGVyICIke28uanNvblBvaW50ZXJ9IiB3YXMgc3VjY2Vzc2Z1bGx5IGV2YWx1YXRlZCBhZ2FpbnN0IHRoZSBwcm92aWRlZCB2YWx1ZWAsdGhpcy4jZS5jb250ZXh0PXsuLi5vLHJlYWxtOm8ucmVhbG0ubmFtZX0sdGhpcy4jdD1bXSx0aGlzLiNyPW8ucmVhbG19c3RlcCh7cmVmZXJlbmNlVG9rZW46cyxpbnB1dDpvLG91dHB1dDppLHN1Y2Nlc3M6YT0hMCxyZWFzb246dX0pe2NvbnN0IF89dGhpcy4jdC5sZW5ndGg7dGhpcy4jdC5wdXNoKHMpO2NvbnN0IHc9e3JlZmVyZW5jZVRva2VuOnMscmVmZXJlbmNlVG9rZW5Qb3NpdGlvbjpfLGlucHV0Om8saW5wdXRUeXBlOnRoaXMuI3IuaXNPYmplY3Qobyk/Im9iamVjdCI6dGhpcy4jci5pc0FycmF5KG8pPyJhcnJheSI6InVucmVjb2duaXplZCIsb3V0cHV0Omksc3VjY2VzczphfTt1JiYody5yZWFzb249dSksdGhpcy4jZS5zdGVwcy5wdXNoKHcpLGF8fCh0aGlzLiNlLmZhaWxlZD0hMCx0aGlzLiNlLmZhaWxlZEF0PV8sdGhpcy4jZS5tZXNzYWdlPXUpfX07Y29uc3QgRHA9Y2xhc3MgRXZhbHVhdGlvblJlYWxte25hbWU9IiI7aXNBcnJheShzKXt0aHJvdyBuZXcgd3AoIlJlYWxtLmlzQXJyYXkobm9kZSkgbXVzdCBiZSBpbXBsZW1lbnRlZCBpbiBhIHN1YmNsYXNzIil9aXNPYmplY3Qocyl7dGhyb3cgbmV3IHdwKCJSZWFsbS5pc09iamVjdChub2RlKSBtdXN0IGJlIGltcGxlbWVudGVkIGluIGEgc3ViY2xhc3MiKX1zaXplT2Yocyl7dGhyb3cgbmV3IHdwKCJSZWFsbS5zaXplT2Yobm9kZSkgbXVzdCBiZSBpbXBsZW1lbnRlZCBpbiBhIHN1YmNsYXNzIil9aGFzKHMsbyl7dGhyb3cgbmV3IHdwKCJSZWFsbS5oYXMobm9kZSkgbXVzdCBiZSBpbXBsZW1lbnRlZCBpbiBhIHN1YmNsYXNzIil9ZXZhbHVhdGUocyxvKXt0aHJvdyBuZXcgd3AoIlJlYWxtLmV2YWx1YXRlKG5vZGUpIG11c3QgYmUgaW1wbGVtZW50ZWQgaW4gYSBzdWJjbGFzcyIpfX07Y29uc3QgTHA9Y2xhc3MgSlNPTlBvaW50ZXJFdmFsdWF0ZUVycm9yIGV4dGVuZHMgd3B7fTtjb25zdCBGcD1jbGFzcyBKU09OUG9pbnRlckluZGV4RXJyb3IgZXh0ZW5kcyBMcHt9O2NvbnN0IEJwPWNsYXNzIEpTT05FdmFsdWF0aW9uUmVhbG0gZXh0ZW5kcyBEcHtuYW1lPSJqc29uIjtpc0FycmF5KHMpe3JldHVybiBBcnJheS5pc0FycmF5KHMpfWlzT2JqZWN0KHMpe3JldHVybiJvYmplY3QiPT10eXBlb2YgcyYmbnVsbCE9PXMmJiF0aGlzLmlzQXJyYXkocyl9c2l6ZU9mKHMpe3JldHVybiB0aGlzLmlzQXJyYXkocyk/cy5sZW5ndGg6dGhpcy5pc09iamVjdChzKT9PYmplY3Qua2V5cyhzKS5sZW5ndGg6MH1oYXMocyxvKXtpZih0aGlzLmlzQXJyYXkocykpe2NvbnN0IGk9TnVtYmVyKG8pLGE9aT4+PjA7aWYoaSE9PWEpdGhyb3cgbmV3IEZwKGBJbnZhbGlkIGFycmF5IGluZGV4ICIke299IjogaW5kZXggbXVzdCBiZSBhbiB1bnNpbmdlZCAzMi1iaXQgaW50ZWdlcmAse3JlZmVyZW5jZVRva2VuOm8sY3VycmVudFZhbHVlOnMscmVhbG06dGhpcy5uYW1lfSk7cmV0dXJuIGE8dGhpcy5zaXplT2YocykmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLGkpfXJldHVybiEhdGhpcy5pc09iamVjdChzKSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsbyl9ZXZhbHVhdGUocyxvKXtyZXR1cm4gdGhpcy5pc0FycmF5KHMpP3NbTnVtYmVyKG8pXTpzW29dfX07Y29uc3QgJHA9Y2xhc3MgSlNPTlBvaW50ZXJUeXBlRXJyb3IgZXh0ZW5kcyBMcHt9O2NvbnN0IHFwPWNsYXNzIEpTT05Qb2ludGVyS2V5RXJyb3IgZXh0ZW5kcyBMcHt9LGVzX2V2YWx1YXRlPShzLG8se3N0cmljdEFycmF5czppPSEwLHN0cmljdE9iamVjdHM6YT0hMCxyZWFsbTp1PW5ldyBCcCx0cmFjZTpfPSEwfT17fSk9Pntjb25zdHtyZXN1bHQ6dyx0cmVlOngsdHJhY2U6Q309ZXNfcGFyc2Uobyx7dHJhY2U6ISFffSksaj0ib2JqZWN0Ij09dHlwZW9mIF8mJm51bGwhPT1fP25ldyBScChfLHtqc29uUG9pbnRlcjpvLHJlZmVyZW5jZVRva2Vuczp4LHN0cmljdEFycmF5czppLHN0cmljdE9iamVjdHM6YSxyZWFsbTp1LHZhbHVlOnN9KTpudWxsO3RyeXtsZXQgXztpZighdy5zdWNjZXNzKXtsZXQgaT1gSW52YWxpZCBKU09OIFBvaW50ZXI6ICIke299Ii4gU3ludGF4IGVycm9yIGF0IHBvc2l0aW9uICR7dy5tYXhNYXRjaGVkfWA7dGhyb3cgaSs9Qz9gLCBleHBlY3RlZCAke0MuaW5mZXJFeHBlY3RhdGlvbnMoKX1gOiIiLG5ldyBMcChpLHtqc29uUG9pbnRlcjpvLGN1cnJlbnRWYWx1ZTpzLHJlYWxtOnUubmFtZX0pfXJldHVybiB4LnJlZHVjZSgoKHMsdyxDKT0+e2lmKHUuaXNBcnJheShzKSl7aWYoYXJyYXlfZGFzaCh3KSl7aWYoaSl0aHJvdyBuZXcgRnAoYEludmFsaWQgYXJyYXkgaW5kZXggIi0iIGF0IHBvc2l0aW9uICR7Q30gaW4gIiR7b30iLiBUaGUgIi0iIHRva2VuIGFsd2F5cyByZWZlcnMgdG8gYSBub25leGlzdGVudCBlbGVtZW50IGR1cmluZyBldmFsdWF0aW9uYCx7anNvblBvaW50ZXI6byxyZWZlcmVuY2VUb2tlbnM6eCxyZWZlcmVuY2VUb2tlbjp3LHJlZmVyZW5jZVRva2VuUG9zaXRpb246QyxjdXJyZW50VmFsdWU6cyxyZWFsbTp1Lm5hbWV9KTtyZXR1cm4gXz11LmV2YWx1YXRlKHMsU3RyaW5nKHUuc2l6ZU9mKHMpKSksbnVsbD09anx8ai5zdGVwKHtyZWZlcmVuY2VUb2tlbjp3LGlucHV0OnMsb3V0cHV0Ol99KSxffWlmKCFhcnJheV9pbmRleCh3KSl0aHJvdyBuZXcgRnAoYEludmFsaWQgYXJyYXkgaW5kZXggIiR7d30iIGF0IHBvc2l0aW9uICR7Q30gaW4gIiR7b30iOiBpbmRleCBNVVNUIGJlICIwIiwgb3IgZGlnaXRzIHdpdGhvdXQgYSBsZWFkaW5nICIwImAse2pzb25Qb2ludGVyOm8scmVmZXJlbmNlVG9rZW5zOngscmVmZXJlbmNlVG9rZW46dyxyZWZlcmVuY2VUb2tlblBvc2l0aW9uOkMsY3VycmVudFZhbHVlOnMscmVhbG06dS5uYW1lfSk7Y29uc3QgYT1OdW1iZXIodyk7aWYoIU51bWJlci5pc1NhZmVJbnRlZ2VyKGEpKXRocm93IG5ldyBGcChgSW52YWxpZCBhcnJheSBpbmRleCAiJHt3fSIgYXQgcG9zaXRpb24gJHtDfSBpbiAiJHtvfSI6IGluZGV4IG11c3QgYmUgYSBzYWZlIGludGVnZXJgLHtqc29uUG9pbnRlcjpvLHJlZmVyZW5jZVRva2Vuczp4LHJlZmVyZW5jZVRva2VuOncscmVmZXJlbmNlVG9rZW5Qb3NpdGlvbjpDLGN1cnJlbnRWYWx1ZTpzLHJlYWxtOnUubmFtZX0pO2lmKCF1LmhhcyhzLHcpJiZpKXRocm93IG5ldyBGcChgSW52YWxpZCBhcnJheSBpbmRleCAiJHt3fSIgYXQgcG9zaXRpb24gJHtDfSBpbiAiJHtvfSI6IGluZGV4IG5vdCBmb3VuZCBpbiBhcnJheWAse2pzb25Qb2ludGVyOm8scmVmZXJlbmNlVG9rZW5zOngscmVmZXJlbmNlVG9rZW46dyxyZWZlcmVuY2VUb2tlblBvc2l0aW9uOkMsY3VycmVudFZhbHVlOnMscmVhbG06dS5uYW1lfSk7cmV0dXJuIF89dS5ldmFsdWF0ZShzLHcpLG51bGw9PWp8fGouc3RlcCh7cmVmZXJlbmNlVG9rZW46dyxpbnB1dDpzLG91dHB1dDpffSksX31pZih1LmlzT2JqZWN0KHMpKXtpZighdS5oYXMocyx3KSYmYSl0aHJvdyBuZXcgcXAoYEludmFsaWQgb2JqZWN0IGtleSAiJHt3fSIgYXQgcG9zaXRpb24gJHtDfSBpbiAiJHtvfSI6IGtleSBub3QgZm91bmQgaW4gb2JqZWN0YCx7anNvblBvaW50ZXI6byxyZWZlcmVuY2VUb2tlbnM6eCxyZWZlcmVuY2VUb2tlbjp3LHJlZmVyZW5jZVRva2VuUG9zaXRpb246QyxjdXJyZW50VmFsdWU6cyxyZWFsbTp1Lm5hbWV9KTtyZXR1cm4gXz11LmV2YWx1YXRlKHMsdyksbnVsbD09anx8ai5zdGVwKHtyZWZlcmVuY2VUb2tlbjp3LGlucHV0OnMsb3V0cHV0Ol99KSxffXRocm93IG5ldyAkcChgSW52YWxpZCByZWZlcmVuY2UgdG9rZW4gIiR7d30iIGF0IHBvc2l0aW9uICR7Q30gaW4gIiR7b30iOiBjYW5ub3QgYmUgYXBwbGllZCB0byBhIG5vbi1vYmplY3Qvbm9uLWFycmF5IHZhbHVlYCx7anNvblBvaW50ZXI6byxyZWZlcmVuY2VUb2tlbnM6eCxyZWZlcmVuY2VUb2tlbjp3LHJlZmVyZW5jZVRva2VuUG9zaXRpb246QyxjdXJyZW50VmFsdWU6cyxyZWFsbTp1Lm5hbWV9KX0pLHMpfWNhdGNoKHMpe2lmKG51bGw9PWp8fGouc3RlcCh7cmVmZXJlbmNlVG9rZW46cy5yZWZlcmVuY2VUb2tlbixpbnB1dDpzLmN1cnJlbnRWYWx1ZSxzdWNjZXNzOiExLHJlYXNvbjpzLm1lc3NhZ2V9KSxzIGluc3RhbmNlb2YgTHApdGhyb3cgczt0aHJvdyBuZXcgTHAoIlVuZXhwZWN0ZWQgZXJyb3IgZHVyaW5nIEpTT04gUG9pbnRlciBldmFsdWF0aW9uIix7Y2F1c2U6cyxqc29uUG9pbnRlcjpvLHJlZmVyZW5jZVRva2Vuczp4fSl9fTtjb25zdCBWcD1jbGFzcyBBcGlET01FdmFsdWF0aW9uUmVhbG0gZXh0ZW5kcyBEcHtuYW1lPSJhcGlkb20iO2lzQXJyYXkocyl7cmV0dXJuIFJ1KHMpfWlzT2JqZWN0KHMpe3JldHVybiBNdShzKX1zaXplT2Yocyl7cmV0dXJuIHRoaXMuaXNBcnJheShzKXx8dGhpcy5pc09iamVjdChzKT9zLmxlbmd0aDowfWhhcyhzLG8pe2lmKHRoaXMuaXNBcnJheShzKSl7Y29uc3QgaT1OdW1iZXIobyksYT1pPj4+MDtpZihpIT09YSl0aHJvdyBuZXcgRnAoYEludmFsaWQgYXJyYXkgaW5kZXggIiR7b30iOiBpbmRleCBtdXN0IGJlIGFuIHVuc2luZ2VkIDMyLWJpdCBpbnRlZ2VyYCx7cmVmZXJlbmNlVG9rZW46byxjdXJyZW50VmFsdWU6cyxyZWFsbTp0aGlzLm5hbWV9KTtyZXR1cm4gYTx0aGlzLnNpemVPZihzKX1pZih0aGlzLmlzT2JqZWN0KHMpKXtjb25zdCBpPXMua2V5cygpLGE9bmV3IFNldChpKTtpZihpLmxlbmd0aCE9PWEuc2l6ZSl0aHJvdyBuZXcgcXAoYE9iamVjdCBrZXkgIiR7b30iIGlzIG5vdCB1bmlxdWUg4oCUIEpTT04gUG9pbnRlciByZXF1aXJlcyB1bmlxdWUgbWVtYmVyIG5hbWVzYCx7cmVmZXJlbmNlVG9rZW46byxjdXJyZW50VmFsdWU6cyxyZWFsbTp0aGlzLm5hbWV9KTtyZXR1cm4gcy5oYXNLZXkobyl9cmV0dXJuITF9ZXZhbHVhdGUocyxvKXtyZXR1cm4gdGhpcy5pc0FycmF5KHMpP3MuZ2V0KE51bWJlcihvKSk6cy5nZXQobyl9fSxhcGlkb21fZXZhbHVhdGU9KHMsbyxpPXt9KT0+ZXNfZXZhbHVhdGUocyxvLHsuLi5pLHJlYWxtOm5ldyBWcH0pO2NsYXNzIENhbGxiYWNrIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9ImNhbGxiYWNrIn19Y29uc3QgVXA9Q2FsbGJhY2s7Y2xhc3MgQ29tcG9uZW50cyBleHRlbmRzIFN1LlNoe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJjb21wb25lbnRzIn1nZXQgc2NoZW1hcygpe3JldHVybiB0aGlzLmdldCgic2NoZW1hcyIpfXNldCBzY2hlbWFzKHMpe3RoaXMuc2V0KCJzY2hlbWFzIixzKX1nZXQgcmVzcG9uc2VzKCl7cmV0dXJuIHRoaXMuZ2V0KCJyZXNwb25zZXMiKX1zZXQgcmVzcG9uc2VzKHMpe3RoaXMuc2V0KCJyZXNwb25zZXMiLHMpfWdldCBwYXJhbWV0ZXJzKCl7cmV0dXJuIHRoaXMuZ2V0KCJwYXJhbWV0ZXJzIil9c2V0IHBhcmFtZXRlcnMocyl7dGhpcy5zZXQoInBhcmFtZXRlcnMiLHMpfWdldCBleGFtcGxlcygpe3JldHVybiB0aGlzLmdldCgiZXhhbXBsZXMiKX1zZXQgZXhhbXBsZXMocyl7dGhpcy5zZXQoImV4YW1wbGVzIixzKX1nZXQgcmVxdWVzdEJvZGllcygpe3JldHVybiB0aGlzLmdldCgicmVxdWVzdEJvZGllcyIpfXNldCByZXF1ZXN0Qm9kaWVzKHMpe3RoaXMuc2V0KCJyZXF1ZXN0Qm9kaWVzIixzKX1nZXQgaGVhZGVycygpe3JldHVybiB0aGlzLmdldCgiaGVhZGVycyIpfXNldCBoZWFkZXJzKHMpe3RoaXMuc2V0KCJoZWFkZXJzIixzKX1nZXQgc2VjdXJpdHlTY2hlbWVzKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZWN1cml0eVNjaGVtZXMiKX1zZXQgc2VjdXJpdHlTY2hlbWVzKHMpe3RoaXMuc2V0KCJzZWN1cml0eVNjaGVtZXMiLHMpfWdldCBsaW5rcygpe3JldHVybiB0aGlzLmdldCgibGlua3MiKX1zZXQgbGlua3Mocyl7dGhpcy5zZXQoImxpbmtzIixzKX1nZXQgY2FsbGJhY2tzKCl7cmV0dXJuIHRoaXMuZ2V0KCJjYWxsYmFja3MiKX1zZXQgY2FsbGJhY2tzKHMpe3RoaXMuc2V0KCJjYWxsYmFja3MiLHMpfX1jb25zdCB6cD1Db21wb25lbnRzO2NsYXNzIENvbnRhY3QgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0iY29udGFjdCJ9Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5nZXQoIm5hbWUiKX1zZXQgbmFtZShzKXt0aGlzLnNldCgibmFtZSIscyl9Z2V0IHVybCgpe3JldHVybiB0aGlzLmdldCgidXJsIil9c2V0IHVybChzKXt0aGlzLnNldCgidXJsIixzKX1nZXQgZW1haWwoKXtyZXR1cm4gdGhpcy5nZXQoImVtYWlsIil9c2V0IGVtYWlsKHMpe3RoaXMuc2V0KCJlbWFpbCIscyl9fWNvbnN0IFdwPUNvbnRhY3Q7Y2xhc3MgRGlzY3JpbWluYXRvciBleHRlbmRzIFN1LlNoe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJkaXNjcmltaW5hdG9yIn1nZXQgcHJvcGVydHlOYW1lKCl7cmV0dXJuIHRoaXMuZ2V0KCJwcm9wZXJ0eU5hbWUiKX1zZXQgcHJvcGVydHlOYW1lKHMpe3RoaXMuc2V0KCJwcm9wZXJ0eU5hbWUiLHMpfWdldCBtYXBwaW5nKCl7cmV0dXJuIHRoaXMuZ2V0KCJtYXBwaW5nIil9c2V0IG1hcHBpbmcocyl7dGhpcy5zZXQoIm1hcHBpbmciLHMpfX1jb25zdCBKcD1EaXNjcmltaW5hdG9yO2NsYXNzIEVuY29kaW5nIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9ImVuY29kaW5nIn1nZXQgY29udGVudFR5cGUoKXtyZXR1cm4gdGhpcy5nZXQoImNvbnRlbnRUeXBlIil9c2V0IGNvbnRlbnRUeXBlKHMpe3RoaXMuc2V0KCJjb250ZW50VHlwZSIscyl9Z2V0IGhlYWRlcnMoKXtyZXR1cm4gdGhpcy5nZXQoImhlYWRlcnMiKX1zZXQgaGVhZGVycyhzKXt0aGlzLnNldCgiaGVhZGVycyIscyl9Z2V0IHN0eWxlKCl7cmV0dXJuIHRoaXMuZ2V0KCJzdHlsZSIpfXNldCBzdHlsZShzKXt0aGlzLnNldCgic3R5bGUiLHMpfWdldCBleHBsb2RlKCl7cmV0dXJuIHRoaXMuZ2V0KCJleHBsb2RlIil9c2V0IGV4cGxvZGUocyl7dGhpcy5zZXQoImV4cGxvZGUiLHMpfWdldCBhbGxvd2VkUmVzZXJ2ZWQoKXtyZXR1cm4gdGhpcy5nZXQoImFsbG93ZWRSZXNlcnZlZCIpfXNldCBhbGxvd2VkUmVzZXJ2ZWQocyl7dGhpcy5zZXQoImFsbG93ZWRSZXNlcnZlZCIscyl9fWNvbnN0IEhwPUVuY29kaW5nO2NsYXNzIEV4YW1wbGUgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0iZXhhbXBsZSJ9Z2V0IHN1bW1hcnkoKXtyZXR1cm4gdGhpcy5nZXQoInN1bW1hcnkiKX1zZXQgc3VtbWFyeShzKXt0aGlzLnNldCgic3VtbWFyeSIscyl9Z2V0IGRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJkZXNjcmlwdGlvbiIpfXNldCBkZXNjcmlwdGlvbihzKXt0aGlzLnNldCgiZGVzY3JpcHRpb24iLHMpfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLmdldCgidmFsdWUiKX1zZXQgdmFsdWUocyl7dGhpcy5zZXQoInZhbHVlIixzKX1nZXQgZXh0ZXJuYWxWYWx1ZSgpe3JldHVybiB0aGlzLmdldCgiZXh0ZXJuYWxWYWx1ZSIpfXNldCBleHRlcm5hbFZhbHVlKHMpe3RoaXMuc2V0KCJleHRlcm5hbFZhbHVlIixzKX19Y29uc3QgS3A9RXhhbXBsZTtjbGFzcyBFeHRlcm5hbERvY3VtZW50YXRpb24gZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0iZXh0ZXJuYWxEb2N1bWVudGF0aW9uIn1nZXQgZGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy5nZXQoImRlc2NyaXB0aW9uIil9c2V0IGRlc2NyaXB0aW9uKHMpe3RoaXMuc2V0KCJkZXNjcmlwdGlvbiIscyl9Z2V0IHVybCgpe3JldHVybiB0aGlzLmdldCgidXJsIil9c2V0IHVybChzKXt0aGlzLnNldCgidXJsIixzKX19Y29uc3QgR3A9RXh0ZXJuYWxEb2N1bWVudGF0aW9uO2NsYXNzIEhlYWRlciBleHRlbmRzIFN1LlNoe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJoZWFkZXIifWdldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLmhhc0tleSgicmVxdWlyZWQiKT90aGlzLmdldCgicmVxdWlyZWQiKTpuZXcgU3UuYmQoITEpfXNldCByZXF1aXJlZChzKXt0aGlzLnNldCgicmVxdWlyZWQiLHMpfWdldCBkZXByZWNhdGVkKCl7cmV0dXJuIHRoaXMuaGFzS2V5KCJkZXByZWNhdGVkIik/dGhpcy5nZXQoImRlcHJlY2F0ZWQiKTpuZXcgU3UuYmQoITEpfXNldCBkZXByZWNhdGVkKHMpe3RoaXMuc2V0KCJkZXByZWNhdGVkIixzKX1nZXQgYWxsb3dFbXB0eVZhbHVlKCl7cmV0dXJuIHRoaXMuZ2V0KCJhbGxvd0VtcHR5VmFsdWUiKX1zZXQgYWxsb3dFbXB0eVZhbHVlKHMpe3RoaXMuc2V0KCJhbGxvd0VtcHR5VmFsdWUiLHMpfWdldCBzdHlsZSgpe3JldHVybiB0aGlzLmdldCgic3R5bGUiKX1zZXQgc3R5bGUocyl7dGhpcy5zZXQoInN0eWxlIixzKX1nZXQgZXhwbG9kZSgpe3JldHVybiB0aGlzLmdldCgiZXhwbG9kZSIpfXNldCBleHBsb2RlKHMpe3RoaXMuc2V0KCJleHBsb2RlIixzKX1nZXQgYWxsb3dSZXNlcnZlZCgpe3JldHVybiB0aGlzLmdldCgiYWxsb3dSZXNlcnZlZCIpfXNldCBhbGxvd1Jlc2VydmVkKHMpe3RoaXMuc2V0KCJhbGxvd1Jlc2VydmVkIixzKX1nZXQgc2NoZW1hKCl7cmV0dXJuIHRoaXMuZ2V0KCJzY2hlbWEiKX1zZXQgc2NoZW1hKHMpe3RoaXMuc2V0KCJzY2hlbWEiLHMpfWdldCBleGFtcGxlKCl7cmV0dXJuIHRoaXMuZ2V0KCJleGFtcGxlIil9c2V0IGV4YW1wbGUocyl7dGhpcy5zZXQoImV4YW1wbGUiLHMpfWdldCBleGFtcGxlcygpe3JldHVybiB0aGlzLmdldCgiZXhhbXBsZXMiKX1zZXQgZXhhbXBsZXMocyl7dGhpcy5zZXQoImV4YW1wbGVzIixzKX1nZXQgY29udGVudFByb3AoKXtyZXR1cm4gdGhpcy5nZXQoImNvbnRlbnQiKX1zZXQgY29udGVudFByb3Aocyl7dGhpcy5zZXQoImNvbnRlbnQiLHMpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoSGVhZGVyLnByb3RvdHlwZSwiZGVzY3JpcHRpb24iLHtnZXQoKXtyZXR1cm4gdGhpcy5nZXQoImRlc2NyaXB0aW9uIil9LHNldChzKXt0aGlzLnNldCgiZGVzY3JpcHRpb24iLHMpfSxlbnVtZXJhYmxlOiEwfSk7Y29uc3QgWXA9SGVhZGVyO2NsYXNzIEluZm8gZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0iaW5mbyIsdGhpcy5jbGFzc2VzLnB1c2goImluZm8iKX1nZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy5nZXQoInRpdGxlIil9c2V0IHRpdGxlKHMpe3RoaXMuc2V0KCJ0aXRsZSIscyl9Z2V0IGRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJkZXNjcmlwdGlvbiIpfXNldCBkZXNjcmlwdGlvbihzKXt0aGlzLnNldCgiZGVzY3JpcHRpb24iLHMpfWdldCB0ZXJtc09mU2VydmljZSgpe3JldHVybiB0aGlzLmdldCgidGVybXNPZlNlcnZpY2UiKX1zZXQgdGVybXNPZlNlcnZpY2Uocyl7dGhpcy5zZXQoInRlcm1zT2ZTZXJ2aWNlIixzKX1nZXQgY29udGFjdCgpe3JldHVybiB0aGlzLmdldCgiY29udGFjdCIpfXNldCBjb250YWN0KHMpe3RoaXMuc2V0KCJjb250YWN0IixzKX1nZXQgbGljZW5zZSgpe3JldHVybiB0aGlzLmdldCgibGljZW5zZSIpfXNldCBsaWNlbnNlKHMpe3RoaXMuc2V0KCJsaWNlbnNlIixzKX1nZXQgdmVyc2lvbigpe3JldHVybiB0aGlzLmdldCgidmVyc2lvbiIpfXNldCB2ZXJzaW9uKHMpe3RoaXMuc2V0KCJ2ZXJzaW9uIixzKX19Y29uc3QgWHA9SW5mbztjbGFzcyBMaWNlbnNlIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9ImxpY2Vuc2UifWdldCBuYW1lKCl7cmV0dXJuIHRoaXMuZ2V0KCJuYW1lIil9c2V0IG5hbWUocyl7dGhpcy5zZXQoIm5hbWUiLHMpfWdldCB1cmwoKXtyZXR1cm4gdGhpcy5nZXQoInVybCIpfXNldCB1cmwocyl7dGhpcy5zZXQoInVybCIscyl9fWNvbnN0IFFwPUxpY2Vuc2U7Y2xhc3MgTGluayBleHRlbmRzIFN1LlNoe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJsaW5rIn1nZXQgb3BlcmF0aW9uUmVmKCl7cmV0dXJuIHRoaXMuZ2V0KCJvcGVyYXRpb25SZWYiKX1zZXQgb3BlcmF0aW9uUmVmKHMpe3RoaXMuc2V0KCJvcGVyYXRpb25SZWYiLHMpfWdldCBvcGVyYXRpb25JZCgpe3JldHVybiB0aGlzLmdldCgib3BlcmF0aW9uSWQiKX1zZXQgb3BlcmF0aW9uSWQocyl7dGhpcy5zZXQoIm9wZXJhdGlvbklkIixzKX1nZXQgb3BlcmF0aW9uKCl7dmFyIHMsbztyZXR1cm4gUHUodGhpcy5vcGVyYXRpb25SZWYpP251bGw9PT0ocz10aGlzLm9wZXJhdGlvblJlZil8fHZvaWQgMD09PXM/dm9pZCAwOnMubWV0YS5nZXQoIm9wZXJhdGlvbiIpOlB1KHRoaXMub3BlcmF0aW9uSWQpP251bGw9PT0obz10aGlzLm9wZXJhdGlvbklkKXx8dm9pZCAwPT09bz92b2lkIDA6by5tZXRhLmdldCgib3BlcmF0aW9uIik6dm9pZCAwfXNldCBvcGVyYXRpb24ocyl7dGhpcy5zZXQoIm9wZXJhdGlvbiIscyl9Z2V0IHBhcmFtZXRlcnMoKXtyZXR1cm4gdGhpcy5nZXQoInBhcmFtZXRlcnMiKX1zZXQgcGFyYW1ldGVycyhzKXt0aGlzLnNldCgicGFyYW1ldGVycyIscyl9Z2V0IHJlcXVlc3RCb2R5KCl7cmV0dXJuIHRoaXMuZ2V0KCJyZXF1ZXN0Qm9keSIpfXNldCByZXF1ZXN0Qm9keShzKXt0aGlzLnNldCgicmVxdWVzdEJvZHkiLHMpfWdldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLmdldCgiZGVzY3JpcHRpb24iKX1zZXQgZGVzY3JpcHRpb24ocyl7dGhpcy5zZXQoImRlc2NyaXB0aW9uIixzKX1nZXQgc2VydmVyKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZXJ2ZXIiKX1zZXQgc2VydmVyKHMpe3RoaXMuc2V0KCJzZXJ2ZXIiLHMpfX1jb25zdCBacD1MaW5rO2NsYXNzIE1lZGlhVHlwZSBleHRlbmRzIFN1LlNoe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJtZWRpYVR5cGUifWdldCBzY2hlbWEoKXtyZXR1cm4gdGhpcy5nZXQoInNjaGVtYSIpfXNldCBzY2hlbWEocyl7dGhpcy5zZXQoInNjaGVtYSIscyl9Z2V0IGV4YW1wbGUoKXtyZXR1cm4gdGhpcy5nZXQoImV4YW1wbGUiKX1zZXQgZXhhbXBsZShzKXt0aGlzLnNldCgiZXhhbXBsZSIscyl9Z2V0IGV4YW1wbGVzKCl7cmV0dXJuIHRoaXMuZ2V0KCJleGFtcGxlcyIpfXNldCBleGFtcGxlcyhzKXt0aGlzLnNldCgiZXhhbXBsZXMiLHMpfWdldCBlbmNvZGluZygpe3JldHVybiB0aGlzLmdldCgiZW5jb2RpbmciKX1zZXQgZW5jb2Rpbmcocyl7dGhpcy5zZXQoImVuY29kaW5nIixzKX19Y29uc3QgdGg9TWVkaWFUeXBlO2NsYXNzIE9BdXRoRmxvdyBleHRlbmRzIFN1LlNoe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJvQXV0aEZsb3cifWdldCBhdXRob3JpemF0aW9uVXJsKCl7cmV0dXJuIHRoaXMuZ2V0KCJhdXRob3JpemF0aW9uVXJsIil9c2V0IGF1dGhvcml6YXRpb25Vcmwocyl7dGhpcy5zZXQoImF1dGhvcml6YXRpb25VcmwiLHMpfWdldCB0b2tlblVybCgpe3JldHVybiB0aGlzLmdldCgidG9rZW5VcmwiKX1zZXQgdG9rZW5Vcmwocyl7dGhpcy5zZXQoInRva2VuVXJsIixzKX1nZXQgcmVmcmVzaFVybCgpe3JldHVybiB0aGlzLmdldCgicmVmcmVzaFVybCIpfXNldCByZWZyZXNoVXJsKHMpe3RoaXMuc2V0KCJyZWZyZXNoVXJsIixzKX1nZXQgc2NvcGVzKCl7cmV0dXJuIHRoaXMuZ2V0KCJzY29wZXMiKX1zZXQgc2NvcGVzKHMpe3RoaXMuc2V0KCJzY29wZXMiLHMpfX1jb25zdCByaD1PQXV0aEZsb3c7Y2xhc3MgT0F1dGhGbG93cyBleHRlbmRzIFN1LlNoe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJvQXV0aEZsb3dzIn1nZXQgaW1wbGljaXQoKXtyZXR1cm4gdGhpcy5nZXQoImltcGxpY2l0Iil9c2V0IGltcGxpY2l0KHMpe3RoaXMuc2V0KCJpbXBsaWNpdCIscyl9Z2V0IHBhc3N3b3JkKCl7cmV0dXJuIHRoaXMuZ2V0KCJwYXNzd29yZCIpfXNldCBwYXNzd29yZChzKXt0aGlzLnNldCgicGFzc3dvcmQiLHMpfWdldCBjbGllbnRDcmVkZW50aWFscygpe3JldHVybiB0aGlzLmdldCgiY2xpZW50Q3JlZGVudGlhbHMiKX1zZXQgY2xpZW50Q3JlZGVudGlhbHMocyl7dGhpcy5zZXQoImNsaWVudENyZWRlbnRpYWxzIixzKX1nZXQgYXV0aG9yaXphdGlvbkNvZGUoKXtyZXR1cm4gdGhpcy5nZXQoImF1dGhvcml6YXRpb25Db2RlIil9c2V0IGF1dGhvcml6YXRpb25Db2RlKHMpe3RoaXMuc2V0KCJhdXRob3JpemF0aW9uQ29kZSIscyl9fWNvbnN0IHVoPU9BdXRoRmxvd3M7Y2xhc3MgT3BlbmFwaSBleHRlbmRzIFN1Lk9te2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJvcGVuYXBpIix0aGlzLmNsYXNzZXMucHVzaCgic3BlYy12ZXJzaW9uIiksdGhpcy5jbGFzc2VzLnB1c2goInZlcnNpb24iKX19Y29uc3QgZGg9T3BlbmFwaTtjbGFzcyBPcGVuQXBpM18wIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9Im9wZW5BcGkzXzAiLHRoaXMuY2xhc3Nlcy5wdXNoKCJhcGkiKX1nZXQgb3BlbmFwaSgpe3JldHVybiB0aGlzLmdldCgib3BlbmFwaSIpfXNldCBvcGVuYXBpKHMpe3RoaXMuc2V0KCJvcGVuYXBpIixzKX1nZXQgaW5mbygpe3JldHVybiB0aGlzLmdldCgiaW5mbyIpfXNldCBpbmZvKHMpe3RoaXMuc2V0KCJpbmZvIixzKX1nZXQgc2VydmVycygpe3JldHVybiB0aGlzLmdldCgic2VydmVycyIpfXNldCBzZXJ2ZXJzKHMpe3RoaXMuc2V0KCJzZXJ2ZXJzIixzKX1nZXQgcGF0aHMoKXtyZXR1cm4gdGhpcy5nZXQoInBhdGhzIil9c2V0IHBhdGhzKHMpe3RoaXMuc2V0KCJwYXRocyIscyl9Z2V0IGNvbXBvbmVudHMoKXtyZXR1cm4gdGhpcy5nZXQoImNvbXBvbmVudHMiKX1zZXQgY29tcG9uZW50cyhzKXt0aGlzLnNldCgiY29tcG9uZW50cyIscyl9Z2V0IHNlY3VyaXR5KCl7cmV0dXJuIHRoaXMuZ2V0KCJzZWN1cml0eSIpfXNldCBzZWN1cml0eShzKXt0aGlzLnNldCgic2VjdXJpdHkiLHMpfWdldCB0YWdzKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0YWdzIil9c2V0IHRhZ3Mocyl7dGhpcy5zZXQoInRhZ3MiLHMpfWdldCBleHRlcm5hbERvY3MoKXtyZXR1cm4gdGhpcy5nZXQoImV4dGVybmFsRG9jcyIpfXNldCBleHRlcm5hbERvY3Mocyl7dGhpcy5zZXQoImV4dGVybmFsRG9jcyIscyl9fWNvbnN0IGZoPU9wZW5BcGkzXzA7Y2xhc3MgT3BlcmF0aW9uIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9Im9wZXJhdGlvbiJ9Z2V0IHRhZ3MoKXtyZXR1cm4gdGhpcy5nZXQoInRhZ3MiKX1zZXQgdGFncyhzKXt0aGlzLnNldCgidGFncyIscyl9Z2V0IHN1bW1hcnkoKXtyZXR1cm4gdGhpcy5nZXQoInN1bW1hcnkiKX1zZXQgc3VtbWFyeShzKXt0aGlzLnNldCgic3VtbWFyeSIscyl9Z2V0IGRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJkZXNjcmlwdGlvbiIpfXNldCBkZXNjcmlwdGlvbihzKXt0aGlzLnNldCgiZGVzY3JpcHRpb24iLHMpfXNldCBleHRlcm5hbERvY3Mocyl7dGhpcy5zZXQoImV4dGVybmFsRG9jcyIscyl9Z2V0IGV4dGVybmFsRG9jcygpe3JldHVybiB0aGlzLmdldCgiZXh0ZXJuYWxEb2NzIil9Z2V0IG9wZXJhdGlvbklkKCl7cmV0dXJuIHRoaXMuZ2V0KCJvcGVyYXRpb25JZCIpfXNldCBvcGVyYXRpb25JZChzKXt0aGlzLnNldCgib3BlcmF0aW9uSWQiLHMpfWdldCBwYXJhbWV0ZXJzKCl7cmV0dXJuIHRoaXMuZ2V0KCJwYXJhbWV0ZXJzIil9c2V0IHBhcmFtZXRlcnMocyl7dGhpcy5zZXQoInBhcmFtZXRlcnMiLHMpfWdldCByZXF1ZXN0Qm9keSgpe3JldHVybiB0aGlzLmdldCgicmVxdWVzdEJvZHkiKX1zZXQgcmVxdWVzdEJvZHkocyl7dGhpcy5zZXQoInJlcXVlc3RCb2R5IixzKX1nZXQgcmVzcG9uc2VzKCl7cmV0dXJuIHRoaXMuZ2V0KCJyZXNwb25zZXMiKX1zZXQgcmVzcG9uc2VzKHMpe3RoaXMuc2V0KCJyZXNwb25zZXMiLHMpfWdldCBjYWxsYmFja3MoKXtyZXR1cm4gdGhpcy5nZXQoImNhbGxiYWNrcyIpfXNldCBjYWxsYmFja3Mocyl7dGhpcy5zZXQoImNhbGxiYWNrcyIscyl9Z2V0IGRlcHJlY2F0ZWQoKXtyZXR1cm4gdGhpcy5oYXNLZXkoImRlcHJlY2F0ZWQiKT90aGlzLmdldCgiZGVwcmVjYXRlZCIpOm5ldyBTdS5iZCghMSl9c2V0IGRlcHJlY2F0ZWQocyl7dGhpcy5zZXQoImRlcHJlY2F0ZWQiLHMpfWdldCBzZWN1cml0eSgpe3JldHVybiB0aGlzLmdldCgic2VjdXJpdHkiKX1zZXQgc2VjdXJpdHkocyl7dGhpcy5zZXQoInNlY3VyaXR5IixzKX1nZXQgc2VydmVycygpe3JldHVybiB0aGlzLmdldCgic2V2ZXJzIil9c2V0IHNlcnZlcnMocyl7dGhpcy5zZXQoInNlcnZlcnMiLHMpfX1jb25zdCB2aD1PcGVyYXRpb247Y2xhc3MgUGFyYW1ldGVyIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9InBhcmFtZXRlciJ9Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5nZXQoIm5hbWUiKX1zZXQgbmFtZShzKXt0aGlzLnNldCgibmFtZSIscyl9Z2V0IGluKCl7cmV0dXJuIHRoaXMuZ2V0KCJpbiIpfXNldCBpbihzKXt0aGlzLnNldCgiaW4iLHMpfWdldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLmhhc0tleSgicmVxdWlyZWQiKT90aGlzLmdldCgicmVxdWlyZWQiKTpuZXcgU3UuYmQoITEpfXNldCByZXF1aXJlZChzKXt0aGlzLnNldCgicmVxdWlyZWQiLHMpfWdldCBkZXByZWNhdGVkKCl7cmV0dXJuIHRoaXMuaGFzS2V5KCJkZXByZWNhdGVkIik/dGhpcy5nZXQoImRlcHJlY2F0ZWQiKTpuZXcgU3UuYmQoITEpfXNldCBkZXByZWNhdGVkKHMpe3RoaXMuc2V0KCJkZXByZWNhdGVkIixzKX1nZXQgYWxsb3dFbXB0eVZhbHVlKCl7cmV0dXJuIHRoaXMuZ2V0KCJhbGxvd0VtcHR5VmFsdWUiKX1zZXQgYWxsb3dFbXB0eVZhbHVlKHMpe3RoaXMuc2V0KCJhbGxvd0VtcHR5VmFsdWUiLHMpfWdldCBzdHlsZSgpe3JldHVybiB0aGlzLmdldCgic3R5bGUiKX1zZXQgc3R5bGUocyl7dGhpcy5zZXQoInN0eWxlIixzKX1nZXQgZXhwbG9kZSgpe3JldHVybiB0aGlzLmdldCgiZXhwbG9kZSIpfXNldCBleHBsb2RlKHMpe3RoaXMuc2V0KCJleHBsb2RlIixzKX1nZXQgYWxsb3dSZXNlcnZlZCgpe3JldHVybiB0aGlzLmdldCgiYWxsb3dSZXNlcnZlZCIpfXNldCBhbGxvd1Jlc2VydmVkKHMpe3RoaXMuc2V0KCJhbGxvd1Jlc2VydmVkIixzKX1nZXQgc2NoZW1hKCl7cmV0dXJuIHRoaXMuZ2V0KCJzY2hlbWEiKX1zZXQgc2NoZW1hKHMpe3RoaXMuc2V0KCJzY2hlbWEiLHMpfWdldCBleGFtcGxlKCl7cmV0dXJuIHRoaXMuZ2V0KCJleGFtcGxlIil9c2V0IGV4YW1wbGUocyl7dGhpcy5zZXQoImV4YW1wbGUiLHMpfWdldCBleGFtcGxlcygpe3JldHVybiB0aGlzLmdldCgiZXhhbXBsZXMiKX1zZXQgZXhhbXBsZXMocyl7dGhpcy5zZXQoImV4YW1wbGVzIixzKX1nZXQgY29udGVudFByb3AoKXtyZXR1cm4gdGhpcy5nZXQoImNvbnRlbnQiKX1zZXQgY29udGVudFByb3Aocyl7dGhpcy5zZXQoImNvbnRlbnQiLHMpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoUGFyYW1ldGVyLnByb3RvdHlwZSwiZGVzY3JpcHRpb24iLHtnZXQoKXtyZXR1cm4gdGhpcy5nZXQoImRlc2NyaXB0aW9uIil9LHNldChzKXt0aGlzLnNldCgiZGVzY3JpcHRpb24iLHMpfSxlbnVtZXJhYmxlOiEwfSk7Y29uc3QgX2g9UGFyYW1ldGVyO2NsYXNzIFBhdGhJdGVtIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9InBhdGhJdGVtIn1nZXQgJHJlZigpe3JldHVybiB0aGlzLmdldCgiJHJlZiIpfXNldCAkcmVmKHMpe3RoaXMuc2V0KCIkcmVmIixzKX1nZXQgc3VtbWFyeSgpe3JldHVybiB0aGlzLmdldCgic3VtbWFyeSIpfXNldCBzdW1tYXJ5KHMpe3RoaXMuc2V0KCJzdW1tYXJ5IixzKX1nZXQgZGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy5nZXQoImRlc2NyaXB0aW9uIil9c2V0IGRlc2NyaXB0aW9uKHMpe3RoaXMuc2V0KCJkZXNjcmlwdGlvbiIscyl9Z2V0IEdFVCgpe3JldHVybiB0aGlzLmdldCgiZ2V0Iil9c2V0IEdFVChzKXt0aGlzLnNldCgiR0VUIixzKX1nZXQgUFVUKCl7cmV0dXJuIHRoaXMuZ2V0KCJwdXQiKX1zZXQgUFVUKHMpe3RoaXMuc2V0KCJQVVQiLHMpfWdldCBQT1NUKCl7cmV0dXJuIHRoaXMuZ2V0KCJwb3N0Iil9c2V0IFBPU1Qocyl7dGhpcy5zZXQoIlBPU1QiLHMpfWdldCBERUxFVEUoKXtyZXR1cm4gdGhpcy5nZXQoImRlbGV0ZSIpfXNldCBERUxFVEUocyl7dGhpcy5zZXQoIkRFTEVURSIscyl9Z2V0IE9QVElPTlMoKXtyZXR1cm4gdGhpcy5nZXQoIm9wdGlvbnMiKX1zZXQgT1BUSU9OUyhzKXt0aGlzLnNldCgiT1BUSU9OUyIscyl9Z2V0IEhFQUQoKXtyZXR1cm4gdGhpcy5nZXQoImhlYWQiKX1zZXQgSEVBRChzKXt0aGlzLnNldCgiSEVBRCIscyl9Z2V0IFBBVENIKCl7cmV0dXJuIHRoaXMuZ2V0KCJwYXRjaCIpfXNldCBQQVRDSChzKXt0aGlzLnNldCgiUEFUQ0giLHMpfWdldCBUUkFDRSgpe3JldHVybiB0aGlzLmdldCgidHJhY2UiKX1zZXQgVFJBQ0Uocyl7dGhpcy5zZXQoIlRSQUNFIixzKX1nZXQgc2VydmVycygpe3JldHVybiB0aGlzLmdldCgic2VydmVycyIpfXNldCBzZXJ2ZXJzKHMpe3RoaXMuc2V0KCJzZXJ2ZXJzIixzKX1nZXQgcGFyYW1ldGVycygpe3JldHVybiB0aGlzLmdldCgicGFyYW1ldGVycyIpfXNldCBwYXJhbWV0ZXJzKHMpe3RoaXMuc2V0KCJwYXJhbWV0ZXJzIixzKX19Y29uc3Qgd2g9UGF0aEl0ZW07Y2xhc3MgUGF0aHMgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0icGF0aHMifX1jb25zdCBPaD1QYXRocztjbGFzcyBSZWZlcmVuY2UgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0icmVmZXJlbmNlIix0aGlzLmNsYXNzZXMucHVzaCgib3BlbmFwaS1yZWZlcmVuY2UiKX1nZXQgJHJlZigpe3JldHVybiB0aGlzLmdldCgiJHJlZiIpfXNldCAkcmVmKHMpe3RoaXMuc2V0KCIkcmVmIixzKX19Y29uc3Qgamg9UmVmZXJlbmNlO2NsYXNzIFJlcXVlc3RCb2R5IGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9InJlcXVlc3RCb2R5In1nZXQgZGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy5nZXQoImRlc2NyaXB0aW9uIil9c2V0IGRlc2NyaXB0aW9uKHMpe3RoaXMuc2V0KCJkZXNjcmlwdGlvbiIscyl9Z2V0IGNvbnRlbnRQcm9wKCl7cmV0dXJuIHRoaXMuZ2V0KCJjb250ZW50Iil9c2V0IGNvbnRlbnRQcm9wKHMpe3RoaXMuc2V0KCJjb250ZW50IixzKX1nZXQgcmVxdWlyZWQoKXtyZXR1cm4gdGhpcy5oYXNLZXkoInJlcXVpcmVkIik/dGhpcy5nZXQoInJlcXVpcmVkIik6bmV3IFN1LmJkKCExKX1zZXQgcmVxdWlyZWQocyl7dGhpcy5zZXQoInJlcXVpcmVkIixzKX19Y29uc3QgUGg9UmVxdWVzdEJvZHk7Y2xhc3MgUmVzcG9uc2VfUmVzcG9uc2UgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0icmVzcG9uc2UifWdldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLmdldCgiZGVzY3JpcHRpb24iKX1zZXQgZGVzY3JpcHRpb24ocyl7dGhpcy5zZXQoImRlc2NyaXB0aW9uIixzKX1nZXQgaGVhZGVycygpe3JldHVybiB0aGlzLmdldCgiaGVhZGVycyIpfXNldCBoZWFkZXJzKHMpe3RoaXMuc2V0KCJoZWFkZXJzIixzKX1nZXQgY29udGVudFByb3AoKXtyZXR1cm4gdGhpcy5nZXQoImNvbnRlbnQiKX1zZXQgY29udGVudFByb3Aocyl7dGhpcy5zZXQoImNvbnRlbnQiLHMpfWdldCBsaW5rcygpe3JldHVybiB0aGlzLmdldCgibGlua3MiKX1zZXQgbGlua3Mocyl7dGhpcy5zZXQoImxpbmtzIixzKX19Y29uc3QgSWg9UmVzcG9uc2VfUmVzcG9uc2U7Y2xhc3MgUmVzcG9uc2VzIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9InJlc3BvbnNlcyJ9Z2V0IGRlZmF1bHQoKXtyZXR1cm4gdGhpcy5nZXQoImRlZmF1bHQiKX1zZXQgZGVmYXVsdChzKXt0aGlzLnNldCgiZGVmYXVsdCIscyl9fWNvbnN0IFJoPVJlc3BvbnNlcztjb25zdCBEaD1jbGFzcyBVbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yIGV4dGVuZHMgS297fTtjbGFzcyBKU09OU2NoZW1hIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9IkpTT05TY2hlbWFEcmFmdDQifWdldCBpZFByb3AoKXtyZXR1cm4gdGhpcy5nZXQoImlkIil9c2V0IGlkUHJvcChzKXt0aGlzLnNldCgiaWQiLHMpfWdldCAkc2NoZW1hKCl7cmV0dXJuIHRoaXMuZ2V0KCIkc2NoZW1hIil9c2V0ICRzY2hlbWEocyl7dGhpcy5zZXQoIiRzY2hlbWEiLHMpfWdldCBtdWx0aXBsZU9mKCl7cmV0dXJuIHRoaXMuZ2V0KCJtdWx0aXBsZU9mIil9c2V0IG11bHRpcGxlT2Yocyl7dGhpcy5zZXQoIm11bHRpcGxlT2YiLHMpfWdldCBtYXhpbXVtKCl7cmV0dXJuIHRoaXMuZ2V0KCJtYXhpbXVtIil9c2V0IG1heGltdW0ocyl7dGhpcy5zZXQoIm1heGltdW0iLHMpfWdldCBleGNsdXNpdmVNYXhpbXVtKCl7cmV0dXJuIHRoaXMuZ2V0KCJleGNsdXNpdmVNYXhpbXVtIil9c2V0IGV4Y2x1c2l2ZU1heGltdW0ocyl7dGhpcy5zZXQoImV4Y2x1c2l2ZU1heGltdW0iLHMpfWdldCBtaW5pbXVtKCl7cmV0dXJuIHRoaXMuZ2V0KCJtaW5pbXVtIil9c2V0IG1pbmltdW0ocyl7dGhpcy5zZXQoIm1pbmltdW0iLHMpfWdldCBleGNsdXNpdmVNaW5pbXVtKCl7cmV0dXJuIHRoaXMuZ2V0KCJleGNsdXNpdmVNaW5pbXVtIil9c2V0IGV4Y2x1c2l2ZU1pbmltdW0ocyl7dGhpcy5zZXQoImV4Y2x1c2l2ZU1pbmltdW0iLHMpfWdldCBtYXhMZW5ndGgoKXtyZXR1cm4gdGhpcy5nZXQoIm1heExlbmd0aCIpfXNldCBtYXhMZW5ndGgocyl7dGhpcy5zZXQoIm1heExlbmd0aCIscyl9Z2V0IG1pbkxlbmd0aCgpe3JldHVybiB0aGlzLmdldCgibWluTGVuZ3RoIil9c2V0IG1pbkxlbmd0aChzKXt0aGlzLnNldCgibWluTGVuZ3RoIixzKX1nZXQgcGF0dGVybigpe3JldHVybiB0aGlzLmdldCgicGF0dGVybiIpfXNldCBwYXR0ZXJuKHMpe3RoaXMuc2V0KCJwYXR0ZXJuIixzKX1nZXQgYWRkaXRpb25hbEl0ZW1zKCl7cmV0dXJuIHRoaXMuZ2V0KCJhZGRpdGlvbmFsSXRlbXMiKX1zZXQgYWRkaXRpb25hbEl0ZW1zKHMpe3RoaXMuc2V0KCJhZGRpdGlvbmFsSXRlbXMiLHMpfWdldCBpdGVtcygpe3JldHVybiB0aGlzLmdldCgiaXRlbXMiKX1zZXQgaXRlbXMocyl7dGhpcy5zZXQoIml0ZW1zIixzKX1nZXQgbWF4SXRlbXMoKXtyZXR1cm4gdGhpcy5nZXQoIm1heEl0ZW1zIil9c2V0IG1heEl0ZW1zKHMpe3RoaXMuc2V0KCJtYXhJdGVtcyIscyl9Z2V0IG1pbkl0ZW1zKCl7cmV0dXJuIHRoaXMuZ2V0KCJtaW5JdGVtcyIpfXNldCBtaW5JdGVtcyhzKXt0aGlzLnNldCgibWluSXRlbXMiLHMpfWdldCB1bmlxdWVJdGVtcygpe3JldHVybiB0aGlzLmdldCgidW5pcXVlSXRlbXMiKX1zZXQgdW5pcXVlSXRlbXMocyl7dGhpcy5zZXQoInVuaXF1ZUl0ZW1zIixzKX1nZXQgbWF4UHJvcGVydGllcygpe3JldHVybiB0aGlzLmdldCgibWF4UHJvcGVydGllcyIpfXNldCBtYXhQcm9wZXJ0aWVzKHMpe3RoaXMuc2V0KCJtYXhQcm9wZXJ0aWVzIixzKX1nZXQgbWluUHJvcGVydGllcygpe3JldHVybiB0aGlzLmdldCgibWluUHJvcGVydGllcyIpfXNldCBtaW5Qcm9wZXJ0aWVzKHMpe3RoaXMuc2V0KCJtaW5Qcm9wZXJ0aWVzIixzKX1nZXQgcmVxdWlyZWQoKXtyZXR1cm4gdGhpcy5nZXQoInJlcXVpcmVkIil9c2V0IHJlcXVpcmVkKHMpe3RoaXMuc2V0KCJyZXF1aXJlZCIscyl9Z2V0IHByb3BlcnRpZXMoKXtyZXR1cm4gdGhpcy5nZXQoInByb3BlcnRpZXMiKX1zZXQgcHJvcGVydGllcyhzKXt0aGlzLnNldCgicHJvcGVydGllcyIscyl9Z2V0IGFkZGl0aW9uYWxQcm9wZXJ0aWVzKCl7cmV0dXJuIHRoaXMuZ2V0KCJhZGRpdGlvbmFsUHJvcGVydGllcyIpfXNldCBhZGRpdGlvbmFsUHJvcGVydGllcyhzKXt0aGlzLnNldCgiYWRkaXRpb25hbFByb3BlcnRpZXMiLHMpfWdldCBwYXR0ZXJuUHJvcGVydGllcygpe3JldHVybiB0aGlzLmdldCgicGF0dGVyblByb3BlcnRpZXMiKX1zZXQgcGF0dGVyblByb3BlcnRpZXMocyl7dGhpcy5zZXQoInBhdHRlcm5Qcm9wZXJ0aWVzIixzKX1nZXQgZGVwZW5kZW5jaWVzKCl7cmV0dXJuIHRoaXMuZ2V0KCJkZXBlbmRlbmNpZXMiKX1zZXQgZGVwZW5kZW5jaWVzKHMpe3RoaXMuc2V0KCJkZXBlbmRlbmNpZXMiLHMpfWdldCBlbnVtKCl7cmV0dXJuIHRoaXMuZ2V0KCJlbnVtIil9c2V0IGVudW0ocyl7dGhpcy5zZXQoImVudW0iLHMpfWdldCB0eXBlKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0eXBlIil9c2V0IHR5cGUocyl7dGhpcy5zZXQoInR5cGUiLHMpfWdldCBhbGxPZigpe3JldHVybiB0aGlzLmdldCgiYWxsT2YiKX1zZXQgYWxsT2Yocyl7dGhpcy5zZXQoImFsbE9mIixzKX1nZXQgYW55T2YoKXtyZXR1cm4gdGhpcy5nZXQoImFueU9mIil9c2V0IGFueU9mKHMpe3RoaXMuc2V0KCJhbnlPZiIscyl9Z2V0IG9uZU9mKCl7cmV0dXJuIHRoaXMuZ2V0KCJvbmVPZiIpfXNldCBvbmVPZihzKXt0aGlzLnNldCgib25lT2YiLHMpfWdldCBub3QoKXtyZXR1cm4gdGhpcy5nZXQoIm5vdCIpfXNldCBub3Qocyl7dGhpcy5zZXQoIm5vdCIscyl9Z2V0IGRlZmluaXRpb25zKCl7cmV0dXJuIHRoaXMuZ2V0KCJkZWZpbml0aW9ucyIpfXNldCBkZWZpbml0aW9ucyhzKXt0aGlzLnNldCgiZGVmaW5pdGlvbnMiLHMpfWdldCB0aXRsZSgpe3JldHVybiB0aGlzLmdldCgidGl0bGUiKX1zZXQgdGl0bGUocyl7dGhpcy5zZXQoInRpdGxlIixzKX1nZXQgZGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy5nZXQoImRlc2NyaXB0aW9uIil9c2V0IGRlc2NyaXB0aW9uKHMpe3RoaXMuc2V0KCJkZXNjcmlwdGlvbiIscyl9Z2V0IGRlZmF1bHQoKXtyZXR1cm4gdGhpcy5nZXQoImRlZmF1bHQiKX1zZXQgZGVmYXVsdChzKXt0aGlzLnNldCgiZGVmYXVsdCIscyl9Z2V0IGZvcm1hdCgpe3JldHVybiB0aGlzLmdldCgiZm9ybWF0Iil9c2V0IGZvcm1hdChzKXt0aGlzLnNldCgiZm9ybWF0IixzKX1nZXQgYmFzZSgpe3JldHVybiB0aGlzLmdldCgiYmFzZSIpfXNldCBiYXNlKHMpe3RoaXMuc2V0KCJiYXNlIixzKX1nZXQgbGlua3MoKXtyZXR1cm4gdGhpcy5nZXQoImxpbmtzIil9c2V0IGxpbmtzKHMpe3RoaXMuc2V0KCJsaW5rcyIscyl9Z2V0IG1lZGlhKCl7cmV0dXJuIHRoaXMuZ2V0KCJtZWRpYSIpfXNldCBtZWRpYShzKXt0aGlzLnNldCgibWVkaWEiLHMpfWdldCByZWFkT25seSgpe3JldHVybiB0aGlzLmdldCgicmVhZE9ubHkiKX1zZXQgcmVhZE9ubHkocyl7dGhpcy5zZXQoInJlYWRPbmx5IixzKX19Y29uc3QgTGg9SlNPTlNjaGVtYTtjbGFzcyBKU09OUmVmZXJlbmNlIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9IkpTT05SZWZlcmVuY2UiLHRoaXMuY2xhc3Nlcy5wdXNoKCJqc29uLXJlZmVyZW5jZSIpfWdldCAkcmVmKCl7cmV0dXJuIHRoaXMuZ2V0KCIkcmVmIil9c2V0ICRyZWYocyl7dGhpcy5zZXQoIiRyZWYiLHMpfX1jb25zdCBGaD1KU09OUmVmZXJlbmNlO2NsYXNzIE1lZGlhIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9Im1lZGlhIn1nZXQgYmluYXJ5RW5jb2RpbmcoKXtyZXR1cm4gdGhpcy5nZXQoImJpbmFyeUVuY29kaW5nIil9c2V0IGJpbmFyeUVuY29kaW5nKHMpe3RoaXMuc2V0KCJiaW5hcnlFbmNvZGluZyIscyl9Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy5nZXQoInR5cGUiKX1zZXQgdHlwZShzKXt0aGlzLnNldCgidHlwZSIscyl9fWNvbnN0IEpoPU1lZGlhO2NsYXNzIExpbmtEZXNjcmlwdGlvbiBleHRlbmRzIFN1LlNoe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJsaW5rRGVzY3JpcHRpb24ifWdldCBocmVmKCl7cmV0dXJuIHRoaXMuZ2V0KCJocmVmIil9c2V0IGhyZWYocyl7dGhpcy5zZXQoImhyZWYiLHMpfWdldCByZWwoKXtyZXR1cm4gdGhpcy5nZXQoInJlbCIpfXNldCByZWwocyl7dGhpcy5zZXQoInJlbCIscyl9Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0aXRsZSIpfXNldCB0aXRsZShzKXt0aGlzLnNldCgidGl0bGUiLHMpfWdldCB0YXJnZXRTY2hlbWEoKXtyZXR1cm4gdGhpcy5nZXQoInRhcmdldFNjaGVtYSIpfXNldCB0YXJnZXRTY2hlbWEocyl7dGhpcy5zZXQoInRhcmdldFNjaGVtYSIscyl9Z2V0IG1lZGlhVHlwZSgpe3JldHVybiB0aGlzLmdldCgibWVkaWFUeXBlIil9c2V0IG1lZGlhVHlwZShzKXt0aGlzLnNldCgibWVkaWFUeXBlIixzKX1nZXQgbWV0aG9kKCl7cmV0dXJuIHRoaXMuZ2V0KCJtZXRob2QiKX1zZXQgbWV0aG9kKHMpe3RoaXMuc2V0KCJtZXRob2QiLHMpfWdldCBlbmNUeXBlKCl7cmV0dXJuIHRoaXMuZ2V0KCJlbmNUeXBlIil9c2V0IGVuY1R5cGUocyl7dGhpcy5zZXQoImVuY1R5cGUiLHMpfWdldCBzY2hlbWEoKXtyZXR1cm4gdGhpcy5nZXQoInNjaGVtYSIpfXNldCBzY2hlbWEocyl7dGhpcy5zZXQoInNjaGVtYSIscyl9fWNvbnN0IEhoPUxpbmtEZXNjcmlwdGlvbjtjb25zdCBLaD1fY3VycnkyKChmdW5jdGlvbiBtYXBPYmpJbmRleGVkKHMsbyl7cmV0dXJuIF9hcnJheVJlZHVjZSgoZnVuY3Rpb24oaSxhKXtyZXR1cm4gaVthXT1zKG9bYV0sYSxvKSxpfSkse30sZWEobykpfSkpO2NvbnN0IEdoPV9jdXJyeTEoKGZ1bmN0aW9uIGlzTmlsKHMpe3JldHVybiBudWxsPT1zfSkpO3ZhciBRaD1fY3VycnkyKChmdW5jdGlvbiBoYXNQYXRoKHMsbyl7aWYoMD09PXMubGVuZ3RofHxHaChvKSlyZXR1cm4hMTtmb3IodmFyIGk9byxhPTA7YTxzLmxlbmd0aDspe2lmKEdoKGkpfHwhX2hhcyhzW2FdLGkpKXJldHVybiExO2k9aVtzW2FdXSxhKz0xfXJldHVybiEwfSkpO2NvbnN0IHRkPVFoO3ZhciBzZD1fY3VycnkyKChmdW5jdGlvbiBoYXMocyxvKXtyZXR1cm4gdGQoW3NdLG8pfSkpO2NvbnN0IGlkPXNkO2NvbnN0IGNkPV9jdXJyeTMoKGZ1bmN0aW9uIHByb3BTYXRpc2ZpZXMocyxvLGkpe3JldHVybiBzKERhKG8saSkpfSkpO3ZhciBsZD1mdW5jdGlvbigpe2Z1bmN0aW9uIFhEcm9wV2hpbGUocyxvKXt0aGlzLnhmPW8sdGhpcy5mPXN9cmV0dXJuIFhEcm9wV2hpbGUucHJvdG90eXBlWyJAQHRyYW5zZHVjZXIvaW5pdCJdPV94ZkJhc2VfaW5pdCxYRHJvcFdoaWxlLnByb3RvdHlwZVsiQEB0cmFuc2R1Y2VyL3Jlc3VsdCJdPV94ZkJhc2VfcmVzdWx0LFhEcm9wV2hpbGUucHJvdG90eXBlWyJAQHRyYW5zZHVjZXIvc3RlcCJdPWZ1bmN0aW9uKHMsbyl7aWYodGhpcy5mKXtpZih0aGlzLmYobykpcmV0dXJuIHM7dGhpcy5mPW51bGx9cmV0dXJuIHRoaXMueGZbIkBAdHJhbnNkdWNlci9zdGVwIl0ocyxvKX0sWERyb3BXaGlsZX0oKTtmdW5jdGlvbiBfeGRyb3BXaGlsZShzKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIG5ldyBsZChzLG8pfX1jb25zdCB1ZD1fY3VycnkyKF9kaXNwYXRjaGFibGUoWyJkcm9wV2hpbGUiXSxfeGRyb3BXaGlsZSwoZnVuY3Rpb24gZHJvcFdoaWxlKHMsbyl7Zm9yKHZhciBpPTAsYT1vLmxlbmd0aDtpPGEmJnMob1tpXSk7KWkrPTE7cmV0dXJuIGphKGksMS8wLG8pfSkpKTtjb25zdCBkZD16YSgoZnVuY3Rpb24ocyxvKXtyZXR1cm4gcGlwZShIYSgiIiksdWQoc2MocykpLHJjKCIiKSkobyl9KSksZGVyZWZlcmVuY2U9KHMsbyk9Pntjb25zdCBpPU5hKHMsbyk7cmV0dXJuIEtoKChzPT57aWYoZnUocykmJmlkKCIkcmVmIixzKSYmY2QoSmMsIiRyZWYiLHMpKXtjb25zdCBvPXRwKFsiJHJlZiJdLHMpLGE9ZGQoIiMvIixvKTtyZXR1cm4gdHAoYS5zcGxpdCgiLyIpLGkpfXJldHVybiBmdShzKT9kZXJlZmVyZW5jZShzLGkpOnN9KSxzKX0sZW1wdHlFbGVtZW50PXM9Pntjb25zdCBvPXMubWV0YS5sZW5ndGg+MD9jbG9uZURlZXAocy5tZXRhKTp2b2lkIDAsaT1zLmF0dHJpYnV0ZXMubGVuZ3RoPjA/Y2xvbmVEZWVwKHMuYXR0cmlidXRlcyk6dm9pZCAwO3JldHVybiBuZXcgcy5jb25zdHJ1Y3Rvcih2b2lkIDAsbyxpKX0sY2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQ9KHMsbyk9Pm8uY2xvbmUmJm8uaXNNZXJnZWFibGVFbGVtZW50KHMpP2RlZXBtZXJnZShlbXB0eUVsZW1lbnQocykscyxvKTpzLG1kPXtjbG9uZTohMCxpc01lcmdlYWJsZUVsZW1lbnQ6cz0+TXUocyl8fFJ1KHMpLGFycmF5RWxlbWVudE1lcmdlOihzLG8saSk9PnMuY29uY2F0KG8pWyJmYW50YXN5LWxhbmQvbWFwIl0oKHM9PmNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKHMsaSkpKSxvYmplY3RFbGVtZW50TWVyZ2U6KHMsbyxpKT0+e2NvbnN0IGE9TXUocyk/ZW1wdHlFbGVtZW50KHMpOmVtcHR5RWxlbWVudChvKTtyZXR1cm4gTXUocykmJnMuZm9yRWFjaCgoKHMsbyx1KT0+e2NvbnN0IF89Y2xvbmVTaGFsbG93KHUpO18udmFsdWU9Y2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQocyxpKSxhLmNvbnRlbnQucHVzaChfKX0pKSxvLmZvckVhY2goKChvLHUsXyk9Pntjb25zdCB3PXNlcmlhbGl6ZXJzX3ZhbHVlKHUpO2xldCB4O2lmKE11KHMpJiZzLmhhc0tleSh3KSYmaS5pc01lcmdlYWJsZUVsZW1lbnQobykpe2NvbnN0IGE9cy5nZXQodyk7eD1jbG9uZVNoYWxsb3coXykseC52YWx1ZT0oKHMsbyk9PntpZigiZnVuY3Rpb24iIT10eXBlb2Ygby5jdXN0b21NZXJnZSlyZXR1cm4gZGVlcG1lcmdlO2NvbnN0IGk9by5jdXN0b21NZXJnZShzLG8pO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBpP2k6ZGVlcG1lcmdlfSkodSxpKShhLG8saSl9ZWxzZSB4PWNsb25lU2hhbGxvdyhfKSx4LnZhbHVlPWNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKG8saSk7YS5yZW1vdmUodyksYS5jb250ZW50LnB1c2goeCl9KSksYX0sY3VzdG9tTWVyZ2U6dm9pZCAwLGN1c3RvbU1ldGFNZXJnZTp2b2lkIDAsY3VzdG9tQXR0cmlidXRlc01lcmdlOnZvaWQgMH0sZGVlcG1lcmdlPShzLG8saSk9Pnt2YXIgYSx1LF87Y29uc3Qgdz17Li4ubWQsLi4uaX07dy5pc01lcmdlYWJsZUVsZW1lbnQ9bnVsbCE9PShhPXcuaXNNZXJnZWFibGVFbGVtZW50KSYmdm9pZCAwIT09YT9hOm1kLmlzTWVyZ2VhYmxlRWxlbWVudCx3LmFycmF5RWxlbWVudE1lcmdlPW51bGwhPT0odT13LmFycmF5RWxlbWVudE1lcmdlKSYmdm9pZCAwIT09dT91Om1kLmFycmF5RWxlbWVudE1lcmdlLHcub2JqZWN0RWxlbWVudE1lcmdlPW51bGwhPT0oXz13Lm9iamVjdEVsZW1lbnRNZXJnZSkmJnZvaWQgMCE9PV8/XzptZC5vYmplY3RFbGVtZW50TWVyZ2U7Y29uc3QgeD1SdShvKTtpZighKHg9PT1SdShzKSkpcmV0dXJuIGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKG8sdyk7Y29uc3QgQz14JiYiZnVuY3Rpb24iPT10eXBlb2Ygdy5hcnJheUVsZW1lbnRNZXJnZT93LmFycmF5RWxlbWVudE1lcmdlKHMsbyx3KTp3Lm9iamVjdEVsZW1lbnRNZXJnZShzLG8sdyk7cmV0dXJuIEMubWV0YT0ocz0+ImZ1bmN0aW9uIiE9dHlwZW9mIHMuY3VzdG9tTWV0YU1lcmdlP3M9PmNsb25lRGVlcChzKTpzLmN1c3RvbU1ldGFNZXJnZSkodykocy5tZXRhLG8ubWV0YSksQy5hdHRyaWJ1dGVzPShzPT4iZnVuY3Rpb24iIT10eXBlb2Ygcy5jdXN0b21BdHRyaWJ1dGVzTWVyZ2U/cz0+Y2xvbmVEZWVwKHMpOnMuY3VzdG9tQXR0cmlidXRlc01lcmdlKSh3KShzLmF0dHJpYnV0ZXMsby5hdHRyaWJ1dGVzKSxDfTtkZWVwbWVyZ2UuYWxsPShzLG8pPT57aWYoIUFycmF5LmlzQXJyYXkocykpdGhyb3cgbmV3IFR5cGVFcnJvcigiRmlyc3QgYXJndW1lbnQgb2YgZGVlcG1lcmdlIHNob3VsZCBiZSBhbiBhcnJheS4iKTtyZXR1cm4gMD09PXMubGVuZ3RoP25ldyBTdS5TaDpzLnJlZHVjZSgoKHMsaSk9PmRlZXBtZXJnZShzLGksbykpLGVtcHR5RWxlbWVudChzWzBdKSl9O2NvbnN0IHlkPWRlZXBtZXJnZTtjb25zdCB2ZD1jbGFzcyBWaXNpdG9yX1Zpc2l0b3J7ZWxlbWVudDtjb25zdHJ1Y3RvcihzKXtPYmplY3QuYXNzaWduKHRoaXMscyl9Y29weU1ldGFBbmRBdHRyaWJ1dGVzKHMsbyl7KHMubWV0YS5sZW5ndGg+MHx8by5tZXRhLmxlbmd0aD4wKSYmKG8ubWV0YT15ZChvLm1ldGEscy5tZXRhKSxoYXNFbGVtZW50U291cmNlTWFwKHMpJiZvLm1ldGEuc2V0KCJzb3VyY2VNYXAiLHMubWV0YS5nZXQoInNvdXJjZU1hcCIpKSksKHMuYXR0cmlidXRlcy5sZW5ndGg+MHx8cy5tZXRhLmxlbmd0aD4wKSYmKG8uYXR0cmlidXRlcz15ZChvLmF0dHJpYnV0ZXMscy5hdHRyaWJ1dGVzKSl9fTtjb25zdCBfZD1jbGFzcyBGYWxsYmFja1Zpc2l0b3IgZXh0ZW5kcyB2ZHtlbnRlcihzKXtyZXR1cm4gdGhpcy5lbGVtZW50PWNsb25lRGVlcChzKSxVdX19LGNvcHlQcm9wcz0ocyxvLGk9W10pPT57Y29uc3QgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhvKTtmb3IobGV0IHMgb2YgaSlkZWxldGUgYVtzXTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhzLGEpfSxwcm90b0NoYWluPShzLG89W3NdKT0+e2NvbnN0IGk9T2JqZWN0LmdldFByb3RvdHlwZU9mKHMpO3JldHVybiBudWxsPT09aT9vOnByb3RvQ2hhaW4oaSxbLi4ubyxpXSl9LGhhcmRNaXhQcm90b3M9KHMsbyxpPVtdKT0+e3ZhciBhO2NvbnN0IHU9bnVsbCE9PShhPSgoLi4ucyk9PntpZigwPT09cy5sZW5ndGgpcmV0dXJuO2xldCBvO2NvbnN0IGk9cy5tYXAoKHM9PnByb3RvQ2hhaW4ocykpKTtmb3IoO2kuZXZlcnkoKHM9PnMubGVuZ3RoPjApKTspe2NvbnN0IHM9aS5tYXAoKHM9PnMucG9wKCkpKSxhPXNbMF07aWYoIXMuZXZlcnkoKHM9PnM9PT1hKSkpYnJlYWs7bz1hfXJldHVybiBvfSkoLi4ucykpJiZ2b2lkIDAhPT1hP2E6T2JqZWN0LnByb3RvdHlwZSxfPU9iamVjdC5jcmVhdGUodSksdz1wcm90b0NoYWluKHUpO2ZvcihsZXQgbyBvZiBzKXtsZXQgcz1wcm90b0NoYWluKG8pO2ZvcihsZXQgbz1zLmxlbmd0aC0xO28+PTA7by0tKXtsZXQgYT1zW29dOy0xPT09dy5pbmRleE9mKGEpJiYoY29weVByb3BzKF8sYSxbImNvbnN0cnVjdG9yIiwuLi5pXSksdy5wdXNoKGEpKX19cmV0dXJuIF8uY29uc3RydWN0b3I9byxffSx1bmlxdWU9cz0+cy5maWx0ZXIoKChvLGkpPT5zLmluZGV4T2Yobyk9PWkpKSxnZXRJbmdyZWRpZW50V2l0aFByb3A9KHMsbyk9Pntjb25zdCBpPW8ubWFwKChzPT5wcm90b0NoYWluKHMpKSk7bGV0IGE9MCx1PSEwO2Zvcig7dTspe3U9ITE7Zm9yKGxldCBfPW8ubGVuZ3RoLTE7Xz49MDtfLS0pe2NvbnN0IG89aVtfXVthXTtpZihudWxsIT1vJiYodT0hMCxudWxsIT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8scykpKXJldHVybiBpW19dWzBdfWErK319LHByb3h5TWl4PShzLG89T2JqZWN0LnByb3RvdHlwZSk9Pm5ldyBQcm94eSh7fSx7Z2V0UHJvdG90eXBlT2Y6KCk9Pm8sc2V0UHJvdG90eXBlT2YoKXt0aHJvdyBFcnJvcigiQ2Fubm90IHNldCBwcm90b3R5cGUgb2YgUHJveGllcyBjcmVhdGVkIGJ5IHRzLW1peGVyIil9LGdldE93blByb3BlcnR5RGVzY3JpcHRvcjoobyxpKT0+T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnZXRJbmdyZWRpZW50V2l0aFByb3AoaSxzKXx8e30saSksZGVmaW5lUHJvcGVydHkoKXt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBkZWZpbmUgbmV3IHByb3BlcnRpZXMgb24gUHJveGllcyBjcmVhdGVkIGJ5IHRzLW1peGVyIil9LGhhczooaSxhKT0+dm9pZCAwIT09Z2V0SW5ncmVkaWVudFdpdGhQcm9wKGEscyl8fHZvaWQgMCE9PW9bYV0sZ2V0OihpLGEpPT4oZ2V0SW5ncmVkaWVudFdpdGhQcm9wKGEscyl8fG8pW2FdLHNldChvLGksYSl7Y29uc3QgdT1nZXRJbmdyZWRpZW50V2l0aFByb3AoaSxzKTtpZih2b2lkIDA9PT11KXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNldCBuZXcgcHJvcGVydGllcyBvbiBQcm94aWVzIGNyZWF0ZWQgYnkgdHMtbWl4ZXIiKTtyZXR1cm4gdVtpXT1hLCEwfSxkZWxldGVQcm9wZXJ0eSgpe3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGRlbGV0ZSBwcm9wZXJ0aWVzIG9uIFByb3hpZXMgY3JlYXRlZCBieSB0cy1taXhlciIpfSxvd25LZXlzOigpPT5zLm1hcChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcykucmVkdWNlKCgocyxvKT0+by5jb25jYXQocy5maWx0ZXIoKHM9Pm8uaW5kZXhPZihzKTwwKSkpKSl9KSxTZD1udWxsLEVkPSJjb3B5Iix3ZD0iY29weSIseGQ9ImRlZXAiLGtkPW5ldyBXZWFrTWFwLGdldE1peGluc0ZvckNsYXNzPXM9PmtkLmdldChzKSxtZXJnZU9iamVjdHNPZkRlY29yYXRvcnM9KHMsbyk9Pnt2YXIgaSxhO2NvbnN0IHU9dW5pcXVlKFsuLi5PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhzKSwuLi5PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvKV0pLF89e307Zm9yKGxldCB3IG9mIHUpX1t3XT11bmlxdWUoWy4uLm51bGwhPT0oaT1udWxsPT1zP3ZvaWQgMDpzW3ddKSYmdm9pZCAwIT09aT9pOltdLC4uLm51bGwhPT0oYT1udWxsPT1vP3ZvaWQgMDpvW3ddKSYmdm9pZCAwIT09YT9hOltdXSk7cmV0dXJuIF99LG1lcmdlUHJvcGVydHlBbmRNZXRob2REZWNvcmF0b3JzPShzLG8pPT57dmFyIGksYSx1LF87cmV0dXJue3Byb3BlcnR5Om1lcmdlT2JqZWN0c09mRGVjb3JhdG9ycyhudWxsIT09KGk9bnVsbD09cz92b2lkIDA6cy5wcm9wZXJ0eSkmJnZvaWQgMCE9PWk/aTp7fSxudWxsIT09KGE9bnVsbD09bz92b2lkIDA6by5wcm9wZXJ0eSkmJnZvaWQgMCE9PWE/YTp7fSksbWV0aG9kOm1lcmdlT2JqZWN0c09mRGVjb3JhdG9ycyhudWxsIT09KHU9bnVsbD09cz92b2lkIDA6cy5tZXRob2QpJiZ2b2lkIDAhPT11P3U6e30sbnVsbCE9PShfPW51bGw9PW8/dm9pZCAwOm8ubWV0aG9kKSYmdm9pZCAwIT09Xz9fOnt9KX19LG1lcmdlRGVjb3JhdG9ycz0ocyxvKT0+e3ZhciBpLGEsdSxfLHcseDtyZXR1cm57Y2xhc3M6dW5pcXVlKFsuLi5udWxsIT09KGk9bnVsbD09cz92b2lkIDA6cy5jbGFzcykmJnZvaWQgMCE9PWk/aTpbXSwuLi5udWxsIT09KGE9bnVsbD09bz92b2lkIDA6by5jbGFzcykmJnZvaWQgMCE9PWE/YTpbXV0pLHN0YXRpYzptZXJnZVByb3BlcnR5QW5kTWV0aG9kRGVjb3JhdG9ycyhudWxsIT09KHU9bnVsbD09cz92b2lkIDA6cy5zdGF0aWMpJiZ2b2lkIDAhPT11P3U6e30sbnVsbCE9PShfPW51bGw9PW8/dm9pZCAwOm8uc3RhdGljKSYmdm9pZCAwIT09Xz9fOnt9KSxpbnN0YW5jZTptZXJnZVByb3BlcnR5QW5kTWV0aG9kRGVjb3JhdG9ycyhudWxsIT09KHc9bnVsbD09cz92b2lkIDA6cy5pbnN0YW5jZSkmJnZvaWQgMCE9PXc/dzp7fSxudWxsIT09KHg9bnVsbD09bz92b2lkIDA6by5pbnN0YW5jZSkmJnZvaWQgMCE9PXg/eDp7fSl9fSxPZD1uZXcgTWFwLGRlZXBEZWNvcmF0b3JTZWFyY2g9KC4uLnMpPT57Y29uc3Qgbz0oKC4uLnMpPT57dmFyIG87Y29uc3QgaT1uZXcgU2V0LGE9bmV3IFNldChbLi4uc10pO2Zvcig7YS5zaXplPjA7KWZvcihsZXQgcyBvZiBhKXtjb25zdCB1PXByb3RvQ2hhaW4ocy5wcm90b3R5cGUpLm1hcCgocz0+cy5jb25zdHJ1Y3RvcikpLF89Wy4uLnUsLi4ubnVsbCE9PShvPWdldE1peGluc0ZvckNsYXNzKHMpKSYmdm9pZCAwIT09bz9vOltdXS5maWx0ZXIoKHM9PiFpLmhhcyhzKSkpO2ZvcihsZXQgcyBvZiBfKWEuYWRkKHMpO2kuYWRkKHMpLGEuZGVsZXRlKHMpfXJldHVyblsuLi5pXX0pKC4uLnMpLm1hcCgocz0+T2QuZ2V0KHMpKSkuZmlsdGVyKChzPT4hIXMpKTtyZXR1cm4gMD09by5sZW5ndGg/e306MT09by5sZW5ndGg/b1swXTpvLnJlZHVjZSgoKHMsbyk9Pm1lcmdlRGVjb3JhdG9ycyhzLG8pKSl9LGdldERlY29yYXRvcnNGb3JDbGFzcz1zPT57bGV0IG89T2QuZ2V0KHMpO3JldHVybiBvfHwobz17fSxPZC5zZXQocyxvKSksb307ZnVuY3Rpb24gTWl4aW4oLi4ucyl7dmFyIG8saSxhO2NvbnN0IHU9cy5tYXAoKHM9PnMucHJvdG90eXBlKSksXz1TZDtpZihudWxsIT09Xyl7Y29uc3Qgcz11Lm1hcCgocz0+c1tfXSkpLmZpbHRlcigocz0+ImZ1bmN0aW9uIj09dHlwZW9mIHMpKSxjb21iaW5lZEluaXRGdW5jdGlvbj1mdW5jdGlvbiguLi5vKXtmb3IobGV0IGkgb2YgcylpLmFwcGx5KHRoaXMsbyl9LG89e1tfXTpjb21iaW5lZEluaXRGdW5jdGlvbn07dS5wdXNoKG8pfWZ1bmN0aW9uIE1peGVkQ2xhc3MoLi4ubyl7Zm9yKGNvbnN0IGkgb2Ygcyljb3B5UHJvcHModGhpcyxuZXcgaSguLi5vKSk7bnVsbCE9PV8mJiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzW19dJiZ0aGlzW19dLmFwcGx5KHRoaXMsbyl9dmFyIHcseDtNaXhlZENsYXNzLnByb3RvdHlwZT0iY29weSI9PT13ZD9oYXJkTWl4UHJvdG9zKHUsTWl4ZWRDbGFzcyk6KHc9dSx4PU1peGVkQ2xhc3MscHJveHlNaXgoWy4uLncse2NvbnN0cnVjdG9yOnh9XSkpLE9iamVjdC5zZXRQcm90b3R5cGVPZihNaXhlZENsYXNzLCJjb3B5Ij09PUVkP2hhcmRNaXhQcm90b3MocyxudWxsLFsicHJvdG90eXBlIl0pOnByb3h5TWl4KHMsRnVuY3Rpb24ucHJvdG90eXBlKSk7bGV0IEM9TWl4ZWRDbGFzcztpZigibm9uZSIhPT14ZCl7Y29uc3QgdT0iZGVlcCI9PT14ZD9kZWVwRGVjb3JhdG9yU2VhcmNoKC4uLnMpOigoLi4ucyk9Pntjb25zdCBvPXMubWFwKChzPT5nZXREZWNvcmF0b3JzRm9yQ2xhc3MocykpKTtyZXR1cm4gMD09PW8ubGVuZ3RoP3t9OjE9PT1vLmxlbmd0aD9vWzBdOm8ucmVkdWNlKCgocyxvKT0+bWVyZ2VEZWNvcmF0b3JzKHMsbykpKX0pKC4uLnMpO2ZvcihsZXQgcyBvZiBudWxsIT09KG89bnVsbD09dT92b2lkIDA6dS5jbGFzcykmJnZvaWQgMCE9PW8/bzpbXSl7Y29uc3Qgbz1zKEMpO28mJihDPW8pfWFwcGx5UHJvcEFuZE1ldGhvZERlY29yYXRvcnMobnVsbCE9PShpPW51bGw9PXU/dm9pZCAwOnUuc3RhdGljKSYmdm9pZCAwIT09aT9pOnt9LEMpLGFwcGx5UHJvcEFuZE1ldGhvZERlY29yYXRvcnMobnVsbCE9PShhPW51bGw9PXU/dm9pZCAwOnUuaW5zdGFuY2UpJiZ2b2lkIDAhPT1hP2E6e30sQy5wcm90b3R5cGUpfXZhciBqLEw7cmV0dXJuIGo9QyxMPXMsa2Quc2V0KGosTCksQ31jb25zdCBhcHBseVByb3BBbmRNZXRob2REZWNvcmF0b3JzPShzLG8pPT57Y29uc3QgaT1zLnByb3BlcnR5LGE9cy5tZXRob2Q7aWYoaSlmb3IobGV0IHMgaW4gaSlmb3IobGV0IGEgb2YgaVtzXSlhKG8scyk7aWYoYSlmb3IobGV0IHMgaW4gYSlmb3IobGV0IGkgb2YgYVtzXSlpKG8scyxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8scykpfTtjb25zdCBDZD1fY3VycnkxKChmdW5jdGlvbiBhbGxQYXNzKHMpe3JldHVybiAkYShDYShFYywwLE9jKCJsZW5ndGgiLHMpKSwoZnVuY3Rpb24oKXtmb3IodmFyIG89MCxpPXMubGVuZ3RoO288aTspe2lmKCFzW29dLmFwcGx5KHRoaXMsYXJndW1lbnRzKSlyZXR1cm4hMTtvKz0xfXJldHVybiEwfSkpfSkpO2NvbnN0IEFkPV9jdXJyeTEoKGZ1bmN0aW9uIGlzTm90RW1wdHkocyl7cmV0dXJuIWNwKHMpfSkpO2NvbnN0IElkPV9jdXJyeTIoKGZ1bmN0aW9uIG9yKHMsbyl7cmV0dXJuIHN8fG99KSk7dmFyIFRkPWRjKCRhKDEsb3UoYXUsX2N1cnJ5MigoZnVuY3Rpb24gZWl0aGVyKHMsbyl7cmV0dXJuIF9pc0Z1bmN0aW9uKHMpP2Z1bmN0aW9uIF9laXRoZXIoKXtyZXR1cm4gcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfTpoYyhJZCkocyxvKX0pKShjdSxNYykpKSk7Y29uc3QgTmQ9Q2QoW0pjLFRkLEFkXSk7Y29uc3QgTWQ9X2N1cnJ5MigoZnVuY3Rpb24gcGljayhzLG8pe2Zvcih2YXIgaT17fSxhPTA7YTxzLmxlbmd0aDspc1thXWluIG8mJihpW3NbYV1dPW9bc1thXV0pLGErPTE7cmV0dXJuIGl9KSk7Y29uc3QgUmQ9Y2xhc3MgU3BlY2lmaWNhdGlvblZpc2l0b3IgZXh0ZW5kcyB2ZHtzcGVjT2JqO3Bhc3NpbmdPcHRpb25zTmFtZXM9WyJzcGVjT2JqIiwicGFyZW50Il07Y29uc3RydWN0b3Ioe3NwZWNPYmo6cywuLi5vfSl7c3VwZXIoey4uLm99KSx0aGlzLnNwZWNPYmo9c31yZXRyaWV2ZVBhc3NpbmdPcHRpb25zKCl7cmV0dXJuIE1kKHRoaXMucGFzc2luZ09wdGlvbnNOYW1lcyx0aGlzKX1yZXRyaWV2ZUZpeGVkRmllbGRzKHMpe2NvbnN0IG89dHAoWyJ2aXNpdG9ycyIsLi4ucywiZml4ZWRGaWVsZHMiXSx0aGlzLnNwZWNPYmopO3JldHVybiJvYmplY3QiPT10eXBlb2YgbyYmbnVsbCE9PW8/T2JqZWN0LmtleXMobyk6W119cmV0cmlldmVWaXNpdG9yKHMpe3JldHVybiBRbyhNYyxbInZpc2l0b3JzIiwuLi5zXSx0aGlzLnNwZWNPYmopP3RwKFsidmlzaXRvcnMiLC4uLnNdLHRoaXMuc3BlY09iaik6dHAoWyJ2aXNpdG9ycyIsLi4ucywiJHZpc2l0b3IiXSx0aGlzLnNwZWNPYmopfXJldHJpZXZlVmlzaXRvckluc3RhbmNlKHMsbz17fSl7Y29uc3QgaT10aGlzLnJldHJpZXZlUGFzc2luZ09wdGlvbnMoKTtyZXR1cm4gbmV3KHRoaXMucmV0cmlldmVWaXNpdG9yKHMpKSh7Li4uaSwuLi5vfSl9dG9SZWZyYWN0ZWRFbGVtZW50KHMsbyxpPXt9KXtjb25zdCBhPXRoaXMucmV0cmlldmVWaXNpdG9ySW5zdGFuY2UocyxpKTtyZXR1cm4gYSBpbnN0YW5jZW9mIF9kJiYobnVsbD09YT92b2lkIDA6YS5jb25zdHJ1Y3Rvcik9PT1fZD9jbG9uZURlZXAobyk6KHZpc2l0b3JfdmlzaXQobyxhLGkpLGEuZWxlbWVudCl9fTtjb25zdCBEZD1jbGFzcyBGaXhlZEZpZWxkc1Zpc2l0b3IgZXh0ZW5kcyBSZHtzcGVjUGF0aDtpZ25vcmVkRmllbGRzO2NvbnN0cnVjdG9yKHtzcGVjUGF0aDpzLGlnbm9yZWRGaWVsZHM6bywuLi5pfSl7c3VwZXIoey4uLml9KSx0aGlzLnNwZWNQYXRoPXMsdGhpcy5pZ25vcmVkRmllbGRzPW98fFtdfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz10aGlzLnNwZWNQYXRoKHMpLGk9dGhpcy5yZXRyaWV2ZUZpeGVkRmllbGRzKG8pO3JldHVybiBzLmZvckVhY2goKChzLGEsdSk9PntpZihQdShhKSYmaS5pbmNsdWRlcyhzZXJpYWxpemVyc192YWx1ZShhKSkmJiF0aGlzLmlnbm9yZWRGaWVsZHMuaW5jbHVkZXMoc2VyaWFsaXplcnNfdmFsdWUoYSkpKXtjb25zdCBpPXRoaXMudG9SZWZyYWN0ZWRFbGVtZW50KFsuLi5vLCJmaXhlZEZpZWxkcyIsc2VyaWFsaXplcnNfdmFsdWUoYSldLHMpLF89bmV3IFN1LlByKGNsb25lRGVlcChhKSxpKTt0aGlzLmNvcHlNZXRhQW5kQXR0cmlidXRlcyh1LF8pLF8uY2xhc3Nlcy5wdXNoKCJmaXhlZC1maWVsZCIpLHRoaXMuZWxlbWVudC5jb250ZW50LnB1c2goXyl9ZWxzZSB0aGlzLmlnbm9yZWRGaWVsZHMuaW5jbHVkZXMoc2VyaWFsaXplcnNfdmFsdWUoYSkpfHx0aGlzLmVsZW1lbnQuY29udGVudC5wdXNoKGNsb25lRGVlcCh1KSl9KSksdGhpcy5jb3B5TWV0YUFuZEF0dHJpYnV0ZXMocyx0aGlzLmVsZW1lbnQpLFV1fX07Y29uc3QgTGQ9Y2xhc3MgUGFyZW50U2NoZW1hQXdhcmVWaXNpdG9ye3BhcmVudDtjb25zdHJ1Y3Rvcih7cGFyZW50OnN9KXt0aGlzLnBhcmVudD1zfX0sRmQ9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBMaHx8cyhhKSYmbygiSlNPTlNjaGVtYURyYWZ0NCIsYSkmJmkoIm9iamVjdCIsYSkpKSxCZD1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIEZofHxzKGEpJiZvKCJKU09OUmVmZXJlbmNlIixhKSYmaSgib2JqZWN0IixhKSkpLCRkPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgSmh8fHMoYSkmJm8oIm1lZGlhIixhKSYmaSgib2JqZWN0IixhKSkpLFZkPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgSGh8fHMoYSkmJm8oImxpbmtEZXNjcmlwdGlvbiIsYSkmJmkoIm9iamVjdCIsYSkpKTtjbGFzcyBKU09OU2NoZW1hVmlzaXRvciBleHRlbmRzKE1peGluKERkLExkLF9kKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBMaCx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSJdKX1nZXQgZGVmYXVsdERpYWxlY3RJZGVudGlmaWVyKCl7cmV0dXJuImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIyJ9T2JqZWN0RWxlbWVudChzKXtyZXR1cm4gdGhpcy5oYW5kbGVEaWFsZWN0SWRlbnRpZmllcihzKSx0aGlzLmhhbmRsZVNjaGVtYUlkZW50aWZpZXIocyksdGhpcy5wYXJlbnQ9dGhpcy5lbGVtZW50LERkLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKX1oYW5kbGVEaWFsZWN0SWRlbnRpZmllcihzKXtpZihiYyh0aGlzLnBhcmVudCkmJiFQdShzLmdldCgiJHNjaGVtYSIpKSl0aGlzLmVsZW1lbnQuc2V0TWV0YVByb3BlcnR5KCJpbmhlcml0ZWREaWFsZWN0SWRlbnRpZmllciIsdGhpcy5kZWZhdWx0RGlhbGVjdElkZW50aWZpZXIpO2Vsc2UgaWYoRmQodGhpcy5wYXJlbnQpJiYhUHUocy5nZXQoIiRzY2hlbWEiKSkpe2NvbnN0IHM9TmEoc2VyaWFsaXplcnNfdmFsdWUodGhpcy5wYXJlbnQubWV0YS5nZXQoImluaGVyaXRlZERpYWxlY3RJZGVudGlmaWVyIikpLHNlcmlhbGl6ZXJzX3ZhbHVlKHRoaXMucGFyZW50LiRzY2hlbWEpKTt0aGlzLmVsZW1lbnQuc2V0TWV0YVByb3BlcnR5KCJpbmhlcml0ZWREaWFsZWN0SWRlbnRpZmllciIscyl9fWhhbmRsZVNjaGVtYUlkZW50aWZpZXIocyxvPSJpZCIpe2NvbnN0IGk9dm9pZCAwIT09dGhpcy5wYXJlbnQ/Y2xvbmVEZWVwKHRoaXMucGFyZW50LmdldE1ldGFQcm9wZXJ0eSgiYW5jZXN0b3JzU2NoZW1hSWRlbnRpZmllcnMiLFtdKSk6bmV3IFN1LndFLGE9c2VyaWFsaXplcnNfdmFsdWUocy5nZXQobykpO05kKGEpJiZpLnB1c2goYSksdGhpcy5lbGVtZW50LnNldE1ldGFQcm9wZXJ0eSgiYW5jZXN0b3JzU2NoZW1hSWRlbnRpZmllcnMiLGkpfX1jb25zdCBVZD1KU09OU2NoZW1hVmlzaXRvcixpc0pTT05SZWZlcmVuY2VMaWtlRWxlbWVudD1zPT5NdShzKSYmcy5oYXNLZXkoIiRyZWYiKTtjbGFzcyBJdGVtc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihSZCxMZCxfZCkpe09iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1pc0pTT05SZWZlcmVuY2VMaWtlRWxlbWVudChzKT9bImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05SZWZlcmVuY2UiXTpbImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiXTtyZXR1cm4gdGhpcy5lbGVtZW50PXRoaXMudG9SZWZyYWN0ZWRFbGVtZW50KG8scyksVXV9QXJyYXlFbGVtZW50KHMpe3JldHVybiB0aGlzLmVsZW1lbnQ9bmV3IFN1LndFLHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goImpzb24tc2NoZW1hLWl0ZW1zIikscy5mb3JFYWNoKChzPT57Y29uc3Qgbz1pc0pTT05SZWZlcmVuY2VMaWtlRWxlbWVudChzKT9bImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05SZWZlcmVuY2UiXTpbImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiXSxpPXRoaXMudG9SZWZyYWN0ZWRFbGVtZW50KG8scyk7dGhpcy5lbGVtZW50LnB1c2goaSl9KSksdGhpcy5jb3B5TWV0YUFuZEF0dHJpYnV0ZXMocyx0aGlzLmVsZW1lbnQpLFV1fX1jb25zdCBXZD1JdGVtc1Zpc2l0b3I7Y29uc3QgSmQ9Y2xhc3MgUmVxdWlyZWRWaXNpdG9yIGV4dGVuZHMgX2R7QXJyYXlFbGVtZW50KHMpe2NvbnN0IG89dGhpcy5lbnRlcihzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgianNvbi1zY2hlbWEtcmVxdWlyZWQiKSxvfX07Y29uc3QgSGQ9Y2xhc3MgUGF0dGVybmVkRmllbGRzVmlzaXRvciBleHRlbmRzIFJke3NwZWNQYXRoO2lnbm9yZWRGaWVsZHM7ZmllbGRQYXR0ZXJuUHJlZGljYXRlPWVzX0Y7Y29uc3RydWN0b3Ioe3NwZWNQYXRoOnMsaWdub3JlZEZpZWxkczpvLGZpZWxkUGF0dGVyblByZWRpY2F0ZTppLC4uLmF9KXtzdXBlcih7Li4uYX0pLHRoaXMuc3BlY1BhdGg9cyx0aGlzLmlnbm9yZWRGaWVsZHM9b3x8W10sImZ1bmN0aW9uIj09dHlwZW9mIGkmJih0aGlzLmZpZWxkUGF0dGVyblByZWRpY2F0ZT1pKX1PYmplY3RFbGVtZW50KHMpe3JldHVybiBzLmZvckVhY2goKChzLG8saSk9PntpZighdGhpcy5pZ25vcmVkRmllbGRzLmluY2x1ZGVzKHNlcmlhbGl6ZXJzX3ZhbHVlKG8pKSYmdGhpcy5maWVsZFBhdHRlcm5QcmVkaWNhdGUoc2VyaWFsaXplcnNfdmFsdWUobykpKXtjb25zdCBhPXRoaXMuc3BlY1BhdGgocyksdT10aGlzLnRvUmVmcmFjdGVkRWxlbWVudChhLHMpLF89bmV3IFN1LlByKGNsb25lRGVlcChvKSx1KTt0aGlzLmNvcHlNZXRhQW5kQXR0cmlidXRlcyhpLF8pLF8uY2xhc3Nlcy5wdXNoKCJwYXR0ZXJuZWQtZmllbGQiKSx0aGlzLmVsZW1lbnQuY29udGVudC5wdXNoKF8pfWVsc2UgdGhpcy5pZ25vcmVkRmllbGRzLmluY2x1ZGVzKHNlcmlhbGl6ZXJzX3ZhbHVlKG8pKXx8dGhpcy5lbGVtZW50LmNvbnRlbnQucHVzaChjbG9uZURlZXAoaSkpfSkpLHRoaXMuY29weU1ldGFBbmRBdHRyaWJ1dGVzKHMsdGhpcy5lbGVtZW50KSxVdX19O2NvbnN0IEtkPWNsYXNzIE1hcFZpc2l0b3IgZXh0ZW5kcyBIZHtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmZpZWxkUGF0dGVyblByZWRpY2F0ZT1OZH19O2NsYXNzIFByb3BlcnRpZXNWaXNpdG9yIGV4dGVuZHMoTWl4aW4oS2QsTGQsX2QpKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFN1LlNoLHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goImpzb24tc2NoZW1hLXByb3BlcnRpZXMiKSx0aGlzLnNwZWNQYXRoPXM9PmlzSlNPTlJlZmVyZW5jZUxpa2VFbGVtZW50KHMpP1siZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlJlZmVyZW5jZSJdOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSJdfX1jb25zdCBHZD1Qcm9wZXJ0aWVzVmlzaXRvcjtjbGFzcyBQYXR0ZXJuUHJvcGVydGllc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihLZCxMZCxfZCkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgU3UuU2gsdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgianNvbi1zY2hlbWEtcGF0dGVyblByb3BlcnRpZXMiKSx0aGlzLnNwZWNQYXRoPXM9PmlzSlNPTlJlZmVyZW5jZUxpa2VFbGVtZW50KHMpP1siZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlJlZmVyZW5jZSJdOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSJdfX1jb25zdCBZZD1QYXR0ZXJuUHJvcGVydGllc1Zpc2l0b3I7Y2xhc3MgRGVwZW5kZW5jaWVzVmlzaXRvciBleHRlbmRzKE1peGluKEtkLExkLF9kKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBTdS5TaCx0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJqc29uLXNjaGVtYS1kZXBlbmRlbmNpZXMiKSx0aGlzLnNwZWNQYXRoPXM9PmlzSlNPTlJlZmVyZW5jZUxpa2VFbGVtZW50KHMpP1siZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlJlZmVyZW5jZSJdOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSJdfX1jb25zdCBYZD1EZXBlbmRlbmNpZXNWaXNpdG9yO2NvbnN0IFFkPWNsYXNzIEVudW1WaXNpdG9yIGV4dGVuZHMgX2R7QXJyYXlFbGVtZW50KHMpe2NvbnN0IG89dGhpcy5lbnRlcihzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgianNvbi1zY2hlbWEtZW51bSIpLG99fTtjb25zdCBaZD1jbGFzcyBUeXBlVmlzaXRvciBleHRlbmRzIF9ke1N0cmluZ0VsZW1lbnQocyl7Y29uc3Qgbz10aGlzLmVudGVyKHMpO3JldHVybiB0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJqc29uLXNjaGVtYS10eXBlIiksb31BcnJheUVsZW1lbnQocyl7Y29uc3Qgbz10aGlzLmVudGVyKHMpO3JldHVybiB0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJqc29uLXNjaGVtYS10eXBlIiksb319O2NsYXNzIEFsbE9mVmlzaXRvciBleHRlbmRzKE1peGluKFJkLExkLF9kKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBTdS53RSx0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJqc29uLXNjaGVtYS1hbGxPZiIpfUFycmF5RWxlbWVudChzKXtyZXR1cm4gcy5mb3JFYWNoKChzPT57Y29uc3Qgbz1pc0pTT05SZWZlcmVuY2VMaWtlRWxlbWVudChzKT9bImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05SZWZlcmVuY2UiXTpbImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiXSxpPXRoaXMudG9SZWZyYWN0ZWRFbGVtZW50KG8scyk7dGhpcy5lbGVtZW50LnB1c2goaSl9KSksdGhpcy5jb3B5TWV0YUFuZEF0dHJpYnV0ZXMocyx0aGlzLmVsZW1lbnQpLFV1fX1jb25zdCBlZj1BbGxPZlZpc2l0b3I7Y2xhc3MgQW55T2ZWaXNpdG9yIGV4dGVuZHMoTWl4aW4oUmQsTGQsX2QpKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFN1LndFLHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goImpzb24tc2NoZW1hLWFueU9mIil9QXJyYXlFbGVtZW50KHMpe3JldHVybiBzLmZvckVhY2goKHM9Pntjb25zdCBvPWlzSlNPTlJlZmVyZW5jZUxpa2VFbGVtZW50KHMpP1siZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlJlZmVyZW5jZSJdOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSJdLGk9dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQobyxzKTt0aGlzLmVsZW1lbnQucHVzaChpKX0pKSx0aGlzLmNvcHlNZXRhQW5kQXR0cmlidXRlcyhzLHRoaXMuZWxlbWVudCksVXV9fWNvbnN0IHJmPUFueU9mVmlzaXRvcjtjbGFzcyBPbmVPZlZpc2l0b3IgZXh0ZW5kcyhNaXhpbihSZCxMZCxfZCkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgU3Uud0UsdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgianNvbi1zY2hlbWEtb25lT2YiKX1BcnJheUVsZW1lbnQocyl7cmV0dXJuIHMuZm9yRWFjaCgocz0+e2NvbnN0IG89aXNKU09OUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OUmVmZXJlbmNlIl06WyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIl0saT10aGlzLnRvUmVmcmFjdGVkRWxlbWVudChvLHMpO3RoaXMuZWxlbWVudC5wdXNoKGkpfSkpLHRoaXMuY29weU1ldGFBbmRBdHRyaWJ1dGVzKHMsdGhpcy5lbGVtZW50KSxVdX19Y29uc3Qgb2Y9T25lT2ZWaXNpdG9yO2NsYXNzIERlZmluaXRpb25zVmlzaXRvciBleHRlbmRzKE1peGluKEtkLExkLF9kKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBTdS5TaCx0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJqc29uLXNjaGVtYS1kZWZpbml0aW9ucyIpLHRoaXMuc3BlY1BhdGg9cz0+aXNKU09OUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OUmVmZXJlbmNlIl06WyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIl19fWNvbnN0IGFmPURlZmluaXRpb25zVmlzaXRvcjtjbGFzcyBMaW5rc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihSZCxMZCxfZCkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgU3Uud0UsdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgianNvbi1zY2hlbWEtbGlua3MiKX1BcnJheUVsZW1lbnQocyl7cmV0dXJuIHMuZm9yRWFjaCgocz0+e2NvbnN0IG89dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rRGVzY3JpcHRpb24iXSxzKTt0aGlzLmVsZW1lbnQucHVzaChvKX0pKSx0aGlzLmNvcHlNZXRhQW5kQXR0cmlidXRlcyhzLHRoaXMuZWxlbWVudCksVXV9fWNvbnN0IGNmPUxpbmtzVmlzaXRvcjtjbGFzcyBKU09OUmVmZXJlbmNlVmlzaXRvciBleHRlbmRzKE1peGluKERkLF9kKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBGaCx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlJlZmVyZW5jZSJdKX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89RGQucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiBQdSh0aGlzLmVsZW1lbnQuJHJlZikmJnRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goInJlZmVyZW5jZS1lbGVtZW50Iiksb319Y29uc3QgbGY9SlNPTlJlZmVyZW5jZVZpc2l0b3I7Y29uc3QgdWY9Y2xhc3MgJFJlZlZpc2l0b3IgZXh0ZW5kcyBfZHtTdHJpbmdFbGVtZW50KHMpe2NvbnN0IG89dGhpcy5lbnRlcihzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgicmVmZXJlbmNlLXZhbHVlIiksb319O2NvbnN0IGhmPV9jdXJyeTMoKGZ1bmN0aW9uIGlmRWxzZShzLG8saSl7cmV0dXJuICRhKE1hdGgubWF4KHMubGVuZ3RoLG8ubGVuZ3RoLGkubGVuZ3RoKSwoZnVuY3Rpb24gX2lmRWxzZSgpe3JldHVybiBzLmFwcGx5KHRoaXMsYXJndW1lbnRzKT9vLmFwcGx5KHRoaXMsYXJndW1lbnRzKTppLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pKX0pKTtjb25zdCBkZj1fY3VycnkxKChmdW5jdGlvbiBjb21wYXJhdG9yKHMpe3JldHVybiBmdW5jdGlvbihvLGkpe3JldHVybiBzKG8saSk/LTE6cyhpLG8pPzE6MH19KSk7dmFyIG1mPV9jdXJyeTIoKGZ1bmN0aW9uIHNvcnQocyxvKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobywwKS5zb3J0KHMpfSkpO2NvbnN0IGdmPW1mO3ZhciB5Zj1fY3VycnkxKChmdW5jdGlvbihzKXtyZXR1cm4gX250aCgwLHMpfSkpO2NvbnN0IGJmPXlmO2NvbnN0IF9mPV9jdXJyeTEoX3JlZHVjZWQpO2NvbnN0IFNmPWRjKEdoKTtjb25zdCB4Zj1vdShscCxBZCk7ZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KHMpe3JldHVybiBmdW5jdGlvbiBfYXJyYXlXaXRob3V0SG9sZXMocyl7aWYoQXJyYXkuaXNBcnJheShzKSlyZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkocyl9KHMpfHxmdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5KHMpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1zW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPXNbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShzKX0ocyl8fGZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShzLG8pe2lmKHMpe2lmKCJzdHJpbmciPT10eXBlb2YgcylyZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkocyxvKTt2YXIgaT17fS50b1N0cmluZy5jYWxsKHMpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09aSYmcy5jb25zdHJ1Y3RvciYmKGk9cy5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWl8fCJTZXQiPT09aT9BcnJheS5mcm9tKHMpOiJBcmd1bWVudHMiPT09aXx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaSk/X2FycmF5TGlrZVRvQXJyYXkocyxvKTp2b2lkIDB9fShzKXx8ZnVuY3Rpb24gX25vbkl0ZXJhYmxlU3ByZWFkKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkocyxvKXsobnVsbD09b3x8bz5zLmxlbmd0aCkmJihvPXMubGVuZ3RoKTtmb3IodmFyIGk9MCxhPUFycmF5KG8pO2k8bztpKyspYVtpXT1zW2ldO3JldHVybiBhfXZhciBrZj1waXBlKGdmKGRmKChmdW5jdGlvbihzLG8pe3JldHVybiBzLmxlbmd0aD5vLmxlbmd0aH0pKSksYmYsRGEoImxlbmd0aCIpKSxPZj16YSgoZnVuY3Rpb24ocyxvLGkpe3ZhciBhPWkuYXBwbHkodm9pZCAwLF90b0NvbnN1bWFibGVBcnJheShzKSk7cmV0dXJuIFNmKGEpP19mKGEpOm99KSk7Y29uc3QgQ2Y9aGYoeGYsKGZ1bmN0aW9uIGRpc3BhdGNoSW1wbChzKXt2YXIgbz1rZihzKTtyZXR1cm4gJGEobywoZnVuY3Rpb24oKXtmb3IodmFyIG89YXJndW1lbnRzLmxlbmd0aCxpPW5ldyBBcnJheShvKSxhPTA7YTxvO2ErKylpW2FdPWFyZ3VtZW50c1thXTtyZXR1cm4gQ2EoT2YoaSksdm9pZCAwLHMpfSkpfSksZ2MpO2NvbnN0IGpmPWNsYXNzIEFsdGVybmF0aW5nVmlzaXRvciBleHRlbmRzIFJke2FsdGVybmF0b3I7Y29uc3RydWN0b3Ioe2FsdGVybmF0b3I6cywuLi5vfSl7c3VwZXIoey4uLm99KSx0aGlzLmFsdGVybmF0b3I9c31lbnRlcihzKXtjb25zdCBvPXRoaXMuYWx0ZXJuYXRvci5tYXAoKCh7cHJlZGljYXRlOnMsc3BlY1BhdGg6b30pPT5oZihzLGZjKG8pLGdjKSkpLGk9Q2Yobykocyk7cmV0dXJuIHRoaXMuZWxlbWVudD10aGlzLnRvUmVmcmFjdGVkRWxlbWVudChpLHMpLFV1fX07Y29uc3QgUGY9Y2xhc3MgU2NoZW1hT3JSZWZlcmVuY2VWaXNpdG9yIGV4dGVuZHMgamZ7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5hbHRlcm5hdG9yPVt7cHJlZGljYXRlOmlzSlNPTlJlZmVyZW5jZUxpa2VFbGVtZW50LHNwZWNQYXRoOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlJlZmVyZW5jZSJdfSx7cHJlZGljYXRlOmVzX1Qsc3BlY1BhdGg6WyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIl19XX19O2NsYXNzIE1lZGlhVmlzaXRvciBleHRlbmRzKE1peGluKERkLF9kKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBKaCx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiTWVkaWEiXSl9fWNvbnN0IFRmPU1lZGlhVmlzaXRvcjtjbGFzcyBMaW5rRGVzY3JpcHRpb25WaXNpdG9yIGV4dGVuZHMoTWl4aW4oRGQsX2QpKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IEhoLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rRGVzY3JpcHRpb24iXSl9fWNvbnN0IE5mPUxpbmtEZXNjcmlwdGlvblZpc2l0b3IsUmY9e3Zpc2l0b3JzOnt2YWx1ZTpfZCxKU09OU2NoZW1hT3JKU09OUmVmZXJlbmNlVmlzaXRvcjpQZixkb2N1bWVudDp7b2JqZWN0czp7SlNPTlNjaGVtYTp7JHZpc2l0b3I6VWQsZml4ZWRGaWVsZHM6e2lkOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sJHNjaGVtYTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LG11bHRpcGxlT2Y6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxtYXhpbXVtOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sZXhjbHVzaXZlTWF4aW11bTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LG1pbmltdW06eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxleGNsdXNpdmVNaW5pbXVtOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sbWF4TGVuZ3RoOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sbWluTGVuZ3RoOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0scGF0dGVybjp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGFkZGl0aW9uYWxJdGVtczpQZixpdGVtczpXZCxtYXhJdGVtczp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LG1pbkl0ZW1zOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sdW5pcXVlSXRlbXM6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxtYXhQcm9wZXJ0aWVzOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sbWluUHJvcGVydGllczp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHJlcXVpcmVkOkpkLHByb3BlcnRpZXM6R2QsYWRkaXRpb25hbFByb3BlcnRpZXM6UGYscGF0dGVyblByb3BlcnRpZXM6WWQsZGVwZW5kZW5jaWVzOlhkLGVudW06UWQsdHlwZTpaZCxhbGxPZjplZixhbnlPZjpyZixvbmVPZjpvZixub3Q6UGYsZGVmaW5pdGlvbnM6YWYsdGl0bGU6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxkZXNjcmlwdGlvbjp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGRlZmF1bHQ6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxmb3JtYXQ6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxiYXNlOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sbGlua3M6Y2YsbWVkaWE6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9NZWRpYSJ9LHJlYWRPbmx5OnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn19fSxKU09OUmVmZXJlbmNlOnskdmlzaXRvcjpsZixmaXhlZEZpZWxkczp7JHJlZjp1Zn19LE1lZGlhOnskdmlzaXRvcjpUZixmaXhlZEZpZWxkczp7YmluYXJ5RW5jb2Rpbmc6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSx0eXBlOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn19fSxMaW5rRGVzY3JpcHRpb246eyR2aXNpdG9yOk5mLGZpeGVkRmllbGRzOntocmVmOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0scmVsOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sdGl0bGU6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSx0YXJnZXRTY2hlbWE6UGYsbWVkaWFUeXBlOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sbWV0aG9kOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sZW5jVHlwZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHNjaGVtYTpQZn19fX19fSx0cmF2ZXJzYWxfdmlzaXRvcl9nZXROb2RlVHlwZT1zPT57aWYoanUocykpcmV0dXJuYCR7cy5lbGVtZW50LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3MuZWxlbWVudC5zbGljZSgxKX1FbGVtZW50YH0sRGY9e0pTT05TY2hlbWFEcmFmdDRFbGVtZW50OlsiY29udGVudCJdLEpTT05SZWZlcmVuY2VFbGVtZW50OlsiY29udGVudCJdLE1lZGlhRWxlbWVudDpbImNvbnRlbnQiXSxMaW5rRGVzY3JpcHRpb25FbGVtZW50OlsiY29udGVudCJdLC4uLkt1fSxGZj17bmFtZXNwYWNlOnM9Pntjb25zdHtiYXNlOm99PXM7cmV0dXJuIG8ucmVnaXN0ZXIoImpTT05TY2hlbWFEcmFmdDQiLExoKSxvLnJlZ2lzdGVyKCJqU09OUmVmZXJlbmNlIixGaCksby5yZWdpc3RlcigibWVkaWEiLEpoKSxvLnJlZ2lzdGVyKCJsaW5rRGVzY3JpcHRpb24iLEhoKSxvfX0sVmY9RmYscmVmcmFjdG9yX3Rvb2xib3g9KCk9Pntjb25zdCBzPWNyZWF0ZU5hbWVzcGFjZShWZik7cmV0dXJue3ByZWRpY2F0ZXM6ey4uLmFlLGlzU3RyaW5nRWxlbWVudDpQdX0sbmFtZXNwYWNlOnN9fSxyZWZyYWN0b3JfcmVmcmFjdD0ocyx7c3BlY1BhdGg6bz1bInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsIiR2aXNpdG9yIl0scGx1Z2luczppPVtdLHNwZWNpZmljYXRpb25PYmo6YT1SZn09e30pPT57Y29uc3QgdT0oMCxTdS5lKShzKSxfPWRlcmVmZXJlbmNlKGEpLHc9bmV3KHRwKG8sXykpKHtzcGVjT2JqOl99KTtyZXR1cm4gdmlzaXRvcl92aXNpdCh1LHcpLGRpc3BhdGNoUGx1Z2luc1N5bmMody5lbGVtZW50LGkse3Rvb2xib3hDcmVhdG9yOnJlZnJhY3Rvcl90b29sYm94LHZpc2l0b3JPcHRpb25zOntrZXlNYXA6RGYsbm9kZVR5cGVHZXR0ZXI6dHJhdmVyc2FsX3Zpc2l0b3JfZ2V0Tm9kZVR5cGV9fSl9LHJlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3I9cz0+KG8saT17fSk9PnJlZnJhY3Rvcl9yZWZyYWN0KG8se3NwZWNQYXRoOnMsLi4uaX0pO0xoLnJlZnJhY3Q9cmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsIiR2aXNpdG9yIl0pLEZoLnJlZnJhY3Q9cmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlJlZmVyZW5jZSIsIiR2aXNpdG9yIl0pLEpoLnJlZnJhY3Q9cmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTWVkaWEiLCIkdmlzaXRvciJdKSxIaC5yZWZyYWN0PXJlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsIiR2aXNpdG9yIl0pO2NvbnN0IFdmPWNsYXNzIFNjaGVtYV9TY2hlbWEgZXh0ZW5kcyBMaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0ic2NoZW1hIix0aGlzLmNsYXNzZXMucHVzaCgianNvbi1zY2hlbWEtZHJhZnQtNCIpfWdldCBpZFByb3AoKXt0aHJvdyBuZXcgRGgoImlkUHJvcCBnZXR0ZXIgaW4gU2NoZW1hIGNsYXNzIGlzIG5vdCBub3Qgc3VwcG9ydGVkLiIpfXNldCBpZFByb3Aocyl7dGhyb3cgbmV3IERoKCJpZFByb3Agc2V0dGVyIGluIFNjaGVtYSBjbGFzcyBpcyBub3Qgbm90IHN1cHBvcnRlZC4iKX1nZXQgJHNjaGVtYSgpe3Rocm93IG5ldyBEaCgiJHNjaGVtYSBnZXR0ZXIgaW4gU2NoZW1hIGNsYXNzIGlzIG5vdCBub3Qgc3VwcG9ydGVkLiIpfXNldCAkc2NoZW1hKHMpe3Rocm93IG5ldyBEaCgiJHNjaGVtYSBzZXR0ZXIgaW4gU2NoZW1hIGNsYXNzIGlzIG5vdCBub3Qgc3VwcG9ydGVkLiIpfWdldCBhZGRpdGlvbmFsSXRlbXMoKXtyZXR1cm4gdGhpcy5nZXQoImFkZGl0aW9uYWxJdGVtcyIpfXNldCBhZGRpdGlvbmFsSXRlbXMocyl7dGhpcy5zZXQoImFkZGl0aW9uYWxJdGVtcyIscyl9Z2V0IGl0ZW1zKCl7cmV0dXJuIHRoaXMuZ2V0KCJpdGVtcyIpfXNldCBpdGVtcyhzKXt0aGlzLnNldCgiaXRlbXMiLHMpfWdldCBhZGRpdGlvbmFsUHJvcGVydGllcygpe3JldHVybiB0aGlzLmdldCgiYWRkaXRpb25hbFByb3BlcnRpZXMiKX1zZXQgYWRkaXRpb25hbFByb3BlcnRpZXMocyl7dGhpcy5zZXQoImFkZGl0aW9uYWxQcm9wZXJ0aWVzIixzKX1nZXQgcGF0dGVyblByb3BlcnRpZXMoKXt0aHJvdyBuZXcgRGgoInBhdHRlcm5Qcm9wZXJ0aWVzIGdldHRlciBpbiBTY2hlbWEgY2xhc3MgaXMgbm90IG5vdCBzdXBwb3J0ZWQuIil9c2V0IHBhdHRlcm5Qcm9wZXJ0aWVzKHMpe3Rocm93IG5ldyBEaCgicGF0dGVyblByb3BlcnRpZXMgc2V0dGVyIGluIFNjaGVtYSBjbGFzcyBpcyBub3Qgbm90IHN1cHBvcnRlZC4iKX1nZXQgZGVwZW5kZW5jaWVzKCl7dGhyb3cgbmV3IERoKCJkZXBlbmRlbmNpZXMgZ2V0dGVyIGluIFNjaGVtYSBjbGFzcyBpcyBub3Qgbm90IHN1cHBvcnRlZC4iKX1zZXQgZGVwZW5kZW5jaWVzKHMpe3Rocm93IG5ldyBEaCgiZGVwZW5kZW5jaWVzIHNldHRlciBpbiBTY2hlbWEgY2xhc3MgaXMgbm90IG5vdCBzdXBwb3J0ZWQuIil9Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy5nZXQoInR5cGUiKX1zZXQgdHlwZShzKXt0aGlzLnNldCgidHlwZSIscyl9Z2V0IG5vdCgpe3JldHVybiB0aGlzLmdldCgibm90Iil9c2V0IG5vdChzKXt0aGlzLnNldCgibm90IixzKX1nZXQgZGVmaW5pdGlvbnMoKXt0aHJvdyBuZXcgRGgoImRlZmluaXRpb25zIGdldHRlciBpbiBTY2hlbWEgY2xhc3MgaXMgbm90IG5vdCBzdXBwb3J0ZWQuIil9c2V0IGRlZmluaXRpb25zKHMpe3Rocm93IG5ldyBEaCgiZGVmaW5pdGlvbnMgc2V0dGVyIGluIFNjaGVtYSBjbGFzcyBpcyBub3Qgbm90IHN1cHBvcnRlZC4iKX1nZXQgYmFzZSgpe3Rocm93IG5ldyBEaCgiYmFzZSBnZXR0ZXIgaW4gU2NoZW1hIGNsYXNzIGlzIG5vdCBub3Qgc3VwcG9ydGVkLiIpfXNldCBiYXNlKHMpe3Rocm93IG5ldyBEaCgiYmFzZSBzZXR0ZXIgaW4gU2NoZW1hIGNsYXNzIGlzIG5vdCBub3Qgc3VwcG9ydGVkLiIpfWdldCBsaW5rcygpe3Rocm93IG5ldyBEaCgibGlua3MgZ2V0dGVyIGluIFNjaGVtYSBjbGFzcyBpcyBub3Qgbm90IHN1cHBvcnRlZC4iKX1zZXQgbGlua3Mocyl7dGhyb3cgbmV3IERoKCJsaW5rcyBzZXR0ZXIgaW4gU2NoZW1hIGNsYXNzIGlzIG5vdCBub3Qgc3VwcG9ydGVkLiIpfWdldCBtZWRpYSgpe3Rocm93IG5ldyBEaCgibWVkaWEgZ2V0dGVyIGluIFNjaGVtYSBjbGFzcyBpcyBub3Qgbm90IHN1cHBvcnRlZC4iKX1zZXQgbWVkaWEocyl7dGhyb3cgbmV3IERoKCJtZWRpYSBzZXR0ZXIgaW4gU2NoZW1hIGNsYXNzIGlzIG5vdCBub3Qgc3VwcG9ydGVkLiIpfWdldCBudWxsYWJsZSgpe3JldHVybiB0aGlzLmdldCgibnVsbGFibGUiKX1zZXQgbnVsbGFibGUocyl7dGhpcy5zZXQoIm51bGxhYmxlIixzKX1nZXQgZGlzY3JpbWluYXRvcigpe3JldHVybiB0aGlzLmdldCgiZGlzY3JpbWluYXRvciIpfXNldCBkaXNjcmltaW5hdG9yKHMpe3RoaXMuc2V0KCJkaXNjcmltaW5hdG9yIixzKX1nZXQgd3JpdGVPbmx5KCl7cmV0dXJuIHRoaXMuZ2V0KCJ3cml0ZU9ubHkiKX1zZXQgd3JpdGVPbmx5KHMpe3RoaXMuc2V0KCJ3cml0ZU9ubHkiLHMpfWdldCB4bWwoKXtyZXR1cm4gdGhpcy5nZXQoInhtbCIpfXNldCB4bWwocyl7dGhpcy5zZXQoInhtbCIscyl9Z2V0IGV4dGVybmFsRG9jcygpe3JldHVybiB0aGlzLmdldCgiZXh0ZXJuYWxEb2NzIil9c2V0IGV4dGVybmFsRG9jcyhzKXt0aGlzLnNldCgiZXh0ZXJuYWxEb2NzIixzKX1nZXQgZXhhbXBsZSgpe3JldHVybiB0aGlzLmdldCgiZXhhbXBsZSIpfXNldCBleGFtcGxlKHMpe3RoaXMuc2V0KCJleGFtcGxlIixzKX1nZXQgZGVwcmVjYXRlZCgpe3JldHVybiB0aGlzLmdldCgiZGVwcmVjYXRlZCIpfXNldCBkZXByZWNhdGVkKHMpe3RoaXMuc2V0KCJkZXByZWNhdGVkIixzKX19O2NsYXNzIFNlY3VyaXR5UmVxdWlyZW1lbnQgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0ic2VjdXJpdHlSZXF1aXJlbWVudCJ9fWNvbnN0IEpmPVNlY3VyaXR5UmVxdWlyZW1lbnQ7Y2xhc3MgU2VjdXJpdHlTY2hlbWUgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0ic2VjdXJpdHlTY2hlbWUifWdldCB0eXBlKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0eXBlIil9c2V0IHR5cGUocyl7dGhpcy5zZXQoInR5cGUiLHMpfWdldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLmdldCgiZGVzY3JpcHRpb24iKX1zZXQgZGVzY3JpcHRpb24ocyl7dGhpcy5zZXQoImRlc2NyaXB0aW9uIixzKX1nZXQgbmFtZSgpe3JldHVybiB0aGlzLmdldCgibmFtZSIpfXNldCBuYW1lKHMpe3RoaXMuc2V0KCJuYW1lIixzKX1nZXQgaW4oKXtyZXR1cm4gdGhpcy5nZXQoImluIil9c2V0IGluKHMpe3RoaXMuc2V0KCJpbiIscyl9Z2V0IHNjaGVtZSgpe3JldHVybiB0aGlzLmdldCgic2NoZW1lIil9c2V0IHNjaGVtZShzKXt0aGlzLnNldCgic2NoZW1lIixzKX1nZXQgYmVhcmVyRm9ybWF0KCl7cmV0dXJuIHRoaXMuZ2V0KCJiZWFyZXJGb3JtYXQiKX1zZXQgYmVhcmVyRm9ybWF0KHMpe3RoaXMuc2V0KCJiZWFyZXJGb3JtYXQiLHMpfWdldCBmbG93cygpe3JldHVybiB0aGlzLmdldCgiZmxvd3MiKX1zZXQgZmxvd3Mocyl7dGhpcy5zZXQoImZsb3dzIixzKX1nZXQgb3BlbklkQ29ubmVjdFVybCgpe3JldHVybiB0aGlzLmdldCgib3BlbklkQ29ubmVjdFVybCIpfXNldCBvcGVuSWRDb25uZWN0VXJsKHMpe3RoaXMuc2V0KCJvcGVuSWRDb25uZWN0VXJsIixzKX19Y29uc3QgSGY9U2VjdXJpdHlTY2hlbWU7Y2xhc3MgU2VydmVyIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9InNlcnZlciJ9Z2V0IHVybCgpe3JldHVybiB0aGlzLmdldCgidXJsIil9c2V0IHVybChzKXt0aGlzLnNldCgidXJsIixzKX1nZXQgZGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy5nZXQoImRlc2NyaXB0aW9uIil9c2V0IGRlc2NyaXB0aW9uKHMpe3RoaXMuc2V0KCJkZXNjcmlwdGlvbiIscyl9Z2V0IHZhcmlhYmxlcygpe3JldHVybiB0aGlzLmdldCgidmFyaWFibGVzIil9c2V0IHZhcmlhYmxlcyhzKXt0aGlzLnNldCgidmFyaWFibGVzIixzKX19Y29uc3QgR2Y9U2VydmVyO2NsYXNzIFNlcnZlclZhcmlhYmxlIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9InNlcnZlclZhcmlhYmxlIn1nZXQgZW51bSgpe3JldHVybiB0aGlzLmdldCgiZW51bSIpfXNldCBlbnVtKHMpe3RoaXMuc2V0KCJlbnVtIixzKX1nZXQgZGVmYXVsdCgpe3JldHVybiB0aGlzLmdldCgiZGVmYXVsdCIpfXNldCBkZWZhdWx0KHMpe3RoaXMuc2V0KCJkZWZhdWx0IixzKX1nZXQgZGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy5nZXQoImRlc2NyaXB0aW9uIil9c2V0IGRlc2NyaXB0aW9uKHMpe3RoaXMuc2V0KCJkZXNjcmlwdGlvbiIscyl9fWNvbnN0IFhmPVNlcnZlclZhcmlhYmxlO2NsYXNzIFRhZyBleHRlbmRzIFN1LlNoe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJ0YWcifWdldCBuYW1lKCl7cmV0dXJuIHRoaXMuZ2V0KCJuYW1lIil9c2V0IG5hbWUocyl7dGhpcy5zZXQoIm5hbWUiLHMpfWdldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLmdldCgiZGVzY3JpcHRpb24iKX1zZXQgZGVzY3JpcHRpb24ocyl7dGhpcy5zZXQoImRlc2NyaXB0aW9uIixzKX1nZXQgZXh0ZXJuYWxEb2NzKCl7cmV0dXJuIHRoaXMuZ2V0KCJleHRlcm5hbERvY3MiKX1zZXQgZXh0ZXJuYWxEb2NzKHMpe3RoaXMuc2V0KCJleHRlcm5hbERvY3MiLHMpfX1jb25zdCBRZj1UYWc7Y2xhc3MgWG1sIGV4dGVuZHMgU3UuU2h7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9InhtbCJ9Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5nZXQoIm5hbWUiKX1zZXQgbmFtZShzKXt0aGlzLnNldCgibmFtZSIscyl9Z2V0IG5hbWVzcGFjZSgpe3JldHVybiB0aGlzLmdldCgibmFtZXNwYWNlIil9c2V0IG5hbWVzcGFjZShzKXt0aGlzLnNldCgibmFtZXNwYWNlIixzKX1nZXQgcHJlZml4KCl7cmV0dXJuIHRoaXMuZ2V0KCJwcmVmaXgiKX1zZXQgcHJlZml4KHMpe3RoaXMuc2V0KCJwcmVmaXgiLHMpfWdldCBhdHRyaWJ1dGUoKXtyZXR1cm4gdGhpcy5nZXQoImF0dHJpYnV0ZSIpfXNldCBhdHRyaWJ1dGUocyl7dGhpcy5zZXQoImF0dHJpYnV0ZSIscyl9Z2V0IHdyYXBwZWQoKXtyZXR1cm4gdGhpcy5nZXQoIndyYXBwZWQiKX1zZXQgd3JhcHBlZChzKXt0aGlzLnNldCgid3JhcHBlZCIscyl9fWNvbnN0IGVtPVhtbDtjb25zdCB0bT1jbGFzcyB2aXNpdG9yc19WaXNpdG9yX1Zpc2l0b3J7ZWxlbWVudDtjb25zdHJ1Y3RvcihzPXt9KXtPYmplY3QuYXNzaWduKHRoaXMscyl9Y29weU1ldGFBbmRBdHRyaWJ1dGVzKHMsbyl7KHMubWV0YS5sZW5ndGg+MHx8by5tZXRhLmxlbmd0aD4wKSYmKG8ubWV0YT15ZChvLm1ldGEscy5tZXRhKSxoYXNFbGVtZW50U291cmNlTWFwKHMpJiZvLm1ldGEuc2V0KCJzb3VyY2VNYXAiLHMubWV0YS5nZXQoInNvdXJjZU1hcCIpKSksKHMuYXR0cmlidXRlcy5sZW5ndGg+MHx8cy5tZXRhLmxlbmd0aD4wKSYmKG8uYXR0cmlidXRlcz15ZChvLmF0dHJpYnV0ZXMscy5hdHRyaWJ1dGVzKSl9fTtjb25zdCBybT1jbGFzcyBGYWxsYmFja1Zpc2l0b3JfRmFsbGJhY2tWaXNpdG9yIGV4dGVuZHMgdG17ZW50ZXIocyl7cmV0dXJuIHRoaXMuZWxlbWVudD1jbG9uZURlZXAocyksVXV9fTtjb25zdCBubT1jbGFzcyBTcGVjaWZpY2F0aW9uVmlzaXRvcl9TcGVjaWZpY2F0aW9uVmlzaXRvciBleHRlbmRzIHRte3NwZWNPYmo7cGFzc2luZ09wdGlvbnNOYW1lcz1bInNwZWNPYmoiLCJvcGVuQXBpR2VuZXJpY0VsZW1lbnQiLCJvcGVuQXBpU2VtYW50aWNFbGVtZW50Il07b3BlbkFwaUdlbmVyaWNFbGVtZW50O29wZW5BcGlTZW1hbnRpY0VsZW1lbnQ7Y29uc3RydWN0b3Ioe3NwZWNPYmo6cyxwYXNzaW5nT3B0aW9uc05hbWVzOm8sb3BlbkFwaUdlbmVyaWNFbGVtZW50Omksb3BlbkFwaVNlbWFudGljRWxlbWVudDphLC4uLnV9KXtzdXBlcih7Li4udX0pLHRoaXMuc3BlY09iaj1zLHRoaXMub3BlbkFwaUdlbmVyaWNFbGVtZW50PWksdGhpcy5vcGVuQXBpU2VtYW50aWNFbGVtZW50PWEsQXJyYXkuaXNBcnJheShvKSYmKHRoaXMucGFzc2luZ09wdGlvbnNOYW1lcz1vKX1yZXRyaWV2ZVBhc3NpbmdPcHRpb25zKCl7cmV0dXJuIE1kKHRoaXMucGFzc2luZ09wdGlvbnNOYW1lcyx0aGlzKX1yZXRyaWV2ZUZpeGVkRmllbGRzKHMpe2NvbnN0IG89dHAoWyJ2aXNpdG9ycyIsLi4ucywiZml4ZWRGaWVsZHMiXSx0aGlzLnNwZWNPYmopO3JldHVybiJvYmplY3QiPT10eXBlb2YgbyYmbnVsbCE9PW8/T2JqZWN0LmtleXMobyk6W119cmV0cmlldmVWaXNpdG9yKHMpe3JldHVybiBRbyhNYyxbInZpc2l0b3JzIiwuLi5zXSx0aGlzLnNwZWNPYmopP3RwKFsidmlzaXRvcnMiLC4uLnNdLHRoaXMuc3BlY09iaik6dHAoWyJ2aXNpdG9ycyIsLi4ucywiJHZpc2l0b3IiXSx0aGlzLnNwZWNPYmopfXJldHJpZXZlVmlzaXRvckluc3RhbmNlKHMsbz17fSl7Y29uc3QgaT10aGlzLnJldHJpZXZlUGFzc2luZ09wdGlvbnMoKTtyZXR1cm4gbmV3KHRoaXMucmV0cmlldmVWaXNpdG9yKHMpKSh7Li4uaSwuLi5vfSl9dG9SZWZyYWN0ZWRFbGVtZW50KHMsbyxpPXt9KXtjb25zdCBhPXRoaXMucmV0cmlldmVWaXNpdG9ySW5zdGFuY2UocyxpKTtyZXR1cm4gYSBpbnN0YW5jZW9mIHJtJiYobnVsbD09YT92b2lkIDA6YS5jb25zdHJ1Y3Rvcik9PT1ybT9jbG9uZURlZXAobyk6KHZpc2l0b3JfdmlzaXQobyxhLGkpLGEuZWxlbWVudCl9fTt2YXIgc209ZnVuY3Rpb24oKXtmdW5jdGlvbiBYVGFrZShzLG8pe3RoaXMueGY9byx0aGlzLm49cyx0aGlzLmk9MH1yZXR1cm4gWFRha2UucHJvdG90eXBlWyJAQHRyYW5zZHVjZXIvaW5pdCJdPV94ZkJhc2VfaW5pdCxYVGFrZS5wcm90b3R5cGVbIkBAdHJhbnNkdWNlci9yZXN1bHQiXT1feGZCYXNlX3Jlc3VsdCxYVGFrZS5wcm90b3R5cGVbIkBAdHJhbnNkdWNlci9zdGVwIl09ZnVuY3Rpb24ocyxvKXt0aGlzLmkrPTE7dmFyIGk9MD09PXRoaXMubj9zOnRoaXMueGZbIkBAdHJhbnNkdWNlci9zdGVwIl0ocyxvKTtyZXR1cm4gdGhpcy5uPj0wJiZ0aGlzLmk+PXRoaXMubj9fcmVkdWNlZChpKTppfSxYVGFrZX0oKTtmdW5jdGlvbiBfeHRha2Uocyl7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBuZXcgc20ocyxvKX19Y29uc3Qgb209X2N1cnJ5MihfZGlzcGF0Y2hhYmxlKFsidGFrZSJdLF94dGFrZSwoZnVuY3Rpb24gdGFrZShzLG8pe3JldHVybiBqYSgwLHM8MD8xLzA6cyxvKX0pKSk7dmFyIGltPV9jdXJyeTIoKGZ1bmN0aW9uKHMsbyl7cmV0dXJuIG5hKG9tKHMubGVuZ3RoLG8pLHMpfSkpO2NvbnN0IGFtPWltLGlzUmVmZXJlbmNlTGlrZUVsZW1lbnQ9cz0+TXUocykmJnMuaGFzS2V5KCIkcmVmIiksY209TXUsbG09TXUsaXNPcGVuQXBpRXh0ZW5zaW9uPXM9PlB1KHMua2V5KSYmYW0oIngtIixzZXJpYWxpemVyc192YWx1ZShzLmtleSkpO2NvbnN0IHVtPWNsYXNzIEZpeGVkRmllbGRzVmlzaXRvcl9GaXhlZEZpZWxkc1Zpc2l0b3IgZXh0ZW5kcyBubXtzcGVjUGF0aDtpZ25vcmVkRmllbGRzO2NhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz0hMDtzcGVjaWZpY2F0aW9uRXh0ZW5zaW9uUHJlZGljYXRlPWlzT3BlbkFwaUV4dGVuc2lvbjtjb25zdHJ1Y3Rvcih7c3BlY1BhdGg6cyxpZ25vcmVkRmllbGRzOm8sY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zOmksc3BlY2lmaWNhdGlvbkV4dGVuc2lvblByZWRpY2F0ZTphLC4uLnV9KXtzdXBlcih7Li4udX0pLHRoaXMuc3BlY1BhdGg9cyx0aGlzLmlnbm9yZWRGaWVsZHM9b3x8W10sImJvb2xlYW4iPT10eXBlb2YgaSYmKHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPWkpLCJmdW5jdGlvbiI9PXR5cGVvZiBhJiYodGhpcy5zcGVjaWZpY2F0aW9uRXh0ZW5zaW9uUHJlZGljYXRlPWEpfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz10aGlzLnNwZWNQYXRoKHMpLGk9dGhpcy5yZXRyaWV2ZUZpeGVkRmllbGRzKG8pO3JldHVybiBzLmZvckVhY2goKChzLGEsdSk9PntpZihQdShhKSYmaS5pbmNsdWRlcyhzZXJpYWxpemVyc192YWx1ZShhKSkmJiF0aGlzLmlnbm9yZWRGaWVsZHMuaW5jbHVkZXMoc2VyaWFsaXplcnNfdmFsdWUoYSkpKXtjb25zdCBpPXRoaXMudG9SZWZyYWN0ZWRFbGVtZW50KFsuLi5vLCJmaXhlZEZpZWxkcyIsc2VyaWFsaXplcnNfdmFsdWUoYSldLHMpLF89bmV3IFN1LlByKGNsb25lRGVlcChhKSxpKTt0aGlzLmNvcHlNZXRhQW5kQXR0cmlidXRlcyh1LF8pLF8uY2xhc3Nlcy5wdXNoKCJmaXhlZC1maWVsZCIpLHRoaXMuZWxlbWVudC5jb250ZW50LnB1c2goXyl9ZWxzZSBpZih0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucyYmdGhpcy5zcGVjaWZpY2F0aW9uRXh0ZW5zaW9uUHJlZGljYXRlKHUpKXtjb25zdCBzPXRoaXMudG9SZWZyYWN0ZWRFbGVtZW50KFsiZG9jdW1lbnQiLCJleHRlbnNpb24iXSx1KTt0aGlzLmVsZW1lbnQuY29udGVudC5wdXNoKHMpfWVsc2UgdGhpcy5pZ25vcmVkRmllbGRzLmluY2x1ZGVzKHNlcmlhbGl6ZXJzX3ZhbHVlKGEpKXx8dGhpcy5lbGVtZW50LmNvbnRlbnQucHVzaChjbG9uZURlZXAodSkpfSkpLHRoaXMuY29weU1ldGFBbmRBdHRyaWJ1dGVzKHMsdGhpcy5lbGVtZW50KSxVdX19O2NsYXNzIE9wZW5BcGkzXzBWaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IGZoLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJPcGVuQXBpIl0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwfU9iamVjdEVsZW1lbnQocyl7cmV0dXJuIHVtLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKX19Y29uc3QgcG09T3BlbkFwaTNfMFZpc2l0b3I7Y2xhc3MgT3BlbmFwaVZpc2l0b3IgZXh0ZW5kcyhNaXhpbihubSxybSkpe1N0cmluZ0VsZW1lbnQocyl7Y29uc3Qgbz1uZXcgZGgoc2VyaWFsaXplcnNfdmFsdWUocykpO3JldHVybiB0aGlzLmNvcHlNZXRhQW5kQXR0cmlidXRlcyhzLG8pLHRoaXMuZWxlbWVudD1vLFV1fX1jb25zdCBobT1PcGVuYXBpVmlzaXRvcjtjb25zdCBkbT1jbGFzcyBTcGVjaWZpY2F0aW9uRXh0ZW5zaW9uVmlzaXRvciBleHRlbmRzIG5te01lbWJlckVsZW1lbnQocyl7cmV0dXJuIHRoaXMuZWxlbWVudD1jbG9uZURlZXAocyksdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgic3BlY2lmaWNhdGlvbi1leHRlbnNpb24iKSxVdX19O2NsYXNzIEluZm9WaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFhwLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJJbmZvIl0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwfX1jb25zdCBmbT1JbmZvVmlzaXRvcjtjb25zdCBtbT1jbGFzcyBWZXJzaW9uVmlzaXRvciBleHRlbmRzIHJte1N0cmluZ0VsZW1lbnQocyl7Y29uc3Qgbz1zdXBlci5lbnRlcihzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgiYXBpLXZlcnNpb24iKSx0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJ2ZXJzaW9uIiksb319O2NsYXNzIENvbnRhY3RWaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFdwLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJDb250YWN0Il0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwfX1jb25zdCBnbT1Db250YWN0VmlzaXRvcjtjbGFzcyBMaWNlbnNlVmlzaXRvciBleHRlbmRzKE1peGluKHVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBRcCx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGljZW5zZSJdKSx0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz0hMH19Y29uc3QgeW09TGljZW5zZVZpc2l0b3I7Y2xhc3MgTGlua1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgWnAsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmsiXSksdGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM9ITB9T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPXVtLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4oUHUodGhpcy5lbGVtZW50Lm9wZXJhdGlvbklkKXx8UHUodGhpcy5lbGVtZW50Lm9wZXJhdGlvblJlZikpJiZ0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJyZWZlcmVuY2UtZWxlbWVudCIpLG99fWNvbnN0IHZtPUxpbmtWaXNpdG9yO2NvbnN0IGJtPWNsYXNzIE9wZXJhdGlvblJlZlZpc2l0b3IgZXh0ZW5kcyBybXtTdHJpbmdFbGVtZW50KHMpe2NvbnN0IG89c3VwZXIuZW50ZXIocyk7cmV0dXJuIHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goInJlZmVyZW5jZS12YWx1ZSIpLG99fTtjb25zdCBfbT1jbGFzcyBPcGVyYXRpb25JZFZpc2l0b3IgZXh0ZW5kcyBybXtTdHJpbmdFbGVtZW50KHMpe2NvbnN0IG89c3VwZXIuZW50ZXIocyk7cmV0dXJuIHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goInJlZmVyZW5jZS12YWx1ZSIpLG99fTtjb25zdCBTbT1jbGFzcyBQYXR0ZXJuZWRGaWVsZHNWaXNpdG9yX1BhdHRlcm5lZEZpZWxkc1Zpc2l0b3IgZXh0ZW5kcyBubXtzcGVjUGF0aDtpZ25vcmVkRmllbGRzO2ZpZWxkUGF0dGVyblByZWRpY2F0ZT1lc19GO2NhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz0hMTtzcGVjaWZpY2F0aW9uRXh0ZW5zaW9uUHJlZGljYXRlPWlzT3BlbkFwaUV4dGVuc2lvbjtjb25zdHJ1Y3Rvcih7c3BlY1BhdGg6cyxpZ25vcmVkRmllbGRzOm8sZmllbGRQYXR0ZXJuUHJlZGljYXRlOmksY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zOmEsc3BlY2lmaWNhdGlvbkV4dGVuc2lvblByZWRpY2F0ZTp1LC4uLl99KXtzdXBlcih7Li4uX30pLHRoaXMuc3BlY1BhdGg9cyx0aGlzLmlnbm9yZWRGaWVsZHM9b3x8W10sImZ1bmN0aW9uIj09dHlwZW9mIGkmJih0aGlzLmZpZWxkUGF0dGVyblByZWRpY2F0ZT1pKSwiYm9vbGVhbiI9PXR5cGVvZiBhJiYodGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM9YSksImZ1bmN0aW9uIj09dHlwZW9mIHUmJih0aGlzLnNwZWNpZmljYXRpb25FeHRlbnNpb25QcmVkaWNhdGU9dSl9T2JqZWN0RWxlbWVudChzKXtyZXR1cm4gcy5mb3JFYWNoKCgocyxvLGkpPT57aWYodGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnMmJnRoaXMuc3BlY2lmaWNhdGlvbkV4dGVuc2lvblByZWRpY2F0ZShpKSl7Y29uc3Qgcz10aGlzLnRvUmVmcmFjdGVkRWxlbWVudChbImRvY3VtZW50IiwiZXh0ZW5zaW9uIl0saSk7dGhpcy5lbGVtZW50LmNvbnRlbnQucHVzaChzKX1lbHNlIGlmKCF0aGlzLmlnbm9yZWRGaWVsZHMuaW5jbHVkZXMoc2VyaWFsaXplcnNfdmFsdWUobykpJiZ0aGlzLmZpZWxkUGF0dGVyblByZWRpY2F0ZShzZXJpYWxpemVyc192YWx1ZShvKSkpe2NvbnN0IGE9dGhpcy5zcGVjUGF0aChzKSx1PXRoaXMudG9SZWZyYWN0ZWRFbGVtZW50KGEscyksXz1uZXcgU3UuUHIoY2xvbmVEZWVwKG8pLHUpO3RoaXMuY29weU1ldGFBbmRBdHRyaWJ1dGVzKGksXyksXy5jbGFzc2VzLnB1c2goInBhdHRlcm5lZC1maWVsZCIpLHRoaXMuZWxlbWVudC5jb250ZW50LnB1c2goXyl9ZWxzZSB0aGlzLmlnbm9yZWRGaWVsZHMuaW5jbHVkZXMoc2VyaWFsaXplcnNfdmFsdWUobykpfHx0aGlzLmVsZW1lbnQuY29udGVudC5wdXNoKGNsb25lRGVlcChpKSl9KSksdGhpcy5jb3B5TWV0YUFuZEF0dHJpYnV0ZXMocyx0aGlzLmVsZW1lbnQpLFV1fX07Y29uc3QgRW09Y2xhc3MgTWFwVmlzaXRvcl9NYXBWaXNpdG9yIGV4dGVuZHMgU217Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5maWVsZFBhdHRlcm5QcmVkaWNhdGU9TmR9fTtjbGFzcyBMaW5rUGFyYW1ldGVycyBleHRlbmRzIFN1LlNoe3N0YXRpYyBwcmltYXJ5Q2xhc3M9ImxpbmstcGFyYW1ldGVycyI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChMaW5rUGFyYW1ldGVycy5wcmltYXJ5Q2xhc3MpfX1jb25zdCB3bT1MaW5rUGFyYW1ldGVycztjbGFzcyBQYXJhbWV0ZXJzVmlzaXRvciBleHRlbmRzKE1peGluKEVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyB3bSx0aGlzLnNwZWNQYXRoPWZjKFsidmFsdWUiXSl9fWNvbnN0IHhtPVBhcmFtZXRlcnNWaXNpdG9yO2NsYXNzIFNlcnZlclZpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgR2YsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIlNlcnZlciJdKSx0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz0hMH19Y29uc3Qga209U2VydmVyVmlzaXRvcjtjb25zdCBPbT1jbGFzcyBVcmxWaXNpdG9yIGV4dGVuZHMgcm17U3RyaW5nRWxlbWVudChzKXtjb25zdCBvPXN1cGVyLmVudGVyKHMpO3JldHVybiB0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJzZXJ2ZXItdXJsIiksb319O2NsYXNzIFNlcnZlcnMgZXh0ZW5kcyBTdS53RXtzdGF0aWMgcHJpbWFyeUNsYXNzPSJzZXJ2ZXJzIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKFNlcnZlcnMucHJpbWFyeUNsYXNzKX19Y29uc3QgQ209U2VydmVycztjbGFzcyBTZXJ2ZXJzVmlzaXRvciBleHRlbmRzKE1peGluKG5tLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBDbX1BcnJheUVsZW1lbnQocyl7cmV0dXJuIHMuZm9yRWFjaCgocz0+e2NvbnN0IG89Y20ocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJTZXJ2ZXIiXTpbInZhbHVlIl0saT10aGlzLnRvUmVmcmFjdGVkRWxlbWVudChvLHMpO3RoaXMuZWxlbWVudC5wdXNoKGkpfSkpLHRoaXMuY29weU1ldGFBbmRBdHRyaWJ1dGVzKHMsdGhpcy5lbGVtZW50KSxVdX19Y29uc3QgQW09U2VydmVyc1Zpc2l0b3I7Y2xhc3MgU2VydmVyVmFyaWFibGVWaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFhmLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJTZXJ2ZXJWYXJpYWJsZSJdKSx0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz0hMH19Y29uc3Qgam09U2VydmVyVmFyaWFibGVWaXNpdG9yO2NsYXNzIFNlcnZlclZhcmlhYmxlcyBleHRlbmRzIFN1LlNoe3N0YXRpYyBwcmltYXJ5Q2xhc3M9InNlcnZlci12YXJpYWJsZXMiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goU2VydmVyVmFyaWFibGVzLnByaW1hcnlDbGFzcyl9fWNvbnN0IFBtPVNlcnZlclZhcmlhYmxlcztjbGFzcyBWYXJpYWJsZXNWaXNpdG9yIGV4dGVuZHMoTWl4aW4oRW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFBtLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJTZXJ2ZXJWYXJpYWJsZSJdKX19Y29uc3QgSW09VmFyaWFibGVzVmlzaXRvcjtjbGFzcyBNZWRpYVR5cGVWaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IHRoLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJNZWRpYVR5cGUiXSksdGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM9ITB9fWNvbnN0IFRtPU1lZGlhVHlwZVZpc2l0b3I7Y29uc3QgTm09Y2xhc3MgQWx0ZXJuYXRpbmdWaXNpdG9yX0FsdGVybmF0aW5nVmlzaXRvciBleHRlbmRzIG5te2FsdGVybmF0b3I7Y29uc3RydWN0b3Ioe2FsdGVybmF0b3I6cywuLi5vfSl7c3VwZXIoey4uLm99KSx0aGlzLmFsdGVybmF0b3I9c3x8W119ZW50ZXIocyl7Y29uc3Qgbz10aGlzLmFsdGVybmF0b3IubWFwKCgoe3ByZWRpY2F0ZTpzLHNwZWNQYXRoOm99KT0+aGYocyxmYyhvKSxnYykpKSxpPUNmKG8pKHMpO3JldHVybiB0aGlzLmVsZW1lbnQ9dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQoaSxzKSxVdX19LE1tPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgVXB8fHMoYSkmJm8oImNhbGxiYWNrIixhKSYmaSgib2JqZWN0IixhKSkpLFJtPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgenB8fHMoYSkmJm8oImNvbXBvbmVudHMiLGEpJiZpKCJvYmplY3QiLGEpKSksRG09aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBXcHx8cyhhKSYmbygiY29udGFjdCIsYSkmJmkoIm9iamVjdCIsYSkpKSxMbT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIEtwfHxzKGEpJiZvKCJleGFtcGxlIixhKSYmaSgib2JqZWN0IixhKSkpLEZtPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgR3B8fHMoYSkmJm8oImV4dGVybmFsRG9jdW1lbnRhdGlvbiIsYSkmJmkoIm9iamVjdCIsYSkpKSxCbT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIFlwfHxzKGEpJiZvKCJoZWFkZXIiLGEpJiZpKCJvYmplY3QiLGEpKSksJG09aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBYcHx8cyhhKSYmbygiaW5mbyIsYSkmJmkoIm9iamVjdCIsYSkpKSxxbT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIFFwfHxzKGEpJiZvKCJsaWNlbnNlIixhKSYmaSgib2JqZWN0IixhKSkpLFZtPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgWnB8fHMoYSkmJm8oImxpbmsiLGEpJiZpKCJvYmplY3QiLGEpKSksVW09aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBkaHx8cyhhKSYmbygib3BlbmFwaSIsYSkmJmkoInN0cmluZyIsYSkpKSx6bT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOmksaGFzQ2xhc3M6YX0pPT51PT51IGluc3RhbmNlb2YgZmh8fHModSkmJm8oIm9wZW5BcGkzXzAiLHUpJiZpKCJvYmplY3QiLHUpJiZhKCJhcGkiLHUpKSksV209aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiB2aHx8cyhhKSYmbygib3BlcmF0aW9uIixhKSYmaSgib2JqZWN0IixhKSkpLEptPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgX2h8fHMoYSkmJm8oInBhcmFtZXRlciIsYSkmJmkoIm9iamVjdCIsYSkpKSxIbT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIHdofHxzKGEpJiZvKCJwYXRoSXRlbSIsYSkmJmkoIm9iamVjdCIsYSkpKSxLbT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIE9ofHxzKGEpJiZvKCJwYXRocyIsYSkmJmkoIm9iamVjdCIsYSkpKSxHbT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIGpofHxzKGEpJiZvKCJyZWZlcmVuY2UiLGEpJiZpKCJvYmplY3QiLGEpKSksWW09aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBQaHx8cyhhKSYmbygicmVxdWVzdEJvZHkiLGEpJiZpKCJvYmplY3QiLGEpKSksWG09aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBJaHx8cyhhKSYmbygicmVzcG9uc2UiLGEpJiZpKCJvYmplY3QiLGEpKSksUW09aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBSaHx8cyhhKSYmbygicmVzcG9uc2VzIixhKSYmaSgib2JqZWN0IixhKSkpLFptPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgV2Z8fHMoYSkmJm8oInNjaGVtYSIsYSkmJmkoIm9iamVjdCIsYSkpKSxpc0Jvb2xlYW5Kc29uU2NoZW1hRWxlbWVudD1zPT5OdShzKSYmcy5jbGFzc2VzLmluY2x1ZGVzKCJib29sZWFuLWpzb24tc2NoZW1hIiksZWc9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBKZnx8cyhhKSYmbygic2VjdXJpdHlSZXF1aXJlbWVudCIsYSkmJmkoIm9iamVjdCIsYSkpKSxyZz1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIEhmfHxzKGEpJiZvKCJzZWN1cml0eVNjaGVtZSIsYSkmJmkoIm9iamVjdCIsYSkpKSxuZz1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIEdmfHxzKGEpJiZvKCJzZXJ2ZXIiLGEpJiZpKCJvYmplY3QiLGEpKSksc2c9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBYZnx8cyhhKSYmbygic2VydmVyVmFyaWFibGUiLGEpJiZpKCJvYmplY3QiLGEpKSksb2c9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiB0aHx8cyhhKSYmbygibWVkaWFUeXBlIixhKSYmaSgib2JqZWN0IixhKSkpLGxnPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aSxoYXNDbGFzczphfSk9PnU9PnUgaW5zdGFuY2VvZiBDbXx8cyh1KSYmbygiYXJyYXkiLHUpJiZpKCJhcnJheSIsdSkmJmEoInNlcnZlcnMiLHUpKSk7Y2xhc3MgU2NoZW1hVmlzaXRvciBleHRlbmRzKE1peGluKE5tLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5hbHRlcm5hdG9yPVt7cHJlZGljYXRlOmlzUmVmZXJlbmNlTGlrZUVsZW1lbnQsc3BlY1BhdGg6WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiXX0se3ByZWRpY2F0ZTplc19ULHNwZWNQYXRoOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiU2NoZW1hIl19XX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89Tm0ucHJvdG90eXBlLmVudGVyLmNhbGwodGhpcyxzKTtyZXR1cm4gR20odGhpcy5lbGVtZW50KSYmdGhpcy5lbGVtZW50LnNldE1ldGFQcm9wZXJ0eSgicmVmZXJlbmNlZC1lbGVtZW50Iiwic2NoZW1hIiksb319Y29uc3QgcGc9U2NoZW1hVmlzaXRvcjtjbGFzcyBFeGFtcGxlc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihFbSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgU3UuU2gsdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgiZXhhbXBsZXMiKSx0aGlzLnNwZWNQYXRoPXM9PmlzUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiXTpbImRvY3VtZW50Iiwib2JqZWN0cyIsIkV4YW1wbGUiXSx0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz0hMH1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89RW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiB0aGlzLmVsZW1lbnQuZmlsdGVyKEdtKS5mb3JFYWNoKChzPT57cy5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsImV4YW1wbGUiKX0pKSxvfX1jb25zdCBmZz1FeGFtcGxlc1Zpc2l0b3I7Y2xhc3MgTWVkaWFUeXBlRXhhbXBsZXMgZXh0ZW5kcyBTdS5TaHtzdGF0aWMgcHJpbWFyeUNsYXNzPSJtZWRpYS10eXBlLWV4YW1wbGVzIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKE1lZGlhVHlwZUV4YW1wbGVzLnByaW1hcnlDbGFzcyksdGhpcy5jbGFzc2VzLnB1c2goImV4YW1wbGVzIil9fWNvbnN0IG1nPU1lZGlhVHlwZUV4YW1wbGVzO2NvbnN0IGdnPWNsYXNzIEV4YW1wbGVzVmlzaXRvcl9FeGFtcGxlc1Zpc2l0b3IgZXh0ZW5kcyBmZ3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IG1nfX07Y2xhc3MgTWVkaWFUeXBlRW5jb2RpbmcgZXh0ZW5kcyBTdS5TaHtzdGF0aWMgcHJpbWFyeUNsYXNzPSJtZWRpYS10eXBlLWVuY29kaW5nIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKE1lZGlhVHlwZUVuY29kaW5nLnByaW1hcnlDbGFzcyl9fWNvbnN0IHlnPU1lZGlhVHlwZUVuY29kaW5nO2NsYXNzIEVuY29kaW5nVmlzaXRvciBleHRlbmRzKE1peGluKEVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyB5Zyx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiRW5jb2RpbmciXSl9fWNvbnN0IF9nPUVuY29kaW5nVmlzaXRvcjtjbGFzcyBTZWN1cml0eVJlcXVpcmVtZW50VmlzaXRvciBleHRlbmRzKE1peGluKEVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBKZix0aGlzLnNwZWNQYXRoPWZjKFsidmFsdWUiXSl9fWNvbnN0IHhnPVNlY3VyaXR5UmVxdWlyZW1lbnRWaXNpdG9yO2NsYXNzIFNlY3VyaXR5IGV4dGVuZHMgU3Uud0V7c3RhdGljIHByaW1hcnlDbGFzcz0ic2VjdXJpdHkiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goU2VjdXJpdHkucHJpbWFyeUNsYXNzKX19Y29uc3Qga2c9U2VjdXJpdHk7Y2xhc3MgU2VjdXJpdHlWaXNpdG9yIGV4dGVuZHMoTWl4aW4obm0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IGtnfUFycmF5RWxlbWVudChzKXtyZXR1cm4gcy5mb3JFYWNoKChzPT57aWYoTXUocykpe2NvbnN0IG89dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJTZWN1cml0eVJlcXVpcmVtZW50Il0scyk7dGhpcy5lbGVtZW50LnB1c2gobyl9ZWxzZSB0aGlzLmVsZW1lbnQucHVzaChjbG9uZURlZXAocykpfSkpLHRoaXMuY29weU1ldGFBbmRBdHRyaWJ1dGVzKHMsdGhpcy5lbGVtZW50KSxVdX19Y29uc3QgcWc9U2VjdXJpdHlWaXNpdG9yO2NsYXNzIENvbXBvbmVudHNWaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IHpwLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJDb21wb25lbnRzIl0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwfX1jb25zdCBWZz1Db21wb25lbnRzVmlzaXRvcjtjbGFzcyBUYWdWaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFFmLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJUYWciXSksdGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM9ITB9fWNvbnN0IFVnPVRhZ1Zpc2l0b3I7Y2xhc3MgUmVmZXJlbmNlVmlzaXRvciBleHRlbmRzKE1peGluKHVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBqaCx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVmZXJlbmNlIl0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSExfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz11bS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIFB1KHRoaXMuZWxlbWVudC4kcmVmKSYmdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgicmVmZXJlbmNlLWVsZW1lbnQiKSxvfX1jb25zdCB6Zz1SZWZlcmVuY2VWaXNpdG9yO2NvbnN0IFdnPWNsYXNzICRSZWZWaXNpdG9yXyRSZWZWaXNpdG9yIGV4dGVuZHMgcm17U3RyaW5nRWxlbWVudChzKXtjb25zdCBvPXN1cGVyLmVudGVyKHMpO3JldHVybiB0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJyZWZlcmVuY2UtdmFsdWUiKSxvfX07Y2xhc3MgUGFyYW1ldGVyVmlzaXRvciBleHRlbmRzKE1peGluKHVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBfaCx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiUGFyYW1ldGVyIl0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz11bS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIE11KHRoaXMuZWxlbWVudC5jb250ZW50UHJvcCkmJnRoaXMuZWxlbWVudC5jb250ZW50UHJvcC5maWx0ZXIob2cpLmZvckVhY2goKChzLG8pPT57cy5zZXRNZXRhUHJvcGVydHkoIm1lZGlhLXR5cGUiLHNlcmlhbGl6ZXJzX3ZhbHVlKG8pKX0pKSxvfX1jb25zdCBLZz1QYXJhbWV0ZXJWaXNpdG9yO2NsYXNzIFNjaGVtYVZpc2l0b3JfU2NoZW1hVmlzaXRvciBleHRlbmRzKE1peGluKE5tLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5hbHRlcm5hdG9yPVt7cHJlZGljYXRlOmlzUmVmZXJlbmNlTGlrZUVsZW1lbnQsc3BlY1BhdGg6WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiXX0se3ByZWRpY2F0ZTplc19ULHNwZWNQYXRoOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiU2NoZW1hIl19XX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89Tm0ucHJvdG90eXBlLmVudGVyLmNhbGwodGhpcyxzKTtyZXR1cm4gR20odGhpcy5lbGVtZW50KSYmdGhpcy5lbGVtZW50LnNldE1ldGFQcm9wZXJ0eSgicmVmZXJlbmNlZC1lbGVtZW50Iiwic2NoZW1hIiksb319Y29uc3QgWWc9U2NoZW1hVmlzaXRvcl9TY2hlbWFWaXNpdG9yO2NsYXNzIEhlYWRlclZpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgWXAsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIkhlYWRlciJdKSx0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz0hMH19Y29uc3QgWGc9SGVhZGVyVmlzaXRvcjtjbGFzcyBoZWFkZXJfU2NoZW1hVmlzaXRvcl9TY2hlbWFWaXNpdG9yIGV4dGVuZHMoTWl4aW4oTm0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmFsdGVybmF0b3I9W3twcmVkaWNhdGU6aXNSZWZlcmVuY2VMaWtlRWxlbWVudCxzcGVjUGF0aDpbImRvY3VtZW50Iiwib2JqZWN0cyIsIlJlZmVyZW5jZSJdfSx7cHJlZGljYXRlOmVzX1Qsc3BlY1BhdGg6WyJkb2N1bWVudCIsIm9iamVjdHMiLCJTY2hlbWEiXX1dfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1ObS5wcm90b3R5cGUuZW50ZXIuY2FsbCh0aGlzLHMpO3JldHVybiBHbSh0aGlzLmVsZW1lbnQpJiZ0aGlzLmVsZW1lbnQuc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJzY2hlbWEiKSxvfX1jb25zdCBaZz1oZWFkZXJfU2NoZW1hVmlzaXRvcl9TY2hlbWFWaXNpdG9yO2NsYXNzIEhlYWRlckV4YW1wbGVzIGV4dGVuZHMgU3UuU2h7c3RhdGljIHByaW1hcnlDbGFzcz0iaGVhZGVyLWV4YW1wbGVzIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKEhlYWRlckV4YW1wbGVzLnByaW1hcnlDbGFzcyksdGhpcy5jbGFzc2VzLnB1c2goImV4YW1wbGVzIil9fWNvbnN0IGV5PUhlYWRlckV4YW1wbGVzO2NvbnN0IHR5PWNsYXNzIGhlYWRlcl9FeGFtcGxlc1Zpc2l0b3JfRXhhbXBsZXNWaXNpdG9yIGV4dGVuZHMgZmd7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBleX19O2NsYXNzIENvbnRlbnRWaXNpdG9yIGV4dGVuZHMoTWl4aW4oRW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFN1LlNoLHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goImNvbnRlbnQiKSx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiTWVkaWFUeXBlIl0pfX1jb25zdCByeT1Db250ZW50VmlzaXRvcjtjbGFzcyBIZWFkZXJDb250ZW50IGV4dGVuZHMgU3UuU2h7c3RhdGljIHByaW1hcnlDbGFzcz0iaGVhZGVyLWNvbnRlbnQiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goSGVhZGVyQ29udGVudC5wcmltYXJ5Q2xhc3MpLHRoaXMuY2xhc3Nlcy5wdXNoKCJjb250ZW50Iil9fWNvbnN0IG55PUhlYWRlckNvbnRlbnQ7Y29uc3Qgc3k9Y2xhc3MgQ29udGVudFZpc2l0b3JfQ29udGVudFZpc2l0b3IgZXh0ZW5kcyByeXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IG55fX07Y2xhc3Mgc2NoZW1hX1NjaGVtYVZpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgV2YsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIlNjaGVtYSJdKSx0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz0hMH19Y29uc3Qgb3k9c2NoZW1hX1NjaGVtYVZpc2l0b3IsaXk9UmYudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5KU09OU2NoZW1hLmZpeGVkRmllbGRzLmFsbE9mO2NvbnN0IGF5PWNsYXNzIEFsbE9mVmlzaXRvcl9BbGxPZlZpc2l0b3IgZXh0ZW5kcyBpeXtBcnJheUVsZW1lbnQocyl7Y29uc3Qgbz1peS5wcm90b3R5cGUuQXJyYXlFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmZpbHRlcihHbSkuZm9yRWFjaCgocz0+e3Muc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJzY2hlbWEiKX0pKSxvfX0sY3k9UmYudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5KU09OU2NoZW1hLmZpeGVkRmllbGRzLmFueU9mO2NvbnN0IGx5PWNsYXNzIEFueU9mVmlzaXRvcl9BbnlPZlZpc2l0b3IgZXh0ZW5kcyBjeXtBcnJheUVsZW1lbnQocyl7Y29uc3Qgbz1jeS5wcm90b3R5cGUuQXJyYXlFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmZpbHRlcihHbSkuZm9yRWFjaCgocz0+e3Muc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJzY2hlbWEiKX0pKSxvfX0sdXk9UmYudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5KU09OU2NoZW1hLmZpeGVkRmllbGRzLm9uZU9mO2NvbnN0IHB5PWNsYXNzIE9uZU9mVmlzaXRvcl9PbmVPZlZpc2l0b3IgZXh0ZW5kcyB1eXtBcnJheUVsZW1lbnQocyl7Y29uc3Qgbz11eS5wcm90b3R5cGUuQXJyYXlFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmZpbHRlcihHbSkuZm9yRWFjaCgocz0+e3Muc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJzY2hlbWEiKX0pKSxvfX0saHk9UmYudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5KU09OU2NoZW1hLmZpeGVkRmllbGRzLml0ZW1zO2NvbnN0IGR5PWNsYXNzIEl0ZW1zVmlzaXRvcl9JdGVtc1Zpc2l0b3IgZXh0ZW5kcyBoeXtPYmplY3RFbGVtZW50KHMpe2NvbnN0IG89aHkucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiBHbSh0aGlzLmVsZW1lbnQpJiZ0aGlzLmVsZW1lbnQuc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJzY2hlbWEiKSxvfUFycmF5RWxlbWVudChzKXtyZXR1cm4gdGhpcy5lbnRlcihzKX19LGZ5PVJmLnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuSlNPTlNjaGVtYS5maXhlZEZpZWxkcy5wcm9wZXJ0aWVzO2NvbnN0IG15PWNsYXNzIFByb3BlcnRpZXNWaXNpdG9yX1Byb3BlcnRpZXNWaXNpdG9yIGV4dGVuZHMgZnl7T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPWZ5LnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmZpbHRlcihHbSkuZm9yRWFjaCgocz0+e3Muc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJzY2hlbWEiKX0pKSxvfX0sZ3k9UmYudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5KU09OU2NoZW1hLmZpeGVkRmllbGRzLnR5cGU7Y29uc3QgeXk9Y2xhc3MgVHlwZVZpc2l0b3JfVHlwZVZpc2l0b3IgZXh0ZW5kcyBneXtBcnJheUVsZW1lbnQocyl7cmV0dXJuIHRoaXMuZW50ZXIocyl9fSx2eT1SZi52aXNpdG9ycy5KU09OU2NoZW1hT3JKU09OUmVmZXJlbmNlVmlzaXRvcjtjb25zdCBieT1jbGFzcyBTY2hlbWFPclJlZmVyZW5jZVZpc2l0b3JfU2NoZW1hT3JSZWZlcmVuY2VWaXNpdG9yIGV4dGVuZHMgdnl7T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPXZ5LnByb3RvdHlwZS5lbnRlci5jYWxsKHRoaXMscyk7cmV0dXJuIEdtKHRoaXMuZWxlbWVudCkmJnRoaXMuZWxlbWVudC5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsInNjaGVtYSIpLG99fTtjbGFzcyBEaXNjcmltaW5hdG9yVmlzaXRvciBleHRlbmRzKE1peGluKHVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBKcCx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiRGlzY3JpbWluYXRvciJdKSx0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz0hMX19Y29uc3QgX3k9RGlzY3JpbWluYXRvclZpc2l0b3I7Y2xhc3MgRGlzY3JpbWluYXRvck1hcHBpbmcgZXh0ZW5kcyBTdS5TaHtzdGF0aWMgcHJpbWFyeUNsYXNzPSJkaXNjcmltaW5hdG9yLW1hcHBpbmciO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goRGlzY3JpbWluYXRvck1hcHBpbmcucHJpbWFyeUNsYXNzKX19Y29uc3QgU3k9RGlzY3JpbWluYXRvck1hcHBpbmc7Y2xhc3MgTWFwcGluZ1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihFbSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgU3ksdGhpcy5zcGVjUGF0aD1mYyhbInZhbHVlIl0pfX1jb25zdCBFeT1NYXBwaW5nVmlzaXRvcjtjbGFzcyBYbWxWaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IGVtLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJYTUwiXSksdGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM9ITB9fWNvbnN0IHd5PVhtbFZpc2l0b3I7Y2xhc3MgUGFyYW1ldGVyRXhhbXBsZXMgZXh0ZW5kcyBTdS5TaHtzdGF0aWMgcHJpbWFyeUNsYXNzPSJwYXJhbWV0ZXItZXhhbXBsZXMiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goUGFyYW1ldGVyRXhhbXBsZXMucHJpbWFyeUNsYXNzKSx0aGlzLmNsYXNzZXMucHVzaCgiZXhhbXBsZXMiKX19Y29uc3QgeHk9UGFyYW1ldGVyRXhhbXBsZXM7Y29uc3Qga3k9Y2xhc3MgcGFyYW1ldGVyX0V4YW1wbGVzVmlzaXRvcl9FeGFtcGxlc1Zpc2l0b3IgZXh0ZW5kcyBmZ3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IHh5fX07Y2xhc3MgUGFyYW1ldGVyQ29udGVudCBleHRlbmRzIFN1LlNoe3N0YXRpYyBwcmltYXJ5Q2xhc3M9InBhcmFtZXRlci1jb250ZW50Ijtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKFBhcmFtZXRlckNvbnRlbnQucHJpbWFyeUNsYXNzKSx0aGlzLmNsYXNzZXMucHVzaCgiY29udGVudCIpfX1jb25zdCBPeT1QYXJhbWV0ZXJDb250ZW50O2NvbnN0IEN5PWNsYXNzIHBhcmFtZXRlcl9Db250ZW50VmlzaXRvcl9Db250ZW50VmlzaXRvciBleHRlbmRzIHJ5e2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgT3l9fTtjbGFzcyBDb21wb25lbnRzU2NoZW1hcyBleHRlbmRzIFN1LlNoe3N0YXRpYyBwcmltYXJ5Q2xhc3M9ImNvbXBvbmVudHMtc2NoZW1hcyI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChDb21wb25lbnRzU2NoZW1hcy5wcmltYXJ5Q2xhc3MpfX1jb25zdCBBeT1Db21wb25lbnRzU2NoZW1hcztjbGFzcyBTY2hlbWFzVmlzaXRvciBleHRlbmRzKE1peGluKEVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBBeSx0aGlzLnNwZWNQYXRoPXM9PmlzUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiXTpbImRvY3VtZW50Iiwib2JqZWN0cyIsIlNjaGVtYSJdfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1FbS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIHRoaXMuZWxlbWVudC5maWx0ZXIoR20pLmZvckVhY2goKHM9PntzLnNldE1ldGFQcm9wZXJ0eSgicmVmZXJlbmNlZC1lbGVtZW50Iiwic2NoZW1hIil9KSksb319Y29uc3Qgank9U2NoZW1hc1Zpc2l0b3I7Y2xhc3MgQ29tcG9uZW50c1Jlc3BvbnNlcyBleHRlbmRzIFN1LlNoe3N0YXRpYyBwcmltYXJ5Q2xhc3M9ImNvbXBvbmVudHMtcmVzcG9uc2VzIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKENvbXBvbmVudHNSZXNwb25zZXMucHJpbWFyeUNsYXNzKX19Y29uc3QgUHk9Q29tcG9uZW50c1Jlc3BvbnNlcztjbGFzcyBSZXNwb25zZXNWaXNpdG9yIGV4dGVuZHMoTWl4aW4oRW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFB5LHRoaXMuc3BlY1BhdGg9cz0+aXNSZWZlcmVuY2VMaWtlRWxlbWVudChzKT9bImRvY3VtZW50Iiwib2JqZWN0cyIsIlJlZmVyZW5jZSJdOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVzcG9uc2UiXX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89RW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiB0aGlzLmVsZW1lbnQuZmlsdGVyKEdtKS5mb3JFYWNoKChzPT57cy5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsInJlc3BvbnNlIil9KSksdGhpcy5lbGVtZW50LmZpbHRlcihYbSkuZm9yRWFjaCgoKHMsbyk9PntzLnNldE1ldGFQcm9wZXJ0eSgiaHR0cC1zdGF0dXMtY29kZSIsc2VyaWFsaXplcnNfdmFsdWUobykpfSkpLG99fWNvbnN0IEl5PVJlc3BvbnNlc1Zpc2l0b3I7Y2xhc3MgQ29tcG9uZW50c1BhcmFtZXRlcnMgZXh0ZW5kcyBTdS5TaHtzdGF0aWMgcHJpbWFyeUNsYXNzPSJjb21wb25lbnRzLXBhcmFtZXRlcnMiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goQ29tcG9uZW50c1BhcmFtZXRlcnMucHJpbWFyeUNsYXNzKSx0aGlzLmNsYXNzZXMucHVzaCgicGFyYW1ldGVycyIpfX1jb25zdCBUeT1Db21wb25lbnRzUGFyYW1ldGVycztjbGFzcyBQYXJhbWV0ZXJzVmlzaXRvcl9QYXJhbWV0ZXJzVmlzaXRvciBleHRlbmRzKE1peGluKEVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBUeSx0aGlzLnNwZWNQYXRoPXM9PmlzUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiXTpbImRvY3VtZW50Iiwib2JqZWN0cyIsIlBhcmFtZXRlciJdfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1FbS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIHRoaXMuZWxlbWVudC5maWx0ZXIoR20pLmZvckVhY2goKHM9PntzLnNldE1ldGFQcm9wZXJ0eSgicmVmZXJlbmNlZC1lbGVtZW50IiwicGFyYW1ldGVyIil9KSksb319Y29uc3QgTnk9UGFyYW1ldGVyc1Zpc2l0b3JfUGFyYW1ldGVyc1Zpc2l0b3I7Y2xhc3MgQ29tcG9uZW50c0V4YW1wbGVzIGV4dGVuZHMgU3UuU2h7c3RhdGljIHByaW1hcnlDbGFzcz0iY29tcG9uZW50cy1leGFtcGxlcyI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChDb21wb25lbnRzRXhhbXBsZXMucHJpbWFyeUNsYXNzKSx0aGlzLmNsYXNzZXMucHVzaCgiZXhhbXBsZXMiKX19Y29uc3QgTXk9Q29tcG9uZW50c0V4YW1wbGVzO2NsYXNzIGNvbXBvbmVudHNfRXhhbXBsZXNWaXNpdG9yX0V4YW1wbGVzVmlzaXRvciBleHRlbmRzKE1peGluKEVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBNeSx0aGlzLnNwZWNQYXRoPXM9PmlzUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiXTpbImRvY3VtZW50Iiwib2JqZWN0cyIsIkV4YW1wbGUiXX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89RW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiB0aGlzLmVsZW1lbnQuZmlsdGVyKEdtKS5mb3JFYWNoKChzPT57cy5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsImV4YW1wbGUiKX0pKSxvfX1jb25zdCBSeT1jb21wb25lbnRzX0V4YW1wbGVzVmlzaXRvcl9FeGFtcGxlc1Zpc2l0b3I7Y2xhc3MgQ29tcG9uZW50c1JlcXVlc3RCb2RpZXMgZXh0ZW5kcyBTdS5TaHtzdGF0aWMgcHJpbWFyeUNsYXNzPSJjb21wb25lbnRzLXJlcXVlc3QtYm9kaWVzIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKENvbXBvbmVudHNSZXF1ZXN0Qm9kaWVzLnByaW1hcnlDbGFzcyl9fWNvbnN0IER5PUNvbXBvbmVudHNSZXF1ZXN0Qm9kaWVzO2NsYXNzIFJlcXVlc3RCb2RpZXNWaXNpdG9yIGV4dGVuZHMoTWl4aW4oRW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IER5LHRoaXMuc3BlY1BhdGg9cz0+aXNSZWZlcmVuY2VMaWtlRWxlbWVudChzKT9bImRvY3VtZW50Iiwib2JqZWN0cyIsIlJlZmVyZW5jZSJdOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVxdWVzdEJvZHkiXX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89RW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiB0aGlzLmVsZW1lbnQuZmlsdGVyKEdtKS5mb3JFYWNoKChzPT57cy5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsInJlcXVlc3RCb2R5Iil9KSksb319Y29uc3QgTHk9UmVxdWVzdEJvZGllc1Zpc2l0b3I7Y2xhc3MgQ29tcG9uZW50c0hlYWRlcnMgZXh0ZW5kcyBTdS5TaHtzdGF0aWMgcHJpbWFyeUNsYXNzPSJjb21wb25lbnRzLWhlYWRlcnMiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goQ29tcG9uZW50c0hlYWRlcnMucHJpbWFyeUNsYXNzKX19Y29uc3QgRnk9Q29tcG9uZW50c0hlYWRlcnM7Y2xhc3MgSGVhZGVyc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihFbSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgRnksdGhpcy5zcGVjUGF0aD1zPT5pc1JlZmVyZW5jZUxpa2VFbGVtZW50KHMpP1siZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVmZXJlbmNlIl06WyJkb2N1bWVudCIsIm9iamVjdHMiLCJIZWFkZXIiXX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89RW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiB0aGlzLmVsZW1lbnQuZmlsdGVyKEdtKS5mb3JFYWNoKChzPT57cy5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsImhlYWRlciIpfSkpLHRoaXMuZWxlbWVudC5maWx0ZXIoQm0pLmZvckVhY2goKChzLG8pPT57cy5zZXRNZXRhUHJvcGVydHkoImhlYWRlci1uYW1lIixzZXJpYWxpemVyc192YWx1ZShvKSl9KSksb319Y29uc3QgQnk9SGVhZGVyc1Zpc2l0b3I7Y2xhc3MgQ29tcG9uZW50c1NlY3VyaXR5U2NoZW1lcyBleHRlbmRzIFN1LlNoe3N0YXRpYyBwcmltYXJ5Q2xhc3M9ImNvbXBvbmVudHMtc2VjdXJpdHktc2NoZW1lcyI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChDb21wb25lbnRzU2VjdXJpdHlTY2hlbWVzLnByaW1hcnlDbGFzcyl9fWNvbnN0ICR5PUNvbXBvbmVudHNTZWN1cml0eVNjaGVtZXM7Y2xhc3MgU2VjdXJpdHlTY2hlbWVzVmlzaXRvciBleHRlbmRzKE1peGluKEVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyAkeSx0aGlzLnNwZWNQYXRoPXM9PmlzUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiXTpbImRvY3VtZW50Iiwib2JqZWN0cyIsIlNlY3VyaXR5U2NoZW1lIl19T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPUVtLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmZpbHRlcihHbSkuZm9yRWFjaCgocz0+e3Muc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJzZWN1cml0eVNjaGVtZSIpfSkpLG99fWNvbnN0IHF5PVNlY3VyaXR5U2NoZW1lc1Zpc2l0b3I7Y2xhc3MgQ29tcG9uZW50c0xpbmtzIGV4dGVuZHMgU3UuU2h7c3RhdGljIHByaW1hcnlDbGFzcz0iY29tcG9uZW50cy1saW5rcyI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChDb21wb25lbnRzTGlua3MucHJpbWFyeUNsYXNzKX19Y29uc3QgVnk9Q29tcG9uZW50c0xpbmtzO2NsYXNzIExpbmtzVmlzaXRvcl9MaW5rc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihFbSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgVnksdGhpcy5zcGVjUGF0aD1zPT5pc1JlZmVyZW5jZUxpa2VFbGVtZW50KHMpP1siZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVmZXJlbmNlIl06WyJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rIl19T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPUVtLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmZpbHRlcihHbSkuZm9yRWFjaCgocz0+e3Muc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJsaW5rIil9KSksb319Y29uc3QgVXk9TGlua3NWaXNpdG9yX0xpbmtzVmlzaXRvcjtjbGFzcyBDb21wb25lbnRzQ2FsbGJhY2tzIGV4dGVuZHMgU3UuU2h7c3RhdGljIHByaW1hcnlDbGFzcz0iY29tcG9uZW50cy1jYWxsYmFja3MiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goQ29tcG9uZW50c0NhbGxiYWNrcy5wcmltYXJ5Q2xhc3MpfX1jb25zdCB6eT1Db21wb25lbnRzQ2FsbGJhY2tzO2NsYXNzIENhbGxiYWNrc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihFbSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgenksdGhpcy5zcGVjUGF0aD1zPT5pc1JlZmVyZW5jZUxpa2VFbGVtZW50KHMpP1siZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVmZXJlbmNlIl06WyJkb2N1bWVudCIsIm9iamVjdHMiLCJDYWxsYmFjayJdfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1FbS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIHRoaXMuZWxlbWVudC5maWx0ZXIoR20pLmZvckVhY2goKHM9PntzLnNldE1ldGFQcm9wZXJ0eSgicmVmZXJlbmNlZC1lbGVtZW50IiwiY2FsbGJhY2siKX0pKSxvfX1jb25zdCBXeT1DYWxsYmFja3NWaXNpdG9yO2NsYXNzIEV4YW1wbGVWaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IEtwLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJFeGFtcGxlIl0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz11bS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIFB1KHRoaXMuZWxlbWVudC5leHRlcm5hbFZhbHVlKSYmdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgicmVmZXJlbmNlLWVsZW1lbnQiKSxvfX1jb25zdCBKeT1FeGFtcGxlVmlzaXRvcjtjb25zdCBIeT1jbGFzcyBFeHRlcm5hbFZhbHVlVmlzaXRvciBleHRlbmRzIHJte1N0cmluZ0VsZW1lbnQocyl7Y29uc3Qgbz1zdXBlci5lbnRlcihzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgicmVmZXJlbmNlLXZhbHVlIiksb319O2NsYXNzIEV4dGVybmFsRG9jdW1lbnRhdGlvblZpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgR3AsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIkV4dGVybmFsRG9jdW1lbnRhdGlvbiJdKSx0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz0hMH19Y29uc3QgS3k9RXh0ZXJuYWxEb2N1bWVudGF0aW9uVmlzaXRvcjtjbGFzcyBlbmNvZGluZ19FbmNvZGluZ1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgSHAsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIkVuY29kaW5nIl0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz11bS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIE11KHRoaXMuZWxlbWVudC5oZWFkZXJzKSYmdGhpcy5lbGVtZW50LmhlYWRlcnMuZmlsdGVyKEJtKS5mb3JFYWNoKCgocyxvKT0+e3Muc2V0TWV0YVByb3BlcnR5KCJoZWFkZXItbmFtZSIsc2VyaWFsaXplcnNfdmFsdWUobykpfSkpLG99fWNvbnN0IEd5PWVuY29kaW5nX0VuY29kaW5nVmlzaXRvcjtjbGFzcyBFbmNvZGluZ0hlYWRlcnMgZXh0ZW5kcyBTdS5TaHtzdGF0aWMgcHJpbWFyeUNsYXNzPSJlbmNvZGluZy1oZWFkZXJzIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKEVuY29kaW5nSGVhZGVycy5wcmltYXJ5Q2xhc3MpfX1jb25zdCBZeT1FbmNvZGluZ0hlYWRlcnM7Y2xhc3MgSGVhZGVyc1Zpc2l0b3JfSGVhZGVyc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihFbSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgWXksdGhpcy5zcGVjUGF0aD1zPT5pc1JlZmVyZW5jZUxpa2VFbGVtZW50KHMpP1siZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVmZXJlbmNlIl06WyJkb2N1bWVudCIsIm9iamVjdHMiLCJIZWFkZXIiXX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89RW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiB0aGlzLmVsZW1lbnQuZmlsdGVyKEdtKS5mb3JFYWNoKChzPT57cy5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsImhlYWRlciIpfSkpLHRoaXMuZWxlbWVudC5mb3JFYWNoKCgocyxvKT0+e2lmKCFCbShzKSlyZXR1cm47Y29uc3QgaT1zZXJpYWxpemVyc192YWx1ZShvKTtzLnNldE1ldGFQcm9wZXJ0eSgiaGVhZGVyTmFtZSIsaSl9KSksb319Y29uc3QgWHk9SGVhZGVyc1Zpc2l0b3JfSGVhZGVyc1Zpc2l0b3I7Y2xhc3MgUGF0aHNWaXNpdG9yIGV4dGVuZHMoTWl4aW4oU20scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IE9oLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJQYXRoSXRlbSJdKSx0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz0hMCx0aGlzLmZpZWxkUGF0dGVyblByZWRpY2F0ZT1lc19UfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1TbS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIHRoaXMuZWxlbWVudC5maWx0ZXIoSG0pLmZvckVhY2goKChzLG8pPT57by5jbGFzc2VzLnB1c2goIm9wZW5hcGktcGF0aC10ZW1wbGF0ZSIpLG8uY2xhc3Nlcy5wdXNoKCJwYXRoLXRlbXBsYXRlIikscy5zZXRNZXRhUHJvcGVydHkoInBhdGgiLGNsb25lRGVlcChvKSl9KSksb319Y29uc3QgUXk9UGF0aHNWaXNpdG9yO2NsYXNzIFJlcXVlc3RCb2R5VmlzaXRvciBleHRlbmRzKE1peGluKHVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBQaCx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVxdWVzdEJvZHkiXSl9T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPXVtLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gTXUodGhpcy5lbGVtZW50LmNvbnRlbnRQcm9wKSYmdGhpcy5lbGVtZW50LmNvbnRlbnRQcm9wLmZpbHRlcihvZykuZm9yRWFjaCgoKHMsbyk9PntzLnNldE1ldGFQcm9wZXJ0eSgibWVkaWEtdHlwZSIsc2VyaWFsaXplcnNfdmFsdWUobykpfSkpLG99fWNvbnN0IFp5PVJlcXVlc3RCb2R5VmlzaXRvcjtjbGFzcyBSZXF1ZXN0Qm9keUNvbnRlbnQgZXh0ZW5kcyBTdS5TaHtzdGF0aWMgcHJpbWFyeUNsYXNzPSJyZXF1ZXN0LWJvZHktY29udGVudCI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChSZXF1ZXN0Qm9keUNvbnRlbnQucHJpbWFyeUNsYXNzKSx0aGlzLmNsYXNzZXMucHVzaCgiY29udGVudCIpfX1jb25zdCBldj1SZXF1ZXN0Qm9keUNvbnRlbnQ7Y29uc3QgdHY9Y2xhc3MgcmVxdWVzdF9ib2R5X0NvbnRlbnRWaXNpdG9yX0NvbnRlbnRWaXNpdG9yIGV4dGVuZHMgcnl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBldn19O2NsYXNzIENhbGxiYWNrVmlzaXRvciBleHRlbmRzKE1peGluKFNtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBVcCx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiUGF0aEl0ZW0iXSksdGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM9ITAsdGhpcy5maWVsZFBhdHRlcm5QcmVkaWNhdGU9cz0+L3soPzxleHByZXNzaW9uPltefV17MSwyMDgzfSl9Ly50ZXN0KFN0cmluZyhzKSl9T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPUVtLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmZpbHRlcihIbSkuZm9yRWFjaCgoKHMsbyk9PntzLnNldE1ldGFQcm9wZXJ0eSgicnVudGltZS1leHByZXNzaW9uIixzZXJpYWxpemVyc192YWx1ZShvKSl9KSksb319Y29uc3QgcnY9Q2FsbGJhY2tWaXNpdG9yO2NsYXNzIFJlc3BvbnNlVmlzaXRvciBleHRlbmRzKE1peGluKHVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBJaCx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVzcG9uc2UiXSl9T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPXVtLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gTXUodGhpcy5lbGVtZW50LmNvbnRlbnRQcm9wKSYmdGhpcy5lbGVtZW50LmNvbnRlbnRQcm9wLmZpbHRlcihvZykuZm9yRWFjaCgoKHMsbyk9PntzLnNldE1ldGFQcm9wZXJ0eSgibWVkaWEtdHlwZSIsc2VyaWFsaXplcnNfdmFsdWUobykpfSkpLE11KHRoaXMuZWxlbWVudC5oZWFkZXJzKSYmdGhpcy5lbGVtZW50LmhlYWRlcnMuZmlsdGVyKEJtKS5mb3JFYWNoKCgocyxvKT0+e3Muc2V0TWV0YVByb3BlcnR5KCJoZWFkZXItbmFtZSIsc2VyaWFsaXplcnNfdmFsdWUobykpfSkpLG99fWNvbnN0IG52PVJlc3BvbnNlVmlzaXRvcjtjbGFzcyBSZXNwb25zZUhlYWRlcnMgZXh0ZW5kcyBTdS5TaHtzdGF0aWMgcHJpbWFyeUNsYXNzPSJyZXNwb25zZS1oZWFkZXJzIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKFJlc3BvbnNlSGVhZGVycy5wcmltYXJ5Q2xhc3MpfX1jb25zdCBzdj1SZXNwb25zZUhlYWRlcnM7Y2xhc3MgcmVzcG9uc2VfSGVhZGVyc1Zpc2l0b3JfSGVhZGVyc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihFbSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgc3YsdGhpcy5zcGVjUGF0aD1zPT5pc1JlZmVyZW5jZUxpa2VFbGVtZW50KHMpP1siZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVmZXJlbmNlIl06WyJkb2N1bWVudCIsIm9iamVjdHMiLCJIZWFkZXIiXX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89RW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiB0aGlzLmVsZW1lbnQuZmlsdGVyKEdtKS5mb3JFYWNoKChzPT57cy5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsImhlYWRlciIpfSkpLHRoaXMuZWxlbWVudC5mb3JFYWNoKCgocyxvKT0+e2lmKCFCbShzKSlyZXR1cm47Y29uc3QgaT1zZXJpYWxpemVyc192YWx1ZShvKTtzLnNldE1ldGFQcm9wZXJ0eSgiaGVhZGVyLW5hbWUiLGkpfSkpLG99fWNvbnN0IG92PXJlc3BvbnNlX0hlYWRlcnNWaXNpdG9yX0hlYWRlcnNWaXNpdG9yO2NsYXNzIFJlc3BvbnNlQ29udGVudCBleHRlbmRzIFN1LlNoe3N0YXRpYyBwcmltYXJ5Q2xhc3M9InJlc3BvbnNlLWNvbnRlbnQiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goUmVzcG9uc2VDb250ZW50LnByaW1hcnlDbGFzcyksdGhpcy5jbGFzc2VzLnB1c2goImNvbnRlbnQiKX19Y29uc3QgaXY9UmVzcG9uc2VDb250ZW50O2NvbnN0IGF2PWNsYXNzIHJlc3BvbnNlX0NvbnRlbnRWaXNpdG9yX0NvbnRlbnRWaXNpdG9yIGV4dGVuZHMgcnl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBpdn19O2NsYXNzIFJlc3BvbnNlTGlua3MgZXh0ZW5kcyBTdS5TaHtzdGF0aWMgcHJpbWFyeUNsYXNzPSJyZXNwb25zZS1saW5rcyI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChSZXNwb25zZUxpbmtzLnByaW1hcnlDbGFzcyl9fWNvbnN0IGN2PVJlc3BvbnNlTGlua3M7Y2xhc3MgcmVzcG9uc2VfTGlua3NWaXNpdG9yX0xpbmtzVmlzaXRvciBleHRlbmRzKE1peGluKEVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBjdix0aGlzLnNwZWNQYXRoPXM9PmlzUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiXTpbImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmsiXX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89RW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiB0aGlzLmVsZW1lbnQuZmlsdGVyKEdtKS5mb3JFYWNoKChzPT57cy5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsImxpbmsiKX0pKSxvfX1jb25zdCBsdj1yZXNwb25zZV9MaW5rc1Zpc2l0b3JfTGlua3NWaXNpdG9yO2Z1bmN0aW9uIF9pc051bWJlcihzKXtyZXR1cm4iW29iamVjdCBOdW1iZXJdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzKX12YXIgdXY9X2N1cnJ5MigoZnVuY3Rpb24gcmFuZ2UocyxvKXtpZighX2lzTnVtYmVyKHMpfHwhX2lzTnVtYmVyKG8pKXRocm93IG5ldyBUeXBlRXJyb3IoIkJvdGggYXJndW1lbnRzIHRvIHJhbmdlIG11c3QgYmUgbnVtYmVycyIpO2Zvcih2YXIgaT1BcnJheShzPG8/by1zOjApLGE9czwwP28rTWF0aC5hYnMocyk6by1zLHU9MDt1PGE7KWlbdV09dStzLHUrPTE7cmV0dXJuIGl9KSk7Y29uc3QgcHY9dXY7ZnVuY3Rpb24gaGFzT3JBZGQocyxvLGkpe3ZhciBhLHU9dHlwZW9mIHM7c3dpdGNoKHUpe2Nhc2Uic3RyaW5nIjpjYXNlIm51bWJlciI6cmV0dXJuIDA9PT1zJiYxL3M9PS0xLzA/ISFpLl9pdGVtc1siLTAiXXx8KG8mJihpLl9pdGVtc1siLTAiXT0hMCksITEpOm51bGwhPT1pLl9uYXRpdmVTZXQ/bz8oYT1pLl9uYXRpdmVTZXQuc2l6ZSxpLl9uYXRpdmVTZXQuYWRkKHMpLGkuX25hdGl2ZVNldC5zaXplPT09YSk6aS5fbmF0aXZlU2V0LmhhcyhzKTp1IGluIGkuX2l0ZW1zP3MgaW4gaS5faXRlbXNbdV18fChvJiYoaS5faXRlbXNbdV1bc109ITApLCExKToobyYmKGkuX2l0ZW1zW3VdPXt9LGkuX2l0ZW1zW3VdW3NdPSEwKSwhMSk7Y2FzZSJib29sZWFuIjppZih1IGluIGkuX2l0ZW1zKXt2YXIgXz1zPzE6MDtyZXR1cm4hIWkuX2l0ZW1zW3VdW19dfHwobyYmKGkuX2l0ZW1zW3VdW19dPSEwKSwhMSl9cmV0dXJuIG8mJihpLl9pdGVtc1t1XT1zP1shMSwhMF06WyEwLCExXSksITE7Y2FzZSJmdW5jdGlvbiI6cmV0dXJuIG51bGwhPT1pLl9uYXRpdmVTZXQ/bz8oYT1pLl9uYXRpdmVTZXQuc2l6ZSxpLl9uYXRpdmVTZXQuYWRkKHMpLGkuX25hdGl2ZVNldC5zaXplPT09YSk6aS5fbmF0aXZlU2V0LmhhcyhzKTp1IGluIGkuX2l0ZW1zPyEhX2luY2x1ZGVzKHMsaS5faXRlbXNbdV0pfHwobyYmaS5faXRlbXNbdV0ucHVzaChzKSwhMSk6KG8mJihpLl9pdGVtc1t1XT1bc10pLCExKTtjYXNlInVuZGVmaW5lZCI6cmV0dXJuISFpLl9pdGVtc1t1XXx8KG8mJihpLl9pdGVtc1t1XT0hMCksITEpO2Nhc2Uib2JqZWN0IjppZihudWxsPT09cylyZXR1cm4hIWkuX2l0ZW1zLm51bGx8fChvJiYoaS5faXRlbXMubnVsbD0hMCksITEpO2RlZmF1bHQ6cmV0dXJuKHU9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHMpKWluIGkuX2l0ZW1zPyEhX2luY2x1ZGVzKHMsaS5faXRlbXNbdV0pfHwobyYmaS5faXRlbXNbdV0ucHVzaChzKSwhMSk6KG8mJihpLl9pdGVtc1t1XT1bc10pLCExKX19Y29uc3QgaHY9ZnVuY3Rpb24oKXtmdW5jdGlvbiBfU2V0KCl7dGhpcy5fbmF0aXZlU2V0PSJmdW5jdGlvbiI9PXR5cGVvZiBTZXQ/bmV3IFNldDpudWxsLHRoaXMuX2l0ZW1zPXt9fXJldHVybiBfU2V0LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24ocyl7cmV0dXJuIWhhc09yQWRkKHMsITAsdGhpcyl9LF9TZXQucHJvdG90eXBlLmhhcz1mdW5jdGlvbihzKXtyZXR1cm4gaGFzT3JBZGQocywhMSx0aGlzKX0sX1NldH0oKTt2YXIgZHY9X2N1cnJ5MigoZnVuY3Rpb24gZGlmZmVyZW5jZShzLG8pe2Zvcih2YXIgaT1bXSxhPTAsdT1zLmxlbmd0aCxfPW8ubGVuZ3RoLHc9bmV3IGh2LHg9MDt4PF87eCs9MSl3LmFkZChvW3hdKTtmb3IoO2E8dTspdy5hZGQoc1thXSkmJihpW2kubGVuZ3RoXT1zW2FdKSxhKz0xO3JldHVybiBpfSkpO2NvbnN0IGZ2PWR2O2NsYXNzIE1peGVkRmllbGRzVmlzaXRvciBleHRlbmRzKE1peGluKHVtLFNtKSl7c3BlY1BhdGhGaXhlZEZpZWxkcztzcGVjUGF0aFBhdHRlcm5lZEZpZWxkcztjb25zdHJ1Y3Rvcih7c3BlY1BhdGhGaXhlZEZpZWxkczpzLHNwZWNQYXRoUGF0dGVybmVkRmllbGRzOm8sLi4uaX0pe3N1cGVyKHsuLi5pfSksdGhpcy5zcGVjUGF0aEZpeGVkRmllbGRzPXMsdGhpcy5zcGVjUGF0aFBhdHRlcm5lZEZpZWxkcz1vfU9iamVjdEVsZW1lbnQocyl7Y29uc3R7c3BlY1BhdGg6byxpZ25vcmVkRmllbGRzOml9PXRoaXM7dHJ5e3RoaXMuc3BlY1BhdGg9dGhpcy5zcGVjUGF0aEZpeGVkRmllbGRzO2NvbnN0IG89dGhpcy5yZXRyaWV2ZUZpeGVkRmllbGRzKHRoaXMuc3BlY1BhdGgocykpO3RoaXMuaWdub3JlZEZpZWxkcz1bLi4uaSwuLi5mdihzLmtleXMoKSxvKV0sdW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpLHRoaXMuc3BlY1BhdGg9dGhpcy5zcGVjUGF0aFBhdHRlcm5lZEZpZWxkcyx0aGlzLmlnbm9yZWRGaWVsZHM9byxTbS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyl9Y2F0Y2gocyl7dGhyb3cgdGhpcy5zcGVjUGF0aD1vLHN9cmV0dXJuIFV1fX1jb25zdCBtdj1NaXhlZEZpZWxkc1Zpc2l0b3I7Y2xhc3MgcmVzcG9uc2VzX1Jlc3BvbnNlc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihtdixybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgUmgsdGhpcy5zcGVjUGF0aEZpeGVkRmllbGRzPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVzcG9uc2VzIl0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwLHRoaXMuc3BlY1BhdGhQYXR0ZXJuZWRGaWVsZHM9cz0+aXNSZWZlcmVuY2VMaWtlRWxlbWVudChzKT9bImRvY3VtZW50Iiwib2JqZWN0cyIsIlJlZmVyZW5jZSJdOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVzcG9uc2UiXSx0aGlzLmZpZWxkUGF0dGVyblByZWRpY2F0ZT1zPT5uZXcgUmVnRXhwKGBeKDFYWHwyWFh8M1hYfDRYWHw1WFh8JHtwdigxMDAsNjAwKS5qb2luKCJ8Iil9KSRgKS50ZXN0KFN0cmluZyhzKSl9T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPW12LnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmZpbHRlcihHbSkuZm9yRWFjaCgocz0+e3Muc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJyZXNwb25zZSIpfSkpLHRoaXMuZWxlbWVudC5maWx0ZXIoWG0pLmZvckVhY2goKChzLG8pPT57Y29uc3QgaT1jbG9uZURlZXAobyk7dGhpcy5maWVsZFBhdHRlcm5QcmVkaWNhdGUoc2VyaWFsaXplcnNfdmFsdWUoaSkpJiZzLnNldE1ldGFQcm9wZXJ0eSgiaHR0cC1zdGF0dXMtY29kZSIsaSl9KSksb319Y29uc3QgZ3Y9cmVzcG9uc2VzX1Jlc3BvbnNlc1Zpc2l0b3I7Y2xhc3MgRGVmYXVsdFZpc2l0b3IgZXh0ZW5kcyhNaXhpbihObSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuYWx0ZXJuYXRvcj1be3ByZWRpY2F0ZTppc1JlZmVyZW5jZUxpa2VFbGVtZW50LHNwZWNQYXRoOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVmZXJlbmNlIl19LHtwcmVkaWNhdGU6ZXNfVCxzcGVjUGF0aDpbImRvY3VtZW50Iiwib2JqZWN0cyIsIlJlc3BvbnNlIl19XX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89Tm0ucHJvdG90eXBlLmVudGVyLmNhbGwodGhpcyxzKTtyZXR1cm4gR20odGhpcy5lbGVtZW50KT90aGlzLmVsZW1lbnQuc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJyZXNwb25zZSIpOlhtKHRoaXMuZWxlbWVudCkmJnRoaXMuZWxlbWVudC5zZXRNZXRhUHJvcGVydHkoImh0dHAtc3RhdHVzLWNvZGUiLCJkZWZhdWx0Iiksb319Y29uc3QgeXY9RGVmYXVsdFZpc2l0b3I7Y2xhc3MgT3BlcmF0aW9uVmlzaXRvciBleHRlbmRzKE1peGluKHVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyB2aCx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiT3BlcmF0aW9uIl0pfX1jb25zdCB2dj1PcGVyYXRpb25WaXNpdG9yO2NsYXNzIE9wZXJhdGlvblRhZ3MgZXh0ZW5kcyBTdS53RXtzdGF0aWMgcHJpbWFyeUNsYXNzPSJvcGVyYXRpb24tdGFncyI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChPcGVyYXRpb25UYWdzLnByaW1hcnlDbGFzcyl9fWNvbnN0IGJ2PU9wZXJhdGlvblRhZ3M7Y29uc3QgX3Y9Y2xhc3MgVGFnc1Zpc2l0b3IgZXh0ZW5kcyBybXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IGJ2fUFycmF5RWxlbWVudChzKXtyZXR1cm4gdGhpcy5lbGVtZW50PXRoaXMuZWxlbWVudC5jb25jYXQoY2xvbmVEZWVwKHMpKSxVdX19O2NsYXNzIE9wZXJhdGlvblBhcmFtZXRlcnMgZXh0ZW5kcyBTdS53RXtzdGF0aWMgcHJpbWFyeUNsYXNzPSJvcGVyYXRpb24tcGFyYW1ldGVycyI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChPcGVyYXRpb25QYXJhbWV0ZXJzLnByaW1hcnlDbGFzcyksdGhpcy5jbGFzc2VzLnB1c2goInBhcmFtZXRlcnMiKX19Y29uc3QgU3Y9T3BlcmF0aW9uUGFyYW1ldGVycztjbGFzcyBvcGVuX2FwaV8zXzBfUGFyYW1ldGVyc1Zpc2l0b3JfUGFyYW1ldGVyc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihubSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgU3Uud0UsdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgicGFyYW1ldGVycyIpfUFycmF5RWxlbWVudChzKXtyZXR1cm4gcy5mb3JFYWNoKChzPT57Y29uc3Qgbz1pc1JlZmVyZW5jZUxpa2VFbGVtZW50KHMpP1siZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVmZXJlbmNlIl06WyJkb2N1bWVudCIsIm9iamVjdHMiLCJQYXJhbWV0ZXIiXSxpPXRoaXMudG9SZWZyYWN0ZWRFbGVtZW50KG8scyk7R20oaSkmJmkuc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJwYXJhbWV0ZXIiKSx0aGlzLmVsZW1lbnQucHVzaChpKX0pKSx0aGlzLmNvcHlNZXRhQW5kQXR0cmlidXRlcyhzLHRoaXMuZWxlbWVudCksVXV9fWNvbnN0IEV2PW9wZW5fYXBpXzNfMF9QYXJhbWV0ZXJzVmlzaXRvcl9QYXJhbWV0ZXJzVmlzaXRvcjtjb25zdCB3dj1jbGFzcyBvcGVyYXRpb25fUGFyYW1ldGVyc1Zpc2l0b3JfUGFyYW1ldGVyc1Zpc2l0b3IgZXh0ZW5kcyBFdntjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFN2fX07Y29uc3QgeHY9Y2xhc3MgUmVxdWVzdEJvZHlWaXNpdG9yX1JlcXVlc3RCb2R5VmlzaXRvciBleHRlbmRzIE5te2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuYWx0ZXJuYXRvcj1be3ByZWRpY2F0ZTppc1JlZmVyZW5jZUxpa2VFbGVtZW50LHNwZWNQYXRoOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVmZXJlbmNlIl19LHtwcmVkaWNhdGU6ZXNfVCxzcGVjUGF0aDpbImRvY3VtZW50Iiwib2JqZWN0cyIsIlJlcXVlc3RCb2R5Il19XX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89Tm0ucHJvdG90eXBlLmVudGVyLmNhbGwodGhpcyxzKTtyZXR1cm4gR20odGhpcy5lbGVtZW50KSYmdGhpcy5lbGVtZW50LnNldE1ldGFQcm9wZXJ0eSgicmVmZXJlbmNlZC1lbGVtZW50IiwicmVxdWVzdEJvZHkiKSxvfX07Y2xhc3MgT3BlcmF0aW9uQ2FsbGJhY2tzIGV4dGVuZHMgU3UuU2h7c3RhdGljIHByaW1hcnlDbGFzcz0ib3BlcmF0aW9uLWNhbGxiYWNrcyI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChPcGVyYXRpb25DYWxsYmFja3MucHJpbWFyeUNsYXNzKX19Y29uc3Qga3Y9T3BlcmF0aW9uQ2FsbGJhY2tzO2NsYXNzIENhbGxiYWNrc1Zpc2l0b3JfQ2FsbGJhY2tzVmlzaXRvciBleHRlbmRzKE1peGluKEVtLHJtKSl7c3BlY1BhdGg7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBrdix0aGlzLnNwZWNQYXRoPXM9PmlzUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiXTpbImRvY3VtZW50Iiwib2JqZWN0cyIsIkNhbGxiYWNrIl19T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPUVtLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmZpbHRlcihHbSkuZm9yRWFjaCgocz0+e3Muc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJjYWxsYmFjayIpfSkpLG99fWNvbnN0IE92PUNhbGxiYWNrc1Zpc2l0b3JfQ2FsbGJhY2tzVmlzaXRvcjtjbGFzcyBPcGVyYXRpb25TZWN1cml0eSBleHRlbmRzIFN1LndFe3N0YXRpYyBwcmltYXJ5Q2xhc3M9Im9wZXJhdGlvbi1zZWN1cml0eSI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChPcGVyYXRpb25TZWN1cml0eS5wcmltYXJ5Q2xhc3MpLHRoaXMuY2xhc3Nlcy5wdXNoKCJzZWN1cml0eSIpfX1jb25zdCBDdj1PcGVyYXRpb25TZWN1cml0eTtjbGFzcyBTZWN1cml0eVZpc2l0b3JfU2VjdXJpdHlWaXNpdG9yIGV4dGVuZHMoTWl4aW4obm0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IEN2fUFycmF5RWxlbWVudChzKXtyZXR1cm4gcy5mb3JFYWNoKChzPT57Y29uc3Qgbz1NdShzKT9bImRvY3VtZW50Iiwib2JqZWN0cyIsIlNlY3VyaXR5UmVxdWlyZW1lbnQiXTpbInZhbHVlIl0saT10aGlzLnRvUmVmcmFjdGVkRWxlbWVudChvLHMpO3RoaXMuZWxlbWVudC5wdXNoKGkpfSkpLHRoaXMuY29weU1ldGFBbmRBdHRyaWJ1dGVzKHMsdGhpcy5lbGVtZW50KSxVdX19Y29uc3QgQXY9U2VjdXJpdHlWaXNpdG9yX1NlY3VyaXR5VmlzaXRvcjtjbGFzcyBPcGVyYXRpb25TZXJ2ZXJzIGV4dGVuZHMgU3Uud0V7c3RhdGljIHByaW1hcnlDbGFzcz0ib3BlcmF0aW9uLXNlcnZlcnMiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goT3BlcmF0aW9uU2VydmVycy5wcmltYXJ5Q2xhc3MpLHRoaXMuY2xhc3Nlcy5wdXNoKCJzZXJ2ZXJzIil9fWNvbnN0IGp2PU9wZXJhdGlvblNlcnZlcnM7Y29uc3QgUHY9Y2xhc3MgU2VydmVyc1Zpc2l0b3JfU2VydmVyc1Zpc2l0b3IgZXh0ZW5kcyBBbXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IGp2fX07Y2xhc3MgUGF0aEl0ZW1WaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IHdoLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJQYXRoSXRlbSJdKX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89dW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiB0aGlzLmVsZW1lbnQuZmlsdGVyKFdtKS5mb3JFYWNoKCgocyxvKT0+e2NvbnN0IGk9Y2xvbmVEZWVwKG8pO2kuY29udGVudD1zZXJpYWxpemVyc192YWx1ZShpKS50b1VwcGVyQ2FzZSgpLHMuc2V0TWV0YVByb3BlcnR5KCJodHRwLW1ldGhvZCIsaSl9KSksUHUodGhpcy5lbGVtZW50LiRyZWYpJiZ0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJyZWZlcmVuY2UtZWxlbWVudCIpLG99fWNvbnN0IEl2PVBhdGhJdGVtVmlzaXRvcjtjb25zdCBUdj1jbGFzcyBwYXRoX2l0ZW1fJFJlZlZpc2l0b3JfJFJlZlZpc2l0b3IgZXh0ZW5kcyBybXtTdHJpbmdFbGVtZW50KHMpe2NvbnN0IG89c3VwZXIuZW50ZXIocyk7cmV0dXJuIHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goInJlZmVyZW5jZS12YWx1ZSIpLG99fTtjbGFzcyBQYXRoSXRlbVNlcnZlcnMgZXh0ZW5kcyBTdS53RXtzdGF0aWMgcHJpbWFyeUNsYXNzPSJwYXRoLWl0ZW0tc2VydmVycyI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChQYXRoSXRlbVNlcnZlcnMucHJpbWFyeUNsYXNzKSx0aGlzLmNsYXNzZXMucHVzaCgic2VydmVycyIpfX1jb25zdCBOdj1QYXRoSXRlbVNlcnZlcnM7Y29uc3QgTXY9Y2xhc3MgcGF0aF9pdGVtX1NlcnZlcnNWaXNpdG9yX1NlcnZlcnNWaXNpdG9yIGV4dGVuZHMgQW17Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBOdn19O2NsYXNzIFBhdGhJdGVtUGFyYW1ldGVycyBleHRlbmRzIFN1LndFe3N0YXRpYyBwcmltYXJ5Q2xhc3M9InBhdGgtaXRlbS1wYXJhbWV0ZXJzIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKFBhdGhJdGVtUGFyYW1ldGVycy5wcmltYXJ5Q2xhc3MpLHRoaXMuY2xhc3Nlcy5wdXNoKCJwYXJhbWV0ZXJzIil9fWNvbnN0IFJ2PVBhdGhJdGVtUGFyYW1ldGVycztjb25zdCBEdj1jbGFzcyBwYXRoX2l0ZW1fUGFyYW1ldGVyc1Zpc2l0b3JfUGFyYW1ldGVyc1Zpc2l0b3IgZXh0ZW5kcyBFdntjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFJ2fX07Y2xhc3MgU2VjdXJpdHlTY2hlbWVWaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IEhmLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJTZWN1cml0eVNjaGVtZSJdKSx0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz0hMH19Y29uc3QgTHY9U2VjdXJpdHlTY2hlbWVWaXNpdG9yO2NsYXNzIE9BdXRoRmxvd3NWaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IHVoLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJPQXV0aEZsb3dzIl0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwfX1jb25zdCBGdj1PQXV0aEZsb3dzVmlzaXRvcjtjbGFzcyBPQXV0aEZsb3dWaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IHJoLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJPQXV0aEZsb3ciXSksdGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM9ITB9fWNvbnN0IEJ2PU9BdXRoRmxvd1Zpc2l0b3I7Y2xhc3MgT0F1dGhGbG93U2NvcGVzIGV4dGVuZHMgU3UuU2h7c3RhdGljIHByaW1hcnlDbGFzcz0ib2F1dGgtZmxvdy1zY29wZXMiO2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5jbGFzc2VzLnB1c2goT0F1dGhGbG93U2NvcGVzLnByaW1hcnlDbGFzcyl9fWNvbnN0ICR2PU9BdXRoRmxvd1Njb3BlcztjbGFzcyBTY29wZXNWaXNpdG9yIGV4dGVuZHMoTWl4aW4oRW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3ICR2LHRoaXMuc3BlY1BhdGg9ZmMoWyJ2YWx1ZSJdKX19Y29uc3QgcXY9U2NvcGVzVmlzaXRvcjtjbGFzcyBUYWdzIGV4dGVuZHMgU3Uud0V7c3RhdGljIHByaW1hcnlDbGFzcz0idGFncyI7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmNsYXNzZXMucHVzaChUYWdzLnByaW1hcnlDbGFzcyl9fWNvbnN0IFZ2PVRhZ3M7Y2xhc3MgVGFnc1Zpc2l0b3JfVGFnc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihubSxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgVnZ9QXJyYXlFbGVtZW50KHMpe3JldHVybiBzLmZvckVhY2goKHM9Pntjb25zdCBvPWxtKHMpP1siZG9jdW1lbnQiLCJvYmplY3RzIiwiVGFnIl06WyJ2YWx1ZSJdLGk9dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQobyxzKTt0aGlzLmVsZW1lbnQucHVzaChpKX0pKSx0aGlzLmNvcHlNZXRhQW5kQXR0cmlidXRlcyhzLHRoaXMuZWxlbWVudCksVXV9fWNvbnN0IFV2PVRhZ3NWaXNpdG9yX1RhZ3NWaXNpdG9yLHtmaXhlZEZpZWxkczp6dn09UmYudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5KU09OU2NoZW1hLFd2PXt2aXNpdG9yczp7dmFsdWU6cm0sZG9jdW1lbnQ6e29iamVjdHM6e09wZW5BcGk6eyR2aXNpdG9yOnBtLGZpeGVkRmllbGRzOntvcGVuYXBpOmhtLGluZm86eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9JbmZvIn0sc2VydmVyczpBbSxwYXRoczp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL1BhdGhzIn0sY29tcG9uZW50czp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL0NvbXBvbmVudHMifSxzZWN1cml0eTpxZyx0YWdzOlV2LGV4dGVybmFsRG9jczp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL0V4dGVybmFsRG9jdW1lbnRhdGlvbiJ9fX0sSW5mbzp7JHZpc2l0b3I6Zm0sZml4ZWRGaWVsZHM6e3RpdGxlOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sZGVzY3JpcHRpb246eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSx0ZXJtc09mU2VydmljZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGNvbnRhY3Q6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9Db250YWN0In0sbGljZW5zZTp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL0xpY2Vuc2UifSx2ZXJzaW9uOm1tfX0sQ29udGFjdDp7JHZpc2l0b3I6Z20sZml4ZWRGaWVsZHM6e25hbWU6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSx1cmw6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxlbWFpbDp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9fX0sTGljZW5zZTp7JHZpc2l0b3I6eW0sZml4ZWRGaWVsZHM6e25hbWU6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSx1cmw6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifX19LFNlcnZlcjp7JHZpc2l0b3I6a20sZml4ZWRGaWVsZHM6e3VybDpPbSxkZXNjcmlwdGlvbjp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHZhcmlhYmxlczpJbX19LFNlcnZlclZhcmlhYmxlOnskdmlzaXRvcjpqbSxmaXhlZEZpZWxkczp7ZW51bTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGRlZmF1bHQ6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxkZXNjcmlwdGlvbjp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9fX0sQ29tcG9uZW50czp7JHZpc2l0b3I6VmcsZml4ZWRGaWVsZHM6e3NjaGVtYXM6ankscmVzcG9uc2VzOkl5LHBhcmFtZXRlcnM6TnksZXhhbXBsZXM6UnkscmVxdWVzdEJvZGllczpMeSxoZWFkZXJzOkJ5LHNlY3VyaXR5U2NoZW1lczpxeSxsaW5rczpVeSxjYWxsYmFja3M6V3l9fSxQYXRoczp7JHZpc2l0b3I6UXl9LFBhdGhJdGVtOnskdmlzaXRvcjpJdixmaXhlZEZpZWxkczp7JHJlZjpUdixzdW1tYXJ5OnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sZGVzY3JpcHRpb246eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxnZXQ6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9PcGVyYXRpb24ifSxwdXQ6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9PcGVyYXRpb24ifSxwb3N0OnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvT3BlcmF0aW9uIn0sZGVsZXRlOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvT3BlcmF0aW9uIn0sb3B0aW9uczp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL09wZXJhdGlvbiJ9LGhlYWQ6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9PcGVyYXRpb24ifSxwYXRjaDp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL09wZXJhdGlvbiJ9LHRyYWNlOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvT3BlcmF0aW9uIn0sc2VydmVyczpNdixwYXJhbWV0ZXJzOkR2fX0sT3BlcmF0aW9uOnskdmlzaXRvcjp2dixmaXhlZEZpZWxkczp7dGFnczpfdixzdW1tYXJ5OnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sZGVzY3JpcHRpb246eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxleHRlcm5hbERvY3M6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9FeHRlcm5hbERvY3VtZW50YXRpb24ifSxvcGVyYXRpb25JZDp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHBhcmFtZXRlcnM6d3YscmVxdWVzdEJvZHk6eHYscmVzcG9uc2VzOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvUmVzcG9uc2VzIn0sY2FsbGJhY2tzOk92LGRlcHJlY2F0ZWQ6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxzZWN1cml0eTpBdixzZXJ2ZXJzOlB2fX0sRXh0ZXJuYWxEb2N1bWVudGF0aW9uOnskdmlzaXRvcjpLeSxmaXhlZEZpZWxkczp7ZGVzY3JpcHRpb246eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSx1cmw6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifX19LFBhcmFtZXRlcjp7JHZpc2l0b3I6S2csZml4ZWRGaWVsZHM6e25hbWU6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxpbjp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGRlc2NyaXB0aW9uOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0scmVxdWlyZWQ6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxkZXByZWNhdGVkOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sYWxsb3dFbXB0eVZhbHVlOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sc3R5bGU6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxleHBsb2RlOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sYWxsb3dSZXNlcnZlZDp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHNjaGVtYTpZZyxleGFtcGxlOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sZXhhbXBsZXM6a3ksY29udGVudDpDeX19LFJlcXVlc3RCb2R5OnskdmlzaXRvcjpaeSxmaXhlZEZpZWxkczp7ZGVzY3JpcHRpb246eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxjb250ZW50OnR2LHJlcXVpcmVkOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn19fSxNZWRpYVR5cGU6eyR2aXNpdG9yOlRtLGZpeGVkRmllbGRzOntzY2hlbWE6cGcsZXhhbXBsZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGV4YW1wbGVzOmdnLGVuY29kaW5nOl9nfX0sRW5jb2Rpbmc6eyR2aXNpdG9yOkd5LGZpeGVkRmllbGRzOntjb250ZW50VHlwZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGhlYWRlcnM6WHksc3R5bGU6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxleHBsb2RlOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sYWxsb3dSZXNlcnZlZDp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9fX0sUmVzcG9uc2VzOnskdmlzaXRvcjpndixmaXhlZEZpZWxkczp7ZGVmYXVsdDp5dn19LFJlc3BvbnNlOnskdmlzaXRvcjpudixmaXhlZEZpZWxkczp7ZGVzY3JpcHRpb246eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxoZWFkZXJzOm92LGNvbnRlbnQ6YXYsbGlua3M6bHZ9fSxDYWxsYmFjazp7JHZpc2l0b3I6cnZ9LEV4YW1wbGU6eyR2aXNpdG9yOkp5LGZpeGVkRmllbGRzOntzdW1tYXJ5OnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sZGVzY3JpcHRpb246eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSx2YWx1ZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGV4dGVybmFsVmFsdWU6SHl9fSxMaW5rOnskdmlzaXRvcjp2bSxmaXhlZEZpZWxkczp7b3BlcmF0aW9uUmVmOmJtLG9wZXJhdGlvbklkOl9tLHBhcmFtZXRlcnM6eG0scmVxdWVzdEJvZHk6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxkZXNjcmlwdGlvbjp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHNlcnZlcjp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL1NlcnZlciJ9fX0sSGVhZGVyOnskdmlzaXRvcjpYZyxmaXhlZEZpZWxkczp7ZGVzY3JpcHRpb246eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxyZXF1aXJlZDp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGRlcHJlY2F0ZWQ6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxhbGxvd0VtcHR5VmFsdWU6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxzdHlsZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGV4cGxvZGU6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxhbGxvd1Jlc2VydmVkOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sc2NoZW1hOlpnLGV4YW1wbGU6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxleGFtcGxlczp0eSxjb250ZW50OnN5fX0sVGFnOnskdmlzaXRvcjpVZyxmaXhlZEZpZWxkczp7bmFtZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGRlc2NyaXB0aW9uOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sZXh0ZXJuYWxEb2NzOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvRXh0ZXJuYWxEb2N1bWVudGF0aW9uIn19fSxSZWZlcmVuY2U6eyR2aXNpdG9yOnpnLGZpeGVkRmllbGRzOnskcmVmOldnfX0sSlNPTlNjaGVtYTp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL1NjaGVtYSJ9LEpTT05SZWZlcmVuY2U6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9SZWZlcmVuY2UifSxTY2hlbWE6eyR2aXNpdG9yOm95LGZpeGVkRmllbGRzOnt0aXRsZTp6di50aXRsZSxtdWx0aXBsZU9mOnp2Lm11bHRpcGxlT2YsbWF4aW11bTp6di5tYXhpbXVtLGV4Y2x1c2l2ZU1heGltdW06enYuZXhjbHVzaXZlTWF4aW11bSxtaW5pbXVtOnp2Lm1pbmltdW0sZXhjbHVzaXZlTWluaW11bTp6di5leGNsdXNpdmVNaW5pbXVtLG1heExlbmd0aDp6di5tYXhMZW5ndGgsbWluTGVuZ3RoOnp2Lm1pbkxlbmd0aCxwYXR0ZXJuOnp2LnBhdHRlcm4sbWF4SXRlbXM6enYubWF4SXRlbXMsbWluSXRlbXM6enYubWluSXRlbXMsdW5pcXVlSXRlbXM6enYudW5pcXVlSXRlbXMsbWF4UHJvcGVydGllczp6di5tYXhQcm9wZXJ0aWVzLG1pblByb3BlcnRpZXM6enYubWluUHJvcGVydGllcyxyZXF1aXJlZDp6di5yZXF1aXJlZCxlbnVtOnp2LmVudW0sdHlwZTp5eSxhbGxPZjpheSxhbnlPZjpseSxvbmVPZjpweSxub3Q6YnksaXRlbXM6ZHkscHJvcGVydGllczpteSxhZGRpdGlvbmFsUHJvcGVydGllczpieSxkZXNjcmlwdGlvbjp6di5kZXNjcmlwdGlvbixmb3JtYXQ6enYuZm9ybWF0LGRlZmF1bHQ6enYuZGVmYXVsdCxudWxsYWJsZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGRpc2NyaW1pbmF0b3I6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9EaXNjcmltaW5hdG9yIn0sd3JpdGVPbmx5OnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0seG1sOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvWE1MIn0sZXh0ZXJuYWxEb2NzOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvRXh0ZXJuYWxEb2N1bWVudGF0aW9uIn0sZXhhbXBsZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGRlcHJlY2F0ZWQ6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifX19LERpc2NyaW1pbmF0b3I6eyR2aXNpdG9yOl95LGZpeGVkRmllbGRzOntwcm9wZXJ0eU5hbWU6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxtYXBwaW5nOkV5fX0sWE1MOnskdmlzaXRvcjp3eSxmaXhlZEZpZWxkczp7bmFtZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LG5hbWVzcGFjZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHByZWZpeDp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGF0dHJpYnV0ZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHdyYXBwZWQ6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifX19LFNlY3VyaXR5U2NoZW1lOnskdmlzaXRvcjpMdixmaXhlZEZpZWxkczp7dHlwZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGRlc2NyaXB0aW9uOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sbmFtZTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LGluOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sc2NoZW1lOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sYmVhcmVyRm9ybWF0OnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sZmxvd3M6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9PQXV0aEZsb3dzIn0sb3BlbklkQ29ubmVjdFVybDp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9fX0sT0F1dGhGbG93czp7JHZpc2l0b3I6RnYsZml4ZWRGaWVsZHM6e2ltcGxpY2l0OnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvT0F1dGhGbG93In0scGFzc3dvcmQ6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9PQXV0aEZsb3cifSxjbGllbnRDcmVkZW50aWFsczp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL09BdXRoRmxvdyJ9LGF1dGhvcml6YXRpb25Db2RlOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvT0F1dGhGbG93In19fSxPQXV0aEZsb3c6eyR2aXNpdG9yOkJ2LGZpeGVkRmllbGRzOnthdXRob3JpemF0aW9uVXJsOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sdG9rZW5Vcmw6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxyZWZyZXNoVXJsOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn0sc2NvcGVzOnF2fX0sU2VjdXJpdHlSZXF1aXJlbWVudDp7JHZpc2l0b3I6eGd9fSxleHRlbnNpb246eyR2aXNpdG9yOmRtfX19fSxzcmNfdHJhdmVyc2FsX3Zpc2l0b3JfZ2V0Tm9kZVR5cGU9cz0+e2lmKGp1KHMpKXJldHVybmAke3MuZWxlbWVudC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStzLmVsZW1lbnQuc2xpY2UoMSl9RWxlbWVudGB9LEp2PXtDYWxsYmFja0VsZW1lbnQ6WyJjb250ZW50Il0sQ29tcG9uZW50c0VsZW1lbnQ6WyJjb250ZW50Il0sQ29udGFjdEVsZW1lbnQ6WyJjb250ZW50Il0sRGlzY3JpbWluYXRvckVsZW1lbnQ6WyJjb250ZW50Il0sRW5jb2Rpbmc6WyJjb250ZW50Il0sRXhhbXBsZTpbImNvbnRlbnQiXSxFeHRlcm5hbERvY3VtZW50YXRpb25FbGVtZW50OlsiY29udGVudCJdLEhlYWRlckVsZW1lbnQ6WyJjb250ZW50Il0sSW5mb0VsZW1lbnQ6WyJjb250ZW50Il0sTGljZW5zZUVsZW1lbnQ6WyJjb250ZW50Il0sTWVkaWFUeXBlRWxlbWVudDpbImNvbnRlbnQiXSxPQXV0aEZsb3dFbGVtZW50OlsiY29udGVudCJdLE9BdXRoRmxvd3NFbGVtZW50OlsiY29udGVudCJdLE9wZW5BcGkzXzBFbGVtZW50OlsiY29udGVudCJdLE9wZXJhdGlvbkVsZW1lbnQ6WyJjb250ZW50Il0sUGFyYW1ldGVyRWxlbWVudDpbImNvbnRlbnQiXSxQYXRoSXRlbUVsZW1lbnQ6WyJjb250ZW50Il0sUGF0aHNFbGVtZW50OlsiY29udGVudCJdLFJlZmVyZW5jZUVsZW1lbnQ6WyJjb250ZW50Il0sUmVxdWVzdEJvZHlFbGVtZW50OlsiY29udGVudCJdLFJlc3BvbnNlRWxlbWVudDpbImNvbnRlbnQiXSxSZXNwb25zZXNFbGVtZW50OlsiY29udGVudCJdLFNjaGVtYUVsZW1lbnQ6WyJjb250ZW50Il0sU2VjdXJpdHlSZXF1aXJlbWVudEVsZW1lbnQ6WyJjb250ZW50Il0sU2VjdXJpdHlTY2hlbWVFbGVtZW50OlsiY29udGVudCJdLFNlcnZlckVsZW1lbnQ6WyJjb250ZW50Il0sU2VydmVyVmFyaWFibGVFbGVtZW50OlsiY29udGVudCJdLFRhZ0VsZW1lbnQ6WyJjb250ZW50Il0sLi4uS3V9LEh2PXtuYW1lc3BhY2U6cz0+e2NvbnN0e2Jhc2U6b309cztyZXR1cm4gby5yZWdpc3RlcigiY2FsbGJhY2siLFVwKSxvLnJlZ2lzdGVyKCJjb21wb25lbnRzIix6cCksby5yZWdpc3RlcigiY29udGFjdCIsV3ApLG8ucmVnaXN0ZXIoImRpc2NyaW1pbmF0b3IiLEpwKSxvLnJlZ2lzdGVyKCJlbmNvZGluZyIsSHApLG8ucmVnaXN0ZXIoImV4YW1wbGUiLEtwKSxvLnJlZ2lzdGVyKCJleHRlcm5hbERvY3VtZW50YXRpb24iLEdwKSxvLnJlZ2lzdGVyKCJoZWFkZXIiLFlwKSxvLnJlZ2lzdGVyKCJpbmZvIixYcCksby5yZWdpc3RlcigibGljZW5zZSIsUXApLG8ucmVnaXN0ZXIoImxpbmsiLFpwKSxvLnJlZ2lzdGVyKCJtZWRpYVR5cGUiLHRoKSxvLnJlZ2lzdGVyKCJvQXV0aEZsb3ciLHJoKSxvLnJlZ2lzdGVyKCJvQXV0aEZsb3dzIix1aCksby5yZWdpc3Rlcigib3BlbmFwaSIsZGgpLG8ucmVnaXN0ZXIoIm9wZW5BcGkzXzAiLGZoKSxvLnJlZ2lzdGVyKCJvcGVyYXRpb24iLHZoKSxvLnJlZ2lzdGVyKCJwYXJhbWV0ZXIiLF9oKSxvLnJlZ2lzdGVyKCJwYXRoSXRlbSIsd2gpLG8ucmVnaXN0ZXIoInBhdGhzIixPaCksby5yZWdpc3RlcigicmVmZXJlbmNlIixqaCksby5yZWdpc3RlcigicmVxdWVzdEJvZHkiLFBoKSxvLnJlZ2lzdGVyKCJyZXNwb25zZSIsSWgpLG8ucmVnaXN0ZXIoInJlc3BvbnNlcyIsUmgpLG8ucmVnaXN0ZXIoInNjaGVtYSIsV2YpLG8ucmVnaXN0ZXIoInNlY3VyaXR5UmVxdWlyZW1lbnQiLEpmKSxvLnJlZ2lzdGVyKCJzZWN1cml0eVNjaGVtZSIsSGYpLG8ucmVnaXN0ZXIoInNlcnZlciIsR2YpLG8ucmVnaXN0ZXIoInNlcnZlclZhcmlhYmxlIixYZiksby5yZWdpc3RlcigidGFnIixRZiksby5yZWdpc3RlcigieG1sIixlbSksb319LEt2PUh2LHNyY19yZWZyYWN0b3JfdG9vbGJveD0oKT0+e2NvbnN0IHM9Y3JlYXRlTmFtZXNwYWNlKEt2KTtyZXR1cm57cHJlZGljYXRlczp7Li4uY2UsaXNFbGVtZW50Omp1LGlzU3RyaW5nRWxlbWVudDpQdSxpc0FycmF5RWxlbWVudDpSdSxpc09iamVjdEVsZW1lbnQ6TXUsaXNNZW1iZXJFbGVtZW50OkR1LGluY2x1ZGVzQ2xhc3NlcyxoYXNFbGVtZW50U291cmNlTWFwfSxuYW1lc3BhY2U6c319LHNyY19yZWZyYWN0b3JfcmVmcmFjdD0ocyx7c3BlY1BhdGg6bz1bInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiT3BlbkFwaSIsIiR2aXNpdG9yIl0scGx1Z2luczppPVtdfT17fSk9Pntjb25zdCBhPSgwLFN1LmUpKHMpLHU9ZGVyZWZlcmVuY2UoV3YpLF89bmV3KHRwKG8sdSkpKHtzcGVjT2JqOnV9KTtyZXR1cm4gdmlzaXRvcl92aXNpdChhLF8pLGRpc3BhdGNoUGx1Z2luc1N5bmMoXy5lbGVtZW50LGkse3Rvb2xib3hDcmVhdG9yOnNyY19yZWZyYWN0b3JfdG9vbGJveCx2aXNpdG9yT3B0aW9uczp7a2V5TWFwOkp2LG5vZGVUeXBlR2V0dGVyOnNyY190cmF2ZXJzYWxfdmlzaXRvcl9nZXROb2RlVHlwZX19KX0sc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3I9cz0+KG8saT17fSk9PnNyY19yZWZyYWN0b3JfcmVmcmFjdChvLHtzcGVjUGF0aDpzLC4uLml9KTtVcC5yZWZyYWN0PXNyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJDYWxsYmFjayIsIiR2aXNpdG9yIl0pLHpwLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkNvbXBvbmVudHMiLCIkdmlzaXRvciJdKSxXcC5yZWZyYWN0PXNyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJDb250YWN0IiwiJHZpc2l0b3IiXSksS3AucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiRXhhbXBsZSIsIiR2aXNpdG9yIl0pLEpwLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkRpc2NyaW1pbmF0b3IiLCIkdmlzaXRvciJdKSxIcC5yZWZyYWN0PXNyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJFbmNvZGluZyIsIiR2aXNpdG9yIl0pLEdwLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkV4dGVybmFsRG9jdW1lbnRhdGlvbiIsIiR2aXNpdG9yIl0pLFlwLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkhlYWRlciIsIiR2aXNpdG9yIl0pLFhwLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkluZm8iLCIkdmlzaXRvciJdKSxRcC5yZWZyYWN0PXNyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaWNlbnNlIiwiJHZpc2l0b3IiXSksWnAucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGluayIsIiR2aXNpdG9yIl0pLHRoLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIk1lZGlhVHlwZSIsIiR2aXNpdG9yIl0pLHJoLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIk9BdXRoRmxvdyIsIiR2aXNpdG9yIl0pLHVoLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIk9BdXRoRmxvd3MiLCIkdmlzaXRvciJdKSxkaC5yZWZyYWN0PXNyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJPcGVuQXBpIiwiZml4ZWRGaWVsZHMiLCJvcGVuYXBpIl0pLGZoLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIk9wZW5BcGkiLCIkdmlzaXRvciJdKSx2aC5yZWZyYWN0PXNyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJPcGVyYXRpb24iLCIkdmlzaXRvciJdKSxfaC5yZWZyYWN0PXNyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJQYXJhbWV0ZXIiLCIkdmlzaXRvciJdKSx3aC5yZWZyYWN0PXNyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJQYXRoSXRlbSIsIiR2aXNpdG9yIl0pLE9oLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIlBhdGhzIiwiJHZpc2l0b3IiXSksamgucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVmZXJlbmNlIiwiJHZpc2l0b3IiXSksUGgucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVxdWVzdEJvZHkiLCIkdmlzaXRvciJdKSxJaC5yZWZyYWN0PXNyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJSZXNwb25zZSIsIiR2aXNpdG9yIl0pLFJoLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIlJlc3BvbnNlcyIsIiR2aXNpdG9yIl0pLFdmLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIlNjaGVtYSIsIiR2aXNpdG9yIl0pLEpmLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIlNlY3VyaXR5UmVxdWlyZW1lbnQiLCIkdmlzaXRvciJdKSxIZi5yZWZyYWN0PXNyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJTZWN1cml0eVNjaGVtZSIsIiR2aXNpdG9yIl0pLEdmLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIlNlcnZlciIsIiR2aXNpdG9yIl0pLFhmLnJlZnJhY3Q9c3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIlNlcnZlclZhcmlhYmxlIiwiJHZpc2l0b3IiXSksUWYucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiVGFnIiwiJHZpc2l0b3IiXSksZW0ucmVmcmFjdD1zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiWE1MIiwiJHZpc2l0b3IiXSk7Y29uc3QgR3Y9Y2xhc3MgQ2FsbGJhY2tfQ2FsbGJhY2sgZXh0ZW5kcyBVcHt9O2NvbnN0IFl2PWNsYXNzIENvbXBvbmVudHNfQ29tcG9uZW50cyBleHRlbmRzIHpwe2dldCBwYXRoSXRlbXMoKXtyZXR1cm4gdGhpcy5nZXQoInBhdGhJdGVtcyIpfXNldCBwYXRoSXRlbXMocyl7dGhpcy5zZXQoInBhdGhJdGVtcyIscyl9fTtjb25zdCBYdj1jbGFzcyBDb250YWN0X0NvbnRhY3QgZXh0ZW5kcyBXcHt9O2NvbnN0IFF2PWNsYXNzIERpc2NyaW1pbmF0b3JfRGlzY3JpbWluYXRvciBleHRlbmRzIEpwe307Y29uc3QgWnY9Y2xhc3MgRW5jb2RpbmdfRW5jb2RpbmcgZXh0ZW5kcyBIcHt9O2NvbnN0IGViPWNsYXNzIEV4YW1wbGVfRXhhbXBsZSBleHRlbmRzIEtwe307Y29uc3QgdGI9Y2xhc3MgRXh0ZXJuYWxEb2N1bWVudGF0aW9uX0V4dGVybmFsRG9jdW1lbnRhdGlvbiBleHRlbmRzIEdwe307Y29uc3QgbmI9Y2xhc3MgSGVhZGVyX0hlYWRlciBleHRlbmRzIFlwe2dldCBzY2hlbWEoKXtyZXR1cm4gdGhpcy5nZXQoInNjaGVtYSIpfXNldCBzY2hlbWEocyl7dGhpcy5zZXQoInNjaGVtYSIscyl9fTtjb25zdCBwYj1jbGFzcyBJbmZvX0luZm8gZXh0ZW5kcyBYcHtnZXQgbGljZW5zZSgpe3JldHVybiB0aGlzLmdldCgibGljZW5zZSIpfXNldCBsaWNlbnNlKHMpe3RoaXMuc2V0KCJsaWNlbnNlIixzKX1nZXQgc3VtbWFyeSgpe3JldHVybiB0aGlzLmdldCgic3VtbWFyeSIpfXNldCBzdW1tYXJ5KHMpe3RoaXMuc2V0KCJzdW1tYXJ5IixzKX19O2NsYXNzIEpzb25TY2hlbWFEaWFsZWN0IGV4dGVuZHMgU3UuT217c3RhdGljIGRlZmF1bHQ9bmV3IEpzb25TY2hlbWFEaWFsZWN0KCJodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy8zLjEvZGlhbGVjdC9iYXNlIik7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9Impzb25TY2hlbWFEaWFsZWN0In19Y29uc3QgbWI9SnNvblNjaGVtYURpYWxlY3Q7Y29uc3QgeWI9Y2xhc3MgTGljZW5zZV9MaWNlbnNlIGV4dGVuZHMgUXB7Z2V0IGlkZW50aWZpZXIoKXtyZXR1cm4gdGhpcy5nZXQoImlkZW50aWZpZXIiKX1zZXQgaWRlbnRpZmllcihzKXt0aGlzLnNldCgiaWRlbnRpZmllciIscyl9fTtjb25zdCBfYj1jbGFzcyBMaW5rX0xpbmsgZXh0ZW5kcyBacHt9O2NvbnN0IFNiPWNsYXNzIE1lZGlhVHlwZV9NZWRpYVR5cGUgZXh0ZW5kcyB0aHtnZXQgc2NoZW1hKCl7cmV0dXJuIHRoaXMuZ2V0KCJzY2hlbWEiKX1zZXQgc2NoZW1hKHMpe3RoaXMuc2V0KCJzY2hlbWEiLHMpfX07Y29uc3Qgd2I9Y2xhc3MgT0F1dGhGbG93X09BdXRoRmxvdyBleHRlbmRzIHJoe307Y29uc3QgT2I9Y2xhc3MgT0F1dGhGbG93c19PQXV0aEZsb3dzIGV4dGVuZHMgdWh7fTtjb25zdCBBYj1jbGFzcyBPcGVuYXBpX09wZW5hcGkgZXh0ZW5kcyBkaHt9O2NsYXNzIE9wZW5BcGkzXzEgZXh0ZW5kcyBTdS5TaHtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0ib3BlbkFwaTNfMSIsdGhpcy5jbGFzc2VzLnB1c2goImFwaSIpfWdldCBvcGVuYXBpKCl7cmV0dXJuIHRoaXMuZ2V0KCJvcGVuYXBpIil9c2V0IG9wZW5hcGkocyl7dGhpcy5zZXQoIm9wZW5hcGkiLHMpfWdldCBpbmZvKCl7cmV0dXJuIHRoaXMuZ2V0KCJpbmZvIil9c2V0IGluZm8ocyl7dGhpcy5zZXQoImluZm8iLHMpfWdldCBqc29uU2NoZW1hRGlhbGVjdCgpe3JldHVybiB0aGlzLmdldCgianNvblNjaGVtYURpYWxlY3QiKX1zZXQganNvblNjaGVtYURpYWxlY3Qocyl7dGhpcy5zZXQoImpzb25TY2hlbWFEaWFsZWN0IixzKX1nZXQgc2VydmVycygpe3JldHVybiB0aGlzLmdldCgic2VydmVycyIpfXNldCBzZXJ2ZXJzKHMpe3RoaXMuc2V0KCJzZXJ2ZXJzIixzKX1nZXQgcGF0aHMoKXtyZXR1cm4gdGhpcy5nZXQoInBhdGhzIil9c2V0IHBhdGhzKHMpe3RoaXMuc2V0KCJwYXRocyIscyl9Z2V0IGNvbXBvbmVudHMoKXtyZXR1cm4gdGhpcy5nZXQoImNvbXBvbmVudHMiKX1zZXQgY29tcG9uZW50cyhzKXt0aGlzLnNldCgiY29tcG9uZW50cyIscyl9Z2V0IHNlY3VyaXR5KCl7cmV0dXJuIHRoaXMuZ2V0KCJzZWN1cml0eSIpfXNldCBzZWN1cml0eShzKXt0aGlzLnNldCgic2VjdXJpdHkiLHMpfWdldCB0YWdzKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0YWdzIil9c2V0IHRhZ3Mocyl7dGhpcy5zZXQoInRhZ3MiLHMpfWdldCBleHRlcm5hbERvY3MoKXtyZXR1cm4gdGhpcy5nZXQoImV4dGVybmFsRG9jcyIpfXNldCBleHRlcm5hbERvY3Mocyl7dGhpcy5zZXQoImV4dGVybmFsRG9jcyIscyl9Z2V0IHdlYmhvb2tzKCl7cmV0dXJuIHRoaXMuZ2V0KCJ3ZWJob29rcyIpfXNldCB3ZWJob29rcyhzKXt0aGlzLnNldCgid2ViaG9va3MiLHMpfX1jb25zdCBQYj1PcGVuQXBpM18xO2NvbnN0IEliPWNsYXNzIE9wZXJhdGlvbl9PcGVyYXRpb24gZXh0ZW5kcyB2aHtnZXQgcmVxdWVzdEJvZHkoKXtyZXR1cm4gdGhpcy5nZXQoInJlcXVlc3RCb2R5Iil9c2V0IHJlcXVlc3RCb2R5KHMpe3RoaXMuc2V0KCJyZXF1ZXN0Qm9keSIscyl9fTtjb25zdCBNYj1jbGFzcyBQYXJhbWV0ZXJfUGFyYW1ldGVyIGV4dGVuZHMgX2h7Z2V0IHNjaGVtYSgpe3JldHVybiB0aGlzLmdldCgic2NoZW1hIil9c2V0IHNjaGVtYShzKXt0aGlzLnNldCgic2NoZW1hIixzKX19O2NvbnN0IFJiPWNsYXNzIFBhdGhJdGVtX1BhdGhJdGVtIGV4dGVuZHMgd2h7Z2V0IEdFVCgpe3JldHVybiB0aGlzLmdldCgiZ2V0Iil9c2V0IEdFVChzKXt0aGlzLnNldCgiR0VUIixzKX1nZXQgUFVUKCl7cmV0dXJuIHRoaXMuZ2V0KCJwdXQiKX1zZXQgUFVUKHMpe3RoaXMuc2V0KCJQVVQiLHMpfWdldCBQT1NUKCl7cmV0dXJuIHRoaXMuZ2V0KCJwb3N0Iil9c2V0IFBPU1Qocyl7dGhpcy5zZXQoIlBPU1QiLHMpfWdldCBERUxFVEUoKXtyZXR1cm4gdGhpcy5nZXQoImRlbGV0ZSIpfXNldCBERUxFVEUocyl7dGhpcy5zZXQoIkRFTEVURSIscyl9Z2V0IE9QVElPTlMoKXtyZXR1cm4gdGhpcy5nZXQoIm9wdGlvbnMiKX1zZXQgT1BUSU9OUyhzKXt0aGlzLnNldCgiT1BUSU9OUyIscyl9Z2V0IEhFQUQoKXtyZXR1cm4gdGhpcy5nZXQoImhlYWQiKX1zZXQgSEVBRChzKXt0aGlzLnNldCgiSEVBRCIscyl9Z2V0IFBBVENIKCl7cmV0dXJuIHRoaXMuZ2V0KCJwYXRjaCIpfXNldCBQQVRDSChzKXt0aGlzLnNldCgiUEFUQ0giLHMpfWdldCBUUkFDRSgpe3JldHVybiB0aGlzLmdldCgidHJhY2UiKX1zZXQgVFJBQ0Uocyl7dGhpcy5zZXQoIlRSQUNFIixzKX19O2NvbnN0IExiPWNsYXNzIFBhdGhzX1BhdGhzIGV4dGVuZHMgT2h7fTtjbGFzcyBSZWZlcmVuY2VfUmVmZXJlbmNlIGV4dGVuZHMgamh7fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWZlcmVuY2VfUmVmZXJlbmNlLnByb3RvdHlwZSwiZGVzY3JpcHRpb24iLHtnZXQoKXtyZXR1cm4gdGhpcy5nZXQoImRlc2NyaXB0aW9uIil9LHNldChzKXt0aGlzLnNldCgiZGVzY3JpcHRpb24iLHMpfSxlbnVtZXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlZmVyZW5jZV9SZWZlcmVuY2UucHJvdG90eXBlLCJzdW1tYXJ5Iix7Z2V0KCl7cmV0dXJuIHRoaXMuZ2V0KCJzdW1tYXJ5Iil9LHNldChzKXt0aGlzLnNldCgic3VtbWFyeSIscyl9LGVudW1lcmFibGU6ITB9KTtjb25zdCBxYj1SZWZlcmVuY2VfUmVmZXJlbmNlO2NvbnN0IHpiPWNsYXNzIFJlcXVlc3RCb2R5X1JlcXVlc3RCb2R5IGV4dGVuZHMgUGh7fTtjb25zdCBRYj1jbGFzcyBlbGVtZW50c19SZXNwb25zZV9SZXNwb25zZSBleHRlbmRzIEloe307Y29uc3QgZV89Y2xhc3MgUmVzcG9uc2VzX1Jlc3BvbnNlcyBleHRlbmRzIFJoe307Y29uc3QgdF89Y2xhc3MgSlNPTlNjaGVtYV9KU09OU2NoZW1hIGV4dGVuZHMgTGh7Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9IkpTT05TY2hlbWFEcmFmdDYifWdldCBpZFByb3AoKXt0aHJvdyBuZXcgRGgoImlkIGtleXdvcmQgZnJvbSBDb3JlIHZvY2FidWxhcnkgaGFzIGJlZW4gcmVuYW1lZCB0byAkaWQuIil9c2V0IGlkUHJvcChzKXt0aHJvdyBuZXcgRGgoImlkIGtleXdvcmQgZnJvbSBDb3JlIHZvY2FidWxhcnkgaGFzIGJlZW4gcmVuYW1lZCB0byAkaWQuIil9Z2V0ICRpZCgpe3JldHVybiB0aGlzLmdldCgiJGlkIil9c2V0ICRpZChzKXt0aGlzLnNldCgiJGlkIixzKX1nZXQgZXhjbHVzaXZlTWF4aW11bSgpe3JldHVybiB0aGlzLmdldCgiZXhjbHVzaXZlTWF4aW11bSIpfXNldCBleGNsdXNpdmVNYXhpbXVtKHMpe3RoaXMuc2V0KCJleGNsdXNpdmVNYXhpbXVtIixzKX1nZXQgZXhjbHVzaXZlTWluaW11bSgpe3JldHVybiB0aGlzLmdldCgiZXhjbHVzaXZlTWluaW11bSIpfXNldCBleGNsdXNpdmVNaW5pbXVtKHMpe3RoaXMuc2V0KCJleGNsdXNpdmVNaW5pbXVtIixzKX1nZXQgY29udGFpbnNQcm9wKCl7cmV0dXJuIHRoaXMuZ2V0KCJjb250YWlucyIpfXNldCBjb250YWluc1Byb3Aocyl7dGhpcy5zZXQoImNvbnRhaW5zIixzKX1nZXQgaXRlbXMoKXtyZXR1cm4gdGhpcy5nZXQoIml0ZW1zIil9c2V0IGl0ZW1zKHMpe3RoaXMuc2V0KCJpdGVtcyIscyl9Z2V0IHByb3BlcnR5TmFtZXMoKXtyZXR1cm4gdGhpcy5nZXQoInByb3BlcnR5TmFtZXMiKX1zZXQgcHJvcGVydHlOYW1lcyhzKXt0aGlzLnNldCgicHJvcGVydHlOYW1lcyIscyl9Z2V0IGNvbnN0KCl7cmV0dXJuIHRoaXMuZ2V0KCJjb25zdCIpfXNldCBjb25zdChzKXt0aGlzLnNldCgiY29uc3QiLHMpfWdldCBub3QoKXtyZXR1cm4gdGhpcy5nZXQoIm5vdCIpfXNldCBub3Qocyl7dGhpcy5zZXQoIm5vdCIscyl9Z2V0IGV4YW1wbGVzKCl7cmV0dXJuIHRoaXMuZ2V0KCJleGFtcGxlcyIpfXNldCBleGFtcGxlcyhzKXt0aGlzLnNldCgiZXhhbXBsZXMiLHMpfX07Y29uc3Qgcl89Y2xhc3MgTGlua0Rlc2NyaXB0aW9uX0xpbmtEZXNjcmlwdGlvbiBleHRlbmRzIEhoe2dldCBocmVmU2NoZW1hKCl7cmV0dXJuIHRoaXMuZ2V0KCJocmVmU2NoZW1hIil9c2V0IGhyZWZTY2hlbWEocyl7dGhpcy5zZXQoImhyZWZTY2hlbWEiLHMpfWdldCB0YXJnZXRTY2hlbWEoKXtyZXR1cm4gdGhpcy5nZXQoInRhcmdldFNjaGVtYSIpfXNldCB0YXJnZXRTY2hlbWEocyl7dGhpcy5zZXQoInRhcmdldFNjaGVtYSIscyl9Z2V0IHNjaGVtYSgpe3Rocm93IG5ldyBEaCgic2NoZW1hIGtleXdvcmQgZnJvbSBIeXBlci1TY2hlbWEgdm9jYWJ1bGFyeSBoYXMgYmVlbiByZW5hbWVkIHRvIHN1Ym1pc3Npb25TY2hlbWEuIil9c2V0IHNjaGVtYShzKXt0aHJvdyBuZXcgRGgoInNjaGVtYSBrZXl3b3JkIGZyb20gSHlwZXItU2NoZW1hIHZvY2FidWxhcnkgaGFzIGJlZW4gcmVuYW1lZCB0byBzdWJtaXNzaW9uU2NoZW1hLiIpfWdldCBzdWJtaXNzaW9uU2NoZW1hKCl7cmV0dXJuIHRoaXMuZ2V0KCJzdWJtaXNzaW9uU2NoZW1hIil9c2V0IHN1Ym1pc3Npb25TY2hlbWEocyl7dGhpcy5zZXQoInN1Ym1pc3Npb25TY2hlbWEiLHMpfWdldCBtZXRob2QoKXt0aHJvdyBuZXcgRGgoIm1ldGhvZCBrZXl3b3JkIGZyb20gSHlwZXItU2NoZW1hIHZvY2FidWxhcnkgaGFzIGJlZW4gcmVtb3ZlZC4iKX1zZXQgbWV0aG9kKHMpe3Rocm93IG5ldyBEaCgibWV0aG9kIGtleXdvcmQgZnJvbSBIeXBlci1TY2hlbWEgdm9jYWJ1bGFyeSBoYXMgYmVlbiByZW1vdmVkLiIpfWdldCBlbmNUeXBlKCl7dGhyb3cgbmV3IERoKCJlbmNUeXBlIGtleXdvcmQgZnJvbSBIeXBlci1TY2hlbWEgdm9jYWJ1bGFyeSBoYXMgYmVlbiByZW5hbWVkIHRvIHN1Ym1pc3Npb25FbmNUeXBlLiIpfXNldCBlbmNUeXBlKHMpe3Rocm93IG5ldyBEaCgiZW5jVHlwZSBrZXl3b3JkIGZyb20gSHlwZXItU2NoZW1hIHZvY2FidWxhcnkgaGFzIGJlZW4gcmVuYW1lZCB0byBzdWJtaXNzaW9uRW5jVHlwZS4iKX1nZXQgc3VibWlzc2lvbkVuY1R5cGUoKXtyZXR1cm4gdGhpcy5nZXQoInN1Ym1pc3Npb25FbmNUeXBlIil9c2V0IHN1Ym1pc3Npb25FbmNUeXBlKHMpe3RoaXMuc2V0KCJzdWJtaXNzaW9uRW5jVHlwZSIscyl9fTt2YXIgbl89X2N1cnJ5MygoZnVuY3Rpb24gYXNzb2NQYXRoKHMsbyxpKXtpZigwPT09cy5sZW5ndGgpcmV0dXJuIG87dmFyIGE9c1swXTtpZihzLmxlbmd0aD4xKXt2YXIgdT0hR2goaSkmJl9oYXMoYSxpKSYmIm9iamVjdCI9PXR5cGVvZiBpW2FdP2lbYV06WG8oc1sxXSk/W106e307bz1hc3NvY1BhdGgoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocywxKSxvLHUpfXJldHVybiBmdW5jdGlvbiBfYXNzb2MocyxvLGkpe2lmKFhvKHMpJiZjYShpKSl7dmFyIGE9W10uY29uY2F0KGkpO3JldHVybiBhW3NdPW8sYX12YXIgdT17fTtmb3IodmFyIF8gaW4gaSl1W19dPWlbX107cmV0dXJuIHVbc109byx1fShhLG8saSl9KSk7Y29uc3Qgc189bl87dmFyIG9fPV9jdXJyeTMoKGZ1bmN0aW9uIHJlbW92ZShzLG8saSl7dmFyIGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoaSwwKTtyZXR1cm4gYS5zcGxpY2UocyxvKSxhfSkpO2NvbnN0IGlfPW9fO3ZhciBhXz1fY3VycnkzKChmdW5jdGlvbiBhc3NvYyhzLG8saSl7cmV0dXJuIHNfKFtzXSxvLGkpfSkpO2NvbnN0IGNfPWFfO3ZhciBsXz1fY3VycnkyKChmdW5jdGlvbiBkaXNzb2NQYXRoKHMsbyl7aWYobnVsbD09bylyZXR1cm4gbztzd2l0Y2gocy5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gbztjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uIF9kaXNzb2MocyxvKXtpZihudWxsPT1vKXJldHVybiBvO2lmKFhvKHMpJiZjYShvKSlyZXR1cm4gaV8ocywxLG8pO3ZhciBpPXt9O2Zvcih2YXIgYSBpbiBvKWlbYV09b1thXTtyZXR1cm4gZGVsZXRlIGlbc10saX0oc1swXSxvKTtkZWZhdWx0OnZhciBpPXNbMF0sYT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChzLDEpO3JldHVybiBudWxsPT1vW2ldP2Z1bmN0aW9uIF9zaGFsbG93Q2xvbmVPYmplY3QocyxvKXtpZihYbyhzKSYmY2EobykpcmV0dXJuW10uY29uY2F0KG8pO3ZhciBpPXt9O2Zvcih2YXIgYSBpbiBvKWlbYV09b1thXTtyZXR1cm4gaX0oaSxvKTpjXyhpLGRpc3NvY1BhdGgoYSxvW2ldKSxvKX19KSk7Y29uc3QgdV89bF87Y29uc3QgcF89Y2xhc3MganNvbl9zY2hlbWFfSlNPTlNjaGVtYVZpc2l0b3IgZXh0ZW5kcyBVZHtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IHRffWdldCBkZWZhdWx0RGlhbGVjdElkZW50aWZpZXIoKXtyZXR1cm4iaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNi9zY2hlbWEjIn1Cb29sZWFuRWxlbWVudChzKXtjb25zdCBvPXRoaXMuZW50ZXIocyk7cmV0dXJuIHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goImJvb2xlYW4tanNvbi1zY2hlbWEiKSxvfWhhbmRsZVNjaGVtYUlkZW50aWZpZXIocyxvPSIkaWQiKXtyZXR1cm4gc3VwZXIuaGFuZGxlU2NoZW1hSWRlbnRpZmllcihzLG8pfX07Y29uc3QgaF89Y2xhc3MganNvbl9zY2hlbWFfSXRlbXNWaXNpdG9yX0l0ZW1zVmlzaXRvciBleHRlbmRzIFdke0Jvb2xlYW5FbGVtZW50KHMpe3JldHVybiB0aGlzLmVsZW1lbnQ9dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIl0scyksVXV9fTtjb25zdCBkXz1jbGFzcyBqc29uX3NjaGVtYV9FeGFtcGxlc1Zpc2l0b3JfRXhhbXBsZXNWaXNpdG9yIGV4dGVuZHMgX2R7QXJyYXlFbGVtZW50KHMpe2NvbnN0IG89dGhpcy5lbnRlcihzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgianNvbi1zY2hlbWEtZXhhbXBsZXMiKSxvfX07Y29uc3QgZl89Y2xhc3MgbGlua19kZXNjcmlwdGlvbl9MaW5rRGVzY3JpcHRpb25WaXNpdG9yIGV4dGVuZHMgTmZ7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyByX319LG1fPXBpcGUoc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCIkdmlzaXRvciJdLHBfKSx1XyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiaWQiXSksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsIiRpZCJdLFJmLnZpc2l0b3JzLnZhbHVlKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiY29udGFpbnMiXSxSZi52aXNpdG9ycy5KU09OU2NoZW1hT3JKU09OUmVmZXJlbmNlVmlzaXRvciksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsIml0ZW1zIl0saF8pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJwcm9wZXJ0eU5hbWVzIl0sUmYudmlzaXRvcnMuSlNPTlNjaGVtYU9ySlNPTlJlZmVyZW5jZVZpc2l0b3IpLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJjb25zdCJdLFJmLnZpc2l0b3JzLnZhbHVlKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiZXhhbXBsZXMiXSxkXyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsIiR2aXNpdG9yIl0sZl8pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rRGVzY3JpcHRpb24iLCJmaXhlZEZpZWxkcyIsImhyZWZTY2hlbWEiXSxSZi52aXNpdG9ycy5KU09OU2NoZW1hT3JKU09OUmVmZXJlbmNlVmlzaXRvciksdV8oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsImZpeGVkRmllbGRzIiwic2NoZW1hIl0pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rRGVzY3JpcHRpb24iLCJmaXhlZEZpZWxkcyIsInN1Ym1pc3Npb25TY2hlbWEiXSxSZi52aXNpdG9ycy5KU09OU2NoZW1hT3JKU09OUmVmZXJlbmNlVmlzaXRvciksdV8oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsImZpeGVkRmllbGRzIiwibWV0aG9kIl0pLHVfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rRGVzY3JpcHRpb24iLCJmaXhlZEZpZWxkcyIsImVuY1R5cGUiXSksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsImZpeGVkRmllbGRzIiwic3VibWlzc2lvbkVuY1R5cGUiXSxSZi52aXNpdG9ycy52YWx1ZSkpKFJmKSxnXz17SlNPTlNjaGVtYURyYWZ0NkVsZW1lbnQ6WyJjb250ZW50Il0sSlNPTlJlZmVyZW5jZUVsZW1lbnQ6WyJjb250ZW50Il0sTWVkaWFFbGVtZW50OlsiY29udGVudCJdLExpbmtEZXNjcmlwdGlvbkVsZW1lbnQ6WyJjb250ZW50Il0sLi4uS3V9LHlfPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgdF98fHMoYSkmJm8oIkpTT05TY2hlbWFEcmFmdDYiLGEpJiZpKCJvYmplY3QiLGEpKSksdl89aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiByX3x8cyhhKSYmbygibGlua0Rlc2NyaXB0aW9uIixhKSYmaSgib2JqZWN0IixhKSkpLGJfPXtuYW1lc3BhY2U6cz0+e2NvbnN0e2Jhc2U6b309cztyZXR1cm4gby5yZWdpc3RlcigialNPTlNjaGVtYURyYWZ0NiIsdF8pLG8ucmVnaXN0ZXIoImpTT05SZWZlcmVuY2UiLEZoKSxvLnJlZ2lzdGVyKCJtZWRpYSIsSmgpLG8ucmVnaXN0ZXIoImxpbmtEZXNjcmlwdGlvbiIscl8pLG99fSxTXz1iXyxhcGlkb21fbnNfanNvbl9zY2hlbWFfZHJhZnRfNl9zcmNfcmVmcmFjdG9yX3Rvb2xib3g9KCk9Pntjb25zdCBzPWNyZWF0ZU5hbWVzcGFjZShTXyk7cmV0dXJue3ByZWRpY2F0ZXM6ey4uLmxlLGlzU3RyaW5nRWxlbWVudDpQdX0sbmFtZXNwYWNlOnN9fSxhcGlkb21fbnNfanNvbl9zY2hlbWFfZHJhZnRfNl9zcmNfcmVmcmFjdG9yX3JlZnJhY3Q9KHMse3NwZWNQYXRoOm89WyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCIkdmlzaXRvciJdLHBsdWdpbnM6aT1bXSxzcGVjaWZpY2F0aW9uT2JqOmE9bV99PXt9KT0+e2NvbnN0IHU9KDAsU3UuZSkocyksXz1kZXJlZmVyZW5jZShhKSx3PW5ldyh0cChvLF8pKSh7c3BlY09iajpffSk7cmV0dXJuIHZpc2l0b3JfdmlzaXQodSx3KSxkaXNwYXRjaFBsdWdpbnNTeW5jKHcuZWxlbWVudCxpLHt0b29sYm94Q3JlYXRvcjphcGlkb21fbnNfanNvbl9zY2hlbWFfZHJhZnRfNl9zcmNfcmVmcmFjdG9yX3Rvb2xib3gsdmlzaXRvck9wdGlvbnM6e2tleU1hcDpnXyxub2RlVHlwZUdldHRlcjp0cmF2ZXJzYWxfdmlzaXRvcl9nZXROb2RlVHlwZX19KX0sYXBpZG9tX25zX2pzb25fc2NoZW1hX2RyYWZ0XzZfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3I9cz0+KG8saT17fSk9PmFwaWRvbV9uc19qc29uX3NjaGVtYV9kcmFmdF82X3NyY19yZWZyYWN0b3JfcmVmcmFjdChvLHtzcGVjUGF0aDpzLC4uLml9KTt0Xy5yZWZyYWN0PWFwaWRvbV9uc19qc29uX3NjaGVtYV9kcmFmdF82X3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiJHZpc2l0b3IiXSkscl8ucmVmcmFjdD1hcGlkb21fbnNfanNvbl9zY2hlbWFfZHJhZnRfNl9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiJHZpc2l0b3IiXSk7Y29uc3QgRV89Y2xhc3MgZWxlbWVudHNfSlNPTlNjaGVtYV9KU09OU2NoZW1hIGV4dGVuZHMgdF97Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9IkpTT05TY2hlbWFEcmFmdDcifWdldCAkY29tbWVudCgpe3JldHVybiB0aGlzLmdldCgiJGNvbW1lbnQiKX1zZXQgJGNvbW1lbnQocyl7dGhpcy5zZXQoIiRjb21tZW50IixzKX1nZXQgaXRlbXMoKXtyZXR1cm4gdGhpcy5nZXQoIml0ZW1zIil9c2V0IGl0ZW1zKHMpe3RoaXMuc2V0KCJpdGVtcyIscyl9Z2V0IGlmKCl7cmV0dXJuIHRoaXMuZ2V0KCJpZiIpfXNldCBpZihzKXt0aGlzLnNldCgiaWYiLHMpfWdldCB0aGVuKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0aGVuIil9c2V0IHRoZW4ocyl7dGhpcy5zZXQoInRoZW4iLHMpfWdldCBlbHNlKCl7cmV0dXJuIHRoaXMuZ2V0KCJlbHNlIil9c2V0IGVsc2Uocyl7dGhpcy5zZXQoImVsc2UiLHMpfWdldCBub3QoKXtyZXR1cm4gdGhpcy5nZXQoIm5vdCIpfXNldCBub3Qocyl7dGhpcy5zZXQoIm5vdCIscyl9Z2V0IGNvbnRlbnRFbmNvZGluZygpe3JldHVybiB0aGlzLmdldCgiY29udGVudEVuY29kaW5nIil9c2V0IGNvbnRlbnRFbmNvZGluZyhzKXt0aGlzLnNldCgiY29udGVudEVuY29kaW5nIixzKX1nZXQgY29udGVudE1lZGlhVHlwZSgpe3JldHVybiB0aGlzLmdldCgiY29udGVudE1lZGlhVHlwZSIpfXNldCBjb250ZW50TWVkaWFUeXBlKHMpe3RoaXMuc2V0KCJjb250ZW50TWVkaWFUeXBlIixzKX1nZXQgbWVkaWEoKXt0aHJvdyBuZXcgRGgoJ21lZGlhIGtleXdvcmQgZnJvbSBIeXBlci1TY2hlbWEgdm9jYWJ1bGFyeSBoYXMgYmVlbiBtb3ZlZCB0byB2YWxpZGF0aW9uIHZvY2FidWxhcnkgYXMgImNvbnRlbnRNZWRpYVR5cGUiIC8gImNvbnRlbnRFbmNvZGluZyInKX1zZXQgbWVkaWEocyl7dGhyb3cgbmV3IERoKCdtZWRpYSBrZXl3b3JkIGZyb20gSHlwZXItU2NoZW1hIHZvY2FidWxhcnkgaGFzIGJlZW4gbW92ZWQgdG8gdmFsaWRhdGlvbiB2b2NhYnVsYXJ5IGFzICJjb250ZW50TWVkaWFUeXBlIiAvICJjb250ZW50RW5jb2RpbmciJyl9Z2V0IHdyaXRlT25seSgpe3JldHVybiB0aGlzLmdldCgid3JpdGVPbmx5Iil9c2V0IHdyaXRlT25seShzKXt0aGlzLnNldCgid3JpdGVPbmx5IixzKX19O2NvbnN0IHdfPWNsYXNzIGVsZW1lbnRzX0xpbmtEZXNjcmlwdGlvbl9MaW5rRGVzY3JpcHRpb24gZXh0ZW5kcyByX3tnZXQgYW5jaG9yKCl7cmV0dXJuIHRoaXMuZ2V0KCJhbmNob3IiKX1zZXQgYW5jaG9yKHMpe3RoaXMuc2V0KCJhbmNob3IiLHMpfWdldCBhbmNob3JQb2ludGVyKCl7cmV0dXJuIHRoaXMuZ2V0KCJhbmNob3JQb2ludGVyIil9c2V0IGFuY2hvclBvaW50ZXIocyl7dGhpcy5zZXQoImFuY2hvclBvaW50ZXIiLHMpfWdldCB0ZW1wbGF0ZVBvaW50ZXJzKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0ZW1wbGF0ZVBvaW50ZXJzIil9c2V0IHRlbXBsYXRlUG9pbnRlcnMocyl7dGhpcy5zZXQoInRlbXBsYXRlUG9pbnRlcnMiLHMpfWdldCB0ZW1wbGF0ZVJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0ZW1wbGF0ZVJlcXVpcmVkIil9c2V0IHRlbXBsYXRlUmVxdWlyZWQocyl7dGhpcy5zZXQoInRlbXBsYXRlUmVxdWlyZWQiLHMpfWdldCB0YXJnZXRTY2hlbWEoKXtyZXR1cm4gdGhpcy5nZXQoInRhcmdldFNjaGVtYSIpfXNldCB0YXJnZXRTY2hlbWEocyl7dGhpcy5zZXQoInRhcmdldFNjaGVtYSIscyl9Z2V0IG1lZGlhVHlwZSgpe3Rocm93IG5ldyBEaCgibWVkaWFUeXBlIGtleXdvcmQgZnJvbSBIeXBlci1TY2hlbWEgdm9jYWJ1bGFyeSBoYXMgYmVlbiByZW5hbWVkIHRvIHRhcmdldE1lZGlhVHlwZS4iKX1zZXQgbWVkaWFUeXBlKHMpe3Rocm93IG5ldyBEaCgibWVkaWFUeXBlIGtleXdvcmQgZnJvbSBIeXBlci1TY2hlbWEgdm9jYWJ1bGFyeSBoYXMgYmVlbiByZW5hbWVkIHRvIHRhcmdldE1lZGlhVHlwZS4iKX1nZXQgdGFyZ2V0TWVkaWFUeXBlKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0YXJnZXRNZWRpYVR5cGUiKX1zZXQgdGFyZ2V0TWVkaWFUeXBlKHMpe3RoaXMuc2V0KCJ0YXJnZXRNZWRpYVR5cGUiLHMpfWdldCB0YXJnZXRIaW50cygpe3JldHVybiB0aGlzLmdldCgidGFyZ2V0SGludHMiKX1zZXQgdGFyZ2V0SGludHMocyl7dGhpcy5zZXQoInRhcmdldEhpbnRzIixzKX1nZXQgZGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy5nZXQoImRlc2NyaXB0aW9uIil9c2V0IGRlc2NyaXB0aW9uKHMpe3RoaXMuc2V0KCJkZXNjcmlwdGlvbiIscyl9Z2V0ICRjb21tZW50KCl7cmV0dXJuIHRoaXMuZ2V0KCIkY29tbWVudCIpfXNldCAkY29tbWVudChzKXt0aGlzLnNldCgiJGNvbW1lbnQiLHMpfWdldCBocmVmU2NoZW1hKCl7cmV0dXJuIHRoaXMuZ2V0KCJocmVmU2NoZW1hIil9c2V0IGhyZWZTY2hlbWEocyl7dGhpcy5zZXQoImhyZWZTY2hlbWEiLHMpfWdldCBoZWFkZXJTY2hlbWEoKXtyZXR1cm4gdGhpcy5nZXQoImhlYWRlclNjaGVtYSIpfXNldCBoZWFkZXJTY2hlbWEocyl7dGhpcy5zZXQoImhlYWRlclNjaGVtYSIscyl9Z2V0IHN1Ym1pc3Npb25TY2hlbWEoKXtyZXR1cm4gdGhpcy5nZXQoInN1Ym1pc3Npb25TY2hlbWEiKX1zZXQgc3VibWlzc2lvblNjaGVtYShzKXt0aGlzLnNldCgic3VibWlzc2lvblNjaGVtYSIscyl9Z2V0IHN1Ym1pc3Npb25FbmNUeXBlKCl7dGhyb3cgbmV3IERoKCJzdWJtaXNzaW9uRW5jVHlwZSBrZXl3b3JkIGZyb20gSHlwZXItU2NoZW1hIHZvY2FidWxhcnkgaGFzIGJlZW4gcmVuYW1lZCB0byBzdWJtaXNzaW9uTWVkaWFUeXBlLiIpfXNldCBzdWJtaXNzaW9uRW5jVHlwZShzKXt0aHJvdyBuZXcgRGgoInN1Ym1pc3Npb25FbmNUeXBlIGtleXdvcmQgZnJvbSBIeXBlci1TY2hlbWEgdm9jYWJ1bGFyeSBoYXMgYmVlbiByZW5hbWVkIHRvIHN1Ym1pc3Npb25NZWRpYVR5cGUuIil9Z2V0IHN1Ym1pc3Npb25NZWRpYVR5cGUoKXtyZXR1cm4gdGhpcy5nZXQoInN1Ym1pc3Npb25NZWRpYVR5cGUiKX1zZXQgc3VibWlzc2lvbk1lZGlhVHlwZShzKXt0aGlzLnNldCgic3VibWlzc2lvbk1lZGlhVHlwZSIscyl9fTtjb25zdCB4Xz1jbGFzcyB2aXNpdG9yc19qc29uX3NjaGVtYV9KU09OU2NoZW1hVmlzaXRvciBleHRlbmRzIHBfe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgRV99Z2V0IGRlZmF1bHREaWFsZWN0SWRlbnRpZmllcigpe3JldHVybiJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA3L3NjaGVtYSMifX07Y29uc3Qga189Y2xhc3MganNvbl9zY2hlbWFfbGlua19kZXNjcmlwdGlvbl9MaW5rRGVzY3JpcHRpb25WaXNpdG9yIGV4dGVuZHMgZl97Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyB3X319LE9fPXBpcGUoc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCIkdmlzaXRvciJdLHhfKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiJGNvbW1lbnQiXSxtXy52aXNpdG9ycy52YWx1ZSksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsImlmIl0sbV8udmlzaXRvcnMuSlNPTlNjaGVtYU9ySlNPTlJlZmVyZW5jZVZpc2l0b3IpLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJ0aGVuIl0sbV8udmlzaXRvcnMuSlNPTlNjaGVtYU9ySlNPTlJlZmVyZW5jZVZpc2l0b3IpLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJlbHNlIl0sbV8udmlzaXRvcnMuSlNPTlNjaGVtYU9ySlNPTlJlZmVyZW5jZVZpc2l0b3IpLHVfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJtZWRpYSJdKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiY29udGVudEVuY29kaW5nIl0sbV8udmlzaXRvcnMudmFsdWUpLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJjb250ZW50TWVkaWFUeXBlIl0sbV8udmlzaXRvcnMudmFsdWUpLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJ3cml0ZU9ubHkiXSxtXy52aXNpdG9ycy52YWx1ZSksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsIiR2aXNpdG9yIl0sa18pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rRGVzY3JpcHRpb24iLCJmaXhlZEZpZWxkcyIsImFuY2hvciJdLG1fLnZpc2l0b3JzLnZhbHVlKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiZml4ZWRGaWVsZHMiLCJhbmNob3JQb2ludGVyIl0sbV8udmlzaXRvcnMudmFsdWUpLHVfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rRGVzY3JpcHRpb24iLCJmaXhlZEZpZWxkcyIsIm1lZGlhVHlwZSJdKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiZml4ZWRGaWVsZHMiLCJ0YXJnZXRNZWRpYVR5cGUiXSxtXy52aXNpdG9ycy52YWx1ZSksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsImZpeGVkRmllbGRzIiwidGFyZ2V0SGludHMiXSxtXy52aXNpdG9ycy52YWx1ZSksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsImZpeGVkRmllbGRzIiwiZGVzY3JpcHRpb24iXSxtXy52aXNpdG9ycy52YWx1ZSksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsImZpeGVkRmllbGRzIiwiJGNvbW1lbnQiXSxtXy52aXNpdG9ycy52YWx1ZSksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsImZpeGVkRmllbGRzIiwiaGVhZGVyU2NoZW1hIl0sbV8udmlzaXRvcnMuSlNPTlNjaGVtYU9ySlNPTlJlZmVyZW5jZVZpc2l0b3IpLHVfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rRGVzY3JpcHRpb24iLCJmaXhlZEZpZWxkcyIsInN1Ym1pc3Npb25FbmNUeXBlIl0pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rRGVzY3JpcHRpb24iLCJmaXhlZEZpZWxkcyIsInN1Ym1pc3Npb25NZWRpYVR5cGUiXSxtXy52aXNpdG9ycy52YWx1ZSkpKG1fKSxDXz17SlNPTlNjaGVtYURyYWZ0N0VsZW1lbnQ6WyJjb250ZW50Il0sSlNPTlJlZmVyZW5jZUVsZW1lbnQ6WyJjb250ZW50Il0sTGlua0Rlc2NyaXB0aW9uRWxlbWVudDpbImNvbnRlbnQiXSwuLi5LdX0sQV89aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBFX3x8cyhhKSYmbygiSlNPTlNjaGVtYURyYWZ0NyIsYSkmJmkoIm9iamVjdCIsYSkpKSxqXz1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIHdffHxzKGEpJiZvKCJsaW5rRGVzY3JpcHRpb24iLGEpJiZpKCJvYmplY3QiLGEpKSksUF89e25hbWVzcGFjZTpzPT57Y29uc3R7YmFzZTpvfT1zO3JldHVybiBvLnJlZ2lzdGVyKCJqU09OU2NoZW1hRHJhZnQ3IixFXyksby5yZWdpc3RlcigialNPTlJlZmVyZW5jZSIsRmgpLG8ucmVnaXN0ZXIoImxpbmtEZXNjcmlwdGlvbiIsd18pLG99fSxJXz1QXyxhcGlkb21fbnNfanNvbl9zY2hlbWFfZHJhZnRfN19zcmNfcmVmcmFjdG9yX3Rvb2xib3g9KCk9Pntjb25zdCBzPWNyZWF0ZU5hbWVzcGFjZShJXyk7cmV0dXJue3ByZWRpY2F0ZXM6ey4uLnBlLGlzU3RyaW5nRWxlbWVudDpQdX0sbmFtZXNwYWNlOnN9fSxhcGlkb21fbnNfanNvbl9zY2hlbWFfZHJhZnRfN19zcmNfcmVmcmFjdG9yX3JlZnJhY3Q9KHMse3NwZWNQYXRoOm89WyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCIkdmlzaXRvciJdLHBsdWdpbnM6aT1bXSxzcGVjaWZpY2F0aW9uT2JqOmE9T199PXt9KT0+e2NvbnN0IHU9KDAsU3UuZSkocyksXz1kZXJlZmVyZW5jZShhKSx3PW5ldyh0cChvLF8pKSh7c3BlY09iajpffSk7cmV0dXJuIHZpc2l0b3JfdmlzaXQodSx3KSxkaXNwYXRjaFBsdWdpbnNTeW5jKHcuZWxlbWVudCxpLHt0b29sYm94Q3JlYXRvcjphcGlkb21fbnNfanNvbl9zY2hlbWFfZHJhZnRfN19zcmNfcmVmcmFjdG9yX3Rvb2xib3gsdmlzaXRvck9wdGlvbnM6e2tleU1hcDpDXyxub2RlVHlwZUdldHRlcjp0cmF2ZXJzYWxfdmlzaXRvcl9nZXROb2RlVHlwZX19KX0sYXBpZG9tX25zX2pzb25fc2NoZW1hX2RyYWZ0Xzdfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3I9cz0+KG8saT17fSk9PmFwaWRvbV9uc19qc29uX3NjaGVtYV9kcmFmdF83X3NyY19yZWZyYWN0b3JfcmVmcmFjdChvLHtzcGVjUGF0aDpzLC4uLml9KTtFXy5yZWZyYWN0PWFwaWRvbV9uc19qc29uX3NjaGVtYV9kcmFmdF83X3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiJHZpc2l0b3IiXSksd18ucmVmcmFjdD1hcGlkb21fbnNfanNvbl9zY2hlbWFfZHJhZnRfN19zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiJHZpc2l0b3IiXSk7Y29uc3QgVF89Y2xhc3Mgc3JjX2VsZW1lbnRzX0pTT05TY2hlbWFfSlNPTlNjaGVtYSBleHRlbmRzIEVfe2NvbnN0cnVjdG9yKHMsbyxpKXtzdXBlcihzLG8saSksdGhpcy5lbGVtZW50PSJKU09OU2NoZW1hMjAxOTA5In1nZXQgJHZvY2FidWxhcnkoKXtyZXR1cm4gdGhpcy5nZXQoIiR2b2NhYnVsYXJ5Iil9c2V0ICR2b2NhYnVsYXJ5KHMpe3RoaXMuc2V0KCIkdm9jYWJ1bGFyeSIscyl9Z2V0ICRhbmNob3IoKXtyZXR1cm4gdGhpcy5nZXQoIiRhbmNob3IiKX1zZXQgJGFuY2hvcihzKXt0aGlzLnNldCgiJGFuY2hvciIscyl9Z2V0ICRyZWN1cnNpdmVBbmNob3IoKXtyZXR1cm4gdGhpcy5nZXQoIiRyZWN1cnNpdmVBbmNob3IiKX1zZXQgJHJlY3Vyc2l2ZUFuY2hvcihzKXt0aGlzLnNldCgiJHJlY3Vyc2l2ZUFuY2hvciIscyl9Z2V0ICRyZWN1cnNpdmVSZWYoKXtyZXR1cm4gdGhpcy5nZXQoIiRyZWN1cnNpdmVSZWYiKX1zZXQgJHJlY3Vyc2l2ZVJlZihzKXt0aGlzLnNldCgiJHJlY3Vyc2l2ZVJlZiIscyl9Z2V0ICRyZWYoKXtyZXR1cm4gdGhpcy5nZXQoIiRyZWYiKX1zZXQgJHJlZihzKXt0aGlzLnNldCgiJHJlZiIscyl9Z2V0ICRkZWZzKCl7cmV0dXJuIHRoaXMuZ2V0KCIkZGVmcyIpfXNldCAkZGVmcyhzKXt0aGlzLnNldCgiJGRlZnMiLHMpfWdldCBkZWZpbml0aW9ucygpe3Rocm93IG5ldyBEaCgiZGVmaW5pdGlvbnMga2V5d29yZCBmcm9tIFZhbGlkYXRpb24gdm9jYWJ1bGFyeSBoYXMgYmVlbiByZW5hbWVkIHRvICRkZWZzLiIpfXNldCBkZWZpbml0aW9ucyhzKXt0aHJvdyBuZXcgRGgoImRlZmluaXRpb25zIGtleXdvcmQgZnJvbSBWYWxpZGF0aW9uIHZvY2FidWxhcnkgaGFzIGJlZW4gcmVuYW1lZCB0byAkZGVmcy4iKX1nZXQgbm90KCl7cmV0dXJuIHRoaXMuZ2V0KCJub3QiKX1zZXQgbm90KHMpe3RoaXMuc2V0KCJub3QiLHMpfWdldCBpZigpe3JldHVybiB0aGlzLmdldCgiaWYiKX1zZXQgaWYocyl7dGhpcy5zZXQoImlmIixzKX1nZXQgdGhlbigpe3JldHVybiB0aGlzLmdldCgidGhlbiIpfXNldCB0aGVuKHMpe3RoaXMuc2V0KCJ0aGVuIixzKX1nZXQgZWxzZSgpe3JldHVybiB0aGlzLmdldCgiZWxzZSIpfXNldCBlbHNlKHMpe3RoaXMuc2V0KCJlbHNlIixzKX1nZXQgZGVwZW5kZW50U2NoZW1hcygpe3JldHVybiB0aGlzLmdldCgiZGVwZW5kZW50U2NoZW1hcyIpfXNldCBkZXBlbmRlbnRTY2hlbWFzKHMpe3RoaXMuc2V0KCJkZXBlbmRlbnRTY2hlbWFzIixzKX1nZXQgZGVwZW5kZW5jaWVzKCl7dGhyb3cgbmV3IERoKCJkZXBlbmRlbmNpZXMga2V5d29yZCBmcm9tIFZhbGlkYXRpb24gdm9jYWJ1bGFyeSBoYXMgYmVlbiByZW5hbWVkIHRvIGRlcGVuZGVudFNjaGVtYXMuIil9c2V0IGRlcGVuZGVuY2llcyhzKXt0aHJvdyBuZXcgRGgoImRlcGVuZGVuY2llcyBrZXl3b3JkIGZyb20gVmFsaWRhdGlvbiB2b2NhYnVsYXJ5IGhhcyBiZWVuIHJlbmFtZWQgdG8gZGVwZW5kZW50U2NoZW1hcy4iKX1nZXQgaXRlbXMoKXtyZXR1cm4gdGhpcy5nZXQoIml0ZW1zIil9c2V0IGl0ZW1zKHMpe3RoaXMuc2V0KCJpdGVtcyIscyl9Z2V0IGNvbnRhaW5zUHJvcCgpe3JldHVybiB0aGlzLmdldCgiY29udGFpbnMiKX1zZXQgY29udGFpbnNQcm9wKHMpe3RoaXMuc2V0KCJjb250YWlucyIscyl9Z2V0IGFkZGl0aW9uYWxQcm9wZXJ0aWVzKCl7cmV0dXJuIHRoaXMuZ2V0KCJhZGRpdGlvbmFsUHJvcGVydGllcyIpfXNldCBhZGRpdGlvbmFsUHJvcGVydGllcyhzKXt0aGlzLnNldCgiYWRkaXRpb25hbFByb3BlcnRpZXMiLHMpfWdldCBhZGRpdGlvbmFsSXRlbXMoKXtyZXR1cm4gdGhpcy5nZXQoImFkZGl0aW9uYWxJdGVtcyIpfXNldCBhZGRpdGlvbmFsSXRlbXMocyl7dGhpcy5zZXQoImFkZGl0aW9uYWxJdGVtcyIscyl9Z2V0IHByb3BlcnR5TmFtZXMoKXtyZXR1cm4gdGhpcy5nZXQoInByb3BlcnR5TmFtZXMiKX1zZXQgcHJvcGVydHlOYW1lcyhzKXt0aGlzLnNldCgicHJvcGVydHlOYW1lcyIscyl9Z2V0IHVuZXZhbHVhdGVkSXRlbXMoKXtyZXR1cm4gdGhpcy5nZXQoInVuZXZhbHVhdGVkSXRlbXMiKX1zZXQgdW5ldmFsdWF0ZWRJdGVtcyhzKXt0aGlzLnNldCgidW5ldmFsdWF0ZWRJdGVtcyIscyl9Z2V0IHVuZXZhbHVhdGVkUHJvcGVydGllcygpe3JldHVybiB0aGlzLmdldCgidW5ldmFsdWF0ZWRQcm9wZXJ0aWVzIil9c2V0IHVuZXZhbHVhdGVkUHJvcGVydGllcyhzKXt0aGlzLnNldCgidW5ldmFsdWF0ZWRQcm9wZXJ0aWVzIixzKX1nZXQgbWF4Q29udGFpbnMoKXtyZXR1cm4gdGhpcy5nZXQoIm1heENvbnRhaW5zIil9c2V0IG1heENvbnRhaW5zKHMpe3RoaXMuc2V0KCJtYXhDb250YWlucyIscyl9Z2V0IG1pbkNvbnRhaW5zKCl7cmV0dXJuIHRoaXMuZ2V0KCJtaW5Db250YWlucyIpfXNldCBtaW5Db250YWlucyhzKXt0aGlzLnNldCgibWluQ29udGFpbnMiLHMpfWdldCBkZXBlbmRlbnRSZXF1aXJlZCgpe3JldHVybiB0aGlzLmdldCgiZGVwZW5kZW50UmVxdWlyZWQiKX1zZXQgZGVwZW5kZW50UmVxdWlyZWQocyl7dGhpcy5zZXQoImRlcGVuZGVudFJlcXVpcmVkIixzKX1nZXQgZGVwcmVjYXRlZCgpe3JldHVybiB0aGlzLmdldCgiZGVwcmVjYXRlZCIpfXNldCBkZXByZWNhdGVkKHMpe3RoaXMuc2V0KCJkZXByZWNhdGVkIixzKX1nZXQgY29udGVudFNjaGVtYSgpe3JldHVybiB0aGlzLmdldCgiY29udGVudFNjaGVtYSIpfXNldCBjb250ZW50U2NoZW1hKHMpe3RoaXMuc2V0KCJjb250ZW50U2NoZW1hIixzKX19O2NvbnN0IE5fPWNsYXNzIHNyY19lbGVtZW50c19MaW5rRGVzY3JpcHRpb25fTGlua0Rlc2NyaXB0aW9uIGV4dGVuZHMgd197Z2V0IHRhcmdldFNjaGVtYSgpe3JldHVybiB0aGlzLmdldCgidGFyZ2V0U2NoZW1hIil9c2V0IHRhcmdldFNjaGVtYShzKXt0aGlzLnNldCgidGFyZ2V0U2NoZW1hIixzKX1nZXQgaHJlZlNjaGVtYSgpe3JldHVybiB0aGlzLmdldCgiaHJlZlNjaGVtYSIpfXNldCBocmVmU2NoZW1hKHMpe3RoaXMuc2V0KCJocmVmU2NoZW1hIixzKX1nZXQgaGVhZGVyU2NoZW1hKCl7cmV0dXJuIHRoaXMuZ2V0KCJoZWFkZXJTY2hlbWEiKX1zZXQgaGVhZGVyU2NoZW1hKHMpe3RoaXMuc2V0KCJoZWFkZXJTY2hlbWEiLHMpfWdldCBzdWJtaXNzaW9uU2NoZW1hKCl7cmV0dXJuIHRoaXMuZ2V0KCJzdWJtaXNzaW9uU2NoZW1hIil9c2V0IHN1Ym1pc3Npb25TY2hlbWEocyl7dGhpcy5zZXQoInN1Ym1pc3Npb25TY2hlbWEiLHMpfX07Y29uc3QgTV89Y2xhc3MgcmVmcmFjdG9yX3Zpc2l0b3JzX2pzb25fc2NoZW1hX0pTT05TY2hlbWFWaXNpdG9yIGV4dGVuZHMgeF97Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBUX31nZXQgZGVmYXVsdERpYWxlY3RJZGVudGlmaWVyKCl7cmV0dXJuImh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMTktMDkvc2NoZW1hIn1PYmplY3RFbGVtZW50KHMpe3RoaXMuaGFuZGxlRGlhbGVjdElkZW50aWZpZXIocyksdGhpcy5oYW5kbGVTY2hlbWFJZGVudGlmaWVyKHMpLHRoaXMucGFyZW50PXRoaXMuZWxlbWVudDtjb25zdCBvPURkLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gUHUodGhpcy5lbGVtZW50LiRyZWYpJiYodGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgicmVmZXJlbmNlLWVsZW1lbnQiKSx0aGlzLmVsZW1lbnQuc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJzY2hlbWEiKSksb319O2NvbnN0IFJfPWNsYXNzICR2b2NhYnVsYXJ5VmlzaXRvciBleHRlbmRzIF9ke09iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1zdXBlci5lbnRlcihzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgianNvbi1zY2hlbWEtJHZvY2FidWxhcnkiKSxvfX07Y29uc3QgRF89Y2xhc3MgJHJlZlZpc2l0b3IgZXh0ZW5kcyBfZHtTdHJpbmdFbGVtZW50KHMpe2NvbnN0IG89c3VwZXIuZW50ZXIocyk7cmV0dXJuIHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goInJlZmVyZW5jZS12YWx1ZSIpLG99fTtjbGFzcyAkZGVmc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihLZCxMZCxfZCkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgU3UuU2gsdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgianNvbi1zY2hlbWEtJGRlZnMiKSx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSJdKX19Y29uc3QgTF89JGRlZnNWaXNpdG9yO2NsYXNzIGpzb25fc2NoZW1hX0FsbE9mVmlzaXRvcl9BbGxPZlZpc2l0b3IgZXh0ZW5kcyhNaXhpbihSZCxMZCxfZCkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgU3Uud0UsdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgianNvbi1zY2hlbWEtYWxsT2YiKX1BcnJheUVsZW1lbnQocyl7cmV0dXJuIHMuZm9yRWFjaCgocz0+e2NvbnN0IG89dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIl0scyk7dGhpcy5lbGVtZW50LnB1c2gobyl9KSksdGhpcy5jb3B5TWV0YUFuZEF0dHJpYnV0ZXMocyx0aGlzLmVsZW1lbnQpLFV1fX1jb25zdCBGXz1qc29uX3NjaGVtYV9BbGxPZlZpc2l0b3JfQWxsT2ZWaXNpdG9yO2NsYXNzIGpzb25fc2NoZW1hX0FueU9mVmlzaXRvcl9BbnlPZlZpc2l0b3IgZXh0ZW5kcyhNaXhpbihSZCxMZCxfZCkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgU3Uud0UsdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgianNvbi1zY2hlbWEtYW55T2YiKX1BcnJheUVsZW1lbnQocyl7cmV0dXJuIHMuZm9yRWFjaCgocz0+e2NvbnN0IG89dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIl0scyk7dGhpcy5lbGVtZW50LnB1c2gobyl9KSksdGhpcy5jb3B5TWV0YUFuZEF0dHJpYnV0ZXMocyx0aGlzLmVsZW1lbnQpLFV1fX1jb25zdCBCXz1qc29uX3NjaGVtYV9BbnlPZlZpc2l0b3JfQW55T2ZWaXNpdG9yO2NsYXNzIGpzb25fc2NoZW1hX09uZU9mVmlzaXRvcl9PbmVPZlZpc2l0b3IgZXh0ZW5kcyhNaXhpbihSZCxMZCxfZCkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgU3Uud0UsdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgianNvbi1zY2hlbWEtb25lT2YiKX1BcnJheUVsZW1lbnQocyl7cmV0dXJuIHMuZm9yRWFjaCgocz0+e2NvbnN0IG89dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIl0scyk7dGhpcy5lbGVtZW50LnB1c2gobyl9KSksdGhpcy5jb3B5TWV0YUFuZEF0dHJpYnV0ZXMocyx0aGlzLmVsZW1lbnQpLFV1fX1jb25zdCAkXz1qc29uX3NjaGVtYV9PbmVPZlZpc2l0b3JfT25lT2ZWaXNpdG9yO2NsYXNzIERlcGVuZGVudFNjaGVtYXNWaXNpdG9yIGV4dGVuZHMoTWl4aW4oS2QsTGQsX2QpKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFN1LlNoLHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goImpzb24tc2NoZW1hLWRlcGVuZGVudFNjaGVtYXMiKSx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSJdKX19Y29uc3QgcV89RGVwZW5kZW50U2NoZW1hc1Zpc2l0b3I7Y2xhc3MgdmlzaXRvcnNfanNvbl9zY2hlbWFfSXRlbXNWaXNpdG9yX0l0ZW1zVmlzaXRvciBleHRlbmRzKE1peGluKFJkLExkLF9kKSl7T2JqZWN0RWxlbWVudChzKXtyZXR1cm4gdGhpcy5lbGVtZW50PXRoaXMudG9SZWZyYWN0ZWRFbGVtZW50KFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSJdLHMpLFV1fUFycmF5RWxlbWVudChzKXtyZXR1cm4gdGhpcy5lbGVtZW50PW5ldyBTdS53RSx0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJqc29uLXNjaGVtYS1pdGVtcyIpLHMuZm9yRWFjaCgocz0+e2NvbnN0IG89dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIl0scyk7dGhpcy5lbGVtZW50LnB1c2gobyl9KSksdGhpcy5jb3B5TWV0YUFuZEF0dHJpYnV0ZXMocyx0aGlzLmVsZW1lbnQpLFV1fUJvb2xlYW5FbGVtZW50KHMpe3JldHVybiB0aGlzLmVsZW1lbnQ9dGhpcy50b1JlZnJhY3RlZEVsZW1lbnQoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIl0scyksVXV9fWNvbnN0IFZfPXZpc2l0b3JzX2pzb25fc2NoZW1hX0l0ZW1zVmlzaXRvcl9JdGVtc1Zpc2l0b3I7Y2xhc3MganNvbl9zY2hlbWFfUHJvcGVydGllc1Zpc2l0b3JfUHJvcGVydGllc1Zpc2l0b3IgZXh0ZW5kcyhNaXhpbihLZCxMZCxfZCkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgU3UuU2gsdGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgianNvbi1zY2hlbWEtcHJvcGVydGllcyIpLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIl0pfX1jb25zdCBVXz1qc29uX3NjaGVtYV9Qcm9wZXJ0aWVzVmlzaXRvcl9Qcm9wZXJ0aWVzVmlzaXRvcjtjbGFzcyBQYXR0ZXJuUHJvcGVydGllc1Zpc2l0b3JfUGF0dGVyblByb3BlcnRpZXNWaXNpdG9yIGV4dGVuZHMoTWl4aW4oS2QsTGQsX2QpKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFN1LlNoLHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goImpzb24tc2NoZW1hLXBhdHRlcm5Qcm9wZXJ0aWVzIiksdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiXSl9fWNvbnN0IHpfPVBhdHRlcm5Qcm9wZXJ0aWVzVmlzaXRvcl9QYXR0ZXJuUHJvcGVydGllc1Zpc2l0b3I7Y29uc3QgV189Y2xhc3MgRGVwZW5kZW50UmVxdWlyZWRWaXNpdG9yIGV4dGVuZHMgX2R7T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPXN1cGVyLmVudGVyKHMpO3JldHVybiB0aGlzLmVsZW1lbnQuY2xhc3Nlcy5wdXNoKCJqc29uLXNjaGVtYS1kZXBlbmRlbnRSZXF1aXJlZCIpLG99fTtjb25zdCBKXz1jbGFzcyB2aXNpdG9yc19qc29uX3NjaGVtYV9saW5rX2Rlc2NyaXB0aW9uX0xpbmtEZXNjcmlwdGlvblZpc2l0b3IgZXh0ZW5kcyBrX3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IE5ffX0sSF89cGlwZShzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsIiR2aXNpdG9yIl0sTV8pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCIkdm9jYWJ1bGFyeSJdLFJfKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiJGFuY2hvciJdLE9fLnZpc2l0b3JzLnZhbHVlKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiJHJlY3Vyc2l2ZUFuY2hvciJdLE9fLnZpc2l0b3JzLnZhbHVlKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiJHJlY3Vyc2l2ZVJlZiJdLE9fLnZpc2l0b3JzLnZhbHVlKSx1XyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlJlZmVyZW5jZSIsIiR2aXNpdG9yIl0pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCIkcmVmIl0sRF8pLHVfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJkZWZpbml0aW9ucyJdKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiJGRlZnMiXSxMXyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsImFsbE9mIl0sRl8pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJhbnlPZiJdLEJfKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwib25lT2YiXSwkXyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsIm5vdCJdLE1fKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiaWYiXSxNXyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsInRoZW4iXSxNXyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsImVsc2UiXSxNXyksdV8oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsImRlcGVuZGVuY2llcyJdKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiZGVwZW5kZW50U2NoZW1hcyJdLHFfKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiaXRlbXMiXSxWXyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsImNvbnRhaW5zIl0sTV8pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJwcm9wZXJ0aWVzIl0sVV8pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJwYXR0ZXJuUHJvcGVydGllcyJdLHpfKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiXSxNXyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsImFkZGl0aW9uYWxJdGVtcyJdLE1fKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwicHJvcGVydHlOYW1lcyJdLE1fKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwidW5ldmFsdWF0ZWRJdGVtcyJdLE1fKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwidW5ldmFsdWF0ZWRQcm9wZXJ0aWVzIl0sTV8pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJtYXhDb250YWlucyJdLE9fLnZpc2l0b3JzLnZhbHVlKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwibWluQ29udGFpbnMiXSxPXy52aXNpdG9ycy52YWx1ZSksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsImRlcGVuZGVudFJlcXVpcmVkIl0sV18pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJkZXByZWNhdGVkIl0sT18udmlzaXRvcnMudmFsdWUpLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJjb250ZW50U2NoZW1hIl0sTV8pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rRGVzY3JpcHRpb24iLCIkdmlzaXRvciJdLEpfKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiZml4ZWRGaWVsZHMiLCJ0YXJnZXRTY2hlbWEiXSxNXyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsImZpeGVkRmllbGRzIiwiaHJlZlNjaGVtYSJdLE1fKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiZml4ZWRGaWVsZHMiLCJoZWFkZXJTY2hlbWEiXSxNXyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsImZpeGVkRmllbGRzIiwic3VibWlzc2lvblNjaGVtYSJdLE1fKSkoT18pLEtfPXtKU09OU2NoZW1hMjAxOTA5RWxlbWVudDpbImNvbnRlbnQiXSxMaW5rRGVzY3JpcHRpb25FbGVtZW50OlsiY29udGVudCJdLC4uLkt1fSxHXz1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIFRffHxzKGEpJiZvKCJKU09OU2NoZW1hMjAxOTA5IixhKSYmaSgib2JqZWN0IixhKSkpLFlfPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgTl98fHMoYSkmJm8oImxpbmtEZXNjcmlwdGlvbiIsYSkmJmkoIm9iamVjdCIsYSkpKSxYXz17bmFtZXNwYWNlOnM9Pntjb25zdHtiYXNlOm99PXM7cmV0dXJuIG8ucmVnaXN0ZXIoImpTT05TY2hlbWEyMDE5MDkiLFRfKSxvLnJlZ2lzdGVyKCJsaW5rRGVzY3JpcHRpb24iLE5fKSxvfX0sUV89WF8sYXBpZG9tX25zX2pzb25fc2NoZW1hXzIwMTlfMDlfc3JjX3JlZnJhY3Rvcl90b29sYm94PSgpPT57Y29uc3Qgcz1jcmVhdGVOYW1lc3BhY2UoUV8pO3JldHVybntwcmVkaWNhdGVzOnsuLi5kZSxpc1N0cmluZ0VsZW1lbnQ6UHV9LG5hbWVzcGFjZTpzfX0sYXBpZG9tX25zX2pzb25fc2NoZW1hXzIwMTlfMDlfc3JjX3JlZnJhY3Rvcl9yZWZyYWN0PShzLHtzcGVjUGF0aDpvPVsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiJHZpc2l0b3IiXSxwbHVnaW5zOmk9W10sc3BlY2lmaWNhdGlvbk9iajphPUhffT17fSk9Pntjb25zdCB1PSgwLFN1LmUpKHMpLF89ZGVyZWZlcmVuY2UoYSksdz1uZXcodHAobyxfKSkoe3NwZWNPYmo6X30pO3JldHVybiB2aXNpdG9yX3Zpc2l0KHUsdyksZGlzcGF0Y2hQbHVnaW5zU3luYyh3LmVsZW1lbnQsaSx7dG9vbGJveENyZWF0b3I6YXBpZG9tX25zX2pzb25fc2NoZW1hXzIwMTlfMDlfc3JjX3JlZnJhY3Rvcl90b29sYm94LHZpc2l0b3JPcHRpb25zOntrZXlNYXA6S18sbm9kZVR5cGVHZXR0ZXI6dHJhdmVyc2FsX3Zpc2l0b3JfZ2V0Tm9kZVR5cGV9fSl9LGFwaWRvbV9uc19qc29uX3NjaGVtYV8yMDE5XzA5X3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yPXM9PihvLGk9e30pPT5hcGlkb21fbnNfanNvbl9zY2hlbWFfMjAxOV8wOV9zcmNfcmVmcmFjdG9yX3JlZnJhY3Qobyx7c3BlY1BhdGg6cywuLi5pfSk7VF8ucmVmcmFjdD1hcGlkb21fbnNfanNvbl9zY2hlbWFfMjAxOV8wOV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsIiR2aXNpdG9yIl0pLE5fLnJlZnJhY3Q9YXBpZG9tX25zX2pzb25fc2NoZW1hXzIwMTlfMDlfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsIiR2aXNpdG9yIl0pO2NvbnN0IFpfPWNsYXNzIGFwaWRvbV9uc19qc29uX3NjaGVtYV8yMDIwXzEyX3NyY19lbGVtZW50c19KU09OU2NoZW1hX0pTT05TY2hlbWEgZXh0ZW5kcyBUX3tjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuZWxlbWVudD0iSlNPTlNjaGVtYTIwMjAxMiJ9Z2V0ICRkeW5hbWljQW5jaG9yKCl7cmV0dXJuIHRoaXMuZ2V0KCIkZHluYW1pY0FuY2hvciIpfXNldCAkZHluYW1pY0FuY2hvcihzKXt0aGlzLnNldCgiJGR5bmFtaWNBbmNob3IiLHMpfWdldCAkcmVjdXJzaXZlQW5jaG9yKCl7dGhyb3cgbmV3IERoKCIkcmVjdXJzaXZlQW5jaG9yIGtleXdvcmQgZnJvbSBDb3JlIHZvY2FidWxhcnkgaGFzIGJlZW4gcmVuYW1lZCB0byAkZHluYW1pY0FuY2hvci4iKX1zZXQgJHJlY3Vyc2l2ZUFuY2hvcihzKXt0aHJvdyBuZXcgRGgoIiRyZWN1cnNpdmVBbmNob3Iga2V5d29yZCBmcm9tIENvcmUgdm9jYWJ1bGFyeSBoYXMgYmVlbiByZW5hbWVkIHRvICRkeW5hbWljQW5jaG9yLiIpfWdldCAkZHluYW1pY1JlZigpe3JldHVybiB0aGlzLmdldCgiJGR5bmFtaWNSZWYiKX1zZXQgJGR5bmFtaWNSZWYocyl7dGhpcy5zZXQoIiRkeW5hbWljUmVmIixzKX1nZXQgJHJlY3Vyc2l2ZVJlZigpe3Rocm93IG5ldyBEaCgiJHJlY3Vyc2l2ZVJlZiBrZXl3b3JkIGZyb20gQ29yZSB2b2NhYnVsYXJ5IGhhcyBiZWVuIHJlbmFtZWQgdG8gJGR5bmFtaWNSZWYuIil9c2V0ICRyZWN1cnNpdmVSZWYocyl7dGhyb3cgbmV3IERoKCIkcmVjdXJzaXZlUmVmIGtleXdvcmQgZnJvbSBDb3JlIHZvY2FidWxhcnkgaGFzIGJlZW4gcmVuYW1lZCB0byAkZHluYW1pY1JlZi4iKX1nZXQgcHJlZml4SXRlbXMoKXtyZXR1cm4gdGhpcy5nZXQoInByZWZpeEl0ZW1zIil9c2V0IHByZWZpeEl0ZW1zKHMpe3RoaXMuc2V0KCJwcmVmaXhJdGVtcyIscyl9fTtjb25zdCBlUz1jbGFzcyBhcGlkb21fbnNfanNvbl9zY2hlbWFfMjAyMF8xMl9zcmNfZWxlbWVudHNfTGlua0Rlc2NyaXB0aW9uX0xpbmtEZXNjcmlwdGlvbiBleHRlbmRzIE5fe2dldCB0YXJnZXRTY2hlbWEoKXtyZXR1cm4gdGhpcy5nZXQoInRhcmdldFNjaGVtYSIpfXNldCB0YXJnZXRTY2hlbWEocyl7dGhpcy5zZXQoInRhcmdldFNjaGVtYSIscyl9Z2V0IGhyZWZTY2hlbWEoKXtyZXR1cm4gdGhpcy5nZXQoImhyZWZTY2hlbWEiKX1zZXQgaHJlZlNjaGVtYShzKXt0aGlzLnNldCgiaHJlZlNjaGVtYSIscyl9Z2V0IGhlYWRlclNjaGVtYSgpe3JldHVybiB0aGlzLmdldCgiaGVhZGVyU2NoZW1hIil9c2V0IGhlYWRlclNjaGVtYShzKXt0aGlzLnNldCgiaGVhZGVyU2NoZW1hIixzKX1nZXQgc3VibWlzc2lvblNjaGVtYSgpe3JldHVybiB0aGlzLmdldCgic3VibWlzc2lvblNjaGVtYSIpfXNldCBzdWJtaXNzaW9uU2NoZW1hKHMpe3RoaXMuc2V0KCJzdWJtaXNzaW9uU2NoZW1hIixzKX19O2NvbnN0IHRTPWNsYXNzIHNyY19yZWZyYWN0b3JfdmlzaXRvcnNfanNvbl9zY2hlbWFfSlNPTlNjaGVtYVZpc2l0b3IgZXh0ZW5kcyBNX3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFpffWdldCBkZWZhdWx0RGlhbGVjdElkZW50aWZpZXIoKXtyZXR1cm4iaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWEifX07Y2xhc3MgUHJlZml4SXRlbXNWaXNpdG9yIGV4dGVuZHMoTWl4aW4oUmQsTGQsX2QpKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFN1LndFLHRoaXMuZWxlbWVudC5jbGFzc2VzLnB1c2goImpzb24tc2NoZW1hLXByZWZpeEl0ZW1zIil9QXJyYXlFbGVtZW50KHMpe3JldHVybiBzLmZvckVhY2goKHM9Pntjb25zdCBvPXRoaXMudG9SZWZyYWN0ZWRFbGVtZW50KFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSJdLHMpO3RoaXMuZWxlbWVudC5wdXNoKG8pfSkpLHRoaXMuY29weU1ldGFBbmRBdHRyaWJ1dGVzKHMsdGhpcy5lbGVtZW50KSxVdX19Y29uc3QgclM9UHJlZml4SXRlbXNWaXNpdG9yO2NvbnN0IG5TPWNsYXNzIHJlZnJhY3Rvcl92aXNpdG9yc19qc29uX3NjaGVtYV9saW5rX2Rlc2NyaXB0aW9uX0xpbmtEZXNjcmlwdGlvblZpc2l0b3IgZXh0ZW5kcyBKX3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IGVTfX0sc1M9cGlwZShzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsIiR2aXNpdG9yIl0sdFMpLHVfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCIkcmVjdXJzaXZlQW5jaG9yIl0pLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCIkZHluYW1pY0FuY2hvciJdLEhfLnZpc2l0b3JzLnZhbHVlKSx1XyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiJHJlY3Vyc2l2ZVJlZiJdKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiJGR5bmFtaWNSZWYiXSxIXy52aXNpdG9ycy52YWx1ZSksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsIm5vdCJdLHRTKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiaWYiXSx0Uyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsInRoZW4iXSx0Uyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsImVsc2UiXSx0Uyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsInByZWZpeEl0ZW1zIl0sclMpLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJpdGVtcyJdLHRTKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiY29udGFpbnMiXSx0Uyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIl0sdFMpLHVfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJKU09OU2NoZW1hIiwiZml4ZWRGaWVsZHMiLCJhZGRpdGlvbmFsSXRlbXMiXSksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsInByb3BlcnR5TmFtZXMiXSx0Uyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsInVuZXZhbHVhdGVkSXRlbXMiXSx0Uyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCJmaXhlZEZpZWxkcyIsInVuZXZhbHVhdGVkUHJvcGVydGllcyJdLHRTKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsImZpeGVkRmllbGRzIiwiY29udGVudFNjaGVtYSJdLHRTKSxzXyhbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTGlua0Rlc2NyaXB0aW9uIiwiJHZpc2l0b3IiXSxuUyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsImZpeGVkRmllbGRzIiwidGFyZ2V0U2NoZW1hIl0sdFMpLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rRGVzY3JpcHRpb24iLCJmaXhlZEZpZWxkcyIsImhyZWZTY2hlbWEiXSx0Uyksc18oWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmtEZXNjcmlwdGlvbiIsImZpeGVkRmllbGRzIiwiaGVhZGVyU2NoZW1hIl0sdFMpLHNfKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rRGVzY3JpcHRpb24iLCJmaXhlZEZpZWxkcyIsInN1Ym1pc3Npb25TY2hlbWEiXSx0UykpKEhfKSxvUz17SlNPTlNjaGVtYTIwMjAxMkVsZW1lbnQ6WyJjb250ZW50Il0sTGlua0Rlc2NyaXB0aW9uRWxlbWVudDpbImNvbnRlbnQiXSwuLi5LdX0saVM9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBaX3x8cyhhKSYmbygiSlNPTlNjaGVtYTIwMjAxMiIsYSkmJmkoIm9iamVjdCIsYSkpKSxhUz1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIGVTfHxzKGEpJiZvKCJsaW5rRGVzY3JpcHRpb24iLGEpJiZpKCJvYmplY3QiLGEpKSksY1M9e25hbWVzcGFjZTpzPT57Y29uc3R7YmFzZTpvfT1zO3JldHVybiBvLnJlZ2lzdGVyKCJqU09OU2NoZW1hMjAyMDEyIixaXyksby5yZWdpc3RlcigibGlua0Rlc2NyaXB0aW9uIixlUyksb319LGxTPWNTLGFwaWRvbV9uc19qc29uX3NjaGVtYV8yMDIwXzEyX3NyY19yZWZyYWN0b3JfdG9vbGJveD0oKT0+e2NvbnN0IHM9Y3JlYXRlTmFtZXNwYWNlKGxTKTtyZXR1cm57cHJlZGljYXRlczp7Li4uZmUsaXNTdHJpbmdFbGVtZW50OlB1fSxuYW1lc3BhY2U6c319LGFwaWRvbV9uc19qc29uX3NjaGVtYV8yMDIwXzEyX3NyY19yZWZyYWN0b3JfcmVmcmFjdD0ocyx7c3BlY1BhdGg6bz1bInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiSlNPTlNjaGVtYSIsIiR2aXNpdG9yIl0scGx1Z2luczppPVtdLHNwZWNpZmljYXRpb25PYmo6YT1zU309e30pPT57Y29uc3QgdT0oMCxTdS5lKShzKSxfPWRlcmVmZXJlbmNlKGEpLHc9bmV3KHRwKG8sXykpKHtzcGVjT2JqOl99KTtyZXR1cm4gdmlzaXRvcl92aXNpdCh1LHcpLGRpc3BhdGNoUGx1Z2luc1N5bmMody5lbGVtZW50LGkse3Rvb2xib3hDcmVhdG9yOmFwaWRvbV9uc19qc29uX3NjaGVtYV8yMDIwXzEyX3NyY19yZWZyYWN0b3JfdG9vbGJveCx2aXNpdG9yT3B0aW9uczp7a2V5TWFwOm9TLG5vZGVUeXBlR2V0dGVyOnRyYXZlcnNhbF92aXNpdG9yX2dldE5vZGVUeXBlfX0pfSxhcGlkb21fbnNfanNvbl9zY2hlbWFfMjAyMF8xMl9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3Rvcj1zPT4obyxpPXt9KT0+YXBpZG9tX25zX2pzb25fc2NoZW1hXzIwMjBfMTJfc3JjX3JlZnJhY3Rvcl9yZWZyYWN0KG8se3NwZWNQYXRoOnMsLi4uaX0pO1pfLnJlZnJhY3Q9YXBpZG9tX25zX2pzb25fc2NoZW1hXzIwMjBfMTJfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkpTT05TY2hlbWEiLCIkdmlzaXRvciJdKSxlUy5yZWZyYWN0PWFwaWRvbV9uc19qc29uX3NjaGVtYV8yMDIwXzEyX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaW5rRGVzY3JpcHRpb24iLCIkdmlzaXRvciJdKTtjb25zdCB1Uz1jbGFzcyBlbGVtZW50c19TY2hlbWFfU2NoZW1hIGV4dGVuZHMgWl97Y29uc3RydWN0b3IocyxvLGkpe3N1cGVyKHMsbyxpKSx0aGlzLmVsZW1lbnQ9InNjaGVtYSJ9Z2V0IGRpc2NyaW1pbmF0b3IoKXtyZXR1cm4gdGhpcy5nZXQoImRpc2NyaW1pbmF0b3IiKX1zZXQgZGlzY3JpbWluYXRvcihzKXt0aGlzLnNldCgiZGlzY3JpbWluYXRvciIscyl9Z2V0IHhtbCgpe3JldHVybiB0aGlzLmdldCgieG1sIil9c2V0IHhtbChzKXt0aGlzLnNldCgieG1sIixzKX1nZXQgZXh0ZXJuYWxEb2NzKCl7cmV0dXJuIHRoaXMuZ2V0KCJleHRlcm5hbERvY3MiKX1zZXQgZXh0ZXJuYWxEb2NzKHMpe3RoaXMuc2V0KCJleHRlcm5hbERvY3MiLHMpfWdldCBleGFtcGxlKCl7cmV0dXJuIHRoaXMuZ2V0KCJleGFtcGxlIil9c2V0IGV4YW1wbGUocyl7dGhpcy5zZXQoImV4YW1wbGUiLHMpfX07Y29uc3QgcFM9Y2xhc3MgU2VjdXJpdHlSZXF1aXJlbWVudF9TZWN1cml0eVJlcXVpcmVtZW50IGV4dGVuZHMgSmZ7fTtjb25zdCBoUz1jbGFzcyBTZWN1cml0eVNjaGVtZV9TZWN1cml0eVNjaGVtZSBleHRlbmRzIEhme307Y29uc3QgZFM9Y2xhc3MgU2VydmVyX1NlcnZlciBleHRlbmRzIEdme307Y29uc3QgZlM9Y2xhc3MgU2VydmVyVmFyaWFibGVfU2VydmVyVmFyaWFibGUgZXh0ZW5kcyBYZnt9O2NvbnN0IG1TPWNsYXNzIFRhZ19UYWcgZXh0ZW5kcyBRZnt9O2NvbnN0IGdTPWNsYXNzIFhtbF9YbWwgZXh0ZW5kcyBlbXt9O2NsYXNzIE9wZW5BcGkzXzFWaXNpdG9yIGV4dGVuZHMoTWl4aW4odW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFBiLHRoaXMuc3BlY1BhdGg9ZmMoWyJkb2N1bWVudCIsIm9iamVjdHMiLCJPcGVuQXBpIl0pLHRoaXMuY2FuU3VwcG9ydFNwZWNpZmljYXRpb25FeHRlbnNpb25zPSEwLHRoaXMub3BlbkFwaVNlbWFudGljRWxlbWVudD10aGlzLmVsZW1lbnR9T2JqZWN0RWxlbWVudChzKXtyZXR1cm4gdGhpcy5vcGVuQXBpR2VuZXJpY0VsZW1lbnQ9cyx1bS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyl9fWNvbnN0IHlTPU9wZW5BcGkzXzFWaXNpdG9yLHZTPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuSW5mby4kdmlzaXRvcjtjb25zdCBiUz1jbGFzcyBpbmZvX0luZm9WaXNpdG9yIGV4dGVuZHMgdlN7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBwYn19LF9TPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuQ29udGFjdC4kdmlzaXRvcjtjb25zdCBTUz1jbGFzcyBjb250YWN0X0NvbnRhY3RWaXNpdG9yIGV4dGVuZHMgX1N7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBYdn19LEVTPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuTGljZW5zZS4kdmlzaXRvcjtjb25zdCB3Uz1jbGFzcyBsaWNlbnNlX0xpY2Vuc2VWaXNpdG9yIGV4dGVuZHMgRVN7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyB5Yn19LHhTPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuTGluay4kdmlzaXRvcjtjb25zdCBrUz1jbGFzcyBsaW5rX0xpbmtWaXNpdG9yIGV4dGVuZHMgeFN7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBfYn19O2NsYXNzIEpzb25TY2hlbWFEaWFsZWN0VmlzaXRvciBleHRlbmRzKE1peGluKG5tLHJtKSl7U3RyaW5nRWxlbWVudChzKXtjb25zdCBvPW5ldyBtYihzZXJpYWxpemVyc192YWx1ZShzKSk7cmV0dXJuIHRoaXMuY29weU1ldGFBbmRBdHRyaWJ1dGVzKHMsbyksdGhpcy5lbGVtZW50PW8sVXV9fWNvbnN0IE9TPUpzb25TY2hlbWFEaWFsZWN0VmlzaXRvcixDUz1Xdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlNlcnZlci4kdmlzaXRvcjtjb25zdCBBUz1jbGFzcyBzZXJ2ZXJfU2VydmVyVmlzaXRvciBleHRlbmRzIENTe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgZFN9fSxqUz1Xdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlNlcnZlclZhcmlhYmxlLiR2aXNpdG9yO2NvbnN0IFBTPWNsYXNzIHNlcnZlcl92YXJpYWJsZV9TZXJ2ZXJWYXJpYWJsZVZpc2l0b3IgZXh0ZW5kcyBqU3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IGZTfX0sSVM9V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5NZWRpYVR5cGUuJHZpc2l0b3I7Y29uc3QgVFM9Y2xhc3MgbWVkaWFfdHlwZV9NZWRpYVR5cGVWaXNpdG9yIGV4dGVuZHMgSVN7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBTYn19LE5TPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuU2VjdXJpdHlSZXF1aXJlbWVudC4kdmlzaXRvcjtjb25zdCBNUz1jbGFzcyBzZWN1cml0eV9yZXF1aXJlbWVudF9TZWN1cml0eVJlcXVpcmVtZW50VmlzaXRvciBleHRlbmRzIE5Te2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgcFN9fSxSUz1Xdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkNvbXBvbmVudHMuJHZpc2l0b3I7Y29uc3QgRFM9Y2xhc3MgY29tcG9uZW50c19Db21wb25lbnRzVmlzaXRvciBleHRlbmRzIFJTe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgWXZ9fSxMUz1Xdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlRhZy4kdmlzaXRvcjtjb25zdCBGUz1jbGFzcyB0YWdfVGFnVmlzaXRvciBleHRlbmRzIExTe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgbVN9fSxCUz1Xdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlJlZmVyZW5jZS4kdmlzaXRvcjtjb25zdCAkUz1jbGFzcyByZWZlcmVuY2VfUmVmZXJlbmNlVmlzaXRvciBleHRlbmRzIEJTe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgcWJ9fSxxUz1Xdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlBhcmFtZXRlci4kdmlzaXRvcjtjb25zdCBWUz1jbGFzcyBwYXJhbWV0ZXJfUGFyYW1ldGVyVmlzaXRvciBleHRlbmRzIHFTe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgTWJ9fSxVUz1Xdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkhlYWRlci4kdmlzaXRvcjtjb25zdCB6Uz1jbGFzcyBoZWFkZXJfSGVhZGVyVmlzaXRvciBleHRlbmRzIFVTe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgbmJ9fSxXUz1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIEd2fHxzKGEpJiZvKCJjYWxsYmFjayIsYSkmJmkoIm9iamVjdCIsYSkpKSxKUz1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIFl2fHxzKGEpJiZvKCJjb21wb25lbnRzIixhKSYmaSgib2JqZWN0IixhKSkpLEhTPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgWHZ8fHMoYSkmJm8oImNvbnRhY3QiLGEpJiZpKCJvYmplY3QiLGEpKSksS1M9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBlYnx8cyhhKSYmbygiZXhhbXBsZSIsYSkmJmkoIm9iamVjdCIsYSkpKSxHUz1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIHRifHxzKGEpJiZvKCJleHRlcm5hbERvY3VtZW50YXRpb24iLGEpJiZpKCJvYmplY3QiLGEpKSksWVM9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBuYnx8cyhhKSYmbygiaGVhZGVyIixhKSYmaSgib2JqZWN0IixhKSkpLFhTPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgcGJ8fHMoYSkmJm8oImluZm8iLGEpJiZpKCJvYmplY3QiLGEpKSksUVM9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBtYnx8cyhhKSYmbygianNvblNjaGVtYURpYWxlY3QiLGEpJiZpKCJzdHJpbmciLGEpKSksWlM9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiB5Ynx8cyhhKSYmbygibGljZW5zZSIsYSkmJmkoIm9iamVjdCIsYSkpKSxlRT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIF9ifHxzKGEpJiZvKCJsaW5rIixhKSYmaSgib2JqZWN0IixhKSkpLHRFPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgQWJ8fHMoYSkmJm8oIm9wZW5hcGkiLGEpJiZpKCJzdHJpbmciLGEpKSksckU9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppLGhhc0NsYXNzOmF9KT0+dT0+dSBpbnN0YW5jZW9mIFBifHxzKHUpJiZvKCJvcGVuQXBpM18xIix1KSYmaSgib2JqZWN0Iix1KSYmYSgiYXBpIix1KSkpLG5FPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgSWJ8fHMoYSkmJm8oIm9wZXJhdGlvbiIsYSkmJmkoIm9iamVjdCIsYSkpKSxzRT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIE1ifHxzKGEpJiZvKCJwYXJhbWV0ZXIiLGEpJiZpKCJvYmplY3QiLGEpKSksb0U9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBSYnx8cyhhKSYmbygicGF0aEl0ZW0iLGEpJiZpKCJvYmplY3QiLGEpKSksaXNQYXRoSXRlbUVsZW1lbnRFeHRlcm5hbD1zPT57aWYoIW9FKHMpKXJldHVybiExO2lmKCFQdShzLiRyZWYpKXJldHVybiExO2NvbnN0IG89c2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIG8mJm8ubGVuZ3RoPjAmJiFvLnN0YXJ0c1dpdGgoIiMiKX0saUU9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBMYnx8cyhhKSYmbygicGF0aHMiLGEpJiZpKCJvYmplY3QiLGEpKSksYUU9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBxYnx8cyhhKSYmbygicmVmZXJlbmNlIixhKSYmaSgib2JqZWN0IixhKSkpLGlzUmVmZXJlbmNlRWxlbWVudEV4dGVybmFsPXM9PntpZighYUUocykpcmV0dXJuITE7aWYoIVB1KHMuJHJlZikpcmV0dXJuITE7Y29uc3Qgbz1zZXJpYWxpemVyc192YWx1ZShzLiRyZWYpO3JldHVybiJzdHJpbmciPT10eXBlb2YgbyYmby5sZW5ndGg+MCYmIW8uc3RhcnRzV2l0aCgiIyIpfSxjRT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIHpifHxzKGEpJiZvKCJyZXF1ZXN0Qm9keSIsYSkmJmkoIm9iamVjdCIsYSkpKSxsRT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIFFifHxzKGEpJiZvKCJyZXNwb25zZSIsYSkmJmkoIm9iamVjdCIsYSkpKSx1RT1oZWxwZXJzKCgoe2hhc0Jhc2ljRWxlbWVudFByb3BzOnMsaXNFbGVtZW50VHlwZTpvLHByaW1pdGl2ZUVxOml9KT0+YT0+YSBpbnN0YW5jZW9mIGVffHxzKGEpJiZvKCJyZXNwb25zZXMiLGEpJiZpKCJvYmplY3QiLGEpKSkscEU9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiB1U3x8cyhhKSYmbygic2NoZW1hIixhKSYmaSgib2JqZWN0IixhKSkpLHByZWRpY2F0ZXNfaXNCb29sZWFuSnNvblNjaGVtYUVsZW1lbnQ9cz0+TnUocykmJnMuY2xhc3Nlcy5pbmNsdWRlcygiYm9vbGVhbi1qc29uLXNjaGVtYSIpLGhFPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgcFN8fHMoYSkmJm8oInNlY3VyaXR5UmVxdWlyZW1lbnQiLGEpJiZpKCJvYmplY3QiLGEpKSksZEU9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBoU3x8cyhhKSYmbygic2VjdXJpdHlTY2hlbWUiLGEpJiZpKCJvYmplY3QiLGEpKSksZkU9aGVscGVycygoKHtoYXNCYXNpY0VsZW1lbnRQcm9wczpzLGlzRWxlbWVudFR5cGU6byxwcmltaXRpdmVFcTppfSk9PmE9PmEgaW5zdGFuY2VvZiBkU3x8cyhhKSYmbygic2VydmVyIixhKSYmaSgib2JqZWN0IixhKSkpLG1FPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgZlN8fHMoYSkmJm8oInNlcnZlclZhcmlhYmxlIixhKSYmaSgib2JqZWN0IixhKSkpLGdFPWhlbHBlcnMoKCh7aGFzQmFzaWNFbGVtZW50UHJvcHM6cyxpc0VsZW1lbnRUeXBlOm8scHJpbWl0aXZlRXE6aX0pPT5hPT5hIGluc3RhbmNlb2YgU2J8fHMoYSkmJm8oIm1lZGlhVHlwZSIsYSkmJmkoIm9iamVjdCIsYSkpKTtjbGFzcyBvcGVuX2FwaV8zXzFfc2NoZW1hX1NjaGVtYVZpc2l0b3IgZXh0ZW5kcyhNaXhpbih1bSxMZCxybSkpe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgdVMsdGhpcy5zcGVjUGF0aD1mYyhbImRvY3VtZW50Iiwib2JqZWN0cyIsIlNjaGVtYSJdKSx0aGlzLmNhblN1cHBvcnRTcGVjaWZpY2F0aW9uRXh0ZW5zaW9ucz0hMCx0aGlzLmpzb25TY2hlbWFEZWZhdWx0RGlhbGVjdD1tYi5kZWZhdWx0LHRoaXMucGFzc2luZ09wdGlvbnNOYW1lcy5wdXNoKCJwYXJlbnQiKX1PYmplY3RFbGVtZW50KHMpe3RoaXMuaGFuZGxlRGlhbGVjdElkZW50aWZpZXIocyksdGhpcy5oYW5kbGVTY2hlbWFJZGVudGlmaWVyKHMpLHRoaXMucGFyZW50PXRoaXMuZWxlbWVudDtjb25zdCBvPXVtLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gUHUodGhpcy5lbGVtZW50LiRyZWYpJiYodGhpcy5lbGVtZW50LmNsYXNzZXMucHVzaCgicmVmZXJlbmNlLWVsZW1lbnQiKSx0aGlzLmVsZW1lbnQuc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJzY2hlbWEiKSksb31Cb29sZWFuRWxlbWVudChzKXtyZXR1cm4gdFMucHJvdG90eXBlLkJvb2xlYW5FbGVtZW50LmNhbGwodGhpcyxzKX1nZXQgZGVmYXVsdERpYWxlY3RJZGVudGlmaWVyKCl7bGV0IHM7cmV0dXJuIHM9dm9pZCAwIT09dGhpcy5vcGVuQXBpU2VtYW50aWNFbGVtZW50JiZRUyh0aGlzLm9wZW5BcGlTZW1hbnRpY0VsZW1lbnQuanNvblNjaGVtYURpYWxlY3QpP3NlcmlhbGl6ZXJzX3ZhbHVlKHRoaXMub3BlbkFwaVNlbWFudGljRWxlbWVudC5qc29uU2NoZW1hRGlhbGVjdCk6dm9pZCAwIT09dGhpcy5vcGVuQXBpR2VuZXJpY0VsZW1lbnQmJlB1KHRoaXMub3BlbkFwaUdlbmVyaWNFbGVtZW50LmdldCgianNvblNjaGVtYURpYWxlY3QiKSk/c2VyaWFsaXplcnNfdmFsdWUodGhpcy5vcGVuQXBpR2VuZXJpY0VsZW1lbnQuZ2V0KCJqc29uU2NoZW1hRGlhbGVjdCIpKTpzZXJpYWxpemVyc192YWx1ZSh0aGlzLmpzb25TY2hlbWFEZWZhdWx0RGlhbGVjdCksc31oYW5kbGVEaWFsZWN0SWRlbnRpZmllcihzKXtyZXR1cm4gdFMucHJvdG90eXBlLmhhbmRsZURpYWxlY3RJZGVudGlmaWVyLmNhbGwodGhpcyxzKX1oYW5kbGVTY2hlbWFJZGVudGlmaWVyKHMpe3JldHVybiB0Uy5wcm90b3R5cGUuaGFuZGxlU2NoZW1hSWRlbnRpZmllci5jYWxsKHRoaXMscyl9fWNvbnN0IHlFPW9wZW5fYXBpXzNfMV9zY2hlbWFfU2NoZW1hVmlzaXRvcjtjb25zdCB2RT1jbGFzcyAkZGVmc1Zpc2l0b3JfJGRlZnNWaXNpdG9yIGV4dGVuZHMgTF97Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5wYXNzaW5nT3B0aW9uc05hbWVzLnB1c2goInBhcmVudCIpfX07Y29uc3QgYkU9Y2xhc3Mgc2NoZW1hX0FsbE9mVmlzaXRvcl9BbGxPZlZpc2l0b3IgZXh0ZW5kcyBGX3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLnBhc3NpbmdPcHRpb25zTmFtZXMucHVzaCgicGFyZW50Iil9fTtjb25zdCBfRT1jbGFzcyBzY2hlbWFfQW55T2ZWaXNpdG9yX0FueU9mVmlzaXRvciBleHRlbmRzIEJfe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMucGFzc2luZ09wdGlvbnNOYW1lcy5wdXNoKCJwYXJlbnQiKX19O2NvbnN0IFNFPWNsYXNzIHNjaGVtYV9PbmVPZlZpc2l0b3JfT25lT2ZWaXNpdG9yIGV4dGVuZHMgJF97Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5wYXNzaW5nT3B0aW9uc05hbWVzLnB1c2goInBhcmVudCIpfX07Y29uc3QgRUU9Y2xhc3MgRGVwZW5kZW50U2NoZW1hc1Zpc2l0b3JfRGVwZW5kZW50U2NoZW1hc1Zpc2l0b3IgZXh0ZW5kcyBxX3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLnBhc3NpbmdPcHRpb25zTmFtZXMucHVzaCgicGFyZW50Iil9fTtjb25zdCB3RT1jbGFzcyBQcmVmaXhJdGVtc1Zpc2l0b3JfUHJlZml4SXRlbXNWaXNpdG9yIGV4dGVuZHMgclN7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5wYXNzaW5nT3B0aW9uc05hbWVzLnB1c2goInBhcmVudCIpfX07Y29uc3QgeEU9Y2xhc3Mgc2NoZW1hX1Byb3BlcnRpZXNWaXNpdG9yX1Byb3BlcnRpZXNWaXNpdG9yIGV4dGVuZHMgVV97Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5wYXNzaW5nT3B0aW9uc05hbWVzLnB1c2goInBhcmVudCIpfX07Y29uc3Qga0U9Y2xhc3Mgc2NoZW1hX1BhdHRlcm5Qcm9wZXJ0aWVzVmlzaXRvcl9QYXR0ZXJuUHJvcGVydGllc1Zpc2l0b3IgZXh0ZW5kcyB6X3tjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLnBhc3NpbmdPcHRpb25zTmFtZXMucHVzaCgicGFyZW50Iil9fSxPRT1Xdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkRpc2NyaW1pbmF0b3IuJHZpc2l0b3I7Y29uc3QgQ0U9Y2xhc3MgZGlzdHJpbWluYXRvcl9EaXNjcmltaW5hdG9yVmlzaXRvciBleHRlbmRzIE9Fe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgUXYsdGhpcy5jYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnM9ITB9fSxBRT1Xdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlhNTC4kdmlzaXRvcjtjb25zdCBqRT1jbGFzcyB4bWxfWG1sVmlzaXRvciBleHRlbmRzIEFFe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgZ1N9fTtjbGFzcyBTY2hlbWFzVmlzaXRvcl9TY2hlbWFzVmlzaXRvciBleHRlbmRzKE1peGluKEVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBBeSx0aGlzLnNwZWNQYXRoPWZjKFsiZG9jdW1lbnQiLCJvYmplY3RzIiwiU2NoZW1hIl0pfX1jb25zdCBQRT1TY2hlbWFzVmlzaXRvcl9TY2hlbWFzVmlzaXRvcjtjbGFzcyBDb21wb25lbnRzUGF0aEl0ZW1zIGV4dGVuZHMgU3UuU2h7c3RhdGljIHByaW1hcnlDbGFzcz0iY29tcG9uZW50cy1wYXRoLWl0ZW1zIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKENvbXBvbmVudHNQYXRoSXRlbXMucHJpbWFyeUNsYXNzKX19Y29uc3QgSUU9Q29tcG9uZW50c1BhdGhJdGVtcztjbGFzcyBQYXRoSXRlbXNWaXNpdG9yIGV4dGVuZHMoTWl4aW4oRW0scm0pKXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IElFLHRoaXMuc3BlY1BhdGg9cz0+aXNSZWZlcmVuY2VMaWtlRWxlbWVudChzKT9bImRvY3VtZW50Iiwib2JqZWN0cyIsIlJlZmVyZW5jZSJdOlsiZG9jdW1lbnQiLCJvYmplY3RzIiwiUGF0aEl0ZW0iXX1PYmplY3RFbGVtZW50KHMpe2NvbnN0IG89RW0ucHJvdG90eXBlLk9iamVjdEVsZW1lbnQuY2FsbCh0aGlzLHMpO3JldHVybiB0aGlzLmVsZW1lbnQuZmlsdGVyKGFFKS5mb3JFYWNoKChzPT57cy5zZXRNZXRhUHJvcGVydHkoInJlZmVyZW5jZWQtZWxlbWVudCIsInBhdGhJdGVtIil9KSksb319Y29uc3QgVEU9UGF0aEl0ZW1zVmlzaXRvcixORT1Xdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkV4YW1wbGUuJHZpc2l0b3I7Y29uc3QgTUU9Y2xhc3MgZXhhbXBsZV9FeGFtcGxlVmlzaXRvciBleHRlbmRzIE5Fe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgZWJ9fSxSRT1Xdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkV4dGVybmFsRG9jdW1lbnRhdGlvbi4kdmlzaXRvcjtjb25zdCBERT1jbGFzcyBleHRlcm5hbF9kb2N1bWVudGF0aW9uX0V4dGVybmFsRG9jdW1lbnRhdGlvblZpc2l0b3IgZXh0ZW5kcyBSRXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IHRifX0sTEU9V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5FbmNvZGluZy4kdmlzaXRvcjtjb25zdCBGRT1jbGFzcyBvcGVuX2FwaV8zXzFfZW5jb2RpbmdfRW5jb2RpbmdWaXNpdG9yIGV4dGVuZHMgTEV7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBadn19LEJFPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUGF0aHMuJHZpc2l0b3I7Y29uc3QgJEU9Y2xhc3MgcGF0aHNfUGF0aHNWaXNpdG9yIGV4dGVuZHMgQkV7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBMYn19LHFFPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUmVxdWVzdEJvZHkuJHZpc2l0b3I7Y29uc3QgVkU9Y2xhc3MgcmVxdWVzdF9ib2R5X1JlcXVlc3RCb2R5VmlzaXRvciBleHRlbmRzIHFFe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgemJ9fSxVRT1Xdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkNhbGxiYWNrLiR2aXNpdG9yO2NvbnN0IHpFPWNsYXNzIGNhbGxiYWNrX0NhbGxiYWNrVmlzaXRvciBleHRlbmRzIFVFe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgR3YsdGhpcy5zcGVjUGF0aD1zPT5pc1JlZmVyZW5jZUxpa2VFbGVtZW50KHMpP1siZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVmZXJlbmNlIl06WyJkb2N1bWVudCIsIm9iamVjdHMiLCJQYXRoSXRlbSJdfU9iamVjdEVsZW1lbnQocyl7Y29uc3Qgbz1VRS5wcm90b3R5cGUuT2JqZWN0RWxlbWVudC5jYWxsKHRoaXMscyk7cmV0dXJuIHRoaXMuZWxlbWVudC5maWx0ZXIoYUUpLmZvckVhY2goKHM9PntzLnNldE1ldGFQcm9wZXJ0eSgicmVmZXJlbmNlZC1lbGVtZW50IiwicGF0aEl0ZW0iKX0pKSxvfX0sV0U9V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5SZXNwb25zZS4kdmlzaXRvcjtjb25zdCBKRT1jbGFzcyByZXNwb25zZV9SZXNwb25zZVZpc2l0b3IgZXh0ZW5kcyBXRXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IFFifX0sSEU9V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5SZXNwb25zZXMuJHZpc2l0b3I7Y29uc3QgS0U9Y2xhc3Mgb3Blbl9hcGlfM18xX3Jlc3BvbnNlc19SZXNwb25zZXNWaXNpdG9yIGV4dGVuZHMgSEV7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBlX319LEdFPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuT3BlcmF0aW9uLiR2aXNpdG9yO2NvbnN0IFlFPWNsYXNzIG9wZXJhdGlvbl9PcGVyYXRpb25WaXNpdG9yIGV4dGVuZHMgR0V7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBJYn19LFhFPVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUGF0aEl0ZW0uJHZpc2l0b3I7Y29uc3QgUUU9Y2xhc3MgcGF0aF9pdGVtX1BhdGhJdGVtVmlzaXRvciBleHRlbmRzIFhFe2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgUmJ9fSxaRT1Xdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlNlY3VyaXR5U2NoZW1lLiR2aXNpdG9yO2NvbnN0IGV3PWNsYXNzIHNlY3VyaXR5X3NjaGVtZV9TZWN1cml0eVNjaGVtZVZpc2l0b3IgZXh0ZW5kcyBaRXtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLmVsZW1lbnQ9bmV3IGhTfX0sdHc9V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5PQXV0aEZsb3dzLiR2aXNpdG9yO2NvbnN0IHJ3PWNsYXNzIG9hdXRoX2Zsb3dzX09BdXRoRmxvd3NWaXNpdG9yIGV4dGVuZHMgdHd7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBPYn19LG53PVd2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuT0F1dGhGbG93LiR2aXNpdG9yO2NvbnN0IHN3PWNsYXNzIG9hdXRoX2Zsb3dfT0F1dGhGbG93VmlzaXRvciBleHRlbmRzIG53e2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpLHRoaXMuZWxlbWVudD1uZXcgd2J9fTtjbGFzcyBXZWJob29rcyBleHRlbmRzIFN1LlNoe3N0YXRpYyBwcmltYXJ5Q2xhc3M9IndlYmhvb2tzIjtjb25zdHJ1Y3RvcihzLG8saSl7c3VwZXIocyxvLGkpLHRoaXMuY2xhc3Nlcy5wdXNoKFdlYmhvb2tzLnByaW1hcnlDbGFzcyl9fWNvbnN0IG93PVdlYmhvb2tzO2NsYXNzIFdlYmhvb2tzVmlzaXRvciBleHRlbmRzKE1peGluKEVtLHJtKSl7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5lbGVtZW50PW5ldyBvdyx0aGlzLnNwZWNQYXRoPXM9PmlzUmVmZXJlbmNlTGlrZUVsZW1lbnQocyk/WyJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiXTpbImRvY3VtZW50Iiwib2JqZWN0cyIsIlBhdGhJdGVtIl19T2JqZWN0RWxlbWVudChzKXtjb25zdCBvPUVtLnByb3RvdHlwZS5PYmplY3RFbGVtZW50LmNhbGwodGhpcyxzKTtyZXR1cm4gdGhpcy5lbGVtZW50LmZpbHRlcihhRSkuZm9yRWFjaCgocz0+e3Muc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLCJwYXRoSXRlbSIpfSkpLHRoaXMuZWxlbWVudC5maWx0ZXIob0UpLmZvckVhY2goKChzLG8pPT57cy5zZXRNZXRhUHJvcGVydHkoIndlYmhvb2stbmFtZSIsc2VyaWFsaXplcnNfdmFsdWUobykpfSkpLG99fWNvbnN0IGl3PVdlYmhvb2tzVmlzaXRvcix7SlNPTlNjaGVtYTphdyxMaW5rRGVzY3JpcHRpb246Y3d9PXNTLnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMsbHc9e3Zpc2l0b3JzOnt2YWx1ZTpXdi52aXNpdG9ycy52YWx1ZSxkb2N1bWVudDp7b2JqZWN0czp7T3BlbkFwaTp7JHZpc2l0b3I6eVMsZml4ZWRGaWVsZHM6e29wZW5hcGk6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5PcGVuQXBpLmZpeGVkRmllbGRzLm9wZW5hcGksaW5mbzp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL0luZm8ifSxqc29uU2NoZW1hRGlhbGVjdDpPUyxzZXJ2ZXJzOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuT3BlbkFwaS5maXhlZEZpZWxkcy5zZXJ2ZXJzLHBhdGhzOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvUGF0aHMifSx3ZWJob29rczppdyxjb21wb25lbnRzOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvQ29tcG9uZW50cyJ9LHNlY3VyaXR5Old2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuT3BlbkFwaS5maXhlZEZpZWxkcy5zZWN1cml0eSx0YWdzOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuT3BlbkFwaS5maXhlZEZpZWxkcy50YWdzLGV4dGVybmFsRG9jczp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL0V4dGVybmFsRG9jdW1lbnRhdGlvbiJ9fX0sSW5mbzp7JHZpc2l0b3I6YlMsZml4ZWRGaWVsZHM6e3RpdGxlOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuSW5mby5maXhlZEZpZWxkcy50aXRsZSxkZXNjcmlwdGlvbjpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkluZm8uZml4ZWRGaWVsZHMuZGVzY3JpcHRpb24sc3VtbWFyeTp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9LHRlcm1zT2ZTZXJ2aWNlOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuSW5mby5maXhlZEZpZWxkcy50ZXJtc09mU2VydmljZSxjb250YWN0OnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvQ29udGFjdCJ9LGxpY2Vuc2U6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9MaWNlbnNlIn0sdmVyc2lvbjpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkluZm8uZml4ZWRGaWVsZHMudmVyc2lvbn19LENvbnRhY3Q6eyR2aXNpdG9yOlNTLGZpeGVkRmllbGRzOntuYW1lOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuQ29udGFjdC5maXhlZEZpZWxkcy5uYW1lLHVybDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkNvbnRhY3QuZml4ZWRGaWVsZHMudXJsLGVtYWlsOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuQ29udGFjdC5maXhlZEZpZWxkcy5lbWFpbH19LExpY2Vuc2U6eyR2aXNpdG9yOndTLGZpeGVkRmllbGRzOntuYW1lOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuTGljZW5zZS5maXhlZEZpZWxkcy5uYW1lLGlkZW50aWZpZXI6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSx1cmw6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5MaWNlbnNlLmZpeGVkRmllbGRzLnVybH19LFNlcnZlcjp7JHZpc2l0b3I6QVMsZml4ZWRGaWVsZHM6e3VybDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlNlcnZlci5maXhlZEZpZWxkcy51cmwsZGVzY3JpcHRpb246V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5TZXJ2ZXIuZml4ZWRGaWVsZHMuZGVzY3JpcHRpb24sdmFyaWFibGVzOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuU2VydmVyLmZpeGVkRmllbGRzLnZhcmlhYmxlc319LFNlcnZlclZhcmlhYmxlOnskdmlzaXRvcjpQUyxmaXhlZEZpZWxkczp7ZW51bTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlNlcnZlclZhcmlhYmxlLmZpeGVkRmllbGRzLmVudW0sZGVmYXVsdDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlNlcnZlclZhcmlhYmxlLmZpeGVkRmllbGRzLmRlZmF1bHQsZGVzY3JpcHRpb246V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5TZXJ2ZXJWYXJpYWJsZS5maXhlZEZpZWxkcy5kZXNjcmlwdGlvbn19LENvbXBvbmVudHM6eyR2aXNpdG9yOkRTLGZpeGVkRmllbGRzOntzY2hlbWFzOlBFLHJlc3BvbnNlczpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkNvbXBvbmVudHMuZml4ZWRGaWVsZHMucmVzcG9uc2VzLHBhcmFtZXRlcnM6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5Db21wb25lbnRzLmZpeGVkRmllbGRzLnBhcmFtZXRlcnMsZXhhbXBsZXM6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5Db21wb25lbnRzLmZpeGVkRmllbGRzLmV4YW1wbGVzLHJlcXVlc3RCb2RpZXM6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5Db21wb25lbnRzLmZpeGVkRmllbGRzLnJlcXVlc3RCb2RpZXMsaGVhZGVyczpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkNvbXBvbmVudHMuZml4ZWRGaWVsZHMuaGVhZGVycyxzZWN1cml0eVNjaGVtZXM6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5Db21wb25lbnRzLmZpeGVkRmllbGRzLnNlY3VyaXR5U2NoZW1lcyxsaW5rczpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkNvbXBvbmVudHMuZml4ZWRGaWVsZHMubGlua3MsY2FsbGJhY2tzOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuQ29tcG9uZW50cy5maXhlZEZpZWxkcy5jYWxsYmFja3MscGF0aEl0ZW1zOlRFfX0sUGF0aHM6eyR2aXNpdG9yOiRFfSxQYXRoSXRlbTp7JHZpc2l0b3I6UUUsZml4ZWRGaWVsZHM6eyRyZWY6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5QYXRoSXRlbS5maXhlZEZpZWxkcy4kcmVmLHN1bW1hcnk6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5QYXRoSXRlbS5maXhlZEZpZWxkcy5zdW1tYXJ5LGRlc2NyaXB0aW9uOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUGF0aEl0ZW0uZml4ZWRGaWVsZHMuZGVzY3JpcHRpb24sZ2V0OnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvT3BlcmF0aW9uIn0scHV0OnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvT3BlcmF0aW9uIn0scG9zdDp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL09wZXJhdGlvbiJ9LGRlbGV0ZTp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL09wZXJhdGlvbiJ9LG9wdGlvbnM6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9PcGVyYXRpb24ifSxoZWFkOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvT3BlcmF0aW9uIn0scGF0Y2g6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9PcGVyYXRpb24ifSx0cmFjZTp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL09wZXJhdGlvbiJ9LHNlcnZlcnM6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5QYXRoSXRlbS5maXhlZEZpZWxkcy5zZXJ2ZXJzLHBhcmFtZXRlcnM6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5QYXRoSXRlbS5maXhlZEZpZWxkcy5wYXJhbWV0ZXJzfX0sT3BlcmF0aW9uOnskdmlzaXRvcjpZRSxmaXhlZEZpZWxkczp7dGFnczpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLk9wZXJhdGlvbi5maXhlZEZpZWxkcy50YWdzLHN1bW1hcnk6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5PcGVyYXRpb24uZml4ZWRGaWVsZHMuc3VtbWFyeSxkZXNjcmlwdGlvbjpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLk9wZXJhdGlvbi5maXhlZEZpZWxkcy5kZXNjcmlwdGlvbixleHRlcm5hbERvY3M6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9FeHRlcm5hbERvY3VtZW50YXRpb24ifSxvcGVyYXRpb25JZDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLk9wZXJhdGlvbi5maXhlZEZpZWxkcy5vcGVyYXRpb25JZCxwYXJhbWV0ZXJzOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuT3BlcmF0aW9uLmZpeGVkRmllbGRzLnBhcmFtZXRlcnMscmVxdWVzdEJvZHk6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5PcGVyYXRpb24uZml4ZWRGaWVsZHMucmVxdWVzdEJvZHkscmVzcG9uc2VzOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvUmVzcG9uc2VzIn0sY2FsbGJhY2tzOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuT3BlcmF0aW9uLmZpeGVkRmllbGRzLmNhbGxiYWNrcyxkZXByZWNhdGVkOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuT3BlcmF0aW9uLmZpeGVkRmllbGRzLmRlcHJlY2F0ZWQsc2VjdXJpdHk6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5PcGVyYXRpb24uZml4ZWRGaWVsZHMuc2VjdXJpdHksc2VydmVyczpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLk9wZXJhdGlvbi5maXhlZEZpZWxkcy5zZXJ2ZXJzfX0sRXh0ZXJuYWxEb2N1bWVudGF0aW9uOnskdmlzaXRvcjpERSxmaXhlZEZpZWxkczp7ZGVzY3JpcHRpb246V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5FeHRlcm5hbERvY3VtZW50YXRpb24uZml4ZWRGaWVsZHMuZGVzY3JpcHRpb24sdXJsOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuRXh0ZXJuYWxEb2N1bWVudGF0aW9uLmZpeGVkRmllbGRzLnVybH19LFBhcmFtZXRlcjp7JHZpc2l0b3I6VlMsZml4ZWRGaWVsZHM6e25hbWU6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5QYXJhbWV0ZXIuZml4ZWRGaWVsZHMubmFtZSxpbjpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlBhcmFtZXRlci5maXhlZEZpZWxkcy5pbixkZXNjcmlwdGlvbjpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlBhcmFtZXRlci5maXhlZEZpZWxkcy5kZXNjcmlwdGlvbixyZXF1aXJlZDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlBhcmFtZXRlci5maXhlZEZpZWxkcy5yZXF1aXJlZCxkZXByZWNhdGVkOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUGFyYW1ldGVyLmZpeGVkRmllbGRzLmRlcHJlY2F0ZWQsYWxsb3dFbXB0eVZhbHVlOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUGFyYW1ldGVyLmZpeGVkRmllbGRzLmFsbG93RW1wdHlWYWx1ZSxzdHlsZTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlBhcmFtZXRlci5maXhlZEZpZWxkcy5zdHlsZSxleHBsb2RlOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUGFyYW1ldGVyLmZpeGVkRmllbGRzLmV4cGxvZGUsYWxsb3dSZXNlcnZlZDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlBhcmFtZXRlci5maXhlZEZpZWxkcy5hbGxvd1Jlc2VydmVkLHNjaGVtYTp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL1NjaGVtYSJ9LGV4YW1wbGU6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5QYXJhbWV0ZXIuZml4ZWRGaWVsZHMuZXhhbXBsZSxleGFtcGxlczpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlBhcmFtZXRlci5maXhlZEZpZWxkcy5leGFtcGxlcyxjb250ZW50Old2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUGFyYW1ldGVyLmZpeGVkRmllbGRzLmNvbnRlbnR9fSxSZXF1ZXN0Qm9keTp7JHZpc2l0b3I6VkUsZml4ZWRGaWVsZHM6e2Rlc2NyaXB0aW9uOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUmVxdWVzdEJvZHkuZml4ZWRGaWVsZHMuZGVzY3JpcHRpb24sY29udGVudDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlJlcXVlc3RCb2R5LmZpeGVkRmllbGRzLmNvbnRlbnQscmVxdWlyZWQ6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5SZXF1ZXN0Qm9keS5maXhlZEZpZWxkcy5yZXF1aXJlZH19LE1lZGlhVHlwZTp7JHZpc2l0b3I6VFMsZml4ZWRGaWVsZHM6e3NjaGVtYTp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL1NjaGVtYSJ9LGV4YW1wbGU6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5NZWRpYVR5cGUuZml4ZWRGaWVsZHMuZXhhbXBsZSxleGFtcGxlczpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLk1lZGlhVHlwZS5maXhlZEZpZWxkcy5leGFtcGxlcyxlbmNvZGluZzpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLk1lZGlhVHlwZS5maXhlZEZpZWxkcy5lbmNvZGluZ319LEVuY29kaW5nOnskdmlzaXRvcjpGRSxmaXhlZEZpZWxkczp7Y29udGVudFR5cGU6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5FbmNvZGluZy5maXhlZEZpZWxkcy5jb250ZW50VHlwZSxoZWFkZXJzOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuRW5jb2RpbmcuZml4ZWRGaWVsZHMuaGVhZGVycyxzdHlsZTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkVuY29kaW5nLmZpeGVkRmllbGRzLnN0eWxlLGV4cGxvZGU6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5FbmNvZGluZy5maXhlZEZpZWxkcy5leHBsb2RlLGFsbG93UmVzZXJ2ZWQ6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5FbmNvZGluZy5maXhlZEZpZWxkcy5hbGxvd1Jlc2VydmVkfX0sUmVzcG9uc2VzOnskdmlzaXRvcjpLRSxmaXhlZEZpZWxkczp7ZGVmYXVsdDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlJlc3BvbnNlcy5maXhlZEZpZWxkcy5kZWZhdWx0fX0sUmVzcG9uc2U6eyR2aXNpdG9yOkpFLGZpeGVkRmllbGRzOntkZXNjcmlwdGlvbjpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlJlc3BvbnNlLmZpeGVkRmllbGRzLmRlc2NyaXB0aW9uLGhlYWRlcnM6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5SZXNwb25zZS5maXhlZEZpZWxkcy5oZWFkZXJzLGNvbnRlbnQ6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5SZXNwb25zZS5maXhlZEZpZWxkcy5jb250ZW50LGxpbmtzOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuUmVzcG9uc2UuZml4ZWRGaWVsZHMubGlua3N9fSxDYWxsYmFjazp7JHZpc2l0b3I6ekV9LEV4YW1wbGU6eyR2aXNpdG9yOk1FLGZpeGVkRmllbGRzOntzdW1tYXJ5Old2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuRXhhbXBsZS5maXhlZEZpZWxkcy5zdW1tYXJ5LGRlc2NyaXB0aW9uOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuRXhhbXBsZS5maXhlZEZpZWxkcy5kZXNjcmlwdGlvbix2YWx1ZTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkV4YW1wbGUuZml4ZWRGaWVsZHMudmFsdWUsZXh0ZXJuYWxWYWx1ZTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkV4YW1wbGUuZml4ZWRGaWVsZHMuZXh0ZXJuYWxWYWx1ZX19LExpbms6eyR2aXNpdG9yOmtTLGZpeGVkRmllbGRzOntvcGVyYXRpb25SZWY6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5MaW5rLmZpeGVkRmllbGRzLm9wZXJhdGlvblJlZixvcGVyYXRpb25JZDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkxpbmsuZml4ZWRGaWVsZHMub3BlcmF0aW9uSWQscGFyYW1ldGVyczpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkxpbmsuZml4ZWRGaWVsZHMucGFyYW1ldGVycyxyZXF1ZXN0Qm9keTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkxpbmsuZml4ZWRGaWVsZHMucmVxdWVzdEJvZHksZGVzY3JpcHRpb246V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5MaW5rLmZpeGVkRmllbGRzLmRlc2NyaXB0aW9uLHNlcnZlcjp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL1NlcnZlciJ9fX0sSGVhZGVyOnskdmlzaXRvcjp6UyxmaXhlZEZpZWxkczp7ZGVzY3JpcHRpb246V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5IZWFkZXIuZml4ZWRGaWVsZHMuZGVzY3JpcHRpb24scmVxdWlyZWQ6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5IZWFkZXIuZml4ZWRGaWVsZHMucmVxdWlyZWQsZGVwcmVjYXRlZDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkhlYWRlci5maXhlZEZpZWxkcy5kZXByZWNhdGVkLGFsbG93RW1wdHlWYWx1ZTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkhlYWRlci5maXhlZEZpZWxkcy5hbGxvd0VtcHR5VmFsdWUsc3R5bGU6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5IZWFkZXIuZml4ZWRGaWVsZHMuc3R5bGUsZXhwbG9kZTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkhlYWRlci5maXhlZEZpZWxkcy5leHBsb2RlLGFsbG93UmVzZXJ2ZWQ6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5IZWFkZXIuZml4ZWRGaWVsZHMuYWxsb3dSZXNlcnZlZCxzY2hlbWE6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9TY2hlbWEifSxleGFtcGxlOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuSGVhZGVyLmZpeGVkRmllbGRzLmV4YW1wbGUsZXhhbXBsZXM6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5IZWFkZXIuZml4ZWRGaWVsZHMuZXhhbXBsZXMsY29udGVudDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkhlYWRlci5maXhlZEZpZWxkcy5jb250ZW50fX0sVGFnOnskdmlzaXRvcjpGUyxmaXhlZEZpZWxkczp7bmFtZTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlRhZy5maXhlZEZpZWxkcy5uYW1lLGRlc2NyaXB0aW9uOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuVGFnLmZpeGVkRmllbGRzLmRlc2NyaXB0aW9uLGV4dGVybmFsRG9jczp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL0V4dGVybmFsRG9jdW1lbnRhdGlvbiJ9fX0sUmVmZXJlbmNlOnskdmlzaXRvcjokUyxmaXhlZEZpZWxkczp7JHJlZjpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlJlZmVyZW5jZS5maXhlZEZpZWxkcy4kcmVmLHN1bW1hcnk6eyRyZWY6IiMvdmlzaXRvcnMvdmFsdWUifSxkZXNjcmlwdGlvbjp7JHJlZjoiIy92aXNpdG9ycy92YWx1ZSJ9fX0sSlNPTlNjaGVtYTp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL1NjaGVtYSJ9LExpbmtEZXNjcmlwdGlvbjp7Li4uY3d9LFNjaGVtYTp7JHZpc2l0b3I6eUUsZml4ZWRGaWVsZHM6ey4uLmF3LmZpeGVkRmllbGRzLCRkZWZzOnZFLGFsbE9mOmJFLGFueU9mOl9FLG9uZU9mOlNFLG5vdDp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL1NjaGVtYSJ9LGlmOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvU2NoZW1hIn0sdGhlbjp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL1NjaGVtYSJ9LGVsc2U6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9TY2hlbWEifSxkZXBlbmRlbnRTY2hlbWFzOkVFLHByZWZpeEl0ZW1zOndFLGl0ZW1zOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvU2NoZW1hIn0sY29udGFpbnM6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9TY2hlbWEifSxwcm9wZXJ0aWVzOnhFLHBhdHRlcm5Qcm9wZXJ0aWVzOmtFLGFkZGl0aW9uYWxQcm9wZXJ0aWVzOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvU2NoZW1hIn0scHJvcGVydHlOYW1lczp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL1NjaGVtYSJ9LHVuZXZhbHVhdGVkSXRlbXM6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9TY2hlbWEifSx1bmV2YWx1YXRlZFByb3BlcnRpZXM6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9TY2hlbWEifSxjb250ZW50U2NoZW1hOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvU2NoZW1hIn0sZGlzY3JpbWluYXRvcjp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL0Rpc2NyaW1pbmF0b3IifSx4bWw6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9YTUwifSxleHRlcm5hbERvY3M6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9FeHRlcm5hbERvY3VtZW50YXRpb24ifSxleGFtcGxlOnskcmVmOiIjL3Zpc2l0b3JzL3ZhbHVlIn19fSxEaXNjcmltaW5hdG9yOnskdmlzaXRvcjpDRSxmaXhlZEZpZWxkczp7cHJvcGVydHlOYW1lOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuRGlzY3JpbWluYXRvci5maXhlZEZpZWxkcy5wcm9wZXJ0eU5hbWUsbWFwcGluZzpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLkRpc2NyaW1pbmF0b3IuZml4ZWRGaWVsZHMubWFwcGluZ319LFhNTDp7JHZpc2l0b3I6akUsZml4ZWRGaWVsZHM6e25hbWU6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5YTUwuZml4ZWRGaWVsZHMubmFtZSxuYW1lc3BhY2U6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5YTUwuZml4ZWRGaWVsZHMubmFtZXNwYWNlLHByZWZpeDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlhNTC5maXhlZEZpZWxkcy5wcmVmaXgsYXR0cmlidXRlOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuWE1MLmZpeGVkRmllbGRzLmF0dHJpYnV0ZSx3cmFwcGVkOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuWE1MLmZpeGVkRmllbGRzLndyYXBwZWR9fSxTZWN1cml0eVNjaGVtZTp7JHZpc2l0b3I6ZXcsZml4ZWRGaWVsZHM6e3R5cGU6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5TZWN1cml0eVNjaGVtZS5maXhlZEZpZWxkcy50eXBlLGRlc2NyaXB0aW9uOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuU2VjdXJpdHlTY2hlbWUuZml4ZWRGaWVsZHMuZGVzY3JpcHRpb24sbmFtZTpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLlNlY3VyaXR5U2NoZW1lLmZpeGVkRmllbGRzLm5hbWUsaW46V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5TZWN1cml0eVNjaGVtZS5maXhlZEZpZWxkcy5pbixzY2hlbWU6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5TZWN1cml0eVNjaGVtZS5maXhlZEZpZWxkcy5zY2hlbWUsYmVhcmVyRm9ybWF0Old2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuU2VjdXJpdHlTY2hlbWUuZml4ZWRGaWVsZHMuYmVhcmVyRm9ybWF0LGZsb3dzOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvT0F1dGhGbG93cyJ9LG9wZW5JZENvbm5lY3RVcmw6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5TZWN1cml0eVNjaGVtZS5maXhlZEZpZWxkcy5vcGVuSWRDb25uZWN0VXJsfX0sT0F1dGhGbG93czp7JHZpc2l0b3I6cncsZml4ZWRGaWVsZHM6e2ltcGxpY2l0OnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvT0F1dGhGbG93In0scGFzc3dvcmQ6eyRyZWY6IiMvdmlzaXRvcnMvZG9jdW1lbnQvb2JqZWN0cy9PQXV0aEZsb3cifSxjbGllbnRDcmVkZW50aWFsczp7JHJlZjoiIy92aXNpdG9ycy9kb2N1bWVudC9vYmplY3RzL09BdXRoRmxvdyJ9LGF1dGhvcml6YXRpb25Db2RlOnskcmVmOiIjL3Zpc2l0b3JzL2RvY3VtZW50L29iamVjdHMvT0F1dGhGbG93In19fSxPQXV0aEZsb3c6eyR2aXNpdG9yOnN3LGZpeGVkRmllbGRzOnthdXRob3JpemF0aW9uVXJsOld2LnZpc2l0b3JzLmRvY3VtZW50Lm9iamVjdHMuT0F1dGhGbG93LmZpeGVkRmllbGRzLmF1dGhvcml6YXRpb25VcmwsdG9rZW5Vcmw6V3YudmlzaXRvcnMuZG9jdW1lbnQub2JqZWN0cy5PQXV0aEZsb3cuZml4ZWRGaWVsZHMudG9rZW5VcmwscmVmcmVzaFVybDpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLk9BdXRoRmxvdy5maXhlZEZpZWxkcy5yZWZyZXNoVXJsLHNjb3BlczpXdi52aXNpdG9ycy5kb2N1bWVudC5vYmplY3RzLk9BdXRoRmxvdy5maXhlZEZpZWxkcy5zY29wZXN9fSxTZWN1cml0eVJlcXVpcmVtZW50OnskdmlzaXRvcjpNU319LGV4dGVuc2lvbjp7JHZpc2l0b3I6V3YudmlzaXRvcnMuZG9jdW1lbnQuZXh0ZW5zaW9uLiR2aXNpdG9yfX19fSxhcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3RyYXZlcnNhbF92aXNpdG9yX2dldE5vZGVUeXBlPXM9PntpZihqdShzKSlyZXR1cm5gJHtzLmVsZW1lbnQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrcy5lbGVtZW50LnNsaWNlKDEpfUVsZW1lbnRgfSx1dz17Q2FsbGJhY2tFbGVtZW50OlsiY29udGVudCJdLENvbXBvbmVudHNFbGVtZW50OlsiY29udGVudCJdLENvbnRhY3RFbGVtZW50OlsiY29udGVudCJdLERpc2NyaW1pbmF0b3JFbGVtZW50OlsiY29udGVudCJdLEVuY29kaW5nOlsiY29udGVudCJdLEV4YW1wbGU6WyJjb250ZW50Il0sRXh0ZXJuYWxEb2N1bWVudGF0aW9uRWxlbWVudDpbImNvbnRlbnQiXSxIZWFkZXJFbGVtZW50OlsiY29udGVudCJdLEluZm9FbGVtZW50OlsiY29udGVudCJdLExpY2Vuc2VFbGVtZW50OlsiY29udGVudCJdLE1lZGlhVHlwZUVsZW1lbnQ6WyJjb250ZW50Il0sT0F1dGhGbG93RWxlbWVudDpbImNvbnRlbnQiXSxPQXV0aEZsb3dzRWxlbWVudDpbImNvbnRlbnQiXSxPcGVuQXBpM18xRWxlbWVudDpbImNvbnRlbnQiXSxPcGVyYXRpb25FbGVtZW50OlsiY29udGVudCJdLFBhcmFtZXRlckVsZW1lbnQ6WyJjb250ZW50Il0sUGF0aEl0ZW1FbGVtZW50OlsiY29udGVudCJdLFBhdGhzRWxlbWVudDpbImNvbnRlbnQiXSxSZWZlcmVuY2VFbGVtZW50OlsiY29udGVudCJdLFJlcXVlc3RCb2R5RWxlbWVudDpbImNvbnRlbnQiXSxSZXNwb25zZUVsZW1lbnQ6WyJjb250ZW50Il0sUmVzcG9uc2VzRWxlbWVudDpbImNvbnRlbnQiXSxTY2hlbWFFbGVtZW50OlsiY29udGVudCJdLFNlY3VyaXR5UmVxdWlyZW1lbnRFbGVtZW50OlsiY29udGVudCJdLFNlY3VyaXR5U2NoZW1lRWxlbWVudDpbImNvbnRlbnQiXSxTZXJ2ZXJFbGVtZW50OlsiY29udGVudCJdLFNlcnZlclZhcmlhYmxlRWxlbWVudDpbImNvbnRlbnQiXSxUYWdFbGVtZW50OlsiY29udGVudCJdLC4uLkt1fSxwdz17bmFtZXNwYWNlOnM9Pntjb25zdHtiYXNlOm99PXM7cmV0dXJuIG8ucmVnaXN0ZXIoImNhbGxiYWNrIixHdiksby5yZWdpc3RlcigiY29tcG9uZW50cyIsWXYpLG8ucmVnaXN0ZXIoImNvbnRhY3QiLFh2KSxvLnJlZ2lzdGVyKCJkaXNjcmltaW5hdG9yIixRdiksby5yZWdpc3RlcigiZW5jb2RpbmciLFp2KSxvLnJlZ2lzdGVyKCJleGFtcGxlIixlYiksby5yZWdpc3RlcigiZXh0ZXJuYWxEb2N1bWVudGF0aW9uIix0Yiksby5yZWdpc3RlcigiaGVhZGVyIixuYiksby5yZWdpc3RlcigiaW5mbyIscGIpLG8ucmVnaXN0ZXIoImpzb25TY2hlbWFEaWFsZWN0IixtYiksby5yZWdpc3RlcigibGljZW5zZSIseWIpLG8ucmVnaXN0ZXIoImxpbmsiLF9iKSxvLnJlZ2lzdGVyKCJtZWRpYVR5cGUiLFNiKSxvLnJlZ2lzdGVyKCJvQXV0aEZsb3ciLHdiKSxvLnJlZ2lzdGVyKCJvQXV0aEZsb3dzIixPYiksby5yZWdpc3Rlcigib3BlbmFwaSIsQWIpLG8ucmVnaXN0ZXIoIm9wZW5BcGkzXzEiLFBiKSxvLnJlZ2lzdGVyKCJvcGVyYXRpb24iLEliKSxvLnJlZ2lzdGVyKCJwYXJhbWV0ZXIiLE1iKSxvLnJlZ2lzdGVyKCJwYXRoSXRlbSIsUmIpLG8ucmVnaXN0ZXIoInBhdGhzIixMYiksby5yZWdpc3RlcigicmVmZXJlbmNlIixxYiksby5yZWdpc3RlcigicmVxdWVzdEJvZHkiLHpiKSxvLnJlZ2lzdGVyKCJyZXNwb25zZSIsUWIpLG8ucmVnaXN0ZXIoInJlc3BvbnNlcyIsZV8pLG8ucmVnaXN0ZXIoInNjaGVtYSIsdVMpLG8ucmVnaXN0ZXIoInNlY3VyaXR5UmVxdWlyZW1lbnQiLHBTKSxvLnJlZ2lzdGVyKCJzZWN1cml0eVNjaGVtZSIsaFMpLG8ucmVnaXN0ZXIoInNlcnZlciIsZFMpLG8ucmVnaXN0ZXIoInNlcnZlclZhcmlhYmxlIixmUyksby5yZWdpc3RlcigidGFnIixtUyksby5yZWdpc3RlcigieG1sIixnUyksb319LGh3PXB3LGFuY2VzdG9yTGluZWFnZVRvSlNPTlBvaW50ZXI9cz0+e2NvbnN0IG89cy5yZWR1Y2UoKChvLGksYSk9PntpZihEdShpKSl7Y29uc3Qgcz1TdHJpbmcoc2VyaWFsaXplcnNfdmFsdWUoaS5rZXkpKTtvLnB1c2gocyl9ZWxzZSBpZihSdShzW2EtMl0pKXtjb25zdCB1PVN0cmluZyhzW2EtMl0uY29udGVudC5pbmRleE9mKGkpKTtvLnB1c2godSl9cmV0dXJuIG99KSxbXSk7cmV0dXJuIGVzX2NvbXBpbGUobyl9LGFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX3Rvb2xib3g9KCk9Pntjb25zdCBzPWNyZWF0ZU5hbWVzcGFjZShodyk7cmV0dXJue3ByZWRpY2F0ZXM6ey4uLnllLGlzRWxlbWVudDpqdSxpc1N0cmluZ0VsZW1lbnQ6UHUsaXNBcnJheUVsZW1lbnQ6UnUsaXNPYmplY3RFbGVtZW50Ok11LGlzTWVtYmVyRWxlbWVudDpEdSxpc1NlcnZlcnNFbGVtZW50OmxnLGluY2x1ZGVzQ2xhc3NlcyxoYXNFbGVtZW50U291cmNlTWFwfSxhbmNlc3RvckxpbmVhZ2VUb0pTT05Qb2ludGVyLG5hbWVzcGFjZTpzfX0sYXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfcmVmcmFjdD0ocyx7c3BlY1BhdGg6bz1bInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiT3BlbkFwaSIsIiR2aXNpdG9yIl0scGx1Z2luczppPVtdfT17fSk9Pntjb25zdCBhPSgwLFN1LmUpKHMpLHU9ZGVyZWZlcmVuY2UobHcpLF89bmV3KHRwKG8sdSkpKHtzcGVjT2JqOnV9KTtyZXR1cm4gdmlzaXRvcl92aXNpdChhLF8pLGRpc3BhdGNoUGx1Z2luc1N5bmMoXy5lbGVtZW50LGkse3Rvb2xib3hDcmVhdG9yOmFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX3Rvb2xib3gsdmlzaXRvck9wdGlvbnM6e2tleU1hcDp1dyxub2RlVHlwZUdldHRlcjphcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3RyYXZlcnNhbF92aXNpdG9yX2dldE5vZGVUeXBlfX0pfSxhcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3I9cz0+KG8saT17fSk9PmFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX3JlZnJhY3Qobyx7c3BlY1BhdGg6cywuLi5pfSk7R3YucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkNhbGxiYWNrIiwiJHZpc2l0b3IiXSksWXYucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkNvbXBvbmVudHMiLCIkdmlzaXRvciJdKSxYdi5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiQ29udGFjdCIsIiR2aXNpdG9yIl0pLGViLnJlZnJhY3Q9YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJFeGFtcGxlIiwiJHZpc2l0b3IiXSksUXYucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkRpc2NyaW1pbmF0b3IiLCIkdmlzaXRvciJdKSxadi5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiRW5jb2RpbmciLCIkdmlzaXRvciJdKSx0Yi5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiRXh0ZXJuYWxEb2N1bWVudGF0aW9uIiwiJHZpc2l0b3IiXSksbmIucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkhlYWRlciIsIiR2aXNpdG9yIl0pLHBiLnJlZnJhY3Q9YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJJbmZvIiwiJHZpc2l0b3IiXSksbWIucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIk9wZW5BcGkiLCJmaXhlZEZpZWxkcyIsImpzb25TY2hlbWFEaWFsZWN0Il0pLHliLnJlZnJhY3Q9YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJMaWNlbnNlIiwiJHZpc2l0b3IiXSksX2IucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIkxpbmsiLCIkdmlzaXRvciJdKSxTYi5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiTWVkaWFUeXBlIiwiJHZpc2l0b3IiXSksd2IucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIk9BdXRoRmxvdyIsIiR2aXNpdG9yIl0pLE9iLnJlZnJhY3Q9YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJPQXV0aEZsb3dzIiwiJHZpc2l0b3IiXSksQWIucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIk9wZW5BcGkiLCJmaXhlZEZpZWxkcyIsIm9wZW5hcGkiXSksUGIucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIk9wZW5BcGkiLCIkdmlzaXRvciJdKSxJYi5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiT3BlcmF0aW9uIiwiJHZpc2l0b3IiXSksTWIucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIlBhcmFtZXRlciIsIiR2aXNpdG9yIl0pLFJiLnJlZnJhY3Q9YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJQYXRoSXRlbSIsIiR2aXNpdG9yIl0pLExiLnJlZnJhY3Q9YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJQYXRocyIsIiR2aXNpdG9yIl0pLHFiLnJlZnJhY3Q9YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJSZWZlcmVuY2UiLCIkdmlzaXRvciJdKSx6Yi5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVxdWVzdEJvZHkiLCIkdmlzaXRvciJdKSxRYi5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVzcG9uc2UiLCIkdmlzaXRvciJdKSxlXy5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiUmVzcG9uc2VzIiwiJHZpc2l0b3IiXSksdVMucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIlNjaGVtYSIsIiR2aXNpdG9yIl0pLHBTLnJlZnJhY3Q9YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJTZWN1cml0eVJlcXVpcmVtZW50IiwiJHZpc2l0b3IiXSksaFMucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIlNlY3VyaXR5U2NoZW1lIiwiJHZpc2l0b3IiXSksZFMucmVmcmFjdD1hcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl9jcmVhdGVSZWZyYWN0b3IoWyJ2aXNpdG9ycyIsImRvY3VtZW50Iiwib2JqZWN0cyIsIlNlcnZlciIsIiR2aXNpdG9yIl0pLGZTLnJlZnJhY3Q9YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJTZXJ2ZXJWYXJpYWJsZSIsIiR2aXNpdG9yIl0pLG1TLnJlZnJhY3Q9YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY19yZWZyYWN0b3JfY3JlYXRlUmVmcmFjdG9yKFsidmlzaXRvcnMiLCJkb2N1bWVudCIsIm9iamVjdHMiLCJUYWciLCIkdmlzaXRvciJdKSxnUy5yZWZyYWN0PWFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfcmVmcmFjdG9yX2NyZWF0ZVJlZnJhY3RvcihbInZpc2l0b3JzIiwiZG9jdW1lbnQiLCJvYmplY3RzIiwiWE1MIiwiJHZpc2l0b3IiXSk7Y29uc3QgZHc9Y2xhc3MgTm90SW1wbGVtZW50ZWRFcnJvciBleHRlbmRzIERoe307Y29uc3QgZnc9Y2xhc3MgTWVkaWFUeXBlcyBleHRlbmRzIEFycmF5e3Vua25vd25NZWRpYVR5cGU9ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSI7ZmlsdGVyQnlGb3JtYXQoKXt0aHJvdyBuZXcgZHcoImZpbHRlckJ5Rm9ybWF0IG1ldGhvZCBpbiBNZWRpYVR5cGVzIGNsYXNzIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuIil9ZmluZEJ5KCl7dGhyb3cgbmV3IGR3KCJmaW5kQnkgbWV0aG9kIGluIE1lZGlhVHlwZXMgY2xhc3MgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4iKX1sYXRlc3QoKXt0aHJvdyBuZXcgZHcoImxhdGVzdCBtZXRob2QgaW4gTWVkaWFUeXBlcyBjbGFzcyBpcyBub3QgeWV0IGltcGxlbWVudGVkLiIpfX07Y2xhc3MgT3BlbkFQSU1lZGlhVHlwZXMgZXh0ZW5kcyBmd3tmaWx0ZXJCeUZvcm1hdChzPSJnZW5lcmljIil7Y29uc3Qgbz0iZ2VuZXJpYyI9PT1zPyJvcGVuYXBpO3ZlcnNpb24iOnM7cmV0dXJuIHRoaXMuZmlsdGVyKChzPT5zLmluY2x1ZGVzKG8pKSl9ZmluZEJ5KHM9IjMuMS4wIixvPSJnZW5lcmljIil7Y29uc3QgaT0iZ2VuZXJpYyI9PT1vP2B2bmQub2FpLm9wZW5hcGk7dmVyc2lvbj0ke3N9YDpgdm5kLm9haS5vcGVuYXBpKyR7b307dmVyc2lvbj0ke3N9YDtyZXR1cm4gdGhpcy5maW5kKChzPT5zLmluY2x1ZGVzKGkpKSl8fHRoaXMudW5rbm93bk1lZGlhVHlwZX1sYXRlc3Qocz0iZ2VuZXJpYyIpe3JldHVybiBCYSh0aGlzLmZpbHRlckJ5Rm9ybWF0KHMpKX19Y29uc3QgbXc9bmV3IE9wZW5BUElNZWRpYVR5cGVzKCJhcHBsaWNhdGlvbi92bmQub2FpLm9wZW5hcGk7dmVyc2lvbj0zLjEuMCIsImFwcGxpY2F0aW9uL3ZuZC5vYWkub3BlbmFwaStqc29uO3ZlcnNpb249My4xLjAiLCJhcHBsaWNhdGlvbi92bmQub2FpLm9wZW5hcGkreWFtbDt2ZXJzaW9uPTMuMS4wIik7Y29uc3QgZ3c9Y2xhc3Mgc3JjX1JlZmVyZW5jZV9SZWZlcmVuY2V7dXJpO2RlcHRoO3ZhbHVlO3JlZlNldDtlcnJvcnM7Y29uc3RydWN0b3Ioe3VyaTpzLGRlcHRoOm89MCxyZWZTZXQ6aSx2YWx1ZTphfSl7dGhpcy51cmk9cyx0aGlzLnZhbHVlPWEsdGhpcy5kZXB0aD1vLHRoaXMucmVmU2V0PWksdGhpcy5lcnJvcnM9W119fTtjb25zdCB5dz1jbGFzcyBSZWZlcmVuY2VTZXR7cm9vdFJlZjtyZWZzO2NpcmN1bGFyO2NvbnN0cnVjdG9yKHtyZWZzOnM9W10sY2lyY3VsYXI6bz0hMX09e30pe3RoaXMucmVmcz1bXSx0aGlzLmNpcmN1bGFyPW8scy5mb3JFYWNoKHRoaXMuYWRkLmJpbmQodGhpcykpfWdldCBzaXplKCl7cmV0dXJuIHRoaXMucmVmcy5sZW5ndGh9YWRkKHMpe3JldHVybiB0aGlzLmhhcyhzKXx8KHRoaXMucmVmcy5wdXNoKHMpLHRoaXMucm9vdFJlZj12b2lkIDA9PT10aGlzLnJvb3RSZWY/czp0aGlzLnJvb3RSZWYscy5yZWZTZXQ9dGhpcyksdGhpc31tZXJnZShzKXtmb3IoY29uc3QgbyBvZiBzLnZhbHVlcygpKXRoaXMuYWRkKG8pO3JldHVybiB0aGlzfWhhcyhzKXtjb25zdCBvPUpjKHMpP3M6cy51cmk7cmV0dXJuIF9jKHRoaXMuZmluZCgocz0+cy51cmk9PT1vKSkpfWZpbmQocyl7cmV0dXJuIHRoaXMucmVmcy5maW5kKHMpfSp2YWx1ZXMoKXt5aWVsZCp0aGlzLnJlZnN9Y2xlYW4oKXt0aGlzLnJlZnMuZm9yRWFjaCgocz0+e3MucmVmU2V0PXZvaWQgMH0pKSx0aGlzLnJvb3RSZWY9dm9pZCAwLHRoaXMucmVmcy5sZW5ndGg9MH19O2Z1bmN0aW9uIF9pZGVudGl0eShzKXtyZXR1cm4gc31jb25zdCB2dz1fY3VycnkxKF9pZGVudGl0eSksYnc9e3BhcnNlOnttZWRpYVR5cGU6InRleHQvcGxhaW4iLHBhcnNlcnM6W10scGFyc2VyT3B0czp7fX0scmVzb2x2ZTp7YmFzZVVSSToiIixyZXNvbHZlcnM6W10scmVzb2x2ZXJPcHRzOnt9LHN0cmF0ZWdpZXM6W10sc3RyYXRlZ3lPcHRzOnt9LGludGVybmFsOiEwLGV4dGVybmFsOiEwLG1heERlcHRoOjEvMH0sZGVyZWZlcmVuY2U6e3N0cmF0ZWdpZXM6W10sc3RyYXRlZ3lPcHRzOnt9LHJlZlNldDpudWxsLG1heERlcHRoOjEvMCxjaXJjdWxhcjoiaWdub3JlIixjaXJjdWxhclJlcGxhY2VyOnZ3LGltbXV0YWJsZTohMH0sYnVuZGxlOntzdHJhdGVnaWVzOltdLHJlZlNldDpudWxsLG1heERlcHRoOjEvMH19O2NvbnN0IF93PV9jdXJyeTIoKGZ1bmN0aW9uIGxlbnMocyxvKXtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBjYygoZnVuY3Rpb24ocyl7cmV0dXJuIG8ocyxhKX0pLGkocyhhKSkpfX19KSk7dmFyIElkZW50aXR5PWZ1bmN0aW9uKHMpe3JldHVybnt2YWx1ZTpzLG1hcDpmdW5jdGlvbihvKXtyZXR1cm4gSWRlbnRpdHkobyhzKSl9fX0sU3c9X2N1cnJ5MygoZnVuY3Rpb24gb3ZlcihzLG8saSl7cmV0dXJuIHMoKGZ1bmN0aW9uKHMpe3JldHVybiBJZGVudGl0eShvKHMpKX0pKShpKS52YWx1ZX0pKTtjb25zdCBFdz1Tdztjb25zdCB3dz1uYSgiIikseHc9X3codHAoWyJyZXNvbHZlIiwiYmFzZVVSSSJdKSxzXyhbInJlc29sdmUiLCJiYXNlVVJJIl0pKSxiYXNlVVJJRGVmYXVsdD1zPT53dyhzKT91cmxfY3dkKCk6cyx1dGlsX21lcmdlPShzLG8pPT57Y29uc3QgaT1lcChzLG8pO3JldHVybiBFdyh4dyxiYXNlVVJJRGVmYXVsdCxpKX07Y29uc3Qga3c9Y2xhc3MgRmlsZV9GaWxle3VyaTttZWRpYVR5cGU7ZGF0YTtwYXJzZVJlc3VsdDtjb25zdHJ1Y3Rvcih7dXJpOnMsbWVkaWFUeXBlOm89InRleHQvcGxhaW4iLGRhdGE6aSxwYXJzZVJlc3VsdDphfSl7dGhpcy51cmk9cyx0aGlzLm1lZGlhVHlwZT1vLHRoaXMuZGF0YT1pLHRoaXMucGFyc2VSZXN1bHQ9YX1nZXQgZXh0ZW5zaW9uKCl7cmV0dXJuIEpjKHRoaXMudXJpKT8ocz0+e2NvbnN0IG89cy5sYXN0SW5kZXhPZigiLiIpO3JldHVybiBvPj0wP3Muc3Vic3RyaW5nKG8pLnRvTG93ZXJDYXNlKCk6IiJ9KSh0aGlzLnVyaSk6IiJ9dG9TdHJpbmcoKXtpZigic3RyaW5nIj09dHlwZW9mIHRoaXMuZGF0YSlyZXR1cm4gdGhpcy5kYXRhO2lmKHRoaXMuZGF0YSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfHxbIkFycmF5QnVmZmVyIl0uaW5jbHVkZXMocmEodGhpcy5kYXRhKSl8fEFycmF5QnVmZmVyLmlzVmlldyh0aGlzLmRhdGEpKXtyZXR1cm4gbmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpLmRlY29kZSh0aGlzLmRhdGEpfXJldHVybiBTdHJpbmcodGhpcy5kYXRhKX19O2NvbnN0IE93PWNsYXNzIFBsdWdpbkVycm9yIGV4dGVuZHMgS297cGx1Z2luO2NvbnN0cnVjdG9yKHMsbyl7c3VwZXIocyx7Y2F1c2U6by5jYXVzZX0pLHRoaXMucGx1Z2luPW8ucGx1Z2lufX0scGx1Z2luc19maWx0ZXI9YXN5bmMocyxvLGkpPT57Y29uc3QgYT1hd2FpdCBQcm9taXNlLmFsbChpLm1hcChocChbc10sbykpKTtyZXR1cm4gaS5maWx0ZXIoKChzLG8pPT5hW29dKSl9LHJ1bj1hc3luYyhzLG8saSk9PntsZXQgYTtmb3IoY29uc3QgdSBvZiBpKXRyeXtjb25zdCBpPWF3YWl0IHVbc10uY2FsbCh1LC4uLm8pO3JldHVybntwbHVnaW46dSxyZXN1bHQ6aX19Y2F0Y2gocyl7YT1uZXcgT3coIkVycm9yIHdoaWxlIHJ1bm5pbmcgcGx1Z2luIix7Y2F1c2U6cyxwbHVnaW46dX0pfXJldHVybiBQcm9taXNlLnJlamVjdChhKX07Y29uc3QgQ3c9Y2xhc3MgRGVyZWZlcmVuY2VFcnJvciBleHRlbmRzIEtve307Y29uc3QgQXc9Y2xhc3MgVW5tYXRjaGVkRGVyZWZlcmVuY2VTdHJhdGVneUVycm9yIGV4dGVuZHMgQ3d7fSxkZXJlZmVyZW5jZUFwaURPTT1hc3luYyhzLG8pPT57bGV0IGk9cyxhPSExO2lmKCFxdShzKSl7Y29uc3Qgbz1jbG9uZVNoYWxsb3cocyk7by5jbGFzc2VzLnB1c2goInJlc3VsdCIpLGk9bmV3IEN1KFtvXSksYT0hMH1jb25zdCB1PW5ldyBrdyh7dXJpOm8ucmVzb2x2ZS5iYXNlVVJJLHBhcnNlUmVzdWx0OmksbWVkaWFUeXBlOm8ucGFyc2UubWVkaWFUeXBlfSksXz1hd2FpdCBwbHVnaW5zX2ZpbHRlcigiY2FuRGVyZWZlcmVuY2UiLFt1LG9dLG8uZGVyZWZlcmVuY2Uuc3RyYXRlZ2llcyk7aWYoY3AoXykpdGhyb3cgbmV3IEF3KHUudXJpKTt0cnl7Y29uc3R7cmVzdWx0OnN9PWF3YWl0IHJ1bigiZGVyZWZlcmVuY2UiLFt1LG9dLF8pO3JldHVybiBhP3MuZ2V0KDApOnN9Y2F0Y2gocyl7dGhyb3cgbmV3IEN3KGBFcnJvciB3aGlsZSBkZXJlZmVyZW5jaW5nIGZpbGUgIiR7dS51cml9ImAse2NhdXNlOnN9KX19O2NvbnN0IGp3PWNsYXNzIFBhcnNlRXJyb3IgZXh0ZW5kcyBLb3t9O2NvbnN0IFB3PWNsYXNzIFBhcnNlckVycm9yIGV4dGVuZHMgand7fTtjb25zdCBJdz1jbGFzcyBQYXJzZXJfUGFyc2Vye25hbWU7YWxsb3dFbXB0eTtzb3VyY2VNYXA7ZmlsZUV4dGVuc2lvbnM7bWVkaWFUeXBlcztjb25zdHJ1Y3Rvcih7bmFtZTpzLGFsbG93RW1wdHk6bz0hMCxzb3VyY2VNYXA6aT0hMSxmaWxlRXh0ZW5zaW9uczphPVtdLG1lZGlhVHlwZXM6dT1bXX0pe3RoaXMubmFtZT1zLHRoaXMuYWxsb3dFbXB0eT1vLHRoaXMuc291cmNlTWFwPWksdGhpcy5maWxlRXh0ZW5zaW9ucz1hLHRoaXMubWVkaWFUeXBlcz11fX07Y29uc3QgVHc9Y2xhc3MgQmluYXJ5UGFyc2VyIGV4dGVuZHMgSXd7Y29uc3RydWN0b3Iocyl7c3VwZXIoey4uLm51bGwhPXM/czp7fSxuYW1lOiJiaW5hcnkifSl9Y2FuUGFyc2Uocyl7cmV0dXJuIDA9PT10aGlzLmZpbGVFeHRlbnNpb25zLmxlbmd0aHx8dGhpcy5maWxlRXh0ZW5zaW9ucy5pbmNsdWRlcyhzLmV4dGVuc2lvbil9cGFyc2Uocyl7dHJ5e2NvbnN0IG89dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHMudG9TdHJpbmcoKSkpLGk9YnRvYShvKSxhPW5ldyBDdTtpZigwIT09aS5sZW5ndGgpe2NvbnN0IHM9bmV3IFN1Lk9tKGkpO3MuY2xhc3Nlcy5wdXNoKCJyZXN1bHQiKSxhLnB1c2gocyl9cmV0dXJuIGF9Y2F0Y2gobyl7dGhyb3cgbmV3IFB3KGBFcnJvciBwYXJzaW5nICIke3MudXJpfSJgLHtjYXVzZTpvfSl9fX07Y29uc3QgTnc9Y2xhc3MgUmVzb2x2ZVN0cmF0ZWd5e25hbWU7Y29uc3RydWN0b3Ioe25hbWU6c30pe3RoaXMubmFtZT1zfX07Y29uc3QgTXc9Y2xhc3MgT3BlbkFQSTNfMVJlc29sdmVTdHJhdGVneSBleHRlbmRzIE53e2NvbnN0cnVjdG9yKHMpe3N1cGVyKHsuLi5udWxsIT1zP3M6e30sbmFtZToib3BlbmFwaS0zLTEifSl9Y2FuUmVzb2x2ZShzLG8pe2NvbnN0IGk9by5kZXJlZmVyZW5jZS5zdHJhdGVnaWVzLmZpbmQoKHM9PiJvcGVuYXBpLTMtMSI9PT1zLm5hbWUpKTtyZXR1cm4gdm9pZCAwIT09aSYmaS5jYW5EZXJlZmVyZW5jZShzLG8pfWFzeW5jIHJlc29sdmUocyxvKXtjb25zdCBpPW8uZGVyZWZlcmVuY2Uuc3RyYXRlZ2llcy5maW5kKChzPT4ib3BlbmFwaS0zLTEiPT09cy5uYW1lKSk7aWYodm9pZCAwPT09aSl0aHJvdyBuZXcgQXcoJyJvcGVuYXBpLTMtMSIgZGVyZWZlcmVuY2Ugc3RyYXRlZ3kgaXMgbm90IGF2YWlsYWJsZS4nKTtjb25zdCBhPW5ldyB5dyx1PXV0aWxfbWVyZ2Uobyx7cmVzb2x2ZTp7aW50ZXJuYWw6ITF9LGRlcmVmZXJlbmNlOntyZWZTZXQ6YX19KTtyZXR1cm4gYXdhaXQgaS5kZXJlZmVyZW5jZShzLHUpLGF9fTtjb25zdCBSdz1jbGFzcyBSZXNvbHZlcntuYW1lO2NvbnN0cnVjdG9yKHtuYW1lOnN9KXt0aGlzLm5hbWU9c319O2NvbnN0IER3PWNsYXNzIEhUVFBSZXNvbHZlciBleHRlbmRzIFJ3e3RpbWVvdXQ7cmVkaXJlY3RzO3dpdGhDcmVkZW50aWFscztjb25zdHJ1Y3RvcihzKXtjb25zdHtuYW1lOm89Imh0dHAtcmVzb2x2ZXIiLHRpbWVvdXQ6aT01ZTMscmVkaXJlY3RzOmE9NSx3aXRoQ3JlZGVudGlhbHM6dT0hMX09bnVsbCE9cz9zOnt9O3N1cGVyKHtuYW1lOm99KSx0aGlzLnRpbWVvdXQ9aSx0aGlzLnJlZGlyZWN0cz1hLHRoaXMud2l0aENyZWRlbnRpYWxzPXV9Y2FuUmVhZChzKXtyZXR1cm4gaXNIdHRwVXJsKHMudXJpKX19O2NvbnN0IEx3PWNsYXNzIFJlc29sdmVFcnJvciBleHRlbmRzIEtve307Y29uc3QgRnc9Y2xhc3MgUmVzb2x2ZXJFcnJvciBleHRlbmRzIEx3e30se0Fib3J0Q29udHJvbGxlcjpCdyxBYm9ydFNpZ25hbDokd309Z2xvYmFsVGhpczt2b2lkIDA9PT1nbG9iYWxUaGlzLkFib3J0Q29udHJvbGxlciYmKGdsb2JhbFRoaXMuQWJvcnRDb250cm9sbGVyPUJ3KSx2b2lkIDA9PT1nbG9iYWxUaGlzLkFib3J0U2lnbmFsJiYoZ2xvYmFsVGhpcy5BYm9ydFNpZ25hbD0kdyk7Y29uc3QgcXc9Y2xhc3MgSFRUUFJlc29sdmVyU3dhZ2dlckNsaWVudCBleHRlbmRzIER3e3N3YWdnZXJIVFRQQ2xpZW50PWh0dHBfaHR0cDtzd2FnZ2VySFRUUENsaWVudENvbmZpZztjb25zdHJ1Y3Rvcih7c3dhZ2dlckhUVFBDbGllbnQ6cz1odHRwX2h0dHAsc3dhZ2dlckhUVFBDbGllbnRDb25maWc6bz17fSwuLi5pfT17fSl7c3VwZXIoey4uLmksbmFtZToiaHR0cC1zd2FnZ2VyLWNsaWVudCJ9KSx0aGlzLnN3YWdnZXJIVFRQQ2xpZW50PXMsdGhpcy5zd2FnZ2VySFRUUENsaWVudENvbmZpZz1vfWdldEh0dHBDbGllbnQoKXtyZXR1cm4gdGhpcy5zd2FnZ2VySFRUUENsaWVudH1hc3luYyByZWFkKHMpe2NvbnN0IG89dGhpcy5nZXRIdHRwQ2xpZW50KCksaT1uZXcgQWJvcnRDb250cm9sbGVyLHtzaWduYWw6YX09aSx1PXNldFRpbWVvdXQoKCgpPT57aS5hYm9ydCgpfSksdGhpcy50aW1lb3V0KSxfPXRoaXMuZ2V0SHR0cENsaWVudCgpLndpdGhDcmVkZW50aWFsc3x8dGhpcy53aXRoQ3JlZGVudGlhbHM/ImluY2x1ZGUiOiJzYW1lLW9yaWdpbiIsdz0wPT09dGhpcy5yZWRpcmVjdHM/ImVycm9yIjoiZm9sbG93Iix4PXRoaXMucmVkaXJlY3RzPjA/dGhpcy5yZWRpcmVjdHM6dm9pZCAwO3RyeXtyZXR1cm4oYXdhaXQgbyh7dXJsOnMudXJpLHNpZ25hbDphLHVzZXJGZXRjaDphc3luYyhzLG8pPT57bGV0IGk9YXdhaXQgZmV0Y2gocyxvKTt0cnl7aS5oZWFkZXJzLmRlbGV0ZSgiQ29udGVudC1UeXBlIil9Y2F0Y2h7aT1uZXcgUmVzcG9uc2UoaS5ib2R5LHsuLi5pLGhlYWRlcnM6bmV3IEhlYWRlcnMoaS5oZWFkZXJzKX0pLGkuaGVhZGVycy5kZWxldGUoIkNvbnRlbnQtVHlwZSIpfXJldHVybiBpfSxjcmVkZW50aWFsczpfLHJlZGlyZWN0OncsZm9sbG93OngsLi4udGhpcy5zd2FnZ2VySFRUUENsaWVudENvbmZpZ30pKS50ZXh0LmFycmF5QnVmZmVyKCl9Y2F0Y2gobyl7dGhyb3cgbmV3IEZ3KGBFcnJvciBkb3dubG9hZGluZyAiJHtzLnVyaX0iYCx7Y2F1c2U6b30pfWZpbmFsbHl7Y2xlYXJUaW1lb3V0KHUpfX19LHRyYW5zZm9ybWVyc19mcm9tPShzLG89ZnApPT57aWYoSmMocykpdHJ5e3JldHVybiBvLmZyb21SZWZyYWN0KEpTT04ucGFyc2UocykpfWNhdGNoe31yZXR1cm4gZnUocykmJmlkKCJlbGVtZW50IixzKT9vLmZyb21SZWZyYWN0KHMpOm8udG9FbGVtZW50KHMpfTtjb25zdCBWdz1jbGFzcyBKU09OUGFyc2VyIGV4dGVuZHMgSXd7Y29uc3RydWN0b3Iocz17fSl7c3VwZXIoe25hbWU6Impzb24tc3dhZ2dlci1jbGllbnQiLG1lZGlhVHlwZXM6WyJhcHBsaWNhdGlvbi9qc29uIl0sLi4uc30pfWFzeW5jIGNhblBhcnNlKHMpe2NvbnN0IG89MD09PXRoaXMuZmlsZUV4dGVuc2lvbnMubGVuZ3RofHx0aGlzLmZpbGVFeHRlbnNpb25zLmluY2x1ZGVzKHMuZXh0ZW5zaW9uKSxpPXRoaXMubWVkaWFUeXBlcy5pbmNsdWRlcyhzLm1lZGlhVHlwZSk7aWYoIW8pcmV0dXJuITE7aWYoaSlyZXR1cm4hMDtpZighaSl0cnl7cmV0dXJuIEpTT04ucGFyc2Uocy50b1N0cmluZygpKSwhMH1jYXRjaChzKXtyZXR1cm4hMX1yZXR1cm4hMX1hc3luYyBwYXJzZShzKXtpZih0aGlzLnNvdXJjZU1hcCl0aHJvdyBuZXcgUHcoImpzb24tc3dhZ2dlci1jbGllbnQgcGFyc2VyIHBsdWdpbiBkb2Vzbid0IHN1cHBvcnQgc291cmNlTWFwcyBvcHRpb24iKTtjb25zdCBvPW5ldyBDdSxpPXMudG9TdHJpbmcoKTtpZih0aGlzLmFsbG93RW1wdHkmJiIiPT09aS50cmltKCkpcmV0dXJuIG87dHJ5e2NvbnN0IHM9dHJhbnNmb3JtZXJzX2Zyb20oSlNPTi5wYXJzZShpKSk7cmV0dXJuIHMuY2xhc3Nlcy5wdXNoKCJyZXN1bHQiKSxvLnB1c2gocyksb31jYXRjaChvKXt0aHJvdyBuZXcgUHcoYEVycm9yIHBhcnNpbmcgIiR7cy51cml9ImAse2NhdXNlOm99KX19fTtjb25zdCBVdz1jbGFzcyBZQU1MUGFyc2VyIGV4dGVuZHMgSXd7Y29uc3RydWN0b3Iocz17fSl7c3VwZXIoe25hbWU6InlhbWwtMS0yLXN3YWdnZXItY2xpZW50IixtZWRpYVR5cGVzOlsidGV4dC95YW1sIiwiYXBwbGljYXRpb24veWFtbCJdLC4uLnN9KX1hc3luYyBjYW5QYXJzZShzKXtjb25zdCBvPTA9PT10aGlzLmZpbGVFeHRlbnNpb25zLmxlbmd0aHx8dGhpcy5maWxlRXh0ZW5zaW9ucy5pbmNsdWRlcyhzLmV4dGVuc2lvbiksaT10aGlzLm1lZGlhVHlwZXMuaW5jbHVkZXMocy5tZWRpYVR5cGUpO2lmKCFvKXJldHVybiExO2lmKGkpcmV0dXJuITA7aWYoIWkpdHJ5e3JldHVybiBmbi5sb2FkKHMudG9TdHJpbmcoKSx7c2NoZW1hOnJufSksITB9Y2F0Y2gocyl7cmV0dXJuITF9cmV0dXJuITF9YXN5bmMgcGFyc2Uocyl7aWYodGhpcy5zb3VyY2VNYXApdGhyb3cgbmV3IFB3KCJ5YW1sLTEtMi1zd2FnZ2VyLWNsaWVudCBwYXJzZXIgcGx1Z2luIGRvZXNuJ3Qgc3VwcG9ydCBzb3VyY2VNYXBzIG9wdGlvbiIpO2NvbnN0IG89bmV3IEN1LGk9cy50b1N0cmluZygpO3RyeXtjb25zdCBzPWZuLmxvYWQoaSx7c2NoZW1hOnJufSk7aWYodGhpcy5hbGxvd0VtcHR5JiZ2b2lkIDA9PT1zKXJldHVybiBvO2NvbnN0IGE9dHJhbnNmb3JtZXJzX2Zyb20ocyk7cmV0dXJuIGEuY2xhc3Nlcy5wdXNoKCJyZXN1bHQiKSxvLnB1c2goYSksb31jYXRjaChvKXt0aHJvdyBuZXcgUHcoYEVycm9yIHBhcnNpbmcgIiR7cy51cml9ImAse2NhdXNlOm99KX19fTtjb25zdCB6dz1jbGFzcyBPcGVuQVBJSlNPTjNfMVBhcnNlciBleHRlbmRzIEl3e2RldGVjdGlvblJlZ0V4cD0vIm9wZW5hcGkiXHMqOlxzKiIoPzx2ZXJzaW9uX2pzb24+M1wuMVwuKD86WzEtOV1cZCp8MCkpIi87Y29uc3RydWN0b3Iocz17fSl7c3VwZXIoe25hbWU6Im9wZW5hcGktanNvbi0zLTEtc3dhZ2dlci1jbGllbnQiLG1lZGlhVHlwZXM6bmV3IE9wZW5BUElNZWRpYVR5cGVzKC4uLm13LmZpbHRlckJ5Rm9ybWF0KCJnZW5lcmljIiksLi4ubXcuZmlsdGVyQnlGb3JtYXQoImpzb24iKSksLi4uc30pfWFzeW5jIGNhblBhcnNlKHMpe2NvbnN0IG89MD09PXRoaXMuZmlsZUV4dGVuc2lvbnMubGVuZ3RofHx0aGlzLmZpbGVFeHRlbnNpb25zLmluY2x1ZGVzKHMuZXh0ZW5zaW9uKSxpPXRoaXMubWVkaWFUeXBlcy5pbmNsdWRlcyhzLm1lZGlhVHlwZSk7aWYoIW8pcmV0dXJuITE7aWYoaSlyZXR1cm4hMDtpZighaSl0cnl7Y29uc3Qgbz1zLnRvU3RyaW5nKCk7cmV0dXJuIEpTT04ucGFyc2UobyksdGhpcy5kZXRlY3Rpb25SZWdFeHAudGVzdChvKX1jYXRjaChzKXtyZXR1cm4hMX1yZXR1cm4hMX1hc3luYyBwYXJzZShzKXtpZih0aGlzLnNvdXJjZU1hcCl0aHJvdyBuZXcgUHcoIm9wZW5hcGktanNvbi0zLTEtc3dhZ2dlci1jbGllbnQgcGFyc2VyIHBsdWdpbiBkb2Vzbid0IHN1cHBvcnQgc291cmNlTWFwcyBvcHRpb24iKTtjb25zdCBvPW5ldyBDdSxpPXMudG9TdHJpbmcoKTtpZih0aGlzLmFsbG93RW1wdHkmJiIiPT09aS50cmltKCkpcmV0dXJuIG87dHJ5e2NvbnN0IHM9SlNPTi5wYXJzZShpKSxhPVBiLnJlZnJhY3Qocyx0aGlzLnJlZnJhY3Rvck9wdHMpO3JldHVybiBhLmNsYXNzZXMucHVzaCgicmVzdWx0Iiksby5wdXNoKGEpLG99Y2F0Y2gobyl7dGhyb3cgbmV3IFB3KGBFcnJvciBwYXJzaW5nICIke3MudXJpfSJgLHtjYXVzZTpvfSl9fX07Y29uc3QgV3c9Y2xhc3MgT3BlbkFQSVlBTUwzMVBhcnNlciBleHRlbmRzIEl3e2RldGVjdGlvblJlZ0V4cD0vKD88WUFNTD5eKFsiJ10/KW9wZW5hcGlcMlxzKjpccyooWyInXT8pKD88dmVyc2lvbl95YW1sPjNcLjFcLig/OlsxLTldXGQqfDApKVwzKD86XHMrfCQpKXwoPzxKU09OPiJvcGVuYXBpIlxzKjpccyoiKD88dmVyc2lvbl9qc29uPjNcLjFcLig/OlsxLTldXGQqfDApKSIpL207Y29uc3RydWN0b3Iocz17fSl7c3VwZXIoe25hbWU6Im9wZW5hcGkteWFtbC0zLTEtc3dhZ2dlci1jbGllbnQiLG1lZGlhVHlwZXM6bmV3IE9wZW5BUElNZWRpYVR5cGVzKC4uLm13LmZpbHRlckJ5Rm9ybWF0KCJnZW5lcmljIiksLi4ubXcuZmlsdGVyQnlGb3JtYXQoInlhbWwiKSksLi4uc30pfWFzeW5jIGNhblBhcnNlKHMpe2NvbnN0IG89MD09PXRoaXMuZmlsZUV4dGVuc2lvbnMubGVuZ3RofHx0aGlzLmZpbGVFeHRlbnNpb25zLmluY2x1ZGVzKHMuZXh0ZW5zaW9uKSxpPXRoaXMubWVkaWFUeXBlcy5pbmNsdWRlcyhzLm1lZGlhVHlwZSk7aWYoIW8pcmV0dXJuITE7aWYoaSlyZXR1cm4hMDtpZighaSl0cnl7Y29uc3Qgbz1zLnRvU3RyaW5nKCk7cmV0dXJuIGZuLmxvYWQobyksdGhpcy5kZXRlY3Rpb25SZWdFeHAudGVzdChvKX1jYXRjaChzKXtyZXR1cm4hMX1yZXR1cm4hMX1hc3luYyBwYXJzZShzKXtpZih0aGlzLnNvdXJjZU1hcCl0aHJvdyBuZXcgUHcoIm9wZW5hcGkteWFtbC0zLTEtc3dhZ2dlci1jbGllbnQgcGFyc2VyIHBsdWdpbiBkb2Vzbid0IHN1cHBvcnQgc291cmNlTWFwcyBvcHRpb24iKTtjb25zdCBvPW5ldyBDdSxpPXMudG9TdHJpbmcoKTt0cnl7Y29uc3Qgcz1mbi5sb2FkKGkse3NjaGVtYTpybn0pO2lmKHRoaXMuYWxsb3dFbXB0eSYmdm9pZCAwPT09cylyZXR1cm4gbztjb25zdCBhPVBiLnJlZnJhY3Qocyx0aGlzLnJlZnJhY3Rvck9wdHMpO3JldHVybiBhLmNsYXNzZXMucHVzaCgicmVzdWx0Iiksby5wdXNoKGEpLG99Y2F0Y2gobyl7dGhyb3cgbmV3IFB3KGBFcnJvciBwYXJzaW5nICIke3MudXJpfSJgLHtjYXVzZTpvfSl9fX07Y29uc3QgSnc9X2N1cnJ5MygoZnVuY3Rpb24gcHJvcEVxKHMsbyxpKXtyZXR1cm4gbmEocyxEYShvLGkpKX0pKTtjb25zdCBIdz1jbGFzcyBEZXJlZmVyZW5jZVN0cmF0ZWd5e25hbWU7Y29uc3RydWN0b3Ioe25hbWU6c30pe3RoaXMubmFtZT1zfX07Y29uc3QgS3c9X2N1cnJ5MigoZnVuY3Rpb24gbm9uZShzLG8pe3JldHVybiB4dShfY29tcGxlbWVudChzKSxvKX0pKTt2YXIgR3c9X193ZWJwYWNrX3JlcXVpcmVfXyg4MDY4KTtjb25zdCBZdz1jbGFzcyBFbGVtZW50SWRlbnRpdHlFcnJvciBleHRlbmRzIEdve3ZhbHVlO2NvbnN0cnVjdG9yKHMsbyl7c3VwZXIocyxvKSx2b2lkIDAhPT1vJiYodGhpcy52YWx1ZT1vLnZhbHVlKX19O2NsYXNzIElkZW50aXR5TWFuYWdlcnt1dWlkO2lkZW50aXR5TWFwO2NvbnN0cnVjdG9yKHtsZW5ndGg6cz02fT17fSl7dGhpcy51dWlkPW5ldyBHdyh7bGVuZ3RoOnN9KSx0aGlzLmlkZW50aXR5TWFwPW5ldyBXZWFrTWFwfWlkZW50aWZ5KHMpe2lmKCFqdShzKSl0aHJvdyBuZXcgWXcoIkNhbm5vdCBub3QgaWRlbnRpZnkgdGhlIGVsZW1lbnQuIGBlbGVtZW50YCBpcyBuZWl0aGVyIHN0cnVjdHVyYWxseSBjb21wYXRpYmxlIG5vciBhIHN1YmNsYXNzIG9mIGFuIEVsZW1lbnQgY2xhc3MuIix7dmFsdWU6c30pO2lmKHMubWV0YS5oYXNLZXkoImlkIikmJlB1KHMubWV0YS5nZXQoImlkIikpJiYhcy5tZXRhLmdldCgiaWQiKS5lcXVhbHMoIiIpKXJldHVybiBzLmlkO2lmKHRoaXMuaWRlbnRpdHlNYXAuaGFzKHMpKXJldHVybiB0aGlzLmlkZW50aXR5TWFwLmdldChzKTtjb25zdCBvPW5ldyBTdS5PbSh0aGlzLmdlbmVyYXRlSWQoKSk7cmV0dXJuIHRoaXMuaWRlbnRpdHlNYXAuc2V0KHMsbyksb31mb3JnZXQocyl7cmV0dXJuISF0aGlzLmlkZW50aXR5TWFwLmhhcyhzKSYmKHRoaXMuaWRlbnRpdHlNYXAuZGVsZXRlKHMpLCEwKX1nZW5lcmF0ZUlkKCl7cmV0dXJuIHRoaXMudXVpZC5yYW5kb21VVUlEKCl9fW5ldyBJZGVudGl0eU1hbmFnZXI7Y29uc3QgWHc9X2N1cnJ5MygoZnVuY3Rpb24gcGF0aE9yKHMsbyxpKXtyZXR1cm4gTmEocyxfcGF0aChvLGkpKX0pKSx0cmF2ZXJzYWxfZmluZD0ocyxvKT0+e2NvbnN0IGk9bmV3IFByZWRpY2F0ZVZpc2l0b3Ioe3ByZWRpY2F0ZTpzLHJldHVybk9uVHJ1ZTpVdX0pO3JldHVybiB2aXNpdG9yX3Zpc2l0KG8saSksWHcodm9pZCAwLFswXSxpLnJlc3VsdCl9O2NvbnN0IFF3PWNsYXNzIEpzb25TY2hlbWEkYW5jaG9yRXJyb3IgZXh0ZW5kcyBLb3t9O2NvbnN0IFp3PWNsYXNzIEV2YWx1YXRpb25Kc29uU2NoZW1hJGFuY2hvckVycm9yIGV4dGVuZHMgUXd7fTtjb25zdCBleD1jbGFzcyBJbnZhbGlkSnNvblNjaGVtYSRhbmNob3JFcnJvciBleHRlbmRzIFF3e2NvbnN0cnVjdG9yKHMpe3N1cGVyKGBJbnZhbGlkIEpTT04gU2NoZW1hICRhbmNob3IgIiR7c30iLmApfX0saXNBbmNob3I9cz0+L15bQS1aYS16X11bQS1aYS16XzAtOS4tXSokLy50ZXN0KHMpLHVyaVRvQW5jaG9yPXM9Pntjb25zdCBvPWdldEhhc2gocyk7cmV0dXJuIGRkKCIjIixvKX0sJGFuY2hvcl9ldmFsdWF0ZT0ocyxvKT0+e2NvbnN0IGk9KHM9PntpZighaXNBbmNob3IocykpdGhyb3cgbmV3IGV4KHMpO3JldHVybiBzfSkocyksYT10cmF2ZXJzYWxfZmluZCgocz0+cEUocykmJnNlcmlhbGl6ZXJzX3ZhbHVlKHMuJGFuY2hvcik9PT1pKSxvKTtpZihiYyhhKSl0aHJvdyBuZXcgWncoYEV2YWx1YXRpb24gZmFpbGVkIG9uIHRva2VuOiAiJHtpfSJgKTtyZXR1cm4gYX0sdHJhdmVyc2FsX2ZpbHRlcj0ocyxvKT0+e2NvbnN0IGk9bmV3IFByZWRpY2F0ZVZpc2l0b3Ioe3ByZWRpY2F0ZTpzfSk7cmV0dXJuIHZpc2l0b3JfdmlzaXQobyxpKSxuZXcgU3UuRzYoaS5yZXN1bHQpfTtjb25zdCB0eD1jbGFzcyBKc29uU2NoZW1hVXJpRXJyb3IgZXh0ZW5kcyBLb3t9O2NvbnN0IHJ4PWNsYXNzIEV2YWx1YXRpb25Kc29uU2NoZW1hVXJpRXJyb3IgZXh0ZW5kcyB0eHt9LHJlc29sdmVTY2hlbWEkcmVmRmllbGQ9KHMsbyk9PntpZih2b2lkIDA9PT1vLiRyZWYpcmV0dXJuO2NvbnN0IGk9Z2V0SGFzaChzZXJpYWxpemVyc192YWx1ZShvLiRyZWYpKSxhPXNlcmlhbGl6ZXJzX3ZhbHVlKG8ubWV0YS5nZXQoImFuY2VzdG9yc1NjaGVtYUlkZW50aWZpZXJzIikpLHU9Q2EoKChzLG8pPT5yZXNvbHZlKHMsc2FuaXRpemUoc3RyaXBIYXNoKG8pKSkpLHMsWy4uLmEsc2VyaWFsaXplcnNfdmFsdWUoby4kcmVmKV0pO3JldHVybmAke3V9JHsiIyI9PT1pPyIiOml9YH0scmVmcmFjdFRvU2NoZW1hRWxlbWVudD1zPT57aWYocmVmcmFjdFRvU2NoZW1hRWxlbWVudC5jYWNoZS5oYXMocykpcmV0dXJuIHJlZnJhY3RUb1NjaGVtYUVsZW1lbnQuY2FjaGUuZ2V0KHMpO2NvbnN0IG89dVMucmVmcmFjdChzKTtyZXR1cm4gcmVmcmFjdFRvU2NoZW1hRWxlbWVudC5jYWNoZS5zZXQocyxvKSxvfTtyZWZyYWN0VG9TY2hlbWFFbGVtZW50LmNhY2hlPW5ldyBXZWFrTWFwO2NvbnN0IG1heWJlUmVmcmFjdFRvU2NoZW1hRWxlbWVudD1zPT5pc1ByaW1pdGl2ZUVsZW1lbnQocyk/cmVmcmFjdFRvU2NoZW1hRWxlbWVudChzKTpzLHVyaV9ldmFsdWF0ZT0ocyxvKT0+e2NvbnN0e2NhY2hlOml9PXVyaV9ldmFsdWF0ZSxhPXN0cmlwSGFzaChzKSxpc1NjaGVtYUVsZW1lbnRXaXRoJGlkPXM9PnBFKHMpJiZ2b2lkIDAhPT1zLiRpZDtpZighaS5oYXMobykpe2NvbnN0IHM9dHJhdmVyc2FsX2ZpbHRlcihpc1NjaGVtYUVsZW1lbnRXaXRoJGlkLG8pO2kuc2V0KG8sQXJyYXkuZnJvbShzKSl9Y29uc3QgdT1pLmdldChvKS5maW5kKChzPT57Y29uc3Qgbz0oKHMsbyk9PntpZih2b2lkIDA9PT1vLiRpZClyZXR1cm47Y29uc3QgaT1zZXJpYWxpemVyc192YWx1ZShvLm1ldGEuZ2V0KCJhbmNlc3RvcnNTY2hlbWFJZGVudGlmaWVycyIpKTtyZXR1cm4gQ2EoKChzLG8pPT5yZXNvbHZlKHMsc2FuaXRpemUoc3RyaXBIYXNoKG8pKSkpLHMsaSl9KShhLHMpO3JldHVybiBvPT09YX0pKTtpZihiYyh1KSl0aHJvdyBuZXcgcngoYEV2YWx1YXRpb24gZmFpbGVkIG9uIFVSSTogIiR7c30iYCk7cmV0dXJuIGlzQW5jaG9yKHVyaVRvQW5jaG9yKHMpKT8kYW5jaG9yX2V2YWx1YXRlKHVyaVRvQW5jaG9yKHMpLHUpOmFwaWRvbV9ldmFsdWF0ZSh1LGZyb21VUklSZWZlcmVuY2UocykpfTt1cmlfZXZhbHVhdGUuY2FjaGU9bmV3IFdlYWtNYXA7Y29uc3Qgbng9Y2xhc3MgTWF4aW11bURlcmVmZXJlbmNlRGVwdGhFcnJvciBleHRlbmRzIEN3e307Y29uc3Qgc3g9Y2xhc3MgTWF4aW11bVJlc29sdmVEZXB0aEVycm9yIGV4dGVuZHMgTHd7fTtjb25zdCBveD1jbGFzcyBVbm1hdGNoZWRSZXNvbHZlckVycm9yIGV4dGVuZHMgRnd7fSxhcGlkb21fcmVmZXJlbmNlX3NyY19wYXJzZT1hc3luYyhzLG8pPT57Y29uc3QgaT1uZXcga3coe3VyaTpzYW5pdGl6ZShzdHJpcEhhc2gocykpLG1lZGlhVHlwZTpvLnBhcnNlLm1lZGlhVHlwZX0pLGE9YXdhaXQoYXN5bmMocyxvKT0+e2NvbnN0IGk9by5yZXNvbHZlLnJlc29sdmVycy5tYXAoKHM9Pntjb25zdCBpPU9iamVjdC5jcmVhdGUocyk7cmV0dXJuIE9iamVjdC5hc3NpZ24oaSxvLnJlc29sdmUucmVzb2x2ZXJPcHRzKX0pKSxhPWF3YWl0IHBsdWdpbnNfZmlsdGVyKCJjYW5SZWFkIixbcyxvXSxpKTtpZihjcChhKSl0aHJvdyBuZXcgb3gocy51cmkpO3RyeXtjb25zdHtyZXN1bHQ6b309YXdhaXQgcnVuKCJyZWFkIixbc10sYSk7cmV0dXJuIG99Y2F0Y2gobyl7dGhyb3cgbmV3IEx3KGBFcnJvciB3aGlsZSByZWFkaW5nIGZpbGUgIiR7cy51cml9ImAse2NhdXNlOm99KX19KShpLG8pO3JldHVybihhc3luYyhzLG8pPT57Y29uc3QgaT1vLnBhcnNlLnBhcnNlcnMubWFwKChzPT57Y29uc3QgaT1PYmplY3QuY3JlYXRlKHMpO3JldHVybiBPYmplY3QuYXNzaWduKGksby5wYXJzZS5wYXJzZXJPcHRzKX0pKSxhPWF3YWl0IHBsdWdpbnNfZmlsdGVyKCJjYW5QYXJzZSIsW3Msb10saSk7aWYoY3AoYSkpdGhyb3cgbmV3IG94KHMudXJpKTt0cnl7Y29uc3R7cGx1Z2luOmkscmVzdWx0OnV9PWF3YWl0IHJ1bigicGFyc2UiLFtzLG9dLGEpO3JldHVybiFpLmFsbG93RW1wdHkmJnUuaXNFbXB0eT9Qcm9taXNlLnJlamVjdChuZXcgancoYEVycm9yIHdoaWxlIHBhcnNpbmcgZmlsZSAiJHtzLnVyaX0iLiBGaWxlIGlzIGVtcHR5LmApKTp1fWNhdGNoKG8pe3Rocm93IG5ldyBqdyhgRXJyb3Igd2hpbGUgcGFyc2luZyBmaWxlICIke3MudXJpfSJgLHtjYXVzZTpvfSl9fSkobmV3IGt3KHsuLi5pLGRhdGE6YX0pLG8pfTtjbGFzcyBBbmNlc3RvckxpbmVhZ2UgZXh0ZW5kcyBBcnJheXtpbmNsdWRlc0N5Y2xlKHMpe3JldHVybiB0aGlzLmZpbHRlcigobz0+by5oYXMocykpKS5sZW5ndGg+MX1pbmNsdWRlcyhzLG8pe3JldHVybiBzIGluc3RhbmNlb2YgU2V0P3N1cGVyLmluY2x1ZGVzKHMsbyk6dGhpcy5zb21lKChvPT5vLmhhcyhzKSkpfWZpbmRJdGVtKHMpe2Zvcihjb25zdCBvIG9mIHRoaXMpZm9yKGNvbnN0IGkgb2YgbylpZihqdShpKSYmcyhpKSlyZXR1cm4gaX19Y29uc3QgaXg9dmlzaXRvcl92aXNpdFtTeW1ib2wuZm9yKCJub2RlanMudXRpbC5wcm9taXNpZnkuY3VzdG9tIildLGF4PW5ldyBJZGVudGl0eU1hbmFnZXIsbXV0YXRpb25SZXBsYWNlcj0ocyxvLGksYSk9PntEdShhKT9hLnZhbHVlPXM6QXJyYXkuaXNBcnJheShhKSYmKGFbaV09cyl9O2NsYXNzIE9wZW5BUEkzXzFEZXJlZmVyZW5jZVZpc2l0b3J7aW5kaXJlY3Rpb25zO25hbWVzcGFjZTtyZWZlcmVuY2U7b3B0aW9uczthbmNlc3RvcnM7cmVmcmFjdENhY2hlO2NvbnN0cnVjdG9yKHtyZWZlcmVuY2U6cyxuYW1lc3BhY2U6byxvcHRpb25zOmksaW5kaXJlY3Rpb25zOmE9W10sYW5jZXN0b3JzOnU9bmV3IEFuY2VzdG9yTGluZWFnZSxyZWZyYWN0Q2FjaGU6Xz1uZXcgTWFwfSl7dGhpcy5pbmRpcmVjdGlvbnM9YSx0aGlzLm5hbWVzcGFjZT1vLHRoaXMucmVmZXJlbmNlPXMsdGhpcy5vcHRpb25zPWksdGhpcy5hbmNlc3RvcnM9bmV3IEFuY2VzdG9yTGluZWFnZSguLi51KSx0aGlzLnJlZnJhY3RDYWNoZT1ffXRvQmFzZVVSSShzKXtyZXR1cm4gcmVzb2x2ZSh0aGlzLnJlZmVyZW5jZS51cmksc2FuaXRpemUoc3RyaXBIYXNoKHMpKSl9YXN5bmMgdG9SZWZlcmVuY2Uocyl7aWYodGhpcy5yZWZlcmVuY2UuZGVwdGg+PXRoaXMub3B0aW9ucy5yZXNvbHZlLm1heERlcHRoKXRocm93IG5ldyBzeChgTWF4aW11bSByZXNvbHV0aW9uIGRlcHRoIG9mICR7dGhpcy5vcHRpb25zLnJlc29sdmUubWF4RGVwdGh9IGhhcyBiZWVuIGV4Y2VlZGVkIGJ5IGZpbGUgIiR7dGhpcy5yZWZlcmVuY2UudXJpfSJgKTtjb25zdCBvPXRoaXMudG9CYXNlVVJJKHMpLHtyZWZTZXQ6aX09dGhpcy5yZWZlcmVuY2U7aWYoaS5oYXMobykpcmV0dXJuIGkuZmluZChKdyhvLCJ1cmkiKSk7Y29uc3QgYT1hd2FpdCBhcGlkb21fcmVmZXJlbmNlX3NyY19wYXJzZSh1bnNhbml0aXplKG8pLHsuLi50aGlzLm9wdGlvbnMscGFyc2U6ey4uLnRoaXMub3B0aW9ucy5wYXJzZSxtZWRpYVR5cGU6InRleHQvcGxhaW4ifX0pLHU9bmV3IGd3KHt1cmk6byx2YWx1ZTpjbG9uZURlZXAoYSksZGVwdGg6dGhpcy5yZWZlcmVuY2UuZGVwdGgrMX0pO2lmKGkuYWRkKHUpLHRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5pbW11dGFibGUpe2NvbnN0IHM9bmV3IGd3KHt1cmk6YGltbXV0YWJsZTovLyR7b31gLHZhbHVlOmEsZGVwdGg6dGhpcy5yZWZlcmVuY2UuZGVwdGgrMX0pO2kuYWRkKHMpfXJldHVybiB1fXRvQW5jZXN0b3JMaW5lYWdlKHMpe2NvbnN0IG89bmV3IFNldChzLmZpbHRlcihqdSkpO3JldHVybltuZXcgQW5jZXN0b3JMaW5lYWdlKC4uLnRoaXMuYW5jZXN0b3JzLG8pLG9dfWFzeW5jIFJlZmVyZW5jZUVsZW1lbnQocyxvLGksYSx1LF8pe2lmKHRoaXMuaW5kaXJlY3Rpb25zLmluY2x1ZGVzKHMpKXJldHVybiExO2NvbnN0W3cseF09dGhpcy50b0FuY2VzdG9yTGluZWFnZShbLi4udSxpXSksQz10aGlzLnRvQmFzZVVSSShzZXJpYWxpemVyc192YWx1ZShzLiRyZWYpKSxqPXN0cmlwSGFzaCh0aGlzLnJlZmVyZW5jZS51cmkpPT09QyxMPSFqO2lmKCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5pbnRlcm5hbCYmailyZXR1cm4hMTtpZighdGhpcy5vcHRpb25zLnJlc29sdmUuZXh0ZXJuYWwmJkwpcmV0dXJuITE7Y29uc3QgQj1hd2FpdCB0aGlzLnRvUmVmZXJlbmNlKHNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZikpLCQ9cmVzb2x2ZShDLHNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZikpO3RoaXMuaW5kaXJlY3Rpb25zLnB1c2gocyk7Y29uc3QgVj1mcm9tVVJJUmVmZXJlbmNlKCQpO2xldCBVPWFwaWRvbV9ldmFsdWF0ZShCLnZhbHVlLnJlc3VsdCxWKTtpZihVLmlkPWF4LmlkZW50aWZ5KFUpLGlzUHJpbWl0aXZlRWxlbWVudChVKSl7Y29uc3Qgbz1zZXJpYWxpemVyc192YWx1ZShzLm1ldGEuZ2V0KCJyZWZlcmVuY2VkLWVsZW1lbnQiKSksaT1gJHtvfS0ke3NlcmlhbGl6ZXJzX3ZhbHVlKGF4LmlkZW50aWZ5KFUpKX1gO2lmKHRoaXMucmVmcmFjdENhY2hlLmhhcyhpKSlVPXRoaXMucmVmcmFjdENhY2hlLmdldChpKTtlbHNlIGlmKGlzUmVmZXJlbmNlTGlrZUVsZW1lbnQoVSkpVT1xYi5yZWZyYWN0KFUpLFUuc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLG8pLHRoaXMucmVmcmFjdENhY2hlLnNldChpLFUpO2Vsc2V7VT10aGlzLm5hbWVzcGFjZS5nZXRFbGVtZW50Q2xhc3MobykucmVmcmFjdChVKSx0aGlzLnJlZnJhY3RDYWNoZS5zZXQoaSxVKX19aWYocz09PVUpdGhyb3cgbmV3IEtvKCJSZWN1cnNpdmUgUmVmZXJlbmNlIE9iamVjdCBkZXRlY3RlZCIpO2lmKHRoaXMuaW5kaXJlY3Rpb25zLmxlbmd0aD50aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UubWF4RGVwdGgpdGhyb3cgbmV3IG54KGBNYXhpbXVtIGRlcmVmZXJlbmNlIGRlcHRoIG9mICIke3RoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5tYXhEZXB0aH0iIGhhcyBiZWVuIGV4Y2VlZGVkIGluIGZpbGUgIiR7dGhpcy5yZWZlcmVuY2UudXJpfSJgKTtpZih3LmluY2x1ZGVzKFUpKXtpZihCLnJlZlNldC5jaXJjdWxhcj0hMCwiZXJyb3IiPT09dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLmNpcmN1bGFyKXRocm93IG5ldyBLbygiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIik7aWYoInJlcGxhY2UiPT09dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLmNpcmN1bGFyKXt2YXIgeixZO2NvbnN0IG89bmV3IFN1LnNJKFUuaWQse3R5cGU6InJlZmVyZW5jZSIsdXJpOkIudXJpLCRyZWY6c2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKX0pLGE9KG51bGwhPT0oej1udWxsPT09KFk9dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLnN0cmF0ZWd5T3B0c1sib3BlbmFwaS0zLTEiXSl8fHZvaWQgMD09PVk/dm9pZCAwOlkuY2lyY3VsYXJSZXBsYWNlcikmJnZvaWQgMCE9PXo/ejp0aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UuY2lyY3VsYXJSZXBsYWNlcikobyk7cmV0dXJuIF8ucmVwbGFjZVdpdGgoYSxtdXRhdGlvblJlcGxhY2VyKSwhaSYmYX19Y29uc3QgWj1zdHJpcEhhc2goQi5yZWZTZXQucm9vdFJlZi51cmkpIT09Qi51cmksZWU9WyJlcnJvciIsInJlcGxhY2UiXS5pbmNsdWRlcyh0aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UuY2lyY3VsYXIpO2lmKChMfHxafHxhRShVKXx8ZWUpJiYhdy5pbmNsdWRlc0N5Y2xlKFUpKXt4LmFkZChzKTtjb25zdCBvPW5ldyBPcGVuQVBJM18xRGVyZWZlcmVuY2VWaXNpdG9yKHtyZWZlcmVuY2U6QixuYW1lc3BhY2U6dGhpcy5uYW1lc3BhY2UsaW5kaXJlY3Rpb25zOlsuLi50aGlzLmluZGlyZWN0aW9uc10sb3B0aW9uczp0aGlzLm9wdGlvbnMscmVmcmFjdENhY2hlOnRoaXMucmVmcmFjdENhY2hlLGFuY2VzdG9yczp3fSk7VT1hd2FpdCBpeChVLG8se2tleU1hcDp1dyxub2RlVHlwZUdldHRlcjphcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3RyYXZlcnNhbF92aXNpdG9yX2dldE5vZGVUeXBlfSkseC5kZWxldGUocyl9dGhpcy5pbmRpcmVjdGlvbnMucG9wKCk7Y29uc3QgaWU9Y2xvbmVTaGFsbG93KFUpO3JldHVybiBpZS5zZXRNZXRhUHJvcGVydHkoImlkIixheC5nZW5lcmF0ZUlkKCkpLGllLnNldE1ldGFQcm9wZXJ0eSgicmVmLWZpZWxkcyIseyRyZWY6c2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKSxkZXNjcmlwdGlvbjpzZXJpYWxpemVyc192YWx1ZShzLmRlc2NyaXB0aW9uKSxzdW1tYXJ5OnNlcmlhbGl6ZXJzX3ZhbHVlKHMuc3VtbWFyeSl9KSxpZS5zZXRNZXRhUHJvcGVydHkoInJlZi1vcmlnaW4iLEIudXJpKSxpZS5zZXRNZXRhUHJvcGVydHkoInJlZi1yZWZlcmVuY2luZy1lbGVtZW50LWlkIixjbG9uZURlZXAoYXguaWRlbnRpZnkocykpKSxNdShVKSYmTXUoaWUpJiYocy5oYXNLZXkoImRlc2NyaXB0aW9uIikmJiJkZXNjcmlwdGlvbiJpbiBVJiYoaWUucmVtb3ZlKCJkZXNjcmlwdGlvbiIpLGllLnNldCgiZGVzY3JpcHRpb24iLHMuZ2V0KCJkZXNjcmlwdGlvbiIpKSkscy5oYXNLZXkoInN1bW1hcnkiKSYmInN1bW1hcnkiaW4gVSYmKGllLnJlbW92ZSgic3VtbWFyeSIpLGllLnNldCgic3VtbWFyeSIscy5nZXQoInN1bW1hcnkiKSkpKSxfLnJlcGxhY2VXaXRoKGllLG11dGF0aW9uUmVwbGFjZXIpLCFpJiZpZX1hc3luYyBQYXRoSXRlbUVsZW1lbnQocyxvLGksYSx1LF8pe2lmKCFQdShzLiRyZWYpKXJldHVybjtpZih0aGlzLmluZGlyZWN0aW9ucy5pbmNsdWRlcyhzKSlyZXR1cm4hMTtjb25zdFt3LHhdPXRoaXMudG9BbmNlc3RvckxpbmVhZ2UoWy4uLnUsaV0pLEM9dGhpcy50b0Jhc2VVUkkoc2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKSksaj1zdHJpcEhhc2godGhpcy5yZWZlcmVuY2UudXJpKT09PUMsTD0hajtpZighdGhpcy5vcHRpb25zLnJlc29sdmUuaW50ZXJuYWwmJmopcmV0dXJuO2lmKCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5leHRlcm5hbCYmTClyZXR1cm47Y29uc3QgQj1hd2FpdCB0aGlzLnRvUmVmZXJlbmNlKHNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZikpLCQ9cmVzb2x2ZShDLHNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZikpO3RoaXMuaW5kaXJlY3Rpb25zLnB1c2gocyk7Y29uc3QgVj1mcm9tVVJJUmVmZXJlbmNlKCQpO2xldCBVPWFwaWRvbV9ldmFsdWF0ZShCLnZhbHVlLnJlc3VsdCxWKTtpZihVLmlkPWF4LmlkZW50aWZ5KFUpLGlzUHJpbWl0aXZlRWxlbWVudChVKSl7Y29uc3Qgcz1gcGF0aC1pdGVtLSR7c2VyaWFsaXplcnNfdmFsdWUoYXguaWRlbnRpZnkoVSkpfWA7dGhpcy5yZWZyYWN0Q2FjaGUuaGFzKHMpP1U9dGhpcy5yZWZyYWN0Q2FjaGUuZ2V0KHMpOihVPVJiLnJlZnJhY3QoVSksdGhpcy5yZWZyYWN0Q2FjaGUuc2V0KHMsVSkpfWlmKHM9PT1VKXRocm93IG5ldyBLbygiUmVjdXJzaXZlIFBhdGggSXRlbSBPYmplY3QgcmVmZXJlbmNlIGRldGVjdGVkIik7aWYodGhpcy5pbmRpcmVjdGlvbnMubGVuZ3RoPnRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5tYXhEZXB0aCl0aHJvdyBuZXcgbngoYE1heGltdW0gZGVyZWZlcmVuY2UgZGVwdGggb2YgIiR7dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLm1heERlcHRofSIgaGFzIGJlZW4gZXhjZWVkZWQgaW4gZmlsZSAiJHt0aGlzLnJlZmVyZW5jZS51cml9ImApO2lmKHcuaW5jbHVkZXMoVSkpe2lmKEIucmVmU2V0LmNpcmN1bGFyPSEwLCJlcnJvciI9PT10aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UuY2lyY3VsYXIpdGhyb3cgbmV3IEtvKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQiKTtpZigicmVwbGFjZSI9PT10aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UuY2lyY3VsYXIpe3ZhciB6LFk7Y29uc3Qgbz1uZXcgU3Uuc0koVS5pZCx7dHlwZToicGF0aC1pdGVtIix1cmk6Qi51cmksJHJlZjpzZXJpYWxpemVyc192YWx1ZShzLiRyZWYpfSksYT0obnVsbCE9PSh6PW51bGw9PT0oWT10aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2Uuc3RyYXRlZ3lPcHRzWyJvcGVuYXBpLTMtMSJdKXx8dm9pZCAwPT09WT92b2lkIDA6WS5jaXJjdWxhclJlcGxhY2VyKSYmdm9pZCAwIT09ej96OnRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5jaXJjdWxhclJlcGxhY2VyKShvKTtyZXR1cm4gXy5yZXBsYWNlV2l0aChhLG11dGF0aW9uUmVwbGFjZXIpLCFpJiZhfX1jb25zdCBaPXN0cmlwSGFzaChCLnJlZlNldC5yb290UmVmLnVyaSkhPT1CLnVyaSxlZT1bImVycm9yIiwicmVwbGFjZSJdLmluY2x1ZGVzKHRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5jaXJjdWxhcik7aWYoKEx8fFp8fG9FKFUpJiZQdShVLiRyZWYpfHxlZSkmJiF3LmluY2x1ZGVzQ3ljbGUoVSkpe3guYWRkKHMpO2NvbnN0IG89bmV3IE9wZW5BUEkzXzFEZXJlZmVyZW5jZVZpc2l0b3Ioe3JlZmVyZW5jZTpCLG5hbWVzcGFjZTp0aGlzLm5hbWVzcGFjZSxpbmRpcmVjdGlvbnM6Wy4uLnRoaXMuaW5kaXJlY3Rpb25zXSxvcHRpb25zOnRoaXMub3B0aW9ucyxyZWZyYWN0Q2FjaGU6dGhpcy5yZWZyYWN0Q2FjaGUsYW5jZXN0b3JzOnd9KTtVPWF3YWl0IGl4KFUsbyx7a2V5TWFwOnV3LG5vZGVUeXBlR2V0dGVyOmFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfdHJhdmVyc2FsX3Zpc2l0b3JfZ2V0Tm9kZVR5cGV9KSx4LmRlbGV0ZShzKX1pZih0aGlzLmluZGlyZWN0aW9ucy5wb3AoKSxvRShVKSl7Y29uc3Qgbz1uZXcgUmIoWy4uLlUuY29udGVudF0sY2xvbmVEZWVwKFUubWV0YSksY2xvbmVEZWVwKFUuYXR0cmlidXRlcykpO28uc2V0TWV0YVByb3BlcnR5KCJpZCIsYXguZ2VuZXJhdGVJZCgpKSxzLmZvckVhY2goKChzLGksYSk9PntvLnJlbW92ZShzZXJpYWxpemVyc192YWx1ZShpKSksby5jb250ZW50LnB1c2goYSl9KSksby5yZW1vdmUoIiRyZWYiKSxvLnNldE1ldGFQcm9wZXJ0eSgicmVmLWZpZWxkcyIseyRyZWY6c2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKX0pLG8uc2V0TWV0YVByb3BlcnR5KCJyZWYtb3JpZ2luIixCLnVyaSksby5zZXRNZXRhUHJvcGVydHkoInJlZi1yZWZlcmVuY2luZy1lbGVtZW50LWlkIixjbG9uZURlZXAoYXguaWRlbnRpZnkocykpKSxVPW99cmV0dXJuIF8ucmVwbGFjZVdpdGgoVSxtdXRhdGlvblJlcGxhY2VyKSxpP3ZvaWQgMDpVfWFzeW5jIExpbmtFbGVtZW50KHMsbyxpLGEsdSxfKXtpZighUHUocy5vcGVyYXRpb25SZWYpJiYhUHUocy5vcGVyYXRpb25JZCkpcmV0dXJuO2lmKFB1KHMub3BlcmF0aW9uUmVmKSYmUHUocy5vcGVyYXRpb25JZCkpdGhyb3cgbmV3IEtvKCJMaW5rRWxlbWVudCBvcGVyYXRpb25SZWYgYW5kIG9wZXJhdGlvbklkIGZpZWxkcyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiIpO2xldCB3O2lmKFB1KHMub3BlcmF0aW9uUmVmKSl7dmFyIHg7Y29uc3Qgbz1mcm9tVVJJUmVmZXJlbmNlKHNlcmlhbGl6ZXJzX3ZhbHVlKHMub3BlcmF0aW9uUmVmKSksYT10aGlzLnRvQmFzZVVSSShzZXJpYWxpemVyc192YWx1ZShzLm9wZXJhdGlvblJlZikpLHU9c3RyaXBIYXNoKHRoaXMucmVmZXJlbmNlLnVyaSk9PT1hLEM9IXU7aWYoIXRoaXMub3B0aW9ucy5yZXNvbHZlLmludGVybmFsJiZ1KXJldHVybjtpZighdGhpcy5vcHRpb25zLnJlc29sdmUuZXh0ZXJuYWwmJkMpcmV0dXJuO2NvbnN0IGo9YXdhaXQgdGhpcy50b1JlZmVyZW5jZShzZXJpYWxpemVyc192YWx1ZShzLm9wZXJhdGlvblJlZikpO2lmKHc9YXBpZG9tX2V2YWx1YXRlKGoudmFsdWUucmVzdWx0LG8pLGlzUHJpbWl0aXZlRWxlbWVudCh3KSl7Y29uc3Qgcz1gb3BlcmF0aW9uLSR7c2VyaWFsaXplcnNfdmFsdWUoYXguaWRlbnRpZnkodykpfWA7dGhpcy5yZWZyYWN0Q2FjaGUuaGFzKHMpP3c9dGhpcy5yZWZyYWN0Q2FjaGUuZ2V0KHMpOih3PUliLnJlZnJhY3QodyksdGhpcy5yZWZyYWN0Q2FjaGUuc2V0KHMsdykpfXc9Y2xvbmVTaGFsbG93KHcpLHcuc2V0TWV0YVByb3BlcnR5KCJyZWYtb3JpZ2luIixqLnVyaSk7Y29uc3QgTD1jbG9uZVNoYWxsb3cocyk7cmV0dXJuIG51bGw9PT0oeD1MLm9wZXJhdGlvblJlZil8fHZvaWQgMD09PXh8fHgubWV0YS5zZXQoIm9wZXJhdGlvbiIsdyksXy5yZXBsYWNlV2l0aChMLG11dGF0aW9uUmVwbGFjZXIpLGk/dm9pZCAwOkx9aWYoUHUocy5vcGVyYXRpb25JZCkpe3ZhciBDO2NvbnN0IG89c2VyaWFsaXplcnNfdmFsdWUocy5vcGVyYXRpb25JZCksYT1hd2FpdCB0aGlzLnRvUmVmZXJlbmNlKHVuc2FuaXRpemUodGhpcy5yZWZlcmVuY2UudXJpKSk7aWYodz10cmF2ZXJzYWxfZmluZCgocz0+bkUocykmJmp1KHMub3BlcmF0aW9uSWQpJiZzLm9wZXJhdGlvbklkLmVxdWFscyhvKSksYS52YWx1ZS5yZXN1bHQpLGJjKHcpKXRocm93IG5ldyBLbyhgT3BlcmF0aW9uRWxlbWVudChvcGVyYXRpb25JZD0ke299KSBub3QgZm91bmQuYCk7Y29uc3QgdT1jbG9uZVNoYWxsb3cocyk7cmV0dXJuIG51bGw9PT0oQz11Lm9wZXJhdGlvbklkKXx8dm9pZCAwPT09Q3x8Qy5tZXRhLnNldCgib3BlcmF0aW9uIix3KSxfLnJlcGxhY2VXaXRoKHUsbXV0YXRpb25SZXBsYWNlciksaT92b2lkIDA6dX19YXN5bmMgRXhhbXBsZUVsZW1lbnQocyxvLGksYSx1LF8pe2lmKCFQdShzLmV4dGVybmFsVmFsdWUpKXJldHVybjtpZihzLmhhc0tleSgidmFsdWUiKSYmUHUocy5leHRlcm5hbFZhbHVlKSl0aHJvdyBuZXcgS28oIkV4YW1wbGVFbGVtZW50IHZhbHVlIGFuZCBleHRlcm5hbFZhbHVlIGZpZWxkcyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiIpO2NvbnN0IHc9dGhpcy50b0Jhc2VVUkkoc2VyaWFsaXplcnNfdmFsdWUocy5leHRlcm5hbFZhbHVlKSkseD1zdHJpcEhhc2godGhpcy5yZWZlcmVuY2UudXJpKT09PXcsQz0heDtpZighdGhpcy5vcHRpb25zLnJlc29sdmUuaW50ZXJuYWwmJngpcmV0dXJuO2lmKCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5leHRlcm5hbCYmQylyZXR1cm47Y29uc3Qgaj1hd2FpdCB0aGlzLnRvUmVmZXJlbmNlKHNlcmlhbGl6ZXJzX3ZhbHVlKHMuZXh0ZXJuYWxWYWx1ZSkpLEw9Y2xvbmVTaGFsbG93KGoudmFsdWUucmVzdWx0KTtMLnNldE1ldGFQcm9wZXJ0eSgicmVmLW9yaWdpbiIsai51cmkpO2NvbnN0IEI9Y2xvbmVTaGFsbG93KHMpO3JldHVybiBCLnZhbHVlPUwsXy5yZXBsYWNlV2l0aChCLG11dGF0aW9uUmVwbGFjZXIpLGk/dm9pZCAwOkJ9YXN5bmMgU2NoZW1hRWxlbWVudChzLG8saSxhLHUsXyl7aWYoIVB1KHMuJHJlZikpcmV0dXJuO2lmKHRoaXMuaW5kaXJlY3Rpb25zLmluY2x1ZGVzKHMpKXJldHVybiExO2NvbnN0W3cseF09dGhpcy50b0FuY2VzdG9yTGluZWFnZShbLi4udSxpXSk7bGV0IEM9YXdhaXQgdGhpcy50b1JlZmVyZW5jZSh1bnNhbml0aXplKHRoaXMucmVmZXJlbmNlLnVyaSkpLHt1cmk6an09Qztjb25zdCBMPXJlc29sdmVTY2hlbWEkcmVmRmllbGQoaixzKSxCPXN0cmlwSGFzaChMKSwkPW5ldyBrdyh7dXJpOkJ9KSxWPUt3KChzPT5zLmNhblJlYWQoJCkpLHRoaXMub3B0aW9ucy5yZXNvbHZlLnJlc29sdmVycyksVT0hVjtsZXQgeixZPXN0cmlwSGFzaCh0aGlzLnJlZmVyZW5jZS51cmkpPT09TCxaPSFZO3RoaXMuaW5kaXJlY3Rpb25zLnB1c2gocyk7dHJ5e2lmKFZ8fFUpe2o9dGhpcy50b0Jhc2VVUkkoTCk7Y29uc3Qgcz1MLG89bWF5YmVSZWZyYWN0VG9TY2hlbWFFbGVtZW50KEMudmFsdWUucmVzdWx0KTtpZih6PXVyaV9ldmFsdWF0ZShzLG8pLHo9bWF5YmVSZWZyYWN0VG9TY2hlbWFFbGVtZW50KHopLHouaWQ9YXguaWRlbnRpZnkoeiksIXRoaXMub3B0aW9ucy5yZXNvbHZlLmludGVybmFsJiZZKXJldHVybjtpZighdGhpcy5vcHRpb25zLnJlc29sdmUuZXh0ZXJuYWwmJlopcmV0dXJufWVsc2V7aWYoaj10aGlzLnRvQmFzZVVSSShMKSxZPXN0cmlwSGFzaCh0aGlzLnJlZmVyZW5jZS51cmkpPT09aixaPSFZLCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5pbnRlcm5hbCYmWSlyZXR1cm47aWYoIXRoaXMub3B0aW9ucy5yZXNvbHZlLmV4dGVybmFsJiZaKXJldHVybjtDPWF3YWl0IHRoaXMudG9SZWZlcmVuY2UodW5zYW5pdGl6ZShMKSk7Y29uc3Qgcz1mcm9tVVJJUmVmZXJlbmNlKEwpLG89bWF5YmVSZWZyYWN0VG9TY2hlbWFFbGVtZW50KEMudmFsdWUucmVzdWx0KTt6PWFwaWRvbV9ldmFsdWF0ZShvLHMpLHo9bWF5YmVSZWZyYWN0VG9TY2hlbWFFbGVtZW50KHopLHouaWQ9YXguaWRlbnRpZnkoeil9fWNhdGNoKHMpe2lmKCEoVSYmcyBpbnN0YW5jZW9mIHJ4KSl0aHJvdyBzO2lmKGlzQW5jaG9yKHVyaVRvQW5jaG9yKEwpKSl7aWYoWT1zdHJpcEhhc2godGhpcy5yZWZlcmVuY2UudXJpKT09PWosWj0hWSwhdGhpcy5vcHRpb25zLnJlc29sdmUuaW50ZXJuYWwmJlkpcmV0dXJuO2lmKCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5leHRlcm5hbCYmWilyZXR1cm47Qz1hd2FpdCB0aGlzLnRvUmVmZXJlbmNlKHVuc2FuaXRpemUoTCkpO2NvbnN0IHM9dXJpVG9BbmNob3IoTCksbz1tYXliZVJlZnJhY3RUb1NjaGVtYUVsZW1lbnQoQy52YWx1ZS5yZXN1bHQpO3o9JGFuY2hvcl9ldmFsdWF0ZShzLG8pLHo9bWF5YmVSZWZyYWN0VG9TY2hlbWFFbGVtZW50KHopLHouaWQ9YXguaWRlbnRpZnkoeil9ZWxzZXtpZihqPXRoaXMudG9CYXNlVVJJKEwpLFk9c3RyaXBIYXNoKHRoaXMucmVmZXJlbmNlLnVyaSk9PT1qLFo9IVksIXRoaXMub3B0aW9ucy5yZXNvbHZlLmludGVybmFsJiZZKXJldHVybjtpZighdGhpcy5vcHRpb25zLnJlc29sdmUuZXh0ZXJuYWwmJlopcmV0dXJuO0M9YXdhaXQgdGhpcy50b1JlZmVyZW5jZSh1bnNhbml0aXplKEwpKTtjb25zdCBzPWZyb21VUklSZWZlcmVuY2UoTCksbz1tYXliZVJlZnJhY3RUb1NjaGVtYUVsZW1lbnQoQy52YWx1ZS5yZXN1bHQpO3o9YXBpZG9tX2V2YWx1YXRlKG8scyksej1tYXliZVJlZnJhY3RUb1NjaGVtYUVsZW1lbnQoeiksei5pZD1heC5pZGVudGlmeSh6KX19aWYocz09PXopdGhyb3cgbmV3IEtvKCJSZWN1cnNpdmUgU2NoZW1hIE9iamVjdCByZWZlcmVuY2UgZGV0ZWN0ZWQiKTtpZih0aGlzLmluZGlyZWN0aW9ucy5sZW5ndGg+dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLm1heERlcHRoKXRocm93IG5ldyBueChgTWF4aW11bSBkZXJlZmVyZW5jZSBkZXB0aCBvZiAiJHt0aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UubWF4RGVwdGh9IiBoYXMgYmVlbiBleGNlZWRlZCBpbiBmaWxlICIke3RoaXMucmVmZXJlbmNlLnVyaX0iYCk7aWYody5pbmNsdWRlcyh6KSl7aWYoQy5yZWZTZXQuY2lyY3VsYXI9ITAsImVycm9yIj09PXRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5jaXJjdWxhcil0aHJvdyBuZXcgS28oIkNpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCIpO2lmKCJyZXBsYWNlIj09PXRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5jaXJjdWxhcil7dmFyIGVlLGllO2NvbnN0IG89bmV3IFN1LnNJKHouaWQse3R5cGU6Impzb24tc2NoZW1hIix1cmk6Qy51cmksJHJlZjpzZXJpYWxpemVyc192YWx1ZShzLiRyZWYpfSksYT0obnVsbCE9PShlZT1udWxsPT09KGllPXRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5zdHJhdGVneU9wdHNbIm9wZW5hcGktMy0xIl0pfHx2b2lkIDA9PT1pZT92b2lkIDA6aWUuY2lyY3VsYXJSZXBsYWNlcikmJnZvaWQgMCE9PWVlP2VlOnRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5jaXJjdWxhclJlcGxhY2VyKShvKTtyZXR1cm4gXy5yZXBsYWNlV2l0aChhLG11dGF0aW9uUmVwbGFjZXIpLCFpJiZhfX1jb25zdCBhZT1zdHJpcEhhc2goQy5yZWZTZXQucm9vdFJlZi51cmkpIT09Qy51cmksY2U9WyJlcnJvciIsInJlcGxhY2UiXS5pbmNsdWRlcyh0aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UuY2lyY3VsYXIpO2lmKChafHxhZXx8cEUoeikmJlB1KHouJHJlZil8fGNlKSYmIXcuaW5jbHVkZXNDeWNsZSh6KSl7eC5hZGQocyk7Y29uc3Qgbz1uZXcgT3BlbkFQSTNfMURlcmVmZXJlbmNlVmlzaXRvcih7cmVmZXJlbmNlOkMsbmFtZXNwYWNlOnRoaXMubmFtZXNwYWNlLGluZGlyZWN0aW9uczpbLi4udGhpcy5pbmRpcmVjdGlvbnNdLG9wdGlvbnM6dGhpcy5vcHRpb25zLHJlZnJhY3RDYWNoZTp0aGlzLnJlZnJhY3RDYWNoZSxhbmNlc3RvcnM6d30pO3o9YXdhaXQgaXgoeixvLHtrZXlNYXA6dXcsbm9kZVR5cGVHZXR0ZXI6YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY190cmF2ZXJzYWxfdmlzaXRvcl9nZXROb2RlVHlwZX0pLHguZGVsZXRlKHMpfWlmKHRoaXMuaW5kaXJlY3Rpb25zLnBvcCgpLHByZWRpY2F0ZXNfaXNCb29sZWFuSnNvblNjaGVtYUVsZW1lbnQoeikpe2NvbnN0IG89Y2xvbmVEZWVwKHopO3JldHVybiBvLnNldE1ldGFQcm9wZXJ0eSgiaWQiLGF4LmdlbmVyYXRlSWQoKSksby5zZXRNZXRhUHJvcGVydHkoInJlZi1maWVsZHMiLHskcmVmOnNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZil9KSxvLnNldE1ldGFQcm9wZXJ0eSgicmVmLW9yaWdpbiIsQy51cmkpLG8uc2V0TWV0YVByb3BlcnR5KCJyZWYtcmVmZXJlbmNpbmctZWxlbWVudC1pZCIsY2xvbmVEZWVwKGF4LmlkZW50aWZ5KHMpKSksXy5yZXBsYWNlV2l0aChvLG11dGF0aW9uUmVwbGFjZXIpLCFpJiZvfWlmKHBFKHopKXtjb25zdCBvPW5ldyB1UyhbLi4uei5jb250ZW50XSxjbG9uZURlZXAoei5tZXRhKSxjbG9uZURlZXAoei5hdHRyaWJ1dGVzKSk7by5zZXRNZXRhUHJvcGVydHkoImlkIixheC5nZW5lcmF0ZUlkKCkpLHMuZm9yRWFjaCgoKHMsaSxhKT0+e28ucmVtb3ZlKHNlcmlhbGl6ZXJzX3ZhbHVlKGkpKSxvLmNvbnRlbnQucHVzaChhKX0pKSxvLnJlbW92ZSgiJHJlZiIpLG8uc2V0TWV0YVByb3BlcnR5KCJyZWYtZmllbGRzIix7JHJlZjpzZXJpYWxpemVyc192YWx1ZShzLiRyZWYpfSksby5zZXRNZXRhUHJvcGVydHkoInJlZi1vcmlnaW4iLEMudXJpKSxvLnNldE1ldGFQcm9wZXJ0eSgicmVmLXJlZmVyZW5jaW5nLWVsZW1lbnQtaWQiLGNsb25lRGVlcChheC5pZGVudGlmeShzKSkpLHo9b31yZXR1cm4gXy5yZXBsYWNlV2l0aCh6LG11dGF0aW9uUmVwbGFjZXIpLGk/dm9pZCAwOnp9fWNvbnN0IGN4PU9wZW5BUEkzXzFEZXJlZmVyZW5jZVZpc2l0b3IsbHg9dmlzaXRvcl92aXNpdFtTeW1ib2wuZm9yKCJub2RlanMudXRpbC5wcm9taXNpZnkuY3VzdG9tIildO2NvbnN0IHV4PWNsYXNzIE9wZW5BUEkzXzFEZXJlZmVyZW5jZVN0cmF0ZWd5IGV4dGVuZHMgSHd7Y29uc3RydWN0b3Iocyl7c3VwZXIoey4uLm51bGwhPXM/czp7fSxuYW1lOiJvcGVuYXBpLTMtMSJ9KX1jYW5EZXJlZmVyZW5jZShzKXt2YXIgbztyZXR1cm4idGV4dC9wbGFpbiIhPT1zLm1lZGlhVHlwZT9tdy5pbmNsdWRlcyhzLm1lZGlhVHlwZSk6ckUobnVsbD09PShvPXMucGFyc2VSZXN1bHQpfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLnJlc3VsdCl9YXN5bmMgZGVyZWZlcmVuY2UocyxvKXt2YXIgaTtjb25zdCBhPWNyZWF0ZU5hbWVzcGFjZShodyksdT1udWxsIT09KGk9by5kZXJlZmVyZW5jZS5yZWZTZXQpJiZ2b2lkIDAhPT1pP2k6bmV3IHl3LF89bmV3IHl3O2xldCB3LHg9dTt1LmhhcyhzLnVyaSk/dz11LmZpbmQoSncocy51cmksInVyaSIpKToodz1uZXcgZ3coe3VyaTpzLnVyaSx2YWx1ZTpzLnBhcnNlUmVzdWx0fSksdS5hZGQodykpLG8uZGVyZWZlcmVuY2UuaW1tdXRhYmxlJiYodS5yZWZzLm1hcCgocz0+bmV3IGd3KHsuLi5zLHZhbHVlOmNsb25lRGVlcChzLnZhbHVlKX0pKSkuZm9yRWFjaCgocz0+Xy5hZGQocykpKSx3PV8uZmluZCgobz0+by51cmk9PT1zLnVyaSkpLHg9Xyk7Y29uc3QgQz1uZXcgY3goe3JlZmVyZW5jZTp3LG5hbWVzcGFjZTphLG9wdGlvbnM6b30pLGo9YXdhaXQgbHgoeC5yb290UmVmLnZhbHVlLEMse2tleU1hcDp1dyxub2RlVHlwZUdldHRlcjphcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3RyYXZlcnNhbF92aXNpdG9yX2dldE5vZGVUeXBlfSk7cmV0dXJuIG8uZGVyZWZlcmVuY2UuaW1tdXRhYmxlJiZfLnJlZnMuZmlsdGVyKChzPT5zLnVyaS5zdGFydHNXaXRoKCJpbW11dGFibGU6Ly8iKSkpLm1hcCgocz0+bmV3IGd3KHsuLi5zLHVyaTpzLnVyaS5yZXBsYWNlKC9eaW1tdXRhYmxlOlwvXC8vLCIiKX0pKSkuZm9yRWFjaCgocz0+dS5hZGQocykpKSxudWxsPT09by5kZXJlZmVyZW5jZS5yZWZTZXQmJnUuY2xlYW4oKSxfLmNsZWFuKCksan19LHRvX3BhdGg9cz0+e2NvbnN0IG89KHM9PnMuc2xpY2UoMikpKHMpO3JldHVybiBvLnJlZHVjZSgoKHMsaSxhKT0+e2lmKER1KGkpKXtjb25zdCBvPVN0cmluZyhzZXJpYWxpemVyc192YWx1ZShpLmtleSkpO3MucHVzaChvKX1lbHNlIGlmKFJ1KG9bYS0yXSkpe2NvbnN0IHU9b1thLTJdLmNvbnRlbnQuaW5kZXhPZihpKTtzLnB1c2godSl9cmV0dXJuIHN9KSxbXSl9O2NvbnN0IHB4PWNsYXNzIE1vZGVsUHJvcGVydHlNYWNyb1Zpc2l0b3J7bW9kZWxQcm9wZXJ0eU1hY3JvO29wdGlvbnM7U2NoZW1hRWxlbWVudD17bGVhdmU6KHMsbyxpLGEsdSk9Pnt2b2lkIDAhPT1zLnByb3BlcnRpZXMmJk11KHMucHJvcGVydGllcykmJnMucHJvcGVydGllcy5mb3JFYWNoKChvPT57aWYoTXUobykpdHJ5e2NvbnN0IHM9dGhpcy5tb2RlbFByb3BlcnR5TWFjcm8oc2VyaWFsaXplcnNfdmFsdWUobykpO28uc2V0KCJkZWZhdWx0IixzKX1jYXRjaChvKXt2YXIgYSxfO2NvbnN0IHc9bmV3IEVycm9yKG8se2NhdXNlOm99KTt3LmZ1bGxQYXRoPVsuLi50b19wYXRoKFsuLi51LGksc10pLCJwcm9wZXJ0aWVzIl0sbnVsbD09PShhPXRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5kZXJlZmVyZW5jZU9wdHMpfHx2b2lkIDA9PT1hfHxudWxsPT09KGE9YS5lcnJvcnMpfHx2b2lkIDA9PT1hfHxudWxsPT09KF89YS5wdXNoKXx8dm9pZCAwPT09X3x8Xy5jYWxsKGEsdyl9fSkpfX07Y29uc3RydWN0b3Ioe21vZGVsUHJvcGVydHlNYWNybzpzLG9wdGlvbnM6b30pe3RoaXMubW9kZWxQcm9wZXJ0eU1hY3JvPXMsdGhpcy5vcHRpb25zPW99fTt2YXIgaHg9ZnVuY3Rpb24oKXtmdW5jdGlvbiBYVW5pcVdpdGgocyxvKXt0aGlzLnhmPW8sdGhpcy5wcmVkPXMsdGhpcy5pdGVtcz1bXX1yZXR1cm4gWFVuaXFXaXRoLnByb3RvdHlwZVsiQEB0cmFuc2R1Y2VyL2luaXQiXT1feGZCYXNlX2luaXQsWFVuaXFXaXRoLnByb3RvdHlwZVsiQEB0cmFuc2R1Y2VyL3Jlc3VsdCJdPV94ZkJhc2VfcmVzdWx0LFhVbmlxV2l0aC5wcm90b3R5cGVbIkBAdHJhbnNkdWNlci9zdGVwIl09ZnVuY3Rpb24ocyxvKXtyZXR1cm4gX2luY2x1ZGVzV2l0aCh0aGlzLnByZWQsbyx0aGlzLml0ZW1zKT9zOih0aGlzLml0ZW1zLnB1c2gobyksdGhpcy54ZlsiQEB0cmFuc2R1Y2VyL3N0ZXAiXShzLG8pKX0sWFVuaXFXaXRofSgpO2Z1bmN0aW9uIF94dW5pcVdpdGgocyl7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBuZXcgaHgocyxvKX19dmFyIGR4PV9jdXJyeTIoX2Rpc3BhdGNoYWJsZShbXSxfeHVuaXFXaXRoLChmdW5jdGlvbihzLG8pe2Zvcih2YXIgaSxhPTAsdT1vLmxlbmd0aCxfPVtdO2E8dTspX2luY2x1ZGVzV2l0aChzLGk9b1thXSxfKXx8KF9bXy5sZW5ndGhdPWkpLGErPTE7cmV0dXJuIF99KSkpO2NvbnN0IGZ4PWR4O2NvbnN0IG14PWNsYXNzIGFsbF9vZl9BbGxPZlZpc2l0b3J7b3B0aW9ucztTY2hlbWFFbGVtZW50PXtsZWF2ZShzLG8saSxhLHUpe2lmKHZvaWQgMD09PXMuYWxsT2YpcmV0dXJuO2lmKCFSdShzLmFsbE9mKSl7dmFyIF8sdztjb25zdCBvPW5ldyBUeXBlRXJyb3IoImFsbE9mIG11c3QgYmUgYW4gYXJyYXkiKTtyZXR1cm4gby5mdWxsUGF0aD1bLi4udG9fcGF0aChbLi4udSxpLHNdKSwiYWxsT2YiXSx2b2lkKG51bGw9PT0oXz10aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UuZGVyZWZlcmVuY2VPcHRzKXx8dm9pZCAwPT09X3x8bnVsbD09PShfPV8uZXJyb3JzKXx8dm9pZCAwPT09X3x8bnVsbD09PSh3PV8ucHVzaCl8fHZvaWQgMD09PXd8fHcuY2FsbChfLG8pKX1pZihzLmFsbE9mLmlzRW1wdHkpcmV0dXJuIHZvaWQgcy5yZW1vdmUoImFsbE9mIik7aWYoIXMuYWxsT2YuY29udGVudC5ldmVyeShwRSkpe3ZhciB4LEM7Y29uc3Qgbz1uZXcgVHlwZUVycm9yKCJFbGVtZW50cyBpbiBhbGxPZiBtdXN0IGJlIG9iamVjdHMiKTtyZXR1cm4gby5mdWxsUGF0aD1bLi4udG9fcGF0aChbLi4udSxpLHNdKSwiYWxsT2YiXSx2b2lkKG51bGw9PT0oeD10aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UuZGVyZWZlcmVuY2VPcHRzKXx8dm9pZCAwPT09eHx8bnVsbD09PSh4PXguZXJyb3JzKXx8dm9pZCAwPT09eHx8bnVsbD09PShDPXgucHVzaCl8fHZvaWQgMD09PUN8fEMuY2FsbCh4LG8pKX1mb3IoO3MuaGFzS2V5KCJhbGxPZiIpOyl7Y29uc3R7YWxsT2Y6b309cztzLnJlbW92ZSgiYWxsT2YiKTtjb25zdCBpPXlkLmFsbChbLi4uby5jb250ZW50LHNdLHtjdXN0b21NZXJnZTpzPT4iZW51bSI9PT1zZXJpYWxpemVyc192YWx1ZShzKT8ocyxvKT0+e2lmKGluY2x1ZGVzQ2xhc3NlcyhbImpzb24tc2NoZW1hLWVudW0iXSxzKSYmaW5jbHVkZXNDbGFzc2VzKFsianNvbi1zY2hlbWEtZW51bSJdLG8pKXtjb25zdCBhcmVFbGVtZW50c0VxdWFsPShzLG8pPT4hKFJ1KHMpfHxSdShvKXx8TXUocyl8fE11KG8pKSYmcy5lcXVhbHMoc2VyaWFsaXplcnNfdmFsdWUobykpLGk9Y2xvbmVTaGFsbG93KHMpO3JldHVybiBpLmNvbnRlbnQ9ZngoYXJlRWxlbWVudHNFcXVhbCkoWy4uLnMuY29udGVudCwuLi5vLmNvbnRlbnRdKSxpfXJldHVybiB5ZChzLG8pfTp5ZH0pO2lmKHMuaGFzS2V5KCIkJHJlZiIpfHxpLnJlbW92ZSgiJCRyZWYiKSxzLmhhc0tleSgiZXhhbXBsZSIpKXtjb25zdCBvPWkuZ2V0TWVtYmVyKCJleGFtcGxlIik7byYmKG8udmFsdWU9cy5nZXQoImV4YW1wbGUiKSl9aWYocy5oYXNLZXkoImV4YW1wbGVzIikpe2NvbnN0IG89aS5nZXRNZW1iZXIoImV4YW1wbGVzIik7byYmKG8udmFsdWU9cy5nZXQoImV4YW1wbGVzIikpfXMuY29udGVudD1pLmNvbnRlbnR9fX07Y29uc3RydWN0b3Ioe29wdGlvbnM6c30pe3RoaXMub3B0aW9ucz1zfX07Y29uc3QgZ3g9Y2xhc3MgUGFyYW1ldGVyTWFjcm9WaXNpdG9ye3BhcmFtZXRlck1hY3JvO29wdGlvbnM7I247T3BlcmF0aW9uRWxlbWVudD17ZW50ZXI6cz0+e3RoaXMuI249c30sbGVhdmU6KCk9Pnt0aGlzLiNuPXZvaWQgMH19O1BhcmFtZXRlckVsZW1lbnQ9e2xlYXZlOihzLG8saSxhLHUpPT57Y29uc3QgXz10aGlzLiNuP3NlcmlhbGl6ZXJzX3ZhbHVlKHRoaXMuI24pOm51bGwsdz1zZXJpYWxpemVyc192YWx1ZShzKTt0cnl7Y29uc3Qgbz10aGlzLnBhcmFtZXRlck1hY3JvKF8sdyk7cy5zZXQoImRlZmF1bHQiLG8pfWNhdGNoKHMpe3ZhciB4LEM7Y29uc3Qgbz1uZXcgRXJyb3Iocyx7Y2F1c2U6c30pO28uZnVsbFBhdGg9dG9fcGF0aChbLi4udSxpXSksbnVsbD09PSh4PXRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5kZXJlZmVyZW5jZU9wdHMpfHx2b2lkIDA9PT14fHxudWxsPT09KHg9eC5lcnJvcnMpfHx2b2lkIDA9PT14fHxudWxsPT09KEM9eC5wdXNoKXx8dm9pZCAwPT09Q3x8Qy5jYWxsKHgsbyl9fX07Y29uc3RydWN0b3Ioe3BhcmFtZXRlck1hY3JvOnMsb3B0aW9uczpvfSl7dGhpcy5wYXJhbWV0ZXJNYWNybz1zLHRoaXMub3B0aW9ucz1vfX0sZ2V0X3Jvb3RfY2F1c2U9cz0+e2lmKG51bGw9PXMuY2F1c2UpcmV0dXJuIHM7bGV0e2NhdXNlOm99PXM7Zm9yKDtudWxsIT1vLmNhdXNlOylvPW8uY2F1c2U7cmV0dXJuIG99O2NvbnN0IHl4PWNsYXNzIFNjaGVtYVJlZkVycm9yIGV4dGVuZHMgR297fSx7d3JhcEVycm9yOnZ4fT1YbCxieD12aXNpdG9yX3Zpc2l0W1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLnByb21pc2lmeS5jdXN0b20iKV0sX3g9bmV3IElkZW50aXR5TWFuYWdlcixkZXJlZmVyZW5jZV9tdXRhdGlvblJlcGxhY2VyPShzLG8saSxhKT0+e0R1KGEpP2EudmFsdWU9czpBcnJheS5pc0FycmF5KGEpJiYoYVtpXT1zKX07Y2xhc3MgT3BlbkFQSTNfMVN3YWdnZXJDbGllbnREZXJlZmVyZW5jZVZpc2l0b3IgZXh0ZW5kcyBjeHt1c2VDaXJjdWxhclN0cnVjdHVyZXM7YWxsb3dNZXRhUGF0Y2hlcztiYXNlUGF0aDtjb25zdHJ1Y3Rvcih7YWxsb3dNZXRhUGF0Y2hlczpzPSEwLHVzZUNpcmN1bGFyU3RydWN0dXJlczpvPSExLGJhc2VQYXRoOmk9bnVsbCwuLi5hfSl7c3VwZXIoYSksdGhpcy5hbGxvd01ldGFQYXRjaGVzPXMsdGhpcy51c2VDaXJjdWxhclN0cnVjdHVyZXM9byx0aGlzLmJhc2VQYXRoPWl9YXN5bmMgUmVmZXJlbmNlRWxlbWVudChzLG8saSxhLHUsXyl7dHJ5e2lmKHRoaXMuaW5kaXJlY3Rpb25zLmluY2x1ZGVzKHMpKXJldHVybiExO2NvbnN0W28sYV09dGhpcy50b0FuY2VzdG9yTGluZWFnZShbLi4udSxpXSksaj10aGlzLnRvQmFzZVVSSShzZXJpYWxpemVyc192YWx1ZShzLiRyZWYpKSxMPXN0cmlwSGFzaCh0aGlzLnJlZmVyZW5jZS51cmkpPT09aixCPSFMO2lmKCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5pbnRlcm5hbCYmTClyZXR1cm4hMTtpZighdGhpcy5vcHRpb25zLnJlc29sdmUuZXh0ZXJuYWwmJkIpcmV0dXJuITE7Y29uc3QgJD1hd2FpdCB0aGlzLnRvUmVmZXJlbmNlKHNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZikpLFY9cmVzb2x2ZShqLHNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZikpO3RoaXMuaW5kaXJlY3Rpb25zLnB1c2gocyk7Y29uc3QgVT1mcm9tVVJJUmVmZXJlbmNlKFYpO2xldCB6PWFwaWRvbV9ldmFsdWF0ZSgkLnZhbHVlLnJlc3VsdCxVKTtpZih6LmlkPV94LmlkZW50aWZ5KHopLGlzUHJpbWl0aXZlRWxlbWVudCh6KSl7Y29uc3Qgbz1zZXJpYWxpemVyc192YWx1ZShzLm1ldGEuZ2V0KCJyZWZlcmVuY2VkLWVsZW1lbnQiKSksaT1gJHtvfS0ke3NlcmlhbGl6ZXJzX3ZhbHVlKF94LmlkZW50aWZ5KHopKX1gO2lmKHRoaXMucmVmcmFjdENhY2hlLmhhcyhpKSl6PXRoaXMucmVmcmFjdENhY2hlLmdldChpKTtlbHNlIGlmKGlzUmVmZXJlbmNlTGlrZUVsZW1lbnQoeikpej1xYi5yZWZyYWN0KHopLHouc2V0TWV0YVByb3BlcnR5KCJyZWZlcmVuY2VkLWVsZW1lbnQiLG8pLHRoaXMucmVmcmFjdENhY2hlLnNldChpLHopO2Vsc2V7ej10aGlzLm5hbWVzcGFjZS5nZXRFbGVtZW50Q2xhc3MobykucmVmcmFjdCh6KSx0aGlzLnJlZnJhY3RDYWNoZS5zZXQoaSx6KX19aWYocz09PXopdGhyb3cgbmV3IEtvKCJSZWN1cnNpdmUgUmVmZXJlbmNlIE9iamVjdCBkZXRlY3RlZCIpO2lmKHRoaXMuaW5kaXJlY3Rpb25zLmxlbmd0aD50aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UubWF4RGVwdGgpdGhyb3cgbmV3IG54KGBNYXhpbXVtIGRlcmVmZXJlbmNlIGRlcHRoIG9mICIke3RoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5tYXhEZXB0aH0iIGhhcyBiZWVuIGV4Y2VlZGVkIGluIGZpbGUgIiR7dGhpcy5yZWZlcmVuY2UudXJpfSJgKTtpZihvLmluY2x1ZGVzKHopKXtpZigkLnJlZlNldC5jaXJjdWxhcj0hMCwiZXJyb3IiPT09dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLmNpcmN1bGFyKXRocm93IG5ldyBLbygiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIik7aWYoInJlcGxhY2UiPT09dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLmNpcmN1bGFyKXt2YXIgdyx4O2NvbnN0IG89bmV3IFN1LnNJKHouaWQse3R5cGU6InJlZmVyZW5jZSIsdXJpOiQudXJpLCRyZWY6c2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKSxiYXNlVVJJOlYscmVmZXJlbmNpbmdFbGVtZW50OnN9KSxhPShudWxsIT09KHc9bnVsbD09PSh4PXRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5zdHJhdGVneU9wdHNbIm9wZW5hcGktMy0xIl0pfHx2b2lkIDA9PT14P3ZvaWQgMDp4LmNpcmN1bGFyUmVwbGFjZXIpJiZ2b2lkIDAhPT13P3c6dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLmNpcmN1bGFyUmVwbGFjZXIpKG8pO3JldHVybiBfLnJlcGxhY2VXaXRoKG8sZGVyZWZlcmVuY2VfbXV0YXRpb25SZXBsYWNlciksIWkmJmF9fWNvbnN0IFk9c3RyaXBIYXNoKCQucmVmU2V0LnJvb3RSZWYudXJpKSE9PSQudXJpLFo9WyJlcnJvciIsInJlcGxhY2UiXS5pbmNsdWRlcyh0aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UuY2lyY3VsYXIpO2lmKChCfHxZfHxhRSh6KXx8WikmJiFvLmluY2x1ZGVzQ3ljbGUoeikpe3ZhciBDO2EuYWRkKHMpO2NvbnN0IF89bmV3IE9wZW5BUEkzXzFTd2FnZ2VyQ2xpZW50RGVyZWZlcmVuY2VWaXNpdG9yKHtyZWZlcmVuY2U6JCxuYW1lc3BhY2U6dGhpcy5uYW1lc3BhY2UsaW5kaXJlY3Rpb25zOlsuLi50aGlzLmluZGlyZWN0aW9uc10sb3B0aW9uczp0aGlzLm9wdGlvbnMscmVmcmFjdENhY2hlOnRoaXMucmVmcmFjdENhY2hlLGFuY2VzdG9yczpvLGFsbG93TWV0YVBhdGNoZXM6dGhpcy5hbGxvd01ldGFQYXRjaGVzLHVzZUNpcmN1bGFyU3RydWN0dXJlczp0aGlzLnVzZUNpcmN1bGFyU3RydWN0dXJlcyxiYXNlUGF0aDpudWxsIT09KEM9dGhpcy5iYXNlUGF0aCkmJnZvaWQgMCE9PUM/QzpbLi4udG9fcGF0aChbLi4udSxpLHNdKSwiJHJlZiJdfSk7ej1hd2FpdCBieCh6LF8se2tleU1hcDp1dyxub2RlVHlwZUdldHRlcjphcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3RyYXZlcnNhbF92aXNpdG9yX2dldE5vZGVUeXBlfSksYS5kZWxldGUocyl9dGhpcy5pbmRpcmVjdGlvbnMucG9wKCk7Y29uc3QgZWU9Y2xvbmVTaGFsbG93KHopO2lmKGVlLnNldE1ldGFQcm9wZXJ0eSgicmVmLWZpZWxkcyIseyRyZWY6c2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKSxkZXNjcmlwdGlvbjpzZXJpYWxpemVyc192YWx1ZShzLmRlc2NyaXB0aW9uKSxzdW1tYXJ5OnNlcmlhbGl6ZXJzX3ZhbHVlKHMuc3VtbWFyeSl9KSxlZS5zZXRNZXRhUHJvcGVydHkoInJlZi1vcmlnaW4iLCQudXJpKSxlZS5zZXRNZXRhUHJvcGVydHkoInJlZi1yZWZlcmVuY2luZy1lbGVtZW50LWlkIixjbG9uZURlZXAoX3guaWRlbnRpZnkocykpKSxNdSh6KSYmKHMuaGFzS2V5KCJkZXNjcmlwdGlvbiIpJiYiZGVzY3JpcHRpb24iaW4geiYmKGVlLnJlbW92ZSgiZGVzY3JpcHRpb24iKSxlZS5zZXQoImRlc2NyaXB0aW9uIixzLmdldCgiZGVzY3JpcHRpb24iKSkpLHMuaGFzS2V5KCJzdW1tYXJ5IikmJiJzdW1tYXJ5ImluIHomJihlZS5yZW1vdmUoInN1bW1hcnkiKSxlZS5zZXQoInN1bW1hcnkiLHMuZ2V0KCJzdW1tYXJ5IikpKSksdGhpcy5hbGxvd01ldGFQYXRjaGVzJiZNdShlZSkmJiFlZS5oYXNLZXkoIiQkcmVmIikpe2NvbnN0IHM9cmVzb2x2ZShqLFYpO2VlLnNldCgiJCRyZWYiLHMpfXJldHVybiBfLnJlcGxhY2VXaXRoKGVlLGRlcmVmZXJlbmNlX211dGF0aW9uUmVwbGFjZXIpLCFpJiZlZX1jYXRjaChvKXt2YXIgaixMLEI7Y29uc3QgYT1nZXRfcm9vdF9jYXVzZShvKSxfPXZ4KGEse2Jhc2VEb2M6dGhpcy5yZWZlcmVuY2UudXJpLCRyZWY6c2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKSxwb2ludGVyOmZyb21VUklSZWZlcmVuY2Uoc2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKSksZnVsbFBhdGg6bnVsbCE9PShqPXRoaXMuYmFzZVBhdGgpJiZ2b2lkIDAhPT1qP2o6Wy4uLnRvX3BhdGgoWy4uLnUsaSxzXSksIiRyZWYiXX0pO3JldHVybiB2b2lkKG51bGw9PT0oTD10aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UuZGVyZWZlcmVuY2VPcHRzKXx8dm9pZCAwPT09THx8bnVsbD09PShMPUwuZXJyb3JzKXx8dm9pZCAwPT09THx8bnVsbD09PShCPUwucHVzaCl8fHZvaWQgMD09PUJ8fEIuY2FsbChMLF8pKX19YXN5bmMgUGF0aEl0ZW1FbGVtZW50KHMsbyxpLGEsdSxfKXt0cnl7aWYoIVB1KHMuJHJlZikpcmV0dXJuO2lmKHRoaXMuaW5kaXJlY3Rpb25zLmluY2x1ZGVzKHMpKXJldHVybiExO2lmKGluY2x1ZGVzQ2xhc3NlcyhbImN5Y2xlIl0scy4kcmVmKSlyZXR1cm4hMTtjb25zdFtvLGFdPXRoaXMudG9BbmNlc3RvckxpbmVhZ2UoWy4uLnUsaV0pLGo9dGhpcy50b0Jhc2VVUkkoc2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKSksTD1zdHJpcEhhc2godGhpcy5yZWZlcmVuY2UudXJpKT09PWosQj0hTDtpZighdGhpcy5vcHRpb25zLnJlc29sdmUuaW50ZXJuYWwmJkwpcmV0dXJuO2lmKCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5leHRlcm5hbCYmQilyZXR1cm47Y29uc3QgJD1hd2FpdCB0aGlzLnRvUmVmZXJlbmNlKHNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZikpLFY9cmVzb2x2ZShqLHNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZikpO3RoaXMuaW5kaXJlY3Rpb25zLnB1c2gocyk7Y29uc3QgVT1mcm9tVVJJUmVmZXJlbmNlKFYpO2xldCB6PWFwaWRvbV9ldmFsdWF0ZSgkLnZhbHVlLnJlc3VsdCxVKTtpZih6LmlkPV94LmlkZW50aWZ5KHopLGlzUHJpbWl0aXZlRWxlbWVudCh6KSl7Y29uc3Qgcz1gcGF0aC1pdGVtLSR7c2VyaWFsaXplcnNfdmFsdWUoX3guaWRlbnRpZnkoeikpfWA7dGhpcy5yZWZyYWN0Q2FjaGUuaGFzKHMpP3o9dGhpcy5yZWZyYWN0Q2FjaGUuZ2V0KHMpOih6PVJiLnJlZnJhY3QoeiksdGhpcy5yZWZyYWN0Q2FjaGUuc2V0KHMseikpfWlmKHM9PT16KXRocm93IG5ldyBLbygiUmVjdXJzaXZlIFBhdGggSXRlbSBPYmplY3QgcmVmZXJlbmNlIGRldGVjdGVkIik7aWYodGhpcy5pbmRpcmVjdGlvbnMubGVuZ3RoPnRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5tYXhEZXB0aCl0aHJvdyBuZXcgbngoYE1heGltdW0gZGVyZWZlcmVuY2UgZGVwdGggb2YgIiR7dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLm1heERlcHRofSIgaGFzIGJlZW4gZXhjZWVkZWQgaW4gZmlsZSAiJHt0aGlzLnJlZmVyZW5jZS51cml9ImApO2lmKG8uaW5jbHVkZXMoeikpe2lmKCQucmVmU2V0LmNpcmN1bGFyPSEwLCJlcnJvciI9PT10aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UuY2lyY3VsYXIpdGhyb3cgbmV3IEtvKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQiKTtpZigicmVwbGFjZSI9PT10aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UuY2lyY3VsYXIpe3ZhciB3LHg7Y29uc3Qgbz1uZXcgU3Uuc0koei5pZCx7dHlwZToicGF0aC1pdGVtIix1cmk6JC51cmksJHJlZjpzZXJpYWxpemVyc192YWx1ZShzLiRyZWYpLGJhc2VVUkk6VixyZWZlcmVuY2luZ0VsZW1lbnQ6c30pLGE9KG51bGwhPT0odz1udWxsPT09KHg9dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLnN0cmF0ZWd5T3B0c1sib3BlbmFwaS0zLTEiXSl8fHZvaWQgMD09PXg/dm9pZCAwOnguY2lyY3VsYXJSZXBsYWNlcikmJnZvaWQgMCE9PXc/dzp0aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UuY2lyY3VsYXJSZXBsYWNlcikobyk7cmV0dXJuIF8ucmVwbGFjZVdpdGgobyxkZXJlZmVyZW5jZV9tdXRhdGlvblJlcGxhY2VyKSwhaSYmYX19Y29uc3QgWT1zdHJpcEhhc2goJC5yZWZTZXQucm9vdFJlZi51cmkpIT09JC51cmksWj1bImVycm9yIiwicmVwbGFjZSJdLmluY2x1ZGVzKHRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5jaXJjdWxhcik7aWYoKEJ8fFl8fG9FKHopJiZQdSh6LiRyZWYpfHxaKSYmIW8uaW5jbHVkZXNDeWNsZSh6KSl7dmFyIEM7YS5hZGQocyk7Y29uc3QgXz1uZXcgT3BlbkFQSTNfMVN3YWdnZXJDbGllbnREZXJlZmVyZW5jZVZpc2l0b3Ioe3JlZmVyZW5jZTokLG5hbWVzcGFjZTp0aGlzLm5hbWVzcGFjZSxpbmRpcmVjdGlvbnM6Wy4uLnRoaXMuaW5kaXJlY3Rpb25zXSxvcHRpb25zOnRoaXMub3B0aW9ucyxhbmNlc3RvcnM6byxhbGxvd01ldGFQYXRjaGVzOnRoaXMuYWxsb3dNZXRhUGF0Y2hlcyx1c2VDaXJjdWxhclN0cnVjdHVyZXM6dGhpcy51c2VDaXJjdWxhclN0cnVjdHVyZXMsYmFzZVBhdGg6bnVsbCE9PShDPXRoaXMuYmFzZVBhdGgpJiZ2b2lkIDAhPT1DP0M6Wy4uLnRvX3BhdGgoWy4uLnUsaSxzXSksIiRyZWYiXX0pO3o9YXdhaXQgYngoeixfLHtrZXlNYXA6dXcsbm9kZVR5cGVHZXR0ZXI6YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY190cmF2ZXJzYWxfdmlzaXRvcl9nZXROb2RlVHlwZX0pLGEuZGVsZXRlKHMpfWlmKHRoaXMuaW5kaXJlY3Rpb25zLnBvcCgpLG9FKHopKXtjb25zdCBvPW5ldyBSYihbLi4uei5jb250ZW50XSxjbG9uZURlZXAoei5tZXRhKSxjbG9uZURlZXAoei5hdHRyaWJ1dGVzKSk7aWYocy5mb3JFYWNoKCgocyxpLGEpPT57by5yZW1vdmUoc2VyaWFsaXplcnNfdmFsdWUoaSkpLG8uY29udGVudC5wdXNoKGEpfSkpLG8ucmVtb3ZlKCIkcmVmIiksby5zZXRNZXRhUHJvcGVydHkoInJlZi1maWVsZHMiLHskcmVmOnNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZil9KSxvLnNldE1ldGFQcm9wZXJ0eSgicmVmLW9yaWdpbiIsJC51cmkpLG8uc2V0TWV0YVByb3BlcnR5KCJyZWYtcmVmZXJlbmNpbmctZWxlbWVudC1pZCIsY2xvbmVEZWVwKF94LmlkZW50aWZ5KHMpKSksdGhpcy5hbGxvd01ldGFQYXRjaGVzJiZ2b2lkIDA9PT1vLmdldCgiJCRyZWYiKSl7Y29uc3Qgcz1yZXNvbHZlKGosVik7by5zZXQoIiQkcmVmIixzKX16PW99cmV0dXJuIF8ucmVwbGFjZVdpdGgoeixkZXJlZmVyZW5jZV9tdXRhdGlvblJlcGxhY2VyKSxpP3ZvaWQgMDp6fWNhdGNoKG8pe3ZhciBqLEwsQjtjb25zdCBhPWdldF9yb290X2NhdXNlKG8pLF89dngoYSx7YmFzZURvYzp0aGlzLnJlZmVyZW5jZS51cmksJHJlZjpzZXJpYWxpemVyc192YWx1ZShzLiRyZWYpLHBvaW50ZXI6ZnJvbVVSSVJlZmVyZW5jZShzZXJpYWxpemVyc192YWx1ZShzLiRyZWYpKSxmdWxsUGF0aDpudWxsIT09KGo9dGhpcy5iYXNlUGF0aCkmJnZvaWQgMCE9PWo/ajpbLi4udG9fcGF0aChbLi4udSxpLHNdKSwiJHJlZiJdfSk7cmV0dXJuIHZvaWQobnVsbD09PShMPXRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5kZXJlZmVyZW5jZU9wdHMpfHx2b2lkIDA9PT1MfHxudWxsPT09KEw9TC5lcnJvcnMpfHx2b2lkIDA9PT1MfHxudWxsPT09KEI9TC5wdXNoKXx8dm9pZCAwPT09Qnx8Qi5jYWxsKEwsXykpfX1hc3luYyBTY2hlbWFFbGVtZW50KHMsbyxpLGEsdSxfKXt0cnl7aWYoIVB1KHMuJHJlZikpcmV0dXJuO2lmKHRoaXMuaW5kaXJlY3Rpb25zLmluY2x1ZGVzKHMpKXJldHVybiExO2NvbnN0W28sYV09dGhpcy50b0FuY2VzdG9yTGluZWFnZShbLi4udSxpXSk7bGV0IGo9YXdhaXQgdGhpcy50b1JlZmVyZW5jZSh1bnNhbml0aXplKHRoaXMucmVmZXJlbmNlLnVyaSkpLHt1cmk6TH09ajtjb25zdCBCPXJlc29sdmVTY2hlbWEkcmVmRmllbGQoTCxzKSwkPXN0cmlwSGFzaChCKSxWPW5ldyBrdyh7dXJpOiR9KSxVPSF0aGlzLm9wdGlvbnMucmVzb2x2ZS5yZXNvbHZlcnMuc29tZSgocz0+cy5jYW5SZWFkKFYpKSksej0hVTtsZXQgWSxaPXN0cmlwSGFzaCh0aGlzLnJlZmVyZW5jZS51cmkpPT09QixlZT0hWjt0aGlzLmluZGlyZWN0aW9ucy5wdXNoKHMpO3RyeXtpZihVfHx6KXtMPXRoaXMudG9CYXNlVVJJKEIpO2NvbnN0IHM9QixvPW1heWJlUmVmcmFjdFRvU2NoZW1hRWxlbWVudChqLnZhbHVlLnJlc3VsdCk7aWYoWT11cmlfZXZhbHVhdGUocyxvKSxZPW1heWJlUmVmcmFjdFRvU2NoZW1hRWxlbWVudChZKSxZLmlkPV94LmlkZW50aWZ5KFkpLCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5pbnRlcm5hbCYmWilyZXR1cm47aWYoIXRoaXMub3B0aW9ucy5yZXNvbHZlLmV4dGVybmFsJiZlZSlyZXR1cm59ZWxzZXtpZihMPXRoaXMudG9CYXNlVVJJKEIpLFo9c3RyaXBIYXNoKHRoaXMucmVmZXJlbmNlLnVyaSk9PT1MLGVlPSFaLCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5pbnRlcm5hbCYmWilyZXR1cm47aWYoIXRoaXMub3B0aW9ucy5yZXNvbHZlLmV4dGVybmFsJiZlZSlyZXR1cm47aj1hd2FpdCB0aGlzLnRvUmVmZXJlbmNlKHVuc2FuaXRpemUoQikpO2NvbnN0IHM9ZnJvbVVSSVJlZmVyZW5jZShCKSxvPW1heWJlUmVmcmFjdFRvU2NoZW1hRWxlbWVudChqLnZhbHVlLnJlc3VsdCk7WT1hcGlkb21fZXZhbHVhdGUobyxzKSxZPW1heWJlUmVmcmFjdFRvU2NoZW1hRWxlbWVudChZKSxZLmlkPV94LmlkZW50aWZ5KFkpfX1jYXRjaChzKXtpZighKHomJnMgaW5zdGFuY2VvZiByeCkpdGhyb3cgcztpZihpc0FuY2hvcih1cmlUb0FuY2hvcihCKSkpe2lmKFo9c3RyaXBIYXNoKHRoaXMucmVmZXJlbmNlLnVyaSk9PT1MLGVlPSFaLCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5pbnRlcm5hbCYmWilyZXR1cm47aWYoIXRoaXMub3B0aW9ucy5yZXNvbHZlLmV4dGVybmFsJiZlZSlyZXR1cm47aj1hd2FpdCB0aGlzLnRvUmVmZXJlbmNlKHVuc2FuaXRpemUoQikpO2NvbnN0IHM9dXJpVG9BbmNob3IoQiksbz1tYXliZVJlZnJhY3RUb1NjaGVtYUVsZW1lbnQoai52YWx1ZS5yZXN1bHQpO1k9JGFuY2hvcl9ldmFsdWF0ZShzLG8pLFk9bWF5YmVSZWZyYWN0VG9TY2hlbWFFbGVtZW50KFkpLFkuaWQ9X3guaWRlbnRpZnkoWSl9ZWxzZXtpZihMPXRoaXMudG9CYXNlVVJJKHNlcmlhbGl6ZXJzX3ZhbHVlKEIpKSxaPXN0cmlwSGFzaCh0aGlzLnJlZmVyZW5jZS51cmkpPT09TCxlZT0hWiwhdGhpcy5vcHRpb25zLnJlc29sdmUuaW50ZXJuYWwmJlopcmV0dXJuO2lmKCF0aGlzLm9wdGlvbnMucmVzb2x2ZS5leHRlcm5hbCYmZWUpcmV0dXJuO2o9YXdhaXQgdGhpcy50b1JlZmVyZW5jZSh1bnNhbml0aXplKEIpKTtjb25zdCBzPWZyb21VUklSZWZlcmVuY2UoQiksbz1tYXliZVJlZnJhY3RUb1NjaGVtYUVsZW1lbnQoai52YWx1ZS5yZXN1bHQpO1k9YXBpZG9tX2V2YWx1YXRlKG8scyksWT1tYXliZVJlZnJhY3RUb1NjaGVtYUVsZW1lbnQoWSksWS5pZD1feC5pZGVudGlmeShZKX19aWYocz09PVkpdGhyb3cgbmV3IEtvKCJSZWN1cnNpdmUgU2NoZW1hIE9iamVjdCByZWZlcmVuY2UgZGV0ZWN0ZWQiKTtpZih0aGlzLmluZGlyZWN0aW9ucy5sZW5ndGg+dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLm1heERlcHRoKXRocm93IG5ldyBueChgTWF4aW11bSBkZXJlZmVyZW5jZSBkZXB0aCBvZiAiJHt0aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UubWF4RGVwdGh9IiBoYXMgYmVlbiBleGNlZWRlZCBpbiBmaWxlICIke3RoaXMucmVmZXJlbmNlLnVyaX0iYCk7aWYoby5pbmNsdWRlcyhZKSl7aWYoai5yZWZTZXQuY2lyY3VsYXI9ITAsImVycm9yIj09PXRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5jaXJjdWxhcil0aHJvdyBuZXcgS28oIkNpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCIpO2lmKCJyZXBsYWNlIj09PXRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5jaXJjdWxhcil7dmFyIHcseDtjb25zdCBvPW5ldyBTdS5zSShZLmlkLHt0eXBlOiJqc29uLXNjaGVtYSIsdXJpOmoudXJpLCRyZWY6c2VyaWFsaXplcnNfdmFsdWUocy4kcmVmKSxiYXNlVVJJOnJlc29sdmUoTCxCKSxyZWZlcmVuY2luZ0VsZW1lbnQ6c30pLGE9KG51bGwhPT0odz1udWxsPT09KHg9dGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLnN0cmF0ZWd5T3B0c1sib3BlbmFwaS0zLTEiXSl8fHZvaWQgMD09PXg/dm9pZCAwOnguY2lyY3VsYXJSZXBsYWNlcikmJnZvaWQgMCE9PXc/dzp0aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UuY2lyY3VsYXJSZXBsYWNlcikobyk7cmV0dXJuIF8ucmVwbGFjZVdpdGgoYSxkZXJlZmVyZW5jZV9tdXRhdGlvblJlcGxhY2VyKSwhaSYmYX19Y29uc3QgaWU9c3RyaXBIYXNoKGoucmVmU2V0LnJvb3RSZWYudXJpKSE9PWoudXJpLGFlPVsiZXJyb3IiLCJyZXBsYWNlIl0uaW5jbHVkZXModGhpcy5vcHRpb25zLmRlcmVmZXJlbmNlLmNpcmN1bGFyKTtpZigoZWV8fGllfHxwRShZKSYmUHUoWS4kcmVmKXx8YWUpJiYhby5pbmNsdWRlc0N5Y2xlKFkpKXt2YXIgQzthLmFkZChzKTtjb25zdCBfPW5ldyBPcGVuQVBJM18xU3dhZ2dlckNsaWVudERlcmVmZXJlbmNlVmlzaXRvcih7cmVmZXJlbmNlOmosbmFtZXNwYWNlOnRoaXMubmFtZXNwYWNlLGluZGlyZWN0aW9uczpbLi4udGhpcy5pbmRpcmVjdGlvbnNdLG9wdGlvbnM6dGhpcy5vcHRpb25zLHVzZUNpcmN1bGFyU3RydWN0dXJlczp0aGlzLnVzZUNpcmN1bGFyU3RydWN0dXJlcyxhbGxvd01ldGFQYXRjaGVzOnRoaXMuYWxsb3dNZXRhUGF0Y2hlcyxhbmNlc3RvcnM6byxiYXNlUGF0aDpudWxsIT09KEM9dGhpcy5iYXNlUGF0aCkmJnZvaWQgMCE9PUM/QzpbLi4udG9fcGF0aChbLi4udSxpLHNdKSwiJHJlZiJdfSk7WT1hd2FpdCBieChZLF8se2tleU1hcDp1dyxub2RlVHlwZUdldHRlcjphcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3RyYXZlcnNhbF92aXNpdG9yX2dldE5vZGVUeXBlfSksYS5kZWxldGUocyl9aWYodGhpcy5pbmRpcmVjdGlvbnMucG9wKCkscHJlZGljYXRlc19pc0Jvb2xlYW5Kc29uU2NoZW1hRWxlbWVudChZKSl7Y29uc3Qgbz1jbG9uZURlZXAoWSk7cmV0dXJuIG8uc2V0TWV0YVByb3BlcnR5KCJyZWYtZmllbGRzIix7JHJlZjpzZXJpYWxpemVyc192YWx1ZShzLiRyZWYpfSksby5zZXRNZXRhUHJvcGVydHkoInJlZi1vcmlnaW4iLGoudXJpKSxvLnNldE1ldGFQcm9wZXJ0eSgicmVmLXJlZmVyZW5jaW5nLWVsZW1lbnQtaWQiLGNsb25lRGVlcChfeC5pZGVudGlmeShzKSkpLF8ucmVwbGFjZVdpdGgobyxkZXJlZmVyZW5jZV9tdXRhdGlvblJlcGxhY2VyKSwhaSYmb31pZihwRShZKSl7Y29uc3Qgbz1uZXcgdVMoWy4uLlkuY29udGVudF0sY2xvbmVEZWVwKFkubWV0YSksY2xvbmVEZWVwKFkuYXR0cmlidXRlcykpO2lmKHMuZm9yRWFjaCgoKHMsaSxhKT0+e28ucmVtb3ZlKHNlcmlhbGl6ZXJzX3ZhbHVlKGkpKSxvLmNvbnRlbnQucHVzaChhKX0pKSxvLnJlbW92ZSgiJHJlZiIpLG8uc2V0TWV0YVByb3BlcnR5KCJyZWYtZmllbGRzIix7JHJlZjpzZXJpYWxpemVyc192YWx1ZShzLiRyZWYpfSksby5zZXRNZXRhUHJvcGVydHkoInJlZi1vcmlnaW4iLGoudXJpKSxvLnNldE1ldGFQcm9wZXJ0eSgicmVmLXJlZmVyZW5jaW5nLWVsZW1lbnQtaWQiLGNsb25lRGVlcChfeC5pZGVudGlmeShzKSkpLHRoaXMuYWxsb3dNZXRhUGF0Y2hlcyYmdm9pZCAwPT09by5nZXQoIiQkcmVmIikpe2NvbnN0IHM9cmVzb2x2ZShMLEIpO28uc2V0KCIkJHJlZiIscyl9WT1vfXJldHVybiBfLnJlcGxhY2VXaXRoKFksZGVyZWZlcmVuY2VfbXV0YXRpb25SZXBsYWNlciksaT92b2lkIDA6WX1jYXRjaChvKXt2YXIgaixMLEI7Y29uc3QgYT1nZXRfcm9vdF9jYXVzZShvKSxfPW5ldyB5eChgQ291bGQgbm90IHJlc29sdmUgcmVmZXJlbmNlOiAke2EubWVzc2FnZX1gLHtiYXNlRG9jOnRoaXMucmVmZXJlbmNlLnVyaSwkcmVmOnNlcmlhbGl6ZXJzX3ZhbHVlKHMuJHJlZiksZnVsbFBhdGg6bnVsbCE9PShqPXRoaXMuYmFzZVBhdGgpJiZ2b2lkIDAhPT1qP2o6Wy4uLnRvX3BhdGgoWy4uLnUsaSxzXSksIiRyZWYiXSxjYXVzZTphfSk7cmV0dXJuIHZvaWQobnVsbD09PShMPXRoaXMub3B0aW9ucy5kZXJlZmVyZW5jZS5kZXJlZmVyZW5jZU9wdHMpfHx2b2lkIDA9PT1MfHxudWxsPT09KEw9TC5lcnJvcnMpfHx2b2lkIDA9PT1MfHxudWxsPT09KEI9TC5wdXNoKXx8dm9pZCAwPT09Qnx8Qi5jYWxsKEwsXykpfX1hc3luYyBMaW5rRWxlbWVudCgpe31hc3luYyBFeGFtcGxlRWxlbWVudChzLG8saSxhLHUsXyl7dHJ5e3JldHVybiBhd2FpdCBzdXBlci5FeGFtcGxlRWxlbWVudChzLG8saSxhLHUsXyl9Y2F0Y2gobyl7dmFyIHcseCxDO2NvbnN0IGE9Z2V0X3Jvb3RfY2F1c2UobyksXz12eChhLHtiYXNlRG9jOnRoaXMucmVmZXJlbmNlLnVyaSxleHRlcm5hbFZhbHVlOnNlcmlhbGl6ZXJzX3ZhbHVlKHMuZXh0ZXJuYWxWYWx1ZSksZnVsbFBhdGg6bnVsbCE9PSh3PXRoaXMuYmFzZVBhdGgpJiZ2b2lkIDAhPT13P3c6Wy4uLnRvX3BhdGgoWy4uLnUsaSxzXSksImV4dGVybmFsVmFsdWUiXX0pO3JldHVybiB2b2lkKG51bGw9PT0oeD10aGlzLm9wdGlvbnMuZGVyZWZlcmVuY2UuZGVyZWZlcmVuY2VPcHRzKXx8dm9pZCAwPT09eHx8bnVsbD09PSh4PXguZXJyb3JzKXx8dm9pZCAwPT09eHx8bnVsbD09PShDPXgucHVzaCl8fHZvaWQgMD09PUN8fEMuY2FsbCh4LF8pKX19fWNvbnN0IFN4PU9wZW5BUEkzXzFTd2FnZ2VyQ2xpZW50RGVyZWZlcmVuY2VWaXNpdG9yLEV4PW1lcmdlQWxsW1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLnByb21pc2lmeS5jdXN0b20iKV07Y29uc3Qgd3g9Y2xhc3MgUm9vdFZpc2l0b3J7Y29uc3RydWN0b3Ioe3BhcmFtZXRlck1hY3JvOnMsbW9kZWxQcm9wZXJ0eU1hY3JvOm8sbW9kZTppLG9wdGlvbnM6YSwuLi51fSl7Y29uc3QgXz1bXTtfLnB1c2gobmV3IFN4KHsuLi51LG9wdGlvbnM6YX0pKSwiZnVuY3Rpb24iPT10eXBlb2YgbyYmXy5wdXNoKG5ldyBweCh7bW9kZWxQcm9wZXJ0eU1hY3JvOm8sb3B0aW9uczphfSkpLCJzdHJpY3QiIT09aSYmXy5wdXNoKG5ldyBteCh7b3B0aW9uczphfSkpLCJmdW5jdGlvbiI9PXR5cGVvZiBzJiZfLnB1c2gobmV3IGd4KHtwYXJhbWV0ZXJNYWNybzpzLG9wdGlvbnM6YX0pKTtjb25zdCB3PUV4KF8se25vZGVUeXBlR2V0dGVyOmFwaWRvbV9uc19vcGVuYXBpXzNfMV9zcmNfdHJhdmVyc2FsX3Zpc2l0b3JfZ2V0Tm9kZVR5cGV9KTtPYmplY3QuYXNzaWduKHRoaXMsdyl9fSx4eD12aXNpdG9yX3Zpc2l0W1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLnByb21pc2lmeS5jdXN0b20iKV07Y29uc3Qga3g9Y2xhc3MgT3BlbkFQSTNfMVN3YWdnZXJDbGllbnREZXJlZmVyZW5jZVN0cmF0ZWd5IGV4dGVuZHMgdXh7YWxsb3dNZXRhUGF0Y2hlcztwYXJhbWV0ZXJNYWNybzttb2RlbFByb3BlcnR5TWFjcm87bW9kZTthbmNlc3RvcnM7Y29uc3RydWN0b3Ioe2FsbG93TWV0YVBhdGNoZXM6cz0hMSxwYXJhbWV0ZXJNYWNybzpvPW51bGwsbW9kZWxQcm9wZXJ0eU1hY3JvOmk9bnVsbCxtb2RlOmE9Im5vbi1zdHJpY3QiLGFuY2VzdG9yczp1PVtdLC4uLl99PXt9KXtzdXBlcih7Li4uX30pLHRoaXMubmFtZT0ib3BlbmFwaS0zLTEtc3dhZ2dlci1jbGllbnQiLHRoaXMuYWxsb3dNZXRhUGF0Y2hlcz1zLHRoaXMucGFyYW1ldGVyTWFjcm89byx0aGlzLm1vZGVsUHJvcGVydHlNYWNybz1pLHRoaXMubW9kZT1hLHRoaXMuYW5jZXN0b3JzPVsuLi51XX1hc3luYyBkZXJlZmVyZW5jZShzLG8pe3ZhciBpO2NvbnN0IGE9Y3JlYXRlTmFtZXNwYWNlKGh3KSx1PW51bGwhPT0oaT1vLmRlcmVmZXJlbmNlLnJlZlNldCkmJnZvaWQgMCE9PWk/aTpuZXcgeXcsXz1uZXcgeXc7bGV0IHcseD11O3UuaGFzKHMudXJpKT93PXUuZmluZCgobz0+by51cmk9PT1zLnVyaSkpOih3PW5ldyBndyh7dXJpOnMudXJpLHZhbHVlOnMucGFyc2VSZXN1bHR9KSx1LmFkZCh3KSksby5kZXJlZmVyZW5jZS5pbW11dGFibGUmJih1LnJlZnMubWFwKChzPT5uZXcgZ3coey4uLnMsdmFsdWU6Y2xvbmVEZWVwKHMudmFsdWUpfSkpKS5mb3JFYWNoKChzPT5fLmFkZChzKSkpLHc9Xy5maW5kKChvPT5vLnVyaT09PXMudXJpKSkseD1fKTtjb25zdCBDPW5ldyB3eCh7cmVmZXJlbmNlOncsbmFtZXNwYWNlOmEsb3B0aW9uczpvLGFsbG93TWV0YVBhdGNoZXM6dGhpcy5hbGxvd01ldGFQYXRjaGVzLGFuY2VzdG9yczp0aGlzLmFuY2VzdG9ycyxtb2RlbFByb3BlcnR5TWFjcm86dGhpcy5tb2RlbFByb3BlcnR5TWFjcm8sbW9kZTp0aGlzLm1vZGUscGFyYW1ldGVyTWFjcm86dGhpcy5wYXJhbWV0ZXJNYWNyb30pLGo9YXdhaXQgeHgoeC5yb290UmVmLnZhbHVlLEMse2tleU1hcDp1dyxub2RlVHlwZUdldHRlcjphcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3RyYXZlcnNhbF92aXNpdG9yX2dldE5vZGVUeXBlfSk7cmV0dXJuIG8uZGVyZWZlcmVuY2UuaW1tdXRhYmxlJiZfLnJlZnMuZmlsdGVyKChzPT5zLnVyaS5zdGFydHNXaXRoKCJpbW11dGFibGU6Ly8iKSkpLm1hcCgocz0+bmV3IGd3KHsuLi5zLHVyaTpzLnVyaS5yZXBsYWNlKC9eaW1tdXRhYmxlOlwvXC8vLCIiKX0pKSkuZm9yRWFjaCgocz0+dS5hZGQocykpKSxudWxsPT09by5kZXJlZmVyZW5jZS5yZWZTZXQmJnUuY2xlYW4oKSxfLmNsZWFuKCksan19LGNpcmN1bGFyUmVwbGFjZXI9cz0+e2NvbnN0IG89c2VyaWFsaXplcnNfdmFsdWUocy5tZXRhLmdldCgiYmFzZVVSSSIpKSxpPXMubWV0YS5nZXQoInJlZmVyZW5jaW5nRWxlbWVudCIpO3JldHVybiBuZXcgU3UuU2goeyRyZWY6b30sY2xvbmVEZWVwKGkubWV0YSksY2xvbmVEZWVwKGkuYXR0cmlidXRlcykpfSxyZXNvbHZlT3BlbkFQSTMxU3RyYXRlZ3k9YXN5bmMgcz0+e2NvbnN0e3NwZWM6byx0aW1lb3V0OmkscmVkaXJlY3RzOmEscmVxdWVzdEludGVyY2VwdG9yOnUscmVzcG9uc2VJbnRlcmNlcHRvcjpfLHBhdGhEaXNjcmltaW5hdG9yOnc9W10sYWxsb3dNZXRhUGF0Y2hlczp4PSExLHVzZUNpcmN1bGFyU3RydWN0dXJlczpDPSExLHNraXBOb3JtYWxpemF0aW9uOmo9ITEscGFyYW1ldGVyTWFjcm86TD1udWxsLG1vZGVsUHJvcGVydHlNYWNybzpCPW51bGwsbW9kZTokPSJub24tc3RyaWN0IixzdHJhdGVnaWVzOlZ9PXM7dHJ5e2NvbnN0e2NhY2hlOlV9PXJlc29sdmVPcGVuQVBJMzFTdHJhdGVneSx6PVYuZmluZCgocz0+cy5tYXRjaChvKSkpLFk9aXNIdHRwVXJsKHVybF9jd2QoKSk/dXJsX2N3ZCgpOkxsLFo9b3B0aW9uc19yZXRyaWV2YWxVUkkocyksZWU9cmVzb2x2ZShZLFopO2xldCBpZTtVLmhhcyhvKT9pZT1VLmdldChvKTooaWU9UGIucmVmcmFjdChvKSxpZS5jbGFzc2VzLnB1c2goInJlc3VsdCIpLFUuc2V0KG8saWUpKTtjb25zdCBhZT1uZXcgQ3UoW2llXSksY2U9ZXNfY29tcGlsZSh3KSxsZT0iIj09PWNlPyIiOmAjJHtjZX1gLHBlPWFwaWRvbV9ldmFsdWF0ZShpZSxjZSksZGU9bmV3IGd3KHt1cmk6ZWUsdmFsdWU6YWV9KSxmZT1uZXcgeXcoe3JlZnM6W2RlXX0pOyIiIT09Y2UmJihmZS5yb290UmVmPXZvaWQgMCk7Y29uc3QgeWU9W25ldyBTZXQoW3BlXSldLGJlPVtdLF9lPWF3YWl0KGFzeW5jKHMsbz17fSk9Pntjb25zdCBpPXV0aWxfbWVyZ2UoYncsbyk7cmV0dXJuIGRlcmVmZXJlbmNlQXBpRE9NKHMsaSl9KShwZSx7cmVzb2x2ZTp7YmFzZVVSSTpgJHtlZX0ke2xlfWAscmVzb2x2ZXJzOltuZXcgcXcoe3RpbWVvdXQ6aXx8MWU0LHJlZGlyZWN0czphfHwxMH0pXSxyZXNvbHZlck9wdHM6e3N3YWdnZXJIVFRQQ2xpZW50Q29uZmlnOntyZXF1ZXN0SW50ZXJjZXB0b3I6dSxyZXNwb25zZUludGVyY2VwdG9yOl99fSxzdHJhdGVnaWVzOltuZXcgTXddfSxwYXJzZTp7bWVkaWFUeXBlOm13LmxhdGVzdCgpLHBhcnNlcnM6W25ldyB6dyh7YWxsb3dFbXB0eTohMSxzb3VyY2VNYXA6ITF9KSxuZXcgV3coe2FsbG93RW1wdHk6ITEsc291cmNlTWFwOiExfSksbmV3IFZ3KHthbGxvd0VtcHR5OiExLHNvdXJjZU1hcDohMX0pLG5ldyBVdyh7YWxsb3dFbXB0eTohMSxzb3VyY2VNYXA6ITF9KSxuZXcgVHcoe2FsbG93RW1wdHk6ITEsc291cmNlTWFwOiExfSldfSxkZXJlZmVyZW5jZTp7bWF4RGVwdGg6MTAwLHN0cmF0ZWdpZXM6W25ldyBreCh7YWxsb3dNZXRhUGF0Y2hlczp4LHVzZUNpcmN1bGFyU3RydWN0dXJlczpDLHBhcmFtZXRlck1hY3JvOkwsbW9kZWxQcm9wZXJ0eU1hY3JvOkIsbW9kZTokLGFuY2VzdG9yczp5ZX0pXSxyZWZTZXQ6ZmUsZGVyZWZlcmVuY2VPcHRzOntlcnJvcnM6YmV9LGltbXV0YWJsZTohMSxjaXJjdWxhcjpDPyJpZ25vcmUiOiJyZXBsYWNlIixjaXJjdWxhclJlcGxhY2VyOkM/YncuZGVyZWZlcmVuY2UuY2lyY3VsYXJSZXBsYWNlcjpjaXJjdWxhclJlcGxhY2VyfX0pLFNlPSgocyxvLGkpPT5uZXcgZ3Aoe2VsZW1lbnQ6aX0pLnRyYW5zY2x1ZGUocyxvKSkocGUsX2UsaWUpLHdlPWo/U2U6ei5ub3JtYWxpemUoU2UpO3JldHVybntzcGVjOnNlcmlhbGl6ZXJzX3ZhbHVlKHdlKSxlcnJvcnM6YmV9fWNhdGNoKHMpe2lmKHMgaW5zdGFuY2VvZiBMcClyZXR1cm57c3BlYzpvLGVycm9yczpbXX07dGhyb3cgc319O3Jlc29sdmVPcGVuQVBJMzFTdHJhdGVneS5jYWNoZT1uZXcgV2Vha01hcDtjb25zdCBPeD1yZXNvbHZlT3BlbkFQSTMxU3RyYXRlZ3k7ZnVuY3Rpb24gX2Nsb25lKHMsbyxpKXtpZihpfHwoaT1uZXcgQ3gpLGZ1bmN0aW9uIF9pc1ByaW1pdGl2ZShzKXt2YXIgbz10eXBlb2YgcztyZXR1cm4gbnVsbD09c3x8Im9iamVjdCIhPW8mJiJmdW5jdGlvbiIhPW99KHMpKXJldHVybiBzO3ZhciBhPWZ1bmN0aW9uIGNvcHkoYSl7dmFyIHU9aS5nZXQocyk7aWYodSlyZXR1cm4gdTtmb3IodmFyIF8gaW4gaS5zZXQocyxhKSxzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLF8pJiYoYVtfXT1vP19jbG9uZShzW19dLCEwLGkpOnNbX10pO3JldHVybiBhfTtzd2l0Y2gocmEocykpe2Nhc2UiT2JqZWN0IjpyZXR1cm4gYShPYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZihzKSkpO2Nhc2UiQXJyYXkiOnJldHVybiBhKEFycmF5KHMubGVuZ3RoKSk7Y2FzZSJEYXRlIjpyZXR1cm4gbmV3IERhdGUocy52YWx1ZU9mKCkpO2Nhc2UiUmVnRXhwIjpyZXR1cm4gX2Nsb25lUmVnRXhwKHMpO2Nhc2UiSW50OEFycmF5IjpjYXNlIlVpbnQ4QXJyYXkiOmNhc2UiVWludDhDbGFtcGVkQXJyYXkiOmNhc2UiSW50MTZBcnJheSI6Y2FzZSJVaW50MTZBcnJheSI6Y2FzZSJJbnQzMkFycmF5IjpjYXNlIlVpbnQzMkFycmF5IjpjYXNlIkZsb2F0MzJBcnJheSI6Y2FzZSJGbG9hdDY0QXJyYXkiOmNhc2UiQmlnSW50NjRBcnJheSI6Y2FzZSJCaWdVaW50NjRBcnJheSI6cmV0dXJuIHMuc2xpY2UoKTtkZWZhdWx0OnJldHVybiBzfX12YXIgQ3g9ZnVuY3Rpb24oKXtmdW5jdGlvbiBfT2JqZWN0TWFwKCl7dGhpcy5tYXA9e30sdGhpcy5sZW5ndGg9MH1yZXR1cm4gX09iamVjdE1hcC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHMsbyl7dmFyIGk9dGhpcy5oYXNoKHMpLGE9dGhpcy5tYXBbaV07YXx8KHRoaXMubWFwW2ldPWE9W10pLGEucHVzaChbcyxvXSksdGhpcy5sZW5ndGgrPTF9LF9PYmplY3RNYXAucHJvdG90eXBlLmhhc2g9ZnVuY3Rpb24ocyl7dmFyIG89W107Zm9yKHZhciBpIGluIHMpby5wdXNoKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzW2ldKSk7cmV0dXJuIG8uam9pbigpfSxfT2JqZWN0TWFwLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24ocyl7aWYodGhpcy5sZW5ndGg8PTE4MClmb3IodmFyIG8gaW4gdGhpcy5tYXApZm9yKHZhciBpPXRoaXMubWFwW29dLGE9MDthPGkubGVuZ3RoO2ErPTEpe2lmKChfPWlbYV0pWzBdPT09cylyZXR1cm4gX1sxXX1lbHNle3ZhciB1PXRoaXMuaGFzaChzKTtpZihpPXRoaXMubWFwW3VdKWZvcihhPTA7YTxpLmxlbmd0aDthKz0xKXt2YXIgXztpZigoXz1pW2FdKVswXT09PXMpcmV0dXJuIF9bMV19fX0sX09iamVjdE1hcH0oKSxBeD1mdW5jdGlvbigpe2Z1bmN0aW9uIFhSZWR1Y2VCeShzLG8saSxhKXt0aGlzLnZhbHVlRm49cyx0aGlzLnZhbHVlQWNjPW8sdGhpcy5rZXlGbj1pLHRoaXMueGY9YSx0aGlzLmlucHV0cz17fX1yZXR1cm4gWFJlZHVjZUJ5LnByb3RvdHlwZVsiQEB0cmFuc2R1Y2VyL2luaXQiXT1feGZCYXNlX2luaXQsWFJlZHVjZUJ5LnByb3RvdHlwZVsiQEB0cmFuc2R1Y2VyL3Jlc3VsdCJdPWZ1bmN0aW9uKHMpe3ZhciBvO2ZvcihvIGluIHRoaXMuaW5wdXRzKWlmKF9oYXMobyx0aGlzLmlucHV0cykmJihzPXRoaXMueGZbIkBAdHJhbnNkdWNlci9zdGVwIl0ocyx0aGlzLmlucHV0c1tvXSkpWyJAQHRyYW5zZHVjZXIvcmVkdWNlZCJdKXtzPXNbIkBAdHJhbnNkdWNlci92YWx1ZSJdO2JyZWFrfXJldHVybiB0aGlzLmlucHV0cz1udWxsLHRoaXMueGZbIkBAdHJhbnNkdWNlci9yZXN1bHQiXShzKX0sWFJlZHVjZUJ5LnByb3RvdHlwZVsiQEB0cmFuc2R1Y2VyL3N0ZXAiXT1mdW5jdGlvbihzLG8pe3ZhciBpPXRoaXMua2V5Rm4obyk7cmV0dXJuIHRoaXMuaW5wdXRzW2ldPXRoaXMuaW5wdXRzW2ldfHxbaSxfY2xvbmUodGhpcy52YWx1ZUFjYywhMSldLHRoaXMuaW5wdXRzW2ldWzFdPXRoaXMudmFsdWVGbih0aGlzLmlucHV0c1tpXVsxXSxvKSxzfSxYUmVkdWNlQnl9KCk7ZnVuY3Rpb24gX3hyZWR1Y2VCeShzLG8saSl7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBuZXcgQXgocyxvLGksYSl9fXZhciBqeD1fY3VycnlOKDQsW10sX2Rpc3BhdGNoYWJsZShbXSxfeHJlZHVjZUJ5LChmdW5jdGlvbiByZWR1Y2VCeShzLG8saSxhKXt2YXIgdT1feHdyYXAoKGZ1bmN0aW9uKGEsdSl7dmFyIF89aSh1KSx3PXMoX2hhcyhfLGEpP2FbX106X2Nsb25lKG8sITEpLHUpO3JldHVybiB3JiZ3WyJAQHRyYW5zZHVjZXIvcmVkdWNlZCJdP19yZWR1Y2VkKGEpOihhW19dPXcsYSl9KSk7cmV0dXJuIHdhKHUse30sYSl9KSkpO2NvbnN0IFB4PV9jdXJyeTIoX2NoZWNrRm9yTWV0aG9kKCJncm91cEJ5IixqeCgoZnVuY3Rpb24ocyxvKXtyZXR1cm4gcy5wdXNoKG8pLHN9KSxbXSkpKTtjb25zdCBJeD1jbGFzcyBOb3JtYWxpemVTdG9yYWdle2ludGVybmFsU3RvcmU7Y29uc3RydWN0b3IocyxvLGkpe3RoaXMuc3RvcmFnZUVsZW1lbnQ9cyx0aGlzLnN0b3JhZ2VGaWVsZD1vLHRoaXMuc3RvcmFnZVN1YkZpZWxkPWl9Z2V0IHN0b3JlKCl7aWYoIXRoaXMuaW50ZXJuYWxTdG9yZSl7bGV0IHM9dGhpcy5zdG9yYWdlRWxlbWVudC5nZXQodGhpcy5zdG9yYWdlRmllbGQpO011KHMpfHwocz1uZXcgU3UuU2gsdGhpcy5zdG9yYWdlRWxlbWVudC5zZXQodGhpcy5zdG9yYWdlRmllbGQscykpO2xldCBvPXMuZ2V0KHRoaXMuc3RvcmFnZVN1YkZpZWxkKTtSdShvKXx8KG89bmV3IFN1LndFLHMuc2V0KHRoaXMuc3RvcmFnZVN1YkZpZWxkLG8pKSx0aGlzLmludGVybmFsU3RvcmU9b31yZXR1cm4gdGhpcy5pbnRlcm5hbFN0b3JlfWFwcGVuZChzKXt0aGlzLmluY2x1ZGVzKHMpfHx0aGlzLnN0b3JlLnB1c2gocyl9aW5jbHVkZXMocyl7cmV0dXJuIHRoaXMuc3RvcmUuaW5jbHVkZXMocyl9fSxyZW1vdmVTcGFjZXM9cz0+cy5yZXBsYWNlKC9ccy9nLCIiKSxub3JtYWxpemVfb3BlcmF0aW9uX2lkc19yZXBsYWNlU3BlY2lhbENoYXJzV2l0aFVuZGVyc2NvcmU9cz0+cy5yZXBsYWNlKC9cVy9naSwiXyIpLG5vcm1hbGl6ZU9wZXJhdGlvbklkPShzLG8saSk9Pntjb25zdCBhPXJlbW92ZVNwYWNlcyhzKTtyZXR1cm4gYS5sZW5ndGg+MD9ub3JtYWxpemVfb3BlcmF0aW9uX2lkc19yZXBsYWNlU3BlY2lhbENoYXJzV2l0aFVuZGVyc2NvcmUoYSk6KChzLG8pPT5gJHtub3JtYWxpemVfb3BlcmF0aW9uX2lkc19yZXBsYWNlU3BlY2lhbENoYXJzV2l0aFVuZGVyc2NvcmUocmVtb3ZlU3BhY2VzKG8udG9Mb3dlckNhc2UoKSkpfSR7bm9ybWFsaXplX29wZXJhdGlvbl9pZHNfcmVwbGFjZVNwZWNpYWxDaGFyc1dpdGhVbmRlcnNjb3JlKHJlbW92ZVNwYWNlcyhzKSl9YCkobyxpKX0sbm9ybWFsaXplX29wZXJhdGlvbl9pZHM9KHtzdG9yYWdlRmllbGQ6cz0ieC1ub3JtYWxpemVkIixvcGVyYXRpb25JZE5vcm1hbGl6ZXI6bz1ub3JtYWxpemVPcGVyYXRpb25JZH09e30pPT5pPT57Y29uc3R7cHJlZGljYXRlczphLGFuY2VzdG9yTGluZWFnZVRvSlNPTlBvaW50ZXI6dSxuYW1lc3BhY2U6X309aSx3PVtdLHg9W10sQz1bXTtsZXQgajtyZXR1cm57dmlzaXRvcjp7T3BlbkFwaTNfMUVsZW1lbnQ6e2VudGVyKG8pe2o9bmV3IEl4KG8scywib3BlcmF0aW9uLWlkcyIpfSxsZWF2ZSgpe2NvbnN0IHM9UHgoKHM9PnNlcmlhbGl6ZXJzX3ZhbHVlKHMub3BlcmF0aW9uSWQpKSx4KTtPYmplY3QuZW50cmllcyhzKS5mb3JFYWNoKCgoW3Msb10pPT57QXJyYXkuaXNBcnJheShvKSYmKG8ubGVuZ3RoPD0xfHxvLmZvckVhY2goKChvLGkpPT57Y29uc3QgYT1gJHtzfSR7aSsxfWA7by5vcGVyYXRpb25JZD1uZXcgXy5lbGVtZW50cy5TdHJpbmcoYSl9KSkpfSkpLEMuZm9yRWFjaCgocz0+e2lmKHZvaWQgMD09PXMub3BlcmF0aW9uSWQpcmV0dXJuO2NvbnN0IG89U3RyaW5nKHNlcmlhbGl6ZXJzX3ZhbHVlKHMub3BlcmF0aW9uSWQpKSxpPXguZmluZCgocz0+c2VyaWFsaXplcnNfdmFsdWUocy5tZXRhLmdldCgib3JpZ2luYWxPcGVyYXRpb25JZCIpKT09PW8pKTt2b2lkIDAhPT1pJiYocy5vcGVyYXRpb25JZD1jbG9uZURlZXAuc2FmZShpLm9wZXJhdGlvbklkKSxzLm1ldGEuc2V0KCJvcmlnaW5hbE9wZXJhdGlvbklkIixvKSxzLnNldCgiX19vcmlnaW5hbE9wZXJhdGlvbklkIixvKSl9KSkseC5sZW5ndGg9MCxDLmxlbmd0aD0wLGo9dm9pZCAwfX0sUGF0aEl0ZW1FbGVtZW50OntlbnRlcihzKXtjb25zdCBvPU5hKCJwYXRoIixzZXJpYWxpemVyc192YWx1ZShzLm1ldGEuZ2V0KCJwYXRoIikpKTt3LnB1c2gobyl9LGxlYXZlKCl7dy5wb3AoKX19LE9wZXJhdGlvbkVsZW1lbnQ6e2VudGVyKHMsaSxhLEMsTCl7aWYodm9pZCAwPT09cy5vcGVyYXRpb25JZClyZXR1cm47Y29uc3QgQj11KFsuLi5MLGEsc10pO2lmKGouaW5jbHVkZXMoQikpcmV0dXJuO2NvbnN0ICQ9U3RyaW5nKHNlcmlhbGl6ZXJzX3ZhbHVlKHMub3BlcmF0aW9uSWQpKSxWPUJhKHcpLFU9TmEoIm1ldGhvZCIsc2VyaWFsaXplcnNfdmFsdWUocy5tZXRhLmdldCgiaHR0cC1tZXRob2QiKSkpLHo9bygkLFYsVSk7JCE9PXomJihzLm9wZXJhdGlvbklkPW5ldyBfLmVsZW1lbnRzLlN0cmluZyh6KSxzLnNldCgiX19vcmlnaW5hbE9wZXJhdGlvbklkIiwkKSxzLm1ldGEuc2V0KCJvcmlnaW5hbE9wZXJhdGlvbklkIiwkKSx4LnB1c2gocyksai5hcHBlbmQoQikpfX0sTGlua0VsZW1lbnQ6e2xlYXZlKHMpe2EuaXNMaW5rRWxlbWVudChzKSYmdm9pZCAwIT09cy5vcGVyYXRpb25JZCYmQy5wdXNoKHMpfX19fX0sbm9ybWFsaXplX3BhcmFtZXRlcnM9KHtzdG9yYWdlRmllbGQ6cz0ieC1ub3JtYWxpemVkIn09e30pPT5vPT57Y29uc3R7cHJlZGljYXRlczppLGFuY2VzdG9yTGluZWFnZVRvSlNPTlBvaW50ZXI6YX09byxwYXJhbWV0ZXJFcXVhbHM9KHMsbyk9PiEhaS5pc1BhcmFtZXRlckVsZW1lbnQocykmJighIWkuaXNQYXJhbWV0ZXJFbGVtZW50KG8pJiYoISFpLmlzU3RyaW5nRWxlbWVudChzLm5hbWUpJiYoISFpLmlzU3RyaW5nRWxlbWVudChzLmluKSYmKCEhaS5pc1N0cmluZ0VsZW1lbnQoby5uYW1lKSYmKCEhaS5pc1N0cmluZ0VsZW1lbnQoby5pbikmJihzZXJpYWxpemVyc192YWx1ZShzLm5hbWUpPT09c2VyaWFsaXplcnNfdmFsdWUoby5uYW1lKSYmc2VyaWFsaXplcnNfdmFsdWUocy5pbik9PT1zZXJpYWxpemVyc192YWx1ZShvLmluKSkpKSkpKSx1PVtdO2xldCBfO3JldHVybnt2aXNpdG9yOntPcGVuQXBpM18xRWxlbWVudDp7ZW50ZXIobyl7Xz1uZXcgSXgobyxzLCJwYXJhbWV0ZXJzIil9LGxlYXZlKCl7Xz12b2lkIDB9fSxQYXRoSXRlbUVsZW1lbnQ6e2VudGVyKHMsbyxhLF8sdyl7aWYody5zb21lKGkuaXNDb21wb25lbnRzRWxlbWVudCkpcmV0dXJuO2NvbnN0e3BhcmFtZXRlcnM6eH09cztpLmlzQXJyYXlFbGVtZW50KHgpP3UucHVzaChbLi4ueC5jb250ZW50XSk6dS5wdXNoKFtdKX0sbGVhdmUoKXt1LnBvcCgpfX0sT3BlcmF0aW9uRWxlbWVudDp7bGVhdmUocyxvLGksdyx4KXtjb25zdCBDPUJhKHUpO2lmKCFBcnJheS5pc0FycmF5KEMpfHwwPT09Qy5sZW5ndGgpcmV0dXJuO2NvbnN0IGo9YShbLi4ueCxpLHNdKTtpZihfLmluY2x1ZGVzKGopKXJldHVybjtjb25zdCBMPVh3KFtdLFsicGFyYW1ldGVycyIsImNvbnRlbnQiXSxzKSxCPWZ4KHBhcmFtZXRlckVxdWFscyxbLi4uTCwuLi5DXSk7cy5wYXJhbWV0ZXJzPW5ldyBTdihCKSxfLmFwcGVuZChqKX19fX19LG5vcm1hbGl6ZV9zZWN1cml0eV9yZXF1aXJlbWVudHM9KHtzdG9yYWdlRmllbGQ6cz0ieC1ub3JtYWxpemVkIn09e30pPT5vPT57Y29uc3R7cHJlZGljYXRlczppLGFuY2VzdG9yTGluZWFnZVRvSlNPTlBvaW50ZXI6YX09bztsZXQgdSxfO3JldHVybnt2aXNpdG9yOntPcGVuQXBpM18xRWxlbWVudDp7ZW50ZXIobyl7Xz1uZXcgSXgobyxzLCJzZWN1cml0eS1yZXF1aXJlbWVudHMiKSxpLmlzQXJyYXlFbGVtZW50KG8uc2VjdXJpdHkpJiYodT1vLnNlY3VyaXR5KX0sbGVhdmUoKXtfPXZvaWQgMCx1PXZvaWQgMH19LE9wZXJhdGlvbkVsZW1lbnQ6e2xlYXZlKHMsbyx3LHgsQyl7aWYoQy5zb21lKGkuaXNDb21wb25lbnRzRWxlbWVudCkpcmV0dXJuO2NvbnN0IGo9YShbLi4uQyx3LHNdKTtpZihfLmluY2x1ZGVzKGopKXJldHVybjt2YXIgTDt2b2lkIDA9PT1zLnNlY3VyaXR5JiZ2b2lkIDAhPT11JiYocy5zZWN1cml0eT1uZXcgQ3YobnVsbD09PShMPXUpfHx2b2lkIDA9PT1MP3ZvaWQgMDpMLmNvbnRlbnQpLF8uYXBwZW5kKGopKX19fX19LG5vcm1hbGl6ZV9wYXJhbWV0ZXJfZXhhbXBsZXM9KHtzdG9yYWdlRmllbGQ6cz0ieC1ub3JtYWxpemVkIn09e30pPT5vPT57Y29uc3R7cHJlZGljYXRlczppLGFuY2VzdG9yTGluZWFnZVRvSlNPTlBvaW50ZXI6YX09bztsZXQgdTtyZXR1cm57dmlzaXRvcjp7T3BlbkFwaTNfMUVsZW1lbnQ6e2VudGVyKG8pe3U9bmV3IEl4KG8scywicGFyYW1ldGVyLWV4YW1wbGVzIil9LGxlYXZlKCl7dT12b2lkIDB9fSxQYXJhbWV0ZXJFbGVtZW50OntsZWF2ZShzLG8sXyx3LHgpe3ZhciBDLGo7aWYoeC5zb21lKGkuaXNDb21wb25lbnRzRWxlbWVudCkpcmV0dXJuO2lmKHZvaWQgMD09PXMuc2NoZW1hfHwhaS5pc1NjaGVtYUVsZW1lbnQocy5zY2hlbWEpKXJldHVybjtpZih2b2lkIDA9PT0obnVsbD09PShDPXMuc2NoZW1hKXx8dm9pZCAwPT09Qz92b2lkIDA6Qy5leGFtcGxlKSYmdm9pZCAwPT09KG51bGw9PT0oaj1zLnNjaGVtYSl8fHZvaWQgMD09PWo/dm9pZCAwOmouZXhhbXBsZXMpKXJldHVybjtjb25zdCBMPWEoWy4uLngsXyxzXSk7aWYoIXUuaW5jbHVkZXMoTCkpe2lmKHZvaWQgMCE9PXMuZXhhbXBsZXMmJmkuaXNPYmplY3RFbGVtZW50KHMuZXhhbXBsZXMpKXtjb25zdCBvPXMuZXhhbXBsZXMubWFwKChzPT5jbG9uZURlZXAuc2FmZShzLnZhbHVlKSkpO3JldHVybiB2b2lkIDAhPT1zLnNjaGVtYS5leGFtcGxlcyYmKHMuc2NoZW1hLnNldCgiZXhhbXBsZXMiLG8pLHUuYXBwZW5kKEwpKSx2b2lkKHZvaWQgMCE9PXMuc2NoZW1hLmV4YW1wbGUmJihzLnNjaGVtYS5zZXQoImV4YW1wbGUiLG9bMF0pLHUuYXBwZW5kKEwpKSl9dm9pZCAwIT09cy5leGFtcGxlJiYodm9pZCAwIT09cy5zY2hlbWEuZXhhbXBsZXMmJihzLnNjaGVtYS5zZXQoImV4YW1wbGVzIixbY2xvbmVEZWVwKHMuZXhhbXBsZSldKSx1LmFwcGVuZChMKSksdm9pZCAwIT09cy5zY2hlbWEuZXhhbXBsZSYmKHMuc2NoZW1hLnNldCgiZXhhbXBsZSIsY2xvbmVEZWVwKHMuZXhhbXBsZSkpLHUuYXBwZW5kKEwpKSl9fX19fX0sbm9ybWFsaXplX2hlYWRlcl9leGFtcGxlcz0oe3N0b3JhZ2VGaWVsZDpzPSJ4LW5vcm1hbGl6ZWQifT17fSk9Pm89Pntjb25zdHtwcmVkaWNhdGVzOmksYW5jZXN0b3JMaW5lYWdlVG9KU09OUG9pbnRlcjphfT1vO2xldCB1O3JldHVybnt2aXNpdG9yOntPcGVuQXBpM18xRWxlbWVudDp7ZW50ZXIobyl7dT1uZXcgSXgobyxzLCJoZWFkZXItZXhhbXBsZXMiKX0sbGVhdmUoKXt1PXZvaWQgMH19LEhlYWRlckVsZW1lbnQ6e2xlYXZlKHMsbyxfLHcseCl7dmFyIEMsajtpZih4LnNvbWUoaS5pc0NvbXBvbmVudHNFbGVtZW50KSlyZXR1cm47aWYodm9pZCAwPT09cy5zY2hlbWF8fCFpLmlzU2NoZW1hRWxlbWVudChzLnNjaGVtYSkpcmV0dXJuO2lmKHZvaWQgMD09PShudWxsPT09KEM9cy5zY2hlbWEpfHx2b2lkIDA9PT1DP3ZvaWQgMDpDLmV4YW1wbGUpJiZ2b2lkIDA9PT0obnVsbD09PShqPXMuc2NoZW1hKXx8dm9pZCAwPT09aj92b2lkIDA6ai5leGFtcGxlcykpcmV0dXJuO2NvbnN0IEw9YShbLi4ueCxfLHNdKTtpZighdS5pbmNsdWRlcyhMKSl7aWYodm9pZCAwIT09cy5leGFtcGxlcyYmaS5pc09iamVjdEVsZW1lbnQocy5leGFtcGxlcykpe2NvbnN0IG89cy5leGFtcGxlcy5tYXAoKHM9PmNsb25lRGVlcC5zYWZlKHMudmFsdWUpKSk7cmV0dXJuIHZvaWQgMCE9PXMuc2NoZW1hLmV4YW1wbGVzJiYocy5zY2hlbWEuc2V0KCJleGFtcGxlcyIsbyksdS5hcHBlbmQoTCkpLHZvaWQodm9pZCAwIT09cy5zY2hlbWEuZXhhbXBsZSYmKHMuc2NoZW1hLnNldCgiZXhhbXBsZSIsb1swXSksdS5hcHBlbmQoTCkpKX12b2lkIDAhPT1zLmV4YW1wbGUmJih2b2lkIDAhPT1zLnNjaGVtYS5leGFtcGxlcyYmKHMuc2NoZW1hLnNldCgiZXhhbXBsZXMiLFtjbG9uZURlZXAocy5leGFtcGxlKV0pLHUuYXBwZW5kKEwpKSx2b2lkIDAhPT1zLnNjaGVtYS5leGFtcGxlJiYocy5zY2hlbWEuc2V0KCJleGFtcGxlIixjbG9uZURlZXAocy5leGFtcGxlKSksdS5hcHBlbmQoTCkpKX19fX19fSxvcGVuYXBpXzNfMV9hcGlkb21fbm9ybWFsaXplPXM9PntpZighTXUocykpcmV0dXJuIHM7Y29uc3Qgbz1bbm9ybWFsaXplX29wZXJhdGlvbl9pZHMoe29wZXJhdGlvbklkTm9ybWFsaXplcjoocyxvLGkpPT5vcElkKHtvcGVyYXRpb25JZDpzfSxvLGkse3YyT3BlcmF0aW9uSWRDb21wYXRpYmlsaXR5TW9kZTohMX0pfSksbm9ybWFsaXplX3BhcmFtZXRlcnMoKSxub3JtYWxpemVfc2VjdXJpdHlfcmVxdWlyZW1lbnRzKCksbm9ybWFsaXplX3BhcmFtZXRlcl9leGFtcGxlcygpLG5vcm1hbGl6ZV9oZWFkZXJfZXhhbXBsZXMoKV07cmV0dXJuIGRpc3BhdGNoUGx1Z2luc1N5bmMocyxvLHt0b29sYm94Q3JlYXRvcjphcGlkb21fbnNfb3BlbmFwaV8zXzFfc3JjX3JlZnJhY3Rvcl90b29sYm94LHZpc2l0b3JPcHRpb25zOntrZXlNYXA6dXcsbm9kZVR5cGVHZXR0ZXI6YXBpZG9tX25zX29wZW5hcGlfM18xX3NyY190cmF2ZXJzYWxfdmlzaXRvcl9nZXROb2RlVHlwZX19KX0sVHg9e25hbWU6Im9wZW5hcGktMy0xLWFwaWRvbSIsbWF0Y2g6cz0+aXNPcGVuQVBJMzEocyksbm9ybWFsaXplKHMpe2lmKCFqdShzKSYmZnUocykmJiFzLiQkbm9ybWFsaXplZCl7Y29uc3QgaT0obz1vcGVuYXBpXzNfMV9hcGlkb21fbm9ybWFsaXplLHM9Pntjb25zdCBpPVBiLnJlZnJhY3Qocyk7aS5jbGFzc2VzLnB1c2goInJlc3VsdCIpO2NvbnN0IGE9byhpKSx1PXNlcmlhbGl6ZXJzX3ZhbHVlKGEpO3JldHVybiBPeC5jYWNoZS5zZXQodSxhKSxzZXJpYWxpemVyc192YWx1ZShhKX0pKHMpO3JldHVybiBpLiQkbm9ybWFsaXplZD0hMCxpfXZhciBvO3JldHVybiBqdShzKT9vcGVuYXBpXzNfMV9hcGlkb21fbm9ybWFsaXplKHMpOnN9LHJlc29sdmU6YXN5bmMgcz0+T3gocyl9LE54PVR4LG1ha2VSZXNvbHZlPXM9PmFzeW5jIG89Pihhc3luYyBzPT57Y29uc3R7c3BlYzpvLHJlcXVlc3RJbnRlcmNlcHRvcjppLHJlc3BvbnNlSW50ZXJjZXB0b3I6YX09cyx1PW9wdGlvbnNfcmV0cmlldmFsVVJJKHMpLF89b3B0aW9uc19odHRwQ2xpZW50KHMpLHc9b3x8YXdhaXQgbWFrZUZldGNoSlNPTihfLHtyZXF1ZXN0SW50ZXJjZXB0b3I6aSxyZXNwb25zZUludGVyY2VwdG9yOmF9KSh1KSx4PXsuLi5zLHNwZWM6d307cmV0dXJuIHMuc3RyYXRlZ2llcy5maW5kKChzPT5zLm1hdGNoKHcpKSkucmVzb2x2ZSh4KX0pKHsuLi5zLC4uLm99KSxNeD1tYWtlUmVzb2x2ZSh7c3RyYXRlZ2llczpbX3UsdnUsZ3VdfSk7Y29uc3Qgc2VydmVyX3VybF90ZW1wbGF0ZT0ocyxvLGksYSx1KT0+e2lmKHM9PT1FcC5TRU1fUFJFKXtpZighMT09PUFycmF5LmlzQXJyYXkodSkpdGhyb3cgbmV3IEVycm9yKCJwYXJzZXIncyB1c2VyIGRhdGEgbXVzdCBiZSBhbiBhcnJheSIpO3UucHVzaChbInNlcnZlci11cmwtdGVtcGxhdGUiLFNwLmNoYXJzVG9TdHJpbmcobyxpLGEpXSl9cmV0dXJuIEVwLlNFTV9PS30sY2FsbGJhY2tzX3NlcnZlcl92YXJpYWJsZT0ocyxvLGksYSx1KT0+e2lmKHM9PT1FcC5TRU1fUFJFKXtpZighMT09PUFycmF5LmlzQXJyYXkodSkpdGhyb3cgbmV3IEVycm9yKCJwYXJzZXIncyB1c2VyIGRhdGEgbXVzdCBiZSBhbiBhcnJheSIpO3UucHVzaChbInNlcnZlci12YXJpYWJsZSIsU3AuY2hhcnNUb1N0cmluZyhvLGksYSldKX1yZXR1cm4gRXAuU0VNX09LfSxzZXJ2ZXJfdmFyaWFibGVfbmFtZT0ocyxvLGksYSx1KT0+e2lmKHM9PT1FcC5TRU1fUFJFKXtpZighMT09PUFycmF5LmlzQXJyYXkodSkpdGhyb3cgbmV3IEVycm9yKCJwYXJzZXIncyB1c2VyIGRhdGEgbXVzdCBiZSBhbiBhcnJheSIpO3UucHVzaChbInNlcnZlci12YXJpYWJsZS1uYW1lIixTcC5jaGFyc1RvU3RyaW5nKG8saSxhKV0pfXJldHVybiBFcC5TRU1fT0t9LGNhbGxiYWNrc19saXRlcmFscz0ocyxvLGksYSx1KT0+e2lmKHM9PT1FcC5TRU1fUFJFKXtpZighMT09PUFycmF5LmlzQXJyYXkodSkpdGhyb3cgbmV3IEVycm9yKCJwYXJzZXIncyB1c2VyIGRhdGEgbXVzdCBiZSBhbiBhcnJheSIpO3UucHVzaChbImxpdGVyYWxzIixTcC5jaGFyc1RvU3RyaW5nKG8saSxhKV0pfXJldHVybiBFcC5TRU1fT0t9LFJ4PW5ldyBmdW5jdGlvbiBzZXJ2ZXJfdXJsX3RlbXBsYXRpbmdfZ3JhbW1hcigpe3RoaXMuZ3JhbW1hck9iamVjdD0iZ3JhbW1hck9iamVjdCIsdGhpcy5ydWxlcz1bXSx0aGlzLnJ1bGVzWzBdPXtuYW1lOiJzZXJ2ZXItdXJsLXRlbXBsYXRlIixsb3dlcjoic2VydmVyLXVybC10ZW1wbGF0ZSIsaW5kZXg6MCxpc0JrcjohMX0sdGhpcy5ydWxlc1sxXT17bmFtZToic2VydmVyLXZhcmlhYmxlIixsb3dlcjoic2VydmVyLXZhcmlhYmxlIixpbmRleDoxLGlzQmtyOiExfSx0aGlzLnJ1bGVzWzJdPXtuYW1lOiJzZXJ2ZXItdmFyaWFibGUtbmFtZSIsbG93ZXI6InNlcnZlci12YXJpYWJsZS1uYW1lIixpbmRleDoyLGlzQmtyOiExfSx0aGlzLnJ1bGVzWzNdPXtuYW1lOiJsaXRlcmFscyIsbG93ZXI6ImxpdGVyYWxzIixpbmRleDozLGlzQmtyOiExfSx0aGlzLnJ1bGVzWzRdPXtuYW1lOiJESUdJVCIsbG93ZXI6ImRpZ2l0IixpbmRleDo0LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzVdPXtuYW1lOiJIRVhESUciLGxvd2VyOiJoZXhkaWciLGluZGV4OjUsaXNCa3I6ITF9LHRoaXMucnVsZXNbNl09e25hbWU6InBjdC1lbmNvZGVkIixsb3dlcjoicGN0LWVuY29kZWQiLGluZGV4OjYsaXNCa3I6ITF9LHRoaXMucnVsZXNbN109e25hbWU6InVjc2NoYXIiLGxvd2VyOiJ1Y3NjaGFyIixpbmRleDo3LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzhdPXtuYW1lOiJpcHJpdmF0ZSIsbG93ZXI6Imlwcml2YXRlIixpbmRleDo4LGlzQmtyOiExfSx0aGlzLnVkdHM9W10sdGhpcy5ydWxlc1swXS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMF0ub3Bjb2Rlc1swXT17dHlwZTozLG1pbjoxLG1heDoxLzB9LHRoaXMucnVsZXNbMF0ub3Bjb2Rlc1sxXT17dHlwZToxLGNoaWxkcmVuOlsyLDNdfSx0aGlzLnJ1bGVzWzBdLm9wY29kZXNbMl09e3R5cGU6NCxpbmRleDozfSx0aGlzLnJ1bGVzWzBdLm9wY29kZXNbM109e3R5cGU6NCxpbmRleDoxfSx0aGlzLnJ1bGVzWzFdLm9wY29kZXM9W10sdGhpcy5ydWxlc1sxXS5vcGNvZGVzWzBdPXt0eXBlOjIsY2hpbGRyZW46WzEsMiwzXX0sdGhpcy5ydWxlc1sxXS5vcGNvZGVzWzFdPXt0eXBlOjcsc3RyaW5nOlsxMjNdfSx0aGlzLnJ1bGVzWzFdLm9wY29kZXNbMl09e3R5cGU6NCxpbmRleDoyfSx0aGlzLnJ1bGVzWzFdLm9wY29kZXNbM109e3R5cGU6NyxzdHJpbmc6WzEyNV19LHRoaXMucnVsZXNbMl0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzJdLm9wY29kZXNbMF09e3R5cGU6MyxtaW46MSxtYXg6MS8wfSx0aGlzLnJ1bGVzWzJdLm9wY29kZXNbMV09e3R5cGU6MSxjaGlsZHJlbjpbMiwzLDRdfSx0aGlzLnJ1bGVzWzJdLm9wY29kZXNbMl09e3R5cGU6NSxtaW46MCxtYXg6MTIyfSx0aGlzLnJ1bGVzWzJdLm9wY29kZXNbM109e3R5cGU6NixzdHJpbmc6WzEyNF19LHRoaXMucnVsZXNbMl0ub3Bjb2Rlc1s0XT17dHlwZTo1LG1pbjoxMjYsbWF4OjExMTQxMTF9LHRoaXMucnVsZXNbM10ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzNdLm9wY29kZXNbMF09e3R5cGU6MyxtaW46MSxtYXg6MS8wfSx0aGlzLnJ1bGVzWzNdLm9wY29kZXNbMV09e3R5cGU6MSxjaGlsZHJlbjpbMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzXX0sdGhpcy5ydWxlc1szXS5vcGNvZGVzWzJdPXt0eXBlOjYsc3RyaW5nOlszM119LHRoaXMucnVsZXNbM10ub3Bjb2Rlc1szXT17dHlwZTo1LG1pbjozNSxtYXg6MzZ9LHRoaXMucnVsZXNbM10ub3Bjb2Rlc1s0XT17dHlwZTo1LG1pbjozOCxtYXg6NTl9LHRoaXMucnVsZXNbM10ub3Bjb2Rlc1s1XT17dHlwZTo2LHN0cmluZzpbNjFdfSx0aGlzLnJ1bGVzWzNdLm9wY29kZXNbNl09e3R5cGU6NSxtaW46NjMsbWF4OjkxfSx0aGlzLnJ1bGVzWzNdLm9wY29kZXNbN109e3R5cGU6NixzdHJpbmc6WzkzXX0sdGhpcy5ydWxlc1szXS5vcGNvZGVzWzhdPXt0eXBlOjYsc3RyaW5nOls5NV19LHRoaXMucnVsZXNbM10ub3Bjb2Rlc1s5XT17dHlwZTo1LG1pbjo5NyxtYXg6MTIyfSx0aGlzLnJ1bGVzWzNdLm9wY29kZXNbMTBdPXt0eXBlOjYsc3RyaW5nOlsxMjZdfSx0aGlzLnJ1bGVzWzNdLm9wY29kZXNbMTFdPXt0eXBlOjQsaW5kZXg6N30sdGhpcy5ydWxlc1szXS5vcGNvZGVzWzEyXT17dHlwZTo0LGluZGV4Ojh9LHRoaXMucnVsZXNbM10ub3Bjb2Rlc1sxM109e3R5cGU6NCxpbmRleDo2fSx0aGlzLnJ1bGVzWzRdLm9wY29kZXM9W10sdGhpcy5ydWxlc1s0XS5vcGNvZGVzWzBdPXt0eXBlOjUsbWluOjQ4LG1heDo1N30sdGhpcy5ydWxlc1s1XS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbNV0ub3Bjb2Rlc1swXT17dHlwZToxLGNoaWxkcmVuOlsxLDIsMyw0LDUsNiw3XX0sdGhpcy5ydWxlc1s1XS5vcGNvZGVzWzFdPXt0eXBlOjQsaW5kZXg6NH0sdGhpcy5ydWxlc1s1XS5vcGNvZGVzWzJdPXt0eXBlOjcsc3RyaW5nOls5N119LHRoaXMucnVsZXNbNV0ub3Bjb2Rlc1szXT17dHlwZTo3LHN0cmluZzpbOThdfSx0aGlzLnJ1bGVzWzVdLm9wY29kZXNbNF09e3R5cGU6NyxzdHJpbmc6Wzk5XX0sdGhpcy5ydWxlc1s1XS5vcGNvZGVzWzVdPXt0eXBlOjcsc3RyaW5nOlsxMDBdfSx0aGlzLnJ1bGVzWzVdLm9wY29kZXNbNl09e3R5cGU6NyxzdHJpbmc6WzEwMV19LHRoaXMucnVsZXNbNV0ub3Bjb2Rlc1s3XT17dHlwZTo3LHN0cmluZzpbMTAyXX0sdGhpcy5ydWxlc1s2XS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbNl0ub3Bjb2Rlc1swXT17dHlwZToyLGNoaWxkcmVuOlsxLDIsM119LHRoaXMucnVsZXNbNl0ub3Bjb2Rlc1sxXT17dHlwZTo3LHN0cmluZzpbMzddfSx0aGlzLnJ1bGVzWzZdLm9wY29kZXNbMl09e3R5cGU6NCxpbmRleDo1fSx0aGlzLnJ1bGVzWzZdLm9wY29kZXNbM109e3R5cGU6NCxpbmRleDo1fSx0aGlzLnJ1bGVzWzddLm9wY29kZXM9W10sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzBdPXt0eXBlOjEsY2hpbGRyZW46WzEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3XX0sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzFdPXt0eXBlOjUsbWluOjE2MCxtYXg6NTUyOTV9LHRoaXMucnVsZXNbN10ub3Bjb2Rlc1syXT17dHlwZTo1LG1pbjo2Mzc0NCxtYXg6NjQ5NzV9LHRoaXMucnVsZXNbN10ub3Bjb2Rlc1szXT17dHlwZTo1LG1pbjo2NTAwOCxtYXg6NjU1MTl9LHRoaXMucnVsZXNbN10ub3Bjb2Rlc1s0XT17dHlwZTo1LG1pbjo2NTUzNixtYXg6MTMxMDY5fSx0aGlzLnJ1bGVzWzddLm9wY29kZXNbNV09e3R5cGU6NSxtaW46MTMxMDcyLG1heDoxOTY2MDV9LHRoaXMucnVsZXNbN10ub3Bjb2Rlc1s2XT17dHlwZTo1LG1pbjoxOTY2MDgsbWF4OjI2MjE0MX0sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzddPXt0eXBlOjUsbWluOjI2MjE0NCxtYXg6MzI3Njc3fSx0aGlzLnJ1bGVzWzddLm9wY29kZXNbOF09e3R5cGU6NSxtaW46MzI3NjgwLG1heDozOTMyMTN9LHRoaXMucnVsZXNbN10ub3Bjb2Rlc1s5XT17dHlwZTo1LG1pbjozOTMyMTYsbWF4OjQ1ODc0OX0sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzEwXT17dHlwZTo1LG1pbjo0NTg3NTIsbWF4OjUyNDI4NX0sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzExXT17dHlwZTo1LG1pbjo1MjQyODgsbWF4OjU4OTgyMX0sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzEyXT17dHlwZTo1LG1pbjo1ODk4MjQsbWF4OjY1NTM1N30sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzEzXT17dHlwZTo1LG1pbjo2NTUzNjAsbWF4OjcyMDg5M30sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzE0XT17dHlwZTo1LG1pbjo3MjA4OTYsbWF4Ojc4NjQyOX0sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzE1XT17dHlwZTo1LG1pbjo3ODY0MzIsbWF4Ojg1MTk2NX0sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzE2XT17dHlwZTo1LG1pbjo4NTE5NjgsbWF4OjkxNzUwMX0sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzE3XT17dHlwZTo1LG1pbjo5MjE2MDAsbWF4Ojk4MzAzN30sdGhpcy5ydWxlc1s4XS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbOF0ub3Bjb2Rlc1swXT17dHlwZToxLGNoaWxkcmVuOlsxLDIsM119LHRoaXMucnVsZXNbOF0ub3Bjb2Rlc1sxXT17dHlwZTo1LG1pbjo1NzM0NCxtYXg6NjM3NDN9LHRoaXMucnVsZXNbOF0ub3Bjb2Rlc1syXT17dHlwZTo1LG1pbjo5ODMwNDAsbWF4OjEwNDg1NzN9LHRoaXMucnVsZXNbOF0ub3Bjb2Rlc1szXT17dHlwZTo1LG1pbjoxMDQ4NTc2LG1heDoxMTE0MTA5fSx0aGlzLnRvU3RyaW5nPWZ1bmN0aW9uIHRvU3RyaW5nKCl7bGV0IHM9IiI7cmV0dXJuIHMrPSI7IE9wZW5BUEkgU2VydmVyIFVSTCB0ZW1wbGF0aW5nIEFCTkYgc3ludGF4XG4iLHMrPSJzZXJ2ZXItdXJsLXRlbXBsYXRlICAgID0gMSooIGxpdGVyYWxzIC8gc2VydmVyLXZhcmlhYmxlICkgOyB2YXJpYW50IG9mIGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM2NTcwI3NlY3Rpb24tMlxuIixzKz0nc2VydmVyLXZhcmlhYmxlICAgICAgICA9ICJ7IiBzZXJ2ZXItdmFyaWFibGUtbmFtZSAifSJcbicscys9InNlcnZlci12YXJpYWJsZS1uYW1lICAgPSAxKiggJXgwMC03QSAvICV4N0MgLyAleDdFLTEwRkZGRiApIDsgZXZlcnkgVVRGOCBjaGFyYWN0ZXIgZXhjZXB0IHsgYW5kIH0gKGZyb20gT3BlbkFQSSlcbiIscys9IlxuIixzKz0iOyBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNjU3MCNzZWN0aW9uLTIuMVxuIixzKz0iOyBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9lcnJhdGEvZWlkNjkzN1xuIixzKz0ibGl0ZXJhbHMgICAgICAgICAgICAgICA9IDEqKCAleDIxIC8gJXgyMy0yNCAvICV4MjYtM0IgLyAleDNEIC8gJXgzRi01QlxuIixzKz0iICAgICAgICAgICAgICAgICAgICAgICAvICV4NUQgLyAleDVGIC8gJXg2MS03QSAvICV4N0UgLyB1Y3NjaGFyIC8gaXByaXZhdGVcbiIscys9IiAgICAgICAgICAgICAgICAgICAgICAgLyBwY3QtZW5jb2RlZClcbiIscys9IiAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IGFueSBVbmljb2RlIGNoYXJhY3RlciBleGNlcHQ6IENUTCwgU1AsXG4iLHMrPScgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyAgRFFVT1RFLCAiJSIgKGFzaWRlIGZyb20gcGN0LWVuY29kZWQpLFxuJyxzKz0nICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgICI8IiwgIj4iLCAiXFwiLCAiXiIsICJgIiwgInsiLCAifCIsICJ9IlxuJyxzKz0iXG4iLHMrPSI7IGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM2NTcwI3NlY3Rpb24tMS41XG4iLHMrPSJESUdJVCAgICAgICAgICA9ICAleDMwLTM5ICAgICAgICAgICAgIDsgMC05XG4iLHMrPSdIRVhESUcgICAgICAgICA9ICBESUdJVCAvICJBIiAvICJCIiAvICJDIiAvICJEIiAvICJFIiAvICJGIiA7IGNhc2UtaW5zZW5zaXRpdmVcbicscys9IlxuIixzKz0ncGN0LWVuY29kZWQgICAgPSAgIiUiIEhFWERJRyBIRVhESUdcbicscys9IlxuIixzKz0idWNzY2hhciAgICAgICAgPSAgJXhBMC1EN0ZGIC8gJXhGOTAwLUZEQ0YgLyAleEZERjAtRkZFRlxuIixzKz0iICAgICAgICAgICAgICAgLyAgJXgxMDAwMC0xRkZGRCAvICV4MjAwMDAtMkZGRkQgLyAleDMwMDAwLTNGRkZEXG4iLHMrPSIgICAgICAgICAgICAgICAvICAleDQwMDAwLTRGRkZEIC8gJXg1MDAwMC01RkZGRCAvICV4NjAwMDAtNkZGRkRcbiIscys9IiAgICAgICAgICAgICAgIC8gICV4NzAwMDAtN0ZGRkQgLyAleDgwMDAwLThGRkZEIC8gJXg5MDAwMC05RkZGRFxuIixzKz0iICAgICAgICAgICAgICAgLyAgJXhBMDAwMC1BRkZGRCAvICV4QjAwMDAtQkZGRkQgLyAleEMwMDAwLUNGRkZEXG4iLHMrPSIgICAgICAgICAgICAgICAvICAleEQwMDAwLURGRkZEIC8gJXhFMTAwMC1FRkZGRFxuIixzKz0iXG4iLHMrPSJpcHJpdmF0ZSAgICAgICA9ICAleEUwMDAtRjhGRiAvICV4RjAwMDAtRkZGRkQgLyAleDEwMDAwMC0xMEZGRkRcbiIsJzsgT3BlbkFQSSBTZXJ2ZXIgVVJMIHRlbXBsYXRpbmcgQUJORiBzeW50YXhcbnNlcnZlci11cmwtdGVtcGxhdGUgICAgPSAxKiggbGl0ZXJhbHMgLyBzZXJ2ZXItdmFyaWFibGUgKSA7IHZhcmlhbnQgb2YgaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzY1NzAjc2VjdGlvbi0yXG5zZXJ2ZXItdmFyaWFibGUgICAgICAgID0gInsiIHNlcnZlci12YXJpYWJsZS1uYW1lICJ9Ilxuc2VydmVyLXZhcmlhYmxlLW5hbWUgICA9IDEqKCAleDAwLTdBIC8gJXg3QyAvICV4N0UtMTBGRkZGICkgOyBldmVyeSBVVEY4IGNoYXJhY3RlciBleGNlcHQgeyBhbmQgfSAoZnJvbSBPcGVuQVBJKVxuXG47IGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM2NTcwI3NlY3Rpb24tMi4xXG47IGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL2VycmF0YS9laWQ2OTM3XG5saXRlcmFscyAgICAgICAgICAgICAgID0gMSooICV4MjEgLyAleDIzLTI0IC8gJXgyNi0zQiAvICV4M0QgLyAleDNGLTVCXG4gICAgICAgICAgICAgICAgICAgICAgIC8gJXg1RCAvICV4NUYgLyAleDYxLTdBIC8gJXg3RSAvIHVjc2NoYXIgLyBpcHJpdmF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAvIHBjdC1lbmNvZGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgYW55IFVuaWNvZGUgY2hhcmFjdGVyIGV4Y2VwdDogQ1RMLCBTUCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA7ICBEUVVPVEUsICIlIiAoYXNpZGUgZnJvbSBwY3QtZW5jb2RlZCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOyAgIjwiLCAiPiIsICJcXCIsICJeIiwgImAiLCAieyIsICJ8IiwgIn0iXG5cbjsgaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzY1NzAjc2VjdGlvbi0xLjVcbkRJR0lUICAgICAgICAgID0gICV4MzAtMzkgICAgICAgICAgICAgOyAwLTlcbkhFWERJRyAgICAgICAgID0gIERJR0lUIC8gIkEiIC8gIkIiIC8gIkMiIC8gIkQiIC8gIkUiIC8gIkYiIDsgY2FzZS1pbnNlbnNpdGl2ZVxuXG5wY3QtZW5jb2RlZCAgICA9ICAiJSIgSEVYRElHIEhFWERJR1xuXG51Y3NjaGFyICAgICAgICA9ICAleEEwLUQ3RkYgLyAleEY5MDAtRkRDRiAvICV4RkRGMC1GRkVGXG4gICAgICAgICAgICAgICAvICAleDEwMDAwLTFGRkZEIC8gJXgyMDAwMC0yRkZGRCAvICV4MzAwMDAtM0ZGRkRcbiAgICAgICAgICAgICAgIC8gICV4NDAwMDAtNEZGRkQgLyAleDUwMDAwLTVGRkZEIC8gJXg2MDAwMC02RkZGRFxuICAgICAgICAgICAgICAgLyAgJXg3MDAwMC03RkZGRCAvICV4ODAwMDAtOEZGRkQgLyAleDkwMDAwLTlGRkZEXG4gICAgICAgICAgICAgICAvICAleEEwMDAwLUFGRkZEIC8gJXhCMDAwMC1CRkZGRCAvICV4QzAwMDAtQ0ZGRkRcbiAgICAgICAgICAgICAgIC8gICV4RDAwMDAtREZGRkQgLyAleEUxMDAwLUVGRkZEXG5cbmlwcml2YXRlICAgICAgID0gICV4RTAwMC1GOEZGIC8gJXhGMDAwMC1GRkZGRCAvICV4MTAwMDAwLTEwRkZGRFxuJ319LG9wZW5hcGlfc2VydmVyX3VybF90ZW1wbGF0aW5nX2VzX3BhcnNlPXM9Pntjb25zdCBvPW5ldyB5cDtvLmFzdD1uZXcgdnAsby5hc3QuY2FsbGJhY2tzWyJzZXJ2ZXItdXJsLXRlbXBsYXRlIl09c2VydmVyX3VybF90ZW1wbGF0ZSxvLmFzdC5jYWxsYmFja3NbInNlcnZlci12YXJpYWJsZSJdPWNhbGxiYWNrc19zZXJ2ZXJfdmFyaWFibGUsby5hc3QuY2FsbGJhY2tzWyJzZXJ2ZXItdmFyaWFibGUtbmFtZSJdPXNlcnZlcl92YXJpYWJsZV9uYW1lLG8uYXN0LmNhbGxiYWNrcy5saXRlcmFscz1jYWxsYmFja3NfbGl0ZXJhbHM7cmV0dXJue3Jlc3VsdDpvLnBhcnNlKFJ4LCJzZXJ2ZXItdXJsLXRlbXBsYXRlIixzKSxhc3Q6by5hc3R9fSxvcGVuYXBpX3NlcnZlcl91cmxfdGVtcGxhdGluZ19lc190ZXN0PShzLHtzdHJpY3Q6bz0hMX09e30pPT57dHJ5e2NvbnN0IGk9b3BlbmFwaV9zZXJ2ZXJfdXJsX3RlbXBsYXRpbmdfZXNfcGFyc2Uocyk7aWYoIWkucmVzdWx0LnN1Y2Nlc3MpcmV0dXJuITE7Y29uc3QgYT1bXTtpLmFzdC50cmFuc2xhdGUoYSk7Y29uc3QgdT1hLnNvbWUoKChbc10pPT4ic2VydmVyLXZhcmlhYmxlIj09PXMpKTtpZighbyYmIXUpdHJ5e3JldHVybiBuZXcgVVJMKHMsImh0dHBzOi8vdmxhZGltaXJnb3Jlai5jb20iKSwhMH1jYXRjaHtyZXR1cm4hMX1yZXR1cm4hb3x8dX1jYXRjaHtyZXR1cm4hMX19LGVuY29kZVNlcnZlclZhcmlhYmxlPXM9PihzPT57dHJ5e3JldHVybiJzdHJpbmciPT10eXBlb2YgcyYmZGVjb2RlVVJJQ29tcG9uZW50KHMpIT09c31jYXRjaHtyZXR1cm4hMX19KShzKT9zOmVuY29kZVVSSUNvbXBvbmVudChzKS5yZXBsYWNlKC8lNUIvZywiWyIpLnJlcGxhY2UoLyU1RC9nLCJdIiksRHg9WyJsaXRlcmFscyIsInNlcnZlci12YXJpYWJsZS1uYW1lIl0sZXNfc3Vic3RpdHV0ZT0ocyxvLGk9e30pPT57Y29uc3QgYT17Li4ue2VuY29kZXI6ZW5jb2RlU2VydmVyVmFyaWFibGV9LC4uLml9LHU9b3BlbmFwaV9zZXJ2ZXJfdXJsX3RlbXBsYXRpbmdfZXNfcGFyc2Uocyk7aWYoIXUucmVzdWx0LnN1Y2Nlc3MpcmV0dXJuIHM7Y29uc3QgXz1bXTt1LmFzdC50cmFuc2xhdGUoXyk7Y29uc3Qgdz1fLmZpbHRlcigoKFtzXSk9PkR4LmluY2x1ZGVzKHMpKSkubWFwKCgoW3MsaV0pPT4ic2VydmVyLXZhcmlhYmxlLW5hbWUiPT09cz9PYmplY3QuaGFzT3duKG8saSk/YS5lbmNvZGVyKG9baV0saSk6YHske2l9fWA6aSkpO3JldHVybiB3LmpvaW4oIiIpfTtmdW5jdGlvbiBwYXRoX3RlbXBsYXRpbmdfZ3JhbW1hcigpe3RoaXMuZ3JhbW1hck9iamVjdD0iZ3JhbW1hck9iamVjdCIsdGhpcy5ydWxlcz1bXSx0aGlzLnJ1bGVzWzBdPXtuYW1lOiJwYXRoLXRlbXBsYXRlIixsb3dlcjoicGF0aC10ZW1wbGF0ZSIsaW5kZXg6MCxpc0JrcjohMX0sdGhpcy5ydWxlc1sxXT17bmFtZToicGF0aC1zZWdtZW50Iixsb3dlcjoicGF0aC1zZWdtZW50IixpbmRleDoxLGlzQmtyOiExfSx0aGlzLnJ1bGVzWzJdPXtuYW1lOiJzbGFzaCIsbG93ZXI6InNsYXNoIixpbmRleDoyLGlzQmtyOiExfSx0aGlzLnJ1bGVzWzNdPXtuYW1lOiJwYXRoLWxpdGVyYWwiLGxvd2VyOiJwYXRoLWxpdGVyYWwiLGluZGV4OjMsaXNCa3I6ITF9LHRoaXMucnVsZXNbNF09e25hbWU6InRlbXBsYXRlLWV4cHJlc3Npb24iLGxvd2VyOiJ0ZW1wbGF0ZS1leHByZXNzaW9uIixpbmRleDo0LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzVdPXtuYW1lOiJ0ZW1wbGF0ZS1leHByZXNzaW9uLXBhcmFtLW5hbWUiLGxvd2VyOiJ0ZW1wbGF0ZS1leHByZXNzaW9uLXBhcmFtLW5hbWUiLGluZGV4OjUsaXNCa3I6ITF9LHRoaXMucnVsZXNbNl09e25hbWU6InBjaGFyIixsb3dlcjoicGNoYXIiLGluZGV4OjYsaXNCa3I6ITF9LHRoaXMucnVsZXNbN109e25hbWU6InVucmVzZXJ2ZWQiLGxvd2VyOiJ1bnJlc2VydmVkIixpbmRleDo3LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzhdPXtuYW1lOiJwY3QtZW5jb2RlZCIsbG93ZXI6InBjdC1lbmNvZGVkIixpbmRleDo4LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzldPXtuYW1lOiJzdWItZGVsaW1zIixsb3dlcjoic3ViLWRlbGltcyIsaW5kZXg6OSxpc0JrcjohMX0sdGhpcy5ydWxlc1sxMF09e25hbWU6IkFMUEhBIixsb3dlcjoiYWxwaGEiLGluZGV4OjEwLGlzQmtyOiExfSx0aGlzLnJ1bGVzWzExXT17bmFtZToiRElHSVQiLGxvd2VyOiJkaWdpdCIsaW5kZXg6MTEsaXNCa3I6ITF9LHRoaXMucnVsZXNbMTJdPXtuYW1lOiJIRVhESUciLGxvd2VyOiJoZXhkaWciLGluZGV4OjEyLGlzQmtyOiExfSx0aGlzLnVkdHM9W10sdGhpcy5ydWxlc1swXS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMF0ub3Bjb2Rlc1swXT17dHlwZToyLGNoaWxkcmVuOlsxLDIsNl19LHRoaXMucnVsZXNbMF0ub3Bjb2Rlc1sxXT17dHlwZTo0LGluZGV4OjJ9LHRoaXMucnVsZXNbMF0ub3Bjb2Rlc1syXT17dHlwZTozLG1pbjowLG1heDoxLzB9LHRoaXMucnVsZXNbMF0ub3Bjb2Rlc1szXT17dHlwZToyLGNoaWxkcmVuOls0LDVdfSx0aGlzLnJ1bGVzWzBdLm9wY29kZXNbNF09e3R5cGU6NCxpbmRleDoxfSx0aGlzLnJ1bGVzWzBdLm9wY29kZXNbNV09e3R5cGU6NCxpbmRleDoyfSx0aGlzLnJ1bGVzWzBdLm9wY29kZXNbNl09e3R5cGU6MyxtaW46MCxtYXg6MX0sdGhpcy5ydWxlc1swXS5vcGNvZGVzWzddPXt0eXBlOjQsaW5kZXg6MX0sdGhpcy5ydWxlc1sxXS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMV0ub3Bjb2Rlc1swXT17dHlwZTozLG1pbjoxLG1heDoxLzB9LHRoaXMucnVsZXNbMV0ub3Bjb2Rlc1sxXT17dHlwZToxLGNoaWxkcmVuOlsyLDNdfSx0aGlzLnJ1bGVzWzFdLm9wY29kZXNbMl09e3R5cGU6NCxpbmRleDozfSx0aGlzLnJ1bGVzWzFdLm9wY29kZXNbM109e3R5cGU6NCxpbmRleDo0fSx0aGlzLnJ1bGVzWzJdLm9wY29kZXM9W10sdGhpcy5ydWxlc1syXS5vcGNvZGVzWzBdPXt0eXBlOjcsc3RyaW5nOls0N119LHRoaXMucnVsZXNbM10ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzNdLm9wY29kZXNbMF09e3R5cGU6MyxtaW46MSxtYXg6MS8wfSx0aGlzLnJ1bGVzWzNdLm9wY29kZXNbMV09e3R5cGU6NCxpbmRleDo2fSx0aGlzLnJ1bGVzWzRdLm9wY29kZXM9W10sdGhpcy5ydWxlc1s0XS5vcGNvZGVzWzBdPXt0eXBlOjIsY2hpbGRyZW46WzEsMiwzXX0sdGhpcy5ydWxlc1s0XS5vcGNvZGVzWzFdPXt0eXBlOjcsc3RyaW5nOlsxMjNdfSx0aGlzLnJ1bGVzWzRdLm9wY29kZXNbMl09e3R5cGU6NCxpbmRleDo1fSx0aGlzLnJ1bGVzWzRdLm9wY29kZXNbM109e3R5cGU6NyxzdHJpbmc6WzEyNV19LHRoaXMucnVsZXNbNV0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzVdLm9wY29kZXNbMF09e3R5cGU6MyxtaW46MSxtYXg6MS8wfSx0aGlzLnJ1bGVzWzVdLm9wY29kZXNbMV09e3R5cGU6MSxjaGlsZHJlbjpbMiwzLDRdfSx0aGlzLnJ1bGVzWzVdLm9wY29kZXNbMl09e3R5cGU6NSxtaW46MCxtYXg6MTIyfSx0aGlzLnJ1bGVzWzVdLm9wY29kZXNbM109e3R5cGU6NixzdHJpbmc6WzEyNF19LHRoaXMucnVsZXNbNV0ub3Bjb2Rlc1s0XT17dHlwZTo1LG1pbjoxMjYsbWF4OjExMTQxMTF9LHRoaXMucnVsZXNbNl0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzZdLm9wY29kZXNbMF09e3R5cGU6MSxjaGlsZHJlbjpbMSwyLDMsNCw1XX0sdGhpcy5ydWxlc1s2XS5vcGNvZGVzWzFdPXt0eXBlOjQsaW5kZXg6N30sdGhpcy5ydWxlc1s2XS5vcGNvZGVzWzJdPXt0eXBlOjQsaW5kZXg6OH0sdGhpcy5ydWxlc1s2XS5vcGNvZGVzWzNdPXt0eXBlOjQsaW5kZXg6OX0sdGhpcy5ydWxlc1s2XS5vcGNvZGVzWzRdPXt0eXBlOjcsc3RyaW5nOls1OF19LHRoaXMucnVsZXNbNl0ub3Bjb2Rlc1s1XT17dHlwZTo3LHN0cmluZzpbNjRdfSx0aGlzLnJ1bGVzWzddLm9wY29kZXM9W10sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzBdPXt0eXBlOjEsY2hpbGRyZW46WzEsMiwzLDQsNSw2XX0sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzFdPXt0eXBlOjQsaW5kZXg6MTB9LHRoaXMucnVsZXNbN10ub3Bjb2Rlc1syXT17dHlwZTo0LGluZGV4OjExfSx0aGlzLnJ1bGVzWzddLm9wY29kZXNbM109e3R5cGU6NyxzdHJpbmc6WzQ1XX0sdGhpcy5ydWxlc1s3XS5vcGNvZGVzWzRdPXt0eXBlOjcsc3RyaW5nOls0Nl19LHRoaXMucnVsZXNbN10ub3Bjb2Rlc1s1XT17dHlwZTo3LHN0cmluZzpbOTVdfSx0aGlzLnJ1bGVzWzddLm9wY29kZXNbNl09e3R5cGU6NyxzdHJpbmc6WzEyNl19LHRoaXMucnVsZXNbOF0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzhdLm9wY29kZXNbMF09e3R5cGU6MixjaGlsZHJlbjpbMSwyLDNdfSx0aGlzLnJ1bGVzWzhdLm9wY29kZXNbMV09e3R5cGU6NyxzdHJpbmc6WzM3XX0sdGhpcy5ydWxlc1s4XS5vcGNvZGVzWzJdPXt0eXBlOjQsaW5kZXg6MTJ9LHRoaXMucnVsZXNbOF0ub3Bjb2Rlc1szXT17dHlwZTo0LGluZGV4OjEyfSx0aGlzLnJ1bGVzWzldLm9wY29kZXM9W10sdGhpcy5ydWxlc1s5XS5vcGNvZGVzWzBdPXt0eXBlOjEsY2hpbGRyZW46WzEsMiwzLDQsNSw2LDcsOCw5LDEwLDExXX0sdGhpcy5ydWxlc1s5XS5vcGNvZGVzWzFdPXt0eXBlOjcsc3RyaW5nOlszM119LHRoaXMucnVsZXNbOV0ub3Bjb2Rlc1syXT17dHlwZTo3LHN0cmluZzpbMzZdfSx0aGlzLnJ1bGVzWzldLm9wY29kZXNbM109e3R5cGU6NyxzdHJpbmc6WzM4XX0sdGhpcy5ydWxlc1s5XS5vcGNvZGVzWzRdPXt0eXBlOjcsc3RyaW5nOlszOV19LHRoaXMucnVsZXNbOV0ub3Bjb2Rlc1s1XT17dHlwZTo3LHN0cmluZzpbNDBdfSx0aGlzLnJ1bGVzWzldLm9wY29kZXNbNl09e3R5cGU6NyxzdHJpbmc6WzQxXX0sdGhpcy5ydWxlc1s5XS5vcGNvZGVzWzddPXt0eXBlOjcsc3RyaW5nOls0Ml19LHRoaXMucnVsZXNbOV0ub3Bjb2Rlc1s4XT17dHlwZTo3LHN0cmluZzpbNDNdfSx0aGlzLnJ1bGVzWzldLm9wY29kZXNbOV09e3R5cGU6NyxzdHJpbmc6WzQ0XX0sdGhpcy5ydWxlc1s5XS5vcGNvZGVzWzEwXT17dHlwZTo3LHN0cmluZzpbNTldfSx0aGlzLnJ1bGVzWzldLm9wY29kZXNbMTFdPXt0eXBlOjcsc3RyaW5nOls2MV19LHRoaXMucnVsZXNbMTBdLm9wY29kZXM9W10sdGhpcy5ydWxlc1sxMF0ub3Bjb2Rlc1swXT17dHlwZToxLGNoaWxkcmVuOlsxLDJdfSx0aGlzLnJ1bGVzWzEwXS5vcGNvZGVzWzFdPXt0eXBlOjUsbWluOjY1LG1heDo5MH0sdGhpcy5ydWxlc1sxMF0ub3Bjb2Rlc1syXT17dHlwZTo1LG1pbjo5NyxtYXg6MTIyfSx0aGlzLnJ1bGVzWzExXS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMTFdLm9wY29kZXNbMF09e3R5cGU6NSxtaW46NDgsbWF4OjU3fSx0aGlzLnJ1bGVzWzEyXS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMTJdLm9wY29kZXNbMF09e3R5cGU6MSxjaGlsZHJlbjpbMSwyLDMsNCw1LDYsN119LHRoaXMucnVsZXNbMTJdLm9wY29kZXNbMV09e3R5cGU6NCxpbmRleDoxMX0sdGhpcy5ydWxlc1sxMl0ub3Bjb2Rlc1syXT17dHlwZTo3LHN0cmluZzpbOTddfSx0aGlzLnJ1bGVzWzEyXS5vcGNvZGVzWzNdPXt0eXBlOjcsc3RyaW5nOls5OF19LHRoaXMucnVsZXNbMTJdLm9wY29kZXNbNF09e3R5cGU6NyxzdHJpbmc6Wzk5XX0sdGhpcy5ydWxlc1sxMl0ub3Bjb2Rlc1s1XT17dHlwZTo3LHN0cmluZzpbMTAwXX0sdGhpcy5ydWxlc1sxMl0ub3Bjb2Rlc1s2XT17dHlwZTo3LHN0cmluZzpbMTAxXX0sdGhpcy5ydWxlc1sxMl0ub3Bjb2Rlc1s3XT17dHlwZTo3LHN0cmluZzpbMTAyXX0sdGhpcy50b1N0cmluZz1mdW5jdGlvbiB0b1N0cmluZygpe2xldCBzPSIiO3JldHVybiBzKz0iOyBPcGVuQVBJIFBhdGggVGVtcGxhdGluZyBBQk5GIHN5bnRheFxuIixzKz0iOyB2YXJpYW50IG9mIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTMuM1xuIixzKz0icGF0aC10ZW1wbGF0ZSAgICAgICAgICAgICAgICAgID0gc2xhc2ggKiggcGF0aC1zZWdtZW50IHNsYXNoICkgWyBwYXRoLXNlZ21lbnQgXVxuIixzKz0icGF0aC1zZWdtZW50ICAgICAgICAgICAgICAgICAgID0gMSooIHBhdGgtbGl0ZXJhbCAvIHRlbXBsYXRlLWV4cHJlc3Npb24gKVxuIixzKz0nc2xhc2ggICAgICAgICAgICAgICAgICAgICAgICAgID0gIi8iXG4nLHMrPSJwYXRoLWxpdGVyYWwgICAgICAgICAgICAgICAgICAgPSAxKnBjaGFyXG4iLHMrPSd0ZW1wbGF0ZS1leHByZXNzaW9uICAgICAgICAgICAgPSAieyIgdGVtcGxhdGUtZXhwcmVzc2lvbi1wYXJhbS1uYW1lICJ9IlxuJyxzKz0idGVtcGxhdGUtZXhwcmVzc2lvbi1wYXJhbS1uYW1lID0gMSooICV4MDAtN0EgLyAleDdDIC8gJXg3RS0xMEZGRkYgKSA7IGV2ZXJ5IFVURjggY2hhcmFjdGVyIGV4Y2VwdCB7IGFuZCB9IChmcm9tIE9wZW5BUEkpXG4iLHMrPSJcbiIscys9IjsgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMy4zXG4iLHMrPSdwY2hhciAgICAgICAgICAgICAgID0gdW5yZXNlcnZlZCAvIHBjdC1lbmNvZGVkIC8gc3ViLWRlbGltcyAvICI6IiAvICJAIlxuJyxzKz0ndW5yZXNlcnZlZCAgICAgICAgICA9IEFMUEhBIC8gRElHSVQgLyAiLSIgLyAiLiIgLyAiXyIgLyAifiJcbicscys9IiAgICAgICAgICAgICAgICAgICAgOyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzM5ODYjc2VjdGlvbi0yLjNcbiIscys9J3BjdC1lbmNvZGVkICAgICAgICAgPSAiJSIgSEVYRElHIEhFWERJR1xuJyxzKz0iICAgICAgICAgICAgICAgICAgICA7IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTIuMVxuIixzKz0nc3ViLWRlbGltcyAgICAgICAgICA9ICIhIiAvICIkIiAvICImIiAvICJcJyIgLyAiKCIgLyAiKSJcbicscys9JyAgICAgICAgICAgICAgICAgICAgLyAiKiIgLyAiKyIgLyAiLCIgLyAiOyIgLyAiPSJcbicscys9IiAgICAgICAgICAgICAgICAgICAgOyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzM5ODYjc2VjdGlvbi0yLjJcbiIscys9IlxuIixzKz0iOyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzUyMzQjYXBwZW5kaXgtQi4xXG4iLHMrPSJBTFBIQSAgICAgICAgICAgICAgID0gJXg0MS01QSAvICV4NjEtN0EgICA7IEEtWiAvIGEtelxuIixzKz0iRElHSVQgICAgICAgICAgICAgICA9ICV4MzAtMzkgICAgICAgICAgICA7IDAtOVxuIixzKz0nSEVYRElHICAgICAgICAgICAgICA9IERJR0lUIC8gIkEiIC8gIkIiIC8gIkMiIC8gIkQiIC8gIkUiIC8gIkYiXG4nLCc7IE9wZW5BUEkgUGF0aCBUZW1wbGF0aW5nIEFCTkYgc3ludGF4XG47IHZhcmlhbnQgb2YgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMy4zXG5wYXRoLXRlbXBsYXRlICAgICAgICAgICAgICAgICAgPSBzbGFzaCAqKCBwYXRoLXNlZ21lbnQgc2xhc2ggKSBbIHBhdGgtc2VnbWVudCBdXG5wYXRoLXNlZ21lbnQgICAgICAgICAgICAgICAgICAgPSAxKiggcGF0aC1saXRlcmFsIC8gdGVtcGxhdGUtZXhwcmVzc2lvbiApXG5zbGFzaCAgICAgICAgICAgICAgICAgICAgICAgICAgPSAiLyJcbnBhdGgtbGl0ZXJhbCAgICAgICAgICAgICAgICAgICA9IDEqcGNoYXJcbnRlbXBsYXRlLWV4cHJlc3Npb24gICAgICAgICAgICA9ICJ7IiB0ZW1wbGF0ZS1leHByZXNzaW9uLXBhcmFtLW5hbWUgIn0iXG50ZW1wbGF0ZS1leHByZXNzaW9uLXBhcmFtLW5hbWUgPSAxKiggJXgwMC03QSAvICV4N0MgLyAleDdFLTEwRkZGRiApIDsgZXZlcnkgVVRGOCBjaGFyYWN0ZXIgZXhjZXB0IHsgYW5kIH0gKGZyb20gT3BlbkFQSSlcblxuOyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzM5ODYjc2VjdGlvbi0zLjNcbnBjaGFyICAgICAgICAgICAgICAgPSB1bnJlc2VydmVkIC8gcGN0LWVuY29kZWQgLyBzdWItZGVsaW1zIC8gIjoiIC8gIkAiXG51bnJlc2VydmVkICAgICAgICAgID0gQUxQSEEgLyBESUdJVCAvICItIiAvICIuIiAvICJfIiAvICJ+IlxuICAgICAgICAgICAgICAgICAgICA7IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTIuM1xucGN0LWVuY29kZWQgICAgICAgICA9ICIlIiBIRVhESUcgSEVYRElHXG4gICAgICAgICAgICAgICAgICAgIDsgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMi4xXG5zdWItZGVsaW1zICAgICAgICAgID0gIiEiIC8gIiQiIC8gIiYiIC8gIlwnIiAvICIoIiAvICIpIlxuICAgICAgICAgICAgICAgICAgICAvICIqIiAvICIrIiAvICIsIiAvICI7IiAvICI9IlxuICAgICAgICAgICAgICAgICAgICA7IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTIuMlxuXG47IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNTIzNCNhcHBlbmRpeC1CLjFcbkFMUEhBICAgICAgICAgICAgICAgPSAleDQxLTVBIC8gJXg2MS03QSAgIDsgQS1aIC8gYS16XG5ESUdJVCAgICAgICAgICAgICAgID0gJXgzMC0zOSAgICAgICAgICAgIDsgMC05XG5IRVhESUcgICAgICAgICAgICAgID0gRElHSVQgLyAiQSIgLyAiQiIgLyAiQyIgLyAiRCIgLyAiRSIgLyAiRiJcbid9fWNvbnN0IGNhbGxiYWNrc19zbGFzaD0ocyxvLGksYSx1KT0+KHM9PT1FcC5TRU1fUFJFP3UucHVzaChbInNsYXNoIixTcC5jaGFyc1RvU3RyaW5nKG8saSxhKV0pOkVwLlNFTV9QT1NULEVwLlNFTV9PSykscGF0aF90ZW1wbGF0ZT0ocyxvLGksYSx1KT0+e2lmKHM9PT1FcC5TRU1fUFJFKXtpZighMT09PUFycmF5LmlzQXJyYXkodSkpdGhyb3cgbmV3IEVycm9yKCJwYXJzZXIncyB1c2VyIGRhdGEgbXVzdCBiZSBhbiBhcnJheSIpO3UucHVzaChbInBhdGgtdGVtcGxhdGUiLFNwLmNoYXJzVG9TdHJpbmcobyxpLGEpXSl9cmV0dXJuIEVwLlNFTV9PS30scGF0aF9saXRlcmFsPShzLG8saSxhLHUpPT4ocz09PUVwLlNFTV9QUkU/dS5wdXNoKFsicGF0aC1saXRlcmFsIixTcC5jaGFyc1RvU3RyaW5nKG8saSxhKV0pOkVwLlNFTV9QT1NULEVwLlNFTV9PSyksdGVtcGxhdGVfZXhwcmVzc2lvbj0ocyxvLGksYSx1KT0+KHM9PT1FcC5TRU1fUFJFP3UucHVzaChbInRlbXBsYXRlLWV4cHJlc3Npb24iLFNwLmNoYXJzVG9TdHJpbmcobyxpLGEpXSk6RXAuU0VNX1BPU1QsRXAuU0VNX09LKSx0ZW1wbGF0ZV9leHByZXNzaW9uX3BhcmFtX25hbWU9KHMsbyxpLGEsdSk9PihzPT09RXAuU0VNX1BSRT91LnB1c2goWyJ0ZW1wbGF0ZS1leHByZXNzaW9uLXBhcmFtLW5hbWUiLFNwLmNoYXJzVG9TdHJpbmcobyxpLGEpXSk6RXAuU0VNX1BPU1QsRXAuU0VNX09LKSxMeD1uZXcgcGF0aF90ZW1wbGF0aW5nX2dyYW1tYXIsb3BlbmFwaV9wYXRoX3RlbXBsYXRpbmdfZXNfcGFyc2U9cz0+e2NvbnN0IG89bmV3IHlwO28uYXN0PW5ldyB2cCxvLmFzdC5jYWxsYmFja3NbInBhdGgtdGVtcGxhdGUiXT1wYXRoX3RlbXBsYXRlLG8uYXN0LmNhbGxiYWNrcy5zbGFzaD1jYWxsYmFja3Nfc2xhc2gsby5hc3QuY2FsbGJhY2tzWyJwYXRoLWxpdGVyYWwiXT1wYXRoX2xpdGVyYWwsby5hc3QuY2FsbGJhY2tzWyJ0ZW1wbGF0ZS1leHByZXNzaW9uIl09dGVtcGxhdGVfZXhwcmVzc2lvbixvLmFzdC5jYWxsYmFja3NbInRlbXBsYXRlLWV4cHJlc3Npb24tcGFyYW0tbmFtZSJdPXRlbXBsYXRlX2V4cHJlc3Npb25fcGFyYW1fbmFtZTtyZXR1cm57cmVzdWx0Om8ucGFyc2UoTHgsInBhdGgtdGVtcGxhdGUiLHMpLGFzdDpvLmFzdH19LGVuY29kZVBhdGhDb21wb25lbnQ9cz0+KHM9Pnt0cnl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBzJiZkZWNvZGVVUklDb21wb25lbnQocykhPT1zfWNhdGNoe3JldHVybiExfX0pKHMpP3M6ZW5jb2RlVVJJQ29tcG9uZW50KHMpLnJlcGxhY2UoLyU1Qi9nLCJbIikucmVwbGFjZSgvJTVEL2csIl0iKSxGeD1bInNsYXNoIiwicGF0aC1saXRlcmFsIiwidGVtcGxhdGUtZXhwcmVzc2lvbi1wYXJhbS1uYW1lIl0sZXNfcmVzb2x2ZT0ocyxvLGk9e30pPT57Y29uc3QgYT17Li4ue2VuY29kZXI6ZW5jb2RlUGF0aENvbXBvbmVudH0sLi4uaX0sdT1vcGVuYXBpX3BhdGhfdGVtcGxhdGluZ19lc19wYXJzZShzKTtpZighdS5yZXN1bHQuc3VjY2VzcylyZXR1cm4gcztjb25zdCBfPVtdO3UuYXN0LnRyYW5zbGF0ZShfKTtjb25zdCB3PV8uZmlsdGVyKCgoW3NdKT0+RnguaW5jbHVkZXMocykpKS5tYXAoKChbcyxpXSk9PiJ0ZW1wbGF0ZS1leHByZXNzaW9uLXBhcmFtLW5hbWUiPT09cz9PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobyxpKT9hLmVuY29kZXIob1tpXSxpKTpgeyR7aX19YDppKSk7cmV0dXJuIHcuam9pbigiIil9LEJ4PShuZXcgcGF0aF90ZW1wbGF0aW5nX2dyYW1tYXIsbmV3IHlwLHtib2R5OmZ1bmN0aW9uIGJvZHlCdWlsZGVyKHtyZXE6cyx2YWx1ZTpvfSl7dm9pZCAwIT09byYmKHMuYm9keT1vKX0saGVhZGVyOmZ1bmN0aW9uIGhlYWRlckJ1aWxkZXIoe3JlcTpzLHBhcmFtZXRlcjpvLHZhbHVlOml9KXtzLmhlYWRlcnM9cy5oZWFkZXJzfHx7fSx2b2lkIDAhPT1pJiYocy5oZWFkZXJzW28ubmFtZV09aSl9LHF1ZXJ5OmZ1bmN0aW9uIHF1ZXJ5QnVpbGRlcih7cmVxOnMsdmFsdWU6byxwYXJhbWV0ZXI6aX0pe3MucXVlcnk9cy5xdWVyeXx8e30sITE9PT1vJiYiYm9vbGVhbiI9PT1pLnR5cGUmJihvPSJmYWxzZSIpOzA9PT1vJiZbIm51bWJlciIsImludGVnZXIiXS5pbmRleE9mKGkudHlwZSk+LTEmJihvPSIwIik7aWYobylzLnF1ZXJ5W2kubmFtZV09e2NvbGxlY3Rpb25Gb3JtYXQ6aS5jb2xsZWN0aW9uRm9ybWF0LHZhbHVlOm99O2Vsc2UgaWYoaS5hbGxvd0VtcHR5VmFsdWUmJnZvaWQgMCE9PW8pe2NvbnN0IG89aS5uYW1lO3MucXVlcnlbb109cy5xdWVyeVtvXXx8e30scy5xdWVyeVtvXS5hbGxvd0VtcHR5VmFsdWU9ITB9fSxwYXRoOmZ1bmN0aW9uIHBhdGhCdWlsZGVyKHtyZXE6cyx2YWx1ZTpvLHBhcmFtZXRlcjppLGJhc2VVUkw6YX0pe2lmKHZvaWQgMCE9PW8pe2NvbnN0IHU9cy51cmwucmVwbGFjZShhLCIiKSxfPWVzX3Jlc29sdmUodSx7W2kubmFtZV06b30pO3MudXJsPWErX319LGZvcm1EYXRhOmZ1bmN0aW9uIGZvcm1EYXRhQnVpbGRlcih7cmVxOnMsdmFsdWU6byxwYXJhbWV0ZXI6aX0peyExPT09byYmImJvb2xlYW4iPT09aS50eXBlJiYobz0iZmFsc2UiKTswPT09byYmWyJudW1iZXIiLCJpbnRlZ2VyIl0uaW5kZXhPZihpLnR5cGUpPi0xJiYobz0iMCIpO2lmKG8pcy5mb3JtPXMuZm9ybXx8e30scy5mb3JtW2kubmFtZV09e2NvbGxlY3Rpb25Gb3JtYXQ6aS5jb2xsZWN0aW9uRm9ybWF0LHZhbHVlOm99O2Vsc2UgaWYoaS5hbGxvd0VtcHR5VmFsdWUmJnZvaWQgMCE9PW8pe3MuZm9ybT1zLmZvcm18fHt9O2NvbnN0IG89aS5uYW1lO3MuZm9ybVtvXT1zLmZvcm1bb118fHt9LHMuZm9ybVtvXS5hbGxvd0VtcHR5VmFsdWU9ITB9fX0pO2Z1bmN0aW9uIHNlcmlhbGl6ZShzLG8pe3JldHVybiBvLmluY2x1ZGVzKCJhcHBsaWNhdGlvbi9qc29uIik/InN0cmluZyI9PXR5cGVvZiBzP3M6KEFycmF5LmlzQXJyYXkocykmJihzPXMubWFwKChzPT57dHJ5e3JldHVybiBKU09OLnBhcnNlKHMpfWNhdGNoKG8pe3JldHVybiBzfX0pKSksSlNPTi5zdHJpbmdpZnkocykpOlN0cmluZyhzKX1mdW5jdGlvbiBncmFtbWFyX2dyYW1tYXIoKXt0aGlzLmdyYW1tYXJPYmplY3Q9ImdyYW1tYXJPYmplY3QiLHRoaXMucnVsZXM9W10sdGhpcy5ydWxlc1swXT17bmFtZToibGVuaWVudC1jb29raWUtc3RyaW5nIixsb3dlcjoibGVuaWVudC1jb29raWUtc3RyaW5nIixpbmRleDowLGlzQmtyOiExfSx0aGlzLnJ1bGVzWzFdPXtuYW1lOiJsZW5pZW50LWNvb2tpZS1lbnRyeSIsbG93ZXI6ImxlbmllbnQtY29va2llLWVudHJ5IixpbmRleDoxLGlzQmtyOiExfSx0aGlzLnJ1bGVzWzJdPXtuYW1lOiJsZW5pZW50LWNvb2tpZS1wYWlyIixsb3dlcjoibGVuaWVudC1jb29raWUtcGFpciIsaW5kZXg6Mixpc0JrcjohMX0sdGhpcy5ydWxlc1szXT17bmFtZToibGVuaWVudC1jb29raWUtcGFpci1pbnZhbGlkIixsb3dlcjoibGVuaWVudC1jb29raWUtcGFpci1pbnZhbGlkIixpbmRleDozLGlzQmtyOiExfSx0aGlzLnJ1bGVzWzRdPXtuYW1lOiJsZW5pZW50LWNvb2tpZS1uYW1lIixsb3dlcjoibGVuaWVudC1jb29raWUtbmFtZSIsaW5kZXg6NCxpc0JrcjohMX0sdGhpcy5ydWxlc1s1XT17bmFtZToibGVuaWVudC1jb29raWUtdmFsdWUiLGxvd2VyOiJsZW5pZW50LWNvb2tpZS12YWx1ZSIsaW5kZXg6NSxpc0JrcjohMX0sdGhpcy5ydWxlc1s2XT17bmFtZToibGVuaWVudC1xdW90ZWQtdmFsdWUiLGxvd2VyOiJsZW5pZW50LXF1b3RlZC12YWx1ZSIsaW5kZXg6Nixpc0JrcjohMX0sdGhpcy5ydWxlc1s3XT17bmFtZToibGVuaWVudC1xdW90ZWQtY2hhciIsbG93ZXI6ImxlbmllbnQtcXVvdGVkLWNoYXIiLGluZGV4OjcsaXNCa3I6ITF9LHRoaXMucnVsZXNbOF09e25hbWU6ImxlbmllbnQtY29va2llLW9jdGV0Iixsb3dlcjoibGVuaWVudC1jb29raWUtb2N0ZXQiLGluZGV4OjgsaXNCa3I6ITF9LHRoaXMucnVsZXNbOV09e25hbWU6ImNvb2tpZS1zdHJpbmciLGxvd2VyOiJjb29raWUtc3RyaW5nIixpbmRleDo5LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzEwXT17bmFtZToiY29va2llLXBhaXIiLGxvd2VyOiJjb29raWUtcGFpciIsaW5kZXg6MTAsaXNCa3I6ITF9LHRoaXMucnVsZXNbMTFdPXtuYW1lOiJjb29raWUtbmFtZSIsbG93ZXI6ImNvb2tpZS1uYW1lIixpbmRleDoxMSxpc0JrcjohMX0sdGhpcy5ydWxlc1sxMl09e25hbWU6ImNvb2tpZS12YWx1ZSIsbG93ZXI6ImNvb2tpZS12YWx1ZSIsaW5kZXg6MTIsaXNCa3I6ITF9LHRoaXMucnVsZXNbMTNdPXtuYW1lOiJjb29raWUtb2N0ZXQiLGxvd2VyOiJjb29raWUtb2N0ZXQiLGluZGV4OjEzLGlzQmtyOiExfSx0aGlzLnJ1bGVzWzE0XT17bmFtZToiT1dTIixsb3dlcjoib3dzIixpbmRleDoxNCxpc0JrcjohMX0sdGhpcy5ydWxlc1sxNV09e25hbWU6InRva2VuIixsb3dlcjoidG9rZW4iLGluZGV4OjE1LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzE2XT17bmFtZToidGNoYXIiLGxvd2VyOiJ0Y2hhciIsaW5kZXg6MTYsaXNCa3I6ITF9LHRoaXMucnVsZXNbMTddPXtuYW1lOiJDSEFSIixsb3dlcjoiY2hhciIsaW5kZXg6MTcsaXNCa3I6ITF9LHRoaXMucnVsZXNbMThdPXtuYW1lOiJDVEwiLGxvd2VyOiJjdGwiLGluZGV4OjE4LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzE5XT17bmFtZToic2VwYXJhdG9ycyIsbG93ZXI6InNlcGFyYXRvcnMiLGluZGV4OjE5LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzIwXT17bmFtZToiU1AiLGxvd2VyOiJzcCIsaW5kZXg6MjAsaXNCa3I6ITF9LHRoaXMucnVsZXNbMjFdPXtuYW1lOiJIVCIsbG93ZXI6Imh0IixpbmRleDoyMSxpc0JrcjohMX0sdGhpcy5ydWxlc1syMl09e25hbWU6IkFMUEhBIixsb3dlcjoiYWxwaGEiLGluZGV4OjIyLGlzQmtyOiExfSx0aGlzLnJ1bGVzWzIzXT17bmFtZToiRElHSVQiLGxvd2VyOiJkaWdpdCIsaW5kZXg6MjMsaXNCa3I6ITF9LHRoaXMucnVsZXNbMjRdPXtuYW1lOiJEUVVPVEUiLGxvd2VyOiJkcXVvdGUiLGluZGV4OjI0LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzI1XT17bmFtZToiV1NQIixsb3dlcjoid3NwIixpbmRleDoyNSxpc0JrcjohMX0sdGhpcy5ydWxlc1syNl09e25hbWU6IkhUQUIiLGxvd2VyOiJodGFiIixpbmRleDoyNixpc0JrcjohMX0sdGhpcy5ydWxlc1syN109e25hbWU6IkNSTEYiLGxvd2VyOiJjcmxmIixpbmRleDoyNyxpc0JrcjohMX0sdGhpcy5ydWxlc1syOF09e25hbWU6IkNSIixsb3dlcjoiY3IiLGluZGV4OjI4LGlzQmtyOiExfSx0aGlzLnJ1bGVzWzI5XT17bmFtZToiTEYiLGxvd2VyOiJsZiIsaW5kZXg6MjksaXNCa3I6ITF9LHRoaXMudWR0cz1bXSx0aGlzLnJ1bGVzWzBdLm9wY29kZXM9W10sdGhpcy5ydWxlc1swXS5vcGNvZGVzWzBdPXt0eXBlOjIsY2hpbGRyZW46WzEsMl19LHRoaXMucnVsZXNbMF0ub3Bjb2Rlc1sxXT17dHlwZTo0LGluZGV4OjF9LHRoaXMucnVsZXNbMF0ub3Bjb2Rlc1syXT17dHlwZTozLG1pbjowLG1heDoxLzB9LHRoaXMucnVsZXNbMF0ub3Bjb2Rlc1szXT17dHlwZToyLGNoaWxkcmVuOls0LDUsNl19LHRoaXMucnVsZXNbMF0ub3Bjb2Rlc1s0XT17dHlwZTo3LHN0cmluZzpbNTldfSx0aGlzLnJ1bGVzWzBdLm9wY29kZXNbNV09e3R5cGU6NCxpbmRleDoxNH0sdGhpcy5ydWxlc1swXS5vcGNvZGVzWzZdPXt0eXBlOjQsaW5kZXg6MX0sdGhpcy5ydWxlc1sxXS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMV0ub3Bjb2Rlc1swXT17dHlwZToxLGNoaWxkcmVuOlsxLDJdfSx0aGlzLnJ1bGVzWzFdLm9wY29kZXNbMV09e3R5cGU6NCxpbmRleDoyfSx0aGlzLnJ1bGVzWzFdLm9wY29kZXNbMl09e3R5cGU6NCxpbmRleDozfSx0aGlzLnJ1bGVzWzJdLm9wY29kZXM9W10sdGhpcy5ydWxlc1syXS5vcGNvZGVzWzBdPXt0eXBlOjIsY2hpbGRyZW46WzEsMiwzLDQsNSw2LDddfSx0aGlzLnJ1bGVzWzJdLm9wY29kZXNbMV09e3R5cGU6NCxpbmRleDoxNH0sdGhpcy5ydWxlc1syXS5vcGNvZGVzWzJdPXt0eXBlOjQsaW5kZXg6NH0sdGhpcy5ydWxlc1syXS5vcGNvZGVzWzNdPXt0eXBlOjQsaW5kZXg6MTR9LHRoaXMucnVsZXNbMl0ub3Bjb2Rlc1s0XT17dHlwZTo3LHN0cmluZzpbNjFdfSx0aGlzLnJ1bGVzWzJdLm9wY29kZXNbNV09e3R5cGU6NCxpbmRleDoxNH0sdGhpcy5ydWxlc1syXS5vcGNvZGVzWzZdPXt0eXBlOjQsaW5kZXg6NX0sdGhpcy5ydWxlc1syXS5vcGNvZGVzWzddPXt0eXBlOjQsaW5kZXg6MTR9LHRoaXMucnVsZXNbM10ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzNdLm9wY29kZXNbMF09e3R5cGU6MixjaGlsZHJlbjpbMSwyLDRdfSx0aGlzLnJ1bGVzWzNdLm9wY29kZXNbMV09e3R5cGU6NCxpbmRleDoxNH0sdGhpcy5ydWxlc1szXS5vcGNvZGVzWzJdPXt0eXBlOjMsbWluOjEsbWF4OjEvMH0sdGhpcy5ydWxlc1szXS5vcGNvZGVzWzNdPXt0eXBlOjQsaW5kZXg6MTZ9LHRoaXMucnVsZXNbM10ub3Bjb2Rlc1s0XT17dHlwZTo0LGluZGV4OjE0fSx0aGlzLnJ1bGVzWzRdLm9wY29kZXM9W10sdGhpcy5ydWxlc1s0XS5vcGNvZGVzWzBdPXt0eXBlOjMsbWluOjEsbWF4OjEvMH0sdGhpcy5ydWxlc1s0XS5vcGNvZGVzWzFdPXt0eXBlOjEsY2hpbGRyZW46WzIsMyw0XX0sdGhpcy5ydWxlc1s0XS5vcGNvZGVzWzJdPXt0eXBlOjUsbWluOjMzLG1heDo1OH0sdGhpcy5ydWxlc1s0XS5vcGNvZGVzWzNdPXt0eXBlOjYsc3RyaW5nOls2MF19LHRoaXMucnVsZXNbNF0ub3Bjb2Rlc1s0XT17dHlwZTo1LG1pbjo2MixtYXg6MTI2fSx0aGlzLnJ1bGVzWzVdLm9wY29kZXM9W10sdGhpcy5ydWxlc1s1XS5vcGNvZGVzWzBdPXt0eXBlOjEsY2hpbGRyZW46WzEsNl19LHRoaXMucnVsZXNbNV0ub3Bjb2Rlc1sxXT17dHlwZToyLGNoaWxkcmVuOlsyLDNdfSx0aGlzLnJ1bGVzWzVdLm9wY29kZXNbMl09e3R5cGU6NCxpbmRleDo2fSx0aGlzLnJ1bGVzWzVdLm9wY29kZXNbM109e3R5cGU6MyxtaW46MCxtYXg6MX0sdGhpcy5ydWxlc1s1XS5vcGNvZGVzWzRdPXt0eXBlOjMsbWluOjAsbWF4OjEvMH0sdGhpcy5ydWxlc1s1XS5vcGNvZGVzWzVdPXt0eXBlOjQsaW5kZXg6OH0sdGhpcy5ydWxlc1s1XS5vcGNvZGVzWzZdPXt0eXBlOjMsbWluOjAsbWF4OjEvMH0sdGhpcy5ydWxlc1s1XS5vcGNvZGVzWzddPXt0eXBlOjQsaW5kZXg6OH0sdGhpcy5ydWxlc1s2XS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbNl0ub3Bjb2Rlc1swXT17dHlwZToyLGNoaWxkcmVuOlsxLDIsNF19LHRoaXMucnVsZXNbNl0ub3Bjb2Rlc1sxXT17dHlwZTo0LGluZGV4OjI0fSx0aGlzLnJ1bGVzWzZdLm9wY29kZXNbMl09e3R5cGU6MyxtaW46MCxtYXg6MS8wfSx0aGlzLnJ1bGVzWzZdLm9wY29kZXNbM109e3R5cGU6NCxpbmRleDo3fSx0aGlzLnJ1bGVzWzZdLm9wY29kZXNbNF09e3R5cGU6NCxpbmRleDoyNH0sdGhpcy5ydWxlc1s3XS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbN10ub3Bjb2Rlc1swXT17dHlwZToxLGNoaWxkcmVuOlsxLDJdfSx0aGlzLnJ1bGVzWzddLm9wY29kZXNbMV09e3R5cGU6NSxtaW46MzIsbWF4OjMzfSx0aGlzLnJ1bGVzWzddLm9wY29kZXNbMl09e3R5cGU6NSxtaW46MzUsbWF4OjEyNn0sdGhpcy5ydWxlc1s4XS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbOF0ub3Bjb2Rlc1swXT17dHlwZToxLGNoaWxkcmVuOlsxLDIsM119LHRoaXMucnVsZXNbOF0ub3Bjb2Rlc1sxXT17dHlwZTo1LG1pbjozMyxtYXg6NDN9LHRoaXMucnVsZXNbOF0ub3Bjb2Rlc1syXT17dHlwZTo1LG1pbjo0NSxtYXg6NTh9LHRoaXMucnVsZXNbOF0ub3Bjb2Rlc1szXT17dHlwZTo1LG1pbjo2MCxtYXg6MTI2fSx0aGlzLnJ1bGVzWzldLm9wY29kZXM9W10sdGhpcy5ydWxlc1s5XS5vcGNvZGVzWzBdPXt0eXBlOjIsY2hpbGRyZW46WzEsMl19LHRoaXMucnVsZXNbOV0ub3Bjb2Rlc1sxXT17dHlwZTo0LGluZGV4OjEwfSx0aGlzLnJ1bGVzWzldLm9wY29kZXNbMl09e3R5cGU6MyxtaW46MCxtYXg6MS8wfSx0aGlzLnJ1bGVzWzldLm9wY29kZXNbM109e3R5cGU6MixjaGlsZHJlbjpbNCw1LDZdfSx0aGlzLnJ1bGVzWzldLm9wY29kZXNbNF09e3R5cGU6NyxzdHJpbmc6WzU5XX0sdGhpcy5ydWxlc1s5XS5vcGNvZGVzWzVdPXt0eXBlOjQsaW5kZXg6MjB9LHRoaXMucnVsZXNbOV0ub3Bjb2Rlc1s2XT17dHlwZTo0LGluZGV4OjEwfSx0aGlzLnJ1bGVzWzEwXS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMTBdLm9wY29kZXNbMF09e3R5cGU6MixjaGlsZHJlbjpbMSwyLDNdfSx0aGlzLnJ1bGVzWzEwXS5vcGNvZGVzWzFdPXt0eXBlOjQsaW5kZXg6MTF9LHRoaXMucnVsZXNbMTBdLm9wY29kZXNbMl09e3R5cGU6NyxzdHJpbmc6WzYxXX0sdGhpcy5ydWxlc1sxMF0ub3Bjb2Rlc1szXT17dHlwZTo0LGluZGV4OjEyfSx0aGlzLnJ1bGVzWzExXS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMTFdLm9wY29kZXNbMF09e3R5cGU6NCxpbmRleDoxNX0sdGhpcy5ydWxlc1sxMl0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzEyXS5vcGNvZGVzWzBdPXt0eXBlOjEsY2hpbGRyZW46WzEsNl19LHRoaXMucnVsZXNbMTJdLm9wY29kZXNbMV09e3R5cGU6MixjaGlsZHJlbjpbMiwzLDVdfSx0aGlzLnJ1bGVzWzEyXS5vcGNvZGVzWzJdPXt0eXBlOjQsaW5kZXg6MjR9LHRoaXMucnVsZXNbMTJdLm9wY29kZXNbM109e3R5cGU6MyxtaW46MCxtYXg6MS8wfSx0aGlzLnJ1bGVzWzEyXS5vcGNvZGVzWzRdPXt0eXBlOjQsaW5kZXg6MTN9LHRoaXMucnVsZXNbMTJdLm9wY29kZXNbNV09e3R5cGU6NCxpbmRleDoyNH0sdGhpcy5ydWxlc1sxMl0ub3Bjb2Rlc1s2XT17dHlwZTozLG1pbjowLG1heDoxLzB9LHRoaXMucnVsZXNbMTJdLm9wY29kZXNbN109e3R5cGU6NCxpbmRleDoxM30sdGhpcy5ydWxlc1sxM10ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzEzXS5vcGNvZGVzWzBdPXt0eXBlOjEsY2hpbGRyZW46WzEsMiwzLDQsNV19LHRoaXMucnVsZXNbMTNdLm9wY29kZXNbMV09e3R5cGU6NixzdHJpbmc6WzMzXX0sdGhpcy5ydWxlc1sxM10ub3Bjb2Rlc1syXT17dHlwZTo1LG1pbjozNSxtYXg6NDN9LHRoaXMucnVsZXNbMTNdLm9wY29kZXNbM109e3R5cGU6NSxtaW46NDUsbWF4OjU4fSx0aGlzLnJ1bGVzWzEzXS5vcGNvZGVzWzRdPXt0eXBlOjUsbWluOjYwLG1heDo5MX0sdGhpcy5ydWxlc1sxM10ub3Bjb2Rlc1s1XT17dHlwZTo1LG1pbjo5MyxtYXg6MTI2fSx0aGlzLnJ1bGVzWzE0XS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMTRdLm9wY29kZXNbMF09e3R5cGU6MyxtaW46MCxtYXg6MS8wfSx0aGlzLnJ1bGVzWzE0XS5vcGNvZGVzWzFdPXt0eXBlOjIsY2hpbGRyZW46WzIsNF19LHRoaXMucnVsZXNbMTRdLm9wY29kZXNbMl09e3R5cGU6MyxtaW46MCxtYXg6MX0sdGhpcy5ydWxlc1sxNF0ub3Bjb2Rlc1szXT17dHlwZTo0LGluZGV4OjI3fSx0aGlzLnJ1bGVzWzE0XS5vcGNvZGVzWzRdPXt0eXBlOjQsaW5kZXg6MjV9LHRoaXMucnVsZXNbMTVdLm9wY29kZXM9W10sdGhpcy5ydWxlc1sxNV0ub3Bjb2Rlc1swXT17dHlwZTozLG1pbjoxLG1heDoxLzB9LHRoaXMucnVsZXNbMTVdLm9wY29kZXNbMV09e3R5cGU6NCxpbmRleDoxNn0sdGhpcy5ydWxlc1sxNl0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzE2XS5vcGNvZGVzWzBdPXt0eXBlOjEsY2hpbGRyZW46WzEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3XX0sdGhpcy5ydWxlc1sxNl0ub3Bjb2Rlc1sxXT17dHlwZTo3LHN0cmluZzpbMzNdfSx0aGlzLnJ1bGVzWzE2XS5vcGNvZGVzWzJdPXt0eXBlOjcsc3RyaW5nOlszNV19LHRoaXMucnVsZXNbMTZdLm9wY29kZXNbM109e3R5cGU6NyxzdHJpbmc6WzM2XX0sdGhpcy5ydWxlc1sxNl0ub3Bjb2Rlc1s0XT17dHlwZTo3LHN0cmluZzpbMzddfSx0aGlzLnJ1bGVzWzE2XS5vcGNvZGVzWzVdPXt0eXBlOjcsc3RyaW5nOlszOF19LHRoaXMucnVsZXNbMTZdLm9wY29kZXNbNl09e3R5cGU6NyxzdHJpbmc6WzM5XX0sdGhpcy5ydWxlc1sxNl0ub3Bjb2Rlc1s3XT17dHlwZTo3LHN0cmluZzpbNDJdfSx0aGlzLnJ1bGVzWzE2XS5vcGNvZGVzWzhdPXt0eXBlOjcsc3RyaW5nOls0M119LHRoaXMucnVsZXNbMTZdLm9wY29kZXNbOV09e3R5cGU6NyxzdHJpbmc6WzQ1XX0sdGhpcy5ydWxlc1sxNl0ub3Bjb2Rlc1sxMF09e3R5cGU6NyxzdHJpbmc6WzQ2XX0sdGhpcy5ydWxlc1sxNl0ub3Bjb2Rlc1sxMV09e3R5cGU6NyxzdHJpbmc6Wzk0XX0sdGhpcy5ydWxlc1sxNl0ub3Bjb2Rlc1sxMl09e3R5cGU6NyxzdHJpbmc6Wzk1XX0sdGhpcy5ydWxlc1sxNl0ub3Bjb2Rlc1sxM109e3R5cGU6NyxzdHJpbmc6Wzk2XX0sdGhpcy5ydWxlc1sxNl0ub3Bjb2Rlc1sxNF09e3R5cGU6NyxzdHJpbmc6WzEyNF19LHRoaXMucnVsZXNbMTZdLm9wY29kZXNbMTVdPXt0eXBlOjcsc3RyaW5nOlsxMjZdfSx0aGlzLnJ1bGVzWzE2XS5vcGNvZGVzWzE2XT17dHlwZTo0LGluZGV4OjIzfSx0aGlzLnJ1bGVzWzE2XS5vcGNvZGVzWzE3XT17dHlwZTo0LGluZGV4OjIyfSx0aGlzLnJ1bGVzWzE3XS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMTddLm9wY29kZXNbMF09e3R5cGU6NSxtaW46MSxtYXg6MTI3fSx0aGlzLnJ1bGVzWzE4XS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMThdLm9wY29kZXNbMF09e3R5cGU6MSxjaGlsZHJlbjpbMSwyXX0sdGhpcy5ydWxlc1sxOF0ub3Bjb2Rlc1sxXT17dHlwZTo1LG1pbjowLG1heDozMX0sdGhpcy5ydWxlc1sxOF0ub3Bjb2Rlc1syXT17dHlwZTo2LHN0cmluZzpbMTI3XX0sdGhpcy5ydWxlc1sxOV0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzE5XS5vcGNvZGVzWzBdPXt0eXBlOjEsY2hpbGRyZW46WzEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5XX0sdGhpcy5ydWxlc1sxOV0ub3Bjb2Rlc1sxXT17dHlwZTo3LHN0cmluZzpbNDBdfSx0aGlzLnJ1bGVzWzE5XS5vcGNvZGVzWzJdPXt0eXBlOjcsc3RyaW5nOls0MV19LHRoaXMucnVsZXNbMTldLm9wY29kZXNbM109e3R5cGU6NyxzdHJpbmc6WzYwXX0sdGhpcy5ydWxlc1sxOV0ub3Bjb2Rlc1s0XT17dHlwZTo3LHN0cmluZzpbNjJdfSx0aGlzLnJ1bGVzWzE5XS5vcGNvZGVzWzVdPXt0eXBlOjcsc3RyaW5nOls2NF19LHRoaXMucnVsZXNbMTldLm9wY29kZXNbNl09e3R5cGU6NyxzdHJpbmc6WzQ0XX0sdGhpcy5ydWxlc1sxOV0ub3Bjb2Rlc1s3XT17dHlwZTo3LHN0cmluZzpbNTldfSx0aGlzLnJ1bGVzWzE5XS5vcGNvZGVzWzhdPXt0eXBlOjcsc3RyaW5nOls1OF19LHRoaXMucnVsZXNbMTldLm9wY29kZXNbOV09e3R5cGU6NyxzdHJpbmc6WzkyXX0sdGhpcy5ydWxlc1sxOV0ub3Bjb2Rlc1sxMF09e3R5cGU6NixzdHJpbmc6WzM0XX0sdGhpcy5ydWxlc1sxOV0ub3Bjb2Rlc1sxMV09e3R5cGU6NyxzdHJpbmc6WzQ3XX0sdGhpcy5ydWxlc1sxOV0ub3Bjb2Rlc1sxMl09e3R5cGU6NyxzdHJpbmc6WzkxXX0sdGhpcy5ydWxlc1sxOV0ub3Bjb2Rlc1sxM109e3R5cGU6NyxzdHJpbmc6WzkzXX0sdGhpcy5ydWxlc1sxOV0ub3Bjb2Rlc1sxNF09e3R5cGU6NyxzdHJpbmc6WzYzXX0sdGhpcy5ydWxlc1sxOV0ub3Bjb2Rlc1sxNV09e3R5cGU6NyxzdHJpbmc6WzYxXX0sdGhpcy5ydWxlc1sxOV0ub3Bjb2Rlc1sxNl09e3R5cGU6NyxzdHJpbmc6WzEyM119LHRoaXMucnVsZXNbMTldLm9wY29kZXNbMTddPXt0eXBlOjcsc3RyaW5nOlsxMjVdfSx0aGlzLnJ1bGVzWzE5XS5vcGNvZGVzWzE4XT17dHlwZTo0LGluZGV4OjIwfSx0aGlzLnJ1bGVzWzE5XS5vcGNvZGVzWzE5XT17dHlwZTo0LGluZGV4OjIxfSx0aGlzLnJ1bGVzWzIwXS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMjBdLm9wY29kZXNbMF09e3R5cGU6NixzdHJpbmc6WzMyXX0sdGhpcy5ydWxlc1syMV0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzIxXS5vcGNvZGVzWzBdPXt0eXBlOjYsc3RyaW5nOls5XX0sdGhpcy5ydWxlc1syMl0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzIyXS5vcGNvZGVzWzBdPXt0eXBlOjEsY2hpbGRyZW46WzEsMl19LHRoaXMucnVsZXNbMjJdLm9wY29kZXNbMV09e3R5cGU6NSxtaW46NjUsbWF4OjkwfSx0aGlzLnJ1bGVzWzIyXS5vcGNvZGVzWzJdPXt0eXBlOjUsbWluOjk3LG1heDoxMjJ9LHRoaXMucnVsZXNbMjNdLm9wY29kZXM9W10sdGhpcy5ydWxlc1syM10ub3Bjb2Rlc1swXT17dHlwZTo1LG1pbjo0OCxtYXg6NTd9LHRoaXMucnVsZXNbMjRdLm9wY29kZXM9W10sdGhpcy5ydWxlc1syNF0ub3Bjb2Rlc1swXT17dHlwZTo2LHN0cmluZzpbMzRdfSx0aGlzLnJ1bGVzWzI1XS5vcGNvZGVzPVtdLHRoaXMucnVsZXNbMjVdLm9wY29kZXNbMF09e3R5cGU6MSxjaGlsZHJlbjpbMSwyXX0sdGhpcy5ydWxlc1syNV0ub3Bjb2Rlc1sxXT17dHlwZTo0LGluZGV4OjIwfSx0aGlzLnJ1bGVzWzI1XS5vcGNvZGVzWzJdPXt0eXBlOjQsaW5kZXg6MjZ9LHRoaXMucnVsZXNbMjZdLm9wY29kZXM9W10sdGhpcy5ydWxlc1syNl0ub3Bjb2Rlc1swXT17dHlwZTo2LHN0cmluZzpbOV19LHRoaXMucnVsZXNbMjddLm9wY29kZXM9W10sdGhpcy5ydWxlc1syN10ub3Bjb2Rlc1swXT17dHlwZToyLGNoaWxkcmVuOlsxLDJdfSx0aGlzLnJ1bGVzWzI3XS5vcGNvZGVzWzFdPXt0eXBlOjQsaW5kZXg6Mjh9LHRoaXMucnVsZXNbMjddLm9wY29kZXNbMl09e3R5cGU6NCxpbmRleDoyOX0sdGhpcy5ydWxlc1syOF0ub3Bjb2Rlcz1bXSx0aGlzLnJ1bGVzWzI4XS5vcGNvZGVzWzBdPXt0eXBlOjYsc3RyaW5nOlsxM119LHRoaXMucnVsZXNbMjldLm9wY29kZXM9W10sdGhpcy5ydWxlc1syOV0ub3Bjb2Rlc1swXT17dHlwZTo2LHN0cmluZzpbMTBdfSx0aGlzLnRvU3RyaW5nPWZ1bmN0aW9uIHRvU3RyaW5nKCl7bGV0IHM9IiI7cmV0dXJuIHMrPSI7IExlbmllbnQgdmVyc2lvbiBvZiBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzYyNjUjc2VjdGlvbi00LjIuMVxuIixzKz0nbGVuaWVudC1jb29raWUtc3RyaW5nICAgICAgICA9IGxlbmllbnQtY29va2llLWVudHJ5ICooICI7IiBPV1MgbGVuaWVudC1jb29raWUtZW50cnkgKVxuJyxzKz0ibGVuaWVudC1jb29raWUtZW50cnkgICAgICAgICA9IGxlbmllbnQtY29va2llLXBhaXIgLyBsZW5pZW50LWNvb2tpZS1wYWlyLWludmFsaWRcbiIscys9J2xlbmllbnQtY29va2llLXBhaXIgICAgICAgICAgPSBPV1MgbGVuaWVudC1jb29raWUtbmFtZSBPV1MgIj0iIE9XUyBsZW5pZW50LWNvb2tpZS12YWx1ZSBPV1Ncbicscys9J2xlbmllbnQtY29va2llLXBhaXItaW52YWxpZCAgPSBPV1MgMSp0Y2hhciBPV1MgOyBBbGxvdyBmb3Igc3RhbmRhbG9uZSBlbnRyaWVzIGxpa2UgImZpenoiIHRvIGJlIGlnbm9yZWRcbicscys9J2xlbmllbnQtY29va2llLW5hbWUgICAgICAgICAgPSAxKiggJXgyMS0zQSAvICV4M0MgLyAleDNFLTdFICkgOyBBbGxvdyBhbGwgcHJpbnRhYmxlIFVTLUFTQ0lJIGV4Y2VwdCAiPSJcbicscys9ImxlbmllbnQtY29va2llLXZhbHVlICAgICAgICAgPSBsZW5pZW50LXF1b3RlZC12YWx1ZSBbICpsZW5pZW50LWNvb2tpZS1vY3RldCBdIC8gKmxlbmllbnQtY29va2llLW9jdGV0XG4iLHMrPSJsZW5pZW50LXF1b3RlZC12YWx1ZSAgICAgICAgID0gRFFVT1RFICooIGxlbmllbnQtcXVvdGVkLWNoYXIgKSBEUVVPVEVcbiIscys9ImxlbmllbnQtcXVvdGVkLWNoYXIgICAgICAgICAgPSAleDIwLTIxIC8gJXgyMy03RSA7IEFsbG93IGFsbCBwcmludGFibGUgVVMtQVNDSUkgZXhjZXB0IERRVU9URVxuIixzKz0ibGVuaWVudC1jb29raWUtb2N0ZXQgICAgICAgICA9ICV4MjEtMkIgLyAleDJELTNBIC8gJXgzQy03RVxuIixzKz0iICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IEFsbG93IGFsbCBwcmludGFibGUgY2hhcmFjdGVycyBleGNlcHQgQ1RMcywgc2VtaWNvbG9uIGFuZCBTUFxuIixzKz0iXG4iLHMrPSI7IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNjI2NSNzZWN0aW9uLTQuMi4xXG4iLHMrPSdjb29raWUtc3RyaW5nICAgICA9IGNvb2tpZS1wYWlyICooICI7IiBTUCBjb29raWUtcGFpciApXG4nLHMrPSJcbiIscys9IjsgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM2MjY1I3NlY3Rpb24tNC4xLjFcbiIscys9IjsgaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvZXJyYXRhL2VpZDU1MThcbiIscys9J2Nvb2tpZS1wYWlyICAgICAgID0gY29va2llLW5hbWUgIj0iIGNvb2tpZS12YWx1ZVxuJyxzKz0iY29va2llLW5hbWUgICAgICAgPSB0b2tlblxuIixzKz0iY29va2llLXZhbHVlICAgICAgPSAoIERRVU9URSAqY29va2llLW9jdGV0IERRVU9URSApIC8gKmNvb2tpZS1vY3RldFxuIixzKz0iICAgICAgICAgICAgICAgICAgOyBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9lcnJhdGEvZWlkODI0MlxuIixzKz0iY29va2llLW9jdGV0ICAgICAgPSAleDIxIC8gJXgyMy0yQiAvICV4MkQtM0EgLyAleDNDLTVCIC8gJXg1RC03RVxuIixzKz0iICAgICAgICAgICAgICAgICAgICAgICA7IFVTLUFTQ0lJIGNoYXJhY3RlcnMgZXhjbHVkaW5nIENUTHMsXG4iLHMrPSIgICAgICAgICAgICAgICAgICAgICAgIDsgd2hpdGVzcGFjZSwgRFFVT1RFLCBjb21tYSwgc2VtaWNvbG9uLFxuIixzKz0iICAgICAgICAgICAgICAgICAgICAgICA7IGFuZCBiYWNrc2xhc2hcbiIscys9IlxuIixzKz0iOyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzYyNjUjc2VjdGlvbi0yLjJcbiIscys9J09XUyAgICAgICAgICAgID0gKiggWyBDUkxGIF0gV1NQICkgOyAib3B0aW9uYWwiIHdoaXRlc3BhY2Vcbicscys9IlxuIixzKz0iOyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzkxMTAjc2VjdGlvbi01LjYuMlxuIixzKz0idG9rZW4gICAgICAgICAgPSAxKih0Y2hhcilcbiIscys9J3RjaGFyICAgICAgICAgID0gIiEiIC8gIiMiIC8gIiQiIC8gIiUiIC8gIiYiIC8gIlwnIiAvICIqIlxuJyxzKz0nICAgICAgICAgICAgICAgICAvICIrIiAvICItIiAvICIuIiAvICJeIiAvICJfIiAvICJgIiAvICJ8IiAvICJ+IlxuJyxzKz0iICAgICAgICAgICAgICAgICAvIERJR0lUIC8gQUxQSEFcbiIscys9IiAgICAgICAgICAgICAgICAgOyBhbnkgVkNIQVIsIGV4Y2VwdCBkZWxpbWl0ZXJzXG4iLHMrPSJcbiIscys9IjsgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmMyNjE2I3NlY3Rpb24tMi4yXG4iLHMrPSJDSEFSICAgICAgICAgICA9ICV4MDEtN0YgOyBhbnkgVVMtQVNDSUkgY2hhcmFjdGVyIChvY3RldHMgMCAtIDEyNylcbiIscys9IkNUTCAgICAgICAgICAgID0gJXgwMC0xRiAvICV4N0YgOyBhbnkgVVMtQVNDSUkgY29udHJvbCBjaGFyYWN0ZXJcbiIscys9J3NlcGFyYXRvcnMgICAgID0gIigiIC8gIikiIC8gIjwiIC8gIj4iIC8gIkAiIC8gIiwiIC8gIjsiIC8gIjoiIC8gIlxcIiAvICV4MjIgLyAiLyIgLyAiWyIgLyAiXSIgLyAiPyIgLyAiPSIgLyAieyIgLyAifSIgLyBTUCAvIEhUXG4nLHMrPSJTUCAgICAgICAgICAgICA9ICV4MjAgOyBVUy1BU0NJSSBTUCwgc3BhY2UgKDMyKVxuIixzKz0iSFQgICAgICAgICAgICAgPSAleDA5IDsgVVMtQVNDSUkgSFQsIGhvcml6b250YWwtdGFiICg5KVxuIixzKz0iXG4iLHMrPSI7IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNTIzNCNhcHBlbmRpeC1CLjFcbiIscys9IkFMUEhBICAgICAgICAgID0gICV4NDEtNUEgLyAleDYxLTdBIDsgQS1aIC8gYS16XG4iLHMrPSJESUdJVCAgICAgICAgICA9ICAleDMwLTM5IDsgMC05XG4iLHMrPSdEUVVPVEUgICAgICAgICA9ICAleDIyIDsgIiAoRG91YmxlIFF1b3RlKVxuJyxzKz0iV1NQICAgICAgICAgICAgPSAgU1AgLyBIVEFCIDsgd2hpdGUgc3BhY2VcbiIscys9IkhUQUIgICAgICAgICAgID0gICV4MDkgOyBob3Jpem9udGFsIHRhYlxuIixzKz0iQ1JMRiAgICAgICAgICAgPSAgQ1IgTEYgOyBJbnRlcm5ldCBzdGFuZGFyZCBuZXdsaW5lXG4iLHMrPSJDUiAgICAgICAgICAgICA9ICAleDBEIDsgY2FycmlhZ2UgcmV0dXJuXG4iLHMrPSJMRiAgICAgICAgICAgICA9ICAleDBBIDsgbGluZWZlZWRcbiIsJzsgTGVuaWVudCB2ZXJzaW9uIG9mIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNjI2NSNzZWN0aW9uLTQuMi4xXG5sZW5pZW50LWNvb2tpZS1zdHJpbmcgICAgICAgID0gbGVuaWVudC1jb29raWUtZW50cnkgKiggIjsiIE9XUyBsZW5pZW50LWNvb2tpZS1lbnRyeSApXG5sZW5pZW50LWNvb2tpZS1lbnRyeSAgICAgICAgID0gbGVuaWVudC1jb29raWUtcGFpciAvIGxlbmllbnQtY29va2llLXBhaXItaW52YWxpZFxubGVuaWVudC1jb29raWUtcGFpciAgICAgICAgICA9IE9XUyBsZW5pZW50LWNvb2tpZS1uYW1lIE9XUyAiPSIgT1dTIGxlbmllbnQtY29va2llLXZhbHVlIE9XU1xubGVuaWVudC1jb29raWUtcGFpci1pbnZhbGlkICA9IE9XUyAxKnRjaGFyIE9XUyA7IEFsbG93IGZvciBzdGFuZGFsb25lIGVudHJpZXMgbGlrZSAiZml6eiIgdG8gYmUgaWdub3JlZFxubGVuaWVudC1jb29raWUtbmFtZSAgICAgICAgICA9IDEqKCAleDIxLTNBIC8gJXgzQyAvICV4M0UtN0UgKSA7IEFsbG93IGFsbCBwcmludGFibGUgVVMtQVNDSUkgZXhjZXB0ICI9IlxubGVuaWVudC1jb29raWUtdmFsdWUgICAgICAgICA9IGxlbmllbnQtcXVvdGVkLXZhbHVlIFsgKmxlbmllbnQtY29va2llLW9jdGV0IF0gLyAqbGVuaWVudC1jb29raWUtb2N0ZXRcbmxlbmllbnQtcXVvdGVkLXZhbHVlICAgICAgICAgPSBEUVVPVEUgKiggbGVuaWVudC1xdW90ZWQtY2hhciApIERRVU9URVxubGVuaWVudC1xdW90ZWQtY2hhciAgICAgICAgICA9ICV4MjAtMjEgLyAleDIzLTdFIDsgQWxsb3cgYWxsIHByaW50YWJsZSBVUy1BU0NJSSBleGNlcHQgRFFVT1RFXG5sZW5pZW50LWNvb2tpZS1vY3RldCAgICAgICAgID0gJXgyMS0yQiAvICV4MkQtM0EgLyAleDNDLTdFXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgQWxsb3cgYWxsIHByaW50YWJsZSBjaGFyYWN0ZXJzIGV4Y2VwdCBDVExzLCBzZW1pY29sb24gYW5kIFNQXG5cbjsgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM2MjY1I3NlY3Rpb24tNC4yLjFcbmNvb2tpZS1zdHJpbmcgICAgID0gY29va2llLXBhaXIgKiggIjsiIFNQIGNvb2tpZS1wYWlyIClcblxuOyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzYyNjUjc2VjdGlvbi00LjEuMVxuOyBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9lcnJhdGEvZWlkNTUxOFxuY29va2llLXBhaXIgICAgICAgPSBjb29raWUtbmFtZSAiPSIgY29va2llLXZhbHVlXG5jb29raWUtbmFtZSAgICAgICA9IHRva2VuXG5jb29raWUtdmFsdWUgICAgICA9ICggRFFVT1RFICpjb29raWUtb2N0ZXQgRFFVT1RFICkgLyAqY29va2llLW9jdGV0XG4gICAgICAgICAgICAgICAgICA7IGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL2VycmF0YS9laWQ4MjQyXG5jb29raWUtb2N0ZXQgICAgICA9ICV4MjEgLyAleDIzLTJCIC8gJXgyRC0zQSAvICV4M0MtNUIgLyAleDVELTdFXG4gICAgICAgICAgICAgICAgICAgICAgIDsgVVMtQVNDSUkgY2hhcmFjdGVycyBleGNsdWRpbmcgQ1RMcyxcbiAgICAgICAgICAgICAgICAgICAgICAgOyB3aGl0ZXNwYWNlLCBEUVVPVEUsIGNvbW1hLCBzZW1pY29sb24sXG4gICAgICAgICAgICAgICAgICAgICAgIDsgYW5kIGJhY2tzbGFzaFxuXG47IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNjI2NSNzZWN0aW9uLTIuMlxuT1dTICAgICAgICAgICAgPSAqKCBbIENSTEYgXSBXU1AgKSA7ICJvcHRpb25hbCIgd2hpdGVzcGFjZVxuXG47IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjOTExMCNzZWN0aW9uLTUuNi4yXG50b2tlbiAgICAgICAgICA9IDEqKHRjaGFyKVxudGNoYXIgICAgICAgICAgPSAiISIgLyAiIyIgLyAiJCIgLyAiJSIgLyAiJiIgLyAiXCciIC8gIioiXG4gICAgICAgICAgICAgICAgIC8gIisiIC8gIi0iIC8gIi4iIC8gIl4iIC8gIl8iIC8gImAiIC8gInwiIC8gIn4iXG4gICAgICAgICAgICAgICAgIC8gRElHSVQgLyBBTFBIQVxuICAgICAgICAgICAgICAgICA7IGFueSBWQ0hBUiwgZXhjZXB0IGRlbGltaXRlcnNcblxuOyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzI2MTYjc2VjdGlvbi0yLjJcbkNIQVIgICAgICAgICAgID0gJXgwMS03RiA7IGFueSBVUy1BU0NJSSBjaGFyYWN0ZXIgKG9jdGV0cyAwIC0gMTI3KVxuQ1RMICAgICAgICAgICAgPSAleDAwLTFGIC8gJXg3RiA7IGFueSBVUy1BU0NJSSBjb250cm9sIGNoYXJhY3Rlclxuc2VwYXJhdG9ycyAgICAgPSAiKCIgLyAiKSIgLyAiPCIgLyAiPiIgLyAiQCIgLyAiLCIgLyAiOyIgLyAiOiIgLyAiXFwiIC8gJXgyMiAvICIvIiAvICJbIiAvICJdIiAvICI/IiAvICI9IiAvICJ7IiAvICJ9IiAvIFNQIC8gSFRcblNQICAgICAgICAgICAgID0gJXgyMCA7IFVTLUFTQ0lJIFNQLCBzcGFjZSAoMzIpXG5IVCAgICAgICAgICAgICA9ICV4MDkgOyBVUy1BU0NJSSBIVCwgaG9yaXpvbnRhbC10YWIgKDkpXG5cbjsgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM1MjM0I2FwcGVuZGl4LUIuMVxuQUxQSEEgICAgICAgICAgPSAgJXg0MS01QSAvICV4NjEtN0EgOyBBLVogLyBhLXpcbkRJR0lUICAgICAgICAgID0gICV4MzAtMzkgOyAwLTlcbkRRVU9URSAgICAgICAgID0gICV4MjIgOyAiIChEb3VibGUgUXVvdGUpXG5XU1AgICAgICAgICAgICA9ICBTUCAvIEhUQUIgOyB3aGl0ZSBzcGFjZVxuSFRBQiAgICAgICAgICAgPSAgJXgwOSA7IGhvcml6b250YWwgdGFiXG5DUkxGICAgICAgICAgICA9ICBDUiBMRiA7IEludGVybmV0IHN0YW5kYXJkIG5ld2xpbmVcbkNSICAgICAgICAgICAgID0gICV4MEQgOyBjYXJyaWFnZSByZXR1cm5cbkxGICAgICAgICAgICAgID0gICV4MEEgOyBsaW5lZmVlZFxuJ319bmV3IGdyYW1tYXJfZ3JhbW1hcjtjb25zdCB1dGlsc19wZXJjZW50RW5jb2RlQ2hhcj1zPT57aWYoInN0cmluZyIhPXR5cGVvZiBzfHwxIT09Wy4uLnNdLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnB1dCBtdXN0IGJlIGEgc2luZ2xlIGNoYXJhY3RlciBzdHJpbmcuIik7Y29uc3Qgbz1zLmNvZGVQb2ludEF0KDApO3JldHVybiBvPD0xMjc/YCUke28udG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkucGFkU3RhcnQoMiwiMCIpfWA6ZW5jb2RlVVJJQ29tcG9uZW50KHMpfSx1dGlsc19pc1F1b3RlZD1zPT5zLmxlbmd0aD49MiYmcy5zdGFydHNXaXRoKCciJykmJnMuZW5kc1dpdGgoJyInKSx1dGlsc191bnF1b3RlPXM9PnV0aWxzX2lzUXVvdGVkKHMpP3Muc2xpY2UoMSwtMSk6cyx1dGlsc19xdW90ZT1zPT5gIiR7c30iYCx1dGlsc19pZGVudGl0eT1zPT5zLCR4PW5ldyB5cCxxeD1uZXcgZ3JhbW1hcl9ncmFtbWFyLHRlc3RfY29va2llX3ZhbHVlPShzLHtzdHJpY3Q6bz0hMCxxdW90ZWQ6aT1udWxsfT17fSk9Pnt0cnl7Y29uc3QgYT1vPyJjb29raWUtdmFsdWUiOiJsZW5pZW50LWNvb2tpZS12YWx1ZSIsdT0keC5wYXJzZShxeCxhLHMpO3JldHVybiJib29sZWFuIj09dHlwZW9mIGk/dS5zdWNjZXNzJiZpPT09dXRpbHNfaXNRdW90ZWQocyk6dS5zdWNjZXNzfWNhdGNoe3JldHVybiExfX0sYmFzZTY0X2Jyb3dzZXI9cz0+e2NvbnN0IG89KG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKHMpLnJlZHVjZSgoKHMsbyk9PnMrU3RyaW5nLmZyb21DaGFyQ29kZShvKSksIiIpO3JldHVybiBidG9hKG8pfSxjb29raWVfdmFsdWVfc3RyaWN0X2Jhc2U2ND0ocyxvPWJhc2U2NF9icm93c2VyKT0+e2NvbnN0IGk9U3RyaW5nKHMpO2lmKHRlc3RfY29va2llX3ZhbHVlKGkpKXJldHVybiBpO2NvbnN0IGE9dXRpbHNfaXNRdW90ZWQoaSksdT1vKGE/dXRpbHNfdW5xdW90ZShpKTppKTtyZXR1cm4gYT91dGlsc19xdW90ZSh1KTp1fSxiYXNlNjR1cmxfYnJvd3Nlcj1zPT4ocz0+cy5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC9nLCIiKSkoYmFzZTY0X2Jyb3dzZXIocykpLGNvb2tpZV92YWx1ZV9zdHJpY3RfYmFzZTY0dXJsPXM9PmNvb2tpZV92YWx1ZV9zdHJpY3RfYmFzZTY0KHMsYmFzZTY0dXJsX2Jyb3dzZXIpLFZ4PW5ldyB5cCxVeD1uZXcgZ3JhbW1hcl9ncmFtbWFyLHRlc3RfY29va2llX25hbWU9KHMse3N0cmljdDpvPSEwfT17fSk9Pnt0cnl7Y29uc3QgaT1vPyJjb29raWUtbmFtZSI6ImxlbmllbnQtY29va2llLW5hbWUiO3JldHVybiBWeC5wYXJzZShVeCxpLHMpLnN1Y2Nlc3N9Y2F0Y2h7cmV0dXJuITF9fSxjb29raWVfbmFtZV9zdHJpY3Q9cz0+e2lmKCF0ZXN0X2Nvb2tpZV9uYW1lKHMpKXRocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgY29va2llIG5hbWU6ICR7c31gKX0sY29va2llX3ZhbHVlX3N0cmljdD1zPT57aWYoIXRlc3RfY29va2llX3ZhbHVlKHMpKXRocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgY29va2llIHZhbHVlOiAke3N9YCl9LHp4PXtlbmNvZGVyczp7bmFtZTp1dGlsc19pZGVudGl0eSx2YWx1ZTpjb29raWVfdmFsdWVfc3RyaWN0X2Jhc2U2NHVybH0sdmFsaWRhdG9yczp7bmFtZTpjb29raWVfbmFtZV9zdHJpY3QsdmFsdWU6Y29va2llX3ZhbHVlX3N0cmljdH19LHNldF9jb29raWVfc2VyaWFsaXplPShzLG8saT17fSk9Pntjb25zdCBhPXsuLi56eCwuLi5pLGVuY29kZXJzOnsuLi56eC5lbmNvZGVycywuLi5pLmVuY29kZXJzfSx2YWxpZGF0b3JzOnsuLi56eC52YWxpZGF0b3JzLC4uLmkudmFsaWRhdG9yc319LHU9YS5lbmNvZGVycy5uYW1lKHMpLF89YS5lbmNvZGVycy52YWx1ZShvKTtyZXR1cm4gYS52YWxpZGF0b3JzLm5hbWUodSksYS52YWxpZGF0b3JzLnZhbHVlKF8pLGAke3V9PSR7X31gfSxjb29raWVfc2VyaWFsaXplPShzLG89e30pPT4oQXJyYXkuaXNBcnJheShzKT9zOiJvYmplY3QiPT10eXBlb2YgcyYmbnVsbCE9PXM/T2JqZWN0LmVudHJpZXMocyk6W10pLm1hcCgoKFtzLGldKT0+c2V0X2Nvb2tpZV9zZXJpYWxpemUocyxpLG8pKSkuam9pbigiOyAiKSxXeD1uZXcgeXAsSng9bmV3IGdyYW1tYXJfZ3JhbW1hcixjb29raWVfdmFsdWVfc3RyaWN0X3BlcmNlbnQ9cz0+e2NvbnN0IG89U3RyaW5nKHMpO2lmKHRlc3RfY29va2llX3ZhbHVlKG8pKXJldHVybiBvO2NvbnN0IGk9dXRpbHNfaXNRdW90ZWQobyksYT1pP3V0aWxzX3VucXVvdGUobyk6bztsZXQgdT0iIjtmb3IoY29uc3QgcyBvZiBhKXUrPVd4LnBhcnNlKEp4LCJjb29raWUtb2N0ZXQiLHMpLnN1Y2Nlc3M/czp1dGlsc19wZXJjZW50RW5jb2RlQ2hhcihzKTtyZXR1cm4gaT91dGlsc19xdW90ZSh1KTp1fSxIeD0obmV3IHlwLG5ldyBncmFtbWFyX2dyYW1tYXIscz0+e2lmKCF0ZXN0X2Nvb2tpZV9uYW1lKHMse3N0cmljdDohMX0pKXRocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgY29va2llIG5hbWU6ICR7c31gKX0pLHZhbHVlUGVyY2VudEVuY29kZXI9cz0+Y29va2llX3ZhbHVlX3N0cmljdF9wZXJjZW50KHMpLnJlcGxhY2UoL1s9Jl0vZ3UsKHM9PiI9Ij09PXM/IiUzRCI6IiUyNiIpKSxoZWxwZXJzX2Nvb2tpZV9zZXJpYWxpemU9KHMsbz17fSk9PmNvb2tpZV9zZXJpYWxpemUocyxlcCh7ZW5jb2RlcnM6e25hbWU6dXRpbHNfaWRlbnRpdHksdmFsdWU6dmFsdWVQZXJjZW50RW5jb2Rlcn0sdmFsaWRhdG9yczp7bmFtZTpIeCx2YWx1ZTpjb29raWVfdmFsdWVfc3RyaWN0fX0sbykpO2Z1bmN0aW9uIHBhcmFtZXRlcl9idWlsZGVyc19wYXRoKHtyZXE6cyx2YWx1ZTpvLHBhcmFtZXRlcjppLGJhc2VVUkw6YX0pe2NvbnN0e25hbWU6dSxzdHlsZTpfLGV4cGxvZGU6dyxjb250ZW50Onh9PWk7aWYodm9pZCAwPT09bylyZXR1cm47Y29uc3QgQz1zLnVybC5yZXBsYWNlKGEsIiIpO2xldCBqO2lmKHgpe2NvbnN0IHM9T2JqZWN0LmtleXMoeClbMF07aj1lc19yZXNvbHZlKEMse1t1XTpvfSx7ZW5jb2RlcjpvPT5lbmNvZGVDaGFyYWN0ZXJzKHNlcmlhbGl6ZShvLHMpKX0pfWVsc2Ugaj1lc19yZXNvbHZlKEMse1t1XTpvfSx7ZW5jb2RlcjpzPT5zdHlsaXplKHtrZXk6aS5uYW1lLHZhbHVlOnMsc3R5bGU6X3x8InNpbXBsZSIsZXhwbG9kZTpudWxsIT13JiZ3LGVzY2FwZToicmVzZXJ2ZWQifSl9KTtzLnVybD1hK2p9ZnVuY3Rpb24gcXVlcnkoe3JlcTpzLHZhbHVlOm8scGFyYW1ldGVyOml9KXtpZihzLnF1ZXJ5PXMucXVlcnl8fHt9LHZvaWQgMCE9PW8mJmkuY29udGVudCl7Y29uc3QgYT1zZXJpYWxpemUobyxPYmplY3Qua2V5cyhpLmNvbnRlbnQpWzBdKTtpZihhKXMucXVlcnlbaS5uYW1lXT1hO2Vsc2UgaWYoaS5hbGxvd0VtcHR5VmFsdWUpe2NvbnN0IG89aS5uYW1lO3MucXVlcnlbb109cy5xdWVyeVtvXXx8e30scy5xdWVyeVtvXS5hbGxvd0VtcHR5VmFsdWU9ITB9fWVsc2UgaWYoITE9PT1vJiYobz0iZmFsc2UiKSwwPT09byYmKG89IjAiKSxvKXtjb25zdHtzdHlsZTphLGV4cGxvZGU6dSxhbGxvd1Jlc2VydmVkOl99PWk7cy5xdWVyeVtpLm5hbWVdPXt2YWx1ZTpvLHNlcmlhbGl6YXRpb25PcHRpb246e3N0eWxlOmEsZXhwbG9kZTp1LGFsbG93UmVzZXJ2ZWQ6X319fWVsc2UgaWYoaS5hbGxvd0VtcHR5VmFsdWUmJnZvaWQgMCE9PW8pe2NvbnN0IG89aS5uYW1lO3MucXVlcnlbb109cy5xdWVyeVtvXXx8e30scy5xdWVyeVtvXS5hbGxvd0VtcHR5VmFsdWU9ITB9fWNvbnN0IEt4PVsiYWNjZXB0IiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtdHlwZSJdO2Z1bmN0aW9uIHBhcmFtZXRlcl9idWlsZGVyc19oZWFkZXIoe3JlcTpzLHBhcmFtZXRlcjpvLHZhbHVlOml9KXtpZihzLmhlYWRlcnM9cy5oZWFkZXJzfHx7fSwhKEt4LmluZGV4T2Yoby5uYW1lLnRvTG93ZXJDYXNlKCkpPi0xKSlpZih2b2lkIDAhPT1pJiZvLmNvbnRlbnQpe2NvbnN0IGE9T2JqZWN0LmtleXMoby5jb250ZW50KVswXTtzLmhlYWRlcnNbby5uYW1lXT1zZXJpYWxpemUoaSxhKX1lbHNlIHZvaWQgMD09PWl8fEFycmF5LmlzQXJyYXkoaSkmJjA9PT1pLmxlbmd0aHx8KHMuaGVhZGVyc1tvLm5hbWVdPXN0eWxpemUoe2tleTpvLm5hbWUsdmFsdWU6aSxzdHlsZTpvLnN0eWxlfHwic2ltcGxlIixleHBsb2RlOnZvaWQgMCE9PW8uZXhwbG9kZSYmby5leHBsb2RlLGVzY2FwZTohMX0pKX1mdW5jdGlvbiBjb29raWUoe3JlcTpzLHBhcmFtZXRlcjpvLHZhbHVlOml9KXtjb25zdHtuYW1lOmF9PW87aWYocy5oZWFkZXJzPXMuaGVhZGVyc3x8e30sdm9pZCAwIT09aSYmby5jb250ZW50KXtjb25zdCB1PXNlcmlhbGl6ZShpLE9iamVjdC5rZXlzKG8uY29udGVudClbMF0pO3MuaGVhZGVycy5Db29raWU9aGVscGVyc19jb29raWVfc2VyaWFsaXplKHtbYV06dX0pfWVsc2UgaWYodm9pZCAwIT09aSYmKCFBcnJheS5pc0FycmF5KGkpfHwwIT09aS5sZW5ndGgpKXt2YXIgdTtjb25zdCBfPXN0eWxpemUoe2tleTpvLm5hbWUsdmFsdWU6aSxlc2NhcGU6ITEsc3R5bGU6by5zdHlsZXx8ImZvcm0iLGV4cGxvZGU6bnVsbCE9PSh1PW8uZXhwbG9kZSkmJnZvaWQgMCE9PXUmJnV9KSx3PUFycmF5LmlzQXJyYXkoaSkmJm8uZXhwbG9kZT9gJHthfT0ke199YDpfO3MuaGVhZGVycy5Db29raWU9aGVscGVyc19jb29raWVfc2VyaWFsaXplKHtbYV06d30pfX1jb25zdCBHeD0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM/Z2xvYmFsVGhpczoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjp3aW5kb3cse2J0b2E6WXh9PUd4LFh4PVl4O2Z1bmN0aW9uIGJ1aWxkUmVxdWVzdChzLG8pe2NvbnN0e29wZXJhdGlvbjppLHJlcXVlc3RCb2R5OmEsc2VjdXJpdGllczp1LHNwZWM6XyxhdHRhY2hDb250ZW50VHlwZUZvckVtcHR5UGF5bG9hZDp3fT1zO2xldHtyZXF1ZXN0Q29udGVudFR5cGU6eH09cztvPWZ1bmN0aW9uIGFwcGx5U2VjdXJpdGllcyh7cmVxdWVzdDpzLHNlY3VyaXRpZXM6bz17fSxvcGVyYXRpb246aT17fSxzcGVjOmF9KXt2YXIgdTtjb25zdCBfPXsuLi5zfSx7YXV0aG9yaXplZDp3PXt9fT1vLHg9aS5zZWN1cml0eXx8YS5zZWN1cml0eXx8W10sQz13JiYhIU9iamVjdC5rZXlzKHcpLmxlbmd0aCxqPShudWxsPT1hfHxudWxsPT09KHU9YS5jb21wb25lbnRzKXx8dm9pZCAwPT09dT92b2lkIDA6dS5zZWN1cml0eVNjaGVtZXMpfHx7fTtpZihfLmhlYWRlcnM9Xy5oZWFkZXJzfHx7fSxfLnF1ZXJ5PV8ucXVlcnl8fHt9LCFPYmplY3Qua2V5cyhvKS5sZW5ndGh8fCFDfHwheHx8QXJyYXkuaXNBcnJheShpLnNlY3VyaXR5KSYmIWkuc2VjdXJpdHkubGVuZ3RoKXJldHVybiBzO3JldHVybiB4LmZvckVhY2goKHM9PntPYmplY3Qua2V5cyhzKS5mb3JFYWNoKChzPT57Y29uc3Qgbz13W3NdLGk9altzXTtpZighbylyZXR1cm47Y29uc3QgYT1vLnZhbHVlfHxvLHt0eXBlOnV9PWk7aWYobylpZigiYXBpS2V5Ij09PXUpInF1ZXJ5Ij09PWkuaW4mJihfLnF1ZXJ5W2kubmFtZV09YSksImhlYWRlciI9PT1pLmluJiYoXy5oZWFkZXJzW2kubmFtZV09YSksImNvb2tpZSI9PT1pLmluJiYoXy5jb29raWVzW2kubmFtZV09YSk7ZWxzZSBpZigiaHR0cCI9PT11KXtpZigvXmJhc2ljJC9pLnRlc3QoaS5zY2hlbWUpKXtjb25zdCBzPWEudXNlcm5hbWV8fCIiLG89YS5wYXNzd29yZHx8IiIsaT1YeChgJHtzfToke299YCk7Xy5oZWFkZXJzLkF1dGhvcml6YXRpb249YEJhc2ljICR7aX1gfS9eYmVhcmVyJC9pLnRlc3QoaS5zY2hlbWUpJiYoXy5oZWFkZXJzLkF1dGhvcml6YXRpb249YEJlYXJlciAke2F9YCl9ZWxzZSBpZigib2F1dGgyIj09PXV8fCJvcGVuSWRDb25uZWN0Ij09PXUpe2NvbnN0IHM9by50b2tlbnx8e30sYT1zW2lbIngtdG9rZW5OYW1lIl18fCJhY2Nlc3NfdG9rZW4iXTtsZXQgdT1zLnRva2VuX3R5cGU7dSYmImJlYXJlciIhPT11LnRvTG93ZXJDYXNlKCl8fCh1PSJCZWFyZXIiKSxfLmhlYWRlcnMuQXV0aG9yaXphdGlvbj1gJHt1fSAke2F9YH19KSl9KSksX30oe3JlcXVlc3Q6byxzZWN1cml0aWVzOnUsb3BlcmF0aW9uOmksc3BlYzpffSk7Y29uc3QgQz1pLnJlcXVlc3RCb2R5fHx7fSxqPU9iamVjdC5rZXlzKEMuY29udGVudHx8e30pLEw9eCYmai5pbmRleE9mKHgpPi0xO2lmKGF8fHcpe2lmKHgmJkwpby5oZWFkZXJzWyJDb250ZW50LVR5cGUiXT14O2Vsc2UgaWYoIXgpe2NvbnN0IHM9alswXTtzJiYoby5oZWFkZXJzWyJDb250ZW50LVR5cGUiXT1zLHg9cyl9fWVsc2UgeCYmTCYmKG8uaGVhZGVyc1siQ29udGVudC1UeXBlIl09eCk7aWYoIXMucmVzcG9uc2VDb250ZW50VHlwZSYmaS5yZXNwb25zZXMpe2NvbnN0IHM9T2JqZWN0LmVudHJpZXMoaS5yZXNwb25zZXMpLmZpbHRlcigoKFtzLG9dKT0+e2NvbnN0IGk9cGFyc2VJbnQocywxMCk7cmV0dXJuIGk+PTIwMCYmaTwzMDAmJmZ1KG8uY29udGVudCl9KSkucmVkdWNlKCgocyxbLG9dKT0+cy5jb25jYXQoT2JqZWN0LmtleXMoby5jb250ZW50KSkpLFtdKTtzLmxlbmd0aD4wJiYoby5oZWFkZXJzLmFjY2VwdD1zLmpvaW4oIiwgIikpfWlmKGEpaWYoeCl7aWYoai5pbmRleE9mKHgpPi0xKWlmKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiPT09eHx8Im11bHRpcGFydC9mb3JtLWRhdGEiPT09eClpZigib2JqZWN0Ij09dHlwZW9mIGEpe3ZhciBCLCQ7Y29uc3Qgcz1udWxsIT09KEI9bnVsbD09PSgkPUMuY29udGVudFt4XSl8fHZvaWQgMD09PSQ/dm9pZCAwOiQuZW5jb2RpbmcpJiZ2b2lkIDAhPT1CP0I6e307by5mb3JtPXt9LE9iamVjdC5rZXlzKGEpLmZvckVhY2goKGk9PntsZXQgdTt0cnl7dT1KU09OLnBhcnNlKGFbaV0pfWNhdGNoe3U9YVtpXX1vLmZvcm1baV09e3ZhbHVlOnUsZW5jb2Rpbmc6c1tpXXx8e319fSkpfWVsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBhKXt2YXIgVixVO2NvbnN0IHM9bnVsbCE9PShWPW51bGw9PT0oVT1DLmNvbnRlbnRbeF0pfHx2b2lkIDA9PT1VP3ZvaWQgMDpVLmVuY29kaW5nKSYmdm9pZCAwIT09Vj9WOnt9O3RyeXtvLmZvcm09e307Y29uc3QgaT1KU09OLnBhcnNlKGEpO09iamVjdC5lbnRyaWVzKGkpLmZvckVhY2goKChbaSxhXSk9PntvLmZvcm1baV09e3ZhbHVlOmEsZW5jb2Rpbmc6c1tpXXx8e319fSkpfWNhdGNoe28uZm9ybT1hfX1lbHNlIG8uZm9ybT1hO2Vsc2Ugby5ib2R5PWF9ZWxzZSBvLmJvZHk9YTtyZXR1cm4gb31mdW5jdGlvbiBidWlsZF9yZXF1ZXN0X2J1aWxkUmVxdWVzdChzLG8pe2NvbnN0e3NwZWM6aSxvcGVyYXRpb246YSxzZWN1cml0aWVzOnUscmVxdWVzdENvbnRlbnRUeXBlOl8scmVzcG9uc2VDb250ZW50VHlwZTp3LGF0dGFjaENvbnRlbnRUeXBlRm9yRW1wdHlQYXlsb2FkOnh9PXM7aWYobz1mdW5jdGlvbiBidWlsZF9yZXF1ZXN0X2FwcGx5U2VjdXJpdGllcyh7cmVxdWVzdDpzLHNlY3VyaXRpZXM6bz17fSxvcGVyYXRpb246aT17fSxzcGVjOmF9KXtjb25zdCB1PXsuLi5zfSx7YXV0aG9yaXplZDpfPXt9LHNwZWNTZWN1cml0eTp3PVtdfT1vLHg9aS5zZWN1cml0eXx8dyxDPV8mJiEhT2JqZWN0LmtleXMoXykubGVuZ3RoLGo9YS5zZWN1cml0eURlZmluaXRpb25zO2lmKHUuaGVhZGVycz11LmhlYWRlcnN8fHt9LHUucXVlcnk9dS5xdWVyeXx8e30sIU9iamVjdC5rZXlzKG8pLmxlbmd0aHx8IUN8fCF4fHxBcnJheS5pc0FycmF5KGkuc2VjdXJpdHkpJiYhaS5zZWN1cml0eS5sZW5ndGgpcmV0dXJuIHM7cmV0dXJuIHguZm9yRWFjaCgocz0+e09iamVjdC5rZXlzKHMpLmZvckVhY2goKHM9Pntjb25zdCBvPV9bc107aWYoIW8pcmV0dXJuO2NvbnN0e3Rva2VuOml9PW8sYT1vLnZhbHVlfHxvLHc9altzXSx7dHlwZTp4fT13LEM9d1sieC10b2tlbk5hbWUiXXx8ImFjY2Vzc190b2tlbiIsTD1pJiZpW0NdO2xldCBCPWkmJmkudG9rZW5fdHlwZTtpZihvKWlmKCJhcGlLZXkiPT09eCl7Y29uc3Qgcz0icXVlcnkiPT09dy5pbj8icXVlcnkiOiJoZWFkZXJzIjt1W3NdPXVbc118fHt9LHVbc11bdy5uYW1lXT1hfWVsc2UgaWYoImJhc2ljIj09PXgpaWYoYS5oZWFkZXIpdS5oZWFkZXJzLmF1dGhvcml6YXRpb249YS5oZWFkZXI7ZWxzZXtjb25zdCBzPWEudXNlcm5hbWV8fCIiLG89YS5wYXNzd29yZHx8IiI7YS5iYXNlNjQ9WHgoYCR7c306JHtvfWApLHUuaGVhZGVycy5hdXRob3JpemF0aW9uPWBCYXNpYyAke2EuYmFzZTY0fWB9ZWxzZSJvYXV0aDIiPT09eCYmTCYmKEI9QiYmImJlYXJlciIhPT1CLnRvTG93ZXJDYXNlKCk/QjoiQmVhcmVyIix1LmhlYWRlcnMuYXV0aG9yaXphdGlvbj1gJHtCfSAke0x9YCl9KSl9KSksdX0oe3JlcXVlc3Q6byxzZWN1cml0aWVzOnUsb3BlcmF0aW9uOmEsc3BlYzppfSksby5ib2R5fHxvLmZvcm18fHgpXz9vLmhlYWRlcnNbIkNvbnRlbnQtVHlwZSJdPV86QXJyYXkuaXNBcnJheShhLmNvbnN1bWVzKT9bby5oZWFkZXJzWyJDb250ZW50LVR5cGUiXV09YS5jb25zdW1lczpBcnJheS5pc0FycmF5KGkuY29uc3VtZXMpP1tvLmhlYWRlcnNbIkNvbnRlbnQtVHlwZSJdXT1pLmNvbnN1bWVzOmEucGFyYW1ldGVycyYmYS5wYXJhbWV0ZXJzLmZpbHRlcigocz0+ImZpbGUiPT09cy50eXBlKSkubGVuZ3RoP28uaGVhZGVyc1siQ29udGVudC1UeXBlIl09Im11bHRpcGFydC9mb3JtLWRhdGEiOmEucGFyYW1ldGVycyYmYS5wYXJhbWV0ZXJzLmZpbHRlcigocz0+ImZvcm1EYXRhIj09PXMuaW4pKS5sZW5ndGgmJihvLmhlYWRlcnNbIkNvbnRlbnQtVHlwZSJdPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKTtlbHNlIGlmKF8pe2NvbnN0IHM9YS5wYXJhbWV0ZXJzJiZhLnBhcmFtZXRlcnMuZmlsdGVyKChzPT4iYm9keSI9PT1zLmluKSkubGVuZ3RoPjAsaT1hLnBhcmFtZXRlcnMmJmEucGFyYW1ldGVycy5maWx0ZXIoKHM9PiJmb3JtRGF0YSI9PT1zLmluKSkubGVuZ3RoPjA7KHN8fGkpJiYoby5oZWFkZXJzWyJDb250ZW50LVR5cGUiXT1fKX1yZXR1cm4hdyYmQXJyYXkuaXNBcnJheShhLnByb2R1Y2VzKSYmYS5wcm9kdWNlcy5sZW5ndGg+MCYmKG8uaGVhZGVycy5hY2NlcHQ9YS5wcm9kdWNlcy5qb2luKCIsICIpKSxvfWZ1bmN0aW9uIGlkRnJvbVBhdGhNZXRob2RMZWdhY3kocyxvKXtyZXR1cm5gJHtvLnRvTG93ZXJDYXNlKCl9LSR7c31gfWNvbnN0IGFycmF5T3JFbXB0eT1zPT5BcnJheS5pc0FycmF5KHMpP3M6W10sZmluZE9iamVjdE9yQXJyYXlTY2hlbWE9KHMse3JlY3Vyc2U6bz0hMCxkZXB0aDppPTF9PXt9KT0+e2lmKGZ1KHMpKXtpZigib2JqZWN0Ij09PXMudHlwZXx8ImFycmF5Ij09PXMudHlwZXx8QXJyYXkuaXNBcnJheShzLnR5cGUpJiYocy50eXBlLmluY2x1ZGVzKCJvYmplY3QiKXx8cy50eXBlLmluY2x1ZGVzKCJhcnJheSIpKSlyZXR1cm4gcztpZighKGk+QmwpJiZvKXtjb25zdCBhPUFycmF5LmlzQXJyYXkocy5vbmVPZik/cy5vbmVPZi5maW5kKChzPT5maW5kT2JqZWN0T3JBcnJheVNjaGVtYShzLHtyZWN1cnNlOm8sZGVwdGg6aSsxfSkpKTp2b2lkIDA7aWYoYSlyZXR1cm4gYTtjb25zdCB1PUFycmF5LmlzQXJyYXkocy5hbnlPZik/cy5hbnlPZi5maW5kKChzPT5maW5kT2JqZWN0T3JBcnJheVNjaGVtYShzLHtyZWN1cnNlOm8sZGVwdGg6aSsxfSkpKTp2b2lkIDA7aWYodSlyZXR1cm4gdX19fSxwYXJzZUpzb25PYmplY3RPckFycmF5PSh7dmFsdWU6cyxzaWxlbnRGYWlsOm89ITF9KT0+e3RyeXtjb25zdCBpPUpTT04ucGFyc2Uocyk7aWYoZnUoaSl8fEFycmF5LmlzQXJyYXkoaSkpcmV0dXJuIGk7aWYoIW8pdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBKU09OIHNlcmlhbGl6ZWQgb2JqZWN0IG9yIGFycmF5Iil9Y2F0Y2h7aWYoIW8pdGhyb3cgbmV3IEVycm9yKCJDb3VsZCBub3QgcGFyc2UgcGFyYW1ldGVyIHZhbHVlIHN0cmluZyBhcyBKU09OIE9iamVjdCBvciBKU09OIEFycmF5Iil9cmV0dXJuIHN9LHBhcnNlVVJJUmVmZXJlbmNlPXM9Pnt0cnl7cmV0dXJuIG5ldyBVUkwocyl9Y2F0Y2h7Y29uc3Qgbz1uZXcgVVJMKHMsTGwpLGk9U3RyaW5nKHMpLnN0YXJ0c1dpdGgoIi8iKT9vLnBhdGhuYW1lOm8ucGF0aG5hbWUuc3Vic3RyaW5nKDEpO3JldHVybntoYXNoOm8uaGFzaCxob3N0OiIiLGhvc3RuYW1lOiIiLGhyZWY6IiIsb3JpZ2luOiIiLHBhc3N3b3JkOiIiLHBhdGhuYW1lOmkscG9ydDoiIixwcm90b2NvbDoiIixzZWFyY2g6by5zZWFyY2gsc2VhcmNoUGFyYW1zOm8uc2VhcmNoUGFyYW1zfX19O2NsYXNzIE9wZXJhdGlvbk5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBHb3t9Y29uc3QgUXg9e2J1aWxkUmVxdWVzdDpleGVjdXRlX2J1aWxkUmVxdWVzdH07ZnVuY3Rpb24gZXhlY3V0ZV9leGVjdXRlKHtodHRwOnMsZmV0Y2g6byxzcGVjOmksb3BlcmF0aW9uSWQ6YSxwYXRoTmFtZTp1LG1ldGhvZDpfLHBhcmFtZXRlcnM6dyxzZWN1cml0aWVzOngsLi4uQ30pe2NvbnN0IGo9c3x8b3x8aHR0cF9odHRwO3UmJl8mJiFhJiYoYT1pZEZyb21QYXRoTWV0aG9kTGVnYWN5KHUsXykpO2NvbnN0IEw9UXguYnVpbGRSZXF1ZXN0KHtzcGVjOmksb3BlcmF0aW9uSWQ6YSxwYXJhbWV0ZXJzOncsc2VjdXJpdGllczp4LGh0dHA6aiwuLi5DfSk7cmV0dXJuIEwuYm9keSYmKGZ1KEwuYm9keSl8fEFycmF5LmlzQXJyYXkoTC5ib2R5KSkmJihMLmJvZHk9SlNPTi5zdHJpbmdpZnkoTC5ib2R5KSksaihMKX1mdW5jdGlvbiBleGVjdXRlX2J1aWxkUmVxdWVzdChzKXtjb25zdHtzcGVjOm8sb3BlcmF0aW9uSWQ6aSxyZXNwb25zZUNvbnRlbnRUeXBlOmEsc2NoZW1lOnUscmVxdWVzdEludGVyY2VwdG9yOl8scmVzcG9uc2VJbnRlcmNlcHRvcjp3LGNvbnRleHRVcmw6eCx1c2VyRmV0Y2g6QyxzZXJ2ZXI6aixzZXJ2ZXJWYXJpYWJsZXM6TCxodHRwOkIsc2lnbmFsOiQsc2VydmVyVmFyaWFibGVFbmNvZGVyOlZ9PXM7bGV0e3BhcmFtZXRlcnM6VSxwYXJhbWV0ZXJCdWlsZGVyczp6LGJhc2VVUkw6WX09cztjb25zdCBaPWlzT3BlbkFQSTMobyk7enx8KHo9Wj9iZTpCeCk7bGV0IGVlPXt1cmw6IiIsY3JlZGVudGlhbHM6QiYmQi53aXRoQ3JlZGVudGlhbHM/ImluY2x1ZGUiOiJzYW1lLW9yaWdpbiIsaGVhZGVyczp7fSxjb29raWVzOnt9fTskJiYoZWUuc2lnbmFsPSQpLF8mJihlZS5yZXF1ZXN0SW50ZXJjZXB0b3I9XyksdyYmKGVlLnJlc3BvbnNlSW50ZXJjZXB0b3I9dyksQyYmKGVlLnVzZXJGZXRjaD1DKTtjb25zdCBpZT1mdW5jdGlvbiBnZXRPcGVyYXRpb25SYXcocyxvKXtyZXR1cm4gcyYmcy5wYXRocz9mdW5jdGlvbiBmaW5kT3BlcmF0aW9uKHMsbyl7cmV0dXJuIGZ1bmN0aW9uIGVhY2hPcGVyYXRpb24ocyxvLGkpe2lmKCFzfHwib2JqZWN0IiE9dHlwZW9mIHN8fCFzLnBhdGhzfHwib2JqZWN0IiE9dHlwZW9mIHMucGF0aHMpcmV0dXJuIG51bGw7Y29uc3R7cGF0aHM6YX09cztmb3IoY29uc3QgdSBpbiBhKWZvcihjb25zdCBfIGluIGFbdV0pe2lmKCJQQVJBTUVURVJTIj09PV8udG9VcHBlckNhc2UoKSljb250aW51ZTtjb25zdCB3PWFbdV1bX107aWYoIXd8fCJvYmplY3QiIT10eXBlb2Ygdyljb250aW51ZTtjb25zdCB4PXtzcGVjOnMscGF0aE5hbWU6dSxtZXRob2Q6Xy50b1VwcGVyQ2FzZSgpLG9wZXJhdGlvbjp3fSxDPW8oeCk7aWYoaSYmQylyZXR1cm4geH19KHMsbywhMCl8fG51bGx9KHMsKCh7cGF0aE5hbWU6cyxtZXRob2Q6aSxvcGVyYXRpb246YX0pPT57aWYoIWF8fCJvYmplY3QiIT10eXBlb2YgYSlyZXR1cm4hMTtjb25zdCB1PWEub3BlcmF0aW9uSWQ7cmV0dXJuW29wSWQoYSxzLGkpLGlkRnJvbVBhdGhNZXRob2RMZWdhY3kocyxpKSx1XS5zb21lKChzPT5zJiZzPT09bykpfSkpOm51bGx9KG8saSk7aWYoIWllKXRocm93IG5ldyBPcGVyYXRpb25Ob3RGb3VuZEVycm9yKGBPcGVyYXRpb24gJHtpfSBub3QgZm91bmRgKTtjb25zdHtvcGVyYXRpb246YWU9e30sbWV0aG9kOmNlLHBhdGhOYW1lOmxlfT1pZTtpZihZPW51bGwhPVk/WTpmdW5jdGlvbiBiYXNlVXJsKHMpe2NvbnN0IG89aXNPcGVuQVBJMyhzLnNwZWMpO3JldHVybiBvP2Z1bmN0aW9uIG9hczNCYXNlVXJsKHtzcGVjOnMscGF0aE5hbWU6byxtZXRob2Q6aSxzZXJ2ZXI6YSxjb250ZXh0VXJsOnUsc2VydmVyVmFyaWFibGVzOl89e30sc2VydmVyVmFyaWFibGVFbmNvZGVyOnd9KXt2YXIgeCxDO2xldCBqLEw9W10sQj0iIjtjb25zdCAkPW51bGw9PXN8fG51bGw9PT0oeD1zLnBhdGhzKXx8dm9pZCAwPT09eHx8bnVsbD09PSh4PXhbb10pfHx2b2lkIDA9PT14fHxudWxsPT09KHg9eFsoaXx8IiIpLnRvTG93ZXJDYXNlKCldKXx8dm9pZCAwPT09eD92b2lkIDA6eC5zZXJ2ZXJzLFY9bnVsbD09c3x8bnVsbD09PShDPXMucGF0aHMpfHx2b2lkIDA9PT1DfHxudWxsPT09KEM9Q1tvXSl8fHZvaWQgMD09PUM/dm9pZCAwOkMuc2VydmVycyxVPW51bGw9PXM/dm9pZCAwOnMuc2VydmVycztMPWlzTm9uRW1wdHlTZXJ2ZXJMaXN0KCQpPyQ6aXNOb25FbXB0eVNlcnZlckxpc3QoVik/Vjppc05vbkVtcHR5U2VydmVyTGlzdChVKT9VOltGbF0sYSYmKGo9TC5maW5kKChzPT5zLnVybD09PWEpKSxqJiYoQj1hKSk7Qnx8KFtqXT1MLEI9ai51cmwpO2lmKG9wZW5hcGlfc2VydmVyX3VybF90ZW1wbGF0aW5nX2VzX3Rlc3QoQix7c3RyaWN0OiEwfSkpe2NvbnN0IHM9T2JqZWN0LmVudHJpZXMoey4uLmoudmFyaWFibGVzfSkucmVkdWNlKCgocyxbbyxpXSk9PihzW29dPWkuZGVmYXVsdCxzKSkse30pO0I9ZXNfc3Vic3RpdHV0ZShCLHsuLi5zLC4uLl99LHtlbmNvZGVyOiJmdW5jdGlvbiI9PXR5cGVvZiB3P3c6dnd9KX1yZXR1cm4gZnVuY3Rpb24gYnVpbGRPYXMzVXJsV2l0aENvbnRleHQocz0iIixvPSIiKXtjb25zdCBpPXBhcnNlVVJJUmVmZXJlbmNlKHMmJm8/cmVzb2x2ZShvLHMpOnMpLGE9cGFyc2VVUklSZWZlcmVuY2UobyksdT1zdHJpcE5vbkFscGhhKGkucHJvdG9jb2wpfHxzdHJpcE5vbkFscGhhKGEucHJvdG9jb2wpLF89aS5ob3N0fHxhLmhvc3Qsdz1pLnBhdGhuYW1lO2xldCB4O3g9dSYmXz9gJHt1fTovLyR7Xyt3fWA6dztyZXR1cm4iLyI9PT14W3gubGVuZ3RoLTFdP3guc2xpY2UoMCwtMSk6eH0oQix1KX0ocyk6ZnVuY3Rpb24gc3dhZ2dlcjJCYXNlVXJsKHtzcGVjOnMsc2NoZW1lOm8sY29udGV4dFVybDppPSIifSl7Y29uc3QgYT1wYXJzZVVSSVJlZmVyZW5jZShpKSx1PUFycmF5LmlzQXJyYXkocy5zY2hlbWVzKT9zLnNjaGVtZXNbMF06bnVsbCxfPW98fHV8fHN0cmlwTm9uQWxwaGEoYS5wcm90b2NvbCl8fCJodHRwIix3PXMuaG9zdHx8YS5ob3N0fHwiIix4PXMuYmFzZVBhdGh8fCIiO2xldCBDO0M9XyYmdz9gJHtffTovLyR7dyt4fWA6eDtyZXR1cm4iLyI9PT1DW0MubGVuZ3RoLTFdP0Muc2xpY2UoMCwtMSk6Q30ocyl9KHtzcGVjOm8sc2NoZW1lOnUsY29udGV4dFVybDp4LHNlcnZlcjpqLHNlcnZlclZhcmlhYmxlczpMLHBhdGhOYW1lOmxlLG1ldGhvZDpjZSxzZXJ2ZXJWYXJpYWJsZUVuY29kZXI6Vn0pLGVlLnVybCs9WSwhaSlyZXR1cm4gZGVsZXRlIGVlLmNvb2tpZXMsZWU7ZWUudXJsKz1sZSxlZS5tZXRob2Q9YCR7Y2V9YC50b1VwcGVyQ2FzZSgpLFU9VXx8e307Y29uc3QgcGU9by5wYXRoc1tsZV18fHt9O2EmJihlZS5oZWFkZXJzLmFjY2VwdD1hKTtjb25zdCBkZT0ocz0+e2NvbnN0IG89e307cy5mb3JFYWNoKChzPT57b1tzLmluXXx8KG9bcy5pbl09e30pLG9bcy5pbl1bcy5uYW1lXT1zfSkpO2NvbnN0IGk9W107cmV0dXJuIE9iamVjdC5rZXlzKG8pLmZvckVhY2goKHM9PntPYmplY3Qua2V5cyhvW3NdKS5mb3JFYWNoKChhPT57aS5wdXNoKG9bc11bYV0pfSkpfSkpLGl9KShbXS5jb25jYXQoYXJyYXlPckVtcHR5KGFlLnBhcmFtZXRlcnMpKS5jb25jYXQoYXJyYXlPckVtcHR5KHBlLnBhcmFtZXRlcnMpKSk7ZGUuZm9yRWFjaCgocz0+e2NvbnN0IGk9eltzLmluXTtsZXQgYTtpZigiYm9keSI9PT1zLmluJiZzLnNjaGVtYSYmcy5zY2hlbWEucHJvcGVydGllcyYmKGE9VSksYT1zJiZzLm5hbWUmJlVbcy5uYW1lXSx2b2lkIDA9PT1hP2E9cyYmcy5uYW1lJiZVW2Ake3MuaW59LiR7cy5uYW1lfWBdOigocyxvKT0+by5maWx0ZXIoKG89Pm8ubmFtZT09PXMpKSkocy5uYW1lLGRlKS5sZW5ndGg+MSYmY29uc29sZS53YXJuKGBQYXJhbWV0ZXIgJyR7cy5uYW1lfScgaXMgYW1iaWd1b3VzIGJlY2F1c2UgdGhlIGRlZmluZWQgc3BlYyBoYXMgbW9yZSB0aGFuIG9uZSBwYXJhbWV0ZXIgd2l0aCB0aGUgbmFtZTogJyR7cy5uYW1lfScgYW5kIHRoZSBwYXNzZWQtaW4gcGFyYW1ldGVyIHZhbHVlcyBkaWQgbm90IGRlZmluZSBhbiAnaW4nIHZhbHVlLmApLG51bGwhPT1hKXtpZih2b2lkIDAhPT1zLmRlZmF1bHQmJnZvaWQgMD09PWEmJihhPXMuZGVmYXVsdCksdm9pZCAwPT09YSYmcy5yZXF1aXJlZCYmIXMuYWxsb3dFbXB0eVZhbHVlKXRocm93IG5ldyBFcnJvcihgUmVxdWlyZWQgcGFyYW1ldGVyICR7cy5uYW1lfSBpcyBub3QgcHJvdmlkZWRgKTtaJiYic3RyaW5nIj09dHlwZW9mIGEmJihpZCgidHlwZSIscy5zY2hlbWEpJiYic3RyaW5nIj09dHlwZW9mIHMuc2NoZW1hLnR5cGUmJmZpbmRPYmplY3RPckFycmF5U2NoZW1hKHMuc2NoZW1hLHtyZWN1cnNlOiExfSk/YT1wYXJzZUpzb25PYmplY3RPckFycmF5KHt2YWx1ZTphLHNpbGVudEZhaWw6ITF9KTooaWQoInR5cGUiLHMuc2NoZW1hKSYmQXJyYXkuaXNBcnJheShzLnNjaGVtYS50eXBlKSYmZmluZE9iamVjdE9yQXJyYXlTY2hlbWEocy5zY2hlbWEse3JlY3Vyc2U6ITF9KXx8IWlkKCJ0eXBlIixzLnNjaGVtYSkmJmZpbmRPYmplY3RPckFycmF5U2NoZW1hKHMuc2NoZW1hLHtyZWN1cnNlOiEwfSkpJiYoYT1wYXJzZUpzb25PYmplY3RPckFycmF5KHt2YWx1ZTphLHNpbGVudEZhaWw6ITB9KSkpLGkmJmkoe3JlcTplZSxwYXJhbWV0ZXI6cyx2YWx1ZTphLG9wZXJhdGlvbjphZSxzcGVjOm8sYmFzZVVSTDpZfSl9fSkpO2NvbnN0IGZlPXsuLi5zLG9wZXJhdGlvbjphZX07aWYoZWU9Wj9idWlsZFJlcXVlc3QoZmUsZWUpOmJ1aWxkX3JlcXVlc3RfYnVpbGRSZXF1ZXN0KGZlLGVlKSxlZS5jb29raWVzJiZPYmplY3Qua2V5cyhlZS5jb29raWVzKS5sZW5ndGg+MCl7Y29uc3Qgcz1oZWxwZXJzX2Nvb2tpZV9zZXJpYWxpemUoZWUuY29va2llcyk7TmQoZWUuaGVhZGVycy5Db29raWUpP2VlLmhlYWRlcnMuQ29va2llKz1gOyAke3N9YDplZS5oZWFkZXJzLkNvb2tpZT1zfXJldHVybiBlZS5jb29raWVzJiZkZWxldGUgZWUuY29va2llcyxzZXJpYWxpemVSZXF1ZXN0KGVlKX1jb25zdCBzdHJpcE5vbkFscGhhPXM9PnM/cy5yZXBsYWNlKC9cVy9nLCIiKTpudWxsO2NvbnN0IGlzTm9uRW1wdHlTZXJ2ZXJMaXN0PXM9PkFycmF5LmlzQXJyYXkocykmJnMubGVuZ3RoPjA7Y29uc3QgbWFrZVJlc29sdmVTdWJ0cmVlPXM9PmFzeW5jKG8saSxhPXt9KT0+KGFzeW5jKHMsbyxpPXt9KT0+e2NvbnN0e3JldHVybkVudGlyZVRyZWU6YSxiYXNlRG9jOnUscmVxdWVzdEludGVyY2VwdG9yOl8scmVzcG9uc2VJbnRlcmNlcHRvcjp3LHBhcmFtZXRlck1hY3JvOngsbW9kZWxQcm9wZXJ0eU1hY3JvOkMsdXNlQ2lyY3VsYXJTdHJ1Y3R1cmVzOmosc3RyYXRlZ2llczpMfT1pLEI9e3NwZWM6cyxwYXRoRGlzY3JpbWluYXRvcjpvLGJhc2VEb2M6dSxyZXF1ZXN0SW50ZXJjZXB0b3I6XyxyZXNwb25zZUludGVyY2VwdG9yOncscGFyYW1ldGVyTWFjcm86eCxtb2RlbFByb3BlcnR5TWFjcm86Qyx1c2VDaXJjdWxhclN0cnVjdHVyZXM6aixzdHJhdGVnaWVzOkx9LCQ9TC5maW5kKChvPT5vLm1hdGNoKHMpKSkubm9ybWFsaXplKHMpLFY9YXdhaXQgTXgoe3NwZWM6JCwuLi5CLGFsbG93TWV0YVBhdGNoZXM6ITAsc2tpcE5vcm1hbGl6YXRpb246IWlzT3BlbkFQSTMxKHMpfSk7cmV0dXJuIWEmJkFycmF5LmlzQXJyYXkobykmJm8ubGVuZ3RoJiYoVi5zcGVjPW8ucmVkdWNlKCgocyxvKT0+bnVsbD09cz92b2lkIDA6c1tvXSksVi5zcGVjKXx8bnVsbCksVn0pKG8saSx7Li4ucywuLi5hfSksWng9KG1ha2VSZXNvbHZlU3VidHJlZSh7c3RyYXRlZ2llczpbX3UsdnUsZ3VdfSksKHMsbyk9PiguLi5pKT0+e3MoLi4uaSk7Y29uc3QgYT1vLmdldENvbmZpZ3MoKS53aXRoQ3JlZGVudGlhbHM7by5mbi5mZXRjaC53aXRoQ3JlZGVudGlhbHM9YX0pO2Z1bmN0aW9uIHN3YWdnZXJfY2xpZW50KHtjb25maWdzOnMsZ2V0Q29uZmlnczpvfSl7cmV0dXJue2ZuOntmZXRjaDooaT1odHRwX2h0dHAsYT1zLnByZUZldGNoLHU9cy5wb3N0RmV0Y2gsdT11fHwocz0+cyksYT1hfHwocz0+cykscz0+KCJzdHJpbmciPT10eXBlb2YgcyYmKHM9e3VybDpzfSkscz1zZXJpYWxpemVSZXF1ZXN0KHMpLHM9YShzKSx1KGkocykpKSksYnVpbGRSZXF1ZXN0OmV4ZWN1dGVfYnVpbGRSZXF1ZXN0LGV4ZWN1dGU6ZXhlY3V0ZV9leGVjdXRlLHJlc29sdmU6bWFrZVJlc29sdmUoe3N0cmF0ZWdpZXM6W054LF91LHZ1LGd1XX0pLHJlc29sdmVTdWJ0cmVlOmFzeW5jKHMsaSxhPXt9KT0+e2NvbnN0IHU9bygpLF89e21vZGVsUHJvcGVydHlNYWNybzp1Lm1vZGVsUHJvcGVydHlNYWNybyxwYXJhbWV0ZXJNYWNybzp1LnBhcmFtZXRlck1hY3JvLHJlcXVlc3RJbnRlcmNlcHRvcjp1LnJlcXVlc3RJbnRlcmNlcHRvcixyZXNwb25zZUludGVyY2VwdG9yOnUucmVzcG9uc2VJbnRlcmNlcHRvcixzdHJhdGVnaWVzOltOeCxfdSx2dSxndV19O3JldHVybiBtYWtlUmVzb2x2ZVN1YnRyZWUoXykocyxpLGEpfSxzZXJpYWxpemVSZXM6c2VyaWFsaXplUmVzcG9uc2Usb3BJZH0sc3RhdGVQbHVnaW5zOntjb25maWdzOnt3cmFwQWN0aW9uczp7bG9hZGVkOlp4fX19fTt2YXIgaSxhLHV9ZnVuY3Rpb24gdXRpbCgpe3JldHVybntmbjp7c2hhbGxvd0VxdWFsS2V5cyxzYW5pdGl6ZVVybH19fXZhciB0az1fX3dlYnBhY2tfcmVxdWlyZV9fKDQwOTYxKSxyaz0oX193ZWJwYWNrX3JlcXVpcmVfXyg3ODQxOCksUmUudmVyc2lvbi5zdGFydHNXaXRoKCIxOSIpKSxuaz1TeW1ib2wuZm9yKHJrPyJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudCI6InJlYWN0LmVsZW1lbnQiKSxzaz1TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKSxvaz1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLGxrPVN5bWJvbC5mb3IoInJlYWN0LnN0cmljdF9tb2RlIiksdWs9U3ltYm9sLmZvcigicmVhY3QucHJvZmlsZXIiKSxwaz1TeW1ib2wuZm9yKCJyZWFjdC5jb25zdW1lciIpLGZrPVN5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKSxtaz1TeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIpLHlrPVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlIiksdms9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2VfbGlzdCIpLF9rPVN5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKSx3az1TeW1ib2wuZm9yKCJyZWFjdC5sYXp5IikseGs9bWssQWs9X2s7ZnVuY3Rpb24gdHlwZU9mKHMpe2lmKCJvYmplY3QiPT10eXBlb2YgcyYmbnVsbCE9PXMpe2NvbnN0eyQkdHlwZW9mOm99PXM7c3dpdGNoKG8pe2Nhc2Ugbms6c3dpdGNoKHM9cy50eXBlKXtjYXNlIG9rOmNhc2UgdWs6Y2FzZSBsazpjYXNlIHlrOmNhc2Ugdms6cmV0dXJuIHM7ZGVmYXVsdDpzd2l0Y2gocz1zJiZzLiQkdHlwZW9mKXtjYXNlIGZrOmNhc2UgbWs6Y2FzZSB3azpjYXNlIF9rOmNhc2UgcGs6cmV0dXJuIHM7ZGVmYXVsdDpyZXR1cm4gb319Y2FzZSBzazpyZXR1cm4gb319fWZ1bmN0aW9uIHB1cmVGaW5hbFByb3BzU2VsZWN0b3JGYWN0b3J5KHMsbyxpLGEse2FyZVN0YXRlc0VxdWFsOnUsYXJlT3duUHJvcHNFcXVhbDpfLGFyZVN0YXRlUHJvcHNFcXVhbDp3fSl7bGV0IHgsQyxqLEwsQiwkPSExO2Z1bmN0aW9uIGhhbmRsZVN1YnNlcXVlbnRDYWxscygkLFYpe2NvbnN0IFU9IV8oVixDKSx6PSF1KCQseCxWLEMpO3JldHVybiB4PSQsQz1WLFUmJno/ZnVuY3Rpb24gaGFuZGxlTmV3UHJvcHNBbmROZXdTdGF0ZSgpe3JldHVybiBqPXMoeCxDKSxvLmRlcGVuZHNPbk93blByb3BzJiYoTD1vKGEsQykpLEI9aShqLEwsQyksQn0oKTpVP2Z1bmN0aW9uIGhhbmRsZU5ld1Byb3BzKCl7cmV0dXJuIHMuZGVwZW5kc09uT3duUHJvcHMmJihqPXMoeCxDKSksby5kZXBlbmRzT25Pd25Qcm9wcyYmKEw9byhhLEMpKSxCPWkoaixMLEMpLEJ9KCk6ej9mdW5jdGlvbiBoYW5kbGVOZXdTdGF0ZSgpe2NvbnN0IG89cyh4LEMpLGE9IXcobyxqKTtyZXR1cm4gaj1vLGEmJihCPWkoaixMLEMpKSxCfSgpOkJ9cmV0dXJuIGZ1bmN0aW9uIHB1cmVGaW5hbFByb3BzU2VsZWN0b3IodSxfKXtyZXR1cm4gJD9oYW5kbGVTdWJzZXF1ZW50Q2FsbHModSxfKTpmdW5jdGlvbiBoYW5kbGVGaXJzdENhbGwodSxfKXtyZXR1cm4geD11LEM9XyxqPXMoeCxDKSxMPW8oYSxDKSxCPWkoaixMLEMpLCQ9ITAsQn0odSxfKX19ZnVuY3Rpb24gd3JhcE1hcFRvUHJvcHNDb25zdGFudChzKXtyZXR1cm4gZnVuY3Rpb24gaW5pdENvbnN0YW50U2VsZWN0b3Iobyl7Y29uc3QgaT1zKG8pO2Z1bmN0aW9uIGNvbnN0YW50U2VsZWN0b3IoKXtyZXR1cm4gaX1yZXR1cm4gY29uc3RhbnRTZWxlY3Rvci5kZXBlbmRzT25Pd25Qcm9wcz0hMSxjb25zdGFudFNlbGVjdG9yfX1mdW5jdGlvbiBnZXREZXBlbmRzT25Pd25Qcm9wcyhzKXtyZXR1cm4gcy5kZXBlbmRzT25Pd25Qcm9wcz9Cb29sZWFuKHMuZGVwZW5kc09uT3duUHJvcHMpOjEhPT1zLmxlbmd0aH1mdW5jdGlvbiB3cmFwTWFwVG9Qcm9wc0Z1bmMocyxvKXtyZXR1cm4gZnVuY3Rpb24gaW5pdFByb3h5U2VsZWN0b3Iobyx7ZGlzcGxheU5hbWU6aX0pe2NvbnN0IGE9ZnVuY3Rpb24gbWFwVG9Qcm9wc1Byb3h5KHMsbyl7cmV0dXJuIGEuZGVwZW5kc09uT3duUHJvcHM/YS5tYXBUb1Byb3BzKHMsbyk6YS5tYXBUb1Byb3BzKHMsdm9pZCAwKX07cmV0dXJuIGEuZGVwZW5kc09uT3duUHJvcHM9ITAsYS5tYXBUb1Byb3BzPWZ1bmN0aW9uIGRldGVjdEZhY3RvcnlBbmRWZXJpZnkobyxpKXthLm1hcFRvUHJvcHM9cyxhLmRlcGVuZHNPbk93blByb3BzPWdldERlcGVuZHNPbk93blByb3BzKHMpO2xldCB1PWEobyxpKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdSYmKGEubWFwVG9Qcm9wcz11LGEuZGVwZW5kc09uT3duUHJvcHM9Z2V0RGVwZW5kc09uT3duUHJvcHModSksdT1hKG8saSkpLHV9LGF9fWZ1bmN0aW9uIGNyZWF0ZUludmFsaWRBcmdGYWN0b3J5KHMsbyl7cmV0dXJuKGksYSk9Pnt0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdmFsdWUgb2YgdHlwZSAke3R5cGVvZiBzfSBmb3IgJHtvfSBhcmd1bWVudCB3aGVuIGNvbm5lY3RpbmcgY29tcG9uZW50ICR7YS53cmFwcGVkQ29tcG9uZW50TmFtZX0uYCl9fWZ1bmN0aW9uIGRlZmF1bHRNZXJnZVByb3BzKHMsbyxpKXtyZXR1cm57Li4uaSwuLi5zLC4uLm99fWZ1bmN0aW9uIGRlZmF1bHROb29wQmF0Y2gocyl7cygpfXZhciBCaz17bm90aWZ5KCl7fSxnZXQ6KCk9PltdfTtmdW5jdGlvbiBjcmVhdGVTdWJzY3JpcHRpb24ocyxvKXtsZXQgaSxhPUJrLHU9MCxfPSExO2Z1bmN0aW9uIGhhbmRsZUNoYW5nZVdyYXBwZXIoKXt3Lm9uU3RhdGVDaGFuZ2UmJncub25TdGF0ZUNoYW5nZSgpfWZ1bmN0aW9uIHRyeVN1YnNjcmliZSgpe3UrKyxpfHwoaT1vP28uYWRkTmVzdGVkU3ViKGhhbmRsZUNoYW5nZVdyYXBwZXIpOnMuc3Vic2NyaWJlKGhhbmRsZUNoYW5nZVdyYXBwZXIpLGE9ZnVuY3Rpb24gY3JlYXRlTGlzdGVuZXJDb2xsZWN0aW9uKCl7bGV0IHM9bnVsbCxvPW51bGw7cmV0dXJue2NsZWFyKCl7cz1udWxsLG89bnVsbH0sbm90aWZ5KCl7ZGVmYXVsdE5vb3BCYXRjaCgoKCk9PntsZXQgbz1zO2Zvcig7bzspby5jYWxsYmFjaygpLG89by5uZXh0fSkpfSxnZXQoKXtjb25zdCBvPVtdO2xldCBpPXM7Zm9yKDtpOylvLnB1c2goaSksaT1pLm5leHQ7cmV0dXJuIG99LHN1YnNjcmliZShpKXtsZXQgYT0hMDtjb25zdCB1PW89e2NhbGxiYWNrOmksbmV4dDpudWxsLHByZXY6b307cmV0dXJuIHUucHJldj91LnByZXYubmV4dD11OnM9dSxmdW5jdGlvbiB1bnN1YnNjcmliZSgpe2EmJm51bGwhPT1zJiYoYT0hMSx1Lm5leHQ/dS5uZXh0LnByZXY9dS5wcmV2Om89dS5wcmV2LHUucHJldj91LnByZXYubmV4dD11Lm5leHQ6cz11Lm5leHQpfX19fSgpKX1mdW5jdGlvbiB0cnlVbnN1YnNjcmliZSgpe3UtLSxpJiYwPT09dSYmKGkoKSxpPXZvaWQgMCxhLmNsZWFyKCksYT1Cayl9Y29uc3Qgdz17YWRkTmVzdGVkU3ViOmZ1bmN0aW9uIGFkZE5lc3RlZFN1YihzKXt0cnlTdWJzY3JpYmUoKTtjb25zdCBvPWEuc3Vic2NyaWJlKHMpO2xldCBpPSExO3JldHVybigpPT57aXx8KGk9ITAsbygpLHRyeVVuc3Vic2NyaWJlKCkpfX0sbm90aWZ5TmVzdGVkU3ViczpmdW5jdGlvbiBub3RpZnlOZXN0ZWRTdWJzKCl7YS5ub3RpZnkoKX0saGFuZGxlQ2hhbmdlV3JhcHBlcixpc1N1YnNjcmliZWQ6ZnVuY3Rpb24gaXNTdWJzY3JpYmVkKCl7cmV0dXJuIF99LHRyeVN1YnNjcmliZTpmdW5jdGlvbiB0cnlTdWJzY3JpYmVTZWxmKCl7X3x8KF89ITAsdHJ5U3Vic2NyaWJlKCkpfSx0cnlVbnN1YnNjcmliZTpmdW5jdGlvbiB0cnlVbnN1YnNjcmliZVNlbGYoKXtfJiYoXz0hMSx0cnlVbnN1YnNjcmliZSgpKX0sZ2V0TGlzdGVuZXJzOigpPT5hfTtyZXR1cm4gd312YXIgcWs9KCgpPT4hKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93fHx2b2lkIDA9PT13aW5kb3cuZG9jdW1lbnR8fHZvaWQgMD09PXdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KSkoKSxWaz0oKCk9PiJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yJiYiUmVhY3ROYXRpdmUiPT09bmF2aWdhdG9yLnByb2R1Y3QpKCksems9KCgpPT5xa3x8Vms/UmUudXNlTGF5b3V0RWZmZWN0OlJlLnVzZUVmZmVjdCkoKTtmdW5jdGlvbiBpcyhzLG8pe3JldHVybiBzPT09bz8wIT09c3x8MCE9PW98fDEvcz09MS9vOnMhPXMmJm8hPW99ZnVuY3Rpb24gc2hhbGxvd0VxdWFsKHMsbyl7aWYoaXMocyxvKSlyZXR1cm4hMDtpZigib2JqZWN0IiE9dHlwZW9mIHN8fG51bGw9PT1zfHwib2JqZWN0IiE9dHlwZW9mIG98fG51bGw9PT1vKXJldHVybiExO2NvbnN0IGk9T2JqZWN0LmtleXMocyksYT1PYmplY3Qua2V5cyhvKTtpZihpLmxlbmd0aCE9PWEubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgYT0wO2E8aS5sZW5ndGg7YSsrKWlmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobyxpW2FdKXx8IWlzKHNbaVthXV0sb1tpW2FdXSkpcmV0dXJuITE7cmV0dXJuITB9dmFyIGVPPXtjaGlsZENvbnRleHRUeXBlczohMCxjb250ZXh0VHlwZTohMCxjb250ZXh0VHlwZXM6ITAsZGVmYXVsdFByb3BzOiEwLGRpc3BsYXlOYW1lOiEwLGdldERlZmF1bHRQcm9wczohMCxnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I6ITAsZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzOiEwLG1peGluczohMCxwcm9wVHlwZXM6ITAsdHlwZTohMH0sdE89e25hbWU6ITAsbGVuZ3RoOiEwLHByb3RvdHlwZTohMCxjYWxsZXI6ITAsY2FsbGVlOiEwLGFyZ3VtZW50czohMCxhcml0eTohMH0sck89eyQkdHlwZW9mOiEwLGNvbXBhcmU6ITAsZGVmYXVsdFByb3BzOiEwLGRpc3BsYXlOYW1lOiEwLHByb3BUeXBlczohMCx0eXBlOiEwfSxuTz17W3hrXTp7JCR0eXBlb2Y6ITAscmVuZGVyOiEwLGRlZmF1bHRQcm9wczohMCxkaXNwbGF5TmFtZTohMCxwcm9wVHlwZXM6ITB9LFtBa106ck99O2Z1bmN0aW9uIGdldFN0YXRpY3Mocyl7cmV0dXJuIGZ1bmN0aW9uIGlzTWVtbyhzKXtyZXR1cm4gdHlwZU9mKHMpPT09X2t9KHMpP3JPOm5PW3MuJCR0eXBlb2ZdfHxlT312YXIgc089T2JqZWN0LmRlZmluZVByb3BlcnR5LG9PPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzLGlPPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsYU89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixjTz1PYmplY3QuZ2V0UHJvdG90eXBlT2YsbE89T2JqZWN0LnByb3RvdHlwZTtmdW5jdGlvbiBob2lzdE5vblJlYWN0U3RhdGljcyhzLG8pe2lmKCJzdHJpbmciIT10eXBlb2Ygbyl7aWYobE8pe2NvbnN0IGk9Y08obyk7aSYmaSE9PWxPJiZob2lzdE5vblJlYWN0U3RhdGljcyhzLGkpfWxldCBpPW9PKG8pO2lPJiYoaT1pLmNvbmNhdChpTyhvKSkpO2NvbnN0IGE9Z2V0U3RhdGljcyhzKSx1PWdldFN0YXRpY3Mobyk7Zm9yKGxldCBfPTA7XzxpLmxlbmd0aDsrK18pe2NvbnN0IHc9aVtfXTtpZighKHRPW3ddfHx1JiZ1W3ddfHxhJiZhW3ddKSl7Y29uc3QgaT1hTyhvLHcpO3RyeXtzTyhzLHcsaSl9Y2F0Y2gocyl7fX19fXJldHVybiBzfXZhciB1Tz1TeW1ib2wuZm9yKCJyZWFjdC1yZWR1eC1jb250ZXh0IikscE89InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6e307ZnVuY3Rpb24gZ2V0Q29udGV4dCgpe2lmKCFSZS5jcmVhdGVDb250ZXh0KXJldHVybnt9O2NvbnN0IHM9cE9bdU9dPz89bmV3IE1hcDtsZXQgbz1zLmdldChSZS5jcmVhdGVDb250ZXh0KTtyZXR1cm4gb3x8KG89UmUuY3JlYXRlQ29udGV4dChudWxsKSxzLnNldChSZS5jcmVhdGVDb250ZXh0LG8pKSxvfXZhciBoTz1nZXRDb250ZXh0KCksZE89W251bGwsbnVsbF07ZnVuY3Rpb24gY2FwdHVyZVdyYXBwZXJQcm9wcyhzLG8saSxhLHUsXyl7cy5jdXJyZW50PWEsaS5jdXJyZW50PSExLHUuY3VycmVudCYmKHUuY3VycmVudD1udWxsLF8oKSl9ZnVuY3Rpb24gc3RyaWN0RXF1YWwocyxvKXtyZXR1cm4gcz09PW99dmFyIGZPPWZ1bmN0aW9uIGNvbm5lY3QocyxvLGkse3B1cmU6YSxhcmVTdGF0ZXNFcXVhbDp1PXN0cmljdEVxdWFsLGFyZU93blByb3BzRXF1YWw6Xz1zaGFsbG93RXF1YWwsYXJlU3RhdGVQcm9wc0VxdWFsOnc9c2hhbGxvd0VxdWFsLGFyZU1lcmdlZFByb3BzRXF1YWw6eD1zaGFsbG93RXF1YWwsZm9yd2FyZFJlZjpDPSExLGNvbnRleHQ6aj1oT309e30pe2NvbnN0IEw9aixCPWZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wc0ZhY3Rvcnkocyl7cmV0dXJuIHM/ImZ1bmN0aW9uIj09dHlwZW9mIHM/d3JhcE1hcFRvUHJvcHNGdW5jKHMpOmNyZWF0ZUludmFsaWRBcmdGYWN0b3J5KHMsIm1hcFN0YXRlVG9Qcm9wcyIpOndyYXBNYXBUb1Byb3BzQ29uc3RhbnQoKCgpPT4oe30pKSl9KHMpLCQ9ZnVuY3Rpb24gbWFwRGlzcGF0Y2hUb1Byb3BzRmFjdG9yeShzKXtyZXR1cm4gcyYmIm9iamVjdCI9PXR5cGVvZiBzP3dyYXBNYXBUb1Byb3BzQ29uc3RhbnQoKG89PmZ1bmN0aW9uIHJlYWN0X3JlZHV4X2JpbmRBY3Rpb25DcmVhdG9ycyhzLG8pe2NvbnN0IGk9e307Zm9yKGNvbnN0IGEgaW4gcyl7Y29uc3QgdT1zW2FdOyJmdW5jdGlvbiI9PXR5cGVvZiB1JiYoaVthXT0oLi4ucyk9Pm8odSguLi5zKSkpfXJldHVybiBpfShzLG8pKSk6cz8iZnVuY3Rpb24iPT10eXBlb2Ygcz93cmFwTWFwVG9Qcm9wc0Z1bmMocyk6Y3JlYXRlSW52YWxpZEFyZ0ZhY3RvcnkocywibWFwRGlzcGF0Y2hUb1Byb3BzIik6d3JhcE1hcFRvUHJvcHNDb25zdGFudCgocz0+KHtkaXNwYXRjaDpzfSkpKX0obyksVj1mdW5jdGlvbiBtZXJnZVByb3BzRmFjdG9yeShzKXtyZXR1cm4gcz8iZnVuY3Rpb24iPT10eXBlb2Ygcz9mdW5jdGlvbiB3cmFwTWVyZ2VQcm9wc0Z1bmMocyl7cmV0dXJuIGZ1bmN0aW9uIGluaXRNZXJnZVByb3BzUHJveHkobyx7ZGlzcGxheU5hbWU6aSxhcmVNZXJnZWRQcm9wc0VxdWFsOmF9KXtsZXQgdSxfPSExO3JldHVybiBmdW5jdGlvbiBtZXJnZVByb3BzUHJveHkobyxpLHcpe2NvbnN0IHg9cyhvLGksdyk7cmV0dXJuIF8/YSh4LHUpfHwodT14KTooXz0hMCx1PXgpLHV9fX0ocyk6Y3JlYXRlSW52YWxpZEFyZ0ZhY3RvcnkocywibWVyZ2VQcm9wcyIpOigpPT5kZWZhdWx0TWVyZ2VQcm9wc30oaSksVT1Cb29sZWFuKHMpO3JldHVybiBzPT57Y29uc3Qgbz1zLmRpc3BsYXlOYW1lfHxzLm5hbWV8fCJDb21wb25lbnQiLGk9YENvbm5lY3QoJHtvfSlgLGE9e3Nob3VsZEhhbmRsZVN0YXRlQ2hhbmdlczpVLGRpc3BsYXlOYW1lOmksd3JhcHBlZENvbXBvbmVudE5hbWU6byxXcmFwcGVkQ29tcG9uZW50OnMsaW5pdE1hcFN0YXRlVG9Qcm9wczpCLGluaXRNYXBEaXNwYXRjaFRvUHJvcHM6JCxpbml0TWVyZ2VQcm9wczpWLGFyZVN0YXRlc0VxdWFsOnUsYXJlU3RhdGVQcm9wc0VxdWFsOncsYXJlT3duUHJvcHNFcXVhbDpfLGFyZU1lcmdlZFByb3BzRXF1YWw6eH07ZnVuY3Rpb24gQ29ubmVjdEZ1bmN0aW9uKG8pe2NvbnN0W2ksdSxfXT1SZS51c2VNZW1vKCgoKT0+e2NvbnN0e3JlYWN0UmVkdXhGb3J3YXJkZWRSZWY6cywuLi5pfT1vO3JldHVybltvLmNvbnRleHQscyxpXX0pLFtvXSksdz1SZS51c2VNZW1vKCgoKT0+TCksW2ksTF0pLHg9UmUudXNlQ29udGV4dCh3KSxDPUJvb2xlYW4oby5zdG9yZSkmJkJvb2xlYW4oby5zdG9yZS5nZXRTdGF0ZSkmJkJvb2xlYW4oby5zdG9yZS5kaXNwYXRjaCksaj1Cb29sZWFuKHgpJiZCb29sZWFuKHguc3RvcmUpO2NvbnN0IEI9Qz9vLnN0b3JlOnguc3RvcmUsJD1qP3guZ2V0U2VydmVyU3RhdGU6Qi5nZXRTdGF0ZSxWPVJlLnVzZU1lbW8oKCgpPT5mdW5jdGlvbiBmaW5hbFByb3BzU2VsZWN0b3JGYWN0b3J5KHMse2luaXRNYXBTdGF0ZVRvUHJvcHM6byxpbml0TWFwRGlzcGF0Y2hUb1Byb3BzOmksaW5pdE1lcmdlUHJvcHM6YSwuLi51fSl7cmV0dXJuIHB1cmVGaW5hbFByb3BzU2VsZWN0b3JGYWN0b3J5KG8ocyx1KSxpKHMsdSksYShzLHUpLHMsdSl9KEIuZGlzcGF0Y2gsYSkpLFtCXSksW3osWV09UmUudXNlTWVtbygoKCk9PntpZighVSlyZXR1cm4gZE87Y29uc3Qgcz1jcmVhdGVTdWJzY3JpcHRpb24oQixDP3ZvaWQgMDp4LnN1YnNjcmlwdGlvbiksbz1zLm5vdGlmeU5lc3RlZFN1YnMuYmluZChzKTtyZXR1cm5bcyxvXX0pLFtCLEMseF0pLFo9UmUudXNlTWVtbygoKCk9PkM/eDp7Li4ueCxzdWJzY3JpcHRpb246en0pLFtDLHgsel0pLGVlPVJlLnVzZVJlZih2b2lkIDApLGllPVJlLnVzZVJlZihfKSxhZT1SZS51c2VSZWYodm9pZCAwKSxjZT1SZS51c2VSZWYoITEpLGxlPVJlLnVzZVJlZighMSkscGU9UmUudXNlUmVmKHZvaWQgMCk7emsoKCgpPT4obGUuY3VycmVudD0hMCwoKT0+e2xlLmN1cnJlbnQ9ITF9KSksW10pO2NvbnN0IGRlPVJlLnVzZU1lbW8oKCgpPT4oKT0+YWUuY3VycmVudCYmXz09PWllLmN1cnJlbnQ/YWUuY3VycmVudDpWKEIuZ2V0U3RhdGUoKSxfKSksW0IsX10pLGZlPVJlLnVzZU1lbW8oKCgpPT5zPT56P2Z1bmN0aW9uIHN1YnNjcmliZVVwZGF0ZXMocyxvLGksYSx1LF8sdyx4LEMsaixMKXtpZighcylyZXR1cm4oKT0+e307bGV0IEI9ITEsJD1udWxsO2NvbnN0IGNoZWNrRm9yVXBkYXRlcz0oKT0+e2lmKEJ8fCF4LmN1cnJlbnQpcmV0dXJuO2NvbnN0IHM9by5nZXRTdGF0ZSgpO2xldCBpLFY7dHJ5e2k9YShzLHUuY3VycmVudCl9Y2F0Y2gocyl7Vj1zLCQ9c31WfHwoJD1udWxsKSxpPT09Xy5jdXJyZW50P3cuY3VycmVudHx8aigpOihfLmN1cnJlbnQ9aSxDLmN1cnJlbnQ9aSx3LmN1cnJlbnQ9ITAsTCgpKX07cmV0dXJuIGkub25TdGF0ZUNoYW5nZT1jaGVja0ZvclVwZGF0ZXMsaS50cnlTdWJzY3JpYmUoKSxjaGVja0ZvclVwZGF0ZXMoKSwoKT0+e2lmKEI9ITAsaS50cnlVbnN1YnNjcmliZSgpLGkub25TdGF0ZUNoYW5nZT1udWxsLCQpdGhyb3cgJH19KFUsQix6LFYsaWUsZWUsY2UsbGUsYWUsWSxzKTooKT0+e30pLFt6XSk7bGV0IHllOyFmdW5jdGlvbiB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0V2l0aEFyZ3MocyxvLGkpe3prKCgoKT0+cyguLi5vKSksaSl9KGNhcHR1cmVXcmFwcGVyUHJvcHMsW2llLGVlLGNlLF8sYWUsWV0pO3RyeXt5ZT1SZS51c2VTeW5jRXh0ZXJuYWxTdG9yZShmZSxkZSwkPygpPT5WKCQoKSxfKTpkZSl9Y2F0Y2gocyl7dGhyb3cgcGUuY3VycmVudCYmKHMubWVzc2FnZSs9YFxuVGhlIGVycm9yIG1heSBiZSBjb3JyZWxhdGVkIHdpdGggdGhpcyBwcmV2aW91cyBlcnJvcjpcbiR7cGUuY3VycmVudC5zdGFja31cblxuYCksc316aygoKCk9PntwZS5jdXJyZW50PXZvaWQgMCxhZS5jdXJyZW50PXZvaWQgMCxlZS5jdXJyZW50PXllfSkpO2NvbnN0IGJlPVJlLnVzZU1lbW8oKCgpPT5SZS5jcmVhdGVFbGVtZW50KHMsey4uLnllLHJlZjp1fSkpLFt1LHMseWVdKTtyZXR1cm4gUmUudXNlTWVtbygoKCk9PlU/UmUuY3JlYXRlRWxlbWVudCh3LlByb3ZpZGVyLHt2YWx1ZTpafSxiZSk6YmUpLFt3LGJlLFpdKX1jb25zdCBqPVJlLm1lbW8oQ29ubmVjdEZ1bmN0aW9uKTtpZihqLldyYXBwZWRDb21wb25lbnQ9cyxqLmRpc3BsYXlOYW1lPUNvbm5lY3RGdW5jdGlvbi5kaXNwbGF5TmFtZT1pLEMpe2NvbnN0IG89UmUuZm9yd2FyZFJlZigoZnVuY3Rpb24gZm9yd2FyZENvbm5lY3RSZWYocyxvKXtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChqLHsuLi5zLHJlYWN0UmVkdXhGb3J3YXJkZWRSZWY6b30pfSkpO3JldHVybiBvLmRpc3BsYXlOYW1lPWksby5XcmFwcGVkQ29tcG9uZW50PXMsaG9pc3ROb25SZWFjdFN0YXRpY3MobyxzKX1yZXR1cm4gaG9pc3ROb25SZWFjdFN0YXRpY3MoaixzKX19O3ZhciBtTz1mdW5jdGlvbiBQcm92aWRlcihzKXtjb25zdHtjaGlsZHJlbjpvLGNvbnRleHQ6aSxzZXJ2ZXJTdGF0ZTphLHN0b3JlOnV9PXMsXz1SZS51c2VNZW1vKCgoKT0+e2NvbnN0IHM9Y3JlYXRlU3Vic2NyaXB0aW9uKHUpO3JldHVybntzdG9yZTp1LHN1YnNjcmlwdGlvbjpzLGdldFNlcnZlclN0YXRlOmE/KCk9PmE6dm9pZCAwfX0pLFt1LGFdKSx3PVJlLnVzZU1lbW8oKCgpPT51LmdldFN0YXRlKCkpLFt1XSk7emsoKCgpPT57Y29uc3R7c3Vic2NyaXB0aW9uOnN9PV87cmV0dXJuIHMub25TdGF0ZUNoYW5nZT1zLm5vdGlmeU5lc3RlZFN1YnMscy50cnlTdWJzY3JpYmUoKSx3IT09dS5nZXRTdGF0ZSgpJiZzLm5vdGlmeU5lc3RlZFN1YnMoKSwoKT0+e3MudHJ5VW5zdWJzY3JpYmUoKSxzLm9uU3RhdGVDaGFuZ2U9dm9pZCAwfX0pLFtfLHddKTtjb25zdCB4PWl8fGhPO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KHguUHJvdmlkZXIse3ZhbHVlOl99LG8pfTt2YXIgZ089X193ZWJwYWNrX3JlcXVpcmVfXyg4MzQ4OCkseU89X193ZWJwYWNrX3JlcXVpcmVfXy5uKGdPKTtjb25zdCB3aXRoU3lzdGVtPXM9Pm89Pntjb25zdHtmbjppfT1zKCk7Y2xhc3MgV2l0aFN5c3RlbSBleHRlbmRzIFJlLkNvbXBvbmVudHtyZW5kZXIoKXtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChvLE1uKCkoe30scygpLHRoaXMucHJvcHMsdGhpcy5jb250ZXh0KSl9fXJldHVybiBXaXRoU3lzdGVtLmRpc3BsYXlOYW1lPWBXaXRoU3lzdGVtKCR7aS5nZXREaXNwbGF5TmFtZShvKX0pYCxXaXRoU3lzdGVtfSx3aXRoUm9vdD0ocyxvKT0+aT0+e2NvbnN0e2ZuOmF9PXMoKTtjbGFzcyBXaXRoUm9vdCBleHRlbmRzIFJlLkNvbXBvbmVudHtyZW5kZXIoKXtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChtTyx7c3RvcmU6b30sUmUuY3JlYXRlRWxlbWVudChpLE1uKCkoe30sdGhpcy5wcm9wcyx0aGlzLmNvbnRleHQpKSl9fXJldHVybiBXaXRoUm9vdC5kaXNwbGF5TmFtZT1gV2l0aFJvb3QoJHthLmdldERpc3BsYXlOYW1lKGkpfSlgLFdpdGhSb290fSx3aXRoQ29ubmVjdD0ocyxvLGkpPT5jb21wb3NlKGk/d2l0aFJvb3QocyxpKTp5TygpLGZPKCgoaSxhKT0+e2NvbnN0IHU9ey4uLmEsLi4ucygpfSxfPW8ucHJvdG90eXBlPy5tYXBTdGF0ZVRvUHJvcHN8fChzPT4oe3N0YXRlOnN9KSk7cmV0dXJuIF8oaSx1KX0pKSx3aXRoU3lzdGVtKHMpKShvKSxoYW5kbGVQcm9wcz0ocyxvLGksYSk9Pntmb3IoY29uc3QgdSBpbiBvKXtjb25zdCBfPW9bdV07ImZ1bmN0aW9uIj09dHlwZW9mIF8mJl8oaVt1XSxhW3VdLHMoKSl9fSx3aXRoTWFwcGVkQ29udGFpbmVyPShzLG8saSk9PihvLGEpPT57Y29uc3R7Zm46dX09cygpLF89aShvLCJyb290Iik7Y2xhc3MgV2l0aE1hcHBlZENvbnRhaW5lciBleHRlbmRzIFJlLkNvbXBvbmVudHtjb25zdHJ1Y3RvcihvLGkpe3N1cGVyKG8saSksaGFuZGxlUHJvcHMocyxhLG8se30pfVVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG8pe2hhbmRsZVByb3BzKHMsYSxvLHRoaXMucHJvcHMpfXJlbmRlcigpe2NvbnN0IHM9R3QoKSh0aGlzLnByb3BzLGE/T2JqZWN0LmtleXMoYSk6W10pO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KF8scyl9fXJldHVybiBXaXRoTWFwcGVkQ29udGFpbmVyLmRpc3BsYXlOYW1lPWBXaXRoTWFwcGVkQ29udGFpbmVyKCR7dS5nZXREaXNwbGF5TmFtZShfKX0pYCxXaXRoTWFwcGVkQ29udGFpbmVyfSxyZW5kZXI9KHMsbyxpLGEpPT51PT57Y29uc3QgXz1pKHMsbyxhKSgiQXBwIiwicm9vdCIpLHtjcmVhdGVSb290Ond9PXRrO3codSkucmVuZGVyKFJlLmNyZWF0ZUVsZW1lbnQoXyxudWxsKSl9LGdldENvbXBvbmVudD0ocyxvLGkpPT4oYSx1LF89e30pPT57aWYoInN0cmluZyIhPXR5cGVvZiBhKXRocm93IG5ldyBUeXBlRXJyb3IoIk5lZWQgYSBzdHJpbmcsIHRvIGZldGNoIGEgY29tcG9uZW50LiBXYXMgZ2l2ZW4gYSAiK3R5cGVvZiBhKTtjb25zdCB3PWkoYSk7cmV0dXJuIHc/dT8icm9vdCI9PT11P3dpdGhDb25uZWN0KHMsdyxvKCkpOndpdGhDb25uZWN0KHMsdyk6dzooXy5mYWlsU2lsZW50bHl8fHMoKS5sb2cud2FybigiQ291bGQgbm90IGZpbmQgY29tcG9uZW50OiIsYSksbnVsbCl9LGdldERpc3BsYXlOYW1lPXM9PnMuZGlzcGxheU5hbWV8fHMubmFtZXx8IkNvbXBvbmVudCIsdmlldz0oe2dldENvbXBvbmVudHM6cyxnZXRTdG9yZTpvLGdldFN5c3RlbTppfSk9Pntjb25zdCBhPSh1PWdldENvbXBvbmVudChpLG8scyksUHQodSwoKC4uLnMpPT5KU09OLnN0cmluZ2lmeShzKSkpKTt2YXIgdTtjb25zdCBfPShzPT51dGlsc19tZW1vaXplTihzLCgoLi4ucyk9PnMpKSkod2l0aE1hcHBlZENvbnRhaW5lcihpLDAsYSkpO3JldHVybntyb290SW5qZWN0czp7Z2V0Q29tcG9uZW50OmEsbWFrZU1hcHBlZENvbnRhaW5lcjpfLHJlbmRlcjpyZW5kZXIoaSxvLGdldENvbXBvbmVudCxzKX0sZm46e2dldERpc3BsYXlOYW1lfX19LHZpZXdfbGVnYWN5PSh7UmVhY3Q6cyxnZXRTeXN0ZW06byxnZXRTdG9yZTppLGdldENvbXBvbmVudHM6YX0pPT57Y29uc3QgdT17fSxfPXBhcnNlSW50KHM/LnZlcnNpb24sMTApO3JldHVybiBfPj0xNiYmXzwxOCYmKHUucmVuZGVyPSgocyxvLGksYSk9PnU9Pntjb25zdCBfPWkocyxvLGEpKCJBcHAiLCJyb290Iik7dGsucmVuZGVyKFJlLmNyZWF0ZUVsZW1lbnQoXyxudWxsKSx1KX0pKG8saSxnZXRDb21wb25lbnQsYSkpLHtyb290SW5qZWN0czp1fX07ZnVuY3Rpb24gZG93bmxvYWRVcmxQbHVnaW4ocyl7bGV0e2ZuOm99PXM7Y29uc3QgaT17ZG93bmxvYWQ6cz0+KHtlcnJBY3Rpb25zOmksc3BlY1NlbGVjdG9yczphLHNwZWNBY3Rpb25zOnUsZ2V0Q29uZmlnczpffSk9PntsZXR7ZmV0Y2g6d309bztjb25zdCB4PV8oKTtmdW5jdGlvbiBuZXh0KG8pe2lmKG8gaW5zdGFuY2VvZiBFcnJvcnx8by5zdGF0dXM+PTQwMClyZXR1cm4gdS51cGRhdGVMb2FkaW5nU3RhdHVzKCJmYWlsZWQiKSxpLm5ld1Rocm93bkVycihPYmplY3QuYXNzaWduKG5ldyBFcnJvcigoby5tZXNzYWdlfHxvLnN0YXR1c1RleHQpKyIgIitzKSx7c291cmNlOiJmZXRjaCJ9KSksdm9pZCghby5zdGF0dXMmJm8gaW5zdGFuY2VvZiBFcnJvciYmZnVuY3Rpb24gY2hlY2tQb3NzaWJsZUZhaWxSZWFzb25zKCl7dHJ5e2xldCBvO2lmKCJVUkwiaW4gbHQ/bz1uZXcgVVJMKHMpOihvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxvLmhyZWY9cyksImh0dHBzOiIhPT1vLnByb3RvY29sJiYiaHR0cHM6Ij09PWx0LmxvY2F0aW9uLnByb3RvY29sKXtjb25zdCBzPU9iamVjdC5hc3NpZ24obmV3IEVycm9yKGBQb3NzaWJsZSBtaXhlZC1jb250ZW50IGlzc3VlPyBUaGUgcGFnZSB3YXMgbG9hZGVkIG92ZXIgaHR0cHM6Ly8gYnV0IGEgJHtvLnByb3RvY29sfS8vIFVSTCB3YXMgc3BlY2lmaWVkLiBDaGVjayB0aGF0IHlvdSBhcmUgbm90IGF0dGVtcHRpbmcgdG8gbG9hZCBtaXhlZCBjb250ZW50LmApLHtzb3VyY2U6ImZldGNoIn0pO3JldHVybiB2b2lkIGkubmV3VGhyb3duRXJyKHMpfWlmKG8ub3JpZ2luIT09bHQubG9jYXRpb24ub3JpZ2luKXtjb25zdCBzPU9iamVjdC5hc3NpZ24obmV3IEVycm9yKGBQb3NzaWJsZSBjcm9zcy1vcmlnaW4gKENPUlMpIGlzc3VlPyBUaGUgVVJMIG9yaWdpbiAoJHtvLm9yaWdpbn0pIGRvZXMgbm90IG1hdGNoIHRoZSBwYWdlICgke2x0LmxvY2F0aW9uLm9yaWdpbn0pLiBDaGVjayB0aGUgc2VydmVyIHJldHVybnMgdGhlIGNvcnJlY3QgJ0FjY2Vzcy1Db250cm9sLUFsbG93LSonIGhlYWRlcnMuYCkse3NvdXJjZToiZmV0Y2gifSk7aS5uZXdUaHJvd25FcnIocyl9fWNhdGNoKHMpe3JldHVybn19KCkpO3UudXBkYXRlTG9hZGluZ1N0YXR1cygic3VjY2VzcyIpLHUudXBkYXRlU3BlYyhvLnRleHQpLGEudXJsKCkhPT1zJiZ1LnVwZGF0ZVVybChzKX1zPXN8fGEudXJsKCksdS51cGRhdGVMb2FkaW5nU3RhdHVzKCJsb2FkaW5nIiksaS5jbGVhcih7c291cmNlOiJmZXRjaCJ9KSx3KHt1cmw6cyxsb2FkU3BlYzohMCxyZXF1ZXN0SW50ZXJjZXB0b3I6eC5yZXF1ZXN0SW50ZXJjZXB0b3J8fChzPT5zKSxyZXNwb25zZUludGVyY2VwdG9yOngucmVzcG9uc2VJbnRlcmNlcHRvcnx8KHM9PnMpLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCovKiJ9fSkudGhlbihuZXh0LG5leHQpfSx1cGRhdGVMb2FkaW5nU3RhdHVzOnM9PntsZXQgbz1bbnVsbCwibG9hZGluZyIsImZhaWxlZCIsInN1Y2Nlc3MiLCJmYWlsZWRDb25maWciXTtyZXR1cm4tMT09PW8uaW5kZXhPZihzKSYmY29uc29sZS5lcnJvcihgRXJyb3I6ICR7c30gaXMgbm90IG9uZSBvZiAke0pTT04uc3RyaW5naWZ5KG8pfWApLHt0eXBlOiJzcGVjX3VwZGF0ZV9sb2FkaW5nX3N0YXR1cyIscGF5bG9hZDpzfX19O2xldCBhPXtsb2FkaW5nU3RhdHVzOlZ0KChzPT5zfHwoMCx6ZS5NYXApKCkpLChzPT5zLmdldCgibG9hZGluZ1N0YXR1cyIpfHxudWxsKSl9O3JldHVybntzdGF0ZVBsdWdpbnM6e3NwZWM6e2FjdGlvbnM6aSxyZWR1Y2Vyczp7c3BlY191cGRhdGVfbG9hZGluZ19zdGF0dXM6KHMsbyk9PiJzdHJpbmciPT10eXBlb2Ygby5wYXlsb2FkP3Muc2V0KCJsb2FkaW5nU3RhdHVzIixvLnBheWxvYWQpOnN9LHNlbGVjdG9yczphfX19fWZ1bmN0aW9uIGFycmF5TGlrZVRvQXJyYXlfYXJyYXlMaWtlVG9BcnJheShzLG8peyhudWxsPT1vfHxvPnMubGVuZ3RoKSYmKG89cy5sZW5ndGgpO2Zvcih2YXIgaT0wLGE9QXJyYXkobyk7aTxvO2krKylhW2ldPXNbaV07cmV0dXJuIGF9ZnVuY3Rpb24gdG9Db25zdW1hYmxlQXJyYXlfdG9Db25zdW1hYmxlQXJyYXkocyl7cmV0dXJuIGZ1bmN0aW9uIGFycmF5V2l0aG91dEhvbGVzX2FycmF5V2l0aG91dEhvbGVzKHMpe2lmKEFycmF5LmlzQXJyYXkocykpcmV0dXJuIGFycmF5TGlrZVRvQXJyYXlfYXJyYXlMaWtlVG9BcnJheShzKX0ocyl8fGZ1bmN0aW9uIGl0ZXJhYmxlVG9BcnJheV9pdGVyYWJsZVRvQXJyYXkocyl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPXNbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9c1siQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKHMpfShzKXx8ZnVuY3Rpb24gdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXlfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkocyxvKXtpZihzKXtpZigic3RyaW5nIj09dHlwZW9mIHMpcmV0dXJuIGFycmF5TGlrZVRvQXJyYXlfYXJyYXlMaWtlVG9BcnJheShzLG8pO3ZhciBpPXt9LnRvU3RyaW5nLmNhbGwocykuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1pJiZzLmNvbnN0cnVjdG9yJiYoaT1zLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aXx8IlNldCI9PT1pP0FycmF5LmZyb20ocyk6IkFyZ3VtZW50cyI9PT1pfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChpKT9hcnJheUxpa2VUb0FycmF5X2FycmF5TGlrZVRvQXJyYXkocyxvKTp2b2lkIDB9fShzKXx8ZnVuY3Rpb24gbm9uSXRlcmFibGVTcHJlYWRfbm9uSXRlcmFibGVTcHJlYWQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiB0eXBlb2ZfdHlwZW9mKHMpe3JldHVybiB0eXBlb2ZfdHlwZW9mPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHMpe3JldHVybiB0eXBlb2Ygc306ZnVuY3Rpb24ocyl7cmV0dXJuIHMmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnMuY29uc3RydWN0b3I9PT1TeW1ib2wmJnMhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBzfSx0eXBlb2ZfdHlwZW9mKHMpfWZ1bmN0aW9uIHRvUHJvcGVydHlLZXkocyl7dmFyIG89ZnVuY3Rpb24gdG9QcmltaXRpdmUocyxvKXtpZigib2JqZWN0IiE9dHlwZW9mX3R5cGVvZihzKXx8IXMpcmV0dXJuIHM7dmFyIGk9c1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWkpe3ZhciBhPWkuY2FsbChzLG98fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZl90eXBlb2YoYSkpcmV0dXJuIGE7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1vP1N0cmluZzpOdW1iZXIpKHMpfShzLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mX3R5cGVvZihvKT9vOm8rIiJ9ZnVuY3Rpb24gZGVmaW5lUHJvcGVydHlfZGVmaW5lUHJvcGVydHkocyxvLGkpe3JldHVybihvPXRvUHJvcGVydHlLZXkobykpaW4gcz9PYmplY3QuZGVmaW5lUHJvcGVydHkocyxvLHt2YWx1ZTppLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6c1tvXT1pLHN9ZnVuY3Rpb24gZXh0ZW5kc19leHRlbmRzKCl7cmV0dXJuIGV4dGVuZHNfZXh0ZW5kcz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHMpe2Zvcih2YXIgbz0xO288YXJndW1lbnRzLmxlbmd0aDtvKyspe3ZhciBpPWFyZ3VtZW50c1tvXTtmb3IodmFyIGEgaW4gaSkoe30pLmhhc093blByb3BlcnR5LmNhbGwoaSxhKSYmKHNbYV09aVthXSl9cmV0dXJuIHN9LGV4dGVuZHNfZXh0ZW5kcy5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gY3JlYXRlX2VsZW1lbnRfb3duS2V5cyhzLG8pe3ZhciBpPU9iamVjdC5rZXlzKHMpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7byYmKGE9YS5maWx0ZXIoKGZ1bmN0aW9uKG8pe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsbykuZW51bWVyYWJsZX0pKSksaS5wdXNoLmFwcGx5KGksYSl9cmV0dXJuIGl9ZnVuY3Rpb24gX29iamVjdFNwcmVhZChzKXtmb3IodmFyIG89MTtvPGFyZ3VtZW50cy5sZW5ndGg7bysrKXt2YXIgaT1udWxsIT1hcmd1bWVudHNbb10/YXJndW1lbnRzW29dOnt9O28lMj9jcmVhdGVfZWxlbWVudF9vd25LZXlzKE9iamVjdChpKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24obyl7ZGVmaW5lUHJvcGVydHlfZGVmaW5lUHJvcGVydHkocyxvLGlbb10pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHMsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoaSkpOmNyZWF0ZV9lbGVtZW50X293bktleXMoT2JqZWN0KGkpKS5mb3JFYWNoKChmdW5jdGlvbihvKXtPYmplY3QuZGVmaW5lUHJvcGVydHkocyxvLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaSxvKSl9KSl9cmV0dXJuIHN9dmFyIHZPPXt9O2Z1bmN0aW9uIGNyZWF0ZVN0eWxlT2JqZWN0KHMpe3ZhciBvPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxpPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwO3JldHVybiBmdW5jdGlvbiBnZXRDbGFzc05hbWVDb21iaW5hdGlvbnMocyl7aWYoMD09PXMubGVuZ3RofHwxPT09cy5sZW5ndGgpcmV0dXJuIHM7dmFyIG89cy5qb2luKCIuIik7cmV0dXJuIHZPW29dfHwodk9bb109ZnVuY3Rpb24gcG93ZXJTZXRQZXJtdXRhdGlvbnMocyl7dmFyIG89cy5sZW5ndGg7cmV0dXJuIDA9PT1vfHwxPT09bz9zOjI9PT1vP1tzWzBdLHNbMV0sIiIuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1sxXSksIiIuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1swXSldOjM9PT1vP1tzWzBdLHNbMV0sc1syXSwiIi5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzFdKSwiIi5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzJdKSwiIi5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzBdKSwiIi5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzJdKSwiIi5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzBdKSwiIi5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzFdKSwiIi5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMl0pLCIiLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1sxXSksIiIuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzJdKSwiIi5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbMF0pLCIiLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1sxXSksIiIuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzBdKV06bz49ND9bc1swXSxzWzFdLHNbMl0sc1szXSwiIi5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzFdKSwiIi5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzJdKSwiIi5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzNdKSwiIi5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzBdKSwiIi5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzJdKSwiIi5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzNdKSwiIi5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzBdKSwiIi5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzFdKSwiIi5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzNdKSwiIi5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzBdKSwiIi5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzFdKSwiIi5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzJdKSwiIi5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMl0pLCIiLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1szXSksIiIuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzFdKSwiIi5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbM10pLCIiLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbM10sIi4iKS5jb25jYXQoc1sxXSksIiIuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzJdKSwiIi5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMl0pLCIiLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1szXSksIiIuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzBdKSwiIi5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbM10pLCIiLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbM10sIi4iKS5jb25jYXQoc1swXSksIiIuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzJdKSwiIi5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMV0pLCIiLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1szXSksIiIuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzBdKSwiIi5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbM10pLCIiLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbM10sIi4iKS5jb25jYXQoc1swXSksIiIuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzFdKSwiIi5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMV0pLCIiLmNvbmNhdChzWzNdLCIuIikuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1syXSksIiIuY29uY2F0KHNbM10sIi4iKS5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzBdKSwiIi5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMl0pLCIiLmNvbmNhdChzWzNdLCIuIikuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1swXSksIiIuY29uY2F0KHNbM10sIi4iKS5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzFdKSwiIi5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1szXSksIiIuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzNdLCIuIikuY29uY2F0KHNbMl0pLCIiLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzNdKSwiIi5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbM10sIi4iKS5jb25jYXQoc1sxXSksIiIuY29uY2F0KHNbMF0sIi4iKS5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMl0pLCIiLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbM10sIi4iKS5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzFdKSwiIi5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1szXSksIiIuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzNdLCIuIikuY29uY2F0KHNbMl0pLCIiLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzNdKSwiIi5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbM10sIi4iKS5jb25jYXQoc1swXSksIiIuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMl0pLCIiLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbM10sIi4iKS5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzBdKSwiIi5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1szXSksIiIuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzNdLCIuIikuY29uY2F0KHNbMV0pLCIiLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzNdKSwiIi5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbM10sIi4iKS5jb25jYXQoc1swXSksIiIuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMV0pLCIiLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbM10sIi4iKS5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzBdKSwiIi5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1syXSksIiIuY29uY2F0KHNbM10sIi4iKS5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzJdLCIuIikuY29uY2F0KHNbMV0pLCIiLmNvbmNhdChzWzNdLCIuIikuY29uY2F0KHNbMV0sIi4iKS5jb25jYXQoc1swXSwiLiIpLmNvbmNhdChzWzJdKSwiIi5jb25jYXQoc1szXSwiLiIpLmNvbmNhdChzWzFdLCIuIikuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1swXSksIiIuY29uY2F0KHNbM10sIi4iKS5jb25jYXQoc1syXSwiLiIpLmNvbmNhdChzWzBdLCIuIikuY29uY2F0KHNbMV0pLCIiLmNvbmNhdChzWzNdLCIuIikuY29uY2F0KHNbMl0sIi4iKS5jb25jYXQoc1sxXSwiLiIpLmNvbmNhdChzWzBdKV06dm9pZCAwfShzKSksdk9bb119KHMuZmlsdGVyKChmdW5jdGlvbihzKXtyZXR1cm4idG9rZW4iIT09c30pKSkucmVkdWNlKChmdW5jdGlvbihzLG8pe3JldHVybiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30scyksaVtvXSl9KSxvKX1mdW5jdGlvbiBjcmVhdGVDbGFzc05hbWVTdHJpbmcocyl7cmV0dXJuIHMuam9pbigiICIpfWZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQocyl7dmFyIG89cy5ub2RlLGk9cy5zdHlsZXNoZWV0LGE9cy5zdHlsZSx1PXZvaWQgMD09PWE/e306YSxfPXMudXNlSW5saW5lU3R5bGVzLHc9cy5rZXkseD1vLnByb3BlcnRpZXMsQz1vLnR5cGUsaj1vLnRhZ05hbWUsTD1vLnZhbHVlO2lmKCJ0ZXh0Ij09PUMpcmV0dXJuIEw7aWYoail7dmFyIEIsJD1mdW5jdGlvbiBjcmVhdGVDaGlsZHJlbihzLG8pe3ZhciBpPTA7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBpKz0xLGEubWFwKChmdW5jdGlvbihhLHUpe3JldHVybiBjcmVhdGVFbGVtZW50KHtub2RlOmEsc3R5bGVzaGVldDpzLHVzZUlubGluZVN0eWxlczpvLGtleToiY29kZS1zZWdtZW50LSIuY29uY2F0KGksIi0iKS5jb25jYXQodSl9KX0pKX19KGksXyk7aWYoXyl7dmFyIFY9T2JqZWN0LmtleXMoaSkucmVkdWNlKChmdW5jdGlvbihzLG8pe3JldHVybiBvLnNwbGl0KCIuIikuZm9yRWFjaCgoZnVuY3Rpb24obyl7cy5pbmNsdWRlcyhvKXx8cy5wdXNoKG8pfSkpLHN9KSxbXSksVT14LmNsYXNzTmFtZSYmeC5jbGFzc05hbWUuaW5jbHVkZXMoInRva2VuIik/WyJ0b2tlbiJdOltdLHo9eC5jbGFzc05hbWUmJlUuY29uY2F0KHguY2xhc3NOYW1lLmZpbHRlcigoZnVuY3Rpb24ocyl7cmV0dXJuIVYuaW5jbHVkZXMocyl9KSkpO0I9X29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LHgpLHt9LHtjbGFzc05hbWU6Y3JlYXRlQ2xhc3NOYW1lU3RyaW5nKHopfHx2b2lkIDAsc3R5bGU6Y3JlYXRlU3R5bGVPYmplY3QoeC5jbGFzc05hbWUsT2JqZWN0LmFzc2lnbih7fSx4LnN0eWxlLHUpLGkpfSl9ZWxzZSBCPV9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSx4KSx7fSx7Y2xhc3NOYW1lOmNyZWF0ZUNsYXNzTmFtZVN0cmluZyh4LmNsYXNzTmFtZSl9KTt2YXIgWT0kKG8uY2hpbGRyZW4pO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KGosZXh0ZW5kc19leHRlbmRzKHtrZXk6d30sQiksWSl9fXZhciBiTz1bImxhbmd1YWdlIiwiY2hpbGRyZW4iLCJzdHlsZSIsImN1c3RvbVN0eWxlIiwiY29kZVRhZ1Byb3BzIiwidXNlSW5saW5lU3R5bGVzIiwic2hvd0xpbmVOdW1iZXJzIiwic2hvd0lubGluZUxpbmVOdW1iZXJzIiwic3RhcnRpbmdMaW5lTnVtYmVyIiwibGluZU51bWJlckNvbnRhaW5lclN0eWxlIiwibGluZU51bWJlclN0eWxlIiwid3JhcExpbmVzIiwid3JhcExvbmdMaW5lcyIsImxpbmVQcm9wcyIsInJlbmRlcmVyIiwiUHJlVGFnIiwiQ29kZVRhZyIsImNvZGUiLCJhc3RHZW5lcmF0b3IiXTtmdW5jdGlvbiBoaWdobGlnaHRfb3duS2V5cyhzLG8pe3ZhciBpPU9iamVjdC5rZXlzKHMpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7byYmKGE9YS5maWx0ZXIoKGZ1bmN0aW9uKG8pe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsbykuZW51bWVyYWJsZX0pKSksaS5wdXNoLmFwcGx5KGksYSl9cmV0dXJuIGl9ZnVuY3Rpb24gaGlnaGxpZ2h0X29iamVjdFNwcmVhZChzKXtmb3IodmFyIG89MTtvPGFyZ3VtZW50cy5sZW5ndGg7bysrKXt2YXIgaT1udWxsIT1hcmd1bWVudHNbb10/YXJndW1lbnRzW29dOnt9O28lMj9oaWdobGlnaHRfb3duS2V5cyhPYmplY3QoaSksITApLmZvckVhY2goKGZ1bmN0aW9uKG8pe2RlZmluZVByb3BlcnR5X2RlZmluZVByb3BlcnR5KHMsbyxpW29dKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhzLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGkpKTpoaWdobGlnaHRfb3duS2V5cyhPYmplY3QoaSkpLmZvckVhY2goKGZ1bmN0aW9uKG8pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLG8sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLG8pKX0pKX1yZXR1cm4gc312YXIgX089L1xuL2c7ZnVuY3Rpb24gQWxsTGluZU51bWJlcnMocyl7dmFyIG89cy5jb2RlU3RyaW5nLGk9cy5jb2RlU3R5bGUsYT1zLmNvbnRhaW5lclN0eWxlLHU9dm9pZCAwPT09YT97ZmxvYXQ6ImxlZnQiLHBhZGRpbmdSaWdodDoiMTBweCJ9OmEsXz1zLm51bWJlclN0eWxlLHc9dm9pZCAwPT09Xz97fTpfLHg9cy5zdGFydGluZ0xpbmVOdW1iZXI7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLHtzdHlsZTpPYmplY3QuYXNzaWduKHt9LGksdSl9LGZ1bmN0aW9uIGdldEFsbExpbmVOdW1iZXJzKHMpe3ZhciBvPXMubGluZXMsaT1zLnN0YXJ0aW5nTGluZU51bWJlcixhPXMuc3R5bGU7cmV0dXJuIG8ubWFwKChmdW5jdGlvbihzLG8pe3ZhciB1PW8raTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2tleToibGluZS0iLmNvbmNhdChvKSxjbGFzc05hbWU6InJlYWN0LXN5bnRheC1oaWdobGlnaHRlci1saW5lLW51bWJlciIsc3R5bGU6ImZ1bmN0aW9uIj09dHlwZW9mIGE/YSh1KTphfSwiIi5jb25jYXQodSwiXG4iKSl9KSl9KHtsaW5lczpvLnJlcGxhY2UoL1xuJC8sIiIpLnNwbGl0KCJcbiIpLHN0eWxlOncsc3RhcnRpbmdMaW5lTnVtYmVyOnh9KSl9ZnVuY3Rpb24gZ2V0SW5saW5lTGluZU51bWJlcihzLG8pe3JldHVybnt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzcGFuIixwcm9wZXJ0aWVzOntrZXk6ImxpbmUtbnVtYmVyLS0iLmNvbmNhdChzKSxjbGFzc05hbWU6WyJjb21tZW50IiwibGluZW51bWJlciIsInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci1saW5lLW51bWJlciJdLHN0eWxlOm99LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6c31dfX1mdW5jdGlvbiBhc3NlbWJsZUxpbmVOdW1iZXJTdHlsZXMocyxvLGkpe3ZhciBhLHU9e2Rpc3BsYXk6ImlubGluZS1ibG9jayIsbWluV2lkdGg6KGE9aSwiIi5jb25jYXQoYS50b1N0cmluZygpLmxlbmd0aCwiLjI1ZW0iKSkscGFkZGluZ1JpZ2h0OiIxZW0iLHRleHRBbGlnbjoicmlnaHQiLHVzZXJTZWxlY3Q6Im5vbmUifSxfPSJmdW5jdGlvbiI9PXR5cGVvZiBzP3Mobyk6cztyZXR1cm4gaGlnaGxpZ2h0X29iamVjdFNwcmVhZChoaWdobGlnaHRfb2JqZWN0U3ByZWFkKHt9LHUpLF8pfWZ1bmN0aW9uIGNyZWF0ZUxpbmVFbGVtZW50KHMpe3ZhciBvPXMuY2hpbGRyZW4saT1zLmxpbmVOdW1iZXIsYT1zLmxpbmVOdW1iZXJTdHlsZSx1PXMubGFyZ2VzdExpbmVOdW1iZXIsXz1zLnNob3dJbmxpbmVMaW5lTnVtYmVycyx3PXMubGluZVByb3BzLHg9dm9pZCAwPT09dz97fTp3LEM9cy5jbGFzc05hbWUsaj12b2lkIDA9PT1DP1tdOkMsTD1zLnNob3dMaW5lTnVtYmVycyxCPXMud3JhcExvbmdMaW5lcywkPXMud3JhcExpbmVzLFY9dm9pZCAwIT09JCYmJD9oaWdobGlnaHRfb2JqZWN0U3ByZWFkKHt9LCJmdW5jdGlvbiI9PXR5cGVvZiB4P3goaSk6eCk6e307aWYoVi5jbGFzc05hbWU9Vi5jbGFzc05hbWU/W10uY29uY2F0KHRvQ29uc3VtYWJsZUFycmF5X3RvQ29uc3VtYWJsZUFycmF5KFYuY2xhc3NOYW1lLnRyaW0oKS5zcGxpdCgvXHMrLykpLHRvQ29uc3VtYWJsZUFycmF5X3RvQ29uc3VtYWJsZUFycmF5KGopKTpqLGkmJl8pe3ZhciBVPWFzc2VtYmxlTGluZU51bWJlclN0eWxlcyhhLGksdSk7by51bnNoaWZ0KGdldElubGluZUxpbmVOdW1iZXIoaSxVKSl9cmV0dXJuIEImTCYmKFYuc3R5bGU9aGlnaGxpZ2h0X29iamVjdFNwcmVhZCh7ZGlzcGxheToiZmxleCJ9LFYuc3R5bGUpKSx7dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3BhbiIscHJvcGVydGllczpWLGNoaWxkcmVuOm99fWZ1bmN0aW9uIGZsYXR0ZW5Db2RlVHJlZShzKXtmb3IodmFyIG89YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOltdLGk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOltdLGE9MDthPHMubGVuZ3RoO2ErKyl7dmFyIHU9c1thXTtpZigidGV4dCI9PT11LnR5cGUpaS5wdXNoKGNyZWF0ZUxpbmVFbGVtZW50KHtjaGlsZHJlbjpbdV0sY2xhc3NOYW1lOnRvQ29uc3VtYWJsZUFycmF5X3RvQ29uc3VtYWJsZUFycmF5KG5ldyBTZXQobykpfSkpO2Vsc2UgaWYodS5jaGlsZHJlbil7dmFyIF89by5jb25jYXQodS5wcm9wZXJ0aWVzLmNsYXNzTmFtZSk7ZmxhdHRlbkNvZGVUcmVlKHUuY2hpbGRyZW4sXykuZm9yRWFjaCgoZnVuY3Rpb24ocyl7cmV0dXJuIGkucHVzaChzKX0pKX19cmV0dXJuIGl9ZnVuY3Rpb24gcHJvY2Vzc0xpbmVzKHMsbyxpLGEsdSxfLHcseCxDKXt2YXIgaixMPWZsYXR0ZW5Db2RlVHJlZShzLnZhbHVlKSxCPVtdLCQ9LTEsVj0wO2Z1bmN0aW9uIGNyZWF0ZUxpbmUocyxfKXt2YXIgaj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06W107cmV0dXJuIG98fGoubGVuZ3RoPjA/ZnVuY3Rpb24gY3JlYXRlV3JhcHBlZExpbmUocyxfKXtyZXR1cm4gY3JlYXRlTGluZUVsZW1lbnQoe2NoaWxkcmVuOnMsbGluZU51bWJlcjpfLGxpbmVOdW1iZXJTdHlsZTp4LGxhcmdlc3RMaW5lTnVtYmVyOncsc2hvd0lubGluZUxpbmVOdW1iZXJzOnUsbGluZVByb3BzOmksY2xhc3NOYW1lOmFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpbXSxzaG93TGluZU51bWJlcnM6YSx3cmFwTG9uZ0xpbmVzOkMsd3JhcExpbmVzOm99KX0ocyxfLGopOmZ1bmN0aW9uIGNyZWF0ZVVud3JhcHBlZExpbmUocyxvKXtpZihhJiZvJiZ1KXt2YXIgaT1hc3NlbWJsZUxpbmVOdW1iZXJTdHlsZXMoeCxvLHcpO3MudW5zaGlmdChnZXRJbmxpbmVMaW5lTnVtYmVyKG8saSkpfXJldHVybiBzfShzLF8pfWZvcih2YXIgVT1mdW5jdGlvbiBfbG9vcCgpe3ZhciBzPUxbVl0sbz1zLmNoaWxkcmVuWzBdLnZhbHVlLGk9ZnVuY3Rpb24gZ2V0TmV3TGluZXMocyl7cmV0dXJuIHMubWF0Y2goX08pfShvKTtpZihpKXt2YXIgdT1vLnNwbGl0KCJcbiIpO3UuZm9yRWFjaCgoZnVuY3Rpb24obyxpKXt2YXIgdz1hJiZCLmxlbmd0aCtfLHg9e3R5cGU6InRleHQiLHZhbHVlOiIiLmNvbmNhdChvLCJcbiIpfTtpZigwPT09aSl7dmFyIEM9Y3JlYXRlTGluZShMLnNsaWNlKCQrMSxWKS5jb25jYXQoY3JlYXRlTGluZUVsZW1lbnQoe2NoaWxkcmVuOlt4XSxjbGFzc05hbWU6cy5wcm9wZXJ0aWVzLmNsYXNzTmFtZX0pKSx3KTtCLnB1c2goQyl9ZWxzZSBpZihpPT09dS5sZW5ndGgtMSl7dmFyIGo9TFtWKzFdJiZMW1YrMV0uY2hpbGRyZW4mJkxbVisxXS5jaGlsZHJlblswXSxVPXt0eXBlOiJ0ZXh0Iix2YWx1ZToiIi5jb25jYXQobyl9O2lmKGope3ZhciB6PWNyZWF0ZUxpbmVFbGVtZW50KHtjaGlsZHJlbjpbVV0sY2xhc3NOYW1lOnMucHJvcGVydGllcy5jbGFzc05hbWV9KTtMLnNwbGljZShWKzEsMCx6KX1lbHNle3ZhciBZPWNyZWF0ZUxpbmUoW1VdLHcscy5wcm9wZXJ0aWVzLmNsYXNzTmFtZSk7Qi5wdXNoKFkpfX1lbHNle3ZhciBaPWNyZWF0ZUxpbmUoW3hdLHcscy5wcm9wZXJ0aWVzLmNsYXNzTmFtZSk7Qi5wdXNoKFopfX0pKSwkPVZ9VisrfTtWPEwubGVuZ3RoOylVKCk7aWYoJCE9PUwubGVuZ3RoLTEpe3ZhciB6PUwuc2xpY2UoJCsxLEwubGVuZ3RoKTtpZih6JiZ6Lmxlbmd0aCl7dmFyIFk9Y3JlYXRlTGluZSh6LGEmJkIubGVuZ3RoK18pO0IucHVzaChZKX19cmV0dXJuIG8/Qjooaj1bXSkuY29uY2F0LmFwcGx5KGosQil9ZnVuY3Rpb24gZGVmYXVsdFJlbmRlcmVyKHMpe3ZhciBvPXMucm93cyxpPXMuc3R5bGVzaGVldCxhPXMudXNlSW5saW5lU3R5bGVzO3JldHVybiBvLm1hcCgoZnVuY3Rpb24ocyxvKXtyZXR1cm4gY3JlYXRlRWxlbWVudCh7bm9kZTpzLHN0eWxlc2hlZXQ6aSx1c2VJbmxpbmVTdHlsZXM6YSxrZXk6ImNvZGUtc2VnZW1lbnQiLmNvbmNhdChvKX0pfSkpfWZ1bmN0aW9uIGlzSGlnaGxpZ2h0SnMocyl7cmV0dXJuIHMmJnZvaWQgMCE9PXMuaGlnaGxpZ2h0QXV0b312YXIgU089X193ZWJwYWNrX3JlcXVpcmVfXyg0Mzc2OCksRU89ZnVuY3Rpb24gaGlnaGxpZ2h0KHMsbyl7cmV0dXJuIGZ1bmN0aW9uIFN5bnRheEhpZ2hsaWdodGVyKGkpe3ZhciBhPWkubGFuZ3VhZ2UsdT1pLmNoaWxkcmVuLF89aS5zdHlsZSx3PXZvaWQgMD09PV8/bzpfLHg9aS5jdXN0b21TdHlsZSxDPXZvaWQgMD09PXg/e306eCxqPWkuY29kZVRhZ1Byb3BzLEw9dm9pZCAwPT09aj97Y2xhc3NOYW1lOmE/Imxhbmd1YWdlLSIuY29uY2F0KGEpOnZvaWQgMCxzdHlsZTpoaWdobGlnaHRfb2JqZWN0U3ByZWFkKGhpZ2hsaWdodF9vYmplY3RTcHJlYWQoe30sd1snY29kZVtjbGFzcyo9Imxhbmd1YWdlLSJdJ10pLHdbJ2NvZGVbY2xhc3MqPSJsYW5ndWFnZS0nLmNvbmNhdChhLCciXScpXSl9OmosQj1pLnVzZUlubGluZVN0eWxlcywkPXZvaWQgMD09PUJ8fEIsVj1pLnNob3dMaW5lTnVtYmVycyxVPXZvaWQgMCE9PVYmJlYsej1pLnNob3dJbmxpbmVMaW5lTnVtYmVycyxZPXZvaWQgMD09PXp8fHosWj1pLnN0YXJ0aW5nTGluZU51bWJlcixlZT12b2lkIDA9PT1aPzE6WixpZT1pLmxpbmVOdW1iZXJDb250YWluZXJTdHlsZSxhZT1pLmxpbmVOdW1iZXJTdHlsZSxjZT12b2lkIDA9PT1hZT97fTphZSxsZT1pLndyYXBMaW5lcyxwZT1pLndyYXBMb25nTGluZXMsZGU9dm9pZCAwIT09cGUmJnBlLGZlPWkubGluZVByb3BzLHllPXZvaWQgMD09PWZlP3t9OmZlLGJlPWkucmVuZGVyZXIsX2U9aS5QcmVUYWcsU2U9dm9pZCAwPT09X2U/InByZSI6X2Usd2U9aS5Db2RlVGFnLHhlPXZvaWQgMD09PXdlPyJjb2RlIjp3ZSxQZT1pLmNvZGUsVGU9dm9pZCAwPT09UGU/KEFycmF5LmlzQXJyYXkodSk/dVswXTp1KXx8IiI6UGUsJGU9aS5hc3RHZW5lcmF0b3IscWU9ZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHMsbyl7aWYobnVsbD09cylyZXR1cm57fTt2YXIgaSxhLHU9ZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UocyxvKXtpZihudWxsPT1zKXJldHVybnt9O3ZhciBpPXt9O2Zvcih2YXIgYSBpbiBzKWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwocyxhKSl7aWYoLTEhPT1vLmluZGV4T2YoYSkpY29udGludWU7aVthXT1zW2FdfXJldHVybiBpfShzLG8pO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBfPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7Zm9yKGE9MDthPF8ubGVuZ3RoO2ErKylpPV9bYV0sLTE9PT1vLmluZGV4T2YoaSkmJnt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocyxpKSYmKHVbaV09c1tpXSl9cmV0dXJuIHV9KGksYk8pOyRlPSRlfHxzO3ZhciB6ZT1VP1JlLmNyZWF0ZUVsZW1lbnQoQWxsTGluZU51bWJlcnMse2NvbnRhaW5lclN0eWxlOmllLGNvZGVTdHlsZTpMLnN0eWxlfHx7fSxudW1iZXJTdHlsZTpjZSxzdGFydGluZ0xpbmVOdW1iZXI6ZWUsY29kZVN0cmluZzpUZX0pOm51bGwsV2U9dy5obGpzfHx3WydwcmVbY2xhc3MqPSJsYW5ndWFnZS0iXSddfHx7YmFja2dyb3VuZENvbG9yOiIjZmZmIn0sSGU9aXNIaWdobGlnaHRKcygkZSk/ImhsanMiOiJwcmlzbWpzIixZZT0kP09iamVjdC5hc3NpZ24oe30scWUse3N0eWxlOk9iamVjdC5hc3NpZ24oe30sV2UsQyl9KTpPYmplY3QuYXNzaWduKHt9LHFlLHtjbGFzc05hbWU6cWUuY2xhc3NOYW1lPyIiLmNvbmNhdChIZSwiICIpLmNvbmNhdChxZS5jbGFzc05hbWUpOkhlLHN0eWxlOk9iamVjdC5hc3NpZ24oe30sQyl9KTtpZihMLnN0eWxlPWhpZ2hsaWdodF9vYmplY3RTcHJlYWQoZGU/e3doaXRlU3BhY2U6InByZS13cmFwIn06e3doaXRlU3BhY2U6InByZSJ9LEwuc3R5bGUpLCEkZSlyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChTZSxZZSx6ZSxSZS5jcmVhdGVFbGVtZW50KHhlLEwsVGUpKTsodm9pZCAwPT09bGUmJmJlfHxkZSkmJihsZT0hMCksYmU9YmV8fGRlZmF1bHRSZW5kZXJlcjt2YXIgWGU9W3t0eXBlOiJ0ZXh0Iix2YWx1ZTpUZX1dLFFlPWZ1bmN0aW9uIGdldENvZGVUcmVlKHMpe3ZhciBvPXMuYXN0R2VuZXJhdG9yLGk9cy5sYW5ndWFnZSxhPXMuY29kZSx1PXMuZGVmYXVsdENvZGVWYWx1ZTtpZihpc0hpZ2hsaWdodEpzKG8pKXt2YXIgXz1mdW5jdGlvbihzLG8pe3JldHVybi0xIT09cy5saXN0TGFuZ3VhZ2VzKCkuaW5kZXhPZihvKX0obyxpKTtyZXR1cm4idGV4dCI9PT1pP3t2YWx1ZTp1LGxhbmd1YWdlOiJ0ZXh0In06Xz9vLmhpZ2hsaWdodChpLGEpOm8uaGlnaGxpZ2h0QXV0byhhKX10cnl7cmV0dXJuIGkmJiJ0ZXh0IiE9PWk/e3ZhbHVlOm8uaGlnaGxpZ2h0KGEsaSl9Ont2YWx1ZTp1fX1jYXRjaChzKXtyZXR1cm57dmFsdWU6dX19fSh7YXN0R2VuZXJhdG9yOiRlLGxhbmd1YWdlOmEsY29kZTpUZSxkZWZhdWx0Q29kZVZhbHVlOlhlfSk7bnVsbD09PVFlLmxhbmd1YWdlJiYoUWUudmFsdWU9WGUpO3ZhciBldD1RZS52YWx1ZS5sZW5ndGg7MT09PWV0JiYidGV4dCI9PT1RZS52YWx1ZVswXS50eXBlJiYoZXQ9UWUudmFsdWVbMF0udmFsdWUuc3BsaXQoIlxuIikubGVuZ3RoKTt2YXIgdHQ9cHJvY2Vzc0xpbmVzKFFlLGxlLHllLFUsWSxlZSxldCtlZSxjZSxkZSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoU2UsWWUsUmUuY3JlYXRlRWxlbWVudCh4ZSxMLCFZJiZ6ZSxiZSh7cm93czp0dCxzdHlsZXNoZWV0OncsdXNlSW5saW5lU3R5bGVzOiR9KSkpfX0oU08se30pO0VPLnJlZ2lzdGVyTGFuZ3VhZ2U9U08ucmVnaXN0ZXJMYW5ndWFnZTtjb25zdCB3Tz1FTzt2YXIgeE89X193ZWJwYWNrX3JlcXVpcmVfXyg5NTA4OSk7Y29uc3Qga089X193ZWJwYWNrX3JlcXVpcmVfXy5uKHhPKSgpO3ZhciBPTz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY1NzcyKTtjb25zdCBDTz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oT08pKCk7dmFyIEFPPV9fd2VicGFja19yZXF1aXJlX18oMTcyODUpO2NvbnN0IGpPPV9fd2VicGFja19yZXF1aXJlX18ubihBTykoKTt2YXIgUE89X193ZWJwYWNrX3JlcXVpcmVfXygzNTM0NCk7Y29uc3QgSU89X193ZWJwYWNrX3JlcXVpcmVfXy5uKFBPKSgpO3ZhciBUTz1fX3dlYnBhY2tfcmVxdWlyZV9fKDE3NTMzKTtjb25zdCBOTz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oVE8pKCk7dmFyIE1PPV9fd2VicGFja19yZXF1aXJlX18oNzM0MDIpO2NvbnN0IFJPPV9fd2VicGFja19yZXF1aXJlX18ubihNTykoKTt2YXIgRE89X193ZWJwYWNrX3JlcXVpcmVfXygyNjU3MSk7Y29uc3QgTE89X193ZWJwYWNrX3JlcXVpcmVfXy5uKERPKSgpLGFmdGVyX2xvYWQ9KCk9Pnt3Ty5yZWdpc3Rlckxhbmd1YWdlKCJqc29uIixDTyksd08ucmVnaXN0ZXJMYW5ndWFnZSgianMiLGtPKSx3Ty5yZWdpc3Rlckxhbmd1YWdlKCJ4bWwiLGpPKSx3Ty5yZWdpc3Rlckxhbmd1YWdlKCJ5YW1sIixOTyksd08ucmVnaXN0ZXJMYW5ndWFnZSgiaHR0cCIsUk8pLHdPLnJlZ2lzdGVyTGFuZ3VhZ2UoImJhc2giLElPKSx3Ty5yZWdpc3Rlckxhbmd1YWdlKCJwb3dlcnNoZWxsIixMTyksd08ucmVnaXN0ZXJMYW5ndWFnZSgiamF2YXNjcmlwdCIsa08pfSxGTz17aGxqczp7ZGlzcGxheToiYmxvY2siLG92ZXJmbG93WDoiYXV0byIscGFkZGluZzoiMC41ZW0iLGJhY2tncm91bmQ6IiMzMzMiLGNvbG9yOiJ3aGl0ZSJ9LCJobGpzLW5hbWUiOntmb250V2VpZ2h0OiJib2xkIn0sImhsanMtc3Ryb25nIjp7Zm9udFdlaWdodDoiYm9sZCJ9LCJobGpzLWNvZGUiOntmb250U3R5bGU6Iml0YWxpYyIsY29sb3I6IiM4ODgifSwiaGxqcy1lbXBoYXNpcyI6e2ZvbnRTdHlsZToiaXRhbGljIn0sImhsanMtdGFnIjp7Y29sb3I6IiM2MmM4ZjMifSwiaGxqcy12YXJpYWJsZSI6e2NvbG9yOiIjYWRlNWZjIn0sImhsanMtdGVtcGxhdGUtdmFyaWFibGUiOntjb2xvcjoiI2FkZTVmYyJ9LCJobGpzLXNlbGVjdG9yLWlkIjp7Y29sb3I6IiNhZGU1ZmMifSwiaGxqcy1zZWxlY3Rvci1jbGFzcyI6e2NvbG9yOiIjYWRlNWZjIn0sImhsanMtc3RyaW5nIjp7Y29sb3I6IiNhMmZjYTIifSwiaGxqcy1idWxsZXQiOntjb2xvcjoiI2QzNjM2MyJ9LCJobGpzLXR5cGUiOntjb2xvcjoiI2ZmYSJ9LCJobGpzLXRpdGxlIjp7Y29sb3I6IiNmZmEifSwiaGxqcy1zZWN0aW9uIjp7Y29sb3I6IiNmZmEifSwiaGxqcy1hdHRyaWJ1dGUiOntjb2xvcjoiI2ZmYSJ9LCJobGpzLXF1b3RlIjp7Y29sb3I6IiNmZmEifSwiaGxqcy1idWlsdF9pbiI6e2NvbG9yOiIjZmZhIn0sImhsanMtYnVpbHRpbi1uYW1lIjp7Y29sb3I6IiNmZmEifSwiaGxqcy1udW1iZXIiOntjb2xvcjoiI2QzNjM2MyJ9LCJobGpzLXN5bWJvbCI6e2NvbG9yOiIjZDM2MzYzIn0sImhsanMta2V5d29yZCI6e2NvbG9yOiIjZmNjMjhjIn0sImhsanMtc2VsZWN0b3ItdGFnIjp7Y29sb3I6IiNmY2MyOGMifSwiaGxqcy1saXRlcmFsIjp7Y29sb3I6IiNmY2MyOGMifSwiaGxqcy1jb21tZW50Ijp7Y29sb3I6IiM4ODgifSwiaGxqcy1kZWxldGlvbiI6e2NvbG9yOiIjMzMzIixiYWNrZ3JvdW5kQ29sb3I6IiNmYzliOWIifSwiaGxqcy1yZWdleHAiOntjb2xvcjoiI2M2YjRmMCJ9LCJobGpzLWxpbmsiOntjb2xvcjoiI2M2YjRmMCJ9LCJobGpzLW1ldGEiOntjb2xvcjoiI2ZjOWI5YiJ9LCJobGpzLWFkZGl0aW9uIjp7YmFja2dyb3VuZENvbG9yOiIjYTJmY2EyIixjb2xvcjoiIzMzMyJ9fSxCTz17YWdhdGU6Rk8sYXJ0YTp7aGxqczp7ZGlzcGxheToiYmxvY2siLG92ZXJmbG93WDoiYXV0byIscGFkZGluZzoiMC41ZW0iLGJhY2tncm91bmQ6IiMyMjIiLGNvbG9yOiIjYWFhIn0sImhsanMtc3Vic3QiOntjb2xvcjoiI2FhYSJ9LCJobGpzLXNlY3Rpb24iOntjb2xvcjoiI2ZmZiIsZm9udFdlaWdodDoiYm9sZCJ9LCJobGpzLWNvbW1lbnQiOntjb2xvcjoiIzQ0NCJ9LCJobGpzLXF1b3RlIjp7Y29sb3I6IiM0NDQifSwiaGxqcy1tZXRhIjp7Y29sb3I6IiM0NDQifSwiaGxqcy1zdHJpbmciOntjb2xvcjoiI2ZmY2MzMyJ9LCJobGpzLXN5bWJvbCI6e2NvbG9yOiIjZmZjYzMzIn0sImhsanMtYnVsbGV0Ijp7Y29sb3I6IiNmZmNjMzMifSwiaGxqcy1yZWdleHAiOntjb2xvcjoiI2ZmY2MzMyJ9LCJobGpzLW51bWJlciI6e2NvbG9yOiIjMDBjYzY2In0sImhsanMtYWRkaXRpb24iOntjb2xvcjoiIzAwY2M2NiJ9LCJobGpzLWJ1aWx0X2luIjp7Y29sb3I6IiMzMmFhZWUifSwiaGxqcy1idWlsdGluLW5hbWUiOntjb2xvcjoiIzMyYWFlZSJ9LCJobGpzLWxpdGVyYWwiOntjb2xvcjoiIzMyYWFlZSJ9LCJobGpzLXR5cGUiOntjb2xvcjoiIzMyYWFlZSJ9LCJobGpzLXRlbXBsYXRlLXZhcmlhYmxlIjp7Y29sb3I6IiMzMmFhZWUifSwiaGxqcy1hdHRyaWJ1dGUiOntjb2xvcjoiIzMyYWFlZSJ9LCJobGpzLWxpbmsiOntjb2xvcjoiIzMyYWFlZSJ9LCJobGpzLWtleXdvcmQiOntjb2xvcjoiIzY2NDRhYSJ9LCJobGpzLXNlbGVjdG9yLXRhZyI6e2NvbG9yOiIjNjY0NGFhIn0sImhsanMtbmFtZSI6e2NvbG9yOiIjNjY0NGFhIn0sImhsanMtc2VsZWN0b3ItaWQiOntjb2xvcjoiIzY2NDRhYSJ9LCJobGpzLXNlbGVjdG9yLWNsYXNzIjp7Y29sb3I6IiM2NjQ0YWEifSwiaGxqcy10aXRsZSI6e2NvbG9yOiIjYmIxMTY2In0sImhsanMtdmFyaWFibGUiOntjb2xvcjoiI2JiMTE2NiJ9LCJobGpzLWRlbGV0aW9uIjp7Y29sb3I6IiNiYjExNjYifSwiaGxqcy10ZW1wbGF0ZS10YWciOntjb2xvcjoiI2JiMTE2NiJ9LCJobGpzLWRvY3RhZyI6e2ZvbnRXZWlnaHQ6ImJvbGQifSwiaGxqcy1zdHJvbmciOntmb250V2VpZ2h0OiJib2xkIn0sImhsanMtZW1waGFzaXMiOntmb250U3R5bGU6Iml0YWxpYyJ9fSxtb25va2FpOntobGpzOntkaXNwbGF5OiJibG9jayIsb3ZlcmZsb3dYOiJhdXRvIixwYWRkaW5nOiIwLjVlbSIsYmFja2dyb3VuZDoiIzI3MjgyMiIsY29sb3I6IiNkZGQifSwiaGxqcy10YWciOntjb2xvcjoiI2Y5MjY3MiJ9LCJobGpzLWtleXdvcmQiOntjb2xvcjoiI2Y5MjY3MiIsZm9udFdlaWdodDoiYm9sZCJ9LCJobGpzLXNlbGVjdG9yLXRhZyI6e2NvbG9yOiIjZjkyNjcyIixmb250V2VpZ2h0OiJib2xkIn0sImhsanMtbGl0ZXJhbCI6e2NvbG9yOiIjZjkyNjcyIixmb250V2VpZ2h0OiJib2xkIn0sImhsanMtc3Ryb25nIjp7Y29sb3I6IiNmOTI2NzIifSwiaGxqcy1uYW1lIjp7Y29sb3I6IiNmOTI2NzIifSwiaGxqcy1jb2RlIjp7Y29sb3I6IiM2NmQ5ZWYifSwiaGxqcy1jbGFzcyAuaGxqcy10aXRsZSI6e2NvbG9yOiJ3aGl0ZSJ9LCJobGpzLWF0dHJpYnV0ZSI6e2NvbG9yOiIjYmY3OWRiIn0sImhsanMtc3ltYm9sIjp7Y29sb3I6IiNiZjc5ZGIifSwiaGxqcy1yZWdleHAiOntjb2xvcjoiI2JmNzlkYiJ9LCJobGpzLWxpbmsiOntjb2xvcjoiI2JmNzlkYiJ9LCJobGpzLXN0cmluZyI6e2NvbG9yOiIjYTZlMjJlIn0sImhsanMtYnVsbGV0Ijp7Y29sb3I6IiNhNmUyMmUifSwiaGxqcy1zdWJzdCI6e2NvbG9yOiIjYTZlMjJlIn0sImhsanMtdGl0bGUiOntjb2xvcjoiI2E2ZTIyZSIsZm9udFdlaWdodDoiYm9sZCJ9LCJobGpzLXNlY3Rpb24iOntjb2xvcjoiI2E2ZTIyZSIsZm9udFdlaWdodDoiYm9sZCJ9LCJobGpzLWVtcGhhc2lzIjp7Y29sb3I6IiNhNmUyMmUifSwiaGxqcy10eXBlIjp7Y29sb3I6IiNhNmUyMmUiLGZvbnRXZWlnaHQ6ImJvbGQifSwiaGxqcy1idWlsdF9pbiI6e2NvbG9yOiIjYTZlMjJlIn0sImhsanMtYnVpbHRpbi1uYW1lIjp7Y29sb3I6IiNhNmUyMmUifSwiaGxqcy1zZWxlY3Rvci1hdHRyIjp7Y29sb3I6IiNhNmUyMmUifSwiaGxqcy1zZWxlY3Rvci1wc2V1ZG8iOntjb2xvcjoiI2E2ZTIyZSJ9LCJobGpzLWFkZGl0aW9uIjp7Y29sb3I6IiNhNmUyMmUifSwiaGxqcy12YXJpYWJsZSI6e2NvbG9yOiIjYTZlMjJlIn0sImhsanMtdGVtcGxhdGUtdGFnIjp7Y29sb3I6IiNhNmUyMmUifSwiaGxqcy10ZW1wbGF0ZS12YXJpYWJsZSI6e2NvbG9yOiIjYTZlMjJlIn0sImhsanMtY29tbWVudCI6e2NvbG9yOiIjNzU3MTVlIn0sImhsanMtcXVvdGUiOntjb2xvcjoiIzc1NzE1ZSJ9LCJobGpzLWRlbGV0aW9uIjp7Y29sb3I6IiM3NTcxNWUifSwiaGxqcy1tZXRhIjp7Y29sb3I6IiM3NTcxNWUifSwiaGxqcy1kb2N0YWciOntmb250V2VpZ2h0OiJib2xkIn0sImhsanMtc2VsZWN0b3ItaWQiOntmb250V2VpZ2h0OiJib2xkIn19LG5vcmQ6e2hsanM6e2Rpc3BsYXk6ImJsb2NrIixvdmVyZmxvd1g6ImF1dG8iLHBhZGRpbmc6IjAuNWVtIixiYWNrZ3JvdW5kOiIjMkUzNDQwIixjb2xvcjoiI0Q4REVFOSJ9LCJobGpzLXN1YnN0Ijp7Y29sb3I6IiNEOERFRTkifSwiaGxqcy1zZWxlY3Rvci10YWciOntjb2xvcjoiIzgxQTFDMSJ9LCJobGpzLXNlbGVjdG9yLWlkIjp7Y29sb3I6IiM4RkJDQkIiLGZvbnRXZWlnaHQ6ImJvbGQifSwiaGxqcy1zZWxlY3Rvci1jbGFzcyI6e2NvbG9yOiIjOEZCQ0JCIn0sImhsanMtc2VsZWN0b3ItYXR0ciI6e2NvbG9yOiIjOEZCQ0JCIn0sImhsanMtc2VsZWN0b3ItcHNldWRvIjp7Y29sb3I6IiM4OEMwRDAifSwiaGxqcy1hZGRpdGlvbiI6e2JhY2tncm91bmRDb2xvcjoicmdiYSgxNjMsIDE5MCwgMTQwLCAwLjUpIn0sImhsanMtZGVsZXRpb24iOntiYWNrZ3JvdW5kQ29sb3I6InJnYmEoMTkxLCA5NywgMTA2LCAwLjUpIn0sImhsanMtYnVpbHRfaW4iOntjb2xvcjoiIzhGQkNCQiJ9LCJobGpzLXR5cGUiOntjb2xvcjoiIzhGQkNCQiJ9LCJobGpzLWNsYXNzIjp7Y29sb3I6IiM4RkJDQkIifSwiaGxqcy1mdW5jdGlvbiI6e2NvbG9yOiIjODhDMEQwIn0sImhsanMtZnVuY3Rpb24gPiAuaGxqcy10aXRsZSI6e2NvbG9yOiIjODhDMEQwIn0sImhsanMta2V5d29yZCI6e2NvbG9yOiIjODFBMUMxIn0sImhsanMtbGl0ZXJhbCI6e2NvbG9yOiIjODFBMUMxIn0sImhsanMtc3ltYm9sIjp7Y29sb3I6IiM4MUExQzEifSwiaGxqcy1udW1iZXIiOntjb2xvcjoiI0I0OEVBRCJ9LCJobGpzLXJlZ2V4cCI6e2NvbG9yOiIjRUJDQjhCIn0sImhsanMtc3RyaW5nIjp7Y29sb3I6IiNBM0JFOEMifSwiaGxqcy10aXRsZSI6e2NvbG9yOiIjOEZCQ0JCIn0sImhsanMtcGFyYW1zIjp7Y29sb3I6IiNEOERFRTkifSwiaGxqcy1idWxsZXQiOntjb2xvcjoiIzgxQTFDMSJ9LCJobGpzLWNvZGUiOntjb2xvcjoiIzhGQkNCQiJ9LCJobGpzLWVtcGhhc2lzIjp7Zm9udFN0eWxlOiJpdGFsaWMifSwiaGxqcy1mb3JtdWxhIjp7Y29sb3I6IiM4RkJDQkIifSwiaGxqcy1zdHJvbmciOntmb250V2VpZ2h0OiJib2xkIn0sImhsanMtbGluazpob3ZlciI6e3RleHREZWNvcmF0aW9uOiJ1bmRlcmxpbmUifSwiaGxqcy1xdW90ZSI6e2NvbG9yOiIjNEM1NjZBIn0sImhsanMtY29tbWVudCI6e2NvbG9yOiIjNEM1NjZBIn0sImhsanMtZG9jdGFnIjp7Y29sb3I6IiM4RkJDQkIifSwiaGxqcy1tZXRhIjp7Y29sb3I6IiM1RTgxQUMifSwiaGxqcy1tZXRhLWtleXdvcmQiOntjb2xvcjoiIzVFODFBQyJ9LCJobGpzLW1ldGEtc3RyaW5nIjp7Y29sb3I6IiNBM0JFOEMifSwiaGxqcy1hdHRyIjp7Y29sb3I6IiM4RkJDQkIifSwiaGxqcy1hdHRyaWJ1dGUiOntjb2xvcjoiI0Q4REVFOSJ9LCJobGpzLWJ1aWx0aW4tbmFtZSI6e2NvbG9yOiIjODFBMUMxIn0sImhsanMtbmFtZSI6e2NvbG9yOiIjODFBMUMxIn0sImhsanMtc2VjdGlvbiI6e2NvbG9yOiIjODhDMEQwIn0sImhsanMtdGFnIjp7Y29sb3I6IiM4MUExQzEifSwiaGxqcy12YXJpYWJsZSI6e2NvbG9yOiIjRDhERUU5In0sImhsanMtdGVtcGxhdGUtdmFyaWFibGUiOntjb2xvcjoiI0Q4REVFOSJ9LCJobGpzLXRlbXBsYXRlLXRhZyI6e2NvbG9yOiIjNUU4MUFDIn0sImFibmYgLmhsanMtYXR0cmlidXRlIjp7Y29sb3I6IiM4OEMwRDAifSwiYWJuZiAuaGxqcy1zeW1ib2wiOntjb2xvcjoiI0VCQ0I4QiJ9LCJhcGFjaGUgLmhsanMtYXR0cmlidXRlIjp7Y29sb3I6IiM4OEMwRDAifSwiYXBhY2hlIC5obGpzLXNlY3Rpb24iOntjb2xvcjoiIzgxQTFDMSJ9LCJhcmR1aW5vIC5obGpzLWJ1aWx0X2luIjp7Y29sb3I6IiM4OEMwRDAifSwiYXNwZWN0aiAuaGxqcy1tZXRhIjp7Y29sb3I6IiNEMDg3NzAifSwiYXNwZWN0aiA+IC5obGpzLXRpdGxlIjp7Y29sb3I6IiM4OEMwRDAifSwiYm5mIC5obGpzLWF0dHJpYnV0ZSI6e2NvbG9yOiIjOEZCQ0JCIn0sImNsb2p1cmUgLmhsanMtbmFtZSI6e2NvbG9yOiIjODhDMEQwIn0sImNsb2p1cmUgLmhsanMtc3ltYm9sIjp7Y29sb3I6IiNFQkNCOEIifSwiY29xIC5obGpzLWJ1aWx0X2luIjp7Y29sb3I6IiM4OEMwRDAifSwiY3BwIC5obGpzLW1ldGEtc3RyaW5nIjp7Y29sb3I6IiM4RkJDQkIifSwiY3NzIC5obGpzLWJ1aWx0X2luIjp7Y29sb3I6IiM4OEMwRDAifSwiY3NzIC5obGpzLWtleXdvcmQiOntjb2xvcjoiI0QwODc3MCJ9LCJkaWZmIC5obGpzLW1ldGEiOntjb2xvcjoiIzhGQkNCQiJ9LCJlYm5mIC5obGpzLWF0dHJpYnV0ZSI6e2NvbG9yOiIjOEZCQ0JCIn0sImdsc2wgLmhsanMtYnVpbHRfaW4iOntjb2xvcjoiIzg4QzBEMCJ9LCJncm9vdnkgLmhsanMtbWV0YTpub3QoOmZpcnN0LWNoaWxkKSI6e2NvbG9yOiIjRDA4NzcwIn0sImhheGUgLmhsanMtbWV0YSI6e2NvbG9yOiIjRDA4NzcwIn0sImphdmEgLmhsanMtbWV0YSI6e2NvbG9yOiIjRDA4NzcwIn0sImxkaWYgLmhsanMtYXR0cmlidXRlIjp7Y29sb3I6IiM4RkJDQkIifSwibGlzcCAuaGxqcy1uYW1lIjp7Y29sb3I6IiM4OEMwRDAifSwibHVhIC5obGpzLWJ1aWx0X2luIjp7Y29sb3I6IiM4OEMwRDAifSwibW9vbnNjcmlwdCAuaGxqcy1idWlsdF9pbiI6e2NvbG9yOiIjODhDMEQwIn0sIm5naW54IC5obGpzLWF0dHJpYnV0ZSI6e2NvbG9yOiIjODhDMEQwIn0sIm5naW54IC5obGpzLXNlY3Rpb24iOntjb2xvcjoiIzVFODFBQyJ9LCJwZiAuaGxqcy1idWlsdF9pbiI6e2NvbG9yOiIjODhDMEQwIn0sInByb2Nlc3NpbmcgLmhsanMtYnVpbHRfaW4iOntjb2xvcjoiIzg4QzBEMCJ9LCJzY3NzIC5obGpzLWtleXdvcmQiOntjb2xvcjoiIzgxQTFDMSJ9LCJzdHlsdXMgLmhsanMta2V5d29yZCI6e2NvbG9yOiIjODFBMUMxIn0sInN3aWZ0IC5obGpzLW1ldGEiOntjb2xvcjoiI0QwODc3MCJ9LCJ2aW0gLmhsanMtYnVpbHRfaW4iOntjb2xvcjoiIzg4QzBEMCIsZm9udFN0eWxlOiJpdGFsaWMifSwieWFtbCAuaGxqcy1tZXRhIjp7Y29sb3I6IiNEMDg3NzAifX0sb2JzaWRpYW46e2hsanM6e2Rpc3BsYXk6ImJsb2NrIixvdmVyZmxvd1g6ImF1dG8iLHBhZGRpbmc6IjAuNWVtIixiYWNrZ3JvdW5kOiIjMjgyYjJlIixjb2xvcjoiI2UwZTJlNCJ9LCJobGpzLWtleXdvcmQiOntjb2xvcjoiIzkzYzc2MyIsZm9udFdlaWdodDoiYm9sZCJ9LCJobGpzLXNlbGVjdG9yLXRhZyI6e2NvbG9yOiIjOTNjNzYzIixmb250V2VpZ2h0OiJib2xkIn0sImhsanMtbGl0ZXJhbCI6e2NvbG9yOiIjOTNjNzYzIixmb250V2VpZ2h0OiJib2xkIn0sImhsanMtc2VsZWN0b3ItaWQiOntjb2xvcjoiIzkzYzc2MyJ9LCJobGpzLW51bWJlciI6e2NvbG9yOiIjZmZjZDIyIn0sImhsanMtYXR0cmlidXRlIjp7Y29sb3I6IiM2NjhiYjAifSwiaGxqcy1jb2RlIjp7Y29sb3I6IndoaXRlIn0sImhsanMtY2xhc3MgLmhsanMtdGl0bGUiOntjb2xvcjoid2hpdGUifSwiaGxqcy1zZWN0aW9uIjp7Y29sb3I6IndoaXRlIixmb250V2VpZ2h0OiJib2xkIn0sImhsanMtcmVnZXhwIjp7Y29sb3I6IiNkMzk3NDUifSwiaGxqcy1saW5rIjp7Y29sb3I6IiNkMzk3NDUifSwiaGxqcy1tZXRhIjp7Y29sb3I6IiM1NTcxODIifSwiaGxqcy10YWciOntjb2xvcjoiIzhjYmJhZCJ9LCJobGpzLW5hbWUiOntjb2xvcjoiIzhjYmJhZCIsZm9udFdlaWdodDoiYm9sZCJ9LCJobGpzLWJ1bGxldCI6e2NvbG9yOiIjOGNiYmFkIn0sImhsanMtc3Vic3QiOntjb2xvcjoiIzhjYmJhZCJ9LCJobGpzLWVtcGhhc2lzIjp7Y29sb3I6IiM4Y2JiYWQifSwiaGxqcy10eXBlIjp7Y29sb3I6IiM4Y2JiYWQiLGZvbnRXZWlnaHQ6ImJvbGQifSwiaGxqcy1idWlsdF9pbiI6e2NvbG9yOiIjOGNiYmFkIn0sImhsanMtc2VsZWN0b3ItYXR0ciI6e2NvbG9yOiIjOGNiYmFkIn0sImhsanMtc2VsZWN0b3ItcHNldWRvIjp7Y29sb3I6IiM4Y2JiYWQifSwiaGxqcy1hZGRpdGlvbiI6e2NvbG9yOiIjOGNiYmFkIn0sImhsanMtdmFyaWFibGUiOntjb2xvcjoiIzhjYmJhZCJ9LCJobGpzLXRlbXBsYXRlLXRhZyI6e2NvbG9yOiIjOGNiYmFkIn0sImhsanMtdGVtcGxhdGUtdmFyaWFibGUiOntjb2xvcjoiIzhjYmJhZCJ9LCJobGpzLXN0cmluZyI6e2NvbG9yOiIjZWM3NjAwIn0sImhsanMtc3ltYm9sIjp7Y29sb3I6IiNlYzc2MDAifSwiaGxqcy1jb21tZW50Ijp7Y29sb3I6IiM4MThlOTYifSwiaGxqcy1xdW90ZSI6e2NvbG9yOiIjODE4ZTk2In0sImhsanMtZGVsZXRpb24iOntjb2xvcjoiIzgxOGU5NiJ9LCJobGpzLXNlbGVjdG9yLWNsYXNzIjp7Y29sb3I6IiNBMDgyQkQifSwiaGxqcy1kb2N0YWciOntmb250V2VpZ2h0OiJib2xkIn0sImhsanMtdGl0bGUiOntmb250V2VpZ2h0OiJib2xkIn0sImhsanMtc3Ryb25nIjp7Zm9udFdlaWdodDoiYm9sZCJ9fSwidG9tb3Jyb3ctbmlnaHQiOnsiaGxqcy1jb21tZW50Ijp7Y29sb3I6IiM5Njk4OTYifSwiaGxqcy1xdW90ZSI6e2NvbG9yOiIjOTY5ODk2In0sImhsanMtdmFyaWFibGUiOntjb2xvcjoiI2NjNjY2NiJ9LCJobGpzLXRlbXBsYXRlLXZhcmlhYmxlIjp7Y29sb3I6IiNjYzY2NjYifSwiaGxqcy10YWciOntjb2xvcjoiI2NjNjY2NiJ9LCJobGpzLW5hbWUiOntjb2xvcjoiI2NjNjY2NiJ9LCJobGpzLXNlbGVjdG9yLWlkIjp7Y29sb3I6IiNjYzY2NjYifSwiaGxqcy1zZWxlY3Rvci1jbGFzcyI6e2NvbG9yOiIjY2M2NjY2In0sImhsanMtcmVnZXhwIjp7Y29sb3I6IiNjYzY2NjYifSwiaGxqcy1kZWxldGlvbiI6e2NvbG9yOiIjY2M2NjY2In0sImhsanMtbnVtYmVyIjp7Y29sb3I6IiNkZTkzNWYifSwiaGxqcy1idWlsdF9pbiI6e2NvbG9yOiIjZGU5MzVmIn0sImhsanMtYnVpbHRpbi1uYW1lIjp7Y29sb3I6IiNkZTkzNWYifSwiaGxqcy1saXRlcmFsIjp7Y29sb3I6IiNkZTkzNWYifSwiaGxqcy10eXBlIjp7Y29sb3I6IiNkZTkzNWYifSwiaGxqcy1wYXJhbXMiOntjb2xvcjoiI2RlOTM1ZiJ9LCJobGpzLW1ldGEiOntjb2xvcjoiI2RlOTM1ZiJ9LCJobGpzLWxpbmsiOntjb2xvcjoiI2RlOTM1ZiJ9LCJobGpzLWF0dHJpYnV0ZSI6e2NvbG9yOiIjZjBjNjc0In0sImhsanMtc3RyaW5nIjp7Y29sb3I6IiNiNWJkNjgifSwiaGxqcy1zeW1ib2wiOntjb2xvcjoiI2I1YmQ2OCJ9LCJobGpzLWJ1bGxldCI6e2NvbG9yOiIjYjViZDY4In0sImhsanMtYWRkaXRpb24iOntjb2xvcjoiI2I1YmQ2OCJ9LCJobGpzLXRpdGxlIjp7Y29sb3I6IiM4MWEyYmUifSwiaGxqcy1zZWN0aW9uIjp7Y29sb3I6IiM4MWEyYmUifSwiaGxqcy1rZXl3b3JkIjp7Y29sb3I6IiNiMjk0YmIifSwiaGxqcy1zZWxlY3Rvci10YWciOntjb2xvcjoiI2IyOTRiYiJ9LGhsanM6e2Rpc3BsYXk6ImJsb2NrIixvdmVyZmxvd1g6ImF1dG8iLGJhY2tncm91bmQ6IiMxZDFmMjEiLGNvbG9yOiIjYzVjOGM2IixwYWRkaW5nOiIwLjVlbSJ9LCJobGpzLWVtcGhhc2lzIjp7Zm9udFN0eWxlOiJpdGFsaWMifSwiaGxqcy1zdHJvbmciOntmb250V2VpZ2h0OiJib2xkIn19LGlkZWE6e2hsanM6e2Rpc3BsYXk6ImJsb2NrIixvdmVyZmxvd1g6ImF1dG8iLHBhZGRpbmc6IjAuNWVtIixjb2xvcjoiIzAwMCIsYmFja2dyb3VuZDoiI2ZmZiJ9LCJobGpzLXN1YnN0Ijp7Zm9udFdlaWdodDoibm9ybWFsIixjb2xvcjoiIzAwMCJ9LCJobGpzLXRpdGxlIjp7Zm9udFdlaWdodDoibm9ybWFsIixjb2xvcjoiIzAwMCJ9LCJobGpzLWNvbW1lbnQiOntjb2xvcjoiIzgwODA4MCIsZm9udFN0eWxlOiJpdGFsaWMifSwiaGxqcy1xdW90ZSI6e2NvbG9yOiIjODA4MDgwIixmb250U3R5bGU6Iml0YWxpYyJ9LCJobGpzLW1ldGEiOntjb2xvcjoiIzgwODAwMCJ9LCJobGpzLXRhZyI6e2JhY2tncm91bmQ6IiNlZmVmZWYifSwiaGxqcy1zZWN0aW9uIjp7Zm9udFdlaWdodDoiYm9sZCIsY29sb3I6IiMwMDAwODAifSwiaGxqcy1uYW1lIjp7Zm9udFdlaWdodDoiYm9sZCIsY29sb3I6IiMwMDAwODAifSwiaGxqcy1saXRlcmFsIjp7Zm9udFdlaWdodDoiYm9sZCIsY29sb3I6IiMwMDAwODAifSwiaGxqcy1rZXl3b3JkIjp7Zm9udFdlaWdodDoiYm9sZCIsY29sb3I6IiMwMDAwODAifSwiaGxqcy1zZWxlY3Rvci10YWciOntmb250V2VpZ2h0OiJib2xkIixjb2xvcjoiIzAwMDA4MCJ9LCJobGpzLXR5cGUiOntmb250V2VpZ2h0OiJib2xkIixjb2xvcjoiIzAwMDA4MCJ9LCJobGpzLXNlbGVjdG9yLWlkIjp7Zm9udFdlaWdodDoiYm9sZCIsY29sb3I6IiMwMDAwODAifSwiaGxqcy1zZWxlY3Rvci1jbGFzcyI6e2ZvbnRXZWlnaHQ6ImJvbGQiLGNvbG9yOiIjMDAwMDgwIn0sImhsanMtYXR0cmlidXRlIjp7Zm9udFdlaWdodDoiYm9sZCIsY29sb3I6IiMwMDAwZmYifSwiaGxqcy1udW1iZXIiOntmb250V2VpZ2h0OiJub3JtYWwiLGNvbG9yOiIjMDAwMGZmIn0sImhsanMtcmVnZXhwIjp7Zm9udFdlaWdodDoibm9ybWFsIixjb2xvcjoiIzAwMDBmZiJ9LCJobGpzLWxpbmsiOntmb250V2VpZ2h0OiJub3JtYWwiLGNvbG9yOiIjMDAwMGZmIn0sImhsanMtc3RyaW5nIjp7Y29sb3I6IiMwMDgwMDAiLGZvbnRXZWlnaHQ6ImJvbGQifSwiaGxqcy1zeW1ib2wiOntjb2xvcjoiIzAwMCIsYmFja2dyb3VuZDoiI2QwZWRlZCIsZm9udFN0eWxlOiJpdGFsaWMifSwiaGxqcy1idWxsZXQiOntjb2xvcjoiIzAwMCIsYmFja2dyb3VuZDoiI2QwZWRlZCIsZm9udFN0eWxlOiJpdGFsaWMifSwiaGxqcy1mb3JtdWxhIjp7Y29sb3I6IiMwMDAiLGJhY2tncm91bmQ6IiNkMGVkZWQiLGZvbnRTdHlsZToiaXRhbGljIn0sImhsanMtZG9jdGFnIjp7dGV4dERlY29yYXRpb246InVuZGVybGluZSJ9LCJobGpzLXZhcmlhYmxlIjp7Y29sb3I6IiM2NjBlN2EifSwiaGxqcy10ZW1wbGF0ZS12YXJpYWJsZSI6e2NvbG9yOiIjNjYwZTdhIn0sImhsanMtYWRkaXRpb24iOntiYWNrZ3JvdW5kOiIjYmFlZWJhIn0sImhsanMtZGVsZXRpb24iOntiYWNrZ3JvdW5kOiIjZmZjOGJkIn0sImhsanMtZW1waGFzaXMiOntmb250U3R5bGU6Iml0YWxpYyJ9LCJobGpzLXN0cm9uZyI6e2ZvbnRXZWlnaHQ6ImJvbGQifX19LCRPPUZPLGNvbXBvbmVudHNfU3ludGF4SGlnaGxpZ2h0ZXI9KHtsYW5ndWFnZTpzLGNsYXNzTmFtZTpvPSIiLGdldENvbmZpZ3M6aSxzeW50YXhIaWdobGlnaHRpbmc6YT17fSxjaGlsZHJlbjp1PSIifSk9Pntjb25zdCBfPWkoKS5zeW50YXhIaWdobGlnaHQudGhlbWUse3N0eWxlczp3LGRlZmF1bHRTdHlsZTp4fT1hLEM9dz8uW19dPz94O3JldHVybiBSZS5jcmVhdGVFbGVtZW50KHdPLHtsYW5ndWFnZTpzLGNsYXNzTmFtZTpvLHN0eWxlOkN9LHUpfTt2YXIgcU89X193ZWJwYWNrX3JlcXVpcmVfXyg1NDE5KSxWTz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocU8pO2NvbnN0IGNvbXBvbmVudHNfSGlnaGxpZ2h0Q29kZT0oe2ZpbGVOYW1lOnM9InJlc3BvbnNlLnR4dCIsY2xhc3NOYW1lOm8sZG93bmxvYWRhYmxlOmksZ2V0Q29tcG9uZW50OmEsY2FuQ29weTp1LGxhbmd1YWdlOl8sY2hpbGRyZW46d30pPT57Y29uc3QgeD0oMCxSZS51c2VSZWYpKG51bGwpLEM9YSgiU3ludGF4SGlnaGxpZ2h0ZXIiLCEwKSxoYW5kbGVQcmV2ZW50WVNjcm9sbGluZ0JleW9uZEVsZW1lbnQ9cz0+e2NvbnN0e3RhcmdldDpvLGRlbHRhWTppfT1zLHtzY3JvbGxIZWlnaHQ6YSxvZmZzZXRIZWlnaHQ6dSxzY3JvbGxUb3A6X309bzthPnUmJigwPT09XyYmaTwwfHx1K18+PWEmJmk+MCkmJnMucHJldmVudERlZmF1bHQoKX07cmV0dXJuKDAsUmUudXNlRWZmZWN0KSgoKCk9Pntjb25zdCBzPUFycmF5LmZyb20oeC5jdXJyZW50LmNoaWxkTm9kZXMpLmZpbHRlcigocz0+ISFzLm5vZGVUeXBlJiZzLmNsYXNzTGlzdC5jb250YWlucygibWljcm9saWdodCIpKSk7cmV0dXJuIHMuZm9yRWFjaCgocz0+cy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXdoZWVsIixoYW5kbGVQcmV2ZW50WVNjcm9sbGluZ0JleW9uZEVsZW1lbnQse3Bhc3NpdmU6ITF9KSkpLCgpPT57cy5mb3JFYWNoKChzPT5zLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNld2hlZWwiLGhhbmRsZVByZXZlbnRZU2Nyb2xsaW5nQmV5b25kRWxlbWVudCkpKX19KSxbdyxvLF9dKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImhpZ2hsaWdodC1jb2RlIixyZWY6eH0sdSYmUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJjb3B5LXRvLWNsaXBib2FyZCJ9LFJlLmNyZWF0ZUVsZW1lbnQoSG4uQ29weVRvQ2xpcGJvYXJkLHt0ZXh0Ond9LFJlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIsbnVsbCkpKSxpP1JlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse2NsYXNzTmFtZToiZG93bmxvYWQtY29udGVudHMiLG9uQ2xpY2s6KCk9PntWTygpKHcscyl9fSwiRG93bmxvYWQiKTpudWxsLFJlLmNyZWF0ZUVsZW1lbnQoQyx7bGFuZ3VhZ2U6XyxjbGFzc05hbWU6Sm4oKShvLCJtaWNyb2xpZ2h0IikscmVuZGVyUGxhaW5UZXh0Oih7Y2hpbGRyZW46cyxQbGFpblRleHRWaWV3ZXI6aX0pPT5SZS5jcmVhdGVFbGVtZW50KGkse2NsYXNzTmFtZTpvfSxzKX0sdykpfSxjb21wb25lbnRzX1BsYWluVGV4dFZpZXdlcj0oe2NsYXNzTmFtZTpzPSIiLGNoaWxkcmVuOm99KT0+UmUuY3JlYXRlRWxlbWVudCgicHJlIix7Y2xhc3NOYW1lOkpuKCkoIm1pY3JvbGlnaHQiLHMpfSxvKSx3cmFwX2NvbXBvbmVudHNfU3ludGF4SGlnaGxpZ2h0ZXI9KHMsbyk9Pih7cmVuZGVyUGxhaW5UZXh0OmksY2hpbGRyZW46YSwuLi51fSk9Pntjb25zdCBfPW8uZ2V0Q29uZmlncygpLnN5bnRheEhpZ2hsaWdodC5hY3RpdmF0ZWQsdz1vLmdldENvbXBvbmVudCgiUGxhaW5UZXh0Vmlld2VyIik7cmV0dXJuIF98fCJmdW5jdGlvbiIhPXR5cGVvZiBpP18/UmUuY3JlYXRlRWxlbWVudChzLHUsYSk6UmUuY3JlYXRlRWxlbWVudCh3LG51bGwsYSk6aSh7Y2hpbGRyZW46YSxQbGFpblRleHRWaWV3ZXI6d30pfSxTeW50YXhIaWdobGlnaHRpbmdQbHVnaW4xPSgpPT4oe2FmdGVyTG9hZDphZnRlcl9sb2FkLHJvb3RJbmplY3RzOntzeW50YXhIaWdobGlnaHRpbmc6e3N0eWxlczpCTyxkZWZhdWx0U3R5bGU6JE99fSxjb21wb25lbnRzOntTeW50YXhIaWdobGlnaHRlcjpjb21wb25lbnRzX1N5bnRheEhpZ2hsaWdodGVyLEhpZ2hsaWdodENvZGU6Y29tcG9uZW50c19IaWdobGlnaHRDb2RlLFBsYWluVGV4dFZpZXdlcjpjb21wb25lbnRzX1BsYWluVGV4dFZpZXdlcn19KSxTeW50YXhIaWdobGlnaHRpbmdQbHVnaW4yPSgpPT4oe3dyYXBDb21wb25lbnRzOntTeW50YXhIaWdobGlnaHRlcjp3cmFwX2NvbXBvbmVudHNfU3ludGF4SGlnaGxpZ2h0ZXJ9fSksc3ludGF4X2hpZ2hsaWdodGluZz0oKT0+W1N5bnRheEhpZ2hsaWdodGluZ1BsdWdpbjEsU3ludGF4SGlnaGxpZ2h0aW5nUGx1Z2luMl0sdmVyc2lvbnNfYWZ0ZXJfbG9hZD0oKT0+e2NvbnN0e0dJVF9ESVJUWTpzLEdJVF9DT01NSVQ6byxQQUNLQUdFX1ZFUlNJT046aSxCVUlMRF9USU1FOmF9PXtQQUNLQUdFX1ZFUlNJT046IjUuMjQuMiIsR0lUX0NPTU1JVDoiZ2Y3MTRhZmYxIixHSVRfRElSVFk6ITAsQlVJTERfVElNRToiTW9uLCAxNiBKdW4gMjAyNSAxMjo0OTowOCBHTVQifTtsdC52ZXJzaW9ucz1sdC52ZXJzaW9uc3x8e30sbHQudmVyc2lvbnMuc3dhZ2dlclVJPXt2ZXJzaW9uOmksZ2l0UmV2aXNpb246byxnaXREaXJ0eTpzLGJ1aWxkVGltZXN0YW1wOmF9fSx2ZXJzaW9ucz0oKT0+KHthZnRlckxvYWQ6dmVyc2lvbnNfYWZ0ZXJfbG9hZH0pO3ZhciBVTz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ3MjQ4KSx6Tz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oVU8pO2NvbnN0IFdPPWNvbnNvbGUuZXJyb3Isd2l0aEVycm9yQm91bmRhcnk9cz0+bz0+e2NvbnN0e2dldENvbXBvbmVudDppLGZuOmF9PXMoKSx1PWkoIkVycm9yQm91bmRhcnkiKSxfPWEuZ2V0RGlzcGxheU5hbWUobyk7Y2xhc3MgV2l0aEVycm9yQm91bmRhcnkgZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQodSx7dGFyZ2V0TmFtZTpfLGdldENvbXBvbmVudDppLGZuOmF9LFJlLmNyZWF0ZUVsZW1lbnQobyxNbigpKHt9LHRoaXMucHJvcHMsdGhpcy5jb250ZXh0KSkpfX12YXIgdztyZXR1cm4gV2l0aEVycm9yQm91bmRhcnkuZGlzcGxheU5hbWU9YFdpdGhFcnJvckJvdW5kYXJ5KCR7X30pYCwodz1vKS5wcm90b3R5cGUmJncucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQmJihXaXRoRXJyb3JCb3VuZGFyeS5wcm90b3R5cGUubWFwU3RhdGVUb1Byb3BzPW8ucHJvdG90eXBlLm1hcFN0YXRlVG9Qcm9wcyksV2l0aEVycm9yQm91bmRhcnl9LGZhbGxiYWNrPSh7bmFtZTpzfSk9PlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZmFsbGJhY2sifSwi8J+YsSAiLFJlLmNyZWF0ZUVsZW1lbnQoImkiLG51bGwsIkNvdWxkIG5vdCByZW5kZXIgIiwidCI9PT1zPyJ0aGlzIGNvbXBvbmVudCI6cywiLCBzZWUgdGhlIGNvbnNvbGUuIikpO2NsYXNzIEVycm9yQm91bmRhcnkgZXh0ZW5kcyBSZS5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17dGFyZ2V0TmFtZToidGhpcyBjb21wb25lbnQiLGdldENvbXBvbmVudDooKT0+ZmFsbGJhY2ssZm46e2NvbXBvbmVudERpZENhdGNoOldPfSxjaGlsZHJlbjpudWxsfTtzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKHMpe3JldHVybntoYXNFcnJvcjohMCxlcnJvcjpzfX1jb25zdHJ1Y3RvciguLi5zKXtzdXBlciguLi5zKSx0aGlzLnN0YXRlPXtoYXNFcnJvcjohMSxlcnJvcjpudWxsfX1jb21wb25lbnREaWRDYXRjaChzLG8pe3RoaXMucHJvcHMuZm4uY29tcG9uZW50RGlkQ2F0Y2gocyxvKX1yZW5kZXIoKXtjb25zdHtnZXRDb21wb25lbnQ6cyx0YXJnZXROYW1lOm8sY2hpbGRyZW46aX09dGhpcy5wcm9wcztpZih0aGlzLnN0YXRlLmhhc0Vycm9yKXtjb25zdCBpPXMoIkZhbGxiYWNrIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoaSx7bmFtZTpvfSl9cmV0dXJuIGl9fWNvbnN0IEpPPUVycm9yQm91bmRhcnksc2FmZV9yZW5kZXI9KHtjb21wb25lbnRMaXN0OnM9W10sZnVsbE92ZXJyaWRlOm89ITF9PXt9KT0+KHtnZXRTeXN0ZW06aX0pPT57Y29uc3QgYT1vP3M6WyJBcHAiLCJCYXNlTGF5b3V0IiwiVmVyc2lvblByYWdtYUZpbHRlciIsIkluZm9Db250YWluZXIiLCJTZXJ2ZXJzQ29udGFpbmVyIiwiU2NoZW1lc0NvbnRhaW5lciIsIkF1dGhvcml6ZUJ0bkNvbnRhaW5lciIsIkZpbHRlckNvbnRhaW5lciIsIk9wZXJhdGlvbnMiLCJPcGVyYXRpb25Db250YWluZXIiLCJwYXJhbWV0ZXJzIiwicmVzcG9uc2VzIiwiT3BlcmF0aW9uU2VydmVycyIsIk1vZGVscyIsIk1vZGVsV3JhcHBlciIsLi4uc10sdT16TygpKGEsQXJyYXkoYS5sZW5ndGgpLmZpbGwoKChzLHtmbjpvfSk9Pm8ud2l0aEVycm9yQm91bmRhcnkocykpKSk7cmV0dXJue2ZuOntjb21wb25lbnREaWRDYXRjaDpXTyx3aXRoRXJyb3JCb3VuZGFyeTp3aXRoRXJyb3JCb3VuZGFyeShpKX0sY29tcG9uZW50czp7RXJyb3JCb3VuZGFyeTpKTyxGYWxsYmFjazpmYWxsYmFja30sd3JhcENvbXBvbmVudHM6dX19O2NsYXNzIEFwcCBleHRlbmRzIFJlLkNvbXBvbmVudHtnZXRMYXlvdXQoKXtjb25zdHtnZXRDb21wb25lbnQ6cyxsYXlvdXRTZWxlY3RvcnM6b309dGhpcy5wcm9wcyxpPW8uY3VycmVudCgpLGE9cyhpLCEwKTtyZXR1cm4gYXx8KCgpPT5SZS5jcmVhdGVFbGVtZW50KCJoMSIsbnVsbCwnIE5vIGxheW91dCBkZWZpbmVkIGZvciAiJyxpLCciICcpKX1yZW5kZXIoKXtjb25zdCBzPXRoaXMuZ2V0TGF5b3V0KCk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQocyxudWxsKX19Y29uc3QgSE89QXBwO2NsYXNzIEF1dGhvcml6YXRpb25Qb3B1cCBleHRlbmRzIFJlLkNvbXBvbmVudHtjbG9zZT0oKT0+e2xldHthdXRoQWN0aW9uczpzfT10aGlzLnByb3BzO3Muc2hvd0RlZmluaXRpb25zKCExKX07cmVuZGVyKCl7bGV0e2F1dGhTZWxlY3RvcnM6cyxhdXRoQWN0aW9uczpvLGdldENvbXBvbmVudDppLGVyclNlbGVjdG9yczphLHNwZWNTZWxlY3RvcnM6dSxmbjp7QVNUOl89e319fT10aGlzLnByb3BzLHc9cy5zaG93bkRlZmluaXRpb25zKCk7Y29uc3QgeD1pKCJhdXRocyIpLEM9aSgiQ2xvc2VJY29uIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZGlhbG9nLXV4In0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJiYWNrZHJvcC11eCJ9KSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im1vZGFsLXV4In0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJtb2RhbC1kaWFsb2ctdXgifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im1vZGFsLXV4LWlubmVyIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJtb2RhbC11eC1oZWFkZXIifSxSZS5jcmVhdGVFbGVtZW50KCJoMyIsbnVsbCwiQXZhaWxhYmxlIGF1dGhvcml6YXRpb25zIiksUmUuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImNsb3NlLW1vZGFsIixvbkNsaWNrOnRoaXMuY2xvc2V9LFJlLmNyZWF0ZUVsZW1lbnQoQyxudWxsKSkpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibW9kYWwtdXgtY29udGVudCJ9LHcudmFsdWVTZXEoKS5tYXAoKCh3LEMpPT5SZS5jcmVhdGVFbGVtZW50KHgse2tleTpDLEFTVDpfLGRlZmluaXRpb25zOncsZ2V0Q29tcG9uZW50OmksZXJyU2VsZWN0b3JzOmEsYXV0aFNlbGVjdG9yczpzLGF1dGhBY3Rpb25zOm8sc3BlY1NlbGVjdG9yczp1fSkpKSkpKSkpfX1jbGFzcyBBdXRob3JpemVCdG4gZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7bGV0e2lzQXV0aG9yaXplZDpzLHNob3dQb3B1cDpvLG9uQ2xpY2s6aSxnZXRDb21wb25lbnQ6YX09dGhpcy5wcm9wcztjb25zdCB1PWEoImF1dGhvcml6YXRpb25Qb3B1cCIsITApLF89YSgiTG9ja0F1dGhJY29uIiwhMCksdz1hKCJVbmxvY2tBdXRoSWNvbiIsITApO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImF1dGgtd3JhcHBlciJ9LFJlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse2NsYXNzTmFtZTpzPyJidG4gYXV0aG9yaXplIGxvY2tlZCI6ImJ0biBhdXRob3JpemUgdW5sb2NrZWQiLG9uQ2xpY2s6aX0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCwiQXV0aG9yaXplIikscz9SZS5jcmVhdGVFbGVtZW50KF8sbnVsbCk6UmUuY3JlYXRlRWxlbWVudCh3LG51bGwpKSxvJiZSZS5jcmVhdGVFbGVtZW50KHUsbnVsbCkpfX1jbGFzcyBBdXRob3JpemVCdG5Db250YWluZXIgZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7YXV0aEFjdGlvbnM6cyxhdXRoU2VsZWN0b3JzOm8sc3BlY1NlbGVjdG9yczppLGdldENvbXBvbmVudDphfT10aGlzLnByb3BzLHU9aS5zZWN1cml0eURlZmluaXRpb25zKCksXz1vLmRlZmluaXRpb25zVG9BdXRob3JpemUoKSx3PWEoImF1dGhvcml6ZUJ0biIpO3JldHVybiB1P1JlLmNyZWF0ZUVsZW1lbnQodyx7b25DbGljazooKT0+cy5zaG93RGVmaW5pdGlvbnMoXyksaXNBdXRob3JpemVkOiEhby5hdXRob3JpemVkKCkuc2l6ZSxzaG93UG9wdXA6ISFvLnNob3duRGVmaW5pdGlvbnMoKSxnZXRDb21wb25lbnQ6YX0pOm51bGx9fWNsYXNzIEF1dGhvcml6ZU9wZXJhdGlvbkJ0biBleHRlbmRzIFJlLkNvbXBvbmVudHtvbkNsaWNrPXM9PntzLnN0b3BQcm9wYWdhdGlvbigpO2xldHtvbkNsaWNrOm99PXRoaXMucHJvcHM7byYmbygpfTtyZW5kZXIoKXtsZXR7aXNBdXRob3JpemVkOnMsZ2V0Q29tcG9uZW50Om99PXRoaXMucHJvcHM7Y29uc3QgaT1vKCJMb2NrQXV0aE9wZXJhdGlvbkljb24iLCEwKSxhPW8oIlVubG9ja0F1dGhPcGVyYXRpb25JY29uIiwhMCk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse2NsYXNzTmFtZToiYXV0aG9yaXphdGlvbl9fYnRuIiwiYXJpYS1sYWJlbCI6cz8iYXV0aG9yaXphdGlvbiBidXR0b24gbG9ja2VkIjoiYXV0aG9yaXphdGlvbiBidXR0b24gdW5sb2NrZWQiLG9uQ2xpY2s6dGhpcy5vbkNsaWNrfSxzP1JlLmNyZWF0ZUVsZW1lbnQoaSx7Y2xhc3NOYW1lOiJsb2NrZWQifSk6UmUuY3JlYXRlRWxlbWVudChhLHtjbGFzc05hbWU6InVubG9ja2VkIn0pKX19Y2xhc3MgQXV0aHMgZXh0ZW5kcyBSZS5Db21wb25lbnR7Y29uc3RydWN0b3IocyxvKXtzdXBlcihzLG8pLHRoaXMuc3RhdGU9e319b25BdXRoQ2hhbmdlPXM9PntsZXR7bmFtZTpvfT1zO3RoaXMuc2V0U3RhdGUoe1tvXTpzfSl9O3N1Ym1pdEF1dGg9cz0+e3MucHJldmVudERlZmF1bHQoKTtsZXR7YXV0aEFjdGlvbnM6b309dGhpcy5wcm9wcztvLmF1dGhvcml6ZVdpdGhQZXJzaXN0T3B0aW9uKHRoaXMuc3RhdGUpfTtsb2dvdXRDbGljaz1zPT57cy5wcmV2ZW50RGVmYXVsdCgpO2xldHthdXRoQWN0aW9uczpvLGRlZmluaXRpb25zOml9PXRoaXMucHJvcHMsYT1pLm1hcCgoKHMsbyk9Pm8pKS50b0FycmF5KCk7dGhpcy5zZXRTdGF0ZShhLnJlZHVjZSgoKHMsbyk9PihzW29dPSIiLHMpKSx7fSkpLG8ubG9nb3V0V2l0aFBlcnNpc3RPcHRpb24oYSl9O2Nsb3NlPXM9PntzLnByZXZlbnREZWZhdWx0KCk7bGV0e2F1dGhBY3Rpb25zOm99PXRoaXMucHJvcHM7by5zaG93RGVmaW5pdGlvbnMoITEpfTtyZW5kZXIoKXtsZXR7ZGVmaW5pdGlvbnM6cyxnZXRDb21wb25lbnQ6byxhdXRoU2VsZWN0b3JzOmksZXJyU2VsZWN0b3JzOmF9PXRoaXMucHJvcHM7Y29uc3QgdT1vKCJBdXRoSXRlbSIpLF89bygib2F1dGgyIiwhMCksdz1vKCJCdXR0b24iKTtsZXQgeD1pLmF1dGhvcml6ZWQoKSxDPXMuZmlsdGVyKCgocyxvKT0+ISF4LmdldChvKSkpLGo9cy5maWx0ZXIoKHM9PiJvYXV0aDIiIT09cy5nZXQoInR5cGUiKSkpLEw9cy5maWx0ZXIoKHM9PiJvYXV0aDIiPT09cy5nZXQoInR5cGUiKSkpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImF1dGgtY29udGFpbmVyIn0sISFqLnNpemUmJlJlLmNyZWF0ZUVsZW1lbnQoImZvcm0iLHtvblN1Ym1pdDp0aGlzLnN1Ym1pdEF1dGh9LGoubWFwKCgocyxfKT0+UmUuY3JlYXRlRWxlbWVudCh1LHtrZXk6XyxzY2hlbWE6cyxuYW1lOl8sZ2V0Q29tcG9uZW50Om8sb25BdXRoQ2hhbmdlOnRoaXMub25BdXRoQ2hhbmdlLGF1dGhvcml6ZWQ6eCxlcnJTZWxlY3RvcnM6YSxhdXRoU2VsZWN0b3JzOml9KSkpLnRvQXJyYXkoKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImF1dGgtYnRuLXdyYXBwZXIifSxqLnNpemU9PT1DLnNpemU/UmUuY3JlYXRlRWxlbWVudCh3LHtjbGFzc05hbWU6ImJ0biBtb2RhbC1idG4gYXV0aCIsb25DbGljazp0aGlzLmxvZ291dENsaWNrLCJhcmlhLWxhYmVsIjoiUmVtb3ZlIGF1dGhvcml6YXRpb24ifSwiTG9nb3V0Iik6UmUuY3JlYXRlRWxlbWVudCh3LHt0eXBlOiJzdWJtaXQiLGNsYXNzTmFtZToiYnRuIG1vZGFsLWJ0biBhdXRoIGF1dGhvcml6ZSIsImFyaWEtbGFiZWwiOiJBcHBseSBjcmVkZW50aWFscyJ9LCJBdXRob3JpemUiKSxSZS5jcmVhdGVFbGVtZW50KHcse2NsYXNzTmFtZToiYnRuIG1vZGFsLWJ0biBhdXRoIGJ0bi1kb25lIixvbkNsaWNrOnRoaXMuY2xvc2V9LCJDbG9zZSIpKSksTCYmTC5zaXplP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InNjb3BlLWRlZiJ9LFJlLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIlNjb3BlcyBhcmUgdXNlZCB0byBncmFudCBhbiBhcHBsaWNhdGlvbiBkaWZmZXJlbnQgbGV2ZWxzIG9mIGFjY2VzcyB0byBkYXRhIG9uIGJlaGFsZiBvZiB0aGUgZW5kIHVzZXIuIEVhY2ggQVBJIG1heSBkZWNsYXJlIG9uZSBvciBtb3JlIHNjb3Blcy4iKSxSZS5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJBUEkgcmVxdWlyZXMgdGhlIGZvbGxvd2luZyBzY29wZXMuIFNlbGVjdCB3aGljaCBvbmVzIHlvdSB3YW50IHRvIGdyYW50IHRvIFN3YWdnZXIgVUkuIikpLHMuZmlsdGVyKChzPT4ib2F1dGgyIj09PXMuZ2V0KCJ0eXBlIikpKS5tYXAoKChzLG8pPT5SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6b30sUmUuY3JlYXRlRWxlbWVudChfLHthdXRob3JpemVkOngsc2NoZW1hOnMsbmFtZTpvfSkpKSkudG9BcnJheSgpKTpudWxsKX19Y2xhc3MgYXV0aF9pdGVtX0F1dGhzIGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe2xldHtzY2hlbWE6cyxuYW1lOm8sZ2V0Q29tcG9uZW50Omksb25BdXRoQ2hhbmdlOmEsYXV0aG9yaXplZDp1LGVyclNlbGVjdG9yczpfLGF1dGhTZWxlY3RvcnM6d309dGhpcy5wcm9wcztjb25zdCB4PWkoImFwaUtleUF1dGgiKSxDPWkoImJhc2ljQXV0aCIpO2xldCBqO2NvbnN0IEw9cy5nZXQoInR5cGUiKTtzd2l0Y2goTCl7Y2FzZSJhcGlLZXkiOmo9UmUuY3JlYXRlRWxlbWVudCh4LHtrZXk6byxzY2hlbWE6cyxuYW1lOm8sZXJyU2VsZWN0b3JzOl8sYXV0aG9yaXplZDp1LGdldENvbXBvbmVudDppLG9uQ2hhbmdlOmEsYXV0aFNlbGVjdG9yczp3fSk7YnJlYWs7Y2FzZSJiYXNpYyI6aj1SZS5jcmVhdGVFbGVtZW50KEMse2tleTpvLHNjaGVtYTpzLG5hbWU6byxlcnJTZWxlY3RvcnM6XyxhdXRob3JpemVkOnUsZ2V0Q29tcG9uZW50Omksb25DaGFuZ2U6YSxhdXRoU2VsZWN0b3JzOnd9KTticmVhaztkZWZhdWx0Omo9UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5Om99LCJVbmtub3duIHNlY3VyaXR5IGRlZmluaXRpb24gdHlwZSAiLEwpfXJldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6YCR7b30tanVtcGB9LGopfX1jbGFzcyBBdXRoRXJyb3IgZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7bGV0e2Vycm9yOnN9PXRoaXMucHJvcHMsbz1zLmdldCgibGV2ZWwiKSxpPXMuZ2V0KCJtZXNzYWdlIiksYT1zLmdldCgic291cmNlIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZXJyb3JzIn0sUmUuY3JlYXRlRWxlbWVudCgiYiIsbnVsbCxhLCIgIixvKSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLGkpKX19Y2xhc3MgQXBpS2V5QXV0aCBleHRlbmRzIFJlLkNvbXBvbmVudHtjb25zdHJ1Y3RvcihzLG8pe3N1cGVyKHMsbyk7bGV0e25hbWU6aSxzY2hlbWE6YX09dGhpcy5wcm9wcyx1PXRoaXMuZ2V0VmFsdWUoKTt0aGlzLnN0YXRlPXtuYW1lOmksc2NoZW1hOmEsdmFsdWU6dX19Z2V0VmFsdWUoKXtsZXR7bmFtZTpzLGF1dGhvcml6ZWQ6b309dGhpcy5wcm9wcztyZXR1cm4gbyYmby5nZXRJbihbcywidmFsdWUiXSl9b25DaGFuZ2U9cz0+e2xldHtvbkNoYW5nZTpvfT10aGlzLnByb3BzLGk9cy50YXJnZXQudmFsdWUsYT1PYmplY3QuYXNzaWduKHt9LHRoaXMuc3RhdGUse3ZhbHVlOml9KTt0aGlzLnNldFN0YXRlKGEpLG8oYSl9O3JlbmRlcigpe2xldHtzY2hlbWE6cyxnZXRDb21wb25lbnQ6byxlcnJTZWxlY3RvcnM6aSxuYW1lOmEsYXV0aFNlbGVjdG9yczp1fT10aGlzLnByb3BzO2NvbnN0IF89bygiSW5wdXQiKSx3PW8oIlJvdyIpLHg9bygiQ29sIiksQz1vKCJhdXRoRXJyb3IiKSxqPW8oIk1hcmtkb3duIiwhMCksTD1vKCJKdW1wVG9QYXRoIiwhMCksQj11LnNlbGVjdEF1dGhQYXRoKGEpO2xldCAkPXRoaXMuZ2V0VmFsdWUoKSxWPWkuYWxsRXJyb3JzKCkuZmlsdGVyKChzPT5zLmdldCgiYXV0aElkIik9PT1hKSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJoNCIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLGF8fHMuZ2V0KCJuYW1lIikpLCLCoChhcGlLZXkpIixSZS5jcmVhdGVFbGVtZW50KEwse3BhdGg6Qn0pKSwkJiZSZS5jcmVhdGVFbGVtZW50KCJoNiIsbnVsbCwiQXV0aG9yaXplZCIpLFJlLmNyZWF0ZUVsZW1lbnQodyxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoaix7c291cmNlOnMuZ2V0KCJkZXNjcmlwdGlvbiIpfSkpLFJlLmNyZWF0ZUVsZW1lbnQodyxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIk5hbWU6ICIsUmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCxzLmdldCgibmFtZSIpKSkpLFJlLmNyZWF0ZUVsZW1lbnQodyxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIkluOiAiLFJlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwscy5nZXQoImluIikpKSksUmUuY3JlYXRlRWxlbWVudCh3LG51bGwsUmUuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtodG1sRm9yOiJhcGlfa2V5X3ZhbHVlIn0sIlZhbHVlOiIpLCQ/UmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwiICoqKioqKiAiKTpSZS5jcmVhdGVFbGVtZW50KHgsbnVsbCxSZS5jcmVhdGVFbGVtZW50KF8se2lkOiJhcGlfa2V5X3ZhbHVlIix0eXBlOiJ0ZXh0IixvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlLGF1dG9Gb2N1czohMH0pKSksVi52YWx1ZVNlcSgpLm1hcCgoKHMsbyk9PlJlLmNyZWF0ZUVsZW1lbnQoQyx7ZXJyb3I6cyxrZXk6b30pKSkpfX1jbGFzcyBCYXNpY0F1dGggZXh0ZW5kcyBSZS5Db21wb25lbnR7Y29uc3RydWN0b3IocyxvKXtzdXBlcihzLG8pO2xldHtzY2hlbWE6aSxuYW1lOmF9PXRoaXMucHJvcHMsdT10aGlzLmdldFZhbHVlKCkudXNlcm5hbWU7dGhpcy5zdGF0ZT17bmFtZTphLHNjaGVtYTppLHZhbHVlOnU/e3VzZXJuYW1lOnV9Ont9fX1nZXRWYWx1ZSgpe2xldHthdXRob3JpemVkOnMsbmFtZTpvfT10aGlzLnByb3BzO3JldHVybiBzJiZzLmdldEluKFtvLCJ2YWx1ZSJdKXx8e319b25DaGFuZ2U9cz0+e2xldHtvbkNoYW5nZTpvfT10aGlzLnByb3BzLHt2YWx1ZTppLG5hbWU6YX09cy50YXJnZXQsdT10aGlzLnN0YXRlLnZhbHVlO3VbYV09aSx0aGlzLnNldFN0YXRlKHt2YWx1ZTp1fSksbyh0aGlzLnN0YXRlKX07cmVuZGVyKCl7bGV0e3NjaGVtYTpzLGdldENvbXBvbmVudDpvLG5hbWU6aSxlcnJTZWxlY3RvcnM6YSxhdXRoU2VsZWN0b3JzOnV9PXRoaXMucHJvcHM7Y29uc3QgXz1vKCJJbnB1dCIpLHc9bygiUm93IikseD1vKCJDb2wiKSxDPW8oImF1dGhFcnJvciIpLGo9bygiSnVtcFRvUGF0aCIsITApLEw9bygiTWFya2Rvd24iLCEwKSxCPXUuc2VsZWN0QXV0aFBhdGgoaSk7bGV0ICQ9dGhpcy5nZXRWYWx1ZSgpLnVzZXJuYW1lLFY9YS5hbGxFcnJvcnMoKS5maWx0ZXIoKHM9PnMuZ2V0KCJhdXRoSWQiKT09PWkpKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLCJCYXNpYyBhdXRob3JpemF0aW9uIixSZS5jcmVhdGVFbGVtZW50KGose3BhdGg6Qn0pKSwkJiZSZS5jcmVhdGVFbGVtZW50KCJoNiIsbnVsbCwiQXV0aG9yaXplZCIpLFJlLmNyZWF0ZUVsZW1lbnQodyxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoTCx7c291cmNlOnMuZ2V0KCJkZXNjcmlwdGlvbiIpfSkpLFJlLmNyZWF0ZUVsZW1lbnQodyxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjoiYXV0aF91c2VybmFtZSJ9LCJVc2VybmFtZToiKSwkP1JlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIiAiLCQsIiAiKTpSZS5jcmVhdGVFbGVtZW50KHgsbnVsbCxSZS5jcmVhdGVFbGVtZW50KF8se2lkOiJhdXRoX3VzZXJuYW1lIix0eXBlOiJ0ZXh0IixyZXF1aXJlZDoicmVxdWlyZWQiLG5hbWU6InVzZXJuYW1lIixvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlLGF1dG9Gb2N1czohMH0pKSksUmUuY3JlYXRlRWxlbWVudCh3LG51bGwsUmUuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtodG1sRm9yOiJhdXRoX3Bhc3N3b3JkIn0sIlBhc3N3b3JkOiIpLCQ/UmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwiICoqKioqKiAiKTpSZS5jcmVhdGVFbGVtZW50KHgsbnVsbCxSZS5jcmVhdGVFbGVtZW50KF8se2lkOiJhdXRoX3Bhc3N3b3JkIixhdXRvQ29tcGxldGU6Im5ldy1wYXNzd29yZCIsbmFtZToicGFzc3dvcmQiLHR5cGU6InBhc3N3b3JkIixvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlfSkpKSxWLnZhbHVlU2VxKCkubWFwKCgocyxvKT0+UmUuY3JlYXRlRWxlbWVudChDLHtlcnJvcjpzLGtleTpvfSkpKSl9fWZ1bmN0aW9uIGV4YW1wbGVfRXhhbXBsZShzKXtjb25zdHtleGFtcGxlOm8sc2hvd1ZhbHVlOmksZ2V0Q29tcG9uZW50OmF9PXMsdT1hKCJNYXJrZG93biIsITApLF89YSgiSGlnaGxpZ2h0Q29kZSIsITApO3JldHVybiBvJiZ6ZS5NYXAuaXNNYXAobyk/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJleGFtcGxlIn0sby5nZXQoImRlc2NyaXB0aW9uIik/UmUuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIse2NsYXNzTmFtZToiZXhhbXBsZV9fc2VjdGlvbiJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZXhhbXBsZV9fc2VjdGlvbi1oZWFkZXIifSwiRXhhbXBsZSBEZXNjcmlwdGlvbiIpLFJlLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsUmUuY3JlYXRlRWxlbWVudCh1LHtzb3VyY2U6by5nZXQoImRlc2NyaXB0aW9uIil9KSkpOm51bGwsaSYmby5oYXMoInZhbHVlIik/UmUuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIse2NsYXNzTmFtZToiZXhhbXBsZV9fc2VjdGlvbiJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZXhhbXBsZV9fc2VjdGlvbi1oZWFkZXIifSwiRXhhbXBsZSBWYWx1ZSIpLFJlLmNyZWF0ZUVsZW1lbnQoXyxudWxsLHN0cmluZ2lmeShvLmdldCgidmFsdWUiKSkpKTpudWxsKTpudWxsfWNsYXNzIEV4YW1wbGVzU2VsZWN0IGV4dGVuZHMgUmUuUHVyZUNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXtleGFtcGxlczooMCx6ZS5NYXApKHt9KSxvblNlbGVjdDooLi4ucyk9PmNvbnNvbGUubG9nKCJERUJVRzogRXhhbXBsZXNTZWxlY3Qgd2FzIG5vdCBnaXZlbiBhbiBvblNlbGVjdCBjYWxsYmFjayIsLi4ucyksY3VycmVudEV4YW1wbGVLZXk6bnVsbCxzaG93TGFiZWxzOiEwfTtfb25TZWxlY3Q9KHMse2lzU3ludGhldGljQ2hhbmdlOm89ITF9PXt9KT0+eyJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLnByb3BzLm9uU2VsZWN0JiZ0aGlzLnByb3BzLm9uU2VsZWN0KHMse2lzU3ludGhldGljQ2hhbmdlOm99KX07X29uRG9tU2VsZWN0PXM9PntpZigiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5wcm9wcy5vblNlbGVjdCl7Y29uc3Qgbz1zLnRhcmdldC5zZWxlY3RlZE9wdGlvbnNbMF0uZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpO3RoaXMuX29uU2VsZWN0KG8se2lzU3ludGhldGljQ2hhbmdlOiExfSl9fTtnZXRDdXJyZW50RXhhbXBsZT0oKT0+e2NvbnN0e2V4YW1wbGVzOnMsY3VycmVudEV4YW1wbGVLZXk6b309dGhpcy5wcm9wcyxpPXMuZ2V0KG8pLGE9cy5rZXlTZXEoKS5maXJzdCgpLHU9cy5nZXQoYSk7cmV0dXJuIGl8fHV8fCgwLHplLk1hcCkoe30pfTtjb21wb25lbnREaWRNb3VudCgpe2NvbnN0e29uU2VsZWN0OnMsZXhhbXBsZXM6b309dGhpcy5wcm9wcztpZigiZnVuY3Rpb24iPT10eXBlb2Ygcyl7Y29uc3Qgcz1vLmZpcnN0KCksaT1vLmtleU9mKHMpO3RoaXMuX29uU2VsZWN0KGkse2lzU3ludGhldGljQ2hhbmdlOiEwfSl9fVVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHMpe2NvbnN0e2N1cnJlbnRFeGFtcGxlS2V5Om8sZXhhbXBsZXM6aX09cztpZihpIT09dGhpcy5wcm9wcy5leGFtcGxlcyYmIWkuaGFzKG8pKXtjb25zdCBzPWkuZmlyc3QoKSxvPWkua2V5T2Yocyk7dGhpcy5fb25TZWxlY3Qobyx7aXNTeW50aGV0aWNDaGFuZ2U6ITB9KX19cmVuZGVyKCl7Y29uc3R7ZXhhbXBsZXM6cyxjdXJyZW50RXhhbXBsZUtleTpvLGlzVmFsdWVNb2RpZmllZDppLGlzTW9kaWZpZWRWYWx1ZUF2YWlsYWJsZTphLHNob3dMYWJlbHM6dX09dGhpcy5wcm9wcztyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJleGFtcGxlcy1zZWxlY3QifSx1P1JlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6ImV4YW1wbGVzLXNlbGVjdF9fc2VjdGlvbi1sYWJlbCJ9LCJFeGFtcGxlczogIik6bnVsbCxSZS5jcmVhdGVFbGVtZW50KCJzZWxlY3QiLHtjbGFzc05hbWU6ImV4YW1wbGVzLXNlbGVjdC1lbGVtZW50IixvbkNoYW5nZTp0aGlzLl9vbkRvbVNlbGVjdCx2YWx1ZTphJiZpPyJfX01PRElGSUVEX19WQUxVRV9fIjpvfHwiIn0sYT9SZS5jcmVhdGVFbGVtZW50KCJvcHRpb24iLHt2YWx1ZToiX19NT0RJRklFRF9fVkFMVUVfXyJ9LCJbTW9kaWZpZWQgdmFsdWVdIik6bnVsbCxzLm1hcCgoKHMsbyk9PlJlLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIse2tleTpvLHZhbHVlOm99LHplLk1hcC5pc01hcChzKSYmcy5nZXQoInN1bW1hcnkiKXx8bykpKS52YWx1ZVNlcSgpKSl9fWNvbnN0IHN0cmluZ2lmeVVubGVzc0xpc3Q9cz0+emUuTGlzdC5pc0xpc3Qocyk/czpzdHJpbmdpZnkocyk7Y2xhc3MgRXhhbXBsZXNTZWxlY3RWYWx1ZVJldGFpbmVyIGV4dGVuZHMgUmUuUHVyZUNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXt1c2VySGFzRWRpdGVkQm9keTohMSxleGFtcGxlczooMCx6ZS5NYXApKHt9KSxjdXJyZW50TmFtZXNwYWNlOiJfX0RFRkFVTFRfX05BTUVTUEFDRV9fIixzZXRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlRmxhZzooKT0+e30sb25TZWxlY3Q6KC4uLnMpPT5jb25zb2xlLmxvZygiRXhhbXBsZXNTZWxlY3RWYWx1ZVJldGFpbmVyOiBubyBgb25TZWxlY3RgIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCIsLi4ucyksdXBkYXRlVmFsdWU6KC4uLnMpPT5jb25zb2xlLmxvZygiRXhhbXBsZXNTZWxlY3RWYWx1ZVJldGFpbmVyOiBubyBgdXBkYXRlVmFsdWVgIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCIsLi4ucyl9O2NvbnN0cnVjdG9yKHMpe3N1cGVyKHMpO2NvbnN0IG89dGhpcy5fZ2V0Q3VycmVudEV4YW1wbGVWYWx1ZSgpO3RoaXMuc3RhdGU9e1tzLmN1cnJlbnROYW1lc3BhY2VdOigwLHplLk1hcCkoe2xhc3RVc2VyRWRpdGVkVmFsdWU6dGhpcy5wcm9wcy5jdXJyZW50VXNlcklucHV0VmFsdWUsbGFzdERvd25zdHJlYW1WYWx1ZTpvLGlzTW9kaWZpZWRWYWx1ZVNlbGVjdGVkOnRoaXMucHJvcHMudXNlckhhc0VkaXRlZEJvZHl8fHRoaXMucHJvcHMuY3VycmVudFVzZXJJbnB1dFZhbHVlIT09b30pfX1jb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMucHJvcHMuc2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWcoITEpfV9nZXRTdGF0ZUZvckN1cnJlbnROYW1lc3BhY2U9KCk9Pntjb25zdHtjdXJyZW50TmFtZXNwYWNlOnN9PXRoaXMucHJvcHM7cmV0dXJuKHRoaXMuc3RhdGVbc118fCgwLHplLk1hcCkoKSkudG9PYmplY3QoKX07X3NldFN0YXRlRm9yQ3VycmVudE5hbWVzcGFjZT1zPT57Y29uc3R7Y3VycmVudE5hbWVzcGFjZTpvfT10aGlzLnByb3BzO3JldHVybiB0aGlzLl9zZXRTdGF0ZUZvck5hbWVzcGFjZShvLHMpfTtfc2V0U3RhdGVGb3JOYW1lc3BhY2U9KHMsbyk9Pntjb25zdCBpPSh0aGlzLnN0YXRlW3NdfHwoMCx6ZS5NYXApKCkpLm1lcmdlRGVlcChvKTtyZXR1cm4gdGhpcy5zZXRTdGF0ZSh7W3NdOml9KX07X2lzQ3VycmVudFVzZXJJbnB1dFNhbWVBc0V4YW1wbGVWYWx1ZT0oKT0+e2NvbnN0e2N1cnJlbnRVc2VySW5wdXRWYWx1ZTpzfT10aGlzLnByb3BzO3JldHVybiB0aGlzLl9nZXRDdXJyZW50RXhhbXBsZVZhbHVlKCk9PT1zfTtfZ2V0VmFsdWVGb3JFeGFtcGxlPShzLG8pPT57Y29uc3R7ZXhhbXBsZXM6aX09b3x8dGhpcy5wcm9wcztyZXR1cm4gc3RyaW5naWZ5VW5sZXNzTGlzdCgoaXx8KDAsemUuTWFwKSh7fSkpLmdldEluKFtzLCJ2YWx1ZSJdKSl9O19nZXRDdXJyZW50RXhhbXBsZVZhbHVlPXM9Pntjb25zdHtjdXJyZW50S2V5Om99PXN8fHRoaXMucHJvcHM7cmV0dXJuIHRoaXMuX2dldFZhbHVlRm9yRXhhbXBsZShvLHN8fHRoaXMucHJvcHMpfTtfb25FeGFtcGxlc1NlbGVjdD0ocyx7aXNTeW50aGV0aWNDaGFuZ2U6b309e30sLi4uaSk9Pntjb25zdHtvblNlbGVjdDphLHVwZGF0ZVZhbHVlOnUsY3VycmVudFVzZXJJbnB1dFZhbHVlOl8sdXNlckhhc0VkaXRlZEJvZHk6d309dGhpcy5wcm9wcyx7bGFzdFVzZXJFZGl0ZWRWYWx1ZTp4fT10aGlzLl9nZXRTdGF0ZUZvckN1cnJlbnROYW1lc3BhY2UoKSxDPXRoaXMuX2dldFZhbHVlRm9yRXhhbXBsZShzKTtpZigiX19NT0RJRklFRF9fVkFMVUVfXyI9PT1zKXJldHVybiB1KHN0cmluZ2lmeVVubGVzc0xpc3QoeCkpLHRoaXMuX3NldFN0YXRlRm9yQ3VycmVudE5hbWVzcGFjZSh7aXNNb2RpZmllZFZhbHVlU2VsZWN0ZWQ6ITB9KTsiZnVuY3Rpb24iPT10eXBlb2YgYSYmYShzLHtpc1N5bnRoZXRpY0NoYW5nZTpvfSwuLi5pKSx0aGlzLl9zZXRTdGF0ZUZvckN1cnJlbnROYW1lc3BhY2Uoe2xhc3REb3duc3RyZWFtVmFsdWU6Qyxpc01vZGlmaWVkVmFsdWVTZWxlY3RlZDpvJiZ3fHwhIV8mJl8hPT1DfSksb3x8ImZ1bmN0aW9uIj09dHlwZW9mIHUmJnUoc3RyaW5naWZ5VW5sZXNzTGlzdChDKSl9O1VOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHMpe2NvbnN0e2N1cnJlbnRVc2VySW5wdXRWYWx1ZTpvLGV4YW1wbGVzOmksb25TZWxlY3Q6YSx1c2VySGFzRWRpdGVkQm9keTp1fT1zLHtsYXN0VXNlckVkaXRlZFZhbHVlOl8sbGFzdERvd25zdHJlYW1WYWx1ZTp3fT10aGlzLl9nZXRTdGF0ZUZvckN1cnJlbnROYW1lc3BhY2UoKSx4PXRoaXMuX2dldFZhbHVlRm9yRXhhbXBsZShzLmN1cnJlbnRLZXkscyksQz1pLmZpbHRlcigocz0+emUuTWFwLmlzTWFwKHMpJiYocy5nZXQoInZhbHVlIik9PT1vfHxzdHJpbmdpZnkocy5nZXQoInZhbHVlIikpPT09bykpKTtpZihDLnNpemUpe2xldCBvO289Qy5oYXMocy5jdXJyZW50S2V5KT9zLmN1cnJlbnRLZXk6Qy5rZXlTZXEoKS5maXJzdCgpLGEobyx7aXNTeW50aGV0aWNDaGFuZ2U6ITB9KX1lbHNlIG8hPT10aGlzLnByb3BzLmN1cnJlbnRVc2VySW5wdXRWYWx1ZSYmbyE9PV8mJm8hPT13JiYodGhpcy5wcm9wcy5zZXRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlRmxhZyghMCksdGhpcy5fc2V0U3RhdGVGb3JOYW1lc3BhY2Uocy5jdXJyZW50TmFtZXNwYWNlLHtsYXN0VXNlckVkaXRlZFZhbHVlOnMuY3VycmVudFVzZXJJbnB1dFZhbHVlLGlzTW9kaWZpZWRWYWx1ZVNlbGVjdGVkOnV8fG8hPT14fSkpfXJlbmRlcigpe2NvbnN0e2N1cnJlbnRVc2VySW5wdXRWYWx1ZTpzLGV4YW1wbGVzOm8sY3VycmVudEtleTppLGdldENvbXBvbmVudDphLHVzZXJIYXNFZGl0ZWRCb2R5OnV9PXRoaXMucHJvcHMse2xhc3REb3duc3RyZWFtVmFsdWU6XyxsYXN0VXNlckVkaXRlZFZhbHVlOncsaXNNb2RpZmllZFZhbHVlU2VsZWN0ZWQ6eH09dGhpcy5fZ2V0U3RhdGVGb3JDdXJyZW50TmFtZXNwYWNlKCksQz1hKCJFeGFtcGxlc1NlbGVjdCIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KEMse2V4YW1wbGVzOm8sY3VycmVudEV4YW1wbGVLZXk6aSxvblNlbGVjdDp0aGlzLl9vbkV4YW1wbGVzU2VsZWN0LGlzTW9kaWZpZWRWYWx1ZUF2YWlsYWJsZTohIXcmJnchPT1fLGlzVmFsdWVNb2RpZmllZDp2b2lkIDAhPT1zJiZ4JiZzIT09dGhpcy5fZ2V0Q3VycmVudEV4YW1wbGVWYWx1ZSgpfHx1fSl9fWZ1bmN0aW9uIG9hdXRoMl9hdXRob3JpemVfYXV0aG9yaXplKHthdXRoOnMsYXV0aEFjdGlvbnM6byxlcnJBY3Rpb25zOmksY29uZmlnczphLGF1dGhDb25maWdzOnU9e30sY3VycmVudFNlcnZlcjpffSl7bGV0e3NjaGVtYTp3LHNjb3Blczp4LG5hbWU6QyxjbGllbnRJZDpqfT1zLEw9dy5nZXQoImZsb3ciKSxCPVtdO3N3aXRjaChMKXtjYXNlInBhc3N3b3JkIjpyZXR1cm4gdm9pZCBvLmF1dGhvcml6ZVBhc3N3b3JkKHMpO2Nhc2UiYXBwbGljYXRpb24iOmNhc2UiY2xpZW50Q3JlZGVudGlhbHMiOmNhc2UiY2xpZW50X2NyZWRlbnRpYWxzIjpyZXR1cm4gdm9pZCBvLmF1dGhvcml6ZUFwcGxpY2F0aW9uKHMpO2Nhc2UiYWNjZXNzQ29kZSI6Y2FzZSJhdXRob3JpemF0aW9uQ29kZSI6Y2FzZSJhdXRob3JpemF0aW9uX2NvZGUiOkIucHVzaCgicmVzcG9uc2VfdHlwZT1jb2RlIik7YnJlYWs7Y2FzZSJpbXBsaWNpdCI6Qi5wdXNoKCJyZXNwb25zZV90eXBlPXRva2VuIil9InN0cmluZyI9PXR5cGVvZiBqJiZCLnB1c2goImNsaWVudF9pZD0iK2VuY29kZVVSSUNvbXBvbmVudChqKSk7bGV0ICQ9YS5vYXV0aDJSZWRpcmVjdFVybDtpZih2b2lkIDA9PT0kKXJldHVybiB2b2lkIGkubmV3QXV0aEVycih7YXV0aElkOkMsc291cmNlOiJ2YWxpZGF0aW9uIixsZXZlbDoiZXJyb3IiLG1lc3NhZ2U6Im9hdXRoMlJlZGlyZWN0VXJsIGNvbmZpZ3VyYXRpb24gaXMgbm90IHBhc3NlZC4gT2F1dGgyIGF1dGhvcml6YXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZC4ifSk7Qi5wdXNoKCJyZWRpcmVjdF91cmk9IitlbmNvZGVVUklDb21wb25lbnQoJCkpO2xldCBWPVtdO2lmKEFycmF5LmlzQXJyYXkoeCk/Vj14OldlKCkuTGlzdC5pc0xpc3QoeCkmJihWPXgudG9BcnJheSgpKSxWLmxlbmd0aD4wKXtsZXQgcz11LnNjb3BlU2VwYXJhdG9yfHwiICI7Qi5wdXNoKCJzY29wZT0iK2VuY29kZVVSSUNvbXBvbmVudChWLmpvaW4ocykpKX1sZXQgVT11dGlsc19idG9hKG5ldyBEYXRlKTtpZihCLnB1c2goInN0YXRlPSIrZW5jb2RlVVJJQ29tcG9uZW50KFUpKSx2b2lkIDAhPT11LnJlYWxtJiZCLnB1c2goInJlYWxtPSIrZW5jb2RlVVJJQ29tcG9uZW50KHUucmVhbG0pKSwoImF1dGhvcml6YXRpb25Db2RlIj09PUx8fCJhdXRob3JpemF0aW9uX2NvZGUiPT09THx8ImFjY2Vzc0NvZGUiPT09TCkmJnUudXNlUGtjZVdpdGhBdXRob3JpemF0aW9uQ29kZUdyYW50KXtjb25zdCBvPWZ1bmN0aW9uIGdlbmVyYXRlQ29kZVZlcmlmaWVyKCl7cmV0dXJuIGI2NHRvQjY0VXJsRW5jb2RlZCh4dCgpKDMyKS50b1N0cmluZygiYmFzZTY0IikpfSgpLGk9ZnVuY3Rpb24gY3JlYXRlQ29kZUNoYWxsZW5nZShzKXtyZXR1cm4gYjY0dG9CNjRVcmxFbmNvZGVkKE90KCkoInNoYTI1NiIpLnVwZGF0ZShzKS5kaWdlc3QoImJhc2U2NCIpKX0obyk7Qi5wdXNoKCJjb2RlX2NoYWxsZW5nZT0iK2kpLEIucHVzaCgiY29kZV9jaGFsbGVuZ2VfbWV0aG9kPVMyNTYiKSxzLmNvZGVWZXJpZmllcj1vfWxldHthZGRpdGlvbmFsUXVlcnlTdHJpbmdQYXJhbXM6en09dTtmb3IobGV0IHMgaW4geil2b2lkIDAhPT16W3NdJiZCLnB1c2goW3MseltzXV0ubWFwKGVuY29kZVVSSUNvbXBvbmVudCkuam9pbigiPSIpKTtjb25zdCBZPXcuZ2V0KCJhdXRob3JpemF0aW9uVXJsIik7bGV0IFo7Wj1fP050KCkoc2FuaXRpemVVcmwoWSksXywhMCkudG9TdHJpbmcoKTpzYW5pdGl6ZVVybChZKTtsZXQgZWUsaWU9W1osQi5qb2luKCImIildLmpvaW4oInN0cmluZyIhPXR5cGVvZiBZfHxZLmluY2x1ZGVzKCI/Iik/IiYiOiI/Iik7ZWU9ImltcGxpY2l0Ij09PUw/by5wcmVBdXRob3JpemVJbXBsaWNpdDp1LnVzZUJhc2ljQXV0aGVudGljYXRpb25XaXRoQWNjZXNzQ29kZUdyYW50P28uYXV0aG9yaXplQWNjZXNzQ29kZVdpdGhCYXNpY0F1dGhlbnRpY2F0aW9uOm8uYXV0aG9yaXplQWNjZXNzQ29kZVdpdGhGb3JtUGFyYW1zLG8uYXV0aFBvcHVwKGllLHthdXRoOnMsc3RhdGU6VSxyZWRpcmVjdFVybDokLGNhbGxiYWNrOmVlLGVyckNiOmkubmV3QXV0aEVycn0pfWNsYXNzIE9hdXRoMiBleHRlbmRzIFJlLkNvbXBvbmVudHtjb25zdHJ1Y3RvcihzLG8pe3N1cGVyKHMsbyk7bGV0e25hbWU6aSxzY2hlbWE6YSxhdXRob3JpemVkOnUsYXV0aFNlbGVjdG9yczpffT10aGlzLnByb3BzLHc9dSYmdS5nZXQoaSkseD1fLmdldENvbmZpZ3MoKXx8e30sQz13JiZ3LmdldCgidXNlcm5hbWUiKXx8IiIsaj13JiZ3LmdldCgiY2xpZW50SWQiKXx8eC5jbGllbnRJZHx8IiIsTD13JiZ3LmdldCgiY2xpZW50U2VjcmV0Iil8fHguY2xpZW50U2VjcmV0fHwiIixCPXcmJncuZ2V0KCJwYXNzd29yZFR5cGUiKXx8ImJhc2ljIiwkPXcmJncuZ2V0KCJzY29wZXMiKXx8eC5zY29wZXN8fFtdOyJzdHJpbmciPT10eXBlb2YgJCYmKCQ9JC5zcGxpdCh4LnNjb3BlU2VwYXJhdG9yfHwiICIpKSx0aGlzLnN0YXRlPXthcHBOYW1lOnguYXBwTmFtZSxuYW1lOmksc2NoZW1hOmEsc2NvcGVzOiQsY2xpZW50SWQ6aixjbGllbnRTZWNyZXQ6TCx1c2VybmFtZTpDLHBhc3N3b3JkOiIiLHBhc3N3b3JkVHlwZTpCfX1jbG9zZT1zPT57cy5wcmV2ZW50RGVmYXVsdCgpO2xldHthdXRoQWN0aW9uczpvfT10aGlzLnByb3BzO28uc2hvd0RlZmluaXRpb25zKCExKX07YXV0aG9yaXplPSgpPT57bGV0e2F1dGhBY3Rpb25zOnMsZXJyQWN0aW9uczpvLGdldENvbmZpZ3M6aSxhdXRoU2VsZWN0b3JzOmEsb2FzM1NlbGVjdG9yczp1fT10aGlzLnByb3BzLF89aSgpLHc9YS5nZXRDb25maWdzKCk7by5jbGVhcih7YXV0aElkOm5hbWUsdHlwZToiYXV0aCIsc291cmNlOiJhdXRoIn0pLG9hdXRoMl9hdXRob3JpemVfYXV0aG9yaXplKHthdXRoOnRoaXMuc3RhdGUsY3VycmVudFNlcnZlcjp1LnNlcnZlckVmZmVjdGl2ZVZhbHVlKHUuc2VsZWN0ZWRTZXJ2ZXIoKSksYXV0aEFjdGlvbnM6cyxlcnJBY3Rpb25zOm8sY29uZmlnczpfLGF1dGhDb25maWdzOnd9KX07b25TY29wZUNoYW5nZT1zPT57bGV0e3RhcmdldDpvfT1zLHtjaGVja2VkOml9PW8sYT1vLmRhdGFzZXQudmFsdWU7aWYoaSYmLTE9PT10aGlzLnN0YXRlLnNjb3Blcy5pbmRleE9mKGEpKXtsZXQgcz10aGlzLnN0YXRlLnNjb3Blcy5jb25jYXQoW2FdKTt0aGlzLnNldFN0YXRlKHtzY29wZXM6c30pfWVsc2UhaSYmdGhpcy5zdGF0ZS5zY29wZXMuaW5kZXhPZihhKT4tMSYmdGhpcy5zZXRTdGF0ZSh7c2NvcGVzOnRoaXMuc3RhdGUuc2NvcGVzLmZpbHRlcigocz0+cyE9PWEpKX0pfTtvbklucHV0Q2hhbmdlPXM9PntsZXR7dGFyZ2V0OntkYXRhc2V0OntuYW1lOm99LHZhbHVlOml9fT1zLGE9e1tvXTppfTt0aGlzLnNldFN0YXRlKGEpfTtzZWxlY3RTY29wZXM9cz0+e3MudGFyZ2V0LmRhdGFzZXQuYWxsP3RoaXMuc2V0U3RhdGUoe3Njb3BlczpBcnJheS5mcm9tKCh0aGlzLnByb3BzLnNjaGVtYS5nZXQoImFsbG93ZWRTY29wZXMiKXx8dGhpcy5wcm9wcy5zY2hlbWEuZ2V0KCJzY29wZXMiKSkua2V5cygpKX0pOnRoaXMuc2V0U3RhdGUoe3Njb3BlczpbXX0pfTtsb2dvdXQ9cz0+e3MucHJldmVudERlZmF1bHQoKTtsZXR7YXV0aEFjdGlvbnM6byxlcnJBY3Rpb25zOmksbmFtZTphfT10aGlzLnByb3BzO2kuY2xlYXIoe2F1dGhJZDphLHR5cGU6ImF1dGgiLHNvdXJjZToiYXV0aCJ9KSxvLmxvZ291dFdpdGhQZXJzaXN0T3B0aW9uKFthXSl9O3JlbmRlcigpe2xldHtzY2hlbWE6cyxnZXRDb21wb25lbnQ6byxhdXRoU2VsZWN0b3JzOmksZXJyU2VsZWN0b3JzOmEsbmFtZTp1LHNwZWNTZWxlY3RvcnM6X309dGhpcy5wcm9wcztjb25zdCB3PW8oIklucHV0IikseD1vKCJSb3ciKSxDPW8oIkNvbCIpLGo9bygiQnV0dG9uIiksTD1vKCJhdXRoRXJyb3IiKSxCPW8oIkp1bXBUb1BhdGgiLCEwKSwkPW8oIk1hcmtkb3duIiwhMCksVj1vKCJJbml0aWFsaXplZElucHV0Iikse2lzT0FTMzpVfT1fO2xldCB6PVUoKT9zLmdldCgib3BlbklkQ29ubmVjdFVybCIpOm51bGw7Y29uc3QgWT0iaW1wbGljaXQiLFo9InBhc3N3b3JkIixlZT1VKCk/ej8iYXV0aG9yaXphdGlvbl9jb2RlIjoiYXV0aG9yaXphdGlvbkNvZGUiOiJhY2Nlc3NDb2RlIixpZT1VKCk/ej8iY2xpZW50X2NyZWRlbnRpYWxzIjoiY2xpZW50Q3JlZGVudGlhbHMiOiJhcHBsaWNhdGlvbiIsYWU9aS5zZWxlY3RBdXRoUGF0aCh1KTtsZXQgY2U9ISEoaS5nZXRDb25maWdzKCl8fHt9KS51c2VQa2NlV2l0aEF1dGhvcml6YXRpb25Db2RlR3JhbnQsbGU9cy5nZXQoImZsb3ciKSxwZT1sZT09PWVlJiZjZT9sZSsiIHdpdGggUEtDRSI6bGUsZGU9cy5nZXQoImFsbG93ZWRTY29wZXMiKXx8cy5nZXQoInNjb3BlcyIpLGZlPSEhaS5hdXRob3JpemVkKCkuZ2V0KHUpLHllPWEuYWxsRXJyb3JzKCkuZmlsdGVyKChzPT5zLmdldCgiYXV0aElkIik9PT11KSksYmU9IXllLmZpbHRlcigocz0+InZhbGlkYXRpb24iPT09cy5nZXQoInNvdXJjZSIpKSkuc2l6ZSxfZT1zLmdldCgiZGVzY3JpcHRpb24iKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLHUsIiAoT0F1dGgyLCAiLHBlLCIpICIsUmUuY3JlYXRlRWxlbWVudChCLHtwYXRoOmFlfSkpLHRoaXMuc3RhdGUuYXBwTmFtZT9SZS5jcmVhdGVFbGVtZW50KCJoNSIsbnVsbCwiQXBwbGljYXRpb246ICIsdGhpcy5zdGF0ZS5hcHBOYW1lLCIgIik6bnVsbCxfZSYmUmUuY3JlYXRlRWxlbWVudCgkLHtzb3VyY2U6cy5nZXQoImRlc2NyaXB0aW9uIil9KSxmZSYmUmUuY3JlYXRlRWxlbWVudCgiaDYiLG51bGwsIkF1dGhvcml6ZWQiKSx6JiZSZS5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJPcGVuSUQgQ29ubmVjdCBVUkw6ICIsUmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCx6KSksKGxlPT09WXx8bGU9PT1lZSkmJlJlLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIkF1dGhvcml6YXRpb24gVVJMOiAiLFJlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwscy5nZXQoImF1dGhvcml6YXRpb25VcmwiKSkpLChsZT09PVp8fGxlPT09ZWV8fGxlPT09aWUpJiZSZS5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJUb2tlbiBVUkw6IixSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCIgIixzLmdldCgidG9rZW5VcmwiKSkpLFJlLmNyZWF0ZUVsZW1lbnQoInAiLHtjbGFzc05hbWU6ImZsb3cifSwiRmxvdzogIixSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLHBlKSksbGUhPT1aP251bGw6UmUuY3JlYXRlRWxlbWVudCh4LG51bGwsUmUuY3JlYXRlRWxlbWVudCh4LG51bGwsUmUuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtodG1sRm9yOiJvYXV0aF91c2VybmFtZSJ9LCJ1c2VybmFtZToiKSxmZT9SZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCIgIix0aGlzLnN0YXRlLnVzZXJuYW1lLCIgIik6UmUuY3JlYXRlRWxlbWVudChDLHt0YWJsZXQ6MTAsZGVza3RvcDoxMH0sUmUuY3JlYXRlRWxlbWVudCgiaW5wdXQiLHtpZDoib2F1dGhfdXNlcm5hbWUiLHR5cGU6InRleHQiLCJkYXRhLW5hbWUiOiJ1c2VybmFtZSIsb25DaGFuZ2U6dGhpcy5vbklucHV0Q2hhbmdlLGF1dG9Gb2N1czohMH0pKSksUmUuY3JlYXRlRWxlbWVudCh4LG51bGwsUmUuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtodG1sRm9yOiJvYXV0aF9wYXNzd29yZCJ9LCJwYXNzd29yZDoiKSxmZT9SZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCIgKioqKioqICIpOlJlLmNyZWF0ZUVsZW1lbnQoQyx7dGFibGV0OjEwLGRlc2t0b3A6MTB9LFJlLmNyZWF0ZUVsZW1lbnQoImlucHV0Iix7aWQ6Im9hdXRoX3Bhc3N3b3JkIix0eXBlOiJwYXNzd29yZCIsImRhdGEtbmFtZSI6InBhc3N3b3JkIixvbkNoYW5nZTp0aGlzLm9uSW5wdXRDaGFuZ2V9KSkpLFJlLmNyZWF0ZUVsZW1lbnQoeCxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjoicGFzc3dvcmRfdHlwZSJ9LCJDbGllbnQgY3JlZGVudGlhbHMgbG9jYXRpb246IiksZmU/UmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwiICIsdGhpcy5zdGF0ZS5wYXNzd29yZFR5cGUsIiAiKTpSZS5jcmVhdGVFbGVtZW50KEMse3RhYmxldDoxMCxkZXNrdG9wOjEwfSxSZS5jcmVhdGVFbGVtZW50KCJzZWxlY3QiLHtpZDoicGFzc3dvcmRfdHlwZSIsImRhdGEtbmFtZSI6InBhc3N3b3JkVHlwZSIsb25DaGFuZ2U6dGhpcy5vbklucHV0Q2hhbmdlfSxSZS5jcmVhdGVFbGVtZW50KCJvcHRpb24iLHt2YWx1ZToiYmFzaWMifSwiQXV0aG9yaXphdGlvbiBoZWFkZXIiKSxSZS5jcmVhdGVFbGVtZW50KCJvcHRpb24iLHt2YWx1ZToicmVxdWVzdC1ib2R5In0sIlJlcXVlc3QgYm9keSIpKSkpKSwobGU9PT1pZXx8bGU9PT1ZfHxsZT09PWVlfHxsZT09PVopJiYoIWZlfHxmZSYmdGhpcy5zdGF0ZS5jbGllbnRJZCkmJlJlLmNyZWF0ZUVsZW1lbnQoeCxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjpgY2xpZW50X2lkXyR7bGV9YH0sImNsaWVudF9pZDoiKSxmZT9SZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCIgKioqKioqICIpOlJlLmNyZWF0ZUVsZW1lbnQoQyx7dGFibGV0OjEwLGRlc2t0b3A6MTB9LFJlLmNyZWF0ZUVsZW1lbnQoVix7aWQ6YGNsaWVudF9pZF8ke2xlfWAsdHlwZToidGV4dCIscmVxdWlyZWQ6bGU9PT1aLGluaXRpYWxWYWx1ZTp0aGlzLnN0YXRlLmNsaWVudElkLCJkYXRhLW5hbWUiOiJjbGllbnRJZCIsb25DaGFuZ2U6dGhpcy5vbklucHV0Q2hhbmdlfSkpKSwobGU9PT1pZXx8bGU9PT1lZXx8bGU9PT1aKSYmUmUuY3JlYXRlRWxlbWVudCh4LG51bGwsUmUuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtodG1sRm9yOmBjbGllbnRfc2VjcmV0XyR7bGV9YH0sImNsaWVudF9zZWNyZXQ6IiksZmU/UmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwiICoqKioqKiAiKTpSZS5jcmVhdGVFbGVtZW50KEMse3RhYmxldDoxMCxkZXNrdG9wOjEwfSxSZS5jcmVhdGVFbGVtZW50KFYse2lkOmBjbGllbnRfc2VjcmV0XyR7bGV9YCxpbml0aWFsVmFsdWU6dGhpcy5zdGF0ZS5jbGllbnRTZWNyZXQsdHlwZToicGFzc3dvcmQiLCJkYXRhLW5hbWUiOiJjbGllbnRTZWNyZXQiLG9uQ2hhbmdlOnRoaXMub25JbnB1dENoYW5nZX0pKSksIWZlJiZkZSYmZGUuc2l6ZT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InNjb3BlcyJ9LFJlLmNyZWF0ZUVsZW1lbnQoImgyIixudWxsLCJTY29wZXM6IixSZS5jcmVhdGVFbGVtZW50KCJhIix7b25DbGljazp0aGlzLnNlbGVjdFNjb3BlcywiZGF0YS1hbGwiOiEwfSwic2VsZWN0IGFsbCIpLFJlLmNyZWF0ZUVsZW1lbnQoImEiLHtvbkNsaWNrOnRoaXMuc2VsZWN0U2NvcGVzfSwic2VsZWN0IG5vbmUiKSksZGUubWFwKCgocyxvKT0+UmUuY3JlYXRlRWxlbWVudCh4LHtrZXk6b30sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJjaGVja2JveCJ9LFJlLmNyZWF0ZUVsZW1lbnQodyx7ImRhdGEtdmFsdWUiOm8saWQ6YCR7b30tJHtsZX0tY2hlY2tib3gtJHt0aGlzLnN0YXRlLm5hbWV9YCxkaXNhYmxlZDpmZSxjaGVja2VkOnRoaXMuc3RhdGUuc2NvcGVzLmluY2x1ZGVzKG8pLHR5cGU6ImNoZWNrYm94IixvbkNoYW5nZTp0aGlzLm9uU2NvcGVDaGFuZ2V9KSxSZS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6YCR7b30tJHtsZX0tY2hlY2tib3gtJHt0aGlzLnN0YXRlLm5hbWV9YH0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiaXRlbSJ9KSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InRleHQifSxSZS5jcmVhdGVFbGVtZW50KCJwIix7Y2xhc3NOYW1lOiJuYW1lIn0sbyksUmUuY3JlYXRlRWxlbWVudCgicCIse2NsYXNzTmFtZToiZGVzY3JpcHRpb24ifSxzKSkpKSkpKS50b0FycmF5KCkpOm51bGwseWUudmFsdWVTZXEoKS5tYXAoKChzLG8pPT5SZS5jcmVhdGVFbGVtZW50KEwse2Vycm9yOnMsa2V5Om99KSkpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiYXV0aC1idG4td3JhcHBlciJ9LGJlJiYoZmU/UmUuY3JlYXRlRWxlbWVudChqLHtjbGFzc05hbWU6ImJ0biBtb2RhbC1idG4gYXV0aCBhdXRob3JpemUiLG9uQ2xpY2s6dGhpcy5sb2dvdXQsImFyaWEtbGFiZWwiOiJSZW1vdmUgYXV0aG9yaXphdGlvbiJ9LCJMb2dvdXQiKTpSZS5jcmVhdGVFbGVtZW50KGose2NsYXNzTmFtZToiYnRuIG1vZGFsLWJ0biBhdXRoIGF1dGhvcml6ZSIsb25DbGljazp0aGlzLmF1dGhvcml6ZSwiYXJpYS1sYWJlbCI6IkFwcGx5IGdpdmVuIE9BdXRoMiBjcmVkZW50aWFscyJ9LCJBdXRob3JpemUiKSksUmUuY3JlYXRlRWxlbWVudChqLHtjbGFzc05hbWU6ImJ0biBtb2RhbC1idG4gYXV0aCBidG4tZG9uZSIsb25DbGljazp0aGlzLmNsb3NlfSwiQ2xvc2UiKSkpfX1jbGFzcyBDbGVhciBleHRlbmRzIFJlLkNvbXBvbmVudHtvbkNsaWNrPSgpPT57bGV0e3NwZWNBY3Rpb25zOnMscGF0aDpvLG1ldGhvZDppfT10aGlzLnByb3BzO3MuY2xlYXJSZXNwb25zZShvLGkpLHMuY2xlYXJSZXF1ZXN0KG8saSl9O3JlbmRlcigpe3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtjbGFzc05hbWU6ImJ0biBidG4tY2xlYXIgb3BibG9jay1jb250cm9sX19idG4iLG9uQ2xpY2s6dGhpcy5vbkNsaWNrfSwiQ2xlYXIiKX19Y29uc3QgbGl2ZV9yZXNwb25zZV9IZWFkZXJzPSh7aGVhZGVyczpzfSk9PlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJoNSIsbnVsbCwiUmVzcG9uc2UgaGVhZGVycyIpLFJlLmNyZWF0ZUVsZW1lbnQoInByZSIse2NsYXNzTmFtZToibWljcm9saWdodCJ9LHMpKSxEdXJhdGlvbj0oe2R1cmF0aW9uOnN9KT0+UmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImg1IixudWxsLCJSZXF1ZXN0IGR1cmF0aW9uIiksUmUuY3JlYXRlRWxlbWVudCgicHJlIix7Y2xhc3NOYW1lOiJtaWNyb2xpZ2h0In0scywiIG1zIikpO2NsYXNzIExpdmVSZXNwb25zZSBleHRlbmRzIFJlLkNvbXBvbmVudHtzaG91bGRDb21wb25lbnRVcGRhdGUocyl7cmV0dXJuIHRoaXMucHJvcHMucmVzcG9uc2UhPT1zLnJlc3BvbnNlfHx0aGlzLnByb3BzLnBhdGghPT1zLnBhdGh8fHRoaXMucHJvcHMubWV0aG9kIT09cy5tZXRob2R8fHRoaXMucHJvcHMuZGlzcGxheVJlcXVlc3REdXJhdGlvbiE9PXMuZGlzcGxheVJlcXVlc3REdXJhdGlvbn1yZW5kZXIoKXtjb25zdHtyZXNwb25zZTpzLGdldENvbXBvbmVudDpvLGdldENvbmZpZ3M6aSxkaXNwbGF5UmVxdWVzdER1cmF0aW9uOmEsc3BlY1NlbGVjdG9yczp1LHBhdGg6XyxtZXRob2Q6d309dGhpcy5wcm9wcyx7c2hvd011dGF0ZWRSZXF1ZXN0OngscmVxdWVzdFNuaXBwZXRzRW5hYmxlZDpDfT1pKCksaj14P3UubXV0YXRlZFJlcXVlc3RGb3IoXyx3KTp1LnJlcXVlc3RGb3IoXyx3KSxMPXMuZ2V0KCJzdGF0dXMiKSxCPWouZ2V0KCJ1cmwiKSwkPXMuZ2V0KCJoZWFkZXJzIikudG9KUygpLFY9cy5nZXQoIm5vdERvY3VtZW50ZWQiKSxVPXMuZ2V0KCJlcnJvciIpLHo9cy5nZXQoInRleHQiKSxZPXMuZ2V0KCJkdXJhdGlvbiIpLFo9T2JqZWN0LmtleXMoJCksZWU9JFsiY29udGVudC10eXBlIl18fCRbIkNvbnRlbnQtVHlwZSJdLGllPW8oInJlc3BvbnNlQm9keSIpLGFlPVoubWFwKChzPT57dmFyIG89QXJyYXkuaXNBcnJheSgkW3NdKT8kW3NdLmpvaW4oKTokW3NdO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJoZWFkZXJsaW5lIixrZXk6c30sIiAiLHMsIjogIixvLCIgIil9KSksY2U9MCE9PWFlLmxlbmd0aCxsZT1vKCJNYXJrZG93biIsITApLHBlPW8oIlJlcXVlc3RTbmlwcGV0cyIsITApLGRlPW8oImN1cmwiLCEwKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLGomJkM/UmUuY3JlYXRlRWxlbWVudChwZSx7cmVxdWVzdDpqfSk6UmUuY3JlYXRlRWxlbWVudChkZSx7cmVxdWVzdDpqfSksQiYmUmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicmVxdWVzdC11cmwifSxSZS5jcmVhdGVFbGVtZW50KCJoNCIsbnVsbCwiUmVxdWVzdCBVUkwiKSxSZS5jcmVhdGVFbGVtZW50KCJwcmUiLHtjbGFzc05hbWU6Im1pY3JvbGlnaHQifSxCKSkpLFJlLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLCJTZXJ2ZXIgcmVzcG9uc2UiKSxSZS5jcmVhdGVFbGVtZW50KCJ0YWJsZSIse2NsYXNzTmFtZToicmVzcG9uc2VzLXRhYmxlIGxpdmUtcmVzcG9uc2VzLXRhYmxlIn0sUmUuY3JlYXRlRWxlbWVudCgidGhlYWQiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgidHIiLHtjbGFzc05hbWU6InJlc3BvbnNlcy1oZWFkZXIifSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToiY29sX2hlYWRlciByZXNwb25zZS1jb2xfc3RhdHVzIn0sIkNvZGUiKSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToiY29sX2hlYWRlciByZXNwb25zZS1jb2xfZGVzY3JpcHRpb24ifSwiRGV0YWlscyIpKSksUmUuY3JlYXRlRWxlbWVudCgidGJvZHkiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgidHIiLHtjbGFzc05hbWU6InJlc3BvbnNlIn0sUmUuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6InJlc3BvbnNlLWNvbF9zdGF0dXMifSxMLFY/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJyZXNwb25zZS11bmRvY3VtZW50ZWQifSxSZS5jcmVhdGVFbGVtZW50KCJpIixudWxsLCIgVW5kb2N1bWVudGVkICIpKTpudWxsKSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToicmVzcG9uc2UtY29sX2Rlc2NyaXB0aW9uIn0sVT9SZS5jcmVhdGVFbGVtZW50KGxlLHtzb3VyY2U6YCR7IiIhPT1zLmdldCgibmFtZSIpP2Ake3MuZ2V0KCJuYW1lIil9OiBgOiIifSR7cy5nZXQoIm1lc3NhZ2UiKX1gfSk6bnVsbCx6P1JlLmNyZWF0ZUVsZW1lbnQoaWUse2NvbnRlbnQ6eixjb250ZW50VHlwZTplZSx1cmw6QixoZWFkZXJzOiQsZ2V0Q29uZmlnczppLGdldENvbXBvbmVudDpvfSk6bnVsbCxjZT9SZS5jcmVhdGVFbGVtZW50KGxpdmVfcmVzcG9uc2VfSGVhZGVycyx7aGVhZGVyczphZX0pOm51bGwsYSYmWT9SZS5jcmVhdGVFbGVtZW50KER1cmF0aW9uLHtkdXJhdGlvbjpZfSk6bnVsbCkpKSkpfX1jbGFzcyBPbmxpbmVWYWxpZGF0b3JCYWRnZSBleHRlbmRzIFJlLkNvbXBvbmVudHtjb25zdHJ1Y3RvcihzLG8pe3N1cGVyKHMsbyk7bGV0e2dldENvbmZpZ3M6aX09cyx7dmFsaWRhdG9yVXJsOmF9PWkoKTt0aGlzLnN0YXRlPXt1cmw6dGhpcy5nZXREZWZpbml0aW9uVXJsKCksdmFsaWRhdG9yVXJsOnZvaWQgMD09PWE/Imh0dHBzOi8vdmFsaWRhdG9yLnN3YWdnZXIuaW8vdmFsaWRhdG9yIjphfX1nZXREZWZpbml0aW9uVXJsPSgpPT57bGV0e3NwZWNTZWxlY3RvcnM6c309dGhpcy5wcm9wcztyZXR1cm4gbmV3KE50KCkpKHMudXJsKCksbHQubG9jYXRpb24pLnRvU3RyaW5nKCl9O1VOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHMpe2xldHtnZXRDb25maWdzOm99PXMse3ZhbGlkYXRvclVybDppfT1vKCk7dGhpcy5zZXRTdGF0ZSh7dXJsOnRoaXMuZ2V0RGVmaW5pdGlvblVybCgpLHZhbGlkYXRvclVybDp2b2lkIDA9PT1pPyJodHRwczovL3ZhbGlkYXRvci5zd2FnZ2VyLmlvL3ZhbGlkYXRvciI6aX0pfXJlbmRlcigpe2xldHtnZXRDb25maWdzOnN9PXRoaXMucHJvcHMse3NwZWM6b309cygpLGk9c2FuaXRpemVVcmwodGhpcy5zdGF0ZS52YWxpZGF0b3JVcmwpO3JldHVybiJvYmplY3QiPT10eXBlb2YgbyYmT2JqZWN0LmtleXMobykubGVuZ3RoP251bGw6dGhpcy5zdGF0ZS51cmwmJnJlcXVpcmVzVmFsaWRhdGlvblVSTCh0aGlzLnN0YXRlLnZhbGlkYXRvclVybCkmJnJlcXVpcmVzVmFsaWRhdGlvblVSTCh0aGlzLnN0YXRlLnVybCk/UmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiZmxvYXQtcmlnaHQifSxSZS5jcmVhdGVFbGVtZW50KCJhIix7dGFyZ2V0OiJfYmxhbmsiLHJlbDoibm9vcGVuZXIgbm9yZWZlcnJlciIsaHJlZjpgJHtpfS9kZWJ1Zz91cmw9JHtlbmNvZGVVUklDb21wb25lbnQodGhpcy5zdGF0ZS51cmwpfWB9LFJlLmNyZWF0ZUVsZW1lbnQoVmFsaWRhdG9ySW1hZ2Use3NyYzpgJHtpfT91cmw9JHtlbmNvZGVVUklDb21wb25lbnQodGhpcy5zdGF0ZS51cmwpfWAsYWx0OiJPbmxpbmUgdmFsaWRhdG9yIGJhZGdlIn0pKSk6bnVsbH19Y2xhc3MgVmFsaWRhdG9ySW1hZ2UgZXh0ZW5kcyBSZS5Db21wb25lbnR7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5zdGF0ZT17bG9hZGVkOiExLGVycm9yOiExfX1jb21wb25lbnREaWRNb3VudCgpe2NvbnN0IHM9bmV3IEltYWdlO3Mub25sb2FkPSgpPT57dGhpcy5zZXRTdGF0ZSh7bG9hZGVkOiEwfSl9LHMub25lcnJvcj0oKT0+e3RoaXMuc2V0U3RhdGUoe2Vycm9yOiEwfSl9LHMuc3JjPXRoaXMucHJvcHMuc3JjfVVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHMpe2lmKHMuc3JjIT09dGhpcy5wcm9wcy5zcmMpe2NvbnN0IG89bmV3IEltYWdlO28ub25sb2FkPSgpPT57dGhpcy5zZXRTdGF0ZSh7bG9hZGVkOiEwfSl9LG8ub25lcnJvcj0oKT0+e3RoaXMuc2V0U3RhdGUoe2Vycm9yOiEwfSl9LG8uc3JjPXMuc3JjfX1yZW5kZXIoKXtyZXR1cm4gdGhpcy5zdGF0ZS5lcnJvcj9SZS5jcmVhdGVFbGVtZW50KCJpbWciLHthbHQ6IkVycm9yIn0pOnRoaXMuc3RhdGUubG9hZGVkP1JlLmNyZWF0ZUVsZW1lbnQoImltZyIse3NyYzp0aGlzLnByb3BzLnNyYyxhbHQ6dGhpcy5wcm9wcy5hbHR9KTpudWxsfX1jbGFzcyBPcGVyYXRpb25zIGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe2xldHtzcGVjU2VsZWN0b3JzOnN9PXRoaXMucHJvcHM7Y29uc3Qgbz1zLnRhZ2dlZE9wZXJhdGlvbnMoKTtyZXR1cm4gMD09PW8uc2l6ZT9SZS5jcmVhdGVFbGVtZW50KCJoMyIsbnVsbCwiIE5vIG9wZXJhdGlvbnMgZGVmaW5lZCBpbiBzcGVjISIpOlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxvLm1hcCh0aGlzLnJlbmRlck9wZXJhdGlvblRhZykudG9BcnJheSgpLG8uc2l6ZTwxP1JlLmNyZWF0ZUVsZW1lbnQoImgzIixudWxsLCIgTm8gb3BlcmF0aW9ucyBkZWZpbmVkIGluIHNwZWMhICIpOm51bGwpfXJlbmRlck9wZXJhdGlvblRhZz0ocyxvKT0+e2NvbnN0e3NwZWNTZWxlY3RvcnM6aSxnZXRDb21wb25lbnQ6YSxvYXMzU2VsZWN0b3JzOnUsbGF5b3V0U2VsZWN0b3JzOl8sbGF5b3V0QWN0aW9uczp3LGdldENvbmZpZ3M6eH09dGhpcy5wcm9wcyxDPWkudmFsaWRPcGVyYXRpb25NZXRob2RzKCksaj1hKCJPcGVyYXRpb25Db250YWluZXIiLCEwKSxMPWEoIk9wZXJhdGlvblRhZyIpLEI9cy5nZXQoIm9wZXJhdGlvbnMiKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChMLHtrZXk6Im9wZXJhdGlvbi0iK28sdGFnT2JqOnMsdGFnOm8sb2FzM1NlbGVjdG9yczp1LGxheW91dFNlbGVjdG9yczpfLGxheW91dEFjdGlvbnM6dyxnZXRDb25maWdzOngsZ2V0Q29tcG9uZW50OmEsc3BlY1VybDppLnVybCgpfSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wZXJhdGlvbi10YWctY29udGVudCJ9LEIubWFwKChzPT57Y29uc3QgaT1zLmdldCgicGF0aCIpLGE9cy5nZXQoIm1ldGhvZCIpLHU9V2UoKS5MaXN0KFsicGF0aHMiLGksYV0pO3JldHVybi0xPT09Qy5pbmRleE9mKGEpP251bGw6UmUuY3JlYXRlRWxlbWVudChqLHtrZXk6YCR7aX0tJHthfWAsc3BlY1BhdGg6dSxvcDpzLHBhdGg6aSxtZXRob2Q6YSx0YWc6b30pfSkpLnRvQXJyYXkoKSkpfX1jbGFzcyBPcGVyYXRpb25UYWcgZXh0ZW5kcyBSZS5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17dGFnT2JqOldlKCkuZnJvbUpTKHt9KSx0YWc6IiJ9O3JlbmRlcigpe2NvbnN0e3RhZ09iajpzLHRhZzpvLGNoaWxkcmVuOmksb2FzM1NlbGVjdG9yczphLGxheW91dFNlbGVjdG9yczp1LGxheW91dEFjdGlvbnM6XyxnZXRDb25maWdzOncsZ2V0Q29tcG9uZW50Ongsc3BlY1VybDpDfT10aGlzLnByb3BzO2xldHtkb2NFeHBhbnNpb246aixkZWVwTGlua2luZzpMfT13KCk7Y29uc3QgQj14KCJDb2xsYXBzZSIpLCQ9eCgiTWFya2Rvd24iLCEwKSxWPXgoIkRlZXBMaW5rIiksVT14KCJMaW5rIiksej14KCJBcnJvd1VwSWNvbiIpLFk9eCgiQXJyb3dEb3duSWNvbiIpO2xldCBaLGVlPXMuZ2V0SW4oWyJ0YWdEZXRhaWxzIiwiZGVzY3JpcHRpb24iXSxudWxsKSxpZT1zLmdldEluKFsidGFnRGV0YWlscyIsImV4dGVybmFsRG9jcyIsImRlc2NyaXB0aW9uIl0pLGFlPXMuZ2V0SW4oWyJ0YWdEZXRhaWxzIiwiZXh0ZXJuYWxEb2NzIiwidXJsIl0pO1o9aXNGdW5jKGEpJiZpc0Z1bmMoYS5zZWxlY3RlZFNlcnZlcik/c2FmZUJ1aWxkVXJsKGFlLEMse3NlbGVjdGVkU2VydmVyOmEuc2VsZWN0ZWRTZXJ2ZXIoKX0pOmFlO2xldCBjZT1bIm9wZXJhdGlvbnMtdGFnIixvXSxsZT11LmlzU2hvd24oY2UsImZ1bGwiPT09anx8Imxpc3QiPT09aik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsZT8ib3BibG9jay10YWctc2VjdGlvbiBpcy1vcGVuIjoib3BibG9jay10YWctc2VjdGlvbiJ9LFJlLmNyZWF0ZUVsZW1lbnQoImgzIix7b25DbGljazooKT0+Xy5zaG93KGNlLCFsZSksY2xhc3NOYW1lOmVlPyJvcGJsb2NrLXRhZyI6Im9wYmxvY2stdGFnIG5vLWRlc2MiLGlkOmNlLm1hcCgocz0+ZXNjYXBlRGVlcExpbmtQYXRoKHMpKSkuam9pbigiLSIpLCJkYXRhLXRhZyI6bywiZGF0YS1pcy1vcGVuIjpsZX0sUmUuY3JlYXRlRWxlbWVudChWLHtlbmFibGVkOkwsaXNTaG93bjpsZSxwYXRoOmNyZWF0ZURlZXBMaW5rUGF0aChvKSx0ZXh0Om99KSxlZT9SZS5jcmVhdGVFbGVtZW50KCJzbWFsbCIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCQse3NvdXJjZTplZX0pKTpSZS5jcmVhdGVFbGVtZW50KCJzbWFsbCIsbnVsbCksWj9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm9fX2V4dGVybmFsZG9jcyJ9LFJlLmNyZWF0ZUVsZW1lbnQoInNtYWxsIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoVSx7aHJlZjpzYW5pdGl6ZVVybChaKSxvbkNsaWNrOnM9PnMuc3RvcFByb3BhZ2F0aW9uKCksdGFyZ2V0OiJfYmxhbmsifSxpZXx8WikpKTpudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIseyJhcmlhLWV4cGFuZGVkIjpsZSxjbGFzc05hbWU6ImV4cGFuZC1vcGVyYXRpb24iLHRpdGxlOmxlPyJDb2xsYXBzZSBvcGVyYXRpb24iOiJFeHBhbmQgb3BlcmF0aW9uIixvbkNsaWNrOigpPT5fLnNob3coY2UsIWxlKX0sbGU/UmUuY3JlYXRlRWxlbWVudCh6LHtjbGFzc05hbWU6ImFycm93In0pOlJlLmNyZWF0ZUVsZW1lbnQoWSx7Y2xhc3NOYW1lOiJhcnJvdyJ9KSkpLFJlLmNyZWF0ZUVsZW1lbnQoQix7aXNPcGVuZWQ6bGV9LGkpKX19Y2xhc3Mgb3BlcmF0aW9uX09wZXJhdGlvbiBleHRlbmRzIFJlLlB1cmVDb21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17b3BlcmF0aW9uOm51bGwscmVzcG9uc2U6bnVsbCxyZXF1ZXN0Om51bGwsc3BlY1BhdGg6KDAsemUuTGlzdCkoKSxzdW1tYXJ5OiIifTtyZW5kZXIoKXtsZXR7c3BlY1BhdGg6cyxyZXNwb25zZTpvLHJlcXVlc3Q6aSx0b2dnbGVTaG93bjphLG9uVHJ5b3V0Q2xpY2s6dSxvblJlc2V0Q2xpY2s6XyxvbkNhbmNlbENsaWNrOncsb25FeGVjdXRlOngsZm46QyxnZXRDb21wb25lbnQ6aixnZXRDb25maWdzOkwsc3BlY0FjdGlvbnM6QixzcGVjU2VsZWN0b3JzOiQsYXV0aEFjdGlvbnM6VixhdXRoU2VsZWN0b3JzOlUsb2FzM0FjdGlvbnM6eixvYXMzU2VsZWN0b3JzOll9PXRoaXMucHJvcHMsWj10aGlzLnByb3BzLm9wZXJhdGlvbix7ZGVwcmVjYXRlZDplZSxpc1Nob3duOmllLHBhdGg6YWUsbWV0aG9kOmNlLG9wOmxlLHRhZzpwZSxvcGVyYXRpb25JZDpkZSxhbGxvd1RyeUl0T3V0OmZlLGRpc3BsYXlSZXF1ZXN0RHVyYXRpb246eWUsdHJ5SXRPdXRFbmFibGVkOmJlLGV4ZWN1dGVJblByb2dyZXNzOl9lfT1aLnRvSlMoKSx7ZGVzY3JpcHRpb246U2UsZXh0ZXJuYWxEb2NzOndlLHNjaGVtZXM6eGV9PWxlO2NvbnN0IFBlPXdlP3NhZmVCdWlsZFVybCh3ZS51cmwsJC51cmwoKSx7c2VsZWN0ZWRTZXJ2ZXI6WS5zZWxlY3RlZFNlcnZlcigpfSk6IiI7bGV0IFRlPVouZ2V0SW4oWyJvcCJdKSwkZT1UZS5nZXQoInJlc3BvbnNlcyIpLHFlPWZ1bmN0aW9uIGdldExpc3QocyxvKXtpZighV2UoKS5JdGVyYWJsZS5pc0l0ZXJhYmxlKHMpKXJldHVybiBXZSgpLkxpc3QoKTtsZXQgaT1zLmdldEluKEFycmF5LmlzQXJyYXkobyk/bzpbb10pO3JldHVybiBXZSgpLkxpc3QuaXNMaXN0KGkpP2k6V2UoKS5MaXN0KCl9KFRlLFsicGFyYW1ldGVycyJdKSx6ZT0kLm9wZXJhdGlvblNjaGVtZShhZSxjZSksSGU9WyJvcGVyYXRpb25zIixwZSxkZV0sWWU9Z2V0RXh0ZW5zaW9ucyhUZSk7Y29uc3QgWGU9aigicmVzcG9uc2VzIiksUWU9aigicGFyYW1ldGVycyIpLGV0PWooImV4ZWN1dGUiKSx0dD1qKCJjbGVhciIpLHJ0PWooIkNvbGxhcHNlIiksbnQ9aigiTWFya2Rvd24iLCEwKSxzdD1qKCJzY2hlbWVzIiksb3Q9aigiT3BlcmF0aW9uU2VydmVycyIpLGl0PWooIk9wZXJhdGlvbkV4dCIpLGF0PWooIk9wZXJhdGlvblN1bW1hcnkiKSxjdD1qKCJMaW5rIikse3Nob3dFeHRlbnNpb25zOmx0fT1MKCk7aWYoJGUmJm8mJm8uc2l6ZT4wKXtsZXQgcz0hJGUuZ2V0KFN0cmluZyhvLmdldCgic3RhdHVzIikpKSYmISRlLmdldCgiZGVmYXVsdCIpO289by5zZXQoIm5vdERvY3VtZW50ZWQiLHMpfWxldCB1dD1bYWUsY2VdO2NvbnN0IHB0PSQudmFsaWRhdGlvbkVycm9ycyhbYWUsY2VdKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmVlPyJvcGJsb2NrIG9wYmxvY2stZGVwcmVjYXRlZCI6aWU/YG9wYmxvY2sgb3BibG9jay0ke2NlfSBpcy1vcGVuYDpgb3BibG9jayBvcGJsb2NrLSR7Y2V9YCxpZDplc2NhcGVEZWVwTGlua1BhdGgoSGUuam9pbigiLSIpKX0sUmUuY3JlYXRlRWxlbWVudChhdCx7b3BlcmF0aW9uUHJvcHM6Wixpc1Nob3duOmllLHRvZ2dsZVNob3duOmEsZ2V0Q29tcG9uZW50OmosYXV0aEFjdGlvbnM6VixhdXRoU2VsZWN0b3JzOlUsc3BlY1BhdGg6c30pLFJlLmNyZWF0ZUVsZW1lbnQocnQse2lzT3BlbmVkOmllfSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stYm9keSJ9LFRlJiZUZS5zaXplfHxudWxsPT09VGU/bnVsbDpSZS5jcmVhdGVFbGVtZW50KHJvbGxpbmdfbG9hZCx7aGVpZ2h0OiIzMnB4Iix3aWR0aDoiMzJweCIsY2xhc3NOYW1lOiJvcGJsb2NrLWxvYWRpbmctYW5pbWF0aW9uIn0pLGVlJiZSZS5jcmVhdGVFbGVtZW50KCJoNCIse2NsYXNzTmFtZToib3BibG9jay10aXRsZV9ub3JtYWwifSwiIFdhcm5pbmc6IERlcHJlY2F0ZWQiKSxTZSYmUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLWRlc2NyaXB0aW9uLXdyYXBwZXIifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stZGVzY3JpcHRpb24ifSxSZS5jcmVhdGVFbGVtZW50KG50LHtzb3VyY2U6U2V9KSkpLFBlP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1leHRlcm5hbC1kb2NzLXdyYXBwZXIifSxSZS5jcmVhdGVFbGVtZW50KCJoNCIse2NsYXNzTmFtZToib3BibG9jay10aXRsZV9ub3JtYWwifSwiRmluZCBtb3JlIGRldGFpbHMiKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stZXh0ZXJuYWwtZG9jcyJ9LHdlLmRlc2NyaXB0aW9uJiZSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJvcGJsb2NrLWV4dGVybmFsLWRvY3NfX2Rlc2NyaXB0aW9uIn0sUmUuY3JlYXRlRWxlbWVudChudCx7c291cmNlOndlLmRlc2NyaXB0aW9ufSkpLFJlLmNyZWF0ZUVsZW1lbnQoY3Qse3RhcmdldDoiX2JsYW5rIixjbGFzc05hbWU6Im9wYmxvY2stZXh0ZXJuYWwtZG9jc19fbGluayIsaHJlZjpzYW5pdGl6ZVVybChQZSl9LFBlKSkpOm51bGwsVGUmJlRlLnNpemU/UmUuY3JlYXRlRWxlbWVudChRZSx7cGFyYW1ldGVyczpxZSxzcGVjUGF0aDpzLnB1c2goInBhcmFtZXRlcnMiKSxvcGVyYXRpb246VGUsb25DaGFuZ2VLZXk6dXQsb25UcnlvdXRDbGljazp1LG9uUmVzZXRDbGljazpfLG9uQ2FuY2VsQ2xpY2s6dyx0cnlJdE91dEVuYWJsZWQ6YmUsYWxsb3dUcnlJdE91dDpmZSxmbjpDLGdldENvbXBvbmVudDpqLHNwZWNBY3Rpb25zOkIsc3BlY1NlbGVjdG9yczokLHBhdGhNZXRob2Q6W2FlLGNlXSxnZXRDb25maWdzOkwsb2FzM0FjdGlvbnM6eixvYXMzU2VsZWN0b3JzOll9KTpudWxsLGJlP1JlLmNyZWF0ZUVsZW1lbnQob3Qse2dldENvbXBvbmVudDpqLHBhdGg6YWUsbWV0aG9kOmNlLG9wZXJhdGlvblNlcnZlcnM6VGUuZ2V0KCJzZXJ2ZXJzIikscGF0aFNlcnZlcnM6JC5wYXRocygpLmdldEluKFthZSwic2VydmVycyJdKSxnZXRTZWxlY3RlZFNlcnZlcjpZLnNlbGVjdGVkU2VydmVyLHNldFNlbGVjdGVkU2VydmVyOnouc2V0U2VsZWN0ZWRTZXJ2ZXIsc2V0U2VydmVyVmFyaWFibGVWYWx1ZTp6LnNldFNlcnZlclZhcmlhYmxlVmFsdWUsZ2V0U2VydmVyVmFyaWFibGU6WS5zZXJ2ZXJWYXJpYWJsZVZhbHVlLGdldEVmZmVjdGl2ZVNlcnZlclZhbHVlOlkuc2VydmVyRWZmZWN0aXZlVmFsdWV9KTpudWxsLGJlJiZmZSYmeGUmJnhlLnNpemU/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXNjaGVtZXMifSxSZS5jcmVhdGVFbGVtZW50KHN0LHtzY2hlbWVzOnhlLHBhdGg6YWUsbWV0aG9kOmNlLHNwZWNBY3Rpb25zOkIsY3VycmVudFNjaGVtZTp6ZX0pKTpudWxsLCFiZXx8IWZlfHxwdC5sZW5ndGg8PTA/bnVsbDpSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InZhbGlkYXRpb24tZXJyb3JzIGVycm9ycy13cmFwcGVyIn0sIlBsZWFzZSBjb3JyZWN0IHRoZSBmb2xsb3dpbmcgdmFsaWRhdGlvbiBlcnJvcnMgYW5kIHRyeSBhZ2Fpbi4iLFJlLmNyZWF0ZUVsZW1lbnQoInVsIixudWxsLHB0Lm1hcCgoKHMsbyk9PlJlLmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5Om99LCIgIixzLCIgIikpKSkpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpiZSYmbyYmZmU/ImJ0bi1ncm91cCI6ImV4ZWN1dGUtd3JhcHBlciJ9LGJlJiZmZT9SZS5jcmVhdGVFbGVtZW50KGV0LHtvcGVyYXRpb246VGUsc3BlY0FjdGlvbnM6QixzcGVjU2VsZWN0b3JzOiQsb2FzM1NlbGVjdG9yczpZLG9hczNBY3Rpb25zOnoscGF0aDphZSxtZXRob2Q6Y2Usb25FeGVjdXRlOngsZGlzYWJsZWQ6X2V9KTpudWxsLGJlJiZvJiZmZT9SZS5jcmVhdGVFbGVtZW50KHR0LHtzcGVjQWN0aW9uczpCLHBhdGg6YWUsbWV0aG9kOmNlfSk6bnVsbCksX2U/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJsb2FkaW5nLWNvbnRhaW5lciJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibG9hZGluZyJ9KSk6bnVsbCwkZT9SZS5jcmVhdGVFbGVtZW50KFhlLHtyZXNwb25zZXM6JGUscmVxdWVzdDppLHRyeUl0T3V0UmVzcG9uc2U6byxnZXRDb21wb25lbnQ6aixnZXRDb25maWdzOkwsc3BlY1NlbGVjdG9yczokLG9hczNBY3Rpb25zOnosb2FzM1NlbGVjdG9yczpZLHNwZWNBY3Rpb25zOkIscHJvZHVjZXM6JC5wcm9kdWNlc09wdGlvbnNGb3IoW2FlLGNlXSkscHJvZHVjZXNWYWx1ZTokLmN1cnJlbnRQcm9kdWNlc0ZvcihbYWUsY2VdKSxzcGVjUGF0aDpzLnB1c2goInJlc3BvbnNlcyIpLHBhdGg6YWUsbWV0aG9kOmNlLGRpc3BsYXlSZXF1ZXN0RHVyYXRpb246eWUsZm46Q30pOm51bGwsbHQmJlllLnNpemU/UmUuY3JlYXRlRWxlbWVudChpdCx7ZXh0ZW5zaW9uczpZZSxnZXRDb21wb25lbnQ6an0pOm51bGwpKSl9fWNsYXNzIE9wZXJhdGlvbkNvbnRhaW5lciBleHRlbmRzIFJlLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IocyxvKXtzdXBlcihzLG8pO2NvbnN0e3RyeUl0T3V0RW5hYmxlZDppfT1zLmdldENvbmZpZ3MoKTt0aGlzLnN0YXRlPXt0cnlJdE91dEVuYWJsZWQ6aSxleGVjdXRlSW5Qcm9ncmVzczohMX19c3RhdGljIGRlZmF1bHRQcm9wcz17c2hvd1N1bW1hcnk6ITAscmVzcG9uc2U6bnVsbCxhbGxvd1RyeUl0T3V0OiEwLGRpc3BsYXlPcGVyYXRpb25JZDohMSxkaXNwbGF5UmVxdWVzdER1cmF0aW9uOiExfTttYXBTdGF0ZVRvUHJvcHMocyxvKXtjb25zdHtvcDppLGxheW91dFNlbGVjdG9yczphLGdldENvbmZpZ3M6dX09byx7ZG9jRXhwYW5zaW9uOl8sZGVlcExpbmtpbmc6dyxkaXNwbGF5T3BlcmF0aW9uSWQ6eCxkaXNwbGF5UmVxdWVzdER1cmF0aW9uOkMsc3VwcG9ydGVkU3VibWl0TWV0aG9kczpqfT11KCksTD1hLnNob3dTdW1tYXJ5KCksQj1pLmdldEluKFsib3BlcmF0aW9uIiwiX19vcmlnaW5hbE9wZXJhdGlvbklkIl0pfHxpLmdldEluKFsib3BlcmF0aW9uIiwib3BlcmF0aW9uSWQiXSl8fG9wSWQoaS5nZXQoIm9wZXJhdGlvbiIpLG8ucGF0aCxvLm1ldGhvZCl8fGkuZ2V0KCJpZCIpLCQ9WyJvcGVyYXRpb25zIixvLnRhZyxCXSxWPWouaW5kZXhPZihvLm1ldGhvZCk+PTAmJih2b2lkIDA9PT1vLmFsbG93VHJ5SXRPdXQ/by5zcGVjU2VsZWN0b3JzLmFsbG93VHJ5SXRPdXRGb3Ioby5wYXRoLG8ubWV0aG9kKTpvLmFsbG93VHJ5SXRPdXQpLFU9aS5nZXRJbihbIm9wZXJhdGlvbiIsInNlY3VyaXR5Il0pfHxvLnNwZWNTZWxlY3RvcnMuc2VjdXJpdHkoKTtyZXR1cm57b3BlcmF0aW9uSWQ6Qixpc0RlZXBMaW5raW5nRW5hYmxlZDp3LHNob3dTdW1tYXJ5OkwsZGlzcGxheU9wZXJhdGlvbklkOngsZGlzcGxheVJlcXVlc3REdXJhdGlvbjpDLGFsbG93VHJ5SXRPdXQ6VixzZWN1cml0eTpVLGlzQXV0aG9yaXplZDpvLmF1dGhTZWxlY3RvcnMuaXNBdXRob3JpemVkKFUpLGlzU2hvd246YS5pc1Nob3duKCQsImZ1bGwiPT09XyksanVtcFRvS2V5OmBwYXRocy4ke28ucGF0aH0uJHtvLm1ldGhvZH1gLHJlc3BvbnNlOm8uc3BlY1NlbGVjdG9ycy5yZXNwb25zZUZvcihvLnBhdGgsby5tZXRob2QpLHJlcXVlc3Q6by5zcGVjU2VsZWN0b3JzLnJlcXVlc3RGb3Ioby5wYXRoLG8ubWV0aG9kKX19Y29tcG9uZW50RGlkTW91bnQoKXtjb25zdHtpc1Nob3duOnN9PXRoaXMucHJvcHMsbz10aGlzLmdldFJlc29sdmVkU3VidHJlZSgpO3MmJnZvaWQgMD09PW8mJnRoaXMucmVxdWVzdFJlc29sdmVkU3VidHJlZSgpfVVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHMpe2NvbnN0e3Jlc3BvbnNlOm8saXNTaG93bjppfT1zLGE9dGhpcy5nZXRSZXNvbHZlZFN1YnRyZWUoKTtvIT09dGhpcy5wcm9wcy5yZXNwb25zZSYmdGhpcy5zZXRTdGF0ZSh7ZXhlY3V0ZUluUHJvZ3Jlc3M6ITF9KSxpJiZ2b2lkIDA9PT1hJiZ0aGlzLnJlcXVlc3RSZXNvbHZlZFN1YnRyZWUoKX10b2dnbGVTaG93bj0oKT0+e2xldHtsYXlvdXRBY3Rpb25zOnMsdGFnOm8sb3BlcmF0aW9uSWQ6aSxpc1Nob3duOmF9PXRoaXMucHJvcHM7Y29uc3QgdT10aGlzLmdldFJlc29sdmVkU3VidHJlZSgpO2F8fHZvaWQgMCE9PXV8fHRoaXMucmVxdWVzdFJlc29sdmVkU3VidHJlZSgpLHMuc2hvdyhbIm9wZXJhdGlvbnMiLG8saV0sIWEpfTtvbkNhbmNlbENsaWNrPSgpPT57dGhpcy5zZXRTdGF0ZSh7dHJ5SXRPdXRFbmFibGVkOiF0aGlzLnN0YXRlLnRyeUl0T3V0RW5hYmxlZH0pfTtvblRyeW91dENsaWNrPSgpPT57dGhpcy5zZXRTdGF0ZSh7dHJ5SXRPdXRFbmFibGVkOiF0aGlzLnN0YXRlLnRyeUl0T3V0RW5hYmxlZH0pfTtvblJlc2V0Q2xpY2s9cz0+e2NvbnN0IG89dGhpcy5wcm9wcy5vYXMzU2VsZWN0b3JzLnNlbGVjdERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlKC4uLnMpO3RoaXMucHJvcHMub2FzM0FjdGlvbnMuc2V0UmVxdWVzdEJvZHlWYWx1ZSh7dmFsdWU6byxwYXRoTWV0aG9kOnN9KX07b25FeGVjdXRlPSgpPT57dGhpcy5zZXRTdGF0ZSh7ZXhlY3V0ZUluUHJvZ3Jlc3M6ITB9KX07Z2V0UmVzb2x2ZWRTdWJ0cmVlPSgpPT57Y29uc3R7c3BlY1NlbGVjdG9yczpzLHBhdGg6byxtZXRob2Q6aSxzcGVjUGF0aDphfT10aGlzLnByb3BzO3JldHVybiBhP3Muc3BlY1Jlc29sdmVkU3VidHJlZShhLnRvSlMoKSk6cy5zcGVjUmVzb2x2ZWRTdWJ0cmVlKFsicGF0aHMiLG8saV0pfTtyZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlPSgpPT57Y29uc3R7c3BlY0FjdGlvbnM6cyxwYXRoOm8sbWV0aG9kOmksc3BlY1BhdGg6YX09dGhpcy5wcm9wcztyZXR1cm4gYT9zLnJlcXVlc3RSZXNvbHZlZFN1YnRyZWUoYS50b0pTKCkpOnMucmVxdWVzdFJlc29sdmVkU3VidHJlZShbInBhdGhzIixvLGldKX07cmVuZGVyKCl7bGV0e29wOnMsdGFnOm8scGF0aDppLG1ldGhvZDphLHNlY3VyaXR5OnUsaXNBdXRob3JpemVkOl8sb3BlcmF0aW9uSWQ6dyxzaG93U3VtbWFyeTp4LGlzU2hvd246QyxqdW1wVG9LZXk6aixhbGxvd1RyeUl0T3V0OkwscmVzcG9uc2U6QixyZXF1ZXN0OiQsZGlzcGxheU9wZXJhdGlvbklkOlYsZGlzcGxheVJlcXVlc3REdXJhdGlvbjpVLGlzRGVlcExpbmtpbmdFbmFibGVkOnosc3BlY1BhdGg6WSxzcGVjU2VsZWN0b3JzOlosc3BlY0FjdGlvbnM6ZWUsZ2V0Q29tcG9uZW50OmllLGdldENvbmZpZ3M6YWUsbGF5b3V0U2VsZWN0b3JzOmNlLGxheW91dEFjdGlvbnM6bGUsYXV0aEFjdGlvbnM6cGUsYXV0aFNlbGVjdG9yczpkZSxvYXMzQWN0aW9uczpmZSxvYXMzU2VsZWN0b3JzOnllLGZuOmJlfT10aGlzLnByb3BzO2NvbnN0IF9lPWllKCJvcGVyYXRpb24iKSxTZT10aGlzLmdldFJlc29sdmVkU3VidHJlZSgpfHwoMCx6ZS5NYXApKCksd2U9KDAsemUuZnJvbUpTKSh7b3A6U2UsdGFnOm8scGF0aDppLHN1bW1hcnk6cy5nZXRJbihbIm9wZXJhdGlvbiIsInN1bW1hcnkiXSl8fCIiLGRlcHJlY2F0ZWQ6U2UuZ2V0KCJkZXByZWNhdGVkIil8fHMuZ2V0SW4oWyJvcGVyYXRpb24iLCJkZXByZWNhdGVkIl0pfHwhMSxtZXRob2Q6YSxzZWN1cml0eTp1LGlzQXV0aG9yaXplZDpfLG9wZXJhdGlvbklkOncsb3JpZ2luYWxPcGVyYXRpb25JZDpTZS5nZXRJbihbIm9wZXJhdGlvbiIsIl9fb3JpZ2luYWxPcGVyYXRpb25JZCJdKSxzaG93U3VtbWFyeTp4LGlzU2hvd246QyxqdW1wVG9LZXk6aixhbGxvd1RyeUl0T3V0OkwscmVxdWVzdDokLGRpc3BsYXlPcGVyYXRpb25JZDpWLGRpc3BsYXlSZXF1ZXN0RHVyYXRpb246VSxpc0RlZXBMaW5raW5nRW5hYmxlZDp6LGV4ZWN1dGVJblByb2dyZXNzOnRoaXMuc3RhdGUuZXhlY3V0ZUluUHJvZ3Jlc3MsdHJ5SXRPdXRFbmFibGVkOnRoaXMuc3RhdGUudHJ5SXRPdXRFbmFibGVkfSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoX2Use29wZXJhdGlvbjp3ZSxyZXNwb25zZTpCLHJlcXVlc3Q6JCxpc1Nob3duOkMsdG9nZ2xlU2hvd246dGhpcy50b2dnbGVTaG93bixvblRyeW91dENsaWNrOnRoaXMub25UcnlvdXRDbGljayxvblJlc2V0Q2xpY2s6dGhpcy5vblJlc2V0Q2xpY2ssb25DYW5jZWxDbGljazp0aGlzLm9uQ2FuY2VsQ2xpY2ssb25FeGVjdXRlOnRoaXMub25FeGVjdXRlLHNwZWNQYXRoOlksc3BlY0FjdGlvbnM6ZWUsc3BlY1NlbGVjdG9yczpaLG9hczNBY3Rpb25zOmZlLG9hczNTZWxlY3RvcnM6eWUsbGF5b3V0QWN0aW9uczpsZSxsYXlvdXRTZWxlY3RvcnM6Y2UsYXV0aEFjdGlvbnM6cGUsYXV0aFNlbGVjdG9yczpkZSxnZXRDb21wb25lbnQ6aWUsZ2V0Q29uZmlnczphZSxmbjpiZX0pfX12YXIgS089X193ZWJwYWNrX3JlcXVpcmVfXygxMzIyMiksR089X193ZWJwYWNrX3JlcXVpcmVfXy5uKEtPKTtjbGFzcyBPcGVyYXRpb25TdW1tYXJ5IGV4dGVuZHMgUmUuUHVyZUNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXtvcGVyYXRpb25Qcm9wczpudWxsLHNwZWNQYXRoOigwLHplLkxpc3QpKCksc3VtbWFyeToiIn07cmVuZGVyKCl7bGV0e2lzU2hvd246cyx0b2dnbGVTaG93bjpvLGdldENvbXBvbmVudDppLGF1dGhBY3Rpb25zOmEsYXV0aFNlbGVjdG9yczp1LG9wZXJhdGlvblByb3BzOl8sc3BlY1BhdGg6d309dGhpcy5wcm9wcyx7c3VtbWFyeTp4LGlzQXV0aG9yaXplZDpDLG1ldGhvZDpqLG9wOkwsc2hvd1N1bW1hcnk6QixwYXRoOiQsb3BlcmF0aW9uSWQ6VixvcmlnaW5hbE9wZXJhdGlvbklkOlUsZGlzcGxheU9wZXJhdGlvbklkOnp9PV8udG9KUygpLHtzdW1tYXJ5Oll9PUwsWj1fLmdldCgic2VjdXJpdHkiKTtjb25zdCBlZT1pKCJhdXRob3JpemVPcGVyYXRpb25CdG4iLCEwKSxpZT1pKCJPcGVyYXRpb25TdW1tYXJ5TWV0aG9kIiksYWU9aSgiT3BlcmF0aW9uU3VtbWFyeVBhdGgiKSxjZT1pKCJKdW1wVG9QYXRoIiwhMCksbGU9aSgiQ29weVRvQ2xpcGJvYXJkQnRuIiwhMCkscGU9aSgiQXJyb3dVcEljb24iKSxkZT1pKCJBcnJvd0Rvd25JY29uIiksZmU9WiYmISFaLmNvdW50KCkseWU9ZmUmJjE9PT1aLnNpemUmJlouZmlyc3QoKS5pc0VtcHR5KCksYmU9IWZlfHx5ZTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmBvcGJsb2NrLXN1bW1hcnkgb3BibG9jay1zdW1tYXJ5LSR7an1gfSxSZS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHsiYXJpYS1leHBhbmRlZCI6cyxjbGFzc05hbWU6Im9wYmxvY2stc3VtbWFyeS1jb250cm9sIixvbkNsaWNrOm99LFJlLmNyZWF0ZUVsZW1lbnQoaWUse21ldGhvZDpqfSksUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXN1bW1hcnktcGF0aC1kZXNjcmlwdGlvbi13cmFwcGVyIn0sUmUuY3JlYXRlRWxlbWVudChhZSx7Z2V0Q29tcG9uZW50Omksb3BlcmF0aW9uUHJvcHM6XyxzcGVjUGF0aDp3fSksQj9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc3VtbWFyeS1kZXNjcmlwdGlvbiJ9LEdPKCkoWXx8eCkpOm51bGwpLHomJihVfHxWKT9SZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJvcGJsb2NrLXN1bW1hcnktb3BlcmF0aW9uLWlkIn0sVXx8Vik6bnVsbCksUmUuY3JlYXRlRWxlbWVudChsZSx7dGV4dFRvQ29weTpgJHt3LmdldCgxKX1gfSksYmU/bnVsbDpSZS5jcmVhdGVFbGVtZW50KGVlLHtpc0F1dGhvcml6ZWQ6QyxvbkNsaWNrOigpPT57Y29uc3Qgcz11LmRlZmluaXRpb25zRm9yUmVxdWlyZW1lbnRzKFopO2Euc2hvd0RlZmluaXRpb25zKHMpfX0pLFJlLmNyZWF0ZUVsZW1lbnQoY2Use3BhdGg6d30pLFJlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIseyJhcmlhLWxhYmVsIjpgJHtqfSAkeyQucmVwbGFjZSgvXC8vZywi4oCLLyIpfWAsY2xhc3NOYW1lOiJvcGJsb2NrLWNvbnRyb2wtYXJyb3ciLCJhcmlhLWV4cGFuZGVkIjpzLHRhYkluZGV4OiItMSIsb25DbGljazpvfSxzP1JlLmNyZWF0ZUVsZW1lbnQocGUse2NsYXNzTmFtZToiYXJyb3cifSk6UmUuY3JlYXRlRWxlbWVudChkZSx7Y2xhc3NOYW1lOiJhcnJvdyJ9KSkpfX1jbGFzcyBPcGVyYXRpb25TdW1tYXJ5TWV0aG9kIGV4dGVuZHMgUmUuUHVyZUNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXtvcGVyYXRpb25Qcm9wczpudWxsfTtyZW5kZXIoKXtsZXR7bWV0aG9kOnN9PXRoaXMucHJvcHM7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im9wYmxvY2stc3VtbWFyeS1tZXRob2QifSxzLnRvVXBwZXJDYXNlKCkpfX1jbGFzcyBPcGVyYXRpb25TdW1tYXJ5UGF0aCBleHRlbmRzIFJlLlB1cmVDb21wb25lbnR7cmVuZGVyKCl7bGV0e2dldENvbXBvbmVudDpzLG9wZXJhdGlvblByb3BzOm99PXRoaXMucHJvcHMse2RlcHJlY2F0ZWQ6aSxpc1Nob3duOmEscGF0aDp1LHRhZzpfLG9wZXJhdGlvbklkOncsaXNEZWVwTGlua2luZ0VuYWJsZWQ6eH09by50b0pTKCk7Y29uc3QgQz11LnNwbGl0KC8oPz1cLykvZyk7Zm9yKGxldCBzPTE7czxDLmxlbmd0aDtzKz0yKUMuc3BsaWNlKHMsMCxSZS5jcmVhdGVFbGVtZW50KCJ3YnIiLHtrZXk6c30pKTtjb25zdCBqPXMoIkRlZXBMaW5rIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6aT8ib3BibG9jay1zdW1tYXJ5LXBhdGhfX2RlcHJlY2F0ZWQiOiJvcGJsb2NrLXN1bW1hcnktcGF0aCIsImRhdGEtcGF0aCI6dX0sUmUuY3JlYXRlRWxlbWVudChqLHtlbmFibGVkOngsaXNTaG93bjphLHBhdGg6Y3JlYXRlRGVlcExpbmtQYXRoKGAke199LyR7d31gKSx0ZXh0OkN9KSl9fWNvbnN0IG9wZXJhdGlvbl9leHRlbnNpb25zPSh7ZXh0ZW5zaW9uczpzLGdldENvbXBvbmVudDpvfSk9PntsZXQgaT1vKCJPcGVyYXRpb25FeHRSb3ciKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXNlY3Rpb24ifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc2VjdGlvbi1oZWFkZXIifSxSZS5jcmVhdGVFbGVtZW50KCJoNCIsbnVsbCwiRXh0ZW5zaW9ucyIpKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InRhYmxlLWNvbnRhaW5lciJ9LFJlLmNyZWF0ZUVsZW1lbnQoInRhYmxlIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInRoZWFkIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInRyIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJjb2xfaGVhZGVyIn0sIkZpZWxkIiksUmUuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6ImNvbF9oZWFkZXIifSwiVmFsdWUiKSkpLFJlLmNyZWF0ZUVsZW1lbnQoInRib2R5IixudWxsLHMuZW50cnlTZXEoKS5tYXAoKChbcyxvXSk9PlJlLmNyZWF0ZUVsZW1lbnQoaSx7a2V5OmAke3N9LSR7b31gLHhLZXk6cyx4VmFsOm99KSkpKSkpKX0sb3BlcmF0aW9uX2V4dGVuc2lvbl9yb3c9KHt4S2V5OnMseFZhbDpvfSk9Pntjb25zdCBpPW8/by50b0pTP28udG9KUygpOm86bnVsbDtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgidHIiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgidGQiLG51bGwscyksUmUuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsSlNPTi5zdHJpbmdpZnkoaSkpKX07ZnVuY3Rpb24gY3JlYXRlSHRtbFJlYWR5SWQocyxvPSJfIil7cmV0dXJuIHMucmVwbGFjZSgvW15cdy1dL2csbyl9Y2xhc3MgcmVzcG9uc2VzX1Jlc3BvbnNlcyBleHRlbmRzIFJlLkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXt0cnlJdE91dFJlc3BvbnNlOm51bGwscHJvZHVjZXM6KDAsemUuZnJvbUpTKShbImFwcGxpY2F0aW9uL2pzb24iXSksZGlzcGxheVJlcXVlc3REdXJhdGlvbjohMX07b25DaGFuZ2VQcm9kdWNlc1dyYXBwZXI9cz0+dGhpcy5wcm9wcy5zcGVjQWN0aW9ucy5jaGFuZ2VQcm9kdWNlc1ZhbHVlKFt0aGlzLnByb3BzLnBhdGgsdGhpcy5wcm9wcy5tZXRob2RdLHMpO29uUmVzcG9uc2VDb250ZW50VHlwZUNoYW5nZT0oe2NvbnRyb2xzQWNjZXB0SGVhZGVyOnMsdmFsdWU6b30pPT57Y29uc3R7b2FzM0FjdGlvbnM6aSxwYXRoOmEsbWV0aG9kOnV9PXRoaXMucHJvcHM7cyYmaS5zZXRSZXNwb25zZUNvbnRlbnRUeXBlKHt2YWx1ZTpvLHBhdGg6YSxtZXRob2Q6dX0pfTtyZW5kZXIoKXtsZXR7cmVzcG9uc2VzOnMsdHJ5SXRPdXRSZXNwb25zZTpvLGdldENvbXBvbmVudDppLGdldENvbmZpZ3M6YSxzcGVjU2VsZWN0b3JzOnUsZm46Xyxwcm9kdWNlc1ZhbHVlOncsZGlzcGxheVJlcXVlc3REdXJhdGlvbjp4LHNwZWNQYXRoOkMscGF0aDpqLG1ldGhvZDpMLG9hczNTZWxlY3RvcnM6QixvYXMzQWN0aW9uczokfT10aGlzLnByb3BzLFY9ZnVuY3Rpb24gZGVmYXVsdFN0YXR1c0NvZGUocyl7bGV0IG89cy5rZXlTZXEoKTtyZXR1cm4gby5jb250YWlucyhqdCk/anQ6by5maWx0ZXIoKHM9PiIyIj09PShzKyIiKVswXSkpLnNvcnQoKS5maXJzdCgpfShzKTtjb25zdCBVPWkoImNvbnRlbnRUeXBlIiksej1pKCJsaXZlUmVzcG9uc2UiKSxZPWkoInJlc3BvbnNlIik7bGV0IFo9dGhpcy5wcm9wcy5wcm9kdWNlcyYmdGhpcy5wcm9wcy5wcm9kdWNlcy5zaXplP3RoaXMucHJvcHMucHJvZHVjZXM6cmVzcG9uc2VzX1Jlc3BvbnNlcy5kZWZhdWx0UHJvcHMucHJvZHVjZXM7Y29uc3QgZWU9dS5pc09BUzMoKT9mdW5jdGlvbiBnZXRBY2NlcHRDb250cm9sbGluZ1Jlc3BvbnNlKHMpe2lmKCFXZSgpLk9yZGVyZWRNYXAuaXNPcmRlcmVkTWFwKHMpKXJldHVybiBudWxsO2lmKCFzLnNpemUpcmV0dXJuIG51bGw7Y29uc3Qgbz1zLmZpbmQoKChzLG8pPT5vLnN0YXJ0c1dpdGgoIjIiKSYmT2JqZWN0LmtleXMocy5nZXQoImNvbnRlbnQiKXx8e30pLmxlbmd0aD4wKSksaT1zLmdldCgiZGVmYXVsdCIpfHxXZSgpLk9yZGVyZWRNYXAoKSxhPShpLmdldCgiY29udGVudCIpfHxXZSgpLk9yZGVyZWRNYXAoKSkua2V5U2VxKCkudG9KUygpLmxlbmd0aD9pOm51bGw7cmV0dXJuIG98fGF9KHMpOm51bGwsaWU9Y3JlYXRlSHRtbFJlYWR5SWQoYCR7TH0ke2p9X3Jlc3BvbnNlc2ApLGFlPWAke2llfV9zZWxlY3RgO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InJlc3BvbnNlcy13cmFwcGVyIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXNlY3Rpb24taGVhZGVyIn0sUmUuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsIlJlc3BvbnNlcyIpLHUuaXNPQVMzKCk/bnVsbDpSZS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6YWV9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsIlJlc3BvbnNlIGNvbnRlbnQgdHlwZSIpLFJlLmNyZWF0ZUVsZW1lbnQoVSx7dmFsdWU6dyxhcmlhQ29udHJvbHM6aWUsYXJpYUxhYmVsOiJSZXNwb25zZSBjb250ZW50IHR5cGUiLGNsYXNzTmFtZToiZXhlY3V0ZS1jb250ZW50LXR5cGUiLGNvbnRlbnRUeXBlczpaLGNvbnRyb2xJZDphZSxvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlUHJvZHVjZXNXcmFwcGVyfSkpKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InJlc3BvbnNlcy1pbm5lciJ9LG8/UmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoeix7cmVzcG9uc2U6byxnZXRDb21wb25lbnQ6aSxnZXRDb25maWdzOmEsc3BlY1NlbGVjdG9yczp1LHBhdGg6dGhpcy5wcm9wcy5wYXRoLG1ldGhvZDp0aGlzLnByb3BzLm1ldGhvZCxkaXNwbGF5UmVxdWVzdER1cmF0aW9uOnh9KSxSZS5jcmVhdGVFbGVtZW50KCJoNCIsbnVsbCwiUmVzcG9uc2VzIikpOm51bGwsUmUuY3JlYXRlRWxlbWVudCgidGFibGUiLHsiYXJpYS1saXZlIjoicG9saXRlIixjbGFzc05hbWU6InJlc3BvbnNlcy10YWJsZSIsaWQ6aWUscm9sZToicmVnaW9uIn0sUmUuY3JlYXRlRWxlbWVudCgidGhlYWQiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgidHIiLHtjbGFzc05hbWU6InJlc3BvbnNlcy1oZWFkZXIifSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToiY29sX2hlYWRlciByZXNwb25zZS1jb2xfc3RhdHVzIn0sIkNvZGUiKSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToiY29sX2hlYWRlciByZXNwb25zZS1jb2xfZGVzY3JpcHRpb24ifSwiRGVzY3JpcHRpb24iKSx1LmlzT0FTMygpP1JlLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJjb2wgY29sX2hlYWRlciByZXNwb25zZS1jb2xfbGlua3MifSwiTGlua3MiKTpudWxsKSksUmUuY3JlYXRlRWxlbWVudCgidGJvZHkiLG51bGwscy5lbnRyeVNlcSgpLm1hcCgoKFtzLHhdKT0+e2xldCBVPW8mJm8uZ2V0KCJzdGF0dXMiKT09cz8icmVzcG9uc2VfY3VycmVudCI6IiI7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoWSx7a2V5OnMscGF0aDpqLG1ldGhvZDpMLHNwZWNQYXRoOkMucHVzaChzKSxpc0RlZmF1bHQ6Vj09PXMsZm46XyxjbGFzc05hbWU6VSxjb2RlOnMscmVzcG9uc2U6eCxzcGVjU2VsZWN0b3JzOnUsY29udHJvbHNBY2NlcHRIZWFkZXI6eD09PWVlLG9uQ29udGVudFR5cGVDaGFuZ2U6dGhpcy5vblJlc3BvbnNlQ29udGVudFR5cGVDaGFuZ2UsY29udGVudFR5cGU6dyxnZXRDb25maWdzOmEsYWN0aXZlRXhhbXBsZXNLZXk6Qi5hY3RpdmVFeGFtcGxlc01lbWJlcihqLEwsInJlc3BvbnNlcyIscyksb2FzM0FjdGlvbnM6JCxnZXRDb21wb25lbnQ6aX0pfSkpLnRvQXJyYXkoKSkpKSl9fWZ1bmN0aW9uIGdldEtub3duU3ludGF4SGlnaGxpZ2h0ZXJMYW5ndWFnZShzKXtjb25zdCBvPWZ1bmN0aW9uIGNhbkpzb25QYXJzZShzKXt0cnl7cmV0dXJuISFKU09OLnBhcnNlKHMpfWNhdGNoKHMpe3JldHVybiBudWxsfX0ocyk7cmV0dXJuIG8/Impzb24iOm51bGx9Y2xhc3MgcmVzcG9uc2VfUmVzcG9uc2UgZXh0ZW5kcyBSZS5Db21wb25lbnR7Y29uc3RydWN0b3IocyxvKXtzdXBlcihzLG8pLHRoaXMuc3RhdGU9e3Jlc3BvbnNlQ29udGVudFR5cGU6IiJ9fXN0YXRpYyBkZWZhdWx0UHJvcHM9e3Jlc3BvbnNlOigwLHplLmZyb21KUykoe30pLG9uQ29udGVudFR5cGVDaGFuZ2U6KCk9Pnt9fTtfb25Db250ZW50VHlwZUNoYW5nZT1zPT57Y29uc3R7b25Db250ZW50VHlwZUNoYW5nZTpvLGNvbnRyb2xzQWNjZXB0SGVhZGVyOml9PXRoaXMucHJvcHM7dGhpcy5zZXRTdGF0ZSh7cmVzcG9uc2VDb250ZW50VHlwZTpzfSksbyh7dmFsdWU6cyxjb250cm9sc0FjY2VwdEhlYWRlcjppfSl9O2dldFRhcmdldEV4YW1wbGVzS2V5PSgpPT57Y29uc3R7cmVzcG9uc2U6cyxjb250ZW50VHlwZTpvLGFjdGl2ZUV4YW1wbGVzS2V5Oml9PXRoaXMucHJvcHMsYT10aGlzLnN0YXRlLnJlc3BvbnNlQ29udGVudFR5cGV8fG8sdT1zLmdldEluKFsiY29udGVudCIsYV0sKDAsemUuTWFwKSh7fSkpLmdldCgiZXhhbXBsZXMiLG51bGwpLmtleVNlcSgpLmZpcnN0KCk7cmV0dXJuIGl8fHV9O3JlbmRlcigpe2xldHtwYXRoOnMsbWV0aG9kOm8sY29kZTppLHJlc3BvbnNlOmEsY2xhc3NOYW1lOnUsc3BlY1BhdGg6Xyxmbjp3LGdldENvbXBvbmVudDp4LGdldENvbmZpZ3M6QyxzcGVjU2VsZWN0b3JzOmosY29udGVudFR5cGU6TCxjb250cm9sc0FjY2VwdEhlYWRlcjpCLG9hczNBY3Rpb25zOiR9PXRoaXMucHJvcHMse2luZmVyU2NoZW1hOlYsZ2V0U2FtcGxlU2NoZW1hOlV9PXcsej1qLmlzT0FTMygpO2NvbnN0e3Nob3dFeHRlbnNpb25zOll9PUMoKTtsZXQgWj1ZP2dldEV4dGVuc2lvbnMoYSk6bnVsbCxlZT1hLmdldCgiaGVhZGVycyIpLGllPWEuZ2V0KCJsaW5rcyIpO2NvbnN0IGFlPXgoIlJlc3BvbnNlRXh0ZW5zaW9uIiksY2U9eCgiaGVhZGVycyIpLGxlPXgoIkhpZ2hsaWdodENvZGUiLCEwKSxwZT14KCJtb2RlbEV4YW1wbGUiKSxkZT14KCJNYXJrZG93biIsITApLGZlPXgoIm9wZXJhdGlvbkxpbmsiKSx5ZT14KCJjb250ZW50VHlwZSIpLGJlPXgoIkV4YW1wbGVzU2VsZWN0IiksX2U9eCgiRXhhbXBsZSIpO3ZhciBTZSx3ZTtjb25zdCB4ZT10aGlzLnN0YXRlLnJlc3BvbnNlQ29udGVudFR5cGV8fEwsUGU9YS5nZXRJbihbImNvbnRlbnQiLHhlXSwoMCx6ZS5NYXApKHt9KSksVGU9UGUuZ2V0KCJleGFtcGxlcyIsbnVsbCk7aWYoeil7Y29uc3Qgcz1QZS5nZXQoInNjaGVtYSIpO1NlPXM/VihzLnRvSlMoKSk6bnVsbCx3ZT1zPygwLHplLkxpc3QpKFsiY29udGVudCIsdGhpcy5zdGF0ZS5yZXNwb25zZUNvbnRlbnRUeXBlLCJzY2hlbWEiXSk6X31lbHNlIFNlPWEuZ2V0KCJzY2hlbWEiKSx3ZT1hLmhhcygic2NoZW1hIik/Xy5wdXNoKCJzY2hlbWEiKTpfO2xldCAkZSxxZSxXZT0hMSxIZT17aW5jbHVkZVJlYWRPbmx5OiEwfTtpZih6KWlmKHFlPVBlLmdldCgic2NoZW1hIik/LnRvSlMoKSx6ZS5NYXAuaXNNYXAoVGUpJiYhVGUuaXNFbXB0eSgpKXtjb25zdCBzPXRoaXMuZ2V0VGFyZ2V0RXhhbXBsZXNLZXkoKSxnZXRNZWRpYVR5cGVFeGFtcGxlPXM9PnplLk1hcC5pc01hcChzKT9zLmdldCgidmFsdWUiKTp2b2lkIDA7JGU9Z2V0TWVkaWFUeXBlRXhhbXBsZShUZS5nZXQocywoMCx6ZS5NYXApKHt9KSkpLHZvaWQgMD09PSRlJiYoJGU9Z2V0TWVkaWFUeXBlRXhhbXBsZShUZS52YWx1ZXMoKS5uZXh0KCkudmFsdWUpKSxXZT0hMH1lbHNlIHZvaWQgMCE9PVBlLmdldCgiZXhhbXBsZSIpJiYoJGU9UGUuZ2V0KCJleGFtcGxlIiksV2U9ITApO2Vsc2V7cWU9U2UsSGU9ey4uLkhlLGluY2x1ZGVXcml0ZU9ubHk6ITB9O2NvbnN0IHM9YS5nZXRJbihbImV4YW1wbGVzIix4ZV0pO3MmJigkZT1zLFdlPSEwKX1jb25zdCBZZT0oKHMsbyk9PntpZihudWxsPT1zKXJldHVybiBudWxsO2NvbnN0IGk9Z2V0S25vd25TeW50YXhIaWdobGlnaHRlckxhbmd1YWdlKHMpPyJqc29uIjpudWxsO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudChvLHtjbGFzc05hbWU6ImV4YW1wbGUiLGxhbmd1YWdlOml9LHN0cmluZ2lmeShzKSkpfSkoVShxZSx4ZSxIZSxXZT8kZTp2b2lkIDApLGxlKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgidHIiLHtjbGFzc05hbWU6InJlc3BvbnNlICIrKHV8fCIiKSwiZGF0YS1jb2RlIjppfSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToicmVzcG9uc2UtY29sX3N0YXR1cyJ9LGkpLFJlLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJyZXNwb25zZS1jb2xfZGVzY3JpcHRpb24ifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InJlc3BvbnNlLWNvbF9kZXNjcmlwdGlvbl9faW5uZXIifSxSZS5jcmVhdGVFbGVtZW50KGRlLHtzb3VyY2U6YS5nZXQoImRlc2NyaXB0aW9uIil9KSksWSYmWi5zaXplP1ouZW50cnlTZXEoKS5tYXAoKChbcyxvXSk9PlJlLmNyZWF0ZUVsZW1lbnQoYWUse2tleTpgJHtzfS0ke299YCx4S2V5OnMseFZhbDpvfSkpKTpudWxsLHomJmEuZ2V0KCJjb250ZW50Iik/UmUuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIse2NsYXNzTmFtZToicmVzcG9uc2UtY29udHJvbHMifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Sm4oKSgicmVzcG9uc2UtY29udHJvbC1tZWRpYS10eXBlIix7InJlc3BvbnNlLWNvbnRyb2wtbWVkaWEtdHlwZS0tYWNjZXB0LWNvbnRyb2xsZXIiOkJ9KX0sUmUuY3JlYXRlRWxlbWVudCgic21hbGwiLHtjbGFzc05hbWU6InJlc3BvbnNlLWNvbnRyb2wtbWVkaWEtdHlwZV9fdGl0bGUifSwiTWVkaWEgdHlwZSIpLFJlLmNyZWF0ZUVsZW1lbnQoeWUse3ZhbHVlOnRoaXMuc3RhdGUucmVzcG9uc2VDb250ZW50VHlwZSxjb250ZW50VHlwZXM6YS5nZXQoImNvbnRlbnQiKT9hLmdldCgiY29udGVudCIpLmtleVNlcSgpOigwLHplLlNlcSkoKSxvbkNoYW5nZTp0aGlzLl9vbkNvbnRlbnRUeXBlQ2hhbmdlLGFyaWFMYWJlbDoiTWVkaWEgVHlwZSJ9KSxCP1JlLmNyZWF0ZUVsZW1lbnQoInNtYWxsIix7Y2xhc3NOYW1lOiJyZXNwb25zZS1jb250cm9sLW1lZGlhLXR5cGVfX2FjY2VwdC1tZXNzYWdlIn0sIkNvbnRyb2xzICIsUmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwiQWNjZXB0IiksIiBoZWFkZXIuIik6bnVsbCksemUuTWFwLmlzTWFwKFRlKSYmIVRlLmlzRW1wdHkoKT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InJlc3BvbnNlLWNvbnRyb2wtZXhhbXBsZXMifSxSZS5jcmVhdGVFbGVtZW50KCJzbWFsbCIse2NsYXNzTmFtZToicmVzcG9uc2UtY29udHJvbC1leGFtcGxlc19fdGl0bGUifSwiRXhhbXBsZXMiKSxSZS5jcmVhdGVFbGVtZW50KGJlLHtleGFtcGxlczpUZSxjdXJyZW50RXhhbXBsZUtleTp0aGlzLmdldFRhcmdldEV4YW1wbGVzS2V5KCksb25TZWxlY3Q6YT0+JC5zZXRBY3RpdmVFeGFtcGxlc01lbWJlcih7bmFtZTphLHBhdGhNZXRob2Q6W3Msb10sY29udGV4dFR5cGU6InJlc3BvbnNlcyIsY29udGV4dE5hbWU6aX0pLHNob3dMYWJlbHM6ITF9KSk6bnVsbCk6bnVsbCxZZXx8U2U/UmUuY3JlYXRlRWxlbWVudChwZSx7c3BlY1BhdGg6d2UsZ2V0Q29tcG9uZW50OngsZ2V0Q29uZmlnczpDLHNwZWNTZWxlY3RvcnM6aixzY2hlbWE6ZnJvbUpTT3JkZXJlZChTZSksZXhhbXBsZTpZZSxpbmNsdWRlUmVhZE9ubHk6ITB9KTpudWxsLHomJlRlP1JlLmNyZWF0ZUVsZW1lbnQoX2Use2V4YW1wbGU6VGUuZ2V0KHRoaXMuZ2V0VGFyZ2V0RXhhbXBsZXNLZXkoKSwoMCx6ZS5NYXApKHt9KSksZ2V0Q29tcG9uZW50OngsZ2V0Q29uZmlnczpDLG9taXRWYWx1ZTohMH0pOm51bGwsZWU/UmUuY3JlYXRlRWxlbWVudChjZSx7aGVhZGVyczplZSxnZXRDb21wb25lbnQ6eH0pOm51bGwpLHo/UmUuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6InJlc3BvbnNlLWNvbF9saW5rcyJ9LGllP2llLnRvU2VxKCkuZW50cnlTZXEoKS5tYXAoKChbcyxvXSk9PlJlLmNyZWF0ZUVsZW1lbnQoZmUse2tleTpzLG5hbWU6cyxsaW5rOm8sZ2V0Q29tcG9uZW50Onh9KSkpOlJlLmNyZWF0ZUVsZW1lbnQoImkiLG51bGwsIk5vIGxpbmtzIikpOm51bGwpfX1jb25zdCByZXNwb25zZV9leHRlbnNpb249KHt4S2V5OnMseFZhbDpvfSk9PlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicmVzcG9uc2VfX2V4dGVuc2lvbiJ9LHMsIjogIixTdHJpbmcobykpO3ZhciBZTz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI2NjU3KSxYTz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oWU8pLFFPPV9fd2VicGFja19yZXF1aXJlX18oODAyMTgpLFpPPV9fd2VicGFja19yZXF1aXJlX18ubihRTyk7Y2xhc3MgUmVzcG9uc2VCb2R5IGV4dGVuZHMgUmUuUHVyZUNvbXBvbmVudHtzdGF0ZT17cGFyc2VkQ29udGVudDpudWxsfTt1cGRhdGVQYXJzZWRDb250ZW50PXM9Pntjb25zdHtjb250ZW50Om99PXRoaXMucHJvcHM7aWYocyE9PW8paWYobyYmbyBpbnN0YW5jZW9mIEJsb2Ipe3ZhciBpPW5ldyBGaWxlUmVhZGVyO2kub25sb2FkPSgpPT57dGhpcy5zZXRTdGF0ZSh7cGFyc2VkQ29udGVudDppLnJlc3VsdH0pfSxpLnJlYWRBc1RleHQobyl9ZWxzZSB0aGlzLnNldFN0YXRlKHtwYXJzZWRDb250ZW50Om8udG9TdHJpbmcoKX0pfTtjb21wb25lbnREaWRNb3VudCgpe3RoaXMudXBkYXRlUGFyc2VkQ29udGVudChudWxsKX1jb21wb25lbnREaWRVcGRhdGUocyl7dGhpcy51cGRhdGVQYXJzZWRDb250ZW50KHMuY29udGVudCl9cmVuZGVyKCl7bGV0e2NvbnRlbnQ6cyxjb250ZW50VHlwZTpvLHVybDppLGhlYWRlcnM6YT17fSxnZXRDb21wb25lbnQ6dX09dGhpcy5wcm9wcztjb25zdHtwYXJzZWRDb250ZW50Ol99PXRoaXMuc3RhdGUsdz11KCJIaWdobGlnaHRDb2RlIiwhMCkseD0icmVzcG9uc2VfIisobmV3IERhdGUpLmdldFRpbWUoKTtsZXQgQyxqO2lmKGk9aXx8IiIsKC9eYXBwbGljYXRpb25cL29jdGV0LXN0cmVhbS9pLnRlc3Qobyl8fGFbIkNvbnRlbnQtRGlzcG9zaXRpb24iXSYmL2F0dGFjaG1lbnQvaS50ZXN0KGFbIkNvbnRlbnQtRGlzcG9zaXRpb24iXSl8fGFbImNvbnRlbnQtZGlzcG9zaXRpb24iXSYmL2F0dGFjaG1lbnQvaS50ZXN0KGFbImNvbnRlbnQtZGlzcG9zaXRpb24iXSl8fGFbIkNvbnRlbnQtRGVzY3JpcHRpb24iXSYmL0ZpbGUgVHJhbnNmZXIvaS50ZXN0KGFbIkNvbnRlbnQtRGVzY3JpcHRpb24iXSl8fGFbImNvbnRlbnQtZGVzY3JpcHRpb24iXSYmL0ZpbGUgVHJhbnNmZXIvaS50ZXN0KGFbImNvbnRlbnQtZGVzY3JpcHRpb24iXSkpJiYocy5zaXplPjB8fHMubGVuZ3RoPjApKWlmKCJCbG9iImluIHdpbmRvdyl7bGV0IHU9b3x8InRleHQvaHRtbCIsXz1zIGluc3RhbmNlb2YgQmxvYj9zOm5ldyBCbG9iKFtzXSx7dHlwZTp1fSksdz13aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChfKSx4PVt1LGkuc3Vic3RyKGkubGFzdEluZGV4T2YoIi8iKSsxKSx3XS5qb2luKCI6IiksQz1hWyJjb250ZW50LWRpc3Bvc2l0aW9uIl18fGFbIkNvbnRlbnQtRGlzcG9zaXRpb24iXTtpZih2b2lkIDAhPT1DKXtsZXQgcz1mdW5jdGlvbiBleHRyYWN0RmlsZU5hbWVGcm9tQ29udGVudERpc3Bvc2l0aW9uSGVhZGVyKHMpe2xldCBvO2lmKFsvZmlsZW5hbWVcKj1bXiddKydcdyonIihbXiJdKykiOz8vaSwvZmlsZW5hbWVcKj1bXiddKydcdyonKFteO10rKTs/L2ksL2ZpbGVuYW1lPSIoW147XSopOz8iL2ksL2ZpbGVuYW1lPShbXjtdKik7Py9pXS5zb21lKChpPT4obz1pLmV4ZWMocyksbnVsbCE9PW8pKSksbnVsbCE9PW8mJm8ubGVuZ3RoPjEpdHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQob1sxXSl9Y2F0Y2gocyl7Y29uc29sZS5lcnJvcihzKX1yZXR1cm4gbnVsbH0oQyk7bnVsbCE9PXMmJih4PXMpfWo9bHQubmF2aWdhdG9yJiZsdC5uYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYj9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiYSIse2hyZWY6dyxvbkNsaWNrOigpPT5sdC5uYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihfLHgpfSwiRG93bmxvYWQgZmlsZSIpKTpSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiYSIse2hyZWY6dyxkb3dubG9hZDp4fSwiRG93bmxvYWQgZmlsZSIpKX1lbHNlIGo9UmUuY3JlYXRlRWxlbWVudCgicHJlIix7Y2xhc3NOYW1lOiJtaWNyb2xpZ2h0In0sIkRvd25sb2FkIGhlYWRlcnMgZGV0ZWN0ZWQgYnV0IHlvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IGRvd25sb2FkaW5nIGJpbmFyeSB2aWEgWEhSIChCbG9iKS4iKTtlbHNlIGlmKC9qc29uL2kudGVzdChvKSl7bGV0IG89bnVsbDtnZXRLbm93blN5bnRheEhpZ2hsaWdodGVyTGFuZ3VhZ2UocykmJihvPSJqc29uIik7dHJ5e0M9SlNPTi5zdHJpbmdpZnkoSlNPTi5wYXJzZShzKSxudWxsLCIgICIpfWNhdGNoKG8pe0M9ImNhbid0IHBhcnNlIEpTT04uICBSYXcgcmVzdWx0OlxuXG4iK3N9aj1SZS5jcmVhdGVFbGVtZW50KHcse2xhbmd1YWdlOm8sZG93bmxvYWRhYmxlOiEwLGZpbGVOYW1lOmAke3h9Lmpzb25gLGNhbkNvcHk6ITB9LEMpfWVsc2UveG1sL2kudGVzdChvKT8oQz1YTygpKHMse3RleHROb2Rlc09uU2FtZUxpbmU6ITAsaW5kZW50b3I6IiAgIn0pLGo9UmUuY3JlYXRlRWxlbWVudCh3LHtkb3dubG9hZGFibGU6ITAsZmlsZU5hbWU6YCR7eH0ueG1sYCxjYW5Db3B5OiEwfSxDKSk6aj0idGV4dC9odG1sIj09PVpPKCkobyl8fC90ZXh0XC9wbGFpbi8udGVzdChvKT9SZS5jcmVhdGVFbGVtZW50KHcse2Rvd25sb2FkYWJsZTohMCxmaWxlTmFtZTpgJHt4fS5odG1sYCxjYW5Db3B5OiEwfSxzKToidGV4dC9jc3YiPT09Wk8oKShvKXx8L3RleHRcL2Nzdi8udGVzdChvKT9SZS5jcmVhdGVFbGVtZW50KHcse2Rvd25sb2FkYWJsZTohMCxmaWxlTmFtZTpgJHt4fS5jc3ZgLGNhbkNvcHk6ITB9LHMpOi9eaW1hZ2VcLy9pLnRlc3Qobyk/by5pbmNsdWRlcygic3ZnIik/UmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLCIgIixzLCIgIik6UmUuY3JlYXRlRWxlbWVudCgiaW1nIix7c3JjOndpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKHMpfSk6L15hdWRpb1wvL2kudGVzdChvKT9SZS5jcmVhdGVFbGVtZW50KCJwcmUiLHtjbGFzc05hbWU6Im1pY3JvbGlnaHQifSxSZS5jcmVhdGVFbGVtZW50KCJhdWRpbyIse2NvbnRyb2xzOiEwLGtleTppfSxSZS5jcmVhdGVFbGVtZW50KCJzb3VyY2UiLHtzcmM6aSx0eXBlOm99KSkpOiJzdHJpbmciPT10eXBlb2Ygcz9SZS5jcmVhdGVFbGVtZW50KHcse2Rvd25sb2FkYWJsZTohMCxmaWxlTmFtZTpgJHt4fS50eHRgLGNhbkNvcHk6ITB9LHMpOnMuc2l6ZT4wP18/UmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInAiLHtjbGFzc05hbWU6ImkifSwiVW5yZWNvZ25pemVkIHJlc3BvbnNlIHR5cGU7IGRpc3BsYXlpbmcgY29udGVudCBhcyB0ZXh0LiIpLFJlLmNyZWF0ZUVsZW1lbnQodyx7ZG93bmxvYWRhYmxlOiEwLGZpbGVOYW1lOmAke3h9LnR4dGAsY2FuQ29weTohMH0sXykpOlJlLmNyZWF0ZUVsZW1lbnQoInAiLHtjbGFzc05hbWU6ImkifSwiVW5yZWNvZ25pemVkIHJlc3BvbnNlIHR5cGU7IHVuYWJsZSB0byBkaXNwbGF5LiIpOm51bGw7cmV0dXJuIGo/UmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImg1IixudWxsLCJSZXNwb25zZSBib2R5Iiksaik6bnVsbH19Y2xhc3MgUGFyYW1ldGVycyBleHRlbmRzIFJlLkNvbXBvbmVudHtjb25zdHJ1Y3RvcihzKXtzdXBlcihzKSx0aGlzLnN0YXRlPXtjYWxsYmFja1Zpc2libGU6ITEscGFyYW1ldGVyc1Zpc2libGU6ITB9fXN0YXRpYyBkZWZhdWx0UHJvcHM9e29uVHJ5b3V0Q2xpY2s6RnVuY3Rpb24ucHJvdG90eXBlLG9uQ2FuY2VsQ2xpY2s6RnVuY3Rpb24ucHJvdG90eXBlLHRyeUl0T3V0RW5hYmxlZDohMSxhbGxvd1RyeUl0T3V0OiEwLG9uQ2hhbmdlS2V5OltdLHNwZWNQYXRoOltdfTtvbkNoYW5nZT0ocyxvLGkpPT57bGV0e3NwZWNBY3Rpb25zOntjaGFuZ2VQYXJhbUJ5SWRlbnRpdHk6YX0sb25DaGFuZ2VLZXk6dX09dGhpcy5wcm9wczthKHUscyxvLGkpfTtvbkNoYW5nZUNvbnN1bWVzV3JhcHBlcj1zPT57bGV0e3NwZWNBY3Rpb25zOntjaGFuZ2VDb25zdW1lc1ZhbHVlOm99LG9uQ2hhbmdlS2V5Oml9PXRoaXMucHJvcHM7byhpLHMpfTt0b2dnbGVUYWI9cz0+InBhcmFtZXRlcnMiPT09cz90aGlzLnNldFN0YXRlKHtwYXJhbWV0ZXJzVmlzaWJsZTohMCxjYWxsYmFja1Zpc2libGU6ITF9KToiY2FsbGJhY2tzIj09PXM/dGhpcy5zZXRTdGF0ZSh7Y2FsbGJhY2tWaXNpYmxlOiEwLHBhcmFtZXRlcnNWaXNpYmxlOiExfSk6dm9pZCAwO29uQ2hhbmdlTWVkaWFUeXBlPSh7dmFsdWU6cyxwYXRoTWV0aG9kOm99KT0+e2xldHtzcGVjQWN0aW9uczppLG9hczNTZWxlY3RvcnM6YSxvYXMzQWN0aW9uczp1fT10aGlzLnByb3BzO2NvbnN0IF89YS5oYXNVc2VyRWRpdGVkQm9keSguLi5vKSx3PWEuc2hvdWxkUmV0YWluUmVxdWVzdEJvZHlWYWx1ZSguLi5vKTt1LnNldFJlcXVlc3RDb250ZW50VHlwZSh7dmFsdWU6cyxwYXRoTWV0aG9kOm99KSx1LmluaXRSZXF1ZXN0Qm9keVZhbGlkYXRlRXJyb3Ioe3BhdGhNZXRob2Q6b30pLF98fCh3fHx1LnNldFJlcXVlc3RCb2R5VmFsdWUoe3ZhbHVlOnZvaWQgMCxwYXRoTWV0aG9kOm99KSxpLmNsZWFyUmVzcG9uc2UoLi4ubyksaS5jbGVhclJlcXVlc3QoLi4ubyksaS5jbGVhclZhbGlkYXRlUGFyYW1zKG8pKX07cmVuZGVyKCl7bGV0e29uVHJ5b3V0Q2xpY2s6cyxvblJlc2V0Q2xpY2s6byxwYXJhbWV0ZXJzOmksYWxsb3dUcnlJdE91dDphLHRyeUl0T3V0RW5hYmxlZDp1LHNwZWNQYXRoOl8sZm46dyxnZXRDb21wb25lbnQ6eCxnZXRDb25maWdzOkMsc3BlY1NlbGVjdG9yczpqLHNwZWNBY3Rpb25zOkwscGF0aE1ldGhvZDpCLG9hczNBY3Rpb25zOiQsb2FzM1NlbGVjdG9yczpWLG9wZXJhdGlvbjpVfT10aGlzLnByb3BzO2NvbnN0IHo9eCgicGFyYW1ldGVyUm93IiksWT14KCJUcnlJdE91dEJ1dHRvbiIpLFo9eCgiY29udGVudFR5cGUiKSxlZT14KCJDYWxsYmFja3MiLCEwKSxpZT14KCJSZXF1ZXN0Qm9keSIsITApLGFlPXUmJmEsY2U9ai5pc09BUzMoKSxsZT1gJHtjcmVhdGVIdG1sUmVhZHlJZChgJHtCWzFdfSR7QlswXX1fcmVxdWVzdHNgKX1fc2VsZWN0YCxwZT1VLmdldCgicmVxdWVzdEJvZHkiKSxkZT1PYmplY3QudmFsdWVzKGkucmVkdWNlKCgocyxvKT0+e2lmKHplLk1hcC5pc01hcChvKSl7Y29uc3QgaT1vLmdldCgiaW4iKTtzW2ldPz89W10sc1tpXS5wdXNoKG8pfXJldHVybiBzfSkse30pKS5yZWR1Y2UoKChzLG8pPT5zLmNvbmNhdChvKSksW10pO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc2VjdGlvbiJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1zZWN0aW9uLWhlYWRlciJ9LGNlP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidGFiLWhlYWRlciJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse29uQ2xpY2s6KCk9PnRoaXMudG9nZ2xlVGFiKCJwYXJhbWV0ZXJzIiksY2xhc3NOYW1lOmB0YWItaXRlbSAke3RoaXMuc3RhdGUucGFyYW1ldGVyc1Zpc2libGUmJiJhY3RpdmUifWB9LFJlLmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXRpdGxlIn0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCwiUGFyYW1ldGVycyIpKSksVS5nZXQoImNhbGxiYWNrcyIpP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse29uQ2xpY2s6KCk9PnRoaXMudG9nZ2xlVGFiKCJjYWxsYmFja3MiKSxjbGFzc05hbWU6YHRhYi1pdGVtICR7dGhpcy5zdGF0ZS5jYWxsYmFja1Zpc2libGUmJiJhY3RpdmUifWB9LFJlLmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXRpdGxlIn0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCwiQ2FsbGJhY2tzIikpKTpudWxsKTpSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InRhYi1oZWFkZXIifSxSZS5jcmVhdGVFbGVtZW50KCJoNCIse2NsYXNzTmFtZToib3BibG9jay10aXRsZSJ9LCJQYXJhbWV0ZXJzIikpLGE/UmUuY3JlYXRlRWxlbWVudChZLHtpc09BUzM6ai5pc09BUzMoKSxoYXNVc2VyRWRpdGVkQm9keTpWLmhhc1VzZXJFZGl0ZWRCb2R5KC4uLkIpLGVuYWJsZWQ6dSxvbkNhbmNlbENsaWNrOnRoaXMucHJvcHMub25DYW5jZWxDbGljayxvblRyeW91dENsaWNrOnMsb25SZXNldENsaWNrOigpPT5vKEIpfSk6bnVsbCksdGhpcy5zdGF0ZS5wYXJhbWV0ZXJzVmlzaWJsZT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InBhcmFtZXRlcnMtY29udGFpbmVyIn0sZGUubGVuZ3RoP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidGFibGUtY29udGFpbmVyIn0sUmUuY3JlYXRlRWxlbWVudCgidGFibGUiLHtjbGFzc05hbWU6InBhcmFtZXRlcnMifSxSZS5jcmVhdGVFbGVtZW50KCJ0aGVhZCIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJ0ciIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJ0aCIse2NsYXNzTmFtZToiY29sX2hlYWRlciBwYXJhbWV0ZXJzLWNvbF9uYW1lIn0sIk5hbWUiKSxSZS5jcmVhdGVFbGVtZW50KCJ0aCIse2NsYXNzTmFtZToiY29sX2hlYWRlciBwYXJhbWV0ZXJzLWNvbF9kZXNjcmlwdGlvbiJ9LCJEZXNjcmlwdGlvbiIpKSksUmUuY3JlYXRlRWxlbWVudCgidGJvZHkiLG51bGwsZGUubWFwKCgocyxvKT0+UmUuY3JlYXRlRWxlbWVudCh6LHtmbjp3LHNwZWNQYXRoOl8ucHVzaChvLnRvU3RyaW5nKCkpLGdldENvbXBvbmVudDp4LGdldENvbmZpZ3M6QyxyYXdQYXJhbTpzLHBhcmFtOmoucGFyYW1ldGVyV2l0aE1ldGFCeUlkZW50aXR5KEIscyksa2V5OmAke3MuZ2V0KCJpbiIpfS4ke3MuZ2V0KCJuYW1lIil9YCxvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlLG9uQ2hhbmdlQ29uc3VtZXM6dGhpcy5vbkNoYW5nZUNvbnN1bWVzV3JhcHBlcixzcGVjU2VsZWN0b3JzOmosc3BlY0FjdGlvbnM6TCxvYXMzQWN0aW9uczokLG9hczNTZWxlY3RvcnM6VixwYXRoTWV0aG9kOkIsaXNFeGVjdXRlOmFlfSkpKSkpKTpSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stZGVzY3JpcHRpb24td3JhcHBlciJ9LFJlLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIk5vIHBhcmFtZXRlcnMiKSkpOm51bGwsdGhpcy5zdGF0ZS5jYWxsYmFja1Zpc2libGU/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJjYWxsYmFja3MtY29udGFpbmVyIG9wYmxvY2stZGVzY3JpcHRpb24td3JhcHBlciJ9LFJlLmNyZWF0ZUVsZW1lbnQoZWUse2NhbGxiYWNrczooMCx6ZS5NYXApKFUuZ2V0KCJjYWxsYmFja3MiKSksc3BlY1BhdGg6Xy5zbGljZSgwLC0xKS5wdXNoKCJjYWxsYmFja3MiKX0pKTpudWxsLGNlJiZwZSYmdGhpcy5zdGF0ZS5wYXJhbWV0ZXJzVmlzaWJsZSYmUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXNlY3Rpb24gb3BibG9jay1zZWN0aW9uLXJlcXVlc3QtYm9keSJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1zZWN0aW9uLWhlYWRlciJ9LFJlLmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOmBvcGJsb2NrLXRpdGxlIHBhcmFtZXRlcl9fbmFtZSAke3BlLmdldCgicmVxdWlyZWQiKSYmInJlcXVpcmVkIn1gfSwiUmVxdWVzdCBib2R5IiksUmUuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtpZDpsZX0sUmUuY3JlYXRlRWxlbWVudChaLHt2YWx1ZTpWLnJlcXVlc3RDb250ZW50VHlwZSguLi5CKSxjb250ZW50VHlwZXM6cGUuZ2V0KCJjb250ZW50IiwoMCx6ZS5MaXN0KSgpKS5rZXlTZXEoKSxvbkNoYW5nZTpzPT57dGhpcy5vbkNoYW5nZU1lZGlhVHlwZSh7dmFsdWU6cyxwYXRoTWV0aG9kOkJ9KX0sY2xhc3NOYW1lOiJib2R5LXBhcmFtLWNvbnRlbnQtdHlwZSIsYXJpYUxhYmVsOiJSZXF1ZXN0IGNvbnRlbnQgdHlwZSIsY29udHJvbElkOmxlfSkpKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stZGVzY3JpcHRpb24td3JhcHBlciJ9LFJlLmNyZWF0ZUVsZW1lbnQoaWUse3NldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnOnM9PiQuc2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWcoe3ZhbHVlOnMscGF0aE1ldGhvZDpCfSksdXNlckhhc0VkaXRlZEJvZHk6Vi5oYXNVc2VyRWRpdGVkQm9keSguLi5CKSxzcGVjUGF0aDpfLnNsaWNlKDAsLTEpLnB1c2goInJlcXVlc3RCb2R5IikscmVxdWVzdEJvZHk6cGUscmVxdWVzdEJvZHlWYWx1ZTpWLnJlcXVlc3RCb2R5VmFsdWUoLi4uQikscmVxdWVzdEJvZHlJbmNsdXNpb25TZXR0aW5nOlYucmVxdWVzdEJvZHlJbmNsdXNpb25TZXR0aW5nKC4uLkIpLHJlcXVlc3RCb2R5RXJyb3JzOlYucmVxdWVzdEJvZHlFcnJvcnMoLi4uQiksaXNFeGVjdXRlOmFlLGdldENvbmZpZ3M6QyxhY3RpdmVFeGFtcGxlc0tleTpWLmFjdGl2ZUV4YW1wbGVzTWVtYmVyKC4uLkIsInJlcXVlc3RCb2R5IiwicmVxdWVzdEJvZHkiKSx1cGRhdGVBY3RpdmVFeGFtcGxlc0tleTpzPT57dGhpcy5wcm9wcy5vYXMzQWN0aW9ucy5zZXRBY3RpdmVFeGFtcGxlc01lbWJlcih7bmFtZTpzLHBhdGhNZXRob2Q6dGhpcy5wcm9wcy5wYXRoTWV0aG9kLGNvbnRleHRUeXBlOiJyZXF1ZXN0Qm9keSIsY29udGV4dE5hbWU6InJlcXVlc3RCb2R5In0pfSxvbkNoYW5nZToocyxvKT0+e2lmKG8pe2NvbnN0IGk9Vi5yZXF1ZXN0Qm9keVZhbHVlKC4uLkIpLGE9emUuTWFwLmlzTWFwKGkpP2k6KDAsemUuTWFwKSgpO3JldHVybiAkLnNldFJlcXVlc3RCb2R5VmFsdWUoe3BhdGhNZXRob2Q6Qix2YWx1ZTphLnNldEluKG8scyl9KX0kLnNldFJlcXVlc3RCb2R5VmFsdWUoe3ZhbHVlOnMscGF0aE1ldGhvZDpCfSl9LG9uQ2hhbmdlSW5jbHVkZUVtcHR5OihzLG8pPT57JC5zZXRSZXF1ZXN0Qm9keUluY2x1c2lvbih7cGF0aE1ldGhvZDpCLHZhbHVlOm8sbmFtZTpzfSl9LGNvbnRlbnRUeXBlOlYucmVxdWVzdENvbnRlbnRUeXBlKC4uLkIpfSkpKSl9fWNvbnN0IHBhcmFtZXRlcl9leHRlbnNpb249KHt4S2V5OnMseFZhbDpvfSk9PlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicGFyYW1ldGVyX19leHRlbnNpb24ifSxzLCI6ICIsU3RyaW5nKG8pKSxlQz17b25DaGFuZ2U6KCk9Pnt9LGlzSW5jbHVkZWRPcHRpb25zOnt9fTtjbGFzcyBQYXJhbWV0ZXJJbmNsdWRlRW1wdHkgZXh0ZW5kcyBSZS5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz1lQztjb21wb25lbnREaWRNb3VudCgpe2NvbnN0e2lzSW5jbHVkZWRPcHRpb25zOnMsb25DaGFuZ2U6b309dGhpcy5wcm9wcyx7c2hvdWxkRGlzcGF0Y2hJbml0OmksZGVmYXVsdFZhbHVlOmF9PXM7aSYmbyhhKX1vbkNoZWNrYm94Q2hhbmdlPXM9Pntjb25zdHtvbkNoYW5nZTpvfT10aGlzLnByb3BzO28ocy50YXJnZXQuY2hlY2tlZCl9O3JlbmRlcigpe2xldHtpc0luY2x1ZGVkOnMsaXNEaXNhYmxlZDpvfT10aGlzLnByb3BzO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtodG1sRm9yOiJpbmNsdWRlX2VtcHR5X3ZhbHVlIixjbGFzc05hbWU6Sm4oKSgicGFyYW1ldGVyX19lbXB0eV92YWx1ZV90b2dnbGUiLHtkaXNhYmxlZDpvfSl9LFJlLmNyZWF0ZUVsZW1lbnQoImlucHV0Iix7aWQ6ImluY2x1ZGVfZW1wdHlfdmFsdWUiLHR5cGU6ImNoZWNrYm94IixkaXNhYmxlZDpvLGNoZWNrZWQ6IW8mJnMsb25DaGFuZ2U6dGhpcy5vbkNoZWNrYm94Q2hhbmdlfSksIlNlbmQgZW1wdHkgdmFsdWUiKSl9fWNsYXNzIFBhcmFtZXRlclJvdyBleHRlbmRzIFJlLkNvbXBvbmVudHtjb25zdHJ1Y3RvcihzLG8pe3N1cGVyKHMsbyksdGhpcy5zZXREZWZhdWx0VmFsdWUoKX1VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhzKXtsZXQgbyx7c3BlY1NlbGVjdG9yczppLHBhdGhNZXRob2Q6YSxyYXdQYXJhbTp1fT1zLF89aS5pc09BUzMoKSx3PWkucGFyYW1ldGVyV2l0aE1ldGFCeUlkZW50aXR5KGEsdSl8fG5ldyB6ZS5NYXA7aWYodz13LmlzRW1wdHkoKT91OncsXyl7bGV0e3NjaGVtYTpzfT1nZXRQYXJhbWV0ZXJTY2hlbWEodyx7aXNPQVMzOl99KTtvPXM/cy5nZXQoImVudW0iKTp2b2lkIDB9ZWxzZSBvPXc/dy5nZXQoImVudW0iKTp2b2lkIDA7bGV0IHgsQz13P3cuZ2V0KCJ2YWx1ZSIpOnZvaWQgMDt2b2lkIDAhPT1DP3g9Qzp1LmdldCgicmVxdWlyZWQiKSYmbyYmby5zaXplJiYoeD1vLmZpcnN0KCkpLHZvaWQgMCE9PXgmJnghPT1DJiZ0aGlzLm9uQ2hhbmdlV3JhcHBlcihmdW5jdGlvbiBudW1iZXJUb1N0cmluZyhzKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHM/cy50b1N0cmluZygpOnN9KHgpKSx0aGlzLnNldERlZmF1bHRWYWx1ZSgpfW9uQ2hhbmdlV3JhcHBlcj0ocyxvPSExKT0+e2xldCBpLHtvbkNoYW5nZTphLHJhd1BhcmFtOnV9PXRoaXMucHJvcHM7cmV0dXJuIGk9IiI9PT1zfHxzJiYwPT09cy5zaXplP251bGw6cyxhKHUsaSxvKX07X29uRXhhbXBsZVNlbGVjdD1zPT57dGhpcy5wcm9wcy5vYXMzQWN0aW9ucy5zZXRBY3RpdmVFeGFtcGxlc01lbWJlcih7bmFtZTpzLHBhdGhNZXRob2Q6dGhpcy5wcm9wcy5wYXRoTWV0aG9kLGNvbnRleHRUeXBlOiJwYXJhbWV0ZXJzIixjb250ZXh0TmFtZTp0aGlzLmdldFBhcmFtS2V5KCl9KX07b25DaGFuZ2VJbmNsdWRlRW1wdHk9cz0+e2xldHtzcGVjQWN0aW9uczpvLHBhcmFtOmkscGF0aE1ldGhvZDphfT10aGlzLnByb3BzO2NvbnN0IHU9aS5nZXQoIm5hbWUiKSxfPWkuZ2V0KCJpbiIpO3JldHVybiBvLnVwZGF0ZUVtcHR5UGFyYW1JbmNsdXNpb24oYSx1LF8scyl9O3NldERlZmF1bHRWYWx1ZT0oKT0+e2xldHtzcGVjU2VsZWN0b3JzOnMscGF0aE1ldGhvZDpvLHJhd1BhcmFtOmksb2FzM1NlbGVjdG9yczphLGZuOnV9PXRoaXMucHJvcHM7Y29uc3QgXz1zLnBhcmFtZXRlcldpdGhNZXRhQnlJZGVudGl0eShvLGkpfHwoMCx6ZS5NYXApKCk7bGV0e3NjaGVtYTp3fT1nZXRQYXJhbWV0ZXJTY2hlbWEoXyx7aXNPQVMzOnMuaXNPQVMzKCl9KTtjb25zdCB4PV8uZ2V0KCJjb250ZW50IiwoMCx6ZS5NYXApKCkpLmtleVNlcSgpLmZpcnN0KCksQz13P3UuZ2V0U2FtcGxlU2NoZW1hKHcudG9KUygpLHgse2luY2x1ZGVXcml0ZU9ubHk6ITB9KTpudWxsO2lmKF8mJnZvaWQgMD09PV8uZ2V0KCJ2YWx1ZSIpJiYiYm9keSIhPT1fLmdldCgiaW4iKSl7bGV0IGk7aWYocy5pc1N3YWdnZXIyKCkpaT12b2lkIDAhPT1fLmdldCgieC1leGFtcGxlIik/Xy5nZXQoIngtZXhhbXBsZSIpOnZvaWQgMCE9PV8uZ2V0SW4oWyJzY2hlbWEiLCJleGFtcGxlIl0pP18uZ2V0SW4oWyJzY2hlbWEiLCJleGFtcGxlIl0pOncmJncuZ2V0SW4oWyJkZWZhdWx0Il0pO2Vsc2UgaWYocy5pc09BUzMoKSl7dz10aGlzLmNvbXBvc2VKc29uU2NoZW1hKHcpO2NvbnN0IHM9YS5hY3RpdmVFeGFtcGxlc01lbWJlciguLi5vLCJwYXJhbWV0ZXJzIix0aGlzLmdldFBhcmFtS2V5KCkpO2k9dm9pZCAwIT09Xy5nZXRJbihbImV4YW1wbGVzIixzLCJ2YWx1ZSJdKT9fLmdldEluKFsiZXhhbXBsZXMiLHMsInZhbHVlIl0pOnZvaWQgMCE9PV8uZ2V0SW4oWyJjb250ZW50Iix4LCJleGFtcGxlIl0pP18uZ2V0SW4oWyJjb250ZW50Iix4LCJleGFtcGxlIl0pOnZvaWQgMCE9PV8uZ2V0KCJleGFtcGxlIik/Xy5nZXQoImV4YW1wbGUiKTp2b2lkIDAhPT0odyYmdy5nZXQoImV4YW1wbGUiKSk/dyYmdy5nZXQoImV4YW1wbGUiKTp2b2lkIDAhPT0odyYmdy5nZXQoImRlZmF1bHQiKSk/dyYmdy5nZXQoImRlZmF1bHQiKTpfLmdldCgiZGVmYXVsdCIpfXZvaWQgMD09PWl8fHplLkxpc3QuaXNMaXN0KGkpfHwoaT1zdHJpbmdpZnkoaSkpO2NvbnN0IGo9dS5nZXRTY2hlbWFPYmplY3RUeXBlKHcpLEw9dS5nZXRTY2hlbWFPYmplY3RUeXBlKHc/LmdldCgiaXRlbXMiKSk7dm9pZCAwIT09aT90aGlzLm9uQ2hhbmdlV3JhcHBlcihpKToib2JqZWN0Ij09PWomJkMmJiFfLmdldCgiZXhhbXBsZXMiKT90aGlzLm9uQ2hhbmdlV3JhcHBlcih6ZS5MaXN0LmlzTGlzdChDKT9DOnN0cmluZ2lmeShDKSk6ImFycmF5Ij09PWomJiJvYmplY3QiPT09TCYmQyYmIV8uZ2V0KCJleGFtcGxlcyIpJiZ0aGlzLm9uQ2hhbmdlV3JhcHBlcih6ZS5MaXN0LmlzTGlzdChDKT9DOigwLHplLkxpc3QpKEpTT04ucGFyc2UoQykpKX19O2dldFBhcmFtS2V5KCl7Y29uc3R7cGFyYW06c309dGhpcy5wcm9wcztyZXR1cm4gcz9gJHtzLmdldCgibmFtZSIpfS0ke3MuZ2V0KCJpbiIpfWA6bnVsbH1jb21wb3NlSnNvblNjaGVtYShzKXtjb25zdHtmbjpvfT10aGlzLnByb3BzLGk9cy5nZXQoIm9uZU9mIik/LmdldCgwKT8udG9KUygpLGE9cy5nZXQoImFueU9mIik/LmdldCgwKT8udG9KUygpO3JldHVybigwLHplLmZyb21KUykoby5tZXJnZUpzb25TY2hlbWEocy50b0pTKCksaT8/YT8/e30pKX1yZW5kZXIoKXtsZXR7cGFyYW06cyxyYXdQYXJhbTpvLGdldENvbXBvbmVudDppLGdldENvbmZpZ3M6YSxpc0V4ZWN1dGU6dSxmbjpfLG9uQ2hhbmdlQ29uc3VtZXM6dyxzcGVjU2VsZWN0b3JzOngscGF0aE1ldGhvZDpDLHNwZWNQYXRoOmosb2FzM1NlbGVjdG9yczpMfT10aGlzLnByb3BzLEI9eC5pc09BUzMoKTtjb25zdHtzaG93RXh0ZW5zaW9uczokLHNob3dDb21tb25FeHRlbnNpb25zOlZ9PWEoKTtpZihzfHwocz1vKSwhbylyZXR1cm4gbnVsbDtjb25zdCBVPWkoIkpzb25TY2hlbWFGb3JtIiksej1pKCJQYXJhbUJvZHkiKTtsZXQgWT1zLmdldCgiaW4iKSxaPSJib2R5IiE9PVk/bnVsbDpSZS5jcmVhdGVFbGVtZW50KHose2dldENvbXBvbmVudDppLGdldENvbmZpZ3M6YSxmbjpfLHBhcmFtOnMsY29uc3VtZXM6eC5jb25zdW1lc09wdGlvbnNGb3IoQyksY29uc3VtZXNWYWx1ZTp4LmNvbnRlbnRUeXBlVmFsdWVzKEMpLmdldCgicmVxdWVzdENvbnRlbnRUeXBlIiksb25DaGFuZ2U6dGhpcy5vbkNoYW5nZVdyYXBwZXIsb25DaGFuZ2VDb25zdW1lczp3LGlzRXhlY3V0ZTp1LHNwZWNTZWxlY3RvcnM6eCxwYXRoTWV0aG9kOkN9KTtjb25zdCBlZT1pKCJtb2RlbEV4YW1wbGUiKSxpZT1pKCJNYXJrZG93biIsITApLGFlPWkoIlBhcmFtZXRlckV4dCIpLGNlPWkoIlBhcmFtZXRlckluY2x1ZGVFbXB0eSIpLGxlPWkoIkV4YW1wbGVzU2VsZWN0VmFsdWVSZXRhaW5lciIpLHBlPWkoIkV4YW1wbGUiKTtsZXR7c2NoZW1hOmRlfT1nZXRQYXJhbWV0ZXJTY2hlbWEocyx7aXNPQVMzOkJ9KSxmZT14LnBhcmFtZXRlcldpdGhNZXRhQnlJZGVudGl0eShDLG8pfHwoMCx6ZS5NYXApKCk7QiYmKGRlPXRoaXMuY29tcG9zZUpzb25TY2hlbWEoZGUpKTtsZXQgeWU9ZGU/ZGUuZ2V0KCJmb3JtYXQiKTpudWxsLGJlPSJmb3JtRGF0YSI9PT1ZLF9lPSJGb3JtRGF0YSJpbiBsdCxTZT1zLmdldCgicmVxdWlyZWQiKTtjb25zdCB3ZT1fLmdldFNjaGVtYU9iamVjdFR5cGUoZGUpLHhlPV8uZ2V0U2NoZW1hT2JqZWN0VHlwZShkZT8uZ2V0KCJpdGVtcyIpKSxQZT1fLmdldFNjaGVtYU9iamVjdFR5cGVMYWJlbChkZSksVGU9IVomJiJvYmplY3QiPT09d2UsJGU9IVomJiJvYmplY3QiPT09eGU7bGV0IHFlLFdlLEhlLFllLFhlPWZlP2ZlLmdldCgidmFsdWUiKToiIixRZT1WP2dldENvbW1vbkV4dGVuc2lvbnMoZGUpOm51bGwsZXQ9JD9nZXRFeHRlbnNpb25zKHMpOm51bGwsdHQ9ITE7dm9pZCAwIT09cyYmZGUmJihxZT1kZS5nZXQoIml0ZW1zIikpLHZvaWQgMCE9PXFlPyhXZT1xZS5nZXQoImVudW0iKSxIZT1xZS5nZXQoImRlZmF1bHQiKSk6ZGUmJihXZT1kZS5nZXQoImVudW0iKSksV2UmJldlLnNpemUmJldlLnNpemU+MCYmKHR0PSEwKSx2b2lkIDAhPT1zJiYoZGUmJihIZT1kZS5nZXQoImRlZmF1bHQiKSksdm9pZCAwPT09SGUmJihIZT1zLmdldCgiZGVmYXVsdCIpKSxZZT1zLmdldCgiZXhhbXBsZSIpLHZvaWQgMD09PVllJiYoWWU9cy5nZXQoIngtZXhhbXBsZSIpKSk7Y29uc3QgcnQ9Wj9udWxsOlJlLmNyZWF0ZUVsZW1lbnQoVSx7Zm46XyxnZXRDb21wb25lbnQ6aSx2YWx1ZTpYZSxyZXF1aXJlZDpTZSxkaXNhYmxlZDohdSxkZXNjcmlwdGlvbjpzLmdldCgibmFtZSIpLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2VXcmFwcGVyLGVycm9yczpmZS5nZXQoImVycm9ycyIpLHNjaGVtYTpkZX0pO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJ0ciIseyJkYXRhLXBhcmFtLW5hbWUiOnMuZ2V0KCJuYW1lIiksImRhdGEtcGFyYW0taW4iOnMuZ2V0KCJpbiIpfSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToicGFyYW1ldGVycy1jb2xfbmFtZSJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpTZT8icGFyYW1ldGVyX19uYW1lIHJlcXVpcmVkIjoicGFyYW1ldGVyX19uYW1lIn0scy5nZXQoIm5hbWUiKSxTZT9SZS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCLCoCoiKTpudWxsKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InBhcmFtZXRlcl9fdHlwZSJ9LFBlLHllJiZSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJwcm9wLWZvcm1hdCJ9LCIoJCIseWUsIikiKSksUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJwYXJhbWV0ZXJfX2RlcHJlY2F0ZWQifSxCJiZzLmdldCgiZGVwcmVjYXRlZCIpPyJkZXByZWNhdGVkIjpudWxsKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InBhcmFtZXRlcl9faW4ifSwiKCIscy5nZXQoImluIiksIikiKSksUmUuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6InBhcmFtZXRlcnMtY29sX2Rlc2NyaXB0aW9uIn0scy5nZXQoImRlc2NyaXB0aW9uIik/UmUuY3JlYXRlRWxlbWVudChpZSx7c291cmNlOnMuZ2V0KCJkZXNjcmlwdGlvbiIpfSk6bnVsbCwhWiYmdXx8IXR0P251bGw6UmUuY3JlYXRlRWxlbWVudChpZSx7Y2xhc3NOYW1lOiJwYXJhbWV0ZXJfX2VudW0iLHNvdXJjZToiPGk+QXZhaWxhYmxlIHZhbHVlczwvaT4gOiAiK1dlLm1hcCgoZnVuY3Rpb24ocyl7cmV0dXJuIHN9KSkudG9BcnJheSgpLm1hcChTdHJpbmcpLmpvaW4oIiwgIil9KSwhWiYmdXx8dm9pZCAwPT09SGU/bnVsbDpSZS5jcmVhdGVFbGVtZW50KGllLHtjbGFzc05hbWU6InBhcmFtZXRlcl9fZGVmYXVsdCIsc291cmNlOiI8aT5EZWZhdWx0IHZhbHVlPC9pPiA6ICIrSGV9KSwhWiYmdXx8dm9pZCAwPT09WWU/bnVsbDpSZS5jcmVhdGVFbGVtZW50KGllLHtzb3VyY2U6IjxpPkV4YW1wbGU8L2k+IDogIitZZX0pLGJlJiYhX2UmJlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCwiRXJyb3I6IHlvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEZvcm1EYXRhIiksQiYmcy5nZXQoImV4YW1wbGVzIik/UmUuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIse2NsYXNzTmFtZToicGFyYW1ldGVyLWNvbnRyb2xzIn0sUmUuY3JlYXRlRWxlbWVudChsZSx7ZXhhbXBsZXM6cy5nZXQoImV4YW1wbGVzIiksb25TZWxlY3Q6dGhpcy5fb25FeGFtcGxlU2VsZWN0LHVwZGF0ZVZhbHVlOnRoaXMub25DaGFuZ2VXcmFwcGVyLGdldENvbXBvbmVudDppLGRlZmF1bHRUb0ZpcnN0RXhhbXBsZTohMCxjdXJyZW50S2V5OkwuYWN0aXZlRXhhbXBsZXNNZW1iZXIoLi4uQywicGFyYW1ldGVycyIsdGhpcy5nZXRQYXJhbUtleSgpKSxjdXJyZW50VXNlcklucHV0VmFsdWU6WGV9KSk6bnVsbCxUZXx8JGU/UmUuY3JlYXRlRWxlbWVudChlZSx7Z2V0Q29tcG9uZW50Omksc3BlY1BhdGg6ai5wdXNoKCJzY2hlbWEiKSxnZXRDb25maWdzOmEsaXNFeGVjdXRlOnUsc3BlY1NlbGVjdG9yczp4LHNjaGVtYTpkZSxleGFtcGxlOnJ0fSk6cnQsWiYmZGU/UmUuY3JlYXRlRWxlbWVudChlZSx7Z2V0Q29tcG9uZW50Omksc3BlY1BhdGg6ai5wdXNoKCJzY2hlbWEiKSxnZXRDb25maWdzOmEsaXNFeGVjdXRlOnUsc3BlY1NlbGVjdG9yczp4LHNjaGVtYTpkZSxleGFtcGxlOlosaW5jbHVkZVdyaXRlT25seTohMH0pOm51bGwsIVomJnUmJnMuZ2V0KCJhbGxvd0VtcHR5VmFsdWUiKT9SZS5jcmVhdGVFbGVtZW50KGNlLHtvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlSW5jbHVkZUVtcHR5LGlzSW5jbHVkZWQ6eC5wYXJhbWV0ZXJJbmNsdXNpb25TZXR0aW5nRm9yKEMscy5nZXQoIm5hbWUiKSxzLmdldCgiaW4iKSksaXNEaXNhYmxlZDohaXNFbXB0eVZhbHVlKFhlKX0pOm51bGwsQiYmcy5nZXQoImV4YW1wbGVzIik/UmUuY3JlYXRlRWxlbWVudChwZSx7ZXhhbXBsZTpzLmdldEluKFsiZXhhbXBsZXMiLEwuYWN0aXZlRXhhbXBsZXNNZW1iZXIoLi4uQywicGFyYW1ldGVycyIsdGhpcy5nZXRQYXJhbUtleSgpKV0pLGdldENvbXBvbmVudDppLGdldENvbmZpZ3M6YX0pOm51bGwsViYmUWUuc2l6ZT9RZS5lbnRyeVNlcSgpLm1hcCgoKFtzLG9dKT0+UmUuY3JlYXRlRWxlbWVudChhZSx7a2V5OmAke3N9LSR7b31gLHhLZXk6cyx4VmFsOm99KSkpOm51bGwsJCYmZXQuc2l6ZT9ldC5lbnRyeVNlcSgpLm1hcCgoKFtzLG9dKT0+UmUuY3JlYXRlRWxlbWVudChhZSx7a2V5OmAke3N9LSR7b31gLHhLZXk6cyx4VmFsOm99KSkpOm51bGwpKX19Y2xhc3MgRXhlY3V0ZSBleHRlbmRzIFJlLkNvbXBvbmVudHtoYW5kbGVWYWxpZGF0ZVBhcmFtZXRlcnM9KCk9PntsZXR7c3BlY1NlbGVjdG9yczpzLHNwZWNBY3Rpb25zOm8scGF0aDppLG1ldGhvZDphfT10aGlzLnByb3BzO3JldHVybiBvLnZhbGlkYXRlUGFyYW1zKFtpLGFdKSxzLnZhbGlkYXRlQmVmb3JlRXhlY3V0ZShbaSxhXSl9O2hhbmRsZVZhbGlkYXRlUmVxdWVzdEJvZHk9KCk9PntsZXR7cGF0aDpzLG1ldGhvZDpvLHNwZWNTZWxlY3RvcnM6aSxvYXMzU2VsZWN0b3JzOmEsb2FzM0FjdGlvbnM6dX09dGhpcy5wcm9wcyxfPXttaXNzaW5nQm9keVZhbHVlOiExLG1pc3NpbmdSZXF1aXJlZEtleXM6W119O3UuY2xlYXJSZXF1ZXN0Qm9keVZhbGlkYXRlRXJyb3Ioe3BhdGg6cyxtZXRob2Q6b30pO2xldCB3PWkuZ2V0T0FTM1JlcXVpcmVkUmVxdWVzdEJvZHlDb250ZW50VHlwZShbcyxvXSkseD1hLnJlcXVlc3RCb2R5VmFsdWUocyxvKSxDPWEudmFsaWRhdGVCZWZvcmVFeGVjdXRlKFtzLG9dKSxqPWEucmVxdWVzdENvbnRlbnRUeXBlKHMsbyk7aWYoIUMpcmV0dXJuIF8ubWlzc2luZ0JvZHlWYWx1ZT0hMCx1LnNldFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcih7cGF0aDpzLG1ldGhvZDpvLHZhbGlkYXRpb25FcnJvcnM6X30pLCExO2lmKCF3KXJldHVybiEwO2xldCBMPWEudmFsaWRhdGVTaGFsbG93UmVxdWlyZWQoe29hczNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGU6dyxvYXMzUmVxdWVzdENvbnRlbnRUeXBlOmosb2FzM1JlcXVlc3RCb2R5VmFsdWU6eH0pO3JldHVybiFMfHxMLmxlbmd0aDwxfHwoTC5mb3JFYWNoKChzPT57Xy5taXNzaW5nUmVxdWlyZWRLZXlzLnB1c2gocyl9KSksdS5zZXRSZXF1ZXN0Qm9keVZhbGlkYXRlRXJyb3Ioe3BhdGg6cyxtZXRob2Q6byx2YWxpZGF0aW9uRXJyb3JzOl99KSwhMSl9O2hhbmRsZVZhbGlkYXRpb25SZXN1bHRQYXNzPSgpPT57bGV0e3NwZWNBY3Rpb25zOnMsb3BlcmF0aW9uOm8scGF0aDppLG1ldGhvZDphfT10aGlzLnByb3BzO3RoaXMucHJvcHMub25FeGVjdXRlJiZ0aGlzLnByb3BzLm9uRXhlY3V0ZSgpLHMuZXhlY3V0ZSh7b3BlcmF0aW9uOm8scGF0aDppLG1ldGhvZDphfSl9O2hhbmRsZVZhbGlkYXRpb25SZXN1bHRGYWlsPSgpPT57bGV0e3NwZWNBY3Rpb25zOnMscGF0aDpvLG1ldGhvZDppfT10aGlzLnByb3BzO3MuY2xlYXJWYWxpZGF0ZVBhcmFtcyhbbyxpXSksc2V0VGltZW91dCgoKCk9PntzLnZhbGlkYXRlUGFyYW1zKFtvLGldKX0pLDQwKX07aGFuZGxlVmFsaWRhdGlvblJlc3VsdD1zPT57cz90aGlzLmhhbmRsZVZhbGlkYXRpb25SZXN1bHRQYXNzKCk6dGhpcy5oYW5kbGVWYWxpZGF0aW9uUmVzdWx0RmFpbCgpfTtvbkNsaWNrPSgpPT57bGV0IHM9dGhpcy5oYW5kbGVWYWxpZGF0ZVBhcmFtZXRlcnMoKSxvPXRoaXMuaGFuZGxlVmFsaWRhdGVSZXF1ZXN0Qm9keSgpLGk9cyYmbzt0aGlzLmhhbmRsZVZhbGlkYXRpb25SZXN1bHQoaSl9O29uQ2hhbmdlUHJvZHVjZXNXcmFwcGVyPXM9PnRoaXMucHJvcHMuc3BlY0FjdGlvbnMuY2hhbmdlUHJvZHVjZXNWYWx1ZShbdGhpcy5wcm9wcy5wYXRoLHRoaXMucHJvcHMubWV0aG9kXSxzKTtyZW5kZXIoKXtjb25zdHtkaXNhYmxlZDpzfT10aGlzLnByb3BzO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtjbGFzc05hbWU6ImJ0biBleGVjdXRlIG9wYmxvY2stY29udHJvbF9fYnRuIixvbkNsaWNrOnRoaXMub25DbGljayxkaXNhYmxlZDpzfSwiRXhlY3V0ZSIpfX1jbGFzcyBoZWFkZXJzX0hlYWRlcnMgZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7bGV0e2hlYWRlcnM6cyxnZXRDb21wb25lbnQ6b309dGhpcy5wcm9wcztjb25zdCBpPW8oIlByb3BlcnR5IiksYT1vKCJNYXJrZG93biIsITApO3JldHVybiBzJiZzLnNpemU/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJoZWFkZXJzLXdyYXBwZXIifSxSZS5jcmVhdGVFbGVtZW50KCJoNCIse2NsYXNzTmFtZToiaGVhZGVyc19fdGl0bGUifSwiSGVhZGVyczoiKSxSZS5jcmVhdGVFbGVtZW50KCJ0YWJsZSIse2NsYXNzTmFtZToiaGVhZGVycyJ9LFJlLmNyZWF0ZUVsZW1lbnQoInRoZWFkIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInRyIix7Y2xhc3NOYW1lOiJoZWFkZXItcm93In0sUmUuY3JlYXRlRWxlbWVudCgidGgiLHtjbGFzc05hbWU6ImhlYWRlci1jb2wifSwiTmFtZSIpLFJlLmNyZWF0ZUVsZW1lbnQoInRoIix7Y2xhc3NOYW1lOiJoZWFkZXItY29sIn0sIkRlc2NyaXB0aW9uIiksUmUuY3JlYXRlRWxlbWVudCgidGgiLHtjbGFzc05hbWU6ImhlYWRlci1jb2wifSwiVHlwZSIpKSksUmUuY3JlYXRlRWxlbWVudCgidGJvZHkiLG51bGwscy5lbnRyeVNlcSgpLm1hcCgoKFtzLG9dKT0+e2lmKCFXZSgpLk1hcC5pc01hcChvKSlyZXR1cm4gbnVsbDtjb25zdCB1PW8uZ2V0KCJkZXNjcmlwdGlvbiIpLF89by5nZXRJbihbInNjaGVtYSJdKT9vLmdldEluKFsic2NoZW1hIiwidHlwZSJdKTpvLmdldEluKFsidHlwZSJdKSx3PW8uZ2V0SW4oWyJzY2hlbWEiLCJleGFtcGxlIl0pO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJ0ciIse2tleTpzfSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToiaGVhZGVyLWNvbCJ9LHMpLFJlLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJoZWFkZXItY29sIn0sdT9SZS5jcmVhdGVFbGVtZW50KGEse3NvdXJjZTp1fSk6bnVsbCksUmUuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6ImhlYWRlci1jb2wifSxfLCIgIix3P1JlLmNyZWF0ZUVsZW1lbnQoaSx7cHJvcEtleToiRXhhbXBsZSIscHJvcFZhbDp3LHByb3BDbGFzczoiaGVhZGVyLWV4YW1wbGUifSk6bnVsbCkpfSkpLnRvQXJyYXkoKSkpKTpudWxsfX1jbGFzcyBFcnJvcnMgZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7bGV0e2VkaXRvckFjdGlvbnM6cyxlcnJTZWxlY3RvcnM6byxsYXlvdXRTZWxlY3RvcnM6aSxsYXlvdXRBY3Rpb25zOmEsZ2V0Q29tcG9uZW50OnV9PXRoaXMucHJvcHM7Y29uc3QgXz11KCJDb2xsYXBzZSIpO2lmKHMmJnMuanVtcFRvTGluZSl2YXIgdz1zLmp1bXBUb0xpbmU7bGV0IHg9by5hbGxFcnJvcnMoKS5maWx0ZXIoKHM9PiJ0aHJvd24iPT09cy5nZXQoInR5cGUiKXx8ImVycm9yIj09PXMuZ2V0KCJsZXZlbCIpKSk7aWYoIXh8fHguY291bnQoKTwxKXJldHVybiBudWxsO2xldCBDPWkuaXNTaG93bihbImVycm9yUGFuZSJdLCEwKSxqPXguc29ydEJ5KChzPT5zLmdldCgibGluZSIpKSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoInByZSIse2NsYXNzTmFtZToiZXJyb3JzLXdyYXBwZXIifSxSZS5jcmVhdGVFbGVtZW50KCJoZ3JvdXAiLHtjbGFzc05hbWU6ImVycm9yIn0sUmUuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6ImVycm9yc19fdGl0bGUifSwiRXJyb3JzIiksUmUuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7Y2xhc3NOYW1lOiJidG4gZXJyb3JzX19jbGVhci1idG4iLG9uQ2xpY2s6KCk9PmEuc2hvdyhbImVycm9yUGFuZSJdLCFDKX0sQz8iSGlkZSI6IlNob3ciKSksUmUuY3JlYXRlRWxlbWVudChfLHtpc09wZW5lZDpDLGFuaW1hdGVkOiEwfSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImVycm9ycyJ9LGoubWFwKCgocyxvKT0+e2xldCBpPXMuZ2V0KCJ0eXBlIik7cmV0dXJuInRocm93biI9PT1pfHwiYXV0aCI9PT1pP1JlLmNyZWF0ZUVsZW1lbnQoVGhyb3duRXJyb3JJdGVtLHtrZXk6byxlcnJvcjpzLmdldCgiZXJyb3IiKXx8cyxqdW1wVG9MaW5lOnd9KToic3BlYyI9PT1pP1JlLmNyZWF0ZUVsZW1lbnQoU3BlY0Vycm9ySXRlbSx7a2V5Om8sZXJyb3I6cyxqdW1wVG9MaW5lOnd9KTp2b2lkIDB9KSkpKSl9fWNvbnN0IFRocm93bkVycm9ySXRlbT0oe2Vycm9yOnMsanVtcFRvTGluZTpvfSk9PntpZighcylyZXR1cm4gbnVsbDtsZXQgaT1zLmdldCgibGluZSIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImVycm9yLXdyYXBwZXIifSxzP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJoNCIsbnVsbCxzLmdldCgic291cmNlIikmJnMuZ2V0KCJsZXZlbCIpP3RvVGl0bGVDYXNlKHMuZ2V0KCJzb3VyY2UiKSkrIiAiK3MuZ2V0KCJsZXZlbCIpOiIiLHMuZ2V0KCJwYXRoIik/UmUuY3JlYXRlRWxlbWVudCgic21hbGwiLG51bGwsIiBhdCAiLHMuZ2V0KCJwYXRoIikpOm51bGwpLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1lc3NhZ2UgdGhyb3duIn0scy5nZXQoIm1lc3NhZ2UiKSksUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvci1saW5lIn0saSYmbz9SZS5jcmVhdGVFbGVtZW50KCJhIix7b25DbGljazpvLmJpbmQobnVsbCxpKX0sIkp1bXAgdG8gbGluZSAiLGkpOm51bGwpKTpudWxsKX0sU3BlY0Vycm9ySXRlbT0oe2Vycm9yOnMsanVtcFRvTGluZTpvPW51bGx9KT0+e2xldCBpPW51bGw7cmV0dXJuIHMuZ2V0KCJwYXRoIik/aT16ZS5MaXN0LmlzTGlzdChzLmdldCgicGF0aCIpKT9SZS5jcmVhdGVFbGVtZW50KCJzbWFsbCIsbnVsbCwiYXQgIixzLmdldCgicGF0aCIpLmpvaW4oIi4iKSk6UmUuY3JlYXRlRWxlbWVudCgic21hbGwiLG51bGwsImF0ICIscy5nZXQoInBhdGgiKSk6cy5nZXQoImxpbmUiKSYmIW8mJihpPVJlLmNyZWF0ZUVsZW1lbnQoInNtYWxsIixudWxsLCJvbiBsaW5lICIscy5nZXQoImxpbmUiKSkpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZXJyb3Itd3JhcHBlciJ9LHM/UmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLHRvVGl0bGVDYXNlKHMuZ2V0KCJzb3VyY2UiKSkrIiAiK3MuZ2V0KCJsZXZlbCIpLCLCoCIsaSksUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibWVzc2FnZSJ9LHMuZ2V0KCJtZXNzYWdlIikpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZXJyb3ItbGluZSJ9LG8/UmUuY3JlYXRlRWxlbWVudCgiYSIse29uQ2xpY2s6by5iaW5kKG51bGwscy5nZXQoImxpbmUiKSl9LCJKdW1wIHRvIGxpbmUgIixzLmdldCgibGluZSIpKTpudWxsKSk6bnVsbCl9O2Z1bmN0aW9uIHRvVGl0bGVDYXNlKHMpe3JldHVybihzfHwiIikuc3BsaXQoIiAiKS5tYXAoKHM9PnNbMF0udG9VcHBlckNhc2UoKStzLnNsaWNlKDEpKSkuam9pbigiICIpfWNvbnN0IGNvbnRlbnRfdHlwZV9ub29wPSgpPT57fTtjbGFzcyBDb250ZW50VHlwZSBleHRlbmRzIFJlLkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXtvbkNoYW5nZTpjb250ZW50X3R5cGVfbm9vcCx2YWx1ZTpudWxsLGNvbnRlbnRUeXBlczooMCx6ZS5mcm9tSlMpKFsiYXBwbGljYXRpb24vanNvbiJdKX07Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLnByb3BzLmNvbnRlbnRUeXBlcyYmdGhpcy5wcm9wcy5vbkNoYW5nZSh0aGlzLnByb3BzLmNvbnRlbnRUeXBlcy5maXJzdCgpKX1VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhzKXtzLmNvbnRlbnRUeXBlcyYmcy5jb250ZW50VHlwZXMuc2l6ZSYmKHMuY29udGVudFR5cGVzLmluY2x1ZGVzKHMudmFsdWUpfHxzLm9uQ2hhbmdlKHMuY29udGVudFR5cGVzLmZpcnN0KCkpKX1vbkNoYW5nZVdyYXBwZXI9cz0+dGhpcy5wcm9wcy5vbkNoYW5nZShzLnRhcmdldC52YWx1ZSk7cmVuZGVyKCl7bGV0e2FyaWFDb250cm9sczpzLGFyaWFMYWJlbDpvLGNsYXNzTmFtZTppLGNvbnRlbnRUeXBlczphLGNvbnRyb2xJZDp1LHZhbHVlOl99PXRoaXMucHJvcHM7cmV0dXJuIGEmJmEuc2l6ZT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImNvbnRlbnQtdHlwZS13cmFwcGVyICIrKGl8fCIiKX0sUmUuY3JlYXRlRWxlbWVudCgic2VsZWN0Iix7ImFyaWEtY29udHJvbHMiOnMsImFyaWEtbGFiZWwiOm8sY2xhc3NOYW1lOiJjb250ZW50LXR5cGUiLGlkOnUsb25DaGFuZ2U6dGhpcy5vbkNoYW5nZVdyYXBwZXIsdmFsdWU6X3x8IiJ9LGEubWFwKChzPT5SZS5jcmVhdGVFbGVtZW50KCJvcHRpb24iLHtrZXk6cyx2YWx1ZTpzfSxzKSkpLnRvQXJyYXkoKSkpOm51bGx9fWZ1bmN0aW9uIHhjbGFzcyguLi5zKXtyZXR1cm4gcy5maWx0ZXIoKHM9PiEhcykpLmpvaW4oIiAiKS50cmltKCl9Y2xhc3MgQ29udGFpbmVyIGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe2xldHtmdWxsc2NyZWVuOnMsZnVsbDpvLC4uLml9PXRoaXMucHJvcHM7aWYocylyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIsaSk7bGV0IGE9InN3YWdnZXItY29udGFpbmVyIisobz8iLWZ1bGwiOiIiKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIsTW4oKSh7fSxpLHtjbGFzc05hbWU6eGNsYXNzKGkuY2xhc3NOYW1lLGEpfSkpfX1jb25zdCB0Qz17bW9iaWxlOiIiLHRhYmxldDoiLXRhYmxldCIsZGVza3RvcDoiLWRlc2t0b3AiLGxhcmdlOiItaGQifTtjbGFzcyBDb2wgZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7aGlkZTpzLGtlZXBDb250ZW50czpvLG1vYmlsZTppLHRhYmxldDphLGRlc2t0b3A6dSxsYXJnZTpfLC4uLnd9PXRoaXMucHJvcHM7aWYocyYmIW8pcmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwpO2xldCB4PVtdO2ZvcihsZXQgcyBpbiB0Qyl7aWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0QyxzKSljb250aW51ZTtsZXQgbz10Q1tzXTtpZihzIGluIHRoaXMucHJvcHMpe2xldCBpPXRoaXMucHJvcHNbc107aWYoaTwxKXt4LnB1c2goIm5vbmUiK28pO2NvbnRpbnVlfXgucHVzaCgiYmxvY2siK28pLHgucHVzaCgiY29sLSIraStvKX19cyYmeC5wdXNoKCJoaWRkZW4iKTtsZXQgQz14Y2xhc3Mody5jbGFzc05hbWUsLi4ueCk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24iLE1uKCkoe30sdyx7Y2xhc3NOYW1lOkN9KSl9fWNsYXNzIFJvdyBleHRlbmRzIFJlLkNvbXBvbmVudHtyZW5kZXIoKXtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2IixNbigpKHt9LHRoaXMucHJvcHMse2NsYXNzTmFtZTp4Y2xhc3ModGhpcy5wcm9wcy5jbGFzc05hbWUsIndyYXBwZXIiKX0pKX19Y2xhc3MgQnV0dG9uIGV4dGVuZHMgUmUuQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9e2NsYXNzTmFtZToiIn07cmVuZGVyKCl7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIsTW4oKSh7fSx0aGlzLnByb3BzLHtjbGFzc05hbWU6eGNsYXNzKHRoaXMucHJvcHMuY2xhc3NOYW1lLCJidXR0b24iKX0pKX19Y29uc3QgVGV4dEFyZWE9cz0+UmUuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiLHMpLElucHV0PXM9PlJlLmNyZWF0ZUVsZW1lbnQoImlucHV0IixzKTtjbGFzcyBTZWxlY3QgZXh0ZW5kcyBSZS5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17bXVsdGlwbGU6ITEsYWxsb3dFbXB0eVZhbHVlOiEwfTtjb25zdHJ1Y3RvcihzLG8pe2xldCBpO3N1cGVyKHMsbyksaT1zLnZhbHVlP3MudmFsdWU6cy5tdWx0aXBsZT9bIiJdOiIiLHRoaXMuc3RhdGU9e3ZhbHVlOml9fW9uQ2hhbmdlPXM9PntsZXQgbyx7b25DaGFuZ2U6aSxtdWx0aXBsZTphfT10aGlzLnByb3BzLHU9W10uc2xpY2UuY2FsbChzLnRhcmdldC5vcHRpb25zKTtvPWE/dS5maWx0ZXIoKGZ1bmN0aW9uKHMpe3JldHVybiBzLnNlbGVjdGVkfSkpLm1hcCgoZnVuY3Rpb24ocyl7cmV0dXJuIHMudmFsdWV9KSk6cy50YXJnZXQudmFsdWUsdGhpcy5zZXRTdGF0ZSh7dmFsdWU6b30pLGkmJmkobyl9O1VOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHMpe3MudmFsdWUhPT10aGlzLnByb3BzLnZhbHVlJiZ0aGlzLnNldFN0YXRlKHt2YWx1ZTpzLnZhbHVlfSl9cmVuZGVyKCl7bGV0e2FsbG93ZWRWYWx1ZXM6cyxtdWx0aXBsZTpvLGFsbG93RW1wdHlWYWx1ZTppLGRpc2FibGVkOmF9PXRoaXMucHJvcHMsdT10aGlzLnN0YXRlLnZhbHVlPy50b0pTPy4oKXx8dGhpcy5zdGF0ZS52YWx1ZTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgic2VsZWN0Iix7Y2xhc3NOYW1lOnRoaXMucHJvcHMuY2xhc3NOYW1lLG11bHRpcGxlOm8sdmFsdWU6dSxvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlLGRpc2FibGVkOmF9LGk/UmUuY3JlYXRlRWxlbWVudCgib3B0aW9uIix7dmFsdWU6IiJ9LCItLSIpOm51bGwscy5tYXAoKGZ1bmN0aW9uKHMsbyl7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIse2tleTpvLHZhbHVlOlN0cmluZyhzKX0sU3RyaW5nKHMpKX0pKSl9fWNsYXNzIGxheW91dF91dGlsc19MaW5rIGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJhIixNbigpKHt9LHRoaXMucHJvcHMse3JlbDoibm9vcGVuZXIgbm9yZWZlcnJlciIsY2xhc3NOYW1lOnhjbGFzcyh0aGlzLnByb3BzLmNsYXNzTmFtZSwibGluayIpfSkpfX1jb25zdCBOb01hcmdpbj0oe2NoaWxkcmVuOnN9KT0+UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJuby1tYXJnaW4ifSwiICIscywiICIpO2NsYXNzIENvbGxhcHNlIGV4dGVuZHMgUmUuQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9e2lzT3BlbmVkOiExLGFuaW1hdGVkOiExfTtyZW5kZXJOb3RBbmltYXRlZCgpe3JldHVybiB0aGlzLnByb3BzLmlzT3BlbmVkP1JlLmNyZWF0ZUVsZW1lbnQoTm9NYXJnaW4sbnVsbCx0aGlzLnByb3BzLmNoaWxkcmVuKTpSZS5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIsbnVsbCl9cmVuZGVyKCl7bGV0e2FuaW1hdGVkOnMsaXNPcGVuZWQ6byxjaGlsZHJlbjppfT10aGlzLnByb3BzO3JldHVybiBzPyhpPW8/aTpudWxsLFJlLmNyZWF0ZUVsZW1lbnQoTm9NYXJnaW4sbnVsbCxpKSk6dGhpcy5yZW5kZXJOb3RBbmltYXRlZCgpfX1jbGFzcyBPdmVydmlldyBleHRlbmRzIFJlLkNvbXBvbmVudHtjb25zdHJ1Y3RvciguLi5zKXtzdXBlciguLi5zKSx0aGlzLnNldFRhZ1Nob3duPXRoaXMuX3NldFRhZ1Nob3duLmJpbmQodGhpcyl9X3NldFRhZ1Nob3duKHMsbyl7dGhpcy5wcm9wcy5sYXlvdXRBY3Rpb25zLnNob3cocyxvKX1zaG93T3AocyxvKXtsZXR7bGF5b3V0QWN0aW9uczppfT10aGlzLnByb3BzO2kuc2hvdyhzLG8pfXJlbmRlcigpe2xldHtzcGVjU2VsZWN0b3JzOnMsbGF5b3V0U2VsZWN0b3JzOm8sbGF5b3V0QWN0aW9uczppLGdldENvbXBvbmVudDphfT10aGlzLnByb3BzLHU9cy50YWdnZWRPcGVyYXRpb25zKCk7Y29uc3QgXz1hKCJDb2xsYXBzZSIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6Im92ZXJ2aWV3LXRpdGxlIn0sIk92ZXJ2aWV3IiksdS5tYXAoKChzLGEpPT57bGV0IHU9cy5nZXQoIm9wZXJhdGlvbnMiKSx3PVsib3ZlcnZpZXctdGFncyIsYV0seD1vLmlzU2hvd24odywhMCk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleToib3ZlcnZpZXctIithfSxSZS5jcmVhdGVFbGVtZW50KCJoNCIse29uQ2xpY2s6KCk9Pmkuc2hvdyh3LCF4KSxjbGFzc05hbWU6Imxpbmsgb3ZlcnZpZXctdGFnIn0sIiAiLHg/Ii0iOiIrIixhKSxSZS5jcmVhdGVFbGVtZW50KF8se2lzT3BlbmVkOngsYW5pbWF0ZWQ6ITB9LHUubWFwKChzPT57bGV0e3BhdGg6YSxtZXRob2Q6dSxpZDpffT1zLnRvT2JqZWN0KCksdz0ib3BlcmF0aW9ucyIseD1fLEM9by5pc1Nob3duKFt3LHhdKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChPcGVyYXRpb25MaW5rLHtrZXk6XyxwYXRoOmEsbWV0aG9kOnUsaWQ6YSsiLSIrdSxzaG93bjpDLHNob3dPcElkOngsc2hvd09wSWRQcmVmaXg6dyxocmVmOmAjb3BlcmF0aW9uLSR7eH1gLG9uQ2xpY2s6aS5zaG93fSl9KSkudG9BcnJheSgpKSl9KSkudG9BcnJheSgpLHUuc2l6ZTwxJiZSZS5jcmVhdGVFbGVtZW50KCJoMyIsbnVsbCwiIE5vIG9wZXJhdGlvbnMgZGVmaW5lZCBpbiBzcGVjISAiKSl9fWNsYXNzIE9wZXJhdGlvbkxpbmsgZXh0ZW5kcyBSZS5Db21wb25lbnR7Y29uc3RydWN0b3Iocyl7c3VwZXIocyksdGhpcy5vbkNsaWNrPXRoaXMuX29uQ2xpY2suYmluZCh0aGlzKX1fb25DbGljaygpe2xldHtzaG93T3BJZDpzLHNob3dPcElkUHJlZml4Om8sb25DbGljazppLHNob3duOmF9PXRoaXMucHJvcHM7aShbbyxzXSwhYSl9cmVuZGVyKCl7bGV0e2lkOnMsbWV0aG9kOm8sc2hvd246aSxocmVmOmF9PXRoaXMucHJvcHM7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQobGF5b3V0X3V0aWxzX0xpbmsse2hyZWY6YSxvbkNsaWNrOnRoaXMub25DbGljayxjbGFzc05hbWU6ImJsb2NrIG9wYmxvY2stbGluayAiKyhpPyJzaG93biI6IiIpfSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgic21hbGwiLHtjbGFzc05hbWU6YGJvbGQtbGFiZWwtJHtvfWB9LG8udG9VcHBlckNhc2UoKSksUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiYm9sZC1sYWJlbCJ9LHMpKSl9fWNsYXNzIEluaXRpYWxpemVkSW5wdXQgZXh0ZW5kcyBSZS5Db21wb25lbnR7Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLnByb3BzLmluaXRpYWxWYWx1ZSYmKHRoaXMuaW5wdXRSZWYudmFsdWU9dGhpcy5wcm9wcy5pbml0aWFsVmFsdWUpfXJlbmRlcigpe2NvbnN0e3ZhbHVlOnMsZGVmYXVsdFZhbHVlOm8saW5pdGlhbFZhbHVlOmksLi4uYX09dGhpcy5wcm9wcztyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiaW5wdXQiLE1uKCkoe30sYSx7cmVmOnM9PnRoaXMuaW5wdXRSZWY9c30pKX19Y2xhc3MgSW5mb0Jhc2VQYXRoIGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e2hvc3Q6cyxiYXNlUGF0aDpvfT10aGlzLnByb3BzO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJwcmUiLHtjbGFzc05hbWU6ImJhc2UtdXJsIn0sIlsgQmFzZSBVUkw6ICIscyxvLCIgXSIpfX1jbGFzcyBJbmZvVXJsIGV4dGVuZHMgUmUuUHVyZUNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHt1cmw6cyxnZXRDb21wb25lbnQ6b309dGhpcy5wcm9wcyxpPW8oIkxpbmsiKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChpLHt0YXJnZXQ6Il9ibGFuayIsaHJlZjpzYW5pdGl6ZVVybChzKX0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToidXJsIn0sIiAiLHMpKX19Y2xhc3MgaW5mb19JbmZvIGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e2luZm86cyx1cmw6byxob3N0OmksYmFzZVBhdGg6YSxnZXRDb21wb25lbnQ6dSxleHRlcm5hbERvY3M6XyxzZWxlY3RlZFNlcnZlcjp3LHVybDp4fT10aGlzLnByb3BzLEM9cy5nZXQoInZlcnNpb24iKSxqPXMuZ2V0KCJkZXNjcmlwdGlvbiIpLEw9cy5nZXQoInRpdGxlIiksQj1zYWZlQnVpbGRVcmwocy5nZXQoInRlcm1zT2ZTZXJ2aWNlIikseCx7c2VsZWN0ZWRTZXJ2ZXI6d30pLCQ9cy5nZXQoImNvbnRhY3QiKSxWPXMuZ2V0KCJsaWNlbnNlIiksVT1zYWZlQnVpbGRVcmwoXyYmXy5nZXQoInVybCIpLHgse3NlbGVjdGVkU2VydmVyOnd9KSx6PV8mJl8uZ2V0KCJkZXNjcmlwdGlvbiIpLFk9dSgiTWFya2Rvd24iLCEwKSxaPXUoIkxpbmsiKSxlZT11KCJWZXJzaW9uU3RhbXAiKSxpZT11KCJPcGVuQVBJVmVyc2lvbiIpLGFlPXUoIkluZm9VcmwiKSxjZT11KCJJbmZvQmFzZVBhdGgiKSxsZT11KCJMaWNlbnNlIikscGU9dSgiQ29udGFjdCIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm8ifSxSZS5jcmVhdGVFbGVtZW50KCJoZ3JvdXAiLHtjbGFzc05hbWU6Im1haW4ifSxSZS5jcmVhdGVFbGVtZW50KCJoMiIse2NsYXNzTmFtZToidGl0bGUifSxMLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsQyYmUmUuY3JlYXRlRWxlbWVudChlZSx7dmVyc2lvbjpDfSksUmUuY3JlYXRlRWxlbWVudChpZSx7b2FzVmVyc2lvbjoiMi4wIn0pKSksaXx8YT9SZS5jcmVhdGVFbGVtZW50KGNlLHtob3N0OmksYmFzZVBhdGg6YX0pOm51bGwsbyYmUmUuY3JlYXRlRWxlbWVudChhZSx7Z2V0Q29tcG9uZW50OnUsdXJsOm99KSksUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJkZXNjcmlwdGlvbiJ9LFJlLmNyZWF0ZUVsZW1lbnQoWSx7c291cmNlOmp9KSksQiYmUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJpbmZvX190b3MifSxSZS5jcmVhdGVFbGVtZW50KFose3RhcmdldDoiX2JsYW5rIixocmVmOnNhbml0aXplVXJsKEIpfSwiVGVybXMgb2Ygc2VydmljZSIpKSwkPy5zaXplPjAmJlJlLmNyZWF0ZUVsZW1lbnQocGUse2dldENvbXBvbmVudDp1LGRhdGE6JCxzZWxlY3RlZFNlcnZlcjp3LHVybDpvfSksVj8uc2l6ZT4wJiZSZS5jcmVhdGVFbGVtZW50KGxlLHtnZXRDb21wb25lbnQ6dSxsaWNlbnNlOlYsc2VsZWN0ZWRTZXJ2ZXI6dyx1cmw6b30pLFU/UmUuY3JlYXRlRWxlbWVudChaLHtjbGFzc05hbWU6ImluZm9fX2V4dGRvY3MiLHRhcmdldDoiX2JsYW5rIixocmVmOnNhbml0aXplVXJsKFUpfSx6fHxVKTpudWxsKX19Y29uc3QgckM9aW5mb19JbmZvO2NsYXNzIEluZm9Db250YWluZXIgZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7c3BlY1NlbGVjdG9yczpzLGdldENvbXBvbmVudDpvLG9hczNTZWxlY3RvcnM6aX09dGhpcy5wcm9wcyxhPXMuaW5mbygpLHU9cy51cmwoKSxfPXMuYmFzZVBhdGgoKSx3PXMuaG9zdCgpLHg9cy5leHRlcm5hbERvY3MoKSxDPWkuc2VsZWN0ZWRTZXJ2ZXIoKSxqPW8oImluZm8iKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLGEmJmEuY291bnQoKT9SZS5jcmVhdGVFbGVtZW50KGose2luZm86YSx1cmw6dSxob3N0OncsYmFzZVBhdGg6XyxleHRlcm5hbERvY3M6eCxnZXRDb21wb25lbnQ6byxzZWxlY3RlZFNlcnZlcjpDfSk6bnVsbCl9fWNsYXNzIGNvbnRhY3RfQ29udGFjdCBleHRlbmRzIFJlLkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHtkYXRhOnMsZ2V0Q29tcG9uZW50Om8sc2VsZWN0ZWRTZXJ2ZXI6aSx1cmw6YX09dGhpcy5wcm9wcyx1PXMuZ2V0KCJuYW1lIiwidGhlIGRldmVsb3BlciIpLF89c2FmZUJ1aWxkVXJsKHMuZ2V0KCJ1cmwiKSxhLHtzZWxlY3RlZFNlcnZlcjppfSksdz1zLmdldCgiZW1haWwiKSx4PW8oIkxpbmsiKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJpbmZvX19jb250YWN0In0sXyYmUmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoeCx7aHJlZjpzYW5pdGl6ZVVybChfKSx0YXJnZXQ6Il9ibGFuayJ9LHUsIiAtIFdlYnNpdGUiKSksdyYmUmUuY3JlYXRlRWxlbWVudCh4LHtocmVmOnNhbml0aXplVXJsKGBtYWlsdG86JHt3fWApfSxfP2BTZW5kIGVtYWlsIHRvICR7dX1gOmBDb250YWN0ICR7dX1gKSl9fWNvbnN0IG5DPWNvbnRhY3RfQ29udGFjdDtjbGFzcyBsaWNlbnNlX0xpY2Vuc2UgZXh0ZW5kcyBSZS5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7bGljZW5zZTpzLGdldENvbXBvbmVudDpvLHNlbGVjdGVkU2VydmVyOmksdXJsOmF9PXRoaXMucHJvcHMsdT1zLmdldCgibmFtZSIsIkxpY2Vuc2UiKSxfPXNhZmVCdWlsZFVybChzLmdldCgidXJsIiksYSx7c2VsZWN0ZWRTZXJ2ZXI6aX0pLHc9bygiTGluayIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm9fX2xpY2Vuc2UifSxfP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaW5mb19fbGljZW5zZV9fdXJsIn0sUmUuY3JlYXRlRWxlbWVudCh3LHt0YXJnZXQ6Il9ibGFuayIsaHJlZjpzYW5pdGl6ZVVybChfKX0sdSkpOlJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsdSkpfX1jb25zdCBzQz1saWNlbnNlX0xpY2Vuc2U7Y2xhc3MgSnVtcFRvUGF0aCBleHRlbmRzIFJlLkNvbXBvbmVudHtyZW5kZXIoKXtyZXR1cm4gbnVsbH19Y2xhc3MgQ29weVRvQ2xpcGJvYXJkQnRuIGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6c309dGhpcy5wcm9wcztjb25zdCBvPXMoIkNvcHlJY29uIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidmlldy1saW5lLWxpbmsgY29weS10by1jbGlwYm9hcmQiLHRpdGxlOiJDb3B5IHRvIGNsaXBib2FyZCJ9LFJlLmNyZWF0ZUVsZW1lbnQoSG4uQ29weVRvQ2xpcGJvYXJkLHt0ZXh0OnRoaXMucHJvcHMudGV4dFRvQ29weX0sUmUuY3JlYXRlRWxlbWVudChvLG51bGwpKSl9fWNsYXNzIEZvb3RlciBleHRlbmRzIFJlLkNvbXBvbmVudHtyZW5kZXIoKXtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJmb290ZXIifSl9fWNsYXNzIEZpbHRlckNvbnRhaW5lciBleHRlbmRzIFJlLkNvbXBvbmVudHtvbkZpbHRlckNoYW5nZT1zPT57Y29uc3R7dGFyZ2V0Ont2YWx1ZTpvfX09czt0aGlzLnByb3BzLmxheW91dEFjdGlvbnMudXBkYXRlRmlsdGVyKG8pfTtyZW5kZXIoKXtjb25zdHtzcGVjU2VsZWN0b3JzOnMsbGF5b3V0U2VsZWN0b3JzOm8sZ2V0Q29tcG9uZW50Oml9PXRoaXMucHJvcHMsYT1pKCJDb2wiKSx1PSJsb2FkaW5nIj09PXMubG9hZGluZ1N0YXR1cygpLF89ImZhaWxlZCI9PT1zLmxvYWRpbmdTdGF0dXMoKSx3PW8uY3VycmVudEZpbHRlcigpLHg9WyJvcGVyYXRpb24tZmlsdGVyLWlucHV0Il07cmV0dXJuIF8mJngucHVzaCgiZmFpbGVkIiksdSYmeC5wdXNoKCJsb2FkaW5nIiksUmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLCExPT09dz9udWxsOlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZmlsdGVyLWNvbnRhaW5lciJ9LFJlLmNyZWF0ZUVsZW1lbnQoYSx7Y2xhc3NOYW1lOiJmaWx0ZXIgd3JhcHBlciIsbW9iaWxlOjEyfSxSZS5jcmVhdGVFbGVtZW50KCJpbnB1dCIse2NsYXNzTmFtZTp4LmpvaW4oIiAiKSxwbGFjZWhvbGRlcjoiRmlsdGVyIGJ5IHRhZyIsdHlwZToidGV4dCIsb25DaGFuZ2U6dGhpcy5vbkZpbHRlckNoYW5nZSx2YWx1ZToic3RyaW5nIj09dHlwZW9mIHc/dzoiIixkaXNhYmxlZDp1fSkpKSl9fWNvbnN0IG9DPUZ1bmN0aW9uLnByb3RvdHlwZTtjbGFzcyBQYXJhbUJvZHkgZXh0ZW5kcyBSZS5QdXJlQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcD17Y29uc3VtZXM6KDAsemUuZnJvbUpTKShbImFwcGxpY2F0aW9uL2pzb24iXSkscGFyYW06KDAsemUuZnJvbUpTKSh7fSksb25DaGFuZ2U6b0Msb25DaGFuZ2VDb25zdW1lczpvQ307Y29uc3RydWN0b3IocyxvKXtzdXBlcihzLG8pLHRoaXMuc3RhdGU9e2lzRWRpdEJveDohMSx2YWx1ZToiIn19Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLnVwZGF0ZVZhbHVlcy5jYWxsKHRoaXMsdGhpcy5wcm9wcyl9VU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMocyl7dGhpcy51cGRhdGVWYWx1ZXMuY2FsbCh0aGlzLHMpfXVwZGF0ZVZhbHVlcz1zPT57bGV0e3BhcmFtOm8saXNFeGVjdXRlOmksY29uc3VtZXNWYWx1ZTphPSIifT1zLHU9L3htbC9pLnRlc3QoYSksXz0vanNvbi9pLnRlc3QoYSksdz11P28uZ2V0KCJ2YWx1ZV94bWwiKTpvLmdldCgidmFsdWUiKTtpZih2b2lkIDAhPT13KXtsZXQgcz0hdyYmXz8ie30iOnc7dGhpcy5zZXRTdGF0ZSh7dmFsdWU6c30pLHRoaXMub25DaGFuZ2Uocyx7aXNYbWw6dSxpc0VkaXRCb3g6aX0pfWVsc2UgdT90aGlzLm9uQ2hhbmdlKHRoaXMuc2FtcGxlKCJ4bWwiKSx7aXNYbWw6dSxpc0VkaXRCb3g6aX0pOnRoaXMub25DaGFuZ2UodGhpcy5zYW1wbGUoKSx7aXNFZGl0Qm94Oml9KX07c2FtcGxlPXM9PntsZXR7cGFyYW06byxmbjppfT10aGlzLnByb3BzLGE9aS5pbmZlclNjaGVtYShvLnRvSlMoKSk7cmV0dXJuIGkuZ2V0U2FtcGxlU2NoZW1hKGEscyx7aW5jbHVkZVdyaXRlT25seTohMH0pfTtvbkNoYW5nZT0ocyx7aXNFZGl0Qm94Om8saXNYbWw6aX0pPT57dGhpcy5zZXRTdGF0ZSh7dmFsdWU6cyxpc0VkaXRCb3g6b30pLHRoaXMuX29uQ2hhbmdlKHMsaSl9O19vbkNoYW5nZT0ocyxvKT0+eyh0aGlzLnByb3BzLm9uQ2hhbmdlfHxvQykocyxvKX07aGFuZGxlT25DaGFuZ2U9cz0+e2NvbnN0e2NvbnN1bWVzVmFsdWU6b309dGhpcy5wcm9wcyxpPS94bWwvaS50ZXN0KG8pLGE9cy50YXJnZXQudmFsdWU7dGhpcy5vbkNoYW5nZShhLHtpc1htbDppLGlzRWRpdEJveDp0aGlzLnN0YXRlLmlzRWRpdEJveH0pfTt0b2dnbGVJc0VkaXRCb3g9KCk9PnRoaXMuc2V0U3RhdGUoKHM9Pih7aXNFZGl0Qm94OiFzLmlzRWRpdEJveH0pKSk7cmVuZGVyKCl7bGV0e29uQ2hhbmdlQ29uc3VtZXM6cyxwYXJhbTpvLGlzRXhlY3V0ZTppLHNwZWNTZWxlY3RvcnM6YSxwYXRoTWV0aG9kOnUsZ2V0Q29tcG9uZW50Ol99PXRoaXMucHJvcHM7Y29uc3Qgdz1fKCJCdXR0b24iKSx4PV8oIlRleHRBcmVhIiksQz1fKCJIaWdobGlnaHRDb2RlIiwhMCksaj1fKCJjb250ZW50VHlwZSIpO2xldCBMPShhP2EucGFyYW1ldGVyV2l0aE1ldGFCeUlkZW50aXR5KHUsbyk6bykuZ2V0KCJlcnJvcnMiLCgwLHplLkxpc3QpKCkpLEI9YS5jb250ZW50VHlwZVZhbHVlcyh1KS5nZXQoInJlcXVlc3RDb250ZW50VHlwZSIpLCQ9dGhpcy5wcm9wcy5jb25zdW1lcyYmdGhpcy5wcm9wcy5jb25zdW1lcy5zaXplP3RoaXMucHJvcHMuY29uc3VtZXM6UGFyYW1Cb2R5LmRlZmF1bHRQcm9wLmNvbnN1bWVzLHt2YWx1ZTpWLGlzRWRpdEJveDpVfT10aGlzLnN0YXRlLHo9bnVsbDtnZXRLbm93blN5bnRheEhpZ2hsaWdodGVyTGFuZ3VhZ2UoVikmJih6PSJqc29uIik7Y29uc3QgWT1gJHtjcmVhdGVIdG1sUmVhZHlJZChgJHt1WzFdfSR7dVswXX1fcGFyYW1ldGVyc2ApfV9zZWxlY3RgO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImJvZHktcGFyYW0iLCJkYXRhLXBhcmFtLW5hbWUiOm8uZ2V0KCJuYW1lIiksImRhdGEtcGFyYW0taW4iOm8uZ2V0KCJpbiIpfSxVJiZpP1JlLmNyZWF0ZUVsZW1lbnQoeCx7Y2xhc3NOYW1lOiJib2R5LXBhcmFtX190ZXh0IisoTC5jb3VudCgpPyIgaW52YWxpZCI6IiIpLHZhbHVlOlYsb25DaGFuZ2U6dGhpcy5oYW5kbGVPbkNoYW5nZX0pOlYmJlJlLmNyZWF0ZUVsZW1lbnQoQyx7Y2xhc3NOYW1lOiJib2R5LXBhcmFtX19leGFtcGxlIixsYW5ndWFnZTp6fSxWKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImJvZHktcGFyYW0tb3B0aW9ucyJ9LGk/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJib2R5LXBhcmFtLWVkaXQifSxSZS5jcmVhdGVFbGVtZW50KHcse2NsYXNzTmFtZTpVPyJidG4gY2FuY2VsIGJvZHktcGFyYW1fX2V4YW1wbGUtZWRpdCI6ImJ0biBlZGl0IGJvZHktcGFyYW1fX2V4YW1wbGUtZWRpdCIsb25DbGljazp0aGlzLnRvZ2dsZUlzRWRpdEJveH0sVT8iQ2FuY2VsIjoiRWRpdCIpKTpudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjpZfSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCJQYXJhbWV0ZXIgY29udGVudCB0eXBlIiksUmUuY3JlYXRlRWxlbWVudChqLHt2YWx1ZTpCLGNvbnRlbnRUeXBlczokLG9uQ2hhbmdlOnMsY2xhc3NOYW1lOiJib2R5LXBhcmFtLWNvbnRlbnQtdHlwZSIsYXJpYUxhYmVsOiJQYXJhbWV0ZXIgY29udGVudCB0eXBlIixjb250cm9sSWQ6WX0pKSkpfX1jbGFzcyBDdXJsIGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e3JlcXVlc3Q6cyxnZXRDb21wb25lbnQ6b309dGhpcy5wcm9wcyxpPXJlcXVlc3RTbmlwcGV0R2VuZXJhdG9yX2N1cmxfYmFzaChzKSxhPW8oIlN5bnRheEhpZ2hsaWdodGVyIiwhMCk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiY3VybC1jb21tYW5kIn0sUmUuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsIkN1cmwiKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImNvcHktdG8tY2xpcGJvYXJkIn0sUmUuY3JlYXRlRWxlbWVudChIbi5Db3B5VG9DbGlwYm9hcmQse3RleHQ6aX0sUmUuY3JlYXRlRWxlbWVudCgiYnV0dG9uIixudWxsKSkpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KGEse2xhbmd1YWdlOiJiYXNoIixjbGFzc05hbWU6ImN1cmwgbWljcm9saWdodCIscmVuZGVyUGxhaW5UZXh0Oih7Y2hpbGRyZW46cyxQbGFpblRleHRWaWV3ZXI6b30pPT5SZS5jcmVhdGVFbGVtZW50KG8se2NsYXNzTmFtZToiY3VybCJ9LHMpfSxpKSkpfX1jb25zdCBwcm9wZXJ0eT0oe3Byb3BLZXk6cyxwcm9wVmFsOm8scHJvcENsYXNzOml9KT0+UmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTppfSxSZS5jcmVhdGVFbGVtZW50KCJiciIsbnVsbCkscywiOiAiLFN0cmluZyhvKSk7Y2xhc3MgVHJ5SXRPdXRCdXR0b24gZXh0ZW5kcyBSZS5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17b25UcnlvdXRDbGljazpGdW5jdGlvbi5wcm90b3R5cGUsb25DYW5jZWxDbGljazpGdW5jdGlvbi5wcm90b3R5cGUsb25SZXNldENsaWNrOkZ1bmN0aW9uLnByb3RvdHlwZSxlbmFibGVkOiExLGhhc1VzZXJFZGl0ZWRCb2R5OiExLGlzT0FTMzohMX07cmVuZGVyKCl7Y29uc3R7b25UcnlvdXRDbGljazpzLG9uQ2FuY2VsQ2xpY2s6byxvblJlc2V0Q2xpY2s6aSxlbmFibGVkOmEsaGFzVXNlckVkaXRlZEJvZHk6dSxpc09BUzM6X309dGhpcy5wcm9wcyx3PV8mJnU7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp3PyJ0cnktb3V0IGJ0bi1ncm91cCI6InRyeS1vdXQifSxhP1JlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse2NsYXNzTmFtZToiYnRuIHRyeS1vdXRfX2J0biBjYW5jZWwiLG9uQ2xpY2s6b30sIkNhbmNlbCIpOlJlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse2NsYXNzTmFtZToiYnRuIHRyeS1vdXRfX2J0biIsb25DbGljazpzfSwiVHJ5IGl0IG91dCAiKSx3JiZSZS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtjbGFzc05hbWU6ImJ0biB0cnktb3V0X19idG4gcmVzZXQiLG9uQ2xpY2s6aX0sIlJlc2V0IikpfX1jbGFzcyBWZXJzaW9uUHJhZ21hRmlsdGVyIGV4dGVuZHMgUmUuUHVyZUNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXthbHNvU2hvdzpudWxsLGNoaWxkcmVuOm51bGwsYnlwYXNzOiExfTtyZW5kZXIoKXtjb25zdHtieXBhc3M6cyxpc1N3YWdnZXIyOm8saXNPQVMzOmksYWxzb1Nob3c6YX09dGhpcy5wcm9wcztyZXR1cm4gcz9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsdGhpcy5wcm9wcy5jaGlsZHJlbik6byYmaT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InZlcnNpb24tcHJhZ21hIn0sYSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InZlcnNpb24tcHJhZ21hX19tZXNzYWdlIHZlcnNpb24tcHJhZ21hX19tZXNzYWdlLS1hbWJpZ3VvdXMifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiaDMiLG51bGwsIlVuYWJsZSB0byByZW5kZXIgdGhpcyBkZWZpbml0aW9uIiksUmUuY3JlYXRlRWxlbWVudCgicCIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJzd2FnZ2VyIiksIiBhbmQgIixSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJvcGVuYXBpIiksIiBmaWVsZHMgY2Fubm90IGJlIHByZXNlbnQgaW4gdGhlIHNhbWUgU3dhZ2dlciBvciBPcGVuQVBJIGRlZmluaXRpb24uIFBsZWFzZSByZW1vdmUgb25lIG9mIHRoZSBmaWVsZHMuIiksUmUuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiU3VwcG9ydGVkIHZlcnNpb24gZmllbGRzIGFyZSAiLFJlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsInN3YWdnZXI6ICIsJyIyLjAiJyksIiBhbmQgdGhvc2UgdGhhdCBtYXRjaCAiLFJlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIm9wZW5hcGk6IDMuMC5uIiksIiAoZm9yIGV4YW1wbGUsICIsUmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwib3BlbmFwaTogMy4wLjQiKSwiKS4iKSkpKTpvfHxpP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCx0aGlzLnByb3BzLmNoaWxkcmVuKTpSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InZlcnNpb24tcHJhZ21hIn0sYSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InZlcnNpb24tcHJhZ21hX19tZXNzYWdlIHZlcnNpb24tcHJhZ21hX19tZXNzYWdlLS1taXNzaW5nIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImgzIixudWxsLCJVbmFibGUgdG8gcmVuZGVyIHRoaXMgZGVmaW5pdGlvbiIpLFJlLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIlRoZSBwcm92aWRlZCBkZWZpbml0aW9uIGRvZXMgbm90IHNwZWNpZnkgYSB2YWxpZCB2ZXJzaW9uIGZpZWxkLiIpLFJlLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIlBsZWFzZSBpbmRpY2F0ZSBhIHZhbGlkIFN3YWdnZXIgb3IgT3BlbkFQSSB2ZXJzaW9uIGZpZWxkLiBTdXBwb3J0ZWQgdmVyc2lvbiBmaWVsZHMgYXJlICIsUmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwic3dhZ2dlcjogIiwnIjIuMCInKSwiIGFuZCB0aG9zZSB0aGF0IG1hdGNoICIsUmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwib3BlbmFwaTogMy4wLm4iKSwiIChmb3IgZXhhbXBsZSwgIixSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJvcGVuYXBpOiAzLjAuNCIpLCIpLiIpKSkpfX1jb25zdCB2ZXJzaW9uX3N0YW1wPSh7dmVyc2lvbjpzfSk9PlJlLmNyZWF0ZUVsZW1lbnQoInNtYWxsIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInByZSIse2NsYXNzTmFtZToidmVyc2lvbiJ9LCIgIixzLCIgIikpLG9wZW5hcGlfdmVyc2lvbj0oe29hc1ZlcnNpb246c30pPT5SZS5jcmVhdGVFbGVtZW50KCJzbWFsbCIse2NsYXNzTmFtZToidmVyc2lvbi1zdGFtcCJ9LFJlLmNyZWF0ZUVsZW1lbnQoInByZSIse2NsYXNzTmFtZToidmVyc2lvbiJ9LCJPQVMgIixzKSksZGVlcF9saW5rPSh7ZW5hYmxlZDpzLHBhdGg6byx0ZXh0Oml9KT0+UmUuY3JlYXRlRWxlbWVudCgiYSIse2NsYXNzTmFtZToibm9zdHlsZSIsb25DbGljazpzP3M9PnMucHJldmVudERlZmF1bHQoKTpudWxsLGhyZWY6cz9gIy8ke299YDpudWxsfSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLGkpKSxzdmdfYXNzZXRzPSgpPT5SZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4bWxuc1hsaW5rOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIixjbGFzc05hbWU6InN2Zy1hc3NldHMifSxSZS5jcmVhdGVFbGVtZW50KCJkZWZzIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInN5bWJvbCIse3ZpZXdCb3g6IjAgMCAyMCAyMCIsaWQ6InVubG9ja2VkIn0sUmUuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xNS44IDhIMTRWNS42QzE0IDIuNzAzIDEyLjY2NSAxIDEwIDEgNy4zMzQgMSA2IDIuNzAzIDYgNS42VjZoMnYtLjgwMUM4IDMuNzU0IDguNzk3IDMgMTAgM2MxLjIwMyAwIDIgLjc1NCAyIDIuMTk5VjhINGMtLjU1MyAwLTEgLjY0Ni0xIDEuMTk5VjE3YzAgLjU0OS40MjggMS4xMzkuOTUxIDEuMzA3bDEuMTk3LjM4N0M1LjY3MiAxOC44NjEgNi41NSAxOSA3LjEgMTloNS44Yy41NDkgMCAxLjQyOC0uMTM5IDEuOTUxLS4zMDdsMS4xOTYtLjM4N2MuNTI0LS4xNjcuOTUzLS43NTcuOTUzLTEuMzA2VjkuMTk5QzE3IDguNjQ2IDE2LjM1MiA4IDE1LjggOHoifSkpLFJlLmNyZWF0ZUVsZW1lbnQoInN5bWJvbCIse3ZpZXdCb3g6IjAgMCAyMCAyMCIsaWQ6ImxvY2tlZCJ9LFJlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTUuOCA4SDE0VjUuNkMxNCAyLjcwMyAxMi42NjUgMSAxMCAxIDcuMzM0IDEgNiAyLjcwMyA2IDUuNlY4SDRjLS41NTMgMC0xIC42NDYtMSAxLjE5OVYxN2MwIC41NDkuNDI4IDEuMTM5Ljk1MSAxLjMwN2wxLjE5Ny4zODdDNS42NzIgMTguODYxIDYuNTUgMTkgNy4xIDE5aDUuOGMuNTQ5IDAgMS40MjgtLjEzOSAxLjk1MS0uMzA3bDEuMTk2LS4zODdjLjUyNC0uMTY3Ljk1My0uNzU3Ljk1My0xLjMwNlY5LjE5OUMxNyA4LjY0NiAxNi4zNTIgOCAxNS44IDh6TTEyIDhIOFY1LjE5OUM4IDMuNzU0IDguNzk3IDMgMTAgM2MxLjIwMyAwIDIgLjc1NCAyIDIuMTk5Vjh6In0pKSxSZS5jcmVhdGVFbGVtZW50KCJzeW1ib2wiLHt2aWV3Qm94OiIwIDAgMjAgMjAiLGlkOiJjbG9zZSJ9LFJlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTQuMzQ4IDE0Ljg0OWMtLjQ2OS40NjktMS4yMjkuNDY5LTEuNjk3IDBMMTAgMTEuODE5bC0yLjY1MSAzLjAyOWMtLjQ2OS40NjktMS4yMjkuNDY5LTEuNjk3IDAtLjQ2OS0uNDY5LS40NjktMS4yMjkgMC0xLjY5N2wyLjc1OC0zLjE1LTIuNzU5LTMuMTUyYy0uNDY5LS40NjktLjQ2OS0xLjIyOCAwLTEuNjk3LjQ2OS0uNDY5IDEuMjI4LS40NjkgMS42OTcgMEwxMCA4LjE4M2wyLjY1MS0zLjAzMWMuNDY5LS40NjkgMS4yMjgtLjQ2OSAxLjY5NyAwIC40NjkuNDY5LjQ2OSAxLjIyOSAwIDEuNjk3bC0yLjc1OCAzLjE1MiAyLjc1OCAzLjE1Yy40NjkuNDY5LjQ2OSAxLjIyOSAwIDEuNjk4eiJ9KSksUmUuY3JlYXRlRWxlbWVudCgic3ltYm9sIix7dmlld0JveDoiMCAwIDIwIDIwIixpZDoibGFyZ2UtYXJyb3cifSxSZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTEzLjI1IDEwTDYuMTA5IDIuNThjLS4yNjgtLjI3LS4yNjgtLjcwNyAwLS45NzkuMjY4LS4yNy43MDEtLjI3Ljk2OSAwbDcuODMgNy45MDhjLjI2OC4yNzEuMjY4LjcwOSAwIC45NzlsLTcuODMgNy45MDhjLS4yNjguMjcxLS43MDEuMjctLjk2OSAwLS4yNjgtLjI2OS0uMjY4LS43MDcgMC0uOTc5TDEzLjI1IDEweiJ9KSksUmUuY3JlYXRlRWxlbWVudCgic3ltYm9sIix7dmlld0JveDoiMCAwIDIwIDIwIixpZDoibGFyZ2UtYXJyb3ctZG93biJ9LFJlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTcuNDE4IDYuMTA5Yy4yNzItLjI2OC43MDktLjI2OC45NzkgMHMuMjcxLjcwMSAwIC45NjlsLTcuOTA4IDcuODNjLS4yNy4yNjgtLjcwNy4yNjgtLjk3OSAwbC03LjkwOC03LjgzYy0uMjctLjI2OC0uMjctLjcwMSAwLS45NjkuMjcxLS4yNjguNzA5LS4yNjguOTc5IDBMMTAgMTMuMjVsNy40MTgtNy4xNDF6In0pKSxSZS5jcmVhdGVFbGVtZW50KCJzeW1ib2wiLHt2aWV3Qm94OiIwIDAgMjAgMjAiLGlkOiJsYXJnZS1hcnJvdy11cCJ9LFJlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNIDE3LjQxOCAxNC45MDggQyAxNy42OSAxNS4xNzYgMTguMTI3IDE1LjE3NiAxOC4zOTcgMTQuOTA4IEMgMTguNjY3IDE0LjY0IDE4LjY2OCAxNC4yMDcgMTguMzk3IDEzLjkzOSBMIDEwLjQ4OSA2LjEwOSBDIDEwLjIxOSA1Ljg0MSA5Ljc4MiA1Ljg0MSA5LjUxIDYuMTA5IEwgMS42MDIgMTMuOTM5IEMgMS4zMzIgMTQuMjA3IDEuMzMyIDE0LjY0IDEuNjAyIDE0LjkwOCBDIDEuODczIDE1LjE3NiAyLjMxMSAxNS4xNzYgMi41ODEgMTQuOTA4IEwgMTAgNy43NjcgTCAxNy40MTggMTQuOTA4IFoifSkpLFJlLmNyZWF0ZUVsZW1lbnQoInN5bWJvbCIse3ZpZXdCb3g6IjAgMCAyNCAyNCIsaWQ6Imp1bXAtdG8ifSxSZS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE5IDd2NEg1LjgzbDMuNTgtMy41OUw4IDZsLTYgNiA2IDYgMS40MS0xLjQxTDUuODMgMTNIMjFWN3oifSkpLFJlLmNyZWF0ZUVsZW1lbnQoInN5bWJvbCIse3ZpZXdCb3g6IjAgMCAyNCAyNCIsaWQ6ImV4cGFuZCJ9LFJlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTAgMThoNHYtMmgtNHYyek0zIDZ2MmgxOFY2SDN6bTMgN2gxMnYtMkg2djJ6In0pKSxSZS5jcmVhdGVFbGVtZW50KCJzeW1ib2wiLHt2aWV3Qm94OiIwIDAgMTUgMTYiLGlkOiJjb3B5In0sUmUuY3JlYXRlRWxlbWVudCgiZyIse3RyYW5zZm9ybToidHJhbnNsYXRlKDIsIC0xKSJ9LFJlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiIjZmZmZmZmIixmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTIgMTNoNHYxSDJ2LTF6bTUtNkgydjFoNVY3em0yIDNWOGwtMyAzIDMgM3YtMmg1di0ySDl6TTQuNSA5SDJ2MWgyLjVWOXpNMiAxMmgyLjV2LTFIMnYxem05IDFoMXYyYy0uMDIuMjgtLjExLjUyLS4zLjctLjE5LjE4LS40Mi4yOC0uNy4zSDFjLS41NSAwLTEtLjQ1LTEtMVY0YzAtLjU1LjQ1LTEgMS0xaDNjMC0xLjExLjg5LTIgMi0yIDEuMTEgMCAyIC44OSAyIDJoM2MuNTUgMCAxIC40NSAxIDF2NWgtMVY2SDF2OWgxMHYtMnpNMiA1aDhjMC0uNTUtLjQ1LTEtMS0xSDhjLS41NSAwLTEtLjQ1LTEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMS0uNDUgMS0xIDFIM2MtLjU1IDAtMSAuNDUtMSAxeiJ9KSkpKSkpO3ZhciBpQztmdW5jdGlvbiBkZWNvZGVFbnRpdHkocyl7cmV0dXJuKGlDPWlDfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpKS5pbm5lckhUTUw9IiYiK3MrIjsiLGlDLnZhbHVlfXZhciBhQz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIGluZGV4X2Jyb3dzZXJfaGFzKHMsbyl7cmV0dXJuISFzJiZhQy5jYWxsKHMsbyl9ZnVuY3Rpb24gaW5kZXhfYnJvd3Nlcl9hc3NpZ24ocyl7cmV0dXJuW10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSkuZm9yRWFjaCgoZnVuY3Rpb24obyl7aWYobyl7aWYoIm9iamVjdCIhPXR5cGVvZiBvKXRocm93IG5ldyBUeXBlRXJyb3IobysibXVzdCBiZSBvYmplY3QiKTtPYmplY3Qua2V5cyhvKS5mb3JFYWNoKChmdW5jdGlvbihpKXtzW2ldPW9baV19KSl9fSkpLHN9dmFyIGNDPS9cXChbXFwhIiMkJSYnKCkqKywuXC86Ozw9Pj9AW1xdXl9ge3x9fi1dKS9nO2Z1bmN0aW9uIHVuZXNjYXBlTWQocyl7cmV0dXJuIHMuaW5kZXhPZigiXFwiKTwwP3M6cy5yZXBsYWNlKGNDLCIkMSIpfWZ1bmN0aW9uIGlzVmFsaWRFbnRpdHlDb2RlKHMpe3JldHVybiEocz49NTUyOTYmJnM8PTU3MzQzKSYmKCEocz49NjQ5NzYmJnM8PTY1MDA3KSYmKCEhKDY1NTM1Jn5zJiY2NTUzNCE9KDY1NTM1JnMpKSYmKCEocz49MCYmczw9OCkmJigxMSE9PXMmJighKHM+PTE0JiZzPD0zMSkmJighKHM+PTEyNyYmczw9MTU5KSYmIShzPjExMTQxMTEpKSkpKSkpfWZ1bmN0aW9uIGZyb21Db2RlUG9pbnQocyl7aWYocz42NTUzNSl7dmFyIG89NTUyOTYrKChzLT02NTUzNik+PjEwKSxpPTU2MzIwKygxMDIzJnMpO3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKG8saSl9cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUocyl9dmFyIGxDPS8mKFthLXojXVthLXowLTldezEsMzF9KTsvZ2ksdUM9L14jKCg/OnhbYS1mMC05XXsxLDh9fFswLTldezEsOH0pKS9pO2Z1bmN0aW9uIHJlcGxhY2VFbnRpdHlQYXR0ZXJuKHMsbyl7dmFyIGk9MCxhPWRlY29kZUVudGl0eShvKTtyZXR1cm4gbyE9PWE/YTozNT09PW8uY2hhckNvZGVBdCgwKSYmdUMudGVzdChvKSYmaXNWYWxpZEVudGl0eUNvZGUoaT0ieCI9PT1vWzFdLnRvTG93ZXJDYXNlKCk/cGFyc2VJbnQoby5zbGljZSgyKSwxNik6cGFyc2VJbnQoby5zbGljZSgxKSwxMCkpP2Zyb21Db2RlUG9pbnQoaSk6c31mdW5jdGlvbiByZXBsYWNlRW50aXRpZXMocyl7cmV0dXJuIHMuaW5kZXhPZigiJiIpPDA/czpzLnJlcGxhY2UobEMscmVwbGFjZUVudGl0eVBhdHRlcm4pfXZhciBwQz0vWyY8PiJdLyxoQz0vWyY8PiJdL2csZEM9eyImIjoiJmFtcDsiLCI8IjoiJmx0OyIsIj4iOiImZ3Q7IiwnIic6IiZxdW90OyJ9O2Z1bmN0aW9uIHJlcGxhY2VVbnNhZmVDaGFyKHMpe3JldHVybiBkQ1tzXX1mdW5jdGlvbiBlc2NhcGVIdG1sKHMpe3JldHVybiBwQy50ZXN0KHMpP3MucmVwbGFjZShoQyxyZXBsYWNlVW5zYWZlQ2hhcik6c312YXIgZkM9e307ZnVuY3Rpb24gbmV4dFRva2VuKHMsbyl7cmV0dXJuKytvPj1zLmxlbmd0aC0yP286InBhcmFncmFwaF9vcGVuIj09PXNbb10udHlwZSYmc1tvXS50aWdodCYmImlubGluZSI9PT1zW28rMV0udHlwZSYmMD09PXNbbysxXS5jb250ZW50Lmxlbmd0aCYmInBhcmFncmFwaF9jbG9zZSI9PT1zW28rMl0udHlwZSYmc1tvKzJdLnRpZ2h0P25leHRUb2tlbihzLG8rMik6b31mQy5ibG9ja3F1b3RlX29wZW49ZnVuY3Rpb24oKXtyZXR1cm4iPGJsb2NrcXVvdGU+XG4ifSxmQy5ibG9ja3F1b3RlX2Nsb3NlPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIjwvYmxvY2txdW90ZT4iK21DKHMsbyl9LGZDLmNvZGU9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gc1tvXS5ibG9jaz8iPHByZT48Y29kZT4iK2VzY2FwZUh0bWwoc1tvXS5jb250ZW50KSsiPC9jb2RlPjwvcHJlPiIrbUMocyxvKToiPGNvZGU+Iitlc2NhcGVIdG1sKHNbb10uY29udGVudCkrIjwvY29kZT4ifSxmQy5mZW5jZT1mdW5jdGlvbihzLG8saSxhLHUpe3ZhciBfLHcseD1zW29dLEM9IiIsaj1pLmxhbmdQcmVmaXg7aWYoeC5wYXJhbXMpe2lmKHc9KF89eC5wYXJhbXMuc3BsaXQoL1xzKy9nKSkuam9pbigiICIpLGluZGV4X2Jyb3dzZXJfaGFzKHUucnVsZXMuZmVuY2VfY3VzdG9tLF9bMF0pKXJldHVybiB1LnJ1bGVzLmZlbmNlX2N1c3RvbVtfWzBdXShzLG8saSxhLHUpO0M9JyBjbGFzcz0iJytqK2VzY2FwZUh0bWwocmVwbGFjZUVudGl0aWVzKHVuZXNjYXBlTWQodykpKSsnIid9cmV0dXJuIjxwcmU+PGNvZGUiK0MrIj4iKyhpLmhpZ2hsaWdodCYmaS5oaWdobGlnaHQuYXBwbHkoaS5oaWdobGlnaHQsW3guY29udGVudF0uY29uY2F0KF8pKXx8ZXNjYXBlSHRtbCh4LmNvbnRlbnQpKSsiPC9jb2RlPjwvcHJlPiIrbUMocyxvKX0sZkMuZmVuY2VfY3VzdG9tPXt9LGZDLmhlYWRpbmdfb3Blbj1mdW5jdGlvbihzLG8pe3JldHVybiI8aCIrc1tvXS5oTGV2ZWwrIj4ifSxmQy5oZWFkaW5nX2Nsb3NlPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIjwvaCIrc1tvXS5oTGV2ZWwrIj5cbiJ9LGZDLmhyPWZ1bmN0aW9uKHMsbyxpKXtyZXR1cm4oaS54aHRtbE91dD8iPGhyIC8+IjoiPGhyPiIpK21DKHMsbyl9LGZDLmJ1bGxldF9saXN0X29wZW49ZnVuY3Rpb24oKXtyZXR1cm4iPHVsPlxuIn0sZkMuYnVsbGV0X2xpc3RfY2xvc2U9ZnVuY3Rpb24ocyxvKXtyZXR1cm4iPC91bD4iK21DKHMsbyl9LGZDLmxpc3RfaXRlbV9vcGVuPWZ1bmN0aW9uKCl7cmV0dXJuIjxsaT4ifSxmQy5saXN0X2l0ZW1fY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4iPC9saT5cbiJ9LGZDLm9yZGVyZWRfbGlzdF9vcGVuPWZ1bmN0aW9uKHMsbyl7dmFyIGk9c1tvXTtyZXR1cm4iPG9sIisoaS5vcmRlcj4xPycgc3RhcnQ9IicraS5vcmRlcisnIic6IiIpKyI+XG4ifSxmQy5vcmRlcmVkX2xpc3RfY2xvc2U9ZnVuY3Rpb24ocyxvKXtyZXR1cm4iPC9vbD4iK21DKHMsbyl9LGZDLnBhcmFncmFwaF9vcGVuPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHNbb10udGlnaHQ/IiI6IjxwPiJ9LGZDLnBhcmFncmFwaF9jbG9zZT1mdW5jdGlvbihzLG8pe3ZhciBpPSEoc1tvXS50aWdodCYmbyYmImlubGluZSI9PT1zW28tMV0udHlwZSYmIXNbby0xXS5jb250ZW50KTtyZXR1cm4oc1tvXS50aWdodD8iIjoiPC9wPiIpKyhpP21DKHMsbyk6IiIpfSxmQy5saW5rX29wZW49ZnVuY3Rpb24ocyxvLGkpe3ZhciBhPXNbb10udGl0bGU/JyB0aXRsZT0iJytlc2NhcGVIdG1sKHJlcGxhY2VFbnRpdGllcyhzW29dLnRpdGxlKSkrJyInOiIiLHU9aS5saW5rVGFyZ2V0PycgdGFyZ2V0PSInK2kubGlua1RhcmdldCsnIic6IiI7cmV0dXJuJzxhIGhyZWY9IicrZXNjYXBlSHRtbChzW29dLmhyZWYpKyciJythK3UrIj4ifSxmQy5saW5rX2Nsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIjwvYT4ifSxmQy5pbWFnZT1mdW5jdGlvbihzLG8saSl7dmFyIGE9JyBzcmM9IicrZXNjYXBlSHRtbChzW29dLnNyYykrJyInLHU9c1tvXS50aXRsZT8nIHRpdGxlPSInK2VzY2FwZUh0bWwocmVwbGFjZUVudGl0aWVzKHNbb10udGl0bGUpKSsnIic6IiI7cmV0dXJuIjxpbWciK2ErKCcgYWx0PSInKyhzW29dLmFsdD9lc2NhcGVIdG1sKHJlcGxhY2VFbnRpdGllcyh1bmVzY2FwZU1kKHNbb10uYWx0KSkpOiIiKSsnIicpK3UrKGkueGh0bWxPdXQ/IiAvIjoiIikrIj4ifSxmQy50YWJsZV9vcGVuPWZ1bmN0aW9uKCl7cmV0dXJuIjx0YWJsZT5cbiJ9LGZDLnRhYmxlX2Nsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIjwvdGFibGU+XG4ifSxmQy50aGVhZF9vcGVuPWZ1bmN0aW9uKCl7cmV0dXJuIjx0aGVhZD5cbiJ9LGZDLnRoZWFkX2Nsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIjwvdGhlYWQ+XG4ifSxmQy50Ym9keV9vcGVuPWZ1bmN0aW9uKCl7cmV0dXJuIjx0Ym9keT5cbiJ9LGZDLnRib2R5X2Nsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIjwvdGJvZHk+XG4ifSxmQy50cl9vcGVuPWZ1bmN0aW9uKCl7cmV0dXJuIjx0cj4ifSxmQy50cl9jbG9zZT1mdW5jdGlvbigpe3JldHVybiI8L3RyPlxuIn0sZkMudGhfb3Blbj1mdW5jdGlvbihzLG8pe3ZhciBpPXNbb107cmV0dXJuIjx0aCIrKGkuYWxpZ24/JyBzdHlsZT0idGV4dC1hbGlnbjonK2kuYWxpZ24rJyInOiIiKSsiPiJ9LGZDLnRoX2Nsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIjwvdGg+In0sZkMudGRfb3Blbj1mdW5jdGlvbihzLG8pe3ZhciBpPXNbb107cmV0dXJuIjx0ZCIrKGkuYWxpZ24/JyBzdHlsZT0idGV4dC1hbGlnbjonK2kuYWxpZ24rJyInOiIiKSsiPiJ9LGZDLnRkX2Nsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIjwvdGQ+In0sZkMuc3Ryb25nX29wZW49ZnVuY3Rpb24oKXtyZXR1cm4iPHN0cm9uZz4ifSxmQy5zdHJvbmdfY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4iPC9zdHJvbmc+In0sZkMuZW1fb3Blbj1mdW5jdGlvbigpe3JldHVybiI8ZW0+In0sZkMuZW1fY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4iPC9lbT4ifSxmQy5kZWxfb3Blbj1mdW5jdGlvbigpe3JldHVybiI8ZGVsPiJ9LGZDLmRlbF9jbG9zZT1mdW5jdGlvbigpe3JldHVybiI8L2RlbD4ifSxmQy5pbnNfb3Blbj1mdW5jdGlvbigpe3JldHVybiI8aW5zPiJ9LGZDLmluc19jbG9zZT1mdW5jdGlvbigpe3JldHVybiI8L2lucz4ifSxmQy5tYXJrX29wZW49ZnVuY3Rpb24oKXtyZXR1cm4iPG1hcms+In0sZkMubWFya19jbG9zZT1mdW5jdGlvbigpe3JldHVybiI8L21hcms+In0sZkMuc3ViPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIjxzdWI+Iitlc2NhcGVIdG1sKHNbb10uY29udGVudCkrIjwvc3ViPiJ9LGZDLnN1cD1mdW5jdGlvbihzLG8pe3JldHVybiI8c3VwPiIrZXNjYXBlSHRtbChzW29dLmNvbnRlbnQpKyI8L3N1cD4ifSxmQy5oYXJkYnJlYWs9ZnVuY3Rpb24ocyxvLGkpe3JldHVybiBpLnhodG1sT3V0PyI8YnIgLz5cbiI6Ijxicj5cbiJ9LGZDLnNvZnRicmVhaz1mdW5jdGlvbihzLG8saSl7cmV0dXJuIGkuYnJlYWtzP2kueGh0bWxPdXQ/IjxiciAvPlxuIjoiPGJyPlxuIjoiXG4ifSxmQy50ZXh0PWZ1bmN0aW9uKHMsbyl7cmV0dXJuIGVzY2FwZUh0bWwoc1tvXS5jb250ZW50KX0sZkMuaHRtbGJsb2NrPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIHNbb10uY29udGVudH0sZkMuaHRtbHRhZz1mdW5jdGlvbihzLG8pe3JldHVybiBzW29dLmNvbnRlbnR9LGZDLmFiYnJfb3Blbj1mdW5jdGlvbihzLG8pe3JldHVybic8YWJiciB0aXRsZT0iJytlc2NhcGVIdG1sKHJlcGxhY2VFbnRpdGllcyhzW29dLnRpdGxlKSkrJyI+J30sZkMuYWJicl9jbG9zZT1mdW5jdGlvbigpe3JldHVybiI8L2FiYnI+In0sZkMuZm9vdG5vdGVfcmVmPWZ1bmN0aW9uKHMsbyl7dmFyIGk9TnVtYmVyKHNbb10uaWQrMSkudG9TdHJpbmcoKSxhPSJmbnJlZiIraTtyZXR1cm4gc1tvXS5zdWJJZD4wJiYoYSs9IjoiK3Nbb10uc3ViSWQpLCc8c3VwIGNsYXNzPSJmb290bm90ZS1yZWYiPjxhIGhyZWY9IiNmbicraSsnIiBpZD0iJythKyciPlsnK2krIl08L2E+PC9zdXA+In0sZkMuZm9vdG5vdGVfYmxvY2tfb3Blbj1mdW5jdGlvbihzLG8saSl7cmV0dXJuKGkueGh0bWxPdXQ/JzxociBjbGFzcz0iZm9vdG5vdGVzLXNlcCIgLz5cbic6JzxociBjbGFzcz0iZm9vdG5vdGVzLXNlcCI+XG4nKSsnPHNlY3Rpb24gY2xhc3M9ImZvb3Rub3RlcyI+XG48b2wgY2xhc3M9ImZvb3Rub3Rlcy1saXN0Ij5cbid9LGZDLmZvb3Rub3RlX2Jsb2NrX2Nsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIjwvb2w+XG48L3NlY3Rpb24+XG4ifSxmQy5mb290bm90ZV9vcGVuPWZ1bmN0aW9uKHMsbyl7cmV0dXJuJzxsaSBpZD0iZm4nK051bWJlcihzW29dLmlkKzEpLnRvU3RyaW5nKCkrJyIgIGNsYXNzPSJmb290bm90ZS1pdGVtIj4nfSxmQy5mb290bm90ZV9jbG9zZT1mdW5jdGlvbigpe3JldHVybiI8L2xpPlxuIn0sZkMuZm9vdG5vdGVfYW5jaG9yPWZ1bmN0aW9uKHMsbyl7dmFyIGk9ImZucmVmIitOdW1iZXIoc1tvXS5pZCsxKS50b1N0cmluZygpO3JldHVybiBzW29dLnN1YklkPjAmJihpKz0iOiIrc1tvXS5zdWJJZCksJyA8YSBocmVmPSIjJytpKyciIGNsYXNzPSJmb290bm90ZS1iYWNrcmVmIj7ihqk8L2E+J30sZkMuZGxfb3Blbj1mdW5jdGlvbigpe3JldHVybiI8ZGw+XG4ifSxmQy5kdF9vcGVuPWZ1bmN0aW9uKCl7cmV0dXJuIjxkdD4ifSxmQy5kZF9vcGVuPWZ1bmN0aW9uKCl7cmV0dXJuIjxkZD4ifSxmQy5kbF9jbG9zZT1mdW5jdGlvbigpe3JldHVybiI8L2RsPlxuIn0sZkMuZHRfY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4iPC9kdD5cbiJ9LGZDLmRkX2Nsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIjwvZGQ+XG4ifTt2YXIgbUM9ZkMuZ2V0QnJlYWs9ZnVuY3Rpb24gZ2V0QnJlYWsocyxvKXtyZXR1cm4obz1uZXh0VG9rZW4ocyxvKSk8cy5sZW5ndGgmJiJsaXN0X2l0ZW1fY2xvc2UiPT09c1tvXS50eXBlPyIiOiJcbiJ9O2Z1bmN0aW9uIFJlbmRlcmVyKCl7dGhpcy5ydWxlcz1pbmRleF9icm93c2VyX2Fzc2lnbih7fSxmQyksdGhpcy5nZXRCcmVhaz1mQy5nZXRCcmVha31mdW5jdGlvbiBSdWxlcigpe3RoaXMuX19ydWxlc19fPVtdLHRoaXMuX19jYWNoZV9fPW51bGx9ZnVuY3Rpb24gU3RhdGVJbmxpbmUocyxvLGksYSx1KXt0aGlzLnNyYz1zLHRoaXMuZW52PWEsdGhpcy5vcHRpb25zPWksdGhpcy5wYXJzZXI9byx0aGlzLnRva2Vucz11LHRoaXMucG9zPTAsdGhpcy5wb3NNYXg9dGhpcy5zcmMubGVuZ3RoLHRoaXMubGV2ZWw9MCx0aGlzLnBlbmRpbmc9IiIsdGhpcy5wZW5kaW5nTGV2ZWw9MCx0aGlzLmNhY2hlPVtdLHRoaXMuaXNJbkxhYmVsPSExLHRoaXMubGlua0xldmVsPTAsdGhpcy5saW5rQ29udGVudD0iIix0aGlzLmxhYmVsVW5tYXRjaGVkU2NvcGVzPTB9ZnVuY3Rpb24gcGFyc2VMaW5rTGFiZWwocyxvKXt2YXIgaSxhLHUsXz0tMSx3PXMucG9zTWF4LHg9cy5wb3MsQz1zLmlzSW5MYWJlbDtpZihzLmlzSW5MYWJlbClyZXR1cm4tMTtpZihzLmxhYmVsVW5tYXRjaGVkU2NvcGVzKXJldHVybiBzLmxhYmVsVW5tYXRjaGVkU2NvcGVzLS0sLTE7Zm9yKHMucG9zPW8rMSxzLmlzSW5MYWJlbD0hMCxpPTE7cy5wb3M8dzspe2lmKDkxPT09KHU9cy5zcmMuY2hhckNvZGVBdChzLnBvcykpKWkrKztlbHNlIGlmKDkzPT09dSYmMD09PS0taSl7YT0hMDticmVha31zLnBhcnNlci5za2lwVG9rZW4ocyl9cmV0dXJuIGE/KF89cy5wb3Mscy5sYWJlbFVubWF0Y2hlZFNjb3Blcz0wKTpzLmxhYmVsVW5tYXRjaGVkU2NvcGVzPWktMSxzLnBvcz14LHMuaXNJbkxhYmVsPUMsX31mdW5jdGlvbiBwYXJzZUFiYnIocyxvLGksYSl7dmFyIHUsXyx3LHgsQyxqO2lmKDQyIT09cy5jaGFyQ29kZUF0KDApKXJldHVybi0xO2lmKDkxIT09cy5jaGFyQ29kZUF0KDEpKXJldHVybi0xO2lmKC0xPT09cy5pbmRleE9mKCJdOiIpKXJldHVybi0xO2lmKChfPXBhcnNlTGlua0xhYmVsKHU9bmV3IFN0YXRlSW5saW5lKHMsbyxpLGEsW10pLDEpKTwwfHw1OCE9PXMuY2hhckNvZGVBdChfKzEpKXJldHVybi0xO2Zvcih4PXUucG9zTWF4LHc9XysyO3c8eCYmMTAhPT11LnNyYy5jaGFyQ29kZUF0KHcpO3crKyk7cmV0dXJuIEM9cy5zbGljZSgyLF8pLDA9PT0oaj1zLnNsaWNlKF8rMix3KS50cmltKCkpLmxlbmd0aD8tMTooYS5hYmJyZXZpYXRpb25zfHwoYS5hYmJyZXZpYXRpb25zPXt9KSx2b2lkIDA9PT1hLmFiYnJldmlhdGlvbnNbIjoiK0NdJiYoYS5hYmJyZXZpYXRpb25zWyI6IitDXT1qKSx3KX1mdW5jdGlvbiBub3JtYWxpemVMaW5rKHMpe3ZhciBvPXJlcGxhY2VFbnRpdGllcyhzKTt0cnl7bz1kZWNvZGVVUkkobyl9Y2F0Y2gocyl7fXJldHVybiBlbmNvZGVVUkkobyl9ZnVuY3Rpb24gcGFyc2VMaW5rRGVzdGluYXRpb24ocyxvKXt2YXIgaSxhLHUsXz1vLHc9cy5wb3NNYXg7aWYoNjA9PT1zLnNyYy5jaGFyQ29kZUF0KG8pKXtmb3IobysrO288dzspe2lmKDEwPT09KGk9cy5zcmMuY2hhckNvZGVBdChvKSkpcmV0dXJuITE7aWYoNjI9PT1pKXJldHVybiB1PW5vcm1hbGl6ZUxpbmsodW5lc2NhcGVNZChzLnNyYy5zbGljZShfKzEsbykpKSwhIXMucGFyc2VyLnZhbGlkYXRlTGluayh1KSYmKHMucG9zPW8rMSxzLmxpbmtDb250ZW50PXUsITApOzkyPT09aSYmbysxPHc/bys9MjpvKyt9cmV0dXJuITF9Zm9yKGE9MDtvPHcmJjMyIT09KGk9cy5zcmMuY2hhckNvZGVBdChvKSkmJiEoaTwzMnx8MTI3PT09aSk7KWlmKDkyPT09aSYmbysxPHcpbys9MjtlbHNle2lmKDQwPT09aSYmKythPjEpYnJlYWs7aWYoNDE9PT1pJiYtLWE8MClicmVhaztvKyt9cmV0dXJuIF8hPT1vJiYodT11bmVzY2FwZU1kKHMuc3JjLnNsaWNlKF8sbykpLCEhcy5wYXJzZXIudmFsaWRhdGVMaW5rKHUpJiYocy5saW5rQ29udGVudD11LHMucG9zPW8sITApKX1mdW5jdGlvbiBwYXJzZUxpbmtUaXRsZShzLG8pe3ZhciBpLGE9byx1PXMucG9zTWF4LF89cy5zcmMuY2hhckNvZGVBdChvKTtpZigzNCE9PV8mJjM5IT09XyYmNDAhPT1fKXJldHVybiExO2ZvcihvKyssNDA9PT1fJiYoXz00MSk7bzx1Oyl7aWYoKGk9cy5zcmMuY2hhckNvZGVBdChvKSk9PT1fKXJldHVybiBzLnBvcz1vKzEscy5saW5rQ29udGVudD11bmVzY2FwZU1kKHMuc3JjLnNsaWNlKGErMSxvKSksITA7OTI9PT1pJiZvKzE8dT9vKz0yOm8rK31yZXR1cm4hMX1mdW5jdGlvbiBub3JtYWxpemVSZWZlcmVuY2Uocyl7cmV0dXJuIHMudHJpbSgpLnJlcGxhY2UoL1xzKy9nLCIgIikudG9VcHBlckNhc2UoKX1mdW5jdGlvbiBwYXJzZVJlZmVyZW5jZShzLG8saSxhKXt2YXIgdSxfLHcseCxDLGosTCxCLCQ7aWYoOTEhPT1zLmNoYXJDb2RlQXQoMCkpcmV0dXJuLTE7aWYoLTE9PT1zLmluZGV4T2YoIl06IikpcmV0dXJuLTE7aWYoKF89cGFyc2VMaW5rTGFiZWwodT1uZXcgU3RhdGVJbmxpbmUocyxvLGksYSxbXSksMCkpPDB8fDU4IT09cy5jaGFyQ29kZUF0KF8rMSkpcmV0dXJuLTE7Zm9yKHg9dS5wb3NNYXgsdz1fKzI7dzx4JiYoMzI9PT0oQz11LnNyYy5jaGFyQ29kZUF0KHcpKXx8MTA9PT1DKTt3KyspO2lmKCFwYXJzZUxpbmtEZXN0aW5hdGlvbih1LHcpKXJldHVybi0xO2ZvcihMPXUubGlua0NvbnRlbnQsaj13PXUucG9zLHcrPTE7dzx4JiYoMzI9PT0oQz11LnNyYy5jaGFyQ29kZUF0KHcpKXx8MTA9PT1DKTt3KyspO2Zvcih3PHgmJmohPT13JiZwYXJzZUxpbmtUaXRsZSh1LHcpPyhCPXUubGlua0NvbnRlbnQsdz11LnBvcyk6KEI9IiIsdz1qKTt3PHgmJjMyPT09dS5zcmMuY2hhckNvZGVBdCh3KTspdysrO3JldHVybiB3PHgmJjEwIT09dS5zcmMuY2hhckNvZGVBdCh3KT8tMTooJD1ub3JtYWxpemVSZWZlcmVuY2Uocy5zbGljZSgxLF8pKSx2b2lkIDA9PT1hLnJlZmVyZW5jZXNbJF0mJihhLnJlZmVyZW5jZXNbJF09e3RpdGxlOkIsaHJlZjpMfSksdyl9UmVuZGVyZXIucHJvdG90eXBlLnJlbmRlcklubGluZT1mdW5jdGlvbihzLG8saSl7Zm9yKHZhciBhPXRoaXMucnVsZXMsdT1zLmxlbmd0aCxfPTAsdz0iIjt1LS07KXcrPWFbc1tfXS50eXBlXShzLF8rKyxvLGksdGhpcyk7cmV0dXJuIHd9LFJlbmRlcmVyLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24ocyxvLGkpe2Zvcih2YXIgYT10aGlzLnJ1bGVzLHU9cy5sZW5ndGgsXz0tMSx3PSIiOysrXzx1OykiaW5saW5lIj09PXNbX10udHlwZT93Kz10aGlzLnJlbmRlcklubGluZShzW19dLmNoaWxkcmVuLG8saSk6dys9YVtzW19dLnR5cGVdKHMsXyxvLGksdGhpcyk7cmV0dXJuIHd9LFJ1bGVyLnByb3RvdHlwZS5fX2ZpbmRfXz1mdW5jdGlvbihzKXtmb3IodmFyIG89dGhpcy5fX3J1bGVzX18ubGVuZ3RoLGk9LTE7by0tOylpZih0aGlzLl9fcnVsZXNfX1srK2ldLm5hbWU9PT1zKXJldHVybiBpO3JldHVybi0xfSxSdWxlci5wcm90b3R5cGUuX19jb21waWxlX189ZnVuY3Rpb24oKXt2YXIgcz10aGlzLG89WyIiXTtzLl9fcnVsZXNfXy5mb3JFYWNoKChmdW5jdGlvbihzKXtzLmVuYWJsZWQmJnMuYWx0LmZvckVhY2goKGZ1bmN0aW9uKHMpe28uaW5kZXhPZihzKTwwJiZvLnB1c2gocyl9KSl9KSkscy5fX2NhY2hlX189e30sby5mb3JFYWNoKChmdW5jdGlvbihvKXtzLl9fY2FjaGVfX1tvXT1bXSxzLl9fcnVsZXNfXy5mb3JFYWNoKChmdW5jdGlvbihpKXtpLmVuYWJsZWQmJihvJiZpLmFsdC5pbmRleE9mKG8pPDB8fHMuX19jYWNoZV9fW29dLnB1c2goaS5mbikpfSkpfSkpfSxSdWxlci5wcm90b3R5cGUuYXQ9ZnVuY3Rpb24ocyxvLGkpe3ZhciBhPXRoaXMuX19maW5kX18ocyksdT1pfHx7fTtpZigtMT09PWEpdGhyb3cgbmV3IEVycm9yKCJQYXJzZXIgcnVsZSBub3QgZm91bmQ6ICIrcyk7dGhpcy5fX3J1bGVzX19bYV0uZm49byx0aGlzLl9fcnVsZXNfX1thXS5hbHQ9dS5hbHR8fFtdLHRoaXMuX19jYWNoZV9fPW51bGx9LFJ1bGVyLnByb3RvdHlwZS5iZWZvcmU9ZnVuY3Rpb24ocyxvLGksYSl7dmFyIHU9dGhpcy5fX2ZpbmRfXyhzKSxfPWF8fHt9O2lmKC0xPT09dSl0aHJvdyBuZXcgRXJyb3IoIlBhcnNlciBydWxlIG5vdCBmb3VuZDogIitzKTt0aGlzLl9fcnVsZXNfXy5zcGxpY2UodSwwLHtuYW1lOm8sZW5hYmxlZDohMCxmbjppLGFsdDpfLmFsdHx8W119KSx0aGlzLl9fY2FjaGVfXz1udWxsfSxSdWxlci5wcm90b3R5cGUuYWZ0ZXI9ZnVuY3Rpb24ocyxvLGksYSl7dmFyIHU9dGhpcy5fX2ZpbmRfXyhzKSxfPWF8fHt9O2lmKC0xPT09dSl0aHJvdyBuZXcgRXJyb3IoIlBhcnNlciBydWxlIG5vdCBmb3VuZDogIitzKTt0aGlzLl9fcnVsZXNfXy5zcGxpY2UodSsxLDAse25hbWU6byxlbmFibGVkOiEwLGZuOmksYWx0Ol8uYWx0fHxbXX0pLHRoaXMuX19jYWNoZV9fPW51bGx9LFJ1bGVyLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKHMsbyxpKXt2YXIgYT1pfHx7fTt0aGlzLl9fcnVsZXNfXy5wdXNoKHtuYW1lOnMsZW5hYmxlZDohMCxmbjpvLGFsdDphLmFsdHx8W119KSx0aGlzLl9fY2FjaGVfXz1udWxsfSxSdWxlci5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKHMsbyl7cz1BcnJheS5pc0FycmF5KHMpP3M6W3NdLG8mJnRoaXMuX19ydWxlc19fLmZvckVhY2goKGZ1bmN0aW9uKHMpe3MuZW5hYmxlZD0hMX0pKSxzLmZvckVhY2goKGZ1bmN0aW9uKHMpe3ZhciBvPXRoaXMuX19maW5kX18ocyk7aWYobzwwKXRocm93IG5ldyBFcnJvcigiUnVsZXMgbWFuYWdlcjogaW52YWxpZCBydWxlIG5hbWUgIitzKTt0aGlzLl9fcnVsZXNfX1tvXS5lbmFibGVkPSEwfSksdGhpcyksdGhpcy5fX2NhY2hlX189bnVsbH0sUnVsZXIucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24ocyl7KHM9QXJyYXkuaXNBcnJheShzKT9zOltzXSkuZm9yRWFjaCgoZnVuY3Rpb24ocyl7dmFyIG89dGhpcy5fX2ZpbmRfXyhzKTtpZihvPDApdGhyb3cgbmV3IEVycm9yKCJSdWxlcyBtYW5hZ2VyOiBpbnZhbGlkIHJ1bGUgbmFtZSAiK3MpO3RoaXMuX19ydWxlc19fW29dLmVuYWJsZWQ9ITF9KSx0aGlzKSx0aGlzLl9fY2FjaGVfXz1udWxsfSxSdWxlci5wcm90b3R5cGUuZ2V0UnVsZXM9ZnVuY3Rpb24ocyl7cmV0dXJuIG51bGw9PT10aGlzLl9fY2FjaGVfXyYmdGhpcy5fX2NvbXBpbGVfXygpLHRoaXMuX19jYWNoZV9fW3NdfHxbXX0sU3RhdGVJbmxpbmUucHJvdG90eXBlLnB1c2hQZW5kaW5nPWZ1bmN0aW9uKCl7dGhpcy50b2tlbnMucHVzaCh7dHlwZToidGV4dCIsY29udGVudDp0aGlzLnBlbmRpbmcsbGV2ZWw6dGhpcy5wZW5kaW5nTGV2ZWx9KSx0aGlzLnBlbmRpbmc9IiJ9LFN0YXRlSW5saW5lLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKHMpe3RoaXMucGVuZGluZyYmdGhpcy5wdXNoUGVuZGluZygpLHRoaXMudG9rZW5zLnB1c2gocyksdGhpcy5wZW5kaW5nTGV2ZWw9dGhpcy5sZXZlbH0sU3RhdGVJbmxpbmUucHJvdG90eXBlLmNhY2hlU2V0PWZ1bmN0aW9uKHMsbyl7Zm9yKHZhciBpPXRoaXMuY2FjaGUubGVuZ3RoO2k8PXM7aSsrKXRoaXMuY2FjaGUucHVzaCgwKTt0aGlzLmNhY2hlW3NdPW99LFN0YXRlSW5saW5lLnByb3RvdHlwZS5jYWNoZUdldD1mdW5jdGlvbihzKXtyZXR1cm4gczx0aGlzLmNhY2hlLmxlbmd0aD90aGlzLmNhY2hlW3NdOjB9O3ZhciBnQz0iIFxuKClbXSdcIi4sIT8tIjtmdW5jdGlvbiByZWdFc2NhcGUocyl7cmV0dXJuIHMucmVwbGFjZSgvKFstKClcW1xde30rPyouJFxefCw6IzwhXFxdKS9nLCJcXCQxIil9dmFyIHlDPS9cKy18XC5cLnxcP1w/XD9cP3whISEhfCwsfC0tLyx2Qz0vXCgoY3x0bXxyfHApXCkvZ2ksYkM9e2M6IsKpIixyOiLCriIscDoiwqciLHRtOiLihKIifTtmdW5jdGlvbiByZXBsYWNlU2NvcGVkQWJicihzKXtyZXR1cm4gcy5pbmRleE9mKCIoIik8MD9zOnMucmVwbGFjZSh2QywoZnVuY3Rpb24ocyxvKXtyZXR1cm4gYkNbby50b0xvd2VyQ2FzZSgpXX0pKX12YXIgX0M9L1snIl0vLFNDPS9bJyJdL2csRUM9L1stXHMoKVxbXF1dLztmdW5jdGlvbiBpc0xldHRlcihzLG8pe3JldHVybiEobzwwfHxvPj1zLmxlbmd0aCkmJiFFQy50ZXN0KHNbb10pfWZ1bmN0aW9uIHJlcGxhY2VBdChzLG8saSl7cmV0dXJuIHMuc3Vic3RyKDAsbykraStzLnN1YnN0cihvKzEpfXZhciB3Qz1bWyJibG9jayIsZnVuY3Rpb24gYmxvY2socyl7cy5pbmxpbmVNb2RlP3MudG9rZW5zLnB1c2goe3R5cGU6ImlubGluZSIsY29udGVudDpzLnNyYy5yZXBsYWNlKC9cbi9nLCIgIikudHJpbSgpLGxldmVsOjAsbGluZXM6WzAsMV0sY2hpbGRyZW46W119KTpzLmJsb2NrLnBhcnNlKHMuc3JjLHMub3B0aW9ucyxzLmVudixzLnRva2Vucyl9XSxbImFiYnIiLGZ1bmN0aW9uIGFiYnIocyl7dmFyIG8saSxhLHUsXz1zLnRva2VucztpZighcy5pbmxpbmVNb2RlKWZvcihvPTEsaT1fLmxlbmd0aC0xO288aTtvKyspaWYoInBhcmFncmFwaF9vcGVuIj09PV9bby0xXS50eXBlJiYiaW5saW5lIj09PV9bb10udHlwZSYmInBhcmFncmFwaF9jbG9zZSI9PT1fW28rMV0udHlwZSl7Zm9yKGE9X1tvXS5jb250ZW50O2EubGVuZ3RoJiYhKCh1PXBhcnNlQWJicihhLHMuaW5saW5lLHMub3B0aW9ucyxzLmVudikpPDApOylhPWEuc2xpY2UodSkudHJpbSgpO19bb10uY29udGVudD1hLGEubGVuZ3RofHwoX1tvLTFdLnRpZ2h0PSEwLF9bbysxXS50aWdodD0hMCl9fV0sWyJyZWZlcmVuY2VzIixmdW5jdGlvbiByZWZlcmVuY2VzKHMpe3ZhciBvLGksYSx1LF89cy50b2tlbnM7aWYocy5lbnYucmVmZXJlbmNlcz1zLmVudi5yZWZlcmVuY2VzfHx7fSwhcy5pbmxpbmVNb2RlKWZvcihvPTEsaT1fLmxlbmd0aC0xO288aTtvKyspaWYoImlubGluZSI9PT1fW29dLnR5cGUmJiJwYXJhZ3JhcGhfb3BlbiI9PT1fW28tMV0udHlwZSYmInBhcmFncmFwaF9jbG9zZSI9PT1fW28rMV0udHlwZSl7Zm9yKGE9X1tvXS5jb250ZW50O2EubGVuZ3RoJiYhKCh1PXBhcnNlUmVmZXJlbmNlKGEscy5pbmxpbmUscy5vcHRpb25zLHMuZW52KSk8MCk7KWE9YS5zbGljZSh1KS50cmltKCk7X1tvXS5jb250ZW50PWEsYS5sZW5ndGh8fChfW28tMV0udGlnaHQ9ITAsX1tvKzFdLnRpZ2h0PSEwKX19XSxbImlubGluZSIsZnVuY3Rpb24gaW5saW5lKHMpe3ZhciBvLGksYSx1PXMudG9rZW5zO2ZvcihpPTAsYT11Lmxlbmd0aDtpPGE7aSsrKSJpbmxpbmUiPT09KG89dVtpXSkudHlwZSYmcy5pbmxpbmUucGFyc2Uoby5jb250ZW50LHMub3B0aW9ucyxzLmVudixvLmNoaWxkcmVuKX1dLFsiZm9vdG5vdGVfdGFpbCIsZnVuY3Rpb24gZm9vdG5vdGVfYmxvY2socyl7dmFyIG8saSxhLHUsXyx3LHgsQyxqLEw9MCxCPSExLCQ9e307aWYocy5lbnYuZm9vdG5vdGVzJiYocy50b2tlbnM9cy50b2tlbnMuZmlsdGVyKChmdW5jdGlvbihzKXtyZXR1cm4iZm9vdG5vdGVfcmVmZXJlbmNlX29wZW4iPT09cy50eXBlPyhCPSEwLEM9W10saj1zLmxhYmVsLCExKToiZm9vdG5vdGVfcmVmZXJlbmNlX2Nsb3NlIj09PXMudHlwZT8oQj0hMSwkWyI6IitqXT1DLCExKTooQiYmQy5wdXNoKHMpLCFCKX0pKSxzLmVudi5mb290bm90ZXMubGlzdCkpe2Zvcih3PXMuZW52LmZvb3Rub3Rlcy5saXN0LHMudG9rZW5zLnB1c2goe3R5cGU6ImZvb3Rub3RlX2Jsb2NrX29wZW4iLGxldmVsOkwrK30pLG89MCxpPXcubGVuZ3RoO288aTtvKyspe2ZvcihzLnRva2Vucy5wdXNoKHt0eXBlOiJmb290bm90ZV9vcGVuIixpZDpvLGxldmVsOkwrK30pLHdbb10udG9rZW5zPygoeD1bXSkucHVzaCh7dHlwZToicGFyYWdyYXBoX29wZW4iLHRpZ2h0OiExLGxldmVsOkwrK30pLHgucHVzaCh7dHlwZToiaW5saW5lIixjb250ZW50OiIiLGxldmVsOkwsY2hpbGRyZW46d1tvXS50b2tlbnN9KSx4LnB1c2goe3R5cGU6InBhcmFncmFwaF9jbG9zZSIsdGlnaHQ6ITEsbGV2ZWw6LS1MfSkpOndbb10ubGFiZWwmJih4PSRbIjoiK3dbb10ubGFiZWxdKSxzLnRva2Vucz1zLnRva2Vucy5jb25jYXQoeCksXz0icGFyYWdyYXBoX2Nsb3NlIj09PXMudG9rZW5zW3MudG9rZW5zLmxlbmd0aC0xXS50eXBlP3MudG9rZW5zLnBvcCgpOm51bGwsdT13W29dLmNvdW50PjA/d1tvXS5jb3VudDoxLGE9MDthPHU7YSsrKXMudG9rZW5zLnB1c2goe3R5cGU6ImZvb3Rub3RlX2FuY2hvciIsaWQ6byxzdWJJZDphLGxldmVsOkx9KTtfJiZzLnRva2Vucy5wdXNoKF8pLHMudG9rZW5zLnB1c2goe3R5cGU6ImZvb3Rub3RlX2Nsb3NlIixsZXZlbDotLUx9KX1zLnRva2Vucy5wdXNoKHt0eXBlOiJmb290bm90ZV9ibG9ja19jbG9zZSIsbGV2ZWw6LS1MfSl9fV0sWyJhYmJyMiIsZnVuY3Rpb24gYWJicjIocyl7dmFyIG8saSxhLHUsXyx3LHgsQyxqLEwsQiwkLFY9cy50b2tlbnM7aWYocy5lbnYuYWJicmV2aWF0aW9ucylmb3Iocy5lbnYuYWJiclJlZ0V4cHx8KCQ9IihefFsiK2dDLnNwbGl0KCIiKS5tYXAocmVnRXNjYXBlKS5qb2luKCIiKSsiXSkoIitPYmplY3Qua2V5cyhzLmVudi5hYmJyZXZpYXRpb25zKS5tYXAoKGZ1bmN0aW9uKHMpe3JldHVybiBzLnN1YnN0cigxKX0pKS5zb3J0KChmdW5jdGlvbihzLG8pe3JldHVybiBvLmxlbmd0aC1zLmxlbmd0aH0pKS5tYXAocmVnRXNjYXBlKS5qb2luKCJ8IikrIikoJHxbIitnQy5zcGxpdCgiIikubWFwKHJlZ0VzY2FwZSkuam9pbigiIikrIl0pIixzLmVudi5hYmJyUmVnRXhwPW5ldyBSZWdFeHAoJCwiZyIpKSxMPXMuZW52LmFiYnJSZWdFeHAsaT0wLGE9Vi5sZW5ndGg7aTxhO2krKylpZigiaW5saW5lIj09PVZbaV0udHlwZSlmb3Iobz0odT1WW2ldLmNoaWxkcmVuKS5sZW5ndGgtMTtvPj0wO28tLSlpZigidGV4dCI9PT0oXz11W29dKS50eXBlKXtmb3IoQz0wLHc9Xy5jb250ZW50LEwubGFzdEluZGV4PTAsaj1fLmxldmVsLHg9W107Qj1MLmV4ZWModyk7KUwubGFzdEluZGV4PkMmJngucHVzaCh7dHlwZToidGV4dCIsY29udGVudDp3LnNsaWNlKEMsQi5pbmRleCtCWzFdLmxlbmd0aCksbGV2ZWw6an0pLHgucHVzaCh7dHlwZToiYWJicl9vcGVuIix0aXRsZTpzLmVudi5hYmJyZXZpYXRpb25zWyI6IitCWzJdXSxsZXZlbDpqKyt9KSx4LnB1c2goe3R5cGU6InRleHQiLGNvbnRlbnQ6QlsyXSxsZXZlbDpqfSkseC5wdXNoKHt0eXBlOiJhYmJyX2Nsb3NlIixsZXZlbDotLWp9KSxDPUwubGFzdEluZGV4LUJbM10ubGVuZ3RoO3gubGVuZ3RoJiYoQzx3Lmxlbmd0aCYmeC5wdXNoKHt0eXBlOiJ0ZXh0Iixjb250ZW50Oncuc2xpY2UoQyksbGV2ZWw6an0pLFZbaV0uY2hpbGRyZW49dT1bXS5jb25jYXQodS5zbGljZSgwLG8pLHgsdS5zbGljZShvKzEpKSl9fV0sWyJyZXBsYWNlbWVudHMiLGZ1bmN0aW9uIGluZGV4X2Jyb3dzZXJfcmVwbGFjZShzKXt2YXIgbyxpLGEsdSxfO2lmKHMub3B0aW9ucy50eXBvZ3JhcGhlcilmb3IoXz1zLnRva2Vucy5sZW5ndGgtMTtfPj0wO18tLSlpZigiaW5saW5lIj09PXMudG9rZW5zW19dLnR5cGUpZm9yKG89KHU9cy50b2tlbnNbX10uY2hpbGRyZW4pLmxlbmd0aC0xO28+PTA7by0tKSJ0ZXh0Ij09PShpPXVbb10pLnR5cGUmJihhPXJlcGxhY2VTY29wZWRBYmJyKGE9aS5jb250ZW50KSx5Qy50ZXN0KGEpJiYoYT1hLnJlcGxhY2UoL1wrLS9nLCLCsSIpLnJlcGxhY2UoL1wuezIsfS9nLCLigKYiKS5yZXBsYWNlKC8oWz8hXSnigKYvZywiJDEuLiIpLnJlcGxhY2UoLyhbPyFdKXs0LH0vZywiJDEkMSQxIikucmVwbGFjZSgvLHsyLH0vZywiLCIpLnJlcGxhY2UoLyhefFteLV0pLS0tKFteLV18JCkvZ20sIiQx4oCUJDIiKS5yZXBsYWNlKC8oXnxccyktLShcc3wkKS9nbSwiJDHigJMkMiIpLnJlcGxhY2UoLyhefFteLVxzXSktLShbXi1cc118JCkvZ20sIiQx4oCTJDIiKSksaS5jb250ZW50PWEpfV0sWyJzbWFydHF1b3RlcyIsZnVuY3Rpb24gc21hcnRxdW90ZXMocyl7dmFyIG8saSxhLHUsXyx3LHgsQyxqLEwsQiwkLFYsVSx6LFksWjtpZihzLm9wdGlvbnMudHlwb2dyYXBoZXIpZm9yKFo9W10sej1zLnRva2Vucy5sZW5ndGgtMTt6Pj0wO3otLSlpZigiaW5saW5lIj09PXMudG9rZW5zW3pdLnR5cGUpZm9yKFk9cy50b2tlbnNbel0uY2hpbGRyZW4sWi5sZW5ndGg9MCxvPTA7bzxZLmxlbmd0aDtvKyspaWYoInRleHQiPT09KGk9WVtvXSkudHlwZSYmIV9DLnRlc3QoaS50ZXh0KSl7Zm9yKHg9WVtvXS5sZXZlbCxWPVoubGVuZ3RoLTE7Vj49MCYmIShaW1ZdLmxldmVsPD14KTtWLS0pO1oubGVuZ3RoPVYrMSxfPTAsdz0oYT1pLmNvbnRlbnQpLmxlbmd0aDtlOmZvcig7Xzx3JiYoU0MubGFzdEluZGV4PV8sdT1TQy5leGVjKGEpKTspaWYoQz0haXNMZXR0ZXIoYSx1LmluZGV4LTEpLF89dS5pbmRleCsxLFU9IiciPT09dVswXSwoaj0haXNMZXR0ZXIoYSxfKSl8fEMpe2lmKEI9IWosJD0hQylmb3IoVj1aLmxlbmd0aC0xO1Y+PTAmJihMPVpbVl0sIShaW1ZdLmxldmVsPHgpKTtWLS0paWYoTC5zaW5nbGU9PT1VJiZaW1ZdLmxldmVsPT09eCl7TD1aW1ZdLFU/KFlbTC50b2tlbl0uY29udGVudD1yZXBsYWNlQXQoWVtMLnRva2VuXS5jb250ZW50LEwucG9zLHMub3B0aW9ucy5xdW90ZXNbMl0pLGkuY29udGVudD1yZXBsYWNlQXQoaS5jb250ZW50LHUuaW5kZXgscy5vcHRpb25zLnF1b3Rlc1szXSkpOihZW0wudG9rZW5dLmNvbnRlbnQ9cmVwbGFjZUF0KFlbTC50b2tlbl0uY29udGVudCxMLnBvcyxzLm9wdGlvbnMucXVvdGVzWzBdKSxpLmNvbnRlbnQ9cmVwbGFjZUF0KGkuY29udGVudCx1LmluZGV4LHMub3B0aW9ucy5xdW90ZXNbMV0pKSxaLmxlbmd0aD1WO2NvbnRpbnVlIGV9Qj9aLnB1c2goe3Rva2VuOm8scG9zOnUuaW5kZXgsc2luZ2xlOlUsbGV2ZWw6eH0pOiQmJlUmJihpLmNvbnRlbnQ9cmVwbGFjZUF0KGkuY29udGVudCx1LmluZGV4LCLigJkiKSl9ZWxzZSBVJiYoaS5jb250ZW50PXJlcGxhY2VBdChpLmNvbnRlbnQsdS5pbmRleCwi4oCZIikpfX1dXTtmdW5jdGlvbiBDb3JlKCl7dGhpcy5vcHRpb25zPXt9LHRoaXMucnVsZXI9bmV3IFJ1bGVyO2Zvcih2YXIgcz0wO3M8d0MubGVuZ3RoO3MrKyl0aGlzLnJ1bGVyLnB1c2god0Nbc11bMF0sd0Nbc11bMV0pfWZ1bmN0aW9uIFN0YXRlQmxvY2socyxvLGksYSx1KXt2YXIgXyx3LHgsQyxqLEwsQjtmb3IodGhpcy5zcmM9cyx0aGlzLnBhcnNlcj1vLHRoaXMub3B0aW9ucz1pLHRoaXMuZW52PWEsdGhpcy50b2tlbnM9dSx0aGlzLmJNYXJrcz1bXSx0aGlzLmVNYXJrcz1bXSx0aGlzLnRTaGlmdD1bXSx0aGlzLmJsa0luZGVudD0wLHRoaXMubGluZT0wLHRoaXMubGluZU1heD0wLHRoaXMudGlnaHQ9ITEsdGhpcy5wYXJlbnRUeXBlPSJyb290Iix0aGlzLmRkSW5kZW50PS0xLHRoaXMubGV2ZWw9MCx0aGlzLnJlc3VsdD0iIixMPTAsQj0hMSx4PUM9TD0wLGo9KHc9dGhpcy5zcmMpLmxlbmd0aDtDPGo7QysrKXtpZihfPXcuY2hhckNvZGVBdChDKSwhQil7aWYoMzI9PT1fKXtMKys7Y29udGludWV9Qj0hMH0xMCE9PV8mJkMhPT1qLTF8fCgxMCE9PV8mJkMrKyx0aGlzLmJNYXJrcy5wdXNoKHgpLHRoaXMuZU1hcmtzLnB1c2goQyksdGhpcy50U2hpZnQucHVzaChMKSxCPSExLEw9MCx4PUMrMSl9dGhpcy5iTWFya3MucHVzaCh3Lmxlbmd0aCksdGhpcy5lTWFya3MucHVzaCh3Lmxlbmd0aCksdGhpcy50U2hpZnQucHVzaCgwKSx0aGlzLmxpbmVNYXg9dGhpcy5iTWFya3MubGVuZ3RoLTF9ZnVuY3Rpb24gc2tpcEJ1bGxldExpc3RNYXJrZXIocyxvKXt2YXIgaSxhLHU7cmV0dXJuKGE9cy5iTWFya3Nbb10rcy50U2hpZnRbb10pPj0odT1zLmVNYXJrc1tvXSl8fDQyIT09KGk9cy5zcmMuY2hhckNvZGVBdChhKyspKSYmNDUhPT1pJiY0MyE9PWl8fGE8dSYmMzIhPT1zLnNyYy5jaGFyQ29kZUF0KGEpPy0xOmF9ZnVuY3Rpb24gc2tpcE9yZGVyZWRMaXN0TWFya2VyKHMsbyl7dmFyIGksYT1zLmJNYXJrc1tvXStzLnRTaGlmdFtvXSx1PXMuZU1hcmtzW29dO2lmKGErMT49dSlyZXR1cm4tMTtpZigoaT1zLnNyYy5jaGFyQ29kZUF0KGErKykpPDQ4fHxpPjU3KXJldHVybi0xO2Zvcig7Oyl7aWYoYT49dSlyZXR1cm4tMTtpZighKChpPXMuc3JjLmNoYXJDb2RlQXQoYSsrKSk+PTQ4JiZpPD01Nykpe2lmKDQxPT09aXx8NDY9PT1pKWJyZWFrO3JldHVybi0xfX1yZXR1cm4gYTx1JiYzMiE9PXMuc3JjLmNoYXJDb2RlQXQoYSk/LTE6YX1Db3JlLnByb3RvdHlwZS5wcm9jZXNzPWZ1bmN0aW9uKHMpe3ZhciBvLGksYTtmb3Iobz0wLGk9KGE9dGhpcy5ydWxlci5nZXRSdWxlcygiIikpLmxlbmd0aDtvPGk7bysrKWFbb10ocyl9LFN0YXRlQmxvY2sucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24gaXNFbXB0eShzKXtyZXR1cm4gdGhpcy5iTWFya3Nbc10rdGhpcy50U2hpZnRbc10+PXRoaXMuZU1hcmtzW3NdfSxTdGF0ZUJsb2NrLnByb3RvdHlwZS5za2lwRW1wdHlMaW5lcz1mdW5jdGlvbiBza2lwRW1wdHlMaW5lcyhzKXtmb3IodmFyIG89dGhpcy5saW5lTWF4O3M8byYmISh0aGlzLmJNYXJrc1tzXSt0aGlzLnRTaGlmdFtzXTx0aGlzLmVNYXJrc1tzXSk7cysrKTtyZXR1cm4gc30sU3RhdGVCbG9jay5wcm90b3R5cGUuc2tpcFNwYWNlcz1mdW5jdGlvbiBza2lwU3BhY2VzKHMpe2Zvcih2YXIgbz10aGlzLnNyYy5sZW5ndGg7czxvJiYzMj09PXRoaXMuc3JjLmNoYXJDb2RlQXQocyk7cysrKTtyZXR1cm4gc30sU3RhdGVCbG9jay5wcm90b3R5cGUuc2tpcENoYXJzPWZ1bmN0aW9uIHNraXBDaGFycyhzLG8pe2Zvcih2YXIgaT10aGlzLnNyYy5sZW5ndGg7czxpJiZ0aGlzLnNyYy5jaGFyQ29kZUF0KHMpPT09bztzKyspO3JldHVybiBzfSxTdGF0ZUJsb2NrLnByb3RvdHlwZS5za2lwQ2hhcnNCYWNrPWZ1bmN0aW9uIHNraXBDaGFyc0JhY2socyxvLGkpe2lmKHM8PWkpcmV0dXJuIHM7Zm9yKDtzPmk7KWlmKG8hPT10aGlzLnNyYy5jaGFyQ29kZUF0KC0tcykpcmV0dXJuIHMrMTtyZXR1cm4gc30sU3RhdGVCbG9jay5wcm90b3R5cGUuZ2V0TGluZXM9ZnVuY3Rpb24gZ2V0TGluZXMocyxvLGksYSl7dmFyIHUsXyx3LHgsQyxqPXM7aWYocz49bylyZXR1cm4iIjtpZihqKzE9PT1vKXJldHVybiBfPXRoaXMuYk1hcmtzW2pdK01hdGgubWluKHRoaXMudFNoaWZ0W2pdLGkpLHc9YT90aGlzLmVNYXJrc1tqXSsxOnRoaXMuZU1hcmtzW2pdLHRoaXMuc3JjLnNsaWNlKF8sdyk7Zm9yKHg9bmV3IEFycmF5KG8tcyksdT0wO2o8bztqKyssdSsrKShDPXRoaXMudFNoaWZ0W2pdKT5pJiYoQz1pKSxDPDAmJihDPTApLF89dGhpcy5iTWFya3Nbal0rQyx3PWorMTxvfHxhP3RoaXMuZU1hcmtzW2pdKzE6dGhpcy5lTWFya3Nbal0seFt1XT10aGlzLnNyYy5zbGljZShfLHcpO3JldHVybiB4LmpvaW4oIiIpfTt2YXIgeEM9e307WyJhcnRpY2xlIiwiYXNpZGUiLCJidXR0b24iLCJibG9ja3F1b3RlIiwiYm9keSIsImNhbnZhcyIsImNhcHRpb24iLCJjb2wiLCJjb2xncm91cCIsImRkIiwiZGl2IiwiZGwiLCJkdCIsImVtYmVkIiwiZmllbGRzZXQiLCJmaWdjYXB0aW9uIiwiZmlndXJlIiwiZm9vdGVyIiwiZm9ybSIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhlYWRlciIsImhncm91cCIsImhyIiwiaWZyYW1lIiwibGkiLCJtYXAiLCJvYmplY3QiLCJvbCIsIm91dHB1dCIsInAiLCJwcmUiLCJwcm9ncmVzcyIsInNjcmlwdCIsInNlY3Rpb24iLCJzdHlsZSIsInRhYmxlIiwidGJvZHkiLCJ0ZCIsInRleHRhcmVhIiwidGZvb3QiLCJ0aCIsInRyIiwidGhlYWQiLCJ1bCIsInZpZGVvIl0uZm9yRWFjaCgoZnVuY3Rpb24ocyl7eENbc109ITB9KSk7dmFyIGtDPS9ePChbYS16QS1aXXsxLDE1fSlbXHNcLz5dLyxPQz0vXjxcLyhbYS16QS1aXXsxLDE1fSlbXHM+XS87ZnVuY3Rpb24gaW5kZXhfYnJvd3Nlcl9nZXRMaW5lKHMsbyl7dmFyIGk9cy5iTWFya3Nbb10rcy5ibGtJbmRlbnQsYT1zLmVNYXJrc1tvXTtyZXR1cm4gcy5zcmMuc3Vic3RyKGksYS1pKX1mdW5jdGlvbiBza2lwTWFya2VyKHMsbyl7dmFyIGksYSx1PXMuYk1hcmtzW29dK3MudFNoaWZ0W29dLF89cy5lTWFya3Nbb107cmV0dXJuIHU+PV98fDEyNiE9PShhPXMuc3JjLmNoYXJDb2RlQXQodSsrKSkmJjU4IT09YXx8dT09PShpPXMuc2tpcFNwYWNlcyh1KSl8fGk+PV8/LTE6aX12YXIgQ0M9W1siY29kZSIsZnVuY3Rpb24gY29kZShzLG8saSl7dmFyIGEsdTtpZihzLnRTaGlmdFtvXS1zLmJsa0luZGVudDw0KXJldHVybiExO2Zvcih1PWE9bysxO2E8aTspaWYocy5pc0VtcHR5KGEpKWErKztlbHNle2lmKCEocy50U2hpZnRbYV0tcy5ibGtJbmRlbnQ+PTQpKWJyZWFrO3U9KythfXJldHVybiBzLmxpbmU9YSxzLnRva2Vucy5wdXNoKHt0eXBlOiJjb2RlIixjb250ZW50OnMuZ2V0TGluZXMobyx1LDQrcy5ibGtJbmRlbnQsITApLGJsb2NrOiEwLGxpbmVzOltvLHMubGluZV0sbGV2ZWw6cy5sZXZlbH0pLCEwfV0sWyJmZW5jZXMiLGZ1bmN0aW9uIGZlbmNlcyhzLG8saSxhKXt2YXIgdSxfLHcseCxDLGo9ITEsTD1zLmJNYXJrc1tvXStzLnRTaGlmdFtvXSxCPXMuZU1hcmtzW29dO2lmKEwrMz5CKXJldHVybiExO2lmKDEyNiE9PSh1PXMuc3JjLmNoYXJDb2RlQXQoTCkpJiY5NiE9PXUpcmV0dXJuITE7aWYoQz1MLChfPShMPXMuc2tpcENoYXJzKEwsdSkpLUMpPDMpcmV0dXJuITE7aWYoKHc9cy5zcmMuc2xpY2UoTCxCKS50cmltKCkpLmluZGV4T2YoImAiKT49MClyZXR1cm4hMTtpZihhKXJldHVybiEwO2Zvcih4PW87ISgrK3g+PWkpJiYhKChMPUM9cy5iTWFya3NbeF0rcy50U2hpZnRbeF0pPChCPXMuZU1hcmtzW3hdKSYmcy50U2hpZnRbeF08cy5ibGtJbmRlbnQpOylpZihzLnNyYy5jaGFyQ29kZUF0KEwpPT09dSYmIShzLnRTaGlmdFt4XS1zLmJsa0luZGVudD49NHx8KEw9cy5za2lwQ2hhcnMoTCx1KSktQzxffHwoTD1zLnNraXBTcGFjZXMoTCkpPEIpKXtqPSEwO2JyZWFrfXJldHVybiBfPXMudFNoaWZ0W29dLHMubGluZT14KyhqPzE6MCkscy50b2tlbnMucHVzaCh7dHlwZToiZmVuY2UiLHBhcmFtczp3LGNvbnRlbnQ6cy5nZXRMaW5lcyhvKzEseCxfLCEwKSxsaW5lczpbbyxzLmxpbmVdLGxldmVsOnMubGV2ZWx9KSwhMH0sWyJwYXJhZ3JhcGgiLCJibG9ja3F1b3RlIiwibGlzdCJdXSxbImJsb2NrcXVvdGUiLGZ1bmN0aW9uIGJsb2NrcXVvdGUocyxvLGksYSl7dmFyIHUsXyx3LHgsQyxqLEwsQiwkLFYsVSx6PXMuYk1hcmtzW29dK3MudFNoaWZ0W29dLFk9cy5lTWFya3Nbb107aWYoej5ZKXJldHVybiExO2lmKDYyIT09cy5zcmMuY2hhckNvZGVBdCh6KyspKXJldHVybiExO2lmKHMubGV2ZWw+PXMub3B0aW9ucy5tYXhOZXN0aW5nKXJldHVybiExO2lmKGEpcmV0dXJuITA7Zm9yKDMyPT09cy5zcmMuY2hhckNvZGVBdCh6KSYmeisrLEM9cy5ibGtJbmRlbnQscy5ibGtJbmRlbnQ9MCx4PVtzLmJNYXJrc1tvXV0scy5iTWFya3Nbb109eixfPSh6PXo8WT9zLnNraXBTcGFjZXMoeik6eik+PVksdz1bcy50U2hpZnRbb11dLHMudFNoaWZ0W29dPXotcy5iTWFya3Nbb10sQj1zLnBhcnNlci5ydWxlci5nZXRSdWxlcygiYmxvY2txdW90ZSIpLHU9bysxO3U8aSYmISgoej1zLmJNYXJrc1t1XStzLnRTaGlmdFt1XSk+PShZPXMuZU1hcmtzW3VdKSk7dSsrKWlmKDYyIT09cy5zcmMuY2hhckNvZGVBdCh6KyspKXtpZihfKWJyZWFrO2ZvcihVPSExLCQ9MCxWPUIubGVuZ3RoOyQ8VjskKyspaWYoQlskXShzLHUsaSwhMCkpe1U9ITA7YnJlYWt9aWYoVSlicmVhazt4LnB1c2gocy5iTWFya3NbdV0pLHcucHVzaChzLnRTaGlmdFt1XSkscy50U2hpZnRbdV09LTEzMzd9ZWxzZSAzMj09PXMuc3JjLmNoYXJDb2RlQXQoeikmJnorKyx4LnB1c2gocy5iTWFya3NbdV0pLHMuYk1hcmtzW3VdPXosXz0oej16PFk/cy5za2lwU3BhY2VzKHopOnopPj1ZLHcucHVzaChzLnRTaGlmdFt1XSkscy50U2hpZnRbdV09ei1zLmJNYXJrc1t1XTtmb3Ioaj1zLnBhcmVudFR5cGUscy5wYXJlbnRUeXBlPSJibG9ja3F1b3RlIixzLnRva2Vucy5wdXNoKHt0eXBlOiJibG9ja3F1b3RlX29wZW4iLGxpbmVzOkw9W28sMF0sbGV2ZWw6cy5sZXZlbCsrfSkscy5wYXJzZXIudG9rZW5pemUocyxvLHUpLHMudG9rZW5zLnB1c2goe3R5cGU6ImJsb2NrcXVvdGVfY2xvc2UiLGxldmVsOi0tcy5sZXZlbH0pLHMucGFyZW50VHlwZT1qLExbMV09cy5saW5lLCQ9MDskPHcubGVuZ3RoOyQrKylzLmJNYXJrc1skK29dPXhbJF0scy50U2hpZnRbJCtvXT13WyRdO3JldHVybiBzLmJsa0luZGVudD1DLCEwfSxbInBhcmFncmFwaCIsImJsb2NrcXVvdGUiLCJsaXN0Il1dLFsiaHIiLGZ1bmN0aW9uIGhyKHMsbyxpLGEpe3ZhciB1LF8sdyx4PXMuYk1hcmtzW29dLEM9cy5lTWFya3Nbb107aWYoKHgrPXMudFNoaWZ0W29dKT5DKXJldHVybiExO2lmKDQyIT09KHU9cy5zcmMuY2hhckNvZGVBdCh4KyspKSYmNDUhPT11JiY5NSE9PXUpcmV0dXJuITE7Zm9yKF89MTt4PEM7KXtpZigodz1zLnNyYy5jaGFyQ29kZUF0KHgrKykpIT09dSYmMzIhPT13KXJldHVybiExO3c9PT11JiZfKyt9cmV0dXJuIShfPDMpJiYoYXx8KHMubGluZT1vKzEscy50b2tlbnMucHVzaCh7dHlwZToiaHIiLGxpbmVzOltvLHMubGluZV0sbGV2ZWw6cy5sZXZlbH0pKSwhMCl9LFsicGFyYWdyYXBoIiwiYmxvY2txdW90ZSIsImxpc3QiXV0sWyJsaXN0IixmdW5jdGlvbiBpbmRleF9icm93c2VyX2xpc3QocyxvLGksYSl7dmFyIHUsXyx3LHgsQyxqLEwsQiwkLFYsVSx6LFksWixlZSxpZSxhZSxjZSxsZSxwZSxkZSxmZT0hMDtpZigoQj1za2lwT3JkZXJlZExpc3RNYXJrZXIocyxvKSk+PTApej0hMDtlbHNle2lmKCEoKEI9c2tpcEJ1bGxldExpc3RNYXJrZXIocyxvKSk+PTApKXJldHVybiExO3o9ITF9aWYocy5sZXZlbD49cy5vcHRpb25zLm1heE5lc3RpbmcpcmV0dXJuITE7aWYoVT1zLnNyYy5jaGFyQ29kZUF0KEItMSksYSlyZXR1cm4hMDtmb3IoWj1zLnRva2Vucy5sZW5ndGgsej8oTD1zLmJNYXJrc1tvXStzLnRTaGlmdFtvXSxWPU51bWJlcihzLnNyYy5zdWJzdHIoTCxCLUwtMSkpLHMudG9rZW5zLnB1c2goe3R5cGU6Im9yZGVyZWRfbGlzdF9vcGVuIixvcmRlcjpWLGxpbmVzOmllPVtvLDBdLGxldmVsOnMubGV2ZWwrK30pKTpzLnRva2Vucy5wdXNoKHt0eXBlOiJidWxsZXRfbGlzdF9vcGVuIixsaW5lczppZT1bbywwXSxsZXZlbDpzLmxldmVsKyt9KSx1PW8sZWU9ITEsY2U9cy5wYXJzZXIucnVsZXIuZ2V0UnVsZXMoImxpc3QiKTshKCEodTxpKXx8KCgkPShZPXMuc2tpcFNwYWNlcyhCKSk+PXMuZU1hcmtzW3VdPzE6WS1CKT40JiYoJD0xKSwkPDEmJigkPTEpLF89Qi1zLmJNYXJrc1t1XSskLHMudG9rZW5zLnB1c2goe3R5cGU6Imxpc3RfaXRlbV9vcGVuIixsaW5lczphZT1bbywwXSxsZXZlbDpzLmxldmVsKyt9KSx4PXMuYmxrSW5kZW50LEM9cy50aWdodCx3PXMudFNoaWZ0W29dLGo9cy5wYXJlbnRUeXBlLHMudFNoaWZ0W29dPVktcy5iTWFya3Nbb10scy5ibGtJbmRlbnQ9XyxzLnRpZ2h0PSEwLHMucGFyZW50VHlwZT0ibGlzdCIscy5wYXJzZXIudG9rZW5pemUocyxvLGksITApLHMudGlnaHQmJiFlZXx8KGZlPSExKSxlZT1zLmxpbmUtbz4xJiZzLmlzRW1wdHkocy5saW5lLTEpLHMuYmxrSW5kZW50PXgscy50U2hpZnRbb109dyxzLnRpZ2h0PUMscy5wYXJlbnRUeXBlPWoscy50b2tlbnMucHVzaCh7dHlwZToibGlzdF9pdGVtX2Nsb3NlIixsZXZlbDotLXMubGV2ZWx9KSx1PW89cy5saW5lLGFlWzFdPXUsWT1zLmJNYXJrc1tvXSx1Pj1pKXx8cy5pc0VtcHR5KHUpfHxzLnRTaGlmdFt1XTxzLmJsa0luZGVudCk7KXtmb3IoZGU9ITEsbGU9MCxwZT1jZS5sZW5ndGg7bGU8cGU7bGUrKylpZihjZVtsZV0ocyx1LGksITApKXtkZT0hMDticmVha31pZihkZSlicmVhaztpZih6KXtpZigoQj1za2lwT3JkZXJlZExpc3RNYXJrZXIocyx1KSk8MClicmVha31lbHNlIGlmKChCPXNraXBCdWxsZXRMaXN0TWFya2VyKHMsdSkpPDApYnJlYWs7aWYoVSE9PXMuc3JjLmNoYXJDb2RlQXQoQi0xKSlicmVha31yZXR1cm4gcy50b2tlbnMucHVzaCh7dHlwZTp6PyJvcmRlcmVkX2xpc3RfY2xvc2UiOiJidWxsZXRfbGlzdF9jbG9zZSIsbGV2ZWw6LS1zLmxldmVsfSksaWVbMV09dSxzLmxpbmU9dSxmZSYmZnVuY3Rpb24gbWFya1RpZ2h0UGFyYWdyYXBocyhzLG8pe3ZhciBpLGEsdT1zLmxldmVsKzI7Zm9yKGk9bysyLGE9cy50b2tlbnMubGVuZ3RoLTI7aTxhO2krKylzLnRva2Vuc1tpXS5sZXZlbD09PXUmJiJwYXJhZ3JhcGhfb3BlbiI9PT1zLnRva2Vuc1tpXS50eXBlJiYocy50b2tlbnNbaSsyXS50aWdodD0hMCxzLnRva2Vuc1tpXS50aWdodD0hMCxpKz0yKX0ocyxaKSwhMH0sWyJwYXJhZ3JhcGgiLCJibG9ja3F1b3RlIl1dLFsiZm9vdG5vdGUiLGZ1bmN0aW9uIGZvb3Rub3RlKHMsbyxpLGEpe3ZhciB1LF8sdyx4LEMsaj1zLmJNYXJrc1tvXStzLnRTaGlmdFtvXSxMPXMuZU1hcmtzW29dO2lmKGorND5MKXJldHVybiExO2lmKDkxIT09cy5zcmMuY2hhckNvZGVBdChqKSlyZXR1cm4hMTtpZig5NCE9PXMuc3JjLmNoYXJDb2RlQXQoaisxKSlyZXR1cm4hMTtpZihzLmxldmVsPj1zLm9wdGlvbnMubWF4TmVzdGluZylyZXR1cm4hMTtmb3IoeD1qKzI7eDxMO3grKyl7aWYoMzI9PT1zLnNyYy5jaGFyQ29kZUF0KHgpKXJldHVybiExO2lmKDkzPT09cy5zcmMuY2hhckNvZGVBdCh4KSlicmVha31yZXR1cm4geCE9PWorMiYmKCEoeCsxPj1MfHw1OCE9PXMuc3JjLmNoYXJDb2RlQXQoKyt4KSkmJihhfHwoeCsrLHMuZW52LmZvb3Rub3Rlc3x8KHMuZW52LmZvb3Rub3Rlcz17fSkscy5lbnYuZm9vdG5vdGVzLnJlZnN8fChzLmVudi5mb290bm90ZXMucmVmcz17fSksQz1zLnNyYy5zbGljZShqKzIseC0yKSxzLmVudi5mb290bm90ZXMucmVmc1siOiIrQ109LTEscy50b2tlbnMucHVzaCh7dHlwZToiZm9vdG5vdGVfcmVmZXJlbmNlX29wZW4iLGxhYmVsOkMsbGV2ZWw6cy5sZXZlbCsrfSksdT1zLmJNYXJrc1tvXSxfPXMudFNoaWZ0W29dLHc9cy5wYXJlbnRUeXBlLHMudFNoaWZ0W29dPXMuc2tpcFNwYWNlcyh4KS14LHMuYk1hcmtzW29dPXgscy5ibGtJbmRlbnQrPTQscy5wYXJlbnRUeXBlPSJmb290bm90ZSIscy50U2hpZnRbb108cy5ibGtJbmRlbnQmJihzLnRTaGlmdFtvXSs9cy5ibGtJbmRlbnQscy5iTWFya3Nbb10tPXMuYmxrSW5kZW50KSxzLnBhcnNlci50b2tlbml6ZShzLG8saSwhMCkscy5wYXJlbnRUeXBlPXcscy5ibGtJbmRlbnQtPTQscy50U2hpZnRbb109XyxzLmJNYXJrc1tvXT11LHMudG9rZW5zLnB1c2goe3R5cGU6ImZvb3Rub3RlX3JlZmVyZW5jZV9jbG9zZSIsbGV2ZWw6LS1zLmxldmVsfSkpLCEwKSl9LFsicGFyYWdyYXBoIl1dLFsiaGVhZGluZyIsZnVuY3Rpb24gaGVhZGluZyhzLG8saSxhKXt2YXIgdSxfLHcseD1zLmJNYXJrc1tvXStzLnRTaGlmdFtvXSxDPXMuZU1hcmtzW29dO2lmKHg+PUMpcmV0dXJuITE7aWYoMzUhPT0odT1zLnNyYy5jaGFyQ29kZUF0KHgpKXx8eD49QylyZXR1cm4hMTtmb3IoXz0xLHU9cy5zcmMuY2hhckNvZGVBdCgrK3gpOzM1PT09dSYmeDxDJiZfPD02OylfKyssdT1zLnNyYy5jaGFyQ29kZUF0KCsreCk7cmV0dXJuIShfPjZ8fHg8QyYmMzIhPT11KSYmKGF8fChDPXMuc2tpcENoYXJzQmFjayhDLDMyLHgpLCh3PXMuc2tpcENoYXJzQmFjayhDLDM1LHgpKT54JiYzMj09PXMuc3JjLmNoYXJDb2RlQXQody0xKSYmKEM9dykscy5saW5lPW8rMSxzLnRva2Vucy5wdXNoKHt0eXBlOiJoZWFkaW5nX29wZW4iLGhMZXZlbDpfLGxpbmVzOltvLHMubGluZV0sbGV2ZWw6cy5sZXZlbH0pLHg8QyYmcy50b2tlbnMucHVzaCh7dHlwZToiaW5saW5lIixjb250ZW50OnMuc3JjLnNsaWNlKHgsQykudHJpbSgpLGxldmVsOnMubGV2ZWwrMSxsaW5lczpbbyxzLmxpbmVdLGNoaWxkcmVuOltdfSkscy50b2tlbnMucHVzaCh7dHlwZToiaGVhZGluZ19jbG9zZSIsaExldmVsOl8sbGV2ZWw6cy5sZXZlbH0pKSwhMCl9LFsicGFyYWdyYXBoIiwiYmxvY2txdW90ZSJdXSxbImxoZWFkaW5nIixmdW5jdGlvbiBsaGVhZGluZyhzLG8saSl7dmFyIGEsdSxfLHc9bysxO3JldHVybiEodz49aSkmJighKHMudFNoaWZ0W3ddPHMuYmxrSW5kZW50KSYmKCEocy50U2hpZnRbd10tcy5ibGtJbmRlbnQ+MykmJighKCh1PXMuYk1hcmtzW3ddK3MudFNoaWZ0W3ddKT49KF89cy5lTWFya3Nbd10pKSYmKCg0NT09PShhPXMuc3JjLmNoYXJDb2RlQXQodSkpfHw2MT09PWEpJiYodT1zLnNraXBDaGFycyh1LGEpLCEoKHU9cy5za2lwU3BhY2VzKHUpKTxfKSYmKHU9cy5iTWFya3Nbb10rcy50U2hpZnRbb10scy5saW5lPXcrMSxzLnRva2Vucy5wdXNoKHt0eXBlOiJoZWFkaW5nX29wZW4iLGhMZXZlbDo2MT09PWE/MToyLGxpbmVzOltvLHMubGluZV0sbGV2ZWw6cy5sZXZlbH0pLHMudG9rZW5zLnB1c2goe3R5cGU6ImlubGluZSIsY29udGVudDpzLnNyYy5zbGljZSh1LHMuZU1hcmtzW29dKS50cmltKCksbGV2ZWw6cy5sZXZlbCsxLGxpbmVzOltvLHMubGluZS0xXSxjaGlsZHJlbjpbXX0pLHMudG9rZW5zLnB1c2goe3R5cGU6ImhlYWRpbmdfY2xvc2UiLGhMZXZlbDo2MT09PWE/MToyLGxldmVsOnMubGV2ZWx9KSwhMCkpKSkpKX1dLFsiaHRtbGJsb2NrIixmdW5jdGlvbiBodG1sYmxvY2socyxvLGksYSl7dmFyIHUsXyx3LHg9cy5iTWFya3Nbb10sQz1zLmVNYXJrc1tvXSxqPXMudFNoaWZ0W29dO2lmKHgrPWosIXMub3B0aW9ucy5odG1sKXJldHVybiExO2lmKGo+M3x8eCsyPj1DKXJldHVybiExO2lmKDYwIT09cy5zcmMuY2hhckNvZGVBdCh4KSlyZXR1cm4hMTtpZigzMz09PSh1PXMuc3JjLmNoYXJDb2RlQXQoeCsxKSl8fDYzPT09dSl7aWYoYSlyZXR1cm4hMH1lbHNle2lmKDQ3IT09dSYmIWZ1bmN0aW9uIGlzTGV0dGVyJDEocyl7dmFyIG89MzJ8cztyZXR1cm4gbz49OTcmJm88PTEyMn0odSkpcmV0dXJuITE7aWYoNDc9PT11KXtpZighKF89cy5zcmMuc2xpY2UoeCxDKS5tYXRjaChPQykpKXJldHVybiExfWVsc2UgaWYoIShfPXMuc3JjLnNsaWNlKHgsQykubWF0Y2goa0MpKSlyZXR1cm4hMTtpZighMCE9PXhDW19bMV0udG9Mb3dlckNhc2UoKV0pcmV0dXJuITE7aWYoYSlyZXR1cm4hMH1mb3Iodz1vKzE7dzxzLmxpbmVNYXgmJiFzLmlzRW1wdHkodyk7KXcrKztyZXR1cm4gcy5saW5lPXcscy50b2tlbnMucHVzaCh7dHlwZToiaHRtbGJsb2NrIixsZXZlbDpzLmxldmVsLGxpbmVzOltvLHMubGluZV0sY29udGVudDpzLmdldExpbmVzKG8sdywwLCEwKX0pLCEwfSxbInBhcmFncmFwaCIsImJsb2NrcXVvdGUiXV0sWyJ0YWJsZSIsZnVuY3Rpb24gdGFibGUocyxvLGksYSl7dmFyIHUsXyx3LHgsQyxqLEwsQiwkLFYsVTtpZihvKzI+aSlyZXR1cm4hMTtpZihDPW8rMSxzLnRTaGlmdFtDXTxzLmJsa0luZGVudClyZXR1cm4hMTtpZigodz1zLmJNYXJrc1tDXStzLnRTaGlmdFtDXSk+PXMuZU1hcmtzW0NdKXJldHVybiExO2lmKDEyNCE9PSh1PXMuc3JjLmNoYXJDb2RlQXQodykpJiY0NSE9PXUmJjU4IT09dSlyZXR1cm4hMTtpZihfPWluZGV4X2Jyb3dzZXJfZ2V0TGluZShzLG8rMSksIS9eWy06fCBdKyQvLnRlc3QoXykpcmV0dXJuITE7aWYoKGo9Xy5zcGxpdCgifCIpKTw9MilyZXR1cm4hMTtmb3IoQj1bXSx4PTA7eDxqLmxlbmd0aDt4Kyspe2lmKCEoJD1qW3hdLnRyaW0oKSkpe2lmKDA9PT14fHx4PT09ai5sZW5ndGgtMSljb250aW51ZTtyZXR1cm4hMX1pZighL146Py0rOj8kLy50ZXN0KCQpKXJldHVybiExOzU4PT09JC5jaGFyQ29kZUF0KCQubGVuZ3RoLTEpP0IucHVzaCg1OD09PSQuY2hhckNvZGVBdCgwKT8iY2VudGVyIjoicmlnaHQiKTo1OD09PSQuY2hhckNvZGVBdCgwKT9CLnB1c2goImxlZnQiKTpCLnB1c2goIiIpfWlmKC0xPT09KF89aW5kZXhfYnJvd3Nlcl9nZXRMaW5lKHMsbykudHJpbSgpKS5pbmRleE9mKCJ8IikpcmV0dXJuITE7aWYoaj1fLnJlcGxhY2UoL15cfHxcfCQvZywiIikuc3BsaXQoInwiKSxCLmxlbmd0aCE9PWoubGVuZ3RoKXJldHVybiExO2lmKGEpcmV0dXJuITA7Zm9yKHMudG9rZW5zLnB1c2goe3R5cGU6InRhYmxlX29wZW4iLGxpbmVzOlY9W28sMF0sbGV2ZWw6cy5sZXZlbCsrfSkscy50b2tlbnMucHVzaCh7dHlwZToidGhlYWRfb3BlbiIsbGluZXM6W28sbysxXSxsZXZlbDpzLmxldmVsKyt9KSxzLnRva2Vucy5wdXNoKHt0eXBlOiJ0cl9vcGVuIixsaW5lczpbbyxvKzFdLGxldmVsOnMubGV2ZWwrK30pLHg9MDt4PGoubGVuZ3RoO3grKylzLnRva2Vucy5wdXNoKHt0eXBlOiJ0aF9vcGVuIixhbGlnbjpCW3hdLGxpbmVzOltvLG8rMV0sbGV2ZWw6cy5sZXZlbCsrfSkscy50b2tlbnMucHVzaCh7dHlwZToiaW5saW5lIixjb250ZW50OmpbeF0udHJpbSgpLGxpbmVzOltvLG8rMV0sbGV2ZWw6cy5sZXZlbCxjaGlsZHJlbjpbXX0pLHMudG9rZW5zLnB1c2goe3R5cGU6InRoX2Nsb3NlIixsZXZlbDotLXMubGV2ZWx9KTtmb3Iocy50b2tlbnMucHVzaCh7dHlwZToidHJfY2xvc2UiLGxldmVsOi0tcy5sZXZlbH0pLHMudG9rZW5zLnB1c2goe3R5cGU6InRoZWFkX2Nsb3NlIixsZXZlbDotLXMubGV2ZWx9KSxzLnRva2Vucy5wdXNoKHt0eXBlOiJ0Ym9keV9vcGVuIixsaW5lczpVPVtvKzIsMF0sbGV2ZWw6cy5sZXZlbCsrfSksQz1vKzI7QzxpJiYhKHMudFNoaWZ0W0NdPHMuYmxrSW5kZW50KSYmLTEhPT0oXz1pbmRleF9icm93c2VyX2dldExpbmUocyxDKS50cmltKCkpLmluZGV4T2YoInwiKTtDKyspe2ZvcihqPV8ucmVwbGFjZSgvXlx8fFx8JC9nLCIiKS5zcGxpdCgifCIpLHMudG9rZW5zLnB1c2goe3R5cGU6InRyX29wZW4iLGxldmVsOnMubGV2ZWwrK30pLHg9MDt4PGoubGVuZ3RoO3grKylzLnRva2Vucy5wdXNoKHt0eXBlOiJ0ZF9vcGVuIixhbGlnbjpCW3hdLGxldmVsOnMubGV2ZWwrK30pLEw9alt4XS5zdWJzdHJpbmcoMTI0PT09alt4XS5jaGFyQ29kZUF0KDApPzE6MCwxMjQ9PT1qW3hdLmNoYXJDb2RlQXQoalt4XS5sZW5ndGgtMSk/alt4XS5sZW5ndGgtMTpqW3hdLmxlbmd0aCkudHJpbSgpLHMudG9rZW5zLnB1c2goe3R5cGU6ImlubGluZSIsY29udGVudDpMLGxldmVsOnMubGV2ZWwsY2hpbGRyZW46W119KSxzLnRva2Vucy5wdXNoKHt0eXBlOiJ0ZF9jbG9zZSIsbGV2ZWw6LS1zLmxldmVsfSk7cy50b2tlbnMucHVzaCh7dHlwZToidHJfY2xvc2UiLGxldmVsOi0tcy5sZXZlbH0pfXJldHVybiBzLnRva2Vucy5wdXNoKHt0eXBlOiJ0Ym9keV9jbG9zZSIsbGV2ZWw6LS1zLmxldmVsfSkscy50b2tlbnMucHVzaCh7dHlwZToidGFibGVfY2xvc2UiLGxldmVsOi0tcy5sZXZlbH0pLFZbMV09VVsxXT1DLHMubGluZT1DLCEwfSxbInBhcmFncmFwaCJdXSxbImRlZmxpc3QiLGZ1bmN0aW9uIGRlZmxpc3QocyxvLGksYSl7dmFyIHUsXyx3LHgsQyxqLEwsQiwkLFYsVSx6LFksWjtpZihhKXJldHVybiEocy5kZEluZGVudDwwKSYmc2tpcE1hcmtlcihzLG8pPj0wO2lmKEw9bysxLHMuaXNFbXB0eShMKSYmKytMPmkpcmV0dXJuITE7aWYocy50U2hpZnRbTF08cy5ibGtJbmRlbnQpcmV0dXJuITE7aWYoKHU9c2tpcE1hcmtlcihzLEwpKTwwKXJldHVybiExO2lmKHMubGV2ZWw+PXMub3B0aW9ucy5tYXhOZXN0aW5nKXJldHVybiExO2o9cy50b2tlbnMubGVuZ3RoLHMudG9rZW5zLnB1c2goe3R5cGU6ImRsX29wZW4iLGxpbmVzOkM9W28sMF0sbGV2ZWw6cy5sZXZlbCsrfSksdz1vLF89TDtlOmZvcig7Oyl7Zm9yKFo9ITAsWT0hMSxzLnRva2Vucy5wdXNoKHt0eXBlOiJkdF9vcGVuIixsaW5lczpbdyx3XSxsZXZlbDpzLmxldmVsKyt9KSxzLnRva2Vucy5wdXNoKHt0eXBlOiJpbmxpbmUiLGNvbnRlbnQ6cy5nZXRMaW5lcyh3LHcrMSxzLmJsa0luZGVudCwhMSkudHJpbSgpLGxldmVsOnMubGV2ZWwrMSxsaW5lczpbdyx3XSxjaGlsZHJlbjpbXX0pLHMudG9rZW5zLnB1c2goe3R5cGU6ImR0X2Nsb3NlIixsZXZlbDotLXMubGV2ZWx9KTs7KXtpZihzLnRva2Vucy5wdXNoKHt0eXBlOiJkZF9vcGVuIixsaW5lczp4PVtMLDBdLGxldmVsOnMubGV2ZWwrK30pLHo9cy50aWdodCwkPXMuZGRJbmRlbnQsQj1zLmJsa0luZGVudCxVPXMudFNoaWZ0W19dLFY9cy5wYXJlbnRUeXBlLHMuYmxrSW5kZW50PXMuZGRJbmRlbnQ9cy50U2hpZnRbX10rMixzLnRTaGlmdFtfXT11LXMuYk1hcmtzW19dLHMudGlnaHQ9ITAscy5wYXJlbnRUeXBlPSJkZWZsaXN0IixzLnBhcnNlci50b2tlbml6ZShzLF8saSwhMCkscy50aWdodCYmIVl8fChaPSExKSxZPXMubGluZS1fPjEmJnMuaXNFbXB0eShzLmxpbmUtMSkscy50U2hpZnRbX109VSxzLnRpZ2h0PXoscy5wYXJlbnRUeXBlPVYscy5ibGtJbmRlbnQ9QixzLmRkSW5kZW50PSQscy50b2tlbnMucHVzaCh7dHlwZToiZGRfY2xvc2UiLGxldmVsOi0tcy5sZXZlbH0pLHhbMV09TD1zLmxpbmUsTD49aSlicmVhayBlO2lmKHMudFNoaWZ0W0xdPHMuYmxrSW5kZW50KWJyZWFrIGU7aWYoKHU9c2tpcE1hcmtlcihzLEwpKTwwKWJyZWFrO189TH1pZihMPj1pKWJyZWFrO2lmKHc9TCxzLmlzRW1wdHkodykpYnJlYWs7aWYocy50U2hpZnRbd108cy5ibGtJbmRlbnQpYnJlYWs7aWYoKF89dysxKT49aSlicmVhaztpZihzLmlzRW1wdHkoXykmJl8rKyxfPj1pKWJyZWFrO2lmKHMudFNoaWZ0W19dPHMuYmxrSW5kZW50KWJyZWFrO2lmKCh1PXNraXBNYXJrZXIocyxfKSk8MClicmVha31yZXR1cm4gcy50b2tlbnMucHVzaCh7dHlwZToiZGxfY2xvc2UiLGxldmVsOi0tcy5sZXZlbH0pLENbMV09TCxzLmxpbmU9TCxaJiZmdW5jdGlvbiBtYXJrVGlnaHRQYXJhZ3JhcGhzJDEocyxvKXt2YXIgaSxhLHU9cy5sZXZlbCsyO2ZvcihpPW8rMixhPXMudG9rZW5zLmxlbmd0aC0yO2k8YTtpKyspcy50b2tlbnNbaV0ubGV2ZWw9PT11JiYicGFyYWdyYXBoX29wZW4iPT09cy50b2tlbnNbaV0udHlwZSYmKHMudG9rZW5zW2krMl0udGlnaHQ9ITAscy50b2tlbnNbaV0udGlnaHQ9ITAsaSs9Mil9KHMsaiksITB9LFsicGFyYWdyYXBoIl1dLFsicGFyYWdyYXBoIixmdW5jdGlvbiBwYXJhZ3JhcGgocyxvKXt2YXIgaSxhLHUsXyx3LHgsQz1vKzE7aWYoQzwoaT1zLmxpbmVNYXgpJiYhcy5pc0VtcHR5KEMpKWZvcih4PXMucGFyc2VyLnJ1bGVyLmdldFJ1bGVzKCJwYXJhZ3JhcGgiKTtDPGkmJiFzLmlzRW1wdHkoQyk7QysrKWlmKCEocy50U2hpZnRbQ10tcy5ibGtJbmRlbnQ+Mykpe2Zvcih1PSExLF89MCx3PXgubGVuZ3RoO188dztfKyspaWYoeFtfXShzLEMsaSwhMCkpe3U9ITA7YnJlYWt9aWYodSlicmVha31yZXR1cm4gYT1zLmdldExpbmVzKG8sQyxzLmJsa0luZGVudCwhMSkudHJpbSgpLHMubGluZT1DLGEubGVuZ3RoJiYocy50b2tlbnMucHVzaCh7dHlwZToicGFyYWdyYXBoX29wZW4iLHRpZ2h0OiExLGxpbmVzOltvLHMubGluZV0sbGV2ZWw6cy5sZXZlbH0pLHMudG9rZW5zLnB1c2goe3R5cGU6ImlubGluZSIsY29udGVudDphLGxldmVsOnMubGV2ZWwrMSxsaW5lczpbbyxzLmxpbmVdLGNoaWxkcmVuOltdfSkscy50b2tlbnMucHVzaCh7dHlwZToicGFyYWdyYXBoX2Nsb3NlIix0aWdodDohMSxsZXZlbDpzLmxldmVsfSkpLCEwfV1dO2Z1bmN0aW9uIFBhcnNlckJsb2NrKCl7dGhpcy5ydWxlcj1uZXcgUnVsZXI7Zm9yKHZhciBzPTA7czxDQy5sZW5ndGg7cysrKXRoaXMucnVsZXIucHVzaChDQ1tzXVswXSxDQ1tzXVsxXSx7YWx0OihDQ1tzXVsyXXx8W10pLnNsaWNlKCl9KX1QYXJzZXJCbG9jay5wcm90b3R5cGUudG9rZW5pemU9ZnVuY3Rpb24ocyxvLGkpe2Zvcih2YXIgYSx1PXRoaXMucnVsZXIuZ2V0UnVsZXMoIiIpLF89dS5sZW5ndGgsdz1vLHg9ITE7dzxpJiYocy5saW5lPXc9cy5za2lwRW1wdHlMaW5lcyh3KSwhKHc+PWkpKSYmIShzLnRTaGlmdFt3XTxzLmJsa0luZGVudCk7KXtmb3IoYT0wO2E8XyYmIXVbYV0ocyx3LGksITEpO2ErKyk7aWYocy50aWdodD0heCxzLmlzRW1wdHkocy5saW5lLTEpJiYoeD0hMCksKHc9cy5saW5lKTxpJiZzLmlzRW1wdHkodykpe2lmKHg9ITAsKyt3PGkmJiJsaXN0Ij09PXMucGFyZW50VHlwZSYmcy5pc0VtcHR5KHcpKWJyZWFrO3MubGluZT13fX19O3ZhciBBQz0vW1xuXHRdL2csakM9L1xyW1xuXHUwMDg1XXxbXHUyNDI0XHUyMDI4XHUwMDg1XS9nLFBDPS9cdTAwYTAvZztmdW5jdGlvbiBpc1Rlcm1pbmF0b3JDaGFyKHMpe3N3aXRjaChzKXtjYXNlIDEwOmNhc2UgOTI6Y2FzZSA5NjpjYXNlIDQyOmNhc2UgOTU6Y2FzZSA5NDpjYXNlIDkxOmNhc2UgOTM6Y2FzZSAzMzpjYXNlIDM4OmNhc2UgNjA6Y2FzZSA2MjpjYXNlIDEyMzpjYXNlIDEyNTpjYXNlIDM2OmNhc2UgMzc6Y2FzZSA2NDpjYXNlIDEyNjpjYXNlIDQzOmNhc2UgNjE6Y2FzZSA1ODpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1QYXJzZXJCbG9jay5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24ocyxvLGksYSl7dmFyIHUsXz0wLHc9MDtpZighcylyZXR1cm5bXTsocz0ocz1zLnJlcGxhY2UoUEMsIiAiKSkucmVwbGFjZShqQywiXG4iKSkuaW5kZXhPZigiXHQiKT49MCYmKHM9cy5yZXBsYWNlKEFDLChmdW5jdGlvbihvLGkpe3ZhciBhO3JldHVybiAxMD09PXMuY2hhckNvZGVBdChpKT8oXz1pKzEsdz0wLG8pOihhPSIgICAgIi5zbGljZSgoaS1fLXcpJTQpLHc9aS1fKzEsYSl9KSkpLHU9bmV3IFN0YXRlQmxvY2socyx0aGlzLG8saSxhKSx0aGlzLnRva2VuaXplKHUsdS5saW5lLHUubGluZU1heCl9O2Zvcih2YXIgSUM9W10sVEM9MDtUQzwyNTY7VEMrKylJQy5wdXNoKDApO2Z1bmN0aW9uIGlzQWxwaGFOdW0ocyl7cmV0dXJuIHM+PTQ4JiZzPD01N3x8cz49NjUmJnM8PTkwfHxzPj05NyYmczw9MTIyfWZ1bmN0aW9uIHNjYW5EZWxpbXMocyxvKXt2YXIgaSxhLHUsXz1vLHc9ITAseD0hMCxDPXMucG9zTWF4LGo9cy5zcmMuY2hhckNvZGVBdChvKTtmb3IoaT1vPjA/cy5zcmMuY2hhckNvZGVBdChvLTEpOi0xO188QyYmcy5zcmMuY2hhckNvZGVBdChfKT09PWo7KV8rKztyZXR1cm4gXz49QyYmKHc9ITEpLCh1PV8tbyk+PTQ/dz14PSExOigzMiE9PShhPV88Qz9zLnNyYy5jaGFyQ29kZUF0KF8pOi0xKSYmMTAhPT1hfHwodz0hMSksMzIhPT1pJiYxMCE9PWl8fCh4PSExKSw5NT09PWomJihpc0FscGhhTnVtKGkpJiYodz0hMSksaXNBbHBoYU51bShhKSYmKHg9ITEpKSkse2Nhbl9vcGVuOncsY2FuX2Nsb3NlOngsZGVsaW1zOnV9fSJcXCFcIiMkJSYnKCkqKywuLzo7PD0+P0BbXV5fYHt8fX4tIi5zcGxpdCgiIikuZm9yRWFjaCgoZnVuY3Rpb24ocyl7SUNbcy5jaGFyQ29kZUF0KDApXT0xfSkpO3ZhciBOQz0vXFwoWyBcXCEiIyQlJicoKSorLC5cLzo7PD0+P0BbXF1eX2B7fH1+LV0pL2c7dmFyIE1DPS9cXChbIFxcISIjJCUmJygpKissLlwvOjs8PT4/QFtcXV5fYHt8fX4tXSkvZzt2YXIgUkM9WyJjb2FwIiwiZG9pIiwiamF2YXNjcmlwdCIsImFhYSIsImFhYXMiLCJhYm91dCIsImFjYXAiLCJjYXAiLCJjaWQiLCJjcmlkIiwiZGF0YSIsImRhdiIsImRpY3QiLCJkbnMiLCJmaWxlIiwiZnRwIiwiZ2VvIiwiZ28iLCJnb3BoZXIiLCJoMzIzIiwiaHR0cCIsImh0dHBzIiwiaWF4IiwiaWNhcCIsImltIiwiaW1hcCIsImluZm8iLCJpcHAiLCJpcmlzIiwiaXJpcy5iZWVwIiwiaXJpcy54cGMiLCJpcmlzLnhwY3MiLCJpcmlzLmx3eiIsImxkYXAiLCJtYWlsdG8iLCJtaWQiLCJtc3JwIiwibXNycHMiLCJtdHFwIiwibXVwZGF0ZSIsIm5ld3MiLCJuZnMiLCJuaSIsIm5paCIsIm5udHAiLCJvcGFxdWVsb2NrdG9rZW4iLCJwb3AiLCJwcmVzIiwicnRzcCIsInNlcnZpY2UiLCJzZXNzaW9uIiwic2h0dHAiLCJzaWV2ZSIsInNpcCIsInNpcHMiLCJzbXMiLCJzbm1wIiwic29hcC5iZWVwIiwic29hcC5iZWVwcyIsInRhZyIsInRlbCIsInRlbG5ldCIsInRmdHAiLCJ0aGlzbWVzc2FnZSIsInRuMzI3MCIsInRpcCIsInR2IiwidXJuIiwidmVtbWkiLCJ3cyIsIndzcyIsInhjb24iLCJ4Y29uLXVzZXJpZCIsInhtbHJwYy5iZWVwIiwieG1scnBjLmJlZXBzIiwieG1wcCIsInozOS41MHIiLCJ6MzkuNTBzIiwiYWRpdW14dHJhIiwiYWZwIiwiYWZzIiwiYWltIiwiYXB0IiwiYXR0YWNobWVudCIsImF3IiwiYmVzaGFyZSIsImJpdGNvaW4iLCJib2xvIiwiY2FsbHRvIiwiY2hyb21lIiwiY2hyb21lLWV4dGVuc2lvbiIsImNvbS1ldmVudGJyaXRlLWF0dGVuZGVlIiwiY29udGVudCIsImN2cyIsImRsbmEtcGxheXNpbmdsZSIsImRsbmEtcGxheWNvbnRhaW5lciIsImR0biIsImR2YiIsImVkMmsiLCJmYWNldGltZSIsImZlZWQiLCJmaW5nZXIiLCJmaXNoIiwiZ2ciLCJnaXQiLCJnaXptb3Byb2plY3QiLCJndGFsayIsImhjcCIsImljb24iLCJpcG4iLCJpcmMiLCJpcmM2IiwiaXJjcyIsIml0bXMiLCJqYXIiLCJqbXMiLCJrZXlwYXJjIiwibGFzdGZtIiwibGRhcHMiLCJtYWduZXQiLCJtYXBzIiwibWFya2V0IiwibWVzc2FnZSIsIm1tcyIsIm1zLWhlbHAiLCJtc25pbSIsIm11bWJsZSIsIm12biIsIm5vdGVzIiwib2lkIiwicGFsbSIsInBhcGFyYXp6aSIsInBsYXRmb3JtIiwicHJveHkiLCJwc3ljIiwicXVlcnkiLCJyZXMiLCJyZXNvdXJjZSIsInJtaSIsInJzeW5jIiwicnRtcCIsInNlY29uZGxpZmUiLCJzZnRwIiwic2duIiwic2t5cGUiLCJzbWIiLCJzb2xkYXQiLCJzcG90aWZ5Iiwic3NoIiwic3RlYW0iLCJzdm4iLCJ0ZWFtc3BlYWsiLCJ0aGluZ3MiLCJ1ZHAiLCJ1bnJlYWwiLCJ1dDIwMDQiLCJ2ZW50cmlsbyIsInZpZXctc291cmNlIiwid2ViY2FsIiwid3RhaSIsInd5Y2l3eWciLCJ4ZmlyZSIsInhyaSIsInltc2dyIl0sREM9L148KFthLXpBLVowLTkuISMkJSYnKitcLz0/Xl9ge3x9fi1dK0BbYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8oPzpcLlthLXpBLVowLTldKD86W2EtekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pPykqKT4vLExDPS9ePChbYS16QS1aLlwtXXsxLDI1fSk6KFtePD5ceDAwLVx4MjBdKik+LztmdW5jdGlvbiByZXBsYWNlJDEocyxvKXtyZXR1cm4gcz1zLnNvdXJjZSxvPW98fCIiLGZ1bmN0aW9uIHNlbGYoaSxhKXtyZXR1cm4gaT8oYT1hLnNvdXJjZXx8YSxzPXMucmVwbGFjZShpLGEpLHNlbGYpOm5ldyBSZWdFeHAocyxvKX19dmFyIEZDPXJlcGxhY2UkMSgvKD86dW5xdW90ZWR8c2luZ2xlX3F1b3RlZHxkb3VibGVfcXVvdGVkKS8pKCJ1bnF1b3RlZCIsL1teIic9PD5gXHgwMC1ceDIwXSsvKSgic2luZ2xlX3F1b3RlZCIsLydbXiddKicvKSgiZG91YmxlX3F1b3RlZCIsLyJbXiJdKiIvKSgpLEJDPXJlcGxhY2UkMSgvKD86XHMrYXR0cl9uYW1lKD86XHMqPVxzKmF0dHJfdmFsdWUpPykvKSgiYXR0cl9uYW1lIiwvW2EtekEtWl86XVthLXpBLVowLTk6Ll8tXSovKSgiYXR0cl92YWx1ZSIsRkMpKCksJEM9cmVwbGFjZSQxKC88W0EtWmEtel1bQS1aYS16MC05XSphdHRyaWJ1dGUqXHMqXC8/Pi8pKCJhdHRyaWJ1dGUiLEJDKSgpLHFDPXJlcGxhY2UkMSgvXig/Om9wZW5fdGFnfGNsb3NlX3RhZ3xjb21tZW50fHByb2Nlc3Npbmd8ZGVjbGFyYXRpb258Y2RhdGEpLykoIm9wZW5fdGFnIiwkQykoImNsb3NlX3RhZyIsLzxcL1tBLVphLXpdW0EtWmEtejAtOV0qXHMqPi8pKCJjb21tZW50IiwvPCEtLS0tPnw8IS0tKD86LT9bXj4tXSkoPzotP1teLV0pKi0tPi8pKCJwcm9jZXNzaW5nIiwvPFs/XS4qP1s/XT4vKSgiZGVjbGFyYXRpb24iLC88IVtBLVpdK1xzK1tePl0qPi8pKCJjZGF0YSIsLzwhXFtDREFUQVxbW1xzXFNdKj9cXVxdPi8pKCk7dmFyIFZDPS9eJiMoKD86eFthLWYwLTldezEsOH18WzAtOV17MSw4fSkpOy9pLFVDPS9eJihbYS16XVthLXowLTldezEsMzF9KTsvaTt2YXIgekM9W1sidGV4dCIsZnVuY3Rpb24gaW5kZXhfYnJvd3Nlcl90ZXh0KHMsbyl7Zm9yKHZhciBpPXMucG9zO2k8cy5wb3NNYXgmJiFpc1Rlcm1pbmF0b3JDaGFyKHMuc3JjLmNoYXJDb2RlQXQoaSkpOylpKys7cmV0dXJuIGkhPT1zLnBvcyYmKG98fChzLnBlbmRpbmcrPXMuc3JjLnNsaWNlKHMucG9zLGkpKSxzLnBvcz1pLCEwKX1dLFsibmV3bGluZSIsZnVuY3Rpb24gbmV3bGluZShzLG8pe3ZhciBpLGEsdT1zLnBvcztpZigxMCE9PXMuc3JjLmNoYXJDb2RlQXQodSkpcmV0dXJuITE7aWYoaT1zLnBlbmRpbmcubGVuZ3RoLTEsYT1zLnBvc01heCwhbylpZihpPj0wJiYzMj09PXMucGVuZGluZy5jaGFyQ29kZUF0KGkpKWlmKGk+PTEmJjMyPT09cy5wZW5kaW5nLmNoYXJDb2RlQXQoaS0xKSl7Zm9yKHZhciBfPWktMjtfPj0wO18tLSlpZigzMiE9PXMucGVuZGluZy5jaGFyQ29kZUF0KF8pKXtzLnBlbmRpbmc9cy5wZW5kaW5nLnN1YnN0cmluZygwLF8rMSk7YnJlYWt9cy5wdXNoKHt0eXBlOiJoYXJkYnJlYWsiLGxldmVsOnMubGV2ZWx9KX1lbHNlIHMucGVuZGluZz1zLnBlbmRpbmcuc2xpY2UoMCwtMSkscy5wdXNoKHt0eXBlOiJzb2Z0YnJlYWsiLGxldmVsOnMubGV2ZWx9KTtlbHNlIHMucHVzaCh7dHlwZToic29mdGJyZWFrIixsZXZlbDpzLmxldmVsfSk7Zm9yKHUrKzt1PGEmJjMyPT09cy5zcmMuY2hhckNvZGVBdCh1KTspdSsrO3JldHVybiBzLnBvcz11LCEwfV0sWyJlc2NhcGUiLGZ1bmN0aW9uIGluZGV4X2Jyb3dzZXJfZXNjYXBlKHMsbyl7dmFyIGksYT1zLnBvcyx1PXMucG9zTWF4O2lmKDkyIT09cy5zcmMuY2hhckNvZGVBdChhKSlyZXR1cm4hMTtpZigrK2E8dSl7aWYoKGk9cy5zcmMuY2hhckNvZGVBdChhKSk8MjU2JiYwIT09SUNbaV0pcmV0dXJuIG98fChzLnBlbmRpbmcrPXMuc3JjW2FdKSxzLnBvcys9MiwhMDtpZigxMD09PWkpe2ZvcihvfHxzLnB1c2goe3R5cGU6ImhhcmRicmVhayIsbGV2ZWw6cy5sZXZlbH0pLGErKzthPHUmJjMyPT09cy5zcmMuY2hhckNvZGVBdChhKTspYSsrO3JldHVybiBzLnBvcz1hLCEwfX1yZXR1cm4gb3x8KHMucGVuZGluZys9IlxcIikscy5wb3MrKywhMH1dLFsiYmFja3RpY2tzIixmdW5jdGlvbiBiYWNrdGlja3MocyxvKXt2YXIgaSxhLHUsXyx3LHg9cy5wb3M7aWYoOTYhPT1zLnNyYy5jaGFyQ29kZUF0KHgpKXJldHVybiExO2ZvcihpPXgseCsrLGE9cy5wb3NNYXg7eDxhJiY5Nj09PXMuc3JjLmNoYXJDb2RlQXQoeCk7KXgrKztmb3IodT1zLnNyYy5zbGljZShpLHgpLF89dz14Oy0xIT09KF89cy5zcmMuaW5kZXhPZigiYCIsdykpOyl7Zm9yKHc9XysxO3c8YSYmOTY9PT1zLnNyYy5jaGFyQ29kZUF0KHcpOyl3Kys7aWYody1fPT09dS5sZW5ndGgpcmV0dXJuIG98fHMucHVzaCh7dHlwZToiY29kZSIsY29udGVudDpzLnNyYy5zbGljZSh4LF8pLnJlcGxhY2UoL1sgXG5dKy9nLCIgIikudHJpbSgpLGJsb2NrOiExLGxldmVsOnMubGV2ZWx9KSxzLnBvcz13LCEwfXJldHVybiBvfHwocy5wZW5kaW5nKz11KSxzLnBvcys9dS5sZW5ndGgsITB9XSxbImRlbCIsZnVuY3Rpb24gZGVsKHMsbyl7dmFyIGksYSx1LF8sdyx4PXMucG9zTWF4LEM9cy5wb3M7aWYoMTI2IT09cy5zcmMuY2hhckNvZGVBdChDKSlyZXR1cm4hMTtpZihvKXJldHVybiExO2lmKEMrND49eClyZXR1cm4hMTtpZigxMjYhPT1zLnNyYy5jaGFyQ29kZUF0KEMrMSkpcmV0dXJuITE7aWYocy5sZXZlbD49cy5vcHRpb25zLm1heE5lc3RpbmcpcmV0dXJuITE7aWYoXz1DPjA/cy5zcmMuY2hhckNvZGVBdChDLTEpOi0xLHc9cy5zcmMuY2hhckNvZGVBdChDKzIpLDEyNj09PV8pcmV0dXJuITE7aWYoMTI2PT09dylyZXR1cm4hMTtpZigzMj09PXd8fDEwPT09dylyZXR1cm4hMTtmb3IoYT1DKzI7YTx4JiYxMjY9PT1zLnNyYy5jaGFyQ29kZUF0KGEpOylhKys7aWYoYT5DKzMpcmV0dXJuIHMucG9zKz1hLUMsb3x8KHMucGVuZGluZys9cy5zcmMuc2xpY2UoQyxhKSksITA7Zm9yKHMucG9zPUMrMix1PTE7cy5wb3MrMTx4Oyl7aWYoMTI2PT09cy5zcmMuY2hhckNvZGVBdChzLnBvcykmJjEyNj09PXMuc3JjLmNoYXJDb2RlQXQocy5wb3MrMSkmJihfPXMuc3JjLmNoYXJDb2RlQXQocy5wb3MtMSksMTI2IT09KHc9cy5wb3MrMjx4P3Muc3JjLmNoYXJDb2RlQXQocy5wb3MrMik6LTEpJiYxMjYhPT1fJiYoMzIhPT1fJiYxMCE9PV8/dS0tOjMyIT09dyYmMTAhPT13JiZ1KyssdTw9MCkpKXtpPSEwO2JyZWFrfXMucGFyc2VyLnNraXBUb2tlbihzKX1yZXR1cm4gaT8ocy5wb3NNYXg9cy5wb3Mscy5wb3M9QysyLG98fChzLnB1c2goe3R5cGU6ImRlbF9vcGVuIixsZXZlbDpzLmxldmVsKyt9KSxzLnBhcnNlci50b2tlbml6ZShzKSxzLnB1c2goe3R5cGU6ImRlbF9jbG9zZSIsbGV2ZWw6LS1zLmxldmVsfSkpLHMucG9zPXMucG9zTWF4KzIscy5wb3NNYXg9eCwhMCk6KHMucG9zPUMsITEpfV0sWyJpbnMiLGZ1bmN0aW9uIGlucyhzLG8pe3ZhciBpLGEsdSxfLHcseD1zLnBvc01heCxDPXMucG9zO2lmKDQzIT09cy5zcmMuY2hhckNvZGVBdChDKSlyZXR1cm4hMTtpZihvKXJldHVybiExO2lmKEMrND49eClyZXR1cm4hMTtpZig0MyE9PXMuc3JjLmNoYXJDb2RlQXQoQysxKSlyZXR1cm4hMTtpZihzLmxldmVsPj1zLm9wdGlvbnMubWF4TmVzdGluZylyZXR1cm4hMTtpZihfPUM+MD9zLnNyYy5jaGFyQ29kZUF0KEMtMSk6LTEsdz1zLnNyYy5jaGFyQ29kZUF0KEMrMiksNDM9PT1fKXJldHVybiExO2lmKDQzPT09dylyZXR1cm4hMTtpZigzMj09PXd8fDEwPT09dylyZXR1cm4hMTtmb3IoYT1DKzI7YTx4JiY0Mz09PXMuc3JjLmNoYXJDb2RlQXQoYSk7KWErKztpZihhIT09QysyKXJldHVybiBzLnBvcys9YS1DLG98fChzLnBlbmRpbmcrPXMuc3JjLnNsaWNlKEMsYSkpLCEwO2ZvcihzLnBvcz1DKzIsdT0xO3MucG9zKzE8eDspe2lmKDQzPT09cy5zcmMuY2hhckNvZGVBdChzLnBvcykmJjQzPT09cy5zcmMuY2hhckNvZGVBdChzLnBvcysxKSYmKF89cy5zcmMuY2hhckNvZGVBdChzLnBvcy0xKSw0MyE9PSh3PXMucG9zKzI8eD9zLnNyYy5jaGFyQ29kZUF0KHMucG9zKzIpOi0xKSYmNDMhPT1fJiYoMzIhPT1fJiYxMCE9PV8/dS0tOjMyIT09dyYmMTAhPT13JiZ1KyssdTw9MCkpKXtpPSEwO2JyZWFrfXMucGFyc2VyLnNraXBUb2tlbihzKX1yZXR1cm4gaT8ocy5wb3NNYXg9cy5wb3Mscy5wb3M9QysyLG98fChzLnB1c2goe3R5cGU6Imluc19vcGVuIixsZXZlbDpzLmxldmVsKyt9KSxzLnBhcnNlci50b2tlbml6ZShzKSxzLnB1c2goe3R5cGU6Imluc19jbG9zZSIsbGV2ZWw6LS1zLmxldmVsfSkpLHMucG9zPXMucG9zTWF4KzIscy5wb3NNYXg9eCwhMCk6KHMucG9zPUMsITEpfV0sWyJtYXJrIixmdW5jdGlvbiBtYXJrKHMsbyl7dmFyIGksYSx1LF8sdyx4PXMucG9zTWF4LEM9cy5wb3M7aWYoNjEhPT1zLnNyYy5jaGFyQ29kZUF0KEMpKXJldHVybiExO2lmKG8pcmV0dXJuITE7aWYoQys0Pj14KXJldHVybiExO2lmKDYxIT09cy5zcmMuY2hhckNvZGVBdChDKzEpKXJldHVybiExO2lmKHMubGV2ZWw+PXMub3B0aW9ucy5tYXhOZXN0aW5nKXJldHVybiExO2lmKF89Qz4wP3Muc3JjLmNoYXJDb2RlQXQoQy0xKTotMSx3PXMuc3JjLmNoYXJDb2RlQXQoQysyKSw2MT09PV8pcmV0dXJuITE7aWYoNjE9PT13KXJldHVybiExO2lmKDMyPT09d3x8MTA9PT13KXJldHVybiExO2ZvcihhPUMrMjthPHgmJjYxPT09cy5zcmMuY2hhckNvZGVBdChhKTspYSsrO2lmKGEhPT1DKzIpcmV0dXJuIHMucG9zKz1hLUMsb3x8KHMucGVuZGluZys9cy5zcmMuc2xpY2UoQyxhKSksITA7Zm9yKHMucG9zPUMrMix1PTE7cy5wb3MrMTx4Oyl7aWYoNjE9PT1zLnNyYy5jaGFyQ29kZUF0KHMucG9zKSYmNjE9PT1zLnNyYy5jaGFyQ29kZUF0KHMucG9zKzEpJiYoXz1zLnNyYy5jaGFyQ29kZUF0KHMucG9zLTEpLDYxIT09KHc9cy5wb3MrMjx4P3Muc3JjLmNoYXJDb2RlQXQocy5wb3MrMik6LTEpJiY2MSE9PV8mJigzMiE9PV8mJjEwIT09Xz91LS06MzIhPT13JiYxMCE9PXcmJnUrKyx1PD0wKSkpe2k9ITA7YnJlYWt9cy5wYXJzZXIuc2tpcFRva2VuKHMpfXJldHVybiBpPyhzLnBvc01heD1zLnBvcyxzLnBvcz1DKzIsb3x8KHMucHVzaCh7dHlwZToibWFya19vcGVuIixsZXZlbDpzLmxldmVsKyt9KSxzLnBhcnNlci50b2tlbml6ZShzKSxzLnB1c2goe3R5cGU6Im1hcmtfY2xvc2UiLGxldmVsOi0tcy5sZXZlbH0pKSxzLnBvcz1zLnBvc01heCsyLHMucG9zTWF4PXgsITApOihzLnBvcz1DLCExKX1dLFsiZW1waGFzaXMiLGZ1bmN0aW9uIGVtcGhhc2lzKHMsbyl7dmFyIGksYSx1LF8sdyx4LEMsaj1zLnBvc01heCxMPXMucG9zLEI9cy5zcmMuY2hhckNvZGVBdChMKTtpZig5NSE9PUImJjQyIT09QilyZXR1cm4hMTtpZihvKXJldHVybiExO2lmKGk9KEM9c2NhbkRlbGltcyhzLEwpKS5kZWxpbXMsIUMuY2FuX29wZW4pcmV0dXJuIHMucG9zKz1pLG98fChzLnBlbmRpbmcrPXMuc3JjLnNsaWNlKEwscy5wb3MpKSwhMDtpZihzLmxldmVsPj1zLm9wdGlvbnMubWF4TmVzdGluZylyZXR1cm4hMTtmb3Iocy5wb3M9TCtpLHg9W2ldO3MucG9zPGo7KWlmKHMuc3JjLmNoYXJDb2RlQXQocy5wb3MpIT09QilzLnBhcnNlci5za2lwVG9rZW4ocyk7ZWxzZXtpZihhPShDPXNjYW5EZWxpbXMocyxzLnBvcykpLmRlbGltcyxDLmNhbl9jbG9zZSl7Zm9yKF89eC5wb3AoKSx3PWE7XyE9PXc7KXtpZih3PF8pe3gucHVzaChfLXcpO2JyZWFrfWlmKHctPV8sMD09PXgubGVuZ3RoKWJyZWFrO3MucG9zKz1fLF89eC5wb3AoKX1pZigwPT09eC5sZW5ndGgpe2k9Xyx1PSEwO2JyZWFrfXMucG9zKz1hO2NvbnRpbnVlfUMuY2FuX29wZW4mJngucHVzaChhKSxzLnBvcys9YX1yZXR1cm4gdT8ocy5wb3NNYXg9cy5wb3Mscy5wb3M9TCtpLG98fCgyIT09aSYmMyE9PWl8fHMucHVzaCh7dHlwZToic3Ryb25nX29wZW4iLGxldmVsOnMubGV2ZWwrK30pLDEhPT1pJiYzIT09aXx8cy5wdXNoKHt0eXBlOiJlbV9vcGVuIixsZXZlbDpzLmxldmVsKyt9KSxzLnBhcnNlci50b2tlbml6ZShzKSwxIT09aSYmMyE9PWl8fHMucHVzaCh7dHlwZToiZW1fY2xvc2UiLGxldmVsOi0tcy5sZXZlbH0pLDIhPT1pJiYzIT09aXx8cy5wdXNoKHt0eXBlOiJzdHJvbmdfY2xvc2UiLGxldmVsOi0tcy5sZXZlbH0pKSxzLnBvcz1zLnBvc01heCtpLHMucG9zTWF4PWosITApOihzLnBvcz1MLCExKX1dLFsic3ViIixmdW5jdGlvbiBzdWIocyxvKXt2YXIgaSxhLHU9cy5wb3NNYXgsXz1zLnBvcztpZigxMjYhPT1zLnNyYy5jaGFyQ29kZUF0KF8pKXJldHVybiExO2lmKG8pcmV0dXJuITE7aWYoXysyPj11KXJldHVybiExO2lmKHMubGV2ZWw+PXMub3B0aW9ucy5tYXhOZXN0aW5nKXJldHVybiExO2ZvcihzLnBvcz1fKzE7cy5wb3M8dTspe2lmKDEyNj09PXMuc3JjLmNoYXJDb2RlQXQocy5wb3MpKXtpPSEwO2JyZWFrfXMucGFyc2VyLnNraXBUb2tlbihzKX1yZXR1cm4gaSYmXysxIT09cy5wb3M/KGE9cy5zcmMuc2xpY2UoXysxLHMucG9zKSkubWF0Y2goLyhefFteXFxdKShcXFxcKSpccy8pPyhzLnBvcz1fLCExKToocy5wb3NNYXg9cy5wb3Mscy5wb3M9XysxLG98fHMucHVzaCh7dHlwZToic3ViIixsZXZlbDpzLmxldmVsLGNvbnRlbnQ6YS5yZXBsYWNlKE5DLCIkMSIpfSkscy5wb3M9cy5wb3NNYXgrMSxzLnBvc01heD11LCEwKToocy5wb3M9XywhMSl9XSxbInN1cCIsZnVuY3Rpb24gc3VwKHMsbyl7dmFyIGksYSx1PXMucG9zTWF4LF89cy5wb3M7aWYoOTQhPT1zLnNyYy5jaGFyQ29kZUF0KF8pKXJldHVybiExO2lmKG8pcmV0dXJuITE7aWYoXysyPj11KXJldHVybiExO2lmKHMubGV2ZWw+PXMub3B0aW9ucy5tYXhOZXN0aW5nKXJldHVybiExO2ZvcihzLnBvcz1fKzE7cy5wb3M8dTspe2lmKDk0PT09cy5zcmMuY2hhckNvZGVBdChzLnBvcykpe2k9ITA7YnJlYWt9cy5wYXJzZXIuc2tpcFRva2VuKHMpfXJldHVybiBpJiZfKzEhPT1zLnBvcz8oYT1zLnNyYy5zbGljZShfKzEscy5wb3MpKS5tYXRjaCgvKF58W15cXF0pKFxcXFwpKlxzLyk/KHMucG9zPV8sITEpOihzLnBvc01heD1zLnBvcyxzLnBvcz1fKzEsb3x8cy5wdXNoKHt0eXBlOiJzdXAiLGxldmVsOnMubGV2ZWwsY29udGVudDphLnJlcGxhY2UoTUMsIiQxIil9KSxzLnBvcz1zLnBvc01heCsxLHMucG9zTWF4PXUsITApOihzLnBvcz1fLCExKX1dLFsibGlua3MiLGZ1bmN0aW9uIGxpbmtzKHMsbyl7dmFyIGksYSx1LF8sdyx4LEMsaixMPSExLEI9cy5wb3MsJD1zLnBvc01heCxWPXMucG9zLFU9cy5zcmMuY2hhckNvZGVBdChWKTtpZigzMz09PVUmJihMPSEwLFU9cy5zcmMuY2hhckNvZGVBdCgrK1YpKSw5MSE9PVUpcmV0dXJuITE7aWYocy5sZXZlbD49cy5vcHRpb25zLm1heE5lc3RpbmcpcmV0dXJuITE7aWYoaT1WKzEsKGE9cGFyc2VMaW5rTGFiZWwocyxWKSk8MClyZXR1cm4hMTtpZigoeD1hKzEpPCQmJjQwPT09cy5zcmMuY2hhckNvZGVBdCh4KSl7Zm9yKHgrKzt4PCQmJigzMj09PShqPXMuc3JjLmNoYXJDb2RlQXQoeCkpfHwxMD09PWopO3grKyk7aWYoeD49JClyZXR1cm4hMTtmb3IoVj14LHBhcnNlTGlua0Rlc3RpbmF0aW9uKHMseCk/KF89cy5saW5rQ29udGVudCx4PXMucG9zKTpfPSIiLFY9eDt4PCQmJigzMj09PShqPXMuc3JjLmNoYXJDb2RlQXQoeCkpfHwxMD09PWopO3grKyk7aWYoeDwkJiZWIT09eCYmcGFyc2VMaW5rVGl0bGUocyx4KSlmb3Iodz1zLmxpbmtDb250ZW50LHg9cy5wb3M7eDwkJiYoMzI9PT0oaj1zLnNyYy5jaGFyQ29kZUF0KHgpKXx8MTA9PT1qKTt4KyspO2Vsc2Ugdz0iIjtpZih4Pj0kfHw0MSE9PXMuc3JjLmNoYXJDb2RlQXQoeCkpcmV0dXJuIHMucG9zPUIsITE7eCsrfWVsc2V7aWYocy5saW5rTGV2ZWw+MClyZXR1cm4hMTtmb3IoO3g8JCYmKDMyPT09KGo9cy5zcmMuY2hhckNvZGVBdCh4KSl8fDEwPT09aik7eCsrKTtpZih4PCQmJjkxPT09cy5zcmMuY2hhckNvZGVBdCh4KSYmKFY9eCsxLCh4PXBhcnNlTGlua0xhYmVsKHMseCkpPj0wP3U9cy5zcmMuc2xpY2UoVix4KyspOng9Vi0xKSx1fHwodm9pZCAwPT09dSYmKHg9YSsxKSx1PXMuc3JjLnNsaWNlKGksYSkpLCEoQz1zLmVudi5yZWZlcmVuY2VzW25vcm1hbGl6ZVJlZmVyZW5jZSh1KV0pKXJldHVybiBzLnBvcz1CLCExO189Qy5ocmVmLHc9Qy50aXRsZX1yZXR1cm4gb3x8KHMucG9zPWkscy5wb3NNYXg9YSxMP3MucHVzaCh7dHlwZToiaW1hZ2UiLHNyYzpfLHRpdGxlOncsYWx0OnMuc3JjLnN1YnN0cihpLGEtaSksbGV2ZWw6cy5sZXZlbH0pOihzLnB1c2goe3R5cGU6Imxpbmtfb3BlbiIsaHJlZjpfLHRpdGxlOncsbGV2ZWw6cy5sZXZlbCsrfSkscy5saW5rTGV2ZWwrKyxzLnBhcnNlci50b2tlbml6ZShzKSxzLmxpbmtMZXZlbC0tLHMucHVzaCh7dHlwZToibGlua19jbG9zZSIsbGV2ZWw6LS1zLmxldmVsfSkpKSxzLnBvcz14LHMucG9zTWF4PSQsITB9XSxbImZvb3Rub3RlX2lubGluZSIsZnVuY3Rpb24gZm9vdG5vdGVfaW5saW5lKHMsbyl7dmFyIGksYSx1LF8sdz1zLnBvc01heCx4PXMucG9zO3JldHVybiEoeCsyPj13KSYmKDk0PT09cy5zcmMuY2hhckNvZGVBdCh4KSYmKDkxPT09cy5zcmMuY2hhckNvZGVBdCh4KzEpJiYoIShzLmxldmVsPj1zLm9wdGlvbnMubWF4TmVzdGluZykmJihpPXgrMiwhKChhPXBhcnNlTGlua0xhYmVsKHMseCsxKSk8MCkmJihvfHwocy5lbnYuZm9vdG5vdGVzfHwocy5lbnYuZm9vdG5vdGVzPXt9KSxzLmVudi5mb290bm90ZXMubGlzdHx8KHMuZW52LmZvb3Rub3Rlcy5saXN0PVtdKSx1PXMuZW52LmZvb3Rub3Rlcy5saXN0Lmxlbmd0aCxzLnBvcz1pLHMucG9zTWF4PWEscy5wdXNoKHt0eXBlOiJmb290bm90ZV9yZWYiLGlkOnUsbGV2ZWw6cy5sZXZlbH0pLHMubGlua0xldmVsKyssXz1zLnRva2Vucy5sZW5ndGgscy5wYXJzZXIudG9rZW5pemUocykscy5lbnYuZm9vdG5vdGVzLmxpc3RbdV09e3Rva2VuczpzLnRva2Vucy5zcGxpY2UoXyl9LHMubGlua0xldmVsLS0pLHMucG9zPWErMSxzLnBvc01heD13LCEwKSkpKSl9XSxbImZvb3Rub3RlX3JlZiIsZnVuY3Rpb24gZm9vdG5vdGVfcmVmKHMsbyl7dmFyIGksYSx1LF8sdz1zLnBvc01heCx4PXMucG9zO2lmKHgrMz53KXJldHVybiExO2lmKCFzLmVudi5mb290bm90ZXN8fCFzLmVudi5mb290bm90ZXMucmVmcylyZXR1cm4hMTtpZig5MSE9PXMuc3JjLmNoYXJDb2RlQXQoeCkpcmV0dXJuITE7aWYoOTQhPT1zLnNyYy5jaGFyQ29kZUF0KHgrMSkpcmV0dXJuITE7aWYocy5sZXZlbD49cy5vcHRpb25zLm1heE5lc3RpbmcpcmV0dXJuITE7Zm9yKGE9eCsyO2E8dzthKyspe2lmKDMyPT09cy5zcmMuY2hhckNvZGVBdChhKSlyZXR1cm4hMTtpZigxMD09PXMuc3JjLmNoYXJDb2RlQXQoYSkpcmV0dXJuITE7aWYoOTM9PT1zLnNyYy5jaGFyQ29kZUF0KGEpKWJyZWFrfXJldHVybiBhIT09eCsyJiYoIShhPj13KSYmKGErKyxpPXMuc3JjLnNsaWNlKHgrMixhLTEpLHZvaWQgMCE9PXMuZW52LmZvb3Rub3Rlcy5yZWZzWyI6IitpXSYmKG98fChzLmVudi5mb290bm90ZXMubGlzdHx8KHMuZW52LmZvb3Rub3Rlcy5saXN0PVtdKSxzLmVudi5mb290bm90ZXMucmVmc1siOiIraV08MD8odT1zLmVudi5mb290bm90ZXMubGlzdC5sZW5ndGgscy5lbnYuZm9vdG5vdGVzLmxpc3RbdV09e2xhYmVsOmksY291bnQ6MH0scy5lbnYuZm9vdG5vdGVzLnJlZnNbIjoiK2ldPXUpOnU9cy5lbnYuZm9vdG5vdGVzLnJlZnNbIjoiK2ldLF89cy5lbnYuZm9vdG5vdGVzLmxpc3RbdV0uY291bnQscy5lbnYuZm9vdG5vdGVzLmxpc3RbdV0uY291bnQrKyxzLnB1c2goe3R5cGU6ImZvb3Rub3RlX3JlZiIsaWQ6dSxzdWJJZDpfLGxldmVsOnMubGV2ZWx9KSkscy5wb3M9YSxzLnBvc01heD13LCEwKSkpfV0sWyJhdXRvbGluayIsZnVuY3Rpb24gYXV0b2xpbmsocyxvKXt2YXIgaSxhLHUsXyx3LHg9cy5wb3M7cmV0dXJuIDYwPT09cy5zcmMuY2hhckNvZGVBdCh4KSYmKCEoKGk9cy5zcmMuc2xpY2UoeCkpLmluZGV4T2YoIj4iKTwwKSYmKChhPWkubWF0Y2goTEMpKT8hKFJDLmluZGV4T2YoYVsxXS50b0xvd2VyQ2FzZSgpKTwwKSYmKHc9bm9ybWFsaXplTGluayhfPWFbMF0uc2xpY2UoMSwtMSkpLCEhcy5wYXJzZXIudmFsaWRhdGVMaW5rKF8pJiYob3x8KHMucHVzaCh7dHlwZToibGlua19vcGVuIixocmVmOncsbGV2ZWw6cy5sZXZlbH0pLHMucHVzaCh7dHlwZToidGV4dCIsY29udGVudDpfLGxldmVsOnMubGV2ZWwrMX0pLHMucHVzaCh7dHlwZToibGlua19jbG9zZSIsbGV2ZWw6cy5sZXZlbH0pKSxzLnBvcys9YVswXS5sZW5ndGgsITApKTohISh1PWkubWF0Y2goREMpKSYmKHc9bm9ybWFsaXplTGluaygibWFpbHRvOiIrKF89dVswXS5zbGljZSgxLC0xKSkpLCEhcy5wYXJzZXIudmFsaWRhdGVMaW5rKHcpJiYob3x8KHMucHVzaCh7dHlwZToibGlua19vcGVuIixocmVmOncsbGV2ZWw6cy5sZXZlbH0pLHMucHVzaCh7dHlwZToidGV4dCIsY29udGVudDpfLGxldmVsOnMubGV2ZWwrMX0pLHMucHVzaCh7dHlwZToibGlua19jbG9zZSIsbGV2ZWw6cy5sZXZlbH0pKSxzLnBvcys9dVswXS5sZW5ndGgsITApKSkpfV0sWyJodG1sdGFnIixmdW5jdGlvbiBodG1sdGFnKHMsbyl7dmFyIGksYSx1LF89cy5wb3M7cmV0dXJuISFzLm9wdGlvbnMuaHRtbCYmKHU9cy5wb3NNYXgsISg2MCE9PXMuc3JjLmNoYXJDb2RlQXQoXyl8fF8rMj49dSkmJighKDMzIT09KGk9cy5zcmMuY2hhckNvZGVBdChfKzEpKSYmNjMhPT1pJiY0NyE9PWkmJiFmdW5jdGlvbiBpc0xldHRlciQyKHMpe3ZhciBvPTMyfHM7cmV0dXJuIG8+PTk3JiZvPD0xMjJ9KGkpKSYmKCEhKGE9cy5zcmMuc2xpY2UoXykubWF0Y2gocUMpKSYmKG98fHMucHVzaCh7dHlwZToiaHRtbHRhZyIsY29udGVudDpzLnNyYy5zbGljZShfLF8rYVswXS5sZW5ndGgpLGxldmVsOnMubGV2ZWx9KSxzLnBvcys9YVswXS5sZW5ndGgsITApKSkpfV0sWyJlbnRpdHkiLGZ1bmN0aW9uIGVudGl0eShzLG8pe3ZhciBpLGEsdT1zLnBvcyxfPXMucG9zTWF4O2lmKDM4IT09cy5zcmMuY2hhckNvZGVBdCh1KSlyZXR1cm4hMTtpZih1KzE8XylpZigzNT09PXMuc3JjLmNoYXJDb2RlQXQodSsxKSl7aWYoYT1zLnNyYy5zbGljZSh1KS5tYXRjaChWQykpcmV0dXJuIG98fChpPSJ4Ij09PWFbMV1bMF0udG9Mb3dlckNhc2UoKT9wYXJzZUludChhWzFdLnNsaWNlKDEpLDE2KTpwYXJzZUludChhWzFdLDEwKSxzLnBlbmRpbmcrPWlzVmFsaWRFbnRpdHlDb2RlKGkpP2Zyb21Db2RlUG9pbnQoaSk6ZnJvbUNvZGVQb2ludCg2NTUzMykpLHMucG9zKz1hWzBdLmxlbmd0aCwhMH1lbHNlIGlmKGE9cy5zcmMuc2xpY2UodSkubWF0Y2goVUMpKXt2YXIgdz1kZWNvZGVFbnRpdHkoYVsxXSk7aWYoYVsxXSE9PXcpcmV0dXJuIG98fChzLnBlbmRpbmcrPXcpLHMucG9zKz1hWzBdLmxlbmd0aCwhMH1yZXR1cm4gb3x8KHMucGVuZGluZys9IiYiKSxzLnBvcysrLCEwfV1dO2Z1bmN0aW9uIFBhcnNlcklubGluZSgpe3RoaXMucnVsZXI9bmV3IFJ1bGVyO2Zvcih2YXIgcz0wO3M8ekMubGVuZ3RoO3MrKyl0aGlzLnJ1bGVyLnB1c2goekNbc11bMF0sekNbc11bMV0pO3RoaXMudmFsaWRhdGVMaW5rPXZhbGlkYXRlTGlua31mdW5jdGlvbiB2YWxpZGF0ZUxpbmsocyl7dmFyIG89cy50cmltKCkudG9Mb3dlckNhc2UoKTtyZXR1cm4tMT09PShvPXJlcGxhY2VFbnRpdGllcyhvKSkuaW5kZXhPZigiOiIpfHwtMT09PVsidmJzY3JpcHQiLCJqYXZhc2NyaXB0IiwiZmlsZSIsImRhdGEiXS5pbmRleE9mKG8uc3BsaXQoIjoiKVswXSl9UGFyc2VySW5saW5lLnByb3RvdHlwZS5za2lwVG9rZW49ZnVuY3Rpb24ocyl7dmFyIG8saSxhPXRoaXMucnVsZXIuZ2V0UnVsZXMoIiIpLHU9YS5sZW5ndGgsXz1zLnBvcztpZigoaT1zLmNhY2hlR2V0KF8pKT4wKXMucG9zPWk7ZWxzZXtmb3Iobz0wO288dTtvKyspaWYoYVtvXShzLCEwKSlyZXR1cm4gdm9pZCBzLmNhY2hlU2V0KF8scy5wb3MpO3MucG9zKysscy5jYWNoZVNldChfLHMucG9zKX19LFBhcnNlcklubGluZS5wcm90b3R5cGUudG9rZW5pemU9ZnVuY3Rpb24ocyl7Zm9yKHZhciBvLGksYT10aGlzLnJ1bGVyLmdldFJ1bGVzKCIiKSx1PWEubGVuZ3RoLF89cy5wb3NNYXg7cy5wb3M8Xzspe2ZvcihpPTA7aTx1JiYhKG89YVtpXShzLCExKSk7aSsrKTtpZihvKXtpZihzLnBvcz49XylicmVha31lbHNlIHMucGVuZGluZys9cy5zcmNbcy5wb3MrK119cy5wZW5kaW5nJiZzLnB1c2hQZW5kaW5nKCl9LFBhcnNlcklubGluZS5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24ocyxvLGksYSl7dmFyIHU9bmV3IFN0YXRlSW5saW5lKHMsdGhpcyxvLGksYSk7dGhpcy50b2tlbml6ZSh1KX07dmFyIFdDPXtkZWZhdWx0OntvcHRpb25zOntodG1sOiExLHhodG1sT3V0OiExLGJyZWFrczohMSxsYW5nUHJlZml4OiJsYW5ndWFnZS0iLGxpbmtUYXJnZXQ6IiIsdHlwb2dyYXBoZXI6ITEscXVvdGVzOiLigJzigJ3igJjigJkiLGhpZ2hsaWdodDpudWxsLG1heE5lc3Rpbmc6MjB9LGNvbXBvbmVudHM6e2NvcmU6e3J1bGVzOlsiYmxvY2siLCJpbmxpbmUiLCJyZWZlcmVuY2VzIiwicmVwbGFjZW1lbnRzIiwic21hcnRxdW90ZXMiLCJyZWZlcmVuY2VzIiwiYWJicjIiLCJmb290bm90ZV90YWlsIl19LGJsb2NrOntydWxlczpbImJsb2NrcXVvdGUiLCJjb2RlIiwiZmVuY2VzIiwiZm9vdG5vdGUiLCJoZWFkaW5nIiwiaHIiLCJodG1sYmxvY2siLCJsaGVhZGluZyIsImxpc3QiLCJwYXJhZ3JhcGgiLCJ0YWJsZSJdfSxpbmxpbmU6e3J1bGVzOlsiYXV0b2xpbmsiLCJiYWNrdGlja3MiLCJkZWwiLCJlbXBoYXNpcyIsImVudGl0eSIsImVzY2FwZSIsImZvb3Rub3RlX3JlZiIsImh0bWx0YWciLCJsaW5rcyIsIm5ld2xpbmUiLCJ0ZXh0Il19fX0sZnVsbDp7b3B0aW9uczp7aHRtbDohMSx4aHRtbE91dDohMSxicmVha3M6ITEsbGFuZ1ByZWZpeDoibGFuZ3VhZ2UtIixsaW5rVGFyZ2V0OiIiLHR5cG9ncmFwaGVyOiExLHF1b3Rlczoi4oCc4oCd4oCY4oCZIixoaWdobGlnaHQ6bnVsbCxtYXhOZXN0aW5nOjIwfSxjb21wb25lbnRzOntjb3JlOnt9LGJsb2NrOnt9LGlubGluZTp7fX19LGNvbW1vbm1hcms6e29wdGlvbnM6e2h0bWw6ITAseGh0bWxPdXQ6ITAsYnJlYWtzOiExLGxhbmdQcmVmaXg6Imxhbmd1YWdlLSIsbGlua1RhcmdldDoiIix0eXBvZ3JhcGhlcjohMSxxdW90ZXM6IuKAnOKAneKAmOKAmSIsaGlnaGxpZ2h0Om51bGwsbWF4TmVzdGluZzoyMH0sY29tcG9uZW50czp7Y29yZTp7cnVsZXM6WyJibG9jayIsImlubGluZSIsInJlZmVyZW5jZXMiLCJhYmJyMiJdfSxibG9jazp7cnVsZXM6WyJibG9ja3F1b3RlIiwiY29kZSIsImZlbmNlcyIsImhlYWRpbmciLCJociIsImh0bWxibG9jayIsImxoZWFkaW5nIiwibGlzdCIsInBhcmFncmFwaCJdfSxpbmxpbmU6e3J1bGVzOlsiYXV0b2xpbmsiLCJiYWNrdGlja3MiLCJlbXBoYXNpcyIsImVudGl0eSIsImVzY2FwZSIsImh0bWx0YWciLCJsaW5rcyIsIm5ld2xpbmUiLCJ0ZXh0Il19fX19O2Z1bmN0aW9uIFN0YXRlQ29yZShzLG8saSl7dGhpcy5zcmM9byx0aGlzLmVudj1pLHRoaXMub3B0aW9ucz1zLm9wdGlvbnMsdGhpcy50b2tlbnM9W10sdGhpcy5pbmxpbmVNb2RlPSExLHRoaXMuaW5saW5lPXMuaW5saW5lLHRoaXMuYmxvY2s9cy5ibG9jayx0aGlzLnJlbmRlcmVyPXMucmVuZGVyZXIsdGhpcy50eXBvZ3JhcGhlcj1zLnR5cG9ncmFwaGVyfWZ1bmN0aW9uIFJlbWFya2FibGUocyxvKXsic3RyaW5nIiE9dHlwZW9mIHMmJihvPXMscz0iZGVmYXVsdCIpLG8mJm51bGwhPW8ubGlua2lmeSYmY29uc29sZS53YXJuKCJsaW5raWZ5IG9wdGlvbiBpcyByZW1vdmVkLiBVc2UgbGlua2lmeSBwbHVnaW4gaW5zdGVhZDpcblxuaW1wb3J0IFJlbWFya2FibGUgZnJvbSAncmVtYXJrYWJsZSc7XG5pbXBvcnQgbGlua2lmeSBmcm9tICdyZW1hcmthYmxlL2xpbmtpZnknO1xubmV3IFJlbWFya2FibGUoKS51c2UobGlua2lmeSlcbiIpLHRoaXMuaW5saW5lPW5ldyBQYXJzZXJJbmxpbmUsdGhpcy5ibG9jaz1uZXcgUGFyc2VyQmxvY2ssdGhpcy5jb3JlPW5ldyBDb3JlLHRoaXMucmVuZGVyZXI9bmV3IFJlbmRlcmVyLHRoaXMucnVsZXI9bmV3IFJ1bGVyLHRoaXMub3B0aW9ucz17fSx0aGlzLmNvbmZpZ3VyZShXQ1tzXSksdGhpcy5zZXQob3x8e30pfVJlbWFya2FibGUucHJvdG90eXBlLnNldD1mdW5jdGlvbihzKXtpbmRleF9icm93c2VyX2Fzc2lnbih0aGlzLm9wdGlvbnMscyl9LFJlbWFya2FibGUucHJvdG90eXBlLmNvbmZpZ3VyZT1mdW5jdGlvbihzKXt2YXIgbz10aGlzO2lmKCFzKXRocm93IG5ldyBFcnJvcigiV3JvbmcgYHJlbWFya2FibGVgIHByZXNldCwgY2hlY2sgbmFtZS9jb250ZW50Iik7cy5vcHRpb25zJiZvLnNldChzLm9wdGlvbnMpLHMuY29tcG9uZW50cyYmT2JqZWN0LmtleXMocy5jb21wb25lbnRzKS5mb3JFYWNoKChmdW5jdGlvbihpKXtzLmNvbXBvbmVudHNbaV0ucnVsZXMmJm9baV0ucnVsZXIuZW5hYmxlKHMuY29tcG9uZW50c1tpXS5ydWxlcywhMCl9KSl9LFJlbWFya2FibGUucHJvdG90eXBlLnVzZT1mdW5jdGlvbihzLG8pe3JldHVybiBzKHRoaXMsbyksdGhpc30sUmVtYXJrYWJsZS5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24ocyxvKXt2YXIgaT1uZXcgU3RhdGVDb3JlKHRoaXMscyxvKTtyZXR1cm4gdGhpcy5jb3JlLnByb2Nlc3MoaSksaS50b2tlbnN9LFJlbWFya2FibGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihzLG8pe3JldHVybiBvPW98fHt9LHRoaXMucmVuZGVyZXIucmVuZGVyKHRoaXMucGFyc2UocyxvKSx0aGlzLm9wdGlvbnMsbyl9LFJlbWFya2FibGUucHJvdG90eXBlLnBhcnNlSW5saW5lPWZ1bmN0aW9uKHMsbyl7dmFyIGk9bmV3IFN0YXRlQ29yZSh0aGlzLHMsbyk7cmV0dXJuIGkuaW5saW5lTW9kZT0hMCx0aGlzLmNvcmUucHJvY2VzcyhpKSxpLnRva2Vuc30sUmVtYXJrYWJsZS5wcm90b3R5cGUucmVuZGVySW5saW5lPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIG89b3x8e30sdGhpcy5yZW5kZXJlci5yZW5kZXIodGhpcy5wYXJzZUlubGluZShzLG8pLHRoaXMub3B0aW9ucyxvKX07ZnVuY3Rpb24gaW5kZXhPZihzLG8pe2lmKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKXJldHVybiBzLmluZGV4T2Yobyk7Zm9yKHZhciBpPTAsYT1zLmxlbmd0aDtpPGE7aSsrKWlmKHNbaV09PT1vKXJldHVybiBpO3JldHVybi0xfWZ1bmN0aW9uIHV0aWxzX3JlbW92ZShzLG8pe2Zvcih2YXIgaT1zLmxlbmd0aC0xO2k+PTA7aS0tKSEwPT09byhzW2ldKSYmcy5zcGxpY2UoaSwxKX1mdW5jdGlvbiB0aHJvd1VuaGFuZGxlZENhc2VFcnJvcihzKXt0aHJvdyBuZXcgRXJyb3IoIlVuaGFuZGxlZCBjYXNlIGZvciB2YWx1ZTogJyIuY29uY2F0KHMsIiciKSl9dmFyIEpDPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gSHRtbFRhZyhzKXt2b2lkIDA9PT1zJiYocz17fSksdGhpcy50YWdOYW1lPSIiLHRoaXMuYXR0cnM9e30sdGhpcy5pbm5lckhUTUw9IiIsdGhpcy53aGl0ZXNwYWNlUmVnZXg9L1xzKy8sdGhpcy50YWdOYW1lPXMudGFnTmFtZXx8IiIsdGhpcy5hdHRycz1zLmF0dHJzfHx7fSx0aGlzLmlubmVySFRNTD1zLmlubmVySHRtbHx8cy5pbm5lckhUTUx8fCIifXJldHVybiBIdG1sVGFnLnByb3RvdHlwZS5zZXRUYWdOYW1lPWZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLnRhZ05hbWU9cyx0aGlzfSxIdG1sVGFnLnByb3RvdHlwZS5nZXRUYWdOYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFnTmFtZXx8IiJ9LEh0bWxUYWcucHJvdG90eXBlLnNldEF0dHI9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gdGhpcy5nZXRBdHRycygpW3NdPW8sdGhpc30sSHRtbFRhZy5wcm90b3R5cGUuZ2V0QXR0cj1mdW5jdGlvbihzKXtyZXR1cm4gdGhpcy5nZXRBdHRycygpW3NdfSxIdG1sVGFnLnByb3RvdHlwZS5zZXRBdHRycz1mdW5jdGlvbihzKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih0aGlzLmdldEF0dHJzKCkscyksdGhpc30sSHRtbFRhZy5wcm90b3R5cGUuZ2V0QXR0cnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hdHRyc3x8KHRoaXMuYXR0cnM9e30pfSxIdG1sVGFnLnByb3RvdHlwZS5zZXRDbGFzcz1mdW5jdGlvbihzKXtyZXR1cm4gdGhpcy5zZXRBdHRyKCJjbGFzcyIscyl9LEh0bWxUYWcucHJvdG90eXBlLmFkZENsYXNzPWZ1bmN0aW9uKHMpe2Zvcih2YXIgbyxpPXRoaXMuZ2V0Q2xhc3MoKSxhPXRoaXMud2hpdGVzcGFjZVJlZ2V4LHU9aT9pLnNwbGl0KGEpOltdLF89cy5zcGxpdChhKTtvPV8uc2hpZnQoKTspLTE9PT1pbmRleE9mKHUsbykmJnUucHVzaChvKTtyZXR1cm4gdGhpcy5nZXRBdHRycygpLmNsYXNzPXUuam9pbigiICIpLHRoaXN9LEh0bWxUYWcucHJvdG90eXBlLnJlbW92ZUNsYXNzPWZ1bmN0aW9uKHMpe2Zvcih2YXIgbyxpPXRoaXMuZ2V0Q2xhc3MoKSxhPXRoaXMud2hpdGVzcGFjZVJlZ2V4LHU9aT9pLnNwbGl0KGEpOltdLF89cy5zcGxpdChhKTt1Lmxlbmd0aCYmKG89Xy5zaGlmdCgpKTspe3ZhciB3PWluZGV4T2YodSxvKTstMSE9PXcmJnUuc3BsaWNlKHcsMSl9cmV0dXJuIHRoaXMuZ2V0QXR0cnMoKS5jbGFzcz11LmpvaW4oIiAiKSx0aGlzfSxIdG1sVGFnLnByb3RvdHlwZS5nZXRDbGFzcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEF0dHJzKCkuY2xhc3N8fCIifSxIdG1sVGFnLnByb3RvdHlwZS5oYXNDbGFzcz1mdW5jdGlvbihzKXtyZXR1cm4tMSE9PSgiICIrdGhpcy5nZXRDbGFzcygpKyIgIikuaW5kZXhPZigiICIrcysiICIpfSxIdG1sVGFnLnByb3RvdHlwZS5zZXRJbm5lckhUTUw9ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMuaW5uZXJIVE1MPXMsdGhpc30sSHRtbFRhZy5wcm90b3R5cGUuc2V0SW5uZXJIdG1sPWZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLnNldElubmVySFRNTChzKX0sSHRtbFRhZy5wcm90b3R5cGUuZ2V0SW5uZXJIVE1MPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5uZXJIVE1MfHwiIn0sSHRtbFRhZy5wcm90b3R5cGUuZ2V0SW5uZXJIdG1sPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0SW5uZXJIVE1MKCl9LEh0bWxUYWcucHJvdG90eXBlLnRvQW5jaG9yU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIHM9dGhpcy5nZXRUYWdOYW1lKCksbz10aGlzLmJ1aWxkQXR0cnNTdHIoKTtyZXR1cm5bIjwiLHMsbz1vPyIgIitvOiIiLCI+Iix0aGlzLmdldElubmVySHRtbCgpLCI8LyIscywiPiJdLmpvaW4oIiIpfSxIdG1sVGFnLnByb3RvdHlwZS5idWlsZEF0dHJzU3RyPWZ1bmN0aW9uKCl7aWYoIXRoaXMuYXR0cnMpcmV0dXJuIiI7dmFyIHM9dGhpcy5nZXRBdHRycygpLG89W107Zm9yKHZhciBpIGluIHMpcy5oYXNPd25Qcm9wZXJ0eShpKSYmby5wdXNoKGkrJz0iJytzW2ldKyciJyk7cmV0dXJuIG8uam9pbigiICIpfSxIdG1sVGFnfSgpO3ZhciBIQz1mdW5jdGlvbigpe2Z1bmN0aW9uIEFuY2hvclRhZ0J1aWxkZXIocyl7dm9pZCAwPT09cyYmKHM9e30pLHRoaXMubmV3V2luZG93PSExLHRoaXMudHJ1bmNhdGU9e30sdGhpcy5jbGFzc05hbWU9IiIsdGhpcy5uZXdXaW5kb3c9cy5uZXdXaW5kb3d8fCExLHRoaXMudHJ1bmNhdGU9cy50cnVuY2F0ZXx8e30sdGhpcy5jbGFzc05hbWU9cy5jbGFzc05hbWV8fCIifXJldHVybiBBbmNob3JUYWdCdWlsZGVyLnByb3RvdHlwZS5idWlsZD1mdW5jdGlvbihzKXtyZXR1cm4gbmV3IEpDKHt0YWdOYW1lOiJhIixhdHRyczp0aGlzLmNyZWF0ZUF0dHJzKHMpLGlubmVySHRtbDp0aGlzLnByb2Nlc3NBbmNob3JUZXh0KHMuZ2V0QW5jaG9yVGV4dCgpKX0pfSxBbmNob3JUYWdCdWlsZGVyLnByb3RvdHlwZS5jcmVhdGVBdHRycz1mdW5jdGlvbihzKXt2YXIgbz17aHJlZjpzLmdldEFuY2hvckhyZWYoKX0saT10aGlzLmNyZWF0ZUNzc0NsYXNzKHMpO3JldHVybiBpJiYoby5jbGFzcz1pKSx0aGlzLm5ld1dpbmRvdyYmKG8udGFyZ2V0PSJfYmxhbmsiLG8ucmVsPSJub29wZW5lciBub3JlZmVycmVyIiksdGhpcy50cnVuY2F0ZSYmdGhpcy50cnVuY2F0ZS5sZW5ndGgmJnRoaXMudHJ1bmNhdGUubGVuZ3RoPHMuZ2V0QW5jaG9yVGV4dCgpLmxlbmd0aCYmKG8udGl0bGU9cy5nZXRBbmNob3JIcmVmKCkpLG99LEFuY2hvclRhZ0J1aWxkZXIucHJvdG90eXBlLmNyZWF0ZUNzc0NsYXNzPWZ1bmN0aW9uKHMpe3ZhciBvPXRoaXMuY2xhc3NOYW1lO2lmKG8pe2Zvcih2YXIgaT1bb10sYT1zLmdldENzc0NsYXNzU3VmZml4ZXMoKSx1PTAsXz1hLmxlbmd0aDt1PF87dSsrKWkucHVzaChvKyItIithW3VdKTtyZXR1cm4gaS5qb2luKCIgIil9cmV0dXJuIiJ9LEFuY2hvclRhZ0J1aWxkZXIucHJvdG90eXBlLnByb2Nlc3NBbmNob3JUZXh0PWZ1bmN0aW9uKHMpe3JldHVybiBzPXRoaXMuZG9UcnVuY2F0ZShzKX0sQW5jaG9yVGFnQnVpbGRlci5wcm90b3R5cGUuZG9UcnVuY2F0ZT1mdW5jdGlvbihzKXt2YXIgbz10aGlzLnRydW5jYXRlO2lmKCFvfHwhby5sZW5ndGgpcmV0dXJuIHM7dmFyIGk9by5sZW5ndGgsYT1vLmxvY2F0aW9uO3JldHVybiJzbWFydCI9PT1hP2Z1bmN0aW9uIHRydW5jYXRlU21hcnQocyxvLGkpe3ZhciBhLHU7bnVsbD09aT8oaT0iJmhlbGxpcDsiLHU9MyxhPTgpOih1PWkubGVuZ3RoLGE9aS5sZW5ndGgpO3ZhciBidWlsZFVybD1mdW5jdGlvbihzKXt2YXIgbz0iIjtyZXR1cm4gcy5zY2hlbWUmJnMuaG9zdCYmKG8rPXMuc2NoZW1lKyI6Ly8iKSxzLmhvc3QmJihvKz1zLmhvc3QpLHMucGF0aCYmKG8rPSIvIitzLnBhdGgpLHMucXVlcnkmJihvKz0iPyIrcy5xdWVyeSkscy5mcmFnbWVudCYmKG8rPSIjIitzLmZyYWdtZW50KSxvfSxidWlsZFNlZ21lbnQ9ZnVuY3Rpb24ocyxvKXt2YXIgYT1vLzIsdT1NYXRoLmNlaWwoYSksXz0tMSpNYXRoLmZsb29yKGEpLHc9IiI7cmV0dXJuIF88MCYmKHc9cy5zdWJzdHIoXykpLHMuc3Vic3RyKDAsdSkraSt3fTtpZihzLmxlbmd0aDw9bylyZXR1cm4gczt2YXIgXz1vLXUsdz1mdW5jdGlvbihzKXt2YXIgbz17fSxpPXMsYT1pLm1hdGNoKC9eKFthLXpdKyk6XC9cLy9pKTtyZXR1cm4gYSYmKG8uc2NoZW1lPWFbMV0saT1pLnN1YnN0cihhWzBdLmxlbmd0aCkpLChhPWkubWF0Y2goL14oLio/KSg/PShcP3wjfFwvfCQpKS9pKSkmJihvLmhvc3Q9YVsxXSxpPWkuc3Vic3RyKGFbMF0ubGVuZ3RoKSksKGE9aS5tYXRjaCgvXlwvKC4qPykoPz0oXD98I3wkKSkvaSkpJiYoby5wYXRoPWFbMV0saT1pLnN1YnN0cihhWzBdLmxlbmd0aCkpLChhPWkubWF0Y2goL15cPyguKj8pKD89KCN8JCkpL2kpKSYmKG8ucXVlcnk9YVsxXSxpPWkuc3Vic3RyKGFbMF0ubGVuZ3RoKSksKGE9aS5tYXRjaCgvXiMoLio/KSQvaSkpJiYoby5mcmFnbWVudD1hWzFdKSxvfShzKTtpZih3LnF1ZXJ5KXt2YXIgeD13LnF1ZXJ5Lm1hdGNoKC9eKC4qPykoPz0oXD98XCMpKSguKj8pJC9pKTt4JiYody5xdWVyeT13LnF1ZXJ5LnN1YnN0cigwLHhbMV0ubGVuZ3RoKSxzPWJ1aWxkVXJsKHcpKX1pZihzLmxlbmd0aDw9bylyZXR1cm4gcztpZih3Lmhvc3QmJih3Lmhvc3Q9dy5ob3N0LnJlcGxhY2UoL153d3dcLi8sIiIpLHM9YnVpbGRVcmwodykpLHMubGVuZ3RoPD1vKXJldHVybiBzO3ZhciBDPSIiO2lmKHcuaG9zdCYmKEMrPXcuaG9zdCksQy5sZW5ndGg+PV8pcmV0dXJuIHcuaG9zdC5sZW5ndGg9PW8/KHcuaG9zdC5zdWJzdHIoMCxvLXUpK2kpLnN1YnN0cigwLF8rYSk6YnVpbGRTZWdtZW50KEMsXykuc3Vic3RyKDAsXythKTt2YXIgaj0iIjtpZih3LnBhdGgmJihqKz0iLyIrdy5wYXRoKSx3LnF1ZXJ5JiYoais9Ij8iK3cucXVlcnkpLGope2lmKChDK2opLmxlbmd0aD49XylyZXR1cm4oQytqKS5sZW5ndGg9PW8/KEMraikuc3Vic3RyKDAsbyk6KEMrYnVpbGRTZWdtZW50KGosXy1DLmxlbmd0aCkpLnN1YnN0cigwLF8rYSk7Qys9an1pZih3LmZyYWdtZW50KXt2YXIgTD0iIyIrdy5mcmFnbWVudDtpZigoQytMKS5sZW5ndGg+PV8pcmV0dXJuKEMrTCkubGVuZ3RoPT1vPyhDK0wpLnN1YnN0cigwLG8pOihDK2J1aWxkU2VnbWVudChMLF8tQy5sZW5ndGgpKS5zdWJzdHIoMCxfK2EpO0MrPUx9aWYody5zY2hlbWUmJncuaG9zdCl7dmFyIEI9dy5zY2hlbWUrIjovLyI7aWYoKEMrQikubGVuZ3RoPF8pcmV0dXJuKEIrQykuc3Vic3RyKDAsbyl9aWYoQy5sZW5ndGg8PW8pcmV0dXJuIEM7dmFyICQ9IiI7cmV0dXJuIF8+MCYmKCQ9Qy5zdWJzdHIoLTEqTWF0aC5mbG9vcihfLzIpKSksKEMuc3Vic3RyKDAsTWF0aC5jZWlsKF8vMikpK2krJCkuc3Vic3RyKDAsXythKX0ocyxpKToibWlkZGxlIj09PWE/ZnVuY3Rpb24gdHJ1bmNhdGVNaWRkbGUocyxvLGkpe2lmKHMubGVuZ3RoPD1vKXJldHVybiBzO3ZhciBhLHU7bnVsbD09aT8oaT0iJmhlbGxpcDsiLGE9OCx1PTMpOihhPWkubGVuZ3RoLHU9aS5sZW5ndGgpO3ZhciBfPW8tdSx3PSIiO3JldHVybiBfPjAmJih3PXMuc3Vic3RyKC0xKk1hdGguZmxvb3IoXy8yKSkpLChzLnN1YnN0cigwLE1hdGguY2VpbChfLzIpKStpK3cpLnN1YnN0cigwLF8rYSl9KHMsaSk6ZnVuY3Rpb24gdHJ1bmNhdGVFbmQocyxvLGkpe3JldHVybiBmdW5jdGlvbiBlbGxpcHNpcyhzLG8saSl7dmFyIGE7cmV0dXJuIHMubGVuZ3RoPm8mJihudWxsPT1pPyhpPSImaGVsbGlwOyIsYT0zKTphPWkubGVuZ3RoLHM9cy5zdWJzdHJpbmcoMCxvLWEpK2kpLHN9KHMsbyxpKX0ocyxpKX0sQW5jaG9yVGFnQnVpbGRlcn0oKSxLQz1mdW5jdGlvbigpe2Z1bmN0aW9uIE1hdGNoKHMpe3RoaXMuX19qc2R1Y2tEdW1teURvY1Byb3A9bnVsbCx0aGlzLm1hdGNoZWRUZXh0PSIiLHRoaXMub2Zmc2V0PTAsdGhpcy50YWdCdWlsZGVyPXMudGFnQnVpbGRlcix0aGlzLm1hdGNoZWRUZXh0PXMubWF0Y2hlZFRleHQsdGhpcy5vZmZzZXQ9cy5vZmZzZXR9cmV0dXJuIE1hdGNoLnByb3RvdHlwZS5nZXRNYXRjaGVkVGV4dD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm1hdGNoZWRUZXh0fSxNYXRjaC5wcm90b3R5cGUuc2V0T2Zmc2V0PWZ1bmN0aW9uKHMpe3RoaXMub2Zmc2V0PXN9LE1hdGNoLnByb3RvdHlwZS5nZXRPZmZzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vZmZzZXR9LE1hdGNoLnByb3RvdHlwZS5nZXRDc3NDbGFzc1N1ZmZpeGVzPWZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMuZ2V0VHlwZSgpXX0sTWF0Y2gucHJvdG90eXBlLmJ1aWxkVGFnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFnQnVpbGRlci5idWlsZCh0aGlzKX0sTWF0Y2h9KCksZXh0ZW5kU3RhdGljcz1mdW5jdGlvbihzLG8pe3JldHVybiBleHRlbmRTdGF0aWNzPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihzLG8pe3MuX19wcm90b19fPW99fHxmdW5jdGlvbihzLG8pe2Zvcih2YXIgaSBpbiBvKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLGkpJiYoc1tpXT1vW2ldKX0sZXh0ZW5kU3RhdGljcyhzLG8pfTtmdW5jdGlvbiB0c2xpYl9lczZfZXh0ZW5kcyhzLG8pe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBvJiZudWxsIT09byl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKG8pKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIF9fKCl7dGhpcy5jb25zdHJ1Y3Rvcj1zfWV4dGVuZFN0YXRpY3MocyxvKSxzLnByb3RvdHlwZT1udWxsPT09bz9PYmplY3QuY3JlYXRlKG8pOihfXy5wcm90b3R5cGU9by5wcm90b3R5cGUsbmV3IF9fKX12YXIgX19hc3NpZ249ZnVuY3Rpb24oKXtyZXR1cm4gX19hc3NpZ249T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24gX19hc3NpZ24ocyl7Zm9yKHZhciBvLGk9MSxhPWFyZ3VtZW50cy5sZW5ndGg7aTxhO2krKylmb3IodmFyIHUgaW4gbz1hcmd1bWVudHNbaV0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sdSkmJihzW3VdPW9bdV0pO3JldHVybiBzfSxfX2Fzc2lnbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O09iamVjdC5jcmVhdGU7T2JqZWN0LmNyZWF0ZTsiZnVuY3Rpb24iPT10eXBlb2YgU3VwcHJlc3NlZEVycm9yJiZTdXBwcmVzc2VkRXJyb3I7dmFyIEdDLFlDPWZ1bmN0aW9uKHMpe2Z1bmN0aW9uIEVtYWlsTWF0Y2gobyl7dmFyIGk9cy5jYWxsKHRoaXMsbyl8fHRoaXM7cmV0dXJuIGkuZW1haWw9IiIsaS5lbWFpbD1vLmVtYWlsLGl9cmV0dXJuIHRzbGliX2VzNl9leHRlbmRzKEVtYWlsTWF0Y2gscyksRW1haWxNYXRjaC5wcm90b3R5cGUuZ2V0VHlwZT1mdW5jdGlvbigpe3JldHVybiJlbWFpbCJ9LEVtYWlsTWF0Y2gucHJvdG90eXBlLmdldEVtYWlsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW1haWx9LEVtYWlsTWF0Y2gucHJvdG90eXBlLmdldEFuY2hvckhyZWY9ZnVuY3Rpb24oKXtyZXR1cm4ibWFpbHRvOiIrdGhpcy5lbWFpbH0sRW1haWxNYXRjaC5wcm90b3R5cGUuZ2V0QW5jaG9yVGV4dD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVtYWlsfSxFbWFpbE1hdGNofShLQyksWEM9ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gSGFzaHRhZ01hdGNoKG8pe3ZhciBpPXMuY2FsbCh0aGlzLG8pfHx0aGlzO3JldHVybiBpLnNlcnZpY2VOYW1lPSIiLGkuaGFzaHRhZz0iIixpLnNlcnZpY2VOYW1lPW8uc2VydmljZU5hbWUsaS5oYXNodGFnPW8uaGFzaHRhZyxpfXJldHVybiB0c2xpYl9lczZfZXh0ZW5kcyhIYXNodGFnTWF0Y2gscyksSGFzaHRhZ01hdGNoLnByb3RvdHlwZS5nZXRUeXBlPWZ1bmN0aW9uKCl7cmV0dXJuImhhc2h0YWcifSxIYXNodGFnTWF0Y2gucHJvdG90eXBlLmdldFNlcnZpY2VOYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VydmljZU5hbWV9LEhhc2h0YWdNYXRjaC5wcm90b3R5cGUuZ2V0SGFzaHRhZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmhhc2h0YWd9LEhhc2h0YWdNYXRjaC5wcm90b3R5cGUuZ2V0QW5jaG9ySHJlZj1mdW5jdGlvbigpe3ZhciBzPXRoaXMuc2VydmljZU5hbWUsbz10aGlzLmhhc2h0YWc7c3dpdGNoKHMpe2Nhc2UidHdpdHRlciI6cmV0dXJuImh0dHBzOi8vdHdpdHRlci5jb20vaGFzaHRhZy8iK287Y2FzZSJmYWNlYm9vayI6cmV0dXJuImh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9oYXNodGFnLyIrbztjYXNlImluc3RhZ3JhbSI6cmV0dXJuImh0dHBzOi8vaW5zdGFncmFtLmNvbS9leHBsb3JlL3RhZ3MvIitvO2Nhc2UidGlrdG9rIjpyZXR1cm4iaHR0cHM6Ly93d3cudGlrdG9rLmNvbS90YWcvIitvO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHNlcnZpY2UgbmFtZSB0byBwb2ludCBoYXNodGFnIHRvOiAiK3MpfX0sSGFzaHRhZ01hdGNoLnByb3RvdHlwZS5nZXRBbmNob3JUZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIiMiK3RoaXMuaGFzaHRhZ30sSGFzaHRhZ01hdGNofShLQyksUUM9ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gTWVudGlvbk1hdGNoKG8pe3ZhciBpPXMuY2FsbCh0aGlzLG8pfHx0aGlzO3JldHVybiBpLnNlcnZpY2VOYW1lPSJ0d2l0dGVyIixpLm1lbnRpb249IiIsaS5tZW50aW9uPW8ubWVudGlvbixpLnNlcnZpY2VOYW1lPW8uc2VydmljZU5hbWUsaX1yZXR1cm4gdHNsaWJfZXM2X2V4dGVuZHMoTWVudGlvbk1hdGNoLHMpLE1lbnRpb25NYXRjaC5wcm90b3R5cGUuZ2V0VHlwZT1mdW5jdGlvbigpe3JldHVybiJtZW50aW9uIn0sTWVudGlvbk1hdGNoLnByb3RvdHlwZS5nZXRNZW50aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWVudGlvbn0sTWVudGlvbk1hdGNoLnByb3RvdHlwZS5nZXRTZXJ2aWNlTmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNlcnZpY2VOYW1lfSxNZW50aW9uTWF0Y2gucHJvdG90eXBlLmdldEFuY2hvckhyZWY9ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5zZXJ2aWNlTmFtZSl7Y2FzZSJ0d2l0dGVyIjpyZXR1cm4iaHR0cHM6Ly90d2l0dGVyLmNvbS8iK3RoaXMubWVudGlvbjtjYXNlImluc3RhZ3JhbSI6cmV0dXJuImh0dHBzOi8vaW5zdGFncmFtLmNvbS8iK3RoaXMubWVudGlvbjtjYXNlInNvdW5kY2xvdWQiOnJldHVybiJodHRwczovL3NvdW5kY2xvdWQuY29tLyIrdGhpcy5tZW50aW9uO2Nhc2UidGlrdG9rIjpyZXR1cm4iaHR0cHM6Ly93d3cudGlrdG9rLmNvbS9AIit0aGlzLm1lbnRpb247ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gc2VydmljZSBuYW1lIHRvIHBvaW50IG1lbnRpb24gdG86ICIrdGhpcy5zZXJ2aWNlTmFtZSl9fSxNZW50aW9uTWF0Y2gucHJvdG90eXBlLmdldEFuY2hvclRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4iQCIrdGhpcy5tZW50aW9ufSxNZW50aW9uTWF0Y2gucHJvdG90eXBlLmdldENzc0NsYXNzU3VmZml4ZXM9ZnVuY3Rpb24oKXt2YXIgbz1zLnByb3RvdHlwZS5nZXRDc3NDbGFzc1N1ZmZpeGVzLmNhbGwodGhpcyksaT10aGlzLmdldFNlcnZpY2VOYW1lKCk7cmV0dXJuIGkmJm8ucHVzaChpKSxvfSxNZW50aW9uTWF0Y2h9KEtDKSxaQz1mdW5jdGlvbihzKXtmdW5jdGlvbiBQaG9uZU1hdGNoKG8pe3ZhciBpPXMuY2FsbCh0aGlzLG8pfHx0aGlzO3JldHVybiBpLm51bWJlcj0iIixpLnBsdXNTaWduPSExLGkubnVtYmVyPW8ubnVtYmVyLGkucGx1c1NpZ249by5wbHVzU2lnbixpfXJldHVybiB0c2xpYl9lczZfZXh0ZW5kcyhQaG9uZU1hdGNoLHMpLFBob25lTWF0Y2gucHJvdG90eXBlLmdldFR5cGU9ZnVuY3Rpb24oKXtyZXR1cm4icGhvbmUifSxQaG9uZU1hdGNoLnByb3RvdHlwZS5nZXRQaG9uZU51bWJlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm51bWJlcn0sUGhvbmVNYXRjaC5wcm90b3R5cGUuZ2V0TnVtYmVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0UGhvbmVOdW1iZXIoKX0sUGhvbmVNYXRjaC5wcm90b3R5cGUuZ2V0QW5jaG9ySHJlZj1mdW5jdGlvbigpe3JldHVybiJ0ZWw6IisodGhpcy5wbHVzU2lnbj8iKyI6IiIpK3RoaXMubnVtYmVyfSxQaG9uZU1hdGNoLnByb3RvdHlwZS5nZXRBbmNob3JUZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF0Y2hlZFRleHR9LFBob25lTWF0Y2h9KEtDKSxlQT1mdW5jdGlvbihzKXtmdW5jdGlvbiBVcmxNYXRjaChvKXt2YXIgaT1zLmNhbGwodGhpcyxvKXx8dGhpcztyZXR1cm4gaS51cmw9IiIsaS51cmxNYXRjaFR5cGU9InNjaGVtZSIsaS5wcm90b2NvbFVybE1hdGNoPSExLGkucHJvdG9jb2xSZWxhdGl2ZU1hdGNoPSExLGkuc3RyaXBQcmVmaXg9e3NjaGVtZTohMCx3d3c6ITB9LGkuc3RyaXBUcmFpbGluZ1NsYXNoPSEwLGkuZGVjb2RlUGVyY2VudEVuY29kaW5nPSEwLGkuc2NoZW1lUHJlZml4UmVnZXg9L14oaHR0cHM/OlwvXC8pPy9pLGkud3d3UHJlZml4UmVnZXg9L14oaHR0cHM/OlwvXC8pPyh3d3dcLik/L2ksaS5wcm90b2NvbFJlbGF0aXZlUmVnZXg9L15cL1wvLyxpLnByb3RvY29sUHJlcGVuZGVkPSExLGkudXJsTWF0Y2hUeXBlPW8udXJsTWF0Y2hUeXBlLGkudXJsPW8udXJsLGkucHJvdG9jb2xVcmxNYXRjaD1vLnByb3RvY29sVXJsTWF0Y2gsaS5wcm90b2NvbFJlbGF0aXZlTWF0Y2g9by5wcm90b2NvbFJlbGF0aXZlTWF0Y2gsaS5zdHJpcFByZWZpeD1vLnN0cmlwUHJlZml4LGkuc3RyaXBUcmFpbGluZ1NsYXNoPW8uc3RyaXBUcmFpbGluZ1NsYXNoLGkuZGVjb2RlUGVyY2VudEVuY29kaW5nPW8uZGVjb2RlUGVyY2VudEVuY29kaW5nLGl9cmV0dXJuIHRzbGliX2VzNl9leHRlbmRzKFVybE1hdGNoLHMpLFVybE1hdGNoLnByb3RvdHlwZS5nZXRUeXBlPWZ1bmN0aW9uKCl7cmV0dXJuInVybCJ9LFVybE1hdGNoLnByb3RvdHlwZS5nZXRVcmxNYXRjaFR5cGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51cmxNYXRjaFR5cGV9LFVybE1hdGNoLnByb3RvdHlwZS5nZXRVcmw9ZnVuY3Rpb24oKXt2YXIgcz10aGlzLnVybDtyZXR1cm4gdGhpcy5wcm90b2NvbFJlbGF0aXZlTWF0Y2h8fHRoaXMucHJvdG9jb2xVcmxNYXRjaHx8dGhpcy5wcm90b2NvbFByZXBlbmRlZHx8KHM9dGhpcy51cmw9Imh0dHA6Ly8iK3MsdGhpcy5wcm90b2NvbFByZXBlbmRlZD0hMCksc30sVXJsTWF0Y2gucHJvdG90eXBlLmdldEFuY2hvckhyZWY9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRVcmwoKS5yZXBsYWNlKC8mYW1wOy9nLCImIil9LFVybE1hdGNoLnByb3RvdHlwZS5nZXRBbmNob3JUZXh0PWZ1bmN0aW9uKCl7dmFyIHM9dGhpcy5nZXRNYXRjaGVkVGV4dCgpO3JldHVybiB0aGlzLnByb3RvY29sUmVsYXRpdmVNYXRjaCYmKHM9dGhpcy5zdHJpcFByb3RvY29sUmVsYXRpdmVQcmVmaXgocykpLHRoaXMuc3RyaXBQcmVmaXguc2NoZW1lJiYocz10aGlzLnN0cmlwU2NoZW1lUHJlZml4KHMpKSx0aGlzLnN0cmlwUHJlZml4Lnd3dyYmKHM9dGhpcy5zdHJpcFd3d1ByZWZpeChzKSksdGhpcy5zdHJpcFRyYWlsaW5nU2xhc2gmJihzPXRoaXMucmVtb3ZlVHJhaWxpbmdTbGFzaChzKSksdGhpcy5kZWNvZGVQZXJjZW50RW5jb2RpbmcmJihzPXRoaXMucmVtb3ZlUGVyY2VudEVuY29kaW5nKHMpKSxzfSxVcmxNYXRjaC5wcm90b3R5cGUuc3RyaXBTY2hlbWVQcmVmaXg9ZnVuY3Rpb24ocyl7cmV0dXJuIHMucmVwbGFjZSh0aGlzLnNjaGVtZVByZWZpeFJlZ2V4LCIiKX0sVXJsTWF0Y2gucHJvdG90eXBlLnN0cmlwV3d3UHJlZml4PWZ1bmN0aW9uKHMpe3JldHVybiBzLnJlcGxhY2UodGhpcy53d3dQcmVmaXhSZWdleCwiJDEiKX0sVXJsTWF0Y2gucHJvdG90eXBlLnN0cmlwUHJvdG9jb2xSZWxhdGl2ZVByZWZpeD1mdW5jdGlvbihzKXtyZXR1cm4gcy5yZXBsYWNlKHRoaXMucHJvdG9jb2xSZWxhdGl2ZVJlZ2V4LCIiKX0sVXJsTWF0Y2gucHJvdG90eXBlLnJlbW92ZVRyYWlsaW5nU2xhc2g9ZnVuY3Rpb24ocyl7cmV0dXJuIi8iPT09cy5jaGFyQXQocy5sZW5ndGgtMSkmJihzPXMuc2xpY2UoMCwtMSkpLHN9LFVybE1hdGNoLnByb3RvdHlwZS5yZW1vdmVQZXJjZW50RW5jb2Rpbmc9ZnVuY3Rpb24ocyl7dmFyIG89cy5yZXBsYWNlKC8lMjIvZ2ksIiZxdW90OyIpLnJlcGxhY2UoLyUyNi9naSwiJmFtcDsiKS5yZXBsYWNlKC8lMjcvZ2ksIiYjMzk7IikucmVwbGFjZSgvJTNDL2dpLCImbHQ7IikucmVwbGFjZSgvJTNFL2dpLCImZ3Q7Iik7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQobyl9Y2F0Y2gocyl7cmV0dXJuIG99fSxVcmxNYXRjaH0oS0MpLHRBPWZ1bmN0aW9uIHRBKHMpe3RoaXMuX19qc2R1Y2tEdW1teURvY1Byb3A9bnVsbCx0aGlzLnRhZ0J1aWxkZXI9cy50YWdCdWlsZGVyfSxyQT0vW0EtWmEtel0vLG5BPS9bXGRdLyxzQT0vW1xEXS8sb0E9L1xzLyxpQT0vWyciXS8sYUE9L1tceDAwLVx4MUZceDdGXS8sY0E9L0EtWmEtelx4QUFceEI1XHhCQVx4QzAtXHhENlx4RDgtXHhGNlx4RjgtXHUwMkMxXHUwMkM2LVx1MDJEMVx1MDJFMC1cdTAyRTRcdTAyRUNcdTAyRUVcdTAzNzAtXHUwMzc0XHUwMzc2XHUwMzc3XHUwMzdBLVx1MDM3RFx1MDM3Rlx1MDM4Nlx1MDM4OC1cdTAzOEFcdTAzOENcdTAzOEUtXHUwM0ExXHUwM0EzLVx1MDNGNVx1MDNGNy1cdTA0ODFcdTA0OEEtXHUwNTJGXHUwNTMxLVx1MDU1Nlx1MDU1OVx1MDU2MS1cdTA1ODdcdTA1RDAtXHUwNUVBXHUwNUYwLVx1MDVGMlx1MDYyMC1cdTA2NEFcdTA2NkVcdTA2NkZcdTA2NzEtXHUwNkQzXHUwNkQ1XHUwNkU1XHUwNkU2XHUwNkVFXHUwNkVGXHUwNkZBLVx1MDZGQ1x1MDZGRlx1MDcxMFx1MDcxMi1cdTA3MkZcdTA3NEQtXHUwN0E1XHUwN0IxXHUwN0NBLVx1MDdFQVx1MDdGNFx1MDdGNVx1MDdGQVx1MDgwMC1cdTA4MTVcdTA4MUFcdTA4MjRcdTA4MjhcdTA4NDAtXHUwODU4XHUwOEEwLVx1MDhCNFx1MDhCNi1cdTA4QkRcdTA5MDQtXHUwOTM5XHUwOTNEXHUwOTUwXHUwOTU4LVx1MDk2MVx1MDk3MS1cdTA5ODBcdTA5ODUtXHUwOThDXHUwOThGXHUwOTkwXHUwOTkzLVx1MDlBOFx1MDlBQS1cdTA5QjBcdTA5QjJcdTA5QjYtXHUwOUI5XHUwOUJEXHUwOUNFXHUwOURDXHUwOUREXHUwOURGLVx1MDlFMVx1MDlGMFx1MDlGMVx1MEEwNS1cdTBBMEFcdTBBMEZcdTBBMTBcdTBBMTMtXHUwQTI4XHUwQTJBLVx1MEEzMFx1MEEzMlx1MEEzM1x1MEEzNVx1MEEzNlx1MEEzOFx1MEEzOVx1MEE1OS1cdTBBNUNcdTBBNUVcdTBBNzItXHUwQTc0XHUwQTg1LVx1MEE4RFx1MEE4Ri1cdTBBOTFcdTBBOTMtXHUwQUE4XHUwQUFBLVx1MEFCMFx1MEFCMlx1MEFCM1x1MEFCNS1cdTBBQjlcdTBBQkRcdTBBRDBcdTBBRTBcdTBBRTFcdTBBRjlcdTBCMDUtXHUwQjBDXHUwQjBGXHUwQjEwXHUwQjEzLVx1MEIyOFx1MEIyQS1cdTBCMzBcdTBCMzJcdTBCMzNcdTBCMzUtXHUwQjM5XHUwQjNEXHUwQjVDXHUwQjVEXHUwQjVGLVx1MEI2MVx1MEI3MVx1MEI4M1x1MEI4NS1cdTBCOEFcdTBCOEUtXHUwQjkwXHUwQjkyLVx1MEI5NVx1MEI5OVx1MEI5QVx1MEI5Q1x1MEI5RVx1MEI5Rlx1MEJBM1x1MEJBNFx1MEJBOC1cdTBCQUFcdTBCQUUtXHUwQkI5XHUwQkQwXHUwQzA1LVx1MEMwQ1x1MEMwRS1cdTBDMTBcdTBDMTItXHUwQzI4XHUwQzJBLVx1MEMzOVx1MEMzRFx1MEM1OC1cdTBDNUFcdTBDNjBcdTBDNjFcdTBDODBcdTBDODUtXHUwQzhDXHUwQzhFLVx1MEM5MFx1MEM5Mi1cdTBDQThcdTBDQUEtXHUwQ0IzXHUwQ0I1LVx1MENCOVx1MENCRFx1MENERVx1MENFMFx1MENFMVx1MENGMVx1MENGMlx1MEQwNS1cdTBEMENcdTBEMEUtXHUwRDEwXHUwRDEyLVx1MEQzQVx1MEQzRFx1MEQ0RVx1MEQ1NC1cdTBENTZcdTBENUYtXHUwRDYxXHUwRDdBLVx1MEQ3Rlx1MEQ4NS1cdTBEOTZcdTBEOUEtXHUwREIxXHUwREIzLVx1MERCQlx1MERCRFx1MERDMC1cdTBEQzZcdTBFMDEtXHUwRTMwXHUwRTMyXHUwRTMzXHUwRTQwLVx1MEU0Nlx1MEU4MVx1MEU4Mlx1MEU4NFx1MEU4N1x1MEU4OFx1MEU4QVx1MEU4RFx1MEU5NC1cdTBFOTdcdTBFOTktXHUwRTlGXHUwRUExLVx1MEVBM1x1MEVBNVx1MEVBN1x1MEVBQVx1MEVBQlx1MEVBRC1cdTBFQjBcdTBFQjJcdTBFQjNcdTBFQkRcdTBFQzAtXHUwRUM0XHUwRUM2XHUwRURDLVx1MEVERlx1MEYwMFx1MEY0MC1cdTBGNDdcdTBGNDktXHUwRjZDXHUwRjg4LVx1MEY4Q1x1MTAwMC1cdTEwMkFcdTEwM0ZcdTEwNTAtXHUxMDU1XHUxMDVBLVx1MTA1RFx1MTA2MVx1MTA2NVx1MTA2Nlx1MTA2RS1cdTEwNzBcdTEwNzUtXHUxMDgxXHUxMDhFXHUxMEEwLVx1MTBDNVx1MTBDN1x1MTBDRFx1MTBEMC1cdTEwRkFcdTEwRkMtXHUxMjQ4XHUxMjRBLVx1MTI0RFx1MTI1MC1cdTEyNTZcdTEyNThcdTEyNUEtXHUxMjVEXHUxMjYwLVx1MTI4OFx1MTI4QS1cdTEyOERcdTEyOTAtXHUxMkIwXHUxMkIyLVx1MTJCNVx1MTJCOC1cdTEyQkVcdTEyQzBcdTEyQzItXHUxMkM1XHUxMkM4LVx1MTJENlx1MTJEOC1cdTEzMTBcdTEzMTItXHUxMzE1XHUxMzE4LVx1MTM1QVx1MTM4MC1cdTEzOEZcdTEzQTAtXHUxM0Y1XHUxM0Y4LVx1MTNGRFx1MTQwMS1cdTE2NkNcdTE2NkYtXHUxNjdGXHUxNjgxLVx1MTY5QVx1MTZBMC1cdTE2RUFcdTE2RjEtXHUxNkY4XHUxNzAwLVx1MTcwQ1x1MTcwRS1cdTE3MTFcdTE3MjAtXHUxNzMxXHUxNzQwLVx1MTc1MVx1MTc2MC1cdTE3NkNcdTE3NkUtXHUxNzcwXHUxNzgwLVx1MTdCM1x1MTdEN1x1MTdEQ1x1MTgyMC1cdTE4NzdcdTE4ODAtXHUxODg0XHUxODg3LVx1MThBOFx1MThBQVx1MThCMC1cdTE4RjVcdTE5MDAtXHUxOTFFXHUxOTUwLVx1MTk2RFx1MTk3MC1cdTE5NzRcdTE5ODAtXHUxOUFCXHUxOUIwLVx1MTlDOVx1MUEwMC1cdTFBMTZcdTFBMjAtXHUxQTU0XHUxQUE3XHUxQjA1LVx1MUIzM1x1MUI0NS1cdTFCNEJcdTFCODMtXHUxQkEwXHUxQkFFXHUxQkFGXHUxQkJBLVx1MUJFNVx1MUMwMC1cdTFDMjNcdTFDNEQtXHUxQzRGXHUxQzVBLVx1MUM3RFx1MUM4MC1cdTFDODhcdTFDRTktXHUxQ0VDXHUxQ0VFLVx1MUNGMVx1MUNGNVx1MUNGNlx1MUQwMC1cdTFEQkZcdTFFMDAtXHUxRjE1XHUxRjE4LVx1MUYxRFx1MUYyMC1cdTFGNDVcdTFGNDgtXHUxRjREXHUxRjUwLVx1MUY1N1x1MUY1OVx1MUY1Qlx1MUY1RFx1MUY1Ri1cdTFGN0RcdTFGODAtXHUxRkI0XHUxRkI2LVx1MUZCQ1x1MUZCRVx1MUZDMi1cdTFGQzRcdTFGQzYtXHUxRkNDXHUxRkQwLVx1MUZEM1x1MUZENi1cdTFGREJcdTFGRTAtXHUxRkVDXHUxRkYyLVx1MUZGNFx1MUZGNi1cdTFGRkNcdTIwNzFcdTIwN0ZcdTIwOTAtXHUyMDlDXHUyMTAyXHUyMTA3XHUyMTBBLVx1MjExM1x1MjExNVx1MjExOS1cdTIxMURcdTIxMjRcdTIxMjZcdTIxMjhcdTIxMkEtXHUyMTJEXHUyMTJGLVx1MjEzOVx1MjEzQy1cdTIxM0ZcdTIxNDUtXHUyMTQ5XHUyMTRFXHUyMTgzXHUyMTg0XHUyQzAwLVx1MkMyRVx1MkMzMC1cdTJDNUVcdTJDNjAtXHUyQ0U0XHUyQ0VCLVx1MkNFRVx1MkNGMlx1MkNGM1x1MkQwMC1cdTJEMjVcdTJEMjdcdTJEMkRcdTJEMzAtXHUyRDY3XHUyRDZGXHUyRDgwLVx1MkQ5Nlx1MkRBMC1cdTJEQTZcdTJEQTgtXHUyREFFXHUyREIwLVx1MkRCNlx1MkRCOC1cdTJEQkVcdTJEQzAtXHUyREM2XHUyREM4LVx1MkRDRVx1MkREMC1cdTJERDZcdTJERDgtXHUyRERFXHUyRTJGXHUzMDA1XHUzMDA2XHUzMDMxLVx1MzAzNVx1MzAzQlx1MzAzQ1x1MzA0MS1cdTMwOTZcdTMwOUQtXHUzMDlGXHUzMEExLVx1MzBGQVx1MzBGQy1cdTMwRkZcdTMxMDUtXHUzMTJEXHUzMTMxLVx1MzE4RVx1MzFBMC1cdTMxQkFcdTMxRjAtXHUzMUZGXHUzNDAwLVx1NERCNVx1NEUwMC1cdTlGRDVcdUEwMDAtXHVBNDhDXHVBNEQwLVx1QTRGRFx1QTUwMC1cdUE2MENcdUE2MTAtXHVBNjFGXHVBNjJBXHVBNjJCXHVBNjQwLVx1QTY2RVx1QTY3Ri1cdUE2OURcdUE2QTAtXHVBNkU1XHVBNzE3LVx1QTcxRlx1QTcyMi1cdUE3ODhcdUE3OEItXHVBN0FFXHVBN0IwLVx1QTdCN1x1QTdGNy1cdUE4MDFcdUE4MDMtXHVBODA1XHVBODA3LVx1QTgwQVx1QTgwQy1cdUE4MjJcdUE4NDAtXHVBODczXHVBODgyLVx1QThCM1x1QThGMi1cdUE4RjdcdUE4RkJcdUE4RkRcdUE5MEEtXHVBOTI1XHVBOTMwLVx1QTk0Nlx1QTk2MC1cdUE5N0NcdUE5ODQtXHVBOUIyXHVBOUNGXHVBOUUwLVx1QTlFNFx1QTlFNi1cdUE5RUZcdUE5RkEtXHVBOUZFXHVBQTAwLVx1QUEyOFx1QUE0MC1cdUFBNDJcdUFBNDQtXHVBQTRCXHVBQTYwLVx1QUE3Nlx1QUE3QVx1QUE3RS1cdUFBQUZcdUFBQjFcdUFBQjVcdUFBQjZcdUFBQjktXHVBQUJEXHVBQUMwXHVBQUMyXHVBQURCLVx1QUFERFx1QUFFMC1cdUFBRUFcdUFBRjItXHVBQUY0XHVBQjAxLVx1QUIwNlx1QUIwOS1cdUFCMEVcdUFCMTEtXHVBQjE2XHVBQjIwLVx1QUIyNlx1QUIyOC1cdUFCMkVcdUFCMzAtXHVBQjVBXHVBQjVDLVx1QUI2NVx1QUI3MC1cdUFCRTJcdUFDMDAtXHVEN0EzXHVEN0IwLVx1RDdDNlx1RDdDQi1cdUQ3RkJcdUY5MDAtXHVGQTZEXHVGQTcwLVx1RkFEOVx1RkIwMC1cdUZCMDZcdUZCMTMtXHVGQjE3XHVGQjFEXHVGQjFGLVx1RkIyOFx1RkIyQS1cdUZCMzZcdUZCMzgtXHVGQjNDXHVGQjNFXHVGQjQwXHVGQjQxXHVGQjQzXHVGQjQ0XHVGQjQ2LVx1RkJCMVx1RkJEMy1cdUZEM0RcdUZENTAtXHVGRDhGXHVGRDkyLVx1RkRDN1x1RkRGMC1cdUZERkJcdUZFNzAtXHVGRTc0XHVGRTc2LVx1RkVGQ1x1RkYyMS1cdUZGM0FcdUZGNDEtXHVGRjVBXHVGRjY2LVx1RkZCRVx1RkZDMi1cdUZGQzdcdUZGQ0EtXHVGRkNGXHVGRkQyLVx1RkZEN1x1RkZEQS1cdUZGREMvLnNvdXJjZSxsQT1jQSsvXHUyNzAwLVx1MjdiZlx1ZGRlNi1cdWRkZmZcdWQ4MDAtXHVkYmZmXHVkYzAwLVx1ZGZmZlx1ZmUwZVx1ZmUwZlx1MDMwMC1cdTAzNmZcdWZlMjAtXHVmZTIzXHUyMGQwLVx1MjBmMFx1ZDgzY1x1ZGZmYi1cdWRmZmZcdTIwMGRcdTMyOTlcdTMyOTdcdTMwM2RcdTMwMzBcdTI0YzJcdWQ4M2NcdWRkNzAtXHVkZDcxXHVkZDdlLVx1ZGQ3Zlx1ZGQ4ZVx1ZGQ5MS1cdWRkOWFcdWRkZTYtXHVkZGZmXHVkZTAxLVx1ZGUwMlx1ZGUxYVx1ZGUyZlx1ZGUzMi1cdWRlM2FcdWRlNTAtXHVkZTUxXHUyMDNjXHUyMDQ5XHUyNWFhLVx1MjVhYlx1MjViNlx1MjVjMFx1MjVmYi1cdTI1ZmVcdTAwYTlcdTAwYWVcdTIxMjJcdTIxMzlcdWRjMDRcdTI2MDAtXHUyNkZGXHUyYjA1XHUyYjA2XHUyYjA3XHUyYjFiXHUyYjFjXHUyYjUwXHUyYjU1XHUyMzFhXHUyMzFiXHUyMzI4XHUyM2NmXHUyM2U5LVx1MjNmM1x1MjNmOC1cdTIzZmFcdWRjY2ZcdTI5MzVcdTI5MzRcdTIxOTAtXHUyMWZmLy5zb3VyY2UrL1x1MDMwMC1cdTAzNkZcdTA0ODMtXHUwNDg5XHUwNTkxLVx1MDVCRFx1MDVCRlx1MDVDMVx1MDVDMlx1MDVDNFx1MDVDNVx1MDVDN1x1MDYxMC1cdTA2MUFcdTA2NEItXHUwNjVGXHUwNjcwXHUwNkQ2LVx1MDZEQ1x1MDZERi1cdTA2RTRcdTA2RTdcdTA2RThcdTA2RUEtXHUwNkVEXHUwNzExXHUwNzMwLVx1MDc0QVx1MDdBNi1cdTA3QjBcdTA3RUItXHUwN0YzXHUwODE2LVx1MDgxOVx1MDgxQi1cdTA4MjNcdTA4MjUtXHUwODI3XHUwODI5LVx1MDgyRFx1MDg1OS1cdTA4NUJcdTA4RDQtXHUwOEUxXHUwOEUzLVx1MDkwM1x1MDkzQS1cdTA5M0NcdTA5M0UtXHUwOTRGXHUwOTUxLVx1MDk1N1x1MDk2Mlx1MDk2M1x1MDk4MS1cdTA5ODNcdTA5QkNcdTA5QkUtXHUwOUM0XHUwOUM3XHUwOUM4XHUwOUNCLVx1MDlDRFx1MDlEN1x1MDlFMlx1MDlFM1x1MEEwMS1cdTBBMDNcdTBBM0NcdTBBM0UtXHUwQTQyXHUwQTQ3XHUwQTQ4XHUwQTRCLVx1MEE0RFx1MEE1MVx1MEE3MFx1MEE3MVx1MEE3NVx1MEE4MS1cdTBBODNcdTBBQkNcdTBBQkUtXHUwQUM1XHUwQUM3LVx1MEFDOVx1MEFDQi1cdTBBQ0RcdTBBRTJcdTBBRTNcdTBCMDEtXHUwQjAzXHUwQjNDXHUwQjNFLVx1MEI0NFx1MEI0N1x1MEI0OFx1MEI0Qi1cdTBCNERcdTBCNTZcdTBCNTdcdTBCNjJcdTBCNjNcdTBCODJcdTBCQkUtXHUwQkMyXHUwQkM2LVx1MEJDOFx1MEJDQS1cdTBCQ0RcdTBCRDdcdTBDMDAtXHUwQzAzXHUwQzNFLVx1MEM0NFx1MEM0Ni1cdTBDNDhcdTBDNEEtXHUwQzREXHUwQzU1XHUwQzU2XHUwQzYyXHUwQzYzXHUwQzgxLVx1MEM4M1x1MENCQ1x1MENCRS1cdTBDQzRcdTBDQzYtXHUwQ0M4XHUwQ0NBLVx1MENDRFx1MENENVx1MENENlx1MENFMlx1MENFM1x1MEQwMS1cdTBEMDNcdTBEM0UtXHUwRDQ0XHUwRDQ2LVx1MEQ0OFx1MEQ0QS1cdTBENERcdTBENTdcdTBENjJcdTBENjNcdTBEODJcdTBEODNcdTBEQ0FcdTBEQ0YtXHUwREQ0XHUwREQ2XHUwREQ4LVx1MERERlx1MERGMlx1MERGM1x1MEUzMVx1MEUzNC1cdTBFM0FcdTBFNDctXHUwRTRFXHUwRUIxXHUwRUI0LVx1MEVCOVx1MEVCQlx1MEVCQ1x1MEVDOC1cdTBFQ0RcdTBGMThcdTBGMTlcdTBGMzVcdTBGMzdcdTBGMzlcdTBGM0VcdTBGM0ZcdTBGNzEtXHUwRjg0XHUwRjg2XHUwRjg3XHUwRjhELVx1MEY5N1x1MEY5OS1cdTBGQkNcdTBGQzZcdTEwMkItXHUxMDNFXHUxMDU2LVx1MTA1OVx1MTA1RS1cdTEwNjBcdTEwNjItXHUxMDY0XHUxMDY3LVx1MTA2RFx1MTA3MS1cdTEwNzRcdTEwODItXHUxMDhEXHUxMDhGXHUxMDlBLVx1MTA5RFx1MTM1RC1cdTEzNUZcdTE3MTItXHUxNzE0XHUxNzMyLVx1MTczNFx1MTc1Mlx1MTc1M1x1MTc3Mlx1MTc3M1x1MTdCNC1cdTE3RDNcdTE3RERcdTE4MEItXHUxODBEXHUxODg1XHUxODg2XHUxOEE5XHUxOTIwLVx1MTkyQlx1MTkzMC1cdTE5M0JcdTFBMTctXHUxQTFCXHUxQTU1LVx1MUE1RVx1MUE2MC1cdTFBN0NcdTFBN0ZcdTFBQjAtXHUxQUJFXHUxQjAwLVx1MUIwNFx1MUIzNC1cdTFCNDRcdTFCNkItXHUxQjczXHUxQjgwLVx1MUI4Mlx1MUJBMS1cdTFCQURcdTFCRTYtXHUxQkYzXHUxQzI0LVx1MUMzN1x1MUNEMC1cdTFDRDJcdTFDRDQtXHUxQ0U4XHUxQ0VEXHUxQ0YyLVx1MUNGNFx1MUNGOFx1MUNGOVx1MURDMC1cdTFERjVcdTFERkItXHUxREZGXHUyMEQwLVx1MjBGMFx1MkNFRi1cdTJDRjFcdTJEN0ZcdTJERTAtXHUyREZGXHUzMDJBLVx1MzAyRlx1MzA5OVx1MzA5QVx1QTY2Ri1cdUE2NzJcdUE2NzQtXHVBNjdEXHVBNjlFXHVBNjlGXHVBNkYwXHVBNkYxXHVBODAyXHVBODA2XHVBODBCXHVBODIzLVx1QTgyN1x1QTg4MFx1QTg4MVx1QThCNC1cdUE4QzVcdUE4RTAtXHVBOEYxXHVBOTI2LVx1QTkyRFx1QTk0Ny1cdUE5NTNcdUE5ODAtXHVBOTgzXHVBOUIzLVx1QTlDMFx1QTlFNVx1QUEyOS1cdUFBMzZcdUFBNDNcdUFBNENcdUFBNERcdUFBN0ItXHVBQTdEXHVBQUIwXHVBQUIyLVx1QUFCNFx1QUFCN1x1QUFCOFx1QUFCRVx1QUFCRlx1QUFDMVx1QUFFQi1cdUFBRUZcdUFBRjVcdUFBRjZcdUFCRTMtXHVBQkVBXHVBQkVDXHVBQkVEXHVGQjFFXHVGRTAwLVx1RkUwRlx1RkUyMC1cdUZFMkYvLnNvdXJjZSx1QT0vMC05XHUwNjYwLVx1MDY2OVx1MDZGMC1cdTA2RjlcdTA3QzAtXHUwN0M5XHUwOTY2LVx1MDk2Rlx1MDlFNi1cdTA5RUZcdTBBNjYtXHUwQTZGXHUwQUU2LVx1MEFFRlx1MEI2Ni1cdTBCNkZcdTBCRTYtXHUwQkVGXHUwQzY2LVx1MEM2Rlx1MENFNi1cdTBDRUZcdTBENjYtXHUwRDZGXHUwREU2LVx1MERFRlx1MEU1MC1cdTBFNTlcdTBFRDAtXHUwRUQ5XHUwRjIwLVx1MEYyOVx1MTA0MC1cdTEwNDlcdTEwOTAtXHUxMDk5XHUxN0UwLVx1MTdFOVx1MTgxMC1cdTE4MTlcdTE5NDYtXHUxOTRGXHUxOUQwLVx1MTlEOVx1MUE4MC1cdTFBODlcdTFBOTAtXHUxQTk5XHUxQjUwLVx1MUI1OVx1MUJCMC1cdTFCQjlcdTFDNDAtXHUxQzQ5XHUxQzUwLVx1MUM1OVx1QTYyMC1cdUE2MjlcdUE4RDAtXHVBOEQ5XHVBOTAwLVx1QTkwOVx1QTlEMC1cdUE5RDlcdUE5RjAtXHVBOUY5XHVBQTUwLVx1QUE1OVx1QUJGMC1cdUFCRjlcdUZGMTAtXHVGRjE5Ly5zb3VyY2UscEE9bEErdUEsaEE9bEErdUEsZEE9bmV3IFJlZ0V4cCgiWyIuY29uY2F0KGhBLCJdIikpLGZBPSIoPzpbIit1QSsiXXsxLDN9XFwuKXszfVsiK3VBKyJdezEsM30iLG1BPSJbIitoQSsiXSg/OlsiK2hBKyJcXC1fXXswLDYxfVsiK2hBKyJdKT8iLGdldERvbWFpbkxhYmVsU3RyPWZ1bmN0aW9uKHMpe3JldHVybiIoPz0oIittQSsiKSlcXCIrc30sZ2V0RG9tYWluTmFtZVN0cj1mdW5jdGlvbihzKXtyZXR1cm4iKD86IitnZXREb21haW5MYWJlbFN0cihzKSsiKD86XFwuIitnZXREb21haW5MYWJlbFN0cihzKzEpKyIpezAsMTI2fXwiK2ZBKyIpIn0sZ0E9KG5ldyBSZWdFeHAoIlsiK2hBKyIuXFwtXSpbIitoQSsiXFwtXSIpLGRBKSx5QT0vKD86eG4tLXZlcm1nZW5zYmVyYXR1bmctcHdifHhuLS12ZXJtZ2Vuc2JlcmF0ZXItY3RifHhuLS1jbGNoYzBlYTBiMmcyYTlnY2R8eG4tLXc0cjg1ZWw4Zmh1NWRucmF8bm9ydGh3ZXN0ZXJubXV0dWFsfHRyYXZlbGVyc2luc3VyYW5jZXx2ZXJtw7ZnZW5zYmVyYXR1bmd8eG4tLTVzdTM0ajkzNmJnc2d8eG4tLWJjazFiOWE1ZHJlNGN8eG4tLW1nYmFoMWEzaGprcmR8eG4tLW1nYmFpOWF6Z3FwNmp8eG4tLW1nYmVycDRhNWQ0YXJ8eG4tLXhrYzJkbDNhNWVlMGh8dmVybcO2Z2Vuc2JlcmF0ZXJ8eG4tLWZ6eXM4ZDY5dXZnbXx4bi0tbWdiYTdjMGJibjBhfHhuLS1tZ2JjcHE2Z3BhMWF8eG4tLXhrYzJhbDNoeWUyYXxhbWVyaWNhbmV4cHJlc3N8a2Vycnlwcm9wZXJ0aWVzfHNhbmR2aWtjb3JvbWFudHx4bi0taTFiNmIxYTZhMmV8eG4tLWtjcng3N2QxeDRhfHhuLS1sZ2JiYXQxYWQ4anx4bi0tbWdiYTNhNGYxNmF8eG4tLW1nYmFha2M3ZHZmfHhuLS1tZ2JjMGE5YXpjZ3x4bi0tbnF2N2ZzMDBlbWF8YW1lcmljYW5mYW1pbHl8YmFuYW5hcmVwdWJsaWN8Y2FuY2VycmVzZWFyY2h8Y29va2luZ2NoYW5uZWx8a2Vycnlsb2dpc3RpY3N8d2VhdGhlcmNoYW5uZWx8eG4tLTU0YjdmdGEwY2N8eG4tLTZxcTk4NmIzeGx8eG4tLTgwYXFlY2RyMWF8eG4tLWI0dzYwNWZlcmR8eG4tLWZpcTIyOGM1aHN8eG4tLWgyYnJlZzNldmV8eG4tLWpscTQ4MG4ycmd8eG4tLWpscTYxdTl3N2J8eG4tLW1nYmEzYTNlanR8eG4tLW1nYmFhbTdhOGh8eG4tLW1nYmF5aDdncGF8eG4tLW1nYmJoMWE3MWV8eG4tLW1nYmNhN2R6ZG98eG4tLW1nYmk0ZWNleHB8eG4tLW1nYng0Y2QwYWJ8eG4tLXJ2YzFlMGFtM2V8aW50ZXJuYXRpb25hbHxsaWZlaW5zdXJhbmNlfHRyYXZlbGNoYW5uZWx8d29sdGVyc2tsdXdlcnx4bi0tY2Nrd2N4ZXRkfHhuLS1lY2t2ZHRjOWR8eG4tLWZwY3JqOWMzZHx4bi0tZnpjMmM5ZTJjfHhuLS1oMmJyajljOGN8eG4tLXRpcTQ5eHF5anx4bi0teWZybzRpNjdvfHhuLS15Z2JpMmFtbXh8Y29uc3RydWN0aW9ufGxwbGZpbmFuY2lhbHxzY2hvbGFyc2hpcHN8dmVyc2ljaGVydW5nfHhuLS0zZTBiNzA3ZXx4bi0tNDVicjVjeWx8eG4tLTRkYnJrMGNlfHhuLS04MGFkeGhrc3x4bi0tODBhc2VoZGJ8eG4tLTh5MGEwNjNhfHhuLS1nY2tyM2YwZnx4bi0tbWdiOWF3YmZ8eG4tLW1nYmFiMmJkfHhuLS1tZ2JndTgyYXx4bi0tbWdicGwyZmh8eG4tLW1nYnQzZGhkfHhuLS1tazFidTQ0Y3x4bi0tbmdiYzVhemR8eG4tLW5nYmU5ZTBhfHhuLS1vZ2JwZjhmbHx4bi0tcWNrYTFwbWN8YWNjb3VudGFudHN8YmFyY2xheWNhcmR8YmxhY2tmcmlkYXl8YmxvY2tidXN0ZXJ8YnJpZGdlc3RvbmV8Y2Fsdmlua2xlaW58Y29udHJhY3RvcnN8Y3JlZGl0dW5pb258ZW5naW5lZXJpbmd8ZW50ZXJwcmlzZXN8Zm9vZG5ldHdvcmt8aW52ZXN0bWVudHN8a2Vycnlob3RlbHN8bGFtYm9yZ2hpbml8bW90b3JjeWNsZXN8b2xheWFuZ3JvdXB8cGhvdG9ncmFwaHl8cGxheXN0YXRpb258cHJvZHVjdGlvbnN8cHJvZ3Jlc3NpdmV8cmVkdW1icmVsbGF8d2lsbGlhbWhpbGx8eG4tLTExYjRjM2R8eG4tLTFjazJlMWJ8eG4tLTFxcXcyM2F8eG4tLTJzY3JqOWN8eG4tLTNic3QwMG18eG4tLTNkczQ0M2d8eG4tLTNoY3JqOWN8eG4tLTQyYzJkOWF8eG4tLTQ1YnJqOWN8eG4tLTU1cXc0Mmd8eG4tLTZmcno4Mmd8eG4tLTgwYW8yMWF8eG4tLTlrcnQwMGF8eG4tLWNjazJiM2J8eG4tLWN6cjY5NGJ8eG4tLWQxYWNqM2J8eG4tLWVmdnk4OGh8eG4tLWZjdDQyOWt8eG4tLWZqcTcyMGF8eG4tLWZsdzM1MWV8eG4tLWcyeHg0OGN8eG4tLWdlY3JqOWN8eG4tLWdrM2F0MWV8eG4tLWgyYnJqOWN8eG4tLWh4dDgxNGV8eG4tLWltcjUxM258eG4tLWo2dzE5M2d8eG4tLWp2cjE4OW18eG4tLWtwcncxM2R8eG4tLWtwcnk1N2R8eG4tLW1nYmJoMWF8eG4tLW1nYnR4MmJ8eG4tLW1peDg5MWZ8eG4tLW55cXkyNmF8eG4tLW90dTc5NmR8eG4tLXBnYnMwZGh8eG4tLXE5anliNGN8eG4tLXJocXY5Nmd8eG4tLXJvdnU4OGJ8eG4tLXM5YnJqOWN8eG4tLXNlczU1NGd8eG4tLXQ2MGI1NmF8eG4tLXZ1cTg2MWJ8eG4tLXc0cnM0MGx8eG4tLXhocTUyMWJ8eG4tLXpmcjE2NGJ84K6a4K6/4K6Z4K+N4K6V4K6q4K+N4K6q4K+C4K6w4K+NfGFjY291bnRhbnR8YXBhcnRtZW50c3xhc3NvY2lhdGVzfGJhc2tldGJhbGx8Ym5wcGFyaWJhc3xib2VocmluZ2VyfGNhcGl0YWxvbmV8Y29uc3VsdGluZ3xjcmVkaXRjYXJkfGN1aXNpbmVsbGF8ZXVyb3Zpc2lvbnxleHRyYXNwYWNlfGZvdW5kYXRpb258aGVhbHRoY2FyZXxpbW1vYmlsaWVufGluZHVzdHJpZXN8bWFuYWdlbWVudHxtaXRzdWJpc2hpfG5leHRkaXJlY3R8cHJvcGVydGllc3xwcm90ZWN0aW9ufHBydWRlbnRpYWx8cmVhbGVzdGF0ZXxyZXB1YmxpY2FufHJlc3RhdXJhbnR8c2NoYWVmZmxlcnx0YXRhbW90b3JzfHRlY2hub2xvZ3l8dW5pdmVyc2l0eXx2bGFhbmRlcmVufHZvbGtzd2FnZW58eG4tLTMwcnI3eXx4bi0tM3B4dThrfHhuLS00NXExMWN8eG4tLTRnYnJpbXx4bi0tNTVxeDVkfHhuLS01dHptNWd8eG4tLTgwYXN3Z3x4bi0tOTBhM2FjfHhuLS05ZGJxMmF8eG4tLTlldDUydXx4bi0tYzJicjdnfHhuLS1jZzRia2l8eG4tLWN6cnMwdHx4bi0tY3pydTJkfHhuLS1maXE2NGJ8eG4tLWZpcXM4c3x4bi0tZmlxejlzfHhuLS1pbzBhN2l8eG4tLWtwdXQzaXx4bi0tbXh0cTFtfHhuLS1vM2N3NGh8eG4tLXBzc3kydXx4bi0tcTdjZTZhfHhuLS11bnVwNHl8eG4tLXdnYmgxY3x4bi0td2dibDZhfHhuLS15OWEzYXF8YWNjZW50dXJlfGFsZmFyb21lb3xhbGxmaW5hbnp8YW1zdGVyZGFtfGFuYWx5dGljc3xhcXVhcmVsbGV8YmFyY2Vsb25hfGJsb29tYmVyZ3xjaHJpc3RtYXN8Y29tbXVuaXR5fGRpcmVjdG9yeXxlZHVjYXRpb258ZXF1aXBtZW50fGZhaXJ3aW5kc3xmaW5hbmNpYWx8ZmlyZXN0b25lfGZyZXNlbml1c3xmcm9udGRvb3J8ZnVybml0dXJlfGdvbGRwb2ludHxoaXNhbWl0c3V8aG9tZWRlcG90fGhvbWVnb29kc3xob21lc2Vuc2V8aW5zdGl0dXRlfGluc3VyYW5jZXxrdW9rZ3JvdXB8bGFuY2FzdGVyfGxhbmRyb3ZlcnxsaWZlc3R5bGV8bWFya2V0aW5nfG1hcnNoYWxsc3xtZWxib3VybmV8bWljcm9zb2Z0fHBhbmFzb25pY3xwYXNzYWdlbnN8cHJhbWVyaWNhfHJpY2hhcmRsaXxzaGFuZ3JpbGF8c29sdXRpb25zfHN0YXRlYmFua3xzdGF0ZWZhcm18c3RvY2tob2xtfHRyYXZlbGVyc3x2YWNhdGlvbnN8eG4tLTkwYWlzfHhuLS1jMWF2Z3x4bi0tZDFhbGZ8eG4tLWUxYTRjfHhuLS1maGJlaXx4bi0tajFhZWZ8eG4tLWoxYW1ofHhuLS1sMWFjY3x4bi0tbmdicnh8eG4tLW5xdjdmfHhuLS1wMWFjZnx4bi0tcXhhNmF8eG4tLXRja3dlfHhuLS12aHF1dnx5b2RvYmFzaGl82YXZiNix2YrYqtin2YbZitinfGFidWRoYWJpfGFpcmZvcmNlfGFsbHN0YXRlfGF0dG9ybmV5fGJhcmNsYXlzfGJhcmVmb290fGJhcmdhaW5zfGJhc2ViYWxsfGJvdXRpcXVlfGJyYWRlc2NvfGJyb2Fkd2F5fGJydXNzZWxzfGJ1aWxkZXJzfGJ1c2luZXNzfGNhcGV0b3dufGNhdGVyaW5nfGNhdGhvbGljfGNpcHJpYW5pfGNpdHllYXRzfGNsZWFuaW5nfGNsaW5pcXVlfGNsb3RoaW5nfGNvbW1iYW5rfGNvbXB1dGVyfGRlbGl2ZXJ5fGRlbG9pdHRlfGRlbW9jcmF0fGRpYW1vbmRzfGRpc2NvdW50fGRpc2NvdmVyfGRvd25sb2FkfGVuZ2luZWVyfGVyaWNzc29ufGV0aXNhbGF0fGV4Y2hhbmdlfGZlZWRiYWNrfGZpZGVsaXR5fGZpcm1kYWxlfGZvb3RiYWxsfGZyb250aWVyfGdvb2R5ZWFyfGdyYWluZ2VyfGdyYXBoaWNzfGd1YXJkaWFufGhkZmNiYW5rfGhlbHNpbmtpfGhvbGRpbmdzfGhvc3BpdGFsfGluZmluaXRpfGlwaXJhbmdhfGlzdGFuYnVsfGpwbW9yZ2FufGxpZ2h0aW5nfGx1bmRiZWNrfG1hcnJpb3R0fG1hc2VyYXRpfG1ja2luc2V5fG1lbW9yaWFsfG1lcmNrbXNkfG1vcnRnYWdlfG9ic2VydmVyfHBhcnRuZXJzfHBoYXJtYWN5fHBpY3R1cmVzfHBsdW1iaW5nfHByb3BlcnR5fHJlZHN0b25lfHJlbGlhbmNlfHNhYXJsYW5kfHNhbXNjbHVifHNlY3VyaXR5fHNlcnZpY2VzfHNob3BwaW5nfHNob3d0aW1lfHNvZnRiYW5rfHNvZnR3YXJlfHN0Y2dyb3VwfHN1cHBsaWVzfHRyYWluaW5nfHZhbmd1YXJkfHZlbnR1cmVzfHZlcmlzaWdufHdvb2RzaWRlfHhuLS05MGFlfHhuLS1ub2RlfHhuLS1wMWFpfHhuLS1xeGFtfHlva29oYW1hfNin2YTYs9i52YjYr9mK2Kl8YWJvZ2Fkb3xhY2FkZW15fGFnYWtoYW58YWxpYmFiYXxhbmRyb2lkfGF0aGxldGF8YXVjdGlvbnxhdWRpYmxlfGF1c3Bvc3R8YXZpYW5jYXxiYW5hbWV4fGJhdWhhdXN8YmVudGxleXxiZXN0YnV5fGJvb2tpbmd8YnJvdGhlcnxidWdhdHRpfGNhcGl0YWx8Y2FyYXZhbnxjYXJlZXJzfGNoYW5uZWx8Y2hhcml0eXxjaGludGFpfGNpdGFkZWx8Y2x1Ym1lZHxjb2xsZWdlfGNvbG9nbmV8Y29tY2FzdHxjb21wYW55fGNvbXBhcmV8Y29udGFjdHxjb29raW5nfGNvcnNpY2F8Y291bnRyeXxjb3Vwb25zfGNvdXJzZXN8Y3JpY2tldHxjcnVpc2VzfGRlbnRpc3R8ZGlnaXRhbHxkb21haW5zfGV4cG9zZWR8ZXhwcmVzc3xmYXJtZXJzfGZhc2hpb258ZmVycmFyaXxmZXJyZXJvfGZpbmFuY2V8ZmlzaGluZ3xmaXRuZXNzfGZsaWdodHN8ZmxvcmlzdHxmbG93ZXJzfGZvcnNhbGV8ZnJvZ2Fuc3xmdWppdHN1fGdhbGxlcnl8Z2VudGluZ3xnb2RhZGR5fGdyb2Nlcnl8Z3VpdGFyc3xoYW1idXJnfGhhbmdvdXR8aGl0YWNoaXxob2xpZGF5fGhvc3Rpbmd8aG90ZWxlc3xob3RtYWlsfGh5dW5kYWl8aXNtYWlsaXxqZXdlbHJ5fGp1bmlwZXJ8a2l0Y2hlbnxrb21hdHN1fGxhY2FpeGF8bGFueGVzc3xsYXNhbGxlfGxhdHJvYmV8bGVjbGVyY3xsaW1pdGVkfGxpbmNvbG58bWFya2V0c3xtb25zdGVyfG5ldGJhbmt8bmV0ZmxpeHxuZXR3b3JrfG5ldXN0YXJ8b2tpbmF3YXxvbGRuYXZ5fG9yZ2FuaWN8b3JpZ2luc3xwaGlsaXBzfHBpb25lZXJ8cG9saXRpZXxyZWFsdG9yfHJlY2lwZXN8cmVudGFsc3xyZXZpZXdzfHJleHJvdGh8c2Ftc3VuZ3xzYW5kdmlrfHNjaG1pZHR8c2Nod2FyenxzY2llbmNlfHNoaWtzaGF8c2luZ2xlc3xzdGFwbGVzfHN0b3JhZ2V8c3VwcG9ydHxzdXJnZXJ5fHN5c3RlbXN8dGVtYXNla3x0aGVhdGVyfHRoZWF0cmV8dGlja2V0c3x0aWZmYW55fHRvc2hpYmF8dHJhZGluZ3x3YWxtYXJ0fHdhbmdnb3V8d2F0Y2hlc3x3ZWF0aGVyfHdlYnNpdGV8d2VkZGluZ3x3aG9zd2hvfHdpbmRvd3N8d2lubmVyc3x4ZmluaXR5fHlhbWF4dW58eW91dHViZXx6dWVyaWNofNC60LDRgtC+0LvQuNC6fNin2KrYtdin2YTYp9iqfNin2YTYqNit2LHZitmGfNin2YTYrNiy2KfYptixfNin2YTYudmE2YrYp9mGfNm+2Kfaqdiz2KrYp9mGfNmD2KfYq9mI2YTZitmDfOCuh+CuqOCvjeCupOCuv+Cur+CuvnxhYmFydGh8YWJib3R0fGFiYnZpZXxhZnJpY2F8YWdlbmN5fGFpcmJ1c3xhaXJ0ZWx8YWxpcGF5fGFsc2FjZXxhbHN0b218YW1hem9ufGFucXVhbnxhcmFtY298YXV0aG9yfGJheWVybnxiZWF1dHl8YmVybGlufGJoYXJ0aXxib3N0aWt8Ym9zdG9ufGJyb2tlcnxjYW1lcmF8Y2FyZWVyfGNhc2lub3xjZW50ZXJ8Y2hhbmVsfGNocm9tZXxjaHVyY2h8Y2lyY2xlfGNsYWltc3xjbGluaWN8Y29mZmVlfGNvbXNlY3xjb25kb3N8Y291cG9ufGNyZWRpdHxjcnVpc2V8ZGF0aW5nfGRhdHN1bnxkZWFsZXJ8ZGVncmVlfGRlbnRhbHxkZXNpZ258ZGlyZWN0fGRvY3RvcnxkdW5sb3B8ZHVwb250fGR1cmJhbnxlbWVyY2t8ZW5lcmd5fGVzdGF0ZXxldmVudHN8ZXhwZXJ0fGZhbWlseXxmbGlja3J8ZnV0Ym9sfGdhbGx1cHxnYXJkZW58Z2VvcmdlfGdpdmluZ3xnbG9iYWx8Z29vZ2xlfGdyYXRpc3xoZWFsdGh8aGVybWVzfGhpcGhvcHxob2NrZXl8aG90ZWxzfGh1Z2hlc3xpbWFtYXR8aW5zdXJlfGludHVpdHxqYWd1YXJ8am9idXJnfGp1ZWdvc3xrYXVmZW58a2luZGVyfGtpbmRsZXxrb3NoZXJ8bGFuY2lhfGxhdGlub3xsYXd5ZXJ8bGVmcmFrfGxpdmluZ3xsb2NrZXJ8bG9uZG9ufGx1eHVyeXxtYWRyaWR8bWFpc29ufG1ha2V1cHxtYXJrZXR8bWF0dGVsfG1vYmlsZXxtb25hc2h8bW9ybW9ufG1vc2Nvd3xtdXNldW18bXV0dWFsfG5hZ295YXxuYXR1cmF8bmlzc2FufG5pc3NheXxub3J0b258bm93cnV6fG9mZmljZXxvbGF5YW58b25saW5lfG9yYWNsZXxvcmFuZ2V8b3RzdWthfHBmaXplcnxwaG90b3N8cGh5c2lvfHBpY3RldHxxdWViZWN8cmFjaW5nfHJlYWx0eXxyZWlzZW58cmVwYWlyfHJlcG9ydHxyZXZpZXd8cm9jaGVyfHJvZ2Vyc3xyeXVreXV8c2FmZXR5fHNha3VyYXxzYW5vZml8c2Nob29sfHNjaHVsZXxzZWFyY2h8c2VjdXJlfHNlbGVjdHxzaG91aml8c29jY2VyfHNvY2lhbHxzdHJlYW18c3R1ZGlvfHN1cHBseXxzdXp1a2l8c3dhdGNofHN5ZG5leXx0YWlwZWl8dGFvYmFvfHRhcmdldHx0YXR0b298dGVubmlzfHRpZW5kYXx0am1heHh8dGttYXh4fHRveW90YXx0cmF2ZWx8dW5pY29tfHZpYWplc3x2aWtpbmd8dmlsbGFzfHZpcmdpbnx2aXNpb258dm90aW5nfHZveWFnZXx2dWVsb3N8d2FsdGVyfHdlYmNhbXx4aWh1YW58eWFjaHRzfHlhbmRleHx6YXBwb3N80LzQvtGB0LrQstCwfNC+0L3Qu9Cw0LnQvXzYp9io2YjYuNio2Yp82KfYsdin2YXZg9mIfNin2YTYp9ix2K/ZhnzYp9mE2YXYutix2Kh82KfZhdin2LHYp9iqfNmB2YTYs9i32YrZhnzZhdmE2YrYs9mK2Kd84KSt4KS+4KSw4KSk4KSu4KWNfOCuh+CusuCumeCvjeCuleCviHzjg5XjgqHjg4Pjgrfjg6fjg7N8YWN0b3J8YWR1bHR8YWV0bmF8YW1mYW18YW1pY2F8YXBwbGV8YXJjaGl8YXVkaW98YXV0b3N8YXp1cmV8YmFpZHV8YmVhdHN8YmlibGV8YmluZ298YmxhY2t8Ym9hdHN8Ym9zY2h8YnVpbGR8Y2Fub258Y2FyZHN8Y2hhc2V8Y2hlYXB8Y2lzY298Y2l0aWN8Y2xpY2t8Y2xvdWR8Y29hY2h8Y29kZXN8Y3Jvd258Y3ltcnV8ZGFidXJ8ZGFuY2V8ZGVhbHN8ZGVsdGF8ZHJpdmV8ZHViYWl8ZWFydGh8ZWRla2F8ZW1haWx8ZXBzb258ZmFpdGh8ZmVkZXh8ZmluYWx8Zm9yZXh8Zm9ydW18Z2FsbG98Z2FtZXN8Z2lmdHN8Z2l2ZXN8Z2xhc3N8Z2xvYm98Z21haWx8Z3JlZW58Z3JpcGV8Z3JvdXB8Z3VjY2l8Z3VpZGV8aG9tZXN8aG9uZGF8aG9yc2V8aG91c2V8aHlhdHR8aWthbm98aXJpc2h8amV0enR8a29lbG58a3lvdG98bGFtZXJ8bGVhc2V8bGVnYWx8bGV4dXN8bGlsbHl8bGluZGV8bGlwc3l8bG9hbnN8bG9jdXN8bG90dGV8bG90dG98bWFjeXN8bWFuZ298bWVkaWF8bWlhbWl8bW9uZXl8bW92aWV8bXVzaWN8bmV4dXN8bmlrb258bmluamF8bm9raWF8bm93dHZ8b21lZ2F8b3Nha2F8cGFyaXN8cGFydHN8cGFydHl8cGhvbmV8cGhvdG98cGl6emF8cGxhY2V8cG9rZXJ8cHJheGl8cHJlc3N8cHJpbWV8cHJvbW98cXVlc3R8cmFkaW98cmVoYWJ8cmVpc2V8cmljb2h8cm9ja3N8cm9kZW98cnVnYnl8c2Fsb258c2VuZXJ8c2V2ZW58c2hhcnB8c2hlbGx8c2hvZXN8c2t5cGV8c2xpbmd8c21hcnR8c21pbGV8c29sYXJ8c3BhY2V8c3BvcnR8c3RhZGF8c3RvcmV8c3R1ZHl8c3R5bGV8c3Vja3N8c3dpc3N8dGF0YXJ8dGlyZXN8dGlyb2x8dG1hbGx8dG9kYXl8dG9reW98dG9vbHN8dG9yYXl8dG90YWx8dG91cnN8dHJhZGV8dHJ1c3R8dHVuZXN8dHVzaHV8dWJhbmt8dmVnYXN8dmlkZW98dm9ka2F8dm9sdm98d2FsZXN8d2F0Y2h8d2ViZXJ8d2VpYm98d29ya3N8d29ybGR8eGVyb3h8eWFob29815nXqdeo15DXnHzYp9uM2LHYp9mGfNio2KfYstin2LF82Kjavtin2LHYqnzYs9mI2K/Yp9mGfNiz2YjYsdmK2Kl82YfZhdix2KfZh3zgpK3gpL7gpLDgpYvgpKR84KS44KSC4KSX4KSg4KSofOCmrOCmvuCmguCmsuCmvnzgsK3gsL7gsLDgsKTgsY184LSt4LS+4LSw4LSk4LSCfOWYiemHjOWkp+mFkuW6l3xhYXJwfGFibGV8YWRhY3xhZXJvfGFrZG58YWxseXxhbWV4fGFyYWJ8YXJteXxhcnBhfGFydGV8YXNkYXxhc2lhfGF1ZGl8YXV0b3xiYWJ5fGJhbmR8YmFua3xiYnZhfGJlZXJ8YmVzdHxiaWtlfGJpbmd8YmxvZ3xibHVlfGJvZmF8Ym9uZHxib29rfGJ1enp8Y2FmZXxjYWxsfGNhbXB8Y2FyZXxjYXJzfGNhc2F8Y2FzZXxjYXNofGNicmV8Y2VybnxjaGF0fGNpdGl8Y2l0eXxjbHVifGNvb2x8Y29vcHxjeW91fGRhdGF8ZGF0ZXxkY2xrfGRlYWx8ZGVsbHxkZXNpfGRpZXR8ZGlzaHxkb2NzfGR2YWd8ZXJuaXxmYWdlfGZhaWx8ZmFuc3xmYXJtfGZhc3R8ZmlhdHxmaWRvfGZpbG18ZmlyZXxmaXNofGZsaXJ8Zm9vZHxmb3JkfGZyZWV8ZnVuZHxnYW1lfGdiaXp8Z2VudHxnZ2VlfGdpZnR8Z21iaHxnb2xkfGdvbGZ8Z29vZ3xndWdlfGd1cnV8aGFpcnxoYXVzfGhkZmN8aGVscHxoZXJlfGhndHZ8aG9zdHxoc2JjfGljYmN8aWVlZXxpbWRifGltbW98aW5mb3xpdGF1fGphdmF8amVlcHxqb2JzfGpwcnN8a2RkaXxraWRzfGtpd2l8a3BtZ3xrcmVkfGxhbmR8bGVnb3xsZ2J0fGxpZGx8bGlmZXxsaWtlfGxpbW98bGlua3xsaXZlfGxvYW58bG9mdHxsb3ZlfGx0ZGF8bHV4ZXxtYWlmfG1lZXR8bWVtZXxtZW51fG1pbml8bWludHxtb2JpfG1vZGF8bW90b3xuYW1lfG5hdnl8bmV3c3xuZXh0fG5pY298bmlrZXxvbGxvfG9wZW58cGFnZXxwYXJzfHBjY3d8cGljc3xwaW5nfHBpbmt8cGxheXxwbHVzfHBvaGx8cG9ybnxwb3N0fHByb2R8cHJvZnxxcG9ufHJlYWR8cmVpdHxyZW50fHJlc3R8cmljaHxyb29tfHJzdnB8cnVocnxzYWZlfHNhbGV8c2FybHxzYXZlfHNheG98c2NvdHxzZWF0fHNlZWt8c2V4eXxzaGF3fHNoaWF8c2hvcHxzaG93fHNpbGt8c2luYXxzaXRlfHNraW58c25jZnxzb2h1fHNvbmd8c29ueXxzcG90fHN0YXJ8c3VyZnx0YWxrfHRheGl8dGVhbXx0ZWNofHRldmF8dGlhYXx0aXBzfHRvd258dG95c3x0dWJlfHZhbmF8dmlzYXx2aXZhfHZpdm98dm90ZXx2b3RvfHdhbmd8d2Vpcnx3aWVufHdpa2l8d2luZXx3b3JrfHhib3h8eW9nYXx6YXJhfHplcm98em9uZXzQtNC10YLQuHzRgdCw0LnRgnzYqNin2LHYqnzYqNmK2KrZg3zagNin2LHYqnzYqtmI2YbYs3zYtNio2YPYqXzYudix2KfZgnzYudmF2KfZhnzZhdmI2YLYuXzgpK3gpL7gpLDgpKR84Kat4Ka+4Kaw4KakfOCmreCmvuCnsOCmpHzgqK3gqL7gqLDgqKR84Kqt4Kq+4Kqw4KqkfOCsreCsvuCssOCspHzgsq3gsr7gsrDgsqR84La94LaC4Laa4LePfOOCouODnuOCvuODs3zjgrDjg7zjgrDjg6t844Kv44Op44Km44OJfOODneOCpOODs+ODiHznu4Tnu4fmnLrmnoR86Zu76KiK55uI56eRfOmmmeagvOmHjOaLiXxhYWF8YWJifGFiY3xhY298YWRzfGFlZ3xhZmx8YWlnfGFuenxhb2x8YXBwfGFydHxhd3N8YXhhfGJhcnxiYmN8YmJ0fGJjZ3xiY258YmV0fGJpZHxiaW98Yml6fGJtc3xibXd8Ym9tfGJvb3xib3R8Ym94fGJ1eXxiemh8Y2FifGNhbHxjYW18Y2FyfGNhdHxjYmF8Y2JufGNic3xjZW98Y2ZhfGNmZHxjb218Y3BhfGNyc3xkYWR8ZGF5fGRkc3xkZXZ8ZGhsfGRpeXxkbnB8ZG9nfGRvdHxkdHZ8ZHZyfGVhdHxlY298ZWR1fGVzcXxldXN8ZmFufGZpdHxmbHl8Zm9vfGZveHxmcmx8ZnRyfGZ1bnxmeWl8Z2FsfGdhcHxnYXl8Z2RufGdlYXxnbGV8Z21vfGdteHxnb298Z29wfGdvdHxnb3Z8aGJvfGhpdnxoa3R8aG90fGhvd3xpYm18aWNlfGljdXxpZm18aW5jfGluZ3xpbmt8aW50fGlzdHxpdHZ8amNifGppb3xqbGx8am1wfGpuanxqb3R8am95fGtmaHxraWF8a2ltfGtwbnxrcmR8bGF0fGxhd3xsZHN8bGxjfGxscHxsb2x8bHBsfGx0ZHxtYW58bWFwfG1iYXxtZWR8bWVufG1pbHxtaXR8bWxifG1sc3xtbWF8bW9lfG1vaXxtb218bW92fG1zZHxtdG58bXRyfG5hYnxuYmF8bmVjfG5ldHxuZXd8bmZsfG5nb3xuaGt8bm93fG5yYXxucnd8bnR0fG55Y3xvYml8b25lfG9uZ3xvbmx8b29vfG9yZ3xvdHR8b3ZofHBheXxwZXR8cGhkfHBpZHxwaW58cG5jfHByb3xwcnV8cHVifHB3Y3xyZWR8cmVufHJpbHxyaW98cmlwfHJ1bnxyd2V8c2FwfHNhc3xzYml8c2JzfHNjYXxzY2J8c2VzfHNld3xzZXh8c2ZyfHNraXxza3l8c295fHNwYXxzcmx8c3RjfHRhYnx0YXh8dGNpfHRka3x0ZWx8dGhkfHRqeHx0b3B8dHJ2fHR1aXx0dnN8dWJzfHVub3x1b2x8dXBzfHZldHx2aWd8dmlufHZpcHx3ZWR8d2lufHdtZXx3b3d8d3RjfHd0Znx4aW58eHh4fHh5enx5b3V8eXVufHppcHzQsdC10Lt80LrQvtC8fNKb0LDQt3zQvNC60LR80LzQvtC9fNC+0YDQs3zRgNGD0YF80YHRgNCxfNGD0LrRgHzVsNWh1bV816fXldedfNi52LHYqHzZgti32LF82YPZiNmFfNmF2LXYsXzgpJXgpYngpK584KSo4KWH4KSffOC4hOC4reC4oXzguYTguJfguKJ84Lql4Lqy4LqnfOOCueODiOOConzjgrvjg7zjg6t844G/44KT44GqfOS4reaWh+e9kXzkuprpqazpgIp85aSp5Li75pWZfOaIkeeIseS9oHzmlrDliqDlnaF85reh6ams6ZShfOivuuWfuuS6mnzpo57liKnmtaZ8YWN8YWR8YWV8YWZ8YWd8YWl8YWx8YW18YW98YXF8YXJ8YXN8YXR8YXV8YXd8YXh8YXp8YmF8YmJ8YmR8YmV8YmZ8Ymd8Ymh8Yml8Ymp8Ym18Ym58Ym98YnJ8YnN8YnR8YnZ8Ynd8Ynl8Ynp8Y2F8Y2N8Y2R8Y2Z8Y2d8Y2h8Y2l8Y2t8Y2x8Y218Y258Y298Y3J8Y3V8Y3Z8Y3d8Y3h8Y3l8Y3p8ZGV8ZGp8ZGt8ZG18ZG98ZHp8ZWN8ZWV8ZWd8ZXJ8ZXN8ZXR8ZXV8Zml8Zmp8Zmt8Zm18Zm98ZnJ8Z2F8Z2J8Z2R8Z2V8Z2Z8Z2d8Z2h8Z2l8Z2x8Z218Z258Z3B8Z3F8Z3J8Z3N8Z3R8Z3V8Z3d8Z3l8aGt8aG18aG58aHJ8aHR8aHV8aWR8aWV8aWx8aW18aW58aW98aXF8aXJ8aXN8aXR8amV8am18am98anB8a2V8a2d8a2h8a2l8a218a258a3B8a3J8a3d8a3l8a3p8bGF8bGJ8bGN8bGl8bGt8bHJ8bHN8bHR8bHV8bHZ8bHl8bWF8bWN8bWR8bWV8bWd8bWh8bWt8bWx8bW18bW58bW98bXB8bXF8bXJ8bXN8bXR8bXV8bXZ8bXd8bXh8bXl8bXp8bmF8bmN8bmV8bmZ8bmd8bml8bmx8bm98bnB8bnJ8bnV8bnp8b218cGF8cGV8cGZ8cGd8cGh8cGt8cGx8cG18cG58cHJ8cHN8cHR8cHd8cHl8cWF8cmV8cm98cnN8cnV8cnd8c2F8c2J8c2N8c2R8c2V8c2d8c2h8c2l8c2p8c2t8c2x8c218c258c298c3J8c3N8c3R8c3V8c3Z8c3h8c3l8c3p8dGN8dGR8dGZ8dGd8dGh8dGp8dGt8dGx8dG18dG58dG98dHJ8dHR8dHZ8dHd8dHp8dWF8dWd8dWt8dXN8dXl8dXp8dmF8dmN8dmV8dmd8dml8dm58dnV8d2Z8d3N8eWV8eXR8emF8em18end8zrXOu3zOtc+FfNCx0LN80LXRjnzRgNGEfOGDkuGDlHzri7frhLd864u37Lu0fOyCvOyEsXztlZzqta1844Kz44OgfOS4lueVjHzkuK3kv6F85Lit5Zu9fOS4reWci3zkvIHkuJp85L2b5bGxfOS/oeaBr3zlgaXlurd85YWr5Y2mfOWFrOWPuHzlhaznm4p85Y+w5rm+fOWPsOeBo3zllYbln4585ZWG5bqXfOWVhuagh3zlmInph4x85Zyo57q/fOWkp+aLv3zlqLHkuZB85a626Zu7fOW5v+S4nHzlvq7ljZp85oWI5ZaEfOaJi+acunzmi5vogZh85pS/5YqhfOaUv+W6nHzmlrDpl7t85pe25bCafOabuOexjXzmnLrmnoR85ri45oiPfOa+s+mWgHzngrnnnIt856e75YqofOe9keWdgHznvZHlupd8572R56uZfOe9kee7nHzogZTpgJp86LC35q2MfOi0reeJqXzpgJrosql86ZuG5ZuifOmjn+WTgXzppJDljoV86aaZ5rivKS8sdkE9bmV3IFJlZ0V4cCgiWyIuY29uY2F0KGhBLCIhIyQlJicqKy89P15fYHt8fX4tXSIpKSxiQT1uZXcgUmVnRXhwKCJeIi5jb25jYXQoeUEuc291cmNlLCIkIikpLF9BPWZ1bmN0aW9uKHMpe2Z1bmN0aW9uIEVtYWlsTWF0Y2hlcigpe3ZhciBvPW51bGwhPT1zJiZzLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gby5sb2NhbFBhcnRDaGFyUmVnZXg9dkEsby5zdHJpY3RUbGRSZWdleD1iQSxvfXJldHVybiB0c2xpYl9lczZfZXh0ZW5kcyhFbWFpbE1hdGNoZXIscyksRW1haWxNYXRjaGVyLnByb3RvdHlwZS5wYXJzZU1hdGNoZXM9ZnVuY3Rpb24ocyl7Zm9yKHZhciBvPXRoaXMudGFnQnVpbGRlcixpPXRoaXMubG9jYWxQYXJ0Q2hhclJlZ2V4LGE9dGhpcy5zdHJpY3RUbGRSZWdleCx1PVtdLF89cy5sZW5ndGgsdz1uZXcgU0EseD17bToiYSIsYToiaSIsaToibCIsbDoidCIsdDoibyIsbzoiOiJ9LEM9MCxqPTAsTD13O0M8Xzspe3ZhciBCPXMuY2hhckF0KEMpO3N3aXRjaChqKXtjYXNlIDA6c3RhdGVOb25FbWFpbEFkZHJlc3MoQik7YnJlYWs7Y2FzZSAxOnN0YXRlTWFpbFRvKHMuY2hhckF0KEMtMSksQik7YnJlYWs7Y2FzZSAyOnN0YXRlTG9jYWxQYXJ0KEIpO2JyZWFrO2Nhc2UgMzpzdGF0ZUxvY2FsUGFydERvdChCKTticmVhaztjYXNlIDQ6c3RhdGVBdFNpZ24oQik7YnJlYWs7Y2FzZSA1OnN0YXRlRG9tYWluQ2hhcihCKTticmVhaztjYXNlIDY6c3RhdGVEb21haW5IeXBoZW4oQik7YnJlYWs7Y2FzZSA3OnN0YXRlRG9tYWluRG90KEIpO2JyZWFrO2RlZmF1bHQ6dGhyb3dVbmhhbmRsZWRDYXNlRXJyb3Ioail9QysrfXJldHVybiBjYXB0dXJlTWF0Y2hJZlZhbGlkQW5kUmVzZXQoKSx1O2Z1bmN0aW9uIHN0YXRlTm9uRW1haWxBZGRyZXNzKHMpeyJtIj09PXM/YmVnaW5FbWFpbE1hdGNoKDEpOmkudGVzdChzKSYmYmVnaW5FbWFpbE1hdGNoKCl9ZnVuY3Rpb24gc3RhdGVNYWlsVG8ocyxvKXsiOiI9PT1zP2kudGVzdChvKT8oaj0yLEw9bmV3IFNBKF9fYXNzaWduKF9fYXNzaWduKHt9LEwpLHtoYXNNYWlsdG9QcmVmaXg6ITB9KSkpOnJlc2V0VG9Ob25FbWFpbE1hdGNoU3RhdGUoKTp4W3NdPT09b3x8KGkudGVzdChvKT9qPTI6Ii4iPT09bz9qPTM6IkAiPT09bz9qPTQ6cmVzZXRUb05vbkVtYWlsTWF0Y2hTdGF0ZSgpKX1mdW5jdGlvbiBzdGF0ZUxvY2FsUGFydChzKXsiLiI9PT1zP2o9MzoiQCI9PT1zP2o9NDppLnRlc3Qocyl8fHJlc2V0VG9Ob25FbWFpbE1hdGNoU3RhdGUoKX1mdW5jdGlvbiBzdGF0ZUxvY2FsUGFydERvdChzKXsiLiI9PT1zfHwiQCI9PT1zP3Jlc2V0VG9Ob25FbWFpbE1hdGNoU3RhdGUoKTppLnRlc3Qocyk/aj0yOnJlc2V0VG9Ob25FbWFpbE1hdGNoU3RhdGUoKX1mdW5jdGlvbiBzdGF0ZUF0U2lnbihzKXtnQS50ZXN0KHMpP2o9NTpyZXNldFRvTm9uRW1haWxNYXRjaFN0YXRlKCl9ZnVuY3Rpb24gc3RhdGVEb21haW5DaGFyKHMpeyIuIj09PXM/aj03OiItIj09PXM/aj02OmdBLnRlc3Qocyl8fGNhcHR1cmVNYXRjaElmVmFsaWRBbmRSZXNldCgpfWZ1bmN0aW9uIHN0YXRlRG9tYWluSHlwaGVuKHMpeyItIj09PXN8fCIuIj09PXM/Y2FwdHVyZU1hdGNoSWZWYWxpZEFuZFJlc2V0KCk6Z0EudGVzdChzKT9qPTU6Y2FwdHVyZU1hdGNoSWZWYWxpZEFuZFJlc2V0KCl9ZnVuY3Rpb24gc3RhdGVEb21haW5Eb3Qocyl7Ii4iPT09c3x8Ii0iPT09cz9jYXB0dXJlTWF0Y2hJZlZhbGlkQW5kUmVzZXQoKTpnQS50ZXN0KHMpPyhqPTUsTD1uZXcgU0EoX19hc3NpZ24oX19hc3NpZ24oe30sTCkse2hhc0RvbWFpbkRvdDohMH0pKSk6Y2FwdHVyZU1hdGNoSWZWYWxpZEFuZFJlc2V0KCl9ZnVuY3Rpb24gYmVnaW5FbWFpbE1hdGNoKHMpe3ZvaWQgMD09PXMmJihzPTIpLGo9cyxMPW5ldyBTQSh7aWR4OkN9KX1mdW5jdGlvbiByZXNldFRvTm9uRW1haWxNYXRjaFN0YXRlKCl7aj0wLEw9d31mdW5jdGlvbiBjYXB0dXJlTWF0Y2hJZlZhbGlkQW5kUmVzZXQoKXtpZihMLmhhc0RvbWFpbkRvdCl7dmFyIGk9cy5zbGljZShMLmlkeCxDKTsvWy0uXSQvLnRlc3QoaSkmJihpPWkuc2xpY2UoMCwtMSkpO3ZhciBfPUwuaGFzTWFpbHRvUHJlZml4P2kuc2xpY2UoNyk6aTsoZnVuY3Rpb24gZG9lc0VtYWlsSGF2ZVZhbGlkVGxkKHMpe3ZhciBvPXMuc3BsaXQoIi4iKS5wb3AoKXx8IiIsaT1vLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGEudGVzdChpKX0pKF8pJiZ1LnB1c2gobmV3IFlDKHt0YWdCdWlsZGVyOm8sbWF0Y2hlZFRleHQ6aSxvZmZzZXQ6TC5pZHgsZW1haWw6X30pKX1yZXNldFRvTm9uRW1haWxNYXRjaFN0YXRlKCl9fSxFbWFpbE1hdGNoZXJ9KHRBKSxTQT1mdW5jdGlvbiBTQShzKXt2b2lkIDA9PT1zJiYocz17fSksdGhpcy5pZHg9dm9pZCAwIT09cy5pZHg/cy5pZHg6LTEsdGhpcy5oYXNNYWlsdG9QcmVmaXg9ISFzLmhhc01haWx0b1ByZWZpeCx0aGlzLmhhc0RvbWFpbkRvdD0hIXMuaGFzRG9tYWluRG90fSxFQT1mdW5jdGlvbigpe2Z1bmN0aW9uIFVybE1hdGNoVmFsaWRhdG9yKCl7fXJldHVybiBVcmxNYXRjaFZhbGlkYXRvci5pc1ZhbGlkPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIShvJiYhdGhpcy5pc1ZhbGlkVXJpU2NoZW1lKG8pfHx0aGlzLnVybE1hdGNoRG9lc05vdEhhdmVQcm90b2NvbE9yRG90KHMsbyl8fHRoaXMudXJsTWF0Y2hEb2VzTm90SGF2ZUF0TGVhc3RPbmVXb3JkQ2hhcihzLG8pJiYhdGhpcy5pc1ZhbGlkSXBBZGRyZXNzKHMpfHx0aGlzLmNvbnRhaW5zTXVsdGlwbGVEb3RzKHMpKX0sVXJsTWF0Y2hWYWxpZGF0b3IuaXNWYWxpZElwQWRkcmVzcz1mdW5jdGlvbihzKXt2YXIgbz1uZXcgUmVnRXhwKHRoaXMuaGFzRnVsbFByb3RvY29sUmVnZXguc291cmNlK3RoaXMuaXBSZWdleC5zb3VyY2UpO3JldHVybiBudWxsIT09cy5tYXRjaChvKX0sVXJsTWF0Y2hWYWxpZGF0b3IuY29udGFpbnNNdWx0aXBsZURvdHM9ZnVuY3Rpb24ocyl7dmFyIG89cztyZXR1cm4gdGhpcy5oYXNGdWxsUHJvdG9jb2xSZWdleC50ZXN0KHMpJiYobz1zLnNwbGl0KCI6Ly8iKVsxXSksby5zcGxpdCgiLyIpWzBdLmluZGV4T2YoIi4uIik+LTF9LFVybE1hdGNoVmFsaWRhdG9yLmlzVmFsaWRVcmlTY2hlbWU9ZnVuY3Rpb24ocyl7dmFyIG89cy5tYXRjaCh0aGlzLnVyaVNjaGVtZVJlZ2V4KSxpPW8mJm9bMF0udG9Mb3dlckNhc2UoKTtyZXR1cm4iamF2YXNjcmlwdDoiIT09aSYmInZic2NyaXB0OiIhPT1pfSxVcmxNYXRjaFZhbGlkYXRvci51cmxNYXRjaERvZXNOb3RIYXZlUHJvdG9jb2xPckRvdD1mdW5jdGlvbihzLG8pe3JldHVybiEoIXN8fG8mJnRoaXMuaGFzRnVsbFByb3RvY29sUmVnZXgudGVzdChvKXx8LTEhPT1zLmluZGV4T2YoIi4iKSl9LFVybE1hdGNoVmFsaWRhdG9yLnVybE1hdGNoRG9lc05vdEhhdmVBdExlYXN0T25lV29yZENoYXI9ZnVuY3Rpb24ocyxvKXtyZXR1cm4hKCFzfHwhbykmJighdGhpcy5oYXNGdWxsUHJvdG9jb2xSZWdleC50ZXN0KG8pJiYhdGhpcy5oYXNXb3JkQ2hhckFmdGVyUHJvdG9jb2xSZWdleC50ZXN0KHMpKX0sVXJsTWF0Y2hWYWxpZGF0b3IuaGFzRnVsbFByb3RvY29sUmVnZXg9L15bQS1aYS16XVstLitBLVphLXowLTldKjpcL1wvLyxVcmxNYXRjaFZhbGlkYXRvci51cmlTY2hlbWVSZWdleD0vXltBLVphLXpdWy0uK0EtWmEtejAtOV0qOi8sVXJsTWF0Y2hWYWxpZGF0b3IuaGFzV29yZENoYXJBZnRlclByb3RvY29sUmVnZXg9bmV3IFJlZ0V4cCgiOlteXFxzXSo/WyIrY0ErIl0iKSxVcmxNYXRjaFZhbGlkYXRvci5pcFJlZ2V4PS9bMC05XVswLTldP1swLTldP1wuWzAtOV1bMC05XT9bMC05XT9cLlswLTldWzAtOV0/WzAtOV0/XC5bMC05XVswLTldP1swLTldPyg6WzAtOV0qKT9cLz8kLyxVcmxNYXRjaFZhbGlkYXRvcn0oKSx3QT0oR0M9bmV3IFJlZ0V4cCgiWy8/I10oPzpbIitoQSsiXFwtKyZAIy8lPX5fKCl8JyQqXFxbXFxde30/ITosLjte4pyTXSpbIitoQSsiXFwtKyZAIy8lPX5fKCl8JyQqXFxbXFxde33inJNdKT8iKSxuZXcgUmVnRXhwKFsiKD86IiwiKCIsLyg/OltBLVphLXpdWy0uK0EtWmEtejAtOV17MCw2M306KD8hW0EtWmEtel1bLS4rQS1aYS16MC05XXswLDYzfTpcL1wvKSg/IVxkK1wvPykoPzpcL1wvKT8pLy5zb3VyY2UsZ2V0RG9tYWluTmFtZVN0cigyKSwiKSIsInwiLCIoIiwiKC8vKT8iLC8oPzp3d3dcLikvLnNvdXJjZSxnZXREb21haW5OYW1lU3RyKDYpLCIpIiwifCIsIigiLCIoLy8pPyIsZ2V0RG9tYWluTmFtZVN0cigxMCkrIlxcLiIseUEuc291cmNlLCIoPyFbLSIrcEErIl0pIiwiKSIsIikiLCIoPzo6WzAtOV0rKT8iLCIoPzoiK0dDLnNvdXJjZSsiKT8iXS5qb2luKCIiKSwiZ2kiKSkseEE9bmV3IFJlZ0V4cCgiWyIraEErIl0iKSxrQT1mdW5jdGlvbihzKXtmdW5jdGlvbiBVcmxNYXRjaGVyKG8pe3ZhciBpPXMuY2FsbCh0aGlzLG8pfHx0aGlzO3JldHVybiBpLnN0cmlwUHJlZml4PXtzY2hlbWU6ITAsd3d3OiEwfSxpLnN0cmlwVHJhaWxpbmdTbGFzaD0hMCxpLmRlY29kZVBlcmNlbnRFbmNvZGluZz0hMCxpLm1hdGNoZXJSZWdleD13QSxpLndvcmRDaGFyUmVnRXhwPXhBLGkuc3RyaXBQcmVmaXg9by5zdHJpcFByZWZpeCxpLnN0cmlwVHJhaWxpbmdTbGFzaD1vLnN0cmlwVHJhaWxpbmdTbGFzaCxpLmRlY29kZVBlcmNlbnRFbmNvZGluZz1vLmRlY29kZVBlcmNlbnRFbmNvZGluZyxpfXJldHVybiB0c2xpYl9lczZfZXh0ZW5kcyhVcmxNYXRjaGVyLHMpLFVybE1hdGNoZXIucHJvdG90eXBlLnBhcnNlTWF0Y2hlcz1mdW5jdGlvbihzKXtmb3IodmFyIG8saT10aGlzLm1hdGNoZXJSZWdleCxhPXRoaXMuc3RyaXBQcmVmaXgsdT10aGlzLnN0cmlwVHJhaWxpbmdTbGFzaCxfPXRoaXMuZGVjb2RlUGVyY2VudEVuY29kaW5nLHc9dGhpcy50YWdCdWlsZGVyLHg9W10sX2xvb3BfMT1mdW5jdGlvbigpe3ZhciBpPW9bMF0saj1vWzFdLEw9b1s0XSxCPW9bNV0sJD1vWzldLFY9by5pbmRleCxVPUJ8fCQsej1zLmNoYXJBdChWLTEpO2lmKCFFQS5pc1ZhbGlkKGksaikpcmV0dXJuImNvbnRpbnVlIjtpZihWPjAmJiJAIj09PXopcmV0dXJuImNvbnRpbnVlIjtpZihWPjAmJlUmJkMud29yZENoYXJSZWdFeHAudGVzdCh6KSlyZXR1cm4iY29udGludWUiO2lmKC9cPyQvLnRlc3QoaSkmJihpPWkuc3Vic3RyKDAsaS5sZW5ndGgtMSkpLEMubWF0Y2hIYXNVbmJhbGFuY2VkQ2xvc2luZ1BhcmVuKGkpKWk9aS5zdWJzdHIoMCxpLmxlbmd0aC0xKTtlbHNle3ZhciBZPUMubWF0Y2hIYXNJbnZhbGlkQ2hhckFmdGVyVGxkKGksaik7WT4tMSYmKGk9aS5zdWJzdHIoMCxZKSl9dmFyIFo9WyJodHRwOi8vIiwiaHR0cHM6Ly8iXS5maW5kKChmdW5jdGlvbihzKXtyZXR1cm4hIWomJi0xIT09ai5pbmRleE9mKHMpfSkpO2lmKFope3ZhciBlZT1pLmluZGV4T2YoWik7aT1pLnN1YnN0cihlZSksaj1qLnN1YnN0cihlZSksVis9ZWV9dmFyIGllPWo/InNjaGVtZSI6TD8id3d3IjoidGxkIixhZT0hIWo7eC5wdXNoKG5ldyBlQSh7dGFnQnVpbGRlcjp3LG1hdGNoZWRUZXh0Omksb2Zmc2V0OlYsdXJsTWF0Y2hUeXBlOmllLHVybDppLHByb3RvY29sVXJsTWF0Y2g6YWUscHJvdG9jb2xSZWxhdGl2ZU1hdGNoOiEhVSxzdHJpcFByZWZpeDphLHN0cmlwVHJhaWxpbmdTbGFzaDp1LGRlY29kZVBlcmNlbnRFbmNvZGluZzpffSkpfSxDPXRoaXM7bnVsbCE9PShvPWkuZXhlYyhzKSk7KV9sb29wXzEoKTtyZXR1cm4geH0sVXJsTWF0Y2hlci5wcm90b3R5cGUubWF0Y2hIYXNVbmJhbGFuY2VkQ2xvc2luZ1BhcmVuPWZ1bmN0aW9uKHMpe3ZhciBvLGk9cy5jaGFyQXQocy5sZW5ndGgtMSk7aWYoIikiPT09aSlvPSIoIjtlbHNlIGlmKCJdIj09PWkpbz0iWyI7ZWxzZXtpZigifSIhPT1pKXJldHVybiExO289InsifWZvcih2YXIgYT0wLHU9MCxfPXMubGVuZ3RoLTE7dTxfO3UrKyl7dmFyIHc9cy5jaGFyQXQodSk7dz09PW8/YSsrOnc9PT1pJiYoYT1NYXRoLm1heChhLTEsMCkpfXJldHVybiAwPT09YX0sVXJsTWF0Y2hlci5wcm90b3R5cGUubWF0Y2hIYXNJbnZhbGlkQ2hhckFmdGVyVGxkPWZ1bmN0aW9uKHMsbyl7aWYoIXMpcmV0dXJuLTE7dmFyIGk9MDtvJiYoaT1zLmluZGV4T2YoIjoiKSxzPXMuc2xpY2UoaSkpO3ZhciBhPW5ldyBSZWdFeHAoIl4oKC4/Ly8pP1stLiIraEErIl0qWy0iK2hBKyJdXFwuWy0iK2hBKyJdKykiKS5leGVjKHMpO3JldHVybiBudWxsPT09YT8tMTooaSs9YVsxXS5sZW5ndGgscz1zLnNsaWNlKGFbMV0ubGVuZ3RoKSwvXlteLS5BLVphLXowLTk6XC8/I10vLnRlc3Qocyk/aTotMSl9LFVybE1hdGNoZXJ9KHRBKSxPQT1uZXcgUmVnRXhwKCJbXyIuY29uY2F0KGhBLCJdIikpLENBPWZ1bmN0aW9uKHMpe2Z1bmN0aW9uIEhhc2h0YWdNYXRjaGVyKG8pe3ZhciBpPXMuY2FsbCh0aGlzLG8pfHx0aGlzO3JldHVybiBpLnNlcnZpY2VOYW1lPSJ0d2l0dGVyIixpLnNlcnZpY2VOYW1lPW8uc2VydmljZU5hbWUsaX1yZXR1cm4gdHNsaWJfZXM2X2V4dGVuZHMoSGFzaHRhZ01hdGNoZXIscyksSGFzaHRhZ01hdGNoZXIucHJvdG90eXBlLnBhcnNlTWF0Y2hlcz1mdW5jdGlvbihzKXtmb3IodmFyIG89dGhpcy50YWdCdWlsZGVyLGk9dGhpcy5zZXJ2aWNlTmFtZSxhPVtdLHU9cy5sZW5ndGgsXz0wLHc9LTEseD0wO188dTspe3ZhciBDPXMuY2hhckF0KF8pO3N3aXRjaCh4KXtjYXNlIDA6c3RhdGVOb25lKEMpO2JyZWFrO2Nhc2UgMTpzdGF0ZU5vbkhhc2h0YWdXb3JkQ2hhcihDKTticmVhaztjYXNlIDI6c3RhdGVIYXNodGFnSGFzaENoYXIoQyk7YnJlYWs7Y2FzZSAzOnN0YXRlSGFzaHRhZ1RleHRDaGFyKEMpO2JyZWFrO2RlZmF1bHQ6dGhyb3dVbmhhbmRsZWRDYXNlRXJyb3IoeCl9XysrfXJldHVybiBjYXB0dXJlTWF0Y2hJZlZhbGlkKCksYTtmdW5jdGlvbiBzdGF0ZU5vbmUocyl7IiMiPT09cz8oeD0yLHc9Xyk6ZEEudGVzdChzKSYmKHg9MSl9ZnVuY3Rpb24gc3RhdGVOb25IYXNodGFnV29yZENoYXIocyl7ZEEudGVzdChzKXx8KHg9MCl9ZnVuY3Rpb24gc3RhdGVIYXNodGFnSGFzaENoYXIocyl7eD1PQS50ZXN0KHMpPzM6ZEEudGVzdChzKT8xOjB9ZnVuY3Rpb24gc3RhdGVIYXNodGFnVGV4dENoYXIocyl7T0EudGVzdChzKXx8KGNhcHR1cmVNYXRjaElmVmFsaWQoKSx3PS0xLHg9ZEEudGVzdChzKT8xOjApfWZ1bmN0aW9uIGNhcHR1cmVNYXRjaElmVmFsaWQoKXtpZih3Pi0xJiZfLXc8PTE0MCl7dmFyIHU9cy5zbGljZSh3LF8pLHg9bmV3IFhDKHt0YWdCdWlsZGVyOm8sbWF0Y2hlZFRleHQ6dSxvZmZzZXQ6dyxzZXJ2aWNlTmFtZTppLGhhc2h0YWc6dS5zbGljZSgxKX0pO2EucHVzaCh4KX19fSxIYXNodGFnTWF0Y2hlcn0odEEpLEFBPVsidHdpdHRlciIsImZhY2Vib29rIiwiaW5zdGFncmFtIiwidGlrdG9rIl0sakE9bmV3IFJlZ0V4cCgiIi5jb25jYXQoLyg/Oig/Oig/OihcKyk/XGR7MSwzfVstXDA0MC5dPyk/XCg/XGR7M31cKT9bLVwwNDAuXT9cZHszfVstXDA0MC5dP1xkezR9KXwoPzooXCspKD86OVs5NzZdXGR8OFs5ODc1MzBdXGR8Nls5ODddXGR8NVs5MF1cZHw0MlxkfDNbODc1XVxkfDJbOTg2NTQzMjFdXGR8OVs4NTQzMjEwXXw4WzY0MjFdfDZbNjU0MzIxMF18NVs4NzY1NDMyMV18NFs5ODc2NTQzMTBdfDNbOTY0MzIxMF18Mls3MF18N3wxKVstXDA0MC5dPyg/OlxkWy1cMDQwLl0/KXs2LDEyfVxkKykpKFssO10rWzAtOV0rIz8pKi8uc291cmNlLCJ8IikuY29uY2F0KC8oMChbMS05XXsxfS0/WzEtOV1cZHszfXxbMS05XXsyfS0/XGR7M318WzEtOV17Mn1cZHsxfS0/XGR7Mn18WzEtOV17Mn1cZHsyfS0/XGR7MX0pLT9cZHs0fXwwWzc4OV0wLT9cZHs0fS0/XGR7NH18MDUwLT9cZHs0fS0/XGR7NH0pLy5zb3VyY2UpLCJnIiksUEE9ZnVuY3Rpb24ocyl7ZnVuY3Rpb24gUGhvbmVNYXRjaGVyKCl7dmFyIG89bnVsbCE9PXMmJnMuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBvLm1hdGNoZXJSZWdleD1qQSxvfXJldHVybiB0c2xpYl9lczZfZXh0ZW5kcyhQaG9uZU1hdGNoZXIscyksUGhvbmVNYXRjaGVyLnByb3RvdHlwZS5wYXJzZU1hdGNoZXM9ZnVuY3Rpb24ocyl7Zm9yKHZhciBvLGk9dGhpcy5tYXRjaGVyUmVnZXgsYT10aGlzLnRhZ0J1aWxkZXIsdT1bXTtudWxsIT09KG89aS5leGVjKHMpKTspe3ZhciBfPW9bMF0sdz1fLnJlcGxhY2UoL1teMC05LDsjXS9nLCIiKSx4PSEoIW9bMV0mJiFvWzJdKSxDPTA9PW8uaW5kZXg/IiI6cy5zdWJzdHIoby5pbmRleC0xLDEpLGo9cy5zdWJzdHIoby5pbmRleCtfLmxlbmd0aCwxKSxMPSFDLm1hdGNoKC9cZC8pJiYhai5tYXRjaCgvXGQvKTt0aGlzLnRlc3RNYXRjaChvWzNdKSYmdGhpcy50ZXN0TWF0Y2goXykmJkwmJnUucHVzaChuZXcgWkMoe3RhZ0J1aWxkZXI6YSxtYXRjaGVkVGV4dDpfLG9mZnNldDpvLmluZGV4LG51bWJlcjp3LHBsdXNTaWduOnh9KSl9cmV0dXJuIHV9LFBob25lTWF0Y2hlci5wcm90b3R5cGUudGVzdE1hdGNoPWZ1bmN0aW9uKHMpe3JldHVybiBzQS50ZXN0KHMpfSxQaG9uZU1hdGNoZXJ9KHRBKSxJQT1uZXcgUmVnRXhwKCJAW18iLmNvbmNhdChoQSwiXXsxLDUwfSg/IVtfIikuY29uY2F0KGhBLCJdKSIpLCJnIiksVEE9bmV3IFJlZ0V4cCgiQFtfLiIuY29uY2F0KGhBLCJdezEsMzB9KD8hW18iKS5jb25jYXQoaEEsIl0pIiksImciKSxOQT1uZXcgUmVnRXhwKCJAWy1fLiIuY29uY2F0KGhBLCJdezEsNTB9KD8hWy1fIikuY29uY2F0KGhBLCJdKSIpLCJnIiksTUE9bmV3IFJlZ0V4cCgiQFtfLiIuY29uY2F0KGhBLCJdezEsMjN9W18iKS5jb25jYXQoaEEsIl0oPyFbXyIpLmNvbmNhdChoQSwiXSkiKSwiZyIpLFJBPW5ldyBSZWdFeHAoIlteIitoQSsiXSIpLERBPWZ1bmN0aW9uKHMpe2Z1bmN0aW9uIE1lbnRpb25NYXRjaGVyKG8pe3ZhciBpPXMuY2FsbCh0aGlzLG8pfHx0aGlzO3JldHVybiBpLnNlcnZpY2VOYW1lPSJ0d2l0dGVyIixpLm1hdGNoZXJSZWdleGVzPXt0d2l0dGVyOklBLGluc3RhZ3JhbTpUQSxzb3VuZGNsb3VkOk5BLHRpa3RvazpNQX0saS5ub25Xb3JkQ2hhclJlZ2V4PVJBLGkuc2VydmljZU5hbWU9by5zZXJ2aWNlTmFtZSxpfXJldHVybiB0c2xpYl9lczZfZXh0ZW5kcyhNZW50aW9uTWF0Y2hlcixzKSxNZW50aW9uTWF0Y2hlci5wcm90b3R5cGUucGFyc2VNYXRjaGVzPWZ1bmN0aW9uKHMpe3ZhciBvLGk9dGhpcy5zZXJ2aWNlTmFtZSxhPXRoaXMubWF0Y2hlclJlZ2V4ZXNbdGhpcy5zZXJ2aWNlTmFtZV0sdT10aGlzLm5vbldvcmRDaGFyUmVnZXgsXz10aGlzLnRhZ0J1aWxkZXIsdz1bXTtpZighYSlyZXR1cm4gdztmb3IoO251bGwhPT0obz1hLmV4ZWMocykpOyl7dmFyIHg9by5pbmRleCxDPXMuY2hhckF0KHgtMSk7aWYoMD09PXh8fHUudGVzdChDKSl7dmFyIGo9b1swXS5yZXBsYWNlKC9cLiskL2csIiIpLEw9ai5zbGljZSgxKTt3LnB1c2gobmV3IFFDKHt0YWdCdWlsZGVyOl8sbWF0Y2hlZFRleHQ6aixvZmZzZXQ6eCxzZXJ2aWNlTmFtZTppLG1lbnRpb246TH0pKX19cmV0dXJuIHd9LE1lbnRpb25NYXRjaGVyfSh0QSk7ZnVuY3Rpb24gcGFyc2VIdG1sKHMsbyl7Zm9yKHZhciBpPW8ub25PcGVuVGFnLGE9by5vbkNsb3NlVGFnLHU9by5vblRleHQsXz1vLm9uQ29tbWVudCx3PW8ub25Eb2N0eXBlLHg9bmV3IExBLEM9MCxqPXMubGVuZ3RoLEw9MCxCPTAsJD14O0M8ajspe3ZhciBWPXMuY2hhckF0KEMpO3N3aXRjaChMKXtjYXNlIDA6c3RhdGVEYXRhKFYpO2JyZWFrO2Nhc2UgMTpzdGF0ZVRhZ09wZW4oVik7YnJlYWs7Y2FzZSAyOnN0YXRlRW5kVGFnT3BlbihWKTticmVhaztjYXNlIDM6c3RhdGVUYWdOYW1lKFYpO2JyZWFrO2Nhc2UgNDpzdGF0ZUJlZm9yZUF0dHJpYnV0ZU5hbWUoVik7YnJlYWs7Y2FzZSA1OnN0YXRlQXR0cmlidXRlTmFtZShWKTticmVhaztjYXNlIDY6c3RhdGVBZnRlckF0dHJpYnV0ZU5hbWUoVik7YnJlYWs7Y2FzZSA3OnN0YXRlQmVmb3JlQXR0cmlidXRlVmFsdWUoVik7YnJlYWs7Y2FzZSA4OnN0YXRlQXR0cmlidXRlVmFsdWVEb3VibGVRdW90ZWQoVik7YnJlYWs7Y2FzZSA5OnN0YXRlQXR0cmlidXRlVmFsdWVTaW5nbGVRdW90ZWQoVik7YnJlYWs7Y2FzZSAxMDpzdGF0ZUF0dHJpYnV0ZVZhbHVlVW5xdW90ZWQoVik7YnJlYWs7Y2FzZSAxMTpzdGF0ZUFmdGVyQXR0cmlidXRlVmFsdWVRdW90ZWQoVik7YnJlYWs7Y2FzZSAxMjpzdGF0ZVNlbGZDbG9zaW5nU3RhcnRUYWcoVik7YnJlYWs7Y2FzZSAxMzpzdGF0ZU1hcmt1cERlY2xhcmF0aW9uT3BlbihWKTticmVhaztjYXNlIDE0OnN0YXRlQ29tbWVudFN0YXJ0KFYpO2JyZWFrO2Nhc2UgMTU6c3RhdGVDb21tZW50U3RhcnREYXNoKFYpO2JyZWFrO2Nhc2UgMTY6c3RhdGVDb21tZW50KFYpO2JyZWFrO2Nhc2UgMTc6c3RhdGVDb21tZW50RW5kRGFzaChWKTticmVhaztjYXNlIDE4OnN0YXRlQ29tbWVudEVuZChWKTticmVhaztjYXNlIDE5OnN0YXRlQ29tbWVudEVuZEJhbmcoVik7YnJlYWs7Y2FzZSAyMDpzdGF0ZURvY3R5cGUoVik7YnJlYWs7ZGVmYXVsdDp0aHJvd1VuaGFuZGxlZENhc2VFcnJvcihMKX1DKyt9ZnVuY3Rpb24gc3RhdGVEYXRhKHMpeyI8Ij09PXMmJnN0YXJ0TmV3VGFnKCl9ZnVuY3Rpb24gc3RhdGVUYWdPcGVuKHMpeyIhIj09PXM/TD0xMzoiLyI9PT1zPyhMPTIsJD1uZXcgTEEoX19hc3NpZ24oX19hc3NpZ24oe30sJCkse2lzQ2xvc2luZzohMH0pKSk6IjwiPT09cz9zdGFydE5ld1RhZygpOnJBLnRlc3Qocyk/KEw9MywkPW5ldyBMQShfX2Fzc2lnbihfX2Fzc2lnbih7fSwkKSx7aXNPcGVuaW5nOiEwfSkpKTooTD0wLCQ9eCl9ZnVuY3Rpb24gc3RhdGVUYWdOYW1lKHMpe29BLnRlc3Qocyk/KCQ9bmV3IExBKF9fYXNzaWduKF9fYXNzaWduKHt9LCQpLHtuYW1lOmNhcHR1cmVUYWdOYW1lKCl9KSksTD00KToiPCI9PT1zP3N0YXJ0TmV3VGFnKCk6Ii8iPT09cz8oJD1uZXcgTEEoX19hc3NpZ24oX19hc3NpZ24oe30sJCkse25hbWU6Y2FwdHVyZVRhZ05hbWUoKX0pKSxMPTEyKToiPiI9PT1zPygkPW5ldyBMQShfX2Fzc2lnbihfX2Fzc2lnbih7fSwkKSx7bmFtZTpjYXB0dXJlVGFnTmFtZSgpfSkpLGVtaXRUYWdBbmRQcmV2aW91c1RleHROb2RlKCkpOnJBLnRlc3Qocyl8fG5BLnRlc3Qocyl8fCI6Ij09PXN8fHJlc2V0VG9EYXRhU3RhdGUoKX1mdW5jdGlvbiBzdGF0ZUVuZFRhZ09wZW4ocyl7Ij4iPT09cz9yZXNldFRvRGF0YVN0YXRlKCk6ckEudGVzdChzKT9MPTM6cmVzZXRUb0RhdGFTdGF0ZSgpfWZ1bmN0aW9uIHN0YXRlQmVmb3JlQXR0cmlidXRlTmFtZShzKXtvQS50ZXN0KHMpfHwoIi8iPT09cz9MPTEyOiI+Ij09PXM/ZW1pdFRhZ0FuZFByZXZpb3VzVGV4dE5vZGUoKToiPCI9PT1zP3N0YXJ0TmV3VGFnKCk6Ij0iPT09c3x8aUEudGVzdChzKXx8YUEudGVzdChzKT9yZXNldFRvRGF0YVN0YXRlKCk6TD01KX1mdW5jdGlvbiBzdGF0ZUF0dHJpYnV0ZU5hbWUocyl7b0EudGVzdChzKT9MPTY6Ii8iPT09cz9MPTEyOiI9Ij09PXM/TD03OiI+Ij09PXM/ZW1pdFRhZ0FuZFByZXZpb3VzVGV4dE5vZGUoKToiPCI9PT1zP3N0YXJ0TmV3VGFnKCk6aUEudGVzdChzKSYmcmVzZXRUb0RhdGFTdGF0ZSgpfWZ1bmN0aW9uIHN0YXRlQWZ0ZXJBdHRyaWJ1dGVOYW1lKHMpe29BLnRlc3Qocyl8fCgiLyI9PT1zP0w9MTI6Ij0iPT09cz9MPTc6Ij4iPT09cz9lbWl0VGFnQW5kUHJldmlvdXNUZXh0Tm9kZSgpOiI8Ij09PXM/c3RhcnROZXdUYWcoKTppQS50ZXN0KHMpP3Jlc2V0VG9EYXRhU3RhdGUoKTpMPTUpfWZ1bmN0aW9uIHN0YXRlQmVmb3JlQXR0cmlidXRlVmFsdWUocyl7b0EudGVzdChzKXx8KCciJz09PXM/TD04OiInIj09PXM/TD05Oi9bPj1gXS8udGVzdChzKT9yZXNldFRvRGF0YVN0YXRlKCk6IjwiPT09cz9zdGFydE5ld1RhZygpOkw9MTApfWZ1bmN0aW9uIHN0YXRlQXR0cmlidXRlVmFsdWVEb3VibGVRdW90ZWQocyl7JyInPT09cyYmKEw9MTEpfWZ1bmN0aW9uIHN0YXRlQXR0cmlidXRlVmFsdWVTaW5nbGVRdW90ZWQocyl7IiciPT09cyYmKEw9MTEpfWZ1bmN0aW9uIHN0YXRlQXR0cmlidXRlVmFsdWVVbnF1b3RlZChzKXtvQS50ZXN0KHMpP0w9NDoiPiI9PT1zP2VtaXRUYWdBbmRQcmV2aW91c1RleHROb2RlKCk6IjwiPT09cyYmc3RhcnROZXdUYWcoKX1mdW5jdGlvbiBzdGF0ZUFmdGVyQXR0cmlidXRlVmFsdWVRdW90ZWQocyl7b0EudGVzdChzKT9MPTQ6Ii8iPT09cz9MPTEyOiI+Ij09PXM/ZW1pdFRhZ0FuZFByZXZpb3VzVGV4dE5vZGUoKToiPCI9PT1zP3N0YXJ0TmV3VGFnKCk6KEw9NCxmdW5jdGlvbiByZWNvbnN1bWVDdXJyZW50Q2hhcmFjdGVyKCl7Qy0tfSgpKX1mdW5jdGlvbiBzdGF0ZVNlbGZDbG9zaW5nU3RhcnRUYWcocyl7Ij4iPT09cz8oJD1uZXcgTEEoX19hc3NpZ24oX19hc3NpZ24oe30sJCkse2lzQ2xvc2luZzohMH0pKSxlbWl0VGFnQW5kUHJldmlvdXNUZXh0Tm9kZSgpKTpMPTR9ZnVuY3Rpb24gc3RhdGVNYXJrdXBEZWNsYXJhdGlvbk9wZW4obyl7Ii0tIj09PXMuc3Vic3RyKEMsMik/KEMrPTIsJD1uZXcgTEEoX19hc3NpZ24oX19hc3NpZ24oe30sJCkse3R5cGU6ImNvbW1lbnQifSkpLEw9MTQpOiJET0NUWVBFIj09PXMuc3Vic3RyKEMsNykudG9VcHBlckNhc2UoKT8oQys9NywkPW5ldyBMQShfX2Fzc2lnbihfX2Fzc2lnbih7fSwkKSx7dHlwZToiZG9jdHlwZSJ9KSksTD0yMCk6cmVzZXRUb0RhdGFTdGF0ZSgpfWZ1bmN0aW9uIHN0YXRlQ29tbWVudFN0YXJ0KHMpeyItIj09PXM/TD0xNToiPiI9PT1zP3Jlc2V0VG9EYXRhU3RhdGUoKTpMPTE2fWZ1bmN0aW9uIHN0YXRlQ29tbWVudFN0YXJ0RGFzaChzKXsiLSI9PT1zP0w9MTg6Ij4iPT09cz9yZXNldFRvRGF0YVN0YXRlKCk6TD0xNn1mdW5jdGlvbiBzdGF0ZUNvbW1lbnQocyl7Ii0iPT09cyYmKEw9MTcpfWZ1bmN0aW9uIHN0YXRlQ29tbWVudEVuZERhc2gocyl7TD0iLSI9PT1zPzE4OjE2fWZ1bmN0aW9uIHN0YXRlQ29tbWVudEVuZChzKXsiPiI9PT1zP2VtaXRUYWdBbmRQcmV2aW91c1RleHROb2RlKCk6IiEiPT09cz9MPTE5OiItIj09PXN8fChMPTE2KX1mdW5jdGlvbiBzdGF0ZUNvbW1lbnRFbmRCYW5nKHMpeyItIj09PXM/TD0xNzoiPiI9PT1zP2VtaXRUYWdBbmRQcmV2aW91c1RleHROb2RlKCk6TD0xNn1mdW5jdGlvbiBzdGF0ZURvY3R5cGUocyl7Ij4iPT09cz9lbWl0VGFnQW5kUHJldmlvdXNUZXh0Tm9kZSgpOiI8Ij09PXMmJnN0YXJ0TmV3VGFnKCl9ZnVuY3Rpb24gcmVzZXRUb0RhdGFTdGF0ZSgpe0w9MCwkPXh9ZnVuY3Rpb24gc3RhcnROZXdUYWcoKXtMPTEsJD1uZXcgTEEoe2lkeDpDfSl9ZnVuY3Rpb24gZW1pdFRhZ0FuZFByZXZpb3VzVGV4dE5vZGUoKXt2YXIgbz1zLnNsaWNlKEIsJC5pZHgpO28mJnUobyxCKSwiY29tbWVudCI9PT0kLnR5cGU/XygkLmlkeCk6ImRvY3R5cGUiPT09JC50eXBlP3coJC5pZHgpOigkLmlzT3BlbmluZyYmaSgkLm5hbWUsJC5pZHgpLCQuaXNDbG9zaW5nJiZhKCQubmFtZSwkLmlkeCkpLHJlc2V0VG9EYXRhU3RhdGUoKSxCPUMrMX1mdW5jdGlvbiBjYXB0dXJlVGFnTmFtZSgpe3ZhciBvPSQuaWR4KygkLmlzQ2xvc2luZz8yOjEpO3JldHVybiBzLnNsaWNlKG8sQykudG9Mb3dlckNhc2UoKX1CPEMmJmZ1bmN0aW9uIGVtaXRUZXh0KCl7dmFyIG89cy5zbGljZShCLEMpO3UobyxCKSxCPUMrMX0oKX12YXIgTEE9ZnVuY3Rpb24gTEEocyl7dm9pZCAwPT09cyYmKHM9e30pLHRoaXMuaWR4PXZvaWQgMCE9PXMuaWR4P3MuaWR4Oi0xLHRoaXMudHlwZT1zLnR5cGV8fCJ0YWciLHRoaXMubmFtZT1zLm5hbWV8fCIiLHRoaXMuaXNPcGVuaW5nPSEhcy5pc09wZW5pbmcsdGhpcy5pc0Nsb3Npbmc9ISFzLmlzQ2xvc2luZ30sRkE9ZnVuY3Rpb24oKXtmdW5jdGlvbiBBdXRvbGlua2VyKHMpe3ZvaWQgMD09PXMmJihzPXt9KSx0aGlzLnZlcnNpb249QXV0b2xpbmtlci52ZXJzaW9uLHRoaXMudXJscz17fSx0aGlzLmVtYWlsPSEwLHRoaXMucGhvbmU9ITAsdGhpcy5oYXNodGFnPSExLHRoaXMubWVudGlvbj0hMSx0aGlzLm5ld1dpbmRvdz0hMCx0aGlzLnN0cmlwUHJlZml4PXtzY2hlbWU6ITAsd3d3OiEwfSx0aGlzLnN0cmlwVHJhaWxpbmdTbGFzaD0hMCx0aGlzLmRlY29kZVBlcmNlbnRFbmNvZGluZz0hMCx0aGlzLnRydW5jYXRlPXtsZW5ndGg6MCxsb2NhdGlvbjoiZW5kIn0sdGhpcy5jbGFzc05hbWU9IiIsdGhpcy5yZXBsYWNlRm49bnVsbCx0aGlzLmNvbnRleHQ9dm9pZCAwLHRoaXMuc2FuaXRpemVIdG1sPSExLHRoaXMubWF0Y2hlcnM9bnVsbCx0aGlzLnRhZ0J1aWxkZXI9bnVsbCx0aGlzLnVybHM9dGhpcy5ub3JtYWxpemVVcmxzQ2ZnKHMudXJscyksdGhpcy5lbWFpbD0iYm9vbGVhbiI9PXR5cGVvZiBzLmVtYWlsP3MuZW1haWw6dGhpcy5lbWFpbCx0aGlzLnBob25lPSJib29sZWFuIj09dHlwZW9mIHMucGhvbmU/cy5waG9uZTp0aGlzLnBob25lLHRoaXMuaGFzaHRhZz1zLmhhc2h0YWd8fHRoaXMuaGFzaHRhZyx0aGlzLm1lbnRpb249cy5tZW50aW9ufHx0aGlzLm1lbnRpb24sdGhpcy5uZXdXaW5kb3c9ImJvb2xlYW4iPT10eXBlb2Ygcy5uZXdXaW5kb3c/cy5uZXdXaW5kb3c6dGhpcy5uZXdXaW5kb3csdGhpcy5zdHJpcFByZWZpeD10aGlzLm5vcm1hbGl6ZVN0cmlwUHJlZml4Q2ZnKHMuc3RyaXBQcmVmaXgpLHRoaXMuc3RyaXBUcmFpbGluZ1NsYXNoPSJib29sZWFuIj09dHlwZW9mIHMuc3RyaXBUcmFpbGluZ1NsYXNoP3Muc3RyaXBUcmFpbGluZ1NsYXNoOnRoaXMuc3RyaXBUcmFpbGluZ1NsYXNoLHRoaXMuZGVjb2RlUGVyY2VudEVuY29kaW5nPSJib29sZWFuIj09dHlwZW9mIHMuZGVjb2RlUGVyY2VudEVuY29kaW5nP3MuZGVjb2RlUGVyY2VudEVuY29kaW5nOnRoaXMuZGVjb2RlUGVyY2VudEVuY29kaW5nLHRoaXMuc2FuaXRpemVIdG1sPXMuc2FuaXRpemVIdG1sfHwhMTt2YXIgbz10aGlzLm1lbnRpb247aWYoITEhPT1vJiYtMT09PVsidHdpdHRlciIsImluc3RhZ3JhbSIsInNvdW5kY2xvdWQiLCJ0aWt0b2siXS5pbmRleE9mKG8pKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBgbWVudGlvbmAgY2ZnICciLmNvbmNhdChvLCInIC0gc2VlIGRvY3MiKSk7dmFyIGk9dGhpcy5oYXNodGFnO2lmKCExIT09aSYmLTE9PT1BQS5pbmRleE9mKGkpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBgaGFzaHRhZ2AgY2ZnICciLmNvbmNhdChpLCInIC0gc2VlIGRvY3MiKSk7dGhpcy50cnVuY2F0ZT10aGlzLm5vcm1hbGl6ZVRydW5jYXRlQ2ZnKHMudHJ1bmNhdGUpLHRoaXMuY2xhc3NOYW1lPXMuY2xhc3NOYW1lfHx0aGlzLmNsYXNzTmFtZSx0aGlzLnJlcGxhY2VGbj1zLnJlcGxhY2VGbnx8dGhpcy5yZXBsYWNlRm4sdGhpcy5jb250ZXh0PXMuY29udGV4dHx8dGhpc31yZXR1cm4gQXV0b2xpbmtlci5saW5rPWZ1bmN0aW9uKHMsbyl7cmV0dXJuIG5ldyBBdXRvbGlua2VyKG8pLmxpbmsocyl9LEF1dG9saW5rZXIucGFyc2U9ZnVuY3Rpb24ocyxvKXtyZXR1cm4gbmV3IEF1dG9saW5rZXIobykucGFyc2Uocyl9LEF1dG9saW5rZXIucHJvdG90eXBlLm5vcm1hbGl6ZVVybHNDZmc9ZnVuY3Rpb24ocyl7cmV0dXJuIG51bGw9PXMmJihzPSEwKSwiYm9vbGVhbiI9PXR5cGVvZiBzP3tzY2hlbWVNYXRjaGVzOnMsd3d3TWF0Y2hlczpzLHRsZE1hdGNoZXM6c306e3NjaGVtZU1hdGNoZXM6ImJvb2xlYW4iIT10eXBlb2Ygcy5zY2hlbWVNYXRjaGVzfHxzLnNjaGVtZU1hdGNoZXMsd3d3TWF0Y2hlczoiYm9vbGVhbiIhPXR5cGVvZiBzLnd3d01hdGNoZXN8fHMud3d3TWF0Y2hlcyx0bGRNYXRjaGVzOiJib29sZWFuIiE9dHlwZW9mIHMudGxkTWF0Y2hlc3x8cy50bGRNYXRjaGVzfX0sQXV0b2xpbmtlci5wcm90b3R5cGUubm9ybWFsaXplU3RyaXBQcmVmaXhDZmc9ZnVuY3Rpb24ocyl7cmV0dXJuIG51bGw9PXMmJihzPSEwKSwiYm9vbGVhbiI9PXR5cGVvZiBzP3tzY2hlbWU6cyx3d3c6c306e3NjaGVtZToiYm9vbGVhbiIhPXR5cGVvZiBzLnNjaGVtZXx8cy5zY2hlbWUsd3d3OiJib29sZWFuIiE9dHlwZW9mIHMud3d3fHxzLnd3d319LEF1dG9saW5rZXIucHJvdG90eXBlLm5vcm1hbGl6ZVRydW5jYXRlQ2ZnPWZ1bmN0aW9uKHMpe3JldHVybiJudW1iZXIiPT10eXBlb2Ygcz97bGVuZ3RoOnMsbG9jYXRpb246ImVuZCJ9OmZ1bmN0aW9uIGRlZmF1bHRzKHMsbyl7Zm9yKHZhciBpIGluIG8pby5oYXNPd25Qcm9wZXJ0eShpKSYmdm9pZCAwPT09c1tpXSYmKHNbaV09b1tpXSk7cmV0dXJuIHN9KHN8fHt9LHtsZW5ndGg6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGxvY2F0aW9uOiJlbmQifSl9LEF1dG9saW5rZXIucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKHMpe3ZhciBvPXRoaXMsaT1bImEiLCJzdHlsZSIsInNjcmlwdCJdLGE9MCx1PVtdO3JldHVybiBwYXJzZUh0bWwocyx7b25PcGVuVGFnOmZ1bmN0aW9uKHMpe2kuaW5kZXhPZihzKT49MCYmYSsrfSxvblRleHQ6ZnVuY3Rpb24ocyxpKXtpZigwPT09YSl7dmFyIF89ZnVuY3Rpb24gc3BsaXRBbmRDYXB0dXJlKHMsbyl7aWYoIW8uZ2xvYmFsKXRocm93IG5ldyBFcnJvcigiYHNwbGl0UmVnZXhgIG11c3QgaGF2ZSB0aGUgJ2cnIGZsYWcgc2V0Iik7Zm9yKHZhciBpLGE9W10sdT0wO2k9by5leGVjKHMpOylhLnB1c2gocy5zdWJzdHJpbmcodSxpLmluZGV4KSksYS5wdXNoKGlbMF0pLHU9aS5pbmRleCtpWzBdLmxlbmd0aDtyZXR1cm4gYS5wdXNoKHMuc3Vic3RyaW5nKHUpKSxhfShzLC8oJm5ic3A7fCYjMTYwO3wmbHQ7fCYjNjA7fCZndDt8JiM2Mjt8JnF1b3Q7fCYjMzQ7fCYjMzk7KS9naSksdz1pO18uZm9yRWFjaCgoZnVuY3Rpb24ocyxpKXtpZihpJTI9PTApe3ZhciBhPW8ucGFyc2VUZXh0KHMsdyk7dS5wdXNoLmFwcGx5KHUsYSl9dys9cy5sZW5ndGh9KSl9fSxvbkNsb3NlVGFnOmZ1bmN0aW9uKHMpe2kuaW5kZXhPZihzKT49MCYmKGE9TWF0aC5tYXgoYS0xLDApKX0sb25Db21tZW50OmZ1bmN0aW9uKHMpe30sb25Eb2N0eXBlOmZ1bmN0aW9uKHMpe319KSx1PXRoaXMuY29tcGFjdE1hdGNoZXModSksdT10aGlzLnJlbW92ZVVud2FudGVkTWF0Y2hlcyh1KX0sQXV0b2xpbmtlci5wcm90b3R5cGUuY29tcGFjdE1hdGNoZXM9ZnVuY3Rpb24ocyl7cy5zb3J0KChmdW5jdGlvbihzLG8pe3JldHVybiBzLmdldE9mZnNldCgpLW8uZ2V0T2Zmc2V0KCl9KSk7Zm9yKHZhciBvPTA7bzxzLmxlbmd0aC0xOyl7dmFyIGk9c1tvXSxhPWkuZ2V0T2Zmc2V0KCksdT1pLmdldE1hdGNoZWRUZXh0KCkubGVuZ3RoLF89YSt1O2lmKG8rMTxzLmxlbmd0aCl7aWYoc1tvKzFdLmdldE9mZnNldCgpPT09YSl7dmFyIHc9c1tvKzFdLmdldE1hdGNoZWRUZXh0KCkubGVuZ3RoPnU/bzpvKzE7cy5zcGxpY2UodywxKTtjb250aW51ZX1pZihzW28rMV0uZ2V0T2Zmc2V0KCk8Xyl7cy5zcGxpY2UobysxLDEpO2NvbnRpbnVlfX1vKyt9cmV0dXJuIHN9LEF1dG9saW5rZXIucHJvdG90eXBlLnJlbW92ZVVud2FudGVkTWF0Y2hlcz1mdW5jdGlvbihzKXtyZXR1cm4gdGhpcy5oYXNodGFnfHx1dGlsc19yZW1vdmUocywoZnVuY3Rpb24ocyl7cmV0dXJuImhhc2h0YWciPT09cy5nZXRUeXBlKCl9KSksdGhpcy5lbWFpbHx8dXRpbHNfcmVtb3ZlKHMsKGZ1bmN0aW9uKHMpe3JldHVybiJlbWFpbCI9PT1zLmdldFR5cGUoKX0pKSx0aGlzLnBob25lfHx1dGlsc19yZW1vdmUocywoZnVuY3Rpb24ocyl7cmV0dXJuInBob25lIj09PXMuZ2V0VHlwZSgpfSkpLHRoaXMubWVudGlvbnx8dXRpbHNfcmVtb3ZlKHMsKGZ1bmN0aW9uKHMpe3JldHVybiJtZW50aW9uIj09PXMuZ2V0VHlwZSgpfSkpLHRoaXMudXJscy5zY2hlbWVNYXRjaGVzfHx1dGlsc19yZW1vdmUocywoZnVuY3Rpb24ocyl7cmV0dXJuInVybCI9PT1zLmdldFR5cGUoKSYmInNjaGVtZSI9PT1zLmdldFVybE1hdGNoVHlwZSgpfSkpLHRoaXMudXJscy53d3dNYXRjaGVzfHx1dGlsc19yZW1vdmUocywoZnVuY3Rpb24ocyl7cmV0dXJuInVybCI9PT1zLmdldFR5cGUoKSYmInd3dyI9PT1zLmdldFVybE1hdGNoVHlwZSgpfSkpLHRoaXMudXJscy50bGRNYXRjaGVzfHx1dGlsc19yZW1vdmUocywoZnVuY3Rpb24ocyl7cmV0dXJuInVybCI9PT1zLmdldFR5cGUoKSYmInRsZCI9PT1zLmdldFVybE1hdGNoVHlwZSgpfSkpLHN9LEF1dG9saW5rZXIucHJvdG90eXBlLnBhcnNlVGV4dD1mdW5jdGlvbihzLG8pe3ZvaWQgMD09PW8mJihvPTApLG89b3x8MDtmb3IodmFyIGk9dGhpcy5nZXRNYXRjaGVycygpLGE9W10sdT0wLF89aS5sZW5ndGg7dTxfO3UrKyl7Zm9yKHZhciB3PWlbdV0ucGFyc2VNYXRjaGVzKHMpLHg9MCxDPXcubGVuZ3RoO3g8Qzt4Kyspd1t4XS5zZXRPZmZzZXQobyt3W3hdLmdldE9mZnNldCgpKTthLnB1c2guYXBwbHkoYSx3KX1yZXR1cm4gYX0sQXV0b2xpbmtlci5wcm90b3R5cGUubGluaz1mdW5jdGlvbihzKXtpZighcylyZXR1cm4iIjt0aGlzLnNhbml0aXplSHRtbCYmKHM9cy5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKSk7Zm9yKHZhciBvPXRoaXMucGFyc2UocyksaT1bXSxhPTAsdT0wLF89by5sZW5ndGg7dTxfO3UrKyl7dmFyIHc9b1t1XTtpLnB1c2gocy5zdWJzdHJpbmcoYSx3LmdldE9mZnNldCgpKSksaS5wdXNoKHRoaXMuY3JlYXRlTWF0Y2hSZXR1cm5WYWwodykpLGE9dy5nZXRPZmZzZXQoKSt3LmdldE1hdGNoZWRUZXh0KCkubGVuZ3RofXJldHVybiBpLnB1c2gocy5zdWJzdHJpbmcoYSkpLGkuam9pbigiIil9LEF1dG9saW5rZXIucHJvdG90eXBlLmNyZWF0ZU1hdGNoUmV0dXJuVmFsPWZ1bmN0aW9uKHMpe3ZhciBvO3JldHVybiB0aGlzLnJlcGxhY2VGbiYmKG89dGhpcy5yZXBsYWNlRm4uY2FsbCh0aGlzLmNvbnRleHQscykpLCJzdHJpbmciPT10eXBlb2Ygbz9vOiExPT09bz9zLmdldE1hdGNoZWRUZXh0KCk6byBpbnN0YW5jZW9mIEpDP28udG9BbmNob3JTdHJpbmcoKTpzLmJ1aWxkVGFnKCkudG9BbmNob3JTdHJpbmcoKX0sQXV0b2xpbmtlci5wcm90b3R5cGUuZ2V0TWF0Y2hlcnM9ZnVuY3Rpb24oKXtpZih0aGlzLm1hdGNoZXJzKXJldHVybiB0aGlzLm1hdGNoZXJzO3ZhciBzPXRoaXMuZ2V0VGFnQnVpbGRlcigpLG89W25ldyBDQSh7dGFnQnVpbGRlcjpzLHNlcnZpY2VOYW1lOnRoaXMuaGFzaHRhZ30pLG5ldyBfQSh7dGFnQnVpbGRlcjpzfSksbmV3IFBBKHt0YWdCdWlsZGVyOnN9KSxuZXcgREEoe3RhZ0J1aWxkZXI6cyxzZXJ2aWNlTmFtZTp0aGlzLm1lbnRpb259KSxuZXcga0Eoe3RhZ0J1aWxkZXI6cyxzdHJpcFByZWZpeDp0aGlzLnN0cmlwUHJlZml4LHN0cmlwVHJhaWxpbmdTbGFzaDp0aGlzLnN0cmlwVHJhaWxpbmdTbGFzaCxkZWNvZGVQZXJjZW50RW5jb2Rpbmc6dGhpcy5kZWNvZGVQZXJjZW50RW5jb2Rpbmd9KV07cmV0dXJuIHRoaXMubWF0Y2hlcnM9b30sQXV0b2xpbmtlci5wcm90b3R5cGUuZ2V0VGFnQnVpbGRlcj1mdW5jdGlvbigpe3ZhciBzPXRoaXMudGFnQnVpbGRlcjtyZXR1cm4gc3x8KHM9dGhpcy50YWdCdWlsZGVyPW5ldyBIQyh7bmV3V2luZG93OnRoaXMubmV3V2luZG93LHRydW5jYXRlOnRoaXMudHJ1bmNhdGUsY2xhc3NOYW1lOnRoaXMuY2xhc3NOYW1lfSkpLHN9LEF1dG9saW5rZXIudmVyc2lvbj0iMy4xNi4yIixBdXRvbGlua2VyLkFuY2hvclRhZ0J1aWxkZXI9SEMsQXV0b2xpbmtlci5IdG1sVGFnPUpDLEF1dG9saW5rZXIubWF0Y2hlcj17RW1haWw6X0EsSGFzaHRhZzpDQSxNYXRjaGVyOnRBLE1lbnRpb246REEsUGhvbmU6UEEsVXJsOmtBfSxBdXRvbGlua2VyLm1hdGNoPXtFbWFpbDpZQyxIYXNodGFnOlhDLE1hdGNoOktDLE1lbnRpb246UUMsUGhvbmU6WkMsVXJsOmVBfSxBdXRvbGlua2VyfSgpO2NvbnN0IEJBPUZBO3ZhciAkQT0vd3d3fEB8XDpcL1wvLztmdW5jdGlvbiBpc0xpbmtPcGVuKHMpe3JldHVybi9ePGFbPlxzXS9pLnRlc3Qocyl9ZnVuY3Rpb24gaXNMaW5rQ2xvc2Uocyl7cmV0dXJuL148XC9hXHMqPi9pLnRlc3Qocyl9ZnVuY3Rpb24gY3JlYXRlTGlua2lmaWVyKCl7dmFyIHM9W10sbz1uZXcgQkEoe3N0cmlwUHJlZml4OiExLHVybDohMCxlbWFpbDohMCxyZXBsYWNlRm46ZnVuY3Rpb24obyl7c3dpdGNoKG8uZ2V0VHlwZSgpKXtjYXNlInVybCI6cy5wdXNoKHt0ZXh0Om8ubWF0Y2hlZFRleHQsdXJsOm8uZ2V0VXJsKCl9KTticmVhaztjYXNlImVtYWlsIjpzLnB1c2goe3RleHQ6by5tYXRjaGVkVGV4dCx1cmw6Im1haWx0bzoiK28uZ2V0RW1haWwoKS5yZXBsYWNlKC9ebWFpbHRvOi9pLCIiKX0pfXJldHVybiExfX0pO3JldHVybntsaW5rczpzLGF1dG9saW5rZXI6b319ZnVuY3Rpb24gcGFyc2VUb2tlbnMocyl7dmFyIG8saSxhLHUsXyx3LHgsQyxqLEwsQiwkLFYsVT1zLnRva2Vucyx6PW51bGw7Zm9yKGk9MCxhPVUubGVuZ3RoO2k8YTtpKyspaWYoImlubGluZSI9PT1VW2ldLnR5cGUpZm9yKEI9MCxvPSh1PVVbaV0uY2hpbGRyZW4pLmxlbmd0aC0xO28+PTA7by0tKWlmKCJsaW5rX2Nsb3NlIiE9PShfPXVbb10pLnR5cGUpe2lmKCJodG1sdGFnIj09PV8udHlwZSYmKGlzTGlua09wZW4oXy5jb250ZW50KSYmQj4wJiZCLS0saXNMaW5rQ2xvc2UoXy5jb250ZW50KSYmQisrKSwhKEI+MCkmJiJ0ZXh0Ij09PV8udHlwZSYmJEEudGVzdChfLmNvbnRlbnQpKXtpZih6fHwoJD0oej1jcmVhdGVMaW5raWZpZXIoKSkubGlua3MsVj16LmF1dG9saW5rZXIpLHc9Xy5jb250ZW50LCQubGVuZ3RoPTAsVi5saW5rKHcpLCEkLmxlbmd0aCljb250aW51ZTtmb3IoeD1bXSxMPV8ubGV2ZWwsQz0wO0M8JC5sZW5ndGg7QysrKXMuaW5saW5lLnZhbGlkYXRlTGluaygkW0NdLnVybCkmJigoaj13LmluZGV4T2YoJFtDXS50ZXh0KSkmJngucHVzaCh7dHlwZToidGV4dCIsY29udGVudDp3LnNsaWNlKDAsaiksbGV2ZWw6TH0pLHgucHVzaCh7dHlwZToibGlua19vcGVuIixocmVmOiRbQ10udXJsLHRpdGxlOiIiLGxldmVsOkwrK30pLHgucHVzaCh7dHlwZToidGV4dCIsY29udGVudDokW0NdLnRleHQsbGV2ZWw6TH0pLHgucHVzaCh7dHlwZToibGlua19jbG9zZSIsbGV2ZWw6LS1MfSksdz13LnNsaWNlKGorJFtDXS50ZXh0Lmxlbmd0aCkpO3cubGVuZ3RoJiZ4LnB1c2goe3R5cGU6InRleHQiLGNvbnRlbnQ6dyxsZXZlbDpMfSksVVtpXS5jaGlsZHJlbj11PVtdLmNvbmNhdCh1LnNsaWNlKDAsbykseCx1LnNsaWNlKG8rMSkpfX1lbHNlIGZvcihvLS07dVtvXS5sZXZlbCE9PV8ubGV2ZWwmJiJsaW5rX29wZW4iIT09dVtvXS50eXBlOylvLS19ZnVuY3Rpb24gbGlua2lmeShzKXtzLmNvcmUucnVsZXIucHVzaCgibGlua2lmeSIscGFyc2VUb2tlbnMpfWNvbnN0e2VudHJpZXM6cUEsc2V0UHJvdG90eXBlT2Y6VkEsaXNGcm96ZW46VUEsZ2V0UHJvdG90eXBlT2Y6ekEsZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOldBfT1PYmplY3Q7bGV0e2ZyZWV6ZTpKQSxzZWFsOkhBLGNyZWF0ZTpLQX09T2JqZWN0LHthcHBseTpHQSxjb25zdHJ1Y3Q6WUF9PSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdDtKQXx8KEpBPWZ1bmN0aW9uIGZyZWV6ZShzKXtyZXR1cm4gc30pLEhBfHwoSEE9ZnVuY3Rpb24gc2VhbChzKXtyZXR1cm4gc30pLEdBfHwoR0E9ZnVuY3Rpb24gYXBwbHkocyxvLGkpe3JldHVybiBzLmFwcGx5KG8saSl9KSxZQXx8KFlBPWZ1bmN0aW9uIGNvbnN0cnVjdChzLG8pe3JldHVybiBuZXcgcyguLi5vKX0pO2NvbnN0IFhBPXVuYXBwbHkoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpLFFBPXVuYXBwbHkoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKSxaQT11bmFwcGx5KEFycmF5LnByb3RvdHlwZS5wb3ApLGVqPXVuYXBwbHkoQXJyYXkucHJvdG90eXBlLnB1c2gpLGZqPXVuYXBwbHkoQXJyYXkucHJvdG90eXBlLnNwbGljZSksbWo9dW5hcHBseShTdHJpbmcucHJvdG90eXBlLnRvTG93ZXJDYXNlKSxfaj11bmFwcGx5KFN0cmluZy5wcm90b3R5cGUudG9TdHJpbmcpLENqPXVuYXBwbHkoU3RyaW5nLnByb3RvdHlwZS5tYXRjaCksQWo9dW5hcHBseShTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UpLE5qPXVuYXBwbHkoU3RyaW5nLnByb3RvdHlwZS5pbmRleE9mKSxCaj11bmFwcGx5KFN0cmluZy5wcm90b3R5cGUudHJpbSksJGo9dW5hcHBseShPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5KSx6aj11bmFwcGx5KFJlZ0V4cC5wcm90b3R5cGUudGVzdCksSmo9ZnVuY3Rpb24gdW5jb25zdHJ1Y3Qocyl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBvPWFyZ3VtZW50cy5sZW5ndGgsaT1uZXcgQXJyYXkobyksYT0wO2E8bzthKyspaVthXT1hcmd1bWVudHNbYV07cmV0dXJuIFlBKHMsaSl9fShUeXBlRXJyb3IpO2Z1bmN0aW9uIHVuYXBwbHkocyl7cmV0dXJuIGZ1bmN0aW9uKG8pe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KGk+MT9pLTE6MCksdT0xO3U8aTt1KyspYVt1LTFdPWFyZ3VtZW50c1t1XTtyZXR1cm4gR0EocyxvLGEpfX1mdW5jdGlvbiBhZGRUb1NldChzLG8pe2xldCBpPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTptajtWQSYmVkEocyxudWxsKTtsZXQgYT1vLmxlbmd0aDtmb3IoO2EtLTspe2xldCB1PW9bYV07aWYoInN0cmluZyI9PXR5cGVvZiB1KXtjb25zdCBzPWkodSk7cyE9PXUmJihVQShvKXx8KG9bYV09cyksdT1zKX1zW3VdPSEwfXJldHVybiBzfWZ1bmN0aW9uIHB1cmlmeV9lc19jbGVhbkFycmF5KHMpe2ZvcihsZXQgbz0wO288cy5sZW5ndGg7bysrKXskaihzLG8pfHwoc1tvXT1udWxsKX1yZXR1cm4gc31mdW5jdGlvbiBjbG9uZShzKXtjb25zdCBvPUtBKG51bGwpO2Zvcihjb25zdFtpLGFdb2YgcUEocykpeyRqKHMsaSkmJihBcnJheS5pc0FycmF5KGEpP29baV09cHVyaWZ5X2VzX2NsZWFuQXJyYXkoYSk6YSYmIm9iamVjdCI9PXR5cGVvZiBhJiZhLmNvbnN0cnVjdG9yPT09T2JqZWN0P29baV09Y2xvbmUoYSk6b1tpXT1hKX1yZXR1cm4gb31mdW5jdGlvbiBsb29rdXBHZXR0ZXIocyxvKXtmb3IoO251bGwhPT1zOyl7Y29uc3QgaT1XQShzLG8pO2lmKGkpe2lmKGkuZ2V0KXJldHVybiB1bmFwcGx5KGkuZ2V0KTtpZigiZnVuY3Rpb24iPT10eXBlb2YgaS52YWx1ZSlyZXR1cm4gdW5hcHBseShpLnZhbHVlKX1zPXpBKHMpfXJldHVybiBmdW5jdGlvbiBmYWxsYmFja1ZhbHVlKCl7cmV0dXJuIG51bGx9fWNvbnN0IEtqPUpBKFsiYSIsImFiYnIiLCJhY3JvbnltIiwiYWRkcmVzcyIsImFyZWEiLCJhcnRpY2xlIiwiYXNpZGUiLCJhdWRpbyIsImIiLCJiZGkiLCJiZG8iLCJiaWciLCJibGluayIsImJsb2NrcXVvdGUiLCJib2R5IiwiYnIiLCJidXR0b24iLCJjYW52YXMiLCJjYXB0aW9uIiwiY2VudGVyIiwiY2l0ZSIsImNvZGUiLCJjb2wiLCJjb2xncm91cCIsImNvbnRlbnQiLCJkYXRhIiwiZGF0YWxpc3QiLCJkZCIsImRlY29yYXRvciIsImRlbCIsImRldGFpbHMiLCJkZm4iLCJkaWFsb2ciLCJkaXIiLCJkaXYiLCJkbCIsImR0IiwiZWxlbWVudCIsImVtIiwiZmllbGRzZXQiLCJmaWdjYXB0aW9uIiwiZmlndXJlIiwiZm9udCIsImZvb3RlciIsImZvcm0iLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJoZWFkIiwiaGVhZGVyIiwiaGdyb3VwIiwiaHIiLCJodG1sIiwiaSIsImltZyIsImlucHV0IiwiaW5zIiwia2JkIiwibGFiZWwiLCJsZWdlbmQiLCJsaSIsIm1haW4iLCJtYXAiLCJtYXJrIiwibWFycXVlZSIsIm1lbnUiLCJtZW51aXRlbSIsIm1ldGVyIiwibmF2Iiwibm9iciIsIm9sIiwib3B0Z3JvdXAiLCJvcHRpb24iLCJvdXRwdXQiLCJwIiwicGljdHVyZSIsInByZSIsInByb2dyZXNzIiwicSIsInJwIiwicnQiLCJydWJ5IiwicyIsInNhbXAiLCJzZWN0aW9uIiwic2VsZWN0Iiwic2hhZG93Iiwic21hbGwiLCJzb3VyY2UiLCJzcGFjZXIiLCJzcGFuIiwic3RyaWtlIiwic3Ryb25nIiwic3R5bGUiLCJzdWIiLCJzdW1tYXJ5Iiwic3VwIiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGVtcGxhdGUiLCJ0ZXh0YXJlYSIsInRmb290IiwidGgiLCJ0aGVhZCIsInRpbWUiLCJ0ciIsInRyYWNrIiwidHQiLCJ1IiwidWwiLCJ2YXIiLCJ2aWRlbyIsIndiciJdKSxHaj1KQShbInN2ZyIsImEiLCJhbHRnbHlwaCIsImFsdGdseXBoZGVmIiwiYWx0Z2x5cGhpdGVtIiwiYW5pbWF0ZWNvbG9yIiwiYW5pbWF0ZW1vdGlvbiIsImFuaW1hdGV0cmFuc2Zvcm0iLCJjaXJjbGUiLCJjbGlwcGF0aCIsImRlZnMiLCJkZXNjIiwiZWxsaXBzZSIsImZpbHRlciIsImZvbnQiLCJnIiwiZ2x5cGgiLCJnbHlwaHJlZiIsImhrZXJuIiwiaW1hZ2UiLCJsaW5lIiwibGluZWFyZ3JhZGllbnQiLCJtYXJrZXIiLCJtYXNrIiwibWV0YWRhdGEiLCJtcGF0aCIsInBhdGgiLCJwYXR0ZXJuIiwicG9seWdvbiIsInBvbHlsaW5lIiwicmFkaWFsZ3JhZGllbnQiLCJyZWN0Iiwic3RvcCIsInN0eWxlIiwic3dpdGNoIiwic3ltYm9sIiwidGV4dCIsInRleHRwYXRoIiwidGl0bGUiLCJ0cmVmIiwidHNwYW4iLCJ2aWV3Iiwidmtlcm4iXSksWGo9SkEoWyJmZUJsZW5kIiwiZmVDb2xvck1hdHJpeCIsImZlQ29tcG9uZW50VHJhbnNmZXIiLCJmZUNvbXBvc2l0ZSIsImZlQ29udm9sdmVNYXRyaXgiLCJmZURpZmZ1c2VMaWdodGluZyIsImZlRGlzcGxhY2VtZW50TWFwIiwiZmVEaXN0YW50TGlnaHQiLCJmZURyb3BTaGFkb3ciLCJmZUZsb29kIiwiZmVGdW5jQSIsImZlRnVuY0IiLCJmZUZ1bmNHIiwiZmVGdW5jUiIsImZlR2F1c3NpYW5CbHVyIiwiZmVJbWFnZSIsImZlTWVyZ2UiLCJmZU1lcmdlTm9kZSIsImZlTW9ycGhvbG9neSIsImZlT2Zmc2V0IiwiZmVQb2ludExpZ2h0IiwiZmVTcGVjdWxhckxpZ2h0aW5nIiwiZmVTcG90TGlnaHQiLCJmZVRpbGUiLCJmZVR1cmJ1bGVuY2UiXSksZVA9SkEoWyJhbmltYXRlIiwiY29sb3ItcHJvZmlsZSIsImN1cnNvciIsImRpc2NhcmQiLCJmb250LWZhY2UiLCJmb250LWZhY2UtZm9ybWF0IiwiZm9udC1mYWNlLW5hbWUiLCJmb250LWZhY2Utc3JjIiwiZm9udC1mYWNlLXVyaSIsImZvcmVpZ25vYmplY3QiLCJoYXRjaCIsImhhdGNocGF0aCIsIm1lc2giLCJtZXNoZ3JhZGllbnQiLCJtZXNocGF0Y2giLCJtZXNocm93IiwibWlzc2luZy1nbHlwaCIsInNjcmlwdCIsInNldCIsInNvbGlkY29sb3IiLCJ1bmtub3duIiwidXNlIl0pLHRQPUpBKFsibWF0aCIsIm1lbmNsb3NlIiwibWVycm9yIiwibWZlbmNlZCIsIm1mcmFjIiwibWdseXBoIiwibWkiLCJtbGFiZWxlZHRyIiwibW11bHRpc2NyaXB0cyIsIm1uIiwibW8iLCJtb3ZlciIsIm1wYWRkZWQiLCJtcGhhbnRvbSIsIm1yb290IiwibXJvdyIsIm1zIiwibXNwYWNlIiwibXNxcnQiLCJtc3R5bGUiLCJtc3ViIiwibXN1cCIsIm1zdWJzdXAiLCJtdGFibGUiLCJtdGQiLCJtdGV4dCIsIm10ciIsIm11bmRlciIsIm11bmRlcm92ZXIiLCJtcHJlc2NyaXB0cyJdKSxyUD1KQShbIm1hY3Rpb24iLCJtYWxpZ25ncm91cCIsIm1hbGlnbm1hcmsiLCJtbG9uZ2RpdiIsIm1zY2FycmllcyIsIm1zY2FycnkiLCJtc2dyb3VwIiwibXN0YWNrIiwibXNsaW5lIiwibXNyb3ciLCJzZW1hbnRpY3MiLCJhbm5vdGF0aW9uIiwiYW5ub3RhdGlvbi14bWwiLCJtcHJlc2NyaXB0cyIsIm5vbmUiXSksblA9SkEoWyIjdGV4dCJdKSxzUD1KQShbImFjY2VwdCIsImFjdGlvbiIsImFsaWduIiwiYWx0IiwiYXV0b2NhcGl0YWxpemUiLCJhdXRvY29tcGxldGUiLCJhdXRvcGljdHVyZWlucGljdHVyZSIsImF1dG9wbGF5IiwiYmFja2dyb3VuZCIsImJnY29sb3IiLCJib3JkZXIiLCJjYXB0dXJlIiwiY2VsbHBhZGRpbmciLCJjZWxsc3BhY2luZyIsImNoZWNrZWQiLCJjaXRlIiwiY2xhc3MiLCJjbGVhciIsImNvbG9yIiwiY29scyIsImNvbHNwYW4iLCJjb250cm9scyIsImNvbnRyb2xzbGlzdCIsImNvb3JkcyIsImNyb3Nzb3JpZ2luIiwiZGF0ZXRpbWUiLCJkZWNvZGluZyIsImRlZmF1bHQiLCJkaXIiLCJkaXNhYmxlZCIsImRpc2FibGVwaWN0dXJlaW5waWN0dXJlIiwiZGlzYWJsZXJlbW90ZXBsYXliYWNrIiwiZG93bmxvYWQiLCJkcmFnZ2FibGUiLCJlbmN0eXBlIiwiZW50ZXJrZXloaW50IiwiZmFjZSIsImZvciIsImhlYWRlcnMiLCJoZWlnaHQiLCJoaWRkZW4iLCJoaWdoIiwiaHJlZiIsImhyZWZsYW5nIiwiaWQiLCJpbnB1dG1vZGUiLCJpbnRlZ3JpdHkiLCJpc21hcCIsImtpbmQiLCJsYWJlbCIsImxhbmciLCJsaXN0IiwibG9hZGluZyIsImxvb3AiLCJsb3ciLCJtYXgiLCJtYXhsZW5ndGgiLCJtZWRpYSIsIm1ldGhvZCIsIm1pbiIsIm1pbmxlbmd0aCIsIm11bHRpcGxlIiwibXV0ZWQiLCJuYW1lIiwibm9uY2UiLCJub3NoYWRlIiwibm92YWxpZGF0ZSIsIm5vd3JhcCIsIm9wZW4iLCJvcHRpbXVtIiwicGF0dGVybiIsInBsYWNlaG9sZGVyIiwicGxheXNpbmxpbmUiLCJwb3BvdmVyIiwicG9wb3ZlcnRhcmdldCIsInBvcG92ZXJ0YXJnZXRhY3Rpb24iLCJwb3N0ZXIiLCJwcmVsb2FkIiwicHViZGF0ZSIsInJhZGlvZ3JvdXAiLCJyZWFkb25seSIsInJlbCIsInJlcXVpcmVkIiwicmV2IiwicmV2ZXJzZWQiLCJyb2xlIiwicm93cyIsInJvd3NwYW4iLCJzcGVsbGNoZWNrIiwic2NvcGUiLCJzZWxlY3RlZCIsInNoYXBlIiwic2l6ZSIsInNpemVzIiwic3BhbiIsInNyY2xhbmciLCJzdGFydCIsInNyYyIsInNyY3NldCIsInN0ZXAiLCJzdHlsZSIsInN1bW1hcnkiLCJ0YWJpbmRleCIsInRpdGxlIiwidHJhbnNsYXRlIiwidHlwZSIsInVzZW1hcCIsInZhbGlnbiIsInZhbHVlIiwid2lkdGgiLCJ3cmFwIiwieG1sbnMiLCJzbG90Il0pLG9QPUpBKFsiYWNjZW50LWhlaWdodCIsImFjY3VtdWxhdGUiLCJhZGRpdGl2ZSIsImFsaWdubWVudC1iYXNlbGluZSIsImFtcGxpdHVkZSIsImFzY2VudCIsImF0dHJpYnV0ZW5hbWUiLCJhdHRyaWJ1dGV0eXBlIiwiYXppbXV0aCIsImJhc2VmcmVxdWVuY3kiLCJiYXNlbGluZS1zaGlmdCIsImJlZ2luIiwiYmlhcyIsImJ5IiwiY2xhc3MiLCJjbGlwIiwiY2xpcHBhdGh1bml0cyIsImNsaXAtcGF0aCIsImNsaXAtcnVsZSIsImNvbG9yIiwiY29sb3ItaW50ZXJwb2xhdGlvbiIsImNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycyIsImNvbG9yLXByb2ZpbGUiLCJjb2xvci1yZW5kZXJpbmciLCJjeCIsImN5IiwiZCIsImR4IiwiZHkiLCJkaWZmdXNlY29uc3RhbnQiLCJkaXJlY3Rpb24iLCJkaXNwbGF5IiwiZGl2aXNvciIsImR1ciIsImVkZ2Vtb2RlIiwiZWxldmF0aW9uIiwiZW5kIiwiZXhwb25lbnQiLCJmaWxsIiwiZmlsbC1vcGFjaXR5IiwiZmlsbC1ydWxlIiwiZmlsdGVyIiwiZmlsdGVydW5pdHMiLCJmbG9vZC1jb2xvciIsImZsb29kLW9wYWNpdHkiLCJmb250LWZhbWlseSIsImZvbnQtc2l6ZSIsImZvbnQtc2l6ZS1hZGp1c3QiLCJmb250LXN0cmV0Y2giLCJmb250LXN0eWxlIiwiZm9udC12YXJpYW50IiwiZm9udC13ZWlnaHQiLCJmeCIsImZ5IiwiZzEiLCJnMiIsImdseXBoLW5hbWUiLCJnbHlwaHJlZiIsImdyYWRpZW50dW5pdHMiLCJncmFkaWVudHRyYW5zZm9ybSIsImhlaWdodCIsImhyZWYiLCJpZCIsImltYWdlLXJlbmRlcmluZyIsImluIiwiaW4yIiwiaW50ZXJjZXB0IiwiayIsImsxIiwiazIiLCJrMyIsIms0Iiwia2VybmluZyIsImtleXBvaW50cyIsImtleXNwbGluZXMiLCJrZXl0aW1lcyIsImxhbmciLCJsZW5ndGhhZGp1c3QiLCJsZXR0ZXItc3BhY2luZyIsImtlcm5lbG1hdHJpeCIsImtlcm5lbHVuaXRsZW5ndGgiLCJsaWdodGluZy1jb2xvciIsImxvY2FsIiwibWFya2VyLWVuZCIsIm1hcmtlci1taWQiLCJtYXJrZXItc3RhcnQiLCJtYXJrZXJoZWlnaHQiLCJtYXJrZXJ1bml0cyIsIm1hcmtlcndpZHRoIiwibWFza2NvbnRlbnR1bml0cyIsIm1hc2t1bml0cyIsIm1heCIsIm1hc2siLCJtZWRpYSIsIm1ldGhvZCIsIm1vZGUiLCJtaW4iLCJuYW1lIiwibnVtb2N0YXZlcyIsIm9mZnNldCIsIm9wZXJhdG9yIiwib3BhY2l0eSIsIm9yZGVyIiwib3JpZW50Iiwib3JpZW50YXRpb24iLCJvcmlnaW4iLCJvdmVyZmxvdyIsInBhaW50LW9yZGVyIiwicGF0aCIsInBhdGhsZW5ndGgiLCJwYXR0ZXJuY29udGVudHVuaXRzIiwicGF0dGVybnRyYW5zZm9ybSIsInBhdHRlcm51bml0cyIsInBvaW50cyIsInByZXNlcnZlYWxwaGEiLCJwcmVzZXJ2ZWFzcGVjdHJhdGlvIiwicHJpbWl0aXZldW5pdHMiLCJyIiwicngiLCJyeSIsInJhZGl1cyIsInJlZngiLCJyZWZ5IiwicmVwZWF0Y291bnQiLCJyZXBlYXRkdXIiLCJyZXN0YXJ0IiwicmVzdWx0Iiwicm90YXRlIiwic2NhbGUiLCJzZWVkIiwic2hhcGUtcmVuZGVyaW5nIiwic2xvcGUiLCJzcGVjdWxhcmNvbnN0YW50Iiwic3BlY3VsYXJleHBvbmVudCIsInNwcmVhZG1ldGhvZCIsInN0YXJ0b2Zmc2V0Iiwic3RkZGV2aWF0aW9uIiwic3RpdGNodGlsZXMiLCJzdG9wLWNvbG9yIiwic3RvcC1vcGFjaXR5Iiwic3Ryb2tlLWRhc2hhcnJheSIsInN0cm9rZS1kYXNob2Zmc2V0Iiwic3Ryb2tlLWxpbmVjYXAiLCJzdHJva2UtbGluZWpvaW4iLCJzdHJva2UtbWl0ZXJsaW1pdCIsInN0cm9rZS1vcGFjaXR5Iiwic3Ryb2tlIiwic3Ryb2tlLXdpZHRoIiwic3R5bGUiLCJzdXJmYWNlc2NhbGUiLCJzeXN0ZW1sYW5ndWFnZSIsInRhYmluZGV4IiwidGFibGV2YWx1ZXMiLCJ0YXJnZXR4IiwidGFyZ2V0eSIsInRyYW5zZm9ybSIsInRyYW5zZm9ybS1vcmlnaW4iLCJ0ZXh0LWFuY2hvciIsInRleHQtZGVjb3JhdGlvbiIsInRleHQtcmVuZGVyaW5nIiwidGV4dGxlbmd0aCIsInR5cGUiLCJ1MSIsInUyIiwidW5pY29kZSIsInZhbHVlcyIsInZpZXdib3giLCJ2aXNpYmlsaXR5IiwidmVyc2lvbiIsInZlcnQtYWR2LXkiLCJ2ZXJ0LW9yaWdpbi14IiwidmVydC1vcmlnaW4teSIsIndpZHRoIiwid29yZC1zcGFjaW5nIiwid3JhcCIsIndyaXRpbmctbW9kZSIsInhjaGFubmVsc2VsZWN0b3IiLCJ5Y2hhbm5lbHNlbGVjdG9yIiwieCIsIngxIiwieDIiLCJ4bWxucyIsInkiLCJ5MSIsInkyIiwieiIsInpvb21hbmRwYW4iXSksaVA9SkEoWyJhY2NlbnQiLCJhY2NlbnR1bmRlciIsImFsaWduIiwiYmV2ZWxsZWQiLCJjbG9zZSIsImNvbHVtbnNhbGlnbiIsImNvbHVtbmxpbmVzIiwiY29sdW1uc3BhbiIsImRlbm9tYWxpZ24iLCJkZXB0aCIsImRpciIsImRpc3BsYXkiLCJkaXNwbGF5c3R5bGUiLCJlbmNvZGluZyIsImZlbmNlIiwiZnJhbWUiLCJoZWlnaHQiLCJocmVmIiwiaWQiLCJsYXJnZW9wIiwibGVuZ3RoIiwibGluZXRoaWNrbmVzcyIsImxzcGFjZSIsImxxdW90ZSIsIm1hdGhiYWNrZ3JvdW5kIiwibWF0aGNvbG9yIiwibWF0aHNpemUiLCJtYXRodmFyaWFudCIsIm1heHNpemUiLCJtaW5zaXplIiwibW92YWJsZWxpbWl0cyIsIm5vdGF0aW9uIiwibnVtYWxpZ24iLCJvcGVuIiwicm93YWxpZ24iLCJyb3dsaW5lcyIsInJvd3NwYWNpbmciLCJyb3dzcGFuIiwicnNwYWNlIiwicnF1b3RlIiwic2NyaXB0bGV2ZWwiLCJzY3JpcHRtaW5zaXplIiwic2NyaXB0c2l6ZW11bHRpcGxpZXIiLCJzZWxlY3Rpb24iLCJzZXBhcmF0b3IiLCJzZXBhcmF0b3JzIiwic3RyZXRjaHkiLCJzdWJzY3JpcHRzaGlmdCIsInN1cHNjcmlwdHNoaWZ0Iiwic3ltbWV0cmljIiwidm9mZnNldCIsIndpZHRoIiwieG1sbnMiXSksYVA9SkEoWyJ4bGluazpocmVmIiwieG1sOmlkIiwieGxpbms6dGl0bGUiLCJ4bWw6c3BhY2UiLCJ4bWxuczp4bGluayJdKSxjUD1IQSgvXHtce1tcd1xXXSp8W1x3XFddKlx9XH0vZ20pLGxQPUhBKC88JVtcd1xXXSp8W1x3XFddKiU+L2dtKSx1UD1IQSgvXCRce1tcd1xXXSovZ20pLHBQPUhBKC9eZGF0YS1bXC1cdy5cdTAwQjctXHVGRkZGXSskLyksaFA9SEEoL15hcmlhLVtcLVx3XSskLyksZFA9SEEoL14oPzooPzooPzpmfGh0KXRwcz98bWFpbHRvfHRlbHxjYWxsdG98c21zfGNpZHx4bXBwKTp8W15hLXpdfFthLXorLlwtXSsoPzpbXmEteisuXC06XXwkKSkvaSksZlA9SEEoL14oPzpcdytzY3JpcHR8ZGF0YSk6L2kpLG1QPUhBKC9bXHUwMDAwLVx1MDAyMFx1MDBBMFx1MTY4MFx1MTgwRVx1MjAwMC1cdTIwMjlcdTIwNUZcdTMwMDBdL2cpLGdQPUhBKC9eaHRtbCQvaSkseVA9SEEoL15bYS16XVsuXHddKigtWy5cd10rKSskL2kpO3ZhciB2UD1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxBUklBX0FUVFI6aFAsQVRUUl9XSElURVNQQUNFOm1QLENVU1RPTV9FTEVNRU5UOnlQLERBVEFfQVRUUjpwUCxET0NUWVBFX05BTUU6Z1AsRVJCX0VYUFI6bFAsSVNfQUxMT1dFRF9VUkk6ZFAsSVNfU0NSSVBUX09SX0RBVEE6ZlAsTVVTVEFDSEVfRVhQUjpjUCxUTVBMSVRfRVhQUjp1UH0pO2NvbnN0IGJQPTEsX1A9MyxTUD03LEVQPTgsd1A9OSx4UD1mdW5jdGlvbiBnZXRHbG9iYWwoKXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdz9udWxsOndpbmRvd307dmFyIGtQPWZ1bmN0aW9uIGNyZWF0ZURPTVB1cmlmeSgpe2xldCBzPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp4UCgpO2NvbnN0IERPTVB1cmlmeT1zPT5jcmVhdGVET01QdXJpZnkocyk7aWYoRE9NUHVyaWZ5LnZlcnNpb249IjMuMi40IixET01QdXJpZnkucmVtb3ZlZD1bXSwhc3x8IXMuZG9jdW1lbnR8fHMuZG9jdW1lbnQubm9kZVR5cGUhPT13UHx8IXMuRWxlbWVudClyZXR1cm4gRE9NUHVyaWZ5LmlzU3VwcG9ydGVkPSExLERPTVB1cmlmeTtsZXR7ZG9jdW1lbnQ6b309cztjb25zdCBpPW8sYT1pLmN1cnJlbnRTY3JpcHQse0RvY3VtZW50RnJhZ21lbnQ6dSxIVE1MVGVtcGxhdGVFbGVtZW50Ol8sTm9kZTp3LEVsZW1lbnQ6eCxOb2RlRmlsdGVyOkMsTmFtZWROb2RlTWFwOmo9cy5OYW1lZE5vZGVNYXB8fHMuTW96TmFtZWRBdHRyTWFwLEhUTUxGb3JtRWxlbWVudDpMLERPTVBhcnNlcjpCLHRydXN0ZWRUeXBlczokfT1zLFY9eC5wcm90b3R5cGUsVT1sb29rdXBHZXR0ZXIoViwiY2xvbmVOb2RlIiksej1sb29rdXBHZXR0ZXIoViwicmVtb3ZlIiksWT1sb29rdXBHZXR0ZXIoViwibmV4dFNpYmxpbmciKSxaPWxvb2t1cEdldHRlcihWLCJjaGlsZE5vZGVzIiksZWU9bG9va3VwR2V0dGVyKFYsInBhcmVudE5vZGUiKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgXyl7Y29uc3Qgcz1vLmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7cy5jb250ZW50JiZzLmNvbnRlbnQub3duZXJEb2N1bWVudCYmKG89cy5jb250ZW50Lm93bmVyRG9jdW1lbnQpfWxldCBpZSxhZT0iIjtjb25zdHtpbXBsZW1lbnRhdGlvbjpjZSxjcmVhdGVOb2RlSXRlcmF0b3I6bGUsY3JlYXRlRG9jdW1lbnRGcmFnbWVudDpwZSxnZXRFbGVtZW50c0J5VGFnTmFtZTpkZX09byx7aW1wb3J0Tm9kZTpmZX09aTtsZXQgeWU9e2FmdGVyU2FuaXRpemVBdHRyaWJ1dGVzOltdLGFmdGVyU2FuaXRpemVFbGVtZW50czpbXSxhZnRlclNhbml0aXplU2hhZG93RE9NOltdLGJlZm9yZVNhbml0aXplQXR0cmlidXRlczpbXSxiZWZvcmVTYW5pdGl6ZUVsZW1lbnRzOltdLGJlZm9yZVNhbml0aXplU2hhZG93RE9NOltdLHVwb25TYW5pdGl6ZUF0dHJpYnV0ZTpbXSx1cG9uU2FuaXRpemVFbGVtZW50OltdLHVwb25TYW5pdGl6ZVNoYWRvd05vZGU6W119O0RPTVB1cmlmeS5pc1N1cHBvcnRlZD0iZnVuY3Rpb24iPT10eXBlb2YgcUEmJiJmdW5jdGlvbiI9PXR5cGVvZiBlZSYmY2UmJnZvaWQgMCE9PWNlLmNyZWF0ZUhUTUxEb2N1bWVudDtjb25zdHtNVVNUQUNIRV9FWFBSOmJlLEVSQl9FWFBSOl9lLFRNUExJVF9FWFBSOlNlLERBVEFfQVRUUjp3ZSxBUklBX0FUVFI6eGUsSVNfU0NSSVBUX09SX0RBVEE6UGUsQVRUUl9XSElURVNQQUNFOlRlLENVU1RPTV9FTEVNRU5UOlJlfT12UDtsZXR7SVNfQUxMT1dFRF9VUkk6JGV9PXZQLHFlPW51bGw7Y29uc3QgemU9YWRkVG9TZXQoe30sWy4uLktqLC4uLkdqLC4uLlhqLC4uLnRQLC4uLm5QXSk7bGV0IFdlPW51bGw7Y29uc3QgSGU9YWRkVG9TZXQoe30sWy4uLnNQLC4uLm9QLC4uLmlQLC4uLmFQXSk7bGV0IFllPU9iamVjdC5zZWFsKEtBKG51bGwse3RhZ05hbWVDaGVjazp7d3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITAsdmFsdWU6bnVsbH0sYXR0cmlidXRlTmFtZUNoZWNrOnt3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMCx2YWx1ZTpudWxsfSxhbGxvd0N1c3RvbWl6ZWRCdWlsdEluRWxlbWVudHM6e3dyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLHZhbHVlOiExfX0pKSxYZT1udWxsLFFlPW51bGwsZXQ9ITAsdHQ9ITAscnQ9ITEsbnQ9ITAsc3Q9ITEsb3Q9ITAsaXQ9ITEsYXQ9ITEsY3Q9ITEsbHQ9ITEsdXQ9ITEscHQ9ITEsaHQ9ITAsZHQ9ITEsbXQ9ITAsZ3Q9ITEseXQ9e30sdnQ9bnVsbDtjb25zdCBidD1hZGRUb1NldCh7fSxbImFubm90YXRpb24teG1sIiwiYXVkaW8iLCJjb2xncm91cCIsImRlc2MiLCJmb3JlaWdub2JqZWN0IiwiaGVhZCIsImlmcmFtZSIsIm1hdGgiLCJtaSIsIm1uIiwibW8iLCJtcyIsIm10ZXh0Iiwibm9lbWJlZCIsIm5vZnJhbWVzIiwibm9zY3JpcHQiLCJwbGFpbnRleHQiLCJzY3JpcHQiLCJzdHlsZSIsInN2ZyIsInRlbXBsYXRlIiwidGhlYWQiLCJ0aXRsZSIsInZpZGVvIiwieG1wIl0pO2xldCBfdD1udWxsO2NvbnN0IFN0PWFkZFRvU2V0KHt9LFsiYXVkaW8iLCJ2aWRlbyIsImltZyIsInNvdXJjZSIsImltYWdlIiwidHJhY2siXSk7bGV0IEV0PW51bGw7Y29uc3Qgd3Q9YWRkVG9TZXQoe30sWyJhbHQiLCJjbGFzcyIsImZvciIsImlkIiwibGFiZWwiLCJuYW1lIiwicGF0dGVybiIsInBsYWNlaG9sZGVyIiwicm9sZSIsInN1bW1hcnkiLCJ0aXRsZSIsInZhbHVlIiwic3R5bGUiLCJ4bWxucyJdKSx4dD0iaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCIsa3Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixPdD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI7bGV0IEN0PU90LEF0PSExLGp0PW51bGw7Y29uc3QgUHQ9YWRkVG9TZXQoe30sW3h0LGt0LE90XSxfaik7bGV0IEl0PWFkZFRvU2V0KHt9LFsibWkiLCJtbyIsIm1uIiwibXMiLCJtdGV4dCJdKSxUdD1hZGRUb1NldCh7fSxbImFubm90YXRpb24teG1sIl0pO2NvbnN0IE50PWFkZFRvU2V0KHt9LFsidGl0bGUiLCJzdHlsZSIsImZvbnQiLCJhIiwic2NyaXB0Il0pO2xldCBNdD1udWxsO2NvbnN0IFJ0PVsiYXBwbGljYXRpb24veGh0bWwreG1sIiwidGV4dC9odG1sIl07bGV0IER0PW51bGwsTHQ9bnVsbDtjb25zdCBGdD1vLmNyZWF0ZUVsZW1lbnQoImZvcm0iKSxCdD1mdW5jdGlvbiBpc1JlZ2V4T3JGdW5jdGlvbihzKXtyZXR1cm4gcyBpbnN0YW5jZW9mIFJlZ0V4cHx8cyBpbnN0YW5jZW9mIEZ1bmN0aW9ufSwkdD1mdW5jdGlvbiBfcGFyc2VDb25maWcoKXtsZXQgcz1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e307aWYoIUx0fHxMdCE9PXMpe2lmKHMmJiJvYmplY3QiPT10eXBlb2Ygc3x8KHM9e30pLHM9Y2xvbmUocyksTXQ9LTE9PT1SdC5pbmRleE9mKHMuUEFSU0VSX01FRElBX1RZUEUpPyJ0ZXh0L2h0bWwiOnMuUEFSU0VSX01FRElBX1RZUEUsRHQ9ImFwcGxpY2F0aW9uL3hodG1sK3htbCI9PT1NdD9fajptaixxZT0kaihzLCJBTExPV0VEX1RBR1MiKT9hZGRUb1NldCh7fSxzLkFMTE9XRURfVEFHUyxEdCk6emUsV2U9JGoocywiQUxMT1dFRF9BVFRSIik/YWRkVG9TZXQoe30scy5BTExPV0VEX0FUVFIsRHQpOkhlLGp0PSRqKHMsIkFMTE9XRURfTkFNRVNQQUNFUyIpP2FkZFRvU2V0KHt9LHMuQUxMT1dFRF9OQU1FU1BBQ0VTLF9qKTpQdCxFdD0kaihzLCJBRERfVVJJX1NBRkVfQVRUUiIpP2FkZFRvU2V0KGNsb25lKHd0KSxzLkFERF9VUklfU0FGRV9BVFRSLER0KTp3dCxfdD0kaihzLCJBRERfREFUQV9VUklfVEFHUyIpP2FkZFRvU2V0KGNsb25lKFN0KSxzLkFERF9EQVRBX1VSSV9UQUdTLER0KTpTdCx2dD0kaihzLCJGT1JCSURfQ09OVEVOVFMiKT9hZGRUb1NldCh7fSxzLkZPUkJJRF9DT05URU5UUyxEdCk6YnQsWGU9JGoocywiRk9SQklEX1RBR1MiKT9hZGRUb1NldCh7fSxzLkZPUkJJRF9UQUdTLER0KTp7fSxRZT0kaihzLCJGT1JCSURfQVRUUiIpP2FkZFRvU2V0KHt9LHMuRk9SQklEX0FUVFIsRHQpOnt9LHl0PSEhJGoocywiVVNFX1BST0ZJTEVTIikmJnMuVVNFX1BST0ZJTEVTLGV0PSExIT09cy5BTExPV19BUklBX0FUVFIsdHQ9ITEhPT1zLkFMTE9XX0RBVEFfQVRUUixydD1zLkFMTE9XX1VOS05PV05fUFJPVE9DT0xTfHwhMSxudD0hMSE9PXMuQUxMT1dfU0VMRl9DTE9TRV9JTl9BVFRSLHN0PXMuU0FGRV9GT1JfVEVNUExBVEVTfHwhMSxvdD0hMSE9PXMuU0FGRV9GT1JfWE1MLGl0PXMuV0hPTEVfRE9DVU1FTlR8fCExLGx0PXMuUkVUVVJOX0RPTXx8ITEsdXQ9cy5SRVRVUk5fRE9NX0ZSQUdNRU5UfHwhMSxwdD1zLlJFVFVSTl9UUlVTVEVEX1RZUEV8fCExLGN0PXMuRk9SQ0VfQk9EWXx8ITEsaHQ9ITEhPT1zLlNBTklUSVpFX0RPTSxkdD1zLlNBTklUSVpFX05BTUVEX1BST1BTfHwhMSxtdD0hMSE9PXMuS0VFUF9DT05URU5ULGd0PXMuSU5fUExBQ0V8fCExLCRlPXMuQUxMT1dFRF9VUklfUkVHRVhQfHxkUCxDdD1zLk5BTUVTUEFDRXx8T3QsSXQ9cy5NQVRITUxfVEVYVF9JTlRFR1JBVElPTl9QT0lOVFN8fEl0LFR0PXMuSFRNTF9JTlRFR1JBVElPTl9QT0lOVFN8fFR0LFllPXMuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkd8fHt9LHMuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcmJkJ0KHMuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrKSYmKFllLnRhZ05hbWVDaGVjaz1zLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLnRhZ05hbWVDaGVjaykscy5DVVNUT01fRUxFTUVOVF9IQU5ETElORyYmQnQocy5DVVNUT01fRUxFTUVOVF9IQU5ETElORy5hdHRyaWJ1dGVOYW1lQ2hlY2spJiYoWWUuYXR0cmlidXRlTmFtZUNoZWNrPXMuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcuYXR0cmlidXRlTmFtZUNoZWNrKSxzLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HJiYiYm9vbGVhbiI9PXR5cGVvZiBzLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmFsbG93Q3VzdG9taXplZEJ1aWx0SW5FbGVtZW50cyYmKFllLmFsbG93Q3VzdG9taXplZEJ1aWx0SW5FbGVtZW50cz1zLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmFsbG93Q3VzdG9taXplZEJ1aWx0SW5FbGVtZW50cyksc3QmJih0dD0hMSksdXQmJihsdD0hMCkseXQmJihxZT1hZGRUb1NldCh7fSxuUCksV2U9W10sITA9PT15dC5odG1sJiYoYWRkVG9TZXQocWUsS2opLGFkZFRvU2V0KFdlLHNQKSksITA9PT15dC5zdmcmJihhZGRUb1NldChxZSxHaiksYWRkVG9TZXQoV2Usb1ApLGFkZFRvU2V0KFdlLGFQKSksITA9PT15dC5zdmdGaWx0ZXJzJiYoYWRkVG9TZXQocWUsWGopLGFkZFRvU2V0KFdlLG9QKSxhZGRUb1NldChXZSxhUCkpLCEwPT09eXQubWF0aE1sJiYoYWRkVG9TZXQocWUsdFApLGFkZFRvU2V0KFdlLGlQKSxhZGRUb1NldChXZSxhUCkpKSxzLkFERF9UQUdTJiYocWU9PT16ZSYmKHFlPWNsb25lKHFlKSksYWRkVG9TZXQocWUscy5BRERfVEFHUyxEdCkpLHMuQUREX0FUVFImJihXZT09PUhlJiYoV2U9Y2xvbmUoV2UpKSxhZGRUb1NldChXZSxzLkFERF9BVFRSLER0KSkscy5BRERfVVJJX1NBRkVfQVRUUiYmYWRkVG9TZXQoRXQscy5BRERfVVJJX1NBRkVfQVRUUixEdCkscy5GT1JCSURfQ09OVEVOVFMmJih2dD09PWJ0JiYodnQ9Y2xvbmUodnQpKSxhZGRUb1NldCh2dCxzLkZPUkJJRF9DT05URU5UUyxEdCkpLG10JiYocWVbIiN0ZXh0Il09ITApLGl0JiZhZGRUb1NldChxZSxbImh0bWwiLCJoZWFkIiwiYm9keSJdKSxxZS50YWJsZSYmKGFkZFRvU2V0KHFlLFsidGJvZHkiXSksZGVsZXRlIFhlLnRib2R5KSxzLlRSVVNURURfVFlQRVNfUE9MSUNZKXtpZigiZnVuY3Rpb24iIT10eXBlb2Ygcy5UUlVTVEVEX1RZUEVTX1BPTElDWS5jcmVhdGVIVE1MKXRocm93IEpqKCdUUlVTVEVEX1RZUEVTX1BPTElDWSBjb25maWd1cmF0aW9uIG9wdGlvbiBtdXN0IHByb3ZpZGUgYSAiY3JlYXRlSFRNTCIgaG9vay4nKTtpZigiZnVuY3Rpb24iIT10eXBlb2Ygcy5UUlVTVEVEX1RZUEVTX1BPTElDWS5jcmVhdGVTY3JpcHRVUkwpdGhyb3cgSmooJ1RSVVNURURfVFlQRVNfUE9MSUNZIGNvbmZpZ3VyYXRpb24gb3B0aW9uIG11c3QgcHJvdmlkZSBhICJjcmVhdGVTY3JpcHRVUkwiIGhvb2suJyk7aWU9cy5UUlVTVEVEX1RZUEVTX1BPTElDWSxhZT1pZS5jcmVhdGVIVE1MKCIiKX1lbHNlIHZvaWQgMD09PWllJiYoaWU9ZnVuY3Rpb24gX2NyZWF0ZVRydXN0ZWRUeXBlc1BvbGljeShzLG8pe2lmKCJvYmplY3QiIT10eXBlb2Ygc3x8ImZ1bmN0aW9uIiE9dHlwZW9mIHMuY3JlYXRlUG9saWN5KXJldHVybiBudWxsO2xldCBpPW51bGw7Y29uc3QgYT0iZGF0YS10dC1wb2xpY3ktc3VmZml4IjtvJiZvLmhhc0F0dHJpYnV0ZShhKSYmKGk9by5nZXRBdHRyaWJ1dGUoYSkpO2NvbnN0IHU9ImRvbXB1cmlmeSIrKGk/IiMiK2k6IiIpO3RyeXtyZXR1cm4gcy5jcmVhdGVQb2xpY3kodSx7Y3JlYXRlSFRNTDpzPT5zLGNyZWF0ZVNjcmlwdFVSTDpzPT5zfSl9Y2F0Y2gocyl7cmV0dXJuIGNvbnNvbGUud2FybigiVHJ1c3RlZFR5cGVzIHBvbGljeSAiK3UrIiBjb3VsZCBub3QgYmUgY3JlYXRlZC4iKSxudWxsfX0oJCxhKSksbnVsbCE9PWllJiYic3RyaW5nIj09dHlwZW9mIGFlJiYoYWU9aWUuY3JlYXRlSFRNTCgiIikpO0pBJiZKQShzKSxMdD1zfX0scXQ9YWRkVG9TZXQoe30sWy4uLkdqLC4uLlhqLC4uLmVQXSksVnQ9YWRkVG9TZXQoe30sWy4uLnRQLC4uLnJQXSksVXQ9ZnVuY3Rpb24gX2ZvcmNlUmVtb3ZlKHMpe2VqKERPTVB1cmlmeS5yZW1vdmVkLHtlbGVtZW50OnN9KTt0cnl7ZWUocykucmVtb3ZlQ2hpbGQocyl9Y2F0Y2gobyl7eihzKX19LHp0PWZ1bmN0aW9uIF9yZW1vdmVBdHRyaWJ1dGUocyxvKXt0cnl7ZWooRE9NUHVyaWZ5LnJlbW92ZWQse2F0dHJpYnV0ZTpvLmdldEF0dHJpYnV0ZU5vZGUocyksZnJvbTpvfSl9Y2F0Y2gocyl7ZWooRE9NUHVyaWZ5LnJlbW92ZWQse2F0dHJpYnV0ZTpudWxsLGZyb206b30pfWlmKG8ucmVtb3ZlQXR0cmlidXRlKHMpLCJpcyI9PT1zKWlmKGx0fHx1dCl0cnl7VXQobyl9Y2F0Y2gocyl7fWVsc2UgdHJ5e28uc2V0QXR0cmlidXRlKHMsIiIpfWNhdGNoKHMpe319LFd0PWZ1bmN0aW9uIF9pbml0RG9jdW1lbnQocyl7bGV0IGk9bnVsbCxhPW51bGw7aWYoY3Qpcz0iPHJlbW92ZT48L3JlbW92ZT4iK3M7ZWxzZXtjb25zdCBvPUNqKHMsL15bXHJcblx0IF0rLyk7YT1vJiZvWzBdfSJhcHBsaWNhdGlvbi94aHRtbCt4bWwiPT09TXQmJkN0PT09T3QmJihzPSc8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PC9oZWFkPjxib2R5PicrcysiPC9ib2R5PjwvaHRtbD4iKTtjb25zdCB1PWllP2llLmNyZWF0ZUhUTUwocyk6cztpZihDdD09PU90KXRyeXtpPShuZXcgQikucGFyc2VGcm9tU3RyaW5nKHUsTXQpfWNhdGNoKHMpe31pZighaXx8IWkuZG9jdW1lbnRFbGVtZW50KXtpPWNlLmNyZWF0ZURvY3VtZW50KEN0LCJ0ZW1wbGF0ZSIsbnVsbCk7dHJ5e2kuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTD1BdD9hZTp1fWNhdGNoKHMpe319Y29uc3QgXz1pLmJvZHl8fGkuZG9jdW1lbnRFbGVtZW50O3JldHVybiBzJiZhJiZfLmluc2VydEJlZm9yZShvLmNyZWF0ZVRleHROb2RlKGEpLF8uY2hpbGROb2Rlc1swXXx8bnVsbCksQ3Q9PT1PdD9kZS5jYWxsKGksaXQ/Imh0bWwiOiJib2R5IilbMF06aXQ/aS5kb2N1bWVudEVsZW1lbnQ6X30sSnQ9ZnVuY3Rpb24gX2NyZWF0ZU5vZGVJdGVyYXRvcihzKXtyZXR1cm4gbGUuY2FsbChzLm93bmVyRG9jdW1lbnR8fHMscyxDLlNIT1dfRUxFTUVOVHxDLlNIT1dfQ09NTUVOVHxDLlNIT1dfVEVYVHxDLlNIT1dfUFJPQ0VTU0lOR19JTlNUUlVDVElPTnxDLlNIT1dfQ0RBVEFfU0VDVElPTixudWxsKX0sSHQ9ZnVuY3Rpb24gX2lzQ2xvYmJlcmVkKHMpe3JldHVybiBzIGluc3RhbmNlb2YgTCYmKCJzdHJpbmciIT10eXBlb2Ygcy5ub2RlTmFtZXx8InN0cmluZyIhPXR5cGVvZiBzLnRleHRDb250ZW50fHwiZnVuY3Rpb24iIT10eXBlb2Ygcy5yZW1vdmVDaGlsZHx8IShzLmF0dHJpYnV0ZXMgaW5zdGFuY2VvZiBqKXx8ImZ1bmN0aW9uIiE9dHlwZW9mIHMucmVtb3ZlQXR0cmlidXRlfHwiZnVuY3Rpb24iIT10eXBlb2Ygcy5zZXRBdHRyaWJ1dGV8fCJzdHJpbmciIT10eXBlb2Ygcy5uYW1lc3BhY2VVUkl8fCJmdW5jdGlvbiIhPXR5cGVvZiBzLmluc2VydEJlZm9yZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIHMuaGFzQ2hpbGROb2Rlcyl9LEt0PWZ1bmN0aW9uIF9pc05vZGUocyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHcmJnMgaW5zdGFuY2VvZiB3fTtmdW5jdGlvbiBfZXhlY3V0ZUhvb2tzKHMsbyxpKXtYQShzLChzPT57cy5jYWxsKERPTVB1cmlmeSxvLGksTHQpfSkpfWNvbnN0IEd0PWZ1bmN0aW9uIF9zYW5pdGl6ZUVsZW1lbnRzKHMpe2xldCBvPW51bGw7aWYoX2V4ZWN1dGVIb29rcyh5ZS5iZWZvcmVTYW5pdGl6ZUVsZW1lbnRzLHMsbnVsbCksSHQocykpcmV0dXJuIFV0KHMpLCEwO2NvbnN0IGk9RHQocy5ub2RlTmFtZSk7aWYoX2V4ZWN1dGVIb29rcyh5ZS51cG9uU2FuaXRpemVFbGVtZW50LHMse3RhZ05hbWU6aSxhbGxvd2VkVGFnczpxZX0pLHMuaGFzQ2hpbGROb2RlcygpJiYhS3Qocy5maXJzdEVsZW1lbnRDaGlsZCkmJnpqKC88Wy9cd10vZyxzLmlubmVySFRNTCkmJnpqKC88Wy9cd10vZyxzLnRleHRDb250ZW50KSlyZXR1cm4gVXQocyksITA7aWYocy5ub2RlVHlwZT09PVNQKXJldHVybiBVdChzKSwhMDtpZihvdCYmcy5ub2RlVHlwZT09PUVQJiZ6aigvPFsvXHddL2cscy5kYXRhKSlyZXR1cm4gVXQocyksITA7aWYoIXFlW2ldfHxYZVtpXSl7aWYoIVhlW2ldJiZYdChpKSl7aWYoWWUudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgUmVnRXhwJiZ6aihZZS50YWdOYW1lQ2hlY2ssaSkpcmV0dXJuITE7aWYoWWUudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgRnVuY3Rpb24mJlllLnRhZ05hbWVDaGVjayhpKSlyZXR1cm4hMX1pZihtdCYmIXZ0W2ldKXtjb25zdCBvPWVlKHMpfHxzLnBhcmVudE5vZGUsaT1aKHMpfHxzLmNoaWxkTm9kZXM7aWYoaSYmbyl7Zm9yKGxldCBhPWkubGVuZ3RoLTE7YT49MDstLWEpe2NvbnN0IHU9VShpW2FdLCEwKTt1Ll9fcmVtb3ZhbENvdW50PShzLl9fcmVtb3ZhbENvdW50fHwwKSsxLG8uaW5zZXJ0QmVmb3JlKHUsWShzKSl9fX1yZXR1cm4gVXQocyksITB9cmV0dXJuIHMgaW5zdGFuY2VvZiB4JiYhZnVuY3Rpb24gX2NoZWNrVmFsaWROYW1lc3BhY2Uocyl7bGV0IG89ZWUocyk7byYmby50YWdOYW1lfHwobz17bmFtZXNwYWNlVVJJOkN0LHRhZ05hbWU6InRlbXBsYXRlIn0pO2NvbnN0IGk9bWoocy50YWdOYW1lKSxhPW1qKG8udGFnTmFtZSk7cmV0dXJuISFqdFtzLm5hbWVzcGFjZVVSSV0mJihzLm5hbWVzcGFjZVVSST09PWt0P28ubmFtZXNwYWNlVVJJPT09T3Q/InN2ZyI9PT1pOm8ubmFtZXNwYWNlVVJJPT09eHQ/InN2ZyI9PT1pJiYoImFubm90YXRpb24teG1sIj09PWF8fEl0W2FdKTpCb29sZWFuKHF0W2ldKTpzLm5hbWVzcGFjZVVSST09PXh0P28ubmFtZXNwYWNlVVJJPT09T3Q/Im1hdGgiPT09aTpvLm5hbWVzcGFjZVVSST09PWt0PyJtYXRoIj09PWkmJlR0W2FdOkJvb2xlYW4oVnRbaV0pOnMubmFtZXNwYWNlVVJJPT09T3Q/IShvLm5hbWVzcGFjZVVSST09PWt0JiYhVHRbYV0pJiYhKG8ubmFtZXNwYWNlVVJJPT09eHQmJiFJdFthXSkmJiFWdFtpXSYmKE50W2ldfHwhcXRbaV0pOiEoImFwcGxpY2F0aW9uL3hodG1sK3htbCIhPT1NdHx8IWp0W3MubmFtZXNwYWNlVVJJXSkpfShzKT8oVXQocyksITApOiJub3NjcmlwdCIhPT1pJiYibm9lbWJlZCIhPT1pJiYibm9mcmFtZXMiIT09aXx8IXpqKC88XC9ubyhzY3JpcHR8ZW1iZWR8ZnJhbWVzKS9pLHMuaW5uZXJIVE1MKT8oc3QmJnMubm9kZVR5cGU9PT1fUCYmKG89cy50ZXh0Q29udGVudCxYQShbYmUsX2UsU2VdLChzPT57bz1BaihvLHMsIiAiKX0pKSxzLnRleHRDb250ZW50IT09byYmKGVqKERPTVB1cmlmeS5yZW1vdmVkLHtlbGVtZW50OnMuY2xvbmVOb2RlKCl9KSxzLnRleHRDb250ZW50PW8pKSxfZXhlY3V0ZUhvb2tzKHllLmFmdGVyU2FuaXRpemVFbGVtZW50cyxzLG51bGwpLCExKTooVXQocyksITApfSxZdD1mdW5jdGlvbiBfaXNWYWxpZEF0dHJpYnV0ZShzLGksYSl7aWYoaHQmJigiaWQiPT09aXx8Im5hbWUiPT09aSkmJihhIGluIG98fGEgaW4gRnQpKXJldHVybiExO2lmKHR0JiYhUWVbaV0mJnpqKHdlLGkpKTtlbHNlIGlmKGV0JiZ6aih4ZSxpKSk7ZWxzZSBpZighV2VbaV18fFFlW2ldKXtpZighKFh0KHMpJiYoWWUudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgUmVnRXhwJiZ6aihZZS50YWdOYW1lQ2hlY2sscyl8fFllLnRhZ05hbWVDaGVjayBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZZZS50YWdOYW1lQ2hlY2socykpJiYoWWUuYXR0cmlidXRlTmFtZUNoZWNrIGluc3RhbmNlb2YgUmVnRXhwJiZ6aihZZS5hdHRyaWJ1dGVOYW1lQ2hlY2ssaSl8fFllLmF0dHJpYnV0ZU5hbWVDaGVjayBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZZZS5hdHRyaWJ1dGVOYW1lQ2hlY2soaSkpfHwiaXMiPT09aSYmWWUuYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzJiYoWWUudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgUmVnRXhwJiZ6aihZZS50YWdOYW1lQ2hlY2ssYSl8fFllLnRhZ05hbWVDaGVjayBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZZZS50YWdOYW1lQ2hlY2soYSkpKSlyZXR1cm4hMX1lbHNlIGlmKEV0W2ldKTtlbHNlIGlmKHpqKCRlLEFqKGEsVGUsIiIpKSk7ZWxzZSBpZigic3JjIiE9PWkmJiJ4bGluazpocmVmIiE9PWkmJiJocmVmIiE9PWl8fCJzY3JpcHQiPT09c3x8MCE9PU5qKGEsImRhdGE6Iil8fCFfdFtzXSl7aWYocnQmJiF6aihQZSxBaihhLFRlLCIiKSkpO2Vsc2UgaWYoYSlyZXR1cm4hMX1lbHNlO3JldHVybiEwfSxYdD1mdW5jdGlvbiBfaXNCYXNpY0N1c3RvbUVsZW1lbnQocyl7cmV0dXJuImFubm90YXRpb24teG1sIiE9PXMmJkNqKHMsUmUpfSxRdD1mdW5jdGlvbiBfc2FuaXRpemVBdHRyaWJ1dGVzKHMpe19leGVjdXRlSG9va3MoeWUuYmVmb3JlU2FuaXRpemVBdHRyaWJ1dGVzLHMsbnVsbCk7Y29uc3R7YXR0cmlidXRlczpvfT1zO2lmKCFvfHxIdChzKSlyZXR1cm47Y29uc3QgaT17YXR0ck5hbWU6IiIsYXR0clZhbHVlOiIiLGtlZXBBdHRyOiEwLGFsbG93ZWRBdHRyaWJ1dGVzOldlLGZvcmNlS2VlcEF0dHI6dm9pZCAwfTtsZXQgYT1vLmxlbmd0aDtmb3IoO2EtLTspe2NvbnN0IHU9b1thXSx7bmFtZTpfLG5hbWVzcGFjZVVSSTp3LHZhbHVlOnh9PXUsQz1EdChfKTtsZXQgaj0idmFsdWUiPT09Xz94OkJqKHgpO2lmKGkuYXR0ck5hbWU9QyxpLmF0dHJWYWx1ZT1qLGkua2VlcEF0dHI9ITAsaS5mb3JjZUtlZXBBdHRyPXZvaWQgMCxfZXhlY3V0ZUhvb2tzKHllLnVwb25TYW5pdGl6ZUF0dHJpYnV0ZSxzLGkpLGo9aS5hdHRyVmFsdWUsIWR0fHwiaWQiIT09QyYmIm5hbWUiIT09Q3x8KHp0KF8scyksaj0idXNlci1jb250ZW50LSIraiksb3QmJnpqKC8oKC0tIT98XSk+KXw8XC8oc3R5bGV8dGl0bGUpL2ksaikpe3p0KF8scyk7Y29udGludWV9aWYoaS5mb3JjZUtlZXBBdHRyKWNvbnRpbnVlO2lmKHp0KF8scyksIWkua2VlcEF0dHIpY29udGludWU7aWYoIW50JiZ6aigvXC8+L2ksaikpe3p0KF8scyk7Y29udGludWV9c3QmJlhBKFtiZSxfZSxTZV0sKHM9PntqPUFqKGoscywiICIpfSkpO2NvbnN0IEw9RHQocy5ub2RlTmFtZSk7aWYoWXQoTCxDLGopKXtpZihpZSYmIm9iamVjdCI9PXR5cGVvZiAkJiYiZnVuY3Rpb24iPT10eXBlb2YgJC5nZXRBdHRyaWJ1dGVUeXBlKWlmKHcpO2Vsc2Ugc3dpdGNoKCQuZ2V0QXR0cmlidXRlVHlwZShMLEMpKXtjYXNlIlRydXN0ZWRIVE1MIjpqPWllLmNyZWF0ZUhUTUwoaik7YnJlYWs7Y2FzZSJUcnVzdGVkU2NyaXB0VVJMIjpqPWllLmNyZWF0ZVNjcmlwdFVSTChqKX10cnl7dz9zLnNldEF0dHJpYnV0ZU5TKHcsXyxqKTpzLnNldEF0dHJpYnV0ZShfLGopLEh0KHMpP1V0KHMpOlpBKERPTVB1cmlmeS5yZW1vdmVkKX1jYXRjaChzKXt9fX1fZXhlY3V0ZUhvb2tzKHllLmFmdGVyU2FuaXRpemVBdHRyaWJ1dGVzLHMsbnVsbCl9LFp0PWZ1bmN0aW9uIF9zYW5pdGl6ZVNoYWRvd0RPTShzKXtsZXQgbz1udWxsO2NvbnN0IGk9SnQocyk7Zm9yKF9leGVjdXRlSG9va3MoeWUuYmVmb3JlU2FuaXRpemVTaGFkb3dET00scyxudWxsKTtvPWkubmV4dE5vZGUoKTspX2V4ZWN1dGVIb29rcyh5ZS51cG9uU2FuaXRpemVTaGFkb3dOb2RlLG8sbnVsbCksR3QobyksUXQobyksby5jb250ZW50IGluc3RhbmNlb2YgdSYmX3Nhbml0aXplU2hhZG93RE9NKG8uY29udGVudCk7X2V4ZWN1dGVIb29rcyh5ZS5hZnRlclNhbml0aXplU2hhZG93RE9NLHMsbnVsbCl9O3JldHVybiBET01QdXJpZnkuc2FuaXRpemU9ZnVuY3Rpb24ocyl7bGV0IG89YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LGE9bnVsbCxfPW51bGwseD1udWxsLEM9bnVsbDtpZihBdD0hcyxBdCYmKHM9Ilx4M2MhLS1ceDNlIiksInN0cmluZyIhPXR5cGVvZiBzJiYhS3Qocykpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBzLnRvU3RyaW5nKXRocm93IEpqKCJ0b1N0cmluZyBpcyBub3QgYSBmdW5jdGlvbiIpO2lmKCJzdHJpbmciIT10eXBlb2Yocz1zLnRvU3RyaW5nKCkpKXRocm93IEpqKCJkaXJ0eSBpcyBub3QgYSBzdHJpbmcsIGFib3J0aW5nIil9aWYoIURPTVB1cmlmeS5pc1N1cHBvcnRlZClyZXR1cm4gcztpZihhdHx8JHQobyksRE9NUHVyaWZ5LnJlbW92ZWQ9W10sInN0cmluZyI9PXR5cGVvZiBzJiYoZ3Q9ITEpLGd0KXtpZihzLm5vZGVOYW1lKXtjb25zdCBvPUR0KHMubm9kZU5hbWUpO2lmKCFxZVtvXXx8WGVbb10pdGhyb3cgSmooInJvb3Qgbm9kZSBpcyBmb3JiaWRkZW4gYW5kIGNhbm5vdCBiZSBzYW5pdGl6ZWQgaW4tcGxhY2UiKX19ZWxzZSBpZihzIGluc3RhbmNlb2YgdylhPVd0KCJceDNjIS0tLS1ceDNlIiksXz1hLm93bmVyRG9jdW1lbnQuaW1wb3J0Tm9kZShzLCEwKSxfLm5vZGVUeXBlPT09YlAmJiJCT0RZIj09PV8ubm9kZU5hbWV8fCJIVE1MIj09PV8ubm9kZU5hbWU/YT1fOmEuYXBwZW5kQ2hpbGQoXyk7ZWxzZXtpZighbHQmJiFzdCYmIWl0JiYtMT09PXMuaW5kZXhPZigiPCIpKXJldHVybiBpZSYmcHQ/aWUuY3JlYXRlSFRNTChzKTpzO2lmKGE9V3QocyksIWEpcmV0dXJuIGx0P251bGw6cHQ/YWU6IiJ9YSYmY3QmJlV0KGEuZmlyc3RDaGlsZCk7Y29uc3Qgaj1KdChndD9zOmEpO2Zvcig7eD1qLm5leHROb2RlKCk7KUd0KHgpLFF0KHgpLHguY29udGVudCBpbnN0YW5jZW9mIHUmJlp0KHguY29udGVudCk7aWYoZ3QpcmV0dXJuIHM7aWYobHQpe2lmKHV0KWZvcihDPXBlLmNhbGwoYS5vd25lckRvY3VtZW50KTthLmZpcnN0Q2hpbGQ7KUMuYXBwZW5kQ2hpbGQoYS5maXJzdENoaWxkKTtlbHNlIEM9YTtyZXR1cm4oV2Uuc2hhZG93cm9vdHx8V2Uuc2hhZG93cm9vdG1vZGUpJiYoQz1mZS5jYWxsKGksQywhMCkpLEN9bGV0IEw9aXQ/YS5vdXRlckhUTUw6YS5pbm5lckhUTUw7cmV0dXJuIGl0JiZxZVsiIWRvY3R5cGUiXSYmYS5vd25lckRvY3VtZW50JiZhLm93bmVyRG9jdW1lbnQuZG9jdHlwZSYmYS5vd25lckRvY3VtZW50LmRvY3R5cGUubmFtZSYmemooZ1AsYS5vd25lckRvY3VtZW50LmRvY3R5cGUubmFtZSkmJihMPSI8IURPQ1RZUEUgIithLm93bmVyRG9jdW1lbnQuZG9jdHlwZS5uYW1lKyI+XG4iK0wpLHN0JiZYQShbYmUsX2UsU2VdLChzPT57TD1BaihMLHMsIiAiKX0pKSxpZSYmcHQ/aWUuY3JlYXRlSFRNTChMKTpMfSxET01QdXJpZnkuc2V0Q29uZmlnPWZ1bmN0aW9uKCl7JHQoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9KSxhdD0hMH0sRE9NUHVyaWZ5LmNsZWFyQ29uZmlnPWZ1bmN0aW9uKCl7THQ9bnVsbCxhdD0hMX0sRE9NUHVyaWZ5LmlzVmFsaWRBdHRyaWJ1dGU9ZnVuY3Rpb24ocyxvLGkpe0x0fHwkdCh7fSk7Y29uc3QgYT1EdChzKSx1PUR0KG8pO3JldHVybiBZdChhLHUsaSl9LERPTVB1cmlmeS5hZGRIb29rPWZ1bmN0aW9uKHMsbyl7ImZ1bmN0aW9uIj09dHlwZW9mIG8mJmVqKHllW3NdLG8pfSxET01QdXJpZnkucmVtb3ZlSG9vaz1mdW5jdGlvbihzLG8pe2lmKHZvaWQgMCE9PW8pe2NvbnN0IGk9UUEoeWVbc10sbyk7cmV0dXJuLTE9PT1pP3ZvaWQgMDpmaih5ZVtzXSxpLDEpWzBdfXJldHVybiBaQSh5ZVtzXSl9LERPTVB1cmlmeS5yZW1vdmVIb29rcz1mdW5jdGlvbihzKXt5ZVtzXT1bXX0sRE9NUHVyaWZ5LnJlbW92ZUFsbEhvb2tzPWZ1bmN0aW9uKCl7eWU9e2FmdGVyU2FuaXRpemVBdHRyaWJ1dGVzOltdLGFmdGVyU2FuaXRpemVFbGVtZW50czpbXSxhZnRlclNhbml0aXplU2hhZG93RE9NOltdLGJlZm9yZVNhbml0aXplQXR0cmlidXRlczpbXSxiZWZvcmVTYW5pdGl6ZUVsZW1lbnRzOltdLGJlZm9yZVNhbml0aXplU2hhZG93RE9NOltdLHVwb25TYW5pdGl6ZUF0dHJpYnV0ZTpbXSx1cG9uU2FuaXRpemVFbGVtZW50OltdLHVwb25TYW5pdGl6ZVNoYWRvd05vZGU6W119fSxET01QdXJpZnl9KCk7a1AuYWRkSG9vayYma1AuYWRkSG9vaygiYmVmb3JlU2FuaXRpemVFbGVtZW50cyIsKGZ1bmN0aW9uKHMpe3JldHVybiBzLmhyZWYmJnMuc2V0QXR0cmlidXRlKCJyZWwiLCJub29wZW5lciBub3JlZmVycmVyIiksc30pKTtjb25zdCBPUD1mdW5jdGlvbiBNYXJrZG93bih7c291cmNlOnMsY2xhc3NOYW1lOm89IiIsZ2V0Q29uZmlnczppPSgpPT4oe3VzZVVuc2FmZU1hcmtkb3duOiExfSl9KXtpZigic3RyaW5nIiE9dHlwZW9mIHMpcmV0dXJuIG51bGw7Y29uc3QgYT1uZXcgUmVtYXJrYWJsZSh7aHRtbDohMCx0eXBvZ3JhcGhlcjohMCxicmVha3M6ITAsbGlua1RhcmdldDoiX2JsYW5rIn0pLnVzZShsaW5raWZ5KTthLmNvcmUucnVsZXIuZGlzYWJsZShbInJlcGxhY2VtZW50cyIsInNtYXJ0cXVvdGVzIl0pO2NvbnN0e3VzZVVuc2FmZU1hcmtkb3duOnV9PWkoKSxfPWEucmVuZGVyKHMpLHc9c2FuaXRpemVyKF8se3VzZVVuc2FmZU1hcmtkb3duOnV9KTtyZXR1cm4gcyYmXyYmdz9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Sm4oKShvLCJtYXJrZG93biIpLGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6d319KTpudWxsfTtmdW5jdGlvbiBzYW5pdGl6ZXIocyx7dXNlVW5zYWZlTWFya2Rvd246bz0hMX09e30pe2NvbnN0IGk9byxhPW8/W106WyJzdHlsZSIsImNsYXNzIl07cmV0dXJuIG8mJiFzYW5pdGl6ZXIuaGFzV2FybmVkQWJvdXREZXByZWNhdGlvbiYmKGNvbnNvbGUud2FybigidXNlVW5zYWZlTWFya2Rvd24gZGlzcGxheSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBpcyBkZXByZWNhdGVkIHNpbmNlID4zLjI2LjAgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB2NC4wLjAuIiksc2FuaXRpemVyLmhhc1dhcm5lZEFib3V0RGVwcmVjYXRpb249ITApLGtQLnNhbml0aXplKHMse0FERF9BVFRSOlsidGFyZ2V0Il0sRk9SQklEX1RBR1M6WyJzdHlsZSIsImZvcm0iXSxBTExPV19EQVRBX0FUVFI6aSxGT1JCSURfQVRUUjphfSl9c2FuaXRpemVyLmhhc1dhcm5lZEFib3V0RGVwcmVjYXRpb249ITE7Y2xhc3MgQmFzZUxheW91dCBleHRlbmRzIFJlLkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHtlcnJTZWxlY3RvcnM6cyxzcGVjU2VsZWN0b3JzOm8sZ2V0Q29tcG9uZW50Oml9PXRoaXMucHJvcHMsYT1pKCJTdmdBc3NldHMiKSx1PWkoIkluZm9Db250YWluZXIiLCEwKSxfPWkoIlZlcnNpb25QcmFnbWFGaWx0ZXIiKSx3PWkoIm9wZXJhdGlvbnMiLCEwKSx4PWkoIk1vZGVscyIsITApLEM9aSgiV2ViaG9va3MiLCEwKSxqPWkoIlJvdyIpLEw9aSgiQ29sIiksQj1pKCJlcnJvcnMiLCEwKSwkPWkoIlNlcnZlcnNDb250YWluZXIiLCEwKSxWPWkoIlNjaGVtZXNDb250YWluZXIiLCEwKSxVPWkoIkF1dGhvcml6ZUJ0bkNvbnRhaW5lciIsITApLHo9aSgiRmlsdGVyQ29udGFpbmVyIiwhMCksWT1vLmlzU3dhZ2dlcjIoKSxaPW8uaXNPQVMzKCksZWU9by5pc09BUzMxKCksaWU9IW8uc3BlY1N0cigpLGFlPW8ubG9hZGluZ1N0YXR1cygpO2xldCBjZT1udWxsO2lmKCJsb2FkaW5nIj09PWFlJiYoY2U9UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJpbmZvIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJsb2FkaW5nLWNvbnRhaW5lciJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibG9hZGluZyJ9KSkpKSwiZmFpbGVkIj09PWFlJiYoY2U9UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJpbmZvIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJsb2FkaW5nLWNvbnRhaW5lciJ9LFJlLmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJ0aXRsZSJ9LCJGYWlsZWQgdG8gbG9hZCBBUEkgZGVmaW5pdGlvbi4iKSxSZS5jcmVhdGVFbGVtZW50KEIsbnVsbCkpKSksImZhaWxlZENvbmZpZyI9PT1hZSl7Y29uc3Qgbz1zLmxhc3RFcnJvcigpLGk9bz9vLmdldCgibWVzc2FnZSIpOiIiO2NlPVJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaW5mbyBmYWlsZWQtY29uZmlnIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJsb2FkaW5nLWNvbnRhaW5lciJ9LFJlLmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJ0aXRsZSJ9LCJGYWlsZWQgdG8gbG9hZCByZW1vdGUgY29uZmlndXJhdGlvbi4iKSxSZS5jcmVhdGVFbGVtZW50KCJwIixudWxsLGkpKSl9aWYoIWNlJiZpZSYmKGNlPVJlLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLCJObyBBUEkgZGVmaW5pdGlvbiBwcm92aWRlZC4iKSksY2UpcmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToic3dhZ2dlci11aSJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibG9hZGluZy1jb250YWluZXIifSxjZSkpO2NvbnN0IGxlPW8uc2VydmVycygpLHBlPW8uc2NoZW1lcygpLGRlPWxlJiZsZS5zaXplLGZlPXBlJiZwZS5zaXplLHllPSEhby5zZWN1cml0eURlZmluaXRpb25zKCk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToic3dhZ2dlci11aSJ9LFJlLmNyZWF0ZUVsZW1lbnQoYSxudWxsKSxSZS5jcmVhdGVFbGVtZW50KF8se2lzU3dhZ2dlcjI6WSxpc09BUzM6WixhbHNvU2hvdzpSZS5jcmVhdGVFbGVtZW50KEIsbnVsbCl9LFJlLmNyZWF0ZUVsZW1lbnQoQixudWxsKSxSZS5jcmVhdGVFbGVtZW50KGose2NsYXNzTmFtZToiaW5mb3JtYXRpb24tY29udGFpbmVyIn0sUmUuY3JlYXRlRWxlbWVudChMLHttb2JpbGU6MTJ9LFJlLmNyZWF0ZUVsZW1lbnQodSxudWxsKSkpLGRlfHxmZXx8eWU/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJzY2hlbWUtY29udGFpbmVyIn0sUmUuY3JlYXRlRWxlbWVudChMLHtjbGFzc05hbWU6InNjaGVtZXMgd3JhcHBlciIsbW9iaWxlOjEyfSxkZXx8ZmU/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJzY2hlbWVzLXNlcnZlci1jb250YWluZXIifSxkZT9SZS5jcmVhdGVFbGVtZW50KCQsbnVsbCk6bnVsbCxmZT9SZS5jcmVhdGVFbGVtZW50KFYsbnVsbCk6bnVsbCk6bnVsbCx5ZT9SZS5jcmVhdGVFbGVtZW50KFUsbnVsbCk6bnVsbCkpOm51bGwsUmUuY3JlYXRlRWxlbWVudCh6LG51bGwpLFJlLmNyZWF0ZUVsZW1lbnQoaixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoTCx7bW9iaWxlOjEyLGRlc2t0b3A6MTJ9LFJlLmNyZWF0ZUVsZW1lbnQodyxudWxsKSkpLGVlJiZSZS5jcmVhdGVFbGVtZW50KGose2NsYXNzTmFtZToid2ViaG9va3MtY29udGFpbmVyIn0sUmUuY3JlYXRlRWxlbWVudChMLHttb2JpbGU6MTIsZGVza3RvcDoxMn0sUmUuY3JlYXRlRWxlbWVudChDLG51bGwpKSksUmUuY3JlYXRlRWxlbWVudChqLG51bGwsUmUuY3JlYXRlRWxlbWVudChMLHttb2JpbGU6MTIsZGVza3RvcDoxMn0sUmUuY3JlYXRlRWxlbWVudCh4LG51bGwpKSkpKX19Y29uc3QgY29yZV9jb21wb25lbnRzPSgpPT4oe2NvbXBvbmVudHM6e0FwcDpITyxhdXRob3JpemF0aW9uUG9wdXA6QXV0aG9yaXphdGlvblBvcHVwLGF1dGhvcml6ZUJ0bjpBdXRob3JpemVCdG4sQXV0aG9yaXplQnRuQ29udGFpbmVyLGF1dGhvcml6ZU9wZXJhdGlvbkJ0bjpBdXRob3JpemVPcGVyYXRpb25CdG4sYXV0aHM6QXV0aHMsQXV0aEl0ZW06YXV0aF9pdGVtX0F1dGhzLGF1dGhFcnJvcjpBdXRoRXJyb3Isb2F1dGgyOk9hdXRoMixhcGlLZXlBdXRoOkFwaUtleUF1dGgsYmFzaWNBdXRoOkJhc2ljQXV0aCxjbGVhcjpDbGVhcixsaXZlUmVzcG9uc2U6TGl2ZVJlc3BvbnNlLEluaXRpYWxpemVkSW5wdXQsaW5mbzpyQyxJbmZvQ29udGFpbmVyLEluZm9VcmwsSW5mb0Jhc2VQYXRoLENvbnRhY3Q6bkMsTGljZW5zZTpzQyxKdW1wVG9QYXRoLENvcHlUb0NsaXBib2FyZEJ0bixvbmxpbmVWYWxpZGF0b3JCYWRnZTpPbmxpbmVWYWxpZGF0b3JCYWRnZSxvcGVyYXRpb25zOk9wZXJhdGlvbnMsb3BlcmF0aW9uOm9wZXJhdGlvbl9PcGVyYXRpb24sT3BlcmF0aW9uU3VtbWFyeSxPcGVyYXRpb25TdW1tYXJ5TWV0aG9kLE9wZXJhdGlvblN1bW1hcnlQYXRoLHJlc3BvbnNlczpyZXNwb25zZXNfUmVzcG9uc2VzLHJlc3BvbnNlOnJlc3BvbnNlX1Jlc3BvbnNlLFJlc3BvbnNlRXh0ZW5zaW9uOnJlc3BvbnNlX2V4dGVuc2lvbixyZXNwb25zZUJvZHk6UmVzcG9uc2VCb2R5LHBhcmFtZXRlcnM6UGFyYW1ldGVycyxwYXJhbWV0ZXJSb3c6UGFyYW1ldGVyUm93LGV4ZWN1dGU6RXhlY3V0ZSxoZWFkZXJzOmhlYWRlcnNfSGVhZGVycyxlcnJvcnM6RXJyb3JzLGNvbnRlbnRUeXBlOkNvbnRlbnRUeXBlLG92ZXJ2aWV3Ok92ZXJ2aWV3LGZvb3RlcjpGb290ZXIsRmlsdGVyQ29udGFpbmVyLFBhcmFtQm9keSxjdXJsOkN1cmwsUHJvcGVydHk6cHJvcGVydHksVHJ5SXRPdXRCdXR0b24sTWFya2Rvd246T1AsQmFzZUxheW91dCxWZXJzaW9uUHJhZ21hRmlsdGVyLFZlcnNpb25TdGFtcDp2ZXJzaW9uX3N0YW1wLE9wZXJhdGlvbkV4dDpvcGVyYXRpb25fZXh0ZW5zaW9ucyxPcGVyYXRpb25FeHRSb3c6b3BlcmF0aW9uX2V4dGVuc2lvbl9yb3csUGFyYW1ldGVyRXh0OnBhcmFtZXRlcl9leHRlbnNpb24sUGFyYW1ldGVySW5jbHVkZUVtcHR5LE9wZXJhdGlvblRhZyxPcGVyYXRpb25Db250YWluZXIsT3BlbkFQSVZlcnNpb246b3BlbmFwaV92ZXJzaW9uLERlZXBMaW5rOmRlZXBfbGluayxTdmdBc3NldHM6c3ZnX2Fzc2V0cyxFeGFtcGxlOmV4YW1wbGVfRXhhbXBsZSxFeGFtcGxlc1NlbGVjdCxFeGFtcGxlc1NlbGVjdFZhbHVlUmV0YWluZXJ9fSksZm9ybV9jb21wb25lbnRzPSgpPT4oe2NvbXBvbmVudHM6ey4uLl9lfX0pLGJhc2U9KCk9Pltjb25maWdzUGx1Z2luLHV0aWwsbG9ncyx2aWV3LHZpZXdfbGVnYWN5LHBsdWdpbnNfc3BlYyxlcnIsaWNvbnMscGx1Z2luc19sYXlvdXQsanNvbl9zY2hlbWFfNSxqc29uX3NjaGVtYV81X3NhbXBsZXMsY29yZV9jb21wb25lbnRzLGZvcm1fY29tcG9uZW50cyxzd2FnZ2VyX2NsaWVudCxhdXRoLGRvd25sb2FkVXJsUGx1Z2luLGRlZXBfbGlua2luZyxmaWx0ZXIsb25fY29tcGxldGUscGx1Z2luc19yZXF1ZXN0X3NuaXBwZXRzLHN5bnRheF9oaWdobGlnaHRpbmcsdmVyc2lvbnMsc2FmZV9yZW5kZXIoKV0sQ1A9KDAsemUuTWFwKSgpO2Z1bmN0aW9uIG9ubHlPQVMzKHMpe3JldHVybihvLGkpPT4oLi4uYSk9PntpZihpLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuaXNPQVMzKCkpe2NvbnN0IG89cyguLi5hKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygbz9vKGkpOm99cmV0dXJuIG8oLi4uYSl9fWNvbnN0IEFQPW9ubHlPQVMzKHhzKCkobnVsbCkpLGpQPW9ubHlPQVMzKCgocyxvKT0+cz0+cy5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLmZpbmRTY2hlbWEobykpKSxQUD1vbmx5T0FTMygoKCk9PnM9Pntjb25zdCBvPXMuZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpLmdldEluKFsiY29tcG9uZW50cyIsInNjaGVtYXMiXSk7cmV0dXJuIHplLk1hcC5pc01hcChvKT9vOkNQfSkpLElQPW9ubHlPQVMzKCgoKT0+cz0+cy5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLnNwZWNKc29uKCkuaGFzSW4oWyJzZXJ2ZXJzIiwwXSkpKSxUUD1vbmx5T0FTMyhWdChOcywocz0+cy5nZXRJbihbImNvbXBvbmVudHMiLCJzZWN1cml0eVNjaGVtZXMiXSl8fG51bGwpKSksd3JhcF9zZWxlY3RvcnNfdmFsaWRPcGVyYXRpb25NZXRob2RzPShzLG8pPT4oaSwuLi5hKT0+by5zcGVjU2VsZWN0b3JzLmlzT0FTMygpP28ub2FzM1NlbGVjdG9ycy52YWxpZE9wZXJhdGlvbk1ldGhvZHMoKTpzKC4uLmEpLE5QPUFQLE1QPUFQLFJQPUFQLERQPUFQLExQPUFQO2NvbnN0IEZQPWZ1bmN0aW9uIHdyYXBfc2VsZWN0b3JzX29ubHlPQVMzKHMpe3JldHVybihvLGkpPT4oLi4uYSk9PntpZihpLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuaXNPQVMzKCkpe2xldCBvPWkuZ2V0U3RhdGUoKS5nZXRJbihbInNwZWMiLCJyZXNvbHZlZFN1YnRyZWVzIiwiY29tcG9uZW50cyIsInNlY3VyaXR5U2NoZW1lcyJdKTtyZXR1cm4gcyhpLG8sLi4uYSl9cmV0dXJuIG8oLi4uYSl9fShWdCgocz0+cyksKCh7c3BlY1NlbGVjdG9yczpzfSk9PnMuc2VjdXJpdHlEZWZpbml0aW9ucygpKSwoKHMsbyk9PntsZXQgaT0oMCx6ZS5MaXN0KSgpO3JldHVybiBvPyhvLmVudHJ5U2VxKCkuZm9yRWFjaCgoKFtzLG9dKT0+e2NvbnN0IGE9bz8uZ2V0KCJ0eXBlIik7aWYoIm9hdXRoMiI9PT1hJiZvLmdldCgiZmxvd3MiKS5lbnRyeVNlcSgpLmZvckVhY2goKChbYSx1XSk9PntsZXQgXz0oMCx6ZS5mcm9tSlMpKHtmbG93OmEsYXV0aG9yaXphdGlvblVybDp1LmdldCgiYXV0aG9yaXphdGlvblVybCIpLHRva2VuVXJsOnUuZ2V0KCJ0b2tlblVybCIpLHNjb3Blczp1LmdldCgic2NvcGVzIiksdHlwZTpvLmdldCgidHlwZSIpLGRlc2NyaXB0aW9uOm8uZ2V0KCJkZXNjcmlwdGlvbiIpfSk7aT1pLnB1c2gobmV3IHplLk1hcCh7W3NdOl8uZmlsdGVyKChzPT52b2lkIDAhPT1zKSl9KSl9KSksImh0dHAiIT09YSYmImFwaUtleSIhPT1hfHwoaT1pLnB1c2gobmV3IHplLk1hcCh7W3NdOm99KSkpLCJvcGVuSWRDb25uZWN0Ij09PWEmJm8uZ2V0KCJvcGVuSWRDb25uZWN0RGF0YSIpKXtsZXQgYT1vLmdldCgib3BlbklkQ29ubmVjdERhdGEiKTsoYS5nZXQoImdyYW50X3R5cGVzX3N1cHBvcnRlZCIpfHxbImF1dGhvcml6YXRpb25fY29kZSIsImltcGxpY2l0Il0pLmZvckVhY2goKHU9PntsZXQgXz1hLmdldCgic2NvcGVzX3N1cHBvcnRlZCIpJiZhLmdldCgic2NvcGVzX3N1cHBvcnRlZCIpLnJlZHVjZSgoKHMsbyk9PnMuc2V0KG8sIiIpKSxuZXcgemUuTWFwKSx3PSgwLHplLmZyb21KUykoe2Zsb3c6dSxhdXRob3JpemF0aW9uVXJsOmEuZ2V0KCJhdXRob3JpemF0aW9uX2VuZHBvaW50IiksdG9rZW5Vcmw6YS5nZXQoInRva2VuX2VuZHBvaW50Iiksc2NvcGVzOl8sdHlwZToib2F1dGgyIixvcGVuSWRDb25uZWN0VXJsOm8uZ2V0KCJvcGVuSWRDb25uZWN0VXJsIil9KTtpPWkucHVzaChuZXcgemUuTWFwKHtbc106dy5maWx0ZXIoKHM9PnZvaWQgMCE9PXMpKX0pKX0pKX19KSksaSk6aX0pKSk7ZnVuY3Rpb24gT0FTM0NvbXBvbmVudFdyYXBGYWN0b3J5KHMpe3JldHVybihvLGkpPT5hPT4iZnVuY3Rpb24iPT10eXBlb2YgaS5zcGVjU2VsZWN0b3JzPy5pc09BUzM/aS5zcGVjU2VsZWN0b3JzLmlzT0FTMygpP1JlLmNyZWF0ZUVsZW1lbnQocyxNbigpKHt9LGEsaSx7T3JpOm99KSk6UmUuY3JlYXRlRWxlbWVudChvLGEpOihjb25zb2xlLndhcm4oIk9BUzMgd3JhcHBlcjogY291bGRuJ3QgZ2V0IHNwZWMiKSxudWxsKX1jb25zdCBCUD0oMCx6ZS5NYXApKCksc2VsZWN0b3JzX2lzU3dhZ2dlcjI9KCk9PnM9PmZ1bmN0aW9uIGlzU3dhZ2dlcjIocyl7Y29uc3Qgbz1zLmdldCgic3dhZ2dlciIpO3JldHVybiJzdHJpbmciPT10eXBlb2YgbyYmIjIuMCI9PT1vfShzLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuc3BlY0pzb24oKSksc2VsZWN0b3JzX2lzT0FTMzA9KCk9PnM9PmZ1bmN0aW9uIGlzT0FTMzAocyl7Y29uc3Qgbz1zLmdldCgib3BlbmFwaSIpO3JldHVybiJzdHJpbmciPT10eXBlb2YgbyYmL14zXC4wXC4oPzpbMS05XVxkKnwwKSQvLnRlc3Qobyl9KHMuZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpKSxzZWxlY3RvcnNfaXNPQVMzPSgpPT5zPT5zLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuaXNPQVMzMCgpO2Z1bmN0aW9uIHNlbGVjdG9yc19vbmx5T0FTMyhzKXtyZXR1cm4obywuLi5pKT0+YT0+e2lmKGEuc3BlY1NlbGVjdG9ycy5pc09BUzMoKSl7Y29uc3QgdT1zKG8sLi4uaSk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHU/dShhKTp1fXJldHVybiBudWxsfX1jb25zdCAkUD1zZWxlY3RvcnNfb25seU9BUzMoKCgpPT5zPT5zLnNwZWNTZWxlY3RvcnMuc3BlY0pzb24oKS5nZXQoInNlcnZlcnMiLEJQKSkpLGZpbmRTY2hlbWE9KHMsbyk9Pntjb25zdCBpPXMuZ2V0SW4oWyJyZXNvbHZlZFN1YnRyZWVzIiwiY29tcG9uZW50cyIsInNjaGVtYXMiLG9dLG51bGwpLGE9cy5nZXRJbihbImpzb24iLCJjb21wb25lbnRzIiwic2NoZW1hcyIsb10sbnVsbCk7cmV0dXJuIGl8fGF8fG51bGx9LHFQPXNlbGVjdG9yc19vbmx5T0FTMygoKHMse2NhbGxiYWNrczpvLHNwZWNQYXRoOml9KT0+cz0+e2NvbnN0IGE9cy5zcGVjU2VsZWN0b3JzLnZhbGlkT3BlcmF0aW9uTWV0aG9kcygpO3JldHVybiB6ZS5NYXAuaXNNYXAobyk/by5yZWR1Y2UoKChzLG8sdSk9PntpZighemUuTWFwLmlzTWFwKG8pKXJldHVybiBzO2NvbnN0IF89by5yZWR1Y2UoKChzLG8sXyk9PntpZighemUuTWFwLmlzTWFwKG8pKXJldHVybiBzO2NvbnN0IHc9by5lbnRyeVNlcSgpLmZpbHRlcigoKFtzXSk9PmEuaW5jbHVkZXMocykpKS5tYXAoKChbcyxvXSk9Pih7b3BlcmF0aW9uOigwLHplLk1hcCkoe29wZXJhdGlvbjpvfSksbWV0aG9kOnMscGF0aDpfLGNhbGxiYWNrTmFtZTp1LHNwZWNQYXRoOmkuY29uY2F0KFt1LF8sc10pfSkpKTtyZXR1cm4gcy5jb25jYXQodyl9KSwoMCx6ZS5MaXN0KSgpKTtyZXR1cm4gcy5jb25jYXQoXyl9KSwoMCx6ZS5MaXN0KSgpKS5ncm91cEJ5KChzPT5zLmNhbGxiYWNrTmFtZSkpLm1hcCgocz0+cy50b0FycmF5KCkpKS50b09iamVjdCgpOnt9fSkpLGNhbGxiYWNrcz0oe2NhbGxiYWNrczpzLHNwZWNQYXRoOm8sc3BlY1NlbGVjdG9yczppLGdldENvbXBvbmVudDphfSk9Pntjb25zdCB1PWkuY2FsbGJhY2tzT3BlcmF0aW9ucyh7Y2FsbGJhY2tzOnMsc3BlY1BhdGg6b30pLF89T2JqZWN0LmtleXModSksdz1hKCJPcGVyYXRpb25Db250YWluZXIiLCEwKTtyZXR1cm4gMD09PV8ubGVuZ3RoP1JlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsIk5vIGNhbGxiYWNrcyIpOlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxfLm1hcCgocz0+UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5OmAke3N9YH0sUmUuY3JlYXRlRWxlbWVudCgiaDIiLG51bGwscyksdVtzXS5tYXAoKG89PlJlLmNyZWF0ZUVsZW1lbnQodyx7a2V5OmAke3N9LSR7by5wYXRofS0ke28ubWV0aG9kfWAsb3A6by5vcGVyYXRpb24sdGFnOiJjYWxsYmFja3MiLG1ldGhvZDpvLm1ldGhvZCxwYXRoOm8ucGF0aCxzcGVjUGF0aDpvLnNwZWNQYXRoLGFsbG93VHJ5SXRPdXQ6ITF9KSkpKSkpKX0sZ2V0RGVmYXVsdFJlcXVlc3RCb2R5VmFsdWU9KHMsbyxpLGEpPT57Y29uc3QgdT1zLmdldEluKFsiY29udGVudCIsb10pPz8oMCx6ZS5PcmRlcmVkTWFwKSgpLF89dS5nZXQoInNjaGVtYSIsKDAsemUuT3JkZXJlZE1hcCkoKSkudG9KUygpLHc9dm9pZCAwIT09dS5nZXQoImV4YW1wbGVzIikseD11LmdldCgiZXhhbXBsZSIpLEM9dz91LmdldEluKFsiZXhhbXBsZXMiLGksInZhbHVlIl0pOng7cmV0dXJuIHN0cmluZ2lmeShhLmdldFNhbXBsZVNjaGVtYShfLG8se2luY2x1ZGVXcml0ZU9ubHk6ITB9LEMpKX0sY29tcG9uZW50c19yZXF1ZXN0X2JvZHk9KHt1c2VySGFzRWRpdGVkQm9keTpzLHJlcXVlc3RCb2R5Om8scmVxdWVzdEJvZHlWYWx1ZTppLHJlcXVlc3RCb2R5SW5jbHVzaW9uU2V0dGluZzphLHJlcXVlc3RCb2R5RXJyb3JzOnUsZ2V0Q29tcG9uZW50Ol8sZ2V0Q29uZmlnczp3LHNwZWNTZWxlY3RvcnM6eCxmbjpDLGNvbnRlbnRUeXBlOmosaXNFeGVjdXRlOkwsc3BlY1BhdGg6QixvbkNoYW5nZTokLG9uQ2hhbmdlSW5jbHVkZUVtcHR5OlYsYWN0aXZlRXhhbXBsZXNLZXk6VSx1cGRhdGVBY3RpdmVFeGFtcGxlc0tleTp6LHNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnOll9KT0+e2NvbnN0IGhhbmRsZUZpbGU9cz0+eyQocy50YXJnZXQuZmlsZXNbMF0pfSxzZXRJc0luY2x1ZGVkT3B0aW9ucz1zPT57bGV0IG89e2tleTpzLHNob3VsZERpc3BhdGNoSW5pdDohMSxkZWZhdWx0VmFsdWU6ITB9O3JldHVybiJubyB2YWx1ZSI9PT1hLmdldChzLCJubyB2YWx1ZSIpJiYoby5zaG91bGREaXNwYXRjaEluaXQ9ITApLG99LFo9XygiTWFya2Rvd24iLCEwKSxlZT1fKCJtb2RlbEV4YW1wbGUiKSxpZT1fKCJSZXF1ZXN0Qm9keUVkaXRvciIpLGFlPV8oIkhpZ2hsaWdodENvZGUiLCEwKSxjZT1fKCJFeGFtcGxlc1NlbGVjdFZhbHVlUmV0YWluZXIiKSxsZT1fKCJFeGFtcGxlIikscGU9XygiUGFyYW1ldGVySW5jbHVkZUVtcHR5Iikse3Nob3dDb21tb25FeHRlbnNpb25zOmRlfT13KCksZmU9bz8uZ2V0KCJkZXNjcmlwdGlvbiIpPz9udWxsLHllPW8/LmdldCgiY29udGVudCIpPz9uZXcgemUuT3JkZXJlZE1hcDtqPWp8fHllLmtleVNlcSgpLmZpcnN0KCl8fCIiO2NvbnN0IGJlPXllLmdldChqKT8/KDAsemUuT3JkZXJlZE1hcCkoKSxfZT1iZS5nZXQoInNjaGVtYSIsKDAsemUuT3JkZXJlZE1hcCkoKSksU2U9YmUuZ2V0KCJleGFtcGxlcyIsbnVsbCksd2U9U2U/Lm1hcCgoKHMsaSk9Pntjb25zdCBhPXM/LmdldCgidmFsdWUiLG51bGwpO3JldHVybiBhJiYocz1zLnNldCgidmFsdWUiLGdldERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlKG8saixpLEMpLGEpKSxzfSkpO3U9emUuTGlzdC5pc0xpc3QodSk/dTooMCx6ZS5MaXN0KSgpO2lmKEMuaXNGaWxlVXBsb2FkSW50ZW5kZWQoYmU/LmdldCgic2NoZW1hIiksaikpe2NvbnN0IHM9XygiSW5wdXQiKTtyZXR1cm4gTD9SZS5jcmVhdGVFbGVtZW50KHMse3R5cGU6ImZpbGUiLG9uQ2hhbmdlOmhhbmRsZUZpbGV9KTpSZS5jcmVhdGVFbGVtZW50KCJpIixudWxsLCJFeGFtcGxlIHZhbHVlcyBhcmUgbm90IGF2YWlsYWJsZSBmb3IgIixSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLGopLCIgbWVkaWEgdHlwZXMuIil9aWYoIWJlLnNpemUpcmV0dXJuIG51bGw7aWYoQy5oYXNTY2hlbWFUeXBlKGJlLmdldCgic2NoZW1hIiksIm9iamVjdCIpJiYoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCI9PT1qfHwwPT09ai5pbmRleE9mKCJtdWx0aXBhcnQvIikpJiZfZS5nZXQoInByb3BlcnRpZXMiLCgwLHplLk9yZGVyZWRNYXApKCkpLnNpemU+MCl7Y29uc3Qgcz1fKCJKc29uU2NoZW1hRm9ybSIpLG89XygiUGFyYW1ldGVyRXh0Iiksaj1fZS5nZXQoInByb3BlcnRpZXMiLCgwLHplLk9yZGVyZWRNYXApKCkpO3JldHVybiBpPXplLk1hcC5pc01hcChpKT9pOigwLHplLk9yZGVyZWRNYXApKCksUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJ0YWJsZS1jb250YWluZXIifSxmZSYmUmUuY3JlYXRlRWxlbWVudChaLHtzb3VyY2U6ZmV9KSxSZS5jcmVhdGVFbGVtZW50KCJ0YWJsZSIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJ0Ym9keSIsbnVsbCx6ZS5NYXAuaXNNYXAoaikmJmouZW50cnlTZXEoKS5tYXAoKChbaixVXSk9PntpZihVLmdldCgicmVhZE9ubHkiKSlyZXR1cm47Y29uc3Qgej1VLmdldCgib25lT2YiKT8uZ2V0KDApPy50b0pTKCksWT1VLmdldCgiYW55T2YiKT8uZ2V0KDApPy50b0pTKCk7VT0oMCx6ZS5mcm9tSlMpKEMubWVyZ2VKc29uU2NoZW1hKFUudG9KUygpLHo/P1k/P3t9KSk7bGV0IGllPWRlP2dldENvbW1vbkV4dGVuc2lvbnMoVSk6bnVsbDtjb25zdCBhZT1fZS5nZXQoInJlcXVpcmVkIiwoMCx6ZS5MaXN0KSgpKS5pbmNsdWRlcyhqKSxjZT1DLmdldFNjaGVtYU9iamVjdFR5cGUoVSksbGU9Qy5nZXRTY2hlbWFPYmplY3RUeXBlTGFiZWwoVSksZmU9Qy5nZXRTY2hlbWFPYmplY3RUeXBlKFU/LmdldCgiaXRlbXMiKSkseWU9VS5nZXQoImZvcm1hdCIpLGJlPVUuZ2V0KCJkZXNjcmlwdGlvbiIpLFNlPWkuZ2V0SW4oW2osInZhbHVlIl0pLHdlPWkuZ2V0SW4oW2osImVycm9ycyJdKXx8dSx4ZT1hLmdldChqKXx8ITE7bGV0IFBlPUMuZ2V0U2FtcGxlU2NoZW1hKFUsITEse2luY2x1ZGVXcml0ZU9ubHk6ITB9KTshMT09PVBlJiYoUGU9ImZhbHNlIiksMD09PVBlJiYoUGU9IjAiKSwic3RyaW5nIiE9dHlwZW9mIFBlJiYib2JqZWN0Ij09PWNlJiYoUGU9c3RyaW5naWZ5KFBlKSksInN0cmluZyI9PXR5cGVvZiBQZSYmImFycmF5Ij09PWNlJiYoUGU9SlNPTi5wYXJzZShQZSkpO2NvbnN0IFRlPUMuaXNGaWxlVXBsb2FkSW50ZW5kZWQoVSksJGU9UmUuY3JlYXRlRWxlbWVudChzLHtmbjpDLGRpc3BhdGNoSW5pdGlhbFZhbHVlOiFUZSxzY2hlbWE6VSxkZXNjcmlwdGlvbjpqLGdldENvbXBvbmVudDpfLHZhbHVlOnZvaWQgMD09PVNlP1BlOlNlLHJlcXVpcmVkOmFlLGVycm9yczp3ZSxvbkNoYW5nZTpzPT57JChzLFtqXSl9fSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoInRyIix7a2V5OmosY2xhc3NOYW1lOiJwYXJhbWV0ZXJzIiwiZGF0YS1wcm9wZXJ0eS1uYW1lIjpqfSxSZS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToicGFyYW1ldGVycy1jb2xfbmFtZSJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTphZT8icGFyYW1ldGVyX19uYW1lIHJlcXVpcmVkIjoicGFyYW1ldGVyX19uYW1lIn0saixhZT9SZS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCLCoCoiKTpudWxsKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InBhcmFtZXRlcl9fdHlwZSJ9LGxlLHllJiZSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJwcm9wLWZvcm1hdCJ9LCIoJCIseWUsIikiKSxkZSYmaWUuc2l6ZT9pZS5lbnRyeVNlcSgpLm1hcCgoKFtzLGldKT0+UmUuY3JlYXRlRWxlbWVudChvLHtrZXk6YCR7c30tJHtpfWAseEtleTpzLHhWYWw6aX0pKSk6bnVsbCksUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJwYXJhbWV0ZXJfX2RlcHJlY2F0ZWQifSxVLmdldCgiZGVwcmVjYXRlZCIpPyJkZXByZWNhdGVkIjpudWxsKSksUmUuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6InBhcmFtZXRlcnMtY29sX2Rlc2NyaXB0aW9uIn0sUmUuY3JlYXRlRWxlbWVudChaLHtzb3VyY2U6YmV9KSxMP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCwib2JqZWN0Ij09PWNlfHwib2JqZWN0Ij09PWZlP1JlLmNyZWF0ZUVsZW1lbnQoZWUse2dldENvbXBvbmVudDpfLHNwZWNQYXRoOkIucHVzaCgic2NoZW1hIiksZ2V0Q29uZmlnczp3LGlzRXhlY3V0ZTpMLHNwZWNTZWxlY3RvcnM6eCxzY2hlbWE6VSxleGFtcGxlOiRlfSk6JGUsYWU/bnVsbDpSZS5jcmVhdGVFbGVtZW50KHBlLHtvbkNoYW5nZTpzPT5WKGoscyksaXNJbmNsdWRlZDp4ZSxpc0luY2x1ZGVkT3B0aW9uczpzZXRJc0luY2x1ZGVkT3B0aW9ucyhqKSxpc0Rpc2FibGVkOkFycmF5LmlzQXJyYXkoU2UpPzAhPT1TZS5sZW5ndGg6IWlzRW1wdHlWYWx1ZShTZSl9KSk6bnVsbCkpfSkpKSkpfWNvbnN0IHhlPWdldERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlKG8saixVLEMpO2xldCBQZT1udWxsO2dldEtub3duU3ludGF4SGlnaGxpZ2h0ZXJMYW5ndWFnZSh4ZSkmJihQZT0ianNvbiIpO2NvbnN0IFRlPUw/UmUuY3JlYXRlRWxlbWVudChpZSx7dmFsdWU6aSxlcnJvcnM6dSxkZWZhdWx0VmFsdWU6eGUsb25DaGFuZ2U6JCxnZXRDb21wb25lbnQ6X30pOlJlLmNyZWF0ZUVsZW1lbnQoYWUse2NsYXNzTmFtZToiYm9keS1wYXJhbV9fZXhhbXBsZSIsbGFuZ3VhZ2U6UGV9LHN0cmluZ2lmeShpKXx8eGUpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsZmUmJlJlLmNyZWF0ZUVsZW1lbnQoWix7c291cmNlOmZlfSksd2U/UmUuY3JlYXRlRWxlbWVudChjZSx7dXNlckhhc0VkaXRlZEJvZHk6cyxleGFtcGxlczp3ZSxjdXJyZW50S2V5OlUsY3VycmVudFVzZXJJbnB1dFZhbHVlOmksb25TZWxlY3Q6cz0+e3oocyl9LHVwZGF0ZVZhbHVlOiQsZGVmYXVsdFRvRmlyc3RFeGFtcGxlOiEwLGdldENvbXBvbmVudDpfLHNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnOll9KTpudWxsLFJlLmNyZWF0ZUVsZW1lbnQoZWUse2dldENvbXBvbmVudDpfLGdldENvbmZpZ3M6dyxzcGVjU2VsZWN0b3JzOngsZXhwYW5kRGVwdGg6MSxpc0V4ZWN1dGU6TCxzY2hlbWE6YmUuZ2V0KCJzY2hlbWEiKSxzcGVjUGF0aDpCLnB1c2goImNvbnRlbnQiLGopLGV4YW1wbGU6VGUsaW5jbHVkZVdyaXRlT25seTohMH0pLHdlP1JlLmNyZWF0ZUVsZW1lbnQobGUse2V4YW1wbGU6d2UuZ2V0KFUpLGdldENvbXBvbmVudDpfLGdldENvbmZpZ3M6d30pOm51bGwpfTtjbGFzcyBvcGVyYXRpb25fbGlua19PcGVyYXRpb25MaW5rIGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e2xpbms6cyxuYW1lOm8sZ2V0Q29tcG9uZW50Oml9PXRoaXMucHJvcHMsYT1pKCJNYXJrZG93biIsITApO2xldCB1PXMuZ2V0KCJvcGVyYXRpb25JZCIpfHxzLmdldCgib3BlcmF0aW9uUmVmIiksXz1zLmdldCgicGFyYW1ldGVycyIpJiZzLmdldCgicGFyYW1ldGVycyIpLnRvSlMoKSx3PXMuZ2V0KCJkZXNjcmlwdGlvbiIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wZXJhdGlvbi1saW5rIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJkZXNjcmlwdGlvbiJ9LFJlLmNyZWF0ZUVsZW1lbnQoImIiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCxvKSksdz9SZS5jcmVhdGVFbGVtZW50KGEse3NvdXJjZTp3fSk6bnVsbCksUmUuY3JlYXRlRWxlbWVudCgicHJlIixudWxsLCJPcGVyYXRpb24gYCIsdSwiYCIsUmUuY3JlYXRlRWxlbWVudCgiYnIiLG51bGwpLFJlLmNyZWF0ZUVsZW1lbnQoImJyIixudWxsKSwiUGFyYW1ldGVycyAiLGZ1bmN0aW9uIHBhZFN0cmluZyhzLG8pe2lmKCJzdHJpbmciIT10eXBlb2YgbylyZXR1cm4iIjtyZXR1cm4gby5zcGxpdCgiXG4iKS5tYXAoKChvLGkpPT5pPjA/QXJyYXkocysxKS5qb2luKCIgIikrbzpvKSkuam9pbigiXG4iKX0oMCxKU09OLnN0cmluZ2lmeShfLG51bGwsMikpfHwie30iLFJlLmNyZWF0ZUVsZW1lbnQoImJyIixudWxsKSkpfX1jb25zdCBWUD1vcGVyYXRpb25fbGlua19PcGVyYXRpb25MaW5rLGNvbXBvbmVudHNfc2VydmVycz0oe3NlcnZlcnM6cyxjdXJyZW50U2VydmVyOm8sc2V0U2VsZWN0ZWRTZXJ2ZXI6aSxzZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlOmEsZ2V0U2VydmVyVmFyaWFibGU6dSxnZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZTpffSk9Pntjb25zdCB3PShzLmZpbmQoKHM9PnMuZ2V0KCJ1cmwiKT09PW8pKXx8KDAsemUuT3JkZXJlZE1hcCkoKSkuZ2V0KCJ2YXJpYWJsZXMiKXx8KDAsemUuT3JkZXJlZE1hcCkoKSx4PTAhPT13LnNpemU7KDAsUmUudXNlRWZmZWN0KSgoKCk9PntvfHxpKHMuZmlyc3QoKT8uZ2V0KCJ1cmwiKSl9KSxbXSksKDAsUmUudXNlRWZmZWN0KSgoKCk9Pntjb25zdCB1PXMuZmluZCgocz0+cy5nZXQoInVybCIpPT09bykpO2lmKCF1KXJldHVybiB2b2lkIGkocy5maXJzdCgpLmdldCgidXJsIikpOyh1LmdldCgidmFyaWFibGVzIil8fCgwLHplLk9yZGVyZWRNYXApKCkpLm1hcCgoKHMsaSk9PnthKHtzZXJ2ZXI6byxrZXk6aSx2YWw6cy5nZXQoImRlZmF1bHQiKXx8IiJ9KX0pKX0pLFtvLHNdKTtjb25zdCBDPSgwLFJlLnVzZUNhbGxiYWNrKSgocz0+e2kocy50YXJnZXQudmFsdWUpfSksW2ldKSxqPSgwLFJlLnVzZUNhbGxiYWNrKSgocz0+e2NvbnN0IGk9cy50YXJnZXQuZ2V0QXR0cmlidXRlKCJkYXRhLXZhcmlhYmxlIiksdT1zLnRhcmdldC52YWx1ZTthKHtzZXJ2ZXI6byxrZXk6aSx2YWw6dX0pfSksW2Esb10pO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InNlcnZlcnMifSxSZS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6InNlcnZlcnMifSxSZS5jcmVhdGVFbGVtZW50KCJzZWxlY3QiLHtvbkNoYW5nZTpDLHZhbHVlOm8saWQ6InNlcnZlcnMifSxzLnZhbHVlU2VxKCkubWFwKChzPT5SZS5jcmVhdGVFbGVtZW50KCJvcHRpb24iLHt2YWx1ZTpzLmdldCgidXJsIiksa2V5OnMuZ2V0KCJ1cmwiKX0scy5nZXQoInVybCIpLHMuZ2V0KCJkZXNjcmlwdGlvbiIpJiZgIC0gJHtzLmdldCgiZGVzY3JpcHRpb24iKX1gKSkpLnRvQXJyYXkoKSkpLHgmJlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImNvbXB1dGVkLXVybCJ9LCJDb21wdXRlZCBVUkw6IixSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLF8obykpKSxSZS5jcmVhdGVFbGVtZW50KCJoNCIsbnVsbCwiU2VydmVyIHZhcmlhYmxlcyIpLFJlLmNyZWF0ZUVsZW1lbnQoInRhYmxlIixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInRib2R5IixudWxsLHcuZW50cnlTZXEoKS5tYXAoKChbcyxpXSk9PlJlLmNyZWF0ZUVsZW1lbnQoInRyIix7a2V5OnN9LFJlLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLHMpLFJlLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLGkuZ2V0KCJlbnVtIik/UmUuY3JlYXRlRWxlbWVudCgic2VsZWN0Iix7ImRhdGEtdmFyaWFibGUiOnMsb25DaGFuZ2U6an0saS5nZXQoImVudW0iKS5tYXAoKGk9PlJlLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIse3NlbGVjdGVkOmk9PT11KG8scyksa2V5OmksdmFsdWU6aX0saSkpKSk6UmUuY3JlYXRlRWxlbWVudCgiaW5wdXQiLHt0eXBlOiJ0ZXh0Iix2YWx1ZTp1KG8scyl8fCIiLG9uQ2hhbmdlOmosImRhdGEtdmFyaWFibGUiOnN9KSkpKSkpKSkpfTtjbGFzcyBTZXJ2ZXJzQ29udGFpbmVyIGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e3NwZWNTZWxlY3RvcnM6cyxvYXMzU2VsZWN0b3JzOm8sb2FzM0FjdGlvbnM6aSxnZXRDb21wb25lbnQ6YX09dGhpcy5wcm9wcyx1PXMuc2VydmVycygpLF89YSgiU2VydmVycyIpO3JldHVybiB1JiZ1LnNpemU/UmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6InNlcnZlcnMtdGl0bGUifSwiU2VydmVycyIpLFJlLmNyZWF0ZUVsZW1lbnQoXyx7c2VydmVyczp1LGN1cnJlbnRTZXJ2ZXI6by5zZWxlY3RlZFNlcnZlcigpLHNldFNlbGVjdGVkU2VydmVyOmkuc2V0U2VsZWN0ZWRTZXJ2ZXIsc2V0U2VydmVyVmFyaWFibGVWYWx1ZTppLnNldFNlcnZlclZhcmlhYmxlVmFsdWUsZ2V0U2VydmVyVmFyaWFibGU6by5zZXJ2ZXJWYXJpYWJsZVZhbHVlLGdldEVmZmVjdGl2ZVNlcnZlclZhbHVlOm8uc2VydmVyRWZmZWN0aXZlVmFsdWV9KSk6bnVsbH19Y29uc3QgVVA9RnVuY3Rpb24ucHJvdG90eXBlO2NsYXNzIFJlcXVlc3RCb2R5RWRpdG9yIGV4dGVuZHMgUmUuUHVyZUNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXtvbkNoYW5nZTpVUCx1c2VySGFzRWRpdGVkQm9keTohMX07Y29uc3RydWN0b3IocyxvKXtzdXBlcihzLG8pLHRoaXMuc3RhdGU9e3ZhbHVlOnN0cmluZ2lmeShzLnZhbHVlKXx8cy5kZWZhdWx0VmFsdWV9LHMub25DaGFuZ2Uocy52YWx1ZSl9YXBwbHlEZWZhdWx0VmFsdWU9cz0+e2NvbnN0e29uQ2hhbmdlOm8sZGVmYXVsdFZhbHVlOml9PXN8fHRoaXMucHJvcHM7cmV0dXJuIHRoaXMuc2V0U3RhdGUoe3ZhbHVlOml9KSxvKGkpfTtvbkNoYW5nZT1zPT57dGhpcy5wcm9wcy5vbkNoYW5nZShzdHJpbmdpZnkocykpfTtvbkRvbUNoYW5nZT1zPT57Y29uc3Qgbz1zLnRhcmdldC52YWx1ZTt0aGlzLnNldFN0YXRlKHt2YWx1ZTpvfSwoKCk9PnRoaXMub25DaGFuZ2UobykpKX07VU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMocyl7dGhpcy5wcm9wcy52YWx1ZSE9PXMudmFsdWUmJnMudmFsdWUhPT10aGlzLnN0YXRlLnZhbHVlJiZ0aGlzLnNldFN0YXRlKHt2YWx1ZTpzdHJpbmdpZnkocy52YWx1ZSl9KSwhcy52YWx1ZSYmcy5kZWZhdWx0VmFsdWUmJnRoaXMuc3RhdGUudmFsdWUmJnRoaXMuYXBwbHlEZWZhdWx0VmFsdWUocyl9cmVuZGVyKCl7bGV0e2dldENvbXBvbmVudDpzLGVycm9yczpvfT10aGlzLnByb3BzLHt2YWx1ZTppfT10aGlzLnN0YXRlLGE9by5zaXplPjA7Y29uc3QgdT1zKCJUZXh0QXJlYSIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImJvZHktcGFyYW0ifSxSZS5jcmVhdGVFbGVtZW50KHUse2NsYXNzTmFtZTpKbigpKCJib2R5LXBhcmFtX190ZXh0Iix7aW52YWxpZDphfSksdGl0bGU6by5zaXplP28uam9pbigiLCAiKToiIix2YWx1ZTppLG9uQ2hhbmdlOnRoaXMub25Eb21DaGFuZ2V9KSl9fWNsYXNzIEh0dHBBdXRoIGV4dGVuZHMgUmUuQ29tcG9uZW50e2NvbnN0cnVjdG9yKHMsbyl7c3VwZXIocyxvKTtsZXR7bmFtZTppLHNjaGVtYTphfT10aGlzLnByb3BzLHU9dGhpcy5nZXRWYWx1ZSgpO3RoaXMuc3RhdGU9e25hbWU6aSxzY2hlbWE6YSx2YWx1ZTp1fX1nZXRWYWx1ZSgpe2xldHtuYW1lOnMsYXV0aG9yaXplZDpvfT10aGlzLnByb3BzO3JldHVybiBvJiZvLmdldEluKFtzLCJ2YWx1ZSJdKX1vbkNoYW5nZT1zPT57bGV0e29uQ2hhbmdlOm99PXRoaXMucHJvcHMse3ZhbHVlOmksbmFtZTphfT1zLnRhcmdldCx1PU9iamVjdC5hc3NpZ24oe30sdGhpcy5zdGF0ZS52YWx1ZSk7YT91W2FdPWk6dT1pLHRoaXMuc2V0U3RhdGUoe3ZhbHVlOnV9LCgoKT0+byh0aGlzLnN0YXRlKSkpfTtyZW5kZXIoKXtsZXR7c2NoZW1hOnMsZ2V0Q29tcG9uZW50Om8sZXJyU2VsZWN0b3JzOmksbmFtZTphLGF1dGhTZWxlY3RvcnM6dX09dGhpcy5wcm9wcztjb25zdCBfPW8oIklucHV0Iiksdz1vKCJSb3ciKSx4PW8oIkNvbCIpLEM9bygiYXV0aEVycm9yIiksaj1vKCJNYXJrZG93biIsITApLEw9bygiSnVtcFRvUGF0aCIsITApLEI9KHMuZ2V0KCJzY2hlbWUiKXx8IiIpLnRvTG93ZXJDYXNlKCksJD11LnNlbGVjdEF1dGhQYXRoKGEpO2xldCBWPXRoaXMuZ2V0VmFsdWUoKSxVPWkuYWxsRXJyb3JzKCkuZmlsdGVyKChzPT5zLmdldCgiYXV0aElkIik9PT1hKSk7aWYoImJhc2ljIj09PUIpe2xldCBvPVY/Vi5nZXQoInVzZXJuYW1lIik6bnVsbDtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsYSksIsKgIChodHRwLCBCYXNpYykiLFJlLmNyZWF0ZUVsZW1lbnQoTCx7cGF0aDokfSkpLG8mJlJlLmNyZWF0ZUVsZW1lbnQoImg2IixudWxsLCJBdXRob3JpemVkIiksUmUuY3JlYXRlRWxlbWVudCh3LG51bGwsUmUuY3JlYXRlRWxlbWVudChqLHtzb3VyY2U6cy5nZXQoImRlc2NyaXB0aW9uIil9KSksUmUuY3JlYXRlRWxlbWVudCh3LG51bGwsUmUuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtodG1sRm9yOiJhdXRoLWJhc2ljLXVzZXJuYW1lIn0sIlVzZXJuYW1lOiIpLG8/UmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwiICIsbywiICIpOlJlLmNyZWF0ZUVsZW1lbnQoeCxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoXyx7aWQ6ImF1dGgtYmFzaWMtdXNlcm5hbWUiLHR5cGU6InRleHQiLHJlcXVpcmVkOiJyZXF1aXJlZCIsbmFtZToidXNlcm5hbWUiLCJhcmlhLWxhYmVsIjoiYXV0aC1iYXNpYy11c2VybmFtZSIsb25DaGFuZ2U6dGhpcy5vbkNoYW5nZSxhdXRvRm9jdXM6ITB9KSkpLFJlLmNyZWF0ZUVsZW1lbnQodyxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjoiYXV0aC1iYXNpYy1wYXNzd29yZCJ9LCJQYXNzd29yZDoiKSxvP1JlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIiAqKioqKiogIik6UmUuY3JlYXRlRWxlbWVudCh4LG51bGwsUmUuY3JlYXRlRWxlbWVudChfLHtpZDoiYXV0aC1iYXNpYy1wYXNzd29yZCIsYXV0b0NvbXBsZXRlOiJuZXctcGFzc3dvcmQiLG5hbWU6InBhc3N3b3JkIix0eXBlOiJwYXNzd29yZCIsImFyaWEtbGFiZWwiOiJhdXRoLWJhc2ljLXBhc3N3b3JkIixvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlfSkpKSxVLnZhbHVlU2VxKCkubWFwKCgocyxvKT0+UmUuY3JlYXRlRWxlbWVudChDLHtlcnJvcjpzLGtleTpvfSkpKSl9cmV0dXJuImJlYXJlciI9PT1CP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJoNCIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLGEpLCLCoCAoaHR0cCwgQmVhcmVyKSIsUmUuY3JlYXRlRWxlbWVudChMLHtwYXRoOiR9KSksViYmUmUuY3JlYXRlRWxlbWVudCgiaDYiLG51bGwsIkF1dGhvcml6ZWQiKSxSZS5jcmVhdGVFbGVtZW50KHcsbnVsbCxSZS5jcmVhdGVFbGVtZW50KGose3NvdXJjZTpzLmdldCgiZGVzY3JpcHRpb24iKX0pKSxSZS5jcmVhdGVFbGVtZW50KHcsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6ImF1dGgtYmVhcmVyLXZhbHVlIn0sIlZhbHVlOiIpLFY/UmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwiICoqKioqKiAiKTpSZS5jcmVhdGVFbGVtZW50KHgsbnVsbCxSZS5jcmVhdGVFbGVtZW50KF8se2lkOiJhdXRoLWJlYXJlci12YWx1ZSIsdHlwZToidGV4dCIsImFyaWEtbGFiZWwiOiJhdXRoLWJlYXJlci12YWx1ZSIsb25DaGFuZ2U6dGhpcy5vbkNoYW5nZSxhdXRvRm9jdXM6ITB9KSkpLFUudmFsdWVTZXEoKS5tYXAoKChzLG8pPT5SZS5jcmVhdGVFbGVtZW50KEMse2Vycm9yOnMsa2V5Om99KSkpKTpSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiZW0iLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiYiIsbnVsbCxhKSwiIEhUVFAgYXV0aGVudGljYXRpb246IHVuc3VwcG9ydGVkIHNjaGVtZSAiLGAnJHtCfSdgKSl9fWNsYXNzIG9wZXJhdGlvbl9zZXJ2ZXJzX09wZXJhdGlvblNlcnZlcnMgZXh0ZW5kcyBSZS5Db21wb25lbnR7c2V0U2VsZWN0ZWRTZXJ2ZXI9cz0+e2NvbnN0e3BhdGg6byxtZXRob2Q6aX09dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5mb3JjZVVwZGF0ZSgpLHRoaXMucHJvcHMuc2V0U2VsZWN0ZWRTZXJ2ZXIocyxgJHtvfToke2l9YCl9O3NldFNlcnZlclZhcmlhYmxlVmFsdWU9cz0+e2NvbnN0e3BhdGg6byxtZXRob2Q6aX09dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5mb3JjZVVwZGF0ZSgpLHRoaXMucHJvcHMuc2V0U2VydmVyVmFyaWFibGVWYWx1ZSh7Li4ucyxuYW1lc3BhY2U6YCR7b306JHtpfWB9KX07Z2V0U2VsZWN0ZWRTZXJ2ZXI9KCk9Pntjb25zdHtwYXRoOnMsbWV0aG9kOm99PXRoaXMucHJvcHM7cmV0dXJuIHRoaXMucHJvcHMuZ2V0U2VsZWN0ZWRTZXJ2ZXIoYCR7c306JHtvfWApfTtnZXRTZXJ2ZXJWYXJpYWJsZT0ocyxvKT0+e2NvbnN0e3BhdGg6aSxtZXRob2Q6YX09dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5wcm9wcy5nZXRTZXJ2ZXJWYXJpYWJsZSh7bmFtZXNwYWNlOmAke2l9OiR7YX1gLHNlcnZlcjpzfSxvKX07Z2V0RWZmZWN0aXZlU2VydmVyVmFsdWU9cz0+e2NvbnN0e3BhdGg6byxtZXRob2Q6aX09dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5wcm9wcy5nZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZSh7c2VydmVyOnMsbmFtZXNwYWNlOmAke299OiR7aX1gfSl9O3JlbmRlcigpe2NvbnN0e29wZXJhdGlvblNlcnZlcnM6cyxwYXRoU2VydmVyczpvLGdldENvbXBvbmVudDppfT10aGlzLnByb3BzO2lmKCFzJiYhbylyZXR1cm4gbnVsbDtjb25zdCBhPWkoIlNlcnZlcnMiKSx1PXN8fG8sXz1zPyJvcGVyYXRpb24iOiJwYXRoIjtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXNlY3Rpb24gb3BlcmF0aW9uLXNlcnZlcnMifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc2VjdGlvbi1oZWFkZXIifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InRhYi1oZWFkZXIifSxSZS5jcmVhdGVFbGVtZW50KCJoNCIse2NsYXNzTmFtZToib3BibG9jay10aXRsZSJ9LCJTZXJ2ZXJzIikpKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stZGVzY3JpcHRpb24td3JhcHBlciJ9LFJlLmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJtZXNzYWdlIn0sIlRoZXNlICIsXywiLWxldmVsIG9wdGlvbnMgb3ZlcnJpZGUgdGhlIGdsb2JhbCBzZXJ2ZXIgb3B0aW9ucy4iKSxSZS5jcmVhdGVFbGVtZW50KGEse3NlcnZlcnM6dSxjdXJyZW50U2VydmVyOnRoaXMuZ2V0U2VsZWN0ZWRTZXJ2ZXIoKSxzZXRTZWxlY3RlZFNlcnZlcjp0aGlzLnNldFNlbGVjdGVkU2VydmVyLHNldFNlcnZlclZhcmlhYmxlVmFsdWU6dGhpcy5zZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlLGdldFNlcnZlclZhcmlhYmxlOnRoaXMuZ2V0U2VydmVyVmFyaWFibGUsZ2V0RWZmZWN0aXZlU2VydmVyVmFsdWU6dGhpcy5nZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZX0pKSl9fWNvbnN0IHpQPXtDYWxsYmFja3M6Y2FsbGJhY2tzLEh0dHBBdXRoLFJlcXVlc3RCb2R5OmNvbXBvbmVudHNfcmVxdWVzdF9ib2R5LFNlcnZlcnM6Y29tcG9uZW50c19zZXJ2ZXJzLFNlcnZlcnNDb250YWluZXIsUmVxdWVzdEJvZHlFZGl0b3IsT3BlcmF0aW9uU2VydmVyczpvcGVyYXRpb25fc2VydmVyc19PcGVyYXRpb25TZXJ2ZXJzLG9wZXJhdGlvbkxpbms6VlB9LFdQPW5ldyBSZW1hcmthYmxlKCJjb21tb25tYXJrIik7V1AuYmxvY2sucnVsZXIuZW5hYmxlKFsidGFibGUiXSksV1Auc2V0KHtsaW5rVGFyZ2V0OiJfYmxhbmsifSk7Y29uc3QgSlA9T0FTM0NvbXBvbmVudFdyYXBGYWN0b3J5KCgoe3NvdXJjZTpzLGNsYXNzTmFtZTpvPSIiLGdldENvbmZpZ3M6aT0oKT0+KHt1c2VVbnNhZmVNYXJrZG93bjohMX0pfSk9PntpZigic3RyaW5nIiE9dHlwZW9mIHMpcmV0dXJuIG51bGw7aWYocyl7Y29uc3R7dXNlVW5zYWZlTWFya2Rvd246YX09aSgpLHU9c2FuaXRpemVyKFdQLnJlbmRlcihzKSx7dXNlVW5zYWZlTWFya2Rvd246YX0pO2xldCBfO3JldHVybiJzdHJpbmciPT10eXBlb2YgdSYmKF89dS50cmltKCkpLFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6X30sY2xhc3NOYW1lOkpuKCkobywicmVuZGVyZWRNYXJrZG93biIpfSl9cmV0dXJuIG51bGx9KSksSFA9T0FTM0NvbXBvbmVudFdyYXBGYWN0b3J5KCgoe09yaTpzLC4uLm99KT0+e2NvbnN0e3NjaGVtYTppLGdldENvbXBvbmVudDphLGVyclNlbGVjdG9yczp1LGF1dGhvcml6ZWQ6XyxvbkF1dGhDaGFuZ2U6dyxuYW1lOngsYXV0aFNlbGVjdG9yczpDfT1vLGo9YSgiSHR0cEF1dGgiKTtyZXR1cm4iaHR0cCI9PT1pLmdldCgidHlwZSIpP1JlLmNyZWF0ZUVsZW1lbnQoaix7a2V5Ongsc2NoZW1hOmksbmFtZTp4LGVyclNlbGVjdG9yczp1LGF1dGhvcml6ZWQ6XyxnZXRDb21wb25lbnQ6YSxvbkNoYW5nZTp3LGF1dGhTZWxlY3RvcnM6Q30pOlJlLmNyZWF0ZUVsZW1lbnQocyxvKX0pKSxLUD1PQVMzQ29tcG9uZW50V3JhcEZhY3RvcnkoT25saW5lVmFsaWRhdG9yQmFkZ2UpO2NsYXNzIE1vZGVsQ29tcG9uZW50IGV4dGVuZHMgUmUuQ29tcG9uZW50e3JlbmRlcigpe2xldHtnZXRDb25maWdzOnMsc2NoZW1hOm8sT3JpOml9PXRoaXMucHJvcHMsYT1bIm1vZGVsLWJveCJdLHU9bnVsbDtyZXR1cm4hMD09PW8uZ2V0KCJkZXByZWNhdGVkIikmJihhLnB1c2goImRlcHJlY2F0ZWQiKSx1PVJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsLWRlcHJlY2F0ZWQtd2FybmluZyJ9LCJEZXByZWNhdGVkOiIpKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YS5qb2luKCIgIil9LHUsUmUuY3JlYXRlRWxlbWVudChpLE1uKCkoe30sdGhpcy5wcm9wcyx7Z2V0Q29uZmlnczpzLGRlcHRoOjEsZXhwYW5kRGVwdGg6dGhpcy5wcm9wcy5leHBhbmREZXB0aHx8MH0pKSl9fWNvbnN0IEdQPU9BUzNDb21wb25lbnRXcmFwRmFjdG9yeShNb2RlbENvbXBvbmVudCksWVA9T0FTM0NvbXBvbmVudFdyYXBGYWN0b3J5KCgoe09yaTpzLC4uLm99KT0+e2NvbnN0e3NjaGVtYTppLGdldENvbXBvbmVudDphLGVycm9yczp1LG9uQ2hhbmdlOl8sZm46d309byx4PXcuaXNGaWxlVXBsb2FkSW50ZW5kZWQoaSksQz1hKCJJbnB1dCIpO3JldHVybiB4P1JlLmNyZWF0ZUVsZW1lbnQoQyx7dHlwZToiZmlsZSIsY2xhc3NOYW1lOnUubGVuZ3RoPyJpbnZhbGlkIjoiIix0aXRsZTp1Lmxlbmd0aD91OiIiLG9uQ2hhbmdlOnM9PntfKHMudGFyZ2V0LmZpbGVzWzBdKX0sZGlzYWJsZWQ6cy5pc0Rpc2FibGVkfSk6UmUuY3JlYXRlRWxlbWVudChzLG8pfSkpLFhQPXtNYXJrZG93bjpKUCxBdXRoSXRlbTpIUCxPcGVuQVBJVmVyc2lvbjpmdW5jdGlvbiBPQVMzMENvbXBvbmVudFdyYXBGYWN0b3J5KHMpe3JldHVybihvLGkpPT5hPT4iZnVuY3Rpb24iPT10eXBlb2YgaS5zcGVjU2VsZWN0b3JzPy5pc09BUzMwP2kuc3BlY1NlbGVjdG9ycy5pc09BUzMwKCk/UmUuY3JlYXRlRWxlbWVudChzLE1uKCkoe30sYSxpLHtPcmk6b30pKTpSZS5jcmVhdGVFbGVtZW50KG8sYSk6KGNvbnNvbGUud2FybigiT0FTMzAgd3JhcHBlcjogY291bGRuJ3QgZ2V0IHNwZWMiKSxudWxsKX0oKHM9Pntjb25zdHtPcmk6b309cztyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChvLHtvYXNWZXJzaW9uOiIzLjAifSl9KSksSnNvblNjaGVtYV9zdHJpbmc6WVAsbW9kZWw6R1Asb25saW5lVmFsaWRhdG9yQmFkZ2U6S1B9LFFQPSJvYXMzX3NldF9zZXJ2ZXJzIixaUD0ib2FzM19zZXRfcmVxdWVzdF9ib2R5X3ZhbHVlIixlST0ib2FzM19zZXRfcmVxdWVzdF9ib2R5X3JldGFpbl9mbGFnIix0ST0ib2FzM19zZXRfcmVxdWVzdF9ib2R5X2luY2x1c2lvbiIsckk9Im9hczNfc2V0X2FjdGl2ZV9leGFtcGxlc19tZW1iZXIiLG5JPSJvYXMzX3NldF9yZXF1ZXN0X2NvbnRlbnRfdHlwZSIsc0k9Im9hczNfc2V0X3Jlc3BvbnNlX2NvbnRlbnRfdHlwZSIsb0k9Im9hczNfc2V0X3NlcnZlcl92YXJpYWJsZV92YWx1ZSIsaUk9Im9hczNfc2V0X3JlcXVlc3RfYm9keV92YWxpZGF0ZV9lcnJvciIsYUk9Im9hczNfY2xlYXJfcmVxdWVzdF9ib2R5X3ZhbGlkYXRlX2Vycm9yIixjST0ib2FzM19jbGVhcl9yZXF1ZXN0X2JvZHlfdmFsdWUiO2Z1bmN0aW9uIHNldFNlbGVjdGVkU2VydmVyKHMsbyl7cmV0dXJue3R5cGU6UVAscGF5bG9hZDp7c2VsZWN0ZWRTZXJ2ZXJVcmw6cyxuYW1lc3BhY2U6b319fWZ1bmN0aW9uIHNldFJlcXVlc3RCb2R5VmFsdWUoe3ZhbHVlOnMscGF0aE1ldGhvZDpvfSl7cmV0dXJue3R5cGU6WlAscGF5bG9hZDp7dmFsdWU6cyxwYXRoTWV0aG9kOm99fX1jb25zdCBzZXRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlRmxhZz0oe3ZhbHVlOnMscGF0aE1ldGhvZDpvfSk9Pih7dHlwZTplSSxwYXlsb2FkOnt2YWx1ZTpzLHBhdGhNZXRob2Q6b319KTtmdW5jdGlvbiBzZXRSZXF1ZXN0Qm9keUluY2x1c2lvbih7dmFsdWU6cyxwYXRoTWV0aG9kOm8sbmFtZTppfSl7cmV0dXJue3R5cGU6dEkscGF5bG9hZDp7dmFsdWU6cyxwYXRoTWV0aG9kOm8sbmFtZTppfX19ZnVuY3Rpb24gc2V0QWN0aXZlRXhhbXBsZXNNZW1iZXIoe25hbWU6cyxwYXRoTWV0aG9kOm8sY29udGV4dFR5cGU6aSxjb250ZXh0TmFtZTphfSl7cmV0dXJue3R5cGU6ckkscGF5bG9hZDp7bmFtZTpzLHBhdGhNZXRob2Q6byxjb250ZXh0VHlwZTppLGNvbnRleHROYW1lOmF9fX1mdW5jdGlvbiBzZXRSZXF1ZXN0Q29udGVudFR5cGUoe3ZhbHVlOnMscGF0aE1ldGhvZDpvfSl7cmV0dXJue3R5cGU6bkkscGF5bG9hZDp7dmFsdWU6cyxwYXRoTWV0aG9kOm99fX1mdW5jdGlvbiBzZXRSZXNwb25zZUNvbnRlbnRUeXBlKHt2YWx1ZTpzLHBhdGg6byxtZXRob2Q6aX0pe3JldHVybnt0eXBlOnNJLHBheWxvYWQ6e3ZhbHVlOnMscGF0aDpvLG1ldGhvZDppfX19ZnVuY3Rpb24gc2V0U2VydmVyVmFyaWFibGVWYWx1ZSh7c2VydmVyOnMsbmFtZXNwYWNlOm8sa2V5OmksdmFsOmF9KXtyZXR1cm57dHlwZTpvSSxwYXlsb2FkOntzZXJ2ZXI6cyxuYW1lc3BhY2U6byxrZXk6aSx2YWw6YX19fWNvbnN0IHNldFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcj0oe3BhdGg6cyxtZXRob2Q6byx2YWxpZGF0aW9uRXJyb3JzOml9KT0+KHt0eXBlOmlJLHBheWxvYWQ6e3BhdGg6cyxtZXRob2Q6byx2YWxpZGF0aW9uRXJyb3JzOml9fSksY2xlYXJSZXF1ZXN0Qm9keVZhbGlkYXRlRXJyb3I9KHtwYXRoOnMsbWV0aG9kOm99KT0+KHt0eXBlOmFJLHBheWxvYWQ6e3BhdGg6cyxtZXRob2Q6b319KSxpbml0UmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yPSh7cGF0aE1ldGhvZDpzfSk9Pih7dHlwZTphSSxwYXlsb2FkOntwYXRoOnNbMF0sbWV0aG9kOnNbMV19fSksY2xlYXJSZXF1ZXN0Qm9keVZhbHVlPSh7cGF0aE1ldGhvZDpzfSk9Pih7dHlwZTpjSSxwYXlsb2FkOntwYXRoTWV0aG9kOnN9fSk7dmFyIGxJPV9fd2VicGFja19yZXF1aXJlX18oNjA2ODApLHVJPV9fd2VicGFja19yZXF1aXJlX18ubihsSSk7Y29uc3Qgb2FzM19zZWxlY3RvcnNfb25seU9BUzM9cz0+KG8sLi4uaSk9PmE9PntpZihhLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuaXNPQVMzKCkpe2NvbnN0IHU9cyhvLC4uLmkpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB1P3UoYSk6dX1yZXR1cm4gbnVsbH07Y29uc3QgcEk9b2FzM19zZWxlY3RvcnNfb25seU9BUzMoKChzLG8pPT57Y29uc3QgaT1vP1tvLCJzZWxlY3RlZFNlcnZlciJdOlsic2VsZWN0ZWRTZXJ2ZXIiXTtyZXR1cm4gcy5nZXRJbihpKXx8IiJ9KSksaEk9b2FzM19zZWxlY3RvcnNfb25seU9BUzMoKChzLG8saSk9PnMuZ2V0SW4oWyJyZXF1ZXN0RGF0YSIsbyxpLCJib2R5VmFsdWUiXSl8fG51bGwpKSxkST1vYXMzX3NlbGVjdG9yc19vbmx5T0FTMygoKHMsbyxpKT0+cy5nZXRJbihbInJlcXVlc3REYXRhIixvLGksInJldGFpbkJvZHlWYWx1ZSJdKXx8ITEpKSxzZWxlY3REZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZT0ocyxvLGkpPT5zPT57Y29uc3R7b2FzM1NlbGVjdG9yczphLHNwZWNTZWxlY3RvcnM6dSxmbjpffT1zLmdldFN5c3RlbSgpO2lmKHUuaXNPQVMzKCkpe2NvbnN0IHM9YS5yZXF1ZXN0Q29udGVudFR5cGUobyxpKTtpZihzKXJldHVybiBnZXREZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZSh1LnNwZWNSZXNvbHZlZFN1YnRyZWUoWyJwYXRocyIsbyxpLCJyZXF1ZXN0Qm9keSJdKSxzLGEuYWN0aXZlRXhhbXBsZXNNZW1iZXIobyxpLCJyZXF1ZXN0Qm9keSIsInJlcXVlc3RCb2R5IiksXyl9cmV0dXJuIG51bGx9LGZJPW9hczNfc2VsZWN0b3JzX29ubHlPQVMzKCgocyxvLGkpPT5zPT57Y29uc3R7b2FzM1NlbGVjdG9yczphLHNwZWNTZWxlY3RvcnM6dSxmbjpffT1zO2xldCB3PSExO2NvbnN0IHg9YS5yZXF1ZXN0Q29udGVudFR5cGUobyxpKTtsZXQgQz1hLnJlcXVlc3RCb2R5VmFsdWUobyxpKTtjb25zdCBqPXUuc3BlY1Jlc29sdmVkU3VidHJlZShbInBhdGhzIixvLGksInJlcXVlc3RCb2R5Il0pO2lmKCFqKXJldHVybiExO2lmKHplLk1hcC5pc01hcChDKSYmKEM9c3RyaW5naWZ5KEMubWFwRW50cmllcygocz0+emUuTWFwLmlzTWFwKHNbMV0pP1tzWzBdLHNbMV0uZ2V0KCJ2YWx1ZSIpXTpzKSkudG9KUygpKSksemUuTGlzdC5pc0xpc3QoQykmJihDPXN0cmluZ2lmeShDKSkseCl7Y29uc3Qgcz1nZXREZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZShqLHgsYS5hY3RpdmVFeGFtcGxlc01lbWJlcihvLGksInJlcXVlc3RCb2R5IiwicmVxdWVzdEJvZHkiKSxfKTt3PSEhQyYmQyE9PXN9cmV0dXJuIHd9KSksbUk9b2FzM19zZWxlY3RvcnNfb25seU9BUzMoKChzLG8saSk9PnMuZ2V0SW4oWyJyZXF1ZXN0RGF0YSIsbyxpLCJib2R5SW5jbHVzaW9uIl0pfHwoMCx6ZS5NYXApKCkpKSxnST1vYXMzX3NlbGVjdG9yc19vbmx5T0FTMygoKHMsbyxpKT0+cy5nZXRJbihbInJlcXVlc3REYXRhIixvLGksImVycm9ycyJdKXx8bnVsbCkpLHlJPW9hczNfc2VsZWN0b3JzX29ubHlPQVMzKCgocyxvLGksYSx1KT0+cy5nZXRJbihbImV4YW1wbGVzIixvLGksYSx1LCJhY3RpdmVFeGFtcGxlIl0pfHxudWxsKSksdkk9b2FzM19zZWxlY3RvcnNfb25seU9BUzMoKChzLG8saSk9PnMuZ2V0SW4oWyJyZXF1ZXN0RGF0YSIsbyxpLCJyZXF1ZXN0Q29udGVudFR5cGUiXSl8fG51bGwpKSxiST1vYXMzX3NlbGVjdG9yc19vbmx5T0FTMygoKHMsbyxpKT0+cy5nZXRJbihbInJlcXVlc3REYXRhIixvLGksInJlc3BvbnNlQ29udGVudFR5cGUiXSl8fG51bGwpKSxfST1vYXMzX3NlbGVjdG9yc19vbmx5T0FTMygoKHMsbyxpKT0+e2xldCBhO2lmKCJzdHJpbmciIT10eXBlb2Ygbyl7Y29uc3R7c2VydmVyOnMsbmFtZXNwYWNlOnV9PW87YT11P1t1LCJzZXJ2ZXJWYXJpYWJsZVZhbHVlcyIscyxpXTpbInNlcnZlclZhcmlhYmxlVmFsdWVzIixzLGldfWVsc2V7YT1bInNlcnZlclZhcmlhYmxlVmFsdWVzIixvLGldfXJldHVybiBzLmdldEluKGEpfHxudWxsfSkpLFNJPW9hczNfc2VsZWN0b3JzX29ubHlPQVMzKCgocyxvKT0+e2xldCBpO2lmKCJzdHJpbmciIT10eXBlb2Ygbyl7Y29uc3R7c2VydmVyOnMsbmFtZXNwYWNlOmF9PW87aT1hP1thLCJzZXJ2ZXJWYXJpYWJsZVZhbHVlcyIsc106WyJzZXJ2ZXJWYXJpYWJsZVZhbHVlcyIsc119ZWxzZXtpPVsic2VydmVyVmFyaWFibGVWYWx1ZXMiLG9dfXJldHVybiBzLmdldEluKGkpfHwoMCx6ZS5PcmRlcmVkTWFwKSgpfSkpLEVJPW9hczNfc2VsZWN0b3JzX29ubHlPQVMzKCgocyxvKT0+e3ZhciBpLGE7aWYoInN0cmluZyIhPXR5cGVvZiBvKXtjb25zdHtzZXJ2ZXI6dSxuYW1lc3BhY2U6X309bzthPXUsaT1fP3MuZ2V0SW4oW18sInNlcnZlclZhcmlhYmxlVmFsdWVzIixhXSk6cy5nZXRJbihbInNlcnZlclZhcmlhYmxlVmFsdWVzIixhXSl9ZWxzZSBhPW8saT1zLmdldEluKFsic2VydmVyVmFyaWFibGVWYWx1ZXMiLGFdKTtpPWl8fCgwLHplLk9yZGVyZWRNYXApKCk7bGV0IHU9YTtyZXR1cm4gaS5tYXAoKChzLG8pPT57dT11LnJlcGxhY2UobmV3IFJlZ0V4cChgeyR7dUkoKShvKX19YCwiZyIpLHMpfSkpLHV9KSksd0k9ZnVuY3Rpb24gdmFsaWRhdGVSZXF1ZXN0Qm9keUlzUmVxdWlyZWQocyl7cmV0dXJuKC4uLm8pPT5pPT57Y29uc3QgYT1pLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuc3BlY0pzb24oKTtsZXQgdT1bLi4ub11bMV18fFtdO3JldHVybiFhLmdldEluKFsicGF0aHMiLC4uLnUsInJlcXVlc3RCb2R5IiwicmVxdWlyZWQiXSl8fHMoLi4ubyl9fSgoKHMsbyk9PigocyxvKT0+KG89b3x8W10sISFzLmdldEluKFsicmVxdWVzdERhdGEiLC4uLm8sImJvZHlWYWx1ZSJdKSkpKHMsbykpKSx2YWxpZGF0ZVNoYWxsb3dSZXF1aXJlZD0ocyx7b2FzM1JlcXVpcmVkUmVxdWVzdEJvZHlDb250ZW50VHlwZTpvLG9hczNSZXF1ZXN0Q29udGVudFR5cGU6aSxvYXMzUmVxdWVzdEJvZHlWYWx1ZTphfSk9PntsZXQgdT1bXTtpZighemUuTWFwLmlzTWFwKGEpKXJldHVybiB1O2xldCBfPVtdO3JldHVybiBPYmplY3Qua2V5cyhvLnJlcXVlc3RDb250ZW50VHlwZSkuZm9yRWFjaCgocz0+e2lmKHM9PT1pKXtvLnJlcXVlc3RDb250ZW50VHlwZVtzXS5mb3JFYWNoKChzPT57Xy5pbmRleE9mKHMpPDAmJl8ucHVzaChzKX0pKX19KSksXy5mb3JFYWNoKChzPT57YS5nZXRJbihbcywidmFsdWUiXSl8fHUucHVzaChzKX0pKSx1fSx4ST14cygpKFsiZ2V0IiwicHV0IiwicG9zdCIsImRlbGV0ZSIsIm9wdGlvbnMiLCJoZWFkIiwicGF0Y2giLCJ0cmFjZSJdKSxrST17W1FQXToocyx7cGF5bG9hZDp7c2VsZWN0ZWRTZXJ2ZXJVcmw6byxuYW1lc3BhY2U6aX19KT0+e2NvbnN0IGE9aT9baSwic2VsZWN0ZWRTZXJ2ZXIiXTpbInNlbGVjdGVkU2VydmVyIl07cmV0dXJuIHMuc2V0SW4oYSxvKX0sW1pQXToocyx7cGF5bG9hZDp7dmFsdWU6byxwYXRoTWV0aG9kOml9fSk9PntsZXRbYSx1XT1pO2lmKCF6ZS5NYXAuaXNNYXAobykpcmV0dXJuIHMuc2V0SW4oWyJyZXF1ZXN0RGF0YSIsYSx1LCJib2R5VmFsdWUiXSxvKTtsZXQgXyx3PXMuZ2V0SW4oWyJyZXF1ZXN0RGF0YSIsYSx1LCJib2R5VmFsdWUiXSl8fCgwLHplLk1hcCkoKTt6ZS5NYXAuaXNNYXAodyl8fCh3PSgwLHplLk1hcCkoKSk7Y29uc3RbLi4ueF09by5rZXlzKCk7cmV0dXJuIHguZm9yRWFjaCgocz0+e2xldCBpPW8uZ2V0SW4oW3NdKTt3LmhhcyhzKSYmemUuTWFwLmlzTWFwKGkpfHwoXz13LnNldEluKFtzLCJ2YWx1ZSJdLGkpKX0pKSxzLnNldEluKFsicmVxdWVzdERhdGEiLGEsdSwiYm9keVZhbHVlIl0sXyl9LFtlSV06KHMse3BheWxvYWQ6e3ZhbHVlOm8scGF0aE1ldGhvZDppfX0pPT57bGV0W2EsdV09aTtyZXR1cm4gcy5zZXRJbihbInJlcXVlc3REYXRhIixhLHUsInJldGFpbkJvZHlWYWx1ZSJdLG8pfSxbdEldOihzLHtwYXlsb2FkOnt2YWx1ZTpvLHBhdGhNZXRob2Q6aSxuYW1lOmF9fSk9PntsZXRbdSxfXT1pO3JldHVybiBzLnNldEluKFsicmVxdWVzdERhdGEiLHUsXywiYm9keUluY2x1c2lvbiIsYV0sbyl9LFtySV06KHMse3BheWxvYWQ6e25hbWU6byxwYXRoTWV0aG9kOmksY29udGV4dFR5cGU6YSxjb250ZXh0TmFtZTp1fX0pPT57bGV0W18sd109aTtyZXR1cm4gcy5zZXRJbihbImV4YW1wbGVzIixfLHcsYSx1LCJhY3RpdmVFeGFtcGxlIl0sbyl9LFtuSV06KHMse3BheWxvYWQ6e3ZhbHVlOm8scGF0aE1ldGhvZDppfX0pPT57bGV0W2EsdV09aTtyZXR1cm4gcy5zZXRJbihbInJlcXVlc3REYXRhIixhLHUsInJlcXVlc3RDb250ZW50VHlwZSJdLG8pfSxbc0ldOihzLHtwYXlsb2FkOnt2YWx1ZTpvLHBhdGg6aSxtZXRob2Q6YX19KT0+cy5zZXRJbihbInJlcXVlc3REYXRhIixpLGEsInJlc3BvbnNlQ29udGVudFR5cGUiXSxvKSxbb0ldOihzLHtwYXlsb2FkOntzZXJ2ZXI6byxuYW1lc3BhY2U6aSxrZXk6YSx2YWw6dX19KT0+e2NvbnN0IF89aT9baSwic2VydmVyVmFyaWFibGVWYWx1ZXMiLG8sYV06WyJzZXJ2ZXJWYXJpYWJsZVZhbHVlcyIsbyxhXTtyZXR1cm4gcy5zZXRJbihfLHUpfSxbaUldOihzLHtwYXlsb2FkOntwYXRoOm8sbWV0aG9kOmksdmFsaWRhdGlvbkVycm9yczphfX0pPT57bGV0IHU9W107aWYodS5wdXNoKCJSZXF1aXJlZCBmaWVsZCBpcyBub3QgcHJvdmlkZWQiKSxhLm1pc3NpbmdCb2R5VmFsdWUpcmV0dXJuIHMuc2V0SW4oWyJyZXF1ZXN0RGF0YSIsbyxpLCJlcnJvcnMiXSwoMCx6ZS5mcm9tSlMpKHUpKTtpZihhLm1pc3NpbmdSZXF1aXJlZEtleXMmJmEubWlzc2luZ1JlcXVpcmVkS2V5cy5sZW5ndGg+MCl7Y29uc3R7bWlzc2luZ1JlcXVpcmVkS2V5czpffT1hO3JldHVybiBzLnVwZGF0ZUluKFsicmVxdWVzdERhdGEiLG8saSwiYm9keVZhbHVlIl0sKDAsemUuZnJvbUpTKSh7fSksKHM9Pl8ucmVkdWNlKCgocyxvKT0+cy5zZXRJbihbbywiZXJyb3JzIl0sKDAsemUuZnJvbUpTKSh1KSkpLHMpKSl9cmV0dXJuIGNvbnNvbGUud2FybigidW5leHBlY3RlZCByZXN1bHQ6IFNFVF9SRVFVRVNUX0JPRFlfVkFMSURBVEVfRVJST1IiKSxzfSxbYUldOihzLHtwYXlsb2FkOntwYXRoOm8sbWV0aG9kOml9fSk9Pntjb25zdCBhPXMuZ2V0SW4oWyJyZXF1ZXN0RGF0YSIsbyxpLCJib2R5VmFsdWUiXSk7aWYoIXplLk1hcC5pc01hcChhKSlyZXR1cm4gcy5zZXRJbihbInJlcXVlc3REYXRhIixvLGksImVycm9ycyJdLCgwLHplLmZyb21KUykoW10pKTtjb25zdFsuLi51XT1hLmtleXMoKTtyZXR1cm4gdT9zLnVwZGF0ZUluKFsicmVxdWVzdERhdGEiLG8saSwiYm9keVZhbHVlIl0sKDAsemUuZnJvbUpTKSh7fSksKHM9PnUucmVkdWNlKCgocyxvKT0+cy5zZXRJbihbbywiZXJyb3JzIl0sKDAsemUuZnJvbUpTKShbXSkpKSxzKSkpOnN9LFtjSV06KHMse3BheWxvYWQ6e3BhdGhNZXRob2Q6b319KT0+e2xldFtpLGFdPW87Y29uc3QgdT1zLmdldEluKFsicmVxdWVzdERhdGEiLGksYSwiYm9keVZhbHVlIl0pO3JldHVybiB1P3plLk1hcC5pc01hcCh1KT9zLnNldEluKFsicmVxdWVzdERhdGEiLGksYSwiYm9keVZhbHVlIl0sKDAsemUuTWFwKSgpKTpzLnNldEluKFsicmVxdWVzdERhdGEiLGksYSwiYm9keVZhbHVlIl0sIiIpOnN9fTtmdW5jdGlvbiBvYXMzKHtnZXRTeXN0ZW06c30pe2NvbnN0IG89KHM9PihvLGk9bnVsbCk9Pntjb25zdHtnZXRDb25maWdzOmEsZm46dX09cygpLHtmaWxlVXBsb2FkTWVkaWFUeXBlczpffT1hKCk7aWYoInN0cmluZyI9PXR5cGVvZiBpJiZfLnNvbWUoKHM9Pmkuc3RhcnRzV2l0aChzKSkpKXJldHVybiEwO2NvbnN0IHc9emUuTWFwLmlzTWFwKG8pO2lmKCF3JiYhYXMoKShvKSlyZXR1cm4hMTtjb25zdCB4PXc/by5nZXQoImZvcm1hdCIpOm8uZm9ybWF0O3JldHVybiB1Lmhhc1NjaGVtYVR5cGUobywic3RyaW5nIikmJlsiYmluYXJ5IiwiYnl0ZSJdLmluY2x1ZGVzKHgpfSkocyk7cmV0dXJue2NvbXBvbmVudHM6elAsd3JhcENvbXBvbmVudHM6WFAsc3RhdGVQbHVnaW5zOntzcGVjOnt3cmFwU2VsZWN0b3JzOlNlLHNlbGVjdG9yczp4ZX0sYXV0aDp7d3JhcFNlbGVjdG9yczp3ZX0sb2FzMzp7YWN0aW9uczp7Li4uUGV9LHJlZHVjZXJzOmtJLHNlbGVjdG9yczp7Li4uVGV9fX0sZm46e2lzRmlsZVVwbG9hZEludGVuZGVkOm8saXNGaWxlVXBsb2FkSW50ZW5kZWRPQVMzMDpvfX19Y29uc3Qgd2ViaG9va3M9KHtzcGVjU2VsZWN0b3JzOnMsZ2V0Q29tcG9uZW50Om99KT0+e2NvbnN0IGk9cy5zZWxlY3RXZWJob29rc09wZXJhdGlvbnMoKSxhPU9iamVjdC5rZXlzKGkpLHU9bygiT3BlcmF0aW9uQ29udGFpbmVyIiwhMCk7cmV0dXJuIDA9PT1hLmxlbmd0aD9udWxsOlJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToid2ViaG9va3MifSxSZS5jcmVhdGVFbGVtZW50KCJoMiIsbnVsbCwiV2ViaG9va3MiKSxhLm1hcCgocz0+UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5OmAke3N9LXdlYmhvb2tgfSxpW3NdLm1hcCgobz0+UmUuY3JlYXRlRWxlbWVudCh1LHtrZXk6YCR7c30tJHtvLm1ldGhvZH0td2ViaG9va2Asb3A6by5vcGVyYXRpb24sdGFnOiJ3ZWJob29rcyIsbWV0aG9kOm8ubWV0aG9kLHBhdGg6cyxzcGVjUGF0aDooMCx6ZS5MaXN0KShvLnNwZWNQYXRoKSxhbGxvd1RyeUl0T3V0OiExfSkpKSkpKSl9LG9hczMxX2NvbXBvbmVudHNfbGljZW5zZT0oe2dldENvbXBvbmVudDpzLHNwZWNTZWxlY3RvcnM6b30pPT57Y29uc3QgaT1vLnNlbGVjdExpY2Vuc2VOYW1lRmllbGQoKSxhPW8uc2VsZWN0TGljZW5zZVVybCgpLHU9cygiTGluayIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm9fX2xpY2Vuc2UifSxhP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaW5mb19fbGljZW5zZV9fdXJsIn0sUmUuY3JlYXRlRWxlbWVudCh1LHt0YXJnZXQ6Il9ibGFuayIsaHJlZjpzYW5pdGl6ZVVybChhKX0saSkpOlJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsaSkpfSxvYXMzMV9jb21wb25lbnRzX2NvbnRhY3Q9KHtnZXRDb21wb25lbnQ6cyxzcGVjU2VsZWN0b3JzOm99KT0+e2NvbnN0IGk9by5zZWxlY3RDb250YWN0TmFtZUZpZWxkKCksYT1vLnNlbGVjdENvbnRhY3RVcmwoKSx1PW8uc2VsZWN0Q29udGFjdEVtYWlsRmllbGQoKSxfPXMoIkxpbmsiKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJpbmZvX19jb250YWN0In0sYSYmUmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoXyx7aHJlZjpzYW5pdGl6ZVVybChhKSx0YXJnZXQ6Il9ibGFuayJ9LGksIiAtIFdlYnNpdGUiKSksdSYmUmUuY3JlYXRlRWxlbWVudChfLHtocmVmOnNhbml0aXplVXJsKGBtYWlsdG86JHt1fWApfSxhP2BTZW5kIGVtYWlsIHRvICR7aX1gOmBDb250YWN0ICR7aX1gKSl9LG9hczMxX2NvbXBvbmVudHNfaW5mbz0oe2dldENvbXBvbmVudDpzLHNwZWNTZWxlY3RvcnM6b30pPT57Y29uc3QgaT1vLnZlcnNpb24oKSxhPW8udXJsKCksdT1vLmJhc2VQYXRoKCksXz1vLmhvc3QoKSx3PW8uc2VsZWN0SW5mb1N1bW1hcnlGaWVsZCgpLHg9by5zZWxlY3RJbmZvRGVzY3JpcHRpb25GaWVsZCgpLEM9by5zZWxlY3RJbmZvVGl0bGVGaWVsZCgpLGo9by5zZWxlY3RJbmZvVGVybXNPZlNlcnZpY2VVcmwoKSxMPW8uc2VsZWN0RXh0ZXJuYWxEb2NzVXJsKCksQj1vLnNlbGVjdEV4dGVybmFsRG9jc0Rlc2NyaXB0aW9uRmllbGQoKSwkPW8uY29udGFjdCgpLFY9by5saWNlbnNlKCksVT1zKCJNYXJrZG93biIsITApLHo9cygiTGluayIpLFk9cygiVmVyc2lvblN0YW1wIiksWj1zKCJPcGVuQVBJVmVyc2lvbiIpLGVlPXMoIkluZm9VcmwiKSxpZT1zKCJJbmZvQmFzZVBhdGgiKSxhZT1zKCJMaWNlbnNlIiwhMCksY2U9cygiQ29udGFjdCIsITApLGxlPXMoIkpzb25TY2hlbWFEaWFsZWN0IiwhMCk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaW5mbyJ9LFJlLmNyZWF0ZUVsZW1lbnQoImhncm91cCIse2NsYXNzTmFtZToibWFpbiJ9LFJlLmNyZWF0ZUVsZW1lbnQoImgyIix7Y2xhc3NOYW1lOiJ0aXRsZSJ9LEMsUmUuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxpJiZSZS5jcmVhdGVFbGVtZW50KFkse3ZlcnNpb246aX0pLFJlLmNyZWF0ZUVsZW1lbnQoWix7b2FzVmVyc2lvbjoiMy4xIn0pKSksKF98fHUpJiZSZS5jcmVhdGVFbGVtZW50KGllLHtob3N0Ol8sYmFzZVBhdGg6dX0pLGEmJlJlLmNyZWF0ZUVsZW1lbnQoZWUse2dldENvbXBvbmVudDpzLHVybDphfSkpLHcmJlJlLmNyZWF0ZUVsZW1lbnQoInAiLHtjbGFzc05hbWU6ImluZm9fX3N1bW1hcnkifSx3KSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm9fX2Rlc2NyaXB0aW9uIGRlc2NyaXB0aW9uIn0sUmUuY3JlYXRlRWxlbWVudChVLHtzb3VyY2U6eH0pKSxqJiZSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm9fX3RvcyJ9LFJlLmNyZWF0ZUVsZW1lbnQoeix7dGFyZ2V0OiJfYmxhbmsiLGhyZWY6c2FuaXRpemVVcmwoail9LCJUZXJtcyBvZiBzZXJ2aWNlIikpLCQuc2l6ZT4wJiZSZS5jcmVhdGVFbGVtZW50KGNlLG51bGwpLFYuc2l6ZT4wJiZSZS5jcmVhdGVFbGVtZW50KGFlLG51bGwpLEwmJlJlLmNyZWF0ZUVsZW1lbnQoeix7Y2xhc3NOYW1lOiJpbmZvX19leHRkb2NzIix0YXJnZXQ6Il9ibGFuayIsaHJlZjpzYW5pdGl6ZVVybChMKX0sQnx8TCksUmUuY3JlYXRlRWxlbWVudChsZSxudWxsKSl9LGpzb25fc2NoZW1hX2RpYWxlY3Q9KHtnZXRDb21wb25lbnQ6cyxzcGVjU2VsZWN0b3JzOm99KT0+e2NvbnN0IGk9by5zZWxlY3RKc29uU2NoZW1hRGlhbGVjdEZpZWxkKCksYT1vLnNlbGVjdEpzb25TY2hlbWFEaWFsZWN0RGVmYXVsdCgpLHU9cygiTGluayIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KFJlLkZyYWdtZW50LG51bGwsaSYmaT09PWEmJlJlLmNyZWF0ZUVsZW1lbnQoInAiLHtjbGFzc05hbWU6ImluZm9fX2pzb25zY2hlbWFkaWFsZWN0In0sIkpTT04gU2NoZW1hIGRpYWxlY3Q6IiwiICIsUmUuY3JlYXRlRWxlbWVudCh1LHt0YXJnZXQ6Il9ibGFuayIsaHJlZjpzYW5pdGl6ZVVybChpKX0saSkpLGkmJmkhPT1hJiZSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImVycm9yLXdyYXBwZXIifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im5vLW1hcmdpbiJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZXJyb3JzIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvcnMtd3JhcHBlciJ9LFJlLmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJjZW50ZXIifSwiV2FybmluZyIpLFJlLmNyZWF0ZUVsZW1lbnQoInAiLHtjbGFzc05hbWU6Im1lc3NhZ2UifSxSZS5jcmVhdGVFbGVtZW50KCJzdHJvbmciLG51bGwsIk9wZW5BUEkuanNvblNjaGVtYURpYWxlY3QiKSwiIGZpZWxkIGNvbnRhaW5zIGEgdmFsdWUgZGlmZmVyZW50IGZyb20gdGhlIGRlZmF1bHQgdmFsdWUgb2YiLCIgIixSZS5jcmVhdGVFbGVtZW50KHUse3RhcmdldDoiX2JsYW5rIixocmVmOmF9LGEpLCIuIFZhbHVlcyBkaWZmZXJlbnQgZnJvbSB0aGUgZGVmYXVsdCBvbmUgYXJlIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkLiBQbGVhc2UgZWl0aGVyIG9taXQgdGhlIGZpZWxkIG9yIHByb3ZpZGUgaXQgd2l0aCB0aGUgZGVmYXVsdCB2YWx1ZS4iKSkpKSkpfSx2ZXJzaW9uX3ByYWdtYV9maWx0ZXI9KHtieXBhc3M6cyxpc1N3YWdnZXIyOm8saXNPQVMzOmksaXNPQVMzMTphLGFsc29TaG93OnUsY2hpbGRyZW46X30pPT5zP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxfKTpvJiYoaXx8YSk/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJ2ZXJzaW9uLXByYWdtYSJ9LHUsUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJ2ZXJzaW9uLXByYWdtYV9fbWVzc2FnZSB2ZXJzaW9uLXByYWdtYV9fbWVzc2FnZS0tYW1iaWd1b3VzIn0sUmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImgzIixudWxsLCJVbmFibGUgdG8gcmVuZGVyIHRoaXMgZGVmaW5pdGlvbiIpLFJlLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsUmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwic3dhZ2dlciIpLCIgYW5kICIsUmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwib3BlbmFwaSIpLCIgZmllbGRzIGNhbm5vdCBiZSBwcmVzZW50IGluIHRoZSBzYW1lIFN3YWdnZXIgb3IgT3BlbkFQSSBkZWZpbml0aW9uLiBQbGVhc2UgcmVtb3ZlIG9uZSBvZiB0aGUgZmllbGRzLiIpLFJlLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIlN1cHBvcnRlZCB2ZXJzaW9uIGZpZWxkcyBhcmUgIixSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCdzd2FnZ2VyOiAiMi4wIicpLCIgYW5kIHRob3NlIHRoYXQgbWF0Y2ggIixSZS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJvcGVuYXBpOiAzLngueSIpLCIgKGZvciBleGFtcGxlLCIsIiAiLFJlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIm9wZW5hcGk6IDMuMS4wIiksIikuIikpKSk6b3x8aXx8YT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsXyk6UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJ2ZXJzaW9uLXByYWdtYSJ9LHUsUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJ2ZXJzaW9uLXByYWdtYV9fbWVzc2FnZSB2ZXJzaW9uLXByYWdtYV9fbWVzc2FnZS0tbWlzc2luZyJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJoMyIsbnVsbCwiVW5hYmxlIHRvIHJlbmRlciB0aGlzIGRlZmluaXRpb24iKSxSZS5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJUaGUgcHJvdmlkZWQgZGVmaW5pdGlvbiBkb2VzIG5vdCBzcGVjaWZ5IGEgdmFsaWQgdmVyc2lvbiBmaWVsZC4iKSxSZS5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJQbGVhc2UgaW5kaWNhdGUgYSB2YWxpZCBTd2FnZ2VyIG9yIE9wZW5BUEkgdmVyc2lvbiBmaWVsZC4gU3VwcG9ydGVkIHZlcnNpb24gZmllbGRzIGFyZSAiLFJlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsJ3N3YWdnZXI6ICIyLjAiJyksIiBhbmQgdGhvc2UgdGhhdCBtYXRjaCAiLFJlLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIm9wZW5hcGk6IDMueC55IiksIiAoZm9yIGV4YW1wbGUsIiwiICIsUmUuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwib3BlbmFwaTogMy4xLjAiKSwiKS4iKSkpKSxnZXRNb2RlbE5hbWU9cz0+InN0cmluZyI9PXR5cGVvZiBzJiZzLmluY2x1ZGVzKCIjL2NvbXBvbmVudHMvc2NoZW1hcy8iKT8ocz0+e2NvbnN0IG89cy5yZXBsYWNlKC9+MS9nLCIvIikucmVwbGFjZSgvfjAvZywifiIpO3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KG8pfWNhdGNoe3JldHVybiBvfX0pKHMucmVwbGFjZSgvXi4qI1wvY29tcG9uZW50c1wvc2NoZW1hc1wvLywiIikpOm51bGwsT0k9KDAsUmUuZm9yd2FyZFJlZikoKCh7c2NoZW1hOnMsZ2V0Q29tcG9uZW50Om8sb25Ub2dnbGU6aT0oKT0+e30sc3BlY1BhdGg6YX0sdSk9Pntjb25zdCBfPW8oIkpTT05TY2hlbWEyMDIwMTIiKSx3PWdldE1vZGVsTmFtZShzLmdldCgiJCRyZWYiKSkseD0oMCxSZS51c2VDYWxsYmFjaykoKChzLG8pPT57aSh3LG8pfSksW3csaV0pO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KF8se25hbWU6dyxzY2hlbWE6cy50b0pTKCkscmVmOnUsb25FeHBhbmQ6eCxpZGVudGlmaWVyOmEudG9KUygpLmpvaW4oIl8iKX0pfSkpLENJPU9JLG1vZGVscz0oe3NwZWNBY3Rpb25zOnMsc3BlY1NlbGVjdG9yczpvLGxheW91dFNlbGVjdG9yczppLGxheW91dEFjdGlvbnM6YSxnZXRDb21wb25lbnQ6dSxnZXRDb25maWdzOl8sZm46d30pPT57Y29uc3QgeD1vLnNlbGVjdFNjaGVtYXMoKSxDPU9iamVjdC5rZXlzKHgpLmxlbmd0aD4wLGo9WyJjb21wb25lbnRzIiwic2NoZW1hcyJdLHtkb2NFeHBhbnNpb246TCxkZWZhdWx0TW9kZWxzRXhwYW5kRGVwdGg6Qn09XygpLCQ9Qj4wJiYibm9uZSIhPT1MLFY9aS5pc1Nob3duKGosJCksVT11KCJDb2xsYXBzZSIpLHo9dSgiSlNPTlNjaGVtYTIwMjAxMiIpLFk9dSgiQXJyb3dVcEljb24iKSxaPXUoIkFycm93RG93bkljb24iKSx7Z2V0VGl0bGU6ZWV9PXcuanNvblNjaGVtYTIwMjAxMi51c2VGbigpOygwLFJlLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgaT1WJiZCPjEsYT1udWxsIT1vLnNwZWNSZXNvbHZlZFN1YnRyZWUoaik7aSYmIWEmJnMucmVxdWVzdFJlc29sdmVkU3VidHJlZShqKX0pLFtWLEJdKTtjb25zdCBpZT0oMCxSZS51c2VDYWxsYmFjaykoKCgpPT57YS5zaG93KGosIVYpfSksW1ZdKSxhZT0oMCxSZS51c2VDYWxsYmFjaykoKHM9PntudWxsIT09cyYmYS5yZWFkeVRvU2Nyb2xsKGoscyl9KSxbXSksaGFuZGxlSlNPTlNjaGVtYTIwMjAxMlJlZj1zPT5vPT57bnVsbCE9PW8mJmEucmVhZHlUb1Njcm9sbChbLi4uaixzXSxvKX0saGFuZGxlSlNPTlNjaGVtYTIwMjAxMkV4cGFuZD1pPT4oYSx1KT0+e2lmKHUpe2NvbnN0IGE9Wy4uLmosaV07bnVsbCE9by5zcGVjUmVzb2x2ZWRTdWJ0cmVlKGEpfHxzLnJlcXVlc3RSZXNvbHZlZFN1YnRyZWUoWy4uLmosaV0pfX07cmV0dXJuIUN8fEI8MD9udWxsOlJlLmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24iLHtjbGFzc05hbWU6Sm4oKSgibW9kZWxzIix7ImlzLW9wZW4iOlZ9KSxyZWY6YWV9LFJlLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIseyJhcmlhLWV4cGFuZGVkIjpWLGNsYXNzTmFtZToibW9kZWxzLWNvbnRyb2wiLG9uQ2xpY2s6aWV9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsIlNjaGVtYXMiKSxWP1JlLmNyZWF0ZUVsZW1lbnQoWSxudWxsKTpSZS5jcmVhdGVFbGVtZW50KFosbnVsbCkpKSxSZS5jcmVhdGVFbGVtZW50KFUse2lzT3BlbmVkOlZ9LE9iamVjdC5lbnRyaWVzKHgpLm1hcCgoKFtzLG9dKT0+e2NvbnN0IGk9ZWUobyx7bG9va3VwOiJiYXNpYyJ9KXx8cztyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCh6LHtrZXk6cyxyZWY6aGFuZGxlSlNPTlNjaGVtYTIwMjAxMlJlZihzKSxzY2hlbWE6byxuYW1lOmksb25FeHBhbmQ6aGFuZGxlSlNPTlNjaGVtYTIwMjAxMkV4cGFuZChzKX0pfSkpKSl9LG11dHVhbF90bHNfYXV0aD0oe3NjaGVtYTpzLGdldENvbXBvbmVudDpvLG5hbWU6aSxhdXRoU2VsZWN0b3JzOmF9KT0+e2NvbnN0IHU9bygiSnVtcFRvUGF0aCIsITApLF89YS5zZWxlY3RBdXRoUGF0aChpKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFJlLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLGksIiAobXV0dWFsVExTKSAiLFJlLmNyZWF0ZUVsZW1lbnQodSx7cGF0aDpffSkpLFJlLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIk11dHVhbCBUTFMgaXMgcmVxdWlyZWQgYnkgdGhpcyBBUEkvT3BlcmF0aW9uLiBDZXJ0aWZpY2F0ZXMgYXJlIG1hbmFnZWQgdmlhIHlvdXIgT3BlcmF0aW5nIFN5c3RlbSBhbmQvb3IgeW91ciBicm93c2VyLiIpLFJlLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwscy5nZXQoImRlc2NyaXB0aW9uIikpKX07Y2xhc3MgYXV0aHNfQXV0aHMgZXh0ZW5kcyBSZS5Db21wb25lbnR7Y29uc3RydWN0b3IocyxvKXtzdXBlcihzLG8pLHRoaXMuc3RhdGU9e319b25BdXRoQ2hhbmdlPXM9PntsZXR7bmFtZTpvfT1zO3RoaXMuc2V0U3RhdGUoe1tvXTpzfSl9O3N1Ym1pdEF1dGg9cz0+e3MucHJldmVudERlZmF1bHQoKTtsZXR7YXV0aEFjdGlvbnM6b309dGhpcy5wcm9wcztvLmF1dGhvcml6ZVdpdGhQZXJzaXN0T3B0aW9uKHRoaXMuc3RhdGUpfTtsb2dvdXRDbGljaz1zPT57cy5wcmV2ZW50RGVmYXVsdCgpO2xldHthdXRoQWN0aW9uczpvLGRlZmluaXRpb25zOml9PXRoaXMucHJvcHMsYT1pLm1hcCgoKHMsbyk9Pm8pKS50b0FycmF5KCk7dGhpcy5zZXRTdGF0ZShhLnJlZHVjZSgoKHMsbyk9PihzW29dPSIiLHMpKSx7fSkpLG8ubG9nb3V0V2l0aFBlcnNpc3RPcHRpb24oYSl9O2Nsb3NlPXM9PntzLnByZXZlbnREZWZhdWx0KCk7bGV0e2F1dGhBY3Rpb25zOm99PXRoaXMucHJvcHM7by5zaG93RGVmaW5pdGlvbnMoITEpfTtyZW5kZXIoKXtsZXR7ZGVmaW5pdGlvbnM6cyxnZXRDb21wb25lbnQ6byxhdXRoU2VsZWN0b3JzOmksZXJyU2VsZWN0b3JzOmF9PXRoaXMucHJvcHM7Y29uc3QgdT1vKCJBdXRoSXRlbSIpLF89bygib2F1dGgyIiwhMCksdz1vKCJCdXR0b24iKSx4PWkuYXV0aG9yaXplZCgpLEM9cy5maWx0ZXIoKChzLG8pPT4hIXguZ2V0KG8pKSksaj1zLmZpbHRlcigocz0+Im9hdXRoMiIhPT1zLmdldCgidHlwZSIpJiYibXV0dWFsVExTIiE9PXMuZ2V0KCJ0eXBlIikpKSxMPXMuZmlsdGVyKChzPT4ib2F1dGgyIj09PXMuZ2V0KCJ0eXBlIikpKSxCPXMuZmlsdGVyKChzPT4ibXV0dWFsVExTIj09PXMuZ2V0KCJ0eXBlIikpKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJhdXRoLWNvbnRhaW5lciJ9LGouc2l6ZT4wJiZSZS5jcmVhdGVFbGVtZW50KCJmb3JtIix7b25TdWJtaXQ6dGhpcy5zdWJtaXRBdXRofSxqLm1hcCgoKHMsXyk9PlJlLmNyZWF0ZUVsZW1lbnQodSx7a2V5Ol8sc2NoZW1hOnMsbmFtZTpfLGdldENvbXBvbmVudDpvLG9uQXV0aENoYW5nZTp0aGlzLm9uQXV0aENoYW5nZSxhdXRob3JpemVkOngsZXJyU2VsZWN0b3JzOmEsYXV0aFNlbGVjdG9yczppfSkpKS50b0FycmF5KCksUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJhdXRoLWJ0bi13cmFwcGVyIn0sai5zaXplPT09Qy5zaXplP1JlLmNyZWF0ZUVsZW1lbnQodyx7Y2xhc3NOYW1lOiJidG4gbW9kYWwtYnRuIGF1dGgiLG9uQ2xpY2s6dGhpcy5sb2dvdXRDbGljaywiYXJpYS1sYWJlbCI6IlJlbW92ZSBhdXRob3JpemF0aW9uIn0sIkxvZ291dCIpOlJlLmNyZWF0ZUVsZW1lbnQodyx7dHlwZToic3VibWl0IixjbGFzc05hbWU6ImJ0biBtb2RhbC1idG4gYXV0aCBhdXRob3JpemUiLCJhcmlhLWxhYmVsIjoiQXBwbHkgY3JlZGVudGlhbHMifSwiQXV0aG9yaXplIiksUmUuY3JlYXRlRWxlbWVudCh3LHtjbGFzc05hbWU6ImJ0biBtb2RhbC1idG4gYXV0aCBidG4tZG9uZSIsb25DbGljazp0aGlzLmNsb3NlfSwiQ2xvc2UiKSkpLEwuc2l6ZT4wP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InNjb3BlLWRlZiJ9LFJlLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIlNjb3BlcyBhcmUgdXNlZCB0byBncmFudCBhbiBhcHBsaWNhdGlvbiBkaWZmZXJlbnQgbGV2ZWxzIG9mIGFjY2VzcyB0byBkYXRhIG9uIGJlaGFsZiBvZiB0aGUgZW5kIHVzZXIuIEVhY2ggQVBJIG1heSBkZWNsYXJlIG9uZSBvciBtb3JlIHNjb3Blcy4iKSxSZS5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJBUEkgcmVxdWlyZXMgdGhlIGZvbGxvd2luZyBzY29wZXMuIFNlbGVjdCB3aGljaCBvbmVzIHlvdSB3YW50IHRvIGdyYW50IHRvIFN3YWdnZXIgVUkuIikpLHMuZmlsdGVyKChzPT4ib2F1dGgyIj09PXMuZ2V0KCJ0eXBlIikpKS5tYXAoKChzLG8pPT5SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6b30sUmUuY3JlYXRlRWxlbWVudChfLHthdXRob3JpemVkOngsc2NoZW1hOnMsbmFtZTpvfSkpKSkudG9BcnJheSgpKTpudWxsLEIuc2l6ZT4wJiZSZS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsQi5tYXAoKChzLF8pPT5SZS5jcmVhdGVFbGVtZW50KHUse2tleTpfLHNjaGVtYTpzLG5hbWU6XyxnZXRDb21wb25lbnQ6byxvbkF1dGhDaGFuZ2U6dGhpcy5vbkF1dGhDaGFuZ2UsYXV0aG9yaXplZDp4LGVyclNlbGVjdG9yczphLGF1dGhTZWxlY3RvcnM6aX0pKSkudG9BcnJheSgpKSl9fWNvbnN0IEFJPWF1dGhzX0F1dGhzLGlzT0FTMzE9cz0+e2NvbnN0IG89cy5nZXQoIm9wZW5hcGkiKTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIG8mJi9eM1wuMVwuKD86WzEtOV1cZCp8MCkkLy50ZXN0KG8pfSxmbl9jcmVhdGVPbmx5T0FTMzFTZWxlY3Rvcj1zPT4obywuLi5pKT0+YT0+e2lmKGEuZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5pc09BUzMxKCkpe2NvbnN0IHU9cyhvLC4uLmkpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB1P3UoYSk6dX1yZXR1cm4gbnVsbH0sY3JlYXRlT25seU9BUzMxU2VsZWN0b3JXcmFwcGVyPXM9PihvLGkpPT4oYSwuLi51KT0+e2lmKGkuZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5pc09BUzMxKCkpe2NvbnN0IF89cyhhLC4uLnUpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBfP18obyxpKTpffXJldHVybiBvKC4uLnUpfSxmbl9jcmVhdGVTeXN0ZW1TZWxlY3Rvcj1zPT4obywuLi5pKT0+YT0+e2NvbnN0IHU9cyhvLGEsLi4uaSk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHU/dShhKTp1fSxjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyPXM9PihvLGkpPT5hPT5pLnNwZWNTZWxlY3RvcnMuaXNPQVMzMSgpP1JlLmNyZWF0ZUVsZW1lbnQocyxNbigpKHt9LGEse29yaWdpbmFsQ29tcG9uZW50Om8sZ2V0U3lzdGVtOmkuZ2V0U3lzdGVtfSkpOlJlLmNyZWF0ZUVsZW1lbnQobyxhKSx3cmFwT0FTMzFGbj0ocyxvKT0+e2NvbnN0e2ZuOmksc3BlY1NlbGVjdG9yczphfT1vO3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMocykubWFwKCgoW3Msb10pPT57Y29uc3QgdT1pW3NdO3JldHVybltzLCguLi5zKT0+YS5pc09BUzMxKCk/byguLi5zKToiZnVuY3Rpb24iPT10eXBlb2YgdT91KC4uLnMpOnZvaWQgMF19KSkpfSxqST1jcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyKCgoe2dldFN5c3RlbTpzfSk9Pntjb25zdCBvPXMoKS5nZXRDb21wb25lbnQoIk9BUzMxTGljZW5zZSIsITApO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KG8sbnVsbCl9KSksUEk9Y3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcigoKHtnZXRTeXN0ZW06c30pPT57Y29uc3Qgbz1zKCkuZ2V0Q29tcG9uZW50KCJPQVMzMUNvbnRhY3QiLCEwKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChvLG51bGwpfSkpLElJPWNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoKCh7Z2V0U3lzdGVtOnN9KT0+e2NvbnN0IG89cygpLmdldENvbXBvbmVudCgiT0FTMzFJbmZvIiwhMCk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQobyxudWxsKX0pKSxnZXRQcm9wZXJ0aWVzPShzLHtpbmNsdWRlUmVhZE9ubHk6byxpbmNsdWRlV3JpdGVPbmx5Oml9KT0+e2lmKCFzPy5wcm9wZXJ0aWVzKXJldHVybnt9O2NvbnN0IGE9T2JqZWN0LmVudHJpZXMocy5wcm9wZXJ0aWVzKS5maWx0ZXIoKChbLHNdKT0+KCEoITA9PT1zPy5yZWFkT25seSl8fG8pJiYoISghMD09PXM/LndyaXRlT25seSl8fGkpKSk7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhhKX0sbWFrZUdldFNjaGVtYUtleXdvcmRzPXM9PntpZigiZnVuY3Rpb24iIT10eXBlb2YgcylyZXR1cm4gbnVsbDtjb25zdCBvPXMoKTtyZXR1cm4oKT0+Wy4uLm8sImRpc2NyaW1pbmF0b3IiLCJ4bWwiLCJleHRlcm5hbERvY3MiLCJleGFtcGxlIiwiJCRyZWYiXX0sVEk9Y3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcigoKHtnZXRTeXN0ZW06cywuLi5vfSk9Pntjb25zdCBpPXMoKSx7Z2V0Q29tcG9uZW50OmEsZm46dSxnZXRDb25maWdzOl99PWksdz1fKCkseD1hKCJPQVMzMU1vZGVsIiksQz1hKCJ3aXRoSlNPTlNjaGVtYTIwMjAxMlN5c3RlbUNvbnRleHQiKTtyZXR1cm4gVEkuTW9kZWxXaXRoSlNPTlNjaGVtYUNvbnRleHQ/Pz1DKHgse2NvbmZpZzp7ZGVmYXVsdCRzY2hlbWE6Imh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzLzMuMS9kaWFsZWN0L2Jhc2UiLGRlZmF1bHRFeHBhbmRlZExldmVsczp3LmRlZmF1bHRNb2RlbEV4cGFuZERlcHRoLGluY2x1ZGVSZWFkT25seTpvLmluY2x1ZGVSZWFkT25seSxpbmNsdWRlV3JpdGVPbmx5Om8uaW5jbHVkZVdyaXRlT25seX0sZm46e2dldFByb3BlcnRpZXM6dS5qc29uU2NoZW1hMjAyMDEyLmdldFByb3BlcnRpZXMsaXNFeHBhbmRhYmxlOnUuanNvblNjaGVtYTIwMjAxMi5pc0V4cGFuZGFibGUsZ2V0U2NoZW1hS2V5d29yZHM6bWFrZUdldFNjaGVtYUtleXdvcmRzKHUuanNvblNjaGVtYTIwMjAxMi5nZXRTY2hlbWFLZXl3b3Jkcyl9fSksUmUuY3JlYXRlRWxlbWVudChUSS5Nb2RlbFdpdGhKU09OU2NoZW1hQ29udGV4dCxvKX0pKSxOST1USSxNST1jcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyKCgoe2dldFN5c3RlbTpzfSk9Pntjb25zdHtnZXRDb21wb25lbnQ6byxmbjppLGdldENvbmZpZ3M6YX09cygpLHU9YSgpO2lmKE1JLk1vZGVsc1dpdGhKU09OU2NoZW1hQ29udGV4dClyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChNSS5Nb2RlbHNXaXRoSlNPTlNjaGVtYUNvbnRleHQsbnVsbCk7Y29uc3QgXz1vKCJPQVMzMU1vZGVscyIsITApLHc9bygid2l0aEpTT05TY2hlbWEyMDIwMTJTeXN0ZW1Db250ZXh0Iik7cmV0dXJuIE1JLk1vZGVsc1dpdGhKU09OU2NoZW1hQ29udGV4dD8/PXcoXyx7Y29uZmlnOntkZWZhdWx0JHNjaGVtYToiaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvMy4xL2RpYWxlY3QvYmFzZSIsZGVmYXVsdEV4cGFuZGVkTGV2ZWxzOnUuZGVmYXVsdE1vZGVsc0V4cGFuZERlcHRoLTEsaW5jbHVkZVJlYWRPbmx5OiEwLGluY2x1ZGVXcml0ZU9ubHk6ITB9LGZuOntnZXRQcm9wZXJ0aWVzOmkuanNvblNjaGVtYTIwMjAxMi5nZXRQcm9wZXJ0aWVzLGlzRXhwYW5kYWJsZTppLmpzb25TY2hlbWEyMDIwMTIuaXNFeHBhbmRhYmxlLGdldFNjaGVtYUtleXdvcmRzOm1ha2VHZXRTY2hlbWFLZXl3b3JkcyhpLmpzb25TY2hlbWEyMDIwMTIuZ2V0U2NoZW1hS2V5d29yZHMpfX0pLFJlLmNyZWF0ZUVsZW1lbnQoTUkuTW9kZWxzV2l0aEpTT05TY2hlbWFDb250ZXh0LG51bGwpfSkpO01JLk1vZGVsc1dpdGhKU09OU2NoZW1hQ29udGV4dD1udWxsO2NvbnN0IFJJPU1JLHdyYXBfY29tcG9uZW50c192ZXJzaW9uX3ByYWdtYV9maWx0ZXI9KHMsbyk9PnM9Pntjb25zdCBpPW8uc3BlY1NlbGVjdG9ycy5pc09BUzMxKCksYT1vLmdldENvbXBvbmVudCgiT0FTMzFWZXJzaW9uUHJhZ21hRmlsdGVyIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoYSxNbigpKHtpc09BUzMxOml9LHMpKX0sREk9Y3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcigoKHtvcmlnaW5hbENvbXBvbmVudDpzLC4uLm99KT0+e2NvbnN0e2dldENvbXBvbmVudDppLHNjaGVtYTphLG5hbWU6dX09byxfPWkoIk11dHVhbFRMU0F1dGgiLCEwKTtyZXR1cm4ibXV0dWFsVExTIj09PWEuZ2V0KCJ0eXBlIik/UmUuY3JlYXRlRWxlbWVudChfLHtzY2hlbWE6YSxuYW1lOnV9KTpSZS5jcmVhdGVFbGVtZW50KHMsbyl9KSksTEk9REksRkk9Y3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcigoKHtnZXRTeXN0ZW06cywuLi5vfSk9Pntjb25zdCBpPXMoKS5nZXRDb21wb25lbnQoIk9BUzMxQXV0aHMiLCEwKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudChpLG8pfSkpLEJJPSgwLHplLk1hcCkoKSwkST1WdCgoKHMsbyk9Pm8uc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpKSxpc09BUzMxKSxzZWxlY3RvcnNfd2ViaG9va3M9KCk9PnM9Pntjb25zdCBvPXMuc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpLmdldCgid2ViaG9va3MiKTtyZXR1cm4gemUuTWFwLmlzTWFwKG8pP286Qkl9LHFJPVZ0KFsocyxvKT0+by5zcGVjU2VsZWN0b3JzLndlYmhvb2tzKCksKHMsbyk9Pm8uc3BlY1NlbGVjdG9ycy52YWxpZE9wZXJhdGlvbk1ldGhvZHMoKSwocyxvKT0+by5zcGVjU2VsZWN0b3JzLnNwZWNSZXNvbHZlZFN1YnRyZWUoWyJ3ZWJob29rcyJdKV0sKChzLG8pPT5zLnJlZHVjZSgoKHMsaSxhKT0+e2lmKCF6ZS5NYXAuaXNNYXAoaSkpcmV0dXJuIHM7Y29uc3QgdT1pLmVudHJ5U2VxKCkuZmlsdGVyKCgoW3NdKT0+by5pbmNsdWRlcyhzKSkpLm1hcCgoKFtzLG9dKT0+KHtvcGVyYXRpb246KDAsemUuTWFwKSh7b3BlcmF0aW9uOm99KSxtZXRob2Q6cyxwYXRoOmEsc3BlY1BhdGg6WyJ3ZWJob29rcyIsYSxzXX0pKSk7cmV0dXJuIHMuY29uY2F0KHUpfSksKDAsemUuTGlzdCkoKSkuZ3JvdXBCeSgocz0+cy5wYXRoKSkubWFwKChzPT5zLnRvQXJyYXkoKSkpLnRvT2JqZWN0KCkpKSxzZWxlY3RvcnNfbGljZW5zZT0oKT0+cz0+e2NvbnN0IG89cy5zcGVjU2VsZWN0b3JzLmluZm8oKS5nZXQoImxpY2Vuc2UiKTtyZXR1cm4gemUuTWFwLmlzTWFwKG8pP286Qkl9LHNlbGVjdExpY2Vuc2VOYW1lRmllbGQ9KCk9PnM9PnMuc3BlY1NlbGVjdG9ycy5saWNlbnNlKCkuZ2V0KCJuYW1lIiwiTGljZW5zZSIpLHNlbGVjdExpY2Vuc2VVcmxGaWVsZD0oKT0+cz0+cy5zcGVjU2VsZWN0b3JzLmxpY2Vuc2UoKS5nZXQoInVybCIpLFZJPVZ0KFsocyxvKT0+by5zcGVjU2VsZWN0b3JzLnVybCgpLChzLG8pPT5vLm9hczNTZWxlY3RvcnMuc2VsZWN0ZWRTZXJ2ZXIoKSwocyxvKT0+by5zcGVjU2VsZWN0b3JzLnNlbGVjdExpY2Vuc2VVcmxGaWVsZCgpXSwoKHMsbyxpKT0+e2lmKGkpcmV0dXJuIHNhZmVCdWlsZFVybChpLHMse3NlbGVjdGVkU2VydmVyOm99KX0pKSxzZWxlY3RMaWNlbnNlSWRlbnRpZmllckZpZWxkPSgpPT5zPT5zLnNwZWNTZWxlY3RvcnMubGljZW5zZSgpLmdldCgiaWRlbnRpZmllciIpLHNlbGVjdG9yc19jb250YWN0PSgpPT5zPT57Y29uc3Qgbz1zLnNwZWNTZWxlY3RvcnMuaW5mbygpLmdldCgiY29udGFjdCIpO3JldHVybiB6ZS5NYXAuaXNNYXAobyk/bzpCSX0sc2VsZWN0Q29udGFjdE5hbWVGaWVsZD0oKT0+cz0+cy5zcGVjU2VsZWN0b3JzLmNvbnRhY3QoKS5nZXQoIm5hbWUiLCJ0aGUgZGV2ZWxvcGVyIiksc2VsZWN0Q29udGFjdEVtYWlsRmllbGQ9KCk9PnM9PnMuc3BlY1NlbGVjdG9ycy5jb250YWN0KCkuZ2V0KCJlbWFpbCIpLHNlbGVjdENvbnRhY3RVcmxGaWVsZD0oKT0+cz0+cy5zcGVjU2VsZWN0b3JzLmNvbnRhY3QoKS5nZXQoInVybCIpLFVJPVZ0KFsocyxvKT0+by5zcGVjU2VsZWN0b3JzLnVybCgpLChzLG8pPT5vLm9hczNTZWxlY3RvcnMuc2VsZWN0ZWRTZXJ2ZXIoKSwocyxvKT0+by5zcGVjU2VsZWN0b3JzLnNlbGVjdENvbnRhY3RVcmxGaWVsZCgpXSwoKHMsbyxpKT0+e2lmKGkpcmV0dXJuIHNhZmVCdWlsZFVybChpLHMse3NlbGVjdGVkU2VydmVyOm99KX0pKSxzZWxlY3RJbmZvVGl0bGVGaWVsZD0oKT0+cz0+cy5zcGVjU2VsZWN0b3JzLmluZm8oKS5nZXQoInRpdGxlIiksc2VsZWN0SW5mb1N1bW1hcnlGaWVsZD0oKT0+cz0+cy5zcGVjU2VsZWN0b3JzLmluZm8oKS5nZXQoInN1bW1hcnkiKSxzZWxlY3RJbmZvRGVzY3JpcHRpb25GaWVsZD0oKT0+cz0+cy5zcGVjU2VsZWN0b3JzLmluZm8oKS5nZXQoImRlc2NyaXB0aW9uIiksc2VsZWN0SW5mb1Rlcm1zT2ZTZXJ2aWNlRmllbGQ9KCk9PnM9PnMuc3BlY1NlbGVjdG9ycy5pbmZvKCkuZ2V0KCJ0ZXJtc09mU2VydmljZSIpLHpJPVZ0KFsocyxvKT0+by5zcGVjU2VsZWN0b3JzLnVybCgpLChzLG8pPT5vLm9hczNTZWxlY3RvcnMuc2VsZWN0ZWRTZXJ2ZXIoKSwocyxvKT0+by5zcGVjU2VsZWN0b3JzLnNlbGVjdEluZm9UZXJtc09mU2VydmljZUZpZWxkKCldLCgocyxvLGkpPT57aWYoaSlyZXR1cm4gc2FmZUJ1aWxkVXJsKGkscyx7c2VsZWN0ZWRTZXJ2ZXI6b30pfSkpLHNlbGVjdEV4dGVybmFsRG9jc0Rlc2NyaXB0aW9uRmllbGQ9KCk9PnM9PnMuc3BlY1NlbGVjdG9ycy5leHRlcm5hbERvY3MoKS5nZXQoImRlc2NyaXB0aW9uIiksc2VsZWN0RXh0ZXJuYWxEb2NzVXJsRmllbGQ9KCk9PnM9PnMuc3BlY1NlbGVjdG9ycy5leHRlcm5hbERvY3MoKS5nZXQoInVybCIpLFdJPVZ0KFsocyxvKT0+by5zcGVjU2VsZWN0b3JzLnVybCgpLChzLG8pPT5vLm9hczNTZWxlY3RvcnMuc2VsZWN0ZWRTZXJ2ZXIoKSwocyxvKT0+by5zcGVjU2VsZWN0b3JzLnNlbGVjdEV4dGVybmFsRG9jc1VybEZpZWxkKCldLCgocyxvLGkpPT57aWYoaSlyZXR1cm4gc2FmZUJ1aWxkVXJsKGkscyx7c2VsZWN0ZWRTZXJ2ZXI6b30pfSkpLHNlbGVjdEpzb25TY2hlbWFEaWFsZWN0RmllbGQ9KCk9PnM9PnMuc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpLmdldCgianNvblNjaGVtYURpYWxlY3QiKSxzZWxlY3RKc29uU2NoZW1hRGlhbGVjdERlZmF1bHQ9KCk9PiJodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy8zLjEvZGlhbGVjdC9iYXNlIixKST1WdCgoKHMsbyk9Pm8uc3BlY1NlbGVjdG9ycy5kZWZpbml0aW9ucygpKSwoKHMsbyk9Pm8uc3BlY1NlbGVjdG9ycy5zcGVjUmVzb2x2ZWRTdWJ0cmVlKFsiY29tcG9uZW50cyIsInNjaGVtYXMiXSkpLCgocyxvKT0+emUuTWFwLmlzTWFwKHMpP3plLk1hcC5pc01hcChvKT9PYmplY3QuZW50cmllcyhzLnRvSlMoKSkucmVkdWNlKCgocyxbaSxhXSk9Pntjb25zdCB1PW8uZ2V0KGkpO3JldHVybiBzW2ldPXU/LnRvSlMoKXx8YSxzfSkse30pOnMudG9KUygpOnt9KSksd3JhcF9zZWxlY3RvcnNfaXNPQVMzPShzLG8pPT4oaSwuLi5hKT0+by5zcGVjU2VsZWN0b3JzLmlzT0FTMzEoKXx8cyguLi5hKSxIST1jcmVhdGVPbmx5T0FTMzFTZWxlY3RvcldyYXBwZXIoKCgpPT4ocyxvKT0+by5vYXMzMVNlbGVjdG9ycy5zZWxlY3RMaWNlbnNlVXJsKCkpKSxLST1jcmVhdGVPbmx5T0FTMzFTZWxlY3RvcldyYXBwZXIoKCgpPT4ocyxvKT0+e2NvbnN0IGk9by5zcGVjU2VsZWN0b3JzLnNlY3VyaXR5RGVmaW5pdGlvbnMoKTtsZXQgYT1zKCk7cmV0dXJuIGk/KGkuZW50cnlTZXEoKS5mb3JFYWNoKCgoW3Msb10pPT57Y29uc3QgaT1vPy5nZXQoInR5cGUiKTsibXV0dWFsVExTIj09PWkmJihhPWEucHVzaChuZXcgemUuTWFwKHtbc106b30pKSl9KSksYSk6YX0pKSxHST1WdChbKHMsbyk9Pm8uc3BlY1NlbGVjdG9ycy51cmwoKSwocyxvKT0+by5vYXMzU2VsZWN0b3JzLnNlbGVjdGVkU2VydmVyKCksKHMsbyk9Pm8uc3BlY1NlbGVjdG9ycy5zZWxlY3RMaWNlbnNlVXJsRmllbGQoKSwocyxvKT0+by5zcGVjU2VsZWN0b3JzLnNlbGVjdExpY2Vuc2VJZGVudGlmaWVyRmllbGQoKV0sKChzLG8saSxhKT0+aT9zYWZlQnVpbGRVcmwoaSxzLHtzZWxlY3RlZFNlcnZlcjpvfSk6YT9gaHR0cHM6Ly9zcGR4Lm9yZy9saWNlbnNlcy8ke2F9Lmh0bWxgOnZvaWQgMCkpLGtleXdvcmRzX0V4YW1wbGU9KHtzY2hlbWE6cyxnZXRTeXN0ZW06b30pPT57Y29uc3R7Zm46aSxnZXRDb21wb25lbnQ6YX09bygpLHtoYXNLZXl3b3JkOnV9PWkuanNvblNjaGVtYTIwMjAxMi51c2VGbigpLF89YSgiSlNPTlNjaGVtYTIwMjAxMkpTT05WaWV3ZXIiKTtyZXR1cm4gdShzLCJleGFtcGxlIik/UmUuY3JlYXRlRWxlbWVudChfLHtuYW1lOiJFeGFtcGxlIix2YWx1ZTpzLmV4YW1wbGUsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1leGFtcGxlIn0pOm51bGx9LGtleXdvcmRzX1htbD0oe3NjaGVtYTpzLGdldFN5c3RlbTpvfSk9Pntjb25zdCBpPXM/LnhtbHx8e30se2ZuOmEsZ2V0Q29tcG9uZW50OnUsZ2V0Q29uZmlnczpffT1vKCkse3Nob3dFeHRlbnNpb25zOnd9PV8oKSx7dXNlQ29tcG9uZW50OngsdXNlSXNFeHBhbmRlZDpDLHVzZVBhdGg6aix1c2VMZXZlbDpMfT1hLmpzb25TY2hlbWEyMDIwMTIse3BhdGg6Qn09aigieG1sIikse2lzRXhwYW5kZWQ6JCxzZXRFeHBhbmRlZDpWLHNldENvbGxhcHNlZDpVfT1DKCJ4bWwiKSxbeixZXT1MKCksWj13P2dldEV4dGVuc2lvbnMoaSk6W10sZWU9ISEoaS5uYW1lfHxpLm5hbWVzcGFjZXx8aS5wcmVmaXh8fFoubGVuZ3RoPjApLGllPXgoIkFjY29yZGlvbiIpLGFlPXgoIkV4cGFuZERlZXBCdXR0b24iKSxjZT11KCJPcGVuQVBJMzFFeHRlbnNpb25zIiksbGU9dSgiSlNPTlNjaGVtYTIwMjAxMlBhdGhDb250ZXh0IikoKSxwZT11KCJKU09OU2NoZW1hMjAyMDEyTGV2ZWxDb250ZXh0IikoKSxkZT0oMCxSZS51c2VDYWxsYmFjaykoKCgpPT57JD9VKCk6VigpfSksWyQsVixVXSksZmU9KDAsUmUudXNlQ2FsbGJhY2spKCgocyxvKT0+e28/Vih7ZGVlcDohMH0pOlUoe2RlZXA6ITB9KX0pLFtWLFVdKTtyZXR1cm4gMD09PU9iamVjdC5rZXlzKGkpLmxlbmd0aD9udWxsOlJlLmNyZWF0ZUVsZW1lbnQobGUuUHJvdmlkZXIse3ZhbHVlOkJ9LFJlLmNyZWF0ZUVsZW1lbnQocGUuUHJvdmlkZXIse3ZhbHVlOll9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0teG1sIiwiZGF0YS1qc29uLXNjaGVtYS1sZXZlbCI6en0sZWU/UmUuY3JlYXRlRWxlbWVudChSZS5GcmFnbWVudCxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoaWUse2V4cGFuZGVkOiQsb25DaGFuZ2U6ZGV9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCJYTUwiKSksUmUuY3JlYXRlRWxlbWVudChhZSx7ZXhwYW5kZWQ6JCxvbkNsaWNrOmZlfSkpOlJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCJYTUwiKSwhMD09PWkuYXR0cmlidXRlJiZSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1tdXRlZCJ9LCJhdHRyaWJ1dGUiKSwhMD09PWkud3JhcHBlZCYmUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tbXV0ZWQifSwid3JhcHBlZCIpLFJlLmNyZWF0ZUVsZW1lbnQoInN0cm9uZyIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeSJ9LCJvYmplY3QiKSxSZS5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZTpKbigpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuIix7Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4tLWNvbGxhcHNlZCI6ISR9KX0sJCYmUmUuY3JlYXRlRWxlbWVudChSZS5GcmFnbWVudCxudWxsLGkubmFtZSYmUmUuY3JlYXRlRWxlbWVudCgibGkiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHkifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQifSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwibmFtZSIpLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0saS5uYW1lKSkpLGkubmFtZXNwYWNlJiZSZS5jcmVhdGVFbGVtZW50KCJsaSIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIn0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sIm5hbWVzcGFjZSIpLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0saS5uYW1lc3BhY2UpKSksaS5wcmVmaXgmJlJlLmNyZWF0ZUVsZW1lbnQoImxpIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQifSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwicHJlZml4IiksUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxpLnByZWZpeCkpKSksWi5sZW5ndGg+MCYmUmUuY3JlYXRlRWxlbWVudChjZSx7b3BlbkFQSVNwZWNPYmo6aSxvcGVuQVBJRXh0ZW5zaW9uczpaLGdldFN5c3RlbTpvfSkpKSkpfSxEaXNjcmltaW5hdG9yX0Rpc2NyaW1pbmF0b3JNYXBwaW5nPSh7ZGlzY3JpbWluYXRvcjpzfSk9Pntjb25zdCBvPXM/Lm1hcHBpbmd8fHt9O3JldHVybiAwPT09T2JqZWN0LmtleXMobykubGVuZ3RoP251bGw6T2JqZWN0LmVudHJpZXMobykubWFwKCgoW3Msb10pPT5SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6YCR7c30tJHtvfWAsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQifSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSxzKSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeSJ9LG8pKSkpfSxrZXl3b3Jkc19EaXNjcmltaW5hdG9yX0Rpc2NyaW1pbmF0b3I9KHtzY2hlbWE6cyxnZXRTeXN0ZW06b30pPT57Y29uc3QgaT1zPy5kaXNjcmltaW5hdG9yfHx7fSx7Zm46YSxnZXRDb21wb25lbnQ6dSxnZXRDb25maWdzOl99PW8oKSx7c2hvd0V4dGVuc2lvbnM6d309XygpLHt1c2VDb21wb25lbnQ6eCx1c2VJc0V4cGFuZGVkOkMsdXNlUGF0aDpqLHVzZUxldmVsOkx9PWEuanNvblNjaGVtYTIwMjAxMixCPSJkaXNjcmltaW5hdG9yIix7cGF0aDokfT1qKEIpLHtpc0V4cGFuZGVkOlYsc2V0RXhwYW5kZWQ6VSxzZXRDb2xsYXBzZWQ6en09QyhCKSxbWSxaXT1MKCksZWU9dz9nZXRFeHRlbnNpb25zKGkpOltdLGllPSEhKGkubWFwcGluZ3x8ZWUubGVuZ3RoPjApLGFlPXgoIkFjY29yZGlvbiIpLGNlPXgoIkV4cGFuZERlZXBCdXR0b24iKSxsZT11KCJPcGVuQVBJMzFFeHRlbnNpb25zIikscGU9dSgiSlNPTlNjaGVtYTIwMjAxMlBhdGhDb250ZXh0IikoKSxkZT11KCJKU09OU2NoZW1hMjAyMDEyTGV2ZWxDb250ZXh0IikoKSxmZT0oMCxSZS51c2VDYWxsYmFjaykoKCgpPT57Vj96KCk6VSgpfSksW1YsVSx6XSkseWU9KDAsUmUudXNlQ2FsbGJhY2spKCgocyxvKT0+e28/VSh7ZGVlcDohMH0pOnooe2RlZXA6ITB9KX0pLFtVLHpdKTtyZXR1cm4gMD09PU9iamVjdC5rZXlzKGkpLmxlbmd0aD9udWxsOlJlLmNyZWF0ZUVsZW1lbnQocGUuUHJvdmlkZXIse3ZhbHVlOiR9LFJlLmNyZWF0ZUVsZW1lbnQoZGUuUHJvdmlkZXIse3ZhbHVlOlp9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZGlzY3JpbWluYXRvciIsImRhdGEtanNvbi1zY2hlbWEtbGV2ZWwiOll9LGllP1JlLmNyZWF0ZUVsZW1lbnQoUmUuRnJhZ21lbnQsbnVsbCxSZS5jcmVhdGVFbGVtZW50KGFlLHtleHBhbmRlZDpWLG9uQ2hhbmdlOmZlfSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiRGlzY3JpbWluYXRvciIpKSxSZS5jcmVhdGVFbGVtZW50KGNlLHtleHBhbmRlZDpWLG9uQ2xpY2s6eWV9KSk6UmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sIkRpc2NyaW1pbmF0b3IiKSxpLnByb3BlcnR5TmFtZSYmUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tbXV0ZWQifSxpLnByb3BlcnR5TmFtZSksUmUuY3JlYXRlRWxlbWVudCgic3Ryb25nIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5In0sIm9iamVjdCIpLFJlLmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOkpuKCkoImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4iLHsianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkIjohVn0pfSxWJiZSZS5jcmVhdGVFbGVtZW50KCJsaSIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSJ9LFJlLmNyZWF0ZUVsZW1lbnQoRGlzY3JpbWluYXRvcl9EaXNjcmltaW5hdG9yTWFwcGluZyx7ZGlzY3JpbWluYXRvcjppfSkpLGVlLmxlbmd0aD4wJiZSZS5jcmVhdGVFbGVtZW50KGxlLHtvcGVuQVBJU3BlY09iajppLG9wZW5BUElFeHRlbnNpb25zOmVlLGdldFN5c3RlbTpvfSkpKSkpfSxrZXl3b3Jkc19PcGVuQVBJRXh0ZW5zaW9ucz0oe29wZW5BUElTcGVjT2JqOnMsZ2V0U3lzdGVtOm8sb3BlbkFQSUV4dGVuc2lvbnM6aX0pPT57Y29uc3R7Zm46YX09bygpLHt1c2VDb21wb25lbnQ6dX09YS5qc29uU2NoZW1hMjAyMDEyLF89dSgiSlNPTlZpZXdlciIpO3JldHVybiBpLm1hcCgobz0+UmUuY3JlYXRlRWxlbWVudChfLHtrZXk6byxuYW1lOm8sdmFsdWU6c1tvXSxjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXItZXh0ZW5zaW9uLWtleXdvcmQifSkpKX0sa2V5d29yZHNfRXh0ZXJuYWxEb2NzPSh7c2NoZW1hOnMsZ2V0U3lzdGVtOm99KT0+e2NvbnN0IGk9cz8uZXh0ZXJuYWxEb2NzfHx7fSx7Zm46YSxnZXRDb21wb25lbnQ6dSxnZXRDb25maWdzOl99PW8oKSx7c2hvd0V4dGVuc2lvbnM6d309XygpLHt1c2VDb21wb25lbnQ6eCx1c2VJc0V4cGFuZGVkOkMsdXNlUGF0aDpqLHVzZUxldmVsOkx9PWEuanNvblNjaGVtYTIwMjAxMixCPSJleHRlcm5hbERvY3MiLHtwYXRoOiR9PWooQikse2lzRXhwYW5kZWQ6VixzZXRFeHBhbmRlZDpVLHNldENvbGxhcHNlZDp6fT1DKEIpLFtZLFpdPUwoKSxlZT13P2dldEV4dGVuc2lvbnMoaSk6W10saWU9ISEoaS5kZXNjcmlwdGlvbnx8aS51cmx8fGVlLmxlbmd0aD4wKSxhZT14KCJBY2NvcmRpb24iKSxjZT14KCJFeHBhbmREZWVwQnV0dG9uIiksbGU9dSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXNjcmlwdGlvbiIpLHBlPXUoIkxpbmsiKSxkZT11KCJPcGVuQVBJMzFFeHRlbnNpb25zIiksZmU9dSgiSlNPTlNjaGVtYTIwMjAxMlBhdGhDb250ZXh0IikoKSx5ZT11KCJKU09OU2NoZW1hMjAyMDEyTGV2ZWxDb250ZXh0IikoKSxiZT0oMCxSZS51c2VDYWxsYmFjaykoKCgpPT57Vj96KCk6VSgpfSksW1YsVSx6XSksX2U9KDAsUmUudXNlQ2FsbGJhY2spKCgocyxvKT0+e28/VSh7ZGVlcDohMH0pOnooe2RlZXA6ITB9KX0pLFtVLHpdKTtyZXR1cm4gMD09PU9iamVjdC5rZXlzKGkpLmxlbmd0aD9udWxsOlJlLmNyZWF0ZUVsZW1lbnQoZmUuUHJvdmlkZXIse3ZhbHVlOiR9LFJlLmNyZWF0ZUVsZW1lbnQoeWUuUHJvdmlkZXIse3ZhbHVlOlp9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZXh0ZXJuYWxEb2NzIiwiZGF0YS1qc29uLXNjaGVtYS1sZXZlbCI6WX0saWU/UmUuY3JlYXRlRWxlbWVudChSZS5GcmFnbWVudCxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoYWUse2V4cGFuZGVkOlYsb25DaGFuZ2U6YmV9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCJFeHRlcm5hbCBkb2N1bWVudGF0aW9uIikpLFJlLmNyZWF0ZUVsZW1lbnQoY2Use2V4cGFuZGVkOlYsb25DbGljazpfZX0pKTpSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiRXh0ZXJuYWwgZG9jdW1lbnRhdGlvbiIpLFJlLmNyZWF0ZUVsZW1lbnQoInN0cm9uZyIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeSJ9LCJvYmplY3QiKSxSZS5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZTpKbigpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuIix7Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4tLWNvbGxhcHNlZCI6IVZ9KX0sViYmUmUuY3JlYXRlRWxlbWVudChSZS5GcmFnbWVudCxudWxsLGkuZGVzY3JpcHRpb24mJlJlLmNyZWF0ZUVsZW1lbnQoImxpIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sUmUuY3JlYXRlRWxlbWVudChsZSx7c2NoZW1hOmksZ2V0U3lzdGVtOm99KSksaS51cmwmJlJlLmNyZWF0ZUVsZW1lbnQoImxpIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIn0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sInVybCIpLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0sUmUuY3JlYXRlRWxlbWVudChwZSx7dGFyZ2V0OiJfYmxhbmsiLGhyZWY6c2FuaXRpemVVcmwoaS51cmwpfSxpLnVybCkpKSkpLGVlLmxlbmd0aD4wJiZSZS5jcmVhdGVFbGVtZW50KGRlLHtvcGVuQVBJU3BlY09iajppLG9wZW5BUElFeHRlbnNpb25zOmVlLGdldFN5c3RlbTpvfSkpKSkpfSxrZXl3b3Jkc19EZXNjcmlwdGlvbj0oe3NjaGVtYTpzLGdldFN5c3RlbTpvfSk9PntpZighcz8uZGVzY3JpcHRpb24pcmV0dXJuIG51bGw7Y29uc3R7Z2V0Q29tcG9uZW50Oml9PW8oKSxhPWkoIk1hcmtkb3duIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZGVzY3JpcHRpb24ifSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItY29yZS1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWNvcmUta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeSJ9LFJlLmNyZWF0ZUVsZW1lbnQoYSx7c291cmNlOnMuZGVzY3JpcHRpb259KSkpfSxZST1jcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyKGtleXdvcmRzX0Rlc2NyaXB0aW9uKSxYST1jcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyKCgoe3NjaGVtYTpzLGdldFN5c3RlbTpvLG9yaWdpbmFsQ29tcG9uZW50Oml9KT0+e2NvbnN0e2dldENvbXBvbmVudDphfT1vKCksdT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERpc2NyaW1pbmF0b3IiKSxfPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkWG1sIiksdz1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4YW1wbGUiKSx4PWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXh0ZXJuYWxEb2NzIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoUmUuRnJhZ21lbnQsbnVsbCxSZS5jcmVhdGVFbGVtZW50KGkse3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudCh1LHtzY2hlbWE6cyxnZXRTeXN0ZW06b30pLFJlLmNyZWF0ZUVsZW1lbnQoXyx7c2NoZW1hOnMsZ2V0U3lzdGVtOm99KSxSZS5jcmVhdGVFbGVtZW50KHgse3NjaGVtYTpzLGdldFN5c3RlbTpvfSksUmUuY3JlYXRlRWxlbWVudCh3LHtzY2hlbWE6cyxnZXRTeXN0ZW06b30pKX0pKSxRST1YSSxrZXl3b3Jkc19Qcm9wZXJ0aWVzPSh7c2NoZW1hOnMsZ2V0U3lzdGVtOm99KT0+e2NvbnN0e2ZuOmksZ2V0Q29tcG9uZW50OmF9PW8oKSx7dXNlQ29tcG9uZW50OnUsdXNlUGF0aDpffT1pLmpzb25TY2hlbWEyMDIwMTIse2dldERlcGVuZGVudFJlcXVpcmVkOncsZ2V0UHJvcGVydGllczp4fT1pLmpzb25TY2hlbWEyMDIwMTIudXNlRm4oKSxDPWkuanNvblNjaGVtYTIwMjAxMi51c2VDb25maWcoKSxqPUFycmF5LmlzQXJyYXkocz8ucmVxdWlyZWQpP3MucmVxdWlyZWQ6W10se3BhdGg6TH09XygicHJvcGVydGllcyIpLEI9dSgiSlNPTlNjaGVtYSIpLCQ9YSgiSlNPTlNjaGVtYTIwMjAxMlBhdGhDb250ZXh0IikoKSxWPXgocyxDKTtyZXR1cm4gMD09PU9iamVjdC5rZXlzKFYpLmxlbmd0aD9udWxsOlJlLmNyZWF0ZUVsZW1lbnQoJC5Qcm92aWRlcix7dmFsdWU6TH0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1wcm9wZXJ0aWVzIn0sUmUuY3JlYXRlRWxlbWVudCgidWwiLG51bGwsT2JqZWN0LmVudHJpZXMoVikubWFwKCgoW28saV0pPT57Y29uc3QgYT1qLmluY2x1ZGVzKG8pLHU9dyhvLHMpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJsaSIse2tleTpvLGNsYXNzTmFtZTpKbigpKCJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5Iix7Impzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHktLXJlcXVpcmVkIjphfSl9LFJlLmNyZWF0ZUVsZW1lbnQoQix7bmFtZTpvLHNjaGVtYTppLGRlcGVuZGVudFJlcXVpcmVkOnV9KSl9KSkpKSl9LFpJPWNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoa2V5d29yZHNfUHJvcGVydGllcyk7Y29uc3QgZVQ9ZnVuY3Rpb24gb2FzMzFfYWZ0ZXJfbG9hZF9hZnRlckxvYWQoe2ZuOnMsZ2V0U3lzdGVtOm99KXtpZihzLmpzb25TY2hlbWEyMDIwMTIpe2NvbnN0IGk9KChzLG8pPT57Y29uc3R7Zm46aX09bygpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBzKXJldHVybiBudWxsO2NvbnN0e2hhc0tleXdvcmQ6YX09aS5qc29uU2NoZW1hMjAyMDEyO3JldHVybiBvPT5zKG8pfHxhKG8sImV4YW1wbGUiKXx8bz8ueG1sfHxvPy5kaXNjcmltaW5hdG9yfHxvPy5leHRlcm5hbERvY3N9KShzLmpzb25TY2hlbWEyMDIwMTIuaXNFeHBhbmRhYmxlLG8pO09iamVjdC5hc3NpZ24odGhpcy5mbi5qc29uU2NoZW1hMjAyMDEyLHtpc0V4cGFuZGFibGU6aSxnZXRQcm9wZXJ0aWVzfSl9aWYoImZ1bmN0aW9uIj09dHlwZW9mIHMuc2FtcGxlRnJvbVNjaGVtYSYmcy5qc29uU2NoZW1hMjAyMDEyKXtjb25zdCBpPXdyYXBPQVMzMUZuKHtzYW1wbGVGcm9tU2NoZW1hOnMuanNvblNjaGVtYTIwMjAxMi5zYW1wbGVGcm9tU2NoZW1hLHNhbXBsZUZyb21TY2hlbWFHZW5lcmljOnMuanNvblNjaGVtYTIwMjAxMi5zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyxjcmVhdGVYTUxFeGFtcGxlOnMuanNvblNjaGVtYTIwMjAxMi5jcmVhdGVYTUxFeGFtcGxlLG1lbW9pemVkU2FtcGxlRnJvbVNjaGVtYTpzLmpzb25TY2hlbWEyMDIwMTIubWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hLG1lbW9pemVkQ3JlYXRlWE1MRXhhbXBsZTpzLmpzb25TY2hlbWEyMDIwMTIubWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlLGdldEpzb25TYW1wbGVTY2hlbWE6cy5qc29uU2NoZW1hMjAyMDEyLmdldEpzb25TYW1wbGVTY2hlbWEsZ2V0WWFtbFNhbXBsZVNjaGVtYTpzLmpzb25TY2hlbWEyMDIwMTIuZ2V0WWFtbFNhbXBsZVNjaGVtYSxnZXRYbWxTYW1wbGVTY2hlbWE6cy5qc29uU2NoZW1hMjAyMDEyLmdldFhtbFNhbXBsZVNjaGVtYSxnZXRTYW1wbGVTY2hlbWE6cy5qc29uU2NoZW1hMjAyMDEyLmdldFNhbXBsZVNjaGVtYSxtZXJnZUpzb25TY2hlbWE6cy5qc29uU2NoZW1hMjAyMDEyLm1lcmdlSnNvblNjaGVtYSxnZXRTY2hlbWFPYmplY3RUeXBlTGFiZWw6bz0+cy5qc29uU2NoZW1hMjAyMDEyLmdldFR5cGUoaW1tdXRhYmxlVG9KUyhvKSksZ2V0U2NoZW1hT2JqZWN0VHlwZTpvPT5zLmpzb25TY2hlbWEyMDIwMTIuZm9sZFR5cGUoaW1tdXRhYmxlVG9KUyhvKT8udHlwZSl9LG8oKSk7T2JqZWN0LmFzc2lnbih0aGlzLmZuLGkpfWNvbnN0IGk9KHM9PihvLGk9bnVsbCk9Pntjb25zdHtmbjphfT1zKCk7aWYoYS5pc0ZpbGVVcGxvYWRJbnRlbmRlZE9BUzMwKG8saSkpcmV0dXJuITA7Y29uc3QgdT16ZS5NYXAuaXNNYXAobyk7aWYoIXUmJiFhcygpKG8pKXJldHVybiExO2NvbnN0IF89dT9vLmdldCgiY29udGVudE1lZGlhVHlwZSIpOm8uY29udGVudE1lZGlhVHlwZSx3PXU/by5nZXQoImNvbnRlbnRFbmNvZGluZyIpOm8uY29udGVudEVuY29kaW5nO3JldHVybiJzdHJpbmciPT10eXBlb2YgXyYmIiIhPT1ffHwic3RyaW5nIj09dHlwZW9mIHcmJiIiIT09d30pKG8pLHtpc0ZpbGVVcGxvYWRJbnRlbmRlZDphfT13cmFwT0FTMzFGbih7aXNGaWxlVXBsb2FkSW50ZW5kZWQ6aX0sbygpKTtpZih0aGlzLmZuLmlzRmlsZVVwbG9hZEludGVuZGVkPWEsdGhpcy5mbi5pc0ZpbGVVcGxvYWRJbnRlbmRlZE9BUzMxPWkscy5qc29uU2NoZW1hMjAyMDEyKXtjb25zdHtoYXNTY2hlbWFUeXBlOml9PXdyYXBPQVMzMUZuKHtoYXNTY2hlbWFUeXBlOnMuanNvblNjaGVtYTIwMjAxMi5oYXNTY2hlbWFUeXBlfSxvKCkpO3RoaXMuZm4uaGFzU2NoZW1hVHlwZT1pfX0sb2FzMzE9KHtmbjpzfSk9Pntjb25zdCBvPXMuY3JlYXRlU3lzdGVtU2VsZWN0b3J8fGZuX2NyZWF0ZVN5c3RlbVNlbGVjdG9yLGk9cy5jcmVhdGVPbmx5T0FTMzFTZWxlY3Rvcnx8Zm5fY3JlYXRlT25seU9BUzMxU2VsZWN0b3I7cmV0dXJue2FmdGVyTG9hZDplVCxmbjp7aXNPQVMzMSxjcmVhdGVTeXN0ZW1TZWxlY3Rvcjpmbl9jcmVhdGVTeXN0ZW1TZWxlY3RvcixjcmVhdGVPbmx5T0FTMzFTZWxlY3Rvcjpmbl9jcmVhdGVPbmx5T0FTMzFTZWxlY3Rvcn0sY29tcG9uZW50czp7V2ViaG9va3M6d2ViaG9va3MsSnNvblNjaGVtYURpYWxlY3Q6anNvbl9zY2hlbWFfZGlhbGVjdCxNdXR1YWxUTFNBdXRoOm11dHVhbF90bHNfYXV0aCxPQVMzMUluZm86b2FzMzFfY29tcG9uZW50c19pbmZvLE9BUzMxTGljZW5zZTpvYXMzMV9jb21wb25lbnRzX2xpY2Vuc2UsT0FTMzFDb250YWN0Om9hczMxX2NvbXBvbmVudHNfY29udGFjdCxPQVMzMVZlcnNpb25QcmFnbWFGaWx0ZXI6dmVyc2lvbl9wcmFnbWFfZmlsdGVyLE9BUzMxTW9kZWw6Q0ksT0FTMzFNb2RlbHM6bW9kZWxzLE9BUzMxQXV0aHM6QUksSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFeGFtcGxlOmtleXdvcmRzX0V4YW1wbGUsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRYbWw6a2V5d29yZHNfWG1sLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGlzY3JpbWluYXRvcjprZXl3b3Jkc19EaXNjcmltaW5hdG9yX0Rpc2NyaW1pbmF0b3IsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFeHRlcm5hbERvY3M6a2V5d29yZHNfRXh0ZXJuYWxEb2NzLE9wZW5BUEkzMUV4dGVuc2lvbnM6a2V5d29yZHNfT3BlbkFQSUV4dGVuc2lvbnN9LHdyYXBDb21wb25lbnRzOntJbmZvQ29udGFpbmVyOklJLExpY2Vuc2U6akksQ29udGFjdDpQSSxWZXJzaW9uUHJhZ21hRmlsdGVyOndyYXBfY29tcG9uZW50c192ZXJzaW9uX3ByYWdtYV9maWx0ZXIsTW9kZWw6TkksTW9kZWxzOlJJLEF1dGhJdGVtOkxJLGF1dGhzOkZJLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVzY3JpcHRpb246WUksSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFeGFtcGxlczpRSSxKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByb3BlcnRpZXM6Wkl9LHN0YXRlUGx1Z2luczp7YXV0aDp7d3JhcFNlbGVjdG9yczp7ZGVmaW5pdGlvbnNUb0F1dGhvcml6ZTpLSX19LHNwZWM6e3NlbGVjdG9yczp7aXNPQVMzMTpvKCRJKSxsaWNlbnNlOnNlbGVjdG9yc19saWNlbnNlLHNlbGVjdExpY2Vuc2VOYW1lRmllbGQsc2VsZWN0TGljZW5zZVVybEZpZWxkLHNlbGVjdExpY2Vuc2VJZGVudGlmaWVyRmllbGQ6aShzZWxlY3RMaWNlbnNlSWRlbnRpZmllckZpZWxkKSxzZWxlY3RMaWNlbnNlVXJsOm8oVkkpLGNvbnRhY3Q6c2VsZWN0b3JzX2NvbnRhY3Qsc2VsZWN0Q29udGFjdE5hbWVGaWVsZCxzZWxlY3RDb250YWN0RW1haWxGaWVsZCxzZWxlY3RDb250YWN0VXJsRmllbGQsc2VsZWN0Q29udGFjdFVybDpvKFVJKSxzZWxlY3RJbmZvVGl0bGVGaWVsZCxzZWxlY3RJbmZvU3VtbWFyeUZpZWxkOmkoc2VsZWN0SW5mb1N1bW1hcnlGaWVsZCksc2VsZWN0SW5mb0Rlc2NyaXB0aW9uRmllbGQsc2VsZWN0SW5mb1Rlcm1zT2ZTZXJ2aWNlRmllbGQsc2VsZWN0SW5mb1Rlcm1zT2ZTZXJ2aWNlVXJsOm8oekkpLHNlbGVjdEV4dGVybmFsRG9jc0Rlc2NyaXB0aW9uRmllbGQsc2VsZWN0RXh0ZXJuYWxEb2NzVXJsRmllbGQsc2VsZWN0RXh0ZXJuYWxEb2NzVXJsOm8oV0kpLHdlYmhvb2tzOmkoc2VsZWN0b3JzX3dlYmhvb2tzKSxzZWxlY3RXZWJob29rc09wZXJhdGlvbnM6aShvKHFJKSksc2VsZWN0SnNvblNjaGVtYURpYWxlY3RGaWVsZCxzZWxlY3RKc29uU2NoZW1hRGlhbGVjdERlZmF1bHQsc2VsZWN0U2NoZW1hczpvKEpJKX0sd3JhcFNlbGVjdG9yczp7aXNPQVMzOndyYXBfc2VsZWN0b3JzX2lzT0FTMyxzZWxlY3RMaWNlbnNlVXJsOkhJfX0sb2FzMzE6e3NlbGVjdG9yczp7c2VsZWN0TGljZW5zZVVybDppKG8oR0kpKX19fX19LHRUPWVzKCkub2JqZWN0LHJUPWVzKCkuYm9vbCxuVD0oZXMoKS5vbmVPZlR5cGUoW3RULHJUXSksKDAsUmUuY3JlYXRlQ29udGV4dCkobnVsbCkpO25ULmRpc3BsYXlOYW1lPSJKU09OU2NoZW1hQ29udGV4dCI7Y29uc3Qgc1Q9KDAsUmUuY3JlYXRlQ29udGV4dCkoMCk7c1QuZGlzcGxheU5hbWU9IkpTT05TY2hlbWFMZXZlbENvbnRleHQiO2NvbnN0IG9UPSgwLFJlLmNyZWF0ZUNvbnRleHQpKG5ldyBTZXQpLGlUPSgwLFJlLmNyZWF0ZUNvbnRleHQpKFtdKTtjbGFzcyBKU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRle3N0YXRpYyBDb2xsYXBzZWQ9ImNvbGxhcHNlZCI7c3RhdGljIEV4cGFuZGVkPSJleHBhbmRlZCI7c3RhdGljIERlZXBseUV4cGFuZGVkPSJkZWVwbHktZXhwYW5kZWQifWNvbnN0IHVzZUNvbmZpZz0oKT0+e2NvbnN0e2NvbmZpZzpzfT0oMCxSZS51c2VDb250ZXh0KShuVCk7cmV0dXJuIHN9LHVzZUNvbXBvbmVudD1zPT57Y29uc3R7Y29tcG9uZW50czpvfT0oMCxSZS51c2VDb250ZXh0KShuVCk7cmV0dXJuIG9bc118fG51bGx9LHVzZUZuPShzPXZvaWQgMCk9Pntjb25zdHtmbjpvfT0oMCxSZS51c2VDb250ZXh0KShuVCk7cmV0dXJuIHZvaWQgMCE9PXM/b1tzXTpvfSx1c2VKU09OU2NoZW1hQ29udGV4dFN0YXRlPSgpPT57Y29uc3RbLHNdPSgwLFJlLnVzZVN0YXRlKShudWxsKSx7c3RhdGU6b309KDAsUmUudXNlQ29udGV4dCkoblQpO3JldHVybntzdGF0ZTpvLHNldFN0YXRlOmk9PntpKG8pLHMoe30pfX19LHVzZUxldmVsPSgpPT57Y29uc3Qgcz0oMCxSZS51c2VDb250ZXh0KShzVCk7cmV0dXJuW3MscysxXX0sdXNlUGF0aD1zPT57Y29uc3Qgbz0oMCxSZS51c2VDb250ZXh0KShpVCkse3NldFN0YXRlOml9PXVzZUpTT05TY2hlbWFDb250ZXh0U3RhdGUoKSxhPSJzdHJpbmciPT10eXBlb2Ygcz9bLi4ubyxzXTpvO3JldHVybntwYXRoOmEscGF0aE11dGF0b3I6KHMsbz17ZGVlcDohMX0pPT57Y29uc3QgdT1hLnRvU3RyaW5nKCksdXBkYXRlRm49bz0+e28ucGF0aHNbdV09cyxzPT09SlNPTlNjaGVtYUlzRXhwYW5kZWRTdGF0ZS5Db2xsYXBzZWQmJk9iamVjdC5rZXlzKG8ucGF0aHMpLmZvckVhY2goKHM9PntzLnN0YXJ0c1dpdGgodSkmJm8ucGF0aHNbc109PT1KU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkRlZXBseUV4cGFuZGVkJiYoby5wYXRoc1tzXT1KU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkV4cGFuZGVkKX0pKX0sdXBkYXRlRGVlcEZuPW89PntPYmplY3Qua2V5cyhvLnBhdGhzKS5mb3JFYWNoKChpPT57aS5zdGFydHNXaXRoKHUpJiYoby5wYXRoc1tpXT1zKX0pKX07by5kZWVwP2kodXBkYXRlRGVlcEZuKTppKHVwZGF0ZUZuKX19fSx1c2VJc0V4cGFuZGVkPXM9Pntjb25zdFtvXT11c2VMZXZlbCgpLHtkZWZhdWx0RXhwYW5kZWRMZXZlbHM6aX09dXNlQ29uZmlnKCkse3BhdGg6YSxwYXRoTXV0YXRvcjp1fT11c2VQYXRoKHMpLHtwYXRoOl99PXVzZVBhdGgoKSx7c3RhdGU6d309dXNlSlNPTlNjaGVtYUNvbnRleHRTdGF0ZSgpLHg9dy5wYXRoc1thLnRvU3RyaW5nKCldLEM9dy5wYXRoc1tfLnRvU3RyaW5nKCldPz93LnBhdGhzW18uc2xpY2UoMCwtMSkudG9TdHJpbmcoKV0saj14Pz8oaS1vPjA/SlNPTlNjaGVtYUlzRXhwYW5kZWRTdGF0ZS5FeHBhbmRlZDpKU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkNvbGxhcHNlZCksTD1qIT09SlNPTlNjaGVtYUlzRXhwYW5kZWRTdGF0ZS5Db2xsYXBzZWQ7KDAsUmUudXNlRWZmZWN0KSgoKCk9Pnt1KEM9PT1KU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkRlZXBseUV4cGFuZGVkP0pTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuRGVlcGx5RXhwYW5kZWQ6ail9KSxbQ10pO3JldHVybntpc0V4cGFuZGVkOkwsc2V0RXhwYW5kZWQ6KDAsUmUudXNlQ2FsbGJhY2spKCgocz17ZGVlcDohMX0pPT57dShzLmRlZXA/SlNPTlNjaGVtYUlzRXhwYW5kZWRTdGF0ZS5EZWVwbHlFeHBhbmRlZDpKU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkV4cGFuZGVkKX0pLFtdKSxzZXRDb2xsYXBzZWQ6KDAsUmUudXNlQ2FsbGJhY2spKCgocz17ZGVlcDohMX0pPT57dShKU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkNvbGxhcHNlZCxzKX0pLFtdKX19LHVzZVJlbmRlcmVkU2NoZW1hcz0ocz12b2lkIDApPT57aWYodm9pZCAwPT09cylyZXR1cm4oMCxSZS51c2VDb250ZXh0KShvVCk7Y29uc3Qgbz0oMCxSZS51c2VDb250ZXh0KShvVCk7cmV0dXJuIG5ldyBTZXQoWy4uLm8sc10pfSxhVD0oMCxSZS5mb3J3YXJkUmVmKSgoKHtzY2hlbWE6cyxuYW1lOm89IiIsZGVwZW5kZW50UmVxdWlyZWQ6aT1bXSxvbkV4cGFuZDphPSgpPT57fSxpZGVudGlmaWVyOnU9IiJ9LF8pPT57Y29uc3Qgdz11c2VGbigpLHg9dXx8cz8uJGlkfHxvLHtwYXRoOkN9PXVzZVBhdGgoeCkse2lzRXhwYW5kZWQ6aixzZXRFeHBhbmRlZDpMLHNldENvbGxhcHNlZDpCfT11c2VJc0V4cGFuZGVkKHgpLFskLFZdPXVzZUxldmVsKCksVT0oKCk9Pntjb25zdFtzXT11c2VMZXZlbCgpO3JldHVybiBzPjB9KSgpLHo9dy5pc0V4cGFuZGFibGUocyl8fGkubGVuZ3RoPjAsWT0ocz0+dXNlUmVuZGVyZWRTY2hlbWFzKCkuaGFzKHMpKShzKSxaPXVzZVJlbmRlcmVkU2NoZW1hcyhzKSxlZT13LnN0cmluZ2lmeUNvbnN0cmFpbnRzKHMpLGllPXVzZUNvbXBvbmVudCgiQWNjb3JkaW9uIiksYWU9dXNlQ29tcG9uZW50KCJLZXl3b3JkJHNjaGVtYSIpLGNlPXVzZUNvbXBvbmVudCgiS2V5d29yZCR2b2NhYnVsYXJ5IiksbGU9dXNlQ29tcG9uZW50KCJLZXl3b3JkJGlkIikscGU9dXNlQ29tcG9uZW50KCJLZXl3b3JkJGFuY2hvciIpLGRlPXVzZUNvbXBvbmVudCgiS2V5d29yZCRkeW5hbWljQW5jaG9yIiksZmU9dXNlQ29tcG9uZW50KCJLZXl3b3JkJHJlZiIpLHllPXVzZUNvbXBvbmVudCgiS2V5d29yZCRkeW5hbWljUmVmIiksYmU9dXNlQ29tcG9uZW50KCJLZXl3b3JkJGRlZnMiKSxfZT11c2VDb21wb25lbnQoIktleXdvcmQkY29tbWVudCIpLFNlPXVzZUNvbXBvbmVudCgiS2V5d29yZEFsbE9mIiksd2U9dXNlQ29tcG9uZW50KCJLZXl3b3JkQW55T2YiKSx4ZT11c2VDb21wb25lbnQoIktleXdvcmRPbmVPZiIpLFBlPXVzZUNvbXBvbmVudCgiS2V5d29yZE5vdCIpLFRlPXVzZUNvbXBvbmVudCgiS2V5d29yZElmIiksJGU9dXNlQ29tcG9uZW50KCJLZXl3b3JkVGhlbiIpLHFlPXVzZUNvbXBvbmVudCgiS2V5d29yZEVsc2UiKSx6ZT11c2VDb21wb25lbnQoIktleXdvcmREZXBlbmRlbnRTY2hlbWFzIiksV2U9dXNlQ29tcG9uZW50KCJLZXl3b3JkUHJlZml4SXRlbXMiKSxIZT11c2VDb21wb25lbnQoIktleXdvcmRJdGVtcyIpLFllPXVzZUNvbXBvbmVudCgiS2V5d29yZENvbnRhaW5zIiksWGU9dXNlQ29tcG9uZW50KCJLZXl3b3JkUHJvcGVydGllcyIpLFFlPXVzZUNvbXBvbmVudCgiS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzIiksZXQ9dXNlQ29tcG9uZW50KCJLZXl3b3JkQWRkaXRpb25hbFByb3BlcnRpZXMiKSx0dD11c2VDb21wb25lbnQoIktleXdvcmRQcm9wZXJ0eU5hbWVzIikscnQ9dXNlQ29tcG9uZW50KCJLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtcyIpLG50PXVzZUNvbXBvbmVudCgiS2V5d29yZFVuZXZhbHVhdGVkUHJvcGVydGllcyIpLHN0PXVzZUNvbXBvbmVudCgiS2V5d29yZFR5cGUiKSxvdD11c2VDb21wb25lbnQoIktleXdvcmRFbnVtIiksaXQ9dXNlQ29tcG9uZW50KCJLZXl3b3JkQ29uc3QiKSxhdD11c2VDb21wb25lbnQoIktleXdvcmRDb25zdHJhaW50IiksY3Q9dXNlQ29tcG9uZW50KCJLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQiKSxsdD11c2VDb21wb25lbnQoIktleXdvcmRDb250ZW50U2NoZW1hIiksdXQ9dXNlQ29tcG9uZW50KCJLZXl3b3JkVGl0bGUiKSxwdD11c2VDb21wb25lbnQoIktleXdvcmREZXNjcmlwdGlvbiIpLGh0PXVzZUNvbXBvbmVudCgiS2V5d29yZERlZmF1bHQiKSxkdD11c2VDb21wb25lbnQoIktleXdvcmREZXByZWNhdGVkIiksbXQ9dXNlQ29tcG9uZW50KCJLZXl3b3JkUmVhZE9ubHkiKSxndD11c2VDb21wb25lbnQoIktleXdvcmRXcml0ZU9ubHkiKSx5dD11c2VDb21wb25lbnQoIktleXdvcmRFeGFtcGxlcyIpLHZ0PXVzZUNvbXBvbmVudCgiRXh0ZW5zaW9uS2V5d29yZHMiKSxidD11c2VDb21wb25lbnQoIkV4cGFuZERlZXBCdXR0b24iKSxfdD0oMCxSZS51c2VDYWxsYmFjaykoKChzLG8pPT57bz9MKCk6QigpLGEocyxvLCExKX0pLFthLEwsQl0pLFN0PSgwLFJlLnVzZUNhbGxiYWNrKSgoKHMsbyk9PntvP0woe2RlZXA6ITB9KTpCKHtkZWVwOiEwfSksYShzLG8sITApfSksW2EsTCxCXSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoaVQuUHJvdmlkZXIse3ZhbHVlOkN9LFJlLmNyZWF0ZUVsZW1lbnQoc1QuUHJvdmlkZXIse3ZhbHVlOlZ9LFJlLmNyZWF0ZUVsZW1lbnQob1QuUHJvdmlkZXIse3ZhbHVlOlp9LFJlLmNyZWF0ZUVsZW1lbnQoImFydGljbGUiLHtyZWY6XywiZGF0YS1qc29uLXNjaGVtYS1sZXZlbCI6JCxjbGFzc05hbWU6Sm4oKSgianNvbi1zY2hlbWEtMjAyMC0xMiIseyJqc29uLXNjaGVtYS0yMDIwLTEyLS1lbWJlZGRlZCI6VSwianNvbi1zY2hlbWEtMjAyMC0xMi0tY2lyY3VsYXIiOll9KX0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWhlYWQifSx6JiYhWT9SZS5jcmVhdGVFbGVtZW50KFJlLkZyYWdtZW50LG51bGwsUmUuY3JlYXRlRWxlbWVudChpZSx7ZXhwYW5kZWQ6aixvbkNoYW5nZTpfdH0sUmUuY3JlYXRlRWxlbWVudCh1dCx7dGl0bGU6byxzY2hlbWE6c30pKSxSZS5jcmVhdGVFbGVtZW50KGJ0LHtleHBhbmRlZDpqLG9uQ2xpY2s6U3R9KSk6UmUuY3JlYXRlRWxlbWVudCh1dCx7dGl0bGU6byxzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQoZHQse3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudChtdCx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KGd0LHtzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQoc3Qse3NjaGVtYTpzLGlzQ2lyY3VsYXI6WX0pLGVlLmxlbmd0aD4wJiZlZS5tYXAoKHM9PlJlLmNyZWF0ZUVsZW1lbnQoYXQse2tleTpgJHtzLnNjb3BlfS0ke3MudmFsdWV9YCxjb25zdHJhaW50OnN9KSkpKSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Sm4oKSgianNvbi1zY2hlbWEtMjAyMC0xMi1ib2R5Iix7Impzb24tc2NoZW1hLTIwMjAtMTItYm9keS0tY29sbGFwc2VkIjohan0pfSxqJiZSZS5jcmVhdGVFbGVtZW50KFJlLkZyYWdtZW50LG51bGwsUmUuY3JlYXRlRWxlbWVudChwdCx7c2NoZW1hOnN9KSwhWSYmeiYmUmUuY3JlYXRlRWxlbWVudChSZS5GcmFnbWVudCxudWxsLFJlLmNyZWF0ZUVsZW1lbnQoWGUse3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudChRZSx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KGV0LHtzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQobnQse3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudCh0dCx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KFNlLHtzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQod2Use3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudCh4ZSx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KFBlLHtzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQoVGUse3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudCgkZSx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KHFlLHtzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQoemUse3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudChXZSx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KEhlLHtzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQocnQse3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudChZZSx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KGx0LHtzY2hlbWE6c30pKSxSZS5jcmVhdGVFbGVtZW50KG90LHtzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQoaXQse3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudChjdCx7c2NoZW1hOnMsZGVwZW5kZW50UmVxdWlyZWQ6aX0pLFJlLmNyZWF0ZUVsZW1lbnQoaHQse3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudCh5dCx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KGFlLHtzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQoY2Use3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudChsZSx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KHBlLHtzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQoZGUse3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudChmZSx7c2NoZW1hOnN9KSwhWSYmeiYmUmUuY3JlYXRlRWxlbWVudChiZSx7c2NoZW1hOnN9KSxSZS5jcmVhdGVFbGVtZW50KHllLHtzY2hlbWE6c30pLFJlLmNyZWF0ZUVsZW1lbnQoX2Use3NjaGVtYTpzfSksUmUuY3JlYXRlRWxlbWVudCh2dCx7c2NoZW1hOnN9KSkpKSkpKX0pKSxjVD1hVCxrZXl3b3Jkc18kc2NoZW1hPSh7c2NoZW1hOnN9KT0+cz8uJHNjaGVtYT9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLSRzY2hlbWEifSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiJHNjaGVtYSIpLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0scy4kc2NoZW1hKSk6bnVsbCwkdm9jYWJ1bGFyeV8kdm9jYWJ1bGFyeT0oe3NjaGVtYTpzfSk9Pntjb25zdCBvPSIkdm9jYWJ1bGFyeSIse3BhdGg6aX09dXNlUGF0aChvKSx7aXNFeHBhbmRlZDphLHNldEV4cGFuZGVkOnUsc2V0Q29sbGFwc2VkOl99PXVzZUlzRXhwYW5kZWQobyksdz11c2VDb21wb25lbnQoIkFjY29yZGlvbiIpLHg9KDAsUmUudXNlQ2FsbGJhY2spKCgoKT0+e2E/XygpOnUoKX0pLFthLHUsX10pO3JldHVybiBzPy4kdm9jYWJ1bGFyeT8ib2JqZWN0IiE9dHlwZW9mIHMuJHZvY2FidWxhcnk/bnVsbDpSZS5jcmVhdGVFbGVtZW50KGlULlByb3ZpZGVyLHt2YWx1ZTppfSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLSR2b2NhYnVsYXJ5In0sUmUuY3JlYXRlRWxlbWVudCh3LHtleHBhbmRlZDphLG9uQ2hhbmdlOnh9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCIkdm9jYWJ1bGFyeSIpKSxSZS5jcmVhdGVFbGVtZW50KCJzdHJvbmciLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnkifSwib2JqZWN0IiksUmUuY3JlYXRlRWxlbWVudCgidWwiLG51bGwsYSYmT2JqZWN0LmVudHJpZXMocy4kdm9jYWJ1bGFyeSkubWFwKCgoW3Msb10pPT5SZS5jcmVhdGVFbGVtZW50KCJsaSIse2tleTpzLGNsYXNzTmFtZTpKbigpKCJqc29uLXNjaGVtYS0yMDIwLTEyLSR2b2NhYnVsYXJ5LXVyaSIseyJqc29uLXNjaGVtYS0yMDIwLTEyLSR2b2NhYnVsYXJ5LXVyaS0tZGlzYWJsZWQiOiFvfSl9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0scykpKSkpKSk6bnVsbH0sa2V5d29yZHNfJGlkPSh7c2NoZW1hOnN9KT0+cz8uJGlkP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJGlkIn0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sIiRpZCIpLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0scy4kaWQpKTpudWxsLGtleXdvcmRzXyRhbmNob3I9KHtzY2hlbWE6c30pPT5zPy4kYW5jaG9yP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJGFuY2hvciJ9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCIkYW5jaG9yIiksUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxzLiRhbmNob3IpKTpudWxsLGtleXdvcmRzXyRkeW5hbWljQW5jaG9yPSh7c2NoZW1hOnN9KT0+cz8uJGR5bmFtaWNBbmNob3I/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS0kZHluYW1pY0FuY2hvciJ9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCIkZHluYW1pY0FuY2hvciIpLFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0scy4kZHluYW1pY0FuY2hvcikpOm51bGwsa2V5d29yZHNfJHJlZj0oe3NjaGVtYTpzfSk9PnM/LiRyZWY/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS0kcmVmIn0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sIiRyZWYiKSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeSJ9LHMuJHJlZikpOm51bGwsa2V5d29yZHNfJGR5bmFtaWNSZWY9KHtzY2hlbWE6c30pPT5zPy4kZHluYW1pY1JlZj9SZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLSRkeW5hbWljUmVmIn0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sIiRkeW5hbWljUmVmIiksUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxzLiRkeW5hbWljUmVmKSk6bnVsbCxrZXl3b3Jkc18kZGVmcz0oe3NjaGVtYTpzfSk9Pntjb25zdCBvPXM/LiRkZWZzfHx7fSxpPSIkZGVmcyIse3BhdGg6YX09dXNlUGF0aChpKSx7aXNFeHBhbmRlZDp1LHNldEV4cGFuZGVkOl8sc2V0Q29sbGFwc2VkOnd9PXVzZUlzRXhwYW5kZWQoaSksW3gsQ109dXNlTGV2ZWwoKSxqPXVzZUNvbXBvbmVudCgiQWNjb3JkaW9uIiksTD11c2VDb21wb25lbnQoIkV4cGFuZERlZXBCdXR0b24iKSxCPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpLCQ9KDAsUmUudXNlQ2FsbGJhY2spKCgoKT0+e3U/dygpOl8oKX0pLFt1LF8sd10pLFY9KDAsUmUudXNlQ2FsbGJhY2spKCgocyxvKT0+e28/Xyh7ZGVlcDohMH0pOncoe2RlZXA6ITB9KX0pLFtfLHddKTtyZXR1cm4gMD09PU9iamVjdC5rZXlzKG8pLmxlbmd0aD9udWxsOlJlLmNyZWF0ZUVsZW1lbnQoaVQuUHJvdmlkZXIse3ZhbHVlOmF9LFJlLmNyZWF0ZUVsZW1lbnQoc1QuUHJvdmlkZXIse3ZhbHVlOkN9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJGRlZnMiLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjp4fSxSZS5jcmVhdGVFbGVtZW50KGose2V4cGFuZGVkOnUsb25DaGFuZ2U6JH0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sIiRkZWZzIikpLFJlLmNyZWF0ZUVsZW1lbnQoTCx7ZXhwYW5kZWQ6dSxvbkNsaWNrOlZ9KSxSZS5jcmVhdGVFbGVtZW50KCJzdHJvbmciLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnkifSwib2JqZWN0IiksUmUuY3JlYXRlRWxlbWVudCgidWwiLHtjbGFzc05hbWU6Sm4oKSgianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbiIseyJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWQiOiF1fSl9LHUmJlJlLmNyZWF0ZUVsZW1lbnQoUmUuRnJhZ21lbnQsbnVsbCxPYmplY3QuZW50cmllcyhvKS5tYXAoKChbcyxvXSk9PlJlLmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OnMsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sUmUuY3JlYXRlRWxlbWVudChCLHtuYW1lOnMsc2NoZW1hOm99KSkpKSkpKSkpfSxrZXl3b3Jkc18kY29tbWVudD0oe3NjaGVtYTpzfSk9PnM/LiRjb21tZW50P1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJGNvbW1lbnQifSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiJGNvbW1lbnQiKSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeSJ9LHMuJGNvbW1lbnQpKTpudWxsLGtleXdvcmRzX0FsbE9mPSh7c2NoZW1hOnN9KT0+e2NvbnN0IG89cz8uYWxsT2Z8fFtdLGk9dXNlRm4oKSxhPSJhbGxPZiIse3BhdGg6dX09dXNlUGF0aChhKSx7aXNFeHBhbmRlZDpfLHNldEV4cGFuZGVkOncsc2V0Q29sbGFwc2VkOnh9PXVzZUlzRXhwYW5kZWQoYSksW0Msal09dXNlTGV2ZWwoKSxMPXVzZUNvbXBvbmVudCgiQWNjb3JkaW9uIiksQj11c2VDb21wb25lbnQoIkV4cGFuZERlZXBCdXR0b24iKSwkPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpLFY9dXNlQ29tcG9uZW50KCJLZXl3b3JkVHlwZSIpLFU9KDAsUmUudXNlQ2FsbGJhY2spKCgoKT0+e18/eCgpOncoKX0pLFtfLHcseF0pLHo9KDAsUmUudXNlQ2FsbGJhY2spKCgocyxvKT0+e28/dyh7ZGVlcDohMH0pOngoe2RlZXA6ITB9KX0pLFt3LHhdKTtyZXR1cm4gQXJyYXkuaXNBcnJheShvKSYmMCE9PW8ubGVuZ3RoP1JlLmNyZWF0ZUVsZW1lbnQoaVQuUHJvdmlkZXIse3ZhbHVlOnV9LFJlLmNyZWF0ZUVsZW1lbnQoc1QuUHJvdmlkZXIse3ZhbHVlOmp9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tYWxsT2YiLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjpDfSxSZS5jcmVhdGVFbGVtZW50KEwse2V4cGFuZGVkOl8sb25DaGFuZ2U6VX0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJBbGwgb2YiKSksUmUuY3JlYXRlRWxlbWVudChCLHtleHBhbmRlZDpfLG9uQ2xpY2s6en0pLFJlLmNyZWF0ZUVsZW1lbnQoVix7c2NoZW1hOnthbGxPZjpvfX0pLFJlLmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOkpuKCkoImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4iLHsianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkIjohX30pfSxfJiZSZS5jcmVhdGVFbGVtZW50KFJlLkZyYWdtZW50LG51bGwsby5tYXAoKChzLG8pPT5SZS5jcmVhdGVFbGVtZW50KCJsaSIse2tleTpgIyR7b31gLGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSJ9LFJlLmNyZWF0ZUVsZW1lbnQoJCx7bmFtZTpgIyR7b30gJHtpLmdldFRpdGxlKHMpfWAsc2NoZW1hOnN9KSkpKSkpKSkpOm51bGx9LGtleXdvcmRzX0FueU9mPSh7c2NoZW1hOnN9KT0+e2NvbnN0IG89cz8uYW55T2Z8fFtdLGk9dXNlRm4oKSxhPSJhbnlPZiIse3BhdGg6dX09dXNlUGF0aChhKSx7aXNFeHBhbmRlZDpfLHNldEV4cGFuZGVkOncsc2V0Q29sbGFwc2VkOnh9PXVzZUlzRXhwYW5kZWQoYSksW0Msal09dXNlTGV2ZWwoKSxMPXVzZUNvbXBvbmVudCgiQWNjb3JkaW9uIiksQj11c2VDb21wb25lbnQoIkV4cGFuZERlZXBCdXR0b24iKSwkPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpLFY9dXNlQ29tcG9uZW50KCJLZXl3b3JkVHlwZSIpLFU9KDAsUmUudXNlQ2FsbGJhY2spKCgoKT0+e18/eCgpOncoKX0pLFtfLHcseF0pLHo9KDAsUmUudXNlQ2FsbGJhY2spKCgocyxvKT0+e28/dyh7ZGVlcDohMH0pOngoe2RlZXA6ITB9KX0pLFt3LHhdKTtyZXR1cm4gQXJyYXkuaXNBcnJheShvKSYmMCE9PW8ubGVuZ3RoP1JlLmNyZWF0ZUVsZW1lbnQoaVQuUHJvdmlkZXIse3ZhbHVlOnV9LFJlLmNyZWF0ZUVsZW1lbnQoc1QuUHJvdmlkZXIse3ZhbHVlOmp9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tYW55T2YiLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjpDfSxSZS5jcmVhdGVFbGVtZW50KEwse2V4cGFuZGVkOl8sb25DaGFuZ2U6VX0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJBbnkgb2YiKSksUmUuY3JlYXRlRWxlbWVudChCLHtleHBhbmRlZDpfLG9uQ2xpY2s6en0pLFJlLmNyZWF0ZUVsZW1lbnQoVix7c2NoZW1hOnthbnlPZjpvfX0pLFJlLmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOkpuKCkoImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4iLHsianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkIjohX30pfSxfJiZSZS5jcmVhdGVFbGVtZW50KFJlLkZyYWdtZW50LG51bGwsby5tYXAoKChzLG8pPT5SZS5jcmVhdGVFbGVtZW50KCJsaSIse2tleTpgIyR7b31gLGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSJ9LFJlLmNyZWF0ZUVsZW1lbnQoJCx7bmFtZTpgIyR7b30gJHtpLmdldFRpdGxlKHMpfWAsc2NoZW1hOnN9KSkpKSkpKSkpOm51bGx9LGtleXdvcmRzX09uZU9mPSh7c2NoZW1hOnN9KT0+e2NvbnN0IG89cz8ub25lT2Z8fFtdLGk9dXNlRm4oKSxhPSJvbmVPZiIse3BhdGg6dX09dXNlUGF0aChhKSx7aXNFeHBhbmRlZDpfLHNldEV4cGFuZGVkOncsc2V0Q29sbGFwc2VkOnh9PXVzZUlzRXhwYW5kZWQoYSksW0Msal09dXNlTGV2ZWwoKSxMPXVzZUNvbXBvbmVudCgiQWNjb3JkaW9uIiksQj11c2VDb21wb25lbnQoIkV4cGFuZERlZXBCdXR0b24iKSwkPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpLFY9dXNlQ29tcG9uZW50KCJLZXl3b3JkVHlwZSIpLFU9KDAsUmUudXNlQ2FsbGJhY2spKCgoKT0+e18/eCgpOncoKX0pLFtfLHcseF0pLHo9KDAsUmUudXNlQ2FsbGJhY2spKCgocyxvKT0+e28/dyh7ZGVlcDohMH0pOngoe2RlZXA6ITB9KX0pLFt3LHhdKTtyZXR1cm4gQXJyYXkuaXNBcnJheShvKSYmMCE9PW8ubGVuZ3RoP1JlLmNyZWF0ZUVsZW1lbnQoaVQuUHJvdmlkZXIse3ZhbHVlOnV9LFJlLmNyZWF0ZUVsZW1lbnQoc1QuUHJvdmlkZXIse3ZhbHVlOmp9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tb25lT2YiLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjpDfSxSZS5jcmVhdGVFbGVtZW50KEwse2V4cGFuZGVkOl8sb25DaGFuZ2U6VX0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJPbmUgb2YiKSksUmUuY3JlYXRlRWxlbWVudChCLHtleHBhbmRlZDpfLG9uQ2xpY2s6en0pLFJlLmNyZWF0ZUVsZW1lbnQoVix7c2NoZW1hOntvbmVPZjpvfX0pLFJlLmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOkpuKCkoImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4iLHsianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkIjohX30pfSxfJiZSZS5jcmVhdGVFbGVtZW50KFJlLkZyYWdtZW50LG51bGwsby5tYXAoKChzLG8pPT5SZS5jcmVhdGVFbGVtZW50KCJsaSIse2tleTpgIyR7b31gLGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSJ9LFJlLmNyZWF0ZUVsZW1lbnQoJCx7bmFtZTpgIyR7b30gJHtpLmdldFRpdGxlKHMpfWAsc2NoZW1hOnN9KSkpKSkpKSkpOm51bGx9LGtleXdvcmRzX05vdD0oe3NjaGVtYTpzfSk9Pntjb25zdCBvPXVzZUZuKCksaT11c2VDb21wb25lbnQoIkpTT05TY2hlbWEiKTtpZighby5oYXNLZXl3b3JkKHMsIm5vdCIpKXJldHVybiBudWxsO2NvbnN0IGE9UmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJOb3QiKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1ub3QifSxSZS5jcmVhdGVFbGVtZW50KGkse25hbWU6YSxzY2hlbWE6cy5ub3QsaWRlbnRpZmllcjoibm90In0pKX0sa2V5d29yZHNfSWY9KHtzY2hlbWE6c30pPT57Y29uc3Qgbz11c2VGbigpLGk9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIik7aWYoIW8uaGFzS2V5d29yZChzLCJpZiIpKXJldHVybiBudWxsO2NvbnN0IGE9UmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJJZiIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWlmIn0sUmUuY3JlYXRlRWxlbWVudChpLHtuYW1lOmEsc2NoZW1hOnMuaWYsaWRlbnRpZmllcjoiaWYifSkpfSxrZXl3b3Jkc19UaGVuPSh7c2NoZW1hOnN9KT0+e2NvbnN0IG89dXNlRm4oKSxpPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpO2lmKCFvLmhhc0tleXdvcmQocywidGhlbiIpKXJldHVybiBudWxsO2NvbnN0IGE9UmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJUaGVuIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tdGhlbiJ9LFJlLmNyZWF0ZUVsZW1lbnQoaSx7bmFtZTphLHNjaGVtYTpzLnRoZW4saWRlbnRpZmllcjoidGhlbiJ9KSl9LGtleXdvcmRzX0Vsc2U9KHtzY2hlbWE6c30pPT57Y29uc3Qgbz11c2VGbigpLGk9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIik7aWYoIW8uaGFzS2V5d29yZChzLCJlbHNlIikpcmV0dXJuIG51bGw7Y29uc3QgYT1SZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIkVsc2UiKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1pZiJ9LFJlLmNyZWF0ZUVsZW1lbnQoaSx7bmFtZTphLHNjaGVtYTpzLmVsc2UsaWRlbnRpZmllcjoiZWxzZSJ9KSl9LGtleXdvcmRzX0RlcGVuZGVudFNjaGVtYXM9KHtzY2hlbWE6c30pPT57Y29uc3Qgbz1zPy5kZXBlbmRlbnRTY2hlbWFzfHxbXSxpPSJkZXBlbmRlbnRTY2hlbWFzIix7cGF0aDphfT11c2VQYXRoKGkpLHtpc0V4cGFuZGVkOnUsc2V0RXhwYW5kZWQ6XyxzZXRDb2xsYXBzZWQ6d309dXNlSXNFeHBhbmRlZChpKSxbeCxDXT11c2VMZXZlbCgpLGo9dXNlQ29tcG9uZW50KCJBY2NvcmRpb24iKSxMPXVzZUNvbXBvbmVudCgiRXhwYW5kRGVlcEJ1dHRvbiIpLEI9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIiksJD0oMCxSZS51c2VDYWxsYmFjaykoKCgpPT57dT93KCk6XygpfSksW3UsXyx3XSksVj0oMCxSZS51c2VDYWxsYmFjaykoKChzLG8pPT57bz9fKHtkZWVwOiEwfSk6dyh7ZGVlcDohMH0pfSksW18sd10pO3JldHVybiJvYmplY3QiIT10eXBlb2Ygb3x8MD09PU9iamVjdC5rZXlzKG8pLmxlbmd0aD9udWxsOlJlLmNyZWF0ZUVsZW1lbnQoaVQuUHJvdmlkZXIse3ZhbHVlOmF9LFJlLmNyZWF0ZUVsZW1lbnQoc1QuUHJvdmlkZXIse3ZhbHVlOkN9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZGVwZW5kZW50U2NoZW1hcyIsImRhdGEtanNvbi1zY2hlbWEtbGV2ZWwiOnh9LFJlLmNyZWF0ZUVsZW1lbnQoaix7ZXhwYW5kZWQ6dSxvbkNoYW5nZTokfSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIkRlcGVuZGVudCBzY2hlbWFzIikpLFJlLmNyZWF0ZUVsZW1lbnQoTCx7ZXhwYW5kZWQ6dSxvbkNsaWNrOlZ9KSxSZS5jcmVhdGVFbGVtZW50KCJzdHJvbmciLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnkifSwib2JqZWN0IiksUmUuY3JlYXRlRWxlbWVudCgidWwiLHtjbGFzc05hbWU6Sm4oKSgianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbiIseyJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWQiOiF1fSl9LHUmJlJlLmNyZWF0ZUVsZW1lbnQoUmUuRnJhZ21lbnQsbnVsbCxPYmplY3QuZW50cmllcyhvKS5tYXAoKChbcyxvXSk9PlJlLmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OnMsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sUmUuY3JlYXRlRWxlbWVudChCLHtuYW1lOnMsc2NoZW1hOm99KSkpKSkpKSkpfSxrZXl3b3Jkc19QcmVmaXhJdGVtcz0oe3NjaGVtYTpzfSk9Pntjb25zdCBvPXM/LnByZWZpeEl0ZW1zfHxbXSxpPXVzZUZuKCksYT0icHJlZml4SXRlbXMiLHtwYXRoOnV9PXVzZVBhdGgoYSkse2lzRXhwYW5kZWQ6XyxzZXRFeHBhbmRlZDp3LHNldENvbGxhcHNlZDp4fT11c2VJc0V4cGFuZGVkKGEpLFtDLGpdPXVzZUxldmVsKCksTD11c2VDb21wb25lbnQoIkFjY29yZGlvbiIpLEI9dXNlQ29tcG9uZW50KCJFeHBhbmREZWVwQnV0dG9uIiksJD11c2VDb21wb25lbnQoIkpTT05TY2hlbWEiKSxWPXVzZUNvbXBvbmVudCgiS2V5d29yZFR5cGUiKSxVPSgwLFJlLnVzZUNhbGxiYWNrKSgoKCk9PntfP3goKTp3KCl9KSxbXyx3LHhdKSx6PSgwLFJlLnVzZUNhbGxiYWNrKSgoKHMsbyk9PntvP3coe2RlZXA6ITB9KTp4KHtkZWVwOiEwfSl9KSxbdyx4XSk7cmV0dXJuIEFycmF5LmlzQXJyYXkobykmJjAhPT1vLmxlbmd0aD9SZS5jcmVhdGVFbGVtZW50KGlULlByb3ZpZGVyLHt2YWx1ZTp1fSxSZS5jcmVhdGVFbGVtZW50KHNULlByb3ZpZGVyLHt2YWx1ZTpqfSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLXByZWZpeEl0ZW1zIiwiZGF0YS1qc29uLXNjaGVtYS1sZXZlbCI6Q30sUmUuY3JlYXRlRWxlbWVudChMLHtleHBhbmRlZDpfLG9uQ2hhbmdlOlV9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnkifSwiUHJlZml4IGl0ZW1zIikpLFJlLmNyZWF0ZUVsZW1lbnQoQix7ZXhwYW5kZWQ6XyxvbkNsaWNrOnp9KSxSZS5jcmVhdGVFbGVtZW50KFYse3NjaGVtYTp7cHJlZml4SXRlbXM6b319KSxSZS5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZTpKbigpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuIix7Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4tLWNvbGxhcHNlZCI6IV99KX0sXyYmUmUuY3JlYXRlRWxlbWVudChSZS5GcmFnbWVudCxudWxsLG8ubWFwKCgocyxvKT0+UmUuY3JlYXRlRWxlbWVudCgibGkiLHtrZXk6YCMke299YCxjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHkifSxSZS5jcmVhdGVFbGVtZW50KCQse25hbWU6YCMke299ICR7aS5nZXRUaXRsZShzKX1gLHNjaGVtYTpzfSkpKSkpKSkpKTpudWxsfSxrZXl3b3Jkc19JdGVtcz0oe3NjaGVtYTpzfSk9Pntjb25zdCBvPXVzZUZuKCksaT11c2VDb21wb25lbnQoIkpTT05TY2hlbWEiKTtpZighby5oYXNLZXl3b3JkKHMsIml0ZW1zIikpcmV0dXJuIG51bGw7Y29uc3QgYT1SZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIkl0ZW1zIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0taXRlbXMifSxSZS5jcmVhdGVFbGVtZW50KGkse25hbWU6YSxzY2hlbWE6cy5pdGVtcyxpZGVudGlmaWVyOiJpdGVtcyJ9KSl9LGtleXdvcmRzX0NvbnRhaW5zPSh7c2NoZW1hOnN9KT0+e2NvbnN0IG89dXNlRm4oKSxpPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpO2lmKCFvLmhhc0tleXdvcmQocywiY29udGFpbnMiKSlyZXR1cm4gbnVsbDtjb25zdCBhPVJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnkifSwiQ29udGFpbnMiKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1jb250YWlucyJ9LFJlLmNyZWF0ZUVsZW1lbnQoaSx7bmFtZTphLHNjaGVtYTpzLmNvbnRhaW5zLGlkZW50aWZpZXI6ImNvbnRhaW5zIn0pKX0sa2V5d29yZHNfUHJvcGVydGllc19Qcm9wZXJ0aWVzPSh7c2NoZW1hOnN9KT0+e2NvbnN0IG89dXNlRm4oKSxpPXM/LnByb3BlcnRpZXN8fHt9LGE9QXJyYXkuaXNBcnJheShzPy5yZXF1aXJlZCk/cy5yZXF1aXJlZDpbXSx1PXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpLHtwYXRoOl99PXVzZVBhdGgoInByb3BlcnRpZXMiKTtyZXR1cm4gMD09PU9iamVjdC5rZXlzKGkpLmxlbmd0aD9udWxsOlJlLmNyZWF0ZUVsZW1lbnQoaVQuUHJvdmlkZXIse3ZhbHVlOl99LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tcHJvcGVydGllcyJ9LFJlLmNyZWF0ZUVsZW1lbnQoInVsIixudWxsLE9iamVjdC5lbnRyaWVzKGkpLm1hcCgoKFtpLF9dKT0+e2NvbnN0IHc9YS5pbmNsdWRlcyhpKSx4PW8uZ2V0RGVwZW5kZW50UmVxdWlyZWQoaSxzKTtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgibGkiLHtrZXk6aSxjbGFzc05hbWU6Sm4oKSgianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSIseyJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5LS1yZXF1aXJlZCI6d30pfSxSZS5jcmVhdGVFbGVtZW50KHUse25hbWU6aSxzY2hlbWE6XyxkZXBlbmRlbnRSZXF1aXJlZDp4fSkpfSkpKSkpfSxQYXR0ZXJuUHJvcGVydGllc19QYXR0ZXJuUHJvcGVydGllcz0oe3NjaGVtYTpzfSk9Pntjb25zdCBvPXM/LnBhdHRlcm5Qcm9wZXJ0aWVzfHx7fSxpPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpLHtwYXRoOmF9PXVzZVBhdGgoInBhdHRlcm5Qcm9wZXJ0aWVzIik7cmV0dXJuIDA9PT1PYmplY3Qua2V5cyhvKS5sZW5ndGg/bnVsbDpSZS5jcmVhdGVFbGVtZW50KGlULlByb3ZpZGVyLHt2YWx1ZTphfSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLXBhdHRlcm5Qcm9wZXJ0aWVzIn0sUmUuY3JlYXRlRWxlbWVudCgidWwiLG51bGwsT2JqZWN0LmVudHJpZXMobykubWFwKCgoW3Msb10pPT5SZS5jcmVhdGVFbGVtZW50KCJsaSIse2tleTpzLGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSJ9LFJlLmNyZWF0ZUVsZW1lbnQoaSx7bmFtZTpzLHNjaGVtYTpvfSkpKSkpKSl9LGtleXdvcmRzX0FkZGl0aW9uYWxQcm9wZXJ0aWVzPSh7c2NoZW1hOnN9KT0+e2NvbnN0IG89dXNlRm4oKSxpPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpO2lmKCFvLmhhc0tleXdvcmQocywiYWRkaXRpb25hbFByb3BlcnRpZXMiKSlyZXR1cm4gbnVsbDtjb25zdCBhPVJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnkifSwiQWRkaXRpb25hbCBwcm9wZXJ0aWVzIik7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tYWRkaXRpb25hbFByb3BlcnRpZXMifSwhMD09PXMuYWRkaXRpb25hbFByb3BlcnRpZXM/UmUuY3JlYXRlRWxlbWVudChSZS5GcmFnbWVudCxudWxsLGEsUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeSJ9LCJhbGxvd2VkIikpOiExPT09cy5hZGRpdGlvbmFsUHJvcGVydGllcz9SZS5jcmVhdGVFbGVtZW50KFJlLkZyYWdtZW50LG51bGwsYSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5In0sImZvcmJpZGRlbiIpKTpSZS5jcmVhdGVFbGVtZW50KGkse25hbWU6YSxzY2hlbWE6cy5hZGRpdGlvbmFsUHJvcGVydGllcyxpZGVudGlmaWVyOiJhZGRpdGlvbmFsUHJvcGVydGllcyJ9KSl9LGtleXdvcmRzX1Byb3BlcnR5TmFtZXM9KHtzY2hlbWE6c30pPT57Y29uc3Qgbz11c2VGbigpLGk9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIiksYT1SZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIlByb3BlcnR5IG5hbWVzIik7cmV0dXJuIG8uaGFzS2V5d29yZChzLCJwcm9wZXJ0eU5hbWVzIik/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1wcm9wZXJ0eU5hbWVzIn0sUmUuY3JlYXRlRWxlbWVudChpLHtuYW1lOmEsc2NoZW1hOnMucHJvcGVydHlOYW1lcyxpZGVudGlmaWVyOiJwcm9wZXJ0eU5hbWVzIn0pKTpudWxsfSxrZXl3b3Jkc19VbmV2YWx1YXRlZEl0ZW1zPSh7c2NoZW1hOnN9KT0+e2NvbnN0IG89dXNlRm4oKSxpPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpO2lmKCFvLmhhc0tleXdvcmQocywidW5ldmFsdWF0ZWRJdGVtcyIpKXJldHVybiBudWxsO2NvbnN0IGE9UmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJVbmV2YWx1YXRlZCBpdGVtcyIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLXVuZXZhbHVhdGVkSXRlbXMifSxSZS5jcmVhdGVFbGVtZW50KGkse25hbWU6YSxzY2hlbWE6cy51bmV2YWx1YXRlZEl0ZW1zLGlkZW50aWZpZXI6InVuZXZhbHVhdGVkSXRlbXMifSkpfSxrZXl3b3Jkc19VbmV2YWx1YXRlZFByb3BlcnRpZXM9KHtzY2hlbWE6c30pPT57Y29uc3Qgbz11c2VGbigpLGk9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIik7aWYoIW8uaGFzS2V5d29yZChzLCJ1bmV2YWx1YXRlZFByb3BlcnRpZXMiKSlyZXR1cm4gbnVsbDtjb25zdCBhPVJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnkifSwiVW5ldmFsdWF0ZWQgcHJvcGVydGllcyIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLXVuZXZhbHVhdGVkUHJvcGVydGllcyJ9LFJlLmNyZWF0ZUVsZW1lbnQoaSx7bmFtZTphLHNjaGVtYTpzLnVuZXZhbHVhdGVkUHJvcGVydGllcyxpZGVudGlmaWVyOiJ1bmV2YWx1YXRlZFByb3BlcnRpZXMifSkpfSxrZXl3b3Jkc19UeXBlPSh7c2NoZW1hOnMsaXNDaXJjdWxhcjpvPSExfSk9Pntjb25zdCBpPXVzZUZuKCkuZ2V0VHlwZShzKSxhPW8/IiBbY2lyY3VsYXJdIjoiIjtyZXR1cm4gUmUuY3JlYXRlRWxlbWVudCgic3Ryb25nIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5In0sYCR7aX0ke2F9YCl9LEVudW1fRW51bT0oe3NjaGVtYTpzfSk9Pntjb25zdCBvPXVzZUNvbXBvbmVudCgiSlNPTlZpZXdlciIpO3JldHVybiBBcnJheS5pc0FycmF5KHM/LmVudW0pP1JlLmNyZWF0ZUVsZW1lbnQobyx7bmFtZToiRW51bSIsdmFsdWU6cy5lbnVtLGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZW51bSJ9KTpudWxsfSxDb25zdF9Db25zdD0oe3NjaGVtYTpzfSk9Pntjb25zdCBvPXVzZUZuKCksaT11c2VDb21wb25lbnQoIkpTT05WaWV3ZXIiKTtyZXR1cm4gby5oYXNLZXl3b3JkKHMsImNvbnN0Iik/UmUuY3JlYXRlRWxlbWVudChpLHtuYW1lOiJDb25zdCIsdmFsdWU6cy5jb25zdCxjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWNvbnN0In0pOm51bGx9LGZuX3VwcGVyRmlyc3Q9cz0+InN0cmluZyI9PXR5cGVvZiBzP2Ake3MuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHtzLnNsaWNlKDEpfWA6cyxtYWtlR2V0VGl0bGU9cz0+KG8se2xvb2t1cDppPSJleHRlbmRlZCJ9PXt9KT0+e2NvbnN0IGE9cygpO2lmKG51bGwhPW8/LnRpdGxlKXJldHVybiBhLnVwcGVyRmlyc3QoU3RyaW5nKG8udGl0bGUpKTtpZigiZXh0ZW5kZWQiPT09aSl7aWYobnVsbCE9bz8uJGFuY2hvcilyZXR1cm4gYS51cHBlckZpcnN0KFN0cmluZyhvLiRhbmNob3IpKTtpZihudWxsIT1vPy4kaWQpcmV0dXJuIFN0cmluZyhvLiRpZCl9cmV0dXJuIiJ9LG1ha2VHZXRUeXBlPXM9Pntjb25zdCBnZXRUeXBlPShvLGk9bmV3IFdlYWtTZXQpPT57Y29uc3QgYT1zKCk7aWYobnVsbD09bylyZXR1cm4iYW55IjtpZihhLmlzQm9vbGVhbkpTT05TY2hlbWEobykpcmV0dXJuIG8/ImFueSI6Im5ldmVyIjtpZigib2JqZWN0IiE9dHlwZW9mIG8pcmV0dXJuImFueSI7aWYoaS5oYXMobykpcmV0dXJuImFueSI7aS5hZGQobyk7Y29uc3R7dHlwZTp1LHByZWZpeEl0ZW1zOl8saXRlbXM6d309byxnZXRBcnJheVR5cGU9KCk9PntpZihBcnJheS5pc0FycmF5KF8pKXtjb25zdCBzPV8ubWFwKChzPT5nZXRUeXBlKHMsaSkpKSxvPXc/Z2V0VHlwZSh3LGkpOiJhbnkiO3JldHVybmBhcnJheTxbJHtzLmpvaW4oIiwgIil9XSwgJHtvfT5gfWlmKHcpe3JldHVybmBhcnJheTwke2dldFR5cGUodyxpKX0+YH1yZXR1cm4iYXJyYXk8YW55PiJ9O2lmKG8ubm90JiYiYW55Ij09PWdldFR5cGUoby5ub3QpKXJldHVybiJuZXZlciI7Y29uc3QgaGFuZGxlQ29tYmluaW5nS2V5d29yZHM9KHMsYSk9PntpZihBcnJheS5pc0FycmF5KG9bc10pKXtyZXR1cm5gKCR7b1tzXS5tYXAoKHM9PmdldFR5cGUocyxpKSkpLmpvaW4oYSl9KWB9cmV0dXJuIG51bGx9LHg9W0FycmF5LmlzQXJyYXkodSk/dS5tYXAoKHM9PiJhcnJheSI9PT1zP2dldEFycmF5VHlwZSgpOnMpKS5qb2luKCIgfCAiKToiYXJyYXkiPT09dT9nZXRBcnJheVR5cGUoKTpbIm51bGwiLCJib29sZWFuIiwib2JqZWN0IiwiYXJyYXkiLCJudW1iZXIiLCJpbnRlZ2VyIiwic3RyaW5nIl0uaW5jbHVkZXModSk/dTooKCk9PntpZihPYmplY3QuaGFzT3duKG8sInByZWZpeEl0ZW1zIil8fE9iamVjdC5oYXNPd24obywiaXRlbXMiKXx8T2JqZWN0Lmhhc093bihvLCJjb250YWlucyIpKXJldHVybiBnZXRBcnJheVR5cGUoKTtpZihPYmplY3QuaGFzT3duKG8sInByb3BlcnRpZXMiKXx8T2JqZWN0Lmhhc093bihvLCJhZGRpdGlvbmFsUHJvcGVydGllcyIpfHxPYmplY3QuaGFzT3duKG8sInBhdHRlcm5Qcm9wZXJ0aWVzIikpcmV0dXJuIm9iamVjdCI7aWYoWyJpbnQzMiIsImludDY0Il0uaW5jbHVkZXMoby5mb3JtYXQpKXJldHVybiJpbnRlZ2VyIjtpZihbImZsb2F0IiwiZG91YmxlIl0uaW5jbHVkZXMoby5mb3JtYXQpKXJldHVybiJudW1iZXIiO2lmKE9iamVjdC5oYXNPd24obywibWluaW11bSIpfHxPYmplY3QuaGFzT3duKG8sIm1heGltdW0iKXx8T2JqZWN0Lmhhc093bihvLCJleGNsdXNpdmVNaW5pbXVtIil8fE9iamVjdC5oYXNPd24obywiZXhjbHVzaXZlTWF4aW11bSIpfHxPYmplY3QuaGFzT3duKG8sIm11bHRpcGxlT2YiKSlyZXR1cm4ibnVtYmVyIHwgaW50ZWdlciI7aWYoT2JqZWN0Lmhhc093bihvLCJwYXR0ZXJuIil8fE9iamVjdC5oYXNPd24obywiZm9ybWF0Iil8fE9iamVjdC5oYXNPd24obywibWluTGVuZ3RoIil8fE9iamVjdC5oYXNPd24obywibWF4TGVuZ3RoIil8fE9iamVjdC5oYXNPd24obywiY29udGVudEVuY29kaW5nIil8fE9iamVjdC5oYXNPd24obywiY29udGVudE1lZGlhVHlwZSIpKXJldHVybiJzdHJpbmciO2lmKHZvaWQgMCE9PW8uY29uc3Qpe2lmKG51bGw9PT1vLmNvbnN0KXJldHVybiJudWxsIjtpZigiYm9vbGVhbiI9PXR5cGVvZiBvLmNvbnN0KXJldHVybiJib29sZWFuIjtpZigibnVtYmVyIj09dHlwZW9mIG8uY29uc3QpcmV0dXJuIE51bWJlci5pc0ludGVnZXIoby5jb25zdCk/ImludGVnZXIiOiJudW1iZXIiO2lmKCJzdHJpbmciPT10eXBlb2Ygby5jb25zdClyZXR1cm4ic3RyaW5nIjtpZihBcnJheS5pc0FycmF5KG8uY29uc3QpKXJldHVybiJhcnJheTxhbnk+IjtpZigib2JqZWN0Ij09dHlwZW9mIG8uY29uc3QpcmV0dXJuIm9iamVjdCJ9cmV0dXJuIG51bGx9KSgpLGhhbmRsZUNvbWJpbmluZ0tleXdvcmRzKCJvbmVPZiIsIiB8ICIpLGhhbmRsZUNvbWJpbmluZ0tleXdvcmRzKCJhbnlPZiIsIiB8ICIpLGhhbmRsZUNvbWJpbmluZ0tleXdvcmRzKCJhbGxPZiIsIiAmICIpXS5maWx0ZXIoQm9vbGVhbikuam9pbigiIHwgIik7cmV0dXJuIGkuZGVsZXRlKG8pLHh8fCJhbnkifTtyZXR1cm4gZ2V0VHlwZX0saXNCb29sZWFuSlNPTlNjaGVtYT1zPT4iYm9vbGVhbiI9PXR5cGVvZiBzLGhhc0tleXdvcmQ9KHMsbyk9Pm51bGwhPT1zJiYib2JqZWN0Ij09dHlwZW9mIHMmJk9iamVjdC5oYXNPd24ocyxvKSxmbl9tYWtlSXNFeHBhbmRhYmxlPXM9Pm89Pntjb25zdCBpPXMoKTtyZXR1cm4gbz8uJHNjaGVtYXx8bz8uJHZvY2FidWxhcnl8fG8/LiRpZHx8bz8uJGFuY2hvcnx8bz8uJGR5bmFtaWNBbmNob3J8fG8/LiRyZWZ8fG8/LiRkeW5hbWljUmVmfHxvPy4kZGVmc3x8bz8uJGNvbW1lbnR8fG8/LmFsbE9mfHxvPy5hbnlPZnx8bz8ub25lT2Z8fGkuaGFzS2V5d29yZChvLCJub3QiKXx8aS5oYXNLZXl3b3JkKG8sImlmIil8fGkuaGFzS2V5d29yZChvLCJ0aGVuIil8fGkuaGFzS2V5d29yZChvLCJlbHNlIil8fG8/LmRlcGVuZGVudFNjaGVtYXN8fG8/LnByZWZpeEl0ZW1zfHxpLmhhc0tleXdvcmQobywiaXRlbXMiKXx8aS5oYXNLZXl3b3JkKG8sImNvbnRhaW5zIil8fG8/LnByb3BlcnRpZXN8fG8/LnBhdHRlcm5Qcm9wZXJ0aWVzfHxpLmhhc0tleXdvcmQobywiYWRkaXRpb25hbFByb3BlcnRpZXMiKXx8aS5oYXNLZXl3b3JkKG8sInByb3BlcnR5TmFtZXMiKXx8aS5oYXNLZXl3b3JkKG8sInVuZXZhbHVhdGVkSXRlbXMiKXx8aS5oYXNLZXl3b3JkKG8sInVuZXZhbHVhdGVkUHJvcGVydGllcyIpfHxvPy5kZXNjcmlwdGlvbnx8bz8uZW51bXx8aS5oYXNLZXl3b3JkKG8sImNvbnN0Iil8fGkuaGFzS2V5d29yZChvLCJjb250ZW50U2NoZW1hIil8fGkuaGFzS2V5d29yZChvLCJkZWZhdWx0Iil8fG8/LmV4YW1wbGVzfHxpLmdldEV4dGVuc2lvbktleXdvcmRzKG8pLmxlbmd0aD4wfSxmbl9zdHJpbmdpZnk9cz0+bnVsbD09PXN8fFsibnVtYmVyIiwiYmlnaW50IiwiYm9vbGVhbiJdLmluY2x1ZGVzKHR5cGVvZiBzKT9TdHJpbmcocyk6QXJyYXkuaXNBcnJheShzKT9gWyR7cy5tYXAoZm5fc3RyaW5naWZ5KS5qb2luKCIsICIpfV1gOkpTT04uc3RyaW5naWZ5KHMpLHN0cmluZ2lmeUNvbnN0cmFpbnRSYW5nZT0ocyxvLGkpPT57Y29uc3QgYT0ibnVtYmVyIj09dHlwZW9mIG8sdT0ibnVtYmVyIj09dHlwZW9mIGk7cmV0dXJuIGEmJnU/bz09PWk/YCR7b30gJHtzfWA6YFske299LCAke2l9XSAke3N9YDphP2DiiaUgJHtvfSAke3N9YDp1P2DiiaQgJHtpfSAke3N9YDpudWxsfSxzdHJpbmdpZnlDb25zdHJhaW50cz1zPT57Y29uc3Qgbz1bXSxpPShzPT57aWYoIm51bWJlciIhPXR5cGVvZiBzPy5tdWx0aXBsZU9mKXJldHVybiBudWxsO2lmKHMubXVsdGlwbGVPZjw9MClyZXR1cm4gbnVsbDtpZigxPT09cy5tdWx0aXBsZU9mKXJldHVybiBudWxsO2NvbnN0e211bHRpcGxlT2Y6b309cztpZihOdW1iZXIuaXNJbnRlZ2VyKG8pKXJldHVybmBtdWx0aXBsZSBvZiAke299YDtjb25zdCBpPTEwKipvLnRvU3RyaW5nKCkuc3BsaXQoIi4iKVsxXS5sZW5ndGg7cmV0dXJuYG11bHRpcGxlIG9mICR7byppfS8ke2l9YH0pKHMpO251bGwhPT1pJiZvLnB1c2goe3Njb3BlOiJudW1iZXIiLHZhbHVlOml9KTtjb25zdCBhPShzPT57Y29uc3Qgbz1zPy5taW5pbXVtLGk9cz8ubWF4aW11bSxhPXM/LmV4Y2x1c2l2ZU1pbmltdW0sdT1zPy5leGNsdXNpdmVNYXhpbXVtLF89Im51bWJlciI9PXR5cGVvZiBvLHc9Im51bWJlciI9PXR5cGVvZiBpLHg9Im51bWJlciI9PXR5cGVvZiBhLEM9Im51bWJlciI9PXR5cGVvZiB1LGo9eCYmKCFffHxvPGEpLEw9QyYmKCF3fHxpPnUpO2lmKChffHx4KSYmKHd8fEMpKXJldHVybmAke2o/IigiOiJbIn0ke2o/YTpvfSwgJHtMP3U6aX0ke0w/IikiOiJdIn1gO2lmKF98fHgpcmV0dXJuYCR7aj8iPiI6IuKJpSJ9ICR7aj9hOm99YDtpZih3fHxDKXJldHVybmAke0w/IjwiOiLiiaQifSAke0w/dTppfWA7cmV0dXJuIG51bGx9KShzKTtudWxsIT09YSYmby5wdXNoKHtzY29wZToibnVtYmVyIix2YWx1ZTphfSkscz8uZm9ybWF0JiZvLnB1c2goe3Njb3BlOiJzdHJpbmciLHZhbHVlOnMuZm9ybWF0fSk7Y29uc3QgdT1zdHJpbmdpZnlDb25zdHJhaW50UmFuZ2UoImNoYXJhY3RlcnMiLHM/Lm1pbkxlbmd0aCxzPy5tYXhMZW5ndGgpO251bGwhPT11JiZvLnB1c2goe3Njb3BlOiJzdHJpbmciLHZhbHVlOnV9KSxzPy5wYXR0ZXJuJiZvLnB1c2goe3Njb3BlOiJzdHJpbmciLHZhbHVlOmBtYXRjaGVzICR7cz8ucGF0dGVybn1gfSkscz8uY29udGVudE1lZGlhVHlwZSYmby5wdXNoKHtzY29wZToic3RyaW5nIix2YWx1ZTpgbWVkaWEgdHlwZTogJHtzLmNvbnRlbnRNZWRpYVR5cGV9YH0pLHM/LmNvbnRlbnRFbmNvZGluZyYmby5wdXNoKHtzY29wZToic3RyaW5nIix2YWx1ZTpgZW5jb2Rpbmc6ICR7cy5jb250ZW50RW5jb2Rpbmd9YH0pO2NvbnN0IF89c3RyaW5naWZ5Q29uc3RyYWludFJhbmdlKHM/LnVuaXF1ZUl0ZW1zPyJ1bmlxdWUgaXRlbXMiOiJpdGVtcyIscz8ubWluSXRlbXMscz8ubWF4SXRlbXMpO251bGwhPT1fJiZvLnB1c2goe3Njb3BlOiJhcnJheSIsdmFsdWU6X30pLHM/LnVuaXF1ZUl0ZW1zJiYhXyYmby5wdXNoKHtzY29wZToiYXJyYXkiLHZhbHVlOiJ1bmlxdWUifSk7Y29uc3Qgdz1zdHJpbmdpZnlDb25zdHJhaW50UmFuZ2UoImNvbnRhaW5lZCBpdGVtcyIscz8ubWluQ29udGFpbnMscz8ubWF4Q29udGFpbnMpO251bGwhPT13JiZvLnB1c2goe3Njb3BlOiJhcnJheSIsdmFsdWU6d30pO2NvbnN0IHg9c3RyaW5naWZ5Q29uc3RyYWludFJhbmdlKCJwcm9wZXJ0aWVzIixzPy5taW5Qcm9wZXJ0aWVzLHM/Lm1heFByb3BlcnRpZXMpO3JldHVybiBudWxsIT09eCYmby5wdXNoKHtzY29wZToib2JqZWN0Iix2YWx1ZTp4fSksb30sZ2V0RGVwZW5kZW50UmVxdWlyZWQ9KHMsbyk9Pm8/LmRlcGVuZGVudFJlcXVpcmVkP0FycmF5LmZyb20oT2JqZWN0LmVudHJpZXMoby5kZXBlbmRlbnRSZXF1aXJlZCkucmVkdWNlKCgobyxbaSxhXSk9PkFycmF5LmlzQXJyYXkoYSkmJmEuaW5jbHVkZXMocyk/KG8uYWRkKGkpLG8pOm8pLG5ldyBTZXQpKTpbXSxmbl9pc1BsYWluT2JqZWN0PXM9PiJvYmplY3QiPT10eXBlb2YgcyYmbnVsbCE9PXMmJiFBcnJheS5pc0FycmF5KHMpJiYobnVsbD09PU9iamVjdC5nZXRQcm90b3R5cGVPZihzKXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKHMpPT09T2JqZWN0LnByb3RvdHlwZSksZ2V0U2NoZW1hS2V5d29yZHM9KCk9PlsiJHNjaGVtYSIsIiR2b2NhYnVsYXJ5IiwiJGlkIiwiJGFuY2hvciIsIiRkeW5hbWljQW5jaG9yIiwiJGR5bmFtaWNSZWYiLCIkcmVmIiwiJGRlZnMiLCIkY29tbWVudCIsImFsbE9mIiwiYW55T2YiLCJvbmVPZiIsIm5vdCIsImlmIiwidGhlbiIsImVsc2UiLCJkZXBlbmRlbnRTY2hlbWFzIiwicHJlZml4SXRlbXMiLCJpdGVtcyIsImNvbnRhaW5zIiwicHJvcGVydGllcyIsInBhdHRlcm5Qcm9wZXJ0aWVzIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJwcm9wZXJ0eU5hbWVzIiwidW5ldmFsdWF0ZWRJdGVtcyIsInVuZXZhbHVhdGVkUHJvcGVydGllcyIsInR5cGUiLCJlbnVtIiwiY29uc3QiLCJtdWx0aXBsZU9mIiwibWF4aW11bSIsImV4Y2x1c2l2ZU1heGltdW0iLCJtaW5pbXVtIiwiZXhjbHVzaXZlTWluaW11bSIsIm1heExlbmd0aCIsIm1pbkxlbmd0aCIsInBhdHRlcm4iLCJtYXhJdGVtcyIsIm1pbkl0ZW1zIiwidW5pcXVlSXRlbXMiLCJtYXhDb250YWlucyIsIm1pbkNvbnRhaW5zIiwibWF4UHJvcGVydGllcyIsIm1pblByb3BlcnRpZXMiLCJyZXF1aXJlZCIsImRlcGVuZGVudFJlcXVpcmVkIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImRlZmF1bHQiLCJkZXByZWNhdGVkIiwicmVhZE9ubHkiLCJ3cml0ZU9ubHkiLCJleGFtcGxlcyIsImZvcm1hdCIsImNvbnRlbnRFbmNvZGluZyIsImNvbnRlbnRNZWRpYVR5cGUiLCJjb250ZW50U2NoZW1hIl0sbWFrZUdldEV4dGVuc2lvbktleXdvcmRzPXM9Pm89Pntjb25zdCBpPXMoKS5nZXRTY2hlbWFLZXl3b3JkcygpO3JldHVybiBmbl9pc1BsYWluT2JqZWN0KG8pPygocyxvKT0+e2NvbnN0IGk9bmV3IFNldChvKTtyZXR1cm4gcy5maWx0ZXIoKHM9PiFpLmhhcyhzKSkpfSkoT2JqZWN0LmtleXMobyksaSk6W119LGZuX2hhc1NjaGVtYVR5cGU9KHMsbyk9Pntjb25zdCBpPXplLk1hcC5pc01hcChzKTtpZighaSYmIWZuX2lzUGxhaW5PYmplY3QocykpcmV0dXJuITE7Y29uc3QgaGFzVHlwZT1zPT5vPT09c3x8QXJyYXkuaXNBcnJheShvKSYmby5pbmNsdWRlcyhzKSxhPWk/cy5nZXQoInR5cGUiKTpzLnR5cGU7cmV0dXJuIHplLkxpc3QuaXNMaXN0KGEpfHxBcnJheS5pc0FycmF5KGEpP2Euc29tZSgocz0+aGFzVHlwZShzKSkpOmhhc1R5cGUoYSl9LENvbnN0cmFpbnQ9KHtjb25zdHJhaW50OnN9KT0+Zm5faXNQbGFpbk9iamVjdChzKSYmInN0cmluZyI9PXR5cGVvZiBzLnNjb3BlJiYic3RyaW5nIj09dHlwZW9mIHMudmFsdWU/UmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpganNvbi1zY2hlbWEtMjAyMC0xMl9fY29uc3RyYWludCBqc29uLXNjaGVtYS0yMDIwLTEyX19jb25zdHJhaW50LS0ke3Muc2NvcGV9YH0scy52YWx1ZSk6bnVsbCxsVD1SZS5tZW1vKENvbnN0cmFpbnQpLERlcGVuZGVudFJlcXVpcmVkX0RlcGVuZGVudFJlcXVpcmVkPSh7ZGVwZW5kZW50UmVxdWlyZWQ6c30pPT5BcnJheS5pc0FycmF5KHMpJiYwIT09cy5sZW5ndGg/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kZXBlbmRlbnRSZXF1aXJlZCJ9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnkifSwiUmVxdWlyZWQgd2hlbiBkZWZpbmVkIiksUmUuY3JlYXRlRWxlbWVudCgidWwiLG51bGwscy5tYXAoKHM9PlJlLmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OnN9LFJlLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0td2FybmluZyJ9LHMpKSkpKSk6bnVsbCxrZXl3b3Jkc19Db250ZW50U2NoZW1hPSh7c2NoZW1hOnN9KT0+e2NvbnN0IG89dXNlRm4oKSxpPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpO2lmKCFvLmhhc0tleXdvcmQocywiY29udGVudFNjaGVtYSIpKXJldHVybiBudWxsO2NvbnN0IGE9UmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJDb250ZW50IHNjaGVtYSIpO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWNvbnRlbnRTY2hlbWEifSxSZS5jcmVhdGVFbGVtZW50KGkse25hbWU6YSxzY2hlbWE6cy5jb250ZW50U2NoZW1hLGlkZW50aWZpZXI6ImNvbnRlbnRTY2hlbWEifSkpfSxUaXRsZV9UaXRsZT0oe3RpdGxlOnM9IiIsc2NoZW1hOm99KT0+e2NvbnN0IGk9dXNlRm4oKSxhPXN8fGkuZ2V0VGl0bGUobyk7cmV0dXJuIGE/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX190aXRsZSJ9LGEpOm51bGx9LGtleXdvcmRzX0Rlc2NyaXB0aW9uX0Rlc2NyaXB0aW9uPSh7c2NoZW1hOnN9KT0+cz8uZGVzY3JpcHRpb24/UmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kZXNjcmlwdGlvbiJ9LFJlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1jb3JlLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTItY29yZS1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0scy5kZXNjcmlwdGlvbikpOm51bGwsRGVmYXVsdF9EZWZhdWx0PSh7c2NoZW1hOnN9KT0+e2NvbnN0IG89dXNlRm4oKSxpPXVzZUNvbXBvbmVudCgiSlNPTlZpZXdlciIpO3JldHVybiBvLmhhc0tleXdvcmQocywiZGVmYXVsdCIpP1JlLmNyZWF0ZUVsZW1lbnQoaSx7bmFtZToiRGVmYXVsdCIsdmFsdWU6cy5kZWZhdWx0LGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZGVmYXVsdCJ9KTpudWxsfSxrZXl3b3Jkc19EZXByZWNhdGVkPSh7c2NoZW1hOnN9KT0+ITAhPT1zPy5kZXByZWNhdGVkP251bGw6UmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0td2FybmluZyJ9LCJkZXByZWNhdGVkIiksa2V5d29yZHNfUmVhZE9ubHk9KHtzY2hlbWE6c30pPT4hMCE9PXM/LnJlYWRPbmx5P251bGw6UmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tbXV0ZWQifSwicmVhZC1vbmx5Iiksa2V5d29yZHNfV3JpdGVPbmx5PSh7c2NoZW1hOnN9KT0+ITAhPT1zPy53cml0ZU9ubHk/bnVsbDpSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1tdXRlZCJ9LCJ3cml0ZS1vbmx5Iiksa2V5d29yZHNfRXhhbXBsZXNfRXhhbXBsZXM9KHtzY2hlbWE6c30pPT57Y29uc3Qgbz1zPy5leGFtcGxlc3x8W10saT11c2VDb21wb25lbnQoIkpTT05WaWV3ZXIiKTtyZXR1cm4gQXJyYXkuaXNBcnJheShvKSYmMCE9PW8ubGVuZ3RoP1JlLmNyZWF0ZUVsZW1lbnQoaSx7bmFtZToiRXhhbXBsZXMiLHZhbHVlOnMuZXhhbXBsZXMsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1leGFtcGxlcyJ9KTpudWxsfSxFeHRlbnNpb25LZXl3b3Jkc19FeHRlbnNpb25LZXl3b3Jkcz0oe3NjaGVtYTpzfSk9Pntjb25zdCBvPXVzZUZuKCksaT0iRXh0ZW5zaW9uS2V5d29yZHMiLHtwYXRoOmF9PXVzZVBhdGgoaSkse2lzRXhwYW5kZWQ6dSxzZXRFeHBhbmRlZDpfLHNldENvbGxhcHNlZDp3fT11c2VJc0V4cGFuZGVkKGkpLFt4LENdPXVzZUxldmVsKCksaj11c2VDb21wb25lbnQoIkFjY29yZGlvbiIpLEw9dXNlQ29tcG9uZW50KCJFeHBhbmREZWVwQnV0dG9uIiksQj11c2VDb21wb25lbnQoIkpTT05WaWV3ZXIiKSx7c2hvd0V4dGVuc2lvbktleXdvcmRzOiR9PXVzZUNvbmZpZygpLFY9by5nZXRFeHRlbnNpb25LZXl3b3JkcyhzKSxVPSgwLFJlLnVzZUNhbGxiYWNrKSgoKCk9Pnt1P3coKTpfKCl9KSxbdSxfLHddKSx6PSgwLFJlLnVzZUNhbGxiYWNrKSgoKHMsbyk9PntvP18oe2RlZXA6ITB9KTp3KHtkZWVwOiEwfSl9KSxbXyx3XSk7cmV0dXJuICQmJjAhPT1WLmxlbmd0aD9SZS5jcmVhdGVFbGVtZW50KGlULlByb3ZpZGVyLHt2YWx1ZTphfSxSZS5jcmVhdGVFbGVtZW50KHNULlByb3ZpZGVyLHt2YWx1ZTpDfSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWV4dGVuc2lvbi1rZXl3b3JkcyIsImRhdGEtanNvbi1zY2hlbWEtbGV2ZWwiOnh9LFJlLmNyZWF0ZUVsZW1lbnQoaix7ZXhwYW5kZWQ6dSxvbkNoYW5nZTpVfSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1leHRlbnNpb24ifSwiRXh0ZW5zaW9uIEtleXdvcmRzIikpLFJlLmNyZWF0ZUVsZW1lbnQoTCx7ZXhwYW5kZWQ6dSxvbkNsaWNrOnp9KSxSZS5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZTpKbigpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuIix7Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4tLWNvbGxhcHNlZCI6IXV9KX0sdSYmUmUuY3JlYXRlRWxlbWVudChSZS5GcmFnbWVudCxudWxsLFYubWFwKChvPT5SZS5jcmVhdGVFbGVtZW50KEIse2tleTpvLG5hbWU6byx2YWx1ZTpzW29dLGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlci1leHRlbnNpb24ta2V5d29yZCJ9KSkpKSkpKSk6bnVsbH0sSlNPTlZpZXdlcj0oe25hbWU6cyx2YWx1ZTpvLGNsYXNzTmFtZTppfSk9Pntjb25zdCBhPXVzZUZuKCkse3BhdGg6dX09dXNlUGF0aChzKSx7aXNFeHBhbmRlZDpfLHNldEV4cGFuZGVkOncsc2V0Q29sbGFwc2VkOnh9PXVzZUlzRXhwYW5kZWQocyksW0Msal09dXNlTGV2ZWwoKSxMPXVzZUNvbXBvbmVudCgiQWNjb3JkaW9uIiksQj11c2VDb21wb25lbnQoIkV4cGFuZERlZXBCdXR0b24iKSwkPSJzdHJpbmciPT10eXBlb2Ygb3x8Im51bWJlciI9PXR5cGVvZiBvfHwiYmlnaW50Ij09dHlwZW9mIG98fCJib29sZWFuIj09dHlwZW9mIG98fCJzeW1ib2wiPT10eXBlb2Ygb3x8bnVsbD09byxWPShzPT5mbl9pc1BsYWluT2JqZWN0KHMpJiYwPT09T2JqZWN0LmtleXMocykubGVuZ3RoKShvKXx8KHM9PkFycmF5LmlzQXJyYXkocykmJjA9PT1zLmxlbmd0aCkobyksVT0oMCxSZS51c2VDYWxsYmFjaykoKCgpPT57Xz94KCk6dygpfSksW18sdyx4XSksej0oMCxSZS51c2VDYWxsYmFjaykoKChzLG8pPT57bz93KHtkZWVwOiEwfSk6eCh7ZGVlcDohMH0pfSksW3cseF0pO3JldHVybiAkP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpKbigpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyIixpKX0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19uYW1lLS1zZWNvbmRhcnkifSxzKSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX192YWx1ZS0tc2Vjb25kYXJ5In0sYS5zdHJpbmdpZnkobykpKTpWP1JlLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpKbigpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyIixpKX0sUmUuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19uYW1lLS1zZWNvbmRhcnkifSxzKSxSZS5jcmVhdGVFbGVtZW50KCJzdHJvbmciLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnkifSxBcnJheS5pc0FycmF5KG8pPyJlbXB0eSBhcnJheSI6ImVtcHR5IG9iamVjdCIpKTpSZS5jcmVhdGVFbGVtZW50KGlULlByb3ZpZGVyLHt2YWx1ZTp1fSxSZS5jcmVhdGVFbGVtZW50KHNULlByb3ZpZGVyLHt2YWx1ZTpqfSxSZS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Sm4oKSgianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlciIsaSksImRhdGEtanNvbi1zY2hlbWEtbGV2ZWwiOkN9LFJlLmNyZWF0ZUVsZW1lbnQoTCx7ZXhwYW5kZWQ6XyxvbkNoYW5nZTpVfSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX25hbWUtLXNlY29uZGFyeSJ9LHMpKSxSZS5jcmVhdGVFbGVtZW50KEIse2V4cGFuZGVkOl8sb25DbGljazp6fSksUmUuY3JlYXRlRWxlbWVudCgic3Ryb25nIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5In0sQXJyYXkuaXNBcnJheShvKT8iYXJyYXkiOiJvYmplY3QiKSxSZS5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZTpKbigpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19jaGlsZHJlbiIseyJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19jaGlsZHJlbi0tY29sbGFwc2VkIjohX30pfSxfJiZSZS5jcmVhdGVFbGVtZW50KFJlLkZyYWdtZW50LG51bGwsQXJyYXkuaXNBcnJheShvKT9vLm1hcCgoKHMsbyk9PlJlLmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OmAjJHtvfWAsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sUmUuY3JlYXRlRWxlbWVudChKU09OVmlld2VyLHtuYW1lOmAjJHtvfWAsdmFsdWU6cyxjbGFzc05hbWU6aX0pKSkpOk9iamVjdC5lbnRyaWVzKG8pLm1hcCgoKFtzLG9dKT0+UmUuY3JlYXRlRWxlbWVudCgibGkiLHtrZXk6cyxjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHkifSxSZS5jcmVhdGVFbGVtZW50KEpTT05WaWV3ZXIse25hbWU6cyx2YWx1ZTpvLGNsYXNzTmFtZTppfSkpKSkpKSkpKX0sdVQ9SlNPTlZpZXdlcixBY2NvcmRpb25fQWNjb3JkaW9uPSh7ZXhwYW5kZWQ6cz0hMSxjaGlsZHJlbjpvLG9uQ2hhbmdlOml9KT0+e2NvbnN0IGE9dXNlQ29tcG9uZW50KCJDaGV2cm9uUmlnaHRJY29uIiksdT0oMCxSZS51c2VDYWxsYmFjaykoKG89PntpKG8sIXMpfSksW3MsaV0pO3JldHVybiBSZS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb24iLG9uQ2xpY2s6dX0sUmUuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWFjY29yZGlvbl9fY2hpbGRyZW4ifSxvKSxSZS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOkpuKCkoImpzb24tc2NoZW1hLTIwMjAtMTItYWNjb3JkaW9uX19pY29uIix7Impzb24tc2NoZW1hLTIwMjAtMTItYWNjb3JkaW9uX19pY29uLS1leHBhbmRlZCI6cywianNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb25fX2ljb24tLWNvbGxhcHNlZCI6IXN9KX0sUmUuY3JlYXRlRWxlbWVudChhLG51bGwpKSl9LEV4cGFuZERlZXBCdXR0b25fRXhwYW5kRGVlcEJ1dHRvbj0oe2V4cGFuZGVkOnMsb25DbGljazpvfSk9Pntjb25zdCBpPSgwLFJlLnVzZUNhbGxiYWNrKSgoaT0+e28oaSwhcyl9KSxbcyxvXSk7cmV0dXJuIFJlLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWV4cGFuZC1kZWVwLWJ1dHRvbiIsb25DbGljazppfSxzPyJDb2xsYXBzZSBhbGwiOiJFeHBhbmQgYWxsIil9LGljb25zX0NoZXZyb25SaWdodD0oKT0+UmUuY3JlYXRlRWxlbWVudCgic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoiMjQiLGhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCJ9LFJlLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTAgNkw4LjU5IDcuNDEgMTMuMTcgMTJsLTQuNTggNC41OUwxMCAxOGw2LTZ6In0pKSx3aXRoSlNPTlNjaGVtYUNvbnRleHQ9KHMsbz17fSk9Pntjb25zdCBpPXtjb21wb25lbnRzOntKU09OU2NoZW1hOmNULEtleXdvcmQkc2NoZW1hOmtleXdvcmRzXyRzY2hlbWEsS2V5d29yZCR2b2NhYnVsYXJ5OiR2b2NhYnVsYXJ5XyR2b2NhYnVsYXJ5LEtleXdvcmQkaWQ6a2V5d29yZHNfJGlkLEtleXdvcmQkYW5jaG9yOmtleXdvcmRzXyRhbmNob3IsS2V5d29yZCRkeW5hbWljQW5jaG9yOmtleXdvcmRzXyRkeW5hbWljQW5jaG9yLEtleXdvcmQkcmVmOmtleXdvcmRzXyRyZWYsS2V5d29yZCRkeW5hbWljUmVmOmtleXdvcmRzXyRkeW5hbWljUmVmLEtleXdvcmQkZGVmczprZXl3b3Jkc18kZGVmcyxLZXl3b3JkJGNvbW1lbnQ6a2V5d29yZHNfJGNvbW1lbnQsS2V5d29yZEFsbE9mOmtleXdvcmRzX0FsbE9mLEtleXdvcmRBbnlPZjprZXl3b3Jkc19BbnlPZixLZXl3b3JkT25lT2Y6a2V5d29yZHNfT25lT2YsS2V5d29yZE5vdDprZXl3b3Jkc19Ob3QsS2V5d29yZElmOmtleXdvcmRzX0lmLEtleXdvcmRUaGVuOmtleXdvcmRzX1RoZW4sS2V5d29yZEVsc2U6a2V5d29yZHNfRWxzZSxLZXl3b3JkRGVwZW5kZW50U2NoZW1hczprZXl3b3Jkc19EZXBlbmRlbnRTY2hlbWFzLEtleXdvcmRQcmVmaXhJdGVtczprZXl3b3Jkc19QcmVmaXhJdGVtcyxLZXl3b3JkSXRlbXM6a2V5d29yZHNfSXRlbXMsS2V5d29yZENvbnRhaW5zOmtleXdvcmRzX0NvbnRhaW5zLEtleXdvcmRQcm9wZXJ0aWVzOmtleXdvcmRzX1Byb3BlcnRpZXNfUHJvcGVydGllcyxLZXl3b3JkUGF0dGVyblByb3BlcnRpZXM6UGF0dGVyblByb3BlcnRpZXNfUGF0dGVyblByb3BlcnRpZXMsS2V5d29yZEFkZGl0aW9uYWxQcm9wZXJ0aWVzOmtleXdvcmRzX0FkZGl0aW9uYWxQcm9wZXJ0aWVzLEtleXdvcmRQcm9wZXJ0eU5hbWVzOmtleXdvcmRzX1Byb3BlcnR5TmFtZXMsS2V5d29yZFVuZXZhbHVhdGVkSXRlbXM6a2V5d29yZHNfVW5ldmFsdWF0ZWRJdGVtcyxLZXl3b3JkVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzOmtleXdvcmRzX1VuZXZhbHVhdGVkUHJvcGVydGllcyxLZXl3b3JkVHlwZTprZXl3b3Jkc19UeXBlLEtleXdvcmRFbnVtOkVudW1fRW51bSxLZXl3b3JkQ29uc3Q6Q29uc3RfQ29uc3QsS2V5d29yZENvbnN0cmFpbnQ6bFQsS2V5d29yZERlcGVuZGVudFJlcXVpcmVkOkRlcGVuZGVudFJlcXVpcmVkX0RlcGVuZGVudFJlcXVpcmVkLEtleXdvcmRDb250ZW50U2NoZW1hOmtleXdvcmRzX0NvbnRlbnRTY2hlbWEsS2V5d29yZFRpdGxlOlRpdGxlX1RpdGxlLEtleXdvcmREZXNjcmlwdGlvbjprZXl3b3Jkc19EZXNjcmlwdGlvbl9EZXNjcmlwdGlvbixLZXl3b3JkRGVmYXVsdDpEZWZhdWx0X0RlZmF1bHQsS2V5d29yZERlcHJlY2F0ZWQ6a2V5d29yZHNfRGVwcmVjYXRlZCxLZXl3b3JkUmVhZE9ubHk6a2V5d29yZHNfUmVhZE9ubHksS2V5d29yZFdyaXRlT25seTprZXl3b3Jkc19Xcml0ZU9ubHksS2V5d29yZEV4YW1wbGVzOmtleXdvcmRzX0V4YW1wbGVzX0V4YW1wbGVzLEV4dGVuc2lvbktleXdvcmRzOkV4dGVuc2lvbktleXdvcmRzX0V4dGVuc2lvbktleXdvcmRzLEpTT05WaWV3ZXI6dVQsQWNjb3JkaW9uOkFjY29yZGlvbl9BY2NvcmRpb24sRXhwYW5kRGVlcEJ1dHRvbjpFeHBhbmREZWVwQnV0dG9uX0V4cGFuZERlZXBCdXR0b24sQ2hldnJvblJpZ2h0SWNvbjppY29uc19DaGV2cm9uUmlnaHQsLi4uby5jb21wb25lbnRzfSxjb25maWc6e2RlZmF1bHQkc2NoZW1hOiJodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3NjaGVtYSIsZGVmYXVsdEV4cGFuZGVkTGV2ZWxzOjAsc2hvd0V4dGVuc2lvbktleXdvcmRzOiEwLC4uLm8uY29uZmlnfSxmbjp7dXBwZXJGaXJzdDpmbl91cHBlckZpcnN0LGdldFRpdGxlOm1ha2VHZXRUaXRsZSh1c2VGbiksZ2V0VHlwZTptYWtlR2V0VHlwZSh1c2VGbiksaXNCb29sZWFuSlNPTlNjaGVtYSxoYXNLZXl3b3JkLGlzRXhwYW5kYWJsZTpmbl9tYWtlSXNFeHBhbmRhYmxlKHVzZUZuKSxzdHJpbmdpZnk6Zm5fc3RyaW5naWZ5LHN0cmluZ2lmeUNvbnN0cmFpbnRzLGdldERlcGVuZGVudFJlcXVpcmVkLGdldFNjaGVtYUtleXdvcmRzLGdldEV4dGVuc2lvbktleXdvcmRzOm1ha2VHZXRFeHRlbnNpb25LZXl3b3Jkcyh1c2VGbiksLi4uby5mbn0sc3RhdGU6e3BhdGhzOnt9fX0sSE9DPW89PlJlLmNyZWF0ZUVsZW1lbnQoblQuUHJvdmlkZXIse3ZhbHVlOml9LFJlLmNyZWF0ZUVsZW1lbnQocyxvKSk7cmV0dXJuIEhPQy5jb250ZXh0cz17SlNPTlNjaGVtYUNvbnRleHQ6blR9LEhPQy5kaXNwbGF5TmFtZT1zLmRpc3BsYXlOYW1lLEhPQ30sbWFrZVdpdGhKU09OU2NoZW1hU3lzdGVtQ29udGV4dD0oe2dldFN5c3RlbTpzfSk9PihvLGk9e30pPT57Y29uc3R7Z2V0Q29tcG9uZW50OmEsZ2V0Q29uZmlnczp1fT1zKCksXz11KCksdz1hKCJKU09OU2NoZW1hMjAyMDEyIikseD1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRzY2hlbWEiKSxDPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJHZvY2FidWxhcnkiKSxqPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGlkIiksTD1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRhbmNob3IiKSxCPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGR5bmFtaWNBbmNob3IiKSwkPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJHJlZiIpLFY9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkZHluYW1pY1JlZiIpLFU9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkZGVmcyIpLHo9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkY29tbWVudCIpLFk9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBbGxPZiIpLFo9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBbnlPZiIpLGVlPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkT25lT2YiKSxpZT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZE5vdCIpLGFlPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkSWYiKSxjZT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRoZW4iKSxsZT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEVsc2UiKSxwZT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlcGVuZGVudFNjaGVtYXMiKSxkZT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByZWZpeEl0ZW1zIiksZmU9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRJdGVtcyIpLHllPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29udGFpbnMiKSxiZT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByb3BlcnRpZXMiKSxfZT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzIiksU2U9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBZGRpdGlvbmFsUHJvcGVydGllcyIpLHdlPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUHJvcGVydHlOYW1lcyIpLHhlPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtcyIpLFBlPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzIiksVGU9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRUeXBlIiksUmU9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFbnVtIiksJGU9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRDb25zdCIpLHFlPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29uc3RyYWludCIpLHplPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQiKSxXZT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZENvbnRlbnRTY2hlbWEiKSxIZT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRpdGxlIiksWWU9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXNjcmlwdGlvbiIpLFhlPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVmYXVsdCIpLFFlPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwcmVjYXRlZCIpLGV0PWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUmVhZE9ubHkiKSx0dD1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFdyaXRlT25seSIpLHJ0PWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXhhbXBsZXMiKSxudD1hKCJKU09OU2NoZW1hMjAyMDEyRXh0ZW5zaW9uS2V5d29yZHMiKSxzdD1hKCJKU09OU2NoZW1hMjAyMDEySlNPTlZpZXdlciIpLG90PWEoIkpTT05TY2hlbWEyMDIwMTJBY2NvcmRpb24iKSxpdD1hKCJKU09OU2NoZW1hMjAyMDEyRXhwYW5kRGVlcEJ1dHRvbiIpLGF0PWEoIkpTT05TY2hlbWEyMDIwMTJDaGV2cm9uUmlnaHRJY29uIik7cmV0dXJuIHdpdGhKU09OU2NoZW1hQ29udGV4dChvLHtjb21wb25lbnRzOntKU09OU2NoZW1hOncsS2V5d29yZCRzY2hlbWE6eCxLZXl3b3JkJHZvY2FidWxhcnk6QyxLZXl3b3JkJGlkOmosS2V5d29yZCRhbmNob3I6TCxLZXl3b3JkJGR5bmFtaWNBbmNob3I6QixLZXl3b3JkJHJlZjokLEtleXdvcmQkZHluYW1pY1JlZjpWLEtleXdvcmQkZGVmczpVLEtleXdvcmQkY29tbWVudDp6LEtleXdvcmRBbGxPZjpZLEtleXdvcmRBbnlPZjpaLEtleXdvcmRPbmVPZjplZSxLZXl3b3JkTm90OmllLEtleXdvcmRJZjphZSxLZXl3b3JkVGhlbjpjZSxLZXl3b3JkRWxzZTpsZSxLZXl3b3JkRGVwZW5kZW50U2NoZW1hczpwZSxLZXl3b3JkUHJlZml4SXRlbXM6ZGUsS2V5d29yZEl0ZW1zOmZlLEtleXdvcmRDb250YWluczp5ZSxLZXl3b3JkUHJvcGVydGllczpiZSxLZXl3b3JkUGF0dGVyblByb3BlcnRpZXM6X2UsS2V5d29yZEFkZGl0aW9uYWxQcm9wZXJ0aWVzOlNlLEtleXdvcmRQcm9wZXJ0eU5hbWVzOndlLEtleXdvcmRVbmV2YWx1YXRlZEl0ZW1zOnhlLEtleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXM6UGUsS2V5d29yZFR5cGU6VGUsS2V5d29yZEVudW06UmUsS2V5d29yZENvbnN0OiRlLEtleXdvcmRDb25zdHJhaW50OnFlLEtleXdvcmREZXBlbmRlbnRSZXF1aXJlZDp6ZSxLZXl3b3JkQ29udGVudFNjaGVtYTpXZSxLZXl3b3JkVGl0bGU6SGUsS2V5d29yZERlc2NyaXB0aW9uOlllLEtleXdvcmREZWZhdWx0OlhlLEtleXdvcmREZXByZWNhdGVkOlFlLEtleXdvcmRSZWFkT25seTpldCxLZXl3b3JkV3JpdGVPbmx5OnR0LEtleXdvcmRFeGFtcGxlczpydCxFeHRlbnNpb25LZXl3b3JkczpudCxKU09OVmlld2VyOnN0LEFjY29yZGlvbjpvdCxFeHBhbmREZWVwQnV0dG9uOml0LENoZXZyb25SaWdodEljb246YXQsLi4uaS5jb21wb25lbnRzfSxjb25maWc6e3Nob3dFeHRlbnNpb25LZXl3b3JkczpfLnNob3dFeHRlbnNpb25zLC4uLmkuY29uZmlnfSxmbjp7Li4uaS5mbn19KX0sanNvbl9zY2hlbWFfMjAyMF8xMj0oe2dldFN5c3RlbTpzLGZuOm99KT0+e2NvbnN0IGZuQWNjZXNzb3I9KCk9Pih7dXBwZXJGaXJzdDpvLnVwcGVyRmlyc3QsLi4uby5qc29uU2NoZW1hMjAyMDEyfSk7cmV0dXJue2NvbXBvbmVudHM6e0pTT05TY2hlbWEyMDIwMTI6Y1QsSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkc2NoZW1hOmtleXdvcmRzXyRzY2hlbWEsSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkdm9jYWJ1bGFyeTokdm9jYWJ1bGFyeV8kdm9jYWJ1bGFyeSxKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRpZDprZXl3b3Jkc18kaWQsSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkYW5jaG9yOmtleXdvcmRzXyRhbmNob3IsSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkZHluYW1pY0FuY2hvcjprZXl3b3Jkc18kZHluYW1pY0FuY2hvcixKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRyZWY6a2V5d29yZHNfJHJlZixKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRkeW5hbWljUmVmOmtleXdvcmRzXyRkeW5hbWljUmVmLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGRlZnM6a2V5d29yZHNfJGRlZnMsSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkY29tbWVudDprZXl3b3Jkc18kY29tbWVudCxKU09OU2NoZW1hMjAyMDEyS2V5d29yZEFsbE9mOmtleXdvcmRzX0FsbE9mLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQW55T2Y6a2V5d29yZHNfQW55T2YsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRPbmVPZjprZXl3b3Jkc19PbmVPZixKU09OU2NoZW1hMjAyMDEyS2V5d29yZE5vdDprZXl3b3Jkc19Ob3QsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRJZjprZXl3b3Jkc19JZixKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRoZW46a2V5d29yZHNfVGhlbixKU09OU2NoZW1hMjAyMDEyS2V5d29yZEVsc2U6a2V5d29yZHNfRWxzZSxKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlcGVuZGVudFNjaGVtYXM6a2V5d29yZHNfRGVwZW5kZW50U2NoZW1hcyxKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByZWZpeEl0ZW1zOmtleXdvcmRzX1ByZWZpeEl0ZW1zLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkSXRlbXM6a2V5d29yZHNfSXRlbXMsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRDb250YWluczprZXl3b3Jkc19Db250YWlucyxKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByb3BlcnRpZXM6a2V5d29yZHNfUHJvcGVydGllc19Qcm9wZXJ0aWVzLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUGF0dGVyblByb3BlcnRpZXM6UGF0dGVyblByb3BlcnRpZXNfUGF0dGVyblByb3BlcnRpZXMsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBZGRpdGlvbmFsUHJvcGVydGllczprZXl3b3Jkc19BZGRpdGlvbmFsUHJvcGVydGllcyxKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByb3BlcnR5TmFtZXM6a2V5d29yZHNfUHJvcGVydHlOYW1lcyxKU09OU2NoZW1hMjAyMDEyS2V5d29yZFVuZXZhbHVhdGVkSXRlbXM6a2V5d29yZHNfVW5ldmFsdWF0ZWRJdGVtcyxKU09OU2NoZW1hMjAyMDEyS2V5d29yZFVuZXZhbHVhdGVkUHJvcGVydGllczprZXl3b3Jkc19VbmV2YWx1YXRlZFByb3BlcnRpZXMsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRUeXBlOmtleXdvcmRzX1R5cGUsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFbnVtOkVudW1fRW51bSxKU09OU2NoZW1hMjAyMDEyS2V5d29yZENvbnN0OkNvbnN0X0NvbnN0LEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29uc3RyYWludDpsVCxKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlcGVuZGVudFJlcXVpcmVkOkRlcGVuZGVudFJlcXVpcmVkX0RlcGVuZGVudFJlcXVpcmVkLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29udGVudFNjaGVtYTprZXl3b3Jkc19Db250ZW50U2NoZW1hLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVGl0bGU6VGl0bGVfVGl0bGUsSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXNjcmlwdGlvbjprZXl3b3Jkc19EZXNjcmlwdGlvbl9EZXNjcmlwdGlvbixKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlZmF1bHQ6RGVmYXVsdF9EZWZhdWx0LEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwcmVjYXRlZDprZXl3b3Jkc19EZXByZWNhdGVkLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUmVhZE9ubHk6a2V5d29yZHNfUmVhZE9ubHksSlNPTlNjaGVtYTIwMjAxMktleXdvcmRXcml0ZU9ubHk6a2V5d29yZHNfV3JpdGVPbmx5LEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXhhbXBsZXM6a2V5d29yZHNfRXhhbXBsZXNfRXhhbXBsZXMsSlNPTlNjaGVtYTIwMjAxMkV4dGVuc2lvbktleXdvcmRzOkV4dGVuc2lvbktleXdvcmRzX0V4dGVuc2lvbktleXdvcmRzLEpTT05TY2hlbWEyMDIwMTJKU09OVmlld2VyOnVULEpTT05TY2hlbWEyMDIwMTJBY2NvcmRpb246QWNjb3JkaW9uX0FjY29yZGlvbixKU09OU2NoZW1hMjAyMDEyRXhwYW5kRGVlcEJ1dHRvbjpFeHBhbmREZWVwQnV0dG9uX0V4cGFuZERlZXBCdXR0b24sSlNPTlNjaGVtYTIwMjAxMkNoZXZyb25SaWdodEljb246aWNvbnNfQ2hldnJvblJpZ2h0LHdpdGhKU09OU2NoZW1hMjAyMDEyQ29udGV4dDp3aXRoSlNPTlNjaGVtYUNvbnRleHQsd2l0aEpTT05TY2hlbWEyMDIwMTJTeXN0ZW1Db250ZXh0Om1ha2VXaXRoSlNPTlNjaGVtYVN5c3RlbUNvbnRleHQocygpKSxKU09OU2NoZW1hMjAyMDEyUGF0aENvbnRleHQ6KCk9PmlULEpTT05TY2hlbWEyMDIwMTJMZXZlbENvbnRleHQ6KCk9PnNUfSxmbjp7dXBwZXJGaXJzdDpmbl91cHBlckZpcnN0LGpzb25TY2hlbWEyMDIwMTI6e2dldFRpdGxlOm1ha2VHZXRUaXRsZShmbkFjY2Vzc29yKSxnZXRUeXBlOm1ha2VHZXRUeXBlKGZuQWNjZXNzb3IpLGlzRXhwYW5kYWJsZTpmbl9tYWtlSXNFeHBhbmRhYmxlKGZuQWNjZXNzb3IpLGlzQm9vbGVhbkpTT05TY2hlbWEsaGFzS2V5d29yZCx1c2VGbix1c2VDb25maWcsdXNlQ29tcG9uZW50LHVzZUlzRXhwYW5kZWQsdXNlUGF0aCx1c2VMZXZlbCxnZXRTY2hlbWFLZXl3b3JkcyxnZXRFeHRlbnNpb25LZXl3b3JkczptYWtlR2V0RXh0ZW5zaW9uS2V5d29yZHMoZm5BY2Nlc3NvciksaGFzU2NoZW1hVHlwZTpmbl9oYXNTY2hlbWFUeXBlfX19fSxhcnJheT0ocyx7c2FtcGxlOm89W119PXt9KT0+KChzLG89e30pPT57Y29uc3R7bWluSXRlbXM6aSxtYXhJdGVtczphLHVuaXF1ZUl0ZW1zOnV9PW8se2NvbnRhaW5zOl8sbWluQ29udGFpbnM6dyxtYXhDb250YWluczp4fT1vO2xldCBDPVsuLi5zXTtpZihudWxsIT1fJiYib2JqZWN0Ij09dHlwZW9mIF8pe2lmKE51bWJlci5pc0ludGVnZXIodykmJnc+MSl7Y29uc3Qgcz1DLmF0KDApO2ZvcihsZXQgbz0xO288dztvKz0xKUMudW5zaGlmdChzKX1OdW1iZXIuaXNJbnRlZ2VyKHgpfWlmKE51bWJlci5pc0ludGVnZXIoYSkmJmE+MCYmKEM9cy5zbGljZSgwLGEpKSxOdW1iZXIuaXNJbnRlZ2VyKGkpJiZpPjApZm9yKGxldCBzPTA7Qy5sZW5ndGg8aTtzKz0xKUMucHVzaChDW3MlQy5sZW5ndGhdKTtyZXR1cm4hMD09PXUmJihDPUFycmF5LmZyb20obmV3IFNldChDKSkpLEN9KShvLHMpLG9iamVjdD0oKT0+e3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9LGJ5dGVzPXM9Pnh0KCkocykscmFuZG9tX3BpY2s9cz0+cy5hdCgwKSxwcmVkaWNhdGVzX2lzQm9vbGVhbkpTT05TY2hlbWE9cz0+ImJvb2xlYW4iPT10eXBlb2Ygcyxpc0pTT05TY2hlbWFPYmplY3Q9cz0+YXMoKShzKSxpc0pTT05TY2hlbWE9cz0+cHJlZGljYXRlc19pc0Jvb2xlYW5KU09OU2NoZW1hKHMpfHxpc0pTT05TY2hlbWFPYmplY3Qocyk7Y29uc3QgcFQ9Y2xhc3MgUmVnaXN0cnl7ZGF0YT17fTtyZWdpc3RlcihzLG8pe3RoaXMuZGF0YVtzXT1vfXVucmVnaXN0ZXIocyl7dm9pZCAwPT09cz90aGlzLmRhdGE9e306ZGVsZXRlIHRoaXMuZGF0YVtzXX1nZXQocyl7cmV0dXJuIHRoaXMuZGF0YVtzXX19LGludDMyPSgpPT4wLGludDY0PSgpPT4wLGdlbmVyYXRvcnNfZmxvYXQ9KCk9Pi4xLGdlbmVyYXRvcnNfZG91YmxlPSgpPT4uMSxlbWFpbD0oKT0+InVzZXJAZXhhbXBsZS5jb20iLGlkbl9lbWFpbD0oKT0+IuyLpOuhgEBleGFtcGxlLmNvbSIsaG9zdG5hbWU9KCk9PiJleGFtcGxlLmNvbSIsaWRuX2hvc3RuYW1lPSgpPT4i7Iuk66GALmNvbSIsaXB2ND0oKT0+IjE5OC41MS4xMDAuNDIiLGlwdjY9KCk9PiIyMDAxOjBkYjg6NWI5NjowMDAwOjAwMDA6NDI2Zjo4ZTE3OjY0MmEiLHVyaT0oKT0+Imh0dHBzOi8vZXhhbXBsZS5jb20vIix1cmlfcmVmZXJlbmNlPSgpPT4icGF0aC9pbmRleC5odG1sIixpcmk9KCk9PiJodHRwczovL+yLpOuhgC5jb20vIixpcmlfcmVmZXJlbmNlPSgpPT4icGF0aC/si6TroYAuaHRtbCIsdXVpZD0oKT0+IjNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNiIsdXJpX3RlbXBsYXRlPSgpPT4iaHR0cHM6Ly9leGFtcGxlLmNvbS9kaWN0aW9uYXJ5L3t0ZXJtOjF9L3t0ZXJtfSIsZ2VuZXJhdG9yc19qc29uX3BvaW50ZXI9KCk9PiIvYS9iL2MiLHJlbGF0aXZlX2pzb25fcG9pbnRlcj0oKT0+IjEvMCIsZGF0ZV90aW1lPSgpPT4obmV3IERhdGUpLnRvSVNPU3RyaW5nKCksZGF0ZT0oKT0+KG5ldyBEYXRlKS50b0lTT1N0cmluZygpLnN1YnN0cmluZygwLDEwKSx0aW1lPSgpPT4obmV3IERhdGUpLnRvSVNPU3RyaW5nKCkuc3Vic3RyaW5nKDExKSxkdXJhdGlvbj0oKT0+IlAzRCIsZ2VuZXJhdG9yc19wYXNzd29yZD0oKT0+IioqKioqKioqIixyZWdleD0oKT0+Il5bYS16XSskIjtjb25zdCBoVD1uZXcgY2xhc3MgRm9ybWF0UmVnaXN0cnkgZXh0ZW5kcyBwVHsjcz17aW50MzIsaW50NjQsZmxvYXQ6Z2VuZXJhdG9yc19mbG9hdCxkb3VibGU6Z2VuZXJhdG9yc19kb3VibGUsZW1haWwsImlkbi1lbWFpbCI6aWRuX2VtYWlsLGhvc3RuYW1lLCJpZG4taG9zdG5hbWUiOmlkbl9ob3N0bmFtZSxpcHY0LGlwdjYsdXJpLCJ1cmktcmVmZXJlbmNlIjp1cmlfcmVmZXJlbmNlLGlyaSwiaXJpLXJlZmVyZW5jZSI6aXJpX3JlZmVyZW5jZSx1dWlkLCJ1cmktdGVtcGxhdGUiOnVyaV90ZW1wbGF0ZSwianNvbi1wb2ludGVyIjpnZW5lcmF0b3JzX2pzb25fcG9pbnRlciwicmVsYXRpdmUtanNvbi1wb2ludGVyIjpyZWxhdGl2ZV9qc29uX3BvaW50ZXIsImRhdGUtdGltZSI6ZGF0ZV90aW1lLGRhdGUsdGltZSxkdXJhdGlvbixwYXNzd29yZDpnZW5lcmF0b3JzX3Bhc3N3b3JkLHJlZ2V4fTtkYXRhPXsuLi50aGlzLiNzfTtnZXQgZGVmYXVsdHMoKXtyZXR1cm57Li4udGhpcy4jc319fSxmb3JtYXRBUEk9KHMsbyk9PiJmdW5jdGlvbiI9PXR5cGVvZiBvP2hULnJlZ2lzdGVyKHMsbyk6bnVsbD09PW8/aFQudW5yZWdpc3RlcihzKTpoVC5nZXQocyk7Zm9ybWF0QVBJLmdldERlZmF1bHRzPSgpPT5oVC5kZWZhdWx0cztjb25zdCBkVD1mb3JtYXRBUEk7dmFyIGZUPV9fd2VicGFja19yZXF1aXJlX18oNDgyODcpLkJ1ZmZlcjtjb25zdCBfN2JpdD1zPT5mVC5mcm9tKHMpLnRvU3RyaW5nKCJhc2NpaSIpO3ZhciBtVD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ4Mjg3KS5CdWZmZXI7Y29uc3QgXzhiaXQ9cz0+bVQuZnJvbShzKS50b1N0cmluZygidXRmOCIpO3ZhciBnVD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ4Mjg3KS5CdWZmZXI7Y29uc3QgZW5jb2RlcnNfYmluYXJ5PXM9PmdULmZyb20ocykudG9TdHJpbmcoImJpbmFyeSIpLHF1b3RlZF9wcmludGFibGU9cz0+e2xldCBvPSIiO2ZvcihsZXQgaT0wO2k8cy5sZW5ndGg7aSsrKXtjb25zdCBhPXMuY2hhckNvZGVBdChpKTtpZig2MT09PWEpbys9Ij0zRCI7ZWxzZSBpZihhPj0zMyYmYTw9NjB8fGE+PTYyJiZhPD0xMjZ8fDk9PT1hfHwzMj09PWEpbys9cy5jaGFyQXQoaSk7ZWxzZSBpZigxMz09PWF8fDEwPT09YSlvKz0iXHJcbiI7ZWxzZSBpZihhPjEyNil7Y29uc3QgYT11bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQocy5jaGFyQXQoaSkpKTtmb3IobGV0IHM9MDtzPGEubGVuZ3RoO3MrKylvKz0iPSIrKCIwIithLmNoYXJDb2RlQXQocykudG9TdHJpbmcoMTYpKS5zbGljZSgtMikudG9VcHBlckNhc2UoKX1lbHNlIG8rPSI9IisoIjAiK2EudG9TdHJpbmcoMTYpKS5zbGljZSgtMikudG9VcHBlckNhc2UoKX1yZXR1cm4gb307dmFyIHlUPV9fd2VicGFja19yZXF1aXJlX18oNDgyODcpLkJ1ZmZlcjtjb25zdCBiYXNlMTY9cz0+eVQuZnJvbShzKS50b1N0cmluZygiaGV4Iik7dmFyIHZUPV9fd2VicGFja19yZXF1aXJlX18oNDgyODcpLkJ1ZmZlcjtjb25zdCBiYXNlMzI9cz0+e2NvbnN0IG89dlQuZnJvbShzKS50b1N0cmluZygidXRmOCIpLGk9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMjM0NTY3IjtsZXQgYT0wLHU9IiIsXz0wLHc9MDtmb3IobGV0IHM9MDtzPG8ubGVuZ3RoO3MrKylmb3IoXz1fPDw4fG8uY2hhckNvZGVBdChzKSx3Kz04O3c+PTU7KXUrPWkuY2hhckF0KF8+Pj53LTUmMzEpLHctPTU7dz4wJiYodSs9aS5jaGFyQXQoXzw8NS13JjMxKSxhPSg4LTgqby5sZW5ndGglNSklNSk7Zm9yKGxldCBzPTA7czxhO3MrKyl1Kz0iPSI7cmV0dXJuIHV9O3ZhciBiVD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ4Mjg3KS5CdWZmZXI7Y29uc3QgYmFzZTY0PXM9PmJULmZyb20ocykudG9TdHJpbmcoImJhc2U2NCIpO3ZhciBfVD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ4Mjg3KS5CdWZmZXI7Y29uc3QgYmFzZTY0dXJsPXM9Pl9ULmZyb20ocykudG9TdHJpbmcoImJhc2U2NHVybCIpO2NvbnN0IFNUPW5ldyBjbGFzcyBFbmNvZGVyUmVnaXN0cnkgZXh0ZW5kcyBwVHsjcz17IjdiaXQiOl83Yml0LCI4Yml0IjpfOGJpdCxiaW5hcnk6ZW5jb2RlcnNfYmluYXJ5LCJxdW90ZWQtcHJpbnRhYmxlIjpxdW90ZWRfcHJpbnRhYmxlLGJhc2UxNixiYXNlMzIsYmFzZTY0LGJhc2U2NHVybH07ZGF0YT17Li4udGhpcy4jc307Z2V0IGRlZmF1bHRzKCl7cmV0dXJuey4uLnRoaXMuI3N9fX0sZW5jb2RlckFQST0ocyxvKT0+ImZ1bmN0aW9uIj09dHlwZW9mIG8/U1QucmVnaXN0ZXIocyxvKTpudWxsPT09bz9TVC51bnJlZ2lzdGVyKHMpOlNULmdldChzKTtlbmNvZGVyQVBJLmdldERlZmF1bHRzPSgpPT5TVC5kZWZhdWx0cztjb25zdCBFVD1lbmNvZGVyQVBJLHdUPXsidGV4dC9wbGFpbiI6KCk9PiJzdHJpbmciLCJ0ZXh0L2NzcyI6KCk9PiIuc2VsZWN0b3IgeyBib3JkZXI6IDFweCBzb2xpZCByZWQgfSIsInRleHQvY3N2IjooKT0+InZhbHVlMSx2YWx1ZTIsdmFsdWUzIiwidGV4dC9odG1sIjooKT0+IjxwPmNvbnRlbnQ8L3A+IiwidGV4dC9jYWxlbmRhciI6KCk9PiJCRUdJTjpWQ0FMRU5EQVIiLCJ0ZXh0L2phdmFzY3JpcHQiOigpPT4iY29uc29sZS5kaXIoJ0hlbGxvIHdvcmxkIScpOyIsInRleHQveG1sIjooKT0+JzxwZXJzb24gYWdlPSIzMCI+Sm9obiBEb2U8L3BlcnNvbj4nLCJ0ZXh0LyoiOigpPT4ic3RyaW5nIn0seFQ9eyJpbWFnZS8qIjooKT0+Ynl0ZXMoMjUpLnRvU3RyaW5nKCJiaW5hcnkiKX0sa1Q9eyJhdWRpby8qIjooKT0+Ynl0ZXMoMjUpLnRvU3RyaW5nKCJiaW5hcnkiKX0sT1Q9eyJ2aWRlby8qIjooKT0+Ynl0ZXMoMjUpLnRvU3RyaW5nKCJiaW5hcnkiKX0sQ1Q9eyJhcHBsaWNhdGlvbi9qc29uIjooKT0+J3sia2V5IjoidmFsdWUifScsImFwcGxpY2F0aW9uL2xkK2pzb24iOigpPT4neyJuYW1lIjogIkpvaG4gRG9lIn0nLCJhcHBsaWNhdGlvbi94LWh0dHBkLXBocCI6KCk9PiI8P3BocCBlY2hvICc8cD5IZWxsbyBXb3JsZCE8L3A+JzsgPz4iLCJhcHBsaWNhdGlvbi9ydGYiOigpPT5TdHJpbmcucmF3YHtccnRmMVxhZGVmbGFuZzEwMjVcYW5zaVxhbnNpY3BnMTI1Mlx1YzFgLCJhcHBsaWNhdGlvbi94LXNoIjooKT0+J2VjaG8gIkhlbGxvIFdvcmxkISInLCJhcHBsaWNhdGlvbi94aHRtbCt4bWwiOigpPT4iPHA+Y29udGVudDwvcD4iLCJhcHBsaWNhdGlvbi8qIjooKT0+Ynl0ZXMoMjUpLnRvU3RyaW5nKCJiaW5hcnkiKX07Y29uc3QgQVQ9bmV3IGNsYXNzIE1lZGlhVHlwZVJlZ2lzdHJ5IGV4dGVuZHMgcFR7I3M9ey4uLndULC4uLnhULC4uLmtULC4uLk9ULC4uLkNUfTtkYXRhPXsuLi50aGlzLiNzfTtnZXQgZGVmYXVsdHMoKXtyZXR1cm57Li4udGhpcy4jc319fSxtZWRpYVR5cGVBUEk9KHMsbyk9PntpZigiZnVuY3Rpb24iPT10eXBlb2YgbylyZXR1cm4gQVQucmVnaXN0ZXIocyxvKTtpZihudWxsPT09bylyZXR1cm4gQVQudW5yZWdpc3RlcihzKTtjb25zdCBpPXMuc3BsaXQoIjsiKS5hdCgwKSxhPWAke2kuc3BsaXQoIi8iKS5hdCgwKX0vKmA7cmV0dXJuIEFULmdldChzKXx8QVQuZ2V0KGkpfHxBVC5nZXQoYSl9O21lZGlhVHlwZUFQSS5nZXREZWZhdWx0cz0oKT0+QVQuZGVmYXVsdHM7Y29uc3QgalQ9bWVkaWFUeXBlQVBJLGFwcGx5U3RyaW5nQ29uc3RyYWludHM9KHMsbz17fSk9Pntjb25zdHttYXhMZW5ndGg6aSxtaW5MZW5ndGg6YX09bztsZXQgdT1zO2lmKE51bWJlci5pc0ludGVnZXIoaSkmJmk+MCYmKHU9dS5zbGljZSgwLGkpKSxOdW1iZXIuaXNJbnRlZ2VyKGEpJiZhPjApe2xldCBzPTA7Zm9yKDt1Lmxlbmd0aDxhOyl1Kz11W3MrKyV1Lmxlbmd0aF19cmV0dXJuIHV9LHR5cGVzX3N0cmluZz0ocyx7c2FtcGxlOm99PXt9KT0+e2NvbnN0e2NvbnRlbnRFbmNvZGluZzppLGNvbnRlbnRNZWRpYVR5cGU6YSxjb250ZW50U2NoZW1hOnV9PXMse3BhdHRlcm46Xyxmb3JtYXQ6d309cyx4PUVUKGkpfHx5TygpO2xldCBDO3JldHVybiBDPSJzdHJpbmciPT10eXBlb2YgXz9hcHBseVN0cmluZ0NvbnN0cmFpbnRzKChzPT57dHJ5e2NvbnN0IG89Lyg/PD0oPzwhXFwpXHspKFxkezMsfSkoPz1cfSl8KD88PSg/PCFcXClce1xkKiwpKFxkezMsfSkoPz1cfSl8KD88PSg/PCFcXClceykoXGR7Myx9KSg/PSxcZCpcfSkvZyxpPXMucmVwbGFjZShvLCIxMDAiKSxhPW5ldyhwcygpKShpKTtyZXR1cm4gYS5tYXg9MTAwLGEuZ2VuKCl9Y2F0Y2h7cmV0dXJuInN0cmluZyJ9fSkoXykscyk6InN0cmluZyI9PXR5cGVvZiB3PyhzPT57Y29uc3R7Zm9ybWF0Om99PXMsaT1kVChvKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgaT9pKHMpOiJzdHJpbmcifSkocyk6aXNKU09OU2NoZW1hKHUpJiYic3RyaW5nIj09dHlwZW9mIGEmJnZvaWQgMCE9PW8/QXJyYXkuaXNBcnJheShvKXx8Im9iamVjdCI9PXR5cGVvZiBvP0pTT04uc3RyaW5naWZ5KG8pOmFwcGx5U3RyaW5nQ29uc3RyYWludHMoU3RyaW5nKG8pLHMpOiJzdHJpbmciPT10eXBlb2YgYT8ocz0+e2NvbnN0e2NvbnRlbnRNZWRpYVR5cGU6b309cyxpPWpUKG8pO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBpP2kocyk6InN0cmluZyJ9KShzKTphcHBseVN0cmluZ0NvbnN0cmFpbnRzKCJzdHJpbmciLHMpLHgoQyl9LGFwcGx5TnVtYmVyQ29uc3RyYWludHM9KHMsbz17fSk9Pntjb25zdHttaW5pbXVtOmksbWF4aW11bTphLGV4Y2x1c2l2ZU1pbmltdW06dSxleGNsdXNpdmVNYXhpbXVtOl99PW8se211bHRpcGxlT2Y6d309byx4PU51bWJlci5pc0ludGVnZXIocyk/MTpOdW1iZXIuRVBTSUxPTjtsZXQgQz0ibnVtYmVyIj09dHlwZW9mIGk/aTpudWxsLGo9Im51bWJlciI9PXR5cGVvZiBhP2E6bnVsbCxMPXM7aWYoIm51bWJlciI9PXR5cGVvZiB1JiYoQz1udWxsIT09Qz9NYXRoLm1heChDLHUreCk6dSt4KSwibnVtYmVyIj09dHlwZW9mIF8mJihqPW51bGwhPT1qP01hdGgubWluKGosXy14KTpfLXgpLEw9Qz5qJiZzfHxDfHxqfHxMLCJudW1iZXIiPT10eXBlb2YgdyYmdz4wKXtjb25zdCBzPUwldztMPTA9PT1zP0w6TCt3LXN9cmV0dXJuIEx9LHR5cGVzX251bWJlcj1zPT57Y29uc3R7Zm9ybWF0Om99PXM7bGV0IGk7cmV0dXJuIGk9InN0cmluZyI9PXR5cGVvZiBvPyhzPT57Y29uc3R7Zm9ybWF0Om99PXMsaT1kVChvKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgaT9pKHMpOjB9KShzKTowLGFwcGx5TnVtYmVyQ29uc3RyYWludHMoaSxzKX0sdHlwZXNfaW50ZWdlcj1zPT57Y29uc3R7Zm9ybWF0Om99PXM7bGV0IGk7cmV0dXJuIGk9InN0cmluZyI9PXR5cGVvZiBvPyhzPT57Y29uc3R7Zm9ybWF0Om99PXMsaT1kVChvKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgaSlyZXR1cm4gaShzKTtzd2l0Y2gobyl7Y2FzZSJpbnQzMiI6cmV0dXJuIGludDMyKCk7Y2FzZSJpbnQ2NCI6cmV0dXJuIGludDY0KCl9cmV0dXJuIDB9KShzKTowLGFwcGx5TnVtYmVyQ29uc3RyYWludHMoaSxzKX0sdHlwZXNfYm9vbGVhbj1zPT4iYm9vbGVhbiIhPXR5cGVvZiBzLmRlZmF1bHR8fHMuZGVmYXVsdCxQVD1uZXcgUHJveHkoe2FycmF5LG9iamVjdCxzdHJpbmc6dHlwZXNfc3RyaW5nLG51bWJlcjp0eXBlc19udW1iZXIsaW50ZWdlcjp0eXBlc19pbnRlZ2VyLGJvb2xlYW46dHlwZXNfYm9vbGVhbixudWxsOigpPT5udWxsfSx7Z2V0OihzLG8pPT4ic3RyaW5nIj09dHlwZW9mIG8mJk9iamVjdC5oYXNPd24ocyxvKT9zW29dOigpPT5gVW5rbm93biBUeXBlOiAke299YH0pLElUPVsiYXJyYXkiLCJvYmplY3QiLCJudW1iZXIiLCJpbnRlZ2VyIiwic3RyaW5nIiwiYm9vbGVhbiIsIm51bGwiXSxoYXNFeGFtcGxlPXM9PntpZighaXNKU09OU2NoZW1hT2JqZWN0KHMpKXJldHVybiExO2NvbnN0e2V4YW1wbGVzOm8sZXhhbXBsZTppLGRlZmF1bHQ6YX09cztyZXR1cm4hIShBcnJheS5pc0FycmF5KG8pJiZvLmxlbmd0aD49MSl8fCh2b2lkIDAhPT1hfHx2b2lkIDAhPT1pKX0sZXh0cmFjdEV4YW1wbGU9cz0+e2lmKCFpc0pTT05TY2hlbWFPYmplY3QocykpcmV0dXJuIG51bGw7Y29uc3R7ZXhhbXBsZXM6byxleGFtcGxlOmksZGVmYXVsdDphfT1zO3JldHVybiBBcnJheS5pc0FycmF5KG8pJiZvLmxlbmd0aD49MT9vLmF0KDApOnZvaWQgMCE9PWE/YTp2b2lkIDAhPT1pP2k6dm9pZCAwfSxUVD17YXJyYXk6WyJpdGVtcyIsInByZWZpeEl0ZW1zIiwiY29udGFpbnMiLCJtYXhDb250YWlucyIsIm1pbkNvbnRhaW5zIiwibWF4SXRlbXMiLCJtaW5JdGVtcyIsInVuaXF1ZUl0ZW1zIiwidW5ldmFsdWF0ZWRJdGVtcyJdLG9iamVjdDpbInByb3BlcnRpZXMiLCJhZGRpdGlvbmFsUHJvcGVydGllcyIsInBhdHRlcm5Qcm9wZXJ0aWVzIiwicHJvcGVydHlOYW1lcyIsIm1pblByb3BlcnRpZXMiLCJtYXhQcm9wZXJ0aWVzIiwicmVxdWlyZWQiLCJkZXBlbmRlbnRTY2hlbWFzIiwiZGVwZW5kZW50UmVxdWlyZWQiLCJ1bmV2YWx1YXRlZFByb3BlcnRpZXMiXSxzdHJpbmc6WyJwYXR0ZXJuIiwiZm9ybWF0IiwibWluTGVuZ3RoIiwibWF4TGVuZ3RoIiwiY29udGVudEVuY29kaW5nIiwiY29udGVudE1lZGlhVHlwZSIsImNvbnRlbnRTY2hlbWEiXSxpbnRlZ2VyOlsibWluaW11bSIsIm1heGltdW0iLCJleGNsdXNpdmVNaW5pbXVtIiwiZXhjbHVzaXZlTWF4aW11bSIsIm11bHRpcGxlT2YiXX07VFQubnVtYmVyPVRULmludGVnZXI7Y29uc3QgTlQ9InN0cmluZyIsaW5mZXJUeXBlRnJvbVZhbHVlPXM9PnZvaWQgMD09PXM/bnVsbDpudWxsPT09cz8ibnVsbCI6QXJyYXkuaXNBcnJheShzKT8iYXJyYXkiOk51bWJlci5pc0ludGVnZXIocyk/ImludGVnZXIiOnR5cGVvZiBzLGZvbGRUeXBlPXM9PntpZihBcnJheS5pc0FycmF5KHMpJiZzLmxlbmd0aD49MSl7aWYocy5pbmNsdWRlcygiYXJyYXkiKSlyZXR1cm4iYXJyYXkiO2lmKHMuaW5jbHVkZXMoIm9iamVjdCIpKXJldHVybiJvYmplY3QiO3tjb25zdCBvPXMuZmlsdGVyKChzPT4ibnVsbCIhPT1zKSksaT1yYW5kb21fcGljayhvLmxlbmd0aD4wP286cyk7aWYoSVQuaW5jbHVkZXMoaSkpcmV0dXJuIGl9fXJldHVybiBJVC5pbmNsdWRlcyhzKT9zOm51bGx9LGluZmVyVHlwZT0ocyxvPW5ldyBXZWFrU2V0KT0+e2lmKCFpc0pTT05TY2hlbWFPYmplY3QocykpcmV0dXJuIE5UO2lmKG8uaGFzKHMpKXJldHVybiBOVDtvLmFkZChzKTtsZXR7dHlwZTppLGNvbnN0OmF9PXM7aWYoaT1mb2xkVHlwZShpKSwic3RyaW5nIiE9dHlwZW9mIGkpe2NvbnN0IG89T2JqZWN0LmtleXMoVFQpO2U6Zm9yKGxldCBhPTA7YTxvLmxlbmd0aDthKz0xKXtjb25zdCB1PW9bYV0sXz1UVFt1XTtmb3IobGV0IG89MDtvPF8ubGVuZ3RoO28rPTEpe2NvbnN0IGE9X1tvXTtpZihPYmplY3QuaGFzT3duKHMsYSkpe2k9dTticmVhayBlfX19fWlmKCJzdHJpbmciIT10eXBlb2YgaSYmdm9pZCAwIT09YSl7Y29uc3Qgcz1pbmZlclR5cGVGcm9tVmFsdWUoYSk7aT0ic3RyaW5nIj09dHlwZW9mIHM/czppfWlmKCJzdHJpbmciIT10eXBlb2YgaSl7Y29uc3QgY29tYmluZVR5cGVzPWk9PntpZihBcnJheS5pc0FycmF5KHNbaV0pKXtjb25zdCBhPXNbaV0ubWFwKChzPT5pbmZlclR5cGUocyxvKSkpO3JldHVybiBmb2xkVHlwZShhKX1yZXR1cm4gbnVsbH0sYT1jb21iaW5lVHlwZXMoImFsbE9mIiksdT1jb21iaW5lVHlwZXMoImFueU9mIiksXz1jb21iaW5lVHlwZXMoIm9uZU9mIiksdz1zLm5vdD9pbmZlclR5cGUocy5ub3Qsbyk6bnVsbDsoYXx8dXx8X3x8dykmJihpPWZvbGRUeXBlKFthLHUsXyx3XS5maWx0ZXIoQm9vbGVhbikpKX1pZigic3RyaW5nIiE9dHlwZW9mIGkmJmhhc0V4YW1wbGUocykpe2NvbnN0IG89ZXh0cmFjdEV4YW1wbGUocyksYT1pbmZlclR5cGVGcm9tVmFsdWUobyk7aT0ic3RyaW5nIj09dHlwZW9mIGE/YTppfXJldHVybiBvLmRlbGV0ZShzKSxpfHxOVH0sdHlwZV9nZXRUeXBlPXM9PmluZmVyVHlwZShzKSx0eXBlQ2FzdD1zPT5wcmVkaWNhdGVzX2lzQm9vbGVhbkpTT05TY2hlbWEocyk/KHM9PiExPT09cz97bm90Ont9fTp7fSkocyk6aXNKU09OU2NoZW1hT2JqZWN0KHMpP3M6e30sbWVyZ2VfbWVyZ2U9KHMsbyxpPXt9KT0+e2lmKHByZWRpY2F0ZXNfaXNCb29sZWFuSlNPTlNjaGVtYShzKSYmITA9PT1zKXJldHVybiEwO2lmKHByZWRpY2F0ZXNfaXNCb29sZWFuSlNPTlNjaGVtYShzKSYmITE9PT1zKXJldHVybiExO2lmKHByZWRpY2F0ZXNfaXNCb29sZWFuSlNPTlNjaGVtYShvKSYmITA9PT1vKXJldHVybiEwO2lmKHByZWRpY2F0ZXNfaXNCb29sZWFuSlNPTlNjaGVtYShvKSYmITE9PT1vKXJldHVybiExO2lmKCFpc0pTT05TY2hlbWEocykpcmV0dXJuIG87aWYoIWlzSlNPTlNjaGVtYShvKSlyZXR1cm4gcztjb25zdCBhPXsuLi5vLC4uLnN9O2lmKG8udHlwZSYmcy50eXBlJiZBcnJheS5pc0FycmF5KG8udHlwZSkmJiJzdHJpbmciPT10eXBlb2Ygby50eXBlKXtjb25zdCBpPW5vcm1hbGl6ZUFycmF5KG8udHlwZSkuY29uY2F0KHMudHlwZSk7YS50eXBlPUFycmF5LmZyb20obmV3IFNldChpKSl9aWYoQXJyYXkuaXNBcnJheShvLnJlcXVpcmVkKSYmQXJyYXkuaXNBcnJheShzLnJlcXVpcmVkKSYmKGEucmVxdWlyZWQ9Wy4uLm5ldyBTZXQoWy4uLnMucmVxdWlyZWQsLi4uby5yZXF1aXJlZF0pXSksby5wcm9wZXJ0aWVzJiZzLnByb3BlcnRpZXMpe2NvbnN0IHU9bmV3IFNldChbLi4uT2JqZWN0LmtleXMoby5wcm9wZXJ0aWVzKSwuLi5PYmplY3Qua2V5cyhzLnByb3BlcnRpZXMpXSk7YS5wcm9wZXJ0aWVzPXt9O2Zvcihjb25zdCBfIG9mIHUpe2NvbnN0IHU9by5wcm9wZXJ0aWVzW19dfHx7fSx3PXMucHJvcGVydGllc1tfXXx8e307dS5yZWFkT25seSYmIWkuaW5jbHVkZVJlYWRPbmx5fHx1LndyaXRlT25seSYmIWkuaW5jbHVkZVdyaXRlT25seT9hLnJlcXVpcmVkPShhLnJlcXVpcmVkfHxbXSkuZmlsdGVyKChzPT5zIT09XykpOmEucHJvcGVydGllc1tfXT1tZXJnZV9tZXJnZSh3LHUsaSl9fXJldHVybiBpc0pTT05TY2hlbWEoby5pdGVtcykmJmlzSlNPTlNjaGVtYShzLml0ZW1zKSYmKGEuaXRlbXM9bWVyZ2VfbWVyZ2Uocy5pdGVtcyxvLml0ZW1zLGkpKSxpc0pTT05TY2hlbWEoby5jb250YWlucykmJmlzSlNPTlNjaGVtYShzLmNvbnRhaW5zKSYmKGEuY29udGFpbnM9bWVyZ2VfbWVyZ2Uocy5jb250YWlucyxvLmNvbnRhaW5zLGkpKSxpc0pTT05TY2hlbWEoby5jb250ZW50U2NoZW1hKSYmaXNKU09OU2NoZW1hKHMuY29udGVudFNjaGVtYSkmJihhLmNvbnRlbnRTY2hlbWE9bWVyZ2VfbWVyZ2Uocy5jb250ZW50U2NoZW1hLG8uY29udGVudFNjaGVtYSxpKSksYX0sTVQ9bWVyZ2VfbWVyZ2UsbWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYz0ocyxvPXt9LGk9dm9pZCAwLGE9ITEpPT57aWYobnVsbD09cyYmdm9pZCAwPT09aSlyZXR1cm47ImZ1bmN0aW9uIj09dHlwZW9mIHM/LnRvSlMmJihzPXMudG9KUygpKSxzPXR5cGVDYXN0KHMpO2xldCB1PXZvaWQgMCE9PWl8fGhhc0V4YW1wbGUocyk7Y29uc3QgXz0hdSYmQXJyYXkuaXNBcnJheShzLm9uZU9mKSYmcy5vbmVPZi5sZW5ndGg+MCx3PSF1JiZBcnJheS5pc0FycmF5KHMuYW55T2YpJiZzLmFueU9mLmxlbmd0aD4wO2lmKCF1JiYoX3x8dykpe2NvbnN0IGk9dHlwZUNhc3QocmFuZG9tX3BpY2soXz9zLm9uZU9mOnMuYW55T2YpKTshKHM9TVQocyxpLG8pKS54bWwmJmkueG1sJiYocy54bWw9aS54bWwpLGhhc0V4YW1wbGUocykmJmhhc0V4YW1wbGUoaSkmJih1PSEwKX1jb25zdCB4PXt9O2xldHt4bWw6Qyxwcm9wZXJ0aWVzOmosYWRkaXRpb25hbFByb3BlcnRpZXM6TCxpdGVtczpCLGNvbnRhaW5zOiR9PXN8fHt9LFY9dHlwZV9nZXRUeXBlKHMpLHtpbmNsdWRlUmVhZE9ubHk6VSxpbmNsdWRlV3JpdGVPbmx5Onp9PW87Qz1DfHx7fTtsZXQgWSx7bmFtZTpaLHByZWZpeDplZSxuYW1lc3BhY2U6aWV9PUMsYWU9e307aWYoT2JqZWN0Lmhhc093bihzLCJ0eXBlIil8fChzLnR5cGU9ViksYSYmKFo9Wnx8Im5vdGFnbmFtZSIsWT0oZWU/YCR7ZWV9OmA6IiIpK1osaWUpKXt4W2VlP2B4bWxuczoke2VlfWA6InhtbG5zIl09aWV9YSYmKGFlW1ldPVtdKTtjb25zdCBjZT1vYmplY3RpZnkoaik7bGV0IGxlLHBlPTA7Y29uc3QgaGFzRXhjZWVkZWRNYXhQcm9wZXJ0aWVzPSgpPT5OdW1iZXIuaXNJbnRlZ2VyKHMubWF4UHJvcGVydGllcykmJnMubWF4UHJvcGVydGllcz4wJiZwZT49cy5tYXhQcm9wZXJ0aWVzLGNhbkFkZFByb3BlcnR5PW89PiEoTnVtYmVyLmlzSW50ZWdlcihzLm1heFByb3BlcnRpZXMpJiZzLm1heFByb3BlcnRpZXM+MCl8fCFoYXNFeGNlZWRlZE1heFByb3BlcnRpZXMoKSYmKCEobz0+IUFycmF5LmlzQXJyYXkocy5yZXF1aXJlZCl8fDA9PT1zLnJlcXVpcmVkLmxlbmd0aHx8IXMucmVxdWlyZWQuaW5jbHVkZXMobykpKG8pfHxzLm1heFByb3BlcnRpZXMtcGUtKCgpPT57aWYoIUFycmF5LmlzQXJyYXkocy5yZXF1aXJlZCl8fDA9PT1zLnJlcXVpcmVkLmxlbmd0aClyZXR1cm4gMDtsZXQgbz0wO3JldHVybiBhP3MucmVxdWlyZWQuZm9yRWFjaCgocz0+bys9dm9pZCAwPT09YWVbc10/MDoxKSk6cy5yZXF1aXJlZC5mb3JFYWNoKChzPT57bys9dm9pZCAwPT09YWVbWV0/LmZpbmQoKG89PnZvaWQgMCE9PW9bc10pKT8wOjF9KSkscy5yZXF1aXJlZC5sZW5ndGgtb30pKCk+MCk7aWYobGU9YT8oaSx1PXZvaWQgMCk9PntpZihzJiZjZVtpXSl7aWYoY2VbaV0ueG1sPWNlW2ldLnhtbHx8e30sY2VbaV0ueG1sLmF0dHJpYnV0ZSl7Y29uc3Qgcz1BcnJheS5pc0FycmF5KGNlW2ldLmVudW0pP3JhbmRvbV9waWNrKGNlW2ldLmVudW0pOnZvaWQgMDtpZihoYXNFeGFtcGxlKGNlW2ldKSl4W2NlW2ldLnhtbC5uYW1lfHxpXT1leHRyYWN0RXhhbXBsZShjZVtpXSk7ZWxzZSBpZih2b2lkIDAhPT1zKXhbY2VbaV0ueG1sLm5hbWV8fGldPXM7ZWxzZXtjb25zdCBzPXR5cGVDYXN0KGNlW2ldKSxhPXR5cGVfZ2V0VHlwZShzKSxfPWNlW2ldLnhtbC5uYW1lfHxpO2lmKCJhcnJheSI9PT1hKXtjb25zdCBzPW1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoY2VbaV0sbyx1LCExKTt4W19dPXMubWFwKChzPT5hcygpKHMpPyJVbmtub3duVHlwZU9iamVjdCI6QXJyYXkuaXNBcnJheShzKT8iVW5rbm93blR5cGVBcnJheSI6cykpLmpvaW4oIiAiKX1lbHNlIHhbX109Im9iamVjdCI9PT1hPyJVbmtub3duVHlwZU9iamVjdCI6UFRbYV0ocyl9cmV0dXJufWNlW2ldLnhtbC5uYW1lPWNlW2ldLnhtbC5uYW1lfHxpfWVsc2UgY2VbaV18fCExPT09THx8KGNlW2ldPXt4bWw6e25hbWU6aX19KTtsZXQgXz1tYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKGNlW2ldLG8sdSxhKTtjYW5BZGRQcm9wZXJ0eShpKSYmKHBlKyssQXJyYXkuaXNBcnJheShfKT9hZVtZXT1hZVtZXS5jb25jYXQoXyk6YWVbWV0ucHVzaChfKSl9OihpLHUpPT57aWYoY2FuQWRkUHJvcGVydHkoaSkpe2lmKGFzKCkocy5kaXNjcmltaW5hdG9yPy5tYXBwaW5nKSYmcy5kaXNjcmltaW5hdG9yLnByb3BlcnR5TmFtZT09PWkmJiJzdHJpbmciPT10eXBlb2Ygcy4kJHJlZil7Zm9yKGNvbnN0IG8gaW4gcy5kaXNjcmltaW5hdG9yLm1hcHBpbmcpaWYoLTEhPT1zLiQkcmVmLnNlYXJjaChzLmRpc2NyaW1pbmF0b3IubWFwcGluZ1tvXSkpe2FlW2ldPW87YnJlYWt9fWVsc2UgYWVbaV09bWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhjZVtpXSxvLHUsYSk7cGUrK319LHUpe2xldCB1O2lmKHU9dm9pZCAwIT09aT9pOmV4dHJhY3RFeGFtcGxlKHMpLCFhKXtpZigibnVtYmVyIj09dHlwZW9mIHUmJiJzdHJpbmciPT09VilyZXR1cm5gJHt1fWA7aWYoInN0cmluZyIhPXR5cGVvZiB1fHwic3RyaW5nIj09PVYpcmV0dXJuIHU7dHJ5e3JldHVybiBKU09OLnBhcnNlKHUpfWNhdGNoe3JldHVybiB1fX1pZigiYXJyYXkiPT09Vil7aWYoIUFycmF5LmlzQXJyYXkodSkpe2lmKCJzdHJpbmciPT10eXBlb2YgdSlyZXR1cm4gdTt1PVt1XX1sZXQgaT1bXTtyZXR1cm4gaXNKU09OU2NoZW1hT2JqZWN0KEIpJiYoQi54bWw9Qi54bWx8fEN8fHt9LEIueG1sLm5hbWU9Qi54bWwubmFtZXx8Qy5uYW1lLGk9dS5tYXAoKHM9Pm1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoQixvLHMsYSkpKSksaXNKU09OU2NoZW1hT2JqZWN0KCQpJiYoJC54bWw9JC54bWx8fEN8fHt9LCQueG1sLm5hbWU9JC54bWwubmFtZXx8Qy5uYW1lLGk9W21haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoJCxvLHZvaWQgMCxhKSwuLi5pXSksaT1QVC5hcnJheShzLHtzYW1wbGU6aX0pLEMud3JhcHBlZD8oYWVbWV09aSxkcygpKHgpfHxhZVtZXS5wdXNoKHtfYXR0cjp4fSkpOmFlPWksYWV9aWYoIm9iamVjdCI9PT1WKXtpZigic3RyaW5nIj09dHlwZW9mIHUpcmV0dXJuIHU7Zm9yKGNvbnN0IHMgaW4gdSlPYmplY3QuaGFzT3duKHUscykmJihjZVtzXT8ucmVhZE9ubHkmJiFVfHxjZVtzXT8ud3JpdGVPbmx5JiYhenx8KGNlW3NdPy54bWw/LmF0dHJpYnV0ZT94W2NlW3NdLnhtbC5uYW1lfHxzXT11W3NdOmxlKHMsdVtzXSkpKTtyZXR1cm4gZHMoKSh4KXx8YWVbWV0ucHVzaCh7X2F0dHI6eH0pLGFlfXJldHVybiBhZVtZXT1kcygpKHgpP3U6W3tfYXR0cjp4fSx1XSxhZX1pZigiYXJyYXkiPT09Vil7bGV0IGk9W107aWYoaXNKU09OU2NoZW1hT2JqZWN0KCQpKWlmKGEmJigkLnhtbD0kLnhtbHx8cy54bWx8fHt9LCQueG1sLm5hbWU9JC54bWwubmFtZXx8Qy5uYW1lKSxBcnJheS5pc0FycmF5KCQuYW55T2YpKXtjb25zdHthbnlPZjpzLC4uLnV9PUI7aS5wdXNoKC4uLiQuYW55T2YubWFwKChzPT5tYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKE1UKHMsdSxvKSxvLHZvaWQgMCxhKSkpKX1lbHNlIGlmKEFycmF5LmlzQXJyYXkoJC5vbmVPZikpe2NvbnN0e29uZU9mOnMsLi4udX09QjtpLnB1c2goLi4uJC5vbmVPZi5tYXAoKHM9Pm1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoTVQocyx1LG8pLG8sdm9pZCAwLGEpKSkpfWVsc2V7aWYoISghYXx8YSYmQy53cmFwcGVkKSlyZXR1cm4gbWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYygkLG8sdm9pZCAwLGEpO2kucHVzaChtYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKCQsbyx2b2lkIDAsYSkpfWlmKGlzSlNPTlNjaGVtYU9iamVjdChCKSlpZihhJiYoQi54bWw9Qi54bWx8fHMueG1sfHx7fSxCLnhtbC5uYW1lPUIueG1sLm5hbWV8fEMubmFtZSksQXJyYXkuaXNBcnJheShCLmFueU9mKSl7Y29uc3R7YW55T2Y6cywuLi51fT1CO2kucHVzaCguLi5CLmFueU9mLm1hcCgocz0+bWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhNVChzLHUsbyksbyx2b2lkIDAsYSkpKSl9ZWxzZSBpZihBcnJheS5pc0FycmF5KEIub25lT2YpKXtjb25zdHtvbmVPZjpzLC4uLnV9PUI7aS5wdXNoKC4uLkIub25lT2YubWFwKChzPT5tYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKE1UKHMsdSxvKSxvLHZvaWQgMCxhKSkpKX1lbHNle2lmKCEoIWF8fGEmJkMud3JhcHBlZCkpcmV0dXJuIG1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoQixvLHZvaWQgMCxhKTtpLnB1c2gobWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhCLG8sdm9pZCAwLGEpKX1yZXR1cm4gaT1QVC5hcnJheShzLHtzYW1wbGU6aX0pLGEmJkMud3JhcHBlZD8oYWVbWV09aSxkcygpKHgpfHxhZVtZXS5wdXNoKHtfYXR0cjp4fSksYWUpOml9aWYoIm9iamVjdCI9PT1WKXtmb3IobGV0IHMgaW4gY2UpT2JqZWN0Lmhhc093bihjZSxzKSYmKGNlW3NdPy5kZXByZWNhdGVkfHxjZVtzXT8ucmVhZE9ubHkmJiFVfHxjZVtzXT8ud3JpdGVPbmx5JiYhenx8bGUocykpO2lmKGEmJngmJmFlW1ldLnB1c2goe19hdHRyOnh9KSxoYXNFeGNlZWRlZE1heFByb3BlcnRpZXMoKSlyZXR1cm4gYWU7aWYocHJlZGljYXRlc19pc0Jvb2xlYW5KU09OU2NoZW1hKEwpJiZMKWE/YWVbWV0ucHVzaCh7YWRkaXRpb25hbFByb3A6IkFueXRoaW5nIGNhbiBiZSBoZXJlIn0pOmFlLmFkZGl0aW9uYWxQcm9wMT17fSxwZSsrO2Vsc2UgaWYoaXNKU09OU2NoZW1hT2JqZWN0KEwpKXtjb25zdCBpPUwsdT1tYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKGksbyx2b2lkIDAsYSk7aWYoYSYmInN0cmluZyI9PXR5cGVvZiBpPy54bWw/Lm5hbWUmJiJub3RhZ25hbWUiIT09aT8ueG1sPy5uYW1lKWFlW1ldLnB1c2godSk7ZWxzZXtjb25zdCBvPU51bWJlci5pc0ludGVnZXIocy5taW5Qcm9wZXJ0aWVzKSYmcy5taW5Qcm9wZXJ0aWVzPjAmJnBlPHMubWluUHJvcGVydGllcz9zLm1pblByb3BlcnRpZXMtcGU6Mztmb3IobGV0IHM9MTtzPD1vO3MrKyl7aWYoaGFzRXhjZWVkZWRNYXhQcm9wZXJ0aWVzKCkpcmV0dXJuIGFlO2lmKGEpe2NvbnN0IG89e307b1siYWRkaXRpb25hbFByb3AiK3NdPXUubm90YWduYW1lLGFlW1ldLnB1c2gobyl9ZWxzZSBhZVsiYWRkaXRpb25hbFByb3AiK3NdPXU7cGUrK319fXJldHVybiBhZX1sZXQgZGU7aWYodm9pZCAwIT09cy5jb25zdClkZT1zLmNvbnN0O2Vsc2UgaWYocyYmQXJyYXkuaXNBcnJheShzLmVudW0pKWRlPXJhbmRvbV9waWNrKG5vcm1hbGl6ZUFycmF5KHMuZW51bSkpO2Vsc2V7Y29uc3QgaT1pc0pTT05TY2hlbWFPYmplY3Qocy5jb250ZW50U2NoZW1hKT9tYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKHMuY29udGVudFNjaGVtYSxvLHZvaWQgMCxhKTp2b2lkIDA7ZGU9UFRbVl0ocyx7c2FtcGxlOml9KX1yZXR1cm4gYT8oYWVbWV09ZHMoKSh4KT9kZTpbe19hdHRyOnh9LGRlXSxhZSk6ZGV9LG1haW5fY3JlYXRlWE1MRXhhbXBsZT0ocyxvLGkpPT57Y29uc3QgYT1tYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKHMsbyxpLCEwKTtpZihhKXJldHVybiJzdHJpbmciPT10eXBlb2YgYT9hOmxzKCkoYSx7ZGVjbGFyYXRpb246ITAsaW5kZW50OiJcdCJ9KX0sbWFpbl9zYW1wbGVGcm9tU2NoZW1hPShzLG8saSk9Pm1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMocyxvLGksITEpLG1haW5fcmVzb2x2ZXI9KHMsbyxpKT0+W3MsSlNPTi5zdHJpbmdpZnkobyksSlNPTi5zdHJpbmdpZnkoaSldLFJUPXV0aWxzX21lbW9pemVOKG1haW5fY3JlYXRlWE1MRXhhbXBsZSxtYWluX3Jlc29sdmVyKSxEVD11dGlsc19tZW1vaXplTihtYWluX3NhbXBsZUZyb21TY2hlbWEsbWFpbl9yZXNvbHZlcik7Y29uc3QgTFQ9bmV3IGNsYXNzIE9wdGlvblJlZ2lzdHJ5IGV4dGVuZHMgcFR7I3M9e307ZGF0YT17Li4udGhpcy4jc307Z2V0IGRlZmF1bHRzKCl7cmV0dXJuey4uLnRoaXMuI3N9fX0sYXBpX29wdGlvbkFQST0ocyxvKT0+KHZvaWQgMCE9PW8mJkxULnJlZ2lzdGVyKHMsbyksTFQuZ2V0KHMpKSxGVD1be3doZW46L2pzb24vLHNob3VsZFN0cmluZ2lmeVR5cGVzOlsic3RyaW5nIl19XSxCVD1bIm9iamVjdCJdLGZuX2dldF9qc29uX3NhbXBsZV9zY2hlbWE9cz0+KG8saSxhLHUpPT57Y29uc3R7Zm46X309cygpLHc9Xy5qc29uU2NoZW1hMjAyMDEyLm1lbW9pemVkU2FtcGxlRnJvbVNjaGVtYShvLGksdSkseD10eXBlb2YgdyxDPUZULnJlZHVjZSgoKHMsbyk9Pm8ud2hlbi50ZXN0KGEpP1suLi5zLC4uLm8uc2hvdWxkU3RyaW5naWZ5VHlwZXNdOnMpLEJUKTtyZXR1cm4gZ3QoKShDLChzPT5zPT09eCkpP0pTT04uc3RyaW5naWZ5KHcsbnVsbCwyKTp3fSxmbl9nZXRfeWFtbF9zYW1wbGVfc2NoZW1hPXM9PihvLGksYSx1KT0+e2NvbnN0e2ZuOl99PXMoKSx3PV8uanNvblNjaGVtYTIwMjAxMi5nZXRKc29uU2FtcGxlU2NoZW1hKG8saSxhLHUpO2xldCB4O3RyeXt4PWZuLmR1bXAoZm4ubG9hZCh3KSx7bGluZVdpZHRoOi0xfSx7c2NoZW1hOnJufSksIlxuIj09PXhbeC5sZW5ndGgtMV0mJih4PXguc2xpY2UoMCx4Lmxlbmd0aC0xKSl9Y2F0Y2gocyl7cmV0dXJuIGNvbnNvbGUuZXJyb3IocyksImVycm9yOiBjb3VsZCBub3QgZ2VuZXJhdGUgeWFtbCBleGFtcGxlIn1yZXR1cm4geC5yZXBsYWNlKC9cdC9nLCIgICIpfSxmbl9nZXRfeG1sX3NhbXBsZV9zY2hlbWE9cz0+KG8saSxhKT0+e2NvbnN0e2ZuOnV9PXMoKTtpZihvJiYhby54bWwmJihvLnhtbD17fSksbyYmIW8ueG1sLm5hbWUpe2lmKCFvLiQkcmVmJiYoby50eXBlfHxvLml0ZW1zfHxvLnByb3BlcnRpZXN8fG8uYWRkaXRpb25hbFByb3BlcnRpZXMpKXJldHVybic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PlxuXHgzYyEtLSBYTUwgZXhhbXBsZSBjYW5ub3QgYmUgZ2VuZXJhdGVkOyByb290IGVsZW1lbnQgbmFtZSBpcyB1bmRlZmluZWQgLS1ceDNlJztpZihvLiQkcmVmKXtsZXQgcz1vLiQkcmVmLm1hdGNoKC9cUypcLyhcUyspJC8pO28ueG1sLm5hbWU9c1sxXX19cmV0dXJuIHUuanNvblNjaGVtYTIwMjAxMi5tZW1vaXplZENyZWF0ZVhNTEV4YW1wbGUobyxpLGEpfSxmbl9nZXRfc2FtcGxlX3NjaGVtYT1zPT4obyxpPSIiLGE9e30sdT12b2lkIDApPT57Y29uc3R7Zm46X309cygpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBvPy50b0pTJiYobz1vLnRvSlMoKSksImZ1bmN0aW9uIj09dHlwZW9mIHU/LnRvSlMmJih1PXUudG9KUygpKSwveG1sLy50ZXN0KGkpP18uanNvblNjaGVtYTIwMjAxMi5nZXRYbWxTYW1wbGVTY2hlbWEobyxhLHUpOi8oeWFtbHx5bWwpLy50ZXN0KGkpP18uanNvblNjaGVtYTIwMjAxMi5nZXRZYW1sU2FtcGxlU2NoZW1hKG8sYSxpLHUpOl8uanNvblNjaGVtYTIwMjAxMi5nZXRKc29uU2FtcGxlU2NoZW1hKG8sYSxpLHUpfSxqc29uX3NjaGVtYV8yMDIwXzEyX3NhbXBsZXM9KHtnZXRTeXN0ZW06c30pPT57Y29uc3Qgbz1mbl9nZXRfanNvbl9zYW1wbGVfc2NoZW1hKHMpLGk9Zm5fZ2V0X3lhbWxfc2FtcGxlX3NjaGVtYShzKSxhPWZuX2dldF94bWxfc2FtcGxlX3NjaGVtYShzKSx1PWZuX2dldF9zYW1wbGVfc2NoZW1hKHMpO3JldHVybntmbjp7anNvblNjaGVtYTIwMjAxMjp7c2FtcGxlRnJvbVNjaGVtYTptYWluX3NhbXBsZUZyb21TY2hlbWEsc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWM6bWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyxzYW1wbGVPcHRpb25BUEk6YXBpX29wdGlvbkFQSSxzYW1wbGVFbmNvZGVyQVBJOkVULHNhbXBsZUZvcm1hdEFQSTpkVCxzYW1wbGVNZWRpYVR5cGVBUEk6alQsY3JlYXRlWE1MRXhhbXBsZTptYWluX2NyZWF0ZVhNTEV4YW1wbGUsbWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hOkRULG1lbW9pemVkQ3JlYXRlWE1MRXhhbXBsZTpSVCxnZXRKc29uU2FtcGxlU2NoZW1hOm8sZ2V0WWFtbFNhbXBsZVNjaGVtYTppLGdldFhtbFNhbXBsZVNjaGVtYTphLGdldFNhbXBsZVNjaGVtYTp1LG1lcmdlSnNvblNjaGVtYTpNVCxmb2xkVHlwZX19fX07ZnVuY3Rpb24gUHJlc2V0QXBpcygpe3JldHVybltiYXNlLG9hczMsanNvbl9zY2hlbWFfMjAyMF8xMixqc29uX3NjaGVtYV8yMDIwXzEyX3NhbXBsZXMsb2FzMzFdfWNvbnN0IGlubGluZV9wbHVnaW49cz0+KCk9Pih7Zm46cy5mbixjb21wb25lbnRzOnMuY29tcG9uZW50c30pLGZhY3Rvcml6YXRpb25fc3lzdGVtPXM9Pntjb25zdCBvPVllKCkoe2xheW91dDp7bGF5b3V0OnMubGF5b3V0LGZpbHRlcjpzLmZpbHRlcn0sc3BlYzp7c3BlYzoiIix1cmw6cy51cmx9LHJlcXVlc3RTbmlwcGV0czpzLnJlcXVlc3RTbmlwcGV0c30scy5pbml0aWFsU3RhdGUpO2lmKHMuaW5pdGlhbFN0YXRlKWZvcihjb25zdFtpLGFdb2YgT2JqZWN0LmVudHJpZXMocy5pbml0aWFsU3RhdGUpKXZvaWQgMD09PWEmJmRlbGV0ZSBvW2ldO3JldHVybntzeXN0ZW06e2NvbmZpZ3M6cy5jb25maWdzfSxwbHVnaW5zOnMucHJlc2V0cyxzdGF0ZTpvfX0sc291cmNlc19xdWVyeT0oKT0+cz0+e2NvbnN0IG89cy5xdWVyeUNvbmZpZ0VuYWJsZWQ/KCgpPT57Y29uc3Qgcz1uZXcgVVJMU2VhcmNoUGFyYW1zKGx0LmxvY2F0aW9uLnNlYXJjaCk7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhzKX0pKCk6e307cmV0dXJuIE9iamVjdC5lbnRyaWVzKG8pLnJlZHVjZSgoKHMsW28saV0pPT4oImNvbmZpZyI9PT1vP3MuY29uZmlnVXJsPWk6InVybHMucHJpbWFyeU5hbWUiPT09bz9zW29dPWk6cz1jbygpKHMsbyxpKSxzKSkse30pfSxzb3VyY2VzX3VybD0oe3VybDpzLHN5c3RlbTpvfSk9PmFzeW5jIGk9PntpZighcylyZXR1cm57fTtpZigiZnVuY3Rpb24iIT10eXBlb2Ygby5jb25maWdzQWN0aW9ucz8uZ2V0Q29uZmlnQnlVcmwpcmV0dXJue307Y29uc3QgYT0oKCk9Pntjb25zdCBzPXt9O3JldHVybiBzLnByb21pc2U9bmV3IFByb21pc2UoKChvLGkpPT57cy5yZXNvbHZlPW8scy5yZWplY3Q9aX0pKSxzfSkoKTtyZXR1cm4gby5jb25maWdzQWN0aW9ucy5nZXRDb25maWdCeVVybCh7dXJsOnMsbG9hZFJlbW90ZUNvbmZpZzohMCxyZXF1ZXN0SW50ZXJjZXB0b3I6aS5yZXF1ZXN0SW50ZXJjZXB0b3IscmVzcG9uc2VJbnRlcmNlcHRvcjppLnJlc3BvbnNlSW50ZXJjZXB0b3J9LChzPT57YS5yZXNvbHZlKHMpfSkpLGEucHJvbWlzZX0scnVudGltZT0oKT0+KCk9Pntjb25zdCBzPXt9O3JldHVybiBnbG9iYWxUaGlzLmxvY2F0aW9uJiYocy5vYXV0aDJSZWRpcmVjdFVybD1gJHtnbG9iYWxUaGlzLmxvY2F0aW9uLnByb3RvY29sfS8vJHtnbG9iYWxUaGlzLmxvY2F0aW9uLmhvc3R9JHtnbG9iYWxUaGlzLmxvY2F0aW9uLnBhdGhuYW1lLnN1YnN0cmluZygwLGdsb2JhbFRoaXMubG9jYXRpb24ucGF0aG5hbWUubGFzdEluZGV4T2YoIi8iKSl9L29hdXRoMi1yZWRpcmVjdC5odG1sYCksc30sJFQ9T2JqZWN0LmZyZWV6ZSh7ZG9tX2lkOm51bGwsZG9tTm9kZTpudWxsLHNwZWM6e30sdXJsOiIiLHVybHM6bnVsbCxjb25maWdVcmw6bnVsbCxsYXlvdXQ6IkJhc2VMYXlvdXQiLGRvY0V4cGFuc2lvbjoibGlzdCIsbWF4RGlzcGxheWVkVGFnczotMSxmaWx0ZXI6ITEsdmFsaWRhdG9yVXJsOiJodHRwczovL3ZhbGlkYXRvci5zd2FnZ2VyLmlvL3ZhbGlkYXRvciIsb2F1dGgyUmVkaXJlY3RVcmw6dm9pZCAwLHBlcnNpc3RBdXRob3JpemF0aW9uOiExLGNvbmZpZ3M6e30sZGlzcGxheU9wZXJhdGlvbklkOiExLGRpc3BsYXlSZXF1ZXN0RHVyYXRpb246ITEsZGVlcExpbmtpbmc6ITEsdHJ5SXRPdXRFbmFibGVkOiExLHJlcXVlc3RJbnRlcmNlcHRvcjpzPT4ocy5jdXJsT3B0aW9ucz1bXSxzKSxyZXNwb25zZUludGVyY2VwdG9yOnM9PnMsc2hvd011dGF0ZWRSZXF1ZXN0OiEwLGRlZmF1bHRNb2RlbFJlbmRlcmluZzoiZXhhbXBsZSIsZGVmYXVsdE1vZGVsRXhwYW5kRGVwdGg6MSxkZWZhdWx0TW9kZWxzRXhwYW5kRGVwdGg6MSxzaG93RXh0ZW5zaW9uczohMSxzaG93Q29tbW9uRXh0ZW5zaW9uczohMSx3aXRoQ3JlZGVudGlhbHM6ITEscmVxdWVzdFNuaXBwZXRzRW5hYmxlZDohMSxyZXF1ZXN0U25pcHBldHM6e2dlbmVyYXRvcnM6e2N1cmxfYmFzaDp7dGl0bGU6ImNVUkwgKGJhc2gpIixzeW50YXg6ImJhc2gifSxjdXJsX3Bvd2Vyc2hlbGw6e3RpdGxlOiJjVVJMIChQb3dlclNoZWxsKSIsc3ludGF4OiJwb3dlcnNoZWxsIn0sY3VybF9jbWQ6e3RpdGxlOiJjVVJMIChDTUQpIixzeW50YXg6ImJhc2gifX0sZGVmYXVsdEV4cGFuZGVkOiEwLGxhbmd1YWdlczpudWxsfSxzdXBwb3J0ZWRTdWJtaXRNZXRob2RzOlsiZ2V0IiwicHV0IiwicG9zdCIsImRlbGV0ZSIsIm9wdGlvbnMiLCJoZWFkIiwicGF0Y2giLCJ0cmFjZSJdLHF1ZXJ5Q29uZmlnRW5hYmxlZDohMSxwcmVzZXRzOltQcmVzZXRBcGlzXSxwbHVnaW5zOltdLGluaXRpYWxTdGF0ZTp7fSxmbjp7fSxjb21wb25lbnRzOnt9LHN5bnRheEhpZ2hsaWdodDp7YWN0aXZhdGVkOiEwLHRoZW1lOiJhZ2F0ZSJ9LG9wZXJhdGlvbnNTb3J0ZXI6bnVsbCx0YWdzU29ydGVyOm51bGwsb25Db21wbGV0ZTpudWxsLG1vZGVsUHJvcGVydHlNYWNybzpudWxsLHBhcmFtZXRlck1hY3JvOm51bGwsZmlsZVVwbG9hZE1lZGlhVHlwZXM6WyJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iLCJpbWFnZS8iLCJhdWRpby8iLCJ2aWRlby8iXSx1bmNhdWdodEV4Y2VwdGlvbkhhbmRsZXI6bnVsbH0pO3ZhciBxVD1fX3dlYnBhY2tfcmVxdWlyZV9fKDYxNDQ4KSxWVD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocVQpLFVUPV9fd2VicGFja19yZXF1aXJlX18oNzc3MzEpLHpUPV9fd2VicGFja19yZXF1aXJlX18ubihVVCk7Y29uc3QgdHlwZV9jYXN0ZXJzX2FycmF5PShzLG89W10pPT5BcnJheS5pc0FycmF5KHMpP3M6byx0eXBlX2Nhc3RlcnNfYm9vbGVhbj0ocyxvPSExKT0+ITA9PT1zfHwidHJ1ZSI9PT1zfHwxPT09c3x8IjEiPT09c3x8ITEhPT1zJiYiZmFsc2UiIT09cyYmMCE9PXMmJiIwIiE9PXMmJm8sZG9tX25vZGU9cz0+bnVsbD09PXN8fCJudWxsIj09PXM/bnVsbDpzLHR5cGVfY2FzdGVyc19maWx0ZXI9cz0+e2NvbnN0IG89U3RyaW5nKHMpO3JldHVybiB0eXBlX2Nhc3RlcnNfYm9vbGVhbihzLG8pfSx0eXBlX2Nhc3RlcnNfZnVuY3Rpb249KHMsbyk9PiJmdW5jdGlvbiI9PXR5cGVvZiBzP3M6byxudWxsYWJsZV9hcnJheT1zPT5BcnJheS5pc0FycmF5KHMpP3M6bnVsbCxudWxsYWJsZV9mdW5jdGlvbj1zPT4iZnVuY3Rpb24iPT10eXBlb2Ygcz9zOm51bGwsbnVsbGFibGVfc3RyaW5nPXM9Pm51bGw9PT1zfHwibnVsbCI9PT1zP251bGw6U3RyaW5nKHMpLHR5cGVfY2FzdGVyc19udW1iZXI9KHMsbz0tMSk9Pntjb25zdCBpPXBhcnNlSW50KHMsMTApO3JldHVybiBOdW1iZXIuaXNOYU4oaSk/bzppfSx0eXBlX2Nhc3RlcnNfb2JqZWN0PShzLG89e30pPT5hcygpKHMpP3M6byxzb3J0ZXI9cz0+ImZ1bmN0aW9uIj09dHlwZW9mIHN8fCJzdHJpbmciPT10eXBlb2Ygcz9zOm51bGwsdHlwZV9jYXN0ZXJzX3N0cmluZz1zPT5TdHJpbmcocyksc3ludGF4X2hpZ2hsaWdodD0ocyxvKT0+YXMoKShzKT9zOiExPT09c3x8ImZhbHNlIj09PXN8fDA9PT1zfHwiMCI9PT1zP3thY3RpdmF0ZWQ6ITF9Om8sdW5kZWZpbmVkX3N0cmluZz1zPT52b2lkIDA9PT1zfHwidW5kZWZpbmVkIj09PXM/dm9pZCAwOlN0cmluZyhzKSxXVD17Y29tcG9uZW50czp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfb2JqZWN0fSxjb25maWdzOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19vYmplY3R9LGNvbmZpZ1VybDp7dHlwZUNhc3RlcjpudWxsYWJsZV9zdHJpbmd9LGRlZXBMaW5raW5nOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19ib29sZWFuLGRlZmF1bHRWYWx1ZTokVC5kZWVwTGlua2luZ30sZGVmYXVsdE1vZGVsRXhwYW5kRGVwdGg6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX251bWJlcixkZWZhdWx0VmFsdWU6JFQuZGVmYXVsdE1vZGVsRXhwYW5kRGVwdGh9LGRlZmF1bHRNb2RlbFJlbmRlcmluZzp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfc3RyaW5nfSxkZWZhdWx0TW9kZWxzRXhwYW5kRGVwdGg6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX251bWJlcixkZWZhdWx0VmFsdWU6JFQuZGVmYXVsdE1vZGVsc0V4cGFuZERlcHRofSxkaXNwbGF5T3BlcmF0aW9uSWQ6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX2Jvb2xlYW4sZGVmYXVsdFZhbHVlOiRULmRpc3BsYXlPcGVyYXRpb25JZH0sZGlzcGxheVJlcXVlc3REdXJhdGlvbjp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfYm9vbGVhbixkZWZhdWx0VmFsdWU6JFQuZGlzcGxheVJlcXVlc3REdXJhdGlvbn0sZG9jRXhwYW5zaW9uOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19zdHJpbmd9LGRvbV9pZDp7dHlwZUNhc3RlcjpudWxsYWJsZV9zdHJpbmd9LGRvbU5vZGU6e3R5cGVDYXN0ZXI6ZG9tX25vZGV9LGZpbGVVcGxvYWRNZWRpYVR5cGVzOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19hcnJheSxkZWZhdWx0VmFsdWU6JFQuZmlsZVVwbG9hZE1lZGlhVHlwZXN9LGZpbHRlcjp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfZmlsdGVyfSxmbjp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfb2JqZWN0fSxpbml0aWFsU3RhdGU6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX29iamVjdH0sbGF5b3V0Ont0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19zdHJpbmd9LG1heERpc3BsYXllZFRhZ3M6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX251bWJlcixkZWZhdWx0VmFsdWU6JFQubWF4RGlzcGxheWVkVGFnc30sbW9kZWxQcm9wZXJ0eU1hY3JvOnt0eXBlQ2FzdGVyOm51bGxhYmxlX2Z1bmN0aW9ufSxvYXV0aDJSZWRpcmVjdFVybDp7dHlwZUNhc3Rlcjp1bmRlZmluZWRfc3RyaW5nfSxvbkNvbXBsZXRlOnt0eXBlQ2FzdGVyOm51bGxhYmxlX2Z1bmN0aW9ufSxvcGVyYXRpb25zU29ydGVyOnt0eXBlQ2FzdGVyOnNvcnRlcn0scGFyYW1hdGVyTWFjcm86e3R5cGVDYXN0ZXI6bnVsbGFibGVfZnVuY3Rpb259LHBlcnNpc3RBdXRob3JpemF0aW9uOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19ib29sZWFuLGRlZmF1bHRWYWx1ZTokVC5wZXJzaXN0QXV0aG9yaXphdGlvbn0scGx1Z2luczp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfYXJyYXksZGVmYXVsdFZhbHVlOiRULnBsdWdpbnN9LHByZXNldHM6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX2FycmF5LGRlZmF1bHRWYWx1ZTokVC5wcmVzZXRzfSxyZXF1ZXN0SW50ZXJjZXB0b3I6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX2Z1bmN0aW9uLGRlZmF1bHRWYWx1ZTokVC5yZXF1ZXN0SW50ZXJjZXB0b3J9LHJlcXVlc3RTbmlwcGV0czp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfb2JqZWN0LGRlZmF1bHRWYWx1ZTokVC5yZXF1ZXN0U25pcHBldHN9LHJlcXVlc3RTbmlwcGV0c0VuYWJsZWQ6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX2Jvb2xlYW4sZGVmYXVsdFZhbHVlOiRULnJlcXVlc3RTbmlwcGV0c0VuYWJsZWR9LHJlc3BvbnNlSW50ZXJjZXB0b3I6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX2Z1bmN0aW9uLGRlZmF1bHRWYWx1ZTokVC5yZXNwb25zZUludGVyY2VwdG9yfSxzaG93Q29tbW9uRXh0ZW5zaW9uczp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfYm9vbGVhbixkZWZhdWx0VmFsdWU6JFQuc2hvd0NvbW1vbkV4dGVuc2lvbnN9LHNob3dFeHRlbnNpb25zOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19ib29sZWFuLGRlZmF1bHRWYWx1ZTokVC5zaG93RXh0ZW5zaW9uc30sc2hvd011dGF0ZWRSZXF1ZXN0Ont0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19ib29sZWFuLGRlZmF1bHRWYWx1ZTokVC5zaG93TXV0YXRlZFJlcXVlc3R9LHNwZWM6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX29iamVjdCxkZWZhdWx0VmFsdWU6JFQuc3BlY30sc3VwcG9ydGVkU3VibWl0TWV0aG9kczp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfYXJyYXksZGVmYXVsdFZhbHVlOiRULnN1cHBvcnRlZFN1Ym1pdE1ldGhvZHN9LHN5bnRheEhpZ2hsaWdodDp7dHlwZUNhc3RlcjpzeW50YXhfaGlnaGxpZ2h0LGRlZmF1bHRWYWx1ZTokVC5zeW50YXhIaWdobGlnaHR9LCJzeW50YXhIaWdobGlnaHQuYWN0aXZhdGVkIjp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfYm9vbGVhbixkZWZhdWx0VmFsdWU6JFQuc3ludGF4SGlnaGxpZ2h0LmFjdGl2YXRlZH0sInN5bnRheEhpZ2hsaWdodC50aGVtZSI6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX3N0cmluZ30sdGFnc1NvcnRlcjp7dHlwZUNhc3Rlcjpzb3J0ZXJ9LHRyeUl0T3V0RW5hYmxlZDp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfYm9vbGVhbixkZWZhdWx0VmFsdWU6JFQudHJ5SXRPdXRFbmFibGVkfSx1cmw6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX3N0cmluZ30sdXJsczp7dHlwZUNhc3RlcjpudWxsYWJsZV9hcnJheX0sInVybHMucHJpbWFyeU5hbWUiOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19zdHJpbmd9LHZhbGlkYXRvclVybDp7dHlwZUNhc3RlcjpudWxsYWJsZV9zdHJpbmd9LHdpdGhDcmVkZW50aWFsczp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfYm9vbGVhbixkZWZhdWx0VmFsdWU6JFQud2l0aENyZWRlbnRpYWxzfSx1bmNhdWdodEV4Y2VwdGlvbkhhbmRsZXI6e3R5cGVDYXN0ZXI6bnVsbGFibGVfZnVuY3Rpb259fSx0eXBlX2Nhc3Q9cz0+T2JqZWN0LmVudHJpZXMoV1QpLnJlZHVjZSgoKHMsW28se3R5cGVDYXN0ZXI6aSxkZWZhdWx0VmFsdWU6YX1dKT0+e2lmKFZUKCkocyxvKSl7Y29uc3QgdT1pKEFuKCkocyxvKSxhKTtzPXpUKCkobyx1LHMpfXJldHVybiBzfSksey4uLnN9KSxjb25maWdfbWVyZ2U9KHMsLi4ubyk9PntsZXQgaT1TeW1ib2wuZm9yKCJkb21Ob2RlIiksYT1TeW1ib2wuZm9yKCJwcmltYXJ5TmFtZSIpO2NvbnN0IHU9W107Zm9yKGNvbnN0IHMgb2Ygbyl7Y29uc3Qgbz17Li4uc307T2JqZWN0Lmhhc093bihvLCJkb21Ob2RlIikmJihpPW8uZG9tTm9kZSxkZWxldGUgby5kb21Ob2RlKSxPYmplY3QuaGFzT3duKG8sInVybHMucHJpbWFyeU5hbWUiKT8oYT1vWyJ1cmxzLnByaW1hcnlOYW1lIl0sZGVsZXRlIG9bInVybHMucHJpbWFyeU5hbWUiXSk6QXJyYXkuaXNBcnJheShvLnVybHMpJiZPYmplY3QuaGFzT3duKG8udXJscywicHJpbWFyeU5hbWUiKSYmKGE9by51cmxzLnByaW1hcnlOYW1lLGRlbGV0ZSBvLnVybHMucHJpbWFyeU5hbWUpLHUucHVzaChvKX1jb25zdCBfPVllKCkocywuLi51KTtyZXR1cm4gaSE9PVN5bWJvbC5mb3IoImRvbU5vZGUiKSYmKF8uZG9tTm9kZT1pKSxhIT09U3ltYm9sLmZvcigicHJpbWFyeU5hbWUiKSYmQXJyYXkuaXNBcnJheShfLnVybHMpJiYoXy51cmxzLnByaW1hcnlOYW1lPWEpLHR5cGVfY2FzdChfKX07ZnVuY3Rpb24gU3dhZ2dlclVJKHMpe2NvbnN0IG89c291cmNlc19xdWVyeSgpKHMpLGk9cnVudGltZSgpKCksYT1Td2FnZ2VyVUkuY29uZmlnLm1lcmdlKHt9LFN3YWdnZXJVSS5jb25maWcuZGVmYXVsdHMsaSxzLG8pLHU9ZmFjdG9yaXphdGlvbl9zeXN0ZW0oYSksXz1pbmxpbmVfcGx1Z2luKGEpLHc9bmV3IFN0b3JlKHUpO3cucmVnaXN0ZXIoW2EucGx1Z2lucyxfXSk7Y29uc3QgeD13LmdldFN5c3RlbSgpLHBlcnNpc3RDb25maWdzPXM9Pnt3LnNldENvbmZpZ3MocykseC5jb25maWdzQWN0aW9ucy5sb2FkZWQoKX0sdXBkYXRlU3BlYz1zPT57IW8udXJsJiYib2JqZWN0Ij09dHlwZW9mIHMuc3BlYyYmT2JqZWN0LmtleXMocy5zcGVjKS5sZW5ndGg+MD8oeC5zcGVjQWN0aW9ucy51cGRhdGVVcmwoIiIpLHguc3BlY0FjdGlvbnMudXBkYXRlTG9hZGluZ1N0YXR1cygic3VjY2VzcyIpLHguc3BlY0FjdGlvbnMudXBkYXRlU3BlYyhKU09OLnN0cmluZ2lmeShzLnNwZWMpKSk6ImZ1bmN0aW9uIj09dHlwZW9mIHguc3BlY0FjdGlvbnMuZG93bmxvYWQmJnMudXJsJiYhcy51cmxzJiYoeC5zcGVjQWN0aW9ucy51cGRhdGVVcmwocy51cmwpLHguc3BlY0FjdGlvbnMuZG93bmxvYWQocy51cmwpKX0scmVuZGVyPXM9PntpZihzLmRvbU5vZGUpeC5yZW5kZXIocy5kb21Ob2RlLCJBcHAiKTtlbHNlIGlmKHMuZG9tX2lkKXtjb25zdCBvPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iocy5kb21faWQpO3gucmVuZGVyKG8sIkFwcCIpfWVsc2UgbnVsbD09PXMuZG9tX2lkfHxudWxsPT09cy5kb21Ob2RlfHxjb25zb2xlLmVycm9yKCJTa2lwcGVkIHJlbmRlcmluZzogbm8gYGRvbV9pZGAgb3IgYGRvbU5vZGVgIHdhcyBzcGVjaWZpZWQiKX07cmV0dXJuIGEuY29uZmlnVXJsPygoYXN5bmMoKT0+e2NvbnN0e2NvbmZpZ1VybDpzfT1hLGk9YXdhaXQgc291cmNlc191cmwoe3VybDpzLHN5c3RlbTp4fSkoYSksdT1Td2FnZ2VyVUkuY29uZmlnLm1lcmdlKHt9LGEsaSxvKTtwZXJzaXN0Q29uZmlncyh1KSxudWxsIT09aSYmdXBkYXRlU3BlYyh1KSxyZW5kZXIodSl9KSgpLHgpOihwZXJzaXN0Q29uZmlncyhhKSx1cGRhdGVTcGVjKGEpLHJlbmRlcihhKSx4KX1Td2FnZ2VyVUkuU3lzdGVtPVN0b3JlLFN3YWdnZXJVSS5jb25maWc9e2RlZmF1bHRzOiRULG1lcmdlOmNvbmZpZ19tZXJnZSx0eXBlQ2FzdDp0eXBlX2Nhc3QsdHlwZUNhc3RNYXBwaW5nczpXVH0sU3dhZ2dlclVJLnByZXNldHM9e2Jhc2UsYXBpczpQcmVzZXRBcGlzfSxTd2FnZ2VyVUkucGx1Z2lucz17QXV0aDphdXRoLENvbmZpZ3M6Y29uZmlnc1BsdWdpbixEZWVwTGluaW5nOmRlZXBfbGlua2luZyxFcnI6ZXJyLEZpbHRlcjpmaWx0ZXIsSWNvbnM6aWNvbnMsSlNPTlNjaGVtYTU6anNvbl9zY2hlbWFfNSxKU09OU2NoZW1hNVNhbXBsZXM6anNvbl9zY2hlbWFfNV9zYW1wbGVzLEpTT05TY2hlbWEyMDIwMTI6anNvbl9zY2hlbWFfMjAyMF8xMixKU09OU2NoZW1hMjAyMDEyU2FtcGxlczpqc29uX3NjaGVtYV8yMDIwXzEyX3NhbXBsZXMsTGF5b3V0OnBsdWdpbnNfbGF5b3V0LExvZ3M6bG9ncyxPcGVuQVBJMzA6b2FzMyxPcGVuQVBJMzE6b2FzMyxPbkNvbXBsZXRlOm9uX2NvbXBsZXRlLFJlcXVlc3RTbmlwcGV0czpwbHVnaW5zX3JlcXVlc3Rfc25pcHBldHMsU3BlYzpwbHVnaW5zX3NwZWMsU3dhZ2dlckNsaWVudDpzd2FnZ2VyX2NsaWVudCxVdGlsOnV0aWwsVmlldzp2aWV3LFZpZXdMZWdhY3k6dmlld19sZWdhY3ksRG93bmxvYWRVcmw6ZG93bmxvYWRVcmxQbHVnaW4sU3ludGF4SGlnaGxpZ2h0aW5nOnN5bnRheF9oaWdobGlnaHRpbmcsVmVyc2lvbnM6dmVyc2lvbnMsU2FmZVJlbmRlcjpzYWZlX3JlbmRlcn07Y29uc3QgSlQ9U3dhZ2dlclVJfSkoKSxtb2R1bGUuZXhwb3J0cz1pLmRlZmF1bHR9KSgpOw==</File>
        <File Location="var/httpd/htdocs/js/thirdparty/swagger/swagger-ui-es-bundle.js.map" Permission="660" Encode="Base64">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USxJQUMxRSxFQUFRLElBQU0sRUFBUSxJQUFLLEVBQVEsSUFBSyxFQUFRLElBQ2hELEVBQVEsSUFBTSxFQUFRLElBQUssRUFBUSxJQUFLLEVBQVEsSUFDaEQsRUFBUSxJQUFNLEVBQVEsSUFBSyxFQUFRLElBQ25DLEVBQVEsS0FBTSxFQUFRLEtBQ3RCLEVBQVEsS0FBTSxFQUFRLEtBQ3RCLEVBQVEsS0FFUixFQUFVLElBQU0sRUFBVSxJQUFLLEVBQVUsSUFDekMsRUFBVSxJQUFNLEVBQVUsSUFBSyxFQUFVLElBQ3pDLEVBQVUsSUFBTSxFQUFVLElBQUssRUFBVSxJQUFLLEVBQVUsSUFDeEQsRUFBVSxJQUFNLEVBQVUsSUFBSyxFQUFVLElBQUssRUFBVSxJQUN4RCxFQUFVLElBQU0sRUFBVSxJQUFLLEVBQVUsSUFBSyxFQUFVLElBQ3hELEVBQVUsSUFBTSxFQUFVLElBQUssRUFBVSxJQUFLLEVBQVUsSUFBSyxFQUFVLElBQ3ZFLEVBQVUsSUFBTSxFQUFVLElBQUssRUFBVSxJQUFLLEVBQVUsSUFBSyxFQUFVLElBQ3ZFLEVBQVUsSUFBTSxFQUFVLElBQUssRUFBVSxJQUFLLEVBQVUsSUFDeEQsRUFBVSxJQUFNLEVBQVUsSUFBSyxFQUFVLElBQUssRUFBVSxJQUN4RCxFQUFVLElBQU0sRUFBVSxJQUFLLEVBQVUsSUFBSyxFQUFVLElBQ3hELEVBQVUsSUFBTSxFQUFVLElBQUssRUFBVSxJQUFLLEVBQVUsSUFBSyxFQUFVLElBQ3ZFLEVBQVUsSUFBTSxFQUFVLElBQUssRUFBVSxJQUFLLEVBQVUsSUFBSyxFQUFVLElBQ3ZFLEVBQVUsSUFBTSxFQUFVLElBQzFCLEVBQVUsSUFBTSxFQUFVLElBQUssRUFBVSxJQUN6QyxFQUFVLElBQU0sRUFBVSxJQUFLLEVBQVUsSUFBSyxFQUFVLElBQUssRUFBVSxJQUN2RSxFQUFVLElBQU0sRUFBVSxJQUFLLEVBQVUsSUFBSyxFQUFVLElBQUssRUFBVSxJQUN2RSxFQUFVLElBQU0sRUFBVSxJQUFLLEVBQVUsSUFBSyxFQUFVLElBQ3hELEVBQVUsSUFBTSxFQUFVLElBQUss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LE9BQU9qSyxFQUFJLEdBQUksS0FBS2lLLE9BQU9qSyxFQUFJLEtBR2pGLElBQWRzRyxFQUNLLENBQUN0RyxFQUFJLEdBQUlBLEVBQUksR0FBSUEsRUFBSSxHQUFJLEdBQUdpSyxPQUFPakssRUFBSSxHQUFJLEtBQUtpSyxPQUFPakssRUFBSSxJQUFLLEdBQUdpSyxPQUFPakssRUFBSSxHQUFJLEtBQUtpSyxPQUFPakssRUFBSSxJQUFLLEdBQUdpSyxPQUFPakssRUFBSSxHQUFJLEtBQUtpSyxPQUFPakssRUFBSSxJQUFLLEdBQUdpSyxPQUFPakssRUFBSSxHQUFJLEtBQUtpSyxPQUFPakssRUFBSSxJQUFLLEdBQUdpSyxPQUFPakssRUFBSSxHQUFJLEtBQUtpSyxPQUFPakssRUFBSSxJQUFLLEdBQUdpSyxPQUFPakssRUFBSSxHQUFJLEtBQUtpSyxPQUFPakssRUFBSSxJQUFLLEdBQUdpSyxPQUFPakssRUFBSSxHQUFJLEtBQUtpSyxPQUFPakssRUFBSSxHQUFJLEtBQUtpSyxPQUFPakssRUFBSSxJQUFLLEdBQUdpSyxPQUFPakssRUFBSSxHQUFJLEtBQUtpSyxPQUFPakssRUFBSSxHQUFJLEtBQUtpSyxPQUFPakssRUFBSSxJQUFLLEdBQUdpSyxPQUFPakssRUFBSSxHQUFJLEtBQUtpSyxPQUFPakssRUFBSSxHQUFJLEtBQUtpSyxPQUFPakssRUFBSSxJQUFLLEdBQUdpSyxPQUFPakssRUFBSSxHQUFJLEtBQUtpSyxPQUFPakssRUFBSSxHQUFJLEtBQUtpSyxPQUFPakssRUFBSSxJQUFLLEdBQUdpSyxPQUFPakssRUFBSSxHQUFJLEtBQUtpSyxPQUFPakssRUFBSSxHQUFJLEtBQUtpSyxPQUFPakssRUFBSSxJQUFLLEdBQUdpSyxPQUFPakssRUFBSSxHQUFJLEtBQUtpSyxPQUFPakssRUFBSSxHQUFJLEtBQUtpSyxPQUFPakssRUFBSSxLQUdybUJzRyxHQUFhLEVBR1IsQ0FBQ3RHLEVBQUksR0FBSUEsRUFBSSxHQUFJQSxFQUFJLEdBQUlBLEVBQUksR0FBSSxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksR0FBSSxLQUFLaUssT0FBT2pLLEVBQUksSUFBSyxHQUFHaUssT0FB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QUFjK3ZGLFFBQ25EaGxKLEVBQU8zaEksT0FBTzA2TixFQUFTLE1BQ3pCLE1BQzJCLE9BQXpCOWpDLEVBQWMrdkYsUUFDWSxPQUExQi92RixFQUFjOGpDLFNBS2Q1MlAsUUFBUUMsTUFDTiw0REFFSixJQUlHNDlKLENBQ1QsQ0FFQTBtSixVQUFVTyxPQUFTQSxNQUVuQlAsVUFBVXQyTyxPQUFTLENBQ2pCK1UsU0FBVWlpSyxHQUNWOXRNLE1BQU8rdFEsYUFDUHhFLFNBQVV5RSxVQUNWQyxpQkFBZ0JBLElBR2xCYixVQUFVdjVCLFFBQVUsQ0FDbEIxMk0sS0FDQSt3TyxLQUFNbEMsWUFHUm9CLFVBQVU1c1IsUUFBVSxDQUNsQjJ0UixLQUFNbmxCLEtBQ05vbEIsUUFBUzNsQixjQUNUNGxCLFdBQVlubEIsYUFDWm9sQixJQUFLemxCLElBQ0wwbEIsT0FBUXBsQixPQUNScWxCLE1BQU9qOEgsTUFDUGs4SCxZQUFhdHJILGNBQ2J1ckgsbUJBQW9Cdm1ILHNCQUNwQnlvRyxpQkFBa0JxTyxvQkFDbEIwUCx3QkFBeUJsRSw0QkFDekIzZ0QsT0FBUWcvQixlQUNSOGxCLEtBQU1qbUIsS0FDTmttQixVQUFXOUQsS0FDWCtELFVBQVc5RCxLQUNYK0QsV0FBWTNsQixZQUNadnlHLGdCQUFpQnd5Ryx5QkFDakIybEIsS0FBTXI3RyxhQUNOczdHLGNBQWVsbUIsZUFDZm1tQixLQUFNeG1CLEtBQ055bUIsS0FBTXZtQixLQUNOd21CLFdBQVludkQsWUFDWm92RCxZQUFhcG1CLGtCQUNicW1CLG1CQUFvQm5uRCxvQkFDcEJvbkQsU0FBVTFtRCxTQUNWMm1ELFdBQVlsbUIsYUFHZCxNQzdKQSxHRDZKQSIsInNvdXJjZXMiOlsid2VicGFjazovL3N3YWdnZXItdWkvd2VicGFjay9ydW50aW1lL2NyZWF0ZSBmYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9AYnJhaW50cmVlL3Nhbml0aXplLXVybC9kaXN0L2NvbnN0YW50cy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0BicmFpbnRyZWUvc2FuaXRpemUtdXJsL2Rpc3QvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9iYXNlNjQtanMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9idWZmZXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jYWxsLWJpbmQvY2FsbEJvdW5kLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY2FsbC1iaW5kL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29va2llL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29weS10by1jbGlwYm9hcmQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jc3MuZXNjYXBlL2Nzcy5lc2NhcGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9kZWVwLWV4dGVuZC9saWIvZGVlcC1leHRlbmQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9kZWVwbWVyZ2UvZGlzdC9janMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9kZWZpbmUtZGF0YS1wcm9wZXJ0eS9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2RvbXB1cmlmeS9kaXN0L3B1cmlmeS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2RyYW5nZS9saWIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9lcy1kZWZpbmUtcHJvcGVydHkvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9lcy1lcnJvcnMvZXZhbC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2VzLWVycm9ycy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2VzLWVycm9ycy9yYW5nZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2VzLWVycm9ycy9yZWYuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9lcy1lcnJvcnMvc3ludGF4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvZXMtZXJyb3JzL3R5cGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9lcy1lcnJvcnMvdXJpLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvZXZlbnRzL2V2ZW50cy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2ZhdWx0L2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvZm9ybWF0L2Zvcm1hdC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2Z1bmN0aW9uLWJpbmQvaW1wbGVtZW50YXRpb24uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9mdW5jdGlvbi1iaW5kL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvZ2V0LWludHJpbnNpYy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2dvcGQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9oYXMtcHJvcGVydHktZGVzY3JpcHRvcnMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9oYXMtcHJvdG8vaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9oYXMtc3ltYm9scy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2hhcy1zeW1ib2xzL3NoYW1zLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvaGFzb3duL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9jb3JlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYmFzaC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2h0dHAuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9qYXZhc2NyaXB0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvanNvbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3Bvd2Vyc2hlbGwuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy94bWwuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy95YW1sLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvaWVlZTc1NC9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2ltbXV0YWJsZS9kaXN0L2ltbXV0YWJsZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9qcy1maWxlLWRvd25sb2FkL2ZpbGUtZG93bmxvYWQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2guZGVib3VuY2UvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX0RhdGFWaWV3LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19IYXNoLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19MYXp5V3JhcHBlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fTGlzdENhY2hlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19Mb2Rhc2hXcmFwcGVyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19NYXAuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX01hcENhY2hlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19Qcm9taXNlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19TZXQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX1NldENhY2hlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19TdGFjay5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fU3ltYm9sLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19VaW50OEFycmF5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19XZWFrTWFwLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hcHBseS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXJyYXlFYWNoLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hcnJheUZpbHRlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXJyYXlJbmNsdWRlcy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXJyYXlMaWtlS2V5cy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXJyYXlNYXAuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2FycmF5UHVzaC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXJyYXlSZWR1Y2UuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2FycmF5U29tZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXNjaWlUb0FycmF5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hc2NpaVdvcmRzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hc3NpZ25NZXJnZVZhbHVlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hc3NpZ25WYWx1ZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXNzb2NJbmRleE9mLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlQXNzaWduLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlQXNzaWduSW4uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VBc3NpZ25WYWx1ZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUNsb25lLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlQ3JlYXRlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlRWFjaC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUZpbmRJbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUZsYXR0ZW4uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VGb3IuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VGb3JPd24uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VHZXQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VHZXRBbGxLZXlzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlR2V0VGFnLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSGFzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSGFzSW4uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJbmRleE9mLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSXNBcmd1bWVudHMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc0VxdWFsLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSXNFcXVhbERlZXAuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc01hcC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzTWF0Y2guanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc05hTi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzTmF0aXZlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSXNTZXQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc1R5cGVkQXJyYXkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJdGVyYXRlZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUtleXMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VLZXlzSW4uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VMb2Rhc2guanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VNYXRjaGVzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlTWF0Y2hlc1Byb3BlcnR5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlTWVyZ2UuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VNZXJnZURlZXAuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VQcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVByb3BlcnR5RGVlcC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVByb3BlcnR5T2YuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VSZWR1Y2UuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VSZXN0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlU2V0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlU2V0RGF0YS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVNldFRvU3RyaW5nLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlU2xpY2UuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VTb21lLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlVGltZXMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVRyaW0uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VVbmFyeS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVVuc2V0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlWmlwT2JqZWN0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jYWNoZUhhcy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY2FzdFBhdGguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Nhc3RTbGljZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY2xvbmVBcnJheUJ1ZmZlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY2xvbmVCdWZmZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Nsb25lRGF0YVZpZXcuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Nsb25lUmVnRXhwLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jbG9uZVN5bWJvbC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY2xvbmVUeXBlZEFycmF5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jb21wb3NlQXJncy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY29tcG9zZUFyZ3NSaWdodC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY29weUFycmF5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jb3B5T2JqZWN0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jb3B5U3ltYm9scy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY29weVN5bWJvbHNJbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY29yZUpzRGF0YS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY291bnRIb2xkZXJzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jcmVhdGVBc3NpZ25lci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3JlYXRlQmFzZUVhY2guanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NyZWF0ZUJhc2VGb3IuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NyZWF0ZUJpbmQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NyZWF0ZUNhc2VGaXJzdC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3JlYXRlQ29tcG91bmRlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3JlYXRlQ3Rvci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3JlYXRlQ3VycnkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NyZWF0ZUZpbmQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NyZWF0ZUh5YnJpZC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3JlYXRlUGFydGlhbC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3JlYXRlUmVjdXJyeS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3JlYXRlV3JhcC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3VzdG9tT21pdENsb25lLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19kZWJ1cnJMZXR0ZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2RlZmluZVByb3BlcnR5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19lcXVhbEFycmF5cy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZXF1YWxCeVRhZy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZXF1YWxPYmplY3RzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19mbGF0UmVzdC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZnJlZUdsb2JhbC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0QWxsS2V5cy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0QWxsS2V5c0luLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXREYXRhLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRGdW5jTmFtZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0SG9sZGVyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRNYXBEYXRhLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRNYXRjaERhdGEuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldE5hdGl2ZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0UHJvdG90eXBlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRSYXdUYWcuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldFN5bWJvbHMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldFN5bWJvbHNJbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0VGFnLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRWYWx1ZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0V3JhcERldGFpbHMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2hhc1BhdGguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2hhc1VuaWNvZGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2hhc1VuaWNvZGVXb3JkLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19oYXNoQ2xlYXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2hhc2hEZWxldGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2hhc2hHZXQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2hhc2hIYXMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2hhc2hTZXQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2luaXRDbG9uZUFycmF5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19pbml0Q2xvbmVCeVRhZy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faW5pdENsb25lT2JqZWN0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19pbnNlcnRXcmFwRGV0YWlscy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faXNGbGF0dGVuYWJsZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faXNJbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faXNJdGVyYXRlZUNhbGwuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2lzS2V5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19pc0tleWFibGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2lzTGF6aWFibGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2lzTWFza2VkLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19pc1Byb3RvdHlwZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faXNTdHJpY3RDb21wYXJhYmxlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19saXN0Q2FjaGVDbGVhci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbGlzdENhY2hlRGVsZXRlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19saXN0Q2FjaGVHZXQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2xpc3RDYWNoZUhhcy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbGlzdENhY2hlU2V0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19tYXBDYWNoZUNsZWFyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19tYXBDYWNoZURlbGV0ZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWFwQ2FjaGVHZXQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX21hcENhY2hlSGFzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19tYXBDYWNoZVNldC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWFwVG9BcnJheS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWF0Y2hlc1N0cmljdENvbXBhcmFibGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX21lbW9pemVDYXBwZWQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX21lcmdlRGF0YS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWV0YU1hcC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbmF0aXZlQ3JlYXRlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19uYXRpdmVLZXlzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19uYXRpdmVLZXlzSW4uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX25vZGVVdGlsLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19vYmplY3RUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fb3ZlckFyZy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fb3ZlclJlc3QuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3BhcmVudC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fcmVhbE5hbWVzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19yZW9yZGVyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19yZXBsYWNlSG9sZGVycy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fcm9vdC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fc2FmZUdldC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fc2V0Q2FjaGVBZGQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3NldENhY2hlSGFzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19zZXREYXRhLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19zZXRUb0FycmF5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19zZXRUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fc2V0V3JhcFRvU3RyaW5nLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19zaG9ydE91dC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fc3RhY2tDbGVhci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fc3RhY2tEZWxldGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3N0YWNrR2V0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19zdGFja0hhcy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fc3RhY2tTZXQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3N0cmljdEluZGV4T2YuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3N0cmluZ1RvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3N0cmluZ1RvUGF0aC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fdG9LZXkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3RvU291cmNlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL190cmltbWVkRW5kSW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3VuaWNvZGVUb0FycmF5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL191bmljb2RlV29yZHMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3VwZGF0ZVdyYXBEZXRhaWxzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL193cmFwcGVyQ2xvbmUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvYXJ5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2NhbWVsQ2FzZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9jYXBpdGFsaXplLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2Nsb25lLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2NvbnN0YW50LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2N1cnJ5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2RlYm91bmNlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2RlYnVyci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9lcS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9lc2NhcGVSZWdFeHAuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvZmluZC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9maW5kSW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvZmxhdHRlbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9mcC9fYmFzZUNvbnZlcnQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvZnAvX21hcHBpbmcuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvZnAvX3V0aWwuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvZnAvYXNzb2NQYXRoLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2ZwL2NvbnZlcnQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvZnAvcGxhY2Vob2xkZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvZnAvc2V0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2dldC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9oYXMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaGFzSW4uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaWRlbnRpdHkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNBcmd1bWVudHMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNBcnJheS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0FycmF5TGlrZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0FycmF5TGlrZU9iamVjdC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0Jvb2xlYW4uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNCdWZmZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNFbXB0eS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0VxdWFsLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzRXJyb3IuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNGdW5jdGlvbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0xlbmd0aC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc01hcC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc051bGwuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNOdW1iZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNPYmplY3QuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNPYmplY3RMaWtlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzUGxhaW5PYmplY3QuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNTZXQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNTdHJpbmcuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNTeW1ib2wuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNUeXBlZEFycmF5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzV2Vha01hcC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pdGVyYXRlZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9rZXlzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2tleXNJbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9sYXN0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL21lbW9pemUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvbWVyZ2UuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvbmVnYXRlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL25vb3AuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvbm93LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL29taXQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvcmVhcmcuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvcmVkdWNlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL3NldC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9zb21lLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL3N0dWJBcnJheS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9zdHViRmFsc2UuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvdG9GaW5pdGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvdG9JbnRlZ2VyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL3RvTG93ZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvdG9OdW1iZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvdG9QYXRoLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL3RvUGxhaW5PYmplY3QuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvdG9TdHJpbmcuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvdXBwZXJGaXJzdC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC93b3Jkcy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC93cmFwcGVyTG9kYXNoLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbG9kYXNoL3ppcE9iamVjdC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2xvd2xpZ2h0L2xpYi9jb3JlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbWluaW0vbGliL0FycmF5U2xpY2UuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9taW5pbS9saWIvS2V5VmFsdWVQYWlyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbWluaW0vbGliL05hbWVzcGFjZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL21pbmltL2xpYi9PYmplY3RTbGljZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL21pbmltL2xpYi9lbGVtZW50cy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL21pbmltL2xpYi9lbGVtZW50cy9MaW5rRWxlbWVudC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL21pbmltL2xpYi9lbGVtZW50cy9SZWZFbGVtZW50LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbWluaW0vbGliL21pbmltLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbWluaW0vbGliL3ByaW1pdGl2ZXMvQXJyYXlFbGVtZW50LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbWluaW0vbGliL3ByaW1pdGl2ZXMvQm9vbGVhbkVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9taW5pbS9saWIvcHJpbWl0aXZlcy9FbGVtZW50LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbWluaW0vbGliL3ByaW1pdGl2ZXMvTWVtYmVyRWxlbWVudC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL21pbmltL2xpYi9wcmltaXRpdmVzL051bGxFbGVtZW50LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbWluaW0vbGliL3ByaW1pdGl2ZXMvTnVtYmVyRWxlbWVudC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL21pbmltL2xpYi9wcmltaXRpdmVzL09iamVjdEVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9taW5pbS9saWIvcHJpbWl0aXZlcy9TdHJpbmdFbGVtZW50LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvbWluaW0vbGliL3NlcmlhbGlzZXJzL0pTT04wNlNlcmlhbGlzZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9taW5pbS9saWIvc2VyaWFsaXNlcnMvSlNPTlNlcmlhbGlzZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9vYmplY3QtaW5zcGVjdC9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3Byb2Nlc3MvYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvZmFjdG9yeVdpdGhUaHJvd2luZ1NoaW1zLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcXMvbGliL2Zvcm1hdHMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9xcy9saWIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9xcy9saWIvcGFyc2UuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9xcy9saWIvc3RyaW5naWZ5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcXMvbGliL3V0aWxzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcXVlcnlzdHJpbmdpZnkvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW5kZXhwL2xpYi9yYW5kZXhwLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFuZG9tYnl0ZXMvYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWNvcHktdG8tY2xpcGJvYXJkL2xpYi9Db21wb25lbnQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFjdC1jb3B5LXRvLWNsaXBib2FyZC9saWIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFjdC1kZWJvdW5jZS1pbnB1dC9saWIvQ29tcG9uZW50LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhY3QtZGVib3VuY2UtaW5wdXQvbGliL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzL2Rpc3QvSW1tdXRhYmxlUHJvcFR5cGVzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhY3QvY2pzL3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhY3QvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vZXJyb3JzLWJyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vbGliL19zdHJlYW1fZHVwbGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9fc3RyZWFtX3Bhc3N0aHJvdWdoLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9fc3RyZWFtX3JlYWRhYmxlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9fc3RyZWFtX3RyYW5zZm9ybS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JlYWRhYmxlLXN0cmVhbS9saWIvX3N0cmVhbV93cml0YWJsZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JlYWRhYmxlLXN0cmVhbS9saWIvaW50ZXJuYWwvc3RyZWFtcy9hc3luY19pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JlYWRhYmxlLXN0cmVhbS9saWIvaW50ZXJuYWwvc3RyZWFtcy9idWZmZXJfbGlzdC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JlYWRhYmxlLXN0cmVhbS9saWIvaW50ZXJuYWwvc3RyZWFtcy9kZXN0cm95LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9pbnRlcm5hbC9zdHJlYW1zL2VuZC1vZi1zdHJlYW0uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vbGliL2ludGVybmFsL3N0cmVhbXMvZnJvbS1icm93c2VyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9pbnRlcm5hbC9zdHJlYW1zL3BpcGVsaW5lLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9pbnRlcm5hbC9zdHJlYW1zL3N0YXRlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9pbnRlcm5hbC9zdHJlYW1zL3N0cmVhbS1icm93c2VyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVkdXgtaW1tdXRhYmxlL2Rpc3QvY29tYmluZVJlZHVjZXJzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVkdXgtaW1tdXRhYmxlL2Rpc3QvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWR1eC1pbW11dGFibGUvZGlzdC91dGlsaXRpZXMvZ2V0U3RhdGVOYW1lLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVkdXgtaW1tdXRhYmxlL2Rpc3QvdXRpbGl0aWVzL2dldFVuZXhwZWN0ZWRJbnZvY2F0aW9uUGFyYW1ldGVyTWVzc2FnZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JlZHV4LWltbXV0YWJsZS9kaXN0L3V0aWxpdGllcy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JlZHV4LWltbXV0YWJsZS9kaXN0L3V0aWxpdGllcy92YWxpZGF0ZU5leHRTdGF0ZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JlcGVhdC1zdHJpbmcvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZXF1aXJlcy1wb3J0L2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmV0L2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JldC9saWIvcG9zaXRpb25zLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmV0L2xpYi9zZXRzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmV0L2xpYi90eXBlcy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JldC9saWIvdXRpbC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3NhZmUtYnVmZmVyL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zY2hlZHVsZXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zZXJpYWxpemUtZXJyb3IvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zZXQtZnVuY3Rpb24tbGVuZ3RoL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc2hhLmpzL2hhc2guanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zaGEuanMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zaGEuanMvc2hhLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc2hhLmpzL3NoYTEuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zaGEuanMvc2hhMjI0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc2hhLmpzL3NoYTI1Ni5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3NoYS5qcy9zaGEzODQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zaGEuanMvc2hhNTEyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc2hvcnQtdW5pcXVlLWlkL2Rpc3Qvc2hvcnQtdW5pcXVlLWlkLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc2lkZS1jaGFubmVsL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3RhbXBpdC9kaXN0L3N0YW1waXQubWluLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3RyZWFtLWJyb3dzZXJpZnkvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zdHJpbmdfZGVjb2Rlci9saWIvc3RyaW5nX2RlY29kZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90b2dnbGUtc2VsZWN0aW9uL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvdHJhdmVyc2UvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy91cmwtcGFyc2UvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy91c2Utc3luYy1leHRlcm5hbC1zdG9yZS9janMvdXNlLXN5bmMtZXh0ZXJuYWwtc3RvcmUtd2l0aC1zZWxlY3Rvci5wcm9kdWN0aW9uLm1pbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3VzZS1zeW5jLWV4dGVybmFsLXN0b3JlL3dpdGgtc2VsZWN0b3IuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy91dGlsLWRlcHJlY2F0ZS9icm93c2VyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMveG1sLWJ1dC1wcmV0dGllci9kaXN0L2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMveG1sL2xpYi9lc2NhcGVGb3JYTUwuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy94bWwvbGliL3htbC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3plbnNjcm9sbC96ZW5zY3JvbGwuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMvYWdncmVnYXRlLWVycm9yLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9oZWxwZXJzL2V4dGVuZHMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jbGFzc25hbWVzL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2FjdHVhbC9hZ2dyZWdhdGUtZXJyb3IuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvYWN0dWFsL2luc3RhbmNlL2JpbmQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvYWN0dWFsL29iamVjdC9hc3NpZ24uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvYWdncmVnYXRlLWVycm9yLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2Z1bmN0aW9uL3ZpcnR1YWwvYmluZC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9pbnN0YW5jZS9iaW5kLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL29iamVjdC9hc3NpZ24uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZmVhdHVyZXMvYWdncmVnYXRlLWVycm9yLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ZlYXR1cmVzL2luc3RhbmNlL2JpbmQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZmVhdHVyZXMvb2JqZWN0L2Fzc2lnbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9mdWxsL2FnZ3JlZ2F0ZS1lcnJvci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9mdWxsL2luc3RhbmNlL2JpbmQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZnVsbC9vYmplY3QvYXNzaWduLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9hLWNhbGxhYmxlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9hLXBvc3NpYmxlLXByb3RvdHlwZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYWRkLXRvLXVuc2NvcGFibGVzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9hbi1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2FycmF5LWluY2x1ZGVzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9hcnJheS1zbGljZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvY2xhc3NvZi1yYXcuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2NsYXNzb2YuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2NvcHktY29uc3RydWN0b3ItcHJvcGVydGllcy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvY29ycmVjdC1wcm90b3R5cGUtZ2V0dGVyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9jcmVhdGUtaXRlci1yZXN1bHQtb2JqZWN0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2RlZmluZS1nbG9iYWwtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Rlc2NyaXB0b3JzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9kb2N1bWVudC1hbGwuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9kb20taXRlcmFibGVzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9lbmdpbmUtdXNlci1hZ2VudC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZW5naW5lLXY4LXZlcnNpb24uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2VudW0tYnVnLWtleXMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Vycm9yLXN0YWNrLWNsZWFyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9lcnJvci1zdGFjay1pbnN0YWxsLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9lcnJvci1zdGFjay1pbnN0YWxsYWJsZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZXhwb3J0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9mYWlscy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tYXBwbHkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1uYXRpdmUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Z1bmN0aW9uLW5hbWUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcy1hY2Nlc3Nvci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzLWNsYXVzZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9nZXQtYnVpbHQtaW4tcHJvdG90eXBlLW1ldGhvZC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9nZXQtaXRlcmF0b3ItbWV0aG9kLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9nZXQtaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2dldC1tZXRob2QuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2dsb2JhbC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaGlkZGVuLWtleXMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2h0bWwuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2llOC1kb20tZGVmaW5lLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pbmRleGVkLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaW5oZXJpdC1pZi1yZXF1aXJlZC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaW5zdGFsbC1lcnJvci1jYXVzZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2lzLWFycmF5LWl0ZXJhdG9yLW1ldGhvZC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtY2FsbGFibGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2lzLWZvcmNlZC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtbnVsbC1vci11bmRlZmluZWQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2lzLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtcHVyZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtc3ltYm9sLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pdGVyYXRlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pdGVyYXRvci1jbG9zZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXRlcmF0b3ItY3JlYXRlLWNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pdGVyYXRvci1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2l0ZXJhdG9ycy1jb3JlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pdGVyYXRvcnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9tYXRoLXRydW5jLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9ub3JtYWxpemUtc3RyaW5nLWFyZ3VtZW50LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtYXNzaWduLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtY3JlYXRlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnRpZXMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3IuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1zeW1ib2xzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtZ2V0LXByb3RvdHlwZS1vZi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1rZXlzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtcHJvcGVydHktaXMtZW51bWVyYWJsZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LXNldC1wcm90b3R5cGUtb2YuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC10by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29yZGluYXJ5LXRvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb3duLWtleXMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3BhdGguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3Byb3h5LWFjY2Vzc29yLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3NldC10by1zdHJpbmctdGFnLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9zaGFyZWQta2V5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9zaGFyZWQtc3RvcmUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3NoYXJlZC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvc3RyaW5nLW11bHRpYnl0ZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvc3ltYm9sLWNvbnN0cnVjdG9yLWRldGVjdGlvbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8tYWJzb2x1dGUtaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90by1pbnRlZ2VyLW9yLWluZmluaXR5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90by1sZW5ndGguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3RvLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8tcHJpbWl0aXZlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90by1wcm9wZXJ0eS1rZXkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3RvLXN0cmluZy10YWctc3VwcG9ydC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8tc3RyaW5nLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90cnktdG8tc3RyaW5nLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy91aWQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3VzZS1zeW1ib2wtYXMtdWlkLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy92OC1wcm90b3R5cGUtZGVmaW5lLWJ1Zy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvd2Vhay1tYXAtYmFzaWMtZGV0ZWN0aW9uLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvd3JhcC1lcnJvci1jb25zdHJ1Y3Rvci13aXRoLWNhdXNlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuYWdncmVnYXRlLWVycm9yLmNhdXNlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuYWdncmVnYXRlLWVycm9yLmNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuYWdncmVnYXRlLWVycm9yLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuYXJyYXkuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5lcnJvci5jYXVzZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLmZ1bmN0aW9uLmJpbmQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5vYmplY3QuYXNzaWduLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuc3RyaW5nLml0ZXJhdG9yLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXNuZXh0LmFnZ3JlZ2F0ZS1lcnJvci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL2FnZ3JlZ2F0ZS1lcnJvci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvYmluZC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvb2JqZWN0L2Fzc2lnbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL3N3YWdnZXItdWkvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS93ZWJwYWNrL3J1bnRpbWUvZ2xvYmFsIiwid2VicGFjazovL3N3YWdnZXItdWkvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS93ZWJwYWNrL3J1bnRpbWUvbm9kZSBtb2R1bGUgZGVjb3JhdG9yIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVkdXgvZGlzdC9yZWR1eC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvZXJyL2FjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3dpbmRvdy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvdXRpbHMvZ2V0LXBhcmFtZXRlci1zY2hlbWEuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3V0aWxzL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9zeXN0ZW0uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvYXV0aC9hY3Rpb25zLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2F1dGgvcmVkdWNlcnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZXNlbGVjdC9kaXN0L3Jlc2VsZWN0Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9hdXRoL3NlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9hdXRoL3NwZWMtZXh0ZW5zaW9ucy93cmFwLWFjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvYXV0aC9jb25maWdzLWV4dGVuc2lvbnMvd3JhcC1hY3Rpb25zLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2F1dGgvd3JhcC1hY3Rpb25zLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2F1dGgvY29tcG9uZW50cy9sb2NrLWF1dGgtaWNvbi5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvYXV0aC9jb21wb25lbnRzL3VubG9jay1hdXRoLWljb24uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2F1dGgvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9qcy15YW1sL2Rpc3QvanMteWFtbC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvY29uZmlncy9hY3Rpb25zLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2NvbmZpZ3MvZm4uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvY29uZmlncy9zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvY29uZmlncy9yZWR1Y2Vycy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9jb25maWdzL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2RlZXAtbGlua2luZy9oZWxwZXJzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2RlZXAtbGlua2luZy9sYXlvdXQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvZGVlcC1saW5raW5nL29wZXJhdGlvbi13cmFwcGVyLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9kZWVwLWxpbmtpbmcvb3BlcmF0aW9uLXRhZy13cmFwcGVyLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9kZWVwLWxpbmtpbmcvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvZXJyL2Vycm9yLXRyYW5zZm9ybWVycy90cmFuc2Zvcm1lcnMvbm90LW9mLXR5cGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvZXJyL2Vycm9yLXRyYW5zZm9ybWVycy90cmFuc2Zvcm1lcnMvcGFyYW1ldGVyLW9uZW9mLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2Vyci9lcnJvci10cmFuc2Zvcm1lcnMvaG9vay5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9lcnIvcmVkdWNlcnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvZXJyL3NlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9lcnIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvZmlsdGVyL29wc0ZpbHRlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9maWx0ZXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvaWNvbnMvY29tcG9uZW50cy9hcnJvdy11cC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvaWNvbnMvY29tcG9uZW50cy9hcnJvdy1kb3duLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9pY29ucy9jb21wb25lbnRzL2Fycm93LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9pY29ucy9jb21wb25lbnRzL2Nsb3NlLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9pY29ucy9jb21wb25lbnRzL2NvcHkuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2ljb25zL2NvbXBvbmVudHMvbG9jay5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvaWNvbnMvY29tcG9uZW50cy91bmxvY2suanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2ljb25zL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2xheW91dC9hY3Rpb25zLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2xheW91dC9yZWR1Y2Vycy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9sYXlvdXQvc2VsZWN0b3JzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2xheW91dC9zcGVjLWV4dGVuc2lvbnMvd3JhcC1zZWxlY3Rvci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9sYXlvdXQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvbG9ncy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vbi1jb21wbGV0ZS9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9yZXF1ZXN0LXNuaXBwZXRzL2ZuLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3JlcXVlc3Qtc25pcHBldHMvc2VsZWN0b3JzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3JlcXVlc3Qtc25pcHBldHMvcmVxdWVzdC1zbmlwcGV0cy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvcmVxdWVzdC1zbmlwcGV0cy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvbW9kZWwtY29sbGFwc2UuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUvY29tcG9uZW50cy9tb2RlbC1leGFtcGxlLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvbW9kZWwtd3JhcHBlci5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFjdC1pbW11dGFibGUtcHVyZS1jb21wb25lbnQvbGliL3JlYWN0LWltbXV0YWJsZS1wdXJlLWNvbXBvbmVudC5lcy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvYXNzZXRzL3JvbGxpbmctbG9hZC5zdmciLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtNS9jb21wb25lbnRzL21vZGVsLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvbW9kZWxzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvZW51bS1tb2RlbC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtNS9jb21wb25lbnRzL29iamVjdC1tb2RlbC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtNS9jb21wb25lbnRzL2FycmF5LW1vZGVsLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvcHJpbWl0aXZlLW1vZGVsLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvc2NoZW1lcy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtNS9jb250YWluZXJzL3NjaGVtZXMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUvY29tcG9uZW50cy9qc29uLXNjaGVtYS1jb21wb25lbnRzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS91dGlscy9tZW1vaXplTi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01LXNhbXBsZXMvZm4vaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtNS1zYW1wbGVzL2ZuL2dldC1qc29uLXNhbXBsZS1zY2hlbWEuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtNS1zYW1wbGVzL2ZuL2dldC15YW1sLXNhbXBsZS1zY2hlbWEuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtNS1zYW1wbGVzL2ZuL2dldC14bWwtc2FtcGxlLXNjaGVtYS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01LXNhbXBsZXMvZm4vZ2V0LXNhbXBsZS1zY2hlbWEuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtNS1zYW1wbGVzL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3NwZWMvc2VsZWN0b3JzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3NwZWMvYWN0aW9ucy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9zcGVjL3JlZHVjZXJzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3NwZWMvd3JhcC1hY3Rpb25zLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3NwZWMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9mYXN0LWpzb24tcGF0Y2gvbW9kdWxlL2hlbHBlcnMubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvZmFzdC1qc29uLXBhdGNoL21vZHVsZS9jb3JlLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2Zhc3QtanNvbi1wYXRjaC9tb2R1bGUvZHVwbGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2Zhc3QtanNvbi1wYXRjaC9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9zcGVjbWFwL2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc1BsYWNlaG9sZGVyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2N1cnJ5MS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19jdXJyeTIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fY3VycnkzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2lzSW50ZWdlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc1N0cmluZy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL250aC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3BhdGhzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvcGF0aC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3BhdGhTYXRpc2ZpZXMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fY2xvbmVSZWdFeHAuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fYXJyYXlGcm9tSXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faW5jbHVkZXNXaXRoLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2hhcy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19vYmplY3RJcy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc0FyZ3VtZW50cy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2tleXMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy90eXBlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2VxdWFscy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19mdW5jdGlvbk5hbWUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9lcXVhbHMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faW5kZXhPZi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19tYXAuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fcXVvdGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fdG9JU09TdHJpbmcuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fY29tcGxlbWVudC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19hcnJheVJlZHVjZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc0FycmF5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2Rpc3BhdGNoYWJsZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc1RyYW5zZm9ybWVyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2lzT2JqZWN0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3hmQmFzZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL194ZmlsdGVyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvZmlsdGVyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2ZpbHRlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3JlamVjdC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL190b1N0cmluZy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3RvU3RyaW5nLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvdGVzdC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc1JlZ0V4cC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19hcml0eS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19waXBlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2lzQXJyYXlMaWtlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2NyZWF0ZVJlZHVjZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL194QXJyYXlSZWR1Y2UuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9iaW5kLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3hSZWR1Y2UuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9feHdyYXAuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9yZWR1Y2UuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fY2hlY2tGb3JNZXRob2QuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9zbGljZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3RhaWwuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9waXBlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvZGVmYXVsdFRvLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvcHJvcC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3Byb3BPci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2xhc3QuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fY3VycnlOLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvY3VycnlOLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvY3VycnkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faXNGdW5jdGlvbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludm9rZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9zcGxpdC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19kcm9wTGFzdFdoaWxlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3hkcm9wTGFzdFdoaWxlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvZHJvcExhc3RXaGlsZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2pvaW4uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9mbGlwLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy9pbmNsdWRlZC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2luY2x1ZGVzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy90cmltQ2hhcnNFbmQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fcmVkdWNlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3htYXAuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9tYXAuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9hcC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19jb25jYXQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9saWZ0Ti5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2xpZnQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9jb21wbGVtZW50LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvbm90LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvYWx3YXlzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy9zdHViVW5kZWZpbmVkLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy9pc1VuZGVmaW5lZC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaXNOb3RVbmRlZmluZWQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9tYXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9wbHVjay5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2FueVBhc3MuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pZGVudGljYWwuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2lzR2VuZXJhdG9yRnVuY3Rpb24uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2lzQXN5bmNGdW5jdGlvbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaXNGdW5jdGlvbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3JlcGxhY2UuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2lzUmVnRXhwLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvd2hlbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaXNTdHJpbmcuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2VzY2FwZVJlZ0V4cC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaW50ZXJuYWwvcG9ueWZpbGxzL1N0cmluZy5yZXBsYWNlQWxsLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy9yZXBsYWNlQWxsLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvdXRpbC91cmwubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvaGVscGVycy9mZXRjaC1wb255ZmlsbC5icm93c2VyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvc3BlY21hcC9saWIvY3JlYXRlLWVycm9yLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvaGVscGVycy9mZXRjaC1wb2x5ZmlsbC5icm93c2VyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvY29uc3RhbnRzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvc3BlY21hcC9oZWxwZXJzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvc3BlY21hcC9saWIvcmVmcy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3NwZWNtYXAvbGliL2FsbC1vZi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3NwZWNtYXAvbGliL3BhcmFtZXRlcnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9zcGVjbWFwL2xpYi9wcm9wZXJ0aWVzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvc3BlY21hcC9saWIvY29udGV4dC10cmVlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvc3BlY21hcC9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL2hlbHBlcnMvcmVwbGFjZS1zcGVjaWFsLWNoYXJzLXdpdGgtdW5kZXJzY29yZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL2hlbHBlcnMvb3AtaWQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9oZWxwZXJzL2lkLWZyb20tcGF0aC1tZXRob2QvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9zdHJhdGVnaWVzL2dlbmVyaWMvbm9ybWFsaXplLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvdXRpbHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9leGVjdXRlL29hczMvc3R5bGUtc2VyaWFsaXplci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL2h0dHAvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci91dGlscy9vcHRpb25zLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvc3RyYXRlZ2llcy9nZW5lcmljL3Jlc29sdmUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9zdHJhdGVnaWVzL2dlbmVyaWMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9oZWxwZXJzL29wZW5hcGktcHJlZGljYXRlcy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvb3BlbmFwaS0yL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvc3RyYXRlZ2llcy9vcGVuYXBpLTIvcmVzb2x2ZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvb3BlbmFwaS0zLTAvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9zdHJhdGVnaWVzL29wZW5hcGktMy0wL3Jlc29sdmUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9ULmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvRi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tZXJyb3IvZXMvQXBpRE9NQWdncmVnYXRlRXJyb3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1lcnJvci9lcy9BcGlET01FcnJvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWVycm9yL2VzL0FwaURPTVN0cnVjdHVyZWRFcnJvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWFzdC9lcy90cmF2ZXJzYWwvdmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fcmVkdWNlZC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL194YWxsLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvYWxsLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL2VsZW1lbnRzL0Fubm90YXRpb24ubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL2VsZW1lbnRzL0NvbW1lbnQubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL2VsZW1lbnRzL1BhcnNlUmVzdWx0Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy9lbGVtZW50cy9Tb3VyY2VNYXAubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL3ByZWRpY2F0ZXMvaGVscGVycy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWNvcmUvZXMvcHJlZGljYXRlcy9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWNvcmUvZXMvY2xvbmUvZXJyb3JzL0Nsb25lRXJyb3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL2Nsb25lL2Vycm9ycy9EZWVwQ2xvbmVFcnJvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWNvcmUvZXMvY2xvbmUvZXJyb3JzL1NoYWxsb3dDbG9uZUVycm9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy9jbG9uZS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWNvcmUvZXMvdHJhdmVyc2FsL3Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL3RyYW5zZm9ybWVycy9zZXJpYWxpemVycy92YWx1ZS92aXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy90cmFuc2Zvcm1lcnMvc2VyaWFsaXplcnMvdmFsdWUvYXN0L2VwaGVtZXJhbC1hcnJheS5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWNvcmUvZXMvdHJhbnNmb3JtZXJzL3NlcmlhbGl6ZXJzL3ZhbHVlL2FzdC9lcGhlbWVyYWwtb2JqZWN0Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy90cmFuc2Zvcm1lcnMvc2VyaWFsaXplcnMvdmFsdWUvaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvbWVyZ2VXaXRoS2V5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvbWVyZ2VEZWVwV2l0aEtleS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL21lcmdlRGVlcFJpZ2h0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW5pdC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2FwcGx5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy9pc05vdEZ1bmN0aW9uLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvYW5kLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvYm90aC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2VtcHR5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2lzVHlwZWRBcnJheS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2lzRW1wdHkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2lzQXJyYXkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2lzRW1wdHlBcnJheS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaW52b2tlQXJncy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaXNOdWxsLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy9pc05vdE51bGwuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2ludGVybmFsL2lzT2ZUeXBlT2JqZWN0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy9pc09iakxpa2UuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2lzUGxhaW5PYmouanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWNvcmUvZXMvbmFtZXNwYWNlLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy9yZWZyYWN0b3IvdG9vbGJveC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWNvcmUvZXMvcmVmcmFjdG9yL3BsdWdpbnMvZGlzcGF0Y2hlci9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWNvcmUvZXMvcmVmcmFjdG9yL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy9yZWZyYWN0b3IvcmVnaXN0cmF0aW9uLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy90cmFuc2NsdWRlci9UcmFuc2NsdWRlci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWpzb24tcG9pbnRlci9lcy9lc2NhcGUubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1qc29uLXBvaW50ZXIvZXMvZXJyb3JzL0pzb25Qb2ludGVyRXJyb3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1qc29uLXBvaW50ZXIvZXMvZXJyb3JzL0NvbXBpbGF0aW9uSnNvblBvaW50ZXJFcnJvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWpzb24tcG9pbnRlci9lcy9jb21waWxlLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2NvbnZlcmdlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2lkZW50aXR5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaWRlbnRpdHkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2ludGVybmFsL3BvbnlmaWxscy9OdW1iZXIuaXNGaW5pdGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2lzTnVtYmVyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy9pc0Zpbml0ZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaW50ZXJuYWwvcG9ueWZpbGxzL051bWJlci5pc0ludGVnZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2lzSW50ZWdlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL194dGFrZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3Rha2UuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9zdGFydHNXaXRoLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy9pc0VtcHR5U3RyaW5nLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3hkcm9wV2hpbGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9kcm9wV2hpbGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL3RyaW1DaGFyc1N0YXJ0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1qc29uLXBvaW50ZXIvZXMvdW5lc2NhcGUubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1qc29uLXBvaW50ZXIvZXMvZXJyb3JzL0ludmFsaWRKc29uUG9pbnRlckVycm9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tanNvbi1wb2ludGVyL2VzL3BhcnNlLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tanNvbi1wb2ludGVyL2VzL2Vycm9ycy9FdmFsdWF0aW9uSnNvblBvaW50ZXJFcnJvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWpzb24tcG9pbnRlci9lcy9ldmFsdWF0ZS5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL0NhbGxiYWNrLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvQ29tcG9uZW50cy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL0NvbnRhY3QubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9EaXNjcmltaW5hdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvRW5jb2RpbmcubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9FeGFtcGxlLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvRXh0ZXJuYWxEb2N1bWVudGF0aW9uLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvSGVhZGVyLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvSW5mby5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL0xpY2Vuc2UubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9MaW5rLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvTWVkaWFUeXBlLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvT0F1dGhGbG93Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvT0F1dGhGbG93cy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL09wZW5hcGkubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9PcGVuQXBpMy0wLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvT3BlcmF0aW9uLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvUGFyYW1ldGVyLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvUGF0aEl0ZW0ubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9QYXRocy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL1JlZmVyZW5jZS5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL1JlcXVlc3RCb2R5Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvUmVzcG9uc2UubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9SZXNwb25zZXMubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1lcnJvci9lcy9VbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9lbGVtZW50cy9KU09OU2NoZW1hLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9lbGVtZW50cy9KU09OUmVmZXJlbmNlLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9lbGVtZW50cy9NZWRpYS5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvZWxlbWVudHMvTGlua0Rlc2NyaXB0aW9uLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL21hcE9iakluZGV4ZWQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pc05pbC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2hhc1BhdGguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9oYXMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9wcm9wU2F0aXNmaWVzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL3V0aWwubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL21lcmdlL2RlZXBtZXJnZS5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9GYWxsYmFja1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy9ub29wLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvcGljay5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvU3BlY2lmaWNhdGlvblZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9nZW5lcmljcy9GaXhlZEZpZWxkc1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL0lkVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hLyRzY2hlbWFWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvTXVsdGlwbGVPZlZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9NYXhpbXVtVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL0V4Y2x1c2l2ZU1heGltdW1WaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvTWluaW11bVZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9FeGNsdXNpdmVNaW5pbXVtVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL01heExlbmd0aFZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9NaW5MZW5ndGhWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvUGF0dGVyblZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9QYXJlbnRTY2hlbWFBd2FyZVZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci9wcmVkaWNhdGVzLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvSXRlbXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvTWF4SXRlbXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvTWluSXRlbXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvVW5pcXVlSXRlbXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvTWF4UHJvcGVydGllc1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9NaW5Qcm9wZXJ0aWVzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL1JlcXVpcmVkVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9hbGxQYXNzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvb3IuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2lzTm90T2JqLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy9pc09iai5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2VpdGhlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaXNOb3RFbXB0eS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhLWFkanVuY3QvZXMvaXNOb25FbXB0eVN0cmluZy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvZ2VuZXJpY3MvUGF0dGVybmVkRmllbGRzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2dlbmVyaWNzL01hcFZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9Qcm9wZXJ0aWVzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL1BhdHRlcm5Qcm9wZXJ0aWVzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL0RlcGVuZGVuY2llc1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9FbnVtVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL1R5cGVWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvQWxsT2ZWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvQW55T2ZWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvT25lT2ZWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvRGVmaW5pdGlvbnNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvVGl0bGVWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvRGVzY3JpcHRpb25WaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvRGVmYXVsdFZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9Gb3JtYXRWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvQmFzZVZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9MaW5rc1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9SZWFkT25seVZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9qc29uLXJlZmVyZW5jZS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL2pzb24tcmVmZXJlbmNlLyRSZWZWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2lmRWxzZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2NvbXBhcmF0b3IuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9zb3J0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaGVhZC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3JlZHVjZWQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2lzTm90TmlsLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEtYWRqdW5jdC9lcy9pc05vbkVtcHR5QXJyYXkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS1hZGp1bmN0L2VzL2Rpc3BhdGNoLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9nZW5lcmljcy9BbHRlcm5hdGluZ1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9KU09OU2NoZW1hT3JKU09OUmVmZXJlbmNlVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3NwZWNpZmljYXRpb24ubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9tZWRpYS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL21lZGlhL0JpbmFyeUVuY29kaW5nVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL21lZGlhL1R5cGVWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvanNvbi1zY2hlbWEvbGluay1kZXNjcmlwdGlvbi9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL2xpbmstZGVzY3JpcHRpb24vSHJlZlZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9saW5rLWRlc2NyaXB0aW9uL1JlbFZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci92aXNpdG9ycy9qc29uLXNjaGVtYS9saW5rLWRlc2NyaXB0aW9uL1RpdGxlVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL2xpbmstZGVzY3JpcHRpb24vTWVkaWFUeXBlVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL2xpbmstZGVzY3JpcHRpb24vTWV0aG9kVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLWpzb24tc2NoZW1hLWRyYWZ0LTQvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2pzb24tc2NoZW1hL2xpbmstZGVzY3JpcHRpb24vRW5jVHlwZVZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3RyYXZlcnNhbC92aXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9wcmVkaWNhdGVzLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9uYW1lc3BhY2UubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci90b29sYm94Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtanNvbi1zY2hlbWEtZHJhZnQtNC9lcy9yZWZyYWN0b3IvaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1qc29uLXNjaGVtYS1kcmFmdC00L2VzL3JlZnJhY3Rvci9yZWdpc3RyYXRpb24ubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9TY2hlbWEubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9TZWN1cml0eVJlcXVpcmVtZW50Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvU2VjdXJpdHlTY2hlbWUubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9TZXJ2ZXIubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9TZXJ2ZXJWYXJpYWJsZS5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL1RhZy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL1htbC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90cy1taXhlci9kaXN0L2VzbS9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvRmFsbGJhY2tWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL1NwZWNpZmljYXRpb25WaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3ByZWRpY2F0ZXMubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvZ2VuZXJpY3MvRml4ZWRGaWVsZHNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvT3BlbmFwaVZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvU3BlY2lmaWNhdGlvbkV4dGVuc2lvblZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2luZm8vaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2luZm8vVmVyc2lvblZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2NvbnRhY3QvaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2xpY2Vuc2UvaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2xpbmsvaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2xpbmsvT3BlcmF0aW9uUmVmVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvbGluay9PcGVyYXRpb25JZFZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvZ2VuZXJpY3MvUGF0dGVybmVkRmllbGRzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9nZW5lcmljcy9NYXBWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9MaW5rUGFyYW1ldGVycy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvbGluay9QYXJhbWV0ZXJzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvc2VydmVyL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9zZXJ2ZXIvVXJsVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvU2VydmVycy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvU2VydmVyc1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3NlcnZlci12YXJpYWJsZS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvU2VydmVyVmFyaWFibGVzLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9zZXJ2ZXIvVmFyaWFibGVzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvbWVkaWEtdHlwZS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9nZW5lcmljcy9BbHRlcm5hdGluZ1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9wcmVkaWNhdGVzLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9tZWRpYS10eXBlL1NjaGVtYVZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL0V4YW1wbGVzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvTWVkaWFUeXBlRXhhbXBsZXMubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL21lZGlhLXR5cGUvRXhhbXBsZXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9NZWRpYVR5cGVFbmNvZGluZy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvbWVkaWEtdHlwZS9FbmNvZGluZ1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3NlY3VyaXR5LXJlcXVpcmVtZW50L2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9TZWN1cml0eS5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvU2VjdXJpdHlWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9jb21wb25lbnRzL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC90YWcvaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3JlZmVyZW5jZS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvcmVmZXJlbmNlLyRSZWZWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9wYXJhbWV0ZXIvaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3BhcmFtZXRlci9TY2hlbWFWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9oZWFkZXIvaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2hlYWRlci9TY2hlbWFWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9IZWFkZXJFeGFtcGxlcy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvaGVhZGVyL0V4YW1wbGVzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvQ29udGVudFZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9uY2VzL0hlYWRlckNvbnRlbnQubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2hlYWRlci9Db250ZW50VmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvc2NoZW1hL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9zY2hlbWEvQWxsT2ZWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9zY2hlbWEvQW55T2ZWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9zY2hlbWEvT25lT2ZWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9zY2hlbWEvSXRlbXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9zY2hlbWEvUHJvcGVydGllc1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3NjaGVtYS9UeXBlVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvc2NoZW1hL1NjaGVtYU9yUmVmZXJlbmNlVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvZGlzdHJpbWluYXRvci9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvRGlzY3JpbWluYXRvck1hcHBpbmcubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2Rpc3RyaW1pbmF0b3IvTWFwcGluZ1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3htbC9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvUGFyYW1ldGVyRXhhbXBsZXMubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3BhcmFtZXRlci9FeGFtcGxlc1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9uY2VzL1BhcmFtZXRlckNvbnRlbnQubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3BhcmFtZXRlci9Db250ZW50VmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvQ29tcG9uZW50c1NjaGVtYXMubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2NvbXBvbmVudHMvU2NoZW1hc1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9uY2VzL0NvbXBvbmVudHNSZXNwb25zZXMubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2NvbXBvbmVudHMvUmVzcG9uc2VzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvQ29tcG9uZW50c1BhcmFtZXRlcnMubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2NvbXBvbmVudHMvUGFyYW1ldGVyc1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9uY2VzL0NvbXBvbmVudHNFeGFtcGxlcy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvY29tcG9uZW50cy9FeGFtcGxlc1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9uY2VzL0NvbXBvbmVudHNSZXF1ZXN0Qm9kaWVzLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9jb21wb25lbnRzL1JlcXVlc3RCb2RpZXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9Db21wb25lbnRzSGVhZGVycy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvY29tcG9uZW50cy9IZWFkZXJzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvQ29tcG9uZW50c1NlY3VyaXR5U2NoZW1lcy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvY29tcG9uZW50cy9TZWN1cml0eVNjaGVtZXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9Db21wb25lbnRzTGlua3MubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2NvbXBvbmVudHMvTGlua3NWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9Db21wb25lbnRzQ2FsbGJhY2tzLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9jb21wb25lbnRzL0NhbGxiYWNrc1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2V4YW1wbGUvaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2V4YW1wbGUvRXh0ZXJuYWxWYWx1ZVZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2V4dGVybmFsLWRvY3VtZW50YXRpb24vaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2VuY29kaW5nL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9FbmNvZGluZ0hlYWRlcnMubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL2VuY29kaW5nL0hlYWRlcnNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9wYXRocy9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvcmVxdWVzdC1ib2R5L2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9SZXF1ZXN0Qm9keUNvbnRlbnQubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3JlcXVlc3QtYm9keS9Db250ZW50VmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvY2FsbGJhY2svaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3Jlc3BvbnNlL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9SZXNwb25zZUhlYWRlcnMubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3Jlc3BvbnNlL0hlYWRlcnNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9SZXNwb25zZUNvbnRlbnQubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3Jlc3BvbnNlL0NvbnRlbnRWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9SZXNwb25zZUxpbmtzLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9yZXNwb25zZS9MaW5rc1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2lzTnVtYmVyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvcmFuZ2UuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fU2V0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvZGlmZmVyZW5jZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL2dlbmVyaWNzL01peGVkRmllbGRzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvcmVzcG9uc2VzL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9yZXNwb25zZXMvRGVmYXVsdFZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL29wZXJhdGlvbi9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvT3BlcmF0aW9uVGFncy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvb3BlcmF0aW9uL1RhZ3NWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9PcGVyYXRpb25QYXJhbWV0ZXJzLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9QYXJhbWV0ZXJzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvb3BlcmF0aW9uL1BhcmFtZXRlcnNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9vcGVyYXRpb24vUmVxdWVzdEJvZHlWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9PcGVyYXRpb25DYWxsYmFja3MubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL29wZXJhdGlvbi9DYWxsYmFja3NWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9PcGVyYXRpb25TZWN1cml0eS5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvb3BlcmF0aW9uL1NlY3VyaXR5VmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvT3BlcmF0aW9uU2VydmVycy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvb3BlcmF0aW9uL1NlcnZlcnNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9wYXRoLWl0ZW0vaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL3BhdGgtaXRlbS8kUmVmVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvUGF0aEl0ZW1TZXJ2ZXJzLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9wYXRoLWl0ZW0vU2VydmVyc1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9lbGVtZW50cy9uY2VzL1BhdGhJdGVtUGFyYW1ldGVycy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvcGF0aC1pdGVtL1BhcmFtZXRlcnNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9zZWN1cml0eS1zY2hlbWUvaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL29hdXRoLWZsb3dzL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMC9vYXV0aC1mbG93L2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvZWxlbWVudHMvbmNlcy9PQXV0aEZsb3dTY29wZXMubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0wL29hdXRoLWZsb3cvU2NvcGVzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL2VsZW1lbnRzL25jZXMvVGFncy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTAvVGFnc1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3Ivc3BlY2lmaWNhdGlvbi5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0wL2VzL3RyYXZlcnNhbC92aXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvbmFtZXNwYWNlLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTAvZXMvcmVmcmFjdG9yL3Rvb2xib3gubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMC9lcy9yZWZyYWN0b3IvcmVnaXN0cmF0aW9uLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvQ2FsbGJhY2subWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9lbGVtZW50cy9Db21wb25lbnRzLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvQ29udGFjdC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL0Rpc2NyaW1pbmF0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9lbGVtZW50cy9FbmNvZGluZy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL0V4YW1wbGUubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9lbGVtZW50cy9FeHRlcm5hbERvY3VtZW50YXRpb24ubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9lbGVtZW50cy9IZWFkZXIubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9lbGVtZW50cy9JbmZvLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvSnNvblNjaGVtYURpYWxlY3QubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9lbGVtZW50cy9MaWNlbnNlLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvTGluay5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL01lZGlhVHlwZS5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL09BdXRoRmxvdy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL09BdXRoRmxvd3MubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9lbGVtZW50cy9PcGVuYXBpLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvT3BlbkFwaTMtMS5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL09wZXJhdGlvbi5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL1BhcmFtZXRlci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL1BhdGhJdGVtLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvUGF0aHMubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9lbGVtZW50cy9SZWZlcmVuY2UubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9lbGVtZW50cy9SZXF1ZXN0Qm9keS5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL1Jlc3BvbnNlLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvUmVzcG9uc2VzLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvU2NoZW1hLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvU2VjdXJpdHlSZXF1aXJlbWVudC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL2VsZW1lbnRzL1NlY3VyaXR5U2NoZW1lLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvU2VydmVyLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvU2VydmVyVmFyaWFibGUubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9lbGVtZW50cy9UYWcubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9lbGVtZW50cy9YbWwubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9pbmZvL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9jb250YWN0L2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9saWNlbnNlL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9saW5rL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9Kc29uU2NoZW1hRGlhbGVjdFZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3NlcnZlci9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvc2VydmVyLXZhcmlhYmxlL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9tZWRpYS10eXBlL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9zZWN1cml0eS1yZXF1aXJlbWVudC9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvY29tcG9uZW50cy9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvdGFnL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9yZWZlcmVuY2UvaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3BhcmFtZXRlci9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvaGVhZGVyL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcHJlZGljYXRlcy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvc2NoZW1hL1BhcmVudFNjaGVtYUF3YXJlVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvc2NoZW1hL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9zY2hlbWEvJHZvY2FidWxhcnlWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9zY2hlbWEvJHJlZlZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3NjaGVtYS8kZGVmc1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3NjaGVtYS9BbGxPZlZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3NjaGVtYS9BbnlPZlZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3NjaGVtYS9PbmVPZlZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3NjaGVtYS9EZXBlbmRlbnRTY2hlbWFzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvc2NoZW1hL1ByZWZpeEl0ZW1zVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvc2NoZW1hL1Byb3BlcnRpZXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9zY2hlbWEvUGF0dGVyblByb3BlcnRpZXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9zY2hlbWEvVHlwZVZpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3NjaGVtYS9FbnVtVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvc2NoZW1hL0RlcGVuZGVudFJlcXVpcmVkVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvc2NoZW1hL0V4YW1wbGVzVmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvZGlzdHJpbWluYXRvci9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEveG1sL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9jb21wb25lbnRzL1NjaGVtYXNWaXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvZWxlbWVudHMvbmNlcy9Db21wb25lbnRzUGF0aEl0ZW1zLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9jb21wb25lbnRzL1BhdGhJdGVtc1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL2V4YW1wbGUvaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL2V4dGVybmFsLWRvY3VtZW50YXRpb24vaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL2VuY29kaW5nL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9wYXRocy9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvcmVxdWVzdC1ib2R5L2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9jYWxsYmFjay9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvcmVzcG9uc2UvaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3Jlc3BvbnNlcy9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvb3BlcmF0aW9uL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9wYXRoLWl0ZW0vaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL3NlY3VyaXR5LXNjaGVtZS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci92aXNpdG9ycy9vcGVuLWFwaS0zLTEvb2F1dGgtZmxvd3MvaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvdmlzaXRvcnMvb3Blbi1hcGktMy0xL29hdXRoLWZsb3cvaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9lbGVtZW50cy9uY2VzL1dlYmhvb2tzLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Zpc2l0b3JzL29wZW4tYXBpLTMtMS9XZWJob29rc1Zpc2l0b3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3Ivc3BlY2lmaWNhdGlvbi5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3RyYXZlcnNhbC92aXNpdG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvbmFtZXNwYWNlLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3Rvb2xib3gubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvcmVnaXN0cmF0aW9uLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tZXJyb3IvZXMvTm90SW1wbGVtZW50ZWRFcnJvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWNvcmUvZXMvbWVkaWEtdHlwZXMubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9tZWRpYS10eXBlcy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9SZWZlcmVuY2UubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvcHJvcEVxLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvUmVmZXJlbmNlU2V0Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tcmVmZXJlbmNlL2VzL29wdGlvbnMvaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvbGVucy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2Fzc29jUGF0aC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19hc3NvYy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL292ZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9vcHRpb25zL3V0aWwubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvdXRpbC9GaWxlLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tcmVmZXJlbmNlL2VzL2Vycm9ycy9QbHVnaW5FcnJvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy91dGlsL3BsdWdpbnMubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvZXJyb3JzL0RlcmVmZXJlbmNlRXJyb3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvZXJyb3JzL1VubWF0Y2hlZERlcmVmZXJlbmNlU3RyYXRlZ3lFcnJvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9kZXJlZmVyZW5jZS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9lcnJvcnMvUGFyc2VFcnJvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9lcnJvcnMvUGFyc2VyRXJyb3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvcGFyc2UvcGFyc2Vycy9QYXJzZXIubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvcGFyc2UvcGFyc2Vycy9iaW5hcnkvaW5kZXgtYnJvd3Nlci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9yZXNvbHZlL3N0cmF0ZWdpZXMvUmVzb2x2ZVN0cmF0ZWd5Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tcmVmZXJlbmNlL2VzL3Jlc29sdmUvc3RyYXRlZ2llcy9vcGVuYXBpLTMtMS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fY2xvbmUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9feHJlZHVjZUJ5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvcmVkdWNlQnkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9ncm91cEJ5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1ucy1vcGVuYXBpLTMtMS9lcy9yZWZyYWN0b3IvcGx1Z2lucy9ub3JtYWxpemUtb3BlcmF0aW9uLWlkcy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9wYXRoT3IuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9feHVuaXFXaXRoLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvdW5pcVdpdGguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci9wbHVnaW5zL25vcm1hbGl6ZS1wYXJhbWV0ZXJzLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3BsdWdpbnMvbm9ybWFsaXplLXNlY3VyaXR5LXJlcXVpcmVtZW50cy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci9wbHVnaW5zL25vcm1hbGl6ZS1zZXJ2ZXJzLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tbnMtb3BlbmFwaS0zLTEvZXMvcmVmcmFjdG9yL3BsdWdpbnMvbm9ybWFsaXplLXBhcmFtZXRlci1leGFtcGxlcy5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLW5zLW9wZW5hcGktMy0xL2VzL3JlZnJhY3Rvci9wbHVnaW5zL25vcm1hbGl6ZS1oZWFkZXItZXhhbXBsZXMubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvc3RyYXRlZ2llcy9vcGVuYXBpLTMtMS1hcGlkb20vbm9ybWFsaXplLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvcmVzb2x2ZS9yZXNvbHZlcnMvUmVzb2x2ZXIubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvcmVzb2x2ZS9yZXNvbHZlcnMvSHR0cFJlc29sdmVyLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tcmVmZXJlbmNlL2VzL2Vycm9ycy9SZXNvbHZlRXJyb3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvZXJyb3JzL1Jlc29sdmVyRXJyb3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvaGVscGVycy9hYm9ydGNvbnRyb2xsZXItcG9ueWZpbGwuYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL2hlbHBlcnMvYWJvcnRjb250cm9sbGVyLXBvbHlmaWxsLmJyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9hcGlkb20vcmVmZXJlbmNlL3Jlc29sdmUvcmVzb2x2ZXJzL2h0dHAtc3dhZ2dlci1jbGllbnQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWNvcmUvZXMvdHJhbnNmb3JtZXJzL2Zyb20ubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvYXBpZG9tL3JlZmVyZW5jZS9wYXJzZS9wYXJzZXJzL2pzb24vaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9hcGlkb20vcmVmZXJlbmNlL3BhcnNlL3BhcnNlcnMveWFtbC0xLTIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9hcGlkb20vcmVmZXJlbmNlL3BhcnNlL3BhcnNlcnMvb3BlbmFwaS1qc29uLTMtMS9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL2FwaWRvbS9yZWZlcmVuY2UvcGFyc2UvcGFyc2Vycy9vcGVuYXBpLXlhbWwtMy0xL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvZGVyZWZlcmVuY2Uvc3RyYXRlZ2llcy9EZXJlZmVyZW5jZVN0cmF0ZWd5Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL25vbmUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWNvcmUvZXMvaWRlbnRpdHkvZXJyb3JzL0VsZW1lbnRJZGVudGl0eUVycm9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy9pZGVudGl0eS9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLWNvcmUvZXMvdHJhdmVyc2FsL2ZpbmQubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvZXJyb3JzL0pzb25TY2hlbWEkYW5jaG9yRXJyb3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvZXJyb3JzL0V2YWx1YXRpb25Kc29uU2NoZW1hJGFuY2hvckVycm9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tcmVmZXJlbmNlL2VzL2Vycm9ycy9JbnZhbGlkSnNvblNjaGVtYSRhbmNob3JFcnJvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9kZXJlZmVyZW5jZS9zdHJhdGVnaWVzL29wZW5hcGktMy0xL3NlbGVjdG9ycy8kYW5jaG9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tY29yZS9lcy90cmF2ZXJzYWwvZmlsdGVyLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tcmVmZXJlbmNlL2VzL2Vycm9ycy9Kc29uU2NoZW1hVXJpRXJyb3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvZXJyb3JzL0V2YWx1YXRpb25Kc29uU2NoZW1hVXJpRXJyb3IubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvZGVyZWZlcmVuY2Uvc3RyYXRlZ2llcy9vcGVuYXBpLTMtMS91dGlsLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tcmVmZXJlbmNlL2VzL2RlcmVmZXJlbmNlL3N0cmF0ZWdpZXMvb3BlbmFwaS0zLTEvc2VsZWN0b3JzL3VyaS5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9lcnJvcnMvTWF4aW11bURlcmVmZXJlbmNlRGVwdGhFcnJvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9lcnJvcnMvTWF4aW11bVJlc29sdmVEZXB0aEVycm9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tcmVmZXJlbmNlL2VzL2Vycm9ycy9Vbm1hdGNoZWRSZXNvbHZlckVycm9yLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tcmVmZXJlbmNlL2VzL3BhcnNlL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tcmVmZXJlbmNlL2VzL3Jlc29sdmUvdXRpbC5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9kZXJlZmVyZW5jZS91dGlsLm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0Bzd2FnZ2VyLWFwaS9hcGlkb20tcmVmZXJlbmNlL2VzL2RlcmVmZXJlbmNlL3N0cmF0ZWdpZXMvb3BlbmFwaS0zLTEvdmlzaXRvci5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9Ac3dhZ2dlci1hcGkvYXBpZG9tLXJlZmVyZW5jZS9lcy9kZXJlZmVyZW5jZS9zdHJhdGVnaWVzL29wZW5hcGktMy0xL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL2FwaWRvbS9yZWZlcmVuY2UvZGVyZWZlcmVuY2Uvc3RyYXRlZ2llcy9vcGVuYXBpLTMtMS1zd2FnZ2VyLWNsaWVudC91dGlscy90by1wYXRoLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvYXBpZG9tL3JlZmVyZW5jZS9kZXJlZmVyZW5jZS9zdHJhdGVnaWVzL29wZW5hcGktMy0xLXN3YWdnZXItY2xpZW50L3V0aWxzL2dldC1yb290LWNhdXNlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvYXBpZG9tL3JlZmVyZW5jZS9kZXJlZmVyZW5jZS9zdHJhdGVnaWVzL29wZW5hcGktMy0xLXN3YWdnZXItY2xpZW50L2Vycm9ycy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL2FwaWRvbS9yZWZlcmVuY2UvZGVyZWZlcmVuY2Uvc3RyYXRlZ2llcy9vcGVuYXBpLTMtMS1zd2FnZ2VyLWNsaWVudC92aXNpdG9ycy9kZXJlZmVyZW5jZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL2FwaWRvbS9yZWZlcmVuY2UvZGVyZWZlcmVuY2Uvc3RyYXRlZ2llcy9vcGVuYXBpLTMtMS1zd2FnZ2VyLWNsaWVudC91dGlscy9jb21wb3NlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvYXBpZG9tL3JlZmVyZW5jZS9kZXJlZmVyZW5jZS9zdHJhdGVnaWVzL29wZW5hcGktMy0xLXN3YWdnZXItY2xpZW50L3Zpc2l0b3JzL3BhcmFtZXRlcnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9hcGlkb20vcmVmZXJlbmNlL2RlcmVmZXJlbmNlL3N0cmF0ZWdpZXMvb3BlbmFwaS0zLTEtc3dhZ2dlci1jbGllbnQvdmlzaXRvcnMvcHJvcGVydGllcy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL2FwaWRvbS9yZWZlcmVuY2UvZGVyZWZlcmVuY2Uvc3RyYXRlZ2llcy9vcGVuYXBpLTMtMS1zd2FnZ2VyLWNsaWVudC92aXNpdG9ycy9hbGwtb2YuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9hcGlkb20vcmVmZXJlbmNlL2RlcmVmZXJlbmNlL3N0cmF0ZWdpZXMvb3BlbmFwaS0zLTEtc3dhZ2dlci1jbGllbnQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9zdHJhdGVnaWVzL29wZW5hcGktMy0xLWFwaWRvbS9yZXNvbHZlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1yZWZlcmVuY2UvZXMvaW5kZXgubWpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQHN3YWdnZXItYXBpL2FwaWRvbS1jb3JlL2VzL3RyYW5zY2x1ZGVyL2luZGV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvb3BlbmFwaS0zLTEtYXBpZG9tL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9ub2RlX21vZHVsZXMvaXMtcGxhaW4tb2JqZWN0L2Rpc3QvaXMtcGxhaW4tb2JqZWN0Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL2V4ZWN1dGUvc3dhZ2dlcjIvcGFyYW1ldGVyLWJ1aWxkZXJzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvZXhlY3V0ZS9vYXMzL2NvbnRlbnQtc2VyaWFsaXplci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL2V4ZWN1dGUvb2FzMy9wYXJhbWV0ZXItYnVpbGRlcnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9oZWxwZXJzL2J0b2EuYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL2V4ZWN1dGUvb2FzMy9idWlsZC1yZXF1ZXN0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvZXhlY3V0ZS9zd2FnZ2VyMi9idWlsZC1yZXF1ZXN0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvaGVscGVycy9pZC1mcm9tLXBhdGgtbWV0aG9kL2xlZ2FjeS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL2V4ZWN1dGUvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9oZWxwZXJzL2dldC1vcGVyYXRpb24tcmF3LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvc3dhZ2dlci1jbGllbnQvZXMvaGVscGVycy9maW5kLW9wZXJhdGlvbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3N3YWdnZXItY2xpZW50L2VzL2hlbHBlcnMvZWFjaC1vcGVyYXRpb24uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9zd2FnZ2VyLWNsaWVudC9lcy9zdWJ0cmVlLXJlc29sdmVyL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3N3YWdnZXItY2xpZW50L2NvbmZpZ3Mtd3JhcC1hY3Rpb25zLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3N3YWdnZXItY2xpZW50L2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3V0aWwvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZWR1eC9kaXN0L3JlYWN0LXJlZHV4Lm1qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy92aWV3L3Jvb3QtaW5qZWN0cy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvdmlldy9mbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy92aWV3L2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3ZpZXctbGVnYWN5L2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3ZpZXctbGVnYWN5L3Jvb3QtaW5qZWN0cy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvZG93bmxvYWQtdXJsL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0V2l0aG91dFByb3BlcnRpZXMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlMaWtlVG9BcnJheS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRob3V0SG9sZXMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pdGVyYWJsZVRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL25vbkl0ZXJhYmxlU3ByZWFkLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9Qcm9wZXJ0eUtleS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvUHJpbWl0aXZlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2NyZWF0ZS1lbGVtZW50LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2NoZWNrRm9yTGlzdGVkTGFuZ3VhZ2UuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vaGlnaGxpZ2h0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xpZ2h0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL2phdmFzY3JpcHQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL2hsanMvanNvbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy94bWwuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL2hsanMvYmFzaC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy95YW1sLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL2h0dHAuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL2hsanMvcG93ZXJzaGVsbC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9zeW50YXgtaGlnaGxpZ2h0aW5nL2FmdGVyLWxvYWQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvYWdhdGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvc3ludGF4LWhpZ2hsaWdodGluZy9yb290LWluamVjdHMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvYXJ0YS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9zdHlsZXMvaGxqcy9tb25va2FpLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL3N0eWxlcy9obGpzL25vcmQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvb2JzaWRpYW4uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvdG9tb3Jyb3ctbmlnaHQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvaWRlYS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9zeW50YXgtaGlnaGxpZ2h0aW5nL2NvbXBvbmVudHMvU3ludGF4SGlnaGxpZ2h0ZXIuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3N5bnRheC1oaWdobGlnaHRpbmcvY29tcG9uZW50cy9IaWdobGlnaHRDb2RlLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9zeW50YXgtaGlnaGxpZ2h0aW5nL2NvbXBvbmVudHMvUGxhaW5UZXh0Vmlld2VyLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9zeW50YXgtaGlnaGxpZ2h0aW5nL3dyYXAtY29tcG9uZW50cy9TeW50YXhIaWdobGlnaHRlci5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvc3ludGF4LWhpZ2hsaWdodGluZy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy92ZXJzaW9ucy9hZnRlci1sb2FkLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3ZlcnNpb25zL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL3NhZmUtcmVuZGVyL2ZuLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9zYWZlLXJlbmRlci9jb21wb25lbnRzL2ZhbGxiYWNrLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9zYWZlLXJlbmRlci9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9zYWZlLXJlbmRlci9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9hcHAuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL2F1dGgvYXV0aG9yaXphdGlvbi1wb3B1cC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvYXV0aC9hdXRob3JpemUtYnRuLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29udGFpbmVycy9hdXRob3JpemUtYnRuLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9hdXRoL2F1dGhvcml6ZS1vcGVyYXRpb24tYnRuLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9hdXRoL2F1dGhzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9hdXRoL2F1dGgtaXRlbS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvYXV0aC9lcnJvci5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvYXV0aC9hcGkta2V5LWF1dGguanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL2F1dGgvYmFzaWMtYXV0aC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvZXhhbXBsZS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvZXhhbXBsZXMtc2VsZWN0LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9leGFtcGxlcy1zZWxlY3QtdmFsdWUtcmV0YWluZXIuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9vYXV0aDItYXV0aG9yaXplLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL2F1dGgvb2F1dGgyLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9jbGVhci5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvbGl2ZS1yZXNwb25zZS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvb25saW5lLXZhbGlkYXRvci1iYWRnZS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvb3BlcmF0aW9ucy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3V0aWxzL3VybC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9vcGVyYXRpb24tdGFnLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9vcGVyYXRpb24uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb250YWluZXJzL09wZXJhdGlvbkNvbnRhaW5lci5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvb3BlcmF0aW9uLXN1bW1hcnkuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL29wZXJhdGlvbi1zdW1tYXJ5LW1ldGhvZC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvb3BlcmF0aW9uLXN1bW1hcnktcGF0aC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvb3BlcmF0aW9uLWV4dGVuc2lvbnMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL29wZXJhdGlvbi1leHRlbnNpb24tcm93LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvdXRpbHMvY3JlYXRlLWh0bWwtcmVhZHktaWQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvcmVzcG9uc2VzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvdXRpbHMvanNvblBhcnNlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL3Jlc3BvbnNlLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9yZXNwb25zZS1leHRlbnNpb24uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL3Jlc3BvbnNlLWJvZHkuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL3BhcmFtZXRlcnMvcGFyYW1ldGVycy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvcGFyYW1ldGVyLWV4dGVuc2lvbi5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvcGFyYW1ldGVyLWluY2x1ZGUtZW1wdHkuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL3BhcmFtZXRlci1yb3cuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL2V4ZWN1dGUuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL2hlYWRlcnMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL2Vycm9ycy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvY29udGVudC10eXBlLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9sYXlvdXQtdXRpbHMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL292ZXJ2aWV3LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9pbml0aWFsaXplZC1pbnB1dC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvaW5mby5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbnRhaW5lcnMvaW5mby5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvY29udGFjdC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvbGljZW5zZS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvanVtcC10by1wYXRoLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9jb3B5LXRvLWNsaXBib2FyZC1idG4uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL2Zvb3Rlci5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbnRhaW5lcnMvZmlsdGVyLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9wYXJhbS1ib2R5LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9jdXJsLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9wcm9wZXJ0eS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvdHJ5LWl0LW91dC1idXR0b24uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL3ZlcnNpb24tcHJhZ21hLWZpbHRlci5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvdmVyc2lvbi1zdGFtcC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvb3BlbmFwaS12ZXJzaW9uLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9kZWVwLWxpbmsuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL3N2Zy1hc3NldHMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvcmVtYXJrYWJsZS9kaXN0L2VzbS9pbmRleC5icm93c2VyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvYXV0b2xpbmtlci9kaXN0L2VzMjAxNS91dGlscy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2F1dG9saW5rZXIvZGlzdC9lczIwMTUvaHRtbC10YWcuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9hdXRvbGlua2VyL2Rpc3QvZXMyMDE1L2FuY2hvci10YWctYnVpbGRlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2F1dG9saW5rZXIvZGlzdC9lczIwMTUvdHJ1bmNhdGUvdHJ1bmNhdGUtc21hcnQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9hdXRvbGlua2VyL2Rpc3QvZXMyMDE1L3RydW5jYXRlL3RydW5jYXRlLW1pZGRsZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2F1dG9saW5rZXIvZGlzdC9lczIwMTUvdHJ1bmNhdGUvdHJ1bmNhdGUtZW5kLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvYXV0b2xpbmtlci9kaXN0L2VzMjAxNS9tYXRjaC9tYXRjaC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5tanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9hdXRvbGlua2VyL2Rpc3QvZXMyMDE1L21hdGNoL2VtYWlsLW1hdGNoLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvYXV0b2xpbmtlci9kaXN0L2VzMjAxNS9tYXRjaGVyL3VybC1tYXRjaGVyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvYXV0b2xpbmtlci9kaXN0L2VzMjAxNS9tYXRjaC9oYXNodGFnLW1hdGNoLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvYXV0b2xpbmtlci9kaXN0L2VzMjAxNS9tYXRjaC9tZW50aW9uLW1hdGNoLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvYXV0b2xpbmtlci9kaXN0L2VzMjAxNS9tYXRjaC9waG9uZS1tYXRjaC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2F1dG9saW5rZXIvZGlzdC9lczIwMTUvbWF0Y2gvdXJsLW1hdGNoLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvYXV0b2xpbmtlci9kaXN0L2VzMjAxNS9tYXRjaGVyL21hdGNoZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9hdXRvbGlua2VyL2Rpc3QvZXMyMDE1L3JlZ2V4LWxpYi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2F1dG9saW5rZXIvZGlzdC9lczIwMTUvbWF0Y2hlci90bGQtcmVnZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy9hdXRvbGlua2VyL2Rpc3QvZXMyMDE1L21hdGNoZXIvZW1haWwtbWF0Y2hlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2F1dG9saW5rZXIvZGlzdC9lczIwMTUvbWF0Y2hlci91cmwtbWF0Y2gtdmFsaWRhdG9yLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvYXV0b2xpbmtlci9kaXN0L2VzMjAxNS9tYXRjaGVyL2hhc2h0YWctbWF0Y2hlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2F1dG9saW5rZXIvZGlzdC9lczIwMTUvbWF0Y2hlci9waG9uZS1tYXRjaGVyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvYXV0b2xpbmtlci9kaXN0L2VzMjAxNS9tYXRjaGVyL21lbnRpb24tbWF0Y2hlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL2F1dG9saW5rZXIvZGlzdC9lczIwMTUvaHRtbFBhcnNlci9wYXJzZS1odG1sLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvYXV0b2xpbmtlci9kaXN0L2VzMjAxNS9hdXRvbGlua2VyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvYXV0b2xpbmtlci9kaXN0L2VzMjAxNS92ZXJzaW9uLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvYXV0b2xpbmtlci9kaXN0L2VzMjAxNS9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3JlbWFya2FibGUvZGlzdC9lc20vbGlua2lmeS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29tcG9uZW50cy9wcm92aWRlcnMvbWFya2Rvd24uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb21wb25lbnRzL2xheW91dHMvYmFzZS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3ByZXNldHMvYmFzZS9wbHVnaW5zL2NvcmUtY29tcG9uZW50cy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcHJlc2V0cy9iYXNlL3BsdWdpbnMvZm9ybS1jb21wb25lbnRzL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wcmVzZXRzL2Jhc2UvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9zcGVjLWV4dGVuc2lvbnMvd3JhcC1zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9hdXRoLWV4dGVuc2lvbnMvd3JhcC1zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9oZWxwZXJzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL3NwZWMtZXh0ZW5zaW9ucy9zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9jb21wb25lbnRzL2NhbGxiYWNrcy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9jb21wb25lbnRzL3JlcXVlc3QtYm9keS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9jb21wb25lbnRzL29wZXJhdGlvbi1saW5rLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL2NvbXBvbmVudHMvc2VydmVycy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9jb21wb25lbnRzL3NlcnZlcnMtY29udGFpbmVyLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL2NvbXBvbmVudHMvcmVxdWVzdC1ib2R5LWVkaXRvci5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9jb21wb25lbnRzL2F1dGgvaHR0cC1hdXRoLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL2NvbXBvbmVudHMvb3BlcmF0aW9uLXNlcnZlcnMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvY29tcG9uZW50cy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL3dyYXAtY29tcG9uZW50cy9tYXJrZG93bi5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy93cmFwLWNvbXBvbmVudHMvYXV0aC9hdXRoLWl0ZW0uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvd3JhcC1jb21wb25lbnRzL29ubGluZS12YWxpZGF0b3ItYmFkZ2UuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy93cmFwLWNvbXBvbmVudHMvbW9kZWwuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvd3JhcC1jb21wb25lbnRzL2pzb24tc2NoZW1hLXN0cmluZy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy93cmFwLWNvbXBvbmVudHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy93cmFwLWNvbXBvbmVudHMvb3BlbmFwaS12ZXJzaW9uLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL2FjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9yZWR1Y2Vycy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2NvbXBvbmVudHMvd2ViaG9va3MuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2NvbXBvbmVudHMvbGljZW5zZS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvY29tcG9uZW50cy9jb250YWN0LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9jb21wb25lbnRzL2luZm8uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2NvbXBvbmVudHMvanNvbi1zY2hlbWEtZGlhbGVjdC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvY29tcG9uZW50cy92ZXJzaW9uLXByYWdtYS1maWx0ZXIuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2NvbXBvbmVudHMvbW9kZWwvbW9kZWwuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2NvbXBvbmVudHMvbW9kZWxzL21vZGVscy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvY29tcG9uZW50cy9hdXRoL211dHVhbC10bHMtYXV0aC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvY29tcG9uZW50cy9hdXRoL2F1dGhzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9mbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS93cmFwLWNvbXBvbmVudHMvbGljZW5zZS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvd3JhcC1jb21wb25lbnRzL2NvbnRhY3QuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL3dyYXAtY29tcG9uZW50cy9pbmZvLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS93cmFwLWNvbXBvbmVudHMvbW9kZWwuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL3dyYXAtY29tcG9uZW50cy9tb2RlbHMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL3dyYXAtY29tcG9uZW50cy92ZXJzaW9uLXByYWdtYS1maWx0ZXIuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL3dyYXAtY29tcG9uZW50cy9hdXRoL2F1dGgtaXRlbS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvd3JhcC1jb21wb25lbnRzL2F1dGhzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9zcGVjLWV4dGVuc2lvbnMvc2VsZWN0b3JzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL3NwZWMtZXh0ZW5zaW9ucy93cmFwLXNlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9hdXRoLWV4dGVuc2lvbnMvd3JhcC1zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvc2VsZWN0b3JzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2pzb24tc2NoZW1hLTIwMjAtMTItZXh0ZW5zaW9ucy9jb21wb25lbnRzL2tleXdvcmRzL0V4YW1wbGUuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2pzb24tc2NoZW1hLTIwMjAtMTItZXh0ZW5zaW9ucy9jb21wb25lbnRzL2tleXdvcmRzL1htbC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvanNvbi1zY2hlbWEtMjAyMC0xMi1leHRlbnNpb25zL2NvbXBvbmVudHMva2V5d29yZHMvRGlzY3JpbWluYXRvci9EaXNjcmltaW5hdG9yTWFwcGluZy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvanNvbi1zY2hlbWEtMjAyMC0xMi1leHRlbnNpb25zL2NvbXBvbmVudHMva2V5d29yZHMvRGlzY3JpbWluYXRvci9EaXNjcmltaW5hdG9yLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvY29tcG9uZW50cy9rZXl3b3Jkcy9FeHRlcm5hbERvY3MuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2pzb24tc2NoZW1hLTIwMjAtMTItZXh0ZW5zaW9ucy9jb21wb25lbnRzL2tleXdvcmRzL0Rlc2NyaXB0aW9uLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvd3JhcC1jb21wb25lbnRzL2tleXdvcmRzL0Rlc2NyaXB0aW9uLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvd3JhcC1jb21wb25lbnRzL2tleXdvcmRzL0RlZmF1bHQuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2pzb24tc2NoZW1hLTIwMjAtMTItZXh0ZW5zaW9ucy9jb21wb25lbnRzL2tleXdvcmRzL1Byb3BlcnRpZXMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2pzb24tc2NoZW1hLTIwMjAtMTItZXh0ZW5zaW9ucy93cmFwLWNvbXBvbmVudHMva2V5d29yZHMvUHJvcGVydGllcy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvanNvbi1zY2hlbWEtMjAyMC0xMi1leHRlbnNpb25zL2ZuLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2FmdGVyLWxvYWQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9wcm9wLXR5cGVzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29udGV4dC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2hvb2tzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9KU09OU2NoZW1hL0pTT05TY2hlbWEuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy8kc2NoZW1hLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvJHZvY2FidWxhcnkvJHZvY2FidWxhcnkuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy8kaWQuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy8kYW5jaG9yLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvJGR5bmFtaWNBbmNob3IuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy8kcmVmLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvJGR5bmFtaWNSZWYuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy8kZGVmcy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzLyRjb21tZW50LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvQWxsT2YuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9BbnlPZi5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL09uZU9mLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvTm90LmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvSWYuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9UaGVuLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvRWxzZS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0RlcGVuZGVudFNjaGVtYXMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9QcmVmaXhJdGVtcy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0l0ZW1zLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvQ29udGFpbnMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9Qcm9wZXJ0aWVzL1Byb3BlcnRpZXMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9QYXR0ZXJuUHJvcGVydGllcy9QYXR0ZXJuUHJvcGVydGllcy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0FkZGl0aW9uYWxQcm9wZXJ0aWVzLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvUHJvcGVydHlOYW1lcy5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL1VuZXZhbHVhdGVkSXRlbXMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9VbmV2YWx1YXRlZFByb3BlcnRpZXMuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9UeXBlLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvRW51bS9FbnVtLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvQ29uc3QuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9Db25zdHJhaW50L0NvbnN0cmFpbnQuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9EZXBlbmRlbnRSZXF1aXJlZC9EZXBlbmRlbnRSZXF1aXJlZC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0NvbnRlbnRTY2hlbWEuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9UaXRsZS9UaXRsZS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0Rlc2NyaXB0aW9uL0Rlc2NyaXB0aW9uLmpzeCIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvRGVmYXVsdC5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0RlcHJlY2F0ZWQuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9SZWFkT25seS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL1dyaXRlT25seS5qc3giLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL0FjY29yZGlvbi9BY2NvcmRpb24uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9FeHBhbmREZWVwQnV0dG9uL0V4cGFuZERlZXBCdXR0b24uanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9pY29ucy9DaGV2cm9uUmlnaHQuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvZm4uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9ob2MuanN4Iiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL3R5cGVzL2FycmF5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi90eXBlcy9vYmplY3QuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2NvcmUvcmFuZG9tLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9jb3JlL3ByZWRpY2F0ZXMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2NsYXNzL1JlZ2lzdHJ5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2ludDMyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2ludDY0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2Zsb2F0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2RvdWJsZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9lbWFpbC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9pZG4tZW1haWwuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvaG9zdG5hbWUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvaWRuLWhvc3RuYW1lLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2lwdjQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvaXB2Ni5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy91cmkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvdXJpLXJlZmVyZW5jZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9pcmkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvaXJpLXJlZmVyZW5jZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy91dWlkLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL3VyaS10ZW1wbGF0ZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9qc29uLXBvaW50ZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvcmVsYXRpdmUtanNvbi1wb2ludGVyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2RhdGUtdGltZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9kYXRlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL3RpbWUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvZHVyYXRpb24uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvcGFzc3dvcmQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvcmVnZXguanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2NsYXNzL0Zvcm1hdFJlZ2lzdHJ5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9hcGkvZm9ybWF0QVBJLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9lbmNvZGVycy83Yml0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9lbmNvZGVycy84Yml0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9lbmNvZGVycy9iaW5hcnkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2VuY29kZXJzL3F1b3RlZC1wcmludGFibGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2VuY29kZXJzL2Jhc2UxNi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZW5jb2RlcnMvYmFzZTMyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9lbmNvZGVycy9iYXNlNjQuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2VuY29kZXJzL2Jhc2U2NHVybC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vY2xhc3MvRW5jb2RlclJlZ2lzdHJ5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9hcGkvZW5jb2RlckFQSS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9tZWRpYS10eXBlcy90ZXh0LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL21lZGlhLXR5cGVzL2ltYWdlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL21lZGlhLXR5cGVzL2F1ZGlvLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL21lZGlhLXR5cGVzL3ZpZGVvLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL21lZGlhLXR5cGVzL2FwcGxpY2F0aW9uLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9jbGFzcy9NZWRpYVR5cGVSZWdpc3RyeS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vYXBpL21lZGlhVHlwZUFQSS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vdHlwZXMvc3RyaW5nLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi90eXBlcy9udW1iZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL3R5cGVzL2ludGVnZXIuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL3R5cGVzL2Jvb2xlYW4uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL3R5cGVzL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi90eXBlcy9udWxsLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9jb3JlL2NvbnN0YW50cy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vY29yZS9leGFtcGxlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9jb3JlL3R5cGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2NvcmUvdXRpbHMuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2NvcmUvbWVyZ2UuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL21haW4uanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2NsYXNzL09wdGlvblJlZ2lzdHJ5LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9hcGkvb3B0aW9uQVBJLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZXQtanNvbi1zYW1wbGUtc2NoZW1hLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZXQteWFtbC1zYW1wbGUtc2NoZW1hLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZXQteG1sLXNhbXBsZS1zY2hlbWEuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dldC1zYW1wbGUtc2NoZW1hLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcHJlc2V0cy9hcGlzL2luZGV4LmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb25maWcvZmFjdG9yaXphdGlvbi9pbmxpbmUtcGx1Z2luLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb25maWcvZmFjdG9yaXphdGlvbi9zdG9yZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL3NvdXJjZXMvcXVlcnkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbmZpZy9zb3VyY2VzL3VybC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL3NvdXJjZXMvcnVudGltZS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL2RlZmF1bHRzLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb25maWcvdHlwZS1jYXN0L3R5cGUtY2FzdGVycy9hcnJheS5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvYm9vbGVhbi5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvZG9tLW5vZGUuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbmZpZy90eXBlLWNhc3QvdHlwZS1jYXN0ZXJzL2ZpbHRlci5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvbnVsbGFibGUtYXJyYXkuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbmZpZy90eXBlLWNhc3QvdHlwZS1jYXN0ZXJzL251bGxhYmxlLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvbnVtYmVyLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9jb25maWcvdHlwZS1jYXN0L3R5cGUtY2FzdGVycy9vYmplY3QuanMiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL2NvbmZpZy90eXBlLWNhc3QvdHlwZS1jYXN0ZXJzL3N0cmluZy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvc3ludGF4LWhpZ2hsaWdodC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvdW5kZWZpbmVkLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC9tYXBwaW5ncy5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvY29uZmlnL21lcmdlLmpzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9pbmRleC5qcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2luZGV4LmpzIl0sIm5hbWVzIjpbImxlYWZQcm90b3R5cGVzIiwiZ2V0UHJvdG8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIkJMQU5LX1VSTCIsInJlbGF0aXZlRmlyc3RDaGFyYWN0ZXJzIiwidXJsU2NoZW1lUmVnZXgiLCJjdHJsQ2hhcmFjdGVyc1JlZ2V4IiwiaHRtbEN0cmxFbnRpdHlSZWdleCIsImh0bWxFbnRpdGllc1JlZ2V4IiwiaW52YWxpZFByb3RvY29sUmVnZXgiLCJjb25zdGFudHNfMSIsInNhbml0aXplVXJsIiwidXJsIiwiY2hhcnNUb0RlY29kZSIsInN0ciIsImRlY29kZWRVcmwiLCJyZXBsYWNlIiwibWF0Y2giLCJkZWMiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJ0cmltIiwibGVuZ3RoIiwic2FuaXRpemVkVXJsIiwiaXNSZWxhdGl2ZVVybFdpdGhvdXRQcm90b2NvbCIsImluZGV4T2YiLCJ1cmxTY2hlbWVQYXJzZVJlc3VsdHMiLCJ1cmxTY2hlbWUiLCJ0ZXN0IiwiYnl0ZUxlbmd0aCIsImI2NCIsImxlbnMiLCJnZXRMZW5zIiwidmFsaWRMZW4iLCJwbGFjZUhvbGRlcnNMZW4iLCJ0b0J5dGVBcnJheSIsInRtcCIsImkiLCJhcnIiLCJBcnIiLCJfYnl0ZUxlbmd0aCIsImN1ckJ5dGUiLCJsZW4iLCJyZXZMb29rdXAiLCJjaGFyQ29kZUF0IiwiZnJvbUJ5dGVBcnJheSIsInVpbnQ4IiwiZXh0cmFCeXRlcyIsInBhcnRzIiwibWF4Q2h1bmtMZW5ndGgiLCJsZW4yIiwicHVzaCIsImVuY29kZUNodW5rIiwibG9va3VwIiwiam9pbiIsIlVpbnQ4QXJyYXkiLCJBcnJheSIsImNvZGUiLCJFcnJvciIsInN0YXJ0IiwiZW5kIiwibnVtIiwib3V0cHV0IiwiYmFzZTY0IiwiaWVlZTc1NCIsImN1c3RvbUluc3BlY3RTeW1ib2wiLCJTeW1ib2wiLCJCdWZmZXIiLCJTbG93QnVmZmVyIiwiYWxsb2MiLCJJTlNQRUNUX01BWF9CWVRFUyIsIktfTUFYX0xFTkdUSCIsImNyZWF0ZUJ1ZmZlciIsIlJhbmdlRXJyb3IiLCJidWYiLCJzZXRQcm90b3R5cGVPZiIsInByb3RvdHlwZSIsImFyZyIsImVuY29kaW5nT3JPZmZzZXQiLCJUeXBlRXJyb3IiLCJhbGxvY1Vuc2FmZSIsImZyb20iLCJmcm9tU3RyaW5nIiwic3RyaW5nIiwiZW5jb2RpbmciLCJpc0VuY29kaW5nIiwiYWN0dWFsIiwid3JpdGUiLCJzbGljZSIsIkFycmF5QnVmZmVyIiwiaXNWaWV3IiwiZnJvbUFycmF5VmlldyIsImFycmF5VmlldyIsImlzSW5zdGFuY2UiLCJjb3B5IiwiZnJvbUFycmF5QnVmZmVyIiwiYnVmZmVyIiwiYnl0ZU9mZnNldCIsImZyb21BcnJheUxpa2UiLCJTaGFyZWRBcnJheUJ1ZmZlciIsInZhbHVlT2YiLCJiIiwiZnJvbU9iamVjdCIsIm9iaiIsImlzQnVmZmVyIiwiY2hlY2tlZCIsInVuZGVmaW5lZCIsIm51bWJlcklzTmFOIiwidHlwZSIsImlzQXJyYXkiLCJkYXRhIiwidG9QcmltaXRpdmUiLCJhc3NlcnRTaXplIiwic2l6ZSIsImFycmF5IiwidG9TdHJpbmciLCJtdXN0TWF0Y2giLCJhcmd1bWVudHMiLCJsb3dlcmVkQ2FzZSIsInV0ZjhUb0J5dGVzIiwiYmFzZTY0VG9CeXRlcyIsInRvTG93ZXJDYXNlIiwic2xvd1RvU3RyaW5nIiwidGhpcyIsImhleFNsaWNlIiwidXRmOFNsaWNlIiwiYXNjaWlTbGljZSIsImxhdGluMVNsaWNlIiwiYmFzZTY0U2xpY2UiLCJ1dGYxNmxlU2xpY2UiLCJzd2FwIiwibiIsIm0iLCJiaWRpcmVjdGlvbmFsSW5kZXhPZiIsInZhbCIsImRpciIsImFycmF5SW5kZXhPZiIsImNhbGwiLCJsYXN0SW5kZXhPZiIsImluZGV4U2l6ZSIsImFyckxlbmd0aCIsInZhbExlbmd0aCIsInJlYWQiLCJyZWFkVUludDE2QkUiLCJmb3VuZEluZGV4IiwiZm91bmQiLCJqIiwiaGV4V3JpdGUiLCJvZmZzZXQiLCJOdW1iZXIiLCJyZW1haW5pbmciLCJzdHJMZW4iLCJwYXJzZWQiLCJwYXJzZUludCIsInN1YnN0ciIsInV0ZjhXcml0ZSIsImJsaXRCdWZmZXIiLCJhc2NpaVdyaXRlIiwiYXNjaWlUb0J5dGVzIiwiYnl0ZUFycmF5IiwiYmFzZTY0V3JpdGUiLCJ1Y3MyV3JpdGUiLCJ1dGYxNmxlVG9CeXRlcyIsInVuaXRzIiwiYyIsImhpIiwibG8iLCJNYXRoIiwibWluIiwicmVzIiwiZmlyc3RCeXRlIiwiY29kZVBvaW50IiwiYnl0ZXNQZXJTZXF1ZW5jZSIsInNlY29uZEJ5dGUiLCJ0aGlyZEJ5dGUiLCJmb3VydGhCeXRlIiwidGVtcENvZGVQb2ludCIsImRlY29kZUNvZGVQb2ludHNBcnJheSIsImNvZGVQb2ludHMiLCJNQVhfQVJHVU1FTlRTX0xFTkdUSCIsImFwcGx5Iiwia01heExlbmd0aCIsIlRZUEVEX0FSUkFZX1NVUFBPUlQiLCJ0eXBlZEFycmF5U3VwcG9ydCIsInByb3RvIiwiZm9vIiwiZSIsImNvbnNvbGUiLCJlcnJvciIsImVudW1lcmFibGUiLCJnZXQiLCJwb29sU2l6ZSIsImZpbGwiLCJhbGxvY1Vuc2FmZVNsb3ciLCJfaXNCdWZmZXIiLCJjb21wYXJlIiwiYSIsIngiLCJ5IiwiY29uY2F0IiwibGlzdCIsInBvcyIsInNldCIsInN3YXAxNiIsInN3YXAzMiIsInN3YXA2NCIsInRvTG9jYWxlU3RyaW5nIiwiZXF1YWxzIiwiaW5zcGVjdCIsIm1heCIsInRhcmdldCIsInRoaXNTdGFydCIsInRoaXNFbmQiLCJ0aGlzQ29weSIsInRhcmdldENvcHkiLCJpbmNsdWRlcyIsImlzRmluaXRlIiwidG9KU09OIiwiX2FyciIsInJldCIsIm91dCIsImhleFNsaWNlTG9va3VwVGFibGUiLCJieXRlcyIsImNoZWNrT2Zmc2V0IiwiZXh0IiwiY2hlY2tJbnQiLCJ3cnRCaWdVSW50NjRMRSIsImNoZWNrSW50QkkiLCJCaWdJbnQiLCJ3cnRCaWdVSW50NjRCRSIsImNoZWNrSUVFRTc1NCIsIndyaXRlRmxvYXQiLCJsaXR0bGVFbmRpYW4iLCJub0Fzc2VydCIsIndyaXRlRG91YmxlIiwibmV3QnVmIiwic3ViYXJyYXkiLCJyZWFkVWludExFIiwicmVhZFVJbnRMRSIsIm11bCIsInJlYWRVaW50QkUiLCJyZWFkVUludEJFIiwicmVhZFVpbnQ4IiwicmVhZFVJbnQ4IiwicmVhZFVpbnQxNkxFIiwicmVhZFVJbnQxNkxFIiwicmVhZFVpbnQxNkJFIiwicmVhZFVpbnQzMkxFIiwicmVhZFVJbnQzMkxFIiwicmVhZFVpbnQzMkJFIiwicmVhZFVJbnQzMkJFIiwicmVhZEJpZ1VJbnQ2NExFIiwiZGVmaW5lQmlnSW50TWV0aG9kIiwidmFsaWRhdGVOdW1iZXIiLCJmaXJzdCIsImxhc3QiLCJib3VuZHNFcnJvciIsInJlYWRCaWdVSW50NjRCRSIsInJlYWRJbnRMRSIsInBvdyIsInJlYWRJbnRCRSIsInJlYWRJbnQ4IiwicmVhZEludDE2TEUiLCJyZWFkSW50MTZCRSIsInJlYWRJbnQzMkxFIiwicmVhZEludDMyQkUiLCJyZWFkQmlnSW50NjRMRSIsInJlYWRCaWdJbnQ2NEJFIiwicmVhZEZsb2F0TEUiLCJyZWFkRmxvYXRCRSIsInJlYWREb3VibGVMRSIsInJlYWREb3VibGVCRSIsIndyaXRlVWludExFIiwid3JpdGVVSW50TEUiLCJ3cml0ZVVpbnRCRSIsIndyaXRlVUludEJFIiwid3JpdGVVaW50OCIsIndyaXRlVUludDgiLCJ3cml0ZVVpbnQxNkxFIiwid3JpdGVVSW50MTZMRSIsIndyaXRlVWludDE2QkUiLCJ3cml0ZVVJbnQxNkJFIiwid3JpdGVVaW50MzJMRSIsIndyaXRlVUludDMyTEUiLCJ3cml0ZVVpbnQzMkJFIiwid3JpdGVVSW50MzJCRSIsIndyaXRlQmlnVUludDY0TEUiLCJ3cml0ZUJpZ1VJbnQ2NEJFIiwid3JpdGVJbnRMRSIsImxpbWl0Iiwic3ViIiwid3JpdGVJbnRCRSIsIndyaXRlSW50OCIsIndyaXRlSW50MTZMRSIsIndyaXRlSW50MTZCRSIsIndyaXRlSW50MzJMRSIsIndyaXRlSW50MzJCRSIsIndyaXRlQmlnSW50NjRMRSIsIndyaXRlQmlnSW50NjRCRSIsIndyaXRlRmxvYXRMRSIsIndyaXRlRmxvYXRCRSIsIndyaXRlRG91YmxlTEUiLCJ3cml0ZURvdWJsZUJFIiwidGFyZ2V0U3RhcnQiLCJjb3B5V2l0aGluIiwiZXJyb3JzIiwiRSIsInN5bSIsImdldE1lc3NhZ2UiLCJCYXNlIiwiTm9kZUVycm9yIiwiY29uc3RydWN0b3IiLCJzdXBlciIsIndyaXRhYmxlIiwiY29uZmlndXJhYmxlIiwibmFtZSIsInN0YWNrIiwibWVzc2FnZSIsImFkZE51bWVyaWNhbFNlcGFyYXRvciIsInJhbmdlIiwiRVJSX09VVF9PRl9SQU5HRSIsImNoZWNrQm91bmRzIiwiRVJSX0lOVkFMSURfQVJHX1RZUEUiLCJmbG9vciIsIkVSUl9CVUZGRVJfT1VUX09GX0JPVU5EUyIsImlucHV0IiwibXNnIiwicmVjZWl2ZWQiLCJpc0ludGVnZXIiLCJhYnMiLCJJTlZBTElEX0JBU0U2NF9SRSIsIkluZmluaXR5IiwibGVhZFN1cnJvZ2F0ZSIsImJhc2U2NGNsZWFuIiwic3BsaXQiLCJzcmMiLCJkc3QiLCJhbHBoYWJldCIsInRhYmxlIiwiaTE2IiwiZm4iLCJCdWZmZXJCaWdJbnROb3REZWZpbmVkIiwiR2V0SW50cmluc2ljIiwiY2FsbEJpbmQiLCIkaW5kZXhPZiIsIm1vZHVsZSIsImNhbGxCb3VuZEludHJpbnNpYyIsImFsbG93TWlzc2luZyIsImludHJpbnNpYyIsImJpbmQiLCJzZXRGdW5jdGlvbkxlbmd0aCIsIiRUeXBlRXJyb3IiLCIkYXBwbHkiLCIkY2FsbCIsIiRyZWZsZWN0QXBwbHkiLCIkZGVmaW5lUHJvcGVydHkiLCIkbWF4Iiwib3JpZ2luYWxGdW5jdGlvbiIsImZ1bmMiLCJhcHBseUJpbmQiLCJwYXJzZSIsIm9wdGlvbnMiLCJkZWNvZGUiLCJpbmRleCIsImVxSWR4IiwiZW5kSWR4Iiwia2V5IiwidHJ5RGVjb2RlIiwic2VyaWFsaXplIiwib3B0IiwiZW5jIiwiZW5jb2RlIiwiZmllbGRDb250ZW50UmVnRXhwIiwibWF4QWdlIiwiaXNOYU4iLCJkb21haW4iLCJwYXRoIiwiZXhwaXJlcyIsImlzRGF0ZSIsIl9fdG9TdHJpbmciLCJEYXRlIiwidG9VVENTdHJpbmciLCJodHRwT25seSIsInNlY3VyZSIsInBhcnRpdGlvbmVkIiwicHJpb3JpdHkiLCJzYW1lU2l0ZSIsImRlY29kZVVSSUNvbXBvbmVudCIsImVuY29kZVVSSUNvbXBvbmVudCIsImRlc2VsZWN0Q3VycmVudCIsImNsaXBib2FyZFRvSUUxMUZvcm1hdHRpbmciLCJ0ZXh0IiwiZGVidWciLCJyZXNlbGVjdFByZXZpb3VzIiwic2VsZWN0aW9uIiwibWFyayIsInN1Y2Nlc3MiLCJkb2N1bWVudCIsImNyZWF0ZVJhbmdlIiwiZ2V0U2VsZWN0aW9uIiwiY3JlYXRlRWxlbWVudCIsInRleHRDb250ZW50IiwiYXJpYUhpZGRlbiIsInN0eWxlIiwiYWxsIiwicG9zaXRpb24iLCJ0b3AiLCJjbGlwIiwid2hpdGVTcGFjZSIsIndlYmtpdFVzZXJTZWxlY3QiLCJNb3pVc2VyU2VsZWN0IiwibXNVc2VyU2VsZWN0IiwidXNlclNlbGVjdCIsImFkZEV2ZW50TGlzdGVuZXIiLCJzdG9wUHJvcGFnYXRpb24iLCJmb3JtYXQiLCJwcmV2ZW50RGVmYXVsdCIsImNsaXBib2FyZERhdGEiLCJ3YXJuIiwid2luZG93IiwiY2xlYXJEYXRhIiwic2V0RGF0YSIsIm9uQ29weSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsInNlbGVjdE5vZGVDb250ZW50cyIsImFkZFJhbmdlIiwiZXhlY0NvbW1hbmQiLCJlcnIiLCJjb3B5S2V5IiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwicHJvbXB0IiwicmVtb3ZlUmFuZ2UiLCJyZW1vdmVBbGxSYW5nZXMiLCJyZW1vdmVDaGlsZCIsInJvb3QiLCJnIiwiQ1NTIiwiZXNjYXBlIiwiY3NzRXNjYXBlIiwiY29kZVVuaXQiLCJyZXN1bHQiLCJmaXJzdENvZGVVbml0IiwiY2hhckF0IiwiZmFjdG9yeSIsImlzU3BlY2lmaWNWYWx1ZSIsIlJlZ0V4cCIsImNsb25lU3BlY2lmaWNWYWx1ZSIsImdldFRpbWUiLCJkZWVwQ2xvbmVBcnJheSIsImNsb25lIiwiZm9yRWFjaCIsIml0ZW0iLCJkZWVwRXh0ZW5kIiwic2FmZUdldFByb3BlcnR5Iiwib2JqZWN0IiwicHJvcGVydHkiLCJrZXlzIiwiaXNNZXJnZWFibGVPYmplY3QiLCJpc05vbk51bGxPYmplY3QiLCJpc1NwZWNpYWwiLCJzdHJpbmdWYWx1ZSIsImlzUmVhY3RFbGVtZW50IiwiJCR0eXBlb2YiLCJSRUFDVF9FTEVNRU5UX1RZUEUiLCJmb3IiLCJjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZCIsImRlZXBtZXJnZSIsImVtcHR5VGFyZ2V0IiwiZGVmYXVsdEFycmF5TWVyZ2UiLCJzb3VyY2UiLCJtYXAiLCJlbGVtZW50IiwiZ2V0S2V5cyIsImdldEVudW1lcmFibGVPd25Qcm9wZXJ0eVN5bWJvbHMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJzeW1ib2wiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInByb3BlcnR5SXNPbk9iamVjdCIsIl8iLCJtZXJnZU9iamVjdCIsImRlc3RpbmF0aW9uIiwicHJvcGVydHlJc1Vuc2FmZSIsImhhc093blByb3BlcnR5IiwiZ2V0TWVyZ2VGdW5jdGlvbiIsImN1c3RvbU1lcmdlIiwiYXJyYXlNZXJnZSIsInNvdXJjZUlzQXJyYXkiLCJkZWVwbWVyZ2VBbGwiLCJyZWR1Y2UiLCJwcmV2IiwibmV4dCIsImRlZXBtZXJnZV8xIiwiJFN5bnRheEVycm9yIiwiZ29wZCIsImRlZmluZURhdGFQcm9wZXJ0eSIsIm5vbkVudW1lcmFibGUiLCJub25Xcml0YWJsZSIsIm5vbkNvbmZpZ3VyYWJsZSIsImxvb3NlIiwiZGVzYyIsImVudHJpZXMiLCJpc0Zyb3plbiIsImdldFByb3RvdHlwZU9mIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZnJlZXplIiwic2VhbCIsImNyZWF0ZSIsImNvbnN0cnVjdCIsIlJlZmxlY3QiLCJmdW4iLCJ0aGlzVmFsdWUiLCJhcmdzIiwiRnVuYyIsImFycmF5Rm9yRWFjaCIsInVuYXBwbHkiLCJhcnJheVBvcCIsInBvcCIsImFycmF5UHVzaCIsInN0cmluZ1RvTG93ZXJDYXNlIiwic3RyaW5nVG9TdHJpbmciLCJzdHJpbmdNYXRjaCIsInN0cmluZ1JlcGxhY2UiLCJzdHJpbmdJbmRleE9mIiwic3RyaW5nVHJpbSIsIm9iamVjdEhhc093blByb3BlcnR5IiwicmVnRXhwVGVzdCIsInR5cGVFcnJvckNyZWF0ZSIsInVuY29uc3RydWN0IiwidGhpc0FyZyIsIl9sZW4iLCJfa2V5IiwiX2xlbjIiLCJfa2V5MiIsImFkZFRvU2V0IiwidHJhbnNmb3JtQ2FzZUZ1bmMiLCJsIiwibGNFbGVtZW50IiwiY2xlYW5BcnJheSIsIm5ld09iamVjdCIsImxvb2t1cEdldHRlciIsInByb3AiLCJmYWxsYmFja1ZhbHVlIiwiaHRtbCQxIiwic3ZnJDEiLCJzdmdGaWx0ZXJzIiwic3ZnRGlzYWxsb3dlZCIsIm1hdGhNbCQxIiwibWF0aE1sRGlzYWxsb3dlZCIsImh0bWwiLCJzdmciLCJtYXRoTWwiLCJ4bWwiLCJNVVNUQUNIRV9FWFBSIiwiRVJCX0VYUFIiLCJUTVBMSVRfRVhQUiIsIkRBVEFfQVRUUiIsIkFSSUFfQVRUUiIsIklTX0FMTE9XRURfVVJJIiwiSVNfU0NSSVBUX09SX0RBVEEiLCJBVFRSX1dISVRFU1BBQ0UiLCJET0NUWVBFX05BTUUiLCJDVVNUT01fRUxFTUVOVCIsIkVYUFJFU1NJT05TIiwiX19wcm90b19fIiwiZ2V0R2xvYmFsIiwiX2NyZWF0ZVRydXN0ZWRUeXBlc1BvbGljeSIsInRydXN0ZWRUeXBlcyIsInB1cmlmeUhvc3RFbGVtZW50IiwiY3JlYXRlUG9saWN5Iiwic3VmZml4IiwiQVRUUl9OQU1FIiwiaGFzQXR0cmlidXRlIiwiZ2V0QXR0cmlidXRlIiwicG9saWN5TmFtZSIsImNyZWF0ZUhUTUwiLCJjcmVhdGVTY3JpcHRVUkwiLCJzY3JpcHRVcmwiLCJjcmVhdGVET01QdXJpZnkiLCJET01QdXJpZnkiLCJ2ZXJzaW9uIiwicmVtb3ZlZCIsIm5vZGVUeXBlIiwiaXNTdXBwb3J0ZWQiLCJvcmlnaW5hbERvY3VtZW50IiwiY3VycmVudFNjcmlwdCIsIkRvY3VtZW50RnJhZ21lbnQiLCJIVE1MVGVtcGxhdGVFbGVtZW50IiwiTm9kZSIsIkVsZW1lbnQiLCJOb2RlRmlsdGVyIiwiTmFtZWROb2RlTWFwIiwiTW96TmFtZWRBdHRyTWFwIiwiSFRNTEZvcm1FbGVtZW50IiwiRE9NUGFyc2VyIiwiRWxlbWVudFByb3RvdHlwZSIsImNsb25lTm9kZSIsImdldE5leHRTaWJsaW5nIiwiZ2V0Q2hpbGROb2RlcyIsImdldFBhcmVudE5vZGUiLCJ0ZW1wbGF0ZSIsImNvbnRlbnQiLCJvd25lckRvY3VtZW50IiwidHJ1c3RlZFR5cGVzUG9saWN5IiwiZW1wdHlIVE1MIiwiaW1wbGVtZW50YXRpb24iLCJjcmVhdGVOb2RlSXRlcmF0b3IiLCJjcmVhdGVEb2N1bWVudEZyYWdtZW50IiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJpbXBvcnROb2RlIiwiaG9va3MiLCJjcmVhdGVIVE1MRG9jdW1lbnQiLCJJU19BTExPV0VEX1VSSSQxIiwiQUxMT1dFRF9UQUdTIiwiREVGQVVMVF9BTExPV0VEX1RBR1MiLCJBTExPV0VEX0FUVFIiLCJERUZBVUxUX0FMTE9XRURfQVRUUiIsIkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HIiwidGFnTmFtZUNoZWNrIiwiYXR0cmlidXRlTmFtZUNoZWNrIiwiYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzIiwiRk9SQklEX1RBR1MiLCJGT1JCSURfQVRUUiIsIkFMTE9XX0FSSUFfQVRUUiIsIkFMTE9XX0RBVEFfQVRUUiIsIkFMTE9XX1VOS05PV05fUFJPVE9DT0xTIiwiQUxMT1dfU0VMRl9DTE9TRV9JTl9BVFRSIiwiU0FGRV9GT1JfVEVNUExBVEVTIiwiU0FGRV9GT1JfWE1MIiwiV0hPTEVfRE9DVU1FTlQiLCJTRVRfQ09ORklHIiwiRk9SQ0VfQk9EWSIsIlJFVFVSTl9ET00iLCJSRVRVUk5fRE9NX0ZSQUdNRU5UIiwiUkVUVVJOX1RSVVNURURfVFlQRSIsIlNBTklUSVpFX0RPTSIsIlNBTklUSVpFX05BTUVEX1BST1BTIiwiU0FOSVRJWkVfTkFNRURfUFJPUFNfUFJFRklYIiwiS0VFUF9DT05URU5UIiwiSU5fUExBQ0UiLCJVU0VfUFJPRklMRVMiLCJGT1JCSURfQ09OVEVOVFMiLCJERUZBVUxUX0ZPUkJJRF9DT05URU5UUyIsIkRBVEFfVVJJX1RBR1MiLCJERUZBVUxUX0RBVEFfVVJJX1RBR1MiLCJVUklfU0FGRV9BVFRSSUJVVEVTIiwiREVGQVVMVF9VUklfU0FGRV9BVFRSSUJVVEVTIiwiTUFUSE1MX05BTUVTUEFDRSIsIlNWR19OQU1FU1BBQ0UiLCJIVE1MX05BTUVTUEFDRSIsIk5BTUVTUEFDRSIsIklTX0VNUFRZX0lOUFVUIiwiQUxMT1dFRF9OQU1FU1BBQ0VTIiwiREVGQVVMVF9BTExPV0VEX05BTUVTUEFDRVMiLCJQQVJTRVJfTUVESUFfVFlQRSIsIlNVUFBPUlRFRF9QQVJTRVJfTUVESUFfVFlQRVMiLCJERUZBVUxUX1BBUlNFUl9NRURJQV9UWVBFIiwiQ09ORklHIiwiZm9ybUVsZW1lbnQiLCJpc1JlZ2V4T3JGdW5jdGlvbiIsInRlc3RWYWx1ZSIsIkZ1bmN0aW9uIiwiX3BhcnNlQ29uZmlnIiwiY2ZnIiwiQUREX1VSSV9TQUZFX0FUVFIiLCJBRERfREFUQV9VUklfVEFHUyIsIkFMTE9XRURfVVJJX1JFR0VYUCIsIkFERF9UQUdTIiwiQUREX0FUVFIiLCJ0Ym9keSIsIlRSVVNURURfVFlQRVNfUE9MSUNZIiwiTUFUSE1MX1RFWFRfSU5URUdSQVRJT05fUE9JTlRTIiwiSFRNTF9JTlRFR1JBVElPTl9QT0lOVFMiLCJDT01NT05fU1ZHX0FORF9IVE1MX0VMRU1FTlRTIiwiQUxMX1NWR19UQUdTIiwiQUxMX01BVEhNTF9UQUdTIiwiX2NoZWNrVmFsaWROYW1lc3BhY2UiLCJwYXJlbnQiLCJ0YWdOYW1lIiwibmFtZXNwYWNlVVJJIiwicGFyZW50VGFnTmFtZSIsIkJvb2xlYW4iLCJfZm9yY2VSZW1vdmUiLCJub2RlIiwicGFyZW50Tm9kZSIsInJlbW92ZSIsIl9yZW1vdmVBdHRyaWJ1dGUiLCJhdHRyaWJ1dGUiLCJnZXRBdHRyaWJ1dGVOb2RlIiwicmVtb3ZlQXR0cmlidXRlIiwic2V0QXR0cmlidXRlIiwiX2luaXREb2N1bWVudCIsImRpcnR5IiwiZG9jIiwibGVhZGluZ1doaXRlc3BhY2UiLCJtYXRjaGVzIiwiZGlydHlQYXlsb2FkIiwicGFyc2VGcm9tU3RyaW5nIiwiZG9jdW1lbnRFbGVtZW50IiwiY3JlYXRlRG9jdW1lbnQiLCJpbm5lckhUTUwiLCJpbnNlcnRCZWZvcmUiLCJjcmVhdGVUZXh0Tm9kZSIsImNoaWxkTm9kZXMiLCJfY3JlYXRlTm9kZUl0ZXJhdG9yIiwiU0hPV19FTEVNRU5UIiwiU0hPV19DT01NRU5UIiwiU0hPV19URVhUIiwiU0hPV19QUk9DRVNTSU5HX0lOU1RSVUNUSU9OIiwiU0hPV19DREFUQV9TRUNUSU9OIiwiX2lzQ2xvYmJlcmVkIiwiZWxtIiwibm9kZU5hbWUiLCJhdHRyaWJ1dGVzIiwiaGFzQ2hpbGROb2RlcyIsIl9pc05vZGUiLCJfZXhlY3V0ZUhvb2siLCJlbnRyeVBvaW50IiwiY3VycmVudE5vZGUiLCJob29rIiwiX3Nhbml0aXplRWxlbWVudHMiLCJhbGxvd2VkVGFncyIsImZpcnN0RWxlbWVudENoaWxkIiwiX2lzQmFzaWNDdXN0b21FbGVtZW50IiwiZXhwciIsIl9pc1ZhbGlkQXR0cmlidXRlIiwibGNUYWciLCJsY05hbWUiLCJfc2FuaXRpemVBdHRyaWJ1dGVzIiwiaG9va0V2ZW50IiwiYXR0ck5hbWUiLCJhdHRyVmFsdWUiLCJrZWVwQXR0ciIsImFsbG93ZWRBdHRyaWJ1dGVzIiwiYXR0ciIsImZvcmNlS2VlcEF0dHIiLCJnZXRBdHRyaWJ1dGVUeXBlIiwic2V0QXR0cmlidXRlTlMiLCJfc2FuaXRpemVTaGFkb3dET00iLCJmcmFnbWVudCIsInNoYWRvd05vZGUiLCJzaGFkb3dJdGVyYXRvciIsIm5leHROb2RlIiwic2FuaXRpemUiLCJpbXBvcnRlZE5vZGUiLCJyZXR1cm5Ob2RlIiwiZmlyc3RDaGlsZCIsIm5vZGVJdGVyYXRvciIsInNoYWRvd3Jvb3QiLCJzaGFkb3dyb290bW9kZSIsInNlcmlhbGl6ZWRIVE1MIiwib3V0ZXJIVE1MIiwiZG9jdHlwZSIsInNldENvbmZpZyIsImNsZWFyQ29uZmlnIiwiaXNWYWxpZEF0dHJpYnV0ZSIsInRhZyIsImFkZEhvb2siLCJob29rRnVuY3Rpb24iLCJyZW1vdmVIb29rIiwicmVtb3ZlSG9va3MiLCJyZW1vdmVBbGxIb29rcyIsIlN1YlJhbmdlIiwibG93IiwiaGlnaCIsIm92ZXJsYXBzIiwidG91Y2hlcyIsImFkZCIsInN1YnRyYWN0IiwiRFJhbmdlIiwicmFuZ2VzIiwiX3VwZGF0ZV9sZW5ndGgiLCJwcmV2aW91cyIsIl9hZGQiLCJzdWJyYW5nZSIsIm5ld1JhbmdlcyIsIl9zdWJ0cmFjdCIsImludGVyc2VjdCIsIl9pbnRlcnNlY3QiLCJudW1iZXJzIiwic3VicmFuZ2VzIiwiRXZhbEVycm9yIiwiUmVmZXJlbmNlRXJyb3IiLCJTeW50YXhFcnJvciIsIlVSSUVycm9yIiwiUmVmbGVjdE93bktleXMiLCJSIiwiUmVmbGVjdEFwcGx5IiwicmVjZWl2ZXIiLCJvd25LZXlzIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsIk51bWJlcklzTmFOIiwiRXZlbnRFbWl0dGVyIiwiaW5pdCIsIm9uY2UiLCJlbWl0dGVyIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJlcnJvckxpc3RlbmVyIiwicmVtb3ZlTGlzdGVuZXIiLCJyZXNvbHZlciIsImV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lciIsImFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyIiwiaGFuZGxlciIsImZsYWdzIiwib24iLCJfZXZlbnRzIiwiX2V2ZW50c0NvdW50IiwiX21heExpc3RlbmVycyIsImRlZmF1bHRNYXhMaXN0ZW5lcnMiLCJjaGVja0xpc3RlbmVyIiwibGlzdGVuZXIiLCJfZ2V0TWF4TGlzdGVuZXJzIiwidGhhdCIsIl9hZGRMaXN0ZW5lciIsInByZXBlbmQiLCJldmVudHMiLCJleGlzdGluZyIsIm5ld0xpc3RlbmVyIiwiZW1pdCIsInVuc2hpZnQiLCJ3YXJuZWQiLCJ3IiwiY291bnQiLCJQcm9jZXNzRW1pdFdhcm5pbmciLCJ3YXJuaW5nIiwib25jZVdyYXBwZXIiLCJmaXJlZCIsIndyYXBGbiIsIl9vbmNlV3JhcCIsInN0YXRlIiwid3JhcHBlZCIsIl9saXN0ZW5lcnMiLCJ1bndyYXAiLCJldmxpc3RlbmVyIiwidW53cmFwTGlzdGVuZXJzIiwiYXJyYXlDbG9uZSIsImxpc3RlbmVyQ291bnQiLCJ3cmFwTGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwic2V0TWF4TGlzdGVuZXJzIiwiZ2V0TWF4TGlzdGVuZXJzIiwiZG9FcnJvciIsImVyIiwiY29udGV4dCIsImxpc3RlbmVycyIsImFkZExpc3RlbmVyIiwicHJlcGVuZExpc3RlbmVyIiwicHJlcGVuZE9uY2VMaXN0ZW5lciIsIm9yaWdpbmFsTGlzdGVuZXIiLCJzaGlmdCIsInNwbGljZU9uZSIsIm9mZiIsInJlbW92ZUFsbExpc3RlbmVycyIsInJhd0xpc3RlbmVycyIsImV2ZW50TmFtZXMiLCJmb3JtYXR0ZXIiLCJmYXVsdCIsIkVDb25zdHJ1Y3RvciIsIkZvcm1hdHRlZEVycm9yIiwiZGlzcGxheU5hbWUiLCJldmFsIiwicmVmZXJlbmNlIiwic3ludGF4IiwidXJpIiwibmFtZXNwYWNlIiwiZm10IiwicHJlY2lzaW9uIiwiYXJnSW5kZXgiLCJlc2NhcGVkIiwibGVhZGluZ1plcm8iLCJuZXh0QXJnIiwic2x1cnBOdW1iZXIiLCJkaWdpdHMiLCJwYXJzZUZsb2F0IiwidG9GaXhlZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0b1VwcGVyQ2FzZSIsInZzcHJpbnRmIiwicmVwbGFjZW1lbnRzIiwibG9nIiwicHJpbnRmIiwidG9TdHIiLCJjb25jYXR0eSIsImJvdW5kIiwic2xpY3kiLCJhcnJMaWtlIiwiYm91bmRMZW5ndGgiLCJib3VuZEFyZ3MiLCJqb2luZXIiLCJqb2lueSIsIkVtcHR5IiwiJEVycm9yIiwiJEV2YWxFcnJvciIsIiRSYW5nZUVycm9yIiwiJFJlZmVyZW5jZUVycm9yIiwiJFVSSUVycm9yIiwiJEZ1bmN0aW9uIiwiZ2V0RXZhbGxlZENvbnN0cnVjdG9yIiwiZXhwcmVzc2lvblN5bnRheCIsIiRnT1BEIiwidGhyb3dUeXBlRXJyb3IiLCJUaHJvd1R5cGVFcnJvciIsImNhbGxlZVRocm93cyIsImdPUER0aHJvd3MiLCJoYXNTeW1ib2xzIiwiaGFzUHJvdG8iLCJuZWVkc0V2YWwiLCJUeXBlZEFycmF5IiwiSU5UUklOU0lDUyIsIkFnZ3JlZ2F0ZUVycm9yIiwiaXRlcmF0b3IiLCJBdG9taWNzIiwiQmlnSW50NjRBcnJheSIsIkJpZ1VpbnQ2NEFycmF5IiwiRGF0YVZpZXciLCJkZWNvZGVVUkkiLCJlbmNvZGVVUkkiLCJGbG9hdDMyQXJyYXkiLCJGbG9hdDY0QXJyYXkiLCJGaW5hbGl6YXRpb25SZWdpc3RyeSIsIkludDhBcnJheSIsIkludDE2QXJyYXkiLCJJbnQzMkFycmF5IiwiTWFwIiwiUHJveHkiLCJTZXQiLCJVaW50OENsYW1wZWRBcnJheSIsIlVpbnQxNkFycmF5IiwiVWludDMyQXJyYXkiLCJXZWFrTWFwIiwiV2Vha1JlZiIsIldlYWtTZXQiLCJlcnJvclByb3RvIiwiZG9FdmFsIiwiZ2VuIiwiTEVHQUNZX0FMSUFTRVMiLCJoYXNPd24iLCIkY29uY2F0IiwiJHNwbGljZUFwcGx5Iiwic3BsaWNlIiwiJHJlcGxhY2UiLCIkc3RyU2xpY2UiLCIkZXhlYyIsImV4ZWMiLCJyZVByb3BOYW1lIiwicmVFc2NhcGVDaGFyIiwiZ2V0QmFzZUludHJpbnNpYyIsImFsaWFzIiwiaW50cmluc2ljTmFtZSIsInN0cmluZ1RvUGF0aCIsIm51bWJlciIsInF1b3RlIiwic3ViU3RyaW5nIiwiaW50cmluc2ljQmFzZU5hbWUiLCJpbnRyaW5zaWNSZWFsTmFtZSIsInNraXBGdXJ0aGVyQ2FjaGluZyIsImlzT3duIiwicGFydCIsImhhc1Byb3BlcnR5RGVzY3JpcHRvcnMiLCJoYXNBcnJheUxlbmd0aERlZmluZUJ1ZyIsIiRPYmplY3QiLCJvcmlnU3ltYm9sIiwiaGFzU3ltYm9sU2hhbSIsImhhc05hdGl2ZVN5bWJvbHMiLCJzeW1PYmoiLCJzeW1zIiwiZGVzY3JpcHRvciIsIiRoYXNPd24iLCJkZWVwRnJlZXplIiwiY2xlYXIiLCJkZWxldGUiLCJkZWVwRnJlZXplRXM2IiwiX2RlZmF1bHQiLCJkZWZhdWx0IiwiUmVzcG9uc2UiLCJtb2RlIiwiaXNNYXRjaElnbm9yZWQiLCJpZ25vcmVNYXRjaCIsImVzY2FwZUhUTUwiLCJpbmhlcml0Iiwib3JpZ2luYWwiLCJvYmplY3RzIiwiZW1pdHNXcmFwcGluZ1RhZ3MiLCJraW5kIiwiSFRNTFJlbmRlcmVyIiwicGFyc2VUcmVlIiwiY2xhc3NQcmVmaXgiLCJ3YWxrIiwiYWRkVGV4dCIsIm9wZW5Ob2RlIiwiY2xhc3NOYW1lIiwic3VibGFuZ3VhZ2UiLCJzcGFuIiwiY2xvc2VOb2RlIiwiVG9rZW5UcmVlIiwicm9vdE5vZGUiLCJjaGlsZHJlbiIsImNsb3NlQWxsTm9kZXMiLCJidWlsZGVyIiwiX3dhbGsiLCJjaGlsZCIsIl9jb2xsYXBzZSIsImV2ZXJ5IiwiZWwiLCJUb2tlblRyZWVFbWl0dGVyIiwiYWRkS2V5d29yZCIsImFkZFN1Ymxhbmd1YWdlIiwidG9IVE1MIiwiZmluYWxpemUiLCJyZSIsIkJBQ0tSRUZfUkUiLCJJREVOVF9SRSIsIlVOREVSU0NPUkVfSURFTlRfUkUiLCJOVU1CRVJfUkUiLCJDX05VTUJFUl9SRSIsIkJJTkFSWV9OVU1CRVJfUkUiLCJCQUNLU0xBU0hfRVNDQVBFIiwiYmVnaW4iLCJyZWxldmFuY2UiLCJBUE9TX1NUUklOR19NT0RFIiwiaWxsZWdhbCIsImNvbnRhaW5zIiwiUVVPVEVfU1RSSU5HX01PREUiLCJQSFJBU0FMX1dPUkRTX01PREUiLCJDT01NRU5UIiwibW9kZU9wdGlvbnMiLCJDX0xJTkVfQ09NTUVOVF9NT0RFIiwiQ19CTE9DS19DT01NRU5UX01PREUiLCJIQVNIX0NPTU1FTlRfTU9ERSIsIk5VTUJFUl9NT0RFIiwiQ19OVU1CRVJfTU9ERSIsIkJJTkFSWV9OVU1CRVJfTU9ERSIsIkNTU19OVU1CRVJfTU9ERSIsIlJFR0VYUF9NT0RFIiwiVElUTEVfTU9ERSIsIlVOREVSU0NPUkVfVElUTEVfTU9ERSIsIk1FVEhPRF9HVUFSRCIsIk1PREVTIiwiTUFUQ0hfTk9USElOR19SRSIsIlJFX1NUQVJURVJTX1JFIiwiU0hFQkFORyIsIm9wdHMiLCJiZWdpblNoZWJhbmciLCJiaW5hcnkiLCJyZXNwIiwiRU5EX1NBTUVfQVNfQkVHSU4iLCJhc3NpZ24iLCJfYmVnaW5NYXRjaCIsInNraXBJZmhhc1ByZWNlZGluZ0RvdCIsInJlc3BvbnNlIiwiYmVnaW5LZXl3b3JkcyIsIl9fYmVmb3JlQmVnaW4iLCJrZXl3b3JkcyIsImNvbXBpbGVJbGxlZ2FsIiwiX3BhcmVudCIsImVpdGhlciIsImNvbXBpbGVNYXRjaCIsImNvbXBpbGVSZWxldmFuY2UiLCJDT01NT05fS0VZV09SRFMiLCJERUZBVUxUX0tFWVdPUkRfQ0xBU1NOQU1FIiwiY29tcGlsZUtleXdvcmRzIiwicmF3S2V5d29yZHMiLCJjYXNlSW5zZW5zaXRpdmUiLCJjb21waWxlZEtleXdvcmRzIiwiY29tcGlsZUxpc3QiLCJrZXl3b3JkTGlzdCIsImtleXdvcmQiLCJwYWlyIiwic2NvcmVGb3JLZXl3b3JkIiwicHJvdmlkZWRTY29yZSIsImNvbW1vbktleXdvcmQiLCJjb21waWxlTGFuZ3VhZ2UiLCJsYW5ndWFnZSIsInBsdWdpbnMiLCJsYW5nUmUiLCJnbG9iYWwiLCJjYXNlX2luc2Vuc2l0aXZlIiwiTXVsdGlSZWdleCIsIm1hdGNoSW5kZXhlcyIsInJlZ2V4ZXMiLCJtYXRjaEF0IiwiYWRkUnVsZSIsImNvdW50TWF0Y2hHcm91cHMiLCJjb21waWxlIiwidGVybWluYXRvcnMiLCJtYXRjaGVyUmUiLCJyZWdleHBzIiwic2VwYXJhdG9yIiwibnVtQ2FwdHVyZXMiLCJyZWdleCIsInN1YnN0cmluZyIsImxhc3RJbmRleCIsInMiLCJmaW5kSW5kZXgiLCJtYXRjaERhdGEiLCJSZXN1bWFibGVNdWx0aVJlZ2V4IiwicnVsZXMiLCJtdWx0aVJlZ2V4ZXMiLCJyZWdleEluZGV4IiwiZ2V0TWF0Y2hlciIsIm1hdGNoZXIiLCJyZXN1bWluZ1NjYW5BdFNhbWVQb3NpdGlvbiIsImNvbnNpZGVyQWxsIiwibTIiLCJjb21waWxlckV4dGVuc2lvbnMiLCJjbGFzc05hbWVBbGlhc2VzIiwiY29tcGlsZU1vZGUiLCJjbW9kZSIsImlzQ29tcGlsZWQiLCJrZXl3b3JkUGF0dGVybiIsIiRwYXR0ZXJuIiwibGV4ZW1lcyIsImtleXdvcmRQYXR0ZXJuUmUiLCJiZWdpblJlIiwiZW5kU2FtZUFzQmVnaW4iLCJlbmRzV2l0aFBhcmVudCIsImVuZFJlIiwidGVybWluYXRvckVuZCIsImlsbGVnYWxSZSIsImV4cGFuZE9yQ2xvbmVNb2RlIiwidmFyaWFudHMiLCJjYWNoZWRWYXJpYW50cyIsInZhcmlhbnQiLCJkZXBlbmRlbmN5T25QYXJlbnQiLCJzdGFydHMiLCJidWlsZE1vZGVSZWdleCIsIm1tIiwidGVybSIsInJ1bGUiLCJCdWlsZFZ1ZVBsdWdpbiIsImhsanMiLCJDb21wb25lbnQiLCJwcm9wcyIsImRldGVjdGVkTGFuZ3VhZ2UiLCJ1bmtub3duTGFuZ3VhZ2UiLCJjb21wdXRlZCIsImhpZ2hsaWdodGVkIiwiYXV0b0RldGVjdCIsImdldExhbmd1YWdlIiwiaGlnaGxpZ2h0QXV0byIsImhpZ2hsaWdodCIsImlnbm9yZUlsbGVnYWxzIiwiaGFzVmFsdWVPckVtcHR5QXR0cmlidXRlIiwiYXV0b2RldGVjdCIsInJlbmRlciIsImNsYXNzIiwiZG9tUHJvcHMiLCJWdWVQbHVnaW4iLCJpbnN0YWxsIiwiVnVlIiwiY29tcG9uZW50IiwibWVyZ2VIVE1MUGx1Z2luIiwib3JpZ2luYWxTdHJlYW0iLCJub2RlU3RyZWFtIiwicmVzdWx0Tm9kZSIsIm1lcmdlU3RyZWFtcyIsInByb2Nlc3NlZCIsIm5vZGVTdGFjayIsInNlbGVjdFN0cmVhbSIsImV2ZW50Iiwib3BlbiIsImF0dHJpYnV0ZVN0cmluZyIsImNsb3NlIiwic3RyZWFtIiwicmV2ZXJzZSIsIl9ub2RlU3RyZWFtIiwibmV4dFNpYmxpbmciLCJub2RlVmFsdWUiLCJzZWVuRGVwcmVjYXRpb25zIiwiZGVwcmVjYXRlZCIsImVzY2FwZSQxIiwiaW5oZXJpdCQxIiwiTk9fTUFUQ0giLCJsYW5ndWFnZXMiLCJhbGlhc2VzIiwiU0FGRV9NT0RFIiwiZml4TWFya3VwUmUiLCJMQU5HVUFHRV9OT1RfRk9VTkQiLCJQTEFJTlRFWFRfTEFOR1VBR0UiLCJkaXNhYmxlQXV0b2RldGVjdCIsIm5vSGlnaGxpZ2h0UmUiLCJsYW5ndWFnZURldGVjdFJlIiwidGFiUmVwbGFjZSIsInVzZUJSIiwiX19lbWl0dGVyIiwic2hvdWxkTm90SGlnaGxpZ2h0IiwibGFuZ3VhZ2VOYW1lIiwiY29kZU9ybGFuZ3VhZ2VOYW1lIiwib3B0aW9uc09yQ29kZSIsImNvbnRpbnVhdGlvbiIsImZpcmUiLCJfaGlnaGxpZ2h0IiwiY29kZVRvSGlnaGxpZ2h0Iiwia2V5d29yZERhdGEiLCJtYXRjaFRleHQiLCJwcm9jZXNzQnVmZmVyIiwic3ViTGFuZ3VhZ2UiLCJwcm9jZXNzU3ViTGFuZ3VhZ2UiLCJtb2RlQnVmZmVyIiwiY29udGludWF0aW9ucyIsInByb2Nlc3NLZXl3b3JkcyIsImtleXdvcmRSZWxldmFuY2UiLCJzdGFydHNXaXRoIiwiY3NzQ2xhc3MiLCJzdGFydE5ld01vZGUiLCJlbmRPZk1vZGUiLCJtYXRjaFBsdXNSZW1haW5kZXIiLCJtYXRjaGVkIiwibGV4ZW1lIiwiZW5kc1BhcmVudCIsImRvSWdub3JlIiwicmVzdW1lU2NhbkF0U2FtZVBvc2l0aW9uIiwiZG9CZWdpbk1hdGNoIiwibmV3TW9kZSIsImJlZm9yZUNhbGxiYWNrcyIsImNiIiwic2tpcCIsImV4Y2x1ZGVCZWdpbiIsInJldHVybkJlZ2luIiwiZG9FbmRNYXRjaCIsImVuZE1vZGUiLCJvcmlnaW4iLCJyZXR1cm5FbmQiLCJleGNsdWRlRW5kIiwibGFzdE1hdGNoIiwicHJvY2Vzc0xleGVtZSIsInRleHRCZWZvcmVNYXRjaCIsImJhZFJ1bGUiLCJpdGVyYXRpb25zIiwibWQiLCJwcm9jZXNzQ29udGludWF0aW9ucyIsImN1cnJlbnQiLCJwcm9jZXNzZWRDb3VudCIsImlsbGVnYWxCeSIsInNvZmFyIiwiZXJyb3JSYWlzZWQiLCJsYW5ndWFnZVN1YnNldCIsInBsYWludGV4dCIsImp1c3RUZXh0SGlnaGxpZ2h0UmVzdWx0IiwicmVzdWx0cyIsImF1dG9EZXRlY3Rpb24iLCJzb3J0ZWQiLCJzb3J0Iiwic3VwZXJzZXRPZiIsImJlc3QiLCJzZWNvbmRCZXN0Iiwic2Vjb25kX2Jlc3QiLCJiclBsdWdpbiIsIlRBQl9SRVBMQUNFX1JFIiwidGFiUmVwbGFjZVBsdWdpbiIsImhpZ2hsaWdodEVsZW1lbnQiLCJibG9ja0xhbmd1YWdlIiwiYmxvY2siLCJjbGFzc2VzIiwiZmluZCIsIl9jbGFzcyIsInVwZGF0ZUNsYXNzTmFtZSIsImN1cnJlbnRMYW5nIiwicmVzdWx0TGFuZyIsImNsYXNzTGlzdCIsInJlbGF2YW5jZSIsImluaXRIaWdobGlnaHRpbmciLCJjYWxsZWQiLCJxdWVyeVNlbGVjdG9yQWxsIiwid2FudHNIaWdobGlnaHQiLCJoaWdobGlnaHRBbGwiLCJyZWFkeVN0YXRlIiwicmVnaXN0ZXJBbGlhc2VzIiwiYWxpYXNMaXN0IiwibGFuZyIsInBsdWdpbiIsImJvb3QiLCJmaXhNYXJrdXAiLCJkZXByZWNhdGVGaXhNYXJrdXAiLCJoaWdobGlnaHRCbG9jayIsImRlcHJlY2F0ZUhpZ2hsaWdodEJsb2NrIiwiY29uZmlndXJlIiwidXNlck9wdGlvbnMiLCJpbml0SGlnaGxpZ2h0aW5nT25Mb2FkIiwicmVnaXN0ZXJMYW5ndWFnZSIsImxhbmd1YWdlRGVmaW5pdGlvbiIsImVycm9yJDEiLCJyYXdEZWZpbml0aW9uIiwidW5yZWdpc3Rlckxhbmd1YWdlIiwibGlzdExhbmd1YWdlcyIsInJlcXVpcmVMYW5ndWFnZSIsImFkZFBsdWdpbiIsInVwZ3JhZGVQbHVnaW5BUEkiLCJ2dWVQbHVnaW4iLCJkZWJ1Z01vZGUiLCJzYWZlTW9kZSIsInZlcnNpb25TdHJpbmciLCJITEpTIiwiYmFzaCIsIlZBUiIsIkJSQUNFRF9WQVIiLCJTVUJTVCIsIkhFUkVfRE9DIiwiUVVPVEVfU1RSSU5HIiwiQVJJVEhNRVRJQyIsIktOT1dOX1NIRUJBTkciLCJGVU5DVElPTiIsImxpdGVyYWwiLCJidWlsdF9pbiIsImh0dHAiLCJWRVJTSU9OIiwiSEVBREVSIiwiSEVBREVSU19BTkRfQk9EWSIsIktFWVdPUkRTIiwiTElURVJBTFMiLCJCVUlMVF9JTlMiLCJsb29rYWhlYWQiLCJqYXZhc2NyaXB0IiwiSURFTlRfUkUkMSIsIkZSQUdNRU5UIiwiWE1MX1RBRyIsImlzVHJ1bHlPcGVuaW5nVGFnIiwiYWZ0ZXJNYXRjaEluZGV4IiwibmV4dENoYXIiLCJhZnRlciIsImhhc0Nsb3NpbmdUYWciLCJLRVlXT1JEUyQxIiwiZGVjaW1hbERpZ2l0cyIsImZyYWMiLCJkZWNpbWFsSW50ZWdlciIsIk5VTUJFUiIsIkhUTUxfVEVNUExBVEUiLCJDU1NfVEVNUExBVEUiLCJURU1QTEFURV9TVFJJTkciLCJTVUJTVF9JTlRFUk5BTFMiLCJTVUJTVF9BTkRfQ09NTUVOVFMiLCJQQVJBTVNfQ09OVEFJTlMiLCJQQVJBTVMiLCJsYWJlbCIsImpzb24iLCJBTExPV0VEX0NPTU1FTlRTIiwiVFlQRVMiLCJWQUxVRV9DT05UQUlORVIiLCJPQkpFQ1QiLCJBUlJBWSIsInBvd2Vyc2hlbGwiLCJCQUNLVElDS19FU0NBUEUiLCJBUE9TX1NUUklORyIsIlBTX0NPTU1FTlQiLCJDTURMRVRTIiwiUFNfQ0xBU1MiLCJQU19GVU5DVElPTiIsIlBTX1VTSU5HIiwiUFNfQVJHVU1FTlRTIiwiUFNfTUVUSE9EUyIsIkdFTlRMRU1BTlNfU0VUIiwiUFNfVFlQRSIsIlRBR19OQU1FX1JFIiwib3B0aW9uYWwiLCJYTUxfRU5USVRJRVMiLCJYTUxfTUVUQV9LRVlXT1JEUyIsIlhNTF9NRVRBX1BBUl9LRVlXT1JEUyIsIkFQT1NfTUVUQV9TVFJJTkdfTU9ERSIsIlFVT1RFX01FVEFfU1RSSU5HX01PREUiLCJUQUdfSU5URVJOQUxTIiwieWFtbCIsIlVSSV9DSEFSQUNURVJTIiwiU1RSSU5HIiwiQ09OVEFJTkVSX1NUUklORyIsIlRJTUVTVEFNUCIsIlZBTFVFX01PREVTIiwiaXNMRSIsIm1MZW4iLCJuQnl0ZXMiLCJlTGVuIiwiZU1heCIsImVCaWFzIiwibkJpdHMiLCJkIiwiTmFOIiwicnQiLCJMTjIiLCJTTElDRSQwIiwiY3JlYXRlQ2xhc3MiLCJjdG9yIiwic3VwZXJDbGFzcyIsIkl0ZXJhYmxlIiwiaXNJdGVyYWJsZSIsIlNlcSIsIktleWVkSXRlcmFibGUiLCJpc0tleWVkIiwiS2V5ZWRTZXEiLCJJbmRleGVkSXRlcmFibGUiLCJpc0luZGV4ZWQiLCJJbmRleGVkU2VxIiwiU2V0SXRlcmFibGUiLCJpc0Fzc29jaWF0aXZlIiwiU2V0U2VxIiwibWF5YmVJdGVyYWJsZSIsIklTX0lURVJBQkxFX1NFTlRJTkVMIiwibWF5YmVLZXllZCIsIklTX0tFWUVEX1NFTlRJTkVMIiwibWF5YmVJbmRleGVkIiwiSVNfSU5ERVhFRF9TRU5USU5FTCIsIm1heWJlQXNzb2NpYXRpdmUiLCJpc09yZGVyZWQiLCJtYXliZU9yZGVyZWQiLCJJU19PUkRFUkVEX1NFTlRJTkVMIiwiS2V5ZWQiLCJJbmRleGVkIiwiREVMRVRFIiwiU0hJRlQiLCJTSVpFIiwiTUFTSyIsIk5PVF9TRVQiLCJDSEFOR0VfTEVOR1RIIiwiRElEX0FMVEVSIiwiTWFrZVJlZiIsInJlZiIsIlNldFJlZiIsIk93bmVySUQiLCJhcnJDb3B5IiwibmV3QXJyIiwiaWkiLCJlbnN1cmVTaXplIiwiaXRlciIsIl9faXRlcmF0ZSIsInJldHVyblRydWUiLCJ3cmFwSW5kZXgiLCJ1aW50MzJJbmRleCIsIndob2xlU2xpY2UiLCJyZXNvbHZlQmVnaW4iLCJyZXNvbHZlSW5kZXgiLCJyZXNvbHZlRW5kIiwiZGVmYXVsdEluZGV4IiwiSVRFUkFURV9LRVlTIiwiSVRFUkFURV9WQUxVRVMiLCJJVEVSQVRFX0VOVFJJRVMiLCJSRUFMX0lURVJBVE9SX1NZTUJPTCIsIkZBVVhfSVRFUkFUT1JfU1lNQk9MIiwiSVRFUkFUT1JfU1lNQk9MIiwiSXRlcmF0b3IiLCJpdGVyYXRvclZhbHVlIiwiayIsInYiLCJpdGVyYXRvclJlc3VsdCIsImRvbmUiLCJpdGVyYXRvckRvbmUiLCJoYXNJdGVyYXRvciIsImdldEl0ZXJhdG9yRm4iLCJpc0l0ZXJhdG9yIiwibWF5YmVJdGVyYXRvciIsImdldEl0ZXJhdG9yIiwiaXRlcmFibGUiLCJpdGVyYXRvckZuIiwiaXNBcnJheUxpa2UiLCJlbXB0eVNlcXVlbmNlIiwidG9TZXEiLCJzZXFGcm9tVmFsdWUiLCJ0b0tleWVkU2VxIiwiZnJvbUVudHJ5U2VxIiwia2V5ZWRTZXFGcm9tVmFsdWUiLCJlbnRyeVNlcSIsInRvSW5kZXhlZFNlcSIsImluZGV4ZWRTZXFGcm9tVmFsdWUiLCJ0b1NldFNlcSIsIktFWVMiLCJWQUxVRVMiLCJFTlRSSUVTIiwidG9Tb3VyY2UiLCJvZiIsImNhY2hlUmVzdWx0IiwiX2NhY2hlIiwiX19pdGVyYXRlVW5jYWNoZWQiLCJ0b0FycmF5Iiwic2VxSXRlcmF0ZSIsIl9faXRlcmF0b3IiLCJzZXFJdGVyYXRvciIsImlzU2VxIiwiRU1QVFlfU0VRIiwiRU1QVFlfUkVQRUFUIiwiRU1QVFlfUkFOR0UiLCJJU19TRVFfU0VOVElORUwiLCJBcnJheVNlcSIsIl9hcnJheSIsIk9iamVjdFNlcSIsIl9vYmplY3QiLCJfa2V5cyIsIkl0ZXJhYmxlU2VxIiwiX2l0ZXJhYmxlIiwiSXRlcmF0b3JTZXEiLCJfaXRlcmF0b3IiLCJfaXRlcmF0b3JDYWNoZSIsIm1heWJlU2VxIiwic2VxIiwibWF5YmVJbmRleGVkU2VxRnJvbVZhbHVlIiwidXNlS2V5cyIsImNhY2hlIiwibWF4SW5kZXgiLCJlbnRyeSIsIl9faXRlcmF0b3JVbmNhY2hlZCIsImZyb21KUyIsImNvbnZlcnRlciIsImZyb21KU1dpdGgiLCJmcm9tSlNEZWZhdWx0IiwicGFyZW50SlNPTiIsImlzUGxhaW5PYmoiLCJ0b0xpc3QiLCJ0b01hcCIsImlzIiwidmFsdWVBIiwidmFsdWVCIiwiZGVlcEVxdWFsIiwiX19oYXNoIiwibm90QXNzb2NpYXRpdmUiLCJmbGlwcGVkIiwiYWxsRXF1YWwiLCJiU2l6ZSIsImhhcyIsIlJlcGVhdCIsInRpbWVzIiwiX3ZhbHVlIiwiaW52YXJpYW50IiwiY29uZGl0aW9uIiwiUmFuZ2UiLCJzdGVwIiwiX3N0YXJ0IiwiX2VuZCIsIl9zdGVwIiwiY2VpbCIsIkNvbGxlY3Rpb24iLCJLZXllZENvbGxlY3Rpb24iLCJJbmRleGVkQ29sbGVjdGlvbiIsIlNldENvbGxlY3Rpb24iLCJub3RTZXRWYWx1ZSIsInNlYXJjaFZhbHVlIiwidGhpcyQwIiwib3RoZXIiLCJwb3NzaWJsZUluZGV4Iiwib2Zmc2V0VmFsdWUiLCJpbXVsIiwic21pIiwiaTMyIiwiaGFzaCIsIm8iLCJoIiwiU1RSSU5HX0hBU0hfQ0FDSEVfTUlOX1NUUkxFTiIsImNhY2hlZEhhc2hTdHJpbmciLCJoYXNoU3RyaW5nIiwiaGFzaENvZGUiLCJoYXNoSlNPYmoiLCJzdHJpbmdIYXNoQ2FjaGUiLCJTVFJJTkdfSEFTSF9DQUNIRV9TSVpFIiwiU1RSSU5HX0hBU0hfQ0FDSEVfTUFYX1NJWkUiLCJ1c2luZ1dlYWtNYXAiLCJ3ZWFrTWFwIiwiVUlEX0hBU0hfS0VZIiwiY2FuRGVmaW5lUHJvcGVydHkiLCJnZXRJRU5vZGVIYXNoIiwib2JqSGFzaFVJRCIsImlzRXh0ZW5zaWJsZSIsInVuaXF1ZUlEIiwiYXNzZXJ0Tm90SW5maW5pdGUiLCJlbXB0eU1hcCIsImlzTWFwIiwid2l0aE11dGF0aW9ucyIsIm1heWJlTWFwIiwiSVNfTUFQX1NFTlRJTkVMIiwia2V5VmFsdWVzIiwiX3Jvb3QiLCJ1cGRhdGVNYXAiLCJzZXRJbiIsImtleVBhdGgiLCJ1cGRhdGVJbiIsImRlbGV0ZUluIiwidXBkYXRlIiwidXBkYXRlciIsInVwZGF0ZWRWYWx1ZSIsInVwZGF0ZUluRGVlcE1hcCIsImZvcmNlSXRlcmF0b3IiLCJfX293bmVySUQiLCJfX2FsdGVyZWQiLCJtZXJnZSIsIm1lcmdlSW50b01hcFdpdGgiLCJtZXJnZVdpdGgiLCJtZXJnZXIiLCJtZXJnZUluIiwiaXRlcnMiLCJtZXJnZURlZXAiLCJkZWVwTWVyZ2VyIiwibWVyZ2VEZWVwV2l0aCIsImRlZXBNZXJnZXJXaXRoIiwibWVyZ2VEZWVwSW4iLCJjb21wYXJhdG9yIiwiT3JkZXJlZE1hcCIsInNvcnRGYWN0b3J5Iiwic29ydEJ5IiwibWFwcGVyIiwibXV0YWJsZSIsImFzTXV0YWJsZSIsIndhc0FsdGVyZWQiLCJfX2Vuc3VyZU93bmVyIiwiYXNJbW11dGFibGUiLCJNYXBJdGVyYXRvciIsIml0ZXJhdGUiLCJvd25lcklEIiwibWFrZU1hcCIsIkVNUFRZX01BUCIsIk1hcFByb3RvdHlwZSIsIkFycmF5TWFwTm9kZSIsIkJpdG1hcEluZGV4ZWROb2RlIiwiYml0bWFwIiwibm9kZXMiLCJIYXNoQXJyYXlNYXBOb2RlIiwiSGFzaENvbGxpc2lvbk5vZGUiLCJrZXlIYXNoIiwiVmFsdWVOb2RlIiwiX3R5cGUiLCJfcmV2ZXJzZSIsIl9zdGFjayIsIm1hcEl0ZXJhdG9yRnJhbWUiLCJtYXBJdGVyYXRvclZhbHVlIiwiX19wcmV2IiwibmV3Um9vdCIsIm5ld1NpemUiLCJkaWRDaGFuZ2VTaXplIiwiZGlkQWx0ZXIiLCJ1cGRhdGVOb2RlIiwiaXNMZWFmTm9kZSIsIm1lcmdlSW50b05vZGUiLCJuZXdOb2RlIiwiaWR4MSIsImlkeDIiLCJjcmVhdGVOb2RlcyIsInBhY2tOb2RlcyIsImV4Y2x1ZGluZyIsInBhY2tlZElJIiwicGFja2VkTm9kZXMiLCJiaXQiLCJleHBhbmROb2RlcyIsImluY2x1ZGluZyIsImV4cGFuZGVkTm9kZXMiLCJpdGVyYWJsZXMiLCJtZXJnZUludG9Db2xsZWN0aW9uV2l0aCIsIm5leHRWYWx1ZSIsImNvbGxlY3Rpb24iLCJtZXJnZUludG9NYXAiLCJrZXlQYXRoSXRlciIsImlzTm90U2V0IiwiZXhpc3RpbmdWYWx1ZSIsIm5ld1ZhbHVlIiwibmV4dEV4aXN0aW5nIiwibmV4dFVwZGF0ZWQiLCJwb3BDb3VudCIsImlkeCIsImNhbkVkaXQiLCJuZXdBcnJheSIsInNwbGljZUluIiwibmV3TGVuIiwic3BsaWNlT3V0IiwicmVtb3ZlSW4iLCJleGlzdHMiLCJNQVhfQVJSQVlfTUFQX1NJWkUiLCJpc0VkaXRhYmxlIiwibmV3RW50cmllcyIsImtleUhhc2hGcmFnIiwiTUFYX0JJVE1BUF9JTkRFWEVEX1NJWkUiLCJuZXdCaXRtYXAiLCJuZXdOb2RlcyIsIm5ld0NvdW50IiwiTUlOX0hBU0hfQVJSQVlfTUFQX1NJWkUiLCJrZXlNYXRjaCIsInN1Yk5vZGUiLCJMaXN0IiwiZW1wdHkiLCJlbXB0eUxpc3QiLCJpc0xpc3QiLCJtYWtlTGlzdCIsIlZOb2RlIiwic2V0U2l6ZSIsIm1heWJlTGlzdCIsIklTX0xJU1RfU0VOVElORUwiLCJsaXN0Tm9kZUZvciIsIl9vcmlnaW4iLCJ1cGRhdGVMaXN0IiwiaW5zZXJ0IiwiX2NhcGFjaXR5IiwiX2xldmVsIiwiX3RhaWwiLCJ2YWx1ZXMiLCJvbGRTaXplIiwic2V0TGlzdEJvdW5kcyIsIm1lcmdlSW50b0xpc3RXaXRoIiwiaXRlcmF0ZUxpc3QiLCJET05FIiwiTGlzdFByb3RvdHlwZSIsInJlbW92ZUJlZm9yZSIsImxldmVsIiwib3JpZ2luSW5kZXgiLCJuZXdDaGlsZCIsInJlbW92aW5nRmlyc3QiLCJvbGRDaGlsZCIsImVkaXRhYmxlIiwiZWRpdGFibGVWTm9kZSIsInJlbW92ZUFmdGVyIiwic2l6ZUluZGV4IiwiRU1QVFlfTElTVCIsIkVNUFRZX09SREVSRURfTUFQIiwibGVmdCIsInJpZ2h0IiwidGFpbFBvcyIsImdldFRhaWxPZmZzZXQiLCJ0YWlsIiwiaXRlcmF0ZU5vZGVPckxlYWYiLCJpdGVyYXRlTGVhZiIsIml0ZXJhdGVOb2RlIiwidG8iLCJjYXBhY2l0eSIsIm5ld1RhaWwiLCJ1cGRhdGVWTm9kZSIsIm5vZGVIYXMiLCJsb3dlck5vZGUiLCJuZXdMb3dlck5vZGUiLCJyYXdJbmRleCIsIm93bmVyIiwib2xkT3JpZ2luIiwib2xkQ2FwYWNpdHkiLCJuZXdPcmlnaW4iLCJuZXdDYXBhY2l0eSIsIm5ld0xldmVsIiwib2Zmc2V0U2hpZnQiLCJvbGRUYWlsT2Zmc2V0IiwibmV3VGFpbE9mZnNldCIsIm9sZFRhaWwiLCJiZWdpbkluZGV4IiwibWF4U2l6ZSIsImVtcHR5T3JkZXJlZE1hcCIsImlzT3JkZXJlZE1hcCIsIm1heWJlT3JkZXJlZE1hcCIsIm1ha2VPcmRlcmVkTWFwIiwib21hcCIsIl9tYXAiLCJfbGlzdCIsInVwZGF0ZU9yZGVyZWRNYXAiLCJuZXdNYXAiLCJuZXdMaXN0IiwiZmxpcCIsIlRvS2V5ZWRTZXF1ZW5jZSIsImluZGV4ZWQiLCJfaXRlciIsIl91c2VLZXlzIiwiVG9JbmRleGVkU2VxdWVuY2UiLCJUb1NldFNlcXVlbmNlIiwiRnJvbUVudHJpZXNTZXF1ZW5jZSIsImZsaXBGYWN0b3J5IiwiZmxpcFNlcXVlbmNlIiwibWFrZVNlcXVlbmNlIiwicmV2ZXJzZWRTZXF1ZW5jZSIsImNhY2hlUmVzdWx0VGhyb3VnaCIsIm1hcEZhY3RvcnkiLCJtYXBwZWRTZXF1ZW5jZSIsInJldmVyc2VGYWN0b3J5IiwiZmlsdGVyRmFjdG9yeSIsInByZWRpY2F0ZSIsImZpbHRlclNlcXVlbmNlIiwiY291bnRCeUZhY3RvcnkiLCJncm91cGVyIiwiZ3JvdXBzIiwiZ3JvdXBCeUZhY3RvcnkiLCJpc0tleWVkSXRlciIsImNvZXJjZSIsIml0ZXJhYmxlQ2xhc3MiLCJyZWlmeSIsInNsaWNlRmFjdG9yeSIsIm9yaWdpbmFsU2l6ZSIsInJlc29sdmVkQmVnaW4iLCJyZXNvbHZlZEVuZCIsInNsaWNlU2l6ZSIsInJlc29sdmVkU2l6ZSIsInNsaWNlU2VxIiwic2tpcHBlZCIsImlzU2tpcHBpbmciLCJ0YWtlV2hpbGVGYWN0b3J5IiwidGFrZVNlcXVlbmNlIiwiaXRlcmF0aW5nIiwic2tpcFdoaWxlRmFjdG9yeSIsInNraXBTZXF1ZW5jZSIsInNraXBwaW5nIiwiY29uY2F0RmFjdG9yeSIsImlzS2V5ZWRJdGVyYWJsZSIsInNpbmdsZXRvbiIsImNvbmNhdFNlcSIsImZsYXR0ZW4iLCJzdW0iLCJmbGF0dGVuRmFjdG9yeSIsImRlcHRoIiwiZmxhdFNlcXVlbmNlIiwic3RvcHBlZCIsImZsYXREZWVwIiwiY3VycmVudERlcHRoIiwiZmxhdE1hcEZhY3RvcnkiLCJpbnRlcnBvc2VGYWN0b3J5IiwiaW50ZXJwb3NlZFNlcXVlbmNlIiwiZGVmYXVsdENvbXBhcmF0b3IiLCJtYXhGYWN0b3J5IiwibWF4Q29tcGFyZSIsImNvbXAiLCJ6aXBXaXRoRmFjdG9yeSIsImtleUl0ZXIiLCJ6aXBwZXIiLCJ6aXBTZXF1ZW5jZSIsIml0ZXJhdG9ycyIsImlzRG9uZSIsInN0ZXBzIiwic29tZSIsInZhbGlkYXRlRW50cnkiLCJyZXNvbHZlU2l6ZSIsIlJlY29yZCIsImRlZmF1bHRWYWx1ZXMiLCJoYXNJbml0aWFsaXplZCIsIlJlY29yZFR5cGUiLCJzZXRQcm9wcyIsIlJlY29yZFR5cGVQcm90b3R5cGUiLCJfbmFtZSIsIl9kZWZhdWx0VmFsdWVzIiwiUmVjb3JkUHJvdG90eXBlIiwidmFsdWVTZXEiLCJpbmRleGVkSXRlcmFibGUiLCJyZWNvcmROYW1lIiwiZGVmYXVsdFZhbCIsIl9lbXB0eSIsIm1ha2VSZWNvcmQiLCJsaWtlUmVjb3JkIiwicmVjb3JkIiwibmFtZXMiLCJzZXRQcm9wIiwiZW1wdHlTZXQiLCJpc1NldCIsIm1heWJlU2V0IiwiSVNfU0VUX1NFTlRJTkVMIiwiZnJvbUtleXMiLCJrZXlTZXEiLCJ1cGRhdGVTZXQiLCJ1bmlvbiIsIm9yaWdpbmFsU2V0IiwiT3JkZXJlZFNldCIsIl9fbWFrZSIsIkVNUFRZX1NFVCIsIlNldFByb3RvdHlwZSIsIl9fZW1wdHkiLCJtYWtlU2V0IiwiZW1wdHlPcmRlcmVkU2V0IiwiaXNPcmRlcmVkU2V0IiwibWF5YmVPcmRlcmVkU2V0IiwiRU1QVFlfT1JERVJFRF9TRVQiLCJPcmRlcmVkU2V0UHJvdG90eXBlIiwibWFrZU9yZGVyZWRTZXQiLCJTdGFjayIsImVtcHR5U3RhY2siLCJpc1N0YWNrIiwidW5zaGlmdEFsbCIsIm1heWJlU3RhY2siLCJJU19TVEFDS19TRU5USU5FTCIsImhlYWQiLCJfaGVhZCIsInBlZWsiLCJtYWtlU3RhY2siLCJwdXNoQWxsIiwiRU1QVFlfU1RBQ0siLCJTdGFja1Byb3RvdHlwZSIsIm1peGluIiwibWV0aG9kcyIsImtleUNvcGllciIsInRvSlMiLCJfX3RvSlMiLCJ0b09iamVjdCIsInRvT3JkZXJlZE1hcCIsInRvT3JkZXJlZFNldCIsInRvU2V0IiwidG9TdGFjayIsIl9fdG9TdHJpbmdNYXBwZXIiLCJyZXR1cm5WYWx1ZSIsImZpbmRFbnRyeSIsInNpZGVFZmZlY3QiLCJqb2luZWQiLCJpc0ZpcnN0IiwicmVkdWNlciIsImluaXRpYWxSZWR1Y3Rpb24iLCJyZWR1Y3Rpb24iLCJ1c2VGaXJzdCIsInJlZHVjZVJpZ2h0IiwicmV2ZXJzZWQiLCJub3QiLCJidXRMYXN0IiwiaXNFbXB0eSIsImNvdW50QnkiLCJlbnRyaWVzU2VxdWVuY2UiLCJlbnRyeU1hcHBlciIsImZpbHRlck5vdCIsImZpbmRLZXkiLCJmaW5kTGFzdCIsImZpbmRMYXN0RW50cnkiLCJmaW5kTGFzdEtleSIsImZsYXRNYXAiLCJzZWFyY2hLZXkiLCJnZXRJbiIsInNlYXJjaEtleVBhdGgiLCJuZXN0ZWQiLCJncm91cEJ5IiwiaGFzSW4iLCJpc1N1YnNldCIsImlzU3VwZXJzZXQiLCJrZXlPZiIsImtleU1hcHBlciIsImxhc3RLZXlPZiIsIm1heEJ5IiwibmVnIiwiZGVmYXVsdE5lZ0NvbXBhcmF0b3IiLCJtaW5CeSIsInJlc3QiLCJhbW91bnQiLCJza2lwTGFzdCIsInNraXBXaGlsZSIsInNraXBVbnRpbCIsInRha2UiLCJ0YWtlTGFzdCIsInRha2VXaGlsZSIsInRha2VVbnRpbCIsImhhc2hJdGVyYWJsZSIsIkl0ZXJhYmxlUHJvdG90eXBlIiwicXVvdGVTdHJpbmciLCJjaGFpbiIsIm1hcEVudHJpZXMiLCJtYXBLZXlzIiwiS2V5ZWRJdGVyYWJsZVByb3RvdHlwZSIsImRlZmF1bHRaaXBwZXIiLCJvcmRlcmVkIiwia2V5ZWQiLCJtdXJtdXJIYXNoT2ZTaXplIiwiaGFzaE1lcmdlIiwicmVtb3ZlTnVtIiwibnVtQXJncyIsInNwbGljZWQiLCJmaW5kTGFzdEluZGV4IiwiaW50ZXJwb3NlIiwiaW50ZXJsZWF2ZSIsInppcHBlZCIsImludGVybGVhdmVkIiwiemlwIiwiemlwV2l0aCIsImluaGVyaXRzIiwic3VwZXJDdG9yIiwic3VwZXJfIiwiVGVtcEN0b3IiLCJmaWxlbmFtZSIsIm1pbWUiLCJib20iLCJibG9iIiwiQmxvYiIsIm1zU2F2ZUJsb2IiLCJibG9iVVJMIiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwid2Via2l0VVJMIiwidGVtcExpbmsiLCJkaXNwbGF5IiwiaHJlZiIsImRvd25sb2FkIiwiY2xpY2siLCJzZXRUaW1lb3V0IiwicmV2b2tlT2JqZWN0VVJMIiwiTkFOIiwic3ltYm9sVGFnIiwicmVUcmltIiwicmVJc0JhZEhleCIsInJlSXNCaW5hcnkiLCJyZUlzT2N0YWwiLCJmcmVlUGFyc2VJbnQiLCJmcmVlR2xvYmFsIiwiZnJlZVNlbGYiLCJzZWxmIiwib2JqZWN0VG9TdHJpbmciLCJuYXRpdmVNYXgiLCJuYXRpdmVNaW4iLCJub3ciLCJpc09iamVjdCIsInRvTnVtYmVyIiwiaXNTeW1ib2wiLCJpc09iamVjdExpa2UiLCJpc0JpbmFyeSIsImRlYm91bmNlIiwid2FpdCIsImxhc3RBcmdzIiwibGFzdFRoaXMiLCJtYXhXYWl0IiwidGltZXJJZCIsImxhc3RDYWxsVGltZSIsImxhc3RJbnZva2VUaW1lIiwibGVhZGluZyIsIm1heGluZyIsInRyYWlsaW5nIiwiaW52b2tlRnVuYyIsInRpbWUiLCJzaG91bGRJbnZva2UiLCJ0aW1lU2luY2VMYXN0Q2FsbCIsInRpbWVyRXhwaXJlZCIsInRyYWlsaW5nRWRnZSIsInJlbWFpbmluZ1dhaXQiLCJkZWJvdW5jZWQiLCJpc0ludm9raW5nIiwibGVhZGluZ0VkZ2UiLCJjYW5jZWwiLCJjbGVhclRpbWVvdXQiLCJmbHVzaCIsImdldE5hdGl2ZSIsImhhc2hDbGVhciIsImhhc2hEZWxldGUiLCJoYXNoR2V0IiwiaGFzaEhhcyIsImhhc2hTZXQiLCJIYXNoIiwiYmFzZUNyZWF0ZSIsImJhc2VMb2Rhc2giLCJMYXp5V3JhcHBlciIsIl9fd3JhcHBlZF9fIiwiX19hY3Rpb25zX18iLCJfX2Rpcl9fIiwiX19maWx0ZXJlZF9fIiwiX19pdGVyYXRlZXNfXyIsIl9fdGFrZUNvdW50X18iLCJfX3ZpZXdzX18iLCJsaXN0Q2FjaGVDbGVhciIsImxpc3RDYWNoZURlbGV0ZSIsImxpc3RDYWNoZUdldCIsImxpc3RDYWNoZUhhcyIsImxpc3RDYWNoZVNldCIsIkxpc3RDYWNoZSIsIkxvZGFzaFdyYXBwZXIiLCJjaGFpbkFsbCIsIl9fY2hhaW5fXyIsIl9faW5kZXhfXyIsIl9fdmFsdWVzX18iLCJtYXBDYWNoZUNsZWFyIiwibWFwQ2FjaGVEZWxldGUiLCJtYXBDYWNoZUdldCIsIm1hcENhY2hlSGFzIiwibWFwQ2FjaGVTZXQiLCJNYXBDYWNoZSIsInNldENhY2hlQWRkIiwic2V0Q2FjaGVIYXMiLCJTZXRDYWNoZSIsIl9fZGF0YV9fIiwic3RhY2tDbGVhciIsInN0YWNrRGVsZXRlIiwic3RhY2tHZXQiLCJzdGFja0hhcyIsInN0YWNrU2V0IiwiYXJyYXlFYWNoIiwiaXRlcmF0ZWUiLCJhcnJheUZpbHRlciIsInJlc0luZGV4IiwiYmFzZUluZGV4T2YiLCJhcnJheUluY2x1ZGVzIiwiYmFzZVRpbWVzIiwiaXNBcmd1bWVudHMiLCJpc0luZGV4IiwiaXNUeXBlZEFycmF5IiwiYXJyYXlMaWtlS2V5cyIsImluaGVyaXRlZCIsImlzQXJyIiwiaXNBcmciLCJpc0J1ZmYiLCJpc1R5cGUiLCJza2lwSW5kZXhlcyIsImFycmF5TWFwIiwiYXJyYXlSZWR1Y2UiLCJhY2N1bXVsYXRvciIsImluaXRBY2N1bSIsImFycmF5U29tZSIsImFzY2lpVG9BcnJheSIsInJlQXNjaWlXb3JkIiwiYXNjaWlXb3JkcyIsImJhc2VBc3NpZ25WYWx1ZSIsImVxIiwiYXNzaWduTWVyZ2VWYWx1ZSIsImFzc2lnblZhbHVlIiwib2JqVmFsdWUiLCJhc3NvY0luZGV4T2YiLCJjb3B5T2JqZWN0IiwiYmFzZUFzc2lnbiIsImtleXNJbiIsImJhc2VBc3NpZ25JbiIsImNsb25lQnVmZmVyIiwiY29weUFycmF5IiwiY29weVN5bWJvbHMiLCJjb3B5U3ltYm9sc0luIiwiZ2V0QWxsS2V5cyIsImdldEFsbEtleXNJbiIsImdldFRhZyIsImluaXRDbG9uZUFycmF5IiwiaW5pdENsb25lQnlUYWciLCJpbml0Q2xvbmVPYmplY3QiLCJhcmdzVGFnIiwiZnVuY1RhZyIsIm9iamVjdFRhZyIsImNsb25lYWJsZVRhZ3MiLCJiYXNlQ2xvbmUiLCJiaXRtYXNrIiwiY3VzdG9taXplciIsImlzRGVlcCIsImlzRmxhdCIsImlzRnVsbCIsImlzRnVuYyIsInN0YWNrZWQiLCJzdWJWYWx1ZSIsIm9iamVjdENyZWF0ZSIsImJhc2VGb3JPd24iLCJiYXNlRWFjaCIsImNyZWF0ZUJhc2VFYWNoIiwiYmFzZUZpbmRJbmRleCIsImZyb21JbmRleCIsImZyb21SaWdodCIsImlzRmxhdHRlbmFibGUiLCJiYXNlRmxhdHRlbiIsImlzU3RyaWN0IiwiYmFzZUZvciIsImNyZWF0ZUJhc2VGb3IiLCJjYXN0UGF0aCIsInRvS2V5IiwiYmFzZUdldCIsImJhc2VHZXRBbGxLZXlzIiwia2V5c0Z1bmMiLCJzeW1ib2xzRnVuYyIsImdldFJhd1RhZyIsInN5bVRvU3RyaW5nVGFnIiwidG9TdHJpbmdUYWciLCJiYXNlR2V0VGFnIiwiYmFzZUhhcyIsImJhc2VIYXNJbiIsImJhc2VJc05hTiIsInN0cmljdEluZGV4T2YiLCJiYXNlSXNBcmd1bWVudHMiLCJiYXNlSXNFcXVhbERlZXAiLCJiYXNlSXNFcXVhbCIsImVxdWFsQXJyYXlzIiwiZXF1YWxCeVRhZyIsImVxdWFsT2JqZWN0cyIsImFycmF5VGFnIiwiZXF1YWxGdW5jIiwib2JqSXNBcnIiLCJvdGhJc0FyciIsIm9ialRhZyIsIm90aFRhZyIsIm9iaklzT2JqIiwib3RoSXNPYmoiLCJpc1NhbWVUYWciLCJvYmpJc1dyYXBwZWQiLCJvdGhJc1dyYXBwZWQiLCJvYmpVbndyYXBwZWQiLCJvdGhVbndyYXBwZWQiLCJiYXNlSXNNYXAiLCJiYXNlSXNNYXRjaCIsIm5vQ3VzdG9taXplciIsInNyY1ZhbHVlIiwiQ09NUEFSRV9QQVJUSUFMX0ZMQUciLCJpc0Z1bmN0aW9uIiwiaXNNYXNrZWQiLCJyZUlzSG9zdEN0b3IiLCJmdW5jUHJvdG8iLCJvYmplY3RQcm90byIsImZ1bmNUb1N0cmluZyIsInJlSXNOYXRpdmUiLCJiYXNlSXNOYXRpdmUiLCJiYXNlSXNTZXQiLCJpc0xlbmd0aCIsInR5cGVkQXJyYXlUYWdzIiwiYmFzZUlzVHlwZWRBcnJheSIsImJhc2VNYXRjaGVzIiwiYmFzZU1hdGNoZXNQcm9wZXJ0eSIsImlkZW50aXR5IiwiYmFzZUl0ZXJhdGVlIiwiaXNQcm90b3R5cGUiLCJuYXRpdmVLZXlzIiwiYmFzZUtleXMiLCJuYXRpdmVLZXlzSW4iLCJiYXNlS2V5c0luIiwiaXNQcm90byIsImdldE1hdGNoRGF0YSIsIm1hdGNoZXNTdHJpY3RDb21wYXJhYmxlIiwiaXNLZXkiLCJpc1N0cmljdENvbXBhcmFibGUiLCJiYXNlTWVyZ2VEZWVwIiwic2FmZUdldCIsImJhc2VNZXJnZSIsInNyY0luZGV4IiwiY2xvbmVUeXBlZEFycmF5IiwiaXNBcnJheUxpa2VPYmplY3QiLCJpc1BsYWluT2JqZWN0IiwidG9QbGFpbk9iamVjdCIsIm1lcmdlRnVuYyIsImlzQ29tbW9uIiwiaXNUeXBlZCIsImJhc2VQcm9wZXJ0eSIsImJhc2VQcm9wZXJ0eURlZXAiLCJiYXNlUHJvcGVydHlPZiIsImJhc2VSZWR1Y2UiLCJlYWNoRnVuYyIsIm92ZXJSZXN0Iiwic2V0VG9TdHJpbmciLCJiYXNlUmVzdCIsImJhc2VTZXQiLCJtZXRhTWFwIiwiYmFzZVNldERhdGEiLCJjb25zdGFudCIsImJhc2VTZXRUb1N0cmluZyIsImJhc2VTbGljZSIsImJhc2VTb21lIiwic3ltYm9sUHJvdG8iLCJzeW1ib2xUb1N0cmluZyIsImJhc2VUb1N0cmluZyIsInRyaW1tZWRFbmRJbmRleCIsInJlVHJpbVN0YXJ0IiwiYmFzZVRyaW0iLCJiYXNlVW5hcnkiLCJiYXNlVW5zZXQiLCJiYXNlWmlwT2JqZWN0IiwiYXNzaWduRnVuYyIsInZhbHNMZW5ndGgiLCJjYWNoZUhhcyIsImNhc3RTbGljZSIsImNsb25lQXJyYXlCdWZmZXIiLCJhcnJheUJ1ZmZlciIsImZyZWVFeHBvcnRzIiwiZnJlZU1vZHVsZSIsImNsb25lRGF0YVZpZXciLCJkYXRhVmlldyIsInJlRmxhZ3MiLCJjbG9uZVJlZ0V4cCIsInJlZ2V4cCIsInN5bWJvbFZhbHVlT2YiLCJjbG9uZVN5bWJvbCIsInR5cGVkQXJyYXkiLCJjb21wb3NlQXJncyIsInBhcnRpYWxzIiwiaG9sZGVycyIsImlzQ3VycmllZCIsImFyZ3NJbmRleCIsImFyZ3NMZW5ndGgiLCJob2xkZXJzTGVuZ3RoIiwibGVmdEluZGV4IiwibGVmdExlbmd0aCIsInJhbmdlTGVuZ3RoIiwiaXNVbmN1cnJpZWQiLCJjb21wb3NlQXJnc1JpZ2h0IiwiaG9sZGVyc0luZGV4IiwicmlnaHRJbmRleCIsInJpZ2h0TGVuZ3RoIiwiaXNOZXciLCJnZXRTeW1ib2xzIiwiZ2V0U3ltYm9sc0luIiwiY29yZUpzRGF0YSIsImNvdW50SG9sZGVycyIsInBsYWNlaG9sZGVyIiwiaXNJdGVyYXRlZUNhbGwiLCJjcmVhdGVBc3NpZ25lciIsImFzc2lnbmVyIiwic291cmNlcyIsImd1YXJkIiwiY3JlYXRlQ3RvciIsImNyZWF0ZUJpbmQiLCJpc0JpbmQiLCJDdG9yIiwid3JhcHBlciIsImhhc1VuaWNvZGUiLCJzdHJpbmdUb0FycmF5IiwiY3JlYXRlQ2FzZUZpcnN0IiwibWV0aG9kTmFtZSIsInN0clN5bWJvbHMiLCJjaHIiLCJkZWJ1cnIiLCJ3b3JkcyIsInJlQXBvcyIsImNyZWF0ZUNvbXBvdW5kZXIiLCJjYWxsYmFjayIsInRoaXNCaW5kaW5nIiwiY3JlYXRlSHlicmlkIiwiY3JlYXRlUmVjdXJyeSIsImdldEhvbGRlciIsInJlcGxhY2VIb2xkZXJzIiwiY3JlYXRlQ3VycnkiLCJhcml0eSIsImNyZWF0ZUZpbmQiLCJmaW5kSW5kZXhGdW5jIiwicmVvcmRlciIsInBhcnRpYWxzUmlnaHQiLCJob2xkZXJzUmlnaHQiLCJhcmdQb3MiLCJhcnkiLCJpc0FyeSIsImlzQmluZEtleSIsImlzRmxpcCIsImhvbGRlcnNDb3VudCIsIm5ld0hvbGRlcnMiLCJjcmVhdGVQYXJ0aWFsIiwiaXNMYXppYWJsZSIsInNldFdyYXBUb1N0cmluZyIsIndyYXBGdW5jIiwiaXNDdXJyeSIsIm5ld0RhdGEiLCJnZXREYXRhIiwibWVyZ2VEYXRhIiwidG9JbnRlZ2VyIiwiY3JlYXRlV3JhcCIsImN1c3RvbU9taXRDbG9uZSIsImRlYnVyckxldHRlciIsImlzUGFydGlhbCIsIm90aExlbmd0aCIsImFyclN0YWNrZWQiLCJvdGhTdGFja2VkIiwic2VlbiIsImFyclZhbHVlIiwib3RoVmFsdWUiLCJjb21wYXJlZCIsIm90aEluZGV4IiwibWFwVG9BcnJheSIsInNldFRvQXJyYXkiLCJjb252ZXJ0Iiwib2JqUHJvcHMiLCJvYmpMZW5ndGgiLCJvYmpTdGFja2VkIiwic2tpcEN0b3IiLCJvYmpDdG9yIiwib3RoQ3RvciIsImZsYXRSZXN0Iiwibm9vcCIsInJlYWxOYW1lcyIsImdldEZ1bmNOYW1lIiwib3RoZXJGdW5jIiwiaXNLZXlhYmxlIiwiZ2V0TWFwRGF0YSIsImdldFZhbHVlIiwiZ2V0UHJvdG90eXBlIiwib3ZlckFyZyIsIm5hdGl2ZU9iamVjdFRvU3RyaW5nIiwidW5tYXNrZWQiLCJzdHViQXJyYXkiLCJuYXRpdmVHZXRTeW1ib2xzIiwibWFwVGFnIiwicHJvbWlzZVRhZyIsInNldFRhZyIsIndlYWtNYXBUYWciLCJkYXRhVmlld1RhZyIsImRhdGFWaWV3Q3RvclN0cmluZyIsIm1hcEN0b3JTdHJpbmciLCJwcm9taXNlQ3RvclN0cmluZyIsInNldEN0b3JTdHJpbmciLCJ3ZWFrTWFwQ3RvclN0cmluZyIsImN0b3JTdHJpbmciLCJyZVdyYXBEZXRhaWxzIiwicmVTcGxpdERldGFpbHMiLCJnZXRXcmFwRGV0YWlscyIsImhhc1BhdGgiLCJoYXNGdW5jIiwicmVIYXNVbmljb2RlIiwicmVIYXNVbmljb2RlV29yZCIsImhhc1VuaWNvZGVXb3JkIiwibmF0aXZlQ3JlYXRlIiwicmVXcmFwQ29tbWVudCIsImluc2VydFdyYXBEZXRhaWxzIiwiZGV0YWlscyIsInNwcmVhZGFibGVTeW1ib2wiLCJpc0NvbmNhdFNwcmVhZGFibGUiLCJyZUlzVWludCIsInJlSXNEZWVwUHJvcCIsInJlSXNQbGFpblByb3AiLCJsb2Rhc2giLCJmdW5jTmFtZSIsInVpZCIsIm1hc2tTcmNLZXkiLCJJRV9QUk9UTyIsIm1lbW9pemUiLCJtZW1vaXplQ2FwcGVkIiwiUExBQ0VIT0xERVIiLCJXUkFQX0FSWV9GTEFHIiwic3JjQml0bWFzayIsIm5ld0JpdG1hc2siLCJpc0NvbWJvIiwiZnJlZVByb2Nlc3MiLCJwcm9jZXNzIiwibm9kZVV0aWwiLCJ0eXBlcyIsInJlcXVpcmUiLCJiaW5kaW5nIiwidHJhbnNmb3JtIiwib3RoZXJBcmdzIiwiaW5kZXhlcyIsIm9sZEFycmF5Iiwic2hvcnRPdXQiLCJ1cGRhdGVXcmFwRGV0YWlscyIsIm5hdGl2ZU5vdyIsImxhc3RDYWxsZWQiLCJzdGFtcCIsInBhaXJzIiwiTEFSR0VfQVJSQVlfU0laRSIsInVuaWNvZGVUb0FycmF5IiwicmVXaGl0ZXNwYWNlIiwicnNBc3RyYWxSYW5nZSIsInJzQXN0cmFsIiwicnNDb21ibyIsInJzRml0eiIsInJzTm9uQXN0cmFsIiwicnNSZWdpb25hbCIsInJzU3VyclBhaXIiLCJyZU9wdE1vZCIsInJzT3B0VmFyIiwicnNTZXEiLCJyc1N5bWJvbCIsInJlVW5pY29kZSIsInJzRGluZ2JhdFJhbmdlIiwicnNMb3dlclJhbmdlIiwicnNVcHBlclJhbmdlIiwicnNCcmVha1JhbmdlIiwicnNNYXRoT3BSYW5nZSIsInJzQnJlYWsiLCJyc0RpZ2l0cyIsInJzRGluZ2JhdCIsInJzTG93ZXIiLCJyc01pc2MiLCJyc1VwcGVyIiwicnNNaXNjTG93ZXIiLCJyc01pc2NVcHBlciIsInJzT3B0Q29udHJMb3dlciIsInJzT3B0Q29udHJVcHBlciIsInJzTW9kaWZpZXIiLCJyc0Vtb2ppIiwicmVVbmljb2RlV29yZCIsInVuaWNvZGVXb3JkcyIsIndyYXBGbGFncyIsIndyYXBwZXJDbG9uZSIsImNhcGl0YWxpemUiLCJjYW1lbENhc2UiLCJ3b3JkIiwidXBwZXJGaXJzdCIsImN1cnJ5IiwidGltZVdhaXRpbmciLCJyZUxhdGluIiwicmVDb21ib01hcmsiLCJyZVJlZ0V4cENoYXIiLCJyZUhhc1JlZ0V4cENoYXIiLCJlc2NhcGVSZWdFeHAiLCJtYXBwaW5nIiwiZmFsbGJhY2tIb2xkZXIiLCJiYXNlQXJ5IiwiY2xvbmVBcnJheSIsIndyYXBJbW11dGFibGUiLCJjbG9uZXIiLCJiYXNlQ29udmVydCIsInV0aWwiLCJpc0xpYiIsImlzT2JqIiwiY29uZmlnIiwiY2FwIiwiZml4ZWQiLCJpbW11dGFibGUiLCJyZWFyZyIsImRlZmF1bHRIb2xkZXIiLCJmb3JjZUN1cnJ5IiwiZm9yY2VGaXhlZCIsImZvcmNlUmVhcmciLCJwcmlzdGluZSIsInJ1bkluQ29udGV4dCIsImhlbHBlcnMiLCJpc0Vycm9yIiwiaXNXZWFrTWFwIiwidG9QYXRoIiwiZWFjaCIsImFyeU1ldGhvZEtleXMiLCJhcnlNZXRob2QiLCJ3cmFwcGVycyIsImNhc3RBcnJheSIsIm50aEFyZyIsImNhc3RDYXAiLCJpdGVyYXRlZVJlYXJnIiwiYmFzZUFyaXR5IiwiaXRlcmF0ZWVBcnkiLCJjYXN0Rml4ZWQiLCJza2lwRml4ZWQiLCJtZXRob2RTcHJlYWQiLCJmbGF0U3ByZWFkIiwiY2FzdFJlYXJnIiwic2tpcFJlYXJnIiwibWV0aG9kUmVhcmciLCJhcnlSZWFyZyIsImNsb25lQnlQYXRoIiwiY3JlYXRlQ29udmVydGVyIiwicmVhbE5hbWUiLCJhbGlhc1RvUmVhbCIsInJlbWFwIiwib2xkT3B0aW9ucyIsIm5ld1V0aWwiLCJuZXdGdW5jIiwibmV3T3B0aW9ucyIsIndyYXAiLCJtdXRhdGUiLCJjcmVhdGVDbG9uZXIiLCJhcnlLZXkiLCJvdGhlck5hbWUiLCJhZnRlclJlYXJnIiwiY2FzdEN1cnJ5IiwiY29udmVydExpYiIsInJlYWxUb0FsaWFzIiwiZGVmYXVsdFZhbHVlIiwiaXNCb29sZWFuIiwic3R1YkZhbHNlIiwiaXNFcXVhbCIsIm5vZGVJc01hcCIsImlzTnVsbCIsImlzTnVtYmVyIiwib2JqZWN0Q3RvclN0cmluZyIsIm5vZGVJc1NldCIsImlzU3RyaW5nIiwibm9kZUlzVHlwZWRBcnJheSIsIm1lbW9pemVkIiwiQ2FjaGUiLCJuZWdhdGUiLCJvbWl0IiwicGF0aHMiLCJDTE9ORV9ERUVQX0ZMQUciLCJJTkZJTklUWSIsInRvRmluaXRlIiwicmVtYWluZGVyIiwidG9Mb3dlciIsInBhdHRlcm4iLCJ6aXBPYmplY3QiLCJzZXR0aW5ncyIsInN1YnNldCIsInByZWZpeCIsImRlZmF1bHRQcmVmaXgiLCJyZWdpc3RlckFsaWFzIiwiRW1pdHRlciIsInByb3BlcnRpZXMiLCJ0b0h0bWxOb29wIiwiYmVmb3JlIiwiY29lcmNlRWxlbWVudE1hdGNoaW5nQ2FsbGJhY2siLCJleHRlbmQiLCJBcnJheVNsaWNlIiwiZWxlbWVudHMiLCJ0b1ZhbHVlIiwiY29tcGFjdE1hcCIsImluaXRpYWxWYWx1ZSIsInJlZnJhY3QiLCJLZXlWYWx1ZVBhaXIiLCJKU09OU2VyaWFsaXNlciIsIk5hbWVzcGFjZSIsImVsZW1lbnRNYXAiLCJlbGVtZW50RGV0ZWN0aW9uIiwibm9EZWZhdWx0IiwidXNlRGVmYXVsdCIsIl9hdHRyaWJ1dGVFbGVtZW50S2V5cyIsIl9hdHRyaWJ1dGVFbGVtZW50QXJyYXlLZXlzIiwidXNlIiwiYmFzZSIsImxvYWQiLCJyZWdpc3RlciIsIk51bGxFbGVtZW50IiwiU3RyaW5nRWxlbWVudCIsIk51bWJlckVsZW1lbnQiLCJCb29sZWFuRWxlbWVudCIsIkFycmF5RWxlbWVudCIsIk9iamVjdEVsZW1lbnQiLCJNZW1iZXJFbGVtZW50IiwiUmVmRWxlbWVudCIsIkxpbmtFbGVtZW50IiwiZGV0ZWN0IiwiRWxlbWVudENsYXNzIiwiX2VsZW1lbnRzIiwidW5yZWdpc3RlciIsImdpdmVuUHJlcGVuZCIsInRvRWxlbWVudCIsImdldEVsZW1lbnRDbGFzcyIsImZyb21SZWZyYWN0Iiwic2VyaWFsaXNlciIsImRlc2VyaWFsaXNlIiwidG9SZWZyYWN0Iiwic2VyaWFsaXNlIiwicGFzY2FsIiwiT2JqZWN0U2xpY2UiLCJtZW1iZXIiLCJtZXRhIiwicmVsYXRpb24iLCJwcmltaXRpdmUiLCJpbmRleE9yS2V5IiwiZ2V0SW5kZXgiLCJzdGFydEluZGV4IiwibWVtbyIsImZpbmRFbGVtZW50cyIsImdpdmVuT3B0aW9ucyIsInJlY3Vyc2l2ZSIsImtleU9ySW5kZXgiLCJmaW5kQnlFbGVtZW50IiwiZmluZEJ5Q2xhc3MiLCJnZXRCeUlkIiwiaWQiLCJzZWNvbmQiLCJfbWV0YSIsIl9hdHRyaWJ1dGVzIiwidG9SZWYiLCJmaW5kUmVjdXJzaXZlIiwiZWxlbWVudE5hbWVzIiwiZWxlbWVudE5hbWUiLCJhcHBlbmQiLCJjaGVja0VsZW1lbnQiLCJpdGVtcyIsInBhcmVudEVsZW1lbnRzIiwicGFyZW50cyIsIm5hbWVzSW5kZXgiLCJnZXRNZXRhUHJvcGVydHkiLCJoYXNLZXkiLCJzZXRNZXRhUHJvcGVydHkiLCJfc3RvcmVkRWxlbWVudCIsIl9jb250ZW50IiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImxpbmtzIiwicmVjdXJzaXZlQ2hpbGRyZW4iLCJnZXRNZW1iZXIiLCJnZXRLZXkiLCJrZXlPck9iamVjdCIsIm9iamVjdEtleSIsIkpTT04wNlNlcmlhbGlzZXIiLCJ2YXJpYWJsZSIsInBheWxvYWQiLCJzZXJpYWxpc2VPYmplY3QiLCJpc0VudW0iLCJlbnVtU2VyaWFsaXNlQXR0cmlidXRlcyIsImVudW1TZXJpYWxpc2VDb250ZW50Iiwic2VyaWFsaXNlQ29udGVudCIsInNob3VsZFNlcmlhbGlzZUNvbnRlbnQiLCJyZWZTZXJpYWxpc2VDb250ZW50Iiwic291cmNlTWFwU2VyaWFsaXNlQ29udGVudCIsImRhdGFTdHJ1Y3R1cmVTZXJpYWxpc2VDb250ZW50IiwiZW51bWVyYXRpb25zIiwic2FtcGxlcyIsInNhbXBsZSIsImVudW1lcmF0aW9uIiwiTnVsbCIsImRlc2VyaWFsaXNlT2JqZWN0IiwiZGVzZXJpYWxpc2VDb250ZW50IiwiZXhpc3RpbmdTYW1wbGVzIiwiZXhpc3RpbmdTYW1wbGUiLCJlbnVtRWxlbWVudCIsImRlZmF1bHRFbGVtZW50IiwibWV0YWRhdGEiLCJzaG91bGRSZWZyYWN0IiwiY29udmVydEtleVRvUmVmcmFjdCIsInNlcmlhbGlzZUVudW0iLCJzdWJJdGVtIiwic3ViU3ViSXRlbSIsImtleVZhbHVlIiwiaGFzTWFwIiwibWFwU2l6ZURlc2NyaXB0b3IiLCJtYXBTaXplIiwibWFwRm9yRWFjaCIsImhhc1NldCIsInNldFNpemVEZXNjcmlwdG9yIiwic2V0Rm9yRWFjaCIsIndlYWtNYXBIYXMiLCJ3ZWFrU2V0SGFzIiwid2Vha1JlZkRlcmVmIiwiZGVyZWYiLCJib29sZWFuVmFsdWVPZiIsImZ1bmN0aW9uVG9TdHJpbmciLCIkbWF0Y2giLCIkc2xpY2UiLCIkdG9VcHBlckNhc2UiLCIkdG9Mb3dlckNhc2UiLCIkdGVzdCIsIiRqb2luIiwiJGFyclNsaWNlIiwiJGZsb29yIiwiYmlnSW50VmFsdWVPZiIsImdPUFMiLCJzeW1Ub1N0cmluZyIsImhhc1NoYW1tZWRTeW1ib2xzIiwiaXNFbnVtZXJhYmxlIiwiZ1BPIiwiTyIsImFkZE51bWVyaWNTZXBhcmF0b3IiLCJzZXBSZWdleCIsImludCIsImludFN0ciIsInV0aWxJbnNwZWN0IiwiaW5zcGVjdEN1c3RvbSIsImN1c3RvbSIsImluc3BlY3RTeW1ib2wiLCJ3cmFwUXVvdGVzIiwiZGVmYXVsdFN0eWxlIiwicXVvdGVDaGFyIiwicXVvdGVTdHlsZSIsImlzUmVnRXhwIiwiaW5zcGVjdF8iLCJtYXhTdHJpbmdMZW5ndGgiLCJjdXN0b21JbnNwZWN0IiwiaW5kZW50IiwibnVtZXJpY1NlcGFyYXRvciIsImluc3BlY3RTdHJpbmciLCJiaWdJbnRTdHIiLCJtYXhEZXB0aCIsImdldEluZGVudCIsImJhc2VJbmRlbnQiLCJub0luZGVudCIsIm5ld09wdHMiLCJuYW1lT2YiLCJmIiwiYXJyT2JqS2V5cyIsInN5bVN0cmluZyIsIm1hcmtCb3hlZCIsImlzRWxlbWVudCIsIkhUTUxFbGVtZW50IiwiYXR0cnMiLCJ4cyIsInNpbmdsZUxpbmVWYWx1ZXMiLCJpbmRlbnRlZEpvaW4iLCJjYXVzZSIsIm1hcFBhcnRzIiwiY29sbGVjdGlvbk9mIiwic2V0UGFydHMiLCJ3ZWFrQ29sbGVjdGlvbk9mIiwiaXNXZWFrU2V0IiwiaXNXZWFrUmVmIiwiaXNCaWdJbnQiLCJ5cyIsInByb3RvVGFnIiwic3RyaW5nVGFnIiwidHJhaWxlciIsImxvd2J5dGUiLCJsaW5lSm9pbmVyIiwic3ltTWFwIiwiY2FjaGVkU2V0VGltZW91dCIsImNhY2hlZENsZWFyVGltZW91dCIsImRlZmF1bHRTZXRUaW1vdXQiLCJkZWZhdWx0Q2xlYXJUaW1lb3V0IiwicnVuVGltZW91dCIsImN1cnJlbnRRdWV1ZSIsInF1ZXVlIiwiZHJhaW5pbmciLCJxdWV1ZUluZGV4IiwiY2xlYW5VcE5leHRUaWNrIiwiZHJhaW5RdWV1ZSIsInRpbWVvdXQiLCJydW4iLCJydW5DbGVhclRpbWVvdXQiLCJtYXJrZXIiLCJJdGVtIiwibmV4dFRpY2siLCJicm93c2VyIiwiZW52IiwiYXJndiIsInZlcnNpb25zIiwiY3dkIiwiY2hkaXIiLCJ1bWFzayIsIlJlYWN0UHJvcFR5cGVzU2VjcmV0IiwiZW1wdHlGdW5jdGlvbiIsImVtcHR5RnVuY3Rpb25XaXRoUmVzZXQiLCJyZXNldFdhcm5pbmdDYWNoZSIsInNoaW0iLCJwcm9wTmFtZSIsImNvbXBvbmVudE5hbWUiLCJsb2NhdGlvbiIsInByb3BGdWxsTmFtZSIsInNlY3JldCIsImdldFNoaW0iLCJpc1JlcXVpcmVkIiwiUmVhY3RQcm9wVHlwZXMiLCJiaWdpbnQiLCJib29sIiwiYW55IiwiYXJyYXlPZiIsImVsZW1lbnRUeXBlIiwiaW5zdGFuY2VPZiIsIm9iamVjdE9mIiwib25lT2YiLCJvbmVPZlR5cGUiLCJzaGFwZSIsImV4YWN0IiwiY2hlY2tQcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJwZXJjZW50VHdlbnRpZXMiLCJGb3JtYXQiLCJmb3JtYXR0ZXJzIiwiUkZDMTczOCIsIlJGQzM5ODYiLCJmb3JtYXRzIiwidXRpbHMiLCJkZWZhdWx0cyIsImFsbG93RG90cyIsImFsbG93UHJvdG90eXBlcyIsImFsbG93U3BhcnNlIiwiYXJyYXlMaW1pdCIsImNoYXJzZXQiLCJjaGFyc2V0U2VudGluZWwiLCJjb21tYSIsImRlY29kZXIiLCJkZWxpbWl0ZXIiLCJpZ25vcmVRdWVyeVByZWZpeCIsImludGVycHJldE51bWVyaWNFbnRpdGllcyIsInBhcmFtZXRlckxpbWl0IiwicGFyc2VBcnJheXMiLCJwbGFpbk9iamVjdHMiLCJzdHJpY3ROdWxsSGFuZGxpbmciLCIkMCIsIm51bWJlclN0ciIsInBhcnNlQXJyYXlWYWx1ZSIsInBhcnNlS2V5cyIsInBhcnNlUXVlcnlTdHJpbmdLZXlzIiwiZ2l2ZW5LZXkiLCJ2YWx1ZXNQYXJzZWQiLCJzZWdtZW50IiwibGVhZiIsImNsZWFuUm9vdCIsInBhcnNlT2JqZWN0Iiwibm9ybWFsaXplUGFyc2VPcHRpb25zIiwidGVtcE9iaiIsInBhcnNlUXVlcnlTdHJpbmdWYWx1ZXMiLCJjbGVhblN0ciIsInNraXBJbmRleCIsImJyYWNrZXRFcXVhbHNQb3MiLCJlbmNvZGVkVmFsIiwiY29tYmluZSIsInBhcnNlVmFsdWVzIiwibmV3T2JqIiwiY29tcGFjdCIsImdldFNpZGVDaGFubmVsIiwiYXJyYXlQcmVmaXhHZW5lcmF0b3JzIiwiYnJhY2tldHMiLCJpbmRpY2VzIiwicmVwZWF0IiwicHVzaFRvQXJyYXkiLCJ2YWx1ZU9yQXJyYXkiLCJ0b0lTTyIsInRvSVNPU3RyaW5nIiwiZGVmYXVsdEZvcm1hdCIsImFkZFF1ZXJ5UHJlZml4IiwiZW5jb2RlciIsImVuY29kZVZhbHVlc09ubHkiLCJzZXJpYWxpemVEYXRlIiwiZGF0ZSIsInNraXBOdWxscyIsInNlbnRpbmVsIiwiZ2VuZXJhdGVBcnJheVByZWZpeCIsImNvbW1hUm91bmRUcmlwIiwic2lkZUNoYW5uZWwiLCJ0bXBTYyIsImZpbmRGbGFnIiwiaXNOb25OdWxsaXNoUHJpbWl0aXZlIiwidmFsdWVzQXJyYXkiLCJ2YWx1ZXNKb2luZWQiLCJvYmpLZXlzIiwiYWRqdXN0ZWRQcmVmaXgiLCJrZXlQcmVmaXgiLCJ2YWx1ZVNpZGVDaGFubmVsIiwibm9ybWFsaXplU3RyaW5naWZ5T3B0aW9ucyIsImFycmF5Rm9ybWF0IiwiaGV4VGFibGUiLCJhcnJheVRvT2JqZWN0IiwiYXNzaWduU2luZ2xlU291cmNlIiwiYWNjIiwicmVmcyIsImNvbXBhY3RRdWV1ZSIsImNvbXBhY3RlZCIsInN0cldpdGhvdXRQbHVzIiwidW5lc2NhcGUiLCJkZWZhdWx0RW5jb2RlciIsIm1hcHBlZCIsIm1lcmdlVGFyZ2V0IiwidGFyZ2V0SXRlbSIsInF1ZXJ5c3RyaW5naWZ5IiwicXVlcnlzdHJpbmciLCJxdWVyeSIsInBhcnNlciIsIlJhbmRFeHAiLCJfc2V0RGVmYXVsdHMiLCJpZ25vcmVDYXNlIiwibXVsdGlsaW5lIiwidG9rZW5zIiwiZGVmYXVsdFJhbmdlIiwicmFuZEludCIsIl9nZW4iLCJ0b2tlbiIsIlJPT1QiLCJHUk9VUCIsImZvbGxvd2VkQnkiLCJub3RGb2xsb3dlZEJ5IiwicmVtZW1iZXIiLCJncm91cE51bWJlciIsIl9yYW5kU2VsZWN0IiwiUE9TSVRJT04iLCJTRVQiLCJleHBhbmRlZFNldCIsIl9leHBhbmQiLCJSRVBFVElUSU9OIiwiUkVGRVJFTkNFIiwiQ0hBUiIsIl9yYW5kQm9vbCIsIl90b090aGVyQ2FzZSIsIlJBTkdFIiwiZHJhbmdlIiwib3RoZXJDYXNlQ29kZSIsInJhbmRvbSIsIl9yYW5nZSIsInJhbmRleHAiLCJfcmFuZGV4cCIsInN1Z2FyIiwiTUFYX0JZVEVTIiwiTUFYX1VJTlQzMiIsImNyeXB0byIsIm1zQ3J5cHRvIiwiZ2V0UmFuZG9tVmFsdWVzIiwicmFuZG9tQnl0ZXMiLCJnZW5lcmF0ZWQiLCJvbGRCcm93c2VyIiwiX3R5cGVvZiIsIkNvcHlUb0NsaXBib2FyZCIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29weVRvQ2xpcGJvYXJkIiwiX2V4Y2x1ZGVkIiwiX19lc01vZHVsZSIsImVudW1lcmFibGVPbmx5Iiwic3ltYm9scyIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsImV4Y2x1ZGVkIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJzb3VyY2VLZXlzIiwic291cmNlU3ltYm9sS2V5cyIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwiX3NldFByb3RvdHlwZU9mIiwicCIsIl9jcmVhdGVTdXBlciIsIkRlcml2ZWQiLCJoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsInNoYW0iLCJfY3JlYXRlU3VwZXJJbnRlcm5hbCIsIlN1cGVyIiwiX2dldFByb3RvdHlwZU9mIiwiTmV3VGFyZ2V0IiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiX1JlYWN0JFB1cmVDb21wb25lbnQiLCJfaW5oZXJpdHMiLCJzdWJDbGFzcyIsIl9zdXBlciIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrIiwiaW5zdGFuY2UiLCJDb25zdHJ1Y3RvciIsIl90aGlzJHByb3BzIiwiZWxlbSIsIkNoaWxkcmVuIiwib25seSIsIm9uQ2xpY2siLCJfY3JlYXRlQ2xhc3MiLCJwcm90b1Byb3BzIiwic3RhdGljUHJvcHMiLCJfdGhpcyRwcm9wczIiLCJjbG9uZUVsZW1lbnQiLCJQdXJlQ29tcG9uZW50IiwiRGVib3VuY2VJbnB1dCIsIl9sb2Rhc2giLCJwZXJzaXN0Iiwib2xkVmFsdWUiLCJtaW5MZW5ndGgiLCJzZXRTdGF0ZSIsIm5vdGlmeSIsImZvcmNlTm90aWZ5Iiwib25LZXlEb3duIiwib25CbHVyIiwiZGVib3VuY2VUaW1lb3V0IiwiZG9Ob3RpZnkiLCJkZWJvdW5jZWRDaGFuZ2VGdW5jIiwiaXNEZWJvdW5jaW5nIiwib25DaGFuZ2UiLCJfZGVib3VuY2VUaW1lb3V0MiIsImNyZWF0ZU5vdGlmaWVyIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwib2xkVGltZW91dCIsInN0YXRlVmFsdWUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsIm1heWJlT25LZXlEb3duIiwibWF5YmVPbkJsdXIiLCJmb3JjZU5vdGlmeUJ5RW50ZXIiLCJmb3JjZU5vdGlmeU9uQmx1ciIsImlucHV0UmVmIiwibWF5YmVSZWYiLCJhYSIsImNhIiwiZGEiLCJlYSIsImZhIiwiaGEiLCJpYSIsImphIiwia2EiLCJsYSIsIm1hIiwiYWNjZXB0c0Jvb2xlYW5zIiwiYXR0cmlidXRlTmFtZSIsImF0dHJpYnV0ZU5hbWVzcGFjZSIsIm11c3RVc2VQcm9wZXJ0eSIsInByb3BlcnR5TmFtZSIsInNhbml0aXplVVJMIiwicmVtb3ZlRW1wdHlTdHJpbmciLCJ6IiwicmEiLCJzYSIsInRhIiwicWEiLCJwYSIsIm9hIiwieGxpbmtIcmVmIiwidWEiLCJfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCIsInZhIiwid2EiLCJ5YSIsInphIiwiQWEiLCJCYSIsIkNhIiwiRGEiLCJFYSIsIkZhIiwiR2EiLCJIYSIsIklhIiwiSmEiLCJLYSIsIkxhIiwiQSIsIk1hIiwiTmEiLCJPYSIsInByZXBhcmVTdGFja1RyYWNlIiwiUGEiLCJRYSIsIl9jb250ZXh0IiwiX3BheWxvYWQiLCJfaW5pdCIsIlJhIiwiU2EiLCJUYSIsIlZhIiwiX3ZhbHVlVHJhY2tlciIsIlVhIiwic2V0VmFsdWUiLCJzdG9wVHJhY2tpbmciLCJXYSIsIlhhIiwiYWN0aXZlRWxlbWVudCIsIllhIiwiZGVmYXVsdENoZWNrZWQiLCJfd3JhcHBlclN0YXRlIiwiaW5pdGlhbENoZWNrZWQiLCJaYSIsImNvbnRyb2xsZWQiLCJhYiIsImJiIiwiZGIiLCJlYiIsImZiIiwic2VsZWN0ZWQiLCJkZWZhdWx0U2VsZWN0ZWQiLCJkaXNhYmxlZCIsImdiIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJoYiIsImliIiwiamIiLCJrYiIsImxiIiwibWIiLCJuYiIsIk1TQXBwIiwiZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24iLCJvYiIsImxhc3RDaGlsZCIsInBiIiwiYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQiLCJhc3BlY3RSYXRpbyIsImJvcmRlckltYWdlT3V0c2V0IiwiYm9yZGVySW1hZ2VTbGljZSIsImJvcmRlckltYWdlV2lkdGgiLCJib3hGbGV4IiwiYm94RmxleEdyb3VwIiwiYm94T3JkaW5hbEdyb3VwIiwiY29sdW1uQ291bnQiLCJjb2x1bW5zIiwiZmxleCIsImZsZXhHcm93IiwiZmxleFBvc2l0aXZlIiwiZmxleFNocmluayIsImZsZXhOZWdhdGl2ZSIsImZsZXhPcmRlciIsImdyaWRBcmVhIiwiZ3JpZFJvdyIsImdyaWRSb3dFbmQiLCJncmlkUm93U3BhbiIsImdyaWRSb3dTdGFydCIsImdyaWRDb2x1bW4iLCJncmlkQ29sdW1uRW5kIiwiZ3JpZENvbHVtblNwYW4iLCJncmlkQ29sdW1uU3RhcnQiLCJmb250V2VpZ2h0IiwibGluZUNsYW1wIiwibGluZUhlaWdodCIsIm9wYWNpdHkiLCJvcmRlciIsIm9ycGhhbnMiLCJ0YWJTaXplIiwid2lkb3dzIiwiekluZGV4Iiwiem9vbSIsImZpbGxPcGFjaXR5IiwiZmxvb2RPcGFjaXR5Iiwic3RvcE9wYWNpdHkiLCJzdHJva2VEYXNoYXJyYXkiLCJzdHJva2VEYXNob2Zmc2V0Iiwic3Ryb2tlTWl0ZXJsaW1pdCIsInN0cm9rZU9wYWNpdHkiLCJzdHJva2VXaWR0aCIsInFiIiwicmIiLCJzYiIsInNldFByb3BlcnR5IiwidGIiLCJtZW51aXRlbSIsImFyZWEiLCJiciIsImNvbCIsImVtYmVkIiwiaHIiLCJpbWciLCJrZXlnZW4iLCJsaW5rIiwicGFyYW0iLCJ0cmFjayIsIndiciIsInViIiwidmIiLCJ3YiIsInhiIiwic3JjRWxlbWVudCIsImNvcnJlc3BvbmRpbmdVc2VFbGVtZW50IiwieWIiLCJ6YiIsIkFiIiwiQmIiLCJDYiIsInN0YXRlTm9kZSIsIkRiIiwiRWIiLCJGYiIsIkdiIiwiSGIiLCJJYiIsIkpiIiwiS2IiLCJMYiIsIk1iIiwiTmIiLCJvbkVycm9yIiwiT2IiLCJQYiIsIlFiIiwiUmIiLCJTYiIsIlRiIiwiVmIiLCJhbHRlcm5hdGUiLCJyZXR1cm4iLCJXYiIsIm1lbW9pemVkU3RhdGUiLCJkZWh5ZHJhdGVkIiwiWGIiLCJaYiIsIlliIiwic2libGluZyIsIiRiIiwiYWMiLCJ1bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrIiwiYmMiLCJ1bnN0YWJsZV9jYW5jZWxDYWxsYmFjayIsImNjIiwidW5zdGFibGVfc2hvdWxkWWllbGQiLCJkYyIsInVuc3RhYmxlX3JlcXVlc3RQYWludCIsIkIiLCJ1bnN0YWJsZV9ub3ciLCJlYyIsInVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsIiwiZmMiLCJ1bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eSIsImdjIiwidW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHkiLCJoYyIsInVuc3RhYmxlX05vcm1hbFByaW9yaXR5IiwiaWMiLCJ1bnN0YWJsZV9Mb3dQcmlvcml0eSIsImpjIiwidW5zdGFibGVfSWRsZVByaW9yaXR5Iiwia2MiLCJsYyIsIm9jIiwiY2x6MzIiLCJuYyIsInBjIiwicWMiLCJyYyIsInNjIiwidGMiLCJ1YyIsInBlbmRpbmdMYW5lcyIsInN1c3BlbmRlZExhbmVzIiwicGluZ2VkTGFuZXMiLCJlbnRhbmdsZWRMYW5lcyIsImVudGFuZ2xlbWVudHMiLCJ2YyIsInhjIiwieWMiLCJ6YyIsIkFjIiwiZXZlbnRUaW1lcyIsIkNjIiwiQyIsIkRjIiwiRWMiLCJGYyIsIkdjIiwiSGMiLCJJYyIsIkpjIiwiS2MiLCJMYyIsIk1jIiwiTmMiLCJPYyIsIlBjIiwiUWMiLCJSYyIsIlNjIiwicG9pbnRlcklkIiwiVGMiLCJuYXRpdmVFdmVudCIsImJsb2NrZWRPbiIsImRvbUV2ZW50TmFtZSIsImV2ZW50U3lzdGVtRmxhZ3MiLCJ0YXJnZXRDb250YWluZXJzIiwiVmMiLCJXYyIsImlzRGVoeWRyYXRlZCIsImNvbnRhaW5lckluZm8iLCJYYyIsIlljIiwiZGlzcGF0Y2hFdmVudCIsIlpjIiwiJGMiLCJhZCIsImJkIiwiY2QiLCJSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyIsImRkIiwiZWQiLCJ0cmFuc2l0aW9uIiwiZmQiLCJnZCIsImhkIiwiVWMiLCJqZCIsImtkIiwibGQiLCJuZCIsIm9kIiwia2V5Q29kZSIsImNoYXJDb2RlIiwicGQiLCJxZCIsInJkIiwiX3JlYWN0TmFtZSIsIl90YXJnZXRJbnN0IiwiY3VycmVudFRhcmdldCIsImlzRGVmYXVsdFByZXZlbnRlZCIsImRlZmF1bHRQcmV2ZW50ZWQiLCJpc1Byb3BhZ2F0aW9uU3RvcHBlZCIsImNhbmNlbEJ1YmJsZSIsImlzUGVyc2lzdGVudCIsIndkIiwieGQiLCJ5ZCIsInNkIiwiZXZlbnRQaGFzZSIsImJ1YmJsZXMiLCJjYW5jZWxhYmxlIiwidGltZVN0YW1wIiwiaXNUcnVzdGVkIiwidGQiLCJ1ZCIsInZpZXciLCJkZXRhaWwiLCJ2ZCIsIkFkIiwic2NyZWVuWCIsInNjcmVlblkiLCJjbGllbnRYIiwiY2xpZW50WSIsInBhZ2VYIiwicGFnZVkiLCJjdHJsS2V5Iiwic2hpZnRLZXkiLCJhbHRLZXkiLCJtZXRhS2V5IiwiZ2V0TW9kaWZpZXJTdGF0ZSIsInpkIiwiYnV0dG9uIiwiYnV0dG9ucyIsInJlbGF0ZWRUYXJnZXQiLCJmcm9tRWxlbWVudCIsIm1vdmVtZW50WCIsIm1vdmVtZW50WSIsIkJkIiwiRGQiLCJkYXRhVHJhbnNmZXIiLCJGZCIsIkhkIiwiYW5pbWF0aW9uTmFtZSIsImVsYXBzZWRUaW1lIiwicHNldWRvRWxlbWVudCIsIklkIiwiSmQiLCJMZCIsIk1kIiwiRXNjIiwiU3BhY2ViYXIiLCJMZWZ0IiwiVXAiLCJSaWdodCIsIkRvd24iLCJEZWwiLCJXaW4iLCJNZW51IiwiQXBwcyIsIlNjcm9sbCIsIk1velByaW50YWJsZUtleSIsIk5kIiwiT2QiLCJBbHQiLCJDb250cm9sIiwiTWV0YSIsIlNoaWZ0IiwiUGQiLCJRZCIsImxvY2FsZSIsIndoaWNoIiwiUmQiLCJUZCIsIndpZHRoIiwiaGVpZ2h0IiwicHJlc3N1cmUiLCJ0YW5nZW50aWFsUHJlc3N1cmUiLCJ0aWx0WCIsInRpbHRZIiwidHdpc3QiLCJwb2ludGVyVHlwZSIsImlzUHJpbWFyeSIsIlZkIiwidGFyZ2V0VG91Y2hlcyIsImNoYW5nZWRUb3VjaGVzIiwiWGQiLCJZZCIsImRlbHRhWCIsIndoZWVsRGVsdGFYIiwiZGVsdGFZIiwid2hlZWxEZWx0YVkiLCJ3aGVlbERlbHRhIiwiZGVsdGFaIiwiZGVsdGFNb2RlIiwiWmQiLCIkZCIsImFlIiwiYmUiLCJkb2N1bWVudE1vZGUiLCJjZSIsImRlIiwiZWUiLCJmZSIsImdlIiwiaGUiLCJpZSIsImxlIiwiY29sb3IiLCJkYXRldGltZSIsImVtYWlsIiwibW9udGgiLCJwYXNzd29yZCIsInNlYXJjaCIsInRlbCIsIndlZWsiLCJtZSIsIm5lIiwib2UiLCJwZSIsInFlIiwic2UiLCJ0ZSIsInVlIiwidmUiLCJ3ZSIsInhlIiwieWUiLCJ6ZSIsIm9uaW5wdXQiLCJBZSIsImRldGFjaEV2ZW50IiwiQmUiLCJDZSIsImF0dGFjaEV2ZW50IiwiRGUiLCJFZSIsIkZlIiwiSGUiLCJHZSIsIkllIiwiSmUiLCJLZSIsIkxlIiwiY29tcGFyZURvY3VtZW50UG9zaXRpb24iLCJNZSIsIkhUTUxJRnJhbWVFbGVtZW50IiwiY29udGVudFdpbmRvdyIsIk5lIiwiY29udGVudEVkaXRhYmxlIiwiT2UiLCJmb2N1c2VkRWxlbSIsInNlbGVjdGlvblJhbmdlIiwic2VsZWN0aW9uU3RhcnQiLCJzZWxlY3Rpb25FbmQiLCJkZWZhdWx0VmlldyIsInJhbmdlQ291bnQiLCJhbmNob3JOb2RlIiwiYW5jaG9yT2Zmc2V0IiwiZm9jdXNOb2RlIiwiZm9jdXNPZmZzZXQiLCJzZXRTdGFydCIsInNldEVuZCIsInNjcm9sbExlZnQiLCJzY3JvbGxUb3AiLCJmb2N1cyIsIlBlIiwiUWUiLCJSZSIsIlNlIiwiVGUiLCJVZSIsIlZlIiwiV2UiLCJhbmltYXRpb25lbmQiLCJhbmltYXRpb25pdGVyYXRpb24iLCJhbmltYXRpb25zdGFydCIsInRyYW5zaXRpb25lbmQiLCJYZSIsIlllIiwiWmUiLCJhbmltYXRpb24iLCIkZSIsImFmIiwiYmYiLCJjZiIsImRmIiwiZWYiLCJmZiIsImdmIiwiaGYiLCJsZiIsIm1mIiwibmYiLCJVYiIsIkQiLCJwZiIsInFmIiwicmYiLCJzZiIsImNhcHR1cmUiLCJwYXNzaXZlIiwidCIsIkoiLCJ1IiwiRiIsInRmIiwidWYiLCJwYXJlbnRXaW5kb3ciLCJ2ZiIsIndmIiwibmEiLCJ4YSIsIiRhIiwiYmEiLCJqZSIsImtlIiwiY2hhciIsInhmIiwieWYiLCJ6ZiIsIkFmIiwiQmYiLCJDZiIsIkRmIiwiRWYiLCJfX2h0bWwiLCJGZiIsIkdmIiwiSGYiLCJKZiIsInF1ZXVlTWljcm90YXNrIiwidGhlbiIsImNhdGNoIiwiSWYiLCJLZiIsIkxmIiwiTWYiLCJwcmV2aW91c1NpYmxpbmciLCJOZiIsIk9mIiwiUGYiLCJRZiIsIlJmIiwiU2YiLCJUZiIsIlVmIiwiRyIsIlZmIiwiSCIsIldmIiwiWGYiLCJZZiIsImNvbnRleHRUeXBlcyIsIl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQiLCJfX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dCIsIlpmIiwiY2hpbGRDb250ZXh0VHlwZXMiLCIkZiIsImFnIiwiYmciLCJnZXRDaGlsZENvbnRleHQiLCJjZyIsIl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0IiwiZGciLCJlZyIsImZnIiwiZ2ciLCJoZyIsImpnIiwia2ciLCJsZyIsIm1nIiwibmciLCJvZyIsInBnIiwicWciLCJyZyIsInNnIiwidGciLCJ1ZyIsInZnIiwid2ciLCJ4ZyIsInlnIiwiSSIsInpnIiwiQWciLCJCZyIsImRlbGV0aW9ucyIsIkNnIiwicGVuZGluZ1Byb3BzIiwib3ZlcmZsb3ciLCJ0cmVlQ29udGV4dCIsInJldHJ5TGFuZSIsIkRnIiwiRWciLCJGZyIsIkdnIiwibWVtb2l6ZWRQcm9wcyIsIkhnIiwiSWciLCJKZyIsIktnIiwiTGciLCJkZWZhdWx0UHJvcHMiLCJNZyIsIk5nIiwiT2ciLCJQZyIsIlFnIiwiUmciLCJfY3VycmVudFZhbHVlIiwiU2ciLCJjaGlsZExhbmVzIiwiVGciLCJkZXBlbmRlbmNpZXMiLCJmaXJzdENvbnRleHQiLCJsYW5lcyIsIlVnIiwiVmciLCJtZW1vaXplZFZhbHVlIiwiV2ciLCJYZyIsIllnIiwiWmciLCIkZyIsImFoIiwidXBkYXRlUXVldWUiLCJiYXNlU3RhdGUiLCJmaXJzdEJhc2VVcGRhdGUiLCJsYXN0QmFzZVVwZGF0ZSIsInNoYXJlZCIsInBlbmRpbmciLCJlZmZlY3RzIiwiYmgiLCJjaCIsImV2ZW50VGltZSIsImxhbmUiLCJkaCIsIksiLCJlaCIsImZoIiwiZ2giLCJxIiwiciIsImhoIiwiaWgiLCJqaCIsImtoIiwibmgiLCJpc01vdW50ZWQiLCJfcmVhY3RJbnRlcm5hbHMiLCJlbnF1ZXVlU2V0U3RhdGUiLCJMIiwibGgiLCJtaCIsImVucXVldWVSZXBsYWNlU3RhdGUiLCJlbnF1ZXVlRm9yY2VVcGRhdGUiLCJvaCIsInNob3VsZENvbXBvbmVudFVwZGF0ZSIsImlzUHVyZVJlYWN0Q29tcG9uZW50IiwicGgiLCJjb250ZXh0VHlwZSIsInFoIiwiY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyIsIlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIiwicmgiLCJnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMiLCJnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSIsIlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQiLCJjb21wb25lbnRXaWxsTW91bnQiLCJjb21wb25lbnREaWRNb3VudCIsInNoIiwiX293bmVyIiwiX3N0cmluZ1JlZiIsInRoIiwidWgiLCJ2aCIsIndoIiwieGgiLCJ5aCIsInpoIiwiQWgiLCJCaCIsIkNoIiwiRGgiLCJFaCIsIkZoIiwiR2giLCJIaCIsIkloIiwiSmgiLCJLaCIsIkxoIiwiTSIsIk1oIiwicmV2ZWFsT3JkZXIiLCJOaCIsIk9oIiwiX3dvcmtJblByb2dyZXNzVmVyc2lvblByaW1hcnkiLCJQaCIsIlJlYWN0Q3VycmVudERpc3BhdGNoZXIiLCJRaCIsIlJoIiwiTiIsIlAiLCJTaCIsIlRoIiwiVWgiLCJWaCIsIlEiLCJXaCIsIlhoIiwiWWgiLCJaaCIsIiRoIiwiYWkiLCJiaSIsImNpIiwiYmFzZVF1ZXVlIiwiZGkiLCJlaSIsImZpIiwibGFzdFJlbmRlcmVkUmVkdWNlciIsImFjdGlvbiIsImhhc0VhZ2VyU3RhdGUiLCJlYWdlclN0YXRlIiwibGFzdFJlbmRlcmVkU3RhdGUiLCJkaXNwYXRjaCIsImdpIiwiamkiLCJraSIsImdldFNuYXBzaG90IiwibGkiLCJtaSIsIm5pIiwibGFzdEVmZmVjdCIsInN0b3JlcyIsIm9pIiwicGkiLCJxaSIsInJpIiwiZGVzdHJveSIsImRlcHMiLCJzaSIsInRpIiwidWkiLCJ2aSIsIndpIiwieGkiLCJ5aSIsInppIiwiQWkiLCJCaSIsIkNpIiwiRGkiLCJFaSIsIkZpIiwiR2kiLCJIaSIsIklpIiwiSmkiLCJyZWFkQ29udGV4dCIsInVzZUNhbGxiYWNrIiwidXNlQ29udGV4dCIsInVzZUVmZmVjdCIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJ1c2VJbnNlcnRpb25FZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVkdWNlciIsInVzZVJlZiIsInVzZVN0YXRlIiwidXNlRGVidWdWYWx1ZSIsInVzZURlZmVycmVkVmFsdWUiLCJ1c2VUcmFuc2l0aW9uIiwidXNlTXV0YWJsZVNvdXJjZSIsInVzZVN5bmNFeHRlcm5hbFN0b3JlIiwidXNlSWQiLCJ1bnN0YWJsZV9pc05ld1JlY29uY2lsZXIiLCJpZGVudGlmaWVyUHJlZml4IiwiS2kiLCJkaWdlc3QiLCJMaSIsIk1pIiwiTmkiLCJPaSIsIlBpIiwiUWkiLCJSaSIsImdldERlcml2ZWRTdGF0ZUZyb21FcnJvciIsImNvbXBvbmVudERpZENhdGNoIiwiU2kiLCJjb21wb25lbnRTdGFjayIsIlRpIiwicGluZ0NhY2hlIiwiVWkiLCJWaSIsIldpIiwiWGkiLCJSZWFjdEN1cnJlbnRPd25lciIsIllpIiwiWmkiLCIkaSIsImFqIiwiYmoiLCJjaiIsImRqIiwiZWoiLCJiYXNlTGFuZXMiLCJjYWNoZVBvb2wiLCJ0cmFuc2l0aW9ucyIsImZqIiwiZ2oiLCJoaiIsImlqIiwiamoiLCJVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSIsImNvbXBvbmVudFdpbGxVcGRhdGUiLCJraiIsImxqIiwicGVuZGluZ0NvbnRleHQiLCJtaiIsIkFqIiwiQmoiLCJDaiIsIkRqIiwibmoiLCJvaiIsInBqIiwiZmFsbGJhY2siLCJxaiIsInJqIiwic2oiLCJ0aiIsImRhdGFzZXQiLCJkZ3N0IiwidWoiLCJ2aiIsIl9yZWFjdFJldHJ5Iiwic3VidHJlZUZsYWdzIiwid2oiLCJ4aiIsImlzQmFja3dhcmRzIiwicmVuZGVyaW5nIiwicmVuZGVyaW5nU3RhcnRUaW1lIiwidGFpbE1vZGUiLCJ5aiIsIkVqIiwiUyIsIkZqIiwiR2oiLCJ3YXNNdWx0aXBsZSIsIm11bHRpcGxlIiwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIiwib25jbGljayIsImNyZWF0ZUVsZW1lbnROUyIsImF1dG9Gb2N1cyIsIlQiLCJIaiIsIklqIiwiSmoiLCJLaiIsIlUiLCJMaiIsIlYiLCJNaiIsIlciLCJOaiIsIk9qIiwiUWoiLCJSaiIsIlNqIiwiVGoiLCJVaiIsIlZqIiwiV2oiLCJfcmVhY3RSb290Q29udGFpbmVyIiwiWGoiLCJYIiwiWWoiLCJaaiIsImFrIiwib25Db21taXRGaWJlclVubW91bnQiLCJiayIsImNrIiwiZGsiLCJlayIsImZrIiwiaXNIaWRkZW4iLCJnayIsImhrIiwiaWsiLCJqayIsImtrIiwibGsiLCJfX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZSIsIldrIiwibWsiLCJuayIsIm9rIiwicGsiLCJZIiwiWiIsInFrIiwicmsiLCJzayIsInRrIiwidWsiLCJ2ayIsIndrIiwieGsiLCJ5ayIsInprIiwiQWsiLCJCayIsIkNrIiwiRGsiLCJFayIsImNhbGxiYWNrTm9kZSIsIndjIiwiZXhwaXJhdGlvblRpbWVzIiwiZXhwaXJlZExhbmVzIiwiY2FsbGJhY2tQcmlvcml0eSIsImlnIiwiRmsiLCJHayIsIkhrIiwiSWsiLCJKayIsIktrIiwiTGsiLCJNayIsIk5rIiwiT2siLCJQayIsImZpbmlzaGVkV29yayIsImZpbmlzaGVkTGFuZXMiLCJRayIsInRpbWVvdXRIYW5kbGUiLCJSayIsIlNrIiwiVGsiLCJVayIsIlZrIiwiWGsiLCJCYyIsIm11dGFibGVSZWFkTGFuZXMiLCJQaiIsIm1jIiwib25Db21taXRGaWJlclJvb3QiLCJvblJlY292ZXJhYmxlRXJyb3IiLCJvblBvc3RDb21taXRGaWJlclJvb3QiLCJZayIsIlprIiwiYWwiLCJpc1JlYWN0Q29tcG9uZW50IiwicGVuZGluZ0NoaWxkcmVuIiwiYmwiLCJtdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhIiwiY2wiLCJwZW5kaW5nU3VzcGVuc2VCb3VuZGFyaWVzIiwiZmwiLCJnbCIsImhsIiwiaWwiLCJqbCIsInpqIiwiJGsiLCJsbCIsInJlcG9ydEVycm9yIiwibWwiLCJfaW50ZXJuYWxSb290IiwibmwiLCJvbCIsInBsIiwicWwiLCJzbCIsInJsIiwidW5tb3VudCIsInVuc3RhYmxlX3NjaGVkdWxlSHlkcmF0aW9uIiwiZm9ybSIsInRsIiwidXNpbmdDbGllbnRFbnRyeVBvaW50IiwiRXZlbnRzIiwidWwiLCJmaW5kRmliZXJCeUhvc3RJbnN0YW5jZSIsImJ1bmRsZVR5cGUiLCJyZW5kZXJlclBhY2thZ2VOYW1lIiwidmwiLCJyZW5kZXJlckNvbmZpZyIsIm92ZXJyaWRlSG9va1N0YXRlIiwib3ZlcnJpZGVIb29rU3RhdGVEZWxldGVQYXRoIiwib3ZlcnJpZGVIb29rU3RhdGVSZW5hbWVQYXRoIiwib3ZlcnJpZGVQcm9wcyIsIm92ZXJyaWRlUHJvcHNEZWxldGVQYXRoIiwib3ZlcnJpZGVQcm9wc1JlbmFtZVBhdGgiLCJzZXRFcnJvckhhbmRsZXIiLCJzZXRTdXNwZW5zZUhhbmRsZXIiLCJzY2hlZHVsZVVwZGF0ZSIsImN1cnJlbnREaXNwYXRjaGVyUmVmIiwiZmluZEhvc3RJbnN0YW5jZUJ5RmliZXIiLCJrbCIsImZpbmRIb3N0SW5zdGFuY2VzRm9yUmVmcmVzaCIsInNjaGVkdWxlUmVmcmVzaCIsInNjaGVkdWxlUm9vdCIsInNldFJlZnJlc2hIYW5kbGVyIiwiZ2V0Q3VycmVudEZpYmVyIiwicmVjb25jaWxlclZlcnNpb24iLCJfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18iLCJ3bCIsImlzRGlzYWJsZWQiLCJzdXBwb3J0c0ZpYmVyIiwiaW5qZWN0IiwiY3JlYXRlUG9ydGFsIiwiZGwiLCJjcmVhdGVSb290IiwidW5zdGFibGVfc3RyaWN0TW9kZSIsImZpbmRET01Ob2RlIiwiZmx1c2hTeW5jIiwiaHlkcmF0ZSIsImh5ZHJhdGVSb290IiwiaHlkcmF0ZWRTb3VyY2VzIiwiX2dldFZlcnNpb24iLCJfc291cmNlIiwidW5tb3VudENvbXBvbmVudEF0Tm9kZSIsInVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzIiwidW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXIiLCJjaGVja0RDRSIsIkltbXV0YWJsZVByb3BUeXBlcyIsIkltbXV0YWJsZSIsIkFOT05ZTU9VUyIsInByb2R1Y3Rpb25UeXBlQ2hlY2tlciIsImdldFByb2R1Y3Rpb25UeXBlQ2hlY2tlciIsImdldFByb3BUeXBlIiwicHJvcFZhbHVlIiwicHJvcFR5cGUiLCJjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlciIsInZhbGlkYXRlIiwiY2hlY2tUeXBlIiwiY2hhaW5lZENoZWNrVHlwZSIsImNyZWF0ZUl0ZXJhYmxlU3ViY2xhc3NUeXBlQ2hlY2tlciIsInN1YmNsYXNzTmFtZSIsInZhbGlkYXRvciIsImNyZWF0ZUltbXV0YWJsZVR5cGVDaGVja2VyIiwiaW1tdXRhYmxlQ2xhc3NOYW1lIiwiaW1tdXRhYmxlQ2xhc3NUeXBlVmFsaWRhdG9yIiwibGlzdE9mIiwibWFwT2YiLCJvcmRlcmVkTWFwT2YiLCJzZXRPZiIsIm9yZGVyZWRTZXRPZiIsInN0YWNrT2YiLCJpdGVyYWJsZU9mIiwicmVjb3JkT2YiLCJtYXBDb250YWlucyIsIm9yZGVyZWRNYXBDb250YWlucyIsIm9yZGVyZWRNYXAiLCJvcmRlcmVkU2V0IiwiZm9yY2VVcGRhdGUiLCJfX3NlbGYiLCJfX3NvdXJjZSIsIl9zdGF0dXMiLCJfcmVzdWx0IiwiRnJhZ21lbnQiLCJQcm9maWxlciIsIlN0cmljdE1vZGUiLCJTdXNwZW5zZSIsImNyZWF0ZUNvbnRleHQiLCJfY3VycmVudFZhbHVlMiIsIl90aHJlYWRDb3VudCIsIlByb3ZpZGVyIiwiQ29uc3VtZXIiLCJfZGVmYXVsdFZhbHVlIiwiX2dsb2JhbE5hbWUiLCJjcmVhdGVGYWN0b3J5IiwiY3JlYXRlUmVmIiwiZm9yd2FyZFJlZiIsImlzVmFsaWRFbGVtZW50IiwibGF6eSIsInN0YXJ0VHJhbnNpdGlvbiIsInVuc3RhYmxlX2FjdCIsImNvZGVzIiwiY3JlYXRlRXJyb3JUeXBlIiwiX0Jhc2UiLCJhcmcxIiwiYXJnMiIsImFyZzMiLCJfaW5oZXJpdHNMb29zZSIsImV4cGVjdGVkIiwidGhpbmciLCJkZXRlcm1pbmVyIiwiZW5kc1dpdGgiLCJ0aGlzX2xlbiIsIm9iamVjdEtleXMiLCJEdXBsZXgiLCJSZWFkYWJsZSIsIldyaXRhYmxlIiwibWV0aG9kIiwiYWxsb3dIYWxmT3BlbiIsInJlYWRhYmxlIiwib25lbmQiLCJfd3JpdGFibGVTdGF0ZSIsImVuZGVkIiwib25FbmROVCIsImhpZ2hXYXRlck1hcmsiLCJnZXRCdWZmZXIiLCJfcmVhZGFibGVTdGF0ZSIsImRlc3Ryb3llZCIsIlBhc3NUaHJvdWdoIiwiVHJhbnNmb3JtIiwiX3RyYW5zZm9ybSIsImNodW5rIiwiUmVhZGFibGVTdGF0ZSIsIkVFbGlzdGVuZXJDb3VudCIsIlN0cmVhbSIsIk91clVpbnQ4QXJyYXkiLCJkZWJ1Z1V0aWwiLCJkZWJ1Z2xvZyIsIlN0cmluZ0RlY29kZXIiLCJjcmVhdGVSZWFkYWJsZVN0cmVhbUFzeW5jSXRlcmF0b3IiLCJCdWZmZXJMaXN0IiwiZGVzdHJveUltcGwiLCJnZXRIaWdoV2F0ZXJNYXJrIiwiX3JlcXVpcmUkY29kZXMiLCJFUlJfU1RSRUFNX1BVU0hfQUZURVJfRU9GIiwiRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQiLCJFUlJfU1RSRUFNX1VOU0hJRlRfQUZURVJfRU5EX0VWRU5UIiwiZXJyb3JPckRlc3Ryb3kiLCJrUHJveHlFdmVudHMiLCJpc0R1cGxleCIsIm9iamVjdE1vZGUiLCJyZWFkYWJsZU9iamVjdE1vZGUiLCJwaXBlcyIsInBpcGVzQ291bnQiLCJmbG93aW5nIiwiZW5kRW1pdHRlZCIsInJlYWRpbmciLCJzeW5jIiwibmVlZFJlYWRhYmxlIiwiZW1pdHRlZFJlYWRhYmxlIiwicmVhZGFibGVMaXN0ZW5pbmciLCJyZXN1bWVTY2hlZHVsZWQiLCJwYXVzZWQiLCJlbWl0Q2xvc2UiLCJhdXRvRGVzdHJveSIsImRlZmF1bHRFbmNvZGluZyIsImF3YWl0RHJhaW4iLCJyZWFkaW5nTW9yZSIsIl9yZWFkIiwiX2Rlc3Ryb3kiLCJyZWFkYWJsZUFkZENodW5rIiwiYWRkVG9Gcm9udCIsInNraXBDaHVua0NoZWNrIiwib25Fb2ZDaHVuayIsImVtaXRSZWFkYWJsZSIsImVtaXRSZWFkYWJsZV8iLCJjaHVua0ludmFsaWQiLCJfaXNVaW50OEFycmF5IiwiX3VpbnQ4QXJyYXlUb0J1ZmZlciIsImFkZENodW5rIiwibWF5YmVSZWFkTW9yZSIsIl91bmRlc3Ryb3kiLCJ1bmRlc3Ryb3kiLCJpc1BhdXNlZCIsInNldEVuY29kaW5nIiwiTUFYX0hXTSIsImhvd011Y2hUb1JlYWQiLCJjb21wdXRlTmV3SGlnaFdhdGVyTWFyayIsImZsb3ciLCJtYXliZVJlYWRNb3JlXyIsInVwZGF0ZVJlYWRhYmxlTGlzdGVuaW5nIiwicmVzdW1lIiwiblJlYWRpbmdOZXh0VGljayIsInJlc3VtZV8iLCJmcm9tTGlzdCIsImNvbnN1bWUiLCJlbmRSZWFkYWJsZSIsImVuZFJlYWRhYmxlTlQiLCJ3U3RhdGUiLCJmaW5pc2hlZCIsIm5PcmlnIiwiZG9SZWFkIiwicGlwZSIsImRlc3QiLCJwaXBlT3B0cyIsImVuZEZuIiwic3Rkb3V0Iiwic3RkZXJyIiwidW5waXBlIiwib251bnBpcGUiLCJ1bnBpcGVJbmZvIiwiaGFzVW5waXBlZCIsImNsZWFudXAiLCJvbmNsb3NlIiwib25maW5pc2giLCJvbmRyYWluIiwib25lcnJvciIsIm9uZGF0YSIsImNsZWFuZWRVcCIsIm5lZWREcmFpbiIsInBpcGVPbkRyYWluIiwicGlwZU9uRHJhaW5GdW5jdGlvblJlc3VsdCIsInBhdXNlIiwiZGVzdHMiLCJldiIsIm1ldGhvZFdyYXAiLCJtZXRob2RXcmFwUmV0dXJuRnVuY3Rpb24iLCJhc3luY0l0ZXJhdG9yIiwiX2Zyb21MaXN0IiwiRVJSX01VTFRJUExFX0NBTExCQUNLIiwiRVJSX1RSQU5TRk9STV9BTFJFQURZX1RSQU5TRk9STUlORyIsIkVSUl9UUkFOU0ZPUk1fV0lUSF9MRU5HVEhfMCIsImFmdGVyVHJhbnNmb3JtIiwidHMiLCJfdHJhbnNmb3JtU3RhdGUiLCJ0cmFuc2Zvcm1pbmciLCJ3cml0ZWNiIiwid3JpdGVjaHVuayIsInJzIiwibmVlZFRyYW5zZm9ybSIsIndyaXRlZW5jb2RpbmciLCJfZmx1c2giLCJwcmVmaW5pc2giLCJfd3JpdGUiLCJlcnIyIiwiQ29ya2VkUmVxdWVzdCIsImZpbmlzaCIsIm9uQ29ya2VkRmluaXNoIiwiY29ya1JlcSIsInBlbmRpbmdjYiIsImNvcmtlZFJlcXVlc3RzRnJlZSIsIldyaXRhYmxlU3RhdGUiLCJpbnRlcm5hbFV0aWwiLCJkZXByZWNhdGUiLCJyZWFsSGFzSW5zdGFuY2UiLCJFUlJfU1RSRUFNX0NBTk5PVF9QSVBFIiwiRVJSX1NUUkVBTV9ERVNUUk9ZRUQiLCJFUlJfU1RSRUFNX05VTExfVkFMVUVTIiwiRVJSX1NUUkVBTV9XUklURV9BRlRFUl9FTkQiLCJFUlJfVU5LTk9XTl9FTkNPRElORyIsIm5vcCIsIndyaXRhYmxlT2JqZWN0TW9kZSIsImZpbmFsQ2FsbGVkIiwiZW5kaW5nIiwibm9EZWNvZGUiLCJkZWNvZGVTdHJpbmdzIiwid3JpdGluZyIsImNvcmtlZCIsImJ1ZmZlclByb2Nlc3NpbmciLCJvbndyaXRlIiwib253cml0ZVN0YXRlVXBkYXRlIiwid3JpdGVsZW4iLCJvbndyaXRlRXJyb3IiLCJmaW5pc2hNYXliZSIsImVycm9yRW1pdHRlZCIsIm5lZWRGaW5pc2giLCJidWZmZXJlZFJlcXVlc3QiLCJjbGVhckJ1ZmZlciIsImFmdGVyV3JpdGUiLCJsYXN0QnVmZmVyZWRSZXF1ZXN0IiwicHJlZmluaXNoZWQiLCJidWZmZXJlZFJlcXVlc3RDb3VudCIsIndyaXRldiIsIl93cml0ZXYiLCJmaW5hbCIsIl9maW5hbCIsImRvV3JpdGUiLCJvbndyaXRlRHJhaW4iLCJob2xkZXIiLCJhbGxCdWZmZXJzIiwiaXNCdWYiLCJjYWxsRmluYWwiLCJuZWVkIiwiclN0YXRlIiwid3JpdGFibGVTdGF0ZUJ1ZmZlckdldHRlciIsImhhc0luc3RhbmNlIiwid3JpdGVBZnRlckVuZCIsInZhbGlkQ2h1bmsiLCJ3cml0ZU9yQnVmZmVyIiwibmV3Q2h1bmsiLCJkZWNvZGVDaHVuayIsImNvcmsiLCJ1bmNvcmsiLCJzZXREZWZhdWx0RW5jb2RpbmciLCJlbmRXcml0YWJsZSIsIl9PYmplY3Qkc2V0UHJvdG90eXBlTyIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiaGludCIsInByaW0iLCJrTGFzdFJlc29sdmUiLCJrTGFzdFJlamVjdCIsImtFcnJvciIsImtFbmRlZCIsImtMYXN0UHJvbWlzZSIsImtIYW5kbGVQcm9taXNlIiwia1N0cmVhbSIsImNyZWF0ZUl0ZXJSZXN1bHQiLCJyZWFkQW5kUmVzb2x2ZSIsIm9uUmVhZGFibGUiLCJBc3luY0l0ZXJhdG9yUHJvdG90eXBlIiwiUmVhZGFibGVTdHJlYW1Bc3luY0l0ZXJhdG9yUHJvdG90eXBlIiwicHJvbWlzZSIsImxhc3RQcm9taXNlIiwid3JhcEZvck5leHQiLCJfcmV0dXJuIiwiX3RoaXMyIiwiX09iamVjdCRjcmVhdGUiLCJoYXNTdHJpbmdzIiwiX2dldFN0cmluZyIsIl9nZXRCdWZmZXIiLCJlbWl0RXJyb3JBbmRDbG9zZU5UIiwiZW1pdEVycm9yTlQiLCJlbWl0Q2xvc2VOVCIsInJlYWRhYmxlRGVzdHJveWVkIiwid3JpdGFibGVEZXN0cm95ZWQiLCJFUlJfU1RSRUFNX1BSRU1BVFVSRV9DTE9TRSIsImVvcyIsIm9ubGVnYWN5ZmluaXNoIiwid3JpdGFibGVFbmRlZCIsInJlYWRhYmxlRW5kZWQiLCJvbnJlcXVlc3QiLCJyZXEiLCJpc1JlcXVlc3QiLCJzZXRIZWFkZXIiLCJhYm9ydCIsIkVSUl9NSVNTSU5HX0FSR1MiLCJwaXBlbGluZSIsInN0cmVhbXMiLCJwb3BDYWxsYmFjayIsImRlc3Ryb3lzIiwiZGVzdHJveWVyIiwiY2xvc2VkIiwiRVJSX0lOVkFMSURfT1BUX1ZBTFVFIiwiZHVwbGV4S2V5IiwiaHdtIiwiaGlnaFdhdGVyTWFya0Zyb20iLCJfaW1tdXRhYmxlMiIsIl91dGlsaXRpZXMiLCJyZWR1Y2VycyIsImdldERlZmF1bHRTdGF0ZSIsInJlZHVjZXJLZXlzIiwiaW5wdXRTdGF0ZSIsInRlbXBvcmFyeVN0YXRlIiwicmVkdWNlck5hbWUiLCJuZXh0RG9tYWluU3RhdGUiLCJ2YWxpZGF0ZU5leHRTdGF0ZSIsIl9jb21iaW5lUmVkdWNlcnMzIiwiX2dldFN0YXRlTmFtZTIiLCJyZWR1Y2VyTmFtZXMiLCJzdGF0ZU5hbWUiLCJpc0ltbXV0YWJsZSIsInVuZXhwZWN0ZWRTdGF0ZVByb3BlcnR5TmFtZXMiLCJnZXRVbmV4cGVjdGVkSW52b2NhdGlvblBhcmFtZXRlck1lc3NhZ2UiLCJnZXRTdGF0ZU5hbWUiLCJfZ2V0U3RhdGVOYW1lMyIsIl9nZXRVbmV4cGVjdGVkSW52b2NhdGlvblBhcmFtZXRlck1lc3NhZ2UzIiwiX3ZhbGlkYXRlTmV4dFN0YXRlMyIsIm5leHRTdGF0ZSIsInJlcXVpcmVkIiwicG9ydCIsInByb3RvY29sIiwic2V0cyIsInBvc2l0aW9ucyIsInJlZ2V4cFN0ciIsImxhc3RHcm91cCIsImdyb3VwU3RhY2siLCJyZXBlYXRFcnIiLCJzdHJUb0NoYXJzIiwid29yZEJvdW5kYXJ5Iiwibm9uV29yZEJvdW5kYXJ5Iiwibm90V29yZHMiLCJpbnRzIiwibm90SW50cyIsIndoaXRlc3BhY2UiLCJub3RXaGl0ZXNwYWNlIiwiY2xhc3NUb2tlbnMiLCJ0b2tlbml6ZUNsYXNzIiwiYW55Q2hhciIsImdyb3VwIiwiSU5UUyIsIldPUkRTIiwiV0hJVEVTUEFDRSIsIlNMU0giLCJsYnMiLCJhMTYiLCJiMTYiLCJjOCIsImRjdHJsIiwiZXNsc2giLCJjb3B5UHJvcHMiLCJTYWZlQnVmZmVyIiwic29ydEluZGV4IiwicGVyZm9ybWFuY2UiLCJzZXRJbW1lZGlhdGUiLCJzdGFydFRpbWUiLCJleHBpcmF0aW9uVGltZSIsInByaW9yaXR5TGV2ZWwiLCJzY2hlZHVsaW5nIiwiaXNJbnB1dFBlbmRpbmciLCJNZXNzYWdlQ2hhbm5lbCIsInBvcnQyIiwicG9ydDEiLCJvbm1lc3NhZ2UiLCJwb3N0TWVzc2FnZSIsInVuc3RhYmxlX1Byb2ZpbGluZyIsInVuc3RhYmxlX2NvbnRpbnVlRXhlY3V0aW9uIiwidW5zdGFibGVfZm9yY2VGcmFtZVJhdGUiLCJ1bnN0YWJsZV9nZXRGaXJzdENhbGxiYWNrTm9kZSIsInVuc3RhYmxlX25leHQiLCJ1bnN0YWJsZV9wYXVzZUV4ZWN1dGlvbiIsInVuc3RhYmxlX3J1bldpdGhQcmlvcml0eSIsImRlbGF5IiwidW5zdGFibGVfd3JhcENhbGxiYWNrIiwiTm9uRXJyb3IiLCJfcHJlcGFyZVN1cGVyTWVzc2FnZSIsImNhcHR1cmVTdGFja1RyYWNlIiwiY29tbW9uUHJvcGVydGllcyIsImlzQ2FsbGVkIiwiZGVzdHJveUNpcmN1bGFyIiwidG9fIiwiZm9yY2VFbnVtZXJhYmxlIiwic2VyaWFsaXplRXJyb3IiLCJQT1NJVElWRV9JTkZJTklUWSIsImRlc2VyaWFsaXplRXJyb3IiLCJuZXdFcnJvciIsImRlZmluZSIsImhhc0Rlc2NyaXB0b3JzIiwiZ09QRCIsImZ1bmN0aW9uTGVuZ3RoSXNDb25maWd1cmFibGUiLCJmdW5jdGlvbkxlbmd0aElzV3JpdGFibGUiLCJibG9ja1NpemUiLCJmaW5hbFNpemUiLCJfYmxvY2siLCJfZmluYWxTaXplIiwiX2Jsb2NrU2l6ZSIsImFjY3VtIiwiYXNzaWduZWQiLCJfdXBkYXRlIiwicmVtIiwiYml0cyIsImxvd0JpdHMiLCJoaWdoQml0cyIsIl9oYXNoIiwiU0hBIiwiYWxnb3JpdGhtIiwiQWxnb3JpdGhtIiwic2hhIiwic2hhMSIsInNoYTIyNCIsInNoYTI1NiIsInNoYTM4NCIsInNoYTUxMiIsIlNoYSIsIl93Iiwicm90bDMwIiwiZnQiLCJfYSIsIl9iIiwiX2MiLCJfZCIsIl9lIiwiU2hhMSIsInJvdGw1IiwiU2hhMjU2IiwiU2hhMjI0IiwiX2YiLCJfZyIsIl9oIiwibWFqIiwic2lnbWEwIiwic2lnbWExIiwiZ2FtbWEwIiwiVDEiLCJUMiIsIlNIQTUxMiIsIlNoYTM4NCIsIl9haCIsIl9iaCIsIl9jaCIsIl9kaCIsIl9laCIsIl9maCIsIl9naCIsIl9oaCIsIl9hbCIsIl9ibCIsIl9jbCIsIl9kbCIsIl9lbCIsIl9mbCIsIl9nbCIsIl9obCIsIndyaXRlSW50NjRCRSIsIlNoYTUxMiIsInhsIiwiR2FtbWEwIiwiR2FtbWEwbCIsIkdhbW1hMSIsIkdhbW1hMWwiLCJnZXRDYXJyeSIsImdhbW1hMGwiLCJnYW1tYTEiLCJnYW1tYTFsIiwiV2k3aCIsIldpN2wiLCJXaTE2aCIsIldpMTZsIiwiV2lsIiwiV2loIiwibWFqaCIsIm1hamwiLCJzaWdtYTBoIiwic2lnbWEwbCIsInNpZ21hMWgiLCJzaWdtYTFsIiwiS2loIiwiS2lsIiwiY2hoIiwiY2hsIiwidDFsIiwidDFoIiwidDJsIiwidDJoIiwiU2hvcnRVbmlxdWVJZCIsIl9fZGVmUHJvcCIsIl9fZ2V0T3duUHJvcERlc2MiLCJfX2dldE93blByb3BOYW1lcyIsIl9fZ2V0T3duUHJvcFN5bWJvbHMiLCJfX2hhc093blByb3AiLCJfX3Byb3BJc0VudW0iLCJfX2RlZk5vcm1hbFByb3AiLCJfX3NwcmVhZFZhbHVlcyIsIl9fcHVibGljRmllbGQiLCJzcmNfZXhwb3J0cyIsIl9fZXhwb3J0IiwiREVGQVVMVF9PUFRJT05TIiwiREVGQVVMVF9VVUlEX0xFTkdUSCIsImRpY3Rpb25hcnkiLCJzaHVmZmxlIiwiY291bnRlciIsIl9TaG9ydFVuaXF1ZUlkIiwiYXJnT3B0aW9ucyIsIl9kaWdpdF9maXJzdF9hc2NpaSIsIl9kaWdpdF9sYXN0X2FzY2lpIiwibG93ZXJDYXNlIiwiX2FscGhhX2xvd2VyX2ZpcnN0X2FzY2lpIiwiX2FscGhhX2xvd2VyX2xhc3RfYXNjaWkiLCJ1cHBlckNhc2UiLCJfYWxwaGFfdXBwZXJfZmlyc3RfYXNjaWkiLCJfYWxwaGFfdXBwZXJfbGFzdF9hc2NpaSIsImRlY0RpZ2l0cyIsImFscGhhRGlnaXRzIiwiX2hleF9sYXN0X2FzY2lpIiwiX251bWJlcl9kaWN0X3JhbmdlcyIsIl9hbHBoYV9kaWN0X3JhbmdlcyIsIl9hbHBoYV9sb3dlcl9kaWN0X3JhbmdlcyIsIl9hbHBoYV91cHBlcl9kaWN0X3JhbmdlcyIsIl9hbHBoYW51bV9kaWN0X3JhbmdlcyIsIl9hbHBoYW51bV9sb3dlcl9kaWN0X3JhbmdlcyIsIl9hbHBoYW51bV91cHBlcl9kaWN0X3JhbmdlcyIsIl9oZXhfZGljdF9yYW5nZXMiLCJmaW5hbEFyZ3MiLCJmaW5hbERpY3QiLCJkaWN0SW5kZXgiLCJyYW5nZXNOYW1lIiwiX2RpY3RfcmFuZ2VzIiwicmFuZ2VUeXBlIiwicmFuZ2VUeXBlS2V5IiwiZGljdFJhbmdlIiwibG93ZXJCb3VuZCIsInVwcGVyQm91bmQiLCJQUk9CQUJJTElUWSIsImRpY3QiLCJkaWN0TGVuZ3RoIiwic2V0Q291bnRlciIsInNlcXVlbnRpYWxVVUlEIiwiY291bnRlckRpdiIsImNvdW50ZXJSZW0iLCJ0cnVuYyIsInV1aWRMZW5ndGgiLCJyYW5kb21VVUlEIiwicmFuZG9tUGFydElkeCIsImZvcm1hdHRlZFVVSUQiLCJmbk1hcCIsInBhZFN0YXJ0Iiwicm91bmRzIiwiYXZhaWxhYmxlVVVJRHMiLCJzcXJ0IiwiUEkiLCJhcHByb3hNYXhCZWZvcmVDb2xsaXNpb24iLCJzY29yZSIsImZpbmFsTGVuZ3RoIiwiaGV4U3RhbXAiLCJpZExlbmd0aCIsInJuZElkeCIsInJvdW5kIiwic3VpZCIsIl9tIiwicDEiLCJwMiIsInNldERpY3Rpb25hcnkiLCJybmQiLCJjb2xsaXNpb25Qcm9iYWJpbGl0eSIsInVuaXF1ZW5lc3MiLCJnZXRWZXJzaW9uIiwicGFyc2VTdGFtcCIsIm1vZCIsImV4Y2VwdCIsIl9fY29weVByb3BzIiwiY2FsbEJvdW5kIiwiJFdlYWtNYXAiLCIkTWFwIiwiJHdlYWtNYXBHZXQiLCIkd2Vha01hcFNldCIsIiR3ZWFrTWFwSGFzIiwiJG1hcEdldCIsIiRtYXBTZXQiLCIkbWFwSGFzIiwibGlzdEdldE5vZGUiLCJjdXJyIiwiJHdtIiwiJG0iLCIkbyIsImNoYW5uZWwiLCJhc3NlcnQiLCJsaXN0R2V0IiwibGlzdEhhcyIsImxpc3RTZXQiLCJzdGF0aWNzIiwiY29uZiIsImNvbXBvc2FibGVzIiwic3RhbXBpdCIsIkVFIiwiX2lzU3RkaW8iLCJkaWRPbkVuZCIsIm5vcm1hbGl6ZUVuY29kaW5nIiwibmVuYyIsIl9ub3JtYWxpemVFbmNvZGluZyIsInJldHJpZWQiLCJ1dGYxNlRleHQiLCJ1dGYxNkVuZCIsImZpbGxMYXN0IiwidXRmOEZpbGxMYXN0IiwiYmFzZTY0VGV4dCIsImJhc2U2NEVuZCIsInNpbXBsZVdyaXRlIiwic2ltcGxlRW5kIiwibGFzdE5lZWQiLCJsYXN0VG90YWwiLCJsYXN0Q2hhciIsInV0ZjhDaGVja0J5dGUiLCJieXRlIiwidXRmOENoZWNrRXh0cmFCeXRlcyIsInV0ZjhFbmQiLCJ1dGY4VGV4dCIsInRvdGFsIiwidXRmOENoZWNrSW5jb21wbGV0ZSIsImFjdGl2ZSIsImdldFJhbmdlQXQiLCJibHVyIiwidG9TIiwib3duRW51bWVyYWJsZUtleXMiLCJhbGl2ZSIsIndhbGtlciIsIm5vZGVfIiwibW9kaWZpZXJzIiwia2VlcEdvaW5nIiwiaXNSb290IiwiY2lyY3VsYXIiLCJzdG9wSGVyZSIsInByZSIsInBvc3QiLCJzdG9wIiwidXBkYXRlU3RhdGUiLCJpc0xlYWYiLCJub3RMZWFmIiwibm90Um9vdCIsImlzTGFzdCIsIlRyYXZlcnNlIiwidHJhdmVyc2UiLCJwcyIsInFzIiwiY29udHJvbE9yV2hpdGVzcGFjZSIsIkNSSFRMRiIsInNsYXNoZXMiLCJwcm90b2NvbHJlIiwid2luZG93c0RyaXZlTGV0dGVyIiwidHJpbUxlZnQiLCJhZGRyZXNzIiwiaWdub3JlIiwibG9sY2F0aW9uIiwibG9jIiwiZmluYWxkZXN0aW5hdGlvbiIsIlVybCIsInBhdGhuYW1lIiwic2NoZW1lIiwiZXh0cmFjdFByb3RvY29sIiwiZm9yd2FyZFNsYXNoZXMiLCJvdGhlclNsYXNoZXMiLCJzbGFzaGVzQ291bnQiLCJyZWxhdGl2ZSIsImV4dHJhY3RlZCIsImluc3RydWN0aW9uIiwiaW5zdHJ1Y3Rpb25zIiwidXAiLCJob3N0IiwiaG9zdG5hbWUiLCJ1c2VybmFtZSIsImF1dGgiLCJpbnMiLCJ1c2VTeW5jRXh0ZXJuYWxTdG9yZVdpdGhTZWxlY3RvciIsImhhc1ZhbHVlIiwibG9jYWxTdG9yYWdlIiwidHJhY2UiLCJpc0Nsb3NpbmdUYWciLCJpc1NlbGZDbG9zaW5nVGFnIiwiaXNPcGVuaW5nVGFnIiwiaXNUYWciLCJnZXRUeXBlIiwiaW5kZW50b3IiLCJ0ZXh0Tm9kZXNPblNhbWVMaW5lIiwiaW5kaWNlc1RvUmVtb3ZlIiwicmF3UmVzdWx0IiwibGV4ZXIiLCJ4bWxTdHIiLCJzcGxpdE9uVGFncyIsImxpbmUiLCJpbmRlbnRhdGlvbiIsIm9uZUJlZm9yZSIsInR3b0JlZm9yZSIsIlhNTF9DSEFSQUNURVJfTUFQIiwiZXNjYXBlRm9yWE1MIiwiaW5kZW50X2NvdW50IiwiaW5kZW50X3NwYWNlcyIsImNyZWF0ZV9pbmRlbnQiLCJjaGFyYWN0ZXIiLCJfZWxlbSIsImljb3VudCIsImluZGVudHMiLCJpbnRlcnJ1cHQiLCJpc1N0cmluZ0NvbnRlbnQiLCJnZXRfYXR0cmlidXRlcyIsIl9hdHRyIiwiX2NkYXRhIiwicHJvY2VlZCIsImludGVycnVwdGVkIiwiaW5zdGFudCIsImRlY2xhcmF0aW9uIiwiYWRkWG1sRGVjbGFyYXRpb24iLCJzdGFuZGFsb25lIiwiaXNOYXRpdmVTbW9vdGhTY3JvbGxFbmFibGVkT24iLCJnZXRDb21wdXRlZFN0eWxlIiwibWFrZVNjcm9sbGVyIiwiY29udGFpbmVyIiwiZGVmYXVsdER1cmF0aW9uIiwiZWRnZU9mZnNldCIsInNjcm9sbFRpbWVvdXRJZCIsInNldFNjcm9sbFRpbWVvdXRJZCIsInN0b3BTY3JvbGwiLCJnZXRUb3BXaXRoRWRnZU9mZnNldCIsImdldFRvcE9mIiwic2Nyb2xsVG9ZIiwidGFyZ2V0WSIsImR1cmF0aW9uIiwib25Eb25lIiwidG9ZIiwic3RhcnRZIiwiZ2V0WSIsImRpc3RhbmNlIiwibG9vcFNjcm9sbCIsImdldEhlaWdodCIsInNjcm9sbEhlaWdodCIsInNjcm9sbFRvRWxlbSIsInNjcm9sbEludG9WaWV3IiwiZWxlbUhlaWdodCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImVsZW1Cb3R0b20iLCJjb250YWluZXJIZWlnaHQiLCJjb250YWluZXJCb3R0b20iLCJzY3JvbGxUb0NlbnRlck9mIiwic2V0dXAiLCJuZXdEZWZhdWx0RHVyYXRpb24iLCJuZXdFZGdlT2Zmc2V0IiwiaW50b1ZpZXciLCJjZW50ZXIiLCJtb3ZpbmciLCJkb2NFbGVtIiwiZ2V0RG9jWSIsInNjcm9sbFkiLCJ6ZW5zY3JvbGwiLCJzY3JvbGxpbmdFbGVtZW50Iiwic2Nyb2xsVG8iLCJpbm5lckhlaWdodCIsImNsaWVudEhlaWdodCIsIm9mZnNldFRvcCIsImNyZWF0ZVNjcm9sbGVyIiwic2Nyb2xsQ29udGFpbmVyIiwibm9aZW5zbW9vdGgiLCJpc0hpc3RvcnlTdXBwb3J0ZWQiLCJoaXN0b3J5IiwiaXNTY3JvbGxSZXN0b3JhdGlvblN1cHBvcnRlZCIsInNjcm9sbFJlc3RvcmF0aW9uIiwiemVuc2Nyb2xsWSIsInRhcmdldEVsZW0iLCJnZXRFbGVtZW50QnlJZCIsImRpZmYiLCJSRV9ub1plbnNtb290aCIsImFuY2hvciIsImhpc3RvcnlTdGF0ZSIsInJlcGxhY2VTdGF0ZSIsInB1c2hTdGF0ZSIsIl9PYmplY3QkYXNzaWduIiwiX2JpbmRJbnN0YW5jZVByb3BlcnR5IiwiX2V4dGVuZHMiLCJjbGFzc05hbWVzIiwiYXBwZW5kQ2xhc3MiLCJwYXJzZVZhbHVlIiwibmV3Q2xhc3MiLCJnZXRCdWlsdEluUHJvdG90eXBlTWV0aG9kIiwiaXNQcm90b3R5cGVPZiIsIkZ1bmN0aW9uUHJvdG90eXBlIiwiaXQiLCJvd24iLCJpc0NhbGxhYmxlIiwidHJ5VG9TdHJpbmciLCJhcmd1bWVudCIsIiRTdHJpbmciLCJ0b0luZGV4ZWRPYmplY3QiLCJ0b0Fic29sdXRlSW5kZXgiLCJsZW5ndGhPZkFycmF5TGlrZSIsImNyZWF0ZU1ldGhvZCIsIklTX0lOQ0xVREVTIiwiJHRoaXMiLCJ1bmN1cnJ5VGhpcyIsInN0cmluZ1NsaWNlIiwiVE9fU1RSSU5HX1RBR19TVVBQT1JUIiwiY2xhc3NvZlJhdyIsIlRPX1NUUklOR19UQUciLCJ3ZWxsS25vd25TeW1ib2wiLCJDT1JSRUNUX0FSR1VNRU5UUyIsInRyeUdldCIsImNhbGxlZSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZSIsImRlZmluZVByb3BlcnR5TW9kdWxlIiwiZXhjZXB0aW9ucyIsImZhaWxzIiwiREVTQ1JJUFRPUlMiLCJjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IiLCJjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkiLCJkb2N1bWVudEFsbCIsIklTX0hUTUxEREEiLCJFWElTVFMiLCJDU1NSdWxlTGlzdCIsIkNTU1N0eWxlRGVjbGFyYXRpb24iLCJDU1NWYWx1ZUxpc3QiLCJDbGllbnRSZWN0TGlzdCIsIkRPTVJlY3RMaXN0IiwiRE9NU3RyaW5nTGlzdCIsIkRPTVRva2VuTGlzdCIsIkRhdGFUcmFuc2Zlckl0ZW1MaXN0IiwiRmlsZUxpc3QiLCJIVE1MQWxsQ29sbGVjdGlvbiIsIkhUTUxDb2xsZWN0aW9uIiwiSFRNTFNlbGVjdEVsZW1lbnQiLCJNZWRpYUxpc3QiLCJNaW1lVHlwZUFycmF5IiwiTm9kZUxpc3QiLCJQYWludFJlcXVlc3RMaXN0IiwiUGx1Z2luIiwiUGx1Z2luQXJyYXkiLCJTVkdMZW5ndGhMaXN0IiwiU1ZHTnVtYmVyTGlzdCIsIlNWR1BhdGhTZWdMaXN0IiwiU1ZHUG9pbnRMaXN0IiwiU1ZHU3RyaW5nTGlzdCIsIlNWR1RyYW5zZm9ybUxpc3QiLCJTb3VyY2VCdWZmZXJMaXN0IiwiU3R5bGVTaGVldExpc3QiLCJUZXh0VHJhY2tDdWVMaXN0IiwiVGV4dFRyYWNrTGlzdCIsIlRvdWNoTGlzdCIsIkRlbm8iLCJ2OCIsIlRFU1QiLCJWOF9PUl9DSEFLUkFfU1RBQ0tfRU5UUlkiLCJJU19WOF9PUl9DSEFLUkFfU1RBQ0siLCJkcm9wRW50cmllcyIsImNsZWFyRXJyb3JTdGFjayIsIkVSUk9SX1NUQUNLX0lOU1RBTExBQkxFIiwiaXNGb3JjZWQiLCJ3cmFwQ29uc3RydWN0b3IiLCJOYXRpdmVDb25zdHJ1Y3RvciIsIldyYXBwZXIiLCJGT1JDRUQiLCJVU0VfTkFUSVZFIiwiVklSVFVBTF9QUk9UT1RZUEUiLCJzb3VyY2VQcm9wZXJ0eSIsInRhcmdldFByb3BlcnR5IiwibmF0aXZlUHJvcGVydHkiLCJyZXN1bHRQcm9wZXJ0eSIsIlRBUkdFVCIsIkdMT0JBTCIsIlNUQVRJQyIsInN0YXQiLCJQUk9UTyIsIm5hdGl2ZVNvdXJjZSIsInRhcmdldFByb3RvdHlwZSIsImZvcmNlZCIsImRvbnRDYWxsR2V0U2V0IiwicmVhbCIsIk5BVElWRV9CSU5EIiwiYUNhbGxhYmxlIiwiYXJyYXlTbGljZSIsImZhY3RvcmllcyIsIlByb3RvdHlwZSIsInBhcnRBcmdzIiwiYm91bmRGdW5jdGlvbiIsImdldERlc2NyaXB0b3IiLCJQUk9QRVIiLCJzb21ldGhpbmciLCJDT05GSUdVUkFCTEUiLCJ1bmN1cnJ5VGhpc1dpdGhCaW5kIiwiQ09OU1RSVUNUT1IiLCJNRVRIT0QiLCJwdXJlTWV0aG9kIiwiTmF0aXZlUHJvdG90eXBlIiwiYUZ1bmN0aW9uIiwiY2xhc3NvZiIsImdldE1ldGhvZCIsImlzTnVsbE9yVW5kZWZpbmVkIiwiSXRlcmF0b3JzIiwiSVRFUkFUT1IiLCJhbk9iamVjdCIsImdldEl0ZXJhdG9yTWV0aG9kIiwidXNpbmdJdGVyYXRvciIsIml0ZXJhdG9yTWV0aG9kIiwiY2hlY2siLCJnbG9iYWxUaGlzIiwiZ2V0QnVpbHRJbiIsImR1bW15IiwiTmV3VGFyZ2V0UHJvdG90eXBlIiwiTkFUSVZFX1dFQUtfTUFQIiwic2hhcmVkS2V5IiwiaGlkZGVuS2V5cyIsIk9CSkVDVF9BTFJFQURZX0lOSVRJQUxJWkVEIiwic3RvcmUiLCJmYWNhZGUiLCJTVEFURSIsImVuZm9yY2UiLCJnZXR0ZXJGb3IiLCJUWVBFIiwiQXJyYXlQcm90b3R5cGUiLCIkZG9jdW1lbnRBbGwiLCJyZXBsYWNlbWVudCIsImZlYXR1cmUiLCJkZXRlY3Rpb24iLCJub3JtYWxpemUiLCJQT0xZRklMTCIsIk5BVElWRSIsIlVTRV9TWU1CT0xfQVNfVUlEIiwiJFN5bWJvbCIsImlzQXJyYXlJdGVyYXRvck1ldGhvZCIsIml0ZXJhdG9yQ2xvc2UiLCJSZXN1bHQiLCJSZXN1bHRQcm90b3R5cGUiLCJ1bmJvdW5kRnVuY3Rpb24iLCJpdGVyRm4iLCJBU19FTlRSSUVTIiwiSVNfUkVDT1JEIiwiSVNfSVRFUkFUT1IiLCJJTlRFUlJVUFRFRCIsImNhbGxGbiIsImlubmVyUmVzdWx0IiwiaW5uZXJFcnJvciIsIkl0ZXJhdG9yUHJvdG90eXBlIiwic2V0VG9TdHJpbmdUYWciLCJyZXR1cm5UaGlzIiwiSXRlcmF0b3JDb25zdHJ1Y3RvciIsIk5BTUUiLCJFTlVNRVJBQkxFX05FWFQiLCIkIiwiSVNfUFVSRSIsIkZ1bmN0aW9uTmFtZSIsImNyZWF0ZUl0ZXJhdG9yQ29uc3RydWN0b3IiLCJkZWZpbmVCdWlsdEluIiwiSXRlcmF0b3JzQ29yZSIsIlBST1BFUl9GVU5DVElPTl9OQU1FIiwiQ09ORklHVVJBQkxFX0ZVTkNUSU9OX05BTUUiLCJCVUdHWV9TQUZBUklfSVRFUkFUT1JTIiwiREVGQVVMVCIsIklTX1NFVCIsIkN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSIsIktFWSIsImdldEl0ZXJhdGlvbk1ldGhvZCIsIktJTkQiLCJkZWZhdWx0SXRlcmF0b3IiLCJJTkNPUlJFQ1RfVkFMVUVTX05BTUUiLCJuYXRpdmVJdGVyYXRvciIsImFueU5hdGl2ZUl0ZXJhdG9yIiwiUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlIiwiYXJyYXlJdGVyYXRvciIsInRvTGVuZ3RoIiwiJGRlZmF1bHQiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZU1vZHVsZSIsIkluZGV4ZWRPYmplY3QiLCIkYXNzaWduIiwiYXJndW1lbnRzTGVuZ3RoIiwiYWN0aXZlWERvY3VtZW50IiwiZGVmaW5lUHJvcGVydGllc01vZHVsZSIsImVudW1CdWdLZXlzIiwiZG9jdW1lbnRDcmVhdGVFbGVtZW50IiwiUFJPVE9UWVBFIiwiU0NSSVBUIiwiRW1wdHlDb25zdHJ1Y3RvciIsInNjcmlwdFRhZyIsIkxUIiwiTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWCIsInRlbXAiLCJOdWxsUHJvdG9PYmplY3QiLCJBY3RpdmVYT2JqZWN0IiwiaWZyYW1lRG9jdW1lbnQiLCJpZnJhbWUiLCJKUyIsIlByb3BlcnRpZXMiLCJWOF9QUk9UT1RZUEVfREVGSU5FX0JVRyIsIklFOF9ET01fREVGSU5FIiwidG9Qcm9wZXJ0eUtleSIsIiRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJFTlVNRVJBQkxFIiwiV1JJVEFCTEUiLCJBdHRyaWJ1dGVzIiwiaW50ZXJuYWxPYmplY3RLZXlzIiwiQ09SUkVDVF9QUk9UT1RZUEVfR0VUVEVSIiwiT2JqZWN0UHJvdG90eXBlIiwiJHByb3BlcnR5SXNFbnVtZXJhYmxlIiwiTkFTSE9STl9CVUciLCJ1bmN1cnJ5VGhpc0FjY2Vzc29yIiwiYVBvc3NpYmxlUHJvdG90eXBlIiwic2V0dGVyIiwiQ09SUkVDVF9TRVRURVIiLCJwcmVmIiwiZ2V0T3duUHJvcGVydHlOYW1lc01vZHVsZSIsIlRhcmdldCIsIlNvdXJjZSIsIlRBRyIsIlNFVF9NRVRIT0QiLCJkZWZpbmVHbG9iYWxQcm9wZXJ0eSIsIlNIQVJFRCIsImNvcHlyaWdodCIsImxpY2Vuc2UiLCJ0b0ludGVnZXJPckluZmluaXR5IiwicmVxdWlyZU9iamVjdENvZXJjaWJsZSIsIkNPTlZFUlRfVE9fU1RSSU5HIiwiY29kZUF0IiwiVjhfVkVSU0lPTiIsImludGVnZXIiLCJvcmRpbmFyeVRvUHJpbWl0aXZlIiwiVE9fUFJJTUlUSVZFIiwiZXhvdGljVG9QcmltIiwicG9zdGZpeCIsIk5BVElWRV9TWU1CT0wiLCJXZWxsS25vd25TeW1ib2xzU3RvcmUiLCJjcmVhdGVXZWxsS25vd25TeW1ib2wiLCJ3aXRob3V0U2V0dGVyIiwiY29weUNvbnN0cnVjdG9yUHJvcGVydGllcyIsInByb3h5QWNjZXNzb3IiLCJpbmhlcml0SWZSZXF1aXJlZCIsIm5vcm1hbGl6ZVN0cmluZ0FyZ3VtZW50IiwiaW5zdGFsbEVycm9yQ2F1c2UiLCJpbnN0YWxsRXJyb3JTdGFjayIsIkZVTExfTkFNRSIsIklTX0FHR1JFR0FURV9FUlJPUiIsIlNUQUNLX1RSQUNFX0xJTUlUIiwiT1BUSU9OU19QT1NJVElPTiIsIkVSUk9SX05BTUUiLCJPcmlnaW5hbEVycm9yIiwiT3JpZ2luYWxFcnJvclByb3RvdHlwZSIsIkJhc2VFcnJvciIsIldyYXBwZWRFcnJvciIsIndyYXBFcnJvckNvbnN0cnVjdG9yV2l0aENhdXNlIiwiQUdHUkVHQVRFX0VSUk9SIiwiJEFnZ3JlZ2F0ZUVycm9yIiwiQWdncmVnYXRlRXJyb3JQcm90b3R5cGUiLCJlcnJvcnNBcnJheSIsImFkZFRvVW5zY29wYWJsZXMiLCJJbnRlcm5hbFN0YXRlTW9kdWxlIiwiZGVmaW5lSXRlcmF0b3IiLCJjcmVhdGVJdGVyUmVzdWx0T2JqZWN0IiwiQVJSQVlfSVRFUkFUT1IiLCJzZXRJbnRlcm5hbFN0YXRlIiwiZ2V0SW50ZXJuYWxTdGF0ZSIsIml0ZXJhdGVkIiwiQXJndW1lbnRzIiwiV0VCX0FTU0VNQkxZIiwiV2ViQXNzZW1ibHkiLCJleHBvcnRHbG9iYWxFcnJvckNhdXNlV3JhcHBlciIsImV4cG9ydFdlYkFzc2VtYmx5RXJyb3JDYXVzZVdyYXBwZXIiLCJDb21waWxlRXJyb3IiLCJMaW5rRXJyb3IiLCJSdW50aW1lRXJyb3IiLCJTVFJJTkdfSVRFUkFUT1IiLCJwb2ludCIsIkRPTUl0ZXJhYmxlcyIsIkNPTExFQ1RJT05fTkFNRSIsIl9fd2VicGFja19tb2R1bGVfY2FjaGVfXyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImNhY2hlZE1vZHVsZSIsImxvYWRlZCIsIl9fd2VicGFja19tb2R1bGVzX18iLCJnZXR0ZXIiLCJucyIsImRlZiIsImRlZmluaXRpb24iLCJubWQiLCJmb3JtYXRQcm9kRXJyb3JNZXNzYWdlIiwic3ltYm9sX29ic2VydmFibGVfZGVmYXVsdCIsIm9ic2VydmFibGUiLCJyYW5kb21TdHJpbmciLCJhY3Rpb25UeXBlc19kZWZhdWx0IiwiSU5JVCIsIlJFUExBQ0UiLCJQUk9CRV9VTktOT1dOX0FDVElPTiIsImNyZWF0ZVN0b3JlIiwicHJlbG9hZGVkU3RhdGUiLCJlbmhhbmNlciIsImN1cnJlbnRSZWR1Y2VyIiwiY3VycmVudFN0YXRlIiwiY3VycmVudExpc3RlbmVycyIsIm5leHRMaXN0ZW5lcnMiLCJsaXN0ZW5lcklkQ291bnRlciIsImlzRGlzcGF0Y2hpbmciLCJlbnN1cmVDYW5NdXRhdGVOZXh0TGlzdGVuZXJzIiwiZ2V0U3RhdGUiLCJzdWJzY3JpYmUiLCJpc1N1YnNjcmliZWQiLCJsaXN0ZW5lcklkIiwidW5zdWJzY3JpYmUiLCJyZXBsYWNlUmVkdWNlciIsIm5leHRSZWR1Y2VyIiwib3V0ZXJTdWJzY3JpYmUiLCJvYnNlcnZlciIsIm9ic2VydmVTdGF0ZSIsIm9ic2VydmVyQXNPYnNlcnZlciIsImJpbmRBY3Rpb25DcmVhdG9yIiwiYWN0aW9uQ3JlYXRvciIsImNvbXBvc2UiLCJmdW5jcyIsIk5FV19USFJPV05fRVJSIiwiTkVXX1RIUk9XTl9FUlJfQkFUQ0giLCJORVdfU1BFQ19FUlIiLCJORVdfU1BFQ19FUlJfQkFUQ0giLCJORVdfQVVUSF9FUlIiLCJDTEVBUiIsIkNMRUFSX0JZIiwibmV3VGhyb3duRXJyIiwibmV3VGhyb3duRXJyQmF0Y2giLCJuZXdTcGVjRXJyIiwibmV3U3BlY0VyckJhdGNoIiwiZXJyQXJyYXkiLCJuZXdBdXRoRXJyIiwiY2xlYXJCeSIsIm1ha2VXaW5kb3ciLCJ3aW4iLCJGaWxlIiwiRm9ybURhdGEiLCJzd2FnZ2VyMlNjaGVtYUtleXMiLCJJbSIsImdldFBhcmFtZXRlclNjaGVtYSIsInBhcmFtZXRlciIsImlzT0FTMyIsInNjaGVtYSIsInBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGUiLCJERUZBVUxUX1JFU1BPTlNFX0tFWSIsIm1heWJlIiwib2JqZWN0aWZ5IiwiZnJvbUpTT3JkZXJlZCIsImpzIiwib2JqV2l0aEhhc2hlZEtleXMiLCJjcmVhdGVPYmpXaXRoSGFzaGVkS2V5cyIsImZkT2JqIiwiaGFzaElkeCIsInRyYWNrS2V5cyIsImNvbnRhaW5zTXVsdGlwbGUiLCJub3JtYWxpemVBcnJheSIsImlzRm4iLCJfbWVtb2l6ZSIsIm9iak1hcCIsIm9ialJlZHVjZSIsInN5c3RlbVRodW5rTWlkZGxld2FyZSIsImdldFN5c3RlbSIsInZhbGlkYXRlVmFsdWVCeVNjaGVtYSIsInJlcXVpcmVkQnlQYXJhbSIsImJ5cGFzc1JlcXVpcmVkQ2hlY2siLCJudWxsYWJsZSIsInJlcXVpcmVkQnlTY2hlbWEiLCJtYXhpbXVtIiwibWluaW11bSIsIm1heExlbmd0aCIsInVuaXF1ZUl0ZW1zIiwibWF4SXRlbXMiLCJtaW5JdGVtcyIsInNjaGVtYVJlcXVpcmVzVmFsdWUiLCJyZXF1aXJlc0Z1cnRoZXJWYWxpZGF0aW9uIiwiaXNWYWxpZE51bGxhYmxlIiwic3RyaW5nQ2hlY2siLCJhcnJheUNoZWNrIiwiYXJyYXlMaXN0Q2hlY2siLCJwYXNzZWRBbnlDaGVjayIsIm9iamVjdFZhbCIsInByb3BLZXkiLCJlcnJzIiwidmFsaWRhdGVQYXR0ZXJuIiwicnhQYXR0ZXJuIiwidmFsaWRhdGVNaW5JdGVtcyIsInZhbGlkYXRlTWF4SXRlbXMiLCJuZWVkUmVtb3ZlIiwiZXJyb3JQZXJJdGVtIiwidmFsaWRhdGVVbmlxdWVJdGVtcyIsImVycm9yc1BlckluZGV4IiwidmFsaWRhdGVNYXhMZW5ndGgiLCJ2YWxpZGF0ZU1pbkxlbmd0aCIsInZhbGlkYXRlTWF4aW11bSIsInZhbGlkYXRlTWluaW11bSIsInZhbGlkYXRlRGF0ZVRpbWUiLCJ2YWxpZGF0ZUd1aWQiLCJ2YWxpZGF0ZVN0cmluZyIsInZhbGlkYXRlQm9vbGVhbiIsInZhbGlkYXRlSW50ZWdlciIsInZhbGlkYXRlRmlsZSIsImJ0b2EiLCJzb3J0ZXJzIiwib3BlcmF0aW9uc1NvcnRlciIsImFscGhhIiwibG9jYWxlQ29tcGFyZSIsInRhZ3NTb3J0ZXIiLCJidWlsZEZvcm1EYXRhIiwiZm9ybUFyciIsInNoYWxsb3dFcXVhbEtleXMiLCJicmFpbnRyZWVTYW5pdGl6ZVVybCIsInJlcXVpcmVzVmFsaWRhdGlvblVSTCIsImNyZWF0ZURlZXBMaW5rUGF0aCIsImVzY2FwZURlZXBMaW5rUGF0aCIsImdldEV4dGVuc2lvbnMiLCJkZWZPYmoiLCJnZXRDb21tb25FeHRlbnNpb25zIiwiZGVlcGx5U3RyaXBLZXkiLCJrZXlUb1N0cmlwIiwicGFyYW1Ub0lkZW50aWZpZXIiLCJyZXR1cm5BbGwiLCJhbGxvd0hhc2hlcyIsInBhcmFtTmFtZSIsInBhcmFtSW4iLCJnZW5lcmF0ZWRJZGVudGlmaWVycyIsInBhcmFtVG9WYWx1ZSIsInBhcmFtVmFsdWVzIiwiYjY0dG9CNjRVcmxFbmNvZGVkIiwiaXNFbXB0eVZhbHVlIiwiaWRGbiIsImNyZWF0ZVN0b3JlV2l0aE1pZGRsZXdhcmUiLCJyb290UmVkdWNlciIsImluaXRpYWxTdGF0ZSIsIm1pZGRsd2FyZXMiLCJfX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9DT01QT1NFX18iLCJhcHBseU1pZGRsZXdhcmUiLCJtaWRkbGV3YXJlcyIsImNyZWF0ZVN0b3JlMiIsIm1pZGRsZXdhcmVBUEkiLCJtaWRkbGV3YXJlIiwiU3RvcmUiLCJwbHVnaW5zT3B0aW9ucyIsInN5c3RlbSIsImNvbmZpZ3MiLCJjb21wb25lbnRzIiwicm9vdEluamVjdHMiLCJzdGF0ZVBsdWdpbnMiLCJib3VuZFN5c3RlbSIsInRvb2xib3giLCJfZ2V0U3lzdGVtIiwiY29uZmlndXJlU3RvcmUiLCJidWlsZFN5c3RlbSIsImdldFN0b3JlIiwicmVidWlsZCIsInBsdWdpblN5c3RlbSIsImNvbWJpbmVQbHVnaW5zIiwic3lzdGVtRXh0ZW5kIiwiY2FsbEFmdGVyTG9hZCIsImJ1aWxkUmVkdWNlciIsImdldFJvb3RJbmplY3RzIiwiZ2V0V3JhcHBlZEFuZEJvdW5kQWN0aW9ucyIsImdldFdyYXBwZWRBbmRCb3VuZFNlbGVjdG9ycyIsImdldFN0YXRlVGh1bmtzIiwiZ2V0Rm4iLCJnZXRDb25maWdzIiwicmVidWlsZFJlZHVjZXIiLCJnZXRDb21wb25lbnRzIiwiX2dldENvbmZpZ3MiLCJSZWFjdCIsInNldENvbmZpZ3MiLCJzdGF0ZXMiLCJhbGxSZWR1Y2VycyIsInJlZHVjZXJTeXN0ZW0iLCJtYWtlUmVkdWNlciIsInJlZHVjZXJPYmoiLCJyZWRGbiIsIndyYXBXaXRoVHJ5Q2F0Y2giLCJjb21iaW5lUmVkdWNlcnMiLCJ1cE5hbWUiLCJnZXRTZWxlY3RvcnMiLCJnZXRBY3Rpb25zIiwiYWN0aW9ucyIsImFjdGlvbk5hbWUiLCJnZXRCb3VuZEFjdGlvbnMiLCJhY3Rpb25Hcm91cE5hbWUiLCJ3cmFwQWN0aW9ucyIsIm5ld0FjdGlvbiIsImdldEJvdW5kU2VsZWN0b3JzIiwic2VsZWN0b3JzIiwic2VsZWN0b3JHcm91cE5hbWUiLCJ3cmFwU2VsZWN0b3JzIiwic2VsZWN0b3IiLCJzZWxlY3Rvck5hbWUiLCJ3cmFwcGVkU2VsZWN0b3IiLCJnZXRTdGF0ZXMiLCJvcmkiLCJjcmVhdG9yIiwiYmluZEFjdGlvbkNyZWF0b3JzIiwiYWN0aW9uQ3JlYXRvcnMiLCJib3VuZEFjdGlvbkNyZWF0b3JzIiwiZ2V0TWFwU3RhdGVUb1Byb3BzIiwiZ2V0TWFwRGlzcGF0Y2hUb1Byb3BzIiwiZXh0cmFzIiwicGx1Z2luT3B0aW9ucyIsInBsdWdpbkxvYWRUeXBlIiwiaGFzTG9hZGVkIiwiY2FsbGVkU29tZXRoaW5nIiwiYWZ0ZXJMb2FkIiwid3JhcENvbXBvbmVudHMiLCJ3cmFwcGVyRm4iLCJuYW1lc3BhY2VPYmoiLCJsb2dFcnJvcnMiLCJTSE9XX0FVVEhfUE9QVVAiLCJBVVRIT1JJWkUiLCJMT0dPVVQiLCJQUkVfQVVUSE9SSVpFX09BVVRIMiIsIkFVVEhPUklaRV9PQVVUSDIiLCJWQUxJREFURSIsIkNPTkZJR1VSRV9BVVRIIiwiUkVTVE9SRV9BVVRIT1JJWkFUSU9OIiwic2hvd0RlZmluaXRpb25zIiwiYXV0aG9yaXplIiwiYXV0aG9yaXplV2l0aFBlcnNpc3RPcHRpb24iLCJhdXRoQWN0aW9ucyIsInBlcnNpc3RBdXRob3JpemF0aW9uSWZOZWVkZWQiLCJsb2dvdXQiLCJsb2dvdXRXaXRoUGVyc2lzdE9wdGlvbiIsInByZUF1dGhvcml6ZUltcGxpY2l0IiwiZXJyQWN0aW9ucyIsImlzVmFsaWQiLCJzd2FnZ2VyVUlSZWRpcmVjdE9hdXRoMiIsImF1dGhJZCIsImF1dGhvcml6ZU9hdXRoMldpdGhQZXJzaXN0T3B0aW9uIiwiYXV0aG9yaXplT2F1dGgyIiwiYXV0aG9yaXplUGFzc3dvcmQiLCJwYXNzd29yZFR5cGUiLCJjbGllbnRJZCIsImNsaWVudFNlY3JldCIsImdyYW50X3R5cGUiLCJzY29wZSIsInNjb3BlcyIsImhlYWRlcnMiLCJzZXRDbGllbnRJZEFuZFNlY3JldCIsImNsaWVudF9pZCIsImNsaWVudF9zZWNyZXQiLCJBdXRob3JpemF0aW9uIiwiYXV0aG9yaXplUmVxdWVzdCIsImF1dGhvcml6ZUFwcGxpY2F0aW9uIiwiYXV0aG9yaXplQWNjZXNzQ29kZVdpdGhGb3JtUGFyYW1zIiwicmVkaXJlY3RVcmwiLCJjb2RlVmVyaWZpZXIiLCJyZWRpcmVjdF91cmkiLCJjb2RlX3ZlcmlmaWVyIiwiYXV0aG9yaXplQWNjZXNzQ29kZVdpdGhCYXNpY0F1dGhlbnRpY2F0aW9uIiwib2FzM1NlbGVjdG9ycyIsInNwZWNTZWxlY3RvcnMiLCJhdXRoU2VsZWN0b3JzIiwicGFyc2VkVXJsIiwiYWRkaXRpb25hbFF1ZXJ5U3RyaW5nUGFyYW1zIiwiZmluYWxTZXJ2ZXJVcmwiLCJzZXJ2ZXJFZmZlY3RpdmVWYWx1ZSIsInNlbGVjdGVkU2VydmVyIiwicGFyc2VVcmwiLCJmZXRjaFVybCIsIl9oZWFkZXJzIiwiZmV0Y2giLCJyZXF1ZXN0SW50ZXJjZXB0b3IiLCJyZXNwb25zZUludGVyY2VwdG9yIiwicGFyc2VFcnJvciIsInN0YXR1c1RleHQiLCJlcnJEYXRhIiwianNvblJlc3BvbnNlIiwiZXJyb3JfZGVzY3JpcHRpb24iLCJqc29uRXJyb3IiLCJjb25maWd1cmVBdXRoIiwicmVzdG9yZUF1dGhvcml6YXRpb24iLCJwZXJzaXN0QXV0aG9yaXphdGlvbiIsImF1dGhvcml6ZWQiLCJzZXRJdGVtIiwiYXV0aFBvcHVwIiwic2VjdXJpdGllcyIsInNlY3VyaXR5IiwiaGVhZGVyIiwicGFyc2VkQXV0aCIsImFzc2VydElzRnVuY3Rpb24iLCJlcnJvck1lc3NhZ2UiLCJlbnN1cmVJc0FycmF5IiwiZ2V0RGVwZW5kZW5jaWVzIiwiY3JlYXRlU2VsZWN0b3JBcmdzIiwiYXNzZXJ0SXNBcnJheU9mRnVuY3Rpb25zIiwiaXRlbVR5cGVzIiwiUmVmIiwiVU5URVJNSU5BVEVEIiwiVEVSTUlOQVRFRCIsImNyZWF0ZUNhY2hlTm9kZSIsIndlYWtNYXBNZW1vaXplIiwiZm5Ob2RlIiwicmVzdWx0RXF1YWxpdHlDaGVjayIsImxhc3RSZXN1bHQiLCJyZXN1bHRzQ291bnQiLCJjYWNoZU5vZGUiLCJvYmplY3RDYWNoZSIsIm9iamVjdE5vZGUiLCJwcmltaXRpdmVDYWNoZSIsInByaW1pdGl2ZU5vZGUiLCJ0ZXJtaW5hdGVkTm9kZSIsImxhc3RSZXN1bHRWYWx1ZSIsImNsZWFyQ2FjaGUiLCJyZXNldFJlc3VsdHNDb3VudCIsImNyZWF0ZVNlbGVjdG9yQ3JlYXRvciIsIm1lbW9pemVPck9wdGlvbnMiLCJtZW1vaXplT3B0aW9uc0Zyb21BcmdzIiwiY3JlYXRlU2VsZWN0b3JDcmVhdG9yT3B0aW9ucyIsIm1lbW9pemVPcHRpb25zIiwiY3JlYXRlU2VsZWN0b3IyIiwicmVjb21wdXRhdGlvbnMiLCJkZXBlbmRlbmN5UmVjb21wdXRhdGlvbnMiLCJkaXJlY3RseVBhc3NlZE9wdGlvbnMiLCJyZXN1bHRGdW5jIiwiY29tYmluZWRPcHRpb25zIiwiYXJnc01lbW9pemUiLCJhcmdzTWVtb2l6ZU9wdGlvbnMiLCJkZXZNb2RlQ2hlY2tzIiwiZmluYWxNZW1vaXplT3B0aW9ucyIsImZpbmFsQXJnc01lbW9pemVPcHRpb25zIiwibWVtb2l6ZWRSZXN1bHRGdW5jIiwicmVjb21wdXRhdGlvbldyYXBwZXIiLCJkZXBlbmRlbmNpZXNDaGVja2VyIiwiaW5wdXRTZWxlY3RvclJlc3VsdHMiLCJjb2xsZWN0SW5wdXRTZWxlY3RvclJlc3VsdHMiLCJpbnB1dFNlbGVjdG9yQXJncyIsInJlc2V0RGVwZW5kZW5jeVJlY29tcHV0YXRpb25zIiwicmVzZXRSZWNvbXB1dGF0aW9ucyIsIndpdGhUeXBlcyIsImNyZWF0ZVNlbGVjdG9yIiwiY3JlYXRlU3RydWN0dXJlZFNlbGVjdG9yIiwiaW5wdXRTZWxlY3RvcnNPYmplY3QiLCJzZWxlY3RvckNyZWF0b3IiLCJhc3NlcnRJc09iamVjdCIsImlucHV0U2VsZWN0b3JLZXlzIiwiY29tcG9zaXRpb24iLCJzaG93bkRlZmluaXRpb25zIiwiZGVmaW5pdGlvbnNUb0F1dGhvcml6ZSIsImRlZmluaXRpb25zIiwic2VjdXJpdHlEZWZpbml0aW9ucyIsImdldERlZmluaXRpb25zQnlOYW1lcyIsImFsbG93ZWRTY29wZXMiLCJkZWZpbml0aW9uc0ZvclJlcXVpcmVtZW50cyIsImFsbERlZmluaXRpb25zIiwic2VjIiwic2VjdXJpdHlTY29wZXMiLCJkZWZpbml0aW9uU2NvcGVzIiwiaXNBdXRob3JpemVkIiwiZXhlY3V0ZSIsIm9yaUFjdGlvbiIsIm9wZXJhdGlvbiIsInNwZWNTZWN1cml0eSIsImdldEl0ZW0iLCJpc0FwaUtleUF1dGgiLCJpc0luQ29va2llIiwiY29va2llIiwiYXV0aG9yaXplZE5hbWUiLCJjb29raWVOYW1lIiwiTG9ja0F1dGhJY29uIiwibWFwU3RhdGVUb1Byb3BzIiwib3duUHJvcHMiLCJnZXRDb21wb25lbnQiLCJMb2NrSWNvbiIsIlVubG9ja0F1dGhJY29uIiwiVW5sb2NrSWNvbiIsImluaXRPQXV0aCIsInByZWF1dGhvcml6ZUFwaUtleSIsInByZWF1dGhvcml6ZUJhc2ljIiwiTG9ja0F1dGhPcGVyYXRpb25JY29uIiwiVW5sb2NrQXV0aE9wZXJhdGlvbkljb24iLCJ3cmFwcGVkQXV0aG9yaXplQWN0aW9uIiwid3JhcHBlZExvZ291dEFjdGlvbiIsInNwZWMiLCJzcGVjSnNvbiIsImRlZmluaXRpb25CYXNlIiwiaXNOb3RoaW5nIiwic3ViamVjdCIsInJlcGVhdF8xIiwiY3ljbGUiLCJpc05lZ2F0aXZlWmVyb18xIiwiaXNOZWdhdGl2ZVplcm8iLCJORUdBVElWRV9JTkZJTklUWSIsImNvbW1vbiIsInNlcXVlbmNlIiwiZm9ybWF0RXJyb3IiLCJleGNlcHRpb24iLCJ3aGVyZSIsInJlYXNvbiIsImNvbHVtbiIsInNuaXBwZXQiLCJZQU1MRXhjZXB0aW9uJDEiLCJnZXRMaW5lIiwibGluZVN0YXJ0IiwibGluZUVuZCIsIm1heExpbmVMZW5ndGgiLCJtYXhIYWxmTGVuZ3RoIiwibWFrZVNuaXBwZXQiLCJsaW5lc0JlZm9yZSIsImxpbmVzQWZ0ZXIiLCJsaW5lU3RhcnRzIiwibGluZUVuZHMiLCJmb3VuZExpbmVObyIsImxpbmVOb0xlbmd0aCIsIlRZUEVfQ09OU1RSVUNUT1JfT1BUSU9OUyIsIllBTUxfTk9ERV9LSU5EUyIsIlR5cGUkMSIsInJlcHJlc2VudCIsInJlcHJlc2VudE5hbWUiLCJtdWx0aSIsInN0eWxlQWxpYXNlcyIsImNvbXBpbGVTdHlsZUFsaWFzZXMiLCJjdXJyZW50VHlwZSIsIm5ld0luZGV4IiwicHJldmlvdXNUeXBlIiwicHJldmlvdXNJbmRleCIsIlNjaGVtYSQxIiwiaW1wbGljaXQiLCJleHBsaWNpdCIsInR5cGUkMSIsImxvYWRLaW5kIiwiY29tcGlsZWRJbXBsaWNpdCIsImNvbXBpbGVkRXhwbGljaXQiLCJjb21waWxlZFR5cGVNYXAiLCJjb21waWxlTWFwIiwic2NhbGFyIiwiY29sbGVjdFR5cGUiLCJmYWlsc2FmZSIsIl9udWxsIiwicmVzb2x2ZVlhbWxOdWxsIiwiY29uc3RydWN0WWFtbE51bGwiLCJjYW5vbmljYWwiLCJsb3dlcmNhc2UiLCJ1cHBlcmNhc2UiLCJjYW1lbGNhc2UiLCJyZXNvbHZlWWFtbEJvb2xlYW4iLCJjb25zdHJ1Y3RZYW1sQm9vbGVhbiIsImlzT2N0Q29kZSIsImlzRGVjQ29kZSIsInJlc29sdmVZYW1sSW50ZWdlciIsImhhc0RpZ2l0cyIsImNvbnN0cnVjdFlhbWxJbnRlZ2VyIiwic2lnbiIsIm9jdGFsIiwiZGVjaW1hbCIsImhleGFkZWNpbWFsIiwiWUFNTF9GTE9BVF9QQVRURVJOIiwiU0NJRU5USUZJQ19XSVRIT1VUX0RPVCIsInJlc29sdmVZYW1sRmxvYXQiLCJjb25zdHJ1Y3RZYW1sRmxvYXQiLCJpc0Zsb2F0IiwicmVwcmVzZW50WWFtbEZsb2F0IiwiY29yZSIsIllBTUxfREFURV9SRUdFWFAiLCJZQU1MX1RJTUVTVEFNUF9SRUdFWFAiLCJ0aW1lc3RhbXAiLCJyZXNvbHZlWWFtbFRpbWVzdGFtcCIsImNvbnN0cnVjdFlhbWxUaW1lc3RhbXAiLCJ5ZWFyIiwiZGF5IiwiaG91ciIsIm1pbnV0ZSIsImZyYWN0aW9uIiwiZGVsdGEiLCJVVEMiLCJzZXRUaW1lIiwicmVwcmVzZW50WWFtbFRpbWVzdGFtcCIsInJlc29sdmVZYW1sTWVyZ2UiLCJCQVNFNjRfTUFQIiwicmVzb2x2ZVlhbWxCaW5hcnkiLCJiaXRsZW4iLCJjb25zdHJ1Y3RZYW1sQmluYXJ5IiwidGFpbGJpdHMiLCJyZXByZXNlbnRZYW1sQmluYXJ5IiwiX2hhc093blByb3BlcnR5JDMiLCJfdG9TdHJpbmckMiIsInJlc29sdmVZYW1sT21hcCIsInBhaXJLZXkiLCJwYWlySGFzS2V5IiwiY29uc3RydWN0WWFtbE9tYXAiLCJfdG9TdHJpbmckMSIsInJlc29sdmVZYW1sUGFpcnMiLCJjb25zdHJ1Y3RZYW1sUGFpcnMiLCJfaGFzT3duUHJvcGVydHkkMiIsInJlc29sdmVZYW1sU2V0IiwiY29uc3RydWN0WWFtbFNldCIsIl9oYXNPd25Qcm9wZXJ0eSQxIiwiQ09OVEVYVF9GTE9XX0lOIiwiQ09OVEVYVF9GTE9XX09VVCIsIkNPTlRFWFRfQkxPQ0tfSU4iLCJDT05URVhUX0JMT0NLX09VVCIsIkNIT01QSU5HX0NMSVAiLCJDSE9NUElOR19TVFJJUCIsIkNIT01QSU5HX0tFRVAiLCJQQVRURVJOX05PTl9QUklOVEFCTEUiLCJQQVRURVJOX05PTl9BU0NJSV9MSU5FX0JSRUFLUyIsIlBBVFRFUk5fRkxPV19JTkRJQ0FUT1JTIiwiUEFUVEVSTl9UQUdfSEFORExFIiwiUEFUVEVSTl9UQUdfVVJJIiwiaXNfRU9MIiwiaXNfV0hJVEVfU1BBQ0UiLCJpc19XU19PUl9FT0wiLCJpc19GTE9XX0lORElDQVRPUiIsImZyb21IZXhDb2RlIiwic2ltcGxlRXNjYXBlU2VxdWVuY2UiLCJjaGFyRnJvbUNvZGVwb2ludCIsInNpbXBsZUVzY2FwZUNoZWNrIiwic2ltcGxlRXNjYXBlTWFwIiwiU3RhdGUkMSIsIm9uV2FybmluZyIsImxlZ2FjeSIsImltcGxpY2l0VHlwZXMiLCJ0eXBlTWFwIiwibGluZUluZGVudCIsImZpcnN0VGFiSW5MaW5lIiwiZG9jdW1lbnRzIiwiZ2VuZXJhdGVFcnJvciIsInRocm93RXJyb3IiLCJ0aHJvd1dhcm5pbmciLCJkaXJlY3RpdmVIYW5kbGVycyIsIllBTUwiLCJoYW5kbGVZYW1sRGlyZWN0aXZlIiwibWFqb3IiLCJtaW5vciIsImNoZWNrTGluZUJyZWFrcyIsImhhbmRsZVRhZ0RpcmVjdGl2ZSIsImhhbmRsZSIsInRhZ01hcCIsImNhcHR1cmVTZWdtZW50IiwiY2hlY2tKc29uIiwiX3Bvc2l0aW9uIiwiX2xlbmd0aCIsIl9jaGFyYWN0ZXIiLCJtZXJnZU1hcHBpbmdzIiwib3ZlcnJpZGFibGVLZXlzIiwicXVhbnRpdHkiLCJzdG9yZU1hcHBpbmdQYWlyIiwia2V5VGFnIiwia2V5Tm9kZSIsInZhbHVlTm9kZSIsInN0YXJ0TGluZSIsInN0YXJ0TGluZVN0YXJ0Iiwic3RhcnRQb3MiLCJyZWFkTGluZUJyZWFrIiwic2tpcFNlcGFyYXRpb25TcGFjZSIsImFsbG93Q29tbWVudHMiLCJjaGVja0luZGVudCIsImxpbmVCcmVha3MiLCJ0ZXN0RG9jdW1lbnRTZXBhcmF0b3IiLCJ3cml0ZUZvbGRlZExpbmVzIiwicmVhZEJsb2NrU2VxdWVuY2UiLCJub2RlSW5kZW50IiwiX2xpbmUiLCJfdGFnIiwiX2FuY2hvciIsImRldGVjdGVkIiwiYW5jaG9yTWFwIiwiY29tcG9zZU5vZGUiLCJyZWFkVGFnUHJvcGVydHkiLCJ0YWdIYW5kbGUiLCJpc1ZlcmJhdGltIiwiaXNOYW1lZCIsInJlYWRBbmNob3JQcm9wZXJ0eSIsInBhcmVudEluZGVudCIsIm5vZGVDb250ZXh0IiwiYWxsb3dUb1NlZWsiLCJhbGxvd0NvbXBhY3QiLCJhbGxvd0Jsb2NrU3R5bGVzIiwiYWxsb3dCbG9ja1NjYWxhcnMiLCJhbGxvd0Jsb2NrQ29sbGVjdGlvbnMiLCJ0eXBlSW5kZXgiLCJ0eXBlUXVhbnRpdHkiLCJ0eXBlTGlzdCIsImZsb3dJbmRlbnQiLCJibG9ja0luZGVudCIsImluZGVudFN0YXR1cyIsImF0TmV3TGluZSIsImhhc0NvbnRlbnQiLCJyZWFkQmxvY2tNYXBwaW5nIiwiZm9sbG93aW5nIiwiX2tleUxpbmUiLCJfa2V5TGluZVN0YXJ0IiwiX2tleVBvcyIsImF0RXhwbGljaXRLZXkiLCJyZWFkRmxvd0NvbGxlY3Rpb24iLCJfbGluZVN0YXJ0IiwiX3BvcyIsInRlcm1pbmF0b3IiLCJpc1BhaXIiLCJpc0V4cGxpY2l0UGFpciIsImlzTWFwcGluZyIsInJlYWROZXh0IiwicmVhZEJsb2NrU2NhbGFyIiwiY2FwdHVyZVN0YXJ0IiwiZm9sZGluZyIsImNob21waW5nIiwiZGlkUmVhZENvbnRlbnQiLCJkZXRlY3RlZEluZGVudCIsInRleHRJbmRlbnQiLCJlbXB0eUxpbmVzIiwiYXRNb3JlSW5kZW50ZWQiLCJyZWFkU2luZ2xlUXVvdGVkU2NhbGFyIiwiY2FwdHVyZUVuZCIsInJlYWREb3VibGVRdW90ZWRTY2FsYXIiLCJoZXhMZW5ndGgiLCJoZXhSZXN1bHQiLCJyZWFkQWxpYXMiLCJyZWFkUGxhaW5TY2FsYXIiLCJ3aXRoaW5GbG93Q29sbGVjdGlvbiIsImhhc1BlbmRpbmdDb250ZW50IiwiX2xpbmVJbmRlbnQiLCJfa2luZCIsInJlYWREb2N1bWVudCIsImRpcmVjdGl2ZU5hbWUiLCJkaXJlY3RpdmVBcmdzIiwiZG9jdW1lbnRTdGFydCIsImhhc0RpcmVjdGl2ZXMiLCJsb2FkRG9jdW1lbnRzIiwibnVsbHBvcyIsImxvYWRlciIsImxvYWRBbGwiLCJsb2FkQWxsJDEiLCJsb2FkJDEiLCJfdG9TdHJpbmciLCJfaGFzT3duUHJvcGVydHkiLCJDSEFSX0JPTSIsIkNIQVJfVEFCIiwiQ0hBUl9MSU5FX0ZFRUQiLCJDSEFSX0NBUlJJQUdFX1JFVFVSTiIsIkNIQVJfU1BBQ0UiLCJDSEFSX0VYQ0xBTUFUSU9OIiwiQ0hBUl9ET1VCTEVfUVVPVEUiLCJDSEFSX1NIQVJQIiwiQ0hBUl9QRVJDRU5UIiwiQ0hBUl9BTVBFUlNBTkQiLCJDSEFSX1NJTkdMRV9RVU9URSIsIkNIQVJfQVNURVJJU0siLCJDSEFSX0NPTU1BIiwiQ0hBUl9NSU5VUyIsIkNIQVJfQ09MT04iLCJDSEFSX0VRVUFMUyIsIkNIQVJfR1JFQVRFUl9USEFOIiwiQ0hBUl9RVUVTVElPTiIsIkNIQVJfQ09NTUVSQ0lBTF9BVCIsIkNIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVCIsIkNIQVJfUklHSFRfU1FVQVJFX0JSQUNLRVQiLCJDSEFSX0dSQVZFX0FDQ0VOVCIsIkNIQVJfTEVGVF9DVVJMWV9CUkFDS0VUIiwiQ0hBUl9WRVJUSUNBTF9MSU5FIiwiQ0hBUl9SSUdIVF9DVVJMWV9CUkFDS0VUIiwiRVNDQVBFX1NFUVVFTkNFUyIsIkRFUFJFQ0FURURfQk9PTEVBTlNfU1lOVEFYIiwiREVQUkVDQVRFRF9CQVNFNjBfU1lOVEFYIiwiZW5jb2RlSGV4IiwiUVVPVElOR19UWVBFX1NJTkdMRSIsIlFVT1RJTkdfVFlQRV9ET1VCTEUiLCJTdGF0ZSIsIm5vQXJyYXlJbmRlbnQiLCJza2lwSW52YWxpZCIsImZsb3dMZXZlbCIsInN0eWxlTWFwIiwiY29tcGlsZVN0eWxlTWFwIiwic29ydEtleXMiLCJsaW5lV2lkdGgiLCJub1JlZnMiLCJub0NvbXBhdE1vZGUiLCJjb25kZW5zZUZsb3ciLCJxdW90aW5nVHlwZSIsImZvcmNlUXVvdGVzIiwicmVwbGFjZXIiLCJleHBsaWNpdFR5cGVzIiwiZHVwbGljYXRlcyIsInVzZWREdXBsaWNhdGVzIiwiaW5kZW50U3RyaW5nIiwic3BhY2VzIiwiaW5kIiwiZ2VuZXJhdGVOZXh0TGluZSIsImlzV2hpdGVzcGFjZSIsImlzUHJpbnRhYmxlIiwiaXNOc0NoYXJPcldoaXRlc3BhY2UiLCJpc1BsYWluU2FmZSIsImluYmxvY2siLCJjSXNOc0NoYXJPcldoaXRlc3BhY2UiLCJjSXNOc0NoYXIiLCJjb2RlUG9pbnRBdCIsIm5lZWRJbmRlbnRJbmRpY2F0b3IiLCJTVFlMRV9QTEFJTiIsIlNUWUxFX1NJTkdMRSIsIlNUWUxFX0xJVEVSQUwiLCJTVFlMRV9GT0xERUQiLCJTVFlMRV9ET1VCTEUiLCJjaG9vc2VTY2FsYXJTdHlsZSIsInNpbmdsZUxpbmVPbmx5IiwiaW5kZW50UGVyTGV2ZWwiLCJ0ZXN0QW1iaWd1b3VzVHlwZSIsInByZXZDaGFyIiwiaGFzTGluZUJyZWFrIiwiaGFzRm9sZGFibGVMaW5lIiwic2hvdWxkVHJhY2tXaWR0aCIsInByZXZpb3VzTGluZUJyZWFrIiwicGxhaW4iLCJpc1BsYWluU2FmZUZpcnN0IiwiaXNQbGFpblNhZmVMYXN0Iiwid3JpdGVTY2FsYXIiLCJpc2tleSIsImR1bXAiLCJ0ZXN0QW1iaWd1aXR5IiwidGVzdEltcGxpY2l0UmVzb2x2aW5nIiwiYmxvY2tIZWFkZXIiLCJkcm9wRW5kaW5nTmV3bGluZSIsImZvbGRTdHJpbmciLCJtb3JlSW5kZW50ZWQiLCJsaW5lUmUiLCJuZXh0TEYiLCJmb2xkTGluZSIsInByZXZNb3JlSW5kZW50ZWQiLCJlc2NhcGVTdHJpbmciLCJlc2NhcGVTZXEiLCJpbmRlbnRJbmRpY2F0b3IiLCJicmVha1JlIiwid3JpdGVCbG9ja1NlcXVlbmNlIiwid3JpdGVOb2RlIiwiZGV0ZWN0VHlwZSIsImlzYmxvY2tzZXEiLCJ0YWdTdHIiLCJkdXBsaWNhdGVJbmRleCIsImR1cGxpY2F0ZSIsIm9iamVjdE9yQXJyYXkiLCJ3cml0ZUJsb2NrTWFwcGluZyIsIm9iamVjdFZhbHVlIiwiZXhwbGljaXRQYWlyIiwicGFpckJ1ZmZlciIsIm9iamVjdEtleUxpc3QiLCJ3cml0ZUZsb3dNYXBwaW5nIiwid3JpdGVGbG93U2VxdWVuY2UiLCJnZXREdXBsaWNhdGVSZWZlcmVuY2VzIiwiZHVwbGljYXRlc0luZGV4ZXMiLCJpbnNwZWN0Tm9kZSIsImR1bXBfMSIsImR1bXAkMSIsInJlbmFtZWQiLCJUeXBlIiwiU2NoZW1hIiwiRkFJTFNBRkVfU0NIRU1BIiwiSlNPTl9TQ0hFTUEiLCJDT1JFX1NDSEVNQSIsIkRFRkFVTFRfU0NIRU1BIiwiWUFNTEV4Y2VwdGlvbiIsImZsb2F0IiwibnVsbCIsInNhZmVMb2FkIiwic2FmZUxvYWRBbGwiLCJzYWZlRHVtcCIsIlVQREFURV9DT05GSUdTIiwiVE9HR0xFX0NPTkZJR1MiLCJjb25maWdOYW1lIiwiY29uZmlnVmFsdWUiLCJ0b2dnbGUiLCJkb3dubG9hZENvbmZpZyIsImdldENvbmZpZ0J5VXJsIiwic3BlY0FjdGlvbnMiLCJjb25maWdzQWN0aW9ucyIsInN0YXR1cyIsInVwZGF0ZUxvYWRpbmdTdGF0dXMiLCJ1cGRhdGVVcmwiLCJwYXJzZUNvbmZpZyIsIm9yaVZhbCIsImNvbmZpZ3NQbHVnaW4iLCJzZXRIYXNoIiwiU0NST0xMX1RPIiwiQ0xFQVJfU0NST0xMX1RPIiwiZ2V0U2Nyb2xsUGFyZW50IiwiaW5jbHVkZUhpZGRlbiIsIkxBU1RfUkVTT1JUIiwiZXhjbHVkZVN0YXRpY1BhcmVudCIsIm92ZXJmbG93UmVnZXgiLCJwYXJlbnRFbGVtZW50Iiwib3ZlcmZsb3dZIiwib3ZlcmZsb3dYIiwibGF5b3V0Iiwic2Nyb2xsVG9FbGVtZW50IiwiY2xlYXJTY3JvbGxUbyIsInJlYWR5VG9TY3JvbGwiLCJpc1Nob3duS2V5Iiwic2Nyb2xsVG9LZXkiLCJsYXlvdXRTZWxlY3RvcnMiLCJnZXRTY3JvbGxUb0tleSIsImxheW91dEFjdGlvbnMiLCJwYXJzZURlZXBMaW5rSGFzaCIsInJhd0hhc2giLCJkZWVwTGlua2luZyIsImhhc2hBcnJheSIsImlzU2hvd25LZXlGcm9tVXJsSGFzaEFycmF5IiwidGFnSWQiLCJtYXliZU9wZXJhdGlvbklkIiwidGFnSXNTaG93bktleSIsInNob3ciLCJ1cmxIYXNoQXJyYXkiLCJvcGVyYXRpb25JZCIsInVybEhhc2hBcnJheUZyb21Jc1Nob3duS2V5IiwidG9rZW5BcnJheSIsInNob3duIiwiYXNzZXROYW1lIiwiT3JpIiwiT3BlcmF0aW9uV3JhcHBlciIsIm9uTG9hZCIsIk9wZXJhdGlvblRhZ1dyYXBwZXIiLCJPcGVyYXRpb25UYWciLCJzZWVrU3RyIiwibWFrZU5ld01lc3NhZ2UiLCJqc1NwZWMiLCJlcnJvclRyYW5zZm9ybWVycyIsIk5vdE9mVHlwZSIsIlBhcmFtZXRlck9uZU9mIiwidHJhbnNmb3JtRXJyb3JzIiwiaW5wdXRzIiwidHJhbnNmb3JtZWRFcnJvcnMiLCJ0cmFuc2Zvcm1lciIsIkRFRkFVTFRfRVJST1JfU1RSVUNUVVJFIiwiYWxsRXJyb3JzIiwibGFzdEVycm9yIiwibmV3RXJyb3JzIiwiZXJyVmFsdWUiLCJmaWx0ZXJWYWx1ZSIsInRhZ2dlZE9wcyIsInBocmFzZSIsInRhZ09iaiIsIm9wc0ZpbHRlciIsIkFycm93VXAiLCJ4bWxucyIsInZpZXdCb3giLCJmb2N1c2FibGUiLCJBcnJvd0Rvd24iLCJBcnJvdyIsIkNsb3NlIiwiQ29weSIsImZpbGxSdWxlIiwiTG9jayIsIlVubG9jayIsIkljb25zUGx1Z2luIiwiQXJyb3dVcEljb24iLCJBcnJvd0Rvd25JY29uIiwiQXJyb3dJY29uIiwiQ2xvc2VJY29uIiwiQ29weUljb24iLCJVUERBVEVfTEFZT1VUIiwiVVBEQVRFX0ZJTFRFUiIsIlVQREFURV9NT0RFIiwiU0hPVyIsInVwZGF0ZUxheW91dCIsInVwZGF0ZUZpbHRlciIsImNoYW5nZU1vZGUiLCJpc1Nob3duIiwidGhpbmdUb1Nob3ciLCJjdXJyZW50RmlsdGVyIiwid2hhdE1vZGUiLCJzaG93U3VtbWFyeSIsInRhZ2dlZE9wZXJhdGlvbnMiLCJvcmlTZWxlY3RvciIsIm1heERpc3BsYXllZFRhZ3MiLCJsZXZlbHMiLCJnZXRMZXZlbCIsImxvZ0xldmVsIiwibG9nTGV2ZWxJbnQiLCJpbmZvIiwiZW5nYWdlZCIsInVwZGF0ZVNwZWMiLCJ1cGRhdGVKc29uU3BlYyIsIm9uQ29tcGxldGUiLCJleHRyYWN0S2V5IiwiZXNjYXBlU2hlbGwiLCJlc2NhcGVDTUQiLCJlc2NhcGVQb3dlcnNoZWxsIiwiY3VybGlmeSIsInJlcXVlc3QiLCJuZXdMaW5lIiwiaXNNdWx0aXBhcnRGb3JtRGF0YVJlcXVlc3QiLCJjdXJsaWZpZWQiLCJhZGRXb3JkcyIsImFkZFdvcmRzV2l0aG91dExlYWRpbmdTcGFjZSIsImFkZE5ld0xpbmUiLCJhZGRJbmRlbnQiLCJleHRyYWN0ZWRLZXkiLCJyZXFCb2R5IiwiZ2V0U3RyaW5nQm9keU9mTWFwIiwiY3VybGlmeVRvSm9pbiIsInJlcXVlc3RTbmlwcGV0R2VuZXJhdG9yX2N1cmxfcG93ZXJzaGVsbCIsInJlcXVlc3RTbmlwcGV0R2VuZXJhdG9yX2N1cmxfYmFzaCIsInJlcXVlc3RTbmlwcGV0R2VuZXJhdG9yX2N1cmxfY21kIiwiZ2V0R2VuZXJhdG9ycyIsImxhbmd1YWdlS2V5cyIsImdlbmVyYXRvcnMiLCJnZXRTbmlwcGV0R2VuZXJhdG9ycyIsImdlbkZuIiwiZ2V0R2VuRm4iLCJnZXRBY3RpdmVMYW5ndWFnZSIsImdldERlZmF1bHRFeHBhbmRlZCIsImN1cnNvciIsImJhY2tncm91bmRDb2xvciIsInBhZGRpbmdCb3R0b20iLCJwYWRkaW5nVG9wIiwiYm9yZGVyIiwiYm9yZGVyUmFkaXVzIiwiYm94U2hhZG93IiwiYm9yZGVyQm90dG9tIiwiYWN0aXZlU3R5bGUiLCJtYXJnaW5Ub3AiLCJtYXJnaW5SaWdodCIsIm1hcmdpbkxlZnQiLCJSZXF1ZXN0U25pcHBldHMiLCJyZXF1ZXN0U25pcHBldHNTZWxlY3RvcnMiLCJyb290UmVmIiwiU3ludGF4SGlnaGxpZ2h0ZXIiLCJhY3RpdmVMYW5ndWFnZSIsInNldEFjdGl2ZUxhbmd1YWdlIiwiaXNFeHBhbmRlZCIsInNldElzRXhwYW5kZWQiLCJzbmlwcGV0R2VuZXJhdG9ycyIsImFjdGl2ZUdlbmVyYXRvciIsImhhbmRsZVNldElzRXhwYW5kZWQiLCJoYW5kbGVHZXRCdG5TdHlsZSIsImhhbmRsZVByZXZlbnRZU2Nyb2xsaW5nQmV5b25kRWxlbWVudCIsImNvbnRlbnRIZWlnaHQiLCJvZmZzZXRIZWlnaHQiLCJ2aXNpYmxlSGVpZ2h0IiwianVzdGlmeUNvbnRlbnQiLCJhbGlnbkl0ZW1zIiwibWFyZ2luQm90dG9tIiwiYmFja2dyb3VuZCIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ1JpZ2h0IiwiaGFuZGxlR2VuQ2hhbmdlIiwicmVuZGVyUGxhaW5UZXh0IiwiUGxhaW5UZXh0Vmlld2VyIiwicmVxdWVzdFNuaXBwZXRzIiwiTW9kZWxDb2xsYXBzZSIsInN0YXRpYyIsImNvbGxhcHNlZENvbnRlbnQiLCJleHBhbmRlZCIsIm9uVG9nZ2xlIiwiaGlkZVNlbGZPbkV4cGFuZCIsInNwZWNQYXRoIiwibW9kZWxOYW1lIiwibmV4dFByb3BzIiwidG9nZ2xlQ29sbGFwc2VkIiwidXNlVGFicyIsImluaXRpYWxUYWIiLCJpc0V4ZWN1dGUiLCJleGFtcGxlIiwidGFicyIsIm1vZGVsIiwidGFiIiwicHJldklzRXhlY3V0ZSIsInVzZVByZXZpb3VzIiwiYWN0aXZlVGFiIiwic2V0QWN0aXZlVGFiIiwiaGFuZGxlVGFiQ2hhbmdlIiwib25UYWJDaGFuZ2UiLCJNb2RlbEV4YW1wbGUiLCJpbmNsdWRlV3JpdGVPbmx5IiwiaW5jbHVkZVJlYWRPbmx5IiwiZGVmYXVsdE1vZGVsUmVuZGVyaW5nIiwiZGVmYXVsdE1vZGVsRXhwYW5kRGVwdGgiLCJNb2RlbFdyYXBwZXIiLCJIaWdobGlnaHRDb2RlIiwiZXhhbXBsZVRhYklkIiwiZXhhbXBsZVBhbmVsSWQiLCJtb2RlbFRhYklkIiwibW9kZWxQYW5lbElkIiwicm9sZSIsImN4IiwiaW5hY3RpdmUiLCJ0YWJJbmRleCIsImV4cGFuZERlcHRoIiwiZnVsbFBhdGgiLCJNb2RlbCIsImlzSW52YWxpZCIsImlzTWFwTGlrZSIsImNoZWNrSXRlbSIsImNyZWF0ZUNoZWNrZXIiLCJjaGVja2xpc3QiLCJfb2JqZWN0U3ByZWFkMiIsIl9SZWFjdCRDb21wb25lbnQiLCJJbW11dGFibGVQdXJlQ29tcG9uZW50IiwidXBkYXRlT25Qcm9wcyIsInVwZGF0ZU9uU3RhdGVzIiwiX2NpcmNsZSIsInByZXNlcnZlQXNwZWN0UmF0aW8iLCJiYWNrZ3JvdW5kSW1hZ2UiLCJiYWNrZ3JvdW5kUG9zaXRpb24iLCJiYWNrZ3JvdW5kUmVwZWF0IiwiY3kiLCJzdHJva2UiLCJjYWxjTW9kZSIsImR1ciIsImtleVRpbWVzIiwicmVwZWF0Q291bnQiLCJkZWNvZGVSZWZOYW1lIiwidW5lc2NhcGVkIiwiSW1Qcm9wVHlwZXMiLCJpc1JlZiIsImdldE1vZGVsTmFtZSIsImdldFJlZlNjaGVtYSIsImZpbmREZWZpbml0aW9uIiwiT2JqZWN0TW9kZWwiLCJBcnJheU1vZGVsIiwiUHJpbWl0aXZlTW9kZWwiLCIkJHJlZiIsIiRyZWYiLCJyZWZOYW1lIiwicmVmU2NoZW1hIiwiUm9sbGluZ0xvYWRTVkciLCJNb2RlbHMiLCJnZXRTY2hlbWFCYXNlUGF0aCIsImdldENvbGxhcHNlZENvbnRlbnQiLCJoYW5kbGVUb2dnbGUiLCJyZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlIiwib25Mb2FkTW9kZWxzIiwib25Mb2FkTW9kZWwiLCJkb2NFeHBhbnNpb24iLCJkZWZhdWx0TW9kZWxzRXhwYW5kRGVwdGgiLCJzcGVjUGF0aEJhc2UiLCJzaG93TW9kZWxzIiwiQ29sbGFwc2UiLCJKdW1wVG9QYXRoIiwiaXNPcGVuZWQiLCJzY2hlbWFWYWx1ZSIsInNwZWNSZXNvbHZlZFN1YnRyZWUiLCJyYXdTY2hlbWFWYWx1ZSIsInJhd1NjaGVtYSIsIkVudW1Nb2RlbCIsIm90aGVyUHJvcHMiLCJzaG93RXh0ZW5zaW9ucyIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwicmVxdWlyZWRQcm9wZXJ0aWVzIiwiaW5mb1Byb3BlcnRpZXMiLCJleHRlcm5hbERvY3NVcmwiLCJleHRlcm5hbERvY3NEZXNjcmlwdGlvbiIsIk1hcmtkb3duIiwiUHJvcGVydHkiLCJMaW5rIiwiSnVtcFRvUGF0aFNlY3Rpb24iLCJhbGxPZiIsImFueU9mIiwidGl0bGVFbCIsImlzRGVwcmVjYXRlZCIsIm5vcm1hbGl6ZWRWYWx1ZSIsInByb3BWYWwiLCJwcm9wQ2xhc3MiLCJQcmltaXRpdmUiLCJlbnVtQXJyYXkiLCJleHRlbnNpb25zIiwiU2NoZW1lcyIsInNjaGVtZXMiLCJzZXRTY2hlbWUiLCJjdXJyZW50U2NoZW1lIiwiaHRtbEZvciIsIlNjaGVtZXNDb250YWluZXIiLCJvcGVyYXRpb25TY2hlbWUiLCJKc29uU2NoZW1hRGVmYXVsdFByb3BzIiwia2V5TmFtZSIsIkpzb25TY2hlbWFGb3JtIiwiZGlzcGF0Y2hJbml0aWFsVmFsdWUiLCJnZXRDb21wb25lbnRTaWxlbnRseSIsImZhaWxTaWxlbnRseSIsIkNvbXAiLCJKc29uU2NoZW1hX3N0cmluZyIsImZpbGVzIiwib25FbnVtQ2hhbmdlIiwiZW51bVZhbHVlIiwic2NoZW1hSW4iLCJTZWxlY3QiLCJhbGxvd2VkVmFsdWVzIiwiYWxsb3dFbXB0eVZhbHVlIiwiSW5wdXQiLCJKc29uU2NoZW1hX2FycmF5IiwidmFsdWVPckVtcHR5TGlzdCIsIm9uSXRlbUNoYW5nZSIsIml0ZW1WYWwiLCJyZW1vdmVJdGVtIiwiYWRkSXRlbSIsImdldFNhbXBsZVNjaGVtYSIsImFycmF5RXJyb3JzIiwibmVlZHNSZW1vdmVFcnJvciIsInNob3VsZFJlbmRlclZhbHVlIiwic2NoZW1hSXRlbXNFbnVtIiwic2NoZW1hSXRlbXNUeXBlIiwic2NoZW1hSXRlbXNGb3JtYXQiLCJzY2hlbWFJdGVtc1NjaGVtYSIsIkFycmF5SXRlbXNDb21wb25lbnQiLCJpc0FycmF5SXRlbVRleHQiLCJpc0FycmF5SXRlbUZpbGUiLCJCdXR0b24iLCJpdGVtRXJyb3JzIiwiSnNvblNjaGVtYUFycmF5SXRlbUZpbGUiLCJKc29uU2NoZW1hQXJyYXlJdGVtVGV4dCIsIm9uRmlsZUNoYW5nZSIsIkpzb25TY2hlbWFfYm9vbGVhbiIsImJvb2xlYW5WYWx1ZSIsInN0cmluZ2lmeU9iamVjdEVycm9ycyIsInN0cmluZ0Vycm9yIiwiY3VycmVudEVycm9yIiwiSnNvblNjaGVtYV9vYmplY3QiLCJoYW5kbGVPbkNoYW5nZSIsImlucHV0VmFsdWUiLCJUZXh0QXJlYSIsImludmFsaWQiLCJKU09OU2NoZW1hNVBsdWdpbiIsIm1vZGVsRXhhbXBsZSIsIkpTT05TY2hlbWFDb21wb25lbnRzIiwic2hhbGxvd0FycmF5RXF1YWxzIiwiZm91bmRLZXkiLCJtZW1vaXplTiIsIk9yaWdpbmFsQ2FjaGUiLCJwcmltaXRpdmVzIiwiZ2VuZXJhdGVTdHJpbmdGcm9tUmVnZXgiLCJzdHJpbmdfZW1haWwiLCJzdHJpbmdfZGF0ZS10aW1lIiwic3RyaW5nX2RhdGUiLCJzdHJpbmdfdXVpZCIsInN0cmluZ19ob3N0bmFtZSIsInN0cmluZ19pcHY0Iiwic3RyaW5nX2lwdjYiLCJudW1iZXJfZmxvYXQiLCJzYW5pdGl6ZVJlZiIsIm9iamVjdENvbnRyYWN0cyIsImFycmF5Q29udHJhY3RzIiwibnVtYmVyQ29udHJhY3RzIiwic3RyaW5nQ29udHJhY3RzIiwibWVyZ2VKc29uU2NoZW1hIiwibWVyZ2VkIiwic2V0SWZOb3REZWZpbmVkSW5UYXJnZXQiLCJyZWFkT25seSIsIndyaXRlT25seSIsInNhbXBsZUZyb21TY2hlbWFHZW5lcmljIiwiZXhhbXBsZU92ZXJyaWRlIiwicmVzcGVjdFhNTCIsInVzZVBsYWluVmFsdWUiLCJoYXNPbmVPZiIsImhhc0FueU9mIiwic2NoZW1hVG9BZGQiLCJzY2hlbWFIYXNBbnkiLCJlbnVtIiwiaGFuZGxlTWluTWF4SXRlbXMiLCJzYW1wbGVBcnJheSIsImFkZFByb3BlcnR5VG9SZXN1bHQiLCJwcm9wZXJ0eUFkZGVkQ291bnRlciIsImhhc0V4Y2VlZGVkTWF4UHJvcGVydGllcyIsIm1heFByb3BlcnRpZXMiLCJjYW5BZGRQcm9wZXJ0eSIsImlzT3B0aW9uYWxQcm9wZXJ0eSIsInJlcXVpcmVkUHJvcGVydGllc1RvQWRkIiwiYWRkZWRDb3VudCIsIm92ZXJyaWRlRSIsImVudW1BdHRyVmFsIiwiYXR0ckV4YW1wbGUiLCJhdHRyRGVmYXVsdCIsImRpc2NyaW1pbmF0b3IiLCJpdGVtU2NoZW1hIiwiaXRlbVNhbXBsZXMiLCJhZGRpdGlvbmFsUHJvcCIsImFkZGl0aW9uYWxQcm9wMSIsImFkZGl0aW9uYWxQcm9wcyIsImFkZGl0aW9uYWxQcm9wU2FtcGxlIiwidG9HZW5lcmF0ZUNvdW50IiwibWluUHJvcGVydGllcyIsImV4Y2x1c2l2ZU1pbmltdW0iLCJleGNsdXNpdmVNYXhpbXVtIiwiaW5mZXJTY2hlbWEiLCJjcmVhdGVYTUxFeGFtcGxlIiwiWE1MIiwic2FtcGxlRnJvbVNjaGVtYSIsIm1lbW9pemVkQ3JlYXRlWE1MRXhhbXBsZSIsIm1lbW9pemVkU2FtcGxlRnJvbVNjaGVtYSIsInNob3VsZFN0cmluZ2lmeVR5cGVzQ29uZmlnIiwid2hlbiIsInNob3VsZFN0cmluZ2lmeVR5cGVzIiwiZGVmYXVsdFN0cmluZ2lmeVR5cGVzIiwiY29udGVudFR5cGUiLCJyZXNUeXBlIiwidHlwZXNUb1N0cmluZ2lmeSIsIm5leHRDb25maWciLCJqc29uRXhhbXBsZSIsImdldEpzb25TYW1wbGVTY2hlbWEiLCJ5YW1sU3RyaW5nIiwiZ2V0WG1sU2FtcGxlU2NoZW1hIiwiZ2V0WWFtbFNhbXBsZVNjaGVtYSIsIkpTT05TY2hlbWE1U2FtcGxlc1BsdWdpbiIsIm1ha2VHZXRKc29uU2FtcGxlU2NoZW1hIiwibWFrZUdldFlhbWxTYW1wbGVTY2hlbWEiLCJtYWtlR2V0WG1sU2FtcGxlU2NoZW1hIiwibWFrZUdldFNhbXBsZVNjaGVtYSIsImpzb25TY2hlbWE1IiwiT1BFUkFUSU9OX01FVEhPRFMiLCJzcGVjU3RyIiwic3BlY1NvdXJjZSIsInNwZWNKUyIsInNwZWNSZXNvbHZlZCIsIm1lcmdlckZuIiwib2xkVmFsIiwibmV3VmFsIiwic3BlY0pzb25XaXRoUmVzb2x2ZWRTdWJ0cmVlcyIsInJldHVyblNlbGZPck5ld01hcCIsImV4dGVybmFsRG9jcyIsInNlbXZlciIsInZhbGlkT3BlcmF0aW9uTWV0aG9kcyIsIm9wZXJhdGlvbnMiLCJwYXRoTmFtZSIsImNvbnN1bWVzIiwicHJvZHVjZXMiLCJyZXNvbHZlZFJlcyIsInVucmVzb2x2ZWRSZXMiLCJiYXNlUGF0aCIsIm9wZXJhdGlvbnNXaXRoUm9vdEluaGVyaXRlZCIsIm9wcyIsIm9wIiwidGFncyIsInRhZ0RldGFpbHMiLCJvcGVyYXRpb25zV2l0aFRhZ3MiLCJ0YWdnZWRNYXAiLCJhciIsInRhZ0EiLCJ0YWdCIiwic29ydEZuIiwicmVzcG9uc2VzIiwicmVxdWVzdHMiLCJtdXRhdGVkUmVxdWVzdHMiLCJyZXNwb25zZUZvciIsInJlcXVlc3RGb3IiLCJtdXRhdGVkUmVxdWVzdEZvciIsImFsbG93VHJ5SXRPdXRGb3IiLCJwYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkiLCJwYXRoTWV0aG9kIiwib3BQYXJhbXMiLCJtZXRhUGFyYW1zIiwiY3VycmVudFBhcmFtIiwiaW5OYW1lS2V5ZWRNZXRhIiwiaGFzaEtleWVkTWV0YSIsInBhcmFtZXRlckluY2x1c2lvblNldHRpbmdGb3IiLCJwYXJhbUtleSIsInBhcmFtZXRlcldpdGhNZXRhIiwib3BlcmF0aW9uV2l0aE1ldGEiLCJtZXJnZWRQYXJhbXMiLCJnZXRQYXJhbWV0ZXIiLCJpblR5cGUiLCJoYXNIb3N0IiwicGFyYW1ldGVyVmFsdWVzIiwiaXNYbWwiLCJwYXJhbWV0ZXJzSW5jbHVkZUluIiwicGFyYW1ldGVycyIsImluVmFsdWUiLCJwYXJhbWV0ZXJzSW5jbHVkZVR5cGUiLCJ0eXBlVmFsdWUiLCJjb250ZW50VHlwZVZhbHVlcyIsInByb2R1Y2VzVmFsdWUiLCJjdXJyZW50UHJvZHVjZXNGb3IiLCJyZXF1ZXN0Q29udGVudFR5cGUiLCJyZXNwb25zZUNvbnRlbnRUeXBlIiwiY3VycmVudFByb2R1Y2VzVmFsdWUiLCJmaXJzdFByb2R1Y2VzQXJyYXlJdGVtIiwicHJvZHVjZXNPcHRpb25zRm9yIiwib3BlcmF0aW9uUHJvZHVjZXMiLCJwYXRoSXRlbVByb2R1Y2VzIiwiZ2xvYmFsUHJvZHVjZXMiLCJjb25zdW1lc09wdGlvbnNGb3IiLCJvcGVyYXRpb25Db25zdW1lcyIsInBhdGhJdGVtQ29uc3VtZXMiLCJnbG9iYWxDb25zdW1lcyIsIm1hdGNoUmVzdWx0IiwiY2FuRXhlY3V0ZVNjaGVtZSIsInZhbGlkYXRpb25FcnJvcnMiLCJnZXRFcnJvcnNXaXRoUGF0aHMiLCJnZXROZXN0ZWRFcnJvcnNXaXRoUGF0aHMiLCJjdXJyUGF0aCIsInZhbGlkYXRlQmVmb3JlRXhlY3V0ZSIsImdldE9BUzNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGUiLCJyZXF1aXJlZE9iaiIsInJlcXVlc3RCb2R5IiwiaXNNZWRpYVR5cGVTY2hlbWFQcm9wZXJ0aWVzRXF1YWwiLCJjdXJyZW50TWVkaWFUeXBlIiwidGFyZ2V0TWVkaWFUeXBlIiwicmVxdWVzdEJvZHlDb250ZW50IiwiY3VycmVudE1lZGlhVHlwZVNjaGVtYVByb3BlcnRpZXMiLCJ0YXJnZXRNZWRpYVR5cGVTY2hlbWFQcm9wZXJ0aWVzIiwiVVBEQVRFX1NQRUMiLCJVUERBVEVfVVJMIiwiVVBEQVRFX0pTT04iLCJVUERBVEVfUEFSQU0iLCJVUERBVEVfRU1QVFlfUEFSQU1fSU5DTFVTSU9OIiwiVkFMSURBVEVfUEFSQU1TIiwiU0VUX1JFU1BPTlNFIiwiU0VUX1JFUVVFU1QiLCJTRVRfTVVUQVRFRF9SRVFVRVNUIiwiTE9HX1JFUVVFU1QiLCJDTEVBUl9SRVNQT05TRSIsIkNMRUFSX1JFUVVFU1QiLCJDTEVBUl9WQUxJREFURV9QQVJBTVMiLCJVUERBVEVfT1BFUkFUSU9OX01FVEFfVkFMVUUiLCJVUERBVEVfUkVTT0xWRUQiLCJVUERBVEVfUkVTT0xWRURfU1VCVFJFRSIsIlNFVF9TQ0hFTUUiLCJjbGVhblNwZWMiLCJ1cGRhdGVSZXNvbHZlZCIsInBhcnNlVG9Kc29uIiwiaGFzV2FybmVkQWJvdXRSZXNvbHZlU3BlY0RlcHJlY2F0aW9uIiwicmVzb2x2ZVNwZWMiLCJBU1QiLCJtb2RlbFByb3BlcnR5TWFjcm8iLCJwYXJhbWV0ZXJNYWNybyIsImdldExpbmVOdW1iZXJGb3JQYXRoIiwiYmFzZURvYyIsImJhc2VVUkkiLCJwcmVwYXJlZEVycm9ycyIsInJlcXVlc3RCYXRjaCIsImRlYlJlc29sdmVTdWJ0cmVlcyIsInN5c3RlbVBhcnRpdGlvbmVkQmF0Y2hlcyIsImFzeW5jIiwic3lzdGVtUmVxdWVzdEJhdGNoIiwicmVzb2x2ZVN1YnRyZWUiLCJlcnJTZWxlY3RvcnMiLCJiYXRjaFJlc3VsdCIsInJlc3VsdE1hcCIsInNwZWNXaXRoQ3VycmVudFN1YnRyZWVzIiwib2lkY1NjaGVtZSIsIm9wZW5JZENvbm5lY3RVcmwiLCJvcGVuSWRDb25uZWN0RGF0YSIsImFzc29jUGF0aCIsIkltbXV0YWJsZU1hcCIsInVwZGF0ZVJlc29sdmVkU3VidHJlZSIsImJhdGNoZWRQYXRoIiwiYmF0Y2hlZFN5c3RlbSIsImNoYW5nZVBhcmFtIiwiY2hhbmdlUGFyYW1CeUlkZW50aXR5IiwiaW52YWxpZGF0ZVJlc29sdmVkU3VidHJlZUNhY2hlIiwidmFsaWRhdGVQYXJhbXMiLCJ1cGRhdGVFbXB0eVBhcmFtSW5jbHVzaW9uIiwiaW5jbHVkZUVtcHR5VmFsdWUiLCJjbGVhclZhbGlkYXRlUGFyYW1zIiwiY2hhbmdlQ29uc3VtZXNWYWx1ZSIsImNoYW5nZVByb2R1Y2VzVmFsdWUiLCJzZXRSZXNwb25zZSIsInNldFJlcXVlc3QiLCJzZXRNdXRhdGVkUmVxdWVzdCIsImxvZ1JlcXVlc3QiLCJleGVjdXRlUmVxdWVzdCIsInBhcmFtVmFsdWUiLCJjb250ZXh0VXJsIiwib3BJZCIsInNlcnZlciIsIm5hbWVzcGFjZVZhcmlhYmxlcyIsInNlcnZlclZhcmlhYmxlcyIsImdsb2JhbFZhcmlhYmxlcyIsInJlcXVlc3RCb2R5VmFsdWUiLCJyZXF1ZXN0Qm9keUluY2x1c2lvblNldHRpbmciLCJwYXJzZWRSZXF1ZXN0IiwiYnVpbGRSZXF1ZXN0IiwibXV0YXRlZFJlcXVlc3QiLCJwYXJzZWRNdXRhdGVkUmVxdWVzdCIsImNsZWFyUmVzcG9uc2UiLCJjbGVhclJlcXVlc3QiLCJ2YWx1ZUtleSIsInBhcmFtTWV0YSIsImlzRW1wdHlWYWx1ZUluY2x1ZGVkIiwidmFsaWRhdGVQYXJhbSIsInBhcmFtUmVxdWlyZWQiLCJwYXJhbURldGFpbHMiLCJzdGF0dXNDb2RlIiwibmV3U3RhdGUiLCJvcGVyYXRpb25QYXRoIiwibWV0YVBhdGgiLCJwYXRoSXRlbXMiLCJTcGVjUGx1Z2luIiwiX19leHRlbmRzIiwiZXh0ZW5kU3RhdGljcyIsIl9fIiwiX29iamVjdEtleXMiLCJrZXlzXzEiLCJfZGVlcENsb25lIiwiZXNjYXBlUGF0aENvbXBvbmVudCIsInVuZXNjYXBlUGF0aENvbXBvbmVudCIsImhhc1VuZGVmaW5lZCIsImlfMSIsIm9iaktleXNMZW5ndGgiLCJwYXRjaEVycm9yTWVzc2FnZUZvcm1hdHRlciIsIm1lc3NhZ2VQYXJ0cyIsIlBhdGNoRXJyb3IiLCJ0cmVlIiwiX25ld1RhcmdldCIsIkpzb25QYXRjaEVycm9yIiwiZGVlcENsb25lIiwib2JqT3BzIiwibmV3RG9jdW1lbnQiLCJtb3ZlIiwiZ2V0VmFsdWVCeVBvaW50ZXIiLCJvcmlnaW5hbFZhbHVlIiwiYXBwbHlPcGVyYXRpb24iLCJ2YWx1ZVRvQ29weSIsIl9hcmVFcXVhbHMiLCJfZ2V0IiwiYXJyT3BzIiwicG9pbnRlciIsImdldE9yaWdpbmFsRGVzdGluYXRpb24iLCJ2YWxpZGF0ZU9wZXJhdGlvbiIsIm11dGF0ZURvY3VtZW50IiwiYmFuUHJvdG90eXBlTW9kaWZpY2F0aW9ucyIsImV4aXN0aW5nUGF0aEZyYWdtZW50IiwidmFsaWRhdGVGdW5jdGlvbiIsImFwcGx5UGF0Y2giLCJwYXRjaCIsImxlbmd0aF8xIiwiYXBwbHlSZWR1Y2VyIiwib3BlcmF0aW9uUmVzdWx0IiwicGF0aExlbiIsImV4aXN0aW5nUGF0aExlbiIsImV4dGVybmFsVmFsaWRhdG9yIiwiYXJyQSIsImFyckIiLCJiZWZvcmVEaWN0IiwiTWlycm9yIiwib2JzZXJ2ZXJzIiwiT2JzZXJ2ZXJJbmZvIiwidW5vYnNlcnZlIiwib2JzZXJ2ZSIsIm1pcnJvciIsImdldE1pcnJvciIsIm9ic2VydmVySW5mbyIsImdldE9ic2VydmVyRnJvbU1pcnJvciIsImRpcnR5Q2hlY2siLCJnZW5lcmF0ZSIsImZhc3RDaGVjayIsInBhdGNoZXMiLCJyZW1vdmVPYnNlcnZlckZyb21NaXJyb3IiLCJpbnZlcnRpYmxlIiwiX2dlbmVyYXRlIiwibmV3S2V5cyIsIm9sZEtleXMiLCJkZWxldGVkIiwidHJlZTEiLCJ0cmVlMiIsIm5vcm1hbGl6ZUpTT05QYXRoIiwiZ2V0SW5CeUpzb25QYXRoIiwiY3VycmVudFZhbHVlIiwiYWxsb3dNZXRhUGF0Y2hlcyIsImlzQWRkaXRpdmVNdXRhdGlvbiIsInBhcmVudFBhdGhNYXRjaCIsImZ1bGx5Tm9ybWFsaXplQXJyYXkiLCJpc1Byb21pc2UiLCJmb3JFYWNoTmV3IiwibXV0YXRpb25zIiwiZm9yRWFjaE5ld1BhdGNoIiwiZm9yRWFjaE5ld1ByaW1pdGl2ZSIsImZvckVhY2hQcmltaXRpdmUiLCJpc0pzb25QYXRjaCIsImlzQ29udGV4dFBhdGNoIiwiaXNQYXRjaCIsImlzTXV0YXRpb24iLCJpc0dlbmVyYXRvciIsIm11dGF0aW9uIiwibmV3UmVzdWx0cyIsImFycmF5UmVzdWx0cyIsIm1vcmVSZXN1bHRzIiwianNvblBhdGgiLCJfaXNQbGFjZWhvbGRlciIsIl9jdXJyeTEiLCJmMSIsIl9jdXJyeTIiLCJmMiIsIl9jdXJyeTMiLCJmMyIsIl9pc0ludGVnZXIiLCJfaXNTdHJpbmciLCJudGgiLCJwYXRoc0FycmF5IiwicGF0aEFyIiwicGF0aFNhdGlzZmllcyIsInByZWQiLCJwcm9wUGF0aCIsIl9jbG9uZVJlZ0V4cCIsInN0aWNreSIsInVuaWNvZGUiLCJkb3RBbGwiLCJfYXJyYXlGcm9tSXRlcmF0b3IiLCJfaW5jbHVkZXNXaXRoIiwiX2hhcyIsIl9vYmplY3RJcyIsIl9pc0FyZ3VtZW50cyIsImhhc0VudW1CdWciLCJub25FbnVtZXJhYmxlUHJvcHMiLCJoYXNBcmdzRW51bUJ1ZyIsIm5JZHgiLCJrcyIsImNoZWNrQXJnc0xlbmd0aCIsIl91bmlxQ29udGVudEVxdWFscyIsImFJdGVyYXRvciIsImJJdGVyYXRvciIsInN0YWNrQSIsInN0YWNrQiIsIl9lcXVhbHMiLCJhSXRlbSIsInR5cGVBIiwiX2Z1bmN0aW9uTmFtZSIsImtleXNBIiwiZXh0ZW5kZWRTdGFja0EiLCJleHRlbmRlZFN0YWNrQiIsIl9pbmNsdWRlcyIsIl9pbmRleE9mIiwiaW5mIiwiZnVuY3RvciIsIl9xdW90ZSIsInBhZCIsIl90b0lTT1N0cmluZyIsImdldFVUQ0Z1bGxZZWFyIiwiZ2V0VVRDTW9udGgiLCJnZXRVVENEYXRlIiwiZ2V0VVRDSG91cnMiLCJnZXRVVENNaW51dGVzIiwiZ2V0VVRDU2Vjb25kcyIsImdldFVUQ01pbGxpc2Vjb25kcyIsIl9jb21wbGVtZW50IiwiX2FycmF5UmVkdWNlIiwiX2lzQXJyYXkiLCJfZGlzcGF0Y2hhYmxlIiwibWV0aG9kTmFtZXMiLCJ0cmFuc2R1Y2VyQ3JlYXRvciIsIl9pc1RyYW5zZm9ybWVyIiwidHJhbnNkdWNlciIsIl9pc09iamVjdCIsIlhGaWx0ZXIiLCJfeGZCYXNlIiwiX3hmaWx0ZXIiLCJmaWx0ZXJhYmxlIiwiX2ZpbHRlciIsInJlY3VyIiwibWFwUGFpcnMiLCJyZXByIiwiX2lzUmVnRXhwIiwiX2FyaXR5IiwiYTAiLCJhMSIsImEyIiwiYTMiLCJhNCIsImE1IiwiYTYiLCJhNyIsImE4IiwiYTkiLCJfcGlwZSIsInN5bUl0ZXJhdG9yIiwiX2NyZWF0ZVJlZHVjZSIsIm1ldGhvZFJlZHVjZSIsIml0ZXJhYmxlUmVkdWNlIiwiX3JlZHVjZSIsIl94QXJyYXlSZWR1Y2UiLCJ0aGlzT2JqIiwiX3hJdGVyYWJsZVJlZHVjZSIsIl94TWV0aG9kUmVkdWNlIiwiWFdyYXAiLCJfeHdyYXAiLCJfY2hlY2tGb3JNZXRob2QiLCJtZXRob2RuYW1lIiwidG9JbmRleCIsImRlZmF1bHRUbyIsInByb3BPciIsIl9jdXJyeU4iLCJjb21iaW5lZCIsImFyZ3NJZHgiLCJjb21iaW5lZElkeCIsImhhc1BsYWNlaG9sZGVyIiwiY3VycnlOIiwiX2lzRnVuY3Rpb24iLCJpbnZva2VyIiwiZHJvcExhc3RXaGlsZSIsIlhEcm9wTGFzdFdoaWxlIiwicmV0YWluZWQiLCJyZXRhaW4iLCJfeGRyb3BMYXN0V2hpbGUiLCJjaGFycyIsIl9pdGVyYWJsZVJlZHVjZSIsIl9tZXRob2RSZWR1Y2UiLCJYTWFwIiwiX3htYXAiLCJhcCIsImFwcGx5RiIsImFwcGx5WCIsIl9jb25jYXQiLCJzZXQxIiwic2V0MiIsImxlbjEiLCJsaWZ0TiIsImxpZnRlZCIsImxpZnQiLCJhbHdheXMiLCJzYWZlTWF4IiwibWF4QnlWYWx1ZSIsIm1heEJ5VHlwZSIsInN0cmluZ0EiLCJtYXhCeVN0cmluZ1ZhbHVlIiwicGx1Y2siLCJhbnlQYXNzIiwicHJlZHMiLCJpZGVudGljYWwiLCJ1bmFyeUlkZW50aWNhbCIsIndoZW5UcnVlRm4iLCJjaGVja1ZhbHVlIiwidmFsdWVOYW1lIiwicmVwbGFjZUFsbCIsInJlcGxhY2VWYWx1ZSIsImNoZWNrQXJndW1lbnRzIiwiY2hlY2tTZWFyY2hWYWx1ZSIsInJlcGxhY2VBbGxQb255ZmlsbCIsInJlcGxhY2VBbGxJbnZva2VyIiwiaXNXaW5kb3dzIiwiZ2V0UHJvdG9jb2wiLCJpc0ZpbGVTeXN0ZW1QYXRoIiwiaXNIdHRwVXJsIiwidG9GaWxlU3lzdGVtUGF0aCIsInVybERlY29kZVBhdHRlcm5zIiwia2VlcEZpbGVQcm90b2NvbCIsImlzV2luZG93c1ByZWRpY2F0ZSIsImlzRmlsZVVybCIsImdldEhhc2giLCJoYXNoSW5kZXgiLCJzdHJpcEhhc2giLCJoYXNoU3RyaXBwZWRVcmkiLCJyZXNvbHZlZFVybCIsInVybEVuY29kZVBhdHRlcm5zIiwiZnJvbUZpbGVTeXN0ZW1QYXRoIiwidW5zYW5pdGl6ZSIsIkhlYWRlcnMiLCJSZXF1ZXN0IiwiQUNDRVBUX0hFQURFUl9WQUxVRV9GT1JfRE9DVU1FTlRTIiwiREVGQVVMVF9CQVNFX1VSTCIsIkRFRkFVTFRfT1BFTkFQSV8zX1NFUlZFUiIsImZyZWVseU5hbWVkS2V5UGFyZW50cyIsIm5vbkZyZWVseU5hbWVkS2V5R3JhbmRwYXJlbnRzIiwiZnJlZWx5TmFtZWRQYXRocyIsImZyZWVseU5hbWVkQW5jZXN0b3JzIiwiaXNGcmVlbHlOYW1lZCIsInBhcmVudFBhdGgiLCJwYXJlbnRLZXkiLCJncmFuZHBhcmVudEtleSIsInBhcmVudFN0ciIsImFic29sdXRpZnlQb2ludGVyIiwiYmFzZVVybCIsInVybFBhcnQiLCJmcmFnbWVudFBhcnQiLCJzYWZlQmFzZVVybCIsInNhZmVVcmxQYXJ0IiwibmV3UmVmVXJsUGFydCIsImFic29sdXRlQmFzZVVybCIsInJhd1JlZlVybFBhcnQiLCJBQlNPTFVURV9VUkxfUkVHRVhQIiwiSlNPTlJlZkVycm9yIiwiZXh0cmEiLCJvcmlFcnJvciIsIm9yaWdpbmFsRXJyb3IiLCJkb2NDYWNoZSIsInNwZWNtYXBSZWZzIiwic2tpcFJlc29sdXRpb25UZXN0Rm5zIiwic3BlY21hcCIsInNwZWNtYXBJbnN0YW5jZSIsImdldEluc3RhbmNlIiwic2hvdWxkU2tpcFJlc29sdXRpb24iLCJnZXRDb250ZXh0Iiwic3BsaXRTdHJpbmciLCJyZWZQYXRoIiwicHJvbU9yVmFsIiwiYWJzb2x1dGVpZnkiLCJ3cmFwRXJyb3IiLCJwb2ludGVyQWxyZWFkeUluUGF0aCIsInBhcmVudFBvaW50ZXIiLCJhcnJheVRvSnNvblBvaW50ZXIiLCJlc2NhcGVKc29uUG9pbnRlclRva2VuIiwiZnVsbHlRdWFsaWZpZWRQb2ludGVyIiwic2FmZVBhcmVudFBvaW50ZXIiLCJyb290RG9jIiwiY29udGV4dFRyZWUiLCJwb2ludGVySXNBUGFyZW50IiwiaGFzSW5kaXJlY3RDeWNsZSIsInVzZUNpcmN1bGFyU3RydWN0dXJlcyIsImFic29sdXRpZmllZFJlZiIsImpzb25Qb2ludGVyVG9BcnJheSIsImV4dHJhY3RGcm9tRG9jIiwiX192YWx1ZSIsInBhdGNoVmFsdWVBbHJlYWR5SW5QYXRoIiwiYW5jZXN0b3JzIiwicG9pbnRUb0FuY2VzdG9yIiwiZ2V0RG9jIiwiZmV0Y2hKU09OIiwiZG9jUGF0aCIsIkFjY2VwdCIsImxvYWRTcGVjIiwiZXh0cmFjdCIsInVuZXNjYXBlSnNvblBvaW50ZXJUb2tlbiIsIl9kb2MiLCJVUkxTZWFyY2hQYXJhbXMiLCJwb2ludGVyQm91bmRhcnlDaGFyIiwibGFzdFBhcmVudENoYXIiLCJhbHJlYWR5QWRkRXJyb3IiLCJvcmlnaW5hbERlZmluaXRpb25PYmoiLCJ0b01lcmdlIiwiYWJzb2x1dGVSZWZQYXRjaGVzIiwiZ2VuZXJhdGVBYnNvbHV0ZVJlZlBhdGNoZXMiLCJnZXRCYXNlVXJsRm9yTm9kZVBhdGgiLCJ0YXJnZXRLZXlzIiwibm9kZVBhdGgiLCJhYnNvbHV0aWZpZWRSZWZWYWx1ZSIsIm9wUGF0aCIsIkNvbnRleHRUcmVlIiwiZ2V0UGFyZW50IiwiYnJhbmNoIiwicHJvdG9WYWx1ZSIsImVuc3VyZUV4aXN0cyIsIlNwZWNNYXAiLCJnZXRQbHVnaW5OYW1lIiwicGx1Z2luTmFtZSIsImdldFBhdGNoZXNPZlR5cGUiLCJkZWJ1Z0xldmVsIiwicGx1Z2luSGlzdG9yeSIsInByb21pc2VkUGF0Y2hlcyIsInNob3dEZWJ1ZyIsImFsbFBhdGNoZXMiLCJwbHVnaW5Qcm9wIiwibGliTWV0aG9kcyIsIl9nZXRDb250ZXh0IiwiaGFzUnVuIiwiX2hhc1J1biIsIndyYXBwZWRQbHVnaW5zIiwid3JhcFBsdWdpbiIsInVwZGF0ZVBhdGNoZXMiLCJ2ZXJib3NlIiwicGF0aERpc2NyaW1pbmF0b3IiLCJjdHgiLCJjcmVhdGVLZXlCYXNlZFBsdWdpbiIsInBsdWdpbk9iaiIsImlzU3ViUGF0aCIsInRlc3RlZCIsImdlbmVyYXRvciIsInJlZkNhY2hlIiwicGFyZW50SW5kZXgiLCJpbmRleE9mRmlyc3RQcm9wZXJ0aWVzIiwiaXNSb290UHJvcGVydGllcyIsInRyYXZlcnNlZCIsInVwZGF0ZWRQYXRoIiwib2JqUmVmIiwiaXNXaXRoaW5QYXRoRGlzY3JpbWluYXRvciIsIm5leHRQbHVnaW4iLCJnZXRNdXRhdGlvbnNGb3JQbHVnaW4iLCJuZXh0UHJvbWlzZWRQYXRjaCIsInJhY2UiLCJnZXRQbHVnaW5IaXN0b3J5IiwiZ2V0UGx1Z2luUnVuQ291bnQiLCJnZXRQbHVnaW5IaXN0b3J5VGlwIiwiZ2V0UGx1Z2luTXV0YXRpb25JbmRleCIsIm11dGF0aW9uSW5kZXgiLCJ1cGRhdGVQbHVnaW5IaXN0b3J5IiwicHJvbWlzZWRQYXRjaFRoZW4iLCJzZXRDb250ZXh0IiwidXBkYXRlTXV0YXRpb25zIiwicmVtb3ZlUHJvbWlzZWRQYXRjaCIsInByb21pc2VkUGF0Y2giLCJnZXRNdXRhdGlvbnMiLCJnZXRDdXJyZW50TXV0YXRpb25zIiwiZ2V0Q3VycmVudFBsdWdpbiIsInRpcCIsImN1cnJlbnRQbHVnaW4iLCJnZXRMaWIiLCJuZXh0UHJvbWlzZSIsInBsdWdpbkNvdW50IiwicHJvbWlzZXMiLCJleGVjdXRlUGx1Z2luIiwibGFzdE11dGF0aW9uSW5kZXgiLCJ5aWVsZGVkUGF0Y2hlcyIsInYyT3BlcmF0aW9uSWRDb21wYXRpYmlsaXR5TW9kZSIsImlkRnJvbVBhdGhNZXRob2QiLCJwYXJzZWRTcGVjIiwiJCRub3JtYWxpemVkIiwicGF0aFBhcmFtZXRlcnMiLCJvaWQiLCJvcExpc3QiLCJfX29yaWdpbmFsT3BlcmF0aW9uSWQiLCJpbmhlcml0c0xpc3QiLCJ0b0JlSW5oZXJpdCIsImluaGVyaXROYW1lIiwib3BQYXJhbSIsIm1ha2VGZXRjaEpTT04iLCJjcmVkZW50aWFscyIsIndpdGhDcmVkZW50aWFscyIsImlzUmZjMzk4NlJlc2VydmVkIiwiaXNSZmMzOTg2VW5yZXNlcnZlZCIsImVuY29kZUNoYXJhY3RlcnMiLCJjaGFyYWN0ZXJTZXQiLCJUZXh0RW5jb2RlciIsImVuY29kZWRCeXRlIiwic3R5bGl6ZSIsImVuY29kZUFycmF5IiwiZXhwbG9kZSIsInZhbHVlRW5jb2RlciIsImVuY29kZU9iamVjdCIsInZhbHVlS2V5cyIsImVuY29kZVByaW1pdGl2ZSIsInNlcmlhbGl6ZVJlcyIsIm1lcmdlSW5RdWVyeU9yRm9ybSIsImhlYWRlck5hbWUiLCJ1c2VyRmV0Y2giLCJyZXNFcnJvciIsInJlc3BvbnNlRXJyb3IiLCJzaG91bGREb3dubG9hZEFzVGV4dCIsIm9yaVJlcyIsInNlcmlhbGl6ZUhlYWRlcnMiLCJ1c2VUZXh0IiwicGFyc2VCb2R5Iiwic2VyaWFsaXplSGVhZGVyVmFsdWUiLCJpc0ZpbGUiLCJuYXZpZ2F0b3JPYmoiLCJwcm9kdWN0IiwiaXNBcnJheU9mRmlsZSIsIlNUWUxFX1NFUEFSQVRPUlMiLCJzcGFjZURlbGltaXRlZCIsInBpcGVEZWxpbWl0ZWQiLCJTRVBBUkFUT1JTIiwiY3N2Iiwic3N2IiwidHN2IiwiRmlsZVdpdGhEYXRhIiwiZm9ybWF0S2V5VmFsdWUiLCJza2lwRW5jb2RpbmciLCJjb2xsZWN0aW9uRm9ybWF0Iiwic2VyaWFsaXphdGlvbk9wdGlvbiIsImVuY29kZUZuIiwiZW5jb2RlZEtleSIsImZvcm1hdEtleVZhbHVlQnlTZXJpYWxpemF0aW9uT3B0aW9uIiwiYWxsb3dSZXNlcnZlZCIsImVuY29kZWRKc29uIiwiZW5jb2RlZERhdGEiLCJlbmNvZGVLZXlGbiIsImVuY29kZUZvcm1PclF1ZXJ5IiwiZW5jb2RlZFF1ZXJ5IiwicGFyYW1ldGVyTmFtZSIsImhhc0ZpbGUiLCJmb3JtZGF0YSIsInJlcUZvcm0iLCJmb3JtRGF0YSIsIm9yaVNlYXJjaCIsIm5ld1N0ciIsIm9yaVF1ZXJ5IiwiZmluYWxTdHIiLCJzdHJzIiwiam9pblNlYXJjaCIsIl9yZWYiLCJfZ2xvYmFsVGhpcyRkb2N1bWVudCIsInJldHJpZXZhbFVSTCIsInJlc29sdmVHZW5lcmljU3RyYXRlZ3kiLCJza2lwTm9ybWFsaXphdGlvbiIsInJldHJpZXZhbFVSSSIsImh0dHBDbGllbnQiLCJkb1Jlc29sdmUiLCJfc3BlYyIsInBsdWdzIiwibWFwU3BlYyIsImdlbmVyaWNTdHJhdGVneSIsIm5vcm1hbGl6ZWQiLCJpc09wZW5BUEkzMCIsIm9wZW5hcGkiLCJpc09wZW5BUEkzMSIsImlzT3BlbkFQSTMiLCJvcGVuQXBpMlN0cmF0ZWd5Iiwic3dhZ2dlciIsImlzT3BlbkFQSTIiLCJyZXNvbHZlT3BlbkFQSTJTdHJhdGVneSIsIm9wZW5BcGkzMFN0cmF0ZWd5IiwicmVzb2x2ZU9wZW5BUEkzMFN0cmF0ZWd5IiwiQXBpRE9NQWdncmVnYXRlRXJyb3IiLCJBcGlET01FcnJvciIsIkFwaURPTVN0cnVjdHVyZWRFcnJvciIsInN0cnVjdHVyZWRPcHRpb25zIiwiY2F1c2VsZXNzT3B0aW9ucyIsImdldFZpc2l0Rm4iLCJ2aXNpdG9yIiwiaXNMZWF2aW5nIiwidHlwZVZpc2l0b3IiLCJ0eXBlU3BlY2lmaWNWaXNpdG9yIiwibGVhdmUiLCJlbnRlciIsInNwZWNpZmljVmlzaXRvciIsInNwZWNpZmljVHlwZVZpc2l0b3IiLCJCUkVBSyIsImdldE5vZGVUeXBlIiwiaXNOb2RlIiwibWVyZ2VBbGwiLCJ2aXNpdG9ycyIsInZpc2l0Rm5HZXR0ZXIiLCJub2RlVHlwZUdldHRlciIsImJyZWFrU3ltYm9sIiwiZGVsZXRlTm9kZVN5bWJvbCIsInNraXBWaXNpdGluZ05vZGVTeW1ib2wiLCJleHBvc2VFZGl0cyIsInNraXBTeW1ib2wiLCJoYXNDaGFuZ2VkIiwidmlzaXRGbiIsInZpc2l0Iiwia2V5TWFwIiwibm9kZVByZWRpY2F0ZSIsIm5vZGVDbG9uZUZuIiwiZGV0ZWN0Q3ljbGVzIiwidmlzaXRvcktleXMiLCJpbkFycmF5IiwiZWRpdHMiLCJpc0VkaXRlZCIsImVkaXRPZmZzZXQiLCJlZGl0S2V5IiwiZWRpdFZhbHVlIiwiYXJyYXlLZXkiLCJzdGF0ZUtleSIsIl92aXNpdG9yS2V5cyRub2RlVHlwZSIsIl92aXNpdG9yS2V5cyRub2RlVHlwZTIiLCJfcmVkdWNlZCIsIlhBbGwiLCJfeGFsbCIsIkFubm90YXRpb24iLCJDb21tZW50IiwiUGFyc2VSZXN1bHQiLCJhcGkiLCJhbm5vdGF0aW9ucyIsIndhcm5pbmdzIiwicmVwbGFjZVJlc3VsdCIsInNlYXJjaEluZGV4IiwiU291cmNlTWFwIiwicG9zaXRpb25TdGFydCIsInBvc2l0aW9uRW5kIiwicm93IiwiaGFzTWV0aG9kIiwiaGFzQmFzaWNFbGVtZW50UHJvcHMiLCJwcmltaXRpdmVFcSIsImhhc0NsYXNzIiwiY2xzIiwiaXNFbGVtZW50VHlwZSIsInByZWRpY2F0ZUNyZWF0b3IiLCJpc1N0cmluZ0VsZW1lbnQiLCJpc051bWJlckVsZW1lbnQiLCJpc051bGxFbGVtZW50IiwiaXNCb29sZWFuRWxlbWVudCIsImlzT2JqZWN0RWxlbWVudCIsImlzQXJyYXlFbGVtZW50IiwiaXNNZW1iZXJFbGVtZW50IiwiaXNMaW5rRWxlbWVudCIsImlzUmVmRWxlbWVudCIsImlzQW5ub3RhdGlvbkVsZW1lbnQiLCJpc0NvbW1lbnRFbGVtZW50IiwiaXNQYXJzZVJlc3VsdEVsZW1lbnQiLCJpc1NvdXJjZU1hcEVsZW1lbnQiLCJpc1ByaW1pdGl2ZUVsZW1lbnQiLCJoYXNFbGVtZW50U291cmNlTWFwIiwiaW5jbHVkZXNTeW1ib2xzIiwiZWxlbWVudFN5bWJvbHMiLCJpbmNsdWRlc0NsYXNzZXMiLCJDbG9uZUVycm9yIiwiRGVlcENsb25lRXJyb3IiLCJTaGFsbG93Q2xvbmVFcnJvciIsImNsb25lRGVlcCIsInZpc2l0ZWQiLCJwYXNzVGhyb3VnaE9wdGlvbnMiLCJrZXlDb3B5IiwidmFsdWVDb3B5IiwiY2xvbmVTaGFsbG93Iiwic2FmZSIsImNsb25lU2hhbGxvd0tleVZhbHVlUGFpciIsImtleVZhbHVlUGFpciIsImNsb25lU2hhbGxvd0VsZW1lbnQiLCJvYmplY3RTbGljZSIsImNsb25lU2hhbGxvd09iamVjdFNsaWNlIiwiY2xvbmVTaGFsbG93QXJyYXlTbGljZSIsImtleU1hcERlZmF1bHQiLCJQYXJzZVJlc3VsdEVsZW1lbnQiLCJQcmVkaWNhdGVWaXNpdG9yIiwicmV0dXJuT25UcnVlIiwicmV0dXJuT25GYWxzZSIsIkVwaGVtZXJhbE9iamVjdCIsIkVwaGVtZXJhbEFycmF5IiwidG9SZWZlcmVuY2UiLCJmcm9tRW50cmllcyIsIlZpc2l0b3IiLCJyZWZlcmVuY2VzIiwiZXBoZW1lcmFsIiwiX2FuY2VzdG9ycyIsIm1lcmdlV2l0aEtleSIsIm1lcmdlRGVlcFdpdGhLZXkiLCJsT2JqIiwick9iaiIsImxWYWwiLCJyVmFsIiwibWVyZ2VEZWVwUmlnaHQiLCJhbmQiLCJib3RoIiwiX2JvdGgiLCJfaXNUeXBlZEFycmF5IiwiaW52b2tlQXJncyIsIm1wYXRoIiwiYm91bmRNZXRob2QiLCJpc09mVHlwZU9iamVjdCIsImlzT2JqZWN0Q29uc3RydWN0b3IiLCJoYXNPYmplY3RDb25zdHJ1Y3RvciIsImNyZWF0ZU5hbWVzcGFjZSIsIm5hbWVzcGFjZVBsdWdpbiIsIm5hbWVzcGFjZUluc3RhbmNlIiwicHJlZGljYXRlcyIsImRlZmF1bHREaXNwYXRjaFBsdWdpbnNPcHRpb25zIiwidG9vbGJveENyZWF0b3IiLCJ2aXNpdG9yT3B0aW9ucyIsImRpc3BhdGNoUGx1Z2luc1N5bmMiLCJtZXJnZWRPcHRpb25zIiwicGx1Z2luc1NwZWNzIiwibWVyZ2VkUGx1Z2luc1Zpc2l0b3IiLCJuZXdFbGVtZW50IiwibWVyZ2VBbGxWaXNpdG9yc0FzeW5jIiwidmlzaXRBc3luYyIsImFsbFNldHRsZWQiLCJjcmVhdGVSZWZyYWN0b3IiLCJjb21wdXRlRWRnZXMiLCJlZGdlcyIsImNoaWxkRWxlbWVudCIsInRyYW5zY2x1ZGUiLCJfdGhpcyRlZGdlcyIsIm9iamVjdEVsZW1lbnQiLCJ0cmFuc2NsdWRlQ2hpbGRPZk9iamVjdEVsZW1lbnQiLCJhcnJheUVsZW1lbnQiLCJ0cmFuc2NsdWRlQ2hpbGRPZkFycmF5RWxlbWVudCIsIm1lbWJlckVsZW1lbnQiLCJ0cmFuc2NsdWRlQ2hpbGRPZk1lbWJlckVsZW1lbnQiLCJKc29uUG9pbnRlckVycm9yIiwiQ29tcGlsYXRpb25Kc29uUG9pbnRlckVycm9yIiwiY29udmVyZ2UiLCJmbnMiLCJfaWRlbnRpdHkiLCJpc0Zpbml0ZVBvbnlmaWxsIiwiaXNJbnRlZ2VyUG9ueWZpbGwiLCJYVGFrZSIsIl94dGFrZSIsIlhEcm9wV2hpbGUiLCJfeGRyb3BXaGlsZSIsImRyb3BXaGlsZSIsImVuY29kZWRVUklDb21wb25lbnQiLCJJbnZhbGlkSnNvblBvaW50ZXJFcnJvciIsInVyaVRvUG9pbnRlciIsIkV2YWx1YXRpb25Kc29uUG9pbnRlckVycm9yIiwiZmFpbGVkVG9rZW4iLCJmYWlsZWRUb2tlblBvc2l0aW9uIiwidG9rZW5Qb3NpdGlvbiIsIkNhbGxiYWNrIiwiQ29tcG9uZW50cyIsInNjaGVtYXMiLCJleGFtcGxlcyIsInJlcXVlc3RCb2RpZXMiLCJzZWN1cml0eVNjaGVtZXMiLCJjYWxsYmFja3MiLCJDb250YWN0IiwiRGlzY3JpbWluYXRvciIsIkVuY29kaW5nIiwiYWxsb3dlZFJlc2VydmVkIiwiRXhhbXBsZSIsInN1bW1hcnkiLCJleHRlcm5hbFZhbHVlIiwiRXh0ZXJuYWxEb2N1bWVudGF0aW9uIiwiSGVhZGVyIiwiY29udGVudFByb3AiLCJJbmZvIiwidGVybXNPZlNlcnZpY2UiLCJ0b3MiLCJjb250YWN0IiwiY29udGFjdEVsZW1lbnQiLCJsaWNlbnNlRWxlbWVudCIsIkxpY2Vuc2UiLCJvcGVyYXRpb25SZWYiLCJfdGhpcyRvcGVyYXRpb25SZWYiLCJfdGhpcyRvcGVyYXRpb25JZCIsIk1lZGlhVHlwZSIsIk9BdXRoRmxvdyIsImF1dGhvcml6YXRpb25VcmwiLCJ0b2tlblVybCIsInJlZnJlc2hVcmwiLCJPQXV0aEZsb3dzIiwiY2xpZW50Q3JlZGVudGlhbHMiLCJhdXRob3JpemF0aW9uQ29kZSIsIk9wZW5hcGkiLCJPcGVuQXBpM18wIiwic2VydmVycyIsIk9wZXJhdGlvbiIsIlBhcmFtZXRlciIsIlBhdGhJdGVtIiwiR0VUIiwiUFVUIiwiUE9TVCIsIk9QVElPTlMiLCJIRUFEIiwiUEFUQ0giLCJUUkFDRSIsIlBhdGhzIiwiUmVmZXJlbmNlIiwiUmVxdWVzdEJvZHkiLCJSZXNwb25zZXMiLCJVbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yIiwiSlNPTlNjaGVtYSIsImlkUHJvcCIsIiRzY2hlbWEiLCJtdWx0aXBsZU9mIiwiYWRkaXRpb25hbEl0ZW1zIiwicGF0dGVyblByb3BlcnRpZXMiLCJtZWRpYSIsIkpTT05SZWZlcmVuY2UiLCJNZWRpYSIsImJpbmFyeUVuY29kaW5nIiwiTGlua0Rlc2NyaXB0aW9uIiwicmVsIiwidGFyZ2V0U2NoZW1hIiwibWVkaWFUeXBlIiwiZW5jVHlwZSIsIm1hcE9iakluZGV4ZWQiLCJpc05pbCIsIl9wYXRoIiwicHJvcFNhdGlzZmllcyIsImRlcmVmZXJlbmNlIiwicm9vdE9iamVjdCIsImVtcHR5RWxlbWVudCIsImlzTWVyZ2VhYmxlRWxlbWVudCIsImdldE1ldGFNZXJnZUZ1bmN0aW9uIiwiY3VzdG9tTWV0YU1lcmdlIiwidGFyZ2V0TWV0YSIsImdldEF0dHJpYnV0ZXNNZXJnZUZ1bmN0aW9uIiwiY3VzdG9tQXR0cmlidXRlc01lcmdlIiwidGFyZ2V0QXR0cmlidXRlcyIsImFycmF5RWxlbWVudE1lcmdlIiwidGFyZ2V0RWxlbWVudCIsInNvdXJjZUVsZW1lbnQiLCJvYmplY3RFbGVtZW50TWVyZ2UiLCJjbG9uZWRNZW1iZXIiLCJ0YXJnZXRWYWx1ZSIsImtleUVsZW1lbnQiLCJfbWVyZ2VkT3B0aW9ucyRpc01lcmciLCJfbWVyZ2VkT3B0aW9ucyRhcnJheUUiLCJfbWVyZ2VkT3B0aW9ucyRvYmplY3QiLCJzb3VyY2VJc0FycmF5RWxlbWVudCIsIm1lcmdlZEVsZW1lbnQiLCJjb3B5TWV0YUFuZEF0dHJpYnV0ZXMiLCJwaWNrIiwic3BlY09iaiIsInBhc3NpbmdPcHRpb25zTmFtZXMiLCJyZXRyaWV2ZVBhc3NpbmdPcHRpb25zIiwicmV0cmlldmVGaXhlZEZpZWxkcyIsImZpeGVkRmllbGRzIiwicmV0cmlldmVWaXNpdG9yIiwicmV0cmlldmVWaXNpdG9ySW5zdGFuY2UiLCJwYXNzaW5nT3B0cyIsInRvUmVmcmFjdGVkRWxlbWVudCIsInZpc2l0b3JQcm90b3R5cGUiLCJmYWxsYmFja1Zpc2l0b3JQcm90b3R5cGUiLCJpZ25vcmVkRmllbGRzIiwiZmllbGRzIiwiZml4ZWRGaWVsZEVsZW1lbnQiLCJuZXdNZW1iZXJFbGVtZW50IiwiaXNKU09OUmVmZXJlbmNlTGlrZUVsZW1lbnQiLCJhbGxQYXNzIiwib3IiLCJfZWl0aGVyIiwiUGF0dGVybmVkRmllbGRzSnNvbk9iamVjdFZpc2l0b3IiLCJmaWVsZFBhdHRlcm5QcmVkaWNhdGUiLCJwYXR0ZXJuZWRGaWVsZEVsZW1lbnQiLCJzdHJpbmdFbGVtZW50IiwibGlua0Rlc2NyaXB0aW9uRWxlbWVudCIsImlmRWxzZSIsIm9uVHJ1ZSIsIm9uRmFsc2UiLCJfaWZFbHNlIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibWluTGVuIiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiYXJyMiIsImdldE1heEFyaXR5IiwiZGlzcGF0Y2hJbXBsIiwiZnVuY3Rpb25zIiwiQWx0ZXJuYXRpbmdWaXNpdG9yIiwiYWx0ZXJuYXRvciIsIkpTT05TY2hlbWFPckpTT05SZWZlcmVuY2VWaXNpdG9yIiwiJHZpc2l0b3IiLCJKU09OU2NoZW1hRHJhZnQ0RWxlbWVudCIsIkpTT05SZWZlcmVuY2VFbGVtZW50IiwiTWVkaWFFbGVtZW50IiwiTGlua0Rlc2NyaXB0aW9uRWxlbWVudCIsImlzSlNPTlNjaGVtYUVsZW1lbnQiLCJpc0pTT05SZWZlcmVuY2VFbGVtZW50IiwiaXNNZWRpYUVsZW1lbnQiLCJpc0xpbmtEZXNjcmlwdGlvbkVsZW1lbnQiLCJqc29uU2NoZW1hRHJhZnQ0Iiwic3BlY2lmaWNhdGlvbk9iaiIsInJlc29sdmVkU3BlYyIsInJvb3RWaXNpdG9yIiwiaWRQcm9wcyIsIlNlY3VyaXR5UmVxdWlyZW1lbnQiLCJTZWN1cml0eVNjaGVtZSIsImluVmFsIiwiYmVhcmVyRm9ybWF0IiwiZmxvd3MiLCJTZXJ2ZXIiLCJ2YXJpYWJsZXMiLCJTZXJ2ZXJWYXJpYWJsZSIsIlRhZyIsIlhtbCIsImV4Y2x1ZGUiLCJwcm90b0NoYWluIiwiY3VycmVudENoYWluIiwiaGFyZE1peFByb3RvcyIsImluZ3JlZGllbnRzIiwib2JqcyIsImNvbW1vblByb3RvIiwicHJvdG9DaGFpbnMiLCJwcm90b3MiLCJwb3RlbnRpYWxDb21tb25Qcm90byIsIm5lYXJlc3RDb21tb25Qcm90byIsIm1peGVkUHJvdG8iLCJ2aXNpdGVkUHJvdG9zIiwibmV3UHJvdG8iLCJ1bmlxdWUiLCJnZXRJbmdyZWRpZW50V2l0aFByb3AiLCJpbmdyZWRpZW50IiwicHJvdG9EZXB0aCIsInByb3Rvc0FyZUxlZnRUb1NlYXJjaCIsInNlYXJjaFRhcmdldCIsInByb3h5TWl4IiwiaW5ncmVkaWVudFdpdGhQcm9wIiwiZGVsZXRlUHJvcGVydHkiLCJtaXhpbnMiLCJnZXRNaXhpbnNGb3JDbGFzcyIsImNsYXp6IiwibWVyZ2VPYmplY3RzT2ZEZWNvcmF0b3JzIiwibzEiLCJvMiIsImFsbEtleXMiLCJtZXJnZWRPYmplY3QiLCJtZXJnZVByb3BlcnR5QW5kTWV0aG9kRGVjb3JhdG9ycyIsImQxIiwiZDIiLCJtZXJnZURlY29yYXRvcnMiLCJkZWNvcmF0b3JzIiwiZGVlcERlY29yYXRvclNlYXJjaCIsImRlY29yYXRvcnNGb3JDbGFzc0NoYWluIiwiYWxsQ2xhc3NlcyIsImZyb250aWVyIiwicHJvdG9DaGFpbkNsYXNzZXMiLCJuZXdDbGFzc2VzIiwiZmluZEFsbENvbnN0aXR1ZW50Q2xhc3NlcyIsImdldERlY29yYXRvcnNGb3JDbGFzcyIsImRlY29yYXRvcnNGb3JDbGFzcyIsIk1peGluIiwiY29uc3RydWN0b3JzIiwicHJvdG90eXBlcyIsImluaXRGdW5jdGlvbk5hbWUiLCJpbml0RnVuY3Rpb25zIiwiZXh0cmFQcm90byIsImluaXRGdW5jdGlvbiIsIk1peGVkQ2xhc3MiLCJEZWNvcmF0ZWRNaXhlZENsYXNzIiwiY2xhc3NEZWNvcmF0b3JzIiwiZGlyZWN0RGVjb3JhdG9yU2VhcmNoIiwiZGVjb3JhdG9yIiwiYXBwbHlQcm9wQW5kTWV0aG9kRGVjb3JhdG9ycyIsIm1peGVkQ2xhc3MiLCJjb25zdGl0dWVudHMiLCJwcm9wQW5kTWV0aG9kRGVjb3JhdG9ycyIsInByb3BEZWNvcmF0b3JzIiwibWV0aG9kRGVjb3JhdG9ycyIsIm9wZW5BcGlHZW5lcmljRWxlbWVudCIsIm9wZW5BcGlTZW1hbnRpY0VsZW1lbnQiLCJpc1JlZmVyZW5jZUxpa2VFbGVtZW50IiwiaXNTZXJ2ZXJMaWtlRWxlbWVudCIsImlzVGFnTGlrZUVsZW1lbnQiLCJpc09wZW5BcGlFeHRlbnNpb24iLCJjYW5TdXBwb3J0U3BlY2lmaWNhdGlvbkV4dGVuc2lvbnMiLCJzcGVjaWZpY2F0aW9uRXh0ZW5zaW9uUHJlZGljYXRlIiwiZXh0ZW5zaW9uRWxlbWVudCIsIk9wZW5BcGkzXzBWaXNpdG9yIiwiT3BlbmFwaVZpc2l0b3IiLCJvcGVuYXBpRWxlbWVudCIsIlNwZWNpZmljYXRpb25FeHRlbnNpb25WaXNpdG9yIiwiSW5mb1Zpc2l0b3IiLCJWZXJzaW9uVmlzaXRvciIsIkNvbnRhY3RWaXNpdG9yIiwiTGljZW5zZVZpc2l0b3IiLCJMaW5rVmlzaXRvciIsIk9wZXJhdGlvblJlZlZpc2l0b3IiLCJPcGVyYXRpb25JZFZpc2l0b3IiLCJMaW5rUGFyYW1ldGVycyIsInByaW1hcnlDbGFzcyIsIlBhcmFtZXRlcnNWaXNpdG9yIiwiU2VydmVyVmlzaXRvciIsIlVybFZpc2l0b3IiLCJTZXJ2ZXJzIiwiU2VydmVyc1Zpc2l0b3IiLCJTZXJ2ZXJWYXJpYWJsZVZpc2l0b3IiLCJTZXJ2ZXJWYXJpYWJsZXMiLCJWYXJpYWJsZXNWaXNpdG9yIiwiaXNDYWxsYmFja0VsZW1lbnQiLCJpc0NvbXBvbmVudHNFbGVtZW50IiwiaXNDb250YWN0RWxlbWVudCIsImlzRXhhbXBsZUVsZW1lbnQiLCJpc0V4dGVybmFsRG9jdW1lbnRhdGlvbkVsZW1lbnQiLCJpc0hlYWRlckVsZW1lbnQiLCJpc0luZm9FbGVtZW50IiwiaXNMaWNlbnNlRWxlbWVudCIsImlzT3BlbmFwaUVsZW1lbnQiLCJpc09wZW5BcGkzXzBFbGVtZW50IiwiaXNPcGVyYXRpb25FbGVtZW50IiwiaXNQYXJhbWV0ZXJFbGVtZW50IiwiaXNQYXRoSXRlbUVsZW1lbnQiLCJpc1BhdGhzRWxlbWVudCIsImlzUmVmZXJlbmNlRWxlbWVudCIsImlzUmVxdWVzdEJvZHlFbGVtZW50IiwiaXNSZXNwb25zZUVsZW1lbnQiLCJpc1Jlc3BvbnNlc0VsZW1lbnQiLCJpc1NjaGVtYUVsZW1lbnQiLCJpc0Jvb2xlYW5Kc29uU2NoZW1hRWxlbWVudCIsImlzU2VjdXJpdHlSZXF1aXJlbWVudEVsZW1lbnQiLCJpc1NlY3VyaXR5U2NoZW1lRWxlbWVudCIsImlzU2VydmVyRWxlbWVudCIsImlzU2VydmVyVmFyaWFibGVFbGVtZW50IiwiaXNNZWRpYVR5cGVFbGVtZW50IiwiaXNTZXJ2ZXJzRWxlbWVudCIsIlNjaGVtYVZpc2l0b3IiLCJFeGFtcGxlc1Zpc2l0b3IiLCJyZWZlcmVuY2VFbGVtZW50IiwiTWVkaWFUeXBlRXhhbXBsZXMiLCJNZWRpYVR5cGVFbmNvZGluZyIsIkVuY29kaW5nVmlzaXRvciIsIlNlY3VyaXR5UmVxdWlyZW1lbnRWaXNpdG9yIiwiU2VjdXJpdHkiLCJTZWN1cml0eVZpc2l0b3IiLCJDb21wb25lbnRzVmlzaXRvciIsIlRhZ1Zpc2l0b3IiLCJSZWZlcmVuY2VWaXNpdG9yIiwiUGFyYW1ldGVyVmlzaXRvciIsIm1lZGlhVHlwZUVsZW1lbnQiLCJIZWFkZXJWaXNpdG9yIiwiSGVhZGVyRXhhbXBsZXMiLCJDb250ZW50VmlzaXRvciIsIkhlYWRlckNvbnRlbnQiLCJKU09OU2NoZW1hQWxsT2ZWaXNpdG9yIiwiSlNPTlNjaGVtYUFueU9mVmlzaXRvciIsIkpTT05TY2hlbWFPbmVPZlZpc2l0b3IiLCJKU09OU2NoZW1hSXRlbXNWaXNpdG9yIiwiSlNPTlNjaGVtYVByb3BlcnRpZXNWaXNpdG9yIiwiSlNPTlNjaGVtYVR5cGVWaXNpdG9yIiwiRGlzY3JpbWluYXRvclZpc2l0b3IiLCJEaXNjcmltaW5hdG9yTWFwcGluZyIsIk1hcHBpbmdWaXNpdG9yIiwiWG1sVmlzaXRvciIsIlBhcmFtZXRlckV4YW1wbGVzIiwiUGFyYW1ldGVyQ29udGVudCIsIkNvbXBvbmVudHNTY2hlbWFzIiwiU2NoZW1hc1Zpc2l0b3IiLCJDb21wb25lbnRzUmVzcG9uc2VzIiwiUmVzcG9uc2VzVmlzaXRvciIsIkNvbXBvbmVudHNQYXJhbWV0ZXJzIiwiQ29tcG9uZW50c0V4YW1wbGVzIiwiQ29tcG9uZW50c1JlcXVlc3RCb2RpZXMiLCJSZXF1ZXN0Qm9kaWVzVmlzaXRvciIsIkNvbXBvbmVudHNIZWFkZXJzIiwiSGVhZGVyc1Zpc2l0b3IiLCJDb21wb25lbnRzU2VjdXJpdHlTY2hlbWVzIiwiU2VjdXJpdHlTY2hlbWVzVmlzaXRvciIsIkNvbXBvbmVudHNMaW5rcyIsIkNvbXBvbmVudHNDYWxsYmFja3MiLCJDYWxsYmFja3NWaXNpdG9yIiwiRXhhbXBsZVZpc2l0b3IiLCJFeHRlcm5hbFZhbHVlVmlzaXRvciIsIkV4dGVybmFsRG9jdW1lbnRhdGlvblZpc2l0b3IiLCJoZWFkZXJFbGVtZW50IiwiRW5jb2RpbmdIZWFkZXJzIiwiUGF0aHNWaXNpdG9yIiwicGF0aEl0ZW1FbGVtZW50IiwiUmVxdWVzdEJvZHlWaXNpdG9yIiwiUmVxdWVzdEJvZHlDb250ZW50IiwiQ2FsbGJhY2tWaXNpdG9yIiwiUmVzcG9uc2VWaXNpdG9yIiwiUmVzcG9uc2VIZWFkZXJzIiwiUmVzcG9uc2VDb250ZW50IiwiUmVzcG9uc2VMaW5rcyIsIl9pc051bWJlciIsImhhc09yQWRkIiwic2hvdWxkQWRkIiwicHJldlNpemUiLCJfaXRlbXMiLCJfbmF0aXZlU2V0IiwiYklkeCIsIl9TZXQiLCJkaWZmZXJlbmNlIiwiZmlyc3RMZW4iLCJzZWNvbmRMZW4iLCJ0b0ZpbHRlck91dCIsIk1peGVkRmllbGRzVmlzaXRvciIsInNwZWNQYXRoRml4ZWRGaWVsZHMiLCJzcGVjUGF0aFBhdHRlcm5lZEZpZWxkcyIsImh0dHBTdGF0dXNDb2RlIiwiT3BlcmF0aW9uVmlzaXRvciIsIk9wZXJhdGlvblRhZ3MiLCJUYWdzVmlzaXRvciIsIk9wZXJhdGlvblBhcmFtZXRlcnMiLCJPcGVyYXRpb25DYWxsYmFja3MiLCJPcGVyYXRpb25TZWN1cml0eSIsIk9wZXJhdGlvblNlcnZlcnMiLCJQYXRoSXRlbVZpc2l0b3IiLCJvcGVyYXRpb25FbGVtZW50IiwiaHR0cE1ldGhvZEVsZW1lbnRDSSIsImh0dHBNZXRob2RFbGVtZW50Q1MiLCJQYXRoSXRlbVNlcnZlcnMiLCJQYXRoSXRlbVBhcmFtZXRlcnMiLCJTZWN1cml0eVNjaGVtZVZpc2l0b3IiLCJPQXV0aEZsb3dzVmlzaXRvciIsIk9BdXRoRmxvd1Zpc2l0b3IiLCJPQXV0aEZsb3dTY29wZXMiLCJTY29wZXNWaXNpdG9yIiwiVGFncyIsImpzb25TY2hlbWFGaXhlZEZpZWxkcyIsIk9wZW5BcGkiLCJwdXQiLCJpbiIsImV4dGVuc2lvbiIsIkNhbGxiYWNrRWxlbWVudCIsIkNvbXBvbmVudHNFbGVtZW50IiwiQ29udGFjdEVsZW1lbnQiLCJEaXNjcmltaW5hdG9yRWxlbWVudCIsIkV4dGVybmFsRG9jdW1lbnRhdGlvbkVsZW1lbnQiLCJIZWFkZXJFbGVtZW50IiwiSW5mb0VsZW1lbnQiLCJMaWNlbnNlRWxlbWVudCIsIk1lZGlhVHlwZUVsZW1lbnQiLCJPQXV0aEZsb3dFbGVtZW50IiwiT0F1dGhGbG93c0VsZW1lbnQiLCJPcGVuQXBpM18wRWxlbWVudCIsIk9wZXJhdGlvbkVsZW1lbnQiLCJQYXJhbWV0ZXJFbGVtZW50IiwiUGF0aEl0ZW1FbGVtZW50IiwiUGF0aHNFbGVtZW50IiwiUmVmZXJlbmNlRWxlbWVudCIsIlJlcXVlc3RCb2R5RWxlbWVudCIsIlJlc3BvbnNlRWxlbWVudCIsIlJlc3BvbnNlc0VsZW1lbnQiLCJTY2hlbWFFbGVtZW50IiwiU2VjdXJpdHlSZXF1aXJlbWVudEVsZW1lbnQiLCJTZWN1cml0eVNjaGVtZUVsZW1lbnQiLCJTZXJ2ZXJFbGVtZW50IiwiU2VydmVyVmFyaWFibGVFbGVtZW50IiwiVGFnRWxlbWVudCIsIm9wZW5BcGkzXzAiLCJKc29uU2NoZW1hRGlhbGVjdCIsImlkZW50aWZpZXIiLCJPcGVuQXBpM18xIiwianNvblNjaGVtYURpYWxlY3QiLCJ3ZWJob29rcyIsIiR2b2NhYnVsYXJ5IiwiJGlkIiwiJGFuY2hvciIsIiRkeW5hbWljQW5jaG9yIiwiJGR5bmFtaWNSZWYiLCIkZGVmcyIsIiRjb21tZW50IiwiaWZTY2hlbWEiLCJ0aGVuU2NoZW1hIiwiZWxzZVNjaGVtYSIsImRlcGVuZGVudFNjaGVtYXMiLCJwcmVmaXhJdGVtcyIsImNvbnRhaW5zUHJvcCIsInByb3BlcnR5TmFtZXMiLCJ1bmV2YWx1YXRlZEl0ZW1zIiwidW5ldmFsdWF0ZWRQcm9wZXJ0aWVzIiwiZW51bVZhbCIsImNvbnN0VmFsIiwibWF4Q29udGFpbnMiLCJtaW5Db250YWlucyIsImRlcGVuZGVudFJlcXVpcmVkIiwiY29udGVudEVuY29kaW5nIiwiY29udGVudE1lZGlhVHlwZSIsImNvbnRlbnRTY2hlbWEiLCJPcGVuQXBpM18xVmlzaXRvciIsIkJhc2VJbmZvVmlzaXRvciIsIkJhc2VDb250YWN0VmlzaXRvciIsIkJhc2VMaWNlbnNlVmlzaXRvciIsIkJhc2VMaW5rVmlzaXRvciIsIkpzb25TY2hlbWFEaWFsZWN0VmlzaXRvciIsImpzb25TY2hlbWFEaWFsZWN0RWxlbWVudCIsIkJhc2VTZXJ2ZXJWaXNpdG9yIiwiQmFzZVNlcnZlclZhcmlhYmxlVmlzaXRvciIsIkJhc2VNZWRpYVR5cGVWaXNpdG9yIiwiQmFzZVNlY3VyaXR5UmVxdWlyZW1lbnRWaXNpdG9yIiwiQmFzZUNvbXBvbmVudHNWaXNpdG9yIiwiQmFzZVRhZ1Zpc2l0b3IiLCJCYXNlUmVmZXJlbmNlVmlzaXRvciIsIkJhc2VQYXJhbWV0ZXJWaXNpdG9yIiwiQmFzZUhlYWRlclZpc2l0b3IiLCJpc0pzb25TY2hlbWFEaWFsZWN0RWxlbWVudCIsImlzT3BlbkFwaTNfMUVsZW1lbnQiLCJpc1BhdGhJdGVtRWxlbWVudEV4dGVybmFsIiwiaXNSZWZlcmVuY2VFbGVtZW50RXh0ZXJuYWwiLCJqc29uU2NoZW1hRGVmYXVsdERpYWxlY3QiLCJoYW5kbGUkc2NoZW1hIiwiaGFuZGxlJGlkIiwiYm9vbGVhbkVsZW1lbnQiLCJnZXRKc29uU2NoZW1hRGlhbGVjdCIsImluaGVyaXRlZCRzY2hlbWEiLCJpbmhlcml0ZWQkaWQiLCIkdm9jYWJ1bGFyeVZpc2l0b3IiLCIkcmVmVmlzaXRvciIsIiRkZWZzVmlzaXRvciIsInNjaGVtYUVsZW1lbnQiLCJEZXBlbmRlbnRTY2hlbWFzVmlzaXRvciIsIlByZWZpeEl0ZW1zVmlzaXRvciIsIkRlcGVuZGVudFJlcXVpcmVkVmlzaXRvciIsIkJhc2VEaXNjcmltaW5hdG9yVmlzaXRvciIsIkJhc2VYTUxWaXNpdG9yIiwiQ29tcG9uZW50c1BhdGhJdGVtcyIsIlBhdGhJdGVtc1Zpc2l0b3IiLCJCYXNlRXhhbXBsZVZpc2l0b3IiLCJCYXNlRXh0ZXJuYWxEb2N1bWVudGF0aW9uVmlzaXRvciIsIkJhc2VFbmNvZGluZ1Zpc2l0b3IiLCJCYXNlUGF0aHNWaXNpdG9yIiwiQmFzZVJlcXVlc3RCb2R5VmlzaXRvciIsIkJhc2VDYWxsYmFja1Zpc2l0b3IiLCJCYXNlUmVzcG9uc2VWaXNpdG9yIiwiQmFzZVJlc3BvbnNlc1Zpc2l0b3IiLCJCYXNlT3BlcmF0aW9uVmlzaXRvciIsIkJhc2VQYXRoSXRlbVZpc2l0b3IiLCJCYXNlU2VjdXJpdHlTY2hlbWVWaXNpdG9yIiwiQmFzZU9BdXRoRmxvd3NWaXNpdG9yIiwiQmFzZU9BdXRoRmxvd1Zpc2l0b3IiLCJXZWJob29rcyIsIldlYmhvb2tzVmlzaXRvciIsImlmIiwiZWxzZSIsImNvbnN0IiwiT3BlbkFwaTNfMUVsZW1lbnQiLCJvcGVuQXBpM18xIiwiTm90SW1wbGVtZW50ZWRFcnJvciIsIk1lZGlhVHlwZXMiLCJ1bmtub3duTWVkaWFUeXBlIiwiZmlsdGVyQnlGb3JtYXQiLCJmaW5kQnkiLCJsYXRlc3QiLCJPcGVuQVBJTWVkaWFUeXBlcyIsImVmZmVjdGl2ZUZvcm1hdCIsInJlZlNldCIsInByb3BFcSIsIlJlZmVyZW5jZVNldCIsImFub3RoZXJSZWZTZXQiLCJjbGVhbiIsInBhcnNlcnMiLCJwYXJzZXJPcHRzIiwicmVzb2x2ZXJzIiwicmVzb2x2ZXJPcHRzIiwic3RyYXRlZ2llcyIsInN0cmF0ZWd5T3B0cyIsImludGVybmFsIiwiZXh0ZXJuYWwiLCJjaXJjdWxhclJlcGxhY2VyIiwiYnVuZGxlIiwidG9GdW5jdG9yRm4iLCJuZXh0T2JqIiwiX2Fzc29jIiwiSWRlbnRpdHkiLCJvdmVyIiwiYmFzZVVSSUxlbnMiLCJiYXNlVVJJRGVmYXVsdCIsIndpdGhvdXREZWZhdWx0cyIsInBhcnNlUmVzdWx0IiwibGFzdERvdFBvc2l0aW9uIiwiVGV4dERlY29kZXIiLCJQbHVnaW5FcnJvciIsInBsdWdpblJlc3VsdHMiLCJEZXJlZmVyZW5jZUVycm9yIiwiVW5tYXRjaGVkRGVyZWZlcmVuY2VTdHJhdGVneUVycm9yIiwiZGVyZWZlcmVuY2VBcGlET00iLCJzdXJyb2dhdGVXcmFwcGluZyIsImVsZW1lbnRDbG9uZSIsImZpbGUiLCJkZXJlZmVyZW5jZVN0cmF0ZWdpZXMiLCJQYXJzZUVycm9yIiwiUGFyc2VyRXJyb3IiLCJQYXJzZXIiLCJhbGxvd0VtcHR5Iiwic291cmNlTWFwIiwiZmlsZUV4dGVuc2lvbnMiLCJtZWRpYVR5cGVzIiwiY2FuUGFyc2UiLCJiaW5hcnlTdHJpbmciLCJiYXNlNjRTdHJpbmciLCJwYXJzZVJlc3VsdEVsZW1lbnQiLCJiYXNlNjRTdHJpbmdFbGVtZW50IiwiUmVzb2x2ZVN0cmF0ZWd5IiwiY2FuUmVzb2x2ZSIsImRlcmVmZXJlbmNlU3RyYXRlZ3kiLCJzdHJhdGVneSIsImNhbkRlcmVmZXJlbmNlIiwiX2Nsb25lIiwiZGVlcCIsIl9PYmplY3RNYXAiLCJfaXNQcmltaXRpdmUiLCJjb3BpZWRWYWx1ZSIsImNhY2hlZENvcHkiLCJoYXNoZWRLZXkiLCJidWNrZXQiLCJYUmVkdWNlQnkiLCJ2YWx1ZUZuIiwidmFsdWVBY2MiLCJrZXlGbiIsIl94cmVkdWNlQnkiLCJyZWR1Y2VCeSIsImVsdCIsInJlbW92ZVNwYWNlcyIsIm5vcm1hbGl6ZU9wZXJhdGlvbklkIiwid2l0aG91dFNwYWNlcyIsImNyZWF0ZU5vcm1hbGl6ZWRPcGVyYXRpb25JZCIsIm9wZXJhdGlvbklkTm9ybWFsaXplciIsIm5vcm1hbGl6ZWRPcGVyYXRpb25zIiwibm9ybWFsaXplZE9wZXJhdGlvbkdyb3VwcyIsIm5vcm1hbGl6ZWRPcGVyYXRpb25JZCIsIm9wZXJhdGlvbkVsZW1lbnRzIiwiaW5kZXhlZE5vcm1hbGl6ZWRPcGVyYXRpb25JZCIsImxpbmtFbGVtZW50IiwibGlua09wZXJhdGlvbklkIiwibm9ybWFsaXplZE9wZXJhdGlvbkVsZW1lbnQiLCJvcmlnaW5hbE9wZXJhdGlvbklkIiwicGF0aE9yIiwiWFVuaXFXaXRoIiwiX3h1bmlxV2l0aCIsInVuaXFXaXRoIiwicGFyYW1ldGVyRXF1YWxzIiwicGFyYW1ldGVyMSIsInBhcmFtZXRlcjIiLCJwYXRoSXRlbVBhcmFtZXRlcnMiLCJwYXJlbnRQYXRoSXRlbVBhcmFtZXRlcnMiLCJvcGVyYXRpb25QYXJhbWV0ZXJzIiwibWVyZ2VkUGFyYW1ldGVycyIsInRvcExldmVsU2VjdXJpdHkiLCJfdG9wTGV2ZWxTZWN1cml0eSIsImlzU2VydmVyc1VuZGVmaW5lZCIsImlzU2VydmVyc0FycmF5RWxlbWVudCIsImlzU2VydmVyc0VtcHR5IiwiZGVmYXVsdFNlcnZlciIsInBhcmVudE9wZW5hcGlFbGVtZW50IiwiX3BhcmVudE9wZW5hcGlFbGVtZW50Iiwib3BlbmFwaVNlcnZlcnNDb250ZW50Iiwib3BlbmFwaVNlcnZlcnMiLCJwYXJlbnRQYXRoSXRlbUVsZW1lbnQiLCJfcGFyZW50UGF0aEl0ZW1FbGVtZW4iLCJwYXRoSXRlbVNlcnZlcnNDb250ZW50IiwicGF0aEl0ZW1TZXJ2ZXJzIiwicGFyYW1ldGVyRWxlbWVudCIsIl9wYXJhbWV0ZXJFbGVtZW50JHNjaCIsIl9wYXJhbWV0ZXJFbGVtZW50JHNjaDIiLCJfaGVhZGVyRWxlbWVudCRzY2hlbWEiLCJfaGVhZGVyRWxlbWVudCRzY2hlbWEyIiwicG9qb0FkYXB0ZXIiLCJub3JtYWxpemVGbiIsIm9wZW5BcGlFbGVtZW50IiwiUmVzb2x2ZXIiLCJjYW5SZWFkIiwicmVkaXJlY3RzIiwiZ2V0SHR0cENsaWVudCIsIlJlc29sdmVFcnJvciIsIlJlc29sdmVyRXJyb3IiLCJBYm9ydENvbnRyb2xsZXIiLCJBYm9ydFNpZ25hbCIsInN3YWdnZXJIVFRQQ2xpZW50Iiwic3dhZ2dlckhUVFBDbGllbnRDb25maWciLCJjbGllbnQiLCJjb250cm9sbGVyIiwic2lnbmFsIiwidGltZW91dElEIiwicmVkaXJlY3QiLCJmb2xsb3ciLCJyZXNvdXJjZSIsImhhc1N1cHBvcnRlZEZpbGVFeHRlbnNpb24iLCJoYXNTdXBwb3J0ZWRNZWRpYVR5cGUiLCJwb2pvIiwiZGV0ZWN0aW9uUmVnRXhwIiwicmVmcmFjdG9yT3B0cyIsIm5vbmUiLCJFbGVtZW50SWRlbnRpdHlFcnJvciIsIklkZW50aXR5TWFuYWdlciIsInV1aWQiLCJpZGVudGl0eU1hcCIsImlkZW50aWZ5IiwiZ2VuZXJhdGVJZCIsImZvcmdldCIsIkpzb25TY2hlbWEkYW5jaG9yRXJyb3IiLCJFdmFsdWF0aW9uSnNvblNjaGVtYSRhbmNob3JFcnJvciIsIkludmFsaWRKc29uU2NoZW1hJGFuY2hvckVycm9yIiwiaXNBbmNob3IiLCJ1cmlUb0FuY2hvciIsIkpzb25TY2hlbWFVcmlFcnJvciIsIkV2YWx1YXRpb25Kc29uU2NoZW1hVXJpRXJyb3IiLCJyZXNvbHZlU2NoZW1hJHJlZkZpZWxkIiwiJHJlZkJhc2VVUkkiLCJyZWZyYWN0VG9TY2hlbWFFbGVtZW50IiwicmVmcmFjdGVkIiwibWF5YmVSZWZyYWN0VG9TY2hlbWFFbGVtZW50IiwidXJpU3RyaXBwZWRIYXNoIiwiaXNTY2hlbWFFbGVtZW50V2l0aCRpZCIsInNjaGVtYU9iamVjdEVsZW1lbnRzIiwiJGlkQmFzZVVSSSIsInJlc29sdmVTY2hlbWEkaWRGaWVsZCIsImZyYWdtZW50RXZhbHVhdGUiLCJNYXhpbXVtRGVyZWZlcmVuY2VEZXB0aEVycm9yIiwiTWF4aW11bVJlc29sdmVEZXB0aEVycm9yIiwiVW5tYXRjaGVkUmVzb2x2ZXJFcnJvciIsIm9wdHNCb3VuZFJlc29sdmVycyIsImNsb25lZFJlc29sdmVyIiwib3B0c0JvdW5kUGFyc2VycyIsImNsb25lZFBhcnNlciIsInBhcnNlRmlsZSIsIkFuY2VzdG9yTGluZWFnZSIsImluY2x1ZGVzQ3ljbGUiLCJzZWFyY2hFbGVtZW50IiwiZmluZEl0ZW0iLCJpZGVudGl0eU1hbmFnZXIiLCJPcGVuQXBpM18xRGVyZWZlcmVuY2VWaXNpdG9yIiwiaW5kaXJlY3Rpb25zIiwicmVmcmFjdENhY2hlIiwidG9CYXNlVVJJIiwibXV0YWJsZVJlZmVyZW5jZSIsImltbXV0YWJsZVJlZmVyZW5jZSIsInRvQW5jZXN0b3JMaW5lYWdlIiwiZGlyZWN0QW5jZXN0b3JzIiwicmVmZXJlbmNpbmdFbGVtZW50IiwiYW5jZXN0b3JzTGluZWFnZSIsImlzSW50ZXJuYWxSZWZlcmVuY2UiLCJpc0V4dGVybmFsUmVmZXJlbmNlIiwianNvblBvaW50ZXIiLCJyZWZlcmVuY2VkRWxlbWVudCIsInJlZmVyZW5jZWRFbGVtZW50VHlwZSIsImNhY2hlS2V5IiwiX3RoaXMkb3B0aW9ucyRkZXJlZmVyIiwiX3RoaXMkb3B0aW9ucyRkZXJlZmVyMiIsInJlZkVsZW1lbnQiLCJpc05vblJvb3REb2N1bWVudCIsInNob3VsZERldGVjdENpcmN1bGFyIiwiX3RoaXMkb3B0aW9ucyRkZXJlZmVyMyIsIl90aGlzJG9wdGlvbnMkZGVyZWZlcjQiLCJfbGlua0VsZW1lbnRDb3B5JG9wZXIiLCJsaW5rRWxlbWVudENvcHkiLCJfbGlua0VsZW1lbnRDb3B5JG9wZXIyIiwiRXhhbXBsZUVsZW1lbnQiLCJleGFtcGxlRWxlbWVudCIsInZhbHVlRWxlbWVudCIsImV4YW1wbGVFbGVtZW50Q29weSIsIiRyZWZCYXNlVVJJU3RyaXBwZWRIYXNoIiwiaXNVbmtub3duVVJJIiwiaXNVUkwiLCJyZWZlcmVuY2VBc1NjaGVtYSIsIl90aGlzJG9wdGlvbnMkZGVyZWZlcjUiLCJfdGhpcyRvcHRpb25zJGRlcmVmZXI2IiwiYm9vbGVhbkpzb25TY2hlbWFFbGVtZW50IiwiT3BlbkFwaTNfMURlcmVmZXJlbmNlU3RyYXRlZ3kiLCJfZmlsZSRwYXJzZVJlc3VsdCIsIl9vcHRpb25zJGRlcmVmZXJlbmNlJCIsImltbXV0YWJsZVJlZlNldCIsIm11dGFibGVSZWZzU2V0IiwiZGVyZWZlcmVuY2VkRWxlbWVudCIsImVsZW1lbnRQYXRoIiwiZWxlbWVudFBhdGhTYW5pdGl6ZWQiLCJ0cmltUGFyc2VSZXN1bHQiLCJTY2hlbWFSZWZFcnJvciIsIk9wZW5BcGkzXzFTd2FnZ2VyQ2xpZW50RGVyZWZlcmVuY2VWaXNpdG9yIiwiX3RoaXMkYmFzZVBhdGgiLCJfdGhpcyRiYXNlUGF0aDIiLCJyb290Q2F1c2UiLCJ3cmFwcGVkRXJyb3IiLCJkZXJlZmVyZW5jZU9wdHMiLCJfdGhpcyRiYXNlUGF0aDMiLCJfdGhpcyRiYXNlUGF0aDQiLCJfdGhpcyRvcHRpb25zJGRlcmVmZXI3IiwiX3RoaXMkb3B0aW9ucyRkZXJlZmVyOCIsIl90aGlzJG9wdGlvbnMkZGVyZWZlcjkiLCJfdGhpcyRvcHRpb25zJGRlcmVmZXIxMCIsIl90aGlzJGJhc2VQYXRoNSIsIm1lcmdlVmlzaXRvciIsIl90aGlzJGJhc2VQYXRoNiIsIl90aGlzJG9wdGlvbnMkZGVyZWZlcjExIiwiX3RoaXMkb3B0aW9ucyRkZXJlZmVyMTIiLCJfdGhpcyRiYXNlUGF0aDciLCJfdGhpcyRvcHRpb25zJGRlcmVmZXIxMyIsIl90aGlzJG9wdGlvbnMkZGVyZWZlcjE0IiwibWFjcm9PcGVyYXRpb24iLCJwb2pvT3BlcmF0aW9uIiwicG9qb1BhcmFtZXRlciIsIm1hY3JvVmFsdWUiLCJtYWNyb0Vycm9yIiwiTW9kZWxQcm9wZXJ0eU1hY3JvVmlzaXRvciIsImFsbE9mTWVyZ2VkIiwiT3BlbkFwaTNfMVN3YWdnZXJDbGllbnREZXJlZmVyZW5jZVN0cmF0ZWd5IiwiZGVyZWZlcmVuY2VWaXNpdG9yIiwicGFyYW1ldGVyTWFjcm9WaXNpdG9yIiwibW9kZWxQcm9wZXJ0eU1hY3JvVmlzaXRvciIsImFsbE9mVmlzaXRvciIsInJlc29sdmVPcGVuQVBJMzFTdHJhdGVneSIsIm9wZW5BcGlQYXJzZVJlc3VsdEVsZW1lbnQiLCJqc29uUG9pbnRlclVSSSIsImZyYWdtZW50RWxlbWVudCIsIm9wZW5BcGlFbGVtZW50UmVmZXJlbmNlIiwiZGVyZWZlcmVuY2VkIiwidHJhbnNjbHVkZWQiLCJvcGVuQXBpMzFBcGlET01TdHJhdGVneSIsIm1ha2VSZXNvbHZlIiwiZGVmYXVsdE9wdGlvbnMiLCJyZXRyaWV2ZWRTcGVjIiwic3RyYXRlZ3lPcHRpb25zIiwic3RyZyIsImdlbmVyaWMiLCJwcm90IiwiYm9keUJ1aWxkZXIiLCJoZWFkZXJCdWlsZGVyIiwicXVlcnlCdWlsZGVyIiwicGF0aEJ1aWxkZXIiLCJmb3JtRGF0YUJ1aWxkZXIiLCJlZmZlY3RpdmVNZWRpYVR5cGUiLCJzdHlsZWRWYWx1ZSIsInNlcmlhbGl6ZWRWYWx1ZSIsIlBBUkFNRVRFUl9IRUFERVJfQkxBQ0tMSVNUIiwiQ29va2llIiwiZ2xvYmFsT2JqZWN0IiwiYXR0YWNoQ29udGVudFR5cGVGb3JFbXB0eVBheWxvYWQiLCJhcHBseVNlY3VyaXRpZXMiLCJfc3BlYyRjb21wb25lbnRzIiwic2VjdXJpdHlEZWYiLCJzZWN1cml0eU9iaiIsImNvb2tpZXMiLCJlbmNvZGVkIiwidG9rZW5WYWx1ZSIsInRva2VuVHlwZSIsInRva2VuX3R5cGUiLCJyZXF1ZXN0Qm9keURlZiIsInJlcXVlc3RCb2R5TWVkaWFUeXBlcyIsImlzRXhwbGljaXRDb250ZW50VHlwZVZhbGlkIiwiZmlyc3RNZWRpYVR5cGUiLCJhY2NlcHQiLCJfcmVxdWVzdEJvZHlEZWYkY29udGUiLCJfcmVxdWVzdEJvZHlEZWYkY29udGUyIiwidG9rZW5OYW1lIiwib2F1dGhUb2tlbiIsImF1dGhvcml6YXRpb24iLCJpc0JvZHlQYXJhbVByZXNlbnQiLCJpc0Zvcm1EYXRhUGFyYW1QcmVzZW50IiwiaWRGcm9tUGF0aE1ldGhvZExlZ2FjeSIsImFycmF5T3JFbXB0eSIsInBhcnNlVVJJUmVmZXJlbmNlIiwidXJpUmVmZXJlbmNlIiwicGFyc2VkVVJMIiwic2VhcmNoUGFyYW1zIiwiT3BlcmF0aW9uTm90Rm91bmRFcnJvciIsImZpbmRQYXJhbWV0ZXJzV2l0aE5hbWUiLCJkZWR1cGxpY2F0ZVBhcmFtZXRlcnMiLCJwYXJhbXNNYXAiLCJkZWR1cGVkUGFyYW1ldGVycyIsInVzZXJIdHRwIiwicGFyYW1ldGVyQnVpbGRlcnMiLCJzcGVjSXNPQVMzIiwib3BlcmF0aW9uUmF3IiwiZ2V0T3BlcmF0aW9uUmF3IiwiZmluZE9wZXJhdGlvbiIsImVhY2hPcGVyYXRpb24iLCJvcGVyYXRpb25PYmoiLCJjYlZhbHVlIiwicmF3T3BlcmF0aW9uSWQiLCJvYXMzQmFzZVVybCIsIl9zcGVjJHBhdGhzIiwiX3NwZWMkcGF0aHMyIiwic2VsZWN0ZWRTZXJ2ZXJPYmoiLCJzZWxlY3RlZFNlcnZlclVybCIsIm9wZXJhdGlvbkxldmVsU2VydmVycyIsInBhdGhJdGVtTGV2ZWxTZXJ2ZXJzIiwicm9vdExldmVsU2VydmVycyIsImlzTm9uRW1wdHlTZXJ2ZXJMaXN0Iiwic3J2IiwidmFyTmFtZXMiLCJnZXRWYXJpYWJsZVRlbXBsYXRlTmFtZXMiLCJ2YXJpYWJsZURlZmluaXRpb24iLCJ2YXJpYWJsZVZhbHVlIiwiYnVpbGRPYXMzVXJsV2l0aENvbnRleHQiLCJvdXJVcmwiLCJwYXJzZWRDb250ZXh0VXJsIiwiY29tcHV0ZWRTY2hlbWUiLCJzdHJpcE5vbkFscGhhIiwiY29tcHV0ZWRIb3N0IiwiY29tcHV0ZWRQYXRoIiwic3dhZ2dlcjJCYXNlVXJsIiwiZmlyc3RTY2hlbWVJblNwZWMiLCJjb21iaW5lZFBhcmFtZXRlcnMiLCJ2ZXJzaW9uU3BlY2lmaWNPcHRpb25zIiwiY29va2llU3RyaW5nIiwiY29va2llVmFsdWUiLCJtYWtlUmVzb2x2ZVN1YnRyZWUiLCJyZXR1cm5FbnRpcmVUcmVlIiwicmVzb2x2ZU9wdGlvbnMiLCJwYXRoU2VnbWVudCIsImh0dHBGbiIsIkh0dHAiLCJwcmVGZXRjaCIsInBvc3RGZXRjaCIsIm9wZW5BcGkzMUFwaURPTVJlc29sdmVTdHJhdGVneSIsIm9wZW5BcGkzMFJlc29sdmVTdHJhdGVneSIsIm9wZW5BcGkyUmVzb2x2ZVN0cmF0ZWd5IiwiZ2VuZXJpY1Jlc29sdmVTdHJhdGVneSIsImZyZXNoQ29uZmlncyIsIkNvbnRleHRLZXkiLCJnVCIsImNvbnRleHRNYXAiLCJyZWFsQ29udGV4dCIsIlJlYWN0UmVkdXhDb250ZXh0Iiwibm90SW5pdGlhbGl6ZWQiLCJSRUFDVF9QT1JUQUxfVFlQRSIsIlJFQUNUX0ZSQUdNRU5UX1RZUEUiLCJSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFIiwiUkVBQ1RfUFJPRklMRVJfVFlQRSIsIlJFQUNUX1BST1ZJREVSX1RZUEUiLCJSRUFDVF9DT05URVhUX1RZUEUiLCJSRUFDVF9TRVJWRVJfQ09OVEVYVF9UWVBFIiwiUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSIsIlJFQUNUX1NVU1BFTlNFX1RZUEUiLCJSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUiLCJSRUFDVF9NRU1PX1RZUEUiLCJSRUFDVF9MQVpZX1RZUEUiLCJGb3J3YXJkUmVmIiwiTWVtbyIsInR5cGVPZiIsIiQkdHlwZW9mVHlwZSIsInB1cmVGaW5hbFByb3BzU2VsZWN0b3JGYWN0b3J5IiwibWFwRGlzcGF0Y2hUb1Byb3BzIiwibWVyZ2VQcm9wcyIsImFyZVN0YXRlc0VxdWFsIiwiYXJlT3duUHJvcHNFcXVhbCIsImFyZVN0YXRlUHJvcHNFcXVhbCIsInN0YXRlUHJvcHMiLCJkaXNwYXRjaFByb3BzIiwibWVyZ2VkUHJvcHMiLCJoYXNSdW5BdExlYXN0T25jZSIsImhhbmRsZVN1YnNlcXVlbnRDYWxscyIsIm5leHRPd25Qcm9wcyIsInByb3BzQ2hhbmdlZCIsInN0YXRlQ2hhbmdlZCIsImhhbmRsZU5ld1Byb3BzQW5kTmV3U3RhdGUiLCJkZXBlbmRzT25Pd25Qcm9wcyIsImhhbmRsZU5ld1Byb3BzIiwiaGFuZGxlTmV3U3RhdGUiLCJuZXh0U3RhdGVQcm9wcyIsInN0YXRlUHJvcHNDaGFuZ2VkIiwicHVyZUZpbmFsUHJvcHNTZWxlY3RvciIsImhhbmRsZUZpcnN0Q2FsbCIsImZpcnN0U3RhdGUiLCJmaXJzdE93blByb3BzIiwid3JhcE1hcFRvUHJvcHNDb25zdGFudCIsImdldENvbnN0YW50IiwiaW5pdENvbnN0YW50U2VsZWN0b3IiLCJjb25zdGFudFNlbGVjdG9yIiwiZ2V0RGVwZW5kc09uT3duUHJvcHMiLCJtYXBUb1Byb3BzIiwid3JhcE1hcFRvUHJvcHNGdW5jIiwiaW5pdFByb3h5U2VsZWN0b3IiLCJwcm94eSIsIm1hcFRvUHJvcHNQcm94eSIsInN0YXRlT3JEaXNwYXRjaCIsImRldGVjdEZhY3RvcnlBbmRWZXJpZnkiLCJjcmVhdGVJbnZhbGlkQXJnRmFjdG9yeSIsIndyYXBwZWRDb21wb25lbnROYW1lIiwiZGVmYXVsdE1lcmdlUHJvcHMiLCJkZWZhdWx0Tm9vcEJhdGNoIiwibnVsbExpc3RlbmVycyIsImNyZWF0ZVN1YnNjcmlwdGlvbiIsInBhcmVudFN1YiIsInN1YnNjcmlwdGlvbnNBbW91bnQiLCJzZWxmU3Vic2NyaWJlZCIsImhhbmRsZUNoYW5nZVdyYXBwZXIiLCJzdWJzY3JpcHRpb24iLCJvblN0YXRlQ2hhbmdlIiwidHJ5U3Vic2NyaWJlIiwiYWRkTmVzdGVkU3ViIiwiY3JlYXRlTGlzdGVuZXJDb2xsZWN0aW9uIiwidHJ5VW5zdWJzY3JpYmUiLCJjbGVhbnVwTGlzdGVuZXIiLCJub3RpZnlOZXN0ZWRTdWJzIiwidHJ5U3Vic2NyaWJlU2VsZiIsInRyeVVuc3Vic2NyaWJlU2VsZiIsImdldExpc3RlbmVycyIsImNhblVzZURPTSIsImlzUmVhY3ROYXRpdmUiLCJ1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0Iiwic2hhbGxvd0VxdWFsIiwib2JqQSIsIm9iakIiLCJrZXlzQiIsIlJFQUNUX1NUQVRJQ1MiLCJnZXREZWZhdWx0UHJvcHMiLCJwcm9wVHlwZXMiLCJLTk9XTl9TVEFUSUNTIiwiY2FsbGVyIiwiTUVNT19TVEFUSUNTIiwiVFlQRV9TVEFUSUNTIiwiZ2V0U3RhdGljcyIsImlzTWVtbyIsIm9iamVjdFByb3RvdHlwZSIsImhvaXN0Tm9uUmVhY3RTdGF0aWNzIiwidGFyZ2V0Q29tcG9uZW50Iiwic291cmNlQ29tcG9uZW50IiwiaW5oZXJpdGVkQ29tcG9uZW50IiwidGFyZ2V0U3RhdGljcyIsInNvdXJjZVN0YXRpY3MiLCJOT19TVUJTQ1JJUFRJT05fQVJSQVkiLCJjYXB0dXJlV3JhcHBlclByb3BzIiwibGFzdFdyYXBwZXJQcm9wcyIsImxhc3RDaGlsZFByb3BzIiwicmVuZGVySXNTY2hlZHVsZWQiLCJ3cmFwcGVyUHJvcHMiLCJjaGlsZFByb3BzRnJvbVN0b3JlVXBkYXRlIiwic3RyaWN0RXF1YWwiLCJjb25uZWN0X2RlZmF1bHQiLCJjb25uZWN0IiwicHVyZSIsImFyZU1lcmdlZFByb3BzRXF1YWwiLCJDb250ZXh0IiwiaW5pdE1hcFN0YXRlVG9Qcm9wcyIsIm1hcFN0YXRlVG9Qcm9wc0ZhY3RvcnkiLCJpbml0TWFwRGlzcGF0Y2hUb1Byb3BzIiwibWFwRGlzcGF0Y2hUb1Byb3BzRmFjdG9yeSIsImluaXRNZXJnZVByb3BzIiwibWVyZ2VQcm9wc0ZhY3RvcnkiLCJ3cmFwTWVyZ2VQcm9wc0Z1bmMiLCJpbml0TWVyZ2VQcm9wc1Byb3h5IiwiaGFzUnVuT25jZSIsIm1lcmdlUHJvcHNQcm94eSIsIm5leHRNZXJnZWRQcm9wcyIsInNob3VsZEhhbmRsZVN0YXRlQ2hhbmdlcyIsIldyYXBwZWRDb21wb25lbnQiLCJzZWxlY3RvckZhY3RvcnlPcHRpb25zIiwiQ29ubmVjdEZ1bmN0aW9uIiwicHJvcHNDb250ZXh0IiwicmVhY3RSZWR1eEZvcndhcmRlZFJlZiIsInJlYWN0UmVkdXhGb3J3YXJkZWRSZWYyIiwid3JhcHBlclByb3BzMiIsIkNvbnRleHRUb1VzZSIsImNvbnRleHRWYWx1ZSIsImRpZFN0b3JlQ29tZUZyb21Qcm9wcyIsImRpZFN0b3JlQ29tZUZyb21Db250ZXh0IiwiZ2V0U2VydmVyU3RhdGUiLCJjaGlsZFByb3BzU2VsZWN0b3IiLCJmaW5hbFByb3BzU2VsZWN0b3JGYWN0b3J5Iiwic3Vic2NyaXB0aW9uMiIsIm5vdGlmeU5lc3RlZFN1YnMyIiwib3ZlcnJpZGRlbkNvbnRleHRWYWx1ZSIsImxhdGVzdFN1YnNjcmlwdGlvbkNhbGxiYWNrRXJyb3IiLCJhY3R1YWxDaGlsZFByb3BzU2VsZWN0b3IiLCJzdWJzY3JpYmVGb3JSZWFjdCIsInJlYWN0TGlzdGVuZXIiLCJzdWJzY3JpYmVVcGRhdGVzIiwiYWRkaXRpb25hbFN1YnNjcmliZUxpc3RlbmVyIiwiZGlkVW5zdWJzY3JpYmUiLCJsYXN0VGhyb3duRXJyb3IiLCJjaGVja0ZvclVwZGF0ZXMiLCJsYXRlc3RTdG9yZVN0YXRlIiwibmV3Q2hpbGRQcm9wcyIsImFjdHVhbENoaWxkUHJvcHMiLCJ1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0V2l0aEFyZ3MiLCJlZmZlY3RGdW5jIiwiZWZmZWN0QXJncyIsInJlbmRlcmVkV3JhcHBlZENvbXBvbmVudCIsIkNvbm5lY3QiLCJmb3J3YXJkZWQiLCJmb3J3YXJkQ29ubmVjdFJlZiIsIlByb3ZpZGVyX2RlZmF1bHQiLCJzZXJ2ZXJTdGF0ZSIsInN0YWJpbGl0eUNoZWNrIiwiaWRlbnRpdHlGdW5jdGlvbkNoZWNrIiwicHJldmlvdXNTdGF0ZSIsImluaXRpYWxpemVDb25uZWN0Iiwid2l0aFN5c3RlbSIsIldpdGhTeXN0ZW0iLCJnZXREaXNwbGF5TmFtZSIsIndpdGhSb290IiwicmVkdXhTdG9yZSIsIldpdGhSb290Iiwid2l0aENvbm5lY3QiLCJjdXN0b21NYXBTdGF0ZVRvUHJvcHMiLCJoYW5kbGVQcm9wcyIsIm9sZFByb3BzIiwid2l0aE1hcHBlZENvbnRhaW5lciIsIm1lbUdldENvbXBvbmVudCIsIldpdGhNYXBwZWRDb250YWluZXIiLCJjbGVhblByb3BzIiwiZG9tTm9kZSIsIkFwcCIsIlJlYWN0RE9NIiwidmlld1BsdWdpbiIsIm1lbW9pemVGb3JHZXRDb21wb25lbnQiLCJtZW1NYWtlTWFwcGVkQ29udGFpbmVyIiwibWVtb2l6ZUZvcldpdGhNYXBwZWRDb250YWluZXIiLCJtYWtlTWFwcGVkQ29udGFpbmVyIiwiVmlld0xlZ2FjeVBsdWdpbiIsInJlYWN0TWFqb3JWZXJzaW9uIiwiZG93bmxvYWRVcmxQbHVnaW4iLCJjaGVja1Bvc3NpYmxlRmFpbFJlYXNvbnMiLCJzcGVjVXJsIiwiZW51bXMiLCJsb2FkaW5nU3RhdHVzIiwic3BlY191cGRhdGVfbG9hZGluZ19zdGF0dXMiLCJjbGFzc05hbWVDb21iaW5hdGlvbnMiLCJjcmVhdGVTdHlsZU9iamVjdCIsImVsZW1lbnRTdHlsZSIsInN0eWxlc2hlZXQiLCJnZXRDbGFzc05hbWVDb21iaW5hdGlvbnMiLCJwb3dlclNldFBlcm11dGF0aW9ucyIsInN0eWxlT2JqZWN0IiwiY3JlYXRlQ2xhc3NOYW1lU3RyaW5nIiwiX3JlZiRzdHlsZSIsInVzZUlubGluZVN0eWxlcyIsIlRhZ05hbWUiLCJjaGlsZHJlbkNyZWF0b3IiLCJjcmVhdGVDaGlsZHJlbiIsImNoaWxkcmVuQ291bnQiLCJhbGxTdHlsZXNoZWV0U2VsZWN0b3JzIiwic3RhcnRpbmdDbGFzc05hbWUiLCJhc3RHZW5lcmF0b3IiLCJuZXdMaW5lUmVnZXgiLCJBbGxMaW5lTnVtYmVycyIsIl9yZWYyIiwiY29kZVN0cmluZyIsImNvZGVTdHlsZSIsIl9yZWYyJGNvbnRhaW5lclN0eWxlIiwiY29udGFpbmVyU3R5bGUiLCJfcmVmMiRudW1iZXJTdHlsZSIsIm51bWJlclN0eWxlIiwic3RhcnRpbmdMaW5lTnVtYmVyIiwiZ2V0QWxsTGluZU51bWJlcnMiLCJsaW5lcyIsImdldElubGluZUxpbmVOdW1iZXIiLCJsaW5lTnVtYmVyIiwiaW5saW5lTGluZU51bWJlclN0eWxlIiwiYXNzZW1ibGVMaW5lTnVtYmVyU3R5bGVzIiwibGluZU51bWJlclN0eWxlIiwibGFyZ2VzdExpbmVOdW1iZXIiLCJkZWZhdWx0TGluZU51bWJlclN0eWxlIiwibWluV2lkdGgiLCJ0ZXh0QWxpZ24iLCJjdXN0b21MaW5lTnVtYmVyU3R5bGUiLCJjcmVhdGVMaW5lRWxlbWVudCIsIl9yZWYzIiwic2hvd0lubGluZUxpbmVOdW1iZXJzIiwiX3JlZjMkbGluZVByb3BzIiwibGluZVByb3BzIiwiX3JlZjMkY2xhc3NOYW1lIiwic2hvd0xpbmVOdW1iZXJzIiwid3JhcExvbmdMaW5lcyIsImZsYXR0ZW5Db2RlVHJlZSIsIm5ld1RyZWUiLCJwcm9jZXNzTGluZXMiLCJjb2RlVHJlZSIsIndyYXBMaW5lcyIsIl9yZWY0IiwibGFzdExpbmVCcmVha0luZGV4IiwiY3JlYXRlTGluZSIsImNyZWF0ZVdyYXBwZWRMaW5lIiwiY3JlYXRlVW53cmFwcGVkTGluZSIsIl9sb29wIiwibmV3TGluZXMiLCJnZXROZXdMaW5lcyIsInNwbGl0VmFsdWUiLCJzdHJpbmdDaGlsZCIsImxhc3RMaW5lSW5QcmV2aW91c1NwYW4iLCJuZXdFbGVtIiwiX2xpbmUyIiwiX2xpbmUzIiwiZGVmYXVsdFJlbmRlcmVyIiwiX3JlZjUiLCJyb3dzIiwiaXNIaWdobGlnaHRKcyIsImRlZmF1bHRBc3RHZW5lcmF0b3IiLCJfcmVmNyIsIl9yZWY3JHN0eWxlIiwiX3JlZjckY3VzdG9tU3R5bGUiLCJjdXN0b21TdHlsZSIsIl9yZWY3JGNvZGVUYWdQcm9wcyIsImNvZGVUYWdQcm9wcyIsIl9yZWY3JHVzZUlubGluZVN0eWxlcyIsIl9yZWY3JHNob3dMaW5lTnVtYmVycyIsIl9yZWY3JHNob3dJbmxpbmVMaW5lTiIsIl9yZWY3JHN0YXJ0aW5nTGluZU51bSIsImxpbmVOdW1iZXJDb250YWluZXJTdHlsZSIsIl9yZWY3JGxpbmVOdW1iZXJTdHlsZSIsIl9yZWY3JHdyYXBMb25nTGluZXMiLCJfcmVmNyRsaW5lUHJvcHMiLCJyZW5kZXJlciIsIl9yZWY3JFByZVRhZyIsIlByZVRhZyIsIl9yZWY3JENvZGVUYWciLCJDb2RlVGFnIiwiX3JlZjckY29kZSIsImFsbExpbmVOdW1iZXJzIiwiZGVmYXVsdFByZVN0eWxlIiwiZ2VuZXJhdG9yQ2xhc3NOYW1lIiwicHJlUHJvcHMiLCJkZWZhdWx0Q29kZVZhbHVlIiwiZ2V0Q29kZVRyZWUiLCJfcmVmNiIsImhhc0xhbmd1YWdlIiwiY2hlY2tGb3JMaXN0ZWRMYW5ndWFnZSIsInN0eWxlcyIsImFnYXRlIiwiYXJ0YSIsIm1vbm9rYWkiLCJub3JkIiwib2JzaWRpYW4iLCJpZGVhIiwic3ludGF4SGlnaGxpZ2h0aW5nIiwidGhlbWUiLCJzeW50YXhIaWdobGlnaHQiLCJSZWFjdFN5bnRheEhpZ2hsaWdodGVyIiwiZmlsZU5hbWUiLCJkb3dubG9hZGFibGUiLCJjYW5Db3B5IiwiaGFuZGxlRG93bmxvYWQiLCJzYXZlQXMiLCJTeW50YXhIaWdobGlnaHRlcldyYXBwZXIiLCJPcmlnaW5hbCIsImNhblN5bnRheEhpZ2hsaWdodCIsImFjdGl2YXRlZCIsIlN5bnRheEhpZ2hsaWdodGluZ1BsdWdpbjEiLCJTeW50YXhIaWdobGlnaHRpbmdQbHVnaW4yIiwiU3ludGF4SGlnaGxpZ2h0aW5nUGx1Z2luIiwiR0lUX0RJUlRZIiwiR0lUX0NPTU1JVCIsIlBBQ0tBR0VfVkVSU0lPTiIsIkJVSUxEX1RJTUUiLCJidWlsZEluZm8iLCJzd2FnZ2VyVUkiLCJnaXRSZXZpc2lvbiIsImdpdERpcnR5IiwiYnVpbGRUaW1lc3RhbXAiLCJWZXJzaW9uc1BsdWdpbiIsIndpdGhFcnJvckJvdW5kYXJ5IiwiRXJyb3JCb3VuZGFyeSIsInRhcmdldE5hbWUiLCJXaXRoRXJyb3JCb3VuZGFyeSIsImlzQ2xhc3NDb21wb25lbnQiLCJGYWxsYmFjayIsImhhc0Vycm9yIiwiZXJyb3JJbmZvIiwiRmFsbGJhY2tDb21wb25lbnQiLCJzYWZlUmVuZGVyUGx1Z2luIiwiY29tcG9uZW50TGlzdCIsImZ1bGxPdmVycmlkZSIsIm1lcmdlZENvbXBvbmVudExpc3QiLCJ3cmFwRmFjdG9yeSIsImdldExheW91dCIsImxheW91dE5hbWUiLCJMYXlvdXQiLCJBdXRob3JpemF0aW9uUG9wdXAiLCJBdXRocyIsIkF1dGhvcml6ZUJ0biIsInNob3dQb3B1cCIsIkF1dGhvcml6ZUJ0bkNvbnRhaW5lciIsImF1dGhvcml6YWJsZURlZmluaXRpb25zIiwiQXV0aG9yaXplT3BlcmF0aW9uQnRuIiwib25BdXRoQ2hhbmdlIiwic3VibWl0QXV0aCIsImxvZ291dENsaWNrIiwiYXV0aHMiLCJBdXRoSXRlbSIsIk9hdXRoMiIsImF1dGhvcml6ZWRBdXRoIiwibm9uT2F1dGhEZWZpbml0aW9ucyIsIm9hdXRoRGVmaW5pdGlvbnMiLCJvblN1Ym1pdCIsIkFwaUtleUF1dGgiLCJCYXNpY0F1dGgiLCJhdXRoRWwiLCJBdXRoRXJyb3IiLCJSb3ciLCJDb2wiLCJhdXRvQ29tcGxldGUiLCJzaG93VmFsdWUiLCJFeGFtcGxlc1NlbGVjdCIsIm9uU2VsZWN0IiwiY3VycmVudEV4YW1wbGVLZXkiLCJzaG93TGFiZWxzIiwiX29uU2VsZWN0IiwiaXNTeW50aGV0aWNDaGFuZ2UiLCJfb25Eb21TZWxlY3QiLCJzZWxlY3RlZE9wdGlvbnMiLCJnZXRDdXJyZW50RXhhbXBsZSIsImN1cnJlbnRFeGFtcGxlUGVyUHJvcHMiLCJmaXJzdEV4YW1wbGVzS2V5IiwiZmlyc3RFeGFtcGxlIiwiZmlyc3RFeGFtcGxlS2V5IiwiaXNWYWx1ZU1vZGlmaWVkIiwiaXNNb2RpZmllZFZhbHVlQXZhaWxhYmxlIiwiZXhhbXBsZU5hbWUiLCJzdHJpbmdpZnlVbmxlc3NMaXN0IiwiRXhhbXBsZXNTZWxlY3RWYWx1ZVJldGFpbmVyIiwidXNlckhhc0VkaXRlZEJvZHkiLCJjdXJyZW50TmFtZXNwYWNlIiwic2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWciLCJ1cGRhdGVWYWx1ZSIsInZhbHVlRnJvbUV4YW1wbGUiLCJfZ2V0Q3VycmVudEV4YW1wbGVWYWx1ZSIsImxhc3RVc2VyRWRpdGVkVmFsdWUiLCJjdXJyZW50VXNlcklucHV0VmFsdWUiLCJsYXN0RG93bnN0cmVhbVZhbHVlIiwiaXNNb2RpZmllZFZhbHVlU2VsZWN0ZWQiLCJfZ2V0U3RhdGVGb3JDdXJyZW50TmFtZXNwYWNlIiwiX3NldFN0YXRlRm9yQ3VycmVudE5hbWVzcGFjZSIsIl9zZXRTdGF0ZUZvck5hbWVzcGFjZSIsIm5ld1N0YXRlRm9yTmFtZXNwYWNlIiwiX2lzQ3VycmVudFVzZXJJbnB1dFNhbWVBc0V4YW1wbGVWYWx1ZSIsIl9nZXRWYWx1ZUZvckV4YW1wbGUiLCJleGFtcGxlS2V5IiwiY3VycmVudEtleSIsIl9vbkV4YW1wbGVzU2VsZWN0IiwidmFsdWVGcm9tQ3VycmVudEV4YW1wbGUiLCJleGFtcGxlc01hdGNoaW5nTmV3VmFsdWUiLCJhdXRoQ29uZmlncyIsImN1cnJlbnRTZXJ2ZXIiLCJvYXV0aDJSZWRpcmVjdFVybCIsInNjb3Blc0FycmF5Iiwic2NvcGVTZXBhcmF0b3IiLCJyZWFsbSIsInVzZVBrY2VXaXRoQXV0aG9yaXphdGlvbkNvZGVHcmFudCIsImdlbmVyYXRlQ29kZVZlcmlmaWVyIiwiY29kZUNoYWxsZW5nZSIsImNyZWF0ZUNvZGVDaGFsbGVuZ2UiLCJzaGFKcyIsInNhbml0aXplZEF1dGhvcml6YXRpb25VcmwiLCJ1c2VCYXNpY0F1dGhlbnRpY2F0aW9uV2l0aEFjY2Vzc0NvZGVHcmFudCIsImVyckNiIiwiYXBwTmFtZSIsIm9hdXRoMkF1dGhvcml6ZSIsIm9uU2NvcGVDaGFuZ2UiLCJuZXdTY29wZXMiLCJvbklucHV0Q2hhbmdlIiwic2VsZWN0U2NvcGVzIiwiSW5pdGlhbGl6ZWRJbnB1dCIsIm9pZGNVcmwiLCJBVVRIX0ZMT1dfSU1QTElDSVQiLCJBVVRIX0ZMT1dfUEFTU1dPUkQiLCJBVVRIX0ZMT1dfQUNDRVNTX0NPREUiLCJBVVRIX0ZMT1dfQVBQTElDQVRJT04iLCJpc1BrY2VDb2RlR3JhbnQiLCJmbG93VG9EaXNwbGF5IiwidGFibGV0IiwiZGVza3RvcCIsIkNsZWFyIiwiRHVyYXRpb24iLCJMaXZlUmVzcG9uc2UiLCJkaXNwbGF5UmVxdWVzdER1cmF0aW9uIiwic2hvd011dGF0ZWRSZXF1ZXN0IiwicmVxdWVzdFNuaXBwZXRzRW5hYmxlZCIsImN1cmxSZXF1ZXN0Iiwibm90RG9jdW1lbnRlZCIsImhlYWRlcnNLZXlzIiwiUmVzcG9uc2VCb2R5IiwicmV0dXJuT2JqZWN0Iiwiam9pbmVkSGVhZGVycyIsImhhc0hlYWRlcnMiLCJDdXJsIiwiT25saW5lVmFsaWRhdG9yQmFkZ2UiLCJ2YWxpZGF0b3JVcmwiLCJnZXREZWZpbml0aW9uVXJsIiwic2FuaXRpemVkVmFsaWRhdG9yVXJsIiwiVmFsaWRhdG9ySW1hZ2UiLCJhbHQiLCJJbWFnZSIsIm9ubG9hZCIsIk9wZXJhdGlvbnMiLCJyZW5kZXJPcGVyYXRpb25UYWciLCJPcGVyYXRpb25Db250YWluZXIiLCJpc0Fic29sdXRlVXJsIiwiYnVpbGRCYXNlVXJsIiwiYWRkUHJvdG9jb2wiLCJzYWZlQnVpbGRVcmwiLCJidWlsZFVybCIsIkRlZXBMaW5rIiwidGFnRXh0ZXJuYWxEb2NzVXJsIiwidGFnRGVzY3JpcHRpb24iLCJ0YWdFeHRlcm5hbERvY3NEZXNjcmlwdGlvbiIsInJhd1RhZ0V4dGVybmFsRG9jc1VybCIsInNob3dUYWciLCJlbmFibGVkIiwidG9nZ2xlU2hvd24iLCJvblRyeW91dENsaWNrIiwib25SZXNldENsaWNrIiwib25DYW5jZWxDbGljayIsIm9uRXhlY3V0ZSIsIm9hczNBY3Rpb25zIiwib3BlcmF0aW9uUHJvcHMiLCJhbGxvd1RyeUl0T3V0IiwidHJ5SXRPdXRFbmFibGVkIiwiZXhlY3V0ZUluUHJvZ3Jlc3MiLCJnZXRMaXN0IiwiUGFyYW1ldGVycyIsIkV4ZWN1dGUiLCJPcGVyYXRpb25FeHQiLCJPcGVyYXRpb25TdW1tYXJ5Iiwib25DaGFuZ2VLZXkiLCJvcGVyYXRpb25TZXJ2ZXJzIiwicGF0aFNlcnZlcnMiLCJnZXRTZWxlY3RlZFNlcnZlciIsInNldFNlbGVjdGVkU2VydmVyIiwic2V0U2VydmVyVmFyaWFibGVWYWx1ZSIsImdldFNlcnZlclZhcmlhYmxlIiwic2VydmVyVmFyaWFibGVWYWx1ZSIsImdldEVmZmVjdGl2ZVNlcnZlclZhbHVlIiwidHJ5SXRPdXRSZXNwb25zZSIsImRpc3BsYXlPcGVyYXRpb25JZCIsInN1cHBvcnRlZFN1Ym1pdE1ldGhvZHMiLCJpc0RlZXBMaW5raW5nRW5hYmxlZCIsImp1bXBUb0tleSIsInJlc29sdmVkU3VidHJlZSIsImdldFJlc29sdmVkU3VidHJlZSIsImRlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlIiwic2VsZWN0RGVmYXVsdFJlcXVlc3RCb2R5VmFsdWUiLCJzZXRSZXF1ZXN0Qm9keVZhbHVlIiwidW5yZXNvbHZlZE9wIiwicmVzb2x2ZWRTdW1tYXJ5IiwiT3BlcmF0aW9uU3VtbWFyeU1ldGhvZCIsIk9wZXJhdGlvblN1bW1hcnlQYXRoIiwiQ29weVRvQ2xpcGJvYXJkQnRuIiwiaGFzU2VjdXJpdHkiLCJzZWN1cml0eUlzT3B0aW9uYWwiLCJhbGxvd0Fub255bW91cyIsInRleHRUb0NvcHkiLCJhcHBsaWNhYmxlRGVmaW5pdGlvbnMiLCJwYXRoUGFydHMiLCJPcGVyYXRpb25FeHRSb3ciLCJ4S2V5IiwieFZhbCIsInhOb3JtYWxpemVkVmFsdWUiLCJjcmVhdGVIdG1sUmVhZHlJZCIsIm9uQ2hhbmdlUHJvZHVjZXNXcmFwcGVyIiwib25SZXNwb25zZUNvbnRlbnRUeXBlQ2hhbmdlIiwiY29udHJvbHNBY2NlcHRIZWFkZXIiLCJzZXRSZXNwb25zZUNvbnRlbnRUeXBlIiwiZGVmYXVsdENvZGUiLCJkZWZhdWx0U3RhdHVzQ29kZSIsIkNvbnRlbnRUeXBlIiwiYWNjZXB0Q29udHJvbGxpbmdSZXNwb25zZSIsImdldEFjY2VwdENvbnRyb2xsaW5nUmVzcG9uc2UiLCJzdWl0YWJsZTJ4eFJlc3BvbnNlIiwiZGVmYXVsdFJlc3BvbnNlIiwic3VpdGFibGVEZWZhdWx0UmVzcG9uc2UiLCJyZWdpb25JZCIsImNvbnRyb2xJZCIsImFyaWFDb250cm9scyIsImFyaWFMYWJlbCIsImNvbnRlbnRUeXBlcyIsImlzRGVmYXVsdCIsIm9uQ29udGVudFR5cGVDaGFuZ2UiLCJhY3RpdmVFeGFtcGxlc0tleSIsImFjdGl2ZUV4YW1wbGVzTWVtYmVyIiwiZ2V0S25vd25TeW50YXhIaWdobGlnaHRlckxhbmd1YWdlIiwiaXNWYWxpZEpzb24iLCJjYW5Kc29uUGFyc2UiLCJfb25Db250ZW50VHlwZUNoYW5nZSIsImdldFRhcmdldEV4YW1wbGVzS2V5IiwiYWN0aXZlQ29udGVudFR5cGUiLCJSZXNwb25zZUV4dGVuc2lvbiIsIk9wZXJhdGlvbkxpbmsiLCJzcGVjUGF0aFdpdGhQb3NzaWJsZVNjaGVtYSIsImFjdGl2ZU1lZGlhVHlwZSIsImV4YW1wbGVzRm9yTWVkaWFUeXBlIiwib2FzM1NjaGVtYUZvckNvbnRlbnRUeXBlIiwibWVkaWFUeXBlRXhhbXBsZSIsInNhbXBsZVNjaGVtYSIsInNob3VsZE92ZXJyaWRlU2NoZW1hRXhhbXBsZSIsInNhbXBsZUdlbkNvbmZpZyIsInRhcmdldEV4YW1wbGVzS2V5IiwiZ2V0TWVkaWFUeXBlRXhhbXBsZSIsInRhcmdldEV4YW1wbGUiLCJvbGRPQVNNZWRpYVR5cGVFeGFtcGxlIiwiZ2V0RXhhbXBsZUNvbXBvbmVudCIsInNhbXBsZVJlc3BvbnNlIiwic2V0QWN0aXZlRXhhbXBsZXNNZW1iZXIiLCJjb250ZXh0TmFtZSIsIm9taXRWYWx1ZSIsInBhcnNlZENvbnRlbnQiLCJ1cGRhdGVQYXJzZWRDb250ZW50IiwicHJldkNvbnRlbnQiLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwicmVhZEFzVGV4dCIsImRvd25sb2FkTmFtZSIsImJvZHlFbCIsImRpc3Bvc2l0aW9uIiwicmVzcG9uc2VGaWxlbmFtZSIsImV4dHJhY3RGaWxlTmFtZUZyb21Db250ZW50RGlzcG9zaXRpb25IZWFkZXIiLCJtc1NhdmVPck9wZW5CbG9iIiwiZm9ybWF0WG1sIiwiY29udHJvbHMiLCJjYWxsYmFja1Zpc2libGUiLCJwYXJhbWV0ZXJzVmlzaWJsZSIsIm9uQ2hhbmdlQ29uc3VtZXNXcmFwcGVyIiwidG9nZ2xlVGFiIiwib25DaGFuZ2VNZWRpYVR5cGUiLCJoYXNVc2VyRWRpdGVkQm9keSIsInNob3VsZFJldGFpblJlcXVlc3RCb2R5VmFsdWUiLCJzZXRSZXF1ZXN0Q29udGVudFR5cGUiLCJpbml0UmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yIiwiUGFyYW1ldGVyUm93IiwiVHJ5SXRPdXRCdXR0b24iLCJDYWxsYmFja3MiLCJncm91cGVkUGFyYW1ldGVyc0FyciIsInJhd1BhcmFtIiwib25DaGFuZ2VDb25zdW1lcyIsInJlcXVlc3RCb2R5RXJyb3JzIiwidXBkYXRlQWN0aXZlRXhhbXBsZXNLZXkiLCJsYXN0VmFsdWUiLCJ1c2FibGVWYWx1ZSIsIm9uQ2hhbmdlSW5jbHVkZUVtcHR5Iiwic2V0UmVxdWVzdEJvZHlJbmNsdXNpb24iLCJQYXJhbWV0ZXJFeHQiLCJQYXJhbWV0ZXJJbmNsdWRlRW1wdHlEZWZhdWx0UHJvcHMiLCJpc0luY2x1ZGVkT3B0aW9ucyIsIlBhcmFtZXRlckluY2x1ZGVFbXB0eSIsInNob3VsZERpc3BhdGNoSW5pdCIsIm9uQ2hlY2tib3hDaGFuZ2UiLCJpc0luY2x1ZGVkIiwic2V0RGVmYXVsdFZhbHVlIiwib25DaGFuZ2VXcmFwcGVyIiwibnVtYmVyVG9TdHJpbmciLCJ2YWx1ZUZvclVwc3RyZWFtIiwiX29uRXhhbXBsZVNlbGVjdCIsImdldFBhcmFtS2V5IiwicGFyYW1XaXRoTWV0YSIsInBhcmFtZXRlck1lZGlhVHlwZSIsImdlbmVyYXRlZFNhbXBsZVZhbHVlIiwiaXNTd2FnZ2VyMiIsInNob3dDb21tb25FeHRlbnNpb25zIiwiUGFyYW1Cb2R5IiwiYm9keVBhcmFtIiwiY29uc3VtZXNWYWx1ZSIsInBhcmFtSXRlbXMiLCJwYXJhbUVudW0iLCJwYXJhbURlZmF1bHRWYWx1ZSIsInBhcmFtRXhhbXBsZSIsIml0ZW1UeXBlIiwiaXNGb3JtRGF0YSIsImlzRm9ybURhdGFTdXBwb3J0ZWQiLCJjb21tb25FeHQiLCJpc0Rpc3BsYXlQYXJhbUVudW0iLCJkZWZhdWx0VG9GaXJzdEV4YW1wbGUiLCJoYW5kbGVWYWxpZGF0ZVBhcmFtZXRlcnMiLCJoYW5kbGVWYWxpZGF0ZVJlcXVlc3RCb2R5IiwibWlzc2luZ0JvZHlWYWx1ZSIsIm1pc3NpbmdSZXF1aXJlZEtleXMiLCJjbGVhclJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvciIsIm9hczNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGUiLCJvYXMzUmVxdWVzdEJvZHlWYWx1ZSIsIm9hczNWYWxpZGF0ZUJlZm9yZUV4ZWN1dGVTdWNjZXNzIiwib2FzM1JlcXVlc3RDb250ZW50VHlwZSIsInNldFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvciIsInZhbGlkYXRlU2hhbGxvd1JlcXVpcmVkIiwibWlzc2luZ0tleSIsImhhbmRsZVZhbGlkYXRpb25SZXN1bHRQYXNzIiwiaGFuZGxlVmFsaWRhdGlvblJlc3VsdEZhaWwiLCJoYW5kbGVWYWxpZGF0aW9uUmVzdWx0IiwiaXNQYXNzIiwicGFyYW1zUmVzdWx0IiwicmVxdWVzdEJvZHlSZXN1bHQiLCJzY2hlbWFFeGFtcGxlIiwiRXJyb3JzIiwiZWRpdG9yQWN0aW9ucyIsImp1bXBUb0xpbmUiLCJhbGxFcnJvcnNUb0Rpc3BsYXkiLCJpc1Zpc2libGUiLCJzb3J0ZWRKU0Vycm9ycyIsInRvZ2dsZVZpc2liaWxpdHkiLCJhbmltYXRlZCIsIlRocm93bkVycm9ySXRlbSIsIlNwZWNFcnJvckl0ZW0iLCJlcnJvckxpbmUiLCJ0b1RpdGxlQ2FzZSIsImxvY2F0aW9uTWVzc2FnZSIsInhjbGFzcyIsIkNvbnRhaW5lciIsImZ1bGxzY3JlZW4iLCJmdWxsIiwiY29udGFpbmVyQ2xhc3MiLCJERVZJQ0VTIiwiaGlkZSIsImtlZXBDb250ZW50cyIsIm1vYmlsZSIsImxhcmdlIiwiY2xhc3Nlc0FyIiwiZGV2aWNlIiwiZGV2aWNlQ2xhc3MiLCJvcHRpb24iLCJOb01hcmdpbiIsInJlbmRlck5vdEFuaW1hdGVkIiwiT3ZlcnZpZXciLCJzZXRUYWdTaG93biIsIl9zZXRUYWdTaG93biIsInNob3dUYWdJZCIsInNob3dPcCIsInRvZ2dsZVNob3ciLCJzaG93T3BJZFByZWZpeCIsInNob3dPcElkIiwiX29uQ2xpY2siLCJJbmZvQmFzZVBhdGgiLCJJbmZvVXJsIiwidGVybXNPZlNlcnZpY2VVcmwiLCJjb250YWN0RGF0YSIsImxpY2Vuc2VEYXRhIiwiVmVyc2lvblN0YW1wIiwiT3BlbkFQSVZlcnNpb24iLCJvYXNWZXJzaW9uIiwiSW5mb0NvbnRhaW5lciIsIkZvb3RlciIsIkZpbHRlckNvbnRhaW5lciIsIm9uRmlsdGVyQ2hhbmdlIiwiaXNMb2FkaW5nIiwiaXNGYWlsZWQiLCJOT09QIiwiaXNFZGl0Qm94IiwidXBkYXRlVmFsdWVzIiwiaXNKc29uIiwiX29uQ2hhbmdlIiwidG9nZ2xlSXNFZGl0Qm94IiwiZGVmYXVsdFByb3AiLCJjdXJsIiwic2hvd1Jlc2V0IiwiVmVyc2lvblByYWdtYUZpbHRlciIsImFsc29TaG93IiwiYnlwYXNzIiwiU3ZnQXNzZXRzIiwieG1sbnNYbGluayIsImRlY29kZUVudGl0eSIsIlVORVNDQVBFX01EX1JFIiwidW5lc2NhcGVNZCIsImlzVmFsaWRFbnRpdHlDb2RlIiwiZnJvbUNvZGVQb2ludCIsInN1cnJvZ2F0ZTEiLCJzdXJyb2dhdGUyIiwiTkFNRURfRU5USVRZX1JFIiwiRElHSVRBTF9FTlRJVFlfVEVTVF9SRSIsInJlcGxhY2VFbnRpdHlQYXR0ZXJuIiwiZGVjb2RlZCIsInJlcGxhY2VFbnRpdGllcyIsIkhUTUxfRVNDQVBFX1RFU1RfUkUiLCJIVE1MX0VTQ0FQRV9SRVBMQUNFX1JFIiwiSFRNTF9SRVBMQUNFTUVOVFMiLCJyZXBsYWNlVW5zYWZlQ2hhciIsImVzY2FwZUh0bWwiLCJuZXh0VG9rZW4iLCJ0aWdodCIsImJsb2NrcXVvdGVfb3BlbiIsImJsb2NrcXVvdGVfY2xvc2UiLCJnZXRCcmVhayIsImZlbmNlIiwiZmVuY2VzIiwiZmVuY2VOYW1lIiwibGFuZ0NsYXNzIiwibGFuZ1ByZWZpeCIsInBhcmFtcyIsImZlbmNlX2N1c3RvbSIsImhlYWRpbmdfb3BlbiIsImhMZXZlbCIsImhlYWRpbmdfY2xvc2UiLCJ4aHRtbE91dCIsImJ1bGxldF9saXN0X29wZW4iLCJidWxsZXRfbGlzdF9jbG9zZSIsImxpc3RfaXRlbV9vcGVuIiwibGlzdF9pdGVtX2Nsb3NlIiwib3JkZXJlZF9saXN0X29wZW4iLCJvcmRlcmVkX2xpc3RfY2xvc2UiLCJwYXJhZ3JhcGhfb3BlbiIsInBhcmFncmFwaF9jbG9zZSIsImFkZEJyZWFrIiwibGlua19vcGVuIiwibGlua1RhcmdldCIsImxpbmtfY2xvc2UiLCJpbWFnZSIsInRhYmxlX29wZW4iLCJ0YWJsZV9jbG9zZSIsInRoZWFkX29wZW4iLCJ0aGVhZF9jbG9zZSIsInRib2R5X29wZW4iLCJ0Ym9keV9jbG9zZSIsInRyX29wZW4iLCJ0cl9jbG9zZSIsInRoX29wZW4iLCJhbGlnbiIsInRoX2Nsb3NlIiwidGRfb3BlbiIsInRkX2Nsb3NlIiwic3Ryb25nX29wZW4iLCJzdHJvbmdfY2xvc2UiLCJlbV9vcGVuIiwiZW1fY2xvc2UiLCJkZWxfb3BlbiIsImRlbF9jbG9zZSIsImluc19vcGVuIiwiaW5zX2Nsb3NlIiwibWFya19vcGVuIiwibWFya19jbG9zZSIsInN1cCIsImhhcmRicmVhayIsInNvZnRicmVhayIsImJyZWFrcyIsImh0bWxibG9jayIsImh0bWx0YWciLCJhYmJyX29wZW4iLCJhYmJyX2Nsb3NlIiwiZm9vdG5vdGVfcmVmIiwic3ViSWQiLCJmb290bm90ZV9ibG9ja19vcGVuIiwiZm9vdG5vdGVfYmxvY2tfY2xvc2UiLCJmb290bm90ZV9vcGVuIiwiZm9vdG5vdGVfY2xvc2UiLCJmb290bm90ZV9hbmNob3IiLCJkbF9vcGVuIiwiZHRfb3BlbiIsImRkX29wZW4iLCJkbF9jbG9zZSIsImR0X2Nsb3NlIiwiZGRfY2xvc2UiLCJSZW5kZXJlciIsIlJ1bGVyIiwiX19ydWxlc19fIiwiX19jYWNoZV9fIiwiU3RhdGVJbmxpbmUiLCJwYXJzZXJJbmxpbmUiLCJvdXRUb2tlbnMiLCJwb3NNYXgiLCJwZW5kaW5nTGV2ZWwiLCJpc0luTGFiZWwiLCJsaW5rTGV2ZWwiLCJsaW5rQ29udGVudCIsImxhYmVsVW5tYXRjaGVkU2NvcGVzIiwicGFyc2VMaW5rTGFiZWwiLCJsYWJlbEVuZCIsIm9sZFBvcyIsIm9sZEZsYWciLCJza2lwVG9rZW4iLCJwYXJzZUFiYnIiLCJhYmJyZXZpYXRpb25zIiwibm9ybWFsaXplTGluayIsInBhcnNlTGlua0Rlc3RpbmF0aW9uIiwidmFsaWRhdGVMaW5rIiwicGFyc2VMaW5rVGl0bGUiLCJub3JtYWxpemVSZWZlcmVuY2UiLCJwYXJzZVJlZmVyZW5jZSIsInJlbmRlcklubGluZSIsIl9ydWxlcyIsIl9fZmluZF9fIiwiX19jb21waWxlX18iLCJjaGFpbnMiLCJhbHROYW1lIiwiYXQiLCJiZWZvcmVOYW1lIiwicnVsZU5hbWUiLCJhZnRlck5hbWUiLCJlbmFibGUiLCJzdHJpY3QiLCJkaXNhYmxlIiwiZ2V0UnVsZXMiLCJjaGFpbk5hbWUiLCJwdXNoUGVuZGluZyIsImNhY2hlU2V0IiwiY2FjaGVHZXQiLCJQVU5DVF9DSEFSUyIsInJlZ0VzY2FwZSIsIlJBUkVfUkUiLCJTQ09QRURfQUJCUl9SRSIsIlNDT1BFRF9BQkJSIiwicmVwbGFjZVNjb3BlZEFiYnIiLCJRVU9URV9URVNUX1JFIiwiUVVPVEVfUkUiLCJQVU5DVF9SRSIsImlzTGV0dGVyIiwicmVwbGFjZUF0IiwiaW5saW5lTW9kZSIsImFiYnIiLCJpbmxpbmUiLCJ0b2siLCJmb290bm90ZV9ibG9jayIsImxhc3RQYXJhZ3JhcGgiLCJjdXJyZW50TGFiZWwiLCJpbnNpZGVSZWYiLCJyZWZUb2tlbnMiLCJmb290bm90ZXMiLCJhYmJyMiIsInJlZyIsInJlZ1RleHQiLCJibG9ja1Rva2VucyIsImFiYnJSZWdFeHAiLCJpbmxpbmVUb2tlbnMiLCJibGtJZHgiLCJ0eXBvZ3JhcGhlciIsInNtYXJ0cXVvdGVzIiwidGhpc0xldmVsIiwibGFzdFNwYWNlIiwibmV4dFNwYWNlIiwiY2FuT3BlbiIsImNhbkNsb3NlIiwiaXNTaW5nbGUiLCJPVVRFUiIsInNpbmdsZSIsInF1b3RlcyIsIkNvcmUiLCJydWxlciIsIlN0YXRlQmxvY2siLCJpbmRlbnRfZm91bmQiLCJiTWFya3MiLCJlTWFya3MiLCJ0U2hpZnQiLCJibGtJbmRlbnQiLCJsaW5lTWF4IiwicGFyZW50VHlwZSIsImRkSW5kZW50Iiwic2tpcEJ1bGxldExpc3RNYXJrZXIiLCJza2lwT3JkZXJlZExpc3RNYXJrZXIiLCJza2lwRW1wdHlMaW5lcyIsInNraXBTcGFjZXMiLCJza2lwQ2hhcnMiLCJza2lwQ2hhcnNCYWNrIiwiZ2V0TGluZXMiLCJrZWVwTGFzdExGIiwiaHRtbF9ibG9ja3MiLCJIVE1MX1RBR19PUEVOX1JFIiwiSFRNTF9UQUdfQ0xPU0VfUkUiLCJza2lwTWFya2VyIiwiX3J1bGVzJDEiLCJlbmRMaW5lIiwibmV4dExpbmUiLCJzaWxlbnQiLCJtZW0iLCJoYXZlRW5kTWFya2VyIiwiYmxvY2txdW90ZSIsImxhc3RMaW5lRW1wdHkiLCJvbGRUU2hpZnQiLCJvbGRCTWFya3MiLCJvbGRJbmRlbnQiLCJvbGRQYXJlbnRUeXBlIiwidGVybWluYXRvclJ1bGVzIiwidGVybWluYXRlIiwibWF4TmVzdGluZyIsInRva2VuaXplIiwiY250Iiwib2xkVGlnaHQiLCJwb3NBZnRlck1hcmtlciIsImluZGVudEFmdGVyTWFya2VyIiwibWFya2VyVmFsdWUiLCJtYXJrZXJDaGFyQ29kZSIsImNvbnRlbnRTdGFydCIsImxpc3RUb2tJZHgiLCJwcmV2RW1wdHlFbmQiLCJsaXN0TGluZXMiLCJpdGVtTGluZXMiLCJtYXJrVGlnaHRQYXJhZ3JhcGhzIiwiZm9vdG5vdGUiLCJvbGRCTWFyayIsImhlYWRpbmciLCJsaGVhZGluZyIsImlzTGV0dGVyJDEiLCJsaW5lVGV4dCIsImNlbGwiLCJhbGlnbnMiLCJ0YWJsZUxpbmVzIiwidGJvZHlMaW5lcyIsImRlZmxpc3QiLCJkZExpbmUiLCJkdExpbmUiLCJvbGREREluZGVudCIsIm1hcmtUaWdodFBhcmFncmFwaHMkMSIsInBhcmFncmFwaCIsIlBhcnNlckJsb2NrIiwiaGFzRW1wdHlMaW5lcyIsIlRBQlNfU0NBTl9SRSIsIk5FV0xJTkVTX1JFIiwiU1BBQ0VTX1JFIiwiaXNUZXJtaW5hdG9yQ2hhciIsImxhc3RUYWJQb3MiLCJFU0NBUEVEIiwiaXNBbHBoYU51bSIsInNjYW5EZWxpbXMiLCJjYW5fb3BlbiIsImNhbl9jbG9zZSIsImRlbGltcyIsIlVORVNDQVBFX1JFIiwiVU5FU0NBUEVfUkUkMSIsInVybF9zY2hlbWFzIiwiRU1BSUxfUkUiLCJBVVRPTElOS19SRSIsInJlcGxhY2UkMSIsImF0dHJfdmFsdWUiLCJvcGVuX3RhZyIsIkhUTUxfVEFHX1JFIiwiRElHSVRBTF9SRSIsIk5BTUVEX1JFIiwiX3J1bGVzJDIiLCJuZXdsaW5lIiwicG1heCIsImJhY2t0aWNrcyIsIm1hdGNoU3RhcnQiLCJtYXRjaEVuZCIsImRlbCIsImVtcGhhc2lzIiwic3RhcnRDb3VudCIsIm9sZENvdW50IiwibGFiZWxTdGFydCIsImlzSW1hZ2UiLCJmb290bm90ZV9pbmxpbmUiLCJmb290bm90ZUlkIiwib2xkTGVuZ3RoIiwiZm9vdG5vdGVTdWJJZCIsImF1dG9saW5rIiwibGlua01hdGNoIiwiZW1haWxNYXRjaCIsImZ1bGxVcmwiLCJpc0xldHRlciQyIiwiZW50aXR5IiwiUGFyc2VySW5saW5lIiwiY2FjaGVkX3BvcyIsIlN0YXRlQ29yZSIsIlJlbWFya2FibGUiLCJwcmVzZXQiLCJsaW5raWZ5IiwicHJlc2V0cyIsInBhcnNlSW5saW5lIiwidGhyb3dVbmhhbmRsZWRDYXNlRXJyb3IiLCJ0aGVWYWx1ZSIsIkh0bWxUYWciLCJ3aGl0ZXNwYWNlUmVnZXgiLCJpbm5lckh0bWwiLCJzZXRUYWdOYW1lIiwiZ2V0VGFnTmFtZSIsInNldEF0dHIiLCJnZXRBdHRycyIsImdldEF0dHIiLCJzZXRBdHRycyIsInNldENsYXNzIiwiYWRkQ2xhc3MiLCJjbGFzc0F0dHIiLCJnZXRDbGFzcyIsInJlbW92ZUNsYXNzIiwicmVtb3ZlQ2xhc3NlcyIsInNldElubmVySFRNTCIsInNldElubmVySHRtbCIsImdldElubmVySFRNTCIsImdldElubmVySHRtbCIsInRvQW5jaG9yU3RyaW5nIiwiYXR0cnNTdHIiLCJidWlsZEF0dHJzU3RyIiwiYXR0cnNBcnIiLCJBbmNob3JUYWdCdWlsZGVyIiwibmV3V2luZG93IiwidHJ1bmNhdGUiLCJidWlsZCIsImNyZWF0ZUF0dHJzIiwicHJvY2Vzc0FuY2hvclRleHQiLCJnZXRBbmNob3JUZXh0IiwiZ2V0QW5jaG9ySHJlZiIsImNyZWF0ZUNzc0NsYXNzIiwicmV0dXJuQ2xhc3NlcyIsImNzc0NsYXNzU3VmZml4ZXMiLCJnZXRDc3NDbGFzc1N1ZmZpeGVzIiwiYW5jaG9yVGV4dCIsImRvVHJ1bmNhdGUiLCJ0cnVuY2F0ZUxlbmd0aCIsInRydW5jYXRlTG9jYXRpb24iLCJ0cnVuY2F0ZVNtYXJ0IiwidHJ1bmNhdGVMZW4iLCJlbGxpcHNpc0NoYXJzIiwiZWxsaXBzaXNMZW5ndGhCZWZvcmVQYXJzaW5nIiwiZWxsaXBzaXNMZW5ndGgiLCJ1cmxPYmoiLCJidWlsZFNlZ21lbnQiLCJyZW1haW5pbmdBdmFpbGFibGVMZW5ndGgiLCJyZW1haW5pbmdBdmFpbGFibGVMZW5ndGhIYWxmIiwic3RhcnRPZmZzZXQiLCJlbmRPZmZzZXQiLCJhdmFpbGFibGVMZW5ndGgiLCJ1cmxTdWIiLCJwYXJzZV91cmwiLCJtYXRjaFF1ZXJ5IiwicGF0aEFuZFF1ZXJ5IiwidHJ1bmNhdGVNaWRkbGUiLCJ0cnVuY2F0ZUVuZCIsImVsbGlwc2lzIiwiTWF0Y2giLCJfX2pzZHVja0R1bW15RG9jUHJvcCIsIm1hdGNoZWRUZXh0IiwidGFnQnVpbGRlciIsImdldE1hdGNoZWRUZXh0Iiwic2V0T2Zmc2V0IiwiZ2V0T2Zmc2V0IiwiYnVpbGRUYWciLCJfX2Fzc2lnbiIsIlN1cHByZXNzZWRFcnJvciIsInVybFN1ZmZpeFJlZ2V4IiwiRW1haWxNYXRjaCIsImdldEVtYWlsIiwiSGFzaHRhZ01hdGNoIiwic2VydmljZU5hbWUiLCJoYXNodGFnIiwiZ2V0U2VydmljZU5hbWUiLCJnZXRIYXNodGFnIiwiTWVudGlvbk1hdGNoIiwibWVudGlvbiIsImdldE1lbnRpb24iLCJQaG9uZU1hdGNoIiwicGx1c1NpZ24iLCJnZXRQaG9uZU51bWJlciIsImdldE51bWJlciIsIlVybE1hdGNoIiwidXJsTWF0Y2hUeXBlIiwicHJvdG9jb2xVcmxNYXRjaCIsInByb3RvY29sUmVsYXRpdmVNYXRjaCIsInN0cmlwUHJlZml4Iiwid3d3Iiwic3RyaXBUcmFpbGluZ1NsYXNoIiwiZGVjb2RlUGVyY2VudEVuY29kaW5nIiwic2NoZW1lUHJlZml4UmVnZXgiLCJ3d3dQcmVmaXhSZWdleCIsInByb3RvY29sUmVsYXRpdmVSZWdleCIsInByb3RvY29sUHJlcGVuZGVkIiwiZ2V0VXJsTWF0Y2hUeXBlIiwiZ2V0VXJsIiwic3RyaXBQcm90b2NvbFJlbGF0aXZlUHJlZml4Iiwic3RyaXBTY2hlbWVQcmVmaXgiLCJzdHJpcFd3d1ByZWZpeCIsInJlbW92ZVRyYWlsaW5nU2xhc2giLCJyZW1vdmVQZXJjZW50RW5jb2RpbmciLCJwcmVQcm9jZXNzZWRFbnRpdHlBbmNob3JUZXh0IiwiTWF0Y2hlciIsImxldHRlclJlIiwiZGlnaXRSZSIsIm5vbkRpZ2l0UmUiLCJ3aGl0ZXNwYWNlUmUiLCJxdW90ZVJlIiwiY29udHJvbENoYXJzUmUiLCJhbHBoYUNoYXJzU3RyIiwiYWxwaGFDaGFyc0FuZE1hcmtzU3RyIiwiZGVjaW1hbE51bWJlcnNTdHIiLCJhbHBoYU51bWVyaWNDaGFyc1N0ciIsImFscGhhTnVtZXJpY0FuZE1hcmtzQ2hhcnNTdHIiLCJhbHBoYU51bWVyaWNBbmRNYXJrc0NoYXJSZSIsImlwU3RyIiwiZG9tYWluTGFiZWxTdHIiLCJnZXREb21haW5MYWJlbFN0ciIsImdldERvbWFpbk5hbWVTdHIiLCJkb21haW5OYW1lQ2hhclJlZ2V4IiwidGxkUmVnZXgiLCJsb2NhbFBhcnRDaGFyUmVnZXgiLCJzdHJpY3RUbGRSZWdleCIsIkVtYWlsTWF0Y2hlciIsInBhcnNlTWF0Y2hlcyIsIm5vQ3VycmVudEVtYWlsTWF0Y2giLCJDdXJyZW50RW1haWxNYXRjaCIsIm1haWx0b1RyYW5zaXRpb25zIiwiY2hhcklkeCIsImN1cnJlbnRFbWFpbE1hdGNoIiwic3RhdGVOb25FbWFpbEFkZHJlc3MiLCJzdGF0ZU1haWxUbyIsInN0YXRlTG9jYWxQYXJ0Iiwic3RhdGVMb2NhbFBhcnREb3QiLCJzdGF0ZUF0U2lnbiIsInN0YXRlRG9tYWluQ2hhciIsInN0YXRlRG9tYWluSHlwaGVuIiwic3RhdGVEb21haW5Eb3QiLCJjYXB0dXJlTWF0Y2hJZlZhbGlkQW5kUmVzZXQiLCJiZWdpbkVtYWlsTWF0Y2giLCJoYXNNYWlsdG9QcmVmaXgiLCJyZXNldFRvTm9uRW1haWxNYXRjaFN0YXRlIiwiaGFzRG9tYWluRG90IiwiZW1haWxBZGRyZXNzIiwiZG9lc0VtYWlsSGF2ZVZhbGlkVGxkIiwiZW1haWxBZGRyZXNzVGxkIiwiZW1haWxBZGRyZXNzTm9ybWFsaXplZCIsIlVybE1hdGNoVmFsaWRhdG9yIiwidXJsTWF0Y2giLCJpc1ZhbGlkVXJpU2NoZW1lIiwidXJsTWF0Y2hEb2VzTm90SGF2ZVByb3RvY29sT3JEb3QiLCJ1cmxNYXRjaERvZXNOb3RIYXZlQXRMZWFzdE9uZVdvcmRDaGFyIiwiaXNWYWxpZElwQWRkcmVzcyIsImNvbnRhaW5zTXVsdGlwbGVEb3RzIiwidXJpU2NoZW1lTWF0Y2giLCJuZXdSZWdleCIsImhhc0Z1bGxQcm90b2NvbFJlZ2V4IiwiaXBSZWdleCIsInN0cmluZ0JlZm9yZVNsYXNoIiwidXJpU2NoZW1lTWF0Y2hBcnIiLCJ1cmlTY2hlbWVSZWdleCIsInVyaVNjaGVtZSIsImhhc1dvcmRDaGFyQWZ0ZXJQcm90b2NvbFJlZ2V4IiwibWF0Y2hlclJlZ2V4Iiwid29yZENoYXJSZWdFeHAiLCJVcmxNYXRjaGVyIiwiX2xvb3BfMSIsIm1hdGNoU3RyIiwic2NoZW1lVXJsTWF0Y2giLCJ3d3dVcmxNYXRjaCIsInd3d1Byb3RvY29sUmVsYXRpdmVNYXRjaCIsInRsZFByb3RvY29sUmVsYXRpdmVNYXRjaCIsInRoaXNfMSIsIm1hdGNoSGFzVW5iYWxhbmNlZENsb3NpbmdQYXJlbiIsIm1hdGNoSGFzSW52YWxpZENoYXJBZnRlclRsZCIsImZvdW5kQ29tbW9uU2NoZW1lIiwiY29tbW9uU2NoZW1lIiwiaW5kZXhPZlNjaGVtZVN0YXJ0Iiwic3RhcnRDaGFyIiwiZW5kQ2hhciIsIm51bU9wZW5CcmFjZXMiLCJoYXNodGFnVGV4dENoYXJSZSIsIkhhc2h0YWdNYXRjaGVyIiwiaGFzaENoYXJJZHgiLCJzdGF0ZU5vbmUiLCJzdGF0ZU5vbkhhc2h0YWdXb3JkQ2hhciIsInN0YXRlSGFzaHRhZ0hhc2hDaGFyIiwic3RhdGVIYXNodGFnVGV4dENoYXIiLCJjYXB0dXJlTWF0Y2hJZlZhbGlkIiwiaGFzaHRhZ1NlcnZpY2VzIiwicGhvbmVNYXRjaGVyUmVnZXgiLCJQaG9uZU1hdGNoZXIiLCJjbGVhbk51bWJlciIsImNvbnRleHRDbGVhciIsInRlc3RNYXRjaCIsInR3aXR0ZXJSZWdleCIsImluc3RhZ3JhbVJlZ2V4Iiwic291bmRjbG91ZFJlZ2V4IiwidGlrdG9rUmVnZXgiLCJub25Xb3JkQ2hhclJlZ2V4IiwiTWVudGlvbk1hdGNoZXIiLCJtYXRjaGVyUmVnZXhlcyIsInR3aXR0ZXIiLCJpbnN0YWdyYW0iLCJzb3VuZGNsb3VkIiwidGlrdG9rIiwicGFyc2VIdG1sIiwib25PcGVuVGFnIiwib25DbG9zZVRhZyIsIm9uVGV4dCIsIm9uQ29tbWVudCIsIm9uRG9jdHlwZSIsIm5vQ3VycmVudFRhZyIsIkN1cnJlbnRUYWciLCJjdXJyZW50RGF0YUlkeCIsImN1cnJlbnRUYWciLCJzdGF0ZURhdGEiLCJzdGF0ZVRhZ09wZW4iLCJzdGF0ZUVuZFRhZ09wZW4iLCJzdGF0ZVRhZ05hbWUiLCJzdGF0ZUJlZm9yZUF0dHJpYnV0ZU5hbWUiLCJzdGF0ZUF0dHJpYnV0ZU5hbWUiLCJzdGF0ZUFmdGVyQXR0cmlidXRlTmFtZSIsInN0YXRlQmVmb3JlQXR0cmlidXRlVmFsdWUiLCJzdGF0ZUF0dHJpYnV0ZVZhbHVlRG91YmxlUXVvdGVkIiwic3RhdGVBdHRyaWJ1dGVWYWx1ZVNpbmdsZVF1b3RlZCIsInN0YXRlQXR0cmlidXRlVmFsdWVVbnF1b3RlZCIsInN0YXRlQWZ0ZXJBdHRyaWJ1dGVWYWx1ZVF1b3RlZCIsInN0YXRlU2VsZkNsb3NpbmdTdGFydFRhZyIsInN0YXRlTWFya3VwRGVjbGFyYXRpb25PcGVuIiwic3RhdGVDb21tZW50U3RhcnQiLCJzdGF0ZUNvbW1lbnRTdGFydERhc2giLCJzdGF0ZUNvbW1lbnQiLCJzdGF0ZUNvbW1lbnRFbmREYXNoIiwic3RhdGVDb21tZW50RW5kIiwic3RhdGVDb21tZW50RW5kQmFuZyIsInN0YXRlRG9jdHlwZSIsInN0YXJ0TmV3VGFnIiwiaXNDbG9zaW5nIiwiaXNPcGVuaW5nIiwiY2FwdHVyZVRhZ05hbWUiLCJlbWl0VGFnQW5kUHJldmlvdXNUZXh0Tm9kZSIsInJlc2V0VG9EYXRhU3RhdGUiLCJyZWNvbnN1bWVDdXJyZW50Q2hhcmFjdGVyIiwidGV4dEJlZm9yZVRhZyIsInN0YXJ0SWR4IiwiZW1pdFRleHQiLCJBdXRvbGlua2VyIiwidXJscyIsInBob25lIiwicmVwbGFjZUZuIiwic2FuaXRpemVIdG1sIiwibWF0Y2hlcnMiLCJub3JtYWxpemVVcmxzQ2ZnIiwibm9ybWFsaXplU3RyaXBQcmVmaXhDZmciLCJub3JtYWxpemVUcnVuY2F0ZUNmZyIsInRleHRPckh0bWwiLCJzY2hlbWVNYXRjaGVzIiwid3d3TWF0Y2hlcyIsInRsZE1hdGNoZXMiLCJza2lwVGFnTmFtZXMiLCJza2lwVGFnc1N0YWNrQ291bnQiLCJ0ZXh0U3BsaXQiLCJzcGxpdEFuZENhcHR1cmUiLCJzcGxpdFJlZ2V4IiwibGFzdElkeCIsImN1cnJlbnRPZmZzZXRfMSIsInNwbGl0VGV4dCIsInRleHROb2RlTWF0Y2hlcyIsInBhcnNlVGV4dCIsImNvbXBhY3RNYXRjaGVzIiwicmVtb3ZlVW53YW50ZWRNYXRjaGVzIiwibWF0Y2hlZFRleHRMZW5ndGgiLCJyZW1vdmVJZHgiLCJnZXRNYXRjaGVycyIsIm51bU1hdGNoZXJzIiwidGV4dE1hdGNoZXMiLCJudW1UZXh0TWF0Y2hlcyIsIm5ld0h0bWwiLCJjcmVhdGVNYXRjaFJldHVyblZhbCIsInJlcGxhY2VGblJlc3VsdCIsImdldFRhZ0J1aWxkZXIiLCJFbWFpbCIsIkhhc2h0YWciLCJNZW50aW9uIiwiUGhvbmUiLCJMSU5LX1NDQU5fUkUiLCJpc0xpbmtPcGVuIiwiaXNMaW5rQ2xvc2UiLCJjcmVhdGVMaW5raWZpZXIiLCJhdXRvbGlua2VyIiwicGFyc2VUb2tlbnMiLCJsbiIsImh0bWxMaW5rTGV2ZWwiLCJsaW5raWZpZXIiLCJEb21QdXJpZnkiLCJ1c2VVbnNhZmVNYXJrZG93biIsInNhbml0aXplZCIsInNhbml0aXplciIsImhhc1dhcm5lZEFib3V0RGVwcmVjYXRpb24iLCJCYXNlTGF5b3V0IiwiU2VydmVyc0NvbnRhaW5lciIsImlzT0FTMzEiLCJpc1NwZWNFbXB0eSIsImxvYWRpbmdNZXNzYWdlIiwibGFzdEVyciIsImxhc3RFcnJNc2ciLCJoYXNTZXJ2ZXJzIiwiaGFzU2NoZW1lcyIsImhhc1NlY3VyaXR5RGVmaW5pdGlvbnMiLCJDb3JlQ29tcG9uZW50c1BsdWdpbiIsImF1dGhvcml6YXRpb25Qb3B1cCIsImF1dGhvcml6ZUJ0biIsImF1dGhvcml6ZU9wZXJhdGlvbkJ0biIsImF1dGhFcnJvciIsIm9hdXRoMiIsImFwaUtleUF1dGgiLCJiYXNpY0F1dGgiLCJsaXZlUmVzcG9uc2UiLCJvbmxpbmVWYWxpZGF0b3JCYWRnZSIsInJlc3BvbnNlQm9keSIsInBhcmFtZXRlclJvdyIsIm92ZXJ2aWV3IiwiZm9vdGVyIiwiRm9ybUNvbXBvbmVudHNQbHVnaW4iLCJMYXlvdXRVdGlscyIsIkJhc2VQcmVzZXQiLCJDb25maWdzUGx1Z2luIiwiVXRpbFBsdWdpbiIsIkxvZ3NQbHVnaW4iLCJWaWV3UGx1Z2luIiwiRXJyUGx1Z2luIiwiTGF5b3V0UGx1Z2luIiwiU3dhZ2dlckNsaWVudFBsdWdpbiIsIkF1dGhQbHVnaW4iLCJEb3dubG9hZFVybFBsdWdpbiIsIkRlZXBMaW5raW5nUGx1Z2luIiwiRmlsdGVyUGx1Z2luIiwiT25Db21wbGV0ZVBsdWdpbiIsIlJlcXVlc3RTbmlwcGV0c1BsdWdpbiIsIlNhZmVSZW5kZXJQbHVnaW4iLCJvbmx5T0FTMyIsIk9BUzNOdWxsU2VsZWN0b3IiLCJzY2hlbWFOYW1lIiwiZmluZFNjaGVtYSIsInJlc29sdmVkU2NoZW1lcyIsImRlZk5hbWUiLCJmbG93S2V5IiwiZmxvd1ZhbCIsInRyYW5zbGF0ZWREZWYiLCJvaWRjRGF0YSIsImdyYW50IiwidHJhbnNsYXRlZFNjb3BlcyIsImN1ciIsIk9BUzNDb21wb25lbnRXcmFwRmFjdG9yeSIsInN3YWdnZXJWZXJzaW9uIiwiaXNTd2FnZ2VyMkhlbHBlciIsImlzT0FTMzAiLCJpc09BUzMwSGVscGVyIiwic2VsZWN0ZWRWYWx1ZSIsInJlc29sdmVkU2NoZW1hIiwidW5yZXNvbHZlZFNjaGVtYSIsImNhbGxiYWNrc09wZXJhdGlvbnMiLCJhbGxPcGVyYXRpb25zIiwiY2FsbGJhY2tOYW1lIiwiY2FsbGJhY2tPcGVyYXRpb25zIiwiY2FsbGJhY2tPcHMiLCJwYXRoSXRlbSIsImV4cHJlc3Npb24iLCJwYXRoSXRlbU9wZXJhdGlvbnMiLCJvcGVyYXRpb25EVE8iLCJvcGVyYXRpb25EVE9zIiwiY2FsbGJhY2tOYW1lcyIsImdldERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlIiwibWVkaWFUeXBlVmFsdWUiLCJoYXNFeGFtcGxlc0tleSIsImV4YW1wbGVTY2hlbWEiLCJoYW5kbGVGaWxlIiwic2V0SXNJbmNsdWRlZE9wdGlvbnMiLCJSZXF1ZXN0Qm9keUVkaXRvciIsInJlcXVlc3RCb2R5RGVzY3JpcHRpb24iLCJzY2hlbWFGb3JNZWRpYVR5cGUiLCJyYXdFeGFtcGxlc09mTWVkaWFUeXBlIiwic2FtcGxlRm9yTWVkaWFUeXBlIiwiaXNPYmplY3RDb250ZW50IiwiaXNCaW5hcnlGb3JtYXQiLCJpc0Jhc2U2NEZvcm1hdCIsImJvZHlQcm9wZXJ0aWVzIiwiY3VycmVudEVycm9ycyIsImluY2x1ZGVkIiwic2FtcGxlUmVxdWVzdEJvZHkiLCJ0YXJnZXRPcCIsInBhZFN0cmluZyIsImN1cnJlbnRTZXJ2ZXJWYXJpYWJsZURlZnMiLCJzaG91bGRTaG93VmFyaWFibGVVSSIsImN1cnJlbnRTZXJ2ZXJEZWZpbml0aW9uIiwiaGFuZGxlU2VydmVyQ2hhbmdlIiwiaGFuZGxlU2VydmVyVmFyaWFibGVDaGFuZ2UiLCJ2YXJpYWJsZU5hbWUiLCJuZXdWYXJpYWJsZVZhbHVlIiwiYXBwbHlEZWZhdWx0VmFsdWUiLCJvbkRvbUNoYW5nZSIsIkh0dHBBdXRoIiwic2VydmVyc1RvRGlzcGxheSIsImRpc3BsYXlpbmciLCJvcGVyYXRpb25MaW5rIiwidHJpbW1lZCIsIk1vZGVsQ29tcG9uZW50IiwiT0FTMzBDb21wb25lbnRXcmFwRmFjdG9yeSIsIlVQREFURV9TRUxFQ1RFRF9TRVJWRVIiLCJVUERBVEVfUkVRVUVTVF9CT0RZX1ZBTFVFIiwiVVBEQVRFX1JFUVVFU1RfQk9EWV9WQUxVRV9SRVRBSU5fRkxBRyIsIlVQREFURV9SRVFVRVNUX0JPRFlfSU5DTFVTSU9OIiwiVVBEQVRFX0FDVElWRV9FWEFNUExFU19NRU1CRVIiLCJVUERBVEVfUkVRVUVTVF9DT05URU5UX1RZUEUiLCJVUERBVEVfUkVTUE9OU0VfQ09OVEVOVF9UWVBFIiwiVVBEQVRFX1NFUlZFUl9WQVJJQUJMRV9WQUxVRSIsIlNFVF9SRVFVRVNUX0JPRFlfVkFMSURBVEVfRVJST1IiLCJDTEVBUl9SRVFVRVNUX0JPRFlfVkFMSURBVEVfRVJST1IiLCJDTEVBUl9SRVFVRVNUX0JPRFlfVkFMVUUiLCJjbGVhclJlcXVlc3RCb2R5VmFsdWUiLCJ1c2VyRWRpdGVkUmVxdWVzdEJvZHkiLCJrdiIsImN1cnJlbnRNZWRpYVR5cGVEZWZhdWx0Qm9keVZhbHVlIiwibG9jYXRpb25EYXRhIiwidmFyVmFsdWVzIiwic2VydmVyVmFsdWUiLCJ2YWxpZGF0ZVJlcXVlc3RCb2R5SXNSZXF1aXJlZCIsInZhbGlkYXRlUmVxdWVzdEJvZHlWYWx1ZUV4aXN0cyIsInJlcXVpcmVkS2V5cyIsInJlcXVpcmVkS2V5IiwiY3VycmVudFZhbCIsInZhbHVlS2V5VmFsIiwibWlzc2luZ0tleVZhbHVlcyIsImJvZHlWYWx1ZSIsImN1cnJlbnRNaXNzaW5nS2V5IiwiYm9keVZhbHVlcyIsInNwZWNXcmFwU2VsZWN0b3JzIiwiYXV0aFdyYXBTZWxlY3RvcnMiLCJvYXMzIiwic2VsZWN0V2ViaG9va3NPcGVyYXRpb25zIiwicGF0aEl0ZW1OYW1lcyIsInBhdGhJdGVtTmFtZSIsInNlbGVjdExpY2Vuc2VOYW1lRmllbGQiLCJzZWxlY3RMaWNlbnNlVXJsIiwic2VsZWN0Q29udGFjdE5hbWVGaWVsZCIsInNlbGVjdENvbnRhY3RVcmwiLCJzZWxlY3RDb250YWN0RW1haWxGaWVsZCIsInNlbGVjdEluZm9TdW1tYXJ5RmllbGQiLCJzZWxlY3RJbmZvRGVzY3JpcHRpb25GaWVsZCIsInNlbGVjdEluZm9UaXRsZUZpZWxkIiwic2VsZWN0SW5mb1Rlcm1zT2ZTZXJ2aWNlVXJsIiwic2VsZWN0RXh0ZXJuYWxEb2NzVXJsIiwiZXh0ZXJuYWxEb2NzRGVzYyIsInNlbGVjdEV4dGVybmFsRG9jc0Rlc2NyaXB0aW9uRmllbGQiLCJzZWxlY3RKc29uU2NoZW1hRGlhbGVjdEZpZWxkIiwianNvblNjaGVtYURpYWxlY3REZWZhdWx0Iiwic2VsZWN0SnNvblNjaGVtYURpYWxlY3REZWZhdWx0IiwiSlNPTlNjaGVtYTIwMjAxMiIsImhhbmRsZUV4cGFuZCIsIm9uRXhwYW5kIiwic2VsZWN0U2NoZW1hcyIsImhhc1NjaGVtYXMiLCJzY2hlbWFzUGF0aCIsImlzT3BlbkRlZmF1bHQiLCJpc09wZW4iLCJnZXRUaXRsZSIsImpzb25TY2hlbWEyMDIwMTIiLCJ1c2VGbiIsImlzT3BlbkFuZEV4cGFuZGVkIiwiaXNSZXNvbHZlZCIsImhhbmRsZU1vZGVsc0V4cGFuZCIsImhhbmRsZU1vZGVsc1JlZiIsImhhbmRsZUpTT05TY2hlbWEyMDIwMTJSZWYiLCJoYW5kbGVKU09OU2NoZW1hMjAyMDEyRXhwYW5kIiwic2NoZW1hUGF0aCIsIk11dHVhbFRMU0F1dGgiLCJtdXR1YWxUTFNEZWZpbml0aW9ucyIsImNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yIiwiY3JlYXRlT25seU9BUzMxU2VsZWN0b3JXcmFwcGVyIiwiY3JlYXRlU3lzdGVtU2VsZWN0b3IiLCJjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyIiwib3JpZ2luYWxDb21wb25lbnQiLCJPQVMzMUxpY2Vuc2UiLCJPQVMzMUNvbnRhY3QiLCJPQVMzMUluZm8iLCJLZXl3b3JkJHNjaGVtYSIsIktleXdvcmQkdm9jYWJ1bGFyeSIsIktleXdvcmQkaWQiLCJLZXl3b3JkJGFuY2hvciIsIktleXdvcmQkZHluYW1pY0FuY2hvciIsIktleXdvcmQkcmVmIiwiS2V5d29yZCRkeW5hbWljUmVmIiwiS2V5d29yZCRkZWZzIiwiS2V5d29yZCRjb21tZW50IiwiS2V5d29yZEFsbE9mIiwiS2V5d29yZEFueU9mIiwiS2V5d29yZE9uZU9mIiwiS2V5d29yZE5vdCIsIktleXdvcmRJZiIsIktleXdvcmRUaGVuIiwiS2V5d29yZEVsc2UiLCJLZXl3b3JkRGVwZW5kZW50U2NoZW1hcyIsIktleXdvcmRQcmVmaXhJdGVtcyIsIktleXdvcmRJdGVtcyIsIktleXdvcmRDb250YWlucyIsIktleXdvcmRQcm9wZXJ0aWVzIiwiS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzIiwiS2V5d29yZEFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiS2V5d29yZFByb3BlcnR5TmFtZXMiLCJLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtcyIsIktleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXMiLCJLZXl3b3JkVHlwZSIsIktleXdvcmRFbnVtIiwiS2V5d29yZENvbnN0IiwiS2V5d29yZENvbnN0cmFpbnQiLCJLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQiLCJLZXl3b3JkQ29udGVudFNjaGVtYSIsIktleXdvcmRUaXRsZSIsIktleXdvcmREZXNjcmlwdGlvbiIsIktleXdvcmREZWZhdWx0IiwiS2V5d29yZERlcHJlY2F0ZWQiLCJLZXl3b3JkUmVhZE9ubHkiLCJLZXl3b3JkV3JpdGVPbmx5IiwiQWNjb3JkaW9uIiwiRXhwYW5kRGVlcEJ1dHRvbiIsIkNoZXZyb25SaWdodEljb24iLCJNb2RlbFdpdGhKU09OU2NoZW1hQ29udGV4dCIsIndpdGhTY2hlbWFDb250ZXh0IiwiZGVmYXVsdCRzY2hlbWEiLCJkZWZhdWx0RXhwYW5kZWRMZXZlbHMiLCJpc0V4cGFuZGFibGUiLCJnZXRQcm9wZXJ0aWVzIiwiTW9kZWxzV3JhcHBlciIsIk1vZGVsc1dpdGhKU09OU2NoZW1hQ29udGV4dCIsIlZlcnNpb25QcmFnbWFGaWx0ZXJXcmFwcGVyIiwiT0FTMzFWZXJzaW9uUHJhZ21hRmlsdGVyIiwiT0FTMzFBdXRocyIsImlzT0FTMzFGbiIsInNlbGVjdExpY2Vuc2VVcmxGaWVsZCIsInNlbGVjdExpY2Vuc2VJZGVudGlmaWVyRmllbGQiLCJzZWxlY3RDb250YWN0VXJsRmllbGQiLCJzZWxlY3RJbmZvVGVybXNPZlNlcnZpY2VGaWVsZCIsInNlbGVjdEV4dGVybmFsRG9jc1VybEZpZWxkIiwicmF3U2NoZW1hcyIsInJlc29sdmVkU2NoZW1hcyIsIm9hczMxU2VsZWN0b3JzIiwiaGFzS2V5d29yZCIsInVzZUlzRXhwYW5kZWREZWVwbHkiLCJ1c2VDb21wb25lbnQiLCJpc0V4cGFuZGVkRGVlcGx5Iiwic2V0RXhwYW5kZWQiLCJleHBhbmRlZERlZXBseSIsInNldEV4cGFuZGVkRGVlcGx5IiwiSlNPTlNjaGVtYURlZXBFeHBhbnNpb25Db250ZXh0IiwiaGFuZGxlRXhwYW5zaW9uIiwiaGFuZGxlRXhwYW5zaW9uRGVlcCIsImV4cGFuZGVkRGVlcE5ldyIsIkV4dGVybmFsRG9jcyIsIkRlc2NyaXB0aW9uIiwiTWFya0Rvd24iLCJEZXNjcmlwdGlvbktleXdvcmQiLCJEZWZhdWx0V3JhcHBlciIsIktleXdvcmREaXNjcmltaW5hdG9yIiwiS2V5d29yZFhtbCIsIktleXdvcmRFeGFtcGxlIiwiS2V5d29yZEV4dGVybmFsRG9jcyIsImdldERlcGVuZGVudFJlcXVpcmVkIiwidXNlQ29uZmlnIiwicHJvcGVydHlTY2hlbWEiLCJQcm9wZXJ0aWVzS2V5d29yZCIsImZpbHRlcmVkUHJvcGVydGllcyIsIm1ha2VJc0V4cGFuZGFibGUiLCJ3cmFwcGVkRm5zIiwid3JhcE9BUzMxRm4iLCJzeXN0ZW1GbiIsIm5ld0ltcGwiLCJvcmlJbXBsIiwiaW1wbCIsIk9BUzMxUGx1Z2luIiwiY3JlYXRlU3lzdGVtU2VsZWN0b3JGbiIsImNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yRm4iLCJPQVMzMU1vZGVsIiwiT0FTMzFNb2RlbHMiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4YW1wbGUiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFhtbCIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGlzY3JpbWluYXRvciIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXh0ZXJuYWxEb2NzIiwiSW5mb1dyYXBwZXIiLCJMaWNlbnNlV3JhcHBlciIsIkNvbnRhY3RXcmFwcGVyIiwiQXV0aEl0ZW1XcmFwcGVyIiwiQXV0aHNXcmFwcGVyIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXNjcmlwdGlvbiIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVzY3JpcHRpb25XcmFwcGVyIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZWZhdWx0IiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZWZhdWx0V3JhcHBlciIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUHJvcGVydGllcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUHJvcGVydGllc1dyYXBwZXIiLCJkZWZpbml0aW9uc1RvQXV0aG9yaXplV3JhcHBlciIsInNlbGVjdElzT0FTMzEiLCJzZWxlY3RMaWNlbnNlIiwic2VsZWN0Q29udGFjdCIsInNlbGVjdFdlYmhvb2tzIiwiaXNPQVMzU2VsZWN0b3JXcmFwcGVyIiwic2VsZWN0TGljZW5zZVVybFdyYXBwZXIiLCJvYXMzMSIsInNlbGVjdE9BUzMxTGljZW5zZVVybCIsIm9iamVjdFNjaGVtYSIsImJvb2xlYW5TY2hlbWEiLCJKU09OU2NoZW1hQ29udGV4dCIsIkpTT05TY2hlbWFMZXZlbENvbnRleHQiLCJKU09OU2NoZW1hQ3ljbGVzQ29udGV4dCIsImZuTmFtZSIsInVzZUxldmVsIiwidXNlSXNFeHBhbmRlZCIsInVzZVJlbmRlcmVkU2NoZW1hcyIsInJlbmRlcmVkU2NoZW1hcyIsIm5leHRMZXZlbCIsImlzRW1iZWRkZWQiLCJ1c2VJc0VtYmVkZGVkIiwiaXNDaXJjdWxhciIsInVzZUlzQ2lyY3VsYXIiLCJjb25zdHJhaW50cyIsInN0cmluZ2lmeUNvbnN0cmFpbnRzIiwiZXhwYW5kZWROZXciLCJjb25zdHJhaW50IiwiQWxsT2YiLCJBbnlPZiIsIk9uZU9mIiwiTm90IiwiVGhlbiIsIkVsc2UiLCJEZXBlbmRlbnRTY2hlbWFzIiwiUHJlZml4SXRlbXMiLCJJdGVtcyIsIkNvbnRhaW5zIiwiUGF0dGVyblByb3BlcnRpZXMiLCJBZGRpdGlvbmFsUHJvcGVydGllcyIsIlByb3BlcnR5TmFtZXMiLCJVbmV2YWx1YXRlZEl0ZW1zIiwiVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzIiwiY2lyY3VsYXJTdWZmaXgiLCJFbnVtIiwic3RyaWdpZmllZEVsZW1lbnQiLCJDb25zdCIsIkNvbnN0cmFpbnQiLCJEZXBlbmRlbnRSZXF1aXJlZCIsIkNvbnRlbnRTY2hlbWEiLCJUaXRsZSIsInJlbmRlcmVkVGl0bGUiLCJEZWZhdWx0IiwiRGVwcmVjYXRlZCIsIlJlYWRPbmx5IiwiV3JpdGVPbmx5IiwiQ2hldnJvblJpZ2h0IiwicHJvY2Vzc2VkU2NoZW1hcyIsImlzQm9vbGVhbkpTT05TY2hlbWEiLCJnZXRBcnJheVR5cGUiLCJwcmVmaXhJdGVtc1R5cGVzIiwiaXRlbXNUeXBlIiwiaGFuZGxlQ29tYmluaW5nS2V5d29yZHMiLCJzdWJTY2hlbWEiLCJjb21iaW5lZFN0cmluZ3MiLCJpbmZlclR5cGUiLCJzdHJpbmdpZnlDb25zdHJhaW50UmFuZ2UiLCJoYXNNaW4iLCJoYXNNYXgiLCJzdHJpbmdpZnlDb25zdHJhaW50TXVsdGlwbGVPZiIsImZhY3RvciIsIm51bWJlclJhbmdlIiwic3RyaW5naWZ5Q29uc3RyYWludE51bWJlclJhbmdlIiwiaGFzTWluaW11bSIsImhhc01heGltdW0iLCJoYXNFeGNsdXNpdmVNaW5pbXVtIiwiaGFzRXhjbHVzaXZlTWF4aW11bSIsImlzTWluRXhjbHVzaXZlIiwiaXNNYXhFeGNsdXNpdmUiLCJzdHJpbmdSYW5nZSIsImFycmF5UmFuZ2UiLCJoYXNVbmlxdWVJdGVtcyIsImNvbnRhaW5zUmFuZ2UiLCJvYmplY3RSYW5nZSIsIndpdGhKU09OU2NoZW1hQ29udGV4dCIsIm92ZXJyaWRlcyIsIkhPQyIsImNvbnRleHRzIiwiSlNPTlNjaGVtYTIwMjAxMlBsdWdpbiIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJHNjaGVtYSIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJHZvY2FidWxhcnkiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRpZCIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGFuY2hvciIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGR5bmFtaWNBbmNob3IiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRyZWYiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRkeW5hbWljUmVmIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkZGVmcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGNvbW1lbnQiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEFsbE9mIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBbnlPZiIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkT25lT2YiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZE5vdCIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkSWYiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRoZW4iLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEVsc2UiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlcGVuZGVudFNjaGVtYXMiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByZWZpeEl0ZW1zIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRJdGVtcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29udGFpbnMiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBZGRpdGlvbmFsUHJvcGVydGllcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUHJvcGVydHlOYW1lcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRUeXBlIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFbnVtIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRDb25zdCIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29uc3RyYWludCIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZENvbnRlbnRTY2hlbWEiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRpdGxlIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXByZWNhdGVkIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRSZWFkT25seSIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkV3JpdGVPbmx5IiwiSlNPTlNjaGVtYTIwMjAxMkFjY29yZGlvbiIsIkpTT05TY2hlbWEyMDIwMTJFeHBhbmREZWVwQnV0dG9uIiwiSlNPTlNjaGVtYTIwMjAxMkNoZXZyb25SaWdodEljb24iLCJ3aXRoSlNPTlNjaGVtYTIwMjAxMkNvbnRleHQiLCJKU09OU2NoZW1hMjAyMDEyRGVlcEV4cGFuc2lvbkNvbnRleHQiLCJhcnJheVR5cGUiLCJhcHBseUFycmF5Q29uc3RyYWludHMiLCJjb25zdHJhaW5lZEFycmF5IiwiY29udGFpbnNJdGVtIiwib2JqZWN0VHlwZSIsImlzSlNPTlNjaGVtYU9iamVjdCIsImlzSlNPTlNjaGVtYSIsIlJlZ2lzdHJ5IiwiaW50MzJHZW5lcmF0b3IiLCJpbnQ2NEdlbmVyYXRvciIsImZsb2F0R2VuZXJhdG9yIiwiZG91YmxlR2VuZXJhdG9yIiwiZW1haWxHZW5lcmF0b3IiLCJpZG5FbWFpbEdlbmVyYXRvciIsImhvc3RuYW1lR2VuZXJhdG9yIiwiaWRuSG9zdG5hbWVHZW5lcmF0b3IiLCJpcHY0R2VuZXJhdG9yIiwiaXB2NkdlbmVyYXRvciIsInVyaUdlbmVyYXRvciIsInVyaVJlZmVyZW5jZUdlbmVyYXRvciIsImlyaUdlbmVyYXRvciIsImlyaVJlZmVyZW5jZUdlbmVyYXRvciIsInV1aWRHZW5lcmF0b3IiLCJ1cmlUZW1wbGF0ZUdlbmVyYXRvciIsImpzb25Qb2ludGVyR2VuZXJhdG9yIiwicmVsYXRpdmVKc29uUG9pbnRlckdlbmVyYXRvciIsImRhdGVUaW1lR2VuZXJhdG9yIiwiZGF0ZUdlbmVyYXRvciIsInRpbWVHZW5lcmF0b3IiLCJkdXJhdGlvbkdlbmVyYXRvciIsInBhc3N3b3JkR2VuZXJhdG9yIiwicmVnZXhHZW5lcmF0b3IiLCJyZWdpc3RyeSIsIkZvcm1hdFJlZ2lzdHJ5IiwiaW50MzIiLCJpbnQ2NCIsImRvdWJsZSIsImlwdjQiLCJpcHY2IiwiaXJpIiwiZm9ybWF0QVBJIiwiZ2V0RGVmYXVsdHMiLCJxdW90ZWRQcmludGFibGUiLCJ1dGY4IiwidXRmOFZhbHVlIiwiYmFzZTMyQWxwaGFiZXQiLCJwYWRkaW5nQ291bnQiLCJiYXNlMzJTdHIiLCJidWZmZXJMZW5ndGgiLCJFbmNvZGVyUmVnaXN0cnkiLCJlbmNvZGU3Yml0IiwiZW5jb2RlOGJpdCIsImVuY29kZUJpbmFyeSIsImVuY29kZVF1b3RlZFByaW50YWJsZSIsImJhc2UxNiIsImJhc2UzMiIsImJhc2U2NHVybCIsImVuY29kZXJBUEkiLCJlbmNvZGluZ05hbWUiLCJ0ZXh0L3BsYWluIiwidGV4dC9jc3MiLCJ0ZXh0L2NzdiIsInRleHQvaHRtbCIsInRleHQvY2FsZW5kYXIiLCJ0ZXh0L2phdmFzY3JpcHQiLCJ0ZXh0L3htbCIsInRleHQvKiIsImltYWdlLyoiLCJhdWRpby8qIiwidmlkZW8vKiIsImFwcGxpY2F0aW9uL2pzb24iLCJhcHBsaWNhdGlvbi9sZCtqc29uIiwiYXBwbGljYXRpb24veC1odHRwZC1waHAiLCJhcHBsaWNhdGlvbi9ydGYiLCJyYXciLCJhcHBsaWNhdGlvbi94LXNoIiwiYXBwbGljYXRpb24veGh0bWwreG1sIiwiYXBwbGljYXRpb24vKiIsIk1lZGlhVHlwZVJlZ2lzdHJ5IiwidGV4dE1lZGlhVHlwZXNHZW5lcmF0b3JzIiwiaW1hZ2VNZWRpYVR5cGVzR2VuZXJhdG9ycyIsImF1ZGlvTWVkaWFUeXBlc0dlbmVyYXRvcnMiLCJ2aWRlb01lZGlhVHlwZXNHZW5lcmF0b3JzIiwiYXBwbGljYXRpb25NZWRpYVR5cGVzR2VuZXJhdG9ycyIsIm1lZGlhVHlwZUFQSSIsIm1lZGlhVHlwZU5vUGFyYW1zIiwidG9wTGV2ZWxNZWRpYVR5cGUiLCJhcHBseVN0cmluZ0NvbnN0cmFpbnRzIiwiY29uc3RyYWluZWRTdHJpbmciLCJzdHJpbmdUeXBlIiwiZ2VuZXJhdGVkU3RyaW5nIiwiZ2VuZXJhdGVGb3JtYXQiLCJmb3JtYXRHZW5lcmF0b3IiLCJnZW5lcmF0ZU1lZGlhVHlwZSIsIm1lZGlhVHlwZUdlbmVyYXRvciIsImFwcGx5TnVtYmVyQ29uc3RyYWludHMiLCJlcHNpbG9uIiwiRVBTSUxPTiIsIm1pblZhbHVlIiwibWF4VmFsdWUiLCJjb25zdHJhaW5lZE51bWJlciIsImdlbmVyYXRlZE51bWJlciIsImdlbmVyYXRlZEludGVnZXIiLCJudW1iZXJUeXBlIiwiaW50ZWdlclR5cGUiLCJib29sZWFuIiwiYm9vbGVhblR5cGUiLCJudWxsVHlwZSIsIkFMTF9UWVBFUyIsImhhc0V4YW1wbGUiLCJleHRyYWN0RXhhbXBsZSIsImluZmVycmluZ0tleXdvcmRzIiwiZmFsbGJhY2tUeXBlIiwiaW5mZXJUeXBlRnJvbVZhbHVlIiwiZm9sZFR5cGUiLCJwaWNrZWRUeXBlIiwicmFuZG9tUGljayIsImluZmVycmluZ1R5cGVzIiwiaW5mZXJyaW5nVHlwZSIsImluZmVycmluZ1R5cGVLZXl3b3JkcyIsImluZmVycmluZ0tleXdvcmQiLCJjb25zdFR5cGUiLCJjb21iaW5lVHlwZXMiLCJjb21iaW5lZFR5cGVzIiwiZXhhbXBsZVR5cGUiLCJ0eXBlQ2FzdCIsImZyb21KU09OQm9vbGVhblNjaGVtYSIsIm1lcmdlZFR5cGUiLCJlbnN1cmVBcnJheSIsImFsbFByb3BlcnR5TmFtZXMiLCJwcm9wU2NoZW1hIiwicHJvcFNjaGVtYVR5cGUiLCJjb250YWluc1dpdGhvdXRBbnlPZiIsImFueU9mU2NoZW1hIiwiY29udGFpbnNXaXRob3V0T25lT2YiLCJvbmVPZlNjaGVtYSIsIml0ZW1zV2l0aG91dEFueU9mIiwiaXRlbXNXaXRob3V0T25lT2YiLCJjb250ZW50U2FtcGxlIiwiT3B0aW9uUmVnaXN0cnkiLCJvcHRpb25BUEkiLCJvcHRpb25OYW1lIiwib3B0aW9uVmFsdWUiLCJKU09OU2NoZW1hMjAyMDEyU2FtcGxlc1BsdWdpbiIsInNhbXBsZU9wdGlvbkFQSSIsInNhbXBsZUVuY29kZXJBUEkiLCJzYW1wbGVGb3JtYXRBUEkiLCJzYW1wbGVNZWRpYVR5cGVBUEkiLCJQcmVzZXRBcGlzIiwiT3BlbkFQSTMwUGx1Z2luIiwiT3BlbkFQSTMxUGx1Z2luIiwib3B0aW9uc0Zyb21RdWVyeSIsInVybFNlYXJjaFBhcmFtcyIsInF1ZXJ5Q29uZmlnRW5hYmxlZCIsInBhcnNlU2VhcmNoIiwib3B0aW9uc0Zyb21VUkwiLCJkZWZlcnJlZCIsImxvYWRSZW1vdGVDb25maWciLCJmZXRjaGVkT3B0aW9ucyIsIm9wdGlvbnNGcm9tUnVudGltZSIsImRvbV9pZCIsImNvbmZpZ1VybCIsImN1cmxfYmFzaCIsImN1cmxfcG93ZXJzaGVsbCIsImN1cmxfY21kIiwiZGVmYXVsdEV4cGFuZGVkIiwiQXBpc1ByZXNldCIsImFycmF5VHlwZUNhc3RlciIsImJvb2xlYW5UeXBlQ2FzdGVyIiwibnVtYmVyVHlwZUNhc3RlciIsInBhcnNlZFZhbHVlIiwib2JqZWN0VHlwZUNhc3RlciIsInN5bnRheEhpZ2hsaWdodFR5cGVDYXN0ZXIiLCJ0eXBlQ2FzdGVyIiwibnVsbGFibGVTdHJpbmdUeXBlQ2FzdGVyIiwic3RyaW5nVHlwZUNhc3RlciIsImRvbU5vZGVUeXBlQ2FzdGVyIiwiZmlsdGVyVHlwZUNhc3RlciIsInVuZGVmaW5lZFN0cmluZ1R5cGVDYXN0ZXIiLCJudWxsYWJsZUFycmF5VHlwZUNhc3RlciIsIm1hcHBpbmdzIiwib3B0aW9uUGF0aCIsImNhc3RlZCIsInByaW1hcnlOYW1lIiwic291cmNlc1dpdGhvdXRFeGNlcHRpb25zIiwic291cmNlV2l0aG91dEV4Y2VwdGlvbnMiLCJTd2FnZ2VyVUkiLCJxdWVyeU9wdGlvbnMiLCJydW50aW1lT3B0aW9ucyIsInN0b3JlT3B0aW9ucyIsInN0b3JlT3B0aW9uc0ZhY3Rvcml6YXRpb24iLCJJbmxpbmVQbHVnaW4iLCJpbmxpbmVQbHVnaW5PcHRpb25zRmFjdG9yaXphdGlvbiIsIlN5c3RlbSIsInVybE9wdGlvbnMiLCJ1cmxPcHRpb25zRmFpbGVkVG9GZXRjaCIsInF1ZXJ5U2VsZWN0b3IiLCJtZXJnZU9wdGlvbnMiLCJ0eXBlQ2FzdE9wdGlvbnMiLCJ0eXBlQ2FzdE1hcHBpbmdzIiwiYXBpcyIsIkF1dGgiLCJDb25maWdzIiwiRGVlcExpbmluZyIsIkVyciIsIkZpbHRlciIsIkljb25zIiwiSlNPTlNjaGVtYTUiLCJKU09OU2NoZW1hNVNhbXBsZXMiLCJKU09OU2NoZW1hMjAyMDEyU2FtcGxlcyIsIkxvZ3MiLCJPcGVuQVBJMzAiLCJPcGVuQVBJMzEiLCJPbkNvbXBsZXRlIiwiU3BlYyIsIlN3YWdnZXJDbGllbnQiLCJVdGlsIiwiVmlldyIsIlZpZXdMZWdhY3kiLCJEb3dubG9hZFVybCIsIlN5bnRheEhpZ2hsaWdodGluZyIsIlZlcnNpb25zIiwiU2FmZVJlbmRlciJdLCJzb3VyY2VSb290IjoiIn0=</File>
        <File Location="var/httpd/htdocs/js/thirdparty/swagger/swagger-ui-standalone-preset.js" Permission="660" Encode="Base64">LyohIEZvciBsaWNlbnNlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgc3dhZ2dlci11aS1zdGFuZGFsb25lLXByZXNldC5qcy5MSUNFTlNFLnR4dCAqLwohZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24odCxlKXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPWUoKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbXSxlKToib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHM/ZXhwb3J0cy5Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0PWUoKTp0LlN3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQ9ZSgpfSh0aGlzLCgoKT0+KCgpPT57dmFyIHQ9ezI6KHQsZSxyKT0+e3ZhciBuPXIoMjE5OSksaT1yKDQ2NjQpLG89cig1OTUwKTt0LmV4cG9ydHM9ZnVuY3Rpb24gZ2V0QWxsS2V5cyh0KXtyZXR1cm4gbih0LG8saSl9fSw3OToodCxlLHIpPT57dmFyIG49cigzNzAyKSxpPXIoODApLG89cig0NzM5KSxhPXIoODY1NSkscz1yKDExNzUpO2Z1bmN0aW9uIExpc3RDYWNoZSh0KXt2YXIgZT0tMSxyPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxyOyl7dmFyIG49dFtlXTt0aGlzLnNldChuWzBdLG5bMV0pfX1MaXN0Q2FjaGUucHJvdG90eXBlLmNsZWFyPW4sTGlzdENhY2hlLnByb3RvdHlwZS5kZWxldGU9aSxMaXN0Q2FjaGUucHJvdG90eXBlLmdldD1vLExpc3RDYWNoZS5wcm90b3R5cGUuaGFzPWEsTGlzdENhY2hlLnByb3RvdHlwZS5zZXQ9cyx0LmV4cG9ydHM9TGlzdENhY2hlfSw4MDoodCxlLHIpPT57dmFyIG49cig2MDI1KSxpPUFycmF5LnByb3RvdHlwZS5zcGxpY2U7dC5leHBvcnRzPWZ1bmN0aW9uIGxpc3RDYWNoZURlbGV0ZSh0KXt2YXIgZT10aGlzLl9fZGF0YV9fLHI9bihlLHQpO3JldHVybiEocjwwKSYmKHI9PWUubGVuZ3RoLTE/ZS5wb3AoKTppLmNhbGwoZSxyLDEpLC0tdGhpcy5zaXplLCEwKX19LDEwNDoodCxlLHIpPT57dmFyIG49cigzNjYxKTtmdW5jdGlvbiBtZW1vaXplKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHR8fG51bGwhPWUmJiJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZnVuY3Rpb24iKTt2YXIgbWVtb2l6ZWQ9ZnVuY3Rpb24oKXt2YXIgcj1hcmd1bWVudHMsbj1lP2UuYXBwbHkodGhpcyxyKTpyWzBdLGk9bWVtb2l6ZWQuY2FjaGU7aWYoaS5oYXMobikpcmV0dXJuIGkuZ2V0KG4pO3ZhciBvPXQuYXBwbHkodGhpcyxyKTtyZXR1cm4gbWVtb2l6ZWQuY2FjaGU9aS5zZXQobixvKXx8aSxvfTtyZXR1cm4gbWVtb2l6ZWQuY2FjaGU9bmV3KG1lbW9pemUuQ2FjaGV8fG4pLG1lbW9pemVkfW1lbW9pemUuQ2FjaGU9bix0LmV4cG9ydHM9bWVtb2l6ZX0sMjUxOih0LGUpPT57ZS5yZWFkPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIG8sYSxzPTgqaS1uLTEsdT0oMTw8cyktMSxjPXU+PjEsZj0tNyxsPXI/aS0xOjAsaD1yPy0xOjEscD10W2UrbF07Zm9yKGwrPWgsbz1wJigxPDwtZiktMSxwPj49LWYsZis9cztmPjA7bz0yNTYqbyt0W2UrbF0sbCs9aCxmLT04KTtmb3IoYT1vJigxPDwtZiktMSxvPj49LWYsZis9bjtmPjA7YT0yNTYqYSt0W2UrbF0sbCs9aCxmLT04KTtpZigwPT09bylvPTEtYztlbHNle2lmKG89PT11KXJldHVybiBhP05hTjoxLzAqKHA/LTE6MSk7YSs9TWF0aC5wb3coMixuKSxvLT1jfXJldHVybihwPy0xOjEpKmEqTWF0aC5wb3coMixvLW4pfSxlLndyaXRlPWZ1bmN0aW9uKHQsZSxyLG4saSxvKXt2YXIgYSxzLHUsYz04Km8taS0xLGY9KDE8PGMpLTEsbD1mPj4xLGg9MjM9PT1pP01hdGgucG93KDIsLTI0KS1NYXRoLnBvdygyLC03Nyk6MCxwPW4/MDpvLTEsZD1uPzE6LTEsXz1lPDB8fDA9PT1lJiYxL2U8MD8xOjA7Zm9yKGU9TWF0aC5hYnMoZSksaXNOYU4oZSl8fGU9PT0xLzA/KHM9aXNOYU4oZSk/MTowLGE9Zik6KGE9TWF0aC5mbG9vcihNYXRoLmxvZyhlKS9NYXRoLkxOMiksZSoodT1NYXRoLnBvdygyLC1hKSk8MSYmKGEtLSx1Kj0yKSwoZSs9YStsPj0xP2gvdTpoKk1hdGgucG93KDIsMS1sKSkqdT49MiYmKGErKyx1Lz0yKSxhK2w+PWY/KHM9MCxhPWYpOmErbD49MT8ocz0oZSp1LTEpKk1hdGgucG93KDIsaSksYSs9bCk6KHM9ZSpNYXRoLnBvdygyLGwtMSkqTWF0aC5wb3coMixpKSxhPTApKTtpPj04O3RbcitwXT0yNTUmcyxwKz1kLHMvPTI1NixpLT04KTtmb3IoYT1hPDxpfHMsYys9aTtjPjA7dFtyK3BdPTI1NSZhLHArPWQsYS89MjU2LGMtPTgpO3RbcitwLWRdfD0xMjgqX319LDI3MDoodCxlLHIpPT57dmFyIG49cig3MDY4KSxpPXIoMzQ2KTt0LmV4cG9ydHM9ZnVuY3Rpb24gYmFzZUlzRXF1YWwodCxlLHIsbyxhKXtyZXR1cm4gdD09PWV8fChudWxsPT10fHxudWxsPT1lfHwhaSh0KSYmIWkoZSk/dCE9dCYmZSE9ZTpuKHQsZSxyLG8sYmFzZUlzRXF1YWwsYSkpfX0sMjg5Oih0LGUscik9Pnt2YXIgbj1yKDI2NTEpO3QuZXhwb3J0cz1mdW5jdGlvbiBtYXBDYWNoZUdldCh0KXtyZXR1cm4gbih0aGlzLHQpLmdldCh0KX19LDI5NDp0PT57dC5leHBvcnRzPWZ1bmN0aW9uIGlzTGVuZ3RoKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdD4tMSYmdCUxPT0wJiZ0PD05MDA3MTk5MjU0NzQwOTkxfX0sMzE3OnQ9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24gbWFwVG9BcnJheSh0KXt2YXIgZT0tMSxyPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXtyWysrZV09W24sdF19KSkscn19LDM0Njp0PT57dC5leHBvcnRzPWZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh0KXtyZXR1cm4gbnVsbCE9dCYmIm9iamVjdCI9PXR5cGVvZiB0fX0sMzYxOnQ9Pnt2YXIgZT0vXig/OjB8WzEtOV1cZCopJC87dC5leHBvcnRzPWZ1bmN0aW9uIGlzSW5kZXgodCxyKXt2YXIgbj10eXBlb2YgdDtyZXR1cm4hIShyPW51bGw9PXI/OTAwNzE5OTI1NDc0MDk5MTpyKSYmKCJudW1iZXIiPT1ufHwic3ltYm9sIiE9biYmZS50ZXN0KHQpKSYmdD4tMSYmdCUxPT0wJiZ0PHJ9fSwzNzY6dD0+eyJ1c2Ugc3RyaWN0Ijt0LmV4cG9ydHM9WyJjb25zdHJ1Y3RvciIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidG9Mb2NhbGVTdHJpbmciLCJ0b1N0cmluZyIsInZhbHVlT2YiXX0sMzkyOnQ9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24gZ2V0VmFsdWUodCxlKXtyZXR1cm4gbnVsbD09dD92b2lkIDA6dFtlXX19LDQ2MjoodCxlLHIpPT57InVzZSBzdHJpY3QiO3ZhciBuPXIoOTc1KTt0LmV4cG9ydHM9bn0sNDcwOih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cig2MDI4KSxpPXIoNTU5NCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW4odCwic3RyaW5nIik7cmV0dXJuIGkoZSk/ZTplKyIifX0sNTc1Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cigzMTIxKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG4odC5sZW5ndGgpfX0sNTgxOih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cigzOTMwKSxpPXIoMjI1MCksbz1yKDYyODUpLGE9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLHM7aWYoInN0cmluZyI9PT1lJiZpKHI9dC50b1N0cmluZykmJiFvKHM9bihyLHQpKSlyZXR1cm4gcztpZihpKHI9dC52YWx1ZU9mKSYmIW8ocz1uKHIsdCkpKXJldHVybiBzO2lmKCJzdHJpbmciIT09ZSYmaShyPXQudG9TdHJpbmcpJiYhbyhzPW4ocix0KSkpcmV0dXJuIHM7dGhyb3cgbmV3IGEoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfX0sNTgzOih0LGUscik9Pnt2YXIgbj1yKDcyMzcpLGk9cig3MjU1KSxvPXIoODU4NiksYT1yKDc3OTcpO3QuZXhwb3J0cz1mdW5jdGlvbiBwcm9wZXJ0eSh0KXtyZXR1cm4gbyh0KT9uKGEodCkpOmkodCl9fSw2MzE6KHQsZSxyKT0+e3ZhciBuPXIoODA3NyksaT1yKDkzMjYpO3QuZXhwb3J0cz1mdW5jdGlvbiBoYXNJbih0LGUpe3JldHVybiBudWxsIT10JiZpKHQsZSxuKX19LDY0MToodCxlLHIpPT57dmFyIG49cig2NjQ5KSxpPXIoNTk1MCk7dC5leHBvcnRzPWZ1bmN0aW9uIGJhc2VGb3JPd24odCxlKXtyZXR1cm4gdCYmbih0LGUsaSl9fSw2NTk6KHQsZSxyKT0+e3ZhciBuPXIoMTg3MyksaT1PYmplY3QucHJvdG90eXBlLG89aS5oYXNPd25Qcm9wZXJ0eSxhPWkudG9TdHJpbmcscz1uP24udG9TdHJpbmdUYWc6dm9pZCAwO3QuZXhwb3J0cz1mdW5jdGlvbiBnZXRSYXdUYWcodCl7dmFyIGU9by5jYWxsKHQscykscj10W3NdO3RyeXt0W3NdPXZvaWQgMDt2YXIgbj0hMH1jYXRjaCh0KXt9dmFyIGk9YS5jYWxsKHQpO3JldHVybiBuJiYoZT90W3NdPXI6ZGVsZXRlIHRbc10pLGl9fSw2ODk6KHQsZSxyKT0+e3ZhciBuPXIoMiksaT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3QuZXhwb3J0cz1mdW5jdGlvbiBlcXVhbE9iamVjdHModCxlLHIsbyxhLHMpe3ZhciB1PTEmcixjPW4odCksZj1jLmxlbmd0aDtpZihmIT1uKGUpLmxlbmd0aCYmIXUpcmV0dXJuITE7Zm9yKHZhciBsPWY7bC0tOyl7dmFyIGg9Y1tsXTtpZighKHU/aCBpbiBlOmkuY2FsbChlLGgpKSlyZXR1cm4hMX12YXIgcD1zLmdldCh0KSxkPXMuZ2V0KGUpO2lmKHAmJmQpcmV0dXJuIHA9PWUmJmQ9PXQ7dmFyIF89ITA7cy5zZXQodCxlKSxzLnNldChlLHQpO2Zvcih2YXIgeT11OysrbDxmOyl7dmFyIG09dFtoPWNbbF1dLGc9ZVtoXTtpZihvKXZhciB2PXU/byhnLG0saCxlLHQscyk6byhtLGcsaCx0LGUscyk7aWYoISh2b2lkIDA9PT12P209PT1nfHxhKG0sZyxyLG8scyk6dikpe189ITE7YnJlYWt9eXx8KHk9ImNvbnN0cnVjdG9yIj09aCl9aWYoXyYmIXkpe3ZhciBiPXQuY29uc3RydWN0b3Isdz1lLmNvbnN0cnVjdG9yO2I9PXd8fCEoImNvbnN0cnVjdG9yImluIHQpfHwhKCJjb25zdHJ1Y3RvciJpbiBlKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGImJmIgaW5zdGFuY2VvZiBiJiYiZnVuY3Rpb24iPT10eXBlb2YgdyYmdyBpbnN0YW5jZW9mIHd8fChfPSExKX1yZXR1cm4gcy5kZWxldGUodCkscy5kZWxldGUoZSksX319LDY5NToodCxlLHIpPT57dmFyIG49cig4MDk2KSxpPXIoMjQyOCksbz1yKDY0NDkpLGE9cigzNjU2KSxzPXIoMzYxKSx1PXIoNzE2NyksYz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3QuZXhwb3J0cz1mdW5jdGlvbiBhcnJheUxpa2VLZXlzKHQsZSl7dmFyIHI9byh0KSxmPSFyJiZpKHQpLGw9IXImJiFmJiZhKHQpLGg9IXImJiFmJiYhbCYmdSh0KSxwPXJ8fGZ8fGx8fGgsZD1wP24odC5sZW5ndGgsU3RyaW5nKTpbXSxfPWQubGVuZ3RoO2Zvcih2YXIgeSBpbiB0KSFlJiYhYy5jYWxsKHQseSl8fHAmJigibGVuZ3RoIj09eXx8bCYmKCJvZmZzZXQiPT15fHwicGFyZW50Ij09eSl8fGgmJigiYnVmZmVyIj09eXx8ImJ5dGVMZW5ndGgiPT15fHwiYnl0ZU9mZnNldCI9PXkpfHxzKHksXykpfHxkLnB1c2goeSk7cmV0dXJuIGR9fSw3NTY6KHQsZSxyKT0+e3ZhciBuPXIoMzgwNSk7dC5leHBvcnRzPWZ1bmN0aW9uIGlzU3RyaWN0Q29tcGFyYWJsZSh0KXtyZXR1cm4gdD09dCYmIW4odCl9fSw3NzY6KHQsZSxyKT0+e3ZhciBuPXIoNzU2KSxpPXIoNTk1MCk7dC5leHBvcnRzPWZ1bmN0aW9uIGdldE1hdGNoRGF0YSh0KXtmb3IodmFyIGU9aSh0KSxyPWUubGVuZ3RoO3ItLTspe3ZhciBvPWVbcl0sYT10W29dO2Vbcl09W28sYSxuKGEpXX1yZXR1cm4gZX19LDc5ODoodCxlLHIpPT57InVzZSBzdHJpY3QiO3ZhciBuLGksbz1yKDU5NTEpLGE9cig2Nzk0KSxzPW8ucHJvY2Vzcyx1PW8uRGVubyxjPXMmJnMudmVyc2lvbnN8fHUmJnUudmVyc2lvbixmPWMmJmMudjg7ZiYmKGk9KG49Zi5zcGxpdCgiLiIpKVswXT4wJiZuWzBdPDQ/MTorKG5bMF0rblsxXSkpLCFpJiZhJiYoIShuPWEubWF0Y2goL0VkZ2VcLyhcZCspLykpfHxuWzFdPj03NCkmJihuPWEubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihpPStuWzFdKSx0LmV4cG9ydHM9aX0sODI4Oih0LGUscik9Pnt2YXIgbj1yKDQ2NDcpLGk9cigzMjIyKSxvPS9bXHhjMC1ceGQ2XHhkOC1ceGY2XHhmOC1ceGZmXHUwMTAwLVx1MDE3Zl0vZyxhPVJlZ0V4cCgiW1xcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZl0iLCJnIik7dC5leHBvcnRzPWZ1bmN0aW9uIGRlYnVycih0KXtyZXR1cm4odD1pKHQpKSYmdC5yZXBsYWNlKG8sbikucmVwbGFjZShhLCIiKX19LDg4Mjp0PT57dC5leHBvcnRzPWZ1bmN0aW9uIGFycmF5UmVkdWNlKHQsZSxyLG4pe3ZhciBpPS0xLG89bnVsbD09dD8wOnQubGVuZ3RoO2ZvcihuJiZvJiYocj10WysraV0pOysraTxvOylyPWUocix0W2ldLGksdCk7cmV0dXJuIHJ9fSw5MDk6KHQsZSxyKT0+e3ZhciBuPXIoNjQxKSxpPXIoODMyOSkobik7dC5leHBvcnRzPWl9LDkxNjoodCxlLHIpPT57dmFyIG49cig5MDkpO3QuZXhwb3J0cz1mdW5jdGlvbiBiYXNlU29tZSh0LGUpe3ZhciByO3JldHVybiBuKHQsKGZ1bmN0aW9uKHQsbixpKXtyZXR1cm4hKHI9ZSh0LG4saSkpfSkpLCEhcn19LDkzODp0PT57dC5leHBvcnRzPWZ1bmN0aW9uIHN0YWNrRGVsZXRlKHQpe3ZhciBlPXRoaXMuX19kYXRhX18scj1lLmRlbGV0ZSh0KTtyZXR1cm4gdGhpcy5zaXplPWUuc2l6ZSxyfX0sOTQ1Oih0LGUscik9Pnt2YXIgbj1yKDc5KSxpPXIoODIyMyksbz1yKDM2NjEpO3QuZXhwb3J0cz1mdW5jdGlvbiBzdGFja1NldCh0LGUpe3ZhciByPXRoaXMuX19kYXRhX187aWYociBpbnN0YW5jZW9mIG4pe3ZhciBhPXIuX19kYXRhX187aWYoIWl8fGEubGVuZ3RoPDE5OSlyZXR1cm4gYS5wdXNoKFt0LGVdKSx0aGlzLnNpemU9KytyLnNpemUsdGhpcztyPXRoaXMuX19kYXRhX189bmV3IG8oYSl9cmV0dXJuIHIuc2V0KHQsZSksdGhpcy5zaXplPXIuc2l6ZSx0aGlzfX0sOTUzOih0LGUscik9PnsidXNlIHN0cmljdCI7dC5leHBvcnRzPXIoMzM3NSl9LDk3NToodCxlLHIpPT57InVzZSBzdHJpY3QiO3ZhciBuPXIoOTc0OCk7dC5leHBvcnRzPW59LDEwNDI6KHQsZSxyKT0+e3ZhciBuPXIoNjExMCkoT2JqZWN0LCJjcmVhdGUiKTt0LmV4cG9ydHM9bn0sMTA3NDp0PT57dC5leHBvcnRzPWZ1bmN0aW9uIGFzY2lpVG9BcnJheSh0KXtyZXR1cm4gdC5zcGxpdCgiIil9fSwxMDkxOih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cig1OTUxKSxpPXIoNjAyNCksbz1yKDIzNjEpLGE9cigyMjUwKSxzPXIoMzg0NikuZix1PXIoNzQ2MyksYz1yKDIwNDYpLGY9cig4MzExKSxsPXIoMTYyNiksaD1yKDk3MjQpO3IoNjEyOCk7dmFyIHdyYXBDb25zdHJ1Y3Rvcj1mdW5jdGlvbih0KXt2YXIgV3JhcHBlcj1mdW5jdGlvbihlLHIsbil7aWYodGhpcyBpbnN0YW5jZW9mIFdyYXBwZXIpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIG5ldyB0O2Nhc2UgMTpyZXR1cm4gbmV3IHQoZSk7Y2FzZSAyOnJldHVybiBuZXcgdChlLHIpfXJldHVybiBuZXcgdChlLHIsbil9cmV0dXJuIGkodCx0aGlzLGFyZ3VtZW50cyl9O3JldHVybiBXcmFwcGVyLnByb3RvdHlwZT10LnByb3RvdHlwZSxXcmFwcGVyfTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixpLHAsZCxfLHksbSxnLHYsYj10LnRhcmdldCx3PXQuZ2xvYmFsLEk9dC5zdGF0LHg9dC5wcm90byxCPXc/bjpJP25bYl06bltiXSYmbltiXS5wcm90b3R5cGUsaz13P2M6Y1tiXXx8bChjLGIse30pW2JdLEM9ay5wcm90b3R5cGU7Zm9yKGQgaW4gZSlpPSEocj11KHc/ZDpiKyhJPyIuIjoiIyIpK2QsdC5mb3JjZWQpKSYmQiYmaChCLGQpLHk9a1tkXSxpJiYobT10LmRvbnRDYWxsR2V0U2V0Pyh2PXMoQixkKSkmJnYudmFsdWU6QltkXSksXz1pJiZtP206ZVtkXSwocnx8eHx8dHlwZW9mIHkhPXR5cGVvZiBfKSYmKGc9dC5iaW5kJiZpP2YoXyxuKTp0LndyYXAmJmk/d3JhcENvbnN0cnVjdG9yKF8pOngmJmEoXyk/byhfKTpfLCh0LnNoYW18fF8mJl8uc2hhbXx8eSYmeS5zaGFtKSYmbChnLCJzaGFtIiwhMCksbChrLGQsZykseCYmKGgoYyxwPWIrIlByb3RvdHlwZSIpfHxsKGMscCx7fSksbChjW3BdLGQsXyksdC5yZWFsJiZDJiYocnx8IUNbZF0pJiZsKEMsZCxfKSkpfX0sMTE3NToodCxlLHIpPT57dmFyIG49cig2MDI1KTt0LmV4cG9ydHM9ZnVuY3Rpb24gbGlzdENhY2hlU2V0KHQsZSl7dmFyIHI9dGhpcy5fX2RhdGFfXyxpPW4ocix0KTtyZXR1cm4gaTwwPygrK3RoaXMuc2l6ZSxyLnB1c2goW3QsZV0pKTpyW2ldWzFdPWUsdGhpc319LDExNzY6dD0+eyJ1c2Ugc3RyaWN0Ijt2YXIgZT1NYXRoLmNlaWwscj1NYXRoLmZsb29yO3QuZXhwb3J0cz1NYXRoLnRydW5jfHxmdW5jdGlvbiB0cnVuYyh0KXt2YXIgbj0rdDtyZXR1cm4obj4wP3I6ZSkobil9fSwxMjM0OnQ9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24gYmFzZVppcE9iamVjdCh0LGUscil7Zm9yKHZhciBuPS0xLGk9dC5sZW5ndGgsbz1lLmxlbmd0aCxhPXt9OysrbjxpOyl7dmFyIHM9bjxvP2Vbbl06dm9pZCAwO3IoYSx0W25dLHMpfXJldHVybiBhfX0sMTM0MDoodCxlLHIpPT57InVzZSBzdHJpY3QiO3ZhciBuPXIoMTA5MSksaT1yKDk1MzgpO24oe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGFyaXR5OjIsZm9yY2VkOk9iamVjdC5hc3NpZ24hPT1pfSx7YXNzaWduOml9KX0sMTM4MDp0PT57dC5leHBvcnRzPWZ1bmN0aW9uIHNldENhY2hlQWRkKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLnNldCh0LCJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIiksdGhpc319LDE0MjA6KHQsZSxyKT0+e3ZhciBuPXIoNzkpO3QuZXhwb3J0cz1mdW5jdGlvbiBzdGFja0NsZWFyKCl7dGhpcy5fX2RhdGFfXz1uZXcgbix0aGlzLnNpemU9MH19LDE0NTk6dD0+e3QuZXhwb3J0cz1mdW5jdGlvbiBzZXRDYWNoZUhhcyh0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXModCl9fSwxNDg5Oih0LGUscik9Pnt2YXIgbj1yKDc0MDApO3QuZXhwb3J0cz1mdW5jdGlvbiB0b0ludGVnZXIodCl7dmFyIGU9bih0KSxyPWUlMTtyZXR1cm4gZT09ZT9yP2UtcjplOjB9fSwxNTA1Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cig4ODI4KTt0LmV4cG9ydHM9IW4oKGZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oKXt9LmJpbmQoKTtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgdHx8dC5oYXNPd25Qcm9wZXJ0eSgicHJvdG90eXBlIil9KSl9LDE1NDk6KHQsZSxyKT0+e3ZhciBuPXIoMjAzMiksaT1yKDM4NjIpLG89cig2NzIxKSxhPXIoMjc0OSkscz1yKDU3NDkpO2Z1bmN0aW9uIEhhc2godCl7dmFyIGU9LTEscj1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8cjspe3ZhciBuPXRbZV07dGhpcy5zZXQoblswXSxuWzFdKX19SGFzaC5wcm90b3R5cGUuY2xlYXI9bixIYXNoLnByb3RvdHlwZS5kZWxldGU9aSxIYXNoLnByb3RvdHlwZS5nZXQ9byxIYXNoLnByb3RvdHlwZS5oYXM9YSxIYXNoLnByb3RvdHlwZS5zZXQ9cyx0LmV4cG9ydHM9SGFzaH0sMTYyNjoodCxlLHIpPT57InVzZSBzdHJpY3QiO3ZhciBuPXIoOTQ0NyksaT1yKDQyODQpLG89cig1ODE3KTt0LmV4cG9ydHM9bj9mdW5jdGlvbih0LGUscil7cmV0dXJuIGkuZih0LGUsbygxLHIpKX06ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0W2VdPXIsdH19LDE3MzM6dD0+e3ZhciBlPS9bXlx4MDAtXHgyZlx4M2EtXHg0MFx4NWItXHg2MFx4N2ItXHg3Zl0rL2c7dC5leHBvcnRzPWZ1bmN0aW9uIGFzY2lpV29yZHModCl7cmV0dXJuIHQubWF0Y2goZSl8fFtdfX0sMTc0NzoodCxlLHIpPT57InVzZSBzdHJpY3QiO3ZhciBuPXIoNTk1MSksaT1yKDIwNDYpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWlbdCsiUHJvdG90eXBlIl0sbz1yJiZyW2VdO2lmKG8pcmV0dXJuIG87dmFyIGE9blt0XSxzPWEmJmEucHJvdG90eXBlO3JldHVybiBzJiZzW2VdfX0sMTc2OToodCxlLHIpPT57dmFyIG49cig2NDQ5KSxpPXIoODU4Niksbz1yKDE4MDIpLGE9cigzMjIyKTt0LmV4cG9ydHM9ZnVuY3Rpb24gY2FzdFBhdGgodCxlKXtyZXR1cm4gbih0KT90OmkodCxlKT9bdF06byhhKHQpKX19LDE3OTk6KHQsZSxyKT0+e3ZhciBuPXIoNzIxNyksaT1yKDI3MCk7dC5leHBvcnRzPWZ1bmN0aW9uIGJhc2VJc01hdGNoKHQsZSxyLG8pe3ZhciBhPXIubGVuZ3RoLHM9YSx1PSFvO2lmKG51bGw9PXQpcmV0dXJuIXM7Zm9yKHQ9T2JqZWN0KHQpO2EtLTspe3ZhciBjPXJbYV07aWYodSYmY1syXT9jWzFdIT09dFtjWzBdXTohKGNbMF1pbiB0KSlyZXR1cm4hMX1mb3IoOysrYTxzOyl7dmFyIGY9KGM9clthXSlbMF0sbD10W2ZdLGg9Y1sxXTtpZih1JiZjWzJdKXtpZih2b2lkIDA9PT1sJiYhKGYgaW4gdCkpcmV0dXJuITF9ZWxzZXt2YXIgcD1uZXcgbjtpZihvKXZhciBkPW8obCxoLGYsdCxlLHApO2lmKCEodm9pZCAwPT09ZD9pKGgsbCwzLG8scCk6ZCkpcmV0dXJuITF9fXJldHVybiEwfX0sMTgwMDp0PT57dmFyIGU9L1xzLzt0LmV4cG9ydHM9ZnVuY3Rpb24gdHJpbW1lZEVuZEluZGV4KHQpe2Zvcih2YXIgcj10Lmxlbmd0aDtyLS0mJmUudGVzdCh0LmNoYXJBdChyKSk7KTtyZXR1cm4gcn19LDE4MDI6KHQsZSxyKT0+e3ZhciBuPXIoMjIyNCksaT0vW14uW1xdXSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwkKSkvZyxvPS9cXChcXCk/L2csYT1uKChmdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gNDY9PT10LmNoYXJDb2RlQXQoMCkmJmUucHVzaCgiIiksdC5yZXBsYWNlKGksKGZ1bmN0aW9uKHQscixuLGkpe2UucHVzaChuP2kucmVwbGFjZShvLCIkMSIpOnJ8fHQpfSkpLGV9KSk7dC5leHBvcnRzPWF9LDE4NzM6KHQsZSxyKT0+e3ZhciBuPXIoOTMyNSkuU3ltYm9sO3QuZXhwb3J0cz1ufSwxODgyOih0LGUscik9Pnt2YXIgbj1yKDI1NTIpLGk9cigzODA1KTt0LmV4cG9ydHM9ZnVuY3Rpb24gaXNGdW5jdGlvbih0KXtpZighaSh0KSlyZXR1cm4hMTt2YXIgZT1uKHQpO3JldHVybiJbb2JqZWN0IEZ1bmN0aW9uXSI9PWV8fCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PWV8fCJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dIj09ZXx8IltvYmplY3QgUHJveHldIj09ZX19LDE5MDc6KHQsZSxyKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDE1MDUpLGk9RnVuY3Rpb24ucHJvdG90eXBlLG89aS5jYWxsLGE9biYmaS5iaW5kLmJpbmQobyxvKTt0LmV4cG9ydHM9bj9hOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBvLmFwcGx5KHQsYXJndW1lbnRzKX19fSwxOTg2Oih0LGUscik9Pnt2YXIgbj1yKDE4NzMpLGk9cig3ODI4KSxvPXIoNTI4OCksYT1yKDU5MTEpLHM9cigzMTcpLHU9cig0MjQ3KSxjPW4/bi5wcm90b3R5cGU6dm9pZCAwLGY9Yz9jLnZhbHVlT2Y6dm9pZCAwO3QuZXhwb3J0cz1mdW5jdGlvbiBlcXVhbEJ5VGFnKHQsZSxyLG4sYyxsLGgpe3N3aXRjaChyKXtjYXNlIltvYmplY3QgRGF0YVZpZXddIjppZih0LmJ5dGVMZW5ndGghPWUuYnl0ZUxlbmd0aHx8dC5ieXRlT2Zmc2V0IT1lLmJ5dGVPZmZzZXQpcmV0dXJuITE7dD10LmJ1ZmZlcixlPWUuYnVmZmVyO2Nhc2UiW29iamVjdCBBcnJheUJ1ZmZlcl0iOnJldHVybiEodC5ieXRlTGVuZ3RoIT1lLmJ5dGVMZW5ndGh8fCFsKG5ldyBpKHQpLG5ldyBpKGUpKSk7Y2FzZSJbb2JqZWN0IEJvb2xlYW5dIjpjYXNlIltvYmplY3QgRGF0ZV0iOmNhc2UiW29iamVjdCBOdW1iZXJdIjpyZXR1cm4gbygrdCwrZSk7Y2FzZSJbb2JqZWN0IEVycm9yXSI6cmV0dXJuIHQubmFtZT09ZS5uYW1lJiZ0Lm1lc3NhZ2U9PWUubWVzc2FnZTtjYXNlIltvYmplY3QgUmVnRXhwXSI6Y2FzZSJbb2JqZWN0IFN0cmluZ10iOnJldHVybiB0PT1lKyIiO2Nhc2UiW29iamVjdCBNYXBdIjp2YXIgcD1zO2Nhc2UiW29iamVjdCBTZXRdIjp2YXIgZD0xJm47aWYocHx8KHA9dSksdC5zaXplIT1lLnNpemUmJiFkKXJldHVybiExO3ZhciBfPWguZ2V0KHQpO2lmKF8pcmV0dXJuIF89PWU7bnw9MixoLnNldCh0LGUpO3ZhciB5PWEocCh0KSxwKGUpLG4sYyxsLGgpO3JldHVybiBoLmRlbGV0ZSh0KSx5O2Nhc2UiW29iamVjdCBTeW1ib2xdIjppZihmKXJldHVybiBmLmNhbGwodCk9PWYuY2FsbChlKX1yZXR1cm4hMX19LDIwMDY6KHQsZSxyKT0+e3ZhciBuPXIoNTM4OSksaT1yKDQ4OTQpLG89cig1OTUwKTt0LmV4cG9ydHM9ZnVuY3Rpb24gY3JlYXRlRmluZCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxyLGEpe3ZhciBzPU9iamVjdChlKTtpZighaShlKSl7dmFyIHU9bihyLDMpO2U9byhlKSxyPWZ1bmN0aW9uKHQpe3JldHVybiB1KHNbdF0sdCxzKX19dmFyIGM9dChlLHIsYSk7cmV0dXJuIGM+LTE/c1t1P2VbY106Y106dm9pZCAwfX19LDIwMzI6KHQsZSxyKT0+e3ZhciBuPXIoMTA0Mik7dC5leHBvcnRzPWZ1bmN0aW9uIGhhc2hDbGVhcigpe3RoaXMuX19kYXRhX189bj9uKG51bGwpOnt9LHRoaXMuc2l6ZT0wfX0sMjA0Njp0PT57InVzZSBzdHJpY3QiO3QuZXhwb3J0cz17fX0sMjA1NDp0PT57dmFyIGU9IlxcdWQ4MDAtXFx1ZGZmZiIscj0iWyIrZSsiXSIsbj0iW1xcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZl0iLGk9IlxcdWQ4M2NbXFx1ZGZmYi1cXHVkZmZmXSIsbz0iW14iK2UrIl0iLGE9Iig/OlxcdWQ4M2NbXFx1ZGRlNi1cXHVkZGZmXSl7Mn0iLHM9IltcXHVkODAwLVxcdWRiZmZdW1xcdWRjMDAtXFx1ZGZmZl0iLHU9Iig/OiIrbisifCIraSsiKSIrIj8iLGM9IltcXHVmZTBlXFx1ZmUwZl0/IixmPWMrdSsoIig/OlxcdTIwMGQoPzoiK1tvLGEsc10uam9pbigifCIpKyIpIitjK3UrIikqIiksbD0iKD86IitbbytuKyI/IixuLGEscyxyXS5qb2luKCJ8IikrIikiLGg9UmVnRXhwKGkrIig/PSIraSsiKXwiK2wrZiwiZyIpO3QuZXhwb3J0cz1mdW5jdGlvbiB1bmljb2RlVG9BcnJheSh0KXtyZXR1cm4gdC5tYXRjaChoKXx8W119fSwyMTU5Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cigyMjUwKSxpPXIoNDY0MCksbz1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKG4odCkpcmV0dXJuIHQ7dGhyb3cgbmV3IG8oaSh0KSsiIGlzIG5vdCBhIGZ1bmN0aW9uIil9fSwyMTk5Oih0LGUscik9Pnt2YXIgbj1yKDQ1MjgpLGk9cig2NDQ5KTt0LmV4cG9ydHM9ZnVuY3Rpb24gYmFzZUdldEFsbEtleXModCxlLHIpe3ZhciBvPWUodCk7cmV0dXJuIGkodCk/bzpuKG8scih0KSl9fSwyMjA1OmZ1bmN0aW9uKHQsZSxyKXt2YXIgbjtuPXZvaWQgMCE9PXIuZz9yLmc6dGhpcyx0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYodC5DU1MmJnQuQ1NTLmVzY2FwZSlyZXR1cm4gdC5DU1MuZXNjYXBlO3ZhciBjc3NFc2NhcGU9ZnVuY3Rpb24odCl7aWYoMD09YXJndW1lbnRzLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKCJgQ1NTLmVzY2FwZWAgcmVxdWlyZXMgYW4gYXJndW1lbnQuIik7Zm9yKHZhciBlLHI9U3RyaW5nKHQpLG49ci5sZW5ndGgsaT0tMSxvPSIiLGE9ci5jaGFyQ29kZUF0KDApOysraTxuOykwIT0oZT1yLmNoYXJDb2RlQXQoaSkpP28rPWU+PTEmJmU8PTMxfHwxMjc9PWV8fDA9PWkmJmU+PTQ4JiZlPD01N3x8MT09aSYmZT49NDgmJmU8PTU3JiY0NT09YT8iXFwiK2UudG9TdHJpbmcoMTYpKyIgIjowPT1pJiYxPT1uJiY0NT09ZXx8IShlPj0xMjh8fDQ1PT1lfHw5NT09ZXx8ZT49NDgmJmU8PTU3fHxlPj02NSYmZTw9OTB8fGU+PTk3JiZlPD0xMjIpPyJcXCIrci5jaGFyQXQoaSk6ci5jaGFyQXQoaSk6bys9Iu+/vSI7cmV0dXJuIG99O3JldHVybiB0LkNTU3x8KHQuQ1NTPXt9KSx0LkNTUy5lc2NhcGU9Y3NzRXNjYXBlLGNzc0VzY2FwZX0obil9LDIyMjQ6KHQsZSxyKT0+e3ZhciBuPXIoMTA0KTt0LmV4cG9ydHM9ZnVuY3Rpb24gbWVtb2l6ZUNhcHBlZCh0KXt2YXIgZT1uKHQsKGZ1bmN0aW9uKHQpe3JldHVybiA1MDA9PT1yLnNpemUmJnIuY2xlYXIoKSx0fSkpLHI9ZS5jYWNoZTtyZXR1cm4gZX19LDIyMjU6dD0+e3ZhciBlPSJcXHVkODAwLVxcdWRmZmYiLHI9IlxcdTI3MDAtXFx1MjdiZiIsbj0iYS16XFx4ZGYtXFx4ZjZcXHhmOC1cXHhmZiIsaT0iQS1aXFx4YzAtXFx4ZDZcXHhkOC1cXHhkZSIsbz0iXFx4YWNcXHhiMVxceGQ3XFx4ZjdcXHgwMC1cXHgyZlxceDNhLVxceDQwXFx4NWItXFx4NjBcXHg3Yi1cXHhiZlxcdTIwMDAtXFx1MjA2ZiBcXHRcXHgwYlxcZlxceGEwXFx1ZmVmZlxcblxcclxcdTIwMjhcXHUyMDI5XFx1MTY4MFxcdTE4MGVcXHUyMDAwXFx1MjAwMVxcdTIwMDJcXHUyMDAzXFx1MjAwNFxcdTIwMDVcXHUyMDA2XFx1MjAwN1xcdTIwMDhcXHUyMDA5XFx1MjAwYVxcdTIwMmZcXHUyMDVmXFx1MzAwMCIsYT0iWyIrbysiXSIscz0iXFxkKyIsdT0iWyIrcisiXSIsYz0iWyIrbisiXSIsZj0iW14iK2UrbytzK3IrbitpKyJdIixsPSIoPzpcXHVkODNjW1xcdWRkZTYtXFx1ZGRmZl0pezJ9IixoPSJbXFx1ZDgwMC1cXHVkYmZmXVtcXHVkYzAwLVxcdWRmZmZdIixwPSJbIitpKyJdIixkPSIoPzoiK2MrInwiK2YrIikiLF89Iig/OiIrcCsifCIrZisiKSIseT0iKD86WyfigJldKD86ZHxsbHxtfHJlfHN8dHx2ZSkpPyIsbT0iKD86WyfigJldKD86RHxMTHxNfFJFfFN8VHxWRSkpPyIsZz0iKD86W1xcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZl18XFx1ZDgzY1tcXHVkZmZiLVxcdWRmZmZdKT8iLHY9IltcXHVmZTBlXFx1ZmUwZl0/IixiPXYrZysoIig/OlxcdTIwMGQoPzoiK1siW14iK2UrIl0iLGwsaF0uam9pbigifCIpKyIpIit2K2crIikqIiksdz0iKD86IitbdSxsLGhdLmpvaW4oInwiKSsiKSIrYixJPVJlZ0V4cChbcCsiPyIrYysiKyIreSsiKD89IitbYSxwLCIkIl0uam9pbigifCIpKyIpIixfKyIrIittKyIoPz0iK1thLHArZCwiJCJdLmpvaW4oInwiKSsiKSIscCsiPyIrZCsiKyIreSxwKyIrIittLCJcXGQqKD86MVNUfDJORHwzUkR8KD8hWzEyM10pXFxkVEgpKD89XFxifFthLXpfXSkiLCJcXGQqKD86MXN0fDJuZHwzcmR8KD8hWzEyM10pXFxkdGgpKD89XFxifFtBLVpfXSkiLHMsd10uam9pbigifCIpLCJnIik7dC5leHBvcnRzPWZ1bmN0aW9uIHVuaWNvZGVXb3Jkcyh0KXtyZXR1cm4gdC5tYXRjaChJKXx8W119fSwyMjUwOnQ9PnsidXNlIHN0cmljdCI7dmFyIGU9Im9iamVjdCI9PXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQuYWxsO3QuZXhwb3J0cz12b2lkIDA9PT1lJiZ2b2lkIDAhPT1lP2Z1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fHx0PT09ZX06ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHR9fSwyMzYxOih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cig1ODA3KSxpPXIoMTkwNyk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCJGdW5jdGlvbiI9PT1uKHQpKXJldHVybiBpKHQpfX0sMjQyNjoodCxlLHIpPT57dmFyIG49cig0MjQ4KSxpPXIoNTM4OSksbz1yKDkxNiksYT1yKDY0NDkpLHM9cig2ODAwKTt0LmV4cG9ydHM9ZnVuY3Rpb24gc29tZSh0LGUscil7dmFyIHU9YSh0KT9uOm87cmV0dXJuIHImJnModCxlLHIpJiYoZT12b2lkIDApLHUodCxpKGUsMykpfX0sMjQyODoodCxlLHIpPT57dmFyIG49cig3NTM0KSxpPXIoMzQ2KSxvPU9iamVjdC5wcm90b3R5cGUsYT1vLmhhc093blByb3BlcnR5LHM9by5wcm9wZXJ0eUlzRW51bWVyYWJsZSx1PW4oZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKT9uOmZ1bmN0aW9uKHQpe3JldHVybiBpKHQpJiZhLmNhbGwodCwiY2FsbGVlIikmJiFzLmNhbGwodCwiY2FsbGVlIil9O3QuZXhwb3J0cz11fSwyNTA3Oih0LGUscik9Pnt2YXIgbj1yKDg3NTQpLGk9cig5Njk4KSxvPXIoMzkxMiksYT1yKDMyMjIpO3QuZXhwb3J0cz1mdW5jdGlvbiBjcmVhdGVDYXNlRmlyc3QodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2U9YShlKTt2YXIgcj1pKGUpP28oZSk6dm9pZCAwLHM9cj9yWzBdOmUuY2hhckF0KDApLHU9cj9uKHIsMSkuam9pbigiIik6ZS5zbGljZSgxKTtyZXR1cm4gc1t0XSgpK3V9fX0sMjUyMzp0PT57dC5leHBvcnRzPWZ1bmN0aW9uIGJhc2VGaW5kSW5kZXgodCxlLHIsbil7Zm9yKHZhciBpPXQubGVuZ3RoLG89cisobj8xOi0xKTtuP28tLTorK288aTspaWYoZSh0W29dLG8sdCkpcmV0dXJuIG87cmV0dXJuLTF9fSwyNTMyOih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cig1OTUxKSxpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt0cnl7aShuLHQse3ZhbHVlOmUsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSl9Y2F0Y2gocil7blt0XT1lfXJldHVybiBlfX0sMjU1MjoodCxlLHIpPT57dmFyIG49cigxODczKSxpPXIoNjU5KSxvPXIoOTM1MCksYT1uP24udG9TdHJpbmdUYWc6dm9pZCAwO3QuZXhwb3J0cz1mdW5jdGlvbiBiYXNlR2V0VGFnKHQpe3JldHVybiBudWxsPT10P3ZvaWQgMD09PXQ/IltvYmplY3QgVW5kZWZpbmVkXSI6IltvYmplY3QgTnVsbF0iOmEmJmEgaW4gT2JqZWN0KHQpP2kodCk6byh0KX19LDI1Njc6KHQsZSxyKT0+eyJ1c2Ugc3RyaWN0IjtyKDkzMDcpO3ZhciBuPXIoMTc0Nyk7dC5leHBvcnRzPW4oIkZ1bmN0aW9uIiwiYmluZCIpfSwyNTc0Oih0LGUpPT57InVzZSBzdHJpY3QiO3ZhciByPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLG49T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixpPW4mJiFyLmNhbGwoezE6Mn0sMSk7ZS5mPWk/ZnVuY3Rpb24gcHJvcGVydHlJc0VudW1lcmFibGUodCl7dmFyIGU9bih0aGlzLHQpO3JldHVybiEhZSYmZS5lbnVtZXJhYmxlfTpyfSwyNjUxOih0LGUscik9Pnt2YXIgbj1yKDQyMTgpO3QuZXhwb3J0cz1mdW5jdGlvbiBnZXRNYXBEYXRhKHQsZSl7dmFyIHI9dC5fX2RhdGFfXztyZXR1cm4gbihlKT9yWyJzdHJpbmciPT10eXBlb2YgZT8ic3RyaW5nIjoiaGFzaCJdOnIubWFwfX0sMjc0OToodCxlLHIpPT57dmFyIG49cigxMDQyKSxpPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dC5leHBvcnRzPWZ1bmN0aW9uIGhhc2hIYXModCl7dmFyIGU9dGhpcy5fX2RhdGFfXztyZXR1cm4gbj92b2lkIDAhPT1lW3RdOmkuY2FsbChlLHQpfX0sMjgwMjoodCxlLHIpPT57dmFyIG49dC5leHBvcnRzPWZ1bmN0aW9uIFNIQSh0KXt0PXQudG9Mb3dlckNhc2UoKTt2YXIgZT1uW3RdO2lmKCFlKXRocm93IG5ldyBFcnJvcih0KyIgaXMgbm90IHN1cHBvcnRlZCAod2UgYWNjZXB0IHB1bGwgcmVxdWVzdHMpIik7cmV0dXJuIG5ldyBlfTtuLnNoYT1yKDc4MTYpLG4uc2hhMT1yKDM3MzcpLG4uc2hhMjI0PXIoNjcxMCksbi5zaGEyNTY9cig0MTA3KSxuLnNoYTM4ND1yKDI4MjcpLG4uc2hhNTEyPXIoMjg5MCl9LDI4MDQ6KHQsZSxyKT0+e3ZhciBuPXIoNjExMCkocig5MzI1KSwiUHJvbWlzZSIpO3QuZXhwb3J0cz1ufSwyODI3Oih0LGUscik9Pnt2YXIgbj1yKDY2OTgpLGk9cigyODkwKSxvPXIoODAxMSksYT1yKDI4NjEpLkJ1ZmZlcixzPW5ldyBBcnJheSgxNjApO2Z1bmN0aW9uIFNoYTM4NCgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9cyxvLmNhbGwodGhpcywxMjgsMTEyKX1uKFNoYTM4NCxpKSxTaGEzODQucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWg9MzQxODA3MDM2NSx0aGlzLl9iaD0xNjU0MjcwMjUwLHRoaXMuX2NoPTI0Mzg1MjkzNzAsdGhpcy5fZGg9MzU1NDYyMzYwLHRoaXMuX2VoPTE3MzE0MDU0MTUsdGhpcy5fZmg9MjM5NDE4MDIzMSx0aGlzLl9naD0zNjc1MDA4NTI1LHRoaXMuX2hoPTEyMDMwNjI4MTMsdGhpcy5fYWw9MzIzODM3MTAzMix0aGlzLl9ibD05MTQxNTA2NjMsdGhpcy5fY2w9ODEyNzAyOTk5LHRoaXMuX2RsPTQxNDQ5MTI2OTcsdGhpcy5fZWw9NDI5MDc3NTg1Nyx0aGlzLl9mbD0xNzUwNjAzMDI1LHRoaXMuX2dsPTE2OTQwNzY4MzksdGhpcy5faGw9MzIwNDA3NTQyOCx0aGlzfSxTaGEzODQucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIHQ9YS5hbGxvY1Vuc2FmZSg0OCk7ZnVuY3Rpb24gd3JpdGVJbnQ2NEJFKGUscixuKXt0LndyaXRlSW50MzJCRShlLG4pLHQud3JpdGVJbnQzMkJFKHIsbis0KX1yZXR1cm4gd3JpdGVJbnQ2NEJFKHRoaXMuX2FoLHRoaXMuX2FsLDApLHdyaXRlSW50NjRCRSh0aGlzLl9iaCx0aGlzLl9ibCw4KSx3cml0ZUludDY0QkUodGhpcy5fY2gsdGhpcy5fY2wsMTYpLHdyaXRlSW50NjRCRSh0aGlzLl9kaCx0aGlzLl9kbCwyNCksd3JpdGVJbnQ2NEJFKHRoaXMuX2VoLHRoaXMuX2VsLDMyKSx3cml0ZUludDY0QkUodGhpcy5fZmgsdGhpcy5fZmwsNDApLHR9LHQuZXhwb3J0cz1TaGEzODR9LDI4NjE6KHQsZSxyKT0+e3ZhciBuPXIoODI4NyksaT1uLkJ1ZmZlcjtmdW5jdGlvbiBjb3B5UHJvcHModCxlKXtmb3IodmFyIHIgaW4gdCllW3JdPXRbcl19ZnVuY3Rpb24gU2FmZUJ1ZmZlcih0LGUscil7cmV0dXJuIGkodCxlLHIpfWkuZnJvbSYmaS5hbGxvYyYmaS5hbGxvY1Vuc2FmZSYmaS5hbGxvY1Vuc2FmZVNsb3c/dC5leHBvcnRzPW46KGNvcHlQcm9wcyhuLGUpLGUuQnVmZmVyPVNhZmVCdWZmZXIpLFNhZmVCdWZmZXIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoaS5wcm90b3R5cGUpLGNvcHlQcm9wcyhpLFNhZmVCdWZmZXIpLFNhZmVCdWZmZXIuZnJvbT1mdW5jdGlvbih0LGUscil7aWYoIm51bWJlciI9PXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyIik7cmV0dXJuIGkodCxlLHIpfSxTYWZlQnVmZmVyLmFsbG9jPWZ1bmN0aW9uKHQsZSxyKXtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3ZhciBuPWkodCk7cmV0dXJuIHZvaWQgMCE9PWU/InN0cmluZyI9PXR5cGVvZiByP24uZmlsbChlLHIpOm4uZmlsbChlKTpuLmZpbGwoMCksbn0sU2FmZUJ1ZmZlci5hbGxvY1Vuc2FmZT1mdW5jdGlvbih0KXtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBpKHQpfSxTYWZlQnVmZmVyLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbih0KXtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBuLlNsb3dCdWZmZXIodCl9fSwyODc1Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cigzMDQ1KSxpPXIoMzc2KTt0LmV4cG9ydHM9T2JqZWN0LmtleXN8fGZ1bmN0aW9uIGtleXModCl7cmV0dXJuIG4odCxpKX19LDI4OTA6KHQsZSxyKT0+e3ZhciBuPXIoNjY5OCksaT1yKDgwMTEpLG89cigyODYxKS5CdWZmZXIsYT1bMTExNjM1MjQwOCwzNjA5NzY3NDU4LDE4OTk0NDc0NDEsNjAyODkxNzI1LDMwNDkzMjM0NzEsMzk2NDQ4NDM5OSwzOTIxMDA5NTczLDIxNzMyOTU1NDgsOTYxOTg3MTYzLDQwODE2Mjg0NzIsMTUwODk3MDk5MywzMDUzODM0MjY1LDI0NTM2MzU3NDgsMjkzNzY3MTU3OSwyODcwNzYzMjIxLDM2NjQ2MDk1NjAsMzYyNDM4MTA4MCwyNzM0ODgzMzk0LDMxMDU5ODQwMSwxMTY0OTk2NTQyLDYwNzIyNTI3OCwxMzIzNjEwNzY0LDE0MjY4ODE5ODcsMzU5MDMwNDk5NCwxOTI1MDc4Mzg4LDQwNjgxODIzODMsMjE2MjA3ODIwNiw5OTEzMzYxMTMsMjYxNDg4ODEwMyw2MzM4MDMzMTcsMzI0ODIyMjU4MCwzNDc5Nzc0ODY4LDM4MzUzOTA0MDEsMjY2NjYxMzQ1OCw0MDIyMjI0Nzc0LDk0NDcxMTEzOSwyNjQzNDcwNzgsMjM0MTI2Mjc3Myw2MDQ4MDc2MjgsMjAwNzgwMDkzMyw3NzAyNTU5ODMsMTQ5NTk5MDkwMSwxMjQ5MTUwMTIyLDE4NTY0MzEyMzUsMTU1NTA4MTY5MiwzMTc1MjE4MTMyLDE5OTYwNjQ5ODYsMjE5ODk1MDgzNywyNTU0MjIwODgyLDM5OTk3MTkzMzksMjgyMTgzNDM0OSw3NjY3ODQwMTYsMjk1Mjk5NjgwOCwyNTY2NTk0ODc5LDMyMTAzMTM2NzEsMzIwMzMzNzk1NiwzMzM2NTcxODkxLDEwMzQ0NTcwMjYsMzU4NDUyODcxMSwyNDY2OTQ4OTAxLDExMzkyNjk5MywzNzU4MzI2MzgzLDMzODI0MTg5NSwxNjg3MTc5MzYsNjY2MzA3MjA1LDExODgxNzk5NjQsNzczNTI5OTEyLDE1NDYwNDU3MzQsMTI5NDc1NzM3MiwxNTIyODA1NDg1LDEzOTYxODIyOTEsMjY0MzgzMzgyMywxNjk1MTgzNzAwLDIzNDM1MjczOTAsMTk4NjY2MTA1MSwxMDE0NDc3NDgwLDIxNzcwMjYzNTAsMTIwNjc1OTE0MiwyNDU2OTU2MDM3LDM0NDA3NzYyNywyNzMwNDg1OTIxLDEyOTA4NjM0NjAsMjgyMDMwMjQxMSwzMTU4NDU0MjczLDMyNTk3MzA4MDAsMzUwNTk1MjY1NywzMzQ1NzY0NzcxLDEwNjIxNzAwOCwzNTE2MDY1ODE3LDM2MDYwMDgzNDQsMzYwMDM1MjgwNCwxNDMyNzI1Nzc2LDQwOTQ1NzE5MDksMTQ2NzAzMTU5NCwyNzU0MjMzNDQsODUxMTY5NzIwLDQzMDIyNzczNCwzMTAwODIzNzUyLDUwNjk0ODYxNiwxMzYzMjU4MTk1LDY1OTA2MDU1NiwzNzUwNjg1NTkzLDg4Mzk5Nzg3NywzNzg1MDUwMjgwLDk1ODEzOTU3MSwzMzE4MzA3NDI3LDEzMjI4MjIyMTgsMzgxMjcyMzQwMywxNTM3MDAyMDYzLDIwMDMwMzQ5OTUsMTc0Nzg3Mzc3OSwzNjAyMDM2ODk5LDE5NTU1NjIyMjIsMTU3NTk5MDAxMiwyMDI0MTA0ODE1LDExMjU1OTI5MjgsMjIyNzczMDQ1MiwyNzE2OTA0MzA2LDIzNjE4NTI0MjQsNDQyNzc2MDQ0LDI0Mjg0MzY0NzQsNTkzNjk4MzQ0LDI3NTY3MzQxODcsMzczMzExMDI0OSwzMjA0MDMxNDc5LDI5OTkzNTE1NzMsMzMyOTMyNTI5OCwzODE1OTIwNDI3LDMzOTE1Njk2MTQsMzkyODM4MzkwMCwzNTE1MjY3MjcxLDU2NjI4MDcxMSwzOTQwMTg3NjA2LDM0NTQwNjk1MzQsNDExODYzMDI3MSw0MDAwMjM5OTkyLDExNjQxODQ3NCwxOTE0MTM4NTU0LDE3NDI5MjQyMSwyNzMxMDU1MjcwLDI4OTM4MDM1NiwzMjAzOTkzMDA2LDQ2MDM5MzI2OSwzMjA2MjAzMTUsNjg1NDcxNzMzLDU4NzQ5NjgzNiw4NTIxNDI5NzEsMTA4Njc5Mjg1MSwxMDE3MDM2Mjk4LDM2NTU0MzEwMCwxMTI2MDAwNTgwLDI2MTgyOTc2NzYsMTI4ODAzMzQ3MCwzNDA5ODU1MTU4LDE1MDE1MDU5NDgsNDIzNDUwOTg2NiwxNjA3MTY3OTE1LDk4NzE2NzQ2OCwxODE2NDAyMzE2LDEyNDYxODk1OTFdLHM9bmV3IEFycmF5KDE2MCk7ZnVuY3Rpb24gU2hhNTEyKCl7dGhpcy5pbml0KCksdGhpcy5fdz1zLGkuY2FsbCh0aGlzLDEyOCwxMTIpfWZ1bmN0aW9uIENoKHQsZSxyKXtyZXR1cm4gcl50JihlXnIpfWZ1bmN0aW9uIG1haih0LGUscil7cmV0dXJuIHQmZXxyJih0fGUpfWZ1bmN0aW9uIHNpZ21hMCh0LGUpe3JldHVybih0Pj4+Mjh8ZTw8NCleKGU+Pj4yfHQ8PDMwKV4oZT4+Pjd8dDw8MjUpfWZ1bmN0aW9uIHNpZ21hMSh0LGUpe3JldHVybih0Pj4+MTR8ZTw8MTgpXih0Pj4+MTh8ZTw8MTQpXihlPj4+OXx0PDwyMyl9ZnVuY3Rpb24gR2FtbWEwKHQsZSl7cmV0dXJuKHQ+Pj4xfGU8PDMxKV4odD4+Pjh8ZTw8MjQpXnQ+Pj43fWZ1bmN0aW9uIEdhbW1hMGwodCxlKXtyZXR1cm4odD4+PjF8ZTw8MzEpXih0Pj4+OHxlPDwyNCleKHQ+Pj43fGU8PDI1KX1mdW5jdGlvbiBHYW1tYTEodCxlKXtyZXR1cm4odD4+PjE5fGU8PDEzKV4oZT4+PjI5fHQ8PDMpXnQ+Pj42fWZ1bmN0aW9uIEdhbW1hMWwodCxlKXtyZXR1cm4odD4+PjE5fGU8PDEzKV4oZT4+PjI5fHQ8PDMpXih0Pj4+NnxlPDwyNil9ZnVuY3Rpb24gZ2V0Q2FycnkodCxlKXtyZXR1cm4gdD4+PjA8ZT4+PjA/MTowfW4oU2hhNTEyLGkpLFNoYTUxMi5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9haD0xNzc5MDMzNzAzLHRoaXMuX2JoPTMxNDQxMzQyNzcsdGhpcy5fY2g9MTAxMzkwNDI0Mix0aGlzLl9kaD0yNzczNDgwNzYyLHRoaXMuX2VoPTEzNTk4OTMxMTksdGhpcy5fZmg9MjYwMDgyMjkyNCx0aGlzLl9naD01Mjg3MzQ2MzUsdGhpcy5faGg9MTU0MTQ1OTIyNSx0aGlzLl9hbD00MDg5MjM1NzIwLHRoaXMuX2JsPTIyMjc4NzM1OTUsdGhpcy5fY2w9NDI3MTE3NTcyMyx0aGlzLl9kbD0xNTk1NzUwMTI5LHRoaXMuX2VsPTI5MTc1NjUxMzcsdGhpcy5fZmw9NzI1NTExMTk5LHRoaXMuX2dsPTQyMTUzODk1NDcsdGhpcy5faGw9MzI3MDMzMjA5LHRoaXN9LFNoYTUxMi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5fdyxyPTB8dGhpcy5fYWgsbj0wfHRoaXMuX2JoLGk9MHx0aGlzLl9jaCxvPTB8dGhpcy5fZGgscz0wfHRoaXMuX2VoLHU9MHx0aGlzLl9maCxjPTB8dGhpcy5fZ2gsZj0wfHRoaXMuX2hoLGw9MHx0aGlzLl9hbCxoPTB8dGhpcy5fYmwscD0wfHRoaXMuX2NsLGQ9MHx0aGlzLl9kbCxfPTB8dGhpcy5fZWwseT0wfHRoaXMuX2ZsLG09MHx0aGlzLl9nbCxnPTB8dGhpcy5faGwsdj0wO3Y8MzI7dis9MillW3ZdPXQucmVhZEludDMyQkUoNCp2KSxlW3YrMV09dC5yZWFkSW50MzJCRSg0KnYrNCk7Zm9yKDt2PDE2MDt2Kz0yKXt2YXIgYj1lW3YtMzBdLHc9ZVt2LTMwKzFdLEk9R2FtbWEwKGIsdykseD1HYW1tYTBsKHcsYiksQj1HYW1tYTEoYj1lW3YtNF0sdz1lW3YtNCsxXSksaz1HYW1tYTFsKHcsYiksQz1lW3YtMTRdLHE9ZVt2LTE0KzFdLEw9ZVt2LTMyXSxqPWVbdi0zMisxXSx6PXgrcXwwLFA9SStDK2dldENhcnJ5KHoseCl8MDtQPShQPVArQitnZXRDYXJyeSh6PXora3wwLGspfDApK0wrZ2V0Q2Fycnkoej16K2p8MCxqKXwwLGVbdl09UCxlW3YrMV09en1mb3IodmFyIEQ9MDtEPDE2MDtEKz0yKXtQPWVbRF0sej1lW0QrMV07dmFyIFU9bWFqKHIsbixpKSxXPW1haihsLGgscCksVj1zaWdtYTAocixsKSxLPXNpZ21hMChsLHIpLCQ9c2lnbWExKHMsXyksSD1zaWdtYTEoXyxzKSxZPWFbRF0sWj1hW0QrMV0sSj1DaChzLHUsYyksdHQ9Q2goXyx5LG0pLGV0PWcrSHwwLHJ0PWYrJCtnZXRDYXJyeShldCxnKXwwO3J0PShydD0ocnQ9cnQrSitnZXRDYXJyeShldD1ldCt0dHwwLHR0KXwwKStZK2dldENhcnJ5KGV0PWV0K1p8MCxaKXwwKStQK2dldENhcnJ5KGV0PWV0K3p8MCx6KXwwO3ZhciBudD1LK1d8MCxpdD1WK1UrZ2V0Q2FycnkobnQsSyl8MDtmPWMsZz1tLGM9dSxtPXksdT1zLHk9XyxzPW8rcnQrZ2V0Q2FycnkoXz1kK2V0fDAsZCl8MCxvPWksZD1wLGk9bixwPWgsbj1yLGg9bCxyPXJ0K2l0K2dldENhcnJ5KGw9ZXQrbnR8MCxldCl8MH10aGlzLl9hbD10aGlzLl9hbCtsfDAsdGhpcy5fYmw9dGhpcy5fYmwraHwwLHRoaXMuX2NsPXRoaXMuX2NsK3B8MCx0aGlzLl9kbD10aGlzLl9kbCtkfDAsdGhpcy5fZWw9dGhpcy5fZWwrX3wwLHRoaXMuX2ZsPXRoaXMuX2ZsK3l8MCx0aGlzLl9nbD10aGlzLl9nbCttfDAsdGhpcy5faGw9dGhpcy5faGwrZ3wwLHRoaXMuX2FoPXRoaXMuX2FoK3IrZ2V0Q2FycnkodGhpcy5fYWwsbCl8MCx0aGlzLl9iaD10aGlzLl9iaCtuK2dldENhcnJ5KHRoaXMuX2JsLGgpfDAsdGhpcy5fY2g9dGhpcy5fY2graStnZXRDYXJyeSh0aGlzLl9jbCxwKXwwLHRoaXMuX2RoPXRoaXMuX2RoK28rZ2V0Q2FycnkodGhpcy5fZGwsZCl8MCx0aGlzLl9laD10aGlzLl9laCtzK2dldENhcnJ5KHRoaXMuX2VsLF8pfDAsdGhpcy5fZmg9dGhpcy5fZmgrdStnZXRDYXJyeSh0aGlzLl9mbCx5KXwwLHRoaXMuX2doPXRoaXMuX2doK2MrZ2V0Q2FycnkodGhpcy5fZ2wsbSl8MCx0aGlzLl9oaD10aGlzLl9oaCtmK2dldENhcnJ5KHRoaXMuX2hsLGcpfDB9LFNoYTUxMi5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgdD1vLmFsbG9jVW5zYWZlKDY0KTtmdW5jdGlvbiB3cml0ZUludDY0QkUoZSxyLG4pe3Qud3JpdGVJbnQzMkJFKGUsbiksdC53cml0ZUludDMyQkUocixuKzQpfXJldHVybiB3cml0ZUludDY0QkUodGhpcy5fYWgsdGhpcy5fYWwsMCksd3JpdGVJbnQ2NEJFKHRoaXMuX2JoLHRoaXMuX2JsLDgpLHdyaXRlSW50NjRCRSh0aGlzLl9jaCx0aGlzLl9jbCwxNiksd3JpdGVJbnQ2NEJFKHRoaXMuX2RoLHRoaXMuX2RsLDI0KSx3cml0ZUludDY0QkUodGhpcy5fZWgsdGhpcy5fZWwsMzIpLHdyaXRlSW50NjRCRSh0aGlzLl9maCx0aGlzLl9mbCw0MCksd3JpdGVJbnQ2NEJFKHRoaXMuX2doLHRoaXMuX2dsLDQ4KSx3cml0ZUludDY0QkUodGhpcy5faGgsdGhpcy5faGwsNTYpLHR9LHQuZXhwb3J0cz1TaGE1MTJ9LDI5NDk6KHQsZSxyKT0+e3ZhciBuPXIoMjY1MSk7dC5leHBvcnRzPWZ1bmN0aW9uIG1hcENhY2hlU2V0KHQsZSl7dmFyIHI9bih0aGlzLHQpLGk9ci5zaXplO3JldHVybiByLnNldCh0LGUpLHRoaXMuc2l6ZSs9ci5zaXplPT1pPzA6MSx0aGlzfX0sMzAzNDoodCxlLHIpPT57InVzZSBzdHJpY3QiO3ZhciBuPXIoODI4MCksaT1yKDI1NjcpLG89RnVuY3Rpb24ucHJvdG90eXBlO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LmJpbmQ7cmV0dXJuIHQ9PT1vfHxuKG8sdCkmJmU9PT1vLmJpbmQ/aTplfX0sMzA0MDoodCxlLHIpPT57dmFyIG49cigxNTQ5KSxpPXIoNzkpLG89cig4MjIzKTt0LmV4cG9ydHM9ZnVuY3Rpb24gbWFwQ2FjaGVDbGVhcigpe3RoaXMuc2l6ZT0wLHRoaXMuX19kYXRhX189e2hhc2g6bmV3IG4sbWFwOm5ldyhvfHxpKSxzdHJpbmc6bmV3IG59fX0sMzA0NToodCxlLHIpPT57InVzZSBzdHJpY3QiO3ZhciBuPXIoMTkwNyksaT1yKDk3MjQpLG89cig3Mzc0KSxhPXIoNDQzNikuaW5kZXhPZixzPXIoODUzMCksdT1uKFtdLnB1c2gpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLG49byh0KSxjPTAsZj1bXTtmb3IociBpbiBuKSFpKHMscikmJmkobixyKSYmdShmLHIpO2Zvcig7ZS5sZW5ndGg+YzspaShuLHI9ZVtjKytdKSYmKH5hKGYscil8fHUoZixyKSk7cmV0dXJuIGZ9fSwzMTIxOih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cig1NDgyKSxpPU1hdGgubWluO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1uKHQpO3JldHVybiBlPjA/aShlLDkwMDcxOTkyNTQ3NDA5OTEpOjB9fSwzMjA5Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cig1NjA2KSxpPTY1NTM2LG89NDI5NDk2NzI5NTt2YXIgYT1yKDI4NjEpLkJ1ZmZlcixzPXIuZy5jcnlwdG98fHIuZy5tc0NyeXB0bztzJiZzLmdldFJhbmRvbVZhbHVlcz90LmV4cG9ydHM9ZnVuY3Rpb24gcmFuZG9tQnl0ZXModCxlKXtpZih0Pm8pdGhyb3cgbmV3IFJhbmdlRXJyb3IoInJlcXVlc3RlZCB0b28gbWFueSByYW5kb20gYnl0ZXMiKTt2YXIgcj1hLmFsbG9jVW5zYWZlKHQpO2lmKHQ+MClpZih0PmkpZm9yKHZhciB1PTA7dTx0O3UrPWkpcy5nZXRSYW5kb21WYWx1ZXMoci5zbGljZSh1LHUraSkpO2Vsc2Ugcy5nZXRSYW5kb21WYWx1ZXMocik7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUpcmV0dXJuIG4ubmV4dFRpY2soKGZ1bmN0aW9uKCl7ZShudWxsLHIpfSkpO3JldHVybiByfTp0LmV4cG9ydHM9ZnVuY3Rpb24gb2xkQnJvd3Nlcigpe3Rocm93IG5ldyBFcnJvcigiU2VjdXJlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnJvd3Nlci5cblVzZSBDaHJvbWUsIEZpcmVmb3ggb3IgSW50ZXJuZXQgRXhwbG9yZXIgMTEiKX19LDMyMjE6dD0+e3QuZXhwb3J0cz1mdW5jdGlvbiBjcmVhdGVCYXNlRm9yKHQpe3JldHVybiBmdW5jdGlvbihlLHIsbil7Zm9yKHZhciBpPS0xLG89T2JqZWN0KGUpLGE9bihlKSxzPWEubGVuZ3RoO3MtLTspe3ZhciB1PWFbdD9zOisraV07aWYoITE9PT1yKG9bdV0sdSxvKSlicmVha31yZXR1cm4gZX19fSwzMjIyOih0LGUscik9Pnt2YXIgbj1yKDc1NTYpO3QuZXhwb3J0cz1mdW5jdGlvbiB0b1N0cmluZyh0KXtyZXR1cm4gbnVsbD09dD8iIjpuKHQpfX0sMzI0MzoodCxlLHIpPT57dmFyIG49cig2MTEwKSxpPWZ1bmN0aW9uKCl7dHJ5e3ZhciB0PW4oT2JqZWN0LCJkZWZpbmVQcm9wZXJ0eSIpO3JldHVybiB0KHt9LCIiLHt9KSx0fWNhdGNoKHQpe319KCk7dC5leHBvcnRzPWl9LDMzNDU6dD0+e3QuZXhwb3J0cz1mdW5jdGlvbiBzdHViQXJyYXkoKXtyZXR1cm5bXX19LDMzNjA6KHQsZSxyKT0+e3ZhciBuPXIoMzI0Myk7dC5leHBvcnRzPWZ1bmN0aW9uIGJhc2VBc3NpZ25WYWx1ZSh0LGUscil7Il9fcHJvdG9fXyI9PWUmJm4/bih0LGUse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOnIsd3JpdGFibGU6ITB9KTp0W2VdPXJ9fSwzMzc1Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cigzNzAwKTt0LmV4cG9ydHM9bn0sMzQyNzoodCxlLHIpPT57InVzZSBzdHJpY3QiO3ZhciBuPXIoMTkwNyk7dC5leHBvcnRzPW4oW10uc2xpY2UpfSwzNDg4OnQ9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24gaWRlbnRpdHkodCl7cmV0dXJuIHR9fSwzNTU2Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cig5ODQ2KTt0LmV4cG9ydHM9biYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcn0sMzYwNTp0PT57dC5leHBvcnRzPWZ1bmN0aW9uIHN0YWNrR2V0KHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmdldCh0KX19LDM2NDg6KHQsZSxyKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDk0NDcpLGk9cig4ODI4KSxvPXIoOTU1Mik7dC5leHBvcnRzPSFuJiYhaSgoZnVuY3Rpb24oKXtyZXR1cm4gNyE9PU9iamVjdC5kZWZpbmVQcm9wZXJ0eShvKCJkaXYiKSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pLmF9KSl9LDM2NTA6KHQsZSxyKT0+e3ZhciBuPXIoNDMzNSkoT2JqZWN0LmtleXMsT2JqZWN0KTt0LmV4cG9ydHM9bn0sMzY1NjoodCxlLHIpPT57dD1yLm5tZCh0KTt2YXIgbj1yKDkzMjUpLGk9cig5OTM1KSxvPWUmJiFlLm5vZGVUeXBlJiZlLGE9byYmdCYmIXQubm9kZVR5cGUmJnQscz1hJiZhLmV4cG9ydHM9PT1vP24uQnVmZmVyOnZvaWQgMCx1PShzP3MuaXNCdWZmZXI6dm9pZCAwKXx8aTt0LmV4cG9ydHM9dX0sMzY2MToodCxlLHIpPT57dmFyIG49cigzMDQwKSxpPXIoNzY3MCksbz1yKDI4OSksYT1yKDQ1MDkpLHM9cigyOTQ5KTtmdW5jdGlvbiBNYXBDYWNoZSh0KXt2YXIgZT0tMSxyPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxyOyl7dmFyIG49dFtlXTt0aGlzLnNldChuWzBdLG5bMV0pfX1NYXBDYWNoZS5wcm90b3R5cGUuY2xlYXI9bixNYXBDYWNoZS5wcm90b3R5cGUuZGVsZXRlPWksTWFwQ2FjaGUucHJvdG90eXBlLmdldD1vLE1hcENhY2hlLnByb3RvdHlwZS5oYXM9YSxNYXBDYWNoZS5wcm90b3R5cGUuc2V0PXMsdC5leHBvcnRzPU1hcENhY2hlfSwzNjYzOih0LGUscik9Pnt2YXIgbj1yKDE3OTkpLGk9cig3NzYpLG89cig3MTk3KTt0LmV4cG9ydHM9ZnVuY3Rpb24gYmFzZU1hdGNoZXModCl7dmFyIGU9aSh0KTtyZXR1cm4gMT09ZS5sZW5ndGgmJmVbMF1bMl0/byhlWzBdWzBdLGVbMF1bMV0pOmZ1bmN0aW9uKHIpe3JldHVybiByPT09dHx8bihyLHQsZSl9fX0sMzcwMDoodCxlLHIpPT57InVzZSBzdHJpY3QiO3ZhciBuPXIoOTcwOSk7dC5leHBvcnRzPW59LDM3MDI6dD0+e3QuZXhwb3J0cz1mdW5jdGlvbiBsaXN0Q2FjaGVDbGVhcigpe3RoaXMuX19kYXRhX189W10sdGhpcy5zaXplPTB9fSwzNzM3Oih0LGUscik9Pnt2YXIgbj1yKDY2OTgpLGk9cig4MDExKSxvPXIoMjg2MSkuQnVmZmVyLGE9WzE1MTg1MDAyNDksMTg1OTc3NTM5MywtMTg5NDAwNzU4OCwtODk5NDk3NTE0XSxzPW5ldyBBcnJheSg4MCk7ZnVuY3Rpb24gU2hhMSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9cyxpLmNhbGwodGhpcyw2NCw1Nil9ZnVuY3Rpb24gcm90bDUodCl7cmV0dXJuIHQ8PDV8dD4+PjI3fWZ1bmN0aW9uIHJvdGwzMCh0KXtyZXR1cm4gdDw8MzB8dD4+PjJ9ZnVuY3Rpb24gZnQodCxlLHIsbil7cmV0dXJuIDA9PT10P2Umcnx+ZSZuOjI9PT10P2UmcnxlJm58ciZuOmVecl5ufW4oU2hhMSxpKSxTaGExLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4LHRoaXMuX2U9MzI4NTM3NzUyMCx0aGlzfSxTaGExLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPXRoaXMuX3csbj0wfHRoaXMuX2EsaT0wfHRoaXMuX2Isbz0wfHRoaXMuX2Mscz0wfHRoaXMuX2QsdT0wfHRoaXMuX2UsYz0wO2M8MTY7KytjKXJbY109dC5yZWFkSW50MzJCRSg0KmMpO2Zvcig7Yzw4MDsrK2MpcltjXT0oZT1yW2MtM11ecltjLThdXnJbYy0xNF1ecltjLTE2XSk8PDF8ZT4+PjMxO2Zvcih2YXIgZj0wO2Y8ODA7KytmKXt2YXIgbD1+fihmLzIwKSxoPXJvdGw1KG4pK2Z0KGwsaSxvLHMpK3UrcltmXSthW2xdfDA7dT1zLHM9byxvPXJvdGwzMChpKSxpPW4sbj1ofXRoaXMuX2E9bit0aGlzLl9hfDAsdGhpcy5fYj1pK3RoaXMuX2J8MCx0aGlzLl9jPW8rdGhpcy5fY3wwLHRoaXMuX2Q9cyt0aGlzLl9kfDAsdGhpcy5fZT11K3RoaXMuX2V8MH0sU2hhMS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgdD1vLmFsbG9jVW5zYWZlKDIwKTtyZXR1cm4gdC53cml0ZUludDMyQkUoMHx0aGlzLl9hLDApLHQud3JpdGVJbnQzMkJFKDB8dGhpcy5fYiw0KSx0LndyaXRlSW50MzJCRSgwfHRoaXMuX2MsOCksdC53cml0ZUludDMyQkUoMHx0aGlzLl9kLDEyKSx0LndyaXRlSW50MzJCRSgwfHRoaXMuX2UsMTYpLHR9LHQuZXhwb3J0cz1TaGExfSwzODA1OnQ9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24gaXNPYmplY3QodCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIG51bGwhPXQmJigib2JqZWN0Ij09ZXx8ImZ1bmN0aW9uIj09ZSl9fSwzODQ2Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cig5NDQ3KSxpPXIoMzkzMCksbz1yKDI1NzQpLGE9cig1ODE3KSxzPXIoNzM3NCksdT1yKDQ3MCksYz1yKDk3MjQpLGY9cigzNjQ4KSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7ZS5mPW4/bDpmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKXtpZih0PXModCksZT11KGUpLGYpdHJ5e3JldHVybiBsKHQsZSl9Y2F0Y2godCl7fWlmKGModCxlKSlyZXR1cm4gYSghaShvLmYsdCxlKSx0W2VdKX19LDM4NjI6dD0+e3QuZXhwb3J0cz1mdW5jdGlvbiBoYXNoRGVsZXRlKHQpe3ZhciBlPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1lPzE6MCxlfX0sMzkxMjoodCxlLHIpPT57dmFyIG49cigxMDc0KSxpPXIoOTY5OCksbz1yKDIwNTQpO3QuZXhwb3J0cz1mdW5jdGlvbiBzdHJpbmdUb0FycmF5KHQpe3JldHVybiBpKHQpP28odCk6bih0KX19LDM5MzA6KHQsZSxyKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDE1MDUpLGk9RnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7dC5leHBvcnRzPW4/aS5iaW5kKGkpOmZ1bmN0aW9uKCl7cmV0dXJuIGkuYXBwbHkoaSxhcmd1bWVudHMpfX0sNDA1ODoodCxlLHIpPT57dmFyIG49cig0NzkyKSxpPXIoNTUzOSkoKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZT1lLnRvTG93ZXJDYXNlKCksdCsocj9uKGUpOmUpfSkpO3QuZXhwb3J0cz1pfSw0MTA3Oih0LGUscik9Pnt2YXIgbj1yKDY2OTgpLGk9cig4MDExKSxvPXIoMjg2MSkuQnVmZmVyLGE9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF0scz1uZXcgQXJyYXkoNjQpO2Z1bmN0aW9uIFNoYTI1Nigpe3RoaXMuaW5pdCgpLHRoaXMuX3c9cyxpLmNhbGwodGhpcyw2NCw1Nil9ZnVuY3Rpb24gY2godCxlLHIpe3JldHVybiByXnQmKGVecil9ZnVuY3Rpb24gbWFqKHQsZSxyKXtyZXR1cm4gdCZlfHImKHR8ZSl9ZnVuY3Rpb24gc2lnbWEwKHQpe3JldHVybih0Pj4+Mnx0PDwzMCleKHQ+Pj4xM3x0PDwxOSleKHQ+Pj4yMnx0PDwxMCl9ZnVuY3Rpb24gc2lnbWExKHQpe3JldHVybih0Pj4+Nnx0PDwyNileKHQ+Pj4xMXx0PDwyMSleKHQ+Pj4yNXx0PDw3KX1mdW5jdGlvbiBnYW1tYTAodCl7cmV0dXJuKHQ+Pj43fHQ8PDI1KV4odD4+PjE4fHQ8PDE0KV50Pj4+M31uKFNoYTI1NixpKSxTaGEyNTYucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzc5MDMzNzAzLHRoaXMuX2I9MzE0NDEzNDI3Nyx0aGlzLl9jPTEwMTM5MDQyNDIsdGhpcy5fZD0yNzczNDgwNzYyLHRoaXMuX2U9MTM1OTg5MzExOSx0aGlzLl9mPTI2MDA4MjI5MjQsdGhpcy5fZz01Mjg3MzQ2MzUsdGhpcy5faD0xNTQxNDU5MjI1LHRoaXN9LFNoYTI1Ni5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0KXtmb3IodmFyIGUscj10aGlzLl93LG49MHx0aGlzLl9hLGk9MHx0aGlzLl9iLG89MHx0aGlzLl9jLHM9MHx0aGlzLl9kLHU9MHx0aGlzLl9lLGM9MHx0aGlzLl9mLGY9MHx0aGlzLl9nLGw9MHx0aGlzLl9oLGg9MDtoPDE2OysraClyW2hdPXQucmVhZEludDMyQkUoNCpoKTtmb3IoO2g8NjQ7KytoKXJbaF09MHwoKChlPXJbaC0yXSk+Pj4xN3xlPDwxNSleKGU+Pj4xOXxlPDwxMyleZT4+PjEwKStyW2gtN10rZ2FtbWEwKHJbaC0xNV0pK3JbaC0xNl07Zm9yKHZhciBwPTA7cDw2NDsrK3Ape3ZhciBkPWwrc2lnbWExKHUpK2NoKHUsYyxmKSthW3BdK3JbcF18MCxfPXNpZ21hMChuKSttYWoobixpLG8pfDA7bD1mLGY9YyxjPXUsdT1zK2R8MCxzPW8sbz1pLGk9bixuPWQrX3wwfXRoaXMuX2E9bit0aGlzLl9hfDAsdGhpcy5fYj1pK3RoaXMuX2J8MCx0aGlzLl9jPW8rdGhpcy5fY3wwLHRoaXMuX2Q9cyt0aGlzLl9kfDAsdGhpcy5fZT11K3RoaXMuX2V8MCx0aGlzLl9mPWMrdGhpcy5fZnwwLHRoaXMuX2c9Zit0aGlzLl9nfDAsdGhpcy5faD1sK3RoaXMuX2h8MH0sU2hhMjU2LnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciB0PW8uYWxsb2NVbnNhZmUoMzIpO3JldHVybiB0LndyaXRlSW50MzJCRSh0aGlzLl9hLDApLHQud3JpdGVJbnQzMkJFKHRoaXMuX2IsNCksdC53cml0ZUludDMyQkUodGhpcy5fYyw4KSx0LndyaXRlSW50MzJCRSh0aGlzLl9kLDEyKSx0LndyaXRlSW50MzJCRSh0aGlzLl9lLDE2KSx0LndyaXRlSW50MzJCRSh0aGlzLl9mLDIwKSx0LndyaXRlSW50MzJCRSh0aGlzLl9nLDI0KSx0LndyaXRlSW50MzJCRSh0aGlzLl9oLDI4KSx0fSx0LmV4cG9ydHM9U2hhMjU2fSw0MTI4Oih0LGUscik9Pnt2YXIgbj1yKDE4MDApLGk9L15ccysvO3QuZXhwb3J0cz1mdW5jdGlvbiBiYXNlVHJpbSh0KXtyZXR1cm4gdD90LnNsaWNlKDAsbih0KSsxKS5yZXBsYWNlKGksIiIpOnR9fSw0MjE4OnQ9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24gaXNLZXlhYmxlKHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiJzdHJpbmciPT1lfHwibnVtYmVyIj09ZXx8InN5bWJvbCI9PWV8fCJib29sZWFuIj09ZT8iX19wcm90b19fIiE9PXQ6bnVsbD09PXR9fSw0MjM5Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cig3MTM2KSxpPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYobih0KSl0aHJvdyBuZXcgaSgiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIit0KTtyZXR1cm4gdH19LDQyNDc6dD0+e3QuZXhwb3J0cz1mdW5jdGlvbiBzZXRUb0FycmF5KHQpe3ZhciBlPS0xLHI9QXJyYXkodC5zaXplKTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtyWysrZV09dH0pKSxyfX0sNDI0ODp0PT57dC5leHBvcnRzPWZ1bmN0aW9uIGFycmF5U29tZSh0LGUpe2Zvcih2YXIgcj0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDsrK3I8bjspaWYoZSh0W3JdLHIsdCkpcmV0dXJuITA7cmV0dXJuITF9fSw0Mjg0Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cig5NDQ3KSxpPXIoMzY0OCksbz1yKDg2NjEpLGE9cig2NjI0KSxzPXIoNDcwKSx1PVR5cGVFcnJvcixjPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsbD0iZW51bWVyYWJsZSIsaD0iY29uZmlndXJhYmxlIixwPSJ3cml0YWJsZSI7ZS5mPW4/bz9mdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eSh0LGUscil7aWYoYSh0KSxlPXMoZSksYShyKSwiZnVuY3Rpb24iPT10eXBlb2YgdCYmInByb3RvdHlwZSI9PT1lJiYidmFsdWUiaW4gciYmcCBpbiByJiYhcltwXSl7dmFyIG49Zih0LGUpO24mJm5bcF0mJih0W2VdPXIudmFsdWUscj17Y29uZmlndXJhYmxlOmggaW4gcj9yW2hdOm5baF0sZW51bWVyYWJsZTpsIGluIHI/cltsXTpuW2xdLHdyaXRhYmxlOiExfSl9cmV0dXJuIGModCxlLHIpfTpjOmZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KHQsZSxyKXtpZihhKHQpLGU9cyhlKSxhKHIpLGkpdHJ5e3JldHVybiBjKHQsZSxyKX1jYXRjaCh0KXt9aWYoImdldCJpbiByfHwic2V0ImluIHIpdGhyb3cgbmV3IHUoIkFjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIik7cmV0dXJuInZhbHVlImluIHImJih0W2VdPXIudmFsdWUpLHR9fSw0MzM1OnQ9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24gb3ZlckFyZyh0LGUpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gdChlKHIpKX19fSw0Mzk0Oih0LGUscik9Pnt2YXIgbj1yKDI1NTIpLGk9cigzNDYpO3QuZXhwb3J0cz1mdW5jdGlvbiBpc1N5bWJvbCh0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR8fGkodCkmJiJbb2JqZWN0IFN5bWJvbF0iPT1uKHQpfX0sNDQzNjoodCxlLHIpPT57InVzZSBzdHJpY3QiO3ZhciBuPXIoNzM3NCksaT1yKDQ4NDkpLG89cig1NzUpLGNyZWF0ZU1ldGhvZD1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyLGEpe3ZhciBzPW4oZSksdT1vKHMpO2lmKDA9PT11KXJldHVybiF0JiYtMTt2YXIgYyxmPWkoYSx1KTtpZih0JiZyIT1yKXtmb3IoO3U+ZjspaWYoKGM9c1tmKytdKSE9YylyZXR1cm4hMH1lbHNlIGZvcig7dT5mO2YrKylpZigodHx8ZiBpbiBzKSYmc1tmXT09PXIpcmV0dXJuIHR8fGZ8fDA7cmV0dXJuIXQmJi0xfX07dC5leHBvcnRzPXtpbmNsdWRlczpjcmVhdGVNZXRob2QoITApLGluZGV4T2Y6Y3JlYXRlTWV0aG9kKCExKX19LDQ1MDk6KHQsZSxyKT0+e3ZhciBuPXIoMjY1MSk7dC5leHBvcnRzPWZ1bmN0aW9uIG1hcENhY2hlSGFzKHQpe3JldHVybiBuKHRoaXMsdCkuaGFzKHQpfX0sNDUyODp0PT57dC5leHBvcnRzPWZ1bmN0aW9uIGFycmF5UHVzaCh0LGUpe2Zvcih2YXIgcj0tMSxuPWUubGVuZ3RoLGk9dC5sZW5ndGg7KytyPG47KXRbaStyXT1lW3JdO3JldHVybiB0fX0sNDU1Mjp0PT57dC5leHBvcnRzPWZ1bmN0aW9uIGJhc2VQcm9wZXJ0eU9mKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09dD92b2lkIDA6dFtlXX19fSw0NjQwOnQ9PnsidXNlIHN0cmljdCI7dmFyIGU9U3RyaW5nO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt0cnl7cmV0dXJuIGUodCl9Y2F0Y2godCl7cmV0dXJuIk9iamVjdCJ9fX0sNDY0NzoodCxlLHIpPT57dmFyIG49cig0NTUyKSh7w4A6IkEiLMOBOiJBIizDgjoiQSIsw4M6IkEiLMOEOiJBIizDhToiQSIsw6A6ImEiLMOhOiJhIizDojoiYSIsw6M6ImEiLMOkOiJhIizDpToiYSIsw4c6IkMiLMOnOiJjIizDkDoiRCIsw7A6ImQiLMOIOiJFIizDiToiRSIsw4o6IkUiLMOLOiJFIizDqDoiZSIsw6k6ImUiLMOqOiJlIizDqzoiZSIsw4w6IkkiLMONOiJJIizDjjoiSSIsw486IkkiLMOsOiJpIizDrToiaSIsw646ImkiLMOvOiJpIizDkToiTiIsw7E6Im4iLMOSOiJPIizDkzoiTyIsw5Q6Ik8iLMOVOiJPIizDljoiTyIsw5g6Ik8iLMOyOiJvIizDszoibyIsw7Q6Im8iLMO1OiJvIizDtjoibyIsw7g6Im8iLMOZOiJVIizDmjoiVSIsw5s6IlUiLMOcOiJVIizDuToidSIsw7o6InUiLMO7OiJ1IizDvDoidSIsw506IlkiLMO9OiJ5IizDvzoieSIsw4Y6IkFlIizDpjoiYWUiLMOeOiJUaCIsw746InRoIizDnzoic3MiLMSAOiJBIizEgjoiQSIsxIQ6IkEiLMSBOiJhIizEgzoiYSIsxIU6ImEiLMSGOiJDIizEiDoiQyIsxIo6IkMiLMSMOiJDIizEhzoiYyIsxIk6ImMiLMSLOiJjIizEjToiYyIsxI46IkQiLMSQOiJEIizEjzoiZCIsxJE6ImQiLMSSOiJFIizElDoiRSIsxJY6IkUiLMSYOiJFIizEmjoiRSIsxJM6ImUiLMSVOiJlIizElzoiZSIsxJk6ImUiLMSbOiJlIizEnDoiRyIsxJ46IkciLMSgOiJHIizEojoiRyIsxJ06ImciLMSfOiJnIizEoToiZyIsxKM6ImciLMSkOiJIIizEpjoiSCIsxKU6ImgiLMSnOiJoIizEqDoiSSIsxKo6IkkiLMSsOiJJIizErjoiSSIsxLA6IkkiLMSpOiJpIizEqzoiaSIsxK06ImkiLMSvOiJpIizEsToiaSIsxLQ6IkoiLMS1OiJqIizEtjoiSyIsxLc6ImsiLMS4OiJrIizEuToiTCIsxLs6IkwiLMS9OiJMIizEvzoiTCIsxYE6IkwiLMS6OiJsIizEvDoibCIsxL46ImwiLMWAOiJsIizFgjoibCIsxYM6Ik4iLMWFOiJOIizFhzoiTiIsxYo6Ik4iLMWEOiJuIizFhjoibiIsxYg6Im4iLMWLOiJuIizFjDoiTyIsxY46Ik8iLMWQOiJPIizFjToibyIsxY86Im8iLMWROiJvIizFlDoiUiIsxZY6IlIiLMWYOiJSIizFlToiciIsxZc6InIiLMWZOiJyIizFmjoiUyIsxZw6IlMiLMWeOiJTIizFoDoiUyIsxZs6InMiLMWdOiJzIizFnzoicyIsxaE6InMiLMWiOiJUIizFpDoiVCIsxaY6IlQiLMWjOiJ0IizFpToidCIsxac6InQiLMWoOiJVIizFqjoiVSIsxaw6IlUiLMWuOiJVIizFsDoiVSIsxbI6IlUiLMWpOiJ1IizFqzoidSIsxa06InUiLMWvOiJ1IizFsToidSIsxbM6InUiLMW0OiJXIizFtToidyIsxbY6IlkiLMW3OiJ5IizFuDoiWSIsxbk6IloiLMW7OiJaIizFvToiWiIsxbo6InoiLMW8OiJ6IizFvjoieiIsxLI6IklKIizEszoiaWoiLMWSOiJPZSIsxZM6Im9lIizFiToiJ24iLMW/OiJzIn0pO3QuZXhwb3J0cz1ufSw0NjY0Oih0LGUscik9Pnt2YXIgbj1yKDk3NzApLGk9cigzMzQ1KSxvPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUsYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLHM9YT9mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9bXToodD1PYmplY3QodCksbihhKHQpLChmdW5jdGlvbihlKXtyZXR1cm4gby5jYWxsKHQsZSl9KSkpfTppO3QuZXhwb3J0cz1zfSw0NjczOih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cigxOTA3KSxpPXIoMjE1OSksbz1yKDYyODUpLGE9cig5NzI0KSxzPXIoMzQyNyksdT1yKDE1MDUpLGM9RnVuY3Rpb24sZj1uKFtdLmNvbmNhdCksbD1uKFtdLmpvaW4pLGg9e307dC5leHBvcnRzPXU/Yy5iaW5kOmZ1bmN0aW9uIGJpbmQodCl7dmFyIGU9aSh0aGlzKSxyPWUucHJvdG90eXBlLG49cyhhcmd1bWVudHMsMSksdT1mdW5jdGlvbiBib3VuZCgpe3ZhciByPWYobixzKGFyZ3VtZW50cykpO3JldHVybiB0aGlzIGluc3RhbmNlb2YgdT9mdW5jdGlvbih0LGUscil7aWYoIWEoaCxlKSl7Zm9yKHZhciBuPVtdLGk9MDtpPGU7aSsrKW5baV09ImFbIitpKyJdIjtoW2VdPWMoIkMsYSIsInJldHVybiBuZXcgQygiK2wobiwiLCIpKyIpIil9cmV0dXJuIGhbZV0odCxyKX0oZSxyLmxlbmd0aCxyKTplLmFwcGx5KHQscil9O3JldHVybiBvKHIpJiYodS5wcm90b3R5cGU9ciksdX19LDQ3MTM6KHQsZSxyKT0+e3ZhciBuPXIoMjUyMyksaT1yKDUzODkpLG89cigxNDg5KSxhPU1hdGgubWF4O3QuZXhwb3J0cz1mdW5jdGlvbiBmaW5kSW5kZXgodCxlLHIpe3ZhciBzPW51bGw9PXQ/MDp0Lmxlbmd0aDtpZighcylyZXR1cm4tMTt2YXIgdT1udWxsPT1yPzA6byhyKTtyZXR1cm4gdTwwJiYodT1hKHMrdSwwKSksbih0LGkoZSwzKSx1KX19LDQ3Mzk6KHQsZSxyKT0+e3ZhciBuPXIoNjAyNSk7dC5leHBvcnRzPWZ1bmN0aW9uIGxpc3RDYWNoZUdldCh0KXt2YXIgZT10aGlzLl9fZGF0YV9fLHI9bihlLHQpO3JldHVybiByPDA/dm9pZCAwOmVbcl1bMV19fSw0NzkyOih0LGUscik9Pnt2YXIgbj1yKDMyMjIpLGk9cig1ODA4KTt0LmV4cG9ydHM9ZnVuY3Rpb24gY2FwaXRhbGl6ZSh0KXtyZXR1cm4gaShuKHQpLnRvTG93ZXJDYXNlKCkpfX0sNDg0MDoodCxlLHIpPT57dmFyIG49Im9iamVjdCI9PXR5cGVvZiByLmcmJnIuZyYmci5nLk9iamVjdD09PU9iamVjdCYmci5nO3QuZXhwb3J0cz1ufSw0ODQ5Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cig1NDgyKSxpPU1hdGgubWF4LG89TWF0aC5taW47dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bih0KTtyZXR1cm4gcjwwP2kocitlLDApOm8ocixlKX19LDQ4NTE6KHQsZSxyKT0+eyJ1c2Ugc3RyaWN0Ijt0LmV4cG9ydHM9cig1NDAxKX0sNDg5NDoodCxlLHIpPT57dmFyIG49cigxODgyKSxpPXIoMjk0KTt0LmV4cG9ydHM9ZnVuY3Rpb24gaXNBcnJheUxpa2UodCl7cmV0dXJuIG51bGwhPXQmJmkodC5sZW5ndGgpJiYhbih0KX19LDQ5MDE6KHQsZSxyKT0+e3ZhciBuPXIoMjU1MiksaT1yKDI5NCksbz1yKDM0NiksYT17fTthWyJbb2JqZWN0IEZsb2F0MzJBcnJheV0iXT1hWyJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXT1hWyJbb2JqZWN0IEludDhBcnJheV0iXT1hWyJbb2JqZWN0IEludDE2QXJyYXldIl09YVsiW29iamVjdCBJbnQzMkFycmF5XSJdPWFbIltvYmplY3QgVWludDhBcnJheV0iXT1hWyJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSJdPWFbIltvYmplY3QgVWludDE2QXJyYXldIl09YVsiW29iamVjdCBVaW50MzJBcnJheV0iXT0hMCxhWyJbb2JqZWN0IEFyZ3VtZW50c10iXT1hWyJbb2JqZWN0IEFycmF5XSJdPWFbIltvYmplY3QgQXJyYXlCdWZmZXJdIl09YVsiW29iamVjdCBCb29sZWFuXSJdPWFbIltvYmplY3QgRGF0YVZpZXddIl09YVsiW29iamVjdCBEYXRlXSJdPWFbIltvYmplY3QgRXJyb3JdIl09YVsiW29iamVjdCBGdW5jdGlvbl0iXT1hWyJbb2JqZWN0IE1hcF0iXT1hWyJbb2JqZWN0IE51bWJlcl0iXT1hWyJbb2JqZWN0IE9iamVjdF0iXT1hWyJbb2JqZWN0IFJlZ0V4cF0iXT1hWyJbb2JqZWN0IFNldF0iXT1hWyJbb2JqZWN0IFN0cmluZ10iXT1hWyJbb2JqZWN0IFdlYWtNYXBdIl09ITEsdC5leHBvcnRzPWZ1bmN0aW9uIGJhc2VJc1R5cGVkQXJyYXkodCl7cmV0dXJuIG8odCkmJmkodC5sZW5ndGgpJiYhIWFbbih0KV19fSw0OTMyOnQ9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24gYXJyYXlNYXAodCxlKXtmb3IodmFyIHI9LTEsbj1udWxsPT10PzA6dC5sZW5ndGgsaT1BcnJheShuKTsrK3I8bjspaVtyXT1lKHRbcl0scix0KTtyZXR1cm4gaX19LDUwODM6KHQsZSxyKT0+e3ZhciBuPXIoMTg4MiksaT1yKDcyOTYpLG89cigzODA1KSxhPXIoNzQ3Mykscz0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyx1PUZ1bmN0aW9uLnByb3RvdHlwZSxjPU9iamVjdC5wcm90b3R5cGUsZj11LnRvU3RyaW5nLGw9Yy5oYXNPd25Qcm9wZXJ0eSxoPVJlZ0V4cCgiXiIrZi5jYWxsKGwpLnJlcGxhY2UoL1tcXF4kLiorPygpW1xde318XS9nLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpO3QuZXhwb3J0cz1mdW5jdGlvbiBiYXNlSXNOYXRpdmUodCl7cmV0dXJuISghbyh0KXx8aSh0KSkmJihuKHQpP2g6cykudGVzdChhKHQpKX19LDUxNjA6dD0+e3QuZXhwb3J0cz1mdW5jdGlvbiBiYXNlU2xpY2UodCxlLHIpe3ZhciBuPS0xLGk9dC5sZW5ndGg7ZTwwJiYoZT0tZT5pPzA6aStlKSwocj1yPmk/aTpyKTwwJiYocis9aSksaT1lPnI/MDpyLWU+Pj4wLGU+Pj49MDtmb3IodmFyIG89QXJyYXkoaSk7KytuPGk7KW9bbl09dFtuK2VdO3JldHVybiBvfX0sNTI4NzoodCxlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1TeW1ib2wuZm9yKCJyZWFjdC5lbGVtZW50Iiksbj1TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKSxpPVN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50Iiksbz1TeW1ib2wuZm9yKCJyZWFjdC5zdHJpY3RfbW9kZSIpLGE9U3ltYm9sLmZvcigicmVhY3QucHJvZmlsZXIiKSxzPVN5bWJvbC5mb3IoInJlYWN0LnByb3ZpZGVyIiksdT1TeW1ib2wuZm9yKCJyZWFjdC5jb250ZXh0IiksYz1TeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIpLGY9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKSxsPVN5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKSxoPVN5bWJvbC5mb3IoInJlYWN0LmxhenkiKSxwPVN5bWJvbC5pdGVyYXRvcjt2YXIgZD17aXNNb3VudGVkOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVNldFN0YXRlOmZ1bmN0aW9uKCl7fX0sXz1PYmplY3QuYXNzaWduLHk9e307ZnVuY3Rpb24gRSh0LGUscil7dGhpcy5wcm9wcz10LHRoaXMuY29udGV4dD1lLHRoaXMucmVmcz15LHRoaXMudXBkYXRlcj1yfHxkfWZ1bmN0aW9uIEYoKXt9ZnVuY3Rpb24gRyh0LGUscil7dGhpcy5wcm9wcz10LHRoaXMuY29udGV4dD1lLHRoaXMucmVmcz15LHRoaXMudXBkYXRlcj1yfHxkfUUucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9e30sRS5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24odCxlKXtpZigib2JqZWN0IiE9dHlwZW9mIHQmJiJmdW5jdGlvbiIhPXR5cGVvZiB0JiZudWxsIT10KXRocm93IEVycm9yKCJzZXRTdGF0ZSguLi4pOiB0YWtlcyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzIHRvIHVwZGF0ZSBvciBhIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcy4iKTt0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsdCxlLCJzZXRTdGF0ZSIpfSxFLnByb3RvdHlwZS5mb3JjZVVwZGF0ZT1mdW5jdGlvbih0KXt0aGlzLnVwZGF0ZXIuZW5xdWV1ZUZvcmNlVXBkYXRlKHRoaXMsdCwiZm9yY2VVcGRhdGUiKX0sRi5wcm90b3R5cGU9RS5wcm90b3R5cGU7dmFyIG09Ry5wcm90b3R5cGU9bmV3IEY7bS5jb25zdHJ1Y3Rvcj1HLF8obSxFLnByb3RvdHlwZSksbS5pc1B1cmVSZWFjdENvbXBvbmVudD0hMDt2YXIgZz1BcnJheS5pc0FycmF5LHY9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxiPXtjdXJyZW50Om51bGx9LHc9e2tleTohMCxyZWY6ITAsX19zZWxmOiEwLF9fc291cmNlOiEwfTtmdW5jdGlvbiBNKHQsZSxuKXt2YXIgaSxvPXt9LGE9bnVsbCxzPW51bGw7aWYobnVsbCE9ZSlmb3IoaSBpbiB2b2lkIDAhPT1lLnJlZiYmKHM9ZS5yZWYpLHZvaWQgMCE9PWUua2V5JiYoYT0iIitlLmtleSksZSl2LmNhbGwoZSxpKSYmIXcuaGFzT3duUHJvcGVydHkoaSkmJihvW2ldPWVbaV0pO3ZhciB1PWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09dSlvLmNoaWxkcmVuPW47ZWxzZSBpZigxPHUpe2Zvcih2YXIgYz1BcnJheSh1KSxmPTA7Zjx1O2YrKyljW2ZdPWFyZ3VtZW50c1tmKzJdO28uY2hpbGRyZW49Y31pZih0JiZ0LmRlZmF1bHRQcm9wcylmb3IoaSBpbiB1PXQuZGVmYXVsdFByb3BzKXZvaWQgMD09PW9baV0mJihvW2ldPXVbaV0pO3JldHVybnskJHR5cGVvZjpyLHR5cGU6dCxrZXk6YSxyZWY6cyxwcm9wczpvLF9vd25lcjpiLmN1cnJlbnR9fWZ1bmN0aW9uIE8odCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dCYmdC4kJHR5cGVvZj09PXJ9dmFyIEk9L1wvKy9nO2Z1bmN0aW9uIFEodCxlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10JiZudWxsIT10LmtleT9mdW5jdGlvbiBlc2NhcGUodCl7dmFyIGU9eyI9IjoiPTAiLCI6IjoiPTIifTtyZXR1cm4iJCIrdC5yZXBsYWNlKC9bPTpdL2csKGZ1bmN0aW9uKHQpe3JldHVybiBlW3RdfSkpfSgiIit0LmtleSk6ZS50b1N0cmluZygzNil9ZnVuY3Rpb24gUih0LGUsaSxvLGEpe3ZhciBzPXR5cGVvZiB0OyJ1bmRlZmluZWQiIT09cyYmImJvb2xlYW4iIT09c3x8KHQ9bnVsbCk7dmFyIHU9ITE7aWYobnVsbD09PXQpdT0hMDtlbHNlIHN3aXRjaChzKXtjYXNlInN0cmluZyI6Y2FzZSJudW1iZXIiOnU9ITA7YnJlYWs7Y2FzZSJvYmplY3QiOnN3aXRjaCh0LiQkdHlwZW9mKXtjYXNlIHI6Y2FzZSBuOnU9ITB9fWlmKHUpcmV0dXJuIGE9YSh1PXQpLHQ9IiI9PT1vPyIuIitRKHUsMCk6byxnKGEpPyhpPSIiLG51bGwhPXQmJihpPXQucmVwbGFjZShJLCIkJi8iKSsiLyIpLFIoYSxlLGksIiIsKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpKTpudWxsIT1hJiYoTyhhKSYmKGE9ZnVuY3Rpb24gTih0LGUpe3JldHVybnskJHR5cGVvZjpyLHR5cGU6dC50eXBlLGtleTplLHJlZjp0LnJlZixwcm9wczp0LnByb3BzLF9vd25lcjp0Ll9vd25lcn19KGEsaSsoIWEua2V5fHx1JiZ1LmtleT09PWEua2V5PyIiOigiIithLmtleSkucmVwbGFjZShJLCIkJi8iKSsiLyIpK3QpKSxlLnB1c2goYSkpLDE7aWYodT0wLG89IiI9PT1vPyIuIjpvKyI6IixnKHQpKWZvcih2YXIgYz0wO2M8dC5sZW5ndGg7YysrKXt2YXIgZj1vK1Eocz10W2NdLGMpO3UrPVIocyxlLGksZixhKX1lbHNlIGlmKGY9ZnVuY3Rpb24gQSh0KXtyZXR1cm4gbnVsbD09PXR8fCJvYmplY3QiIT10eXBlb2YgdD9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZih0PXAmJnRbcF18fHRbIkBAaXRlcmF0b3IiXSk/dDpudWxsfSh0KSwiZnVuY3Rpb24iPT10eXBlb2YgZilmb3IodD1mLmNhbGwodCksYz0wOyEocz10Lm5leHQoKSkuZG9uZTspdSs9UihzPXMudmFsdWUsZSxpLGY9bytRKHMsYysrKSxhKTtlbHNlIGlmKCJvYmplY3QiPT09cyl0aHJvdyBlPVN0cmluZyh0KSxFcnJvcigiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiAiKygiW29iamVjdCBPYmplY3RdIj09PWU/Im9iamVjdCB3aXRoIGtleXMgeyIrT2JqZWN0LmtleXModCkuam9pbigiLCAiKSsifSI6ZSkrIikuIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgaW5zdGVhZC4iKTtyZXR1cm4gdX1mdW5jdGlvbiBTKHQsZSxyKXtpZihudWxsPT10KXJldHVybiB0O3ZhciBuPVtdLGk9MDtyZXR1cm4gUih0LG4sIiIsIiIsKGZ1bmN0aW9uKHQpe3JldHVybiBlLmNhbGwocix0LGkrKyl9KSksbn1mdW5jdGlvbiBUKHQpe2lmKC0xPT09dC5fc3RhdHVzKXt2YXIgZT10Ll9yZXN1bHQ7KGU9ZSgpKS50aGVuKChmdW5jdGlvbihlKXswIT09dC5fc3RhdHVzJiYtMSE9PXQuX3N0YXR1c3x8KHQuX3N0YXR1cz0xLHQuX3Jlc3VsdD1lKX0pLChmdW5jdGlvbihlKXswIT09dC5fc3RhdHVzJiYtMSE9PXQuX3N0YXR1c3x8KHQuX3N0YXR1cz0yLHQuX3Jlc3VsdD1lKX0pKSwtMT09PXQuX3N0YXR1cyYmKHQuX3N0YXR1cz0wLHQuX3Jlc3VsdD1lKX1pZigxPT09dC5fc3RhdHVzKXJldHVybiB0Ll9yZXN1bHQuZGVmYXVsdDt0aHJvdyB0Ll9yZXN1bHR9dmFyIHg9e2N1cnJlbnQ6bnVsbH0sQj17dHJhbnNpdGlvbjpudWxsfSxrPXtSZWFjdEN1cnJlbnREaXNwYXRjaGVyOngsUmVhY3RDdXJyZW50QmF0Y2hDb25maWc6QixSZWFjdEN1cnJlbnRPd25lcjpifTtmdW5jdGlvbiBYKCl7dGhyb3cgRXJyb3IoImFjdCguLi4pIGlzIG5vdCBzdXBwb3J0ZWQgaW4gcHJvZHVjdGlvbiBidWlsZHMgb2YgUmVhY3QuIil9ZS5DaGlsZHJlbj17bWFwOlMsZm9yRWFjaDpmdW5jdGlvbih0LGUscil7Uyh0LChmdW5jdGlvbigpe2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfSkscil9LGNvdW50OmZ1bmN0aW9uKHQpe3ZhciBlPTA7cmV0dXJuIFModCwoZnVuY3Rpb24oKXtlKyt9KSksZX0sdG9BcnJheTpmdW5jdGlvbih0KXtyZXR1cm4gUyh0LChmdW5jdGlvbih0KXtyZXR1cm4gdH0pKXx8W119LG9ubHk6ZnVuY3Rpb24odCl7aWYoIU8odCkpdGhyb3cgRXJyb3IoIlJlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLiIpO3JldHVybiB0fX0sZS5Db21wb25lbnQ9RSxlLkZyYWdtZW50PWksZS5Qcm9maWxlcj1hLGUuUHVyZUNvbXBvbmVudD1HLGUuU3RyaWN0TW9kZT1vLGUuU3VzcGVuc2U9ZixlLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEPWssZS5hY3Q9WCxlLmNsb25lRWxlbWVudD1mdW5jdGlvbih0LGUsbil7aWYobnVsbD09dCl0aHJvdyBFcnJvcigiUmVhY3QuY2xvbmVFbGVtZW50KC4uLik6IFRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgIit0KyIuIik7dmFyIGk9Xyh7fSx0LnByb3BzKSxvPXQua2V5LGE9dC5yZWYscz10Ll9vd25lcjtpZihudWxsIT1lKXtpZih2b2lkIDAhPT1lLnJlZiYmKGE9ZS5yZWYscz1iLmN1cnJlbnQpLHZvaWQgMCE9PWUua2V5JiYobz0iIitlLmtleSksdC50eXBlJiZ0LnR5cGUuZGVmYXVsdFByb3BzKXZhciB1PXQudHlwZS5kZWZhdWx0UHJvcHM7Zm9yKGMgaW4gZSl2LmNhbGwoZSxjKSYmIXcuaGFzT3duUHJvcGVydHkoYykmJihpW2NdPXZvaWQgMD09PWVbY10mJnZvaWQgMCE9PXU/dVtjXTplW2NdKX12YXIgYz1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWMpaS5jaGlsZHJlbj1uO2Vsc2UgaWYoMTxjKXt1PUFycmF5KGMpO2Zvcih2YXIgZj0wO2Y8YztmKyspdVtmXT1hcmd1bWVudHNbZisyXTtpLmNoaWxkcmVuPXV9cmV0dXJueyQkdHlwZW9mOnIsdHlwZTp0LnR5cGUsa2V5Om8scmVmOmEscHJvcHM6aSxfb3duZXI6c319LGUuY3JlYXRlQ29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4odD17JCR0eXBlb2Y6dSxfY3VycmVudFZhbHVlOnQsX2N1cnJlbnRWYWx1ZTI6dCxfdGhyZWFkQ291bnQ6MCxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGwsX2RlZmF1bHRWYWx1ZTpudWxsLF9nbG9iYWxOYW1lOm51bGx9KS5Qcm92aWRlcj17JCR0eXBlb2Y6cyxfY29udGV4dDp0fSx0LkNvbnN1bWVyPXR9LGUuY3JlYXRlRWxlbWVudD1NLGUuY3JlYXRlRmFjdG9yeT1mdW5jdGlvbih0KXt2YXIgZT1NLmJpbmQobnVsbCx0KTtyZXR1cm4gZS50eXBlPXQsZX0sZS5jcmVhdGVSZWY9ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpudWxsfX0sZS5mb3J3YXJkUmVmPWZ1bmN0aW9uKHQpe3JldHVybnskJHR5cGVvZjpjLHJlbmRlcjp0fX0sZS5pc1ZhbGlkRWxlbWVudD1PLGUubGF6eT1mdW5jdGlvbih0KXtyZXR1cm57JCR0eXBlb2Y6aCxfcGF5bG9hZDp7X3N0YXR1czotMSxfcmVzdWx0OnR9LF9pbml0OlR9fSxlLm1lbW89ZnVuY3Rpb24odCxlKXtyZXR1cm57JCR0eXBlb2Y6bCx0eXBlOnQsY29tcGFyZTp2b2lkIDA9PT1lP251bGw6ZX19LGUuc3RhcnRUcmFuc2l0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPUIudHJhbnNpdGlvbjtCLnRyYW5zaXRpb249e307dHJ5e3QoKX1maW5hbGx5e0IudHJhbnNpdGlvbj1lfX0sZS51bnN0YWJsZV9hY3Q9WCxlLnVzZUNhbGxiYWNrPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHguY3VycmVudC51c2VDYWxsYmFjayh0LGUpfSxlLnVzZUNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIHguY3VycmVudC51c2VDb250ZXh0KHQpfSxlLnVzZURlYnVnVmFsdWU9ZnVuY3Rpb24oKXt9LGUudXNlRGVmZXJyZWRWYWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4geC5jdXJyZW50LnVzZURlZmVycmVkVmFsdWUodCl9LGUudXNlRWZmZWN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHguY3VycmVudC51c2VFZmZlY3QodCxlKX0sZS51c2VJZD1mdW5jdGlvbigpe3JldHVybiB4LmN1cnJlbnQudXNlSWQoKX0sZS51c2VJbXBlcmF0aXZlSGFuZGxlPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4geC5jdXJyZW50LnVzZUltcGVyYXRpdmVIYW5kbGUodCxlLHIpfSxlLnVzZUluc2VydGlvbkVmZmVjdD1mdW5jdGlvbih0LGUpe3JldHVybiB4LmN1cnJlbnQudXNlSW5zZXJ0aW9uRWZmZWN0KHQsZSl9LGUudXNlTGF5b3V0RWZmZWN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHguY3VycmVudC51c2VMYXlvdXRFZmZlY3QodCxlKX0sZS51c2VNZW1vPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHguY3VycmVudC51c2VNZW1vKHQsZSl9LGUudXNlUmVkdWNlcj1mdW5jdGlvbih0LGUscil7cmV0dXJuIHguY3VycmVudC51c2VSZWR1Y2VyKHQsZSxyKX0sZS51c2VSZWY9ZnVuY3Rpb24odCl7cmV0dXJuIHguY3VycmVudC51c2VSZWYodCl9LGUudXNlU3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHguY3VycmVudC51c2VTdGF0ZSh0KX0sZS51c2VTeW5jRXh0ZXJuYWxTdG9yZT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHguY3VycmVudC51c2VTeW5jRXh0ZXJuYWxTdG9yZSh0LGUscil9LGUudXNlVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiB4LmN1cnJlbnQudXNlVHJhbnNpdGlvbigpfSxlLnZlcnNpb249IjE4LjMuMSJ9LDUyODg6dD0+e3QuZXhwb3J0cz1mdW5jdGlvbiBlcSh0LGUpe3JldHVybiB0PT09ZXx8dCE9dCYmZSE9ZX19LDUzODk6KHQsZSxyKT0+e3ZhciBuPXIoMzY2MyksaT1yKDc5NzgpLG89cigzNDg4KSxhPXIoNjQ0OSkscz1yKDU4Myk7dC5leHBvcnRzPWZ1bmN0aW9uIGJhc2VJdGVyYXRlZSh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90Om51bGw9PXQ/bzoib2JqZWN0Ij09dHlwZW9mIHQ/YSh0KT9pKHRbMF0sdFsxXSk6bih0KTpzKHQpfX0sNTQwMToodCxlLHIpPT57InVzZSBzdHJpY3QiO3ZhciBuPXIoNDYyKTt0LmV4cG9ydHM9bn0sNTQzNDp0PT57dmFyIGU9L1thLXpdW0EtWl18W0EtWl17Mn1bYS16XXxbMC05XVthLXpBLVpdfFthLXpBLVpdWzAtOV18W15hLXpBLVowLTkgXS87dC5leHBvcnRzPWZ1bmN0aW9uIGhhc1VuaWNvZGVXb3JkKHQpe3JldHVybiBlLnRlc3QodCl9fSw1NDgxOih0LGUscik9Pnt2YXIgbj1yKDkzMjUpWyJfX2NvcmUtanNfc2hhcmVkX18iXTt0LmV4cG9ydHM9bn0sNTQ4MjoodCxlLHIpPT57InVzZSBzdHJpY3QiO3ZhciBuPXIoMTE3Nik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPSt0O3JldHVybiBlIT1lfHwwPT09ZT8wOm4oZSl9fSw1NTI3OnQ9Pnt2YXIgZT1PYmplY3QucHJvdG90eXBlO3QuZXhwb3J0cz1mdW5jdGlvbiBpc1Byb3RvdHlwZSh0KXt2YXIgcj10JiZ0LmNvbnN0cnVjdG9yO3JldHVybiB0PT09KCJmdW5jdGlvbiI9PXR5cGVvZiByJiZyLnByb3RvdHlwZXx8ZSl9fSw1NTM5Oih0LGUscik9Pnt2YXIgbj1yKDg4MiksaT1yKDgyOCksbz1yKDY2NDUpLGE9UmVnRXhwKCJbJ+KAmV0iLCJnIik7dC5leHBvcnRzPWZ1bmN0aW9uIGNyZWF0ZUNvbXBvdW5kZXIodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBuKG8oaShlKS5yZXBsYWNlKGEsIiIpKSx0LCIiKX19fSw1NTgwOih0LGUscik9Pnt2YXIgbj1yKDYxMTApKHIoOTMyNSksIkRhdGFWaWV3Iik7dC5leHBvcnRzPW59LDU1ODI6KHQsZSxyKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIwNDYpLGk9cig1OTUxKSxvPXIoMjI1MCksYUZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBvKHQpP3Q6dm9pZCAwfTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP2FGdW5jdGlvbihuW3RdKXx8YUZ1bmN0aW9uKGlbdF0pOm5bdF0mJm5bdF1bZV18fGlbdF0mJmlbdF1bZV19fSw1NTk0Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cig1NTgyKSxpPXIoMjI1MCksbz1yKDgyODApLGE9cigzNTU2KSxzPU9iamVjdDt0LmV4cG9ydHM9YT9mdW5jdGlvbih0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3ZhciBlPW4oIlN5bWJvbCIpO3JldHVybiBpKGUpJiZvKGUucHJvdG90eXBlLHModCkpfX0sNTYwNjp0PT57dmFyIGUscixuPXQuZXhwb3J0cz17fTtmdW5jdGlvbiBkZWZhdWx0U2V0VGltb3V0KCl7dGhyb3cgbmV3IEVycm9yKCJzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gZGVmYXVsdENsZWFyVGltZW91dCgpe3Rocm93IG5ldyBFcnJvcigiY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gcnVuVGltZW91dCh0KXtpZihlPT09c2V0VGltZW91dClyZXR1cm4gc2V0VGltZW91dCh0LDApO2lmKChlPT09ZGVmYXVsdFNldFRpbW91dHx8IWUpJiZzZXRUaW1lb3V0KXJldHVybiBlPXNldFRpbWVvdXQsc2V0VGltZW91dCh0LDApO3RyeXtyZXR1cm4gZSh0LDApfWNhdGNoKHIpe3RyeXtyZXR1cm4gZS5jYWxsKG51bGwsdCwwKX1jYXRjaChyKXtyZXR1cm4gZS5jYWxsKHRoaXMsdCwwKX19fSFmdW5jdGlvbigpe3RyeXtlPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6ZGVmYXVsdFNldFRpbW91dH1jYXRjaCh0KXtlPWRlZmF1bHRTZXRUaW1vdXR9dHJ5e3I9ImZ1bmN0aW9uIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6ZGVmYXVsdENsZWFyVGltZW91dH1jYXRjaCh0KXtyPWRlZmF1bHRDbGVhclRpbWVvdXR9fSgpO3ZhciBpLG89W10sYT0hMSxzPS0xO2Z1bmN0aW9uIGNsZWFuVXBOZXh0VGljaygpe2EmJmkmJihhPSExLGkubGVuZ3RoP289aS5jb25jYXQobyk6cz0tMSxvLmxlbmd0aCYmZHJhaW5RdWV1ZSgpKX1mdW5jdGlvbiBkcmFpblF1ZXVlKCl7aWYoIWEpe3ZhciB0PXJ1blRpbWVvdXQoY2xlYW5VcE5leHRUaWNrKTthPSEwO2Zvcih2YXIgZT1vLmxlbmd0aDtlOyl7Zm9yKGk9byxvPVtdOysrczxlOylpJiZpW3NdLnJ1bigpO3M9LTEsZT1vLmxlbmd0aH1pPW51bGwsYT0hMSxmdW5jdGlvbiBydW5DbGVhclRpbWVvdXQodCl7aWYocj09PWNsZWFyVGltZW91dClyZXR1cm4gY2xlYXJUaW1lb3V0KHQpO2lmKChyPT09ZGVmYXVsdENsZWFyVGltZW91dHx8IXIpJiZjbGVhclRpbWVvdXQpcmV0dXJuIHI9Y2xlYXJUaW1lb3V0LGNsZWFyVGltZW91dCh0KTt0cnl7cmV0dXJuIHIodCl9Y2F0Y2goZSl7dHJ5e3JldHVybiByLmNhbGwobnVsbCx0KX1jYXRjaChlKXtyZXR1cm4gci5jYWxsKHRoaXMsdCl9fX0odCl9fWZ1bmN0aW9uIEl0ZW0odCxlKXt0aGlzLmZ1bj10LHRoaXMuYXJyYXk9ZX1mdW5jdGlvbiBub29wKCl7fW4ubmV4dFRpY2s9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSk7aWYoYXJndW1lbnRzLmxlbmd0aD4xKWZvcih2YXIgcj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspZVtyLTFdPWFyZ3VtZW50c1tyXTtvLnB1c2gobmV3IEl0ZW0odCxlKSksMSE9PW8ubGVuZ3RofHxhfHxydW5UaW1lb3V0KGRyYWluUXVldWUpfSxJdGVtLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXt0aGlzLmZ1bi5hcHBseShudWxsLHRoaXMuYXJyYXkpfSxuLnRpdGxlPSJicm93c2VyIixuLmJyb3dzZXI9ITAsbi5lbnY9e30sbi5hcmd2PVtdLG4udmVyc2lvbj0iIixuLnZlcnNpb25zPXt9LG4ub249bm9vcCxuLmFkZExpc3RlbmVyPW5vb3Asbi5vbmNlPW5vb3Asbi5vZmY9bm9vcCxuLnJlbW92ZUxpc3RlbmVyPW5vb3Asbi5yZW1vdmVBbGxMaXN0ZW5lcnM9bm9vcCxuLmVtaXQ9bm9vcCxuLnByZXBlbmRMaXN0ZW5lcj1ub29wLG4ucHJlcGVuZE9uY2VMaXN0ZW5lcj1ub29wLG4ubGlzdGVuZXJzPWZ1bmN0aW9uKHQpe3JldHVybltdfSxuLmJpbmRpbmc9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCIpfSxuLmN3ZD1mdW5jdGlvbigpe3JldHVybiIvIn0sbi5jaGRpcj1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoInByb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCIpfSxuLnVtYXNrPWZ1bmN0aW9uKCl7cmV0dXJuIDB9fSw1NzQ5Oih0LGUscik9Pnt2YXIgbj1yKDEwNDIpO3QuZXhwb3J0cz1mdW5jdGlvbiBoYXNoU2V0KHQsZSl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyh0KT8wOjEsclt0XT1uJiZ2b2lkIDA9PT1lPyJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIjplLHRoaXN9fSw1ODA3Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cigxOTA3KSxpPW4oe30udG9TdHJpbmcpLG89bigiIi5zbGljZSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBvKGkodCksOCwtMSl9fSw1ODA4Oih0LGUscik9Pnt2YXIgbj1yKDI1MDcpKCJ0b1VwcGVyQ2FzZSIpO3QuZXhwb3J0cz1ufSw1ODE2Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cig2MTI4KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gblt0XXx8KG5bdF09ZXx8e30pfX0sNTgxNzp0PT57InVzZSBzdHJpY3QiO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybntlbnVtZXJhYmxlOiEoMSZ0KSxjb25maWd1cmFibGU6ISgyJnQpLHdyaXRhYmxlOiEoNCZ0KSx2YWx1ZTplfX19LDU4NjE6KHQsZSxyKT0+e3ZhciBuPXIoNTU4MCksaT1yKDgyMjMpLG89cigyODA0KSxhPXIoNjU0NSkscz1yKDgzMDMpLHU9cigyNTUyKSxjPXIoNzQ3MyksZj0iW29iamVjdCBNYXBdIixsPSJbb2JqZWN0IFByb21pc2VdIixoPSJbb2JqZWN0IFNldF0iLHA9IltvYmplY3QgV2Vha01hcF0iLGQ9IltvYmplY3QgRGF0YVZpZXddIixfPWMobikseT1jKGkpLG09YyhvKSxnPWMoYSksdj1jKHMpLGI9dTsobiYmYihuZXcgbihuZXcgQXJyYXlCdWZmZXIoMSkpKSE9ZHx8aSYmYihuZXcgaSkhPWZ8fG8mJmIoby5yZXNvbHZlKCkpIT1sfHxhJiZiKG5ldyBhKSE9aHx8cyYmYihuZXcgcykhPXApJiYoYj1mdW5jdGlvbih0KXt2YXIgZT11KHQpLHI9IltvYmplY3QgT2JqZWN0XSI9PWU/dC5jb25zdHJ1Y3Rvcjp2b2lkIDAsbj1yP2Mocik6IiI7aWYobilzd2l0Y2gobil7Y2FzZSBfOnJldHVybiBkO2Nhc2UgeTpyZXR1cm4gZjtjYXNlIG06cmV0dXJuIGw7Y2FzZSBnOnJldHVybiBoO2Nhc2UgdjpyZXR1cm4gcH1yZXR1cm4gZX0pLHQuZXhwb3J0cz1ifSw1OTExOih0LGUscik9Pnt2YXIgbj1yKDg4NTkpLGk9cig0MjQ4KSxvPXIoOTIxOSk7dC5leHBvcnRzPWZ1bmN0aW9uIGVxdWFsQXJyYXlzKHQsZSxyLGEscyx1KXt2YXIgYz0xJnIsZj10Lmxlbmd0aCxsPWUubGVuZ3RoO2lmKGYhPWwmJiEoYyYmbD5mKSlyZXR1cm4hMTt2YXIgaD11LmdldCh0KSxwPXUuZ2V0KGUpO2lmKGgmJnApcmV0dXJuIGg9PWUmJnA9PXQ7dmFyIGQ9LTEsXz0hMCx5PTImcj9uZXcgbjp2b2lkIDA7Zm9yKHUuc2V0KHQsZSksdS5zZXQoZSx0KTsrK2Q8Zjspe3ZhciBtPXRbZF0sZz1lW2RdO2lmKGEpdmFyIHY9Yz9hKGcsbSxkLGUsdCx1KTphKG0sZyxkLHQsZSx1KTtpZih2b2lkIDAhPT12KXtpZih2KWNvbnRpbnVlO189ITE7YnJlYWt9aWYoeSl7aWYoIWkoZSwoZnVuY3Rpb24odCxlKXtpZighbyh5LGUpJiYobT09PXR8fHMobSx0LHIsYSx1KSkpcmV0dXJuIHkucHVzaChlKX0pKSl7Xz0hMTticmVha319ZWxzZSBpZihtIT09ZyYmIXMobSxnLHIsYSx1KSl7Xz0hMTticmVha319cmV0dXJuIHUuZGVsZXRlKHQpLHUuZGVsZXRlKGUpLF99fSw1OTUwOih0LGUscik9Pnt2YXIgbj1yKDY5NSksaT1yKDg5ODQpLG89cig0ODk0KTt0LmV4cG9ydHM9ZnVuY3Rpb24ga2V5cyh0KXtyZXR1cm4gbyh0KT9uKHQpOmkodCl9fSw1OTUxOmZ1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIGNoZWNrPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Lk1hdGg9PT1NYXRoJiZ0fTt0LmV4cG9ydHM9Y2hlY2soIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzKXx8Y2hlY2soIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyl8fGNoZWNrKCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZil8fGNoZWNrKCJvYmplY3QiPT10eXBlb2Ygci5nJiZyLmcpfHxjaGVjaygib2JqZWN0Ij09dHlwZW9mIHRoaXMmJnRoaXMpfHxmdW5jdGlvbigpe3JldHVybiB0aGlzfSgpfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfSw2MDA5Oih0LGUscik9Pnt0PXIubm1kKHQpO3ZhciBuPXIoNDg0MCksaT1lJiYhZS5ub2RlVHlwZSYmZSxvPWkmJnQmJiF0Lm5vZGVUeXBlJiZ0LGE9byYmby5leHBvcnRzPT09aSYmbi5wcm9jZXNzLHM9ZnVuY3Rpb24oKXt0cnl7dmFyIHQ9byYmby5yZXF1aXJlJiZvLnJlcXVpcmUoInV0aWwiKS50eXBlcztyZXR1cm4gdHx8YSYmYS5iaW5kaW5nJiZhLmJpbmRpbmcoInV0aWwiKX1jYXRjaCh0KXt9fSgpO3QuZXhwb3J0cz1zfSw2MDI0Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cigxNTA1KSxpPUZ1bmN0aW9uLnByb3RvdHlwZSxvPWkuYXBwbHksYT1pLmNhbGw7dC5leHBvcnRzPSJvYmplY3QiPT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5hcHBseXx8KG4/YS5iaW5kKG8pOmZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkobyxhcmd1bWVudHMpfSl9LDYwMjU6KHQsZSxyKT0+e3ZhciBuPXIoNTI4OCk7dC5leHBvcnRzPWZ1bmN0aW9uIGFzc29jSW5kZXhPZih0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aDtyLS07KWlmKG4odFtyXVswXSxlKSlyZXR1cm4gcjtyZXR1cm4tMX19LDYwMjg6KHQsZSxyKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDM5MzApLGk9cig2Mjg1KSxvPXIoNTU5NCksYT1yKDkzNjcpLHM9cig1ODEpLHU9cig2MjY0KSxjPVR5cGVFcnJvcixmPXUoInRvUHJpbWl0aXZlIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoIWkodCl8fG8odCkpcmV0dXJuIHQ7dmFyIHIsdT1hKHQsZik7aWYodSl7aWYodm9pZCAwPT09ZSYmKGU9ImRlZmF1bHQiKSxyPW4odSx0LGUpLCFpKHIpfHxvKHIpKXJldHVybiByO3Rocm93IG5ldyBjKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX1yZXR1cm4gdm9pZCAwPT09ZSYmKGU9Im51bWJlciIpLHModCxlKX19LDYxMTA6KHQsZSxyKT0+e3ZhciBuPXIoNTA4MyksaT1yKDM5Mik7dC5leHBvcnRzPWZ1bmN0aW9uIGdldE5hdGl2ZSh0LGUpe3ZhciByPWkodCxlKTtyZXR1cm4gbihyKT9yOnZvaWQgMH19LDYxMjg6KHQsZSxyKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDczNzYpLGk9cig1OTUxKSxvPXIoMjUzMiksYT0iX19jb3JlLWpzX3NoYXJlZF9fIixzPXQuZXhwb3J0cz1pW2FdfHxvKGEse30pOyhzLnZlcnNpb25zfHwocy52ZXJzaW9ucz1bXSkpLnB1c2goe3ZlcnNpb246IjMuNDAuMCIsbW9kZTpuPyJwdXJlIjoiZ2xvYmFsIixjb3B5cmlnaHQ6IsKpIDIwMTQtMjAyNSBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSIsbGljZW5zZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvYmxvYi92My40MC4wL0xJQ0VOU0UiLHNvdXJjZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMifSl9LDYyNjQ6KHQsZSxyKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDU5NTEpLGk9cig1ODE2KSxvPXIoOTcyNCksYT1yKDY0OTkpLHM9cig5ODQ2KSx1PXIoMzU1NiksYz1uLlN5bWJvbCxmPWkoIndrcyIpLGw9dT9jLmZvcnx8YzpjJiZjLndpdGhvdXRTZXR0ZXJ8fGE7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBvKGYsdCl8fChmW3RdPXMmJm8oYyx0KT9jW3RdOmwoIlN5bWJvbC4iK3QpKSxmW3RdfX0sNjI4NToodCxlLHIpPT57InVzZSBzdHJpY3QiO3ZhciBuPXIoMjI1MCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgdD9udWxsIT09dDpuKHQpfX0sNjQ0OTp0PT57dmFyIGU9QXJyYXkuaXNBcnJheTt0LmV4cG9ydHM9ZX0sNjQ5OToodCxlLHIpPT57InVzZSBzdHJpY3QiO3ZhciBuPXIoMTkwNyksaT0wLG89TWF0aC5yYW5kb20oKSxhPW4oMS4udG9TdHJpbmcpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4iU3ltYm9sKCIrKHZvaWQgMD09PXQ/IiI6dCkrIilfIithKCsraStvLDM2KX19LDY1NDA6KHQsZSxyKT0+eyJ1c2Ugc3RyaWN0Ijt0LmV4cG9ydHM9cig1Mjg3KX0sNjU0NToodCxlLHIpPT57dmFyIG49cig2MTEwKShyKDkzMjUpLCJTZXQiKTt0LmV4cG9ydHM9bn0sNjU0NzoodCxlLHIpPT57dmFyIG49cigzMzYwKSxpPXIoNTI4OCksbz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3QuZXhwb3J0cz1mdW5jdGlvbiBhc3NpZ25WYWx1ZSh0LGUscil7dmFyIGE9dFtlXTtvLmNhbGwodCxlKSYmaShhLHIpJiYodm9pZCAwIT09cnx8ZSBpbiB0KXx8bih0LGUscil9fSw2NjI0Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cig2Mjg1KSxpPVN0cmluZyxvPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYobih0KSlyZXR1cm4gdDt0aHJvdyBuZXcgbyhpKHQpKyIgaXMgbm90IGFuIG9iamVjdCIpfX0sNjY0NToodCxlLHIpPT57dmFyIG49cigxNzMzKSxpPXIoNTQzNCksbz1yKDMyMjIpLGE9cigyMjI1KTt0LmV4cG9ydHM9ZnVuY3Rpb24gd29yZHModCxlLHIpe3JldHVybiB0PW8odCksdm9pZCAwPT09KGU9cj92b2lkIDA6ZSk/aSh0KT9hKHQpOm4odCk6dC5tYXRjaChlKXx8W119fSw2NjQ5Oih0LGUscik9Pnt2YXIgbj1yKDMyMjEpKCk7dC5leHBvcnRzPW59LDY2OTg6dD0+eyJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuY3JlYXRlP3QuZXhwb3J0cz1mdW5jdGlvbiBpbmhlcml0cyh0LGUpe2UmJih0LnN1cGVyXz1lLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pKX06dC5leHBvcnRzPWZ1bmN0aW9uIGluaGVyaXRzKHQsZSl7aWYoZSl7dC5zdXBlcl89ZTt2YXIgVGVtcEN0b3I9ZnVuY3Rpb24oKXt9O1RlbXBDdG9yLnByb3RvdHlwZT1lLnByb3RvdHlwZSx0LnByb3RvdHlwZT1uZXcgVGVtcEN0b3IsdC5wcm90b3R5cGUuY29uc3RydWN0b3I9dH19fSw2NzEwOih0LGUscik9Pnt2YXIgbj1yKDY2OTgpLGk9cig0MTA3KSxvPXIoODAxMSksYT1yKDI4NjEpLkJ1ZmZlcixzPW5ldyBBcnJheSg2NCk7ZnVuY3Rpb24gU2hhMjI0KCl7dGhpcy5pbml0KCksdGhpcy5fdz1zLG8uY2FsbCh0aGlzLDY0LDU2KX1uKFNoYTIyNCxpKSxTaGEyMjQucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0zMjM4MzcxMDMyLHRoaXMuX2I9OTE0MTUwNjYzLHRoaXMuX2M9ODEyNzAyOTk5LHRoaXMuX2Q9NDE0NDkxMjY5Nyx0aGlzLl9lPTQyOTA3NzU4NTcsdGhpcy5fZj0xNzUwNjAzMDI1LHRoaXMuX2c9MTY5NDA3NjgzOSx0aGlzLl9oPTMyMDQwNzU0MjgsdGhpc30sU2hhMjI0LnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciB0PWEuYWxsb2NVbnNhZmUoMjgpO3JldHVybiB0LndyaXRlSW50MzJCRSh0aGlzLl9hLDApLHQud3JpdGVJbnQzMkJFKHRoaXMuX2IsNCksdC53cml0ZUludDMyQkUodGhpcy5fYyw4KSx0LndyaXRlSW50MzJCRSh0aGlzLl9kLDEyKSx0LndyaXRlSW50MzJCRSh0aGlzLl9lLDE2KSx0LndyaXRlSW50MzJCRSh0aGlzLl9mLDIwKSx0LndyaXRlSW50MzJCRSh0aGlzLl9nLDI0KSx0fSx0LmV4cG9ydHM9U2hhMjI0fSw2NzIxOih0LGUscik9Pnt2YXIgbj1yKDEwNDIpLGk9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt0LmV4cG9ydHM9ZnVuY3Rpb24gaGFzaEdldCh0KXt2YXIgZT10aGlzLl9fZGF0YV9fO2lmKG4pe3ZhciByPWVbdF07cmV0dXJuIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iPT09cj92b2lkIDA6cn1yZXR1cm4gaS5jYWxsKGUsdCk/ZVt0XTp2b2lkIDB9fSw2Nzk0Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cig1OTUxKS5uYXZpZ2F0b3IsaT1uJiZuLnVzZXJBZ2VudDt0LmV4cG9ydHM9aT9TdHJpbmcoaSk6IiJ9LDY4MDA6KHQsZSxyKT0+e3ZhciBuPXIoNTI4OCksaT1yKDQ4OTQpLG89cigzNjEpLGE9cigzODA1KTt0LmV4cG9ydHM9ZnVuY3Rpb24gaXNJdGVyYXRlZUNhbGwodCxlLHIpe2lmKCFhKHIpKXJldHVybiExO3ZhciBzPXR5cGVvZiBlO3JldHVybiEhKCJudW1iZXIiPT1zP2kocikmJm8oZSxyLmxlbmd0aCk6InN0cmluZyI9PXMmJmUgaW4gcikmJm4ocltlXSx0KX19LDY5NDY6KHQsZSxyKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDE5MDcpLGk9cig4ODI4KSxvPXIoNTgwNyksYT1PYmplY3Qscz1uKCIiLnNwbGl0KTt0LmV4cG9ydHM9aSgoZnVuY3Rpb24oKXtyZXR1cm4hYSgieiIpLnByb3BlcnR5SXNFbnVtZXJhYmxlKDApfSkpP2Z1bmN0aW9uKHQpe3JldHVybiJTdHJpbmciPT09byh0KT9zKHQsIiIpOmEodCl9OmF9LDcwNjg6KHQsZSxyKT0+e3ZhciBuPXIoNzIxNyksaT1yKDU5MTEpLG89cigxOTg2KSxhPXIoNjg5KSxzPXIoNTg2MSksdT1yKDY0NDkpLGM9cigzNjU2KSxmPXIoNzE2NyksbD0iW29iamVjdCBBcmd1bWVudHNdIixoPSJbb2JqZWN0IEFycmF5XSIscD0iW29iamVjdCBPYmplY3RdIixkPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dC5leHBvcnRzPWZ1bmN0aW9uIGJhc2VJc0VxdWFsRGVlcCh0LGUscixfLHksbSl7dmFyIGc9dSh0KSx2PXUoZSksYj1nP2g6cyh0KSx3PXY/aDpzKGUpLEk9KGI9Yj09bD9wOmIpPT1wLHg9KHc9dz09bD9wOncpPT1wLEI9Yj09dztpZihCJiZjKHQpKXtpZighYyhlKSlyZXR1cm4hMTtnPSEwLEk9ITF9aWYoQiYmIUkpcmV0dXJuIG18fChtPW5ldyBuKSxnfHxmKHQpP2kodCxlLHIsXyx5LG0pOm8odCxlLGIscixfLHksbSk7aWYoISgxJnIpKXt2YXIgaz1JJiZkLmNhbGwodCwiX193cmFwcGVkX18iKSxDPXgmJmQuY2FsbChlLCJfX3dyYXBwZWRfXyIpO2lmKGt8fEMpe3ZhciBxPWs/dC52YWx1ZSgpOnQsTD1DP2UudmFsdWUoKTplO3JldHVybiBtfHwobT1uZXcgbikseShxLEwscixfLG0pfX1yZXR1cm4hIUImJihtfHwobT1uZXcgbiksYSh0LGUscixfLHksbSkpfX0sNzEzNjp0PT57InVzZSBzdHJpY3QiO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dH19LDcxNjc6KHQsZSxyKT0+e3ZhciBuPXIoNDkwMSksaT1yKDczMDEpLG89cig2MDA5KSxhPW8mJm8uaXNUeXBlZEFycmF5LHM9YT9pKGEpOm47dC5leHBvcnRzPXN9LDcxNzA6KHQsZSk9PnsidXNlIHN0cmljdCI7ZS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHN9LDcxOTc6dD0+e3QuZXhwb3J0cz1mdW5jdGlvbiBtYXRjaGVzU3RyaWN0Q29tcGFyYWJsZSh0LGUpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gbnVsbCE9ciYmKHJbdF09PT1lJiYodm9pZCAwIT09ZXx8dCBpbiBPYmplY3QocikpKX19fSw3MjE3Oih0LGUscik9Pnt2YXIgbj1yKDc5KSxpPXIoMTQyMCksbz1yKDkzOCksYT1yKDM2MDUpLHM9cig5ODE3KSx1PXIoOTQ1KTtmdW5jdGlvbiBTdGFjayh0KXt2YXIgZT10aGlzLl9fZGF0YV9fPW5ldyBuKHQpO3RoaXMuc2l6ZT1lLnNpemV9U3RhY2sucHJvdG90eXBlLmNsZWFyPWksU3RhY2sucHJvdG90eXBlLmRlbGV0ZT1vLFN0YWNrLnByb3RvdHlwZS5nZXQ9YSxTdGFjay5wcm90b3R5cGUuaGFzPXMsU3RhY2sucHJvdG90eXBlLnNldD11LHQuZXhwb3J0cz1TdGFja30sNzIzNzp0PT57dC5leHBvcnRzPWZ1bmN0aW9uIGJhc2VQcm9wZXJ0eSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/dm9pZCAwOmVbdF19fX0sNzI0ODoodCxlLHIpPT57dmFyIG49cig2NTQ3KSxpPXIoMTIzNCk7dC5leHBvcnRzPWZ1bmN0aW9uIHppcE9iamVjdCh0LGUpe3JldHVybiBpKHR8fFtdLGV8fFtdLG4pfX0sNzI1NToodCxlLHIpPT57dmFyIG49cig3NDIyKTt0LmV4cG9ydHM9ZnVuY3Rpb24gYmFzZVByb3BlcnR5RGVlcCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIG4oZSx0KX19fSw3Mjk2Oih0LGUscik9Pnt2YXIgbixpPXIoNTQ4MSksbz0obj0vW14uXSskLy5leGVjKGkmJmkua2V5cyYmaS5rZXlzLklFX1BST1RPfHwiIikpPyJTeW1ib2woc3JjKV8xLiIrbjoiIjt0LmV4cG9ydHM9ZnVuY3Rpb24gaXNNYXNrZWQodCl7cmV0dXJuISFvJiZvIGluIHR9fSw3MzAxOnQ9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24gYmFzZVVuYXJ5KHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdChlKX19fSw3MzA5Oih0LGUscik9Pnt2YXIgbj1yKDIwMDYpKHIoNDcxMykpO3QuZXhwb3J0cz1ufSw3Mzc0Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cig2OTQ2KSxpPXIoNDIzOSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuKGkodCkpfX0sNzM3Njp0PT57InVzZSBzdHJpY3QiO3QuZXhwb3J0cz0hMH0sNzQwMDoodCxlLHIpPT57dmFyIG49cig5Mzc0KSxpPTEvMDt0LmV4cG9ydHM9ZnVuY3Rpb24gdG9GaW5pdGUodCl7cmV0dXJuIHQ/KHQ9bih0KSk9PT1pfHx0PT09LTEvMD8xNzk3NjkzMTM0ODYyMzE1N2UyOTIqKHQ8MD8tMToxKTp0PT10P3Q6MDowPT09dD90OjB9fSw3NDIyOih0LGUscik9Pnt2YXIgbj1yKDE3NjkpLGk9cig3Nzk3KTt0LmV4cG9ydHM9ZnVuY3Rpb24gYmFzZUdldCh0LGUpe2Zvcih2YXIgcj0wLG89KGU9bihlLHQpKS5sZW5ndGg7bnVsbCE9dCYmcjxvOyl0PXRbaShlW3IrK10pXTtyZXR1cm4gciYmcj09bz90OnZvaWQgMH19LDc0NjM6KHQsZSxyKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDg4MjgpLGk9cigyMjUwKSxvPS8jfFwucHJvdG90eXBlXC4vLGlzRm9yY2VkPWZ1bmN0aW9uKHQsZSl7dmFyIHI9c1thKHQpXTtyZXR1cm4gcj09PWN8fHIhPT11JiYoaShlKT9uKGUpOiEhZSl9LGE9aXNGb3JjZWQubm9ybWFsaXplPWZ1bmN0aW9uKHQpe3JldHVybiBTdHJpbmcodCkucmVwbGFjZShvLCIuIikudG9Mb3dlckNhc2UoKX0scz1pc0ZvcmNlZC5kYXRhPXt9LHU9aXNGb3JjZWQuTkFUSVZFPSJOIixjPWlzRm9yY2VkLlBPTFlGSUxMPSJQIjt0LmV4cG9ydHM9aXNGb3JjZWR9LDc0NzM6dD0+e3ZhciBlPUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZzt0LmV4cG9ydHM9ZnVuY3Rpb24gdG9Tb3VyY2UodCl7aWYobnVsbCE9dCl7dHJ5e3JldHVybiBlLmNhbGwodCl9Y2F0Y2godCl7fXRyeXtyZXR1cm4gdCsiIn1jYXRjaCh0KXt9fXJldHVybiIifX0sNzUyNjoodCxlKT0+eyJ1c2Ugc3RyaWN0IjtlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24gYnl0ZUxlbmd0aCh0KXt2YXIgZT1nZXRMZW5zKHQpLHI9ZVswXSxuPWVbMV07cmV0dXJuIDMqKHIrbikvNC1ufSxlLnRvQnl0ZUFycmF5PWZ1bmN0aW9uIHRvQnl0ZUFycmF5KHQpe3ZhciBlLHIsbz1nZXRMZW5zKHQpLGE9b1swXSxzPW9bMV0sdT1uZXcgaShmdW5jdGlvbiBfYnl0ZUxlbmd0aCh0LGUscil7cmV0dXJuIDMqKGUrcikvNC1yfSgwLGEscykpLGM9MCxmPXM+MD9hLTQ6YTtmb3Iocj0wO3I8ZjtyKz00KWU9blt0LmNoYXJDb2RlQXQocildPDwxOHxuW3QuY2hhckNvZGVBdChyKzEpXTw8MTJ8blt0LmNoYXJDb2RlQXQocisyKV08PDZ8blt0LmNoYXJDb2RlQXQociszKV0sdVtjKytdPWU+PjE2JjI1NSx1W2MrK109ZT4+OCYyNTUsdVtjKytdPTI1NSZlOzI9PT1zJiYoZT1uW3QuY2hhckNvZGVBdChyKV08PDJ8blt0LmNoYXJDb2RlQXQocisxKV0+PjQsdVtjKytdPTI1NSZlKTsxPT09cyYmKGU9blt0LmNoYXJDb2RlQXQocildPDwxMHxuW3QuY2hhckNvZGVBdChyKzEpXTw8NHxuW3QuY2hhckNvZGVBdChyKzIpXT4+Mix1W2MrK109ZT4+OCYyNTUsdVtjKytdPTI1NSZlKTtyZXR1cm4gdX0sZS5mcm9tQnl0ZUFycmF5PWZ1bmN0aW9uIGZyb21CeXRlQXJyYXkodCl7Zm9yKHZhciBlLG49dC5sZW5ndGgsaT1uJTMsbz1bXSxhPTE2MzgzLHM9MCx1PW4taTtzPHU7cys9YSlvLnB1c2goZW5jb2RlQ2h1bmsodCxzLHMrYT51P3U6cythKSk7MT09PWk/KGU9dFtuLTFdLG8ucHVzaChyW2U+PjJdK3JbZTw8NCY2M10rIj09IikpOjI9PT1pJiYoZT0odFtuLTJdPDw4KSt0W24tMV0sby5wdXNoKHJbZT4+MTBdK3JbZT4+NCY2M10rcltlPDwyJjYzXSsiPSIpKTtyZXR1cm4gby5qb2luKCIiKX07Zm9yKHZhciByPVtdLG49W10saT0idW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXk/VWludDhBcnJheTpBcnJheSxvPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixhPTA7YTw2NDsrK2EpclthXT1vW2FdLG5bby5jaGFyQ29kZUF0KGEpXT1hO2Z1bmN0aW9uIGdldExlbnModCl7dmFyIGU9dC5sZW5ndGg7aWYoZSU0PjApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHN0cmluZy4gTGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0Iik7dmFyIHI9dC5pbmRleE9mKCI9Iik7cmV0dXJuLTE9PT1yJiYocj1lKSxbcixyPT09ZT8wOjQtciU0XX1mdW5jdGlvbiBlbmNvZGVDaHVuayh0LGUsbil7Zm9yKHZhciBpLG8sYT1bXSxzPWU7czxuO3MrPTMpaT0odFtzXTw8MTYmMTY3MTE2ODApKyh0W3MrMV08PDgmNjUyODApKygyNTUmdFtzKzJdKSxhLnB1c2goclsobz1pKT4+MTgmNjNdK3Jbbz4+MTImNjNdK3Jbbz4+NiY2M10rcls2MyZvXSk7cmV0dXJuIGEuam9pbigiIil9blsiLSIuY2hhckNvZGVBdCgwKV09NjIsblsiXyIuY2hhckNvZGVBdCgwKV09NjN9LDc1MzQ6KHQsZSxyKT0+e3ZhciBuPXIoMjU1MiksaT1yKDM0Nik7dC5leHBvcnRzPWZ1bmN0aW9uIGJhc2VJc0FyZ3VtZW50cyh0KXtyZXR1cm4gaSh0KSYmIltvYmplY3QgQXJndW1lbnRzXSI9PW4odCl9fSw3NTU2Oih0LGUscik9Pnt2YXIgbj1yKDE4NzMpLGk9cig0OTMyKSxvPXIoNjQ0OSksYT1yKDQzOTQpLHM9bj9uLnByb3RvdHlwZTp2b2lkIDAsdT1zP3MudG9TdHJpbmc6dm9pZCAwO3QuZXhwb3J0cz1mdW5jdGlvbiBiYXNlVG9TdHJpbmcodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0O2lmKG8odCkpcmV0dXJuIGkodCxiYXNlVG9TdHJpbmcpKyIiO2lmKGEodCkpcmV0dXJuIHU/dS5jYWxsKHQpOiIiO3ZhciBlPXQrIiI7cmV0dXJuIjAiPT1lJiYxL3Q9PS0xLzA/Ii0wIjplfX0sNzY2NjoodCxlLHIpPT57dmFyIG49cig0ODUxKSxpPXIoOTUzKTtmdW5jdGlvbiBfZXh0ZW5kcygpe3ZhciBlO3JldHVybiB0LmV4cG9ydHM9X2V4dGVuZHM9bj9pKGU9bikuY2FsbChlKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgcj1hcmd1bWVudHNbZV07Zm9yKHZhciBuIGluIHIpKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsbikmJih0W25dPXJbbl0pfXJldHVybiB0fSx0LmV4cG9ydHMuX19lc01vZHVsZT0hMCx0LmV4cG9ydHMuZGVmYXVsdD10LmV4cG9ydHMsX2V4dGVuZHMuYXBwbHkobnVsbCxhcmd1bWVudHMpfXQuZXhwb3J0cz1fZXh0ZW5kcyx0LmV4cG9ydHMuX19lc01vZHVsZT0hMCx0LmV4cG9ydHMuZGVmYXVsdD10LmV4cG9ydHN9LDc2NzA6KHQsZSxyKT0+e3ZhciBuPXIoMjY1MSk7dC5leHBvcnRzPWZ1bmN0aW9uIG1hcENhY2hlRGVsZXRlKHQpe3ZhciBlPW4odGhpcyx0KS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZS09ZT8xOjAsZX19LDc3OTc6KHQsZSxyKT0+e3ZhciBuPXIoNDM5NCk7dC5leHBvcnRzPWZ1bmN0aW9uIHRvS2V5KHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdHx8bih0KSlyZXR1cm4gdDt2YXIgZT10KyIiO3JldHVybiIwIj09ZSYmMS90PT0tMS8wPyItMCI6ZX19LDc4MTY6KHQsZSxyKT0+e3ZhciBuPXIoNjY5OCksaT1yKDgwMTEpLG89cigyODYxKS5CdWZmZXIsYT1bMTUxODUwMDI0OSwxODU5Nzc1MzkzLC0xODk0MDA3NTg4LC04OTk0OTc1MTRdLHM9bmV3IEFycmF5KDgwKTtmdW5jdGlvbiBTaGEoKXt0aGlzLmluaXQoKSx0aGlzLl93PXMsaS5jYWxsKHRoaXMsNjQsNTYpfWZ1bmN0aW9uIHJvdGwzMCh0KXtyZXR1cm4gdDw8MzB8dD4+PjJ9ZnVuY3Rpb24gZnQodCxlLHIsbil7cmV0dXJuIDA9PT10P2Umcnx+ZSZuOjI9PT10P2UmcnxlJm58ciZuOmVecl5ufW4oU2hhLGkpLFNoYS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OCx0aGlzLl9lPTMyODUzNzc1MjAsdGhpc30sU2hhLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPXRoaXMuX3csbj0wfHRoaXMuX2EsaT0wfHRoaXMuX2Isbz0wfHRoaXMuX2Mscz0wfHRoaXMuX2QsdT0wfHRoaXMuX2UsYz0wO2M8MTY7KytjKXJbY109dC5yZWFkSW50MzJCRSg0KmMpO2Zvcig7Yzw4MDsrK2MpcltjXT1yW2MtM11ecltjLThdXnJbYy0xNF1ecltjLTE2XTtmb3IodmFyIGY9MDtmPDgwOysrZil7dmFyIGw9fn4oZi8yMCksaD0wfCgoZT1uKTw8NXxlPj4+MjcpK2Z0KGwsaSxvLHMpK3UrcltmXSthW2xdO3U9cyxzPW8sbz1yb3RsMzAoaSksaT1uLG49aH10aGlzLl9hPW4rdGhpcy5fYXwwLHRoaXMuX2I9aSt0aGlzLl9ifDAsdGhpcy5fYz1vK3RoaXMuX2N8MCx0aGlzLl9kPXMrdGhpcy5fZHwwLHRoaXMuX2U9dSt0aGlzLl9lfDB9LFNoYS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgdD1vLmFsbG9jVW5zYWZlKDIwKTtyZXR1cm4gdC53cml0ZUludDMyQkUoMHx0aGlzLl9hLDApLHQud3JpdGVJbnQzMkJFKDB8dGhpcy5fYiw0KSx0LndyaXRlSW50MzJCRSgwfHRoaXMuX2MsOCksdC53cml0ZUludDMyQkUoMHx0aGlzLl9kLDEyKSx0LndyaXRlSW50MzJCRSgwfHRoaXMuX2UsMTYpLHR9LHQuZXhwb3J0cz1TaGF9LDc4Mjg6KHQsZSxyKT0+e3ZhciBuPXIoOTMyNSkuVWludDhBcnJheTt0LmV4cG9ydHM9bn0sNzk3ODoodCxlLHIpPT57dmFyIG49cigyNzApLGk9cig4MTU2KSxvPXIoNjMxKSxhPXIoODU4Nikscz1yKDc1NiksdT1yKDcxOTcpLGM9cig3Nzk3KTt0LmV4cG9ydHM9ZnVuY3Rpb24gYmFzZU1hdGNoZXNQcm9wZXJ0eSh0LGUpe3JldHVybiBhKHQpJiZzKGUpP3UoYyh0KSxlKTpmdW5jdGlvbihyKXt2YXIgYT1pKHIsdCk7cmV0dXJuIHZvaWQgMD09PWEmJmE9PT1lP28ocix0KTpuKGUsYSwzKX19fSw4MDExOih0LGUscik9Pnt2YXIgbj1yKDI4NjEpLkJ1ZmZlcjtmdW5jdGlvbiBIYXNoKHQsZSl7dGhpcy5fYmxvY2s9bi5hbGxvYyh0KSx0aGlzLl9maW5hbFNpemU9ZSx0aGlzLl9ibG9ja1NpemU9dCx0aGlzLl9sZW49MH1IYXNoLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlKXsic3RyaW5nIj09dHlwZW9mIHQmJihlPWV8fCJ1dGY4Iix0PW4uZnJvbSh0LGUpKTtmb3IodmFyIHI9dGhpcy5fYmxvY2ssaT10aGlzLl9ibG9ja1NpemUsbz10Lmxlbmd0aCxhPXRoaXMuX2xlbixzPTA7czxvOyl7Zm9yKHZhciB1PWElaSxjPU1hdGgubWluKG8tcyxpLXUpLGY9MDtmPGM7ZisrKXJbdStmXT10W3MrZl07cys9YywoYSs9YyklaT09MCYmdGhpcy5fdXBkYXRlKHIpfXJldHVybiB0aGlzLl9sZW4rPW8sdGhpc30sSGFzaC5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2xlbiV0aGlzLl9ibG9ja1NpemU7dGhpcy5fYmxvY2tbZV09MTI4LHRoaXMuX2Jsb2NrLmZpbGwoMCxlKzEpLGU+PXRoaXMuX2ZpbmFsU2l6ZSYmKHRoaXMuX3VwZGF0ZSh0aGlzLl9ibG9jayksdGhpcy5fYmxvY2suZmlsbCgwKSk7dmFyIHI9OCp0aGlzLl9sZW47aWYocjw9NDI5NDk2NzI5NSl0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKHIsdGhpcy5fYmxvY2tTaXplLTQpO2Vsc2V7dmFyIG49KDQyOTQ5NjcyOTUmcik+Pj4wLGk9KHItbikvNDI5NDk2NzI5Njt0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKGksdGhpcy5fYmxvY2tTaXplLTgpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyQkUobix0aGlzLl9ibG9ja1NpemUtNCl9dGhpcy5fdXBkYXRlKHRoaXMuX2Jsb2NrKTt2YXIgbz10aGlzLl9oYXNoKCk7cmV0dXJuIHQ/by50b1N0cmluZyh0KTpvfSxIYXNoLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfdXBkYXRlIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3MiKX0sdC5leHBvcnRzPUhhc2h9LDgwNzc6dD0+e3QuZXhwb3J0cz1mdW5jdGlvbiBiYXNlSGFzSW4odCxlKXtyZXR1cm4gbnVsbCE9dCYmZSBpbiBPYmplY3QodCl9fSw4MDk2OnQ9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24gYmFzZVRpbWVzKHQsZSl7Zm9yKHZhciByPS0xLG49QXJyYXkodCk7KytyPHQ7KW5bcl09ZShyKTtyZXR1cm4gbn19LDgxNTY6KHQsZSxyKT0+e3ZhciBuPXIoNzQyMik7dC5leHBvcnRzPWZ1bmN0aW9uIGdldCh0LGUscil7dmFyIGk9bnVsbD09dD92b2lkIDA6bih0LGUpO3JldHVybiB2b2lkIDA9PT1pP3I6aX19LDgyMjM6KHQsZSxyKT0+e3ZhciBuPXIoNjExMCkocig5MzI1KSwiTWFwIik7dC5leHBvcnRzPW59LDgyODA6KHQsZSxyKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDE5MDcpO3QuZXhwb3J0cz1uKHt9LmlzUHJvdG90eXBlT2YpfSw4Mjg3Oih0LGUscik9PnsidXNlIHN0cmljdCI7Y29uc3Qgbj1yKDc1MjYpLGk9cigyNTEpLG89ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbC5mb3I/U3ltYm9sLmZvcigibm9kZWpzLnV0aWwuaW5zcGVjdC5jdXN0b20iKTpudWxsO2UuQnVmZmVyPUJ1ZmZlcixlLlNsb3dCdWZmZXI9ZnVuY3Rpb24gU2xvd0J1ZmZlcih0KXsrdCE9dCYmKHQ9MCk7cmV0dXJuIEJ1ZmZlci5hbGxvYygrdCl9LGUuSU5TUEVDVF9NQVhfQllURVM9NTA7Y29uc3QgYT0yMTQ3NDgzNjQ3O2Z1bmN0aW9uIGNyZWF0ZUJ1ZmZlcih0KXtpZih0PmEpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJyt0KyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKTtjb25zdCBlPW5ldyBVaW50OEFycmF5KHQpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YoZSxCdWZmZXIucHJvdG90eXBlKSxlfWZ1bmN0aW9uIEJ1ZmZlcih0LGUscil7aWYoIm51bWJlciI9PXR5cGVvZiB0KXtpZigic3RyaW5nIj09dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJzdHJpbmciIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcuIFJlY2VpdmVkIHR5cGUgbnVtYmVyJyk7cmV0dXJuIGFsbG9jVW5zYWZlKHQpfXJldHVybiBmcm9tKHQsZSxyKX1mdW5jdGlvbiBmcm9tKHQsZSxyKXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIGZ1bmN0aW9uIGZyb21TdHJpbmcodCxlKXsic3RyaW5nIj09dHlwZW9mIGUmJiIiIT09ZXx8KGU9InV0ZjgiKTtpZighQnVmZmVyLmlzRW5jb2RpbmcoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitlKTtjb25zdCByPTB8Ynl0ZUxlbmd0aCh0LGUpO2xldCBuPWNyZWF0ZUJ1ZmZlcihyKTtjb25zdCBpPW4ud3JpdGUodCxlKTtpIT09ciYmKG49bi5zbGljZSgwLGkpKTtyZXR1cm4gbn0odCxlKTtpZihBcnJheUJ1ZmZlci5pc1ZpZXcodCkpcmV0dXJuIGZ1bmN0aW9uIGZyb21BcnJheVZpZXcodCl7aWYoaXNJbnN0YW5jZSh0LFVpbnQ4QXJyYXkpKXtjb25zdCBlPW5ldyBVaW50OEFycmF5KHQpO3JldHVybiBmcm9tQXJyYXlCdWZmZXIoZS5idWZmZXIsZS5ieXRlT2Zmc2V0LGUuYnl0ZUxlbmd0aCl9cmV0dXJuIGZyb21BcnJheUxpa2UodCl9KHQpO2lmKG51bGw9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgIit0eXBlb2YgdCk7aWYoaXNJbnN0YW5jZSh0LEFycmF5QnVmZmVyKXx8dCYmaXNJbnN0YW5jZSh0LmJ1ZmZlcixBcnJheUJ1ZmZlcikpcmV0dXJuIGZyb21BcnJheUJ1ZmZlcih0LGUscik7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlciYmKGlzSW5zdGFuY2UodCxTaGFyZWRBcnJheUJ1ZmZlcil8fHQmJmlzSW5zdGFuY2UodC5idWZmZXIsU2hhcmVkQXJyYXlCdWZmZXIpKSlyZXR1cm4gZnJvbUFycmF5QnVmZmVyKHQsZSxyKTtpZigibnVtYmVyIj09dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJ2YWx1ZSIgYXJndW1lbnQgbXVzdCBub3QgYmUgb2YgdHlwZSBudW1iZXIuIFJlY2VpdmVkIHR5cGUgbnVtYmVyJyk7Y29uc3Qgbj10LnZhbHVlT2YmJnQudmFsdWVPZigpO2lmKG51bGwhPW4mJm4hPT10KXJldHVybiBCdWZmZXIuZnJvbShuLGUscik7Y29uc3QgaT1mdW5jdGlvbiBmcm9tT2JqZWN0KHQpe2lmKEJ1ZmZlci5pc0J1ZmZlcih0KSl7Y29uc3QgZT0wfGNoZWNrZWQodC5sZW5ndGgpLHI9Y3JlYXRlQnVmZmVyKGUpO3JldHVybiAwPT09ci5sZW5ndGh8fHQuY29weShyLDAsMCxlKSxyfWlmKHZvaWQgMCE9PXQubGVuZ3RoKXJldHVybiJudW1iZXIiIT10eXBlb2YgdC5sZW5ndGh8fG51bWJlcklzTmFOKHQubGVuZ3RoKT9jcmVhdGVCdWZmZXIoMCk6ZnJvbUFycmF5TGlrZSh0KTtpZigiQnVmZmVyIj09PXQudHlwZSYmQXJyYXkuaXNBcnJheSh0LmRhdGEpKXJldHVybiBmcm9tQXJyYXlMaWtlKHQuZGF0YSl9KHQpO2lmKGkpcmV0dXJuIGk7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPVN5bWJvbC50b1ByaW1pdGl2ZSYmImZ1bmN0aW9uIj09dHlwZW9mIHRbU3ltYm9sLnRvUHJpbWl0aXZlXSlyZXR1cm4gQnVmZmVyLmZyb20odFtTeW1ib2wudG9QcmltaXRpdmVdKCJzdHJpbmciKSxlLHIpO3Rocm93IG5ldyBUeXBlRXJyb3IoIlRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBBcnJheUJ1ZmZlciwgQXJyYXksIG9yIEFycmF5LWxpa2UgT2JqZWN0LiBSZWNlaXZlZCB0eXBlICIrdHlwZW9mIHQpfWZ1bmN0aW9uIGFzc2VydFNpemUodCl7aWYoIm51bWJlciIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoJyJzaXplIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgbnVtYmVyJyk7aWYodDwwKXRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgIicrdCsnIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gInNpemUiJyl9ZnVuY3Rpb24gYWxsb2NVbnNhZmUodCl7cmV0dXJuIGFzc2VydFNpemUodCksY3JlYXRlQnVmZmVyKHQ8MD8wOjB8Y2hlY2tlZCh0KSl9ZnVuY3Rpb24gZnJvbUFycmF5TGlrZSh0KXtjb25zdCBlPXQubGVuZ3RoPDA/MDowfGNoZWNrZWQodC5sZW5ndGgpLHI9Y3JlYXRlQnVmZmVyKGUpO2ZvcihsZXQgbj0wO248ZTtuKz0xKXJbbl09MjU1JnRbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gZnJvbUFycmF5QnVmZmVyKHQsZSxyKXtpZihlPDB8fHQuYnl0ZUxlbmd0aDxlKXRocm93IG5ldyBSYW5nZUVycm9yKCcib2Zmc2V0IiBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHMnKTtpZih0LmJ5dGVMZW5ndGg8ZSsocnx8MCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJsZW5ndGgiIGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kcycpO2xldCBuO3JldHVybiBuPXZvaWQgMD09PWUmJnZvaWQgMD09PXI/bmV3IFVpbnQ4QXJyYXkodCk6dm9pZCAwPT09cj9uZXcgVWludDhBcnJheSh0LGUpOm5ldyBVaW50OEFycmF5KHQsZSxyKSxPYmplY3Quc2V0UHJvdG90eXBlT2YobixCdWZmZXIucHJvdG90eXBlKSxufWZ1bmN0aW9uIGNoZWNrZWQodCl7aWYodD49YSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXR0ZW1wdCB0byBhbGxvY2F0ZSBCdWZmZXIgbGFyZ2VyIHRoYW4gbWF4aW11bSBzaXplOiAweCIrYS50b1N0cmluZygxNikrIiBieXRlcyIpO3JldHVybiAwfHR9ZnVuY3Rpb24gYnl0ZUxlbmd0aCh0LGUpe2lmKEJ1ZmZlci5pc0J1ZmZlcih0KSlyZXR1cm4gdC5sZW5ndGg7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KHQpfHxpc0luc3RhbmNlKHQsQXJyYXlCdWZmZXIpKXJldHVybiB0LmJ5dGVMZW5ndGg7aWYoInN0cmluZyIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAic3RyaW5nIiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBvciBBcnJheUJ1ZmZlci4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiB0KTtjb25zdCByPXQubGVuZ3RoLG49YXJndW1lbnRzLmxlbmd0aD4yJiYhMD09PWFyZ3VtZW50c1syXTtpZighbiYmMD09PXIpcmV0dXJuIDA7bGV0IGk9ITE7Zm9yKDs7KXN3aXRjaChlKXtjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiByO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIHV0ZjhUb0J5dGVzKHQpLmxlbmd0aDtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIDIqcjtjYXNlImhleCI6cmV0dXJuIHI+Pj4xO2Nhc2UiYmFzZTY0IjpyZXR1cm4gYmFzZTY0VG9CeXRlcyh0KS5sZW5ndGg7ZGVmYXVsdDppZihpKXJldHVybiBuPy0xOnV0ZjhUb0J5dGVzKHQpLmxlbmd0aDtlPSgiIitlKS50b0xvd2VyQ2FzZSgpLGk9ITB9fWZ1bmN0aW9uIHNsb3dUb1N0cmluZyh0LGUscil7bGV0IG49ITE7aWYoKHZvaWQgMD09PWV8fGU8MCkmJihlPTApLGU+dGhpcy5sZW5ndGgpcmV0dXJuIiI7aWYoKHZvaWQgMD09PXJ8fHI+dGhpcy5sZW5ndGgpJiYocj10aGlzLmxlbmd0aCkscjw9MClyZXR1cm4iIjtpZigocj4+Pj0wKTw9KGU+Pj49MCkpcmV0dXJuIiI7Zm9yKHR8fCh0PSJ1dGY4Iik7Oylzd2l0Y2godCl7Y2FzZSJoZXgiOnJldHVybiBoZXhTbGljZSh0aGlzLGUscik7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4gdXRmOFNsaWNlKHRoaXMsZSxyKTtjYXNlImFzY2lpIjpyZXR1cm4gYXNjaWlTbGljZSh0aGlzLGUscik7Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gbGF0aW4xU2xpY2UodGhpcyxlLHIpO2Nhc2UiYmFzZTY0IjpyZXR1cm4gYmFzZTY0U2xpY2UodGhpcyxlLHIpO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gdXRmMTZsZVNsaWNlKHRoaXMsZSxyKTtkZWZhdWx0OmlmKG4pdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIit0KTt0PSh0KyIiKS50b0xvd2VyQ2FzZSgpLG49ITB9fWZ1bmN0aW9uIHN3YXAodCxlLHIpe2NvbnN0IG49dFtlXTt0W2VdPXRbcl0sdFtyXT1ufWZ1bmN0aW9uIGJpZGlyZWN0aW9uYWxJbmRleE9mKHQsZSxyLG4saSl7aWYoMD09PXQubGVuZ3RoKXJldHVybi0xO2lmKCJzdHJpbmciPT10eXBlb2Ygcj8obj1yLHI9MCk6cj4yMTQ3NDgzNjQ3P3I9MjE0NzQ4MzY0NzpyPC0yMTQ3NDgzNjQ4JiYocj0tMjE0NzQ4MzY0OCksbnVtYmVySXNOYU4ocj0rcikmJihyPWk/MDp0Lmxlbmd0aC0xKSxyPDAmJihyPXQubGVuZ3RoK3IpLHI+PXQubGVuZ3RoKXtpZihpKXJldHVybi0xO3I9dC5sZW5ndGgtMX1lbHNlIGlmKHI8MCl7aWYoIWkpcmV0dXJuLTE7cj0wfWlmKCJzdHJpbmciPT10eXBlb2YgZSYmKGU9QnVmZmVyLmZyb20oZSxuKSksQnVmZmVyLmlzQnVmZmVyKGUpKXJldHVybiAwPT09ZS5sZW5ndGg/LTE6YXJyYXlJbmRleE9mKHQsZSxyLG4saSk7aWYoIm51bWJlciI9PXR5cGVvZiBlKXJldHVybiBlJj0yNTUsImZ1bmN0aW9uIj09dHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/aT9VaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwodCxlLHIpOlVpbnQ4QXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwodCxlLHIpOmFycmF5SW5kZXhPZih0LFtlXSxyLG4saSk7dGhyb3cgbmV3IFR5cGVFcnJvcigidmFsIG11c3QgYmUgc3RyaW5nLCBudW1iZXIgb3IgQnVmZmVyIil9ZnVuY3Rpb24gYXJyYXlJbmRleE9mKHQsZSxyLG4saSl7bGV0IG8sYT0xLHM9dC5sZW5ndGgsdT1lLmxlbmd0aDtpZih2b2lkIDAhPT1uJiYoInVjczIiPT09KG49U3RyaW5nKG4pLnRvTG93ZXJDYXNlKCkpfHwidWNzLTIiPT09bnx8InV0ZjE2bGUiPT09bnx8InV0Zi0xNmxlIj09PW4pKXtpZih0Lmxlbmd0aDwyfHxlLmxlbmd0aDwyKXJldHVybi0xO2E9MixzLz0yLHUvPTIsci89Mn1mdW5jdGlvbiByZWFkKHQsZSl7cmV0dXJuIDE9PT1hP3RbZV06dC5yZWFkVUludDE2QkUoZSphKX1pZihpKXtsZXQgbj0tMTtmb3Iobz1yO288cztvKyspaWYocmVhZCh0LG8pPT09cmVhZChlLC0xPT09bj8wOm8tbikpe2lmKC0xPT09biYmKG49byksby1uKzE9PT11KXJldHVybiBuKmF9ZWxzZS0xIT09biYmKG8tPW8tbiksbj0tMX1lbHNlIGZvcihyK3U+cyYmKHI9cy11KSxvPXI7bz49MDtvLS0pe2xldCByPSEwO2ZvcihsZXQgbj0wO248dTtuKyspaWYocmVhZCh0LG8rbikhPT1yZWFkKGUsbikpe3I9ITE7YnJlYWt9aWYocilyZXR1cm4gb31yZXR1cm4tMX1mdW5jdGlvbiBoZXhXcml0ZSh0LGUscixuKXtyPU51bWJlcihyKXx8MDtjb25zdCBpPXQubGVuZ3RoLXI7bj8obj1OdW1iZXIobikpPmkmJihuPWkpOm49aTtjb25zdCBvPWUubGVuZ3RoO2xldCBhO2ZvcihuPm8vMiYmKG49by8yKSxhPTA7YTxuOysrYSl7Y29uc3Qgbj1wYXJzZUludChlLnN1YnN0cigyKmEsMiksMTYpO2lmKG51bWJlcklzTmFOKG4pKXJldHVybiBhO3RbcithXT1ufXJldHVybiBhfWZ1bmN0aW9uIHV0ZjhXcml0ZSh0LGUscixuKXtyZXR1cm4gYmxpdEJ1ZmZlcih1dGY4VG9CeXRlcyhlLHQubGVuZ3RoLXIpLHQscixuKX1mdW5jdGlvbiBhc2NpaVdyaXRlKHQsZSxyLG4pe3JldHVybiBibGl0QnVmZmVyKGZ1bmN0aW9uIGFzY2lpVG9CeXRlcyh0KXtjb25zdCBlPVtdO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7KytyKWUucHVzaCgyNTUmdC5jaGFyQ29kZUF0KHIpKTtyZXR1cm4gZX0oZSksdCxyLG4pfWZ1bmN0aW9uIGJhc2U2NFdyaXRlKHQsZSxyLG4pe3JldHVybiBibGl0QnVmZmVyKGJhc2U2NFRvQnl0ZXMoZSksdCxyLG4pfWZ1bmN0aW9uIHVjczJXcml0ZSh0LGUscixuKXtyZXR1cm4gYmxpdEJ1ZmZlcihmdW5jdGlvbiB1dGYxNmxlVG9CeXRlcyh0LGUpe2xldCByLG4saTtjb25zdCBvPVtdO2ZvcihsZXQgYT0wO2E8dC5sZW5ndGgmJiEoKGUtPTIpPDApOysrYSlyPXQuY2hhckNvZGVBdChhKSxuPXI+PjgsaT1yJTI1NixvLnB1c2goaSksby5wdXNoKG4pO3JldHVybiBvfShlLHQubGVuZ3RoLXIpLHQscixuKX1mdW5jdGlvbiBiYXNlNjRTbGljZSh0LGUscil7cmV0dXJuIDA9PT1lJiZyPT09dC5sZW5ndGg/bi5mcm9tQnl0ZUFycmF5KHQpOm4uZnJvbUJ5dGVBcnJheSh0LnNsaWNlKGUscikpfWZ1bmN0aW9uIHV0ZjhTbGljZSh0LGUscil7cj1NYXRoLm1pbih0Lmxlbmd0aCxyKTtjb25zdCBuPVtdO2xldCBpPWU7Zm9yKDtpPHI7KXtjb25zdCBlPXRbaV07bGV0IG89bnVsbCxhPWU+MjM5PzQ6ZT4yMjM/MzplPjE5MT8yOjE7aWYoaSthPD1yKXtsZXQgcixuLHMsdTtzd2l0Y2goYSl7Y2FzZSAxOmU8MTI4JiYobz1lKTticmVhaztjYXNlIDI6cj10W2krMV0sMTI4PT0oMTkyJnIpJiYodT0oMzEmZSk8PDZ8NjMmcix1PjEyNyYmKG89dSkpO2JyZWFrO2Nhc2UgMzpyPXRbaSsxXSxuPXRbaSsyXSwxMjg9PSgxOTImcikmJjEyOD09KDE5MiZuKSYmKHU9KDE1JmUpPDwxMnwoNjMmcik8PDZ8NjMmbix1PjIwNDcmJih1PDU1Mjk2fHx1PjU3MzQzKSYmKG89dSkpO2JyZWFrO2Nhc2UgNDpyPXRbaSsxXSxuPXRbaSsyXSxzPXRbaSszXSwxMjg9PSgxOTImcikmJjEyOD09KDE5MiZuKSYmMTI4PT0oMTkyJnMpJiYodT0oMTUmZSk8PDE4fCg2MyZyKTw8MTJ8KDYzJm4pPDw2fDYzJnMsdT42NTUzNSYmdTwxMTE0MTEyJiYobz11KSl9fW51bGw9PT1vPyhvPTY1NTMzLGE9MSk6bz42NTUzNSYmKG8tPTY1NTM2LG4ucHVzaChvPj4+MTAmMTAyM3w1NTI5Niksbz01NjMyMHwxMDIzJm8pLG4ucHVzaChvKSxpKz1hfXJldHVybiBmdW5jdGlvbiBkZWNvZGVDb2RlUG9pbnRzQXJyYXkodCl7Y29uc3QgZT10Lmxlbmd0aDtpZihlPD1zKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyx0KTtsZXQgcj0iIixuPTA7Zm9yKDtuPGU7KXIrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHQuc2xpY2UobixuKz1zKSk7cmV0dXJuIHJ9KG4pfWUua01heExlbmd0aD1hLEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUPWZ1bmN0aW9uIHR5cGVkQXJyYXlTdXBwb3J0KCl7dHJ5e2NvbnN0IHQ9bmV3IFVpbnQ4QXJyYXkoMSksZT17Zm9vOmZ1bmN0aW9uKCl7cmV0dXJuIDQyfX07cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZihlLFVpbnQ4QXJyYXkucHJvdG90eXBlKSxPYmplY3Quc2V0UHJvdG90eXBlT2YodCxlKSw0Mj09PXQuZm9vKCl9Y2F0Y2godCl7cmV0dXJuITF9fSgpLEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUfHwidW5kZWZpbmVkIj09dHlwZW9mIGNvbnNvbGV8fCJmdW5jdGlvbiIhPXR5cGVvZiBjb25zb2xlLmVycm9yfHxjb25zb2xlLmVycm9yKCJUaGlzIGJyb3dzZXIgbGFja3MgdHlwZWQgYXJyYXkgKFVpbnQ4QXJyYXkpIHN1cHBvcnQgd2hpY2ggaXMgcmVxdWlyZWQgYnkgYGJ1ZmZlcmAgdjUueC4gVXNlIGBidWZmZXJgIHY0LnggaWYgeW91IHJlcXVpcmUgb2xkIGJyb3dzZXIgc3VwcG9ydC4iKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQnVmZmVyLnByb3RvdHlwZSwicGFyZW50Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZihCdWZmZXIuaXNCdWZmZXIodGhpcykpcmV0dXJuIHRoaXMuYnVmZmVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShCdWZmZXIucHJvdG90eXBlLCJvZmZzZXQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKEJ1ZmZlci5pc0J1ZmZlcih0aGlzKSlyZXR1cm4gdGhpcy5ieXRlT2Zmc2V0fX0pLEJ1ZmZlci5wb29sU2l6ZT04MTkyLEJ1ZmZlci5mcm9tPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZnJvbSh0LGUscil9LE9iamVjdC5zZXRQcm90b3R5cGVPZihCdWZmZXIucHJvdG90eXBlLFVpbnQ4QXJyYXkucHJvdG90eXBlKSxPYmplY3Quc2V0UHJvdG90eXBlT2YoQnVmZmVyLFVpbnQ4QXJyYXkpLEJ1ZmZlci5hbGxvYz1mdW5jdGlvbih0LGUscil7cmV0dXJuIGZ1bmN0aW9uIGFsbG9jKHQsZSxyKXtyZXR1cm4gYXNzZXJ0U2l6ZSh0KSx0PD0wP2NyZWF0ZUJ1ZmZlcih0KTp2b2lkIDAhPT1lPyJzdHJpbmciPT10eXBlb2Ygcj9jcmVhdGVCdWZmZXIodCkuZmlsbChlLHIpOmNyZWF0ZUJ1ZmZlcih0KS5maWxsKGUpOmNyZWF0ZUJ1ZmZlcih0KX0odCxlLHIpfSxCdWZmZXIuYWxsb2NVbnNhZmU9ZnVuY3Rpb24odCl7cmV0dXJuIGFsbG9jVW5zYWZlKHQpfSxCdWZmZXIuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKHQpe3JldHVybiBhbGxvY1Vuc2FmZSh0KX0sQnVmZmVyLmlzQnVmZmVyPWZ1bmN0aW9uIGlzQnVmZmVyKHQpe3JldHVybiBudWxsIT10JiYhMD09PXQuX2lzQnVmZmVyJiZ0IT09QnVmZmVyLnByb3RvdHlwZX0sQnVmZmVyLmNvbXBhcmU9ZnVuY3Rpb24gY29tcGFyZSh0LGUpe2lmKGlzSW5zdGFuY2UodCxVaW50OEFycmF5KSYmKHQ9QnVmZmVyLmZyb20odCx0Lm9mZnNldCx0LmJ5dGVMZW5ndGgpKSxpc0luc3RhbmNlKGUsVWludDhBcnJheSkmJihlPUJ1ZmZlci5mcm9tKGUsZS5vZmZzZXQsZS5ieXRlTGVuZ3RoKSksIUJ1ZmZlci5pc0J1ZmZlcih0KXx8IUJ1ZmZlci5pc0J1ZmZlcihlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgImJ1ZjEiLCAiYnVmMiIgYXJndW1lbnRzIG11c3QgYmUgb25lIG9mIHR5cGUgQnVmZmVyIG9yIFVpbnQ4QXJyYXknKTtpZih0PT09ZSlyZXR1cm4gMDtsZXQgcj10Lmxlbmd0aCxuPWUubGVuZ3RoO2ZvcihsZXQgaT0wLG89TWF0aC5taW4ocixuKTtpPG87KytpKWlmKHRbaV0hPT1lW2ldKXtyPXRbaV0sbj1lW2ldO2JyZWFrfXJldHVybiByPG4/LTE6bjxyPzE6MH0sQnVmZmVyLmlzRW5jb2Rpbmc9ZnVuY3Rpb24gaXNFbmNvZGluZyh0KXtzd2l0Y2goU3RyaW5nKHQpLnRvTG93ZXJDYXNlKCkpe2Nhc2UiaGV4IjpjYXNlInV0ZjgiOmNhc2UidXRmLTgiOmNhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6Y2FzZSJiYXNlNjQiOmNhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX0sQnVmZmVyLmNvbmNhdD1mdW5jdGlvbiBjb25jYXQodCxlKXtpZighQXJyYXkuaXNBcnJheSh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCcibGlzdCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJyk7aWYoMD09PXQubGVuZ3RoKXJldHVybiBCdWZmZXIuYWxsb2MoMCk7bGV0IHI7aWYodm9pZCAwPT09ZSlmb3IoZT0wLHI9MDtyPHQubGVuZ3RoOysrcillKz10W3JdLmxlbmd0aDtjb25zdCBuPUJ1ZmZlci5hbGxvY1Vuc2FmZShlKTtsZXQgaT0wO2ZvcihyPTA7cjx0Lmxlbmd0aDsrK3Ipe2xldCBlPXRbcl07aWYoaXNJbnN0YW5jZShlLFVpbnQ4QXJyYXkpKWkrZS5sZW5ndGg+bi5sZW5ndGg/KEJ1ZmZlci5pc0J1ZmZlcihlKXx8KGU9QnVmZmVyLmZyb20oZSkpLGUuY29weShuLGkpKTpVaW50OEFycmF5LnByb3RvdHlwZS5zZXQuY2FsbChuLGUsaSk7ZWxzZXtpZighQnVmZmVyLmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTtlLmNvcHkobixpKX1pKz1lLmxlbmd0aH1yZXR1cm4gbn0sQnVmZmVyLmJ5dGVMZW5ndGg9Ynl0ZUxlbmd0aCxCdWZmZXIucHJvdG90eXBlLl9pc0J1ZmZlcj0hMCxCdWZmZXIucHJvdG90eXBlLnN3YXAxNj1mdW5jdGlvbiBzd2FwMTYoKXtjb25zdCB0PXRoaXMubGVuZ3RoO2lmKHQlMiE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDE2LWJpdHMiKTtmb3IobGV0IGU9MDtlPHQ7ZSs9Milzd2FwKHRoaXMsZSxlKzEpO3JldHVybiB0aGlzfSxCdWZmZXIucHJvdG90eXBlLnN3YXAzMj1mdW5jdGlvbiBzd2FwMzIoKXtjb25zdCB0PXRoaXMubGVuZ3RoO2lmKHQlNCE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDMyLWJpdHMiKTtmb3IobGV0IGU9MDtlPHQ7ZSs9NClzd2FwKHRoaXMsZSxlKzMpLHN3YXAodGhpcyxlKzEsZSsyKTtyZXR1cm4gdGhpc30sQnVmZmVyLnByb3RvdHlwZS5zd2FwNjQ9ZnVuY3Rpb24gc3dhcDY0KCl7Y29uc3QgdD10aGlzLmxlbmd0aDtpZih0JTghPTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA2NC1iaXRzIik7Zm9yKGxldCBlPTA7ZTx0O2UrPTgpc3dhcCh0aGlzLGUsZSs3KSxzd2FwKHRoaXMsZSsxLGUrNiksc3dhcCh0aGlzLGUrMixlKzUpLHN3YXAodGhpcyxlKzMsZSs0KTtyZXR1cm4gdGhpc30sQnVmZmVyLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbiB0b1N0cmluZygpe2NvbnN0IHQ9dGhpcy5sZW5ndGg7cmV0dXJuIDA9PT10PyIiOjA9PT1hcmd1bWVudHMubGVuZ3RoP3V0ZjhTbGljZSh0aGlzLDAsdCk6c2xvd1RvU3RyaW5nLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sQnVmZmVyLnByb3RvdHlwZS50b0xvY2FsZVN0cmluZz1CdWZmZXIucHJvdG90eXBlLnRvU3RyaW5nLEJ1ZmZlci5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uIGVxdWFscyh0KXtpZighQnVmZmVyLmlzQnVmZmVyKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIiKTtyZXR1cm4gdGhpcz09PXR8fDA9PT1CdWZmZXIuY29tcGFyZSh0aGlzLHQpfSxCdWZmZXIucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24gaW5zcGVjdCgpe2xldCB0PSIiO2NvbnN0IHI9ZS5JTlNQRUNUX01BWF9CWVRFUztyZXR1cm4gdD10aGlzLnRvU3RyaW5nKCJoZXgiLDAscikucmVwbGFjZSgvKC57Mn0pL2csIiQxICIpLnRyaW0oKSx0aGlzLmxlbmd0aD5yJiYodCs9IiAuLi4gIiksIjxCdWZmZXIgIit0KyI+In0sbyYmKEJ1ZmZlci5wcm90b3R5cGVbb109QnVmZmVyLnByb3RvdHlwZS5pbnNwZWN0KSxCdWZmZXIucHJvdG90eXBlLmNvbXBhcmU9ZnVuY3Rpb24gY29tcGFyZSh0LGUscixuLGkpe2lmKGlzSW5zdGFuY2UodCxVaW50OEFycmF5KSYmKHQ9QnVmZmVyLmZyb20odCx0Lm9mZnNldCx0LmJ5dGVMZW5ndGgpKSwhQnVmZmVyLmlzQnVmZmVyKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAidGFyZ2V0IiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5LiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIHQpO2lmKHZvaWQgMD09PWUmJihlPTApLHZvaWQgMD09PXImJihyPXQ/dC5sZW5ndGg6MCksdm9pZCAwPT09biYmKG49MCksdm9pZCAwPT09aSYmKGk9dGhpcy5sZW5ndGgpLGU8MHx8cj50Lmxlbmd0aHx8bjwwfHxpPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJvdXQgb2YgcmFuZ2UgaW5kZXgiKTtpZihuPj1pJiZlPj1yKXJldHVybiAwO2lmKG4+PWkpcmV0dXJuLTE7aWYoZT49cilyZXR1cm4gMTtpZih0aGlzPT09dClyZXR1cm4gMDtsZXQgbz0oaT4+Pj0wKS0obj4+Pj0wKSxhPShyPj4+PTApLShlPj4+PTApO2NvbnN0IHM9TWF0aC5taW4obyxhKSx1PXRoaXMuc2xpY2UobixpKSxjPXQuc2xpY2UoZSxyKTtmb3IobGV0IHQ9MDt0PHM7Kyt0KWlmKHVbdF0hPT1jW3RdKXtvPXVbdF0sYT1jW3RdO2JyZWFrfXJldHVybiBvPGE/LTE6YTxvPzE6MH0sQnVmZmVyLnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbiBpbmNsdWRlcyh0LGUscil7cmV0dXJuLTEhPT10aGlzLmluZGV4T2YodCxlLHIpfSxCdWZmZXIucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24gaW5kZXhPZih0LGUscil7cmV0dXJuIGJpZGlyZWN0aW9uYWxJbmRleE9mKHRoaXMsdCxlLHIsITApfSxCdWZmZXIucHJvdG90eXBlLmxhc3RJbmRleE9mPWZ1bmN0aW9uIGxhc3RJbmRleE9mKHQsZSxyKXtyZXR1cm4gYmlkaXJlY3Rpb25hbEluZGV4T2YodGhpcyx0LGUsciwhMSl9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24gd3JpdGUodCxlLHIsbil7aWYodm9pZCAwPT09ZSluPSJ1dGY4IixyPXRoaXMubGVuZ3RoLGU9MDtlbHNlIGlmKHZvaWQgMD09PXImJiJzdHJpbmciPT10eXBlb2YgZSluPWUscj10aGlzLmxlbmd0aCxlPTA7ZWxzZXtpZighaXNGaW5pdGUoZSkpdGhyb3cgbmV3IEVycm9yKCJCdWZmZXIud3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0WywgbGVuZ3RoXSkgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIpO2U+Pj49MCxpc0Zpbml0ZShyKT8ocj4+Pj0wLHZvaWQgMD09PW4mJihuPSJ1dGY4IikpOihuPXIscj12b2lkIDApfWNvbnN0IGk9dGhpcy5sZW5ndGgtZTtpZigodm9pZCAwPT09cnx8cj5pKSYmKHI9aSksdC5sZW5ndGg+MCYmKHI8MHx8ZTwwKXx8ZT50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXR0ZW1wdCB0byB3cml0ZSBvdXRzaWRlIGJ1ZmZlciBib3VuZHMiKTtufHwobj0idXRmOCIpO2xldCBvPSExO2Zvcig7Oylzd2l0Y2gobil7Y2FzZSJoZXgiOnJldHVybiBoZXhXcml0ZSh0aGlzLHQsZSxyKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiB1dGY4V3JpdGUodGhpcyx0LGUscik7Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gYXNjaWlXcml0ZSh0aGlzLHQsZSxyKTtjYXNlImJhc2U2NCI6cmV0dXJuIGJhc2U2NFdyaXRlKHRoaXMsdCxlLHIpO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gdWNzMldyaXRlKHRoaXMsdCxlLHIpO2RlZmF1bHQ6aWYobyl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK24pO249KCIiK24pLnRvTG93ZXJDYXNlKCksbz0hMH19LEJ1ZmZlci5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uIHRvSlNPTigpe3JldHVybnt0eXBlOiJCdWZmZXIiLGRhdGE6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fYXJyfHx0aGlzLDApfX07Y29uc3Qgcz00MDk2O2Z1bmN0aW9uIGFzY2lpU2xpY2UodCxlLHIpe2xldCBuPSIiO3I9TWF0aC5taW4odC5sZW5ndGgscik7Zm9yKGxldCBpPWU7aTxyOysraSluKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDEyNyZ0W2ldKTtyZXR1cm4gbn1mdW5jdGlvbiBsYXRpbjFTbGljZSh0LGUscil7bGV0IG49IiI7cj1NYXRoLm1pbih0Lmxlbmd0aCxyKTtmb3IobGV0IGk9ZTtpPHI7KytpKW4rPVN0cmluZy5mcm9tQ2hhckNvZGUodFtpXSk7cmV0dXJuIG59ZnVuY3Rpb24gaGV4U2xpY2UodCxlLHIpe2NvbnN0IG49dC5sZW5ndGg7KCFlfHxlPDApJiYoZT0wKSwoIXJ8fHI8MHx8cj5uKSYmKHI9bik7bGV0IGk9IiI7Zm9yKGxldCBuPWU7bjxyOysrbilpKz1mW3Rbbl1dO3JldHVybiBpfWZ1bmN0aW9uIHV0ZjE2bGVTbGljZSh0LGUscil7Y29uc3Qgbj10LnNsaWNlKGUscik7bGV0IGk9IiI7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aC0xO3QrPTIpaSs9U3RyaW5nLmZyb21DaGFyQ29kZShuW3RdKzI1NipuW3QrMV0pO3JldHVybiBpfWZ1bmN0aW9uIGNoZWNrT2Zmc2V0KHQsZSxyKXtpZih0JTEhPTB8fHQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib2Zmc2V0IGlzIG5vdCB1aW50Iik7aWYodCtlPnIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlRyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGgiKX1mdW5jdGlvbiBjaGVja0ludCh0LGUscixuLGksbyl7aWYoIUJ1ZmZlci5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmZmVyIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIGluc3RhbmNlJyk7aWYoZT5pfHxlPG8pdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpO2lmKHIrbj50Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gd3J0QmlnVUludDY0TEUodCxlLHIsbixpKXtjaGVja0ludEJJKGUsbixpLHQsciw3KTtsZXQgbz1OdW1iZXIoZSZCaWdJbnQoNDI5NDk2NzI5NSkpO3RbcisrXT1vLG8+Pj04LHRbcisrXT1vLG8+Pj04LHRbcisrXT1vLG8+Pj04LHRbcisrXT1vO2xldCBhPU51bWJlcihlPj5CaWdJbnQoMzIpJkJpZ0ludCg0Mjk0OTY3Mjk1KSk7cmV0dXJuIHRbcisrXT1hLGE+Pj04LHRbcisrXT1hLGE+Pj04LHRbcisrXT1hLGE+Pj04LHRbcisrXT1hLHJ9ZnVuY3Rpb24gd3J0QmlnVUludDY0QkUodCxlLHIsbixpKXtjaGVja0ludEJJKGUsbixpLHQsciw3KTtsZXQgbz1OdW1iZXIoZSZCaWdJbnQoNDI5NDk2NzI5NSkpO3Rbcis3XT1vLG8+Pj04LHRbcis2XT1vLG8+Pj04LHRbcis1XT1vLG8+Pj04LHRbcis0XT1vO2xldCBhPU51bWJlcihlPj5CaWdJbnQoMzIpJkJpZ0ludCg0Mjk0OTY3Mjk1KSk7cmV0dXJuIHRbciszXT1hLGE+Pj04LHRbcisyXT1hLGE+Pj04LHRbcisxXT1hLGE+Pj04LHRbcl09YSxyKzh9ZnVuY3Rpb24gY2hlY2tJRUVFNzU0KHQsZSxyLG4saSxvKXtpZihyK24+dC5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpO2lmKHI8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gd3JpdGVGbG9hdCh0LGUscixuLG8pe3JldHVybiBlPStlLHI+Pj49MCxvfHxjaGVja0lFRUU3NTQodCwwLHIsNCksaS53cml0ZSh0LGUscixuLDIzLDQpLHIrNH1mdW5jdGlvbiB3cml0ZURvdWJsZSh0LGUscixuLG8pe3JldHVybiBlPStlLHI+Pj49MCxvfHxjaGVja0lFRUU3NTQodCwwLHIsOCksaS53cml0ZSh0LGUscixuLDUyLDgpLHIrOH1CdWZmZXIucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uIHNsaWNlKHQsZSl7Y29uc3Qgcj10aGlzLmxlbmd0aDsodD1+fnQpPDA/KHQrPXIpPDAmJih0PTApOnQ+ciYmKHQ9ciksKGU9dm9pZCAwPT09ZT9yOn5+ZSk8MD8oZSs9cik8MCYmKGU9MCk6ZT5yJiYoZT1yKSxlPHQmJihlPXQpO2NvbnN0IG49dGhpcy5zdWJhcnJheSh0LGUpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YobixCdWZmZXIucHJvdG90eXBlKSxufSxCdWZmZXIucHJvdG90eXBlLnJlYWRVaW50TEU9QnVmZmVyLnByb3RvdHlwZS5yZWFkVUludExFPWZ1bmN0aW9uIHJlYWRVSW50TEUodCxlLHIpe3Q+Pj49MCxlPj4+PTAscnx8Y2hlY2tPZmZzZXQodCxlLHRoaXMubGVuZ3RoKTtsZXQgbj10aGlzW3RdLGk9MSxvPTA7Zm9yKDsrK288ZSYmKGkqPTI1Nik7KW4rPXRoaXNbdCtvXSppO3JldHVybiBufSxCdWZmZXIucHJvdG90eXBlLnJlYWRVaW50QkU9QnVmZmVyLnByb3RvdHlwZS5yZWFkVUludEJFPWZ1bmN0aW9uIHJlYWRVSW50QkUodCxlLHIpe3Q+Pj49MCxlPj4+PTAscnx8Y2hlY2tPZmZzZXQodCxlLHRoaXMubGVuZ3RoKTtsZXQgbj10aGlzW3QrLS1lXSxpPTE7Zm9yKDtlPjAmJihpKj0yNTYpOyluKz10aGlzW3QrLS1lXSppO3JldHVybiBufSxCdWZmZXIucHJvdG90eXBlLnJlYWRVaW50OD1CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbiByZWFkVUludDgodCxlKXtyZXR1cm4gdD4+Pj0wLGV8fGNoZWNrT2Zmc2V0KHQsMSx0aGlzLmxlbmd0aCksdGhpc1t0XX0sQnVmZmVyLnByb3RvdHlwZS5yZWFkVWludDE2TEU9QnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDE2TEU9ZnVuY3Rpb24gcmVhZFVJbnQxNkxFKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxjaGVja09mZnNldCh0LDIsdGhpcy5sZW5ndGgpLHRoaXNbdF18dGhpc1t0KzFdPDw4fSxCdWZmZXIucHJvdG90eXBlLnJlYWRVaW50MTZCRT1CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MTZCRT1mdW5jdGlvbiByZWFkVUludDE2QkUodCxlKXtyZXR1cm4gdD4+Pj0wLGV8fGNoZWNrT2Zmc2V0KHQsMix0aGlzLmxlbmd0aCksdGhpc1t0XTw8OHx0aGlzW3QrMV19LEJ1ZmZlci5wcm90b3R5cGUucmVhZFVpbnQzMkxFPUJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQzMkxFPWZ1bmN0aW9uIHJlYWRVSW50MzJMRSh0LGUpe3JldHVybiB0Pj4+PTAsZXx8Y2hlY2tPZmZzZXQodCw0LHRoaXMubGVuZ3RoKSwodGhpc1t0XXx0aGlzW3QrMV08PDh8dGhpc1t0KzJdPDwxNikrMTY3NzcyMTYqdGhpc1t0KzNdfSxCdWZmZXIucHJvdG90eXBlLnJlYWRVaW50MzJCRT1CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MzJCRT1mdW5jdGlvbiByZWFkVUludDMyQkUodCxlKXtyZXR1cm4gdD4+Pj0wLGV8fGNoZWNrT2Zmc2V0KHQsNCx0aGlzLmxlbmd0aCksMTY3NzcyMTYqdGhpc1t0XSsodGhpc1t0KzFdPDwxNnx0aGlzW3QrMl08PDh8dGhpc1t0KzNdKX0sQnVmZmVyLnByb3RvdHlwZS5yZWFkQmlnVUludDY0TEU9ZGVmaW5lQmlnSW50TWV0aG9kKChmdW5jdGlvbiByZWFkQmlnVUludDY0TEUodCl7dmFsaWRhdGVOdW1iZXIodD4+Pj0wLCJvZmZzZXQiKTtjb25zdCBlPXRoaXNbdF0scj10aGlzW3QrN107dm9pZCAwIT09ZSYmdm9pZCAwIT09cnx8Ym91bmRzRXJyb3IodCx0aGlzLmxlbmd0aC04KTtjb25zdCBuPWUrMjU2KnRoaXNbKyt0XSs2NTUzNip0aGlzWysrdF0rdGhpc1srK3RdKjIqKjI0LGk9dGhpc1srK3RdKzI1Nip0aGlzWysrdF0rNjU1MzYqdGhpc1srK3RdK3IqMioqMjQ7cmV0dXJuIEJpZ0ludChuKSsoQmlnSW50KGkpPDxCaWdJbnQoMzIpKX0pKSxCdWZmZXIucHJvdG90eXBlLnJlYWRCaWdVSW50NjRCRT1kZWZpbmVCaWdJbnRNZXRob2QoKGZ1bmN0aW9uIHJlYWRCaWdVSW50NjRCRSh0KXt2YWxpZGF0ZU51bWJlcih0Pj4+PTAsIm9mZnNldCIpO2NvbnN0IGU9dGhpc1t0XSxyPXRoaXNbdCs3XTt2b2lkIDAhPT1lJiZ2b2lkIDAhPT1yfHxib3VuZHNFcnJvcih0LHRoaXMubGVuZ3RoLTgpO2NvbnN0IG49ZSoyKioyNCs2NTUzNip0aGlzWysrdF0rMjU2KnRoaXNbKyt0XSt0aGlzWysrdF0saT10aGlzWysrdF0qMioqMjQrNjU1MzYqdGhpc1srK3RdKzI1Nip0aGlzWysrdF0rcjtyZXR1cm4oQmlnSW50KG4pPDxCaWdJbnQoMzIpKStCaWdJbnQoaSl9KSksQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50TEU9ZnVuY3Rpb24gcmVhZEludExFKHQsZSxyKXt0Pj4+PTAsZT4+Pj0wLHJ8fGNoZWNrT2Zmc2V0KHQsZSx0aGlzLmxlbmd0aCk7bGV0IG49dGhpc1t0XSxpPTEsbz0wO2Zvcig7KytvPGUmJihpKj0yNTYpOyluKz10aGlzW3Qrb10qaTtyZXR1cm4gaSo9MTI4LG4+PWkmJihuLT1NYXRoLnBvdygyLDgqZSkpLG59LEJ1ZmZlci5wcm90b3R5cGUucmVhZEludEJFPWZ1bmN0aW9uIHJlYWRJbnRCRSh0LGUscil7dD4+Pj0wLGU+Pj49MCxyfHxjaGVja09mZnNldCh0LGUsdGhpcy5sZW5ndGgpO2xldCBuPWUsaT0xLG89dGhpc1t0Ky0tbl07Zm9yKDtuPjAmJihpKj0yNTYpOylvKz10aGlzW3QrLS1uXSppO3JldHVybiBpKj0xMjgsbz49aSYmKG8tPU1hdGgucG93KDIsOCplKSksb30sQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50OD1mdW5jdGlvbiByZWFkSW50OCh0LGUpe3JldHVybiB0Pj4+PTAsZXx8Y2hlY2tPZmZzZXQodCwxLHRoaXMubGVuZ3RoKSwxMjgmdGhpc1t0XT8tMSooMjU1LXRoaXNbdF0rMSk6dGhpc1t0XX0sQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MTZMRT1mdW5jdGlvbiByZWFkSW50MTZMRSh0LGUpe3Q+Pj49MCxlfHxjaGVja09mZnNldCh0LDIsdGhpcy5sZW5ndGgpO2NvbnN0IHI9dGhpc1t0XXx0aGlzW3QrMV08PDg7cmV0dXJuIDMyNzY4JnI/NDI5NDkwMTc2MHxyOnJ9LEJ1ZmZlci5wcm90b3R5cGUucmVhZEludDE2QkU9ZnVuY3Rpb24gcmVhZEludDE2QkUodCxlKXt0Pj4+PTAsZXx8Y2hlY2tPZmZzZXQodCwyLHRoaXMubGVuZ3RoKTtjb25zdCByPXRoaXNbdCsxXXx0aGlzW3RdPDw4O3JldHVybiAzMjc2OCZyPzQyOTQ5MDE3NjB8cjpyfSxCdWZmZXIucHJvdG90eXBlLnJlYWRJbnQzMkxFPWZ1bmN0aW9uIHJlYWRJbnQzMkxFKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxjaGVja09mZnNldCh0LDQsdGhpcy5sZW5ndGgpLHRoaXNbdF18dGhpc1t0KzFdPDw4fHRoaXNbdCsyXTw8MTZ8dGhpc1t0KzNdPDwyNH0sQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MzJCRT1mdW5jdGlvbiByZWFkSW50MzJCRSh0LGUpe3JldHVybiB0Pj4+PTAsZXx8Y2hlY2tPZmZzZXQodCw0LHRoaXMubGVuZ3RoKSx0aGlzW3RdPDwyNHx0aGlzW3QrMV08PDE2fHRoaXNbdCsyXTw8OHx0aGlzW3QrM119LEJ1ZmZlci5wcm90b3R5cGUucmVhZEJpZ0ludDY0TEU9ZGVmaW5lQmlnSW50TWV0aG9kKChmdW5jdGlvbiByZWFkQmlnSW50NjRMRSh0KXt2YWxpZGF0ZU51bWJlcih0Pj4+PTAsIm9mZnNldCIpO2NvbnN0IGU9dGhpc1t0XSxyPXRoaXNbdCs3XTt2b2lkIDAhPT1lJiZ2b2lkIDAhPT1yfHxib3VuZHNFcnJvcih0LHRoaXMubGVuZ3RoLTgpO2NvbnN0IG49dGhpc1t0KzRdKzI1Nip0aGlzW3QrNV0rNjU1MzYqdGhpc1t0KzZdKyhyPDwyNCk7cmV0dXJuKEJpZ0ludChuKTw8QmlnSW50KDMyKSkrQmlnSW50KGUrMjU2KnRoaXNbKyt0XSs2NTUzNip0aGlzWysrdF0rdGhpc1srK3RdKjIqKjI0KX0pKSxCdWZmZXIucHJvdG90eXBlLnJlYWRCaWdJbnQ2NEJFPWRlZmluZUJpZ0ludE1ldGhvZCgoZnVuY3Rpb24gcmVhZEJpZ0ludDY0QkUodCl7dmFsaWRhdGVOdW1iZXIodD4+Pj0wLCJvZmZzZXQiKTtjb25zdCBlPXRoaXNbdF0scj10aGlzW3QrN107dm9pZCAwIT09ZSYmdm9pZCAwIT09cnx8Ym91bmRzRXJyb3IodCx0aGlzLmxlbmd0aC04KTtjb25zdCBuPShlPDwyNCkrNjU1MzYqdGhpc1srK3RdKzI1Nip0aGlzWysrdF0rdGhpc1srK3RdO3JldHVybihCaWdJbnQobik8PEJpZ0ludCgzMikpK0JpZ0ludCh0aGlzWysrdF0qMioqMjQrNjU1MzYqdGhpc1srK3RdKzI1Nip0aGlzWysrdF0rcil9KSksQnVmZmVyLnByb3RvdHlwZS5yZWFkRmxvYXRMRT1mdW5jdGlvbiByZWFkRmxvYXRMRSh0LGUpe3JldHVybiB0Pj4+PTAsZXx8Y2hlY2tPZmZzZXQodCw0LHRoaXMubGVuZ3RoKSxpLnJlYWQodGhpcyx0LCEwLDIzLDQpfSxCdWZmZXIucHJvdG90eXBlLnJlYWRGbG9hdEJFPWZ1bmN0aW9uIHJlYWRGbG9hdEJFKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxjaGVja09mZnNldCh0LDQsdGhpcy5sZW5ndGgpLGkucmVhZCh0aGlzLHQsITEsMjMsNCl9LEJ1ZmZlci5wcm90b3R5cGUucmVhZERvdWJsZUxFPWZ1bmN0aW9uIHJlYWREb3VibGVMRSh0LGUpe3JldHVybiB0Pj4+PTAsZXx8Y2hlY2tPZmZzZXQodCw4LHRoaXMubGVuZ3RoKSxpLnJlYWQodGhpcyx0LCEwLDUyLDgpfSxCdWZmZXIucHJvdG90eXBlLnJlYWREb3VibGVCRT1mdW5jdGlvbiByZWFkRG91YmxlQkUodCxlKXtyZXR1cm4gdD4+Pj0wLGV8fGNoZWNrT2Zmc2V0KHQsOCx0aGlzLmxlbmd0aCksaS5yZWFkKHRoaXMsdCwhMSw1Miw4KX0sQnVmZmVyLnByb3RvdHlwZS53cml0ZVVpbnRMRT1CdWZmZXIucHJvdG90eXBlLndyaXRlVUludExFPWZ1bmN0aW9uIHdyaXRlVUludExFKHQsZSxyLG4pe2lmKHQ9K3QsZT4+Pj0wLHI+Pj49MCwhbil7Y2hlY2tJbnQodGhpcyx0LGUscixNYXRoLnBvdygyLDgqciktMSwwKX1sZXQgaT0xLG89MDtmb3IodGhpc1tlXT0yNTUmdDsrK288ciYmKGkqPTI1Nik7KXRoaXNbZStvXT10L2kmMjU1O3JldHVybiBlK3J9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVVaW50QkU9QnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnRCRT1mdW5jdGlvbiB3cml0ZVVJbnRCRSh0LGUscixuKXtpZih0PSt0LGU+Pj49MCxyPj4+PTAsIW4pe2NoZWNrSW50KHRoaXMsdCxlLHIsTWF0aC5wb3coMiw4KnIpLTEsMCl9bGV0IGk9ci0xLG89MTtmb3IodGhpc1tlK2ldPTI1NSZ0Oy0taT49MCYmKG8qPTI1Nik7KXRoaXNbZStpXT10L28mMjU1O3JldHVybiBlK3J9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVVaW50OD1CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDg9ZnVuY3Rpb24gd3JpdGVVSW50OCh0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fGNoZWNrSW50KHRoaXMsdCxlLDEsMjU1LDApLHRoaXNbZV09MjU1JnQsZSsxfSxCdWZmZXIucHJvdG90eXBlLndyaXRlVWludDE2TEU9QnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQxNkxFPWZ1bmN0aW9uIHdyaXRlVUludDE2TEUodCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxjaGVja0ludCh0aGlzLHQsZSwyLDY1NTM1LDApLHRoaXNbZV09MjU1JnQsdGhpc1tlKzFdPXQ+Pj44LGUrMn0sQnVmZmVyLnByb3RvdHlwZS53cml0ZVVpbnQxNkJFPUJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MTZCRT1mdW5jdGlvbiB3cml0ZVVJbnQxNkJFKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8Y2hlY2tJbnQodGhpcyx0LGUsMiw2NTUzNSwwKSx0aGlzW2VdPXQ+Pj44LHRoaXNbZSsxXT0yNTUmdCxlKzJ9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVVaW50MzJMRT1CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDMyTEU9ZnVuY3Rpb24gd3JpdGVVSW50MzJMRSh0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fGNoZWNrSW50KHRoaXMsdCxlLDQsNDI5NDk2NzI5NSwwKSx0aGlzW2UrM109dD4+PjI0LHRoaXNbZSsyXT10Pj4+MTYsdGhpc1tlKzFdPXQ+Pj44LHRoaXNbZV09MjU1JnQsZSs0fSxCdWZmZXIucHJvdG90eXBlLndyaXRlVWludDMyQkU9QnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQzMkJFPWZ1bmN0aW9uIHdyaXRlVUludDMyQkUodCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxjaGVja0ludCh0aGlzLHQsZSw0LDQyOTQ5NjcyOTUsMCksdGhpc1tlXT10Pj4+MjQsdGhpc1tlKzFdPXQ+Pj4xNix0aGlzW2UrMl09dD4+PjgsdGhpc1tlKzNdPTI1NSZ0LGUrNH0sQnVmZmVyLnByb3RvdHlwZS53cml0ZUJpZ1VJbnQ2NExFPWRlZmluZUJpZ0ludE1ldGhvZCgoZnVuY3Rpb24gd3JpdGVCaWdVSW50NjRMRSh0LGU9MCl7cmV0dXJuIHdydEJpZ1VJbnQ2NExFKHRoaXMsdCxlLEJpZ0ludCgwKSxCaWdJbnQoIjB4ZmZmZmZmZmZmZmZmZmZmZiIpKX0pKSxCdWZmZXIucHJvdG90eXBlLndyaXRlQmlnVUludDY0QkU9ZGVmaW5lQmlnSW50TWV0aG9kKChmdW5jdGlvbiB3cml0ZUJpZ1VJbnQ2NEJFKHQsZT0wKXtyZXR1cm4gd3J0QmlnVUludDY0QkUodGhpcyx0LGUsQmlnSW50KDApLEJpZ0ludCgiMHhmZmZmZmZmZmZmZmZmZmZmIikpfSkpLEJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnRMRT1mdW5jdGlvbiB3cml0ZUludExFKHQsZSxyLG4pe2lmKHQ9K3QsZT4+Pj0wLCFuKXtjb25zdCBuPU1hdGgucG93KDIsOCpyLTEpO2NoZWNrSW50KHRoaXMsdCxlLHIsbi0xLC1uKX1sZXQgaT0wLG89MSxhPTA7Zm9yKHRoaXNbZV09MjU1JnQ7KytpPHImJihvKj0yNTYpOyl0PDAmJjA9PT1hJiYwIT09dGhpc1tlK2ktMV0mJihhPTEpLHRoaXNbZStpXT0odC9vfDApLWEmMjU1O3JldHVybiBlK3J9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnRCRT1mdW5jdGlvbiB3cml0ZUludEJFKHQsZSxyLG4pe2lmKHQ9K3QsZT4+Pj0wLCFuKXtjb25zdCBuPU1hdGgucG93KDIsOCpyLTEpO2NoZWNrSW50KHRoaXMsdCxlLHIsbi0xLC1uKX1sZXQgaT1yLTEsbz0xLGE9MDtmb3IodGhpc1tlK2ldPTI1NSZ0Oy0taT49MCYmKG8qPTI1Nik7KXQ8MCYmMD09PWEmJjAhPT10aGlzW2UraSsxXSYmKGE9MSksdGhpc1tlK2ldPSh0L298MCktYSYyNTU7cmV0dXJuIGUrcn0sQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDg9ZnVuY3Rpb24gd3JpdGVJbnQ4KHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8Y2hlY2tJbnQodGhpcyx0LGUsMSwxMjcsLTEyOCksdDwwJiYodD0yNTUrdCsxKSx0aGlzW2VdPTI1NSZ0LGUrMX0sQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDE2TEU9ZnVuY3Rpb24gd3JpdGVJbnQxNkxFKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8Y2hlY2tJbnQodGhpcyx0LGUsMiwzMjc2NywtMzI3NjgpLHRoaXNbZV09MjU1JnQsdGhpc1tlKzFdPXQ+Pj44LGUrMn0sQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDE2QkU9ZnVuY3Rpb24gd3JpdGVJbnQxNkJFKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8Y2hlY2tJbnQodGhpcyx0LGUsMiwzMjc2NywtMzI3NjgpLHRoaXNbZV09dD4+PjgsdGhpc1tlKzFdPTI1NSZ0LGUrMn0sQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDMyTEU9ZnVuY3Rpb24gd3JpdGVJbnQzMkxFKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8Y2hlY2tJbnQodGhpcyx0LGUsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSx0aGlzW2VdPTI1NSZ0LHRoaXNbZSsxXT10Pj4+OCx0aGlzW2UrMl09dD4+PjE2LHRoaXNbZSszXT10Pj4+MjQsZSs0fSxCdWZmZXIucHJvdG90eXBlLndyaXRlSW50MzJCRT1mdW5jdGlvbiB3cml0ZUludDMyQkUodCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxjaGVja0ludCh0aGlzLHQsZSw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLHQ8MCYmKHQ9NDI5NDk2NzI5NSt0KzEpLHRoaXNbZV09dD4+PjI0LHRoaXNbZSsxXT10Pj4+MTYsdGhpc1tlKzJdPXQ+Pj44LHRoaXNbZSszXT0yNTUmdCxlKzR9LEJ1ZmZlci5wcm90b3R5cGUud3JpdGVCaWdJbnQ2NExFPWRlZmluZUJpZ0ludE1ldGhvZCgoZnVuY3Rpb24gd3JpdGVCaWdJbnQ2NExFKHQsZT0wKXtyZXR1cm4gd3J0QmlnVUludDY0TEUodGhpcyx0LGUsLUJpZ0ludCgiMHg4MDAwMDAwMDAwMDAwMDAwIiksQmlnSW50KCIweDdmZmZmZmZmZmZmZmZmZmYiKSl9KSksQnVmZmVyLnByb3RvdHlwZS53cml0ZUJpZ0ludDY0QkU9ZGVmaW5lQmlnSW50TWV0aG9kKChmdW5jdGlvbiB3cml0ZUJpZ0ludDY0QkUodCxlPTApe3JldHVybiB3cnRCaWdVSW50NjRCRSh0aGlzLHQsZSwtQmlnSW50KCIweDgwMDAwMDAwMDAwMDAwMDAiKSxCaWdJbnQoIjB4N2ZmZmZmZmZmZmZmZmZmZiIpKX0pKSxCdWZmZXIucHJvdG90eXBlLndyaXRlRmxvYXRMRT1mdW5jdGlvbiB3cml0ZUZsb2F0TEUodCxlLHIpe3JldHVybiB3cml0ZUZsb2F0KHRoaXMsdCxlLCEwLHIpfSxCdWZmZXIucHJvdG90eXBlLndyaXRlRmxvYXRCRT1mdW5jdGlvbiB3cml0ZUZsb2F0QkUodCxlLHIpe3JldHVybiB3cml0ZUZsb2F0KHRoaXMsdCxlLCExLHIpfSxCdWZmZXIucHJvdG90eXBlLndyaXRlRG91YmxlTEU9ZnVuY3Rpb24gd3JpdGVEb3VibGVMRSh0LGUscil7cmV0dXJuIHdyaXRlRG91YmxlKHRoaXMsdCxlLCEwLHIpfSxCdWZmZXIucHJvdG90eXBlLndyaXRlRG91YmxlQkU9ZnVuY3Rpb24gd3JpdGVEb3VibGVCRSh0LGUscil7cmV0dXJuIHdyaXRlRG91YmxlKHRoaXMsdCxlLCExLHIpfSxCdWZmZXIucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24gY29weSh0LGUscixuKXtpZighQnVmZmVyLmlzQnVmZmVyKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoImFyZ3VtZW50IHNob3VsZCBiZSBhIEJ1ZmZlciIpO2lmKHJ8fChyPTApLG58fDA9PT1ufHwobj10aGlzLmxlbmd0aCksZT49dC5sZW5ndGgmJihlPXQubGVuZ3RoKSxlfHwoZT0wKSxuPjAmJm48ciYmKG49ciksbj09PXIpcmV0dXJuIDA7aWYoMD09PXQubGVuZ3RofHwwPT09dGhpcy5sZW5ndGgpcmV0dXJuIDA7aWYoZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJ0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzIik7aWYocjwwfHxyPj10aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYobjwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJzb3VyY2VFbmQgb3V0IG9mIGJvdW5kcyIpO24+dGhpcy5sZW5ndGgmJihuPXRoaXMubGVuZ3RoKSx0Lmxlbmd0aC1lPG4tciYmKG49dC5sZW5ndGgtZStyKTtjb25zdCBpPW4tcjtyZXR1cm4gdGhpcz09PXQmJiJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluP3RoaXMuY29weVdpdGhpbihlLHIsbik6VWludDhBcnJheS5wcm90b3R5cGUuc2V0LmNhbGwodCx0aGlzLnN1YmFycmF5KHIsbiksZSksaX0sQnVmZmVyLnByb3RvdHlwZS5maWxsPWZ1bmN0aW9uIGZpbGwodCxlLHIsbil7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtpZigic3RyaW5nIj09dHlwZW9mIGU/KG49ZSxlPTAscj10aGlzLmxlbmd0aCk6InN0cmluZyI9PXR5cGVvZiByJiYobj1yLHI9dGhpcy5sZW5ndGgpLHZvaWQgMCE9PW4mJiJzdHJpbmciIT10eXBlb2Ygbil0aHJvdyBuZXcgVHlwZUVycm9yKCJlbmNvZGluZyBtdXN0IGJlIGEgc3RyaW5nIik7aWYoInN0cmluZyI9PXR5cGVvZiBuJiYhQnVmZmVyLmlzRW5jb2RpbmcobikpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIituKTtpZigxPT09dC5sZW5ndGgpe2NvbnN0IGU9dC5jaGFyQ29kZUF0KDApOygidXRmOCI9PT1uJiZlPDEyOHx8ImxhdGluMSI9PT1uKSYmKHQ9ZSl9fWVsc2UibnVtYmVyIj09dHlwZW9mIHQ/dCY9MjU1OiJib29sZWFuIj09dHlwZW9mIHQmJih0PU51bWJlcih0KSk7aWYoZTwwfHx0aGlzLmxlbmd0aDxlfHx0aGlzLmxlbmd0aDxyKXRocm93IG5ldyBSYW5nZUVycm9yKCJPdXQgb2YgcmFuZ2UgaW5kZXgiKTtpZihyPD1lKXJldHVybiB0aGlzO2xldCBpO2lmKGU+Pj49MCxyPXZvaWQgMD09PXI/dGhpcy5sZW5ndGg6cj4+PjAsdHx8KHQ9MCksIm51bWJlciI9PXR5cGVvZiB0KWZvcihpPWU7aTxyOysraSl0aGlzW2ldPXQ7ZWxzZXtjb25zdCBvPUJ1ZmZlci5pc0J1ZmZlcih0KT90OkJ1ZmZlci5mcm9tKHQsbiksYT1vLmxlbmd0aDtpZigwPT09YSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgdmFsdWUgIicrdCsnIiBpcyBpbnZhbGlkIGZvciBhcmd1bWVudCAidmFsdWUiJyk7Zm9yKGk9MDtpPHItZTsrK2kpdGhpc1tpK2VdPW9baSVhXX1yZXR1cm4gdGhpc307Y29uc3QgdT17fTtmdW5jdGlvbiBFKHQsZSxyKXt1W3RdPWNsYXNzIE5vZGVFcnJvciBleHRlbmRzIHJ7Y29uc3RydWN0b3IoKXtzdXBlcigpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJtZXNzYWdlIix7dmFsdWU6ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdGhpcy5uYW1lPWAke3RoaXMubmFtZX0gWyR7dH1dYCx0aGlzLnN0YWNrLGRlbGV0ZSB0aGlzLm5hbWV9Z2V0IGNvZGUoKXtyZXR1cm4gdH1zZXQgY29kZSh0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiY29kZSIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOnQsd3JpdGFibGU6ITB9KX10b1N0cmluZygpe3JldHVybmAke3RoaXMubmFtZX0gWyR7dH1dOiAke3RoaXMubWVzc2FnZX1gfX19ZnVuY3Rpb24gYWRkTnVtZXJpY2FsU2VwYXJhdG9yKHQpe2xldCBlPSIiLHI9dC5sZW5ndGg7Y29uc3Qgbj0iLSI9PT10WzBdPzE6MDtmb3IoO3I+PW4rNDtyLT0zKWU9YF8ke3Quc2xpY2Uoci0zLHIpfSR7ZX1gO3JldHVybmAke3Quc2xpY2UoMCxyKX0ke2V9YH1mdW5jdGlvbiBjaGVja0ludEJJKHQsZSxyLG4saSxvKXtpZih0PnJ8fHQ8ZSl7Y29uc3Qgbj0iYmlnaW50Ij09dHlwZW9mIGU/Im4iOiIiO2xldCBpO3Rocm93IGk9bz4zPzA9PT1lfHxlPT09QmlnSW50KDApP2A+PSAwJHtufSBhbmQgPCAyJHtufSAqKiAkezgqKG8rMSl9JHtufWA6YD49IC0oMiR7bn0gKiogJHs4KihvKzEpLTF9JHtufSkgYW5kIDwgMiAqKiAkezgqKG8rMSktMX0ke259YDpgPj0gJHtlfSR7bn0gYW5kIDw9ICR7cn0ke259YCxuZXcgdS5FUlJfT1VUX09GX1JBTkdFKCJ2YWx1ZSIsaSx0KX0hZnVuY3Rpb24gY2hlY2tCb3VuZHModCxlLHIpe3ZhbGlkYXRlTnVtYmVyKGUsIm9mZnNldCIpLHZvaWQgMCE9PXRbZV0mJnZvaWQgMCE9PXRbZStyXXx8Ym91bmRzRXJyb3IoZSx0Lmxlbmd0aC0ocisxKSl9KG4saSxvKX1mdW5jdGlvbiB2YWxpZGF0ZU51bWJlcih0LGUpe2lmKCJudW1iZXIiIT10eXBlb2YgdCl0aHJvdyBuZXcgdS5FUlJfSU5WQUxJRF9BUkdfVFlQRShlLCJudW1iZXIiLHQpfWZ1bmN0aW9uIGJvdW5kc0Vycm9yKHQsZSxyKXtpZihNYXRoLmZsb29yKHQpIT09dCl0aHJvdyB2YWxpZGF0ZU51bWJlcih0LHIpLG5ldyB1LkVSUl9PVVRfT0ZfUkFOR0Uocnx8Im9mZnNldCIsImFuIGludGVnZXIiLHQpO2lmKGU8MCl0aHJvdyBuZXcgdS5FUlJfQlVGRkVSX09VVF9PRl9CT1VORFM7dGhyb3cgbmV3IHUuRVJSX09VVF9PRl9SQU5HRShyfHwib2Zmc2V0IixgPj0gJHtyPzE6MH0gYW5kIDw9ICR7ZX1gLHQpfUUoIkVSUl9CVUZGRVJfT1VUX09GX0JPVU5EUyIsKGZ1bmN0aW9uKHQpe3JldHVybiB0P2Ake3R9IGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kc2A6IkF0dGVtcHQgdG8gYWNjZXNzIG1lbW9yeSBvdXRzaWRlIGJ1ZmZlciBib3VuZHMifSksUmFuZ2VFcnJvciksRSgiRVJSX0lOVkFMSURfQVJHX1RZUEUiLChmdW5jdGlvbih0LGUpe3JldHVybmBUaGUgIiR7dH0iIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBudW1iZXIuIFJlY2VpdmVkIHR5cGUgJHt0eXBlb2YgZX1gfSksVHlwZUVycm9yKSxFKCJFUlJfT1VUX09GX1JBTkdFIiwoZnVuY3Rpb24odCxlLHIpe2xldCBuPWBUaGUgdmFsdWUgb2YgIiR7dH0iIGlzIG91dCBvZiByYW5nZS5gLGk9cjtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihyKSYmTWF0aC5hYnMocik+MioqMzI/aT1hZGROdW1lcmljYWxTZXBhcmF0b3IoU3RyaW5nKHIpKToiYmlnaW50Ij09dHlwZW9mIHImJihpPVN0cmluZyhyKSwocj5CaWdJbnQoMikqKkJpZ0ludCgzMil8fHI8LShCaWdJbnQoMikqKkJpZ0ludCgzMikpKSYmKGk9YWRkTnVtZXJpY2FsU2VwYXJhdG9yKGkpKSxpKz0ibiIpLG4rPWAgSXQgbXVzdCBiZSAke2V9LiBSZWNlaXZlZCAke2l9YCxufSksUmFuZ2VFcnJvcik7Y29uc3QgYz0vW14rLzAtOUEtWmEtei1fXS9nO2Z1bmN0aW9uIHV0ZjhUb0J5dGVzKHQsZSl7bGV0IHI7ZT1lfHwxLzA7Y29uc3Qgbj10Lmxlbmd0aDtsZXQgaT1udWxsO2NvbnN0IG89W107Zm9yKGxldCBhPTA7YTxuOysrYSl7aWYocj10LmNoYXJDb2RlQXQoYSkscj41NTI5NSYmcjw1NzM0NCl7aWYoIWkpe2lmKHI+NTYzMTkpeyhlLT0zKT4tMSYmby5wdXNoKDIzOSwxOTEsMTg5KTtjb250aW51ZX1pZihhKzE9PT1uKXsoZS09Myk+LTEmJm8ucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9aT1yO2NvbnRpbnVlfWlmKHI8NTYzMjApeyhlLT0zKT4tMSYmby5wdXNoKDIzOSwxOTEsMTg5KSxpPXI7Y29udGludWV9cj02NTUzNisoaS01NTI5Njw8MTB8ci01NjMyMCl9ZWxzZSBpJiYoZS09Myk+LTEmJm8ucHVzaCgyMzksMTkxLDE4OSk7aWYoaT1udWxsLHI8MTI4KXtpZigoZS09MSk8MClicmVhaztvLnB1c2gocil9ZWxzZSBpZihyPDIwNDgpe2lmKChlLT0yKTwwKWJyZWFrO28ucHVzaChyPj42fDE5Miw2MyZyfDEyOCl9ZWxzZSBpZihyPDY1NTM2KXtpZigoZS09Myk8MClicmVhaztvLnB1c2gocj4+MTJ8MjI0LHI+PjYmNjN8MTI4LDYzJnJ8MTI4KX1lbHNle2lmKCEocjwxMTE0MTEyKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgY29kZSBwb2ludCIpO2lmKChlLT00KTwwKWJyZWFrO28ucHVzaChyPj4xOHwyNDAscj4+MTImNjN8MTI4LHI+PjYmNjN8MTI4LDYzJnJ8MTI4KX19cmV0dXJuIG99ZnVuY3Rpb24gYmFzZTY0VG9CeXRlcyh0KXtyZXR1cm4gbi50b0J5dGVBcnJheShmdW5jdGlvbiBiYXNlNjRjbGVhbih0KXtpZigodD0odD10LnNwbGl0KCI9IilbMF0pLnRyaW0oKS5yZXBsYWNlKGMsIiIpKS5sZW5ndGg8MilyZXR1cm4iIjtmb3IoO3QubGVuZ3RoJTQhPTA7KXQrPSI9IjtyZXR1cm4gdH0odCkpfWZ1bmN0aW9uIGJsaXRCdWZmZXIodCxlLHIsbil7bGV0IGk7Zm9yKGk9MDtpPG4mJiEoaStyPj1lLmxlbmd0aHx8aT49dC5sZW5ndGgpOysraSllW2krcl09dFtpXTtyZXR1cm4gaX1mdW5jdGlvbiBpc0luc3RhbmNlKHQsZSl7cmV0dXJuIHQgaW5zdGFuY2VvZiBlfHxudWxsIT10JiZudWxsIT10LmNvbnN0cnVjdG9yJiZudWxsIT10LmNvbnN0cnVjdG9yLm5hbWUmJnQuY29uc3RydWN0b3IubmFtZT09PWUubmFtZX1mdW5jdGlvbiBudW1iZXJJc05hTih0KXtyZXR1cm4gdCE9dH1jb25zdCBmPWZ1bmN0aW9uKCl7Y29uc3QgdD0iMDEyMzQ1Njc4OWFiY2RlZiIsZT1uZXcgQXJyYXkoMjU2KTtmb3IobGV0IHI9MDtyPDE2Oysrcil7Y29uc3Qgbj0xNipyO2ZvcihsZXQgaT0wO2k8MTY7KytpKWVbbitpXT10W3JdK3RbaV19cmV0dXJuIGV9KCk7ZnVuY3Rpb24gZGVmaW5lQmlnSW50TWV0aG9kKHQpe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgQmlnSW50P0J1ZmZlckJpZ0ludE5vdERlZmluZWQ6dH1mdW5jdGlvbiBCdWZmZXJCaWdJbnROb3REZWZpbmVkKCl7dGhyb3cgbmV3IEVycm9yKCJCaWdJbnQgbm90IHN1cHBvcnRlZCIpfX0sODMwMzoodCxlLHIpPT57dmFyIG49cig2MTEwKShyKDkzMjUpLCJXZWFrTWFwIik7dC5leHBvcnRzPW59LDgzMTE6KHQsZSxyKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIzNjEpLGk9cigyMTU5KSxvPXIoMTUwNSksYT1uKG4uYmluZCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkodCksdm9pZCAwPT09ZT90Om8/YSh0LGUpOmZ1bmN0aW9uKCl7cmV0dXJuIHQuYXBwbHkoZSxhcmd1bWVudHMpfX19LDgzMjk6KHQsZSxyKT0+e3ZhciBuPXIoNDg5NCk7dC5leHBvcnRzPWZ1bmN0aW9uIGNyZWF0ZUJhc2VFYWNoKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIsaSl7aWYobnVsbD09cilyZXR1cm4gcjtpZighbihyKSlyZXR1cm4gdChyLGkpO2Zvcih2YXIgbz1yLmxlbmd0aCxhPWU/bzotMSxzPU9iamVjdChyKTsoZT9hLS06KythPG8pJiYhMSE9PWkoc1thXSxhLHMpOyk7cmV0dXJuIHJ9fX0sODUzMDp0PT57InVzZSBzdHJpY3QiO3QuZXhwb3J0cz17fX0sODU4NjoodCxlLHIpPT57dmFyIG49cig2NDQ5KSxpPXIoNDM5NCksbz0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLyxhPS9eXHcqJC87dC5leHBvcnRzPWZ1bmN0aW9uIGlzS2V5KHQsZSl7aWYobih0KSlyZXR1cm4hMTt2YXIgcj10eXBlb2YgdDtyZXR1cm4hKCJudW1iZXIiIT1yJiYic3ltYm9sIiE9ciYmImJvb2xlYW4iIT1yJiZudWxsIT10JiYhaSh0KSl8fChhLnRlc3QodCl8fCFvLnRlc3QodCl8fG51bGwhPWUmJnQgaW4gT2JqZWN0KGUpKX19LDg2NTU6KHQsZSxyKT0+e3ZhciBuPXIoNjAyNSk7dC5leHBvcnRzPWZ1bmN0aW9uIGxpc3RDYWNoZUhhcyh0KXtyZXR1cm4gbih0aGlzLl9fZGF0YV9fLHQpPi0xfX0sODY2MToodCxlLHIpPT57InVzZSBzdHJpY3QiO3ZhciBuPXIoOTQ0NyksaT1yKDg4MjgpO3QuZXhwb3J0cz1uJiZpKChmdW5jdGlvbigpe3JldHVybiA0MiE9PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSgoZnVuY3Rpb24oKXt9KSwicHJvdG90eXBlIix7dmFsdWU6NDIsd3JpdGFibGU6ITF9KS5wcm90b3R5cGV9KSl9LDg3NTQ6KHQsZSxyKT0+e3ZhciBuPXIoNTE2MCk7dC5leHBvcnRzPWZ1bmN0aW9uIGNhc3RTbGljZSh0LGUscil7dmFyIGk9dC5sZW5ndGg7cmV0dXJuIHI9dm9pZCAwPT09cj9pOnIsIWUmJnI+PWk/dDpuKHQsZSxyKX19LDg4Mjg6dD0+eyJ1c2Ugc3RyaWN0Ijt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiEhdCgpfWNhdGNoKHQpe3JldHVybiEwfX19LDg4NTk6KHQsZSxyKT0+e3ZhciBuPXIoMzY2MSksaT1yKDEzODApLG89cigxNDU5KTtmdW5jdGlvbiBTZXRDYWNoZSh0KXt2YXIgZT0tMSxyPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5fX2RhdGFfXz1uZXcgbjsrK2U8cjspdGhpcy5hZGQodFtlXSl9U2V0Q2FjaGUucHJvdG90eXBlLmFkZD1TZXRDYWNoZS5wcm90b3R5cGUucHVzaD1pLFNldENhY2hlLnByb3RvdHlwZS5oYXM9byx0LmV4cG9ydHM9U2V0Q2FjaGV9LDg5ODQ6KHQsZSxyKT0+e3ZhciBuPXIoNTUyNyksaT1yKDM2NTApLG89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt0LmV4cG9ydHM9ZnVuY3Rpb24gYmFzZUtleXModCl7aWYoIW4odCkpcmV0dXJuIGkodCk7dmFyIGU9W107Zm9yKHZhciByIGluIE9iamVjdCh0KSlvLmNhbGwodCxyKSYmImNvbnN0cnVjdG9yIiE9ciYmZS5wdXNoKHIpO3JldHVybiBlfX0sOTIxOTp0PT57dC5leHBvcnRzPWZ1bmN0aW9uIGNhY2hlSGFzKHQsZSl7cmV0dXJuIHQuaGFzKGUpfX0sOTI5ODoodCxlLHIpPT57InVzZSBzdHJpY3QiO3ZhciBuPXIoNDIzOSksaT1PYmplY3Q7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBpKG4odCkpfX0sOTMwNzoodCxlLHIpPT57InVzZSBzdHJpY3QiO3ZhciBuPXIoMTA5MSksaT1yKDQ2NzMpO24oe3RhcmdldDoiRnVuY3Rpb24iLHByb3RvOiEwLGZvcmNlZDpGdW5jdGlvbi5iaW5kIT09aX0se2JpbmQ6aX0pfSw5MzI1Oih0LGUscik9Pnt2YXIgbj1yKDQ4NDApLGk9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixvPW58fGl8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCk7dC5leHBvcnRzPW99LDkzMjY6KHQsZSxyKT0+e3ZhciBuPXIoMTc2OSksaT1yKDI0MjgpLG89cig2NDQ5KSxhPXIoMzYxKSxzPXIoMjk0KSx1PXIoNzc5Nyk7dC5leHBvcnRzPWZ1bmN0aW9uIGhhc1BhdGgodCxlLHIpe2Zvcih2YXIgYz0tMSxmPShlPW4oZSx0KSkubGVuZ3RoLGw9ITE7KytjPGY7KXt2YXIgaD11KGVbY10pO2lmKCEobD1udWxsIT10JiZyKHQsaCkpKWJyZWFrO3Q9dFtoXX1yZXR1cm4gbHx8KytjIT1mP2w6ISEoZj1udWxsPT10PzA6dC5sZW5ndGgpJiZzKGYpJiZhKGgsZikmJihvKHQpfHxpKHQpKX19LDkzNTA6dD0+e3ZhciBlPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dC5leHBvcnRzPWZ1bmN0aW9uIG9iamVjdFRvU3RyaW5nKHQpe3JldHVybiBlLmNhbGwodCl9fSw5MzY3Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cigyMTU5KSxpPXIoNzEzNik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dFtlXTtyZXR1cm4gaShyKT92b2lkIDA6bihyKX19LDkzNzQ6KHQsZSxyKT0+e3ZhciBuPXIoNDEyOCksaT1yKDM4MDUpLG89cig0Mzk0KSxhPS9eWy0rXTB4WzAtOWEtZl0rJC9pLHM9L14wYlswMV0rJC9pLHU9L14wb1swLTddKyQvaSxjPXBhcnNlSW50O3QuZXhwb3J0cz1mdW5jdGlvbiB0b051bWJlcih0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYobyh0KSlyZXR1cm4gTmFOO2lmKGkodCkpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PWkoZSk/ZSsiIjplfWlmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gMD09PXQ/dDordDt0PW4odCk7dmFyIHI9cy50ZXN0KHQpO3JldHVybiByfHx1LnRlc3QodCk/Yyh0LnNsaWNlKDIpLHI/Mjo4KTphLnRlc3QodCk/TmFOOit0fX0sOTQwNDpmdW5jdGlvbih0KXt0LmV4cG9ydHM9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHQ9QXJyYXkucHJvdG90eXBlLnNsaWNlO2Z1bmN0aW9uIGNyZWF0ZUNsYXNzKHQsZSl7ZSYmKHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUpKSx0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj10fWZ1bmN0aW9uIEl0ZXJhYmxlKHQpe3JldHVybiBpc0l0ZXJhYmxlKHQpP3Q6U2VxKHQpfWZ1bmN0aW9uIEtleWVkSXRlcmFibGUodCl7cmV0dXJuIGlzS2V5ZWQodCk/dDpLZXllZFNlcSh0KX1mdW5jdGlvbiBJbmRleGVkSXRlcmFibGUodCl7cmV0dXJuIGlzSW5kZXhlZCh0KT90OkluZGV4ZWRTZXEodCl9ZnVuY3Rpb24gU2V0SXRlcmFibGUodCl7cmV0dXJuIGlzSXRlcmFibGUodCkmJiFpc0Fzc29jaWF0aXZlKHQpP3Q6U2V0U2VxKHQpfWZ1bmN0aW9uIGlzSXRlcmFibGUodCl7cmV0dXJuISghdHx8IXRbZV0pfWZ1bmN0aW9uIGlzS2V5ZWQodCl7cmV0dXJuISghdHx8IXRbcl0pfWZ1bmN0aW9uIGlzSW5kZXhlZCh0KXtyZXR1cm4hKCF0fHwhdFtuXSl9ZnVuY3Rpb24gaXNBc3NvY2lhdGl2ZSh0KXtyZXR1cm4gaXNLZXllZCh0KXx8aXNJbmRleGVkKHQpfWZ1bmN0aW9uIGlzT3JkZXJlZCh0KXtyZXR1cm4hKCF0fHwhdFtpXSl9Y3JlYXRlQ2xhc3MoS2V5ZWRJdGVyYWJsZSxJdGVyYWJsZSksY3JlYXRlQ2xhc3MoSW5kZXhlZEl0ZXJhYmxlLEl0ZXJhYmxlKSxjcmVhdGVDbGFzcyhTZXRJdGVyYWJsZSxJdGVyYWJsZSksSXRlcmFibGUuaXNJdGVyYWJsZT1pc0l0ZXJhYmxlLEl0ZXJhYmxlLmlzS2V5ZWQ9aXNLZXllZCxJdGVyYWJsZS5pc0luZGV4ZWQ9aXNJbmRleGVkLEl0ZXJhYmxlLmlzQXNzb2NpYXRpdmU9aXNBc3NvY2lhdGl2ZSxJdGVyYWJsZS5pc09yZGVyZWQ9aXNPcmRlcmVkLEl0ZXJhYmxlLktleWVkPUtleWVkSXRlcmFibGUsSXRlcmFibGUuSW5kZXhlZD1JbmRleGVkSXRlcmFibGUsSXRlcmFibGUuU2V0PVNldEl0ZXJhYmxlO3ZhciBlPSJAQF9fSU1NVVRBQkxFX0lURVJBQkxFX19AQCIscj0iQEBfX0lNTVVUQUJMRV9LRVlFRF9fQEAiLG49IkBAX19JTU1VVEFCTEVfSU5ERVhFRF9fQEAiLGk9IkBAX19JTU1VVEFCTEVfT1JERVJFRF9fQEAiLG89ImRlbGV0ZSIsYT01LHM9MTw8YSx1PXMtMSxjPXt9LGY9e3ZhbHVlOiExfSxsPXt2YWx1ZTohMX07ZnVuY3Rpb24gTWFrZVJlZih0KXtyZXR1cm4gdC52YWx1ZT0hMSx0fWZ1bmN0aW9uIFNldFJlZih0KXt0JiYodC52YWx1ZT0hMCl9ZnVuY3Rpb24gT3duZXJJRCgpe31mdW5jdGlvbiBhcnJDb3B5KHQsZSl7ZT1lfHwwO2Zvcih2YXIgcj1NYXRoLm1heCgwLHQubGVuZ3RoLWUpLG49bmV3IEFycmF5KHIpLGk9MDtpPHI7aSsrKW5baV09dFtpK2VdO3JldHVybiBufWZ1bmN0aW9uIGVuc3VyZVNpemUodCl7cmV0dXJuIHZvaWQgMD09PXQuc2l6ZSYmKHQuc2l6ZT10Ll9faXRlcmF0ZShyZXR1cm5UcnVlKSksdC5zaXplfWZ1bmN0aW9uIHdyYXBJbmRleCh0LGUpe2lmKCJudW1iZXIiIT10eXBlb2YgZSl7dmFyIHI9ZT4+PjA7aWYoIiIrciE9PWV8fDQyOTQ5NjcyOTU9PT1yKXJldHVybiBOYU47ZT1yfXJldHVybiBlPDA/ZW5zdXJlU2l6ZSh0KStlOmV9ZnVuY3Rpb24gcmV0dXJuVHJ1ZSgpe3JldHVybiEwfWZ1bmN0aW9uIHdob2xlU2xpY2UodCxlLHIpe3JldHVybigwPT09dHx8dm9pZCAwIT09ciYmdDw9LXIpJiYodm9pZCAwPT09ZXx8dm9pZCAwIT09ciYmZT49cil9ZnVuY3Rpb24gcmVzb2x2ZUJlZ2luKHQsZSl7cmV0dXJuIHJlc29sdmVJbmRleCh0LGUsMCl9ZnVuY3Rpb24gcmVzb2x2ZUVuZCh0LGUpe3JldHVybiByZXNvbHZlSW5kZXgodCxlLGUpfWZ1bmN0aW9uIHJlc29sdmVJbmRleCh0LGUscil7cmV0dXJuIHZvaWQgMD09PXQ/cjp0PDA/TWF0aC5tYXgoMCxlK3QpOnZvaWQgMD09PWU/dDpNYXRoLm1pbihlLHQpfXZhciBoPTAscD0xLGQ9MixfPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvcix5PSJAQGl0ZXJhdG9yIixtPV98fHk7ZnVuY3Rpb24gSXRlcmF0b3IodCl7dGhpcy5uZXh0PXR9ZnVuY3Rpb24gaXRlcmF0b3JWYWx1ZSh0LGUscixuKXt2YXIgaT0wPT09dD9lOjE9PT10P3I6W2Uscl07cmV0dXJuIG4/bi52YWx1ZT1pOm49e3ZhbHVlOmksZG9uZTohMX0sbn1mdW5jdGlvbiBpdGVyYXRvckRvbmUoKXtyZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fWZ1bmN0aW9uIGhhc0l0ZXJhdG9yKHQpe3JldHVybiEhZ2V0SXRlcmF0b3JGbih0KX1mdW5jdGlvbiBpc0l0ZXJhdG9yKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgdC5uZXh0fWZ1bmN0aW9uIGdldEl0ZXJhdG9yKHQpe3ZhciBlPWdldEl0ZXJhdG9yRm4odCk7cmV0dXJuIGUmJmUuY2FsbCh0KX1mdW5jdGlvbiBnZXRJdGVyYXRvckZuKHQpe3ZhciBlPXQmJihfJiZ0W19dfHx0W3ldKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZSlyZXR1cm4gZX1mdW5jdGlvbiBpc0FycmF5TGlrZSh0KXtyZXR1cm4gdCYmIm51bWJlciI9PXR5cGVvZiB0Lmxlbmd0aH1mdW5jdGlvbiBTZXEodCl7cmV0dXJuIG51bGw9PXQ/ZW1wdHlTZXF1ZW5jZSgpOmlzSXRlcmFibGUodCk/dC50b1NlcSgpOnNlcUZyb21WYWx1ZSh0KX1mdW5jdGlvbiBLZXllZFNlcSh0KXtyZXR1cm4gbnVsbD09dD9lbXB0eVNlcXVlbmNlKCkudG9LZXllZFNlcSgpOmlzSXRlcmFibGUodCk/aXNLZXllZCh0KT90LnRvU2VxKCk6dC5mcm9tRW50cnlTZXEoKTprZXllZFNlcUZyb21WYWx1ZSh0KX1mdW5jdGlvbiBJbmRleGVkU2VxKHQpe3JldHVybiBudWxsPT10P2VtcHR5U2VxdWVuY2UoKTppc0l0ZXJhYmxlKHQpP2lzS2V5ZWQodCk/dC5lbnRyeVNlcSgpOnQudG9JbmRleGVkU2VxKCk6aW5kZXhlZFNlcUZyb21WYWx1ZSh0KX1mdW5jdGlvbiBTZXRTZXEodCl7cmV0dXJuKG51bGw9PXQ/ZW1wdHlTZXF1ZW5jZSgpOmlzSXRlcmFibGUodCk/aXNLZXllZCh0KT90LmVudHJ5U2VxKCk6dDppbmRleGVkU2VxRnJvbVZhbHVlKHQpKS50b1NldFNlcSgpfUl0ZXJhdG9yLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJbSXRlcmF0b3JdIn0sSXRlcmF0b3IuS0VZUz1oLEl0ZXJhdG9yLlZBTFVFUz1wLEl0ZXJhdG9yLkVOVFJJRVM9ZCxJdGVyYXRvci5wcm90b3R5cGUuaW5zcGVjdD1JdGVyYXRvci5wcm90b3R5cGUudG9Tb3VyY2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygpfSxJdGVyYXRvci5wcm90b3R5cGVbbV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sY3JlYXRlQ2xhc3MoU2VxLEl0ZXJhYmxlKSxTZXEub2Y9ZnVuY3Rpb24oKXtyZXR1cm4gU2VxKGFyZ3VtZW50cyl9LFNlcS5wcm90b3R5cGUudG9TZXE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sU2VxLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9fdG9TdHJpbmcoIlNlcSB7IiwifSIpfSxTZXEucHJvdG90eXBlLmNhY2hlUmVzdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuX2NhY2hlJiZ0aGlzLl9faXRlcmF0ZVVuY2FjaGVkJiYodGhpcy5fY2FjaGU9dGhpcy5lbnRyeVNlcSgpLnRvQXJyYXkoKSx0aGlzLnNpemU9dGhpcy5fY2FjaGUubGVuZ3RoKSx0aGlzfSxTZXEucHJvdG90eXBlLl9faXRlcmF0ZT1mdW5jdGlvbih0LGUpe3JldHVybiBzZXFJdGVyYXRlKHRoaXMsdCxlLCEwKX0sU2VxLnByb3RvdHlwZS5fX2l0ZXJhdG9yPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHNlcUl0ZXJhdG9yKHRoaXMsdCxlLCEwKX0sY3JlYXRlQ2xhc3MoS2V5ZWRTZXEsU2VxKSxLZXllZFNlcS5wcm90b3R5cGUudG9LZXllZFNlcT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxjcmVhdGVDbGFzcyhJbmRleGVkU2VxLFNlcSksSW5kZXhlZFNlcS5vZj1mdW5jdGlvbigpe3JldHVybiBJbmRleGVkU2VxKGFyZ3VtZW50cyl9LEluZGV4ZWRTZXEucHJvdG90eXBlLnRvSW5kZXhlZFNlcT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxJbmRleGVkU2VxLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9fdG9TdHJpbmcoIlNlcSBbIiwiXSIpfSxJbmRleGVkU2VxLnByb3RvdHlwZS5fX2l0ZXJhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gc2VxSXRlcmF0ZSh0aGlzLHQsZSwhMSl9LEluZGV4ZWRTZXEucHJvdG90eXBlLl9faXRlcmF0b3I9ZnVuY3Rpb24odCxlKXtyZXR1cm4gc2VxSXRlcmF0b3IodGhpcyx0LGUsITEpfSxjcmVhdGVDbGFzcyhTZXRTZXEsU2VxKSxTZXRTZXEub2Y9ZnVuY3Rpb24oKXtyZXR1cm4gU2V0U2VxKGFyZ3VtZW50cyl9LFNldFNlcS5wcm90b3R5cGUudG9TZXRTZXE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sU2VxLmlzU2VxPWlzU2VxLFNlcS5LZXllZD1LZXllZFNlcSxTZXEuU2V0PVNldFNlcSxTZXEuSW5kZXhlZD1JbmRleGVkU2VxO3ZhciBnLHYsYix3PSJAQF9fSU1NVVRBQkxFX1NFUV9fQEAiO2Z1bmN0aW9uIEFycmF5U2VxKHQpe3RoaXMuX2FycmF5PXQsdGhpcy5zaXplPXQubGVuZ3RofWZ1bmN0aW9uIE9iamVjdFNlcSh0KXt2YXIgZT1PYmplY3Qua2V5cyh0KTt0aGlzLl9vYmplY3Q9dCx0aGlzLl9rZXlzPWUsdGhpcy5zaXplPWUubGVuZ3RofWZ1bmN0aW9uIEl0ZXJhYmxlU2VxKHQpe3RoaXMuX2l0ZXJhYmxlPXQsdGhpcy5zaXplPXQubGVuZ3RofHx0LnNpemV9ZnVuY3Rpb24gSXRlcmF0b3JTZXEodCl7dGhpcy5faXRlcmF0b3I9dCx0aGlzLl9pdGVyYXRvckNhY2hlPVtdfWZ1bmN0aW9uIGlzU2VxKHQpe3JldHVybiEoIXR8fCF0W3ddKX1mdW5jdGlvbiBlbXB0eVNlcXVlbmNlKCl7cmV0dXJuIGd8fChnPW5ldyBBcnJheVNlcShbXSkpfWZ1bmN0aW9uIGtleWVkU2VxRnJvbVZhbHVlKHQpe3ZhciBlPUFycmF5LmlzQXJyYXkodCk/bmV3IEFycmF5U2VxKHQpLmZyb21FbnRyeVNlcSgpOmlzSXRlcmF0b3IodCk/bmV3IEl0ZXJhdG9yU2VxKHQpLmZyb21FbnRyeVNlcSgpOmhhc0l0ZXJhdG9yKHQpP25ldyBJdGVyYWJsZVNlcSh0KS5mcm9tRW50cnlTZXEoKToib2JqZWN0Ij09dHlwZW9mIHQ/bmV3IE9iamVjdFNlcSh0KTp2b2lkIDA7aWYoIWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgQXJyYXkgb3IgaXRlcmFibGUgb2JqZWN0IG9mIFtrLCB2XSBlbnRyaWVzLCBvciBrZXllZCBvYmplY3Q6ICIrdCk7cmV0dXJuIGV9ZnVuY3Rpb24gaW5kZXhlZFNlcUZyb21WYWx1ZSh0KXt2YXIgZT1tYXliZUluZGV4ZWRTZXFGcm9tVmFsdWUodCk7aWYoIWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgQXJyYXkgb3IgaXRlcmFibGUgb2JqZWN0IG9mIHZhbHVlczogIit0KTtyZXR1cm4gZX1mdW5jdGlvbiBzZXFGcm9tVmFsdWUodCl7dmFyIGU9bWF5YmVJbmRleGVkU2VxRnJvbVZhbHVlKHQpfHwib2JqZWN0Ij09dHlwZW9mIHQmJm5ldyBPYmplY3RTZXEodCk7aWYoIWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgQXJyYXkgb3IgaXRlcmFibGUgb2JqZWN0IG9mIHZhbHVlcywgb3Iga2V5ZWQgb2JqZWN0OiAiK3QpO3JldHVybiBlfWZ1bmN0aW9uIG1heWJlSW5kZXhlZFNlcUZyb21WYWx1ZSh0KXtyZXR1cm4gaXNBcnJheUxpa2UodCk/bmV3IEFycmF5U2VxKHQpOmlzSXRlcmF0b3IodCk/bmV3IEl0ZXJhdG9yU2VxKHQpOmhhc0l0ZXJhdG9yKHQpP25ldyBJdGVyYWJsZVNlcSh0KTp2b2lkIDB9ZnVuY3Rpb24gc2VxSXRlcmF0ZSh0LGUscixuKXt2YXIgaT10Ll9jYWNoZTtpZihpKXtmb3IodmFyIG89aS5sZW5ndGgtMSxhPTA7YTw9bzthKyspe3ZhciBzPWlbcj9vLWE6YV07aWYoITE9PT1lKHNbMV0sbj9zWzBdOmEsdCkpcmV0dXJuIGErMX1yZXR1cm4gYX1yZXR1cm4gdC5fX2l0ZXJhdGVVbmNhY2hlZChlLHIpfWZ1bmN0aW9uIHNlcUl0ZXJhdG9yKHQsZSxyLG4pe3ZhciBpPXQuX2NhY2hlO2lmKGkpe3ZhciBvPWkubGVuZ3RoLTEsYT0wO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7dmFyIHQ9aVtyP28tYTphXTtyZXR1cm4gYSsrPm8/aXRlcmF0b3JEb25lKCk6aXRlcmF0b3JWYWx1ZShlLG4/dFswXTphLTEsdFsxXSl9KSl9cmV0dXJuIHQuX19pdGVyYXRvclVuY2FjaGVkKGUscil9ZnVuY3Rpb24gZnJvbUpTKHQsZSl7cmV0dXJuIGU/ZnJvbUpTV2l0aChlLHQsIiIseyIiOnR9KTpmcm9tSlNEZWZhdWx0KHQpfWZ1bmN0aW9uIGZyb21KU1dpdGgodCxlLHIsbil7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/dC5jYWxsKG4scixJbmRleGVkU2VxKGUpLm1hcCgoZnVuY3Rpb24ocixuKXtyZXR1cm4gZnJvbUpTV2l0aCh0LHIsbixlKX0pKSk6aXNQbGFpbk9iaihlKT90LmNhbGwobixyLEtleWVkU2VxKGUpLm1hcCgoZnVuY3Rpb24ocixuKXtyZXR1cm4gZnJvbUpTV2l0aCh0LHIsbixlKX0pKSk6ZX1mdW5jdGlvbiBmcm9tSlNEZWZhdWx0KHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP0luZGV4ZWRTZXEodCkubWFwKGZyb21KU0RlZmF1bHQpLnRvTGlzdCgpOmlzUGxhaW5PYmoodCk/S2V5ZWRTZXEodCkubWFwKGZyb21KU0RlZmF1bHQpLnRvTWFwKCk6dH1mdW5jdGlvbiBpc1BsYWluT2JqKHQpe3JldHVybiB0JiYodC5jb25zdHJ1Y3Rvcj09PU9iamVjdHx8dm9pZCAwPT09dC5jb25zdHJ1Y3Rvcil9ZnVuY3Rpb24gaXModCxlKXtpZih0PT09ZXx8dCE9dCYmZSE9ZSlyZXR1cm4hMDtpZighdHx8IWUpcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQudmFsdWVPZiYmImZ1bmN0aW9uIj09dHlwZW9mIGUudmFsdWVPZil7aWYoKHQ9dC52YWx1ZU9mKCkpPT09KGU9ZS52YWx1ZU9mKCkpfHx0IT10JiZlIT1lKXJldHVybiEwO2lmKCF0fHwhZSlyZXR1cm4hMX1yZXR1cm4hKCJmdW5jdGlvbiIhPXR5cGVvZiB0LmVxdWFsc3x8ImZ1bmN0aW9uIiE9dHlwZW9mIGUuZXF1YWxzfHwhdC5lcXVhbHMoZSkpfWZ1bmN0aW9uIGRlZXBFcXVhbCh0LGUpe2lmKHQ9PT1lKXJldHVybiEwO2lmKCFpc0l0ZXJhYmxlKGUpfHx2b2lkIDAhPT10LnNpemUmJnZvaWQgMCE9PWUuc2l6ZSYmdC5zaXplIT09ZS5zaXplfHx2b2lkIDAhPT10Ll9faGFzaCYmdm9pZCAwIT09ZS5fX2hhc2gmJnQuX19oYXNoIT09ZS5fX2hhc2h8fGlzS2V5ZWQodCkhPT1pc0tleWVkKGUpfHxpc0luZGV4ZWQodCkhPT1pc0luZGV4ZWQoZSl8fGlzT3JkZXJlZCh0KSE9PWlzT3JkZXJlZChlKSlyZXR1cm4hMTtpZigwPT09dC5zaXplJiYwPT09ZS5zaXplKXJldHVybiEwO3ZhciByPSFpc0Fzc29jaWF0aXZlKHQpO2lmKGlzT3JkZXJlZCh0KSl7dmFyIG49dC5lbnRyaWVzKCk7cmV0dXJuIGUuZXZlcnkoKGZ1bmN0aW9uKHQsZSl7dmFyIGk9bi5uZXh0KCkudmFsdWU7cmV0dXJuIGkmJmlzKGlbMV0sdCkmJihyfHxpcyhpWzBdLGUpKX0pKSYmbi5uZXh0KCkuZG9uZX12YXIgaT0hMTtpZih2b2lkIDA9PT10LnNpemUpaWYodm9pZCAwPT09ZS5zaXplKSJmdW5jdGlvbiI9PXR5cGVvZiB0LmNhY2hlUmVzdWx0JiZ0LmNhY2hlUmVzdWx0KCk7ZWxzZXtpPSEwO3ZhciBvPXQ7dD1lLGU9b312YXIgYT0hMCxzPWUuX19pdGVyYXRlKChmdW5jdGlvbihlLG4pe2lmKHI/IXQuaGFzKGUpOmk/IWlzKGUsdC5nZXQobixjKSk6IWlzKHQuZ2V0KG4sYyksZSkpcmV0dXJuIGE9ITEsITF9KSk7cmV0dXJuIGEmJnQuc2l6ZT09PXN9ZnVuY3Rpb24gUmVwZWF0KHQsZSl7aWYoISh0aGlzIGluc3RhbmNlb2YgUmVwZWF0KSlyZXR1cm4gbmV3IFJlcGVhdCh0LGUpO2lmKHRoaXMuX3ZhbHVlPXQsdGhpcy5zaXplPXZvaWQgMD09PWU/MS8wOk1hdGgubWF4KDAsZSksMD09PXRoaXMuc2l6ZSl7aWYodilyZXR1cm4gdjt2PXRoaXN9fWZ1bmN0aW9uIGludmFyaWFudCh0LGUpe2lmKCF0KXRocm93IG5ldyBFcnJvcihlKX1mdW5jdGlvbiBSYW5nZSh0LGUscil7aWYoISh0aGlzIGluc3RhbmNlb2YgUmFuZ2UpKXJldHVybiBuZXcgUmFuZ2UodCxlLHIpO2lmKGludmFyaWFudCgwIT09ciwiQ2Fubm90IHN0ZXAgYSBSYW5nZSBieSAwIiksdD10fHwwLHZvaWQgMD09PWUmJihlPTEvMCkscj12b2lkIDA9PT1yPzE6TWF0aC5hYnMociksZTx0JiYocj0tciksdGhpcy5fc3RhcnQ9dCx0aGlzLl9lbmQ9ZSx0aGlzLl9zdGVwPXIsdGhpcy5zaXplPU1hdGgubWF4KDAsTWF0aC5jZWlsKChlLXQpL3ItMSkrMSksMD09PXRoaXMuc2l6ZSl7aWYoYilyZXR1cm4gYjtiPXRoaXN9fWZ1bmN0aW9uIENvbGxlY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoIkFic3RyYWN0Iil9ZnVuY3Rpb24gS2V5ZWRDb2xsZWN0aW9uKCl7fWZ1bmN0aW9uIEluZGV4ZWRDb2xsZWN0aW9uKCl7fWZ1bmN0aW9uIFNldENvbGxlY3Rpb24oKXt9U2VxLnByb3RvdHlwZVt3XT0hMCxjcmVhdGVDbGFzcyhBcnJheVNlcSxJbmRleGVkU2VxKSxBcnJheVNlcS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuaGFzKHQpP3RoaXMuX2FycmF5W3dyYXBJbmRleCh0aGlzLHQpXTplfSxBcnJheVNlcS5wcm90b3R5cGUuX19pdGVyYXRlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuX2FycmF5LG49ci5sZW5ndGgtMSxpPTA7aTw9bjtpKyspaWYoITE9PT10KHJbZT9uLWk6aV0saSx0aGlzKSlyZXR1cm4gaSsxO3JldHVybiBpfSxBcnJheVNlcS5wcm90b3R5cGUuX19pdGVyYXRvcj1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX2FycmF5LG49ci5sZW5ndGgtMSxpPTA7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXtyZXR1cm4gaT5uP2l0ZXJhdG9yRG9uZSgpOml0ZXJhdG9yVmFsdWUodCxpLHJbZT9uLWkrKzppKytdKX0pKX0sY3JlYXRlQ2xhc3MoT2JqZWN0U2VxLEtleWVkU2VxKSxPYmplY3RTZXEucHJvdG90eXBlLmdldD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lfHx0aGlzLmhhcyh0KT90aGlzLl9vYmplY3RbdF06ZX0sT2JqZWN0U2VxLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX29iamVjdC5oYXNPd25Qcm9wZXJ0eSh0KX0sT2JqZWN0U2VxLnByb3RvdHlwZS5fX2l0ZXJhdGU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dGhpcy5fb2JqZWN0LG49dGhpcy5fa2V5cyxpPW4ubGVuZ3RoLTEsbz0wO288PWk7bysrKXt2YXIgYT1uW2U/aS1vOm9dO2lmKCExPT09dChyW2FdLGEsdGhpcykpcmV0dXJuIG8rMX1yZXR1cm4gb30sT2JqZWN0U2VxLnByb3RvdHlwZS5fX2l0ZXJhdG9yPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fb2JqZWN0LG49dGhpcy5fa2V5cyxpPW4ubGVuZ3RoLTEsbz0wO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7dmFyIGE9bltlP2ktbzpvXTtyZXR1cm4gbysrPmk/aXRlcmF0b3JEb25lKCk6aXRlcmF0b3JWYWx1ZSh0LGEsclthXSl9KSl9LE9iamVjdFNlcS5wcm90b3R5cGVbaV09ITAsY3JlYXRlQ2xhc3MoSXRlcmFibGVTZXEsSW5kZXhlZFNlcSksSXRlcmFibGVTZXEucHJvdG90eXBlLl9faXRlcmF0ZVVuY2FjaGVkPWZ1bmN0aW9uKHQsZSl7aWYoZSlyZXR1cm4gdGhpcy5jYWNoZVJlc3VsdCgpLl9faXRlcmF0ZSh0LGUpO3ZhciByPWdldEl0ZXJhdG9yKHRoaXMuX2l0ZXJhYmxlKSxuPTA7aWYoaXNJdGVyYXRvcihyKSlmb3IodmFyIGk7IShpPXIubmV4dCgpKS5kb25lJiYhMSE9PXQoaS52YWx1ZSxuKyssdGhpcyk7KTtyZXR1cm4gbn0sSXRlcmFibGVTZXEucHJvdG90eXBlLl9faXRlcmF0b3JVbmNhY2hlZD1mdW5jdGlvbih0LGUpe2lmKGUpcmV0dXJuIHRoaXMuY2FjaGVSZXN1bHQoKS5fX2l0ZXJhdG9yKHQsZSk7dmFyIHI9Z2V0SXRlcmF0b3IodGhpcy5faXRlcmFibGUpO2lmKCFpc0l0ZXJhdG9yKHIpKXJldHVybiBuZXcgSXRlcmF0b3IoaXRlcmF0b3JEb25lKTt2YXIgbj0wO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7dmFyIGU9ci5uZXh0KCk7cmV0dXJuIGUuZG9uZT9lOml0ZXJhdG9yVmFsdWUodCxuKyssZS52YWx1ZSl9KSl9LGNyZWF0ZUNsYXNzKEl0ZXJhdG9yU2VxLEluZGV4ZWRTZXEpLEl0ZXJhdG9yU2VxLnByb3RvdHlwZS5fX2l0ZXJhdGVVbmNhY2hlZD1mdW5jdGlvbih0LGUpe2lmKGUpcmV0dXJuIHRoaXMuY2FjaGVSZXN1bHQoKS5fX2l0ZXJhdGUodCxlKTtmb3IodmFyIHIsbj10aGlzLl9pdGVyYXRvcixpPXRoaXMuX2l0ZXJhdG9yQ2FjaGUsbz0wO288aS5sZW5ndGg7KWlmKCExPT09dChpW29dLG8rKyx0aGlzKSlyZXR1cm4gbztmb3IoOyEocj1uLm5leHQoKSkuZG9uZTspe3ZhciBhPXIudmFsdWU7aWYoaVtvXT1hLCExPT09dChhLG8rKyx0aGlzKSlicmVha31yZXR1cm4gb30sSXRlcmF0b3JTZXEucHJvdG90eXBlLl9faXRlcmF0b3JVbmNhY2hlZD1mdW5jdGlvbih0LGUpe2lmKGUpcmV0dXJuIHRoaXMuY2FjaGVSZXN1bHQoKS5fX2l0ZXJhdG9yKHQsZSk7dmFyIHI9dGhpcy5faXRlcmF0b3Isbj10aGlzLl9pdGVyYXRvckNhY2hlLGk9MDtyZXR1cm4gbmV3IEl0ZXJhdG9yKChmdW5jdGlvbigpe2lmKGk+PW4ubGVuZ3RoKXt2YXIgZT1yLm5leHQoKTtpZihlLmRvbmUpcmV0dXJuIGU7bltpXT1lLnZhbHVlfXJldHVybiBpdGVyYXRvclZhbHVlKHQsaSxuW2krK10pfSkpfSxjcmVhdGVDbGFzcyhSZXBlYXQsSW5kZXhlZFNlcSksUmVwZWF0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5zaXplPyJSZXBlYXQgW10iOiJSZXBlYXQgWyAiK3RoaXMuX3ZhbHVlKyIgIit0aGlzLnNpemUrIiB0aW1lcyBdIn0sUmVwZWF0LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5oYXModCk/dGhpcy5fdmFsdWU6ZX0sUmVwZWF0LnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbih0KXtyZXR1cm4gaXModGhpcy5fdmFsdWUsdCl9LFJlcGVhdC5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLnNpemU7cmV0dXJuIHdob2xlU2xpY2UodCxlLHIpP3RoaXM6bmV3IFJlcGVhdCh0aGlzLl92YWx1ZSxyZXNvbHZlRW5kKGUsciktcmVzb2x2ZUJlZ2luKHQscikpfSxSZXBlYXQucHJvdG90eXBlLnJldmVyc2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sUmVwZWF0LnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKHQpe3JldHVybiBpcyh0aGlzLl92YWx1ZSx0KT8wOi0xfSxSZXBlYXQucHJvdG90eXBlLmxhc3RJbmRleE9mPWZ1bmN0aW9uKHQpe3JldHVybiBpcyh0aGlzLl92YWx1ZSx0KT90aGlzLnNpemU6LTF9LFJlcGVhdC5wcm90b3R5cGUuX19pdGVyYXRlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTA7cjx0aGlzLnNpemU7cisrKWlmKCExPT09dCh0aGlzLl92YWx1ZSxyLHRoaXMpKXJldHVybiByKzE7cmV0dXJuIHJ9LFJlcGVhdC5wcm90b3R5cGUuX19pdGVyYXRvcj1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMsbj0wO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7cmV0dXJuIG48ci5zaXplP2l0ZXJhdG9yVmFsdWUodCxuKyssci5fdmFsdWUpOml0ZXJhdG9yRG9uZSgpfSkpfSxSZXBlYXQucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIFJlcGVhdD9pcyh0aGlzLl92YWx1ZSx0Ll92YWx1ZSk6ZGVlcEVxdWFsKHQpfSxjcmVhdGVDbGFzcyhSYW5nZSxJbmRleGVkU2VxKSxSYW5nZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuc2l6ZT8iUmFuZ2UgW10iOiJSYW5nZSBbICIrdGhpcy5fc3RhcnQrIi4uLiIrdGhpcy5fZW5kKygxIT09dGhpcy5fc3RlcD8iIGJ5ICIrdGhpcy5fc3RlcDoiIikrIiBdIn0sUmFuZ2UucHJvdG90eXBlLmdldD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmhhcyh0KT90aGlzLl9zdGFydCt3cmFwSW5kZXgodGhpcyx0KSp0aGlzLl9zdGVwOmV9LFJhbmdlLnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbih0KXt2YXIgZT0odC10aGlzLl9zdGFydCkvdGhpcy5fc3RlcDtyZXR1cm4gZT49MCYmZTx0aGlzLnNpemUmJmU9PT1NYXRoLmZsb29yKGUpfSxSYW5nZS5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gd2hvbGVTbGljZSh0LGUsdGhpcy5zaXplKT90aGlzOih0PXJlc29sdmVCZWdpbih0LHRoaXMuc2l6ZSksKGU9cmVzb2x2ZUVuZChlLHRoaXMuc2l6ZSkpPD10P25ldyBSYW5nZSgwLDApOm5ldyBSYW5nZSh0aGlzLmdldCh0LHRoaXMuX2VuZCksdGhpcy5nZXQoZSx0aGlzLl9lbmQpLHRoaXMuX3N0ZXApKX0sUmFuZ2UucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24odCl7dmFyIGU9dC10aGlzLl9zdGFydDtpZihlJXRoaXMuX3N0ZXA9PTApe3ZhciByPWUvdGhpcy5fc3RlcDtpZihyPj0wJiZyPHRoaXMuc2l6ZSlyZXR1cm4gcn1yZXR1cm4tMX0sUmFuZ2UucHJvdG90eXBlLmxhc3RJbmRleE9mPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmluZGV4T2YodCl9LFJhbmdlLnByb3RvdHlwZS5fX2l0ZXJhdGU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dGhpcy5zaXplLTEsbj10aGlzLl9zdGVwLGk9ZT90aGlzLl9zdGFydCtyKm46dGhpcy5fc3RhcnQsbz0wO288PXI7bysrKXtpZighMT09PXQoaSxvLHRoaXMpKXJldHVybiBvKzE7aSs9ZT8tbjpufXJldHVybiBvfSxSYW5nZS5wcm90b3R5cGUuX19pdGVyYXRvcj1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuc2l6ZS0xLG49dGhpcy5fc3RlcCxpPWU/dGhpcy5fc3RhcnQrcipuOnRoaXMuX3N0YXJ0LG89MDtyZXR1cm4gbmV3IEl0ZXJhdG9yKChmdW5jdGlvbigpe3ZhciBhPWk7cmV0dXJuIGkrPWU/LW46bixvPnI/aXRlcmF0b3JEb25lKCk6aXRlcmF0b3JWYWx1ZSh0LG8rKyxhKX0pKX0sUmFuZ2UucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIFJhbmdlP3RoaXMuX3N0YXJ0PT09dC5fc3RhcnQmJnRoaXMuX2VuZD09PXQuX2VuZCYmdGhpcy5fc3RlcD09PXQuX3N0ZXA6ZGVlcEVxdWFsKHRoaXMsdCl9LGNyZWF0ZUNsYXNzKENvbGxlY3Rpb24sSXRlcmFibGUpLGNyZWF0ZUNsYXNzKEtleWVkQ29sbGVjdGlvbixDb2xsZWN0aW9uKSxjcmVhdGVDbGFzcyhJbmRleGVkQ29sbGVjdGlvbixDb2xsZWN0aW9uKSxjcmVhdGVDbGFzcyhTZXRDb2xsZWN0aW9uLENvbGxlY3Rpb24pLENvbGxlY3Rpb24uS2V5ZWQ9S2V5ZWRDb2xsZWN0aW9uLENvbGxlY3Rpb24uSW5kZXhlZD1JbmRleGVkQ29sbGVjdGlvbixDb2xsZWN0aW9uLlNldD1TZXRDb2xsZWN0aW9uO3ZhciBJPSJmdW5jdGlvbiI9PXR5cGVvZiBNYXRoLmltdWwmJi0yPT09TWF0aC5pbXVsKDQyOTQ5NjcyOTUsMik/TWF0aC5pbXVsOmZ1bmN0aW9uIGltdWwodCxlKXt2YXIgcj02NTUzNSYodHw9MCksbj02NTUzNSYoZXw9MCk7cmV0dXJuIHIqbisoKHQ+Pj4xNikqbityKihlPj4+MTYpPDwxNj4+PjApfDB9O2Z1bmN0aW9uIHNtaSh0KXtyZXR1cm4gdD4+PjEmMTA3Mzc0MTgyNHwzMjIxMjI1NDcxJnR9ZnVuY3Rpb24gaGFzaCh0KXtpZighMT09PXR8fG51bGw9PXQpcmV0dXJuIDA7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQudmFsdWVPZiYmKCExPT09KHQ9dC52YWx1ZU9mKCkpfHxudWxsPT10KSlyZXR1cm4gMDtpZighMD09PXQpcmV0dXJuIDE7dmFyIGU9dHlwZW9mIHQ7aWYoIm51bWJlciI9PT1lKXtpZih0IT10fHx0PT09MS8wKXJldHVybiAwO3ZhciByPTB8dDtmb3IociE9PXQmJihyXj00Mjk0OTY3Mjk1KnQpO3Q+NDI5NDk2NzI5NTspcl49dC89NDI5NDk2NzI5NTtyZXR1cm4gc21pKHIpfWlmKCJzdHJpbmciPT09ZSlyZXR1cm4gdC5sZW5ndGg+aj9jYWNoZWRIYXNoU3RyaW5nKHQpOmhhc2hTdHJpbmcodCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQuaGFzaENvZGUpcmV0dXJuIHQuaGFzaENvZGUoKTtpZigib2JqZWN0Ij09PWUpcmV0dXJuIGhhc2hKU09iaih0KTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdC50b1N0cmluZylyZXR1cm4gaGFzaFN0cmluZyh0LnRvU3RyaW5nKCkpO3Rocm93IG5ldyBFcnJvcigiVmFsdWUgdHlwZSAiK2UrIiBjYW5ub3QgYmUgaGFzaGVkLiIpfWZ1bmN0aW9uIGNhY2hlZEhhc2hTdHJpbmcodCl7dmFyIGU9RFt0XTtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9aGFzaFN0cmluZyh0KSxQPT09eiYmKFA9MCxEPXt9KSxQKyssRFt0XT1lKSxlfWZ1bmN0aW9uIGhhc2hTdHJpbmcodCl7Zm9yKHZhciBlPTAscj0wO3I8dC5sZW5ndGg7cisrKWU9MzEqZSt0LmNoYXJDb2RlQXQocil8MDtyZXR1cm4gc21pKGUpfWZ1bmN0aW9uIGhhc2hKU09iaih0KXt2YXIgZTtpZihDJiZ2b2lkIDAhPT0oZT1rLmdldCh0KSkpcmV0dXJuIGU7aWYodm9pZCAwIT09KGU9dFtMXSkpcmV0dXJuIGU7aWYoIUIpe2lmKHZvaWQgMCE9PShlPXQucHJvcGVydHlJc0VudW1lcmFibGUmJnQucHJvcGVydHlJc0VudW1lcmFibGVbTF0pKXJldHVybiBlO2lmKHZvaWQgMCE9PShlPWdldElFTm9kZUhhc2godCkpKXJldHVybiBlfWlmKGU9KytxLDEwNzM3NDE4MjQmcSYmKHE9MCksQylrLnNldCh0LGUpO2Vsc2V7aWYodm9pZCAwIT09eCYmITE9PT14KHQpKXRocm93IG5ldyBFcnJvcigiTm9uLWV4dGVuc2libGUgb2JqZWN0cyBhcmUgbm90IGFsbG93ZWQgYXMga2V5cy4iKTtpZihCKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LEwse2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiExLHdyaXRhYmxlOiExLHZhbHVlOmV9KTtlbHNlIGlmKHZvaWQgMCE9PXQucHJvcGVydHlJc0VudW1lcmFibGUmJnQucHJvcGVydHlJc0VudW1lcmFibGU9PT10LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSl0LnByb3BlcnR5SXNFbnVtZXJhYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sdC5wcm9wZXJ0eUlzRW51bWVyYWJsZVtMXT1lO2Vsc2V7aWYodm9pZCAwPT09dC5ub2RlVHlwZSl0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBzZXQgYSBub24tZW51bWVyYWJsZSBwcm9wZXJ0eSBvbiBvYmplY3QuIik7dFtMXT1lfX1yZXR1cm4gZX12YXIgeD1PYmplY3QuaXNFeHRlbnNpYmxlLEI9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwiQCIse30pLCEwfWNhdGNoKHQpe3JldHVybiExfX0oKTtmdW5jdGlvbiBnZXRJRU5vZGVIYXNoKHQpe2lmKHQmJnQubm9kZVR5cGU+MClzd2l0Y2godC5ub2RlVHlwZSl7Y2FzZSAxOnJldHVybiB0LnVuaXF1ZUlEO2Nhc2UgOTpyZXR1cm4gdC5kb2N1bWVudEVsZW1lbnQmJnQuZG9jdW1lbnRFbGVtZW50LnVuaXF1ZUlEfX12YXIgayxDPSJmdW5jdGlvbiI9PXR5cGVvZiBXZWFrTWFwO0MmJihrPW5ldyBXZWFrTWFwKTt2YXIgcT0wLEw9Il9faW1tdXRhYmxlaGFzaF9fIjsiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoTD1TeW1ib2woTCkpO3ZhciBqPTE2LHo9MjU1LFA9MCxEPXt9O2Z1bmN0aW9uIGFzc2VydE5vdEluZmluaXRlKHQpe2ludmFyaWFudCh0IT09MS8wLCJDYW5ub3QgcGVyZm9ybSB0aGlzIGFjdGlvbiB3aXRoIGFuIGluZmluaXRlIHNpemUuIil9ZnVuY3Rpb24gTWFwKHQpe3JldHVybiBudWxsPT10P2VtcHR5TWFwKCk6aXNNYXAodCkmJiFpc09yZGVyZWQodCk/dDplbXB0eU1hcCgpLndpdGhNdXRhdGlvbnMoKGZ1bmN0aW9uKGUpe3ZhciByPUtleWVkSXRlcmFibGUodCk7YXNzZXJ0Tm90SW5maW5pdGUoci5zaXplKSxyLmZvckVhY2goKGZ1bmN0aW9uKHQscil7cmV0dXJuIGUuc2V0KHIsdCl9KSl9KSl9ZnVuY3Rpb24gaXNNYXAodCl7cmV0dXJuISghdHx8IXRbV10pfWNyZWF0ZUNsYXNzKE1hcCxLZXllZENvbGxlY3Rpb24pLE1hcC5vZj1mdW5jdGlvbigpe3ZhciBlPXQuY2FsbChhcmd1bWVudHMsMCk7cmV0dXJuIGVtcHR5TWFwKCkud2l0aE11dGF0aW9ucygoZnVuY3Rpb24odCl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKz0yKXtpZihyKzE+PWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiTWlzc2luZyB2YWx1ZSBmb3Iga2V5OiAiK2Vbcl0pO3Quc2V0KGVbcl0sZVtyKzFdKX19KSl9LE1hcC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX3RvU3RyaW5nKCJNYXAgeyIsIn0iKX0sTWFwLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fcm9vdD90aGlzLl9yb290LmdldCgwLHZvaWQgMCx0LGUpOmV9LE1hcC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHVwZGF0ZU1hcCh0aGlzLHQsZSl9LE1hcC5wcm90b3R5cGUuc2V0SW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy51cGRhdGVJbih0LGMsKGZ1bmN0aW9uKCl7cmV0dXJuIGV9KSl9LE1hcC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQpe3JldHVybiB1cGRhdGVNYXAodGhpcyx0LGMpfSxNYXAucHJvdG90eXBlLmRlbGV0ZUluPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnVwZGF0ZUluKHQsKGZ1bmN0aW9uKCl7cmV0dXJuIGN9KSl9LE1hcC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dCh0aGlzKTp0aGlzLnVwZGF0ZUluKFt0XSxlLHIpfSxNYXAucHJvdG90eXBlLnVwZGF0ZUluPWZ1bmN0aW9uKHQsZSxyKXtyfHwocj1lLGU9dm9pZCAwKTt2YXIgbj11cGRhdGVJbkRlZXBNYXAodGhpcyxmb3JjZUl0ZXJhdG9yKHQpLGUscik7cmV0dXJuIG49PT1jP3ZvaWQgMDpufSxNYXAucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnNpemU/dGhpczp0aGlzLl9fb3duZXJJRD8odGhpcy5zaXplPTAsdGhpcy5fcm9vdD1udWxsLHRoaXMuX19oYXNoPXZvaWQgMCx0aGlzLl9fYWx0ZXJlZD0hMCx0aGlzKTplbXB0eU1hcCgpfSxNYXAucHJvdG90eXBlLm1lcmdlPWZ1bmN0aW9uKCl7cmV0dXJuIG1lcmdlSW50b01hcFdpdGgodGhpcyx2b2lkIDAsYXJndW1lbnRzKX0sTWFwLnByb3RvdHlwZS5tZXJnZVdpdGg9ZnVuY3Rpb24oZSl7cmV0dXJuIG1lcmdlSW50b01hcFdpdGgodGhpcyxlLHQuY2FsbChhcmd1bWVudHMsMSkpfSxNYXAucHJvdG90eXBlLm1lcmdlSW49ZnVuY3Rpb24oZSl7dmFyIHI9dC5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gdGhpcy51cGRhdGVJbihlLGVtcHR5TWFwKCksKGZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0Lm1lcmdlP3QubWVyZ2UuYXBwbHkodCxyKTpyW3IubGVuZ3RoLTFdfSkpfSxNYXAucHJvdG90eXBlLm1lcmdlRGVlcD1mdW5jdGlvbigpe3JldHVybiBtZXJnZUludG9NYXBXaXRoKHRoaXMsZGVlcE1lcmdlcixhcmd1bWVudHMpfSxNYXAucHJvdG90eXBlLm1lcmdlRGVlcFdpdGg9ZnVuY3Rpb24oZSl7dmFyIHI9dC5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gbWVyZ2VJbnRvTWFwV2l0aCh0aGlzLGRlZXBNZXJnZXJXaXRoKGUpLHIpfSxNYXAucHJvdG90eXBlLm1lcmdlRGVlcEluPWZ1bmN0aW9uKGUpe3ZhciByPXQuY2FsbChhcmd1bWVudHMsMSk7cmV0dXJuIHRoaXMudXBkYXRlSW4oZSxlbXB0eU1hcCgpLChmdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdC5tZXJnZURlZXA/dC5tZXJnZURlZXAuYXBwbHkodCxyKTpyW3IubGVuZ3RoLTFdfSkpfSxNYXAucHJvdG90eXBlLnNvcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIE9yZGVyZWRNYXAoc29ydEZhY3RvcnkodGhpcyx0KSl9LE1hcC5wcm90b3R5cGUuc29ydEJ5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE9yZGVyZWRNYXAoc29ydEZhY3RvcnkodGhpcyxlLHQpKX0sTWFwLnByb3RvdHlwZS53aXRoTXV0YXRpb25zPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuYXNNdXRhYmxlKCk7cmV0dXJuIHQoZSksZS53YXNBbHRlcmVkKCk/ZS5fX2Vuc3VyZU93bmVyKHRoaXMuX19vd25lcklEKTp0aGlzfSxNYXAucHJvdG90eXBlLmFzTXV0YWJsZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9fb3duZXJJRD90aGlzOnRoaXMuX19lbnN1cmVPd25lcihuZXcgT3duZXJJRCl9LE1hcC5wcm90b3R5cGUuYXNJbW11dGFibGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX2Vuc3VyZU93bmVyKCl9LE1hcC5wcm90b3R5cGUud2FzQWx0ZXJlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9fYWx0ZXJlZH0sTWFwLnByb3RvdHlwZS5fX2l0ZXJhdG9yPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBNYXBJdGVyYXRvcih0aGlzLHQsZSl9LE1hcC5wcm90b3R5cGUuX19pdGVyYXRlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcyxuPTA7cmV0dXJuIHRoaXMuX3Jvb3QmJnRoaXMuX3Jvb3QuaXRlcmF0ZSgoZnVuY3Rpb24oZSl7cmV0dXJuIG4rKyx0KGVbMV0sZVswXSxyKX0pLGUpLG59LE1hcC5wcm90b3R5cGUuX19lbnN1cmVPd25lcj1mdW5jdGlvbih0KXtyZXR1cm4gdD09PXRoaXMuX19vd25lcklEP3RoaXM6dD9tYWtlTWFwKHRoaXMuc2l6ZSx0aGlzLl9yb290LHQsdGhpcy5fX2hhc2gpOih0aGlzLl9fb3duZXJJRD10LHRoaXMuX19hbHRlcmVkPSExLHRoaXMpfSxNYXAuaXNNYXA9aXNNYXA7dmFyIFUsVz0iQEBfX0lNTVVUQUJMRV9NQVBfX0BAIixWPU1hcC5wcm90b3R5cGU7ZnVuY3Rpb24gQXJyYXlNYXBOb2RlKHQsZSl7dGhpcy5vd25lcklEPXQsdGhpcy5lbnRyaWVzPWV9ZnVuY3Rpb24gQml0bWFwSW5kZXhlZE5vZGUodCxlLHIpe3RoaXMub3duZXJJRD10LHRoaXMuYml0bWFwPWUsdGhpcy5ub2Rlcz1yfWZ1bmN0aW9uIEhhc2hBcnJheU1hcE5vZGUodCxlLHIpe3RoaXMub3duZXJJRD10LHRoaXMuY291bnQ9ZSx0aGlzLm5vZGVzPXJ9ZnVuY3Rpb24gSGFzaENvbGxpc2lvbk5vZGUodCxlLHIpe3RoaXMub3duZXJJRD10LHRoaXMua2V5SGFzaD1lLHRoaXMuZW50cmllcz1yfWZ1bmN0aW9uIFZhbHVlTm9kZSh0LGUscil7dGhpcy5vd25lcklEPXQsdGhpcy5rZXlIYXNoPWUsdGhpcy5lbnRyeT1yfWZ1bmN0aW9uIE1hcEl0ZXJhdG9yKHQsZSxyKXt0aGlzLl90eXBlPWUsdGhpcy5fcmV2ZXJzZT1yLHRoaXMuX3N0YWNrPXQuX3Jvb3QmJm1hcEl0ZXJhdG9yRnJhbWUodC5fcm9vdCl9ZnVuY3Rpb24gbWFwSXRlcmF0b3JWYWx1ZSh0LGUpe3JldHVybiBpdGVyYXRvclZhbHVlKHQsZVswXSxlWzFdKX1mdW5jdGlvbiBtYXBJdGVyYXRvckZyYW1lKHQsZSl7cmV0dXJue25vZGU6dCxpbmRleDowLF9fcHJldjplfX1mdW5jdGlvbiBtYWtlTWFwKHQsZSxyLG4pe3ZhciBpPU9iamVjdC5jcmVhdGUoVik7cmV0dXJuIGkuc2l6ZT10LGkuX3Jvb3Q9ZSxpLl9fb3duZXJJRD1yLGkuX19oYXNoPW4saS5fX2FsdGVyZWQ9ITEsaX1mdW5jdGlvbiBlbXB0eU1hcCgpe3JldHVybiBVfHwoVT1tYWtlTWFwKDApKX1mdW5jdGlvbiB1cGRhdGVNYXAodCxlLHIpe3ZhciBuLGk7aWYodC5fcm9vdCl7dmFyIG89TWFrZVJlZihmKSxhPU1ha2VSZWYobCk7aWYobj11cGRhdGVOb2RlKHQuX3Jvb3QsdC5fX293bmVySUQsMCx2b2lkIDAsZSxyLG8sYSksIWEudmFsdWUpcmV0dXJuIHQ7aT10LnNpemUrKG8udmFsdWU/cj09PWM/LTE6MTowKX1lbHNle2lmKHI9PT1jKXJldHVybiB0O2k9MSxuPW5ldyBBcnJheU1hcE5vZGUodC5fX293bmVySUQsW1tlLHJdXSl9cmV0dXJuIHQuX19vd25lcklEPyh0LnNpemU9aSx0Ll9yb290PW4sdC5fX2hhc2g9dm9pZCAwLHQuX19hbHRlcmVkPSEwLHQpOm4/bWFrZU1hcChpLG4pOmVtcHR5TWFwKCl9ZnVuY3Rpb24gdXBkYXRlTm9kZSh0LGUscixuLGksbyxhLHMpe3JldHVybiB0P3QudXBkYXRlKGUscixuLGksbyxhLHMpOm89PT1jP3Q6KFNldFJlZihzKSxTZXRSZWYoYSksbmV3IFZhbHVlTm9kZShlLG4sW2ksb10pKX1mdW5jdGlvbiBpc0xlYWZOb2RlKHQpe3JldHVybiB0LmNvbnN0cnVjdG9yPT09VmFsdWVOb2RlfHx0LmNvbnN0cnVjdG9yPT09SGFzaENvbGxpc2lvbk5vZGV9ZnVuY3Rpb24gbWVyZ2VJbnRvTm9kZSh0LGUscixuLGkpe2lmKHQua2V5SGFzaD09PW4pcmV0dXJuIG5ldyBIYXNoQ29sbGlzaW9uTm9kZShlLG4sW3QuZW50cnksaV0pO3ZhciBvLHM9KDA9PT1yP3Qua2V5SGFzaDp0LmtleUhhc2g+Pj5yKSZ1LGM9KDA9PT1yP246bj4+PnIpJnU7cmV0dXJuIG5ldyBCaXRtYXBJbmRleGVkTm9kZShlLDE8PHN8MTw8YyxzPT09Yz9bbWVyZ2VJbnRvTm9kZSh0LGUscithLG4saSldOihvPW5ldyBWYWx1ZU5vZGUoZSxuLGkpLHM8Yz9bdCxvXTpbbyx0XSkpfWZ1bmN0aW9uIGNyZWF0ZU5vZGVzKHQsZSxyLG4pe3R8fCh0PW5ldyBPd25lcklEKTtmb3IodmFyIGk9bmV3IFZhbHVlTm9kZSh0LGhhc2gociksW3Isbl0pLG89MDtvPGUubGVuZ3RoO28rKyl7dmFyIGE9ZVtvXTtpPWkudXBkYXRlKHQsMCx2b2lkIDAsYVswXSxhWzFdKX1yZXR1cm4gaX1mdW5jdGlvbiBwYWNrTm9kZXModCxlLHIsbil7Zm9yKHZhciBpPTAsbz0wLGE9bmV3IEFycmF5KHIpLHM9MCx1PTEsYz1lLmxlbmd0aDtzPGM7cysrLHU8PD0xKXt2YXIgZj1lW3NdO3ZvaWQgMCE9PWYmJnMhPT1uJiYoaXw9dSxhW28rK109Zil9cmV0dXJuIG5ldyBCaXRtYXBJbmRleGVkTm9kZSh0LGksYSl9ZnVuY3Rpb24gZXhwYW5kTm9kZXModCxlLHIsbixpKXtmb3IodmFyIG89MCxhPW5ldyBBcnJheShzKSx1PTA7MCE9PXI7dSsrLHI+Pj49MSlhW3VdPTEmcj9lW28rK106dm9pZCAwO3JldHVybiBhW25dPWksbmV3IEhhc2hBcnJheU1hcE5vZGUodCxvKzEsYSl9ZnVuY3Rpb24gbWVyZ2VJbnRvTWFwV2l0aCh0LGUscil7Zm9yKHZhciBuPVtdLGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIG89cltpXSxhPUtleWVkSXRlcmFibGUobyk7aXNJdGVyYWJsZShvKXx8KGE9YS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBmcm9tSlModCl9KSkpLG4ucHVzaChhKX1yZXR1cm4gbWVyZ2VJbnRvQ29sbGVjdGlvbldpdGgodCxlLG4pfWZ1bmN0aW9uIGRlZXBNZXJnZXIodCxlLHIpe3JldHVybiB0JiZ0Lm1lcmdlRGVlcCYmaXNJdGVyYWJsZShlKT90Lm1lcmdlRGVlcChlKTppcyh0LGUpP3Q6ZX1mdW5jdGlvbiBkZWVwTWVyZ2VyV2l0aCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxyLG4pe2lmKGUmJmUubWVyZ2VEZWVwV2l0aCYmaXNJdGVyYWJsZShyKSlyZXR1cm4gZS5tZXJnZURlZXBXaXRoKHQscik7dmFyIGk9dChlLHIsbik7cmV0dXJuIGlzKGUsaSk/ZTppfX1mdW5jdGlvbiBtZXJnZUludG9Db2xsZWN0aW9uV2l0aCh0LGUscil7cmV0dXJuIDA9PT0ocj1yLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIDAhPT10LnNpemV9KSkpLmxlbmd0aD90OjAhPT10LnNpemV8fHQuX19vd25lcklEfHwxIT09ci5sZW5ndGg/dC53aXRoTXV0YXRpb25zKChmdW5jdGlvbih0KXtmb3IodmFyIG49ZT9mdW5jdGlvbihyLG4pe3QudXBkYXRlKG4sYywoZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1jP3I6ZSh0LHIsbil9KSl9OmZ1bmN0aW9uKGUscil7dC5zZXQocixlKX0saT0wO2k8ci5sZW5ndGg7aSsrKXJbaV0uZm9yRWFjaChuKX0pKTp0LmNvbnN0cnVjdG9yKHJbMF0pfWZ1bmN0aW9uIHVwZGF0ZUluRGVlcE1hcCh0LGUscixuKXt2YXIgaT10PT09YyxvPWUubmV4dCgpO2lmKG8uZG9uZSl7dmFyIGE9aT9yOnQscz1uKGEpO3JldHVybiBzPT09YT90OnN9aW52YXJpYW50KGl8fHQmJnQuc2V0LCJpbnZhbGlkIGtleVBhdGgiKTt2YXIgdT1vLnZhbHVlLGY9aT9jOnQuZ2V0KHUsYyksbD11cGRhdGVJbkRlZXBNYXAoZixlLHIsbik7cmV0dXJuIGw9PT1mP3Q6bD09PWM/dC5yZW1vdmUodSk6KGk/ZW1wdHlNYXAoKTp0KS5zZXQodSxsKX1mdW5jdGlvbiBwb3BDb3VudCh0KXtyZXR1cm4gdD0odD0oODU4OTkzNDU5Jih0LT10Pj4xJjE0MzE2NTU3NjUpKSsodD4+MiY4NTg5OTM0NTkpKSsodD4+NCkmMjUyNjQ1MTM1LHQrPXQ+PjgsMTI3Jih0Kz10Pj4xNil9ZnVuY3Rpb24gc2V0SW4odCxlLHIsbil7dmFyIGk9bj90OmFyckNvcHkodCk7cmV0dXJuIGlbZV09cixpfWZ1bmN0aW9uIHNwbGljZUluKHQsZSxyLG4pe3ZhciBpPXQubGVuZ3RoKzE7aWYobiYmZSsxPT09aSlyZXR1cm4gdFtlXT1yLHQ7Zm9yKHZhciBvPW5ldyBBcnJheShpKSxhPTAscz0wO3M8aTtzKyspcz09PWU/KG9bc109cixhPS0xKTpvW3NdPXRbcythXTtyZXR1cm4gb31mdW5jdGlvbiBzcGxpY2VPdXQodCxlLHIpe3ZhciBuPXQubGVuZ3RoLTE7aWYociYmZT09PW4pcmV0dXJuIHQucG9wKCksdDtmb3IodmFyIGk9bmV3IEFycmF5KG4pLG89MCxhPTA7YTxuO2ErKylhPT09ZSYmKG89MSksaVthXT10W2Erb107cmV0dXJuIGl9VltXXT0hMCxWW29dPVYucmVtb3ZlLFYucmVtb3ZlSW49Vi5kZWxldGVJbixBcnJheU1hcE5vZGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9dGhpcy5lbnRyaWVzLG89MCxhPWkubGVuZ3RoO288YTtvKyspaWYoaXMocixpW29dWzBdKSlyZXR1cm4gaVtvXVsxXTtyZXR1cm4gbn0sQXJyYXlNYXBOb2RlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLHIsbixpLG8sYSl7Zm9yKHZhciBzPWk9PT1jLHU9dGhpcy5lbnRyaWVzLGY9MCxsPXUubGVuZ3RoO2Y8bCYmIWlzKG4sdVtmXVswXSk7ZisrKTt2YXIgaD1mPGw7aWYoaD91W2ZdWzFdPT09aTpzKXJldHVybiB0aGlzO2lmKFNldFJlZihhKSwoc3x8IWgpJiZTZXRSZWYobyksIXN8fDEhPT11Lmxlbmd0aCl7aWYoIWgmJiFzJiZ1Lmxlbmd0aD49SylyZXR1cm4gY3JlYXRlTm9kZXModCx1LG4saSk7dmFyIHA9dCYmdD09PXRoaXMub3duZXJJRCxkPXA/dTphcnJDb3B5KHUpO3JldHVybiBoP3M/Zj09PWwtMT9kLnBvcCgpOmRbZl09ZC5wb3AoKTpkW2ZdPVtuLGldOmQucHVzaChbbixpXSkscD8odGhpcy5lbnRyaWVzPWQsdGhpcyk6bmV3IEFycmF5TWFwTm9kZSh0LGQpfX0sQml0bWFwSW5kZXhlZE5vZGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0LGUscixuKXt2b2lkIDA9PT1lJiYoZT1oYXNoKHIpKTt2YXIgaT0xPDwoKDA9PT10P2U6ZT4+PnQpJnUpLG89dGhpcy5iaXRtYXA7cmV0dXJuIG8maT90aGlzLm5vZGVzW3BvcENvdW50KG8maS0xKV0uZ2V0KHQrYSxlLHIsbik6bn0sQml0bWFwSW5kZXhlZE5vZGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUscixuLGksbyxzKXt2b2lkIDA9PT1yJiYocj1oYXNoKG4pKTt2YXIgZj0oMD09PWU/cjpyPj4+ZSkmdSxsPTE8PGYsaD10aGlzLmJpdG1hcCxwPSEhKGgmbCk7aWYoIXAmJmk9PT1jKXJldHVybiB0aGlzO3ZhciBkPXBvcENvdW50KGgmbC0xKSxfPXRoaXMubm9kZXMseT1wP19bZF06dm9pZCAwLG09dXBkYXRlTm9kZSh5LHQsZSthLHIsbixpLG8scyk7aWYobT09PXkpcmV0dXJuIHRoaXM7aWYoIXAmJm0mJl8ubGVuZ3RoPj0kKXJldHVybiBleHBhbmROb2Rlcyh0LF8saCxmLG0pO2lmKHAmJiFtJiYyPT09Xy5sZW5ndGgmJmlzTGVhZk5vZGUoX1sxXmRdKSlyZXR1cm4gX1sxXmRdO2lmKHAmJm0mJjE9PT1fLmxlbmd0aCYmaXNMZWFmTm9kZShtKSlyZXR1cm4gbTt2YXIgZz10JiZ0PT09dGhpcy5vd25lcklELHY9cD9tP2g6aF5sOmh8bCxiPXA/bT9zZXRJbihfLGQsbSxnKTpzcGxpY2VPdXQoXyxkLGcpOnNwbGljZUluKF8sZCxtLGcpO3JldHVybiBnPyh0aGlzLmJpdG1hcD12LHRoaXMubm9kZXM9Yix0aGlzKTpuZXcgQml0bWFwSW5kZXhlZE5vZGUodCx2LGIpfSxIYXNoQXJyYXlNYXBOb2RlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCxlLHIsbil7dm9pZCAwPT09ZSYmKGU9aGFzaChyKSk7dmFyIGk9KDA9PT10P2U6ZT4+PnQpJnUsbz10aGlzLm5vZGVzW2ldO3JldHVybiBvP28uZ2V0KHQrYSxlLHIsbik6bn0sSGFzaEFycmF5TWFwTm9kZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxyLG4saSxvLHMpe3ZvaWQgMD09PXImJihyPWhhc2gobikpO3ZhciBmPSgwPT09ZT9yOnI+Pj5lKSZ1LGw9aT09PWMsaD10aGlzLm5vZGVzLHA9aFtmXTtpZihsJiYhcClyZXR1cm4gdGhpczt2YXIgZD11cGRhdGVOb2RlKHAsdCxlK2EscixuLGksbyxzKTtpZihkPT09cClyZXR1cm4gdGhpczt2YXIgXz10aGlzLmNvdW50O2lmKHApe2lmKCFkJiYtLV88SClyZXR1cm4gcGFja05vZGVzKHQsaCxfLGYpfWVsc2UgXysrO3ZhciB5PXQmJnQ9PT10aGlzLm93bmVySUQsbT1zZXRJbihoLGYsZCx5KTtyZXR1cm4geT8odGhpcy5jb3VudD1fLHRoaXMubm9kZXM9bSx0aGlzKTpuZXcgSGFzaEFycmF5TWFwTm9kZSh0LF8sbSl9LEhhc2hDb2xsaXNpb25Ob2RlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBpPXRoaXMuZW50cmllcyxvPTAsYT1pLmxlbmd0aDtvPGE7bysrKWlmKGlzKHIsaVtvXVswXSkpcmV0dXJuIGlbb11bMV07cmV0dXJuIG59LEhhc2hDb2xsaXNpb25Ob2RlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLHIsbixpLG8sYSl7dm9pZCAwPT09ciYmKHI9aGFzaChuKSk7dmFyIHM9aT09PWM7aWYociE9PXRoaXMua2V5SGFzaClyZXR1cm4gcz90aGlzOihTZXRSZWYoYSksU2V0UmVmKG8pLG1lcmdlSW50b05vZGUodGhpcyx0LGUscixbbixpXSkpO2Zvcih2YXIgdT10aGlzLmVudHJpZXMsZj0wLGw9dS5sZW5ndGg7ZjxsJiYhaXMobix1W2ZdWzBdKTtmKyspO3ZhciBoPWY8bDtpZihoP3VbZl1bMV09PT1pOnMpcmV0dXJuIHRoaXM7aWYoU2V0UmVmKGEpLChzfHwhaCkmJlNldFJlZihvKSxzJiYyPT09bClyZXR1cm4gbmV3IFZhbHVlTm9kZSh0LHRoaXMua2V5SGFzaCx1WzFeZl0pO3ZhciBwPXQmJnQ9PT10aGlzLm93bmVySUQsZD1wP3U6YXJyQ29weSh1KTtyZXR1cm4gaD9zP2Y9PT1sLTE/ZC5wb3AoKTpkW2ZdPWQucG9wKCk6ZFtmXT1bbixpXTpkLnB1c2goW24saV0pLHA/KHRoaXMuZW50cmllcz1kLHRoaXMpOm5ldyBIYXNoQ29sbGlzaW9uTm9kZSh0LHRoaXMua2V5SGFzaCxkKX0sVmFsdWVOb2RlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIGlzKHIsdGhpcy5lbnRyeVswXSk/dGhpcy5lbnRyeVsxXTpufSxWYWx1ZU5vZGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUscixuLGksbyxhKXt2YXIgcz1pPT09Yyx1PWlzKG4sdGhpcy5lbnRyeVswXSk7cmV0dXJuKHU/aT09PXRoaXMuZW50cnlbMV06cyk/dGhpczooU2V0UmVmKGEpLHM/dm9pZCBTZXRSZWYobyk6dT90JiZ0PT09dGhpcy5vd25lcklEPyh0aGlzLmVudHJ5WzFdPWksdGhpcyk6bmV3IFZhbHVlTm9kZSh0LHRoaXMua2V5SGFzaCxbbixpXSk6KFNldFJlZihvKSxtZXJnZUludG9Ob2RlKHRoaXMsdCxlLGhhc2gobiksW24saV0pKSl9LEFycmF5TWFwTm9kZS5wcm90b3R5cGUuaXRlcmF0ZT1IYXNoQ29sbGlzaW9uTm9kZS5wcm90b3R5cGUuaXRlcmF0ZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLmVudHJpZXMsbj0wLGk9ci5sZW5ndGgtMTtuPD1pO24rKylpZighMT09PXQocltlP2ktbjpuXSkpcmV0dXJuITF9LEJpdG1hcEluZGV4ZWROb2RlLnByb3RvdHlwZS5pdGVyYXRlPUhhc2hBcnJheU1hcE5vZGUucHJvdG90eXBlLml0ZXJhdGU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dGhpcy5ub2RlcyxuPTAsaT1yLmxlbmd0aC0xO248PWk7bisrKXt2YXIgbz1yW2U/aS1uOm5dO2lmKG8mJiExPT09by5pdGVyYXRlKHQsZSkpcmV0dXJuITF9fSxWYWx1ZU5vZGUucHJvdG90eXBlLml0ZXJhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCh0aGlzLmVudHJ5KX0sY3JlYXRlQ2xhc3MoTWFwSXRlcmF0b3IsSXRlcmF0b3IpLE1hcEl0ZXJhdG9yLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX3R5cGUsZT10aGlzLl9zdGFjaztlOyl7dmFyIHIsbj1lLm5vZGUsaT1lLmluZGV4Kys7aWYobi5lbnRyeSl7aWYoMD09PWkpcmV0dXJuIG1hcEl0ZXJhdG9yVmFsdWUodCxuLmVudHJ5KX1lbHNlIGlmKG4uZW50cmllcyl7aWYoaTw9KHI9bi5lbnRyaWVzLmxlbmd0aC0xKSlyZXR1cm4gbWFwSXRlcmF0b3JWYWx1ZSh0LG4uZW50cmllc1t0aGlzLl9yZXZlcnNlP3ItaTppXSl9ZWxzZSBpZihpPD0ocj1uLm5vZGVzLmxlbmd0aC0xKSl7dmFyIG89bi5ub2Rlc1t0aGlzLl9yZXZlcnNlP3ItaTppXTtpZihvKXtpZihvLmVudHJ5KXJldHVybiBtYXBJdGVyYXRvclZhbHVlKHQsby5lbnRyeSk7ZT10aGlzLl9zdGFjaz1tYXBJdGVyYXRvckZyYW1lKG8sZSl9Y29udGludWV9ZT10aGlzLl9zdGFjaz10aGlzLl9zdGFjay5fX3ByZXZ9cmV0dXJuIGl0ZXJhdG9yRG9uZSgpfTt2YXIgSz1zLzQsJD1zLzIsSD1zLzQ7ZnVuY3Rpb24gTGlzdCh0KXt2YXIgZT1lbXB0eUxpc3QoKTtpZihudWxsPT10KXJldHVybiBlO2lmKGlzTGlzdCh0KSlyZXR1cm4gdDt2YXIgcj1JbmRleGVkSXRlcmFibGUodCksbj1yLnNpemU7cmV0dXJuIDA9PT1uP2U6KGFzc2VydE5vdEluZmluaXRlKG4pLG4+MCYmbjxzP21ha2VMaXN0KDAsbixhLG51bGwsbmV3IFZOb2RlKHIudG9BcnJheSgpKSk6ZS53aXRoTXV0YXRpb25zKChmdW5jdGlvbih0KXt0LnNldFNpemUobiksci5mb3JFYWNoKChmdW5jdGlvbihlLHIpe3JldHVybiB0LnNldChyLGUpfSkpfSkpKX1mdW5jdGlvbiBpc0xpc3QodCl7cmV0dXJuISghdHx8IXRbWV0pfWNyZWF0ZUNsYXNzKExpc3QsSW5kZXhlZENvbGxlY3Rpb24pLExpc3Qub2Y9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcyhhcmd1bWVudHMpfSxMaXN0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9fdG9TdHJpbmcoIkxpc3QgWyIsIl0iKX0sTGlzdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQsZSl7aWYoKHQ9d3JhcEluZGV4KHRoaXMsdCkpPj0wJiZ0PHRoaXMuc2l6ZSl7dmFyIHI9bGlzdE5vZGVGb3IodGhpcyx0Kz10aGlzLl9vcmlnaW4pO3JldHVybiByJiZyLmFycmF5W3QmdV19cmV0dXJuIGV9LExpc3QucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LGUpe3JldHVybiB1cGRhdGVMaXN0KHRoaXMsdCxlKX0sTGlzdC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhhcyh0KT8wPT09dD90aGlzLnNoaWZ0KCk6dD09PXRoaXMuc2l6ZS0xP3RoaXMucG9wKCk6dGhpcy5zcGxpY2UodCwxKTp0aGlzfSxMaXN0LnByb3RvdHlwZS5pbnNlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5zcGxpY2UodCwwLGUpfSxMaXN0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5zaXplP3RoaXM6dGhpcy5fX293bmVySUQ/KHRoaXMuc2l6ZT10aGlzLl9vcmlnaW49dGhpcy5fY2FwYWNpdHk9MCx0aGlzLl9sZXZlbD1hLHRoaXMuX3Jvb3Q9dGhpcy5fdGFpbD1udWxsLHRoaXMuX19oYXNoPXZvaWQgMCx0aGlzLl9fYWx0ZXJlZD0hMCx0aGlzKTplbXB0eUxpc3QoKX0sTGlzdC5wcm90b3R5cGUucHVzaD1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cyxlPXRoaXMuc2l6ZTtyZXR1cm4gdGhpcy53aXRoTXV0YXRpb25zKChmdW5jdGlvbihyKXtzZXRMaXN0Qm91bmRzKHIsMCxlK3QubGVuZ3RoKTtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKylyLnNldChlK24sdFtuXSl9KSl9LExpc3QucHJvdG90eXBlLnBvcD1mdW5jdGlvbigpe3JldHVybiBzZXRMaXN0Qm91bmRzKHRoaXMsMCwtMSl9LExpc3QucHJvdG90eXBlLnVuc2hpZnQ9ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHM7cmV0dXJuIHRoaXMud2l0aE11dGF0aW9ucygoZnVuY3Rpb24oZSl7c2V0TGlzdEJvdW5kcyhlLC10Lmxlbmd0aCk7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspZS5zZXQocix0W3JdKX0pKX0sTGlzdC5wcm90b3R5cGUuc2hpZnQ9ZnVuY3Rpb24oKXtyZXR1cm4gc2V0TGlzdEJvdW5kcyh0aGlzLDEpfSxMaXN0LnByb3RvdHlwZS5tZXJnZT1mdW5jdGlvbigpe3JldHVybiBtZXJnZUludG9MaXN0V2l0aCh0aGlzLHZvaWQgMCxhcmd1bWVudHMpfSxMaXN0LnByb3RvdHlwZS5tZXJnZVdpdGg9ZnVuY3Rpb24oZSl7cmV0dXJuIG1lcmdlSW50b0xpc3RXaXRoKHRoaXMsZSx0LmNhbGwoYXJndW1lbnRzLDEpKX0sTGlzdC5wcm90b3R5cGUubWVyZ2VEZWVwPWZ1bmN0aW9uKCl7cmV0dXJuIG1lcmdlSW50b0xpc3RXaXRoKHRoaXMsZGVlcE1lcmdlcixhcmd1bWVudHMpfSxMaXN0LnByb3RvdHlwZS5tZXJnZURlZXBXaXRoPWZ1bmN0aW9uKGUpe3ZhciByPXQuY2FsbChhcmd1bWVudHMsMSk7cmV0dXJuIG1lcmdlSW50b0xpc3RXaXRoKHRoaXMsZGVlcE1lcmdlcldpdGgoZSkscil9LExpc3QucHJvdG90eXBlLnNldFNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIHNldExpc3RCb3VuZHModGhpcywwLHQpfSxMaXN0LnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuc2l6ZTtyZXR1cm4gd2hvbGVTbGljZSh0LGUscik/dGhpczpzZXRMaXN0Qm91bmRzKHRoaXMscmVzb2x2ZUJlZ2luKHQscikscmVzb2x2ZUVuZChlLHIpKX0sTGlzdC5wcm90b3R5cGUuX19pdGVyYXRvcj1mdW5jdGlvbih0LGUpe3ZhciByPTAsbj1pdGVyYXRlTGlzdCh0aGlzLGUpO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7dmFyIGU9bigpO3JldHVybiBlPT09ZXQ/aXRlcmF0b3JEb25lKCk6aXRlcmF0b3JWYWx1ZSh0LHIrKyxlKX0pKX0sTGlzdC5wcm90b3R5cGUuX19pdGVyYXRlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLG49MCxpPWl0ZXJhdGVMaXN0KHRoaXMsZSk7KHI9aSgpKSE9PWV0JiYhMSE9PXQocixuKyssdGhpcyk7KTtyZXR1cm4gbn0sTGlzdC5wcm90b3R5cGUuX19lbnN1cmVPd25lcj1mdW5jdGlvbih0KXtyZXR1cm4gdD09PXRoaXMuX19vd25lcklEP3RoaXM6dD9tYWtlTGlzdCh0aGlzLl9vcmlnaW4sdGhpcy5fY2FwYWNpdHksdGhpcy5fbGV2ZWwsdGhpcy5fcm9vdCx0aGlzLl90YWlsLHQsdGhpcy5fX2hhc2gpOih0aGlzLl9fb3duZXJJRD10LHRoaXMpfSxMaXN0LmlzTGlzdD1pc0xpc3Q7dmFyIFk9IkBAX19JTU1VVEFCTEVfTElTVF9fQEAiLFo9TGlzdC5wcm90b3R5cGU7ZnVuY3Rpb24gVk5vZGUodCxlKXt0aGlzLmFycmF5PXQsdGhpcy5vd25lcklEPWV9WltZXT0hMCxaW29dPVoucmVtb3ZlLFouc2V0SW49Vi5zZXRJbixaLmRlbGV0ZUluPVoucmVtb3ZlSW49Vi5yZW1vdmVJbixaLnVwZGF0ZT1WLnVwZGF0ZSxaLnVwZGF0ZUluPVYudXBkYXRlSW4sWi5tZXJnZUluPVYubWVyZ2VJbixaLm1lcmdlRGVlcEluPVYubWVyZ2VEZWVwSW4sWi53aXRoTXV0YXRpb25zPVYud2l0aE11dGF0aW9ucyxaLmFzTXV0YWJsZT1WLmFzTXV0YWJsZSxaLmFzSW1tdXRhYmxlPVYuYXNJbW11dGFibGUsWi53YXNBbHRlcmVkPVYud2FzQWx0ZXJlZCxWTm9kZS5wcm90b3R5cGUucmVtb3ZlQmVmb3JlPWZ1bmN0aW9uKHQsZSxyKXtpZihyPT09ZT8xPDxlOjA9PT10aGlzLmFycmF5Lmxlbmd0aClyZXR1cm4gdGhpczt2YXIgbj1yPj4+ZSZ1O2lmKG4+PXRoaXMuYXJyYXkubGVuZ3RoKXJldHVybiBuZXcgVk5vZGUoW10sdCk7dmFyIGksbz0wPT09bjtpZihlPjApe3ZhciBzPXRoaXMuYXJyYXlbbl07aWYoKGk9cyYmcy5yZW1vdmVCZWZvcmUodCxlLWEscikpPT09cyYmbylyZXR1cm4gdGhpc31pZihvJiYhaSlyZXR1cm4gdGhpczt2YXIgYz1lZGl0YWJsZVZOb2RlKHRoaXMsdCk7aWYoIW8pZm9yKHZhciBmPTA7ZjxuO2YrKyljLmFycmF5W2ZdPXZvaWQgMDtyZXR1cm4gaSYmKGMuYXJyYXlbbl09aSksY30sVk5vZGUucHJvdG90eXBlLnJlbW92ZUFmdGVyPWZ1bmN0aW9uKHQsZSxyKXtpZihyPT09KGU/MTw8ZTowKXx8MD09PXRoaXMuYXJyYXkubGVuZ3RoKXJldHVybiB0aGlzO3ZhciBuLGk9ci0xPj4+ZSZ1O2lmKGk+PXRoaXMuYXJyYXkubGVuZ3RoKXJldHVybiB0aGlzO2lmKGU+MCl7dmFyIG89dGhpcy5hcnJheVtpXTtpZigobj1vJiZvLnJlbW92ZUFmdGVyKHQsZS1hLHIpKT09PW8mJmk9PT10aGlzLmFycmF5Lmxlbmd0aC0xKXJldHVybiB0aGlzfXZhciBzPWVkaXRhYmxlVk5vZGUodGhpcyx0KTtyZXR1cm4gcy5hcnJheS5zcGxpY2UoaSsxKSxuJiYocy5hcnJheVtpXT1uKSxzfTt2YXIgSix0dCxldD17fTtmdW5jdGlvbiBpdGVyYXRlTGlzdCh0LGUpe3ZhciByPXQuX29yaWdpbixuPXQuX2NhcGFjaXR5LGk9Z2V0VGFpbE9mZnNldChuKSxvPXQuX3RhaWw7cmV0dXJuIGl0ZXJhdGVOb2RlT3JMZWFmKHQuX3Jvb3QsdC5fbGV2ZWwsMCk7ZnVuY3Rpb24gaXRlcmF0ZU5vZGVPckxlYWYodCxlLHIpe3JldHVybiAwPT09ZT9pdGVyYXRlTGVhZih0LHIpOml0ZXJhdGVOb2RlKHQsZSxyKX1mdW5jdGlvbiBpdGVyYXRlTGVhZih0LGEpe3ZhciB1PWE9PT1pP28mJm8uYXJyYXk6dCYmdC5hcnJheSxjPWE+cj8wOnItYSxmPW4tYTtyZXR1cm4gZj5zJiYoZj1zKSxmdW5jdGlvbigpe2lmKGM9PT1mKXJldHVybiBldDt2YXIgdD1lPy0tZjpjKys7cmV0dXJuIHUmJnVbdF19fWZ1bmN0aW9uIGl0ZXJhdGVOb2RlKHQsaSxvKXt2YXIgdSxjPXQmJnQuYXJyYXksZj1vPnI/MDpyLW8+PmksbD0xKyhuLW8+PmkpO3JldHVybiBsPnMmJihsPXMpLGZ1bmN0aW9uKCl7Zm9yKDs7KXtpZih1KXt2YXIgdD11KCk7aWYodCE9PWV0KXJldHVybiB0O3U9bnVsbH1pZihmPT09bClyZXR1cm4gZXQ7dmFyIHI9ZT8tLWw6ZisrO3U9aXRlcmF0ZU5vZGVPckxlYWYoYyYmY1tyXSxpLWEsbysocjw8aSkpfX19fWZ1bmN0aW9uIG1ha2VMaXN0KHQsZSxyLG4saSxvLGEpe3ZhciBzPU9iamVjdC5jcmVhdGUoWik7cmV0dXJuIHMuc2l6ZT1lLXQscy5fb3JpZ2luPXQscy5fY2FwYWNpdHk9ZSxzLl9sZXZlbD1yLHMuX3Jvb3Q9bixzLl90YWlsPWkscy5fX293bmVySUQ9byxzLl9faGFzaD1hLHMuX19hbHRlcmVkPSExLHN9ZnVuY3Rpb24gZW1wdHlMaXN0KCl7cmV0dXJuIEp8fChKPW1ha2VMaXN0KDAsMCxhKSl9ZnVuY3Rpb24gdXBkYXRlTGlzdCh0LGUscil7aWYoKGU9d3JhcEluZGV4KHQsZSkpIT1lKXJldHVybiB0O2lmKGU+PXQuc2l6ZXx8ZTwwKXJldHVybiB0LndpdGhNdXRhdGlvbnMoKGZ1bmN0aW9uKHQpe2U8MD9zZXRMaXN0Qm91bmRzKHQsZSkuc2V0KDAscik6c2V0TGlzdEJvdW5kcyh0LDAsZSsxKS5zZXQoZSxyKX0pKTtlKz10Ll9vcmlnaW47dmFyIG49dC5fdGFpbCxpPXQuX3Jvb3Qsbz1NYWtlUmVmKGwpO3JldHVybiBlPj1nZXRUYWlsT2Zmc2V0KHQuX2NhcGFjaXR5KT9uPXVwZGF0ZVZOb2RlKG4sdC5fX293bmVySUQsMCxlLHIsbyk6aT11cGRhdGVWTm9kZShpLHQuX19vd25lcklELHQuX2xldmVsLGUscixvKSxvLnZhbHVlP3QuX19vd25lcklEPyh0Ll9yb290PWksdC5fdGFpbD1uLHQuX19oYXNoPXZvaWQgMCx0Ll9fYWx0ZXJlZD0hMCx0KTptYWtlTGlzdCh0Ll9vcmlnaW4sdC5fY2FwYWNpdHksdC5fbGV2ZWwsaSxuKTp0fWZ1bmN0aW9uIHVwZGF0ZVZOb2RlKHQsZSxyLG4saSxvKXt2YXIgcyxjPW4+Pj5yJnUsZj10JiZjPHQuYXJyYXkubGVuZ3RoO2lmKCFmJiZ2b2lkIDA9PT1pKXJldHVybiB0O2lmKHI+MCl7dmFyIGw9dCYmdC5hcnJheVtjXSxoPXVwZGF0ZVZOb2RlKGwsZSxyLWEsbixpLG8pO3JldHVybiBoPT09bD90Oigocz1lZGl0YWJsZVZOb2RlKHQsZSkpLmFycmF5W2NdPWgscyl9cmV0dXJuIGYmJnQuYXJyYXlbY109PT1pP3Q6KFNldFJlZihvKSxzPWVkaXRhYmxlVk5vZGUodCxlKSx2b2lkIDA9PT1pJiZjPT09cy5hcnJheS5sZW5ndGgtMT9zLmFycmF5LnBvcCgpOnMuYXJyYXlbY109aSxzKX1mdW5jdGlvbiBlZGl0YWJsZVZOb2RlKHQsZSl7cmV0dXJuIGUmJnQmJmU9PT10Lm93bmVySUQ/dDpuZXcgVk5vZGUodD90LmFycmF5LnNsaWNlKCk6W10sZSl9ZnVuY3Rpb24gbGlzdE5vZGVGb3IodCxlKXtpZihlPj1nZXRUYWlsT2Zmc2V0KHQuX2NhcGFjaXR5KSlyZXR1cm4gdC5fdGFpbDtpZihlPDE8PHQuX2xldmVsK2Epe2Zvcih2YXIgcj10Ll9yb290LG49dC5fbGV2ZWw7ciYmbj4wOylyPXIuYXJyYXlbZT4+Pm4mdV0sbi09YTtyZXR1cm4gcn19ZnVuY3Rpb24gc2V0TGlzdEJvdW5kcyh0LGUscil7dm9pZCAwIT09ZSYmKGV8PTApLHZvaWQgMCE9PXImJihyfD0wKTt2YXIgbj10Ll9fb3duZXJJRHx8bmV3IE93bmVySUQsaT10Ll9vcmlnaW4sbz10Ll9jYXBhY2l0eSxzPWkrZSxjPXZvaWQgMD09PXI/bzpyPDA/bytyOmkrcjtpZihzPT09aSYmYz09PW8pcmV0dXJuIHQ7aWYocz49YylyZXR1cm4gdC5jbGVhcigpO2Zvcih2YXIgZj10Ll9sZXZlbCxsPXQuX3Jvb3QsaD0wO3MraDwwOylsPW5ldyBWTm9kZShsJiZsLmFycmF5Lmxlbmd0aD9bdm9pZCAwLGxdOltdLG4pLGgrPTE8PChmKz1hKTtoJiYocys9aCxpKz1oLGMrPWgsbys9aCk7Zm9yKHZhciBwPWdldFRhaWxPZmZzZXQobyksZD1nZXRUYWlsT2Zmc2V0KGMpO2Q+PTE8PGYrYTspbD1uZXcgVk5vZGUobCYmbC5hcnJheS5sZW5ndGg/W2xdOltdLG4pLGYrPWE7dmFyIF89dC5fdGFpbCx5PWQ8cD9saXN0Tm9kZUZvcih0LGMtMSk6ZD5wP25ldyBWTm9kZShbXSxuKTpfO2lmKF8mJmQ+cCYmczxvJiZfLmFycmF5Lmxlbmd0aCl7Zm9yKHZhciBtPWw9ZWRpdGFibGVWTm9kZShsLG4pLGc9ZjtnPmE7Zy09YSl7dmFyIHY9cD4+PmcmdTttPW0uYXJyYXlbdl09ZWRpdGFibGVWTm9kZShtLmFycmF5W3ZdLG4pfW0uYXJyYXlbcD4+PmEmdV09X31pZihjPG8mJih5PXkmJnkucmVtb3ZlQWZ0ZXIobiwwLGMpKSxzPj1kKXMtPWQsYy09ZCxmPWEsbD1udWxsLHk9eSYmeS5yZW1vdmVCZWZvcmUobiwwLHMpO2Vsc2UgaWYocz5pfHxkPHApe2ZvcihoPTA7bDspe3ZhciBiPXM+Pj5mJnU7aWYoYiE9PWQ+Pj5mJnUpYnJlYWs7YiYmKGgrPSgxPDxmKSpiKSxmLT1hLGw9bC5hcnJheVtiXX1sJiZzPmkmJihsPWwucmVtb3ZlQmVmb3JlKG4sZixzLWgpKSxsJiZkPHAmJihsPWwucmVtb3ZlQWZ0ZXIobixmLGQtaCkpLGgmJihzLT1oLGMtPWgpfXJldHVybiB0Ll9fb3duZXJJRD8odC5zaXplPWMtcyx0Ll9vcmlnaW49cyx0Ll9jYXBhY2l0eT1jLHQuX2xldmVsPWYsdC5fcm9vdD1sLHQuX3RhaWw9eSx0Ll9faGFzaD12b2lkIDAsdC5fX2FsdGVyZWQ9ITAsdCk6bWFrZUxpc3QocyxjLGYsbCx5KX1mdW5jdGlvbiBtZXJnZUludG9MaXN0V2l0aCh0LGUscil7Zm9yKHZhciBuPVtdLGk9MCxvPTA7bzxyLmxlbmd0aDtvKyspe3ZhciBhPXJbb10scz1JbmRleGVkSXRlcmFibGUoYSk7cy5zaXplPmkmJihpPXMuc2l6ZSksaXNJdGVyYWJsZShhKXx8KHM9cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBmcm9tSlModCl9KSkpLG4ucHVzaChzKX1yZXR1cm4gaT50LnNpemUmJih0PXQuc2V0U2l6ZShpKSksbWVyZ2VJbnRvQ29sbGVjdGlvbldpdGgodCxlLG4pfWZ1bmN0aW9uIGdldFRhaWxPZmZzZXQodCl7cmV0dXJuIHQ8cz8wOnQtMT4+PmE8PGF9ZnVuY3Rpb24gT3JkZXJlZE1hcCh0KXtyZXR1cm4gbnVsbD09dD9lbXB0eU9yZGVyZWRNYXAoKTppc09yZGVyZWRNYXAodCk/dDplbXB0eU9yZGVyZWRNYXAoKS53aXRoTXV0YXRpb25zKChmdW5jdGlvbihlKXt2YXIgcj1LZXllZEl0ZXJhYmxlKHQpO2Fzc2VydE5vdEluZmluaXRlKHIuc2l6ZSksci5mb3JFYWNoKChmdW5jdGlvbih0LHIpe3JldHVybiBlLnNldChyLHQpfSkpfSkpfWZ1bmN0aW9uIGlzT3JkZXJlZE1hcCh0KXtyZXR1cm4gaXNNYXAodCkmJmlzT3JkZXJlZCh0KX1mdW5jdGlvbiBtYWtlT3JkZXJlZE1hcCh0LGUscixuKXt2YXIgaT1PYmplY3QuY3JlYXRlKE9yZGVyZWRNYXAucHJvdG90eXBlKTtyZXR1cm4gaS5zaXplPXQ/dC5zaXplOjAsaS5fbWFwPXQsaS5fbGlzdD1lLGkuX19vd25lcklEPXIsaS5fX2hhc2g9bixpfWZ1bmN0aW9uIGVtcHR5T3JkZXJlZE1hcCgpe3JldHVybiB0dHx8KHR0PW1ha2VPcmRlcmVkTWFwKGVtcHR5TWFwKCksZW1wdHlMaXN0KCkpKX1mdW5jdGlvbiB1cGRhdGVPcmRlcmVkTWFwKHQsZSxyKXt2YXIgbixpLG89dC5fbWFwLGE9dC5fbGlzdCx1PW8uZ2V0KGUpLGY9dm9pZCAwIT09dTtpZihyPT09Yyl7aWYoIWYpcmV0dXJuIHQ7YS5zaXplPj1zJiZhLnNpemU+PTIqby5zaXplPyhuPShpPWEuZmlsdGVyKChmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDAhPT10JiZ1IT09ZX0pKSkudG9LZXllZFNlcSgpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF19KSkuZmxpcCgpLnRvTWFwKCksdC5fX293bmVySUQmJihuLl9fb3duZXJJRD1pLl9fb3duZXJJRD10Ll9fb3duZXJJRCkpOihuPW8ucmVtb3ZlKGUpLGk9dT09PWEuc2l6ZS0xP2EucG9wKCk6YS5zZXQodSx2b2lkIDApKX1lbHNlIGlmKGYpe2lmKHI9PT1hLmdldCh1KVsxXSlyZXR1cm4gdDtuPW8saT1hLnNldCh1LFtlLHJdKX1lbHNlIG49by5zZXQoZSxhLnNpemUpLGk9YS5zZXQoYS5zaXplLFtlLHJdKTtyZXR1cm4gdC5fX293bmVySUQ/KHQuc2l6ZT1uLnNpemUsdC5fbWFwPW4sdC5fbGlzdD1pLHQuX19oYXNoPXZvaWQgMCx0KTptYWtlT3JkZXJlZE1hcChuLGkpfWZ1bmN0aW9uIFRvS2V5ZWRTZXF1ZW5jZSh0LGUpe3RoaXMuX2l0ZXI9dCx0aGlzLl91c2VLZXlzPWUsdGhpcy5zaXplPXQuc2l6ZX1mdW5jdGlvbiBUb0luZGV4ZWRTZXF1ZW5jZSh0KXt0aGlzLl9pdGVyPXQsdGhpcy5zaXplPXQuc2l6ZX1mdW5jdGlvbiBUb1NldFNlcXVlbmNlKHQpe3RoaXMuX2l0ZXI9dCx0aGlzLnNpemU9dC5zaXplfWZ1bmN0aW9uIEZyb21FbnRyaWVzU2VxdWVuY2UodCl7dGhpcy5faXRlcj10LHRoaXMuc2l6ZT10LnNpemV9ZnVuY3Rpb24gZmxpcEZhY3RvcnkodCl7dmFyIGU9bWFrZVNlcXVlbmNlKHQpO3JldHVybiBlLl9pdGVyPXQsZS5zaXplPXQuc2l6ZSxlLmZsaXA9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZS5yZXZlcnNlPWZ1bmN0aW9uKCl7dmFyIGU9dC5yZXZlcnNlLmFwcGx5KHRoaXMpO3JldHVybiBlLmZsaXA9ZnVuY3Rpb24oKXtyZXR1cm4gdC5yZXZlcnNlKCl9LGV9LGUuaGFzPWZ1bmN0aW9uKGUpe3JldHVybiB0LmluY2x1ZGVzKGUpfSxlLmluY2x1ZGVzPWZ1bmN0aW9uKGUpe3JldHVybiB0LmhhcyhlKX0sZS5jYWNoZVJlc3VsdD1jYWNoZVJlc3VsdFRocm91Z2gsZS5fX2l0ZXJhdGVVbmNhY2hlZD1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXM7cmV0dXJuIHQuX19pdGVyYXRlKChmdW5jdGlvbih0LHIpe3JldHVybiExIT09ZShyLHQsbil9KSxyKX0sZS5fX2l0ZXJhdG9yVW5jYWNoZWQ9ZnVuY3Rpb24oZSxyKXtpZihlPT09ZCl7dmFyIG49dC5fX2l0ZXJhdG9yKGUscik7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXt2YXIgdD1uLm5leHQoKTtpZighdC5kb25lKXt2YXIgZT10LnZhbHVlWzBdO3QudmFsdWVbMF09dC52YWx1ZVsxXSx0LnZhbHVlWzFdPWV9cmV0dXJuIHR9KSl9cmV0dXJuIHQuX19pdGVyYXRvcihlPT09cD9oOnAscil9LGV9ZnVuY3Rpb24gbWFwRmFjdG9yeSh0LGUscil7dmFyIG49bWFrZVNlcXVlbmNlKHQpO3JldHVybiBuLnNpemU9dC5zaXplLG4uaGFzPWZ1bmN0aW9uKGUpe3JldHVybiB0LmhhcyhlKX0sbi5nZXQ9ZnVuY3Rpb24obixpKXt2YXIgbz10LmdldChuLGMpO3JldHVybiBvPT09Yz9pOmUuY2FsbChyLG8sbix0KX0sbi5fX2l0ZXJhdGVVbmNhY2hlZD1mdW5jdGlvbihuLGkpe3ZhciBvPXRoaXM7cmV0dXJuIHQuX19pdGVyYXRlKChmdW5jdGlvbih0LGksYSl7cmV0dXJuITEhPT1uKGUuY2FsbChyLHQsaSxhKSxpLG8pfSksaSl9LG4uX19pdGVyYXRvclVuY2FjaGVkPWZ1bmN0aW9uKG4saSl7dmFyIG89dC5fX2l0ZXJhdG9yKGQsaSk7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXt2YXIgaT1vLm5leHQoKTtpZihpLmRvbmUpcmV0dXJuIGk7dmFyIGE9aS52YWx1ZSxzPWFbMF07cmV0dXJuIGl0ZXJhdG9yVmFsdWUobixzLGUuY2FsbChyLGFbMV0scyx0KSxpKX0pKX0sbn1mdW5jdGlvbiByZXZlcnNlRmFjdG9yeSh0LGUpe3ZhciByPW1ha2VTZXF1ZW5jZSh0KTtyZXR1cm4gci5faXRlcj10LHIuc2l6ZT10LnNpemUsci5yZXZlcnNlPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LHQuZmxpcCYmKHIuZmxpcD1mdW5jdGlvbigpe3ZhciBlPWZsaXBGYWN0b3J5KHQpO3JldHVybiBlLnJldmVyc2U9ZnVuY3Rpb24oKXtyZXR1cm4gdC5mbGlwKCl9LGV9KSxyLmdldD1mdW5jdGlvbihyLG4pe3JldHVybiB0LmdldChlP3I6LTEtcixuKX0sci5oYXM9ZnVuY3Rpb24ocil7cmV0dXJuIHQuaGFzKGU/cjotMS1yKX0sci5pbmNsdWRlcz1mdW5jdGlvbihlKXtyZXR1cm4gdC5pbmNsdWRlcyhlKX0sci5jYWNoZVJlc3VsdD1jYWNoZVJlc3VsdFRocm91Z2gsci5fX2l0ZXJhdGU9ZnVuY3Rpb24oZSxyKXt2YXIgbj10aGlzO3JldHVybiB0Ll9faXRlcmF0ZSgoZnVuY3Rpb24odCxyKXtyZXR1cm4gZSh0LHIsbil9KSwhcil9LHIuX19pdGVyYXRvcj1mdW5jdGlvbihlLHIpe3JldHVybiB0Ll9faXRlcmF0b3IoZSwhcil9LHJ9ZnVuY3Rpb24gZmlsdGVyRmFjdG9yeSh0LGUscixuKXt2YXIgaT1tYWtlU2VxdWVuY2UodCk7cmV0dXJuIG4mJihpLmhhcz1mdW5jdGlvbihuKXt2YXIgaT10LmdldChuLGMpO3JldHVybiBpIT09YyYmISFlLmNhbGwocixpLG4sdCl9LGkuZ2V0PWZ1bmN0aW9uKG4saSl7dmFyIG89dC5nZXQobixjKTtyZXR1cm4gbyE9PWMmJmUuY2FsbChyLG8sbix0KT9vOml9KSxpLl9faXRlcmF0ZVVuY2FjaGVkPWZ1bmN0aW9uKGksbyl7dmFyIGE9dGhpcyxzPTA7cmV0dXJuIHQuX19pdGVyYXRlKChmdW5jdGlvbih0LG8sdSl7aWYoZS5jYWxsKHIsdCxvLHUpKXJldHVybiBzKyssaSh0LG4/bzpzLTEsYSl9KSxvKSxzfSxpLl9faXRlcmF0b3JVbmNhY2hlZD1mdW5jdGlvbihpLG8pe3ZhciBhPXQuX19pdGVyYXRvcihkLG8pLHM9MDtyZXR1cm4gbmV3IEl0ZXJhdG9yKChmdW5jdGlvbigpe2Zvcig7Oyl7dmFyIG89YS5uZXh0KCk7aWYoby5kb25lKXJldHVybiBvO3ZhciB1PW8udmFsdWUsYz11WzBdLGY9dVsxXTtpZihlLmNhbGwocixmLGMsdCkpcmV0dXJuIGl0ZXJhdG9yVmFsdWUoaSxuP2M6cysrLGYsbyl9fSkpfSxpfWZ1bmN0aW9uIGNvdW50QnlGYWN0b3J5KHQsZSxyKXt2YXIgbj1NYXAoKS5hc011dGFibGUoKTtyZXR1cm4gdC5fX2l0ZXJhdGUoKGZ1bmN0aW9uKGksbyl7bi51cGRhdGUoZS5jYWxsKHIsaSxvLHQpLDAsKGZ1bmN0aW9uKHQpe3JldHVybiB0KzF9KSl9KSksbi5hc0ltbXV0YWJsZSgpfWZ1bmN0aW9uIGdyb3VwQnlGYWN0b3J5KHQsZSxyKXt2YXIgbj1pc0tleWVkKHQpLGk9KGlzT3JkZXJlZCh0KT9PcmRlcmVkTWFwKCk6TWFwKCkpLmFzTXV0YWJsZSgpO3QuX19pdGVyYXRlKChmdW5jdGlvbihvLGEpe2kudXBkYXRlKGUuY2FsbChyLG8sYSx0KSwoZnVuY3Rpb24odCl7cmV0dXJuKHQ9dHx8W10pLnB1c2gobj9bYSxvXTpvKSx0fSkpfSkpO3ZhciBvPWl0ZXJhYmxlQ2xhc3ModCk7cmV0dXJuIGkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gcmVpZnkodCxvKGUpKX0pKX1mdW5jdGlvbiBzbGljZUZhY3RvcnkodCxlLHIsbil7dmFyIGk9dC5zaXplO2lmKHZvaWQgMCE9PWUmJihlfD0wKSx2b2lkIDAhPT1yJiYocj09PTEvMD9yPWk6cnw9MCksd2hvbGVTbGljZShlLHIsaSkpcmV0dXJuIHQ7dmFyIG89cmVzb2x2ZUJlZ2luKGUsaSksYT1yZXNvbHZlRW5kKHIsaSk7aWYobyE9b3x8YSE9YSlyZXR1cm4gc2xpY2VGYWN0b3J5KHQudG9TZXEoKS5jYWNoZVJlc3VsdCgpLGUscixuKTt2YXIgcyx1PWEtbzt1PT11JiYocz11PDA/MDp1KTt2YXIgYz1tYWtlU2VxdWVuY2UodCk7cmV0dXJuIGMuc2l6ZT0wPT09cz9zOnQuc2l6ZSYmc3x8dm9pZCAwLCFuJiZpc1NlcSh0KSYmcz49MCYmKGMuZ2V0PWZ1bmN0aW9uKGUscil7cmV0dXJuKGU9d3JhcEluZGV4KHRoaXMsZSkpPj0wJiZlPHM/dC5nZXQoZStvLHIpOnJ9KSxjLl9faXRlcmF0ZVVuY2FjaGVkPWZ1bmN0aW9uKGUscil7dmFyIGk9dGhpcztpZigwPT09cylyZXR1cm4gMDtpZihyKXJldHVybiB0aGlzLmNhY2hlUmVzdWx0KCkuX19pdGVyYXRlKGUscik7dmFyIGE9MCx1PSEwLGM9MDtyZXR1cm4gdC5fX2l0ZXJhdGUoKGZ1bmN0aW9uKHQscil7aWYoIXV8fCEodT1hKys8bykpcmV0dXJuIGMrKywhMSE9PWUodCxuP3I6Yy0xLGkpJiZjIT09c30pKSxjfSxjLl9faXRlcmF0b3JVbmNhY2hlZD1mdW5jdGlvbihlLHIpe2lmKDAhPT1zJiZyKXJldHVybiB0aGlzLmNhY2hlUmVzdWx0KCkuX19pdGVyYXRvcihlLHIpO3ZhciBpPTAhPT1zJiZ0Ll9faXRlcmF0b3IoZSxyKSxhPTAsdT0wO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7Zm9yKDthKys8bzspaS5uZXh0KCk7aWYoKyt1PnMpcmV0dXJuIGl0ZXJhdG9yRG9uZSgpO3ZhciB0PWkubmV4dCgpO3JldHVybiBufHxlPT09cD90Oml0ZXJhdG9yVmFsdWUoZSx1LTEsZT09PWg/dm9pZCAwOnQudmFsdWVbMV0sdCl9KSl9LGN9ZnVuY3Rpb24gdGFrZVdoaWxlRmFjdG9yeSh0LGUscil7dmFyIG49bWFrZVNlcXVlbmNlKHQpO3JldHVybiBuLl9faXRlcmF0ZVVuY2FjaGVkPWZ1bmN0aW9uKG4saSl7dmFyIG89dGhpcztpZihpKXJldHVybiB0aGlzLmNhY2hlUmVzdWx0KCkuX19pdGVyYXRlKG4saSk7dmFyIGE9MDtyZXR1cm4gdC5fX2l0ZXJhdGUoKGZ1bmN0aW9uKHQsaSxzKXtyZXR1cm4gZS5jYWxsKHIsdCxpLHMpJiYrK2EmJm4odCxpLG8pfSkpLGF9LG4uX19pdGVyYXRvclVuY2FjaGVkPWZ1bmN0aW9uKG4saSl7dmFyIG89dGhpcztpZihpKXJldHVybiB0aGlzLmNhY2hlUmVzdWx0KCkuX19pdGVyYXRvcihuLGkpO3ZhciBhPXQuX19pdGVyYXRvcihkLGkpLHM9ITA7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXtpZighcylyZXR1cm4gaXRlcmF0b3JEb25lKCk7dmFyIHQ9YS5uZXh0KCk7aWYodC5kb25lKXJldHVybiB0O3ZhciBpPXQudmFsdWUsdT1pWzBdLGM9aVsxXTtyZXR1cm4gZS5jYWxsKHIsYyx1LG8pP249PT1kP3Q6aXRlcmF0b3JWYWx1ZShuLHUsYyx0KToocz0hMSxpdGVyYXRvckRvbmUoKSl9KSl9LG59ZnVuY3Rpb24gc2tpcFdoaWxlRmFjdG9yeSh0LGUscixuKXt2YXIgaT1tYWtlU2VxdWVuY2UodCk7cmV0dXJuIGkuX19pdGVyYXRlVW5jYWNoZWQ9ZnVuY3Rpb24oaSxvKXt2YXIgYT10aGlzO2lmKG8pcmV0dXJuIHRoaXMuY2FjaGVSZXN1bHQoKS5fX2l0ZXJhdGUoaSxvKTt2YXIgcz0hMCx1PTA7cmV0dXJuIHQuX19pdGVyYXRlKChmdW5jdGlvbih0LG8sYyl7aWYoIXN8fCEocz1lLmNhbGwocix0LG8sYykpKXJldHVybiB1KyssaSh0LG4/bzp1LTEsYSl9KSksdX0saS5fX2l0ZXJhdG9yVW5jYWNoZWQ9ZnVuY3Rpb24oaSxvKXt2YXIgYT10aGlzO2lmKG8pcmV0dXJuIHRoaXMuY2FjaGVSZXN1bHQoKS5fX2l0ZXJhdG9yKGksbyk7dmFyIHM9dC5fX2l0ZXJhdG9yKGQsbyksdT0hMCxjPTA7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXt2YXIgdCxvLGY7ZG97aWYoKHQ9cy5uZXh0KCkpLmRvbmUpcmV0dXJuIG58fGk9PT1wP3Q6aXRlcmF0b3JWYWx1ZShpLGMrKyxpPT09aD92b2lkIDA6dC52YWx1ZVsxXSx0KTt2YXIgbD10LnZhbHVlO289bFswXSxmPWxbMV0sdSYmKHU9ZS5jYWxsKHIsZixvLGEpKX13aGlsZSh1KTtyZXR1cm4gaT09PWQ/dDppdGVyYXRvclZhbHVlKGksbyxmLHQpfSkpfSxpfWZ1bmN0aW9uIGNvbmNhdEZhY3RvcnkodCxlKXt2YXIgcj1pc0tleWVkKHQpLG49W3RdLmNvbmNhdChlKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBpc0l0ZXJhYmxlKHQpP3ImJih0PUtleWVkSXRlcmFibGUodCkpOnQ9cj9rZXllZFNlcUZyb21WYWx1ZSh0KTppbmRleGVkU2VxRnJvbVZhbHVlKEFycmF5LmlzQXJyYXkodCk/dDpbdF0pLHR9KSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gMCE9PXQuc2l6ZX0pKTtpZigwPT09bi5sZW5ndGgpcmV0dXJuIHQ7aWYoMT09PW4ubGVuZ3RoKXt2YXIgaT1uWzBdO2lmKGk9PT10fHxyJiZpc0tleWVkKGkpfHxpc0luZGV4ZWQodCkmJmlzSW5kZXhlZChpKSlyZXR1cm4gaX12YXIgbz1uZXcgQXJyYXlTZXEobik7cmV0dXJuIHI/bz1vLnRvS2V5ZWRTZXEoKTppc0luZGV4ZWQodCl8fChvPW8udG9TZXRTZXEoKSksKG89by5mbGF0dGVuKCEwKSkuc2l6ZT1uLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtpZih2b2lkIDAhPT10KXt2YXIgcj1lLnNpemU7aWYodm9pZCAwIT09cilyZXR1cm4gdCtyfX0pLDApLG99ZnVuY3Rpb24gZmxhdHRlbkZhY3RvcnkodCxlLHIpe3ZhciBuPW1ha2VTZXF1ZW5jZSh0KTtyZXR1cm4gbi5fX2l0ZXJhdGVVbmNhY2hlZD1mdW5jdGlvbihuLGkpe3ZhciBvPTAsYT0hMTtmdW5jdGlvbiBmbGF0RGVlcCh0LHMpe3ZhciB1PXRoaXM7dC5fX2l0ZXJhdGUoKGZ1bmN0aW9uKHQsaSl7cmV0dXJuKCFlfHxzPGUpJiZpc0l0ZXJhYmxlKHQpP2ZsYXREZWVwKHQscysxKTohMT09PW4odCxyP2k6bysrLHUpJiYoYT0hMCksIWF9KSxpKX1yZXR1cm4gZmxhdERlZXAodCwwKSxvfSxuLl9faXRlcmF0b3JVbmNhY2hlZD1mdW5jdGlvbihuLGkpe3ZhciBvPXQuX19pdGVyYXRvcihuLGkpLGE9W10scz0wO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7Zm9yKDtvOyl7dmFyIHQ9by5uZXh0KCk7aWYoITE9PT10LmRvbmUpe3ZhciB1PXQudmFsdWU7aWYobj09PWQmJih1PXVbMV0pLGUmJiEoYS5sZW5ndGg8ZSl8fCFpc0l0ZXJhYmxlKHUpKXJldHVybiByP3Q6aXRlcmF0b3JWYWx1ZShuLHMrKyx1LHQpO2EucHVzaChvKSxvPXUuX19pdGVyYXRvcihuLGkpfWVsc2Ugbz1hLnBvcCgpfXJldHVybiBpdGVyYXRvckRvbmUoKX0pKX0sbn1mdW5jdGlvbiBmbGF0TWFwRmFjdG9yeSh0LGUscil7dmFyIG49aXRlcmFibGVDbGFzcyh0KTtyZXR1cm4gdC50b1NlcSgpLm1hcCgoZnVuY3Rpb24oaSxvKXtyZXR1cm4gbihlLmNhbGwocixpLG8sdCkpfSkpLmZsYXR0ZW4oITApfWZ1bmN0aW9uIGludGVycG9zZUZhY3RvcnkodCxlKXt2YXIgcj1tYWtlU2VxdWVuY2UodCk7cmV0dXJuIHIuc2l6ZT10LnNpemUmJjIqdC5zaXplLTEsci5fX2l0ZXJhdGVVbmNhY2hlZD1mdW5jdGlvbihyLG4pe3ZhciBpPXRoaXMsbz0wO3JldHVybiB0Ll9faXRlcmF0ZSgoZnVuY3Rpb24odCxuKXtyZXR1cm4oIW98fCExIT09cihlLG8rKyxpKSkmJiExIT09cih0LG8rKyxpKX0pLG4pLG99LHIuX19pdGVyYXRvclVuY2FjaGVkPWZ1bmN0aW9uKHIsbil7dmFyIGksbz10Ll9faXRlcmF0b3IocCxuKSxhPTA7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXtyZXR1cm4oIWl8fGElMikmJihpPW8ubmV4dCgpKS5kb25lP2k6YSUyP2l0ZXJhdG9yVmFsdWUocixhKyssZSk6aXRlcmF0b3JWYWx1ZShyLGErKyxpLnZhbHVlLGkpfSkpfSxyfWZ1bmN0aW9uIHNvcnRGYWN0b3J5KHQsZSxyKXtlfHwoZT1kZWZhdWx0Q29tcGFyYXRvcik7dmFyIG49aXNLZXllZCh0KSxpPTAsbz10LnRvU2VxKCkubWFwKChmdW5jdGlvbihlLG4pe3JldHVybltuLGUsaSsrLHI/cihlLG4sdCk6ZV19KSkudG9BcnJheSgpO3JldHVybiBvLnNvcnQoKGZ1bmN0aW9uKHQscil7cmV0dXJuIGUodFszXSxyWzNdKXx8dFsyXS1yWzJdfSkpLmZvckVhY2gobj9mdW5jdGlvbih0LGUpe29bZV0ubGVuZ3RoPTJ9OmZ1bmN0aW9uKHQsZSl7b1tlXT10WzFdfSksbj9LZXllZFNlcShvKTppc0luZGV4ZWQodCk/SW5kZXhlZFNlcShvKTpTZXRTZXEobyl9ZnVuY3Rpb24gbWF4RmFjdG9yeSh0LGUscil7aWYoZXx8KGU9ZGVmYXVsdENvbXBhcmF0b3IpLHIpe3ZhciBuPXQudG9TZXEoKS5tYXAoKGZ1bmN0aW9uKGUsbil7cmV0dXJuW2UscihlLG4sdCldfSkpLnJlZHVjZSgoZnVuY3Rpb24odCxyKXtyZXR1cm4gbWF4Q29tcGFyZShlLHRbMV0sclsxXSk/cjp0fSkpO3JldHVybiBuJiZuWzBdfXJldHVybiB0LnJlZHVjZSgoZnVuY3Rpb24odCxyKXtyZXR1cm4gbWF4Q29tcGFyZShlLHQscik/cjp0fSkpfWZ1bmN0aW9uIG1heENvbXBhcmUodCxlLHIpe3ZhciBuPXQocixlKTtyZXR1cm4gMD09PW4mJnIhPT1lJiYobnVsbD09cnx8ciE9cil8fG4+MH1mdW5jdGlvbiB6aXBXaXRoRmFjdG9yeSh0LGUscil7dmFyIG49bWFrZVNlcXVlbmNlKHQpO3JldHVybiBuLnNpemU9bmV3IEFycmF5U2VxKHIpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2l6ZX0pKS5taW4oKSxuLl9faXRlcmF0ZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcixuPXRoaXMuX19pdGVyYXRvcihwLGUpLGk9MDshKHI9bi5uZXh0KCkpLmRvbmUmJiExIT09dChyLnZhbHVlLGkrKyx0aGlzKTspO3JldHVybiBpfSxuLl9faXRlcmF0b3JVbmNhY2hlZD1mdW5jdGlvbih0LG4pe3ZhciBpPXIubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdD1JdGVyYWJsZSh0KSxnZXRJdGVyYXRvcihuP3QucmV2ZXJzZSgpOnQpfSkpLG89MCxhPSExO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7dmFyIHI7cmV0dXJuIGF8fChyPWkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5uZXh0KCl9KSksYT1yLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmV9KSkpLGE/aXRlcmF0b3JEb25lKCk6aXRlcmF0b3JWYWx1ZSh0LG8rKyxlLmFwcGx5KG51bGwsci5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnZhbHVlfSkpKSl9KSl9LG59ZnVuY3Rpb24gcmVpZnkodCxlKXtyZXR1cm4gaXNTZXEodCk/ZTp0LmNvbnN0cnVjdG9yKGUpfWZ1bmN0aW9uIHZhbGlkYXRlRW50cnkodCl7aWYodCE9PU9iamVjdCh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBbSywgVl0gdHVwbGU6ICIrdCl9ZnVuY3Rpb24gcmVzb2x2ZVNpemUodCl7cmV0dXJuIGFzc2VydE5vdEluZmluaXRlKHQuc2l6ZSksZW5zdXJlU2l6ZSh0KX1mdW5jdGlvbiBpdGVyYWJsZUNsYXNzKHQpe3JldHVybiBpc0tleWVkKHQpP0tleWVkSXRlcmFibGU6aXNJbmRleGVkKHQpP0luZGV4ZWRJdGVyYWJsZTpTZXRJdGVyYWJsZX1mdW5jdGlvbiBtYWtlU2VxdWVuY2UodCl7cmV0dXJuIE9iamVjdC5jcmVhdGUoKGlzS2V5ZWQodCk/S2V5ZWRTZXE6aXNJbmRleGVkKHQpP0luZGV4ZWRTZXE6U2V0U2VxKS5wcm90b3R5cGUpfWZ1bmN0aW9uIGNhY2hlUmVzdWx0VGhyb3VnaCgpe3JldHVybiB0aGlzLl9pdGVyLmNhY2hlUmVzdWx0Pyh0aGlzLl9pdGVyLmNhY2hlUmVzdWx0KCksdGhpcy5zaXplPXRoaXMuX2l0ZXIuc2l6ZSx0aGlzKTpTZXEucHJvdG90eXBlLmNhY2hlUmVzdWx0LmNhbGwodGhpcyl9ZnVuY3Rpb24gZGVmYXVsdENvbXBhcmF0b3IodCxlKXtyZXR1cm4gdD5lPzE6dDxlPy0xOjB9ZnVuY3Rpb24gZm9yY2VJdGVyYXRvcih0KXt2YXIgZT1nZXRJdGVyYXRvcih0KTtpZighZSl7aWYoIWlzQXJyYXlMaWtlKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGl0ZXJhYmxlIG9yIGFycmF5LWxpa2U6ICIrdCk7ZT1nZXRJdGVyYXRvcihJdGVyYWJsZSh0KSl9cmV0dXJuIGV9ZnVuY3Rpb24gUmVjb3JkKHQsZSl7dmFyIHIsbj1mdW5jdGlvbiBSZWNvcmQobyl7aWYobyBpbnN0YW5jZW9mIG4pcmV0dXJuIG87aWYoISh0aGlzIGluc3RhbmNlb2YgbikpcmV0dXJuIG5ldyBuKG8pO2lmKCFyKXtyPSEwO3ZhciBhPU9iamVjdC5rZXlzKHQpO3NldFByb3BzKGksYSksaS5zaXplPWEubGVuZ3RoLGkuX25hbWU9ZSxpLl9rZXlzPWEsaS5fZGVmYXVsdFZhbHVlcz10fXRoaXMuX21hcD1NYXAobyl9LGk9bi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShydCk7cmV0dXJuIGkuY29uc3RydWN0b3I9bixufWNyZWF0ZUNsYXNzKE9yZGVyZWRNYXAsTWFwKSxPcmRlcmVkTWFwLm9mPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMoYXJndW1lbnRzKX0sT3JkZXJlZE1hcC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX3RvU3RyaW5nKCJPcmRlcmVkTWFwIHsiLCJ9Iil9LE9yZGVyZWRNYXAucHJvdG90eXBlLmdldD1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX21hcC5nZXQodCk7cmV0dXJuIHZvaWQgMCE9PXI/dGhpcy5fbGlzdC5nZXQocilbMV06ZX0sT3JkZXJlZE1hcC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuc2l6ZT90aGlzOnRoaXMuX19vd25lcklEPyh0aGlzLnNpemU9MCx0aGlzLl9tYXAuY2xlYXIoKSx0aGlzLl9saXN0LmNsZWFyKCksdGhpcyk6ZW1wdHlPcmRlcmVkTWFwKCl9LE9yZGVyZWRNYXAucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LGUpe3JldHVybiB1cGRhdGVPcmRlcmVkTWFwKHRoaXMsdCxlKX0sT3JkZXJlZE1hcC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQpe3JldHVybiB1cGRhdGVPcmRlcmVkTWFwKHRoaXMsdCxjKX0sT3JkZXJlZE1hcC5wcm90b3R5cGUud2FzQWx0ZXJlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXAud2FzQWx0ZXJlZCgpfHx0aGlzLl9saXN0Lndhc0FsdGVyZWQoKX0sT3JkZXJlZE1hcC5wcm90b3R5cGUuX19pdGVyYXRlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcztyZXR1cm4gdGhpcy5fbGlzdC5fX2l0ZXJhdGUoKGZ1bmN0aW9uKGUpe3JldHVybiBlJiZ0KGVbMV0sZVswXSxyKX0pLGUpfSxPcmRlcmVkTWFwLnByb3RvdHlwZS5fX2l0ZXJhdG9yPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2xpc3QuZnJvbUVudHJ5U2VxKCkuX19pdGVyYXRvcih0LGUpfSxPcmRlcmVkTWFwLnByb3RvdHlwZS5fX2Vuc3VyZU93bmVyPWZ1bmN0aW9uKHQpe2lmKHQ9PT10aGlzLl9fb3duZXJJRClyZXR1cm4gdGhpczt2YXIgZT10aGlzLl9tYXAuX19lbnN1cmVPd25lcih0KSxyPXRoaXMuX2xpc3QuX19lbnN1cmVPd25lcih0KTtyZXR1cm4gdD9tYWtlT3JkZXJlZE1hcChlLHIsdCx0aGlzLl9faGFzaCk6KHRoaXMuX19vd25lcklEPXQsdGhpcy5fbWFwPWUsdGhpcy5fbGlzdD1yLHRoaXMpfSxPcmRlcmVkTWFwLmlzT3JkZXJlZE1hcD1pc09yZGVyZWRNYXAsT3JkZXJlZE1hcC5wcm90b3R5cGVbaV09ITAsT3JkZXJlZE1hcC5wcm90b3R5cGVbb109T3JkZXJlZE1hcC5wcm90b3R5cGUucmVtb3ZlLGNyZWF0ZUNsYXNzKFRvS2V5ZWRTZXF1ZW5jZSxLZXllZFNlcSksVG9LZXllZFNlcXVlbmNlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5faXRlci5nZXQodCxlKX0sVG9LZXllZFNlcXVlbmNlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2l0ZXIuaGFzKHQpfSxUb0tleWVkU2VxdWVuY2UucHJvdG90eXBlLnZhbHVlU2VxPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2l0ZXIudmFsdWVTZXEoKX0sVG9LZXllZFNlcXVlbmNlLnByb3RvdHlwZS5yZXZlcnNlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXJldmVyc2VGYWN0b3J5KHRoaXMsITApO3JldHVybiB0aGlzLl91c2VLZXlzfHwoZS52YWx1ZVNlcT1mdW5jdGlvbigpe3JldHVybiB0Ll9pdGVyLnRvU2VxKCkucmV2ZXJzZSgpfSksZX0sVG9LZXllZFNlcXVlbmNlLnByb3RvdHlwZS5tYXA9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLG49bWFwRmFjdG9yeSh0aGlzLHQsZSk7cmV0dXJuIHRoaXMuX3VzZUtleXN8fChuLnZhbHVlU2VxPWZ1bmN0aW9uKCl7cmV0dXJuIHIuX2l0ZXIudG9TZXEoKS5tYXAodCxlKX0pLG59LFRvS2V5ZWRTZXF1ZW5jZS5wcm90b3R5cGUuX19pdGVyYXRlPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj10aGlzO3JldHVybiB0aGlzLl9pdGVyLl9faXRlcmF0ZSh0aGlzLl91c2VLZXlzP2Z1bmN0aW9uKGUscil7cmV0dXJuIHQoZSxyLG4pfToocj1lP3Jlc29sdmVTaXplKHRoaXMpOjAsZnVuY3Rpb24oaSl7cmV0dXJuIHQoaSxlPy0tcjpyKyssbil9KSxlKX0sVG9LZXllZFNlcXVlbmNlLnByb3RvdHlwZS5fX2l0ZXJhdG9yPWZ1bmN0aW9uKHQsZSl7aWYodGhpcy5fdXNlS2V5cylyZXR1cm4gdGhpcy5faXRlci5fX2l0ZXJhdG9yKHQsZSk7dmFyIHI9dGhpcy5faXRlci5fX2l0ZXJhdG9yKHAsZSksbj1lP3Jlc29sdmVTaXplKHRoaXMpOjA7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXt2YXIgaT1yLm5leHQoKTtyZXR1cm4gaS5kb25lP2k6aXRlcmF0b3JWYWx1ZSh0LGU/LS1uOm4rKyxpLnZhbHVlLGkpfSkpfSxUb0tleWVkU2VxdWVuY2UucHJvdG90eXBlW2ldPSEwLGNyZWF0ZUNsYXNzKFRvSW5kZXhlZFNlcXVlbmNlLEluZGV4ZWRTZXEpLFRvSW5kZXhlZFNlcXVlbmNlLnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faXRlci5pbmNsdWRlcyh0KX0sVG9JbmRleGVkU2VxdWVuY2UucHJvdG90eXBlLl9faXRlcmF0ZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMsbj0wO3JldHVybiB0aGlzLl9pdGVyLl9faXRlcmF0ZSgoZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSxuKysscil9KSxlKX0sVG9JbmRleGVkU2VxdWVuY2UucHJvdG90eXBlLl9faXRlcmF0b3I9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl9pdGVyLl9faXRlcmF0b3IocCxlKSxuPTA7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXt2YXIgZT1yLm5leHQoKTtyZXR1cm4gZS5kb25lP2U6aXRlcmF0b3JWYWx1ZSh0LG4rKyxlLnZhbHVlLGUpfSkpfSxjcmVhdGVDbGFzcyhUb1NldFNlcXVlbmNlLFNldFNlcSksVG9TZXRTZXF1ZW5jZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pdGVyLmluY2x1ZGVzKHQpfSxUb1NldFNlcXVlbmNlLnByb3RvdHlwZS5fX2l0ZXJhdGU9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzO3JldHVybiB0aGlzLl9pdGVyLl9faXRlcmF0ZSgoZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSxlLHIpfSksZSl9LFRvU2V0U2VxdWVuY2UucHJvdG90eXBlLl9faXRlcmF0b3I9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl9pdGVyLl9faXRlcmF0b3IocCxlKTtyZXR1cm4gbmV3IEl0ZXJhdG9yKChmdW5jdGlvbigpe3ZhciBlPXIubmV4dCgpO3JldHVybiBlLmRvbmU/ZTppdGVyYXRvclZhbHVlKHQsZS52YWx1ZSxlLnZhbHVlLGUpfSkpfSxjcmVhdGVDbGFzcyhGcm9tRW50cmllc1NlcXVlbmNlLEtleWVkU2VxKSxGcm9tRW50cmllc1NlcXVlbmNlLnByb3RvdHlwZS5lbnRyeVNlcT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9pdGVyLnRvU2VxKCl9LEZyb21FbnRyaWVzU2VxdWVuY2UucHJvdG90eXBlLl9faXRlcmF0ZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXM7cmV0dXJuIHRoaXMuX2l0ZXIuX19pdGVyYXRlKChmdW5jdGlvbihlKXtpZihlKXt2YWxpZGF0ZUVudHJ5KGUpO3ZhciBuPWlzSXRlcmFibGUoZSk7cmV0dXJuIHQobj9lLmdldCgxKTplWzFdLG4/ZS5nZXQoMCk6ZVswXSxyKX19KSxlKX0sRnJvbUVudHJpZXNTZXF1ZW5jZS5wcm90b3R5cGUuX19pdGVyYXRvcj1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX2l0ZXIuX19pdGVyYXRvcihwLGUpO3JldHVybiBuZXcgSXRlcmF0b3IoKGZ1bmN0aW9uKCl7Zm9yKDs7KXt2YXIgZT1yLm5leHQoKTtpZihlLmRvbmUpcmV0dXJuIGU7dmFyIG49ZS52YWx1ZTtpZihuKXt2YWxpZGF0ZUVudHJ5KG4pO3ZhciBpPWlzSXRlcmFibGUobik7cmV0dXJuIGl0ZXJhdG9yVmFsdWUodCxpP24uZ2V0KDApOm5bMF0saT9uLmdldCgxKTpuWzFdLGUpfX19KSl9LFRvSW5kZXhlZFNlcXVlbmNlLnByb3RvdHlwZS5jYWNoZVJlc3VsdD1Ub0tleWVkU2VxdWVuY2UucHJvdG90eXBlLmNhY2hlUmVzdWx0PVRvU2V0U2VxdWVuY2UucHJvdG90eXBlLmNhY2hlUmVzdWx0PUZyb21FbnRyaWVzU2VxdWVuY2UucHJvdG90eXBlLmNhY2hlUmVzdWx0PWNhY2hlUmVzdWx0VGhyb3VnaCxjcmVhdGVDbGFzcyhSZWNvcmQsS2V5ZWRDb2xsZWN0aW9uKSxSZWNvcmQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX190b1N0cmluZyhyZWNvcmROYW1lKHRoaXMpKyIgeyIsIn0iKX0sUmVjb3JkLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RlZmF1bHRWYWx1ZXMuaGFzT3duUHJvcGVydHkodCl9LFJlY29yZC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQsZSl7aWYoIXRoaXMuaGFzKHQpKXJldHVybiBlO3ZhciByPXRoaXMuX2RlZmF1bHRWYWx1ZXNbdF07cmV0dXJuIHRoaXMuX21hcD90aGlzLl9tYXAuZ2V0KHQscik6cn0sUmVjb3JkLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe2lmKHRoaXMuX19vd25lcklEKXJldHVybiB0aGlzLl9tYXAmJnRoaXMuX21hcC5jbGVhcigpLHRoaXM7dmFyIHQ9dGhpcy5jb25zdHJ1Y3RvcjtyZXR1cm4gdC5fZW1wdHl8fCh0Ll9lbXB0eT1tYWtlUmVjb3JkKHRoaXMsZW1wdHlNYXAoKSkpfSxSZWNvcmQucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LGUpe2lmKCF0aGlzLmhhcyh0KSl0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBzZXQgdW5rbm93biBrZXkgIicrdCsnIiBvbiAnK3JlY29yZE5hbWUodGhpcykpO2lmKHRoaXMuX21hcCYmIXRoaXMuX21hcC5oYXModCkmJmU9PT10aGlzLl9kZWZhdWx0VmFsdWVzW3RdKXJldHVybiB0aGlzO3ZhciByPXRoaXMuX21hcCYmdGhpcy5fbWFwLnNldCh0LGUpO3JldHVybiB0aGlzLl9fb3duZXJJRHx8cj09PXRoaXMuX21hcD90aGlzOm1ha2VSZWNvcmQodGhpcyxyKX0sUmVjb3JkLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24odCl7aWYoIXRoaXMuaGFzKHQpKXJldHVybiB0aGlzO3ZhciBlPXRoaXMuX21hcCYmdGhpcy5fbWFwLnJlbW92ZSh0KTtyZXR1cm4gdGhpcy5fX293bmVySUR8fGU9PT10aGlzLl9tYXA/dGhpczptYWtlUmVjb3JkKHRoaXMsZSl9LFJlY29yZC5wcm90b3R5cGUud2FzQWx0ZXJlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXAud2FzQWx0ZXJlZCgpfSxSZWNvcmQucHJvdG90eXBlLl9faXRlcmF0b3I9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzO3JldHVybiBLZXllZEl0ZXJhYmxlKHRoaXMuX2RlZmF1bHRWYWx1ZXMpLm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gci5nZXQoZSl9KSkuX19pdGVyYXRvcih0LGUpfSxSZWNvcmQucHJvdG90eXBlLl9faXRlcmF0ZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXM7cmV0dXJuIEtleWVkSXRlcmFibGUodGhpcy5fZGVmYXVsdFZhbHVlcykubWFwKChmdW5jdGlvbih0LGUpe3JldHVybiByLmdldChlKX0pKS5fX2l0ZXJhdGUodCxlKX0sUmVjb3JkLnByb3RvdHlwZS5fX2Vuc3VyZU93bmVyPWZ1bmN0aW9uKHQpe2lmKHQ9PT10aGlzLl9fb3duZXJJRClyZXR1cm4gdGhpczt2YXIgZT10aGlzLl9tYXAmJnRoaXMuX21hcC5fX2Vuc3VyZU93bmVyKHQpO3JldHVybiB0P21ha2VSZWNvcmQodGhpcyxlLHQpOih0aGlzLl9fb3duZXJJRD10LHRoaXMuX21hcD1lLHRoaXMpfTt2YXIgcnQ9UmVjb3JkLnByb3RvdHlwZTtmdW5jdGlvbiBtYWtlUmVjb3JkKHQsZSxyKXt2YXIgbj1PYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih0KSk7cmV0dXJuIG4uX21hcD1lLG4uX19vd25lcklEPXIsbn1mdW5jdGlvbiByZWNvcmROYW1lKHQpe3JldHVybiB0Ll9uYW1lfHx0LmNvbnN0cnVjdG9yLm5hbWV8fCJSZWNvcmQifWZ1bmN0aW9uIHNldFByb3BzKHQsZSl7dHJ5e2UuZm9yRWFjaChzZXRQcm9wLmJpbmQodm9pZCAwLHQpKX1jYXRjaCh0KXt9fWZ1bmN0aW9uIHNldFByb3AodCxlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoZSl9LHNldDpmdW5jdGlvbih0KXtpbnZhcmlhbnQodGhpcy5fX293bmVySUQsIkNhbm5vdCBzZXQgb24gYW4gaW1tdXRhYmxlIHJlY29yZC4iKSx0aGlzLnNldChlLHQpfX0pfWZ1bmN0aW9uIFNldCh0KXtyZXR1cm4gbnVsbD09dD9lbXB0eVNldCgpOmlzU2V0KHQpJiYhaXNPcmRlcmVkKHQpP3Q6ZW1wdHlTZXQoKS53aXRoTXV0YXRpb25zKChmdW5jdGlvbihlKXt2YXIgcj1TZXRJdGVyYWJsZSh0KTthc3NlcnROb3RJbmZpbml0ZShyLnNpemUpLHIuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuYWRkKHQpfSkpfSkpfWZ1bmN0aW9uIGlzU2V0KHQpe3JldHVybiEoIXR8fCF0W2l0XSl9cnRbb109cnQucmVtb3ZlLHJ0LmRlbGV0ZUluPXJ0LnJlbW92ZUluPVYucmVtb3ZlSW4scnQubWVyZ2U9Vi5tZXJnZSxydC5tZXJnZVdpdGg9Vi5tZXJnZVdpdGgscnQubWVyZ2VJbj1WLm1lcmdlSW4scnQubWVyZ2VEZWVwPVYubWVyZ2VEZWVwLHJ0Lm1lcmdlRGVlcFdpdGg9Vi5tZXJnZURlZXBXaXRoLHJ0Lm1lcmdlRGVlcEluPVYubWVyZ2VEZWVwSW4scnQuc2V0SW49Vi5zZXRJbixydC51cGRhdGU9Vi51cGRhdGUscnQudXBkYXRlSW49Vi51cGRhdGVJbixydC53aXRoTXV0YXRpb25zPVYud2l0aE11dGF0aW9ucyxydC5hc011dGFibGU9Vi5hc011dGFibGUscnQuYXNJbW11dGFibGU9Vi5hc0ltbXV0YWJsZSxjcmVhdGVDbGFzcyhTZXQsU2V0Q29sbGVjdGlvbiksU2V0Lm9mPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMoYXJndW1lbnRzKX0sU2V0LmZyb21LZXlzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzKEtleWVkSXRlcmFibGUodCkua2V5U2VxKCkpfSxTZXQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX190b1N0cmluZygiU2V0IHsiLCJ9Iil9LFNldC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9tYXAuaGFzKHQpfSxTZXQucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXtyZXR1cm4gdXBkYXRlU2V0KHRoaXMsdGhpcy5fbWFwLnNldCh0LCEwKSl9LFNldC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQpe3JldHVybiB1cGRhdGVTZXQodGhpcyx0aGlzLl9tYXAucmVtb3ZlKHQpKX0sU2V0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3JldHVybiB1cGRhdGVTZXQodGhpcyx0aGlzLl9tYXAuY2xlYXIoKSl9LFNldC5wcm90b3R5cGUudW5pb249ZnVuY3Rpb24oKXt2YXIgZT10LmNhbGwoYXJndW1lbnRzLDApO3JldHVybiAwPT09KGU9ZS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiAwIT09dC5zaXplfSkpKS5sZW5ndGg/dGhpczowIT09dGhpcy5zaXplfHx0aGlzLl9fb3duZXJJRHx8MSE9PWUubGVuZ3RoP3RoaXMud2l0aE11dGF0aW9ucygoZnVuY3Rpb24odCl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspU2V0SXRlcmFibGUoZVtyXSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuYWRkKGUpfSkpfSkpOnRoaXMuY29uc3RydWN0b3IoZVswXSl9LFNldC5wcm90b3R5cGUuaW50ZXJzZWN0PWZ1bmN0aW9uKCl7dmFyIGU9dC5jYWxsKGFyZ3VtZW50cywwKTtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIHRoaXM7ZT1lLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIFNldEl0ZXJhYmxlKHQpfSkpO3ZhciByPXRoaXM7cmV0dXJuIHRoaXMud2l0aE11dGF0aW9ucygoZnVuY3Rpb24odCl7ci5mb3JFYWNoKChmdW5jdGlvbihyKXtlLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5pbmNsdWRlcyhyKX0pKXx8dC5yZW1vdmUocil9KSl9KSl9LFNldC5wcm90b3R5cGUuc3VidHJhY3Q9ZnVuY3Rpb24oKXt2YXIgZT10LmNhbGwoYXJndW1lbnRzLDApO2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gdGhpcztlPWUubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gU2V0SXRlcmFibGUodCl9KSk7dmFyIHI9dGhpcztyZXR1cm4gdGhpcy53aXRoTXV0YXRpb25zKChmdW5jdGlvbih0KXtyLmZvckVhY2goKGZ1bmN0aW9uKHIpe2Uuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaW5jbHVkZXMocil9KSkmJnQucmVtb3ZlKHIpfSkpfSkpfSxTZXQucHJvdG90eXBlLm1lcmdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudW5pb24uYXBwbHkodGhpcyxhcmd1bWVudHMpfSxTZXQucHJvdG90eXBlLm1lcmdlV2l0aD1mdW5jdGlvbihlKXt2YXIgcj10LmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiB0aGlzLnVuaW9uLmFwcGx5KHRoaXMscil9LFNldC5wcm90b3R5cGUuc29ydD1mdW5jdGlvbih0KXtyZXR1cm4gT3JkZXJlZFNldChzb3J0RmFjdG9yeSh0aGlzLHQpKX0sU2V0LnByb3RvdHlwZS5zb3J0Qnk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gT3JkZXJlZFNldChzb3J0RmFjdG9yeSh0aGlzLGUsdCkpfSxTZXQucHJvdG90eXBlLndhc0FsdGVyZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWFwLndhc0FsdGVyZWQoKX0sU2V0LnByb3RvdHlwZS5fX2l0ZXJhdGU9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzO3JldHVybiB0aGlzLl9tYXAuX19pdGVyYXRlKChmdW5jdGlvbihlLG4pe3JldHVybiB0KG4sbixyKX0pLGUpfSxTZXQucHJvdG90eXBlLl9faXRlcmF0b3I9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fbWFwLm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZX0pKS5fX2l0ZXJhdG9yKHQsZSl9LFNldC5wcm90b3R5cGUuX19lbnN1cmVPd25lcj1mdW5jdGlvbih0KXtpZih0PT09dGhpcy5fX293bmVySUQpcmV0dXJuIHRoaXM7dmFyIGU9dGhpcy5fbWFwLl9fZW5zdXJlT3duZXIodCk7cmV0dXJuIHQ/dGhpcy5fX21ha2UoZSx0KToodGhpcy5fX293bmVySUQ9dCx0aGlzLl9tYXA9ZSx0aGlzKX0sU2V0LmlzU2V0PWlzU2V0O3ZhciBudCxpdD0iQEBfX0lNTVVUQUJMRV9TRVRfX0BAIixvdD1TZXQucHJvdG90eXBlO2Z1bmN0aW9uIHVwZGF0ZVNldCh0LGUpe3JldHVybiB0Ll9fb3duZXJJRD8odC5zaXplPWUuc2l6ZSx0Ll9tYXA9ZSx0KTplPT09dC5fbWFwP3Q6MD09PWUuc2l6ZT90Ll9fZW1wdHkoKTp0Ll9fbWFrZShlKX1mdW5jdGlvbiBtYWtlU2V0KHQsZSl7dmFyIHI9T2JqZWN0LmNyZWF0ZShvdCk7cmV0dXJuIHIuc2l6ZT10P3Quc2l6ZTowLHIuX21hcD10LHIuX19vd25lcklEPWUscn1mdW5jdGlvbiBlbXB0eVNldCgpe3JldHVybiBudHx8KG50PW1ha2VTZXQoZW1wdHlNYXAoKSkpfWZ1bmN0aW9uIE9yZGVyZWRTZXQodCl7cmV0dXJuIG51bGw9PXQ/ZW1wdHlPcmRlcmVkU2V0KCk6aXNPcmRlcmVkU2V0KHQpP3Q6ZW1wdHlPcmRlcmVkU2V0KCkud2l0aE11dGF0aW9ucygoZnVuY3Rpb24oZSl7dmFyIHI9U2V0SXRlcmFibGUodCk7YXNzZXJ0Tm90SW5maW5pdGUoci5zaXplKSxyLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBlLmFkZCh0KX0pKX0pKX1mdW5jdGlvbiBpc09yZGVyZWRTZXQodCl7cmV0dXJuIGlzU2V0KHQpJiZpc09yZGVyZWQodCl9b3RbaXRdPSEwLG90W29dPW90LnJlbW92ZSxvdC5tZXJnZURlZXA9b3QubWVyZ2Usb3QubWVyZ2VEZWVwV2l0aD1vdC5tZXJnZVdpdGgsb3Qud2l0aE11dGF0aW9ucz1WLndpdGhNdXRhdGlvbnMsb3QuYXNNdXRhYmxlPVYuYXNNdXRhYmxlLG90LmFzSW1tdXRhYmxlPVYuYXNJbW11dGFibGUsb3QuX19lbXB0eT1lbXB0eVNldCxvdC5fX21ha2U9bWFrZVNldCxjcmVhdGVDbGFzcyhPcmRlcmVkU2V0LFNldCksT3JkZXJlZFNldC5vZj1mdW5jdGlvbigpe3JldHVybiB0aGlzKGFyZ3VtZW50cyl9LE9yZGVyZWRTZXQuZnJvbUtleXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMoS2V5ZWRJdGVyYWJsZSh0KS5rZXlTZXEoKSl9LE9yZGVyZWRTZXQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX190b1N0cmluZygiT3JkZXJlZFNldCB7IiwifSIpfSxPcmRlcmVkU2V0LmlzT3JkZXJlZFNldD1pc09yZGVyZWRTZXQ7dmFyIGF0LHN0PU9yZGVyZWRTZXQucHJvdG90eXBlO2Z1bmN0aW9uIG1ha2VPcmRlcmVkU2V0KHQsZSl7dmFyIHI9T2JqZWN0LmNyZWF0ZShzdCk7cmV0dXJuIHIuc2l6ZT10P3Quc2l6ZTowLHIuX21hcD10LHIuX19vd25lcklEPWUscn1mdW5jdGlvbiBlbXB0eU9yZGVyZWRTZXQoKXtyZXR1cm4gYXR8fChhdD1tYWtlT3JkZXJlZFNldChlbXB0eU9yZGVyZWRNYXAoKSkpfWZ1bmN0aW9uIFN0YWNrKHQpe3JldHVybiBudWxsPT10P2VtcHR5U3RhY2soKTppc1N0YWNrKHQpP3Q6ZW1wdHlTdGFjaygpLnVuc2hpZnRBbGwodCl9ZnVuY3Rpb24gaXNTdGFjayh0KXtyZXR1cm4hKCF0fHwhdFtjdF0pfXN0W2ldPSEwLHN0Ll9fZW1wdHk9ZW1wdHlPcmRlcmVkU2V0LHN0Ll9fbWFrZT1tYWtlT3JkZXJlZFNldCxjcmVhdGVDbGFzcyhTdGFjayxJbmRleGVkQ29sbGVjdGlvbiksU3RhY2sub2Y9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcyhhcmd1bWVudHMpfSxTdGFjay5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX3RvU3RyaW5nKCJTdGFjayBbIiwiXSIpfSxTdGFjay5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5faGVhZDtmb3IodD13cmFwSW5kZXgodGhpcyx0KTtyJiZ0LS07KXI9ci5uZXh0O3JldHVybiByP3IudmFsdWU6ZX0sU3RhY2sucHJvdG90eXBlLnBlZWs9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faGVhZCYmdGhpcy5faGVhZC52YWx1ZX0sU3RhY2sucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oKXtpZigwPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdGhpcztmb3IodmFyIHQ9dGhpcy5zaXplK2FyZ3VtZW50cy5sZW5ndGgsZT10aGlzLl9oZWFkLHI9YXJndW1lbnRzLmxlbmd0aC0xO3I+PTA7ci0tKWU9e3ZhbHVlOmFyZ3VtZW50c1tyXSxuZXh0OmV9O3JldHVybiB0aGlzLl9fb3duZXJJRD8odGhpcy5zaXplPXQsdGhpcy5faGVhZD1lLHRoaXMuX19oYXNoPXZvaWQgMCx0aGlzLl9fYWx0ZXJlZD0hMCx0aGlzKTptYWtlU3RhY2sodCxlKX0sU3RhY2sucHJvdG90eXBlLnB1c2hBbGw9ZnVuY3Rpb24odCl7aWYoMD09PSh0PUluZGV4ZWRJdGVyYWJsZSh0KSkuc2l6ZSlyZXR1cm4gdGhpczthc3NlcnROb3RJbmZpbml0ZSh0LnNpemUpO3ZhciBlPXRoaXMuc2l6ZSxyPXRoaXMuX2hlYWQ7cmV0dXJuIHQucmV2ZXJzZSgpLmZvckVhY2goKGZ1bmN0aW9uKHQpe2UrKyxyPXt2YWx1ZTp0LG5leHQ6cn19KSksdGhpcy5fX293bmVySUQ/KHRoaXMuc2l6ZT1lLHRoaXMuX2hlYWQ9cix0aGlzLl9faGFzaD12b2lkIDAsdGhpcy5fX2FsdGVyZWQ9ITAsdGhpcyk6bWFrZVN0YWNrKGUscil9LFN0YWNrLnByb3RvdHlwZS5wb3A9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zbGljZSgxKX0sU3RhY2sucHJvdG90eXBlLnVuc2hpZnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sU3RhY2sucHJvdG90eXBlLnVuc2hpZnRBbGw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucHVzaEFsbCh0KX0sU3RhY2sucHJvdG90eXBlLnNoaWZ0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucG9wLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sU3RhY2sucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnNpemU/dGhpczp0aGlzLl9fb3duZXJJRD8odGhpcy5zaXplPTAsdGhpcy5faGVhZD12b2lkIDAsdGhpcy5fX2hhc2g9dm9pZCAwLHRoaXMuX19hbHRlcmVkPSEwLHRoaXMpOmVtcHR5U3RhY2soKX0sU3RhY2sucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uKHQsZSl7aWYod2hvbGVTbGljZSh0LGUsdGhpcy5zaXplKSlyZXR1cm4gdGhpczt2YXIgcj1yZXNvbHZlQmVnaW4odCx0aGlzLnNpemUpO2lmKHJlc29sdmVFbmQoZSx0aGlzLnNpemUpIT09dGhpcy5zaXplKXJldHVybiBJbmRleGVkQ29sbGVjdGlvbi5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLHQsZSk7Zm9yKHZhciBuPXRoaXMuc2l6ZS1yLGk9dGhpcy5faGVhZDtyLS07KWk9aS5uZXh0O3JldHVybiB0aGlzLl9fb3duZXJJRD8odGhpcy5zaXplPW4sdGhpcy5faGVhZD1pLHRoaXMuX19oYXNoPXZvaWQgMCx0aGlzLl9fYWx0ZXJlZD0hMCx0aGlzKTptYWtlU3RhY2sobixpKX0sU3RhY2sucHJvdG90eXBlLl9fZW5zdXJlT3duZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT10aGlzLl9fb3duZXJJRD90aGlzOnQ/bWFrZVN0YWNrKHRoaXMuc2l6ZSx0aGlzLl9oZWFkLHQsdGhpcy5fX2hhc2gpOih0aGlzLl9fb3duZXJJRD10LHRoaXMuX19hbHRlcmVkPSExLHRoaXMpfSxTdGFjay5wcm90b3R5cGUuX19pdGVyYXRlPWZ1bmN0aW9uKHQsZSl7aWYoZSlyZXR1cm4gdGhpcy5yZXZlcnNlKCkuX19pdGVyYXRlKHQpO2Zvcih2YXIgcj0wLG49dGhpcy5faGVhZDtuJiYhMSE9PXQobi52YWx1ZSxyKyssdGhpcyk7KW49bi5uZXh0O3JldHVybiByfSxTdGFjay5wcm90b3R5cGUuX19pdGVyYXRvcj1mdW5jdGlvbih0LGUpe2lmKGUpcmV0dXJuIHRoaXMucmV2ZXJzZSgpLl9faXRlcmF0b3IodCk7dmFyIHI9MCxuPXRoaXMuX2hlYWQ7cmV0dXJuIG5ldyBJdGVyYXRvcigoZnVuY3Rpb24oKXtpZihuKXt2YXIgZT1uLnZhbHVlO3JldHVybiBuPW4ubmV4dCxpdGVyYXRvclZhbHVlKHQscisrLGUpfXJldHVybiBpdGVyYXRvckRvbmUoKX0pKX0sU3RhY2suaXNTdGFjaz1pc1N0YWNrO3ZhciB1dCxjdD0iQEBfX0lNTVVUQUJMRV9TVEFDS19fQEAiLGx0PVN0YWNrLnByb3RvdHlwZTtmdW5jdGlvbiBtYWtlU3RhY2sodCxlLHIsbil7dmFyIGk9T2JqZWN0LmNyZWF0ZShsdCk7cmV0dXJuIGkuc2l6ZT10LGkuX2hlYWQ9ZSxpLl9fb3duZXJJRD1yLGkuX19oYXNoPW4saS5fX2FsdGVyZWQ9ITEsaX1mdW5jdGlvbiBlbXB0eVN0YWNrKCl7cmV0dXJuIHV0fHwodXQ9bWFrZVN0YWNrKDApKX1mdW5jdGlvbiBtaXhpbih0LGUpe3ZhciBrZXlDb3BpZXI9ZnVuY3Rpb24ocil7dC5wcm90b3R5cGVbcl09ZVtyXX07cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2goa2V5Q29waWVyKSxPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiZPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpLmZvckVhY2goa2V5Q29waWVyKSx0fWx0W2N0XT0hMCxsdC53aXRoTXV0YXRpb25zPVYud2l0aE11dGF0aW9ucyxsdC5hc011dGFibGU9Vi5hc011dGFibGUsbHQuYXNJbW11dGFibGU9Vi5hc0ltbXV0YWJsZSxsdC53YXNBbHRlcmVkPVYud2FzQWx0ZXJlZCxJdGVyYWJsZS5JdGVyYXRvcj1JdGVyYXRvcixtaXhpbihJdGVyYWJsZSx7dG9BcnJheTpmdW5jdGlvbigpe2Fzc2VydE5vdEluZmluaXRlKHRoaXMuc2l6ZSk7dmFyIHQ9bmV3IEFycmF5KHRoaXMuc2l6ZXx8MCk7cmV0dXJuIHRoaXMudmFsdWVTZXEoKS5fX2l0ZXJhdGUoKGZ1bmN0aW9uKGUscil7dFtyXT1lfSkpLHR9LHRvSW5kZXhlZFNlcTpmdW5jdGlvbigpe3JldHVybiBuZXcgVG9JbmRleGVkU2VxdWVuY2UodGhpcyl9LHRvSlM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1NlcSgpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LnRvSlM/dC50b0pTKCk6dH0pKS5fX3RvSlMoKX0sdG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TZXEoKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgdC50b0pTT04/dC50b0pTT04oKTp0fSkpLl9fdG9KUygpfSx0b0tleWVkU2VxOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBUb0tleWVkU2VxdWVuY2UodGhpcywhMCl9LHRvTWFwOmZ1bmN0aW9uKCl7cmV0dXJuIE1hcCh0aGlzLnRvS2V5ZWRTZXEoKSl9LHRvT2JqZWN0OmZ1bmN0aW9uKCl7YXNzZXJ0Tm90SW5maW5pdGUodGhpcy5zaXplKTt2YXIgdD17fTtyZXR1cm4gdGhpcy5fX2l0ZXJhdGUoKGZ1bmN0aW9uKGUscil7dFtyXT1lfSkpLHR9LHRvT3JkZXJlZE1hcDpmdW5jdGlvbigpe3JldHVybiBPcmRlcmVkTWFwKHRoaXMudG9LZXllZFNlcSgpKX0sdG9PcmRlcmVkU2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE9yZGVyZWRTZXQoaXNLZXllZCh0aGlzKT90aGlzLnZhbHVlU2VxKCk6dGhpcyl9LHRvU2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFNldChpc0tleWVkKHRoaXMpP3RoaXMudmFsdWVTZXEoKTp0aGlzKX0sdG9TZXRTZXE6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFRvU2V0U2VxdWVuY2UodGhpcyl9LHRvU2VxOmZ1bmN0aW9uKCl7cmV0dXJuIGlzSW5kZXhlZCh0aGlzKT90aGlzLnRvSW5kZXhlZFNlcSgpOmlzS2V5ZWQodGhpcyk/dGhpcy50b0tleWVkU2VxKCk6dGhpcy50b1NldFNlcSgpfSx0b1N0YWNrOmZ1bmN0aW9uKCl7cmV0dXJuIFN0YWNrKGlzS2V5ZWQodGhpcyk/dGhpcy52YWx1ZVNlcSgpOnRoaXMpfSx0b0xpc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gTGlzdChpc0tleWVkKHRoaXMpP3RoaXMudmFsdWVTZXEoKTp0aGlzKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4iW0l0ZXJhYmxlXSJ9LF9fdG9TdHJpbmc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gMD09PXRoaXMuc2l6ZT90K2U6dCsiICIrdGhpcy50b1NlcSgpLm1hcCh0aGlzLl9fdG9TdHJpbmdNYXBwZXIpLmpvaW4oIiwgIikrIiAiK2V9LGNvbmNhdDpmdW5jdGlvbigpe3JldHVybiByZWlmeSh0aGlzLGNvbmNhdEZhY3RvcnkodGhpcyx0LmNhbGwoYXJndW1lbnRzLDApKSl9LGluY2x1ZGVzOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVybiBpcyhlLHQpfSkpfSxlbnRyaWVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19pdGVyYXRvcihkKX0sZXZlcnk6ZnVuY3Rpb24odCxlKXthc3NlcnROb3RJbmZpbml0ZSh0aGlzLnNpemUpO3ZhciByPSEwO3JldHVybiB0aGlzLl9faXRlcmF0ZSgoZnVuY3Rpb24obixpLG8pe2lmKCF0LmNhbGwoZSxuLGksbykpcmV0dXJuIHI9ITEsITF9KSkscn0sZmlsdGVyOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHJlaWZ5KHRoaXMsZmlsdGVyRmFjdG9yeSh0aGlzLHQsZSwhMCkpfSxmaW5kOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLmZpbmRFbnRyeSh0LGUpO3JldHVybiBuP25bMV06cn0sZm9yRWFjaDpmdW5jdGlvbih0LGUpe3JldHVybiBhc3NlcnROb3RJbmZpbml0ZSh0aGlzLnNpemUpLHRoaXMuX19pdGVyYXRlKGU/dC5iaW5kKGUpOnQpfSxqb2luOmZ1bmN0aW9uKHQpe2Fzc2VydE5vdEluZmluaXRlKHRoaXMuc2l6ZSksdD12b2lkIDAhPT10PyIiK3Q6IiwiO3ZhciBlPSIiLHI9ITA7cmV0dXJuIHRoaXMuX19pdGVyYXRlKChmdW5jdGlvbihuKXtyP3I9ITE6ZSs9dCxlKz1udWxsIT1uP24udG9TdHJpbmcoKToiIn0pKSxlfSxrZXlzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19pdGVyYXRvcihoKX0sbWFwOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHJlaWZ5KHRoaXMsbWFwRmFjdG9yeSh0aGlzLHQsZSkpfSxyZWR1Y2U6ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGk7cmV0dXJuIGFzc2VydE5vdEluZmluaXRlKHRoaXMuc2l6ZSksYXJndW1lbnRzLmxlbmd0aDwyP2k9ITA6bj1lLHRoaXMuX19pdGVyYXRlKChmdW5jdGlvbihlLG8sYSl7aT8oaT0hMSxuPWUpOm49dC5jYWxsKHIsbixlLG8sYSl9KSksbn0scmVkdWNlUmlnaHQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMudG9LZXllZFNlcSgpLnJldmVyc2UoKTtyZXR1cm4gbi5yZWR1Y2UuYXBwbHkobixhcmd1bWVudHMpfSxyZXZlcnNlOmZ1bmN0aW9uKCl7cmV0dXJuIHJlaWZ5KHRoaXMscmV2ZXJzZUZhY3RvcnkodGhpcywhMCkpfSxzbGljZTpmdW5jdGlvbih0LGUpe3JldHVybiByZWlmeSh0aGlzLHNsaWNlRmFjdG9yeSh0aGlzLHQsZSwhMCkpfSxzb21lOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIXRoaXMuZXZlcnkobm90KHQpLGUpfSxzb3J0OmZ1bmN0aW9uKHQpe3JldHVybiByZWlmeSh0aGlzLHNvcnRGYWN0b3J5KHRoaXMsdCkpfSx2YWx1ZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX2l0ZXJhdG9yKHApfSxidXRMYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2xpY2UoMCwtMSl9LGlzRW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5zaXplPzA9PT10aGlzLnNpemU6IXRoaXMuc29tZSgoZnVuY3Rpb24oKXtyZXR1cm4hMH0pKX0sY291bnQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZW5zdXJlU2l6ZSh0P3RoaXMudG9TZXEoKS5maWx0ZXIodCxlKTp0aGlzKX0sY291bnRCeTpmdW5jdGlvbih0LGUpe3JldHVybiBjb3VudEJ5RmFjdG9yeSh0aGlzLHQsZSl9LGVxdWFsczpmdW5jdGlvbih0KXtyZXR1cm4gZGVlcEVxdWFsKHRoaXMsdCl9LGVudHJ5U2VxOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0Ll9jYWNoZSlyZXR1cm4gbmV3IEFycmF5U2VxKHQuX2NhY2hlKTt2YXIgZT10LnRvU2VxKCkubWFwKGVudHJ5TWFwcGVyKS50b0luZGV4ZWRTZXEoKTtyZXR1cm4gZS5mcm9tRW50cnlTZXE9ZnVuY3Rpb24oKXtyZXR1cm4gdC50b1NlcSgpfSxlfSxmaWx0ZXJOb3Q6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5maWx0ZXIobm90KHQpLGUpfSxmaW5kRW50cnk6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXI7cmV0dXJuIHRoaXMuX19pdGVyYXRlKChmdW5jdGlvbihyLGksbyl7aWYodC5jYWxsKGUscixpLG8pKXJldHVybiBuPVtpLHJdLCExfSkpLG59LGZpbmRLZXk6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmZpbmRFbnRyeSh0LGUpO3JldHVybiByJiZyWzBdfSxmaW5kTGFzdDpmdW5jdGlvbih0LGUscil7cmV0dXJuIHRoaXMudG9LZXllZFNlcSgpLnJldmVyc2UoKS5maW5kKHQsZSxyKX0sZmluZExhc3RFbnRyeTpmdW5jdGlvbih0LGUscil7cmV0dXJuIHRoaXMudG9LZXllZFNlcSgpLnJldmVyc2UoKS5maW5kRW50cnkodCxlLHIpfSxmaW5kTGFzdEtleTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnRvS2V5ZWRTZXEoKS5yZXZlcnNlKCkuZmluZEtleSh0LGUpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbmQocmV0dXJuVHJ1ZSl9LGZsYXRNYXA6ZnVuY3Rpb24odCxlKXtyZXR1cm4gcmVpZnkodGhpcyxmbGF0TWFwRmFjdG9yeSh0aGlzLHQsZSkpfSxmbGF0dGVuOmZ1bmN0aW9uKHQpe3JldHVybiByZWlmeSh0aGlzLGZsYXR0ZW5GYWN0b3J5KHRoaXMsdCwhMCkpfSxmcm9tRW50cnlTZXE6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEZyb21FbnRyaWVzU2VxdWVuY2UodGhpcyl9LGdldDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmZpbmQoKGZ1bmN0aW9uKGUscil7cmV0dXJuIGlzKHIsdCl9KSx2b2lkIDAsZSl9LGdldEluOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLG49dGhpcyxpPWZvcmNlSXRlcmF0b3IodCk7IShyPWkubmV4dCgpKS5kb25lOyl7dmFyIG89ci52YWx1ZTtpZigobj1uJiZuLmdldD9uLmdldChvLGMpOmMpPT09YylyZXR1cm4gZX1yZXR1cm4gbn0sZ3JvdXBCeTpmdW5jdGlvbih0LGUpe3JldHVybiBncm91cEJ5RmFjdG9yeSh0aGlzLHQsZSl9LGhhczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nZXQodCxjKSE9PWN9LGhhc0luOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmdldEluKHQsYykhPT1jfSxpc1N1YnNldDpmdW5jdGlvbih0KXtyZXR1cm4gdD0iZnVuY3Rpb24iPT10eXBlb2YgdC5pbmNsdWRlcz90Okl0ZXJhYmxlKHQpLHRoaXMuZXZlcnkoKGZ1bmN0aW9uKGUpe3JldHVybiB0LmluY2x1ZGVzKGUpfSkpfSxpc1N1cGVyc2V0OmZ1bmN0aW9uKHQpe3JldHVybih0PSJmdW5jdGlvbiI9PXR5cGVvZiB0LmlzU3Vic2V0P3Q6SXRlcmFibGUodCkpLmlzU3Vic2V0KHRoaXMpfSxrZXlPZjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5maW5kS2V5KChmdW5jdGlvbihlKXtyZXR1cm4gaXMoZSx0KX0pKX0sa2V5U2VxOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TZXEoKS5tYXAoa2V5TWFwcGVyKS50b0luZGV4ZWRTZXEoKX0sbGFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU2VxKCkucmV2ZXJzZSgpLmZpcnN0KCl9LGxhc3RLZXlPZjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50b0tleWVkU2VxKCkucmV2ZXJzZSgpLmtleU9mKHQpfSxtYXg6ZnVuY3Rpb24odCl7cmV0dXJuIG1heEZhY3RvcnkodGhpcyx0KX0sbWF4Qnk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbWF4RmFjdG9yeSh0aGlzLGUsdCl9LG1pbjpmdW5jdGlvbih0KXtyZXR1cm4gbWF4RmFjdG9yeSh0aGlzLHQ/bmVnKHQpOmRlZmF1bHROZWdDb21wYXJhdG9yKX0sbWluQnk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbWF4RmFjdG9yeSh0aGlzLGU/bmVnKGUpOmRlZmF1bHROZWdDb21wYXJhdG9yLHQpfSxyZXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2xpY2UoMSl9LHNraXA6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2xpY2UoTWF0aC5tYXgoMCx0KSl9LHNraXBMYXN0OmZ1bmN0aW9uKHQpe3JldHVybiByZWlmeSh0aGlzLHRoaXMudG9TZXEoKS5yZXZlcnNlKCkuc2tpcCh0KS5yZXZlcnNlKCkpfSxza2lwV2hpbGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gcmVpZnkodGhpcyxza2lwV2hpbGVGYWN0b3J5KHRoaXMsdCxlLCEwKSl9LHNraXBVbnRpbDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnNraXBXaGlsZShub3QodCksZSl9LHNvcnRCeTpmdW5jdGlvbih0LGUpe3JldHVybiByZWlmeSh0aGlzLHNvcnRGYWN0b3J5KHRoaXMsZSx0KSl9LHRha2U6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2xpY2UoMCxNYXRoLm1heCgwLHQpKX0sdGFrZUxhc3Q6ZnVuY3Rpb24odCl7cmV0dXJuIHJlaWZ5KHRoaXMsdGhpcy50b1NlcSgpLnJldmVyc2UoKS50YWtlKHQpLnJldmVyc2UoKSl9LHRha2VXaGlsZTpmdW5jdGlvbih0LGUpe3JldHVybiByZWlmeSh0aGlzLHRha2VXaGlsZUZhY3RvcnkodGhpcyx0LGUpKX0sdGFrZVVudGlsOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMudGFrZVdoaWxlKG5vdCh0KSxlKX0sdmFsdWVTZXE6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b0luZGV4ZWRTZXEoKX0saGFzaENvZGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX2hhc2h8fCh0aGlzLl9faGFzaD1oYXNoSXRlcmFibGUodGhpcykpfX0pO3ZhciBodD1JdGVyYWJsZS5wcm90b3R5cGU7aHRbZV09ITAsaHRbbV09aHQudmFsdWVzLGh0Ll9fdG9KUz1odC50b0FycmF5LGh0Ll9fdG9TdHJpbmdNYXBwZXI9cXVvdGVTdHJpbmcsaHQuaW5zcGVjdD1odC50b1NvdXJjZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKCl9LGh0LmNoYWluPWh0LmZsYXRNYXAsaHQuY29udGFpbnM9aHQuaW5jbHVkZXMsbWl4aW4oS2V5ZWRJdGVyYWJsZSx7ZmxpcDpmdW5jdGlvbigpe3JldHVybiByZWlmeSh0aGlzLGZsaXBGYWN0b3J5KHRoaXMpKX0sbWFwRW50cmllczpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMsbj0wO3JldHVybiByZWlmeSh0aGlzLHRoaXMudG9TZXEoKS5tYXAoKGZ1bmN0aW9uKGksbyl7cmV0dXJuIHQuY2FsbChlLFtvLGldLG4rKyxyKX0pKS5mcm9tRW50cnlTZXEoKSl9LG1hcEtleXM6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzO3JldHVybiByZWlmeSh0aGlzLHRoaXMudG9TZXEoKS5mbGlwKCkubWFwKChmdW5jdGlvbihuLGkpe3JldHVybiB0LmNhbGwoZSxuLGkscil9KSkuZmxpcCgpKX19KTt2YXIgcHQ9S2V5ZWRJdGVyYWJsZS5wcm90b3R5cGU7ZnVuY3Rpb24ga2V5TWFwcGVyKHQsZSl7cmV0dXJuIGV9ZnVuY3Rpb24gZW50cnlNYXBwZXIodCxlKXtyZXR1cm5bZSx0XX1mdW5jdGlvbiBub3QodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBuZWcodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuLXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBxdW90ZVN0cmluZyh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/SlNPTi5zdHJpbmdpZnkodCk6U3RyaW5nKHQpfWZ1bmN0aW9uIGRlZmF1bHRaaXBwZXIoKXtyZXR1cm4gYXJyQ29weShhcmd1bWVudHMpfWZ1bmN0aW9uIGRlZmF1bHROZWdDb21wYXJhdG9yKHQsZSl7cmV0dXJuIHQ8ZT8xOnQ+ZT8tMTowfWZ1bmN0aW9uIGhhc2hJdGVyYWJsZSh0KXtpZih0LnNpemU9PT0xLzApcmV0dXJuIDA7dmFyIGU9aXNPcmRlcmVkKHQpLHI9aXNLZXllZCh0KSxuPWU/MTowO3JldHVybiBtdXJtdXJIYXNoT2ZTaXplKHQuX19pdGVyYXRlKHI/ZT9mdW5jdGlvbih0LGUpe249MzEqbitoYXNoTWVyZ2UoaGFzaCh0KSxoYXNoKGUpKXwwfTpmdW5jdGlvbih0LGUpe249bitoYXNoTWVyZ2UoaGFzaCh0KSxoYXNoKGUpKXwwfTplP2Z1bmN0aW9uKHQpe249MzEqbitoYXNoKHQpfDB9OmZ1bmN0aW9uKHQpe249bitoYXNoKHQpfDB9KSxuKX1mdW5jdGlvbiBtdXJtdXJIYXNoT2ZTaXplKHQsZSl7cmV0dXJuIGU9SShlLDM0MzI5MTgzNTMpLGU9SShlPDwxNXxlPj4+LTE1LDQ2MTg0NTkwNyksZT1JKGU8PDEzfGU+Pj4tMTMsNSksZT1JKChlPWUrMzg2NDI5MjE5Nl50KV5lPj4+MTYsMjI0NjgyMjUwNyksZT1zbWkoKGU9SShlXmU+Pj4xMywzMjY2NDg5OTA5KSleZT4+PjE2KX1mdW5jdGlvbiBoYXNoTWVyZ2UodCxlKXtyZXR1cm4gdF5lKzI2NTQ0MzU3NjkrKHQ8PDYpKyh0Pj4yKX1yZXR1cm4gcHRbcl09ITAscHRbbV09aHQuZW50cmllcyxwdC5fX3RvSlM9aHQudG9PYmplY3QscHQuX190b1N0cmluZ01hcHBlcj1mdW5jdGlvbih0LGUpe3JldHVybiBKU09OLnN0cmluZ2lmeShlKSsiOiAiK3F1b3RlU3RyaW5nKHQpfSxtaXhpbihJbmRleGVkSXRlcmFibGUse3RvS2V5ZWRTZXE6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFRvS2V5ZWRTZXF1ZW5jZSh0aGlzLCExKX0sZmlsdGVyOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHJlaWZ5KHRoaXMsZmlsdGVyRmFjdG9yeSh0aGlzLHQsZSwhMSkpfSxmaW5kSW5kZXg6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmZpbmRFbnRyeSh0LGUpO3JldHVybiByP3JbMF06LTF9LGluZGV4T2Y6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5rZXlPZih0KTtyZXR1cm4gdm9pZCAwPT09ZT8tMTplfSxsYXN0SW5kZXhPZjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmxhc3RLZXlPZih0KTtyZXR1cm4gdm9pZCAwPT09ZT8tMTplfSxyZXZlcnNlOmZ1bmN0aW9uKCl7cmV0dXJuIHJlaWZ5KHRoaXMscmV2ZXJzZUZhY3RvcnkodGhpcywhMSkpfSxzbGljZTpmdW5jdGlvbih0LGUpe3JldHVybiByZWlmeSh0aGlzLHNsaWNlRmFjdG9yeSh0aGlzLHQsZSwhMSkpfSxzcGxpY2U6ZnVuY3Rpb24odCxlKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoO2lmKGU9TWF0aC5tYXgoMHxlLDApLDA9PT1yfHwyPT09ciYmIWUpcmV0dXJuIHRoaXM7dD1yZXNvbHZlQmVnaW4odCx0PDA/dGhpcy5jb3VudCgpOnRoaXMuc2l6ZSk7dmFyIG49dGhpcy5zbGljZSgwLHQpO3JldHVybiByZWlmeSh0aGlzLDE9PT1yP246bi5jb25jYXQoYXJyQ29weShhcmd1bWVudHMsMiksdGhpcy5zbGljZSh0K2UpKSl9LGZpbmRMYXN0SW5kZXg6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmZpbmRMYXN0RW50cnkodCxlKTtyZXR1cm4gcj9yWzBdOi0xfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldCgwKX0sZmxhdHRlbjpmdW5jdGlvbih0KXtyZXR1cm4gcmVpZnkodGhpcyxmbGF0dGVuRmFjdG9yeSh0aGlzLHQsITEpKX0sZ2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuKHQ9d3JhcEluZGV4KHRoaXMsdCkpPDB8fHRoaXMuc2l6ZT09PTEvMHx8dm9pZCAwIT09dGhpcy5zaXplJiZ0PnRoaXMuc2l6ZT9lOnRoaXMuZmluZCgoZnVuY3Rpb24oZSxyKXtyZXR1cm4gcj09PXR9KSx2b2lkIDAsZSl9LGhhczpmdW5jdGlvbih0KXtyZXR1cm4odD13cmFwSW5kZXgodGhpcyx0KSk+PTAmJih2b2lkIDAhPT10aGlzLnNpemU/dGhpcy5zaXplPT09MS8wfHx0PHRoaXMuc2l6ZTotMSE9PXRoaXMuaW5kZXhPZih0KSl9LGludGVycG9zZTpmdW5jdGlvbih0KXtyZXR1cm4gcmVpZnkodGhpcyxpbnRlcnBvc2VGYWN0b3J5KHRoaXMsdCkpfSxpbnRlcmxlYXZlOmZ1bmN0aW9uKCl7dmFyIHQ9W3RoaXNdLmNvbmNhdChhcnJDb3B5KGFyZ3VtZW50cykpLGU9emlwV2l0aEZhY3RvcnkodGhpcy50b1NlcSgpLEluZGV4ZWRTZXEub2YsdCkscj1lLmZsYXR0ZW4oITApO3JldHVybiBlLnNpemUmJihyLnNpemU9ZS5zaXplKnQubGVuZ3RoKSxyZWlmeSh0aGlzLHIpfSxrZXlTZXE6ZnVuY3Rpb24oKXtyZXR1cm4gUmFuZ2UoMCx0aGlzLnNpemUpfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KC0xKX0sc2tpcFdoaWxlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHJlaWZ5KHRoaXMsc2tpcFdoaWxlRmFjdG9yeSh0aGlzLHQsZSwhMSkpfSx6aXA6ZnVuY3Rpb24oKXtyZXR1cm4gcmVpZnkodGhpcyx6aXBXaXRoRmFjdG9yeSh0aGlzLGRlZmF1bHRaaXBwZXIsW3RoaXNdLmNvbmNhdChhcnJDb3B5KGFyZ3VtZW50cykpKSl9LHppcFdpdGg6ZnVuY3Rpb24odCl7dmFyIGU9YXJyQ29weShhcmd1bWVudHMpO3JldHVybiBlWzBdPXRoaXMscmVpZnkodGhpcyx6aXBXaXRoRmFjdG9yeSh0aGlzLHQsZSkpfX0pLEluZGV4ZWRJdGVyYWJsZS5wcm90b3R5cGVbbl09ITAsSW5kZXhlZEl0ZXJhYmxlLnByb3RvdHlwZVtpXT0hMCxtaXhpbihTZXRJdGVyYWJsZSx7Z2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuaGFzKHQpP3Q6ZX0saW5jbHVkZXM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaGFzKHQpfSxrZXlTZXE6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZVNlcSgpfX0pLFNldEl0ZXJhYmxlLnByb3RvdHlwZS5oYXM9aHQuaW5jbHVkZXMsU2V0SXRlcmFibGUucHJvdG90eXBlLmNvbnRhaW5zPVNldEl0ZXJhYmxlLnByb3RvdHlwZS5pbmNsdWRlcyxtaXhpbihLZXllZFNlcSxLZXllZEl0ZXJhYmxlLnByb3RvdHlwZSksbWl4aW4oSW5kZXhlZFNlcSxJbmRleGVkSXRlcmFibGUucHJvdG90eXBlKSxtaXhpbihTZXRTZXEsU2V0SXRlcmFibGUucHJvdG90eXBlKSxtaXhpbihLZXllZENvbGxlY3Rpb24sS2V5ZWRJdGVyYWJsZS5wcm90b3R5cGUpLG1peGluKEluZGV4ZWRDb2xsZWN0aW9uLEluZGV4ZWRJdGVyYWJsZS5wcm90b3R5cGUpLG1peGluKFNldENvbGxlY3Rpb24sU2V0SXRlcmFibGUucHJvdG90eXBlKSx7SXRlcmFibGUsU2VxLENvbGxlY3Rpb24sTWFwLE9yZGVyZWRNYXAsTGlzdCxTdGFjayxTZXQsT3JkZXJlZFNldCxSZWNvcmQsUmFuZ2UsUmVwZWF0LGlzLGZyb21KU319KCl9LDk0NDc6KHQsZSxyKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDg4MjgpO3QuZXhwb3J0cz0hbigoZnVuY3Rpb24oKXtyZXR1cm4gNyE9PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwxLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KVsxXX0pKX0sOTUzODoodCxlLHIpPT57InVzZSBzdHJpY3QiO3ZhciBuPXIoOTQ0NyksaT1yKDE5MDcpLG89cigzOTMwKSxhPXIoODgyOCkscz1yKDI4NzUpLHU9cig3MTcwKSxjPXIoMjU3NCksZj1yKDkyOTgpLGw9cig2OTQ2KSxoPU9iamVjdC5hc3NpZ24scD1PYmplY3QuZGVmaW5lUHJvcGVydHksZD1pKFtdLmNvbmNhdCk7dC5leHBvcnRzPSFofHxhKChmdW5jdGlvbigpe2lmKG4mJjEhPT1oKHtiOjF9LGgocCh7fSwiYSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cCh0aGlzLCJiIix7dmFsdWU6MyxlbnVtZXJhYmxlOiExfSl9fSkse2I6Mn0pKS5iKXJldHVybiEwO3ZhciB0PXt9LGU9e30scj1TeW1ib2woImFzc2lnbiBkZXRlY3Rpb24iKSxpPSJhYmNkZWZnaGlqa2xtbm9wcXJzdCI7cmV0dXJuIHRbcl09NyxpLnNwbGl0KCIiKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlW3RdPXR9KSksNyE9PWgoe30sdClbcl18fHMoaCh7fSxlKSkuam9pbigiIikhPT1pfSkpP2Z1bmN0aW9uIGFzc2lnbih0LGUpe2Zvcih2YXIgcj1mKHQpLGk9YXJndW1lbnRzLmxlbmd0aCxhPTEsaD11LmYscD1jLmY7aT5hOylmb3IodmFyIF8seT1sKGFyZ3VtZW50c1thKytdKSxtPWg/ZChzKHkpLGgoeSkpOnMoeSksZz1tLmxlbmd0aCx2PTA7Zz52OylfPW1bdisrXSxuJiYhbyhwLHksXyl8fChyW19dPXlbX10pO3JldHVybiByfTpofSw5NTUyOih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cig1OTUxKSxpPXIoNjI4NSksbz1uLmRvY3VtZW50LGE9aShvKSYmaShvLmNyZWF0ZUVsZW1lbnQpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gYT9vLmNyZWF0ZUVsZW1lbnQodCk6e319fSw5Njk4OnQ9Pnt2YXIgZT1SZWdFeHAoIltcXHUyMDBkXFx1ZDgwMC1cXHVkZmZmXFx1MDMwMC1cXHUwMzZmXFx1ZmUyMC1cXHVmZTJmXFx1MjBkMC1cXHUyMGZmXFx1ZmUwZVxcdWZlMGZdIik7dC5leHBvcnRzPWZ1bmN0aW9uIGhhc1VuaWNvZGUodCl7cmV0dXJuIGUudGVzdCh0KX19LDk3MDk6KHQsZSxyKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDMwMzQpO3QuZXhwb3J0cz1ufSw5NzI0Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cigxOTA3KSxpPXIoOTI5OCksbz1uKHt9Lmhhc093blByb3BlcnR5KTt0LmV4cG9ydHM9T2JqZWN0Lmhhc093bnx8ZnVuY3Rpb24gaGFzT3duKHQsZSl7cmV0dXJuIG8oaSh0KSxlKX19LDk3NDg6KHQsZSxyKT0+eyJ1c2Ugc3RyaWN0IjtyKDEzNDApO3ZhciBuPXIoMjA0Nik7dC5leHBvcnRzPW4uT2JqZWN0LmFzc2lnbn0sOTc3MDp0PT57dC5leHBvcnRzPWZ1bmN0aW9uIGFycmF5RmlsdGVyKHQsZSl7Zm9yKHZhciByPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLGk9MCxvPVtdOysrcjxuOyl7dmFyIGE9dFtyXTtlKGEscix0KSYmKG9baSsrXT1hKX1yZXR1cm4gb319LDk4MTc6dD0+e3QuZXhwb3J0cz1mdW5jdGlvbiBzdGFja0hhcyh0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXModCl9fSw5ODQ2Oih0LGUscik9PnsidXNlIHN0cmljdCI7dmFyIG49cig3OTgpLGk9cig4ODI4KSxvPXIoNTk1MSkuU3RyaW5nO3QuZXhwb3J0cz0hIU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJiFpKChmdW5jdGlvbigpe3ZhciB0PVN5bWJvbCgic3ltYm9sIGRldGVjdGlvbiIpO3JldHVybiFvKHQpfHwhKE9iamVjdCh0KWluc3RhbmNlb2YgU3ltYm9sKXx8IVN5bWJvbC5zaGFtJiZuJiZuPDQxfSkpfSw5OTM1OnQ9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24gc3R1YkZhbHNlKCl7cmV0dXJuITF9fX0sZT17fTtmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKHIpe3ZhciBuPWVbcl07aWYodm9pZCAwIT09bilyZXR1cm4gbi5leHBvcnRzO3ZhciBpPWVbcl09e2lkOnIsbG9hZGVkOiExLGV4cG9ydHM6e319O3JldHVybiB0W3JdLmNhbGwoaS5leHBvcnRzLGksaS5leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pLGkubG9hZGVkPSEwLGkuZXhwb3J0c31fX3dlYnBhY2tfcmVxdWlyZV9fLm49dD0+e3ZhciBlPXQmJnQuX19lc01vZHVsZT8oKT0+dC5kZWZhdWx0OigpPT50O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZSx7YTplfSksZX0sX193ZWJwYWNrX3JlcXVpcmVfXy5kPSh0LGUpPT57Zm9yKHZhciByIGluIGUpX193ZWJwYWNrX3JlcXVpcmVfXy5vKGUscikmJiFfX3dlYnBhY2tfcmVxdWlyZV9fLm8odCxyKSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHQscix7ZW51bWVyYWJsZTohMCxnZXQ6ZVtyXX0pfSxfX3dlYnBhY2tfcmVxdWlyZV9fLmc9ZnVuY3Rpb24oKXtpZigib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMpcmV0dXJuIGdsb2JhbFRoaXM7dHJ5e3JldHVybiB0aGlzfHxuZXcgRnVuY3Rpb24oInJldHVybiB0aGlzIikoKX1jYXRjaCh0KXtpZigib2JqZWN0Ij09dHlwZW9mIHdpbmRvdylyZXR1cm4gd2luZG93fX0oKSxfX3dlYnBhY2tfcmVxdWlyZV9fLm89KHQsZSk9Pk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpLF9fd2VicGFja19yZXF1aXJlX18ucj10PT57InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sX193ZWJwYWNrX3JlcXVpcmVfXy5ubWQ9dD0+KHQucGF0aHM9W10sdC5jaGlsZHJlbnx8KHQuY2hpbGRyZW49W10pLHQpO3ZhciByPXt9O3JldHVybigoKT0+eyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQocix7ZGVmYXVsdDooKT0+YWV9KTt2YXIgdD17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIodCksX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQse1RPR0dMRV9DT05GSUdTOigpPT5RdCxVUERBVEVfQ09ORklHUzooKT0+SnQsZG93bmxvYWRDb25maWc6KCk9PmRvd25sb2FkQ29uZmlnLGdldENvbmZpZ0J5VXJsOigpPT5nZXRDb25maWdCeVVybCxsb2FkZWQ6KCk9PmxvYWRlZCx0b2dnbGU6KCk9PnRvZ2dsZSx1cGRhdGU6KCk9PnVwZGF0ZX0pO3ZhciBlPXt9O19fd2VicGFja19yZXF1aXJlX18ucihlKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZSx7Z2V0OigpPT5nZXR9KTt2YXIgbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDY1NDApO2NsYXNzIFN0YW5kYWxvbmVMYXlvdXQgZXh0ZW5kcyBuLkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHtnZXRDb21wb25lbnQ6dH09dGhpcy5wcm9wcyxlPXQoIkNvbnRhaW5lciIpLHI9dCgiUm93IiksaT10KCJDb2wiKSxvPXQoIlRvcGJhciIsITApLGE9dCgiQmFzZUxheW91dCIsITApLHM9dCgib25saW5lVmFsaWRhdG9yQmFkZ2UiLCEwKTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KGUse2NsYXNzTmFtZToic3dhZ2dlci11aSJ9LG8/bi5jcmVhdGVFbGVtZW50KG8sbnVsbCk6bnVsbCxuLmNyZWF0ZUVsZW1lbnQoYSxudWxsKSxuLmNyZWF0ZUVsZW1lbnQocixudWxsLG4uY3JlYXRlRWxlbWVudChpLG51bGwsbi5jcmVhdGVFbGVtZW50KHMsbnVsbCkpKSl9fWNvbnN0IGk9U3RhbmRhbG9uZUxheW91dCxzdGFkYWxvbmVfbGF5b3V0PSgpPT4oe2NvbXBvbmVudHM6e1N0YW5kYWxvbmVMYXlvdXQ6aX19KTt2YXIgbz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk0MDQpLGE9X193ZWJwYWNrX3JlcXVpcmVfXy5uKG8pO19fd2VicGFja19yZXF1aXJlX18oNDA1OCksX193ZWJwYWNrX3JlcXVpcmVfXyg1ODA4KSxfX3dlYnBhY2tfcmVxdWlyZV9fKDEwNCksX193ZWJwYWNrX3JlcXVpcmVfXyg3MzA5KSxfX3dlYnBhY2tfcmVxdWlyZV9fKDI0MjYpLF9fd2VicGFja19yZXF1aXJlX18oNTI4OCksX193ZWJwYWNrX3JlcXVpcmVfXygxODgyKSxfX3dlYnBhY2tfcmVxdWlyZV9fKDIyMDUpLF9fd2VicGFja19yZXF1aXJlX18oMzIwOSksX193ZWJwYWNrX3JlcXVpcmVfXygyODAyKTtjb25zdCBzPWZ1bmN0aW9uIG1ha2VXaW5kb3coKXt2YXIgdD17bG9jYXRpb246e30saGlzdG9yeTp7fSxvcGVuOigpPT57fSxjbG9zZTooKT0+e30sRmlsZTpmdW5jdGlvbigpe30sRm9ybURhdGE6ZnVuY3Rpb24oKXt9fTtpZigidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdylyZXR1cm4gdDt0cnl7dD13aW5kb3c7Zm9yKHZhciBlIG9mWyJGaWxlIiwiQmxvYiIsIkZvcm1EYXRhIl0pZSBpbiB3aW5kb3cmJih0W2VdPXdpbmRvd1tlXSl9Y2F0Y2godCl7Y29uc29sZS5lcnJvcih0KX1yZXR1cm4gdH0oKTthKCkuU2V0Lm9mKCJ0eXBlIiwiZm9ybWF0IiwiaXRlbXMiLCJkZWZhdWx0IiwibWF4aW11bSIsImV4Y2x1c2l2ZU1heGltdW0iLCJtaW5pbXVtIiwiZXhjbHVzaXZlTWluaW11bSIsIm1heExlbmd0aCIsIm1pbkxlbmd0aCIsInBhdHRlcm4iLCJtYXhJdGVtcyIsIm1pbkl0ZW1zIiwidW5pcXVlSXRlbXMiLCJlbnVtIiwibXVsdGlwbGVPZiIpO19fd2VicGFja19yZXF1aXJlX18oODI4NykuQnVmZmVyO2NvbnN0IHBhcnNlU2VhcmNoPSgpPT57Y29uc3QgdD1uZXcgVVJMU2VhcmNoUGFyYW1zKHMubG9jYXRpb24uc2VhcmNoKTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHQpfTtjbGFzcyBUb3BCYXIgZXh0ZW5kcyBuLkNvbXBvbmVudHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSksdGhpcy5zdGF0ZT17dXJsOnQuc3BlY1NlbGVjdG9ycy51cmwoKSxzZWxlY3RlZEluZGV4OjB9fVVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHQpe3RoaXMuc2V0U3RhdGUoe3VybDp0LnNwZWNTZWxlY3RvcnMudXJsKCl9KX1vblVybENoYW5nZT10PT57bGV0e3RhcmdldDp7dmFsdWU6ZX19PXQ7dGhpcy5zZXRTdGF0ZSh7dXJsOmV9KX07Zmx1c2hBdXRoRGF0YSgpe2NvbnN0e3BlcnNpc3RBdXRob3JpemF0aW9uOnR9PXRoaXMucHJvcHMuZ2V0Q29uZmlncygpO3R8fHRoaXMucHJvcHMuYXV0aEFjdGlvbnMucmVzdG9yZUF1dGhvcml6YXRpb24oe2F1dGhvcml6ZWQ6e319KX1sb2FkU3BlYz10PT57dGhpcy5mbHVzaEF1dGhEYXRhKCksdGhpcy5wcm9wcy5zcGVjQWN0aW9ucy51cGRhdGVVcmwodCksdGhpcy5wcm9wcy5zcGVjQWN0aW9ucy5kb3dubG9hZCh0KX07b25VcmxTZWxlY3Q9dD0+e2xldCBlPXQudGFyZ2V0LnZhbHVlfHx0LnRhcmdldC5ocmVmO3RoaXMubG9hZFNwZWMoZSksdGhpcy5zZXRTZWxlY3RlZFVybChlKSx0LnByZXZlbnREZWZhdWx0KCl9O2Rvd25sb2FkVXJsPXQ9Pnt0aGlzLmxvYWRTcGVjKHRoaXMuc3RhdGUudXJsKSx0LnByZXZlbnREZWZhdWx0KCl9O3NldFNlYXJjaD10PT57bGV0IGU9cGFyc2VTZWFyY2goKTtlWyJ1cmxzLnByaW1hcnlOYW1lIl09dC5uYW1lO2NvbnN0IHI9YCR7d2luZG93LmxvY2F0aW9uLnByb3RvY29sfS8vJHt3aW5kb3cubG9jYXRpb24uaG9zdH0ke3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX1gO3dpbmRvdyYmd2luZG93Lmhpc3RvcnkmJndpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSYmd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsIiIsYCR7cn0/JHsodD0+e2NvbnN0IGU9bmV3IFVSTFNlYXJjaFBhcmFtcyhPYmplY3QuZW50cmllcyh0KSk7cmV0dXJuIFN0cmluZyhlKX0pKGUpfWApfTtzZXRTZWxlY3RlZFVybD10PT57Y29uc3QgZT10aGlzLnByb3BzLmdldENvbmZpZ3MoKS51cmxzfHxbXTtlJiZlLmxlbmd0aCYmdCYmZS5mb3JFYWNoKCgoZSxyKT0+e2UudXJsPT09dCYmKHRoaXMuc2V0U3RhdGUoe3NlbGVjdGVkSW5kZXg6cn0pLHRoaXMuc2V0U2VhcmNoKGUpKX0pKX07Y29tcG9uZW50RGlkTW91bnQoKXtjb25zdCB0PXRoaXMucHJvcHMuZ2V0Q29uZmlncygpLGU9dC51cmxzfHxbXTtpZihlJiZlLmxlbmd0aCl7dmFyIHI9dGhpcy5zdGF0ZS5zZWxlY3RlZEluZGV4O2xldCBuPXBhcnNlU2VhcmNoKClbInVybHMucHJpbWFyeU5hbWUiXXx8dC51cmxzLnByaW1hcnlOYW1lO24mJmUuZm9yRWFjaCgoKHQsZSk9Pnt0Lm5hbWU9PT1uJiYodGhpcy5zZXRTdGF0ZSh7c2VsZWN0ZWRJbmRleDplfSkscj1lKX0pKSx0aGlzLmxvYWRTcGVjKGVbcl0udXJsKX19b25GaWx0ZXJDaGFuZ2U9dD0+e2xldHt0YXJnZXQ6e3ZhbHVlOmV9fT10O3RoaXMucHJvcHMubGF5b3V0QWN0aW9ucy51cGRhdGVGaWx0ZXIoZSl9O3JlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6dCxzcGVjU2VsZWN0b3JzOmUsZ2V0Q29uZmlnczpyfT10aGlzLnByb3BzO2NvbnN0IGk9dCgiQnV0dG9uIiksbz10KCJMaW5rIiksYT10KCJMb2dvIik7bGV0IHM9ImxvYWRpbmciPT09ZS5sb2FkaW5nU3RhdHVzKCk7Y29uc3QgdT1bImRvd25sb2FkLXVybC1pbnB1dCJdOyJmYWlsZWQiPT09ZS5sb2FkaW5nU3RhdHVzKCkmJnUucHVzaCgiZmFpbGVkIikscyYmdS5wdXNoKCJsb2FkaW5nIik7Y29uc3R7dXJsczpjfT1yKCk7bGV0IGY9W10sbD1udWxsO2lmKGMpe2xldCB0PVtdO2MuZm9yRWFjaCgoKGUscik9Pnt0LnB1c2gobi5jcmVhdGVFbGVtZW50KCJvcHRpb24iLHtrZXk6cix2YWx1ZTplLnVybH0sZS5uYW1lKSl9KSksZi5wdXNoKG4uY3JlYXRlRWxlbWVudCgibGFiZWwiLHtjbGFzc05hbWU6InNlbGVjdC1sYWJlbCIsaHRtbEZvcjoic2VsZWN0In0sbi5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCJTZWxlY3QgYSBkZWZpbml0aW9uIiksbi5jcmVhdGVFbGVtZW50KCJzZWxlY3QiLHtpZDoic2VsZWN0IixkaXNhYmxlZDpzLG9uQ2hhbmdlOnRoaXMub25VcmxTZWxlY3QsdmFsdWU6Y1t0aGlzLnN0YXRlLnNlbGVjdGVkSW5kZXhdLnVybH0sdCkpKX1lbHNlIGw9dGhpcy5kb3dubG9hZFVybCxmLnB1c2gobi5jcmVhdGVFbGVtZW50KCJpbnB1dCIse2NsYXNzTmFtZTp1LmpvaW4oIiAiKSx0eXBlOiJ0ZXh0IixvbkNoYW5nZTp0aGlzLm9uVXJsQ2hhbmdlLHZhbHVlOnRoaXMuc3RhdGUudXJsLGRpc2FibGVkOnMsaWQ6ImRvd25sb2FkLXVybC1pbnB1dCJ9KSksZi5wdXNoKG4uY3JlYXRlRWxlbWVudChpLHtjbGFzc05hbWU6ImRvd25sb2FkLXVybC1idXR0b24iLG9uQ2xpY2s6dGhpcy5kb3dubG9hZFVybH0sIkV4cGxvcmUiKSk7cmV0dXJuIG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJ0b3BiYXIifSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToid3JhcHBlciJ9LG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJ0b3BiYXItd3JhcHBlciJ9LG4uY3JlYXRlRWxlbWVudChvLG51bGwsbi5jcmVhdGVFbGVtZW50KGEsbnVsbCkpLG4uY3JlYXRlRWxlbWVudCgiZm9ybSIse2NsYXNzTmFtZToiZG93bmxvYWQtdXJsLXdyYXBwZXIiLG9uU3VibWl0Omx9LGYubWFwKCgodCxlKT0+KDAsbi5jbG9uZUVsZW1lbnQpKHQse2tleTplfSkpKSkpKSl9fWNvbnN0IHU9VG9wQmFyO3ZhciBjLGYsbCxoLHAsZCxfLHksbSxnLHYsYix3LEkseCxCLGssQyxxLEwsaix6LFAsRCxVLFcsVixLLCQsSCxZLFo7ZnVuY3Rpb24gX2V4dGVuZHMoKXtyZXR1cm4gX2V4dGVuZHM9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgcj1hcmd1bWVudHNbZV07Zm9yKHZhciBuIGluIHIpKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsbikmJih0W25dPXJbbl0pfXJldHVybiB0fSxfZXh0ZW5kcy5hcHBseShudWxsLGFyZ3VtZW50cyl9Y29uc3QgbG9nb19zbWFsbD10PT5uLmNyZWF0ZUVsZW1lbnQoInN2ZyIsX2V4dGVuZHMoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdmlld0JveDoiMCAwIDQwNyAxMTYifSx0KSxjfHwoYz1uLmNyZWF0ZUVsZW1lbnQoImRlZnMiLG51bGwsbi5jcmVhdGVFbGVtZW50KCJjbGlwUGF0aCIse2lkOiJsb2dvX3NtYWxsX3N2Z19fY2xpcC1TV19UTS1sb2dvLW9uLWRhcmsifSxuLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMCAwaDQwN3YxMTZIMHoifSkpLG4uY3JlYXRlRWxlbWVudCgic3R5bGUiLG51bGwsIi5sb2dvX3NtYWxsX3N2Z19fY2xzLTJ7ZmlsbDojZmZmfS5sb2dvX3NtYWxsX3N2Z19fY2xzLTN7ZmlsbDojODVlYTJkfSIpKSksbi5jcmVhdGVFbGVtZW50KCJnIix7aWQ6ImxvZ29fc21hbGxfc3ZnX19TV19UTS1sb2dvLW9uLWRhcmsiLHN0eWxlOntjbGlwUGF0aDoidXJsKCNsb2dvX3NtYWxsX3N2Z19fY2xpcC1TV19UTS1sb2dvLW9uLWRhcmspIn19LG4uY3JlYXRlRWxlbWVudCgiZyIse2lkOiJsb2dvX3NtYWxsX3N2Z19fU1dfSW4tUHJvZHVjdCIsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoLS4zMDEpIn0sZnx8KGY9bi5jcmVhdGVFbGVtZW50KCJwYXRoIix7aWQ6ImxvZ29fc21hbGxfc3ZnX19QYXRoXzI5MzYiLGQ6Ik0zNTkuMTUgNzAuNjc0aC0uN3YtMy42ODJoLTEuMjZ2LS42aDMuMjE5di42aC0xLjI1OVoiLGNsYXNzTmFtZToibG9nb19zbWFsbF9zdmdfX2Nscy0yIiwiZGF0YS1uYW1lIjoiUGF0aCAyOTM2In0pKSxsfHwobD1uLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtpZDoibG9nb19zbWFsbF9zdmdfX1BhdGhfMjkzNyIsZDoibTM2My4yMTcgNzAuNjc0LTEuMjQyLTMuNTc0aC0uMDIzcS4wNS44LjA1IDEuNDk0djIuMDgzaC0uNjM2di00LjI4NmguOTg3bDEuMTkgMy40MDdoLjAxN2wxLjIyNS0zLjQwN2guOTl2NC4yODNoLS42NzV2LTIuMTE4YTMwIDMwIDAgMCAxIC4wNDQtMS40NTNoLS4wMjNsLTEuMjg2IDMuNTcxWiIsY2xhc3NOYW1lOiJsb2dvX3NtYWxsX3N2Z19fY2xzLTIiLCJkYXRhLW5hbWUiOiJQYXRoIDI5MzcifSkpLGh8fChoPW4uY3JlYXRlRWxlbWVudCgicGF0aCIse2lkOiJsb2dvX3NtYWxsX3N2Z19fUGF0aF8yOTM4IixkOiJNNTAuMzI4IDk3LjY2OWE0Ny42NDIgNDcuNjQyIDAgMSAxIDQ3LjY0My00Ny42NDIgNDcuNjQgNDcuNjQgMCAwIDEtNDcuNjQzIDQ3LjY0MiIsY2xhc3NOYW1lOiJsb2dvX3NtYWxsX3N2Z19fY2xzLTMiLCJkYXRhLW5hbWUiOiJQYXRoIDI5MzgifSkpLHB8fChwPW4uY3JlYXRlRWxlbWVudCgicGF0aCIse2lkOiJsb2dvX3NtYWxsX3N2Z19fUGF0aF8yOTM5IixkOiJNNTAuMzI4IDQuNzY5QTQ1LjI1OCA0NS4yNTggMCAxIDEgNS4wNyA1MC4wMjcgNDUuMjYgNDUuMjYgMCAwIDEgNTAuMzI4IDQuNzY5bTAtNC43NjlhNTAuMDI3IDUwLjAyNyAwIDEgMCA1MC4wMjcgNTAuMDI3QTUwLjAyNyA1MC4wMjcgMCAwIDAgNTAuMzI4IDAiLGNsYXNzTmFtZToibG9nb19zbWFsbF9zdmdfX2Nscy0zIiwiZGF0YS1uYW1lIjoiUGF0aCAyOTM5In0pKSxuLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtpZDoibG9nb19zbWFsbF9zdmdfX1BhdGhfMjk0MCIsZDoiTTMxLjggMzMuODU0Yy0uMTU0IDEuNzEyLjA1OCAzLjQ4Mi0uMDU3IDUuMjEzYTQzIDQzIDAgMCAxLS42OTMgNS4xNTYgOS41MyA5LjUzIDAgMCAxLTQuMSA1LjgyOWM0LjA3OSAyLjY1NCA0LjU0IDYuNzcxIDQuODEgMTAuOTQ2LjEzNSAyLjI1LjA3NyA0LjUyLjMwOCA2Ljc1Mi4xNzMgMS43MzEuODQ2IDIuMTc0IDIuNjM2IDIuMjMxLjczLjAyIDEuNDggMCAyLjMyNyAwdjUuMzQ5Yy01LjI5LjktOS42NTctLjYtMTAuNzM0LTUuMDc5YTMxIDMxIDAgMCAxLS42NTQtNWMtLjExNy0xLjc4OS4wNzYtMy41NzgtLjA1OC01LjM2Ny0uMzg2LTQuOTA2LTEuMDItNi41Ni01LjcxMy02Ljc5MXYtNi4xYTkgOSAwIDAgMSAxLjAyOC0uMTczYzIuNTc3LS4xMzUgMy42NzQtLjkyNCA0LjIzMS0zLjQ2M2EyOSAyOSAwIDAgMCAuNDgxLTQuMzI5IDgyIDgyIDAgMCAxIC42LTguNDA2Yy42NzMtMy45ODIgMy4xMzYtNS45MDYgNy4yMzQtNi4xMzcgMS4xNTQtLjA1NyAyLjMyNyAwIDMuNjU1IDB2NS40NjRjLS41NTguMDM4LTEuMDM5LjExNS0xLjUzOS4xMTUtMy4zMzYtLjExNS0zLjUxIDEuMDItMy43NjIgMy43OW02LjQwNiAxMi42NThoLS4wNzdhMy41MTUgMy41MTUgMCAxIDAtLjM0NiA3LjAyMWguMjMxYTMuNDYgMy40NiAwIDAgMCAzLjY1NS0zLjI1MXYtLjE5MmEzLjUyMyAzLjUyMyAwIDAgMC0zLjQ2MS0zLjU3OFptMTIuMDYyIDBhMy4zNzMgMy4zNzMgMCAwIDAtMy40ODIgMy4yNTEgMiAyIDAgMCAwIC4wMi4zMjcgMy4zIDMuMyAwIDAgMCAzLjU3OCAzLjQ0MyAzLjI2MyAzLjI2MyAwIDAgMCAzLjQ0My0zLjU1OCAzLjMwOCAzLjMwOCAwIDAgMC0zLjU1Ny0zLjQ2M1ptMTIuMzUxIDBhMy41OSAzLjU5IDAgMCAwLTMuNjU1IDMuNDgyIDMuNTMgMy41MyAwIDAgMCAzLjUzNiAzLjUzOWguMDM5YzEuNzY5LjMwOSAzLjU1OS0xLjQgMy42NzQtMy40NjJhMy41NyAzLjU3IDAgMCAwLTMuNi0zLjU1OVptMTYuOTQ4LjI4OGMtMi4yMzItLjEtMy4zNDgtLjg0Ni0zLjktMi45NjJhMjEuNSAyMS41IDAgMCAxLS42MzUtNC4xMzZjLS4xNTQtMi41NzgtLjEzNS01LjE3NS0uMzA4LTcuNzUzLS40LTYuMTE3LTQuODI4LTguMjUyLTExLjI1NC03LjE5NXY1LjMxYzEuMDE5IDAgMS44MDggMCAyLjYuMDE5IDEuMzY2LjAxOSAyLjQuNTM5IDIuNTM5IDIuMDU5LjEzNSAxLjM4NS4xMzUgMi43ODkuMjcgNC4xOTMuMjY5IDIuNzkuNDIyIDUuNjE4LjkgOC4zNjlhOC43MiA4LjcyIDAgMCAwIDMuOTIxIDUuMzQ4Yy0zLjQgMi4yODktNC40MDYgNS41NTktNC41NzggOS4yMzQtLjEgMi41Mi0uMTU0IDUuMDU5LS4yODkgNy42LS4xMTUgMi4zMDgtLjkyMyAzLjA1OC0zLjI1MSAzLjExNi0uNjU0LjAxOS0xLjI4OS4wNzctMi4wMTkuMTE1djUuNDQ1YzEuMzY1IDAgMi42MTYuMDc3IDMuODY2IDAgMy44ODYtLjIzMSA2LjIzMy0yLjExNyA3LTUuODg3QTQ5IDQ5IDAgMCAwIDc1IDYzLjRjLjEzNS0xLjkyMy4xMTYtMy44NjYuMzA4LTUuNzcxLjI4OS0yLjk4MiAxLjY1NS00LjIxMyA0LjYzNi00LjRhNCA0IDAgMCAwIC44MjgtLjE5MnYtNi4xYy0uNS0uMDU4LS44NDMtLjExNS0xLjIwOC0uMTM1WiIsImRhdGEtbmFtZSI6IlBhdGggMjk0MCIsc3R5bGU6e2ZpbGw6IiMxNzM2NDcifX0pLGR8fChkPW4uY3JlYXRlRWxlbWVudCgicGF0aCIse2lkOiJsb2dvX3NtYWxsX3N2Z19fUGF0aF8yOTQxIixkOiJNMTUyLjI3MyA1OC4xMjJhMTEuMjMgMTEuMjMgMCAwIDEtNC4zODQgOS40MjRxLTQuMzgzIDMuMzgyLTExLjkgMy4zODItOC4xNCAwLTEyLjUyNC0yLjFWNjMuN2EzMyAzMyAwIDAgMCA2LjEzNyAxLjg3OSAzMi4zIDMyLjMgMCAwIDAgNi41NzUuNjg5cTUuMzIyIDAgOC4wMTUtMi4wMmE2LjYzIDYuNjMgMCAwIDAgMi42OTItNS42MiA3LjIgNy4yIDAgMCAwLS45NTQtMy45IDguOSA4LjkgMCAwIDAtMy4xOTQtMi44IDQ0LjYgNDQuNiAwIDAgMC02LjgxLTIuOTExcS02LjM4Ny0yLjI4Ni05LjEyNi01LjQxN2ExMS45NiAxMS45NiAwIDAgMS0yLjc0LTguMTcyQTEwLjE2IDEwLjE2IDAgMCAxIDEyOC4wMzkgMjdxMy45NzctMy4xMzEgMTAuNTItMy4xMzFhMzEgMzEgMCAwIDEgMTIuNTU1IDIuNUwxNDkuNDU1IDMxYTI4LjQgMjguNCAwIDAgMC0xMS4wMjEtMi4zOCAxMC42NyAxMC42NyAwIDAgMC02LjYwNiAxLjgxNiA1Ljk4IDUuOTggMCAwIDAtMi4zOCA1LjA0MSA3LjcgNy43IDAgMCAwIC44NzcgMy45IDguMjQgOC4yNCAwIDAgMCAyLjk1OSAyLjc4NiAzNi43IDM2LjcgMCAwIDAgNi4zNzEgMi44cTcuMiAyLjU2NiA5LjkxIDUuNTFhMTAuODQgMTAuODQgMCAwIDEgMi43MDggNy42NDkiLGNsYXNzTmFtZToibG9nb19zbWFsbF9zdmdfX2Nscy0yIiwiZGF0YS1uYW1lIjoiUGF0aCAyOTQxIn0pKSxffHwoXz1uLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtpZDoibG9nb19zbWFsbF9zdmdfX1BhdGhfMjk0MiIsZDoiTTE4NS4yODggNzAuMyAxNzkgNTAuMTdxLS41OTQtMS44NDgtMi4yMjItOC4zOTFoLS4yNTFxLTEuMjUyIDUuNDc5LTIuMTkyIDguNDUzTDE2Ny44NDkgNzAuM2gtNi4wMTFsLTkuMzYxLTM0LjMxNWg1LjQ0N3EzLjMxOCAxMi45MzEgNS4wNTcgMTkuNjkzYTgwIDgwIDAgMCAxIDEuOTg4IDkuMTExaC4yNXEuMzQ1LTEuNzg1IDEuMTEyLTQuNjE4dDEuMzMtNC40OTNsNi4yOTQtMTkuNjkzaDUuNjM1bDYuMTM3IDE5LjY5M2E2NiA2NiAwIDAgMSAyLjM3OSA5LjA0OGguMjUxYTMzIDMzIDAgMCAxIC42NzMtMy40NzVxLjU0OC0yLjM0NyA2LjUyOC0yNS4yNjZoNS4zODVMMTkxLjQ1NiA3MC4zWiIsY2xhc3NOYW1lOiJsb2dvX3NtYWxsX3N2Z19fY2xzLTIiLCJkYXRhLW5hbWUiOiJQYXRoIDI5NDIifSkpLHl8fCh5PW4uY3JlYXRlRWxlbWVudCgicGF0aCIse2lkOiJsb2dvX3NtYWxsX3N2Z19fUGF0aF8yOTQzIixkOiJtMjI1LjExNSA3MC4zLTEuMDMzLTQuODg1aC0uMjVhMTQuNDUgMTQuNDUgMCAwIDEtNS4xMTkgNC4zNjggMTUuNiAxNS42IDAgMCAxLTYuMzcyIDEuMTQzcS01LjEgMC04LTIuNjN0LTIuOS03LjQ4M3EwLTEwLjQgMTYuNjI2LTEwLjlsNS44MjMtLjE4OFY0Ny42cTAtNC4wMzgtMS43MzgtNS45NjR0LTUuNTUyLTEuOTIzYTIyLjYgMjIuNiAwIDAgMC05LjcwNiAyLjYzbC0xLjYtMy45NzdhMjQuNCAyNC40IDAgMCAxIDUuNTU3LTIuMTYgMjQgMjQgMCAwIDEgNi4wNTgtLjc4M3E2LjEzNiAwIDkuMSAyLjcyNHQyLjk1OSA4LjczNVY3MC4zWm0tMTEuNzQxLTMuNjYzYTEwLjU1IDEwLjU1IDAgMCAwIDcuNjI2LTIuNjYgOS44NSA5Ljg1IDAgMCAwIDIuNzcxLTcuNDUxdi0zLjFsLTUuMi4yMTlxLTYuMi4yMTktOC45MzkgMS45MjZhNS44IDUuOCAwIDAgMC0yLjc0IDUuMzA2IDUuMzUgNS4zNSAwIDAgMCAxLjcwNyA0LjI5IDcuMDggNy4wOCAwIDAgMCA0Ljc3NSAxLjQ3MloiLGNsYXNzTmFtZToibG9nb19zbWFsbF9zdmdfX2Nscy0yIiwiZGF0YS1uYW1lIjoiUGF0aCAyOTQzIn0pKSxtfHwobT1uLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtpZDoibG9nb19zbWFsbF9zdmdfX1BhdGhfMjk0NCIsZDoiTTI2NC42IDM1Ljk4N3YzLjI4N2wtNi4zNTYuNzUyYTExLjE2IDExLjE2IDAgMCAxIDIuMjU1IDYuODU2IDEwLjE1IDEwLjE1IDAgMCAxLTMuNDQ0IDguMDQ3cS0zLjQ0NCAzLTkuNDU2IDNhMTUuNyAxNS43IDAgMCAxLTIuODgtLjI1UTI0MS40IDU5LjQzOCAyNDEuNCA2Mi4xYTIuMjQgMi4yNCAwIDAgMCAxLjE1OSAyLjA4MiA4LjQ2IDguNDYgMCAwIDAgMy45NzYuNjczaDYuMDc0cTUuNTczIDAgOC41NjMgMi4zNDhhOC4xNiA4LjE2IDAgMCAxIDIuOTkgNi44MjUgOS43NCA5Ljc0IDAgMCAxLTQuNTcxIDguNjg4cS00LjU3MiAyLjk4OS0xMy4zMzggMi45OS02LjczMiAwLTEwLjM3OS0yLjVhOC4wOSA4LjA5IDAgMCAxLTMuNjQ3LTcuMDc2IDcuOTUgNy45NSAwIDAgMSAyLTUuNDE3IDEwLjIgMTAuMiAwIDAgMSA1LjYzNi0zLjEgNS40MyA1LjQzIDAgMCAxLTIuMjA3LTEuODQ3IDQuOSA0LjkgMCAwIDEtLjg5My0yLjkxMiA1LjUzIDUuNTMgMCAwIDEgMS0zLjI4OCAxMC41IDEwLjUgMCAwIDEgMy4xNjItMi43MjMgOS4yOCA5LjI4IDAgMCAxLTQuMzM2LTMuNzI2IDEwLjk1IDEwLjk1IDAgMCAxLTEuNjc1LTYuMDEycTAtNS42MzQgMy4zODItOC42ODh0OS41OC0zLjA1MmExNy40IDE3LjQgMCAwIDEgNC44NTMuNjI2Wm0tMjcuMzY3IDQwLjA3NWE0LjY2IDQuNjYgMCAwIDAgMi4zNDggNC4yMjcgMTIuOTcgMTIuOTcgMCAwIDAgNi43MzIgMS40NHE2LjU0MyAwIDkuNjktMS45NTZhNS45OSA1Ljk5IDAgMCAwIDMuMTQ3LTUuMzA3cTAtMi43ODctMS43MjMtMy44Njd0LTYuNDgxLTEuMDhoLTYuMjNhOC4yIDguMiAwIDAgMC01LjUxIDEuNjkgNi4wNCA2LjA0IDAgMCAwLTEuOTczIDQuODUzbTIuODE4LTI5LjA4NmE2Ljk4IDYuOTggMCAwIDAgMi4wMzUgNS40NDggOC4xMiA4LjEyIDAgMCAwIDUuNjY3IDEuODQ3cTcuNjA4IDAgNy42MDgtNy4zODkgMC03LjczMy03LjctNy43MzNhNy42MyA3LjYzIDAgMCAwLTUuNjM1IDEuOTcycS0xLjk3NiAxLjk3My0xLjk3NSA1Ljg1NSIsY2xhc3NOYW1lOiJsb2dvX3NtYWxsX3N2Z19fY2xzLTIiLCJkYXRhLW5hbWUiOiJQYXRoIDI5NDQifSkpLGd8fChnPW4uY3JlYXRlRWxlbWVudCgicGF0aCIse2lkOiJsb2dvX3NtYWxsX3N2Z19fUGF0aF8yOTQ1IixkOiJNMjk5LjEzNiAzNS45ODd2My4yODdsLTYuMzU2Ljc1MmExMS4xNyAxMS4xNyAwIDAgMSAyLjI1NCA2Ljg1NiAxMC4xNSAxMC4xNSAwIDAgMS0zLjQ0NCA4LjA0N3EtMy40NDQgMy05LjQ1NSAzYTE1LjcgMTUuNyAwIDAgMS0yLjg4LS4yNXEtMy4zMiAxLjc1NC0zLjMxOSA0LjQxNWEyLjI0IDIuMjQgMCAwIDAgMS4xNTggMi4wODIgOC40NiA4LjQ2IDAgMCAwIDMuOTc2LjY3M2g2LjA3NHE1LjU3NCAwIDguNTYzIDIuMzQ4YTguMTYgOC4xNiAwIDAgMSAyLjk5IDYuODI1IDkuNzQgOS43NCAwIDAgMS00LjU3MSA4LjY4OHEtNC41NyAyLjk4OS0xMy4zMzcgMi45OS02LjczMiAwLTEwLjM3OS0yLjVhOC4wOSA4LjA5IDAgMCAxLTMuNjQ4LTcuMDc2IDcuOTUgNy45NSAwIDAgMSAyLTUuNDE3IDEwLjIgMTAuMiAwIDAgMSA1LjYzNi0zLjEgNS40MyA1LjQzIDAgMCAxLTIuMjA4LTEuODQ3IDQuOSA0LjkgMCAwIDEtLjg5Mi0yLjkxMiA1LjUzIDUuNTMgMCAwIDEgMS0zLjI4OCAxMC41IDEwLjUgMCAwIDEgMy4xNjItMi43MjMgOS4yNyA5LjI3IDAgMCAxLTQuMzM2LTMuNzI2IDEwLjk1IDEwLjk1IDAgMCAxLTEuNjc1LTYuMDEycTAtNS42MzQgMy4zODEtOC42ODh0OS41ODEtMy4wNTJhMTcuNCAxNy40IDAgMCAxIDQuODUzLjYyNlptLTI3LjM2NCA0MC4wNzVhNC42NiA0LjY2IDAgMCAwIDIuMzQ4IDQuMjI3IDEyLjk3IDEyLjk3IDAgMCAwIDYuNzMxIDEuNDRxNi41NDQgMCA5LjY5MS0xLjk1NmE1Ljk5IDUuOTkgMCAwIDAgMy4xNDYtNS4zMDdxMC0yLjc4Ny0xLjcyMi0zLjg2N3QtNi40ODEtMS4wOGgtNi4yM2E4LjIgOC4yIDAgMCAwLTUuNTExIDEuNjkgNi4wNCA2LjA0IDAgMCAwLTEuOTcyIDQuODUzbTIuODE4LTI5LjA4NmE2Ljk4IDYuOTggMCAwIDAgMi4wMzUgNS40NDggOC4xMiA4LjEyIDAgMCAwIDUuNjY3IDEuODQ3cTcuNjA3IDAgNy42MDgtNy4zODkgMC03LjczMy03LjctNy43MzNhNy42MyA3LjYzIDAgMCAwLTUuNjM1IDEuOTcycS0xLjk3NSAxLjk3My0xLjk3NSA1Ljg1NSIsY2xhc3NOYW1lOiJsb2dvX3NtYWxsX3N2Z19fY2xzLTIiLCJkYXRhLW5hbWUiOiJQYXRoIDI5NDUifSkpLHZ8fCh2PW4uY3JlYXRlRWxlbWVudCgicGF0aCIse2lkOiJsb2dvX3NtYWxsX3N2Z19fUGF0aF8yOTQ2IixkOiJNMzE2Ljc3OCA3MC45MjhxLTcuNjA4IDAtMTIuMDA3LTQuNjM0dC00LjQtMTIuODY4cTAtOC4zIDQuMDg2LTEzLjE4MWExMy41NyAxMy41NyAwIDAgMSAxMC45NzQtNC44ODQgMTIuOTQgMTIuOTQgMCAwIDEgMTAuMjA3IDQuMjM5cTMuNzYyIDQuMjQ3IDMuNzYyIDExLjJ2My4yODdoLTIzLjY0M3EuMTU2IDYuMDQ0IDMuMDUzIDkuMTc0dDguMTU2IDMuMTMxYTI3LjYgMjcuNiAwIDAgMCAxMC45NTgtMi4zMTd2NC42MzRhMjcuNSAyNy41IDAgMCAxLTUuMjEzIDEuNzA2IDI5LjMgMjkuMyAwIDAgMS01LjkzMy41MTNtLTEuNDA5LTMxLjIxNWE4LjQ5IDguNDkgMCAwIDAtNi41OTEgMi42OTIgMTIuNCAxMi40IDAgMCAwLTIuOSA3LjQ1MmgxNy45NHEwLTQuOTE2LTIuMTkxLTcuNTNhNy43MSA3LjcxIDAgMCAwLTYuMjU4LTIuNjE0IixjbGFzc05hbWU6ImxvZ29fc21hbGxfc3ZnX19jbHMtMiIsImRhdGEtbmFtZSI6IlBhdGggMjk0NiJ9KSksYnx8KGI9bi5jcmVhdGVFbGVtZW50KCJwYXRoIix7aWQ6ImxvZ29fc21hbGxfc3ZnX19QYXRoXzI5NDciLGQ6Ik0zNTAuOSAzNS4zNjFhMjAuNCAyMC40IDAgMCAxIDQuMS4zNzVsLS43MjEgNC44MjJhMTcuNyAxNy43IDAgMCAwLTMuNzU3LS40NyA5LjE0IDkuMTQgMCAwIDAtNy4xMjIgMy4zODIgMTIuMzMgMTIuMzMgMCAwIDAtMi45NTkgOC40MjJWNzAuM2gtNS4yVjM1Ljk4N2g0LjI5bC42IDYuMzU2aC4yNWExNS4xIDE1LjEgMCAwIDEgNC42LTUuMTY2IDEwLjM2IDEwLjM2IDAgMCAxIDUuOTE5LTEuODE2IixjbGFzc05hbWU6ImxvZ29fc21hbGxfc3ZnX19jbHMtMiIsImRhdGEtbmFtZSI6IlBhdGggMjk0NyJ9KSksd3x8KHc9bi5jcmVhdGVFbGVtZW50KCJwYXRoIix7aWQ6ImxvZ29fc21hbGxfc3ZnX19QYXRoXzI5NDgiLGQ6Ik0yNTUuODU3IDk2LjYzOHMtMy40My0uMzkxLTQuODUtLjM5MWMtMi4wNTggMC0zLjExMS43MzUtMy4xMTEgMi4xOCAwIDEuNTY4Ljg4MiAxLjkzNSAzLjc0OCAyLjcxOSAzLjUyNy45OCA0LjggMS45MTEgNC44IDQuNzc3IDAgMy42NzUtMi4zIDUuMjY3LTUuNjEgNS4yNjdhMzYgMzYgMCAwIDEtNS40ODctLjY2MmwuMjctMi4xOHMzLjMwNi40NDEgNS4wNDYuNDQxYzIuMDgyIDAgMy4wMzctLjkzMSAzLjAzNy0yLjcgMC0xLjQyMS0uNzU5LTEuOTEtMy4zMzEtMi41MjMtMy42MjYtLjkzLTUuMTkzLTIuMDMzLTUuMTkzLTQuOTQ4IDAtMy4zODEgMi4yMjktNC43NzYgNS41ODUtNC43NzZhMzcgMzcgMCAwIDEgNS4zMTUuNTg3WiIsY2xhc3NOYW1lOiJsb2dvX3NtYWxsX3N2Z19fY2xzLTIiLCJkYXRhLW5hbWUiOiJQYXRoIDI5NDgifSkpLEl8fChJPW4uY3JlYXRlRWxlbWVudCgicGF0aCIse2lkOiJsb2dvX3NtYWxsX3N2Z19fUGF0aF8yOTQ5IixkOiJNMjYyLjk2NyA5NC4xNGg0LjczM2wzLjc0OCAxMy4xMDZMMjc1LjIgOTQuMTRoNC43NTJ2MTYuNzhIMjc3LjJ2LTE0LjVoLS4xNDVsLTQuMTkxIDEzLjgxNmgtMi44NDJsLTQuMTkxLTEzLjgxNmgtLjE0NXYxNC41aC0yLjcxOVoiLGNsYXNzTmFtZToibG9nb19zbWFsbF9zdmdfX2Nscy0yIiwiZGF0YS1uYW1lIjoiUGF0aCAyOTQ5In0pKSx4fHwoeD1uLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtpZDoibG9nb19zbWFsbF9zdmdfX1BhdGhfMjk1MCIsZDoiTTMyMi4wNTcgOTQuMTRIMzM0LjN2Mi40MjVoLTQuNzI4djE0LjM1NWgtMi43NDNWOTYuNTY1aC00Ljc3N1oiLGNsYXNzTmFtZToibG9nb19zbWFsbF9zdmdfX2Nscy0yIiwiZGF0YS1uYW1lIjoiUGF0aCAyOTUwIn0pKSxCfHwoQj1uLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtpZDoibG9nb19zbWFsbF9zdmdfX1BhdGhfMjk1MSIsZDoiTTM0Ni4xMzcgOTQuMTRjMy4zMzIgMCA1LjEyIDEuMjQ5IDUuMTIgNC4zNjEgMCAyLjAzMy0uNjM3IDMuMDM3LTEuOTg0IDMuNzcyIDEuNDQ1LjU2MyAyLjQgMS41OTIgMi40IDMuOSAwIDMuNDMtMi4wODEgNC43NTItNS4zMzkgNC43NTJoLTYuNTY2Vjk0LjE0Wm0tMy42NSAyLjM1MnY0LjhoMy42YzEuNjY2IDAgMi40LS44MzIgMi40LTIuNDc0IDAtMS42MTctLjgzMy0yLjMyNy0yLjUtMi4zMjdabTAgNy4xdjQuOTczaDMuN2MxLjY4OSAwIDIuNjk0LS41MzkgMi42OTQtMi41NDggMC0xLjkxMS0xLjQyMS0yLjQyNS0yLjc0NC0yLjQyNVoiLGNsYXNzTmFtZToibG9nb19zbWFsbF9zdmdfX2Nscy0yIiwiZGF0YS1uYW1lIjoiUGF0aCAyOTUxIn0pKSxrfHwoaz1uLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtpZDoibG9nb19zbWFsbF9zdmdfX1BhdGhfMjk1MiIsZDoiTTM1OC40MTQgOTQuMTRIMzY5djIuMzc3aC03Ljg2NHY0Ljc1MWg2LjM5NHYyLjMzMmgtNi4zOTR2NC45MjRIMzY5djIuNGgtMTAuNTg2WiIsY2xhc3NOYW1lOiJsb2dvX3NtYWxsX3N2Z19fY2xzLTIiLCJkYXRhLW5hbWUiOiJQYXRoIDI5NTIifSkpLEN8fChDPW4uY3JlYXRlRWxlbWVudCgicGF0aCIse2lkOiJsb2dvX3NtYWxsX3N2Z19fUGF0aF8yOTUzIixkOiJNMzc4Ljc0NyA5NC4xNGg1LjQxNGw0LjE2NCAxNi43OGgtMi43NDRsLTEuMjM5LTQuOTJoLTUuNzc3bC0xLjIzOSA0LjkyM2gtMi43MTlabS4zNjEgOS40NTZoNC43MDhsLTEuNzM3LTcuMTc4aC0xLjIyNVoiLGNsYXNzTmFtZToibG9nb19zbWFsbF9zdmdfX2Nscy0yIiwiZGF0YS1uYW1lIjoiUGF0aCAyOTUzIn0pKSxxfHwocT1uLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtpZDoibG9nb19zbWFsbF9zdmdfX1BhdGhfMjk1NCIsZDoiTTM5Ny4xIDEwNS45NDd2NC45NzNoLTIuNzE5Vjk0LjE0aDYuMzdjMy43IDAgNS42ODMgMi4xMiA1LjY4MyA1Ljg0MyAwIDIuMzc2LS45NTYgNC41MTktMi43NDQgNS4zNTJsMi43NjkgNS41ODVoLTIuOTg5bC0yLjQyNi00Ljk3M1ptMy42NTEtOS40NTVIMzk3LjF2Ny4xaDMuN2MyLjA1NyAwIDIuODQxLTEuODUgMi44NDEtMy41ODkgMC0xLjktLjkzNC0zLjUxMS0yLjg5NC0zLjUxMVoiLGNsYXNzTmFtZToibG9nb19zbWFsbF9zdmdfX2Nscy0yIiwiZGF0YS1uYW1lIjoiUGF0aCAyOTU0In0pKSxMfHwoTD1uLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtpZDoibG9nb19zbWFsbF9zdmdfX1BhdGhfMjk1NSIsZDoiTTI5MC4wMTMgOTQuMTRoNS40MTNsNC4xNjQgMTYuNzhoLTIuNzQzbC0xLjIzOS00LjkyaC01Ljc3N2wtMS4yMzkgNC45MjNoLTIuNzE5Wm0uMzYxIDkuNDU2aDQuNzA3bC0xLjczNy03LjE3OGgtMS4yMjVaIixjbGFzc05hbWU6ImxvZ29fc21hbGxfc3ZnX19jbHMtMiIsImRhdGEtbmFtZSI6IlBhdGggMjk1NSJ9KSksanx8KGo9bi5jcmVhdGVFbGVtZW50KCJwYXRoIix7aWQ6ImxvZ29fc21hbGxfc3ZnX19QYXRoXzI5NTYiLGQ6Ik0zMDguMzYyIDEwNS45NDd2NC45NzNoLTIuNzE5Vjk0LjE0aDYuMzY5YzMuNyAwIDUuNjgzIDIuMTIgNS42ODMgNS44NDMgMCAyLjM3Ni0uOTU1IDQuNTE5LTIuNzQzIDUuMzUybDIuNzY4IDUuNTg1aC0yLjk4OWwtMi40MjUtNC45NzNabTMuNjUtOS40NTVoLTMuNjV2Ny4xaDMuN2MyLjA1OCAwIDIuODQxLTEuODUgMi44NDEtMy41ODktLjAwMy0xLjkwMy0uOTMxLTMuNTExLTIuODkxLTMuNTExIixjbGFzc05hbWU6ImxvZ29fc21hbGxfc3ZnX19jbHMtMiIsImRhdGEtbmFtZSI6IlBhdGggMjk1NiJ9KSksenx8KHo9bi5jcmVhdGVFbGVtZW50KCJwYXRoIix7aWQ6ImxvZ29fc21hbGxfc3ZnX19QYXRoXzI5NTciLGQ6Ik0xMzAuNjA2IDEwNy42NDNhMy4wMiAzLjAyIDAgMCAxLTEuMTggMi41MzcgNS4xIDUuMSAwIDAgMS0zLjIuOTEgOCA4IDAgMCAxLTMuMzcxLS41NjR2LTEuMzgzYTkgOSAwIDAgMCAxLjY1Mi41MDYgOC43IDguNyAwIDAgMCAxLjc3LjE4NiAzLjU3IDMuNTcgMCAwIDAgMi4xNTctLjU0NCAxLjc4IDEuNzggMCAwIDAgLjcyNS0xLjUxMiAxLjk1IDEuOTUgMCAwIDAtLjI1Ny0xLjA1IDIuNCAyLjQgMCAwIDAtLjg2LS43NTQgMTIgMTIgMCAwIDAtMS44MzMtLjc4NCA1Ljg0IDUuODQgMCAwIDEtMi40NTYtMS40NTggMy4yIDMuMiAwIDAgMS0uNzM4LTIuMiAyLjc0IDIuNzQgMCAwIDEgMS4wNzEtMi4yNjcgNC40NCA0LjQ0IDAgMCAxIDIuODMxLS44NDMgOC4zIDguMyAwIDAgMSAzLjM4LjY3NWwtLjQ0NyAxLjI0N2E3LjYgNy42IDAgMCAwLTIuOTY2LS42NDEgMi44OCAyLjg4IDAgMCAwLTEuNzc5LjQ4OSAxLjYxIDEuNjEgMCAwIDAtLjY0IDEuMzU3IDIuMSAyLjEgMCAwIDAgLjIzNiAxLjA0OSAyLjIgMi4yIDAgMCAwIC44Ljc1IDEwIDEwIDAgMCAwIDEuNzE1Ljc1NCA2LjggNi44IDAgMCAxIDIuNjY3IDEuNDgzIDIuOTIgMi45MiAwIDAgMSAuNzIzIDIuMDU3IixjbGFzc05hbWU6ImxvZ29fc21hbGxfc3ZnX19jbHMtMiIsImRhdGEtbmFtZSI6IlBhdGggMjk1NyJ9KSksUHx8KFA9bi5jcmVhdGVFbGVtZW50KCJwYXRoIix7aWQ6ImxvZ29fc21hbGxfc3ZnX19QYXRoXzI5NTgiLGQ6Ik0xMzQuNDQ3IDEwMS42ODZ2NS45OTFhMi40IDIuNCAwIDAgMCAuNTE1IDEuNjg2IDIuMSAyLjEgMCAwIDAgMS42MDkuNTU2IDIuNjMgMi42MyAwIDAgMCAyLjEyLS43OTIgNCA0IDAgMCAwIC42Ny0yLjU4N3YtNC44NTRoMS40djkuMjM2SDEzOS42bC0uMi0xLjIzOWgtLjA3NWEyLjggMi44IDAgMCAxLTEuMTkzIDEuMDQ1IDQgNCAwIDAgMS0xLjc0LjM2MiAzLjUzIDMuNTMgMCAwIDEtMi41MjQtLjggMy40IDMuNCAwIDAgMS0uODM5LTIuNTYydi02LjA0MloiLGNsYXNzTmFtZToibG9nb19zbWFsbF9zdmdfX2Nscy0yIiwiZGF0YS1uYW1lIjoiUGF0aCAyOTU4In0pKSxEfHwoRD1uLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtpZDoibG9nb19zbWFsbF9zdmdfX1BhdGhfMjk1OSIsZDoiTTE0OC4yMDYgMTExLjA5YTQgNCAwIDAgMS0xLjY0Ny0uMzMzIDMuMSAzLjEgMCAwIDEtMS4yNTItMS4wMjNoLS4xYTEyIDEyIDAgMCAxIC4xIDEuNTMzdjMuOGgtMS40di0xMy4zODFoMS4xMzdsLjE5NCAxLjI2NGguMDY3YTMuMjYgMy4yNiAwIDAgMSAxLjI1Ni0xLjEgMy44IDMuOCAwIDAgMSAxLjY0My0uMzM3IDMuNDEgMy40MSAwIDAgMSAyLjgzNiAxLjI1NiA2LjY4IDYuNjggMCAwIDEtLjAxNyA3LjA1NyAzLjQyIDMuNDIgMCAwIDEtMi44MTcgMS4yNjRtLS4yLTguMzg1YTIuNDggMi40OCAwIDAgMC0yLjA0OC43ODQgNC4wNCA0LjA0IDAgMCAwLS42NDkgMi40OTR2LjMxMmE0LjYzIDQuNjMgMCAwIDAgLjY0OSAyLjc4NSAyLjQ3IDIuNDcgMCAwIDAgMi4wODIuODM5IDIuMTYgMi4xNiAwIDAgMCAxLjg3NS0uOTY5IDQuNiA0LjYgMCAwIDAgLjY3OC0yLjY3MSA0LjQzIDQuNDMgMCAwIDAtLjY3OC0yLjY1MSAyLjIzIDIuMjMgMCAwIDAtMS45MTUtLjkyM1oiLGNsYXNzTmFtZToibG9nb19zbWFsbF9zdmdfX2Nscy0yIiwiZGF0YS1uYW1lIjoiUGF0aCAyOTU5In0pKSxVfHwoVT1uLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtpZDoibG9nb19zbWFsbF9zdmdfX1BhdGhfMjk2MCIsZDoiTTE1OS4wMzkgMTExLjA5YTQgNCAwIDAgMS0xLjY0Ny0uMzMzIDMuMSAzLjEgMCAwIDEtMS4yNTItMS4wMjNoLS4xYTEyIDEyIDAgMCAxIC4xIDEuNTMzdjMuOGgtMS40di0xMy4zODFoMS4xMzdsLjE5NCAxLjI2NGguMDY3YTMuMjYgMy4yNiAwIDAgMSAxLjI1Ni0xLjEgMy44IDMuOCAwIDAgMSAxLjY0My0uMzM3IDMuNDEgMy40MSAwIDAgMSAyLjgzNiAxLjI1NiA2LjY4IDYuNjggMCAwIDEtLjAxNyA3LjA1NyAzLjQyIDMuNDIgMCAwIDEtMi44MTcgMS4yNjRtLS4yLTguMzg1YTIuNDggMi40OCAwIDAgMC0yLjA0OC43ODQgNC4wNCA0LjA0IDAgMCAwLS42NDkgMi40OTR2LjMxMmE0LjYzIDQuNjMgMCAwIDAgLjY0OSAyLjc4NSAyLjQ3IDIuNDcgMCAwIDAgMi4wODIuODM5IDIuMTYgMi4xNiAwIDAgMCAxLjg3NS0uOTY5IDQuNiA0LjYgMCAwIDAgLjY3OC0yLjY3MSA0LjQzIDQuNDMgMCAwIDAtLjY3OC0yLjY1MSAyLjIzIDIuMjMgMCAwIDAtMS45MTEtLjkyM1oiLGNsYXNzTmFtZToibG9nb19zbWFsbF9zdmdfX2Nscy0yIiwiZGF0YS1uYW1lIjoiUGF0aCAyOTYwIn0pKSxXfHwoVz1uLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtpZDoibG9nb19zbWFsbF9zdmdfX1BhdGhfMjk2MSIsZDoiTTE3My42MTIgMTA2LjNhNS4xIDUuMSAwIDAgMS0xLjEzNyAzLjUyNyA0IDQgMCAwIDEtMy4xNDMgMS4yNjggNC4xNyA0LjE3IDAgMCAxLTIuMi0uNTgxIDMuODQgMy44NCAwIDAgMS0xLjQ4My0xLjY2OSA1LjggNS44IDAgMCAxLS41MjItMi41NDUgNS4xIDUuMSAwIDAgMSAxLjEyOS0zLjUxOCA0IDQgMCAwIDEgMy4xMzUtMS4yNiAzLjkgMy45IDAgMCAxIDMuMDggMS4yOSA1LjA3IDUuMDcgMCAwIDEgMS4xNDEgMy40ODhtLTcuMDM2IDBhNC40IDQuNCAwIDAgMCAuNzA4IDIuNyAyLjgxIDIuODEgMCAwIDAgNC4xNjcgMCA0LjM3IDQuMzcgMCAwIDAgLjcxMi0yLjcgNC4zIDQuMyAwIDAgMC0uNzEyLTIuNjc1IDIuNSAyLjUgMCAwIDAtMi4xLS45MTUgMi40NiAyLjQ2IDAgMCAwLTIuMDcyLjkgNC4zMyA0LjMzIDAgMCAwLS43IDIuNjlaIixjbGFzc05hbWU6ImxvZ29fc21hbGxfc3ZnX19jbHMtMiIsImRhdGEtbmFtZSI6IlBhdGggMjk2MSJ9KSksVnx8KFY9bi5jcmVhdGVFbGVtZW50KCJwYXRoIix7aWQ6ImxvZ29fc21hbGxfc3ZnX19QYXRoXzI5NjIiLGQ6Ik0xODAuNTI1IDEwMS41MTdhNS41IDUuNSAwIDAgMSAxLjEuMWwtLjE5NCAxLjNhNC44IDQuOCAwIDAgMC0xLjAxMS0uMTI3IDIuNDYgMi40NiAwIDAgMC0xLjkxNy45MTEgMy4zMiAzLjMyIDAgMCAwLS44IDIuMjY3djQuOTU1aC0xLjR2LTkuMjM2aDEuMTU0bC4xNiAxLjcxaC4wNjhhNC4wNSA0LjA1IDAgMCAxIDEuMjM4LTEuMzkgMi44IDIuOCAwIDAgMSAxLjYtLjQ5WiIsY2xhc3NOYW1lOiJsb2dvX3NtYWxsX3N2Z19fY2xzLTIiLCJkYXRhLW5hbWUiOiJQYXRoIDI5NjIifSkpLEt8fChLPW4uY3JlYXRlRWxlbWVudCgicGF0aCIse2lkOiJsb2dvX3NtYWxsX3N2Z19fUGF0aF8yOTYzIixkOiJNMTg3LjM2MyAxMDkuOTM2YTQuNSA0LjUgMCAwIDAgLjcxNi0uMDU1IDQgNCAwIDAgMCAuNTQ4LS4xMTR2MS4wN2EyLjUgMi41IDAgMCAxLS42Ny4xODEgNSA1IDAgMCAxLS44LjA3MnEtMi42OCAwLTIuNjgtMi44MjN2LTUuNDk0aC0xLjMyM3YtLjY3M2wxLjMyMy0uNTgyLjU5LTEuOTcyaC44MDl2Mi4xNDFoMi42OHYxLjA4N2gtMi42OHY1LjQzNWExLjg3IDEuODcgMCAwIDAgLjQgMS4yODEgMS4zOCAxLjM4IDAgMCAwIDEuMDg3LjQ0NiIsY2xhc3NOYW1lOiJsb2dvX3NtYWxsX3N2Z19fY2xzLTIiLCJkYXRhLW5hbWUiOiJQYXRoIDI5NjMifSkpLCR8fCgkPW4uY3JlYXRlRWxlbWVudCgicGF0aCIse2lkOiJsb2dvX3NtYWxsX3N2Z19fUGF0aF8yOTY0IixkOiJNMTk0LjUzOCAxMTEuMDlhNC4yNCA0LjI0IDAgMCAxLTMuMjMxLTEuMjQ3IDQuODIgNC44MiAwIDAgMS0xLjE4NC0zLjQ2MyA1LjM2IDUuMzYgMCAwIDEgMS4xLTMuNTQ4IDMuNjUgMy42NSAwIDAgMSAyLjk1NC0xLjMxNSAzLjQ4IDMuNDggMCAwIDEgMi43NDcgMS4xNDIgNC4zOCA0LjM4IDAgMCAxIDEuMDExIDMuMDEzdi44ODVoLTYuMzYyYTMuNjYgMy42NiAwIDAgMCAuODIyIDIuNDY5IDIuODQgMi44NCAwIDAgMCAyLjIuODQzIDcuNCA3LjQgMCAwIDAgMi45NDktLjYyNHYxLjI0N2E3LjQgNy40IDAgMCAxLTEuNC40NTkgOCA4IDAgMCAxLTEuNi4xMzlabS0uMzc5LTguNGEyLjI5IDIuMjkgMCAwIDAtMS43NzQuNzI1IDMuMzQgMy4zNCAwIDAgMC0uNzc5IDIuMDA2aDQuODI4YTMuMDcgMy4wNyAwIDAgMC0uNTktMi4wMjcgMi4wOCAyLjA4IDAgMCAwLTEuNjg1LS43MDZaIixjbGFzc05hbWU6ImxvZ29fc21hbGxfc3ZnX19jbHMtMiIsImRhdGEtbmFtZSI6IlBhdGggMjk2NCJ9KSksSHx8KEg9bi5jcmVhdGVFbGVtZW50KCJwYXRoIix7aWQ6ImxvZ29fc21hbGxfc3ZnX19QYXRoXzI5NjUiLGQ6Ik0yMDYuOTUxIDEwOS42ODNoLS4wNzZhMy4yOSAzLjI5IDAgMCAxLTIuOSAxLjQwNyAzLjQzIDMuNDMgMCAwIDEtMi44MTktMS4yMzkgNS40NSA1LjQ1IDAgMCAxLTEuMDA2LTMuNTIyIDUuNTQgNS41NCAwIDAgMSAxLjAxMS0zLjU0OCAzLjQgMy40IDAgMCAxIDIuODE0LTEuMjY0IDMuMzYgMy4zNiAwIDAgMSAyLjg4MyAxLjM2NWguMTA5bC0uMDU5LS42NjUtLjAzNC0uNjQ5di0zLjc1OWgxLjR2MTMuMTEzaC0xLjEzOFptLTIuOC4yMzZhMi41NSAyLjU1IDAgMCAwIDIuMDc4LS43NzkgMy45NSAzLjk1IDAgMCAwIC42NDQtMi41MTZ2LS4zYTQuNjQgNC42NCAwIDAgMC0uNjUzLTIuOCAyLjQ4IDIuNDggMCAwIDAtMi4wODYtLjgzOSAyLjE0IDIuMTQgMCAwIDAtMS44ODMuOTU3IDQuNzYgNC43NiAwIDAgMC0uNjUzIDIuNyA0LjU1IDQuNTUgMCAwIDAgLjY0OSAyLjY3MSAyLjIgMi4yIDAgMCAwIDEuOTA2LjkwNloiLGNsYXNzTmFtZToibG9nb19zbWFsbF9zdmdfX2Nscy0yIiwiZGF0YS1uYW1lIjoiUGF0aCAyOTY1In0pKSxZfHwoWT1uLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtpZDoibG9nb19zbWFsbF9zdmdfX1BhdGhfMjk2NiIsZDoiTTIyMC43MTIgMTAxLjUzNGEzLjQ0IDMuNDQgMCAwIDEgMi44MjcgMS4yNDMgNi42NSA2LjY1IDAgMCAxLS4wMDkgNy4wNTMgMy40MiAzLjQyIDAgMCAxLTIuODE4IDEuMjYgNCA0IDAgMCAxLTEuNjQ4LS4zMzMgMy4xIDMuMSAwIDAgMS0xLjI1MS0xLjAyM2gtLjFsLS4yOTUgMS4xODhoLTFWOTcuODA5aDEuNFYxMDFxMCAxLjA2OS0uMDY4IDEuOTIxaC4wNjhhMy4zMiAzLjMyIDAgMCAxIDIuODk0LTEuMzg3bS0uMiAxLjE3MWEyLjQ0IDIuNDQgMCAwIDAtMi4wNjQuODIyIDYuMzQgNi4zNCAwIDAgMCAuMDE3IDUuNTUzIDIuNDYgMi40NiAwIDAgMCAyLjA4MS44MzkgMi4xNiAyLjE2IDAgMCAwIDEuOTIyLS45NCA0LjgzIDQuODMgMCAwIDAgLjYzMi0yLjcgNC42NCA0LjY0IDAgMCAwLS42MzItMi42ODkgMi4yNCAyLjI0IDAgMCAwLTEuOTU5LS44ODVaIixjbGFzc05hbWU6ImxvZ29fc21hbGxfc3ZnX19jbHMtMiIsImRhdGEtbmFtZSI6IlBhdGggMjk2NiJ9KSksWnx8KFo9bi5jcmVhdGVFbGVtZW50KCJwYXRoIix7aWQ6ImxvZ29fc21hbGxfc3ZnX19QYXRoXzI5NjciLGQ6Ik0yMjUuNzU4IDEwMS42ODZoMS41bDIuMDIzIDUuMjY3YTIwIDIwIDAgMCAxIC44MjYgMi42aC4wNjdxLjEwOS0uNDMxLjQ1OS0xLjQ3MXQyLjI4OC02LjRoMS41bC0zLjk2OSAxMC41MThhNS4yNSA1LjI1IDAgMCAxLTEuMzc4IDIuMjEyIDIuOTMgMi45MyAwIDAgMS0xLjkzNC42NTMgNS43IDUuNyAwIDAgMS0xLjI2NC0uMTQzVjExMy44YTUgNSAwIDAgMCAxLjAzNy4xIDIuMTM2IDIuMTM2IDAgMCAwIDIuMDU2LTEuNjE4bC41MTQtMS4zMTRaIixjbGFzc05hbWU6ImxvZ29fc21hbGxfc3ZnX19jbHMtMiIsImRhdGEtbmFtZSI6IlBhdGggMjk2NyJ9KSkpKSksY29tcG9uZW50c19Mb2dvPSgpPT5uLmNyZWF0ZUVsZW1lbnQobG9nb19zbWFsbCx7aGVpZ2h0OiI0MCJ9KSx0b3BfYmFyPSgpPT4oe2NvbXBvbmVudHM6e1RvcGJhcjp1LExvZ286Y29tcG9uZW50c19Mb2dvfX0pO2Z1bmN0aW9uIGlzTm90aGluZyh0KXtyZXR1cm4gbnVsbD09dH12YXIgSj17aXNOb3RoaW5nLGlzT2JqZWN0OmZ1bmN0aW9uIGpzX3lhbWxfaXNPYmplY3QodCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dH0sdG9BcnJheTpmdW5jdGlvbiB0b0FycmF5KHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3Q6aXNOb3RoaW5nKHQpP1tdOlt0XX0scmVwZWF0OmZ1bmN0aW9uIHJlcGVhdCh0LGUpe3ZhciByLG49IiI7Zm9yKHI9MDtyPGU7cis9MSluKz10O3JldHVybiBufSxpc05lZ2F0aXZlWmVybzpmdW5jdGlvbiBpc05lZ2F0aXZlWmVybyh0KXtyZXR1cm4gMD09PXQmJk51bWJlci5ORUdBVElWRV9JTkZJTklUWT09PTEvdH0sZXh0ZW5kOmZ1bmN0aW9uIGV4dGVuZCh0LGUpe3ZhciByLG4saSxvO2lmKGUpZm9yKHI9MCxuPShvPU9iamVjdC5rZXlzKGUpKS5sZW5ndGg7cjxuO3IrPTEpdFtpPW9bcl1dPWVbaV07cmV0dXJuIHR9fTtmdW5jdGlvbiBmb3JtYXRFcnJvcih0LGUpe3ZhciByPSIiLG49dC5yZWFzb258fCIodW5rbm93biByZWFzb24pIjtyZXR1cm4gdC5tYXJrPyh0Lm1hcmsubmFtZSYmKHIrPSdpbiAiJyt0Lm1hcmsubmFtZSsnIiAnKSxyKz0iKCIrKHQubWFyay5saW5lKzEpKyI6IisodC5tYXJrLmNvbHVtbisxKSsiKSIsIWUmJnQubWFyay5zbmlwcGV0JiYocis9IlxuXG4iK3QubWFyay5zbmlwcGV0KSxuKyIgIityKTpufWZ1bmN0aW9uIFlBTUxFeGNlcHRpb24kMSh0LGUpe0Vycm9yLmNhbGwodGhpcyksdGhpcy5uYW1lPSJZQU1MRXhjZXB0aW9uIix0aGlzLnJlYXNvbj10LHRoaXMubWFyaz1lLHRoaXMubWVzc2FnZT1mb3JtYXRFcnJvcih0aGlzLCExKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9KG5ldyBFcnJvcikuc3RhY2t8fCIifVlBTUxFeGNlcHRpb24kMS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLFlBTUxFeGNlcHRpb24kMS5wcm90b3R5cGUuY29uc3RydWN0b3I9WUFNTEV4Y2VwdGlvbiQxLFlBTUxFeGNlcHRpb24kMS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24gdG9TdHJpbmcodCl7cmV0dXJuIHRoaXMubmFtZSsiOiAiK2Zvcm1hdEVycm9yKHRoaXMsdCl9O3ZhciB0dD1ZQU1MRXhjZXB0aW9uJDE7ZnVuY3Rpb24gZ2V0TGluZSh0LGUscixuLGkpe3ZhciBvPSIiLGE9IiIscz1NYXRoLmZsb29yKGkvMiktMTtyZXR1cm4gbi1lPnMmJihlPW4tcysobz0iIC4uLiAiKS5sZW5ndGgpLHItbj5zJiYocj1uK3MtKGE9IiAuLi4iKS5sZW5ndGgpLHtzdHI6byt0LnNsaWNlKGUscikucmVwbGFjZSgvXHQvZywi4oaSIikrYSxwb3M6bi1lK28ubGVuZ3RofX1mdW5jdGlvbiBwYWRTdGFydCh0LGUpe3JldHVybiBKLnJlcGVhdCgiICIsZS10Lmxlbmd0aCkrdH12YXIgZXQ9ZnVuY3Rpb24gbWFrZVNuaXBwZXQodCxlKXtpZihlPU9iamVjdC5jcmVhdGUoZXx8bnVsbCksIXQuYnVmZmVyKXJldHVybiBudWxsO2UubWF4TGVuZ3RofHwoZS5tYXhMZW5ndGg9NzkpLCJudW1iZXIiIT10eXBlb2YgZS5pbmRlbnQmJihlLmluZGVudD0xKSwibnVtYmVyIiE9dHlwZW9mIGUubGluZXNCZWZvcmUmJihlLmxpbmVzQmVmb3JlPTMpLCJudW1iZXIiIT10eXBlb2YgZS5saW5lc0FmdGVyJiYoZS5saW5lc0FmdGVyPTIpO2Zvcih2YXIgcixuPS9ccj9cbnxccnxcMC9nLGk9WzBdLG89W10sYT0tMTtyPW4uZXhlYyh0LmJ1ZmZlcik7KW8ucHVzaChyLmluZGV4KSxpLnB1c2goci5pbmRleCtyWzBdLmxlbmd0aCksdC5wb3NpdGlvbjw9ci5pbmRleCYmYTwwJiYoYT1pLmxlbmd0aC0yKTthPDAmJihhPWkubGVuZ3RoLTEpO3ZhciBzLHUsYz0iIixmPU1hdGgubWluKHQubGluZStlLmxpbmVzQWZ0ZXIsby5sZW5ndGgpLnRvU3RyaW5nKCkubGVuZ3RoLGw9ZS5tYXhMZW5ndGgtKGUuaW5kZW50K2YrMyk7Zm9yKHM9MTtzPD1lLmxpbmVzQmVmb3JlJiYhKGEtczwwKTtzKyspdT1nZXRMaW5lKHQuYnVmZmVyLGlbYS1zXSxvW2Etc10sdC5wb3NpdGlvbi0oaVthXS1pW2Etc10pLGwpLGM9Si5yZXBlYXQoIiAiLGUuaW5kZW50KStwYWRTdGFydCgodC5saW5lLXMrMSkudG9TdHJpbmcoKSxmKSsiIHwgIit1LnN0cisiXG4iK2M7Zm9yKHU9Z2V0TGluZSh0LmJ1ZmZlcixpW2FdLG9bYV0sdC5wb3NpdGlvbixsKSxjKz1KLnJlcGVhdCgiICIsZS5pbmRlbnQpK3BhZFN0YXJ0KCh0LmxpbmUrMSkudG9TdHJpbmcoKSxmKSsiIHwgIit1LnN0cisiXG4iLGMrPUoucmVwZWF0KCItIixlLmluZGVudCtmKzMrdS5wb3MpKyJeXG4iLHM9MTtzPD1lLmxpbmVzQWZ0ZXImJiEoYStzPj1vLmxlbmd0aCk7cysrKXU9Z2V0TGluZSh0LmJ1ZmZlcixpW2Erc10sb1thK3NdLHQucG9zaXRpb24tKGlbYV0taVthK3NdKSxsKSxjKz1KLnJlcGVhdCgiICIsZS5pbmRlbnQpK3BhZFN0YXJ0KCh0LmxpbmUrcysxKS50b1N0cmluZygpLGYpKyIgfCAiK3Uuc3RyKyJcbiI7cmV0dXJuIGMucmVwbGFjZSgvXG4kLywiIil9LHJ0PVsia2luZCIsIm11bHRpIiwicmVzb2x2ZSIsImNvbnN0cnVjdCIsImluc3RhbmNlT2YiLCJwcmVkaWNhdGUiLCJyZXByZXNlbnQiLCJyZXByZXNlbnROYW1lIiwiZGVmYXVsdFN0eWxlIiwic3R5bGVBbGlhc2VzIl0sbnQ9WyJzY2FsYXIiLCJzZXF1ZW5jZSIsIm1hcHBpbmciXTt2YXIgaXQ9ZnVuY3Rpb24gVHlwZSQxKHQsZSl7aWYoZT1lfHx7fSxPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbihlKXtpZigtMT09PXJ0LmluZGV4T2YoZSkpdGhyb3cgbmV3IHR0KCdVbmtub3duIG9wdGlvbiAiJytlKyciIGlzIG1ldCBpbiBkZWZpbml0aW9uIG9mICInK3QrJyIgWUFNTCB0eXBlLicpfSkpLHRoaXMub3B0aW9ucz1lLHRoaXMudGFnPXQsdGhpcy5raW5kPWUua2luZHx8bnVsbCx0aGlzLnJlc29sdmU9ZS5yZXNvbHZlfHxmdW5jdGlvbigpe3JldHVybiEwfSx0aGlzLmNvbnN0cnVjdD1lLmNvbnN0cnVjdHx8ZnVuY3Rpb24odCl7cmV0dXJuIHR9LHRoaXMuaW5zdGFuY2VPZj1lLmluc3RhbmNlT2Z8fG51bGwsdGhpcy5wcmVkaWNhdGU9ZS5wcmVkaWNhdGV8fG51bGwsdGhpcy5yZXByZXNlbnQ9ZS5yZXByZXNlbnR8fG51bGwsdGhpcy5yZXByZXNlbnROYW1lPWUucmVwcmVzZW50TmFtZXx8bnVsbCx0aGlzLmRlZmF1bHRTdHlsZT1lLmRlZmF1bHRTdHlsZXx8bnVsbCx0aGlzLm11bHRpPWUubXVsdGl8fCExLHRoaXMuc3R5bGVBbGlhc2VzPWZ1bmN0aW9uIGNvbXBpbGVTdHlsZUFsaWFzZXModCl7dmFyIGU9e307cmV0dXJuIG51bGwhPT10JiZPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihyKXt0W3JdLmZvckVhY2goKGZ1bmN0aW9uKHQpe2VbU3RyaW5nKHQpXT1yfSkpfSkpLGV9KGUuc3R5bGVBbGlhc2VzfHxudWxsKSwtMT09PW50LmluZGV4T2YodGhpcy5raW5kKSl0aHJvdyBuZXcgdHQoJ1Vua25vd24ga2luZCAiJyt0aGlzLmtpbmQrJyIgaXMgc3BlY2lmaWVkIGZvciAiJyt0KyciIFlBTUwgdHlwZS4nKX07ZnVuY3Rpb24gY29tcGlsZUxpc3QodCxlKXt2YXIgcj1bXTtyZXR1cm4gdFtlXS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT1yLmxlbmd0aDtyLmZvckVhY2goKGZ1bmN0aW9uKHIsbil7ci50YWc9PT10LnRhZyYmci5raW5kPT09dC5raW5kJiZyLm11bHRpPT09dC5tdWx0aSYmKGU9bil9KSkscltlXT10fSkpLHJ9ZnVuY3Rpb24gU2NoZW1hJDEodCl7cmV0dXJuIHRoaXMuZXh0ZW5kKHQpfVNjaGVtYSQxLnByb3RvdHlwZS5leHRlbmQ9ZnVuY3Rpb24gZXh0ZW5kKHQpe3ZhciBlPVtdLHI9W107aWYodCBpbnN0YW5jZW9mIGl0KXIucHVzaCh0KTtlbHNlIGlmKEFycmF5LmlzQXJyYXkodCkpcj1yLmNvbmNhdCh0KTtlbHNle2lmKCF0fHwhQXJyYXkuaXNBcnJheSh0LmltcGxpY2l0KSYmIUFycmF5LmlzQXJyYXkodC5leHBsaWNpdCkpdGhyb3cgbmV3IHR0KCJTY2hlbWEuZXh0ZW5kIGFyZ3VtZW50IHNob3VsZCBiZSBhIFR5cGUsIFsgVHlwZSBdLCBvciBhIHNjaGVtYSBkZWZpbml0aW9uICh7IGltcGxpY2l0OiBbLi4uXSwgZXhwbGljaXQ6IFsuLi5dIH0pIik7dC5pbXBsaWNpdCYmKGU9ZS5jb25jYXQodC5pbXBsaWNpdCkpLHQuZXhwbGljaXQmJihyPXIuY29uY2F0KHQuZXhwbGljaXQpKX1lLmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKCEodCBpbnN0YW5jZW9mIGl0KSl0aHJvdyBuZXcgdHQoIlNwZWNpZmllZCBsaXN0IG9mIFlBTUwgdHlwZXMgKG9yIGEgc2luZ2xlIFR5cGUgb2JqZWN0KSBjb250YWlucyBhIG5vbi1UeXBlIG9iamVjdC4iKTtpZih0LmxvYWRLaW5kJiYic2NhbGFyIiE9PXQubG9hZEtpbmQpdGhyb3cgbmV3IHR0KCJUaGVyZSBpcyBhIG5vbi1zY2FsYXIgdHlwZSBpbiB0aGUgaW1wbGljaXQgbGlzdCBvZiBhIHNjaGVtYS4gSW1wbGljaXQgcmVzb2x2aW5nIG9mIHN1Y2ggdHlwZXMgaXMgbm90IHN1cHBvcnRlZC4iKTtpZih0Lm11bHRpKXRocm93IG5ldyB0dCgiVGhlcmUgaXMgYSBtdWx0aSB0eXBlIGluIHRoZSBpbXBsaWNpdCBsaXN0IG9mIGEgc2NoZW1hLiBNdWx0aSB0YWdzIGNhbiBvbmx5IGJlIGxpc3RlZCBhcyBleHBsaWNpdC4iKX0pKSxyLmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKCEodCBpbnN0YW5jZW9mIGl0KSl0aHJvdyBuZXcgdHQoIlNwZWNpZmllZCBsaXN0IG9mIFlBTUwgdHlwZXMgKG9yIGEgc2luZ2xlIFR5cGUgb2JqZWN0KSBjb250YWlucyBhIG5vbi1UeXBlIG9iamVjdC4iKX0pKTt2YXIgbj1PYmplY3QuY3JlYXRlKFNjaGVtYSQxLnByb3RvdHlwZSk7cmV0dXJuIG4uaW1wbGljaXQ9KHRoaXMuaW1wbGljaXR8fFtdKS5jb25jYXQoZSksbi5leHBsaWNpdD0odGhpcy5leHBsaWNpdHx8W10pLmNvbmNhdChyKSxuLmNvbXBpbGVkSW1wbGljaXQ9Y29tcGlsZUxpc3QobiwiaW1wbGljaXQiKSxuLmNvbXBpbGVkRXhwbGljaXQ9Y29tcGlsZUxpc3QobiwiZXhwbGljaXQiKSxuLmNvbXBpbGVkVHlwZU1hcD1mdW5jdGlvbiBjb21waWxlTWFwKCl7dmFyIHQsZSxyPXtzY2FsYXI6e30sc2VxdWVuY2U6e30sbWFwcGluZzp7fSxmYWxsYmFjazp7fSxtdWx0aTp7c2NhbGFyOltdLHNlcXVlbmNlOltdLG1hcHBpbmc6W10sZmFsbGJhY2s6W119fTtmdW5jdGlvbiBjb2xsZWN0VHlwZSh0KXt0Lm11bHRpPyhyLm11bHRpW3Qua2luZF0ucHVzaCh0KSxyLm11bHRpLmZhbGxiYWNrLnB1c2godCkpOnJbdC5raW5kXVt0LnRhZ109ci5mYWxsYmFja1t0LnRhZ109dH1mb3IodD0wLGU9YXJndW1lbnRzLmxlbmd0aDt0PGU7dCs9MSlhcmd1bWVudHNbdF0uZm9yRWFjaChjb2xsZWN0VHlwZSk7cmV0dXJuIHJ9KG4uY29tcGlsZWRJbXBsaWNpdCxuLmNvbXBpbGVkRXhwbGljaXQpLG59O3ZhciBvdD1TY2hlbWEkMSxhdD1uZXcgaXQoInRhZzp5YW1sLm9yZywyMDAyOnN0ciIse2tpbmQ6InNjYWxhciIsY29uc3RydWN0OmZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT09dD90OiIifX0pLHN0PW5ldyBpdCgidGFnOnlhbWwub3JnLDIwMDI6c2VxIix7a2luZDoic2VxdWVuY2UiLGNvbnN0cnVjdDpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9PXQ/dDpbXX19KSx1dD1uZXcgaXQoInRhZzp5YW1sLm9yZywyMDAyOm1hcCIse2tpbmQ6Im1hcHBpbmciLGNvbnN0cnVjdDpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9PXQ/dDp7fX19KSxjdD1uZXcgb3Qoe2V4cGxpY2l0OlthdCxzdCx1dF19KTt2YXIgbHQ9bmV3IGl0KCJ0YWc6eWFtbC5vcmcsMjAwMjpudWxsIix7a2luZDoic2NhbGFyIixyZXNvbHZlOmZ1bmN0aW9uIHJlc29sdmVZYW1sTnVsbCh0KXtpZihudWxsPT09dClyZXR1cm4hMDt2YXIgZT10Lmxlbmd0aDtyZXR1cm4gMT09PWUmJiJ+Ij09PXR8fDQ9PT1lJiYoIm51bGwiPT09dHx8Ik51bGwiPT09dHx8Ik5VTEwiPT09dCl9LGNvbnN0cnVjdDpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sTnVsbCgpe3JldHVybiBudWxsfSxwcmVkaWNhdGU6ZnVuY3Rpb24gaXNOdWxsKHQpe3JldHVybiBudWxsPT09dH0scmVwcmVzZW50OntjYW5vbmljYWw6ZnVuY3Rpb24oKXtyZXR1cm4ifiJ9LGxvd2VyY2FzZTpmdW5jdGlvbigpe3JldHVybiJudWxsIn0sdXBwZXJjYXNlOmZ1bmN0aW9uKCl7cmV0dXJuIk5VTEwifSxjYW1lbGNhc2U6ZnVuY3Rpb24oKXtyZXR1cm4iTnVsbCJ9LGVtcHR5OmZ1bmN0aW9uKCl7cmV0dXJuIiJ9fSxkZWZhdWx0U3R5bGU6Imxvd2VyY2FzZSJ9KTt2YXIgaHQ9bmV3IGl0KCJ0YWc6eWFtbC5vcmcsMjAwMjpib29sIix7a2luZDoic2NhbGFyIixyZXNvbHZlOmZ1bmN0aW9uIHJlc29sdmVZYW1sQm9vbGVhbih0KXtpZihudWxsPT09dClyZXR1cm4hMTt2YXIgZT10Lmxlbmd0aDtyZXR1cm4gND09PWUmJigidHJ1ZSI9PT10fHwiVHJ1ZSI9PT10fHwiVFJVRSI9PT10KXx8NT09PWUmJigiZmFsc2UiPT09dHx8IkZhbHNlIj09PXR8fCJGQUxTRSI9PT10KX0sY29uc3RydWN0OmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxCb29sZWFuKHQpe3JldHVybiJ0cnVlIj09PXR8fCJUcnVlIj09PXR8fCJUUlVFIj09PXR9LHByZWRpY2F0ZTpmdW5jdGlvbiBpc0Jvb2xlYW4odCl7cmV0dXJuIltvYmplY3QgQm9vbGVhbl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSxyZXByZXNlbnQ6e2xvd2VyY2FzZTpmdW5jdGlvbih0KXtyZXR1cm4gdD8idHJ1ZSI6ImZhbHNlIn0sdXBwZXJjYXNlOmZ1bmN0aW9uKHQpe3JldHVybiB0PyJUUlVFIjoiRkFMU0UifSxjYW1lbGNhc2U6ZnVuY3Rpb24odCl7cmV0dXJuIHQ/IlRydWUiOiJGYWxzZSJ9fSxkZWZhdWx0U3R5bGU6Imxvd2VyY2FzZSJ9KTtmdW5jdGlvbiBpc09jdENvZGUodCl7cmV0dXJuIDQ4PD10JiZ0PD01NX1mdW5jdGlvbiBpc0RlY0NvZGUodCl7cmV0dXJuIDQ4PD10JiZ0PD01N312YXIgcHQ9bmV3IGl0KCJ0YWc6eWFtbC5vcmcsMjAwMjppbnQiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6ZnVuY3Rpb24gcmVzb2x2ZVlhbWxJbnRlZ2VyKHQpe2lmKG51bGw9PT10KXJldHVybiExO3ZhciBlLHIsbj10Lmxlbmd0aCxpPTAsbz0hMTtpZighbilyZXR1cm4hMTtpZigiLSIhPT0oZT10W2ldKSYmIisiIT09ZXx8KGU9dFsrK2ldKSwiMCI9PT1lKXtpZihpKzE9PT1uKXJldHVybiEwO2lmKCJiIj09PShlPXRbKytpXSkpe2ZvcihpKys7aTxuO2krKylpZigiXyIhPT0oZT10W2ldKSl7aWYoIjAiIT09ZSYmIjEiIT09ZSlyZXR1cm4hMTtvPSEwfXJldHVybiBvJiYiXyIhPT1lfWlmKCJ4Ij09PWUpe2ZvcihpKys7aTxuO2krKylpZigiXyIhPT0oZT10W2ldKSl7aWYoISg0ODw9KHI9dC5jaGFyQ29kZUF0KGkpKSYmcjw9NTd8fDY1PD1yJiZyPD03MHx8OTc8PXImJnI8PTEwMikpcmV0dXJuITE7bz0hMH1yZXR1cm4gbyYmIl8iIT09ZX1pZigibyI9PT1lKXtmb3IoaSsrO2k8bjtpKyspaWYoIl8iIT09KGU9dFtpXSkpe2lmKCFpc09jdENvZGUodC5jaGFyQ29kZUF0KGkpKSlyZXR1cm4hMTtvPSEwfXJldHVybiBvJiYiXyIhPT1lfX1pZigiXyI9PT1lKXJldHVybiExO2Zvcig7aTxuO2krKylpZigiXyIhPT0oZT10W2ldKSl7aWYoIWlzRGVjQ29kZSh0LmNoYXJDb2RlQXQoaSkpKXJldHVybiExO289ITB9cmV0dXJuISghb3x8Il8iPT09ZSl9LGNvbnN0cnVjdDpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sSW50ZWdlcih0KXt2YXIgZSxyPXQsbj0xO2lmKC0xIT09ci5pbmRleE9mKCJfIikmJihyPXIucmVwbGFjZSgvXy9nLCIiKSksIi0iIT09KGU9clswXSkmJiIrIiE9PWV8fCgiLSI9PT1lJiYobj0tMSksZT0ocj1yLnNsaWNlKDEpKVswXSksIjAiPT09cilyZXR1cm4gMDtpZigiMCI9PT1lKXtpZigiYiI9PT1yWzFdKXJldHVybiBuKnBhcnNlSW50KHIuc2xpY2UoMiksMik7aWYoIngiPT09clsxXSlyZXR1cm4gbipwYXJzZUludChyLnNsaWNlKDIpLDE2KTtpZigibyI9PT1yWzFdKXJldHVybiBuKnBhcnNlSW50KHIuc2xpY2UoMiksOCl9cmV0dXJuIG4qcGFyc2VJbnQociwxMCl9LHByZWRpY2F0ZTpmdW5jdGlvbiBpc0ludGVnZXIodCl7cmV0dXJuIltvYmplY3QgTnVtYmVyXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkmJnQlMT09MCYmIUouaXNOZWdhdGl2ZVplcm8odCl9LHJlcHJlc2VudDp7YmluYXJ5OmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0wPyIwYiIrdC50b1N0cmluZygyKToiLTBiIit0LnRvU3RyaW5nKDIpLnNsaWNlKDEpfSxvY3RhbDpmdW5jdGlvbih0KXtyZXR1cm4gdD49MD8iMG8iK3QudG9TdHJpbmcoOCk6Ii0wbyIrdC50b1N0cmluZyg4KS5zbGljZSgxKX0sZGVjaW1hbDpmdW5jdGlvbih0KXtyZXR1cm4gdC50b1N0cmluZygxMCl9LGhleGFkZWNpbWFsOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0wPyIweCIrdC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKToiLTB4Iit0LnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpLnNsaWNlKDEpfX0sZGVmYXVsdFN0eWxlOiJkZWNpbWFsIixzdHlsZUFsaWFzZXM6e2JpbmFyeTpbMiwiYmluIl0sb2N0YWw6WzgsIm9jdCJdLGRlY2ltYWw6WzEwLCJkZWMiXSxoZXhhZGVjaW1hbDpbMTYsImhleCJdfX0pLGR0PW5ldyBSZWdFeHAoIl4oPzpbLStdPyg/OlswLTldWzAtOV9dKikoPzpcXC5bMC05X10qKT8oPzpbZUVdWy0rXT9bMC05XSspP3xcXC5bMC05X10rKD86W2VFXVstK10/WzAtOV0rKT98Wy0rXT9cXC4oPzppbmZ8SW5mfElORil8XFwuKD86bmFufE5hTnxOQU4pKSQiKTt2YXIgX3Q9L15bLStdP1swLTldK2UvO3ZhciB5dD1uZXcgaXQoInRhZzp5YW1sLm9yZywyMDAyOmZsb2F0Iix7a2luZDoic2NhbGFyIixyZXNvbHZlOmZ1bmN0aW9uIHJlc29sdmVZYW1sRmxvYXQodCl7cmV0dXJuIG51bGwhPT10JiYhKCFkdC50ZXN0KHQpfHwiXyI9PT10W3QubGVuZ3RoLTFdKX0sY29uc3RydWN0OmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxGbG9hdCh0KXt2YXIgZSxyO3JldHVybiByPSItIj09PShlPXQucmVwbGFjZSgvXy9nLCIiKS50b0xvd2VyQ2FzZSgpKVswXT8tMToxLCIrLSIuaW5kZXhPZihlWzBdKT49MCYmKGU9ZS5zbGljZSgxKSksIi5pbmYiPT09ZT8xPT09cj9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk6TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOiIubmFuIj09PWU/TmFOOnIqcGFyc2VGbG9hdChlLDEwKX0scHJlZGljYXRlOmZ1bmN0aW9uIGlzRmxvYXQodCl7cmV0dXJuIltvYmplY3QgTnVtYmVyXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkmJih0JTEhPTB8fEouaXNOZWdhdGl2ZVplcm8odCkpfSxyZXByZXNlbnQ6ZnVuY3Rpb24gcmVwcmVzZW50WWFtbEZsb2F0KHQsZSl7dmFyIHI7aWYoaXNOYU4odCkpc3dpdGNoKGUpe2Nhc2UibG93ZXJjYXNlIjpyZXR1cm4iLm5hbiI7Y2FzZSJ1cHBlcmNhc2UiOnJldHVybiIuTkFOIjtjYXNlImNhbWVsY2FzZSI6cmV0dXJuIi5OYU4ifWVsc2UgaWYoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZPT09dClzd2l0Y2goZSl7Y2FzZSJsb3dlcmNhc2UiOnJldHVybiIuaW5mIjtjYXNlInVwcGVyY2FzZSI6cmV0dXJuIi5JTkYiO2Nhc2UiY2FtZWxjYXNlIjpyZXR1cm4iLkluZiJ9ZWxzZSBpZihOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk9PT10KXN3aXRjaChlKXtjYXNlImxvd2VyY2FzZSI6cmV0dXJuIi0uaW5mIjtjYXNlInVwcGVyY2FzZSI6cmV0dXJuIi0uSU5GIjtjYXNlImNhbWVsY2FzZSI6cmV0dXJuIi0uSW5mIn1lbHNlIGlmKEouaXNOZWdhdGl2ZVplcm8odCkpcmV0dXJuIi0wLjAiO3JldHVybiByPXQudG9TdHJpbmcoMTApLF90LnRlc3Qocik/ci5yZXBsYWNlKCJlIiwiLmUiKTpyfSxkZWZhdWx0U3R5bGU6Imxvd2VyY2FzZSJ9KSxtdD1jdC5leHRlbmQoe2ltcGxpY2l0OltsdCxodCxwdCx5dF19KSxndD1tdCx2dD1uZXcgUmVnRXhwKCJeKFswLTldWzAtOV1bMC05XVswLTldKS0oWzAtOV1bMC05XSktKFswLTldWzAtOV0pJCIpLGJ0PW5ldyBSZWdFeHAoIl4oWzAtOV1bMC05XVswLTldWzAtOV0pLShbMC05XVswLTldPyktKFswLTldWzAtOV0/KSg/OltUdF18WyBcXHRdKykoWzAtOV1bMC05XT8pOihbMC05XVswLTldKTooWzAtOV1bMC05XSkoPzpcXC4oWzAtOV0qKSk/KD86WyBcXHRdKihafChbLStdKShbMC05XVswLTldPykoPzo6KFswLTldWzAtOV0pKT8pKT8kIik7dmFyIFN0PW5ldyBpdCgidGFnOnlhbWwub3JnLDIwMDI6dGltZXN0YW1wIix7a2luZDoic2NhbGFyIixyZXNvbHZlOmZ1bmN0aW9uIHJlc29sdmVZYW1sVGltZXN0YW1wKHQpe3JldHVybiBudWxsIT09dCYmKG51bGwhPT12dC5leGVjKHQpfHxudWxsIT09YnQuZXhlYyh0KSl9LGNvbnN0cnVjdDpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sVGltZXN0YW1wKHQpe3ZhciBlLHIsbixpLG8sYSxzLHUsYz0wLGY9bnVsbDtpZihudWxsPT09KGU9dnQuZXhlYyh0KSkmJihlPWJ0LmV4ZWModCkpLG51bGw9PT1lKXRocm93IG5ldyBFcnJvcigiRGF0ZSByZXNvbHZlIGVycm9yIik7aWYocj0rZVsxXSxuPStlWzJdLTEsaT0rZVszXSwhZVs0XSlyZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEMocixuLGkpKTtpZihvPStlWzRdLGE9K2VbNV0scz0rZVs2XSxlWzddKXtmb3IoYz1lWzddLnNsaWNlKDAsMyk7Yy5sZW5ndGg8MzspYys9IjAiO2M9K2N9cmV0dXJuIGVbOV0mJihmPTZlNCooNjAqK2VbMTBdKyArKGVbMTFdfHwwKSksIi0iPT09ZVs5XSYmKGY9LWYpKSx1PW5ldyBEYXRlKERhdGUuVVRDKHIsbixpLG8sYSxzLGMpKSxmJiZ1LnNldFRpbWUodS5nZXRUaW1lKCktZiksdX0saW5zdGFuY2VPZjpEYXRlLHJlcHJlc2VudDpmdW5jdGlvbiByZXByZXNlbnRZYW1sVGltZXN0YW1wKHQpe3JldHVybiB0LnRvSVNPU3RyaW5nKCl9fSk7dmFyIHd0PW5ldyBpdCgidGFnOnlhbWwub3JnLDIwMDI6bWVyZ2UiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6ZnVuY3Rpb24gcmVzb2x2ZVlhbWxNZXJnZSh0KXtyZXR1cm4iPDwiPT09dHx8bnVsbD09PXR9fSksSXQ9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89XG5cciI7dmFyIHh0PW5ldyBpdCgidGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5Iix7a2luZDoic2NhbGFyIixyZXNvbHZlOmZ1bmN0aW9uIHJlc29sdmVZYW1sQmluYXJ5KHQpe2lmKG51bGw9PT10KXJldHVybiExO3ZhciBlLHIsbj0wLGk9dC5sZW5ndGgsbz1JdDtmb3Iocj0wO3I8aTtyKyspaWYoISgoZT1vLmluZGV4T2YodC5jaGFyQXQocikpKT42NCkpe2lmKGU8MClyZXR1cm4hMTtuKz02fXJldHVybiBuJTg9PTB9LGNvbnN0cnVjdDpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sQmluYXJ5KHQpe3ZhciBlLHIsbj10LnJlcGxhY2UoL1tcclxuPV0vZywiIiksaT1uLmxlbmd0aCxvPUl0LGE9MCxzPVtdO2ZvcihlPTA7ZTxpO2UrKyllJTQ9PTAmJmUmJihzLnB1c2goYT4+MTYmMjU1KSxzLnB1c2goYT4+OCYyNTUpLHMucHVzaCgyNTUmYSkpLGE9YTw8NnxvLmluZGV4T2Yobi5jaGFyQXQoZSkpO3JldHVybiAwPT09KHI9aSU0KjYpPyhzLnB1c2goYT4+MTYmMjU1KSxzLnB1c2goYT4+OCYyNTUpLHMucHVzaCgyNTUmYSkpOjE4PT09cj8ocy5wdXNoKGE+PjEwJjI1NSkscy5wdXNoKGE+PjImMjU1KSk6MTI9PT1yJiZzLnB1c2goYT4+NCYyNTUpLG5ldyBVaW50OEFycmF5KHMpfSxwcmVkaWNhdGU6ZnVuY3Rpb24gaXNCaW5hcnkodCl7cmV0dXJuIltvYmplY3QgVWludDhBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSxyZXByZXNlbnQ6ZnVuY3Rpb24gcmVwcmVzZW50WWFtbEJpbmFyeSh0KXt2YXIgZSxyLG49IiIsaT0wLG89dC5sZW5ndGgsYT1JdDtmb3IoZT0wO2U8bztlKyspZSUzPT0wJiZlJiYobis9YVtpPj4xOCY2M10sbis9YVtpPj4xMiY2M10sbis9YVtpPj42JjYzXSxuKz1hWzYzJmldKSxpPShpPDw4KSt0W2VdO3JldHVybiAwPT09KHI9byUzKT8obis9YVtpPj4xOCY2M10sbis9YVtpPj4xMiY2M10sbis9YVtpPj42JjYzXSxuKz1hWzYzJmldKToyPT09cj8obis9YVtpPj4xMCY2M10sbis9YVtpPj40JjYzXSxuKz1hW2k8PDImNjNdLG4rPWFbNjRdKToxPT09ciYmKG4rPWFbaT4+MiY2M10sbis9YVtpPDw0JjYzXSxuKz1hWzY0XSxuKz1hWzY0XSksbn19KSxFdD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LE90PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dmFyIEJ0PW5ldyBpdCgidGFnOnlhbWwub3JnLDIwMDI6b21hcCIse2tpbmQ6InNlcXVlbmNlIixyZXNvbHZlOmZ1bmN0aW9uIHJlc29sdmVZYW1sT21hcCh0KXtpZihudWxsPT09dClyZXR1cm4hMDt2YXIgZSxyLG4saSxvLGE9W10scz10O2ZvcihlPTAscj1zLmxlbmd0aDtlPHI7ZSs9MSl7aWYobj1zW2VdLG89ITEsIltvYmplY3QgT2JqZWN0XSIhPT1PdC5jYWxsKG4pKXJldHVybiExO2ZvcihpIGluIG4paWYoRXQuY2FsbChuLGkpKXtpZihvKXJldHVybiExO289ITB9aWYoIW8pcmV0dXJuITE7aWYoLTEhPT1hLmluZGV4T2YoaSkpcmV0dXJuITE7YS5wdXNoKGkpfXJldHVybiEwfSxjb25zdHJ1Y3Q6ZnVuY3Rpb24gY29uc3RydWN0WWFtbE9tYXAodCl7cmV0dXJuIG51bGwhPT10P3Q6W119fSksa3Q9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzt2YXIgQXQ9bmV3IGl0KCJ0YWc6eWFtbC5vcmcsMjAwMjpwYWlycyIse2tpbmQ6InNlcXVlbmNlIixyZXNvbHZlOmZ1bmN0aW9uIHJlc29sdmVZYW1sUGFpcnModCl7aWYobnVsbD09PXQpcmV0dXJuITA7dmFyIGUscixuLGksbyxhPXQ7Zm9yKG89bmV3IEFycmF5KGEubGVuZ3RoKSxlPTAscj1hLmxlbmd0aDtlPHI7ZSs9MSl7aWYobj1hW2VdLCJbb2JqZWN0IE9iamVjdF0iIT09a3QuY2FsbChuKSlyZXR1cm4hMTtpZigxIT09KGk9T2JqZWN0LmtleXMobikpLmxlbmd0aClyZXR1cm4hMTtvW2VdPVtpWzBdLG5baVswXV1dfXJldHVybiEwfSxjb25zdHJ1Y3Q6ZnVuY3Rpb24gY29uc3RydWN0WWFtbFBhaXJzKHQpe2lmKG51bGw9PT10KXJldHVybltdO3ZhciBlLHIsbixpLG8sYT10O2ZvcihvPW5ldyBBcnJheShhLmxlbmd0aCksZT0wLHI9YS5sZW5ndGg7ZTxyO2UrPTEpbj1hW2VdLGk9T2JqZWN0LmtleXMobiksb1tlXT1baVswXSxuW2lbMF1dXTtyZXR1cm4gb319KSxDdD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBNdD1uZXcgaXQoInRhZzp5YW1sLm9yZywyMDAyOnNldCIse2tpbmQ6Im1hcHBpbmciLHJlc29sdmU6ZnVuY3Rpb24gcmVzb2x2ZVlhbWxTZXQodCl7aWYobnVsbD09PXQpcmV0dXJuITA7dmFyIGUscj10O2ZvcihlIGluIHIpaWYoQ3QuY2FsbChyLGUpJiZudWxsIT09cltlXSlyZXR1cm4hMTtyZXR1cm4hMH0sY29uc3RydWN0OmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxTZXQodCl7cmV0dXJuIG51bGwhPT10P3Q6e319fSkscXQ9Z3QuZXh0ZW5kKHtpbXBsaWNpdDpbU3Qsd3RdLGV4cGxpY2l0Olt4dCxCdCxBdCxNdF19KSxMdD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LE50PS9bXHgwMC1ceDA4XHgwQlx4MENceDBFLVx4MUZceDdGLVx4ODRceDg2LVx4OUZcdUZGRkVcdUZGRkZdfFtcdUQ4MDAtXHVEQkZGXSg/IVtcdURDMDAtXHVERkZGXSl8KD86W15cdUQ4MDAtXHVEQkZGXXxeKVtcdURDMDAtXHVERkZGXS8sanQ9L1tceDg1XHUyMDI4XHUyMDI5XS8sVHQ9L1ssXFtcXVx7XH1dLyxSdD0vXig/OiF8ISF8IVthLXpcLV0rISkkL2ksenQ9L14oPzohfFteLFxbXF1ce1x9XSkoPzolWzAtOWEtZl17Mn18WzAtOWEtelwtIztcL1w/OkAmPVwrXCQsX1wuIX5cKidcKFwpXFtcXV0pKiQvaTtmdW5jdGlvbiBfY2xhc3ModCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBpc19FT0wodCl7cmV0dXJuIDEwPT09dHx8MTM9PT10fWZ1bmN0aW9uIGlzX1dISVRFX1NQQUNFKHQpe3JldHVybiA5PT09dHx8MzI9PT10fWZ1bmN0aW9uIGlzX1dTX09SX0VPTCh0KXtyZXR1cm4gOT09PXR8fDMyPT09dHx8MTA9PT10fHwxMz09PXR9ZnVuY3Rpb24gaXNfRkxPV19JTkRJQ0FUT1IodCl7cmV0dXJuIDQ0PT09dHx8OTE9PT10fHw5Mz09PXR8fDEyMz09PXR8fDEyNT09PXR9ZnVuY3Rpb24gZnJvbUhleENvZGUodCl7dmFyIGU7cmV0dXJuIDQ4PD10JiZ0PD01Nz90LTQ4Ojk3PD0oZT0zMnx0KSYmZTw9MTAyP2UtOTcrMTA6LTF9ZnVuY3Rpb24gc2ltcGxlRXNjYXBlU2VxdWVuY2UodCl7cmV0dXJuIDQ4PT09dD8iXDAiOjk3PT09dD8iByI6OTg9PT10PyJcYiI6MTE2PT09dHx8OT09PXQ/Ilx0IjoxMTA9PT10PyJcbiI6MTE4PT09dD8iXHYiOjEwMj09PXQ/IlxmIjoxMTQ9PT10PyJcciI6MTAxPT09dD8iGyI6MzI9PT10PyIgIjozND09PXQ/JyInOjQ3PT09dD8iLyI6OTI9PT10PyJcXCI6Nzg9PT10PyLChSI6OTU9PT10PyLCoCI6NzY9PT10PyJcdTIwMjgiOjgwPT09dD8iXHUyMDI5IjoiIn1mdW5jdGlvbiBjaGFyRnJvbUNvZGVwb2ludCh0KXtyZXR1cm4gdDw9NjU1MzU/U3RyaW5nLmZyb21DaGFyQ29kZSh0KTpTdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2Kyh0LTY1NTM2Pj4xMCksNTYzMjArKHQtNjU1MzYmMTAyMykpfWZvcih2YXIgUHQ9bmV3IEFycmF5KDI1NiksRnQ9bmV3IEFycmF5KDI1NiksRHQ9MDtEdDwyNTY7RHQrKylQdFtEdF09c2ltcGxlRXNjYXBlU2VxdWVuY2UoRHQpPzE6MCxGdFtEdF09c2ltcGxlRXNjYXBlU2VxdWVuY2UoRHQpO2Z1bmN0aW9uIFN0YXRlJDEodCxlKXt0aGlzLmlucHV0PXQsdGhpcy5maWxlbmFtZT1lLmZpbGVuYW1lfHxudWxsLHRoaXMuc2NoZW1hPWUuc2NoZW1hfHxxdCx0aGlzLm9uV2FybmluZz1lLm9uV2FybmluZ3x8bnVsbCx0aGlzLmxlZ2FjeT1lLmxlZ2FjeXx8ITEsdGhpcy5qc29uPWUuanNvbnx8ITEsdGhpcy5saXN0ZW5lcj1lLmxpc3RlbmVyfHxudWxsLHRoaXMuaW1wbGljaXRUeXBlcz10aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0LHRoaXMudHlwZU1hcD10aGlzLnNjaGVtYS5jb21waWxlZFR5cGVNYXAsdGhpcy5sZW5ndGg9dC5sZW5ndGgsdGhpcy5wb3NpdGlvbj0wLHRoaXMubGluZT0wLHRoaXMubGluZVN0YXJ0PTAsdGhpcy5saW5lSW5kZW50PTAsdGhpcy5maXJzdFRhYkluTGluZT0tMSx0aGlzLmRvY3VtZW50cz1bXX1mdW5jdGlvbiBnZW5lcmF0ZUVycm9yKHQsZSl7dmFyIHI9e25hbWU6dC5maWxlbmFtZSxidWZmZXI6dC5pbnB1dC5zbGljZSgwLC0xKSxwb3NpdGlvbjp0LnBvc2l0aW9uLGxpbmU6dC5saW5lLGNvbHVtbjp0LnBvc2l0aW9uLXQubGluZVN0YXJ0fTtyZXR1cm4gci5zbmlwcGV0PWV0KHIpLG5ldyB0dChlLHIpfWZ1bmN0aW9uIHRocm93RXJyb3IodCxlKXt0aHJvdyBnZW5lcmF0ZUVycm9yKHQsZSl9ZnVuY3Rpb24gdGhyb3dXYXJuaW5nKHQsZSl7dC5vbldhcm5pbmcmJnQub25XYXJuaW5nLmNhbGwobnVsbCxnZW5lcmF0ZUVycm9yKHQsZSkpfXZhciBVdD17WUFNTDpmdW5jdGlvbiBoYW5kbGVZYW1sRGlyZWN0aXZlKHQsZSxyKXt2YXIgbixpLG87bnVsbCE9PXQudmVyc2lvbiYmdGhyb3dFcnJvcih0LCJkdXBsaWNhdGlvbiBvZiAlWUFNTCBkaXJlY3RpdmUiKSwxIT09ci5sZW5ndGgmJnRocm93RXJyb3IodCwiWUFNTCBkaXJlY3RpdmUgYWNjZXB0cyBleGFjdGx5IG9uZSBhcmd1bWVudCIpLG51bGw9PT0obj0vXihbMC05XSspXC4oWzAtOV0rKSQvLmV4ZWMoclswXSkpJiZ0aHJvd0Vycm9yKHQsImlsbC1mb3JtZWQgYXJndW1lbnQgb2YgdGhlIFlBTUwgZGlyZWN0aXZlIiksaT1wYXJzZUludChuWzFdLDEwKSxvPXBhcnNlSW50KG5bMl0sMTApLDEhPT1pJiZ0aHJvd0Vycm9yKHQsInVuYWNjZXB0YWJsZSBZQU1MIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50IiksdC52ZXJzaW9uPXJbMF0sdC5jaGVja0xpbmVCcmVha3M9bzwyLDEhPT1vJiYyIT09byYmdGhyb3dXYXJuaW5nKHQsInVuc3VwcG9ydGVkIFlBTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQiKX0sVEFHOmZ1bmN0aW9uIGhhbmRsZVRhZ0RpcmVjdGl2ZSh0LGUscil7dmFyIG4saTsyIT09ci5sZW5ndGgmJnRocm93RXJyb3IodCwiVEFHIGRpcmVjdGl2ZSBhY2NlcHRzIGV4YWN0bHkgdHdvIGFyZ3VtZW50cyIpLG49clswXSxpPXJbMV0sUnQudGVzdChuKXx8dGhyb3dFcnJvcih0LCJpbGwtZm9ybWVkIHRhZyBoYW5kbGUgKGZpcnN0IGFyZ3VtZW50KSBvZiB0aGUgVEFHIGRpcmVjdGl2ZSIpLEx0LmNhbGwodC50YWdNYXAsbikmJnRocm93RXJyb3IodCwndGhlcmUgaXMgYSBwcmV2aW91c2x5IGRlY2xhcmVkIHN1ZmZpeCBmb3IgIicrbisnIiB0YWcgaGFuZGxlJyksenQudGVzdChpKXx8dGhyb3dFcnJvcih0LCJpbGwtZm9ybWVkIHRhZyBwcmVmaXggKHNlY29uZCBhcmd1bWVudCkgb2YgdGhlIFRBRyBkaXJlY3RpdmUiKTt0cnl7aT1kZWNvZGVVUklDb21wb25lbnQoaSl9Y2F0Y2goZSl7dGhyb3dFcnJvcih0LCJ0YWcgcHJlZml4IGlzIG1hbGZvcm1lZDogIitpKX10LnRhZ01hcFtuXT1pfX07ZnVuY3Rpb24gY2FwdHVyZVNlZ21lbnQodCxlLHIsbil7dmFyIGksbyxhLHM7aWYoZTxyKXtpZihzPXQuaW5wdXQuc2xpY2UoZSxyKSxuKWZvcihpPTAsbz1zLmxlbmd0aDtpPG87aSs9MSk5PT09KGE9cy5jaGFyQ29kZUF0KGkpKXx8MzI8PWEmJmE8PTExMTQxMTF8fHRocm93RXJyb3IodCwiZXhwZWN0ZWQgdmFsaWQgSlNPTiBjaGFyYWN0ZXIiKTtlbHNlIE50LnRlc3QocykmJnRocm93RXJyb3IodCwidGhlIHN0cmVhbSBjb250YWlucyBub24tcHJpbnRhYmxlIGNoYXJhY3RlcnMiKTt0LnJlc3VsdCs9c319ZnVuY3Rpb24gbWVyZ2VNYXBwaW5ncyh0LGUscixuKXt2YXIgaSxvLGEscztmb3IoSi5pc09iamVjdChyKXx8dGhyb3dFcnJvcih0LCJjYW5ub3QgbWVyZ2UgbWFwcGluZ3M7IHRoZSBwcm92aWRlZCBzb3VyY2Ugb2JqZWN0IGlzIHVuYWNjZXB0YWJsZSIpLGE9MCxzPShpPU9iamVjdC5rZXlzKHIpKS5sZW5ndGg7YTxzO2ErPTEpbz1pW2FdLEx0LmNhbGwoZSxvKXx8KGVbb109cltvXSxuW29dPSEwKX1mdW5jdGlvbiBzdG9yZU1hcHBpbmdQYWlyKHQsZSxyLG4saSxvLGEscyx1KXt2YXIgYyxmO2lmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGM9MCxmPShpPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGkpKS5sZW5ndGg7YzxmO2MrPTEpQXJyYXkuaXNBcnJheShpW2NdKSYmdGhyb3dFcnJvcih0LCJuZXN0ZWQgYXJyYXlzIGFyZSBub3Qgc3VwcG9ydGVkIGluc2lkZSBrZXlzIiksIm9iamVjdCI9PXR5cGVvZiBpJiYiW29iamVjdCBPYmplY3RdIj09PV9jbGFzcyhpW2NdKSYmKGlbY109IltvYmplY3QgT2JqZWN0XSIpO2lmKCJvYmplY3QiPT10eXBlb2YgaSYmIltvYmplY3QgT2JqZWN0XSI9PT1fY2xhc3MoaSkmJihpPSJbb2JqZWN0IE9iamVjdF0iKSxpPVN0cmluZyhpKSxudWxsPT09ZSYmKGU9e30pLCJ0YWc6eWFtbC5vcmcsMjAwMjptZXJnZSI9PT1uKWlmKEFycmF5LmlzQXJyYXkobykpZm9yKGM9MCxmPW8ubGVuZ3RoO2M8ZjtjKz0xKW1lcmdlTWFwcGluZ3ModCxlLG9bY10scik7ZWxzZSBtZXJnZU1hcHBpbmdzKHQsZSxvLHIpO2Vsc2UgdC5qc29ufHxMdC5jYWxsKHIsaSl8fCFMdC5jYWxsKGUsaSl8fCh0LmxpbmU9YXx8dC5saW5lLHQubGluZVN0YXJ0PXN8fHQubGluZVN0YXJ0LHQucG9zaXRpb249dXx8dC5wb3NpdGlvbix0aHJvd0Vycm9yKHQsImR1cGxpY2F0ZWQgbWFwcGluZyBrZXkiKSksIl9fcHJvdG9fXyI9PT1pP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGkse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KTplW2ldPW8sZGVsZXRlIHJbaV07cmV0dXJuIGV9ZnVuY3Rpb24gcmVhZExpbmVCcmVhayh0KXt2YXIgZTsxMD09PShlPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSk/dC5wb3NpdGlvbisrOjEzPT09ZT8odC5wb3NpdGlvbisrLDEwPT09dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pJiZ0LnBvc2l0aW9uKyspOnRocm93RXJyb3IodCwiYSBsaW5lIGJyZWFrIGlzIGV4cGVjdGVkIiksdC5saW5lKz0xLHQubGluZVN0YXJ0PXQucG9zaXRpb24sdC5maXJzdFRhYkluTGluZT0tMX1mdW5jdGlvbiBza2lwU2VwYXJhdGlvblNwYWNlKHQsZSxyKXtmb3IodmFyIG49MCxpPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKTswIT09aTspe2Zvcig7aXNfV0hJVEVfU1BBQ0UoaSk7KTk9PT1pJiYtMT09PXQuZmlyc3RUYWJJbkxpbmUmJih0LmZpcnN0VGFiSW5MaW5lPXQucG9zaXRpb24pLGk9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7aWYoZSYmMzU9PT1pKWRve2k9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbil9d2hpbGUoMTAhPT1pJiYxMyE9PWkmJjAhPT1pKTtpZighaXNfRU9MKGkpKWJyZWFrO2ZvcihyZWFkTGluZUJyZWFrKHQpLGk9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLG4rKyx0LmxpbmVJbmRlbnQ9MDszMj09PWk7KXQubGluZUluZGVudCsrLGk9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbil9cmV0dXJuLTEhPT1yJiYwIT09biYmdC5saW5lSW5kZW50PHImJnRocm93V2FybmluZyh0LCJkZWZpY2llbnQgaW5kZW50YXRpb24iKSxufWZ1bmN0aW9uIHRlc3REb2N1bWVudFNlcGFyYXRvcih0KXt2YXIgZSxyPXQucG9zaXRpb247cmV0dXJuISg0NSE9PShlPXQuaW5wdXQuY2hhckNvZGVBdChyKSkmJjQ2IT09ZXx8ZSE9PXQuaW5wdXQuY2hhckNvZGVBdChyKzEpfHxlIT09dC5pbnB1dC5jaGFyQ29kZUF0KHIrMil8fChyKz0zLDAhPT0oZT10LmlucHV0LmNoYXJDb2RlQXQocikpJiYhaXNfV1NfT1JfRU9MKGUpKSl9ZnVuY3Rpb24gd3JpdGVGb2xkZWRMaW5lcyh0LGUpezE9PT1lP3QucmVzdWx0Kz0iICI6ZT4xJiYodC5yZXN1bHQrPUoucmVwZWF0KCJcbiIsZS0xKSl9ZnVuY3Rpb24gcmVhZEJsb2NrU2VxdWVuY2UodCxlKXt2YXIgcixuLGk9dC50YWcsbz10LmFuY2hvcixhPVtdLHM9ITE7aWYoLTEhPT10LmZpcnN0VGFiSW5MaW5lKXJldHVybiExO2ZvcihudWxsIT09dC5hbmNob3ImJih0LmFuY2hvck1hcFt0LmFuY2hvcl09YSksbj10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7MCE9PW4mJigtMSE9PXQuZmlyc3RUYWJJbkxpbmUmJih0LnBvc2l0aW9uPXQuZmlyc3RUYWJJbkxpbmUsdGhyb3dFcnJvcih0LCJ0YWIgY2hhcmFjdGVycyBtdXN0IG5vdCBiZSB1c2VkIGluIGluZGVudGF0aW9uIikpLDQ1PT09bikmJmlzX1dTX09SX0VPTCh0LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbisxKSk7KWlmKHM9ITAsdC5wb3NpdGlvbisrLHNraXBTZXBhcmF0aW9uU3BhY2UodCwhMCwtMSkmJnQubGluZUluZGVudDw9ZSlhLnB1c2gobnVsbCksbj10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7ZWxzZSBpZihyPXQubGluZSxjb21wb3NlTm9kZSh0LGUsMywhMSwhMCksYS5wdXNoKHQucmVzdWx0KSxza2lwU2VwYXJhdGlvblNwYWNlKHQsITAsLTEpLG49dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLCh0LmxpbmU9PT1yfHx0LmxpbmVJbmRlbnQ+ZSkmJjAhPT1uKXRocm93RXJyb3IodCwiYmFkIGluZGVudGF0aW9uIG9mIGEgc2VxdWVuY2UgZW50cnkiKTtlbHNlIGlmKHQubGluZUluZGVudDxlKWJyZWFrO3JldHVybiEhcyYmKHQudGFnPWksdC5hbmNob3I9byx0LmtpbmQ9InNlcXVlbmNlIix0LnJlc3VsdD1hLCEwKX1mdW5jdGlvbiByZWFkVGFnUHJvcGVydHkodCl7dmFyIGUscixuLGksbz0hMSxhPSExO2lmKDMzIT09KGk9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pKSlyZXR1cm4hMTtpZihudWxsIT09dC50YWcmJnRocm93RXJyb3IodCwiZHVwbGljYXRpb24gb2YgYSB0YWcgcHJvcGVydHkiKSw2MD09PShpPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pKT8obz0hMCxpPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pKTozMz09PWk/KGE9ITAscj0iISEiLGk9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbikpOnI9IiEiLGU9dC5wb3NpdGlvbixvKXtkb3tpPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pfXdoaWxlKDAhPT1pJiY2MiE9PWkpO3QucG9zaXRpb248dC5sZW5ndGg/KG49dC5pbnB1dC5zbGljZShlLHQucG9zaXRpb24pLGk9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbikpOnRocm93RXJyb3IodCwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSB2ZXJiYXRpbSB0YWciKX1lbHNle2Zvcig7MCE9PWkmJiFpc19XU19PUl9FT0woaSk7KTMzPT09aSYmKGE/dGhyb3dFcnJvcih0LCJ0YWcgc3VmZml4IGNhbm5vdCBjb250YWluIGV4Y2xhbWF0aW9uIG1hcmtzIik6KHI9dC5pbnB1dC5zbGljZShlLTEsdC5wb3NpdGlvbisxKSxSdC50ZXN0KHIpfHx0aHJvd0Vycm9yKHQsIm5hbWVkIHRhZyBoYW5kbGUgY2Fubm90IGNvbnRhaW4gc3VjaCBjaGFyYWN0ZXJzIiksYT0hMCxlPXQucG9zaXRpb24rMSkpLGk9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7bj10LmlucHV0LnNsaWNlKGUsdC5wb3NpdGlvbiksVHQudGVzdChuKSYmdGhyb3dFcnJvcih0LCJ0YWcgc3VmZml4IGNhbm5vdCBjb250YWluIGZsb3cgaW5kaWNhdG9yIGNoYXJhY3RlcnMiKX1uJiYhenQudGVzdChuKSYmdGhyb3dFcnJvcih0LCJ0YWcgbmFtZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnM6ICIrbik7dHJ5e249ZGVjb2RlVVJJQ29tcG9uZW50KG4pfWNhdGNoKGUpe3Rocm93RXJyb3IodCwidGFnIG5hbWUgaXMgbWFsZm9ybWVkOiAiK24pfXJldHVybiBvP3QudGFnPW46THQuY2FsbCh0LnRhZ01hcCxyKT90LnRhZz10LnRhZ01hcFtyXStuOiIhIj09PXI/dC50YWc9IiEiK246IiEhIj09PXI/dC50YWc9InRhZzp5YW1sLm9yZywyMDAyOiIrbjp0aHJvd0Vycm9yKHQsJ3VuZGVjbGFyZWQgdGFnIGhhbmRsZSAiJytyKyciJyksITB9ZnVuY3Rpb24gcmVhZEFuY2hvclByb3BlcnR5KHQpe3ZhciBlLHI7aWYoMzghPT0ocj10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbikpKXJldHVybiExO2ZvcihudWxsIT09dC5hbmNob3ImJnRocm93RXJyb3IodCwiZHVwbGljYXRpb24gb2YgYW4gYW5jaG9yIHByb3BlcnR5Iikscj10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSxlPXQucG9zaXRpb247MCE9PXImJiFpc19XU19PUl9FT0wocikmJiFpc19GTE9XX0lORElDQVRPUihyKTspcj10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTtyZXR1cm4gdC5wb3NpdGlvbj09PWUmJnRocm93RXJyb3IodCwibmFtZSBvZiBhbiBhbmNob3Igbm9kZSBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGNoYXJhY3RlciIpLHQuYW5jaG9yPXQuaW5wdXQuc2xpY2UoZSx0LnBvc2l0aW9uKSwhMH1mdW5jdGlvbiBjb21wb3NlTm9kZSh0LGUscixuLGkpe3ZhciBvLGEscyx1LGMsZixsLGgscCxkPTEsXz0hMSx5PSExO2lmKG51bGwhPT10Lmxpc3RlbmVyJiZ0Lmxpc3RlbmVyKCJvcGVuIix0KSx0LnRhZz1udWxsLHQuYW5jaG9yPW51bGwsdC5raW5kPW51bGwsdC5yZXN1bHQ9bnVsbCxvPWE9cz00PT09cnx8Mz09PXIsbiYmc2tpcFNlcGFyYXRpb25TcGFjZSh0LCEwLC0xKSYmKF89ITAsdC5saW5lSW5kZW50PmU/ZD0xOnQubGluZUluZGVudD09PWU/ZD0wOnQubGluZUluZGVudDxlJiYoZD0tMSkpLDE9PT1kKWZvcig7cmVhZFRhZ1Byb3BlcnR5KHQpfHxyZWFkQW5jaG9yUHJvcGVydHkodCk7KXNraXBTZXBhcmF0aW9uU3BhY2UodCwhMCwtMSk/KF89ITAscz1vLHQubGluZUluZGVudD5lP2Q9MTp0LmxpbmVJbmRlbnQ9PT1lP2Q9MDp0LmxpbmVJbmRlbnQ8ZSYmKGQ9LTEpKTpzPSExO2lmKHMmJihzPV98fGkpLDEhPT1kJiY0IT09cnx8KGg9MT09PXJ8fDI9PT1yP2U6ZSsxLHA9dC5wb3NpdGlvbi10LmxpbmVTdGFydCwxPT09ZD9zJiYocmVhZEJsb2NrU2VxdWVuY2UodCxwKXx8ZnVuY3Rpb24gcmVhZEJsb2NrTWFwcGluZyh0LGUscil7dmFyIG4saSxvLGEscyx1LGMsZj10LnRhZyxsPXQuYW5jaG9yLGg9e30scD1PYmplY3QuY3JlYXRlKG51bGwpLGQ9bnVsbCxfPW51bGwseT1udWxsLG09ITEsZz0hMTtpZigtMSE9PXQuZmlyc3RUYWJJbkxpbmUpcmV0dXJuITE7Zm9yKG51bGwhPT10LmFuY2hvciYmKHQuYW5jaG9yTWFwW3QuYW5jaG9yXT1oKSxjPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKTswIT09Yzspe2lmKG18fC0xPT09dC5maXJzdFRhYkluTGluZXx8KHQucG9zaXRpb249dC5maXJzdFRhYkluTGluZSx0aHJvd0Vycm9yKHQsInRhYiBjaGFyYWN0ZXJzIG11c3Qgbm90IGJlIHVzZWQgaW4gaW5kZW50YXRpb24iKSksbj10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbisxKSxvPXQubGluZSw2MyE9PWMmJjU4IT09Y3x8IWlzX1dTX09SX0VPTChuKSl7aWYoYT10LmxpbmUscz10LmxpbmVTdGFydCx1PXQucG9zaXRpb24sIWNvbXBvc2VOb2RlKHQsciwyLCExLCEwKSlicmVhaztpZih0LmxpbmU9PT1vKXtmb3IoYz10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7aXNfV0hJVEVfU1BBQ0UoYyk7KWM9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7aWYoNTg9PT1jKWlzX1dTX09SX0VPTChjPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pKXx8dGhyb3dFcnJvcih0LCJhIHdoaXRlc3BhY2UgY2hhcmFjdGVyIGlzIGV4cGVjdGVkIGFmdGVyIHRoZSBrZXktdmFsdWUgc2VwYXJhdG9yIHdpdGhpbiBhIGJsb2NrIG1hcHBpbmciKSxtJiYoc3RvcmVNYXBwaW5nUGFpcih0LGgscCxkLF8sbnVsbCxhLHMsdSksZD1fPXk9bnVsbCksZz0hMCxtPSExLGk9ITEsZD10LnRhZyxfPXQucmVzdWx0O2Vsc2V7aWYoIWcpcmV0dXJuIHQudGFnPWYsdC5hbmNob3I9bCwhMDt0aHJvd0Vycm9yKHQsImNhbiBub3QgcmVhZCBhbiBpbXBsaWNpdCBtYXBwaW5nIHBhaXI7IGEgY29sb24gaXMgbWlzc2VkIil9fWVsc2V7aWYoIWcpcmV0dXJuIHQudGFnPWYsdC5hbmNob3I9bCwhMDt0aHJvd0Vycm9yKHQsImNhbiBub3QgcmVhZCBhIGJsb2NrIG1hcHBpbmcgZW50cnk7IGEgbXVsdGlsaW5lIGtleSBtYXkgbm90IGJlIGFuIGltcGxpY2l0IGtleSIpfX1lbHNlIDYzPT09Yz8obSYmKHN0b3JlTWFwcGluZ1BhaXIodCxoLHAsZCxfLG51bGwsYSxzLHUpLGQ9Xz15PW51bGwpLGc9ITAsbT0hMCxpPSEwKTptPyhtPSExLGk9ITApOnRocm93RXJyb3IodCwiaW5jb21wbGV0ZSBleHBsaWNpdCBtYXBwaW5nIHBhaXI7IGEga2V5IG5vZGUgaXMgbWlzc2VkOyBvciBmb2xsb3dlZCBieSBhIG5vbi10YWJ1bGF0ZWQgZW1wdHkgbGluZSIpLHQucG9zaXRpb24rPTEsYz1uO2lmKCh0LmxpbmU9PT1vfHx0LmxpbmVJbmRlbnQ+ZSkmJihtJiYoYT10LmxpbmUscz10LmxpbmVTdGFydCx1PXQucG9zaXRpb24pLGNvbXBvc2VOb2RlKHQsZSw0LCEwLGkpJiYobT9fPXQucmVzdWx0Onk9dC5yZXN1bHQpLG18fChzdG9yZU1hcHBpbmdQYWlyKHQsaCxwLGQsXyx5LGEscyx1KSxkPV89eT1udWxsKSxza2lwU2VwYXJhdGlvblNwYWNlKHQsITAsLTEpLGM9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pKSwodC5saW5lPT09b3x8dC5saW5lSW5kZW50PmUpJiYwIT09Yyl0aHJvd0Vycm9yKHQsImJhZCBpbmRlbnRhdGlvbiBvZiBhIG1hcHBpbmcgZW50cnkiKTtlbHNlIGlmKHQubGluZUluZGVudDxlKWJyZWFrfXJldHVybiBtJiZzdG9yZU1hcHBpbmdQYWlyKHQsaCxwLGQsXyxudWxsLGEscyx1KSxnJiYodC50YWc9Zix0LmFuY2hvcj1sLHQua2luZD0ibWFwcGluZyIsdC5yZXN1bHQ9aCksZ30odCxwLGgpKXx8ZnVuY3Rpb24gcmVhZEZsb3dDb2xsZWN0aW9uKHQsZSl7dmFyIHIsbixpLG8sYSxzLHUsYyxmLGwsaCxwLGQ9ITAsXz10LnRhZyx5PXQuYW5jaG9yLG09T2JqZWN0LmNyZWF0ZShudWxsKTtpZig5MT09PShwPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSkpYT05MyxjPSExLG89W107ZWxzZXtpZigxMjMhPT1wKXJldHVybiExO2E9MTI1LGM9ITAsbz17fX1mb3IobnVsbCE9PXQuYW5jaG9yJiYodC5hbmNob3JNYXBbdC5hbmNob3JdPW8pLHA9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7MCE9PXA7KXtpZihza2lwU2VwYXJhdGlvblNwYWNlKHQsITAsZSksKHA9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pKT09PWEpcmV0dXJuIHQucG9zaXRpb24rKyx0LnRhZz1fLHQuYW5jaG9yPXksdC5raW5kPWM/Im1hcHBpbmciOiJzZXF1ZW5jZSIsdC5yZXN1bHQ9bywhMDtkPzQ0PT09cCYmdGhyb3dFcnJvcih0LCJleHBlY3RlZCB0aGUgbm9kZSBjb250ZW50LCBidXQgZm91bmQgJywnIik6dGhyb3dFcnJvcih0LCJtaXNzZWQgY29tbWEgYmV0d2VlbiBmbG93IGNvbGxlY3Rpb24gZW50cmllcyIpLGg9bnVsbCxzPXU9ITEsNjM9PT1wJiZpc19XU19PUl9FT0wodC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24rMSkpJiYocz11PSEwLHQucG9zaXRpb24rKyxza2lwU2VwYXJhdGlvblNwYWNlKHQsITAsZSkpLHI9dC5saW5lLG49dC5saW5lU3RhcnQsaT10LnBvc2l0aW9uLGNvbXBvc2VOb2RlKHQsZSwxLCExLCEwKSxsPXQudGFnLGY9dC5yZXN1bHQsc2tpcFNlcGFyYXRpb25TcGFjZSh0LCEwLGUpLHA9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLCF1JiZ0LmxpbmUhPT1yfHw1OCE9PXB8fChzPSEwLHA9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbiksc2tpcFNlcGFyYXRpb25TcGFjZSh0LCEwLGUpLGNvbXBvc2VOb2RlKHQsZSwxLCExLCEwKSxoPXQucmVzdWx0KSxjP3N0b3JlTWFwcGluZ1BhaXIodCxvLG0sbCxmLGgscixuLGkpOnM/by5wdXNoKHN0b3JlTWFwcGluZ1BhaXIodCxudWxsLG0sbCxmLGgscixuLGkpKTpvLnB1c2goZiksc2tpcFNlcGFyYXRpb25TcGFjZSh0LCEwLGUpLDQ0PT09KHA9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pKT8oZD0hMCxwPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pKTpkPSExfXRocm93RXJyb3IodCwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBmbG93IGNvbGxlY3Rpb24iKX0odCxoKT95PSEwOihhJiZmdW5jdGlvbiByZWFkQmxvY2tTY2FsYXIodCxlKXt2YXIgcixuLGksbyxhLHM9MSx1PSExLGM9ITEsZj1lLGw9MCxoPSExO2lmKDEyND09PShvPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSkpbj0hMTtlbHNle2lmKDYyIT09bylyZXR1cm4hMTtuPSEwfWZvcih0LmtpbmQ9InNjYWxhciIsdC5yZXN1bHQ9IiI7MCE9PW87KWlmKDQzPT09KG89dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbikpfHw0NT09PW8pMT09PXM/cz00Mz09PW8/MzoyOnRocm93RXJyb3IodCwicmVwZWF0IG9mIGEgY2hvbXBpbmcgbW9kZSBpZGVudGlmaWVyIik7ZWxzZXtpZighKChpPTQ4PD0oYT1vKSYmYTw9NTc/YS00ODotMSk+PTApKWJyZWFrOzA9PT1pP3Rocm93RXJyb3IodCwiYmFkIGV4cGxpY2l0IGluZGVudGF0aW9uIHdpZHRoIG9mIGEgYmxvY2sgc2NhbGFyOyBpdCBjYW5ub3QgYmUgbGVzcyB0aGFuIG9uZSIpOmM/dGhyb3dFcnJvcih0LCJyZXBlYXQgb2YgYW4gaW5kZW50YXRpb24gd2lkdGggaWRlbnRpZmllciIpOihmPWUraS0xLGM9ITApfWlmKGlzX1dISVRFX1NQQUNFKG8pKXtkb3tvPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pfXdoaWxlKGlzX1dISVRFX1NQQUNFKG8pKTtpZigzNT09PW8pZG97bz10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKX13aGlsZSghaXNfRU9MKG8pJiYwIT09byl9Zm9yKDswIT09bzspe2ZvcihyZWFkTGluZUJyZWFrKHQpLHQubGluZUluZGVudD0wLG89dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pOyghY3x8dC5saW5lSW5kZW50PGYpJiYzMj09PW87KXQubGluZUluZGVudCsrLG89dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7aWYoIWMmJnQubGluZUluZGVudD5mJiYoZj10LmxpbmVJbmRlbnQpLGlzX0VPTChvKSlsKys7ZWxzZXtpZih0LmxpbmVJbmRlbnQ8Zil7Mz09PXM/dC5yZXN1bHQrPUoucmVwZWF0KCJcbiIsdT8xK2w6bCk6MT09PXMmJnUmJih0LnJlc3VsdCs9IlxuIik7YnJlYWt9Zm9yKG4/aXNfV0hJVEVfU1BBQ0Uobyk/KGg9ITAsdC5yZXN1bHQrPUoucmVwZWF0KCJcbiIsdT8xK2w6bCkpOmg/KGg9ITEsdC5yZXN1bHQrPUoucmVwZWF0KCJcbiIsbCsxKSk6MD09PWw/dSYmKHQucmVzdWx0Kz0iICIpOnQucmVzdWx0Kz1KLnJlcGVhdCgiXG4iLGwpOnQucmVzdWx0Kz1KLnJlcGVhdCgiXG4iLHU/MStsOmwpLHU9ITAsYz0hMCxsPTAscj10LnBvc2l0aW9uOyFpc19FT0wobykmJjAhPT1vOylvPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO2NhcHR1cmVTZWdtZW50KHQscix0LnBvc2l0aW9uLCExKX19cmV0dXJuITB9KHQsaCl8fGZ1bmN0aW9uIHJlYWRTaW5nbGVRdW90ZWRTY2FsYXIodCxlKXt2YXIgcixuLGk7aWYoMzkhPT0ocj10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbikpKXJldHVybiExO2Zvcih0LmtpbmQ9InNjYWxhciIsdC5yZXN1bHQ9IiIsdC5wb3NpdGlvbisrLG49aT10LnBvc2l0aW9uOzAhPT0ocj10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbikpOylpZigzOT09PXIpe2lmKGNhcHR1cmVTZWdtZW50KHQsbix0LnBvc2l0aW9uLCEwKSwzOSE9PShyPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pKSlyZXR1cm4hMDtuPXQucG9zaXRpb24sdC5wb3NpdGlvbisrLGk9dC5wb3NpdGlvbn1lbHNlIGlzX0VPTChyKT8oY2FwdHVyZVNlZ21lbnQodCxuLGksITApLHdyaXRlRm9sZGVkTGluZXModCxza2lwU2VwYXJhdGlvblNwYWNlKHQsITEsZSkpLG49aT10LnBvc2l0aW9uKTp0LnBvc2l0aW9uPT09dC5saW5lU3RhcnQmJnRlc3REb2N1bWVudFNlcGFyYXRvcih0KT90aHJvd0Vycm9yKHQsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBkb2N1bWVudCB3aXRoaW4gYSBzaW5nbGUgcXVvdGVkIHNjYWxhciIpOih0LnBvc2l0aW9uKyssaT10LnBvc2l0aW9uKTt0aHJvd0Vycm9yKHQsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgc2luZ2xlIHF1b3RlZCBzY2FsYXIiKX0odCxoKXx8ZnVuY3Rpb24gcmVhZERvdWJsZVF1b3RlZFNjYWxhcih0LGUpe3ZhciByLG4saSxvLGEscyx1O2lmKDM0IT09KHM9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pKSlyZXR1cm4hMTtmb3IodC5raW5kPSJzY2FsYXIiLHQucmVzdWx0PSIiLHQucG9zaXRpb24rKyxyPW49dC5wb3NpdGlvbjswIT09KHM9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pKTspe2lmKDM0PT09cylyZXR1cm4gY2FwdHVyZVNlZ21lbnQodCxyLHQucG9zaXRpb24sITApLHQucG9zaXRpb24rKywhMDtpZig5Mj09PXMpe2lmKGNhcHR1cmVTZWdtZW50KHQscix0LnBvc2l0aW9uLCEwKSxpc19FT0wocz10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSkpc2tpcFNlcGFyYXRpb25TcGFjZSh0LCExLGUpO2Vsc2UgaWYoczwyNTYmJlB0W3NdKXQucmVzdWx0Kz1GdFtzXSx0LnBvc2l0aW9uKys7ZWxzZSBpZigoYT0xMjA9PT0odT1zKT8yOjExNz09PXU/NDo4NT09PXU/ODowKT4wKXtmb3IoaT1hLG89MDtpPjA7aS0tKShhPWZyb21IZXhDb2RlKHM9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbikpKT49MD9vPShvPDw0KSthOnRocm93RXJyb3IodCwiZXhwZWN0ZWQgaGV4YWRlY2ltYWwgY2hhcmFjdGVyIik7dC5yZXN1bHQrPWNoYXJGcm9tQ29kZXBvaW50KG8pLHQucG9zaXRpb24rK31lbHNlIHRocm93RXJyb3IodCwidW5rbm93biBlc2NhcGUgc2VxdWVuY2UiKTtyPW49dC5wb3NpdGlvbn1lbHNlIGlzX0VPTChzKT8oY2FwdHVyZVNlZ21lbnQodCxyLG4sITApLHdyaXRlRm9sZGVkTGluZXModCxza2lwU2VwYXJhdGlvblNwYWNlKHQsITEsZSkpLHI9bj10LnBvc2l0aW9uKTp0LnBvc2l0aW9uPT09dC5saW5lU3RhcnQmJnRlc3REb2N1bWVudFNlcGFyYXRvcih0KT90aHJvd0Vycm9yKHQsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBkb2N1bWVudCB3aXRoaW4gYSBkb3VibGUgcXVvdGVkIHNjYWxhciIpOih0LnBvc2l0aW9uKyssbj10LnBvc2l0aW9uKX10aHJvd0Vycm9yKHQsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgZG91YmxlIHF1b3RlZCBzY2FsYXIiKX0odCxoKT95PSEwOiFmdW5jdGlvbiByZWFkQWxpYXModCl7dmFyIGUscixuO2lmKDQyIT09KG49dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pKSlyZXR1cm4hMTtmb3Iobj10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSxlPXQucG9zaXRpb247MCE9PW4mJiFpc19XU19PUl9FT0wobikmJiFpc19GTE9XX0lORElDQVRPUihuKTspbj10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTtyZXR1cm4gdC5wb3NpdGlvbj09PWUmJnRocm93RXJyb3IodCwibmFtZSBvZiBhbiBhbGlhcyBub2RlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyIikscj10LmlucHV0LnNsaWNlKGUsdC5wb3NpdGlvbiksTHQuY2FsbCh0LmFuY2hvck1hcCxyKXx8dGhyb3dFcnJvcih0LCd1bmlkZW50aWZpZWQgYWxpYXMgIicrcisnIicpLHQucmVzdWx0PXQuYW5jaG9yTWFwW3JdLHNraXBTZXBhcmF0aW9uU3BhY2UodCwhMCwtMSksITB9KHQpP2Z1bmN0aW9uIHJlYWRQbGFpblNjYWxhcih0LGUscil7dmFyIG4saSxvLGEscyx1LGMsZixsPXQua2luZCxoPXQucmVzdWx0O2lmKGlzX1dTX09SX0VPTChmPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSl8fGlzX0ZMT1dfSU5ESUNBVE9SKGYpfHwzNT09PWZ8fDM4PT09Znx8NDI9PT1mfHwzMz09PWZ8fDEyND09PWZ8fDYyPT09Znx8Mzk9PT1mfHwzND09PWZ8fDM3PT09Znx8NjQ9PT1mfHw5Nj09PWYpcmV0dXJuITE7aWYoKDYzPT09Znx8NDU9PT1mKSYmKGlzX1dTX09SX0VPTChuPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKzEpKXx8ciYmaXNfRkxPV19JTkRJQ0FUT1IobikpKXJldHVybiExO2Zvcih0LmtpbmQ9InNjYWxhciIsdC5yZXN1bHQ9IiIsaT1vPXQucG9zaXRpb24sYT0hMTswIT09Zjspe2lmKDU4PT09Zil7aWYoaXNfV1NfT1JfRU9MKG49dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24rMSkpfHxyJiZpc19GTE9XX0lORElDQVRPUihuKSlicmVha31lbHNlIGlmKDM1PT09Zil7aWYoaXNfV1NfT1JfRU9MKHQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uLTEpKSlicmVha31lbHNle2lmKHQucG9zaXRpb249PT10LmxpbmVTdGFydCYmdGVzdERvY3VtZW50U2VwYXJhdG9yKHQpfHxyJiZpc19GTE9XX0lORElDQVRPUihmKSlicmVhaztpZihpc19FT0woZikpe2lmKHM9dC5saW5lLHU9dC5saW5lU3RhcnQsYz10LmxpbmVJbmRlbnQsc2tpcFNlcGFyYXRpb25TcGFjZSh0LCExLC0xKSx0LmxpbmVJbmRlbnQ+PWUpe2E9ITAsZj10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7Y29udGludWV9dC5wb3NpdGlvbj1vLHQubGluZT1zLHQubGluZVN0YXJ0PXUsdC5saW5lSW5kZW50PWM7YnJlYWt9fWEmJihjYXB0dXJlU2VnbWVudCh0LGksbywhMSksd3JpdGVGb2xkZWRMaW5lcyh0LHQubGluZS1zKSxpPW89dC5wb3NpdGlvbixhPSExKSxpc19XSElURV9TUEFDRShmKXx8KG89dC5wb3NpdGlvbisxKSxmPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pfXJldHVybiBjYXB0dXJlU2VnbWVudCh0LGksbywhMSksISF0LnJlc3VsdHx8KHQua2luZD1sLHQucmVzdWx0PWgsITEpfSh0LGgsMT09PXIpJiYoeT0hMCxudWxsPT09dC50YWcmJih0LnRhZz0iPyIpKTooeT0hMCxudWxsPT09dC50YWcmJm51bGw9PT10LmFuY2hvcnx8dGhyb3dFcnJvcih0LCJhbGlhcyBub2RlIHNob3VsZCBub3QgaGF2ZSBhbnkgcHJvcGVydGllcyIpKSxudWxsIT09dC5hbmNob3ImJih0LmFuY2hvck1hcFt0LmFuY2hvcl09dC5yZXN1bHQpKTowPT09ZCYmKHk9cyYmcmVhZEJsb2NrU2VxdWVuY2UodCxwKSkpLG51bGw9PT10LnRhZyludWxsIT09dC5hbmNob3ImJih0LmFuY2hvck1hcFt0LmFuY2hvcl09dC5yZXN1bHQpO2Vsc2UgaWYoIj8iPT09dC50YWcpe2ZvcihudWxsIT09dC5yZXN1bHQmJiJzY2FsYXIiIT09dC5raW5kJiZ0aHJvd0Vycm9yKHQsJ3VuYWNjZXB0YWJsZSBub2RlIGtpbmQgZm9yICE8Pz4gdGFnOyBpdCBzaG91bGQgYmUgInNjYWxhciIsIG5vdCAiJyt0LmtpbmQrJyInKSx1PTAsYz10LmltcGxpY2l0VHlwZXMubGVuZ3RoO3U8Yzt1Kz0xKWlmKChsPXQuaW1wbGljaXRUeXBlc1t1XSkucmVzb2x2ZSh0LnJlc3VsdCkpe3QucmVzdWx0PWwuY29uc3RydWN0KHQucmVzdWx0KSx0LnRhZz1sLnRhZyxudWxsIT09dC5hbmNob3ImJih0LmFuY2hvck1hcFt0LmFuY2hvcl09dC5yZXN1bHQpO2JyZWFrfX1lbHNlIGlmKCIhIiE9PXQudGFnKXtpZihMdC5jYWxsKHQudHlwZU1hcFt0LmtpbmR8fCJmYWxsYmFjayJdLHQudGFnKSlsPXQudHlwZU1hcFt0LmtpbmR8fCJmYWxsYmFjayJdW3QudGFnXTtlbHNlIGZvcihsPW51bGwsdT0wLGM9KGY9dC50eXBlTWFwLm11bHRpW3Qua2luZHx8ImZhbGxiYWNrIl0pLmxlbmd0aDt1PGM7dSs9MSlpZih0LnRhZy5zbGljZSgwLGZbdV0udGFnLmxlbmd0aCk9PT1mW3VdLnRhZyl7bD1mW3VdO2JyZWFrfWx8fHRocm93RXJyb3IodCwidW5rbm93biB0YWcgITwiK3QudGFnKyI+IiksbnVsbCE9PXQucmVzdWx0JiZsLmtpbmQhPT10LmtpbmQmJnRocm93RXJyb3IodCwidW5hY2NlcHRhYmxlIG5vZGUga2luZCBmb3IgITwiK3QudGFnKyc+IHRhZzsgaXQgc2hvdWxkIGJlICInK2wua2luZCsnIiwgbm90ICInK3Qua2luZCsnIicpLGwucmVzb2x2ZSh0LnJlc3VsdCx0LnRhZyk/KHQucmVzdWx0PWwuY29uc3RydWN0KHQucmVzdWx0LHQudGFnKSxudWxsIT09dC5hbmNob3ImJih0LmFuY2hvck1hcFt0LmFuY2hvcl09dC5yZXN1bHQpKTp0aHJvd0Vycm9yKHQsImNhbm5vdCByZXNvbHZlIGEgbm9kZSB3aXRoICE8Iit0LnRhZysiPiBleHBsaWNpdCB0YWciKX1yZXR1cm4gbnVsbCE9PXQubGlzdGVuZXImJnQubGlzdGVuZXIoImNsb3NlIix0KSxudWxsIT09dC50YWd8fG51bGwhPT10LmFuY2hvcnx8eX1mdW5jdGlvbiByZWFkRG9jdW1lbnQodCl7dmFyIGUscixuLGksbz10LnBvc2l0aW9uLGE9ITE7Zm9yKHQudmVyc2lvbj1udWxsLHQuY2hlY2tMaW5lQnJlYWtzPXQubGVnYWN5LHQudGFnTWFwPU9iamVjdC5jcmVhdGUobnVsbCksdC5hbmNob3JNYXA9T2JqZWN0LmNyZWF0ZShudWxsKTswIT09KGk9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pKSYmKHNraXBTZXBhcmF0aW9uU3BhY2UodCwhMCwtMSksaT10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbiksISh0LmxpbmVJbmRlbnQ+MHx8MzchPT1pKSk7KXtmb3IoYT0hMCxpPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pLGU9dC5wb3NpdGlvbjswIT09aSYmIWlzX1dTX09SX0VPTChpKTspaT10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTtmb3Iobj1bXSwocj10LmlucHV0LnNsaWNlKGUsdC5wb3NpdGlvbikpLmxlbmd0aDwxJiZ0aHJvd0Vycm9yKHQsImRpcmVjdGl2ZSBuYW1lIG11c3Qgbm90IGJlIGxlc3MgdGhhbiBvbmUgY2hhcmFjdGVyIGluIGxlbmd0aCIpOzAhPT1pOyl7Zm9yKDtpc19XSElURV9TUEFDRShpKTspaT10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTtpZigzNT09PWkpe2Rve2k9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbil9d2hpbGUoMCE9PWkmJiFpc19FT0woaSkpO2JyZWFrfWlmKGlzX0VPTChpKSlicmVhaztmb3IoZT10LnBvc2l0aW9uOzAhPT1pJiYhaXNfV1NfT1JfRU9MKGkpOylpPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO24ucHVzaCh0LmlucHV0LnNsaWNlKGUsdC5wb3NpdGlvbikpfTAhPT1pJiZyZWFkTGluZUJyZWFrKHQpLEx0LmNhbGwoVXQscik/VXRbcl0odCxyLG4pOnRocm93V2FybmluZyh0LCd1bmtub3duIGRvY3VtZW50IGRpcmVjdGl2ZSAiJytyKyciJyl9c2tpcFNlcGFyYXRpb25TcGFjZSh0LCEwLC0xKSwwPT09dC5saW5lSW5kZW50JiY0NT09PXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSYmNDU9PT10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbisxKSYmNDU9PT10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbisyKT8odC5wb3NpdGlvbis9Myxza2lwU2VwYXJhdGlvblNwYWNlKHQsITAsLTEpKTphJiZ0aHJvd0Vycm9yKHQsImRpcmVjdGl2ZXMgZW5kIG1hcmsgaXMgZXhwZWN0ZWQiKSxjb21wb3NlTm9kZSh0LHQubGluZUluZGVudC0xLDQsITEsITApLHNraXBTZXBhcmF0aW9uU3BhY2UodCwhMCwtMSksdC5jaGVja0xpbmVCcmVha3MmJmp0LnRlc3QodC5pbnB1dC5zbGljZShvLHQucG9zaXRpb24pKSYmdGhyb3dXYXJuaW5nKHQsIm5vbi1BU0NJSSBsaW5lIGJyZWFrcyBhcmUgaW50ZXJwcmV0ZWQgYXMgY29udGVudCIpLHQuZG9jdW1lbnRzLnB1c2godC5yZXN1bHQpLHQucG9zaXRpb249PT10LmxpbmVTdGFydCYmdGVzdERvY3VtZW50U2VwYXJhdG9yKHQpPzQ2PT09dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pJiYodC5wb3NpdGlvbis9Myxza2lwU2VwYXJhdGlvblNwYWNlKHQsITAsLTEpKTp0LnBvc2l0aW9uPHQubGVuZ3RoLTEmJnRocm93RXJyb3IodCwiZW5kIG9mIHRoZSBzdHJlYW0gb3IgYSBkb2N1bWVudCBzZXBhcmF0b3IgaXMgZXhwZWN0ZWQiKX1mdW5jdGlvbiBsb2FkRG9jdW1lbnRzKHQsZSl7ZT1lfHx7fSwwIT09KHQ9U3RyaW5nKHQpKS5sZW5ndGgmJigxMCE9PXQuY2hhckNvZGVBdCh0Lmxlbmd0aC0xKSYmMTMhPT10LmNoYXJDb2RlQXQodC5sZW5ndGgtMSkmJih0Kz0iXG4iKSw2NTI3OT09PXQuY2hhckNvZGVBdCgwKSYmKHQ9dC5zbGljZSgxKSkpO3ZhciByPW5ldyBTdGF0ZSQxKHQsZSksbj10LmluZGV4T2YoIlwwIik7Zm9yKC0xIT09biYmKHIucG9zaXRpb249bix0aHJvd0Vycm9yKHIsIm51bGwgYnl0ZSBpcyBub3QgYWxsb3dlZCBpbiBpbnB1dCIpKSxyLmlucHV0Kz0iXDAiOzMyPT09ci5pbnB1dC5jaGFyQ29kZUF0KHIucG9zaXRpb24pOylyLmxpbmVJbmRlbnQrPTEsci5wb3NpdGlvbis9MTtmb3IoO3IucG9zaXRpb248ci5sZW5ndGgtMTspcmVhZERvY3VtZW50KHIpO3JldHVybiByLmRvY3VtZW50c312YXIgV3Q9e2xvYWRBbGw6ZnVuY3Rpb24gbG9hZEFsbCQxKHQsZSxyKXtudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlJiZ2b2lkIDA9PT1yJiYocj1lLGU9bnVsbCk7dmFyIG49bG9hZERvY3VtZW50cyh0LHIpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXJldHVybiBuO2Zvcih2YXIgaT0wLG89bi5sZW5ndGg7aTxvO2krPTEpZShuW2ldKX0sbG9hZDpmdW5jdGlvbiBsb2FkJDEodCxlKXt2YXIgcj1sb2FkRG9jdW1lbnRzKHQsZSk7aWYoMCE9PXIubGVuZ3RoKXtpZigxPT09ci5sZW5ndGgpcmV0dXJuIHJbMF07dGhyb3cgbmV3IHR0KCJleHBlY3RlZCBhIHNpbmdsZSBkb2N1bWVudCBpbiB0aGUgc3RyZWFtLCBidXQgZm91bmQgbW9yZSIpfX19LFZ0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsS3Q9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSwkdD02NTI3OSxIdD17MDoiXFwwIiw3OiJcXGEiLDg6IlxcYiIsOToiXFx0IiwxMDoiXFxuIiwxMToiXFx2IiwxMjoiXFxmIiwxMzoiXFxyIiwyNzoiXFxlIiwzNDonXFwiJyw5MjoiXFxcXCIsMTMzOiJcXE4iLDE2MDoiXFxfIiw4MjMyOiJcXEwiLDgyMzM6IlxcUCJ9LFl0PVsieSIsIlkiLCJ5ZXMiLCJZZXMiLCJZRVMiLCJvbiIsIk9uIiwiT04iLCJuIiwiTiIsIm5vIiwiTm8iLCJOTyIsIm9mZiIsIk9mZiIsIk9GRiJdLFp0PS9eWy0rXT9bMC05X10rKD86OlswLTlfXSspKyg/OlwuWzAtOV9dKik/JC87ZnVuY3Rpb24gZW5jb2RlSGV4KHQpe3ZhciBlLHIsbjtpZihlPXQudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCksdDw9MjU1KXI9IngiLG49MjtlbHNlIGlmKHQ8PTY1NTM1KXI9InUiLG49NDtlbHNle2lmKCEodDw9NDI5NDk2NzI5NSkpdGhyb3cgbmV3IHR0KCJjb2RlIHBvaW50IHdpdGhpbiBhIHN0cmluZyBtYXkgbm90IGJlIGdyZWF0ZXIgdGhhbiAweEZGRkZGRkZGIik7cj0iVSIsbj04fXJldHVybiJcXCIrcitKLnJlcGVhdCgiMCIsbi1lLmxlbmd0aCkrZX1mdW5jdGlvbiBTdGF0ZSh0KXt0aGlzLnNjaGVtYT10LnNjaGVtYXx8cXQsdGhpcy5pbmRlbnQ9TWF0aC5tYXgoMSx0LmluZGVudHx8MiksdGhpcy5ub0FycmF5SW5kZW50PXQubm9BcnJheUluZGVudHx8ITEsdGhpcy5za2lwSW52YWxpZD10LnNraXBJbnZhbGlkfHwhMSx0aGlzLmZsb3dMZXZlbD1KLmlzTm90aGluZyh0LmZsb3dMZXZlbCk/LTE6dC5mbG93TGV2ZWwsdGhpcy5zdHlsZU1hcD1mdW5jdGlvbiBjb21waWxlU3R5bGVNYXAodCxlKXt2YXIgcixuLGksbyxhLHMsdTtpZihudWxsPT09ZSlyZXR1cm57fTtmb3Iocj17fSxpPTAsbz0obj1PYmplY3Qua2V5cyhlKSkubGVuZ3RoO2k8bztpKz0xKWE9bltpXSxzPVN0cmluZyhlW2FdKSwiISEiPT09YS5zbGljZSgwLDIpJiYoYT0idGFnOnlhbWwub3JnLDIwMDI6IithLnNsaWNlKDIpKSwodT10LmNvbXBpbGVkVHlwZU1hcC5mYWxsYmFja1thXSkmJkt0LmNhbGwodS5zdHlsZUFsaWFzZXMscykmJihzPXUuc3R5bGVBbGlhc2VzW3NdKSxyW2FdPXM7cmV0dXJuIHJ9KHRoaXMuc2NoZW1hLHQuc3R5bGVzfHxudWxsKSx0aGlzLnNvcnRLZXlzPXQuc29ydEtleXN8fCExLHRoaXMubGluZVdpZHRoPXQubGluZVdpZHRofHw4MCx0aGlzLm5vUmVmcz10Lm5vUmVmc3x8ITEsdGhpcy5ub0NvbXBhdE1vZGU9dC5ub0NvbXBhdE1vZGV8fCExLHRoaXMuY29uZGVuc2VGbG93PXQuY29uZGVuc2VGbG93fHwhMSx0aGlzLnF1b3RpbmdUeXBlPSciJz09PXQucXVvdGluZ1R5cGU/MjoxLHRoaXMuZm9yY2VRdW90ZXM9dC5mb3JjZVF1b3Rlc3x8ITEsdGhpcy5yZXBsYWNlcj0iZnVuY3Rpb24iPT10eXBlb2YgdC5yZXBsYWNlcj90LnJlcGxhY2VyOm51bGwsdGhpcy5pbXBsaWNpdFR5cGVzPXRoaXMuc2NoZW1hLmNvbXBpbGVkSW1wbGljaXQsdGhpcy5leHBsaWNpdFR5cGVzPXRoaXMuc2NoZW1hLmNvbXBpbGVkRXhwbGljaXQsdGhpcy50YWc9bnVsbCx0aGlzLnJlc3VsdD0iIix0aGlzLmR1cGxpY2F0ZXM9W10sdGhpcy51c2VkRHVwbGljYXRlcz1udWxsfWZ1bmN0aW9uIGluZGVudFN0cmluZyh0LGUpe2Zvcih2YXIgcixuPUoucmVwZWF0KCIgIixlKSxpPTAsbz0tMSxhPSIiLHM9dC5sZW5ndGg7aTxzOyktMT09PShvPXQuaW5kZXhPZigiXG4iLGkpKT8ocj10LnNsaWNlKGkpLGk9cyk6KHI9dC5zbGljZShpLG8rMSksaT1vKzEpLHIubGVuZ3RoJiYiXG4iIT09ciYmKGErPW4pLGErPXI7cmV0dXJuIGF9ZnVuY3Rpb24gZ2VuZXJhdGVOZXh0TGluZSh0LGUpe3JldHVybiJcbiIrSi5yZXBlYXQoIiAiLHQuaW5kZW50KmUpfWZ1bmN0aW9uIGlzV2hpdGVzcGFjZSh0KXtyZXR1cm4gMzI9PT10fHw5PT09dH1mdW5jdGlvbiBpc1ByaW50YWJsZSh0KXtyZXR1cm4gMzI8PXQmJnQ8PTEyNnx8MTYxPD10JiZ0PD01NTI5NSYmODIzMiE9PXQmJjgyMzMhPT10fHw1NzM0NDw9dCYmdDw9NjU1MzMmJnQhPT0kdHx8NjU1MzY8PXQmJnQ8PTExMTQxMTF9ZnVuY3Rpb24gaXNOc0NoYXJPcldoaXRlc3BhY2UodCl7cmV0dXJuIGlzUHJpbnRhYmxlKHQpJiZ0IT09JHQmJjEzIT09dCYmMTAhPT10fWZ1bmN0aW9uIGlzUGxhaW5TYWZlKHQsZSxyKXt2YXIgbj1pc05zQ2hhck9yV2hpdGVzcGFjZSh0KSxpPW4mJiFpc1doaXRlc3BhY2UodCk7cmV0dXJuKHI/bjpuJiY0NCE9PXQmJjkxIT09dCYmOTMhPT10JiYxMjMhPT10JiYxMjUhPT10KSYmMzUhPT10JiYhKDU4PT09ZSYmIWkpfHxpc05zQ2hhck9yV2hpdGVzcGFjZShlKSYmIWlzV2hpdGVzcGFjZShlKSYmMzU9PT10fHw1OD09PWUmJml9ZnVuY3Rpb24gY29kZVBvaW50QXQodCxlKXt2YXIgcixuPXQuY2hhckNvZGVBdChlKTtyZXR1cm4gbj49NTUyOTYmJm48PTU2MzE5JiZlKzE8dC5sZW5ndGgmJihyPXQuY2hhckNvZGVBdChlKzEpKT49NTYzMjAmJnI8PTU3MzQzPzEwMjQqKG4tNTUyOTYpK3ItNTYzMjArNjU1MzY6bn1mdW5jdGlvbiBuZWVkSW5kZW50SW5kaWNhdG9yKHQpe3JldHVybi9eXG4qIC8udGVzdCh0KX1mdW5jdGlvbiBjaG9vc2VTY2FsYXJTdHlsZSh0LGUscixuLGksbyxhLHMpe3ZhciB1LGM9MCxmPW51bGwsbD0hMSxoPSExLHA9LTEhPT1uLGQ9LTEsXz1mdW5jdGlvbiBpc1BsYWluU2FmZUZpcnN0KHQpe3JldHVybiBpc1ByaW50YWJsZSh0KSYmdCE9PSR0JiYhaXNXaGl0ZXNwYWNlKHQpJiY0NSE9PXQmJjYzIT09dCYmNTghPT10JiY0NCE9PXQmJjkxIT09dCYmOTMhPT10JiYxMjMhPT10JiYxMjUhPT10JiYzNSE9PXQmJjM4IT09dCYmNDIhPT10JiYzMyE9PXQmJjEyNCE9PXQmJjYxIT09dCYmNjIhPT10JiYzOSE9PXQmJjM0IT09dCYmMzchPT10JiY2NCE9PXQmJjk2IT09dH0oY29kZVBvaW50QXQodCwwKSkmJmZ1bmN0aW9uIGlzUGxhaW5TYWZlTGFzdCh0KXtyZXR1cm4haXNXaGl0ZXNwYWNlKHQpJiY1OCE9PXR9KGNvZGVQb2ludEF0KHQsdC5sZW5ndGgtMSkpO2lmKGV8fGEpZm9yKHU9MDt1PHQubGVuZ3RoO2M+PTY1NTM2P3UrPTI6dSsrKXtpZighaXNQcmludGFibGUoYz1jb2RlUG9pbnRBdCh0LHUpKSlyZXR1cm4gNTtfPV8mJmlzUGxhaW5TYWZlKGMsZixzKSxmPWN9ZWxzZXtmb3IodT0wO3U8dC5sZW5ndGg7Yz49NjU1MzY/dSs9Mjp1Kyspe2lmKDEwPT09KGM9Y29kZVBvaW50QXQodCx1KSkpbD0hMCxwJiYoaD1ofHx1LWQtMT5uJiYiICIhPT10W2QrMV0sZD11KTtlbHNlIGlmKCFpc1ByaW50YWJsZShjKSlyZXR1cm4gNTtfPV8mJmlzUGxhaW5TYWZlKGMsZixzKSxmPWN9aD1ofHxwJiZ1LWQtMT5uJiYiICIhPT10W2QrMV19cmV0dXJuIGx8fGg/cj45JiZuZWVkSW5kZW50SW5kaWNhdG9yKHQpPzU6YT8yPT09bz81OjI6aD80OjM6IV98fGF8fGkodCk/Mj09PW8/NToyOjF9ZnVuY3Rpb24gd3JpdGVTY2FsYXIodCxlLHIsbixpKXt0LmR1bXA9ZnVuY3Rpb24oKXtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIDI9PT10LnF1b3RpbmdUeXBlPyciIic6IicnIjtpZighdC5ub0NvbXBhdE1vZGUmJigtMSE9PVl0LmluZGV4T2YoZSl8fFp0LnRlc3QoZSkpKXJldHVybiAyPT09dC5xdW90aW5nVHlwZT8nIicrZSsnIic6IiciK2UrIiciO3ZhciBvPXQuaW5kZW50Kk1hdGgubWF4KDEsciksYT0tMT09PXQubGluZVdpZHRoPy0xOk1hdGgubWF4KE1hdGgubWluKHQubGluZVdpZHRoLDQwKSx0LmxpbmVXaWR0aC1vKSxzPW58fHQuZmxvd0xldmVsPi0xJiZyPj10LmZsb3dMZXZlbDtzd2l0Y2goY2hvb3NlU2NhbGFyU3R5bGUoZSxzLHQuaW5kZW50LGEsKGZ1bmN0aW9uIHRlc3RBbWJpZ3VpdHkoZSl7cmV0dXJuIGZ1bmN0aW9uIHRlc3RJbXBsaWNpdFJlc29sdmluZyh0LGUpe3ZhciByLG47Zm9yKHI9MCxuPXQuaW1wbGljaXRUeXBlcy5sZW5ndGg7cjxuO3IrPTEpaWYodC5pbXBsaWNpdFR5cGVzW3JdLnJlc29sdmUoZSkpcmV0dXJuITA7cmV0dXJuITF9KHQsZSl9KSx0LnF1b3RpbmdUeXBlLHQuZm9yY2VRdW90ZXMmJiFuLGkpKXtjYXNlIDE6cmV0dXJuIGU7Y2FzZSAyOnJldHVybiInIitlLnJlcGxhY2UoLycvZywiJyciKSsiJyI7Y2FzZSAzOnJldHVybiJ8IitibG9ja0hlYWRlcihlLHQuaW5kZW50KStkcm9wRW5kaW5nTmV3bGluZShpbmRlbnRTdHJpbmcoZSxvKSk7Y2FzZSA0OnJldHVybiI+IitibG9ja0hlYWRlcihlLHQuaW5kZW50KStkcm9wRW5kaW5nTmV3bGluZShpbmRlbnRTdHJpbmcoZnVuY3Rpb24gZm9sZFN0cmluZyh0LGUpe3ZhciByLG4saT0vKFxuKykoW15cbl0qKS9nLG89KHM9dC5pbmRleE9mKCJcbiIpLHM9LTEhPT1zP3M6dC5sZW5ndGgsaS5sYXN0SW5kZXg9cyxmb2xkTGluZSh0LnNsaWNlKDAscyksZSkpLGE9IlxuIj09PXRbMF18fCIgIj09PXRbMF07dmFyIHM7Zm9yKDtuPWkuZXhlYyh0KTspe3ZhciB1PW5bMV0sYz1uWzJdO3I9IiAiPT09Y1swXSxvKz11KyhhfHxyfHwiIj09PWM/IiI6IlxuIikrZm9sZExpbmUoYyxlKSxhPXJ9cmV0dXJuIG99KGUsYSksbykpO2Nhc2UgNTpyZXR1cm4nIicrZnVuY3Rpb24gZXNjYXBlU3RyaW5nKHQpe2Zvcih2YXIgZSxyPSIiLG49MCxpPTA7aTx0Lmxlbmd0aDtuPj02NTUzNj9pKz0yOmkrKyluPWNvZGVQb2ludEF0KHQsaSksIShlPUh0W25dKSYmaXNQcmludGFibGUobik/KHIrPXRbaV0sbj49NjU1MzYmJihyKz10W2krMV0pKTpyKz1lfHxlbmNvZGVIZXgobik7cmV0dXJuIHJ9KGUpKyciJztkZWZhdWx0OnRocm93IG5ldyB0dCgiaW1wb3NzaWJsZSBlcnJvcjogaW52YWxpZCBzY2FsYXIgc3R5bGUiKX19KCl9ZnVuY3Rpb24gYmxvY2tIZWFkZXIodCxlKXt2YXIgcj1uZWVkSW5kZW50SW5kaWNhdG9yKHQpP1N0cmluZyhlKToiIixuPSJcbiI9PT10W3QubGVuZ3RoLTFdO3JldHVybiByKyhuJiYoIlxuIj09PXRbdC5sZW5ndGgtMl18fCJcbiI9PT10KT8iKyI6bj8iIjoiLSIpKyJcbiJ9ZnVuY3Rpb24gZHJvcEVuZGluZ05ld2xpbmUodCl7cmV0dXJuIlxuIj09PXRbdC5sZW5ndGgtMV0/dC5zbGljZSgwLC0xKTp0fWZ1bmN0aW9uIGZvbGRMaW5lKHQsZSl7aWYoIiI9PT10fHwiICI9PT10WzBdKXJldHVybiB0O2Zvcih2YXIgcixuLGk9LyBbXiBdL2csbz0wLGE9MCxzPTAsdT0iIjtyPWkuZXhlYyh0KTspKHM9ci5pbmRleCktbz5lJiYobj1hPm8/YTpzLHUrPSJcbiIrdC5zbGljZShvLG4pLG89bisxKSxhPXM7cmV0dXJuIHUrPSJcbiIsdC5sZW5ndGgtbz5lJiZhPm8/dSs9dC5zbGljZShvLGEpKyJcbiIrdC5zbGljZShhKzEpOnUrPXQuc2xpY2UobyksdS5zbGljZSgxKX1mdW5jdGlvbiB3cml0ZUJsb2NrU2VxdWVuY2UodCxlLHIsbil7dmFyIGksbyxhLHM9IiIsdT10LnRhZztmb3IoaT0wLG89ci5sZW5ndGg7aTxvO2krPTEpYT1yW2ldLHQucmVwbGFjZXImJihhPXQucmVwbGFjZXIuY2FsbChyLFN0cmluZyhpKSxhKSksKHdyaXRlTm9kZSh0LGUrMSxhLCEwLCEwLCExLCEwKXx8dm9pZCAwPT09YSYmd3JpdGVOb2RlKHQsZSsxLG51bGwsITAsITAsITEsITApKSYmKG4mJiIiPT09c3x8KHMrPWdlbmVyYXRlTmV4dExpbmUodCxlKSksdC5kdW1wJiYxMD09PXQuZHVtcC5jaGFyQ29kZUF0KDApP3MrPSItIjpzKz0iLSAiLHMrPXQuZHVtcCk7dC50YWc9dSx0LmR1bXA9c3x8IltdIn1mdW5jdGlvbiBkZXRlY3RUeXBlKHQsZSxyKXt2YXIgbixpLG8sYSxzLHU7Zm9yKG89MCxhPShpPXI/dC5leHBsaWNpdFR5cGVzOnQuaW1wbGljaXRUeXBlcykubGVuZ3RoO288YTtvKz0xKWlmKCgocz1pW29dKS5pbnN0YW5jZU9mfHxzLnByZWRpY2F0ZSkmJighcy5pbnN0YW5jZU9mfHwib2JqZWN0Ij09dHlwZW9mIGUmJmUgaW5zdGFuY2VvZiBzLmluc3RhbmNlT2YpJiYoIXMucHJlZGljYXRlfHxzLnByZWRpY2F0ZShlKSkpe2lmKHI/cy5tdWx0aSYmcy5yZXByZXNlbnROYW1lP3QudGFnPXMucmVwcmVzZW50TmFtZShlKTp0LnRhZz1zLnRhZzp0LnRhZz0iPyIscy5yZXByZXNlbnQpe2lmKHU9dC5zdHlsZU1hcFtzLnRhZ118fHMuZGVmYXVsdFN0eWxlLCJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1WdC5jYWxsKHMucmVwcmVzZW50KSluPXMucmVwcmVzZW50KGUsdSk7ZWxzZXtpZighS3QuY2FsbChzLnJlcHJlc2VudCx1KSl0aHJvdyBuZXcgdHQoIiE8IitzLnRhZysnPiB0YWcgcmVzb2x2ZXIgYWNjZXB0cyBub3QgIicrdSsnIiBzdHlsZScpO249cy5yZXByZXNlbnRbdV0oZSx1KX10LmR1bXA9bn1yZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiB3cml0ZU5vZGUodCxlLHIsbixpLG8sYSl7dC50YWc9bnVsbCx0LmR1bXA9cixkZXRlY3RUeXBlKHQsciwhMSl8fGRldGVjdFR5cGUodCxyLCEwKTt2YXIgcyx1PVZ0LmNhbGwodC5kdW1wKSxjPW47biYmKG49dC5mbG93TGV2ZWw8MHx8dC5mbG93TGV2ZWw+ZSk7dmFyIGYsbCxoPSJbb2JqZWN0IE9iamVjdF0iPT09dXx8IltvYmplY3QgQXJyYXldIj09PXU7aWYoaCYmKGw9LTEhPT0oZj10LmR1cGxpY2F0ZXMuaW5kZXhPZihyKSkpLChudWxsIT09dC50YWcmJiI/IiE9PXQudGFnfHxsfHwyIT09dC5pbmRlbnQmJmU+MCkmJihpPSExKSxsJiZ0LnVzZWREdXBsaWNhdGVzW2ZdKXQuZHVtcD0iKnJlZl8iK2Y7ZWxzZXtpZihoJiZsJiYhdC51c2VkRHVwbGljYXRlc1tmXSYmKHQudXNlZER1cGxpY2F0ZXNbZl09ITApLCJbb2JqZWN0IE9iamVjdF0iPT09dSluJiYwIT09T2JqZWN0LmtleXModC5kdW1wKS5sZW5ndGg/KCFmdW5jdGlvbiB3cml0ZUJsb2NrTWFwcGluZyh0LGUscixuKXt2YXIgaSxvLGEscyx1LGMsZj0iIixsPXQudGFnLGg9T2JqZWN0LmtleXMocik7aWYoITA9PT10LnNvcnRLZXlzKWguc29ydCgpO2Vsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mIHQuc29ydEtleXMpaC5zb3J0KHQuc29ydEtleXMpO2Vsc2UgaWYodC5zb3J0S2V5cyl0aHJvdyBuZXcgdHQoInNvcnRLZXlzIG11c3QgYmUgYSBib29sZWFuIG9yIGEgZnVuY3Rpb24iKTtmb3IoaT0wLG89aC5sZW5ndGg7aTxvO2krPTEpYz0iIixuJiYiIj09PWZ8fChjKz1nZW5lcmF0ZU5leHRMaW5lKHQsZSkpLHM9clthPWhbaV1dLHQucmVwbGFjZXImJihzPXQucmVwbGFjZXIuY2FsbChyLGEscykpLHdyaXRlTm9kZSh0LGUrMSxhLCEwLCEwLCEwKSYmKCh1PW51bGwhPT10LnRhZyYmIj8iIT09dC50YWd8fHQuZHVtcCYmdC5kdW1wLmxlbmd0aD4xMDI0KSYmKHQuZHVtcCYmMTA9PT10LmR1bXAuY2hhckNvZGVBdCgwKT9jKz0iPyI6Yys9Ij8gIiksYys9dC5kdW1wLHUmJihjKz1nZW5lcmF0ZU5leHRMaW5lKHQsZSkpLHdyaXRlTm9kZSh0LGUrMSxzLCEwLHUpJiYodC5kdW1wJiYxMD09PXQuZHVtcC5jaGFyQ29kZUF0KDApP2MrPSI6IjpjKz0iOiAiLGYrPWMrPXQuZHVtcCkpO3QudGFnPWwsdC5kdW1wPWZ8fCJ7fSJ9KHQsZSx0LmR1bXAsaSksbCYmKHQuZHVtcD0iJnJlZl8iK2YrdC5kdW1wKSk6KCFmdW5jdGlvbiB3cml0ZUZsb3dNYXBwaW5nKHQsZSxyKXt2YXIgbixpLG8sYSxzLHU9IiIsYz10LnRhZyxmPU9iamVjdC5rZXlzKHIpO2ZvcihuPTAsaT1mLmxlbmd0aDtuPGk7bis9MSlzPSIiLCIiIT09dSYmKHMrPSIsICIpLHQuY29uZGVuc2VGbG93JiYocys9JyInKSxhPXJbbz1mW25dXSx0LnJlcGxhY2VyJiYoYT10LnJlcGxhY2VyLmNhbGwocixvLGEpKSx3cml0ZU5vZGUodCxlLG8sITEsITEpJiYodC5kdW1wLmxlbmd0aD4xMDI0JiYocys9Ij8gIikscys9dC5kdW1wKyh0LmNvbmRlbnNlRmxvdz8nIic6IiIpKyI6IisodC5jb25kZW5zZUZsb3c/IiI6IiAiKSx3cml0ZU5vZGUodCxlLGEsITEsITEpJiYodSs9cys9dC5kdW1wKSk7dC50YWc9Yyx0LmR1bXA9InsiK3UrIn0ifSh0LGUsdC5kdW1wKSxsJiYodC5kdW1wPSImcmVmXyIrZisiICIrdC5kdW1wKSk7ZWxzZSBpZigiW29iamVjdCBBcnJheV0iPT09dSluJiYwIT09dC5kdW1wLmxlbmd0aD8odC5ub0FycmF5SW5kZW50JiYhYSYmZT4wP3dyaXRlQmxvY2tTZXF1ZW5jZSh0LGUtMSx0LmR1bXAsaSk6d3JpdGVCbG9ja1NlcXVlbmNlKHQsZSx0LmR1bXAsaSksbCYmKHQuZHVtcD0iJnJlZl8iK2YrdC5kdW1wKSk6KCFmdW5jdGlvbiB3cml0ZUZsb3dTZXF1ZW5jZSh0LGUscil7dmFyIG4saSxvLGE9IiIscz10LnRhZztmb3Iobj0wLGk9ci5sZW5ndGg7bjxpO24rPTEpbz1yW25dLHQucmVwbGFjZXImJihvPXQucmVwbGFjZXIuY2FsbChyLFN0cmluZyhuKSxvKSksKHdyaXRlTm9kZSh0LGUsbywhMSwhMSl8fHZvaWQgMD09PW8mJndyaXRlTm9kZSh0LGUsbnVsbCwhMSwhMSkpJiYoIiIhPT1hJiYoYSs9IiwiKyh0LmNvbmRlbnNlRmxvdz8iIjoiICIpKSxhKz10LmR1bXApO3QudGFnPXMsdC5kdW1wPSJbIithKyJdIn0odCxlLHQuZHVtcCksbCYmKHQuZHVtcD0iJnJlZl8iK2YrIiAiK3QuZHVtcCkpO2Vsc2V7aWYoIltvYmplY3QgU3RyaW5nXSIhPT11KXtpZigiW29iamVjdCBVbmRlZmluZWRdIj09PXUpcmV0dXJuITE7aWYodC5za2lwSW52YWxpZClyZXR1cm4hMTt0aHJvdyBuZXcgdHQoInVuYWNjZXB0YWJsZSBraW5kIG9mIGFuIG9iamVjdCB0byBkdW1wICIrdSl9Ij8iIT09dC50YWcmJndyaXRlU2NhbGFyKHQsdC5kdW1wLGUsbyxjKX1udWxsIT09dC50YWcmJiI/IiE9PXQudGFnJiYocz1lbmNvZGVVUkkoIiEiPT09dC50YWdbMF0/dC50YWcuc2xpY2UoMSk6dC50YWcpLnJlcGxhY2UoLyEvZywiJTIxIikscz0iISI9PT10LnRhZ1swXT8iISIrczoidGFnOnlhbWwub3JnLDIwMDI6Ij09PXMuc2xpY2UoMCwxOCk/IiEhIitzLnNsaWNlKDE4KToiITwiK3MrIj4iLHQuZHVtcD1zKyIgIit0LmR1bXApfXJldHVybiEwfWZ1bmN0aW9uIGdldER1cGxpY2F0ZVJlZmVyZW5jZXModCxlKXt2YXIgcixuLGk9W10sbz1bXTtmb3IoaW5zcGVjdE5vZGUodCxpLG8pLHI9MCxuPW8ubGVuZ3RoO3I8bjtyKz0xKWUuZHVwbGljYXRlcy5wdXNoKGlbb1tyXV0pO2UudXNlZER1cGxpY2F0ZXM9bmV3IEFycmF5KG4pfWZ1bmN0aW9uIGluc3BlY3ROb2RlKHQsZSxyKXt2YXIgbixpLG87aWYobnVsbCE9PXQmJiJvYmplY3QiPT10eXBlb2YgdClpZigtMSE9PShpPWUuaW5kZXhPZih0KSkpLTE9PT1yLmluZGV4T2YoaSkmJnIucHVzaChpKTtlbHNlIGlmKGUucHVzaCh0KSxBcnJheS5pc0FycmF5KHQpKWZvcihpPTAsbz10Lmxlbmd0aDtpPG87aSs9MSlpbnNwZWN0Tm9kZSh0W2ldLGUscik7ZWxzZSBmb3IoaT0wLG89KG49T2JqZWN0LmtleXModCkpLmxlbmd0aDtpPG87aSs9MSlpbnNwZWN0Tm9kZSh0W25baV1dLGUscil9ZnVuY3Rpb24gcmVuYW1lZCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiRnVuY3Rpb24geWFtbC4iK3QrIiBpcyByZW1vdmVkIGluIGpzLXlhbWwgNC4gVXNlIHlhbWwuIitlKyIgaW5zdGVhZCwgd2hpY2ggaXMgbm93IHNhZmUgYnkgZGVmYXVsdC4iKX19Y29uc3QgR3Q9e1R5cGU6aXQsU2NoZW1hOm90LEZBSUxTQUZFX1NDSEVNQTpjdCxKU09OX1NDSEVNQTptdCxDT1JFX1NDSEVNQTpndCxERUZBVUxUX1NDSEVNQTpxdCxsb2FkOld0LmxvYWQsbG9hZEFsbDpXdC5sb2FkQWxsLGR1bXA6e2R1bXA6ZnVuY3Rpb24gZHVtcCQxKHQsZSl7dmFyIHI9bmV3IFN0YXRlKGU9ZXx8e30pO3Iubm9SZWZzfHxnZXREdXBsaWNhdGVSZWZlcmVuY2VzKHQscik7dmFyIG49dDtyZXR1cm4gci5yZXBsYWNlciYmKG49ci5yZXBsYWNlci5jYWxsKHsiIjpufSwiIixuKSksd3JpdGVOb2RlKHIsMCxuLCEwLCEwKT9yLmR1bXArIlxuIjoiIn19LmR1bXAsWUFNTEV4Y2VwdGlvbjp0dCx0eXBlczp7YmluYXJ5Onh0LGZsb2F0Onl0LG1hcDp1dCxudWxsOmx0LHBhaXJzOkF0LHNldDpNdCx0aW1lc3RhbXA6U3QsYm9vbDpodCxpbnQ6cHQsbWVyZ2U6d3Qsb21hcDpCdCxzZXE6c3Qsc3RyOmF0fSxzYWZlTG9hZDpyZW5hbWVkKCJzYWZlTG9hZCIsImxvYWQiKSxzYWZlTG9hZEFsbDpyZW5hbWVkKCJzYWZlTG9hZEFsbCIsImxvYWRBbGwiKSxzYWZlRHVtcDpyZW5hbWVkKCJzYWZlRHVtcCIsImR1bXAiKX0sSnQ9ImNvbmZpZ3NfdXBkYXRlIixRdD0iY29uZmlnc190b2dnbGUiO2Z1bmN0aW9uIHVwZGF0ZSh0LGUpe3JldHVybnt0eXBlOkp0LHBheWxvYWQ6e1t0XTplfX19ZnVuY3Rpb24gdG9nZ2xlKHQpe3JldHVybnt0eXBlOlF0LHBheWxvYWQ6dH19Y29uc3QgbG9hZGVkPSgpPT4oKT0+e30sZG93bmxvYWRDb25maWc9dD0+ZT0+e2NvbnN0e2ZuOntmZXRjaDpyfX09ZTtyZXR1cm4gcih0KX0sZ2V0Q29uZmlnQnlVcmw9KHQsZSk9PnI9Pntjb25zdHtzcGVjQWN0aW9uczpuLGNvbmZpZ3NBY3Rpb25zOml9PXI7aWYodClyZXR1cm4gaS5kb3dubG9hZENvbmZpZyh0KS50aGVuKG5leHQsbmV4dCk7ZnVuY3Rpb24gbmV4dChpKXtpIGluc3RhbmNlb2YgRXJyb3J8fGkuc3RhdHVzPj00MDA/KG4udXBkYXRlTG9hZGluZ1N0YXR1cygiZmFpbGVkQ29uZmlnIiksbi51cGRhdGVMb2FkaW5nU3RhdHVzKCJmYWlsZWRDb25maWciKSxuLnVwZGF0ZVVybCgiIiksY29uc29sZS5lcnJvcihpLnN0YXR1c1RleHQrIiAiK3QudXJsKSxlKG51bGwpKTplKCgodCxlKT0+e3RyeXtyZXR1cm4gR3QubG9hZCh0KX1jYXRjaCh0KXtyZXR1cm4gZSYmZS5lcnJBY3Rpb25zLm5ld1Rocm93bkVycihuZXcgRXJyb3IodCkpLHt9fX0pKGkudGV4dCxyKSl9fSxnZXQ9KHQsZSk9PnQuZ2V0SW4oQXJyYXkuaXNBcnJheShlKT9lOltlXSksWHQ9e1tKdF06KHQsZSk9PnQubWVyZ2UoKDAsby5mcm9tSlMpKGUucGF5bG9hZCkpLFtRdF06KHQsZSk9Pntjb25zdCByPWUucGF5bG9hZCxuPXQuZ2V0KHIpO3JldHVybiB0LnNldChyLCFuKX19O3ZhciB0ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDcyNDgpLGVlPV9fd2VicGFja19yZXF1aXJlX18ubih0ZSkscmU9X193ZWJwYWNrX3JlcXVpcmVfXyg3NjY2KSxuZT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocmUpO2NvbnN0IGllPWNvbnNvbGUuZXJyb3Isd2l0aEVycm9yQm91bmRhcnk9dD0+ZT0+e2NvbnN0e2dldENvbXBvbmVudDpyLGZuOml9PXQoKSxvPXIoIkVycm9yQm91bmRhcnkiKSxhPWkuZ2V0RGlzcGxheU5hbWUoZSk7Y2xhc3MgV2l0aEVycm9yQm91bmRhcnkgZXh0ZW5kcyBuLkNvbXBvbmVudHtyZW5kZXIoKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KG8se3RhcmdldE5hbWU6YSxnZXRDb21wb25lbnQ6cixmbjppfSxuLmNyZWF0ZUVsZW1lbnQoZSxuZSgpKHt9LHRoaXMucHJvcHMsdGhpcy5jb250ZXh0KSkpfX12YXIgcztyZXR1cm4gV2l0aEVycm9yQm91bmRhcnkuZGlzcGxheU5hbWU9YFdpdGhFcnJvckJvdW5kYXJ5KCR7YX0pYCwocz1lKS5wcm90b3R5cGUmJnMucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQmJihXaXRoRXJyb3JCb3VuZGFyeS5wcm90b3R5cGUubWFwU3RhdGVUb1Byb3BzPWUucHJvdG90eXBlLm1hcFN0YXRlVG9Qcm9wcyksV2l0aEVycm9yQm91bmRhcnl9LGZhbGxiYWNrPSh7bmFtZTp0fSk9Pm4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJmYWxsYmFjayJ9LCLwn5ixICIsbi5jcmVhdGVFbGVtZW50KCJpIixudWxsLCJDb3VsZCBub3QgcmVuZGVyICIsInQiPT09dD8idGhpcyBjb21wb25lbnQiOnQsIiwgc2VlIHRoZSBjb25zb2xlLiIpKTtjbGFzcyBFcnJvckJvdW5kYXJ5IGV4dGVuZHMgbi5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17dGFyZ2V0TmFtZToidGhpcyBjb21wb25lbnQiLGdldENvbXBvbmVudDooKT0+ZmFsbGJhY2ssZm46e2NvbXBvbmVudERpZENhdGNoOmllfSxjaGlsZHJlbjpudWxsfTtzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKHQpe3JldHVybntoYXNFcnJvcjohMCxlcnJvcjp0fX1jb25zdHJ1Y3RvciguLi50KXtzdXBlciguLi50KSx0aGlzLnN0YXRlPXtoYXNFcnJvcjohMSxlcnJvcjpudWxsfX1jb21wb25lbnREaWRDYXRjaCh0LGUpe3RoaXMucHJvcHMuZm4uY29tcG9uZW50RGlkQ2F0Y2godCxlKX1yZW5kZXIoKXtjb25zdHtnZXRDb21wb25lbnQ6dCx0YXJnZXROYW1lOmUsY2hpbGRyZW46cn09dGhpcy5wcm9wcztpZih0aGlzLnN0YXRlLmhhc0Vycm9yKXtjb25zdCByPXQoIkZhbGxiYWNrIik7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChyLHtuYW1lOmV9KX1yZXR1cm4gcn19Y29uc3Qgb2U9RXJyb3JCb3VuZGFyeSxhZT1bdG9wX2JhcixmdW5jdGlvbiBjb25maWdzUGx1Z2luKCl7cmV0dXJue3N0YXRlUGx1Z2luczp7Y29uZmlnczp7cmVkdWNlcnM6WHQsYWN0aW9uczp0LHNlbGVjdG9yczplfX19fSxzdGFkYWxvbmVfbGF5b3V0LCgoe2NvbXBvbmVudExpc3Q6dD1bXSxmdWxsT3ZlcnJpZGU6ZT0hMX09e30pPT4oe2dldFN5c3RlbTpyfSk9Pntjb25zdCBuPWU/dDpbIkFwcCIsIkJhc2VMYXlvdXQiLCJWZXJzaW9uUHJhZ21hRmlsdGVyIiwiSW5mb0NvbnRhaW5lciIsIlNlcnZlcnNDb250YWluZXIiLCJTY2hlbWVzQ29udGFpbmVyIiwiQXV0aG9yaXplQnRuQ29udGFpbmVyIiwiRmlsdGVyQ29udGFpbmVyIiwiT3BlcmF0aW9ucyIsIk9wZXJhdGlvbkNvbnRhaW5lciIsInBhcmFtZXRlcnMiLCJyZXNwb25zZXMiLCJPcGVyYXRpb25TZXJ2ZXJzIiwiTW9kZWxzIiwiTW9kZWxXcmFwcGVyIiwuLi50XSxpPWVlKCkobixBcnJheShuLmxlbmd0aCkuZmlsbCgoKHQse2ZuOmV9KT0+ZS53aXRoRXJyb3JCb3VuZGFyeSh0KSkpKTtyZXR1cm57Zm46e2NvbXBvbmVudERpZENhdGNoOmllLHdpdGhFcnJvckJvdW5kYXJ5OndpdGhFcnJvckJvdW5kYXJ5KHIpfSxjb21wb25lbnRzOntFcnJvckJvdW5kYXJ5Om9lLEZhbGxiYWNrOmZhbGxiYWNrfSx3cmFwQ29tcG9uZW50czppfX0pKHtmdWxsT3ZlcnJpZGU6ITAsY29tcG9uZW50TGlzdDpbIlRvcGJhciIsIlN0YW5kYWxvbmVMYXlvdXQiLCJvbmxpbmVWYWxpZGF0b3JCYWRnZSJdfSldfSkoKSxyPXIuZGVmYXVsdH0pKCkpKTs=</File>
        <File Location="var/httpd/htdocs/js/thirdparty/swagger/swagger-ui-standalone-preset.js.map" Permission="660" Encode="Base64">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RUFBUSxJQUNoRCxFQUFRLElBQU0sRUFBUSxJQUFLLEVBQVEsSUFBSyxFQUFRLElBQ2hELEVBQVEsSUFBTSxFQUFRLElBQUssRUFBUSxJQUFLLEVBQVEsSUFDaEQsRUFBUSxJQUFNLEVBQVEsSUFBSyxFQUFRLElBQUssRUFBUSxJQUNoRCxFQUFRLElBQU0sRUFBUSxJQUN0QixFQUFRLElBQU0sRUFBUSxJQUFLLEVBQVEsSUFBSyxFQUFRLElBQUssRUFBUSxJQUFLLEVBQVEsSUFDMUUsRUFBUSxJQUFNLEVBQVEsSUFBSyxFQUFRLElBQUssRUFBUSxJQUFLLEVBQVEsSUFBSyxFQUFRLElBQzFFLEVBQVEsSUFBTSxFQUFRLElBQUssRUFBUSxJQUFLLEVBQVEsSUFDaEQsRUFBUSxJQUFNLEVBQVEsSUFBSyxFQUFRLElBQUssRUFBUSxJQUNoRCxFQUFRLElBQU0sRUFBUSxJQUFLLEVBQVEsSUFDbkMsRUFBUSxLQUFNLEVBQVEsS0FDdEIsRUFBUSxLQUFNLEVBQVEsS0FDdEIsRUFBUSxLQUVSLEVBQVUsSUFBTSxFQUFVLElBQUssRUFBVSxJQUN6QyxFQUFVLElBQU0sRUFBVSxJQUFLLEVBQVUsSUFDekMsRUFBVSxJQUFNLEVBQVUsSUFBSyxFQUFVLElBQUssRUFBVSxJQUN4RCxFQUFVLElBQU0sRUFBVSxJQUFLLEVBQVUsSUFBSyxFQUFVLElBQ3hELEVBQVUsSUFBTSxFQUFVLElBQUssRUFBVSxJQUFLLEVBQVUsSUFDeEQsRUFBVSxJQUFNLEVBQVUsSUFBSyxFQUFVLElBQUssRUFBVSxJQUFLLEVBQVUsSUFDdkUsRUFBVSxJQUFNLEVBQVUsSUFBSyxFQUFVLElBQUssRUFBVSxJQUFLLEVBQVUsSUFDdkUsRUFBVSxJQUFNLEVBQVUsSUFBSyxFQUFVLElBQUssRUFBVSxJQUN4RCxFQUFVLElBQU0sRUFBVSxJQUFLLEVBQVUsSUFBSyxFQUFVLElBQ3hELEVBQVUsSUFBTSxFQUFVLElBQUssRUFBVSxJQUFLLEVBQVUsSUFDeEQsRUFBVSxJQUFNLEVBQVUsSUFBSyxFQUFVLElBQUssRUFBVSxJQUFLLEVBQVUsSUFD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ekMsQ0FFQWw0QixNQUFBQSxHQUNFLE1BQU0sYUFBRXFULEVBQVksV0FBRWtrQixFQUFVLFNBQUV0NkIsR0FBYWwyQyxLQUFLNG1DLE1BRXBELEdBQUk1bUMsS0FBSyt0RCxNQUFNbWpCLFNBQVUsQ0FDdkIsTUFBTUUsRUFBb0I5a0IsRUFBYSxZQUN2QyxPQUFPRCxFQUFBQSxjQUFDK2tCLEVBQWlCLENBQUNwK0QsS0FBTXc5RCxHQUNsQyxDQUVBLE9BQU90NkIsQ0FDVCxFQUdGLHVCQ2pDQSxHQVZ5QixDQUN2QjJkLFFDTGEsU0FBU3dkLGdCQUV0QixNQUFPLENBQ0xDLGFBQWMsQ0FDWnBoQixRQUFTLENBQ1BxaEIsU0FBUSxHQUNSQyxRQUFPLEVBQ1BDLFVBQVNBLElBSWpCLEVESkUza0IsaUJFTHVCNGtCLEdBQUVDLGdCQUFnQixHQUFJQyxnQkFBZSxHQUFTLENBQUMsSUFBTSxFQUFHdkIsZ0JBQy9FLE1BaUJNd0IsRUFBc0JELEVBQWVELEVBQWdCLENBaEJ6RCxNQUNBLGFBQ0Esc0JBQ0EsZ0JBQ0EsbUJBQ0EsbUJBQ0Esd0JBQ0Esa0JBQ0EsYUFDQSxxQkFDQSxhQUNBLFlBQ0EsbUJBQ0EsU0FDQSxrQkFFc0ZBLEdBRWxGRyxFQUFpQi9nQyxLQUFVOGdDLEVBQXFCcnZFLE1BQU1xdkUsRUFBb0IvdkUsUUFBUXFKLE1BRHBFNG1FLENBQUNDLEdBQVl2OUQsUUFBU0EsRUFBRzI3RCxrQkFBa0I0QixNQUcvRCxNQUFPLENBQ0x2OUQsR0FBSSxDQUNGMDdELGtCQUFpQixHQUNqQkMsa0JBQW1CQSxrQkFBa0JDLElBRXZDdGpCLFdBQVksQ0FDVndqQixjQUFhLEdBQ2JRLFNBQVFBLFVBRVZlLGlCQUNELEVGMUJERyxDQUFpQixDQUNmTCxjQUFjLEVBQ2RELGNBQWUsQ0FBQyxTQUFVLG1CQUFvQiIsInNvdXJjZXMiOlsid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvQGJyYWludHJlZS9zYW5pdGl6ZS11cmwvZGlzdC9jb25zdGFudHMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9AYnJhaW50cmVlL3Nhbml0aXplLXVybC9kaXN0L2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvYmFzZTY0LWpzL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvYnVmZmVyL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY3NzLmVzY2FwZS9jc3MuZXNjYXBlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvaWVlZTc1NC9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2ltbXV0YWJsZS9kaXN0L2ltbXV0YWJsZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX0RhdGFWaWV3LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19IYXNoLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19MaXN0Q2FjaGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX01hcC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fTWFwQ2FjaGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX1Byb21pc2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX1NldC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fU2V0Q2FjaGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX1N0YWNrLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19TeW1ib2wuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX1VpbnQ4QXJyYXkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX1dlYWtNYXAuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2FycmF5RmlsdGVyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hcnJheUxpa2VLZXlzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hcnJheU1hcC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXJyYXlQdXNoLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hcnJheVJlZHVjZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXJyYXlTb21lLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hc2NpaVRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2FzY2lpV29yZHMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Fzc2lnblZhbHVlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hc3NvY0luZGV4T2YuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VBc3NpZ25WYWx1ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUVhY2guanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VGaW5kSW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VGb3IuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VGb3JPd24uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VHZXQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VHZXRBbGxLZXlzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlR2V0VGFnLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSGFzSW4uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc0FyZ3VtZW50cy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzRXF1YWwuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc0VxdWFsRGVlcC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzTWF0Y2guanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc05hdGl2ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzVHlwZWRBcnJheS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUl0ZXJhdGVlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlS2V5cy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZU1hdGNoZXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VNYXRjaGVzUHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VQcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVByb3BlcnR5RGVlcC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVByb3BlcnR5T2YuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VTbGljZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVNvbWUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VUaW1lcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVRvU3RyaW5nLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlVHJpbS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVVuYXJ5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlWmlwT2JqZWN0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jYWNoZUhhcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY2FzdFBhdGguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Nhc3RTbGljZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY29yZUpzRGF0YS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3JlYXRlQmFzZUVhY2guanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NyZWF0ZUJhc2VGb3IuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NyZWF0ZUNhc2VGaXJzdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3JlYXRlQ29tcG91bmRlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3JlYXRlRmluZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZGVidXJyTGV0dGVyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19kZWZpbmVQcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZXF1YWxBcnJheXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2VxdWFsQnlUYWcuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2VxdWFsT2JqZWN0cy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZnJlZUdsb2JhbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0QWxsS2V5cy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0TWFwRGF0YS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0TWF0Y2hEYXRhLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXROYXRpdmUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldFJhd1RhZy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0U3ltYm9scy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0VGFnLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRWYWx1ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faGFzUGF0aC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faGFzVW5pY29kZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faGFzVW5pY29kZVdvcmQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2hhc2hDbGVhci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faGFzaERlbGV0ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faGFzaEdldC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faGFzaEhhcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faGFzaFNldC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faXNJbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faXNJdGVyYXRlZUNhbGwuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2lzS2V5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19pc0tleWFibGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2lzTWFza2VkLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19pc1Byb3RvdHlwZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faXNTdHJpY3RDb21wYXJhYmxlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19saXN0Q2FjaGVDbGVhci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbGlzdENhY2hlRGVsZXRlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19saXN0Q2FjaGVHZXQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2xpc3RDYWNoZUhhcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbGlzdENhY2hlU2V0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19tYXBDYWNoZUNsZWFyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19tYXBDYWNoZURlbGV0ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWFwQ2FjaGVHZXQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX21hcENhY2hlSGFzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19tYXBDYWNoZVNldC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWFwVG9BcnJheS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWF0Y2hlc1N0cmljdENvbXBhcmFibGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX21lbW9pemVDYXBwZWQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX25hdGl2ZUNyZWF0ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbmF0aXZlS2V5cy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbm9kZVV0aWwuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX29iamVjdFRvU3RyaW5nLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19vdmVyQXJnLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19yb290LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19zZXRDYWNoZUFkZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fc2V0Q2FjaGVIYXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3NldFRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3N0YWNrQ2xlYXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3N0YWNrRGVsZXRlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19zdGFja0dldC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fc3RhY2tIYXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3N0YWNrU2V0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19zdHJpbmdUb0FycmF5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL19zdHJpbmdUb1BhdGguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3RvS2V5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL190b1NvdXJjZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fdHJpbW1lZEVuZEluZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL191bmljb2RlVG9BcnJheS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fdW5pY29kZVdvcmRzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2NhbWVsQ2FzZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9jYXBpdGFsaXplLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2RlYnVyci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9lcS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9maW5kLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2ZpbmRJbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9nZXQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaGFzSW4uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaWRlbnRpdHkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNBcmd1bWVudHMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNBcnJheS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0FycmF5TGlrZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0J1ZmZlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0Z1bmN0aW9uLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzTGVuZ3RoLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzT2JqZWN0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzT2JqZWN0TGlrZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc1N5bWJvbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc1R5cGVkQXJyYXkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gva2V5cy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC9tZW1vaXplLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL3Byb3BlcnR5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL3NvbWUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvc3R1YkFycmF5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvbG9kYXNoL3N0dWJGYWxzZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC90b0Zpbml0ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC90b0ludGVnZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvdG9OdW1iZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvdG9TdHJpbmcuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvdXBwZXJGaXJzdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC93b3Jkcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2xvZGFzaC96aXBPYmplY3QuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9wcm9jZXNzL2Jyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9yYW5kb21ieXRlcy9icm93c2VyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvcmVhY3QvY2pzL3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvcmVhY3QvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9zYWZlLWJ1ZmZlci9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL3NoYS5qcy9oYXNoLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvc2hhLmpzL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvc2hhLmpzL3NoYS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL3NoYS5qcy9zaGExLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvc2hhLmpzL3NoYTIyNC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL3NoYS5qcy9zaGEyNTYuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9zaGEuanMvc2hhMzg0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvc2hhLmpzL3NoYTUxMi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvaGVscGVycy9leHRlbmRzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2FjdHVhbC9pbnN0YW5jZS9iaW5kLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2FjdHVhbC9vYmplY3QvYXNzaWduLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2Z1bmN0aW9uL3ZpcnR1YWwvYmluZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9pbnN0YW5jZS9iaW5kLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL29iamVjdC9hc3NpZ24uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZmVhdHVyZXMvaW5zdGFuY2UvYmluZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9mZWF0dXJlcy9vYmplY3QvYXNzaWduLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2Z1bGwvaW5zdGFuY2UvYmluZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9mdWxsL29iamVjdC9hc3NpZ24uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2EtY2FsbGFibGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2FuLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYXJyYXktaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2FycmF5LXNsaWNlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9jbGFzc29mLXJhdy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZGVmaW5lLWdsb2JhbC1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZGVzY3JpcHRvcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2RvY3VtZW50LWFsbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZG9jdW1lbnQtY3JlYXRlLWVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2VuZ2luZS11c2VyLWFnZW50LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9lbmdpbmUtdjgtdmVyc2lvbi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZW51bS1idWcta2V5cy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZXhwb3J0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9mYWlscy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tYXBwbHkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1uYXRpdmUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcy1jbGF1c2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLXByb3RvdHlwZS1tZXRob2QuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2dldC1idWlsdC1pbi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZ2V0LW1ldGhvZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZ2xvYmFsLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9oaWRkZW4ta2V5cy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaWU4LWRvbS1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2luZGV4ZWQtb2JqZWN0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pcy1jYWxsYWJsZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtZm9yY2VkLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pcy1udWxsLW9yLXVuZGVmaW5lZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtb2JqZWN0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pcy1wdXJlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pcy1zeW1ib2wuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9tYXRoLXRydW5jLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtYXNzaWduLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1zeW1ib2xzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtaXMtcHJvdG90eXBlLW9mLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3Qta2V5cy1pbnRlcm5hbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWtleXMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1wcm9wZXJ0eS1pcy1lbnVtZXJhYmxlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vcmRpbmFyeS10by1wcmltaXRpdmUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3BhdGguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9zaGFyZWQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3N5bWJvbC1jb25zdHJ1Y3Rvci1kZXRlY3Rpb24uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8tbGVuZ3RoLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90by1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3RvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8tcHJvcGVydHkta2V5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90cnktdG8tc3RyaW5nLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy91aWQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3VzZS1zeW1ib2wtYXMtdWlkLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy92OC1wcm90b3R5cGUtZGVmaW5lLWJ1Zy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5mdW5jdGlvbi5iaW5kLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMub2JqZWN0LmFzc2lnbi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvYmluZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvb2JqZWN0L2Fzc2lnbi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0L3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC93ZWJwYWNrL3J1bnRpbWUvZ2xvYmFsIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0L3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC93ZWJwYWNrL3J1bnRpbWUvbm9kZSBtb2R1bGUgZGVjb3JhdG9yIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9zcmMvc3RhbmRhbG9uZS9wbHVnaW5zL3N0YWRhbG9uZS1sYXlvdXQvY29tcG9uZW50cy9TdGFuZGFsb25lTGF5b3V0LmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vc3JjL3N0YW5kYWxvbmUvcGx1Z2lucy9zdGFkYWxvbmUtbGF5b3V0L2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9zcmMvY29yZS93aW5kb3cuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL3NyYy9jb3JlL3V0aWxzL2dldC1wYXJhbWV0ZXItc2NoZW1hLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9zcmMvY29yZS91dGlscy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vc3JjL3N0YW5kYWxvbmUvcGx1Z2lucy90b3AtYmFyL2NvbXBvbmVudHMvVG9wQmFyLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vc3JjL3N0YW5kYWxvbmUvcGx1Z2lucy90b3AtYmFyL2Fzc2V0cy9sb2dvX3NtYWxsLnN2ZyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vc3JjL3N0YW5kYWxvbmUvcGx1Z2lucy90b3AtYmFyL2NvbXBvbmVudHMvTG9nby5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL3NyYy9zdGFuZGFsb25lL3BsdWdpbnMvdG9wLWJhci9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vbm9kZV9tb2R1bGVzL2pzLXlhbWwvZGlzdC9qcy15YW1sLm1qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vc3JjL2NvcmUvcGx1Z2lucy9jb25maWdzL2FjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL3NyYy9jb3JlL3BsdWdpbnMvY29uZmlncy9mbi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vc3JjL2NvcmUvcGx1Z2lucy9jb25maWdzL3NlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vc3JjL2NvcmUvcGx1Z2lucy9jb25maWdzL3JlZHVjZXJzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9zcmMvY29yZS9wbHVnaW5zL3NhZmUtcmVuZGVyL2ZuLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vc3JjL2NvcmUvcGx1Z2lucy9zYWZlLXJlbmRlci9jb21wb25lbnRzL2ZhbGxiYWNrLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vc3JjL2NvcmUvcGx1Z2lucy9zYWZlLXJlbmRlci9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5LmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlTdGFuZGFsb25lUHJlc2V0Ly4vc3JjL3N0YW5kYWxvbmUvcHJlc2V0cy9zdGFuZGFsb25lL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSVN0YW5kYWxvbmVQcmVzZXQvLi9zcmMvY29yZS9wbHVnaW5zL2NvbmZpZ3MvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJU3RhbmRhbG9uZVByZXNldC8uL3NyYy9jb3JlL3BsdWdpbnMvc2FmZS1yZW5kZXIvaW5kZXguanMiXSwibmFtZXMiOlsid2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJyb290IiwiZmFjdG9yeSIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJ0aGlzIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsIkJMQU5LX1VSTCIsInJlbGF0aXZlRmlyc3RDaGFyYWN0ZXJzIiwidXJsU2NoZW1lUmVnZXgiLCJjdHJsQ2hhcmFjdGVyc1JlZ2V4IiwiaHRtbEN0cmxFbnRpdHlSZWdleCIsImh0bWxFbnRpdGllc1JlZ2V4IiwiaW52YWxpZFByb3RvY29sUmVnZXgiLCJjb25zdGFudHNfMSIsImJ5dGVMZW5ndGgiLCJiNjQiLCJsZW5zIiwiZ2V0TGVucyIsInZhbGlkTGVuIiwicGxhY2VIb2xkZXJzTGVuIiwidG9CeXRlQXJyYXkiLCJ0bXAiLCJpIiwiYXJyIiwiQXJyIiwiX2J5dGVMZW5ndGgiLCJjdXJCeXRlIiwibGVuIiwicmV2TG9va3VwIiwiY2hhckNvZGVBdCIsImZyb21CeXRlQXJyYXkiLCJ1aW50OCIsImxlbmd0aCIsImV4dHJhQnl0ZXMiLCJwYXJ0cyIsIm1heENodW5rTGVuZ3RoIiwibGVuMiIsInB1c2giLCJlbmNvZGVDaHVuayIsImxvb2t1cCIsImpvaW4iLCJVaW50OEFycmF5IiwiQXJyYXkiLCJjb2RlIiwiRXJyb3IiLCJpbmRleE9mIiwic3RhcnQiLCJlbmQiLCJudW0iLCJvdXRwdXQiLCJiYXNlNjQiLCJpZWVlNzU0IiwiY3VzdG9tSW5zcGVjdFN5bWJvbCIsIlN5bWJvbCIsIkJ1ZmZlciIsIlNsb3dCdWZmZXIiLCJhbGxvYyIsIklOU1BFQ1RfTUFYX0JZVEVTIiwiS19NQVhfTEVOR1RIIiwiY3JlYXRlQnVmZmVyIiwiUmFuZ2VFcnJvciIsImJ1ZiIsInNldFByb3RvdHlwZU9mIiwicHJvdG90eXBlIiwiYXJnIiwiZW5jb2RpbmdPck9mZnNldCIsIlR5cGVFcnJvciIsImFsbG9jVW5zYWZlIiwiZnJvbSIsImZyb21TdHJpbmciLCJzdHJpbmciLCJlbmNvZGluZyIsImlzRW5jb2RpbmciLCJhY3R1YWwiLCJ3cml0ZSIsInNsaWNlIiwiQXJyYXlCdWZmZXIiLCJpc1ZpZXciLCJmcm9tQXJyYXlWaWV3IiwiYXJyYXlWaWV3IiwiaXNJbnN0YW5jZSIsImNvcHkiLCJmcm9tQXJyYXlCdWZmZXIiLCJidWZmZXIiLCJieXRlT2Zmc2V0IiwiZnJvbUFycmF5TGlrZSIsIlNoYXJlZEFycmF5QnVmZmVyIiwidmFsdWVPZiIsImIiLCJmcm9tT2JqZWN0Iiwib2JqIiwiaXNCdWZmZXIiLCJjaGVja2VkIiwidW5kZWZpbmVkIiwibnVtYmVySXNOYU4iLCJ0eXBlIiwiaXNBcnJheSIsImRhdGEiLCJ0b1ByaW1pdGl2ZSIsImFzc2VydFNpemUiLCJzaXplIiwiYXJyYXkiLCJ0b1N0cmluZyIsIm11c3RNYXRjaCIsImFyZ3VtZW50cyIsImxvd2VyZWRDYXNlIiwidXRmOFRvQnl0ZXMiLCJiYXNlNjRUb0J5dGVzIiwidG9Mb3dlckNhc2UiLCJzbG93VG9TdHJpbmciLCJoZXhTbGljZSIsInV0ZjhTbGljZSIsImFzY2lpU2xpY2UiLCJsYXRpbjFTbGljZSIsImJhc2U2NFNsaWNlIiwidXRmMTZsZVNsaWNlIiwic3dhcCIsIm4iLCJtIiwiYmlkaXJlY3Rpb25hbEluZGV4T2YiLCJ2YWwiLCJkaXIiLCJhcnJheUluZGV4T2YiLCJjYWxsIiwibGFzdEluZGV4T2YiLCJpbmRleFNpemUiLCJhcnJMZW5ndGgiLCJ2YWxMZW5ndGgiLCJTdHJpbmciLCJyZWFkIiwicmVhZFVJbnQxNkJFIiwiZm91bmRJbmRleCIsImZvdW5kIiwiaiIsImhleFdyaXRlIiwib2Zmc2V0IiwiTnVtYmVyIiwicmVtYWluaW5nIiwic3RyTGVuIiwicGFyc2VkIiwicGFyc2VJbnQiLCJzdWJzdHIiLCJ1dGY4V3JpdGUiLCJibGl0QnVmZmVyIiwiYXNjaWlXcml0ZSIsImFzY2lpVG9CeXRlcyIsInN0ciIsImJ5dGVBcnJheSIsImJhc2U2NFdyaXRlIiwidWNzMldyaXRlIiwidXRmMTZsZVRvQnl0ZXMiLCJ1bml0cyIsImMiLCJoaSIsImxvIiwiTWF0aCIsIm1pbiIsInJlcyIsImZpcnN0Qnl0ZSIsImNvZGVQb2ludCIsImJ5dGVzUGVyU2VxdWVuY2UiLCJzZWNvbmRCeXRlIiwidGhpcmRCeXRlIiwiZm91cnRoQnl0ZSIsInRlbXBDb2RlUG9pbnQiLCJkZWNvZGVDb2RlUG9pbnRzQXJyYXkiLCJjb2RlUG9pbnRzIiwiTUFYX0FSR1VNRU5UU19MRU5HVEgiLCJmcm9tQ2hhckNvZGUiLCJhcHBseSIsImtNYXhMZW5ndGgiLCJUWVBFRF9BUlJBWV9TVVBQT1JUIiwidHlwZWRBcnJheVN1cHBvcnQiLCJwcm90byIsImZvbyIsImUiLCJjb25zb2xlIiwiZXJyb3IiLCJlbnVtZXJhYmxlIiwiZ2V0IiwicG9vbFNpemUiLCJmaWxsIiwiYWxsb2NVbnNhZmVTbG93IiwiX2lzQnVmZmVyIiwiY29tcGFyZSIsImEiLCJ4IiwieSIsImNvbmNhdCIsImxpc3QiLCJwb3MiLCJzZXQiLCJzd2FwMTYiLCJzd2FwMzIiLCJzd2FwNjQiLCJ0b0xvY2FsZVN0cmluZyIsImVxdWFscyIsImluc3BlY3QiLCJtYXgiLCJyZXBsYWNlIiwidHJpbSIsInRhcmdldCIsInRoaXNTdGFydCIsInRoaXNFbmQiLCJ0aGlzQ29weSIsInRhcmdldENvcHkiLCJpbmNsdWRlcyIsImlzRmluaXRlIiwidG9KU09OIiwiX2FyciIsInJldCIsIm91dCIsImhleFNsaWNlTG9va3VwVGFibGUiLCJieXRlcyIsImNoZWNrT2Zmc2V0IiwiZXh0IiwiY2hlY2tJbnQiLCJ3cnRCaWdVSW50NjRMRSIsImNoZWNrSW50QkkiLCJCaWdJbnQiLCJ3cnRCaWdVSW50NjRCRSIsImNoZWNrSUVFRTc1NCIsIndyaXRlRmxvYXQiLCJsaXR0bGVFbmRpYW4iLCJub0Fzc2VydCIsIndyaXRlRG91YmxlIiwibmV3QnVmIiwic3ViYXJyYXkiLCJyZWFkVWludExFIiwicmVhZFVJbnRMRSIsIm11bCIsInJlYWRVaW50QkUiLCJyZWFkVUludEJFIiwicmVhZFVpbnQ4IiwicmVhZFVJbnQ4IiwicmVhZFVpbnQxNkxFIiwicmVhZFVJbnQxNkxFIiwicmVhZFVpbnQxNkJFIiwicmVhZFVpbnQzMkxFIiwicmVhZFVJbnQzMkxFIiwicmVhZFVpbnQzMkJFIiwicmVhZFVJbnQzMkJFIiwicmVhZEJpZ1VJbnQ2NExFIiwiZGVmaW5lQmlnSW50TWV0aG9kIiwidmFsaWRhdGVOdW1iZXIiLCJmaXJzdCIsImxhc3QiLCJib3VuZHNFcnJvciIsInJlYWRCaWdVSW50NjRCRSIsInJlYWRJbnRMRSIsInBvdyIsInJlYWRJbnRCRSIsInJlYWRJbnQ4IiwicmVhZEludDE2TEUiLCJyZWFkSW50MTZCRSIsInJlYWRJbnQzMkxFIiwicmVhZEludDMyQkUiLCJyZWFkQmlnSW50NjRMRSIsInJlYWRCaWdJbnQ2NEJFIiwicmVhZEZsb2F0TEUiLCJyZWFkRmxvYXRCRSIsInJlYWREb3VibGVMRSIsInJlYWREb3VibGVCRSIsIndyaXRlVWludExFIiwid3JpdGVVSW50TEUiLCJ3cml0ZVVpbnRCRSIsIndyaXRlVUludEJFIiwid3JpdGVVaW50OCIsIndyaXRlVUludDgiLCJ3cml0ZVVpbnQxNkxFIiwid3JpdGVVSW50MTZMRSIsIndyaXRlVWludDE2QkUiLCJ3cml0ZVVJbnQxNkJFIiwid3JpdGVVaW50MzJMRSIsIndyaXRlVUludDMyTEUiLCJ3cml0ZVVpbnQzMkJFIiwid3JpdGVVSW50MzJCRSIsIndyaXRlQmlnVUludDY0TEUiLCJ3cml0ZUJpZ1VJbnQ2NEJFIiwid3JpdGVJbnRMRSIsImxpbWl0Iiwic3ViIiwid3JpdGVJbnRCRSIsIndyaXRlSW50OCIsIndyaXRlSW50MTZMRSIsIndyaXRlSW50MTZCRSIsIndyaXRlSW50MzJMRSIsIndyaXRlSW50MzJCRSIsIndyaXRlQmlnSW50NjRMRSIsIndyaXRlQmlnSW50NjRCRSIsIndyaXRlRmxvYXRMRSIsIndyaXRlRmxvYXRCRSIsIndyaXRlRG91YmxlTEUiLCJ3cml0ZURvdWJsZUJFIiwidGFyZ2V0U3RhcnQiLCJjb3B5V2l0aGluIiwiZXJyb3JzIiwiRSIsInN5bSIsImdldE1lc3NhZ2UiLCJCYXNlIiwiTm9kZUVycm9yIiwiY29uc3RydWN0b3IiLCJzdXBlciIsIndyaXRhYmxlIiwiY29uZmlndXJhYmxlIiwibmFtZSIsInN0YWNrIiwibWVzc2FnZSIsImFkZE51bWVyaWNhbFNlcGFyYXRvciIsInJhbmdlIiwiRVJSX09VVF9PRl9SQU5HRSIsImNoZWNrQm91bmRzIiwiRVJSX0lOVkFMSURfQVJHX1RZUEUiLCJmbG9vciIsIkVSUl9CVUZGRVJfT1VUX09GX0JPVU5EUyIsImlucHV0IiwibXNnIiwicmVjZWl2ZWQiLCJpc0ludGVnZXIiLCJhYnMiLCJJTlZBTElEX0JBU0U2NF9SRSIsIkluZmluaXR5IiwibGVhZFN1cnJvZ2F0ZSIsImJhc2U2NGNsZWFuIiwic3BsaXQiLCJzcmMiLCJkc3QiLCJhbHBoYWJldCIsInRhYmxlIiwiaTE2IiwiZm4iLCJCdWZmZXJCaWdJbnROb3REZWZpbmVkIiwiZyIsIkNTUyIsImVzY2FwZSIsImNzc0VzY2FwZSIsImNvZGVVbml0IiwiaW5kZXgiLCJyZXN1bHQiLCJmaXJzdENvZGVVbml0IiwiY2hhckF0IiwiaXNMRSIsIm1MZW4iLCJuQnl0ZXMiLCJlTGVuIiwiZU1heCIsImVCaWFzIiwibkJpdHMiLCJkIiwicyIsIk5hTiIsInJ0IiwiaXNOYU4iLCJsb2ciLCJMTjIiLCJTTElDRSQwIiwiY3JlYXRlQ2xhc3MiLCJjdG9yIiwic3VwZXJDbGFzcyIsImNyZWF0ZSIsIkl0ZXJhYmxlIiwiaXNJdGVyYWJsZSIsIlNlcSIsIktleWVkSXRlcmFibGUiLCJpc0tleWVkIiwiS2V5ZWRTZXEiLCJJbmRleGVkSXRlcmFibGUiLCJpc0luZGV4ZWQiLCJJbmRleGVkU2VxIiwiU2V0SXRlcmFibGUiLCJpc0Fzc29jaWF0aXZlIiwiU2V0U2VxIiwibWF5YmVJdGVyYWJsZSIsIklTX0lURVJBQkxFX1NFTlRJTkVMIiwibWF5YmVLZXllZCIsIklTX0tFWUVEX1NFTlRJTkVMIiwibWF5YmVJbmRleGVkIiwiSVNfSU5ERVhFRF9TRU5USU5FTCIsIm1heWJlQXNzb2NpYXRpdmUiLCJpc09yZGVyZWQiLCJtYXliZU9yZGVyZWQiLCJJU19PUkRFUkVEX1NFTlRJTkVMIiwiS2V5ZWQiLCJJbmRleGVkIiwiU2V0IiwiREVMRVRFIiwiU0hJRlQiLCJTSVpFIiwiTUFTSyIsIk5PVF9TRVQiLCJDSEFOR0VfTEVOR1RIIiwiRElEX0FMVEVSIiwiTWFrZVJlZiIsInJlZiIsIlNldFJlZiIsIk93bmVySUQiLCJhcnJDb3B5IiwibmV3QXJyIiwiaWkiLCJlbnN1cmVTaXplIiwiaXRlciIsIl9faXRlcmF0ZSIsInJldHVyblRydWUiLCJ3cmFwSW5kZXgiLCJ1aW50MzJJbmRleCIsIndob2xlU2xpY2UiLCJiZWdpbiIsInJlc29sdmVCZWdpbiIsInJlc29sdmVJbmRleCIsInJlc29sdmVFbmQiLCJkZWZhdWx0SW5kZXgiLCJJVEVSQVRFX0tFWVMiLCJJVEVSQVRFX1ZBTFVFUyIsIklURVJBVEVfRU5UUklFUyIsIlJFQUxfSVRFUkFUT1JfU1lNQk9MIiwiaXRlcmF0b3IiLCJGQVVYX0lURVJBVE9SX1NZTUJPTCIsIklURVJBVE9SX1NZTUJPTCIsIkl0ZXJhdG9yIiwibmV4dCIsIml0ZXJhdG9yVmFsdWUiLCJrIiwidiIsIml0ZXJhdG9yUmVzdWx0IiwiZG9uZSIsIml0ZXJhdG9yRG9uZSIsImhhc0l0ZXJhdG9yIiwiZ2V0SXRlcmF0b3JGbiIsImlzSXRlcmF0b3IiLCJtYXliZUl0ZXJhdG9yIiwiZ2V0SXRlcmF0b3IiLCJpdGVyYWJsZSIsIml0ZXJhdG9yRm4iLCJpc0FycmF5TGlrZSIsImVtcHR5U2VxdWVuY2UiLCJ0b1NlcSIsInNlcUZyb21WYWx1ZSIsInRvS2V5ZWRTZXEiLCJmcm9tRW50cnlTZXEiLCJrZXllZFNlcUZyb21WYWx1ZSIsImVudHJ5U2VxIiwidG9JbmRleGVkU2VxIiwiaW5kZXhlZFNlcUZyb21WYWx1ZSIsInRvU2V0U2VxIiwiS0VZUyIsIlZBTFVFUyIsIkVOVFJJRVMiLCJ0b1NvdXJjZSIsIm9mIiwiX190b1N0cmluZyIsImNhY2hlUmVzdWx0IiwiX2NhY2hlIiwiX19pdGVyYXRlVW5jYWNoZWQiLCJ0b0FycmF5IiwicmV2ZXJzZSIsInNlcUl0ZXJhdGUiLCJfX2l0ZXJhdG9yIiwic2VxSXRlcmF0b3IiLCJpc1NlcSIsIkVNUFRZX1NFUSIsIkVNUFRZX1JFUEVBVCIsIkVNUFRZX1JBTkdFIiwiSVNfU0VRX1NFTlRJTkVMIiwiQXJyYXlTZXEiLCJfYXJyYXkiLCJPYmplY3RTZXEiLCJvYmplY3QiLCJrZXlzIiwiX29iamVjdCIsIl9rZXlzIiwiSXRlcmFibGVTZXEiLCJfaXRlcmFibGUiLCJJdGVyYXRvclNlcSIsIl9pdGVyYXRvciIsIl9pdGVyYXRvckNhY2hlIiwibWF5YmVTZXEiLCJzZXEiLCJtYXliZUluZGV4ZWRTZXFGcm9tVmFsdWUiLCJ1c2VLZXlzIiwiY2FjaGUiLCJtYXhJbmRleCIsImVudHJ5IiwiX19pdGVyYXRvclVuY2FjaGVkIiwiZnJvbUpTIiwianNvbiIsImNvbnZlcnRlciIsImZyb21KU1dpdGgiLCJmcm9tSlNEZWZhdWx0Iiwia2V5IiwicGFyZW50SlNPTiIsIm1hcCIsImlzUGxhaW5PYmoiLCJ0b0xpc3QiLCJ0b01hcCIsImlzIiwidmFsdWVBIiwidmFsdWVCIiwiZGVlcEVxdWFsIiwiX19oYXNoIiwibm90QXNzb2NpYXRpdmUiLCJlbnRyaWVzIiwiZXZlcnkiLCJmbGlwcGVkIiwiXyIsImFsbEVxdWFsIiwiYlNpemUiLCJoYXMiLCJSZXBlYXQiLCJ0aW1lcyIsIl92YWx1ZSIsImludmFyaWFudCIsImNvbmRpdGlvbiIsIlJhbmdlIiwic3RlcCIsIl9zdGFydCIsIl9lbmQiLCJfc3RlcCIsImNlaWwiLCJDb2xsZWN0aW9uIiwiS2V5ZWRDb2xsZWN0aW9uIiwiSW5kZXhlZENvbGxlY3Rpb24iLCJTZXRDb2xsZWN0aW9uIiwibm90U2V0VmFsdWUiLCJoYXNPd25Qcm9wZXJ0eSIsIml0ZXJhdGlvbnMiLCJzZWFyY2hWYWx1ZSIsInRoaXMkMCIsIm90aGVyIiwicG9zc2libGVJbmRleCIsIm9mZnNldFZhbHVlIiwiaW11bCIsInNtaSIsImkzMiIsImhhc2giLCJvIiwiaCIsIlNUUklOR19IQVNIX0NBQ0hFX01JTl9TVFJMRU4iLCJjYWNoZWRIYXNoU3RyaW5nIiwiaGFzaFN0cmluZyIsImhhc2hDb2RlIiwiaGFzaEpTT2JqIiwic3RyaW5nSGFzaENhY2hlIiwiU1RSSU5HX0hBU0hfQ0FDSEVfU0laRSIsIlNUUklOR19IQVNIX0NBQ0hFX01BWF9TSVpFIiwidXNpbmdXZWFrTWFwIiwid2Vha01hcCIsIlVJRF9IQVNIX0tFWSIsImNhbkRlZmluZVByb3BlcnR5IiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJnZXRJRU5vZGVIYXNoIiwib2JqSGFzaFVJRCIsImlzRXh0ZW5zaWJsZSIsIm5vZGVUeXBlIiwibm9kZSIsInVuaXF1ZUlEIiwiZG9jdW1lbnRFbGVtZW50IiwiV2Vha01hcCIsImFzc2VydE5vdEluZmluaXRlIiwiTWFwIiwiZW1wdHlNYXAiLCJpc01hcCIsIndpdGhNdXRhdGlvbnMiLCJmb3JFYWNoIiwibWF5YmVNYXAiLCJJU19NQVBfU0VOVElORUwiLCJrZXlWYWx1ZXMiLCJfcm9vdCIsInVwZGF0ZU1hcCIsInNldEluIiwia2V5UGF0aCIsInVwZGF0ZUluIiwicmVtb3ZlIiwiZGVsZXRlSW4iLCJ1cGRhdGUiLCJ1cGRhdGVyIiwidXBkYXRlZFZhbHVlIiwidXBkYXRlSW5EZWVwTWFwIiwiZm9yY2VJdGVyYXRvciIsImNsZWFyIiwiX19vd25lcklEIiwiX19hbHRlcmVkIiwibWVyZ2UiLCJtZXJnZUludG9NYXBXaXRoIiwibWVyZ2VXaXRoIiwibWVyZ2VyIiwibWVyZ2VJbiIsIml0ZXJzIiwibWVyZ2VEZWVwIiwiZGVlcE1lcmdlciIsIm1lcmdlRGVlcFdpdGgiLCJkZWVwTWVyZ2VyV2l0aCIsIm1lcmdlRGVlcEluIiwic29ydCIsImNvbXBhcmF0b3IiLCJPcmRlcmVkTWFwIiwic29ydEZhY3RvcnkiLCJzb3J0QnkiLCJtYXBwZXIiLCJtdXRhYmxlIiwiYXNNdXRhYmxlIiwid2FzQWx0ZXJlZCIsIl9fZW5zdXJlT3duZXIiLCJhc0ltbXV0YWJsZSIsIk1hcEl0ZXJhdG9yIiwiaXRlcmF0ZSIsIm93bmVySUQiLCJtYWtlTWFwIiwiRU1QVFlfTUFQIiwiTWFwUHJvdG90eXBlIiwiQXJyYXlNYXBOb2RlIiwiQml0bWFwSW5kZXhlZE5vZGUiLCJiaXRtYXAiLCJub2RlcyIsIkhhc2hBcnJheU1hcE5vZGUiLCJjb3VudCIsIkhhc2hDb2xsaXNpb25Ob2RlIiwia2V5SGFzaCIsIlZhbHVlTm9kZSIsIl90eXBlIiwiX3JldmVyc2UiLCJfc3RhY2siLCJtYXBJdGVyYXRvckZyYW1lIiwibWFwSXRlcmF0b3JWYWx1ZSIsInByZXYiLCJfX3ByZXYiLCJuZXdSb290IiwibmV3U2l6ZSIsImRpZENoYW5nZVNpemUiLCJkaWRBbHRlciIsInVwZGF0ZU5vZGUiLCJzaGlmdCIsImlzTGVhZk5vZGUiLCJtZXJnZUludG9Ob2RlIiwibmV3Tm9kZSIsImlkeDEiLCJpZHgyIiwiY3JlYXRlTm9kZXMiLCJwYWNrTm9kZXMiLCJleGNsdWRpbmciLCJwYWNrZWRJSSIsInBhY2tlZE5vZGVzIiwiYml0IiwiZXhwYW5kTm9kZXMiLCJpbmNsdWRpbmciLCJleHBhbmRlZE5vZGVzIiwiaXRlcmFibGVzIiwibWVyZ2VJbnRvQ29sbGVjdGlvbldpdGgiLCJleGlzdGluZyIsIm5leHRWYWx1ZSIsImNvbGxlY3Rpb24iLCJmaWx0ZXIiLCJtZXJnZUludG9NYXAiLCJrZXlQYXRoSXRlciIsImlzTm90U2V0IiwiZXhpc3RpbmdWYWx1ZSIsIm5ld1ZhbHVlIiwibmV4dEV4aXN0aW5nIiwibmV4dFVwZGF0ZWQiLCJwb3BDb3VudCIsImlkeCIsImNhbkVkaXQiLCJuZXdBcnJheSIsInNwbGljZUluIiwibmV3TGVuIiwiYWZ0ZXIiLCJzcGxpY2VPdXQiLCJwb3AiLCJyZW1vdmVJbiIsInJlbW92ZWQiLCJleGlzdHMiLCJNQVhfQVJSQVlfTUFQX1NJWkUiLCJpc0VkaXRhYmxlIiwibmV3RW50cmllcyIsImtleUhhc2hGcmFnIiwiTUFYX0JJVE1BUF9JTkRFWEVEX1NJWkUiLCJuZXdCaXRtYXAiLCJuZXdOb2RlcyIsIm5ld0NvdW50IiwiTUlOX0hBU0hfQVJSQVlfTUFQX1NJWkUiLCJrZXlNYXRjaCIsInN1Yk5vZGUiLCJMaXN0IiwiZW1wdHkiLCJlbXB0eUxpc3QiLCJpc0xpc3QiLCJtYWtlTGlzdCIsIlZOb2RlIiwic2V0U2l6ZSIsIm1heWJlTGlzdCIsIklTX0xJU1RfU0VOVElORUwiLCJsaXN0Tm9kZUZvciIsIl9vcmlnaW4iLCJ1cGRhdGVMaXN0Iiwic3BsaWNlIiwiaW5zZXJ0IiwiX2NhcGFjaXR5IiwiX2xldmVsIiwiX3RhaWwiLCJ2YWx1ZXMiLCJvbGRTaXplIiwic2V0TGlzdEJvdW5kcyIsInVuc2hpZnQiLCJtZXJnZUludG9MaXN0V2l0aCIsIml0ZXJhdGVMaXN0IiwiRE9ORSIsIkxpc3RQcm90b3R5cGUiLCJyZW1vdmVCZWZvcmUiLCJsZXZlbCIsIm9yaWdpbkluZGV4IiwibmV3Q2hpbGQiLCJyZW1vdmluZ0ZpcnN0Iiwib2xkQ2hpbGQiLCJlZGl0YWJsZSIsImVkaXRhYmxlVk5vZGUiLCJyZW1vdmVBZnRlciIsInNpemVJbmRleCIsIkVNUFRZX0xJU1QiLCJFTVBUWV9PUkRFUkVEX01BUCIsImxlZnQiLCJyaWdodCIsInRhaWxQb3MiLCJnZXRUYWlsT2Zmc2V0IiwidGFpbCIsIml0ZXJhdGVOb2RlT3JMZWFmIiwiaXRlcmF0ZUxlYWYiLCJpdGVyYXRlTm9kZSIsInRvIiwib3JpZ2luIiwiY2FwYWNpdHkiLCJuZXdUYWlsIiwidXBkYXRlVk5vZGUiLCJub2RlSGFzIiwibG93ZXJOb2RlIiwibmV3TG93ZXJOb2RlIiwicmF3SW5kZXgiLCJvd25lciIsIm9sZE9yaWdpbiIsIm9sZENhcGFjaXR5IiwibmV3T3JpZ2luIiwibmV3Q2FwYWNpdHkiLCJuZXdMZXZlbCIsIm9mZnNldFNoaWZ0Iiwib2xkVGFpbE9mZnNldCIsIm5ld1RhaWxPZmZzZXQiLCJvbGRUYWlsIiwiYmVnaW5JbmRleCIsIm1heFNpemUiLCJlbXB0eU9yZGVyZWRNYXAiLCJpc09yZGVyZWRNYXAiLCJtYXliZU9yZGVyZWRNYXAiLCJtYWtlT3JkZXJlZE1hcCIsIm9tYXAiLCJfbWFwIiwiX2xpc3QiLCJ1cGRhdGVPcmRlcmVkTWFwIiwibmV3TWFwIiwibmV3TGlzdCIsImZsaXAiLCJUb0tleWVkU2VxdWVuY2UiLCJpbmRleGVkIiwiX2l0ZXIiLCJfdXNlS2V5cyIsIlRvSW5kZXhlZFNlcXVlbmNlIiwiVG9TZXRTZXF1ZW5jZSIsIkZyb21FbnRyaWVzU2VxdWVuY2UiLCJmbGlwRmFjdG9yeSIsImZsaXBTZXF1ZW5jZSIsIm1ha2VTZXF1ZW5jZSIsInJldmVyc2VkU2VxdWVuY2UiLCJjYWNoZVJlc3VsdFRocm91Z2giLCJtYXBGYWN0b3J5IiwiY29udGV4dCIsIm1hcHBlZFNlcXVlbmNlIiwicmV2ZXJzZUZhY3RvcnkiLCJmaWx0ZXJGYWN0b3J5IiwicHJlZGljYXRlIiwiZmlsdGVyU2VxdWVuY2UiLCJjb3VudEJ5RmFjdG9yeSIsImdyb3VwZXIiLCJncm91cHMiLCJncm91cEJ5RmFjdG9yeSIsImlzS2V5ZWRJdGVyIiwiY29lcmNlIiwiaXRlcmFibGVDbGFzcyIsInJlaWZ5Iiwic2xpY2VGYWN0b3J5Iiwib3JpZ2luYWxTaXplIiwicmVzb2x2ZWRCZWdpbiIsInJlc29sdmVkRW5kIiwic2xpY2VTaXplIiwicmVzb2x2ZWRTaXplIiwic2xpY2VTZXEiLCJza2lwcGVkIiwiaXNTa2lwcGluZyIsInRha2VXaGlsZUZhY3RvcnkiLCJ0YWtlU2VxdWVuY2UiLCJpdGVyYXRpbmciLCJza2lwV2hpbGVGYWN0b3J5Iiwic2tpcFNlcXVlbmNlIiwic2tpcHBpbmciLCJjb25jYXRGYWN0b3J5IiwiaXNLZXllZEl0ZXJhYmxlIiwic2luZ2xldG9uIiwiY29uY2F0U2VxIiwiZmxhdHRlbiIsInJlZHVjZSIsInN1bSIsImZsYXR0ZW5GYWN0b3J5IiwiZGVwdGgiLCJmbGF0U2VxdWVuY2UiLCJzdG9wcGVkIiwiZmxhdERlZXAiLCJjdXJyZW50RGVwdGgiLCJmbGF0TWFwRmFjdG9yeSIsImludGVycG9zZUZhY3RvcnkiLCJzZXBhcmF0b3IiLCJpbnRlcnBvc2VkU2VxdWVuY2UiLCJkZWZhdWx0Q29tcGFyYXRvciIsIm1heEZhY3RvcnkiLCJtYXhDb21wYXJlIiwiY29tcCIsInppcFdpdGhGYWN0b3J5Iiwia2V5SXRlciIsInppcHBlciIsInppcFNlcXVlbmNlIiwiaXRlcmF0b3JzIiwiaXNEb25lIiwic3RlcHMiLCJzb21lIiwidmFsaWRhdGVFbnRyeSIsInJlc29sdmVTaXplIiwiUmVjb3JkIiwiZGVmYXVsdFZhbHVlcyIsImhhc0luaXRpYWxpemVkIiwiUmVjb3JkVHlwZSIsInNldFByb3BzIiwiUmVjb3JkVHlwZVByb3RvdHlwZSIsIl9uYW1lIiwiX2RlZmF1bHRWYWx1ZXMiLCJSZWNvcmRQcm90b3R5cGUiLCJ2YWx1ZVNlcSIsImluZGV4ZWRJdGVyYWJsZSIsInJlY29yZE5hbWUiLCJkZWZhdWx0VmFsIiwiX2VtcHR5IiwibWFrZVJlY29yZCIsImxpa2VSZWNvcmQiLCJyZWNvcmQiLCJnZXRQcm90b3R5cGVPZiIsIm5hbWVzIiwic2V0UHJvcCIsImJpbmQiLCJlbXB0eVNldCIsImlzU2V0IiwiYWRkIiwibWF5YmVTZXQiLCJJU19TRVRfU0VOVElORUwiLCJmcm9tS2V5cyIsImtleVNlcSIsInVwZGF0ZVNldCIsInVuaW9uIiwiaW50ZXJzZWN0Iiwib3JpZ2luYWxTZXQiLCJzdWJ0cmFjdCIsIk9yZGVyZWRTZXQiLCJfX21ha2UiLCJFTVBUWV9TRVQiLCJTZXRQcm90b3R5cGUiLCJfX2VtcHR5IiwibWFrZVNldCIsImVtcHR5T3JkZXJlZFNldCIsImlzT3JkZXJlZFNldCIsIm1heWJlT3JkZXJlZFNldCIsIkVNUFRZX09SREVSRURfU0VUIiwiT3JkZXJlZFNldFByb3RvdHlwZSIsIm1ha2VPcmRlcmVkU2V0IiwiU3RhY2siLCJlbXB0eVN0YWNrIiwiaXNTdGFjayIsInVuc2hpZnRBbGwiLCJtYXliZVN0YWNrIiwiSVNfU1RBQ0tfU0VOVElORUwiLCJoZWFkIiwiX2hlYWQiLCJwZWVrIiwibWFrZVN0YWNrIiwicHVzaEFsbCIsIkVNUFRZX1NUQUNLIiwiU3RhY2tQcm90b3R5cGUiLCJtaXhpbiIsIm1ldGhvZHMiLCJrZXlDb3BpZXIiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJ0b0pTIiwiX190b0pTIiwidG9PYmplY3QiLCJ0b09yZGVyZWRNYXAiLCJ0b09yZGVyZWRTZXQiLCJ0b1NldCIsInRvU3RhY2siLCJfX3RvU3RyaW5nTWFwcGVyIiwicmV0dXJuVmFsdWUiLCJmaW5kIiwiZmluZEVudHJ5Iiwic2lkZUVmZmVjdCIsImpvaW5lZCIsImlzRmlyc3QiLCJyZWR1Y2VyIiwiaW5pdGlhbFJlZHVjdGlvbiIsInJlZHVjdGlvbiIsInVzZUZpcnN0IiwicmVkdWNlUmlnaHQiLCJyZXZlcnNlZCIsIm5vdCIsImJ1dExhc3QiLCJpc0VtcHR5IiwiY291bnRCeSIsImVudHJpZXNTZXF1ZW5jZSIsImVudHJ5TWFwcGVyIiwiZmlsdGVyTm90IiwiZmluZEtleSIsImZpbmRMYXN0IiwiZmluZExhc3RFbnRyeSIsImZpbmRMYXN0S2V5IiwiZmxhdE1hcCIsInNlYXJjaEtleSIsImdldEluIiwic2VhcmNoS2V5UGF0aCIsIm5lc3RlZCIsImdyb3VwQnkiLCJoYXNJbiIsImlzU3Vic2V0IiwiaXNTdXBlcnNldCIsImtleU9mIiwia2V5TWFwcGVyIiwibGFzdEtleU9mIiwibWF4QnkiLCJuZWciLCJkZWZhdWx0TmVnQ29tcGFyYXRvciIsIm1pbkJ5IiwicmVzdCIsInNraXAiLCJhbW91bnQiLCJza2lwTGFzdCIsInNraXBXaGlsZSIsInNraXBVbnRpbCIsInRha2UiLCJ0YWtlTGFzdCIsInRha2VXaGlsZSIsInRha2VVbnRpbCIsImhhc2hJdGVyYWJsZSIsIkl0ZXJhYmxlUHJvdG90eXBlIiwicXVvdGVTdHJpbmciLCJjaGFpbiIsImNvbnRhaW5zIiwibWFwRW50cmllcyIsIm1hcEtleXMiLCJLZXllZEl0ZXJhYmxlUHJvdG90eXBlIiwiSlNPTiIsInN0cmluZ2lmeSIsImRlZmF1bHRaaXBwZXIiLCJvcmRlcmVkIiwia2V5ZWQiLCJtdXJtdXJIYXNoT2ZTaXplIiwiaGFzaE1lcmdlIiwiZmluZEluZGV4IiwicmVtb3ZlTnVtIiwibnVtQXJncyIsInNwbGljZWQiLCJmaW5kTGFzdEluZGV4IiwiaW50ZXJwb3NlIiwiaW50ZXJsZWF2ZSIsInppcHBlZCIsImludGVybGVhdmVkIiwiemlwIiwiemlwV2l0aCIsImluaGVyaXRzIiwic3VwZXJDdG9yIiwic3VwZXJfIiwiVGVtcEN0b3IiLCJEYXRhVmlldyIsImdldE5hdGl2ZSIsImhhc2hDbGVhciIsImhhc2hEZWxldGUiLCJoYXNoR2V0IiwiaGFzaEhhcyIsImhhc2hTZXQiLCJIYXNoIiwibGlzdENhY2hlQ2xlYXIiLCJsaXN0Q2FjaGVEZWxldGUiLCJsaXN0Q2FjaGVHZXQiLCJsaXN0Q2FjaGVIYXMiLCJsaXN0Q2FjaGVTZXQiLCJMaXN0Q2FjaGUiLCJtYXBDYWNoZUNsZWFyIiwibWFwQ2FjaGVEZWxldGUiLCJtYXBDYWNoZUdldCIsIm1hcENhY2hlSGFzIiwibWFwQ2FjaGVTZXQiLCJNYXBDYWNoZSIsIlByb21pc2UiLCJzZXRDYWNoZUFkZCIsInNldENhY2hlSGFzIiwiU2V0Q2FjaGUiLCJfX2RhdGFfXyIsInN0YWNrQ2xlYXIiLCJzdGFja0RlbGV0ZSIsInN0YWNrR2V0Iiwic3RhY2tIYXMiLCJzdGFja1NldCIsImFycmF5RmlsdGVyIiwicmVzSW5kZXgiLCJiYXNlVGltZXMiLCJpc0FyZ3VtZW50cyIsImlzSW5kZXgiLCJpc1R5cGVkQXJyYXkiLCJhcnJheUxpa2VLZXlzIiwiaW5oZXJpdGVkIiwiaXNBcnIiLCJpc0FyZyIsImlzQnVmZiIsImlzVHlwZSIsInNraXBJbmRleGVzIiwiYXJyYXlNYXAiLCJpdGVyYXRlZSIsImFycmF5UHVzaCIsImFycmF5UmVkdWNlIiwiYWNjdW11bGF0b3IiLCJpbml0QWNjdW0iLCJhcnJheVNvbWUiLCJhc2NpaVRvQXJyYXkiLCJyZUFzY2lpV29yZCIsImFzY2lpV29yZHMiLCJtYXRjaCIsImJhc2VBc3NpZ25WYWx1ZSIsImVxIiwiYXNzaWduVmFsdWUiLCJvYmpWYWx1ZSIsImFzc29jSW5kZXhPZiIsImJhc2VGb3JPd24iLCJiYXNlRWFjaCIsImNyZWF0ZUJhc2VFYWNoIiwiYmFzZUZpbmRJbmRleCIsImZyb21JbmRleCIsImZyb21SaWdodCIsImJhc2VGb3IiLCJjcmVhdGVCYXNlRm9yIiwiY2FzdFBhdGgiLCJ0b0tleSIsImJhc2VHZXQiLCJwYXRoIiwiYmFzZUdldEFsbEtleXMiLCJrZXlzRnVuYyIsInN5bWJvbHNGdW5jIiwiZ2V0UmF3VGFnIiwib2JqZWN0VG9TdHJpbmciLCJzeW1Ub1N0cmluZ1RhZyIsInRvU3RyaW5nVGFnIiwiYmFzZUdldFRhZyIsImJhc2VIYXNJbiIsImlzT2JqZWN0TGlrZSIsImJhc2VJc0FyZ3VtZW50cyIsImJhc2VJc0VxdWFsRGVlcCIsImJhc2VJc0VxdWFsIiwiYml0bWFzayIsImN1c3RvbWl6ZXIiLCJlcXVhbEFycmF5cyIsImVxdWFsQnlUYWciLCJlcXVhbE9iamVjdHMiLCJnZXRUYWciLCJhcmdzVGFnIiwiYXJyYXlUYWciLCJvYmplY3RUYWciLCJlcXVhbEZ1bmMiLCJvYmpJc0FyciIsIm90aElzQXJyIiwib2JqVGFnIiwib3RoVGFnIiwib2JqSXNPYmoiLCJvdGhJc09iaiIsImlzU2FtZVRhZyIsIm9iaklzV3JhcHBlZCIsIm90aElzV3JhcHBlZCIsIm9ialVud3JhcHBlZCIsIm90aFVud3JhcHBlZCIsImJhc2VJc01hdGNoIiwic291cmNlIiwibWF0Y2hEYXRhIiwibm9DdXN0b21pemVyIiwic3JjVmFsdWUiLCJDT01QQVJFX1BBUlRJQUxfRkxBRyIsImlzRnVuY3Rpb24iLCJpc01hc2tlZCIsImlzT2JqZWN0IiwicmVJc0hvc3RDdG9yIiwiZnVuY1Byb3RvIiwiRnVuY3Rpb24iLCJvYmplY3RQcm90byIsImZ1bmNUb1N0cmluZyIsInJlSXNOYXRpdmUiLCJSZWdFeHAiLCJiYXNlSXNOYXRpdmUiLCJ0ZXN0IiwiaXNMZW5ndGgiLCJ0eXBlZEFycmF5VGFncyIsImJhc2VJc1R5cGVkQXJyYXkiLCJiYXNlTWF0Y2hlcyIsImJhc2VNYXRjaGVzUHJvcGVydHkiLCJpZGVudGl0eSIsInByb3BlcnR5IiwiYmFzZUl0ZXJhdGVlIiwiaXNQcm90b3R5cGUiLCJuYXRpdmVLZXlzIiwiYmFzZUtleXMiLCJnZXRNYXRjaERhdGEiLCJtYXRjaGVzU3RyaWN0Q29tcGFyYWJsZSIsImlzS2V5IiwiaXNTdHJpY3RDb21wYXJhYmxlIiwiYmFzZVByb3BlcnR5IiwiYmFzZVByb3BlcnR5RGVlcCIsImJhc2VQcm9wZXJ0eU9mIiwiYmFzZVNsaWNlIiwiYmFzZVNvbWUiLCJpc1N5bWJvbCIsInN5bWJvbFByb3RvIiwic3ltYm9sVG9TdHJpbmciLCJiYXNlVG9TdHJpbmciLCJ0cmltbWVkRW5kSW5kZXgiLCJyZVRyaW1TdGFydCIsImJhc2VUcmltIiwiYmFzZVVuYXJ5IiwiZnVuYyIsImJhc2VaaXBPYmplY3QiLCJwcm9wcyIsImFzc2lnbkZ1bmMiLCJ2YWxzTGVuZ3RoIiwiY2FjaGVIYXMiLCJzdHJpbmdUb1BhdGgiLCJjYXN0U2xpY2UiLCJjb3JlSnNEYXRhIiwiZWFjaEZ1bmMiLCJoYXNVbmljb2RlIiwic3RyaW5nVG9BcnJheSIsImNyZWF0ZUNhc2VGaXJzdCIsIm1ldGhvZE5hbWUiLCJzdHJTeW1ib2xzIiwiY2hyIiwidHJhaWxpbmciLCJkZWJ1cnIiLCJ3b3JkcyIsInJlQXBvcyIsImNyZWF0ZUNvbXBvdW5kZXIiLCJjYWxsYmFjayIsImNyZWF0ZUZpbmQiLCJmaW5kSW5kZXhGdW5jIiwiZGVidXJyTGV0dGVyIiwiaXNQYXJ0aWFsIiwib3RoTGVuZ3RoIiwiYXJyU3RhY2tlZCIsIm90aFN0YWNrZWQiLCJzZWVuIiwiYXJyVmFsdWUiLCJvdGhWYWx1ZSIsImNvbXBhcmVkIiwib3RoSW5kZXgiLCJtYXBUb0FycmF5Iiwic2V0VG9BcnJheSIsInN5bWJvbFZhbHVlT2YiLCJ0YWciLCJjb252ZXJ0Iiwic3RhY2tlZCIsImdldEFsbEtleXMiLCJvYmpQcm9wcyIsIm9iakxlbmd0aCIsIm9ialN0YWNrZWQiLCJza2lwQ3RvciIsIm9iakN0b3IiLCJvdGhDdG9yIiwiZnJlZUdsb2JhbCIsImdldFN5bWJvbHMiLCJpc0tleWFibGUiLCJnZXRNYXBEYXRhIiwiZ2V0VmFsdWUiLCJuYXRpdmVPYmplY3RUb1N0cmluZyIsImlzT3duIiwidW5tYXNrZWQiLCJzdHViQXJyYXkiLCJuYXRpdmVHZXRTeW1ib2xzIiwic3ltYm9sIiwibWFwVGFnIiwicHJvbWlzZVRhZyIsInNldFRhZyIsIndlYWtNYXBUYWciLCJkYXRhVmlld1RhZyIsImRhdGFWaWV3Q3RvclN0cmluZyIsIm1hcEN0b3JTdHJpbmciLCJwcm9taXNlQ3RvclN0cmluZyIsInNldEN0b3JTdHJpbmciLCJ3ZWFrTWFwQ3RvclN0cmluZyIsInJlc29sdmUiLCJDdG9yIiwiY3RvclN0cmluZyIsImhhc1BhdGgiLCJoYXNGdW5jIiwicmVIYXNVbmljb2RlIiwicmVIYXNVbmljb2RlV29yZCIsImhhc1VuaWNvZGVXb3JkIiwibmF0aXZlQ3JlYXRlIiwicmVJc1VpbnQiLCJpc0l0ZXJhdGVlQ2FsbCIsInJlSXNEZWVwUHJvcCIsInJlSXNQbGFpblByb3AiLCJ1aWQiLCJtYXNrU3JjS2V5IiwiZXhlYyIsIklFX1BST1RPIiwibWVtb2l6ZSIsIm1lbW9pemVDYXBwZWQiLCJvdmVyQXJnIiwiZnJlZUV4cG9ydHMiLCJmcmVlTW9kdWxlIiwiZnJlZVByb2Nlc3MiLCJwcm9jZXNzIiwibm9kZVV0aWwiLCJ0eXBlcyIsInJlcXVpcmUiLCJiaW5kaW5nIiwidHJhbnNmb3JtIiwiZnJlZVNlbGYiLCJzZWxmIiwicGFpcnMiLCJMQVJHRV9BUlJBWV9TSVpFIiwidW5pY29kZVRvQXJyYXkiLCJyZVByb3BOYW1lIiwicmVFc2NhcGVDaGFyIiwibnVtYmVyIiwicXVvdGUiLCJzdWJTdHJpbmciLCJyZVdoaXRlc3BhY2UiLCJyc0FzdHJhbFJhbmdlIiwicnNBc3RyYWwiLCJyc0NvbWJvIiwicnNGaXR6IiwicnNOb25Bc3RyYWwiLCJyc1JlZ2lvbmFsIiwicnNTdXJyUGFpciIsInJlT3B0TW9kIiwicnNPcHRWYXIiLCJyc1NlcSIsInJzU3ltYm9sIiwicmVVbmljb2RlIiwicnNEaW5nYmF0UmFuZ2UiLCJyc0xvd2VyUmFuZ2UiLCJyc1VwcGVyUmFuZ2UiLCJyc0JyZWFrUmFuZ2UiLCJyc01hdGhPcFJhbmdlIiwicnNCcmVhayIsInJzRGlnaXRzIiwicnNEaW5nYmF0IiwicnNMb3dlciIsInJzTWlzYyIsInJzVXBwZXIiLCJyc01pc2NMb3dlciIsInJzTWlzY1VwcGVyIiwicnNPcHRDb250ckxvd2VyIiwicnNPcHRDb250clVwcGVyIiwicnNNb2RpZmllciIsInJzRW1vamkiLCJyZVVuaWNvZGVXb3JkIiwidW5pY29kZVdvcmRzIiwiY2FwaXRhbGl6ZSIsImNhbWVsQ2FzZSIsIndvcmQiLCJ1cHBlckZpcnN0IiwicmVMYXRpbiIsInJlQ29tYm9NYXJrIiwidG9JbnRlZ2VyIiwibmF0aXZlTWF4IiwiZGVmYXVsdFZhbHVlIiwic3R1YkZhbHNlIiwibm9kZUlzVHlwZWRBcnJheSIsInJlc29sdmVyIiwibWVtb2l6ZWQiLCJhcmdzIiwiQ2FjaGUiLCJndWFyZCIsInRvTnVtYmVyIiwiSU5GSU5JVFkiLCJ0b0Zpbml0ZSIsInJlbWFpbmRlciIsInJlSXNCYWRIZXgiLCJyZUlzQmluYXJ5IiwicmVJc09jdGFsIiwiZnJlZVBhcnNlSW50IiwiaXNCaW5hcnkiLCJwYXR0ZXJuIiwiemlwT2JqZWN0IiwiY2FjaGVkU2V0VGltZW91dCIsImNhY2hlZENsZWFyVGltZW91dCIsImRlZmF1bHRTZXRUaW1vdXQiLCJkZWZhdWx0Q2xlYXJUaW1lb3V0IiwicnVuVGltZW91dCIsImZ1biIsInNldFRpbWVvdXQiLCJjbGVhclRpbWVvdXQiLCJjdXJyZW50UXVldWUiLCJxdWV1ZSIsImRyYWluaW5nIiwicXVldWVJbmRleCIsImNsZWFuVXBOZXh0VGljayIsImRyYWluUXVldWUiLCJ0aW1lb3V0IiwicnVuIiwicnVuQ2xlYXJUaW1lb3V0IiwibWFya2VyIiwiSXRlbSIsIm5vb3AiLCJuZXh0VGljayIsInRpdGxlIiwiYnJvd3NlciIsImVudiIsImFyZ3YiLCJ2ZXJzaW9uIiwidmVyc2lvbnMiLCJvbiIsImFkZExpc3RlbmVyIiwib25jZSIsIm9mZiIsInJlbW92ZUxpc3RlbmVyIiwicmVtb3ZlQWxsTGlzdGVuZXJzIiwiZW1pdCIsInByZXBlbmRMaXN0ZW5lciIsInByZXBlbmRPbmNlTGlzdGVuZXIiLCJsaXN0ZW5lcnMiLCJjd2QiLCJjaGRpciIsInVtYXNrIiwiTUFYX0JZVEVTIiwiTUFYX1VJTlQzMiIsImNyeXB0byIsIm1zQ3J5cHRvIiwiZ2V0UmFuZG9tVmFsdWVzIiwicmFuZG9tQnl0ZXMiLCJjYiIsImdlbmVyYXRlZCIsIm9sZEJyb3dzZXIiLCJsIiwiZm9yIiwicCIsInEiLCJyIiwidCIsInUiLCJ3IiwieiIsIkIiLCJpc01vdW50ZWQiLCJlbnF1ZXVlRm9yY2VVcGRhdGUiLCJlbnF1ZXVlUmVwbGFjZVN0YXRlIiwiZW5xdWV1ZVNldFN0YXRlIiwiQyIsImFzc2lnbiIsIkQiLCJyZWZzIiwiRiIsIkciLCJpc1JlYWN0Q29tcG9uZW50Iiwic2V0U3RhdGUiLCJmb3JjZVVwZGF0ZSIsIkgiLCJpc1B1cmVSZWFjdENvbXBvbmVudCIsIkkiLCJKIiwiSyIsImN1cnJlbnQiLCJMIiwiX19zZWxmIiwiX19zb3VyY2UiLCJNIiwiY2hpbGRyZW4iLCJmIiwiZGVmYXVsdFByb3BzIiwiJCR0eXBlb2YiLCJfb3duZXIiLCJPIiwiUCIsIlEiLCJSIiwiTiIsIkEiLCJTIiwiVCIsIl9zdGF0dXMiLCJfcmVzdWx0IiwidGhlbiIsImRlZmF1bHQiLCJVIiwiViIsInRyYW5zaXRpb24iLCJXIiwiUmVhY3RDdXJyZW50RGlzcGF0Y2hlciIsIlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnIiwiUmVhY3RDdXJyZW50T3duZXIiLCJDaGlsZHJlbiIsIm9ubHkiLCJDb21wb25lbnQiLCJGcmFnbWVudCIsIlByb2ZpbGVyIiwiUHVyZUNvbXBvbmVudCIsIlN0cmljdE1vZGUiLCJTdXNwZW5zZSIsIl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEIiwiY2xvbmVFbGVtZW50IiwiY3JlYXRlQ29udGV4dCIsIl9jdXJyZW50VmFsdWUiLCJfY3VycmVudFZhbHVlMiIsIl90aHJlYWRDb3VudCIsIlByb3ZpZGVyIiwiQ29uc3VtZXIiLCJfZGVmYXVsdFZhbHVlIiwiX2dsb2JhbE5hbWUiLCJfY29udGV4dCIsImNyZWF0ZUVsZW1lbnQiLCJjcmVhdGVGYWN0b3J5IiwiY3JlYXRlUmVmIiwiZm9yd2FyZFJlZiIsInJlbmRlciIsImlzVmFsaWRFbGVtZW50IiwibGF6eSIsIl9wYXlsb2FkIiwiX2luaXQiLCJtZW1vIiwic3RhcnRUcmFuc2l0aW9uIiwidW5zdGFibGVfYWN0IiwidXNlQ2FsbGJhY2siLCJ1c2VDb250ZXh0IiwidXNlRGVidWdWYWx1ZSIsInVzZURlZmVycmVkVmFsdWUiLCJ1c2VFZmZlY3QiLCJ1c2VJZCIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJ1c2VJbnNlcnRpb25FZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVkdWNlciIsInVzZVJlZiIsInVzZVN0YXRlIiwidXNlU3luY0V4dGVybmFsU3RvcmUiLCJ1c2VUcmFuc2l0aW9uIiwiY29weVByb3BzIiwiU2FmZUJ1ZmZlciIsImJsb2NrU2l6ZSIsImZpbmFsU2l6ZSIsIl9ibG9jayIsIl9maW5hbFNpemUiLCJfYmxvY2tTaXplIiwiX2xlbiIsImVuYyIsImJsb2NrIiwiYWNjdW0iLCJhc3NpZ25lZCIsIl91cGRhdGUiLCJkaWdlc3QiLCJyZW0iLCJiaXRzIiwibG93Qml0cyIsImhpZ2hCaXRzIiwiX2hhc2giLCJTSEEiLCJhbGdvcml0aG0iLCJBbGdvcml0aG0iLCJzaGEiLCJzaGExIiwic2hhMjI0Iiwic2hhMjU2Iiwic2hhMzg0Iiwic2hhNTEyIiwiU2hhIiwiaW5pdCIsIl93Iiwicm90bDMwIiwiZnQiLCJfYSIsIl9iIiwiX2MiLCJfZCIsIl9lIiwiU2hhMSIsInJvdGw1IiwiU2hhMjU2IiwiU2hhMjI0IiwiX2YiLCJfZyIsIl9oIiwiY2giLCJtYWoiLCJzaWdtYTAiLCJzaWdtYTEiLCJnYW1tYTAiLCJUMSIsIlQyIiwiU0hBNTEyIiwiU2hhMzg0IiwiX2FoIiwiX2JoIiwiX2NoIiwiX2RoIiwiX2VoIiwiX2ZoIiwiX2doIiwiX2hoIiwiX2FsIiwiX2JsIiwiX2NsIiwiX2RsIiwiX2VsIiwiX2ZsIiwiX2dsIiwiX2hsIiwid3JpdGVJbnQ2NEJFIiwiU2hhNTEyIiwiQ2giLCJ4bCIsIkdhbW1hMCIsIkdhbW1hMGwiLCJHYW1tYTEiLCJHYW1tYTFsIiwiZ2V0Q2FycnkiLCJhaCIsImJoIiwiZGgiLCJlaCIsImZoIiwiZ2giLCJoaCIsImFsIiwiYmwiLCJjbCIsImRsIiwiZWwiLCJmbCIsImdsIiwiaGwiLCJ4aCIsImdhbW1hMGwiLCJnYW1tYTEiLCJnYW1tYTFsIiwiV2k3aCIsIldpN2wiLCJXaTE2aCIsIldpMTZsIiwiV2lsIiwiV2loIiwibWFqaCIsIm1hamwiLCJzaWdtYTBoIiwic2lnbWEwbCIsInNpZ21hMWgiLCJzaWdtYTFsIiwiS2loIiwiS2lsIiwiY2hoIiwiY2hsIiwidDFsIiwidDFoIiwidDJsIiwidDJoIiwiX09iamVjdCRhc3NpZ24iLCJfYmluZEluc3RhbmNlUHJvcGVydHkiLCJfZXh0ZW5kcyIsIl9fZXNNb2R1bGUiLCJwYXJlbnQiLCJnZXRCdWlsdEluUHJvdG90eXBlTWV0aG9kIiwiaXNQcm90b3R5cGVPZiIsIm1ldGhvZCIsIkZ1bmN0aW9uUHJvdG90eXBlIiwiaXQiLCJvd24iLCJpc0NhbGxhYmxlIiwidHJ5VG9TdHJpbmciLCIkVHlwZUVycm9yIiwiYXJndW1lbnQiLCIkU3RyaW5nIiwidG9JbmRleGVkT2JqZWN0IiwidG9BYnNvbHV0ZUluZGV4IiwibGVuZ3RoT2ZBcnJheUxpa2UiLCJjcmVhdGVNZXRob2QiLCJJU19JTkNMVURFUyIsIiR0aGlzIiwidW5jdXJyeVRoaXMiLCJzdHJpbmdTbGljZSIsIkRFU0NSSVBUT1JTIiwiZGVmaW5lUHJvcGVydHlNb2R1bGUiLCJjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IiLCJnbG9iYWwiLCJmYWlscyIsImRvY3VtZW50QWxsIiwiZG9jdW1lbnQiLCJhbGwiLCJJU19IVE1MRERBIiwiRVhJU1RTIiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwiRGVubyIsInY4IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiaXNGb3JjZWQiLCJjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkiLCJoYXNPd24iLCJ3cmFwQ29uc3RydWN0b3IiLCJOYXRpdmVDb25zdHJ1Y3RvciIsIldyYXBwZXIiLCJvcHRpb25zIiwiRk9SQ0VEIiwiVVNFX05BVElWRSIsIlZJUlRVQUxfUFJPVE9UWVBFIiwic291cmNlUHJvcGVydHkiLCJ0YXJnZXRQcm9wZXJ0eSIsIm5hdGl2ZVByb3BlcnR5IiwicmVzdWx0UHJvcGVydHkiLCJkZXNjcmlwdG9yIiwiVEFSR0VUIiwiR0xPQkFMIiwiU1RBVElDIiwic3RhdCIsIlBST1RPIiwibmF0aXZlU291cmNlIiwidGFyZ2V0UHJvdG90eXBlIiwiZm9yY2VkIiwiZG9udENhbGxHZXRTZXQiLCJ3cmFwIiwic2hhbSIsInJlYWwiLCJOQVRJVkVfQklORCIsIlJlZmxlY3QiLCJhQ2FsbGFibGUiLCJ0aGF0IiwiYXJyYXlTbGljZSIsIiRGdW5jdGlvbiIsImZhY3RvcmllcyIsIlByb3RvdHlwZSIsInBhcnRBcmdzIiwiYm91bmRGdW5jdGlvbiIsImJvdW5kIiwiYXJnc0xlbmd0aCIsImNvbnN0cnVjdCIsImNsYXNzb2ZSYXciLCJ1bmN1cnJ5VGhpc1dpdGhCaW5kIiwiQ09OU1RSVUNUT1IiLCJNRVRIT0QiLCJOYW1lc3BhY2UiLCJwdXJlTWV0aG9kIiwiTmF0aXZlUHJvdG90eXBlIiwiYUZ1bmN0aW9uIiwidmFyaWFibGUiLCJuYW1lc3BhY2UiLCJpc051bGxPclVuZGVmaW5lZCIsImNoZWNrIiwiZ2xvYmFsVGhpcyIsIndpbmRvdyIsImNsYXNzb2YiLCIkT2JqZWN0IiwiJGRvY3VtZW50QWxsIiwicmVwbGFjZW1lbnQiLCJmZWF0dXJlIiwiZGV0ZWN0aW9uIiwibm9ybWFsaXplIiwiUE9MWUZJTEwiLCJOQVRJVkUiLCJnZXRCdWlsdEluIiwiVVNFX1NZTUJPTF9BU19VSUQiLCIkU3ltYm9sIiwidG9MZW5ndGgiLCJ0cnVuYyIsIm9iamVjdEtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZU1vZHVsZSIsIkluZGV4ZWRPYmplY3QiLCIkYXNzaWduIiwiYXJndW1lbnRzTGVuZ3RoIiwiSUU4X0RPTV9ERUZJTkUiLCJWOF9QUk9UT1RZUEVfREVGSU5FX0JVRyIsImFuT2JqZWN0IiwidG9Qcm9wZXJ0eUtleSIsIiRkZWZpbmVQcm9wZXJ0eSIsIiRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJFTlVNRVJBQkxFIiwiQ09ORklHVVJBQkxFIiwiV1JJVEFCTEUiLCJBdHRyaWJ1dGVzIiwiaGlkZGVuS2V5cyIsImludGVybmFsT2JqZWN0S2V5cyIsImVudW1CdWdLZXlzIiwiJHByb3BlcnR5SXNFbnVtZXJhYmxlIiwiTkFTSE9STl9CVUciLCJwcmVmIiwiZGVmaW5lR2xvYmFsUHJvcGVydHkiLCJTSEFSRUQiLCJzdG9yZSIsIklTX1BVUkUiLCJtb2RlIiwiY29weXJpZ2h0IiwibGljZW5zZSIsIlY4X1ZFUlNJT04iLCJ0b0ludGVnZXJPckluZmluaXR5IiwiaW50ZWdlciIsInJlcXVpcmVPYmplY3RDb2VyY2libGUiLCJnZXRNZXRob2QiLCJvcmRpbmFyeVRvUHJpbWl0aXZlIiwid2VsbEtub3duU3ltYm9sIiwiVE9fUFJJTUlUSVZFIiwiZXhvdGljVG9QcmltIiwiaWQiLCJwb3N0Zml4IiwicmFuZG9tIiwiTkFUSVZFX1NZTUJPTCIsInNoYXJlZCIsIldlbGxLbm93blN5bWJvbHNTdG9yZSIsImNyZWF0ZVdlbGxLbm93blN5bWJvbCIsIndpdGhvdXRTZXR0ZXIiLCIkIiwiYXJpdHkiLCJfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18iLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJjYWNoZWRNb2R1bGUiLCJsb2FkZWQiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwiZ2V0dGVyIiwiZGVmaW5pdGlvbiIsInByb3AiLCJubWQiLCJwYXRocyIsIlN0YW5kYWxvbmVMYXlvdXQiLCJSZWFjdCIsImdldENvbXBvbmVudCIsIkNvbnRhaW5lciIsIlJvdyIsIkNvbCIsIlRvcGJhciIsIkJhc2VMYXlvdXQiLCJPbmxpbmVWYWxpZGF0b3JCYWRnZSIsImNsYXNzTmFtZSIsIlN0YW5kYWxvbmVMYXlvdXRQbHVnaW4iLCJjb21wb25lbnRzIiwibWFrZVdpbmRvdyIsIndpbiIsImxvY2F0aW9uIiwiaGlzdG9yeSIsIm9wZW4iLCJjbG9zZSIsIkZpbGUiLCJGb3JtRGF0YSIsIkltIiwicGFyc2VTZWFyY2giLCJzZWFyY2hQYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJmcm9tRW50cmllcyIsIlRvcEJhciIsInN0YXRlIiwidXJsIiwic3BlY1NlbGVjdG9ycyIsInNlbGVjdGVkSW5kZXgiLCJVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyIsIm5leHRQcm9wcyIsIm9uVXJsQ2hhbmdlIiwiZmx1c2hBdXRoRGF0YSIsInBlcnNpc3RBdXRob3JpemF0aW9uIiwiZ2V0Q29uZmlncyIsImF1dGhBY3Rpb25zIiwicmVzdG9yZUF1dGhvcml6YXRpb24iLCJhdXRob3JpemVkIiwibG9hZFNwZWMiLCJzcGVjQWN0aW9ucyIsInVwZGF0ZVVybCIsImRvd25sb2FkIiwib25VcmxTZWxlY3QiLCJocmVmIiwic2V0U2VsZWN0ZWRVcmwiLCJwcmV2ZW50RGVmYXVsdCIsImRvd25sb2FkVXJsIiwic2V0U2VhcmNoIiwic3BlYyIsIm5ld1VybCIsInByb3RvY29sIiwiaG9zdCIsInBhdGhuYW1lIiwicHVzaFN0YXRlIiwicmVwbGFjZVN0YXRlIiwic2VyaWFsaXplU2VhcmNoIiwic2VhcmNoTWFwIiwic2VsZWN0ZWRVcmwiLCJ1cmxzIiwiY29tcG9uZW50RGlkTW91bnQiLCJjb25maWdzIiwidGFyZ2V0SW5kZXgiLCJwcmltYXJ5TmFtZSIsIm9uRmlsdGVyQ2hhbmdlIiwibGF5b3V0QWN0aW9ucyIsInVwZGF0ZUZpbHRlciIsIkJ1dHRvbiIsIkxpbmsiLCJMb2dvIiwiaXNMb2FkaW5nIiwibG9hZGluZ1N0YXR1cyIsImNsYXNzTmFtZXMiLCJjb250cm9sIiwiZm9ybU9uU3VibWl0Iiwicm93cyIsImxpbmsiLCJodG1sRm9yIiwiZGlzYWJsZWQiLCJvbkNoYW5nZSIsIm9uQ2xpY2siLCJvblN1Ym1pdCIsIl9kZWZzIiwiX3BhdGgiLCJfcGF0aDIiLCJfcGF0aDMiLCJfcGF0aDQiLCJfcGF0aDUiLCJfcGF0aDYiLCJfcGF0aDciLCJfcGF0aDgiLCJfcGF0aDkiLCJfcGF0aDEwIiwiX3BhdGgxMSIsIl9wYXRoMTIiLCJfcGF0aDEzIiwiX3BhdGgxNCIsIl9wYXRoMTUiLCJfcGF0aDE2IiwiX3BhdGgxNyIsIl9wYXRoMTgiLCJfcGF0aDE5IiwiX3BhdGgyMCIsIl9wYXRoMjEiLCJfcGF0aDIyIiwiX3BhdGgyMyIsIl9wYXRoMjQiLCJfcGF0aDI1IiwiX3BhdGgyNiIsIl9wYXRoMjciLCJfcGF0aDI4IiwiX3BhdGgyOSIsIl9wYXRoMzAiLCJfcGF0aDMxIiwieG1sbnMiLCJ2aWV3Qm94Iiwic3R5bGUiLCJjbGlwUGF0aCIsIlN3YWdnZXJVSUxvZ28iLCJoZWlnaHQiLCJUb3BCYXJQbHVnaW4iLCJpc05vdGhpbmciLCJzdWJqZWN0IiwiY29tbW9uIiwic2VxdWVuY2UiLCJyZXBlYXQiLCJjeWNsZSIsImlzTmVnYXRpdmVaZXJvIiwiTkVHQVRJVkVfSU5GSU5JVFkiLCJleHRlbmQiLCJzb3VyY2VLZXlzIiwiZm9ybWF0RXJyb3IiLCJleGNlcHRpb24iLCJjb21wYWN0Iiwid2hlcmUiLCJyZWFzb24iLCJtYXJrIiwibGluZSIsImNvbHVtbiIsInNuaXBwZXQiLCJZQU1MRXhjZXB0aW9uJDEiLCJjYXB0dXJlU3RhY2tUcmFjZSIsImdldExpbmUiLCJsaW5lU3RhcnQiLCJsaW5lRW5kIiwicG9zaXRpb24iLCJtYXhMaW5lTGVuZ3RoIiwibWF4SGFsZkxlbmd0aCIsInBhZFN0YXJ0IiwibWFrZVNuaXBwZXQiLCJtYXhMZW5ndGgiLCJpbmRlbnQiLCJsaW5lc0JlZm9yZSIsImxpbmVzQWZ0ZXIiLCJyZSIsImxpbmVTdGFydHMiLCJsaW5lRW5kcyIsImZvdW5kTGluZU5vIiwibGluZU5vTGVuZ3RoIiwiVFlQRV9DT05TVFJVQ1RPUl9PUFRJT05TIiwiWUFNTF9OT0RFX0tJTkRTIiwiVHlwZSQxIiwia2luZCIsImluc3RhbmNlT2YiLCJyZXByZXNlbnQiLCJyZXByZXNlbnROYW1lIiwiZGVmYXVsdFN0eWxlIiwibXVsdGkiLCJzdHlsZUFsaWFzZXMiLCJjb21waWxlU3R5bGVBbGlhc2VzIiwiYWxpYXMiLCJjb21waWxlTGlzdCIsInNjaGVtYSIsImN1cnJlbnRUeXBlIiwibmV3SW5kZXgiLCJwcmV2aW91c1R5cGUiLCJwcmV2aW91c0luZGV4IiwiU2NoZW1hJDEiLCJpbXBsaWNpdCIsImV4cGxpY2l0IiwidHlwZSQxIiwibG9hZEtpbmQiLCJjb21waWxlZEltcGxpY2l0IiwiY29tcGlsZWRFeHBsaWNpdCIsImNvbXBpbGVkVHlwZU1hcCIsImNvbXBpbGVNYXAiLCJzY2FsYXIiLCJtYXBwaW5nIiwiZmFsbGJhY2siLCJjb2xsZWN0VHlwZSIsImZhaWxzYWZlIiwiX251bGwiLCJyZXNvbHZlWWFtbE51bGwiLCJjb25zdHJ1Y3RZYW1sTnVsbCIsImlzTnVsbCIsImNhbm9uaWNhbCIsImxvd2VyY2FzZSIsInVwcGVyY2FzZSIsImNhbWVsY2FzZSIsImJvb2wiLCJyZXNvbHZlWWFtbEJvb2xlYW4iLCJjb25zdHJ1Y3RZYW1sQm9vbGVhbiIsImlzQm9vbGVhbiIsImlzT2N0Q29kZSIsImlzRGVjQ29kZSIsInJlc29sdmVZYW1sSW50ZWdlciIsImhhc0RpZ2l0cyIsImNvbnN0cnVjdFlhbWxJbnRlZ2VyIiwic2lnbiIsImJpbmFyeSIsIm9jdGFsIiwiZGVjaW1hbCIsImhleGFkZWNpbWFsIiwidG9VcHBlckNhc2UiLCJZQU1MX0ZMT0FUX1BBVFRFUk4iLCJTQ0lFTlRJRklDX1dJVEhPVVRfRE9UIiwicmVzb2x2ZVlhbWxGbG9hdCIsImNvbnN0cnVjdFlhbWxGbG9hdCIsIlBPU0lUSVZFX0lORklOSVRZIiwicGFyc2VGbG9hdCIsImlzRmxvYXQiLCJyZXByZXNlbnRZYW1sRmxvYXQiLCJjb3JlIiwiWUFNTF9EQVRFX1JFR0VYUCIsIllBTUxfVElNRVNUQU1QX1JFR0VYUCIsInRpbWVzdGFtcCIsInJlc29sdmVZYW1sVGltZXN0YW1wIiwiY29uc3RydWN0WWFtbFRpbWVzdGFtcCIsInllYXIiLCJtb250aCIsImRheSIsImhvdXIiLCJtaW51dGUiLCJzZWNvbmQiLCJkYXRlIiwiZnJhY3Rpb24iLCJkZWx0YSIsIkRhdGUiLCJVVEMiLCJzZXRUaW1lIiwiZ2V0VGltZSIsInJlcHJlc2VudFlhbWxUaW1lc3RhbXAiLCJ0b0lTT1N0cmluZyIsInJlc29sdmVZYW1sTWVyZ2UiLCJCQVNFNjRfTUFQIiwicmVzb2x2ZVlhbWxCaW5hcnkiLCJiaXRsZW4iLCJjb25zdHJ1Y3RZYW1sQmluYXJ5IiwidGFpbGJpdHMiLCJyZXByZXNlbnRZYW1sQmluYXJ5IiwiX2hhc093blByb3BlcnR5JDMiLCJfdG9TdHJpbmckMiIsInJlc29sdmVZYW1sT21hcCIsInBhaXIiLCJwYWlyS2V5IiwicGFpckhhc0tleSIsImNvbnN0cnVjdFlhbWxPbWFwIiwiX3RvU3RyaW5nJDEiLCJyZXNvbHZlWWFtbFBhaXJzIiwiY29uc3RydWN0WWFtbFBhaXJzIiwiX2hhc093blByb3BlcnR5JDIiLCJyZXNvbHZlWWFtbFNldCIsImNvbnN0cnVjdFlhbWxTZXQiLCJfZGVmYXVsdCIsIl9oYXNPd25Qcm9wZXJ0eSQxIiwiQ09OVEVYVF9GTE9XX0lOIiwiQ09OVEVYVF9GTE9XX09VVCIsIkNPTlRFWFRfQkxPQ0tfSU4iLCJDT05URVhUX0JMT0NLX09VVCIsIkNIT01QSU5HX0NMSVAiLCJDSE9NUElOR19TVFJJUCIsIkNIT01QSU5HX0tFRVAiLCJQQVRURVJOX05PTl9QUklOVEFCTEUiLCJQQVRURVJOX05PTl9BU0NJSV9MSU5FX0JSRUFLUyIsIlBBVFRFUk5fRkxPV19JTkRJQ0FUT1JTIiwiUEFUVEVSTl9UQUdfSEFORExFIiwiUEFUVEVSTl9UQUdfVVJJIiwiX2NsYXNzIiwiaXNfRU9MIiwiaXNfV0hJVEVfU1BBQ0UiLCJpc19XU19PUl9FT0wiLCJpc19GTE9XX0lORElDQVRPUiIsImZyb21IZXhDb2RlIiwibGMiLCJzaW1wbGVFc2NhcGVTZXF1ZW5jZSIsImNoYXJGcm9tQ29kZXBvaW50Iiwic2ltcGxlRXNjYXBlQ2hlY2siLCJzaW1wbGVFc2NhcGVNYXAiLCJTdGF0ZSQxIiwiZmlsZW5hbWUiLCJvbldhcm5pbmciLCJsZWdhY3kiLCJsaXN0ZW5lciIsImltcGxpY2l0VHlwZXMiLCJ0eXBlTWFwIiwibGluZUluZGVudCIsImZpcnN0VGFiSW5MaW5lIiwiZG9jdW1lbnRzIiwiZ2VuZXJhdGVFcnJvciIsInRocm93RXJyb3IiLCJ0aHJvd1dhcm5pbmciLCJkaXJlY3RpdmVIYW5kbGVycyIsIllBTUwiLCJoYW5kbGVZYW1sRGlyZWN0aXZlIiwibWFqb3IiLCJtaW5vciIsImNoZWNrTGluZUJyZWFrcyIsIlRBRyIsImhhbmRsZVRhZ0RpcmVjdGl2ZSIsImhhbmRsZSIsInByZWZpeCIsInRhZ01hcCIsImRlY29kZVVSSUNvbXBvbmVudCIsImVyciIsImNhcHR1cmVTZWdtZW50IiwiY2hlY2tKc29uIiwiX3Bvc2l0aW9uIiwiX2xlbmd0aCIsIl9jaGFyYWN0ZXIiLCJtZXJnZU1hcHBpbmdzIiwiZGVzdGluYXRpb24iLCJvdmVycmlkYWJsZUtleXMiLCJxdWFudGl0eSIsInN0b3JlTWFwcGluZ1BhaXIiLCJrZXlUYWciLCJrZXlOb2RlIiwidmFsdWVOb2RlIiwic3RhcnRMaW5lIiwic3RhcnRMaW5lU3RhcnQiLCJzdGFydFBvcyIsInJlYWRMaW5lQnJlYWsiLCJza2lwU2VwYXJhdGlvblNwYWNlIiwiYWxsb3dDb21tZW50cyIsImNoZWNrSW5kZW50IiwibGluZUJyZWFrcyIsInRlc3REb2N1bWVudFNlcGFyYXRvciIsIndyaXRlRm9sZGVkTGluZXMiLCJyZWFkQmxvY2tTZXF1ZW5jZSIsIm5vZGVJbmRlbnQiLCJfbGluZSIsIl90YWciLCJfYW5jaG9yIiwiYW5jaG9yIiwiZGV0ZWN0ZWQiLCJhbmNob3JNYXAiLCJjb21wb3NlTm9kZSIsInJlYWRUYWdQcm9wZXJ0eSIsInRhZ0hhbmRsZSIsInRhZ05hbWUiLCJpc1ZlcmJhdGltIiwiaXNOYW1lZCIsInJlYWRBbmNob3JQcm9wZXJ0eSIsInBhcmVudEluZGVudCIsIm5vZGVDb250ZXh0IiwiYWxsb3dUb1NlZWsiLCJhbGxvd0NvbXBhY3QiLCJhbGxvd0Jsb2NrU3R5bGVzIiwiYWxsb3dCbG9ja1NjYWxhcnMiLCJhbGxvd0Jsb2NrQ29sbGVjdGlvbnMiLCJ0eXBlSW5kZXgiLCJ0eXBlUXVhbnRpdHkiLCJ0eXBlTGlzdCIsImZsb3dJbmRlbnQiLCJibG9ja0luZGVudCIsImluZGVudFN0YXR1cyIsImF0TmV3TGluZSIsImhhc0NvbnRlbnQiLCJyZWFkQmxvY2tNYXBwaW5nIiwiZm9sbG93aW5nIiwiX2tleUxpbmUiLCJfa2V5TGluZVN0YXJ0IiwiX2tleVBvcyIsImF0RXhwbGljaXRLZXkiLCJyZWFkRmxvd0NvbGxlY3Rpb24iLCJfbGluZVN0YXJ0IiwiX3BvcyIsInRlcm1pbmF0b3IiLCJpc1BhaXIiLCJpc0V4cGxpY2l0UGFpciIsImlzTWFwcGluZyIsInJlYWROZXh0IiwicmVhZEJsb2NrU2NhbGFyIiwiY2FwdHVyZVN0YXJ0IiwiZm9sZGluZyIsImNob21waW5nIiwiZGlkUmVhZENvbnRlbnQiLCJkZXRlY3RlZEluZGVudCIsInRleHRJbmRlbnQiLCJlbXB0eUxpbmVzIiwiYXRNb3JlSW5kZW50ZWQiLCJyZWFkU2luZ2xlUXVvdGVkU2NhbGFyIiwiY2FwdHVyZUVuZCIsInJlYWREb3VibGVRdW90ZWRTY2FsYXIiLCJoZXhMZW5ndGgiLCJoZXhSZXN1bHQiLCJyZWFkQWxpYXMiLCJyZWFkUGxhaW5TY2FsYXIiLCJ3aXRoaW5GbG93Q29sbGVjdGlvbiIsImhhc1BlbmRpbmdDb250ZW50IiwiX2xpbmVJbmRlbnQiLCJfa2luZCIsInJlYWREb2N1bWVudCIsImRpcmVjdGl2ZU5hbWUiLCJkaXJlY3RpdmVBcmdzIiwiZG9jdW1lbnRTdGFydCIsImhhc0RpcmVjdGl2ZXMiLCJsb2FkRG9jdW1lbnRzIiwibnVsbHBvcyIsImxvYWRlciIsImxvYWRBbGwiLCJsb2FkQWxsJDEiLCJsb2FkIiwibG9hZCQxIiwiX3RvU3RyaW5nIiwiX2hhc093blByb3BlcnR5IiwiQ0hBUl9CT00iLCJDSEFSX1RBQiIsIkNIQVJfTElORV9GRUVEIiwiQ0hBUl9DQVJSSUFHRV9SRVRVUk4iLCJDSEFSX1NQQUNFIiwiQ0hBUl9FWENMQU1BVElPTiIsIkNIQVJfRE9VQkxFX1FVT1RFIiwiQ0hBUl9TSEFSUCIsIkNIQVJfUEVSQ0VOVCIsIkNIQVJfQU1QRVJTQU5EIiwiQ0hBUl9TSU5HTEVfUVVPVEUiLCJDSEFSX0FTVEVSSVNLIiwiQ0hBUl9DT01NQSIsIkNIQVJfTUlOVVMiLCJDSEFSX0NPTE9OIiwiQ0hBUl9FUVVBTFMiLCJDSEFSX0dSRUFURVJfVEhBTiIsIkNIQVJfUVVFU1RJT04iLCJDSEFSX0NPTU1FUkNJQUxfQVQiLCJDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQiLCJDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUIiwiQ0hBUl9HUkFWRV9BQ0NFTlQiLCJDSEFSX0xFRlRfQ1VSTFlfQlJBQ0tFVCIsIkNIQVJfVkVSVElDQUxfTElORSIsIkNIQVJfUklHSFRfQ1VSTFlfQlJBQ0tFVCIsIkVTQ0FQRV9TRVFVRU5DRVMiLCJERVBSRUNBVEVEX0JPT0xFQU5TX1NZTlRBWCIsIkRFUFJFQ0FURURfQkFTRTYwX1NZTlRBWCIsImVuY29kZUhleCIsImNoYXJhY3RlciIsIlFVT1RJTkdfVFlQRV9TSU5HTEUiLCJRVU9USU5HX1RZUEVfRE9VQkxFIiwiU3RhdGUiLCJub0FycmF5SW5kZW50Iiwic2tpcEludmFsaWQiLCJmbG93TGV2ZWwiLCJzdHlsZU1hcCIsImNvbXBpbGVTdHlsZU1hcCIsInNvcnRLZXlzIiwibGluZVdpZHRoIiwibm9SZWZzIiwibm9Db21wYXRNb2RlIiwiY29uZGVuc2VGbG93IiwicXVvdGluZ1R5cGUiLCJmb3JjZVF1b3RlcyIsInJlcGxhY2VyIiwiZXhwbGljaXRUeXBlcyIsImR1cGxpY2F0ZXMiLCJ1c2VkRHVwbGljYXRlcyIsImluZGVudFN0cmluZyIsInNwYWNlcyIsImluZCIsImdlbmVyYXRlTmV4dExpbmUiLCJpc1doaXRlc3BhY2UiLCJpc1ByaW50YWJsZSIsImlzTnNDaGFyT3JXaGl0ZXNwYWNlIiwiaXNQbGFpblNhZmUiLCJpbmJsb2NrIiwiY0lzTnNDaGFyT3JXaGl0ZXNwYWNlIiwiY0lzTnNDaGFyIiwiY29kZVBvaW50QXQiLCJuZWVkSW5kZW50SW5kaWNhdG9yIiwiU1RZTEVfUExBSU4iLCJTVFlMRV9TSU5HTEUiLCJTVFlMRV9MSVRFUkFMIiwiU1RZTEVfRk9MREVEIiwiU1RZTEVfRE9VQkxFIiwiY2hvb3NlU2NhbGFyU3R5bGUiLCJzaW5nbGVMaW5lT25seSIsImluZGVudFBlckxldmVsIiwidGVzdEFtYmlndW91c1R5cGUiLCJjaGFyIiwicHJldkNoYXIiLCJoYXNMaW5lQnJlYWsiLCJoYXNGb2xkYWJsZUxpbmUiLCJzaG91bGRUcmFja1dpZHRoIiwicHJldmlvdXNMaW5lQnJlYWsiLCJwbGFpbiIsImlzUGxhaW5TYWZlRmlyc3QiLCJpc1BsYWluU2FmZUxhc3QiLCJ3cml0ZVNjYWxhciIsImlza2V5IiwiZHVtcCIsInRlc3RBbWJpZ3VpdHkiLCJ0ZXN0SW1wbGljaXRSZXNvbHZpbmciLCJibG9ja0hlYWRlciIsImRyb3BFbmRpbmdOZXdsaW5lIiwiZm9sZFN0cmluZyIsIndpZHRoIiwibW9yZUluZGVudGVkIiwibGluZVJlIiwibmV4dExGIiwibGFzdEluZGV4IiwiZm9sZExpbmUiLCJwcmV2TW9yZUluZGVudGVkIiwiZXNjYXBlU3RyaW5nIiwiZXNjYXBlU2VxIiwiaW5kZW50SW5kaWNhdG9yIiwiY2xpcCIsImJyZWFrUmUiLCJjdXJyIiwid3JpdGVCbG9ja1NlcXVlbmNlIiwid3JpdGVOb2RlIiwiZGV0ZWN0VHlwZSIsImlzYmxvY2tzZXEiLCJ0YWdTdHIiLCJkdXBsaWNhdGVJbmRleCIsImR1cGxpY2F0ZSIsIm9iamVjdE9yQXJyYXkiLCJ3cml0ZUJsb2NrTWFwcGluZyIsIm9iamVjdEtleSIsIm9iamVjdFZhbHVlIiwiZXhwbGljaXRQYWlyIiwicGFpckJ1ZmZlciIsIm9iamVjdEtleUxpc3QiLCJ3cml0ZUZsb3dNYXBwaW5nIiwid3JpdGVGbG93U2VxdWVuY2UiLCJlbmNvZGVVUkkiLCJnZXREdXBsaWNhdGVSZWZlcmVuY2VzIiwib2JqZWN0cyIsImR1cGxpY2F0ZXNJbmRleGVzIiwiaW5zcGVjdE5vZGUiLCJyZW5hbWVkIiwiVHlwZSIsIlNjaGVtYSIsIkZBSUxTQUZFX1NDSEVNQSIsIkpTT05fU0NIRU1BIiwiQ09SRV9TQ0hFTUEiLCJERUZBVUxUX1NDSEVNQSIsImR1bXAkMSIsIllBTUxFeGNlcHRpb24iLCJmbG9hdCIsIm51bGwiLCJpbnQiLCJzYWZlTG9hZCIsInNhZmVMb2FkQWxsIiwic2FmZUR1bXAiLCJVUERBVEVfQ09ORklHUyIsIlRPR0dMRV9DT05GSUdTIiwiY29uZmlnTmFtZSIsImNvbmZpZ1ZhbHVlIiwicGF5bG9hZCIsInRvZ2dsZSIsImRvd25sb2FkQ29uZmlnIiwicmVxIiwic3lzdGVtIiwiZmV0Y2giLCJnZXRDb25maWdCeVVybCIsImNvbmZpZ3NBY3Rpb25zIiwic3RhdHVzIiwidXBkYXRlTG9hZGluZ1N0YXR1cyIsInN0YXR1c1RleHQiLCJwYXJzZUNvbmZpZyIsInlhbWwiLCJlcnJBY3Rpb25zIiwibmV3VGhyb3duRXJyIiwidGV4dCIsImFjdGlvbiIsIm9yaVZhbCIsImNvbXBvbmVudERpZENhdGNoIiwid2l0aEVycm9yQm91bmRhcnkiLCJnZXRTeXN0ZW0iLCJXcmFwcGVkQ29tcG9uZW50IiwiRXJyb3JCb3VuZGFyeSIsInRhcmdldE5hbWUiLCJnZXREaXNwbGF5TmFtZSIsIldpdGhFcnJvckJvdW5kYXJ5IiwiaXNDbGFzc0NvbXBvbmVudCIsImNvbXBvbmVudCIsImRpc3BsYXlOYW1lIiwibWFwU3RhdGVUb1Byb3BzIiwiRmFsbGJhY2siLCJzdGF0aWMiLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJoYXNFcnJvciIsImVycm9ySW5mbyIsIkZhbGxiYWNrQ29tcG9uZW50IiwiY29uZmlnc1BsdWdpbiIsInN0YXRlUGx1Z2lucyIsInJlZHVjZXJzIiwiYWN0aW9ucyIsInNlbGVjdG9ycyIsInNhZmVSZW5kZXJQbHVnaW4iLCJjb21wb25lbnRMaXN0IiwiZnVsbE92ZXJyaWRlIiwibWVyZ2VkQ29tcG9uZW50TGlzdCIsIndyYXBDb21wb25lbnRzIiwid3JhcEZhY3RvcnkiLCJPcmlnaW5hbCIsIlNhZmVSZW5kZXJQbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9</File>
        <File Location="var/httpd/htdocs/js/thirdparty/swagger/swagger-ui.css" Permission="660" Encode="Base64">LnN3YWdnZXItdWl7Y29sb3I6IzNiNDE1MTtmb250LWZhbWlseTpzYW5zLXNlcmlmfS5zd2FnZ2VyLXVpIGh0bWx7bGluZS1oZWlnaHQ6MS4xNTstbXMtdGV4dC1zaXplLWFkanVzdDoxMDAlOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlfS5zd2FnZ2VyLXVpIGJvZHl7bWFyZ2luOjB9LnN3YWdnZXItdWkgYXJ0aWNsZSwuc3dhZ2dlci11aSBhc2lkZSwuc3dhZ2dlci11aSBmb290ZXIsLnN3YWdnZXItdWkgaGVhZGVyLC5zd2FnZ2VyLXVpIG5hdiwuc3dhZ2dlci11aSBzZWN0aW9ue2Rpc3BsYXk6YmxvY2t9LnN3YWdnZXItdWkgaDF7Zm9udC1zaXplOjJlbTttYXJnaW46LjY3ZW0gMH0uc3dhZ2dlci11aSBmaWdjYXB0aW9uLC5zd2FnZ2VyLXVpIGZpZ3VyZSwuc3dhZ2dlci11aSBtYWlue2Rpc3BsYXk6YmxvY2t9LnN3YWdnZXItdWkgZmlndXJle21hcmdpbjoxZW0gNDBweH0uc3dhZ2dlci11aSBocntib3gtc2l6aW5nOmNvbnRlbnQtYm94O2hlaWdodDowO292ZXJmbG93OnZpc2libGV9LnN3YWdnZXItdWkgcHJle2ZvbnQtZmFtaWx5Om1vbm9zcGFjZSxtb25vc3BhY2U7Zm9udC1zaXplOjFlbX0uc3dhZ2dlci11aSBhe2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7LXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDpvYmplY3RzfS5zd2FnZ2VyLXVpIGFiYnJbdGl0bGVde2JvcmRlci1ib3R0b206bm9uZTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWR9LnN3YWdnZXItdWkgYiwuc3dhZ2dlci11aSBzdHJvbmd7Zm9udC13ZWlnaHQ6aW5oZXJpdDtmb250LXdlaWdodDpib2xkZXJ9LnN3YWdnZXItdWkgY29kZSwuc3dhZ2dlci11aSBrYmQsLnN3YWdnZXItdWkgc2FtcHtmb250LWZhbWlseTptb25vc3BhY2UsbW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW19LnN3YWdnZXItdWkgZGZue2ZvbnQtc3R5bGU6aXRhbGljfS5zd2FnZ2VyLXVpIG1hcmt7YmFja2dyb3VuZC1jb2xvcjojZmYwO2NvbG9yOiMwMDB9LnN3YWdnZXItdWkgc21hbGx7Zm9udC1zaXplOjgwJX0uc3dhZ2dlci11aSBzdWIsLnN3YWdnZXItdWkgc3Vwe2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX0uc3dhZ2dlci11aSBzdWJ7Ym90dG9tOi0uMjVlbX0uc3dhZ2dlci11aSBzdXB7dG9wOi0uNWVtfS5zd2FnZ2VyLXVpIGF1ZGlvLC5zd2FnZ2VyLXVpIHZpZGVve2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5zd2FnZ2VyLXVpIGF1ZGlvOm5vdChbY29udHJvbHNdKXtkaXNwbGF5Om5vbmU7aGVpZ2h0OjB9LnN3YWdnZXItdWkgaW1ne2JvcmRlci1zdHlsZTpub25lfS5zd2FnZ2VyLXVpIHN2Zzpub3QoOnJvb3Qpe292ZXJmbG93OmhpZGRlbn0uc3dhZ2dlci11aSBidXR0b24sLnN3YWdnZXItdWkgaW5wdXQsLnN3YWdnZXItdWkgb3B0Z3JvdXAsLnN3YWdnZXItdWkgc2VsZWN0LC5zd2FnZ2VyLXVpIHRleHRhcmVhe2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7Zm9udC1zaXplOjEwMCU7bGluZS1oZWlnaHQ6MS4xNTttYXJnaW46MH0uc3dhZ2dlci11aSBidXR0b24sLnN3YWdnZXItdWkgaW5wdXR7b3ZlcmZsb3c6dmlzaWJsZX0uc3dhZ2dlci11aSBidXR0b24sLnN3YWdnZXItdWkgc2VsZWN0e3RleHQtdHJhbnNmb3JtOm5vbmV9LnN3YWdnZXItdWkgW3R5cGU9cmVzZXRdLC5zd2FnZ2VyLXVpIFt0eXBlPXN1Ym1pdF0sLnN3YWdnZXItdWkgYnV0dG9uLC5zd2FnZ2VyLXVpIGh0bWwgW3R5cGU9YnV0dG9uXXstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9ufS5zd2FnZ2VyLXVpIFt0eXBlPWJ1dHRvbl06Oi1tb3otZm9jdXMtaW5uZXIsLnN3YWdnZXItdWkgW3R5cGU9cmVzZXRdOjotbW96LWZvY3VzLWlubmVyLC5zd2FnZ2VyLXVpIFt0eXBlPXN1Ym1pdF06Oi1tb3otZm9jdXMtaW5uZXIsLnN3YWdnZXItdWkgYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlci1zdHlsZTpub25lO3BhZGRpbmc6MH0uc3dhZ2dlci11aSBbdHlwZT1idXR0b25dOi1tb3otZm9jdXNyaW5nLC5zd2FnZ2VyLXVpIFt0eXBlPXJlc2V0XTotbW96LWZvY3VzcmluZywuc3dhZ2dlci11aSBbdHlwZT1zdWJtaXRdOi1tb3otZm9jdXNyaW5nLC5zd2FnZ2VyLXVpIGJ1dHRvbjotbW96LWZvY3VzcmluZ3tvdXRsaW5lOjFweCBkb3R0ZWQgQnV0dG9uVGV4dH0uc3dhZ2dlci11aSBmaWVsZHNldHtwYWRkaW5nOi4zNWVtIC43NWVtIC42MjVlbX0uc3dhZ2dlci11aSBsZWdlbmR7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOmluaGVyaXQ7ZGlzcGxheTp0YWJsZTttYXgtd2lkdGg6MTAwJTtwYWRkaW5nOjA7d2hpdGUtc3BhY2U6bm9ybWFsfS5zd2FnZ2VyLXVpIHByb2dyZXNze2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfS5zd2FnZ2VyLXVpIHRleHRhcmVhe292ZXJmbG93OmF1dG99LnN3YWdnZXItdWkgW3R5cGU9Y2hlY2tib3hdLC5zd2FnZ2VyLXVpIFt0eXBlPXJhZGlvXXtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzowfS5zd2FnZ2VyLXVpIFt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sLnN3YWdnZXItdWkgW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b30uc3dhZ2dlci11aSBbdHlwZT1zZWFyY2hdey13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7b3V0bGluZS1vZmZzZXQ6LTJweH0uc3dhZ2dlci11aSBbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLC5zd2FnZ2VyLXVpIFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9LnN3YWdnZXItdWkgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9uO2ZvbnQ6aW5oZXJpdH0uc3dhZ2dlci11aSBkZXRhaWxzLC5zd2FnZ2VyLXVpIG1lbnV7ZGlzcGxheTpibG9ja30uc3dhZ2dlci11aSBzdW1tYXJ5e2Rpc3BsYXk6bGlzdC1pdGVtfS5zd2FnZ2VyLXVpIGNhbnZhc3tkaXNwbGF5OmlubGluZS1ibG9ja30uc3dhZ2dlci11aSBbaGlkZGVuXSwuc3dhZ2dlci11aSB0ZW1wbGF0ZXtkaXNwbGF5Om5vbmV9LnN3YWdnZXItdWkgLmRlYnVnICp7b3V0bGluZToxcHggc29saWQgZ29sZH0uc3dhZ2dlci11aSAuZGVidWctd2hpdGUgKntvdXRsaW5lOjFweCBzb2xpZCAjZmZmfS5zd2FnZ2VyLXVpIC5kZWJ1Zy1ibGFjayAqe291dGxpbmU6MXB4IHNvbGlkICMwMDB9LnN3YWdnZXItdWkgLmRlYnVnLWdyaWR7YmFja2dyb3VuZDp0cmFuc3BhcmVudCB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBZ0FBQUFJQ0FZQUFBREVENzZMQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5aHBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVEV4SURjNUxqRTFPRE15TlN3Z01qQXhOUzh3T1M4eE1DMHdNVG94TURveU1DQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1RVMDlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl0YlM4aUlIaHRiRzV6T25OMFVtVm1QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2YzFSNWNHVXZVbVZ6YjNWeVkyVlNaV1lqSWlCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlJSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZNVFJET1RZNE4wVTJOMFZGTVRGRk5qZzJNelpEUWprd05rUTRNamd3TUVJaUlIaHRjRTFOT2tsdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk1UUkRPVFk0TjBRMk4wVkZNVEZGTmpnMk16WkRRamt3TmtRNE1qZ3dNRUlpSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVWdLRTFoWTJsdWRHOXphQ2tpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvM05qY3lRa1EzTmpZM1F6VXhNVVUyUWpKQ1EwVXlOREE0TVRBd01qRTNNU0lnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRG8zTmpjeVFrUTNOelkzUXpVeE1VVTJRakpDUTBVeU5EQTRNVEF3TWpFM01TSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9Qc0JTK0dNQUFBQWpTVVJCVkhqYVl2ei8vejhETHNENGdjR1hpWUVBR0JJS0dCbmUvL2ZGcHdBZ3dBQjk4QWFGMnBqbFVRQUFBQUJKUlU1RXJrSmdnZz09KSByZXBlYXQgMCAwfS5zd2FnZ2VyLXVpIC5kZWJ1Zy1ncmlkLTE2e2JhY2tncm91bmQ6dHJhbnNwYXJlbnQgdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBWUFBQUFmOC85aEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeWhwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRFeElEYzVMakUxT0RNeU5Td2dNakF4TlM4d09TOHhNQzB3TVRveE1Eb3lNQ0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdUVTA5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5dGJTOGlJSGh0Ykc1ek9uTjBVbVZtUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdmMxUjVjR1V2VW1WemIzVnlZMlZTWldZaklpQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpSUhodGNFMU5Pa1J2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2T0RZeVJqaEVSRFUyTjBZeU1URkZOamcyTXpaRFFqa3dOa1E0TWpnd01FSWlJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZPRFl5UmpoRVJEUTJOMFl5TVRGRk5qZzJNelpEUWprd05rUTRNamd3TUVJaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFVnS0UxaFkybHVkRzl6YUNraVBpQThlRzF3VFUwNlJHVnlhWFpsWkVaeWIyMGdjM1JTWldZNmFXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzNOamN5UWtRM1FUWTNRelV4TVVVMlFqSkNRMFV5TkRBNE1UQXdNakUzTVNJZ2MzUlNaV1k2Wkc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRvM05qY3lRa1EzUWpZM1F6VXhNVVUyUWpKQ1EwVXlOREE0TVRBd01qRTNNU0l2UGlBOEwzSmtaanBFWlhOamNtbHdkR2x2Ymo0Z1BDOXlaR1k2VWtSR1BpQThMM2c2ZUcxd2JXVjBZVDRnUEQ5NGNHRmphMlYwSUdWdVpEMGljaUkvUHZDUzAxSUFBQUJNU1VSQlZIamFZbVI0LzUrQkZQQmZBTUZtL01CZ3g4UkFHV0NuMUFBbVNnMzRRNmtCREtNR01EQ3dJQ2VNSWVtRi81UWF3RWlwQVd3VWh3RWpNRHZiQVdsV2t2VkJ3dTh2UUlBQkFFd0JDcGg4VTZjMEFBQUFBRWxGVGtTdVFtQ0MpIHJlcGVhdCAwIDB9LnN3YWdnZXItdWkgLmRlYnVnLWdyaWQtOC1zb2xpZHtiYWNrZ3JvdW5kOiNmZmYgdXJsKGRhdGE6aW1hZ2UvanBlZztiYXNlNjQsLzlqLzRRQVlSWGhwWmdBQVNVa3FBQWdBQUFBQUFBQUFBQUFBQVAvc0FCRkVkV05yZVFBQkFBUUFBQUFBQUFELzRRTXhhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMd0E4UDNod1lXTnJaWFFnWW1WbmFXNDlJdSs3dnlJZ2FXUTlJbGMxVFRCTmNFTmxhR2xJZW5KbFUzcE9WR042YTJNNVpDSS9QaUE4ZURwNGJYQnRaWFJoSUhodGJHNXpPbmc5SW1Ga2IySmxPbTV6T20xbGRHRXZJaUI0T25odGNIUnJQU0pCWkc5aVpTQllUVkFnUTI5eVpTQTFMall0WXpFeE1TQTNPUzR4TlRnek1qVXNJREl3TVRVdk1Ea3ZNVEF0TURFNk1UQTZNakFnSUNBZ0lDQWdJQ0krSUR4eVpHWTZVa1JHSUhodGJHNXpPbkprWmowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzh3TWk4eU1pMXlaR1l0YzNsdWRHRjRMVzV6SXlJK0lEeHlaR1k2UkdWelkzSnBjSFJwYjI0Z2NtUm1PbUZpYjNWMFBTSWlJSGh0Ykc1ek9uaHRjRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3THlJZ2VHMXNibk02ZUcxd1RVMDlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl0YlM4aUlIaHRiRzV6T25OMFVtVm1QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2YzFSNWNHVXZVbVZ6YjNWeVkyVlNaV1lqSWlCNGJYQTZRM0psWVhSdmNsUnZiMnc5SWtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTFJQ2hOWVdOcGJuUnZjMmdwSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2tJeE1qSTBPVGN6TmpkQ016RXhSVFpDTWtKRFJUSTBNRGd4TURBeU1UY3hJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPa0l4TWpJME9UYzBOamRDTXpFeFJUWkNNa0pEUlRJME1EZ3hNREF5TVRjeElqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZRakV5TWpRNU56RTJOMEl6TVRGRk5rSXlRa05GTWpRd09ERXdNREl4TnpFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlFqRXlNalE1TnpJMk4wSXpNVEZGTmtJeVFrTkZNalF3T0RFd01ESXhOekVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo3LzdnQU9RV1J2WW1VQVpNQUFBQUFCLzlzQWhBQWJHaG9wSFNsQkppWkJRaTh2TDBKSFB6NCtQMGRIUjBkSFIwZEhSMGRIUjBkSFIwZEhSMGRIUjBkSFIwZEhSMGRIUjBkSFIwZEhSMGRIUjBkSFIwZEhBUjBwS1RRbU5EOG9LRDlIUHpVL1IwZEhSMGRIUjBkSFIwZEhSMGRIUjBkSFIwZEhSMGRIUjBkSFIwZEhSMGRIUjBkSFIwZEhSMGRIUjBkSFIwZEhSMGYvd0FBUkNBQUlBQWdEQVNJQUFoRUJBeEVCLzhRQVdRQUJBUUFBQUFBQUFBQUFBQUFBQUFBQUFBWUJBUUVBQUFBQUFBQUFBQUFBQUFBQUFBSUVFQUVCQUFNQkFBQUFBQUFBQUFBQUFBQUJBREVDQTBFUkFBRURCUUFBQUFBQUFBQUFBQUFBQUFBUklURkJVV0VTSXYvYUFBd0RBUUFDRVFNUkFEOEFvT25UVjFRVEQ3SkpzaFAzdlNNM1AvL1opIHJlcGVhdCAwIDB9LnN3YWdnZXItdWkgLmRlYnVnLWdyaWQtMTYtc29saWR7YmFja2dyb3VuZDojZmZmIHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQUlBQUFDUWtXZzJBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlocFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1URXhJRGM1TGpFMU9ETXlOU3dnTWpBeE5TOHdPUzh4TUMwd01Ub3hNRG95TUNBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFVnS0UxaFkybHVkRzl6YUNraUlIaHRjRTFOT2tsdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk56WTNNa0pFTjBVMk4wTTFNVEZGTmtJeVFrTkZNalF3T0RFd01ESXhOekVpSUhodGNFMU5Pa1J2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TnpZM01rSkVOMFkyTjBNMU1URkZOa0l5UWtORk1qUXdPREV3TURJeE56RWlQaUE4ZUcxd1RVMDZSR1Z5YVhabFpFWnliMjBnYzNSU1pXWTZhVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8zTmpjeVFrUTNRelkzUXpVeE1VVTJRakpDUTBVeU5EQTRNVEF3TWpFM01TSWdjM1JTWldZNlpHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEbzNOamN5UWtRM1JEWTNRelV4TVVVMlFqSkNRMFV5TkRBNE1UQXdNakUzTVNJdlBpQThMM0prWmpwRVpYTmpjbWx3ZEdsdmJqNGdQQzl5WkdZNlVrUkdQaUE4TDNnNmVHMXdiV1YwWVQ0Z1BEOTRjR0ZqYTJWMElHVnVaRDBpY2lJL1B2ZTZKM2tBQUFBelNVUkJWSGphWXZ6Ly96OEQwVURzTXdNalNSb1lQNUdxNFNQTmJSalZNRVExZkNSRGcraW4vNitKMUFKVXhzZ0FFR0FBMzFCQUpNUzBHWUVBQUFBQVNVVk9SSzVDWUlJPSkgcmVwZWF0IDAgMH0uc3dhZ2dlci11aSAuYm9yZGVyLWJveCwuc3dhZ2dlci11aSBhLC5zd2FnZ2VyLXVpIGFydGljbGUsLnN3YWdnZXItdWkgYm9keSwuc3dhZ2dlci11aSBjb2RlLC5zd2FnZ2VyLXVpIGRkLC5zd2FnZ2VyLXVpIGRpdiwuc3dhZ2dlci11aSBkbCwuc3dhZ2dlci11aSBkdCwuc3dhZ2dlci11aSBmaWVsZHNldCwuc3dhZ2dlci11aSBmb290ZXIsLnN3YWdnZXItdWkgZm9ybSwuc3dhZ2dlci11aSBoMSwuc3dhZ2dlci11aSBoMiwuc3dhZ2dlci11aSBoMywuc3dhZ2dlci11aSBoNCwuc3dhZ2dlci11aSBoNSwuc3dhZ2dlci11aSBoNiwuc3dhZ2dlci11aSBoZWFkZXIsLnN3YWdnZXItdWkgaHRtbCwuc3dhZ2dlci11aSBpbnB1dFt0eXBlPWVtYWlsXSwuc3dhZ2dlci11aSBpbnB1dFt0eXBlPW51bWJlcl0sLnN3YWdnZXItdWkgaW5wdXRbdHlwZT1wYXNzd29yZF0sLnN3YWdnZXItdWkgaW5wdXRbdHlwZT10ZWxdLC5zd2FnZ2VyLXVpIGlucHV0W3R5cGU9dGV4dF0sLnN3YWdnZXItdWkgaW5wdXRbdHlwZT11cmxdLC5zd2FnZ2VyLXVpIGxlZ2VuZCwuc3dhZ2dlci11aSBsaSwuc3dhZ2dlci11aSBtYWluLC5zd2FnZ2VyLXVpIG9sLC5zd2FnZ2VyLXVpIHAsLnN3YWdnZXItdWkgcHJlLC5zd2FnZ2VyLXVpIHNlY3Rpb24sLnN3YWdnZXItdWkgdGFibGUsLnN3YWdnZXItdWkgdGQsLnN3YWdnZXItdWkgdGV4dGFyZWEsLnN3YWdnZXItdWkgdGgsLnN3YWdnZXItdWkgdHIsLnN3YWdnZXItdWkgdWx7Ym94LXNpemluZzpib3JkZXItYm94fS5zd2FnZ2VyLXVpIC5hc3BlY3QtcmF0aW97aGVpZ2h0OjA7cG9zaXRpb246cmVsYXRpdmV9LnN3YWdnZXItdWkgLmFzcGVjdC1yYXRpby0tMTZ4OXtwYWRkaW5nLWJvdHRvbTo1Ni4yNSV9LnN3YWdnZXItdWkgLmFzcGVjdC1yYXRpby0tOXgxNntwYWRkaW5nLWJvdHRvbToxNzcuNzclfS5zd2FnZ2VyLXVpIC5hc3BlY3QtcmF0aW8tLTR4M3twYWRkaW5nLWJvdHRvbTo3NSV9LnN3YWdnZXItdWkgLmFzcGVjdC1yYXRpby0tM3g0e3BhZGRpbmctYm90dG9tOjEzMy4zMyV9LnN3YWdnZXItdWkgLmFzcGVjdC1yYXRpby0tNng0e3BhZGRpbmctYm90dG9tOjY2LjYlfS5zd2FnZ2VyLXVpIC5hc3BlY3QtcmF0aW8tLTR4NntwYWRkaW5nLWJvdHRvbToxNTAlfS5zd2FnZ2VyLXVpIC5hc3BlY3QtcmF0aW8tLTh4NXtwYWRkaW5nLWJvdHRvbTo2Mi41JX0uc3dhZ2dlci11aSAuYXNwZWN0LXJhdGlvLS01eDh7cGFkZGluZy1ib3R0b206MTYwJX0uc3dhZ2dlci11aSAuYXNwZWN0LXJhdGlvLS03eDV7cGFkZGluZy1ib3R0b206NzEuNDIlfS5zd2FnZ2VyLXVpIC5hc3BlY3QtcmF0aW8tLTV4N3twYWRkaW5nLWJvdHRvbToxNDAlfS5zd2FnZ2VyLXVpIC5hc3BlY3QtcmF0aW8tLTF4MXtwYWRkaW5nLWJvdHRvbToxMDAlfS5zd2FnZ2VyLXVpIC5hc3BlY3QtcmF0aW8tLW9iamVjdHtib3R0b206MDtoZWlnaHQ6MTAwJTtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDt3aWR0aDoxMDAlO3otaW5kZXg6MTAwfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSl7LnN3YWdnZXItdWkgLmFzcGVjdC1yYXRpby1uc3toZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZX0uc3dhZ2dlci11aSAuYXNwZWN0LXJhdGlvLS0xNng5LW5ze3BhZGRpbmctYm90dG9tOjU2LjI1JX0uc3dhZ2dlci11aSAuYXNwZWN0LXJhdGlvLS05eDE2LW5ze3BhZGRpbmctYm90dG9tOjE3Ny43NyV9LnN3YWdnZXItdWkgLmFzcGVjdC1yYXRpby0tNHgzLW5ze3BhZGRpbmctYm90dG9tOjc1JX0uc3dhZ2dlci11aSAuYXNwZWN0LXJhdGlvLS0zeDQtbnN7cGFkZGluZy1ib3R0b206MTMzLjMzJX0uc3dhZ2dlci11aSAuYXNwZWN0LXJhdGlvLS02eDQtbnN7cGFkZGluZy1ib3R0b206NjYuNiV9LnN3YWdnZXItdWkgLmFzcGVjdC1yYXRpby0tNHg2LW5ze3BhZGRpbmctYm90dG9tOjE1MCV9LnN3YWdnZXItdWkgLmFzcGVjdC1yYXRpby0tOHg1LW5ze3BhZGRpbmctYm90dG9tOjYyLjUlfS5zd2FnZ2VyLXVpIC5hc3BlY3QtcmF0aW8tLTV4OC1uc3twYWRkaW5nLWJvdHRvbToxNjAlfS5zd2FnZ2VyLXVpIC5hc3BlY3QtcmF0aW8tLTd4NS1uc3twYWRkaW5nLWJvdHRvbTo3MS40MiV9LnN3YWdnZXItdWkgLmFzcGVjdC1yYXRpby0tNXg3LW5ze3BhZGRpbmctYm90dG9tOjE0MCV9LnN3YWdnZXItdWkgLmFzcGVjdC1yYXRpby0tMXgxLW5ze3BhZGRpbmctYm90dG9tOjEwMCV9LnN3YWdnZXItdWkgLmFzcGVjdC1yYXRpby0tb2JqZWN0LW5ze2JvdHRvbTowO2hlaWdodDoxMDAlO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowO3dpZHRoOjEwMCU7ei1pbmRleDoxMDB9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSlhbmQgKG1heC13aWR0aDo2MGVtKXsuc3dhZ2dlci11aSAuYXNwZWN0LXJhdGlvLW17aGVpZ2h0OjA7cG9zaXRpb246cmVsYXRpdmV9LnN3YWdnZXItdWkgLmFzcGVjdC1yYXRpby0tMTZ4OS1te3BhZGRpbmctYm90dG9tOjU2LjI1JX0uc3dhZ2dlci11aSAuYXNwZWN0LXJhdGlvLS05eDE2LW17cGFkZGluZy1ib3R0b206MTc3Ljc3JX0uc3dhZ2dlci11aSAuYXNwZWN0LXJhdGlvLS00eDMtbXtwYWRkaW5nLWJvdHRvbTo3NSV9LnN3YWdnZXItdWkgLmFzcGVjdC1yYXRpby0tM3g0LW17cGFkZGluZy1ib3R0b206MTMzLjMzJX0uc3dhZ2dlci11aSAuYXNwZWN0LXJhdGlvLS02eDQtbXtwYWRkaW5nLWJvdHRvbTo2Ni42JX0uc3dhZ2dlci11aSAuYXNwZWN0LXJhdGlvLS00eDYtbXtwYWRkaW5nLWJvdHRvbToxNTAlfS5zd2FnZ2VyLXVpIC5hc3BlY3QtcmF0aW8tLTh4NS1te3BhZGRpbmctYm90dG9tOjYyLjUlfS5zd2FnZ2VyLXVpIC5hc3BlY3QtcmF0aW8tLTV4OC1te3BhZGRpbmctYm90dG9tOjE2MCV9LnN3YWdnZXItdWkgLmFzcGVjdC1yYXRpby0tN3g1LW17cGFkZGluZy1ib3R0b206NzEuNDIlfS5zd2FnZ2VyLXVpIC5hc3BlY3QtcmF0aW8tLTV4Ny1te3BhZGRpbmctYm90dG9tOjE0MCV9LnN3YWdnZXItdWkgLmFzcGVjdC1yYXRpby0tMXgxLW17cGFkZGluZy1ib3R0b206MTAwJX0uc3dhZ2dlci11aSAuYXNwZWN0LXJhdGlvLS1vYmplY3QtbXtib3R0b206MDtoZWlnaHQ6MTAwJTtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDt3aWR0aDoxMDAlO3otaW5kZXg6MTAwfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC5hc3BlY3QtcmF0aW8tbHtoZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZX0uc3dhZ2dlci11aSAuYXNwZWN0LXJhdGlvLS0xNng5LWx7cGFkZGluZy1ib3R0b206NTYuMjUlfS5zd2FnZ2VyLXVpIC5hc3BlY3QtcmF0aW8tLTl4MTYtbHtwYWRkaW5nLWJvdHRvbToxNzcuNzclfS5zd2FnZ2VyLXVpIC5hc3BlY3QtcmF0aW8tLTR4My1se3BhZGRpbmctYm90dG9tOjc1JX0uc3dhZ2dlci11aSAuYXNwZWN0LXJhdGlvLS0zeDQtbHtwYWRkaW5nLWJvdHRvbToxMzMuMzMlfS5zd2FnZ2VyLXVpIC5hc3BlY3QtcmF0aW8tLTZ4NC1se3BhZGRpbmctYm90dG9tOjY2LjYlfS5zd2FnZ2VyLXVpIC5hc3BlY3QtcmF0aW8tLTR4Ni1se3BhZGRpbmctYm90dG9tOjE1MCV9LnN3YWdnZXItdWkgLmFzcGVjdC1yYXRpby0tOHg1LWx7cGFkZGluZy1ib3R0b206NjIuNSV9LnN3YWdnZXItdWkgLmFzcGVjdC1yYXRpby0tNXg4LWx7cGFkZGluZy1ib3R0b206MTYwJX0uc3dhZ2dlci11aSAuYXNwZWN0LXJhdGlvLS03eDUtbHtwYWRkaW5nLWJvdHRvbTo3MS40MiV9LnN3YWdnZXItdWkgLmFzcGVjdC1yYXRpby0tNXg3LWx7cGFkZGluZy1ib3R0b206MTQwJX0uc3dhZ2dlci11aSAuYXNwZWN0LXJhdGlvLS0xeDEtbHtwYWRkaW5nLWJvdHRvbToxMDAlfS5zd2FnZ2VyLXVpIC5hc3BlY3QtcmF0aW8tLW9iamVjdC1se2JvdHRvbTowO2hlaWdodDoxMDAlO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowO3dpZHRoOjEwMCU7ei1pbmRleDoxMDB9fS5zd2FnZ2VyLXVpIGltZ3ttYXgtd2lkdGg6MTAwJX0uc3dhZ2dlci11aSAuY292ZXJ7YmFja2dyb3VuZC1zaXplOmNvdmVyIWltcG9ydGFudH0uc3dhZ2dlci11aSAuY29udGFpbntiYWNrZ3JvdW5kLXNpemU6Y29udGFpbiFpbXBvcnRhbnR9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKXsuc3dhZ2dlci11aSAuY292ZXItbnN7YmFja2dyb3VuZC1zaXplOmNvdmVyIWltcG9ydGFudH0uc3dhZ2dlci11aSAuY29udGFpbi1uc3tiYWNrZ3JvdW5kLXNpemU6Y29udGFpbiFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSlhbmQgKG1heC13aWR0aDo2MGVtKXsuc3dhZ2dlci11aSAuY292ZXItbXtiYWNrZ3JvdW5kLXNpemU6Y292ZXIhaW1wb3J0YW50fS5zd2FnZ2VyLXVpIC5jb250YWluLW17YmFja2dyb3VuZC1zaXplOmNvbnRhaW4haW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC5jb3Zlci1se2JhY2tncm91bmQtc2l6ZTpjb3ZlciFpbXBvcnRhbnR9LnN3YWdnZXItdWkgLmNvbnRhaW4tbHtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbiFpbXBvcnRhbnR9fS5zd2FnZ2VyLXVpIC5iZy1jZW50ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS5zd2FnZ2VyLXVpIC5iZy10b3B7YmFja2dyb3VuZC1wb3NpdGlvbjp0b3A7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS5zd2FnZ2VyLXVpIC5iZy1yaWdodHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS5zd2FnZ2VyLXVpIC5iZy1ib3R0b217YmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS5zd2FnZ2VyLXVpIC5iZy1sZWZ0e2JhY2tncm91bmQtcG9zaXRpb246MDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXR9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKXsuc3dhZ2dlci11aSAuYmctY2VudGVyLW5ze2JhY2tncm91bmQtcG9zaXRpb246NTAlO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0uc3dhZ2dlci11aSAuYmctdG9wLW5ze2JhY2tncm91bmQtcG9zaXRpb246dG9wO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0uc3dhZ2dlci11aSAuYmctcmlnaHQtbnN7YmFja2dyb3VuZC1wb3NpdGlvbjoxMDAlO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0uc3dhZ2dlci11aSAuYmctYm90dG9tLW5ze2JhY2tncm91bmQtcG9zaXRpb246Ym90dG9tO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0uc3dhZ2dlci11aSAuYmctbGVmdC1uc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjA7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pYW5kIChtYXgtd2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLmJnLWNlbnRlci1te2JhY2tncm91bmQtcG9zaXRpb246NTAlO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0uc3dhZ2dlci11aSAuYmctdG9wLW17YmFja2dyb3VuZC1wb3NpdGlvbjp0b3A7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS5zd2FnZ2VyLXVpIC5iZy1yaWdodC1te2JhY2tncm91bmQtcG9zaXRpb246MTAwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXR9LnN3YWdnZXItdWkgLmJnLWJvdHRvbS1te2JhY2tncm91bmQtcG9zaXRpb246Ym90dG9tO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0uc3dhZ2dlci11aSAuYmctbGVmdC1te2JhY2tncm91bmQtcG9zaXRpb246MDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLmJnLWNlbnRlci1se2JhY2tncm91bmQtcG9zaXRpb246NTAlO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0uc3dhZ2dlci11aSAuYmctdG9wLWx7YmFja2dyb3VuZC1wb3NpdGlvbjp0b3A7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS5zd2FnZ2VyLXVpIC5iZy1yaWdodC1se2JhY2tncm91bmQtcG9zaXRpb246MTAwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXR9LnN3YWdnZXItdWkgLmJnLWJvdHRvbS1se2JhY2tncm91bmQtcG9zaXRpb246Ym90dG9tO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0uc3dhZ2dlci11aSAuYmctbGVmdC1se2JhY2tncm91bmQtcG9zaXRpb246MDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXR9fS5zd2FnZ2VyLXVpIC5vdXRsaW5le291dGxpbmU6MXB4IHNvbGlkfS5zd2FnZ2VyLXVpIC5vdXRsaW5lLXRyYW5zcGFyZW50e291dGxpbmU6MXB4IHNvbGlkIHRyYW5zcGFyZW50fS5zd2FnZ2VyLXVpIC5vdXRsaW5lLTB7b3V0bGluZTowfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSl7LnN3YWdnZXItdWkgLm91dGxpbmUtbnN7b3V0bGluZToxcHggc29saWR9LnN3YWdnZXItdWkgLm91dGxpbmUtdHJhbnNwYXJlbnQtbnN7b3V0bGluZToxcHggc29saWQgdHJhbnNwYXJlbnR9LnN3YWdnZXItdWkgLm91dGxpbmUtMC1uc3tvdXRsaW5lOjB9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSlhbmQgKG1heC13aWR0aDo2MGVtKXsuc3dhZ2dlci11aSAub3V0bGluZS1te291dGxpbmU6MXB4IHNvbGlkfS5zd2FnZ2VyLXVpIC5vdXRsaW5lLXRyYW5zcGFyZW50LW17b3V0bGluZToxcHggc29saWQgdHJhbnNwYXJlbnR9LnN3YWdnZXItdWkgLm91dGxpbmUtMC1te291dGxpbmU6MH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2MGVtKXsuc3dhZ2dlci11aSAub3V0bGluZS1se291dGxpbmU6MXB4IHNvbGlkfS5zd2FnZ2VyLXVpIC5vdXRsaW5lLXRyYW5zcGFyZW50LWx7b3V0bGluZToxcHggc29saWQgdHJhbnNwYXJlbnR9LnN3YWdnZXItdWkgLm91dGxpbmUtMC1se291dGxpbmU6MH19LnN3YWdnZXItdWkgLmJhe2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MXB4fS5zd2FnZ2VyLXVpIC5idHtib3JkZXItdG9wLXN0eWxlOnNvbGlkO2JvcmRlci10b3Atd2lkdGg6MXB4fS5zd2FnZ2VyLXVpIC5icntib3JkZXItcmlnaHQtc3R5bGU6c29saWQ7Ym9yZGVyLXJpZ2h0LXdpZHRoOjFweH0uc3dhZ2dlci11aSAuYmJ7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tLXdpZHRoOjFweH0uc3dhZ2dlci11aSAuYmx7Ym9yZGVyLWxlZnQtc3R5bGU6c29saWQ7Ym9yZGVyLWxlZnQtd2lkdGg6MXB4fS5zd2FnZ2VyLXVpIC5ibntib3JkZXItc3R5bGU6bm9uZTtib3JkZXItd2lkdGg6MH1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pey5zd2FnZ2VyLXVpIC5iYS1uc3tib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjFweH0uc3dhZ2dlci11aSAuYnQtbnN7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLXdpZHRoOjFweH0uc3dhZ2dlci11aSAuYnItbnN7Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkO2JvcmRlci1yaWdodC13aWR0aDoxcHh9LnN3YWdnZXItdWkgLmJiLW5ze2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHh9LnN3YWdnZXItdWkgLmJsLW5ze2JvcmRlci1sZWZ0LXN0eWxlOnNvbGlkO2JvcmRlci1sZWZ0LXdpZHRoOjFweH0uc3dhZ2dlci11aSAuYm4tbnN7Ym9yZGVyLXN0eWxlOm5vbmU7Ym9yZGVyLXdpZHRoOjB9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSlhbmQgKG1heC13aWR0aDo2MGVtKXsuc3dhZ2dlci11aSAuYmEtbXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjFweH0uc3dhZ2dlci11aSAuYnQtbXtib3JkZXItdG9wLXN0eWxlOnNvbGlkO2JvcmRlci10b3Atd2lkdGg6MXB4fS5zd2FnZ2VyLXVpIC5ici1te2JvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtib3JkZXItcmlnaHQtd2lkdGg6MXB4fS5zd2FnZ2VyLXVpIC5iYi1te2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHh9LnN3YWdnZXItdWkgLmJsLW17Ym9yZGVyLWxlZnQtc3R5bGU6c29saWQ7Ym9yZGVyLWxlZnQtd2lkdGg6MXB4fS5zd2FnZ2VyLXVpIC5ibi1te2JvcmRlci1zdHlsZTpub25lO2JvcmRlci13aWR0aDowfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC5iYS1se2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MXB4fS5zd2FnZ2VyLXVpIC5idC1se2JvcmRlci10b3Atc3R5bGU6c29saWQ7Ym9yZGVyLXRvcC13aWR0aDoxcHh9LnN3YWdnZXItdWkgLmJyLWx7Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkO2JvcmRlci1yaWdodC13aWR0aDoxcHh9LnN3YWdnZXItdWkgLmJiLWx7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tLXdpZHRoOjFweH0uc3dhZ2dlci11aSAuYmwtbHtib3JkZXItbGVmdC1zdHlsZTpzb2xpZDtib3JkZXItbGVmdC13aWR0aDoxcHh9LnN3YWdnZXItdWkgLmJuLWx7Ym9yZGVyLXN0eWxlOm5vbmU7Ym9yZGVyLXdpZHRoOjB9fS5zd2FnZ2VyLXVpIC5iLS1ibGFja3tib3JkZXItY29sb3I6IzAwMH0uc3dhZ2dlci11aSAuYi0tbmVhci1ibGFja3tib3JkZXItY29sb3I6IzExMX0uc3dhZ2dlci11aSAuYi0tZGFyay1ncmF5e2JvcmRlci1jb2xvcjojMzMzfS5zd2FnZ2VyLXVpIC5iLS1taWQtZ3JheXtib3JkZXItY29sb3I6IzU1NX0uc3dhZ2dlci11aSAuYi0tZ3JheXtib3JkZXItY29sb3I6Izc3N30uc3dhZ2dlci11aSAuYi0tc2lsdmVye2JvcmRlci1jb2xvcjojOTk5fS5zd2FnZ2VyLXVpIC5iLS1saWdodC1zaWx2ZXJ7Ym9yZGVyLWNvbG9yOiNhYWF9LnN3YWdnZXItdWkgLmItLW1vb24tZ3JheXtib3JkZXItY29sb3I6I2NjY30uc3dhZ2dlci11aSAuYi0tbGlnaHQtZ3JheXtib3JkZXItY29sb3I6I2VlZX0uc3dhZ2dlci11aSAuYi0tbmVhci13aGl0ZXtib3JkZXItY29sb3I6I2Y0ZjRmNH0uc3dhZ2dlci11aSAuYi0td2hpdGV7Ym9yZGVyLWNvbG9yOiNmZmZ9LnN3YWdnZXItdWkgLmItLXdoaXRlLTkwe2JvcmRlci1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuOSl9LnN3YWdnZXItdWkgLmItLXdoaXRlLTgwe2JvcmRlci1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuOCl9LnN3YWdnZXItdWkgLmItLXdoaXRlLTcwe2JvcmRlci1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuNyl9LnN3YWdnZXItdWkgLmItLXdoaXRlLTYwe2JvcmRlci1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuNil9LnN3YWdnZXItdWkgLmItLXdoaXRlLTUwe2JvcmRlci1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuNSl9LnN3YWdnZXItdWkgLmItLXdoaXRlLTQwe2JvcmRlci1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuNCl9LnN3YWdnZXItdWkgLmItLXdoaXRlLTMwe2JvcmRlci1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuMyl9LnN3YWdnZXItdWkgLmItLXdoaXRlLTIwe2JvcmRlci1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuMil9LnN3YWdnZXItdWkgLmItLXdoaXRlLTEwe2JvcmRlci1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuMSl9LnN3YWdnZXItdWkgLmItLXdoaXRlLTA1e2JvcmRlci1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuMDUpfS5zd2FnZ2VyLXVpIC5iLS13aGl0ZS0wMjV7Ym9yZGVyLWNvbG9yOmhzbGEoMCwwJSwxMDAlLC4wMjUpfS5zd2FnZ2VyLXVpIC5iLS13aGl0ZS0wMTI1e2JvcmRlci1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuMDEzKX0uc3dhZ2dlci11aSAuYi0tYmxhY2stOTB7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjkpfS5zd2FnZ2VyLXVpIC5iLS1ibGFjay04MHtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuOCl9LnN3YWdnZXItdWkgLmItLWJsYWNrLTcwe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC43KX0uc3dhZ2dlci11aSAuYi0tYmxhY2stNjB7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjYpfS5zd2FnZ2VyLXVpIC5iLS1ibGFjay01MHtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNSl9LnN3YWdnZXItdWkgLmItLWJsYWNrLTQwe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC40KX0uc3dhZ2dlci11aSAuYi0tYmxhY2stMzB7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjMpfS5zd2FnZ2VyLXVpIC5iLS1ibGFjay0yMHtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMil9LnN3YWdnZXItdWkgLmItLWJsYWNrLTEwe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4xKX0uc3dhZ2dlci11aSAuYi0tYmxhY2stMDV7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjA1KX0uc3dhZ2dlci11aSAuYi0tYmxhY2stMDI1e2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4wMjUpfS5zd2FnZ2VyLXVpIC5iLS1ibGFjay0wMTI1e2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4wMTMpfS5zd2FnZ2VyLXVpIC5iLS1kYXJrLXJlZHtib3JkZXItY29sb3I6I2U3MDQwZn0uc3dhZ2dlci11aSAuYi0tcmVke2JvcmRlci1jb2xvcjojZmY0MTM2fS5zd2FnZ2VyLXVpIC5iLS1saWdodC1yZWR7Ym9yZGVyLWNvbG9yOiNmZjcyNWN9LnN3YWdnZXItdWkgLmItLW9yYW5nZXtib3JkZXItY29sb3I6I2ZmNjMwMH0uc3dhZ2dlci11aSAuYi0tZ29sZHtib3JkZXItY29sb3I6I2ZmYjcwMH0uc3dhZ2dlci11aSAuYi0teWVsbG93e2JvcmRlci1jb2xvcjpnb2xkfS5zd2FnZ2VyLXVpIC5iLS1saWdodC15ZWxsb3d7Ym9yZGVyLWNvbG9yOiNmYmYxYTl9LnN3YWdnZXItdWkgLmItLXB1cnBsZXtib3JkZXItY29sb3I6IzVlMmNhNX0uc3dhZ2dlci11aSAuYi0tbGlnaHQtcHVycGxle2JvcmRlci1jb2xvcjojYTQ2M2YyfS5zd2FnZ2VyLXVpIC5iLS1kYXJrLXBpbmt7Ym9yZGVyLWNvbG9yOiNkNTAwOGZ9LnN3YWdnZXItdWkgLmItLWhvdC1waW5re2JvcmRlci1jb2xvcjojZmY0MWI0fS5zd2FnZ2VyLXVpIC5iLS1waW5re2JvcmRlci1jb2xvcjojZmY4MGNjfS5zd2FnZ2VyLXVpIC5iLS1saWdodC1waW5re2JvcmRlci1jb2xvcjojZmZhM2Q3fS5zd2FnZ2VyLXVpIC5iLS1kYXJrLWdyZWVue2JvcmRlci1jb2xvcjojMTM3NzUyfS5zd2FnZ2VyLXVpIC5iLS1ncmVlbntib3JkZXItY29sb3I6IzE5YTk3NH0uc3dhZ2dlci11aSAuYi0tbGlnaHQtZ3JlZW57Ym9yZGVyLWNvbG9yOiM5ZWViY2Z9LnN3YWdnZXItdWkgLmItLW5hdnl7Ym9yZGVyLWNvbG9yOiMwMDFiNDR9LnN3YWdnZXItdWkgLmItLWRhcmstYmx1ZXtib3JkZXItY29sb3I6IzAwNDQ5ZX0uc3dhZ2dlci11aSAuYi0tYmx1ZXtib3JkZXItY29sb3I6IzM1N2VkZH0uc3dhZ2dlci11aSAuYi0tbGlnaHQtYmx1ZXtib3JkZXItY29sb3I6Izk2Y2NmZn0uc3dhZ2dlci11aSAuYi0tbGlnaHRlc3QtYmx1ZXtib3JkZXItY29sb3I6I2NkZWNmZn0uc3dhZ2dlci11aSAuYi0td2FzaGVkLWJsdWV7Ym9yZGVyLWNvbG9yOiNmNmZmZmV9LnN3YWdnZXItdWkgLmItLXdhc2hlZC1ncmVlbntib3JkZXItY29sb3I6I2U4ZmRmNX0uc3dhZ2dlci11aSAuYi0td2FzaGVkLXllbGxvd3tib3JkZXItY29sb3I6I2ZmZmNlYn0uc3dhZ2dlci11aSAuYi0td2FzaGVkLXJlZHtib3JkZXItY29sb3I6I2ZmZGZkZn0uc3dhZ2dlci11aSAuYi0tdHJhbnNwYXJlbnR7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5zd2FnZ2VyLXVpIC5iLS1pbmhlcml0e2JvcmRlci1jb2xvcjppbmhlcml0fS5zd2FnZ2VyLXVpIC5icjB7Ym9yZGVyLXJhZGl1czowfS5zd2FnZ2VyLXVpIC5icjF7Ym9yZGVyLXJhZGl1czouMTI1cmVtfS5zd2FnZ2VyLXVpIC5icjJ7Ym9yZGVyLXJhZGl1czouMjVyZW19LnN3YWdnZXItdWkgLmJyM3tib3JkZXItcmFkaXVzOi41cmVtfS5zd2FnZ2VyLXVpIC5icjR7Ym9yZGVyLXJhZGl1czoxcmVtfS5zd2FnZ2VyLXVpIC5ici0xMDB7Ym9yZGVyLXJhZGl1czoxMDAlfS5zd2FnZ2VyLXVpIC5ici1waWxse2JvcmRlci1yYWRpdXM6OTk5OXB4fS5zd2FnZ2VyLXVpIC5ici0tYm90dG9te2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5zd2FnZ2VyLXVpIC5ici0tdG9we2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5zd2FnZ2VyLXVpIC5ici0tcmlnaHR7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MH0uc3dhZ2dlci11aSAuYnItLWxlZnR7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSl7LnN3YWdnZXItdWkgLmJyMC1uc3tib3JkZXItcmFkaXVzOjB9LnN3YWdnZXItdWkgLmJyMS1uc3tib3JkZXItcmFkaXVzOi4xMjVyZW19LnN3YWdnZXItdWkgLmJyMi1uc3tib3JkZXItcmFkaXVzOi4yNXJlbX0uc3dhZ2dlci11aSAuYnIzLW5ze2JvcmRlci1yYWRpdXM6LjVyZW19LnN3YWdnZXItdWkgLmJyNC1uc3tib3JkZXItcmFkaXVzOjFyZW19LnN3YWdnZXItdWkgLmJyLTEwMC1uc3tib3JkZXItcmFkaXVzOjEwMCV9LnN3YWdnZXItdWkgLmJyLXBpbGwtbnN7Ym9yZGVyLXJhZGl1czo5OTk5cHh9LnN3YWdnZXItdWkgLmJyLS1ib3R0b20tbnN7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjB9LnN3YWdnZXItdWkgLmJyLS10b3AtbnN7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjB9LnN3YWdnZXItdWkgLmJyLS1yaWdodC1uc3tib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowfS5zd2FnZ2VyLXVpIC5ici0tbGVmdC1uc3tib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjB9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSlhbmQgKG1heC13aWR0aDo2MGVtKXsuc3dhZ2dlci11aSAuYnIwLW17Ym9yZGVyLXJhZGl1czowfS5zd2FnZ2VyLXVpIC5icjEtbXtib3JkZXItcmFkaXVzOi4xMjVyZW19LnN3YWdnZXItdWkgLmJyMi1te2JvcmRlci1yYWRpdXM6LjI1cmVtfS5zd2FnZ2VyLXVpIC5icjMtbXtib3JkZXItcmFkaXVzOi41cmVtfS5zd2FnZ2VyLXVpIC5icjQtbXtib3JkZXItcmFkaXVzOjFyZW19LnN3YWdnZXItdWkgLmJyLTEwMC1te2JvcmRlci1yYWRpdXM6MTAwJX0uc3dhZ2dlci11aSAuYnItcGlsbC1te2JvcmRlci1yYWRpdXM6OTk5OXB4fS5zd2FnZ2VyLXVpIC5ici0tYm90dG9tLW17Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjB9LnN3YWdnZXItdWkgLmJyLS10b3AtbXtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MH0uc3dhZ2dlci11aSAuYnItLXJpZ2h0LW17Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MH0uc3dhZ2dlci11aSAuYnItLWxlZnQtbXtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjB9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLmJyMC1se2JvcmRlci1yYWRpdXM6MH0uc3dhZ2dlci11aSAuYnIxLWx7Ym9yZGVyLXJhZGl1czouMTI1cmVtfS5zd2FnZ2VyLXVpIC5icjItbHtib3JkZXItcmFkaXVzOi4yNXJlbX0uc3dhZ2dlci11aSAuYnIzLWx7Ym9yZGVyLXJhZGl1czouNXJlbX0uc3dhZ2dlci11aSAuYnI0LWx7Ym9yZGVyLXJhZGl1czoxcmVtfS5zd2FnZ2VyLXVpIC5ici0xMDAtbHtib3JkZXItcmFkaXVzOjEwMCV9LnN3YWdnZXItdWkgLmJyLXBpbGwtbHtib3JkZXItcmFkaXVzOjk5OTlweH0uc3dhZ2dlci11aSAuYnItLWJvdHRvbS1se2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5zd2FnZ2VyLXVpIC5ici0tdG9wLWx7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjB9LnN3YWdnZXItdWkgLmJyLS1yaWdodC1se2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjB9LnN3YWdnZXItdWkgLmJyLS1sZWZ0LWx7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfX0uc3dhZ2dlci11aSAuYi0tZG90dGVke2JvcmRlci1zdHlsZTpkb3R0ZWR9LnN3YWdnZXItdWkgLmItLWRhc2hlZHtib3JkZXItc3R5bGU6ZGFzaGVkfS5zd2FnZ2VyLXVpIC5iLS1zb2xpZHtib3JkZXItc3R5bGU6c29saWR9LnN3YWdnZXItdWkgLmItLW5vbmV7Ym9yZGVyLXN0eWxlOm5vbmV9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKXsuc3dhZ2dlci11aSAuYi0tZG90dGVkLW5ze2JvcmRlci1zdHlsZTpkb3R0ZWR9LnN3YWdnZXItdWkgLmItLWRhc2hlZC1uc3tib3JkZXItc3R5bGU6ZGFzaGVkfS5zd2FnZ2VyLXVpIC5iLS1zb2xpZC1uc3tib3JkZXItc3R5bGU6c29saWR9LnN3YWdnZXItdWkgLmItLW5vbmUtbnN7Ym9yZGVyLXN0eWxlOm5vbmV9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSlhbmQgKG1heC13aWR0aDo2MGVtKXsuc3dhZ2dlci11aSAuYi0tZG90dGVkLW17Ym9yZGVyLXN0eWxlOmRvdHRlZH0uc3dhZ2dlci11aSAuYi0tZGFzaGVkLW17Ym9yZGVyLXN0eWxlOmRhc2hlZH0uc3dhZ2dlci11aSAuYi0tc29saWQtbXtib3JkZXItc3R5bGU6c29saWR9LnN3YWdnZXItdWkgLmItLW5vbmUtbXtib3JkZXItc3R5bGU6bm9uZX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2MGVtKXsuc3dhZ2dlci11aSAuYi0tZG90dGVkLWx7Ym9yZGVyLXN0eWxlOmRvdHRlZH0uc3dhZ2dlci11aSAuYi0tZGFzaGVkLWx7Ym9yZGVyLXN0eWxlOmRhc2hlZH0uc3dhZ2dlci11aSAuYi0tc29saWQtbHtib3JkZXItc3R5bGU6c29saWR9LnN3YWdnZXItdWkgLmItLW5vbmUtbHtib3JkZXItc3R5bGU6bm9uZX19LnN3YWdnZXItdWkgLmJ3MHtib3JkZXItd2lkdGg6MH0uc3dhZ2dlci11aSAuYncxe2JvcmRlci13aWR0aDouMTI1cmVtfS5zd2FnZ2VyLXVpIC5idzJ7Ym9yZGVyLXdpZHRoOi4yNXJlbX0uc3dhZ2dlci11aSAuYncze2JvcmRlci13aWR0aDouNXJlbX0uc3dhZ2dlci11aSAuYnc0e2JvcmRlci13aWR0aDoxcmVtfS5zd2FnZ2VyLXVpIC5idzV7Ym9yZGVyLXdpZHRoOjJyZW19LnN3YWdnZXItdWkgLmJ0LTB7Ym9yZGVyLXRvcC13aWR0aDowfS5zd2FnZ2VyLXVpIC5ici0we2JvcmRlci1yaWdodC13aWR0aDowfS5zd2FnZ2VyLXVpIC5iYi0we2JvcmRlci1ib3R0b20td2lkdGg6MH0uc3dhZ2dlci11aSAuYmwtMHtib3JkZXItbGVmdC13aWR0aDowfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSl7LnN3YWdnZXItdWkgLmJ3MC1uc3tib3JkZXItd2lkdGg6MH0uc3dhZ2dlci11aSAuYncxLW5ze2JvcmRlci13aWR0aDouMTI1cmVtfS5zd2FnZ2VyLXVpIC5idzItbnN7Ym9yZGVyLXdpZHRoOi4yNXJlbX0uc3dhZ2dlci11aSAuYnczLW5ze2JvcmRlci13aWR0aDouNXJlbX0uc3dhZ2dlci11aSAuYnc0LW5ze2JvcmRlci13aWR0aDoxcmVtfS5zd2FnZ2VyLXVpIC5idzUtbnN7Ym9yZGVyLXdpZHRoOjJyZW19LnN3YWdnZXItdWkgLmJ0LTAtbnN7Ym9yZGVyLXRvcC13aWR0aDowfS5zd2FnZ2VyLXVpIC5ici0wLW5ze2JvcmRlci1yaWdodC13aWR0aDowfS5zd2FnZ2VyLXVpIC5iYi0wLW5ze2JvcmRlci1ib3R0b20td2lkdGg6MH0uc3dhZ2dlci11aSAuYmwtMC1uc3tib3JkZXItbGVmdC13aWR0aDowfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pYW5kIChtYXgtd2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLmJ3MC1te2JvcmRlci13aWR0aDowfS5zd2FnZ2VyLXVpIC5idzEtbXtib3JkZXItd2lkdGg6LjEyNXJlbX0uc3dhZ2dlci11aSAuYncyLW17Ym9yZGVyLXdpZHRoOi4yNXJlbX0uc3dhZ2dlci11aSAuYnczLW17Ym9yZGVyLXdpZHRoOi41cmVtfS5zd2FnZ2VyLXVpIC5idzQtbXtib3JkZXItd2lkdGg6MXJlbX0uc3dhZ2dlci11aSAuYnc1LW17Ym9yZGVyLXdpZHRoOjJyZW19LnN3YWdnZXItdWkgLmJ0LTAtbXtib3JkZXItdG9wLXdpZHRoOjB9LnN3YWdnZXItdWkgLmJyLTAtbXtib3JkZXItcmlnaHQtd2lkdGg6MH0uc3dhZ2dlci11aSAuYmItMC1te2JvcmRlci1ib3R0b20td2lkdGg6MH0uc3dhZ2dlci11aSAuYmwtMC1te2JvcmRlci1sZWZ0LXdpZHRoOjB9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLmJ3MC1se2JvcmRlci13aWR0aDowfS5zd2FnZ2VyLXVpIC5idzEtbHtib3JkZXItd2lkdGg6LjEyNXJlbX0uc3dhZ2dlci11aSAuYncyLWx7Ym9yZGVyLXdpZHRoOi4yNXJlbX0uc3dhZ2dlci11aSAuYnczLWx7Ym9yZGVyLXdpZHRoOi41cmVtfS5zd2FnZ2VyLXVpIC5idzQtbHtib3JkZXItd2lkdGg6MXJlbX0uc3dhZ2dlci11aSAuYnc1LWx7Ym9yZGVyLXdpZHRoOjJyZW19LnN3YWdnZXItdWkgLmJ0LTAtbHtib3JkZXItdG9wLXdpZHRoOjB9LnN3YWdnZXItdWkgLmJyLTAtbHtib3JkZXItcmlnaHQtd2lkdGg6MH0uc3dhZ2dlci11aSAuYmItMC1se2JvcmRlci1ib3R0b20td2lkdGg6MH0uc3dhZ2dlci11aSAuYmwtMC1se2JvcmRlci1sZWZ0LXdpZHRoOjB9fS5zd2FnZ2VyLXVpIC5zaGFkb3ctMXtib3gtc2hhZG93OjAgMCA0cHggMnB4IHJnYmEoMCwwLDAsLjIpfS5zd2FnZ2VyLXVpIC5zaGFkb3ctMntib3gtc2hhZG93OjAgMCA4cHggMnB4IHJnYmEoMCwwLDAsLjIpfS5zd2FnZ2VyLXVpIC5zaGFkb3ctM3tib3gtc2hhZG93OjJweCAycHggNHB4IDJweCByZ2JhKDAsMCwwLC4yKX0uc3dhZ2dlci11aSAuc2hhZG93LTR7Ym94LXNoYWRvdzoycHggMnB4IDhweCAwIHJnYmEoMCwwLDAsLjIpfS5zd2FnZ2VyLXVpIC5zaGFkb3ctNXtib3gtc2hhZG93OjRweCA0cHggOHB4IDAgcmdiYSgwLDAsMCwuMil9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKXsuc3dhZ2dlci11aSAuc2hhZG93LTEtbnN7Ym94LXNoYWRvdzowIDAgNHB4IDJweCByZ2JhKDAsMCwwLC4yKX0uc3dhZ2dlci11aSAuc2hhZG93LTItbnN7Ym94LXNoYWRvdzowIDAgOHB4IDJweCByZ2JhKDAsMCwwLC4yKX0uc3dhZ2dlci11aSAuc2hhZG93LTMtbnN7Ym94LXNoYWRvdzoycHggMnB4IDRweCAycHggcmdiYSgwLDAsMCwuMil9LnN3YWdnZXItdWkgLnNoYWRvdy00LW5ze2JveC1zaGFkb3c6MnB4IDJweCA4cHggMCByZ2JhKDAsMCwwLC4yKX0uc3dhZ2dlci11aSAuc2hhZG93LTUtbnN7Ym94LXNoYWRvdzo0cHggNHB4IDhweCAwIHJnYmEoMCwwLDAsLjIpfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pYW5kIChtYXgtd2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLnNoYWRvdy0xLW17Ym94LXNoYWRvdzowIDAgNHB4IDJweCByZ2JhKDAsMCwwLC4yKX0uc3dhZ2dlci11aSAuc2hhZG93LTItbXtib3gtc2hhZG93OjAgMCA4cHggMnB4IHJnYmEoMCwwLDAsLjIpfS5zd2FnZ2VyLXVpIC5zaGFkb3ctMy1te2JveC1zaGFkb3c6MnB4IDJweCA0cHggMnB4IHJnYmEoMCwwLDAsLjIpfS5zd2FnZ2VyLXVpIC5zaGFkb3ctNC1te2JveC1zaGFkb3c6MnB4IDJweCA4cHggMCByZ2JhKDAsMCwwLC4yKX0uc3dhZ2dlci11aSAuc2hhZG93LTUtbXtib3gtc2hhZG93OjRweCA0cHggOHB4IDAgcmdiYSgwLDAsMCwuMil9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLnNoYWRvdy0xLWx7Ym94LXNoYWRvdzowIDAgNHB4IDJweCByZ2JhKDAsMCwwLC4yKX0uc3dhZ2dlci11aSAuc2hhZG93LTItbHtib3gtc2hhZG93OjAgMCA4cHggMnB4IHJnYmEoMCwwLDAsLjIpfS5zd2FnZ2VyLXVpIC5zaGFkb3ctMy1se2JveC1zaGFkb3c6MnB4IDJweCA0cHggMnB4IHJnYmEoMCwwLDAsLjIpfS5zd2FnZ2VyLXVpIC5zaGFkb3ctNC1se2JveC1zaGFkb3c6MnB4IDJweCA4cHggMCByZ2JhKDAsMCwwLC4yKX0uc3dhZ2dlci11aSAuc2hhZG93LTUtbHtib3gtc2hhZG93OjRweCA0cHggOHB4IDAgcmdiYSgwLDAsMCwuMil9fS5zd2FnZ2VyLXVpIC5wcmV7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuO292ZXJmbG93OnNjcm9sbH0uc3dhZ2dlci11aSAudG9wLTB7dG9wOjB9LnN3YWdnZXItdWkgLnJpZ2h0LTB7cmlnaHQ6MH0uc3dhZ2dlci11aSAuYm90dG9tLTB7Ym90dG9tOjB9LnN3YWdnZXItdWkgLmxlZnQtMHtsZWZ0OjB9LnN3YWdnZXItdWkgLnRvcC0xe3RvcDoxcmVtfS5zd2FnZ2VyLXVpIC5yaWdodC0xe3JpZ2h0OjFyZW19LnN3YWdnZXItdWkgLmJvdHRvbS0xe2JvdHRvbToxcmVtfS5zd2FnZ2VyLXVpIC5sZWZ0LTF7bGVmdDoxcmVtfS5zd2FnZ2VyLXVpIC50b3AtMnt0b3A6MnJlbX0uc3dhZ2dlci11aSAucmlnaHQtMntyaWdodDoycmVtfS5zd2FnZ2VyLXVpIC5ib3R0b20tMntib3R0b206MnJlbX0uc3dhZ2dlci11aSAubGVmdC0ye2xlZnQ6MnJlbX0uc3dhZ2dlci11aSAudG9wLS0xe3RvcDotMXJlbX0uc3dhZ2dlci11aSAucmlnaHQtLTF7cmlnaHQ6LTFyZW19LnN3YWdnZXItdWkgLmJvdHRvbS0tMXtib3R0b206LTFyZW19LnN3YWdnZXItdWkgLmxlZnQtLTF7bGVmdDotMXJlbX0uc3dhZ2dlci11aSAudG9wLS0ye3RvcDotMnJlbX0uc3dhZ2dlci11aSAucmlnaHQtLTJ7cmlnaHQ6LTJyZW19LnN3YWdnZXItdWkgLmJvdHRvbS0tMntib3R0b206LTJyZW19LnN3YWdnZXItdWkgLmxlZnQtLTJ7bGVmdDotMnJlbX0uc3dhZ2dlci11aSAuYWJzb2x1dGUtLWZpbGx7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7dG9wOjB9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKXsuc3dhZ2dlci11aSAudG9wLTAtbnN7dG9wOjB9LnN3YWdnZXItdWkgLmxlZnQtMC1uc3tsZWZ0OjB9LnN3YWdnZXItdWkgLnJpZ2h0LTAtbnN7cmlnaHQ6MH0uc3dhZ2dlci11aSAuYm90dG9tLTAtbnN7Ym90dG9tOjB9LnN3YWdnZXItdWkgLnRvcC0xLW5ze3RvcDoxcmVtfS5zd2FnZ2VyLXVpIC5sZWZ0LTEtbnN7bGVmdDoxcmVtfS5zd2FnZ2VyLXVpIC5yaWdodC0xLW5ze3JpZ2h0OjFyZW19LnN3YWdnZXItdWkgLmJvdHRvbS0xLW5ze2JvdHRvbToxcmVtfS5zd2FnZ2VyLXVpIC50b3AtMi1uc3t0b3A6MnJlbX0uc3dhZ2dlci11aSAubGVmdC0yLW5ze2xlZnQ6MnJlbX0uc3dhZ2dlci11aSAucmlnaHQtMi1uc3tyaWdodDoycmVtfS5zd2FnZ2VyLXVpIC5ib3R0b20tMi1uc3tib3R0b206MnJlbX0uc3dhZ2dlci11aSAudG9wLS0xLW5ze3RvcDotMXJlbX0uc3dhZ2dlci11aSAucmlnaHQtLTEtbnN7cmlnaHQ6LTFyZW19LnN3YWdnZXItdWkgLmJvdHRvbS0tMS1uc3tib3R0b206LTFyZW19LnN3YWdnZXItdWkgLmxlZnQtLTEtbnN7bGVmdDotMXJlbX0uc3dhZ2dlci11aSAudG9wLS0yLW5ze3RvcDotMnJlbX0uc3dhZ2dlci11aSAucmlnaHQtLTItbnN7cmlnaHQ6LTJyZW19LnN3YWdnZXItdWkgLmJvdHRvbS0tMi1uc3tib3R0b206LTJyZW19LnN3YWdnZXItdWkgLmxlZnQtLTItbnN7bGVmdDotMnJlbX0uc3dhZ2dlci11aSAuYWJzb2x1dGUtLWZpbGwtbnN7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7dG9wOjB9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSlhbmQgKG1heC13aWR0aDo2MGVtKXsuc3dhZ2dlci11aSAudG9wLTAtbXt0b3A6MH0uc3dhZ2dlci11aSAubGVmdC0wLW17bGVmdDowfS5zd2FnZ2VyLXVpIC5yaWdodC0wLW17cmlnaHQ6MH0uc3dhZ2dlci11aSAuYm90dG9tLTAtbXtib3R0b206MH0uc3dhZ2dlci11aSAudG9wLTEtbXt0b3A6MXJlbX0uc3dhZ2dlci11aSAubGVmdC0xLW17bGVmdDoxcmVtfS5zd2FnZ2VyLXVpIC5yaWdodC0xLW17cmlnaHQ6MXJlbX0uc3dhZ2dlci11aSAuYm90dG9tLTEtbXtib3R0b206MXJlbX0uc3dhZ2dlci11aSAudG9wLTItbXt0b3A6MnJlbX0uc3dhZ2dlci11aSAubGVmdC0yLW17bGVmdDoycmVtfS5zd2FnZ2VyLXVpIC5yaWdodC0yLW17cmlnaHQ6MnJlbX0uc3dhZ2dlci11aSAuYm90dG9tLTItbXtib3R0b206MnJlbX0uc3dhZ2dlci11aSAudG9wLS0xLW17dG9wOi0xcmVtfS5zd2FnZ2VyLXVpIC5yaWdodC0tMS1te3JpZ2h0Oi0xcmVtfS5zd2FnZ2VyLXVpIC5ib3R0b20tLTEtbXtib3R0b206LTFyZW19LnN3YWdnZXItdWkgLmxlZnQtLTEtbXtsZWZ0Oi0xcmVtfS5zd2FnZ2VyLXVpIC50b3AtLTItbXt0b3A6LTJyZW19LnN3YWdnZXItdWkgLnJpZ2h0LS0yLW17cmlnaHQ6LTJyZW19LnN3YWdnZXItdWkgLmJvdHRvbS0tMi1te2JvdHRvbTotMnJlbX0uc3dhZ2dlci11aSAubGVmdC0tMi1te2xlZnQ6LTJyZW19LnN3YWdnZXItdWkgLmFic29sdXRlLS1maWxsLW17Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7dG9wOjB9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLnRvcC0wLWx7dG9wOjB9LnN3YWdnZXItdWkgLmxlZnQtMC1se2xlZnQ6MH0uc3dhZ2dlci11aSAucmlnaHQtMC1se3JpZ2h0OjB9LnN3YWdnZXItdWkgLmJvdHRvbS0wLWx7Ym90dG9tOjB9LnN3YWdnZXItdWkgLnRvcC0xLWx7dG9wOjFyZW19LnN3YWdnZXItdWkgLmxlZnQtMS1se2xlZnQ6MXJlbX0uc3dhZ2dlci11aSAucmlnaHQtMS1se3JpZ2h0OjFyZW19LnN3YWdnZXItdWkgLmJvdHRvbS0xLWx7Ym90dG9tOjFyZW19LnN3YWdnZXItdWkgLnRvcC0yLWx7dG9wOjJyZW19LnN3YWdnZXItdWkgLmxlZnQtMi1se2xlZnQ6MnJlbX0uc3dhZ2dlci11aSAucmlnaHQtMi1se3JpZ2h0OjJyZW19LnN3YWdnZXItdWkgLmJvdHRvbS0yLWx7Ym90dG9tOjJyZW19LnN3YWdnZXItdWkgLnRvcC0tMS1se3RvcDotMXJlbX0uc3dhZ2dlci11aSAucmlnaHQtLTEtbHtyaWdodDotMXJlbX0uc3dhZ2dlci11aSAuYm90dG9tLS0xLWx7Ym90dG9tOi0xcmVtfS5zd2FnZ2VyLXVpIC5sZWZ0LS0xLWx7bGVmdDotMXJlbX0uc3dhZ2dlci11aSAudG9wLS0yLWx7dG9wOi0ycmVtfS5zd2FnZ2VyLXVpIC5yaWdodC0tMi1se3JpZ2h0Oi0ycmVtfS5zd2FnZ2VyLXVpIC5ib3R0b20tLTItbHtib3R0b206LTJyZW19LnN3YWdnZXItdWkgLmxlZnQtLTItbHtsZWZ0Oi0ycmVtfS5zd2FnZ2VyLXVpIC5hYnNvbHV0ZS0tZmlsbC1se2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3RvcDowfX0uc3dhZ2dlci11aSAuY2Y6YWZ0ZXIsLnN3YWdnZXItdWkgLmNmOmJlZm9yZXtjb250ZW50OiIgIjtkaXNwbGF5OnRhYmxlfS5zd2FnZ2VyLXVpIC5jZjphZnRlcntjbGVhcjpib3RofS5zd2FnZ2VyLXVpIC5jZnt6b29tOjF9LnN3YWdnZXItdWkgLmNse2NsZWFyOmxlZnR9LnN3YWdnZXItdWkgLmNye2NsZWFyOnJpZ2h0fS5zd2FnZ2VyLXVpIC5jYntjbGVhcjpib3RofS5zd2FnZ2VyLXVpIC5jbntjbGVhcjpub25lfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSl7LnN3YWdnZXItdWkgLmNsLW5ze2NsZWFyOmxlZnR9LnN3YWdnZXItdWkgLmNyLW5ze2NsZWFyOnJpZ2h0fS5zd2FnZ2VyLXVpIC5jYi1uc3tjbGVhcjpib3RofS5zd2FnZ2VyLXVpIC5jbi1uc3tjbGVhcjpub25lfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pYW5kIChtYXgtd2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLmNsLW17Y2xlYXI6bGVmdH0uc3dhZ2dlci11aSAuY3ItbXtjbGVhcjpyaWdodH0uc3dhZ2dlci11aSAuY2ItbXtjbGVhcjpib3RofS5zd2FnZ2VyLXVpIC5jbi1te2NsZWFyOm5vbmV9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLmNsLWx7Y2xlYXI6bGVmdH0uc3dhZ2dlci11aSAuY3ItbHtjbGVhcjpyaWdodH0uc3dhZ2dlci11aSAuY2ItbHtjbGVhcjpib3RofS5zd2FnZ2VyLXVpIC5jbi1se2NsZWFyOm5vbmV9fS5zd2FnZ2VyLXVpIC5mbGV4e2Rpc3BsYXk6ZmxleH0uc3dhZ2dlci11aSAuaW5saW5lLWZsZXh7ZGlzcGxheTppbmxpbmUtZmxleH0uc3dhZ2dlci11aSAuZmxleC1hdXRve2ZsZXg6MSAxIGF1dG87bWluLWhlaWdodDowO21pbi13aWR0aDowfS5zd2FnZ2VyLXVpIC5mbGV4LW5vbmV7ZmxleDpub25lfS5zd2FnZ2VyLXVpIC5mbGV4LWNvbHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnN3YWdnZXItdWkgLmZsZXgtcm93e2ZsZXgtZGlyZWN0aW9uOnJvd30uc3dhZ2dlci11aSAuZmxleC13cmFwe2ZsZXgtd3JhcDp3cmFwfS5zd2FnZ2VyLXVpIC5mbGV4LW5vd3JhcHtmbGV4LXdyYXA6bm93cmFwfS5zd2FnZ2VyLXVpIC5mbGV4LXdyYXAtcmV2ZXJzZXtmbGV4LXdyYXA6d3JhcC1yZXZlcnNlfS5zd2FnZ2VyLXVpIC5mbGV4LWNvbHVtbi1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlfS5zd2FnZ2VyLXVpIC5mbGV4LXJvdy1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlfS5zd2FnZ2VyLXVpIC5pdGVtcy1zdGFydHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5zd2FnZ2VyLXVpIC5pdGVtcy1lbmR7YWxpZ24taXRlbXM6ZmxleC1lbmR9LnN3YWdnZXItdWkgLml0ZW1zLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXJ9LnN3YWdnZXItdWkgLml0ZW1zLWJhc2VsaW5le2FsaWduLWl0ZW1zOmJhc2VsaW5lfS5zd2FnZ2VyLXVpIC5pdGVtcy1zdHJldGNoe2FsaWduLWl0ZW1zOnN0cmV0Y2h9LnN3YWdnZXItdWkgLnNlbGYtc3RhcnR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fS5zd2FnZ2VyLXVpIC5zZWxmLWVuZHthbGlnbi1zZWxmOmZsZXgtZW5kfS5zd2FnZ2VyLXVpIC5zZWxmLWNlbnRlcnthbGlnbi1zZWxmOmNlbnRlcn0uc3dhZ2dlci11aSAuc2VsZi1iYXNlbGluZXthbGlnbi1zZWxmOmJhc2VsaW5lfS5zd2FnZ2VyLXVpIC5zZWxmLXN0cmV0Y2h7YWxpZ24tc2VsZjpzdHJldGNofS5zd2FnZ2VyLXVpIC5qdXN0aWZ5LXN0YXJ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5zd2FnZ2VyLXVpIC5qdXN0aWZ5LWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LnN3YWdnZXItdWkgLmp1c3RpZnktY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnN3YWdnZXItdWkgLmp1c3RpZnktYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uc3dhZ2dlci11aSAuanVzdGlmeS1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0uc3dhZ2dlci11aSAuY29udGVudC1zdGFydHthbGlnbi1jb250ZW50OmZsZXgtc3RhcnR9LnN3YWdnZXItdWkgLmNvbnRlbnQtZW5ke2FsaWduLWNvbnRlbnQ6ZmxleC1lbmR9LnN3YWdnZXItdWkgLmNvbnRlbnQtY2VudGVye2FsaWduLWNvbnRlbnQ6Y2VudGVyfS5zd2FnZ2VyLXVpIC5jb250ZW50LWJldHdlZW57YWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVufS5zd2FnZ2VyLXVpIC5jb250ZW50LWFyb3VuZHthbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZH0uc3dhZ2dlci11aSAuY29udGVudC1zdHJldGNoe2FsaWduLWNvbnRlbnQ6c3RyZXRjaH0uc3dhZ2dlci11aSAub3JkZXItMHtvcmRlcjowfS5zd2FnZ2VyLXVpIC5vcmRlci0xe29yZGVyOjF9LnN3YWdnZXItdWkgLm9yZGVyLTJ7b3JkZXI6Mn0uc3dhZ2dlci11aSAub3JkZXItM3tvcmRlcjozfS5zd2FnZ2VyLXVpIC5vcmRlci00e29yZGVyOjR9LnN3YWdnZXItdWkgLm9yZGVyLTV7b3JkZXI6NX0uc3dhZ2dlci11aSAub3JkZXItNntvcmRlcjo2fS5zd2FnZ2VyLXVpIC5vcmRlci03e29yZGVyOjd9LnN3YWdnZXItdWkgLm9yZGVyLTh7b3JkZXI6OH0uc3dhZ2dlci11aSAub3JkZXItbGFzdHtvcmRlcjo5OTk5OX0uc3dhZ2dlci11aSAuZmxleC1ncm93LTB7ZmxleC1ncm93OjB9LnN3YWdnZXItdWkgLmZsZXgtZ3Jvdy0xe2ZsZXgtZ3JvdzoxfS5zd2FnZ2VyLXVpIC5mbGV4LXNocmluay0we2ZsZXgtc2hyaW5rOjB9LnN3YWdnZXItdWkgLmZsZXgtc2hyaW5rLTF7ZmxleC1zaHJpbms6MX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pey5zd2FnZ2VyLXVpIC5mbGV4LW5ze2Rpc3BsYXk6ZmxleH0uc3dhZ2dlci11aSAuaW5saW5lLWZsZXgtbnN7ZGlzcGxheTppbmxpbmUtZmxleH0uc3dhZ2dlci11aSAuZmxleC1hdXRvLW5ze2ZsZXg6MSAxIGF1dG87bWluLWhlaWdodDowO21pbi13aWR0aDowfS5zd2FnZ2VyLXVpIC5mbGV4LW5vbmUtbnN7ZmxleDpub25lfS5zd2FnZ2VyLXVpIC5mbGV4LWNvbHVtbi1uc3tmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnN3YWdnZXItdWkgLmZsZXgtcm93LW5ze2ZsZXgtZGlyZWN0aW9uOnJvd30uc3dhZ2dlci11aSAuZmxleC13cmFwLW5ze2ZsZXgtd3JhcDp3cmFwfS5zd2FnZ2VyLXVpIC5mbGV4LW5vd3JhcC1uc3tmbGV4LXdyYXA6bm93cmFwfS5zd2FnZ2VyLXVpIC5mbGV4LXdyYXAtcmV2ZXJzZS1uc3tmbGV4LXdyYXA6d3JhcC1yZXZlcnNlfS5zd2FnZ2VyLXVpIC5mbGV4LWNvbHVtbi1yZXZlcnNlLW5ze2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlfS5zd2FnZ2VyLXVpIC5mbGV4LXJvdy1yZXZlcnNlLW5ze2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlfS5zd2FnZ2VyLXVpIC5pdGVtcy1zdGFydC1uc3thbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5zd2FnZ2VyLXVpIC5pdGVtcy1lbmQtbnN7YWxpZ24taXRlbXM6ZmxleC1lbmR9LnN3YWdnZXItdWkgLml0ZW1zLWNlbnRlci1uc3thbGlnbi1pdGVtczpjZW50ZXJ9LnN3YWdnZXItdWkgLml0ZW1zLWJhc2VsaW5lLW5ze2FsaWduLWl0ZW1zOmJhc2VsaW5lfS5zd2FnZ2VyLXVpIC5pdGVtcy1zdHJldGNoLW5ze2FsaWduLWl0ZW1zOnN0cmV0Y2h9LnN3YWdnZXItdWkgLnNlbGYtc3RhcnQtbnN7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fS5zd2FnZ2VyLXVpIC5zZWxmLWVuZC1uc3thbGlnbi1zZWxmOmZsZXgtZW5kfS5zd2FnZ2VyLXVpIC5zZWxmLWNlbnRlci1uc3thbGlnbi1zZWxmOmNlbnRlcn0uc3dhZ2dlci11aSAuc2VsZi1iYXNlbGluZS1uc3thbGlnbi1zZWxmOmJhc2VsaW5lfS5zd2FnZ2VyLXVpIC5zZWxmLXN0cmV0Y2gtbnN7YWxpZ24tc2VsZjpzdHJldGNofS5zd2FnZ2VyLXVpIC5qdXN0aWZ5LXN0YXJ0LW5ze2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5zd2FnZ2VyLXVpIC5qdXN0aWZ5LWVuZC1uc3tqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LnN3YWdnZXItdWkgLmp1c3RpZnktY2VudGVyLW5ze2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnN3YWdnZXItdWkgLmp1c3RpZnktYmV0d2Vlbi1uc3tqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uc3dhZ2dlci11aSAuanVzdGlmeS1hcm91bmQtbnN7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0uc3dhZ2dlci11aSAuY29udGVudC1zdGFydC1uc3thbGlnbi1jb250ZW50OmZsZXgtc3RhcnR9LnN3YWdnZXItdWkgLmNvbnRlbnQtZW5kLW5ze2FsaWduLWNvbnRlbnQ6ZmxleC1lbmR9LnN3YWdnZXItdWkgLmNvbnRlbnQtY2VudGVyLW5ze2FsaWduLWNvbnRlbnQ6Y2VudGVyfS5zd2FnZ2VyLXVpIC5jb250ZW50LWJldHdlZW4tbnN7YWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVufS5zd2FnZ2VyLXVpIC5jb250ZW50LWFyb3VuZC1uc3thbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZH0uc3dhZ2dlci11aSAuY29udGVudC1zdHJldGNoLW5ze2FsaWduLWNvbnRlbnQ6c3RyZXRjaH0uc3dhZ2dlci11aSAub3JkZXItMC1uc3tvcmRlcjowfS5zd2FnZ2VyLXVpIC5vcmRlci0xLW5ze29yZGVyOjF9LnN3YWdnZXItdWkgLm9yZGVyLTItbnN7b3JkZXI6Mn0uc3dhZ2dlci11aSAub3JkZXItMy1uc3tvcmRlcjozfS5zd2FnZ2VyLXVpIC5vcmRlci00LW5ze29yZGVyOjR9LnN3YWdnZXItdWkgLm9yZGVyLTUtbnN7b3JkZXI6NX0uc3dhZ2dlci11aSAub3JkZXItNi1uc3tvcmRlcjo2fS5zd2FnZ2VyLXVpIC5vcmRlci03LW5ze29yZGVyOjd9LnN3YWdnZXItdWkgLm9yZGVyLTgtbnN7b3JkZXI6OH0uc3dhZ2dlci11aSAub3JkZXItbGFzdC1uc3tvcmRlcjo5OTk5OX0uc3dhZ2dlci11aSAuZmxleC1ncm93LTAtbnN7ZmxleC1ncm93OjB9LnN3YWdnZXItdWkgLmZsZXgtZ3Jvdy0xLW5ze2ZsZXgtZ3JvdzoxfS5zd2FnZ2VyLXVpIC5mbGV4LXNocmluay0wLW5ze2ZsZXgtc2hyaW5rOjB9LnN3YWdnZXItdWkgLmZsZXgtc2hyaW5rLTEtbnN7ZmxleC1zaHJpbms6MX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKWFuZCAobWF4LXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC5mbGV4LW17ZGlzcGxheTpmbGV4fS5zd2FnZ2VyLXVpIC5pbmxpbmUtZmxleC1te2Rpc3BsYXk6aW5saW5lLWZsZXh9LnN3YWdnZXItdWkgLmZsZXgtYXV0by1te2ZsZXg6MSAxIGF1dG87bWluLWhlaWdodDowO21pbi13aWR0aDowfS5zd2FnZ2VyLXVpIC5mbGV4LW5vbmUtbXtmbGV4Om5vbmV9LnN3YWdnZXItdWkgLmZsZXgtY29sdW1uLW17ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5zd2FnZ2VyLXVpIC5mbGV4LXJvdy1te2ZsZXgtZGlyZWN0aW9uOnJvd30uc3dhZ2dlci11aSAuZmxleC13cmFwLW17ZmxleC13cmFwOndyYXB9LnN3YWdnZXItdWkgLmZsZXgtbm93cmFwLW17ZmxleC13cmFwOm5vd3JhcH0uc3dhZ2dlci11aSAuZmxleC13cmFwLXJldmVyc2UtbXtmbGV4LXdyYXA6d3JhcC1yZXZlcnNlfS5zd2FnZ2VyLXVpIC5mbGV4LWNvbHVtbi1yZXZlcnNlLW17ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2V9LnN3YWdnZXItdWkgLmZsZXgtcm93LXJldmVyc2UtbXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX0uc3dhZ2dlci11aSAuaXRlbXMtc3RhcnQtbXthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5zd2FnZ2VyLXVpIC5pdGVtcy1lbmQtbXthbGlnbi1pdGVtczpmbGV4LWVuZH0uc3dhZ2dlci11aSAuaXRlbXMtY2VudGVyLW17YWxpZ24taXRlbXM6Y2VudGVyfS5zd2FnZ2VyLXVpIC5pdGVtcy1iYXNlbGluZS1te2FsaWduLWl0ZW1zOmJhc2VsaW5lfS5zd2FnZ2VyLXVpIC5pdGVtcy1zdHJldGNoLW17YWxpZ24taXRlbXM6c3RyZXRjaH0uc3dhZ2dlci11aSAuc2VsZi1zdGFydC1te2FsaWduLXNlbGY6ZmxleC1zdGFydH0uc3dhZ2dlci11aSAuc2VsZi1lbmQtbXthbGlnbi1zZWxmOmZsZXgtZW5kfS5zd2FnZ2VyLXVpIC5zZWxmLWNlbnRlci1te2FsaWduLXNlbGY6Y2VudGVyfS5zd2FnZ2VyLXVpIC5zZWxmLWJhc2VsaW5lLW17YWxpZ24tc2VsZjpiYXNlbGluZX0uc3dhZ2dlci11aSAuc2VsZi1zdHJldGNoLW17YWxpZ24tc2VsZjpzdHJldGNofS5zd2FnZ2VyLXVpIC5qdXN0aWZ5LXN0YXJ0LW17anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LnN3YWdnZXItdWkgLmp1c3RpZnktZW5kLW17anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5zd2FnZ2VyLXVpIC5qdXN0aWZ5LWNlbnRlci1te2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnN3YWdnZXItdWkgLmp1c3RpZnktYmV0d2Vlbi1te2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5zd2FnZ2VyLXVpIC5qdXN0aWZ5LWFyb3VuZC1te2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmR9LnN3YWdnZXItdWkgLmNvbnRlbnQtc3RhcnQtbXthbGlnbi1jb250ZW50OmZsZXgtc3RhcnR9LnN3YWdnZXItdWkgLmNvbnRlbnQtZW5kLW17YWxpZ24tY29udGVudDpmbGV4LWVuZH0uc3dhZ2dlci11aSAuY29udGVudC1jZW50ZXItbXthbGlnbi1jb250ZW50OmNlbnRlcn0uc3dhZ2dlci11aSAuY29udGVudC1iZXR3ZWVuLW17YWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVufS5zd2FnZ2VyLXVpIC5jb250ZW50LWFyb3VuZC1te2FsaWduLWNvbnRlbnQ6c3BhY2UtYXJvdW5kfS5zd2FnZ2VyLXVpIC5jb250ZW50LXN0cmV0Y2gtbXthbGlnbi1jb250ZW50OnN0cmV0Y2h9LnN3YWdnZXItdWkgLm9yZGVyLTAtbXtvcmRlcjowfS5zd2FnZ2VyLXVpIC5vcmRlci0xLW17b3JkZXI6MX0uc3dhZ2dlci11aSAub3JkZXItMi1te29yZGVyOjJ9LnN3YWdnZXItdWkgLm9yZGVyLTMtbXtvcmRlcjozfS5zd2FnZ2VyLXVpIC5vcmRlci00LW17b3JkZXI6NH0uc3dhZ2dlci11aSAub3JkZXItNS1te29yZGVyOjV9LnN3YWdnZXItdWkgLm9yZGVyLTYtbXtvcmRlcjo2fS5zd2FnZ2VyLXVpIC5vcmRlci03LW17b3JkZXI6N30uc3dhZ2dlci11aSAub3JkZXItOC1te29yZGVyOjh9LnN3YWdnZXItdWkgLm9yZGVyLWxhc3QtbXtvcmRlcjo5OTk5OX0uc3dhZ2dlci11aSAuZmxleC1ncm93LTAtbXtmbGV4LWdyb3c6MH0uc3dhZ2dlci11aSAuZmxleC1ncm93LTEtbXtmbGV4LWdyb3c6MX0uc3dhZ2dlci11aSAuZmxleC1zaHJpbmstMC1te2ZsZXgtc2hyaW5rOjB9LnN3YWdnZXItdWkgLmZsZXgtc2hyaW5rLTEtbXtmbGV4LXNocmluazoxfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC5mbGV4LWx7ZGlzcGxheTpmbGV4fS5zd2FnZ2VyLXVpIC5pbmxpbmUtZmxleC1se2Rpc3BsYXk6aW5saW5lLWZsZXh9LnN3YWdnZXItdWkgLmZsZXgtYXV0by1se2ZsZXg6MSAxIGF1dG87bWluLWhlaWdodDowO21pbi13aWR0aDowfS5zd2FnZ2VyLXVpIC5mbGV4LW5vbmUtbHtmbGV4Om5vbmV9LnN3YWdnZXItdWkgLmZsZXgtY29sdW1uLWx7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5zd2FnZ2VyLXVpIC5mbGV4LXJvdy1se2ZsZXgtZGlyZWN0aW9uOnJvd30uc3dhZ2dlci11aSAuZmxleC13cmFwLWx7ZmxleC13cmFwOndyYXB9LnN3YWdnZXItdWkgLmZsZXgtbm93cmFwLWx7ZmxleC13cmFwOm5vd3JhcH0uc3dhZ2dlci11aSAuZmxleC13cmFwLXJldmVyc2UtbHtmbGV4LXdyYXA6d3JhcC1yZXZlcnNlfS5zd2FnZ2VyLXVpIC5mbGV4LWNvbHVtbi1yZXZlcnNlLWx7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2V9LnN3YWdnZXItdWkgLmZsZXgtcm93LXJldmVyc2UtbHtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX0uc3dhZ2dlci11aSAuaXRlbXMtc3RhcnQtbHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5zd2FnZ2VyLXVpIC5pdGVtcy1lbmQtbHthbGlnbi1pdGVtczpmbGV4LWVuZH0uc3dhZ2dlci11aSAuaXRlbXMtY2VudGVyLWx7YWxpZ24taXRlbXM6Y2VudGVyfS5zd2FnZ2VyLXVpIC5pdGVtcy1iYXNlbGluZS1se2FsaWduLWl0ZW1zOmJhc2VsaW5lfS5zd2FnZ2VyLXVpIC5pdGVtcy1zdHJldGNoLWx7YWxpZ24taXRlbXM6c3RyZXRjaH0uc3dhZ2dlci11aSAuc2VsZi1zdGFydC1se2FsaWduLXNlbGY6ZmxleC1zdGFydH0uc3dhZ2dlci11aSAuc2VsZi1lbmQtbHthbGlnbi1zZWxmOmZsZXgtZW5kfS5zd2FnZ2VyLXVpIC5zZWxmLWNlbnRlci1se2FsaWduLXNlbGY6Y2VudGVyfS5zd2FnZ2VyLXVpIC5zZWxmLWJhc2VsaW5lLWx7YWxpZ24tc2VsZjpiYXNlbGluZX0uc3dhZ2dlci11aSAuc2VsZi1zdHJldGNoLWx7YWxpZ24tc2VsZjpzdHJldGNofS5zd2FnZ2VyLXVpIC5qdXN0aWZ5LXN0YXJ0LWx7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LnN3YWdnZXItdWkgLmp1c3RpZnktZW5kLWx7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5zd2FnZ2VyLXVpIC5qdXN0aWZ5LWNlbnRlci1se2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnN3YWdnZXItdWkgLmp1c3RpZnktYmV0d2Vlbi1se2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5zd2FnZ2VyLXVpIC5qdXN0aWZ5LWFyb3VuZC1se2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmR9LnN3YWdnZXItdWkgLmNvbnRlbnQtc3RhcnQtbHthbGlnbi1jb250ZW50OmZsZXgtc3RhcnR9LnN3YWdnZXItdWkgLmNvbnRlbnQtZW5kLWx7YWxpZ24tY29udGVudDpmbGV4LWVuZH0uc3dhZ2dlci11aSAuY29udGVudC1jZW50ZXItbHthbGlnbi1jb250ZW50OmNlbnRlcn0uc3dhZ2dlci11aSAuY29udGVudC1iZXR3ZWVuLWx7YWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVufS5zd2FnZ2VyLXVpIC5jb250ZW50LWFyb3VuZC1se2FsaWduLWNvbnRlbnQ6c3BhY2UtYXJvdW5kfS5zd2FnZ2VyLXVpIC5jb250ZW50LXN0cmV0Y2gtbHthbGlnbi1jb250ZW50OnN0cmV0Y2h9LnN3YWdnZXItdWkgLm9yZGVyLTAtbHtvcmRlcjowfS5zd2FnZ2VyLXVpIC5vcmRlci0xLWx7b3JkZXI6MX0uc3dhZ2dlci11aSAub3JkZXItMi1se29yZGVyOjJ9LnN3YWdnZXItdWkgLm9yZGVyLTMtbHtvcmRlcjozfS5zd2FnZ2VyLXVpIC5vcmRlci00LWx7b3JkZXI6NH0uc3dhZ2dlci11aSAub3JkZXItNS1se29yZGVyOjV9LnN3YWdnZXItdWkgLm9yZGVyLTYtbHtvcmRlcjo2fS5zd2FnZ2VyLXVpIC5vcmRlci03LWx7b3JkZXI6N30uc3dhZ2dlci11aSAub3JkZXItOC1se29yZGVyOjh9LnN3YWdnZXItdWkgLm9yZGVyLWxhc3QtbHtvcmRlcjo5OTk5OX0uc3dhZ2dlci11aSAuZmxleC1ncm93LTAtbHtmbGV4LWdyb3c6MH0uc3dhZ2dlci11aSAuZmxleC1ncm93LTEtbHtmbGV4LWdyb3c6MX0uc3dhZ2dlci11aSAuZmxleC1zaHJpbmstMC1se2ZsZXgtc2hyaW5rOjB9LnN3YWdnZXItdWkgLmZsZXgtc2hyaW5rLTEtbHtmbGV4LXNocmluazoxfX0uc3dhZ2dlci11aSAuZG57ZGlzcGxheTpub25lfS5zd2FnZ2VyLXVpIC5kaXtkaXNwbGF5OmlubGluZX0uc3dhZ2dlci11aSAuZGJ7ZGlzcGxheTpibG9ja30uc3dhZ2dlci11aSAuZGlie2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5zd2FnZ2VyLXVpIC5kaXR7ZGlzcGxheTppbmxpbmUtdGFibGV9LnN3YWdnZXItdWkgLmR0e2Rpc3BsYXk6dGFibGV9LnN3YWdnZXItdWkgLmR0Y3tkaXNwbGF5OnRhYmxlLWNlbGx9LnN3YWdnZXItdWkgLmR0LXJvd3tkaXNwbGF5OnRhYmxlLXJvd30uc3dhZ2dlci11aSAuZHQtcm93LWdyb3Vwe2Rpc3BsYXk6dGFibGUtcm93LWdyb3VwfS5zd2FnZ2VyLXVpIC5kdC1jb2x1bW57ZGlzcGxheTp0YWJsZS1jb2x1bW59LnN3YWdnZXItdWkgLmR0LWNvbHVtbi1ncm91cHtkaXNwbGF5OnRhYmxlLWNvbHVtbi1ncm91cH0uc3dhZ2dlci11aSAuZHQtLWZpeGVke3RhYmxlLWxheW91dDpmaXhlZDt3aWR0aDoxMDAlfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSl7LnN3YWdnZXItdWkgLmRuLW5ze2Rpc3BsYXk6bm9uZX0uc3dhZ2dlci11aSAuZGktbnN7ZGlzcGxheTppbmxpbmV9LnN3YWdnZXItdWkgLmRiLW5ze2Rpc3BsYXk6YmxvY2t9LnN3YWdnZXItdWkgLmRpYi1uc3tkaXNwbGF5OmlubGluZS1ibG9ja30uc3dhZ2dlci11aSAuZGl0LW5ze2Rpc3BsYXk6aW5saW5lLXRhYmxlfS5zd2FnZ2VyLXVpIC5kdC1uc3tkaXNwbGF5OnRhYmxlfS5zd2FnZ2VyLXVpIC5kdGMtbnN7ZGlzcGxheTp0YWJsZS1jZWxsfS5zd2FnZ2VyLXVpIC5kdC1yb3ctbnN7ZGlzcGxheTp0YWJsZS1yb3d9LnN3YWdnZXItdWkgLmR0LXJvdy1ncm91cC1uc3tkaXNwbGF5OnRhYmxlLXJvdy1ncm91cH0uc3dhZ2dlci11aSAuZHQtY29sdW1uLW5ze2Rpc3BsYXk6dGFibGUtY29sdW1ufS5zd2FnZ2VyLXVpIC5kdC1jb2x1bW4tZ3JvdXAtbnN7ZGlzcGxheTp0YWJsZS1jb2x1bW4tZ3JvdXB9LnN3YWdnZXItdWkgLmR0LS1maXhlZC1uc3t0YWJsZS1sYXlvdXQ6Zml4ZWQ7d2lkdGg6MTAwJX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKWFuZCAobWF4LXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC5kbi1te2Rpc3BsYXk6bm9uZX0uc3dhZ2dlci11aSAuZGktbXtkaXNwbGF5OmlubGluZX0uc3dhZ2dlci11aSAuZGItbXtkaXNwbGF5OmJsb2NrfS5zd2FnZ2VyLXVpIC5kaWItbXtkaXNwbGF5OmlubGluZS1ibG9ja30uc3dhZ2dlci11aSAuZGl0LW17ZGlzcGxheTppbmxpbmUtdGFibGV9LnN3YWdnZXItdWkgLmR0LW17ZGlzcGxheTp0YWJsZX0uc3dhZ2dlci11aSAuZHRjLW17ZGlzcGxheTp0YWJsZS1jZWxsfS5zd2FnZ2VyLXVpIC5kdC1yb3ctbXtkaXNwbGF5OnRhYmxlLXJvd30uc3dhZ2dlci11aSAuZHQtcm93LWdyb3VwLW17ZGlzcGxheTp0YWJsZS1yb3ctZ3JvdXB9LnN3YWdnZXItdWkgLmR0LWNvbHVtbi1te2Rpc3BsYXk6dGFibGUtY29sdW1ufS5zd2FnZ2VyLXVpIC5kdC1jb2x1bW4tZ3JvdXAtbXtkaXNwbGF5OnRhYmxlLWNvbHVtbi1ncm91cH0uc3dhZ2dlci11aSAuZHQtLWZpeGVkLW17dGFibGUtbGF5b3V0OmZpeGVkO3dpZHRoOjEwMCV9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLmRuLWx7ZGlzcGxheTpub25lfS5zd2FnZ2VyLXVpIC5kaS1se2Rpc3BsYXk6aW5saW5lfS5zd2FnZ2VyLXVpIC5kYi1se2Rpc3BsYXk6YmxvY2t9LnN3YWdnZXItdWkgLmRpYi1se2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5zd2FnZ2VyLXVpIC5kaXQtbHtkaXNwbGF5OmlubGluZS10YWJsZX0uc3dhZ2dlci11aSAuZHQtbHtkaXNwbGF5OnRhYmxlfS5zd2FnZ2VyLXVpIC5kdGMtbHtkaXNwbGF5OnRhYmxlLWNlbGx9LnN3YWdnZXItdWkgLmR0LXJvdy1se2Rpc3BsYXk6dGFibGUtcm93fS5zd2FnZ2VyLXVpIC5kdC1yb3ctZ3JvdXAtbHtkaXNwbGF5OnRhYmxlLXJvdy1ncm91cH0uc3dhZ2dlci11aSAuZHQtY29sdW1uLWx7ZGlzcGxheTp0YWJsZS1jb2x1bW59LnN3YWdnZXItdWkgLmR0LWNvbHVtbi1ncm91cC1se2Rpc3BsYXk6dGFibGUtY29sdW1uLWdyb3VwfS5zd2FnZ2VyLXVpIC5kdC0tZml4ZWQtbHt0YWJsZS1sYXlvdXQ6Zml4ZWQ7d2lkdGg6MTAwJX19LnN3YWdnZXItdWkgLmZse19kaXNwbGF5OmlubGluZTtmbG9hdDpsZWZ0fS5zd2FnZ2VyLXVpIC5mcntfZGlzcGxheTppbmxpbmU7ZmxvYXQ6cmlnaHR9LnN3YWdnZXItdWkgLmZue2Zsb2F0Om5vbmV9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKXsuc3dhZ2dlci11aSAuZmwtbnN7X2Rpc3BsYXk6aW5saW5lO2Zsb2F0OmxlZnR9LnN3YWdnZXItdWkgLmZyLW5ze19kaXNwbGF5OmlubGluZTtmbG9hdDpyaWdodH0uc3dhZ2dlci11aSAuZm4tbnN7ZmxvYXQ6bm9uZX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKWFuZCAobWF4LXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC5mbC1te19kaXNwbGF5OmlubGluZTtmbG9hdDpsZWZ0fS5zd2FnZ2VyLXVpIC5mci1te19kaXNwbGF5OmlubGluZTtmbG9hdDpyaWdodH0uc3dhZ2dlci11aSAuZm4tbXtmbG9hdDpub25lfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC5mbC1se19kaXNwbGF5OmlubGluZTtmbG9hdDpsZWZ0fS5zd2FnZ2VyLXVpIC5mci1se19kaXNwbGF5OmlubGluZTtmbG9hdDpyaWdodH0uc3dhZ2dlci11aSAuZm4tbHtmbG9hdDpub25lfX0uc3dhZ2dlci11aSAuc2Fucy1zZXJpZntmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxhdmVuaXIgbmV4dCxhdmVuaXIsaGVsdmV0aWNhLGhlbHZldGljYSBuZXVlLHVidW50dSxyb2JvdG8sbm90byxzZWdvZSB1aSxhcmlhbCxzYW5zLXNlcmlmfS5zd2FnZ2VyLXVpIC5zZXJpZntmb250LWZhbWlseTpnZW9yZ2lhLHNlcmlmfS5zd2FnZ2VyLXVpIC5zeXN0ZW0tc2Fucy1zZXJpZntmb250LWZhbWlseTpzYW5zLXNlcmlmfS5zd2FnZ2VyLXVpIC5zeXN0ZW0tc2VyaWZ7Zm9udC1mYW1pbHk6c2VyaWZ9LnN3YWdnZXItdWkgLmNvZGUsLnN3YWdnZXItdWkgY29kZXtmb250LWZhbWlseTpDb25zb2xhcyxtb25hY28sbW9ub3NwYWNlfS5zd2FnZ2VyLXVpIC5jb3VyaWVye2ZvbnQtZmFtaWx5OkNvdXJpZXIgTmV4dCxjb3VyaWVyLG1vbm9zcGFjZX0uc3dhZ2dlci11aSAuaGVsdmV0aWNhe2ZvbnQtZmFtaWx5OmhlbHZldGljYSBuZXVlLGhlbHZldGljYSxzYW5zLXNlcmlmfS5zd2FnZ2VyLXVpIC5hdmVuaXJ7Zm9udC1mYW1pbHk6YXZlbmlyIG5leHQsYXZlbmlyLHNhbnMtc2VyaWZ9LnN3YWdnZXItdWkgLmF0aGVsYXN7Zm9udC1mYW1pbHk6YXRoZWxhcyxnZW9yZ2lhLHNlcmlmfS5zd2FnZ2VyLXVpIC5nZW9yZ2lhe2ZvbnQtZmFtaWx5Omdlb3JnaWEsc2VyaWZ9LnN3YWdnZXItdWkgLnRpbWVze2ZvbnQtZmFtaWx5OnRpbWVzLHNlcmlmfS5zd2FnZ2VyLXVpIC5ib2Rvbml7Zm9udC1mYW1pbHk6Qm9kb25pIE1ULHNlcmlmfS5zd2FnZ2VyLXVpIC5jYWxpc3Rve2ZvbnQtZmFtaWx5OkNhbGlzdG8gTVQsc2VyaWZ9LnN3YWdnZXItdWkgLmdhcmFtb25ke2ZvbnQtZmFtaWx5OmdhcmFtb25kLHNlcmlmfS5zd2FnZ2VyLXVpIC5iYXNrZXJ2aWxsZXtmb250LWZhbWlseTpiYXNrZXJ2aWxsZSxzZXJpZn0uc3dhZ2dlci11aSAuaXtmb250LXN0eWxlOml0YWxpY30uc3dhZ2dlci11aSAuZnMtbm9ybWFse2ZvbnQtc3R5bGU6bm9ybWFsfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSl7LnN3YWdnZXItdWkgLmktbnN7Zm9udC1zdHlsZTppdGFsaWN9LnN3YWdnZXItdWkgLmZzLW5vcm1hbC1uc3tmb250LXN0eWxlOm5vcm1hbH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKWFuZCAobWF4LXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC5pLW17Zm9udC1zdHlsZTppdGFsaWN9LnN3YWdnZXItdWkgLmZzLW5vcm1hbC1te2ZvbnQtc3R5bGU6bm9ybWFsfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC5pLWx7Zm9udC1zdHlsZTppdGFsaWN9LnN3YWdnZXItdWkgLmZzLW5vcm1hbC1se2ZvbnQtc3R5bGU6bm9ybWFsfX0uc3dhZ2dlci11aSAubm9ybWFse2ZvbnQtd2VpZ2h0OjQwMH0uc3dhZ2dlci11aSAuYntmb250LXdlaWdodDo3MDB9LnN3YWdnZXItdWkgLmZ3MXtmb250LXdlaWdodDoxMDB9LnN3YWdnZXItdWkgLmZ3Mntmb250LXdlaWdodDoyMDB9LnN3YWdnZXItdWkgLmZ3M3tmb250LXdlaWdodDozMDB9LnN3YWdnZXItdWkgLmZ3NHtmb250LXdlaWdodDo0MDB9LnN3YWdnZXItdWkgLmZ3NXtmb250LXdlaWdodDo1MDB9LnN3YWdnZXItdWkgLmZ3Nntmb250LXdlaWdodDo2MDB9LnN3YWdnZXItdWkgLmZ3N3tmb250LXdlaWdodDo3MDB9LnN3YWdnZXItdWkgLmZ3OHtmb250LXdlaWdodDo4MDB9LnN3YWdnZXItdWkgLmZ3OXtmb250LXdlaWdodDo5MDB9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKXsuc3dhZ2dlci11aSAubm9ybWFsLW5ze2ZvbnQtd2VpZ2h0OjQwMH0uc3dhZ2dlci11aSAuYi1uc3tmb250LXdlaWdodDo3MDB9LnN3YWdnZXItdWkgLmZ3MS1uc3tmb250LXdlaWdodDoxMDB9LnN3YWdnZXItdWkgLmZ3Mi1uc3tmb250LXdlaWdodDoyMDB9LnN3YWdnZXItdWkgLmZ3My1uc3tmb250LXdlaWdodDozMDB9LnN3YWdnZXItdWkgLmZ3NC1uc3tmb250LXdlaWdodDo0MDB9LnN3YWdnZXItdWkgLmZ3NS1uc3tmb250LXdlaWdodDo1MDB9LnN3YWdnZXItdWkgLmZ3Ni1uc3tmb250LXdlaWdodDo2MDB9LnN3YWdnZXItdWkgLmZ3Ny1uc3tmb250LXdlaWdodDo3MDB9LnN3YWdnZXItdWkgLmZ3OC1uc3tmb250LXdlaWdodDo4MDB9LnN3YWdnZXItdWkgLmZ3OS1uc3tmb250LXdlaWdodDo5MDB9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSlhbmQgKG1heC13aWR0aDo2MGVtKXsuc3dhZ2dlci11aSAubm9ybWFsLW17Zm9udC13ZWlnaHQ6NDAwfS5zd2FnZ2VyLXVpIC5iLW17Zm9udC13ZWlnaHQ6NzAwfS5zd2FnZ2VyLXVpIC5mdzEtbXtmb250LXdlaWdodDoxMDB9LnN3YWdnZXItdWkgLmZ3Mi1te2ZvbnQtd2VpZ2h0OjIwMH0uc3dhZ2dlci11aSAuZnczLW17Zm9udC13ZWlnaHQ6MzAwfS5zd2FnZ2VyLXVpIC5mdzQtbXtmb250LXdlaWdodDo0MDB9LnN3YWdnZXItdWkgLmZ3NS1te2ZvbnQtd2VpZ2h0OjUwMH0uc3dhZ2dlci11aSAuZnc2LW17Zm9udC13ZWlnaHQ6NjAwfS5zd2FnZ2VyLXVpIC5mdzctbXtmb250LXdlaWdodDo3MDB9LnN3YWdnZXItdWkgLmZ3OC1te2ZvbnQtd2VpZ2h0OjgwMH0uc3dhZ2dlci11aSAuZnc5LW17Zm9udC13ZWlnaHQ6OTAwfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC5ub3JtYWwtbHtmb250LXdlaWdodDo0MDB9LnN3YWdnZXItdWkgLmItbHtmb250LXdlaWdodDo3MDB9LnN3YWdnZXItdWkgLmZ3MS1se2ZvbnQtd2VpZ2h0OjEwMH0uc3dhZ2dlci11aSAuZncyLWx7Zm9udC13ZWlnaHQ6MjAwfS5zd2FnZ2VyLXVpIC5mdzMtbHtmb250LXdlaWdodDozMDB9LnN3YWdnZXItdWkgLmZ3NC1se2ZvbnQtd2VpZ2h0OjQwMH0uc3dhZ2dlci11aSAuZnc1LWx7Zm9udC13ZWlnaHQ6NTAwfS5zd2FnZ2VyLXVpIC5mdzYtbHtmb250LXdlaWdodDo2MDB9LnN3YWdnZXItdWkgLmZ3Ny1se2ZvbnQtd2VpZ2h0OjcwMH0uc3dhZ2dlci11aSAuZnc4LWx7Zm9udC13ZWlnaHQ6ODAwfS5zd2FnZ2VyLXVpIC5mdzktbHtmb250LXdlaWdodDo5MDB9fS5zd2FnZ2VyLXVpIC5pbnB1dC1yZXNldHstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uc3dhZ2dlci11aSAuYnV0dG9uLXJlc2V0OjotbW96LWZvY3VzLWlubmVyLC5zd2FnZ2VyLXVpIC5pbnB1dC1yZXNldDo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MDtwYWRkaW5nOjB9LnN3YWdnZXItdWkgLmgxe2hlaWdodDoxcmVtfS5zd2FnZ2VyLXVpIC5oMntoZWlnaHQ6MnJlbX0uc3dhZ2dlci11aSAuaDN7aGVpZ2h0OjRyZW19LnN3YWdnZXItdWkgLmg0e2hlaWdodDo4cmVtfS5zd2FnZ2VyLXVpIC5oNXtoZWlnaHQ6MTZyZW19LnN3YWdnZXItdWkgLmgtMjV7aGVpZ2h0OjI1JX0uc3dhZ2dlci11aSAuaC01MHtoZWlnaHQ6NTAlfS5zd2FnZ2VyLXVpIC5oLTc1e2hlaWdodDo3NSV9LnN3YWdnZXItdWkgLmgtMTAwe2hlaWdodDoxMDAlfS5zd2FnZ2VyLXVpIC5taW4taC0xMDB7bWluLWhlaWdodDoxMDAlfS5zd2FnZ2VyLXVpIC52aC0yNXtoZWlnaHQ6MjV2aH0uc3dhZ2dlci11aSAudmgtNTB7aGVpZ2h0OjUwdmh9LnN3YWdnZXItdWkgLnZoLTc1e2hlaWdodDo3NXZofS5zd2FnZ2VyLXVpIC52aC0xMDB7aGVpZ2h0OjEwMHZofS5zd2FnZ2VyLXVpIC5taW4tdmgtMTAwe21pbi1oZWlnaHQ6MTAwdmh9LnN3YWdnZXItdWkgLmgtYXV0b3toZWlnaHQ6YXV0b30uc3dhZ2dlci11aSAuaC1pbmhlcml0e2hlaWdodDppbmhlcml0fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSl7LnN3YWdnZXItdWkgLmgxLW5ze2hlaWdodDoxcmVtfS5zd2FnZ2VyLXVpIC5oMi1uc3toZWlnaHQ6MnJlbX0uc3dhZ2dlci11aSAuaDMtbnN7aGVpZ2h0OjRyZW19LnN3YWdnZXItdWkgLmg0LW5ze2hlaWdodDo4cmVtfS5zd2FnZ2VyLXVpIC5oNS1uc3toZWlnaHQ6MTZyZW19LnN3YWdnZXItdWkgLmgtMjUtbnN7aGVpZ2h0OjI1JX0uc3dhZ2dlci11aSAuaC01MC1uc3toZWlnaHQ6NTAlfS5zd2FnZ2VyLXVpIC5oLTc1LW5ze2hlaWdodDo3NSV9LnN3YWdnZXItdWkgLmgtMTAwLW5ze2hlaWdodDoxMDAlfS5zd2FnZ2VyLXVpIC5taW4taC0xMDAtbnN7bWluLWhlaWdodDoxMDAlfS5zd2FnZ2VyLXVpIC52aC0yNS1uc3toZWlnaHQ6MjV2aH0uc3dhZ2dlci11aSAudmgtNTAtbnN7aGVpZ2h0OjUwdmh9LnN3YWdnZXItdWkgLnZoLTc1LW5ze2hlaWdodDo3NXZofS5zd2FnZ2VyLXVpIC52aC0xMDAtbnN7aGVpZ2h0OjEwMHZofS5zd2FnZ2VyLXVpIC5taW4tdmgtMTAwLW5ze21pbi1oZWlnaHQ6MTAwdmh9LnN3YWdnZXItdWkgLmgtYXV0by1uc3toZWlnaHQ6YXV0b30uc3dhZ2dlci11aSAuaC1pbmhlcml0LW5ze2hlaWdodDppbmhlcml0fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pYW5kIChtYXgtd2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLmgxLW17aGVpZ2h0OjFyZW19LnN3YWdnZXItdWkgLmgyLW17aGVpZ2h0OjJyZW19LnN3YWdnZXItdWkgLmgzLW17aGVpZ2h0OjRyZW19LnN3YWdnZXItdWkgLmg0LW17aGVpZ2h0OjhyZW19LnN3YWdnZXItdWkgLmg1LW17aGVpZ2h0OjE2cmVtfS5zd2FnZ2VyLXVpIC5oLTI1LW17aGVpZ2h0OjI1JX0uc3dhZ2dlci11aSAuaC01MC1te2hlaWdodDo1MCV9LnN3YWdnZXItdWkgLmgtNzUtbXtoZWlnaHQ6NzUlfS5zd2FnZ2VyLXVpIC5oLTEwMC1te2hlaWdodDoxMDAlfS5zd2FnZ2VyLXVpIC5taW4taC0xMDAtbXttaW4taGVpZ2h0OjEwMCV9LnN3YWdnZXItdWkgLnZoLTI1LW17aGVpZ2h0OjI1dmh9LnN3YWdnZXItdWkgLnZoLTUwLW17aGVpZ2h0OjUwdmh9LnN3YWdnZXItdWkgLnZoLTc1LW17aGVpZ2h0Ojc1dmh9LnN3YWdnZXItdWkgLnZoLTEwMC1te2hlaWdodDoxMDB2aH0uc3dhZ2dlci11aSAubWluLXZoLTEwMC1te21pbi1oZWlnaHQ6MTAwdmh9LnN3YWdnZXItdWkgLmgtYXV0by1te2hlaWdodDphdXRvfS5zd2FnZ2VyLXVpIC5oLWluaGVyaXQtbXtoZWlnaHQ6aW5oZXJpdH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2MGVtKXsuc3dhZ2dlci11aSAuaDEtbHtoZWlnaHQ6MXJlbX0uc3dhZ2dlci11aSAuaDItbHtoZWlnaHQ6MnJlbX0uc3dhZ2dlci11aSAuaDMtbHtoZWlnaHQ6NHJlbX0uc3dhZ2dlci11aSAuaDQtbHtoZWlnaHQ6OHJlbX0uc3dhZ2dlci11aSAuaDUtbHtoZWlnaHQ6MTZyZW19LnN3YWdnZXItdWkgLmgtMjUtbHtoZWlnaHQ6MjUlfS5zd2FnZ2VyLXVpIC5oLTUwLWx7aGVpZ2h0OjUwJX0uc3dhZ2dlci11aSAuaC03NS1se2hlaWdodDo3NSV9LnN3YWdnZXItdWkgLmgtMTAwLWx7aGVpZ2h0OjEwMCV9LnN3YWdnZXItdWkgLm1pbi1oLTEwMC1se21pbi1oZWlnaHQ6MTAwJX0uc3dhZ2dlci11aSAudmgtMjUtbHtoZWlnaHQ6MjV2aH0uc3dhZ2dlci11aSAudmgtNTAtbHtoZWlnaHQ6NTB2aH0uc3dhZ2dlci11aSAudmgtNzUtbHtoZWlnaHQ6NzV2aH0uc3dhZ2dlci11aSAudmgtMTAwLWx7aGVpZ2h0OjEwMHZofS5zd2FnZ2VyLXVpIC5taW4tdmgtMTAwLWx7bWluLWhlaWdodDoxMDB2aH0uc3dhZ2dlci11aSAuaC1hdXRvLWx7aGVpZ2h0OmF1dG99LnN3YWdnZXItdWkgLmgtaW5oZXJpdC1se2hlaWdodDppbmhlcml0fX0uc3dhZ2dlci11aSAudHJhY2tlZHtsZXR0ZXItc3BhY2luZzouMWVtfS5zd2FnZ2VyLXVpIC50cmFja2VkLXRpZ2h0e2xldHRlci1zcGFjaW5nOi0uMDVlbX0uc3dhZ2dlci11aSAudHJhY2tlZC1tZWdhe2xldHRlci1zcGFjaW5nOi4yNWVtfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSl7LnN3YWdnZXItdWkgLnRyYWNrZWQtbnN7bGV0dGVyLXNwYWNpbmc6LjFlbX0uc3dhZ2dlci11aSAudHJhY2tlZC10aWdodC1uc3tsZXR0ZXItc3BhY2luZzotLjA1ZW19LnN3YWdnZXItdWkgLnRyYWNrZWQtbWVnYS1uc3tsZXR0ZXItc3BhY2luZzouMjVlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKWFuZCAobWF4LXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC50cmFja2VkLW17bGV0dGVyLXNwYWNpbmc6LjFlbX0uc3dhZ2dlci11aSAudHJhY2tlZC10aWdodC1te2xldHRlci1zcGFjaW5nOi0uMDVlbX0uc3dhZ2dlci11aSAudHJhY2tlZC1tZWdhLW17bGV0dGVyLXNwYWNpbmc6LjI1ZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLnRyYWNrZWQtbHtsZXR0ZXItc3BhY2luZzouMWVtfS5zd2FnZ2VyLXVpIC50cmFja2VkLXRpZ2h0LWx7bGV0dGVyLXNwYWNpbmc6LS4wNWVtfS5zd2FnZ2VyLXVpIC50cmFja2VkLW1lZ2EtbHtsZXR0ZXItc3BhY2luZzouMjVlbX19LnN3YWdnZXItdWkgLmxoLXNvbGlke2xpbmUtaGVpZ2h0OjF9LnN3YWdnZXItdWkgLmxoLXRpdGxle2xpbmUtaGVpZ2h0OjEuMjV9LnN3YWdnZXItdWkgLmxoLWNvcHl7bGluZS1oZWlnaHQ6MS41fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSl7LnN3YWdnZXItdWkgLmxoLXNvbGlkLW5ze2xpbmUtaGVpZ2h0OjF9LnN3YWdnZXItdWkgLmxoLXRpdGxlLW5ze2xpbmUtaGVpZ2h0OjEuMjV9LnN3YWdnZXItdWkgLmxoLWNvcHktbnN7bGluZS1oZWlnaHQ6MS41fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pYW5kIChtYXgtd2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLmxoLXNvbGlkLW17bGluZS1oZWlnaHQ6MX0uc3dhZ2dlci11aSAubGgtdGl0bGUtbXtsaW5lLWhlaWdodDoxLjI1fS5zd2FnZ2VyLXVpIC5saC1jb3B5LW17bGluZS1oZWlnaHQ6MS41fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC5saC1zb2xpZC1se2xpbmUtaGVpZ2h0OjF9LnN3YWdnZXItdWkgLmxoLXRpdGxlLWx7bGluZS1oZWlnaHQ6MS4yNX0uc3dhZ2dlci11aSAubGgtY29weS1se2xpbmUtaGVpZ2h0OjEuNX19LnN3YWdnZXItdWkgLmxpbmt7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246bm9uZTt0ZXh0LWRlY29yYXRpb246bm9uZX0uc3dhZ2dlci11aSAubGluaywuc3dhZ2dlci11aSAubGluazphY3RpdmUsLnN3YWdnZXItdWkgLmxpbms6Zm9jdXMsLnN3YWdnZXItdWkgLmxpbms6aG92ZXIsLnN3YWdnZXItdWkgLmxpbms6bGluaywuc3dhZ2dlci11aSAubGluazp2aXNpdGVke3RyYW5zaXRpb246Y29sb3IgLjE1cyBlYXNlLWlufS5zd2FnZ2VyLXVpIC5saW5rOmZvY3Vze291dGxpbmU6MXB4IGRvdHRlZCBjdXJyZW50Q29sb3J9LnN3YWdnZXItdWkgLmxpc3R7bGlzdC1zdHlsZS10eXBlOm5vbmV9LnN3YWdnZXItdWkgLm13LTEwMHttYXgtd2lkdGg6MTAwJX0uc3dhZ2dlci11aSAubXcxe21heC13aWR0aDoxcmVtfS5zd2FnZ2VyLXVpIC5tdzJ7bWF4LXdpZHRoOjJyZW19LnN3YWdnZXItdWkgLm13M3ttYXgtd2lkdGg6NHJlbX0uc3dhZ2dlci11aSAubXc0e21heC13aWR0aDo4cmVtfS5zd2FnZ2VyLXVpIC5tdzV7bWF4LXdpZHRoOjE2cmVtfS5zd2FnZ2VyLXVpIC5tdzZ7bWF4LXdpZHRoOjMycmVtfS5zd2FnZ2VyLXVpIC5tdzd7bWF4LXdpZHRoOjQ4cmVtfS5zd2FnZ2VyLXVpIC5tdzh7bWF4LXdpZHRoOjY0cmVtfS5zd2FnZ2VyLXVpIC5tdzl7bWF4LXdpZHRoOjk2cmVtfS5zd2FnZ2VyLXVpIC5tdy1ub25le21heC13aWR0aDpub25lfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSl7LnN3YWdnZXItdWkgLm13LTEwMC1uc3ttYXgtd2lkdGg6MTAwJX0uc3dhZ2dlci11aSAubXcxLW5ze21heC13aWR0aDoxcmVtfS5zd2FnZ2VyLXVpIC5tdzItbnN7bWF4LXdpZHRoOjJyZW19LnN3YWdnZXItdWkgLm13My1uc3ttYXgtd2lkdGg6NHJlbX0uc3dhZ2dlci11aSAubXc0LW5ze21heC13aWR0aDo4cmVtfS5zd2FnZ2VyLXVpIC5tdzUtbnN7bWF4LXdpZHRoOjE2cmVtfS5zd2FnZ2VyLXVpIC5tdzYtbnN7bWF4LXdpZHRoOjMycmVtfS5zd2FnZ2VyLXVpIC5tdzctbnN7bWF4LXdpZHRoOjQ4cmVtfS5zd2FnZ2VyLXVpIC5tdzgtbnN7bWF4LXdpZHRoOjY0cmVtfS5zd2FnZ2VyLXVpIC5tdzktbnN7bWF4LXdpZHRoOjk2cmVtfS5zd2FnZ2VyLXVpIC5tdy1ub25lLW5ze21heC13aWR0aDpub25lfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pYW5kIChtYXgtd2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLm13LTEwMC1te21heC13aWR0aDoxMDAlfS5zd2FnZ2VyLXVpIC5tdzEtbXttYXgtd2lkdGg6MXJlbX0uc3dhZ2dlci11aSAubXcyLW17bWF4LXdpZHRoOjJyZW19LnN3YWdnZXItdWkgLm13My1te21heC13aWR0aDo0cmVtfS5zd2FnZ2VyLXVpIC5tdzQtbXttYXgtd2lkdGg6OHJlbX0uc3dhZ2dlci11aSAubXc1LW17bWF4LXdpZHRoOjE2cmVtfS5zd2FnZ2VyLXVpIC5tdzYtbXttYXgtd2lkdGg6MzJyZW19LnN3YWdnZXItdWkgLm13Ny1te21heC13aWR0aDo0OHJlbX0uc3dhZ2dlci11aSAubXc4LW17bWF4LXdpZHRoOjY0cmVtfS5zd2FnZ2VyLXVpIC5tdzktbXttYXgtd2lkdGg6OTZyZW19LnN3YWdnZXItdWkgLm13LW5vbmUtbXttYXgtd2lkdGg6bm9uZX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2MGVtKXsuc3dhZ2dlci11aSAubXctMTAwLWx7bWF4LXdpZHRoOjEwMCV9LnN3YWdnZXItdWkgLm13MS1se21heC13aWR0aDoxcmVtfS5zd2FnZ2VyLXVpIC5tdzItbHttYXgtd2lkdGg6MnJlbX0uc3dhZ2dlci11aSAubXczLWx7bWF4LXdpZHRoOjRyZW19LnN3YWdnZXItdWkgLm13NC1se21heC13aWR0aDo4cmVtfS5zd2FnZ2VyLXVpIC5tdzUtbHttYXgtd2lkdGg6MTZyZW19LnN3YWdnZXItdWkgLm13Ni1se21heC13aWR0aDozMnJlbX0uc3dhZ2dlci11aSAubXc3LWx7bWF4LXdpZHRoOjQ4cmVtfS5zd2FnZ2VyLXVpIC5tdzgtbHttYXgtd2lkdGg6NjRyZW19LnN3YWdnZXItdWkgLm13OS1se21heC13aWR0aDo5NnJlbX0uc3dhZ2dlci11aSAubXctbm9uZS1se21heC13aWR0aDpub25lfX0uc3dhZ2dlci11aSAudzF7d2lkdGg6MXJlbX0uc3dhZ2dlci11aSAudzJ7d2lkdGg6MnJlbX0uc3dhZ2dlci11aSAudzN7d2lkdGg6NHJlbX0uc3dhZ2dlci11aSAudzR7d2lkdGg6OHJlbX0uc3dhZ2dlci11aSAudzV7d2lkdGg6MTZyZW19LnN3YWdnZXItdWkgLnctMTB7d2lkdGg6MTAlfS5zd2FnZ2VyLXVpIC53LTIwe3dpZHRoOjIwJX0uc3dhZ2dlci11aSAudy0yNXt3aWR0aDoyNSV9LnN3YWdnZXItdWkgLnctMzB7d2lkdGg6MzAlfS5zd2FnZ2VyLXVpIC53LTMze3dpZHRoOjMzJX0uc3dhZ2dlci11aSAudy0zNHt3aWR0aDozNCV9LnN3YWdnZXItdWkgLnctNDB7d2lkdGg6NDAlfS5zd2FnZ2VyLXVpIC53LTUwe3dpZHRoOjUwJX0uc3dhZ2dlci11aSAudy02MHt3aWR0aDo2MCV9LnN3YWdnZXItdWkgLnctNzB7d2lkdGg6NzAlfS5zd2FnZ2VyLXVpIC53LTc1e3dpZHRoOjc1JX0uc3dhZ2dlci11aSAudy04MHt3aWR0aDo4MCV9LnN3YWdnZXItdWkgLnctOTB7d2lkdGg6OTAlfS5zd2FnZ2VyLXVpIC53LTEwMHt3aWR0aDoxMDAlfS5zd2FnZ2VyLXVpIC53LXRoaXJke3dpZHRoOjMzLjMzMzMzMzMzMzMlfS5zd2FnZ2VyLXVpIC53LXR3by10aGlyZHN7d2lkdGg6NjYuNjY2NjY2NjY2NyV9LnN3YWdnZXItdWkgLnctYXV0b3t3aWR0aDphdXRvfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSl7LnN3YWdnZXItdWkgLncxLW5ze3dpZHRoOjFyZW19LnN3YWdnZXItdWkgLncyLW5ze3dpZHRoOjJyZW19LnN3YWdnZXItdWkgLnczLW5ze3dpZHRoOjRyZW19LnN3YWdnZXItdWkgLnc0LW5ze3dpZHRoOjhyZW19LnN3YWdnZXItdWkgLnc1LW5ze3dpZHRoOjE2cmVtfS5zd2FnZ2VyLXVpIC53LTEwLW5ze3dpZHRoOjEwJX0uc3dhZ2dlci11aSAudy0yMC1uc3t3aWR0aDoyMCV9LnN3YWdnZXItdWkgLnctMjUtbnN7d2lkdGg6MjUlfS5zd2FnZ2VyLXVpIC53LTMwLW5ze3dpZHRoOjMwJX0uc3dhZ2dlci11aSAudy0zMy1uc3t3aWR0aDozMyV9LnN3YWdnZXItdWkgLnctMzQtbnN7d2lkdGg6MzQlfS5zd2FnZ2VyLXVpIC53LTQwLW5ze3dpZHRoOjQwJX0uc3dhZ2dlci11aSAudy01MC1uc3t3aWR0aDo1MCV9LnN3YWdnZXItdWkgLnctNjAtbnN7d2lkdGg6NjAlfS5zd2FnZ2VyLXVpIC53LTcwLW5ze3dpZHRoOjcwJX0uc3dhZ2dlci11aSAudy03NS1uc3t3aWR0aDo3NSV9LnN3YWdnZXItdWkgLnctODAtbnN7d2lkdGg6ODAlfS5zd2FnZ2VyLXVpIC53LTkwLW5ze3dpZHRoOjkwJX0uc3dhZ2dlci11aSAudy0xMDAtbnN7d2lkdGg6MTAwJX0uc3dhZ2dlci11aSAudy10aGlyZC1uc3t3aWR0aDozMy4zMzMzMzMzMzMzJX0uc3dhZ2dlci11aSAudy10d28tdGhpcmRzLW5ze3dpZHRoOjY2LjY2NjY2NjY2NjclfS5zd2FnZ2VyLXVpIC53LWF1dG8tbnN7d2lkdGg6YXV0b319QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKWFuZCAobWF4LXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC53MS1te3dpZHRoOjFyZW19LnN3YWdnZXItdWkgLncyLW17d2lkdGg6MnJlbX0uc3dhZ2dlci11aSAudzMtbXt3aWR0aDo0cmVtfS5zd2FnZ2VyLXVpIC53NC1te3dpZHRoOjhyZW19LnN3YWdnZXItdWkgLnc1LW17d2lkdGg6MTZyZW19LnN3YWdnZXItdWkgLnctMTAtbXt3aWR0aDoxMCV9LnN3YWdnZXItdWkgLnctMjAtbXt3aWR0aDoyMCV9LnN3YWdnZXItdWkgLnctMjUtbXt3aWR0aDoyNSV9LnN3YWdnZXItdWkgLnctMzAtbXt3aWR0aDozMCV9LnN3YWdnZXItdWkgLnctMzMtbXt3aWR0aDozMyV9LnN3YWdnZXItdWkgLnctMzQtbXt3aWR0aDozNCV9LnN3YWdnZXItdWkgLnctNDAtbXt3aWR0aDo0MCV9LnN3YWdnZXItdWkgLnctNTAtbXt3aWR0aDo1MCV9LnN3YWdnZXItdWkgLnctNjAtbXt3aWR0aDo2MCV9LnN3YWdnZXItdWkgLnctNzAtbXt3aWR0aDo3MCV9LnN3YWdnZXItdWkgLnctNzUtbXt3aWR0aDo3NSV9LnN3YWdnZXItdWkgLnctODAtbXt3aWR0aDo4MCV9LnN3YWdnZXItdWkgLnctOTAtbXt3aWR0aDo5MCV9LnN3YWdnZXItdWkgLnctMTAwLW17d2lkdGg6MTAwJX0uc3dhZ2dlci11aSAudy10aGlyZC1te3dpZHRoOjMzLjMzMzMzMzMzMzMlfS5zd2FnZ2VyLXVpIC53LXR3by10aGlyZHMtbXt3aWR0aDo2Ni42NjY2NjY2NjY3JX0uc3dhZ2dlci11aSAudy1hdXRvLW17d2lkdGg6YXV0b319QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2MGVtKXsuc3dhZ2dlci11aSAudzEtbHt3aWR0aDoxcmVtfS5zd2FnZ2VyLXVpIC53Mi1se3dpZHRoOjJyZW19LnN3YWdnZXItdWkgLnczLWx7d2lkdGg6NHJlbX0uc3dhZ2dlci11aSAudzQtbHt3aWR0aDo4cmVtfS5zd2FnZ2VyLXVpIC53NS1se3dpZHRoOjE2cmVtfS5zd2FnZ2VyLXVpIC53LTEwLWx7d2lkdGg6MTAlfS5zd2FnZ2VyLXVpIC53LTIwLWx7d2lkdGg6MjAlfS5zd2FnZ2VyLXVpIC53LTI1LWx7d2lkdGg6MjUlfS5zd2FnZ2VyLXVpIC53LTMwLWx7d2lkdGg6MzAlfS5zd2FnZ2VyLXVpIC53LTMzLWx7d2lkdGg6MzMlfS5zd2FnZ2VyLXVpIC53LTM0LWx7d2lkdGg6MzQlfS5zd2FnZ2VyLXVpIC53LTQwLWx7d2lkdGg6NDAlfS5zd2FnZ2VyLXVpIC53LTUwLWx7d2lkdGg6NTAlfS5zd2FnZ2VyLXVpIC53LTYwLWx7d2lkdGg6NjAlfS5zd2FnZ2VyLXVpIC53LTcwLWx7d2lkdGg6NzAlfS5zd2FnZ2VyLXVpIC53LTc1LWx7d2lkdGg6NzUlfS5zd2FnZ2VyLXVpIC53LTgwLWx7d2lkdGg6ODAlfS5zd2FnZ2VyLXVpIC53LTkwLWx7d2lkdGg6OTAlfS5zd2FnZ2VyLXVpIC53LTEwMC1se3dpZHRoOjEwMCV9LnN3YWdnZXItdWkgLnctdGhpcmQtbHt3aWR0aDozMy4zMzMzMzMzMzMzJX0uc3dhZ2dlci11aSAudy10d28tdGhpcmRzLWx7d2lkdGg6NjYuNjY2NjY2NjY2NyV9LnN3YWdnZXItdWkgLnctYXV0by1se3dpZHRoOmF1dG99fS5zd2FnZ2VyLXVpIC5vdmVyZmxvdy12aXNpYmxle292ZXJmbG93OnZpc2libGV9LnN3YWdnZXItdWkgLm92ZXJmbG93LWhpZGRlbntvdmVyZmxvdzpoaWRkZW59LnN3YWdnZXItdWkgLm92ZXJmbG93LXNjcm9sbHtvdmVyZmxvdzpzY3JvbGx9LnN3YWdnZXItdWkgLm92ZXJmbG93LWF1dG97b3ZlcmZsb3c6YXV0b30uc3dhZ2dlci11aSAub3ZlcmZsb3cteC12aXNpYmxle292ZXJmbG93LXg6dmlzaWJsZX0uc3dhZ2dlci11aSAub3ZlcmZsb3cteC1oaWRkZW57b3ZlcmZsb3cteDpoaWRkZW59LnN3YWdnZXItdWkgLm92ZXJmbG93LXgtc2Nyb2xse292ZXJmbG93LXg6c2Nyb2xsfS5zd2FnZ2VyLXVpIC5vdmVyZmxvdy14LWF1dG97b3ZlcmZsb3cteDphdXRvfS5zd2FnZ2VyLXVpIC5vdmVyZmxvdy15LXZpc2libGV7b3ZlcmZsb3cteTp2aXNpYmxlfS5zd2FnZ2VyLXVpIC5vdmVyZmxvdy15LWhpZGRlbntvdmVyZmxvdy15OmhpZGRlbn0uc3dhZ2dlci11aSAub3ZlcmZsb3cteS1zY3JvbGx7b3ZlcmZsb3cteTpzY3JvbGx9LnN3YWdnZXItdWkgLm92ZXJmbG93LXktYXV0b3tvdmVyZmxvdy15OmF1dG99QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKXsuc3dhZ2dlci11aSAub3ZlcmZsb3ctdmlzaWJsZS1uc3tvdmVyZmxvdzp2aXNpYmxlfS5zd2FnZ2VyLXVpIC5vdmVyZmxvdy1oaWRkZW4tbnN7b3ZlcmZsb3c6aGlkZGVufS5zd2FnZ2VyLXVpIC5vdmVyZmxvdy1zY3JvbGwtbnN7b3ZlcmZsb3c6c2Nyb2xsfS5zd2FnZ2VyLXVpIC5vdmVyZmxvdy1hdXRvLW5ze292ZXJmbG93OmF1dG99LnN3YWdnZXItdWkgLm92ZXJmbG93LXgtdmlzaWJsZS1uc3tvdmVyZmxvdy14OnZpc2libGV9LnN3YWdnZXItdWkgLm92ZXJmbG93LXgtaGlkZGVuLW5ze292ZXJmbG93LXg6aGlkZGVufS5zd2FnZ2VyLXVpIC5vdmVyZmxvdy14LXNjcm9sbC1uc3tvdmVyZmxvdy14OnNjcm9sbH0uc3dhZ2dlci11aSAub3ZlcmZsb3cteC1hdXRvLW5ze292ZXJmbG93LXg6YXV0b30uc3dhZ2dlci11aSAub3ZlcmZsb3cteS12aXNpYmxlLW5ze292ZXJmbG93LXk6dmlzaWJsZX0uc3dhZ2dlci11aSAub3ZlcmZsb3cteS1oaWRkZW4tbnN7b3ZlcmZsb3cteTpoaWRkZW59LnN3YWdnZXItdWkgLm92ZXJmbG93LXktc2Nyb2xsLW5ze292ZXJmbG93LXk6c2Nyb2xsfS5zd2FnZ2VyLXVpIC5vdmVyZmxvdy15LWF1dG8tbnN7b3ZlcmZsb3cteTphdXRvfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pYW5kIChtYXgtd2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLm92ZXJmbG93LXZpc2libGUtbXtvdmVyZmxvdzp2aXNpYmxlfS5zd2FnZ2VyLXVpIC5vdmVyZmxvdy1oaWRkZW4tbXtvdmVyZmxvdzpoaWRkZW59LnN3YWdnZXItdWkgLm92ZXJmbG93LXNjcm9sbC1te292ZXJmbG93OnNjcm9sbH0uc3dhZ2dlci11aSAub3ZlcmZsb3ctYXV0by1te292ZXJmbG93OmF1dG99LnN3YWdnZXItdWkgLm92ZXJmbG93LXgtdmlzaWJsZS1te292ZXJmbG93LXg6dmlzaWJsZX0uc3dhZ2dlci11aSAub3ZlcmZsb3cteC1oaWRkZW4tbXtvdmVyZmxvdy14OmhpZGRlbn0uc3dhZ2dlci11aSAub3ZlcmZsb3cteC1zY3JvbGwtbXtvdmVyZmxvdy14OnNjcm9sbH0uc3dhZ2dlci11aSAub3ZlcmZsb3cteC1hdXRvLW17b3ZlcmZsb3cteDphdXRvfS5zd2FnZ2VyLXVpIC5vdmVyZmxvdy15LXZpc2libGUtbXtvdmVyZmxvdy15OnZpc2libGV9LnN3YWdnZXItdWkgLm92ZXJmbG93LXktaGlkZGVuLW17b3ZlcmZsb3cteTpoaWRkZW59LnN3YWdnZXItdWkgLm92ZXJmbG93LXktc2Nyb2xsLW17b3ZlcmZsb3cteTpzY3JvbGx9LnN3YWdnZXItdWkgLm92ZXJmbG93LXktYXV0by1te292ZXJmbG93LXk6YXV0b319QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2MGVtKXsuc3dhZ2dlci11aSAub3ZlcmZsb3ctdmlzaWJsZS1se292ZXJmbG93OnZpc2libGV9LnN3YWdnZXItdWkgLm92ZXJmbG93LWhpZGRlbi1se292ZXJmbG93OmhpZGRlbn0uc3dhZ2dlci11aSAub3ZlcmZsb3ctc2Nyb2xsLWx7b3ZlcmZsb3c6c2Nyb2xsfS5zd2FnZ2VyLXVpIC5vdmVyZmxvdy1hdXRvLWx7b3ZlcmZsb3c6YXV0b30uc3dhZ2dlci11aSAub3ZlcmZsb3cteC12aXNpYmxlLWx7b3ZlcmZsb3cteDp2aXNpYmxlfS5zd2FnZ2VyLXVpIC5vdmVyZmxvdy14LWhpZGRlbi1se292ZXJmbG93LXg6aGlkZGVufS5zd2FnZ2VyLXVpIC5vdmVyZmxvdy14LXNjcm9sbC1se292ZXJmbG93LXg6c2Nyb2xsfS5zd2FnZ2VyLXVpIC5vdmVyZmxvdy14LWF1dG8tbHtvdmVyZmxvdy14OmF1dG99LnN3YWdnZXItdWkgLm92ZXJmbG93LXktdmlzaWJsZS1se292ZXJmbG93LXk6dmlzaWJsZX0uc3dhZ2dlci11aSAub3ZlcmZsb3cteS1oaWRkZW4tbHtvdmVyZmxvdy15OmhpZGRlbn0uc3dhZ2dlci11aSAub3ZlcmZsb3cteS1zY3JvbGwtbHtvdmVyZmxvdy15OnNjcm9sbH0uc3dhZ2dlci11aSAub3ZlcmZsb3cteS1hdXRvLWx7b3ZlcmZsb3cteTphdXRvfX0uc3dhZ2dlci11aSAuc3RhdGlje3Bvc2l0aW9uOnN0YXRpY30uc3dhZ2dlci11aSAucmVsYXRpdmV7cG9zaXRpb246cmVsYXRpdmV9LnN3YWdnZXItdWkgLmFic29sdXRle3Bvc2l0aW9uOmFic29sdXRlfS5zd2FnZ2VyLXVpIC5maXhlZHtwb3NpdGlvbjpmaXhlZH1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pey5zd2FnZ2VyLXVpIC5zdGF0aWMtbnN7cG9zaXRpb246c3RhdGljfS5zd2FnZ2VyLXVpIC5yZWxhdGl2ZS1uc3twb3NpdGlvbjpyZWxhdGl2ZX0uc3dhZ2dlci11aSAuYWJzb2x1dGUtbnN7cG9zaXRpb246YWJzb2x1dGV9LnN3YWdnZXItdWkgLmZpeGVkLW5ze3Bvc2l0aW9uOmZpeGVkfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pYW5kIChtYXgtd2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLnN0YXRpYy1te3Bvc2l0aW9uOnN0YXRpY30uc3dhZ2dlci11aSAucmVsYXRpdmUtbXtwb3NpdGlvbjpyZWxhdGl2ZX0uc3dhZ2dlci11aSAuYWJzb2x1dGUtbXtwb3NpdGlvbjphYnNvbHV0ZX0uc3dhZ2dlci11aSAuZml4ZWQtbXtwb3NpdGlvbjpmaXhlZH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2MGVtKXsuc3dhZ2dlci11aSAuc3RhdGljLWx7cG9zaXRpb246c3RhdGljfS5zd2FnZ2VyLXVpIC5yZWxhdGl2ZS1se3Bvc2l0aW9uOnJlbGF0aXZlfS5zd2FnZ2VyLXVpIC5hYnNvbHV0ZS1se3Bvc2l0aW9uOmFic29sdXRlfS5zd2FnZ2VyLXVpIC5maXhlZC1se3Bvc2l0aW9uOmZpeGVkfX0uc3dhZ2dlci11aSAuby0xMDB7b3BhY2l0eToxfS5zd2FnZ2VyLXVpIC5vLTkwe29wYWNpdHk6Ljl9LnN3YWdnZXItdWkgLm8tODB7b3BhY2l0eTouOH0uc3dhZ2dlci11aSAuby03MHtvcGFjaXR5Oi43fS5zd2FnZ2VyLXVpIC5vLTYwe29wYWNpdHk6LjZ9LnN3YWdnZXItdWkgLm8tNTB7b3BhY2l0eTouNX0uc3dhZ2dlci11aSAuby00MHtvcGFjaXR5Oi40fS5zd2FnZ2VyLXVpIC5vLTMwe29wYWNpdHk6LjN9LnN3YWdnZXItdWkgLm8tMjB7b3BhY2l0eTouMn0uc3dhZ2dlci11aSAuby0xMHtvcGFjaXR5Oi4xfS5zd2FnZ2VyLXVpIC5vLTA1e29wYWNpdHk6LjA1fS5zd2FnZ2VyLXVpIC5vLTAyNXtvcGFjaXR5Oi4wMjV9LnN3YWdnZXItdWkgLm8tMHtvcGFjaXR5OjB9LnN3YWdnZXItdWkgLnJvdGF0ZS00NXt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0uc3dhZ2dlci11aSAucm90YXRlLTkwe3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS5zd2FnZ2VyLXVpIC5yb3RhdGUtMTM1e3RyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKX0uc3dhZ2dlci11aSAucm90YXRlLTE4MHt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LnN3YWdnZXItdWkgLnJvdGF0ZS0yMjV7dHJhbnNmb3JtOnJvdGF0ZSgyMjVkZWcpfS5zd2FnZ2VyLXVpIC5yb3RhdGUtMjcwe3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKX0uc3dhZ2dlci11aSAucm90YXRlLTMxNXt0cmFuc2Zvcm06cm90YXRlKDMxNWRlZyl9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKXsuc3dhZ2dlci11aSAucm90YXRlLTQ1LW5ze3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5zd2FnZ2VyLXVpIC5yb3RhdGUtOTAtbnN7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9LnN3YWdnZXItdWkgLnJvdGF0ZS0xMzUtbnN7dHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpfS5zd2FnZ2VyLXVpIC5yb3RhdGUtMTgwLW5ze3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0uc3dhZ2dlci11aSAucm90YXRlLTIyNS1uc3t0cmFuc2Zvcm06cm90YXRlKDIyNWRlZyl9LnN3YWdnZXItdWkgLnJvdGF0ZS0yNzAtbnN7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpfS5zd2FnZ2VyLXVpIC5yb3RhdGUtMzE1LW5ze3RyYW5zZm9ybTpyb3RhdGUoMzE1ZGVnKX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKWFuZCAobWF4LXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC5yb3RhdGUtNDUtbXt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0uc3dhZ2dlci11aSAucm90YXRlLTkwLW17dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9LnN3YWdnZXItdWkgLnJvdGF0ZS0xMzUtbXt0cmFuc2Zvcm06cm90YXRlKDEzNWRlZyl9LnN3YWdnZXItdWkgLnJvdGF0ZS0xODAtbXt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LnN3YWdnZXItdWkgLnJvdGF0ZS0yMjUtbXt0cmFuc2Zvcm06cm90YXRlKDIyNWRlZyl9LnN3YWdnZXItdWkgLnJvdGF0ZS0yNzAtbXt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9LnN3YWdnZXItdWkgLnJvdGF0ZS0zMTUtbXt0cmFuc2Zvcm06cm90YXRlKDMxNWRlZyl9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLnJvdGF0ZS00NS1se3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5zd2FnZ2VyLXVpIC5yb3RhdGUtOTAtbHt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKX0uc3dhZ2dlci11aSAucm90YXRlLTEzNS1se3RyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKX0uc3dhZ2dlci11aSAucm90YXRlLTE4MC1se3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0uc3dhZ2dlci11aSAucm90YXRlLTIyNS1se3RyYW5zZm9ybTpyb3RhdGUoMjI1ZGVnKX0uc3dhZ2dlci11aSAucm90YXRlLTI3MC1se3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKX0uc3dhZ2dlci11aSAucm90YXRlLTMxNS1se3RyYW5zZm9ybTpyb3RhdGUoMzE1ZGVnKX19LnN3YWdnZXItdWkgLmJsYWNrLTkwe2NvbG9yOnJnYmEoMCwwLDAsLjkpfS5zd2FnZ2VyLXVpIC5ibGFjay04MHtjb2xvcjpyZ2JhKDAsMCwwLC44KX0uc3dhZ2dlci11aSAuYmxhY2stNzB7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LnN3YWdnZXItdWkgLmJsYWNrLTYwe2NvbG9yOnJnYmEoMCwwLDAsLjYpfS5zd2FnZ2VyLXVpIC5ibGFjay01MHtjb2xvcjpyZ2JhKDAsMCwwLC41KX0uc3dhZ2dlci11aSAuYmxhY2stNDB7Y29sb3I6cmdiYSgwLDAsMCwuNCl9LnN3YWdnZXItdWkgLmJsYWNrLTMwe2NvbG9yOnJnYmEoMCwwLDAsLjMpfS5zd2FnZ2VyLXVpIC5ibGFjay0yMHtjb2xvcjpyZ2JhKDAsMCwwLC4yKX0uc3dhZ2dlci11aSAuYmxhY2stMTB7Y29sb3I6cmdiYSgwLDAsMCwuMSl9LnN3YWdnZXItdWkgLmJsYWNrLTA1e2NvbG9yOnJnYmEoMCwwLDAsLjA1KX0uc3dhZ2dlci11aSAud2hpdGUtOTB7Y29sb3I6aHNsYSgwLDAlLDEwMCUsLjkpfS5zd2FnZ2VyLXVpIC53aGl0ZS04MHtjb2xvcjpoc2xhKDAsMCUsMTAwJSwuOCl9LnN3YWdnZXItdWkgLndoaXRlLTcwe2NvbG9yOmhzbGEoMCwwJSwxMDAlLC43KX0uc3dhZ2dlci11aSAud2hpdGUtNjB7Y29sb3I6aHNsYSgwLDAlLDEwMCUsLjYpfS5zd2FnZ2VyLXVpIC53aGl0ZS01MHtjb2xvcjpoc2xhKDAsMCUsMTAwJSwuNSl9LnN3YWdnZXItdWkgLndoaXRlLTQwe2NvbG9yOmhzbGEoMCwwJSwxMDAlLC40KX0uc3dhZ2dlci11aSAud2hpdGUtMzB7Y29sb3I6aHNsYSgwLDAlLDEwMCUsLjMpfS5zd2FnZ2VyLXVpIC53aGl0ZS0yMHtjb2xvcjpoc2xhKDAsMCUsMTAwJSwuMil9LnN3YWdnZXItdWkgLndoaXRlLTEwe2NvbG9yOmhzbGEoMCwwJSwxMDAlLC4xKX0uc3dhZ2dlci11aSAuYmxhY2t7Y29sb3I6IzAwMH0uc3dhZ2dlci11aSAubmVhci1ibGFja3tjb2xvcjojMTExfS5zd2FnZ2VyLXVpIC5kYXJrLWdyYXl7Y29sb3I6IzMzM30uc3dhZ2dlci11aSAubWlkLWdyYXl7Y29sb3I6IzU1NX0uc3dhZ2dlci11aSAuZ3JheXtjb2xvcjojNzc3fS5zd2FnZ2VyLXVpIC5zaWx2ZXJ7Y29sb3I6Izk5OX0uc3dhZ2dlci11aSAubGlnaHQtc2lsdmVye2NvbG9yOiNhYWF9LnN3YWdnZXItdWkgLm1vb24tZ3JheXtjb2xvcjojY2NjfS5zd2FnZ2VyLXVpIC5saWdodC1ncmF5e2NvbG9yOiNlZWV9LnN3YWdnZXItdWkgLm5lYXItd2hpdGV7Y29sb3I6I2Y0ZjRmNH0uc3dhZ2dlci11aSAud2hpdGV7Y29sb3I6I2ZmZn0uc3dhZ2dlci11aSAuZGFyay1yZWR7Y29sb3I6I2U3MDQwZn0uc3dhZ2dlci11aSAucmVke2NvbG9yOiNmZjQxMzZ9LnN3YWdnZXItdWkgLmxpZ2h0LXJlZHtjb2xvcjojZmY3MjVjfS5zd2FnZ2VyLXVpIC5vcmFuZ2V7Y29sb3I6I2ZmNjMwMH0uc3dhZ2dlci11aSAuZ29sZHtjb2xvcjojZmZiNzAwfS5zd2FnZ2VyLXVpIC55ZWxsb3d7Y29sb3I6Z29sZH0uc3dhZ2dlci11aSAubGlnaHQteWVsbG93e2NvbG9yOiNmYmYxYTl9LnN3YWdnZXItdWkgLnB1cnBsZXtjb2xvcjojNWUyY2E1fS5zd2FnZ2VyLXVpIC5saWdodC1wdXJwbGV7Y29sb3I6I2E0NjNmMn0uc3dhZ2dlci11aSAuZGFyay1waW5re2NvbG9yOiNkNTAwOGZ9LnN3YWdnZXItdWkgLmhvdC1waW5re2NvbG9yOiNmZjQxYjR9LnN3YWdnZXItdWkgLnBpbmt7Y29sb3I6I2ZmODBjY30uc3dhZ2dlci11aSAubGlnaHQtcGlua3tjb2xvcjojZmZhM2Q3fS5zd2FnZ2VyLXVpIC5kYXJrLWdyZWVue2NvbG9yOiMxMzc3NTJ9LnN3YWdnZXItdWkgLmdyZWVue2NvbG9yOiMxOWE5NzR9LnN3YWdnZXItdWkgLmxpZ2h0LWdyZWVue2NvbG9yOiM5ZWViY2Z9LnN3YWdnZXItdWkgLm5hdnl7Y29sb3I6IzAwMWI0NH0uc3dhZ2dlci11aSAuZGFyay1ibHVle2NvbG9yOiMwMDQ0OWV9LnN3YWdnZXItdWkgLmJsdWV7Y29sb3I6IzM1N2VkZH0uc3dhZ2dlci11aSAubGlnaHQtYmx1ZXtjb2xvcjojOTZjY2ZmfS5zd2FnZ2VyLXVpIC5saWdodGVzdC1ibHVle2NvbG9yOiNjZGVjZmZ9LnN3YWdnZXItdWkgLndhc2hlZC1ibHVle2NvbG9yOiNmNmZmZmV9LnN3YWdnZXItdWkgLndhc2hlZC1ncmVlbntjb2xvcjojZThmZGY1fS5zd2FnZ2VyLXVpIC53YXNoZWQteWVsbG93e2NvbG9yOiNmZmZjZWJ9LnN3YWdnZXItdWkgLndhc2hlZC1yZWR7Y29sb3I6I2ZmZGZkZn0uc3dhZ2dlci11aSAuY29sb3ItaW5oZXJpdHtjb2xvcjppbmhlcml0fS5zd2FnZ2VyLXVpIC5iZy1ibGFjay05MHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjkpfS5zd2FnZ2VyLXVpIC5iZy1ibGFjay04MHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjgpfS5zd2FnZ2VyLXVpIC5iZy1ibGFjay03MHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpfS5zd2FnZ2VyLXVpIC5iZy1ibGFjay02MHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjYpfS5zd2FnZ2VyLXVpIC5iZy1ibGFjay01MHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjUpfS5zd2FnZ2VyLXVpIC5iZy1ibGFjay00MHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjQpfS5zd2FnZ2VyLXVpIC5iZy1ibGFjay0zMHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjMpfS5zd2FnZ2VyLXVpIC5iZy1ibGFjay0yMHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjIpfS5zd2FnZ2VyLXVpIC5iZy1ibGFjay0xMHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEpfS5zd2FnZ2VyLXVpIC5iZy1ibGFjay0wNXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjA1KX0uc3dhZ2dlci11aSAuYmctd2hpdGUtOTB7YmFja2dyb3VuZC1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuOSl9LnN3YWdnZXItdWkgLmJnLXdoaXRlLTgwe2JhY2tncm91bmQtY29sb3I6aHNsYSgwLDAlLDEwMCUsLjgpfS5zd2FnZ2VyLXVpIC5iZy13aGl0ZS03MHtiYWNrZ3JvdW5kLWNvbG9yOmhzbGEoMCwwJSwxMDAlLC43KX0uc3dhZ2dlci11aSAuYmctd2hpdGUtNjB7YmFja2dyb3VuZC1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuNil9LnN3YWdnZXItdWkgLmJnLXdoaXRlLTUwe2JhY2tncm91bmQtY29sb3I6aHNsYSgwLDAlLDEwMCUsLjUpfS5zd2FnZ2VyLXVpIC5iZy13aGl0ZS00MHtiYWNrZ3JvdW5kLWNvbG9yOmhzbGEoMCwwJSwxMDAlLC40KX0uc3dhZ2dlci11aSAuYmctd2hpdGUtMzB7YmFja2dyb3VuZC1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuMyl9LnN3YWdnZXItdWkgLmJnLXdoaXRlLTIwe2JhY2tncm91bmQtY29sb3I6aHNsYSgwLDAlLDEwMCUsLjIpfS5zd2FnZ2VyLXVpIC5iZy13aGl0ZS0xMHtiYWNrZ3JvdW5kLWNvbG9yOmhzbGEoMCwwJSwxMDAlLC4xKX0uc3dhZ2dlci11aSAuYmctYmxhY2t7YmFja2dyb3VuZC1jb2xvcjojMDAwfS5zd2FnZ2VyLXVpIC5iZy1uZWFyLWJsYWNre2JhY2tncm91bmQtY29sb3I6IzExMX0uc3dhZ2dlci11aSAuYmctZGFyay1ncmF5e2JhY2tncm91bmQtY29sb3I6IzMzM30uc3dhZ2dlci11aSAuYmctbWlkLWdyYXl7YmFja2dyb3VuZC1jb2xvcjojNTU1fS5zd2FnZ2VyLXVpIC5iZy1ncmF5e2JhY2tncm91bmQtY29sb3I6Izc3N30uc3dhZ2dlci11aSAuYmctc2lsdmVye2JhY2tncm91bmQtY29sb3I6Izk5OX0uc3dhZ2dlci11aSAuYmctbGlnaHQtc2lsdmVye2JhY2tncm91bmQtY29sb3I6I2FhYX0uc3dhZ2dlci11aSAuYmctbW9vbi1ncmF5e2JhY2tncm91bmQtY29sb3I6I2NjY30uc3dhZ2dlci11aSAuYmctbGlnaHQtZ3JheXtiYWNrZ3JvdW5kLWNvbG9yOiNlZWV9LnN3YWdnZXItdWkgLmJnLW5lYXItd2hpdGV7YmFja2dyb3VuZC1jb2xvcjojZjRmNGY0fS5zd2FnZ2VyLXVpIC5iZy13aGl0ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LnN3YWdnZXItdWkgLmJnLXRyYW5zcGFyZW50e2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LnN3YWdnZXItdWkgLmJnLWRhcmstcmVke2JhY2tncm91bmQtY29sb3I6I2U3MDQwZn0uc3dhZ2dlci11aSAuYmctcmVke2JhY2tncm91bmQtY29sb3I6I2ZmNDEzNn0uc3dhZ2dlci11aSAuYmctbGlnaHQtcmVke2JhY2tncm91bmQtY29sb3I6I2ZmNzI1Y30uc3dhZ2dlci11aSAuYmctb3Jhbmdle2JhY2tncm91bmQtY29sb3I6I2ZmNjMwMH0uc3dhZ2dlci11aSAuYmctZ29sZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmI3MDB9LnN3YWdnZXItdWkgLmJnLXllbGxvd3tiYWNrZ3JvdW5kLWNvbG9yOmdvbGR9LnN3YWdnZXItdWkgLmJnLWxpZ2h0LXllbGxvd3tiYWNrZ3JvdW5kLWNvbG9yOiNmYmYxYTl9LnN3YWdnZXItdWkgLmJnLXB1cnBsZXtiYWNrZ3JvdW5kLWNvbG9yOiM1ZTJjYTV9LnN3YWdnZXItdWkgLmJnLWxpZ2h0LXB1cnBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNhNDYzZjJ9LnN3YWdnZXItdWkgLmJnLWRhcmstcGlua3tiYWNrZ3JvdW5kLWNvbG9yOiNkNTAwOGZ9LnN3YWdnZXItdWkgLmJnLWhvdC1waW5re2JhY2tncm91bmQtY29sb3I6I2ZmNDFiNH0uc3dhZ2dlci11aSAuYmctcGlua3tiYWNrZ3JvdW5kLWNvbG9yOiNmZjgwY2N9LnN3YWdnZXItdWkgLmJnLWxpZ2h0LXBpbmt7YmFja2dyb3VuZC1jb2xvcjojZmZhM2Q3fS5zd2FnZ2VyLXVpIC5iZy1kYXJrLWdyZWVue2JhY2tncm91bmQtY29sb3I6IzEzNzc1Mn0uc3dhZ2dlci11aSAuYmctZ3JlZW57YmFja2dyb3VuZC1jb2xvcjojMTlhOTc0fS5zd2FnZ2VyLXVpIC5iZy1saWdodC1ncmVlbntiYWNrZ3JvdW5kLWNvbG9yOiM5ZWViY2Z9LnN3YWdnZXItdWkgLmJnLW5hdnl7YmFja2dyb3VuZC1jb2xvcjojMDAxYjQ0fS5zd2FnZ2VyLXVpIC5iZy1kYXJrLWJsdWV7YmFja2dyb3VuZC1jb2xvcjojMDA0NDllfS5zd2FnZ2VyLXVpIC5iZy1ibHVle2JhY2tncm91bmQtY29sb3I6IzM1N2VkZH0uc3dhZ2dlci11aSAuYmctbGlnaHQtYmx1ZXtiYWNrZ3JvdW5kLWNvbG9yOiM5NmNjZmZ9LnN3YWdnZXItdWkgLmJnLWxpZ2h0ZXN0LWJsdWV7YmFja2dyb3VuZC1jb2xvcjojY2RlY2ZmfS5zd2FnZ2VyLXVpIC5iZy13YXNoZWQtYmx1ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmNmZmZmV9LnN3YWdnZXItdWkgLmJnLXdhc2hlZC1ncmVlbntiYWNrZ3JvdW5kLWNvbG9yOiNlOGZkZjV9LnN3YWdnZXItdWkgLmJnLXdhc2hlZC15ZWxsb3d7YmFja2dyb3VuZC1jb2xvcjojZmZmY2VifS5zd2FnZ2VyLXVpIC5iZy13YXNoZWQtcmVke2JhY2tncm91bmQtY29sb3I6I2ZmZGZkZn0uc3dhZ2dlci11aSAuYmctaW5oZXJpdHtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXR9LnN3YWdnZXItdWkgLmhvdmVyLWJsYWNrOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1ibGFjazpob3Zlcntjb2xvcjojMDAwfS5zd2FnZ2VyLXVpIC5ob3Zlci1uZWFyLWJsYWNrOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1uZWFyLWJsYWNrOmhvdmVye2NvbG9yOiMxMTF9LnN3YWdnZXItdWkgLmhvdmVyLWRhcmstZ3JheTpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItZGFyay1ncmF5OmhvdmVye2NvbG9yOiMzMzN9LnN3YWdnZXItdWkgLmhvdmVyLW1pZC1ncmF5OmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1taWQtZ3JheTpob3Zlcntjb2xvcjojNTU1fS5zd2FnZ2VyLXVpIC5ob3Zlci1ncmF5OmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1ncmF5OmhvdmVye2NvbG9yOiM3Nzd9LnN3YWdnZXItdWkgLmhvdmVyLXNpbHZlcjpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItc2lsdmVyOmhvdmVye2NvbG9yOiM5OTl9LnN3YWdnZXItdWkgLmhvdmVyLWxpZ2h0LXNpbHZlcjpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItbGlnaHQtc2lsdmVyOmhvdmVye2NvbG9yOiNhYWF9LnN3YWdnZXItdWkgLmhvdmVyLW1vb24tZ3JheTpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItbW9vbi1ncmF5OmhvdmVye2NvbG9yOiNjY2N9LnN3YWdnZXItdWkgLmhvdmVyLWxpZ2h0LWdyYXk6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWxpZ2h0LWdyYXk6aG92ZXJ7Y29sb3I6I2VlZX0uc3dhZ2dlci11aSAuaG92ZXItbmVhci13aGl0ZTpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItbmVhci13aGl0ZTpob3Zlcntjb2xvcjojZjRmNGY0fS5zd2FnZ2VyLXVpIC5ob3Zlci13aGl0ZTpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItd2hpdGU6aG92ZXJ7Y29sb3I6I2ZmZn0uc3dhZ2dlci11aSAuaG92ZXItYmxhY2stOTA6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJsYWNrLTkwOmhvdmVye2NvbG9yOnJnYmEoMCwwLDAsLjkpfS5zd2FnZ2VyLXVpIC5ob3Zlci1ibGFjay04MDpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmxhY2stODA6aG92ZXJ7Y29sb3I6cmdiYSgwLDAsMCwuOCl9LnN3YWdnZXItdWkgLmhvdmVyLWJsYWNrLTcwOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1ibGFjay03MDpob3Zlcntjb2xvcjpyZ2JhKDAsMCwwLC43KX0uc3dhZ2dlci11aSAuaG92ZXItYmxhY2stNjA6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJsYWNrLTYwOmhvdmVye2NvbG9yOnJnYmEoMCwwLDAsLjYpfS5zd2FnZ2VyLXVpIC5ob3Zlci1ibGFjay01MDpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmxhY2stNTA6aG92ZXJ7Y29sb3I6cmdiYSgwLDAsMCwuNSl9LnN3YWdnZXItdWkgLmhvdmVyLWJsYWNrLTQwOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1ibGFjay00MDpob3Zlcntjb2xvcjpyZ2JhKDAsMCwwLC40KX0uc3dhZ2dlci11aSAuaG92ZXItYmxhY2stMzA6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJsYWNrLTMwOmhvdmVye2NvbG9yOnJnYmEoMCwwLDAsLjMpfS5zd2FnZ2VyLXVpIC5ob3Zlci1ibGFjay0yMDpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmxhY2stMjA6aG92ZXJ7Y29sb3I6cmdiYSgwLDAsMCwuMil9LnN3YWdnZXItdWkgLmhvdmVyLWJsYWNrLTEwOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1ibGFjay0xMDpob3Zlcntjb2xvcjpyZ2JhKDAsMCwwLC4xKX0uc3dhZ2dlci11aSAuaG92ZXItd2hpdGUtOTA6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLXdoaXRlLTkwOmhvdmVye2NvbG9yOmhzbGEoMCwwJSwxMDAlLC45KX0uc3dhZ2dlci11aSAuaG92ZXItd2hpdGUtODA6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLXdoaXRlLTgwOmhvdmVye2NvbG9yOmhzbGEoMCwwJSwxMDAlLC44KX0uc3dhZ2dlci11aSAuaG92ZXItd2hpdGUtNzA6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLXdoaXRlLTcwOmhvdmVye2NvbG9yOmhzbGEoMCwwJSwxMDAlLC43KX0uc3dhZ2dlci11aSAuaG92ZXItd2hpdGUtNjA6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLXdoaXRlLTYwOmhvdmVye2NvbG9yOmhzbGEoMCwwJSwxMDAlLC42KX0uc3dhZ2dlci11aSAuaG92ZXItd2hpdGUtNTA6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLXdoaXRlLTUwOmhvdmVye2NvbG9yOmhzbGEoMCwwJSwxMDAlLC41KX0uc3dhZ2dlci11aSAuaG92ZXItd2hpdGUtNDA6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLXdoaXRlLTQwOmhvdmVye2NvbG9yOmhzbGEoMCwwJSwxMDAlLC40KX0uc3dhZ2dlci11aSAuaG92ZXItd2hpdGUtMzA6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLXdoaXRlLTMwOmhvdmVye2NvbG9yOmhzbGEoMCwwJSwxMDAlLC4zKX0uc3dhZ2dlci11aSAuaG92ZXItd2hpdGUtMjA6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLXdoaXRlLTIwOmhvdmVye2NvbG9yOmhzbGEoMCwwJSwxMDAlLC4yKX0uc3dhZ2dlci11aSAuaG92ZXItd2hpdGUtMTA6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLXdoaXRlLTEwOmhvdmVye2NvbG9yOmhzbGEoMCwwJSwxMDAlLC4xKX0uc3dhZ2dlci11aSAuaG92ZXItaW5oZXJpdDpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItaW5oZXJpdDpob3Zlcntjb2xvcjppbmhlcml0fS5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1ibGFjazpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmctYmxhY2s6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwfS5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1uZWFyLWJsYWNrOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1uZWFyLWJsYWNrOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzExMX0uc3dhZ2dlci11aSAuaG92ZXItYmctZGFyay1ncmF5OmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1kYXJrLWdyYXk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMzMzfS5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1taWQtZ3JheTpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmctbWlkLWdyYXk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojNTU1fS5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1ncmF5OmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1ncmF5OmhvdmVye2JhY2tncm91bmQtY29sb3I6Izc3N30uc3dhZ2dlci11aSAuaG92ZXItYmctc2lsdmVyOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1zaWx2ZXI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojOTk5fS5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1saWdodC1zaWx2ZXI6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJnLWxpZ2h0LXNpbHZlcjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNhYWF9LnN3YWdnZXItdWkgLmhvdmVyLWJnLW1vb24tZ3JheTpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmctbW9vbi1ncmF5OmhvdmVye2JhY2tncm91bmQtY29sb3I6I2NjY30uc3dhZ2dlci11aSAuaG92ZXItYmctbGlnaHQtZ3JheTpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmctbGlnaHQtZ3JheTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlZWV9LnN3YWdnZXItdWkgLmhvdmVyLWJnLW5lYXItd2hpdGU6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJnLW5lYXItd2hpdGU6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjRmNGY0fS5zd2FnZ2VyLXVpIC5ob3Zlci1iZy13aGl0ZTpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmctd2hpdGU6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5zd2FnZ2VyLXVpIC5ob3Zlci1iZy10cmFuc3BhcmVudDpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmctdHJhbnNwYXJlbnQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uc3dhZ2dlci11aSAuaG92ZXItYmctYmxhY2stOTA6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJnLWJsYWNrLTkwOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuOSl9LnN3YWdnZXItdWkgLmhvdmVyLWJnLWJsYWNrLTgwOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1ibGFjay04MDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjgpfS5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1ibGFjay03MDpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmctYmxhY2stNzA6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KX0uc3dhZ2dlci11aSAuaG92ZXItYmctYmxhY2stNjA6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJnLWJsYWNrLTYwOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNil9LnN3YWdnZXItdWkgLmhvdmVyLWJnLWJsYWNrLTUwOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1ibGFjay01MDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjUpfS5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1ibGFjay00MDpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmctYmxhY2stNDA6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC40KX0uc3dhZ2dlci11aSAuaG92ZXItYmctYmxhY2stMzA6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJnLWJsYWNrLTMwOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMyl9LnN3YWdnZXItdWkgLmhvdmVyLWJnLWJsYWNrLTIwOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1ibGFjay0yMDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjIpfS5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1ibGFjay0xMDpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmctYmxhY2stMTA6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xKX0uc3dhZ2dlci11aSAuaG92ZXItYmctd2hpdGUtOTA6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJnLXdoaXRlLTkwOmhvdmVye2JhY2tncm91bmQtY29sb3I6aHNsYSgwLDAlLDEwMCUsLjkpfS5zd2FnZ2VyLXVpIC5ob3Zlci1iZy13aGl0ZS04MDpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmctd2hpdGUtODA6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuOCl9LnN3YWdnZXItdWkgLmhvdmVyLWJnLXdoaXRlLTcwOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1iZy13aGl0ZS03MDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOmhzbGEoMCwwJSwxMDAlLC43KX0uc3dhZ2dlci11aSAuaG92ZXItYmctd2hpdGUtNjA6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJnLXdoaXRlLTYwOmhvdmVye2JhY2tncm91bmQtY29sb3I6aHNsYSgwLDAlLDEwMCUsLjYpfS5zd2FnZ2VyLXVpIC5ob3Zlci1iZy13aGl0ZS01MDpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmctd2hpdGUtNTA6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuNSl9LnN3YWdnZXItdWkgLmhvdmVyLWJnLXdoaXRlLTQwOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1iZy13aGl0ZS00MDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOmhzbGEoMCwwJSwxMDAlLC40KX0uc3dhZ2dlci11aSAuaG92ZXItYmctd2hpdGUtMzA6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJnLXdoaXRlLTMwOmhvdmVye2JhY2tncm91bmQtY29sb3I6aHNsYSgwLDAlLDEwMCUsLjMpfS5zd2FnZ2VyLXVpIC5ob3Zlci1iZy13aGl0ZS0yMDpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmctd2hpdGUtMjA6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuMil9LnN3YWdnZXItdWkgLmhvdmVyLWJnLXdoaXRlLTEwOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1iZy13aGl0ZS0xMDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOmhzbGEoMCwwJSwxMDAlLC4xKX0uc3dhZ2dlci11aSAuaG92ZXItZGFyay1yZWQ6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWRhcmstcmVkOmhvdmVye2NvbG9yOiNlNzA0MGZ9LnN3YWdnZXItdWkgLmhvdmVyLXJlZDpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItcmVkOmhvdmVye2NvbG9yOiNmZjQxMzZ9LnN3YWdnZXItdWkgLmhvdmVyLWxpZ2h0LXJlZDpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItbGlnaHQtcmVkOmhvdmVye2NvbG9yOiNmZjcyNWN9LnN3YWdnZXItdWkgLmhvdmVyLW9yYW5nZTpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItb3JhbmdlOmhvdmVye2NvbG9yOiNmZjYzMDB9LnN3YWdnZXItdWkgLmhvdmVyLWdvbGQ6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWdvbGQ6aG92ZXJ7Y29sb3I6I2ZmYjcwMH0uc3dhZ2dlci11aSAuaG92ZXIteWVsbG93OmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci15ZWxsb3c6aG92ZXJ7Y29sb3I6Z29sZH0uc3dhZ2dlci11aSAuaG92ZXItbGlnaHQteWVsbG93OmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1saWdodC15ZWxsb3c6aG92ZXJ7Y29sb3I6I2ZiZjFhOX0uc3dhZ2dlci11aSAuaG92ZXItcHVycGxlOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1wdXJwbGU6aG92ZXJ7Y29sb3I6IzVlMmNhNX0uc3dhZ2dlci11aSAuaG92ZXItbGlnaHQtcHVycGxlOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1saWdodC1wdXJwbGU6aG92ZXJ7Y29sb3I6I2E0NjNmMn0uc3dhZ2dlci11aSAuaG92ZXItZGFyay1waW5rOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1kYXJrLXBpbms6aG92ZXJ7Y29sb3I6I2Q1MDA4Zn0uc3dhZ2dlci11aSAuaG92ZXItaG90LXBpbms6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWhvdC1waW5rOmhvdmVye2NvbG9yOiNmZjQxYjR9LnN3YWdnZXItdWkgLmhvdmVyLXBpbms6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLXBpbms6aG92ZXJ7Y29sb3I6I2ZmODBjY30uc3dhZ2dlci11aSAuaG92ZXItbGlnaHQtcGluazpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItbGlnaHQtcGluazpob3Zlcntjb2xvcjojZmZhM2Q3fS5zd2FnZ2VyLXVpIC5ob3Zlci1kYXJrLWdyZWVuOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1kYXJrLWdyZWVuOmhvdmVye2NvbG9yOiMxMzc3NTJ9LnN3YWdnZXItdWkgLmhvdmVyLWdyZWVuOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1ncmVlbjpob3Zlcntjb2xvcjojMTlhOTc0fS5zd2FnZ2VyLXVpIC5ob3Zlci1saWdodC1ncmVlbjpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItbGlnaHQtZ3JlZW46aG92ZXJ7Y29sb3I6IzllZWJjZn0uc3dhZ2dlci11aSAuaG92ZXItbmF2eTpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItbmF2eTpob3Zlcntjb2xvcjojMDAxYjQ0fS5zd2FnZ2VyLXVpIC5ob3Zlci1kYXJrLWJsdWU6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWRhcmstYmx1ZTpob3Zlcntjb2xvcjojMDA0NDllfS5zd2FnZ2VyLXVpIC5ob3Zlci1ibHVlOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1ibHVlOmhvdmVye2NvbG9yOiMzNTdlZGR9LnN3YWdnZXItdWkgLmhvdmVyLWxpZ2h0LWJsdWU6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWxpZ2h0LWJsdWU6aG92ZXJ7Y29sb3I6Izk2Y2NmZn0uc3dhZ2dlci11aSAuaG92ZXItbGlnaHRlc3QtYmx1ZTpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItbGlnaHRlc3QtYmx1ZTpob3Zlcntjb2xvcjojY2RlY2ZmfS5zd2FnZ2VyLXVpIC5ob3Zlci13YXNoZWQtYmx1ZTpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItd2FzaGVkLWJsdWU6aG92ZXJ7Y29sb3I6I2Y2ZmZmZX0uc3dhZ2dlci11aSAuaG92ZXItd2FzaGVkLWdyZWVuOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci13YXNoZWQtZ3JlZW46aG92ZXJ7Y29sb3I6I2U4ZmRmNX0uc3dhZ2dlci11aSAuaG92ZXItd2FzaGVkLXllbGxvdzpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItd2FzaGVkLXllbGxvdzpob3Zlcntjb2xvcjojZmZmY2VifS5zd2FnZ2VyLXVpIC5ob3Zlci13YXNoZWQtcmVkOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci13YXNoZWQtcmVkOmhvdmVye2NvbG9yOiNmZmRmZGZ9LnN3YWdnZXItdWkgLmhvdmVyLWJnLWRhcmstcmVkOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1kYXJrLXJlZDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlNzA0MGZ9LnN3YWdnZXItdWkgLmhvdmVyLWJnLXJlZDpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmctcmVkOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2ZmNDEzNn0uc3dhZ2dlci11aSAuaG92ZXItYmctbGlnaHQtcmVkOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1saWdodC1yZWQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmY3MjVjfS5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1vcmFuZ2U6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJnLW9yYW5nZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZjYzMDB9LnN3YWdnZXItdWkgLmhvdmVyLWJnLWdvbGQ6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJnLWdvbGQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZiNzAwfS5zd2FnZ2VyLXVpIC5ob3Zlci1iZy15ZWxsb3c6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJnLXllbGxvdzpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOmdvbGR9LnN3YWdnZXItdWkgLmhvdmVyLWJnLWxpZ2h0LXllbGxvdzpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmctbGlnaHQteWVsbG93OmhvdmVye2JhY2tncm91bmQtY29sb3I6I2ZiZjFhOX0uc3dhZ2dlci11aSAuaG92ZXItYmctcHVycGxlOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1wdXJwbGU6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojNWUyY2E1fS5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1saWdodC1wdXJwbGU6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJnLWxpZ2h0LXB1cnBsZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNhNDYzZjJ9LnN3YWdnZXItdWkgLmhvdmVyLWJnLWRhcmstcGluazpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmctZGFyay1waW5rOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2Q1MDA4Zn0uc3dhZ2dlci11aSAuaG92ZXItYmctaG90LXBpbms6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJnLWhvdC1waW5rOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2ZmNDFiNH0uc3dhZ2dlci11aSAuaG92ZXItYmctcGluazpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmctcGluazpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZjgwY2N9LnN3YWdnZXItdWkgLmhvdmVyLWJnLWxpZ2h0LXBpbms6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJnLWxpZ2h0LXBpbms6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZhM2Q3fS5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1kYXJrLWdyZWVuOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1kYXJrLWdyZWVuOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzEzNzc1Mn0uc3dhZ2dlci11aSAuaG92ZXItYmctZ3JlZW46Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJnLWdyZWVuOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzE5YTk3NH0uc3dhZ2dlci11aSAuaG92ZXItYmctbGlnaHQtZ3JlZW46Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJnLWxpZ2h0LWdyZWVuOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzllZWJjZn0uc3dhZ2dlci11aSAuaG92ZXItYmctbmF2eTpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmctbmF2eTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDFiNDR9LnN3YWdnZXItdWkgLmhvdmVyLWJnLWRhcmstYmx1ZTpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmctZGFyay1ibHVlOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzAwNDQ5ZX0uc3dhZ2dlci11aSAuaG92ZXItYmctYmx1ZTpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmctYmx1ZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMzNTdlZGR9LnN3YWdnZXItdWkgLmhvdmVyLWJnLWxpZ2h0LWJsdWU6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJnLWxpZ2h0LWJsdWU6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojOTZjY2ZmfS5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1saWdodGVzdC1ibHVlOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1iZy1saWdodGVzdC1ibHVlOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2NkZWNmZn0uc3dhZ2dlci11aSAuaG92ZXItYmctd2FzaGVkLWJsdWU6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJnLXdhc2hlZC1ibHVlOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2Y2ZmZmZX0uc3dhZ2dlci11aSAuaG92ZXItYmctd2FzaGVkLWdyZWVuOmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1iZy13YXNoZWQtZ3JlZW46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZThmZGY1fS5zd2FnZ2VyLXVpIC5ob3Zlci1iZy13YXNoZWQteWVsbG93OmZvY3VzLC5zd2FnZ2VyLXVpIC5ob3Zlci1iZy13YXNoZWQteWVsbG93OmhvdmVye2JhY2tncm91bmQtY29sb3I6I2ZmZmNlYn0uc3dhZ2dlci11aSAuaG92ZXItYmctd2FzaGVkLXJlZDpmb2N1cywuc3dhZ2dlci11aSAuaG92ZXItYmctd2FzaGVkLXJlZDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmRmZGZ9LnN3YWdnZXItdWkgLmhvdmVyLWJnLWluaGVyaXQ6Zm9jdXMsLnN3YWdnZXItdWkgLmhvdmVyLWJnLWluaGVyaXQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjppbmhlcml0fS5zd2FnZ2VyLXVpIC5wYTB7cGFkZGluZzowfS5zd2FnZ2VyLXVpIC5wYTF7cGFkZGluZzouMjVyZW19LnN3YWdnZXItdWkgLnBhMntwYWRkaW5nOi41cmVtfS5zd2FnZ2VyLXVpIC5wYTN7cGFkZGluZzoxcmVtfS5zd2FnZ2VyLXVpIC5wYTR7cGFkZGluZzoycmVtfS5zd2FnZ2VyLXVpIC5wYTV7cGFkZGluZzo0cmVtfS5zd2FnZ2VyLXVpIC5wYTZ7cGFkZGluZzo4cmVtfS5zd2FnZ2VyLXVpIC5wYTd7cGFkZGluZzoxNnJlbX0uc3dhZ2dlci11aSAucGwwe3BhZGRpbmctbGVmdDowfS5zd2FnZ2VyLXVpIC5wbDF7cGFkZGluZy1sZWZ0Oi4yNXJlbX0uc3dhZ2dlci11aSAucGwye3BhZGRpbmctbGVmdDouNXJlbX0uc3dhZ2dlci11aSAucGwze3BhZGRpbmctbGVmdDoxcmVtfS5zd2FnZ2VyLXVpIC5wbDR7cGFkZGluZy1sZWZ0OjJyZW19LnN3YWdnZXItdWkgLnBsNXtwYWRkaW5nLWxlZnQ6NHJlbX0uc3dhZ2dlci11aSAucGw2e3BhZGRpbmctbGVmdDo4cmVtfS5zd2FnZ2VyLXVpIC5wbDd7cGFkZGluZy1sZWZ0OjE2cmVtfS5zd2FnZ2VyLXVpIC5wcjB7cGFkZGluZy1yaWdodDowfS5zd2FnZ2VyLXVpIC5wcjF7cGFkZGluZy1yaWdodDouMjVyZW19LnN3YWdnZXItdWkgLnByMntwYWRkaW5nLXJpZ2h0Oi41cmVtfS5zd2FnZ2VyLXVpIC5wcjN7cGFkZGluZy1yaWdodDoxcmVtfS5zd2FnZ2VyLXVpIC5wcjR7cGFkZGluZy1yaWdodDoycmVtfS5zd2FnZ2VyLXVpIC5wcjV7cGFkZGluZy1yaWdodDo0cmVtfS5zd2FnZ2VyLXVpIC5wcjZ7cGFkZGluZy1yaWdodDo4cmVtfS5zd2FnZ2VyLXVpIC5wcjd7cGFkZGluZy1yaWdodDoxNnJlbX0uc3dhZ2dlci11aSAucGIwe3BhZGRpbmctYm90dG9tOjB9LnN3YWdnZXItdWkgLnBiMXtwYWRkaW5nLWJvdHRvbTouMjVyZW19LnN3YWdnZXItdWkgLnBiMntwYWRkaW5nLWJvdHRvbTouNXJlbX0uc3dhZ2dlci11aSAucGIze3BhZGRpbmctYm90dG9tOjFyZW19LnN3YWdnZXItdWkgLnBiNHtwYWRkaW5nLWJvdHRvbToycmVtfS5zd2FnZ2VyLXVpIC5wYjV7cGFkZGluZy1ib3R0b206NHJlbX0uc3dhZ2dlci11aSAucGI2e3BhZGRpbmctYm90dG9tOjhyZW19LnN3YWdnZXItdWkgLnBiN3twYWRkaW5nLWJvdHRvbToxNnJlbX0uc3dhZ2dlci11aSAucHQwe3BhZGRpbmctdG9wOjB9LnN3YWdnZXItdWkgLnB0MXtwYWRkaW5nLXRvcDouMjVyZW19LnN3YWdnZXItdWkgLnB0MntwYWRkaW5nLXRvcDouNXJlbX0uc3dhZ2dlci11aSAucHQze3BhZGRpbmctdG9wOjFyZW19LnN3YWdnZXItdWkgLnB0NHtwYWRkaW5nLXRvcDoycmVtfS5zd2FnZ2VyLXVpIC5wdDV7cGFkZGluZy10b3A6NHJlbX0uc3dhZ2dlci11aSAucHQ2e3BhZGRpbmctdG9wOjhyZW19LnN3YWdnZXItdWkgLnB0N3twYWRkaW5nLXRvcDoxNnJlbX0uc3dhZ2dlci11aSAucHYwe3BhZGRpbmctYm90dG9tOjA7cGFkZGluZy10b3A6MH0uc3dhZ2dlci11aSAucHYxe3BhZGRpbmctYm90dG9tOi4yNXJlbTtwYWRkaW5nLXRvcDouMjVyZW19LnN3YWdnZXItdWkgLnB2MntwYWRkaW5nLWJvdHRvbTouNXJlbTtwYWRkaW5nLXRvcDouNXJlbX0uc3dhZ2dlci11aSAucHYze3BhZGRpbmctYm90dG9tOjFyZW07cGFkZGluZy10b3A6MXJlbX0uc3dhZ2dlci11aSAucHY0e3BhZGRpbmctYm90dG9tOjJyZW07cGFkZGluZy10b3A6MnJlbX0uc3dhZ2dlci11aSAucHY1e3BhZGRpbmctYm90dG9tOjRyZW07cGFkZGluZy10b3A6NHJlbX0uc3dhZ2dlci11aSAucHY2e3BhZGRpbmctYm90dG9tOjhyZW07cGFkZGluZy10b3A6OHJlbX0uc3dhZ2dlci11aSAucHY3e3BhZGRpbmctYm90dG9tOjE2cmVtO3BhZGRpbmctdG9wOjE2cmVtfS5zd2FnZ2VyLXVpIC5waDB7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfS5zd2FnZ2VyLXVpIC5waDF7cGFkZGluZy1sZWZ0Oi4yNXJlbTtwYWRkaW5nLXJpZ2h0Oi4yNXJlbX0uc3dhZ2dlci11aSAucGgye3BhZGRpbmctbGVmdDouNXJlbTtwYWRkaW5nLXJpZ2h0Oi41cmVtfS5zd2FnZ2VyLXVpIC5waDN7cGFkZGluZy1sZWZ0OjFyZW07cGFkZGluZy1yaWdodDoxcmVtfS5zd2FnZ2VyLXVpIC5waDR7cGFkZGluZy1sZWZ0OjJyZW07cGFkZGluZy1yaWdodDoycmVtfS5zd2FnZ2VyLXVpIC5waDV7cGFkZGluZy1sZWZ0OjRyZW07cGFkZGluZy1yaWdodDo0cmVtfS5zd2FnZ2VyLXVpIC5waDZ7cGFkZGluZy1sZWZ0OjhyZW07cGFkZGluZy1yaWdodDo4cmVtfS5zd2FnZ2VyLXVpIC5waDd7cGFkZGluZy1sZWZ0OjE2cmVtO3BhZGRpbmctcmlnaHQ6MTZyZW19LnN3YWdnZXItdWkgLm1hMHttYXJnaW46MH0uc3dhZ2dlci11aSAubWExe21hcmdpbjouMjVyZW19LnN3YWdnZXItdWkgLm1hMnttYXJnaW46LjVyZW19LnN3YWdnZXItdWkgLm1hM3ttYXJnaW46MXJlbX0uc3dhZ2dlci11aSAubWE0e21hcmdpbjoycmVtfS5zd2FnZ2VyLXVpIC5tYTV7bWFyZ2luOjRyZW19LnN3YWdnZXItdWkgLm1hNnttYXJnaW46OHJlbX0uc3dhZ2dlci11aSAubWE3e21hcmdpbjoxNnJlbX0uc3dhZ2dlci11aSAubWwwe21hcmdpbi1sZWZ0OjB9LnN3YWdnZXItdWkgLm1sMXttYXJnaW4tbGVmdDouMjVyZW19LnN3YWdnZXItdWkgLm1sMnttYXJnaW4tbGVmdDouNXJlbX0uc3dhZ2dlci11aSAubWwze21hcmdpbi1sZWZ0OjFyZW19LnN3YWdnZXItdWkgLm1sNHttYXJnaW4tbGVmdDoycmVtfS5zd2FnZ2VyLXVpIC5tbDV7bWFyZ2luLWxlZnQ6NHJlbX0uc3dhZ2dlci11aSAubWw2e21hcmdpbi1sZWZ0OjhyZW19LnN3YWdnZXItdWkgLm1sN3ttYXJnaW4tbGVmdDoxNnJlbX0uc3dhZ2dlci11aSAubXIwe21hcmdpbi1yaWdodDowfS5zd2FnZ2VyLXVpIC5tcjF7bWFyZ2luLXJpZ2h0Oi4yNXJlbX0uc3dhZ2dlci11aSAubXIye21hcmdpbi1yaWdodDouNXJlbX0uc3dhZ2dlci11aSAubXIze21hcmdpbi1yaWdodDoxcmVtfS5zd2FnZ2VyLXVpIC5tcjR7bWFyZ2luLXJpZ2h0OjJyZW19LnN3YWdnZXItdWkgLm1yNXttYXJnaW4tcmlnaHQ6NHJlbX0uc3dhZ2dlci11aSAubXI2e21hcmdpbi1yaWdodDo4cmVtfS5zd2FnZ2VyLXVpIC5tcjd7bWFyZ2luLXJpZ2h0OjE2cmVtfS5zd2FnZ2VyLXVpIC5tYjB7bWFyZ2luLWJvdHRvbTowfS5zd2FnZ2VyLXVpIC5tYjF7bWFyZ2luLWJvdHRvbTouMjVyZW19LnN3YWdnZXItdWkgLm1iMnttYXJnaW4tYm90dG9tOi41cmVtfS5zd2FnZ2VyLXVpIC5tYjN7bWFyZ2luLWJvdHRvbToxcmVtfS5zd2FnZ2VyLXVpIC5tYjR7bWFyZ2luLWJvdHRvbToycmVtfS5zd2FnZ2VyLXVpIC5tYjV7bWFyZ2luLWJvdHRvbTo0cmVtfS5zd2FnZ2VyLXVpIC5tYjZ7bWFyZ2luLWJvdHRvbTo4cmVtfS5zd2FnZ2VyLXVpIC5tYjd7bWFyZ2luLWJvdHRvbToxNnJlbX0uc3dhZ2dlci11aSAubXQwe21hcmdpbi10b3A6MH0uc3dhZ2dlci11aSAubXQxe21hcmdpbi10b3A6LjI1cmVtfS5zd2FnZ2VyLXVpIC5tdDJ7bWFyZ2luLXRvcDouNXJlbX0uc3dhZ2dlci11aSAubXQze21hcmdpbi10b3A6MXJlbX0uc3dhZ2dlci11aSAubXQ0e21hcmdpbi10b3A6MnJlbX0uc3dhZ2dlci11aSAubXQ1e21hcmdpbi10b3A6NHJlbX0uc3dhZ2dlci11aSAubXQ2e21hcmdpbi10b3A6OHJlbX0uc3dhZ2dlci11aSAubXQ3e21hcmdpbi10b3A6MTZyZW19LnN3YWdnZXItdWkgLm12MHttYXJnaW4tYm90dG9tOjA7bWFyZ2luLXRvcDowfS5zd2FnZ2VyLXVpIC5tdjF7bWFyZ2luLWJvdHRvbTouMjVyZW07bWFyZ2luLXRvcDouMjVyZW19LnN3YWdnZXItdWkgLm12MnttYXJnaW4tYm90dG9tOi41cmVtO21hcmdpbi10b3A6LjVyZW19LnN3YWdnZXItdWkgLm12M3ttYXJnaW4tYm90dG9tOjFyZW07bWFyZ2luLXRvcDoxcmVtfS5zd2FnZ2VyLXVpIC5tdjR7bWFyZ2luLWJvdHRvbToycmVtO21hcmdpbi10b3A6MnJlbX0uc3dhZ2dlci11aSAubXY1e21hcmdpbi1ib3R0b206NHJlbTttYXJnaW4tdG9wOjRyZW19LnN3YWdnZXItdWkgLm12NnttYXJnaW4tYm90dG9tOjhyZW07bWFyZ2luLXRvcDo4cmVtfS5zd2FnZ2VyLXVpIC5tdjd7bWFyZ2luLWJvdHRvbToxNnJlbTttYXJnaW4tdG9wOjE2cmVtfS5zd2FnZ2VyLXVpIC5taDB7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MH0uc3dhZ2dlci11aSAubWgxe21hcmdpbi1sZWZ0Oi4yNXJlbTttYXJnaW4tcmlnaHQ6LjI1cmVtfS5zd2FnZ2VyLXVpIC5taDJ7bWFyZ2luLWxlZnQ6LjVyZW07bWFyZ2luLXJpZ2h0Oi41cmVtfS5zd2FnZ2VyLXVpIC5taDN7bWFyZ2luLWxlZnQ6MXJlbTttYXJnaW4tcmlnaHQ6MXJlbX0uc3dhZ2dlci11aSAubWg0e21hcmdpbi1sZWZ0OjJyZW07bWFyZ2luLXJpZ2h0OjJyZW19LnN3YWdnZXItdWkgLm1oNXttYXJnaW4tbGVmdDo0cmVtO21hcmdpbi1yaWdodDo0cmVtfS5zd2FnZ2VyLXVpIC5taDZ7bWFyZ2luLWxlZnQ6OHJlbTttYXJnaW4tcmlnaHQ6OHJlbX0uc3dhZ2dlci11aSAubWg3e21hcmdpbi1sZWZ0OjE2cmVtO21hcmdpbi1yaWdodDoxNnJlbX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pey5zd2FnZ2VyLXVpIC5wYTAtbnN7cGFkZGluZzowfS5zd2FnZ2VyLXVpIC5wYTEtbnN7cGFkZGluZzouMjVyZW19LnN3YWdnZXItdWkgLnBhMi1uc3twYWRkaW5nOi41cmVtfS5zd2FnZ2VyLXVpIC5wYTMtbnN7cGFkZGluZzoxcmVtfS5zd2FnZ2VyLXVpIC5wYTQtbnN7cGFkZGluZzoycmVtfS5zd2FnZ2VyLXVpIC5wYTUtbnN7cGFkZGluZzo0cmVtfS5zd2FnZ2VyLXVpIC5wYTYtbnN7cGFkZGluZzo4cmVtfS5zd2FnZ2VyLXVpIC5wYTctbnN7cGFkZGluZzoxNnJlbX0uc3dhZ2dlci11aSAucGwwLW5ze3BhZGRpbmctbGVmdDowfS5zd2FnZ2VyLXVpIC5wbDEtbnN7cGFkZGluZy1sZWZ0Oi4yNXJlbX0uc3dhZ2dlci11aSAucGwyLW5ze3BhZGRpbmctbGVmdDouNXJlbX0uc3dhZ2dlci11aSAucGwzLW5ze3BhZGRpbmctbGVmdDoxcmVtfS5zd2FnZ2VyLXVpIC5wbDQtbnN7cGFkZGluZy1sZWZ0OjJyZW19LnN3YWdnZXItdWkgLnBsNS1uc3twYWRkaW5nLWxlZnQ6NHJlbX0uc3dhZ2dlci11aSAucGw2LW5ze3BhZGRpbmctbGVmdDo4cmVtfS5zd2FnZ2VyLXVpIC5wbDctbnN7cGFkZGluZy1sZWZ0OjE2cmVtfS5zd2FnZ2VyLXVpIC5wcjAtbnN7cGFkZGluZy1yaWdodDowfS5zd2FnZ2VyLXVpIC5wcjEtbnN7cGFkZGluZy1yaWdodDouMjVyZW19LnN3YWdnZXItdWkgLnByMi1uc3twYWRkaW5nLXJpZ2h0Oi41cmVtfS5zd2FnZ2VyLXVpIC5wcjMtbnN7cGFkZGluZy1yaWdodDoxcmVtfS5zd2FnZ2VyLXVpIC5wcjQtbnN7cGFkZGluZy1yaWdodDoycmVtfS5zd2FnZ2VyLXVpIC5wcjUtbnN7cGFkZGluZy1yaWdodDo0cmVtfS5zd2FnZ2VyLXVpIC5wcjYtbnN7cGFkZGluZy1yaWdodDo4cmVtfS5zd2FnZ2VyLXVpIC5wcjctbnN7cGFkZGluZy1yaWdodDoxNnJlbX0uc3dhZ2dlci11aSAucGIwLW5ze3BhZGRpbmctYm90dG9tOjB9LnN3YWdnZXItdWkgLnBiMS1uc3twYWRkaW5nLWJvdHRvbTouMjVyZW19LnN3YWdnZXItdWkgLnBiMi1uc3twYWRkaW5nLWJvdHRvbTouNXJlbX0uc3dhZ2dlci11aSAucGIzLW5ze3BhZGRpbmctYm90dG9tOjFyZW19LnN3YWdnZXItdWkgLnBiNC1uc3twYWRkaW5nLWJvdHRvbToycmVtfS5zd2FnZ2VyLXVpIC5wYjUtbnN7cGFkZGluZy1ib3R0b206NHJlbX0uc3dhZ2dlci11aSAucGI2LW5ze3BhZGRpbmctYm90dG9tOjhyZW19LnN3YWdnZXItdWkgLnBiNy1uc3twYWRkaW5nLWJvdHRvbToxNnJlbX0uc3dhZ2dlci11aSAucHQwLW5ze3BhZGRpbmctdG9wOjB9LnN3YWdnZXItdWkgLnB0MS1uc3twYWRkaW5nLXRvcDouMjVyZW19LnN3YWdnZXItdWkgLnB0Mi1uc3twYWRkaW5nLXRvcDouNXJlbX0uc3dhZ2dlci11aSAucHQzLW5ze3BhZGRpbmctdG9wOjFyZW19LnN3YWdnZXItdWkgLnB0NC1uc3twYWRkaW5nLXRvcDoycmVtfS5zd2FnZ2VyLXVpIC5wdDUtbnN7cGFkZGluZy10b3A6NHJlbX0uc3dhZ2dlci11aSAucHQ2LW5ze3BhZGRpbmctdG9wOjhyZW19LnN3YWdnZXItdWkgLnB0Ny1uc3twYWRkaW5nLXRvcDoxNnJlbX0uc3dhZ2dlci11aSAucHYwLW5ze3BhZGRpbmctYm90dG9tOjA7cGFkZGluZy10b3A6MH0uc3dhZ2dlci11aSAucHYxLW5ze3BhZGRpbmctYm90dG9tOi4yNXJlbTtwYWRkaW5nLXRvcDouMjVyZW19LnN3YWdnZXItdWkgLnB2Mi1uc3twYWRkaW5nLWJvdHRvbTouNXJlbTtwYWRkaW5nLXRvcDouNXJlbX0uc3dhZ2dlci11aSAucHYzLW5ze3BhZGRpbmctYm90dG9tOjFyZW07cGFkZGluZy10b3A6MXJlbX0uc3dhZ2dlci11aSAucHY0LW5ze3BhZGRpbmctYm90dG9tOjJyZW07cGFkZGluZy10b3A6MnJlbX0uc3dhZ2dlci11aSAucHY1LW5ze3BhZGRpbmctYm90dG9tOjRyZW07cGFkZGluZy10b3A6NHJlbX0uc3dhZ2dlci11aSAucHY2LW5ze3BhZGRpbmctYm90dG9tOjhyZW07cGFkZGluZy10b3A6OHJlbX0uc3dhZ2dlci11aSAucHY3LW5ze3BhZGRpbmctYm90dG9tOjE2cmVtO3BhZGRpbmctdG9wOjE2cmVtfS5zd2FnZ2VyLXVpIC5waDAtbnN7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfS5zd2FnZ2VyLXVpIC5waDEtbnN7cGFkZGluZy1sZWZ0Oi4yNXJlbTtwYWRkaW5nLXJpZ2h0Oi4yNXJlbX0uc3dhZ2dlci11aSAucGgyLW5ze3BhZGRpbmctbGVmdDouNXJlbTtwYWRkaW5nLXJpZ2h0Oi41cmVtfS5zd2FnZ2VyLXVpIC5waDMtbnN7cGFkZGluZy1sZWZ0OjFyZW07cGFkZGluZy1yaWdodDoxcmVtfS5zd2FnZ2VyLXVpIC5waDQtbnN7cGFkZGluZy1sZWZ0OjJyZW07cGFkZGluZy1yaWdodDoycmVtfS5zd2FnZ2VyLXVpIC5waDUtbnN7cGFkZGluZy1sZWZ0OjRyZW07cGFkZGluZy1yaWdodDo0cmVtfS5zd2FnZ2VyLXVpIC5waDYtbnN7cGFkZGluZy1sZWZ0OjhyZW07cGFkZGluZy1yaWdodDo4cmVtfS5zd2FnZ2VyLXVpIC5waDctbnN7cGFkZGluZy1sZWZ0OjE2cmVtO3BhZGRpbmctcmlnaHQ6MTZyZW19LnN3YWdnZXItdWkgLm1hMC1uc3ttYXJnaW46MH0uc3dhZ2dlci11aSAubWExLW5ze21hcmdpbjouMjVyZW19LnN3YWdnZXItdWkgLm1hMi1uc3ttYXJnaW46LjVyZW19LnN3YWdnZXItdWkgLm1hMy1uc3ttYXJnaW46MXJlbX0uc3dhZ2dlci11aSAubWE0LW5ze21hcmdpbjoycmVtfS5zd2FnZ2VyLXVpIC5tYTUtbnN7bWFyZ2luOjRyZW19LnN3YWdnZXItdWkgLm1hNi1uc3ttYXJnaW46OHJlbX0uc3dhZ2dlci11aSAubWE3LW5ze21hcmdpbjoxNnJlbX0uc3dhZ2dlci11aSAubWwwLW5ze21hcmdpbi1sZWZ0OjB9LnN3YWdnZXItdWkgLm1sMS1uc3ttYXJnaW4tbGVmdDouMjVyZW19LnN3YWdnZXItdWkgLm1sMi1uc3ttYXJnaW4tbGVmdDouNXJlbX0uc3dhZ2dlci11aSAubWwzLW5ze21hcmdpbi1sZWZ0OjFyZW19LnN3YWdnZXItdWkgLm1sNC1uc3ttYXJnaW4tbGVmdDoycmVtfS5zd2FnZ2VyLXVpIC5tbDUtbnN7bWFyZ2luLWxlZnQ6NHJlbX0uc3dhZ2dlci11aSAubWw2LW5ze21hcmdpbi1sZWZ0OjhyZW19LnN3YWdnZXItdWkgLm1sNy1uc3ttYXJnaW4tbGVmdDoxNnJlbX0uc3dhZ2dlci11aSAubXIwLW5ze21hcmdpbi1yaWdodDowfS5zd2FnZ2VyLXVpIC5tcjEtbnN7bWFyZ2luLXJpZ2h0Oi4yNXJlbX0uc3dhZ2dlci11aSAubXIyLW5ze21hcmdpbi1yaWdodDouNXJlbX0uc3dhZ2dlci11aSAubXIzLW5ze21hcmdpbi1yaWdodDoxcmVtfS5zd2FnZ2VyLXVpIC5tcjQtbnN7bWFyZ2luLXJpZ2h0OjJyZW19LnN3YWdnZXItdWkgLm1yNS1uc3ttYXJnaW4tcmlnaHQ6NHJlbX0uc3dhZ2dlci11aSAubXI2LW5ze21hcmdpbi1yaWdodDo4cmVtfS5zd2FnZ2VyLXVpIC5tcjctbnN7bWFyZ2luLXJpZ2h0OjE2cmVtfS5zd2FnZ2VyLXVpIC5tYjAtbnN7bWFyZ2luLWJvdHRvbTowfS5zd2FnZ2VyLXVpIC5tYjEtbnN7bWFyZ2luLWJvdHRvbTouMjVyZW19LnN3YWdnZXItdWkgLm1iMi1uc3ttYXJnaW4tYm90dG9tOi41cmVtfS5zd2FnZ2VyLXVpIC5tYjMtbnN7bWFyZ2luLWJvdHRvbToxcmVtfS5zd2FnZ2VyLXVpIC5tYjQtbnN7bWFyZ2luLWJvdHRvbToycmVtfS5zd2FnZ2VyLXVpIC5tYjUtbnN7bWFyZ2luLWJvdHRvbTo0cmVtfS5zd2FnZ2VyLXVpIC5tYjYtbnN7bWFyZ2luLWJvdHRvbTo4cmVtfS5zd2FnZ2VyLXVpIC5tYjctbnN7bWFyZ2luLWJvdHRvbToxNnJlbX0uc3dhZ2dlci11aSAubXQwLW5ze21hcmdpbi10b3A6MH0uc3dhZ2dlci11aSAubXQxLW5ze21hcmdpbi10b3A6LjI1cmVtfS5zd2FnZ2VyLXVpIC5tdDItbnN7bWFyZ2luLXRvcDouNXJlbX0uc3dhZ2dlci11aSAubXQzLW5ze21hcmdpbi10b3A6MXJlbX0uc3dhZ2dlci11aSAubXQ0LW5ze21hcmdpbi10b3A6MnJlbX0uc3dhZ2dlci11aSAubXQ1LW5ze21hcmdpbi10b3A6NHJlbX0uc3dhZ2dlci11aSAubXQ2LW5ze21hcmdpbi10b3A6OHJlbX0uc3dhZ2dlci11aSAubXQ3LW5ze21hcmdpbi10b3A6MTZyZW19LnN3YWdnZXItdWkgLm12MC1uc3ttYXJnaW4tYm90dG9tOjA7bWFyZ2luLXRvcDowfS5zd2FnZ2VyLXVpIC5tdjEtbnN7bWFyZ2luLWJvdHRvbTouMjVyZW07bWFyZ2luLXRvcDouMjVyZW19LnN3YWdnZXItdWkgLm12Mi1uc3ttYXJnaW4tYm90dG9tOi41cmVtO21hcmdpbi10b3A6LjVyZW19LnN3YWdnZXItdWkgLm12My1uc3ttYXJnaW4tYm90dG9tOjFyZW07bWFyZ2luLXRvcDoxcmVtfS5zd2FnZ2VyLXVpIC5tdjQtbnN7bWFyZ2luLWJvdHRvbToycmVtO21hcmdpbi10b3A6MnJlbX0uc3dhZ2dlci11aSAubXY1LW5ze21hcmdpbi1ib3R0b206NHJlbTttYXJnaW4tdG9wOjRyZW19LnN3YWdnZXItdWkgLm12Ni1uc3ttYXJnaW4tYm90dG9tOjhyZW07bWFyZ2luLXRvcDo4cmVtfS5zd2FnZ2VyLXVpIC5tdjctbnN7bWFyZ2luLWJvdHRvbToxNnJlbTttYXJnaW4tdG9wOjE2cmVtfS5zd2FnZ2VyLXVpIC5taDAtbnN7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MH0uc3dhZ2dlci11aSAubWgxLW5ze21hcmdpbi1sZWZ0Oi4yNXJlbTttYXJnaW4tcmlnaHQ6LjI1cmVtfS5zd2FnZ2VyLXVpIC5taDItbnN7bWFyZ2luLWxlZnQ6LjVyZW07bWFyZ2luLXJpZ2h0Oi41cmVtfS5zd2FnZ2VyLXVpIC5taDMtbnN7bWFyZ2luLWxlZnQ6MXJlbTttYXJnaW4tcmlnaHQ6MXJlbX0uc3dhZ2dlci11aSAubWg0LW5ze21hcmdpbi1sZWZ0OjJyZW07bWFyZ2luLXJpZ2h0OjJyZW19LnN3YWdnZXItdWkgLm1oNS1uc3ttYXJnaW4tbGVmdDo0cmVtO21hcmdpbi1yaWdodDo0cmVtfS5zd2FnZ2VyLXVpIC5taDYtbnN7bWFyZ2luLWxlZnQ6OHJlbTttYXJnaW4tcmlnaHQ6OHJlbX0uc3dhZ2dlci11aSAubWg3LW5ze21hcmdpbi1sZWZ0OjE2cmVtO21hcmdpbi1yaWdodDoxNnJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKWFuZCAobWF4LXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC5wYTAtbXtwYWRkaW5nOjB9LnN3YWdnZXItdWkgLnBhMS1te3BhZGRpbmc6LjI1cmVtfS5zd2FnZ2VyLXVpIC5wYTItbXtwYWRkaW5nOi41cmVtfS5zd2FnZ2VyLXVpIC5wYTMtbXtwYWRkaW5nOjFyZW19LnN3YWdnZXItdWkgLnBhNC1te3BhZGRpbmc6MnJlbX0uc3dhZ2dlci11aSAucGE1LW17cGFkZGluZzo0cmVtfS5zd2FnZ2VyLXVpIC5wYTYtbXtwYWRkaW5nOjhyZW19LnN3YWdnZXItdWkgLnBhNy1te3BhZGRpbmc6MTZyZW19LnN3YWdnZXItdWkgLnBsMC1te3BhZGRpbmctbGVmdDowfS5zd2FnZ2VyLXVpIC5wbDEtbXtwYWRkaW5nLWxlZnQ6LjI1cmVtfS5zd2FnZ2VyLXVpIC5wbDItbXtwYWRkaW5nLWxlZnQ6LjVyZW19LnN3YWdnZXItdWkgLnBsMy1te3BhZGRpbmctbGVmdDoxcmVtfS5zd2FnZ2VyLXVpIC5wbDQtbXtwYWRkaW5nLWxlZnQ6MnJlbX0uc3dhZ2dlci11aSAucGw1LW17cGFkZGluZy1sZWZ0OjRyZW19LnN3YWdnZXItdWkgLnBsNi1te3BhZGRpbmctbGVmdDo4cmVtfS5zd2FnZ2VyLXVpIC5wbDctbXtwYWRkaW5nLWxlZnQ6MTZyZW19LnN3YWdnZXItdWkgLnByMC1te3BhZGRpbmctcmlnaHQ6MH0uc3dhZ2dlci11aSAucHIxLW17cGFkZGluZy1yaWdodDouMjVyZW19LnN3YWdnZXItdWkgLnByMi1te3BhZGRpbmctcmlnaHQ6LjVyZW19LnN3YWdnZXItdWkgLnByMy1te3BhZGRpbmctcmlnaHQ6MXJlbX0uc3dhZ2dlci11aSAucHI0LW17cGFkZGluZy1yaWdodDoycmVtfS5zd2FnZ2VyLXVpIC5wcjUtbXtwYWRkaW5nLXJpZ2h0OjRyZW19LnN3YWdnZXItdWkgLnByNi1te3BhZGRpbmctcmlnaHQ6OHJlbX0uc3dhZ2dlci11aSAucHI3LW17cGFkZGluZy1yaWdodDoxNnJlbX0uc3dhZ2dlci11aSAucGIwLW17cGFkZGluZy1ib3R0b206MH0uc3dhZ2dlci11aSAucGIxLW17cGFkZGluZy1ib3R0b206LjI1cmVtfS5zd2FnZ2VyLXVpIC5wYjItbXtwYWRkaW5nLWJvdHRvbTouNXJlbX0uc3dhZ2dlci11aSAucGIzLW17cGFkZGluZy1ib3R0b206MXJlbX0uc3dhZ2dlci11aSAucGI0LW17cGFkZGluZy1ib3R0b206MnJlbX0uc3dhZ2dlci11aSAucGI1LW17cGFkZGluZy1ib3R0b206NHJlbX0uc3dhZ2dlci11aSAucGI2LW17cGFkZGluZy1ib3R0b206OHJlbX0uc3dhZ2dlci11aSAucGI3LW17cGFkZGluZy1ib3R0b206MTZyZW19LnN3YWdnZXItdWkgLnB0MC1te3BhZGRpbmctdG9wOjB9LnN3YWdnZXItdWkgLnB0MS1te3BhZGRpbmctdG9wOi4yNXJlbX0uc3dhZ2dlci11aSAucHQyLW17cGFkZGluZy10b3A6LjVyZW19LnN3YWdnZXItdWkgLnB0My1te3BhZGRpbmctdG9wOjFyZW19LnN3YWdnZXItdWkgLnB0NC1te3BhZGRpbmctdG9wOjJyZW19LnN3YWdnZXItdWkgLnB0NS1te3BhZGRpbmctdG9wOjRyZW19LnN3YWdnZXItdWkgLnB0Ni1te3BhZGRpbmctdG9wOjhyZW19LnN3YWdnZXItdWkgLnB0Ny1te3BhZGRpbmctdG9wOjE2cmVtfS5zd2FnZ2VyLXVpIC5wdjAtbXtwYWRkaW5nLWJvdHRvbTowO3BhZGRpbmctdG9wOjB9LnN3YWdnZXItdWkgLnB2MS1te3BhZGRpbmctYm90dG9tOi4yNXJlbTtwYWRkaW5nLXRvcDouMjVyZW19LnN3YWdnZXItdWkgLnB2Mi1te3BhZGRpbmctYm90dG9tOi41cmVtO3BhZGRpbmctdG9wOi41cmVtfS5zd2FnZ2VyLXVpIC5wdjMtbXtwYWRkaW5nLWJvdHRvbToxcmVtO3BhZGRpbmctdG9wOjFyZW19LnN3YWdnZXItdWkgLnB2NC1te3BhZGRpbmctYm90dG9tOjJyZW07cGFkZGluZy10b3A6MnJlbX0uc3dhZ2dlci11aSAucHY1LW17cGFkZGluZy1ib3R0b206NHJlbTtwYWRkaW5nLXRvcDo0cmVtfS5zd2FnZ2VyLXVpIC5wdjYtbXtwYWRkaW5nLWJvdHRvbTo4cmVtO3BhZGRpbmctdG9wOjhyZW19LnN3YWdnZXItdWkgLnB2Ny1te3BhZGRpbmctYm90dG9tOjE2cmVtO3BhZGRpbmctdG9wOjE2cmVtfS5zd2FnZ2VyLXVpIC5waDAtbXtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjB9LnN3YWdnZXItdWkgLnBoMS1te3BhZGRpbmctbGVmdDouMjVyZW07cGFkZGluZy1yaWdodDouMjVyZW19LnN3YWdnZXItdWkgLnBoMi1te3BhZGRpbmctbGVmdDouNXJlbTtwYWRkaW5nLXJpZ2h0Oi41cmVtfS5zd2FnZ2VyLXVpIC5waDMtbXtwYWRkaW5nLWxlZnQ6MXJlbTtwYWRkaW5nLXJpZ2h0OjFyZW19LnN3YWdnZXItdWkgLnBoNC1te3BhZGRpbmctbGVmdDoycmVtO3BhZGRpbmctcmlnaHQ6MnJlbX0uc3dhZ2dlci11aSAucGg1LW17cGFkZGluZy1sZWZ0OjRyZW07cGFkZGluZy1yaWdodDo0cmVtfS5zd2FnZ2VyLXVpIC5waDYtbXtwYWRkaW5nLWxlZnQ6OHJlbTtwYWRkaW5nLXJpZ2h0OjhyZW19LnN3YWdnZXItdWkgLnBoNy1te3BhZGRpbmctbGVmdDoxNnJlbTtwYWRkaW5nLXJpZ2h0OjE2cmVtfS5zd2FnZ2VyLXVpIC5tYTAtbXttYXJnaW46MH0uc3dhZ2dlci11aSAubWExLW17bWFyZ2luOi4yNXJlbX0uc3dhZ2dlci11aSAubWEyLW17bWFyZ2luOi41cmVtfS5zd2FnZ2VyLXVpIC5tYTMtbXttYXJnaW46MXJlbX0uc3dhZ2dlci11aSAubWE0LW17bWFyZ2luOjJyZW19LnN3YWdnZXItdWkgLm1hNS1te21hcmdpbjo0cmVtfS5zd2FnZ2VyLXVpIC5tYTYtbXttYXJnaW46OHJlbX0uc3dhZ2dlci11aSAubWE3LW17bWFyZ2luOjE2cmVtfS5zd2FnZ2VyLXVpIC5tbDAtbXttYXJnaW4tbGVmdDowfS5zd2FnZ2VyLXVpIC5tbDEtbXttYXJnaW4tbGVmdDouMjVyZW19LnN3YWdnZXItdWkgLm1sMi1te21hcmdpbi1sZWZ0Oi41cmVtfS5zd2FnZ2VyLXVpIC5tbDMtbXttYXJnaW4tbGVmdDoxcmVtfS5zd2FnZ2VyLXVpIC5tbDQtbXttYXJnaW4tbGVmdDoycmVtfS5zd2FnZ2VyLXVpIC5tbDUtbXttYXJnaW4tbGVmdDo0cmVtfS5zd2FnZ2VyLXVpIC5tbDYtbXttYXJnaW4tbGVmdDo4cmVtfS5zd2FnZ2VyLXVpIC5tbDctbXttYXJnaW4tbGVmdDoxNnJlbX0uc3dhZ2dlci11aSAubXIwLW17bWFyZ2luLXJpZ2h0OjB9LnN3YWdnZXItdWkgLm1yMS1te21hcmdpbi1yaWdodDouMjVyZW19LnN3YWdnZXItdWkgLm1yMi1te21hcmdpbi1yaWdodDouNXJlbX0uc3dhZ2dlci11aSAubXIzLW17bWFyZ2luLXJpZ2h0OjFyZW19LnN3YWdnZXItdWkgLm1yNC1te21hcmdpbi1yaWdodDoycmVtfS5zd2FnZ2VyLXVpIC5tcjUtbXttYXJnaW4tcmlnaHQ6NHJlbX0uc3dhZ2dlci11aSAubXI2LW17bWFyZ2luLXJpZ2h0OjhyZW19LnN3YWdnZXItdWkgLm1yNy1te21hcmdpbi1yaWdodDoxNnJlbX0uc3dhZ2dlci11aSAubWIwLW17bWFyZ2luLWJvdHRvbTowfS5zd2FnZ2VyLXVpIC5tYjEtbXttYXJnaW4tYm90dG9tOi4yNXJlbX0uc3dhZ2dlci11aSAubWIyLW17bWFyZ2luLWJvdHRvbTouNXJlbX0uc3dhZ2dlci11aSAubWIzLW17bWFyZ2luLWJvdHRvbToxcmVtfS5zd2FnZ2VyLXVpIC5tYjQtbXttYXJnaW4tYm90dG9tOjJyZW19LnN3YWdnZXItdWkgLm1iNS1te21hcmdpbi1ib3R0b206NHJlbX0uc3dhZ2dlci11aSAubWI2LW17bWFyZ2luLWJvdHRvbTo4cmVtfS5zd2FnZ2VyLXVpIC5tYjctbXttYXJnaW4tYm90dG9tOjE2cmVtfS5zd2FnZ2VyLXVpIC5tdDAtbXttYXJnaW4tdG9wOjB9LnN3YWdnZXItdWkgLm10MS1te21hcmdpbi10b3A6LjI1cmVtfS5zd2FnZ2VyLXVpIC5tdDItbXttYXJnaW4tdG9wOi41cmVtfS5zd2FnZ2VyLXVpIC5tdDMtbXttYXJnaW4tdG9wOjFyZW19LnN3YWdnZXItdWkgLm10NC1te21hcmdpbi10b3A6MnJlbX0uc3dhZ2dlci11aSAubXQ1LW17bWFyZ2luLXRvcDo0cmVtfS5zd2FnZ2VyLXVpIC5tdDYtbXttYXJnaW4tdG9wOjhyZW19LnN3YWdnZXItdWkgLm10Ny1te21hcmdpbi10b3A6MTZyZW19LnN3YWdnZXItdWkgLm12MC1te21hcmdpbi1ib3R0b206MDttYXJnaW4tdG9wOjB9LnN3YWdnZXItdWkgLm12MS1te21hcmdpbi1ib3R0b206LjI1cmVtO21hcmdpbi10b3A6LjI1cmVtfS5zd2FnZ2VyLXVpIC5tdjItbXttYXJnaW4tYm90dG9tOi41cmVtO21hcmdpbi10b3A6LjVyZW19LnN3YWdnZXItdWkgLm12My1te21hcmdpbi1ib3R0b206MXJlbTttYXJnaW4tdG9wOjFyZW19LnN3YWdnZXItdWkgLm12NC1te21hcmdpbi1ib3R0b206MnJlbTttYXJnaW4tdG9wOjJyZW19LnN3YWdnZXItdWkgLm12NS1te21hcmdpbi1ib3R0b206NHJlbTttYXJnaW4tdG9wOjRyZW19LnN3YWdnZXItdWkgLm12Ni1te21hcmdpbi1ib3R0b206OHJlbTttYXJnaW4tdG9wOjhyZW19LnN3YWdnZXItdWkgLm12Ny1te21hcmdpbi1ib3R0b206MTZyZW07bWFyZ2luLXRvcDoxNnJlbX0uc3dhZ2dlci11aSAubWgwLW17bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MH0uc3dhZ2dlci11aSAubWgxLW17bWFyZ2luLWxlZnQ6LjI1cmVtO21hcmdpbi1yaWdodDouMjVyZW19LnN3YWdnZXItdWkgLm1oMi1te21hcmdpbi1sZWZ0Oi41cmVtO21hcmdpbi1yaWdodDouNXJlbX0uc3dhZ2dlci11aSAubWgzLW17bWFyZ2luLWxlZnQ6MXJlbTttYXJnaW4tcmlnaHQ6MXJlbX0uc3dhZ2dlci11aSAubWg0LW17bWFyZ2luLWxlZnQ6MnJlbTttYXJnaW4tcmlnaHQ6MnJlbX0uc3dhZ2dlci11aSAubWg1LW17bWFyZ2luLWxlZnQ6NHJlbTttYXJnaW4tcmlnaHQ6NHJlbX0uc3dhZ2dlci11aSAubWg2LW17bWFyZ2luLWxlZnQ6OHJlbTttYXJnaW4tcmlnaHQ6OHJlbX0uc3dhZ2dlci11aSAubWg3LW17bWFyZ2luLWxlZnQ6MTZyZW07bWFyZ2luLXJpZ2h0OjE2cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC5wYTAtbHtwYWRkaW5nOjB9LnN3YWdnZXItdWkgLnBhMS1se3BhZGRpbmc6LjI1cmVtfS5zd2FnZ2VyLXVpIC5wYTItbHtwYWRkaW5nOi41cmVtfS5zd2FnZ2VyLXVpIC5wYTMtbHtwYWRkaW5nOjFyZW19LnN3YWdnZXItdWkgLnBhNC1se3BhZGRpbmc6MnJlbX0uc3dhZ2dlci11aSAucGE1LWx7cGFkZGluZzo0cmVtfS5zd2FnZ2VyLXVpIC5wYTYtbHtwYWRkaW5nOjhyZW19LnN3YWdnZXItdWkgLnBhNy1se3BhZGRpbmc6MTZyZW19LnN3YWdnZXItdWkgLnBsMC1se3BhZGRpbmctbGVmdDowfS5zd2FnZ2VyLXVpIC5wbDEtbHtwYWRkaW5nLWxlZnQ6LjI1cmVtfS5zd2FnZ2VyLXVpIC5wbDItbHtwYWRkaW5nLWxlZnQ6LjVyZW19LnN3YWdnZXItdWkgLnBsMy1se3BhZGRpbmctbGVmdDoxcmVtfS5zd2FnZ2VyLXVpIC5wbDQtbHtwYWRkaW5nLWxlZnQ6MnJlbX0uc3dhZ2dlci11aSAucGw1LWx7cGFkZGluZy1sZWZ0OjRyZW19LnN3YWdnZXItdWkgLnBsNi1se3BhZGRpbmctbGVmdDo4cmVtfS5zd2FnZ2VyLXVpIC5wbDctbHtwYWRkaW5nLWxlZnQ6MTZyZW19LnN3YWdnZXItdWkgLnByMC1se3BhZGRpbmctcmlnaHQ6MH0uc3dhZ2dlci11aSAucHIxLWx7cGFkZGluZy1yaWdodDouMjVyZW19LnN3YWdnZXItdWkgLnByMi1se3BhZGRpbmctcmlnaHQ6LjVyZW19LnN3YWdnZXItdWkgLnByMy1se3BhZGRpbmctcmlnaHQ6MXJlbX0uc3dhZ2dlci11aSAucHI0LWx7cGFkZGluZy1yaWdodDoycmVtfS5zd2FnZ2VyLXVpIC5wcjUtbHtwYWRkaW5nLXJpZ2h0OjRyZW19LnN3YWdnZXItdWkgLnByNi1se3BhZGRpbmctcmlnaHQ6OHJlbX0uc3dhZ2dlci11aSAucHI3LWx7cGFkZGluZy1yaWdodDoxNnJlbX0uc3dhZ2dlci11aSAucGIwLWx7cGFkZGluZy1ib3R0b206MH0uc3dhZ2dlci11aSAucGIxLWx7cGFkZGluZy1ib3R0b206LjI1cmVtfS5zd2FnZ2VyLXVpIC5wYjItbHtwYWRkaW5nLWJvdHRvbTouNXJlbX0uc3dhZ2dlci11aSAucGIzLWx7cGFkZGluZy1ib3R0b206MXJlbX0uc3dhZ2dlci11aSAucGI0LWx7cGFkZGluZy1ib3R0b206MnJlbX0uc3dhZ2dlci11aSAucGI1LWx7cGFkZGluZy1ib3R0b206NHJlbX0uc3dhZ2dlci11aSAucGI2LWx7cGFkZGluZy1ib3R0b206OHJlbX0uc3dhZ2dlci11aSAucGI3LWx7cGFkZGluZy1ib3R0b206MTZyZW19LnN3YWdnZXItdWkgLnB0MC1se3BhZGRpbmctdG9wOjB9LnN3YWdnZXItdWkgLnB0MS1se3BhZGRpbmctdG9wOi4yNXJlbX0uc3dhZ2dlci11aSAucHQyLWx7cGFkZGluZy10b3A6LjVyZW19LnN3YWdnZXItdWkgLnB0My1se3BhZGRpbmctdG9wOjFyZW19LnN3YWdnZXItdWkgLnB0NC1se3BhZGRpbmctdG9wOjJyZW19LnN3YWdnZXItdWkgLnB0NS1se3BhZGRpbmctdG9wOjRyZW19LnN3YWdnZXItdWkgLnB0Ni1se3BhZGRpbmctdG9wOjhyZW19LnN3YWdnZXItdWkgLnB0Ny1se3BhZGRpbmctdG9wOjE2cmVtfS5zd2FnZ2VyLXVpIC5wdjAtbHtwYWRkaW5nLWJvdHRvbTowO3BhZGRpbmctdG9wOjB9LnN3YWdnZXItdWkgLnB2MS1se3BhZGRpbmctYm90dG9tOi4yNXJlbTtwYWRkaW5nLXRvcDouMjVyZW19LnN3YWdnZXItdWkgLnB2Mi1se3BhZGRpbmctYm90dG9tOi41cmVtO3BhZGRpbmctdG9wOi41cmVtfS5zd2FnZ2VyLXVpIC5wdjMtbHtwYWRkaW5nLWJvdHRvbToxcmVtO3BhZGRpbmctdG9wOjFyZW19LnN3YWdnZXItdWkgLnB2NC1se3BhZGRpbmctYm90dG9tOjJyZW07cGFkZGluZy10b3A6MnJlbX0uc3dhZ2dlci11aSAucHY1LWx7cGFkZGluZy1ib3R0b206NHJlbTtwYWRkaW5nLXRvcDo0cmVtfS5zd2FnZ2VyLXVpIC5wdjYtbHtwYWRkaW5nLWJvdHRvbTo4cmVtO3BhZGRpbmctdG9wOjhyZW19LnN3YWdnZXItdWkgLnB2Ny1se3BhZGRpbmctYm90dG9tOjE2cmVtO3BhZGRpbmctdG9wOjE2cmVtfS5zd2FnZ2VyLXVpIC5waDAtbHtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjB9LnN3YWdnZXItdWkgLnBoMS1se3BhZGRpbmctbGVmdDouMjVyZW07cGFkZGluZy1yaWdodDouMjVyZW19LnN3YWdnZXItdWkgLnBoMi1se3BhZGRpbmctbGVmdDouNXJlbTtwYWRkaW5nLXJpZ2h0Oi41cmVtfS5zd2FnZ2VyLXVpIC5waDMtbHtwYWRkaW5nLWxlZnQ6MXJlbTtwYWRkaW5nLXJpZ2h0OjFyZW19LnN3YWdnZXItdWkgLnBoNC1se3BhZGRpbmctbGVmdDoycmVtO3BhZGRpbmctcmlnaHQ6MnJlbX0uc3dhZ2dlci11aSAucGg1LWx7cGFkZGluZy1sZWZ0OjRyZW07cGFkZGluZy1yaWdodDo0cmVtfS5zd2FnZ2VyLXVpIC5waDYtbHtwYWRkaW5nLWxlZnQ6OHJlbTtwYWRkaW5nLXJpZ2h0OjhyZW19LnN3YWdnZXItdWkgLnBoNy1se3BhZGRpbmctbGVmdDoxNnJlbTtwYWRkaW5nLXJpZ2h0OjE2cmVtfS5zd2FnZ2VyLXVpIC5tYTAtbHttYXJnaW46MH0uc3dhZ2dlci11aSAubWExLWx7bWFyZ2luOi4yNXJlbX0uc3dhZ2dlci11aSAubWEyLWx7bWFyZ2luOi41cmVtfS5zd2FnZ2VyLXVpIC5tYTMtbHttYXJnaW46MXJlbX0uc3dhZ2dlci11aSAubWE0LWx7bWFyZ2luOjJyZW19LnN3YWdnZXItdWkgLm1hNS1se21hcmdpbjo0cmVtfS5zd2FnZ2VyLXVpIC5tYTYtbHttYXJnaW46OHJlbX0uc3dhZ2dlci11aSAubWE3LWx7bWFyZ2luOjE2cmVtfS5zd2FnZ2VyLXVpIC5tbDAtbHttYXJnaW4tbGVmdDowfS5zd2FnZ2VyLXVpIC5tbDEtbHttYXJnaW4tbGVmdDouMjVyZW19LnN3YWdnZXItdWkgLm1sMi1se21hcmdpbi1sZWZ0Oi41cmVtfS5zd2FnZ2VyLXVpIC5tbDMtbHttYXJnaW4tbGVmdDoxcmVtfS5zd2FnZ2VyLXVpIC5tbDQtbHttYXJnaW4tbGVmdDoycmVtfS5zd2FnZ2VyLXVpIC5tbDUtbHttYXJnaW4tbGVmdDo0cmVtfS5zd2FnZ2VyLXVpIC5tbDYtbHttYXJnaW4tbGVmdDo4cmVtfS5zd2FnZ2VyLXVpIC5tbDctbHttYXJnaW4tbGVmdDoxNnJlbX0uc3dhZ2dlci11aSAubXIwLWx7bWFyZ2luLXJpZ2h0OjB9LnN3YWdnZXItdWkgLm1yMS1se21hcmdpbi1yaWdodDouMjVyZW19LnN3YWdnZXItdWkgLm1yMi1se21hcmdpbi1yaWdodDouNXJlbX0uc3dhZ2dlci11aSAubXIzLWx7bWFyZ2luLXJpZ2h0OjFyZW19LnN3YWdnZXItdWkgLm1yNC1se21hcmdpbi1yaWdodDoycmVtfS5zd2FnZ2VyLXVpIC5tcjUtbHttYXJnaW4tcmlnaHQ6NHJlbX0uc3dhZ2dlci11aSAubXI2LWx7bWFyZ2luLXJpZ2h0OjhyZW19LnN3YWdnZXItdWkgLm1yNy1se21hcmdpbi1yaWdodDoxNnJlbX0uc3dhZ2dlci11aSAubWIwLWx7bWFyZ2luLWJvdHRvbTowfS5zd2FnZ2VyLXVpIC5tYjEtbHttYXJnaW4tYm90dG9tOi4yNXJlbX0uc3dhZ2dlci11aSAubWIyLWx7bWFyZ2luLWJvdHRvbTouNXJlbX0uc3dhZ2dlci11aSAubWIzLWx7bWFyZ2luLWJvdHRvbToxcmVtfS5zd2FnZ2VyLXVpIC5tYjQtbHttYXJnaW4tYm90dG9tOjJyZW19LnN3YWdnZXItdWkgLm1iNS1se21hcmdpbi1ib3R0b206NHJlbX0uc3dhZ2dlci11aSAubWI2LWx7bWFyZ2luLWJvdHRvbTo4cmVtfS5zd2FnZ2VyLXVpIC5tYjctbHttYXJnaW4tYm90dG9tOjE2cmVtfS5zd2FnZ2VyLXVpIC5tdDAtbHttYXJnaW4tdG9wOjB9LnN3YWdnZXItdWkgLm10MS1se21hcmdpbi10b3A6LjI1cmVtfS5zd2FnZ2VyLXVpIC5tdDItbHttYXJnaW4tdG9wOi41cmVtfS5zd2FnZ2VyLXVpIC5tdDMtbHttYXJnaW4tdG9wOjFyZW19LnN3YWdnZXItdWkgLm10NC1se21hcmdpbi10b3A6MnJlbX0uc3dhZ2dlci11aSAubXQ1LWx7bWFyZ2luLXRvcDo0cmVtfS5zd2FnZ2VyLXVpIC5tdDYtbHttYXJnaW4tdG9wOjhyZW19LnN3YWdnZXItdWkgLm10Ny1se21hcmdpbi10b3A6MTZyZW19LnN3YWdnZXItdWkgLm12MC1se21hcmdpbi1ib3R0b206MDttYXJnaW4tdG9wOjB9LnN3YWdnZXItdWkgLm12MS1se21hcmdpbi1ib3R0b206LjI1cmVtO21hcmdpbi10b3A6LjI1cmVtfS5zd2FnZ2VyLXVpIC5tdjItbHttYXJnaW4tYm90dG9tOi41cmVtO21hcmdpbi10b3A6LjVyZW19LnN3YWdnZXItdWkgLm12My1se21hcmdpbi1ib3R0b206MXJlbTttYXJnaW4tdG9wOjFyZW19LnN3YWdnZXItdWkgLm12NC1se21hcmdpbi1ib3R0b206MnJlbTttYXJnaW4tdG9wOjJyZW19LnN3YWdnZXItdWkgLm12NS1se21hcmdpbi1ib3R0b206NHJlbTttYXJnaW4tdG9wOjRyZW19LnN3YWdnZXItdWkgLm12Ni1se21hcmdpbi1ib3R0b206OHJlbTttYXJnaW4tdG9wOjhyZW19LnN3YWdnZXItdWkgLm12Ny1se21hcmdpbi1ib3R0b206MTZyZW07bWFyZ2luLXRvcDoxNnJlbX0uc3dhZ2dlci11aSAubWgwLWx7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MH0uc3dhZ2dlci11aSAubWgxLWx7bWFyZ2luLWxlZnQ6LjI1cmVtO21hcmdpbi1yaWdodDouMjVyZW19LnN3YWdnZXItdWkgLm1oMi1se21hcmdpbi1sZWZ0Oi41cmVtO21hcmdpbi1yaWdodDouNXJlbX0uc3dhZ2dlci11aSAubWgzLWx7bWFyZ2luLWxlZnQ6MXJlbTttYXJnaW4tcmlnaHQ6MXJlbX0uc3dhZ2dlci11aSAubWg0LWx7bWFyZ2luLWxlZnQ6MnJlbTttYXJnaW4tcmlnaHQ6MnJlbX0uc3dhZ2dlci11aSAubWg1LWx7bWFyZ2luLWxlZnQ6NHJlbTttYXJnaW4tcmlnaHQ6NHJlbX0uc3dhZ2dlci11aSAubWg2LWx7bWFyZ2luLWxlZnQ6OHJlbTttYXJnaW4tcmlnaHQ6OHJlbX0uc3dhZ2dlci11aSAubWg3LWx7bWFyZ2luLWxlZnQ6MTZyZW07bWFyZ2luLXJpZ2h0OjE2cmVtfX0uc3dhZ2dlci11aSAubmExe21hcmdpbjotLjI1cmVtfS5zd2FnZ2VyLXVpIC5uYTJ7bWFyZ2luOi0uNXJlbX0uc3dhZ2dlci11aSAubmEze21hcmdpbjotMXJlbX0uc3dhZ2dlci11aSAubmE0e21hcmdpbjotMnJlbX0uc3dhZ2dlci11aSAubmE1e21hcmdpbjotNHJlbX0uc3dhZ2dlci11aSAubmE2e21hcmdpbjotOHJlbX0uc3dhZ2dlci11aSAubmE3e21hcmdpbjotMTZyZW19LnN3YWdnZXItdWkgLm5sMXttYXJnaW4tbGVmdDotLjI1cmVtfS5zd2FnZ2VyLXVpIC5ubDJ7bWFyZ2luLWxlZnQ6LS41cmVtfS5zd2FnZ2VyLXVpIC5ubDN7bWFyZ2luLWxlZnQ6LTFyZW19LnN3YWdnZXItdWkgLm5sNHttYXJnaW4tbGVmdDotMnJlbX0uc3dhZ2dlci11aSAubmw1e21hcmdpbi1sZWZ0Oi00cmVtfS5zd2FnZ2VyLXVpIC5ubDZ7bWFyZ2luLWxlZnQ6LThyZW19LnN3YWdnZXItdWkgLm5sN3ttYXJnaW4tbGVmdDotMTZyZW19LnN3YWdnZXItdWkgLm5yMXttYXJnaW4tcmlnaHQ6LS4yNXJlbX0uc3dhZ2dlci11aSAubnIye21hcmdpbi1yaWdodDotLjVyZW19LnN3YWdnZXItdWkgLm5yM3ttYXJnaW4tcmlnaHQ6LTFyZW19LnN3YWdnZXItdWkgLm5yNHttYXJnaW4tcmlnaHQ6LTJyZW19LnN3YWdnZXItdWkgLm5yNXttYXJnaW4tcmlnaHQ6LTRyZW19LnN3YWdnZXItdWkgLm5yNnttYXJnaW4tcmlnaHQ6LThyZW19LnN3YWdnZXItdWkgLm5yN3ttYXJnaW4tcmlnaHQ6LTE2cmVtfS5zd2FnZ2VyLXVpIC5uYjF7bWFyZ2luLWJvdHRvbTotLjI1cmVtfS5zd2FnZ2VyLXVpIC5uYjJ7bWFyZ2luLWJvdHRvbTotLjVyZW19LnN3YWdnZXItdWkgLm5iM3ttYXJnaW4tYm90dG9tOi0xcmVtfS5zd2FnZ2VyLXVpIC5uYjR7bWFyZ2luLWJvdHRvbTotMnJlbX0uc3dhZ2dlci11aSAubmI1e21hcmdpbi1ib3R0b206LTRyZW19LnN3YWdnZXItdWkgLm5iNnttYXJnaW4tYm90dG9tOi04cmVtfS5zd2FnZ2VyLXVpIC5uYjd7bWFyZ2luLWJvdHRvbTotMTZyZW19LnN3YWdnZXItdWkgLm50MXttYXJnaW4tdG9wOi0uMjVyZW19LnN3YWdnZXItdWkgLm50MnttYXJnaW4tdG9wOi0uNXJlbX0uc3dhZ2dlci11aSAubnQze21hcmdpbi10b3A6LTFyZW19LnN3YWdnZXItdWkgLm50NHttYXJnaW4tdG9wOi0ycmVtfS5zd2FnZ2VyLXVpIC5udDV7bWFyZ2luLXRvcDotNHJlbX0uc3dhZ2dlci11aSAubnQ2e21hcmdpbi10b3A6LThyZW19LnN3YWdnZXItdWkgLm50N3ttYXJnaW4tdG9wOi0xNnJlbX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pey5zd2FnZ2VyLXVpIC5uYTEtbnN7bWFyZ2luOi0uMjVyZW19LnN3YWdnZXItdWkgLm5hMi1uc3ttYXJnaW46LS41cmVtfS5zd2FnZ2VyLXVpIC5uYTMtbnN7bWFyZ2luOi0xcmVtfS5zd2FnZ2VyLXVpIC5uYTQtbnN7bWFyZ2luOi0ycmVtfS5zd2FnZ2VyLXVpIC5uYTUtbnN7bWFyZ2luOi00cmVtfS5zd2FnZ2VyLXVpIC5uYTYtbnN7bWFyZ2luOi04cmVtfS5zd2FnZ2VyLXVpIC5uYTctbnN7bWFyZ2luOi0xNnJlbX0uc3dhZ2dlci11aSAubmwxLW5ze21hcmdpbi1sZWZ0Oi0uMjVyZW19LnN3YWdnZXItdWkgLm5sMi1uc3ttYXJnaW4tbGVmdDotLjVyZW19LnN3YWdnZXItdWkgLm5sMy1uc3ttYXJnaW4tbGVmdDotMXJlbX0uc3dhZ2dlci11aSAubmw0LW5ze21hcmdpbi1sZWZ0Oi0ycmVtfS5zd2FnZ2VyLXVpIC5ubDUtbnN7bWFyZ2luLWxlZnQ6LTRyZW19LnN3YWdnZXItdWkgLm5sNi1uc3ttYXJnaW4tbGVmdDotOHJlbX0uc3dhZ2dlci11aSAubmw3LW5ze21hcmdpbi1sZWZ0Oi0xNnJlbX0uc3dhZ2dlci11aSAubnIxLW5ze21hcmdpbi1yaWdodDotLjI1cmVtfS5zd2FnZ2VyLXVpIC5ucjItbnN7bWFyZ2luLXJpZ2h0Oi0uNXJlbX0uc3dhZ2dlci11aSAubnIzLW5ze21hcmdpbi1yaWdodDotMXJlbX0uc3dhZ2dlci11aSAubnI0LW5ze21hcmdpbi1yaWdodDotMnJlbX0uc3dhZ2dlci11aSAubnI1LW5ze21hcmdpbi1yaWdodDotNHJlbX0uc3dhZ2dlci11aSAubnI2LW5ze21hcmdpbi1yaWdodDotOHJlbX0uc3dhZ2dlci11aSAubnI3LW5ze21hcmdpbi1yaWdodDotMTZyZW19LnN3YWdnZXItdWkgLm5iMS1uc3ttYXJnaW4tYm90dG9tOi0uMjVyZW19LnN3YWdnZXItdWkgLm5iMi1uc3ttYXJnaW4tYm90dG9tOi0uNXJlbX0uc3dhZ2dlci11aSAubmIzLW5ze21hcmdpbi1ib3R0b206LTFyZW19LnN3YWdnZXItdWkgLm5iNC1uc3ttYXJnaW4tYm90dG9tOi0ycmVtfS5zd2FnZ2VyLXVpIC5uYjUtbnN7bWFyZ2luLWJvdHRvbTotNHJlbX0uc3dhZ2dlci11aSAubmI2LW5ze21hcmdpbi1ib3R0b206LThyZW19LnN3YWdnZXItdWkgLm5iNy1uc3ttYXJnaW4tYm90dG9tOi0xNnJlbX0uc3dhZ2dlci11aSAubnQxLW5ze21hcmdpbi10b3A6LS4yNXJlbX0uc3dhZ2dlci11aSAubnQyLW5ze21hcmdpbi10b3A6LS41cmVtfS5zd2FnZ2VyLXVpIC5udDMtbnN7bWFyZ2luLXRvcDotMXJlbX0uc3dhZ2dlci11aSAubnQ0LW5ze21hcmdpbi10b3A6LTJyZW19LnN3YWdnZXItdWkgLm50NS1uc3ttYXJnaW4tdG9wOi00cmVtfS5zd2FnZ2VyLXVpIC5udDYtbnN7bWFyZ2luLXRvcDotOHJlbX0uc3dhZ2dlci11aSAubnQ3LW5ze21hcmdpbi10b3A6LTE2cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pYW5kIChtYXgtd2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLm5hMS1te21hcmdpbjotLjI1cmVtfS5zd2FnZ2VyLXVpIC5uYTItbXttYXJnaW46LS41cmVtfS5zd2FnZ2VyLXVpIC5uYTMtbXttYXJnaW46LTFyZW19LnN3YWdnZXItdWkgLm5hNC1te21hcmdpbjotMnJlbX0uc3dhZ2dlci11aSAubmE1LW17bWFyZ2luOi00cmVtfS5zd2FnZ2VyLXVpIC5uYTYtbXttYXJnaW46LThyZW19LnN3YWdnZXItdWkgLm5hNy1te21hcmdpbjotMTZyZW19LnN3YWdnZXItdWkgLm5sMS1te21hcmdpbi1sZWZ0Oi0uMjVyZW19LnN3YWdnZXItdWkgLm5sMi1te21hcmdpbi1sZWZ0Oi0uNXJlbX0uc3dhZ2dlci11aSAubmwzLW17bWFyZ2luLWxlZnQ6LTFyZW19LnN3YWdnZXItdWkgLm5sNC1te21hcmdpbi1sZWZ0Oi0ycmVtfS5zd2FnZ2VyLXVpIC5ubDUtbXttYXJnaW4tbGVmdDotNHJlbX0uc3dhZ2dlci11aSAubmw2LW17bWFyZ2luLWxlZnQ6LThyZW19LnN3YWdnZXItdWkgLm5sNy1te21hcmdpbi1sZWZ0Oi0xNnJlbX0uc3dhZ2dlci11aSAubnIxLW17bWFyZ2luLXJpZ2h0Oi0uMjVyZW19LnN3YWdnZXItdWkgLm5yMi1te21hcmdpbi1yaWdodDotLjVyZW19LnN3YWdnZXItdWkgLm5yMy1te21hcmdpbi1yaWdodDotMXJlbX0uc3dhZ2dlci11aSAubnI0LW17bWFyZ2luLXJpZ2h0Oi0ycmVtfS5zd2FnZ2VyLXVpIC5ucjUtbXttYXJnaW4tcmlnaHQ6LTRyZW19LnN3YWdnZXItdWkgLm5yNi1te21hcmdpbi1yaWdodDotOHJlbX0uc3dhZ2dlci11aSAubnI3LW17bWFyZ2luLXJpZ2h0Oi0xNnJlbX0uc3dhZ2dlci11aSAubmIxLW17bWFyZ2luLWJvdHRvbTotLjI1cmVtfS5zd2FnZ2VyLXVpIC5uYjItbXttYXJnaW4tYm90dG9tOi0uNXJlbX0uc3dhZ2dlci11aSAubmIzLW17bWFyZ2luLWJvdHRvbTotMXJlbX0uc3dhZ2dlci11aSAubmI0LW17bWFyZ2luLWJvdHRvbTotMnJlbX0uc3dhZ2dlci11aSAubmI1LW17bWFyZ2luLWJvdHRvbTotNHJlbX0uc3dhZ2dlci11aSAubmI2LW17bWFyZ2luLWJvdHRvbTotOHJlbX0uc3dhZ2dlci11aSAubmI3LW17bWFyZ2luLWJvdHRvbTotMTZyZW19LnN3YWdnZXItdWkgLm50MS1te21hcmdpbi10b3A6LS4yNXJlbX0uc3dhZ2dlci11aSAubnQyLW17bWFyZ2luLXRvcDotLjVyZW19LnN3YWdnZXItdWkgLm50My1te21hcmdpbi10b3A6LTFyZW19LnN3YWdnZXItdWkgLm50NC1te21hcmdpbi10b3A6LTJyZW19LnN3YWdnZXItdWkgLm50NS1te21hcmdpbi10b3A6LTRyZW19LnN3YWdnZXItdWkgLm50Ni1te21hcmdpbi10b3A6LThyZW19LnN3YWdnZXItdWkgLm50Ny1te21hcmdpbi10b3A6LTE2cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC5uYTEtbHttYXJnaW46LS4yNXJlbX0uc3dhZ2dlci11aSAubmEyLWx7bWFyZ2luOi0uNXJlbX0uc3dhZ2dlci11aSAubmEzLWx7bWFyZ2luOi0xcmVtfS5zd2FnZ2VyLXVpIC5uYTQtbHttYXJnaW46LTJyZW19LnN3YWdnZXItdWkgLm5hNS1se21hcmdpbjotNHJlbX0uc3dhZ2dlci11aSAubmE2LWx7bWFyZ2luOi04cmVtfS5zd2FnZ2VyLXVpIC5uYTctbHttYXJnaW46LTE2cmVtfS5zd2FnZ2VyLXVpIC5ubDEtbHttYXJnaW4tbGVmdDotLjI1cmVtfS5zd2FnZ2VyLXVpIC5ubDItbHttYXJnaW4tbGVmdDotLjVyZW19LnN3YWdnZXItdWkgLm5sMy1se21hcmdpbi1sZWZ0Oi0xcmVtfS5zd2FnZ2VyLXVpIC5ubDQtbHttYXJnaW4tbGVmdDotMnJlbX0uc3dhZ2dlci11aSAubmw1LWx7bWFyZ2luLWxlZnQ6LTRyZW19LnN3YWdnZXItdWkgLm5sNi1se21hcmdpbi1sZWZ0Oi04cmVtfS5zd2FnZ2VyLXVpIC5ubDctbHttYXJnaW4tbGVmdDotMTZyZW19LnN3YWdnZXItdWkgLm5yMS1se21hcmdpbi1yaWdodDotLjI1cmVtfS5zd2FnZ2VyLXVpIC5ucjItbHttYXJnaW4tcmlnaHQ6LS41cmVtfS5zd2FnZ2VyLXVpIC5ucjMtbHttYXJnaW4tcmlnaHQ6LTFyZW19LnN3YWdnZXItdWkgLm5yNC1se21hcmdpbi1yaWdodDotMnJlbX0uc3dhZ2dlci11aSAubnI1LWx7bWFyZ2luLXJpZ2h0Oi00cmVtfS5zd2FnZ2VyLXVpIC5ucjYtbHttYXJnaW4tcmlnaHQ6LThyZW19LnN3YWdnZXItdWkgLm5yNy1se21hcmdpbi1yaWdodDotMTZyZW19LnN3YWdnZXItdWkgLm5iMS1se21hcmdpbi1ib3R0b206LS4yNXJlbX0uc3dhZ2dlci11aSAubmIyLWx7bWFyZ2luLWJvdHRvbTotLjVyZW19LnN3YWdnZXItdWkgLm5iMy1se21hcmdpbi1ib3R0b206LTFyZW19LnN3YWdnZXItdWkgLm5iNC1se21hcmdpbi1ib3R0b206LTJyZW19LnN3YWdnZXItdWkgLm5iNS1se21hcmdpbi1ib3R0b206LTRyZW19LnN3YWdnZXItdWkgLm5iNi1se21hcmdpbi1ib3R0b206LThyZW19LnN3YWdnZXItdWkgLm5iNy1se21hcmdpbi1ib3R0b206LTE2cmVtfS5zd2FnZ2VyLXVpIC5udDEtbHttYXJnaW4tdG9wOi0uMjVyZW19LnN3YWdnZXItdWkgLm50Mi1se21hcmdpbi10b3A6LS41cmVtfS5zd2FnZ2VyLXVpIC5udDMtbHttYXJnaW4tdG9wOi0xcmVtfS5zd2FnZ2VyLXVpIC5udDQtbHttYXJnaW4tdG9wOi0ycmVtfS5zd2FnZ2VyLXVpIC5udDUtbHttYXJnaW4tdG9wOi00cmVtfS5zd2FnZ2VyLXVpIC5udDYtbHttYXJnaW4tdG9wOi04cmVtfS5zd2FnZ2VyLXVpIC5udDctbHttYXJnaW4tdG9wOi0xNnJlbX19LnN3YWdnZXItdWkgLmNvbGxhcHNle2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtib3JkZXItc3BhY2luZzowfS5zd2FnZ2VyLXVpIC5zdHJpcGVkLS1saWdodC1zaWx2ZXI6bnRoLWNoaWxkKG9kZCl7YmFja2dyb3VuZC1jb2xvcjojYWFhfS5zd2FnZ2VyLXVpIC5zdHJpcGVkLS1tb29uLWdyYXk6bnRoLWNoaWxkKG9kZCl7YmFja2dyb3VuZC1jb2xvcjojY2NjfS5zd2FnZ2VyLXVpIC5zdHJpcGVkLS1saWdodC1ncmF5Om50aC1jaGlsZChvZGQpe2JhY2tncm91bmQtY29sb3I6I2VlZX0uc3dhZ2dlci11aSAuc3RyaXBlZC0tbmVhci13aGl0ZTpudGgtY2hpbGQob2RkKXtiYWNrZ3JvdW5kLWNvbG9yOiNmNGY0ZjR9LnN3YWdnZXItdWkgLnN0cmlwZS1saWdodDpudGgtY2hpbGQob2RkKXtiYWNrZ3JvdW5kLWNvbG9yOmhzbGEoMCwwJSwxMDAlLC4xKX0uc3dhZ2dlci11aSAuc3RyaXBlLWRhcms6bnRoLWNoaWxkKG9kZCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xKX0uc3dhZ2dlci11aSAuc3RyaWtley13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaDt0ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdofS5zd2FnZ2VyLXVpIC51bmRlcmxpbmV7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LnN3YWdnZXItdWkgLm5vLXVuZGVybGluZXstd2Via2l0LXRleHQtZGVjb3JhdGlvbjpub25lO3RleHQtZGVjb3JhdGlvbjpub25lfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSl7LnN3YWdnZXItdWkgLnN0cmlrZS1uc3std2Via2l0LXRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaH0uc3dhZ2dlci11aSAudW5kZXJsaW5lLW5zey13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5zd2FnZ2VyLXVpIC5uby11bmRlcmxpbmUtbnN7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246bm9uZTt0ZXh0LWRlY29yYXRpb246bm9uZX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKWFuZCAobWF4LXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC5zdHJpa2UtbXstd2Via2l0LXRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaH0uc3dhZ2dlci11aSAudW5kZXJsaW5lLW17LXdlYmtpdC10ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LnN3YWdnZXItdWkgLm5vLXVuZGVybGluZS1tey13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1kZWNvcmF0aW9uOm5vbmV9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLnN0cmlrZS1sey13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaDt0ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdofS5zd2FnZ2VyLXVpIC51bmRlcmxpbmUtbHstd2Via2l0LXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uc3dhZ2dlci11aSAubm8tdW5kZXJsaW5lLWx7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246bm9uZTt0ZXh0LWRlY29yYXRpb246bm9uZX19LnN3YWdnZXItdWkgLnRse3RleHQtYWxpZ246bGVmdH0uc3dhZ2dlci11aSAudHJ7dGV4dC1hbGlnbjpyaWdodH0uc3dhZ2dlci11aSAudGN7dGV4dC1hbGlnbjpjZW50ZXJ9LnN3YWdnZXItdWkgLnRqe3RleHQtYWxpZ246anVzdGlmeX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pey5zd2FnZ2VyLXVpIC50bC1uc3t0ZXh0LWFsaWduOmxlZnR9LnN3YWdnZXItdWkgLnRyLW5ze3RleHQtYWxpZ246cmlnaHR9LnN3YWdnZXItdWkgLnRjLW5ze3RleHQtYWxpZ246Y2VudGVyfS5zd2FnZ2VyLXVpIC50ai1uc3t0ZXh0LWFsaWduOmp1c3RpZnl9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSlhbmQgKG1heC13aWR0aDo2MGVtKXsuc3dhZ2dlci11aSAudGwtbXt0ZXh0LWFsaWduOmxlZnR9LnN3YWdnZXItdWkgLnRyLW17dGV4dC1hbGlnbjpyaWdodH0uc3dhZ2dlci11aSAudGMtbXt0ZXh0LWFsaWduOmNlbnRlcn0uc3dhZ2dlci11aSAudGotbXt0ZXh0LWFsaWduOmp1c3RpZnl9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLnRsLWx7dGV4dC1hbGlnbjpsZWZ0fS5zd2FnZ2VyLXVpIC50ci1se3RleHQtYWxpZ246cmlnaHR9LnN3YWdnZXItdWkgLnRjLWx7dGV4dC1hbGlnbjpjZW50ZXJ9LnN3YWdnZXItdWkgLnRqLWx7dGV4dC1hbGlnbjpqdXN0aWZ5fX0uc3dhZ2dlci11aSAudHRje3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemV9LnN3YWdnZXItdWkgLnR0bHt0ZXh0LXRyYW5zZm9ybTpsb3dlcmNhc2V9LnN3YWdnZXItdWkgLnR0dXt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9LnN3YWdnZXItdWkgLnR0bnt0ZXh0LXRyYW5zZm9ybTpub25lfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSl7LnN3YWdnZXItdWkgLnR0Yy1uc3t0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplfS5zd2FnZ2VyLXVpIC50dGwtbnN7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlfS5zd2FnZ2VyLXVpIC50dHUtbnN7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS5zd2FnZ2VyLXVpIC50dG4tbnN7dGV4dC10cmFuc2Zvcm06bm9uZX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKWFuZCAobWF4LXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC50dGMtbXt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplfS5zd2FnZ2VyLXVpIC50dGwtbXt0ZXh0LXRyYW5zZm9ybTpsb3dlcmNhc2V9LnN3YWdnZXItdWkgLnR0dS1te3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0uc3dhZ2dlci11aSAudHRuLW17dGV4dC10cmFuc2Zvcm06bm9uZX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2MGVtKXsuc3dhZ2dlci11aSAudHRjLWx7dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZX0uc3dhZ2dlci11aSAudHRsLWx7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlfS5zd2FnZ2VyLXVpIC50dHUtbHt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9LnN3YWdnZXItdWkgLnR0bi1se3RleHQtdHJhbnNmb3JtOm5vbmV9fS5zd2FnZ2VyLXVpIC5mLTYsLnN3YWdnZXItdWkgLmYtaGVhZGxpbmV7Zm9udC1zaXplOjZyZW19LnN3YWdnZXItdWkgLmYtNSwuc3dhZ2dlci11aSAuZi1zdWJoZWFkbGluZXtmb250LXNpemU6NXJlbX0uc3dhZ2dlci11aSAuZjF7Zm9udC1zaXplOjNyZW19LnN3YWdnZXItdWkgLmYye2ZvbnQtc2l6ZToyLjI1cmVtfS5zd2FnZ2VyLXVpIC5mM3tmb250LXNpemU6MS41cmVtfS5zd2FnZ2VyLXVpIC5mNHtmb250LXNpemU6MS4yNXJlbX0uc3dhZ2dlci11aSAuZjV7Zm9udC1zaXplOjFyZW19LnN3YWdnZXItdWkgLmY2e2ZvbnQtc2l6ZTouODc1cmVtfS5zd2FnZ2VyLXVpIC5mN3tmb250LXNpemU6Ljc1cmVtfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSl7LnN3YWdnZXItdWkgLmYtNi1ucywuc3dhZ2dlci11aSAuZi1oZWFkbGluZS1uc3tmb250LXNpemU6NnJlbX0uc3dhZ2dlci11aSAuZi01LW5zLC5zd2FnZ2VyLXVpIC5mLXN1YmhlYWRsaW5lLW5ze2ZvbnQtc2l6ZTo1cmVtfS5zd2FnZ2VyLXVpIC5mMS1uc3tmb250LXNpemU6M3JlbX0uc3dhZ2dlci11aSAuZjItbnN7Zm9udC1zaXplOjIuMjVyZW19LnN3YWdnZXItdWkgLmYzLW5ze2ZvbnQtc2l6ZToxLjVyZW19LnN3YWdnZXItdWkgLmY0LW5ze2ZvbnQtc2l6ZToxLjI1cmVtfS5zd2FnZ2VyLXVpIC5mNS1uc3tmb250LXNpemU6MXJlbX0uc3dhZ2dlci11aSAuZjYtbnN7Zm9udC1zaXplOi44NzVyZW19LnN3YWdnZXItdWkgLmY3LW5ze2ZvbnQtc2l6ZTouNzVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MzBlbSlhbmQgKG1heC13aWR0aDo2MGVtKXsuc3dhZ2dlci11aSAuZi02LW0sLnN3YWdnZXItdWkgLmYtaGVhZGxpbmUtbXtmb250LXNpemU6NnJlbX0uc3dhZ2dlci11aSAuZi01LW0sLnN3YWdnZXItdWkgLmYtc3ViaGVhZGxpbmUtbXtmb250LXNpemU6NXJlbX0uc3dhZ2dlci11aSAuZjEtbXtmb250LXNpemU6M3JlbX0uc3dhZ2dlci11aSAuZjItbXtmb250LXNpemU6Mi4yNXJlbX0uc3dhZ2dlci11aSAuZjMtbXtmb250LXNpemU6MS41cmVtfS5zd2FnZ2VyLXVpIC5mNC1te2ZvbnQtc2l6ZToxLjI1cmVtfS5zd2FnZ2VyLXVpIC5mNS1te2ZvbnQtc2l6ZToxcmVtfS5zd2FnZ2VyLXVpIC5mNi1te2ZvbnQtc2l6ZTouODc1cmVtfS5zd2FnZ2VyLXVpIC5mNy1te2ZvbnQtc2l6ZTouNzVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLmYtNi1sLC5zd2FnZ2VyLXVpIC5mLWhlYWRsaW5lLWx7Zm9udC1zaXplOjZyZW19LnN3YWdnZXItdWkgLmYtNS1sLC5zd2FnZ2VyLXVpIC5mLXN1YmhlYWRsaW5lLWx7Zm9udC1zaXplOjVyZW19LnN3YWdnZXItdWkgLmYxLWx7Zm9udC1zaXplOjNyZW19LnN3YWdnZXItdWkgLmYyLWx7Zm9udC1zaXplOjIuMjVyZW19LnN3YWdnZXItdWkgLmYzLWx7Zm9udC1zaXplOjEuNXJlbX0uc3dhZ2dlci11aSAuZjQtbHtmb250LXNpemU6MS4yNXJlbX0uc3dhZ2dlci11aSAuZjUtbHtmb250LXNpemU6MXJlbX0uc3dhZ2dlci11aSAuZjYtbHtmb250LXNpemU6Ljg3NXJlbX0uc3dhZ2dlci11aSAuZjctbHtmb250LXNpemU6Ljc1cmVtfX0uc3dhZ2dlci11aSAubWVhc3VyZXttYXgtd2lkdGg6MzBlbX0uc3dhZ2dlci11aSAubWVhc3VyZS13aWRle21heC13aWR0aDozNGVtfS5zd2FnZ2VyLXVpIC5tZWFzdXJlLW5hcnJvd3ttYXgtd2lkdGg6MjBlbX0uc3dhZ2dlci11aSAuaW5kZW50e21hcmdpbi1ib3R0b206MDttYXJnaW4tdG9wOjA7dGV4dC1pbmRlbnQ6MWVtfS5zd2FnZ2VyLXVpIC5zbWFsbC1jYXBze2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoic21jcCI7Zm9udC12YXJpYW50OnNtYWxsLWNhcHN9LnN3YWdnZXItdWkgLnRydW5jYXRle292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pey5zd2FnZ2VyLXVpIC5tZWFzdXJlLW5ze21heC13aWR0aDozMGVtfS5zd2FnZ2VyLXVpIC5tZWFzdXJlLXdpZGUtbnN7bWF4LXdpZHRoOjM0ZW19LnN3YWdnZXItdWkgLm1lYXN1cmUtbmFycm93LW5ze21heC13aWR0aDoyMGVtfS5zd2FnZ2VyLXVpIC5pbmRlbnQtbnN7bWFyZ2luLWJvdHRvbTowO21hcmdpbi10b3A6MDt0ZXh0LWluZGVudDoxZW19LnN3YWdnZXItdWkgLnNtYWxsLWNhcHMtbnN7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJzbWNwIjtmb250LXZhcmlhbnQ6c21hbGwtY2Fwc30uc3dhZ2dlci11aSAudHJ1bmNhdGUtbnN7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pYW5kIChtYXgtd2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLm1lYXN1cmUtbXttYXgtd2lkdGg6MzBlbX0uc3dhZ2dlci11aSAubWVhc3VyZS13aWRlLW17bWF4LXdpZHRoOjM0ZW19LnN3YWdnZXItdWkgLm1lYXN1cmUtbmFycm93LW17bWF4LXdpZHRoOjIwZW19LnN3YWdnZXItdWkgLmluZGVudC1te21hcmdpbi1ib3R0b206MDttYXJnaW4tdG9wOjA7dGV4dC1pbmRlbnQ6MWVtfS5zd2FnZ2VyLXVpIC5zbWFsbC1jYXBzLW17Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJzbWNwIjtmb250LXZhcmlhbnQ6c21hbGwtY2Fwc30uc3dhZ2dlci11aSAudHJ1bmNhdGUtbXtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLm1lYXN1cmUtbHttYXgtd2lkdGg6MzBlbX0uc3dhZ2dlci11aSAubWVhc3VyZS13aWRlLWx7bWF4LXdpZHRoOjM0ZW19LnN3YWdnZXItdWkgLm1lYXN1cmUtbmFycm93LWx7bWF4LXdpZHRoOjIwZW19LnN3YWdnZXItdWkgLmluZGVudC1se21hcmdpbi1ib3R0b206MDttYXJnaW4tdG9wOjA7dGV4dC1pbmRlbnQ6MWVtfS5zd2FnZ2VyLXVpIC5zbWFsbC1jYXBzLWx7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJzbWNwIjtmb250LXZhcmlhbnQ6c21hbGwtY2Fwc30uc3dhZ2dlci11aSAudHJ1bmNhdGUtbHtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9fS5zd2FnZ2VyLXVpIC5vdmVyZmxvdy1jb250YWluZXJ7b3ZlcmZsb3cteTpzY3JvbGx9LnN3YWdnZXItdWkgLmNlbnRlcnttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvfS5zd2FnZ2VyLXVpIC5tci1hdXRve21hcmdpbi1yaWdodDphdXRvfS5zd2FnZ2VyLXVpIC5tbC1hdXRve21hcmdpbi1sZWZ0OmF1dG99QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKXsuc3dhZ2dlci11aSAuY2VudGVyLW5ze21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG99LnN3YWdnZXItdWkgLm1yLWF1dG8tbnN7bWFyZ2luLXJpZ2h0OmF1dG99LnN3YWdnZXItdWkgLm1sLWF1dG8tbnN7bWFyZ2luLWxlZnQ6YXV0b319QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKWFuZCAobWF4LXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC5jZW50ZXItbXttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvfS5zd2FnZ2VyLXVpIC5tci1hdXRvLW17bWFyZ2luLXJpZ2h0OmF1dG99LnN3YWdnZXItdWkgLm1sLWF1dG8tbXttYXJnaW4tbGVmdDphdXRvfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC5jZW50ZXItbHttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvfS5zd2FnZ2VyLXVpIC5tci1hdXRvLWx7bWFyZ2luLXJpZ2h0OmF1dG99LnN3YWdnZXItdWkgLm1sLWF1dG8tbHttYXJnaW4tbGVmdDphdXRvfX0uc3dhZ2dlci11aSAuY2xpcHtwb3NpdGlvbjpmaXhlZCFpbXBvcnRhbnQ7X3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDtjbGlwOnJlY3QoMXB4IDFweCAxcHggMXB4KTtjbGlwOnJlY3QoMXB4LDFweCwxcHgsMXB4KX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pey5zd2FnZ2VyLXVpIC5jbGlwLW5ze3Bvc2l0aW9uOmZpeGVkIWltcG9ydGFudDtfcG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O2NsaXA6cmVjdCgxcHggMXB4IDFweCAxcHgpO2NsaXA6cmVjdCgxcHgsMXB4LDFweCwxcHgpfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pYW5kIChtYXgtd2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLmNsaXAtbXtwb3NpdGlvbjpmaXhlZCFpbXBvcnRhbnQ7X3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDtjbGlwOnJlY3QoMXB4IDFweCAxcHggMXB4KTtjbGlwOnJlY3QoMXB4LDFweCwxcHgsMXB4KX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2MGVtKXsuc3dhZ2dlci11aSAuY2xpcC1se3Bvc2l0aW9uOmZpeGVkIWltcG9ydGFudDtfcG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O2NsaXA6cmVjdCgxcHggMXB4IDFweCAxcHgpO2NsaXA6cmVjdCgxcHgsMXB4LDFweCwxcHgpfX0uc3dhZ2dlci11aSAud3Mtbm9ybWFse3doaXRlLXNwYWNlOm5vcm1hbH0uc3dhZ2dlci11aSAubm93cmFwe3doaXRlLXNwYWNlOm5vd3JhcH0uc3dhZ2dlci11aSAucHJle3doaXRlLXNwYWNlOnByZX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pey5zd2FnZ2VyLXVpIC53cy1ub3JtYWwtbnN7d2hpdGUtc3BhY2U6bm9ybWFsfS5zd2FnZ2VyLXVpIC5ub3dyYXAtbnN7d2hpdGUtc3BhY2U6bm93cmFwfS5zd2FnZ2VyLXVpIC5wcmUtbnN7d2hpdGUtc3BhY2U6cHJlfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pYW5kIChtYXgtd2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLndzLW5vcm1hbC1te3doaXRlLXNwYWNlOm5vcm1hbH0uc3dhZ2dlci11aSAubm93cmFwLW17d2hpdGUtc3BhY2U6bm93cmFwfS5zd2FnZ2VyLXVpIC5wcmUtbXt3aGl0ZS1zcGFjZTpwcmV9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLndzLW5vcm1hbC1se3doaXRlLXNwYWNlOm5vcm1hbH0uc3dhZ2dlci11aSAubm93cmFwLWx7d2hpdGUtc3BhY2U6bm93cmFwfS5zd2FnZ2VyLXVpIC5wcmUtbHt3aGl0ZS1zcGFjZTpwcmV9fS5zd2FnZ2VyLXVpIC52LWJhc2V7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9LnN3YWdnZXItdWkgLnYtbWlke3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uc3dhZ2dlci11aSAudi10b3B7dmVydGljYWwtYWxpZ246dG9wfS5zd2FnZ2VyLXVpIC52LWJ0bXt2ZXJ0aWNhbC1hbGlnbjpib3R0b219QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMGVtKXsuc3dhZ2dlci11aSAudi1iYXNlLW5ze3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfS5zd2FnZ2VyLXVpIC52LW1pZC1uc3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnN3YWdnZXItdWkgLnYtdG9wLW5ze3ZlcnRpY2FsLWFsaWduOnRvcH0uc3dhZ2dlci11aSAudi1idG0tbnN7dmVydGljYWwtYWxpZ246Ym90dG9tfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjMwZW0pYW5kIChtYXgtd2lkdGg6NjBlbSl7LnN3YWdnZXItdWkgLnYtYmFzZS1te3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfS5zd2FnZ2VyLXVpIC52LW1pZC1te3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uc3dhZ2dlci11aSAudi10b3AtbXt2ZXJ0aWNhbC1hbGlnbjp0b3B9LnN3YWdnZXItdWkgLnYtYnRtLW17dmVydGljYWwtYWxpZ246Ym90dG9tfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjYwZW0pey5zd2FnZ2VyLXVpIC52LWJhc2UtbHt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX0uc3dhZ2dlci11aSAudi1taWQtbHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnN3YWdnZXItdWkgLnYtdG9wLWx7dmVydGljYWwtYWxpZ246dG9wfS5zd2FnZ2VyLXVpIC52LWJ0bS1se3ZlcnRpY2FsLWFsaWduOmJvdHRvbX19LnN3YWdnZXItdWkgLmRpbXtvcGFjaXR5OjE7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMgZWFzZS1pbn0uc3dhZ2dlci11aSAuZGltOmZvY3VzLC5zd2FnZ2VyLXVpIC5kaW06aG92ZXJ7b3BhY2l0eTouNTt0cmFuc2l0aW9uOm9wYWNpdHkgLjE1cyBlYXNlLWlufS5zd2FnZ2VyLXVpIC5kaW06YWN0aXZle29wYWNpdHk6Ljg7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMgZWFzZS1vdXR9LnN3YWdnZXItdWkgLmdsb3d7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMgZWFzZS1pbn0uc3dhZ2dlci11aSAuZ2xvdzpmb2N1cywuc3dhZ2dlci11aSAuZ2xvdzpob3ZlcntvcGFjaXR5OjE7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMgZWFzZS1pbn0uc3dhZ2dlci11aSAuaGlkZS1jaGlsZCAuY2hpbGR7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuMTVzIGVhc2UtaW59LnN3YWdnZXItdWkgLmhpZGUtY2hpbGQ6YWN0aXZlIC5jaGlsZCwuc3dhZ2dlci11aSAuaGlkZS1jaGlsZDpmb2N1cyAuY2hpbGQsLnN3YWdnZXItdWkgLmhpZGUtY2hpbGQ6aG92ZXIgLmNoaWxke29wYWNpdHk6MTt0cmFuc2l0aW9uOm9wYWNpdHkgLjE1cyBlYXNlLWlufS5zd2FnZ2VyLXVpIC51bmRlcmxpbmUtaG92ZXI6Zm9jdXMsLnN3YWdnZXItdWkgLnVuZGVybGluZS1ob3Zlcjpob3Zlcnstd2Via2l0LXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uc3dhZ2dlci11aSAuZ3Jvd3stbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjI1cyBlYXNlLW91dH0uc3dhZ2dlci11aSAuZ3Jvdzpmb2N1cywuc3dhZ2dlci11aSAuZ3Jvdzpob3Zlcnt0cmFuc2Zvcm06c2NhbGUoMS4wNSl9LnN3YWdnZXItdWkgLmdyb3c6YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOSl9LnN3YWdnZXItdWkgLmdyb3ctbGFyZ2V7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zaXRpb246dHJhbnNmb3JtIC4yNXMgZWFzZS1pbi1vdXR9LnN3YWdnZXItdWkgLmdyb3ctbGFyZ2U6Zm9jdXMsLnN3YWdnZXItdWkgLmdyb3ctbGFyZ2U6aG92ZXJ7dHJhbnNmb3JtOnNjYWxlKDEuMil9LnN3YWdnZXItdWkgLmdyb3ctbGFyZ2U6YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTUpfS5zd2FnZ2VyLXVpIC5wb2ludGVyOmhvdmVye2N1cnNvcjpwb2ludGVyfS5zd2FnZ2VyLXVpIC5zaGFkb3ctaG92ZXJ7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbjphbGwgLjVzIGN1YmljLWJlemllciguMTY1LC44NCwuNDQsMSl9LnN3YWdnZXItdWkgLnNoYWRvdy1ob3ZlcjphZnRlcntib3JkZXItcmFkaXVzOmluaGVyaXQ7Ym94LXNoYWRvdzowIDAgMTZweCAycHggcmdiYSgwLDAsMCwuMik7Y29udGVudDoiIjtoZWlnaHQ6MTAwJTtsZWZ0OjA7b3BhY2l0eTowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3RyYW5zaXRpb246b3BhY2l0eSAuNXMgY3ViaWMtYmV6aWVyKC4xNjUsLjg0LC40NCwxKTt3aWR0aDoxMDAlO3otaW5kZXg6LTF9LnN3YWdnZXItdWkgLnNoYWRvdy1ob3Zlcjpmb2N1czphZnRlciwuc3dhZ2dlci11aSAuc2hhZG93LWhvdmVyOmhvdmVyOmFmdGVye29wYWNpdHk6MX0uc3dhZ2dlci11aSAuYmctYW5pbWF0ZSwuc3dhZ2dlci11aSAuYmctYW5pbWF0ZTpmb2N1cywuc3dhZ2dlci11aSAuYmctYW5pbWF0ZTpob3Zlcnt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjE1cyBlYXNlLWluLW91dH0uc3dhZ2dlci11aSAuei0we3otaW5kZXg6MH0uc3dhZ2dlci11aSAuei0xe3otaW5kZXg6MX0uc3dhZ2dlci11aSAuei0ye3otaW5kZXg6Mn0uc3dhZ2dlci11aSAuei0ze3otaW5kZXg6M30uc3dhZ2dlci11aSAuei00e3otaW5kZXg6NH0uc3dhZ2dlci11aSAuei01e3otaW5kZXg6NX0uc3dhZ2dlci11aSAuei05OTl7ei1pbmRleDo5OTl9LnN3YWdnZXItdWkgLnotOTk5OXt6LWluZGV4Ojk5OTl9LnN3YWdnZXItdWkgLnotbWF4e3otaW5kZXg6MjE0NzQ4MzY0N30uc3dhZ2dlci11aSAuei1pbmhlcml0e3otaW5kZXg6aW5oZXJpdH0uc3dhZ2dlci11aSAuei1pbml0aWFsLC5zd2FnZ2VyLXVpIC56LXVuc2V0e3otaW5kZXg6YXV0b30uc3dhZ2dlci11aSAubmVzdGVkLWNvcHktbGluZS1oZWlnaHQgb2wsLnN3YWdnZXItdWkgLm5lc3RlZC1jb3B5LWxpbmUtaGVpZ2h0IHAsLnN3YWdnZXItdWkgLm5lc3RlZC1jb3B5LWxpbmUtaGVpZ2h0IHVse2xpbmUtaGVpZ2h0OjEuNX0uc3dhZ2dlci11aSAubmVzdGVkLWhlYWRsaW5lLWxpbmUtaGVpZ2h0IGgxLC5zd2FnZ2VyLXVpIC5uZXN0ZWQtaGVhZGxpbmUtbGluZS1oZWlnaHQgaDIsLnN3YWdnZXItdWkgLm5lc3RlZC1oZWFkbGluZS1saW5lLWhlaWdodCBoMywuc3dhZ2dlci11aSAubmVzdGVkLWhlYWRsaW5lLWxpbmUtaGVpZ2h0IGg0LC5zd2FnZ2VyLXVpIC5uZXN0ZWQtaGVhZGxpbmUtbGluZS1oZWlnaHQgaDUsLnN3YWdnZXItdWkgLm5lc3RlZC1oZWFkbGluZS1saW5lLWhlaWdodCBoNntsaW5lLWhlaWdodDoxLjI1fS5zd2FnZ2VyLXVpIC5uZXN0ZWQtbGlzdC1yZXNldCBvbCwuc3dhZ2dlci11aSAubmVzdGVkLWxpc3QtcmVzZXQgdWx7bGlzdC1zdHlsZS10eXBlOm5vbmU7bWFyZ2luLWxlZnQ6MDtwYWRkaW5nLWxlZnQ6MH0uc3dhZ2dlci11aSAubmVzdGVkLWNvcHktaW5kZW50IHArcHttYXJnaW4tYm90dG9tOjA7bWFyZ2luLXRvcDowO3RleHQtaW5kZW50Oi4xZW19LnN3YWdnZXItdWkgLm5lc3RlZC1jb3B5LXNlcGVyYXRvciBwK3B7bWFyZ2luLXRvcDoxLjVlbX0uc3dhZ2dlci11aSAubmVzdGVkLWltZyBpbWd7ZGlzcGxheTpibG9jazttYXgtd2lkdGg6MTAwJTt3aWR0aDoxMDAlfS5zd2FnZ2VyLXVpIC5uZXN0ZWQtbGlua3MgYXtjb2xvcjojMzU3ZWRkO3RyYW5zaXRpb246Y29sb3IgLjE1cyBlYXNlLWlufS5zd2FnZ2VyLXVpIC5uZXN0ZWQtbGlua3MgYTpmb2N1cywuc3dhZ2dlci11aSAubmVzdGVkLWxpbmtzIGE6aG92ZXJ7Y29sb3I6Izk2Y2NmZjt0cmFuc2l0aW9uOmNvbG9yIC4xNXMgZWFzZS1pbn0uc3dhZ2dlci11aSAud3JhcHBlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luOjAgYXV0bzttYXgtd2lkdGg6MTQ2MHB4O3BhZGRpbmc6MCAyMHB4O3dpZHRoOjEwMCV9LnN3YWdnZXItdWkgLm9wYmxvY2stdGFnLXNlY3Rpb257ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uc3dhZ2dlci11aSAudHJ5LW91dC5idG4tZ3JvdXB7ZGlzcGxheTpmbGV4O2ZsZXg6LjEgMiBhdXRvO3BhZGRpbmc6MH0uc3dhZ2dlci11aSAudHJ5LW91dF9fYnRue21hcmdpbi1sZWZ0OjEuMjVyZW19LnN3YWdnZXItdWkgLm9wYmxvY2stdGFne2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDU5LDY1LDgxLC4zKTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7cGFkZGluZzoxMHB4IDIwcHggMTBweCAxMHB4O3RyYW5zaXRpb246YWxsIC4yc30uc3dhZ2dlci11aSAub3BibG9jay10YWc6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4wMil9LnN3YWdnZXItdWkgLm9wYmxvY2stdGFne2NvbG9yOiMzYjQxNTE7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6MjRweDttYXJnaW46MCAwIDVweH0uc3dhZ2dlci11aSAub3BibG9jay10YWcubm8tZGVzYyBzcGFue2ZsZXg6MX0uc3dhZ2dlci11aSAub3BibG9jay10YWcgc3Zne3RyYW5zaXRpb246YWxsIC40c30uc3dhZ2dlci11aSAub3BibG9jay10YWcgc21hbGx7Y29sb3I6IzNiNDE1MTtmbGV4OjI7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDA7cGFkZGluZzowIDEwcHh9LnN3YWdnZXItdWkgLm9wYmxvY2stdGFnPmRpdntmbGV4OjEgMSAxNTBweDtmb250LXdlaWdodDo0MDA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfUBtZWRpYShtYXgtd2lkdGg6NjQwcHgpey5zd2FnZ2VyLXVpIC5vcGJsb2NrLXRhZyBzbWFsbCwuc3dhZ2dlci11aSAub3BibG9jay10YWc+ZGl2e2ZsZXg6MX19LnN3YWdnZXItdWkgLm9wYmxvY2stdGFnIC5pbmZvX19leHRlcm5hbGRvY3N7dGV4dC1hbGlnbjpyaWdodH0uc3dhZ2dlci11aSAucGFyYW1ldGVyX190eXBle2NvbG9yOiMzYjQxNTE7Zm9udC1mYW1pbHk6bW9ub3NwYWNlO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjYwMDtwYWRkaW5nOjVweCAwfS5zd2FnZ2VyLXVpIC5wYXJhbWV0ZXItY29udHJvbHN7bWFyZ2luLXRvcDouNzVlbX0uc3dhZ2dlci11aSAuZXhhbXBsZXNfX3RpdGxle2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjEuMWVtO2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW4tYm90dG9tOi43NWVtfS5zd2FnZ2VyLXVpIC5leGFtcGxlc19fc2VjdGlvbnttYXJnaW4tdG9wOjEuNWVtfS5zd2FnZ2VyLXVpIC5leGFtcGxlc19fc2VjdGlvbi1oZWFkZXJ7Zm9udC1zaXplOi45cmVtO2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW4tYm90dG9tOi41cmVtfS5zd2FnZ2VyLXVpIC5leGFtcGxlcy1zZWxlY3R7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWJvdHRvbTouNzVlbX0uc3dhZ2dlci11aSAuZXhhbXBsZXMtc2VsZWN0IC5leGFtcGxlcy1zZWxlY3QtZWxlbWVudHt3aWR0aDoxMDAlfS5zd2FnZ2VyLXVpIC5leGFtcGxlcy1zZWxlY3RfX3NlY3Rpb24tbGFiZWx7Zm9udC1zaXplOi45cmVtO2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW4tcmlnaHQ6LjVyZW19LnN3YWdnZXItdWkgLmV4YW1wbGVfX3NlY3Rpb257bWFyZ2luLXRvcDoxLjVlbX0uc3dhZ2dlci11aSAuZXhhbXBsZV9fc2VjdGlvbi1oZWFkZXJ7Zm9udC1zaXplOi45cmVtO2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW4tYm90dG9tOi41cmVtfS5zd2FnZ2VyLXVpIC52aWV3LWxpbmUtbGlua3tjdXJzb3I6cG9pbnRlcjttYXJnaW46MCA1cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOjNweDt0cmFuc2l0aW9uOmFsbCAuNXM7d2lkdGg6MjBweH0uc3dhZ2dlci11aSAub3BibG9ja3tib3JkZXI6MXB4IHNvbGlkICMwMDA7Ym9yZGVyLXJhZGl1czo0cHg7Ym94LXNoYWRvdzowIDAgM3B4IHJnYmEoMCwwLDAsLjE5KTttYXJnaW46MCAwIDE1cHh9LnN3YWdnZXItdWkgLm9wYmxvY2sgLnRhYi1oZWFkZXJ7ZGlzcGxheTpmbGV4O2ZsZXg6MX0uc3dhZ2dlci11aSAub3BibG9jayAudGFiLWhlYWRlciAudGFiLWl0ZW17Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzowIDQwcHh9LnN3YWdnZXItdWkgLm9wYmxvY2sgLnRhYi1oZWFkZXIgLnRhYi1pdGVtOmZpcnN0LW9mLXR5cGV7cGFkZGluZzowIDQwcHggMCAwfS5zd2FnZ2VyLXVpIC5vcGJsb2NrIC50YWItaGVhZGVyIC50YWItaXRlbS5hY3RpdmUgaDQgc3Bhbntwb3NpdGlvbjpyZWxhdGl2ZX0uc3dhZ2dlci11aSAub3BibG9jayAudGFiLWhlYWRlciAudGFiLWl0ZW0uYWN0aXZlIGg0IHNwYW46YWZ0ZXJ7YmFja2dyb3VuZDpncmV5O2JvdHRvbTotMTVweDtjb250ZW50OiIiO2hlaWdodDo0cHg7bGVmdDo1MCU7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7d2lkdGg6MTIwJX0uc3dhZ2dlci11aSAub3BibG9jay5pcy1vcGVuIC5vcGJsb2NrLXN1bW1hcnl7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzAwMH0uc3dhZ2dlci11aSAub3BibG9jayAub3BibG9jay1zZWN0aW9uLWhlYWRlcnthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDpoc2xhKDAsMCUsMTAwJSwuOCk7Ym94LXNoYWRvdzowIDFweCAycHggcmdiYSgwLDAsMCwuMSk7ZGlzcGxheTpmbGV4O21pbi1oZWlnaHQ6NTBweDtwYWRkaW5nOjhweCAyMHB4fS5zd2FnZ2VyLXVpIC5vcGJsb2NrIC5vcGJsb2NrLXNlY3Rpb24taGVhZGVyPmxhYmVse2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjojM2I0MTUxO2Rpc3BsYXk6ZmxleDtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW46MCAwIDAgYXV0b30uc3dhZ2dlci11aSAub3BibG9jayAub3BibG9jay1zZWN0aW9uLWhlYWRlcj5sYWJlbD5zcGFue3BhZGRpbmc6MCAxMHB4IDAgMH0uc3dhZ2dlci11aSAub3BibG9jayAub3BibG9jay1zZWN0aW9uLWhlYWRlciBoNHtjb2xvcjojM2I0MTUxO2ZsZXg6MTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O21hcmdpbjowfS5zd2FnZ2VyLXVpIC5vcGJsb2NrIC5vcGJsb2NrLXN1bW1hcnktbWV0aG9ke2JhY2tncm91bmQ6IzAwMDtib3JkZXItcmFkaXVzOjNweDtjb2xvcjojZmZmO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NzAwO21pbi13aWR0aDo4MHB4O3BhZGRpbmc6NnB4IDA7dGV4dC1hbGlnbjpjZW50ZXI7dGV4dC1zaGFkb3c6MCAxcHggMCByZ2JhKDAsMCwwLC4xKX1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KXsuc3dhZ2dlci11aSAub3BibG9jayAub3BibG9jay1zdW1tYXJ5LW1ldGhvZHtmb250LXNpemU6MTJweH19LnN3YWdnZXItdWkgLm9wYmxvY2sgLm9wYmxvY2stc3VtbWFyeS1vcGVyYXRpb24taWQsLnN3YWdnZXItdWkgLm9wYmxvY2sgLm9wYmxvY2stc3VtbWFyeS1wYXRoLC5zd2FnZ2VyLXVpIC5vcGJsb2NrIC5vcGJsb2NrLXN1bW1hcnktcGF0aF9fZGVwcmVjYXRlZHthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6IzNiNDE1MTtkaXNwbGF5OmZsZXg7Zm9udC1mYW1pbHk6bW9ub3NwYWNlO2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjYwMDt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9QG1lZGlhKG1heC13aWR0aDo3NjhweCl7LnN3YWdnZXItdWkgLm9wYmxvY2sgLm9wYmxvY2stc3VtbWFyeS1vcGVyYXRpb24taWQsLnN3YWdnZXItdWkgLm9wYmxvY2sgLm9wYmxvY2stc3VtbWFyeS1wYXRoLC5zd2FnZ2VyLXVpIC5vcGJsb2NrIC5vcGJsb2NrLXN1bW1hcnktcGF0aF9fZGVwcmVjYXRlZHtmb250LXNpemU6MTJweH19LnN3YWdnZXItdWkgLm9wYmxvY2sgLm9wYmxvY2stc3VtbWFyeS1wYXRoe2ZsZXgtc2hyaW5rOjF9QG1lZGlhKG1heC13aWR0aDo2NDBweCl7LnN3YWdnZXItdWkgLm9wYmxvY2sgLm9wYmxvY2stc3VtbWFyeS1wYXRoe21heC13aWR0aDoxMDAlfX0uc3dhZ2dlci11aSAub3BibG9jayAub3BibG9jay1zdW1tYXJ5LXBhdGhfX2RlcHJlY2F0ZWR7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdoO3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2h9LnN3YWdnZXItdWkgLm9wYmxvY2sgLm9wYmxvY2stc3VtbWFyeS1vcGVyYXRpb24taWR7Zm9udC1zaXplOjE0cHh9LnN3YWdnZXItdWkgLm9wYmxvY2sgLm9wYmxvY2stc3VtbWFyeS1kZXNjcmlwdGlvbntjb2xvcjojM2I0MTUxO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7Zm9udC1zaXplOjEzcHg7d29yZC1icmVhazpicmVhay13b3JkfS5zd2FnZ2VyLXVpIC5vcGJsb2NrIC5vcGJsb2NrLXN1bW1hcnktcGF0aC1kZXNjcmlwdGlvbi13cmFwcGVye2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtZ3JvdzoxO2ZsZXgtd3JhcDp3cmFwO2dhcDowIDEwcHg7cGFkZGluZzowIDEwcHh9QG1lZGlhKG1heC13aWR0aDo1NTBweCl7LnN3YWdnZXItdWkgLm9wYmxvY2sgLm9wYmxvY2stc3VtbWFyeS1wYXRoLWRlc2NyaXB0aW9uLXdyYXBwZXJ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59fS5zd2FnZ2VyLXVpIC5vcGJsb2NrIC5vcGJsb2NrLXN1bW1hcnl7YWxpZ24taXRlbXM6Y2VudGVyO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6ZmxleDtwYWRkaW5nOjVweH0uc3dhZ2dlci11aSAub3BibG9jayAub3BibG9jay1zdW1tYXJ5IC52aWV3LWxpbmUtbGlua3tjdXJzb3I6cG9pbnRlcjttYXJnaW46MDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MnB4O3RyYW5zaXRpb246YWxsIC41czt3aWR0aDowfS5zd2FnZ2VyLXVpIC5vcGJsb2NrIC5vcGJsb2NrLXN1bW1hcnk6aG92ZXIgLnZpZXctbGluZS1saW5re21hcmdpbjowIDVweDt3aWR0aDoxOHB4fS5zd2FnZ2VyLXVpIC5vcGJsb2NrIC5vcGJsb2NrLXN1bW1hcnk6aG92ZXIgLnZpZXctbGluZS1saW5rLmNvcHktdG8tY2xpcGJvYXJke3dpZHRoOjI0cHh9LnN3YWdnZXItdWkgLm9wYmxvY2sub3BibG9jay1wb3N0e2JhY2tncm91bmQ6cmdiYSg3MywyMDQsMTQ0LC4xKTtib3JkZXItY29sb3I6IzQ5Y2M5MH0uc3dhZ2dlci11aSAub3BibG9jay5vcGJsb2NrLXBvc3QgLm9wYmxvY2stc3VtbWFyeS1tZXRob2R7YmFja2dyb3VuZDojNDljYzkwfS5zd2FnZ2VyLXVpIC5vcGJsb2NrLm9wYmxvY2stcG9zdCAub3BibG9jay1zdW1tYXJ5e2JvcmRlci1jb2xvcjojNDljYzkwfS5zd2FnZ2VyLXVpIC5vcGJsb2NrLm9wYmxvY2stcG9zdCAudGFiLWhlYWRlciAudGFiLWl0ZW0uYWN0aXZlIGg0IHNwYW46YWZ0ZXJ7YmFja2dyb3VuZDojNDljYzkwfS5zd2FnZ2VyLXVpIC5vcGJsb2NrLm9wYmxvY2stcHV0e2JhY2tncm91bmQ6cmdiYSgyNTIsMTYxLDQ4LC4xKTtib3JkZXItY29sb3I6I2ZjYTEzMH0uc3dhZ2dlci11aSAub3BibG9jay5vcGJsb2NrLXB1dCAub3BibG9jay1zdW1tYXJ5LW1ldGhvZHtiYWNrZ3JvdW5kOiNmY2ExMzB9LnN3YWdnZXItdWkgLm9wYmxvY2sub3BibG9jay1wdXQgLm9wYmxvY2stc3VtbWFyeXtib3JkZXItY29sb3I6I2ZjYTEzMH0uc3dhZ2dlci11aSAub3BibG9jay5vcGJsb2NrLXB1dCAudGFiLWhlYWRlciAudGFiLWl0ZW0uYWN0aXZlIGg0IHNwYW46YWZ0ZXJ7YmFja2dyb3VuZDojZmNhMTMwfS5zd2FnZ2VyLXVpIC5vcGJsb2NrLm9wYmxvY2stZGVsZXRle2JhY2tncm91bmQ6cmdiYSgyNDksNjIsNjIsLjEpO2JvcmRlci1jb2xvcjojZjkzZTNlfS5zd2FnZ2VyLXVpIC5vcGJsb2NrLm9wYmxvY2stZGVsZXRlIC5vcGJsb2NrLXN1bW1hcnktbWV0aG9ke2JhY2tncm91bmQ6I2Y5M2UzZX0uc3dhZ2dlci11aSAub3BibG9jay5vcGJsb2NrLWRlbGV0ZSAub3BibG9jay1zdW1tYXJ5e2JvcmRlci1jb2xvcjojZjkzZTNlfS5zd2FnZ2VyLXVpIC5vcGJsb2NrLm9wYmxvY2stZGVsZXRlIC50YWItaGVhZGVyIC50YWItaXRlbS5hY3RpdmUgaDQgc3BhbjphZnRlcntiYWNrZ3JvdW5kOiNmOTNlM2V9LnN3YWdnZXItdWkgLm9wYmxvY2sub3BibG9jay1nZXR7YmFja2dyb3VuZDpyZ2JhKDk3LDE3NSwyNTQsLjEpO2JvcmRlci1jb2xvcjojNjFhZmZlfS5zd2FnZ2VyLXVpIC5vcGJsb2NrLm9wYmxvY2stZ2V0IC5vcGJsb2NrLXN1bW1hcnktbWV0aG9ke2JhY2tncm91bmQ6IzYxYWZmZX0uc3dhZ2dlci11aSAub3BibG9jay5vcGJsb2NrLWdldCAub3BibG9jay1zdW1tYXJ5e2JvcmRlci1jb2xvcjojNjFhZmZlfS5zd2FnZ2VyLXVpIC5vcGJsb2NrLm9wYmxvY2stZ2V0IC50YWItaGVhZGVyIC50YWItaXRlbS5hY3RpdmUgaDQgc3BhbjphZnRlcntiYWNrZ3JvdW5kOiM2MWFmZmV9LnN3YWdnZXItdWkgLm9wYmxvY2sub3BibG9jay1wYXRjaHtiYWNrZ3JvdW5kOnJnYmEoODAsMjI3LDE5NCwuMSk7Ym9yZGVyLWNvbG9yOiM1MGUzYzJ9LnN3YWdnZXItdWkgLm9wYmxvY2sub3BibG9jay1wYXRjaCAub3BibG9jay1zdW1tYXJ5LW1ldGhvZHtiYWNrZ3JvdW5kOiM1MGUzYzJ9LnN3YWdnZXItdWkgLm9wYmxvY2sub3BibG9jay1wYXRjaCAub3BibG9jay1zdW1tYXJ5e2JvcmRlci1jb2xvcjojNTBlM2MyfS5zd2FnZ2VyLXVpIC5vcGJsb2NrLm9wYmxvY2stcGF0Y2ggLnRhYi1oZWFkZXIgLnRhYi1pdGVtLmFjdGl2ZSBoNCBzcGFuOmFmdGVye2JhY2tncm91bmQ6IzUwZTNjMn0uc3dhZ2dlci11aSAub3BibG9jay5vcGJsb2NrLWhlYWR7YmFja2dyb3VuZDpyZ2JhKDE0NCwxOCwyNTQsLjEpO2JvcmRlci1jb2xvcjojOTAxMmZlfS5zd2FnZ2VyLXVpIC5vcGJsb2NrLm9wYmxvY2staGVhZCAub3BibG9jay1zdW1tYXJ5LW1ldGhvZHtiYWNrZ3JvdW5kOiM5MDEyZmV9LnN3YWdnZXItdWkgLm9wYmxvY2sub3BibG9jay1oZWFkIC5vcGJsb2NrLXN1bW1hcnl7Ym9yZGVyLWNvbG9yOiM5MDEyZmV9LnN3YWdnZXItdWkgLm9wYmxvY2sub3BibG9jay1oZWFkIC50YWItaGVhZGVyIC50YWItaXRlbS5hY3RpdmUgaDQgc3BhbjphZnRlcntiYWNrZ3JvdW5kOiM5MDEyZmV9LnN3YWdnZXItdWkgLm9wYmxvY2sub3BibG9jay1vcHRpb25ze2JhY2tncm91bmQ6cmdiYSgxMyw5MCwxNjcsLjEpO2JvcmRlci1jb2xvcjojMGQ1YWE3fS5zd2FnZ2VyLXVpIC5vcGJsb2NrLm9wYmxvY2stb3B0aW9ucyAub3BibG9jay1zdW1tYXJ5LW1ldGhvZHtiYWNrZ3JvdW5kOiMwZDVhYTd9LnN3YWdnZXItdWkgLm9wYmxvY2sub3BibG9jay1vcHRpb25zIC5vcGJsb2NrLXN1bW1hcnl7Ym9yZGVyLWNvbG9yOiMwZDVhYTd9LnN3YWdnZXItdWkgLm9wYmxvY2sub3BibG9jay1vcHRpb25zIC50YWItaGVhZGVyIC50YWItaXRlbS5hY3RpdmUgaDQgc3BhbjphZnRlcntiYWNrZ3JvdW5kOiMwZDVhYTd9LnN3YWdnZXItdWkgLm9wYmxvY2sub3BibG9jay1kZXByZWNhdGVke2JhY2tncm91bmQ6aHNsYSgwLDAlLDkyJSwuMSk7Ym9yZGVyLWNvbG9yOiNlYmViZWI7b3BhY2l0eTouNn0uc3dhZ2dlci11aSAub3BibG9jay5vcGJsb2NrLWRlcHJlY2F0ZWQgLm9wYmxvY2stc3VtbWFyeS1tZXRob2R7YmFja2dyb3VuZDojZWJlYmVifS5zd2FnZ2VyLXVpIC5vcGJsb2NrLm9wYmxvY2stZGVwcmVjYXRlZCAub3BibG9jay1zdW1tYXJ5e2JvcmRlci1jb2xvcjojZWJlYmVifS5zd2FnZ2VyLXVpIC5vcGJsb2NrLm9wYmxvY2stZGVwcmVjYXRlZCAudGFiLWhlYWRlciAudGFiLWl0ZW0uYWN0aXZlIGg0IHNwYW46YWZ0ZXJ7YmFja2dyb3VuZDojZWJlYmVifS5zd2FnZ2VyLXVpIC5vcGJsb2NrIC5vcGJsb2NrLXNjaGVtZXN7cGFkZGluZzo4cHggMjBweH0uc3dhZ2dlci11aSAub3BibG9jayAub3BibG9jay1zY2hlbWVzIC5zY2hlbWVzLXRpdGxle3BhZGRpbmc6MCAxMHB4IDAgMH0uc3dhZ2dlci11aSAuZmlsdGVyIC5vcGVyYXRpb24tZmlsdGVyLWlucHV0e2JvcmRlcjoycHggc29saWQgI2Q4ZGRlNzttYXJnaW46MjBweCAwO3BhZGRpbmc6MTBweDt3aWR0aDoxMDAlfS5zd2FnZ2VyLXVpIC5kb3dubG9hZC11cmwtd3JhcHBlciAuZmFpbGVkLC5zd2FnZ2VyLXVpIC5maWx0ZXIgLmZhaWxlZHtjb2xvcjpyZWR9LnN3YWdnZXItdWkgLmRvd25sb2FkLXVybC13cmFwcGVyIC5sb2FkaW5nLC5zd2FnZ2VyLXVpIC5maWx0ZXIgLmxvYWRpbmd7Y29sb3I6I2FhYX0uc3dhZ2dlci11aSAubW9kZWwtZXhhbXBsZXttYXJnaW4tdG9wOjFlbX0uc3dhZ2dlci11aSAubW9kZWwtZXhhbXBsZSAubW9kZWwtY29udGFpbmVye292ZXJmbG93LXg6YXV0bzt3aWR0aDoxMDAlfS5zd2FnZ2VyLXVpIC5tb2RlbC1leGFtcGxlIC5tb2RlbC1jb250YWluZXIgLm1vZGVsLWhpbnQ6bm90KC5tb2RlbC1oaW50LS1lbWJlZGRlZCl7dG9wOi0xLjE1ZW19LnN3YWdnZXItdWkgLnRhYntkaXNwbGF5OmZsZXg7bGlzdC1zdHlsZTpub25lO3BhZGRpbmc6MH0uc3dhZ2dlci11aSAudGFiIGxpe2NvbG9yOiMzYjQxNTE7Y3Vyc29yOnBvaW50ZXI7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6MTJweDttaW4td2lkdGg6NjBweDtwYWRkaW5nOjB9LnN3YWdnZXItdWkgLnRhYiBsaTpmaXJzdC1vZi10eXBle3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MTJweDtwb3NpdGlvbjpyZWxhdGl2ZX0uc3dhZ2dlci11aSAudGFiIGxpOmZpcnN0LW9mLXR5cGU6YWZ0ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4yKTtjb250ZW50OiIiO2hlaWdodDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjZweDt0b3A6MDt3aWR0aDoxcHh9LnN3YWdnZXItdWkgLnRhYiBsaS5hY3RpdmV7Zm9udC13ZWlnaHQ6NzAwfS5zd2FnZ2VyLXVpIC50YWIgbGkgYnV0dG9uLnRhYmxpbmtze2JhY2tncm91bmQ6bm9uZTtib3JkZXI6MDtjb2xvcjppbmhlcml0O2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC13ZWlnaHQ6aW5oZXJpdDtwYWRkaW5nOjB9LnN3YWdnZXItdWkgLm9wYmxvY2stZGVzY3JpcHRpb24td3JhcHBlciwuc3dhZ2dlci11aSAub3BibG9jay1leHRlcm5hbC1kb2NzLXdyYXBwZXIsLnN3YWdnZXItdWkgLm9wYmxvY2stdGl0bGVfbm9ybWFse2NvbG9yOiMzYjQxNTE7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6MTJweDttYXJnaW46MCAwIDVweDtwYWRkaW5nOjE1cHggMjBweH0uc3dhZ2dlci11aSAub3BibG9jay1kZXNjcmlwdGlvbi13cmFwcGVyIGg0LC5zd2FnZ2VyLXVpIC5vcGJsb2NrLWV4dGVybmFsLWRvY3Mtd3JhcHBlciBoNCwuc3dhZ2dlci11aSAub3BibG9jay10aXRsZV9ub3JtYWwgaDR7Y29sb3I6IzNiNDE1MTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O21hcmdpbjowIDAgNXB4fS5zd2FnZ2VyLXVpIC5vcGJsb2NrLWRlc2NyaXB0aW9uLXdyYXBwZXIgcCwuc3dhZ2dlci11aSAub3BibG9jay1leHRlcm5hbC1kb2NzLXdyYXBwZXIgcCwuc3dhZ2dlci11aSAub3BibG9jay10aXRsZV9ub3JtYWwgcHtjb2xvcjojM2I0MTUxO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7bWFyZ2luOjB9LnN3YWdnZXItdWkgLm9wYmxvY2stZXh0ZXJuYWwtZG9jcy13cmFwcGVyIGg0e3BhZGRpbmctbGVmdDowfS5zd2FnZ2VyLXVpIC5leGVjdXRlLXdyYXBwZXJ7cGFkZGluZzoyMHB4O3RleHQtYWxpZ246cmlnaHR9LnN3YWdnZXItdWkgLmV4ZWN1dGUtd3JhcHBlciAuYnRue3BhZGRpbmc6OHB4IDQwcHg7d2lkdGg6MTAwJX0uc3dhZ2dlci11aSAuYm9keS1wYXJhbS1vcHRpb25ze2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnN3YWdnZXItdWkgLmJvZHktcGFyYW0tb3B0aW9ucyAuYm9keS1wYXJhbS1lZGl0e3BhZGRpbmc6MTBweCAwfS5zd2FnZ2VyLXVpIC5ib2R5LXBhcmFtLW9wdGlvbnMgbGFiZWx7cGFkZGluZzo4cHggMH0uc3dhZ2dlci11aSAuYm9keS1wYXJhbS1vcHRpb25zIGxhYmVsIHNlbGVjdHttYXJnaW46M3B4IDAgMH0uc3dhZ2dlci11aSAucmVzcG9uc2VzLWlubmVye3BhZGRpbmc6MjBweH0uc3dhZ2dlci11aSAucmVzcG9uc2VzLWlubmVyIGg0LC5zd2FnZ2VyLXVpIC5yZXNwb25zZXMtaW5uZXIgaDV7Y29sb3I6IzNiNDE1MTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O21hcmdpbjoxMHB4IDAgNXB4fS5zd2FnZ2VyLXVpIC5yZXNwb25zZXMtaW5uZXIgLmN1cmx7bWF4LWhlaWdodDo0MDBweDttaW4taGVpZ2h0OjZlbTtvdmVyZmxvdy15OmF1dG99LnN3YWdnZXItdWkgLnJlc3BvbnNlLWNvbF9zdGF0dXN7Y29sb3I6IzNiNDE1MTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5zd2FnZ2VyLXVpIC5yZXNwb25zZS1jb2xfc3RhdHVzIC5yZXNwb25zZS11bmRvY3VtZW50ZWR7Y29sb3I6IzkwOTA5MDtmb250LWZhbWlseTptb25vc3BhY2U7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NjAwfS5zd2FnZ2VyLXVpIC5yZXNwb25zZS1jb2xfbGlua3N7Y29sb3I6IzNiNDE1MTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O21heC13aWR0aDo0MGVtO3BhZGRpbmctbGVmdDoyZW19LnN3YWdnZXItdWkgLnJlc3BvbnNlLWNvbF9saW5rcyAucmVzcG9uc2UtdW5kb2N1bWVudGVke2NvbG9yOiM5MDkwOTA7Zm9udC1mYW1pbHk6bW9ub3NwYWNlO2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjYwMH0uc3dhZ2dlci11aSAucmVzcG9uc2UtY29sX2xpbmtzIC5vcGVyYXRpb24tbGlua3ttYXJnaW4tYm90dG9tOjEuNWVtfS5zd2FnZ2VyLXVpIC5yZXNwb25zZS1jb2xfbGlua3MgLm9wZXJhdGlvbi1saW5rIC5kZXNjcmlwdGlvbnttYXJnaW4tYm90dG9tOi41ZW19LnN3YWdnZXItdWkgLm9wYmxvY2stYm9keSAub3BibG9jay1sb2FkaW5nLWFuaW1hdGlvbntkaXNwbGF5OmJsb2NrO21hcmdpbjozZW0gYXV0b30uc3dhZ2dlci11aSAub3BibG9jay1ib2R5IHByZS5taWNyb2xpZ2h0e2JhY2tncm91bmQ6IzMzMztib3JkZXItcmFkaXVzOjRweDtmb250LXNpemU6MTJweDtoeXBoZW5zOmF1dG87bWFyZ2luOjA7cGFkZGluZzoxMHB4O3doaXRlLXNwYWNlOnByZS13cmFwO3dvcmQtYnJlYWs6YnJlYWstYWxsO3dvcmQtYnJlYWs6YnJlYWstd29yZDt3b3JkLXdyYXA6YnJlYWstd29yZDtjb2xvcjojZmZmO2ZvbnQtZmFtaWx5Om1vbm9zcGFjZTtmb250LXdlaWdodDo2MDB9LnN3YWdnZXItdWkgLm9wYmxvY2stYm9keSBwcmUubWljcm9saWdodCAuaGVhZGVybGluZXtkaXNwbGF5OmJsb2NrfS5zd2FnZ2VyLXVpIC5oaWdobGlnaHQtY29kZXtwb3NpdGlvbjpyZWxhdGl2ZX0uc3dhZ2dlci11aSAuaGlnaGxpZ2h0LWNvZGU+Lm1pY3JvbGlnaHR7bWF4LWhlaWdodDo0MDBweDttaW4taGVpZ2h0OjZlbTtvdmVyZmxvdy15OmF1dG99LnN3YWdnZXItdWkgLmhpZ2hsaWdodC1jb2RlPi5taWNyb2xpZ2h0IGNvZGV7d2hpdGUtc3BhY2U6cHJlLXdyYXAhaW1wb3J0YW50O3dvcmQtYnJlYWs6YnJlYWstYWxsfS5zd2FnZ2VyLXVpIC5jdXJsLWNvbW1hbmR7cG9zaXRpb246cmVsYXRpdmV9LnN3YWdnZXItdWkgLmRvd25sb2FkLWNvbnRlbnRze2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kOiM3ZDgyOTM7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czo0cHg7Ym90dG9tOjEwcHg7Y29sb3I6I2ZmZjtkaXNwbGF5OmZsZXg7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo2MDA7aGVpZ2h0OjMwcHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjVweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMHB4O3RleHQtYWxpZ246Y2VudGVyfS5zd2FnZ2VyLXVpIC5zY2hlbWUtY29udGFpbmVye2JhY2tncm91bmQ6I2ZmZjtib3gtc2hhZG93OjAgMXB4IDJweCAwIHJnYmEoMCwwLDAsLjE1KTttYXJnaW46MCAwIDIwcHg7cGFkZGluZzozMHB4IDB9LnN3YWdnZXItdWkgLnNjaGVtZS1jb250YWluZXIgLnNjaGVtZXN7YWxpZ24taXRlbXM6ZmxleC1lbmQ7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDoxMHB4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5zd2FnZ2VyLXVpIC5zY2hlbWUtY29udGFpbmVyIC5zY2hlbWVzPi5zY2hlbWVzLXNlcnZlci1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDoxMHB4fS5zd2FnZ2VyLXVpIC5zY2hlbWUtY29udGFpbmVyIC5zY2hlbWVzPi5zY2hlbWVzLXNlcnZlci1jb250YWluZXI+bGFiZWx7Y29sb3I6IzNiNDE1MTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NzAwO21hcmdpbjotMjBweCAxNXB4IDAgMH0uc3dhZ2dlci11aSAuc2NoZW1lLWNvbnRhaW5lciAuc2NoZW1lcz4uc2NoZW1lcy1zZXJ2ZXItY29udGFpbmVyPmxhYmVsIHNlbGVjdHttaW4td2lkdGg6MTMwcHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS5zd2FnZ2VyLXVpIC5zY2hlbWUtY29udGFpbmVyIC5zY2hlbWVzOm5vdCg6aGFzKC5zY2hlbWVzLXNlcnZlci1jb250YWluZXIpKXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LnN3YWdnZXItdWkgLnNjaGVtZS1jb250YWluZXIgLnNjaGVtZXMgLmF1dGgtd3JhcHBlcntmbGV4Om5vbmU7anVzdGlmeS1jb250ZW50OnN0YXJ0fS5zd2FnZ2VyLXVpIC5zY2hlbWUtY29udGFpbmVyIC5zY2hlbWVzIC5hdXRoLXdyYXBwZXIgLmF1dGhvcml6ZXtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOm5vd3JhcDttYXJnaW46MDtwYWRkaW5nLXJpZ2h0OjIwcHh9LnN3YWdnZXItdWkgLmxvYWRpbmctY29udGFpbmVye2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLXRvcDoxZW07bWluLWhlaWdodDoxcHg7cGFkZGluZzo0MHB4IDAgNjBweH0uc3dhZ2dlci11aSAubG9hZGluZy1jb250YWluZXIgLmxvYWRpbmd7cG9zaXRpb246cmVsYXRpdmV9LnN3YWdnZXItdWkgLmxvYWRpbmctY29udGFpbmVyIC5sb2FkaW5nOmFmdGVye2NvbG9yOiMzYjQxNTE7Y29udGVudDoibG9hZGluZyI7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtmb250LXdlaWdodDo3MDA7bGVmdDo1MCU7cG9zaXRpb246YWJzb2x1dGU7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpfS5zd2FnZ2VyLXVpIC5sb2FkaW5nLWNvbnRhaW5lciAubG9hZGluZzpiZWZvcmV7YW5pbWF0aW9uOnJvdGF0aW9uIDFzIGxpbmVhciBpbmZpbml0ZSxvcGFjaXR5IC41cztiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtib3JkZXI6MnB4IHNvbGlkIHJnYmEoODUsODUsODUsLjEpO2JvcmRlci1yYWRpdXM6MTAwJTtib3JkZXItdG9wLWNvbG9yOnJnYmEoMCwwLDAsLjYpO2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6NjBweDtsZWZ0OjUwJTttYXJnaW46LTMwcHg7b3BhY2l0eToxO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7d2lkdGg6NjBweH1Aa2V5ZnJhbWVzIHJvdGF0aW9ue3Rve3RyYW5zZm9ybTpyb3RhdGUoMXR1cm4pfX0uc3dhZ2dlci11aSAucmVzcG9uc2UtY29udHJvbHN7ZGlzcGxheTpmbGV4O3BhZGRpbmctdG9wOjFlbX0uc3dhZ2dlci11aSAucmVzcG9uc2UtY29udHJvbC1tZWRpYS10eXBle21hcmdpbi1yaWdodDoxZW19LnN3YWdnZXItdWkgLnJlc3BvbnNlLWNvbnRyb2wtbWVkaWEtdHlwZS0tYWNjZXB0LWNvbnRyb2xsZXIgc2VsZWN0e2JvcmRlci1jb2xvcjpncmVlbn0uc3dhZ2dlci11aSAucmVzcG9uc2UtY29udHJvbC1tZWRpYS10eXBlX19hY2NlcHQtbWVzc2FnZXtjb2xvcjpncmVlbjtmb250LXNpemU6LjdlbX0uc3dhZ2dlci11aSAucmVzcG9uc2UtY29udHJvbC1leGFtcGxlc19fdGl0bGUsLnN3YWdnZXItdWkgLnJlc3BvbnNlLWNvbnRyb2wtbWVkaWEtdHlwZV9fdGl0bGV7ZGlzcGxheTpibG9jaztmb250LXNpemU6LjdlbTttYXJnaW4tYm90dG9tOi4yZW19QGtleWZyYW1lcyBibGlua2VyezUwJXtvcGFjaXR5OjB9fS5zd2FnZ2VyLXVpIC5oaWRkZW57ZGlzcGxheTpub25lfS5zd2FnZ2VyLXVpIC5uby1tYXJnaW57Ym9yZGVyOm5vbmU7aGVpZ2h0OmF1dG87bWFyZ2luOjA7cGFkZGluZzowfS5zd2FnZ2VyLXVpIC5mbG9hdC1yaWdodHtmbG9hdDpyaWdodH0uc3dhZ2dlci11aSAuc3ZnLWFzc2V0c3toZWlnaHQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDowfS5zd2FnZ2VyLXVpIHNlY3Rpb24gaDN7Y29sb3I6IzNiNDE1MTtmb250LWZhbWlseTpzYW5zLXNlcmlmfS5zd2FnZ2VyLXVpIGEubm9zdHlsZXtkaXNwbGF5OmlubGluZX0uc3dhZ2dlci11aSBhLm5vc3R5bGUsLnN3YWdnZXItdWkgYS5ub3N0eWxlOnZpc2l0ZWR7Y29sb3I6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcjt0ZXh0LWRlY29yYXRpb246aW5oZXJpdH0uc3dhZ2dlci11aSAuZmFsbGJhY2t7Y29sb3I6I2FhYTtwYWRkaW5nOjFlbX0uc3dhZ2dlci11aSAudmVyc2lvbi1wcmFnbWF7aGVpZ2h0OjEwMCU7cGFkZGluZzo1ZW0gMH0uc3dhZ2dlci11aSAudmVyc2lvbi1wcmFnbWFfX21lc3NhZ2V7ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZToxLjJlbTtoZWlnaHQ6MTAwJTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2xpbmUtaGVpZ2h0OjEuNWVtO3BhZGRpbmc6MCAuNmVtO3RleHQtYWxpZ246Y2VudGVyfS5zd2FnZ2VyLXVpIC52ZXJzaW9uLXByYWdtYV9fbWVzc2FnZT5kaXZ7ZmxleDoxO21heC13aWR0aDo1NWNofS5zd2FnZ2VyLXVpIC52ZXJzaW9uLXByYWdtYV9fbWVzc2FnZSBjb2Rle2JhY2tncm91bmQtY29sb3I6I2RlZGVkZTtwYWRkaW5nOjRweCA0cHggMnB4O3doaXRlLXNwYWNlOnByZX0uc3dhZ2dlci11aSAub3BibG9jay1saW5re2ZvbnQtd2VpZ2h0OjQwMH0uc3dhZ2dlci11aSAub3BibG9jay1saW5rLnNob3due2ZvbnQtd2VpZ2h0OjcwMH0uc3dhZ2dlci11aSBzcGFuLnRva2VuLXN0cmluZ3tjb2xvcjojNTU1fS5zd2FnZ2VyLXVpIHNwYW4udG9rZW4tbm90LWZvcm1hdHRlZHtjb2xvcjojNTU1O2ZvbnQtd2VpZ2h0OjcwMH0uc3dhZ2dlci11aSAuYnRue2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjJweCBzb2xpZCBncmV5O2JvcmRlci1yYWRpdXM6NHB4O2JveC1zaGFkb3c6MCAxcHggMnB4IHJnYmEoMCwwLDAsLjEpO2NvbG9yOiMzYjQxNTE7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo3MDA7cGFkZGluZzo1cHggMjNweDt0cmFuc2l0aW9uOmFsbCAuM3N9LnN3YWdnZXItdWkgLmJ0bi5idG4tc217Zm9udC1zaXplOjEycHg7cGFkZGluZzo0cHggMjNweH0uc3dhZ2dlci11aSAuYnRuW2Rpc2FibGVkXXtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouM30uc3dhZ2dlci11aSAuYnRuOmhvdmVye2JveC1zaGFkb3c6MCAwIDVweCByZ2JhKDAsMCwwLC4zKX0uc3dhZ2dlci11aSAuYnRuLmNhbmNlbHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1jb2xvcjojZmY2MDYwO2NvbG9yOiNmZjYwNjA7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZn0uc3dhZ2dlci11aSAuYnRuLmF1dGhvcml6ZXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1jb2xvcjojNDljYzkwO2NvbG9yOiM0OWNjOTA7ZGlzcGxheTppbmxpbmU7bGluZS1oZWlnaHQ6MX0uc3dhZ2dlci11aSAuYnRuLmF1dGhvcml6ZSBzcGFue2Zsb2F0OmxlZnQ7cGFkZGluZzo0cHggMjBweCAwIDB9LnN3YWdnZXItdWkgLmJ0bi5hdXRob3JpemUgc3Zne2ZpbGw6IzQ5Y2M5MH0uc3dhZ2dlci11aSAuYnRuLmV4ZWN1dGV7YmFja2dyb3VuZC1jb2xvcjojNDk5MGUyO2JvcmRlci1jb2xvcjojNDk5MGUyO2NvbG9yOiNmZmZ9LnN3YWdnZXItdWkgLmJ0bi1ncm91cHtkaXNwbGF5OmZsZXg7cGFkZGluZzozMHB4fS5zd2FnZ2VyLXVpIC5idG4tZ3JvdXAgLmJ0bntmbGV4OjF9LnN3YWdnZXItdWkgLmJ0bi1ncm91cCAuYnRuOmZpcnN0LWNoaWxke2JvcmRlci1yYWRpdXM6NHB4IDAgMCA0cHh9LnN3YWdnZXItdWkgLmJ0bi1ncm91cCAuYnRuOmxhc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowIDRweCA0cHggMH0uc3dhZ2dlci11aSAuYXV0aG9yaXphdGlvbl9fYnRue2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtwYWRkaW5nOjAgMCAwIDEwcHh9LnN3YWdnZXItdWkgLmF1dGhvcml6YXRpb25fX2J0biAubG9ja2Vke29wYWNpdHk6MX0uc3dhZ2dlci11aSAuYXV0aG9yaXphdGlvbl9fYnRuIC51bmxvY2tlZHtvcGFjaXR5Oi40fS5zd2FnZ2VyLXVpIC5tb2RlbC1ib3gtY29udHJvbCwuc3dhZ2dlci11aSAubW9kZWxzLWNvbnRyb2wsLnN3YWdnZXItdWkgLm9wYmxvY2stc3VtbWFyeS1jb250cm9se2FsbDppbmhlcml0O2JvcmRlci1ib3R0b206MDtjdXJzb3I6cG9pbnRlcjtmbGV4OjE7cGFkZGluZzowfS5zd2FnZ2VyLXVpIC5tb2RlbC1ib3gtY29udHJvbDpmb2N1cywuc3dhZ2dlci11aSAubW9kZWxzLWNvbnRyb2w6Zm9jdXMsLnN3YWdnZXItdWkgLm9wYmxvY2stc3VtbWFyeS1jb250cm9sOmZvY3Vze291dGxpbmU6YXV0b30uc3dhZ2dlci11aSAuZXhwYW5kLW1ldGhvZHMsLnN3YWdnZXItdWkgLmV4cGFuZC1vcGVyYXRpb257YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lfS5zd2FnZ2VyLXVpIC5leHBhbmQtbWV0aG9kcyBzdmcsLnN3YWdnZXItdWkgLmV4cGFuZC1vcGVyYXRpb24gc3Zne2hlaWdodDoyMHB4O3dpZHRoOjIwcHh9LnN3YWdnZXItdWkgLmV4cGFuZC1tZXRob2Rze3BhZGRpbmc6MCAxMHB4fS5zd2FnZ2VyLXVpIC5leHBhbmQtbWV0aG9kczpob3ZlciBzdmd7ZmlsbDojNDA0MDQwfS5zd2FnZ2VyLXVpIC5leHBhbmQtbWV0aG9kcyBzdmd7dHJhbnNpdGlvbjphbGwgLjNzO2ZpbGw6IzcwNzA3MH0uc3dhZ2dlci11aSBidXR0b257Y3Vyc29yOnBvaW50ZXJ9LnN3YWdnZXItdWkgYnV0dG9uLmludmFsaWR7YW5pbWF0aW9uOnNoYWtlIC40cyAxO2JhY2tncm91bmQ6I2ZlZWJlYjtib3JkZXItY29sb3I6I2Y5M2UzZX0uc3dhZ2dlci11aSAuY29weS10by1jbGlwYm9hcmR7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQ6IzdkODI5Mztib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjRweDtib3R0b206MTBweDtkaXNwbGF5OmZsZXg7aGVpZ2h0OjMwcHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMDBweDt3aWR0aDozMHB4fS5zd2FnZ2VyLXVpIC5jb3B5LXRvLWNsaXBib2FyZCBidXR0b257YmFja2dyb3VuZDp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjxwYXRoIGZpbGw9XCIlMjNmZmZcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00IDEyaDR2MUg0em01LTZINHYxaDV6bTIgM1Y3bC0zIDMgMyAzdi0yaDVWOXpNNi41IDhINHYxaDIuNXpNNCAxMWgyLjV2LTFINHptOSAxaDF2MmMtLjAyLjI4LS4xMS41Mi0uMy43cy0uNDIuMjgtLjcuM0gzYy0uNTUgMC0xLS40NS0xLTFWM2MwLS41NS40NS0xIDEtMWgzYzAtMS4xMS44OS0yIDItMnMyIC44OSAyIDJoM2MuNTUgMCAxIC40NSAxIDF2NWgtMVY1SDN2OWgxMHpNNCA0aDhjMC0uNTUtLjQ1LTEtMS0xaC0xYy0uNTUgMC0xLS40NS0xLTFzLS40NS0xLTEtMS0xIC40NS0xIDEtLjQ1IDEtMSAxSDVjLS41NSAwLTEgLjQ1LTEgMVwiLz48L3N2Zz4iKSA1MCUgbm8tcmVwZWF0O2JvcmRlcjpub25lO2ZsZXgtZ3JvdzoxO2ZsZXgtc2hyaW5rOjE7aGVpZ2h0OjI1cHh9LnN3YWdnZXItdWkgLmNvcHktdG8tY2xpcGJvYXJkOmFjdGl2ZXtiYWNrZ3JvdW5kOiM1ZTYyNmZ9LnN3YWdnZXItdWkgLm9wYmxvY2stY29udHJvbC1hcnJvd3tiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7dGV4dC1hbGlnbjpjZW50ZXJ9LnN3YWdnZXItdWkgLmN1cmwtY29tbWFuZCAuY29weS10by1jbGlwYm9hcmR7Ym90dG9tOjVweDtoZWlnaHQ6MjBweDtyaWdodDoxMHB4O3dpZHRoOjIwcHh9LnN3YWdnZXItdWkgLmN1cmwtY29tbWFuZCAuY29weS10by1jbGlwYm9hcmQgYnV0dG9ue2hlaWdodDoxOHB4fS5zd2FnZ2VyLXVpIC5vcGJsb2NrIC5vcGJsb2NrLXN1bW1hcnkgLnZpZXctbGluZS1saW5rLmNvcHktdG8tY2xpcGJvYXJke2hlaWdodDoyNnB4O3Bvc2l0aW9uOnN0YXRpY30uc3dhZ2dlci11aSBzZWxlY3R7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQ6I2Y3ZjdmNyB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIj48cGF0aCBkPVwiTTEzLjQxOCA3Ljg1OWEuNjk1LjY5NSAwIDAgMSAuOTc4IDAgLjY4LjY4IDAgMCAxIDAgLjk2OWwtMy45MDggMy44M2EuNjk3LjY5NyAwIDAgMS0uOTc5IDBsLTMuOTA4LTMuODNhLjY4LjY4IDAgMCAxIDAtLjk2OS42OTUuNjk1IDAgMCAxIC45NzggMEwxMCAxMXpcIi8+PC9zdmc+IikgcmlnaHQgMTBweCBjZW50ZXIgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToyMHB4O2JvcmRlcjoycHggc29saWQgIzQxNDQ0ZTtib3JkZXItcmFkaXVzOjRweDtib3gtc2hhZG93OjAgMXB4IDJweCAwIHJnYmEoMCwwLDAsLjI1KTtjb2xvcjojM2I0MTUxO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NzAwO3BhZGRpbmc6NXB4IDQwcHggNXB4IDEwcHh9LnN3YWdnZXItdWkgc2VsZWN0W211bHRpcGxlXXtiYWNrZ3JvdW5kOiNmN2Y3Zjc7bWFyZ2luOjVweCAwO3BhZGRpbmc6NXB4fS5zd2FnZ2VyLXVpIHNlbGVjdC5pbnZhbGlke2FuaW1hdGlvbjpzaGFrZSAuNHMgMTtiYWNrZ3JvdW5kOiNmZWViZWI7Ym9yZGVyLWNvbG9yOiNmOTNlM2V9LnN3YWdnZXItdWkgLm9wYmxvY2stYm9keSBzZWxlY3R7bWluLXdpZHRoOjIzMHB4fUBtZWRpYShtYXgtd2lkdGg6NzY4cHgpey5zd2FnZ2VyLXVpIC5vcGJsb2NrLWJvZHkgc2VsZWN0e21pbi13aWR0aDoxODBweH19QG1lZGlhKG1heC13aWR0aDo2NDBweCl7LnN3YWdnZXItdWkgLm9wYmxvY2stYm9keSBzZWxlY3R7bWluLXdpZHRoOjEwMCU7d2lkdGg6MTAwJX19LnN3YWdnZXItdWkgbGFiZWx7Y29sb3I6IzNiNDE1MTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW46MCAwIDVweH0uc3dhZ2dlci11aSBpbnB1dFt0eXBlPWVtYWlsXSwuc3dhZ2dlci11aSBpbnB1dFt0eXBlPWZpbGVdLC5zd2FnZ2VyLXVpIGlucHV0W3R5cGU9cGFzc3dvcmRdLC5zd2FnZ2VyLXVpIGlucHV0W3R5cGU9c2VhcmNoXSwuc3dhZ2dlci11aSBpbnB1dFt0eXBlPXRleHRde2xpbmUtaGVpZ2h0OjF9QG1lZGlhKG1heC13aWR0aDo3NjhweCl7LnN3YWdnZXItdWkgaW5wdXRbdHlwZT1lbWFpbF0sLnN3YWdnZXItdWkgaW5wdXRbdHlwZT1maWxlXSwuc3dhZ2dlci11aSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwuc3dhZ2dlci11aSBpbnB1dFt0eXBlPXNlYXJjaF0sLnN3YWdnZXItdWkgaW5wdXRbdHlwZT10ZXh0XXttYXgtd2lkdGg6MTc1cHh9fS5zd2FnZ2VyLXVpIGlucHV0W3R5cGU9ZW1haWxdLC5zd2FnZ2VyLXVpIGlucHV0W3R5cGU9ZmlsZV0sLnN3YWdnZXItdWkgaW5wdXRbdHlwZT1wYXNzd29yZF0sLnN3YWdnZXItdWkgaW5wdXRbdHlwZT1zZWFyY2hdLC5zd2FnZ2VyLXVpIGlucHV0W3R5cGU9dGV4dF0sLnN3YWdnZXItdWkgdGV4dGFyZWF7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI2Q5ZDlkOTtib3JkZXItcmFkaXVzOjRweDttYXJnaW46NXB4IDA7bWluLXdpZHRoOjEwMHB4O3BhZGRpbmc6OHB4IDEwcHh9LnN3YWdnZXItdWkgaW5wdXRbdHlwZT1lbWFpbF0uaW52YWxpZCwuc3dhZ2dlci11aSBpbnB1dFt0eXBlPWZpbGVdLmludmFsaWQsLnN3YWdnZXItdWkgaW5wdXRbdHlwZT1wYXNzd29yZF0uaW52YWxpZCwuc3dhZ2dlci11aSBpbnB1dFt0eXBlPXNlYXJjaF0uaW52YWxpZCwuc3dhZ2dlci11aSBpbnB1dFt0eXBlPXRleHRdLmludmFsaWQsLnN3YWdnZXItdWkgdGV4dGFyZWEuaW52YWxpZHthbmltYXRpb246c2hha2UgLjRzIDE7YmFja2dyb3VuZDojZmVlYmViO2JvcmRlci1jb2xvcjojZjkzZTNlfS5zd2FnZ2VyLXVpIGlucHV0W2Rpc2FibGVkXSwuc3dhZ2dlci11aSBzZWxlY3RbZGlzYWJsZWRdLC5zd2FnZ2VyLXVpIHRleHRhcmVhW2Rpc2FibGVkXXtiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7Y29sb3I6Izg4ODtjdXJzb3I6bm90LWFsbG93ZWR9LnN3YWdnZXItdWkgc2VsZWN0W2Rpc2FibGVkXXtib3JkZXItY29sb3I6Izg4OH0uc3dhZ2dlci11aSB0ZXh0YXJlYVtkaXNhYmxlZF17YmFja2dyb3VuZC1jb2xvcjojNDE0NDRlO2NvbG9yOiNmZmZ9QGtleWZyYW1lcyBzaGFrZXsxMCUsOTAle3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMXB4LDAsMCl9MjAlLDgwJXt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMnB4LDAsMCl9MzAlLDUwJSw3MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC00cHgsMCwwKX00MCUsNjAle3RyYW5zZm9ybTp0cmFuc2xhdGUzZCg0cHgsMCwwKX19LnN3YWdnZXItdWkgdGV4dGFyZWF7YmFja2dyb3VuZDpoc2xhKDAsMCUsMTAwJSwuOCk7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czo0cHg7Y29sb3I6IzNiNDE1MTtmb250LWZhbWlseTptb25vc3BhY2U7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NjAwO21pbi1oZWlnaHQ6MjgwcHg7b3V0bGluZTpub25lO3BhZGRpbmc6MTBweDt3aWR0aDoxMDAlfS5zd2FnZ2VyLXVpIHRleHRhcmVhOmZvY3Vze2JvcmRlcjoycHggc29saWQgIzYxYWZmZX0uc3dhZ2dlci11aSB0ZXh0YXJlYS5jdXJse2JhY2tncm91bmQ6IzQxNDQ0ZTtib3JkZXItcmFkaXVzOjRweDtjb2xvcjojZmZmO2ZvbnQtZmFtaWx5Om1vbm9zcGFjZTtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo2MDA7bWFyZ2luOjA7bWluLWhlaWdodDoxMDBweDtwYWRkaW5nOjEwcHg7cmVzaXplOm5vbmV9LnN3YWdnZXItdWkgLmNoZWNrYm94e2NvbG9yOiMzMDMwMzA7cGFkZGluZzo1cHggMCAxMHB4O3RyYW5zaXRpb246b3BhY2l0eSAuNXN9LnN3YWdnZXItdWkgLmNoZWNrYm94IGxhYmVse2Rpc3BsYXk6ZmxleH0uc3dhZ2dlci11aSAuY2hlY2tib3ggcHtjb2xvcjojM2I0MTUxO2ZvbnQtZmFtaWx5Om1vbm9zcGFjZTtmb250LXN0eWxlOml0YWxpYztmb250LXdlaWdodDo0MDAhaW1wb3J0YW50O2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW46MCFpbXBvcnRhbnR9LnN3YWdnZXItdWkgLmNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hde2Rpc3BsYXk6bm9uZX0uc3dhZ2dlci11aSAuY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw+Lml0ZW17YmFja2dyb3VuZDojZThlOGU4O2JvcmRlci1yYWRpdXM6MXB4O2JveC1zaGFkb3c6MCAwIDAgMnB4ICNlOGU4ZTg7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxleDpub25lO2hlaWdodDoxNnB4O21hcmdpbjowIDhweCAwIDA7cGFkZGluZzo1cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOjNweDt3aWR0aDoxNnB4fS5zd2FnZ2VyLXVpIC5jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XStsYWJlbD4uaXRlbTphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45KX0uc3dhZ2dlci11aSAuY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD4uaXRlbXtiYWNrZ3JvdW5kOiNlOGU4ZTggdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCw8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEwXCIgaGVpZ2h0PVwiOFwiIHZpZXdCb3g9XCIzIDcgMTAgOFwiPjxwYXRoIGZpbGw9XCIlMjM0MTQ3NEVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk02LjMzMyAxNSAzIDExLjY2N2wxLjMzMy0xLjMzNCAyIDJMMTEuNjY3IDcgMTMgOC4zMzN6XCIvPjwvc3ZnPiIpIDUwJSBuby1yZXBlYXR9LnN3YWdnZXItdWkgLmRpYWxvZy11eHtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MDt0b3A6MDt6LWluZGV4Ojk5OTl9LnN3YWdnZXItdWkgLmRpYWxvZy11eCAuYmFja2Ryb3AtdXh7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC44KTtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MDt0b3A6MH0uc3dhZ2dlci11aSAuZGlhbG9nLXV4IC5tb2RhbC11eHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2JvcmRlci1yYWRpdXM6NHB4O2JveC1zaGFkb3c6MCAxMHB4IDMwcHggMCByZ2JhKDAsMCwwLC4yKTtsZWZ0OjUwJTttYXgtd2lkdGg6NjUwcHg7bWluLXdpZHRoOjMwMHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3dpZHRoOjEwMCU7ei1pbmRleDo5OTk5fS5zd2FnZ2VyLXVpIC5kaWFsb2ctdXggLm1vZGFsLXV4LWNvbnRlbnR7bWF4LWhlaWdodDo1NDBweDtvdmVyZmxvdy15OmF1dG87cGFkZGluZzoyMHB4fS5zd2FnZ2VyLXVpIC5kaWFsb2ctdXggLm1vZGFsLXV4LWNvbnRlbnQgcHtjb2xvcjojNDE0NDRlO2NvbG9yOiMzYjQxNTE7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6MTJweDttYXJnaW46MCAwIDVweH0uc3dhZ2dlci11aSAuZGlhbG9nLXV4IC5tb2RhbC11eC1jb250ZW50IGg0e2NvbG9yOiMzYjQxNTE7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6MThweDtmb250LXdlaWdodDo2MDA7bWFyZ2luOjE1cHggMCAwfS5zd2FnZ2VyLXVpIC5kaWFsb2ctdXggLm1vZGFsLXV4LWhlYWRlcnthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjtkaXNwbGF5OmZsZXg7cGFkZGluZzoxMnB4IDB9LnN3YWdnZXItdWkgLmRpYWxvZy11eCAubW9kYWwtdXgtaGVhZGVyIC5jbG9zZS1tb2RhbHstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO3BhZGRpbmc6MCAxMHB4fS5zd2FnZ2VyLXVpIC5kaWFsb2ctdXggLm1vZGFsLXV4LWhlYWRlciBoM3tjb2xvcjojM2I0MTUxO2ZsZXg6MTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToyMHB4O2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW46MDtwYWRkaW5nOjAgMjBweH0uc3dhZ2dlci11aSAubW9kZWx7Y29sb3I6IzNiNDE1MTtmb250LWZhbWlseTptb25vc3BhY2U7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6MzAwO2ZvbnQtd2VpZ2h0OjYwMH0uc3dhZ2dlci11aSAubW9kZWwgLmRlcHJlY2F0ZWQgc3Bhbiwuc3dhZ2dlci11aSAubW9kZWwgLmRlcHJlY2F0ZWQgdGR7Y29sb3I6I2EwYTBhMCFpbXBvcnRhbnR9LnN3YWdnZXItdWkgLm1vZGVsIC5kZXByZWNhdGVkPnRkOmZpcnN0LW9mLXR5cGV7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdoO3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2h9LnN3YWdnZXItdWkgLm1vZGVsLXRvZ2dsZXtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTBweDttYXJnaW46YXV0byAuM2VtO3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDo2cHg7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7dHJhbnNmb3JtLW9yaWdpbjo1MCUgNTAlO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xNXMgZWFzZS1pbn0uc3dhZ2dlci11aSAubW9kZWwtdG9nZ2xlLmNvbGxhcHNlZHt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfS5zd2FnZ2VyLXVpIC5tb2RlbC10b2dnbGU6YWZ0ZXJ7YmFja2dyb3VuZDp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBkPVwiTTEwIDYgOC41OSA3LjQxIDEzLjE3IDEybC00LjU4IDQuNTlMMTAgMThsNi02elwiLz48L3N2Zz4iKSA1MCUgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToxMDAlO2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MjBweDt3aWR0aDoyMHB4fS5zd2FnZ2VyLXVpIC5tb2RlbC1qdW1wLXRvLXBhdGh7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246cmVsYXRpdmV9LnN3YWdnZXItdWkgLm1vZGVsLWp1bXAtdG8tcGF0aCAudmlldy1saW5lLWxpbmt7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0uNGVtfS5zd2FnZ2VyLXVpIC5tb2RlbC10aXRsZXtwb3NpdGlvbjpyZWxhdGl2ZX0uc3dhZ2dlci11aSAubW9kZWwtdGl0bGU6aG92ZXIgLm1vZGVsLWhpbnR7ZGlzcGxheTpibG9ja30uc3dhZ2dlci11aSAubW9kZWwtaGludHtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjcpO2JvcmRlci1yYWRpdXM6NHB4O2NvbG9yOiNlYmViZWI7ZGlzcGxheTpub25lO3BhZGRpbmc6LjFlbSAuNWVtO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMS44ZW07d2hpdGUtc3BhY2U6bm93cmFwfS5zd2FnZ2VyLXVpIC5tb2RlbCBwe21hcmdpbjowIDAgMWVtfS5zd2FnZ2VyLXVpIC5tb2RlbCAucHJvcGVydHl7Y29sb3I6Izk5OTtmb250LXN0eWxlOml0YWxpY30uc3dhZ2dlci11aSAubW9kZWwgLnByb3BlcnR5LnByaW1pdGl2ZXtjb2xvcjojNmI2YjZifS5zd2FnZ2VyLXVpIC5tb2RlbCAucHJvcGVydHkucHJpbWl0aXZlLmV4dGVuc2lvbntkaXNwbGF5OmJsb2NrfS5zd2FnZ2VyLXVpIC5tb2RlbCAucHJvcGVydHkucHJpbWl0aXZlLmV4dGVuc2lvbj50ZDpmaXJzdC1jaGlsZHtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjA7d2lkdGg6YXV0b30uc3dhZ2dlci11aSAubW9kZWwgLnByb3BlcnR5LnByaW1pdGl2ZS5leHRlbnNpb24+dGQ6Zmlyc3QtY2hpbGQ6YWZ0ZXJ7Y29udGVudDoiOsKgIn0uc3dhZ2dlci11aSAubW9kZWwgLmV4dGVybmFsLWRvY3MsLnN3YWdnZXItdWkgdGFibGUubW9kZWwgdHIuZGVzY3JpcHRpb257Y29sb3I6IzY2Njtmb250LXdlaWdodDo0MDB9LnN3YWdnZXItdWkgdGFibGUubW9kZWwgdHIuZGVzY3JpcHRpb24gdGQ6Zmlyc3QtY2hpbGQsLnN3YWdnZXItdWkgdGFibGUubW9kZWwgdHIucHJvcGVydHktcm93LnJlcXVpcmVkIHRkOmZpcnN0LWNoaWxke2ZvbnQtd2VpZ2h0OjcwMH0uc3dhZ2dlci11aSB0YWJsZS5tb2RlbCB0ci5wcm9wZXJ0eS1yb3cgdGR7dmVydGljYWwtYWxpZ246dG9wfS5zd2FnZ2VyLXVpIHRhYmxlLm1vZGVsIHRyLnByb3BlcnR5LXJvdyB0ZDpmaXJzdC1jaGlsZHtwYWRkaW5nLXJpZ2h0Oi4yZW19LnN3YWdnZXItdWkgdGFibGUubW9kZWwgdHIucHJvcGVydHktcm93IC5zdGFye2NvbG9yOnJlZH0uc3dhZ2dlci11aSB0YWJsZS5tb2RlbCB0ci5leHRlbnNpb257Y29sb3I6Izc3N30uc3dhZ2dlci11aSB0YWJsZS5tb2RlbCB0ci5leHRlbnNpb24gdGQ6bGFzdC1jaGlsZHt2ZXJ0aWNhbC1hbGlnbjp0b3B9LnN3YWdnZXItdWkgdGFibGUubW9kZWwgdHIuZXh0ZXJuYWwtZG9jcyB0ZDpmaXJzdC1jaGlsZHtmb250LXdlaWdodDo3MDB9LnN3YWdnZXItdWkgdGFibGUubW9kZWwgdHIgLnJlbmRlcmVkTWFya2Rvd24gcDpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9LnN3YWdnZXItdWkgc2VjdGlvbi5tb2RlbHN7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDU5LDY1LDgxLC4zKTtib3JkZXItcmFkaXVzOjRweDttYXJnaW46MzBweCAwfS5zd2FnZ2VyLXVpIHNlY3Rpb24ubW9kZWxzIC5wb2ludGVye2N1cnNvcjpwb2ludGVyfS5zd2FnZ2VyLXVpIHNlY3Rpb24ubW9kZWxzLmlzLW9wZW57cGFkZGluZzowIDAgMjBweH0uc3dhZ2dlci11aSBzZWN0aW9uLm1vZGVscy5pcy1vcGVuIGg0e2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoNTksNjUsODEsLjMpO21hcmdpbjowIDAgNXB4fS5zd2FnZ2VyLXVpIHNlY3Rpb24ubW9kZWxzIGg0e2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjojNjA2MDYwO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6ZmxleDtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4O21hcmdpbjowO3BhZGRpbmc6MTBweCAyMHB4IDEwcHggMTBweDt0cmFuc2l0aW9uOmFsbCAuMnN9LnN3YWdnZXItdWkgc2VjdGlvbi5tb2RlbHMgaDQgc3Zne3RyYW5zaXRpb246YWxsIC40c30uc3dhZ2dlci11aSBzZWN0aW9uLm1vZGVscyBoNCBzcGFue2ZsZXg6MX0uc3dhZ2dlci11aSBzZWN0aW9uLm1vZGVscyBoNDpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjAyKX0uc3dhZ2dlci11aSBzZWN0aW9uLm1vZGVscyBoNXtjb2xvcjojNzA3MDcwO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHg7bWFyZ2luOjAgMCAxMHB4fS5zd2FnZ2VyLXVpIHNlY3Rpb24ubW9kZWxzIC5tb2RlbC1qdW1wLXRvLXBhdGh7cG9zaXRpb246cmVsYXRpdmU7dG9wOjVweH0uc3dhZ2dlci11aSBzZWN0aW9uLm1vZGVscyAubW9kZWwtY29udGFpbmVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMDUpO2JvcmRlci1yYWRpdXM6NHB4O21hcmdpbjowIDIwcHggMTVweDtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOmFsbCAuNXN9LnN3YWdnZXItdWkgc2VjdGlvbi5tb2RlbHMgLm1vZGVsLWNvbnRhaW5lcjpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjA3KX0uc3dhZ2dlci11aSBzZWN0aW9uLm1vZGVscyAubW9kZWwtY29udGFpbmVyOmZpcnN0LW9mLXR5cGV7bWFyZ2luOjIwcHh9LnN3YWdnZXItdWkgc2VjdGlvbi5tb2RlbHMgLm1vZGVsLWNvbnRhaW5lcjpsYXN0LW9mLXR5cGV7bWFyZ2luOjAgMjBweH0uc3dhZ2dlci11aSBzZWN0aW9uLm1vZGVscyAubW9kZWwtY29udGFpbmVyIC5tb2RlbHMtanVtcC10by1wYXRoe29wYWNpdHk6LjY1O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjVweDt0b3A6OHB4fS5zd2FnZ2VyLXVpIHNlY3Rpb24ubW9kZWxzIC5tb2RlbC1ib3h7YmFja2dyb3VuZDpub25lfS5zd2FnZ2VyLXVpIHNlY3Rpb24ubW9kZWxzIC5tb2RlbC1ib3g6aGFzKC5tb2RlbC1ib3gpe292ZXJmbG93LXg6YXV0bzt3aWR0aDoxMDAlfS5zd2FnZ2VyLXVpIC5tb2RlbC1ib3h7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xKTtib3JkZXItcmFkaXVzOjRweDtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjEwcHh9LnN3YWdnZXItdWkgLm1vZGVsLWJveCAubW9kZWwtanVtcC10by1wYXRoe3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDo0cHh9LnN3YWdnZXItdWkgLm1vZGVsLWJveC5kZXByZWNhdGVke29wYWNpdHk6LjV9LnN3YWdnZXItdWkgLm1vZGVsLXRpdGxle2NvbG9yOiM1MDUwNTA7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0uc3dhZ2dlci11aSAubW9kZWwtdGl0bGUgaW1ne2JvdHRvbTowO21hcmdpbi1sZWZ0OjFlbTtwb3NpdGlvbjpyZWxhdGl2ZX0uc3dhZ2dlci11aSAubW9kZWwtZGVwcmVjYXRlZC13YXJuaW5ne2NvbG9yOiNmOTNlM2U7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo2MDA7bWFyZ2luLXJpZ2h0OjFlbX0uc3dhZ2dlci11aSBzcGFuPnNwYW4ubW9kZWwgLmJyYWNlLWNsb3Nle3BhZGRpbmc6MCAwIDAgMTBweH0uc3dhZ2dlci11aSAucHJvcC1uYW1le2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDoxZW19LnN3YWdnZXItdWkgLnByb3AtdHlwZXtjb2xvcjojNTVhfS5zd2FnZ2VyLXVpIC5wcm9wLWVudW17ZGlzcGxheTpibG9ja30uc3dhZ2dlci11aSAucHJvcC1mb3JtYXR7Y29sb3I6IzYwNjA2MH0uc3dhZ2dlci11aSAuc2VydmVycz5sYWJlbHtjb2xvcjojM2I0MTUxO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7bWFyZ2luOi0yMHB4IDE1cHggMCAwfS5zd2FnZ2VyLXVpIC5zZXJ2ZXJzPmxhYmVsIHNlbGVjdHttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MTMwcHg7d2lkdGg6MTAwJX0uc3dhZ2dlci11aSAuc2VydmVycyBoNC5tZXNzYWdle3BhZGRpbmctYm90dG9tOjJlbX0uc3dhZ2dlci11aSAuc2VydmVycyB0YWJsZSB0cnt3aWR0aDozMGVtfS5zd2FnZ2VyLXVpIC5zZXJ2ZXJzIHRhYmxlIHRke2Rpc3BsYXk6aW5saW5lLWJsb2NrO21heC13aWR0aDoxNWVtO3BhZGRpbmctYm90dG9tOjEwcHg7cGFkZGluZy10b3A6MTBweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnN3YWdnZXItdWkgLnNlcnZlcnMgdGFibGUgdGQ6Zmlyc3Qtb2YtdHlwZXtwYWRkaW5nLXJpZ2h0OjFlbX0uc3dhZ2dlci11aSAuc2VydmVycyB0YWJsZSB0ZCBpbnB1dHtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5zd2FnZ2VyLXVpIC5zZXJ2ZXJzIC5jb21wdXRlZC11cmx7bWFyZ2luOjJlbSAwfS5zd2FnZ2VyLXVpIC5zZXJ2ZXJzIC5jb21wdXRlZC11cmwgY29kZXtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTZweDttYXJnaW46MCAxZW07cGFkZGluZzo0cHh9LnN3YWdnZXItdWkgLnNlcnZlcnMtdGl0bGV7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NzAwfS5zd2FnZ2VyLXVpIC5vcGVyYXRpb24tc2VydmVycyBoNC5tZXNzYWdle21hcmdpbi1ib3R0b206MmVtfS5zd2FnZ2VyLXVpIHRhYmxle2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtwYWRkaW5nOjAgMTBweDt3aWR0aDoxMDAlfS5zd2FnZ2VyLXVpIHRhYmxlLm1vZGVsIHRib2R5IHRyIHRke3BhZGRpbmc6MCAwIDAgMWVtO3ZlcnRpY2FsLWFsaWduOnRvcH0uc3dhZ2dlci11aSB0YWJsZS5tb2RlbCB0Ym9keSB0ciB0ZDpmaXJzdC1vZi10eXBle3BhZGRpbmc6MCAwIDAgMmVtO3dpZHRoOjE3NHB4fS5zd2FnZ2VyLXVpIHRhYmxlLmhlYWRlcnMgdGR7Y29sb3I6IzNiNDE1MTtmb250LWZhbWlseTptb25vc3BhY2U7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6MzAwO2ZvbnQtd2VpZ2h0OjYwMDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnN3YWdnZXItdWkgdGFibGUuaGVhZGVycyAuaGVhZGVyLWV4YW1wbGV7Y29sb3I6Izk5OTtmb250LXN0eWxlOml0YWxpY30uc3dhZ2dlci11aSB0YWJsZSB0Ym9keSB0ciB0ZHtwYWRkaW5nOjEwcHggMCAwO3ZlcnRpY2FsLWFsaWduOnRvcH0uc3dhZ2dlci11aSB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1vZi10eXBle21pbi13aWR0aDo2ZW07cGFkZGluZzoxMHB4IDB9LnN3YWdnZXItdWkgdGFibGUgdGJvZHkgdHIgdGQ6aGFzKC5tb2RlbC1ib3gpe21heC13aWR0aDoxcHh9LnN3YWdnZXItdWkgdGFibGUgdGhlYWQgdHIgdGQsLnN3YWdnZXItdWkgdGFibGUgdGhlYWQgdHIgdGh7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSg1OSw2NSw4MSwuMik7Y29sb3I6IzNiNDE1MTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjcwMDtwYWRkaW5nOjEycHggMDt0ZXh0LWFsaWduOmxlZnR9LnN3YWdnZXItdWkgLnBhcmFtZXRlcnMtY29sX2Rlc2NyaXB0aW9ue21hcmdpbi1ib3R0b206MmVtO3dpZHRoOjk5JX0uc3dhZ2dlci11aSAucGFyYW1ldGVycy1jb2xfZGVzY3JpcHRpb24gaW5wdXR7bWF4LXdpZHRoOjM0MHB4O3dpZHRoOjEwMCV9LnN3YWdnZXItdWkgLnBhcmFtZXRlcnMtY29sX2Rlc2NyaXB0aW9uIHNlbGVjdHtib3JkZXItd2lkdGg6MXB4fS5zd2FnZ2VyLXVpIC5wYXJhbWV0ZXJzLWNvbF9kZXNjcmlwdGlvbiAubWFya2Rvd24gcCwuc3dhZ2dlci11aSAucGFyYW1ldGVycy1jb2xfZGVzY3JpcHRpb24gLnJlbmRlcmVkTWFya2Rvd24gcHttYXJnaW46MH0uc3dhZ2dlci11aSAucGFyYW1ldGVyX19uYW1le2NvbG9yOiMzYjQxNTE7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo0MDA7bWFyZ2luLXJpZ2h0Oi43NWVtfS5zd2FnZ2VyLXVpIC5wYXJhbWV0ZXJfX25hbWUucmVxdWlyZWR7Zm9udC13ZWlnaHQ6NzAwfS5zd2FnZ2VyLXVpIC5wYXJhbWV0ZXJfX25hbWUucmVxdWlyZWQgc3Bhbntjb2xvcjpyZWR9LnN3YWdnZXItdWkgLnBhcmFtZXRlcl9fbmFtZS5yZXF1aXJlZDphZnRlcntjb2xvcjpyZ2JhKDI1NSwwLDAsLjYpO2NvbnRlbnQ6InJlcXVpcmVkIjtmb250LXNpemU6MTBweDtwYWRkaW5nOjVweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTZweH0uc3dhZ2dlci11aSAucGFyYW1ldGVyX19leHRlbnNpb24sLnN3YWdnZXItdWkgLnBhcmFtZXRlcl9faW57Y29sb3I6Z3JleTtmb250LWZhbWlseTptb25vc3BhY2U7Zm9udC1zaXplOjEycHg7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC13ZWlnaHQ6NjAwfS5zd2FnZ2VyLXVpIC5wYXJhbWV0ZXJfX2RlcHJlY2F0ZWR7Y29sb3I6cmVkO2ZvbnQtZmFtaWx5Om1vbm9zcGFjZTtmb250LXNpemU6MTJweDtmb250LXN0eWxlOml0YWxpYztmb250LXdlaWdodDo2MDB9LnN3YWdnZXItdWkgLnBhcmFtZXRlcl9fZW1wdHlfdmFsdWVfdG9nZ2xle2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjEzcHg7cGFkZGluZy1ib3R0b206MTJweDtwYWRkaW5nLXRvcDo1cHh9LnN3YWdnZXItdWkgLnBhcmFtZXRlcl9fZW1wdHlfdmFsdWVfdG9nZ2xlIGlucHV0e21hcmdpbi1yaWdodDo3cHg7d2lkdGg6YXV0b30uc3dhZ2dlci11aSAucGFyYW1ldGVyX19lbXB0eV92YWx1ZV90b2dnbGUuZGlzYWJsZWR7b3BhY2l0eTouN30uc3dhZ2dlci11aSAudGFibGUtY29udGFpbmVye3BhZGRpbmc6MjBweH0uc3dhZ2dlci11aSAucmVzcG9uc2UtY29sX2Rlc2NyaXB0aW9ue3dpZHRoOjk5JX0uc3dhZ2dlci11aSAucmVzcG9uc2UtY29sX2Rlc2NyaXB0aW9uIC5tYXJrZG93biBwLC5zd2FnZ2VyLXVpIC5yZXNwb25zZS1jb2xfZGVzY3JpcHRpb24gLnJlbmRlcmVkTWFya2Rvd24gcHttYXJnaW46MH0uc3dhZ2dlci11aSAucmVzcG9uc2UtY29sX2xpbmtze21pbi13aWR0aDo2ZW19LnN3YWdnZXItdWkgLnJlc3BvbnNlX19leHRlbnNpb257Y29sb3I6Z3JleTtmb250LWZhbWlseTptb25vc3BhY2U7Zm9udC1zaXplOjEycHg7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC13ZWlnaHQ6NjAwfS5zd2FnZ2VyLXVpIC50b3BiYXJ7YmFja2dyb3VuZC1jb2xvcjojMWIxYjFiO3BhZGRpbmc6MTBweCAwfS5zd2FnZ2VyLXVpIC50b3BiYXIgLnRvcGJhci13cmFwcGVye2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjEwcHh9QG1lZGlhKG1heC13aWR0aDo1NTBweCl7LnN3YWdnZXItdWkgLnRvcGJhciAudG9wYmFyLXdyYXBwZXJ7YWxpZ24taXRlbXM6c3RhcnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1ufX0uc3dhZ2dlci11aSAudG9wYmFyIGF7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiNmZmY7ZGlzcGxheTpmbGV4O2ZsZXg6MTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjVlbTtmb250LXdlaWdodDo3MDA7bWF4LXdpZHRoOjMwMHB4Oy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnN3YWdnZXItdWkgLnRvcGJhciBhIHNwYW57bWFyZ2luOjA7cGFkZGluZzowIDEwcHh9LnN3YWdnZXItdWkgLnRvcGJhciAuZG93bmxvYWQtdXJsLXdyYXBwZXJ7ZGlzcGxheTpmbGV4O2ZsZXg6MztqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LnN3YWdnZXItdWkgLnRvcGJhciAuZG93bmxvYWQtdXJsLXdyYXBwZXIgaW5wdXRbdHlwZT10ZXh0XXtib3JkZXI6MnB4IHNvbGlkICM2MmEwM2Y7Ym9yZGVyLXJhZGl1czo0cHggMCAwIDRweDttYXJnaW46MDttYXgtd2lkdGg6MTAwJTtvdXRsaW5lOm5vbmU7d2lkdGg6MTAwJX0uc3dhZ2dlci11aSAudG9wYmFyIC5kb3dubG9hZC11cmwtd3JhcHBlciAuc2VsZWN0LWxhYmVse2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjojZjBmMGYwO2Rpc3BsYXk6ZmxleDttYXJnaW46MDttYXgtd2lkdGg6NjAwcHg7d2lkdGg6MTAwJX0uc3dhZ2dlci11aSAudG9wYmFyIC5kb3dubG9hZC11cmwtd3JhcHBlciAuc2VsZWN0LWxhYmVsIHNwYW57ZmxleDoxO2ZvbnQtc2l6ZToxNnB4O3BhZGRpbmc6MCAxMHB4IDAgMDt0ZXh0LWFsaWduOnJpZ2h0fS5zd2FnZ2VyLXVpIC50b3BiYXIgLmRvd25sb2FkLXVybC13cmFwcGVyIC5zZWxlY3QtbGFiZWwgc2VsZWN0e2JvcmRlcjoycHggc29saWQgIzYyYTAzZjtib3gtc2hhZG93Om5vbmU7ZmxleDoyO291dGxpbmU6bm9uZTt3aWR0aDoxMDAlfS5zd2FnZ2VyLXVpIC50b3BiYXIgLmRvd25sb2FkLXVybC13cmFwcGVyIC5kb3dubG9hZC11cmwtYnV0dG9ue2JhY2tncm91bmQ6IzYyYTAzZjtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjAgNHB4IDRweCAwO2NvbG9yOiNmZmY7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo3MDA7cGFkZGluZzo0cHggMzBweH1AbWVkaWEobWF4LXdpZHRoOjU1MHB4KXsuc3dhZ2dlci11aSAudG9wYmFyIC5kb3dubG9hZC11cmwtd3JhcHBlcnt3aWR0aDoxMDAlfX0uc3dhZ2dlci11aSAuaW5mb3ttYXJnaW46NTBweCAwfS5zd2FnZ2VyLXVpIC5pbmZvLmZhaWxlZC1jb25maWd7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0bzttYXgtd2lkdGg6ODgwcHg7dGV4dC1hbGlnbjpjZW50ZXJ9LnN3YWdnZXItdWkgLmluZm8gaGdyb3VwLm1haW57bWFyZ2luOjAgMCAyMHB4fS5zd2FnZ2VyLXVpIC5pbmZvIGhncm91cC5tYWluIGF7Zm9udC1zaXplOjEycHh9LnN3YWdnZXItdWkgLmluZm8gbGksLnN3YWdnZXItdWkgLmluZm8gcCwuc3dhZ2dlci11aSAuaW5mbyBwcmUsLnN3YWdnZXItdWkgLmluZm8gdGFibGV7Zm9udC1zaXplOjE0cHh9LnN3YWdnZXItdWkgLmluZm8gaDEsLnN3YWdnZXItdWkgLmluZm8gaDIsLnN3YWdnZXItdWkgLmluZm8gaDMsLnN3YWdnZXItdWkgLmluZm8gaDQsLnN3YWdnZXItdWkgLmluZm8gaDUsLnN3YWdnZXItdWkgLmluZm8gbGksLnN3YWdnZXItdWkgLmluZm8gcCwuc3dhZ2dlci11aSAuaW5mbyB0YWJsZXtjb2xvcjojM2I0MTUxO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWZ9LnN3YWdnZXItdWkgLmluZm8gYXtjb2xvcjojNDk5MGUyO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7dHJhbnNpdGlvbjphbGwgLjRzfS5zd2FnZ2VyLXVpIC5pbmZvIGE6aG92ZXJ7Y29sb3I6IzFmNjljMH0uc3dhZ2dlci11aSAuaW5mbz5kaXZ7bWFyZ2luOjAgMCA1cHh9LnN3YWdnZXItdWkgLmluZm8gLmJhc2UtdXJse2NvbG9yOiMzYjQxNTE7Zm9udC1mYW1pbHk6bW9ub3NwYWNlO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjMwMCFpbXBvcnRhbnQ7Zm9udC13ZWlnaHQ6NjAwO21hcmdpbjowfS5zd2FnZ2VyLXVpIC5pbmZvIC50aXRsZXtjb2xvcjojM2I0MTUxO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7Zm9udC1zaXplOjM2cHg7bWFyZ2luOjB9LnN3YWdnZXItdWkgLmluZm8gLnRpdGxlIHNtYWxse2JhY2tncm91bmQ6IzdkODQ5Mjtib3JkZXItcmFkaXVzOjU3cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjEwcHg7bWFyZ2luOjAgMCAwIDVweDtwYWRkaW5nOjJweCA0cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi01cHg7dmVydGljYWwtYWxpZ246c3VwZXJ9LnN3YWdnZXItdWkgLmluZm8gLnRpdGxlIHNtYWxsLnZlcnNpb24tc3RhbXB7YmFja2dyb3VuZC1jb2xvcjojODliZjA0fS5zd2FnZ2VyLXVpIC5pbmZvIC50aXRsZSBzbWFsbCBwcmV7Y29sb3I6I2ZmZjtmb250LWZhbWlseTpzYW5zLXNlcmlmO21hcmdpbjowO3BhZGRpbmc6MH0uc3dhZ2dlci11aSAuYXV0aC1idG4td3JhcHBlcntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjEwcHggMH0uc3dhZ2dlci11aSAuYXV0aC1idG4td3JhcHBlciAuYnRuLWRvbmV7bWFyZ2luLXJpZ2h0OjFlbX0uc3dhZ2dlci11aSAuYXV0aC13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4OjE7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5zd2FnZ2VyLXVpIC5hdXRoLXdyYXBwZXIgLmF1dGhvcml6ZXttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3BhZGRpbmctcmlnaHQ6MjBweH0uc3dhZ2dlci11aSAuYXV0aC1jb250YWluZXJ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjttYXJnaW46MCAwIDEwcHg7cGFkZGluZzoxMHB4IDIwcHh9LnN3YWdnZXItdWkgLmF1dGgtY29udGFpbmVyOmxhc3Qtb2YtdHlwZXtib3JkZXI6MDttYXJnaW46MDtwYWRkaW5nOjEwcHggMjBweH0uc3dhZ2dlci11aSAuYXV0aC1jb250YWluZXIgaDR7bWFyZ2luOjVweCAwIDE1cHghaW1wb3J0YW50fS5zd2FnZ2VyLXVpIC5hdXRoLWNvbnRhaW5lciAud3JhcHBlcnttYXJnaW46MDtwYWRkaW5nOjB9LnN3YWdnZXItdWkgLmF1dGgtY29udGFpbmVyIGlucHV0W3R5cGU9cGFzc3dvcmRdLC5zd2FnZ2VyLXVpIC5hdXRoLWNvbnRhaW5lciBpbnB1dFt0eXBlPXRleHRde21pbi13aWR0aDoyMzBweH0uc3dhZ2dlci11aSAuYXV0aC1jb250YWluZXIgLmVycm9yc3tiYWNrZ3JvdW5kLWNvbG9yOiNmZWU7Ym9yZGVyLXJhZGl1czo0cHg7Y29sb3I6cmVkO2NvbG9yOiMzYjQxNTE7Zm9udC1mYW1pbHk6bW9ub3NwYWNlO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW46MWVtO3BhZGRpbmc6MTBweH0uc3dhZ2dlci11aSAuYXV0aC1jb250YWluZXIgLmVycm9ycyBie21hcmdpbi1yaWdodDoxZW07dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZX0uc3dhZ2dlci11aSAuc2NvcGVzIGgye2NvbG9yOiMzYjQxNTE7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0uc3dhZ2dlci11aSAuc2NvcGVzIGgyIGF7Y29sb3I6IzQ5OTBlMjtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MTJweDtwYWRkaW5nLWxlZnQ6MTBweDstd2Via2l0LXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uc3dhZ2dlci11aSAuc2NvcGUtZGVme3BhZGRpbmc6MCAwIDIwcHh9LnN3YWdnZXItdWkgLmVycm9ycy13cmFwcGVye2FuaW1hdGlvbjpzY2FsZVVwIC41cztiYWNrZ3JvdW5kOnJnYmEoMjQ5LDYyLDYyLC4xKTtib3JkZXI6MnB4IHNvbGlkICNmOTNlM2U7Ym9yZGVyLXJhZGl1czo0cHg7bWFyZ2luOjIwcHg7cGFkZGluZzoxMHB4IDIwcHh9LnN3YWdnZXItdWkgLmVycm9ycy13cmFwcGVyIC5lcnJvci13cmFwcGVye21hcmdpbjowIDAgMTBweH0uc3dhZ2dlci11aSAuZXJyb3JzLXdyYXBwZXIgLmVycm9ycyBoNHtjb2xvcjojM2I0MTUxO2ZvbnQtZmFtaWx5Om1vbm9zcGFjZTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo2MDA7bWFyZ2luOjB9LnN3YWdnZXItdWkgLmVycm9ycy13cmFwcGVyIC5lcnJvcnMgc21hbGx7Y29sb3I6IzYwNjA2MH0uc3dhZ2dlci11aSAuZXJyb3JzLXdyYXBwZXIgLmVycm9ycyAubWVzc2FnZXt3aGl0ZS1zcGFjZTpwcmUtbGluZX0uc3dhZ2dlci11aSAuZXJyb3JzLXdyYXBwZXIgLmVycm9ycyAubWVzc2FnZS50aHJvd257bWF4LXdpZHRoOjEwMCV9LnN3YWdnZXItdWkgLmVycm9ycy13cmFwcGVyIC5lcnJvcnMgLmVycm9yLWxpbmV7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LnN3YWdnZXItdWkgLmVycm9ycy13cmFwcGVyIGhncm91cHthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS5zd2FnZ2VyLXVpIC5lcnJvcnMtd3JhcHBlciBoZ3JvdXAgaDR7Y29sb3I6IzNiNDE1MTtmbGV4OjE7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6MjBweDttYXJnaW46MH1Aa2V5ZnJhbWVzIHNjYWxlVXB7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSguOCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZSgxKX19LnN3YWdnZXItdWkgLlJlc2l6ZXIudmVydGljYWwuZGlzYWJsZWR7ZGlzcGxheTpub25lfS5zd2FnZ2VyLXVpIC5tYXJrZG93biBwLC5zd2FnZ2VyLXVpIC5tYXJrZG93biBwcmUsLnN3YWdnZXItdWkgLnJlbmRlcmVkTWFya2Rvd24gcCwuc3dhZ2dlci11aSAucmVuZGVyZWRNYXJrZG93biBwcmV7bWFyZ2luOjFlbSBhdXRvO3dvcmQtYnJlYWs6YnJlYWstYWxsO3dvcmQtYnJlYWs6YnJlYWstd29yZH0uc3dhZ2dlci11aSAubWFya2Rvd24gcHJlLC5zd2FnZ2VyLXVpIC5yZW5kZXJlZE1hcmtkb3duIHByZXtiYWNrZ3JvdW5kOm5vbmU7Y29sb3I6IzAwMDtmb250LXdlaWdodDo0MDA7cGFkZGluZzowO3doaXRlLXNwYWNlOnByZS13cmFwfS5zd2FnZ2VyLXVpIC5tYXJrZG93biBjb2RlLC5zd2FnZ2VyLXVpIC5yZW5kZXJlZE1hcmtkb3duIGNvZGV7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4wNSk7Ym9yZGVyLXJhZGl1czo0cHg7Y29sb3I6IzkwMTJmZTtmb250LWZhbWlseTptb25vc3BhY2U7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6NXB4IDdweH0uc3dhZ2dlci11aSAubWFya2Rvd24gcHJlPmNvZGUsLnN3YWdnZXItdWkgLnJlbmRlcmVkTWFya2Rvd24gcHJlPmNvZGV7ZGlzcGxheTpibG9ja30uc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1cJHZvY2FidWxhcnkgdWx7Ym9yZGVyLWxlZnQ6MXB4IGRhc2hlZCByZ2JhKDAsMCwwLC4xKTttYXJnaW46MCAwIDAgMjBweH0uc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMi1cJHZvY2FidWxhcnktdXJpe21hcmdpbi1sZWZ0OjM1cHh9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTItXCR2b2NhYnVsYXJ5LXVyaS0tZGlzYWJsZWR7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdoO3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2h9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tY29uc3QgLmpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX25hbWUsLnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tY29uc3QgLmpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX3ZhbHVle2NvbG9yOiMzYjQxNTE7Zm9udC1zdHlsZTpub3JtYWx9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTJfX2NvbnN0cmFpbnR7YmFja2dyb3VuZC1jb2xvcjojODA1YWQ1O2JvcmRlci1yYWRpdXM6NHB4O2NvbG9yOiMzYjQxNTE7Y29sb3I6I2ZmZjtmb250LWZhbWlseTptb25vc3BhY2U7Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjEuNTttYXJnaW4tbGVmdDoxMHB4O3BhZGRpbmc6MXB4IDNweH0uc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMl9fY29uc3RyYWludC0tc3RyaW5ne2JhY2tncm91bmQtY29sb3I6I2Q2OWUyZTtjb2xvcjojZmZmfS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWRlZmF1bHQgLmpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX25hbWUsLnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZGVmYXVsdCAuanNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fdmFsdWV7Y29sb3I6IzNiNDE1MTtmb250LXN0eWxlOm5vcm1hbH0uc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kZXBlbmRlbnRSZXF1aXJlZD51bHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MDtwYWRkaW5nOjB9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZGVwZW5kZW50UmVxdWlyZWQ+dWwgbGl7ZGlzcGxheTppbmxpbmU7bGlzdC1zdHlsZS10eXBlOm5vbmV9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZGVzY3JpcHRpb257Y29sb3I6IzZiNmI2Yjtmb250LXNpemU6MTJweDttYXJnaW4tbGVmdDoyMHB4fS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWRlc2NyaXB0aW9uIHB7bWFyZ2luOjB9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZW51bSAuanNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fbmFtZSwuc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1lbnVtIC5qc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX192YWx1ZSwuc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1leGFtcGxlcyAuanNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fbmFtZSwuc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1leGFtcGxlcyAuanNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fdmFsdWV7Y29sb3I6IzNiNDE1MTtmb250LXN0eWxlOm5vcm1hbH0uc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlci1leHRlbnNpb24ta2V5d29yZCAuanNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fbmFtZSwuc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlci1leHRlbnNpb24ta2V5d29yZCAuanNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fdmFsdWV7Y29sb3I6IzkyOTI5Mjtmb250LXN0eWxlOml0YWxpY30uc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1wYXR0ZXJuUHJvcGVydGllcyB1bHtib3JkZXI6bm9uZTttYXJnaW46MDtwYWRkaW5nOjB9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tcGF0dGVyblByb3BlcnRpZXMgLmpzb24tc2NoZW1hLTIwMjAtMTJfX3RpdGxlOmZpcnN0LW9mLXR5cGU6YWZ0ZXIsLnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tcGF0dGVyblByb3BlcnRpZXMgLmpzb24tc2NoZW1hLTIwMjAtMTJfX3RpdGxlOmZpcnN0LW9mLXR5cGU6YmVmb3Jle2NvbG9yOiM1NWE7Y29udGVudDoiLyJ9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tcHJvcGVydGllcz51bHtib3JkZXI6bm9uZTttYXJnaW46MDtwYWRkaW5nOjB9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHl7bGlzdC1zdHlsZS10eXBlOm5vbmV9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHktLXJlcXVpcmVkPi5qc29uLXNjaGVtYS0yMDIwLTEyOmZpcnN0LW9mLXR5cGU+Lmpzb24tc2NoZW1hLTIwMjAtMTItaGVhZCAuanNvbi1zY2hlbWEtMjAyMC0xMl9fdGl0bGU6YWZ0ZXJ7Y29sb3I6cmVkO2NvbnRlbnQ6IioiO2ZvbnQtd2VpZ2h0OjcwMH0uc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMl9fdGl0bGV7Y29sb3I6IzUwNTA1MDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjcwMDtsaW5lLWhlaWdodDpub3JtYWx9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTJfX3RpdGxlIC5qc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWV7bWFyZ2luOjB9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHl7bWFyZ2luOjdweCAwfS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5IC5qc29uLXNjaGVtYS0yMDIwLTEyX190aXRsZXtjb2xvcjojM2I0MTUxO2ZvbnQtZmFtaWx5Om1vbm9zcGFjZTtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo2MDA7dmVydGljYWwtYWxpZ246bWlkZGxlfS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmR7bWFyZ2luOjVweCAwfS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVue2JvcmRlci1sZWZ0OjFweCBkYXNoZWQgcmdiYSgwLDAsMCwuMSk7bWFyZ2luOjAgMCAwIDIwcHg7cGFkZGluZzowfS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWR7ZGlzcGxheTpub25lfS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWV7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NzAwO21hcmdpbi1sZWZ0OjIwcHh9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeXtjb2xvcjojM2I0MTUxO2ZvbnQtc3R5bGU6bm9ybWFsfS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeXtjb2xvcjojNmI2YjZiO2ZvbnQtc3R5bGU6aXRhbGljfS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLWV4dGVuc2lvbntjb2xvcjojOTI5MjkyO2ZvbnQtc3R5bGU6aXRhbGljfS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVle2NvbG9yOiM2YjZiNmI7Zm9udC1zaXplOjEycHg7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC13ZWlnaHQ6NDAwfS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1wcmltYXJ5e2NvbG9yOiMzYjQxNTE7Zm9udC1zdHlsZTpub3JtYWx9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeXtjb2xvcjojNmI2YjZiO2ZvbnQtc3R5bGU6aXRhbGljfS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1leHRlbnNpb257Y29sb3I6IzkyOTI5Mjtmb250LXN0eWxlOml0YWxpY30uc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0td2FybmluZ3tib3JkZXI6MXB4IGRhc2hlZCByZWQ7Ym9yZGVyLXJhZGl1czo0cHg7Y29sb3I6IzNiNDE1MTtjb2xvcjpyZWQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6bW9ub3NwYWNlO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoxLjU7bWFyZ2luLWxlZnQ6MTBweDtwYWRkaW5nOjFweCA0cHh9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5Ky5qc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnk6YmVmb3Jle2NvbnRlbnQ6Ij0ifS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGV7Y29sb3I6IzNiNDE1MTtmb250LWZhbWlseTptb25vc3BhY2U7Zm9udC1zaXplOjEycHg7cGFkZGluZy1sZWZ0OjEwcHg7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlfS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnl7Y29sb3I6IzU1YX0uc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1tdXRlZHtjb2xvcjpncmF5fS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXdhcm5pbmd7Y29sb3I6cmVkfS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2Vye21hcmdpbjo1cHggMH0uc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fY2hpbGRyZW57Ym9yZGVyLWxlZnQ6MXB4IGRhc2hlZCByZ2JhKDAsMCwwLC4xKTttYXJnaW46MCAwIDAgMjBweDtwYWRkaW5nOjB9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX2NoaWxkcmVuLS1jb2xsYXBzZWR7ZGlzcGxheTpub25lfS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19uYW1le2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW4tbGVmdDoyMHB4fS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19uYW1lLS1wcmltYXJ5e2NvbG9yOiMzYjQxNTE7Zm9udC1zdHlsZTpub3JtYWx9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX25hbWUtLXNlY29uZGFyeXtjb2xvcjojNmI2YjZiO2ZvbnQtc3R5bGU6aXRhbGljfS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19uYW1lLS1leHRlbnNpb257Y29sb3I6IzkyOTI5Mjtmb250LXN0eWxlOml0YWxpY30uc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fdmFsdWV7Y29sb3I6IzZiNmI2Yjtmb250LXNpemU6MTJweDtmb250LXN0eWxlOml0YWxpYztmb250LXdlaWdodDo0MDB9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX3ZhbHVlLS1wcmltYXJ5e2NvbG9yOiMzYjQxNTE7Zm9udC1zdHlsZTpub3JtYWx9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX3ZhbHVlLS1zZWNvbmRhcnl7Y29sb3I6IzZiNmI2Yjtmb250LXN0eWxlOml0YWxpY30uc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fdmFsdWUtLWV4dGVuc2lvbntjb2xvcjojOTI5MjkyO2ZvbnQtc3R5bGU6aXRhbGljfS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX192YWx1ZS0td2FybmluZ3tib3JkZXI6MXB4IGRhc2hlZCByZWQ7Ym9yZGVyLXJhZGl1czo0cHg7Y29sb3I6IzNiNDE1MTtjb2xvcjpyZWQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6bW9ub3NwYWNlO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoxLjU7bWFyZ2luLWxlZnQ6MTBweDtwYWRkaW5nOjFweCA0cHh9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX25hbWUtLXNlY29uZGFyeSsuanNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fdmFsdWUtLXNlY29uZGFyeTpiZWZvcmV7Y29udGVudDoiPSJ9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wNSk7Ym9yZGVyLXJhZGl1czo0cHg7bWFyZ2luOjAgMjBweCAxNXB4O3BhZGRpbmc6MTJweCAwIDEycHggMjBweH0uc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMjpmaXJzdC1vZi10eXBle21hcmdpbjoyMHB4fS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyOmxhc3Qtb2YtdHlwZXttYXJnaW46MCAyMHB4fS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLS1lbWJlZGRlZHtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7cGFkZGluZy1ib3R0b206MDtwYWRkaW5nLWxlZnQ6aW5oZXJpdDtwYWRkaW5nLXJpZ2h0OmluaGVyaXQ7cGFkZGluZy10b3A6MH0uc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMi1ib2R5e2JvcmRlci1sZWZ0OjFweCBkYXNoZWQgcmdiYSgwLDAsMCwuMSk7bWFyZ2luOjJweCAwfS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLWJvZHktLWNvbGxhcHNlZHtkaXNwbGF5Om5vbmV9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTItYWNjb3JkaW9ue2JvcmRlcjpub25lO291dGxpbmU6bm9uZTtwYWRkaW5nLWxlZnQ6MH0uc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb25fX2NoaWxkcmVue2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLWFjY29yZGlvbl9faWNvbntkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MThweDt2ZXJ0aWNhbC1hbGlnbjpib3R0b207d2lkdGg6MThweH0uc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb25fX2ljb24tLWV4cGFuZGVke3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTt0cmFuc2Zvcm0tb3JpZ2luOjUwJSA1MCU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE1cyBlYXNlLWlufS5zd2FnZ2VyLXVpIC5qc29uLXNjaGVtYS0yMDIwLTEyLWFjY29yZGlvbl9faWNvbi0tY29sbGFwc2Vke3RyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtLW9yaWdpbjo1MCUgNTAlO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xNXMgZWFzZS1pbn0uc3dhZ2dlci11aSAuanNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb25fX2ljb24gc3Zne2hlaWdodDoyMHB4O3dpZHRoOjIwcHh9LnN3YWdnZXItdWkgLmpzb24tc2NoZW1hLTIwMjAtMTItZXhwYW5kLWRlZXAtYnV0dG9ue2JvcmRlcjpub25lO2NvbG9yOiM1MDUwNTA7Y29sb3I6I2FmYWVhZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O3BhZGRpbmctcmlnaHQ6MH0uc3dhZ2dlci11aSAubW9kZWwtYm94IC5qc29uLXNjaGVtYS0yMDIwLTEyOm5vdCguanNvbi1zY2hlbWEtMjAyMC0xMi0tZW1iZWRkZWQpPi5qc29uLXNjaGVtYS0yMDIwLTEyLWhlYWQgLmpzb24tc2NoZW1hLTIwMjAtMTJfX3RpdGxlOmZpcnN0LW9mLXR5cGV7Zm9udC1zaXplOjE2cHh9LnN3YWdnZXItdWkgLm1vZGVsLWJveD4uanNvbi1zY2hlbWEtMjAyMC0xMnttYXJnaW46MH0uc3dhZ2dlci11aSAubW9kZWwtYm94IC5qc29uLXNjaGVtYS0yMDIwLTEye2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7cGFkZGluZzowfS5zd2FnZ2VyLXVpIC5tb2RlbC1ib3ggLmpzb24tc2NoZW1hLTIwMjAtMTItYWNjb3JkaW9uLC5zd2FnZ2VyLXVpIC5tb2RlbC1ib3ggLmpzb24tc2NoZW1hLTIwMjAtMTItZXhwYW5kLWRlZXAtYnV0dG9ue2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LnN3YWdnZXItdWkgLm1vZGVscyAuanNvbi1zY2hlbWEtMjAyMC0xMjpub3QoLmpzb24tc2NoZW1hLTIwMjAtMTItLWVtYmVkZGVkKT4uanNvbi1zY2hlbWEtMjAyMC0xMi1oZWFkIC5qc29uLXNjaGVtYS0yMDIwLTEyX190aXRsZTpmaXJzdC1vZi10eXBle2ZvbnQtc2l6ZToxNnB4fS5zd2FnZ2VyLXVpIC5tb2RlbHMgLmpzb24tc2NoZW1hLTIwMjAtMTI6bm90KC5qc29uLXNjaGVtYS0yMDIwLTEyLS1lbWJlZGRlZCl7b3ZlcmZsb3cteDphdXRvO3dpZHRoOmNhbGMoMTAwJSAtIDQwcHgpfQoKLyojIHNvdXJjZU1hcHBpbmdVUkw9c3dhZ2dlci11aS5jc3MubWFwKi8=</File>
        <File Location="var/httpd/htdocs/js/thirdparty/swagger/swagger-ui.css.map" Permission="660" Encode="Base64">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QlgsMkJDOEJXLDBCRDdCWCwyQkM4QlcsMEJEN0JYLDJCQzhCVywwQkQ3QlgsMkJDOEJXLDBCRDdCWCw0QkM4QlcsMkJEN0JYLDZCQzhCWSw0QkQ3QlosNkJDOEJhLDBCRDVCYixvQkN5Q1cscUJEeENYLG9CQ3lDTSwyQkR4Q04sb0JDeUNZLHdCRHhDWixvQkN5Q1Msc0JEeENULG9CQ3lDTyx3QkR4Q1AsaUJDeUNTLDhCRHhDVCxvQkN5Q2Usd0JEeENmLG9CQ3lDUyw4QkR4Q1Qsb0JDeUNlLDJCRHhDZixvQkN5Q1ksMEJEeENaLG9CQ3lDVyxzQkR4Q1gsb0JDeUNPLDRCRHhDUCxvQkN5Q2EsNEJEeENiLG9CQ3lDYSx1QkR4Q2Isb0JDeUNRLDZCRHhDUixvQkN5Q2Msc0JEeENkLG9CQ3lDTywyQkR4Q1Asb0JDeUNZLHNCRHhDWixvQkN5Q08sNEJEeENQLG9CQ3lDYSwrQkR4Q2Isb0JDeUNnQiw2QkR4Q2hCLG9CQ3lDYyw4QkR4Q2Qsb0JDeUNlLCtCRHhDZixvQkN5Q2dCLDRCRHhDaEIsb0JDeUNhLDZCRHZDYix3QkNWYyx5QkRXZCxzQ0UzREUsZURtQm1CLGtCQ2xCbkIscUJEbUJnQixrQkNsQmhCLG9CRG1CZ0Isa0JDbEJoQixtQkRtQmdCLGtCQ2xCaEIsa0JEbUJnQixxQkNsQmhCLGtCRG1CcUIsc0JDbEJyQixvQkRtQm1CLHlCQ2xCbkIsd0JBQ0ksMEJBQ0Esc0JBRUosMkJBQ0ksNkJBQ0Esd0JBR0EsMkJBQ0EsQ0FGSix3QkFFSSx1QkFHQSw0QkFDQSxDQUZKLHlCQUVJLG9DQUdOLG9CQUNFLGVETm1CLHFCQ09uQixxQkROZ0IscUJDT2hCLG9CRE5nQixxQkNPaEIsbUJETmdCLHFCQ09oQixrQkROZ0Isd0JDT2hCLGtCRE5xQix5QkNPckIsb0JETm1CLDRCQ09uQix3QkFDSSwwQkFDQSx5QkFFSiwyQkFDSSw2QkFDQSwyQkFHQSwyQkFDQSxDQUZKLHdCQUVJLDBCQUdBLDRCQUNBLENBRkoseUJBRUkseURBSU4sbUJBQ0UsZURoQ21CLG9CQ2lDbkIscUJEaENnQixvQkNpQ2hCLG9CRGhDZ0Isb0JDaUNoQixtQkRoQ2dCLG9CQ2lDaEIsa0JEaENnQix1QkNpQ2hCLGtCRGhDcUIsd0JDaUNyQixvQkRoQ21CLDJCQ2lDbkIsd0JBQ0ksMEJBQ0Esd0JBRUosMkJBQ0ksNkJBQ0EsMEJBR0EsMkJBQ0EsQ0FGSix3QkFFSSx5QkFHQSw0QkFDQSxDQUZKLHlCQUVJLHFDQUlOLG1CQUNFLGVEMURtQixvQkMyRG5CLHFCRDFEZ0Isb0JDMkRoQixvQkQxRGdCLG9CQzJEaEIsbUJEMURnQixvQkMyRGhCLGtCRDFEZ0IsdUJDMkRoQixrQkQxRHFCLHdCQzJEckIsb0JEMURtQiwyQkMyRG5CLHdCQUNJLDBCQUNBLHdCQUVKLDJCQUNJLDZCQUNBLDBCQUdBLDJCQUNBLENBRkosd0JBRUkseUJBR0EsNEJBQ0EsQ0FGSix5QkFFSSx5QkNyR04sMkNBQ0EsMENBQ0Esd0NBQ0EscURBRUEsMEJBQ0UsOENBQ0EsNkNBQ0EsMkNBQ0EsMEVBR0YseUJBQ0UsNkNBQ0EsNENBQ0EsMENBQ0Esc0RBR0YseUJBQ0UsNkNBQ0EsNENBQ0EsMENBQ0Esb0NDdkJGLGNINkJvQixrQkc1QnBCLG9CSDZCaUIsa0JHNUJqQixtQkg2QmlCLGtCRzVCakIsa0JINkJpQixrQkc1QmpCLGlCSDZCaUIsa0JHNUJqQixpQkg2QmlCLG1CRzFCakIsa0JIcUJvQixtQkdwQnBCLG9CSG9Cb0IsbUJHbkJwQixxQkhtQm9CLG1CR2xCcEIsbUJIa0JvQixvQ0doQnBCLG9CQUNFLGNIZWtCLHFCR2RsQixvQkhlZSxxQkdkZixtQkhlZSxxQkdkZixrQkhlZSxxQkdkZixpQkhlZSxxQkdkZixpQkhlZSxzQkdkZixrQkhTa0Isc0JHUmxCLG9CSFFrQixzQkdQbEIscUJIT2tCLHNCR05sQixtQkhNa0IseURHSHBCLG1CQUNFLGNIRWtCLG9CR0RsQixvQkhFZSxvQkdEZixtQkhFZSxvQkdEZixrQkhFZSxvQkdEZixpQkhFZSxvQkdEZixpQkhFZSxxQkdEZixrQkhKa0IscUJHS2xCLG9CSExrQixxQkdNbEIscUJITmtCLHFCR09sQixtQkhQa0IscUNHVXBCLG1CQUNF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bUJBQ0UsV2Z4Q1Msb0JleUNULFdmeENTLG9CZXlDVCxXZnhDUyxvQmV5Q1QsV2Z4Q1Msb0JleUNULFlmeENTLHNCZXlDVCxnQ0FDQSxnQ0FDQSxpQ0FDQSxzQ0FDQSxzQ0FDQSxrQ0FDQSxrQ0FDQSxtQ0FDQSx3Q0FDQSx3Q0FDQSxzQ0FDQSx1RUFHRixrQkFDRSxXZjVEUyxtQmU2RFQsV2Y1RFMsbUJlNkRULFdmNURTLG1CZTZEVCxXZjVEUyxtQmU2RFQsWWY1RFMscUJlNkRULCtCQUNBLCtCQUNBLGdDQUNBLHFDQUNBLHFDQUNBLGlDQUNBLGlDQUNBLGtDQUNBLHVDQUNBLHVDQUNBLHFDQUNBLG1EQUdGLGtCQUNFLFdmaEZTLG1CZWlGVCxXZmhGUyxtQmVpRlQsV2ZoRlMsbUJlaUZULFdmaEZTLG1CZWlGVCxZZmhGUyxxQmVpRlQsK0JBQ0EsK0JBQ0EsZ0NBQ0EscUNBQ0EscUNBQ0EsaUNBQ0EsaUNBQ0Esa0NBQ0EsdUNBQ0EsdUNBQ0EscUNBQ0EscUNDOUdGLG1CaEJIbUIsNEJnQkluQixxQmhCTHVCLDJCZ0JNdkIsb0JoQkptQixvQ2dCTW5CLHdCQUNFLG1CaEJSaUIsK0JnQlNqQixxQmhCVnFCLDhCZ0JXckIsb0JoQlRpQix5RGdCWW5CLHVCQUNFLG1CaEJkaUIsOEJnQmVqQixxQmhCaEJxQiw2QmdCaUJyQixvQmhCZmlCLHFDZ0JrQm5CLHVCQUNFLG1CaEJwQmlCLDhCZ0JxQmpCLHFCaEJ0QnFCLDZCZ0J1QnJCLG9CaEJyQmlCLHdCaUJFakIsYWpCRGtCLHVCaUJFbEIsZ0JqQkRrQixzQmlCRWxCLGVqQkRpQixvQ2lCR25CLHlCQUNFLGFqQk5rQiwwQmlCT2xCLGdCakJOa0IseUJpQk9sQixlakJOaUIseURpQlNuQix3QkFDRSxhakJaa0IseUJpQmFsQixnQmpCWmtCLHdCaUJhbEIsZWpCWmlCLHFDaUJlbkIsd0JBQ0UsYWpCbEJrQix5QmlCbUJsQixnQmpCbEJrQix3QmlCbUJsQixlakJsQmlCLG9Ca0JObkIsNEJBQ0UsQ0FERixvQkFFRSxDQVdBLDRJQURGLDZCQUtFLENBSkEsd0JBR0EsK0JBQ0EsbUJDakJGLHlDQzBCQSxnQ0FJQSxjcEJEYyxrQm9CRWQsY3BCRGMsa0JvQkVkLGNwQkRjLGtCb0JFZCxjcEJEYyxrQm9CRWQsZXBCRGMsa0JvQkVkLGVwQkRjLGtCb0JFZCxlcEJEYyxrQm9CRWQsZXBCRGMsa0JvQkVkLGVwQkRjLHNCb0JLZCxrREFFQSx1QkFDRSxtQ0FFQSxjcEJsQlkscUJvQm1CWixjcEJsQlkscUJvQm1CWixjcEJsQlkscUJvQm1CWixjcEJsQlkscUJvQm1CWixlcEJsQlkscUJvQm1CWixlcEJsQlkscUJvQm1CWixlcEJsQlkscUJvQm1CWixlcEJsQlkscUJvQm1CWixlcEJsQlkseUJvQm9CWix1RUFHRixzQkFDRSxrQ0FFQSxjcEJsQ1ksb0JvQm1DWixjcEJsQ1ksb0JvQm1DWixjcEJsQ1ksb0JvQm1DWixjcEJsQ1ksb0JvQm1DWixlcEJsQ1ksb0JvQm1DWixlcEJsQ1ksb0JvQm1DWixlcEJsQ1ksb0JvQm1DWixlcEJsQ1ksb0JvQm1DWixlcEJsQ1ksd0JvQm9DWixtREFHRixzQkFDRSxrQ0FFQSxjcEJsRFksb0JvQm1EWixjcEJsRFksb0JvQm1EWixjcEJsRFksb0JvQm1EWixjcEJsRFksb0JvQm1EWixlcEJsRFksb0JvQm1EWixlcEJsRFksb0JvQm1EWixlcEJsRFksb0JvQm1EWixlcEJsRFksb0JvQm1EWixlcEJsRFksd0JvQm9EWixnQ0NwREYsVXJCYlUsaUJxQmNWLFVyQmJVLGlCcUJjVixVckJiVSxpQnFCY1YsVXJCYlUsaUJxQmNWLFdyQmJVLG1CcUJlViw0QkFDQSw0QkFDQSw0QkFDQSw0QkFDQSw0QkFDQSw0QkFDQSw0QkFDQSw0QkFDQSw0QkFDQSw0QkFDQSw0QkFDQSw0QkFDQSw2QkFDQSxnQ0FFQSwrQ0FDQSx5Q0FDQSw4Q0FFQSxtQkFDRSxVckJ2Q1Esb0JxQndDUixVckJ2Q1Esb0JxQndDUixVckJ2Q1Esb0JxQndDUixVckJ2Q1Esb0JxQndDUixXckJ2Q1Esc0JxQndDUiwrQkFDQSwrQkFDQSwrQkFDQSwrQkFDQSwrQkFDQSwrQkFDQSwrQkFDQSwrQkFDQSwrQkFDQSwrQkFDQSwrQkFDQSwrQkFDQSxnQ0FDQSxtQ0FDQSxrREFDQSw0Q0FDQSxtRUFHRixrQkFDRSxVckJoRVEsbUJxQmlFUixVckJoRVEsbUJxQmlFUixVckJoRVEsbUJxQmlFUixVckJoRVEsbUJxQmlFUixXckJoRVEscUJxQmlFUiw4QkFDQSw4QkFDQSw4QkFDQSw4QkFDQSw4QkFDQSw4QkFDQSw4QkFDQSw4QkFDQSw4QkFDQSw4QkFDQSw4QkFDQSw4QkFDQSwrQkFDQSxrQ0FDQSxpREFDQSwyQ0FDQSwrQ0FHRixrQkFDRSxVckJ6RlEsbUJxQjBGUixVckJ6RlEsbUJxQjBGUixVckJ6RlEsbUJxQjBGUixVckJ6RlEsbUJxQjBGUixXckJ6RlEscUJxQjBGUiw4QkFDQSw4QkFDQSw4QkFDQSw4QkFDQSw4QkFDQSw4QkFDQSw4QkFDQSw4QkFDQSw4QkFDQSw4QkFDQSw4QkFDQSw4QkFDQSwrQkFDQSxrQ0FDQSxpREFDQSwyQ0FDQSwwQ0NsSUYsOENBQ0EsNkNBQ0EsMkNBQ0EsOENBRUEsa0RBQ0EsaURBQ0EsK0NBQ0EsZ0RBRUEsa0RBQ0EsaURBQ0EsK0NBQ0EsbURBRUEsaUNBQ0UsaURBQ0EsZ0RBQ0EsOENBQ0EsaURBQ0EscURBQ0Esb0RBQ0Esa0RBQ0EsbURBRUEscURBQ0Esb0RBQ0Esa0RBQ0Esd0VBR0YsZ0NBQ0UsZ0RBQ0EsK0NBQ0EsNkNBQ0EsZ0RBRUEsb0RBQ0EsbURBQ0EsaURBQ0Esa0RBRUEsb0RBQ0EsbURBQ0EsaURBQ0Esb0RBR0YsZ0NBQ0UsZ0RBQ0EsK0NBQ0EsNkNBQ0EsZ0RBRUEsb0RBQ0EsbURBQ0EsaURBQ0Esa0RBRUEsb0RBQ0EsbURBQ0EsaURBQ0EscUNDN0RGLHNDQUNBLHdDQUNBLHFDQUNBLGtEQUVBLHVCQUNFLHlDQUNBLDJDQUNBLHdDQUNBLHVFQUdGLHNCQUNFLHdDQUNBLDBDQUNBLHVDQUNBLG1EQUdGLHNCQUNFLHdDQUNBLDBDQUNBLHVDQUNBLG1DQzVCRiw0QkFDQSw2QkFDQSw2QkFDQSw2QkFDQSw2QkFDQSw2QkFDQSw2QkFDQSw2QkFDQSw2QkFDQSw2QkFDQSwrQkFDQSw4QkFDQSxpQ0NiQSwrQ0FDQSxnREFDQSxpREFDQSxpREFDQSxpREFDQSxpREFDQSw0REFFQSwwQkFDRSxrREFDQSxtREFDQSxvREFDQSxvREFDQSxvREFDQSxvREFDQSxpRkFHRix5QkFDRSxpREFDQSxrREFDQSxtREFDQSxtREFDQSxtREFDQSxtREFDQSw2REFHRix5QkFDRSxpREFDQSxrREFDQSxtREFDQSxtREFDQSxtREFDQSxtREFDQSxnREM1QkYsb0IxQjhEVyx1QjBCN0RYLG9CMUI4RFcsdUIwQjdEWCxvQjFCOERXLHVCMEI3RFgsb0IxQjhEVyx1QjBCN0RYLG9CMUI4RFcsdUIwQjdEWCxvQjFCOERXLHVCMEI3RFgsb0IxQjhEVyx1QjBCN0RYLG9CMUI4RFcsdUIwQjdEWCxvQjFCOERXLHVCMEI3RFgscUIxQjhEVyx1QjBCNURYLHdCMUIrRFcsdUIwQjlEWCx3QjFCK0RXLHVCMEI5RFgsd0IxQitEVyx1QjBCOURYLHdCMUIrRFcsdUIwQjlEWCx3QjFCK0RXLHVCMEI5RFgsd0IxQitEVyx1QjBCOURYLHdCMUIrRFcsdUIwQjlEWCx3QjFCK0RXLHVCMEI5RFgsd0IxQitEVyxvQjBCN0RYLFUxQjZCUSx5QjBCNUJSLFUxQjZCYSx3QjBCNUJiLFUxQjZCWSx1QjBCNUJaLFUxQjZCVyxtQjBCNUJYLFUxQjZCTyxxQjBCNUJQLFUxQjZCUywyQjBCNUJULFUxQjZCZSx3QjBCNUJmLFUxQjZCWSx5QjBCNUJaLFUxQjZCYSx5QjBCNUJiLGExQjZCYSxvQjBCNUJiLFUxQjZCUSx1QjBCM0JSLGExQnFEVyxrQjBCcERYLGExQnFETSx3QjBCcEROLGExQnFEWSxxQjBCcERaLGExQnFEUyxtQjBCcERULGExQnFETyxxQjBCcERQLFUxQnFEUywyQjBCcERULGExQnFEZSxxQjBCcERmLGExQnFEUywyQjBCcERULGExQnFEZSx3QjBCcERmLGExQnFEWSx1QjBCcERaLGExQnFEVyxtQjBCcERYLGExQnFETyx5QjBCcERQLGExQnFEYSx5QjBCcERiLGExQnFEYSxvQjBCcERiLGExQnFEUSwwQjBCcERSLGExQnFEYyxtQjBCcERkLGExQnFETyx3QjBCcERQLGExQnFEWSxtQjBCcERaLGExQnFETyx5QjBCcERQLGExQnFEYSw0QjBCcERiLGExQnFEZ0IsMEIwQnBEaEIsYTFCcURjLDJCMEJwRGQsYTFCcURlLDRCMEJwRGYsYTFCcURnQix5QjBCcERoQixhMUJxRGEsNEIwQnBEYix1Q0FFQSwrQjFCRVcsMEIwQkRYLCtCMUJFVywwQjBCRFgsK0IxQkVXLDBCMEJEWCwrQjFCRVcsMEIwQkRYLCtCMUJFVywwQjBCRFgsK0IxQkVXLDBCMEJEWCwrQjFCRVcsMEIwQkRYLCtCMUJFVywwQjBCRFgsK0IxQkVXLDBCMEJEWCxnQzFCRVcsMEIwQkRYLG1DMUJJVywwQjBCSFgsbUMxQklXLDBCMEJIWCxtQzFCSVcsMEIwQkhYLG1DMUJJVywwQjBCSFgsbUMxQklXLDBCMEJIWCxtQzFCSVcsMEIwQkhYLG1DMUJJVywwQjBCSFgsbUMxQklXLDBCMEJIWCxtQzFCSVcsdUIwQkVYLHFCMUJsQ1EsNEIwQm1DUixxQjFCbENhLDJCMEJtQ2IscUIxQmxDWSwwQjBCbUNaLHFCMUJsQ1csc0IwQm1DWCxxQjFCbENPLHdCMEJtQ1AscUIxQmxDUyw4QjBCbUNULHFCMUJsQ2UsMkIwQm1DZixxQjFCbENZLDRCMEJtQ1oscUIxQmxDYSw0QjBCbUNiLHdCMUJsQ2EsdUIwQm1DYixxQjFCbENRLDZCMEJtQ1IsNEIxQmxDYywwQjBCb0NkLHdCMUJYVyxxQjBCWVgsd0IxQlhNLDJCMEJZTix3QjFCWFksd0IwQllaLHdCMUJYUyxzQjBCWVQsd0IxQlhPLHdCMEJZUCxxQjFCWFMsOEIwQllULHdCMUJYZSx3QjBCWWYsd0IxQlhTLDhCMEJZVCx3QjFCWGUsMkIwQllmLHdCMUJYWSwwQjBCWVosd0IxQlhXLHNCMEJZWCx3QjFCWE8sNEIwQllQLHdCMUJYYSw0QjBCWWIsd0IxQlhhLHVCMEJZYix3QjFCWFEsNkIwQllSLHdCMUJYYyxzQjBCWWQsd0IxQlhPLDJCMEJZUCx3QjFCWFksc0IwQllaLHdCMUJYTyw0QjBCWVAsd0IxQlhhLCtCMEJZYix3QjFCWGdCLDZCMEJZaEIsd0IxQlhjLDhCMEJZZCx3QjFCWGUsK0IwQllmLHdCMUJYZ0IsNEIwQlloQix3QjFCWGEseUIwQlliLHVGQzlIQSxVM0JzRFEseUUyQnBEUixVM0JxRGEsdUUyQm5EYixVM0JvRFkscUUyQmxEWixVM0JtRFcsNkQyQmpEWCxVM0JrRE8saUUyQmhEUCxVM0JpRFMsNkUyQi9DVCxVM0JnRGUsdUUyQjlDZixVM0IrQ1kseUUyQjdDWixVM0I4Q2EseUUyQjVDYixhM0I2Q2EsK0QyQjNDYixVM0I0Q1EscUUyQnpDUixvQjNCMkNXLHFFMkJ6Q1gsb0IzQjBDVyxxRTJCeENYLG9CM0J5Q1cscUUyQnZDWCxvQjNCd0NXLHFFMkJ0Q1gsb0IzQnVDVyxxRTJCckNYLG9CM0JzQ1cscUUyQnBDWCxvQjNCcUNXLHFFMkJuQ1gsb0IzQm9DVyxxRTJCbENYLG9CM0JtQ1cscUUyQmpDWCx3QjNCcUNXLHFFMkJuQ1gsd0IzQm9DVyxxRTJCbENYLHdCM0JtQ1cscUUyQmpDWCx3QjNCa0NXLHFFMkJoQ1gsd0IzQmlDVyxxRTJCL0JYLHdCM0JnQ1cscUUyQjlCWCx3QjNCK0JXLHFFMkI3Qlgsd0IzQjhCVyxxRTJCNUJYLHdCM0I2QlcsbUUyQjNCWCxhQUN1QixxRUFFdkIscUIzQlJRLCtFMkJVUixxQjNCVGEsNkUyQldiLHFCM0JWWSwyRTJCWVoscUIzQlhXLG1FMkJhWCxxQjNCWk8sdUUyQmNQLHFCM0JiUyxtRjJCZVQscUIzQmRlLDZFMkJnQmYscUIzQmZZLCtFMkJpQloscUIzQmhCYSwrRTJCa0JiLHdCM0JqQmEscUUyQm1CYixxQjNCbEJRLGlGMkJvQlIsNEIzQm5CYywyRTJCc0JkLCtCM0JyQlcsMkUyQnVCWCwrQjNCdEJXLDJFMkJ3QlgsK0IzQnZCVywyRTJCeUJYLCtCM0J4QlcsMkUyQjBCWCwrQjNCekJXLDJFMkIyQlgsK0IzQjFCVywyRTJCNEJYLCtCM0IzQlcsMkUyQjZCWCwrQjNCNUJXLDJFMkI4QlgsK0IzQjdCVywyRTJCK0JYLG1DM0IzQlcsMkUyQjZCWCxtQzNCNUJXLDJFMkI4QlgsbUMzQjdCVywyRTJCK0JYLG1DM0I5QlcsMkUyQmdDWCxtQzNCL0JXLDJFMkJpQ1gsbUMzQmhDVywyRTJCa0NYLG1DM0JqQ1csMkUyQm1DWCxtQzNCbENXLDJFMkJvQ1gsbUMzQm5DVyxxRTJCc0NYLGEzQmxDVywyRDJCb0NYLGEzQm5DTSx1RTJCcUNOLGEzQnBDWSxpRTJCc0NaLGEzQnJDUyw2RDJCdUNULGEzQnRDTyxpRTJCd0NQLFUzQnZDUyw2RTJCeUNULGEzQnhDZSxpRTJCMENmLGEzQnpDUyw2RTJCMkNULGEzQjFDZSx1RTJCNENmLGEzQjNDWSxxRTJCNkNaLGEzQjVDVyw2RDJCOENYLGEzQjdDTyx5RTJCK0NQLGEzQjlDYSx5RTJCZ0RiLGEzQi9DYSwrRDJCaURiLGEzQmhEUSwyRTJCa0RSLGEzQmpEYyw2RDJCbURkLGEzQmxETyx1RTJCb0RQLGEzQm5EWSw2RDJCcURaLGEzQnBETyx5RTJCc0RQLGEzQnJEYSwrRTJCdURiLGEzQnREZ0IsMkUyQndEaEIsYTNCdkRjLDZFMkJ5RGQsYTNCeERlLCtFMkIwRGYsYTNCekRnQix5RTJCMkRoQixhM0IxRGEsMkUyQjZEYix3QjNCckZXLGlFMkJ1Rlgsd0IzQnRGTSw2RTJCd0ZOLHdCM0J2RlksdUUyQnlGWix3QjNCeEZTLG1FMkIwRlQsd0IzQnpGTyx1RTJCMkZQLHFCM0IxRlMsbUYyQjRGVCx3QjNCM0ZlLHVFMkI2RmYsd0IzQjVGUyxtRjJCOEZULHdCM0I3RmUsNkUyQitGZix3QjNCOUZZLDJFMkJnR1osd0IzQi9GVyxtRTJCaUdYLHdCM0JoR08sK0UyQmtHUCx3QjNCakdhLCtFMkJtR2Isd0IzQmxHYSxxRTJCb0diLHdCM0JuR1EsaUYyQnFHUix3QjNCcEdjLG1FMkJzR2Qsd0IzQnJHTyw2RTJCdUdQLHdCM0J0R1ksbUUyQndHWix3QjNCdkdPLCtFMkJ5R1Asd0IzQnhHYSxxRjJCMEdiLHdCM0J6R2dCLGlGMkIyR2hCLHdCM0IxR2MsbUYyQjRHZCx3QjNCM0dlLHFGMkI2R2Ysd0IzQjVHZ0IsK0UyQjhHaEIsd0IzQjdHYSx5RTJCK0diLHdCQUMwQixrQkNyTTFCLFM1QnJCZSxrQjRCc0JmLGM1QnJCc0Isa0I0QnNCdEIsYTVCckJnQixrQjRCc0JoQixZNUJyQmlCLGtCNEJzQmpCLFk1QnJCZ0Isa0I0QnNCaEIsWTVCckJzQixrQjRCc0J0QixZNUJyQjRCLGtCNEJzQjVCLGE1QnJCa0Msa0I0QnVCbEMsYzVCOUJlLGtCNEIrQmYsbUI1QjlCc0Isa0I0QitCdEIsa0I1QjlCZ0Isa0I0QitCaEIsaUI1QjlCaUIsa0I0QitCakIsaUI1QjlCZ0Isa0I0QitCaEIsaUI1QjlCc0Isa0I0QitCdEIsaUI1QjlCNEIsa0I0QitCNUIsa0I1QjlCa0Msa0I0QmdDbEMsZTVCdkNlLGtCNEJ3Q2Ysb0I1QnZDc0Isa0I0QndDdEIsbUI1QnZDZ0Isa0I0QndDaEIsa0I1QnZDaUIsa0I0QndDakIsa0I1QnZDZ0Isa0I0QndDaEIsa0I1QnZDc0Isa0I0QndDdEIsa0I1QnZDNEIsa0I0QndDNUIsbUI1QnZDa0Msa0I0QnlDbEMsZ0I1QmhEZSxrQjRCaURmLHFCNUJoRHNCLGtCNEJpRHRCLG9CNUJoRGdCLGtCNEJpRGhCLG1CNUJoRGlCLGtCNEJpRGpCLG1CNUJoRGdCLGtCNEJpRGhCLG1CNUJoRHNCLGtCNEJpRHRCLG1CNUJoRDRCLGtCNEJpRDVCLG9CNUJoRGtDLGtCNEJrRGxDLGE1QnpEZSxrQjRCMERmLGtCNUJ6RHNCLGtCNEIwRHRCLGlCNUJ6RGdCLGtCNEIwRGhCLGdCNUJ6RGlCLGtCNEIwRGpCLGdCNUJ6RGdCLGtCNEIwRGhCLGdCNUJ6RHNCLGtCNEIwRHRCLGdCNUJ6RDRCLGtCNEIwRDVCLGlCNUJ6RGtDLGtCQVBuQixnQjRCb0ViLENBRkYsYTVCbEVlLGtCQUNPLHNCNEJxRXRCLGtCNUJyRXNCLGtCQUNOLHFCNEJ3RWhCLGlCNUJ4RWdCLGtCQUNDLG9CNEIyRWpCLGdCNUIzRWlCLGtCQUNELG9CNEI4RWhCLGdCNUI5RWdCLGtCQUNNLG9CNEJpRnRCLGdCNUJqRnNCLGtCQUNNLG9CNEJvRjVCLGdCNUJwRjRCLGtCQUNNLHFCNEJ3RmxDLGlCNUJ4RmtDLGtCNEI2RmxDLGM1QnBHZSxrQzRCeUdmLG1CNUJ4R3NCLHVDNEI2R3RCLGtCNUI1R2dCLHNDNEJpSGhCLGlCNUJoSGlCLHFDNEJxSGpCLGlCNUJwSGdCLHFDNEJ5SGhCLGlCNUJ4SHNCLHFDNEI2SHRCLGlCNUI1SDRCLHFDNEJpSTVCLGtCNUJoSWtDLHNDNEJxSWxDLFE1QjVJZSxrQjRCNklmLGE1QjVJc0Isa0I0QjZJdEIsWTVCNUlnQixrQjRCNkloQixXNUI1SWlCLGtCNEI2SWpCLFc1QjVJZ0Isa0I0QjZJaEIsVzVCNUlzQixrQjRCNkl0QixXNUI1STRCLGtCNEI2STVCLFk1QjVJa0Msa0I0QjhJbEMsYTVCckplLGtCNEJzSmYsa0I1QnJKc0Isa0I0QnNKdEIsaUI1QnJKZ0Isa0I0QnNKaEIsZ0I1QnJKaUIsa0I0QnNKakIsZ0I1QnJKZ0Isa0I0QnNKaEIsZ0I1QnJKc0Isa0I0QnNKdEIsZ0I1QnJKNEIsa0I0QnNKNUIsaUI1QnJKa0Msa0I0QnVKbEMsYzVCOUplLGtCNEIrSmYsbUI1QjlKc0Isa0I0QitKdEIsa0I1QjlKZ0Isa0I0QitKaEIsaUI1QjlKaUIsa0I0QitKakIsaUI1QjlKZ0Isa0I0QitKaEIsaUI1QjlKc0Isa0I0QitKdEIsaUI1QjlKNEIsa0I0QitKNUIsa0I1QjlKa0Msa0I0QmdLbEMsZTVCdktlLGtCNEJ3S2Ysb0I1QnZLc0Isa0I0QndLdEIsbUI1QnZLZ0Isa0I0QndLaEIsa0I1QnZLaUIsa0I0QndLakIsa0I1QnZLZ0Isa0I0QndLaEIsa0I1QnZLc0Isa0I0QndLdEIsa0I1QnZLNEIsa0I0QndLNUIsbUI1QnZLa0Msa0I0QnlLbEMsWTVCaExlLGtCNEJpTGYsaUI1QmhMc0Isa0I0QmlMdEIsZ0I1QmhMZ0Isa0I0QmlMaEIsZTVCaExpQixrQjRCaUxqQixlNUJoTGdCLGtCNEJpTGhCLGU1QmhMc0Isa0I0QmlMdEIsZTVCaEw0QixrQjRCaUw1QixnQjVCaExrQyxrQkFQbkIsZTRCMkxiLENBRkYsWTVCekxlLGtCQUNPLHFCNEI0THRCLGlCNUI1THNCLGtCQUNOLG9CNEIrTGhCLGdCNUIvTGdCLGtCQUNDLG1CNEJrTWpCLGU1QmxNaUIsa0JBQ0QsbUI0QnFNaEIsZTVCck1nQixrQkFDTSxtQjRCd010QixlNUJ4TXNCLGtCQUNNLG1CNEIyTTVCLGU1QjNNNEIsa0JBQ00sb0I0QjhNbEMsZ0I1QjlNa0Msa0I0Qm1ObEMsYTVCMU5lLGlDNEI4TmYsa0I1QjdOc0Isc0M0QmlPdEIsaUI1QmhPZ0IscUM0Qm9PaEIsZ0I1Qm5PaUIsb0M0QnVPakIsZ0I1QnRPZ0Isb0M0QjBPaEIsZ0I1QnpPc0Isb0M0QjZPdEIsZ0I1QjVPNEIsb0M0QmdQNUIsaUI1Qi9Pa0MsdUQ0Qm9QbEMsb0JBQ0UsUzVCNVBhLHFCNEI2UGIsYzVCNVBvQixxQjRCNlBwQixhNUI1UGMscUI0QjZQZCxZNUI1UGUscUI0QjZQZixZNUI1UGMscUI0QjZQZCxZNUI1UG9CLHFCNEI2UHBCLFk1QjVQMEIscUI0QjZQMUIsYTVCNVBnQyxxQjRCOFBoQyxjNUJyUWEscUI0QnNRYixtQjVCclFvQixxQjRCc1FwQixrQjVCclFjLHFCNEJzUWQsaUI1QnJRZSxxQjRCc1FmLGlCNUJyUWMscUI0QnNRZCxpQjVCclFvQixxQjRCc1FwQixpQjVCclEwQixxQjRCc1ExQixrQjVCclFnQyxxQjRCdVFoQyxlNUI5UWEscUI0QitRYixvQjVCOVFvQixxQjRCK1FwQixtQjVCOVFjLHFCNEIrUWQsa0I1QjlRZSxxQjRCK1FmLGtCNUI5UWMscUI0QitRZCxrQjVCOVFvQixxQjRCK1FwQixrQjVCOVEwQixxQjRCK1ExQixtQjVCOVFnQyxxQjRCZ1JoQyxnQjVCdlJhLHFCNEJ3UmIscUI1QnZSb0IscUI0QndScEIsb0I1QnZSYyxxQjRCd1JkLG1CNUJ2UmUscUI0QndSZixtQjVCdlJjLHFCNEJ3UmQsbUI1QnZSb0IscUI0QndScEIsbUI1QnZSMEIscUI0QndSMUIsb0I1QnZSZ0MscUI0QnlSaEMsYTVCaFNhLHFCNEJpU2Isa0I1QmhTb0IscUI0QmlTcEIsaUI1QmhTYyxxQjRCaVNkLGdCNUJoU2UscUI0QmlTZixnQjVCaFNjLHFCNEJpU2QsZ0I1QmhTb0IscUI0QmlTcEIsZ0I1QmhTMEIscUI0QmlTMUIsaUI1QmhTZ0MscUJBUG5CLGdCNEIyU1gsQ0FGRixhNUJ6U2EscUJBQ08sc0I0QjRTcEIsa0I1QjVTb0IscUJBQ04scUI0QitTZCxpQjVCL1NjLHFCQUNDLG9CNEJrVGYsZ0I1QmxUZSxxQkFDRCxvQjRCcVRkLGdCNUJyVGMscUJBQ00sb0I0QndUcEIsZ0I1QnhUb0IscUJBQ00sb0I0QjJUMUIsZ0I1QjNUMEIscUJBQ00scUI0QjhUaEMsaUI1QjlUZ0MscUI0QmtVaEMsYzVCelVhLHFDNEI2VWIsbUI1QjVVb0IsMEM0QmdWcEIsa0I1Qi9VYyx5QzRCbVZkLGlCNUJsVmUsd0M0QnNWZixpQjVCclZjLHdDNEJ5VmQsaUI1QnhWb0Isd0M0QjRWcEIsaUI1QjNWMEIsd0M0QitWMUIsa0I1QjlWZ0MseUM0Qm1XaEMsUTVCMVdhLHFCNEIyV2IsYTVCMVdvQixxQjRCMldwQixZNUIxV2MscUI0QjJXZCxXNUIxV2UscUI0QjJXZixXNUIxV2MscUI0QjJXZCxXNUIxV29CLHFCNEIyV3BCLFc1QjFXMEIscUI0QjJXMUIsWTVCMVdnQyxxQjRCNFdoQyxhNUJuWGEscUI0Qm9YYixrQjVCblhvQixxQjRCb1hwQixpQjVCblhjLHFCNEJvWGQsZ0I1Qm5YZSxxQjRCb1hmLGdCNUJuWGMscUI0Qm9YZCxnQjVCblhvQixxQjRCb1hwQixnQjVCblgwQixxQjRCb1gxQixpQjVCblhnQyxxQjRCcVhoQyxjNUI1WGEscUI0QjZYYixtQjVCNVhvQixxQjRCNlhwQixrQjVCNVhjLHFCNEI2WGQsaUI1QjVYZSxxQjRCNlhmLGlCNUI1WGMscUI0QjZYZCxpQjVCNVhvQixxQjRCNlhwQixpQjVCNVgwQixxQjRCNlgxQixrQjVCNVhnQyxxQjRCOFhoQyxlNUJyWWEscUI0QnNZYixvQjVCcllvQixxQjRCc1lwQixtQjVCclljLHFCNEJzWWQsa0I1QnJZZSxxQjRCc1lmLGtCNUJyWWMscUI0QnNZZCxrQjVCcllvQixxQjRCc1lwQixrQjVCclkwQixxQjRCc1kxQixtQjVCcllnQyxxQjRCdVloQyxZNUI5WWEscUI0QitZYixpQjVCOVlvQixxQjRCK1lwQixnQjVCOVljLHFCNEIrWWQsZTVCOVllLHFCNEIrWWYsZTVCOVljLHFCNEIrWWQsZTVCOVlvQixxQjRCK1lwQixlNUI5WTBCLHFCNEIrWTFCLGdCNUI5WWdDLHFCQVBuQixlNEJ5WlgsQ0FGRixZNUJ2WmEscUJBQ08scUI0QjBacEIsaUI1QjFab0IscUJBQ04sb0I0QjZaZCxnQjVCN1pjLHFCQUNDLG1CNEJnYWYsZTVCaGFlLHFCQUNELG1CNEJtYWQsZTVCbmFjLHFCQUNNLG1CNEJzYXBCLGU1QnRhb0IscUJBQ00sbUI0QnlhMUIsZTVCemEwQixxQkFDTSxvQjRCNGFoQyxnQjVCNWFnQyxxQjRCaWJoQyxhNUJ4YmEsb0M0QjRiYixrQjVCM2JvQix5QzRCK2JwQixpQjVCOWJjLHdDNEJrY2QsZ0I1QmpjZSx1QzRCcWNmLGdCNUJwY2MsdUM0QndjZCxnQjVCdmNvQix1QzRCMmNwQixnQjVCMWMwQix1QzRCOGMxQixpQjVCN2NnQyw0RTRCb2RsQyxtQkFDRSxTNUI1ZGEsb0I0QjZkYixjNUI1ZG9CLG9CNEI2ZHBCLGE1QjVkYyxvQjRCNmRkLFk1QjVkZSxvQjRCNmRmLFk1QjVkYyxvQjRCNmRkLFk1QjVkb0Isb0I0QjZkcEIsWTVCNWQwQixvQjRCNmQxQixhNUI1ZGdDLG9CNEI4ZGhDLGM1QnJlYSxvQjRCc2ViLG1CNUJyZW9CLG9CNEJzZXBCLGtCNUJyZWMsb0I0QnNlZCxpQjVCcmVlLG9CNEJzZWYsaUI1QnJlYyxvQjRCc2VkLGlCNUJyZW9CLG9CNEJzZXBCLGlCNUJyZTBCLG9CNEJzZTFCLGtCNUJyZWdDLG9CNEJ1ZWhDLGU1QjllYSxvQjRCK2ViLG9CNUI5ZW9CLG9CNEIrZXBCLG1CNUI5ZWMsb0I0QitlZCxrQjVCOWVlLG9CNEIrZWYsa0I1QjllYyxvQjRCK2VkLGtCNUI5ZW9CLG9CNEIrZXBCLGtCNUI5ZTBCLG9CNEIrZTFCLG1CNUI5ZWdDLG9CNEJnZmhDLGdCNUJ2ZmEsb0I0QndmYixxQjVCdmZvQixvQjRCd2ZwQixvQjVCdmZjLG9CNEJ3ZmQsbUI1QnZmZSxvQjRCd2ZmLG1CNUJ2ZmMsb0I0QndmZCxtQjVCdmZvQixvQjRCd2ZwQixtQjVCdmYwQixvQjRCd2YxQixvQjVCdmZnQyxvQjRCeWZoQyxhNUJoZ0JhLG9CNEJpZ0JiLGtCNUJoZ0JvQixvQjRCaWdCcEIsaUI1QmhnQmMsb0I0QmlnQmQsZ0I1QmhnQmUsb0I0QmlnQmYsZ0I1QmhnQmMsb0I0QmlnQmQsZ0I1QmhnQm9CLG9CNEJpZ0JwQixnQjVCaGdCMEIsb0I0QmlnQjFCLGlCNUJoZ0JnQyxvQkFQbkIsZ0I0QjJnQlgsQ0FGRixhNUJ6Z0JhLG9CQUNPLHNCNEI0Z0JwQixrQjVCNWdCb0Isb0JBQ04scUI0QitnQmQsaUI1Qi9nQmMsb0JBQ0Msb0I0QmtoQmYsZ0I1QmxoQmUsb0JBQ0Qsb0I0QnFoQmQsZ0I1QnJoQmMsb0JBQ00sb0I0QndoQnBCLGdCNUJ4aEJvQixvQkFDTSxvQjRCMmhCMUIsZ0I1QjNoQjBCLG9CQUNNLHFCNEI4aEJoQyxpQjVCOWhCZ0Msb0I0Qm1pQmhDLGM1QjFpQmEsb0M0QjhpQmIsbUI1QjdpQm9CLHlDNEJpakJwQixrQjVCaGpCYyx3QzRCb2pCZCxpQjVCbmpCZSx1QzRCdWpCZixpQjVCdGpCYyx1QzRCMGpCZCxpQjVCempCb0IsdUM0QjZqQnBCLGlCNUI1akIwQix1QzRCZ2tCMUIsa0I1Qi9qQmdDLHdDNEJva0JoQyxRNUIza0JhLG9CNEI0a0JiLGE1QjNrQm9CLG9CNEI0a0JwQixZNUIza0JjLG9CNEI0a0JkLFc1QjNrQmUsb0I0QjRrQmYsVzVCM2tCYyxvQjRCNGtCZCxXNUIza0JvQixvQjRCNGtCcEIsVzVCM2tCMEIsb0I0QjRrQjFCLFk1QjNrQmdDLG9CNEI2a0JoQyxhNUJwbEJhLG9CNEJxbEJiLGtCNUJwbEJvQixvQjRCcWxCcEIsaUI1QnBsQmMsb0I0QnFsQmQsZ0I1QnBsQmUsb0I0QnFsQmYsZ0I1QnBsQmMsb0I0QnFsQmQsZ0I1QnBsQm9CLG9CNEJxbEJwQixnQjVCcGxCMEIsb0I0QnFsQjFCLGlCNUJwbEJnQyxvQjRCc2xCaEMsYzVCN2xCYSxvQjRCOGxCYixtQjVCN2xCb0Isb0I0QjhsQnBCLGtCNUI3bEJjLG9CNEI4bEJkLGlCNUI3bEJlLG9CNEI4bEJmLGlCNUI3bEJjLG9CNEI4bEJkLGlCNUI3bEJvQixvQjRCOGxCcEIsaUI1QjdsQjBCLG9CNEI4bEIxQixrQjVCN2xCZ0Msb0I0QitsQmhDLGU1QnRtQmEsb0I0QnVtQmIsb0I1QnRtQm9CLG9CNEJ1bUJwQixtQjVCdG1CYyxvQjRCdW1CZCxrQjVCdG1CZSxvQjRCdW1CZixrQjVCdG1CYyxvQjRCdW1CZCxrQjVCdG1Cb0Isb0I0QnVtQnBCLGtCNUJ0bUIwQixvQjRCdW1CMUIsbUI1QnRtQmdDLG9CNEJ3bUJoQyxZNUIvbUJhLG9CNEJnbkJiLGlCNUIvbUJvQixvQjRCZ25CcEIsZ0I1Qi9tQmMsb0I0QmduQmQsZTVCL21CZSxvQjRCZ25CZixlNUIvbUJjLG9CNEJnbkJkLGU1Qi9tQm9CLG9CNEJnbkJwQixlNUIvbUIwQixvQjRCZ25CMUIsZ0I1Qi9tQmdDLG9CQVBuQixlNEIwbkJYLENBRkYsWTVCeG5CYSxvQkFDTyxxQjRCMm5CcEIsaUI1QjNuQm9CLG9CQUNOLG9CNEI4bkJkLGdCNUI5bkJjLG9CQUNDLG1CNEJpb0JmLGU1QmpvQmUsb0JBQ0QsbUI0Qm9vQmQsZTVCcG9CYyxvQkFDTSxtQjRCdW9CcEIsZTVCdm9Cb0Isb0JBQ00sbUI0QjBvQjFCLGU1QjFvQjBCLG9CQUNNLG9CNEI2b0JoQyxnQjVCN29CZ0Msb0I0QmtwQmhDLGE1QnpwQmEsbUM0QjZwQmIsa0I1QjVwQm9CLHdDNEJncUJwQixpQjVCL3BCYyx1QzRCbXFCZCxnQjVCbHFCZSxzQzRCc3FCZixnQjVCcnFCYyxzQzRCeXFCZCxnQjVCeHFCb0Isc0M0QjRxQnBCLGdCNUIzcUIwQixzQzRCK3FCMUIsaUI1QjlxQmdDLHdENEJxckJsQyxtQkFDRSxTNUI3ckJhLG9CNEI4ckJiLGM1QjdyQm9CLG9CNEI4ckJwQixhNUI3ckJjLG9CNEI4ckJkLFk1QjdyQmUsb0I0QjhyQmYsWTVCN3JCYyxvQjRCOHJCZCxZNUI3ckJvQixvQjRCOHJCcEIsWTVCN3JCMEIsb0I0QjhyQjFCLGE1QjdyQmdDLG9CNEIrckJoQyxjNUJ0c0JhLG9CNEJ1c0JiLG1CNUJ0c0JvQixvQjRCdXNCcEIsa0I1QnRzQmMsb0I0QnVzQmQsaUI1QnRzQmUsb0I0QnVzQmYsaUI1QnRzQmMsb0I0QnVzQmQsaUI1QnRzQm9CLG9CNEJ1c0JwQixpQjVCdHNCMEIsb0I0QnVzQjFCLGtCNUJ0c0JnQyxvQjRCd3NCaEMsZTVCL3NCYSxvQjRCZ3RCYixvQjVCL3NCb0Isb0I0Qmd0QnBCLG1CNUIvc0JjLG9CNEJndEJkLGtCNUIvc0JlLG9CNEJndEJmLGtCNUIvc0JjLG9CNEJndEJkLGtCNUIvc0JvQixvQjRCZ3RCcEIsa0I1Qi9zQjBCLG9CNEJndEIxQixtQjVCL3NCZ0Msb0I0Qml0QmhDLGdCNUJ4dEJhLG9CNEJ5dEJiLHFCNUJ4dEJvQixvQjRCeXRCcEIsb0I1Qnh0QmMsb0I0Qnl0QmQsbUI1Qnh0QmUsb0I0Qnl0QmYsbUI1Qnh0QmMsb0I0Qnl0QmQsbUI1Qnh0Qm9CLG9CNEJ5dEJwQixtQjVCeHRCMEIsb0I0Qnl0QjFCLG9CNUJ4dEJnQyxvQjRCMHRCaEMsYTVCanVCYSxvQjRCa3VCYixrQjVCanVCb0Isb0I0Qmt1QnBCLGlCNUJqdUJjLG9CNEJrdUJkLGdCNUJqdUJlLG9CNEJrdUJmLGdCNUJqdUJjLG9CNEJrdUJkLGdCNUJqdUJvQixvQjRCa3VCcEIsZ0I1Qmp1QjBCLG9CNEJrdUIxQixpQjVCanVCZ0Msb0JBUG5CLGdCNEI0dUJYLENBRkYsYTVCMXVCYSxvQkFDTyxzQjRCNnVCcEIsa0I1Qjd1Qm9CLG9CQUNOLHFCNEJndkJkLGlCNUJodkJjLG9CQUNDLG9CNEJtdkJmLGdCNUJudkJlLG9CQUNELG9CNEJzdkJkLGdCNUJ0dkJjLG9CQUNNLG9CNEJ5dkJwQixnQjVCenZCb0Isb0JBQ00sb0I0QjR2QjFCLGdCNUI1dkIwQixvQkFDTSxxQjRCK3ZCaEMsaUI1Qi92QmdDLG9CNEJvd0JoQyxjNUIzd0JhLG9DNEIrd0JiLG1CNUI5d0JvQix5QzRCa3hCcEIsa0I1Qmp4QmMsd0M0QnF4QmQsaUI1QnB4QmUsdUM0Qnd4QmYsaUI1QnZ4QmMsdUM0QjJ4QmQsaUI1QjF4Qm9CLHVDNEI4eEJwQixpQjVCN3hCMEIsdUM0Qml5QjFCLGtCNUJoeUJnQyx3QzRCcXlCaEMsUTVCNXlCYSxvQjRCNnlCYixhNUI1eUJvQixvQjRCNnlCcEIsWTVCNXlCYyxvQjRCNnlCZCxXNUI1eUJlLG9CNEI2eUJmLFc1QjV5QmMsb0I0QjZ5QmQsVzVCNXlCb0Isb0I0QjZ5QnBCLFc1QjV5QjBCLG9CNEI2eUIxQixZNUI1eUJnQyxvQjRCOHlCaEMsYTVCcnpCYSxvQjRCc3pCYixrQjVCcnpCb0Isb0I0QnN6QnBCLGlCNUJyekJjLG9CNEJzekJkLGdCNUJyekJlLG9CNEJzekJmLGdCNUJyekJjLG9CNEJzekJkLGdCNUJyekJvQixvQjRCc3pCcEIsZ0I1QnJ6QjBCLG9CNEJzekIxQixpQjVCcnpCZ0Msb0I0QnV6QmhDLGM1Qjl6QmEsb0I0Qit6QmIsbUI1Qjl6Qm9CLG9CNEIrekJwQixrQjVCOXpCYyxvQjRCK3pCZCxpQjVCOXpCZSxvQjRCK3pCZixpQjVCOXpCYyxvQjRCK3pCZCxpQjVCOXpCb0Isb0I0Qit6QnBCLGlCNUI5ekIwQixvQjRCK3pCMUIsa0I1Qjl6QmdDLG9CNEJnMEJoQyxlNUJ2MEJhLG9CNEJ3MEJiLG9CNUJ2MEJvQixvQjRCdzBCcEIsbUI1QnYwQmMsb0I0QncwQmQsa0I1QnYwQmUsb0I0QncwQmYsa0I1QnYwQmMsb0I0QncwQmQsa0I1QnYwQm9CLG9CNEJ3MEJwQixrQjVCdjBCMEIsb0I0QncwQjFCLG1CNUJ2MEJnQyxvQjRCeTBCaEMsWTVCaDFCYSxvQjRCaTFCYixpQjVCaDFCb0Isb0I0QmkxQnBCLGdCNUJoMUJjLG9CNEJpMUJkLGU1QmgxQmUsb0I0QmkxQmYsZTVCaDFCYyxvQjRCaTFCZCxlNUJoMUJvQixvQjRCaTFCcEIsZTVCaDFCMEIsb0I0QmkxQjFCLGdCNUJoMUJnQyxvQkFQbkIsZTRCMjFCWCxDQUZGLFk1QnoxQmEsb0JBQ08scUI0QjQxQnBCLGlCNUI1MUJvQixv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RFksb0JrQ3VEWixnQmxDdERZLG9Ca0N1RFosaUJsQ3REWSxvQmtDdURaLGNsQ3REWSxvQmtDdURaLGlCbEN0RFksb0JrQ3VEWixnQmxDdERZLHlEa0N5RGQsNkNBQ0UsY2xDbEVtQixpRGtDb0VuQixjbENuRXNCLG1Ca0NxRXRCLGNsQ3BFWSxtQmtDcUVaLGlCbENwRVksbUJrQ3FFWixnQmxDcEVZLG1Ca0NxRVosaUJsQ3BFWSxtQmtDcUVaLGNsQ3BFWSxtQmtDcUVaLGlCbENwRVksbUJrQ3FFWixnQmxDcEVZLHFDa0N1RWQsNkNBQ0UsY2xDaEZtQixpRGtDb0ZuQixjbENuRnNCLG1Ca0N1RnRCLGNsQ3RGWSxtQmtDdUZaLGlCbEN0RlksbUJrQ3VGWixnQmxDdEZZLG1Ca0N1RlosaUJsQ3RGWSxtQmtDdUZaLGNsQ3RGWSxtQmtDdUZaLGlCbEN0RlksbUJrQ3VGWixnQmxDdEZZLHVCbUNRZCxjbkNEVSwyQm1DTVYsY25DSmUsNkJtQ1NmLGNuQ1ZpQixxQm1DaUJmLGVBQ0EsQ0FGQSxZQUNBLENBRkYsZUFHRSx5QkFHRiw0QkFDRSxDQURGLHVCQUNFLHVCQU1BLGVBQ0EsdUJBQ0EsQ0FIRixrQkFHRSxvQ0FHRix3QkFDRSxjbkNuQ1EsOEJtQ3NDUixjbkNwQ2EsZ0NtQ3VDYixjbkN4Q2Usd0JtQzZDYixlQUNBLENBRkEsWUFDQSxDQUZGLGVBR0UsNEJBRUYsNEJBQ0UsQ0FERix1QkFDRSwwQkFHQSxlQUNBLHVCQUNBLENBSEYsa0JBR0UseURBSUosdUJBQ0UsY25DNURRLDZCbUMrRFIsY25DN0RhLCtCbUNnRWIsY25DakVlLHVCbUNzRWIsZUFDQSxDQUZBLFlBQ0EsQ0FGRixlQUdFLDJCQUVGLDRCQUNFLENBREYsdUJBQ0UseUJBR0EsZUFDQSx1QkFDQSxDQUhGLGtCQUdFLHFDQUlKLHVCQUNFLGNuQ3JGUSw2Qm1Dd0ZSLGNuQ3RGYSwrQm1DeUZiLGNuQzFGZSx1Qm1DK0ZiLGVBQ0EsQ0FGQSxZQUNBLENBRkYsZUFHRSwyQkFFRiw0QkFDRSxDQURGLHVCQUNFLHlCQUdBLGVBQ0EsdUJBQ0EsQ0FIRixr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SEYsWUFDRSxtQkFDQSxDQUtBLFdBRUEsQ0FOQSxjQUNBLFdBQ0EsZUFJQSx5QkFHRiwrREFFSSxzQkFDQSxDQUZGLHFCQUVFLHdDQUtGLGtCQUNBLENBRUEsY0FFQSxDQU5GLFlBQ0UsQ0FDQSxXQUlBLHVEQU9FLGNBRUEsQ0FIQSxRQUNBLENBTEYsaUJBQ0UsUUFDQSxDQUtBLGtCQUNBLENBTkEsT0FNQSw2REFLRSxZQUNBLENBRkYsVUFFRSwrRUFFQSxVQUNFLG1DdERyVEcsOEJ1RGtHWCxDRHlOQSxvQkN6TkEsMkRBRUEsa0J2RHBHVyxvRHVEd0dYLG9CdkR4R1csOEV1RDRHWCxrQnZENUdXLGtDQUVELDhCdURnR1YsQ0Q2TkEsb0JDN05BLDBEQUVBLGtCdkRsR1UsbUR1RHNHVixvQnZEdEdVLDZFdUQwR1Ysa0J2RDFHVSxxQ0FDRyw2QnVEK0ZiLENEaU9BLG9CQ2pPQSw2REFFQSxrQnZEakdhLHNEdURxR2Isb0J2RHJHYSxnRnVEeUdiLGtCdkR6R2Esa0NBRkgsOEJ1RGlHVixDRHFPQSxvQkNyT0EsMERBRUEsa0J2RG5HVSxtRHVEdUdWLG9CdkR2R1UsNkV1RDJHVixrQnZEM0dVLG9DQUlFLDhCdUQ2RlosQ0R5T0Esb0JDek9BLDREQUVBLGtCdkQvRlkscUR1RG1HWixvQnZEbkdZLCtFdUR1R1osa0J2RHZHWSxtQ0FERCw4QnVEOEZYLENENk9BLG9CQzdPQSwyREFFQSxrQnZEaEdXLG9EdURvR1gsb0J2RHBHVyw4RXVEd0dYLGtCdkR4R1csc0NBR0csNkJ1RDJGZCxDRGlQQSxvQkNqUEEsOERBRUEsa0J2RDdGYyx1RHVEaUdkLG9CdkRqR2MsaUZ1RHFHZCxrQnZEckdjLHlDQURDLDRCdUQ0RmYsQ0RzUEUsb0J0RGxWYSxDc0RpVmYsVUNyUEEsaUVBRUEsa0J2RDlGZSwwRHVEa0dmLG9CdkRsR2Usb0Z1RHNHZixrQnZEdEdlLHVDc0R1VmYsZ0JBQ0Usc0RBRUEsa0JBQ0UsNkNBU0Ysd0JBRUEsQ0FKQSxhQUNBLGFBQ0EsQ0FIRixVQUtFLHVFQU1GLFNBQ0UseUVBR0YsVUFDRSw0QkFJSixjQUNF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c0JFLGtEQUVBLFlBQ0UsNENDN0JKLFdBQ0EsQ0FGRixZQUNFLENBQ0EsY0FDQSxzREFFQSxvQkFDRSxrREFLQSxvQkFDQSxDQUZBLFdBQ0EsQ0FDQSxxQkFDQSxDQUpGLFVBSUUsNERBR0Usd0JBQ0EseUJBQ0EsQ0FIRixpQ0FHRSw2REFJQSxzQkFDQSx5QkFDQSxDQUhGLGlDQUdFLHNEQUdGLFdBQ0UsV0FDQSxxREN2QkosV0FDQSxDckZVQSxhQ0xTLENvRlBULGFBQ0EsQ0FIRixzQnJGY0UsQ0NMUyxjb0ZQVCxDQUVBLGVBQ0EscUpDTkEsY0FJRSw2Q0FHRixRQUNFLDZDQUlBLDRCQUNBLENBRkYsU0FFRSxzSEFHRiw0QkFFRSxrSkNwQkosY0FJRSw4RUFJQSxlQUNBLENBRkYsdUJBRUUseXhNIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX25vcm1hbGl6ZS5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvc3R5bGUvX3R5cGUuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL3N0eWxlL192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3RhY2h5b25zLXNhc3Mvc2Nzcy9fZGVidWctY2hpbGRyZW4uc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3RhY2h5b25zLXNhc3Mvc2Nzcy9fZGVidWctZ3JpZC5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvdGFjaHlvbnMtc2Fzcy9zY3NzL19ib3gtc2l6aW5nLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX2FzcGVjdC1yYXRpb3Muc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3RhY2h5b25zLXNhc3Mvc2Nzcy9faW1hZ2VzLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX2JhY2tncm91bmQtc2l6ZS5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvdGFjaHlvbnMtc2Fzcy9zY3NzL19iYWNrZ3JvdW5kLXBvc2l0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX291dGxpbmVzLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX2JvcmRlcnMuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3RhY2h5b25zLXNhc3Mvc2Nzcy9fYm9yZGVyLWNvbG9ycy5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvdGFjaHlvbnMtc2Fzcy9zY3NzL192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3RhY2h5b25zLXNhc3Mvc2Nzcy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvdGFjaHlvbnMtc2Fzcy9zY3NzL19ib3JkZXItc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3RhY2h5b25zLXNhc3Mvc2Nzcy9fYm9yZGVyLXdpZHRocy5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvdGFjaHlvbnMtc2Fzcy9zY3NzL19ib3gtc2hhZG93LnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX2NvZGUuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3RhY2h5b25zLXNhc3Mvc2Nzcy9fY29vcmRpbmF0ZXMuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3RhY2h5b25zLXNhc3Mvc2Nzcy9fY2xlYXJzLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX2ZsZXhib3guc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3RhY2h5b25zLXNhc3Mvc2Nzcy9fZGlzcGxheS5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvdGFjaHlvbnMtc2Fzcy9zY3NzL19mbG9hdHMuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3RhY2h5b25zLXNhc3Mvc2Nzcy9fZm9udC1mYW1pbHkuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3RhY2h5b25zLXNhc3Mvc2Nzcy9fZm9udC1zdHlsZS5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvdGFjaHlvbnMtc2Fzcy9zY3NzL19mb250LXdlaWdodC5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvdGFjaHlvbnMtc2Fzcy9zY3NzL19mb3Jtcy5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvdGFjaHlvbnMtc2Fzcy9zY3NzL19oZWlnaHRzLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX2xldHRlci1zcGFjaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX2xpbmUtaGVpZ2h0LnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX2xpbmtzLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX2xpc3RzLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX21heC13aWR0aHMuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3RhY2h5b25zLXNhc3Mvc2Nzcy9fd2lkdGhzLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX292ZXJmbG93LnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX3Bvc2l0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX29wYWNpdHkuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3RhY2h5b25zLXNhc3Mvc2Nzcy9fcm90YXRpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX3NraW5zLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX3NraW5zLXBzZXVkby5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvdGFjaHlvbnMtc2Fzcy9zY3NzL19zcGFjaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX25lZ2F0aXZlLW1hcmdpbnMuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3RhY2h5b25zLXNhc3Mvc2Nzcy9fdGFibGVzLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX3RleHQtZGVjb3JhdGlvbi5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvdGFjaHlvbnMtc2Fzcy9zY3NzL190ZXh0LWFsaWduLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX3RleHQtdHJhbnNmb3JtLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL25vZGVfbW9kdWxlcy90YWNoeW9ucy1zYXNzL3Njc3MvX3R5cGUtc2NhbGUuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3RhY2h5b25zLXNhc3Mvc2Nzcy9fdHlwb2dyYXBoeS5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvdGFjaHlvbnMtc2Fzcy9zY3NzL191dGlsaXRpZXMuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3RhY2h5b25zLXNhc3Mvc2Nzcy9fdmlzaWJpbGl0eS5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvdGFjaHlvbnMtc2Fzcy9zY3NzL193aGl0ZS1zcGFjZS5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvdGFjaHlvbnMtc2Fzcy9zY3NzL192ZXJ0aWNhbC1hbGlnbi5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvdGFjaHlvbnMtc2Fzcy9zY3NzL19ob3ZlcnMuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vbm9kZV9tb2R1bGVzL3RhY2h5b25zLXNhc3Mvc2Nzcy9fei1pbmRleC5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9ub2RlX21vZHVsZXMvdGFjaHlvbnMtc2Fzcy9zY3NzL19uZXN0ZWQuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL3N0eWxlL19sYXlvdXQuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL3N0eWxlL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL3N0eWxlL19idXR0b25zLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9zdHlsZS9fZm9ybS5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvc3R5bGUvX21vZGFsLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9zdHlsZS9fbW9kZWxzLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9zdHlsZS9fc2VydmVycy5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvc3R5bGUvX3RhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9zdHlsZS9fdG9wYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9zdHlsZS9faW5mb3JtYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL3N0eWxlL19hdXRob3JpemUuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL3N0eWxlL19lcnJvcnMuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL3N0eWxlL19zcGxpdC1wYW5lLW1vZGUuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL3N0eWxlL19tYXJrZG93bi5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy8kdm9jYWJ1bGFyeS9fJHZvY2FidWxhcnkuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMvX21peGlucy5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9Db25zdC9fY29uc3Quc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvQ29uc3RyYWludC9fY29uc3RyYWludC5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9EZWZhdWx0L19kZWZhdWx0LnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0RlcGVuZGVudFJlcXVpcmVkL19kZXBlbmRlbnQtcmVxdWlyZWQuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvRGVzY3JpcHRpb24vX2Rlc2NyaXB0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0V4YW1wbGVzL19leGFtcGxlcy5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9FeHRlbnNpb25LZXl3b3Jkcy9fZXh0ZW5zaW9uLWtleXdvcmRzLnNjc3MiLCJ3ZWJwYWNrOi8vc3dhZ2dlci11aS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL1BhdHRlcm5Qcm9wZXJ0aWVzL19wYXR0ZXJuLXByb3BlcnRpZXMuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvUHJvcGVydGllcy9fcHJvcGVydGllcy5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9UaXRsZS9fdGl0bGUuc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvX2FsbC5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9KU09OVmlld2VyL19qc29uLXZpZXdlci5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9KU09OU2NoZW1hL19qc29uLXNjaGVtYS5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9BY2NvcmRpb24vX2FjY29yZGlvbi5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9FeHBhbmREZWVwQnV0dG9uL19leHBhbmQtZGVlcC1idXR0b24uc2NzcyIsIndlYnBhY2s6Ly9zd2FnZ2VyLXVpLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9jb21wb25lbnRzL21vZGVsL19tb2RlbC5zY3NzIiwid2VicGFjazovL3N3YWdnZXItdWkvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2NvbXBvbmVudHMvbW9kZWxzL19tb2RlbHMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLyohIG5vcm1hbGl6ZS5jc3MgdjcuMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gKi9cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmZvb3RlcixcbmhlYWRlcixcbm5hdixcbnNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xuXG5maWdjYXB0aW9uLFxuZmlndXJlLFxubWFpbiB7IC8qIDEgKi9cbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICovXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogMSAqL1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny0gYW5kIEZpcmVmb3ggMzktLlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAqL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGJhY2tncm91bmQgYW5kIGNvbG9yIGluIElFIDktLlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cblxuYXVkaW8sXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAqL1xuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qKlxuICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICBtYXJnaW46IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQgeyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7IC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICovXG5cbmRldGFpbHMsIC8qIDEgKi9cbm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBTY3JpcHRpbmdcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cblxuY2FudmFzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogSGlkZGVuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAqL1xuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCJAdXNlIFwidmFyaWFibGVzXCIgYXMgKjtcblxuQG1peGluIHRleHRfYm9keSgkY29sb3I6ICR0ZXh0LWJvZHktZGVmYXVsdC1mb250LWNvbG9yKSB7XG4gICYge1xuICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuQG1peGluIHRleHRfY29kZSgkY29sb3I6ICR0ZXh0LWNvZGUtZGVmYXVsdC1mb250LWNvbG9yKSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG5cbiAgY29sb3I6ICRjb2xvcjtcbn1cblxuQG1peGluIHRleHRfaGVhZGxpbmUoJGNvbG9yOiAkdGV4dC1oZWFkbGluZS1kZWZhdWx0LWZvbnQtY29sb3IpIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG5cbiAgY29sb3I6ICRjb2xvcjtcbn1cbiIsIkB1c2UgXCJzYXNzOmNvbG9yXCI7XG5cbi8vIEJhc2UgQ29sb3Vyc1xuJGJsYWNrOiAjMDAwICFkZWZhdWx0O1xuJHdoaXRlOiAjZmZmICFkZWZhdWx0O1xuJGdyYXktNTA6IGNvbG9yLmFkanVzdCgkYmxhY2ssICRsaWdodG5lc3M6IDkyJSkgIWRlZmF1bHQ7IC8vZWJlYmViXG4kZ3JheS0yMDA6IGNvbG9yLmFkanVzdCgkYmxhY2ssICRsaWdodG5lc3M6IDYyLjc1JSkgIWRlZmF1bHQ7IC8vICNhMGEwYTBcbiRncmF5LTMwMDogY29sb3IuYWRqdXN0KCRibGFjaywgJGxpZ2h0bmVzczogNTYuNSUpICFkZWZhdWx0OyAvLyAjOTA5MDkwXG4kZ3JheS00MDA6IGNvbG9yLmFkanVzdCgkYmxhY2ssICRsaWdodG5lc3M6IDUwJSkgIWRlZmF1bHQ7IC8vICM4MDgwODBcbiRncmF5LTUwMDogY29sb3IuYWRqdXN0KCRibGFjaywgJGxpZ2h0bmVzczogNDMuNzUlKSAhZGVmYXVsdDsgLy8gIzcwNzA3MFxuJGdyYXktNjAwOiBjb2xvci5hZGp1c3QoJGJsYWNrLCAkbGlnaHRuZXNzOiAzNy41JSkgIWRlZmF1bHQ7IC8vICM2MDYwNjBcbiRncmF5LTY1MDogY29sb3IuYWRqdXN0KCRibGFjaywgJGxpZ2h0bmVzczogMzMuMyUpICFkZWZhdWx0OyAvLyAjNTU1NTU1XG4kZ3JheS03MDA6IGNvbG9yLmFkanVzdCgkYmxhY2ssICRsaWdodG5lc3M6IDMxLjI1JSkgIWRlZmF1bHQ7IC8vICM1MDUwNTBcbiRncmF5LTgwMDogY29sb3IuYWRqdXN0KCRibGFjaywgJGxpZ2h0bmVzczogMjUlKSAhZGVmYXVsdDsgLy8gIzQwNDA0MFxuJGdyYXktOTAwOiBjb2xvci5hZGp1c3QoJGJsYWNrLCAkbGlnaHRuZXNzOiAxOC43NSUpICFkZWZhdWx0OyAvLyAjMzAzMDMwXG5cbiRjb2QtZ3JheTogIzFiMWIxYiAhZGVmYXVsdDtcbiRhZ2F0ZS1ncmF5OiAjMzMzMzMzICFkZWZhdWx0O1xuJGJyaWdodC1ncmF5OiAjM2I0MTUxICFkZWZhdWx0O1xuJG1ha28tZ3JheTogIzQxNDQ0ZSAhZGVmYXVsdDtcbiR3YXRlcmxvby1ncmF5OiAjN2Q4NDkyICFkZWZhdWx0O1xuJGFsdG8tZ3JheTogI2Q5ZDlkOSAhZGVmYXVsdDtcbiRtZXJjdXJ5LWdyYXk6ICNlNGU0ZTQgIWRlZmF1bHQ7XG4kY29uY3JldGUtZ3JheTogI2U4ZThlOCAhZGVmYXVsdDtcbiRhbGFiYXN0ZXI6ICNmN2Y3ZjcgIWRlZmF1bHQ7XG4kYXBwbGUtZ3JlZW46ICM2MmEwM2YgIWRlZmF1bHQ7XG4kZ3JlZW4taGF6ZTogIzAwOWQ3NyAhZGVmYXVsdDtcbiRqYXBhbmVzZS1sYXVyZWw6ICMwMDgwMDAgIWRlZmF1bHQ7XG4kcGVyc2lhbi1ncmVlbjogIzAwYTBhNyAhZGVmYXVsdDtcbiRnZXlzZXItYmx1ZTogI2Q4ZGRlNyAhZGVmYXVsdDtcbiRkb2RnZXItYmx1ZTogIzEzOTFmZiAhZGVmYXVsdDtcbiRlbmRlYXZvdXItYmx1ZTogIzAwNWRhZSAhZGVmYXVsdDtcbiRzY2FtcGktcHVycGxlOiAjNTVhICFkZWZhdWx0O1xuJGVsZWN0cmljLXZpb2xldDogIzczMDBlNSAhZGVmYXVsdDtcbiRwZXJzaWFuLXJlZDogI2NmMzAzMCAhZGVmYXVsdDtcbiRtYW5nby10YW5nbzogI2U5NzUwMCAhZGVmYXVsdDtcblxuLy8gVGhlbWVcblxuJGNvbG9yLXByaW1hcnk6ICM4OWJmMDQgIWRlZmF1bHQ7XG4kY29sb3Itc2Vjb25kYXJ5OiAjOTAxMmZlICFkZWZhdWx0O1xuJGNvbG9yLWluZm86ICM0OTkwZTIgIWRlZmF1bHQ7XG4kY29sb3Itd2FybmluZzogI2ZmNjA2MCAhZGVmYXVsdDtcbiRjb2xvci1kYW5nZXI6ICNmMDAgIWRlZmF1bHQ7XG5cbiRjb2xvci1wcmltYXJ5LWhvdmVyOiBjb2xvci5hZGp1c3QoJGNvbG9yLXByaW1hcnksICRsaWdodG5lc3M6IDAuNSUpICFkZWZhdWx0O1xuXG4kY29sb3ItcG9zdDogIzQ5Y2M5MCAhZGVmYXVsdDtcbiRjb2xvci1nZXQ6ICM2MWFmZmUgIWRlZmF1bHQ7XG4kY29sb3ItcHV0OiAjZmNhMTMwICFkZWZhdWx0O1xuJGNvbG9yLWRlbGV0ZTogI2Y5M2UzZSAhZGVmYXVsdDtcbiRjb2xvci1oZWFkOiAjOTAxMmZlICFkZWZhdWx0O1xuJGNvbG9yLXBhdGNoOiAjNTBlM2MyICFkZWZhdWx0O1xuJGNvbG9yLWRpc2FibGVkOiAjZWJlYmViICFkZWZhdWx0O1xuJGNvbG9yLW9wdGlvbnM6ICMwZDVhYTcgIWRlZmF1bHQ7XG5cbi8vIEF1dGhvcml6ZVxuXG4kYXV0aC1jb250YWluZXItYm9yZGVyLWNvbG9yOiAkZ3JheS01MCAhZGVmYXVsdDtcbiRhdXRoLXNlbGVjdC1hbGwtbm9uZS1saW5rLWZvbnQtY29sb3I6ICRjb2xvci1pbmZvICFkZWZhdWx0O1xuLy8gQnV0dG9uc1xuXG4kYnRuLWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ0bi1ib3JkZXItY29sb3I6ICRncmF5LTQwMCAhZGVmYXVsdDtcbiRidG4tZm9udC1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcbiRidG4tYm94LXNoYWRvdy1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4kYnRuLWF1dGhvcml6ZS1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidG4tYXV0aG9yaXplLWJvcmRlci1jb2xvcjogJGNvbG9yLXBvc3QgIWRlZmF1bHQ7XG4kYnRuLWF1dGhvcml6ZS1mb250LWNvbG9yOiAkY29sb3ItcG9zdCAhZGVmYXVsdDtcbiRidG4tYXV0aG9yaXplLXN2Zy1maWxsLWNvbG9yOiAkY29sb3ItcG9zdCAhZGVmYXVsdDtcblxuJGJ0bi1jYW5jZWwtYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnRuLWNhbmNlbC1ib3JkZXItY29sb3I6ICRjb2xvci13YXJuaW5nICFkZWZhdWx0O1xuJGJ0bi1jYW5jZWwtZm9udC1jb2xvcjogJGNvbG9yLXdhcm5pbmcgIWRlZmF1bHQ7XG5cbiRidG4tZXhlY3V0ZS1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidG4tZXhlY3V0ZS1ib3JkZXItY29sb3I6ICRjb2xvci1pbmZvICFkZWZhdWx0O1xuJGJ0bi1leGVjdXRlLWZvbnQtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRidG4tZXhlY3V0ZS1iYWNrZ3JvdW5kLWNvbG9yLWFsdDogJGNvbG9yLWluZm8gIWRlZmF1bHQ7XG5cbiRleHBhbmQtbWV0aG9kcy1zdmctZmlsbC1jb2xvcjogJGdyYXktNTAwICFkZWZhdWx0O1xuJGV4cGFuZC1tZXRob2RzLXN2Zy1maWxsLWNvbG9yLWhvdmVyOiAkZ3JheS04MDAgIWRlZmF1bHQ7XG5cbi8vIEVycm9yc1xuXG4kZXJyb3JzLXdyYXBwZXItYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWRlbGV0ZSAhZGVmYXVsdDtcbiRlcnJvcnMtd3JhcHBlci1ib3JkZXItY29sb3I6ICRjb2xvci1kZWxldGUgIWRlZmF1bHQ7XG5cbiRlcnJvcnMtd3JhcHBlci1lcnJvcnMtc21hbGwtZm9udC1jb2xvcjogJGdyYXktNjAwICFkZWZhdWx0O1xuXG4vLyBGb3JtXG5cbiRmb3JtLXNlbGVjdC1iYWNrZ3JvdW5kLWNvbG9yOiAkYWxhYmFzdGVyICFkZWZhdWx0O1xuJGZvcm0tc2VsZWN0LWJvcmRlci1jb2xvcjogJG1ha28tZ3JheSAhZGVmYXVsdDtcbiRmb3JtLXNlbGVjdC1ib3gtc2hhZG93LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbiRmb3JtLWlucHV0LWJvcmRlci1jb2xvcjogJGFsdG8tZ3JheSAhZGVmYXVsdDtcbiRmb3JtLWlucHV0LWJhY2tncm91bmQtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuJGZvcm0tdGV4dGFyZWEtYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJGZvcm0tdGV4dGFyZWEtZm9jdXMtYm9yZGVyLWNvbG9yOiAkY29sb3ItZ2V0ICFkZWZhdWx0O1xuXG4kZm9ybS10ZXh0YXJlYS1jdXJsLWJhY2tncm91bmQtY29sb3I6ICRtYWtvLWdyYXkgIWRlZmF1bHQ7XG4kZm9ybS10ZXh0YXJlYS1jdXJsLWZvbnQtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuJGZvcm0tY2hlY2tib3gtbGFiZWwtZm9udC1jb2xvcjogJGdyYXktOTAwICFkZWZhdWx0O1xuJGZvcm0tY2hlY2tib3gtYmFja2dyb3VuZC1jb2xvcjogJGNvbmNyZXRlLWdyYXkgIWRlZmF1bHQ7XG4kZm9ybS1jaGVja2JveC1ib3gtc2hhZG93LWNvbG9yOiAkY29uY3JldGUtZ3JheSAhZGVmYXVsdDtcblxuLy8gSW5mb3JtYXRpb25cblxuJGluZm8tY29kZS1iYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG4kaW5mby1jb2RlLWZvbnQtY29sb3I6ICRjb2xvci1oZWFkICFkZWZhdWx0O1xuXG4kaW5mby1saW5rLWZvbnQtY29sb3I6ICRjb2xvci1pbmZvICFkZWZhdWx0O1xuJGluZm8tbGluay1mb250LWNvbG9yLWhvdmVyOiAkaW5mby1saW5rLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbiRpbmZvLXRpdGxlLXNtYWxsLWJhY2tncm91bmQtY29sb3I6ICR3YXRlcmxvby1ncmF5ICFkZWZhdWx0O1xuXG4kaW5mby10aXRsZS1zbWFsbC1wcmUtZm9udC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLyBMYXlvdXRcblxuJG9wYmxvY2stYm9yZGVyLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG4kb3BibG9jay1ib3gtc2hhZG93LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbiRvcGJsb2NrLXRhZy1ib3JkZXItYm90dG9tLWNvbG9yOiAkYnJpZ2h0LWdyYXkgIWRlZmF1bHQ7XG4kb3BibG9jay10YWctYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogJGJsYWNrICFkZWZhdWx0O1xuXG4kb3BibG9jay10YWItaGVhZGVyLXRhYi1pdGVtLWFjdGl2ZS1oNC1zcGFuLWFmdGVyLWJhY2tncm91bmQtY29sb3I6ICRncmF5LTQwMCAhZGVmYXVsdDtcblxuJG9wYmxvY2staXNvcGVuLXN1bW1hcnktYm9yZGVyLWJvdHRvbS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4kb3BibG9jay1pc29wZW4tc2VjdGlvbi1oZWFkZXItYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJG9wYmxvY2staXNvcGVuLXNlY3Rpb24taGVhZGVyLWJveC1zaGFkb3ctY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuJG9wYmxvY2stc3VtbWFyeS1tZXRob2QtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuJG9wYmxvY2stc3VtbWFyeS1tZXRob2QtZm9udC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJG9wYmxvY2stc3VtbWFyeS1tZXRob2QtdGV4dC1zaGFkb3ctY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuJG9wZXJhdGlvbmFsLWZpbHRlci1pbnB1dC1ib3JkZXItY29sb3I6ICRnZXlzZXItYmx1ZSAhZGVmYXVsdDtcblxuJHRhYi1saXN0LWl0ZW0tZmlyc3QtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4kcmVzcG9uc2UtY29sLXN0YXR1cy11bmRvY3VtZW50ZWQtZm9udC1jb2xvcjogJGdyYXktMzAwICFkZWZhdWx0O1xuXG4kcmVzcG9uc2UtY29sLWxpbmtzLWZvbnQtY29sb3I6ICRncmF5LTMwMCAhZGVmYXVsdDtcblxuJG9wYmxvY2stYm9keS1iYWNrZ3JvdW5kLWNvbG9yOiAkYWdhdGUtZ3JheSAhZGVmYXVsdDtcbiRvcGJsb2NrLWJvZHktZm9udC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4kc2NoZW1lLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kc2NoZW1lLWNvbnRhaW5lci1ib3gtc2hhZG93LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbiRzZXJ2ZXItY29udGFpbmVyLWJhY2tncm91bmQtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRzZXJ2ZXItY29udGFpbmVyLWJveC1zaGFkb3ctY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuJHNlcnZlci1jb250YWluZXItY29tcHV0ZWQtdXJsLWNvZGUtZm9udC1jb2xvcjogJGdyYXktNDAwICFkZWZhdWx0O1xuXG4kbG9hZGluZy1jb250YWluZXItYmVmb3JlLWJvcmRlci1jb2xvcjogJGdyYXktNjUwICFkZWZhdWx0O1xuJGxvYWRpbmctY29udGFpbmVyLWJlZm9yZS1ib3JkZXItdG9wLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbiRyZXNwb25zZS1jb250ZW50LXR5cGUtY29udHJvbHMtYWNjZXB0LWhlYWRlci1zZWxlY3QtYm9yZGVyLWNvbG9yOiAkamFwYW5lc2UtbGF1cmVsICFkZWZhdWx0O1xuJHJlc3BvbnNlLWNvbnRlbnQtdHlwZS1jb250cm9scy1hY2NlcHQtaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRqYXBhbmVzZS1sYXVyZWwgIWRlZmF1bHQ7XG5cbi8vIE1vZGFsXG5cbiRkaWFsb2ctdXgtYmFja2Ryb3AtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4kZGlhbG9nLXV4LW1vZGFsLWJhY2tncm91bmQtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRkaWFsb2ctdXgtbW9kYWwtYm9yZGVyLWNvbG9yOiAkZ3JheS01MCAhZGVmYXVsdDtcbiRkaWFsb2ctdXgtbW9kYWwtYm94LXNoYWRvdy1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4kZGlhbG9nLXV4LW1vZGFsLWNvbnRlbnQtZm9udC1jb2xvcjogJG1ha28tZ3JheSAhZGVmYXVsdDtcblxuJGRpYWxvZy11eC1tb2RhbC1oZWFkZXItYm9yZGVyLWJvdHRvbS1jb2xvcjogJGdyYXktNTAgIWRlZmF1bHQ7XG5cbi8vIE1vZGVsc1xuXG4kbW9kZWwtZGVwcmVjYXRlZC1mb250LWNvbG9yOiAkZ3JheS0yMDAgIWRlZmF1bHQ7XG5cbiRtb2RlbC1oaW50LWZvbnQtY29sb3I6ICRncmF5LTUwICFkZWZhdWx0O1xuJG1vZGVsLWhpbnQtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4kc2VjdGlvbi1tb2RlbHMtYm9yZGVyLWNvbG9yOiAkYnJpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbiRzZWN0aW9uLW1vZGVscy1pc29wZW4taDQtYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNlY3Rpb24tbW9kZWxzLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuJHNlY3Rpb24tbW9kZWxzLWg0LWZvbnQtY29sb3I6ICRncmF5LTYwMCAhZGVmYXVsdDtcbiRzZWN0aW9uLW1vZGVscy1oNC1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbiRzZWN0aW9uLW1vZGVscy1oNS1mb250LWNvbG9yOiAkZ3JheS01MDAgIWRlZmF1bHQ7XG5cbiRzZWN0aW9uLW1vZGVscy1tb2RlbC1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4kc2VjdGlvbi1tb2RlbHMtbW9kZWwtYm94LWJhY2tncm91bmQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuJHNlY3Rpb24tbW9kZWxzLW1vZGVsLXRpdGxlLWZvbnQtY29sb3I6ICRncmF5LTcwMCAhZGVmYXVsdDtcblxuJHByb3AtdHlwZS1mb250LWNvbG9yOiAkc2NhbXBpLXB1cnBsZSAhZGVmYXVsdDtcblxuJHByb3AtZm9ybWF0LWZvbnQtY29sb3I6ICRncmF5LTYwMCAhZGVmYXVsdDtcblxuLy8gVGFibGVzXG5cbiR0YWJsZS10aGVhZC10ZC1ib3JkZXItYm90dG9tLWNvbG9yOiAkYnJpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbiR0YWJsZS1wYXJhbWV0ZXItbmFtZS1yZXF1aXJlZC1mb250LWNvbG9yOiAkY29sb3ItZGFuZ2VyICFkZWZhdWx0O1xuXG4kdGFibGUtcGFyYW1ldGVyLWluLWZvbnQtY29sb3I6ICRncmF5LTQwMCAhZGVmYXVsdDtcblxuJHRhYmxlLXBhcmFtZXRlci1kZXByZWNhdGVkLWZvbnQtY29sb3I6ICRjb2xvci1kYW5nZXIgIWRlZmF1bHQ7XG5cbi8vIFRvcGJhclxuXG4kdG9wYmFyLWJhY2tncm91bmQtY29sb3I6ICRjb2QtZ3JheSAhZGVmYXVsdDtcblxuJHRvcGJhci1saW5rLWZvbnQtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuJHRvcGJhci1kb3dubG9hZC11cmwtd3JhcHBlci1lbGVtZW50LWJvcmRlci1jb2xvcjogJGFwcGxlLWdyZWVuICFkZWZhdWx0O1xuXG4kdG9wYmFyLWRvd25sb2FkLXVybC1idXR0b24tYmFja2dyb3VuZC1jb2xvcjogJGFwcGxlLWdyZWVuICFkZWZhdWx0O1xuJHRvcGJhci1kb3dubG9hZC11cmwtYnV0dG9uLWZvbnQtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8gVHlwZVxuXG4kdGV4dC1ib2R5LWRlZmF1bHQtZm9udC1jb2xvcjogJGJyaWdodC1ncmF5ICFkZWZhdWx0O1xuJHRleHQtY29kZS1kZWZhdWx0LWZvbnQtY29sb3I6ICRicmlnaHQtZ3JheSAhZGVmYXVsdDtcbiR0ZXh0LWhlYWRsaW5lLWRlZmF1bHQtZm9udC1jb2xvcjogJGJyaWdodC1ncmF5ICFkZWZhdWx0O1xuIiwiXG4vLyBDb252ZXJ0ZWQgVmFyaWFibGVzXG5cblxuLy8gQ3VzdG9tIE1lZGlhIFF1ZXJ5IFZhcmlhYmxlc1xuXG5cbi8qXG5cbiAgREVCVUcgQ0hJTERSRU5cbiAgRG9jczogaHR0cDovL3RhY2h5b25zLmlvL2RvY3MvZGVidWcvXG5cbiAgSnVzdCBhZGQgdGhlIGRlYnVnIGNsYXNzIHRvIGFueSBlbGVtZW50IHRvIHNlZSBvdXRsaW5lcyBvbiBpdHNcbiAgY2hpbGRyZW4uXG5cbiovXG5cbi5kZWJ1ZyAqIHsgb3V0bGluZTogMXB4IHNvbGlkIGdvbGQ7IH1cbi5kZWJ1Zy13aGl0ZSAqIHsgb3V0bGluZTogMXB4IHNvbGlkIHdoaXRlOyB9XG4uZGVidWctYmxhY2sgKiB7IG91dGxpbmU6IDFweCBzb2xpZCBibGFjazsgfVxuXG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLypcblxuICAgREVCVUcgR1JJRFxuICAgaHR0cDovL3RhY2h5b25zLmlvL2RvY3MvZGVidWctZ3JpZC9cblxuICAgQ2FuIGJlIHVzZWZ1bCBmb3IgZGVidWdnaW5nIGxheW91dCBpc3N1ZXNcbiAgIG9yIGhlbHBpbmcgdG8gbWFrZSBzdXJlIHRoaW5ncyBsaW5lIHVwIHBlcmZlY3RseS5cbiAgIEp1c3QgdGFjayBvbmUgb2YgdGhlc2UgY2xhc3NlcyBvbnRvIGEgcGFyZW50IGVsZW1lbnQuXG5cbiovXG5cbi5kZWJ1Zy1ncmlkIHtcbiAgYmFja2dyb3VuZDp0cmFuc3BhcmVudCB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBZ0FBQUFJQ0FZQUFBREVENzZMQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5aHBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVEV4SURjNUxqRTFPRE15TlN3Z01qQXhOUzh3T1M4eE1DMHdNVG94TURveU1DQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1RVMDlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl0YlM4aUlIaHRiRzV6T25OMFVtVm1QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2YzFSNWNHVXZVbVZ6YjNWeVkyVlNaV1lqSWlCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlJSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZNVFJET1RZNE4wVTJOMFZGTVRGRk5qZzJNelpEUWprd05rUTRNamd3TUVJaUlIaHRjRTFOT2tsdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk1UUkRPVFk0TjBRMk4wVkZNVEZGTmpnMk16WkRRamt3TmtRNE1qZ3dNRUlpSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVWdLRTFoWTJsdWRHOXphQ2tpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvM05qY3lRa1EzTmpZM1F6VXhNVVUyUWpKQ1EwVXlOREE0TVRBd01qRTNNU0lnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRG8zTmpjeVFrUTNOelkzUXpVeE1VVTJRakpDUTBVeU5EQTRNVEF3TWpFM01TSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9Qc0JTK0dNQUFBQWpTVVJCVkhqYVl2ei8vejhETHNENGdjR1hpWUVBR0JJS0dCbmUvL2ZGcHdBZ3dBQjk4QWFGMnBqbFVRQUFBQUJKUlU1RXJrSmdnZz09KSByZXBlYXQgdG9wIGxlZnQ7XG59XG5cbi5kZWJ1Zy1ncmlkLTE2IHtcbiAgYmFja2dyb3VuZDp0cmFuc3BhcmVudCB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5aHBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVEV4SURjNUxqRTFPRE15TlN3Z01qQXhOUzh3T1M4eE1DMHdNVG94TURveU1DQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1RVMDlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl0YlM4aUlIaHRiRzV6T25OMFVtVm1QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2YzFSNWNHVXZVbVZ6YjNWeVkyVlNaV1lqSWlCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlJSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZPRFl5UmpoRVJEVTJOMFl5TVRGRk5qZzJNelpEUWprd05rUTRNamd3TUVJaUlIaHRjRTFOT2tsdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk9EWXlSamhFUkRRMk4wWXlNVEZGTmpnMk16WkRRamt3TmtRNE1qZ3dNRUlpSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVWdLRTFoWTJsdWRHOXphQ2tpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvM05qY3lRa1EzUVRZM1F6VXhNVVUyUWpKQ1EwVXlOREE0TVRBd01qRTNNU0lnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRG8zTmpjeVFrUTNRalkzUXpVeE1VVTJRakpDUTBVeU5EQTRNVEF3TWpFM01TSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QdkNTMDFJQUFBQk1TVVJCVkhqYVltUjQvNStCRlBCZkFNRm0vTUJneDhSQUdXQ24xQUFtU2czNFE2a0JES01HTURDd0lDZU1JZW1GLzVRYXdFaXBBV3dVaHdFak1EdmJBV2xXa3ZWQnd1OHZRSUFCQUV3QkNwaDhVNmMwQUFBQUFFbEZUa1N1UW1DQykgcmVwZWF0IHRvcCBsZWZ0O1xufVxuXG4uZGVidWctZ3JpZC04LXNvbGlkIHtcbiAgYmFja2dyb3VuZDp3aGl0ZSB1cmwoZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwvOWovNFFBWVJYaHBaZ0FBU1VrcUFBZ0FBQUFBQUFBQUFBQUFBUC9zQUJGRWRXTnJlUUFCQUFRQUFBQUFBQUQvNFFNeGFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0x3QThQM2h3WVdOclpYUWdZbVZuYVc0OUl1Kzd2eUlnYVdROUlsYzFUVEJOY0VObGFHbEllbkpsVTNwT1ZHTjZhMk01WkNJL1BpQThlRHA0YlhCdFpYUmhJSGh0Ykc1ek9uZzlJbUZrYjJKbE9tNXpPbTFsZEdFdklpQjRPbmh0Y0hSclBTSkJaRzlpWlNCWVRWQWdRMjl5WlNBMUxqWXRZekV4TVNBM09TNHhOVGd6TWpVc0lESXdNVFV2TURrdk1UQXRNREU2TVRBNk1qQWdJQ0FnSUNBZ0lDSStJRHh5WkdZNlVrUkdJSGh0Ykc1ek9uSmtaajBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOHdNaTh5TWkxeVpHWXRjM2x1ZEdGNExXNXpJeUkrSUR4eVpHWTZSR1Z6WTNKcGNIUnBiMjRnY21SbU9tRmliM1YwUFNJaUlIaHRiRzV6T25odGNEMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMeUlnZUcxc2JuTTZlRzF3VFUwOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXRiUzhpSUhodGJHNXpPbk4wVW1WbVBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZjMVI1Y0dVdlVtVnpiM1Z5WTJWU1pXWWpJaUI0YlhBNlEzSmxZWFJ2Y2xSdmIydzlJa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUlDaE5ZV05wYm5SdmMyZ3BJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPa0l4TWpJME9UY3pOamRDTXpFeFJUWkNNa0pEUlRJME1EZ3hNREF5TVRjeElpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09rSXhNakkwT1RjME5qZENNekV4UlRaQ01rSkRSVEkwTURneE1EQXlNVGN4SWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNlFqRXlNalE1TnpFMk4wSXpNVEZGTmtJeVFrTkZNalF3T0RFd01ESXhOekVpSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2UWpFeU1qUTVOekkyTjBJek1URkZOa0l5UWtORk1qUXdPREV3TURJeE56RWlMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejcvN2dBT1FXUnZZbVVBWk1BQUFBQUIvOXNBaEFBYkdob3BIU2xCSmlaQlFpOHZMMEpIUHo0K1AwZEhSMGRIUjBkSFIwZEhSMGRIUjBkSFIwZEhSMGRIUjBkSFIwZEhSMGRIUjBkSFIwZEhSMGRIUjBkSEFSMHBLVFFtTkQ4b0tEOUhQelUvUjBkSFIwZEhSMGRIUjBkSFIwZEhSMGRIUjBkSFIwZEhSMGRIUjBkSFIwZEhSMGRIUjBkSFIwZEhSMGRIUjBkSFIwZi93QUFSQ0FBSUFBZ0RBU0lBQWhFQkF4RUIvOFFBV1FBQkFRQUFBQUFBQUFBQUFBQUFBQUFBQUFZQkFRRUFBQUFBQUFBQUFBQUFBQUFBQUFJRUVBRUJBQU1CQUFBQUFBQUFBQUFBQUFBQkFERUNBMEVSQUFFREJRQUFBQUFBQUFBQUFBQUFBQUFSSVRGQlVXRVNJdi9hQUF3REFRQUNFUU1SQUQ4QW9PblRWMVFURDdKSnNoUDN2U00zUC8vWikgcmVwZWF0IHRvcCBsZWZ0O1xufVxuXG4uZGVidWctZ3JpZC0xNi1zb2xpZCB7XG4gIGJhY2tncm91bmQ6d2hpdGUgdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBSUFBQUNRa1dnMkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeWhwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRFeElEYzVMakUxT0RNeU5Td2dNakF4TlM4d09TOHhNQzB3TVRveE1Eb3lNQ0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVWdLRTFoWTJsdWRHOXphQ2tpSUhodGNFMU5Pa2x1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2TnpZM01rSkVOMFUyTjBNMU1URkZOa0l5UWtORk1qUXdPREV3TURJeE56RWlJSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZOelkzTWtKRU4wWTJOME0xTVRGRk5rSXlRa05GTWpRd09ERXdNREl4TnpFaVBpQThlRzF3VFUwNlJHVnlhWFpsWkVaeWIyMGdjM1JTWldZNmFXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzNOamN5UWtRM1F6WTNRelV4TVVVMlFqSkNRMFV5TkRBNE1UQXdNakUzTVNJZ2MzUlNaV1k2Wkc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRvM05qY3lRa1EzUkRZM1F6VXhNVVUyUWpKQ1EwVXlOREE0TVRBd01qRTNNU0l2UGlBOEwzSmtaanBFWlhOamNtbHdkR2x2Ymo0Z1BDOXlaR1k2VWtSR1BpQThMM2c2ZUcxd2JXVjBZVDRnUEQ5NGNHRmphMlYwSUdWdVpEMGljaUkvUHZlNkoza0FBQUF6U1VSQlZIamFZdnovL3o4RDBVRHNNd01qU1JvWVA1R3E0U1BOYlJqVk1FUTFmQ1JEZytpbi82K0oxQUpVeHNnQUVHQUEzMUJBSk1TMEdZRUFBQUFBU1VWT1JLNUNZSUk9KSByZXBlYXQgdG9wIGxlZnQ7XG59XG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLypcblxuICBCT1ggU0laSU5HXG5cbiovXG5cbmh0bWwsXG5ib2R5LFxuZGl2LFxuYXJ0aWNsZSxcbnNlY3Rpb24sXG5tYWluLFxuZm9vdGVyLFxuaGVhZGVyLFxuZm9ybSxcbmZpZWxkc2V0LFxubGVnZW5kLFxucHJlLFxuY29kZSxcbmEsXG5oMSxoMixoMyxoNCxoNSxoNixcbnAsXG51bCxcbm9sLFxubGksXG5kbCxcbmR0LFxuZGQsXG50ZXh0YXJlYSxcbnRhYmxlLFxudGQsXG50aCxcbnRyLFxuaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbmlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbmlucHV0W3R5cGU9XCJ0ZWxcIl0sXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcbmlucHV0W3R5cGU9XCJ1cmxcIl0sXG4uYm9yZGVyLWJveCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLypcblxuICAgQVNQRUNUIFJBVElPU1xuXG4qL1xuXG4vKiBUaGlzIGlzIGZvciBmbHVpZCBtZWRpYSB0aGF0IGlzIGVtYmVkZGVkIGZyb20gdGhpcmQgcGFydHkgc2l0ZXMgbGlrZSB5b3V0dWJlLCB2aW1lbyBldGMuXG4gKiBXcmFwIHRoZSBvdXRlciBlbGVtZW50IGluIGFzcGVjdC1yYXRpbyBhbmQgdGhlbiBleHRlbmQgaXQgd2l0aCB0aGUgZGVzaXJlZCByYXRpbyBpLmVcbiAqIE1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gaGVpZ2h0IGFuZCB3aWR0aCBhdHRyaWJ1dGVzIG9uIHRoZSBlbWJlZGRlZCBtZWRpYS5cbiAqIEFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL3N1aXRjc3MvY29tcG9uZW50cy1mbGV4LWVtYmVkXG4gKlxuICogRXhhbXBsZTpcbiAqXG4gKiA8ZGl2IGNsYXNzPVwiYXNwZWN0LXJhdGlvIGFzcGVjdC1yYXRpby0tMTZ4OVwiPlxuICogIDxpZnJhbWUgY2xhc3M9XCJhc3BlY3QtcmF0aW8tLW9iamVjdFwiPjwvaWZyYW1lPlxuICogPC9kaXY+XG4gKlxuICogKi9cblxuLmFzcGVjdC1yYXRpbyB7XG4gIGhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYXNwZWN0LXJhdGlvLS0xNng5IHsgcGFkZGluZy1ib3R0b206IDU2LjI1JTsgfVxuLmFzcGVjdC1yYXRpby0tOXgxNiB7IHBhZGRpbmctYm90dG9tOiAxNzcuNzclOyB9XG5cbi5hc3BlY3QtcmF0aW8tLTR4MyB7ICBwYWRkaW5nLWJvdHRvbTogNzUlOyB9XG4uYXNwZWN0LXJhdGlvLS0zeDQgeyAgcGFkZGluZy1ib3R0b206IDEzMy4zMyU7IH1cblxuLmFzcGVjdC1yYXRpby0tNng0IHsgIHBhZGRpbmctYm90dG9tOiA2Ni42JTsgfVxuLmFzcGVjdC1yYXRpby0tNHg2IHsgIHBhZGRpbmctYm90dG9tOiAxNTAlOyB9XG5cbi5hc3BlY3QtcmF0aW8tLTh4NSB7ICBwYWRkaW5nLWJvdHRvbTogNjIuNSU7IH1cbi5hc3BlY3QtcmF0aW8tLTV4OCB7ICBwYWRkaW5nLWJvdHRvbTogMTYwJTsgfVxuXG4uYXNwZWN0LXJhdGlvLS03eDUgeyAgcGFkZGluZy1ib3R0b206IDcxLjQyJTsgfVxuLmFzcGVjdC1yYXRpby0tNXg3IHsgIHBhZGRpbmctYm90dG9tOiAxNDAlOyB9XG5cbi5hc3BlY3QtcmF0aW8tLTF4MSB7ICBwYWRkaW5nLWJvdHRvbTogMTAwJTsgfVxuXG4uYXNwZWN0LXJhdGlvLS1vYmplY3Qge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDEwMDtcbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbm90LXNtYWxsfXtcbiAgICAuYXNwZWN0LXJhdGlvLW5zIHtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgLmFzcGVjdC1yYXRpby0tMTZ4OS1ucyB7IHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7IH1cbiAgICAuYXNwZWN0LXJhdGlvLS05eDE2LW5zIHsgcGFkZGluZy1ib3R0b206IDE3Ny43NyU7IH1cbiAgICAuYXNwZWN0LXJhdGlvLS00eDMtbnMgeyAgcGFkZGluZy1ib3R0b206IDc1JTsgfVxuICAgIC5hc3BlY3QtcmF0aW8tLTN4NC1ucyB7ICBwYWRkaW5nLWJvdHRvbTogMTMzLjMzJTsgfVxuICAgIC5hc3BlY3QtcmF0aW8tLTZ4NC1ucyB7ICBwYWRkaW5nLWJvdHRvbTogNjYuNiU7IH1cbiAgICAuYXNwZWN0LXJhdGlvLS00eDYtbnMgeyAgcGFkZGluZy1ib3R0b206IDE1MCU7IH1cbiAgICAuYXNwZWN0LXJhdGlvLS04eDUtbnMgeyAgcGFkZGluZy1ib3R0b206IDYyLjUlOyB9XG4gICAgLmFzcGVjdC1yYXRpby0tNXg4LW5zIHsgIHBhZGRpbmctYm90dG9tOiAxNjAlOyB9XG4gICAgLmFzcGVjdC1yYXRpby0tN3g1LW5zIHsgIHBhZGRpbmctYm90dG9tOiA3MS40MiU7IH1cbiAgICAuYXNwZWN0LXJhdGlvLS01eDctbnMgeyAgcGFkZGluZy1ib3R0b206IDE0MCU7IH1cbiAgICAuYXNwZWN0LXJhdGlvLS0xeDEtbnMgeyAgcGFkZGluZy1ib3R0b206IDEwMCU7IH1cbiAgICAuYXNwZWN0LXJhdGlvLS1vYmplY3QtbnMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMTAwO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbWVkaXVtfXtcbiAgICAuYXNwZWN0LXJhdGlvLW0ge1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgICAuYXNwZWN0LXJhdGlvLS0xNng5LW0geyBwYWRkaW5nLWJvdHRvbTogNTYuMjUlOyB9XG4gICAgLmFzcGVjdC1yYXRpby0tOXgxNi1tIHsgcGFkZGluZy1ib3R0b206IDE3Ny43NyU7IH1cbiAgICAuYXNwZWN0LXJhdGlvLS00eDMtbSB7ICBwYWRkaW5nLWJvdHRvbTogNzUlOyB9XG4gICAgLmFzcGVjdC1yYXRpby0tM3g0LW0geyAgcGFkZGluZy1ib3R0b206IDEzMy4zMyU7IH1cbiAgICAuYXNwZWN0LXJhdGlvLS02eDQtbSB7ICBwYWRkaW5nLWJvdHRvbTogNjYuNiU7IH1cbiAgICAuYXNwZWN0LXJhdGlvLS00eDYtbSB7ICBwYWRkaW5nLWJvdHRvbTogMTUwJTsgfVxuICAgIC5hc3BlY3QtcmF0aW8tLTh4NS1tIHsgIHBhZGRpbmctYm90dG9tOiA2Mi41JTsgfVxuICAgIC5hc3BlY3QtcmF0aW8tLTV4OC1tIHsgIHBhZGRpbmctYm90dG9tOiAxNjAlOyB9XG4gICAgLmFzcGVjdC1yYXRpby0tN3g1LW0geyAgcGFkZGluZy1ib3R0b206IDcxLjQyJTsgfVxuICAgIC5hc3BlY3QtcmF0aW8tLTV4Ny1tIHsgIHBhZGRpbmctYm90dG9tOiAxNDAlOyB9XG4gICAgLmFzcGVjdC1yYXRpby0tMXgxLW0geyAgcGFkZGluZy1ib3R0b206IDEwMCU7IH1cbiAgICAuYXNwZWN0LXJhdGlvLS1vYmplY3QtbSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB6LWluZGV4OiAxMDA7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1sYXJnZX17XG4gICAgLmFzcGVjdC1yYXRpby1sIHtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgLmFzcGVjdC1yYXRpby0tMTZ4OS1sIHsgcGFkZGluZy1ib3R0b206IDU2LjI1JTsgfVxuICAgIC5hc3BlY3QtcmF0aW8tLTl4MTYtbCB7IHBhZGRpbmctYm90dG9tOiAxNzcuNzclOyB9XG4gICAgLmFzcGVjdC1yYXRpby0tNHgzLWwgeyAgcGFkZGluZy1ib3R0b206IDc1JTsgfVxuICAgIC5hc3BlY3QtcmF0aW8tLTN4NC1sIHsgIHBhZGRpbmctYm90dG9tOiAxMzMuMzMlOyB9XG4gICAgLmFzcGVjdC1yYXRpby0tNng0LWwgeyAgcGFkZGluZy1ib3R0b206IDY2LjYlOyB9XG4gICAgLmFzcGVjdC1yYXRpby0tNHg2LWwgeyAgcGFkZGluZy1ib3R0b206IDE1MCU7IH1cbiAgICAuYXNwZWN0LXJhdGlvLS04eDUtbCB7ICBwYWRkaW5nLWJvdHRvbTogNjIuNSU7IH1cbiAgICAuYXNwZWN0LXJhdGlvLS01eDgtbCB7ICBwYWRkaW5nLWJvdHRvbTogMTYwJTsgfVxuICAgIC5hc3BlY3QtcmF0aW8tLTd4NS1sIHsgIHBhZGRpbmctYm90dG9tOiA3MS40MiU7IH1cbiAgICAuYXNwZWN0LXJhdGlvLS01eDctbCB7ICBwYWRkaW5nLWJvdHRvbTogMTQwJTsgfVxuICAgIC5hc3BlY3QtcmF0aW8tLTF4MS1sIHsgIHBhZGRpbmctYm90dG9tOiAxMDAlOyB9XG4gICAgLmFzcGVjdC1yYXRpby0tb2JqZWN0LWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMTAwO1xuICAgIH1cbn1cbiIsIlxuLy8gQ29udmVydGVkIFZhcmlhYmxlc1xuXG5cbi8vIEN1c3RvbSBNZWRpYSBRdWVyeSBWYXJpYWJsZXNcblxuXG4vKlxuXG4gICBJTUFHRVNcbiAgIERvY3M6IGh0dHA6Ly90YWNoeW9ucy5pby9kb2NzL2VsZW1lbnRzL2ltYWdlcy9cblxuKi9cblxuLyogUmVzcG9uc2l2ZSBpbWFnZXMhICovXG5cbmltZyB7IG1heC13aWR0aDogMTAwJTsgfVxuXG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLypcblxuICAgQkFDS0dST1VORCBTSVpFXG4gICBEb2NzOiBodHRwOi8vdGFjaHlvbnMuaW8vZG9jcy90aGVtZXMvYmFja2dyb3VuZC1zaXplL1xuXG4gICBNZWRpYSBRdWVyeSBFeHRlbnNpb25zOlxuICAgICAtbnMgPSBub3Qtc21hbGxcbiAgICAgLW0gID0gbWVkaXVtXG4gICAgIC1sICA9IGxhcmdlXG5cbiovXG5cbi8qXG4gIE9mdGVuIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBiYWNrZ3JvdW5kIGltYWdlIHNldCBhcyBhbiBpbmxpbmUgc3R5bGVcbiAgb24gYW4gaHRtbCBlbGVtZW50LlxuKi9cblxuICAuY292ZXIgeyBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyIWltcG9ydGFudDsgfVxuICAuY29udGFpbiB7IGJhY2tncm91bmQtc2l6ZTogY29udGFpbiFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbm90LXNtYWxsfSB7XG4gIC5jb3Zlci1ucyB7IGJhY2tncm91bmQtc2l6ZTogY292ZXIhaW1wb3J0YW50OyB9XG4gIC5jb250YWluLW5zIHsgYmFja2dyb3VuZC1zaXplOiBjb250YWluIWltcG9ydGFudDsgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1tZWRpdW19IHtcbiAgLmNvdmVyLW0geyBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyIWltcG9ydGFudDsgfVxuICAuY29udGFpbi1tIHsgYmFja2dyb3VuZC1zaXplOiBjb250YWluIWltcG9ydGFudDsgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1sYXJnZX0ge1xuICAuY292ZXItbCB7IGJhY2tncm91bmQtc2l6ZTogY292ZXIhaW1wb3J0YW50OyB9XG4gIC5jb250YWluLWwgeyBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW4haW1wb3J0YW50OyB9XG59XG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLypcblxuICAgIEJBQ0tHUk9VTkQgUE9TSVRJT05cblxuICAgIEJhc2U6XG4gICAgYmcgPSBiYWNrZ3JvdW5kXG5cbiAgICBNb2RpZmllcnM6XG4gICAgLWNlbnRlciA9IGNlbnRlciBjZW50ZXJcbiAgICAtdG9wID0gdG9wIGNlbnRlclxuICAgIC1yaWdodCA9IGNlbnRlciByaWdodFxuICAgIC1ib3R0b20gPSBib3R0b20gY2VudGVyXG4gICAgLWxlZnQgPSBjZW50ZXIgbGVmdFxuXG4gICAgTWVkaWEgUXVlcnkgRXh0ZW5zaW9uczpcbiAgICAgIC1ucyA9IG5vdC1zbWFsbFxuICAgICAgLW0gID0gbWVkaXVtXG4gICAgICAtbCAgPSBsYXJnZVxuXG4gKi9cblxuLmJnLWNlbnRlciB7IFxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyOyBcbn1cblxuLmJnLXRvcCB7ICAgIFxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjsgICAgXG59XG5cbi5iZy1yaWdodCB7ICBcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodDsgIFxufVxuXG4uYmctYm90dG9tIHsgXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IFxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gY2VudGVyOyBcbn1cblxuLmJnLWxlZnQgeyAgIFxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGxlZnQ7ICAgXG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW5vdC1zbWFsbH0ge1xuICAuYmctY2VudGVyLW5zIHsgXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyOyBcbiAgfVxuXG4gIC5iZy10b3AtbnMgeyAgICBcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyOyAgICBcbiAgfVxuXG4gIC5iZy1yaWdodC1ucyB7ICBcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQ7ICBcbiAgfVxuXG4gIC5iZy1ib3R0b20tbnMgeyBcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gY2VudGVyOyBcbiAgfVxuXG4gIC5iZy1sZWZ0LW5zIHsgICBcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgbGVmdDsgICBcbiAgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1tZWRpdW19IHtcbiAgLmJnLWNlbnRlci1tIHsgXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyOyBcbiAgfVxuXG4gIC5iZy10b3AtbSB7ICAgIFxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7ICAgIFxuICB9XG5cbiAgLmJnLXJpZ2h0LW0geyAgXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHJpZ2h0OyAgXG4gIH1cblxuICAuYmctYm90dG9tLW0geyBcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gY2VudGVyOyBcbiAgfVxuXG4gIC5iZy1sZWZ0LW0geyAgIFxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBsZWZ0OyAgIFxuICB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LWxhcmdlfSB7XG4gIC5iZy1jZW50ZXItbCB7IFxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjsgXG4gIH1cblxuICAuYmctdG9wLWwgeyAgICBcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyOyAgICBcbiAgfVxuXG4gIC5iZy1yaWdodC1sIHsgIFxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodDsgIFxuICB9XG5cbiAgLmJnLWJvdHRvbS1sIHsgXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIGNlbnRlcjsgXG4gIH1cblxuICAuYmctbGVmdC1sIHsgICBcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgbGVmdDsgICBcbiAgfVxufVxuIiwiXG4vLyBDb252ZXJ0ZWQgVmFyaWFibGVzXG5cblxuLy8gQ3VzdG9tIE1lZGlhIFF1ZXJ5IFZhcmlhYmxlc1xuXG5cbi8qXG5cbiAgIE9VVExJTkVTXG5cbiAgIE1lZGlhIFF1ZXJ5IEV4dGVuc2lvbnM6XG4gICAgIC1ucyA9IG5vdC1zbWFsbFxuICAgICAtbSAgPSBtZWRpdW1cbiAgICAgLWwgID0gbGFyZ2VcblxuKi9cblxuLm91dGxpbmUgeyBvdXRsaW5lOiAxcHggc29saWQ7IH1cbi5vdXRsaW5lLXRyYW5zcGFyZW50IHsgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XG4ub3V0bGluZS0wIHsgb3V0bGluZTogMDsgfVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1ub3Qtc21hbGx9IHtcbiAgLm91dGxpbmUtbnMgeyBvdXRsaW5lOiAxcHggc29saWQ7IH1cbiAgLm91dGxpbmUtdHJhbnNwYXJlbnQtbnMgeyBvdXRsaW5lOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IH1cbiAgLm91dGxpbmUtMC1ucyB7IG91dGxpbmU6IDA7IH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbWVkaXVtfSB7XG4gIC5vdXRsaW5lLW0geyBvdXRsaW5lOiAxcHggc29saWQ7IH1cbiAgLm91dGxpbmUtdHJhbnNwYXJlbnQtbSB7IG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuICAub3V0bGluZS0wLW0geyBvdXRsaW5lOiAwOyB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LWxhcmdlfSB7XG4gIC5vdXRsaW5lLWwgeyBvdXRsaW5lOiAxcHggc29saWQ7IH1cbiAgLm91dGxpbmUtdHJhbnNwYXJlbnQtbCB7IG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuICAub3V0bGluZS0wLWwgeyBvdXRsaW5lOiAwOyB9XG59XG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLypcblxuICAgIEJPUkRFUlNcbiAgICBEb2NzOiBodHRwOi8vdGFjaHlvbnMuaW8vZG9jcy90aGVtZXMvYm9yZGVycy9cblxuICAgIEJhc2U6XG4gICAgICBiID0gYm9yZGVyXG5cbiAgICBNb2RpZmllcnM6XG4gICAgICBhID0gYWxsXG4gICAgICB0ID0gdG9wXG4gICAgICByID0gcmlnaHRcbiAgICAgIGIgPSBib3R0b21cbiAgICAgIGwgPSBsZWZ0XG4gICAgICBuID0gbm9uZVxuXG4gICBNZWRpYSBRdWVyeSBFeHRlbnNpb25zOlxuICAgICAtbnMgPSBub3Qtc21hbGxcbiAgICAgLW0gID0gbWVkaXVtXG4gICAgIC1sICA9IGxhcmdlXG5cbiovXG5cbiAgLmJhIHsgYm9yZGVyLXN0eWxlOiBzb2xpZDsgYm9yZGVyLXdpZHRoOiAxcHg7IH1cbiAgLmJ0IHsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgfVxuICAuYnIgeyBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkOyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgfVxuICAuYmIgeyBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyB9XG4gIC5ibCB7IGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDsgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgfVxuICAuYm4geyBib3JkZXItc3R5bGU6IG5vbmU7IGJvcmRlci13aWR0aDogMDsgfVxuXG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW5vdC1zbWFsbH0ge1xuICAuYmEtbnMgeyBib3JkZXItc3R5bGU6IHNvbGlkOyBib3JkZXItd2lkdGg6IDFweDsgfVxuICAuYnQtbnMgeyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyB9XG4gIC5ici1ucyB7IGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyB9XG4gIC5iYi1ucyB7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IH1cbiAgLmJsLW5zIHsgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkOyBib3JkZXItbGVmdC13aWR0aDogMXB4OyB9XG4gIC5ibi1ucyB7IGJvcmRlci1zdHlsZTogbm9uZTsgYm9yZGVyLXdpZHRoOiAwOyB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW1lZGl1bX0ge1xuICAuYmEtbSB7IGJvcmRlci1zdHlsZTogc29saWQ7IGJvcmRlci13aWR0aDogMXB4OyB9XG4gIC5idC1tIHsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgfVxuICAuYnItbSB7IGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyB9XG4gIC5iYi1tIHsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgfVxuICAuYmwtbSB7IGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDsgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgfVxuICAuYm4tbSB7IGJvcmRlci1zdHlsZTogbm9uZTsgYm9yZGVyLXdpZHRoOiAwOyB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LWxhcmdlfSB7XG4gIC5iYS1sIHsgYm9yZGVyLXN0eWxlOiBzb2xpZDsgYm9yZGVyLXdpZHRoOiAxcHg7IH1cbiAgLmJ0LWwgeyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyB9XG4gIC5ici1sIHsgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IH1cbiAgLmJiLWwgeyBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyB9XG4gIC5ibC1sIHsgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkOyBib3JkZXItbGVmdC13aWR0aDogMXB4OyB9XG4gIC5ibi1sIHsgYm9yZGVyLXN0eWxlOiBub25lOyBib3JkZXItd2lkdGg6IDA7IH1cbn1cblxuIiwiXG4vLyBDb252ZXJ0ZWQgVmFyaWFibGVzXG5cblxuLy8gQ3VzdG9tIE1lZGlhIFF1ZXJ5IFZhcmlhYmxlc1xuXG5cbi8qXG5cbiAgIEJPUkRFUiBDT0xPUlNcbiAgIERvY3M6IGh0dHA6Ly90YWNoeW9ucy5pby9kb2NzL3RoZW1lcy9ib3JkZXJzL1xuXG4gICBCb3JkZXIgY29sb3JzIGNhbiBiZSB1c2VkIHRvIGV4dGVuZCB0aGUgYmFzZVxuICAgYm9yZGVyIGNsYXNzZXMgYmEsYnQsYmIsYnIsYmwgZm91bmQgaW4gdGhlIF9ib3JkZXJzLmNzcyBmaWxlLlxuXG4gICBUaGUgYmFzZSBib3JkZXIgY2xhc3MgYnkgZGVmYXVsdCB3aWxsIHNldCB0aGUgY29sb3Igb2YgdGhlIGJvcmRlclxuICAgdG8gdGhhdCBvZiB0aGUgY3VycmVudCB0ZXh0IGNvbG9yLiBUaGVzZSBjbGFzc2VzIGFyZSBmb3IgdGhlIGNhc2VzXG4gICB3aGVyZSB5b3UgZGVzaXJlIGZvciB0aGUgdGV4dCBhbmQgYm9yZGVyIGNvbG9ycyB0byBiZSBkaWZmZXJlbnQuXG5cbiAgIEJhc2U6XG4gICAgIGIgPSBib3JkZXJcblxuICAgTW9kaWZpZXJzOlxuICAgLS1jb2xvci1uYW1lID0gZWFjaCBjb2xvciB2YXJpYWJsZSBuYW1lIGlzIGFsc28gYSBib3JkZXIgY29sb3IgbmFtZVxuXG4qL1xuXG4uYi0tYmxhY2sgeyAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmxhY2s7IH1cbi5iLS1uZWFyLWJsYWNrIHsgICBib3JkZXItY29sb3I6ICRuZWFyLWJsYWNrOyB9XG4uYi0tZGFyay1ncmF5IHsgICAgYm9yZGVyLWNvbG9yOiAkZGFyay1ncmF5OyB9XG4uYi0tbWlkLWdyYXkgeyAgICAgYm9yZGVyLWNvbG9yOiAkbWlkLWdyYXk7IH1cbi5iLS1ncmF5IHsgICAgICAgICBib3JkZXItY29sb3I6ICRncmF5OyB9XG4uYi0tc2lsdmVyIHsgICAgICAgYm9yZGVyLWNvbG9yOiAkc2lsdmVyOyB9XG4uYi0tbGlnaHQtc2lsdmVyIHsgYm9yZGVyLWNvbG9yOiAkbGlnaHQtc2lsdmVyOyB9XG4uYi0tbW9vbi1ncmF5IHsgICAgYm9yZGVyLWNvbG9yOiAkbW9vbi1ncmF5OyB9XG4uYi0tbGlnaHQtZ3JheSB7ICAgYm9yZGVyLWNvbG9yOiAkbGlnaHQtZ3JheTsgfVxuLmItLW5lYXItd2hpdGUgeyAgIGJvcmRlci1jb2xvcjogJG5lYXItd2hpdGU7IH1cbi5iLS13aGl0ZSB7ICAgICAgICBib3JkZXItY29sb3I6ICR3aGl0ZTsgfVxuXG4uYi0td2hpdGUtOTAgeyAgIGJvcmRlci1jb2xvcjogJHdoaXRlLTkwOyB9XG4uYi0td2hpdGUtODAgeyAgIGJvcmRlci1jb2xvcjogJHdoaXRlLTgwOyB9XG4uYi0td2hpdGUtNzAgeyAgIGJvcmRlci1jb2xvcjogJHdoaXRlLTcwOyB9XG4uYi0td2hpdGUtNjAgeyAgIGJvcmRlci1jb2xvcjogJHdoaXRlLTYwOyB9XG4uYi0td2hpdGUtNTAgeyAgIGJvcmRlci1jb2xvcjogJHdoaXRlLTUwOyB9XG4uYi0td2hpdGUtNDAgeyAgIGJvcmRlci1jb2xvcjogJHdoaXRlLTQwOyB9XG4uYi0td2hpdGUtMzAgeyAgIGJvcmRlci1jb2xvcjogJHdoaXRlLTMwOyB9XG4uYi0td2hpdGUtMjAgeyAgIGJvcmRlci1jb2xvcjogJHdoaXRlLTIwOyB9XG4uYi0td2hpdGUtMTAgeyAgIGJvcmRlci1jb2xvcjogJHdoaXRlLTEwOyB9XG4uYi0td2hpdGUtMDUgeyAgIGJvcmRlci1jb2xvcjogJHdoaXRlLTA1OyB9XG4uYi0td2hpdGUtMDI1IHsgICBib3JkZXItY29sb3I6ICR3aGl0ZS0wMjU7IH1cbi5iLS13aGl0ZS0wMTI1IHsgICBib3JkZXItY29sb3I6ICR3aGl0ZS0wMTI1OyB9XG5cbi5iLS1ibGFjay05MCB7ICAgYm9yZGVyLWNvbG9yOiAkYmxhY2stOTA7IH1cbi5iLS1ibGFjay04MCB7ICAgYm9yZGVyLWNvbG9yOiAkYmxhY2stODA7IH1cbi5iLS1ibGFjay03MCB7ICAgYm9yZGVyLWNvbG9yOiAkYmxhY2stNzA7IH1cbi5iLS1ibGFjay02MCB7ICAgYm9yZGVyLWNvbG9yOiAkYmxhY2stNjA7IH1cbi5iLS1ibGFjay01MCB7ICAgYm9yZGVyLWNvbG9yOiAkYmxhY2stNTA7IH1cbi5iLS1ibGFjay00MCB7ICAgYm9yZGVyLWNvbG9yOiAkYmxhY2stNDA7IH1cbi5iLS1ibGFjay0zMCB7ICAgYm9yZGVyLWNvbG9yOiAkYmxhY2stMzA7IH1cbi5iLS1ibGFjay0yMCB7ICAgYm9yZGVyLWNvbG9yOiAkYmxhY2stMjA7IH1cbi5iLS1ibGFjay0xMCB7ICAgYm9yZGVyLWNvbG9yOiAkYmxhY2stMTA7IH1cbi5iLS1ibGFjay0wNSB7ICAgYm9yZGVyLWNvbG9yOiAkYmxhY2stMDU7IH1cbi5iLS1ibGFjay0wMjUgeyAgIGJvcmRlci1jb2xvcjogJGJsYWNrLTAyNTsgfVxuLmItLWJsYWNrLTAxMjUgeyAgIGJvcmRlci1jb2xvcjogJGJsYWNrLTAxMjU7IH1cblxuLmItLWRhcmstcmVkIHsgYm9yZGVyLWNvbG9yOiAkZGFyay1yZWQ7IH1cbi5iLS1yZWQgeyBib3JkZXItY29sb3I6ICRyZWQ7IH1cbi5iLS1saWdodC1yZWQgeyBib3JkZXItY29sb3I6ICRsaWdodC1yZWQ7IH1cbi5iLS1vcmFuZ2UgeyBib3JkZXItY29sb3I6ICRvcmFuZ2U7IH1cbi5iLS1nb2xkIHsgYm9yZGVyLWNvbG9yOiAkZ29sZDsgfVxuLmItLXllbGxvdyB7IGJvcmRlci1jb2xvcjogJHllbGxvdzsgfVxuLmItLWxpZ2h0LXllbGxvdyB7IGJvcmRlci1jb2xvcjogJGxpZ2h0LXllbGxvdzsgfVxuLmItLXB1cnBsZSB7IGJvcmRlci1jb2xvcjogJHB1cnBsZTsgfVxuLmItLWxpZ2h0LXB1cnBsZSB7IGJvcmRlci1jb2xvcjogJGxpZ2h0LXB1cnBsZTsgfVxuLmItLWRhcmstcGluayB7IGJvcmRlci1jb2xvcjogJGRhcmstcGluazsgfVxuLmItLWhvdC1waW5rIHsgYm9yZGVyLWNvbG9yOiAkaG90LXBpbms7IH1cbi5iLS1waW5rIHsgYm9yZGVyLWNvbG9yOiAkcGluazsgfVxuLmItLWxpZ2h0LXBpbmsgeyBib3JkZXItY29sb3I6ICRsaWdodC1waW5rOyB9XG4uYi0tZGFyay1ncmVlbiB7IGJvcmRlci1jb2xvcjogJGRhcmstZ3JlZW47IH1cbi5iLS1ncmVlbiB7IGJvcmRlci1jb2xvcjogJGdyZWVuOyB9XG4uYi0tbGlnaHQtZ3JlZW4geyBib3JkZXItY29sb3I6ICRsaWdodC1ncmVlbjsgfVxuLmItLW5hdnkgeyBib3JkZXItY29sb3I6ICRuYXZ5OyB9XG4uYi0tZGFyay1ibHVlIHsgYm9yZGVyLWNvbG9yOiAkZGFyay1ibHVlOyB9XG4uYi0tYmx1ZSB7IGJvcmRlci1jb2xvcjogJGJsdWU7IH1cbi5iLS1saWdodC1ibHVlIHsgYm9yZGVyLWNvbG9yOiAkbGlnaHQtYmx1ZTsgfVxuLmItLWxpZ2h0ZXN0LWJsdWUgeyBib3JkZXItY29sb3I6ICRsaWdodGVzdC1ibHVlOyB9XG4uYi0td2FzaGVkLWJsdWUgeyBib3JkZXItY29sb3I6ICR3YXNoZWQtYmx1ZTsgfVxuLmItLXdhc2hlZC1ncmVlbiB7IGJvcmRlci1jb2xvcjogJHdhc2hlZC1ncmVlbjsgfVxuLmItLXdhc2hlZC15ZWxsb3cgeyBib3JkZXItY29sb3I6ICR3YXNoZWQteWVsbG93OyB9XG4uYi0td2FzaGVkLXJlZCB7IGJvcmRlci1jb2xvcjogJHdhc2hlZC1yZWQ7IH1cblxuLmItLXRyYW5zcGFyZW50IHsgYm9yZGVyLWNvbG9yOiAkdHJhbnNwYXJlbnQ7IH1cbi5iLS1pbmhlcml0IHsgYm9yZGVyLWNvbG9yOiBpbmhlcml0OyB9XG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuJHNhbnMtc2VyaWY6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ2F2ZW5pciBuZXh0JywgYXZlbmlyLCBoZWx2ZXRpY2EsICdoZWx2ZXRpY2EgbmV1ZScsIHVidW50dSwgcm9ib3RvLCBub3RvLCAnc2Vnb2UgdWknLCBhcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRzZXJpZjogZ2VvcmdpYSwgc2VyaWYgIWRlZmF1bHQ7XG4kY29kZTogY29uc29sYXMsIG1vbmFjbywgbW9ub3NwYWNlICFkZWZhdWx0O1xuJGZvbnQtc2l6ZS1oZWFkbGluZTogNnJlbSAhZGVmYXVsdDtcbiRmb250LXNpemUtc3ViaGVhZGxpbmU6IDVyZW0gIWRlZmF1bHQ7XG4kZm9udC1zaXplLTE6IDNyZW0gIWRlZmF1bHQ7XG4kZm9udC1zaXplLTI6IDIuMjVyZW0gIWRlZmF1bHQ7XG4kZm9udC1zaXplLTM6IDEuNXJlbSAhZGVmYXVsdDtcbiRmb250LXNpemUtNDogMS4yNXJlbSAhZGVmYXVsdDtcbiRmb250LXNpemUtNTogMXJlbSAhZGVmYXVsdDtcbiRmb250LXNpemUtNjogLjg3NXJlbSAhZGVmYXVsdDtcbiRmb250LXNpemUtNzogLjc1cmVtICFkZWZhdWx0O1xuJGxldHRlci1zcGFjaW5nLXRpZ2h0OiAtLjA1ZW0gIWRlZmF1bHQ7XG4kbGV0dGVyLXNwYWNpbmctMTogLjFlbSAhZGVmYXVsdDtcbiRsZXR0ZXItc3BhY2luZy0yOiAuMjVlbSAhZGVmYXVsdDtcbiRsaW5lLWhlaWdodC1zb2xpZDogMSAhZGVmYXVsdDtcbiRsaW5lLWhlaWdodC10aXRsZTogMS4yNSAhZGVmYXVsdDtcbiRsaW5lLWhlaWdodC1jb3B5OiAxLjUgIWRlZmF1bHQ7XG4kbWVhc3VyZTogMzBlbSAhZGVmYXVsdDtcbiRtZWFzdXJlLW5hcnJvdzogMjBlbSAhZGVmYXVsdDtcbiRtZWFzdXJlLXdpZGU6IDM0ZW0gIWRlZmF1bHQ7XG4kc3BhY2luZy1ub25lOiAwICFkZWZhdWx0O1xuJHNwYWNpbmctZXh0cmEtc21hbGw6IC4yNXJlbSAhZGVmYXVsdDtcbiRzcGFjaW5nLXNtYWxsOiAuNXJlbSAhZGVmYXVsdDtcbiRzcGFjaW5nLW1lZGl1bTogMXJlbSAhZGVmYXVsdDtcbiRzcGFjaW5nLWxhcmdlOiAycmVtICFkZWZhdWx0O1xuJHNwYWNpbmctZXh0cmEtbGFyZ2U6IDRyZW0gIWRlZmF1bHQ7XG4kc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTogOHJlbSAhZGVmYXVsdDtcbiRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlOiAxNnJlbSAhZGVmYXVsdDtcbiRzcGFjaW5nLWNvcHktc2VwYXJhdG9yOiAxLjVlbSAhZGVmYXVsdDtcbiRoZWlnaHQtMTogMXJlbSAhZGVmYXVsdDtcbiRoZWlnaHQtMjogMnJlbSAhZGVmYXVsdDtcbiRoZWlnaHQtMzogNHJlbSAhZGVmYXVsdDtcbiRoZWlnaHQtNDogOHJlbSAhZGVmYXVsdDtcbiRoZWlnaHQtNTogMTZyZW0gIWRlZmF1bHQ7XG4kd2lkdGgtMTogMXJlbSAhZGVmYXVsdDtcbiR3aWR0aC0yOiAycmVtICFkZWZhdWx0O1xuJHdpZHRoLTM6IDRyZW0gIWRlZmF1bHQ7XG4kd2lkdGgtNDogOHJlbSAhZGVmYXVsdDtcbiR3aWR0aC01OiAxNnJlbSAhZGVmYXVsdDtcbiRtYXgtd2lkdGgtMTogMXJlbSAhZGVmYXVsdDtcbiRtYXgtd2lkdGgtMjogMnJlbSAhZGVmYXVsdDtcbiRtYXgtd2lkdGgtMzogNHJlbSAhZGVmYXVsdDtcbiRtYXgtd2lkdGgtNDogOHJlbSAhZGVmYXVsdDtcbiRtYXgtd2lkdGgtNTogMTZyZW0gIWRlZmF1bHQ7XG4kbWF4LXdpZHRoLTY6IDMycmVtICFkZWZhdWx0O1xuJG1heC13aWR0aC03OiA0OHJlbSAhZGVmYXVsdDtcbiRtYXgtd2lkdGgtODogNjRyZW0gIWRlZmF1bHQ7XG4kbWF4LXdpZHRoLTk6IDk2cmVtICFkZWZhdWx0O1xuJGJvcmRlci1yYWRpdXMtbm9uZTogMCAhZGVmYXVsdDtcbiRib3JkZXItcmFkaXVzLTE6IC4xMjVyZW0gIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1cy0yOiAuMjVyZW0gIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1cy0zOiAuNXJlbSAhZGVmYXVsdDtcbiRib3JkZXItcmFkaXVzLTQ6IDFyZW0gIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1cy1jaXJjbGU6IDEwMCUgIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1cy1waWxsOiA5OTk5cHggIWRlZmF1bHQ7XG4kYm9yZGVyLXdpZHRoLW5vbmU6IDAgIWRlZmF1bHQ7XG4kYm9yZGVyLXdpZHRoLTE6IC4xMjVyZW0gIWRlZmF1bHQ7XG4kYm9yZGVyLXdpZHRoLTI6IC4yNXJlbSAhZGVmYXVsdDtcbiRib3JkZXItd2lkdGgtMzogLjVyZW0gIWRlZmF1bHQ7XG4kYm9yZGVyLXdpZHRoLTQ6IDFyZW0gIWRlZmF1bHQ7XG4kYm9yZGVyLXdpZHRoLTU6IDJyZW0gIWRlZmF1bHQ7XG4kYm94LXNoYWRvdy0xOiAwcHggMHB4IDRweCAycHggcmdiYSggMCwgMCwgMCwgMC4yICkgIWRlZmF1bHQ7XG4kYm94LXNoYWRvdy0yOiAwcHggMHB4IDhweCAycHggcmdiYSggMCwgMCwgMCwgMC4yICkgIWRlZmF1bHQ7XG4kYm94LXNoYWRvdy0zOiAycHggMnB4IDRweCAycHggcmdiYSggMCwgMCwgMCwgMC4yICkgIWRlZmF1bHQ7XG4kYm94LXNoYWRvdy00OiAycHggMnB4IDhweCAwcHggcmdiYSggMCwgMCwgMCwgMC4yICkgIWRlZmF1bHQ7XG4kYm94LXNoYWRvdy01OiA0cHggNHB4IDhweCAwcHggcmdiYSggMCwgMCwgMCwgMC4yICkgIWRlZmF1bHQ7XG4kYmxhY2s6ICMwMDAgIWRlZmF1bHQ7XG4kbmVhci1ibGFjazogIzExMSAhZGVmYXVsdDtcbiRkYXJrLWdyYXk6ICMzMzMgIWRlZmF1bHQ7XG4kbWlkLWdyYXk6ICM1NTUgIWRlZmF1bHQ7XG4kZ3JheTogIzc3NyAhZGVmYXVsdDtcbiRzaWx2ZXI6ICM5OTkgIWRlZmF1bHQ7XG4kbGlnaHQtc2lsdmVyOiAjYWFhICFkZWZhdWx0O1xuJG1vb24tZ3JheTogI2NjYyAhZGVmYXVsdDtcbiRsaWdodC1ncmF5OiAjZWVlICFkZWZhdWx0O1xuJG5lYXItd2hpdGU6ICNmNGY0ZjQgIWRlZmF1bHQ7XG4kd2hpdGU6ICNmZmYgIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJsYWNrLTkwOiByZ2JhKDAsMCwwLC45KSAhZGVmYXVsdDtcbiRibGFjay04MDogcmdiYSgwLDAsMCwuOCkgIWRlZmF1bHQ7XG4kYmxhY2stNzA6IHJnYmEoMCwwLDAsLjcpICFkZWZhdWx0O1xuJGJsYWNrLTYwOiByZ2JhKDAsMCwwLC42KSAhZGVmYXVsdDtcbiRibGFjay01MDogcmdiYSgwLDAsMCwuNSkgIWRlZmF1bHQ7XG4kYmxhY2stNDA6IHJnYmEoMCwwLDAsLjQpICFkZWZhdWx0O1xuJGJsYWNrLTMwOiByZ2JhKDAsMCwwLC4zKSAhZGVmYXVsdDtcbiRibGFjay0yMDogcmdiYSgwLDAsMCwuMikgIWRlZmF1bHQ7XG4kYmxhY2stMTA6IHJnYmEoMCwwLDAsLjEpICFkZWZhdWx0O1xuJGJsYWNrLTA1OiByZ2JhKDAsMCwwLC4wNSkgIWRlZmF1bHQ7XG4kYmxhY2stMDI1OiByZ2JhKDAsMCwwLC4wMjUpICFkZWZhdWx0O1xuJGJsYWNrLTAxMjU6IHJnYmEoMCwwLDAsLjAxMjUpICFkZWZhdWx0O1xuJHdoaXRlLTkwOiByZ2JhKDI1NSwyNTUsMjU1LC45KSAhZGVmYXVsdDtcbiR3aGl0ZS04MDogcmdiYSgyNTUsMjU1LDI1NSwuOCkgIWRlZmF1bHQ7XG4kd2hpdGUtNzA6IHJnYmEoMjU1LDI1NSwyNTUsLjcpICFkZWZhdWx0O1xuJHdoaXRlLTYwOiByZ2JhKDI1NSwyNTUsMjU1LC42KSAhZGVmYXVsdDtcbiR3aGl0ZS01MDogcmdiYSgyNTUsMjU1LDI1NSwuNSkgIWRlZmF1bHQ7XG4kd2hpdGUtNDA6IHJnYmEoMjU1LDI1NSwyNTUsLjQpICFkZWZhdWx0O1xuJHdoaXRlLTMwOiByZ2JhKDI1NSwyNTUsMjU1LC4zKSAhZGVmYXVsdDtcbiR3aGl0ZS0yMDogcmdiYSgyNTUsMjU1LDI1NSwuMikgIWRlZmF1bHQ7XG4kd2hpdGUtMTA6IHJnYmEoMjU1LDI1NSwyNTUsLjEpICFkZWZhdWx0O1xuJHdoaXRlLTA1OiByZ2JhKDI1NSwyNTUsMjU1LC4wNSkgIWRlZmF1bHQ7XG4kd2hpdGUtMDI1OiByZ2JhKDI1NSwyNTUsMjU1LC4wMjUpICFkZWZhdWx0O1xuJHdoaXRlLTAxMjU6IHJnYmEoMjU1LDI1NSwyNTUsLjAxMjUpICFkZWZhdWx0O1xuJGRhcmstcmVkOiAjZTcwNDBmICFkZWZhdWx0O1xuJHJlZDogI2ZmNDEzNiAhZGVmYXVsdDtcbiRsaWdodC1yZWQ6ICNmZjcyNWMgIWRlZmF1bHQ7XG4kb3JhbmdlOiAjZmY2MzAwICFkZWZhdWx0O1xuJGdvbGQ6ICNmZmI3MDAgIWRlZmF1bHQ7XG4keWVsbG93OiAjZmZkNzAwICFkZWZhdWx0O1xuJGxpZ2h0LXllbGxvdzogI2ZiZjFhOSAhZGVmYXVsdDtcbiRwdXJwbGU6ICM1ZTJjYTUgIWRlZmF1bHQ7XG4kbGlnaHQtcHVycGxlOiAjYTQ2M2YyICFkZWZhdWx0O1xuJGRhcmstcGluazogI2Q1MDA4ZiAhZGVmYXVsdDtcbiRob3QtcGluazogI2ZmNDFiNCAhZGVmYXVsdDtcbiRwaW5rOiAjZmY4MGNjICFkZWZhdWx0O1xuJGxpZ2h0LXBpbms6ICNmZmEzZDcgIWRlZmF1bHQ7XG4kZGFyay1ncmVlbjogIzEzNzc1MiAhZGVmYXVsdDtcbiRncmVlbjogIzE5YTk3NCAhZGVmYXVsdDtcbiRsaWdodC1ncmVlbjogIzllZWJjZiAhZGVmYXVsdDtcbiRuYXZ5OiAjMDAxYjQ0ICFkZWZhdWx0O1xuJGRhcmstYmx1ZTogIzAwNDQ5ZSAhZGVmYXVsdDtcbiRibHVlOiAjMzU3ZWRkICFkZWZhdWx0O1xuJGxpZ2h0LWJsdWU6ICM5NmNjZmYgIWRlZmF1bHQ7XG4kbGlnaHRlc3QtYmx1ZTogI2NkZWNmZiAhZGVmYXVsdDtcbiR3YXNoZWQtYmx1ZTogI2Y2ZmZmZSAhZGVmYXVsdDtcbiR3YXNoZWQtZ3JlZW46ICNlOGZkZjUgIWRlZmF1bHQ7XG4kd2FzaGVkLXllbGxvdzogI2ZmZmNlYiAhZGVmYXVsdDtcbiR3YXNoZWQtcmVkOiAjZmZkZmRmICFkZWZhdWx0O1xuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cbiRicmVha3BvaW50LW5vdC1zbWFsbDogJ3NjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSknICFkZWZhdWx0O1xuJGJyZWFrcG9pbnQtbWVkaXVtOiAnc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSBhbmQgKG1heC13aWR0aDogNjBlbSknICFkZWZhdWx0O1xuJGJyZWFrcG9pbnQtbGFyZ2U6ICdzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pJyAhZGVmYXVsdDtcblxuLypcblxuICAgIFZBUklBQkxFU1xuXG4qL1xuIiwiXG4vLyBDb252ZXJ0ZWQgVmFyaWFibGVzXG5cblxuLy8gQ3VzdG9tIE1lZGlhIFF1ZXJ5IFZhcmlhYmxlc1xuXG5cbi8qXG5cbiAgIEJPUkRFUiBSQURJVVNcbiAgIERvY3M6IGh0dHA6Ly90YWNoeW9ucy5pby9kb2NzL3RoZW1lcy9ib3JkZXItcmFkaXVzL1xuXG4gICBCYXNlOlxuICAgICBiciAgID0gYm9yZGVyLXJhZGl1c1xuXG4gICBNb2RpZmllcnM6XG4gICAgIDAgICAgPSAwL25vbmVcbiAgICAgMSAgICA9IDFzdCBzdGVwIGluIHNjYWxlXG4gICAgIDIgICAgPSAybmQgc3RlcCBpbiBzY2FsZVxuICAgICAzICAgID0gM3JkIHN0ZXAgaW4gc2NhbGVcbiAgICAgNCAgICA9IDR0aCBzdGVwIGluIHNjYWxlXG5cbiAgIExpdGVyYWwgdmFsdWVzOlxuICAgICAtMTAwID0gMTAwJVxuICAgICAtcGlsbCA9IDk5OTlweFxuXG4gICBNZWRpYSBRdWVyeSBFeHRlbnNpb25zOlxuICAgICAtbnMgPSBub3Qtc21hbGxcbiAgICAgLW0gID0gbWVkaXVtXG4gICAgIC1sICA9IGxhcmdlXG5cbiovXG5cbiAgLmJyMCB7ICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1ub25lIH1cbiAgLmJyMSB7ICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy0xOyB9XG4gIC5icjIgeyAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtMjsgfVxuICAuYnIzIHsgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLTM7IH1cbiAgLmJyNCB7ICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy00OyB9XG4gIC5ici0xMDAgeyAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtY2lyY2xlOyB9XG4gIC5ici1waWxsIHsgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtcGlsbDsgfVxuICAuYnItLWJvdHRvbSB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIH1cbiAgLmJyLS10b3Age1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICB9XG4gIC5ici0tcmlnaHQge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIH1cbiAgLmJyLS1sZWZ0IHtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIH1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbm90LXNtYWxsfSB7XG4gIC5icjAtbnMgeyAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbm9uZSB9XG4gIC5icjEtbnMgeyAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtMTsgfVxuICAuYnIyLW5zIHsgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLTI7IH1cbiAgLmJyMy1ucyB7ICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy0zOyB9XG4gIC5icjQtbnMgeyAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtNDsgfVxuICAuYnItMTAwLW5zIHsgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWNpcmNsZTsgfVxuICAuYnItcGlsbC1ucyB7IGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXBpbGw7IH1cbiAgLmJyLS1ib3R0b20tbnMge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICB9XG4gIC5ici0tdG9wLW5zIHtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgfVxuICAuYnItLXJpZ2h0LW5zIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICB9XG4gIC5ici0tbGVmdC1ucyB7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW1lZGl1bX0ge1xuICAuYnIwLW0geyAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbm9uZSB9XG4gIC5icjEtbSB7ICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy0xOyB9XG4gIC5icjItbSB7ICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy0yOyB9XG4gIC5icjMtbSB7ICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy0zOyB9XG4gIC5icjQtbSB7ICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy00OyB9XG4gIC5ici0xMDAtbSB7ICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1jaXJjbGU7IH1cbiAgLmJyLXBpbGwtbSB7IGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXBpbGw7IH1cbiAgLmJyLS1ib3R0b20tbSB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIH1cbiAgLmJyLS10b3AtbSB7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIH1cbiAgLmJyLS1yaWdodC1tIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICB9XG4gIC5ici0tbGVmdC1tIHtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbGFyZ2V9IHtcbiAgLmJyMC1sIHsgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLW5vbmUgfVxuICAuYnIxLWwgeyAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtMTsgfVxuICAuYnIyLWwgeyAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtMjsgfVxuICAuYnIzLWwgeyAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtMzsgfVxuICAuYnI0LWwgeyAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtNDsgfVxuICAuYnItMTAwLWwgeyAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtY2lyY2xlOyB9XG4gIC5ici1waWxsLWwgeyBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1waWxsOyB9XG4gIC5ici0tYm90dG9tLWwge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICB9XG4gIC5ici0tdG9wLWwge1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICB9XG4gIC5ici0tcmlnaHQtbCB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgfVxuICAuYnItLWxlZnQtbCB7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICB9XG59XG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLypcblxuICAgQk9SREVSIFNUWUxFU1xuICAgRG9jczogaHR0cDovL3RhY2h5b25zLmlvL2RvY3MvdGhlbWVzL2JvcmRlcnMvXG5cbiAgIERlcGVuZHMgb24gYmFzZSBib3JkZXIgbW9kdWxlIGluIF9ib3JkZXJzLmNzc1xuXG4gICBCYXNlOlxuICAgICBiID0gYm9yZGVyLXN0eWxlXG5cbiAgIE1vZGlmaWVyczpcbiAgICAgLS1ub25lICAgPSBub25lXG4gICAgIC0tZG90dGVkID0gZG90dGVkXG4gICAgIC0tZGFzaGVkID0gZGFzaGVkXG4gICAgIC0tc29saWQgID0gc29saWRcblxuICAgTWVkaWEgUXVlcnkgRXh0ZW5zaW9uczpcbiAgICAgLW5zID0gbm90LXNtYWxsXG4gICAgIC1tICA9IG1lZGl1bVxuICAgICAtbCAgPSBsYXJnZVxuXG4gKi9cblxuLmItLWRvdHRlZCB7IGJvcmRlci1zdHlsZTogZG90dGVkOyB9XG4uYi0tZGFzaGVkIHsgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7IH1cbi5iLS1zb2xpZCB7ICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG4uYi0tbm9uZSB7ICAgYm9yZGVyLXN0eWxlOiBub25lOyB9XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW5vdC1zbWFsbH0ge1xuICAuYi0tZG90dGVkLW5zIHsgYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IH1cbiAgLmItLWRhc2hlZC1ucyB7IGJvcmRlci1zdHlsZTogZGFzaGVkOyB9XG4gIC5iLS1zb2xpZC1ucyB7ICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG4gIC5iLS1ub25lLW5zIHsgICBib3JkZXItc3R5bGU6IG5vbmU7IH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbWVkaXVtfSB7XG4gIC5iLS1kb3R0ZWQtbSB7IGJvcmRlci1zdHlsZTogZG90dGVkOyB9XG4gIC5iLS1kYXNoZWQtbSB7IGJvcmRlci1zdHlsZTogZGFzaGVkOyB9XG4gIC5iLS1zb2xpZC1tIHsgIGJvcmRlci1zdHlsZTogc29saWQ7IH1cbiAgLmItLW5vbmUtbSB7ICAgYm9yZGVyLXN0eWxlOiBub25lOyB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LWxhcmdlfSB7XG4gIC5iLS1kb3R0ZWQtbCB7IGJvcmRlci1zdHlsZTogZG90dGVkOyB9XG4gIC5iLS1kYXNoZWQtbCB7IGJvcmRlci1zdHlsZTogZGFzaGVkOyB9XG4gIC5iLS1zb2xpZC1sIHsgIGJvcmRlci1zdHlsZTogc29saWQ7IH1cbiAgLmItLW5vbmUtbCB7ICAgYm9yZGVyLXN0eWxlOiBub25lOyB9XG59XG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLypcblxuICAgQk9SREVSIFdJRFRIU1xuICAgRG9jczogaHR0cDovL3RhY2h5b25zLmlvL2RvY3MvdGhlbWVzL2JvcmRlcnMvXG5cbiAgIEJhc2U6XG4gICAgIGJ3ID0gYm9yZGVyLXdpZHRoXG5cbiAgIE1vZGlmaWVyczpcbiAgICAgMCA9IDAgd2lkdGggYm9yZGVyXG4gICAgIDEgPSAxc3Qgc3RlcCBpbiBib3JkZXItd2lkdGggc2NhbGVcbiAgICAgMiA9IDJuZCBzdGVwIGluIGJvcmRlci13aWR0aCBzY2FsZVxuICAgICAzID0gM3JkIHN0ZXAgaW4gYm9yZGVyLXdpZHRoIHNjYWxlXG4gICAgIDQgPSA0dGggc3RlcCBpbiBib3JkZXItd2lkdGggc2NhbGVcbiAgICAgNSA9IDV0aCBzdGVwIGluIGJvcmRlci13aWR0aCBzY2FsZVxuXG4gICBNZWRpYSBRdWVyeSBFeHRlbnNpb25zOlxuICAgICAtbnMgPSBub3Qtc21hbGxcbiAgICAgLW0gID0gbWVkaXVtXG4gICAgIC1sICA9IGxhcmdlXG5cbiovXG5cbi5idzAgeyBib3JkZXItd2lkdGg6ICRib3JkZXItd2lkdGgtbm9uZTsgfVxuLmJ3MSB7IGJvcmRlci13aWR0aDogJGJvcmRlci13aWR0aC0xOyB9XG4uYncyIHsgYm9yZGVyLXdpZHRoOiAkYm9yZGVyLXdpZHRoLTI7IH1cbi5idzMgeyBib3JkZXItd2lkdGg6ICRib3JkZXItd2lkdGgtMzsgfVxuLmJ3NCB7IGJvcmRlci13aWR0aDogJGJvcmRlci13aWR0aC00OyB9XG4uYnc1IHsgYm9yZGVyLXdpZHRoOiAkYm9yZGVyLXdpZHRoLTU7IH1cblxuLyogUmVzZXRzICovXG4uYnQtMCB7IGJvcmRlci10b3Atd2lkdGg6ICRib3JkZXItd2lkdGgtbm9uZSB9XG4uYnItMCB7IGJvcmRlci1yaWdodC13aWR0aDogJGJvcmRlci13aWR0aC1ub25lIH1cbi5iYi0wIHsgYm9yZGVyLWJvdHRvbS13aWR0aDogJGJvcmRlci13aWR0aC1ub25lIH1cbi5ibC0wIHsgYm9yZGVyLWxlZnQtd2lkdGg6ICRib3JkZXItd2lkdGgtbm9uZSB9XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW5vdC1zbWFsbH0ge1xuICAuYncwLW5zIHsgYm9yZGVyLXdpZHRoOiAkYm9yZGVyLXdpZHRoLW5vbmU7IH1cbiAgLmJ3MS1ucyB7IGJvcmRlci13aWR0aDogJGJvcmRlci13aWR0aC0xOyB9XG4gIC5idzItbnMgeyBib3JkZXItd2lkdGg6ICRib3JkZXItd2lkdGgtMjsgfVxuICAuYnczLW5zIHsgYm9yZGVyLXdpZHRoOiAkYm9yZGVyLXdpZHRoLTM7IH1cbiAgLmJ3NC1ucyB7IGJvcmRlci13aWR0aDogJGJvcmRlci13aWR0aC00OyB9XG4gIC5idzUtbnMgeyBib3JkZXItd2lkdGg6ICRib3JkZXItd2lkdGgtNTsgfVxuICAuYnQtMC1ucyB7IGJvcmRlci10b3Atd2lkdGg6ICRib3JkZXItd2lkdGgtbm9uZSB9XG4gIC5ici0wLW5zIHsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAkYm9yZGVyLXdpZHRoLW5vbmUgfVxuICAuYmItMC1ucyB7IGJvcmRlci1ib3R0b20td2lkdGg6ICRib3JkZXItd2lkdGgtbm9uZSB9XG4gIC5ibC0wLW5zIHsgYm9yZGVyLWxlZnQtd2lkdGg6ICRib3JkZXItd2lkdGgtbm9uZSB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW1lZGl1bX0ge1xuICAuYncwLW0geyBib3JkZXItd2lkdGg6ICRib3JkZXItd2lkdGgtbm9uZTsgfVxuICAuYncxLW0geyBib3JkZXItd2lkdGg6ICRib3JkZXItd2lkdGgtMTsgfVxuICAuYncyLW0geyBib3JkZXItd2lkdGg6ICRib3JkZXItd2lkdGgtMjsgfVxuICAuYnczLW0geyBib3JkZXItd2lkdGg6ICRib3JkZXItd2lkdGgtMzsgfVxuICAuYnc0LW0geyBib3JkZXItd2lkdGg6ICRib3JkZXItd2lkdGgtNDsgfVxuICAuYnc1LW0geyBib3JkZXItd2lkdGg6ICRib3JkZXItd2lkdGgtNTsgfVxuICAuYnQtMC1tIHsgYm9yZGVyLXRvcC13aWR0aDogJGJvcmRlci13aWR0aC1ub25lIH1cbiAgLmJyLTAtbSB7IGJvcmRlci1yaWdodC13aWR0aDogJGJvcmRlci13aWR0aC1ub25lIH1cbiAgLmJiLTAtbSB7IGJvcmRlci1ib3R0b20td2lkdGg6ICRib3JkZXItd2lkdGgtbm9uZSB9XG4gIC5ibC0wLW0geyBib3JkZXItbGVmdC13aWR0aDogJGJvcmRlci13aWR0aC1ub25lIH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbGFyZ2V9IHtcbiAgLmJ3MC1sIHsgYm9yZGVyLXdpZHRoOiAkYm9yZGVyLXdpZHRoLW5vbmU7IH1cbiAgLmJ3MS1sIHsgYm9yZGVyLXdpZHRoOiAkYm9yZGVyLXdpZHRoLTE7IH1cbiAgLmJ3Mi1sIHsgYm9yZGVyLXdpZHRoOiAkYm9yZGVyLXdpZHRoLTI7IH1cbiAgLmJ3My1sIHsgYm9yZGVyLXdpZHRoOiAkYm9yZGVyLXdpZHRoLTM7IH1cbiAgLmJ3NC1sIHsgYm9yZGVyLXdpZHRoOiAkYm9yZGVyLXdpZHRoLTQ7IH1cbiAgLmJ3NS1sIHsgYm9yZGVyLXdpZHRoOiAkYm9yZGVyLXdpZHRoLTU7IH1cbiAgLmJ0LTAtbCB7IGJvcmRlci10b3Atd2lkdGg6ICRib3JkZXItd2lkdGgtbm9uZSB9XG4gIC5ici0wLWwgeyBib3JkZXItcmlnaHQtd2lkdGg6ICRib3JkZXItd2lkdGgtbm9uZSB9XG4gIC5iYi0wLWwgeyBib3JkZXItYm90dG9tLXdpZHRoOiAkYm9yZGVyLXdpZHRoLW5vbmUgfVxuICAuYmwtMC1sIHsgYm9yZGVyLWxlZnQtd2lkdGg6ICRib3JkZXItd2lkdGgtbm9uZSB9XG59XG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLypcblxuICBCT1gtU0hBRE9XXG4gIERvY3M6IGh0dHA6Ly90YWNoeW9ucy5pby9kb2NzL3RoZW1lcy9ib3gtc2hhZG93L1xuXG4gIE1lZGlhIFF1ZXJ5IEV4dGVuc2lvbnM6XG4gICAtbnMgPSBub3Qtc21hbGxcbiAgIC1tICA9IG1lZGl1bVxuICAgLWwgID0gbGFyZ2VcblxuICovXG5cbi5zaGFkb3ctMSB7IGJveC1zaGFkb3c6ICRib3gtc2hhZG93LTE7IH1cbi5zaGFkb3ctMiB7IGJveC1zaGFkb3c6ICRib3gtc2hhZG93LTI7IH1cbi5zaGFkb3ctMyB7IGJveC1zaGFkb3c6ICRib3gtc2hhZG93LTM7IH1cbi5zaGFkb3ctNCB7IGJveC1zaGFkb3c6ICRib3gtc2hhZG93LTQ7IH1cbi5zaGFkb3ctNSB7IGJveC1zaGFkb3c6ICRib3gtc2hhZG93LTU7IH1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbm90LXNtYWxsfSB7XG4gIC5zaGFkb3ctMS1ucyB7IGJveC1zaGFkb3c6ICRib3gtc2hhZG93LTE7IH1cbiAgLnNoYWRvdy0yLW5zIHsgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctMjsgfVxuICAuc2hhZG93LTMtbnMgeyBib3gtc2hhZG93OiAkYm94LXNoYWRvdy0zOyB9XG4gIC5zaGFkb3ctNC1ucyB7IGJveC1zaGFkb3c6ICRib3gtc2hhZG93LTQ7IH1cbiAgLnNoYWRvdy01LW5zIHsgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctNTsgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1tZWRpdW19IHtcbiAgLnNoYWRvdy0xLW0geyBib3gtc2hhZG93OiAkYm94LXNoYWRvdy0xOyB9XG4gIC5zaGFkb3ctMi1tIHsgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctMjsgfVxuICAuc2hhZG93LTMtbSB7IGJveC1zaGFkb3c6ICRib3gtc2hhZG93LTM7IH1cbiAgLnNoYWRvdy00LW0geyBib3gtc2hhZG93OiAkYm94LXNoYWRvdy00OyB9XG4gIC5zaGFkb3ctNS1tIHsgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctNTsgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1sYXJnZX0ge1xuICAuc2hhZG93LTEtbCB7IGJveC1zaGFkb3c6ICRib3gtc2hhZG93LTE7IH1cbiAgLnNoYWRvdy0yLWwgeyBib3gtc2hhZG93OiAkYm94LXNoYWRvdy0yOyB9XG4gIC5zaGFkb3ctMy1sIHsgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctMzsgfVxuICAuc2hhZG93LTQtbCB7IGJveC1zaGFkb3c6ICRib3gtc2hhZG93LTQ7IH1cbiAgLnNoYWRvdy01LWwgeyBib3gtc2hhZG93OiAkYm94LXNoYWRvdy01OyB9XG59XG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLypcblxuICAgQ09ERVxuXG4qL1xuXG4ucHJlIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdzogICBzY3JvbGw7XG59XG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLypcblxuICAgQ09PUkRJTkFURVNcbiAgIERvY3M6IGh0dHA6Ly90YWNoeW9ucy5pby9kb2NzL2xheW91dC9wb3NpdGlvbi9cblxuICAgVXNlIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIHBvc2l0aW9uIG1vZHVsZS5cblxuICAgQmFzZTpcbiAgICAgdG9wXG4gICAgIGJvdHRvbVxuICAgICByaWdodFxuICAgICBsZWZ0XG5cbiAgIE1vZGlmaWVyczpcbiAgICAgLTAgID0gbGl0ZXJhbCB2YWx1ZSAwXG4gICAgIC0xICA9IGxpdGVyYWwgdmFsdWUgMVxuICAgICAtMiAgPSBsaXRlcmFsIHZhbHVlIDJcbiAgICAgLS0xID0gbGl0ZXJhbCB2YWx1ZSAtMVxuICAgICAtLTIgPSBsaXRlcmFsIHZhbHVlIC0yXG5cbiAgIE1lZGlhIFF1ZXJ5IEV4dGVuc2lvbnM6XG4gICAgIC1ucyA9IG5vdC1zbWFsbFxuICAgICAtbSAgPSBtZWRpdW1cbiAgICAgLWwgID0gbGFyZ2VcblxuKi9cblxuLnRvcC0wICAgIHsgdG9wOiAgICAwOyB9XG4ucmlnaHQtMCAgeyByaWdodDogIDA7IH1cbi5ib3R0b20tMCB7IGJvdHRvbTogMDsgfVxuLmxlZnQtMCAgIHsgbGVmdDogICAwOyB9XG5cbi50b3AtMSAgICB7IHRvcDogICAgMXJlbTsgfVxuLnJpZ2h0LTEgIHsgcmlnaHQ6ICAxcmVtOyB9XG4uYm90dG9tLTEgeyBib3R0b206IDFyZW07IH1cbi5sZWZ0LTEgICB7IGxlZnQ6ICAgMXJlbTsgfVxuXG4udG9wLTIgICAgeyB0b3A6ICAgIDJyZW07IH1cbi5yaWdodC0yICB7IHJpZ2h0OiAgMnJlbTsgfVxuLmJvdHRvbS0yIHsgYm90dG9tOiAycmVtOyB9XG4ubGVmdC0yICAgeyBsZWZ0OiAgIDJyZW07IH1cblxuLnRvcC0tMSAgICB7IHRvcDogICAgLTFyZW07IH1cbi5yaWdodC0tMSAgeyByaWdodDogIC0xcmVtOyB9XG4uYm90dG9tLS0xIHsgYm90dG9tOiAtMXJlbTsgfVxuLmxlZnQtLTEgICB7IGxlZnQ6ICAgLTFyZW07IH1cblxuLnRvcC0tMiAgICB7IHRvcDogICAgLTJyZW07IH1cbi5yaWdodC0tMiAgeyByaWdodDogIC0ycmVtOyB9XG4uYm90dG9tLS0yIHsgYm90dG9tOiAtMnJlbTsgfVxuLmxlZnQtLTIgICB7IGxlZnQ6ICAgLTJyZW07IH1cblxuXG4uYWJzb2x1dGUtLWZpbGwge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW5vdC1zbWFsbH0ge1xuICAudG9wLTAtbnMgICAgIHsgdG9wOiAgIDA7IH1cbiAgLmxlZnQtMC1ucyAgICB7IGxlZnQ6ICAwOyB9XG4gIC5yaWdodC0wLW5zICAgeyByaWdodDogMDsgfVxuICAuYm90dG9tLTAtbnMgIHsgYm90dG9tOiAwOyB9XG4gIC50b3AtMS1ucyAgICAgeyB0b3A6ICAgMXJlbTsgfVxuICAubGVmdC0xLW5zICAgIHsgbGVmdDogIDFyZW07IH1cbiAgLnJpZ2h0LTEtbnMgICB7IHJpZ2h0OiAxcmVtOyB9XG4gIC5ib3R0b20tMS1ucyAgeyBib3R0b206IDFyZW07IH1cbiAgLnRvcC0yLW5zICAgICB7IHRvcDogICAycmVtOyB9XG4gIC5sZWZ0LTItbnMgICAgeyBsZWZ0OiAgMnJlbTsgfVxuICAucmlnaHQtMi1ucyAgIHsgcmlnaHQ6IDJyZW07IH1cbiAgLmJvdHRvbS0yLW5zICB7IGJvdHRvbTogMnJlbTsgfVxuICAudG9wLS0xLW5zICAgIHsgdG9wOiAgICAtMXJlbTsgfVxuICAucmlnaHQtLTEtbnMgIHsgcmlnaHQ6ICAtMXJlbTsgfVxuICAuYm90dG9tLS0xLW5zIHsgYm90dG9tOiAtMXJlbTsgfVxuICAubGVmdC0tMS1ucyAgIHsgbGVmdDogICAtMXJlbTsgfVxuICAudG9wLS0yLW5zICAgIHsgdG9wOiAgICAtMnJlbTsgfVxuICAucmlnaHQtLTItbnMgIHsgcmlnaHQ6ICAtMnJlbTsgfVxuICAuYm90dG9tLS0yLW5zIHsgYm90dG9tOiAtMnJlbTsgfVxuICAubGVmdC0tMi1ucyAgIHsgbGVmdDogICAtMnJlbTsgfVxuICAuYWJzb2x1dGUtLWZpbGwtbnMge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1tZWRpdW19IHtcbiAgLnRvcC0wLW0gICAgIHsgdG9wOiAgIDA7IH1cbiAgLmxlZnQtMC1tICAgIHsgbGVmdDogIDA7IH1cbiAgLnJpZ2h0LTAtbSAgIHsgcmlnaHQ6IDA7IH1cbiAgLmJvdHRvbS0wLW0gIHsgYm90dG9tOiAwOyB9XG4gIC50b3AtMS1tICAgICB7IHRvcDogICAxcmVtOyB9XG4gIC5sZWZ0LTEtbSAgICB7IGxlZnQ6ICAxcmVtOyB9XG4gIC5yaWdodC0xLW0gICB7IHJpZ2h0OiAxcmVtOyB9XG4gIC5ib3R0b20tMS1tICB7IGJvdHRvbTogMXJlbTsgfVxuICAudG9wLTItbSAgICAgeyB0b3A6ICAgMnJlbTsgfVxuICAubGVmdC0yLW0gICAgeyBsZWZ0OiAgMnJlbTsgfVxuICAucmlnaHQtMi1tICAgeyByaWdodDogMnJlbTsgfVxuICAuYm90dG9tLTItbSAgeyBib3R0b206IDJyZW07IH1cbiAgLnRvcC0tMS1tICAgIHsgdG9wOiAgICAtMXJlbTsgfVxuICAucmlnaHQtLTEtbSAgeyByaWdodDogIC0xcmVtOyB9XG4gIC5ib3R0b20tLTEtbSB7IGJvdHRvbTogLTFyZW07IH1cbiAgLmxlZnQtLTEtbSAgIHsgbGVmdDogICAtMXJlbTsgfVxuICAudG9wLS0yLW0gICAgeyB0b3A6ICAgIC0ycmVtOyB9XG4gIC5yaWdodC0tMi1tICB7IHJpZ2h0OiAgLTJyZW07IH1cbiAgLmJvdHRvbS0tMi1tIHsgYm90dG9tOiAtMnJlbTsgfVxuICAubGVmdC0tMi1tICAgeyBsZWZ0OiAgIC0ycmVtOyB9XG4gIC5hYnNvbHV0ZS0tZmlsbC1tIHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gIH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbGFyZ2V9IHtcbiAgLnRvcC0wLWwgICAgIHsgdG9wOiAgIDA7IH1cbiAgLmxlZnQtMC1sICAgIHsgbGVmdDogIDA7IH1cbiAgLnJpZ2h0LTAtbCAgIHsgcmlnaHQ6IDA7IH1cbiAgLmJvdHRvbS0wLWwgIHsgYm90dG9tOiAwOyB9XG4gIC50b3AtMS1sICAgICB7IHRvcDogICAxcmVtOyB9XG4gIC5sZWZ0LTEtbCAgICB7IGxlZnQ6ICAxcmVtOyB9XG4gIC5yaWdodC0xLWwgICB7IHJpZ2h0OiAxcmVtOyB9XG4gIC5ib3R0b20tMS1sICB7IGJvdHRvbTogMXJlbTsgfVxuICAudG9wLTItbCAgICAgeyB0b3A6ICAgMnJlbTsgfVxuICAubGVmdC0yLWwgICAgeyBsZWZ0OiAgMnJlbTsgfVxuICAucmlnaHQtMi1sICAgeyByaWdodDogMnJlbTsgfVxuICAuYm90dG9tLTItbCAgeyBib3R0b206IDJyZW07IH1cbiAgLnRvcC0tMS1sICAgIHsgdG9wOiAgICAtMXJlbTsgfVxuICAucmlnaHQtLTEtbCAgeyByaWdodDogIC0xcmVtOyB9XG4gIC5ib3R0b20tLTEtbCB7IGJvdHRvbTogLTFyZW07IH1cbiAgLmxlZnQtLTEtbCAgIHsgbGVmdDogICAtMXJlbTsgfVxuICAudG9wLS0yLWwgICAgeyB0b3A6ICAgIC0ycmVtOyB9XG4gIC5yaWdodC0tMi1sICB7IHJpZ2h0OiAgLTJyZW07IH1cbiAgLmJvdHRvbS0tMi1sIHsgYm90dG9tOiAtMnJlbTsgfVxuICAubGVmdC0tMi1sICAgeyBsZWZ0OiAgIC0ycmVtOyB9XG4gIC5hYnNvbHV0ZS0tZmlsbC1sIHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gIH1cbn1cbiIsIlxuLy8gQ29udmVydGVkIFZhcmlhYmxlc1xuXG5cbi8vIEN1c3RvbSBNZWRpYSBRdWVyeSBWYXJpYWJsZXNcblxuXG4vKlxuXG4gICBDTEVBUkZJWFxuICAgaHR0cDovL3RhY2h5b25zLmlvL2RvY3MvbGF5b3V0L2NsZWFyZml4L1xuXG4qL1xuXG4vKiBOaWNvbGFzIEdhbGxhZ2hlcnMgQ2xlYXJmaXggc29sdXRpb25cbiAgIFJlZjogaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svICovXG5cbi5jZjpiZWZvcmUsXG4uY2Y6YWZ0ZXIgeyBjb250ZW50OiBcIiBcIjsgZGlzcGxheTogdGFibGU7IH1cbi5jZjphZnRlciB7IGNsZWFyOiBib3RoOyB9XG4uY2YgeyAgICAgICAqem9vbTogMTsgfVxuXG4uY2wgeyBjbGVhcjogbGVmdDsgfVxuLmNyIHsgY2xlYXI6IHJpZ2h0OyB9XG4uY2IgeyBjbGVhcjogYm90aDsgfVxuLmNuIHsgY2xlYXI6IG5vbmU7IH1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbm90LXNtYWxsfSB7XG4gIC5jbC1ucyB7IGNsZWFyOiBsZWZ0OyB9XG4gIC5jci1ucyB7IGNsZWFyOiByaWdodDsgfVxuICAuY2ItbnMgeyBjbGVhcjogYm90aDsgfVxuICAuY24tbnMgeyBjbGVhcjogbm9uZTsgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1tZWRpdW19IHtcbiAgLmNsLW0geyBjbGVhcjogbGVmdDsgfVxuICAuY3ItbSB7IGNsZWFyOiByaWdodDsgfVxuICAuY2ItbSB7IGNsZWFyOiBib3RoOyB9XG4gIC5jbi1tIHsgY2xlYXI6IG5vbmU7IH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbGFyZ2V9IHtcbiAgLmNsLWwgeyBjbGVhcjogbGVmdDsgfVxuICAuY3ItbCB7IGNsZWFyOiByaWdodDsgfVxuICAuY2ItbCB7IGNsZWFyOiBib3RoOyB9XG4gIC5jbi1sIHsgY2xlYXI6IG5vbmU7IH1cbn1cbiIsIlxuLy8gQ29udmVydGVkIFZhcmlhYmxlc1xuXG5cbi8vIEN1c3RvbSBNZWRpYSBRdWVyeSBWYXJpYWJsZXNcblxuXG4vKlxuXG4gIEZMRVhCT1hcblxuICBNZWRpYSBRdWVyeSBFeHRlbnNpb25zOlxuICAgLW5zID0gbm90LXNtYWxsXG4gICAtbSAgPSBtZWRpdW1cbiAgIC1sICA9IGxhcmdlXG5cbiovXG5cbi5mbGV4IHsgZGlzcGxheTogZmxleDsgfVxuLmlubGluZS1mbGV4IHsgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cblxuLyogMS4gRml4IGZvciBDaHJvbWUgNDQgYnVnLlxuICogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTUwNjg5MyAqL1xuLmZsZXgtYXV0byB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7IC8qIDEgKi9cbiAgbWluLWhlaWdodDogMDsgLyogMSAqL1xufVxuXG4uZmxleC1ub25lIHsgZmxleDogbm9uZTsgfVxuXG4uZmxleC1jb2x1bW4gIHsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuLmZsZXgtcm93ICAgICB7IGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbi5mbGV4LXdyYXAgICAgeyBmbGV4LXdyYXA6IHdyYXA7IH1cbi5mbGV4LW5vd3JhcCAgICB7IGZsZXgtd3JhcDogbm93cmFwOyB9XG4uZmxleC13cmFwLXJldmVyc2UgICAgeyBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTsgfVxuLmZsZXgtY29sdW1uLXJldmVyc2UgIHsgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9XG4uZmxleC1yb3ctcmV2ZXJzZSAgICAgeyBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cblxuLml0ZW1zLXN0YXJ0ICAgIHsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cbi5pdGVtcy1lbmQgICAgICB7IGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuLml0ZW1zLWNlbnRlciAgIHsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuLml0ZW1zLWJhc2VsaW5lIHsgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4uaXRlbXMtc3RyZXRjaCAgeyBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuXG4uc2VsZi1zdGFydCAgICB7IGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cbi5zZWxmLWVuZCAgICAgIHsgYWxpZ24tc2VsZjogZmxleC1lbmQ7IH1cbi5zZWxmLWNlbnRlciAgIHsgYWxpZ24tc2VsZjogY2VudGVyOyB9XG4uc2VsZi1iYXNlbGluZSB7IGFsaWduLXNlbGY6IGJhc2VsaW5lOyB9XG4uc2VsZi1zdHJldGNoICB7IGFsaWduLXNlbGY6IHN0cmV0Y2g7IH1cblxuLmp1c3RpZnktc3RhcnQgICB7IGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuLmp1c3RpZnktZW5kICAgICB7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbi5qdXN0aWZ5LWNlbnRlciAgeyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuLmp1c3RpZnktYmV0d2VlbiB7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuLmp1c3RpZnktYXJvdW5kICB7IGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG5cbi5jb250ZW50LXN0YXJ0ICAgeyBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4uY29udGVudC1lbmQgICAgIHsgYWxpZ24tY29udGVudDogZmxleC1lbmQ7IH1cbi5jb250ZW50LWNlbnRlciAgeyBhbGlnbi1jb250ZW50OiBjZW50ZXI7IH1cbi5jb250ZW50LWJldHdlZW4geyBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4uY29udGVudC1hcm91bmQgIHsgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG4uY29udGVudC1zdHJldGNoIHsgYWxpZ24tY29udGVudDogc3RyZXRjaDsgfVxuXG4ub3JkZXItMCB7IG9yZGVyOiAwOyB9XG4ub3JkZXItMSB7IG9yZGVyOiAxOyB9XG4ub3JkZXItMiB7IG9yZGVyOiAyOyB9XG4ub3JkZXItMyB7IG9yZGVyOiAzOyB9XG4ub3JkZXItNCB7IG9yZGVyOiA0OyB9XG4ub3JkZXItNSB7IG9yZGVyOiA1OyB9XG4ub3JkZXItNiB7IG9yZGVyOiA2OyB9XG4ub3JkZXItNyB7IG9yZGVyOiA3OyB9XG4ub3JkZXItOCB7IG9yZGVyOiA4OyB9XG4ub3JkZXItbGFzdCB7IG9yZGVyOiA5OTk5OTsgfVxuXG4uZmxleC1ncm93LTAgeyBmbGV4LWdyb3c6IDA7IH1cbi5mbGV4LWdyb3ctMSB7IGZsZXgtZ3JvdzogMTsgfVxuXG4uZmxleC1zaHJpbmstMCB7IGZsZXgtc2hyaW5rOiAwOyB9XG4uZmxleC1zaHJpbmstMSB7IGZsZXgtc2hyaW5rOiAxOyB9XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW5vdC1zbWFsbH0ge1xuICAuZmxleC1ucyB7IGRpc3BsYXk6IGZsZXg7IH1cbiAgLmlubGluZS1mbGV4LW5zIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cbiAgLmZsZXgtYXV0by1ucyB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwOyAvKiAxICovXG4gICAgbWluLWhlaWdodDogMDsgLyogMSAqL1xuICB9XG4gIC5mbGV4LW5vbmUtbnMgeyBmbGV4OiBub25lOyB9XG4gIC5mbGV4LWNvbHVtbi1ucyB7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLmZsZXgtcm93LW5zIHsgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAuZmxleC13cmFwLW5zIHsgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5mbGV4LW5vd3JhcC1ucyB7IGZsZXgtd3JhcDogbm93cmFwOyB9XG4gIC5mbGV4LXdyYXAtcmV2ZXJzZS1ucyB7IGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlOyB9XG4gIC5mbGV4LWNvbHVtbi1yZXZlcnNlLW5zIHsgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9XG4gIC5mbGV4LXJvdy1yZXZlcnNlLW5zIHsgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG4gIC5pdGVtcy1zdGFydC1ucyB7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4gIC5pdGVtcy1lbmQtbnMgeyBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbiAgLml0ZW1zLWNlbnRlci1ucyB7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLml0ZW1zLWJhc2VsaW5lLW5zIHsgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gIC5pdGVtcy1zdHJldGNoLW5zIHsgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cblxuICAuc2VsZi1zdGFydC1ucyB7IGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cbiAgLnNlbGYtZW5kLW5zIHsgYWxpZ24tc2VsZjogZmxleC1lbmQ7IH1cbiAgLnNlbGYtY2VudGVyLW5zIHsgYWxpZ24tc2VsZjogY2VudGVyOyB9XG4gIC5zZWxmLWJhc2VsaW5lLW5zIHsgYWxpZ24tc2VsZjogYmFzZWxpbmU7IH1cbiAgLnNlbGYtc3RyZXRjaC1ucyB7IGFsaWduLXNlbGY6IHN0cmV0Y2g7IH1cblxuICAuanVzdGlmeS1zdGFydC1ucyB7IGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAuanVzdGlmeS1lbmQtbnMgeyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gIC5qdXN0aWZ5LWNlbnRlci1ucyB7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5qdXN0aWZ5LWJldHdlZW4tbnMgeyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgLmp1c3RpZnktYXJvdW5kLW5zIHsganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxuICAuY29udGVudC1zdGFydC1ucyB7IGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLmNvbnRlbnQtZW5kLW5zIHsgYWxpZ24tY29udGVudDogZmxleC1lbmQ7IH1cbiAgLmNvbnRlbnQtY2VudGVyLW5zIHsgYWxpZ24tY29udGVudDogY2VudGVyOyB9XG4gIC5jb250ZW50LWJldHdlZW4tbnMgeyBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIC5jb250ZW50LWFyb3VuZC1ucyB7IGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuICAuY29udGVudC1zdHJldGNoLW5zIHsgYWxpZ24tY29udGVudDogc3RyZXRjaDsgfVxuXG4gIC5vcmRlci0wLW5zIHsgb3JkZXI6IDA7IH1cbiAgLm9yZGVyLTEtbnMgeyBvcmRlcjogMTsgfVxuICAub3JkZXItMi1ucyB7IG9yZGVyOiAyOyB9XG4gIC5vcmRlci0zLW5zIHsgb3JkZXI6IDM7IH1cbiAgLm9yZGVyLTQtbnMgeyBvcmRlcjogNDsgfVxuICAub3JkZXItNS1ucyB7IG9yZGVyOiA1OyB9XG4gIC5vcmRlci02LW5zIHsgb3JkZXI6IDY7IH1cbiAgLm9yZGVyLTctbnMgeyBvcmRlcjogNzsgfVxuICAub3JkZXItOC1ucyB7IG9yZGVyOiA4OyB9XG4gIC5vcmRlci1sYXN0LW5zIHsgb3JkZXI6IDk5OTk5OyB9XG5cbiAgLmZsZXgtZ3Jvdy0wLW5zIHsgZmxleC1ncm93OiAwOyB9XG4gIC5mbGV4LWdyb3ctMS1ucyB7IGZsZXgtZ3JvdzogMTsgfVxuXG4gIC5mbGV4LXNocmluay0wLW5zIHsgZmxleC1zaHJpbms6IDA7IH1cbiAgLmZsZXgtc2hyaW5rLTEtbnMgeyBmbGV4LXNocmluazogMTsgfVxufVxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbWVkaXVtfSB7XG4gIC5mbGV4LW0geyBkaXNwbGF5OiBmbGV4OyB9XG4gIC5pbmxpbmUtZmxleC1tIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cbiAgLmZsZXgtYXV0by1tIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7IC8qIDEgKi9cbiAgICBtaW4taGVpZ2h0OiAwOyAvKiAxICovXG4gIH1cbiAgLmZsZXgtbm9uZS1tIHsgZmxleDogbm9uZTsgfVxuICAuZmxleC1jb2x1bW4tbSB7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLmZsZXgtcm93LW0gICAgIHsgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAuZmxleC13cmFwLW0geyBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLmZsZXgtbm93cmFwLW0geyBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuICAuZmxleC13cmFwLXJldmVyc2UtbSB7IGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlOyB9XG4gIC5mbGV4LWNvbHVtbi1yZXZlcnNlLW0geyBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH1cbiAgLmZsZXgtcm93LXJldmVyc2UtbSB7IGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAuaXRlbXMtc3RhcnQtbSB7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4gIC5pdGVtcy1lbmQtbSB7IGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuICAuaXRlbXMtY2VudGVyLW0geyBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5pdGVtcy1iYXNlbGluZS1tIHsgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gIC5pdGVtcy1zdHJldGNoLW0geyBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuXG4gIC5zZWxmLXN0YXJ0LW0geyBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OyB9XG4gIC5zZWxmLWVuZC1tIHsgYWxpZ24tc2VsZjogZmxleC1lbmQ7IH1cbiAgLnNlbGYtY2VudGVyLW0geyBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cbiAgLnNlbGYtYmFzZWxpbmUtbSB7IGFsaWduLXNlbGY6IGJhc2VsaW5lOyB9XG4gIC5zZWxmLXN0cmV0Y2gtbSB7IGFsaWduLXNlbGY6IHN0cmV0Y2g7IH1cblxuICAuanVzdGlmeS1zdGFydC1tIHsganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gIC5qdXN0aWZ5LWVuZC1tIHsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAuanVzdGlmeS1jZW50ZXItbSB7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5qdXN0aWZ5LWJldHdlZW4tbSB7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAuanVzdGlmeS1hcm91bmQtbSB7IGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG5cbiAgLmNvbnRlbnQtc3RhcnQtbSB7IGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLmNvbnRlbnQtZW5kLW0geyBhbGlnbi1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAuY29udGVudC1jZW50ZXItbSB7IGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuY29udGVudC1iZXR3ZWVuLW0geyBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIC5jb250ZW50LWFyb3VuZC1tIHsgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG4gIC5jb250ZW50LXN0cmV0Y2gtbSB7IGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7IH1cblxuICAub3JkZXItMC1tIHsgb3JkZXI6IDA7IH1cbiAgLm9yZGVyLTEtbSB7IG9yZGVyOiAxOyB9XG4gIC5vcmRlci0yLW0geyBvcmRlcjogMjsgfVxuICAub3JkZXItMy1tIHsgb3JkZXI6IDM7IH1cbiAgLm9yZGVyLTQtbSB7IG9yZGVyOiA0OyB9XG4gIC5vcmRlci01LW0geyBvcmRlcjogNTsgfVxuICAub3JkZXItNi1tIHsgb3JkZXI6IDY7IH1cbiAgLm9yZGVyLTctbSB7IG9yZGVyOiA3OyB9XG4gIC5vcmRlci04LW0geyBvcmRlcjogODsgfVxuICAub3JkZXItbGFzdC1tIHsgb3JkZXI6IDk5OTk5OyB9XG5cbiAgLmZsZXgtZ3Jvdy0wLW0geyBmbGV4LWdyb3c6IDA7IH1cbiAgLmZsZXgtZ3Jvdy0xLW0geyBmbGV4LWdyb3c6IDE7IH1cblxuICAuZmxleC1zaHJpbmstMC1tIHsgZmxleC1zaHJpbms6IDA7IH1cbiAgLmZsZXgtc2hyaW5rLTEtbSB7IGZsZXgtc2hyaW5rOiAxOyB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LWxhcmdlfSB7XG4gIC5mbGV4LWwgeyBkaXNwbGF5OiBmbGV4OyB9XG4gIC5pbmxpbmUtZmxleC1sIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cbiAgLmZsZXgtYXV0by1sIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7IC8qIDEgKi9cbiAgICBtaW4taGVpZ2h0OiAwOyAvKiAxICovXG4gIH1cbiAgLmZsZXgtbm9uZS1sIHsgZmxleDogbm9uZTsgfVxuICAuZmxleC1jb2x1bW4tbCB7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLmZsZXgtcm93LWwgeyBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gIC5mbGV4LXdyYXAtbCB7IGZsZXgtd3JhcDogd3JhcDsgfVxuICAuZmxleC1ub3dyYXAtbCB7IGZsZXgtd3JhcDogbm93cmFwOyB9XG4gIC5mbGV4LXdyYXAtcmV2ZXJzZS1sIHsgZmxleC13cmFwOiB3cmFwLXJldmVyc2U7IH1cbiAgLmZsZXgtY29sdW1uLXJldmVyc2UtbCB7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfVxuICAuZmxleC1yb3ctcmV2ZXJzZS1sIHsgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG5cbiAgLml0ZW1zLXN0YXJ0LWwgeyBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuICAuaXRlbXMtZW5kLWwgeyBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbiAgLml0ZW1zLWNlbnRlci1sIHsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuaXRlbXMtYmFzZWxpbmUtbCB7IGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAuaXRlbXMtc3RyZXRjaC1sIHsgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cblxuICAuc2VsZi1zdGFydC1sIHsgYWxpZ24tc2VsZjogZmxleC1zdGFydDsgfVxuICAuc2VsZi1lbmQtbCB7IGFsaWduLXNlbGY6IGZsZXgtZW5kOyB9XG4gIC5zZWxmLWNlbnRlci1sIHsgYWxpZ24tc2VsZjogY2VudGVyOyB9XG4gIC5zZWxmLWJhc2VsaW5lLWwgeyBhbGlnbi1zZWxmOiBiYXNlbGluZTsgfVxuICAuc2VsZi1zdHJldGNoLWwgeyBhbGlnbi1zZWxmOiBzdHJldGNoOyB9XG5cbiAgLmp1c3RpZnktc3RhcnQtbCB7IGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAuanVzdGlmeS1lbmQtbCB7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgLmp1c3RpZnktY2VudGVyLWwgeyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuanVzdGlmeS1iZXR3ZWVuLWwgeyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgLmp1c3RpZnktYXJvdW5kLWwgeyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuXG4gIC5jb250ZW50LXN0YXJ0LWwgeyBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gIC5jb250ZW50LWVuZC1sIHsgYWxpZ24tY29udGVudDogZmxleC1lbmQ7IH1cbiAgLmNvbnRlbnQtY2VudGVyLWwgeyBhbGlnbi1jb250ZW50OiBjZW50ZXI7IH1cbiAgLmNvbnRlbnQtYmV0d2Vlbi1sIHsgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAuY29udGVudC1hcm91bmQtbCB7IGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuICAuY29udGVudC1zdHJldGNoLWwgeyBhbGlnbi1jb250ZW50OiBzdHJldGNoOyB9XG5cbiAgLm9yZGVyLTAtbCB7IG9yZGVyOiAwOyB9XG4gIC5vcmRlci0xLWwgeyBvcmRlcjogMTsgfVxuICAub3JkZXItMi1sIHsgb3JkZXI6IDI7IH1cbiAgLm9yZGVyLTMtbCB7IG9yZGVyOiAzOyB9XG4gIC5vcmRlci00LWwgeyBvcmRlcjogNDsgfVxuICAub3JkZXItNS1sIHsgb3JkZXI6IDU7IH1cbiAgLm9yZGVyLTYtbCB7IG9yZGVyOiA2OyB9XG4gIC5vcmRlci03LWwgeyBvcmRlcjogNzsgfVxuICAub3JkZXItOC1sIHsgb3JkZXI6IDg7IH1cbiAgLm9yZGVyLWxhc3QtbCB7IG9yZGVyOiA5OTk5OTsgfVxuXG4gIC5mbGV4LWdyb3ctMC1sIHsgZmxleC1ncm93OiAwOyB9XG4gIC5mbGV4LWdyb3ctMS1sIHsgZmxleC1ncm93OiAxOyB9XG5cbiAgLmZsZXgtc2hyaW5rLTAtbCB7IGZsZXgtc2hyaW5rOiAwOyB9XG4gIC5mbGV4LXNocmluay0xLWwgeyBmbGV4LXNocmluazogMTsgfVxufVxuIiwiXG4vLyBDb252ZXJ0ZWQgVmFyaWFibGVzXG5cblxuLy8gQ3VzdG9tIE1lZGlhIFF1ZXJ5IFZhcmlhYmxlc1xuXG5cbi8qXG5cbiAgIERJU1BMQVlcbiAgIERvY3M6IGh0dHA6Ly90YWNoeW9ucy5pby9kb2NzL2xheW91dC9kaXNwbGF5XG5cbiAgIEJhc2U6XG4gICAgZCA9IGRpc3BsYXlcblxuICAgTW9kaWZpZXJzOlxuICAgIG4gICAgID0gbm9uZVxuICAgIGIgICAgID0gYmxvY2tcbiAgICBpYiAgICA9IGlubGluZS1ibG9ja1xuICAgIGl0ICAgID0gaW5saW5lLXRhYmxlXG4gICAgdCAgICAgPSB0YWJsZVxuICAgIHRjICAgID0gdGFibGUtY2VsbFxuICAgIHRyICAgID0gdGFibGUtcm93XG4gICAgdGNvbCAgPSB0YWJsZS1jb2x1bW5cbiAgICB0Y29sZyA9IHRhYmxlLWNvbHVtbi1ncm91cFxuXG4gICBNZWRpYSBRdWVyeSBFeHRlbnNpb25zOlxuICAgICAtbnMgPSBub3Qtc21hbGxcbiAgICAgLW0gID0gbWVkaXVtXG4gICAgIC1sICA9IGxhcmdlXG5cbiovXG5cbi5kbiB7ICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4uZGkgeyAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lOyB9XG4uZGIgeyAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbi5kaWIgeyAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbi5kaXQgeyAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7IH1cbi5kdCB7ICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuLmR0YyB7ICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7IH1cbi5kdC1yb3cgeyAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3c7IH1cbi5kdC1yb3ctZ3JvdXAgeyAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXA7IH1cbi5kdC1jb2x1bW4geyAgICAgICBkaXNwbGF5OiB0YWJsZS1jb2x1bW47IH1cbi5kdC1jb2x1bW4tZ3JvdXAgeyBkaXNwbGF5OiB0YWJsZS1jb2x1bW4tZ3JvdXA7IH1cblxuLypcbiAgVGhpcyB3aWxsIHNldCB0YWJsZSB0byBmdWxsIHdpZHRoIGFuZCB0aGVuXG4gIGFsbCBjZWxscyB3aWxsIGJlIGVxdWFsIHdpZHRoXG4qL1xuLmR0LS1maXhlZCB7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1ub3Qtc21hbGx9IHtcbiAgLmRuLW5zIHsgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmRpLW5zIHsgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTsgfVxuICAuZGItbnMgeyAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmRpYi1ucyB7ICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAuZGl0LW5zIHsgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLXRhYmxlOyB9XG4gIC5kdC1ucyB7ICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAuZHRjLW5zIHsgICAgICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsgfVxuICAuZHQtcm93LW5zIHsgICAgICAgICAgZGlzcGxheTogdGFibGUtcm93OyB9XG4gIC5kdC1yb3ctZ3JvdXAtbnMgeyAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXA7IH1cbiAgLmR0LWNvbHVtbi1ucyB7ICAgICAgIGRpc3BsYXk6IHRhYmxlLWNvbHVtbjsgfVxuICAuZHQtY29sdW1uLWdyb3VwLW5zIHsgZGlzcGxheTogdGFibGUtY29sdW1uLWdyb3VwOyB9XG5cbiAgLmR0LS1maXhlZC1ucyB7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1tZWRpdW19IHtcbiAgLmRuLW0geyAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuZGktbSB7ICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7IH1cbiAgLmRiLW0geyAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmRpYi1tIHsgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5kaXQtbSB7ICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS10YWJsZTsgfVxuICAuZHQtbSB7ICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAuZHRjLW0geyAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOyB9XG4gIC5kdC1yb3ctbSB7ICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdzsgfVxuICAuZHQtcm93LWdyb3VwLW0geyAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXA7IH1cbiAgLmR0LWNvbHVtbi1tIHsgICAgICAgZGlzcGxheTogdGFibGUtY29sdW1uOyB9XG4gIC5kdC1jb2x1bW4tZ3JvdXAtbSB7IGRpc3BsYXk6IHRhYmxlLWNvbHVtbi1ncm91cDsgfVxuXG4gIC5kdC0tZml4ZWQtbSB7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1sYXJnZX0ge1xuICAuZG4tbCB7ICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5kaS1sIHsgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTsgfVxuICAuZGItbCB7ICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuZGliLWwgeyAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLmRpdC1sIHsgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLXRhYmxlOyB9XG4gIC5kdC1sIHsgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5kdGMtbCB7ICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7IH1cbiAgLmR0LXJvdy1sIHsgICAgICAgICAgZGlzcGxheTogdGFibGUtcm93OyB9XG4gIC5kdC1yb3ctZ3JvdXAtbCB7ICAgIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cDsgfVxuICAuZHQtY29sdW1uLWwgeyAgICAgICBkaXNwbGF5OiB0YWJsZS1jb2x1bW47IH1cbiAgLmR0LWNvbHVtbi1ncm91cC1sIHsgZGlzcGxheTogdGFibGUtY29sdW1uLWdyb3VwOyB9XG5cbiAgLmR0LS1maXhlZC1sIHtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbiIsIlxuLy8gQ29udmVydGVkIFZhcmlhYmxlc1xuXG5cbi8vIEN1c3RvbSBNZWRpYSBRdWVyeSBWYXJpYWJsZXNcblxuXG4vKlxuXG4gICBGTE9BVFNcbiAgIGh0dHA6Ly90YWNoeW9ucy5pby9kb2NzL2xheW91dC9mbG9hdHMvXG5cbiAgIDEuIEZsb2F0ZWQgZWxlbWVudHMgYXJlIGF1dG9tYXRpY2FsbHkgcmVuZGVyZWQgYXMgYmxvY2sgbGV2ZWwgZWxlbWVudHMuXG4gICAgICBTZXR0aW5nIGZsb2F0cyB0byBkaXNwbGF5IGlubGluZSB3aWxsIGZpeCB0aGUgZG91YmxlIG1hcmdpbiBidWcgaW5cbiAgICAgIGllNi4gWW91IGtub3cuLi4ganVzdCBpbiBjYXNlLlxuXG4gICAyLiBEb24ndCBmb3JnZXQgdG8gY2xlYXJmaXggeW91ciBmbG9hdHMgd2l0aCAuY2ZcblxuICAgQmFzZTpcbiAgICAgZiA9IGZsb2F0XG5cbiAgIE1vZGlmaWVyczpcbiAgICAgbCA9IGxlZnRcbiAgICAgciA9IHJpZ2h0XG4gICAgIG4gPSBub25lXG5cbiAgIE1lZGlhIFF1ZXJ5IEV4dGVuc2lvbnM6XG4gICAgIC1ucyA9IG5vdC1zbWFsbFxuICAgICAtbSAgPSBtZWRpdW1cbiAgICAgLWwgID0gbGFyZ2VcblxuKi9cblxuXG5cbi5mbCB7IGZsb2F0OiBsZWZ0OyAgX2Rpc3BsYXk6IGlubGluZTsgfVxuLmZyIHsgZmxvYXQ6IHJpZ2h0OyBfZGlzcGxheTogaW5saW5lOyB9XG4uZm4geyBmbG9hdDogbm9uZTsgfVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1ub3Qtc21hbGx9IHtcbiAgLmZsLW5zIHsgZmxvYXQ6IGxlZnQ7IF9kaXNwbGF5OiBpbmxpbmU7IH1cbiAgLmZyLW5zIHsgZmxvYXQ6IHJpZ2h0OyBfZGlzcGxheTogaW5saW5lOyB9XG4gIC5mbi1ucyB7IGZsb2F0OiBub25lOyB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW1lZGl1bX0ge1xuICAuZmwtbSB7IGZsb2F0OiBsZWZ0OyBfZGlzcGxheTogaW5saW5lOyB9XG4gIC5mci1tIHsgZmxvYXQ6IHJpZ2h0OyBfZGlzcGxheTogaW5saW5lOyB9XG4gIC5mbi1tIHsgZmxvYXQ6IG5vbmU7IH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbGFyZ2V9IHtcbiAgLmZsLWwgeyBmbG9hdDogbGVmdDsgX2Rpc3BsYXk6IGlubGluZTsgfVxuICAuZnItbCB7IGZsb2F0OiByaWdodDsgX2Rpc3BsYXk6IGlubGluZTsgfVxuICAuZm4tbCB7IGZsb2F0OiBub25lOyB9XG59XG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLypcblxuICAgRk9OVCBGQU1JTFkgR1JPVVBTXG4gICBEb2NzOiBodHRwOi8vdGFjaHlvbnMuaW8vZG9jcy90eXBvZ3JhcGh5L2ZvbnQtZmFtaWx5L1xuXG4qL1xuXG5cbi5zYW5zLXNlcmlmIHtcbiAgZm9udC1mYW1pbHk6ICRzYW5zLXNlcmlmO1xufVxuXG4uc2VyaWYge1xuICBmb250LWZhbWlseTogJHNlcmlmO1xufVxuXG4uc3lzdGVtLXNhbnMtc2VyaWYge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbn1cblxuLnN5c3RlbS1zZXJpZiB7XG4gIGZvbnQtZmFtaWx5OiBzZXJpZjtcbn1cblxuXG4vKiBNb25vc3BhY2VkIFR5cGVmYWNlcyAoZm9yIGNvZGUpICovXG5cbi8qIEZyb20gaHR0cDovL2Nzc2ZvbnRzdGFjay5jb20gKi9cbmNvZGUsIC5jb2RlIHtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLFxuICAgICAgICAgICAgICAgbW9uYWNvLFxuICAgICAgICAgICAgICAgbW9ub3NwYWNlO1xufVxuXG4uY291cmllciB7XG4gIGZvbnQtZmFtaWx5OiAnQ291cmllciBOZXh0JyxcbiAgICAgICAgICAgICAgIGNvdXJpZXIsXG4gICAgICAgICAgICAgICBtb25vc3BhY2U7XG59XG5cblxuLyogU2Fucy1TZXJpZiBUeXBlZmFjZXMgKi9cblxuLmhlbHZldGljYSB7XG4gIGZvbnQtZmFtaWx5OiAnaGVsdmV0aWNhIG5ldWUnLCBoZWx2ZXRpY2EsXG4gICAgICAgICAgICAgICBzYW5zLXNlcmlmO1xufVxuXG4uYXZlbmlyIHtcbiAgZm9udC1mYW1pbHk6ICdhdmVuaXIgbmV4dCcsIGF2ZW5pcixcbiAgICAgICAgICAgICAgIHNhbnMtc2VyaWY7XG59XG5cblxuLyogU2VyaWYgVHlwZWZhY2VzICovXG5cbi5hdGhlbGFzIHtcbiAgZm9udC1mYW1pbHk6IGF0aGVsYXMsXG4gICAgICAgICAgICAgICBnZW9yZ2lhLFxuICAgICAgICAgICAgICAgc2VyaWY7XG59XG5cbi5nZW9yZ2lhIHtcbiAgZm9udC1mYW1pbHk6IGdlb3JnaWEsXG4gICAgICAgICAgICAgICBzZXJpZjtcbn1cblxuLnRpbWVzIHtcbiAgZm9udC1mYW1pbHk6IHRpbWVzLFxuICAgICAgICAgICAgICAgc2VyaWY7XG59XG5cbi5ib2Rvbmkge1xuICBmb250LWZhbWlseTogXCJCb2RvbmkgTVRcIixcbiAgICAgICAgICAgICAgICBzZXJpZjtcbn1cblxuLmNhbGlzdG8ge1xuICBmb250LWZhbWlseTogXCJDYWxpc3RvIE1UXCIsXG4gICAgICAgICAgICAgICAgc2VyaWY7XG59XG5cbi5nYXJhbW9uZCB7XG4gIGZvbnQtZmFtaWx5OiBnYXJhbW9uZCxcbiAgICAgICAgICAgICAgIHNlcmlmO1xufVxuXG4uYmFza2VydmlsbGUge1xuICBmb250LWZhbWlseTogYmFza2VydmlsbGUsXG4gICAgICAgICAgICAgICBzZXJpZjtcbn1cblxuIiwiXG4vLyBDb252ZXJ0ZWQgVmFyaWFibGVzXG5cblxuLy8gQ3VzdG9tIE1lZGlhIFF1ZXJ5IFZhcmlhYmxlc1xuXG5cbi8qXG5cbiAgIEZPTlQgU1RZTEVcbiAgIERvY3M6IGh0dHA6Ly90YWNoeW9ucy5pby9kb2NzL3R5cG9ncmFwaHkvZm9udC1zdHlsZS9cblxuICAgTWVkaWEgUXVlcnkgRXh0ZW5zaW9uczpcbiAgICAgLW5zID0gbm90LXNtYWxsXG4gICAgIC1tICA9IG1lZGl1bVxuICAgICAtbCAgPSBsYXJnZVxuXG4qL1xuXG4uaSAgICAgICAgIHsgZm9udC1zdHlsZTogaXRhbGljOyB9XG4uZnMtbm9ybWFsIHsgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW5vdC1zbWFsbH0ge1xuICAuaS1ucyAgICAgICB7IGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuICAuZnMtbm9ybWFsLW5zICAgICB7IGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1tZWRpdW19IHtcbiAgLmktbSAgICAgICB7IGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuICAuZnMtbm9ybWFsLW0gICAgIHsgZm9udC1zdHlsZTogbm9ybWFsOyB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LWxhcmdlfSB7XG4gIC5pLWwgICAgICAgeyBmb250LXN0eWxlOiBpdGFsaWM7IH1cbiAgLmZzLW5vcm1hbC1sICAgICB7IGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxufVxuIiwiXG4vLyBDb252ZXJ0ZWQgVmFyaWFibGVzXG5cblxuLy8gQ3VzdG9tIE1lZGlhIFF1ZXJ5IFZhcmlhYmxlc1xuXG5cbi8qXG5cbiAgIEZPTlQgV0VJR0hUXG4gICBEb2NzOiBodHRwOi8vdGFjaHlvbnMuaW8vZG9jcy90eXBvZ3JhcGh5L2ZvbnQtd2VpZ2h0L1xuXG4gICBCYXNlXG4gICAgIGZ3ID0gZm9udC13ZWlnaHRcblxuICAgTW9kaWZpZXJzOlxuICAgICAxID0gbGl0ZXJhbCB2YWx1ZSAxMDBcbiAgICAgMiA9IGxpdGVyYWwgdmFsdWUgMjAwXG4gICAgIDMgPSBsaXRlcmFsIHZhbHVlIDMwMFxuICAgICA0ID0gbGl0ZXJhbCB2YWx1ZSA0MDBcbiAgICAgNSA9IGxpdGVyYWwgdmFsdWUgNTAwXG4gICAgIDYgPSBsaXRlcmFsIHZhbHVlIDYwMFxuICAgICA3ID0gbGl0ZXJhbCB2YWx1ZSA3MDBcbiAgICAgOCA9IGxpdGVyYWwgdmFsdWUgODAwXG4gICAgIDkgPSBsaXRlcmFsIHZhbHVlIDkwMFxuXG4gICBNZWRpYSBRdWVyeSBFeHRlbnNpb25zOlxuICAgICAtbnMgPSBub3Qtc21hbGxcbiAgICAgLW0gID0gbWVkaXVtXG4gICAgIC1sICA9IGxhcmdlXG5cbiovXG5cbi5ub3JtYWwgeyBmb250LXdlaWdodDogbm9ybWFsOyB9XG4uYiAgICAgIHsgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbi5mdzEgICAgeyBmb250LXdlaWdodDogMTAwOyB9XG4uZncyICAgIHsgZm9udC13ZWlnaHQ6IDIwMDsgfVxuLmZ3MyAgICB7IGZvbnQtd2VpZ2h0OiAzMDA7IH1cbi5mdzQgICAgeyBmb250LXdlaWdodDogNDAwOyB9XG4uZnc1ICAgIHsgZm9udC13ZWlnaHQ6IDUwMDsgfVxuLmZ3NiAgICB7IGZvbnQtd2VpZ2h0OiA2MDA7IH1cbi5mdzcgICAgeyBmb250LXdlaWdodDogNzAwOyB9XG4uZnc4ICAgIHsgZm9udC13ZWlnaHQ6IDgwMDsgfVxuLmZ3OSAgICB7IGZvbnQtd2VpZ2h0OiA5MDA7IH1cblxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1ub3Qtc21hbGx9IHtcbiAgLm5vcm1hbC1ucyB7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgLmItbnMgICAgICB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5mdzEtbnMgICAgeyBmb250LXdlaWdodDogMTAwOyB9XG4gIC5mdzItbnMgICAgeyBmb250LXdlaWdodDogMjAwOyB9XG4gIC5mdzMtbnMgICAgeyBmb250LXdlaWdodDogMzAwOyB9XG4gIC5mdzQtbnMgICAgeyBmb250LXdlaWdodDogNDAwOyB9XG4gIC5mdzUtbnMgICAgeyBmb250LXdlaWdodDogNTAwOyB9XG4gIC5mdzYtbnMgICAgeyBmb250LXdlaWdodDogNjAwOyB9XG4gIC5mdzctbnMgICAgeyBmb250LXdlaWdodDogNzAwOyB9XG4gIC5mdzgtbnMgICAgeyBmb250LXdlaWdodDogODAwOyB9XG4gIC5mdzktbnMgICAgeyBmb250LXdlaWdodDogOTAwOyB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW1lZGl1bX0ge1xuICAubm9ybWFsLW0geyBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gIC5iLW0gICAgICB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5mdzEtbSAgICB7IGZvbnQtd2VpZ2h0OiAxMDA7IH1cbiAgLmZ3Mi1tICAgIHsgZm9udC13ZWlnaHQ6IDIwMDsgfVxuICAuZnczLW0gICAgeyBmb250LXdlaWdodDogMzAwOyB9XG4gIC5mdzQtbSAgICB7IGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgLmZ3NS1tICAgIHsgZm9udC13ZWlnaHQ6IDUwMDsgfVxuICAuZnc2LW0gICAgeyBmb250LXdlaWdodDogNjAwOyB9XG4gIC5mdzctbSAgICB7IGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgLmZ3OC1tICAgIHsgZm9udC13ZWlnaHQ6IDgwMDsgfVxuICAuZnc5LW0gICAgeyBmb250LXdlaWdodDogOTAwOyB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LWxhcmdlfSB7XG4gIC5ub3JtYWwtbCB7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgLmItbCAgICAgIHsgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLmZ3MS1sICAgIHsgZm9udC13ZWlnaHQ6IDEwMDsgfVxuICAuZncyLWwgICAgeyBmb250LXdlaWdodDogMjAwOyB9XG4gIC5mdzMtbCAgICB7IGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgLmZ3NC1sICAgIHsgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAuZnc1LWwgICAgeyBmb250LXdlaWdodDogNTAwOyB9XG4gIC5mdzYtbCAgICB7IGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgLmZ3Ny1sICAgIHsgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAuZnc4LWwgICAgeyBmb250LXdlaWdodDogODAwOyB9XG4gIC5mdzktbCAgICB7IGZvbnQtd2VpZ2h0OiA5MDA7IH1cbn1cbiIsIlxuLy8gQ29udmVydGVkIFZhcmlhYmxlc1xuXG5cbi8vIEN1c3RvbSBNZWRpYSBRdWVyeSBWYXJpYWJsZXNcblxuXG4vKlxuXG4gICBGT1JNU1xuICAgXG4qL1xuXG4uaW5wdXQtcmVzZXQge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLmJ1dHRvbi1yZXNldDo6LW1vei1mb2N1cy1pbm5lcixcbi5pbnB1dC1yZXNldDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cbiIsIlxuLy8gQ29udmVydGVkIFZhcmlhYmxlc1xuXG5cbi8vIEN1c3RvbSBNZWRpYSBRdWVyeSBWYXJpYWJsZXNcblxuXG4vKlxuXG4gICBIRUlHSFRTXG4gICBEb2NzOiBodHRwOi8vdGFjaHlvbnMuaW8vZG9jcy9sYXlvdXQvaGVpZ2h0cy9cblxuICAgQmFzZTpcbiAgICAgaCA9IGhlaWdodFxuICAgICBtaW4taCA9IG1pbi1oZWlnaHRcbiAgICAgbWluLXZoID0gbWluLWhlaWdodCB2ZXJ0aWNhbCBzY3JlZW4gaGVpZ2h0XG4gICAgIHZoID0gdmVydGljYWwgc2NyZWVuIGhlaWdodFxuXG4gICBNb2RpZmllcnNcbiAgICAgMSA9IDFzdCBzdGVwIGluIGhlaWdodCBzY2FsZVxuICAgICAyID0gMm5kIHN0ZXAgaW4gaGVpZ2h0IHNjYWxlXG4gICAgIDMgPSAzcmQgc3RlcCBpbiBoZWlnaHQgc2NhbGVcbiAgICAgNCA9IDR0aCBzdGVwIGluIGhlaWdodCBzY2FsZVxuICAgICA1ID0gNXRoIHN0ZXAgaW4gaGVpZ2h0IHNjYWxlXG5cbiAgICAgLTI1ICAgPSBsaXRlcmFsIHZhbHVlIDI1JVxuICAgICAtNTAgICA9IGxpdGVyYWwgdmFsdWUgNTAlXG4gICAgIC03NSAgID0gbGl0ZXJhbCB2YWx1ZSA3NSVcbiAgICAgLTEwMCAgPSBsaXRlcmFsIHZhbHVlIDEwMCVcblxuICAgICAtYXV0byA9IHN0cmluZyB2YWx1ZSBvZiBhdXRvXG4gICAgIC1pbmhlcml0ID0gc3RyaW5nIHZhbHVlIG9mIGluaGVyaXRcblxuICAgTWVkaWEgUXVlcnkgRXh0ZW5zaW9uczpcbiAgICAgLW5zID0gbm90LXNtYWxsXG4gICAgIC1tICA9IG1lZGl1bVxuICAgICAtbCAgPSBsYXJnZVxuXG4qL1xuXG4vKiBIZWlnaHQgU2NhbGUgKi9cblxuLmgxIHsgaGVpZ2h0OiAkaGVpZ2h0LTE7IH1cbi5oMiB7IGhlaWdodDogJGhlaWdodC0yOyB9XG4uaDMgeyBoZWlnaHQ6ICRoZWlnaHQtMzsgfVxuLmg0IHsgaGVpZ2h0OiAkaGVpZ2h0LTQ7IH1cbi5oNSB7IGhlaWdodDogJGhlaWdodC01OyB9XG5cbi8qIEhlaWdodCBQZXJjZW50YWdlcyAtIEJhc2VkIG9mZiBvZiBoZWlnaHQgb2YgcGFyZW50ICovXG5cbi5oLTI1IHsgIGhlaWdodDogIDI1JTsgfVxuLmgtNTAgeyAgaGVpZ2h0OiAgNTAlOyB9XG4uaC03NSB7ICBoZWlnaHQ6ICA3NSU7IH1cbi5oLTEwMCB7IGhlaWdodDogMTAwJTsgfVxuXG4ubWluLWgtMTAwIHsgbWluLWhlaWdodDogMTAwJTsgfVxuXG4vKiBTY3JlZW4gSGVpZ2h0IFBlcmNlbnRhZ2UgKi9cblxuLnZoLTI1IHsgIGhlaWdodDogIDI1dmg7IH1cbi52aC01MCB7ICBoZWlnaHQ6ICA1MHZoOyB9XG4udmgtNzUgeyAgaGVpZ2h0OiAgNzV2aDsgfVxuLnZoLTEwMCB7IGhlaWdodDogMTAwdmg7IH1cblxuLm1pbi12aC0xMDAgeyBtaW4taGVpZ2h0OiAxMDB2aDsgfVxuXG5cbi8qIFN0cmluZyBQcm9wZXJ0aWVzICovXG5cbi5oLWF1dG8geyAgICAgaGVpZ2h0OiBhdXRvOyB9XG4uaC1pbmhlcml0IHsgIGhlaWdodDogaW5oZXJpdDsgfVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1ub3Qtc21hbGx9IHtcbiAgLmgxLW5zIHsgIGhlaWdodDogJGhlaWdodC0xOyB9XG4gIC5oMi1ucyB7ICBoZWlnaHQ6ICRoZWlnaHQtMjsgfVxuICAuaDMtbnMgeyAgaGVpZ2h0OiAkaGVpZ2h0LTM7IH1cbiAgLmg0LW5zIHsgIGhlaWdodDogJGhlaWdodC00OyB9XG4gIC5oNS1ucyB7ICBoZWlnaHQ6ICRoZWlnaHQtNTsgfVxuICAuaC0yNS1ucyB7IGhlaWdodDogMjUlOyB9XG4gIC5oLTUwLW5zIHsgaGVpZ2h0OiA1MCU7IH1cbiAgLmgtNzUtbnMgeyBoZWlnaHQ6IDc1JTsgfVxuICAuaC0xMDAtbnMgeyBoZWlnaHQ6IDEwMCU7IH1cbiAgLm1pbi1oLTEwMC1ucyB7IG1pbi1oZWlnaHQ6IDEwMCU7IH1cbiAgLnZoLTI1LW5zIHsgIGhlaWdodDogIDI1dmg7IH1cbiAgLnZoLTUwLW5zIHsgIGhlaWdodDogIDUwdmg7IH1cbiAgLnZoLTc1LW5zIHsgIGhlaWdodDogIDc1dmg7IH1cbiAgLnZoLTEwMC1ucyB7IGhlaWdodDogMTAwdmg7IH1cbiAgLm1pbi12aC0xMDAtbnMgeyBtaW4taGVpZ2h0OiAxMDB2aDsgfVxuICAuaC1hdXRvLW5zIHsgaGVpZ2h0OiBhdXRvOyB9XG4gIC5oLWluaGVyaXQtbnMgeyBoZWlnaHQ6IGluaGVyaXQ7IH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbWVkaXVtfSB7XG4gIC5oMS1tIHsgaGVpZ2h0OiAkaGVpZ2h0LTE7IH1cbiAgLmgyLW0geyBoZWlnaHQ6ICRoZWlnaHQtMjsgfVxuICAuaDMtbSB7IGhlaWdodDogJGhlaWdodC0zOyB9XG4gIC5oNC1tIHsgaGVpZ2h0OiAkaGVpZ2h0LTQ7IH1cbiAgLmg1LW0geyBoZWlnaHQ6ICRoZWlnaHQtNTsgfVxuICAuaC0yNS1tIHsgaGVpZ2h0OiAyNSU7IH1cbiAgLmgtNTAtbSB7IGhlaWdodDogNTAlOyB9XG4gIC5oLTc1LW0geyBoZWlnaHQ6IDc1JTsgfVxuICAuaC0xMDAtbSB7IGhlaWdodDogMTAwJTsgfVxuICAubWluLWgtMTAwLW0geyBtaW4taGVpZ2h0OiAxMDAlOyB9XG4gIC52aC0yNS1tIHsgIGhlaWdodDogIDI1dmg7IH1cbiAgLnZoLTUwLW0geyAgaGVpZ2h0OiAgNTB2aDsgfVxuICAudmgtNzUtbSB7ICBoZWlnaHQ6ICA3NXZoOyB9XG4gIC52aC0xMDAtbSB7IGhlaWdodDogMTAwdmg7IH1cbiAgLm1pbi12aC0xMDAtbSB7IG1pbi1oZWlnaHQ6IDEwMHZoOyB9XG4gIC5oLWF1dG8tbSB7IGhlaWdodDogYXV0bzsgfVxuICAuaC1pbmhlcml0LW0geyBoZWlnaHQ6IGluaGVyaXQ7IH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbGFyZ2V9IHtcbiAgLmgxLWwgeyBoZWlnaHQ6ICRoZWlnaHQtMTsgfVxuICAuaDItbCB7IGhlaWdodDogJGhlaWdodC0yOyB9XG4gIC5oMy1sIHsgaGVpZ2h0OiAkaGVpZ2h0LTM7IH1cbiAgLmg0LWwgeyBoZWlnaHQ6ICRoZWlnaHQtNDsgfVxuICAuaDUtbCB7IGhlaWdodDogJGhlaWdodC01OyB9XG4gIC5oLTI1LWwgeyBoZWlnaHQ6IDI1JTsgfVxuICAuaC01MC1sIHsgaGVpZ2h0OiA1MCU7IH1cbiAgLmgtNzUtbCB7IGhlaWdodDogNzUlOyB9XG4gIC5oLTEwMC1sIHsgaGVpZ2h0OiAxMDAlOyB9XG4gIC5taW4taC0xMDAtbCB7IG1pbi1oZWlnaHQ6IDEwMCU7IH1cbiAgLnZoLTI1LWwgeyAgaGVpZ2h0OiAgMjV2aDsgfVxuICAudmgtNTAtbCB7ICBoZWlnaHQ6ICA1MHZoOyB9XG4gIC52aC03NS1sIHsgIGhlaWdodDogIDc1dmg7IH1cbiAgLnZoLTEwMC1sIHsgaGVpZ2h0OiAxMDB2aDsgfVxuICAubWluLXZoLTEwMC1sIHsgbWluLWhlaWdodDogMTAwdmg7IH1cbiAgLmgtYXV0by1sIHsgaGVpZ2h0OiBhdXRvOyB9XG4gIC5oLWluaGVyaXQtbCB7IGhlaWdodDogaW5oZXJpdDsgfVxufVxuIiwiXG4vLyBDb252ZXJ0ZWQgVmFyaWFibGVzXG5cblxuLy8gQ3VzdG9tIE1lZGlhIFF1ZXJ5IFZhcmlhYmxlc1xuXG5cbi8qXG5cbiAgIExFVFRFUiBTUEFDSU5HXG4gICBEb2NzOiBodHRwOi8vdGFjaHlvbnMuaW8vZG9jcy90eXBvZ3JhcGh5L3RyYWNraW5nL1xuXG4gICBNZWRpYSBRdWVyeSBFeHRlbnNpb25zOlxuICAgICAtbnMgPSBub3Qtc21hbGxcbiAgICAgLW0gID0gbWVkaXVtXG4gICAgIC1sICA9IGxhcmdlXG5cbiovXG5cbi50cmFja2VkICAgICAgIHsgbGV0dGVyLXNwYWNpbmc6ICAkbGV0dGVyLXNwYWNpbmctMTsgfVxuLnRyYWNrZWQtdGlnaHQgeyBsZXR0ZXItc3BhY2luZzogJGxldHRlci1zcGFjaW5nLXRpZ2h0OyB9XG4udHJhY2tlZC1tZWdhICB7IGxldHRlci1zcGFjaW5nOiAgJGxldHRlci1zcGFjaW5nLTI7IH1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbm90LXNtYWxsfSB7XG4gIC50cmFja2VkLW5zICAgICAgIHsgbGV0dGVyLXNwYWNpbmc6ICAkbGV0dGVyLXNwYWNpbmctMTsgfVxuICAudHJhY2tlZC10aWdodC1ucyB7IGxldHRlci1zcGFjaW5nOiAkbGV0dGVyLXNwYWNpbmctdGlnaHQ7IH1cbiAgLnRyYWNrZWQtbWVnYS1ucyAgeyBsZXR0ZXItc3BhY2luZzogICRsZXR0ZXItc3BhY2luZy0yOyB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW1lZGl1bX0ge1xuICAudHJhY2tlZC1tICAgICAgIHsgbGV0dGVyLXNwYWNpbmc6ICAkbGV0dGVyLXNwYWNpbmctMTsgfVxuICAudHJhY2tlZC10aWdodC1tIHsgbGV0dGVyLXNwYWNpbmc6ICRsZXR0ZXItc3BhY2luZy10aWdodDsgfVxuICAudHJhY2tlZC1tZWdhLW0gIHsgbGV0dGVyLXNwYWNpbmc6ICAkbGV0dGVyLXNwYWNpbmctMjsgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1sYXJnZX0ge1xuICAudHJhY2tlZC1sICAgICAgIHsgbGV0dGVyLXNwYWNpbmc6ICAkbGV0dGVyLXNwYWNpbmctMTsgfVxuICAudHJhY2tlZC10aWdodC1sIHsgbGV0dGVyLXNwYWNpbmc6ICRsZXR0ZXItc3BhY2luZy10aWdodDsgfVxuICAudHJhY2tlZC1tZWdhLWwgIHsgbGV0dGVyLXNwYWNpbmc6ICAkbGV0dGVyLXNwYWNpbmctMjsgfVxufVxuIiwiXG4vLyBDb252ZXJ0ZWQgVmFyaWFibGVzXG5cblxuLy8gQ3VzdG9tIE1lZGlhIFF1ZXJ5IFZhcmlhYmxlc1xuXG5cbi8qXG5cbiAgIExJTkUgSEVJR0hUIC8gTEVBRElOR1xuICAgRG9jczogaHR0cDovL3RhY2h5b25zLmlvL2RvY3MvdHlwb2dyYXBoeS9saW5lLWhlaWdodFxuXG4gICBNZWRpYSBRdWVyeSBFeHRlbnNpb25zOlxuICAgICAtbnMgPSBub3Qtc21hbGxcbiAgICAgLW0gID0gbWVkaXVtXG4gICAgIC1sICA9IGxhcmdlXG5cbiovXG5cbiAgLmxoLXNvbGlkIHsgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1zb2xpZDsgfVxuICAubGgtdGl0bGUgeyBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LXRpdGxlOyB9XG4gIC5saC1jb3B5ICB7IGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtY29weTsgfVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1ub3Qtc21hbGx9IHtcbiAgLmxoLXNvbGlkLW5zIHsgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1zb2xpZDsgfVxuICAubGgtdGl0bGUtbnMgeyBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LXRpdGxlOyB9XG4gIC5saC1jb3B5LW5zICB7IGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtY29weTsgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1tZWRpdW19IHtcbiAgLmxoLXNvbGlkLW0geyBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LXNvbGlkOyB9XG4gIC5saC10aXRsZS1tIHsgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC10aXRsZTsgfVxuICAubGgtY29weS1tICB7IGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtY29weTsgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1sYXJnZX0ge1xuICAubGgtc29saWQtbCB7IGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtc29saWQ7IH1cbiAgLmxoLXRpdGxlLWwgeyBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LXRpdGxlOyB9XG4gIC5saC1jb3B5LWwgIHsgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1jb3B5OyB9XG59XG5cbiIsIlxuLy8gQ29udmVydGVkIFZhcmlhYmxlc1xuXG5cbi8vIEN1c3RvbSBNZWRpYSBRdWVyeSBWYXJpYWJsZXNcblxuXG4vKlxuXG4gICBMSU5LU1xuICAgRG9jczogaHR0cDovL3RhY2h5b25zLmlvL2RvY3MvZWxlbWVudHMvbGlua3MvXG5cbiovXG5cbi5saW5rIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBjb2xvciAuMTVzIGVhc2UtaW47XG59XG5cbi5saW5rOmxpbmssXG4ubGluazp2aXNpdGVkIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgLjE1cyBlYXNlLWluO1xufVxuLmxpbms6aG92ZXIgICB7XG4gIHRyYW5zaXRpb246IGNvbG9yIC4xNXMgZWFzZS1pbjtcbn1cbi5saW5rOmFjdGl2ZSAge1xuICB0cmFuc2l0aW9uOiBjb2xvciAuMTVzIGVhc2UtaW47XG59XG4ubGluazpmb2N1cyAgIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgLjE1cyBlYXNlLWluO1xuICBvdXRsaW5lOiAxcHggZG90dGVkIGN1cnJlbnRDb2xvcjtcbn1cblxuIiwiXG4vLyBDb252ZXJ0ZWQgVmFyaWFibGVzXG5cblxuLy8gQ3VzdG9tIE1lZGlhIFF1ZXJ5IFZhcmlhYmxlc1xuXG5cbi8qXG5cbiAgIExJU1RTXG4gICBodHRwOi8vdGFjaHlvbnMuaW8vZG9jcy9lbGVtZW50cy9saXN0cy9cblxuKi9cblxuLmxpc3QgeyAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuIiwiXG4vLyBDb252ZXJ0ZWQgVmFyaWFibGVzXG5cblxuLy8gQ3VzdG9tIE1lZGlhIFF1ZXJ5IFZhcmlhYmxlc1xuXG5cbi8qXG5cbiAgIE1BWCBXSURUSFNcbiAgIERvY3M6IGh0dHA6Ly90YWNoeW9ucy5pby9kb2NzL2xheW91dC9tYXgtd2lkdGhzL1xuXG4gICBCYXNlOlxuICAgICBtdyA9IG1heC13aWR0aFxuXG4gICBNb2RpZmllcnNcbiAgICAgMSA9IDFzdCBzdGVwIGluIHdpZHRoIHNjYWxlXG4gICAgIDIgPSAybmQgc3RlcCBpbiB3aWR0aCBzY2FsZVxuICAgICAzID0gM3JkIHN0ZXAgaW4gd2lkdGggc2NhbGVcbiAgICAgNCA9IDR0aCBzdGVwIGluIHdpZHRoIHNjYWxlXG4gICAgIDUgPSA1dGggc3RlcCBpbiB3aWR0aCBzY2FsZVxuICAgICA2ID0gNnN0IHN0ZXAgaW4gd2lkdGggc2NhbGVcbiAgICAgNyA9IDduZCBzdGVwIGluIHdpZHRoIHNjYWxlXG4gICAgIDggPSA4cmQgc3RlcCBpbiB3aWR0aCBzY2FsZVxuICAgICA5ID0gOXRoIHN0ZXAgaW4gd2lkdGggc2NhbGVcblxuICAgICAtMTAwID0gbGl0ZXJhbCB2YWx1ZSAxMDAlXG5cbiAgICAgLW5vbmUgID0gc3RyaW5nIHZhbHVlIG5vbmVcblxuXG4gICBNZWRpYSBRdWVyeSBFeHRlbnNpb25zOlxuICAgICAtbnMgPSBub3Qtc21hbGxcbiAgICAgLW0gID0gbWVkaXVtXG4gICAgIC1sICA9IGxhcmdlXG5cbiovXG5cbi8qIE1heCBXaWR0aCBQZXJjZW50YWdlcyAqL1xuXG4ubXctMTAwICB7IG1heC13aWR0aDogMTAwJTsgfVxuXG4vKiBNYXggV2lkdGggU2NhbGUgKi9cblxuLm13MSAgeyAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLTE7IH1cbi5tdzIgIHsgIG1heC13aWR0aDogJG1heC13aWR0aC0yOyB9XG4ubXczICB7ICBtYXgtd2lkdGg6ICRtYXgtd2lkdGgtMzsgfVxuLm13NCAgeyAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLTQ7IH1cbi5tdzUgIHsgIG1heC13aWR0aDogJG1heC13aWR0aC01OyB9XG4ubXc2ICB7ICBtYXgtd2lkdGg6ICRtYXgtd2lkdGgtNjsgfVxuLm13NyAgeyAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLTc7IH1cbi5tdzggIHsgIG1heC13aWR0aDogJG1heC13aWR0aC04OyB9XG4ubXc5ICB7ICBtYXgtd2lkdGg6ICRtYXgtd2lkdGgtOTsgfVxuXG4vKiBNYXggV2lkdGggU3RyaW5nIFByb3BlcnRpZXMgKi9cblxuLm13LW5vbmUgeyBtYXgtd2lkdGg6IG5vbmU7IH1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbm90LXNtYWxsfSB7XG4gIC5tdy0xMDAtbnMgIHsgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbiAgLm13MS1ucyAgeyAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLTE7IH1cbiAgLm13Mi1ucyAgeyAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLTI7IH1cbiAgLm13My1ucyAgeyAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLTM7IH1cbiAgLm13NC1ucyAgeyAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLTQ7IH1cbiAgLm13NS1ucyAgeyAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLTU7IH1cbiAgLm13Ni1ucyAgeyAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLTY7IH1cbiAgLm13Ny1ucyAgeyAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLTc7IH1cbiAgLm13OC1ucyAgeyAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLTg7IH1cbiAgLm13OS1ucyAgeyAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLTk7IH1cblxuICAubXctbm9uZS1ucyB7IG1heC13aWR0aDogbm9uZTsgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1tZWRpdW19IHtcbiAgLm13LTEwMC1tICB7IG1heC13aWR0aDogMTAwJTsgfVxuXG4gIC5tdzEtbSAgeyAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLTE7IH1cbiAgLm13Mi1tICB7ICBtYXgtd2lkdGg6ICRtYXgtd2lkdGgtMjsgfVxuICAubXczLW0gIHsgIG1heC13aWR0aDogJG1heC13aWR0aC0zOyB9XG4gIC5tdzQtbSAgeyAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLTQ7IH1cbiAgLm13NS1tICB7ICBtYXgtd2lkdGg6ICRtYXgtd2lkdGgtNTsgfVxuICAubXc2LW0gIHsgIG1heC13aWR0aDogJG1heC13aWR0aC02OyB9XG4gIC5tdzctbSAgeyAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLTc7IH1cbiAgLm13OC1tICB7ICBtYXgtd2lkdGg6ICRtYXgtd2lkdGgtODsgfVxuICAubXc5LW0gIHsgIG1heC13aWR0aDogJG1heC13aWR0aC05OyB9XG5cbiAgLm13LW5vbmUtbSB7IG1heC13aWR0aDogbm9uZTsgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1sYXJnZX0ge1xuICAubXctMTAwLWwgIHsgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbiAgLm13MS1sICB7ICBtYXgtd2lkdGg6ICRtYXgtd2lkdGgtMTsgfVxuICAubXcyLWwgIHsgIG1heC13aWR0aDogJG1heC13aWR0aC0yOyB9XG4gIC5tdzMtbCAgeyAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLTM7IH1cbiAgLm13NC1sICB7ICBtYXgtd2lkdGg6ICRtYXgtd2lkdGgtNDsgfVxuICAubXc1LWwgIHsgIG1heC13aWR0aDogJG1heC13aWR0aC01OyB9XG4gIC5tdzYtbCAgeyAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLTY7IH1cbiAgLm13Ny1sICB7ICBtYXgtd2lkdGg6ICRtYXgtd2lkdGgtNzsgfVxuICAubXc4LWwgIHsgIG1heC13aWR0aDogJG1heC13aWR0aC04OyB9XG4gIC5tdzktbCAgeyAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoLTk7IH1cblxuICAubXctbm9uZS1sIHsgbWF4LXdpZHRoOiBub25lOyB9XG59XG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLypcblxuICAgV0lEVEhTXG4gICBEb2NzOiBodHRwOi8vdGFjaHlvbnMuaW8vZG9jcy9sYXlvdXQvd2lkdGhzL1xuXG4gICBCYXNlOlxuICAgICB3ID0gd2lkdGhcblxuICAgICBNb2RpZmllcnNcbiAgICAgICAxID0gMXN0IHN0ZXAgaW4gd2lkdGggc2NhbGVcbiAgICAgICAyID0gMm5kIHN0ZXAgaW4gd2lkdGggc2NhbGVcbiAgICAgICAzID0gM3JkIHN0ZXAgaW4gd2lkdGggc2NhbGVcbiAgICAgICA0ID0gNHRoIHN0ZXAgaW4gd2lkdGggc2NhbGVcbiAgICAgICA1ID0gNXRoIHN0ZXAgaW4gd2lkdGggc2NhbGVcblxuICAgICAgIC0xMCAgPSBsaXRlcmFsIHZhbHVlIDEwJVxuICAgICAgIC0yMCAgPSBsaXRlcmFsIHZhbHVlIDIwJVxuICAgICAgIC0yNSAgPSBsaXRlcmFsIHZhbHVlIDI1JVxuICAgICAgIC0zMCAgPSBsaXRlcmFsIHZhbHVlIDMwJVxuICAgICAgIC0zMyAgPSBsaXRlcmFsIHZhbHVlIDMzJVxuICAgICAgIC0zNCAgPSBsaXRlcmFsIHZhbHVlIDM0JVxuICAgICAgIC00MCAgPSBsaXRlcmFsIHZhbHVlIDQwJVxuICAgICAgIC01MCAgPSBsaXRlcmFsIHZhbHVlIDUwJVxuICAgICAgIC02MCAgPSBsaXRlcmFsIHZhbHVlIDYwJVxuICAgICAgIC03MCAgPSBsaXRlcmFsIHZhbHVlIDcwJVxuICAgICAgIC03NSAgPSBsaXRlcmFsIHZhbHVlIDc1JVxuICAgICAgIC04MCAgPSBsaXRlcmFsIHZhbHVlIDgwJVxuICAgICAgIC05MCAgPSBsaXRlcmFsIHZhbHVlIDkwJVxuICAgICAgIC0xMDAgPSBsaXRlcmFsIHZhbHVlIDEwMCVcblxuICAgICAgIC10aGlyZCAgICAgID0gMTAwJSAvIDMgKE5vdCBzdXBwb3J0ZWQgaW4gb3BlcmEgbWluaSBvciBJRTgpXG4gICAgICAgLXR3by10aGlyZHMgPSAxMDAlIC8gMS41IChOb3Qgc3VwcG9ydGVkIGluIG9wZXJhIG1pbmkgb3IgSUU4KVxuICAgICAgIC1hdXRvICAgICAgID0gc3RyaW5nIHZhbHVlIGF1dG9cblxuXG4gICAgIE1lZGlhIFF1ZXJ5IEV4dGVuc2lvbnM6XG4gICAgICAgLW5zID0gbm90LXNtYWxsXG4gICAgICAgLW0gID0gbWVkaXVtXG4gICAgICAgLWwgID0gbGFyZ2VcblxuICAqL1xuXG4vKiBXaWR0aCBTY2FsZSAqL1xuXG4udzEgeyAgICB3aWR0aDogJHdpZHRoLTE7IH1cbi53MiB7ICAgIHdpZHRoOiAkd2lkdGgtMjsgfVxuLnczIHsgICAgd2lkdGg6ICR3aWR0aC0zOyB9XG4udzQgeyAgICB3aWR0aDogJHdpZHRoLTQ7IH1cbi53NSB7ICAgIHdpZHRoOiAkd2lkdGgtNTsgfVxuXG4udy0xMCB7ICB3aWR0aDogIDEwJTsgfVxuLnctMjAgeyAgd2lkdGg6ICAyMCU7IH1cbi53LTI1IHsgIHdpZHRoOiAgMjUlOyB9XG4udy0zMCB7ICB3aWR0aDogIDMwJTsgfVxuLnctMzMgeyAgd2lkdGg6ICAzMyU7IH1cbi53LTM0IHsgIHdpZHRoOiAgMzQlOyB9XG4udy00MCB7ICB3aWR0aDogIDQwJTsgfVxuLnctNTAgeyAgd2lkdGg6ICA1MCU7IH1cbi53LTYwIHsgIHdpZHRoOiAgNjAlOyB9XG4udy03MCB7ICB3aWR0aDogIDcwJTsgfVxuLnctNzUgeyAgd2lkdGg6ICA3NSU7IH1cbi53LTgwIHsgIHdpZHRoOiAgODAlOyB9XG4udy05MCB7ICB3aWR0aDogIDkwJTsgfVxuLnctMTAwIHsgd2lkdGg6IDEwMCU7IH1cblxuLnctdGhpcmQgeyB3aWR0aDogKDEwMCUgLyAzKTsgfVxuLnctdHdvLXRoaXJkcyB7IHdpZHRoOiAoMTAwJSAvIDEuNSk7IH1cbi53LWF1dG8geyB3aWR0aDogYXV0bzsgfVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1ub3Qtc21hbGx9IHtcbiAgLncxLW5zIHsgIHdpZHRoOiAkd2lkdGgtMTsgfVxuICAudzItbnMgeyAgd2lkdGg6ICR3aWR0aC0yOyB9XG4gIC53My1ucyB7ICB3aWR0aDogJHdpZHRoLTM7IH1cbiAgLnc0LW5zIHsgIHdpZHRoOiAkd2lkdGgtNDsgfVxuICAudzUtbnMgeyAgd2lkdGg6ICR3aWR0aC01OyB9XG4gIC53LTEwLW5zIHsgd2lkdGg6ICAxMCU7IH1cbiAgLnctMjAtbnMgeyB3aWR0aDogIDIwJTsgfVxuICAudy0yNS1ucyB7IHdpZHRoOiAgMjUlOyB9XG4gIC53LTMwLW5zIHsgd2lkdGg6ICAzMCU7IH1cbiAgLnctMzMtbnMgeyB3aWR0aDogIDMzJTsgfVxuICAudy0zNC1ucyB7IHdpZHRoOiAgMzQlOyB9XG4gIC53LTQwLW5zIHsgd2lkdGg6ICA0MCU7IH1cbiAgLnctNTAtbnMgeyB3aWR0aDogIDUwJTsgfVxuICAudy02MC1ucyB7IHdpZHRoOiAgNjAlOyB9XG4gIC53LTcwLW5zIHsgd2lkdGg6ICA3MCU7IH1cbiAgLnctNzUtbnMgeyB3aWR0aDogIDc1JTsgfVxuICAudy04MC1ucyB7IHdpZHRoOiAgODAlOyB9XG4gIC53LTkwLW5zIHsgd2lkdGg6ICA5MCU7IH1cbiAgLnctMTAwLW5zIHsgd2lkdGg6IDEwMCU7IH1cbiAgLnctdGhpcmQtbnMgeyB3aWR0aDogKDEwMCUgLyAzKTsgfVxuICAudy10d28tdGhpcmRzLW5zIHsgd2lkdGg6ICgxMDAlIC8gMS41KTsgfVxuICAudy1hdXRvLW5zIHsgd2lkdGg6IGF1dG87IH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbWVkaXVtfSB7XG4gIC53MS1tIHsgICAgICB3aWR0aDogJHdpZHRoLTE7IH1cbiAgLncyLW0geyAgICAgIHdpZHRoOiAkd2lkdGgtMjsgfVxuICAudzMtbSB7ICAgICAgd2lkdGg6ICR3aWR0aC0zOyB9XG4gIC53NC1tIHsgICAgICB3aWR0aDogJHdpZHRoLTQ7IH1cbiAgLnc1LW0geyAgICAgIHdpZHRoOiAkd2lkdGgtNTsgfVxuICAudy0xMC1tIHsgd2lkdGg6ICAxMCU7IH1cbiAgLnctMjAtbSB7IHdpZHRoOiAgMjAlOyB9XG4gIC53LTI1LW0geyB3aWR0aDogIDI1JTsgfVxuICAudy0zMC1tIHsgd2lkdGg6ICAzMCU7IH1cbiAgLnctMzMtbSB7IHdpZHRoOiAgMzMlOyB9XG4gIC53LTM0LW0geyB3aWR0aDogIDM0JTsgfVxuICAudy00MC1tIHsgd2lkdGg6ICA0MCU7IH1cbiAgLnctNTAtbSB7IHdpZHRoOiAgNTAlOyB9XG4gIC53LTYwLW0geyB3aWR0aDogIDYwJTsgfVxuICAudy03MC1tIHsgd2lkdGg6ICA3MCU7IH1cbiAgLnctNzUtbSB7IHdpZHRoOiAgNzUlOyB9XG4gIC53LTgwLW0geyB3aWR0aDogIDgwJTsgfVxuICAudy05MC1tIHsgd2lkdGg6ICA5MCU7IH1cbiAgLnctMTAwLW0geyB3aWR0aDogMTAwJTsgfVxuICAudy10aGlyZC1tIHsgd2lkdGg6ICgxMDAlIC8gMyk7IH1cbiAgLnctdHdvLXRoaXJkcy1tIHsgd2lkdGg6ICgxMDAlIC8gMS41KTsgfVxuICAudy1hdXRvLW0geyAgICB3aWR0aDogYXV0bzsgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1sYXJnZX0ge1xuICAudzEtbCB7ICAgICAgd2lkdGg6ICR3aWR0aC0xOyB9XG4gIC53Mi1sIHsgICAgICB3aWR0aDogJHdpZHRoLTI7IH1cbiAgLnczLWwgeyAgICAgIHdpZHRoOiAkd2lkdGgtMzsgfVxuICAudzQtbCB7ICAgICAgd2lkdGg6ICR3aWR0aC00OyB9XG4gIC53NS1sIHsgICAgICB3aWR0aDogJHdpZHRoLTU7IH1cbiAgLnctMTAtbCB7ICAgIHdpZHRoOiAgMTAlOyB9XG4gIC53LTIwLWwgeyAgICB3aWR0aDogIDIwJTsgfVxuICAudy0yNS1sIHsgICAgd2lkdGg6ICAyNSU7IH1cbiAgLnctMzAtbCB7ICAgIHdpZHRoOiAgMzAlOyB9XG4gIC53LTMzLWwgeyAgICB3aWR0aDogIDMzJTsgfVxuICAudy0zNC1sIHsgICAgd2lkdGg6ICAzNCU7IH1cbiAgLnctNDAtbCB7ICAgIHdpZHRoOiAgNDAlOyB9XG4gIC53LTUwLWwgeyAgICB3aWR0aDogIDUwJTsgfVxuICAudy02MC1sIHsgICAgd2lkdGg6ICA2MCU7IH1cbiAgLnctNzAtbCB7ICAgIHdpZHRoOiAgNzAlOyB9XG4gIC53LTc1LWwgeyAgICB3aWR0aDogIDc1JTsgfVxuICAudy04MC1sIHsgICAgd2lkdGg6ICA4MCU7IH1cbiAgLnctOTAtbCB7ICAgIHdpZHRoOiAgOTAlOyB9XG4gIC53LTEwMC1sIHsgICB3aWR0aDogMTAwJTsgfVxuICAudy10aGlyZC1sIHsgd2lkdGg6ICgxMDAlIC8gMyk7IH1cbiAgLnctdHdvLXRoaXJkcy1sIHsgd2lkdGg6ICgxMDAlIC8gMS41KTsgfVxuICAudy1hdXRvLWwgeyAgICB3aWR0aDogYXV0bzsgfVxufVxuIiwiXG4vLyBDb252ZXJ0ZWQgVmFyaWFibGVzXG5cblxuLy8gQ3VzdG9tIE1lZGlhIFF1ZXJ5IFZhcmlhYmxlc1xuXG5cbi8qXG5cbiAgICBPVkVSRkxPV1xuXG4gICAgTWVkaWEgUXVlcnkgRXh0ZW5zaW9uczpcbiAgICAgIC1ucyA9IG5vdC1zbWFsbFxuICAgICAgLW0gID0gbWVkaXVtXG4gICAgICAtbCAgPSBsYXJnZVxuXG4gKi9cblxuLm92ZXJmbG93LXZpc2libGUgeyBvdmVyZmxvdzogdmlzaWJsZTsgfVxuLm92ZXJmbG93LWhpZGRlbiB7IG92ZXJmbG93OiBoaWRkZW47IH1cbi5vdmVyZmxvdy1zY3JvbGwgeyBvdmVyZmxvdzogc2Nyb2xsOyB9XG4ub3ZlcmZsb3ctYXV0byB7IG92ZXJmbG93OiBhdXRvOyB9XG5cbi5vdmVyZmxvdy14LXZpc2libGUgeyBvdmVyZmxvdy14OiB2aXNpYmxlOyB9XG4ub3ZlcmZsb3cteC1oaWRkZW4geyBvdmVyZmxvdy14OiBoaWRkZW47IH1cbi5vdmVyZmxvdy14LXNjcm9sbCB7IG92ZXJmbG93LXg6IHNjcm9sbDsgfVxuLm92ZXJmbG93LXgtYXV0byB7IG92ZXJmbG93LXg6IGF1dG87IH1cblxuLm92ZXJmbG93LXktdmlzaWJsZSB7IG92ZXJmbG93LXk6IHZpc2libGU7IH1cbi5vdmVyZmxvdy15LWhpZGRlbiB7IG92ZXJmbG93LXk6IGhpZGRlbjsgfVxuLm92ZXJmbG93LXktc2Nyb2xsIHsgb3ZlcmZsb3cteTogc2Nyb2xsOyB9XG4ub3ZlcmZsb3cteS1hdXRvIHsgb3ZlcmZsb3cteTogYXV0bzsgfVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1ub3Qtc21hbGx9IHtcbiAgLm92ZXJmbG93LXZpc2libGUtbnMgeyBvdmVyZmxvdzogdmlzaWJsZTsgfVxuICAub3ZlcmZsb3ctaGlkZGVuLW5zIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAub3ZlcmZsb3ctc2Nyb2xsLW5zIHsgb3ZlcmZsb3c6IHNjcm9sbDsgfVxuICAub3ZlcmZsb3ctYXV0by1ucyB7IG92ZXJmbG93OiBhdXRvOyB9XG4gIC5vdmVyZmxvdy14LXZpc2libGUtbnMgeyBvdmVyZmxvdy14OiB2aXNpYmxlOyB9XG4gIC5vdmVyZmxvdy14LWhpZGRlbi1ucyB7IG92ZXJmbG93LXg6IGhpZGRlbjsgfVxuICAub3ZlcmZsb3cteC1zY3JvbGwtbnMgeyBvdmVyZmxvdy14OiBzY3JvbGw7IH1cbiAgLm92ZXJmbG93LXgtYXV0by1ucyB7IG92ZXJmbG93LXg6IGF1dG87IH1cblxuICAub3ZlcmZsb3cteS12aXNpYmxlLW5zIHsgb3ZlcmZsb3cteTogdmlzaWJsZTsgfVxuICAub3ZlcmZsb3cteS1oaWRkZW4tbnMgeyBvdmVyZmxvdy15OiBoaWRkZW47IH1cbiAgLm92ZXJmbG93LXktc2Nyb2xsLW5zIHsgb3ZlcmZsb3cteTogc2Nyb2xsOyB9XG4gIC5vdmVyZmxvdy15LWF1dG8tbnMgeyBvdmVyZmxvdy15OiBhdXRvOyB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW1lZGl1bX0ge1xuICAub3ZlcmZsb3ctdmlzaWJsZS1tIHsgb3ZlcmZsb3c6IHZpc2libGU7IH1cbiAgLm92ZXJmbG93LWhpZGRlbi1tIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAub3ZlcmZsb3ctc2Nyb2xsLW0geyBvdmVyZmxvdzogc2Nyb2xsOyB9XG4gIC5vdmVyZmxvdy1hdXRvLW0geyBvdmVyZmxvdzogYXV0bzsgfVxuXG4gIC5vdmVyZmxvdy14LXZpc2libGUtbSB7IG92ZXJmbG93LXg6IHZpc2libGU7IH1cbiAgLm92ZXJmbG93LXgtaGlkZGVuLW0geyBvdmVyZmxvdy14OiBoaWRkZW47IH1cbiAgLm92ZXJmbG93LXgtc2Nyb2xsLW0geyBvdmVyZmxvdy14OiBzY3JvbGw7IH1cbiAgLm92ZXJmbG93LXgtYXV0by1tIHsgb3ZlcmZsb3cteDogYXV0bzsgfVxuXG4gIC5vdmVyZmxvdy15LXZpc2libGUtbSB7IG92ZXJmbG93LXk6IHZpc2libGU7IH1cbiAgLm92ZXJmbG93LXktaGlkZGVuLW0geyBvdmVyZmxvdy15OiBoaWRkZW47IH1cbiAgLm92ZXJmbG93LXktc2Nyb2xsLW0geyBvdmVyZmxvdy15OiBzY3JvbGw7IH1cbiAgLm92ZXJmbG93LXktYXV0by1tIHsgb3ZlcmZsb3cteTogYXV0bzsgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1sYXJnZX0ge1xuICAub3ZlcmZsb3ctdmlzaWJsZS1sIHsgb3ZlcmZsb3c6IHZpc2libGU7IH1cbiAgLm92ZXJmbG93LWhpZGRlbi1sIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAub3ZlcmZsb3ctc2Nyb2xsLWwgeyBvdmVyZmxvdzogc2Nyb2xsOyB9XG4gIC5vdmVyZmxvdy1hdXRvLWwgeyBvdmVyZmxvdzogYXV0bzsgfVxuXG4gIC5vdmVyZmxvdy14LXZpc2libGUtbCB7IG92ZXJmbG93LXg6IHZpc2libGU7IH1cbiAgLm92ZXJmbG93LXgtaGlkZGVuLWwgeyBvdmVyZmxvdy14OiBoaWRkZW47IH1cbiAgLm92ZXJmbG93LXgtc2Nyb2xsLWwgeyBvdmVyZmxvdy14OiBzY3JvbGw7IH1cbiAgLm92ZXJmbG93LXgtYXV0by1sIHsgb3ZlcmZsb3cteDogYXV0bzsgfVxuXG4gIC5vdmVyZmxvdy15LXZpc2libGUtbCB7IG92ZXJmbG93LXk6IHZpc2libGU7IH1cbiAgLm92ZXJmbG93LXktaGlkZGVuLWwgeyBvdmVyZmxvdy15OiBoaWRkZW47IH1cbiAgLm92ZXJmbG93LXktc2Nyb2xsLWwgeyBvdmVyZmxvdy15OiBzY3JvbGw7IH1cbiAgLm92ZXJmbG93LXktYXV0by1sIHsgb3ZlcmZsb3cteTogYXV0bzsgfVxufVxuIiwiXG4vLyBDb252ZXJ0ZWQgVmFyaWFibGVzXG5cblxuLy8gQ3VzdG9tIE1lZGlhIFF1ZXJ5IFZhcmlhYmxlc1xuXG5cbi8qXG5cbiAgIFBPU0lUSU9OSU5HXG4gICBEb2NzOiBodHRwOi8vdGFjaHlvbnMuaW8vZG9jcy9sYXlvdXQvcG9zaXRpb24vXG5cbiAgIE1lZGlhIFF1ZXJ5IEV4dGVuc2lvbnM6XG4gICAgIC1ucyA9IG5vdC1zbWFsbFxuICAgICAtbSAgPSBtZWRpdW1cbiAgICAgLWwgID0gbGFyZ2VcblxuKi9cblxuLnN0YXRpYyB7IHBvc2l0aW9uOiBzdGF0aWM7IH1cbi5yZWxhdGl2ZSAgeyBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbi5hYnNvbHV0ZSAgeyBwb3NpdGlvbjogYWJzb2x1dGU7IH1cbi5maXhlZCAgeyBwb3NpdGlvbjogZml4ZWQ7IH1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbm90LXNtYWxsfSB7XG4gIC5zdGF0aWMtbnMgeyBwb3NpdGlvbjogc3RhdGljOyB9XG4gIC5yZWxhdGl2ZS1ucyAgeyBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmFic29sdXRlLW5zICB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAuZml4ZWQtbnMgIHsgcG9zaXRpb246IGZpeGVkOyB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW1lZGl1bX0ge1xuICAuc3RhdGljLW0geyBwb3NpdGlvbjogc3RhdGljOyB9XG4gIC5yZWxhdGl2ZS1tICB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYWJzb2x1dGUtbSAgeyBwb3NpdGlvbjogYWJzb2x1dGU7IH1cbiAgLmZpeGVkLW0gIHsgcG9zaXRpb246IGZpeGVkOyB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LWxhcmdlfSB7XG4gIC5zdGF0aWMtbCB7IHBvc2l0aW9uOiBzdGF0aWM7IH1cbiAgLnJlbGF0aXZlLWwgIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5hYnNvbHV0ZS1sICB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAuZml4ZWQtbCAgeyBwb3NpdGlvbjogZml4ZWQ7IH1cbn1cbiIsIlxuLy8gQ29udmVydGVkIFZhcmlhYmxlc1xuXG5cbi8vIEN1c3RvbSBNZWRpYSBRdWVyeSBWYXJpYWJsZXNcblxuXG4vKlxuXG4gICAgT1BBQ0lUWVxuICAgIERvY3M6IGh0dHA6Ly90YWNoeW9ucy5pby9kb2NzL3RoZW1lcy9vcGFjaXR5L1xuXG4qL1xuXG4uby0xMDAgeyBvcGFjaXR5OiAxOyAgICB9XG4uby05MCAgeyBvcGFjaXR5OiAuOTsgICB9XG4uby04MCAgeyBvcGFjaXR5OiAuODsgICB9XG4uby03MCAgeyBvcGFjaXR5OiAuNzsgICB9XG4uby02MCAgeyBvcGFjaXR5OiAuNjsgICB9XG4uby01MCAgeyBvcGFjaXR5OiAuNTsgICB9XG4uby00MCAgeyBvcGFjaXR5OiAuNDsgICB9XG4uby0zMCAgeyBvcGFjaXR5OiAuMzsgICB9XG4uby0yMCAgeyBvcGFjaXR5OiAuMjsgICB9XG4uby0xMCAgeyBvcGFjaXR5OiAuMTsgICB9XG4uby0wNSAgeyBvcGFjaXR5OiAuMDU7ICB9XG4uby0wMjUgeyBvcGFjaXR5OiAuMDI1OyB9XG4uby0wICAgeyBvcGFjaXR5OiAwOyB9XG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLypcblxuICAgUk9UQVRJT05TXG5cbiovXG5cbi5yb3RhdGUtNDUgeyB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH1cbi5yb3RhdGUtOTAgeyB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH1cbi5yb3RhdGUtMTM1IHsgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTsgfVxuLnJvdGF0ZS0xODAgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9XG4ucm90YXRlLTIyNSB7IHRyYW5zZm9ybTogcm90YXRlKDIyNWRlZyk7IH1cbi5yb3RhdGUtMjcwIHsgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsgfVxuLnJvdGF0ZS0zMTUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzMTVkZWcpOyB9XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW5vdC1zbWFsbH17XG4gIC5yb3RhdGUtNDUtbnMgeyB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH1cbiAgLnJvdGF0ZS05MC1ucyB7IHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuICAucm90YXRlLTEzNS1ucyB7IHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7IH1cbiAgLnJvdGF0ZS0xODAtbnMgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9XG4gIC5yb3RhdGUtMjI1LW5zIHsgdHJhbnNmb3JtOiByb3RhdGUoMjI1ZGVnKTsgfVxuICAucm90YXRlLTI3MC1ucyB7IHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7IH1cbiAgLnJvdGF0ZS0zMTUtbnMgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzMTVkZWcpOyB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW1lZGl1bX17XG4gIC5yb3RhdGUtNDUtbSB7IHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsgfVxuICAucm90YXRlLTkwLW0geyB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH1cbiAgLnJvdGF0ZS0xMzUtbSB7IHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7IH1cbiAgLnJvdGF0ZS0xODAtbSB7IHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cbiAgLnJvdGF0ZS0yMjUtbSB7IHRyYW5zZm9ybTogcm90YXRlKDIyNWRlZyk7IH1cbiAgLnJvdGF0ZS0yNzAtbSB7IHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7IH1cbiAgLnJvdGF0ZS0zMTUtbSB7IHRyYW5zZm9ybTogcm90YXRlKDMxNWRlZyk7IH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbGFyZ2V9e1xuICAucm90YXRlLTQ1LWwgeyB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH1cbiAgLnJvdGF0ZS05MC1sIHsgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB9XG4gIC5yb3RhdGUtMTM1LWwgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpOyB9XG4gIC5yb3RhdGUtMTgwLWwgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9XG4gIC5yb3RhdGUtMjI1LWwgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyMjVkZWcpOyB9XG4gIC5yb3RhdGUtMjcwLWwgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpOyB9XG4gIC5yb3RhdGUtMzE1LWwgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzMTVkZWcpOyB9XG59XG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLypcblxuICAgU0tJTlNcbiAgIERvY3M6IGh0dHA6Ly90YWNoeW9ucy5pby9kb2NzL3RoZW1lcy9za2lucy9cblxuICAgQ2xhc3NlcyBmb3Igc2V0dGluZyBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3JvdW5kIGNvbG9ycyBvbiBlbGVtZW50cy5cbiAgIElmIHlvdSBoYXZlbid0IGRlY2xhcmVkIGEgYm9yZGVyIGNvbG9yLCBidXQgc2V0IGJvcmRlciBvbiBhbiBlbGVtZW50LCBpdCB3aWxsXG4gICBiZSBzZXQgdG8gdGhlIGN1cnJlbnQgdGV4dCBjb2xvci5cblxuKi9cblxuLyogVGV4dCBjb2xvcnMgKi9cblxuLmJsYWNrLTkwIHsgICAgICAgICBjb2xvcjogJGJsYWNrLTkwOyB9XG4uYmxhY2stODAgeyAgICAgICAgIGNvbG9yOiAkYmxhY2stODA7IH1cbi5ibGFjay03MCB7ICAgICAgICAgY29sb3I6ICRibGFjay03MDsgfVxuLmJsYWNrLTYwIHsgICAgICAgICBjb2xvcjogJGJsYWNrLTYwOyB9XG4uYmxhY2stNTAgeyAgICAgICAgIGNvbG9yOiAkYmxhY2stNTA7IH1cbi5ibGFjay00MCB7ICAgICAgICAgY29sb3I6ICRibGFjay00MDsgfVxuLmJsYWNrLTMwIHsgICAgICAgICBjb2xvcjogJGJsYWNrLTMwOyB9XG4uYmxhY2stMjAgeyAgICAgICAgIGNvbG9yOiAkYmxhY2stMjA7IH1cbi5ibGFjay0xMCB7ICAgICAgICAgY29sb3I6ICRibGFjay0xMDsgfVxuLmJsYWNrLTA1IHsgICAgICAgICBjb2xvcjogJGJsYWNrLTA1OyB9XG5cbi53aGl0ZS05MCB7ICAgICAgICAgY29sb3I6ICR3aGl0ZS05MDsgfVxuLndoaXRlLTgwIHsgICAgICAgICBjb2xvcjogJHdoaXRlLTgwOyB9XG4ud2hpdGUtNzAgeyAgICAgICAgIGNvbG9yOiAkd2hpdGUtNzA7IH1cbi53aGl0ZS02MCB7ICAgICAgICAgY29sb3I6ICR3aGl0ZS02MDsgfVxuLndoaXRlLTUwIHsgICAgICAgICBjb2xvcjogJHdoaXRlLTUwOyB9XG4ud2hpdGUtNDAgeyAgICAgICAgIGNvbG9yOiAkd2hpdGUtNDA7IH1cbi53aGl0ZS0zMCB7ICAgICAgICAgY29sb3I6ICR3aGl0ZS0zMDsgfVxuLndoaXRlLTIwIHsgICAgICAgICBjb2xvcjogJHdoaXRlLTIwOyB9XG4ud2hpdGUtMTAgeyAgICAgICAgIGNvbG9yOiAkd2hpdGUtMTA7IH1cblxuLmJsYWNrIHsgICAgICAgICBjb2xvcjogJGJsYWNrOyB9XG4ubmVhci1ibGFjayB7ICAgIGNvbG9yOiAkbmVhci1ibGFjazsgfVxuLmRhcmstZ3JheSB7ICAgICBjb2xvcjogJGRhcmstZ3JheTsgfVxuLm1pZC1ncmF5IHsgICAgICBjb2xvcjogJG1pZC1ncmF5OyB9XG4uZ3JheSB7ICAgICAgICAgIGNvbG9yOiAkZ3JheTsgfVxuLnNpbHZlciAgeyAgICAgICBjb2xvcjogJHNpbHZlcjsgfVxuLmxpZ2h0LXNpbHZlciB7ICBjb2xvcjogJGxpZ2h0LXNpbHZlcjsgfVxuLm1vb24tZ3JheSB7ICAgICBjb2xvcjogJG1vb24tZ3JheTsgfVxuLmxpZ2h0LWdyYXkgeyAgICBjb2xvcjogJGxpZ2h0LWdyYXk7IH1cbi5uZWFyLXdoaXRlIHsgICAgY29sb3I6ICRuZWFyLXdoaXRlOyB9XG4ud2hpdGUgeyAgICAgICAgIGNvbG9yOiAkd2hpdGU7IH1cblxuLmRhcmstcmVkIHsgY29sb3I6ICRkYXJrLXJlZDsgfVxuLnJlZCB7IGNvbG9yOiAkcmVkOyB9XG4ubGlnaHQtcmVkIHsgY29sb3I6ICRsaWdodC1yZWQ7IH1cbi5vcmFuZ2UgeyBjb2xvcjogJG9yYW5nZTsgfVxuLmdvbGQgeyBjb2xvcjogJGdvbGQ7IH1cbi55ZWxsb3cgeyBjb2xvcjogJHllbGxvdzsgfVxuLmxpZ2h0LXllbGxvdyB7IGNvbG9yOiAkbGlnaHQteWVsbG93OyB9XG4ucHVycGxlIHsgY29sb3I6ICRwdXJwbGU7IH1cbi5saWdodC1wdXJwbGUgeyBjb2xvcjogJGxpZ2h0LXB1cnBsZTsgfVxuLmRhcmstcGluayB7IGNvbG9yOiAkZGFyay1waW5rOyB9XG4uaG90LXBpbmsgeyBjb2xvcjogJGhvdC1waW5rOyB9XG4ucGluayB7IGNvbG9yOiAkcGluazsgfVxuLmxpZ2h0LXBpbmsgeyBjb2xvcjogJGxpZ2h0LXBpbms7IH1cbi5kYXJrLWdyZWVuIHsgY29sb3I6ICRkYXJrLWdyZWVuOyB9XG4uZ3JlZW4geyBjb2xvcjogJGdyZWVuOyB9XG4ubGlnaHQtZ3JlZW4geyBjb2xvcjogJGxpZ2h0LWdyZWVuOyB9XG4ubmF2eSB7IGNvbG9yOiAkbmF2eTsgfVxuLmRhcmstYmx1ZSB7IGNvbG9yOiAkZGFyay1ibHVlOyB9XG4uYmx1ZSB7IGNvbG9yOiAkYmx1ZTsgfVxuLmxpZ2h0LWJsdWUgeyBjb2xvcjogJGxpZ2h0LWJsdWU7IH1cbi5saWdodGVzdC1ibHVlIHsgY29sb3I6ICRsaWdodGVzdC1ibHVlOyB9XG4ud2FzaGVkLWJsdWUgeyBjb2xvcjogJHdhc2hlZC1ibHVlOyB9XG4ud2FzaGVkLWdyZWVuIHsgY29sb3I6ICR3YXNoZWQtZ3JlZW47IH1cbi53YXNoZWQteWVsbG93IHsgY29sb3I6ICR3YXNoZWQteWVsbG93OyB9XG4ud2FzaGVkLXJlZCB7IGNvbG9yOiAkd2FzaGVkLXJlZDsgfVxuLmNvbG9yLWluaGVyaXQgeyBjb2xvcjogaW5oZXJpdDsgfVxuXG4uYmctYmxhY2stOTAgeyAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjay05MDsgfVxuLmJnLWJsYWNrLTgwIHsgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2stODA7IH1cbi5iZy1ibGFjay03MCB7ICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrLTcwOyB9XG4uYmctYmxhY2stNjAgeyAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjay02MDsgfVxuLmJnLWJsYWNrLTUwIHsgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2stNTA7IH1cbi5iZy1ibGFjay00MCB7ICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrLTQwOyB9XG4uYmctYmxhY2stMzAgeyAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjay0zMDsgfVxuLmJnLWJsYWNrLTIwIHsgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2stMjA7IH1cbi5iZy1ibGFjay0xMCB7ICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrLTEwOyB9XG4uYmctYmxhY2stMDUgeyAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjay0wNTsgfVxuLmJnLXdoaXRlLTkwIHsgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS05MDsgfVxuLmJnLXdoaXRlLTgwIHsgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS04MDsgfVxuLmJnLXdoaXRlLTcwIHsgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS03MDsgfVxuLmJnLXdoaXRlLTYwIHsgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS02MDsgfVxuLmJnLXdoaXRlLTUwIHsgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS01MDsgfVxuLmJnLXdoaXRlLTQwIHsgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS00MDsgfVxuLmJnLXdoaXRlLTMwIHsgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS0zMDsgfVxuLmJnLXdoaXRlLTIwIHsgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS0yMDsgfVxuLmJnLXdoaXRlLTEwIHsgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS0xMDsgfVxuXG5cblxuLyogQmFja2dyb3VuZCBjb2xvcnMgKi9cblxuLmJnLWJsYWNrIHsgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7IH1cbi5iZy1uZWFyLWJsYWNrIHsgICAgYmFja2dyb3VuZC1jb2xvcjogJG5lYXItYmxhY2s7IH1cbi5iZy1kYXJrLWdyYXkgeyAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstZ3JheTsgfVxuLmJnLW1pZC1ncmF5IHsgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWlkLWdyYXk7IH1cbi5iZy1ncmF5IHsgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXk7IH1cbi5iZy1zaWx2ZXIgIHsgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNpbHZlcjsgfVxuLmJnLWxpZ2h0LXNpbHZlciB7ICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtc2lsdmVyOyB9XG4uYmctbW9vbi1ncmF5IHsgICAgIGJhY2tncm91bmQtY29sb3I6ICRtb29uLWdyYXk7IH1cbi5iZy1saWdodC1ncmF5IHsgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyYXk7IH1cbi5iZy1uZWFyLXdoaXRlIHsgICAgYmFja2dyb3VuZC1jb2xvcjogJG5lYXItd2hpdGU7IH1cbi5iZy13aGl0ZSB7ICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlOyB9XG4uYmctdHJhbnNwYXJlbnQgeyAgIGJhY2tncm91bmQtY29sb3I6ICR0cmFuc3BhcmVudDsgfVxuXG4uYmctZGFyay1yZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1yZWQ7IH1cbi5iZy1yZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkOyB9XG4uYmctbGlnaHQtcmVkIHsgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LXJlZDsgfVxuLmJnLW9yYW5nZSB7IGJhY2tncm91bmQtY29sb3I6ICRvcmFuZ2U7IH1cbi5iZy1nb2xkIHsgYmFja2dyb3VuZC1jb2xvcjogJGdvbGQ7IH1cbi5iZy15ZWxsb3cgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93OyB9XG4uYmctbGlnaHQteWVsbG93IHsgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LXllbGxvdzsgfVxuLmJnLXB1cnBsZSB7IGJhY2tncm91bmQtY29sb3I6ICRwdXJwbGU7IH1cbi5iZy1saWdodC1wdXJwbGUgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtcHVycGxlOyB9XG4uYmctZGFyay1waW5rIHsgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstcGluazsgfVxuLmJnLWhvdC1waW5rIHsgYmFja2dyb3VuZC1jb2xvcjogJGhvdC1waW5rOyB9XG4uYmctcGluayB7IGJhY2tncm91bmQtY29sb3I6ICRwaW5rOyB9XG4uYmctbGlnaHQtcGluayB7IGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1waW5rOyB9XG4uYmctZGFyay1ncmVlbiB7IGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWdyZWVuOyB9XG4uYmctZ3JlZW4geyBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47IH1cbi5iZy1saWdodC1ncmVlbiB7IGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmVlbjsgfVxuLmJnLW5hdnkgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eTsgfVxuLmJnLWRhcmstYmx1ZSB7IGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWJsdWU7IH1cbi5iZy1ibHVlIHsgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7IH1cbi5iZy1saWdodC1ibHVlIHsgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWJsdWU7IH1cbi5iZy1saWdodGVzdC1ibHVlIHsgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0ZXN0LWJsdWU7IH1cbi5iZy13YXNoZWQtYmx1ZSB7IGJhY2tncm91bmQtY29sb3I6ICR3YXNoZWQtYmx1ZTsgfVxuLmJnLXdhc2hlZC1ncmVlbiB7IGJhY2tncm91bmQtY29sb3I6ICR3YXNoZWQtZ3JlZW47IH1cbi5iZy13YXNoZWQteWVsbG93IHsgYmFja2dyb3VuZC1jb2xvcjogJHdhc2hlZC15ZWxsb3c7IH1cbi5iZy13YXNoZWQtcmVkIHsgYmFja2dyb3VuZC1jb2xvcjogJHdhc2hlZC1yZWQ7IH1cbi5iZy1pbmhlcml0IHsgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsgfVxuIiwiXG4vLyBDb252ZXJ0ZWQgVmFyaWFibGVzXG5cblxuLy8gQ3VzdG9tIE1lZGlhIFF1ZXJ5IFZhcmlhYmxlc1xuXG5cbi8qXG5cbiAgIFNLSU5TOlBTRVVET1xuXG4gICBDdXN0b21pemUgdGhlIGNvbG9yIG9mIGFuIGVsZW1lbnQgd2hlblxuICAgaXQgaXMgZm9jdXNlZCBvciBob3ZlcmVkIG92ZXIuXG5cbiAqL1xuXG4uaG92ZXItYmxhY2s6aG92ZXIsXG4uaG92ZXItYmxhY2s6Zm9jdXMgeyBjb2xvcjogJGJsYWNrOyB9XG4uaG92ZXItbmVhci1ibGFjazpob3Zlcixcbi5ob3Zlci1uZWFyLWJsYWNrOmZvY3VzIHsgY29sb3I6ICRuZWFyLWJsYWNrOyB9XG4uaG92ZXItZGFyay1ncmF5OmhvdmVyLFxuLmhvdmVyLWRhcmstZ3JheTpmb2N1cyB7IGNvbG9yOiAkZGFyay1ncmF5OyB9XG4uaG92ZXItbWlkLWdyYXk6aG92ZXIsXG4uaG92ZXItbWlkLWdyYXk6Zm9jdXMgeyBjb2xvcjogJG1pZC1ncmF5OyB9XG4uaG92ZXItZ3JheTpob3Zlcixcbi5ob3Zlci1ncmF5OmZvY3VzIHsgY29sb3I6ICRncmF5OyB9XG4uaG92ZXItc2lsdmVyOmhvdmVyLFxuLmhvdmVyLXNpbHZlcjpmb2N1cyB7IGNvbG9yOiAkc2lsdmVyOyB9XG4uaG92ZXItbGlnaHQtc2lsdmVyOmhvdmVyLFxuLmhvdmVyLWxpZ2h0LXNpbHZlcjpmb2N1cyB7IGNvbG9yOiAkbGlnaHQtc2lsdmVyOyB9XG4uaG92ZXItbW9vbi1ncmF5OmhvdmVyLFxuLmhvdmVyLW1vb24tZ3JheTpmb2N1cyB7IGNvbG9yOiAkbW9vbi1ncmF5OyB9XG4uaG92ZXItbGlnaHQtZ3JheTpob3Zlcixcbi5ob3Zlci1saWdodC1ncmF5OmZvY3VzIHsgY29sb3I6ICRsaWdodC1ncmF5OyB9XG4uaG92ZXItbmVhci13aGl0ZTpob3Zlcixcbi5ob3Zlci1uZWFyLXdoaXRlOmZvY3VzIHsgY29sb3I6ICRuZWFyLXdoaXRlOyB9XG4uaG92ZXItd2hpdGU6aG92ZXIsXG4uaG92ZXItd2hpdGU6Zm9jdXMgeyBjb2xvcjogJHdoaXRlOyB9XG5cbi5ob3Zlci1ibGFjay05MDpob3Zlcixcbi5ob3Zlci1ibGFjay05MDpmb2N1cyB7IGNvbG9yOiAkYmxhY2stOTA7IH1cbi5ob3Zlci1ibGFjay04MDpob3Zlcixcbi5ob3Zlci1ibGFjay04MDpmb2N1cyB7IGNvbG9yOiAkYmxhY2stODA7IH1cbi5ob3Zlci1ibGFjay03MDpob3Zlcixcbi5ob3Zlci1ibGFjay03MDpmb2N1cyB7IGNvbG9yOiAkYmxhY2stNzA7IH1cbi5ob3Zlci1ibGFjay02MDpob3Zlcixcbi5ob3Zlci1ibGFjay02MDpmb2N1cyB7IGNvbG9yOiAkYmxhY2stNjA7IH1cbi5ob3Zlci1ibGFjay01MDpob3Zlcixcbi5ob3Zlci1ibGFjay01MDpmb2N1cyB7IGNvbG9yOiAkYmxhY2stNTA7IH1cbi5ob3Zlci1ibGFjay00MDpob3Zlcixcbi5ob3Zlci1ibGFjay00MDpmb2N1cyB7IGNvbG9yOiAkYmxhY2stNDA7IH1cbi5ob3Zlci1ibGFjay0zMDpob3Zlcixcbi5ob3Zlci1ibGFjay0zMDpmb2N1cyB7IGNvbG9yOiAkYmxhY2stMzA7IH1cbi5ob3Zlci1ibGFjay0yMDpob3Zlcixcbi5ob3Zlci1ibGFjay0yMDpmb2N1cyB7IGNvbG9yOiAkYmxhY2stMjA7IH1cbi5ob3Zlci1ibGFjay0xMDpob3Zlcixcbi5ob3Zlci1ibGFjay0xMDpmb2N1cyB7IGNvbG9yOiAkYmxhY2stMTA7IH1cbi5ob3Zlci13aGl0ZS05MDpob3Zlcixcbi5ob3Zlci13aGl0ZS05MDpmb2N1cyB7IGNvbG9yOiAkd2hpdGUtOTA7IH1cbi5ob3Zlci13aGl0ZS04MDpob3Zlcixcbi5ob3Zlci13aGl0ZS04MDpmb2N1cyB7IGNvbG9yOiAkd2hpdGUtODA7IH1cbi5ob3Zlci13aGl0ZS03MDpob3Zlcixcbi5ob3Zlci13aGl0ZS03MDpmb2N1cyB7IGNvbG9yOiAkd2hpdGUtNzA7IH1cbi5ob3Zlci13aGl0ZS02MDpob3Zlcixcbi5ob3Zlci13aGl0ZS02MDpmb2N1cyB7IGNvbG9yOiAkd2hpdGUtNjA7IH1cbi5ob3Zlci13aGl0ZS01MDpob3Zlcixcbi5ob3Zlci13aGl0ZS01MDpmb2N1cyB7IGNvbG9yOiAkd2hpdGUtNTA7IH1cbi5ob3Zlci13aGl0ZS00MDpob3Zlcixcbi5ob3Zlci13aGl0ZS00MDpmb2N1cyB7IGNvbG9yOiAkd2hpdGUtNDA7IH1cbi5ob3Zlci13aGl0ZS0zMDpob3Zlcixcbi5ob3Zlci13aGl0ZS0zMDpmb2N1cyB7IGNvbG9yOiAkd2hpdGUtMzA7IH1cbi5ob3Zlci13aGl0ZS0yMDpob3Zlcixcbi5ob3Zlci13aGl0ZS0yMDpmb2N1cyB7IGNvbG9yOiAkd2hpdGUtMjA7IH1cbi5ob3Zlci13aGl0ZS0xMDpob3Zlcixcbi5ob3Zlci13aGl0ZS0xMDpmb2N1cyB7IGNvbG9yOiAkd2hpdGUtMTA7IH1cbi5ob3Zlci1pbmhlcml0OmhvdmVyLFxuLmhvdmVyLWluaGVyaXQ6Zm9jdXMgeyBjb2xvcjogaW5oZXJpdDsgfVxuXG4uaG92ZXItYmctYmxhY2s6aG92ZXIsXG4uaG92ZXItYmctYmxhY2s6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7IH1cbi5ob3Zlci1iZy1uZWFyLWJsYWNrOmhvdmVyLFxuLmhvdmVyLWJnLW5lYXItYmxhY2s6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkbmVhci1ibGFjazsgfVxuLmhvdmVyLWJnLWRhcmstZ3JheTpob3Zlcixcbi5ob3Zlci1iZy1kYXJrLWdyYXk6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ncmF5OyB9XG4uaG92ZXItYmctbWlkLWdyYXk6aG92ZXIsXG4uaG92ZXItYmctbWlkLWdyYXk6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkbWlkLWdyYXk7IH1cbi5ob3Zlci1iZy1ncmF5OmhvdmVyLFxuLmhvdmVyLWJnLWdyYXk6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheTsgfVxuLmhvdmVyLWJnLXNpbHZlcjpob3Zlcixcbi5ob3Zlci1iZy1zaWx2ZXI6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkc2lsdmVyOyB9XG4uaG92ZXItYmctbGlnaHQtc2lsdmVyOmhvdmVyLFxuLmhvdmVyLWJnLWxpZ2h0LXNpbHZlcjpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1zaWx2ZXI7IH1cbi5ob3Zlci1iZy1tb29uLWdyYXk6aG92ZXIsXG4uaG92ZXItYmctbW9vbi1ncmF5OmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjogJG1vb24tZ3JheTsgfVxuLmhvdmVyLWJnLWxpZ2h0LWdyYXk6aG92ZXIsXG4uaG92ZXItYmctbGlnaHQtZ3JheTpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5OyB9XG4uaG92ZXItYmctbmVhci13aGl0ZTpob3Zlcixcbi5ob3Zlci1iZy1uZWFyLXdoaXRlOmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjogJG5lYXItd2hpdGU7IH1cbi5ob3Zlci1iZy13aGl0ZTpob3Zlcixcbi5ob3Zlci1iZy13aGl0ZTpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTsgfVxuLmhvdmVyLWJnLXRyYW5zcGFyZW50OmhvdmVyLFxuLmhvdmVyLWJnLXRyYW5zcGFyZW50OmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjogJHRyYW5zcGFyZW50OyB9XG5cbi5ob3Zlci1iZy1ibGFjay05MDpob3Zlcixcbi5ob3Zlci1iZy1ibGFjay05MDpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICRibGFjay05MDsgfVxuLmhvdmVyLWJnLWJsYWNrLTgwOmhvdmVyLFxuLmhvdmVyLWJnLWJsYWNrLTgwOmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrLTgwOyB9XG4uaG92ZXItYmctYmxhY2stNzA6aG92ZXIsXG4uaG92ZXItYmctYmxhY2stNzA6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2stNzA7IH1cbi5ob3Zlci1iZy1ibGFjay02MDpob3Zlcixcbi5ob3Zlci1iZy1ibGFjay02MDpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICRibGFjay02MDsgfVxuLmhvdmVyLWJnLWJsYWNrLTUwOmhvdmVyLFxuLmhvdmVyLWJnLWJsYWNrLTUwOmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrLTUwOyB9XG4uaG92ZXItYmctYmxhY2stNDA6aG92ZXIsXG4uaG92ZXItYmctYmxhY2stNDA6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2stNDA7IH1cbi5ob3Zlci1iZy1ibGFjay0zMDpob3Zlcixcbi5ob3Zlci1iZy1ibGFjay0zMDpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICRibGFjay0zMDsgfVxuLmhvdmVyLWJnLWJsYWNrLTIwOmhvdmVyLFxuLmhvdmVyLWJnLWJsYWNrLTIwOmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrLTIwOyB9XG4uaG92ZXItYmctYmxhY2stMTA6aG92ZXIsXG4uaG92ZXItYmctYmxhY2stMTA6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2stMTA7IH1cbi5ob3Zlci1iZy13aGl0ZS05MDpob3Zlcixcbi5ob3Zlci1iZy13aGl0ZS05MDpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS05MDsgfVxuLmhvdmVyLWJnLXdoaXRlLTgwOmhvdmVyLFxuLmhvdmVyLWJnLXdoaXRlLTgwOmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLTgwOyB9XG4uaG92ZXItYmctd2hpdGUtNzA6aG92ZXIsXG4uaG92ZXItYmctd2hpdGUtNzA6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtNzA7IH1cbi5ob3Zlci1iZy13aGl0ZS02MDpob3Zlcixcbi5ob3Zlci1iZy13aGl0ZS02MDpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS02MDsgfVxuLmhvdmVyLWJnLXdoaXRlLTUwOmhvdmVyLFxuLmhvdmVyLWJnLXdoaXRlLTUwOmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLTUwOyB9XG4uaG92ZXItYmctd2hpdGUtNDA6aG92ZXIsXG4uaG92ZXItYmctd2hpdGUtNDA6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtNDA7IH1cbi5ob3Zlci1iZy13aGl0ZS0zMDpob3Zlcixcbi5ob3Zlci1iZy13aGl0ZS0zMDpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS0zMDsgfVxuLmhvdmVyLWJnLXdoaXRlLTIwOmhvdmVyLFxuLmhvdmVyLWJnLXdoaXRlLTIwOmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLTIwOyB9XG4uaG92ZXItYmctd2hpdGUtMTA6aG92ZXIsXG4uaG92ZXItYmctd2hpdGUtMTA6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtMTA7IH1cblxuLmhvdmVyLWRhcmstcmVkOmhvdmVyLFxuLmhvdmVyLWRhcmstcmVkOmZvY3VzIHsgY29sb3I6ICRkYXJrLXJlZDsgfVxuLmhvdmVyLXJlZDpob3Zlcixcbi5ob3Zlci1yZWQ6Zm9jdXMgeyBjb2xvcjogJHJlZDsgfVxuLmhvdmVyLWxpZ2h0LXJlZDpob3Zlcixcbi5ob3Zlci1saWdodC1yZWQ6Zm9jdXMgeyBjb2xvcjogJGxpZ2h0LXJlZDsgfVxuLmhvdmVyLW9yYW5nZTpob3Zlcixcbi5ob3Zlci1vcmFuZ2U6Zm9jdXMgeyBjb2xvcjogJG9yYW5nZTsgfVxuLmhvdmVyLWdvbGQ6aG92ZXIsXG4uaG92ZXItZ29sZDpmb2N1cyB7IGNvbG9yOiAkZ29sZDsgfVxuLmhvdmVyLXllbGxvdzpob3Zlcixcbi5ob3Zlci15ZWxsb3c6Zm9jdXMgeyBjb2xvcjogJHllbGxvdzsgfVxuLmhvdmVyLWxpZ2h0LXllbGxvdzpob3Zlcixcbi5ob3Zlci1saWdodC15ZWxsb3c6Zm9jdXMgeyBjb2xvcjogJGxpZ2h0LXllbGxvdzsgfVxuLmhvdmVyLXB1cnBsZTpob3Zlcixcbi5ob3Zlci1wdXJwbGU6Zm9jdXMgeyBjb2xvcjogJHB1cnBsZTsgfVxuLmhvdmVyLWxpZ2h0LXB1cnBsZTpob3Zlcixcbi5ob3Zlci1saWdodC1wdXJwbGU6Zm9jdXMgeyBjb2xvcjogJGxpZ2h0LXB1cnBsZTsgfVxuLmhvdmVyLWRhcmstcGluazpob3Zlcixcbi5ob3Zlci1kYXJrLXBpbms6Zm9jdXMgeyBjb2xvcjogJGRhcmstcGluazsgfVxuLmhvdmVyLWhvdC1waW5rOmhvdmVyLFxuLmhvdmVyLWhvdC1waW5rOmZvY3VzIHsgY29sb3I6ICRob3QtcGluazsgfVxuLmhvdmVyLXBpbms6aG92ZXIsXG4uaG92ZXItcGluazpmb2N1cyB7IGNvbG9yOiAkcGluazsgfVxuLmhvdmVyLWxpZ2h0LXBpbms6aG92ZXIsXG4uaG92ZXItbGlnaHQtcGluazpmb2N1cyB7IGNvbG9yOiAkbGlnaHQtcGluazsgfVxuLmhvdmVyLWRhcmstZ3JlZW46aG92ZXIsXG4uaG92ZXItZGFyay1ncmVlbjpmb2N1cyB7IGNvbG9yOiAkZGFyay1ncmVlbjsgfVxuLmhvdmVyLWdyZWVuOmhvdmVyLFxuLmhvdmVyLWdyZWVuOmZvY3VzIHsgY29sb3I6ICRncmVlbjsgfVxuLmhvdmVyLWxpZ2h0LWdyZWVuOmhvdmVyLFxuLmhvdmVyLWxpZ2h0LWdyZWVuOmZvY3VzIHsgY29sb3I6ICRsaWdodC1ncmVlbjsgfVxuLmhvdmVyLW5hdnk6aG92ZXIsXG4uaG92ZXItbmF2eTpmb2N1cyB7IGNvbG9yOiAkbmF2eTsgfVxuLmhvdmVyLWRhcmstYmx1ZTpob3Zlcixcbi5ob3Zlci1kYXJrLWJsdWU6Zm9jdXMgeyBjb2xvcjogJGRhcmstYmx1ZTsgfVxuLmhvdmVyLWJsdWU6aG92ZXIsXG4uaG92ZXItYmx1ZTpmb2N1cyB7IGNvbG9yOiAkYmx1ZTsgfVxuLmhvdmVyLWxpZ2h0LWJsdWU6aG92ZXIsXG4uaG92ZXItbGlnaHQtYmx1ZTpmb2N1cyB7IGNvbG9yOiAkbGlnaHQtYmx1ZTsgfVxuLmhvdmVyLWxpZ2h0ZXN0LWJsdWU6aG92ZXIsXG4uaG92ZXItbGlnaHRlc3QtYmx1ZTpmb2N1cyB7IGNvbG9yOiAkbGlnaHRlc3QtYmx1ZTsgfVxuLmhvdmVyLXdhc2hlZC1ibHVlOmhvdmVyLFxuLmhvdmVyLXdhc2hlZC1ibHVlOmZvY3VzIHsgY29sb3I6ICR3YXNoZWQtYmx1ZTsgfVxuLmhvdmVyLXdhc2hlZC1ncmVlbjpob3Zlcixcbi5ob3Zlci13YXNoZWQtZ3JlZW46Zm9jdXMgeyBjb2xvcjogJHdhc2hlZC1ncmVlbjsgfVxuLmhvdmVyLXdhc2hlZC15ZWxsb3c6aG92ZXIsXG4uaG92ZXItd2FzaGVkLXllbGxvdzpmb2N1cyB7IGNvbG9yOiAkd2FzaGVkLXllbGxvdzsgfVxuLmhvdmVyLXdhc2hlZC1yZWQ6aG92ZXIsXG4uaG92ZXItd2FzaGVkLXJlZDpmb2N1cyB7IGNvbG9yOiAkd2FzaGVkLXJlZDsgfVxuXG4uaG92ZXItYmctZGFyay1yZWQ6aG92ZXIsXG4uaG92ZXItYmctZGFyay1yZWQ6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1yZWQ7IH1cbi5ob3Zlci1iZy1yZWQ6aG92ZXIsXG4uaG92ZXItYmctcmVkOmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjogJHJlZDsgfVxuLmhvdmVyLWJnLWxpZ2h0LXJlZDpob3Zlcixcbi5ob3Zlci1iZy1saWdodC1yZWQ6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtcmVkOyB9XG4uaG92ZXItYmctb3JhbmdlOmhvdmVyLFxuLmhvdmVyLWJnLW9yYW5nZTpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICRvcmFuZ2U7IH1cbi5ob3Zlci1iZy1nb2xkOmhvdmVyLFxuLmhvdmVyLWJnLWdvbGQ6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkZ29sZDsgfVxuLmhvdmVyLWJnLXllbGxvdzpob3Zlcixcbi5ob3Zlci1iZy15ZWxsb3c6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93OyB9XG4uaG92ZXItYmctbGlnaHQteWVsbG93OmhvdmVyLFxuLmhvdmVyLWJnLWxpZ2h0LXllbGxvdzpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICRsaWdodC15ZWxsb3c7IH1cbi5ob3Zlci1iZy1wdXJwbGU6aG92ZXIsXG4uaG92ZXItYmctcHVycGxlOmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjogJHB1cnBsZTsgfVxuLmhvdmVyLWJnLWxpZ2h0LXB1cnBsZTpob3Zlcixcbi5ob3Zlci1iZy1saWdodC1wdXJwbGU6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtcHVycGxlOyB9XG4uaG92ZXItYmctZGFyay1waW5rOmhvdmVyLFxuLmhvdmVyLWJnLWRhcmstcGluazpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICRkYXJrLXBpbms7IH1cbi5ob3Zlci1iZy1ob3QtcGluazpob3Zlcixcbi5ob3Zlci1iZy1ob3QtcGluazpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICRob3QtcGluazsgfVxuLmhvdmVyLWJnLXBpbms6aG92ZXIsXG4uaG92ZXItYmctcGluazpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICRwaW5rOyB9XG4uaG92ZXItYmctbGlnaHQtcGluazpob3Zlcixcbi5ob3Zlci1iZy1saWdodC1waW5rOmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LXBpbms7IH1cbi5ob3Zlci1iZy1kYXJrLWdyZWVuOmhvdmVyLFxuLmhvdmVyLWJnLWRhcmstZ3JlZW46Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ncmVlbjsgfVxuLmhvdmVyLWJnLWdyZWVuOmhvdmVyLFxuLmhvdmVyLWJnLWdyZWVuOmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjogJGdyZWVuOyB9XG4uaG92ZXItYmctbGlnaHQtZ3JlZW46aG92ZXIsXG4uaG92ZXItYmctbGlnaHQtZ3JlZW46Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JlZW47IH1cbi5ob3Zlci1iZy1uYXZ5OmhvdmVyLFxuLmhvdmVyLWJnLW5hdnk6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eTsgfVxuLmhvdmVyLWJnLWRhcmstYmx1ZTpob3Zlcixcbi5ob3Zlci1iZy1kYXJrLWJsdWU6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ibHVlOyB9XG4uaG92ZXItYmctYmx1ZTpob3Zlcixcbi5ob3Zlci1iZy1ibHVlOmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7IH1cbi5ob3Zlci1iZy1saWdodC1ibHVlOmhvdmVyLFxuLmhvdmVyLWJnLWxpZ2h0LWJsdWU6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtYmx1ZTsgfVxuLmhvdmVyLWJnLWxpZ2h0ZXN0LWJsdWU6aG92ZXIsXG4uaG92ZXItYmctbGlnaHRlc3QtYmx1ZTpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICRsaWdodGVzdC1ibHVlOyB9XG4uaG92ZXItYmctd2FzaGVkLWJsdWU6aG92ZXIsXG4uaG92ZXItYmctd2FzaGVkLWJsdWU6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkd2FzaGVkLWJsdWU7IH1cbi5ob3Zlci1iZy13YXNoZWQtZ3JlZW46aG92ZXIsXG4uaG92ZXItYmctd2FzaGVkLWdyZWVuOmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjogJHdhc2hlZC1ncmVlbjsgfVxuLmhvdmVyLWJnLXdhc2hlZC15ZWxsb3c6aG92ZXIsXG4uaG92ZXItYmctd2FzaGVkLXllbGxvdzpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICR3YXNoZWQteWVsbG93OyB9XG4uaG92ZXItYmctd2FzaGVkLXJlZDpob3Zlcixcbi5ob3Zlci1iZy13YXNoZWQtcmVkOmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjogJHdhc2hlZC1yZWQ7IH1cbi5ob3Zlci1iZy1pbmhlcml0OmhvdmVyLFxuLmhvdmVyLWJnLWluaGVyaXQ6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OyB9XG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLyogVmFyaWFibGVzICovXG5cbi8qXG4gICBTUEFDSU5HXG4gICBEb2NzOiBodHRwOi8vdGFjaHlvbnMuaW8vZG9jcy9sYXlvdXQvc3BhY2luZy9cblxuICAgQW4gZWlnaHQgc3RlcCBwb3dlcnMgb2YgdHdvIHNjYWxlIHJhbmdpbmcgZnJvbSAwIHRvIDE2cmVtLlxuXG4gICBCYXNlOlxuICAgICBwID0gcGFkZGluZ1xuICAgICBtID0gbWFyZ2luXG5cbiAgIE1vZGlmaWVyczpcbiAgICAgYSA9IGFsbFxuICAgICBoID0gaG9yaXpvbnRhbFxuICAgICB2ID0gdmVydGljYWxcbiAgICAgdCA9IHRvcFxuICAgICByID0gcmlnaHRcbiAgICAgYiA9IGJvdHRvbVxuICAgICBsID0gbGVmdFxuXG4gICAgIDAgPSBub25lXG4gICAgIDEgPSAxc3Qgc3RlcCBpbiBzcGFjaW5nIHNjYWxlXG4gICAgIDIgPSAybmQgc3RlcCBpbiBzcGFjaW5nIHNjYWxlXG4gICAgIDMgPSAzcmQgc3RlcCBpbiBzcGFjaW5nIHNjYWxlXG4gICAgIDQgPSA0dGggc3RlcCBpbiBzcGFjaW5nIHNjYWxlXG4gICAgIDUgPSA1dGggc3RlcCBpbiBzcGFjaW5nIHNjYWxlXG4gICAgIDYgPSA2dGggc3RlcCBpbiBzcGFjaW5nIHNjYWxlXG4gICAgIDcgPSA3dGggc3RlcCBpbiBzcGFjaW5nIHNjYWxlXG5cbiAgIE1lZGlhIFF1ZXJ5IEV4dGVuc2lvbnM6XG4gICAgIC1ucyA9IG5vdC1zbWFsbFxuICAgICAtbSAgPSBtZWRpdW1cbiAgICAgLWwgID0gbGFyZ2VcblxuKi9cblxuXG4ucGEwIHsgcGFkZGluZzogJHNwYWNpbmctbm9uZTsgfVxuLnBhMSB7IHBhZGRpbmc6ICRzcGFjaW5nLWV4dHJhLXNtYWxsOyB9XG4ucGEyIHsgcGFkZGluZzogJHNwYWNpbmctc21hbGw7IH1cbi5wYTMgeyBwYWRkaW5nOiAkc3BhY2luZy1tZWRpdW07IH1cbi5wYTQgeyBwYWRkaW5nOiAkc3BhY2luZy1sYXJnZTsgfVxuLnBhNSB7IHBhZGRpbmc6ICRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4ucGE2IHsgcGFkZGluZzogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7IH1cbi5wYTcgeyBwYWRkaW5nOiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTsgfVxuXG4ucGwwIHsgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1ub25lOyB9XG4ucGwxIHsgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuLnBsMiB7IHBhZGRpbmctbGVmdDogJHNwYWNpbmctc21hbGw7IH1cbi5wbDMgeyBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLW1lZGl1bTsgfVxuLnBsNCB7IHBhZGRpbmctbGVmdDogJHNwYWNpbmctbGFyZ2U7IH1cbi5wbDUgeyBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4ucGw2IHsgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuLnBsNyB7IHBhZGRpbmctbGVmdDogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuLnByMCB7IHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLW5vbmU7IH1cbi5wcjEgeyBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuLnByMiB7IHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLXNtYWxsOyB9XG4ucHIzIHsgcGFkZGluZy1yaWdodDogJHNwYWNpbmctbWVkaXVtOyB9XG4ucHI0IHsgcGFkZGluZy1yaWdodDogJHNwYWNpbmctbGFyZ2U7IH1cbi5wcjUgeyBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1sYXJnZTsgfVxuLnByNiB7IHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG4ucHI3IHsgcGFkZGluZy1yaWdodDogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuLnBiMCB7IHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1ub25lOyB9XG4ucGIxIHsgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLWV4dHJhLXNtYWxsOyB9XG4ucGIyIHsgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLXNtYWxsOyB9XG4ucGIzIHsgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLW1lZGl1bTsgfVxuLnBiNCB7IHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1sYXJnZTsgfVxuLnBiNSB7IHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1leHRyYS1sYXJnZTsgfVxuLnBiNiB7IHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuLnBiNyB7IHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTsgfVxuXG4ucHQwIHsgcGFkZGluZy10b3A6ICRzcGFjaW5nLW5vbmU7IH1cbi5wdDEgeyBwYWRkaW5nLXRvcDogJHNwYWNpbmctZXh0cmEtc21hbGw7IH1cbi5wdDIgeyBwYWRkaW5nLXRvcDogJHNwYWNpbmctc21hbGw7IH1cbi5wdDMgeyBwYWRkaW5nLXRvcDogJHNwYWNpbmctbWVkaXVtOyB9XG4ucHQ0IHsgcGFkZGluZy10b3A6ICRzcGFjaW5nLWxhcmdlOyB9XG4ucHQ1IHsgcGFkZGluZy10b3A6ICRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4ucHQ2IHsgcGFkZGluZy10b3A6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG4ucHQ3IHsgcGFkZGluZy10b3A6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG5cbi5wdjAge1xuICBwYWRkaW5nLXRvcDogJHNwYWNpbmctbm9uZTtcbiAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLW5vbmU7XG59XG4ucHYxIHtcbiAgcGFkZGluZy10b3A6ICRzcGFjaW5nLWV4dHJhLXNtYWxsO1xuICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctZXh0cmEtc21hbGw7XG59XG4ucHYyIHtcbiAgcGFkZGluZy10b3A6ICRzcGFjaW5nLXNtYWxsO1xuICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctc21hbGw7XG59XG4ucHYzIHtcbiAgcGFkZGluZy10b3A6ICRzcGFjaW5nLW1lZGl1bTtcbiAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLW1lZGl1bTtcbn1cbi5wdjQge1xuICBwYWRkaW5nLXRvcDogJHNwYWNpbmctbGFyZ2U7XG4gIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1sYXJnZTtcbn1cbi5wdjUge1xuICBwYWRkaW5nLXRvcDogJHNwYWNpbmctZXh0cmEtbGFyZ2U7XG4gIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1leHRyYS1sYXJnZTtcbn1cbi5wdjYge1xuICBwYWRkaW5nLXRvcDogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7XG4gIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTtcbn1cblxuLnB2NyB7XG4gIHBhZGRpbmctdG9wOiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTtcbiAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlO1xufVxuXG4ucGgwIHtcbiAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1ub25lO1xuICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1ub25lO1xufVxuXG4ucGgxIHtcbiAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1leHRyYS1zbWFsbDtcbiAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctZXh0cmEtc21hbGw7XG59XG5cbi5waDIge1xuICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLXNtYWxsO1xuICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1zbWFsbDtcbn1cblxuLnBoMyB7XG4gIHBhZGRpbmctbGVmdDogJHNwYWNpbmctbWVkaXVtO1xuICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1tZWRpdW07XG59XG5cbi5waDQge1xuICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLWxhcmdlO1xuICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1sYXJnZTtcbn1cblxuLnBoNSB7XG4gIHBhZGRpbmctbGVmdDogJHNwYWNpbmctZXh0cmEtbGFyZ2U7XG4gIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLWxhcmdlO1xufVxuXG4ucGg2IHtcbiAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTtcbiAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7XG59XG5cbi5waDcge1xuICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlO1xuICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTtcbn1cblxuLm1hMCAgeyAgbWFyZ2luOiAkc3BhY2luZy1ub25lOyB9XG4ubWExIHsgIG1hcmdpbjogJHNwYWNpbmctZXh0cmEtc21hbGw7IH1cbi5tYTIgIHsgIG1hcmdpbjogJHNwYWNpbmctc21hbGw7IH1cbi5tYTMgIHsgIG1hcmdpbjogJHNwYWNpbmctbWVkaXVtOyB9XG4ubWE0ICB7ICBtYXJnaW46ICRzcGFjaW5nLWxhcmdlOyB9XG4ubWE1ICB7ICBtYXJnaW46ICRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4ubWE2IHsgIG1hcmdpbjogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7IH1cbi5tYTcgeyBtYXJnaW46ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG5cbi5tbDAgIHsgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1ub25lOyB9XG4ubWwxIHsgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuLm1sMiAgeyAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLXNtYWxsOyB9XG4ubWwzICB7ICBtYXJnaW4tbGVmdDogJHNwYWNpbmctbWVkaXVtOyB9XG4ubWw0ICB7ICBtYXJnaW4tbGVmdDogJHNwYWNpbmctbGFyZ2U7IH1cbi5tbDUgIHsgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1leHRyYS1sYXJnZTsgfVxuLm1sNiB7ICBtYXJnaW4tbGVmdDogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7IH1cbi5tbDcgeyBtYXJnaW4tbGVmdDogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuLm1yMCAgeyAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1ub25lOyB9XG4ubXIxIHsgIG1hcmdpbi1yaWdodDogJHNwYWNpbmctZXh0cmEtc21hbGw7IH1cbi5tcjIgIHsgIG1hcmdpbi1yaWdodDogJHNwYWNpbmctc21hbGw7IH1cbi5tcjMgIHsgIG1hcmdpbi1yaWdodDogJHNwYWNpbmctbWVkaXVtOyB9XG4ubXI0ICB7ICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLWxhcmdlOyB9XG4ubXI1ICB7ICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4ubXI2IHsgIG1hcmdpbi1yaWdodDogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7IH1cbi5tcjcgeyBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG5cbi5tYjAgIHsgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLW5vbmU7IH1cbi5tYjEgeyAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctZXh0cmEtc21hbGw7IH1cbi5tYjIgIHsgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLXNtYWxsOyB9XG4ubWIzICB7ICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1tZWRpdW07IH1cbi5tYjQgIHsgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLWxhcmdlOyB9XG4ubWI1ICB7ICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1leHRyYS1sYXJnZTsgfVxuLm1iNiB7ICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuLm1iNyB7IG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG5cbi5tdDAgIHsgIG1hcmdpbi10b3A6ICRzcGFjaW5nLW5vbmU7IH1cbi5tdDEgeyAgbWFyZ2luLXRvcDogJHNwYWNpbmctZXh0cmEtc21hbGw7IH1cbi5tdDIgIHsgIG1hcmdpbi10b3A6ICRzcGFjaW5nLXNtYWxsOyB9XG4ubXQzICB7ICBtYXJnaW4tdG9wOiAkc3BhY2luZy1tZWRpdW07IH1cbi5tdDQgIHsgIG1hcmdpbi10b3A6ICRzcGFjaW5nLWxhcmdlOyB9XG4ubXQ1ICB7ICBtYXJnaW4tdG9wOiAkc3BhY2luZy1leHRyYS1sYXJnZTsgfVxuLm10NiB7ICBtYXJnaW4tdG9wOiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuLm10NyB7IG1hcmdpbi10b3A6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG5cbi5tdjAgICB7XG4gIG1hcmdpbi10b3A6ICRzcGFjaW5nLW5vbmU7XG4gIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLW5vbmU7XG59XG4ubXYxICB7XG4gIG1hcmdpbi10b3A6ICRzcGFjaW5nLWV4dHJhLXNtYWxsO1xuICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1leHRyYS1zbWFsbDtcbn1cbi5tdjIgICB7XG4gIG1hcmdpbi10b3A6ICRzcGFjaW5nLXNtYWxsO1xuICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1zbWFsbDtcbn1cbi5tdjMgICB7XG4gIG1hcmdpbi10b3A6ICRzcGFjaW5nLW1lZGl1bTtcbiAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctbWVkaXVtO1xufVxuLm12NCAgIHtcbiAgbWFyZ2luLXRvcDogJHNwYWNpbmctbGFyZ2U7XG4gIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLWxhcmdlO1xufVxuLm12NSAgIHtcbiAgbWFyZ2luLXRvcDogJHNwYWNpbmctZXh0cmEtbGFyZ2U7XG4gIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLWV4dHJhLWxhcmdlO1xufVxuLm12NiAge1xuICBtYXJnaW4tdG9wOiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTtcbiAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7XG59XG4ubXY3ICB7XG4gIG1hcmdpbi10b3A6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlO1xuICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTtcbn1cblxuLm1oMCAgIHtcbiAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLW5vbmU7XG4gIG1hcmdpbi1yaWdodDogJHNwYWNpbmctbm9uZTtcbn1cbi5taDEgICB7XG4gIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1leHRyYS1zbWFsbDtcbiAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1zbWFsbDtcbn1cbi5taDIgICB7XG4gIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1zbWFsbDtcbiAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1zbWFsbDtcbn1cbi5taDMgICB7XG4gIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1tZWRpdW07XG4gIG1hcmdpbi1yaWdodDogJHNwYWNpbmctbWVkaXVtO1xufVxuLm1oNCAgIHtcbiAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLWxhcmdlO1xuICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLWxhcmdlO1xufVxuLm1oNSAgIHtcbiAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLWV4dHJhLWxhcmdlO1xuICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLWxhcmdlO1xufVxuLm1oNiAge1xuICBtYXJnaW4tbGVmdDogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7XG4gIG1hcmdpbi1yaWdodDogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7XG59XG4ubWg3ICB7XG4gIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTtcbiAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTtcbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbm90LXNtYWxsfSB7XG4gIC5wYTAtbnMgIHsgIHBhZGRpbmc6ICRzcGFjaW5nLW5vbmU7IH1cbiAgLnBhMS1ucyB7ICBwYWRkaW5nOiAkc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuICAucGEyLW5zICB7ICBwYWRkaW5nOiAkc3BhY2luZy1zbWFsbDsgfVxuICAucGEzLW5zICB7ICBwYWRkaW5nOiAkc3BhY2luZy1tZWRpdW07IH1cbiAgLnBhNC1ucyAgeyAgcGFkZGluZzogJHNwYWNpbmctbGFyZ2U7IH1cbiAgLnBhNS1ucyAgeyAgcGFkZGluZzogJHNwYWNpbmctZXh0cmEtbGFyZ2U7IH1cbiAgLnBhNi1ucyB7ICBwYWRkaW5nOiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAucGE3LW5zIHsgcGFkZGluZzogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuICAucGwwLW5zICB7ICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLW5vbmU7IH1cbiAgLnBsMS1ucyB7ICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLWV4dHJhLXNtYWxsOyB9XG4gIC5wbDItbnMgIHsgIHBhZGRpbmctbGVmdDogJHNwYWNpbmctc21hbGw7IH1cbiAgLnBsMy1ucyAgeyAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1tZWRpdW07IH1cbiAgLnBsNC1ucyAgeyAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1sYXJnZTsgfVxuICAucGw1LW5zICB7ICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5wbDYtbnMgeyAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAucGw3LW5zIHsgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTsgfVxuXG4gIC5wcjAtbnMgIHsgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLW5vbmU7IH1cbiAgLnByMS1ucyB7ICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuICAucHIyLW5zICB7ICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1zbWFsbDsgfVxuICAucHIzLW5zICB7ICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1tZWRpdW07IH1cbiAgLnByNC1ucyAgeyAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctbGFyZ2U7IH1cbiAgLnByNS1ucyB7ICAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctZXh0cmEtbGFyZ2U7IH1cbiAgLnByNi1ucyB7ICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAucHI3LW5zIHsgcGFkZGluZy1yaWdodDogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuICAucGIwLW5zICB7ICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctbm9uZTsgfVxuICAucGIxLW5zIHsgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuICAucGIyLW5zICB7ICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctc21hbGw7IH1cbiAgLnBiMy1ucyAgeyAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLW1lZGl1bTsgfVxuICAucGI0LW5zICB7ICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctbGFyZ2U7IH1cbiAgLnBiNS1ucyAgeyAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5wYjYtbnMgeyAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG4gIC5wYjctbnMgeyBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuICAucHQwLW5zICB7ICBwYWRkaW5nLXRvcDogJHNwYWNpbmctbm9uZTsgfVxuICAucHQxLW5zIHsgIHBhZGRpbmctdG9wOiAkc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuICAucHQyLW5zICB7ICBwYWRkaW5nLXRvcDogJHNwYWNpbmctc21hbGw7IH1cbiAgLnB0My1ucyAgeyAgcGFkZGluZy10b3A6ICRzcGFjaW5nLW1lZGl1bTsgfVxuICAucHQ0LW5zICB7ICBwYWRkaW5nLXRvcDogJHNwYWNpbmctbGFyZ2U7IH1cbiAgLnB0NS1ucyAgeyAgcGFkZGluZy10b3A6ICRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5wdDYtbnMgeyAgcGFkZGluZy10b3A6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG4gIC5wdDctbnMgeyBwYWRkaW5nLXRvcDogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuICAucHYwLW5zIHtcbiAgICBwYWRkaW5nLXRvcDogJHNwYWNpbmctbm9uZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctbm9uZTtcbiAgfVxuICAucHYxLW5zIHtcbiAgICBwYWRkaW5nLXRvcDogJHNwYWNpbmctZXh0cmEtc21hbGw7XG4gICAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLWV4dHJhLXNtYWxsO1xuICB9XG4gIC5wdjItbnMge1xuICAgIHBhZGRpbmctdG9wOiAkc3BhY2luZy1zbWFsbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctc21hbGw7XG4gIH1cbiAgLnB2My1ucyB7XG4gICAgcGFkZGluZy10b3A6ICRzcGFjaW5nLW1lZGl1bTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctbWVkaXVtO1xuICB9XG4gIC5wdjQtbnMge1xuICAgIHBhZGRpbmctdG9wOiAkc3BhY2luZy1sYXJnZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctbGFyZ2U7XG4gIH1cbiAgLnB2NS1ucyB7XG4gICAgcGFkZGluZy10b3A6ICRzcGFjaW5nLWV4dHJhLWxhcmdlO1xuICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1leHRyYS1sYXJnZTtcbiAgfVxuICAucHY2LW5zIHtcbiAgICBwYWRkaW5nLXRvcDogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7XG4gICAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlO1xuICB9XG4gIC5wdjctbnMge1xuICAgIHBhZGRpbmctdG9wOiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7XG4gIH1cbiAgLnBoMC1ucyB7XG4gICAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1ub25lO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLW5vbmU7XG4gIH1cbiAgLnBoMS1ucyB7XG4gICAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1leHRyYS1zbWFsbDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1zbWFsbDtcbiAgfVxuICAucGgyLW5zIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLXNtYWxsO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLXNtYWxsO1xuICB9XG4gIC5waDMtbnMge1xuICAgIHBhZGRpbmctbGVmdDogJHNwYWNpbmctbWVkaXVtO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLW1lZGl1bTtcbiAgfVxuICAucGg0LW5zIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLWxhcmdlO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLWxhcmdlO1xuICB9XG4gIC5waDUtbnMge1xuICAgIHBhZGRpbmctbGVmdDogJHNwYWNpbmctZXh0cmEtbGFyZ2U7XG4gICAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctZXh0cmEtbGFyZ2U7XG4gIH1cbiAgLnBoNi1ucyB7XG4gICAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTtcbiAgfVxuICAucGg3LW5zIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlO1xuICB9XG5cbiAgLm1hMC1ucyAgeyAgbWFyZ2luOiAkc3BhY2luZy1ub25lOyB9XG4gIC5tYTEtbnMgeyAgbWFyZ2luOiAkc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuICAubWEyLW5zICB7ICBtYXJnaW46ICRzcGFjaW5nLXNtYWxsOyB9XG4gIC5tYTMtbnMgIHsgIG1hcmdpbjogJHNwYWNpbmctbWVkaXVtOyB9XG4gIC5tYTQtbnMgIHsgIG1hcmdpbjogJHNwYWNpbmctbGFyZ2U7IH1cbiAgLm1hNS1ucyAgeyAgbWFyZ2luOiAkc3BhY2luZy1leHRyYS1sYXJnZTsgfVxuICAubWE2LW5zIHsgIG1hcmdpbjogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7IH1cbiAgLm1hNy1ucyB7IG1hcmdpbjogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuICAubWwwLW5zICB7ICBtYXJnaW4tbGVmdDogJHNwYWNpbmctbm9uZTsgfVxuICAubWwxLW5zIHsgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuICAubWwyLW5zICB7ICBtYXJnaW4tbGVmdDogJHNwYWNpbmctc21hbGw7IH1cbiAgLm1sMy1ucyAgeyAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLW1lZGl1bTsgfVxuICAubWw0LW5zICB7ICBtYXJnaW4tbGVmdDogJHNwYWNpbmctbGFyZ2U7IH1cbiAgLm1sNS1ucyAgeyAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5tbDYtbnMgeyAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG4gIC5tbDctbnMgeyBtYXJnaW4tbGVmdDogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuICAubXIwLW5zICB7ICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLW5vbmU7IH1cbiAgLm1yMS1ucyB7ICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLXNtYWxsOyB9XG4gIC5tcjItbnMgIHsgIG1hcmdpbi1yaWdodDogJHNwYWNpbmctc21hbGw7IH1cbiAgLm1yMy1ucyAgeyAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1tZWRpdW07IH1cbiAgLm1yNC1ucyAgeyAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1sYXJnZTsgfVxuICAubXI1LW5zICB7ICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5tcjYtbnMgeyAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAubXI3LW5zIHsgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTsgfVxuXG4gIC5tYjAtbnMgIHsgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLW5vbmU7IH1cbiAgLm1iMS1ucyB7ICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuICAubWIyLW5zICB7ICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1zbWFsbDsgfVxuICAubWIzLW5zICB7ICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1tZWRpdW07IH1cbiAgLm1iNC1ucyAgeyAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctbGFyZ2U7IH1cbiAgLm1iNS1ucyAgeyAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctZXh0cmEtbGFyZ2U7IH1cbiAgLm1iNi1ucyB7ICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAubWI3LW5zIHsgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuICAubXQwLW5zICB7ICBtYXJnaW4tdG9wOiAkc3BhY2luZy1ub25lOyB9XG4gIC5tdDEtbnMgeyAgbWFyZ2luLXRvcDogJHNwYWNpbmctZXh0cmEtc21hbGw7IH1cbiAgLm10Mi1ucyAgeyAgbWFyZ2luLXRvcDogJHNwYWNpbmctc21hbGw7IH1cbiAgLm10My1ucyAgeyAgbWFyZ2luLXRvcDogJHNwYWNpbmctbWVkaXVtOyB9XG4gIC5tdDQtbnMgIHsgIG1hcmdpbi10b3A6ICRzcGFjaW5nLWxhcmdlOyB9XG4gIC5tdDUtbnMgIHsgIG1hcmdpbi10b3A6ICRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5tdDYtbnMgeyAgbWFyZ2luLXRvcDogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7IH1cbiAgLm10Ny1ucyB7IG1hcmdpbi10b3A6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG5cbiAgLm12MC1ucyAgIHtcbiAgICBtYXJnaW4tdG9wOiAkc3BhY2luZy1ub25lO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLW5vbmU7XG4gIH1cbiAgLm12MS1ucyAge1xuICAgIG1hcmdpbi10b3A6ICRzcGFjaW5nLWV4dHJhLXNtYWxsO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLWV4dHJhLXNtYWxsO1xuICB9XG4gIC5tdjItbnMgICB7XG4gICAgbWFyZ2luLXRvcDogJHNwYWNpbmctc21hbGw7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctc21hbGw7XG4gIH1cbiAgLm12My1ucyAgIHtcbiAgICBtYXJnaW4tdG9wOiAkc3BhY2luZy1tZWRpdW07XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctbWVkaXVtO1xuICB9XG4gIC5tdjQtbnMgICB7XG4gICAgbWFyZ2luLXRvcDogJHNwYWNpbmctbGFyZ2U7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctbGFyZ2U7XG4gIH1cbiAgLm12NS1ucyAgIHtcbiAgICBtYXJnaW4tdG9wOiAkc3BhY2luZy1leHRyYS1sYXJnZTtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1leHRyYS1sYXJnZTtcbiAgfVxuICAubXY2LW5zICB7XG4gICAgbWFyZ2luLXRvcDogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7XG4gIH1cbiAgLm12Ny1ucyAge1xuICAgIG1hcmdpbi10b3A6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlO1xuICB9XG5cbiAgLm1oMC1ucyAgIHtcbiAgICBtYXJnaW4tbGVmdDogJHNwYWNpbmctbm9uZTtcbiAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLW5vbmU7XG4gIH1cbiAgLm1oMS1ucyAgIHtcbiAgICBtYXJnaW4tbGVmdDogJHNwYWNpbmctZXh0cmEtc21hbGw7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1zbWFsbDtcbiAgfVxuICAubWgyLW5zICAge1xuICAgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1zbWFsbDtcbiAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLXNtYWxsO1xuICB9XG4gIC5taDMtbnMgICB7XG4gICAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLW1lZGl1bTtcbiAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLW1lZGl1bTtcbiAgfVxuICAubWg0LW5zICAge1xuICAgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1sYXJnZTtcbiAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLWxhcmdlO1xuICB9XG4gIC5taDUtbnMgICB7XG4gICAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLWV4dHJhLWxhcmdlO1xuICAgIG1hcmdpbi1yaWdodDogJHNwYWNpbmctZXh0cmEtbGFyZ2U7XG4gIH1cbiAgLm1oNi1ucyAge1xuICAgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTtcbiAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlO1xuICB9XG4gIC5taDctbnMgIHtcbiAgICBtYXJnaW4tbGVmdDogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTtcbiAgfVxuXG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW1lZGl1bX0ge1xuICAucGEwLW0gIHsgIHBhZGRpbmc6ICRzcGFjaW5nLW5vbmU7IH1cbiAgLnBhMS1tIHsgIHBhZGRpbmc6ICRzcGFjaW5nLWV4dHJhLXNtYWxsOyB9XG4gIC5wYTItbSAgeyAgcGFkZGluZzogJHNwYWNpbmctc21hbGw7IH1cbiAgLnBhMy1tICB7ICBwYWRkaW5nOiAkc3BhY2luZy1tZWRpdW07IH1cbiAgLnBhNC1tICB7ICBwYWRkaW5nOiAkc3BhY2luZy1sYXJnZTsgfVxuICAucGE1LW0gIHsgIHBhZGRpbmc6ICRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5wYTYtbSB7ICBwYWRkaW5nOiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAucGE3LW0geyBwYWRkaW5nOiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTsgfVxuXG4gIC5wbDAtbSAgeyAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1ub25lOyB9XG4gIC5wbDEtbSB7ICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLWV4dHJhLXNtYWxsOyB9XG4gIC5wbDItbSAgeyAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1zbWFsbDsgfVxuICAucGwzLW0gIHsgIHBhZGRpbmctbGVmdDogJHNwYWNpbmctbWVkaXVtOyB9XG4gIC5wbDQtbSAgeyAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1sYXJnZTsgfVxuICAucGw1LW0gIHsgIHBhZGRpbmctbGVmdDogJHNwYWNpbmctZXh0cmEtbGFyZ2U7IH1cbiAgLnBsNi1tIHsgIHBhZGRpbmctbGVmdDogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7IH1cbiAgLnBsNy1tIHsgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTsgfVxuXG4gIC5wcjAtbSAgeyAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctbm9uZTsgfVxuICAucHIxLW0geyAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctZXh0cmEtc21hbGw7IH1cbiAgLnByMi1tICB7ICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1zbWFsbDsgfVxuICAucHIzLW0gIHsgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLW1lZGl1bTsgfVxuICAucHI0LW0gIHsgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLWxhcmdlOyB9XG4gIC5wcjUtbSAgeyAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctZXh0cmEtbGFyZ2U7IH1cbiAgLnByNi1tIHsgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG4gIC5wcjctbSB7IHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG5cbiAgLnBiMC1tICB7ICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctbm9uZTsgfVxuICAucGIxLW0geyAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLWV4dHJhLXNtYWxsOyB9XG4gIC5wYjItbSAgeyAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLXNtYWxsOyB9XG4gIC5wYjMtbSAgeyAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLW1lZGl1bTsgfVxuICAucGI0LW0gIHsgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1sYXJnZTsgfVxuICAucGI1LW0gIHsgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1leHRyYS1sYXJnZTsgfVxuICAucGI2LW0geyAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG4gIC5wYjctbSB7IHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTsgfVxuXG4gIC5wdDAtbSAgeyAgcGFkZGluZy10b3A6ICRzcGFjaW5nLW5vbmU7IH1cbiAgLnB0MS1tIHsgIHBhZGRpbmctdG9wOiAkc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuICAucHQyLW0gIHsgIHBhZGRpbmctdG9wOiAkc3BhY2luZy1zbWFsbDsgfVxuICAucHQzLW0gIHsgIHBhZGRpbmctdG9wOiAkc3BhY2luZy1tZWRpdW07IH1cbiAgLnB0NC1tICB7ICBwYWRkaW5nLXRvcDogJHNwYWNpbmctbGFyZ2U7IH1cbiAgLnB0NS1tICB7ICBwYWRkaW5nLXRvcDogJHNwYWNpbmctZXh0cmEtbGFyZ2U7IH1cbiAgLnB0Ni1tIHsgIHBhZGRpbmctdG9wOiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAucHQ3LW0geyBwYWRkaW5nLXRvcDogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuICAucHYwLW0ge1xuICAgIHBhZGRpbmctdG9wOiAkc3BhY2luZy1ub25lO1xuICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1ub25lO1xuICB9XG4gIC5wdjEtbSB7XG4gICAgcGFkZGluZy10b3A6ICRzcGFjaW5nLWV4dHJhLXNtYWxsO1xuICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1leHRyYS1zbWFsbDtcbiAgfVxuICAucHYyLW0ge1xuICAgIHBhZGRpbmctdG9wOiAkc3BhY2luZy1zbWFsbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctc21hbGw7XG4gIH1cbiAgLnB2My1tIHtcbiAgICBwYWRkaW5nLXRvcDogJHNwYWNpbmctbWVkaXVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1tZWRpdW07XG4gIH1cbiAgLnB2NC1tIHtcbiAgICBwYWRkaW5nLXRvcDogJHNwYWNpbmctbGFyZ2U7XG4gICAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLWxhcmdlO1xuICB9XG4gIC5wdjUtbSB7XG4gICAgcGFkZGluZy10b3A6ICRzcGFjaW5nLWV4dHJhLWxhcmdlO1xuICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1leHRyYS1sYXJnZTtcbiAgfVxuICAucHY2LW0ge1xuICAgIHBhZGRpbmctdG9wOiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7XG4gIH1cbiAgLnB2Ny1tIHtcbiAgICBwYWRkaW5nLXRvcDogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7XG4gICAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlO1xuICB9XG5cbiAgLnBoMC1tIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLW5vbmU7XG4gICAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctbm9uZTtcbiAgfVxuICAucGgxLW0ge1xuICAgIHBhZGRpbmctbGVmdDogJHNwYWNpbmctZXh0cmEtc21hbGw7XG4gICAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctZXh0cmEtc21hbGw7XG4gIH1cbiAgLnBoMi1tIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLXNtYWxsO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLXNtYWxsO1xuICB9XG4gIC5waDMtbSB7XG4gICAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1tZWRpdW07XG4gICAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctbWVkaXVtO1xuICB9XG4gIC5waDQtbSB7XG4gICAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1sYXJnZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1sYXJnZTtcbiAgfVxuICAucGg1LW0ge1xuICAgIHBhZGRpbmctbGVmdDogJHNwYWNpbmctZXh0cmEtbGFyZ2U7XG4gICAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctZXh0cmEtbGFyZ2U7XG4gIH1cbiAgLnBoNi1tIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlO1xuICB9XG4gIC5waDctbSB7XG4gICAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTtcbiAgfVxuXG4gIC5tYTAtbSAgeyAgbWFyZ2luOiAkc3BhY2luZy1ub25lOyB9XG4gIC5tYTEtbSB7ICBtYXJnaW46ICRzcGFjaW5nLWV4dHJhLXNtYWxsOyB9XG4gIC5tYTItbSAgeyAgbWFyZ2luOiAkc3BhY2luZy1zbWFsbDsgfVxuICAubWEzLW0gIHsgIG1hcmdpbjogJHNwYWNpbmctbWVkaXVtOyB9XG4gIC5tYTQtbSAgeyAgbWFyZ2luOiAkc3BhY2luZy1sYXJnZTsgfVxuICAubWE1LW0gIHsgIG1hcmdpbjogJHNwYWNpbmctZXh0cmEtbGFyZ2U7IH1cbiAgLm1hNi1tIHsgIG1hcmdpbjogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7IH1cbiAgLm1hNy1tIHsgbWFyZ2luOiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTsgfVxuXG4gIC5tbDAtbSAgeyAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLW5vbmU7IH1cbiAgLm1sMS1tIHsgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuICAubWwyLW0gIHsgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1zbWFsbDsgfVxuICAubWwzLW0gIHsgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1tZWRpdW07IH1cbiAgLm1sNC1tICB7ICBtYXJnaW4tbGVmdDogJHNwYWNpbmctbGFyZ2U7IH1cbiAgLm1sNS1tICB7ICBtYXJnaW4tbGVmdDogJHNwYWNpbmctZXh0cmEtbGFyZ2U7IH1cbiAgLm1sNi1tIHsgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAubWw3LW0geyBtYXJnaW4tbGVmdDogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuICAubXIwLW0gIHsgIG1hcmdpbi1yaWdodDogJHNwYWNpbmctbm9uZTsgfVxuICAubXIxLW0geyAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuICAubXIyLW0gIHsgIG1hcmdpbi1yaWdodDogJHNwYWNpbmctc21hbGw7IH1cbiAgLm1yMy1tICB7ICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLW1lZGl1bTsgfVxuICAubXI0LW0gIHsgIG1hcmdpbi1yaWdodDogJHNwYWNpbmctbGFyZ2U7IH1cbiAgLm1yNS1tICB7ICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5tcjYtbSB7ICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG4gIC5tcjctbSB7IG1hcmdpbi1yaWdodDogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuICAubWIwLW0gIHsgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLW5vbmU7IH1cbiAgLm1iMS1tIHsgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLWV4dHJhLXNtYWxsOyB9XG4gIC5tYjItbSAgeyAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctc21hbGw7IH1cbiAgLm1iMy1tICB7ICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1tZWRpdW07IH1cbiAgLm1iNC1tICB7ICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1sYXJnZTsgfVxuICAubWI1LW0gIHsgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5tYjYtbSB7ICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAubWI3LW0geyBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTsgfVxuXG4gIC5tdDAtbSAgeyAgbWFyZ2luLXRvcDogJHNwYWNpbmctbm9uZTsgfVxuICAubXQxLW0geyAgbWFyZ2luLXRvcDogJHNwYWNpbmctZXh0cmEtc21hbGw7IH1cbiAgLm10Mi1tICB7ICBtYXJnaW4tdG9wOiAkc3BhY2luZy1zbWFsbDsgfVxuICAubXQzLW0gIHsgIG1hcmdpbi10b3A6ICRzcGFjaW5nLW1lZGl1bTsgfVxuICAubXQ0LW0gIHsgIG1hcmdpbi10b3A6ICRzcGFjaW5nLWxhcmdlOyB9XG4gIC5tdDUtbSAgeyAgbWFyZ2luLXRvcDogJHNwYWNpbmctZXh0cmEtbGFyZ2U7IH1cbiAgLm10Ni1tIHsgIG1hcmdpbi10b3A6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG4gIC5tdDctbSB7IG1hcmdpbi10b3A6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG5cbiAgLm12MC1tIHtcbiAgICBtYXJnaW4tdG9wOiAkc3BhY2luZy1ub25lO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLW5vbmU7XG4gIH1cbiAgLm12MS1tIHtcbiAgICBtYXJnaW4tdG9wOiAkc3BhY2luZy1leHRyYS1zbWFsbDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1leHRyYS1zbWFsbDtcbiAgfVxuICAubXYyLW0ge1xuICAgIG1hcmdpbi10b3A6ICRzcGFjaW5nLXNtYWxsO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLXNtYWxsO1xuICB9XG4gIC5tdjMtbSB7XG4gICAgbWFyZ2luLXRvcDogJHNwYWNpbmctbWVkaXVtO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLW1lZGl1bTtcbiAgfVxuICAubXY0LW0ge1xuICAgIG1hcmdpbi10b3A6ICRzcGFjaW5nLWxhcmdlO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLWxhcmdlO1xuICB9XG4gIC5tdjUtbSB7XG4gICAgbWFyZ2luLXRvcDogJHNwYWNpbmctZXh0cmEtbGFyZ2U7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctZXh0cmEtbGFyZ2U7XG4gIH1cbiAgLm12Ni1tIHtcbiAgICBtYXJnaW4tdG9wOiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTtcbiAgfVxuICAubXY3LW0ge1xuICAgIG1hcmdpbi10b3A6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlO1xuICB9XG5cbiAgLm1oMC1tIHtcbiAgICBtYXJnaW4tbGVmdDogJHNwYWNpbmctbm9uZTtcbiAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLW5vbmU7XG4gIH1cbiAgLm1oMS1tIHtcbiAgICBtYXJnaW4tbGVmdDogJHNwYWNpbmctZXh0cmEtc21hbGw7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1zbWFsbDtcbiAgfVxuICAubWgyLW0ge1xuICAgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1zbWFsbDtcbiAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLXNtYWxsO1xuICB9XG4gIC5taDMtbSB7XG4gICAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLW1lZGl1bTtcbiAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLW1lZGl1bTtcbiAgfVxuICAubWg0LW0ge1xuICAgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1sYXJnZTtcbiAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLWxhcmdlO1xuICB9XG4gIC5taDUtbSB7XG4gICAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLWV4dHJhLWxhcmdlO1xuICAgIG1hcmdpbi1yaWdodDogJHNwYWNpbmctZXh0cmEtbGFyZ2U7XG4gIH1cbiAgLm1oNi1tIHtcbiAgICBtYXJnaW4tbGVmdDogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTtcbiAgfVxuICAubWg3LW0ge1xuICAgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTtcbiAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlO1xuICB9XG5cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbGFyZ2V9IHtcbiAgLnBhMC1sICB7ICBwYWRkaW5nOiAkc3BhY2luZy1ub25lOyB9XG4gIC5wYTEtbCB7ICBwYWRkaW5nOiAkc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuICAucGEyLWwgIHsgIHBhZGRpbmc6ICRzcGFjaW5nLXNtYWxsOyB9XG4gIC5wYTMtbCAgeyAgcGFkZGluZzogJHNwYWNpbmctbWVkaXVtOyB9XG4gIC5wYTQtbCAgeyAgcGFkZGluZzogJHNwYWNpbmctbGFyZ2U7IH1cbiAgLnBhNS1sICB7ICBwYWRkaW5nOiAkc3BhY2luZy1leHRyYS1sYXJnZTsgfVxuICAucGE2LWwgeyAgcGFkZGluZzogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7IH1cbiAgLnBhNy1sIHsgcGFkZGluZzogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuICAucGwwLWwgIHsgIHBhZGRpbmctbGVmdDogJHNwYWNpbmctbm9uZTsgfVxuICAucGwxLWwgeyAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuICAucGwyLWwgIHsgIHBhZGRpbmctbGVmdDogJHNwYWNpbmctc21hbGw7IH1cbiAgLnBsMy1sICB7ICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLW1lZGl1bTsgfVxuICAucGw0LWwgIHsgIHBhZGRpbmctbGVmdDogJHNwYWNpbmctbGFyZ2U7IH1cbiAgLnBsNS1sICB7ICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5wbDYtbCB7ICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG4gIC5wbDctbCB7IHBhZGRpbmctbGVmdDogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuICAucHIwLWwgIHsgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLW5vbmU7IH1cbiAgLnByMS1sIHsgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLXNtYWxsOyB9XG4gIC5wcjItbCAgeyAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctc21hbGw7IH1cbiAgLnByMy1sICB7ICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1tZWRpdW07IH1cbiAgLnByNC1sICB7ICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1sYXJnZTsgfVxuICAucHI1LWwgIHsgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5wcjYtbCB7ICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAucHI3LWwgeyBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTsgfVxuXG4gIC5wYjAtbCAgeyAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLW5vbmU7IH1cbiAgLnBiMS1sIHsgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuICAucGIyLWwgIHsgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1zbWFsbDsgfVxuICAucGIzLWwgIHsgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1tZWRpdW07IH1cbiAgLnBiNC1sICB7ICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctbGFyZ2U7IH1cbiAgLnBiNS1sICB7ICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctZXh0cmEtbGFyZ2U7IH1cbiAgLnBiNi1sIHsgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAucGI3LWwgeyBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuICAucHQwLWwgIHsgIHBhZGRpbmctdG9wOiAkc3BhY2luZy1ub25lOyB9XG4gIC5wdDEtbCB7ICBwYWRkaW5nLXRvcDogJHNwYWNpbmctZXh0cmEtc21hbGw7IH1cbiAgLnB0Mi1sICB7ICBwYWRkaW5nLXRvcDogJHNwYWNpbmctc21hbGw7IH1cbiAgLnB0My1sICB7ICBwYWRkaW5nLXRvcDogJHNwYWNpbmctbWVkaXVtOyB9XG4gIC5wdDQtbCAgeyAgcGFkZGluZy10b3A6ICRzcGFjaW5nLWxhcmdlOyB9XG4gIC5wdDUtbCAgeyAgcGFkZGluZy10b3A6ICRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5wdDYtbCB7ICBwYWRkaW5nLXRvcDogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7IH1cbiAgLnB0Ny1sIHsgcGFkZGluZy10b3A6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG5cbiAgLnB2MC1sIHtcbiAgICBwYWRkaW5nLXRvcDogJHNwYWNpbmctbm9uZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctbm9uZTtcbiAgfVxuICAucHYxLWwge1xuICAgIHBhZGRpbmctdG9wOiAkc3BhY2luZy1leHRyYS1zbWFsbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctZXh0cmEtc21hbGw7XG4gIH1cbiAgLnB2Mi1sIHtcbiAgICBwYWRkaW5nLXRvcDogJHNwYWNpbmctc21hbGw7XG4gICAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLXNtYWxsO1xuICB9XG4gIC5wdjMtbCB7XG4gICAgcGFkZGluZy10b3A6ICRzcGFjaW5nLW1lZGl1bTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctbWVkaXVtO1xuICB9XG4gIC5wdjQtbCB7XG4gICAgcGFkZGluZy10b3A6ICRzcGFjaW5nLWxhcmdlO1xuICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1sYXJnZTtcbiAgfVxuICAucHY1LWwge1xuICAgIHBhZGRpbmctdG9wOiAkc3BhY2luZy1leHRyYS1sYXJnZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctZXh0cmEtbGFyZ2U7XG4gIH1cbiAgLnB2Ni1sIHtcbiAgICBwYWRkaW5nLXRvcDogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7XG4gICAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlO1xuICB9XG4gIC5wdjctbCB7XG4gICAgcGFkZGluZy10b3A6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlO1xuICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTtcbiAgfVxuXG4gIC5waDAtbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1ub25lO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLW5vbmU7XG4gIH1cbiAgLnBoMS1sIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLWV4dHJhLXNtYWxsO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLXNtYWxsO1xuICB9XG4gIC5waDItbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1zbWFsbDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1zbWFsbDtcbiAgfVxuICAucGgzLWwge1xuICAgIHBhZGRpbmctbGVmdDogJHNwYWNpbmctbWVkaXVtO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLW1lZGl1bTtcbiAgfVxuICAucGg0LWwge1xuICAgIHBhZGRpbmctbGVmdDogJHNwYWNpbmctbGFyZ2U7XG4gICAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctbGFyZ2U7XG4gIH1cbiAgLnBoNS1sIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLWV4dHJhLWxhcmdlO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLWxhcmdlO1xuICB9XG4gIC5waDYtbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTtcbiAgfVxuICAucGg3LWwge1xuICAgIHBhZGRpbmctbGVmdDogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7XG4gICAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7XG4gIH1cblxuICAubWEwLWwgIHsgIG1hcmdpbjogJHNwYWNpbmctbm9uZTsgfVxuICAubWExLWwgeyAgbWFyZ2luOiAkc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuICAubWEyLWwgIHsgIG1hcmdpbjogJHNwYWNpbmctc21hbGw7IH1cbiAgLm1hMy1sICB7ICBtYXJnaW46ICRzcGFjaW5nLW1lZGl1bTsgfVxuICAubWE0LWwgIHsgIG1hcmdpbjogJHNwYWNpbmctbGFyZ2U7IH1cbiAgLm1hNS1sICB7ICBtYXJnaW46ICRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5tYTYtbCB7ICBtYXJnaW46ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG4gIC5tYTctbCB7IG1hcmdpbjogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuICAubWwwLWwgIHsgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1ub25lOyB9XG4gIC5tbDEtbCB7ICBtYXJnaW4tbGVmdDogJHNwYWNpbmctZXh0cmEtc21hbGw7IH1cbiAgLm1sMi1sICB7ICBtYXJnaW4tbGVmdDogJHNwYWNpbmctc21hbGw7IH1cbiAgLm1sMy1sICB7ICBtYXJnaW4tbGVmdDogJHNwYWNpbmctbWVkaXVtOyB9XG4gIC5tbDQtbCAgeyAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLWxhcmdlOyB9XG4gIC5tbDUtbCAgeyAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5tbDYtbCB7ICBtYXJnaW4tbGVmdDogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7IH1cbiAgLm1sNy1sIHsgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG5cbiAgLm1yMC1sICB7ICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLW5vbmU7IH1cbiAgLm1yMS1sIHsgIG1hcmdpbi1yaWdodDogJHNwYWNpbmctZXh0cmEtc21hbGw7IH1cbiAgLm1yMi1sICB7ICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLXNtYWxsOyB9XG4gIC5tcjMtbCAgeyAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1tZWRpdW07IH1cbiAgLm1yNC1sICB7ICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLWxhcmdlOyB9XG4gIC5tcjUtbCAgeyAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1sYXJnZTsgfVxuICAubXI2LWwgeyAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAubXI3LWwgeyBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG5cbiAgLm1iMC1sICB7ICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1ub25lOyB9XG4gIC5tYjEtbCB7ICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuICAubWIyLWwgIHsgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLXNtYWxsOyB9XG4gIC5tYjMtbCAgeyAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctbWVkaXVtOyB9XG4gIC5tYjQtbCAgeyAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctbGFyZ2U7IH1cbiAgLm1iNS1sICB7ICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1leHRyYS1sYXJnZTsgfVxuICAubWI2LWwgeyAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7IH1cbiAgLm1iNy1sIHsgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuICAubXQwLWwgIHsgIG1hcmdpbi10b3A6ICRzcGFjaW5nLW5vbmU7IH1cbiAgLm10MS1sIHsgIG1hcmdpbi10b3A6ICRzcGFjaW5nLWV4dHJhLXNtYWxsOyB9XG4gIC5tdDItbCAgeyAgbWFyZ2luLXRvcDogJHNwYWNpbmctc21hbGw7IH1cbiAgLm10My1sICB7ICBtYXJnaW4tdG9wOiAkc3BhY2luZy1tZWRpdW07IH1cbiAgLm10NC1sICB7ICBtYXJnaW4tdG9wOiAkc3BhY2luZy1sYXJnZTsgfVxuICAubXQ1LWwgIHsgIG1hcmdpbi10b3A6ICRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5tdDYtbCB7ICBtYXJnaW4tdG9wOiAkc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAubXQ3LWwgeyBtYXJnaW4tdG9wOiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTsgfVxuXG4gIC5tdjAtbCB7XG4gICAgbWFyZ2luLXRvcDogJHNwYWNpbmctbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1ub25lO1xuICB9XG4gIC5tdjEtbCB7XG4gICAgbWFyZ2luLXRvcDogJHNwYWNpbmctZXh0cmEtc21hbGw7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctZXh0cmEtc21hbGw7XG4gIH1cbiAgLm12Mi1sIHtcbiAgICBtYXJnaW4tdG9wOiAkc3BhY2luZy1zbWFsbDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1zbWFsbDtcbiAgfVxuICAubXYzLWwge1xuICAgIG1hcmdpbi10b3A6ICRzcGFjaW5nLW1lZGl1bTtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1tZWRpdW07XG4gIH1cbiAgLm12NC1sIHtcbiAgICBtYXJnaW4tdG9wOiAkc3BhY2luZy1sYXJnZTtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1sYXJnZTtcbiAgfVxuICAubXY1LWwge1xuICAgIG1hcmdpbi10b3A6ICRzcGFjaW5nLWV4dHJhLWxhcmdlO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLWV4dHJhLWxhcmdlO1xuICB9XG4gIC5tdjYtbCB7XG4gICAgbWFyZ2luLXRvcDogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7XG4gIH1cbiAgLm12Ny1sIHtcbiAgICBtYXJnaW4tdG9wOiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTtcbiAgfVxuXG4gIC5taDAtbCB7XG4gICAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLW5vbmU7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1ub25lO1xuICB9XG4gIC5taDEtbCB7XG4gICAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLWV4dHJhLXNtYWxsO1xuICAgIG1hcmdpbi1yaWdodDogJHNwYWNpbmctZXh0cmEtc21hbGw7XG4gIH1cbiAgLm1oMi1sIHtcbiAgICBtYXJnaW4tbGVmdDogJHNwYWNpbmctc21hbGw7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1zbWFsbDtcbiAgfVxuICAubWgzLWwge1xuICAgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1tZWRpdW07XG4gICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1tZWRpdW07XG4gIH1cbiAgLm1oNC1sIHtcbiAgICBtYXJnaW4tbGVmdDogJHNwYWNpbmctbGFyZ2U7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1sYXJnZTtcbiAgfVxuICAubWg1LWwge1xuICAgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1leHRyYS1sYXJnZTtcbiAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLWV4dHJhLWxhcmdlO1xuICB9XG4gIC5taDYtbCB7XG4gICAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlO1xuICAgIG1hcmdpbi1yaWdodDogJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7XG4gIH1cbiAgLm1oNy1sIHtcbiAgICBtYXJnaW4tbGVmdDogJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTtcbiAgfVxufVxuIiwiXG4vLyBDb252ZXJ0ZWQgVmFyaWFibGVzXG5cblxuLy8gQ3VzdG9tIE1lZGlhIFF1ZXJ5IFZhcmlhYmxlc1xuXG5cbi8qXG4gICBORUdBVElWRSBNQVJHSU5TXG5cbiAgIEJhc2U6XG4gICAgIG4gPSBuZWdhdGl2ZVxuXG4gICBNb2RpZmllcnM6XG4gICAgIGEgPSBhbGxcbiAgICAgdCA9IHRvcFxuICAgICByID0gcmlnaHRcbiAgICAgYiA9IGJvdHRvbVxuICAgICBsID0gbGVmdFxuXG4gICAgIDEgPSAxc3Qgc3RlcCBpbiBzcGFjaW5nIHNjYWxlXG4gICAgIDIgPSAybmQgc3RlcCBpbiBzcGFjaW5nIHNjYWxlXG4gICAgIDMgPSAzcmQgc3RlcCBpbiBzcGFjaW5nIHNjYWxlXG4gICAgIDQgPSA0dGggc3RlcCBpbiBzcGFjaW5nIHNjYWxlXG4gICAgIDUgPSA1dGggc3RlcCBpbiBzcGFjaW5nIHNjYWxlXG4gICAgIDYgPSA2dGggc3RlcCBpbiBzcGFjaW5nIHNjYWxlXG4gICAgIDcgPSA3dGggc3RlcCBpbiBzcGFjaW5nIHNjYWxlXG5cbiAgIE1lZGlhIFF1ZXJ5IEV4dGVuc2lvbnM6XG4gICAgIC1ucyA9IG5vdC1zbWFsbFxuICAgICAtbSAgPSBtZWRpdW1cbiAgICAgLWwgID0gbGFyZ2VcblxuKi9cblxuXG5cbi5uYTEgeyBtYXJnaW46IC0kc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuLm5hMiB7IG1hcmdpbjogLSRzcGFjaW5nLXNtYWxsOyB9XG4ubmEzIHsgbWFyZ2luOiAtJHNwYWNpbmctbWVkaXVtOyB9XG4ubmE0IHsgbWFyZ2luOiAtJHNwYWNpbmctbGFyZ2U7IH1cbi5uYTUgeyBtYXJnaW46IC0kc3BhY2luZy1leHRyYS1sYXJnZTsgfVxuLm5hNiB7IG1hcmdpbjogLSRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG4ubmE3IHsgbWFyZ2luOiAtJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuLm5sMSB7IG1hcmdpbi1sZWZ0OiAtJHNwYWNpbmctZXh0cmEtc21hbGw7IH1cbi5ubDIgeyBtYXJnaW4tbGVmdDogLSRzcGFjaW5nLXNtYWxsOyB9XG4ubmwzIHsgbWFyZ2luLWxlZnQ6IC0kc3BhY2luZy1tZWRpdW07IH1cbi5ubDQgeyBtYXJnaW4tbGVmdDogLSRzcGFjaW5nLWxhcmdlOyB9XG4ubmw1IHsgbWFyZ2luLWxlZnQ6IC0kc3BhY2luZy1leHRyYS1sYXJnZTsgfVxuLm5sNiB7IG1hcmdpbi1sZWZ0OiAtJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7IH1cbi5ubDcgeyBtYXJnaW4tbGVmdDogLSRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG5cbi5ucjEgeyBtYXJnaW4tcmlnaHQ6IC0kc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuLm5yMiB7IG1hcmdpbi1yaWdodDogLSRzcGFjaW5nLXNtYWxsOyB9XG4ubnIzIHsgbWFyZ2luLXJpZ2h0OiAtJHNwYWNpbmctbWVkaXVtOyB9XG4ubnI0IHsgbWFyZ2luLXJpZ2h0OiAtJHNwYWNpbmctbGFyZ2U7IH1cbi5ucjUgeyBtYXJnaW4tcmlnaHQ6IC0kc3BhY2luZy1leHRyYS1sYXJnZTsgfVxuLm5yNiB7IG1hcmdpbi1yaWdodDogLSRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG4ubnI3IHsgbWFyZ2luLXJpZ2h0OiAtJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuLm5iMSB7IG1hcmdpbi1ib3R0b206IC0kc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuLm5iMiB7IG1hcmdpbi1ib3R0b206IC0kc3BhY2luZy1zbWFsbDsgfVxuLm5iMyB7IG1hcmdpbi1ib3R0b206IC0kc3BhY2luZy1tZWRpdW07IH1cbi5uYjQgeyBtYXJnaW4tYm90dG9tOiAtJHNwYWNpbmctbGFyZ2U7IH1cbi5uYjUgeyBtYXJnaW4tYm90dG9tOiAtJHNwYWNpbmctZXh0cmEtbGFyZ2U7IH1cbi5uYjYgeyBtYXJnaW4tYm90dG9tOiAtJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7IH1cbi5uYjcgeyBtYXJnaW4tYm90dG9tOiAtJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuLm50MSB7IG1hcmdpbi10b3A6IC0kc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuLm50MiB7IG1hcmdpbi10b3A6IC0kc3BhY2luZy1zbWFsbDsgfVxuLm50MyB7IG1hcmdpbi10b3A6IC0kc3BhY2luZy1tZWRpdW07IH1cbi5udDQgeyBtYXJnaW4tdG9wOiAtJHNwYWNpbmctbGFyZ2U7IH1cbi5udDUgeyBtYXJnaW4tdG9wOiAtJHNwYWNpbmctZXh0cmEtbGFyZ2U7IH1cbi5udDYgeyBtYXJnaW4tdG9wOiAtJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7IH1cbi5udDcgeyBtYXJnaW4tdG9wOiAtJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbm90LXNtYWxsfSB7XG5cbiAgLm5hMS1ucyB7IG1hcmdpbjogLSRzcGFjaW5nLWV4dHJhLXNtYWxsOyB9XG4gIC5uYTItbnMgeyBtYXJnaW46IC0kc3BhY2luZy1zbWFsbDsgfVxuICAubmEzLW5zIHsgbWFyZ2luOiAtJHNwYWNpbmctbWVkaXVtOyB9XG4gIC5uYTQtbnMgeyBtYXJnaW46IC0kc3BhY2luZy1sYXJnZTsgfVxuICAubmE1LW5zIHsgbWFyZ2luOiAtJHNwYWNpbmctZXh0cmEtbGFyZ2U7IH1cbiAgLm5hNi1ucyB7IG1hcmdpbjogLSRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG4gIC5uYTctbnMgeyBtYXJnaW46IC0kc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTsgfVxuXG4gIC5ubDEtbnMgeyBtYXJnaW4tbGVmdDogLSRzcGFjaW5nLWV4dHJhLXNtYWxsOyB9XG4gIC5ubDItbnMgeyBtYXJnaW4tbGVmdDogLSRzcGFjaW5nLXNtYWxsOyB9XG4gIC5ubDMtbnMgeyBtYXJnaW4tbGVmdDogLSRzcGFjaW5nLW1lZGl1bTsgfVxuICAubmw0LW5zIHsgbWFyZ2luLWxlZnQ6IC0kc3BhY2luZy1sYXJnZTsgfVxuICAubmw1LW5zIHsgbWFyZ2luLWxlZnQ6IC0kc3BhY2luZy1leHRyYS1sYXJnZTsgfVxuICAubmw2LW5zIHsgbWFyZ2luLWxlZnQ6IC0kc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAubmw3LW5zIHsgbWFyZ2luLWxlZnQ6IC0kc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTsgfVxuXG4gIC5ucjEtbnMgeyBtYXJnaW4tcmlnaHQ6IC0kc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuICAubnIyLW5zIHsgbWFyZ2luLXJpZ2h0OiAtJHNwYWNpbmctc21hbGw7IH1cbiAgLm5yMy1ucyB7IG1hcmdpbi1yaWdodDogLSRzcGFjaW5nLW1lZGl1bTsgfVxuICAubnI0LW5zIHsgbWFyZ2luLXJpZ2h0OiAtJHNwYWNpbmctbGFyZ2U7IH1cbiAgLm5yNS1ucyB7IG1hcmdpbi1yaWdodDogLSRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5ucjYtbnMgeyBtYXJnaW4tcmlnaHQ6IC0kc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAubnI3LW5zIHsgbWFyZ2luLXJpZ2h0OiAtJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuICAubmIxLW5zIHsgbWFyZ2luLWJvdHRvbTogLSRzcGFjaW5nLWV4dHJhLXNtYWxsOyB9XG4gIC5uYjItbnMgeyBtYXJnaW4tYm90dG9tOiAtJHNwYWNpbmctc21hbGw7IH1cbiAgLm5iMy1ucyB7IG1hcmdpbi1ib3R0b206IC0kc3BhY2luZy1tZWRpdW07IH1cbiAgLm5iNC1ucyB7IG1hcmdpbi1ib3R0b206IC0kc3BhY2luZy1sYXJnZTsgfVxuICAubmI1LW5zIHsgbWFyZ2luLWJvdHRvbTogLSRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5uYjYtbnMgeyBtYXJnaW4tYm90dG9tOiAtJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7IH1cbiAgLm5iNy1ucyB7IG1hcmdpbi1ib3R0b206IC0kc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTsgfVxuXG4gIC5udDEtbnMgeyBtYXJnaW4tdG9wOiAtJHNwYWNpbmctZXh0cmEtc21hbGw7IH1cbiAgLm50Mi1ucyB7IG1hcmdpbi10b3A6IC0kc3BhY2luZy1zbWFsbDsgfVxuICAubnQzLW5zIHsgbWFyZ2luLXRvcDogLSRzcGFjaW5nLW1lZGl1bTsgfVxuICAubnQ0LW5zIHsgbWFyZ2luLXRvcDogLSRzcGFjaW5nLWxhcmdlOyB9XG4gIC5udDUtbnMgeyBtYXJnaW4tdG9wOiAtJHNwYWNpbmctZXh0cmEtbGFyZ2U7IH1cbiAgLm50Ni1ucyB7IG1hcmdpbi10b3A6IC0kc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAubnQ3LW5zIHsgbWFyZ2luLXRvcDogLSRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG5cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbWVkaXVtfSB7XG4gIC5uYTEtbSB7IG1hcmdpbjogLSRzcGFjaW5nLWV4dHJhLXNtYWxsOyB9XG4gIC5uYTItbSB7IG1hcmdpbjogLSRzcGFjaW5nLXNtYWxsOyB9XG4gIC5uYTMtbSB7IG1hcmdpbjogLSRzcGFjaW5nLW1lZGl1bTsgfVxuICAubmE0LW0geyBtYXJnaW46IC0kc3BhY2luZy1sYXJnZTsgfVxuICAubmE1LW0geyBtYXJnaW46IC0kc3BhY2luZy1leHRyYS1sYXJnZTsgfVxuICAubmE2LW0geyBtYXJnaW46IC0kc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAubmE3LW0geyBtYXJnaW46IC0kc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTsgfVxuXG4gIC5ubDEtbSB7IG1hcmdpbi1sZWZ0OiAtJHNwYWNpbmctZXh0cmEtc21hbGw7IH1cbiAgLm5sMi1tIHsgbWFyZ2luLWxlZnQ6IC0kc3BhY2luZy1zbWFsbDsgfVxuICAubmwzLW0geyBtYXJnaW4tbGVmdDogLSRzcGFjaW5nLW1lZGl1bTsgfVxuICAubmw0LW0geyBtYXJnaW4tbGVmdDogLSRzcGFjaW5nLWxhcmdlOyB9XG4gIC5ubDUtbSB7IG1hcmdpbi1sZWZ0OiAtJHNwYWNpbmctZXh0cmEtbGFyZ2U7IH1cbiAgLm5sNi1tIHsgbWFyZ2luLWxlZnQ6IC0kc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAubmw3LW0geyBtYXJnaW4tbGVmdDogLSRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG5cbiAgLm5yMS1tIHsgbWFyZ2luLXJpZ2h0OiAtJHNwYWNpbmctZXh0cmEtc21hbGw7IH1cbiAgLm5yMi1tIHsgbWFyZ2luLXJpZ2h0OiAtJHNwYWNpbmctc21hbGw7IH1cbiAgLm5yMy1tIHsgbWFyZ2luLXJpZ2h0OiAtJHNwYWNpbmctbWVkaXVtOyB9XG4gIC5ucjQtbSB7IG1hcmdpbi1yaWdodDogLSRzcGFjaW5nLWxhcmdlOyB9XG4gIC5ucjUtbSB7IG1hcmdpbi1yaWdodDogLSRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5ucjYtbSB7IG1hcmdpbi1yaWdodDogLSRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG4gIC5ucjctbSB7IG1hcmdpbi1yaWdodDogLSRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG5cbiAgLm5iMS1tIHsgbWFyZ2luLWJvdHRvbTogLSRzcGFjaW5nLWV4dHJhLXNtYWxsOyB9XG4gIC5uYjItbSB7IG1hcmdpbi1ib3R0b206IC0kc3BhY2luZy1zbWFsbDsgfVxuICAubmIzLW0geyBtYXJnaW4tYm90dG9tOiAtJHNwYWNpbmctbWVkaXVtOyB9XG4gIC5uYjQtbSB7IG1hcmdpbi1ib3R0b206IC0kc3BhY2luZy1sYXJnZTsgfVxuICAubmI1LW0geyBtYXJnaW4tYm90dG9tOiAtJHNwYWNpbmctZXh0cmEtbGFyZ2U7IH1cbiAgLm5iNi1tIHsgbWFyZ2luLWJvdHRvbTogLSRzcGFjaW5nLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG4gIC5uYjctbSB7IG1hcmdpbi1ib3R0b206IC0kc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTsgfVxuXG4gIC5udDEtbSB7IG1hcmdpbi10b3A6IC0kc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuICAubnQyLW0geyBtYXJnaW4tdG9wOiAtJHNwYWNpbmctc21hbGw7IH1cbiAgLm50My1tIHsgbWFyZ2luLXRvcDogLSRzcGFjaW5nLW1lZGl1bTsgfVxuICAubnQ0LW0geyBtYXJnaW4tdG9wOiAtJHNwYWNpbmctbGFyZ2U7IH1cbiAgLm50NS1tIHsgbWFyZ2luLXRvcDogLSRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5udDYtbSB7IG1hcmdpbi10b3A6IC0kc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAubnQ3LW0geyBtYXJnaW4tdG9wOiAtJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1sYXJnZX0ge1xuICAubmExLWwgeyBtYXJnaW46IC0kc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuICAubmEyLWwgeyBtYXJnaW46IC0kc3BhY2luZy1zbWFsbDsgfVxuICAubmEzLWwgeyBtYXJnaW46IC0kc3BhY2luZy1tZWRpdW07IH1cbiAgLm5hNC1sIHsgbWFyZ2luOiAtJHNwYWNpbmctbGFyZ2U7IH1cbiAgLm5hNS1sIHsgbWFyZ2luOiAtJHNwYWNpbmctZXh0cmEtbGFyZ2U7IH1cbiAgLm5hNi1sIHsgbWFyZ2luOiAtJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7IH1cbiAgLm5hNy1sIHsgbWFyZ2luOiAtJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuICAubmwxLWwgeyBtYXJnaW4tbGVmdDogLSRzcGFjaW5nLWV4dHJhLXNtYWxsOyB9XG4gIC5ubDItbCB7IG1hcmdpbi1sZWZ0OiAtJHNwYWNpbmctc21hbGw7IH1cbiAgLm5sMy1sIHsgbWFyZ2luLWxlZnQ6IC0kc3BhY2luZy1tZWRpdW07IH1cbiAgLm5sNC1sIHsgbWFyZ2luLWxlZnQ6IC0kc3BhY2luZy1sYXJnZTsgfVxuICAubmw1LWwgeyBtYXJnaW4tbGVmdDogLSRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5ubDYtbCB7IG1hcmdpbi1sZWZ0OiAtJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7IH1cbiAgLm5sNy1sIHsgbWFyZ2luLWxlZnQ6IC0kc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTsgfVxuXG4gIC5ucjEtbCB7IG1hcmdpbi1yaWdodDogLSRzcGFjaW5nLWV4dHJhLXNtYWxsOyB9XG4gIC5ucjItbCB7IG1hcmdpbi1yaWdodDogLSRzcGFjaW5nLXNtYWxsOyB9XG4gIC5ucjMtbCB7IG1hcmdpbi1yaWdodDogLSRzcGFjaW5nLW1lZGl1bTsgfVxuICAubnI0LWwgeyBtYXJnaW4tcmlnaHQ6IC0kc3BhY2luZy1sYXJnZTsgfVxuICAubnI1LWwgeyBtYXJnaW4tcmlnaHQ6IC0kc3BhY2luZy1leHRyYS1sYXJnZTsgfVxuICAubnI2LWwgeyBtYXJnaW4tcmlnaHQ6IC0kc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAubnI3LWwgeyBtYXJnaW4tcmlnaHQ6IC0kc3BhY2luZy1leHRyYS1leHRyYS1leHRyYS1sYXJnZTsgfVxuXG4gIC5uYjEtbCB7IG1hcmdpbi1ib3R0b206IC0kc3BhY2luZy1leHRyYS1zbWFsbDsgfVxuICAubmIyLWwgeyBtYXJnaW4tYm90dG9tOiAtJHNwYWNpbmctc21hbGw7IH1cbiAgLm5iMy1sIHsgbWFyZ2luLWJvdHRvbTogLSRzcGFjaW5nLW1lZGl1bTsgfVxuICAubmI0LWwgeyBtYXJnaW4tYm90dG9tOiAtJHNwYWNpbmctbGFyZ2U7IH1cbiAgLm5iNS1sIHsgbWFyZ2luLWJvdHRvbTogLSRzcGFjaW5nLWV4dHJhLWxhcmdlOyB9XG4gIC5uYjYtbCB7IG1hcmdpbi1ib3R0b206IC0kc3BhY2luZy1leHRyYS1leHRyYS1sYXJnZTsgfVxuICAubmI3LWwgeyBtYXJnaW4tYm90dG9tOiAtJHNwYWNpbmctZXh0cmEtZXh0cmEtZXh0cmEtbGFyZ2U7IH1cblxuICAubnQxLWwgeyBtYXJnaW4tdG9wOiAtJHNwYWNpbmctZXh0cmEtc21hbGw7IH1cbiAgLm50Mi1sIHsgbWFyZ2luLXRvcDogLSRzcGFjaW5nLXNtYWxsOyB9XG4gIC5udDMtbCB7IG1hcmdpbi10b3A6IC0kc3BhY2luZy1tZWRpdW07IH1cbiAgLm50NC1sIHsgbWFyZ2luLXRvcDogLSRzcGFjaW5nLWxhcmdlOyB9XG4gIC5udDUtbCB7IG1hcmdpbi10b3A6IC0kc3BhY2luZy1leHRyYS1sYXJnZTsgfVxuICAubnQ2LWwgeyBtYXJnaW4tdG9wOiAtJHNwYWNpbmctZXh0cmEtZXh0cmEtbGFyZ2U7IH1cbiAgLm50Ny1sIHsgbWFyZ2luLXRvcDogLSRzcGFjaW5nLWV4dHJhLWV4dHJhLWV4dHJhLWxhcmdlOyB9XG59XG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLypcblxuICBUQUJMRVNcbiAgRG9jczogaHR0cDovL3RhY2h5b25zLmlvL2RvY3MvZWxlbWVudHMvdGFibGVzL1xuXG4qL1xuXG4uY29sbGFwc2Uge1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbi5zdHJpcGVkLS1saWdodC1zaWx2ZXI6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtc2lsdmVyO1xufVxuXG4uc3RyaXBlZC0tbW9vbi1ncmF5Om50aC1jaGlsZChvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG1vb24tZ3JheTtcbn1cblxuLnN0cmlwZWQtLWxpZ2h0LWdyYXk6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JheTtcbn1cblxuLnN0cmlwZWQtLW5lYXItd2hpdGU6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmVhci13aGl0ZTtcbn1cblxuLnN0cmlwZS1saWdodDpudGgtY2hpbGQob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS0xMDtcbn1cblxuLnN0cmlwZS1kYXJrOm50aC1jaGlsZChvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrLTEwO1xufVxuIiwiXG4vLyBDb252ZXJ0ZWQgVmFyaWFibGVzXG5cblxuLy8gQ3VzdG9tIE1lZGlhIFF1ZXJ5IFZhcmlhYmxlc1xuXG5cbi8qXG5cbiAgIFRFWFQgREVDT1JBVElPTlxuICAgRG9jczogaHR0cDovL3RhY2h5b25zLmlvL2RvY3MvdHlwb2dyYXBoeS90ZXh0LWRlY29yYXRpb24vXG5cblxuICAgTWVkaWEgUXVlcnkgRXh0ZW5zaW9uczpcbiAgICAgLW5zID0gbm90LXNtYWxsXG4gICAgIC1tICA9IG1lZGl1bVxuICAgICAtbCAgPSBsYXJnZVxuXG4qL1xuXG4uc3RyaWtlICAgICAgIHsgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7IH1cbi51bmRlcmxpbmUgICAgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuLm5vLXVuZGVybGluZSB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW5vdC1zbWFsbH0ge1xuICAuc3RyaWtlLW5zICAgICAgIHsgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7IH1cbiAgLnVuZGVybGluZS1ucyAgICB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC5uby11bmRlcmxpbmUtbnMgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbWVkaXVtfSB7XG4gIC5zdHJpa2UtbSAgICAgICB7IHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOyB9XG4gIC51bmRlcmxpbmUtbSAgICB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC5uby11bmRlcmxpbmUtbSB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1sYXJnZX0ge1xuICAuc3RyaWtlLWwgICAgICAgeyB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsgfVxuICAudW5kZXJsaW5lLWwgeyAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAubm8tdW5kZXJsaW5lLWwgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbn1cbiIsIlxuLy8gQ29udmVydGVkIFZhcmlhYmxlc1xuXG5cbi8vIEN1c3RvbSBNZWRpYSBRdWVyeSBWYXJpYWJsZXNcblxuXG4vKlxuXG4gIFRFWFQgQUxJR05cbiAgRG9jczogaHR0cDovL3RhY2h5b25zLmlvL2RvY3MvdHlwb2dyYXBoeS90ZXh0LWFsaWduL1xuXG4gIEJhc2VcbiAgICB0ID0gdGV4dC1hbGlnblxuXG4gIE1vZGlmaWVyc1xuICAgIGwgPSBsZWZ0XG4gICAgciA9IHJpZ2h0XG4gICAgYyA9IGNlbnRlclxuICAgIGogPSBqdXN0aWZ5XG5cbiAgTWVkaWEgUXVlcnkgRXh0ZW5zaW9uczpcbiAgICAtbnMgPSBub3Qtc21hbGxcbiAgICAtbSAgPSBtZWRpdW1cbiAgICAtbCAgPSBsYXJnZVxuXG4qL1xuXG4udGwgIHsgdGV4dC1hbGlnbjogbGVmdDsgfVxuLnRyICB7IHRleHQtYWxpZ246IHJpZ2h0OyB9XG4udGMgIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4udGogIHsgdGV4dC1hbGlnbjoganVzdGlmeTsgfVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1ub3Qtc21hbGx9IHtcbiAgLnRsLW5zICB7IHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLnRyLW5zICB7IHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC50Yy1ucyAgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnRqLW5zICB7IHRleHQtYWxpZ246IGp1c3RpZnk7IH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbWVkaXVtfSB7XG4gIC50bC1tICB7IHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLnRyLW0gIHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLnRjLW0gIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC50ai1tICB7IHRleHQtYWxpZ246IGp1c3RpZnk7IH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbGFyZ2V9IHtcbiAgLnRsLWwgIHsgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAudHItbCAgeyB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAudGMtbCAgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnRqLWwgIHsgdGV4dC1hbGlnbjoganVzdGlmeTsgfVxufVxuIiwiXG4vLyBDb252ZXJ0ZWQgVmFyaWFibGVzXG5cblxuLy8gQ3VzdG9tIE1lZGlhIFF1ZXJ5IFZhcmlhYmxlc1xuXG5cbi8qXG5cbiAgIFRFWFQgVFJBTlNGT1JNXG4gICBEb2NzOiBodHRwOi8vdGFjaHlvbnMuaW8vZG9jcy90eXBvZ3JhcGh5L3RleHQtdHJhbnNmb3JtL1xuXG4gICBCYXNlOlxuICAgICB0dCA9IHRleHQtdHJhbnNmb3JtXG5cbiAgIE1vZGlmaWVyc1xuICAgICBjID0gY2FwaXRhbGl6ZVxuICAgICBsID0gbG93ZXJjYXNlXG4gICAgIHUgPSB1cHBlcmNhc2VcbiAgICAgbiA9IG5vbmVcblxuICAgTWVkaWEgUXVlcnkgRXh0ZW5zaW9uczpcbiAgICAgLW5zID0gbm90LXNtYWxsXG4gICAgIC1tICA9IG1lZGl1bVxuICAgICAtbCAgPSBsYXJnZVxuXG4qL1xuXG4udHRjIHsgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7IH1cbi50dGwgeyB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyB9XG4udHR1IHsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuLnR0biB7IHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW5vdC1zbWFsbH0ge1xuICAudHRjLW5zIHsgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7IH1cbiAgLnR0bC1ucyB7IHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7IH1cbiAgLnR0dS1ucyB7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLnR0bi1ucyB7IHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW1lZGl1bX0ge1xuICAudHRjLW0geyB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsgfVxuICAudHRsLW0geyB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyB9XG4gIC50dHUtbSB7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLnR0bi1tIHsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbGFyZ2V9IHtcbiAgLnR0Yy1sIHsgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7IH1cbiAgLnR0bC1sIHsgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsgfVxuICAudHR1LWwgeyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC50dG4tbCB7IHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG59XG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLypcblxuICAgVFlQRSBTQ0FMRVxuICAgRG9jczogaHR0cDovL3RhY2h5b25zLmlvL2RvY3MvdHlwb2dyYXBoeS9zY2FsZS9cblxuICAgQmFzZTpcbiAgICBmID0gZm9udC1zaXplXG5cbiAgIE1vZGlmaWVyc1xuICAgICAxID0gMXN0IHN0ZXAgaW4gc2l6ZSBzY2FsZVxuICAgICAyID0gMm5kIHN0ZXAgaW4gc2l6ZSBzY2FsZVxuICAgICAzID0gM3JkIHN0ZXAgaW4gc2l6ZSBzY2FsZVxuICAgICA0ID0gNHRoIHN0ZXAgaW4gc2l6ZSBzY2FsZVxuICAgICA1ID0gNXRoIHN0ZXAgaW4gc2l6ZSBzY2FsZVxuICAgICA2ID0gNnRoIHN0ZXAgaW4gc2l6ZSBzY2FsZVxuXG4gICBNZWRpYSBRdWVyeSBFeHRlbnNpb25zOlxuICAgICAtbnMgPSBub3Qtc21hbGxcbiAgICAgLW0gID0gbWVkaXVtXG4gICAgIC1sICA9IGxhcmdlXG4qL1xuXG4vKlxuICogRm9yIEhlcm8vTWFya2V0aW5nIFRpdGxlc1xuICpcbiAqIFRoZXNlIGdlbmVyYWxseSBhcmUgdG9vIGxhcmdlIGZvciBtb2JpbGVcbiAqIHNvIGJlIGNhcmVmdWwgdXNpbmcgdGhlbSBvbiBzbWFsbGVyIHNjcmVlbnMuXG4gKiAqL1xuXG4uZi02LFxuLmYtaGVhZGxpbmUge1xuICBmb250LXNpemU6ICRmb250LXNpemUtaGVhZGxpbmU7XG59XG4uZi01LFxuLmYtc3ViaGVhZGxpbmUge1xuICBmb250LXNpemU6ICRmb250LXNpemUtc3ViaGVhZGxpbmU7XG59XG5cblxuLyogVHlwZSBTY2FsZSAqL1xuXG5cbi5mMSB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS0xOyB9XG4uZjIgeyBmb250LXNpemU6ICRmb250LXNpemUtMjsgfVxuLmYzIHsgZm9udC1zaXplOiAkZm9udC1zaXplLTM7IH1cbi5mNCB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS00OyB9XG4uZjUgeyBmb250LXNpemU6ICRmb250LXNpemUtNTsgfVxuLmY2IHsgZm9udC1zaXplOiAkZm9udC1zaXplLTY7IH1cbi5mNyB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS03OyB9XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW5vdC1zbWFsbH17XG4gIC5mLTYtbnMsXG4gIC5mLWhlYWRsaW5lLW5zIHsgZm9udC1zaXplOiAkZm9udC1zaXplLWhlYWRsaW5lOyB9XG4gIC5mLTUtbnMsXG4gIC5mLXN1YmhlYWRsaW5lLW5zIHsgZm9udC1zaXplOiAkZm9udC1zaXplLXN1YmhlYWRsaW5lOyB9XG4gIC5mMS1ucyB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS0xOyB9XG4gIC5mMi1ucyB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS0yOyB9XG4gIC5mMy1ucyB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS0zOyB9XG4gIC5mNC1ucyB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS00OyB9XG4gIC5mNS1ucyB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS01OyB9XG4gIC5mNi1ucyB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS02OyB9XG4gIC5mNy1ucyB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS03OyB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW1lZGl1bX0ge1xuICAuZi02LW0sXG4gIC5mLWhlYWRsaW5lLW0geyBmb250LXNpemU6ICRmb250LXNpemUtaGVhZGxpbmU7IH1cbiAgLmYtNS1tLFxuICAuZi1zdWJoZWFkbGluZS1tIHsgZm9udC1zaXplOiAkZm9udC1zaXplLXN1YmhlYWRsaW5lOyB9XG4gIC5mMS1tIHsgZm9udC1zaXplOiAkZm9udC1zaXplLTE7IH1cbiAgLmYyLW0geyBmb250LXNpemU6ICRmb250LXNpemUtMjsgfVxuICAuZjMtbSB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS0zOyB9XG4gIC5mNC1tIHsgZm9udC1zaXplOiAkZm9udC1zaXplLTQ7IH1cbiAgLmY1LW0geyBmb250LXNpemU6ICRmb250LXNpemUtNTsgfVxuICAuZjYtbSB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS02OyB9XG4gIC5mNy1tIHsgZm9udC1zaXplOiAkZm9udC1zaXplLTc7IH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbGFyZ2V9IHtcbiAgLmYtNi1sLFxuICAuZi1oZWFkbGluZS1sIHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtaGVhZGxpbmU7XG4gIH1cbiAgLmYtNS1sLFxuICAuZi1zdWJoZWFkbGluZS1sIHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc3ViaGVhZGxpbmU7XG4gIH1cbiAgLmYxLWwgeyBmb250LXNpemU6ICRmb250LXNpemUtMTsgfVxuICAuZjItbCB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS0yOyB9XG4gIC5mMy1sIHsgZm9udC1zaXplOiAkZm9udC1zaXplLTM7IH1cbiAgLmY0LWwgeyBmb250LXNpemU6ICRmb250LXNpemUtNDsgfVxuICAuZjUtbCB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS01OyB9XG4gIC5mNi1sIHsgZm9udC1zaXplOiAkZm9udC1zaXplLTY7IH1cbiAgLmY3LWwgeyBmb250LXNpemU6ICRmb250LXNpemUtNzsgfVxufVxuIiwiXG4vLyBDb252ZXJ0ZWQgVmFyaWFibGVzXG5cblxuLy8gQ3VzdG9tIE1lZGlhIFF1ZXJ5IFZhcmlhYmxlc1xuXG5cbi8qXG5cbiAgIFRZUE9HUkFQSFlcbiAgIGh0dHA6Ly90YWNoeW9ucy5pby9kb2NzL3R5cG9ncmFwaHkvbWVhc3VyZS9cblxuICAgTWVkaWEgUXVlcnkgRXh0ZW5zaW9uczpcbiAgICAgLW5zID0gbm90LXNtYWxsXG4gICAgIC1tICA9IG1lZGl1bVxuICAgICAtbCAgPSBsYXJnZVxuXG4qL1xuXG5cblxuLyogTWVhc3VyZSBpcyBsaW1pdGVkIHRvIH42NiBjaGFyYWN0ZXJzICovXG4ubWVhc3VyZSB7XG4gIG1heC13aWR0aDogJG1lYXN1cmU7XG59XG5cbi8qIE1lYXN1cmUgaXMgbGltaXRlZCB0byB+ODAgY2hhcmFjdGVycyAqL1xuLm1lYXN1cmUtd2lkZSB7XG4gIG1heC13aWR0aDogJG1lYXN1cmUtd2lkZTtcbn1cblxuLyogTWVhc3VyZSBpcyBsaW1pdGVkIHRvIH40NSBjaGFyYWN0ZXJzICovXG4ubWVhc3VyZS1uYXJyb3cge1xuICBtYXgtd2lkdGg6ICRtZWFzdXJlLW5hcnJvdztcbn1cblxuLyogQm9vayBwYXJhZ3JhcGggc3R5bGUgLSBwYXJhZ3JhcGhzIGFyZSBpbmRlbnRlZCB3aXRoIG5vIHZlcnRpY2FsIHNwYWNpbmcuICovXG4uaW5kZW50IHtcbiAgdGV4dC1pbmRlbnQ6IDFlbTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLnNtYWxsLWNhcHMge1xuICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG59XG5cbi8qIENvbWJpbmUgdGhpcyBjbGFzcyB3aXRoIGEgd2lkdGggdG8gdHJ1bmNhdGUgdGV4dCAob3IganVzdCBsZWF2ZSBhcyBpcyB0byB0cnVuY2F0ZSBhdCB3aWR0aCBvZiBjb250YWluaW5nIGVsZW1lbnQuICovXG5cbi50cnVuY2F0ZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1ub3Qtc21hbGx9IHtcbiAgLm1lYXN1cmUtbnMgIHtcbiAgICBtYXgtd2lkdGg6ICRtZWFzdXJlO1xuICB9XG4gIC5tZWFzdXJlLXdpZGUtbnMge1xuICAgIG1heC13aWR0aDogJG1lYXN1cmUtd2lkZTtcbiAgfVxuICAubWVhc3VyZS1uYXJyb3ctbnMge1xuICAgIG1heC13aWR0aDogJG1lYXN1cmUtbmFycm93O1xuICB9XG4gIC5pbmRlbnQtbnMge1xuICAgIHRleHQtaW5kZW50OiAxZW07XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIC5zbWFsbC1jYXBzLW5zIHtcbiAgICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG4gIH1cbiAgLnRydW5jYXRlLW5zIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbWVkaXVtfSB7XG4gIC5tZWFzdXJlLW0ge1xuICAgIG1heC13aWR0aDogJG1lYXN1cmU7XG4gIH1cbiAgLm1lYXN1cmUtd2lkZS1tIHtcbiAgICBtYXgtd2lkdGg6ICRtZWFzdXJlLXdpZGU7XG4gIH1cbiAgLm1lYXN1cmUtbmFycm93LW0ge1xuICAgIG1heC13aWR0aDogJG1lYXN1cmUtbmFycm93O1xuICB9XG4gIC5pbmRlbnQtbSB7XG4gICAgdGV4dC1pbmRlbnQ6IDFlbTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbiAgLnNtYWxsLWNhcHMtbSB7XG4gICAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xuICB9XG4gIC50cnVuY2F0ZS1tIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbGFyZ2V9IHtcbiAgLm1lYXN1cmUtbCB7XG4gICAgbWF4LXdpZHRoOiAkbWVhc3VyZTtcbiAgfVxuICAubWVhc3VyZS13aWRlLWwge1xuICAgIG1heC13aWR0aDogJG1lYXN1cmUtd2lkZTtcbiAgfVxuICAubWVhc3VyZS1uYXJyb3ctbCB7XG4gICAgbWF4LXdpZHRoOiAkbWVhc3VyZS1uYXJyb3c7XG4gIH1cbiAgLmluZGVudC1sIHtcbiAgICB0ZXh0LWluZGVudDogMWVtO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICAuc21hbGwtY2Fwcy1sIHtcbiAgICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG4gIH1cbiAgLnRydW5jYXRlLWwge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxufVxuIiwiXG4vLyBDb252ZXJ0ZWQgVmFyaWFibGVzXG5cblxuLy8gQ3VzdG9tIE1lZGlhIFF1ZXJ5IFZhcmlhYmxlc1xuXG5cbi8qXG5cbiAgIFVUSUxJVElFU1xuXG4gICBNZWRpYSBRdWVyeSBFeHRlbnNpb25zOlxuICAgICAtbnMgPSBub3Qtc21hbGxcbiAgICAgLW0gID0gbWVkaXVtXG4gICAgIC1sICA9IGxhcmdlXG5cbiovXG5cbi8qIEVxdWl2YWxlbnQgdG8gLm92ZXJmbG93LXktc2Nyb2xsICovXG4ub3ZlcmZsb3ctY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4uY2VudGVyIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuLm1yLWF1dG8geyBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbi5tbC1hdXRvIHsgbWFyZ2luLWxlZnQ6ICBhdXRvOyB9XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW5vdC1zbWFsbH17XG4gIC5jZW50ZXItbnMge1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuICAubXItYXV0by1ucyB7IG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAubWwtYXV0by1ucyB7IG1hcmdpbi1sZWZ0OiAgYXV0bzsgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1tZWRpdW19e1xuICAuY2VudGVyLW0ge1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuICAubXItYXV0by1tIHsgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gIC5tbC1hdXRvLW0geyBtYXJnaW4tbGVmdDogIGF1dG87IH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbGFyZ2V9e1xuICAuY2VudGVyLWwge1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuICAubXItYXV0by1sIHsgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gIC5tbC1hdXRvLWwgeyBtYXJnaW4tbGVmdDogIGF1dG87IH1cbn1cbiIsIlxuLy8gQ29udmVydGVkIFZhcmlhYmxlc1xuXG5cbi8vIEN1c3RvbSBNZWRpYSBRdWVyeSBWYXJpYWJsZXNcblxuXG4vKlxuXG4gICBWSVNJQklMSVRZXG5cbiAgIE1lZGlhIFF1ZXJ5IEV4dGVuc2lvbnM6XG4gICAgIC1ucyA9IG5vdC1zbWFsbFxuICAgICAtbSAgPSBtZWRpdW1cbiAgICAgLWwgID0gbGFyZ2VcblxuKi9cblxuXG4vKlxuICAgIFRleHQgdGhhdCBpcyBoaWRkZW4gYnV0IGFjY2Vzc2libGVcbiAgICBSZWY6IGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiovXG5cbi5jbGlwIHtcbiAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gIF9wb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgY2xpcDogcmVjdCgxcHggMXB4IDFweCAxcHgpOyAvKiBJRTYsIElFNyAqL1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW5vdC1zbWFsbH0ge1xuICAuY2xpcC1ucyB7XG4gICAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gICAgX3Bvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIGNsaXA6IHJlY3QoMXB4IDFweCAxcHggMXB4KTsgLyogSUU2LCBJRTcgKi9cbiAgICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gIH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbWVkaXVtfSB7XG4gIC5jbGlwLW0ge1xuICAgIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICAgIF9wb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICBjbGlwOiByZWN0KDFweCAxcHggMXB4IDFweCk7IC8qIElFNiwgSUU3ICovXG4gICAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LWxhcmdlfSB7XG4gIC5jbGlwLWwge1xuICAgIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICAgIF9wb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICBjbGlwOiByZWN0KDFweCAxcHggMXB4IDFweCk7IC8qIElFNiwgSUU3ICovXG4gICAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICB9XG59XG5cbiIsIlxuLy8gQ29udmVydGVkIFZhcmlhYmxlc1xuXG5cbi8vIEN1c3RvbSBNZWRpYSBRdWVyeSBWYXJpYWJsZXNcblxuXG4vKlxuXG4gICBXSElURSBTUEFDRVxuXG4gICBNZWRpYSBRdWVyeSBFeHRlbnNpb25zOlxuICAgICAtbnMgPSBub3Qtc21hbGxcbiAgICAgLW0gID0gbWVkaXVtXG4gICAgIC1sICA9IGxhcmdlXG5cbiovXG5cblxuLndzLW5vcm1hbCB7IHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cbi5ub3dyYXAgeyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4ucHJlIHsgd2hpdGUtc3BhY2U6IHByZTsgfVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1ub3Qtc21hbGx9IHtcbiAgLndzLW5vcm1hbC1ucyB7IHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cbiAgLm5vd3JhcC1ucyB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgLnByZS1ucyB7IHdoaXRlLXNwYWNlOiBwcmU7IH1cbn1cblxuQG1lZGlhICN7JGJyZWFrcG9pbnQtbWVkaXVtfSB7XG4gIC53cy1ub3JtYWwtbSB7IHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cbiAgLm5vd3JhcC1tIHsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAucHJlLW0geyB3aGl0ZS1zcGFjZTogcHJlOyB9XG59XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LWxhcmdlfSB7XG4gIC53cy1ub3JtYWwtbCB7IHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cbiAgLm5vd3JhcC1sIHsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAucHJlLWwgeyB3aGl0ZS1zcGFjZTogcHJlOyB9XG59XG5cbiIsIlxuLy8gQ29udmVydGVkIFZhcmlhYmxlc1xuXG5cbi8vIEN1c3RvbSBNZWRpYSBRdWVyeSBWYXJpYWJsZXNcblxuXG4vKlxuXG4gICBWRVJUSUNBTCBBTElHTlxuXG4gICBNZWRpYSBRdWVyeSBFeHRlbnNpb25zOlxuICAgICAtbnMgPSBub3Qtc21hbGxcbiAgICAgLW0gID0gbWVkaXVtXG4gICAgIC1sICA9IGxhcmdlXG5cbiovXG5cbi52LWJhc2UgICAgIHsgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG4udi1taWQgICAgICB7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbi52LXRvcCAgICAgIHsgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuLnYtYnRtICAgICAgeyB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOyB9XG5cbkBtZWRpYSAjeyRicmVha3BvaW50LW5vdC1zbWFsbH0ge1xuICAudi1iYXNlLW5zICAgICB7IHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuICAudi1taWQtbnMgICAgICB7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgLnYtdG9wLW5zICAgICAgeyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gIC52LWJ0bS1ucyAgICAgIHsgdmVydGljYWwtYWxpZ246IGJvdHRvbTsgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1tZWRpdW19IHtcbiAgLnYtYmFzZS1tICAgICB7IHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuICAudi1taWQtbSAgICAgIHsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAudi10b3AtbSAgICAgIHsgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAudi1idG0tbSAgICAgIHsgdmVydGljYWwtYWxpZ246IGJvdHRvbTsgfVxufVxuXG5AbWVkaWEgI3skYnJlYWtwb2ludC1sYXJnZX0ge1xuICAudi1iYXNlLWwgICAgIHsgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG4gIC52LW1pZC1sICAgICAgeyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC52LXRvcC1sICAgICAgeyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gIC52LWJ0bS1sICAgICAgeyB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOyB9XG59XG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLypcblxuICBIT1ZFUiBFRkZFQ1RTXG4gIERvY3M6IGh0dHA6Ly90YWNoeW9ucy5pby9kb2NzL3RoZW1lcy9ob3ZlcnMvXG5cbiAgICAtIERpbVxuICAgIC0gR2xvd1xuICAgIC0gSGlkZSBDaGlsZFxuICAgIC0gVW5kZXJsaW5lIHRleHRcbiAgICAtIEdyb3dcbiAgICAtIFBvaW50ZXJcbiAgICAtIFNoYWRvd1xuXG4qL1xuXG4vKlxuXG4gIERpbSBlbGVtZW50IG9uIGhvdmVyIGJ5IGFkZGluZyB0aGUgZGltIGNsYXNzLlxuXG4qL1xuLmRpbSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjE1cyBlYXNlLWluO1xufVxuLmRpbTpob3Zlcixcbi5kaW06Zm9jdXMge1xuICBvcGFjaXR5OiAuNTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMTVzIGVhc2UtaW47XG59XG4uZGltOmFjdGl2ZSB7XG4gIG9wYWNpdHk6IC44OyB0cmFuc2l0aW9uOiBvcGFjaXR5IC4xNXMgZWFzZS1vdXQ7XG59XG5cbi8qXG5cbiAgQW5pbWF0ZSBvcGFjaXR5IHRvIDEwMCUgb24gaG92ZXIgYnkgYWRkaW5nIHRoZSBnbG93IGNsYXNzLlxuXG4qL1xuLmdsb3cge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4xNXMgZWFzZS1pbjtcbn1cbi5nbG93OmhvdmVyLFxuLmdsb3c6Zm9jdXMge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4xNXMgZWFzZS1pbjtcbn1cblxuLypcblxuICBIaWRlIGNoaWxkICYgcmV2ZWFsIG9uIGhvdmVyOlxuXG4gIFB1dCB0aGUgaGlkZS1jaGlsZCBjbGFzcyBvbiBhIHBhcmVudCBlbGVtZW50IGFuZCBhbnkgbmVzdGVkIGVsZW1lbnQgd2l0aCB0aGVcbiAgY2hpbGQgY2xhc3Mgd2lsbCBiZSBoaWRkZW4gYW5kIGRpc3BsYXllZCBvbiBob3ZlciBvciBmb2N1cy5cblxuICA8ZGl2IGNsYXNzPVwiaGlkZS1jaGlsZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjaGlsZFwiPiBIaWRkZW4gdW50aWwgaG92ZXIgb3IgZm9jdXMgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNoaWxkXCI+IEhpZGRlbiB1bnRpbCBob3ZlciBvciBmb2N1cyA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2hpbGRcIj4gSGlkZGVuIHVudGlsIGhvdmVyIG9yIGZvY3VzIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjaGlsZFwiPiBIaWRkZW4gdW50aWwgaG92ZXIgb3IgZm9jdXMgPC9kaXY+XG4gIDwvZGl2PlxuKi9cblxuLmhpZGUtY2hpbGQgLmNoaWxkIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMTVzIGVhc2UtaW47XG59XG4uaGlkZS1jaGlsZDpob3ZlciAgLmNoaWxkLFxuLmhpZGUtY2hpbGQ6Zm9jdXMgIC5jaGlsZCxcbi5oaWRlLWNoaWxkOmFjdGl2ZSAuY2hpbGQge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4xNXMgZWFzZS1pbjtcbn1cblxuLnVuZGVybGluZS1ob3Zlcjpob3Zlcixcbi51bmRlcmxpbmUtaG92ZXI6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLyogQ2FuIGNvbWJpbmUgdGhpcyB3aXRoIG92ZXJmbG93LWhpZGRlbiB0byBtYWtlIGJhY2tncm91bmQgaW1hZ2VzIGdyb3cgb24gaG92ZXJcbiAqIGV2ZW4gaWYgeW91IGFyZSB1c2luZyBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyICovXG5cbi5ncm93IHtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlLW91dDtcbn1cblxuLmdyb3c6aG92ZXIsXG4uZ3Jvdzpmb2N1cyB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG59XG5cbi5ncm93OmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoLjkwKTtcbn1cblxuLmdyb3ctbGFyZ2Uge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4yNXMgZWFzZS1pbi1vdXQ7XG59XG5cbi5ncm93LWxhcmdlOmhvdmVyLFxuLmdyb3ctbGFyZ2U6Zm9jdXMge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG59XG5cbi5ncm93LWxhcmdlOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoLjk1KTtcbn1cblxuLyogQWRkIHBvaW50ZXIgb24gaG92ZXIgKi9cblxuLnBvaW50ZXI6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qXG4gICBBZGQgc2hhZG93IG9uIGhvdmVyLlxuXG4gICBQZXJmb3JtYW50IGJveC1zaGFkb3cgYW5pbWF0aW9uIHBhdHRlcm4gZnJvbVxuICAgaHR0cDovL3RvYmlhc2FobGluLmNvbS9ibG9nL2hvdy10by1hbmltYXRlLWJveC1zaGFkb3cvXG4qL1xuXG4uc2hhZG93LWhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7XG59XG5cbi5zaGFkb3ctaG92ZXI6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMTZweCAycHggcmdiYSggMCwgMCwgMCwgLjIgKTtcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IC0xO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKTtcbn1cblxuLnNoYWRvdy1ob3Zlcjpob3Zlcjo6YWZ0ZXIsXG4uc2hhZG93LWhvdmVyOmZvY3VzOjphZnRlciB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8qIENvbWJpbmUgd2l0aCBjbGFzc2VzIGluIHNraW5zIGFuZCBza2lucy1wc2V1ZG8gZm9yXG4gKiBtYW55IGRpZmZlcmVudCB0cmFuc2l0aW9uIHBvc3NpYmlsaXRpZXMuICovXG5cbi5iZy1hbmltYXRlLFxuLmJnLWFuaW1hdGU6aG92ZXIsXG4uYmctYW5pbWF0ZTpmb2N1cyB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjE1cyBlYXNlLWluLW91dDtcbn1cbiIsIlxuLy8gQ29udmVydGVkIFZhcmlhYmxlc1xuXG5cbi8vIEN1c3RvbSBNZWRpYSBRdWVyeSBWYXJpYWJsZXNcblxuXG4vKlxuXG4gIFotSU5ERVhcblxuICBCYXNlXG4gICAgeiA9IHotaW5kZXhcblxuICBNb2RpZmllcnNcbiAgICAtMCA9IGxpdGVyYWwgdmFsdWUgMFxuICAgIC0xID0gbGl0ZXJhbCB2YWx1ZSAxXG4gICAgLTIgPSBsaXRlcmFsIHZhbHVlIDJcbiAgICAtMyA9IGxpdGVyYWwgdmFsdWUgM1xuICAgIC00ID0gbGl0ZXJhbCB2YWx1ZSA0XG4gICAgLTUgPSBsaXRlcmFsIHZhbHVlIDVcbiAgICAtOTk5ID0gbGl0ZXJhbCB2YWx1ZSA5OTlcbiAgICAtOTk5OSA9IGxpdGVyYWwgdmFsdWUgOTk5OVxuXG4gICAgLW1heCA9IGxhcmdlc3QgYWNjZXB0ZWQgei1pbmRleCB2YWx1ZSBhcyBpbnRlZ2VyXG5cbiAgICAtaW5oZXJpdCA9IHN0cmluZyB2YWx1ZSBpbmhlcml0XG4gICAgLWluaXRpYWwgPSBzdHJpbmcgdmFsdWUgaW5pdGlhbFxuICAgIC11bnNldCA9IHN0cmluZyB2YWx1ZSB1bnNldFxuXG4gIE1ETjogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4vZG9jcy9XZWIvQ1NTL3otaW5kZXhcbiAgU3BlYzogaHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMi96aW5kZXguaHRtbFxuICBBcnRpY2xlczpcbiAgICBodHRwczovL3BoaWxpcHdhbHRvbi5jb20vYXJ0aWNsZXMvd2hhdC1uby1vbmUtdG9sZC15b3UtYWJvdXQtei1pbmRleC9cblxuICBUaXBzIG9uIGV4dGVuZGluZzpcbiAgVGhlcmUgbWlnaHQgYmUgYSB0aW1lIHdvcnRoIHVzaW5nIG5lZ2F0aXZlIHotaW5kZXggdmFsdWVzLlxuICBPciBpZiB5b3UgYXJlIHVzaW5nIHRhY2h5b25zIHdpdGggYW5vdGhlciBwcm9qZWN0LCB5b3UgbWlnaHQgbmVlZCB0b1xuICBhZGp1c3QgdGhlc2UgdmFsdWVzIHRvIHN1aXQgeW91ciBuZWVkcy5cblxuKi9cblxuLnotMCB7IHotaW5kZXg6IDA7IH1cbi56LTEgeyB6LWluZGV4OiAxOyB9XG4uei0yIHsgei1pbmRleDogMjsgfVxuLnotMyB7IHotaW5kZXg6IDM7IH1cbi56LTQgeyB6LWluZGV4OiA0OyB9XG4uei01IHsgei1pbmRleDogNTsgfVxuXG4uei05OTkgeyB6LWluZGV4OiA5OTk7IH1cbi56LTk5OTkgeyB6LWluZGV4OiA5OTk5OyB9XG5cbi56LW1heCB7XG4gIHotaW5kZXg6IDIxNDc0ODM2NDc7XG59XG5cbi56LWluaGVyaXQgeyB6LWluZGV4OiBpbmhlcml0OyB9XG4uei1pbml0aWFsIHsgei1pbmRleDogaW5pdGlhbDsgfVxuLnotdW5zZXQgeyB6LWluZGV4OiB1bnNldDsgfVxuXG4iLCJcbi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcblxuXG4vLyBDdXN0b20gTWVkaWEgUXVlcnkgVmFyaWFibGVzXG5cblxuLypcblxuICAgIE5FU1RFRFxuICAgIFRhY2h5b25zIG1vZHVsZSBmb3Igc3R5bGluZyBuZXN0ZWQgZWxlbWVudHNcbiAgICB0aGF0IGFyZSBnZW5lcmF0ZWQgYnkgYSBjbXMuXG5cbiovXG5cbi5uZXN0ZWQtY29weS1saW5lLWhlaWdodCBwLFxuLm5lc3RlZC1jb3B5LWxpbmUtaGVpZ2h0IHVsLFxuLm5lc3RlZC1jb3B5LWxpbmUtaGVpZ2h0IG9sIHtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1jb3B5O1xufVxuXG4ubmVzdGVkLWhlYWRsaW5lLWxpbmUtaGVpZ2h0IGgxLFxuLm5lc3RlZC1oZWFkbGluZS1saW5lLWhlaWdodCBoMixcbi5uZXN0ZWQtaGVhZGxpbmUtbGluZS1oZWlnaHQgaDMsXG4ubmVzdGVkLWhlYWRsaW5lLWxpbmUtaGVpZ2h0IGg0LFxuLm5lc3RlZC1oZWFkbGluZS1saW5lLWhlaWdodCBoNSxcbi5uZXN0ZWQtaGVhZGxpbmUtbGluZS1oZWlnaHQgaDYge1xuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LXRpdGxlO1xufVxuXG4ubmVzdGVkLWxpc3QtcmVzZXQgdWwsXG4ubmVzdGVkLWxpc3QtcmVzZXQgb2wge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi5uZXN0ZWQtY29weS1pbmRlbnQgcCtwIHtcbiAgdGV4dC1pbmRlbnQ6ICRsZXR0ZXItc3BhY2luZy0xO1xuICBtYXJnaW4tdG9wOiAkc3BhY2luZy1ub25lO1xuICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1ub25lO1xufVxuXG4ubmVzdGVkLWNvcHktc2VwZXJhdG9yIHArcCB7XG4gIG1hcmdpbi10b3A6ICRzcGFjaW5nLWNvcHktc2VwYXJhdG9yO1xufVxuXG4ubmVzdGVkLWltZyBpbWcge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLm5lc3RlZC1saW5rcyBhIHtcbiAgY29sb3I6ICRibHVlO1xuICB0cmFuc2l0aW9uOiBjb2xvciAuMTVzIGVhc2UtaW47XG59XG5cbi5uZXN0ZWQtbGlua3MgYTpob3Zlcixcbi5uZXN0ZWQtbGlua3MgYTpmb2N1cyB7XG4gIGNvbG9yOiAkbGlnaHQtYmx1ZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgLjE1cyBlYXNlLWluO1xufVxuIiwiQHVzZSBcInNhc3M6bWV0YVwiO1xuQHVzZSBcInZhcmlhYmxlc1wiIGFzICo7XG5AdXNlIFwidHlwZVwiO1xuQHVzZSBcIm1peGluc1wiO1xuXG4ud3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDE0NjBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDAgMjBweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm9wYmxvY2stdGFnLXNlY3Rpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4udHJ5LW91dC5idG4tZ3JvdXAge1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAwLjEgMiBhdXRvO1xufVxuXG4udHJ5LW91dF9fYnRuIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG59XG5cbi5vcGJsb2NrLXRhZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgcGFkZGluZzogMTBweCAyMHB4IDEwcHggMTBweDtcblxuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKCRvcGJsb2NrLXRhZy1ib3JkZXItYm90dG9tLWNvbG9yLCAwLjMpO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoJG9wYmxvY2stdGFnLWJhY2tncm91bmQtY29sb3ItaG92ZXIsIDAuMDIpO1xuICB9XG59XG5cbi5vcGJsb2NrLXRhZyB7XG4gIGZvbnQtc2l6ZTogMjRweDtcblxuICBtYXJnaW46IDAgMCA1cHggMDtcblxuICBAaW5jbHVkZSB0eXBlLnRleHRfaGVhZGxpbmUoKTtcblxuICAmLm5vLWRlc2Mge1xuICAgIHNwYW4ge1xuICAgICAgZmxleDogMTtcbiAgICB9XG4gIH1cblxuICBzdmcge1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjRzO1xuICB9XG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuXG4gICAgZmxleDogMjtcblxuICAgIHBhZGRpbmc6IDAgMTBweDtcblxuICAgIEBpbmNsdWRlIHR5cGUudGV4dF9ib2R5KCk7XG4gIH1cblxuICA+IGRpdiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIGZsZXg6IDEgMSAxNTBweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICB9XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgc21hbGwge1xuICAgICAgZmxleDogMTtcbiAgICB9XG5cbiAgICA+IGRpdiB7XG4gICAgICBmbGV4OiAxO1xuICAgIH1cbiAgfVxuXG4gIC5pbmZvX19leHRlcm5hbGRvY3Mge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG59XG5cbi5wYXJhbWV0ZXJfX3R5cGUge1xuICBmb250LXNpemU6IDEycHg7XG5cbiAgcGFkZGluZzogNXB4IDA7XG5cbiAgQGluY2x1ZGUgdHlwZS50ZXh0X2NvZGUoKTtcbn1cblxuLnBhcmFtZXRlci1jb250cm9scyB7XG4gIG1hcmdpbi10b3A6IDAuNzVlbTtcbn1cblxuLmV4YW1wbGVzIHtcbiAgJl9fdGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS4xZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMC43NWVtO1xuICB9XG5cbiAgJl9fc2VjdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogMS41ZW07XG4gIH1cbiAgJl9fc2VjdGlvbi1oZWFkZXIge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgfVxufVxuXG4uZXhhbXBsZXMtc2VsZWN0IHtcbiAgbWFyZ2luLWJvdHRvbTogMC43NWVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC5leGFtcGxlcy1zZWxlY3QtZWxlbWVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgJl9fc2VjdGlvbi1sYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gIH1cbn1cblxuLmV4YW1wbGUge1xuICAmX19zZWN0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiAxLjVlbTtcbiAgfVxuICAmX19zZWN0aW9uLWhlYWRlciB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICB9XG59XG5cbi52aWV3LWxpbmUtbGluayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAzcHg7XG5cbiAgd2lkdGg6IDIwcHg7XG4gIG1hcmdpbjogMCA1cHg7XG5cbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cztcbn1cblxuLm9wYmxvY2sge1xuICBtYXJnaW46IDAgMCAxNXB4IDA7XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJG9wYmxvY2stYm9yZGVyLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDAgMCAzcHggcmdiYSgkb3BibG9jay1ib3gtc2hhZG93LWNvbG9yLCAwLjE5KTtcblxuICAudGFiLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIGZsZXg6IDE7XG5cbiAgICAudGFiLWl0ZW0ge1xuICAgICAgcGFkZGluZzogMCA0MHB4O1xuXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIHBhZGRpbmc6IDAgNDBweCAwIDA7XG4gICAgICB9XG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGg0IHtcbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgYm90dG9tOiAtMTVweDtcbiAgICAgICAgICAgICAgbGVmdDogNTAlO1xuXG4gICAgICAgICAgICAgIHdpZHRoOiAxMjAlO1xuICAgICAgICAgICAgICBoZWlnaHQ6IDRweDtcblxuICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG9wYmxvY2stdGFiLWhlYWRlci10YWItaXRlbS1hY3RpdmUtaDQtc3Bhbi1hZnRlci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYuaXMtb3BlbiB7XG4gICAgLm9wYmxvY2stc3VtbWFyeSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJG9wYmxvY2staXNvcGVuLXN1bW1hcnktYm9yZGVyLWJvdHRvbS1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAub3BibG9jay1zZWN0aW9uLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgcGFkZGluZzogOHB4IDIwcHg7XG5cbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuXG4gICAgYmFja2dyb3VuZDogcmdiYSgkb3BibG9jay1pc29wZW4tc2VjdGlvbi1oZWFkZXItYmFja2dyb3VuZC1jb2xvciwgMC44KTtcbiAgICBib3gtc2hhZG93OiAwIDFweCAycHhcbiAgICAgIHJnYmEoJG9wYmxvY2staXNvcGVuLXNlY3Rpb24taGVhZGVyLWJveC1zaGFkb3ctY29sb3IsIDAuMSk7XG5cbiAgICA+IGxhYmVsIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgbWFyZ2luOiAwIDAgMCBhdXRvO1xuXG4gICAgICBAaW5jbHVkZSB0eXBlLnRleHRfaGVhZGxpbmUoKTtcblxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgcGFkZGluZzogMCAxMHB4IDAgMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBoNCB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG5cbiAgICAgIGZsZXg6IDE7XG5cbiAgICAgIG1hcmdpbjogMDtcblxuICAgICAgQGluY2x1ZGUgdHlwZS50ZXh0X2hlYWRsaW5lKCk7XG4gICAgfVxuICB9XG5cbiAgLm9wYmxvY2stc3VtbWFyeS1tZXRob2Qge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgIG1pbi13aWR0aDogODBweDtcbiAgICBwYWRkaW5nOiA2cHggMDtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBiYWNrZ3JvdW5kOiAkb3BibG9jay1zdW1tYXJ5LW1ldGhvZC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIHRleHQtc2hhZG93OiAwIDFweCAwIHJnYmEoJG9wYmxvY2stc3VtbWFyeS1tZXRob2QtdGV4dC1zaGFkb3ctY29sb3IsIDAuMSk7XG5cbiAgICBAaW5jbHVkZSB0eXBlLnRleHRfaGVhZGxpbmUoJG9wYmxvY2stc3VtbWFyeS1tZXRob2QtZm9udC1jb2xvcik7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB9XG4gIH1cblxuICAub3BibG9jay1zdW1tYXJ5LXBhdGgsXG4gIC5vcGJsb2NrLXN1bW1hcnktb3BlcmF0aW9uLWlkLFxuICAub3BibG9jay1zdW1tYXJ5LXBhdGhfX2RlcHJlY2F0ZWQge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5cbiAgICBAaW5jbHVkZSB0eXBlLnRleHRfY29kZSgpO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgfVxuICB9XG5cbiAgLm9wYmxvY2stc3VtbWFyeS1wYXRoIHtcbiAgICBmbGV4LXNocmluazogMTtcbiAgfVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgIC5vcGJsb2NrLXN1bW1hcnktcGF0aCB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLm9wYmxvY2stc3VtbWFyeS1wYXRoX19kZXByZWNhdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgfVxuXG4gIC5vcGJsb2NrLXN1bW1hcnktb3BlcmF0aW9uLWlkIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cblxuICAub3BibG9jay1zdW1tYXJ5LWRlc2NyaXB0aW9uIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG5cbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuXG4gICAgQGluY2x1ZGUgdHlwZS50ZXh0X2JvZHkoKTtcbiAgfVxuXG4gIC5vcGJsb2NrLXN1bW1hcnktcGF0aC1kZXNjcmlwdGlvbi13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAwcHggMTBweDtcblxuICAgIHBhZGRpbmc6IDAgMTBweDtcblxuICAgIGZsZXgtZ3JvdzogMTtcbiAgfVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA1NTBweCkge1xuICAgIC5vcGJsb2NrLXN1bW1hcnktcGF0aC1kZXNjcmlwdGlvbi13cmFwcGVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG4gIH1cblxuICAub3BibG9jay1zdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBwYWRkaW5nOiA1cHg7XG5cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAudmlldy1saW5lLWxpbmsge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAycHg7XG5cbiAgICAgIHdpZHRoOiAwO1xuICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC41cztcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIC52aWV3LWxpbmUtbGluayB7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICBtYXJnaW46IDAgNXB4O1xuXG4gICAgICAgICYuY29weS10by1jbGlwYm9hcmQge1xuICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5vcGJsb2NrLXBvc3Qge1xuICAgIEBpbmNsdWRlIG1peGlucy5tZXRob2QoJGNvbG9yLXBvc3QpO1xuICB9XG5cbiAgJi5vcGJsb2NrLXB1dCB7XG4gICAgQGluY2x1ZGUgbWl4aW5zLm1ldGhvZCgkY29sb3ItcHV0KTtcbiAgfVxuXG4gICYub3BibG9jay1kZWxldGUge1xuICAgIEBpbmNsdWRlIG1peGlucy5tZXRob2QoJGNvbG9yLWRlbGV0ZSk7XG4gIH1cblxuICAmLm9wYmxvY2stZ2V0IHtcbiAgICBAaW5jbHVkZSBtaXhpbnMubWV0aG9kKCRjb2xvci1nZXQpO1xuICB9XG5cbiAgJi5vcGJsb2NrLXBhdGNoIHtcbiAgICBAaW5jbHVkZSBtaXhpbnMubWV0aG9kKCRjb2xvci1wYXRjaCk7XG4gIH1cblxuICAmLm9wYmxvY2staGVhZCB7XG4gICAgQGluY2x1ZGUgbWl4aW5zLm1ldGhvZCgkY29sb3ItaGVhZCk7XG4gIH1cblxuICAmLm9wYmxvY2stb3B0aW9ucyB7XG4gICAgQGluY2x1ZGUgbWl4aW5zLm1ldGhvZCgkY29sb3Itb3B0aW9ucyk7XG4gIH1cblxuICAmLm9wYmxvY2stZGVwcmVjYXRlZCB7XG4gICAgb3BhY2l0eTogMC42O1xuXG4gICAgQGluY2x1ZGUgbWl4aW5zLm1ldGhvZCgkY29sb3ItZGlzYWJsZWQpO1xuICB9XG5cbiAgLm9wYmxvY2stc2NoZW1lcyB7XG4gICAgcGFkZGluZzogOHB4IDIwcHg7XG5cbiAgICAuc2NoZW1lcy10aXRsZSB7XG4gICAgICBwYWRkaW5nOiAwIDEwcHggMCAwO1xuICAgIH1cbiAgfVxufVxuXG4uZmlsdGVyIHtcbiAgLm9wZXJhdGlvbi1maWx0ZXItaW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMjBweCAwO1xuICAgIHBhZGRpbmc6IDEwcHggMTBweDtcblxuICAgIGJvcmRlcjogMnB4IHNvbGlkICRvcGVyYXRpb25hbC1maWx0ZXItaW5wdXQtYm9yZGVyLWNvbG9yO1xuICB9XG59XG5cbi5maWx0ZXIsXG4uZG93bmxvYWQtdXJsLXdyYXBwZXIge1xuICAuZmFpbGVkIHtcbiAgICBjb2xvcjogcmVkO1xuICB9XG5cbiAgLmxvYWRpbmcge1xuICAgIGNvbG9yOiAjYWFhO1xuICB9XG59XG5cbi5tb2RlbC1leGFtcGxlIHtcbiAgbWFyZ2luLXRvcDogMWVtO1xuXG4gIC5tb2RlbC1jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAubW9kZWwtaGludDpub3QoLm1vZGVsLWhpbnQtLWVtYmVkZGVkKSB7XG4gICAgICB0b3A6IC0xLjE1ZW07XG4gICAgfVxuICB9XG59XG5cbi50YWIge1xuICBkaXNwbGF5OiBmbGV4O1xuXG4gIHBhZGRpbmc6IDA7XG5cbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICBsaSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuXG4gICAgbWluLXdpZHRoOiA2MHB4O1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBAaW5jbHVkZSB0eXBlLnRleHRfaGVhZGxpbmUoKTtcblxuICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XG5cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDZweDtcblxuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgY29udGVudDogXCJcIjtcblxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCR0YWItbGlzdC1pdGVtLWZpcnN0LWJhY2tncm91bmQtY29sb3IsIDAuMik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5hY3RpdmUge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuXG4gICAgYnV0dG9uLnRhYmxpbmtzIHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG5cbi5vcGJsb2NrLWRlc2NyaXB0aW9uLXdyYXBwZXIsXG4ub3BibG9jay1leHRlcm5hbC1kb2NzLXdyYXBwZXIsXG4ub3BibG9jay10aXRsZV9ub3JtYWwge1xuICBmb250LXNpemU6IDEycHg7XG5cbiAgbWFyZ2luOiAwIDAgNXB4IDA7XG4gIHBhZGRpbmc6IDE1cHggMjBweDtcblxuICBAaW5jbHVkZSB0eXBlLnRleHRfYm9keSgpO1xuXG4gIGg0IHtcbiAgICBmb250LXNpemU6IDEycHg7XG5cbiAgICBtYXJnaW46IDAgMCA1cHggMDtcblxuICAgIEBpbmNsdWRlIHR5cGUudGV4dF9ib2R5KCk7XG4gIH1cblxuICBwIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG5cbiAgICBtYXJnaW46IDA7XG5cbiAgICBAaW5jbHVkZSB0eXBlLnRleHRfYm9keSgpO1xuICB9XG59XG5cbi5vcGJsb2NrLWV4dGVybmFsLWRvY3Mtd3JhcHBlciB7XG4gIGg0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgfVxufVxuXG4uZXhlY3V0ZS13cmFwcGVyIHtcbiAgcGFkZGluZzogMjBweDtcblxuICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAuYnRuIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA4cHggNDBweDtcbiAgfVxufVxuXG4uYm9keS1wYXJhbS1vcHRpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAuYm9keS1wYXJhbS1lZGl0IHtcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gIH1cblxuICBsYWJlbCB7XG4gICAgcGFkZGluZzogOHB4IDA7XG4gICAgc2VsZWN0IHtcbiAgICAgIG1hcmdpbjogM3B4IDAgMCAwO1xuICAgIH1cbiAgfVxufVxuXG4ucmVzcG9uc2VzLWlubmVyIHtcbiAgcGFkZGluZzogMjBweDtcblxuICBoNSxcbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcblxuICAgIG1hcmdpbjogMTBweCAwIDVweCAwO1xuXG4gICAgQGluY2x1ZGUgdHlwZS50ZXh0X2JvZHkoKTtcbiAgfVxuXG4gIC5jdXJsIHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDZlbTtcbiAgfVxufVxuXG4ucmVzcG9uc2UtY29sX3N0YXR1cyB7XG4gIGZvbnQtc2l6ZTogMTRweDtcblxuICBAaW5jbHVkZSB0eXBlLnRleHRfYm9keSgpO1xuXG4gIC5yZXNwb25zZS11bmRvY3VtZW50ZWQge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcblxuICAgIEBpbmNsdWRlIHR5cGUudGV4dF9jb2RlKCRyZXNwb25zZS1jb2wtc3RhdHVzLXVuZG9jdW1lbnRlZC1mb250LWNvbG9yKTtcbiAgfVxufVxuXG4ucmVzcG9uc2UtY29sX2xpbmtzIHtcbiAgcGFkZGluZy1sZWZ0OiAyZW07XG4gIG1heC13aWR0aDogNDBlbTtcbiAgZm9udC1zaXplOiAxNHB4O1xuXG4gIEBpbmNsdWRlIHR5cGUudGV4dF9ib2R5KCk7XG5cbiAgLnJlc3BvbnNlLXVuZG9jdW1lbnRlZCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuXG4gICAgQGluY2x1ZGUgdHlwZS50ZXh0X2NvZGUoJHJlc3BvbnNlLWNvbC1saW5rcy1mb250LWNvbG9yKTtcbiAgfVxuXG4gIC5vcGVyYXRpb24tbGluayB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG5cbiAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gICAgfVxuICB9XG59XG5cbi5vcGJsb2NrLWJvZHkge1xuICAub3BibG9jay1sb2FkaW5nLWFuaW1hdGlvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAzZW0gYXV0bztcbiAgfVxufVxuXG4ub3BibG9jay1ib2R5IHByZS5taWNyb2xpZ2h0IHtcbiAgZm9udC1zaXplOiAxMnB4O1xuXG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMTBweDtcblxuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICBoeXBoZW5zOiBhdXRvO1xuXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogJG9wYmxvY2stYm9keS1iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIEBpbmNsdWRlIHR5cGUudGV4dF9jb2RlKCRvcGJsb2NrLWJvZHktZm9udC1jb2xvcik7XG5cbiAgLy8gZGlzYWJsZWQgdG8gaGF2ZSBzeW50YXggaGlnaGxpdGluZyB3aXRoIHJlYWN0LXN5bnRheC1oaWdobGlnaHRcbiAgLy8gc3BhblxuICAvLyB7XG4gIC8vICAgICBjb2xvcjogJG9wYmxvY2stYm9keS1mb250LWNvbG9yICFpbXBvcnRhbnQ7XG4gIC8vIH1cblxuICAuaGVhZGVybGluZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLmhpZ2hsaWdodC1jb2RlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gID4gLm1pY3JvbGlnaHQge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgbWF4LWhlaWdodDogNDAwcHg7XG4gICAgbWluLWhlaWdodDogNmVtO1xuXG4gICAgY29kZSB7XG4gICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXAgIWltcG9ydGFudDtcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICB9XG4gIH1cbn1cbi5jdXJsLWNvbW1hbmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5kb3dubG9hZC1jb250ZW50cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxMHB4O1xuICByaWdodDogMTBweDtcbiAgYmFja2dyb3VuZDogIzdkODI5MztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiA1cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGhlaWdodDogMzBweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5zY2hlbWUtY29udGFpbmVyIHtcbiAgbWFyZ2luOiAwIDAgMjBweCAwO1xuICBwYWRkaW5nOiAzMHB4IDA7XG5cbiAgYmFja2dyb3VuZDogJHNjaGVtZS1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiYSgkc2NoZW1lLWNvbnRhaW5lci1ib3gtc2hhZG93LWNvbG9yLCAwLjE1KTtcblxuICAuc2NoZW1lcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIGdhcDogMTBweDtcblxuICAgIC8qXG4gICAgICAgIFRoaXMgd3JhcHMgdGhlIHNlcnZlcnMgb3Igc2NoZW1lcyBzZWxlY3Rvci5cbiAgICAgICAgVGhpcyB3YXMgYWRkZWQgdG8gbWFrZSBzdXJlIHRoZSBBdXRob3JpemUgYnV0dG9uIGlzIGFsd2F5cyBvbiB0aGUgcmlnaHRcbiAgICAgICAgYW5kIHRoZSBzZXJ2ZXJzIG9yIHNjaGVtZXMgc2VsZWN0b3IgaXMgYWx3YXlzIG9uIHRoZSBsZWZ0LlxuICAgICAgICAqL1xuICAgID4gLnNjaGVtZXMtc2VydmVyLWNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICBnYXA6IDEwcHg7XG5cbiAgICAgID4gbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgbWFyZ2luOiAtMjBweCAxNXB4IDAgMDtcblxuICAgICAgICBAaW5jbHVkZSB0eXBlLnRleHRfaGVhZGxpbmUoKTtcblxuICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgIG1pbi13aWR0aDogMTMwcHg7XG5cbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLypcbiAgICAgICAgVGhpcyBjaGVja3MgaWYgdGhlIHNjaGVtZXMtc2VydmVyLWNvbnRhaW5lciBpcyBub3QgcHJlc2VudCBhbmRcbiAgICAgICAgYWxpZ25zIHRoZSBhdXRob3JpemUgYnV0dG9uIHRvIHRoZSByaWdodFxuICAgICAgICAqL1xuICAgICY6bm90KDpoYXMoLnNjaGVtZXMtc2VydmVyLWNvbnRhaW5lcikpIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgfVxuXG4gICAgLypcbiAgICAgICAgVGFyZ2V0IEF1dGhvcml6ZSBCdXR0b24gaW4gc2NoZW1lcyB3cmFwcGVyXG4gICAgICAgIFRoaXMgd2FzIGFkZGVkIGhlcmUgdG8gZml4IHJlc3BvbnNpdmVuZXNzIGlzc3VlcyB3aXRoIHRoZSBhdXRob3JpemUgYnV0dG9uXG4gICAgICAgIHdpdGhpbiB0aGUgc2NoZW1lcyB3cmFwcGVyIHdpdGhvdXQgYWZmZWN0aW5nIG90aGVyIGluc3RhbmNlcyBvZiBpdCdzIHVzYWdlXG4gICAgICAgICovXG4gICAgLmF1dGgtd3JhcHBlciB7XG4gICAgICBmbGV4OiBub25lO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcblxuICAgICAgLmF1dGhvcml6ZSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ubG9hZGluZy1jb250YWluZXIge1xuICBwYWRkaW5nOiA0MHB4IDAgNjBweDtcbiAgbWFyZ2luLXRvcDogMWVtO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIC5sb2FkaW5nIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDUwJTtcblxuICAgICAgY29udGVudDogXCJsb2FkaW5nXCI7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgIEBpbmNsdWRlIHR5cGUudGV4dF9oZWFkbGluZSgpO1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbGVmdDogNTAlO1xuXG4gICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICBtYXJnaW46IC0zMHB4IC0zMHB4O1xuXG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgYW5pbWF0aW9uOlxuICAgICAgICByb3RhdGlvbiAxcyBpbmZpbml0ZSBsaW5lYXIsXG4gICAgICAgIG9wYWNpdHkgMC41cztcblxuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoJGxvYWRpbmctY29udGFpbmVyLWJlZm9yZS1ib3JkZXItY29sb3IsIDAuMSk7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKCRsb2FkaW5nLWNvbnRhaW5lci1iZWZvcmUtYm9yZGVyLXRvcC1jb2xvciwgMC42KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG5cbiAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgICAgQGtleWZyYW1lcyByb3RhdGlvbiB7XG4gICAgICAgIHRvIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5yZXNwb25zZS1jb250cm9scyB7XG4gIHBhZGRpbmctdG9wOiAxZW07XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5yZXNwb25zZS1jb250cm9sLW1lZGlhLXR5cGUge1xuICBtYXJnaW4tcmlnaHQ6IDFlbTtcblxuICAmLS1hY2NlcHQtY29udHJvbGxlciB7XG4gICAgc2VsZWN0IHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHJlc3BvbnNlLWNvbnRlbnQtdHlwZS1jb250cm9scy1hY2NlcHQtaGVhZGVyLXNlbGVjdC1ib3JkZXItY29sb3I7XG4gICAgfVxuICB9XG5cbiAgJl9fYWNjZXB0LW1lc3NhZ2Uge1xuICAgIGNvbG9yOiAkcmVzcG9uc2UtY29udGVudC10eXBlLWNvbnRyb2xzLWFjY2VwdC1oZWFkZXItc21hbGwtZm9udC1jb2xvcjtcbiAgICBmb250LXNpemU6IDAuN2VtO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDAuMmVtO1xuICAgIGZvbnQtc2l6ZTogMC43ZW07XG4gIH1cbn1cblxuLnJlc3BvbnNlLWNvbnRyb2wtZXhhbXBsZXMge1xuICAmX190aXRsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4yZW07XG4gICAgZm9udC1zaXplOiAwLjdlbTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJsaW5rZXIge1xuICA1MCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5uby1tYXJnaW4ge1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4uZmxvYXQtcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5zdmctYXNzZXRzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xufVxuXG5zZWN0aW9uIHtcbiAgaDMge1xuICAgIEBpbmNsdWRlIHR5cGUudGV4dF9oZWFkbGluZSgpO1xuICB9XG59XG5cbmEubm9zdHlsZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lO1xuXG4gICY6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4uZmFsbGJhY2sge1xuICBwYWRkaW5nOiAxZW07XG4gIGNvbG9yOiAjYWFhO1xufVxuXG4udmVyc2lvbi1wcmFnbWEge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDVlbSAwcHg7XG5cbiAgJl9fbWVzc2FnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuXG4gICAgcGFkZGluZzogMHB4IDAuNmVtO1xuXG4gICAgPiBkaXYge1xuICAgICAgbWF4LXdpZHRoOiA1NWNoO1xuICAgICAgZmxleDogMTtcbiAgICB9XG5cbiAgICBjb2RlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkZWRlZGU7XG4gICAgICBwYWRkaW5nOiA0cHggNHB4IDJweDtcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmU7XG4gICAgfVxuICB9XG59XG5cbi5vcGJsb2NrLWxpbmsge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuXG4gICYuc2hvd24ge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG59XG5cbnNwYW4ge1xuICAmLnRva2VuLXN0cmluZyB7XG4gICAgY29sb3I6ICM1NTU7XG4gIH1cblxuICAmLnRva2VuLW5vdC1mb3JtYXR0ZWQge1xuICAgIGNvbG9yOiAjNTU1O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG59XG4iLCJAdXNlIFwic2Fzczpjb2xvclwiO1xuQHVzZSBcInZhcmlhYmxlc1wiIGFzICo7XG5cbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbi8vIC0gLSBfbWl4aW5zLnNjc3MgbW9kdWxlXG4vLyBzdHlsZXMgZm9yIHRoZSBfbWl4aW5zLnNjc3MgbW9kdWxlXG5AZnVuY3Rpb24gY2FsY3VsYXRlUmVtKCRzaXplKSB7XG4gICRyZW1TaXplOiAkc2l6ZSAvIDE2cHg7XG4gIEByZXR1cm4gJHJlbVNpemUgKiAxcmVtO1xufVxuXG5AbWl4aW4gZm9udC1zaXplKCRzaXplKSB7XG4gIGZvbnQtc2l6ZTogJHNpemU7XG4gIGZvbnQtc2l6ZTogY2FsY3VsYXRlUmVtKCRzaXplKTtcbn1cblxuJWNsZWFyZml4IHtcbiAgJjpiZWZvcmUsXG4gICY6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuXG4gICAgY29udGVudDogXCIgXCI7XG4gIH1cbiAgJjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuQG1peGluIHNpemUoJHdpZHRoLCAkaGVpZ2h0OiAkd2lkdGgpIHtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xufVxuXG4kZWFzZTogKFxuICBpbi1xdWFkOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wODUsIDAuNjgsIDAuNTMpLFxuICBpbi1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSksXG4gIGluLXF1YXJ0OiBjdWJpYy1iZXppZXIoMC44OTUsIDAuMDMsIDAuNjg1LCAwLjIyKSxcbiAgaW4tcXVpbnQ6IGN1YmljLWJlemllcigwLjc1NSwgMC4wNSwgMC44NTUsIDAuMDYpLFxuICBpbi1zaW5lOiBjdWJpYy1iZXppZXIoMC40NywgMCwgMC43NDUsIDAuNzE1KSxcbiAgaW4tZXhwbzogY3ViaWMtYmV6aWVyKDAuOTUsIDAuMDUsIDAuNzk1LCAwLjAzNSksXG4gIGluLWNpcmM6IGN1YmljLWJlemllcigwLjYsIDAuMDQsIDAuOTgsIDAuMzM1KSxcbiAgaW4tYmFjazogY3ViaWMtYmV6aWVyKDAuNiwgLTAuMjgsIDAuNzM1LCAwLjA0NSksXG4gIG91dC1xdWFkOiBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCksXG4gIG91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSksXG4gIG91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKSxcbiAgb3V0LXF1aW50OiBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSksXG4gIG91dC1zaW5lOiBjdWJpYy1iZXppZXIoMC4zOSwgMC41NzUsIDAuNTY1LCAxKSxcbiAgb3V0LWV4cG86IGN1YmljLWJlemllcigwLjE5LCAxLCAwLjIyLCAxKSxcbiAgb3V0LWNpcmM6IGN1YmljLWJlemllcigwLjA3NSwgMC44MiwgMC4xNjUsIDEpLFxuICBvdXQtYmFjazogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpLFxuICBpbi1vdXQtcXVhZDogY3ViaWMtYmV6aWVyKDAuNDU1LCAwLjAzLCAwLjUxNSwgMC45NTUpLFxuICBpbi1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSxcbiAgaW4tb3V0LXF1YXJ0OiBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpLFxuICBpbi1vdXQtcXVpbnQ6IGN1YmljLWJlemllcigwLjg2LCAwLCAwLjA3LCAxKSxcbiAgaW4tb3V0LXNpbmU6IGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSksXG4gIGluLW91dC1leHBvOiBjdWJpYy1iZXppZXIoMSwgMCwgMCwgMSksXG4gIGluLW91dC1jaXJjOiBjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KSxcbiAgaW4tb3V0LWJhY2s6IGN1YmljLWJlemllcigwLjY4LCAtMC41NSwgMC4yNjUsIDEuNTUpLFxuKTtcblxuQGZ1bmN0aW9uIGVhc2UoJGtleSkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGVhc2UsICRrZXkpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGVhc2UsICRrZXkpO1xuICB9XG5cbiAgQHdhcm4gJ1Vua293biBcXCcjeyRrZXl9XFwnIGluICRlYXNlLic7XG4gIEByZXR1cm4gbnVsbDtcbn1cblxuQG1peGluIGVhc2UoJGtleSkge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZSgka2V5KTtcbn1cblxuQG1peGluIHRleHQtdHJ1bmNhdGUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvKCR3aWR0aCwgJGhlaWdodCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICY6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAoJGhlaWdodCAvICR3aWR0aCkgKiAxMDAlO1xuXG4gICAgY29udGVudDogXCJcIjtcbiAgfVxuICA+IGlmcmFtZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgfVxufVxuXG4kYnJvd3Nlci1jb250ZXh0OiAxNjtcblxuQGZ1bmN0aW9uIGVtKCRwaXhlbHMsICRjb250ZXh0OiAkYnJvd3Nlci1jb250ZXh0KSB7XG4gIEBpZiAodW5pdGxlc3MoJHBpeGVscykpIHtcbiAgICAkcGl4ZWxzOiAkcGl4ZWxzICogMXB4O1xuICB9XG5cbiAgQGlmICh1bml0bGVzcygkY29udGV4dCkpIHtcbiAgICAkY29udGV4dDogJGNvbnRleHQgKiAxcHg7XG4gIH1cblxuICBAcmV0dXJuICRwaXhlbHMgLyAkY29udGV4dCAqIDFlbTtcbn1cblxuQG1peGluIG1heEhlaWdodCgkaGVpZ2h0KSB7XG4gIEBtZWRpYSAobWF4LWhlaWdodDogJGhlaWdodCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBicmVha3BvaW50KCRjbGFzcykge1xuICBAaWYgJGNsYXNzID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJGNsYXNzID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDMyMHB4KSBhbmQgKG1heC13aWR0aDogNzM2cHgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkY2xhc3MgPT0gZGVza3RvcCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDE0MDBweCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAd2FybiAnQnJlYWtwb2ludCBtaXhpbiBzdXBwb3J0czogdGFibGV0LCBtb2JpbGUsIGRlc2t0b3AnO1xuICB9XG59XG5cbkBtaXhpbiBpbnZhbGlkRm9ybUVsZW1lbnQoKSB7XG4gIGFuaW1hdGlvbjogc2hha2UgMC40cyAxO1xuICBib3JkZXItY29sb3I6ICRjb2xvci1kZWxldGU7XG4gIGJhY2tncm91bmQ6IGNvbG9yLmFkanVzdCgkY29sb3ItZGVsZXRlLCAkbGlnaHRuZXNzOiAzNSUpO1xufVxuXG5AbWl4aW4gbWV0aG9kKCRjb2xvcikge1xuICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgYmFja2dyb3VuZDogcmdiYSgkY29sb3IsIDAuMSk7XG5cbiAgLm9wYmxvY2stc3VtbWFyeS1tZXRob2Qge1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgfVxuXG4gIC5vcGJsb2NrLXN1bW1hcnkge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgLnRhYi1oZWFkZXIgLnRhYi1pdGVtLmFjdGl2ZSBoNCBzcGFuOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gIH1cbn1cbiIsIkB1c2UgXCJ2YXJpYWJsZXNcIiBhcyAqO1xuQHVzZSBcInR5cGVcIjtcbkB1c2UgXCJtaXhpbnNcIjtcblxuLmJ0biB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgcGFkZGluZzogNXB4IDIzcHg7XG5cbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG5cbiAgYm9yZGVyOiAycHggc29saWQgJGJ0bi1ib3JkZXItY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKCRidG4tYm94LXNoYWRvdy1jb2xvciwgMC4xKTtcblxuICBAaW5jbHVkZSB0eXBlLnRleHRfaGVhZGxpbmUoKTtcblxuICAmLmJ0bi1zbSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmc6IDRweCAyM3B4O1xuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICBvcGFjaXR5OiAwLjM7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4IHJnYmEoJGJ0bi1ib3gtc2hhZG93LWNvbG9yLCAwLjMpO1xuICB9XG5cbiAgJi5jYW5jZWwge1xuICAgIGJvcmRlci1jb2xvcjogJGJ0bi1jYW5jZWwtYm9yZGVyLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRidG4tY2FuY2VsLWJhY2tncm91bmQtY29sb3I7XG4gICAgQGluY2x1ZGUgdHlwZS50ZXh0X2hlYWRsaW5lKCRidG4tY2FuY2VsLWZvbnQtY29sb3IpO1xuICB9XG5cbiAgJi5hdXRob3JpemUge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgZGlzcGxheTogaW5saW5lO1xuXG4gICAgY29sb3I6ICRidG4tYXV0aG9yaXplLWZvbnQtY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYnRuLWF1dGhvcml6ZS1ib3JkZXItY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJ0bi1hdXRob3JpemUtYmFja2dyb3VuZC1jb2xvcjtcblxuICAgIHNwYW4ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAgIHBhZGRpbmc6IDRweCAyMHB4IDAgMDtcbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgZmlsbDogJGJ0bi1hdXRob3JpemUtc3ZnLWZpbGwtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgJi5leGVjdXRlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnRuLWV4ZWN1dGUtYmFja2dyb3VuZC1jb2xvci1hbHQ7XG4gICAgY29sb3I6ICRidG4tZXhlY3V0ZS1mb250LWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJ0bi1leGVjdXRlLWJvcmRlci1jb2xvcjtcbiAgfVxufVxuXG4uYnRuLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcblxuICBwYWRkaW5nOiAzMHB4O1xuXG4gIC5idG4ge1xuICAgIGZsZXg6IDE7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweCAwIDAgNHB4O1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDtcbiAgICB9XG4gIH1cbn1cblxuLmF1dGhvcml6YXRpb25fX2J0biB7XG4gIHBhZGRpbmc6IDAgMCAwIDEwcHg7XG5cbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gIC5sb2NrZWQge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAudW5sb2NrZWQge1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgfVxufVxuXG4ub3BibG9jay1zdW1tYXJ5LWNvbnRyb2wsXG4ubW9kZWxzLWNvbnRyb2wsXG4ubW9kZWwtYm94LWNvbnRyb2wge1xuICBhbGw6IGluaGVyaXQ7XG4gIGZsZXg6IDE7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBhdXRvO1xuICB9XG59XG5cbi5leHBhbmQtbWV0aG9kcyxcbi5leHBhbmQtb3BlcmF0aW9uIHtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gIHN2ZyB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICB9XG59XG5cbi5leHBhbmQtbWV0aG9kcyB7XG4gIHBhZGRpbmc6IDAgMTBweDtcblxuICAmOmhvdmVyIHtcbiAgICBzdmcge1xuICAgICAgZmlsbDogJGV4cGFuZC1tZXRob2RzLXN2Zy1maWxsLWNvbG9yLWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHN2ZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG5cbiAgICBmaWxsOiAkZXhwYW5kLW1ldGhvZHMtc3ZnLWZpbGwtY29sb3I7XG4gIH1cbn1cblxuYnV0dG9uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICYuaW52YWxpZCB7XG4gICAgQGluY2x1ZGUgbWl4aW5zLmludmFsaWRGb3JtRWxlbWVudCgpO1xuICB9XG59XG5cbi5jb3B5LXRvLWNsaXBib2FyZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvdHRvbTogMTBweDtcbiAgcmlnaHQ6IDEwMHB4O1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBiYWNrZ3JvdW5kOiAjN2Q4MjkzO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogbm9uZTtcblxuICBidXR0b24ge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBmbGV4LXNocmluazogMTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICAgIGJhY2tncm91bmQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwgPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNicgaGVpZ2h0PScxNScgYXJpYS1oaWRkZW49J3RydWUnPjxnIHRyYW5zZm9ybT0ndHJhbnNsYXRlKDIsIC0xKSc+PHBhdGggZmlsbD0nI2ZmZmZmZicgZmlsbC1ydWxlPSdldmVub2RkJyBkPSdNMiAxM2g0djFIMnYtMXptNS02SDJ2MWg1Vjd6bTIgM1Y4bC0zIDMgMyAzdi0yaDV2LTJIOXpNNC41IDlIMnYxaDIuNVY5ek0yIDEyaDIuNXYtMUgydjF6bTkgMWgxdjJjLS4wMi4yOC0uMTEuNTItLjMuNy0uMTkuMTgtLjQyLjI4LS43LjNIMWMtLjU1IDAtMS0uNDUtMS0xVjRjMC0uNTUuNDUtMSAxLTFoM2MwLTEuMTEuODktMiAyLTIgMS4xMSAwIDIgLjg5IDIgMmgzYy41NSAwIDEgLjQ1IDEgMXY1aC0xVjZIMXY5aDEwdi0yek0yIDVoOGMwLS41NS0uNDUtMS0xLTFIOGMtLjU1IDAtMS0uNDUtMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxLS40NSAxLTEgMUgzYy0uNTUgMC0xIC40NS0xIDF6Jz48L3BhdGg+PC9nPjwvc3ZnPlwiKVxuICAgICAgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG4gIH1cbn1cblxuLmNvcHktdG8tY2xpcGJvYXJkOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICM1ZTYyNmY7XG59XG5cbi5vcGJsb2NrLWNvbnRyb2wtYXJyb3cge1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cblxuLy8gb3ZlcnJpZGVzIGZvciBzbWFsbGVyIGNvcHkgYnV0dG9uIGZvciBjdXJsIGNvbW1hbmRcbi5jdXJsLWNvbW1hbmQgLmNvcHktdG8tY2xpcGJvYXJkIHtcbiAgYm90dG9tOiA1cHg7XG4gIHJpZ2h0OiAxMHB4O1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuXG4gIGJ1dHRvbiB7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICB9XG59XG5cbi8vIG92ZXJyaWRlcyBmb3IgY29weSB0byBjbGlwYm9hcmQgYnV0dG9uXG4ub3BibG9jayAub3BibG9jay1zdW1tYXJ5IC52aWV3LWxpbmUtbGluay5jb3B5LXRvLWNsaXBib2FyZCB7XG4gIGhlaWdodDogMjZweDtcbiAgcG9zaXRpb246IHVuc2V0O1xufVxuIiwiQHVzZSBcInZhcmlhYmxlc1wiIGFzICo7XG5AdXNlIFwibWl4aW5zXCI7XG5AdXNlIFwidHlwZVwiO1xuXG5zZWxlY3Qge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gIHBhZGRpbmc6IDVweCA0MHB4IDVweCAxMHB4O1xuXG4gIGJvcmRlcjogMnB4IHNvbGlkICRmb3JtLXNlbGVjdC1ib3JkZXItY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogJGZvcm0tc2VsZWN0LWJhY2tncm91bmQtY29sb3JcbiAgICB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCwgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiPjxwYXRoIGQ9XCJNMTMuNDE4IDcuODU5Yy4yNzEtLjI2OC43MDktLjI2OC45NzggMCAuMjcuMjY4LjI3Mi43MDEgMCAuOTY5bC0zLjkwOCAzLjgzYy0uMjcuMjY4LS43MDcuMjY4LS45NzkgMGwtMy45MDgtMy44M2MtLjI3LS4yNjctLjI3LS43MDEgMC0uOTY5LjI3MS0uMjY4LjcwOS0uMjY4Ljk3OCAwTDEwIDExbDMuNDE4LTMuMTQxelwiLz48L3N2Zz4nKVxuICAgIHJpZ2h0IDEwcHggY2VudGVyIG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAyMHB4O1xuICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2JhKCRmb3JtLXNlbGVjdC1ib3gtc2hhZG93LWNvbG9yLCAwLjI1KTtcblxuICBAaW5jbHVkZSB0eXBlLnRleHRfaGVhZGxpbmUoKTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAmW211bHRpcGxlXSB7XG4gICAgbWFyZ2luOiA1cHggMDtcbiAgICBwYWRkaW5nOiA1cHg7XG5cbiAgICBiYWNrZ3JvdW5kOiAkZm9ybS1zZWxlY3QtYmFja2dyb3VuZC1jb2xvcjtcbiAgfVxuXG4gICYuaW52YWxpZCB7XG4gICAgQGluY2x1ZGUgbWl4aW5zLmludmFsaWRGb3JtRWxlbWVudCgpO1xuICB9XG59XG5cbi5vcGJsb2NrLWJvZHkgc2VsZWN0IHtcbiAgbWluLXdpZHRoOiAyMzBweDtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgbWluLXdpZHRoOiAxODBweDtcbiAgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gIH1cbn1cblxubGFiZWwge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gIG1hcmdpbjogMCAwIDVweCAwO1xuXG4gIEBpbmNsdWRlIHR5cGUudGV4dF9oZWFkbGluZSgpO1xufVxuXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcbmlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG5pbnB1dFt0eXBlPVwiZW1haWxcIl0sXG5pbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIG1heC13aWR0aDogMTc1cHg7XG4gIH1cbn1cblxuaW5wdXRbdHlwZT1cInRleHRcIl0sXG5pbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuaW5wdXRbdHlwZT1cImZpbGVcIl0sXG50ZXh0YXJlYSB7XG4gIG1pbi13aWR0aDogMTAwcHg7XG4gIG1hcmdpbjogNXB4IDA7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRmb3JtLWlucHV0LWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kOiAkZm9ybS1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICYuaW52YWxpZCB7XG4gICAgQGluY2x1ZGUgbWl4aW5zLmludmFsaWRGb3JtRWxlbWVudCgpO1xuICB9XG59XG5cbmlucHV0LFxudGV4dGFyZWEsXG5zZWxlY3Qge1xuICAmW2Rpc2FibGVkXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG59XG5cbnNlbGVjdFtkaXNhYmxlZF0ge1xuICBib3JkZXItY29sb3I6ICM4ODg7XG59XG5cbnRleHRhcmVhW2Rpc2FibGVkXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MTQ0NGU7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG5Aa2V5ZnJhbWVzIHNoYWtlIHtcbiAgMTAlLFxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTFweCwgMCwgMCk7XG4gIH1cblxuICAyMCUsXG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgycHgsIDAsIDApO1xuICB9XG5cbiAgMzAlLFxuICA1MCUsXG4gIDcwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNHB4LCAwLCAwKTtcbiAgfVxuXG4gIDQwJSxcbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDRweCwgMCwgMCk7XG4gIH1cbn1cblxudGV4dGFyZWEge1xuICBmb250LXNpemU6IDEycHg7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDI4MHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuXG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kOiByZ2JhKCRmb3JtLXRleHRhcmVhLWJhY2tncm91bmQtY29sb3IsIDAuOCk7XG5cbiAgQGluY2x1ZGUgdHlwZS50ZXh0X2NvZGUoKTtcblxuICAmOmZvY3VzIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkZm9ybS10ZXh0YXJlYS1mb2N1cy1ib3JkZXItY29sb3I7XG4gIH1cblxuICAmLmN1cmwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcblxuICAgIG1pbi1oZWlnaHQ6IDEwMHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuXG4gICAgcmVzaXplOiBub25lO1xuXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICRmb3JtLXRleHRhcmVhLWN1cmwtYmFja2dyb3VuZC1jb2xvcjtcblxuICAgIEBpbmNsdWRlIHR5cGUudGV4dF9jb2RlKCRmb3JtLXRleHRhcmVhLWN1cmwtZm9udC1jb2xvcik7XG4gIH1cbn1cblxuLmNoZWNrYm94IHtcbiAgcGFkZGluZzogNXB4IDAgMTBweDtcblxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7XG5cbiAgY29sb3I6ICRmb3JtLWNoZWNrYm94LWxhYmVsLWZvbnQtY29sb3I7XG5cbiAgbGFiZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICBwIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuXG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSB0eXBlLnRleHRfY29kZSgpO1xuICB9XG5cbiAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJiArIGxhYmVsID4gLml0ZW0ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAzcHg7XG5cbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICBtYXJnaW46IDAgOHB4IDAgMDtcbiAgICAgIHBhZGRpbmc6IDVweDtcblxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICBib3JkZXItcmFkaXVzOiAxcHg7XG4gICAgICBiYWNrZ3JvdW5kOiAkZm9ybS1jaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICRmb3JtLWNoZWNrYm94LWJveC1zaGFkb3ctY29sb3I7XG5cbiAgICAgIGZsZXg6IG5vbmU7XG5cbiAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Y2hlY2tlZCArIGxhYmVsID4gLml0ZW0ge1xuICAgICAgYmFja2dyb3VuZDogJGZvcm0tY2hlY2tib3gtYmFja2dyb3VuZC1jb2xvclxuICAgICAgICB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCwgPHN2ZyB3aWR0aD1cIjEwcHhcIiBoZWlnaHQ9XCI4cHhcIiB2aWV3Qm94PVwiMyA3IDEwIDhcIiB2ZXJzaW9uPVwiMS4xXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwb2x5Z29uIGlkPVwiUmVjdGFuZ2xlLTM0XCIgc3Ryb2tlPVwibm9uZVwiIGZpbGw9XCIjNDE0NzRFXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIHBvaW50cz1cIjYuMzMzMzMzMzMgMTUgMyAxMS42NjY2NjY3IDQuMzMzMzMzMzMgMTAuMzMzMzMzMyA2LjMzMzMzMzMzIDEyLjMzMzMzMzMgMTEuNjY2NjY2NyA3IDEzIDguMzMzMzMzMzNcIj48L3BvbHlnb24+PC9zdmc+JylcbiAgICAgICAgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgfVxuICB9XG59XG4iLCJAdXNlIFwidmFyaWFibGVzXCIgYXMgKjtcbkB1c2UgXCJ0eXBlXCI7XG5cbi5kaWFsb2ctdXgge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk5OTk7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcblxuICAuYmFja2Ryb3AtdXgge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBiYWNrZ3JvdW5kOiByZ2JhKCRkaWFsb2ctdXgtYmFja2Ryb3AtYmFja2dyb3VuZC1jb2xvciwgMC44KTtcbiAgfVxuXG4gIC5tb2RhbC11eCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDk5OTk7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAzMDBweDtcbiAgICBtYXgtd2lkdGg6IDY1MHB4O1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZGlhbG9nLXV4LW1vZGFsLWJvcmRlci1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogJGRpYWxvZy11eC1tb2RhbC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IDAgcmdiYSgkZGlhbG9nLXV4LW1vZGFsLWJveC1zaGFkb3ctY29sb3IsIDAuMik7XG4gIH1cblxuICAubW9kYWwtdXgtY29udGVudCB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIG1heC1oZWlnaHQ6IDU0MHB4O1xuICAgIHBhZGRpbmc6IDIwcHg7XG5cbiAgICBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcblxuICAgICAgbWFyZ2luOiAwIDAgNXB4IDA7XG5cbiAgICAgIGNvbG9yOiAkZGlhbG9nLXV4LW1vZGFsLWNvbnRlbnQtZm9udC1jb2xvcjtcblxuICAgICAgQGluY2x1ZGUgdHlwZS50ZXh0X2JvZHkoKTtcbiAgICB9XG5cbiAgICBoNCB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuXG4gICAgICBtYXJnaW46IDE1cHggMCAwIDA7XG5cbiAgICAgIEBpbmNsdWRlIHR5cGUudGV4dF9oZWFkbGluZSgpO1xuICAgIH1cbiAgfVxuXG4gIC5tb2RhbC11eC1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICBwYWRkaW5nOiAxMnB4IDA7XG5cbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGRpYWxvZy11eC1tb2RhbC1oZWFkZXItYm9yZGVyLWJvdHRvbS1jb2xvcjtcblxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAuY2xvc2UtbW9kYWwge1xuICAgICAgcGFkZGluZzogMCAxMHB4O1xuXG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIH1cblxuICAgIGgzIHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG5cbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDAgMjBweDtcblxuICAgICAgZmxleDogMTtcbiAgICAgIEBpbmNsdWRlIHR5cGUudGV4dF9oZWFkbGluZSgpO1xuICAgIH1cbiAgfVxufVxuIiwiQHVzZSBcInZhcmlhYmxlc1wiIGFzICo7XG5AdXNlIFwidHlwZVwiO1xuXG4ubW9kZWwge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG5cbiAgQGluY2x1ZGUgdHlwZS50ZXh0X2NvZGUoKTtcblxuICAuZGVwcmVjYXRlZCB7XG4gICAgc3BhbixcbiAgICB0ZCB7XG4gICAgICBjb2xvcjogJG1vZGVsLWRlcHJlY2F0ZWQtZm9udC1jb2xvciAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgID4gdGQ6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICB9XG4gIH1cbiAgJi10b2dnbGUge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDZweDtcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIG1hcmdpbjogYXV0byAwLjNlbTtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZS1pbjtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcblxuICAgICYuY29sbGFwc2VkIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuXG4gICAgICBjb250ZW50OiBcIlwiO1xuXG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCwgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxwYXRoIGQ9XCJNMTAgNkw4LjU5IDcuNDEgMTMuMTcgMTJsLTQuNTggNC41OUwxMCAxOGw2LTZ6XCIvPjwvc3ZnPicpXG4gICAgICAgIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgJi1qdW1wLXRvLXBhdGgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIC52aWV3LWxpbmUtbGluayB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IC0wLjRlbTtcblxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gICYtdGl0bGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6aG92ZXIgLm1vZGVsLWhpbnQge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgJi1oaW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMS44ZW07XG5cbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgcGFkZGluZzogMC4xZW0gMC41ZW07XG5cbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgY29sb3I6ICRtb2RlbC1oaW50LWZvbnQtY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoJG1vZGVsLWhpbnQtYmFja2dyb3VuZC1jb2xvciwgMC43KTtcbiAgfVxuXG4gIHAge1xuICAgIG1hcmdpbjogMCAwIDFlbSAwO1xuICB9XG5cbiAgLnByb3BlcnR5IHtcbiAgICBjb2xvcjogIzk5OTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG5cbiAgICAmLnByaW1pdGl2ZSB7XG4gICAgICBjb2xvcjogIzZiNmI2YjtcblxuICAgICAgJi5leHRlbnNpb24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICB3aWR0aDogYXV0bztcblxuICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCI6XFwwMGEwXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmV4dGVybmFsLWRvY3Mge1xuICAgIGNvbG9yOiAjNjY2O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIH1cbn1cblxudGFibGUubW9kZWwge1xuICB0ciB7XG4gICAgJi5kZXNjcmlwdGlvbiB7XG4gICAgICBjb2xvcjogIzY2NjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cbiAgICAgIHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5wcm9wZXJ0eS1yb3cge1xuICAgICAgJi5yZXF1aXJlZCB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgfVxuXG4gICAgICB0ZCB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMC4yZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnN0YXIge1xuICAgICAgICBjb2xvcjogcmVkO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZXh0ZW5zaW9uIHtcbiAgICAgIGNvbG9yOiAjNzc3O1xuXG4gICAgICB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmV4dGVybmFsLWRvY3Mge1xuICAgICAgdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucmVuZGVyZWRNYXJrZG93biBwOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG59XG5cbnNlY3Rpb24ubW9kZWxzIHtcbiAgbWFyZ2luOiAzMHB4IDA7XG5cbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgkc2VjdGlvbi1tb2RlbHMtYm9yZGVyLWNvbG9yLCAwLjMpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgLnBvaW50ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICYuaXMtb3BlbiB7XG4gICAgcGFkZGluZzogMCAwIDIwcHg7XG4gICAgaDQge1xuICAgICAgbWFyZ2luOiAwIDAgNXB4IDA7XG5cbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZFxuICAgICAgICByZ2JhKCRzZWN0aW9uLW1vZGVscy1pc29wZW4taDQtYm9yZGVyLWJvdHRvbS1jb2xvciwgMC4zKTtcbiAgICB9XG4gIH1cbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHggMTBweCAxMHB4O1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuXG4gICAgQGluY2x1ZGUgdHlwZS50ZXh0X2hlYWRsaW5lKCRzZWN0aW9uLW1vZGVscy1oNC1mb250LWNvbG9yKTtcblxuICAgIHN2ZyB7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cztcbiAgICB9XG5cbiAgICBzcGFuIHtcbiAgICAgIGZsZXg6IDE7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZWN0aW9uLW1vZGVscy1oNC1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyLCAwLjAyKTtcbiAgICB9XG4gIH1cblxuICBoNSB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuXG4gICAgbWFyZ2luOiAwIDAgMTBweCAwO1xuXG4gICAgQGluY2x1ZGUgdHlwZS50ZXh0X2hlYWRsaW5lKCRzZWN0aW9uLW1vZGVscy1oNS1mb250LWNvbG9yKTtcbiAgfVxuXG4gIC5tb2RlbC1qdW1wLXRvLXBhdGgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDVweDtcbiAgfVxuXG4gIC5tb2RlbC1jb250YWluZXIge1xuICAgIG1hcmdpbjogMCAyMHB4IDE1cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNXM7XG5cbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgkc2VjdGlvbi1tb2RlbHMtbW9kZWwtY29udGFpbmVyLWJhY2tncm91bmQtY29sb3IsIDAuMDUpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZWN0aW9uLW1vZGVscy1tb2RlbC1jb250YWluZXItYmFja2dyb3VuZC1jb2xvciwgMC4wNyk7XG4gICAgfVxuXG4gICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbjogMjBweDtcbiAgICB9XG5cbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBtYXJnaW46IDAgMjBweDtcbiAgICB9XG5cbiAgICAubW9kZWxzLWp1bXAtdG8tcGF0aCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDhweDtcbiAgICAgIHJpZ2h0OiA1cHg7XG4gICAgICBvcGFjaXR5OiAwLjY1O1xuICAgIH1cbiAgfVxuXG4gIC5tb2RlbC1ib3gge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAmOmhhcygubW9kZWwtYm94KSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbi5tb2RlbC1ib3gge1xuICBwYWRkaW5nOiAxMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKCRzZWN0aW9uLW1vZGVscy1tb2RlbC1ib3gtYmFja2dyb3VuZC1jb2xvciwgMC4xKTtcblxuICAubW9kZWwtanVtcC10by1wYXRoIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiA0cHg7XG4gIH1cblxuICAmLmRlcHJlY2F0ZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxufVxuXG4ubW9kZWwtdGl0bGUge1xuICBmb250LXNpemU6IDE2cHg7XG5cbiAgQGluY2x1ZGUgdHlwZS50ZXh0X2hlYWRsaW5lKCRzZWN0aW9uLW1vZGVscy1tb2RlbC10aXRsZS1mb250LWNvbG9yKTtcblxuICBpbWcge1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvdHRvbTogMHB4O1xuICB9XG59XG5cbi5tb2RlbC1kZXByZWNhdGVkLXdhcm5pbmcge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG5cbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG5cbiAgQGluY2x1ZGUgdHlwZS50ZXh0X2hlYWRsaW5lKCRjb2xvci1kZWxldGUpO1xufVxuXG5zcGFuIHtcbiAgPiBzcGFuLm1vZGVsIHtcbiAgICAuYnJhY2UtY2xvc2Uge1xuICAgICAgcGFkZGluZzogMCAwIDAgMTBweDtcbiAgICB9XG4gIH1cbn1cblxuLnByb3AtbmFtZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBtYXJnaW4tcmlnaHQ6IDFlbTtcbn1cblxuLnByb3AtdHlwZSB7XG4gIGNvbG9yOiAkcHJvcC10eXBlLWZvbnQtY29sb3I7XG59XG5cbi5wcm9wLWVudW0ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5wcm9wLWZvcm1hdCB7XG4gIGNvbG9yOiAkcHJvcC1mb3JtYXQtZm9udC1jb2xvcjtcbn1cbiIsIkB1c2UgXCJ2YXJpYWJsZXNcIiBhcyAqO1xuQHVzZSBcInR5cGVcIjtcblxuLnNlcnZlcnMge1xuICA+IGxhYmVsIHtcbiAgICBmb250LXNpemU6IDEycHg7XG5cbiAgICBtYXJnaW46IC0yMHB4IDE1cHggMCAwO1xuXG4gICAgQGluY2x1ZGUgdHlwZS50ZXh0X2hlYWRsaW5lKCk7XG5cbiAgICBzZWxlY3Qge1xuICAgICAgbWluLXdpZHRoOiAxMzBweDtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIGg0Lm1lc3NhZ2Uge1xuICAgIHBhZGRpbmctYm90dG9tOiAyZW07XG4gIH1cblxuICB0YWJsZSB7XG4gICAgdHIge1xuICAgICAgd2lkdGg6IDMwZW07XG4gICAgfVxuICAgIHRkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1heC13aWR0aDogMTVlbTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXG4gICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxZW07XG4gICAgICB9XG5cbiAgICAgIGlucHV0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY29tcHV0ZWQtdXJsIHtcbiAgICBtYXJnaW46IDJlbSAwO1xuXG4gICAgY29kZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBtYXJnaW46IDAgMWVtO1xuICAgIH1cbiAgfVxufVxuXG4uc2VydmVycy10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5vcGVyYXRpb24tc2VydmVycyB7XG4gIGg0Lm1lc3NhZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgfVxufVxuIiwiQHVzZSBcInR5cGVcIjtcbkB1c2UgXCJ2YXJpYWJsZXNcIiBhcyAqO1xuXG50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5cbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblxuICAmLm1vZGVsIHtcbiAgICB0Ym9keSB7XG4gICAgICB0ciB7XG4gICAgICAgIHRkIHtcbiAgICAgICAgICBwYWRkaW5nOiAwIDAgMCAxZW07XG5cbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG4gICAgICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIHdpZHRoOiAxNzRweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwIDJlbTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmhlYWRlcnMge1xuICAgIHRkIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG5cbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgIEBpbmNsdWRlIHR5cGUudGV4dF9jb2RlKCk7XG4gICAgfVxuXG4gICAgLmhlYWRlci1leGFtcGxlIHtcbiAgICAgIGNvbG9yOiAjOTk5O1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cbiAgfVxuXG4gIHRib2R5IHtcbiAgICB0ciB7XG4gICAgICB0ZCB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMCAwIDA7XG5cbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcblxuICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgIG1pbi13aWR0aDogNmVtO1xuICAgICAgICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aGFzKC5tb2RlbC1ib3gpIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDFweDsgLy8gZml0cyBjb250ZW50IGluIGF2YWlsYWJsZSBzcGFjZSBpbnN0ZWFkIG9mIGdyb3dpbmcgdGhlIHRhYmxlIGJleW9uZCBpdHMgY29udGFpbmVyXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0aGVhZCB7XG4gICAgdHIge1xuICAgICAgdGgsXG4gICAgICB0ZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAgICAgcGFkZGluZzogMTJweCAwO1xuXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoJHRhYmxlLXRoZWFkLXRkLWJvcmRlci1ib3R0b20tY29sb3IsIDAuMik7XG5cbiAgICAgICAgQGluY2x1ZGUgdHlwZS50ZXh0X2JvZHkoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnBhcmFtZXRlcnMtY29sX2Rlc2NyaXB0aW9uIHtcbiAgd2lkdGg6IDk5JTsgLy8gZm9yY2VzIG90aGVyIGNvbHVtbnMgdG8gc2hyaW5rIHRvIHRoZWlyIGNvbnRlbnQgd2lkdGhzXG4gIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgaW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMzQwcHg7XG4gIH1cblxuICBzZWxlY3Qge1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICB9XG5cbiAgLm1hcmtkb3duLFxuICAucmVuZGVyZWRNYXJrZG93biB7XG4gICAgcCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG59XG5cbi5wYXJhbWV0ZXJfX25hbWUge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cbiAgLy8gaGFjayB0byBnaXZlIGJyZWF0aGluZyByb29tIHRvIHRoZSBuYW1lIGNvbHVtblxuICAvLyBUT0RPOiByZWZhY3RvciBhbGwgb2YgdGhpcyB0byBmbGV4Ym94XG4gIG1hcmdpbi1yaWdodDogMC43NWVtO1xuXG4gIEBpbmNsdWRlIHR5cGUudGV4dF9oZWFkbGluZSgpO1xuXG4gICYucmVxdWlyZWQge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgc3BhbiB7XG4gICAgICBjb2xvcjogcmVkO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgZm9udC1zaXplOiAxMHB4O1xuXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IC02cHg7XG5cbiAgICAgIHBhZGRpbmc6IDVweDtcblxuICAgICAgY29udGVudDogXCJyZXF1aXJlZFwiO1xuXG4gICAgICBjb2xvcjogcmdiYSgkdGFibGUtcGFyYW1ldGVyLW5hbWUtcmVxdWlyZWQtZm9udC1jb2xvciwgMC42KTtcbiAgICB9XG4gIH1cbn1cblxuLnBhcmFtZXRlcl9faW4sXG4ucGFyYW1ldGVyX19leHRlbnNpb24ge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcblxuICBAaW5jbHVkZSB0eXBlLnRleHRfY29kZSgkdGFibGUtcGFyYW1ldGVyLWluLWZvbnQtY29sb3IpO1xufVxuXG4ucGFyYW1ldGVyX19kZXByZWNhdGVkIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG5cbiAgQGluY2x1ZGUgdHlwZS50ZXh0X2NvZGUoJHRhYmxlLXBhcmFtZXRlci1kZXByZWNhdGVkLWZvbnQtY29sb3IpO1xufVxuXG4ucGFyYW1ldGVyX19lbXB0eV92YWx1ZV90b2dnbGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxM3B4O1xuICBwYWRkaW5nLXRvcDogNXB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTJweDtcblxuICBpbnB1dCB7XG4gICAgbWFyZ2luLXJpZ2h0OiA3cHg7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cblxuICAmLmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjc7XG4gIH1cbn1cblxuLnRhYmxlLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDIwcHg7XG59XG5cbi5yZXNwb25zZS1jb2xfZGVzY3JpcHRpb24ge1xuICB3aWR0aDogOTklOyAvLyBmb3JjZXMgb3RoZXIgY29sdW1ucyB0byBzaHJpbmsgdG8gdGhlaXIgY29udGVudCB3aWR0aHNcblxuICAubWFya2Rvd24sXG4gIC5yZW5kZXJlZE1hcmtkb3duIHtcbiAgICBwIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cbn1cblxuLnJlc3BvbnNlLWNvbF9saW5rcyB7XG4gIG1pbi13aWR0aDogNmVtO1xufVxuXG4ucmVzcG9uc2VfX2V4dGVuc2lvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuXG4gIEBpbmNsdWRlIHR5cGUudGV4dF9jb2RlKCR0YWJsZS1wYXJhbWV0ZXItaW4tZm9udC1jb2xvcik7XG59XG4iLCJAdXNlIFwidmFyaWFibGVzXCIgYXMgKjtcbkB1c2UgXCJ0eXBlXCI7XG5cbi50b3BiYXIge1xuICBwYWRkaW5nOiAxMHB4IDA7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAudG9wYmFyLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAxMHB4O1xuICB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA1NTBweCkge1xuICAgIC50b3BiYXItd3JhcHBlciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgIH1cbiAgfVxuXG4gIGEge1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleDogMTtcblxuICAgIG1heC13aWR0aDogMzAwcHg7XG5cbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICBAaW5jbHVkZSB0eXBlLnRleHRfaGVhZGxpbmUoJHRvcGJhci1saW5rLWZvbnQtY29sb3IpO1xuXG4gICAgc3BhbiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgfVxuICB9XG5cbiAgLmRvd25sb2FkLXVybC13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDM7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAkdG9wYmFyLWRvd25sb2FkLXVybC13cmFwcGVyLWVsZW1lbnQtYm9yZGVyLWNvbG9yO1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgIC5zZWxlY3QtbGFiZWwge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGNvbG9yOiAjZjBmMGYwO1xuICAgICAgc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcblxuICAgICAgICBmbGV4OiAxO1xuXG4gICAgICAgIHBhZGRpbmc6IDAgMTBweCAwIDA7XG5cbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB9XG5cbiAgICAgIHNlbGVjdCB7XG4gICAgICAgIGZsZXg6IDI7XG5cbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHRvcGJhci1kb3dubG9hZC11cmwtd3JhcHBlci1lbGVtZW50LWJvcmRlci1jb2xvcjtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZG93bmxvYWQtdXJsLWJ1dHRvbiB7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICAgcGFkZGluZzogNHB4IDMwcHg7XG5cbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwO1xuICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1kb3dubG9hZC11cmwtYnV0dG9uLWJhY2tncm91bmQtY29sb3I7XG5cbiAgICAgIEBpbmNsdWRlIHR5cGUudGV4dF9oZWFkbGluZSgkdG9wYmFyLWRvd25sb2FkLXVybC1idXR0b24tZm9udC1jb2xvcik7XG4gICAgfVxuICB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA1NTBweCkge1xuICAgIC5kb3dubG9hZC11cmwtd3JhcHBlciB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbiIsIkB1c2UgXCJzYXNzOmNvbG9yXCI7XG5AdXNlIFwidmFyaWFibGVzXCIgYXMgKjtcbkB1c2UgXCJ0eXBlXCI7XG5cbi5pbmZvIHtcbiAgbWFyZ2luOiA1MHB4IDA7XG5cbiAgJi5mYWlsZWQtY29uZmlnIHtcbiAgICBtYXgtd2lkdGg6IDg4MHB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICBoZ3JvdXAubWFpbiB7XG4gICAgbWFyZ2luOiAwIDAgMjBweCAwO1xuICAgIGEge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cbiAgfVxuICBwcmUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxuICBwLFxuICBsaSxcbiAgdGFibGUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcblxuICAgIEBpbmNsdWRlIHR5cGUudGV4dF9ib2R5KCk7XG4gIH1cblxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUge1xuICAgIEBpbmNsdWRlIHR5cGUudGV4dF9ib2R5KCk7XG4gIH1cblxuICBhIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG5cbiAgICB0cmFuc2l0aW9uOiBhbGwgMC40cztcblxuICAgIEBpbmNsdWRlIHR5cGUudGV4dF9ib2R5KCRpbmZvLWxpbmstZm9udC1jb2xvcik7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBjb2xvci5hZGp1c3QoJGluZm8tbGluay1mb250LWNvbG9yLWhvdmVyLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiAgICB9XG4gIH1cbiAgPiBkaXYge1xuICAgIG1hcmdpbjogMCAwIDVweCAwO1xuICB9XG5cbiAgLmJhc2UtdXJsIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMCAhaW1wb3J0YW50O1xuXG4gICAgbWFyZ2luOiAwO1xuXG4gICAgQGluY2x1ZGUgdHlwZS50ZXh0X2NvZGUoKTtcbiAgfVxuXG4gIC50aXRsZSB7XG4gICAgZm9udC1zaXplOiAzNnB4O1xuXG4gICAgbWFyZ2luOiAwO1xuXG4gICAgQGluY2x1ZGUgdHlwZS50ZXh0X2JvZHkoKTtcblxuICAgIHNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcblxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAtNXB4O1xuXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgIG1hcmdpbjogMCAwIDAgNXB4O1xuICAgICAgcGFkZGluZzogMnB4IDRweDtcblxuICAgICAgdmVydGljYWwtYWxpZ246IHN1cGVyO1xuXG4gICAgICBib3JkZXItcmFkaXVzOiA1N3B4O1xuICAgICAgYmFja2dyb3VuZDogJGluZm8tdGl0bGUtc21hbGwtYmFja2dyb3VuZC1jb2xvcjtcblxuICAgICAgJi52ZXJzaW9uLXN0YW1wIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg5YmYwNDtcbiAgICAgIH1cblxuICAgICAgcHJlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIHR5cGUudGV4dF9oZWFkbGluZSgkaW5mby10aXRsZS1zbWFsbC1wcmUtZm9udC1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAdXNlIFwidmFyaWFibGVzXCIgYXMgKjtcbkB1c2UgXCJ0eXBlXCI7XG5cbi5hdXRoLWJ0bi13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcblxuICBwYWRkaW5nOiAxMHB4IDA7XG5cbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgLmJ0bi1kb25lIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxufVxuXG4uYXV0aC13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcblxuICBmbGV4OiAxO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gIC5hdXRob3JpemUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICB9XG59XG5cbi5hdXRoLWNvbnRhaW5lciB7XG4gIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYXV0aC1jb250YWluZXItYm9yZGVyLWNvbG9yO1xuXG4gICY6bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xuXG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgaDQge1xuICAgIG1hcmdpbjogNXB4IDAgMTVweCAwICFpbXBvcnRhbnQ7XG4gIH1cblxuICAud3JhcHBlciB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgICBtaW4td2lkdGg6IDIzMHB4O1xuICB9XG5cbiAgLmVycm9ycyB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuXG4gICAgcGFkZGluZzogMTBweDtcblxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmVlZWU7XG5cbiAgICBjb2xvcjogcmVkO1xuXG4gICAgbWFyZ2luOiAxZW07XG5cbiAgICBAaW5jbHVkZSB0eXBlLnRleHRfY29kZSgpO1xuXG4gICAgYiB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICAgIH1cbiAgfVxufVxuXG4uc2NvcGVzIHtcbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcblxuICAgIEBpbmNsdWRlIHR5cGUudGV4dF9oZWFkbGluZSgpO1xuXG4gICAgYSB7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBjb2xvcjogJGF1dGgtc2VsZWN0LWFsbC1ub25lLWxpbmstZm9udC1jb2xvcjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxufVxuXG4uc2NvcGUtZGVmIHtcbiAgcGFkZGluZzogMCAwIDIwcHggMDtcbn1cbiIsIkB1c2UgXCJ2YXJpYWJsZXNcIiBhcyAqO1xuQHVzZSBcInR5cGVcIjtcblxuLmVycm9ycy13cmFwcGVyIHtcbiAgbWFyZ2luOiAyMHB4O1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG5cbiAgYW5pbWF0aW9uOiBzY2FsZVVwIDAuNXM7XG5cbiAgYm9yZGVyOiAycHggc29saWQgJGNvbG9yLWRlbGV0ZTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKCRjb2xvci1kZWxldGUsIDAuMSk7XG5cbiAgLmVycm9yLXdyYXBwZXIge1xuICAgIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgfVxuXG4gIC5lcnJvcnMge1xuICAgIGg0IHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcblxuICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICBAaW5jbHVkZSB0eXBlLnRleHRfY29kZSgpO1xuICAgIH1cblxuICAgIHNtYWxsIHtcbiAgICAgIGNvbG9yOiAkZXJyb3JzLXdyYXBwZXItZXJyb3JzLXNtYWxsLWZvbnQtY29sb3I7XG4gICAgfVxuXG4gICAgLm1lc3NhZ2Uge1xuICAgICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xuXG4gICAgICAmLnRocm93biB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZXJyb3ItbGluZSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICBoZ3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgaDQge1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuXG4gICAgICBtYXJnaW46IDA7XG5cbiAgICAgIGZsZXg6IDE7XG4gICAgICBAaW5jbHVkZSB0eXBlLnRleHRfaGVhZGxpbmUoKTtcbiAgICB9XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzY2FsZVVwIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcblxuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcblxuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbiIsIi5SZXNpemVyLnZlcnRpY2FsLmRpc2FibGVkIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIkB1c2UgXCJ2YXJpYWJsZXNcIiBhcyAqO1xuQHVzZSBcInR5cGVcIjtcblxuLm1hcmtkb3duLFxuLnJlbmRlcmVkTWFya2Rvd24ge1xuICBwLFxuICBwcmUge1xuICAgIG1hcmdpbjogMWVtIGF1dG87XG5cbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7IC8qIEZhbGxiYWNrIHRyaWNrICovXG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgfVxuICBwcmUge1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHBhZGRpbmc6IDBweDtcbiAgfVxuXG4gIGNvZGUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwYWRkaW5nOiA1cHggN3B4O1xuXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoJGluZm8tY29kZS1iYWNrZ3JvdW5kLWNvbG9yLCAwLjA1KTtcblxuICAgIEBpbmNsdWRlIHR5cGUudGV4dF9jb2RlKCRpbmZvLWNvZGUtZm9udC1jb2xvcik7XG4gIH1cblxuICBwcmUgPiBjb2RlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuIiwiQHVzZSBcIi4vLi4vLi4vLi4vY29tcG9uZW50cy9taXhpbnNcIjtcblxuLmpzb24tc2NoZW1hLTIwMjAtMTIge1xuICAmLWtleXdvcmQtLVxcJHZvY2FidWxhcnkge1xuICAgIHVsIHtcbiAgICAgIEBpbmNsdWRlIG1peGlucy5leHBhbnNpb24tYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gICYtXFwkdm9jYWJ1bGFyeS11cmkge1xuICAgIG1hcmdpbi1sZWZ0OiAzNXB4O1xuXG4gICAgJi0tZGlzYWJsZWQge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgfVxuICB9XG59XG4iLCJAdXNlIFwiLi8uLi8uLi8uLi8uLi9zdHlsZS92YXJpYWJsZXNcIiBhcyAqO1xuQHVzZSBcIi4vLi4vLi4vLi4vLi4vc3R5bGUvdHlwZVwiO1xuXG5AbWl4aW4gZXhwYW5zaW9uLWJvcmRlciB7XG4gIG1hcmdpbjogMCAwIDAgMjBweDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBkYXNoZWRcbiAgICByZ2JhKCRzZWN0aW9uLW1vZGVscy1tb2RlbC1jb250YWluZXItYmFja2dyb3VuZC1jb2xvciwgMC4xKTtcbn1cblxuQG1peGluIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tcHJpbWFyeSB7XG4gIGNvbG9yOiAkdGV4dC1jb2RlLWRlZmF1bHQtZm9udC1jb2xvcjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AbWl4aW4ganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1leHRlbnNpb24ge1xuICBjb2xvcjogIzkyOTI5MjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5AbWl4aW4ganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIHtcbiAgbWFyZ2luOiA1cHggMCA1cHggMDtcblxuICAmX19jaGlsZHJlbiB7XG4gICAgQGluY2x1ZGUgZXhwYW5zaW9uLWJvcmRlcjtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgJi0tY29sbGFwc2VkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJl9fbmFtZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgJi0tcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLXByaW1hcnk7XG4gICAgfVxuXG4gICAgJi0tc2Vjb25kYXJ5IHtcbiAgICAgIGNvbG9yOiAjNmI2YjZiO1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cblxuICAgICYtLWV4dGVuc2lvbiB7XG4gICAgICBAaW5jbHVkZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWV4dGVuc2lvbjtcbiAgICB9XG4gIH1cblxuICAmX192YWx1ZSB7XG4gICAgY29sb3I6ICM2YjZiNmI7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuXG4gICAgJi0tcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLXByaW1hcnk7XG4gICAgfVxuXG4gICAgJi0tc2Vjb25kYXJ5IHtcbiAgICAgIGNvbG9yOiAjNmI2YjZiO1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cblxuICAgICYtLWV4dGVuc2lvbiB7XG4gICAgICBAaW5jbHVkZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWV4dGVuc2lvbjtcbiAgICB9XG5cbiAgICAmLS13YXJuaW5nIHtcbiAgICAgIEBpbmNsdWRlIHR5cGUudGV4dF9jb2RlKCk7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICBwYWRkaW5nOiAxcHggNHB4IDFweCA0cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICBjb2xvcjogcmVkO1xuICAgICAgYm9yZGVyOiAxcHggZGFzaGVkIHJlZDtcbiAgICB9XG4gIH1cbn1cbiIsIkB1c2UgXCIuLy4uLy4uL21peGluc1wiO1xuXG4uanNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1jb25zdCB7XG4gIC5qc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19uYW1lIHtcbiAgICBAaW5jbHVkZSBtaXhpbnMuanNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1wcmltYXJ5O1xuICB9XG5cbiAgLmpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX3ZhbHVlIHtcbiAgICBAaW5jbHVkZSBtaXhpbnMuanNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1wcmltYXJ5O1xuICB9XG59XG4iLCJAdXNlIFwiLi8uLi8uLi8uLi8uLi8uLi8uLi9zdHlsZS90eXBlXCI7XG5cbi5qc29uLXNjaGVtYS0yMDIwLTEyX19jb25zdHJhaW50IHtcbiAgQGluY2x1ZGUgdHlwZS50ZXh0X2NvZGUoKTtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIHBhZGRpbmc6IDFweCAzcHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgwNWFkNTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICYtLXN0cmluZyB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkNjllMmU7XG4gIH1cbn1cbiIsIkB1c2UgXCIuLy4uLy4uL21peGluc1wiO1xuXG4uanNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kZWZhdWx0IHtcbiAgLmpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX25hbWUge1xuICAgIEBpbmNsdWRlIG1peGlucy5qc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLXByaW1hcnk7XG4gIH1cblxuICAuanNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fdmFsdWUge1xuICAgIEBpbmNsdWRlIG1peGlucy5qc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLXByaW1hcnk7XG4gIH1cbn1cbiIsIi5qc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWRlcGVuZGVudFJlcXVpcmVkIHtcbiAgJiA+IHVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIuanNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiAjNmI2YjZiO1xuICBmb250LXNpemU6IDEycHg7XG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xuXG4gICYgcCB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG4iLCJAdXNlIFwiLi8uLi8uLi9taXhpbnNcIjtcblxuLmpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZXhhbXBsZXMge1xuICAuanNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fbmFtZSB7XG4gICAgQGluY2x1ZGUgbWl4aW5zLmpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tcHJpbWFyeTtcbiAgfVxuXG4gIC5qc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX192YWx1ZSB7XG4gICAgQGluY2x1ZGUgbWl4aW5zLmpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tcHJpbWFyeTtcbiAgfVxufVxuIiwiQHVzZSBcIi4vLi4vLi4vbWl4aW5zXCI7XG5cbi5qc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyLWV4dGVuc2lvbi1rZXl3b3JkIHtcbiAgLmpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX25hbWUge1xuICAgIEBpbmNsdWRlIG1peGlucy5qc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWV4dGVuc2lvbjtcbiAgfVxuXG4gIC5qc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX192YWx1ZSB7XG4gICAgQGluY2x1ZGUgbWl4aW5zLmpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZXh0ZW5zaW9uO1xuICB9XG59XG4iLCJAdXNlIFwiLi8uLi8uLi8uLi8uLi8uLi8uLi9zdHlsZS92YXJpYWJsZXNcIiBhcyAqO1xuXG4uanNvbi1zY2hlbWEtMjAyMC0xMiB7XG4gICYta2V5d29yZC0tcGF0dGVyblByb3BlcnRpZXMge1xuICAgIHVsIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuXG4gICAgLmpzb24tc2NoZW1hLTIwMjAtMTJfX3RpdGxlOmZpcnN0LW9mLXR5cGU6OmJlZm9yZSB7XG4gICAgICBjb2xvcjogJHByb3AtdHlwZS1mb250LWNvbG9yO1xuICAgICAgY29udGVudDogXCIvXCI7XG4gICAgfVxuXG4gICAgLmpzb24tc2NoZW1hLTIwMjAtMTJfX3RpdGxlOmZpcnN0LW9mLXR5cGU6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiAkcHJvcC10eXBlLWZvbnQtY29sb3I7XG4gICAgICBjb250ZW50OiBcIi9cIjtcbiAgICB9XG4gIH1cbn1cbiIsIi5qc29uLXNjaGVtYS0yMDIwLTEyIHtcbiAgJi1rZXl3b3JkLS1wcm9wZXJ0aWVzIHtcbiAgICAmID4gdWwge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmLXByb3BlcnR5IHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAmXG4gICAgICAgID4gLmpzb24tc2NoZW1hLTIwMjAtMTI6Zmlyc3Qtb2YtdHlwZVxuICAgICAgICA+IC5qc29uLXNjaGVtYS0yMDIwLTEyLWhlYWRcbiAgICAgICAgLmpzb24tc2NoZW1hLTIwMjAtMTJfX3RpdGxlOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCIqXCI7XG4gICAgICAgIGNvbG9yOiByZWQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQHVzZSBcIi4vLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGUvdmFyaWFibGVzXCIgYXMgKjtcbkB1c2UgXCIuLy4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlL3R5cGVcIjtcblxuLmpzb24tc2NoZW1hLTIwMjAtMTIge1xuICAmX190aXRsZSB7XG4gICAgQGluY2x1ZGUgdHlwZS50ZXh0X2hlYWRsaW5lKCRzZWN0aW9uLW1vZGVscy1tb2RlbC10aXRsZS1mb250LWNvbG9yKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cbiAgICAmIC5qc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxuXG4gICYtcHJvcGVydHkge1xuICAgIG1hcmdpbjogN3B4IDA7XG5cbiAgICAuanNvbi1zY2hlbWEtMjAyMC0xMl9fdGl0bGUge1xuICAgICAgQGluY2x1ZGUgdHlwZS50ZXh0X2NvZGUoKTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG59XG4iLCJAdXNlIFwiLi8uLi8uLi8uLi8uLi8uLi9zdHlsZS92YXJpYWJsZXNcIiBhcyAqO1xuQHVzZSBcIi4vLi4vbWl4aW5zXCI7XG5AdXNlIFwiLi8kdm9jYWJ1bGFyeS8kdm9jYWJ1bGFyeVwiIGFzIHZvY2FidWxhcnk7XG5AdXNlIFwiLi9Db25zdC9jb25zdFwiO1xuQHVzZSBcIi4vQ29uc3RyYWludC9jb25zdHJhaW50XCI7XG5AdXNlIFwiLi9EZWZhdWx0L2RlZmF1bHRcIjtcbkB1c2UgXCIuL0RlcGVuZGVudFJlcXVpcmVkL2RlcGVuZGVudC1yZXF1aXJlZFwiO1xuQHVzZSBcIi4vRGVzY3JpcHRpb24vZGVzY3JpcHRpb25cIjtcbkB1c2UgXCIuL0VudW0vZW51bVwiO1xuQHVzZSBcIi4vRXhhbXBsZXMvZXhhbXBsZXNcIjtcbkB1c2UgXCIuL0V4dGVuc2lvbktleXdvcmRzL2V4dGVuc2lvbi1rZXl3b3Jkc1wiO1xuQHVzZSBcIi4vUGF0dGVyblByb3BlcnRpZXMvcGF0dGVybi1wcm9wZXJ0aWVzXCI7XG5AdXNlIFwiLi9Qcm9wZXJ0aWVzL3Byb3BlcnRpZXNcIjtcbkB1c2UgXCIuL1RpdGxlL3RpdGxlXCI7XG5cbi5qc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQge1xuICBAaW5jbHVkZSBtaXhpbnMuanNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkO1xufVxuXG4uanNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnlcbiAgKyAuanNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5OjpiZWZvcmUge1xuICBjb250ZW50OiBcIj1cIjtcbn1cblxuLmpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gIGNvbG9yOiAkdGV4dC1jb2RlLWRlZmF1bHQtZm9udC1jb2xvcjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cbiAgJi0tcHJpbWFyeSB7XG4gICAgY29sb3I6ICRwcm9wLXR5cGUtZm9udC1jb2xvcjtcbiAgfVxuXG4gICYtLW11dGVkIHtcbiAgICBjb2xvcjogZ3JheTtcbiAgfVxuXG4gICYtLXdhcm5pbmcge1xuICAgIGNvbG9yOiByZWQ7XG4gIH1cbn1cbiIsIkB1c2UgXCIuLy4uL21peGluc1wiO1xuQHVzZSBcIi4vLi4va2V5d29yZHMvYWxsXCI7XG5cbi5qc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyIHtcbiAgQGluY2x1ZGUgbWl4aW5zLmpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZDtcbn1cblxuLmpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX25hbWUtLXNlY29uZGFyeVxuICArIC5qc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX192YWx1ZS0tc2Vjb25kYXJ5OjpiZWZvcmUge1xuICBjb250ZW50OiBcIj1cIjtcbn1cbiIsIkB1c2UgXCIuLy4uLy4uLy4uLy4uLy4uL3N0eWxlL3ZhcmlhYmxlc1wiIGFzICo7XG5AdXNlIFwiLi8uLi8uLi9jb21wb25lbnRzL21peGluc1wiO1xuXG4uanNvbi1zY2hlbWEtMjAyMC0xMiB7XG4gIG1hcmdpbjogMCAyMHB4IDE1cHggMjBweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBwYWRkaW5nOiAxMnB4IDAgMTJweCAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKFxuICAgICRzZWN0aW9uLW1vZGVscy1tb2RlbC1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcixcbiAgICAwLjA1XG4gICk7XG5cbiAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICBtYXJnaW46IDIwcHg7XG4gIH1cblxuICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luOiAwIDIwcHg7XG4gIH1cblxuICAmLS1lbWJlZGRlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICBwYWRkaW5nOiAwIGluaGVyaXQgMCBpbmhlcml0O1xuICB9XG5cbiAgJi1ib2R5IHtcbiAgICBAaW5jbHVkZSBtaXhpbnMuZXhwYW5zaW9uLWJvcmRlcjtcbiAgICBtYXJnaW46IDJweCAwO1xuXG4gICAgJi0tY29sbGFwc2VkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIuanNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb24ge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogMDtcblxuICAmX19jaGlsZHJlbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgJl9faWNvbiB7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuXG4gICAgJi0tZXhwYW5kZWQge1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2UtaW47XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB9XG5cbiAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2UtaW47XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgfVxuXG4gICAgJiBzdmcge1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgfVxuICB9XG59XG4iLCJAdXNlIFwiLi8uLi8uLi8uLi8uLi8uLi9zdHlsZS92YXJpYWJsZXNcIiBhcyAqO1xuQHVzZSBcIi4vLi4vLi4vLi4vLi4vLi4vc3R5bGUvdHlwZVwiO1xuXG4uanNvbi1zY2hlbWEtMjAyMC0xMi1leHBhbmQtZGVlcC1idXR0b24ge1xuICBAaW5jbHVkZSB0eXBlLnRleHRfaGVhZGxpbmUoJHNlY3Rpb24tbW9kZWxzLW1vZGVsLXRpdGxlLWZvbnQtY29sb3IpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiByZ2IoMTc1LCAxNzQsIDE3NCk7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cbiIsIi5tb2RlbC1ib3gge1xuICAvLyBpbmZlcnJlZCBuYW1lcyBvZiBTY2hlbWEgT2JqZWN0c1xuICAmXG4gICAgLmpzb24tc2NoZW1hLTIwMjAtMTI6bm90KC5qc29uLXNjaGVtYS0yMDIwLTEyLS1lbWJlZGRlZClcbiAgICA+IC5qc29uLXNjaGVtYS0yMDIwLTEyLWhlYWRcbiAgICAuanNvbi1zY2hlbWEtMjAyMC0xMl9fdGl0bGU6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG5cbiAgJiA+IC5qc29uLXNjaGVtYS0yMDIwLTEyIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAuanNvbi1zY2hlbWEtMjAyMC0xMiB7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5qc29uLXNjaGVtYS0yMDIwLTEyLWFjY29yZGlvbixcbiAgLmpzb24tc2NoZW1hLTIwMjAtMTItZXhwYW5kLWRlZXAtYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuIiwiLm1vZGVsc1xuICAuanNvbi1zY2hlbWEtMjAyMC0xMjpub3QoLmpzb24tc2NoZW1hLTIwMjAtMTItLWVtYmVkZGVkKVxuICA+IC5qc29uLXNjaGVtYS0yMDIwLTEyLWhlYWRcbiAgLmpzb24tc2NoZW1hLTIwMjAtMTJfX3RpdGxlOmZpcnN0LW9mLXR5cGUge1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi5tb2RlbHMgLmpzb24tc2NoZW1hLTIwMjAtMTI6bm90KC5qc29uLXNjaGVtYS0yMDIwLTEyLS1lbWJlZGRlZCkge1xuICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=</File>
        <File Location="var/httpd/htdocs/js/thirdparty/swagger/swagger-ui.js" Permission="660" Encode="Base64">IWZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKGUsdCl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz10KCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10sdCk6Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHMuU3dhZ2dlclVJQ29yZT10KCk6ZS5Td2FnZ2VyVUlDb3JlPXQoKX0odGhpcywoKCk9PigoKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgZT17MTU4OmU9PntlLmV4cG9ydHM9cmVxdWlyZSgiYnVmZmVyIil9fSx0PXt9O2Z1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18ocil7dmFyIGE9dFtyXTtpZih2b2lkIDAhPT1hKXJldHVybiBhLmV4cG9ydHM7dmFyIG49dFtyXT17ZXhwb3J0czp7fX07cmV0dXJuIGVbcl0obixuLmV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyksbi5leHBvcnRzfV9fd2VicGFja19yZXF1aXJlX18ubj1lPT57dmFyIHQ9ZSYmZS5fX2VzTW9kdWxlPygpPT5lLmRlZmF1bHQ6KCk9PmU7cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LHthOnR9KSx0fSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQ9KGUsdCk9Pntmb3IodmFyIHIgaW4gdClfX3dlYnBhY2tfcmVxdWlyZV9fLm8odCxyKSYmIV9fd2VicGFja19yZXF1aXJlX18ubyhlLHIpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOiEwLGdldDp0W3JdfSl9LF9fd2VicGFja19yZXF1aXJlX18ubz0oZSx0KT0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCksX193ZWJwYWNrX3JlcXVpcmVfXy5yPWU9PnsidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfTt2YXIgcj17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLmQocix7ZGVmYXVsdDooKT0+VG99KTt2YXIgYT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoYSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKGEse0NMRUFSOigpPT5ELENMRUFSX0JZOigpPT5VLE5FV19BVVRIX0VSUjooKT0+TCxORVdfU1BFQ19FUlI6KCk9PiQsTkVXX1NQRUNfRVJSX0JBVENIOigpPT5WLE5FV19USFJPV05fRVJSOigpPT5SLE5FV19USFJPV05fRVJSX0JBVENIOigpPT5KLGNsZWFyOigpPT5jbGVhcixjbGVhckJ5OigpPT5jbGVhckJ5LG5ld0F1dGhFcnI6KCk9Pm5ld0F1dGhFcnIsbmV3U3BlY0VycjooKT0+bmV3U3BlY0VycixuZXdTcGVjRXJyQmF0Y2g6KCk9Pm5ld1NwZWNFcnJCYXRjaCxuZXdUaHJvd25FcnI6KCk9Pm5ld1Rocm93bkVycixuZXdUaHJvd25FcnJCYXRjaDooKT0+bmV3VGhyb3duRXJyQmF0Y2h9KTt2YXIgbj17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIobiksX193ZWJwYWNrX3JlcXVpcmVfXy5kKG4se0FVVEhPUklaRTooKT0+aGUsQVVUSE9SSVpFX09BVVRIMjooKT0+eWUsQ09ORklHVVJFX0FVVEg6KCk9PmZlLExPR09VVDooKT0+Z2UsUkVTVE9SRV9BVVRIT1JJWkFUSU9OOigpPT5TZSxTSE9XX0FVVEhfUE9QVVA6KCk9PmRlLGF1dGhQb3B1cDooKT0+YXV0aFBvcHVwLGF1dGhvcml6ZTooKT0+YXV0aG9yaXplLGF1dGhvcml6ZUFjY2Vzc0NvZGVXaXRoQmFzaWNBdXRoZW50aWNhdGlvbjooKT0+YXV0aG9yaXplQWNjZXNzQ29kZVdpdGhCYXNpY0F1dGhlbnRpY2F0aW9uLGF1dGhvcml6ZUFjY2Vzc0NvZGVXaXRoRm9ybVBhcmFtczooKT0+YXV0aG9yaXplQWNjZXNzQ29kZVdpdGhGb3JtUGFyYW1zLGF1dGhvcml6ZUFwcGxpY2F0aW9uOigpPT5hdXRob3JpemVBcHBsaWNhdGlvbixhdXRob3JpemVPYXV0aDI6KCk9PmF1dGhvcml6ZU9hdXRoMixhdXRob3JpemVPYXV0aDJXaXRoUGVyc2lzdE9wdGlvbjooKT0+YXV0aG9yaXplT2F1dGgyV2l0aFBlcnNpc3RPcHRpb24sYXV0aG9yaXplUGFzc3dvcmQ6KCk9PmF1dGhvcml6ZVBhc3N3b3JkLGF1dGhvcml6ZVJlcXVlc3Q6KCk9PmF1dGhvcml6ZVJlcXVlc3QsYXV0aG9yaXplV2l0aFBlcnNpc3RPcHRpb246KCk9PmF1dGhvcml6ZVdpdGhQZXJzaXN0T3B0aW9uLGNvbmZpZ3VyZUF1dGg6KCk9PmNvbmZpZ3VyZUF1dGgsbG9nb3V0OigpPT5sb2dvdXQsbG9nb3V0V2l0aFBlcnNpc3RPcHRpb246KCk9PmxvZ291dFdpdGhQZXJzaXN0T3B0aW9uLHBlcnNpc3RBdXRob3JpemF0aW9uSWZOZWVkZWQ6KCk9PnBlcnNpc3RBdXRob3JpemF0aW9uSWZOZWVkZWQscHJlQXV0aG9yaXplSW1wbGljaXQ6KCk9PnByZUF1dGhvcml6ZUltcGxpY2l0LHJlc3RvcmVBdXRob3JpemF0aW9uOigpPT5yZXN0b3JlQXV0aG9yaXphdGlvbixzaG93RGVmaW5pdGlvbnM6KCk9PnNob3dEZWZpbml0aW9uc30pO3ZhciBzPXt9O19fd2VicGFja19yZXF1aXJlX18ucihzKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQocyx7YXV0aG9yaXplZDooKT0+YmUsZGVmaW5pdGlvbnNGb3JSZXF1aXJlbWVudHM6KCk9PmRlZmluaXRpb25zRm9yUmVxdWlyZW1lbnRzLGRlZmluaXRpb25zVG9BdXRob3JpemU6KCk9PndlLGdldENvbmZpZ3M6KCk9PkNlLGdldERlZmluaXRpb25zQnlOYW1lczooKT0+Z2V0RGVmaW5pdGlvbnNCeU5hbWVzLGlzQXV0aG9yaXplZDooKT0+aXNBdXRob3JpemVkLHNlbGVjdEF1dGhQYXRoOigpPT5zZWxlY3RBdXRoUGF0aCxzaG93bkRlZmluaXRpb25zOigpPT52ZX0pO3ZhciBvPXt9O19fd2VicGFja19yZXF1aXJlX18ucihvKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQobyx7VE9HR0xFX0NPTkZJR1M6KCk9Pk1lLFVQREFURV9DT05GSUdTOigpPT5QZSxkb3dubG9hZENvbmZpZzooKT0+ZG93bmxvYWRDb25maWcsZ2V0Q29uZmlnQnlVcmw6KCk9PmdldENvbmZpZ0J5VXJsLGxvYWRlZDooKT0+YWN0aW9uc19sb2FkZWQsdG9nZ2xlOigpPT50b2dnbGUsdXBkYXRlOigpPT51cGRhdGV9KTt2YXIgbD17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIobCksX193ZWJwYWNrX3JlcXVpcmVfXy5kKGwse2dldDooKT0+Z2V0fSk7dmFyIGM9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKGMpLF9fd2VicGFja19yZXF1aXJlX18uZChjLHt0cmFuc2Zvcm06KCk9PnRyYW5zZm9ybX0pO3ZhciBpPXt9O19fd2VicGFja19yZXF1aXJlX18ucihpKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoaSx7dHJhbnNmb3JtOigpPT5wYXJhbWV0ZXJfb25lb2ZfdHJhbnNmb3JtfSk7dmFyIHA9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKHApLF9fd2VicGFja19yZXF1aXJlX18uZChwLHthbGxFcnJvcnM6KCk9PlhlLGxhc3RFcnJvcjooKT0+R2V9KTt2YXIgbT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIobSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKG0se1NIT1c6KCk9PnJ0LFVQREFURV9GSUxURVI6KCk9PmV0LFVQREFURV9MQVlPVVQ6KCk9PlplLFVQREFURV9NT0RFOigpPT50dCxjaGFuZ2VNb2RlOigpPT5jaGFuZ2VNb2RlLHNob3c6KCk9PmFjdGlvbnNfc2hvdyx1cGRhdGVGaWx0ZXI6KCk9PnVwZGF0ZUZpbHRlcix1cGRhdGVMYXlvdXQ6KCk9PnVwZGF0ZUxheW91dH0pO3ZhciB1PXt9O19fd2VicGFja19yZXF1aXJlX18ucih1KSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQodSx7Y3VycmVudDooKT0+Y3VycmVudCxjdXJyZW50RmlsdGVyOigpPT5jdXJyZW50RmlsdGVyLGlzU2hvd246KCk9PmlzU2hvd24sc2hvd1N1bW1hcnk6KCk9Pm50LHdoYXRNb2RlOigpPT53aGF0TW9kZX0pO3ZhciBkPXt9O19fd2VicGFja19yZXF1aXJlX18ucihkKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZCx7dGFnZ2VkT3BlcmF0aW9uczooKT0+dGFnZ2VkT3BlcmF0aW9uc30pO3ZhciBoPXt9O19fd2VicGFja19yZXF1aXJlX18ucihoKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoaCx7Z2V0QWN0aXZlTGFuZ3VhZ2U6KCk9Pmx0LGdldERlZmF1bHRFeHBhbmRlZDooKT0+Y3QsZ2V0R2VuZXJhdG9yczooKT0+b3QsZ2V0U25pcHBldEdlbmVyYXRvcnM6KCk9PmdldFNuaXBwZXRHZW5lcmF0b3JzfSk7dmFyIGc9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKGcpLF9fd2VicGFja19yZXF1aXJlX18uZChnLHtKc29uU2NoZW1hQXJyYXlJdGVtRmlsZTooKT0+SnNvblNjaGVtYUFycmF5SXRlbUZpbGUsSnNvblNjaGVtYUFycmF5SXRlbVRleHQ6KCk9Pkpzb25TY2hlbWFBcnJheUl0ZW1UZXh0LEpzb25TY2hlbWFGb3JtOigpPT5Kc29uU2NoZW1hRm9ybSxKc29uU2NoZW1hX2FycmF5OigpPT5Kc29uU2NoZW1hX2FycmF5LEpzb25TY2hlbWFfYm9vbGVhbjooKT0+SnNvblNjaGVtYV9ib29sZWFuLEpzb25TY2hlbWFfb2JqZWN0OigpPT5Kc29uU2NoZW1hX29iamVjdCxKc29uU2NoZW1hX3N0cmluZzooKT0+SnNvblNjaGVtYV9zdHJpbmd9KTt2YXIgeT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoeSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKHkse2FsbG93VHJ5SXRPdXRGb3I6KCk9PmFsbG93VHJ5SXRPdXRGb3IsYmFzZVBhdGg6KCk9PmNyLGNhbkV4ZWN1dGVTY2hlbWU6KCk9PmNhbkV4ZWN1dGVTY2hlbWUsY29uc3VtZXM6KCk9PmFyLGNvbnN1bWVzT3B0aW9uc0ZvcjooKT0+Y29uc3VtZXNPcHRpb25zRm9yLGNvbnRlbnRUeXBlVmFsdWVzOigpPT5jb250ZW50VHlwZVZhbHVlcyxjdXJyZW50UHJvZHVjZXNGb3I6KCk9PmN1cnJlbnRQcm9kdWNlc0ZvcixkZWZpbml0aW9uczooKT0+bHIsZXh0ZXJuYWxEb2NzOigpPT5ZdCxmaW5kRGVmaW5pdGlvbjooKT0+ZmluZERlZmluaXRpb24sZ2V0T0FTM1JlcXVpcmVkUmVxdWVzdEJvZHlDb250ZW50VHlwZTooKT0+Z2V0T0FTM1JlcXVpcmVkUmVxdWVzdEJvZHlDb250ZW50VHlwZSxnZXRQYXJhbWV0ZXI6KCk9PmdldFBhcmFtZXRlcixoYXNIb3N0OigpPT5mcixob3N0OigpPT5pcixpbmZvOigpPT5HdCxpc01lZGlhVHlwZVNjaGVtYVByb3BlcnRpZXNFcXVhbDooKT0+aXNNZWRpYVR5cGVTY2hlbWFQcm9wZXJ0aWVzRXF1YWwsaXNPQVMzOigpPT5YdCxsYXN0RXJyb3I6KCk9PkR0LG11dGF0ZWRSZXF1ZXN0Rm9yOigpPT5tdXRhdGVkUmVxdWVzdEZvcixtdXRhdGVkUmVxdWVzdHM6KCk9PnlyLG9wZXJhdGlvblNjaGVtZTooKT0+b3BlcmF0aW9uU2NoZW1lLG9wZXJhdGlvbldpdGhNZXRhOigpPT5vcGVyYXRpb25XaXRoTWV0YSxvcGVyYXRpb25zOigpPT5ycixvcGVyYXRpb25zV2l0aFJvb3RJbmhlcml0ZWQ6KCk9Pm1yLG9wZXJhdGlvbnNXaXRoVGFnczooKT0+ZHIscGFyYW1ldGVySW5jbHVzaW9uU2V0dGluZ0ZvcjooKT0+cGFyYW1ldGVySW5jbHVzaW9uU2V0dGluZ0ZvcixwYXJhbWV0ZXJWYWx1ZXM6KCk9PnBhcmFtZXRlclZhbHVlcyxwYXJhbWV0ZXJXaXRoTWV0YTooKT0+cGFyYW1ldGVyV2l0aE1ldGEscGFyYW1ldGVyV2l0aE1ldGFCeUlkZW50aXR5OigpPT5wYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkscGFyYW1ldGVyc0luY2x1ZGVJbjooKT0+cGFyYW1ldGVyc0luY2x1ZGVJbixwYXJhbWV0ZXJzSW5jbHVkZVR5cGU6KCk9PnBhcmFtZXRlcnNJbmNsdWRlVHlwZSxwYXRoczooKT0+ZXIscHJvZHVjZXM6KCk9Pm5yLHByb2R1Y2VzT3B0aW9uc0ZvcjooKT0+cHJvZHVjZXNPcHRpb25zRm9yLHJlcXVlc3RGb3I6KCk9PnJlcXVlc3RGb3IscmVxdWVzdHM6KCk9PmdyLHJlc3BvbnNlRm9yOigpPT5yZXNwb25zZUZvcixyZXNwb25zZXM6KCk9PmhyLHNjaGVtZXM6KCk9PnByLHNlY3VyaXR5OigpPT5zcixzZWN1cml0eURlZmluaXRpb25zOigpPT5vcixzZW12ZXI6KCk9Plp0LHNwZWM6KCk9PnNwZWMsc3BlY0pTOigpPT5GdCxzcGVjSnNvbjooKT0+QnQsc3BlY0pzb25XaXRoUmVzb2x2ZWRTdWJ0cmVlczooKT0+SHQsc3BlY1Jlc29sdmVkOigpPT5XdCxzcGVjUmVzb2x2ZWRTdWJ0cmVlOigpPT5zcGVjUmVzb2x2ZWRTdWJ0cmVlLHNwZWNTb3VyY2U6KCk9Pnp0LHNwZWNTdHI6KCk9Pkt0LHRhZ0RldGFpbHM6KCk9PnRhZ0RldGFpbHMsdGFnZ2VkT3BlcmF0aW9uczooKT0+c2VsZWN0b3JzX3RhZ2dlZE9wZXJhdGlvbnMsdGFnczooKT0+dXIsdXJsOigpPT5VdCx2YWxpZE9wZXJhdGlvbk1ldGhvZHM6KCk9PnRyLHZhbGlkYXRlQmVmb3JlRXhlY3V0ZTooKT0+dmFsaWRhdGVCZWZvcmVFeGVjdXRlLHZhbGlkYXRpb25FcnJvcnM6KCk9PnZhbGlkYXRpb25FcnJvcnMsdmVyc2lvbjooKT0+UXR9KTt2YXIgZj17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoZiksX193ZWJwYWNrX3JlcXVpcmVfXy5kKGYse0NMRUFSX1JFUVVFU1Q6KCk9PkpyLENMRUFSX1JFU1BPTlNFOigpPT5ScixDTEVBUl9WQUxJREFURV9QQVJBTVM6KCk9PiRyLExPR19SRVFVRVNUOigpPT5UcixTRVRfTVVUQVRFRF9SRVFVRVNUOigpPT5NcixTRVRfUkVRVUVTVDooKT0+UHIsU0VUX1JFU1BPTlNFOigpPT5xcixTRVRfU0NIRU1FOigpPT5VcixVUERBVEVfRU1QVFlfUEFSQU1fSU5DTFVTSU9OOigpPT5JcixVUERBVEVfSlNPTjooKT0+a3IsVVBEQVRFX09QRVJBVElPTl9NRVRBX1ZBTFVFOigpPT5WcixVUERBVEVfUEFSQU06KCk9PkFyLFVQREFURV9SRVNPTFZFRDooKT0+THIsVVBEQVRFX1JFU09MVkVEX1NVQlRSRUU6KCk9PkRyLFVQREFURV9TUEVDOigpPT5PcixVUERBVEVfVVJMOigpPT5OcixWQUxJREFURV9QQVJBTVM6KCk9PmpyLGNoYW5nZUNvbnN1bWVzVmFsdWU6KCk9PmNoYW5nZUNvbnN1bWVzVmFsdWUsY2hhbmdlUGFyYW06KCk9PmNoYW5nZVBhcmFtLGNoYW5nZVBhcmFtQnlJZGVudGl0eTooKT0+Y2hhbmdlUGFyYW1CeUlkZW50aXR5LGNoYW5nZVByb2R1Y2VzVmFsdWU6KCk9PmNoYW5nZVByb2R1Y2VzVmFsdWUsY2xlYXJSZXF1ZXN0OigpPT5jbGVhclJlcXVlc3QsY2xlYXJSZXNwb25zZTooKT0+Y2xlYXJSZXNwb25zZSxjbGVhclZhbGlkYXRlUGFyYW1zOigpPT5jbGVhclZhbGlkYXRlUGFyYW1zLGV4ZWN1dGU6KCk9PmFjdGlvbnNfZXhlY3V0ZSxleGVjdXRlUmVxdWVzdDooKT0+ZXhlY3V0ZVJlcXVlc3QsaW52YWxpZGF0ZVJlc29sdmVkU3VidHJlZUNhY2hlOigpPT5pbnZhbGlkYXRlUmVzb2x2ZWRTdWJ0cmVlQ2FjaGUsbG9nUmVxdWVzdDooKT0+bG9nUmVxdWVzdCxwYXJzZVRvSnNvbjooKT0+cGFyc2VUb0pzb24scmVxdWVzdFJlc29sdmVkU3VidHJlZTooKT0+cmVxdWVzdFJlc29sdmVkU3VidHJlZSxyZXNvbHZlU3BlYzooKT0+cmVzb2x2ZVNwZWMsc2V0TXV0YXRlZFJlcXVlc3Q6KCk9PnNldE11dGF0ZWRSZXF1ZXN0LHNldFJlcXVlc3Q6KCk9PnNldFJlcXVlc3Qsc2V0UmVzcG9uc2U6KCk9PnNldFJlc3BvbnNlLHNldFNjaGVtZTooKT0+c2V0U2NoZW1lLHVwZGF0ZUVtcHR5UGFyYW1JbmNsdXNpb246KCk9PnVwZGF0ZUVtcHR5UGFyYW1JbmNsdXNpb24sdXBkYXRlSnNvblNwZWM6KCk9PnVwZGF0ZUpzb25TcGVjLHVwZGF0ZVJlc29sdmVkOigpPT51cGRhdGVSZXNvbHZlZCx1cGRhdGVSZXNvbHZlZFN1YnRyZWU6KCk9PnVwZGF0ZVJlc29sdmVkU3VidHJlZSx1cGRhdGVTcGVjOigpPT51cGRhdGVTcGVjLHVwZGF0ZVVybDooKT0+dXBkYXRlVXJsLHZhbGlkYXRlUGFyYW1zOigpPT52YWxpZGF0ZVBhcmFtc30pO3ZhciBTPXt9O19fd2VicGFja19yZXF1aXJlX18ucihTKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoUyx7ZXhlY3V0ZVJlcXVlc3Q6KCk9PndyYXBfYWN0aW9uc19leGVjdXRlUmVxdWVzdCx1cGRhdGVKc29uU3BlYzooKT0+d3JhcF9hY3Rpb25zX3VwZGF0ZUpzb25TcGVjLHVwZGF0ZVNwZWM6KCk9PndyYXBfYWN0aW9uc191cGRhdGVTcGVjLHZhbGlkYXRlUGFyYW1zOigpPT53cmFwX2FjdGlvbnNfdmFsaWRhdGVQYXJhbXN9KTt2YXIgRT17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoRSksX193ZWJwYWNrX3JlcXVpcmVfXy5kKEUse0J1dHRvbjooKT0+QnV0dG9uLENvbDooKT0+Q29sLENvbGxhcHNlOigpPT5Db2xsYXBzZSxDb250YWluZXI6KCk9PkNvbnRhaW5lcixJbnB1dDooKT0+SW5wdXQsTGluazooKT0+TGluayxSb3c6KCk9PlJvdyxTZWxlY3Q6KCk9PlNlbGVjdCxUZXh0QXJlYTooKT0+VGV4dEFyZWF9KTt2YXIgXz17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoXyksX193ZWJwYWNrX3JlcXVpcmVfXy5kKF8se2Jhc2VQYXRoOigpPT53bixjb25zdW1lczooKT0+Ym4sZGVmaW5pdGlvbnM6KCk9PlNuLGZpbmREZWZpbml0aW9uOigpPT5mbixoYXNIb3N0OigpPT5Fbixob3N0OigpPT52bixwcm9kdWNlczooKT0+Q24sc2NoZW1lczooKT0+eG4sc2VjdXJpdHlEZWZpbml0aW9uczooKT0+X24sdmFsaWRPcGVyYXRpb25NZXRob2RzOigpPT53cmFwX3NlbGVjdG9yc192YWxpZE9wZXJhdGlvbk1ldGhvZHN9KTt2YXIgdj17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIodiksX193ZWJwYWNrX3JlcXVpcmVfXy5kKHYse2RlZmluaXRpb25zVG9BdXRob3JpemU6KCk9Pk9ufSk7dmFyIHc9e307X193ZWJwYWNrX3JlcXVpcmVfXy5yKHcpLF9fd2VicGFja19yZXF1aXJlX18uZCh3LHtjYWxsYmFja3NPcGVyYXRpb25zOigpPT5BbixmaW5kU2NoZW1hOigpPT5maW5kU2NoZW1hLGlzT0FTMzooKT0+c2VsZWN0b3JzX2lzT0FTMyxpc09BUzMwOigpPT5zZWxlY3RvcnNfaXNPQVMzMCxpc1N3YWdnZXIyOigpPT5zZWxlY3RvcnNfaXNTd2FnZ2VyMixzZXJ2ZXJzOigpPT5rbn0pO3ZhciBiPXt9O19fd2VicGFja19yZXF1aXJlX18ucihiKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoYix7Q0xFQVJfUkVRVUVTVF9CT0RZX1ZBTElEQVRFX0VSUk9SOigpPT5YbixDTEVBUl9SRVFVRVNUX0JPRFlfVkFMVUU6KCk9PkduLFNFVF9SRVFVRVNUX0JPRFlfVkFMSURBVEVfRVJST1I6KCk9PkhuLFVQREFURV9BQ1RJVkVfRVhBTVBMRVNfTUVNQkVSOigpPT56bixVUERBVEVfUkVRVUVTVF9CT0RZX0lOQ0xVU0lPTjooKT0+S24sVVBEQVRFX1JFUVVFU1RfQk9EWV9WQUxVRTooKT0+RG4sVVBEQVRFX1JFUVVFU1RfQk9EWV9WQUxVRV9SRVRBSU5fRkxBRzooKT0+VW4sVVBEQVRFX1JFUVVFU1RfQ09OVEVOVF9UWVBFOigpPT5CbixVUERBVEVfUkVTUE9OU0VfQ09OVEVOVF9UWVBFOigpPT5GbixVUERBVEVfU0VMRUNURURfU0VSVkVSOigpPT5MbixVUERBVEVfU0VSVkVSX1ZBUklBQkxFX1ZBTFVFOigpPT5XbixjbGVhclJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcjooKT0+Y2xlYXJSZXF1ZXN0Qm9keVZhbGlkYXRlRXJyb3IsY2xlYXJSZXF1ZXN0Qm9keVZhbHVlOigpPT5jbGVhclJlcXVlc3RCb2R5VmFsdWUsaW5pdFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcjooKT0+aW5pdFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcixzZXRBY3RpdmVFeGFtcGxlc01lbWJlcjooKT0+c2V0QWN0aXZlRXhhbXBsZXNNZW1iZXIsc2V0UmVxdWVzdEJvZHlJbmNsdXNpb246KCk9PnNldFJlcXVlc3RCb2R5SW5jbHVzaW9uLHNldFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcjooKT0+c2V0UmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yLHNldFJlcXVlc3RCb2R5VmFsdWU6KCk9PnNldFJlcXVlc3RCb2R5VmFsdWUsc2V0UmVxdWVzdENvbnRlbnRUeXBlOigpPT5zZXRSZXF1ZXN0Q29udGVudFR5cGUsc2V0UmVzcG9uc2VDb250ZW50VHlwZTooKT0+c2V0UmVzcG9uc2VDb250ZW50VHlwZSxzZXRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlRmxhZzooKT0+c2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWcsc2V0U2VsZWN0ZWRTZXJ2ZXI6KCk9PnNldFNlbGVjdGVkU2VydmVyLHNldFNlcnZlclZhcmlhYmxlVmFsdWU6KCk9PnNldFNlcnZlclZhcmlhYmxlVmFsdWV9KTt2YXIgQz17fTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoQyksX193ZWJwYWNrX3JlcXVpcmVfXy5kKEMse2FjdGl2ZUV4YW1wbGVzTWVtYmVyOigpPT5zcyxoYXNVc2VyRWRpdGVkQm9keTooKT0+cnMscmVxdWVzdEJvZHlFcnJvcnM6KCk9Pm5zLHJlcXVlc3RCb2R5SW5jbHVzaW9uU2V0dGluZzooKT0+YXMscmVxdWVzdEJvZHlWYWx1ZTooKT0+ZXMscmVxdWVzdENvbnRlbnRUeXBlOigpPT5vcyxyZXNwb25zZUNvbnRlbnRUeXBlOigpPT5scyxzZWxlY3REZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZTooKT0+c2VsZWN0RGVmYXVsdFJlcXVlc3RCb2R5VmFsdWUsc2VsZWN0ZWRTZXJ2ZXI6KCk9PlpuLHNlcnZlckVmZmVjdGl2ZVZhbHVlOigpPT5wcyxzZXJ2ZXJWYXJpYWJsZVZhbHVlOigpPT5jcyxzZXJ2ZXJWYXJpYWJsZXM6KCk9PmlzLHNob3VsZFJldGFpblJlcXVlc3RCb2R5VmFsdWU6KCk9PnRzLHZhbGlkT3BlcmF0aW9uTWV0aG9kczooKT0+dXMsdmFsaWRhdGVCZWZvcmVFeGVjdXRlOigpPT5tcyx2YWxpZGF0ZVNoYWxsb3dSZXF1aXJlZDooKT0+dmFsaWRhdGVTaGFsbG93UmVxdWlyZWR9KTtjb25zdCB4PXJlcXVpcmUoInJlYWN0Iik7dmFyIE89X193ZWJwYWNrX3JlcXVpcmVfXy5uKHgpO2NvbnN0IE49cmVxdWlyZSgicmVkdXgiKSxrPXJlcXVpcmUoImltbXV0YWJsZSIpO3ZhciBBPV9fd2VicGFja19yZXF1aXJlX18ubihrKTtjb25zdCBJPXJlcXVpcmUoImRlZXAtZXh0ZW5kIik7dmFyIGo9X193ZWJwYWNrX3JlcXVpcmVfXy5uKEkpO2NvbnN0IHE9cmVxdWlyZSgicmVkdXgtaW1tdXRhYmxlIiksUD1yZXF1aXJlKCJzZXJpYWxpemUtZXJyb3IiKSxNPXJlcXVpcmUoImxvZGFzaC9tZXJnZSIpO3ZhciBUPV9fd2VicGFja19yZXF1aXJlX18ubihNKTtjb25zdCBSPSJlcnJfbmV3X3Rocm93bl9lcnIiLEo9ImVycl9uZXdfdGhyb3duX2Vycl9iYXRjaCIsJD0iZXJyX25ld19zcGVjX2VyciIsVj0iZXJyX25ld19zcGVjX2Vycl9iYXRjaCIsTD0iZXJyX25ld19hdXRoX2VyciIsRD0iZXJyX2NsZWFyIixVPSJlcnJfY2xlYXJfYnkiO2Z1bmN0aW9uIG5ld1Rocm93bkVycihlKXtyZXR1cm57dHlwZTpSLHBheWxvYWQ6KDAsUC5zZXJpYWxpemVFcnJvcikoZSl9fWZ1bmN0aW9uIG5ld1Rocm93bkVyckJhdGNoKGUpe3JldHVybnt0eXBlOkoscGF5bG9hZDplfX1mdW5jdGlvbiBuZXdTcGVjRXJyKGUpe3JldHVybnt0eXBlOiQscGF5bG9hZDplfX1mdW5jdGlvbiBuZXdTcGVjRXJyQmF0Y2goZSl7cmV0dXJue3R5cGU6VixwYXlsb2FkOmV9fWZ1bmN0aW9uIG5ld0F1dGhFcnIoZSl7cmV0dXJue3R5cGU6TCxwYXlsb2FkOmV9fWZ1bmN0aW9uIGNsZWFyKGU9e30pe3JldHVybnt0eXBlOkQscGF5bG9hZDplfX1mdW5jdGlvbiBjbGVhckJ5KGU9KCk9PiEwKXtyZXR1cm57dHlwZTpVLHBheWxvYWQ6ZX19Y29uc3QgSz1mdW5jdGlvbiBtYWtlV2luZG93KCl7dmFyIGU9e2xvY2F0aW9uOnt9LGhpc3Rvcnk6e30sb3BlbjooKT0+e30sY2xvc2U6KCk9Pnt9LEZpbGU6ZnVuY3Rpb24oKXt9LEZvcm1EYXRhOmZ1bmN0aW9uKCl7fX07aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cpcmV0dXJuIGU7dHJ5e2U9d2luZG93O2Zvcih2YXIgdCBvZlsiRmlsZSIsIkJsb2IiLCJGb3JtRGF0YSJdKXQgaW4gd2luZG93JiYoZVt0XT13aW5kb3dbdF0pfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZSl9cmV0dXJuIGV9KCksej0ocmVxdWlyZSgibG9kYXNoL2NhbWVsQ2FzZSIpLHJlcXVpcmUoImxvZGFzaC91cHBlckZpcnN0IikscmVxdWlyZSgibG9kYXNoL21lbW9pemUiKSk7dmFyIEI9X193ZWJwYWNrX3JlcXVpcmVfXy5uKHopO2NvbnN0IEY9cmVxdWlyZSgibG9kYXNoL2ZpbmQiKTt2YXIgVz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oRik7Y29uc3QgSD1yZXF1aXJlKCJsb2Rhc2gvc29tZSIpO3ZhciBYPV9fd2VicGFja19yZXF1aXJlX18ubihIKTtjb25zdCBHPXJlcXVpcmUoImxvZGFzaC9lcSIpO3ZhciBZPV9fd2VicGFja19yZXF1aXJlX18ubihHKTtjb25zdCBRPXJlcXVpcmUoImxvZGFzaC9pc0Z1bmN0aW9uIik7dmFyIFo9X193ZWJwYWNrX3JlcXVpcmVfXy5uKFEpO2NvbnN0IGVlPXJlcXVpcmUoImNzcy5lc2NhcGUiKTt2YXIgdGU9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGVlKTtjb25zdCByZT1yZXF1aXJlKCJyYW5kb21ieXRlcyIpO3ZhciBhZT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocmUpO2NvbnN0IG5lPXJlcXVpcmUoInNoYS5qcyIpO3ZhciBzZT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4obmUpO2NvbnN0IG9lPUEoKS5TZXQub2YoInR5cGUiLCJmb3JtYXQiLCJpdGVtcyIsImRlZmF1bHQiLCJtYXhpbXVtIiwiZXhjbHVzaXZlTWF4aW11bSIsIm1pbmltdW0iLCJleGNsdXNpdmVNaW5pbXVtIiwibWF4TGVuZ3RoIiwibWluTGVuZ3RoIiwicGF0dGVybiIsIm1heEl0ZW1zIiwibWluSXRlbXMiLCJ1bmlxdWVJdGVtcyIsImVudW0iLCJtdWx0aXBsZU9mIik7ZnVuY3Rpb24gZ2V0UGFyYW1ldGVyU2NoZW1hKGUse2lzT0FTMzp0fT17fSl7aWYoIUEoKS5NYXAuaXNNYXAoZSkpcmV0dXJue3NjaGVtYTpBKCkuTWFwKCkscGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZTpudWxsfTtpZighdClyZXR1cm4iYm9keSI9PT1lLmdldCgiaW4iKT97c2NoZW1hOmUuZ2V0KCJzY2hlbWEiLEEoKS5NYXAoKSkscGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZTpudWxsfTp7c2NoZW1hOmUuZmlsdGVyKCgoZSx0KT0+b2UuaW5jbHVkZXModCkpKSxwYXJhbWV0ZXJDb250ZW50TWVkaWFUeXBlOm51bGx9O2lmKGUuZ2V0KCJjb250ZW50Iikpe2NvbnN0IHQ9ZS5nZXQoImNvbnRlbnQiLEEoKS5NYXAoe30pKS5rZXlTZXEoKS5maXJzdCgpO3JldHVybntzY2hlbWE6ZS5nZXRJbihbImNvbnRlbnQiLHQsInNjaGVtYSJdLEEoKS5NYXAoKSkscGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZTp0fX1yZXR1cm57c2NoZW1hOmUuZ2V0KCJzY2hlbWEiKT9lLmdldCgic2NoZW1hIixBKCkuTWFwKCkpOkEoKS5NYXAoKSxwYXJhbWV0ZXJDb250ZW50TWVkaWFUeXBlOm51bGx9fXZhciBsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDE1OCkuQnVmZmVyO2NvbnN0IGNlPSJkZWZhdWx0Iixpc0ltbXV0YWJsZT1lPT5BKCkuSXRlcmFibGUuaXNJdGVyYWJsZShlKSxpbW11dGFibGVUb0pTPWU9PmlzSW1tdXRhYmxlKGUpP2UudG9KUygpOmU7ZnVuY3Rpb24gb2JqZWN0aWZ5KGUpe3JldHVybiBpc09iamVjdChlKT9pbW11dGFibGVUb0pTKGUpOnt9fWZ1bmN0aW9uIGZyb21KU09yZGVyZWQoZSl7aWYoaXNJbW11dGFibGUoZSkpcmV0dXJuIGU7aWYoZSBpbnN0YW5jZW9mIEsuRmlsZSlyZXR1cm4gZTtpZighaXNPYmplY3QoZSkpcmV0dXJuIGU7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gQSgpLlNlcShlKS5tYXAoZnJvbUpTT3JkZXJlZCkudG9MaXN0KCk7aWYoWigpKGUuZW50cmllcykpe2NvbnN0IHQ9ZnVuY3Rpb24gY3JlYXRlT2JqV2l0aEhhc2hlZEtleXMoZSl7aWYoIVooKShlLmVudHJpZXMpKXJldHVybiBlO2NvbnN0IHQ9e30scj0iXyoqW10iLGE9e307Zm9yKGxldCBuIG9mIGUuZW50cmllcygpKWlmKHRbblswXV18fGFbblswXV0mJmFbblswXV0uY29udGFpbnNNdWx0aXBsZSl7aWYoIWFbblswXV0pe2FbblswXV09e2NvbnRhaW5zTXVsdGlwbGU6ITAsbGVuZ3RoOjF9LHRbYCR7blswXX0ke3J9JHthW25bMF1dLmxlbmd0aH1gXT10W25bMF1dLGRlbGV0ZSB0W25bMF1dfWFbblswXV0ubGVuZ3RoKz0xLHRbYCR7blswXX0ke3J9JHthW25bMF1dLmxlbmd0aH1gXT1uWzFdfWVsc2UgdFtuWzBdXT1uWzFdO3JldHVybiB0fShlKTtyZXR1cm4gQSgpLk9yZGVyZWRNYXAodCkubWFwKGZyb21KU09yZGVyZWQpfXJldHVybiBBKCkuT3JkZXJlZE1hcChlKS5tYXAoZnJvbUpTT3JkZXJlZCl9ZnVuY3Rpb24gbm9ybWFsaXplQXJyYXkoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZTpbZV19ZnVuY3Rpb24gaXNGbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZX1mdW5jdGlvbiBpc09iamVjdChlKXtyZXR1cm4hIWUmJiJvYmplY3QiPT10eXBlb2YgZX1mdW5jdGlvbiBpc0Z1bmMoZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGV9ZnVuY3Rpb24gaXNBcnJheShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKX1jb25zdCBpZT1CKCk7ZnVuY3Rpb24gb2JqTWFwKGUsdCl7cmV0dXJuIE9iamVjdC5rZXlzKGUpLnJlZHVjZSgoKHIsYSk9PihyW2FdPXQoZVthXSxhKSxyKSkse30pfWZ1bmN0aW9uIG9ialJlZHVjZShlLHQpe3JldHVybiBPYmplY3Qua2V5cyhlKS5yZWR1Y2UoKChyLGEpPT57bGV0IG49dChlW2FdLGEpO3JldHVybiBuJiYib2JqZWN0Ij09dHlwZW9mIG4mJk9iamVjdC5hc3NpZ24ocixuKSxyfSkse30pfWZ1bmN0aW9uIHN5c3RlbVRodW5rTWlkZGxld2FyZShlKXtyZXR1cm4oe2Rpc3BhdGNoOnQsZ2V0U3RhdGU6cn0pPT50PT5yPT4iZnVuY3Rpb24iPT10eXBlb2Ygcj9yKGUoKSk6dChyKX1mdW5jdGlvbiB2YWxpZGF0ZVZhbHVlQnlTY2hlbWEoZSx0LHIsYSxuKXtpZighdClyZXR1cm5bXTtsZXQgcz1bXSxvPXQuZ2V0KCJudWxsYWJsZSIpLGw9dC5nZXQoInJlcXVpcmVkIiksYz10LmdldCgibWF4aW11bSIpLGk9dC5nZXQoIm1pbmltdW0iKSxwPXQuZ2V0KCJ0eXBlIiksbT10LmdldCgiZm9ybWF0IiksdT10LmdldCgibWF4TGVuZ3RoIiksZD10LmdldCgibWluTGVuZ3RoIiksaD10LmdldCgidW5pcXVlSXRlbXMiKSxnPXQuZ2V0KCJtYXhJdGVtcyIpLHk9dC5nZXQoIm1pbkl0ZW1zIiksZj10LmdldCgicGF0dGVybiIpO2NvbnN0IFM9cnx8ITA9PT1sLEU9bnVsbCE9ZSxfPVN8fEUmJiJhcnJheSI9PT1wfHwhKCFTJiYhRSksdj1vJiZudWxsPT09ZTtpZihTJiYhRSYmIXYmJiFhJiYhcClyZXR1cm4gcy5wdXNoKCJSZXF1aXJlZCBmaWVsZCBpcyBub3QgcHJvdmlkZWQiKSxzO2lmKHZ8fCFwfHwhXylyZXR1cm5bXTtsZXQgdz0ic3RyaW5nIj09PXAmJmUsYj0iYXJyYXkiPT09cCYmQXJyYXkuaXNBcnJheShlKSYmZS5sZW5ndGgsQz0iYXJyYXkiPT09cCYmQSgpLkxpc3QuaXNMaXN0KGUpJiZlLmNvdW50KCk7Y29uc3QgeD1bdyxiLEMsImFycmF5Ij09PXAmJiJzdHJpbmciPT10eXBlb2YgZSYmZSwiZmlsZSI9PT1wJiZlIGluc3RhbmNlb2YgSy5GaWxlLCJib29sZWFuIj09PXAmJihlfHwhMT09PWUpLCJudW1iZXIiPT09cCYmKGV8fDA9PT1lKSwiaW50ZWdlciI9PT1wJiYoZXx8MD09PWUpLCJvYmplY3QiPT09cCYmIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSwib2JqZWN0Ij09PXAmJiJzdHJpbmciPT10eXBlb2YgZSYmZV0uc29tZSgoZT0+ISFlKSk7aWYoUyYmIXgmJiFhKXJldHVybiBzLnB1c2goIlJlcXVpcmVkIGZpZWxkIGlzIG5vdCBwcm92aWRlZCIpLHM7aWYoIm9iamVjdCI9PT1wJiYobnVsbD09PW58fCJhcHBsaWNhdGlvbi9qc29uIj09PW4pKXtsZXQgcj1lO2lmKCJzdHJpbmciPT10eXBlb2YgZSl0cnl7cj1KU09OLnBhcnNlKGUpfWNhdGNoKGUpe3JldHVybiBzLnB1c2goIlBhcmFtZXRlciBzdHJpbmcgdmFsdWUgbXVzdCBiZSB2YWxpZCBKU09OIiksc310JiZ0LmhhcygicmVxdWlyZWQiKSYmaXNGdW5jKGwuaXNMaXN0KSYmbC5pc0xpc3QoKSYmbC5mb3JFYWNoKChlPT57dm9pZCAwPT09cltlXSYmcy5wdXNoKHtwcm9wS2V5OmUsZXJyb3I6IlJlcXVpcmVkIHByb3BlcnR5IG5vdCBmb3VuZCJ9KX0pKSx0JiZ0LmhhcygicHJvcGVydGllcyIpJiZ0LmdldCgicHJvcGVydGllcyIpLmZvckVhY2goKChlLHQpPT57Y29uc3Qgbz12YWxpZGF0ZVZhbHVlQnlTY2hlbWEoclt0XSxlLCExLGEsbik7cy5wdXNoKC4uLm8ubWFwKChlPT4oe3Byb3BLZXk6dCxlcnJvcjplfSkpKSl9KSl9aWYoZil7bGV0IHQ9KChlLHQpPT57aWYoIW5ldyBSZWdFeHAodCkudGVzdChlKSlyZXR1cm4iVmFsdWUgbXVzdCBmb2xsb3cgcGF0dGVybiAiK3R9KShlLGYpO3QmJnMucHVzaCh0KX1pZih5JiYiYXJyYXkiPT09cCl7bGV0IHQ9KChlLHQpPT57aWYoIWUmJnQ+PTF8fGUmJmUubGVuZ3RoPHQpcmV0dXJuYEFycmF5IG11c3QgY29udGFpbiBhdCBsZWFzdCAke3R9IGl0ZW0kezE9PT10PyIiOiJzIn1gfSkoZSx5KTt0JiZzLnB1c2godCl9aWYoZyYmImFycmF5Ij09PXApe2xldCB0PSgoZSx0KT0+e2lmKGUmJmUubGVuZ3RoPnQpcmV0dXJuYEFycmF5IG11c3Qgbm90IGNvbnRhaW4gbW9yZSB0aGVuICR7dH0gaXRlbSR7MT09PXQ/IiI6InMifWB9KShlLGcpO3QmJnMucHVzaCh7bmVlZFJlbW92ZTohMCxlcnJvcjp0fSl9aWYoaCYmImFycmF5Ij09PXApe2xldCB0PSgoZSx0KT0+e2lmKGUmJigidHJ1ZSI9PT10fHwhMD09PXQpKXtjb25zdCB0PSgwLGsuZnJvbUpTKShlKSxyPXQudG9TZXQoKTtpZihlLmxlbmd0aD5yLnNpemUpe2xldCBlPSgwLGsuU2V0KSgpO2lmKHQuZm9yRWFjaCgoKHIsYSk9Pnt0LmZpbHRlcigoZT0+aXNGdW5jKGUuZXF1YWxzKT9lLmVxdWFscyhyKTplPT09cikpLnNpemU+MSYmKGU9ZS5hZGQoYSkpfSkpLDAhPT1lLnNpemUpcmV0dXJuIGUubWFwKChlPT4oe2luZGV4OmUsZXJyb3I6Ik5vIGR1cGxpY2F0ZXMgYWxsb3dlZC4ifSkpKS50b0FycmF5KCl9fX0pKGUsaCk7dCYmcy5wdXNoKC4uLnQpfWlmKHV8fDA9PT11KXtsZXQgdD0oKGUsdCk9PntpZihlLmxlbmd0aD50KXJldHVybmBWYWx1ZSBtdXN0IGJlIG5vIGxvbmdlciB0aGFuICR7dH0gY2hhcmFjdGVyJHsxIT09dD8icyI6IiJ9YH0pKGUsdSk7dCYmcy5wdXNoKHQpfWlmKGQpe2xldCB0PSgoZSx0KT0+e2lmKGUubGVuZ3RoPHQpcmV0dXJuYFZhbHVlIG11c3QgYmUgYXQgbGVhc3QgJHt0fSBjaGFyYWN0ZXIkezEhPT10PyJzIjoiIn1gfSkoZSxkKTt0JiZzLnB1c2godCl9aWYoY3x8MD09PWMpe2xldCB0PSgoZSx0KT0+e2lmKGU+dClyZXR1cm5gVmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHt0fWB9KShlLGMpO3QmJnMucHVzaCh0KX1pZihpfHwwPT09aSl7bGV0IHQ9KChlLHQpPT57aWYoZTx0KXJldHVybmBWYWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAke3R9YH0pKGUsaSk7dCYmcy5wdXNoKHQpfWlmKCJzdHJpbmciPT09cCl7bGV0IHQ7aWYodD0iZGF0ZS10aW1lIj09PW0/KGU9PntpZihpc05hTihEYXRlLnBhcnNlKGUpKSlyZXR1cm4iVmFsdWUgbXVzdCBiZSBhIERhdGVUaW1lIn0pKGUpOiJ1dWlkIj09PW0/KGU9PntpZihlPWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLCEvXlt7KF0/WzAtOWEtZl17OH0tWzAtOWEtZl17NH0tWzAtOWEtZl17NH0tWzAtOWEtZl17NH0tWzAtOWEtZl17MTJ9Wyl9XT8kLy50ZXN0KGUpKXJldHVybiJWYWx1ZSBtdXN0IGJlIGEgR3VpZCJ9KShlKTooZT0+e2lmKGUmJiJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4iVmFsdWUgbXVzdCBiZSBhIHN0cmluZyJ9KShlKSwhdClyZXR1cm4gcztzLnB1c2godCl9ZWxzZSBpZigiYm9vbGVhbiI9PT1wKXtsZXQgdD0oZT0+e2lmKCJ0cnVlIiE9PWUmJiJmYWxzZSIhPT1lJiYhMCE9PWUmJiExIT09ZSlyZXR1cm4iVmFsdWUgbXVzdCBiZSBhIGJvb2xlYW4ifSkoZSk7aWYoIXQpcmV0dXJuIHM7cy5wdXNoKHQpfWVsc2UgaWYoIm51bWJlciI9PT1wKXtsZXQgdD0oZT0+e2lmKCEvXi0/XGQrKFwuP1xkKyk/JC8udGVzdChlKSlyZXR1cm4iVmFsdWUgbXVzdCBiZSBhIG51bWJlciJ9KShlKTtpZighdClyZXR1cm4gcztzLnB1c2godCl9ZWxzZSBpZigiaW50ZWdlciI9PT1wKXtsZXQgdD0oZT0+e2lmKCEvXi0/XGQrJC8udGVzdChlKSlyZXR1cm4iVmFsdWUgbXVzdCBiZSBhbiBpbnRlZ2VyIn0pKGUpO2lmKCF0KXJldHVybiBzO3MucHVzaCh0KX1lbHNlIGlmKCJhcnJheSI9PT1wKXtpZighYiYmIUMpcmV0dXJuIHM7ZSYmZS5mb3JFYWNoKCgoZSxyKT0+e2NvbnN0IG89dmFsaWRhdGVWYWx1ZUJ5U2NoZW1hKGUsdC5nZXQoIml0ZW1zIiksITEsYSxuKTtzLnB1c2goLi4uby5tYXAoKGU9Pih7aW5kZXg6cixlcnJvcjplfSkpKSl9KSl9ZWxzZSBpZigiZmlsZSI9PT1wKXtsZXQgdD0oZT0+e2lmKGUmJiEoZSBpbnN0YW5jZW9mIEsuRmlsZSkpcmV0dXJuIlZhbHVlIG11c3QgYmUgYSBmaWxlIn0pKGUpO2lmKCF0KXJldHVybiBzO3MucHVzaCh0KX1yZXR1cm4gc31jb25zdCBidG9hPWU9PntsZXQgdDtyZXR1cm4gdD1lIGluc3RhbmNlb2YgbGU/ZTpsZS5mcm9tKGUudG9TdHJpbmcoKSwidXRmLTgiKSx0LnRvU3RyaW5nKCJiYXNlNjQiKX0scGU9e29wZXJhdGlvbnNTb3J0ZXI6e2FscGhhOihlLHQpPT5lLmdldCgicGF0aCIpLmxvY2FsZUNvbXBhcmUodC5nZXQoInBhdGgiKSksbWV0aG9kOihlLHQpPT5lLmdldCgibWV0aG9kIikubG9jYWxlQ29tcGFyZSh0LmdldCgibWV0aG9kIikpfSx0YWdzU29ydGVyOnthbHBoYTooZSx0KT0+ZS5sb2NhbGVDb21wYXJlKHQpfX0sYnVpbGRGb3JtRGF0YT1lPT57bGV0IHQ9W107Zm9yKGxldCByIGluIGUpe2xldCBhPWVbcl07dm9pZCAwIT09YSYmIiIhPT1hJiZ0LnB1c2goW3IsIj0iLGVuY29kZVVSSUNvbXBvbmVudChhKS5yZXBsYWNlKC8lMjAvZywiKyIpXS5qb2luKCIiKSl9cmV0dXJuIHQuam9pbigiJiIpfSxzaGFsbG93RXF1YWxLZXlzPShlLHQscik9PiEhVygpKHIsKHI9PlkoKShlW3JdLHRbcl0pKSk7ZnVuY3Rpb24gcmVxdWlyZXNWYWxpZGF0aW9uVVJMKGUpe3JldHVybiEoIWV8fGUuaW5kZXhPZigibG9jYWxob3N0Iik+PTB8fGUuaW5kZXhPZigiMTI3LjAuMC4xIik+PTB8fCJub25lIj09PWUpfWNvbnN0IGNyZWF0ZURlZXBMaW5rUGF0aD1lPT4ic3RyaW5nIj09dHlwZW9mIGV8fGUgaW5zdGFuY2VvZiBTdHJpbmc/ZS50cmltKCkucmVwbGFjZSgvXHMvZywiJTIwIik6IiIsZXNjYXBlRGVlcExpbmtQYXRoPWU9PnRlKCkoY3JlYXRlRGVlcExpbmtQYXRoKGUpLnJlcGxhY2UoLyUyMC9nLCJfIikpLGdldEV4dGVuc2lvbnM9ZT0+e2NvbnN0IHQ9L154LS87cmV0dXJuIGsuTWFwLmlzTWFwKGUpP2UuZmlsdGVyKCgoZSxyKT0+dC50ZXN0KHIpKSk6T2JqZWN0LmtleXMoZSkuZmlsdGVyKChlPT50LnRlc3QoZSkpKX0sZ2V0Q29tbW9uRXh0ZW5zaW9ucz1lPT5lLmZpbHRlcigoKGUsdCk9Pi9ecGF0dGVybnxtYXhMZW5ndGh8bWluTGVuZ3RofG1heGltdW18bWluaW11bS8udGVzdCh0KSkpO2Z1bmN0aW9uIGRlZXBseVN0cmlwS2V5KGUsdCxyPSgpPT4hMCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxBcnJheS5pc0FycmF5KGUpfHxudWxsPT09ZXx8IXQpcmV0dXJuIGU7Y29uc3QgYT1PYmplY3QuYXNzaWduKHt9LGUpO3JldHVybiBPYmplY3Qua2V5cyhhKS5mb3JFYWNoKChlPT57ZT09PXQmJnIoYVtlXSxlKT9kZWxldGUgYVtlXTphW2VdPWRlZXBseVN0cmlwS2V5KGFbZV0sdCxyKX0pKSxhfWZ1bmN0aW9uIHN0cmluZ2lmeShlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIGU7aWYoZSYmZS50b0pTJiYoZT1lLnRvSlMoKSksIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSl0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUsbnVsbCwyKX1jYXRjaCh0KXtyZXR1cm4gU3RyaW5nKGUpfXJldHVybiBudWxsPT1lPyIiOmUudG9TdHJpbmcoKX1mdW5jdGlvbiBwYXJhbVRvSWRlbnRpZmllcihlLHtyZXR1cm5BbGw6dD0hMSxhbGxvd0hhc2hlczpyPSEwfT17fSl7aWYoIUEoKS5NYXAuaXNNYXAoZSkpdGhyb3cgbmV3IEVycm9yKCJwYXJhbVRvSWRlbnRpZmllcjogcmVjZWl2ZWQgYSBub24tSW0uTWFwIHBhcmFtZXRlciBhcyBpbnB1dCIpO2NvbnN0IGE9ZS5nZXQoIm5hbWUiKSxuPWUuZ2V0KCJpbiIpO2xldCBzPVtdO3JldHVybiBlJiZlLmhhc2hDb2RlJiZuJiZhJiZyJiZzLnB1c2goYCR7bn0uJHthfS5oYXNoLSR7ZS5oYXNoQ29kZSgpfWApLG4mJmEmJnMucHVzaChgJHtufS4ke2F9YCkscy5wdXNoKGEpLHQ/czpzWzBdfHwiIn1mdW5jdGlvbiBwYXJhbVRvVmFsdWUoZSx0KXtyZXR1cm4gcGFyYW1Ub0lkZW50aWZpZXIoZSx7cmV0dXJuQWxsOiEwfSkubWFwKChlPT50W2VdKSkuZmlsdGVyKChlPT52b2lkIDAhPT1lKSlbMF19ZnVuY3Rpb24gYjY0dG9CNjRVcmxFbmNvZGVkKGUpe3JldHVybiBlLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIikucmVwbGFjZSgvPS9nLCIiKX1jb25zdCBpc0VtcHR5VmFsdWU9ZT0+IWV8fCEoIWlzSW1tdXRhYmxlKGUpfHwhZS5pc0VtcHR5KCkpLGlkRm49ZT0+ZTtjbGFzcyBTdG9yZXtjb25zdHJ1Y3RvcihlPXt9KXtqKCkodGhpcyx7c3RhdGU6e30scGx1Z2luczpbXSxzeXN0ZW06e2NvbmZpZ3M6e30sZm46e30sY29tcG9uZW50czp7fSxyb290SW5qZWN0czp7fSxzdGF0ZVBsdWdpbnM6e319LGJvdW5kU3lzdGVtOnt9LHRvb2xib3g6e319LGUpLHRoaXMuZ2V0U3lzdGVtPXRoaXMuX2dldFN5c3RlbS5iaW5kKHRoaXMpLHRoaXMuc3RvcmU9ZnVuY3Rpb24gY29uZmlndXJlU3RvcmUoZSx0LHIpe3JldHVybiBmdW5jdGlvbiBjcmVhdGVTdG9yZVdpdGhNaWRkbGV3YXJlKGUsdCxyKXtsZXQgYT1bc3lzdGVtVGh1bmtNaWRkbGV3YXJlKHIpXTtjb25zdCBuPUsuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fQ09NUE9TRV9ffHxOLmNvbXBvc2U7cmV0dXJuKDAsTi5jcmVhdGVTdG9yZSkoZSx0LG4oKDAsTi5hcHBseU1pZGRsZXdhcmUpKC4uLmEpKSl9KGUsdCxyKX0oaWRGbiwoMCxrLmZyb21KUykodGhpcy5zdGF0ZSksdGhpcy5nZXRTeXN0ZW0pLHRoaXMuYnVpbGRTeXN0ZW0oITEpLHRoaXMucmVnaXN0ZXIodGhpcy5wbHVnaW5zKX1nZXRTdG9yZSgpe3JldHVybiB0aGlzLnN0b3JlfXJlZ2lzdGVyKGUsdD0hMCl7dmFyIHI9Y29tYmluZVBsdWdpbnMoZSx0aGlzLmdldFN5c3RlbSgpKTtzeXN0ZW1FeHRlbmQodGhpcy5zeXN0ZW0sciksdCYmdGhpcy5idWlsZFN5c3RlbSgpO2NhbGxBZnRlckxvYWQuY2FsbCh0aGlzLnN5c3RlbSxlLHRoaXMuZ2V0U3lzdGVtKCkpJiZ0aGlzLmJ1aWxkU3lzdGVtKCl9YnVpbGRTeXN0ZW0oZT0hMCl7bGV0IHQ9dGhpcy5nZXRTdG9yZSgpLmRpc3BhdGNoLHI9dGhpcy5nZXRTdG9yZSgpLmdldFN0YXRlO3RoaXMuYm91bmRTeXN0ZW09T2JqZWN0LmFzc2lnbih7fSx0aGlzLmdldFJvb3RJbmplY3RzKCksdGhpcy5nZXRXcmFwcGVkQW5kQm91bmRBY3Rpb25zKHQpLHRoaXMuZ2V0V3JhcHBlZEFuZEJvdW5kU2VsZWN0b3JzKHIsdGhpcy5nZXRTeXN0ZW0pLHRoaXMuZ2V0U3RhdGVUaHVua3MociksdGhpcy5nZXRGbigpLHRoaXMuZ2V0Q29uZmlncygpKSxlJiZ0aGlzLnJlYnVpbGRSZWR1Y2VyKCl9X2dldFN5c3RlbSgpe3JldHVybiB0aGlzLmJvdW5kU3lzdGVtfWdldFJvb3RJbmplY3RzKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe2dldFN5c3RlbTp0aGlzLmdldFN5c3RlbSxnZXRTdG9yZTp0aGlzLmdldFN0b3JlLmJpbmQodGhpcyksZ2V0Q29tcG9uZW50czp0aGlzLmdldENvbXBvbmVudHMuYmluZCh0aGlzKSxnZXRTdGF0ZTp0aGlzLmdldFN0b3JlKCkuZ2V0U3RhdGUsZ2V0Q29uZmlnczp0aGlzLl9nZXRDb25maWdzLmJpbmQodGhpcyksSW06QSgpLFJlYWN0Ok8oKX0sdGhpcy5zeXN0ZW0ucm9vdEluamVjdHN8fHt9KX1fZ2V0Q29uZmlncygpe3JldHVybiB0aGlzLnN5c3RlbS5jb25maWdzfWdldENvbmZpZ3MoKXtyZXR1cm57Y29uZmlnczp0aGlzLnN5c3RlbS5jb25maWdzfX1zZXRDb25maWdzKGUpe3RoaXMuc3lzdGVtLmNvbmZpZ3M9ZX1yZWJ1aWxkUmVkdWNlcigpe3RoaXMuc3RvcmUucmVwbGFjZVJlZHVjZXIoZnVuY3Rpb24gYnVpbGRSZWR1Y2VyKGUsdCl7cmV0dXJuIGZ1bmN0aW9uIGFsbFJlZHVjZXJzKGUsdCl7bGV0IHI9T2JqZWN0LmtleXMoZSkucmVkdWNlKCgocixhKT0+KHJbYV09ZnVuY3Rpb24gbWFrZVJlZHVjZXIoZSx0KXtyZXR1cm4ocj1uZXcgay5NYXAsYSk9PntpZighZSlyZXR1cm4gcjtsZXQgbj1lW2EudHlwZV07aWYobil7Y29uc3QgZT13cmFwV2l0aFRyeUNhdGNoKG4sdCkocixhKTtyZXR1cm4gbnVsbD09PWU/cjplfXJldHVybiByfX0oZVthXSx0KSxyKSkse30pO2lmKCFPYmplY3Qua2V5cyhyKS5sZW5ndGgpcmV0dXJuIGlkRm47cmV0dXJuKDAscS5jb21iaW5lUmVkdWNlcnMpKHIpfShvYmpNYXAoZSwoZT0+ZS5yZWR1Y2VycykpLHQpfSh0aGlzLnN5c3RlbS5zdGF0ZVBsdWdpbnMsdGhpcy5nZXRTeXN0ZW0pKX1nZXRUeXBlKGUpe2xldCB0PWVbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpO3JldHVybiBvYmpSZWR1Y2UodGhpcy5zeXN0ZW0uc3RhdGVQbHVnaW5zLCgocixhKT0+e2xldCBuPXJbZV07aWYobilyZXR1cm57W2ErdF06bn19KSl9Z2V0U2VsZWN0b3JzKCl7cmV0dXJuIHRoaXMuZ2V0VHlwZSgic2VsZWN0b3JzIil9Z2V0QWN0aW9ucygpe3JldHVybiBvYmpNYXAodGhpcy5nZXRUeXBlKCJhY3Rpb25zIiksKGU9Pm9ialJlZHVjZShlLCgoZSx0KT0+e2lmKGlzRm4oZSkpcmV0dXJue1t0XTplfX0pKSkpfWdldFdyYXBwZWRBbmRCb3VuZEFjdGlvbnMoZSl7cmV0dXJuIG9iak1hcCh0aGlzLmdldEJvdW5kQWN0aW9ucyhlKSwoKGUsdCk9PntsZXQgcj10aGlzLnN5c3RlbS5zdGF0ZVBsdWdpbnNbdC5zbGljZSgwLC03KV0ud3JhcEFjdGlvbnM7cmV0dXJuIHI/b2JqTWFwKGUsKChlLHQpPT57bGV0IGE9clt0XTtyZXR1cm4gYT8oQXJyYXkuaXNBcnJheShhKXx8KGE9W2FdKSxhLnJlZHVjZSgoKGUsdCk9PntsZXQgbmV3QWN0aW9uPSguLi5yKT0+dChlLHRoaXMuZ2V0U3lzdGVtKCkpKC4uLnIpO2lmKCFpc0ZuKG5ld0FjdGlvbikpdGhyb3cgbmV3IFR5cGVFcnJvcigid3JhcEFjdGlvbnMgbmVlZHMgdG8gcmV0dXJuIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgbmV3IGZ1bmN0aW9uIChpZSB0aGUgd3JhcHBlZCBhY3Rpb24pIik7cmV0dXJuIHdyYXBXaXRoVHJ5Q2F0Y2gobmV3QWN0aW9uLHRoaXMuZ2V0U3lzdGVtKX0pLGV8fEZ1bmN0aW9uLnByb3RvdHlwZSkpOmV9KSk6ZX0pKX1nZXRXcmFwcGVkQW5kQm91bmRTZWxlY3RvcnMoZSx0KXtyZXR1cm4gb2JqTWFwKHRoaXMuZ2V0Qm91bmRTZWxlY3RvcnMoZSx0KSwoKHQscik9PntsZXQgYT1bci5zbGljZSgwLC05KV0sbj10aGlzLnN5c3RlbS5zdGF0ZVBsdWdpbnNbYV0ud3JhcFNlbGVjdG9ycztyZXR1cm4gbj9vYmpNYXAodCwoKHQscik9PntsZXQgcz1uW3JdO3JldHVybiBzPyhBcnJheS5pc0FycmF5KHMpfHwocz1bc10pLHMucmVkdWNlKCgodCxyKT0+e2xldCB3cmFwcGVkU2VsZWN0b3I9KC4uLm4pPT5yKHQsdGhpcy5nZXRTeXN0ZW0oKSkoZSgpLmdldEluKGEpLC4uLm4pO2lmKCFpc0ZuKHdyYXBwZWRTZWxlY3RvcikpdGhyb3cgbmV3IFR5cGVFcnJvcigid3JhcFNlbGVjdG9yIG5lZWRzIHRvIHJldHVybiBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIG5ldyBmdW5jdGlvbiAoaWUgdGhlIHdyYXBwZWQgYWN0aW9uKSIpO3JldHVybiB3cmFwcGVkU2VsZWN0b3J9KSx0fHxGdW5jdGlvbi5wcm90b3R5cGUpKTp0fSkpOnR9KSl9Z2V0U3RhdGVzKGUpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLnN5c3RlbS5zdGF0ZVBsdWdpbnMpLnJlZHVjZSgoKHQscik9Pih0W3JdPWUuZ2V0KHIpLHQpKSx7fSl9Z2V0U3RhdGVUaHVua3MoZSl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuc3lzdGVtLnN0YXRlUGx1Z2lucykucmVkdWNlKCgodCxyKT0+KHRbcl09KCk9PmUoKS5nZXQociksdCkpLHt9KX1nZXRGbigpe3JldHVybntmbjp0aGlzLnN5c3RlbS5mbn19Z2V0Q29tcG9uZW50cyhlKXtjb25zdCB0PXRoaXMuc3lzdGVtLmNvbXBvbmVudHNbZV07cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dC5yZWR1Y2UoKChlLHQpPT50KGUsdGhpcy5nZXRTeXN0ZW0oKSkpKTp2b2lkIDAhPT1lP3RoaXMuc3lzdGVtLmNvbXBvbmVudHNbZV06dGhpcy5zeXN0ZW0uY29tcG9uZW50c31nZXRCb3VuZFNlbGVjdG9ycyhlLHQpe3JldHVybiBvYmpNYXAodGhpcy5nZXRTZWxlY3RvcnMoKSwoKHIsYSk9PntsZXQgbj1bYS5zbGljZSgwLC05KV07cmV0dXJuIG9iak1hcChyLChyPT4oLi4uYSk9PntsZXQgcz13cmFwV2l0aFRyeUNhdGNoKHIsdGhpcy5nZXRTeXN0ZW0pLmFwcGx5KG51bGwsW2UoKS5nZXRJbihuKSwuLi5hXSk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHMmJihzPXdyYXBXaXRoVHJ5Q2F0Y2gocyx0aGlzLmdldFN5c3RlbSkodCgpKSksc30pKX0pKX1nZXRCb3VuZEFjdGlvbnMoZSl7ZT1lfHx0aGlzLmdldFN0b3JlKCkuZGlzcGF0Y2g7Y29uc3QgdD10aGlzLmdldEFjdGlvbnMoKSxwcm9jZXNzPWU9PiJmdW5jdGlvbiIhPXR5cGVvZiBlP29iak1hcChlLChlPT5wcm9jZXNzKGUpKSk6KC4uLnQpPT57dmFyIHI9bnVsbDt0cnl7cj1lKC4uLnQpfWNhdGNoKGUpe3I9e3R5cGU6UixlcnJvcjohMCxwYXlsb2FkOigwLFAuc2VyaWFsaXplRXJyb3IpKGUpfX1maW5hbGx5e3JldHVybiByfX07cmV0dXJuIG9iak1hcCh0LCh0PT4oMCxOLmJpbmRBY3Rpb25DcmVhdG9ycykocHJvY2Vzcyh0KSxlKSkpfWdldE1hcFN0YXRlVG9Qcm9wcygpe3JldHVybigpPT5PYmplY3QuYXNzaWduKHt9LHRoaXMuZ2V0U3lzdGVtKCkpfWdldE1hcERpc3BhdGNoVG9Qcm9wcyhlKXtyZXR1cm4gdD0+aigpKHt9LHRoaXMuZ2V0V3JhcHBlZEFuZEJvdW5kQWN0aW9ucyh0KSx0aGlzLmdldEZuKCksZSl9fWZ1bmN0aW9uIGNvbWJpbmVQbHVnaW5zKGUsdCl7cmV0dXJuIGlzT2JqZWN0KGUpJiYhaXNBcnJheShlKT9UKCkoe30sZSk6aXNGdW5jKGUpP2NvbWJpbmVQbHVnaW5zKGUodCksdCk6aXNBcnJheShlKT9lLm1hcCgoZT0+Y29tYmluZVBsdWdpbnMoZSx0KSkpLnJlZHVjZShzeXN0ZW1FeHRlbmQse2NvbXBvbmVudHM6dC5nZXRDb21wb25lbnRzKCl9KTp7fX1mdW5jdGlvbiBjYWxsQWZ0ZXJMb2FkKGUsdCx7aGFzTG9hZGVkOnJ9PXt9KXtsZXQgYT1yO3JldHVybiBpc09iamVjdChlKSYmIWlzQXJyYXkoZSkmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLmFmdGVyTG9hZCYmKGE9ITAsd3JhcFdpdGhUcnlDYXRjaChlLmFmdGVyTG9hZCx0LmdldFN5c3RlbSkuY2FsbCh0aGlzLHQpKSxpc0Z1bmMoZSk/Y2FsbEFmdGVyTG9hZC5jYWxsKHRoaXMsZSh0KSx0LHtoYXNMb2FkZWQ6YX0pOmlzQXJyYXkoZSk/ZS5tYXAoKGU9PmNhbGxBZnRlckxvYWQuY2FsbCh0aGlzLGUsdCx7aGFzTG9hZGVkOmF9KSkpOmF9ZnVuY3Rpb24gc3lzdGVtRXh0ZW5kKGU9e30sdD17fSl7aWYoIWlzT2JqZWN0KGUpKXJldHVybnt9O2lmKCFpc09iamVjdCh0KSlyZXR1cm4gZTt0LndyYXBDb21wb25lbnRzJiYob2JqTWFwKHQud3JhcENvbXBvbmVudHMsKChyLGEpPT57Y29uc3Qgbj1lLmNvbXBvbmVudHMmJmUuY29tcG9uZW50c1thXTtuJiZBcnJheS5pc0FycmF5KG4pPyhlLmNvbXBvbmVudHNbYV09bi5jb25jYXQoW3JdKSxkZWxldGUgdC53cmFwQ29tcG9uZW50c1thXSk6biYmKGUuY29tcG9uZW50c1thXT1bbixyXSxkZWxldGUgdC53cmFwQ29tcG9uZW50c1thXSl9KSksT2JqZWN0LmtleXModC53cmFwQ29tcG9uZW50cykubGVuZ3RofHxkZWxldGUgdC53cmFwQ29tcG9uZW50cyk7Y29uc3R7c3RhdGVQbHVnaW5zOnJ9PWU7aWYoaXNPYmplY3QocikpZm9yKGxldCBlIGluIHIpe2NvbnN0IGE9cltlXTtpZighaXNPYmplY3QoYSkpY29udGludWU7Y29uc3R7d3JhcEFjdGlvbnM6bix3cmFwU2VsZWN0b3JzOnN9PWE7aWYoaXNPYmplY3QobikpZm9yKGxldCByIGluIG4pe2xldCBhPW5bcl07QXJyYXkuaXNBcnJheShhKXx8KGE9W2FdLG5bcl09YSksdCYmdC5zdGF0ZVBsdWdpbnMmJnQuc3RhdGVQbHVnaW5zW2VdJiZ0LnN0YXRlUGx1Z2luc1tlXS53cmFwQWN0aW9ucyYmdC5zdGF0ZVBsdWdpbnNbZV0ud3JhcEFjdGlvbnNbcl0mJih0LnN0YXRlUGx1Z2luc1tlXS53cmFwQWN0aW9uc1tyXT1uW3JdLmNvbmNhdCh0LnN0YXRlUGx1Z2luc1tlXS53cmFwQWN0aW9uc1tyXSkpfWlmKGlzT2JqZWN0KHMpKWZvcihsZXQgciBpbiBzKXtsZXQgYT1zW3JdO0FycmF5LmlzQXJyYXkoYSl8fChhPVthXSxzW3JdPWEpLHQmJnQuc3RhdGVQbHVnaW5zJiZ0LnN0YXRlUGx1Z2luc1tlXSYmdC5zdGF0ZVBsdWdpbnNbZV0ud3JhcFNlbGVjdG9ycyYmdC5zdGF0ZVBsdWdpbnNbZV0ud3JhcFNlbGVjdG9yc1tyXSYmKHQuc3RhdGVQbHVnaW5zW2VdLndyYXBTZWxlY3RvcnNbcl09c1tyXS5jb25jYXQodC5zdGF0ZVBsdWdpbnNbZV0ud3JhcFNlbGVjdG9yc1tyXSkpfX1yZXR1cm4gaigpKGUsdCl9ZnVuY3Rpb24gd3JhcFdpdGhUcnlDYXRjaChlLHQse2xvZ0Vycm9yczpyPSEwfT17fSl7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIGU/ZTpmdW5jdGlvbiguLi5hKXt0cnl7cmV0dXJuIGUuY2FsbCh0aGlzLC4uLmEpfWNhdGNoKGUpe2lmKHIpe2NvbnN0e3VuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcjpyfT10KCkuZ2V0Q29uZmlncygpOyJmdW5jdGlvbiI9PXR5cGVvZiByP3IoZSk6Y29uc29sZS5lcnJvcihlKX1yZXR1cm4gbnVsbH19fWNvbnN0IG1lPXJlcXVpcmUoInVybC1wYXJzZSIpO3ZhciB1ZT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4obWUpO2NvbnN0IGRlPSJzaG93X3BvcHVwIixoZT0iYXV0aG9yaXplIixnZT0ibG9nb3V0Iix5ZT0iYXV0aG9yaXplX29hdXRoMiIsZmU9ImNvbmZpZ3VyZV9hdXRoIixTZT0icmVzdG9yZV9hdXRob3JpemF0aW9uIjtmdW5jdGlvbiBzaG93RGVmaW5pdGlvbnMoZSl7cmV0dXJue3R5cGU6ZGUscGF5bG9hZDplfX1mdW5jdGlvbiBhdXRob3JpemUoZSl7cmV0dXJue3R5cGU6aGUscGF5bG9hZDplfX1jb25zdCBhdXRob3JpemVXaXRoUGVyc2lzdE9wdGlvbj1lPT4oe2F1dGhBY3Rpb25zOnR9KT0+e3QuYXV0aG9yaXplKGUpLHQucGVyc2lzdEF1dGhvcml6YXRpb25JZk5lZWRlZCgpfTtmdW5jdGlvbiBsb2dvdXQoZSl7cmV0dXJue3R5cGU6Z2UscGF5bG9hZDplfX1jb25zdCBsb2dvdXRXaXRoUGVyc2lzdE9wdGlvbj1lPT4oe2F1dGhBY3Rpb25zOnR9KT0+e3QubG9nb3V0KGUpLHQucGVyc2lzdEF1dGhvcml6YXRpb25JZk5lZWRlZCgpfSxwcmVBdXRob3JpemVJbXBsaWNpdD1lPT4oe2F1dGhBY3Rpb25zOnQsZXJyQWN0aW9uczpyfSk9PntsZXR7YXV0aDphLHRva2VuOm4saXNWYWxpZDpzfT1lLHtzY2hlbWE6byxuYW1lOmx9PWEsYz1vLmdldCgiZmxvdyIpO2RlbGV0ZSBLLnN3YWdnZXJVSVJlZGlyZWN0T2F1dGgyLCJhY2Nlc3NDb2RlIj09PWN8fHN8fHIubmV3QXV0aEVycih7YXV0aElkOmwsc291cmNlOiJhdXRoIixsZXZlbDoid2FybmluZyIsbWVzc2FnZToiQXV0aG9yaXphdGlvbiBtYXkgYmUgdW5zYWZlLCBwYXNzZWQgc3RhdGUgd2FzIGNoYW5nZWQgaW4gc2VydmVyIFBhc3NlZCBzdGF0ZSB3YXNuJ3QgcmV0dXJuZWQgZnJvbSBhdXRoIHNlcnZlciJ9KSxuLmVycm9yP3IubmV3QXV0aEVycih7YXV0aElkOmwsc291cmNlOiJhdXRoIixsZXZlbDoiZXJyb3IiLG1lc3NhZ2U6SlNPTi5zdHJpbmdpZnkobil9KTp0LmF1dGhvcml6ZU9hdXRoMldpdGhQZXJzaXN0T3B0aW9uKHthdXRoOmEsdG9rZW46bn0pfTtmdW5jdGlvbiBhdXRob3JpemVPYXV0aDIoZSl7cmV0dXJue3R5cGU6eWUscGF5bG9hZDplfX1jb25zdCBhdXRob3JpemVPYXV0aDJXaXRoUGVyc2lzdE9wdGlvbj1lPT4oe2F1dGhBY3Rpb25zOnR9KT0+e3QuYXV0aG9yaXplT2F1dGgyKGUpLHQucGVyc2lzdEF1dGhvcml6YXRpb25JZk5lZWRlZCgpfSxhdXRob3JpemVQYXNzd29yZD1lPT4oe2F1dGhBY3Rpb25zOnR9KT0+e2xldHtzY2hlbWE6cixuYW1lOmEsdXNlcm5hbWU6bixwYXNzd29yZDpzLHBhc3N3b3JkVHlwZTpvLGNsaWVudElkOmwsY2xpZW50U2VjcmV0OmN9PWUsaT17Z3JhbnRfdHlwZToicGFzc3dvcmQiLHNjb3BlOmUuc2NvcGVzLmpvaW4oIiAiKSx1c2VybmFtZTpuLHBhc3N3b3JkOnN9LHA9e307c3dpdGNoKG8pe2Nhc2UicmVxdWVzdC1ib2R5IjohZnVuY3Rpb24gc2V0Q2xpZW50SWRBbmRTZWNyZXQoZSx0LHIpe3QmJk9iamVjdC5hc3NpZ24oZSx7Y2xpZW50X2lkOnR9KTtyJiZPYmplY3QuYXNzaWduKGUse2NsaWVudF9zZWNyZXQ6cn0pfShpLGwsYyk7YnJlYWs7Y2FzZSJiYXNpYyI6cC5BdXRob3JpemF0aW9uPSJCYXNpYyAiK2J0b2EobCsiOiIrYyk7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLndhcm4oYFdhcm5pbmc6IGludmFsaWQgcGFzc3dvcmRUeXBlICR7b30gd2FzIHBhc3NlZCwgbm90IGluY2x1ZGluZyBjbGllbnQgaWQgYW5kIHNlY3JldGApfXJldHVybiB0LmF1dGhvcml6ZVJlcXVlc3Qoe2JvZHk6YnVpbGRGb3JtRGF0YShpKSx1cmw6ci5nZXQoInRva2VuVXJsIiksbmFtZTphLGhlYWRlcnM6cCxxdWVyeTp7fSxhdXRoOmV9KX07Y29uc3QgYXV0aG9yaXplQXBwbGljYXRpb249ZT0+KHthdXRoQWN0aW9uczp0fSk9PntsZXR7c2NoZW1hOnIsc2NvcGVzOmEsbmFtZTpuLGNsaWVudElkOnMsY2xpZW50U2VjcmV0Om99PWUsbD17QXV0aG9yaXphdGlvbjoiQmFzaWMgIitidG9hKHMrIjoiK28pfSxjPXtncmFudF90eXBlOiJjbGllbnRfY3JlZGVudGlhbHMiLHNjb3BlOmEuam9pbigiICIpfTtyZXR1cm4gdC5hdXRob3JpemVSZXF1ZXN0KHtib2R5OmJ1aWxkRm9ybURhdGEoYyksbmFtZTpuLHVybDpyLmdldCgidG9rZW5VcmwiKSxhdXRoOmUsaGVhZGVyczpsfSl9LGF1dGhvcml6ZUFjY2Vzc0NvZGVXaXRoRm9ybVBhcmFtcz0oe2F1dGg6ZSxyZWRpcmVjdFVybDp0fSk9Pih7YXV0aEFjdGlvbnM6cn0pPT57bGV0e3NjaGVtYTphLG5hbWU6bixjbGllbnRJZDpzLGNsaWVudFNlY3JldDpvLGNvZGVWZXJpZmllcjpsfT1lLGM9e2dyYW50X3R5cGU6ImF1dGhvcml6YXRpb25fY29kZSIsY29kZTplLmNvZGUsY2xpZW50X2lkOnMsY2xpZW50X3NlY3JldDpvLHJlZGlyZWN0X3VyaTp0LGNvZGVfdmVyaWZpZXI6bH07cmV0dXJuIHIuYXV0aG9yaXplUmVxdWVzdCh7Ym9keTpidWlsZEZvcm1EYXRhKGMpLG5hbWU6bix1cmw6YS5nZXQoInRva2VuVXJsIiksYXV0aDplfSl9LGF1dGhvcml6ZUFjY2Vzc0NvZGVXaXRoQmFzaWNBdXRoZW50aWNhdGlvbj0oe2F1dGg6ZSxyZWRpcmVjdFVybDp0fSk9Pih7YXV0aEFjdGlvbnM6cn0pPT57bGV0e3NjaGVtYTphLG5hbWU6bixjbGllbnRJZDpzLGNsaWVudFNlY3JldDpvLGNvZGVWZXJpZmllcjpsfT1lLGM9e0F1dGhvcml6YXRpb246IkJhc2ljICIrYnRvYShzKyI6IitvKX0saT17Z3JhbnRfdHlwZToiYXV0aG9yaXphdGlvbl9jb2RlIixjb2RlOmUuY29kZSxjbGllbnRfaWQ6cyxyZWRpcmVjdF91cmk6dCxjb2RlX3ZlcmlmaWVyOmx9O3JldHVybiByLmF1dGhvcml6ZVJlcXVlc3Qoe2JvZHk6YnVpbGRGb3JtRGF0YShpKSxuYW1lOm4sdXJsOmEuZ2V0KCJ0b2tlblVybCIpLGF1dGg6ZSxoZWFkZXJzOmN9KX0sYXV0aG9yaXplUmVxdWVzdD1lPT4oe2ZuOnQsZ2V0Q29uZmlnczpyLGF1dGhBY3Rpb25zOmEsZXJyQWN0aW9uczpuLG9hczNTZWxlY3RvcnM6cyxzcGVjU2VsZWN0b3JzOm8sYXV0aFNlbGVjdG9yczpsfSk9PntsZXQgYyx7Ym9keTppLHF1ZXJ5OnA9e30saGVhZGVyczptPXt9LG5hbWU6dSx1cmw6ZCxhdXRoOmh9PWUse2FkZGl0aW9uYWxRdWVyeVN0cmluZ1BhcmFtczpnfT1sLmdldENvbmZpZ3MoKXx8e307aWYoby5pc09BUzMoKSl7bGV0IGU9cy5zZXJ2ZXJFZmZlY3RpdmVWYWx1ZShzLnNlbGVjdGVkU2VydmVyKCkpO2M9dWUoKShkLGUsITApfWVsc2UgYz11ZSgpKGQsby51cmwoKSwhMCk7Im9iamVjdCI9PXR5cGVvZiBnJiYoYy5xdWVyeT1PYmplY3QuYXNzaWduKHt9LGMucXVlcnksZykpO2NvbnN0IHk9Yy50b1N0cmluZygpO2xldCBmPU9iamVjdC5hc3NpZ24oe0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwiWC1SZXF1ZXN0ZWQtV2l0aCI6IlhNTEh0dHBSZXF1ZXN0In0sbSk7dC5mZXRjaCh7dXJsOnksbWV0aG9kOiJwb3N0IixoZWFkZXJzOmYscXVlcnk6cCxib2R5OmkscmVxdWVzdEludGVyY2VwdG9yOnIoKS5yZXF1ZXN0SW50ZXJjZXB0b3IscmVzcG9uc2VJbnRlcmNlcHRvcjpyKCkucmVzcG9uc2VJbnRlcmNlcHRvcn0pLnRoZW4oKGZ1bmN0aW9uKGUpe2xldCB0PUpTT04ucGFyc2UoZS5kYXRhKSxyPXQmJih0LmVycm9yfHwiIikscz10JiYodC5wYXJzZUVycm9yfHwiIik7ZS5vaz9yfHxzP24ubmV3QXV0aEVycih7YXV0aElkOnUsbGV2ZWw6ImVycm9yIixzb3VyY2U6ImF1dGgiLG1lc3NhZ2U6SlNPTi5zdHJpbmdpZnkodCl9KTphLmF1dGhvcml6ZU9hdXRoMldpdGhQZXJzaXN0T3B0aW9uKHthdXRoOmgsdG9rZW46dH0pOm4ubmV3QXV0aEVycih7YXV0aElkOnUsbGV2ZWw6ImVycm9yIixzb3VyY2U6ImF1dGgiLG1lc3NhZ2U6ZS5zdGF0dXNUZXh0fSl9KSkuY2F0Y2goKGU9PntsZXQgdD1uZXcgRXJyb3IoZSkubWVzc2FnZTtpZihlLnJlc3BvbnNlJiZlLnJlc3BvbnNlLmRhdGEpe2NvbnN0IHI9ZS5yZXNwb25zZS5kYXRhO3RyeXtjb25zdCBlPSJzdHJpbmciPT10eXBlb2Ygcj9KU09OLnBhcnNlKHIpOnI7ZS5lcnJvciYmKHQrPWAsIGVycm9yOiAke2UuZXJyb3J9YCksZS5lcnJvcl9kZXNjcmlwdGlvbiYmKHQrPWAsIGRlc2NyaXB0aW9uOiAke2UuZXJyb3JfZGVzY3JpcHRpb259YCl9Y2F0Y2goZSl7fX1uLm5ld0F1dGhFcnIoe2F1dGhJZDp1LGxldmVsOiJlcnJvciIsc291cmNlOiJhdXRoIixtZXNzYWdlOnR9KX0pKX07ZnVuY3Rpb24gY29uZmlndXJlQXV0aChlKXtyZXR1cm57dHlwZTpmZSxwYXlsb2FkOmV9fWZ1bmN0aW9uIHJlc3RvcmVBdXRob3JpemF0aW9uKGUpe3JldHVybnt0eXBlOlNlLHBheWxvYWQ6ZX19Y29uc3QgcGVyc2lzdEF1dGhvcml6YXRpb25JZk5lZWRlZD0oKT0+KHthdXRoU2VsZWN0b3JzOmUsZ2V0Q29uZmlnczp0fSk9PntpZighdCgpLnBlcnNpc3RBdXRob3JpemF0aW9uKXJldHVybjtjb25zdCByPWUuYXV0aG9yaXplZCgpLnRvSlMoKTtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiYXV0aG9yaXplZCIsSlNPTi5zdHJpbmdpZnkocikpfSxhdXRoUG9wdXA9KGUsdCk9PigpPT57Sy5zd2FnZ2VyVUlSZWRpcmVjdE9hdXRoMj10LEsub3BlbihlKX0sRWU9e1tkZV06KGUse3BheWxvYWQ6dH0pPT5lLnNldCgic2hvd0RlZmluaXRpb25zIix0KSxbaGVdOihlLHtwYXlsb2FkOnR9KT0+e2xldCByPSgwLGsuZnJvbUpTKSh0KSxhPWUuZ2V0KCJhdXRob3JpemVkIil8fCgwLGsuTWFwKSgpO3JldHVybiByLmVudHJ5U2VxKCkuZm9yRWFjaCgoKFt0LHJdKT0+e2lmKCFpc0Z1bmMoci5nZXRJbikpcmV0dXJuIGUuc2V0KCJhdXRob3JpemVkIixhKTtsZXQgbj1yLmdldEluKFsic2NoZW1hIiwidHlwZSJdKTtpZigiYXBpS2V5Ij09PW58fCJodHRwIj09PW4pYT1hLnNldCh0LHIpO2Vsc2UgaWYoImJhc2ljIj09PW4pe2xldCBlPXIuZ2V0SW4oWyJ2YWx1ZSIsInVzZXJuYW1lIl0pLG49ci5nZXRJbihbInZhbHVlIiwicGFzc3dvcmQiXSk7YT1hLnNldEluKFt0LCJ2YWx1ZSJdLHt1c2VybmFtZTplLGhlYWRlcjoiQmFzaWMgIitidG9hKGUrIjoiK24pfSksYT1hLnNldEluKFt0LCJzY2hlbWEiXSxyLmdldCgic2NoZW1hIikpfX0pKSxlLnNldCgiYXV0aG9yaXplZCIsYSl9LFt5ZV06KGUse3BheWxvYWQ6dH0pPT57bGV0IHIse2F1dGg6YSx0b2tlbjpufT10O2EudG9rZW49T2JqZWN0LmFzc2lnbih7fSxuKSxyPSgwLGsuZnJvbUpTKShhKTtsZXQgcz1lLmdldCgiYXV0aG9yaXplZCIpfHwoMCxrLk1hcCkoKTtyZXR1cm4gcz1zLnNldChyLmdldCgibmFtZSIpLHIpLGUuc2V0KCJhdXRob3JpemVkIixzKX0sW2dlXTooZSx7cGF5bG9hZDp0fSk9PntsZXQgcj1lLmdldCgiYXV0aG9yaXplZCIpLndpdGhNdXRhdGlvbnMoKGU9Pnt0LmZvckVhY2goKHQ9PntlLmRlbGV0ZSh0KX0pKX0pKTtyZXR1cm4gZS5zZXQoImF1dGhvcml6ZWQiLHIpfSxbZmVdOihlLHtwYXlsb2FkOnR9KT0+ZS5zZXQoImNvbmZpZ3MiLHQpLFtTZV06KGUse3BheWxvYWQ6dH0pPT5lLnNldCgiYXV0aG9yaXplZCIsKDAsay5mcm9tSlMpKHQuYXV0aG9yaXplZCkpfSxfZT1yZXF1aXJlKCJyZXNlbGVjdCIpLHN0YXRlPWU9PmUsdmU9KDAsX2UuY3JlYXRlU2VsZWN0b3IpKHN0YXRlLChlPT5lLmdldCgic2hvd0RlZmluaXRpb25zIikpKSx3ZT0oMCxfZS5jcmVhdGVTZWxlY3Rvcikoc3RhdGUsKCgpPT4oe3NwZWNTZWxlY3RvcnM6ZX0pPT57bGV0IHQ9ZS5zZWN1cml0eURlZmluaXRpb25zKCl8fCgwLGsuTWFwKSh7fSkscj0oMCxrLkxpc3QpKCk7cmV0dXJuIHQuZW50cnlTZXEoKS5mb3JFYWNoKCgoW2UsdF0pPT57bGV0IGE9KDAsay5NYXApKCk7YT1hLnNldChlLHQpLHI9ci5wdXNoKGEpfSkpLHJ9KSksc2VsZWN0QXV0aFBhdGg9KGUsdCk9Pih7c3BlY1NlbGVjdG9yczplfSk9PigwLGsuTGlzdCkoZS5pc09BUzMoKT9bImNvbXBvbmVudHMiLCJzZWN1cml0eVNjaGVtZXMiLHRdOlsic2VjdXJpdHlEZWZpbml0aW9ucyIsdF0pLGdldERlZmluaXRpb25zQnlOYW1lcz0oZSx0KT0+KHtzcGVjU2VsZWN0b3JzOmV9KT0+e2NvbnNvbGUud2FybigiV0FSTklORzogZ2V0RGVmaW5pdGlvbnNCeU5hbWVzIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uLiIpO2xldCByPWUuc2VjdXJpdHlEZWZpbml0aW9ucygpLGE9KDAsay5MaXN0KSgpO3JldHVybiB0LnZhbHVlU2VxKCkuZm9yRWFjaCgoZT0+e2xldCB0PSgwLGsuTWFwKSgpO2UuZW50cnlTZXEoKS5mb3JFYWNoKCgoW2UsYV0pPT57bGV0IG4scz1yLmdldChlKTsib2F1dGgyIj09PXMuZ2V0KCJ0eXBlIikmJmEuc2l6ZSYmKG49cy5nZXQoInNjb3BlcyIpLG4ua2V5U2VxKCkuZm9yRWFjaCgoZT0+e2EuY29udGFpbnMoZSl8fChuPW4uZGVsZXRlKGUpKX0pKSxzPXMuc2V0KCJhbGxvd2VkU2NvcGVzIixuKSksdD10LnNldChlLHMpfSkpLGE9YS5wdXNoKHQpfSkpLGF9LGRlZmluaXRpb25zRm9yUmVxdWlyZW1lbnRzPShlLHQ9KDAsay5MaXN0KSgpKT0+KHthdXRoU2VsZWN0b3JzOmV9KT0+e2NvbnN0IHI9ZS5kZWZpbml0aW9uc1RvQXV0aG9yaXplKCl8fCgwLGsuTGlzdCkoKTtsZXQgYT0oMCxrLkxpc3QpKCk7cmV0dXJuIHIuZm9yRWFjaCgoZT0+e2xldCByPXQuZmluZCgodD0+dC5nZXQoZS5rZXlTZXEoKS5maXJzdCgpKSkpO3ImJihlLmZvckVhY2goKCh0LGEpPT57aWYoIm9hdXRoMiI9PT10LmdldCgidHlwZSIpKXtjb25zdCBuPXIuZ2V0KGEpO2xldCBzPXQuZ2V0KCJzY29wZXMiKTtrLkxpc3QuaXNMaXN0KG4pJiZrLk1hcC5pc01hcChzKSYmKHMua2V5U2VxKCkuZm9yRWFjaCgoZT0+e24uY29udGFpbnMoZSl8fChzPXMuZGVsZXRlKGUpKX0pKSxlPWUuc2V0KGEsdC5zZXQoInNjb3BlcyIscykpKX19KSksYT1hLnB1c2goZSkpfSkpLGF9LGJlPSgwLF9lLmNyZWF0ZVNlbGVjdG9yKShzdGF0ZSwoZT0+ZS5nZXQoImF1dGhvcml6ZWQiKXx8KDAsay5NYXApKCkpKSxpc0F1dGhvcml6ZWQ9KGUsdCk9Pih7YXV0aFNlbGVjdG9yczplfSk9PntsZXQgcj1lLmF1dGhvcml6ZWQoKTtyZXR1cm4gay5MaXN0LmlzTGlzdCh0KT8hIXQudG9KUygpLmZpbHRlcigoZT0+LTE9PT1PYmplY3Qua2V5cyhlKS5tYXAoKGU9PiEhci5nZXQoZSkpKS5pbmRleE9mKCExKSkpLmxlbmd0aDpudWxsfSxDZT0oMCxfZS5jcmVhdGVTZWxlY3Rvcikoc3RhdGUsKGU9PmUuZ2V0KCJjb25maWdzIikpKSxleGVjdXRlPShlLHthdXRoU2VsZWN0b3JzOnQsc3BlY1NlbGVjdG9yczpyfSk9Pih7cGF0aDphLG1ldGhvZDpuLG9wZXJhdGlvbjpzLGV4dHJhczpvfSk9PntsZXQgbD17YXV0aG9yaXplZDp0LmF1dGhvcml6ZWQoKSYmdC5hdXRob3JpemVkKCkudG9KUygpLGRlZmluaXRpb25zOnIuc2VjdXJpdHlEZWZpbml0aW9ucygpJiZyLnNlY3VyaXR5RGVmaW5pdGlvbnMoKS50b0pTKCksc3BlY1NlY3VyaXR5OnIuc2VjdXJpdHkoKSYmci5zZWN1cml0eSgpLnRvSlMoKX07cmV0dXJuIGUoe3BhdGg6YSxtZXRob2Q6bixvcGVyYXRpb246cyxzZWN1cml0aWVzOmwsLi4ub30pfSxsb2FkZWQ9KGUsdCk9PnI9Pntjb25zdHtnZXRDb25maWdzOmEsYXV0aEFjdGlvbnM6bn09dCxzPWEoKTtpZihlKHIpLHMucGVyc2lzdEF1dGhvcml6YXRpb24pe2NvbnN0IGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oImF1dGhvcml6ZWQiKTtlJiZuLnJlc3RvcmVBdXRob3JpemF0aW9uKHthdXRob3JpemVkOkpTT04ucGFyc2UoZSl9KX19LHdyYXBfYWN0aW9uc19hdXRob3JpemU9KGUsdCk9PnI9PntlKHIpO2lmKHQuZ2V0Q29uZmlncygpLnBlcnNpc3RBdXRob3JpemF0aW9uKXRyeXtjb25zdFt7c2NoZW1hOmUsdmFsdWU6dH1dPU9iamVjdC52YWx1ZXMociksYT0iYXBpS2V5Ij09PWUuZ2V0KCJ0eXBlIiksbj0iY29va2llIj09PWUuZ2V0KCJpbiIpO2EmJm4mJihkb2N1bWVudC5jb29raWU9YCR7ZS5nZXQoIm5hbWUiKX09JHt0fTsgU2FtZVNpdGU9Tm9uZTsgU2VjdXJlYCl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcigiRXJyb3IgcGVyc2lzdGluZyBjb29raWUgYmFzZWQgYXBpS2V5IGluIGRvY3VtZW50LmNvb2tpZS4iLGUpfX0sd3JhcF9hY3Rpb25zX2xvZ291dD0oZSx0KT0+cj0+e2NvbnN0IGE9dC5nZXRDb25maWdzKCksbj10LmF1dGhTZWxlY3RvcnMuYXV0aG9yaXplZCgpO3RyeXthLnBlcnNpc3RBdXRob3JpemF0aW9uJiZBcnJheS5pc0FycmF5KHIpJiZyLmZvckVhY2goKGU9Pntjb25zdCB0PW4uZ2V0KGUse30pLHI9ImFwaUtleSI9PT10LmdldEluKFsic2NoZW1hIiwidHlwZSJdKSxhPSJjb29raWUiPT09dC5nZXRJbihbInNjaGVtYSIsImluIl0pO2lmKHImJmEpe2NvbnN0IGU9dC5nZXRJbihbInNjaGVtYSIsIm5hbWUiXSk7ZG9jdW1lbnQuY29va2llPWAke2V9PTsgTWF4LUFnZT0tOTk5OTk5OTlgfX0pKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKCJFcnJvciBkZWxldGluZyBjb29raWUgYmFzZWQgYXBpS2V5IGZyb20gZG9jdW1lbnQuY29va2llLiIsZSl9ZShyKX0seGU9cmVxdWlyZSgicHJvcC10eXBlcyIpO3ZhciBPZT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oeGUpO2NvbnN0IE5lPXJlcXVpcmUoImxvZGFzaC9vbWl0Iik7dmFyIGtlPV9fd2VicGFja19yZXF1aXJlX18ubihOZSk7Y2xhc3MgTG9ja0F1dGhJY29uIGV4dGVuZHMgTygpLkNvbXBvbmVudHttYXBTdGF0ZVRvUHJvcHMoZSx0KXtyZXR1cm57c3RhdGU6ZSxvd25Qcm9wczprZSgpKHQsT2JqZWN0LmtleXModC5nZXRTeXN0ZW0oKSkpfX1yZW5kZXIoKXtjb25zdHtnZXRDb21wb25lbnQ6ZSxvd25Qcm9wczp0fT10aGlzLnByb3BzLHI9ZSgiTG9ja0ljb24iKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQocix0KX19Y29uc3QgQWU9TG9ja0F1dGhJY29uO2NsYXNzIFVubG9ja0F1dGhJY29uIGV4dGVuZHMgTygpLkNvbXBvbmVudHttYXBTdGF0ZVRvUHJvcHMoZSx0KXtyZXR1cm57c3RhdGU6ZSxvd25Qcm9wczprZSgpKHQsT2JqZWN0LmtleXModC5nZXRTeXN0ZW0oKSkpfX1yZW5kZXIoKXtjb25zdHtnZXRDb21wb25lbnQ6ZSxvd25Qcm9wczp0fT10aGlzLnByb3BzLHI9ZSgiVW5sb2NrSWNvbiIpO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudChyLHQpfX1jb25zdCBJZT1VbmxvY2tBdXRoSWNvbjtmdW5jdGlvbiBhdXRoKCl7cmV0dXJue2FmdGVyTG9hZChlKXt0aGlzLnJvb3RJbmplY3RzPXRoaXMucm9vdEluamVjdHN8fHt9LHRoaXMucm9vdEluamVjdHMuaW5pdE9BdXRoPWUuYXV0aEFjdGlvbnMuY29uZmlndXJlQXV0aCx0aGlzLnJvb3RJbmplY3RzLnByZWF1dGhvcml6ZUFwaUtleT1wcmVhdXRob3JpemVBcGlLZXkuYmluZChudWxsLGUpLHRoaXMucm9vdEluamVjdHMucHJlYXV0aG9yaXplQmFzaWM9cHJlYXV0aG9yaXplQmFzaWMuYmluZChudWxsLGUpfSxjb21wb25lbnRzOntMb2NrQXV0aEljb246QWUsVW5sb2NrQXV0aEljb246SWUsTG9ja0F1dGhPcGVyYXRpb25JY29uOkFlLFVubG9ja0F1dGhPcGVyYXRpb25JY29uOkllfSxzdGF0ZVBsdWdpbnM6e2F1dGg6e3JlZHVjZXJzOkVlLGFjdGlvbnM6bixzZWxlY3RvcnM6cyx3cmFwQWN0aW9uczp7YXV0aG9yaXplOndyYXBfYWN0aW9uc19hdXRob3JpemUsbG9nb3V0OndyYXBfYWN0aW9uc19sb2dvdXR9fSxjb25maWdzOnt3cmFwQWN0aW9uczp7bG9hZGVkfX0sc3BlYzp7d3JhcEFjdGlvbnM6e2V4ZWN1dGV9fX19fWZ1bmN0aW9uIHByZWF1dGhvcml6ZUJhc2ljKGUsdCxyLGEpe2NvbnN0e2F1dGhBY3Rpb25zOnthdXRob3JpemU6bn0sc3BlY1NlbGVjdG9yczp7c3BlY0pzb246cyxpc09BUzM6b319PWUsbD1vKCk/WyJjb21wb25lbnRzIiwic2VjdXJpdHlTY2hlbWVzIl06WyJzZWN1cml0eURlZmluaXRpb25zIl0sYz1zKCkuZ2V0SW4oWy4uLmwsdF0pO3JldHVybiBjP24oe1t0XTp7dmFsdWU6e3VzZXJuYW1lOnIscGFzc3dvcmQ6YX0sc2NoZW1hOmMudG9KUygpfX0pOm51bGx9ZnVuY3Rpb24gcHJlYXV0aG9yaXplQXBpS2V5KGUsdCxyKXtjb25zdHthdXRoQWN0aW9uczp7YXV0aG9yaXplOmF9LHNwZWNTZWxlY3RvcnM6e3NwZWNKc29uOm4saXNPQVMzOnN9fT1lLG89cygpP1siY29tcG9uZW50cyIsInNlY3VyaXR5U2NoZW1lcyJdOlsic2VjdXJpdHlEZWZpbml0aW9ucyJdLGw9bigpLmdldEluKFsuLi5vLHRdKTtyZXR1cm4gbD9hKHtbdF06e3ZhbHVlOnIsc2NoZW1hOmwudG9KUygpfX0pOm51bGx9Y29uc3QgamU9cmVxdWlyZSgianMteWFtbCIpO3ZhciBxZT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oamUpO2NvbnN0IFBlPSJjb25maWdzX3VwZGF0ZSIsTWU9ImNvbmZpZ3NfdG9nZ2xlIjtmdW5jdGlvbiB1cGRhdGUoZSx0KXtyZXR1cm57dHlwZTpQZSxwYXlsb2FkOntbZV06dH19fWZ1bmN0aW9uIHRvZ2dsZShlKXtyZXR1cm57dHlwZTpNZSxwYXlsb2FkOmV9fWNvbnN0IGFjdGlvbnNfbG9hZGVkPSgpPT4oKT0+e30sZG93bmxvYWRDb25maWc9ZT0+dD0+e2NvbnN0e2ZuOntmZXRjaDpyfX09dDtyZXR1cm4gcihlKX0sZ2V0Q29uZmlnQnlVcmw9KGUsdCk9PnI9Pntjb25zdHtzcGVjQWN0aW9uczphLGNvbmZpZ3NBY3Rpb25zOm59PXI7aWYoZSlyZXR1cm4gbi5kb3dubG9hZENvbmZpZyhlKS50aGVuKG5leHQsbmV4dCk7ZnVuY3Rpb24gbmV4dChuKXtuIGluc3RhbmNlb2YgRXJyb3J8fG4uc3RhdHVzPj00MDA/KGEudXBkYXRlTG9hZGluZ1N0YXR1cygiZmFpbGVkQ29uZmlnIiksYS51cGRhdGVMb2FkaW5nU3RhdHVzKCJmYWlsZWRDb25maWciKSxhLnVwZGF0ZVVybCgiIiksY29uc29sZS5lcnJvcihuLnN0YXR1c1RleHQrIiAiK2UudXJsKSx0KG51bGwpKTp0KCgoZSx0KT0+e3RyeXtyZXR1cm4gcWUoKS5sb2FkKGUpfWNhdGNoKGUpe3JldHVybiB0JiZ0LmVyckFjdGlvbnMubmV3VGhyb3duRXJyKG5ldyBFcnJvcihlKSkse319fSkobi50ZXh0LHIpKX19LGdldD0oZSx0KT0+ZS5nZXRJbihBcnJheS5pc0FycmF5KHQpP3Q6W3RdKSxUZT17W1BlXTooZSx0KT0+ZS5tZXJnZSgoMCxrLmZyb21KUykodC5wYXlsb2FkKSksW01lXTooZSx0KT0+e2NvbnN0IHI9dC5wYXlsb2FkLGE9ZS5nZXQocik7cmV0dXJuIGUuc2V0KHIsIWEpfX07ZnVuY3Rpb24gY29uZmlnc1BsdWdpbigpe3JldHVybntzdGF0ZVBsdWdpbnM6e2NvbmZpZ3M6e3JlZHVjZXJzOlRlLGFjdGlvbnM6byxzZWxlY3RvcnM6bH19fX1jb25zdCBzZXRIYXNoPWU9PmU/aGlzdG9yeS5wdXNoU3RhdGUobnVsbCxudWxsLGAjJHtlfWApOndpbmRvdy5sb2NhdGlvbi5oYXNoPSIiLFJlPXJlcXVpcmUoInplbnNjcm9sbCIpO3ZhciBKZT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oUmUpO2NvbnN0ICRlPSJsYXlvdXRfc2Nyb2xsX3RvIixWZT0ibGF5b3V0X2NsZWFyX3Njcm9sbCI7Y29uc3QgTGU9e2ZuOntnZXRTY3JvbGxQYXJlbnQ6ZnVuY3Rpb24gZ2V0U2Nyb2xsUGFyZW50KGUsdCl7Y29uc3Qgcj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7bGV0IGE9Z2V0Q29tcHV0ZWRTdHlsZShlKTtjb25zdCBuPSJhYnNvbHV0ZSI9PT1hLnBvc2l0aW9uLHM9dD8vKGF1dG98c2Nyb2xsfGhpZGRlbikvOi8oYXV0b3xzY3JvbGwpLztpZigiZml4ZWQiPT09YS5wb3NpdGlvbilyZXR1cm4gcjtmb3IobGV0IHQ9ZTt0PXQucGFyZW50RWxlbWVudDspaWYoYT1nZXRDb21wdXRlZFN0eWxlKHQpLCghbnx8InN0YXRpYyIhPT1hLnBvc2l0aW9uKSYmcy50ZXN0KGEub3ZlcmZsb3crYS5vdmVyZmxvd1krYS5vdmVyZmxvd1gpKXJldHVybiB0O3JldHVybiByfX0sc3RhdGVQbHVnaW5zOntsYXlvdXQ6e2FjdGlvbnM6e3Njcm9sbFRvRWxlbWVudDooZSx0KT0+cj0+e3RyeXt0PXR8fHIuZm4uZ2V0U2Nyb2xsUGFyZW50KGUpLEplKCkuY3JlYXRlU2Nyb2xsZXIodCkudG8oZSl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX19LHNjcm9sbFRvOmU9Pih7dHlwZTokZSxwYXlsb2FkOkFycmF5LmlzQXJyYXkoZSk/ZTpbZV19KSxjbGVhclNjcm9sbFRvOigpPT4oe3R5cGU6VmV9KSxyZWFkeVRvU2Nyb2xsOihlLHQpPT5yPT57Y29uc3QgYT1yLmxheW91dFNlbGVjdG9ycy5nZXRTY3JvbGxUb0tleSgpO0EoKS5pcyhhLCgwLGsuZnJvbUpTKShlKSkmJihyLmxheW91dEFjdGlvbnMuc2Nyb2xsVG9FbGVtZW50KHQpLHIubGF5b3V0QWN0aW9ucy5jbGVhclNjcm9sbFRvKCkpfSxwYXJzZURlZXBMaW5rSGFzaDplPT4oe2xheW91dEFjdGlvbnM6dCxsYXlvdXRTZWxlY3RvcnM6cixnZXRDb25maWdzOmF9KT0+e2lmKGEoKS5kZWVwTGlua2luZyYmZSl7bGV0IGE9ZS5zbGljZSgxKTsiISI9PT1hWzBdJiYoYT1hLnNsaWNlKDEpKSwiLyI9PT1hWzBdJiYoYT1hLnNsaWNlKDEpKTtjb25zdCBuPWEuc3BsaXQoIi8iKS5tYXAoKGU9PmV8fCIiKSkscz1yLmlzU2hvd25LZXlGcm9tVXJsSGFzaEFycmF5KG4pLFtvLGw9IiIsYz0iIl09cztpZigib3BlcmF0aW9ucyI9PT1vKXtjb25zdCBlPXIuaXNTaG93bktleUZyb21VcmxIYXNoQXJyYXkoW2xdKTtsLmluZGV4T2YoIl8iKT4tMSYmKGNvbnNvbGUud2FybigiV2FybmluZzogZXNjYXBpbmcgZGVlcCBsaW5rIHdoaXRlc3BhY2Ugd2l0aCBgX2Agd2lsbCBiZSB1bnN1cHBvcnRlZCBpbiB2NC4wLCB1c2UgYCUyMGAgaW5zdGVhZC4iKSx0LnNob3coZS5tYXAoKGU9PmUucmVwbGFjZSgvXy9nLCIgIikpKSwhMCkpLHQuc2hvdyhlLCEwKX0obC5pbmRleE9mKCJfIik+LTF8fGMuaW5kZXhPZigiXyIpPi0xKSYmKGNvbnNvbGUud2FybigiV2FybmluZzogZXNjYXBpbmcgZGVlcCBsaW5rIHdoaXRlc3BhY2Ugd2l0aCBgX2Agd2lsbCBiZSB1bnN1cHBvcnRlZCBpbiB2NC4wLCB1c2UgYCUyMGAgaW5zdGVhZC4iKSx0LnNob3cocy5tYXAoKGU9PmUucmVwbGFjZSgvXy9nLCIgIikpKSwhMCkpLHQuc2hvdyhzLCEwKSx0LnNjcm9sbFRvKHMpfX19LHNlbGVjdG9yczp7Z2V0U2Nyb2xsVG9LZXk6ZT0+ZS5nZXQoInNjcm9sbFRvS2V5IiksaXNTaG93bktleUZyb21VcmxIYXNoQXJyYXkoZSx0KXtjb25zdFtyLGFdPXQ7cmV0dXJuIGE/WyJvcGVyYXRpb25zIixyLGFdOnI/WyJvcGVyYXRpb25zLXRhZyIscl06W119LHVybEhhc2hBcnJheUZyb21Jc1Nob3duS2V5KGUsdCl7bGV0W3IsYSxuXT10O3JldHVybiJvcGVyYXRpb25zIj09cj9bYSxuXToib3BlcmF0aW9ucy10YWciPT1yP1thXTpbXX19LHJlZHVjZXJzOntbJGVdOihlLHQpPT5lLnNldCgic2Nyb2xsVG9LZXkiLEEoKS5mcm9tSlModC5wYXlsb2FkKSksW1ZlXTplPT5lLmRlbGV0ZSgic2Nyb2xsVG9LZXkiKX0sd3JhcEFjdGlvbnM6e3Nob3c6KGUse2dldENvbmZpZ3M6dCxsYXlvdXRTZWxlY3RvcnM6cn0pPT4oLi4uYSk9PntpZihlKC4uLmEpLHQoKS5kZWVwTGlua2luZyl0cnl7bGV0W2UsdF09YTtlPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07Y29uc3Qgbj1yLnVybEhhc2hBcnJheUZyb21Jc1Nob3duS2V5KGUpO2lmKCFuLmxlbmd0aClyZXR1cm47Y29uc3RbcyxvXT1uO2lmKCF0KXJldHVybiBzZXRIYXNoKCIvIik7Mj09PW4ubGVuZ3RoP3NldEhhc2goY3JlYXRlRGVlcExpbmtQYXRoKGAvJHtlbmNvZGVVUklDb21wb25lbnQocyl9LyR7ZW5jb2RlVVJJQ29tcG9uZW50KG8pfWApKToxPT09bi5sZW5ndGgmJnNldEhhc2goY3JlYXRlRGVlcExpbmtQYXRoKGAvJHtlbmNvZGVVUklDb21wb25lbnQocyl9YCkpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZSl9fX19fX0sRGU9cmVxdWlyZSgicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyIpO3ZhciBVZT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oRGUpO2NvbnN0IG9wZXJhdGlvbl93cmFwcGVyPShlLHQpPT5jbGFzcyBPcGVyYXRpb25XcmFwcGVyIGV4dGVuZHMgTygpLkNvbXBvbmVudHtvbkxvYWQ9ZT0+e2NvbnN0e29wZXJhdGlvbjpyfT10aGlzLnByb3BzLHt0YWc6YSxvcGVyYXRpb25JZDpufT1yLnRvT2JqZWN0KCk7bGV0e2lzU2hvd25LZXk6c309ci50b09iamVjdCgpO3M9c3x8WyJvcGVyYXRpb25zIixhLG5dLHQubGF5b3V0QWN0aW9ucy5yZWFkeVRvU2Nyb2xsKHMsZSl9O3JlbmRlcigpe3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse3JlZjp0aGlzLm9uTG9hZH0sTygpLmNyZWF0ZUVsZW1lbnQoZSx0aGlzLnByb3BzKSl9fSxvcGVyYXRpb25fdGFnX3dyYXBwZXI9KGUsdCk9PmNsYXNzIE9wZXJhdGlvblRhZ1dyYXBwZXIgZXh0ZW5kcyBPKCkuQ29tcG9uZW50e29uTG9hZD1lPT57Y29uc3R7dGFnOnJ9PXRoaXMucHJvcHMsYT1bIm9wZXJhdGlvbnMtdGFnIixyXTt0LmxheW91dEFjdGlvbnMucmVhZHlUb1Njcm9sbChhLGUpfTtyZW5kZXIoKXtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyZWY6dGhpcy5vbkxvYWR9LE8oKS5jcmVhdGVFbGVtZW50KGUsdGhpcy5wcm9wcykpfX07ZnVuY3Rpb24gZGVlcF9saW5raW5nKCl7cmV0dXJuW0xlLHtzdGF0ZVBsdWdpbnM6e2NvbmZpZ3M6e3dyYXBBY3Rpb25zOntsb2FkZWQ6KGUsdCk9PiguLi5yKT0+e2UoLi4ucik7Y29uc3QgYT1kZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLmhhc2gpO3QubGF5b3V0QWN0aW9ucy5wYXJzZURlZXBMaW5rSGFzaChhKX19fX0sd3JhcENvbXBvbmVudHM6e29wZXJhdGlvbjpvcGVyYXRpb25fd3JhcHBlcixPcGVyYXRpb25UYWc6b3BlcmF0aW9uX3RhZ193cmFwcGVyfX1dfWNvbnN0IEtlPXJlcXVpcmUoImxvZGFzaC9yZWR1Y2UiKTt2YXIgemU9X193ZWJwYWNrX3JlcXVpcmVfXy5uKEtlKTtmdW5jdGlvbiB0cmFuc2Zvcm0oZSl7cmV0dXJuIGUubWFwKChlPT57bGV0IHQ9ImlzIG5vdCBvZiBhIHR5cGUocykiLHI9ZS5nZXQoIm1lc3NhZ2UiKS5pbmRleE9mKHQpO2lmKHI+LTEpe2xldCB0PWUuZ2V0KCJtZXNzYWdlIikuc2xpY2UocisxOSkuc3BsaXQoIiwiKTtyZXR1cm4gZS5zZXQoIm1lc3NhZ2UiLGUuZ2V0KCJtZXNzYWdlIikuc2xpY2UoMCxyKStmdW5jdGlvbiBtYWtlTmV3TWVzc2FnZShlKXtyZXR1cm4gZS5yZWR1Y2UoKChlLHQscixhKT0+cj09PWEubGVuZ3RoLTEmJmEubGVuZ3RoPjE/ZSsib3IgIit0OmFbcisxXSYmYS5sZW5ndGg+Mj9lK3QrIiwgIjphW3IrMV0/ZSt0KyIgIjplK3QpLCJzaG91bGQgYmUgYSIpfSh0KSl9cmV0dXJuIGV9KSl9Y29uc3QgQmU9cmVxdWlyZSgibG9kYXNoL2dldCIpO3ZhciBGZT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oQmUpO2Z1bmN0aW9uIHBhcmFtZXRlcl9vbmVvZl90cmFuc2Zvcm0oZSx7anNTcGVjOnR9KXtyZXR1cm4gZX1jb25zdCBXZT1bYyxpXTtmdW5jdGlvbiB0cmFuc2Zvcm1FcnJvcnMoZSl7bGV0IHQ9e2pzU3BlYzp7fX0scj16ZSgpKFdlLCgoZSxyKT0+e3RyeXtyZXR1cm4gci50cmFuc2Zvcm0oZSx0KS5maWx0ZXIoKGU9PiEhZSkpfWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJUcmFuc2Zvcm1lciBlcnJvcjoiLHQpLGV9fSksZSk7cmV0dXJuIHIuZmlsdGVyKChlPT4hIWUpKS5tYXAoKGU9PighZS5nZXQoImxpbmUiKSYmZS5nZXQoInBhdGgiKSxlKSkpfWxldCBIZT17bGluZTowLGxldmVsOiJlcnJvciIsbWVzc2FnZToiVW5rbm93biBlcnJvciJ9O2NvbnN0IFhlPSgwLF9lLmNyZWF0ZVNlbGVjdG9yKSgoZT0+ZSksKGU9PmUuZ2V0KCJlcnJvcnMiLCgwLGsuTGlzdCkoKSkpKSxHZT0oMCxfZS5jcmVhdGVTZWxlY3RvcikoWGUsKGU9PmUubGFzdCgpKSk7ZnVuY3Rpb24gZXJyKGUpe3JldHVybntzdGF0ZVBsdWdpbnM6e2Vycjp7cmVkdWNlcnM6e1tSXTooZSx7cGF5bG9hZDp0fSk9PntsZXQgcj1PYmplY3QuYXNzaWduKEhlLHQse3R5cGU6InRocm93biJ9KTtyZXR1cm4gZS51cGRhdGUoImVycm9ycyIsKGU9PihlfHwoMCxrLkxpc3QpKCkpLnB1c2goKDAsay5mcm9tSlMpKHIpKSkpLnVwZGF0ZSgiZXJyb3JzIiwoZT0+dHJhbnNmb3JtRXJyb3JzKGUpKSl9LFtKXTooZSx7cGF5bG9hZDp0fSk9Pih0PXQubWFwKChlPT4oMCxrLmZyb21KUykoT2JqZWN0LmFzc2lnbihIZSxlLHt0eXBlOiJ0aHJvd24ifSkpKSksZS51cGRhdGUoImVycm9ycyIsKGU9PihlfHwoMCxrLkxpc3QpKCkpLmNvbmNhdCgoMCxrLmZyb21KUykodCkpKSkudXBkYXRlKCJlcnJvcnMiLChlPT50cmFuc2Zvcm1FcnJvcnMoZSkpKSksWyRdOihlLHtwYXlsb2FkOnR9KT0+e2xldCByPSgwLGsuZnJvbUpTKSh0KTtyZXR1cm4gcj1yLnNldCgidHlwZSIsInNwZWMiKSxlLnVwZGF0ZSgiZXJyb3JzIiwoZT0+KGV8fCgwLGsuTGlzdCkoKSkucHVzaCgoMCxrLmZyb21KUykocikpLnNvcnRCeSgoZT0+ZS5nZXQoImxpbmUiKSkpKSkudXBkYXRlKCJlcnJvcnMiLChlPT50cmFuc2Zvcm1FcnJvcnMoZSkpKX0sW1ZdOihlLHtwYXlsb2FkOnR9KT0+KHQ9dC5tYXAoKGU9PigwLGsuZnJvbUpTKShPYmplY3QuYXNzaWduKEhlLGUse3R5cGU6InNwZWMifSkpKSksZS51cGRhdGUoImVycm9ycyIsKGU9PihlfHwoMCxrLkxpc3QpKCkpLmNvbmNhdCgoMCxrLmZyb21KUykodCkpKSkudXBkYXRlKCJlcnJvcnMiLChlPT50cmFuc2Zvcm1FcnJvcnMoZSkpKSksW0xdOihlLHtwYXlsb2FkOnR9KT0+e2xldCByPSgwLGsuZnJvbUpTKShPYmplY3QuYXNzaWduKHt9LHQpKTtyZXR1cm4gcj1yLnNldCgidHlwZSIsImF1dGgiKSxlLnVwZGF0ZSgiZXJyb3JzIiwoZT0+KGV8fCgwLGsuTGlzdCkoKSkucHVzaCgoMCxrLmZyb21KUykocikpKSkudXBkYXRlKCJlcnJvcnMiLChlPT50cmFuc2Zvcm1FcnJvcnMoZSkpKX0sW0RdOihlLHtwYXlsb2FkOnR9KT0+e2lmKCF0fHwhZS5nZXQoImVycm9ycyIpKXJldHVybiBlO2xldCByPWUuZ2V0KCJlcnJvcnMiKS5maWx0ZXIoKGU9PmUua2V5U2VxKCkuZXZlcnkoKHI9Pntjb25zdCBhPWUuZ2V0KHIpLG49dFtyXTtyZXR1cm4hbnx8YSE9PW59KSkpKTtyZXR1cm4gZS5tZXJnZSh7ZXJyb3JzOnJ9KX0sW1VdOihlLHtwYXlsb2FkOnR9KT0+e2lmKCF0fHwiZnVuY3Rpb24iIT10eXBlb2YgdClyZXR1cm4gZTtsZXQgcj1lLmdldCgiZXJyb3JzIikuZmlsdGVyKChlPT50KGUpKSk7cmV0dXJuIGUubWVyZ2Uoe2Vycm9yczpyfSl9fSxhY3Rpb25zOmEsc2VsZWN0b3JzOnB9fX19ZnVuY3Rpb24gb3BzRmlsdGVyKGUsdCl7cmV0dXJuIGUuZmlsdGVyKCgoZSxyKT0+LTEhPT1yLmluZGV4T2YodCkpKX1mdW5jdGlvbiBmaWx0ZXIoKXtyZXR1cm57Zm46e29wc0ZpbHRlcn19fWNvbnN0IFllPXJlcXVpcmUoIkBiYWJlbC9ydW50aW1lLWNvcmVqczMvaGVscGVycy9leHRlbmRzIik7dmFyIFFlPV9fd2VicGFja19yZXF1aXJlX18ubihZZSk7Y29uc3QgYXJyb3dfdXA9KHtjbGFzc05hbWU6ZT1udWxsLHdpZHRoOnQ9MjAsaGVpZ2h0OnI9MjAsLi4uYX0pPT5PKCkuY3JlYXRlRWxlbWVudCgic3ZnIixRZSgpKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHZpZXdCb3g6IjAgMCAyMCAyMCIsY2xhc3NOYW1lOmUsd2lkdGg6dCxoZWlnaHQ6ciwiYXJpYS1oaWRkZW4iOiJ0cnVlIixmb2N1c2FibGU6ImZhbHNlIn0sYSksTygpLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNIDE3LjQxOCAxNC45MDggQyAxNy42OSAxNS4xNzYgMTguMTI3IDE1LjE3NiAxOC4zOTcgMTQuOTA4IEMgMTguNjY3IDE0LjY0IDE4LjY2OCAxNC4yMDcgMTguMzk3IDEzLjkzOSBMIDEwLjQ4OSA2LjEwOSBDIDEwLjIxOSA1Ljg0MSA5Ljc4MiA1Ljg0MSA5LjUxIDYuMTA5IEwgMS42MDIgMTMuOTM5IEMgMS4zMzIgMTQuMjA3IDEuMzMyIDE0LjY0IDEuNjAyIDE0LjkwOCBDIDEuODczIDE1LjE3NiAyLjMxMSAxNS4xNzYgMi41ODEgMTQuOTA4IEwgMTAgNy43NjcgTCAxNy40MTggMTQuOTA4IFoifSkpLGFycm93X2Rvd249KHtjbGFzc05hbWU6ZT1udWxsLHdpZHRoOnQ9MjAsaGVpZ2h0OnI9MjAsLi4uYX0pPT5PKCkuY3JlYXRlRWxlbWVudCgic3ZnIixRZSgpKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHZpZXdCb3g6IjAgMCAyMCAyMCIsY2xhc3NOYW1lOmUsd2lkdGg6dCxoZWlnaHQ6ciwiYXJpYS1oaWRkZW4iOiJ0cnVlIixmb2N1c2FibGU6ImZhbHNlIn0sYSksTygpLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTcuNDE4IDYuMTA5Yy4yNzItLjI2OC43MDktLjI2OC45NzkgMHMuMjcxLjcwMSAwIC45NjlsLTcuOTA4IDcuODNjLS4yNy4yNjgtLjcwNy4yNjgtLjk3OSAwbC03LjkwOC03LjgzYy0uMjctLjI2OC0uMjctLjcwMSAwLS45NjkuMjcxLS4yNjguNzA5LS4yNjguOTc5IDBMMTAgMTMuMjVsNy40MTgtNy4xNDF6In0pKSxhcnJvdz0oe2NsYXNzTmFtZTplPW51bGwsd2lkdGg6dD0yMCxoZWlnaHQ6cj0yMCwuLi5hfSk9Pk8oKS5jcmVhdGVFbGVtZW50KCJzdmciLFFlKCkoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdmlld0JveDoiMCAwIDIwIDIwIixjbGFzc05hbWU6ZSx3aWR0aDp0LGhlaWdodDpyLCJhcmlhLWhpZGRlbiI6InRydWUiLGZvY3VzYWJsZToiZmFsc2UifSxhKSxPKCkuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMy4yNSAxMEw2LjEwOSAyLjU4Yy0uMjY4LS4yNy0uMjY4LS43MDcgMC0uOTc5LjI2OC0uMjcuNzAxLS4yNy45NjkgMGw3LjgzIDcuOTA4Yy4yNjguMjcxLjI2OC43MDkgMCAuOTc5bC03LjgzIDcuOTA4Yy0uMjY4LjI3MS0uNzAxLjI3LS45NjkgMC0uMjY4LS4yNjktLjI2OC0uNzA3IDAtLjk3OUwxMy4yNSAxMHoifSkpLGNvbXBvbmVudHNfY2xvc2U9KHtjbGFzc05hbWU6ZT1udWxsLHdpZHRoOnQ9MjAsaGVpZ2h0OnI9MjAsLi4uYX0pPT5PKCkuY3JlYXRlRWxlbWVudCgic3ZnIixRZSgpKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHZpZXdCb3g6IjAgMCAyMCAyMCIsY2xhc3NOYW1lOmUsd2lkdGg6dCxoZWlnaHQ6ciwiYXJpYS1oaWRkZW4iOiJ0cnVlIixmb2N1c2FibGU6ImZhbHNlIn0sYSksTygpLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTQuMzQ4IDE0Ljg0OWMtLjQ2OS40NjktMS4yMjkuNDY5LTEuNjk3IDBMMTAgMTEuODE5bC0yLjY1MSAzLjAyOWMtLjQ2OS40NjktMS4yMjkuNDY5LTEuNjk3IDAtLjQ2OS0uNDY5LS40NjktMS4yMjkgMC0xLjY5N2wyLjc1OC0zLjE1LTIuNzU5LTMuMTUyYy0uNDY5LS40NjktLjQ2OS0xLjIyOCAwLTEuNjk3LjQ2OS0uNDY5IDEuMjI4LS40NjkgMS42OTcgMEwxMCA4LjE4M2wyLjY1MS0zLjAzMWMuNDY5LS40NjkgMS4yMjgtLjQ2OSAxLjY5NyAwIC40NjkuNDY5LjQ2OSAxLjIyOSAwIDEuNjk3bC0yLjc1OCAzLjE1MiAyLjc1OCAzLjE1Yy40NjkuNDY5LjQ2OSAxLjIyOSAwIDEuNjk4eiJ9KSksY29weT0oe2NsYXNzTmFtZTplPW51bGwsd2lkdGg6dD0xNSxoZWlnaHQ6cj0xNiwuLi5hfSk9Pk8oKS5jcmVhdGVFbGVtZW50KCJzdmciLFFlKCkoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdmlld0JveDoiMCAwIDE1IDE2IixjbGFzc05hbWU6ZSx3aWR0aDp0LGhlaWdodDpyLCJhcmlhLWhpZGRlbiI6InRydWUiLGZvY3VzYWJsZToiZmFsc2UifSxhKSxPKCkuY3JlYXRlRWxlbWVudCgiZyIse3RyYW5zZm9ybToidHJhbnNsYXRlKDIsIC0xKSJ9LE8oKS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiI2ZmZmZmZiIsZmlsbFJ1bGU6ImV2ZW5vZGQiLGQ6Ik0yIDEzaDR2MUgydi0xem01LTZIMnYxaDVWN3ptMiAzVjhsLTMgMyAzIDN2LTJoNXYtMkg5ek00LjUgOUgydjFoMi41Vjl6TTIgMTJoMi41di0xSDJ2MXptOSAxaDF2MmMtLjAyLjI4LS4xMS41Mi0uMy43LS4xOS4xOC0uNDIuMjgtLjcuM0gxYy0uNTUgMC0xLS40NS0xLTFWNGMwLS41NS40NS0xIDEtMWgzYzAtMS4xMS44OS0yIDItMiAxLjExIDAgMiAuODkgMiAyaDNjLjU1IDAgMSAuNDUgMSAxdjVoLTFWNkgxdjloMTB2LTJ6TTIgNWg4YzAtLjU1LS40NS0xLTEtMUg4Yy0uNTUgMC0xLS40NS0xLTFzLS40NS0xLTEtMS0xIC40NS0xIDEtLjQ1IDEtMSAxSDNjLS41NSAwLTEgLjQ1LTEgMXoifSkpKSxsb2NrPSh7Y2xhc3NOYW1lOmU9bnVsbCx3aWR0aDp0PTIwLGhlaWdodDpyPTIwLC4uLmF9KT0+TygpLmNyZWF0ZUVsZW1lbnQoInN2ZyIsUWUoKSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix2aWV3Qm94OiIwIDAgMjAgMjAiLGNsYXNzTmFtZTplLHdpZHRoOnQsaGVpZ2h0OnIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsZm9jdXNhYmxlOiJmYWxzZSJ9LGEpLE8oKS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE1LjggOEgxNFY1LjZDMTQgMi43MDMgMTIuNjY1IDEgMTAgMSA3LjMzNCAxIDYgMi43MDMgNiA1LjZWOEg0Yy0uNTUzIDAtMSAuNjQ2LTEgMS4xOTlWMTdjMCAuNTQ5LjQyOCAxLjEzOS45NTEgMS4zMDdsMS4xOTcuMzg3QzUuNjcyIDE4Ljg2MSA2LjU1IDE5IDcuMSAxOWg1LjhjLjU0OSAwIDEuNDI4LS4xMzkgMS45NTEtLjMwN2wxLjE5Ni0uMzg3Yy41MjQtLjE2Ny45NTMtLjc1Ny45NTMtMS4zMDZWOS4xOTlDMTcgOC42NDYgMTYuMzUyIDggMTUuOCA4ek0xMiA4SDhWNS4xOTlDOCAzLjc1NCA4Ljc5NyAzIDEwIDNjMS4yMDMgMCAyIC43NTQgMiAyLjE5OVY4eiJ9KSksdW5sb2NrPSh7Y2xhc3NOYW1lOmU9bnVsbCx3aWR0aDp0PTIwLGhlaWdodDpyPTIwLC4uLmF9KT0+TygpLmNyZWF0ZUVsZW1lbnQoInN2ZyIsUWUoKSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix2aWV3Qm94OiIwIDAgMjAgMjAiLGNsYXNzTmFtZTplLHdpZHRoOnQsaGVpZ2h0OnIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsZm9jdXNhYmxlOiJmYWxzZSJ9LGEpLE8oKS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE1LjggOEgxNFY1LjZDMTQgMi43MDMgMTIuNjY1IDEgMTAgMSA3LjMzNCAxIDYgMi43MDMgNiA1LjZWNmgydi0uODAxQzggMy43NTQgOC43OTcgMyAxMCAzYzEuMjAzIDAgMiAuNzU0IDIgMi4xOTlWOEg0Yy0uNTUzIDAtMSAuNjQ2LTEgMS4xOTlWMTdjMCAuNTQ5LjQyOCAxLjEzOS45NTEgMS4zMDdsMS4xOTcuMzg3QzUuNjcyIDE4Ljg2MSA2LjU1IDE5IDcuMSAxOWg1LjhjLjU0OSAwIDEuNDI4LS4xMzkgMS45NTEtLjMwN2wxLjE5Ni0uMzg3Yy41MjQtLjE2Ny45NTMtLjc1Ny45NTMtMS4zMDZWOS4xOTlDMTcgOC42NDYgMTYuMzUyIDggMTUuOCA4eiJ9KSksaWNvbnM9KCk9Pih7Y29tcG9uZW50czp7QXJyb3dVcEljb246YXJyb3dfdXAsQXJyb3dEb3duSWNvbjphcnJvd19kb3duLEFycm93SWNvbjphcnJvdyxDbG9zZUljb246Y29tcG9uZW50c19jbG9zZSxDb3B5SWNvbjpjb3B5LExvY2tJY29uOmxvY2ssVW5sb2NrSWNvbjp1bmxvY2t9fSksWmU9ImxheW91dF91cGRhdGVfbGF5b3V0IixldD0ibGF5b3V0X3VwZGF0ZV9maWx0ZXIiLHR0PSJsYXlvdXRfdXBkYXRlX21vZGUiLHJ0PSJsYXlvdXRfc2hvdyI7ZnVuY3Rpb24gdXBkYXRlTGF5b3V0KGUpe3JldHVybnt0eXBlOlplLHBheWxvYWQ6ZX19ZnVuY3Rpb24gdXBkYXRlRmlsdGVyKGUpe3JldHVybnt0eXBlOmV0LHBheWxvYWQ6ZX19ZnVuY3Rpb24gYWN0aW9uc19zaG93KGUsdD0hMCl7cmV0dXJuIGU9bm9ybWFsaXplQXJyYXkoZSkse3R5cGU6cnQscGF5bG9hZDp7dGhpbmc6ZSxzaG93bjp0fX19ZnVuY3Rpb24gY2hhbmdlTW9kZShlLHQ9IiIpe3JldHVybiBlPW5vcm1hbGl6ZUFycmF5KGUpLHt0eXBlOnR0LHBheWxvYWQ6e3RoaW5nOmUsbW9kZTp0fX19Y29uc3QgYXQ9e1taZV06KGUsdCk9PmUuc2V0KCJsYXlvdXQiLHQucGF5bG9hZCksW2V0XTooZSx0KT0+ZS5zZXQoImZpbHRlciIsdC5wYXlsb2FkKSxbcnRdOihlLHQpPT57Y29uc3Qgcj10LnBheWxvYWQuc2hvd24sYT0oMCxrLmZyb21KUykodC5wYXlsb2FkLnRoaW5nKTtyZXR1cm4gZS51cGRhdGUoInNob3duIiwoMCxrLmZyb21KUykoe30pLChlPT5lLnNldChhLHIpKSl9LFt0dF06KGUsdCk9PntsZXQgcj10LnBheWxvYWQudGhpbmcsYT10LnBheWxvYWQubW9kZTtyZXR1cm4gZS5zZXRJbihbIm1vZGVzIl0uY29uY2F0KHIpLChhfHwiIikrIiIpfX0sY3VycmVudD1lPT5lLmdldCgibGF5b3V0IiksY3VycmVudEZpbHRlcj1lPT5lLmdldCgiZmlsdGVyIiksaXNTaG93bj0oZSx0LHIpPT4odD1ub3JtYWxpemVBcnJheSh0KSxlLmdldCgic2hvd24iLCgwLGsuZnJvbUpTKSh7fSkpLmdldCgoMCxrLmZyb21KUykodCkscikpLHdoYXRNb2RlPShlLHQscj0iIik9Pih0PW5vcm1hbGl6ZUFycmF5KHQpLGUuZ2V0SW4oWyJtb2RlcyIsLi4udF0scikpLG50PSgwLF9lLmNyZWF0ZVNlbGVjdG9yKSgoZT0+ZSksKGU9PiFpc1Nob3duKGUsImVkaXRvciIpKSksdGFnZ2VkT3BlcmF0aW9ucz0oZSx0KT0+KHIsLi4uYSk9PntsZXQgbj1lKHIsLi4uYSk7Y29uc3R7Zm46cyxsYXlvdXRTZWxlY3RvcnM6byxnZXRDb25maWdzOmx9PXQuZ2V0U3lzdGVtKCksYz1sKCkse21heERpc3BsYXllZFRhZ3M6aX09YztsZXQgcD1vLmN1cnJlbnRGaWx0ZXIoKTtyZXR1cm4gcCYmITAhPT1wJiYobj1zLm9wc0ZpbHRlcihuLHApKSxpPj0wJiYobj1uLnNsaWNlKDAsaSkpLG59O2Z1bmN0aW9uIHBsdWdpbnNfbGF5b3V0KCl7cmV0dXJue3N0YXRlUGx1Z2luczp7bGF5b3V0OntyZWR1Y2VyczphdCxhY3Rpb25zOm0sc2VsZWN0b3JzOnV9LHNwZWM6e3dyYXBTZWxlY3RvcnM6ZH19fX1mdW5jdGlvbiBsb2dzKHtjb25maWdzOmV9KXtjb25zdCB0PXtkZWJ1ZzowLGluZm86MSxsb2c6Mix3YXJuOjMsZXJyb3I6NH0sZ2V0TGV2ZWw9ZT0+dFtlXXx8LTE7bGV0e2xvZ0xldmVsOnJ9PWUsYT1nZXRMZXZlbChyKTtmdW5jdGlvbiBsb2coZSwuLi50KXtnZXRMZXZlbChlKT49YSYmY29uc29sZVtlXSguLi50KX1yZXR1cm4gbG9nLndhcm49bG9nLmJpbmQobnVsbCwid2FybiIpLGxvZy5lcnJvcj1sb2cuYmluZChudWxsLCJlcnJvciIpLGxvZy5pbmZvPWxvZy5iaW5kKG51bGwsImluZm8iKSxsb2cuZGVidWc9bG9nLmJpbmQobnVsbCwiZGVidWciKSx7cm9vdEluamVjdHM6e2xvZ319fWxldCBzdD0hMTtmdW5jdGlvbiBvbl9jb21wbGV0ZSgpe3JldHVybntzdGF0ZVBsdWdpbnM6e3NwZWM6e3dyYXBBY3Rpb25zOnt1cGRhdGVTcGVjOmU9PiguLi50KT0+KHN0PSEwLGUoLi4udCkpLHVwZGF0ZUpzb25TcGVjOihlLHQpPT4oLi4ucik9Pntjb25zdCBhPXQuZ2V0Q29uZmlncygpLm9uQ29tcGxldGU7cmV0dXJuIHN0JiYiZnVuY3Rpb24iPT10eXBlb2YgYSYmKHNldFRpbWVvdXQoYSwwKSxzdD0hMSksZSguLi5yKX19fX19fWNvbnN0IGV4dHJhY3RLZXk9ZT0+e2NvbnN0IHQ9Il8qKltdIjtyZXR1cm4gZS5pbmRleE9mKHQpPDA/ZTplLnNwbGl0KHQpWzBdLnRyaW0oKX0sZXNjYXBlU2hlbGw9ZT0+Ii1kICI9PT1lfHwvXltfXC8tXS9nLnRlc3QoZSk/ZToiJyIrZS5yZXBsYWNlKC8nL2csIidcXCcnIikrIiciLGVzY2FwZUNNRD1lPT4iLWQgIj09PShlPWUucmVwbGFjZSgvXF4vZywiXl4iKS5yZXBsYWNlKC9cXCIvZywnXFxcXCInKS5yZXBsYWNlKC8iL2csJyIiJykucmVwbGFjZSgvXG4vZywiXlxuIikpP2UucmVwbGFjZSgvLWQgL2csIi1kIF5cbiIpOi9eW19cLy1dL2cudGVzdChlKT9lOiciJytlKyciJyxlc2NhcGVQb3dlcnNoZWxsPWU9PntpZigiLWQgIj09PWUpcmV0dXJuIGU7aWYoL1xuLy50ZXN0KGUpKXtyZXR1cm5gQCJcbiR7ZS5yZXBsYWNlKC9gL2csImBgIikucmVwbGFjZSgvXCQvZywiYCQiKX1cbiJAYH1pZighL15bX1wvLV0vLnRlc3QoZSkpe3JldHVybmAnJHtlLnJlcGxhY2UoLycvZywiJyciKX0nYH1yZXR1cm4gZX07Y29uc3QgY3VybGlmeT0oZSx0LHIsYT0iIik9PntsZXQgbj0hMSxzPSIiO2NvbnN0IGFkZFdvcmRzPSguLi5lKT0+cys9IiAiK2UubWFwKHQpLmpvaW4oIiAiKSxhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2U9KC4uLmUpPT5zKz1lLm1hcCh0KS5qb2luKCIgIiksYWRkTmV3TGluZT0oKT0+cys9YCAke3J9YCxhZGRJbmRlbnQ9KGU9MSk9PnMrPSIgICIucmVwZWF0KGUpO2xldCBvPWUuZ2V0KCJoZWFkZXJzIik7cys9ImN1cmwiK2E7Y29uc3QgbD1lLmdldCgiY3VybE9wdGlvbnMiKTtpZihrLkxpc3QuaXNMaXN0KGwpJiYhbC5pc0VtcHR5KCkmJmFkZFdvcmRzKC4uLmUuZ2V0KCJjdXJsT3B0aW9ucyIpKSxhZGRXb3JkcygiLVgiLGUuZ2V0KCJtZXRob2QiKSksYWRkTmV3TGluZSgpLGFkZEluZGVudCgpLGFkZFdvcmRzV2l0aG91dExlYWRpbmdTcGFjZShgJHtlLmdldCgidXJsIil9YCksbyYmby5zaXplKWZvcihsZXQgdCBvZiBlLmdldCgiaGVhZGVycyIpLmVudHJpZXMoKSl7YWRkTmV3TGluZSgpLGFkZEluZGVudCgpO2xldFtlLHJdPXQ7YWRkV29yZHNXaXRob3V0TGVhZGluZ1NwYWNlKCItSCIsYCR7ZX06ICR7cn1gKSxuPW58fC9eY29udGVudC10eXBlJC9pLnRlc3QoZSkmJi9ebXVsdGlwYXJ0XC9mb3JtLWRhdGEkL2kudGVzdChyKX1jb25zdCBjPWUuZ2V0KCJib2R5Iik7aWYoYylpZihuJiZbIlBPU1QiLCJQVVQiLCJQQVRDSCJdLmluY2x1ZGVzKGUuZ2V0KCJtZXRob2QiKSkpZm9yKGxldFtlLHRdb2YgYy5lbnRyeVNlcSgpKXtsZXQgcj1leHRyYWN0S2V5KGUpO2FkZE5ld0xpbmUoKSxhZGRJbmRlbnQoKSxhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2UoIi1GIiksdCBpbnN0YW5jZW9mIEsuRmlsZSYmInN0cmluZyI9PXR5cGVvZiB0LnZhbHVlT2YoKT9hZGRXb3JkcyhgJHtyfT0ke3QuZGF0YX0ke3QudHlwZT9gO3R5cGU9JHt0LnR5cGV9YDoiIn1gKTp0IGluc3RhbmNlb2YgSy5GaWxlP2FkZFdvcmRzKGAke3J9PUAke3QubmFtZX0ke3QudHlwZT9gO3R5cGU9JHt0LnR5cGV9YDoiIn1gKTphZGRXb3JkcyhgJHtyfT0ke3R9YCl9ZWxzZSBpZihjIGluc3RhbmNlb2YgSy5GaWxlKWFkZE5ld0xpbmUoKSxhZGRJbmRlbnQoKSxhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2UoYC0tZGF0YS1iaW5hcnkgJ0Ake2MubmFtZX0nYCk7ZWxzZXthZGROZXdMaW5lKCksYWRkSW5kZW50KCksYWRkV29yZHNXaXRob3V0TGVhZGluZ1NwYWNlKCItZCAiKTtsZXQgdD1jO2suTWFwLmlzTWFwKHQpP2FkZFdvcmRzV2l0aG91dExlYWRpbmdTcGFjZShmdW5jdGlvbiBnZXRTdHJpbmdCb2R5T2ZNYXAoZSl7bGV0IHQ9W107Zm9yKGxldFtyLGFdb2YgZS5nZXQoImJvZHkiKS5lbnRyeVNlcSgpKXtsZXQgZT1leHRyYWN0S2V5KHIpO2EgaW5zdGFuY2VvZiBLLkZpbGU/dC5wdXNoKGAgICIke2V9Ijoge1xuICAgICJuYW1lIjogIiR7YS5uYW1lfSIke2EudHlwZT9gLFxuICAgICJ0eXBlIjogIiR7YS50eXBlfSJgOiIifVxuICB9YCk6dC5wdXNoKGAgICIke2V9IjogJHtKU09OLnN0cmluZ2lmeShhLG51bGwsMikucmVwbGFjZSgvKFxyXG58XHJ8XG4pL2csIlxuICAiKX1gKX1yZXR1cm5ge1xuJHt0LmpvaW4oIixcbiIpfVxufWB9KGUpKTooInN0cmluZyIhPXR5cGVvZiB0JiYodD1KU09OLnN0cmluZ2lmeSh0KSksYWRkV29yZHNXaXRob3V0TGVhZGluZ1NwYWNlKHQpKX1lbHNlIGN8fCJQT1NUIiE9PWUuZ2V0KCJtZXRob2QiKXx8KGFkZE5ld0xpbmUoKSxhZGRJbmRlbnQoKSxhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2UoIi1kICcnIikpO3JldHVybiBzfSxyZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX3Bvd2Vyc2hlbGw9ZT0+Y3VybGlmeShlLGVzY2FwZVBvd2Vyc2hlbGwsImBcbiIsIi5leGUiKSxyZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX2Jhc2g9ZT0+Y3VybGlmeShlLGVzY2FwZVNoZWxsLCJcXFxuIikscmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfY3VybF9jbWQ9ZT0+Y3VybGlmeShlLGVzY2FwZUNNRCwiXlxuIikscmVxdWVzdF9zbmlwcGV0c19zZWxlY3RvcnNfc3RhdGU9ZT0+ZXx8KDAsay5NYXApKCksb3Q9KDAsX2UuY3JlYXRlU2VsZWN0b3IpKHJlcXVlc3Rfc25pcHBldHNfc2VsZWN0b3JzX3N0YXRlLChlPT57Y29uc3QgdD1lLmdldCgibGFuZ3VhZ2VzIikscj1lLmdldCgiZ2VuZXJhdG9ycyIsKDAsay5NYXApKCkpO3JldHVybiF0fHx0LmlzRW1wdHkoKT9yOnIuZmlsdGVyKCgoZSxyKT0+dC5pbmNsdWRlcyhyKSkpfSkpLGdldFNuaXBwZXRHZW5lcmF0b3JzPWU9Pih7Zm46dH0pPT5vdChlKS5tYXAoKChlLHIpPT57Y29uc3QgYT0oZT0+dFtgcmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfJHtlfWBdKShyKTtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgYT9udWxsOmUuc2V0KCJmbiIsYSl9KSkuZmlsdGVyKChlPT5lKSksbHQ9KDAsX2UuY3JlYXRlU2VsZWN0b3IpKHJlcXVlc3Rfc25pcHBldHNfc2VsZWN0b3JzX3N0YXRlLChlPT5lLmdldCgiYWN0aXZlTGFuZ3VhZ2UiKSkpLGN0PSgwLF9lLmNyZWF0ZVNlbGVjdG9yKShyZXF1ZXN0X3NuaXBwZXRzX3NlbGVjdG9yc19zdGF0ZSwoZT0+ZS5nZXQoImRlZmF1bHRFeHBhbmRlZCIpKSksaXQ9cmVxdWlyZSgiY2xhc3NuYW1lcyIpO3ZhciBwdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oaXQpO2NvbnN0IG10PXJlcXVpcmUoInJlYWN0LWNvcHktdG8tY2xpcGJvYXJkIiksdXQ9e2N1cnNvcjoicG9pbnRlciIsbGluZUhlaWdodDoxLGRpc3BsYXk6ImlubGluZS1mbGV4IixiYWNrZ3JvdW5kQ29sb3I6InJnYigyNTAsIDI1MCwgMjUwKSIscGFkZGluZ0JvdHRvbToiMCIscGFkZGluZ1RvcDoiMCIsYm9yZGVyOiIxcHggc29saWQgcmdiKDUxLCA1MSwgNTEpIixib3JkZXJSYWRpdXM6IjRweCA0cHggMCAwIixib3hTaGFkb3c6Im5vbmUiLGJvcmRlckJvdHRvbToibm9uZSJ9LGR0PXtjdXJzb3I6InBvaW50ZXIiLGxpbmVIZWlnaHQ6MSxkaXNwbGF5OiJpbmxpbmUtZmxleCIsYmFja2dyb3VuZENvbG9yOiJyZ2IoNTEsIDUxLCA1MSkiLGJveFNoYWRvdzoibm9uZSIsYm9yZGVyOiIxcHggc29saWQgcmdiKDUxLCA1MSwgNTEpIixwYWRkaW5nQm90dG9tOiIwIixwYWRkaW5nVG9wOiIwIixib3JkZXJSYWRpdXM6IjRweCA0cHggMCAwIixtYXJnaW5Ub3A6Ii01cHgiLG1hcmdpblJpZ2h0OiItNXB4IixtYXJnaW5MZWZ0OiItNXB4Iix6SW5kZXg6Ijk5OTkiLGJvcmRlckJvdHRvbToibm9uZSJ9LHJlcXVlc3Rfc25pcHBldHM9KHtyZXF1ZXN0OmUscmVxdWVzdFNuaXBwZXRzU2VsZWN0b3JzOnQsZ2V0Q29tcG9uZW50OnJ9KT0+e2NvbnN0IGE9KDAseC51c2VSZWYpKG51bGwpLG49cigiQXJyb3dVcEljb24iKSxzPXIoIkFycm93RG93bkljb24iKSxvPXIoIlN5bnRheEhpZ2hsaWdodGVyIiwhMCksW2wsY109KDAseC51c2VTdGF0ZSkodC5nZXRTbmlwcGV0R2VuZXJhdG9ycygpPy5rZXlTZXEoKS5maXJzdCgpKSxbaSxwXT0oMCx4LnVzZVN0YXRlKSh0Py5nZXREZWZhdWx0RXhwYW5kZWQoKSksbT10LmdldFNuaXBwZXRHZW5lcmF0b3JzKCksdT1tLmdldChsKSxkPXUuZ2V0KCJmbiIpKGUpLGhhbmRsZVNldElzRXhwYW5kZWQ9KCk9PntwKCFpKX0saGFuZGxlR2V0QnRuU3R5bGU9ZT0+ZT09PWw/ZHQ6dXQsaGFuZGxlUHJldmVudFlTY3JvbGxpbmdCZXlvbmRFbGVtZW50PWU9Pntjb25zdHt0YXJnZXQ6dCxkZWx0YVk6cn09ZSx7c2Nyb2xsSGVpZ2h0OmEsb2Zmc2V0SGVpZ2h0Om4sc2Nyb2xsVG9wOnN9PXQ7YT5uJiYoMD09PXMmJnI8MHx8bitzPj1hJiZyPjApJiZlLnByZXZlbnREZWZhdWx0KCl9O3JldHVybigwLHgudXNlRWZmZWN0KSgoKCk9Pnt9KSxbXSksKDAseC51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IGU9QXJyYXkuZnJvbShhLmN1cnJlbnQuY2hpbGROb2RlcykuZmlsdGVyKChlPT4hIWUubm9kZVR5cGUmJmUuY2xhc3NMaXN0Py5jb250YWlucygiY3VybC1jb21tYW5kIikpKTtyZXR1cm4gZS5mb3JFYWNoKChlPT5lLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNld2hlZWwiLGhhbmRsZVByZXZlbnRZU2Nyb2xsaW5nQmV5b25kRWxlbWVudCx7cGFzc2l2ZTohMX0pKSksKCk9PntlLmZvckVhY2goKGU9PmUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V3aGVlbCIsaGFuZGxlUHJldmVudFlTY3JvbGxpbmdCZXlvbmRFbGVtZW50KSkpfX0pLFtlXSksTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicmVxdWVzdC1zbmlwcGV0cyIscmVmOmF9LE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTp7d2lkdGg6IjEwMCUiLGRpc3BsYXk6ImZsZXgiLGp1c3RpZnlDb250ZW50OiJmbGV4LXN0YXJ0IixhbGlnbkl0ZW1zOiJjZW50ZXIiLG1hcmdpbkJvdHRvbToiMTVweCJ9fSxPKCkuY3JlYXRlRWxlbWVudCgiaDQiLHtvbkNsaWNrOigpPT5oYW5kbGVTZXRJc0V4cGFuZGVkKCksc3R5bGU6e2N1cnNvcjoicG9pbnRlciJ9fSwiU25pcHBldHMiKSxPKCkuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7b25DbGljazooKT0+aGFuZGxlU2V0SXNFeHBhbmRlZCgpLHN0eWxlOntib3JkZXI6Im5vbmUiLGJhY2tncm91bmQ6Im5vbmUifSx0aXRsZTppPyJDb2xsYXBzZSBvcGVyYXRpb24iOiJFeHBhbmQgb3BlcmF0aW9uIn0saT9PKCkuY3JlYXRlRWxlbWVudChzLHtjbGFzc05hbWU6ImFycm93Iix3aWR0aDoiMTAiLGhlaWdodDoiMTAifSk6TygpLmNyZWF0ZUVsZW1lbnQobix7Y2xhc3NOYW1lOiJhcnJvdyIsd2lkdGg6IjEwIixoZWlnaHQ6IjEwIn0pKSksaSYmTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiY3VybC1jb21tYW5kIn0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOntwYWRkaW5nTGVmdDoiMTVweCIscGFkZGluZ1JpZ2h0OiIxMHB4Iix3aWR0aDoiMTAwJSIsZGlzcGxheToiZmxleCJ9fSxtLmVudHJ5U2VxKCkubWFwKCgoW2UsdF0pPT5PKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnB0KCkoImJ0biIse2FjdGl2ZTplPT09bH0pLHN0eWxlOmhhbmRsZUdldEJ0blN0eWxlKGUpLGtleTplLG9uQ2xpY2s6KCk9PihlPT57bCE9PWUmJmMoZSl9KShlKX0sTygpLmNyZWF0ZUVsZW1lbnQoImg0Iix7c3R5bGU6ZT09PWw/e2NvbG9yOiJ3aGl0ZSJ9Ont9fSx0LmdldCgidGl0bGUiKSkpKSkpLE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImNvcHktdG8tY2xpcGJvYXJkIn0sTygpLmNyZWF0ZUVsZW1lbnQobXQuQ29weVRvQ2xpcGJvYXJkLHt0ZXh0OmR9LE8oKS5jcmVhdGVFbGVtZW50KCJidXR0b24iLG51bGwpKSksTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudChvLHtsYW5ndWFnZTp1LmdldCgic3ludGF4IiksY2xhc3NOYW1lOiJjdXJsIG1pY3JvbGlnaHQiLHJlbmRlclBsYWluVGV4dDooe2NoaWxkcmVuOmUsUGxhaW5UZXh0Vmlld2VyOnR9KT0+TygpLmNyZWF0ZUVsZW1lbnQodCx7Y2xhc3NOYW1lOiJjdXJsIn0sZSl9LGQpKSkpfSxwbHVnaW5zX3JlcXVlc3Rfc25pcHBldHM9KCk9Pih7Y29tcG9uZW50czp7UmVxdWVzdFNuaXBwZXRzOnJlcXVlc3Rfc25pcHBldHN9LGZuOntyZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX2Jhc2gscmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfY3VybF9jbWQscmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfY3VybF9wb3dlcnNoZWxsfSxzdGF0ZVBsdWdpbnM6e3JlcXVlc3RTbmlwcGV0czp7c2VsZWN0b3JzOmh9fX0pO2NsYXNzIE1vZGVsQ29sbGFwc2UgZXh0ZW5kcyB4LkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXtjb2xsYXBzZWRDb250ZW50OiJ7Li4ufSIsZXhwYW5kZWQ6ITEsdGl0bGU6bnVsbCxvblRvZ2dsZTooKT0+e30saGlkZVNlbGZPbkV4cGFuZDohMSxzcGVjUGF0aDpBKCkuTGlzdChbXSl9O2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KTtsZXR7ZXhwYW5kZWQ6cixjb2xsYXBzZWRDb250ZW50OmF9PXRoaXMucHJvcHM7dGhpcy5zdGF0ZT17ZXhwYW5kZWQ6cixjb2xsYXBzZWRDb250ZW50OmF8fE1vZGVsQ29sbGFwc2UuZGVmYXVsdFByb3BzLmNvbGxhcHNlZENvbnRlbnR9fWNvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7aGlkZVNlbGZPbkV4cGFuZDplLGV4cGFuZGVkOnQsbW9kZWxOYW1lOnJ9PXRoaXMucHJvcHM7ZSYmdCYmdGhpcy5wcm9wcy5vblRvZ2dsZShyLHQpfVVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKGUpe3RoaXMucHJvcHMuZXhwYW5kZWQhPT1lLmV4cGFuZGVkJiZ0aGlzLnNldFN0YXRlKHtleHBhbmRlZDplLmV4cGFuZGVkfSl9dG9nZ2xlQ29sbGFwc2VkPSgpPT57dGhpcy5wcm9wcy5vblRvZ2dsZSYmdGhpcy5wcm9wcy5vblRvZ2dsZSh0aGlzLnByb3BzLm1vZGVsTmFtZSwhdGhpcy5zdGF0ZS5leHBhbmRlZCksdGhpcy5zZXRTdGF0ZSh7ZXhwYW5kZWQ6IXRoaXMuc3RhdGUuZXhwYW5kZWR9KX07b25Mb2FkPWU9PntpZihlJiZ0aGlzLnByb3BzLmxheW91dFNlbGVjdG9ycyl7Y29uc3QgdD10aGlzLnByb3BzLmxheW91dFNlbGVjdG9ycy5nZXRTY3JvbGxUb0tleSgpO0EoKS5pcyh0LHRoaXMucHJvcHMuc3BlY1BhdGgpJiZ0aGlzLnRvZ2dsZUNvbGxhcHNlZCgpLHRoaXMucHJvcHMubGF5b3V0QWN0aW9ucy5yZWFkeVRvU2Nyb2xsKHRoaXMucHJvcHMuc3BlY1BhdGgsZS5wYXJlbnRFbGVtZW50KX19O3JlbmRlcigpe2NvbnN0e3RpdGxlOmUsY2xhc3Nlczp0fT10aGlzLnByb3BzO3JldHVybiB0aGlzLnN0YXRlLmV4cGFuZGVkJiZ0aGlzLnByb3BzLmhpZGVTZWxmT25FeHBhbmQ/TygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6dHx8IiJ9LHRoaXMucHJvcHMuY2hpbGRyZW4pOk8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnR8fCIiLHJlZjp0aGlzLm9uTG9hZH0sTygpLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIseyJhcmlhLWV4cGFuZGVkIjp0aGlzLnN0YXRlLmV4cGFuZGVkLGNsYXNzTmFtZToibW9kZWwtYm94LWNvbnRyb2wiLG9uQ2xpY2s6dGhpcy50b2dnbGVDb2xsYXBzZWR9LGUmJk8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJwb2ludGVyIn0sZSksTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsLXRvZ2dsZSIrKHRoaXMuc3RhdGUuZXhwYW5kZWQ/IiI6IiBjb2xsYXBzZWQiKX0pLCF0aGlzLnN0YXRlLmV4cGFuZGVkJiZPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCx0aGlzLnN0YXRlLmNvbGxhcHNlZENvbnRlbnQpKSx0aGlzLnN0YXRlLmV4cGFuZGVkJiZ0aGlzLnByb3BzLmNoaWxkcmVuKX19Y29uc3QgdXNlVGFicz0oe2luaXRpYWxUYWI6ZSxpc0V4ZWN1dGU6dCxzY2hlbWE6cixleGFtcGxlOmF9KT0+e2NvbnN0IG49KDAseC51c2VNZW1vKSgoKCk9Pih7ZXhhbXBsZToiZXhhbXBsZSIsbW9kZWw6Im1vZGVsIn0pKSxbXSkscz0oMCx4LnVzZU1lbW8pKCgoKT0+T2JqZWN0LmtleXMobikpLFtuXSkuaW5jbHVkZXMoZSkmJnImJiF0P2U6bi5leGFtcGxlLG89KGU9Pntjb25zdCB0PSgwLHgudXNlUmVmKSgpO3JldHVybigwLHgudXNlRWZmZWN0KSgoKCk9Pnt0LmN1cnJlbnQ9ZX0pKSx0LmN1cnJlbnR9KSh0KSxbbCxjXT0oMCx4LnVzZVN0YXRlKShzKSxpPSgwLHgudXNlQ2FsbGJhY2spKChlPT57YyhlLnRhcmdldC5kYXRhc2V0Lm5hbWUpfSksW10pO3JldHVybigwLHgudXNlRWZmZWN0KSgoKCk9PntvJiYhdCYmYSYmYyhuLmV4YW1wbGUpfSksW28sdCxhXSkse2FjdGl2ZVRhYjpsLG9uVGFiQ2hhbmdlOmksdGFiczpufX0sbW9kZWxfZXhhbXBsZT0oe3NjaGVtYTplLGV4YW1wbGU6dCxpc0V4ZWN1dGU6cj0hMSxzcGVjUGF0aDphLGluY2x1ZGVXcml0ZU9ubHk6bj0hMSxpbmNsdWRlUmVhZE9ubHk6cz0hMSxnZXRDb21wb25lbnQ6byxnZXRDb25maWdzOmwsc3BlY1NlbGVjdG9yczpjfSk9Pntjb25zdHtkZWZhdWx0TW9kZWxSZW5kZXJpbmc6aSxkZWZhdWx0TW9kZWxFeHBhbmREZXB0aDpwfT1sKCksbT1vKCJNb2RlbFdyYXBwZXIiKSx1PW8oIkhpZ2hsaWdodENvZGUiLCEwKSxkPWFlKCkoNSkudG9TdHJpbmcoImJhc2U2NCIpLGg9YWUoKSg1KS50b1N0cmluZygiYmFzZTY0IiksZz1hZSgpKDUpLnRvU3RyaW5nKCJiYXNlNjQiKSx5PWFlKCkoNSkudG9TdHJpbmcoImJhc2U2NCIpLGY9Yy5pc09BUzMoKSx7YWN0aXZlVGFiOlMsdGFiczpFLG9uVGFiQ2hhbmdlOl99PXVzZVRhYnMoe2luaXRpYWxUYWI6aSxpc0V4ZWN1dGU6cixzY2hlbWE6ZSxleGFtcGxlOnR9KTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibW9kZWwtZXhhbXBsZSJ9LE8oKS5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZToidGFiIixyb2xlOiJ0YWJsaXN0In0sTygpLmNyZWF0ZUVsZW1lbnQoImxpIix7Y2xhc3NOYW1lOnB0KCkoInRhYml0ZW0iLHthY3RpdmU6Uz09PUUuZXhhbXBsZX0pLHJvbGU6InByZXNlbnRhdGlvbiJ9LE8oKS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHsiYXJpYS1jb250cm9scyI6aCwiYXJpYS1zZWxlY3RlZCI6Uz09PUUuZXhhbXBsZSxjbGFzc05hbWU6InRhYmxpbmtzIiwiZGF0YS1uYW1lIjoiZXhhbXBsZSIsaWQ6ZCxvbkNsaWNrOl8scm9sZToidGFiIn0scj8iRWRpdCBWYWx1ZSI6IkV4YW1wbGUgVmFsdWUiKSksZSYmTygpLmNyZWF0ZUVsZW1lbnQoImxpIix7Y2xhc3NOYW1lOnB0KCkoInRhYml0ZW0iLHthY3RpdmU6Uz09PUUubW9kZWx9KSxyb2xlOiJwcmVzZW50YXRpb24ifSxPKCkuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7ImFyaWEtY29udHJvbHMiOnksImFyaWEtc2VsZWN0ZWQiOlM9PT1FLm1vZGVsLGNsYXNzTmFtZTpwdCgpKCJ0YWJsaW5rcyIse2luYWN0aXZlOnJ9KSwiZGF0YS1uYW1lIjoibW9kZWwiLGlkOmcsb25DbGljazpfLHJvbGU6InRhYiJ9LGY/IlNjaGVtYSI6Ik1vZGVsIikpKSxTPT09RS5leGFtcGxlJiZPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7ImFyaWEtaGlkZGVuIjpTIT09RS5leGFtcGxlLCJhcmlhLWxhYmVsbGVkYnkiOmQsImRhdGEtbmFtZSI6ImV4YW1wbGVQYW5lbCIsaWQ6aCxyb2xlOiJ0YWJwYW5lbCIsdGFiSW5kZXg6IjAifSx0fHxPKCkuY3JlYXRlRWxlbWVudCh1LG51bGwsIihubyBleGFtcGxlIGF2YWlsYWJsZSIpKSxTPT09RS5tb2RlbCYmTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibW9kZWwtY29udGFpbmVyIiwiYXJpYS1oaWRkZW4iOlM9PT1FLmV4YW1wbGUsImFyaWEtbGFiZWxsZWRieSI6ZywiZGF0YS1uYW1lIjoibW9kZWxQYW5lbCIsaWQ6eSxyb2xlOiJ0YWJwYW5lbCIsdGFiSW5kZXg6IjAifSxPKCkuY3JlYXRlRWxlbWVudChtLHtzY2hlbWE6ZSxnZXRDb21wb25lbnQ6byxnZXRDb25maWdzOmwsc3BlY1NlbGVjdG9yczpjLGV4cGFuZERlcHRoOnAsc3BlY1BhdGg6YSxpbmNsdWRlUmVhZE9ubHk6cyxpbmNsdWRlV3JpdGVPbmx5Om59KSkpfTtjbGFzcyBNb2RlbFdyYXBwZXIgZXh0ZW5kcyB4LkNvbXBvbmVudHtvblRvZ2dsZT0oZSx0KT0+e3RoaXMucHJvcHMubGF5b3V0QWN0aW9ucyYmdGhpcy5wcm9wcy5sYXlvdXRBY3Rpb25zLnNob3codGhpcy5wcm9wcy5mdWxsUGF0aCx0KX07cmVuZGVyKCl7bGV0e2dldENvbXBvbmVudDplLGdldENvbmZpZ3M6dH09dGhpcy5wcm9wcztjb25zdCByPWUoIk1vZGVsIik7bGV0IGE7cmV0dXJuIHRoaXMucHJvcHMubGF5b3V0U2VsZWN0b3JzJiYoYT10aGlzLnByb3BzLmxheW91dFNlbGVjdG9ycy5pc1Nob3duKHRoaXMucHJvcHMuZnVsbFBhdGgpKSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJtb2RlbC1ib3gifSxPKCkuY3JlYXRlRWxlbWVudChyLFFlKCkoe30sdGhpcy5wcm9wcyx7Z2V0Q29uZmlnczp0LGV4cGFuZGVkOmEsZGVwdGg6MSxvblRvZ2dsZTp0aGlzLm9uVG9nZ2xlLGV4cGFuZERlcHRoOnRoaXMucHJvcHMuZXhwYW5kRGVwdGh8fDB9KSkpfX1jb25zdCBodD1yZXF1aXJlKCJyZWFjdC1pbW11dGFibGUtcHVyZS1jb21wb25lbnQiKTt2YXIgZ3QseXQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGh0KTtmdW5jdGlvbiBfZXh0ZW5kcygpe3JldHVybiBfZXh0ZW5kcz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciByPWFyZ3VtZW50c1t0XTtmb3IodmFyIGEgaW4gcikoe30pLmhhc093blByb3BlcnR5LmNhbGwocixhKSYmKGVbYV09clthXSl9cmV0dXJuIGV9LF9leHRlbmRzLmFwcGx5KG51bGwsYXJndW1lbnRzKX1jb25zdCByb2xsaW5nX2xvYWQ9ZT0+eC5jcmVhdGVFbGVtZW50KCJzdmciLF9leHRlbmRzKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjIwMCxoZWlnaHQ6MjAwLGNsYXNzTmFtZToicm9sbGluZy1sb2FkX3N2Z19fbGRzLXJvbGxpbmciLHByZXNlcnZlQXNwZWN0UmF0aW86InhNaWRZTWlkIixzdHlsZTp7YmFja2dyb3VuZEltYWdlOiJub25lIixiYWNrZ3JvdW5kUG9zaXRpb246ImluaXRpYWwgaW5pdGlhbCIsYmFja2dyb3VuZFJlcGVhdDoiaW5pdGlhbCBpbml0aWFsIn0sdmlld0JveDoiMCAwIDEwMCAxMDAifSxlKSxndHx8KGd0PXguY3JlYXRlRWxlbWVudCgiY2lyY2xlIix7Y3g6NTAsY3k6NTAscjozNSxmaWxsOiJub25lIixzdHJva2U6IiM1NTUiLHN0cm9rZURhc2hhcnJheToiMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4IixzdHJva2VXaWR0aDoxMH0seC5jcmVhdGVFbGVtZW50KCJhbmltYXRlVHJhbnNmb3JtIix7YXR0cmlidXRlTmFtZToidHJhbnNmb3JtIixiZWdpbjoiMHMiLGNhbGNNb2RlOiJsaW5lYXIiLGR1cjoiMXMiLGtleVRpbWVzOiIwOzEiLHJlcGVhdENvdW50OiJpbmRlZmluaXRlIix0eXBlOiJyb3RhdGUiLHZhbHVlczoiMCA1MCA1MDszNjAgNTAgNTAifSkpKSksZGVjb2RlUmVmTmFtZT1lPT57Y29uc3QgdD1lLnJlcGxhY2UoL34xL2csIi8iKS5yZXBsYWNlKC9+MC9nLCJ+Iik7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQodCl9Y2F0Y2h7cmV0dXJuIHR9fTtjbGFzcyBNb2RlbCBleHRlbmRzKHl0KCkpe3N0YXRpYyBwcm9wVHlwZXM9e3NjaGVtYTpVZSgpLm1hcC5pc1JlcXVpcmVkLGdldENvbXBvbmVudDpPZSgpLmZ1bmMuaXNSZXF1aXJlZCxnZXRDb25maWdzOk9lKCkuZnVuYy5pc1JlcXVpcmVkLHNwZWNTZWxlY3RvcnM6T2UoKS5vYmplY3QuaXNSZXF1aXJlZCxuYW1lOk9lKCkuc3RyaW5nLGRpc3BsYXlOYW1lOk9lKCkuc3RyaW5nLGlzUmVmOk9lKCkuYm9vbCxyZXF1aXJlZDpPZSgpLmJvb2wsZXhwYW5kRGVwdGg6T2UoKS5udW1iZXIsZGVwdGg6T2UoKS5udW1iZXIsc3BlY1BhdGg6VWUoKS5saXN0LmlzUmVxdWlyZWQsaW5jbHVkZVJlYWRPbmx5Ok9lKCkuYm9vbCxpbmNsdWRlV3JpdGVPbmx5Ok9lKCkuYm9vbH07Z2V0TW9kZWxOYW1lPWU9Pi0xIT09ZS5pbmRleE9mKCIjL2RlZmluaXRpb25zLyIpP2RlY29kZVJlZk5hbWUoZS5yZXBsYWNlKC9eLiojXC9kZWZpbml0aW9uc1wvLywiIikpOi0xIT09ZS5pbmRleE9mKCIjL2NvbXBvbmVudHMvc2NoZW1hcy8iKT9kZWNvZGVSZWZOYW1lKGUucmVwbGFjZSgvXi4qI1wvY29tcG9uZW50c1wvc2NoZW1hc1wvLywiIikpOnZvaWQgMDtnZXRSZWZTY2hlbWE9ZT0+e2xldHtzcGVjU2VsZWN0b3JzOnR9PXRoaXMucHJvcHM7cmV0dXJuIHQuZmluZERlZmluaXRpb24oZSl9O3JlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6ZSxnZXRDb25maWdzOnQsc3BlY1NlbGVjdG9yczpyLHNjaGVtYTphLHJlcXVpcmVkOm4sbmFtZTpzLGlzUmVmOm8sc3BlY1BhdGg6bCxkaXNwbGF5TmFtZTpjLGluY2x1ZGVSZWFkT25seTppLGluY2x1ZGVXcml0ZU9ubHk6cH09dGhpcy5wcm9wcztjb25zdCBtPWUoIk9iamVjdE1vZGVsIiksdT1lKCJBcnJheU1vZGVsIiksZD1lKCJQcmltaXRpdmVNb2RlbCIpO2xldCBoPSJvYmplY3QiLGc9YSYmYS5nZXQoIiQkcmVmIikseT1hJiZhLmdldCgiJHJlZiIpO2lmKCFzJiZnJiYocz10aGlzLmdldE1vZGVsTmFtZShnKSkseSl7Y29uc3QgZT10aGlzLmdldE1vZGVsTmFtZSh5KSx0PXRoaXMuZ2V0UmVmU2NoZW1hKGUpO2suTWFwLmlzTWFwKHQpPyhhPXQubWVyZ2VEZWVwKGEpLGd8fChhPWEuc2V0KCIkJHJlZiIseSksZz15KSk6ay5NYXAuaXNNYXAoYSkmJjE9PT1hLnNpemUmJihhPW51bGwscz15KX1pZighYSlyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsIG1vZGVsLXRpdGxlIn0sTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsLXRpdGxlX190ZXh0In0sY3x8cyksIXkmJk8oKS5jcmVhdGVFbGVtZW50KHJvbGxpbmdfbG9hZCx7aGVpZ2h0OiIyMHB4Iix3aWR0aDoiMjBweCJ9KSk7Y29uc3QgZj1yLmlzT0FTMygpJiZhLmdldCgiZGVwcmVjYXRlZCIpO3N3aXRjaChvPXZvaWQgMCE9PW8/bzohIWcsaD1hJiZhLmdldCgidHlwZSIpfHxoLGgpe2Nhc2Uib2JqZWN0IjpyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQobSxRZSgpKHtjbGFzc05hbWU6Im9iamVjdCJ9LHRoaXMucHJvcHMse3NwZWNQYXRoOmwsZ2V0Q29uZmlnczp0LHNjaGVtYTphLG5hbWU6cyxkZXByZWNhdGVkOmYsaXNSZWY6byxpbmNsdWRlUmVhZE9ubHk6aSxpbmNsdWRlV3JpdGVPbmx5OnB9KSk7Y2FzZSJhcnJheSI6cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KHUsUWUoKSh7Y2xhc3NOYW1lOiJhcnJheSJ9LHRoaXMucHJvcHMse2dldENvbmZpZ3M6dCxzY2hlbWE6YSxuYW1lOnMsZGVwcmVjYXRlZDpmLHJlcXVpcmVkOm4saW5jbHVkZVJlYWRPbmx5OmksaW5jbHVkZVdyaXRlT25seTpwfSkpO2RlZmF1bHQ6cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KGQsUWUoKSh7fSx0aGlzLnByb3BzLHtnZXRDb21wb25lbnQ6ZSxnZXRDb25maWdzOnQsc2NoZW1hOmEsbmFtZTpzLGRlcHJlY2F0ZWQ6ZixyZXF1aXJlZDpufSkpfX19Y2xhc3MgTW9kZWxzIGV4dGVuZHMgeC5Db21wb25lbnR7Z2V0U2NoZW1hQmFzZVBhdGg9KCk9PnRoaXMucHJvcHMuc3BlY1NlbGVjdG9ycy5pc09BUzMoKT9bImNvbXBvbmVudHMiLCJzY2hlbWFzIl06WyJkZWZpbml0aW9ucyJdO2dldENvbGxhcHNlZENvbnRlbnQ9KCk9PiIgIjtoYW5kbGVUb2dnbGU9KGUsdCk9Pntjb25zdHtsYXlvdXRBY3Rpb25zOnJ9PXRoaXMucHJvcHM7ci5zaG93KFsuLi50aGlzLmdldFNjaGVtYUJhc2VQYXRoKCksZV0sdCksdCYmdGhpcy5wcm9wcy5zcGVjQWN0aW9ucy5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKFsuLi50aGlzLmdldFNjaGVtYUJhc2VQYXRoKCksZV0pfTtvbkxvYWRNb2RlbHM9ZT0+e2UmJnRoaXMucHJvcHMubGF5b3V0QWN0aW9ucy5yZWFkeVRvU2Nyb2xsKHRoaXMuZ2V0U2NoZW1hQmFzZVBhdGgoKSxlKX07b25Mb2FkTW9kZWw9ZT0+e2lmKGUpe2NvbnN0IHQ9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtbmFtZSIpO3RoaXMucHJvcHMubGF5b3V0QWN0aW9ucy5yZWFkeVRvU2Nyb2xsKFsuLi50aGlzLmdldFNjaGVtYUJhc2VQYXRoKCksdF0sZSl9fTtyZW5kZXIoKXtsZXR7c3BlY1NlbGVjdG9yczplLGdldENvbXBvbmVudDp0LGxheW91dFNlbGVjdG9yczpyLGxheW91dEFjdGlvbnM6YSxnZXRDb25maWdzOm59PXRoaXMucHJvcHMscz1lLmRlZmluaXRpb25zKCkse2RvY0V4cGFuc2lvbjpvLGRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aDpsfT1uKCk7aWYoIXMuc2l6ZXx8bDwwKXJldHVybiBudWxsO2NvbnN0IGM9dGhpcy5nZXRTY2hlbWFCYXNlUGF0aCgpO2xldCBpPXIuaXNTaG93bihjLGw+MCYmIm5vbmUiIT09byk7Y29uc3QgcD1lLmlzT0FTMygpLG09dCgiTW9kZWxXcmFwcGVyIiksdT10KCJDb2xsYXBzZSIpLGQ9dCgiTW9kZWxDb2xsYXBzZSIpLGg9dCgiSnVtcFRvUGF0aCIsITApLGc9dCgiQXJyb3dVcEljb24iKSx5PXQoIkFycm93RG93bkljb24iKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24iLHtjbGFzc05hbWU6aT8ibW9kZWxzIGlzLW9wZW4iOiJtb2RlbHMiLHJlZjp0aGlzLm9uTG9hZE1vZGVsc30sTygpLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHsiYXJpYS1leHBhbmRlZCI6aSxjbGFzc05hbWU6Im1vZGVscy1jb250cm9sIixvbkNsaWNrOigpPT5hLnNob3coYywhaSl9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLHA/IlNjaGVtYXMiOiJNb2RlbHMiKSxpP08oKS5jcmVhdGVFbGVtZW50KGcsbnVsbCk6TygpLmNyZWF0ZUVsZW1lbnQoeSxudWxsKSkpLE8oKS5jcmVhdGVFbGVtZW50KHUse2lzT3BlbmVkOml9LHMuZW50cnlTZXEoKS5tYXAoKChbc10pPT57Y29uc3Qgbz1bLi4uYyxzXSxpPUEoKS5MaXN0KG8pLHA9ZS5zcGVjUmVzb2x2ZWRTdWJ0cmVlKG8pLHU9ZS5zcGVjSnNvbigpLmdldEluKG8pLGc9ay5NYXAuaXNNYXAocCk/cDpBKCkuTWFwKCkseT1rLk1hcC5pc01hcCh1KT91OkEoKS5NYXAoKSxmPWcuZ2V0KCJ0aXRsZSIpfHx5LmdldCgidGl0bGUiKXx8cyxTPXIuaXNTaG93bihvLCExKTtTJiYwPT09Zy5zaXplJiZ5LnNpemU+MCYmdGhpcy5wcm9wcy5zcGVjQWN0aW9ucy5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKG8pO2NvbnN0IEU9TygpLmNyZWF0ZUVsZW1lbnQobSx7bmFtZTpzLGV4cGFuZERlcHRoOmwsc2NoZW1hOmd8fEEoKS5NYXAoKSxkaXNwbGF5TmFtZTpmLGZ1bGxQYXRoOm8sc3BlY1BhdGg6aSxnZXRDb21wb25lbnQ6dCxzcGVjU2VsZWN0b3JzOmUsZ2V0Q29uZmlnczpuLGxheW91dFNlbGVjdG9yczpyLGxheW91dEFjdGlvbnM6YSxpbmNsdWRlUmVhZE9ubHk6ITAsaW5jbHVkZVdyaXRlT25seTohMH0pLF89TygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsLWJveCJ9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtb2RlbCBtb2RlbC10aXRsZSJ9LGYpKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2lkOmBtb2RlbC0ke3N9YCxjbGFzc05hbWU6Im1vZGVsLWNvbnRhaW5lciIsa2V5OmBtb2RlbHMtc2VjdGlvbi0ke3N9YCwiZGF0YS1uYW1lIjpzLHJlZjp0aGlzLm9uTG9hZE1vZGVsfSxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibW9kZWxzLWp1bXAtdG8tcGF0aCJ9LE8oKS5jcmVhdGVFbGVtZW50KGgse3BhdGg6aX0pKSxPKCkuY3JlYXRlRWxlbWVudChkLHtjbGFzc2VzOiJtb2RlbC1ib3giLGNvbGxhcHNlZENvbnRlbnQ6dGhpcy5nZXRDb2xsYXBzZWRDb250ZW50KHMpLG9uVG9nZ2xlOnRoaXMuaGFuZGxlVG9nZ2xlLHRpdGxlOl8sZGlzcGxheU5hbWU6Zixtb2RlbE5hbWU6cyxzcGVjUGF0aDppLGxheW91dFNlbGVjdG9yczpyLGxheW91dEFjdGlvbnM6YSxoaWRlU2VsZk9uRXhwYW5kOiEwLGV4cGFuZGVkOmw+MCYmU30sRSkpfSkpLnRvQXJyYXkoKSkpfX1jb25zdCBlbnVtX21vZGVsPSh7dmFsdWU6ZSxnZXRDb21wb25lbnQ6dH0pPT57bGV0IHI9dCgiTW9kZWxDb2xsYXBzZSIpLGE9TygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsIkFycmF5IFsgIixlLmNvdW50KCksIiBdIik7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJwcm9wLWVudW0ifSwiRW51bToiLE8oKS5jcmVhdGVFbGVtZW50KCJiciIsbnVsbCksTygpLmNyZWF0ZUVsZW1lbnQocix7Y29sbGFwc2VkQ29udGVudDphfSwiWyAiLGUubWFwKFN0cmluZykuam9pbigiLCAiKSwiIF0iKSl9O2Z1bmN0aW9uIGlzQWJzb2x1dGVVcmwoZSl7cmV0dXJuIGUubWF0Y2goL14oPzpbYS16XSs6KT9cL1wvL2kpfWZ1bmN0aW9uIGJ1aWxkQmFzZVVybChlLHQpe3JldHVybiBlP2lzQWJzb2x1dGVVcmwoZSk/ZnVuY3Rpb24gYWRkUHJvdG9jb2woZSl7cmV0dXJuIGUubWF0Y2goL15cL1wvL2kpP2Ake3dpbmRvdy5sb2NhdGlvbi5wcm90b2NvbH0ke2V9YDplfShlKTpuZXcgVVJMKGUsdCkuaHJlZjp0fWZ1bmN0aW9uIHNhZmVCdWlsZFVybChlLHQse3NlbGVjdGVkU2VydmVyOnI9IiJ9PXt9KXt0cnl7cmV0dXJuIGZ1bmN0aW9uIGJ1aWxkVXJsKGUsdCx7c2VsZWN0ZWRTZXJ2ZXI6cj0iIn09e30pe2lmKCFlKXJldHVybjtpZihpc0Fic29sdXRlVXJsKGUpKXJldHVybiBlO2NvbnN0IGE9YnVpbGRCYXNlVXJsKHIsdCk7cmV0dXJuIGlzQWJzb2x1dGVVcmwoYSk/bmV3IFVSTChlLGEpLmhyZWY6bmV3IFVSTChlLHdpbmRvdy5sb2NhdGlvbi5ocmVmKS5ocmVmfShlLHQse3NlbGVjdGVkU2VydmVyOnJ9KX1jYXRjaHtyZXR1cm59fWZ1bmN0aW9uIHNhbml0aXplVXJsKGUpe2lmKCJzdHJpbmciIT10eXBlb2YgZXx8IiI9PT1lLnRyaW0oKSlyZXR1cm4iIjtjb25zdCB0PWUudHJpbSgpLHI9ImFib3V0OmJsYW5rIjt0cnl7Y29uc3QgZT1gaHR0cHM6Ly9iYXNlJHtTdHJpbmcoTWF0aC5yYW5kb20oKSkuc2xpY2UoMil9YCxhPW5ldyBVUkwodCxlKSxuPWEucHJvdG9jb2wuc2xpY2UoMCwtMSk7cmV0dXJuWyJqYXZhc2NyaXB0IiwiZGF0YSIsInZic2NyaXB0Il0uaW5jbHVkZXMobi50b0xvd2VyQ2FzZSgpKT9yOmEub3JpZ2luPT09ZT90LnN0YXJ0c1dpdGgoIi8iKT9gJHthLnBhdGhuYW1lfSR7YS5zZWFyY2h9JHthLmhhc2h9YDp0LnN0YXJ0c1dpdGgoIi4iKT9gLiR7YS5wYXRobmFtZX0ke2Euc2VhcmNofSR7YS5oYXNofWA6YCR7YS5wYXRobmFtZS5zdWJzdHJpbmcoMSl9JHthLnNlYXJjaH0ke2EuaGFzaH1gOlN0cmluZyhhKX1jYXRjaHtyZXR1cm4gcn19Y2xhc3MgT2JqZWN0TW9kZWwgZXh0ZW5kcyB4LkNvbXBvbmVudHtyZW5kZXIoKXtsZXR7c2NoZW1hOmUsbmFtZTp0LGRpc3BsYXlOYW1lOnIsaXNSZWY6YSxnZXRDb21wb25lbnQ6bixnZXRDb25maWdzOnMsZGVwdGg6byxvblRvZ2dsZTpsLGV4cGFuZGVkOmMsc3BlY1BhdGg6aSwuLi5wfT10aGlzLnByb3BzLHtzcGVjU2VsZWN0b3JzOm0sZXhwYW5kRGVwdGg6dSxpbmNsdWRlUmVhZE9ubHk6ZCxpbmNsdWRlV3JpdGVPbmx5Omh9PXA7Y29uc3R7aXNPQVMzOmd9PW0seT1vPjJ8fDI9PT1vJiYiaXRlbXMiIT09aS5sYXN0KCk7aWYoIWUpcmV0dXJuIG51bGw7Y29uc3R7c2hvd0V4dGVuc2lvbnM6Zn09cygpLFM9Zj9nZXRFeHRlbnNpb25zKGUpOigwLGsuTGlzdCkoKTtsZXQgRT1lLmdldCgiZGVzY3JpcHRpb24iKSxfPWUuZ2V0KCJwcm9wZXJ0aWVzIiksdj1lLmdldCgiYWRkaXRpb25hbFByb3BlcnRpZXMiKSx3PWUuZ2V0KCJ0aXRsZSIpfHxyfHx0LGI9ZS5nZXQoInJlcXVpcmVkIiksQz1lLmZpbHRlcigoKGUsdCk9Pi0xIT09WyJtYXhQcm9wZXJ0aWVzIiwibWluUHJvcGVydGllcyIsIm51bGxhYmxlIiwiZXhhbXBsZSJdLmluZGV4T2YodCkpKSx4PWUuZ2V0KCJkZXByZWNhdGVkIiksTj1lLmdldEluKFsiZXh0ZXJuYWxEb2NzIiwidXJsIl0pLEE9ZS5nZXRJbihbImV4dGVybmFsRG9jcyIsImRlc2NyaXB0aW9uIl0pO2NvbnN0IEk9bigiSnVtcFRvUGF0aCIsITApLGo9bigiTWFya2Rvd24iLCEwKSxxPW4oIk1vZGVsIiksUD1uKCJNb2RlbENvbGxhcHNlIiksTT1uKCJQcm9wZXJ0eSIpLFQ9bigiTGluayIpLFI9bigiTW9kZWxFeHRlbnNpb25zIiksSnVtcFRvUGF0aFNlY3Rpb249KCk9Pk8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtb2RlbC1qdW1wLXRvLXBhdGgifSxPKCkuY3JlYXRlRWxlbWVudChJLHtwYXRoOml9KSksSj1PKCkuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCwieyIpLCIuLi4iLE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCJ9IiksYT9PKCkuY3JlYXRlRWxlbWVudChKdW1wVG9QYXRoU2VjdGlvbixudWxsKToiIiksJD1tLmlzT0FTMygpP2UuZ2V0KCJhbGxPZiIpOm51bGwsVj1tLmlzT0FTMygpP2UuZ2V0KCJhbnlPZiIpOm51bGwsTD1tLmlzT0FTMygpP2UuZ2V0KCJvbmVPZiIpOm51bGwsRD1tLmlzT0FTMygpP2UuZ2V0KCJub3QiKTpudWxsLFU9dyYmTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsLXRpdGxlIn0sYSYmZS5nZXQoIiQkcmVmIikmJk8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnB0KCkoIm1vZGVsLWhpbnQiLHsibW9kZWwtaGludC0tZW1iZWRkZWQiOnl9KX0sZS5nZXQoIiQkcmVmIikpLE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtb2RlbC10aXRsZV9fdGV4dCJ9LHcpKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsIn0sTygpLmNyZWF0ZUVsZW1lbnQoUCx7bW9kZWxOYW1lOnQsdGl0bGU6VSxvblRvZ2dsZTpsLGV4cGFuZGVkOiEhY3x8bzw9dSxjb2xsYXBzZWRDb250ZW50Okp9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJicmFjZS1vcGVuIG9iamVjdCJ9LCJ7IiksYT9PKCkuY3JlYXRlRWxlbWVudChKdW1wVG9QYXRoU2VjdGlvbixudWxsKTpudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJpbm5lci1vYmplY3QifSxPKCkuY3JlYXRlRWxlbWVudCgidGFibGUiLHtjbGFzc05hbWU6Im1vZGVsIn0sTygpLmNyZWF0ZUVsZW1lbnQoInRib2R5IixudWxsLEU/TygpLmNyZWF0ZUVsZW1lbnQoInRyIix7Y2xhc3NOYW1lOiJkZXNjcmlwdGlvbiJ9LE8oKS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCwiZGVzY3JpcHRpb246IiksTygpLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLE8oKS5jcmVhdGVFbGVtZW50KGose3NvdXJjZTpFfSkpKTpudWxsLE4mJk8oKS5jcmVhdGVFbGVtZW50KCJ0ciIse2NsYXNzTmFtZToiZXh0ZXJuYWwtZG9jcyJ9LE8oKS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCwiZXh0ZXJuYWxEb2NzOiIpLE8oKS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudChULHt0YXJnZXQ6Il9ibGFuayIsaHJlZjpzYW5pdGl6ZVVybChOKX0sQXx8TikpKSx4P08oKS5jcmVhdGVFbGVtZW50KCJ0ciIse2NsYXNzTmFtZToicHJvcGVydHkifSxPKCkuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsImRlcHJlY2F0ZWQ6IiksTygpLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLCJ0cnVlIikpOm51bGwsXyYmXy5zaXplP18uZW50cnlTZXEoKS5maWx0ZXIoKChbLGVdKT0+KCFlLmdldCgicmVhZE9ubHkiKXx8ZCkmJighZS5nZXQoIndyaXRlT25seSIpfHxoKSkpLm1hcCgoKFtlLHJdKT0+e2xldCBhPWcoKSYmci5nZXQoImRlcHJlY2F0ZWQiKSxsPWsuTGlzdC5pc0xpc3QoYikmJmIuY29udGFpbnMoZSksYz1bInByb3BlcnR5LXJvdyJdO3JldHVybiBhJiZjLnB1c2goImRlcHJlY2F0ZWQiKSxsJiZjLnB1c2goInJlcXVpcmVkIiksTygpLmNyZWF0ZUVsZW1lbnQoInRyIix7a2V5OmUsY2xhc3NOYW1lOmMuam9pbigiICIpfSxPKCkuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsZSxsJiZPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToic3RhciJ9LCIqIikpLE8oKS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudChxLFFlKCkoe2tleTpgb2JqZWN0LSR7dH0tJHtlfV8ke3J9YH0scCx7cmVxdWlyZWQ6bCxnZXRDb21wb25lbnQ6bixzcGVjUGF0aDppLnB1c2goInByb3BlcnRpZXMiLGUpLGdldENvbmZpZ3M6cyxzY2hlbWE6cixkZXB0aDpvKzF9KSkpKX0pKS50b0FycmF5KCk6bnVsbCwwPT09Uy5zaXplP251bGw6TygpLmNyZWF0ZUVsZW1lbnQoTygpLkZyYWdtZW50LG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoInRyIixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCwiwqAiKSksTygpLmNyZWF0ZUVsZW1lbnQoUix7ZXh0ZW5zaW9uczpTLHByb3BDbGFzczoiZXh0ZW5zaW9uIn0pKSx2JiZ2LnNpemU/TygpLmNyZWF0ZUVsZW1lbnQoInRyIixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCwiPCAqID46IiksTygpLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLE8oKS5jcmVhdGVFbGVtZW50KHEsUWUoKSh7fSxwLHtyZXF1aXJlZDohMSxnZXRDb21wb25lbnQ6bixzcGVjUGF0aDppLnB1c2goImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiksZ2V0Q29uZmlnczpzLHNjaGVtYTp2LGRlcHRoOm8rMX0pKSkpOm51bGwsJD9PKCkuY3JlYXRlRWxlbWVudCgidHIiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLCJhbGxPZiAtPiIpLE8oKS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCwkLm1hcCgoKGUsdCk9Pk8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6dH0sTygpLmNyZWF0ZUVsZW1lbnQocSxRZSgpKHt9LHAse3JlcXVpcmVkOiExLGdldENvbXBvbmVudDpuLHNwZWNQYXRoOmkucHVzaCgiYWxsT2YiLHQpLGdldENvbmZpZ3M6cyxzY2hlbWE6ZSxkZXB0aDpvKzF9KSkpKSkpKTpudWxsLFY/TygpLmNyZWF0ZUVsZW1lbnQoInRyIixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCwiYW55T2YgLT4iKSxPKCkuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsVi5tYXAoKChlLHQpPT5PKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5OnR9LE8oKS5jcmVhdGVFbGVtZW50KHEsUWUoKSh7fSxwLHtyZXF1aXJlZDohMSxnZXRDb21wb25lbnQ6bixzcGVjUGF0aDppLnB1c2goImFueU9mIix0KSxnZXRDb25maWdzOnMsc2NoZW1hOmUsZGVwdGg6bysxfSkpKSkpKSk6bnVsbCxMP08oKS5jcmVhdGVFbGVtZW50KCJ0ciIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsIm9uZU9mIC0+IiksTygpLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLEwubWFwKCgoZSx0KT0+TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleTp0fSxPKCkuY3JlYXRlRWxlbWVudChxLFFlKCkoe30scCx7cmVxdWlyZWQ6ITEsZ2V0Q29tcG9uZW50Om4sc3BlY1BhdGg6aS5wdXNoKCJvbmVPZiIsdCksZ2V0Q29uZmlnczpzLHNjaGVtYTplLGRlcHRoOm8rMX0pKSkpKSkpOm51bGwsRD9PKCkuY3JlYXRlRWxlbWVudCgidHIiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLCJub3QgLT4iKSxPKCkuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudChxLFFlKCkoe30scCx7cmVxdWlyZWQ6ITEsZ2V0Q29tcG9uZW50Om4sc3BlY1BhdGg6aS5wdXNoKCJub3QiKSxnZXRDb25maWdzOnMsc2NoZW1hOkQsZGVwdGg6bysxfSkpKSkpOm51bGwpKSksTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6ImJyYWNlLWNsb3NlIn0sIn0iKSksQy5zaXplP0MuZW50cnlTZXEoKS5tYXAoKChbZSx0XSk9Pk8oKS5jcmVhdGVFbGVtZW50KE0se2tleTpgJHtlfS0ke3R9YCxwcm9wS2V5OmUscHJvcFZhbDp0LHByb3BDbGFzczoicHJvcGVydHkifSkpKTpudWxsKX19Y2xhc3MgQXJyYXlNb2RlbCBleHRlbmRzIHguQ29tcG9uZW50e3JlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6ZSxnZXRDb25maWdzOnQsc2NoZW1hOnIsZGVwdGg6YSxleHBhbmREZXB0aDpuLG5hbWU6cyxkaXNwbGF5TmFtZTpvLHNwZWNQYXRoOmx9PXRoaXMucHJvcHMsYz1yLmdldCgiZGVzY3JpcHRpb24iKSxpPXIuZ2V0KCJpdGVtcyIpLHA9ci5nZXQoInRpdGxlIil8fG98fHMsbT1yLmZpbHRlcigoKGUsdCk9Pi0xPT09WyJ0eXBlIiwiaXRlbXMiLCJkZXNjcmlwdGlvbiIsIiQkcmVmIiwiZXh0ZXJuYWxEb2NzIl0uaW5kZXhPZih0KSkpLHU9ci5nZXRJbihbImV4dGVybmFsRG9jcyIsInVybCJdKSxkPXIuZ2V0SW4oWyJleHRlcm5hbERvY3MiLCJkZXNjcmlwdGlvbiJdKTtjb25zdCBoPWUoIk1hcmtkb3duIiwhMCksZz1lKCJNb2RlbENvbGxhcHNlIikseT1lKCJNb2RlbCIpLGY9ZSgiUHJvcGVydHkiKSxTPWUoIkxpbmsiKSxFPXAmJk8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtb2RlbC10aXRsZSJ9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtb2RlbC10aXRsZV9fdGV4dCJ9LHApKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsIn0sTygpLmNyZWF0ZUVsZW1lbnQoZyx7dGl0bGU6RSxleHBhbmRlZDphPD1uLGNvbGxhcHNlZENvbnRlbnQ6IlsuLi5dIn0sIlsiLG0uc2l6ZT9tLmVudHJ5U2VxKCkubWFwKCgoW2UsdF0pPT5PKCkuY3JlYXRlRWxlbWVudChmLHtrZXk6YCR7ZX0tJHt0fWAscHJvcEtleTplLHByb3BWYWw6dCxwcm9wQ2xhc3M6InByb3BlcnR5In0pKSk6bnVsbCxjP08oKS5jcmVhdGVFbGVtZW50KGgse3NvdXJjZTpjfSk6bS5zaXplP08oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im1hcmtkb3duIn0pOm51bGwsdSYmTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZXh0ZXJuYWwtZG9jcyJ9LE8oKS5jcmVhdGVFbGVtZW50KFMse3RhcmdldDoiX2JsYW5rIixocmVmOnNhbml0aXplVXJsKHUpfSxkfHx1KSksTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoeSxRZSgpKHt9LHRoaXMucHJvcHMse2dldENvbmZpZ3M6dCxzcGVjUGF0aDpsLnB1c2goIml0ZW1zIiksbmFtZTpudWxsLHNjaGVtYTppLHJlcXVpcmVkOiExLGRlcHRoOmErMX0pKSksIl0iKSl9fWNvbnN0IGZ0PSJwcm9wZXJ0eSBwcmltaXRpdmUiO2NsYXNzIFByaW1pdGl2ZSBleHRlbmRzIHguQ29tcG9uZW50e3JlbmRlcigpe2xldHtzY2hlbWE6ZSxnZXRDb21wb25lbnQ6dCxnZXRDb25maWdzOnIsbmFtZTphLGRpc3BsYXlOYW1lOm4sZGVwdGg6cyxleHBhbmREZXB0aDpvfT10aGlzLnByb3BzO2NvbnN0e3Nob3dFeHRlbnNpb25zOmx9PXIoKTtpZighZXx8IWUuZ2V0KXJldHVybiBPKCkuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsKTtsZXQgYz1lLmdldCgidHlwZSIpLGk9ZS5nZXQoImZvcm1hdCIpLHA9ZS5nZXQoInhtbCIpLG09ZS5nZXQoImVudW0iKSx1PWUuZ2V0KCJ0aXRsZSIpfHxufHxhLGQ9ZS5nZXQoImRlc2NyaXB0aW9uIik7Y29uc3QgaD1nZXRFeHRlbnNpb25zKGUpO2xldCBnPWUuZmlsdGVyKCgoZSx0KT0+LTE9PT1bImVudW0iLCJ0eXBlIiwiZm9ybWF0IiwiZGVzY3JpcHRpb24iLCIkJHJlZiIsImV4dGVybmFsRG9jcyJdLmluZGV4T2YodCkpKS5maWx0ZXJOb3QoKChlLHQpPT5oLmhhcyh0KSkpLHk9ZS5nZXRJbihbImV4dGVybmFsRG9jcyIsInVybCJdKSxmPWUuZ2V0SW4oWyJleHRlcm5hbERvY3MiLCJkZXNjcmlwdGlvbiJdKTtjb25zdCBTPXQoIk1hcmtkb3duIiwhMCksRT10KCJFbnVtTW9kZWwiKSxfPXQoIlByb3BlcnR5Iiksdj10KCJNb2RlbENvbGxhcHNlIiksdz10KCJMaW5rIiksYj10KCJNb2RlbEV4dGVuc2lvbnMiKSxDPXUmJk8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtb2RlbC10aXRsZSJ9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJtb2RlbC10aXRsZV9fdGV4dCJ9LHUpKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsIn0sTygpLmNyZWF0ZUVsZW1lbnQodix7dGl0bGU6QyxleHBhbmRlZDpzPD1vLGNvbGxhcHNlZENvbnRlbnQ6IlsuLi5dIn0sTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6InByb3AifSxhJiZzPjEmJk8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJwcm9wLW5hbWUifSx1KSxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToicHJvcC10eXBlIn0sYyksaSYmTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6InByb3AtZm9ybWF0In0sIigkIixpLCIpIiksZy5zaXplP2cuZW50cnlTZXEoKS5tYXAoKChbZSx0XSk9Pk8oKS5jcmVhdGVFbGVtZW50KF8se2tleTpgJHtlfS0ke3R9YCxwcm9wS2V5OmUscHJvcFZhbDp0LHByb3BDbGFzczpmdH0pKSk6bnVsbCxsJiZoLnNpemU+MD9PKCkuY3JlYXRlRWxlbWVudChiLHtleHRlbnNpb25zOmgscHJvcENsYXNzOmAke2Z0fSBleHRlbnNpb25gfSk6bnVsbCxkP08oKS5jcmVhdGVFbGVtZW50KFMse3NvdXJjZTpkfSk6bnVsbCx5JiZPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJleHRlcm5hbC1kb2NzIn0sTygpLmNyZWF0ZUVsZW1lbnQodyx7dGFyZ2V0OiJfYmxhbmsiLGhyZWY6c2FuaXRpemVVcmwoeSl9LGZ8fHkpKSxwJiZwLnNpemU/TygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoImJyIixudWxsKSxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpmdH0sInhtbDoiKSxwLmVudHJ5U2VxKCkubWFwKCgoW2UsdF0pPT5PKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2tleTpgJHtlfS0ke3R9YCxjbGFzc05hbWU6ZnR9LE8oKS5jcmVhdGVFbGVtZW50KCJiciIsbnVsbCksIsKgwqDCoCIsZSwiOiAiLFN0cmluZyh0KSkpKS50b0FycmF5KCkpOm51bGwsbSYmTygpLmNyZWF0ZUVsZW1lbnQoRSx7dmFsdWU6bSxnZXRDb21wb25lbnQ6dH0pKSkpfX1jbGFzcyBTY2hlbWVzIGV4dGVuZHMgTygpLkNvbXBvbmVudHtVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCl7bGV0e3NjaGVtZXM6ZX09dGhpcy5wcm9wczt0aGlzLnNldFNjaGVtZShlLmZpcnN0KCkpfVVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKGUpe3RoaXMucHJvcHMuY3VycmVudFNjaGVtZSYmZS5zY2hlbWVzLmluY2x1ZGVzKHRoaXMucHJvcHMuY3VycmVudFNjaGVtZSl8fHRoaXMuc2V0U2NoZW1lKGUuc2NoZW1lcy5maXJzdCgpKX1vbkNoYW5nZT1lPT57dGhpcy5zZXRTY2hlbWUoZS50YXJnZXQudmFsdWUpfTtzZXRTY2hlbWU9ZT0+e2xldHtwYXRoOnQsbWV0aG9kOnIsc3BlY0FjdGlvbnM6YX09dGhpcy5wcm9wczthLnNldFNjaGVtZShlLHQscil9O3JlbmRlcigpe2xldHtzY2hlbWVzOmUsY3VycmVudFNjaGVtZTp0fT10aGlzLnByb3BzO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtodG1sRm9yOiJzY2hlbWVzIn0sTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6InNjaGVtZXMtdGl0bGUifSwiU2NoZW1lcyIpLE8oKS5jcmVhdGVFbGVtZW50KCJzZWxlY3QiLHtvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlLHZhbHVlOnQsaWQ6InNjaGVtZXMifSxlLnZhbHVlU2VxKCkubWFwKChlPT5PKCkuY3JlYXRlRWxlbWVudCgib3B0aW9uIix7dmFsdWU6ZSxrZXk6ZX0sZSkpKS50b0FycmF5KCkpKX19Y2xhc3MgU2NoZW1lc0NvbnRhaW5lciBleHRlbmRzIE8oKS5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7c3BlY0FjdGlvbnM6ZSxzcGVjU2VsZWN0b3JzOnQsZ2V0Q29tcG9uZW50OnJ9PXRoaXMucHJvcHMsYT10Lm9wZXJhdGlvblNjaGVtZSgpLG49dC5zY2hlbWVzKCkscz1yKCJzY2hlbWVzIik7cmV0dXJuIG4mJm4uc2l6ZT9PKCkuY3JlYXRlRWxlbWVudChzLHtjdXJyZW50U2NoZW1lOmEsc2NoZW1lczpuLHNwZWNBY3Rpb25zOmV9KTpudWxsfX1jb25zdCBTdD1yZXF1aXJlKCJyZWFjdC1kZWJvdW5jZS1pbnB1dCIpO3ZhciBFdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oU3QpO2NvbnN0IF90PXt2YWx1ZToiIixvbkNoYW5nZTooKT0+e30sc2NoZW1hOnt9LGtleU5hbWU6IiIscmVxdWlyZWQ6ITEsZXJyb3JzOigwLGsuTGlzdCkoKX07Y2xhc3MgSnNvblNjaGVtYUZvcm0gZXh0ZW5kcyB4LkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPV90O2NvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7ZGlzcGF0Y2hJbml0aWFsVmFsdWU6ZSx2YWx1ZTp0LG9uQ2hhbmdlOnJ9PXRoaXMucHJvcHM7ZT9yKHQpOiExPT09ZSYmcigiIil9cmVuZGVyKCl7bGV0e3NjaGVtYTplLGVycm9yczp0LHZhbHVlOnIsb25DaGFuZ2U6YSxnZXRDb21wb25lbnQ6bixmbjpzLGRpc2FibGVkOm99PXRoaXMucHJvcHM7Y29uc3QgbD1lJiZlLmdldD9lLmdldCgiZm9ybWF0Iik6bnVsbCxjPWUmJmUuZ2V0P2UuZ2V0KCJ0eXBlIik6bnVsbCxpPXMuZ2V0U2NoZW1hT2JqZWN0VHlwZShlKSxwPXMuaXNGaWxlVXBsb2FkSW50ZW5kZWQoZSk7bGV0IGdldENvbXBvbmVudFNpbGVudGx5PWU9Pm4oZSwhMSx7ZmFpbFNpbGVudGx5OiEwfSksbT1jP2dldENvbXBvbmVudFNpbGVudGx5KGw/YEpzb25TY2hlbWFfJHtjfV8ke2x9YDpgSnNvblNjaGVtYV8ke2N9YCk6bigiSnNvblNjaGVtYV9zdHJpbmciKTtyZXR1cm4gcHx8IWsuTGlzdC5pc0xpc3QoYyl8fCJhcnJheSIhPT1pJiYib2JqZWN0IiE9PWl8fChtPW4oIkpzb25TY2hlbWFfb2JqZWN0IikpLG18fChtPW4oIkpzb25TY2hlbWFfc3RyaW5nIikpLE8oKS5jcmVhdGVFbGVtZW50KG0sUWUoKSh7fSx0aGlzLnByb3BzLHtlcnJvcnM6dCxmbjpzLGdldENvbXBvbmVudDpuLHZhbHVlOnIsb25DaGFuZ2U6YSxzY2hlbWE6ZSxkaXNhYmxlZDpvfSkpfX1jbGFzcyBKc29uU2NoZW1hX3N0cmluZyBleHRlbmRzIHguQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9X3Q7b25DaGFuZ2U9ZT0+e2NvbnN0IHQ9dGhpcy5wcm9wcy5zY2hlbWEmJiJmaWxlIj09PXRoaXMucHJvcHMuc2NoZW1hLmdldCgidHlwZSIpP2UudGFyZ2V0LmZpbGVzWzBdOmUudGFyZ2V0LnZhbHVlO3RoaXMucHJvcHMub25DaGFuZ2UodCx0aGlzLnByb3BzLmtleU5hbWUpfTtvbkVudW1DaGFuZ2U9ZT0+dGhpcy5wcm9wcy5vbkNoYW5nZShlKTtyZW5kZXIoKXtsZXR7Z2V0Q29tcG9uZW50OmUsdmFsdWU6dCxzY2hlbWE6cixlcnJvcnM6YSxyZXF1aXJlZDpuLGRlc2NyaXB0aW9uOnMsZGlzYWJsZWQ6b309dGhpcy5wcm9wcztjb25zdCBsPXImJnIuZ2V0P3IuZ2V0KCJlbnVtIik6bnVsbCxjPXImJnIuZ2V0P3IuZ2V0KCJmb3JtYXQiKTpudWxsLGk9ciYmci5nZXQ/ci5nZXQoInR5cGUiKTpudWxsLHA9ciYmci5nZXQ/ci5nZXQoImluIik6bnVsbDtpZih0Pyhpc0ltbXV0YWJsZSh0KXx8Im9iamVjdCI9PXR5cGVvZiB0KSYmKHQ9c3RyaW5naWZ5KHQpKTp0PSIiLGE9YS50b0pTP2EudG9KUygpOltdLGwpe2NvbnN0IHI9ZSgiU2VsZWN0Iik7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KHIse2NsYXNzTmFtZTphLmxlbmd0aD8iaW52YWxpZCI6IiIsdGl0bGU6YS5sZW5ndGg/YToiIixhbGxvd2VkVmFsdWVzOlsuLi5sXSx2YWx1ZTp0LGFsbG93RW1wdHlWYWx1ZTohbixkaXNhYmxlZDpvLG9uQ2hhbmdlOnRoaXMub25FbnVtQ2hhbmdlfSl9Y29uc3QgbT1vfHxwJiYiZm9ybURhdGEiPT09cCYmISgiRm9ybURhdGEiaW4gd2luZG93KSx1PWUoIklucHV0Iik7cmV0dXJuIGkmJiJmaWxlIj09PWk/TygpLmNyZWF0ZUVsZW1lbnQodSx7dHlwZToiZmlsZSIsY2xhc3NOYW1lOmEubGVuZ3RoPyJpbnZhbGlkIjoiIix0aXRsZTphLmxlbmd0aD9hOiIiLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2UsZGlzYWJsZWQ6bX0pOk8oKS5jcmVhdGVFbGVtZW50KEV0KCkse3R5cGU6YyYmInBhc3N3b3JkIj09PWM/InBhc3N3b3JkIjoidGV4dCIsY2xhc3NOYW1lOmEubGVuZ3RoPyJpbnZhbGlkIjoiIix0aXRsZTphLmxlbmd0aD9hOiIiLHZhbHVlOnQsbWluTGVuZ3RoOjAsZGVib3VuY2VUaW1lb3V0OjM1MCxwbGFjZWhvbGRlcjpzLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2UsZGlzYWJsZWQ6bX0pfX1jbGFzcyBKc29uU2NoZW1hX2FycmF5IGV4dGVuZHMgeC5QdXJlQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9X3Q7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLHRoaXMuc3RhdGU9e3ZhbHVlOnZhbHVlT3JFbXB0eUxpc3QoZS52YWx1ZSksc2NoZW1hOmUuc2NoZW1hfX1VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhlKXtjb25zdCB0PXZhbHVlT3JFbXB0eUxpc3QoZS52YWx1ZSk7dCE9PXRoaXMuc3RhdGUudmFsdWUmJnRoaXMuc2V0U3RhdGUoe3ZhbHVlOnR9KSxlLnNjaGVtYSE9PXRoaXMuc3RhdGUuc2NoZW1hJiZ0aGlzLnNldFN0YXRlKHtzY2hlbWE6ZS5zY2hlbWF9KX1vbkNoYW5nZT0oKT0+e3RoaXMucHJvcHMub25DaGFuZ2UodGhpcy5zdGF0ZS52YWx1ZSl9O29uSXRlbUNoYW5nZT0oZSx0KT0+e3RoaXMuc2V0U3RhdGUoKCh7dmFsdWU6cn0pPT4oe3ZhbHVlOnIuc2V0KHQsZSl9KSksdGhpcy5vbkNoYW5nZSl9O3JlbW92ZUl0ZW09ZT0+e3RoaXMuc2V0U3RhdGUoKCh7dmFsdWU6dH0pPT4oe3ZhbHVlOnQuZGVsZXRlKGUpfSkpLHRoaXMub25DaGFuZ2UpfTthZGRJdGVtPSgpPT57Y29uc3R7Zm46ZX09dGhpcy5wcm9wcztsZXQgdD12YWx1ZU9yRW1wdHlMaXN0KHRoaXMuc3RhdGUudmFsdWUpO3RoaXMuc2V0U3RhdGUoKCgpPT4oe3ZhbHVlOnQucHVzaChlLmdldFNhbXBsZVNjaGVtYSh0aGlzLnN0YXRlLnNjaGVtYS5nZXQoIml0ZW1zIiksITEse2luY2x1ZGVXcml0ZU9ubHk6ITB9KSl9KSksdGhpcy5vbkNoYW5nZSl9O29uRW51bUNoYW5nZT1lPT57dGhpcy5zZXRTdGF0ZSgoKCk9Pih7dmFsdWU6ZX0pKSx0aGlzLm9uQ2hhbmdlKX07cmVuZGVyKCl7bGV0e2dldENvbXBvbmVudDplLHJlcXVpcmVkOnQsc2NoZW1hOnIsZXJyb3JzOmEsZm46bixkaXNhYmxlZDpzfT10aGlzLnByb3BzO2E9YS50b0pTP2EudG9KUygpOkFycmF5LmlzQXJyYXkoYSk/YTpbXTtjb25zdCBvPWEuZmlsdGVyKChlPT4ic3RyaW5nIj09dHlwZW9mIGUpKSxsPWEuZmlsdGVyKChlPT52b2lkIDAhPT1lLm5lZWRSZW1vdmUpKS5tYXAoKGU9PmUuZXJyb3IpKSxjPXRoaXMuc3RhdGUudmFsdWUsaT0hIShjJiZjLmNvdW50JiZjLmNvdW50KCk+MCkscD1yLmdldEluKFsiaXRlbXMiLCJlbnVtIl0pLG09ci5nZXQoIml0ZW1zIiksdT1uLmdldFNjaGVtYU9iamVjdFR5cGUobSksZD1uLmdldFNjaGVtYU9iamVjdFR5cGVMYWJlbChtKSxoPXIuZ2V0SW4oWyJpdGVtcyIsImZvcm1hdCJdKSxnPXIuZ2V0KCJpdGVtcyIpO2xldCB5LGY9ITEsUz0iZmlsZSI9PT11fHwic3RyaW5nIj09PXUmJiJiaW5hcnkiPT09aDtpZih1JiZoP3k9ZShgSnNvblNjaGVtYV8ke3V9XyR7aH1gKToiYm9vbGVhbiIhPT11JiYiYXJyYXkiIT09dSYmIm9iamVjdCIhPT11fHwoeT1lKGBKc29uU2NoZW1hXyR7dX1gKSksIWsuTGlzdC5pc0xpc3QobT8uZ2V0KCJ0eXBlIikpfHwiYXJyYXkiIT09dSYmIm9iamVjdCIhPT11fHwoeT1lKCJKc29uU2NoZW1hX29iamVjdCIpKSx5fHxTfHwoZj0hMCkscCl7Y29uc3Qgcj1lKCJTZWxlY3QiKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQocix7Y2xhc3NOYW1lOmEubGVuZ3RoPyJpbnZhbGlkIjoiIix0aXRsZTphLmxlbmd0aD9hOiIiLG11bHRpcGxlOiEwLHZhbHVlOmMsZGlzYWJsZWQ6cyxhbGxvd2VkVmFsdWVzOnAsYWxsb3dFbXB0eVZhbHVlOiF0LG9uQ2hhbmdlOnRoaXMub25FbnVtQ2hhbmdlfSl9Y29uc3QgRT1lKCJCdXR0b24iKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtYXJyYXkifSxpP2MubWFwKCgodCxyKT0+e2NvbnN0IG89KDAsay5mcm9tSlMpKFsuLi5hLmZpbHRlcigoZT0+ZS5pbmRleD09PXIpKS5tYXAoKGU9PmUuZXJyb3IpKV0pO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5OnIsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS1mb3JtLWl0ZW0ifSxTP08oKS5jcmVhdGVFbGVtZW50KEpzb25TY2hlbWFBcnJheUl0ZW1GaWxlLHt2YWx1ZTp0LG9uQ2hhbmdlOmU9PnRoaXMub25JdGVtQ2hhbmdlKGUsciksZGlzYWJsZWQ6cyxlcnJvcnM6byxnZXRDb21wb25lbnQ6ZX0pOmY/TygpLmNyZWF0ZUVsZW1lbnQoSnNvblNjaGVtYUFycmF5SXRlbVRleHQse3ZhbHVlOnQsb25DaGFuZ2U6ZT0+dGhpcy5vbkl0ZW1DaGFuZ2UoZSxyKSxkaXNhYmxlZDpzLGVycm9yczpvfSk6TygpLmNyZWF0ZUVsZW1lbnQoeSxRZSgpKHt9LHRoaXMucHJvcHMse3ZhbHVlOnQsb25DaGFuZ2U6ZT0+dGhpcy5vbkl0ZW1DaGFuZ2UoZSxyKSxkaXNhYmxlZDpzLGVycm9yczpvLHNjaGVtYTpnLGdldENvbXBvbmVudDplLGZuOm59KSkscz9udWxsOk8oKS5jcmVhdGVFbGVtZW50KEUse2NsYXNzTmFtZTpgYnRuIGJ0bi1zbSBqc29uLXNjaGVtYS1mb3JtLWl0ZW0tcmVtb3ZlICR7bC5sZW5ndGg/ImludmFsaWQiOm51bGx9YCx0aXRsZTpsLmxlbmd0aD9sOiIiLG9uQ2xpY2s6KCk9PnRoaXMucmVtb3ZlSXRlbShyKX0sIiAtICIpKX0pKTpudWxsLHM/bnVsbDpPKCkuY3JlYXRlRWxlbWVudChFLHtjbGFzc05hbWU6YGJ0biBidG4tc20ganNvbi1zY2hlbWEtZm9ybS1pdGVtLWFkZCAke28ubGVuZ3RoPyJpbnZhbGlkIjpudWxsfWAsdGl0bGU6by5sZW5ndGg/bzoiIixvbkNsaWNrOnRoaXMuYWRkSXRlbX0sIkFkZCAiLGQsIiBpdGVtIikpfX1jbGFzcyBKc29uU2NoZW1hQXJyYXlJdGVtVGV4dCBleHRlbmRzIHguQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9X3Q7b25DaGFuZ2U9ZT0+e2NvbnN0IHQ9ZS50YXJnZXQudmFsdWU7dGhpcy5wcm9wcy5vbkNoYW5nZSh0LHRoaXMucHJvcHMua2V5TmFtZSl9O3JlbmRlcigpe2xldHt2YWx1ZTplLGVycm9yczp0LGRlc2NyaXB0aW9uOnIsZGlzYWJsZWQ6YX09dGhpcy5wcm9wcztyZXR1cm4gZT8oaXNJbW11dGFibGUoZSl8fCJvYmplY3QiPT10eXBlb2YgZSkmJihlPXN0cmluZ2lmeShlKSk6ZT0iIix0PXQudG9KUz90LnRvSlMoKTpbXSxPKCkuY3JlYXRlRWxlbWVudChFdCgpLHt0eXBlOiJ0ZXh0IixjbGFzc05hbWU6dC5sZW5ndGg/ImludmFsaWQiOiIiLHRpdGxlOnQubGVuZ3RoP3Q6IiIsdmFsdWU6ZSxtaW5MZW5ndGg6MCxkZWJvdW5jZVRpbWVvdXQ6MzUwLHBsYWNlaG9sZGVyOnIsb25DaGFuZ2U6dGhpcy5vbkNoYW5nZSxkaXNhYmxlZDphfSl9fWNsYXNzIEpzb25TY2hlbWFBcnJheUl0ZW1GaWxlIGV4dGVuZHMgeC5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz1fdDtvbkZpbGVDaGFuZ2U9ZT0+e2NvbnN0IHQ9ZS50YXJnZXQuZmlsZXNbMF07dGhpcy5wcm9wcy5vbkNoYW5nZSh0LHRoaXMucHJvcHMua2V5TmFtZSl9O3JlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6ZSxlcnJvcnM6dCxkaXNhYmxlZDpyfT10aGlzLnByb3BzO2NvbnN0IGE9ZSgiSW5wdXQiKSxuPXJ8fCEoIkZvcm1EYXRhImluIHdpbmRvdyk7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KGEse3R5cGU6ImZpbGUiLGNsYXNzTmFtZTp0Lmxlbmd0aD8iaW52YWxpZCI6IiIsdGl0bGU6dC5sZW5ndGg/dDoiIixvbkNoYW5nZTp0aGlzLm9uRmlsZUNoYW5nZSxkaXNhYmxlZDpufSl9fWNsYXNzIEpzb25TY2hlbWFfYm9vbGVhbiBleHRlbmRzIHguQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9X3Q7b25FbnVtQ2hhbmdlPWU9PnRoaXMucHJvcHMub25DaGFuZ2UoZSk7cmVuZGVyKCl7bGV0e2dldENvbXBvbmVudDplLHZhbHVlOnQsZXJyb3JzOnIsc2NoZW1hOmEscmVxdWlyZWQ6bixkaXNhYmxlZDpzfT10aGlzLnByb3BzO3I9ci50b0pTP3IudG9KUygpOltdO2xldCBvPWEmJmEuZ2V0P2EuZ2V0KCJlbnVtIik6bnVsbCxsPSFvfHwhbixjPSFvJiZbInRydWUiLCJmYWxzZSJdO2NvbnN0IGk9ZSgiU2VsZWN0Iik7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KGkse2NsYXNzTmFtZTpyLmxlbmd0aD8iaW52YWxpZCI6IiIsdGl0bGU6ci5sZW5ndGg/cjoiIix2YWx1ZTpTdHJpbmcodCksZGlzYWJsZWQ6cyxhbGxvd2VkVmFsdWVzOm8/Wy4uLm9dOmMsYWxsb3dFbXB0eVZhbHVlOmwsb25DaGFuZ2U6dGhpcy5vbkVudW1DaGFuZ2V9KX19Y29uc3Qgc3RyaW5naWZ5T2JqZWN0RXJyb3JzPWU9PmUubWFwKChlPT57Y29uc3QgdD12b2lkIDAhPT1lLnByb3BLZXk/ZS5wcm9wS2V5OmUuaW5kZXg7bGV0IHI9InN0cmluZyI9PXR5cGVvZiBlP2U6InN0cmluZyI9PXR5cGVvZiBlLmVycm9yP2UuZXJyb3I6bnVsbDtpZighdCYmcilyZXR1cm4gcjtsZXQgYT1lLmVycm9yLG49YC8ke2UucHJvcEtleX1gO2Zvcig7Im9iamVjdCI9PXR5cGVvZiBhOyl7Y29uc3QgZT12b2lkIDAhPT1hLnByb3BLZXk/YS5wcm9wS2V5OmEuaW5kZXg7aWYodm9pZCAwPT09ZSlicmVhaztpZihuKz1gLyR7ZX1gLCFhLmVycm9yKWJyZWFrO2E9YS5lcnJvcn1yZXR1cm5gJHtufTogJHthfWB9KSk7Y2xhc3MgSnNvblNjaGVtYV9vYmplY3QgZXh0ZW5kcyB4LlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoKXtzdXBlcigpfXN0YXRpYyBkZWZhdWx0UHJvcHM9X3Q7b25DaGFuZ2U9ZT0+e3RoaXMucHJvcHMub25DaGFuZ2UoZSl9O2hhbmRsZU9uQ2hhbmdlPWU9Pntjb25zdCB0PWUudGFyZ2V0LnZhbHVlO3RoaXMub25DaGFuZ2UodCl9O3JlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6ZSx2YWx1ZTp0LGVycm9yczpyLGRpc2FibGVkOmF9PXRoaXMucHJvcHM7Y29uc3Qgbj1lKCJUZXh0QXJlYSIpO3JldHVybiByPXIudG9KUz9yLnRvSlMoKTpBcnJheS5pc0FycmF5KHIpP3I6W10sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudChuLHtjbGFzc05hbWU6cHQoKSh7aW52YWxpZDpyLmxlbmd0aH0pLHRpdGxlOnIubGVuZ3RoP3N0cmluZ2lmeU9iamVjdEVycm9ycyhyKS5qb2luKCIsICIpOiIiLHZhbHVlOnN0cmluZ2lmeSh0KSxkaXNhYmxlZDphLG9uQ2hhbmdlOnRoaXMuaGFuZGxlT25DaGFuZ2V9KSl9fWZ1bmN0aW9uIHZhbHVlT3JFbXB0eUxpc3QoZSl7cmV0dXJuIGsuTGlzdC5pc0xpc3QoZSk/ZTpBcnJheS5pc0FycmF5KGUpPygwLGsuZnJvbUpTKShlKTooMCxrLkxpc3QpKCl9Y29uc3QgTW9kZWxFeHRlbnNpb25zPSh7ZXh0ZW5zaW9uczplLHByb3BDbGFzczp0PSIifSk9PmUuZW50cnlTZXEoKS5tYXAoKChbZSxyXSk9Pntjb25zdCBhPWltbXV0YWJsZVRvSlMocik/P251bGw7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJ0ciIse2tleTplLGNsYXNzTmFtZTp0fSxPKCkuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsZSksTygpLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLEpTT04uc3RyaW5naWZ5KGEpKSl9KSkudG9BcnJheSgpLHZ0PXJlcXVpcmUoImxvZGFzaC9pc1BsYWluT2JqZWN0Iik7dmFyIHd0PV9fd2VicGFja19yZXF1aXJlX18ubih2dCk7Y29uc3QgaGFzU2NoZW1hVHlwZT0oZSx0KT0+e2NvbnN0IHI9ay5NYXAuaXNNYXAoZSk7aWYoIXImJiF3dCgpKGUpKXJldHVybiExO2NvbnN0IGE9cj9lLmdldCgidHlwZSIpOmUudHlwZTtyZXR1cm4gdD09PWF8fEFycmF5LmlzQXJyYXkodCkmJnQuaW5jbHVkZXMoYSl9LGdldFR5cGU9KGUsdD1uZXcgV2Vha1NldCk9PntpZihudWxsPT1lKXJldHVybiJhbnkiO2lmKHQuaGFzKGUpKXJldHVybiJhbnkiO3QuYWRkKGUpO2NvbnN0e3R5cGU6cixpdGVtczphfT1lO3JldHVybiBPYmplY3QuaGFzT3duKGUsIml0ZW1zIik/KCgpPT57aWYoYSlyZXR1cm5gYXJyYXk8JHtnZXRUeXBlKGEsdCl9PmA7cmV0dXJuImFycmF5PGFueT4ifSkoKTpyfSxnZXRTY2hlbWFPYmplY3RUeXBlTGFiZWw9ZT0+Z2V0VHlwZShpbW11dGFibGVUb0pTKGUpKSxqc29uX3NjaGVtYV81PSgpPT4oe2NvbXBvbmVudHM6e21vZGVsRXhhbXBsZTptb2RlbF9leGFtcGxlLE1vZGVsV3JhcHBlcixNb2RlbENvbGxhcHNlLE1vZGVsLE1vZGVscyxFbnVtTW9kZWw6ZW51bV9tb2RlbCxPYmplY3RNb2RlbCxBcnJheU1vZGVsLFByaW1pdGl2ZU1vZGVsOlByaW1pdGl2ZSxNb2RlbEV4dGVuc2lvbnMsc2NoZW1lczpTY2hlbWVzLFNjaGVtZXNDb250YWluZXIsLi4uZ30sZm46e2hhc1NjaGVtYVR5cGUsZ2V0U2NoZW1hT2JqZWN0VHlwZUxhYmVsfX0pLGJ0PXJlcXVpcmUoInhtbCIpO3ZhciBDdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oYnQpO2NvbnN0IHh0PXJlcXVpcmUoInJhbmRleHAiKTt2YXIgT3Q9X193ZWJwYWNrX3JlcXVpcmVfXy5uKHh0KTtjb25zdCBOdD1yZXF1aXJlKCJsb2Rhc2gvaXNFbXB0eSIpO3ZhciBrdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oTnQpO2NvbnN0IHNoYWxsb3dBcnJheUVxdWFscz1lPT50PT5BcnJheS5pc0FycmF5KGUpJiZBcnJheS5pc0FycmF5KHQpJiZlLmxlbmd0aD09PXQubGVuZ3RoJiZlLmV2ZXJ5KCgoZSxyKT0+ZT09PXRbcl0pKSxsaXN0PSguLi5lKT0+ZTtjbGFzcyBDYWNoZSBleHRlbmRzIE1hcHtkZWxldGUoZSl7Y29uc3QgdD1BcnJheS5mcm9tKHRoaXMua2V5cygpKS5maW5kKHNoYWxsb3dBcnJheUVxdWFscyhlKSk7cmV0dXJuIHN1cGVyLmRlbGV0ZSh0KX1nZXQoZSl7Y29uc3QgdD1BcnJheS5mcm9tKHRoaXMua2V5cygpKS5maW5kKHNoYWxsb3dBcnJheUVxdWFscyhlKSk7cmV0dXJuIHN1cGVyLmdldCh0KX1oYXMoZSl7cmV0dXJuLTEhPT1BcnJheS5mcm9tKHRoaXMua2V5cygpKS5maW5kSW5kZXgoc2hhbGxvd0FycmF5RXF1YWxzKGUpKX19Y29uc3QgdXRpbHNfbWVtb2l6ZU49KGUsdD1saXN0KT0+e2NvbnN0e0NhY2hlOnJ9PUIoKTtCKCkuQ2FjaGU9Q2FjaGU7Y29uc3QgYT1CKCkoZSx0KTtyZXR1cm4gQigpLkNhY2hlPXIsYX0sQXQ9e3N0cmluZzplPT5lLnBhdHRlcm4/KGU9Pnt0cnl7Y29uc3QgdD0vKD88PSg/PCFcXClceykoXGR7Myx9KSg/PVx9KXwoPzw9KD88IVxcKVx7XGQqLCkoXGR7Myx9KSg/PVx9KXwoPzw9KD88IVxcKVx7KShcZHszLH0pKD89LFxkKlx9KS9nLHI9ZS5yZXBsYWNlKHQsIjEwMCIpLGE9bmV3KE90KCkpKHIpO3JldHVybiBhLm1heD0xMDAsYS5nZW4oKX1jYXRjaChlKXtyZXR1cm4ic3RyaW5nIn19KShlLnBhdHRlcm4pOiJzdHJpbmciLHN0cmluZ19lbWFpbDooKT0+InVzZXJAZXhhbXBsZS5jb20iLCJzdHJpbmdfZGF0ZS10aW1lIjooKT0+KG5ldyBEYXRlKS50b0lTT1N0cmluZygpLHN0cmluZ19kYXRlOigpPT4obmV3IERhdGUpLnRvSVNPU3RyaW5nKCkuc3Vic3RyaW5nKDAsMTApLHN0cmluZ190aW1lOigpPT4obmV3IERhdGUpLnRvSVNPU3RyaW5nKCkuc3Vic3RyaW5nKDExKSxzdHJpbmdfdXVpZDooKT0+IjNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNiIsc3RyaW5nX2hvc3RuYW1lOigpPT4iZXhhbXBsZS5jb20iLHN0cmluZ19pcHY0OigpPT4iMTk4LjUxLjEwMC40MiIsc3RyaW5nX2lwdjY6KCk9PiIyMDAxOjBkYjg6NWI5NjowMDAwOjAwMDA6NDI2Zjo4ZTE3OjY0MmEiLG51bWJlcjooKT0+MCxudW1iZXJfZmxvYXQ6KCk9PjAsaW50ZWdlcjooKT0+MCxib29sZWFuOmU9PiJib29sZWFuIiE9dHlwZW9mIGUuZGVmYXVsdHx8ZS5kZWZhdWx0fSxwcmltaXRpdmU9ZT0+e2U9b2JqZWN0aWZ5KGUpO2xldHt0eXBlOnQsZm9ybWF0OnJ9PWUsYT1BdFtgJHt0fV8ke3J9YF18fEF0W3RdO3JldHVybiBpc0Z1bmMoYSk/YShlKToiVW5rbm93biBUeXBlOiAiK2UudHlwZX0sc2FuaXRpemVSZWY9ZT0+ZGVlcGx5U3RyaXBLZXkoZSwiJCRyZWYiLChlPT4ic3RyaW5nIj09dHlwZW9mIGUmJmUuaW5kZXhPZigiIyIpPi0xKSksSXQ9WyJtYXhQcm9wZXJ0aWVzIiwibWluUHJvcGVydGllcyJdLGp0PVsibWluSXRlbXMiLCJtYXhJdGVtcyJdLHF0PVsibWluaW11bSIsIm1heGltdW0iLCJleGNsdXNpdmVNaW5pbXVtIiwiZXhjbHVzaXZlTWF4aW11bSJdLFB0PVsibWluTGVuZ3RoIiwibWF4TGVuZ3RoIl0sbWVyZ2VKc29uU2NoZW1hPShlLHQscj17fSk9Pntjb25zdCBhPXsuLi5lfTtpZihbImV4YW1wbGUiLCJkZWZhdWx0IiwiZW51bSIsInhtbCIsInR5cGUiLC4uLkl0LC4uLmp0LC4uLnF0LC4uLlB0XS5mb3JFYWNoKChlPT4oZT0+e3ZvaWQgMD09PWFbZV0mJnZvaWQgMCE9PXRbZV0mJihhW2VdPXRbZV0pfSkoZSkpKSx2b2lkIDAhPT10LnJlcXVpcmVkJiZBcnJheS5pc0FycmF5KHQucmVxdWlyZWQpJiYodm9pZCAwIT09YS5yZXF1aXJlZCYmYS5yZXF1aXJlZC5sZW5ndGh8fChhLnJlcXVpcmVkPVtdKSx0LnJlcXVpcmVkLmZvckVhY2goKGU9PnthLnJlcXVpcmVkLmluY2x1ZGVzKGUpfHxhLnJlcXVpcmVkLnB1c2goZSl9KSkpLHQucHJvcGVydGllcyl7YS5wcm9wZXJ0aWVzfHwoYS5wcm9wZXJ0aWVzPXt9KTtsZXQgZT1vYmplY3RpZnkodC5wcm9wZXJ0aWVzKTtmb3IobGV0IG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKGVbbl0mJmVbbl0uZGVwcmVjYXRlZHx8ZVtuXSYmZVtuXS5yZWFkT25seSYmIXIuaW5jbHVkZVJlYWRPbmx5fHxlW25dJiZlW25dLndyaXRlT25seSYmIXIuaW5jbHVkZVdyaXRlT25seXx8YS5wcm9wZXJ0aWVzW25dfHwoYS5wcm9wZXJ0aWVzW25dPWVbbl0sIXQucmVxdWlyZWQmJkFycmF5LmlzQXJyYXkodC5yZXF1aXJlZCkmJi0xIT09dC5yZXF1aXJlZC5pbmRleE9mKG4pJiYoYS5yZXF1aXJlZD9hLnJlcXVpcmVkLnB1c2gobik6YS5yZXF1aXJlZD1bbl0pKSl9cmV0dXJuIHQuaXRlbXMmJihhLml0ZW1zfHwoYS5pdGVtcz17fSksYS5pdGVtcz1tZXJnZUpzb25TY2hlbWEoYS5pdGVtcyx0Lml0ZW1zLHIpKSxhfSxzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYz0oZSx0PXt9LHI9dm9pZCAwLGE9ITEpPT57ZSYmaXNGdW5jKGUudG9KUykmJihlPWUudG9KUygpKTtsZXQgbj12b2lkIDAhPT1yfHxlJiZ2b2lkIDAhPT1lLmV4YW1wbGV8fGUmJnZvaWQgMCE9PWUuZGVmYXVsdDtjb25zdCBzPSFuJiZlJiZlLm9uZU9mJiZlLm9uZU9mLmxlbmd0aD4wLG89IW4mJmUmJmUuYW55T2YmJmUuYW55T2YubGVuZ3RoPjA7aWYoIW4mJihzfHxvKSl7Y29uc3Qgcj1vYmplY3RpZnkocz9lLm9uZU9mWzBdOmUuYW55T2ZbMF0pO2lmKCEoZT1tZXJnZUpzb25TY2hlbWEoZSxyLHQpKS54bWwmJnIueG1sJiYoZS54bWw9ci54bWwpLHZvaWQgMCE9PWUuZXhhbXBsZSYmdm9pZCAwIT09ci5leGFtcGxlKW49ITA7ZWxzZSBpZihyLnByb3BlcnRpZXMpe2UucHJvcGVydGllc3x8KGUucHJvcGVydGllcz17fSk7bGV0IGE9b2JqZWN0aWZ5KHIucHJvcGVydGllcyk7Zm9yKGxldCBuIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsbikmJihhW25dJiZhW25dLmRlcHJlY2F0ZWR8fGFbbl0mJmFbbl0ucmVhZE9ubHkmJiF0LmluY2x1ZGVSZWFkT25seXx8YVtuXSYmYVtuXS53cml0ZU9ubHkmJiF0LmluY2x1ZGVXcml0ZU9ubHl8fGUucHJvcGVydGllc1tuXXx8KGUucHJvcGVydGllc1tuXT1hW25dLCFyLnJlcXVpcmVkJiZBcnJheS5pc0FycmF5KHIucmVxdWlyZWQpJiYtMSE9PXIucmVxdWlyZWQuaW5kZXhPZihuKSYmKGUucmVxdWlyZWQ/ZS5yZXF1aXJlZC5wdXNoKG4pOmUucmVxdWlyZWQ9W25dKSkpfX1jb25zdCBsPXt9O2xldHt4bWw6Yyx0eXBlOmksZXhhbXBsZTpwLHByb3BlcnRpZXM6bSxhZGRpdGlvbmFsUHJvcGVydGllczp1LGl0ZW1zOmR9PWV8fHt9LHtpbmNsdWRlUmVhZE9ubHk6aCxpbmNsdWRlV3JpdGVPbmx5Omd9PXQ7Yz1jfHx7fTtsZXQgeSx7bmFtZTpmLHByZWZpeDpTLG5hbWVzcGFjZTpFfT1jLF89e307aWYoYSYmKGY9Znx8Im5vdGFnbmFtZSIseT0oUz9TKyI6IjoiIikrZixFKSl7bFtTPyJ4bWxuczoiK1M6InhtbG5zIl09RX1hJiYoX1t5XT1bXSk7Y29uc3Qgc2NoZW1hSGFzQW55PXQ9PnQuc29tZSgodD0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCkpKTtlJiYhaSYmKG18fHV8fHNjaGVtYUhhc0FueShJdCk/aT0ib2JqZWN0IjpkfHxzY2hlbWFIYXNBbnkoanQpP2k9ImFycmF5IjpzY2hlbWFIYXNBbnkocXQpPyhpPSJudW1iZXIiLGUudHlwZT0ibnVtYmVyIik6bnx8ZS5lbnVtfHwoaT0ic3RyaW5nIixlLnR5cGU9InN0cmluZyIpKTtjb25zdCBoYW5kbGVNaW5NYXhJdGVtcz10PT57aWYobnVsbCE9ZT8ubWF4SXRlbXMmJih0PXQuc2xpY2UoMCxlPy5tYXhJdGVtcykpLG51bGwhPWU/Lm1pbkl0ZW1zKXtsZXQgcj0wO2Zvcig7dC5sZW5ndGg8ZT8ubWluSXRlbXM7KXQucHVzaCh0W3IrKyV0Lmxlbmd0aF0pfXJldHVybiB0fSx2PW9iamVjdGlmeShtKTtsZXQgdyxiPTA7Y29uc3QgaGFzRXhjZWVkZWRNYXhQcm9wZXJ0aWVzPSgpPT5lJiZudWxsIT09ZS5tYXhQcm9wZXJ0aWVzJiZ2b2lkIDAhPT1lLm1heFByb3BlcnRpZXMmJmI+PWUubWF4UHJvcGVydGllcyxjYW5BZGRQcm9wZXJ0eT10PT4hZXx8bnVsbD09PWUubWF4UHJvcGVydGllc3x8dm9pZCAwPT09ZS5tYXhQcm9wZXJ0aWVzfHwhaGFzRXhjZWVkZWRNYXhQcm9wZXJ0aWVzKCkmJighKHQ9PiEoZSYmZS5yZXF1aXJlZCYmZS5yZXF1aXJlZC5sZW5ndGgmJmUucmVxdWlyZWQuaW5jbHVkZXModCkpKSh0KXx8ZS5tYXhQcm9wZXJ0aWVzLWItKCgpPT57aWYoIWV8fCFlLnJlcXVpcmVkKXJldHVybiAwO2xldCB0PTA7cmV0dXJuIGE/ZS5yZXF1aXJlZC5mb3JFYWNoKChlPT50Kz12b2lkIDA9PT1fW2VdPzA6MSkpOmUucmVxdWlyZWQuZm9yRWFjaCgoZT0+dCs9dm9pZCAwPT09X1t5XT8uZmluZCgodD0+dm9pZCAwIT09dFtlXSkpPzA6MSkpLGUucmVxdWlyZWQubGVuZ3RoLXR9KSgpPjApO2lmKHc9YT8ocixuPXZvaWQgMCk9PntpZihlJiZ2W3JdKXtpZih2W3JdLnhtbD12W3JdLnhtbHx8e30sdltyXS54bWwuYXR0cmlidXRlKXtjb25zdCBlPUFycmF5LmlzQXJyYXkodltyXS5lbnVtKT92W3JdLmVudW1bMF06dm9pZCAwLHQ9dltyXS5leGFtcGxlLGE9dltyXS5kZWZhdWx0O3JldHVybiB2b2lkKGxbdltyXS54bWwubmFtZXx8cl09dm9pZCAwIT09dD90OnZvaWQgMCE9PWE/YTp2b2lkIDAhPT1lP2U6cHJpbWl0aXZlKHZbcl0pKX12W3JdLnhtbC5uYW1lPXZbcl0ueG1sLm5hbWV8fHJ9ZWxzZSB2W3JdfHwhMT09PXV8fCh2W3JdPXt4bWw6e25hbWU6cn19KTtsZXQgcz1zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhlJiZ2W3JdfHx2b2lkIDAsdCxuLGEpO2NhbkFkZFByb3BlcnR5KHIpJiYoYisrLEFycmF5LmlzQXJyYXkocyk/X1t5XT1fW3ldLmNvbmNhdChzKTpfW3ldLnB1c2gocykpfToocixuKT0+e2lmKGNhbkFkZFByb3BlcnR5KHIpKXtpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSwiZGlzY3JpbWluYXRvciIpJiZlLmRpc2NyaW1pbmF0b3ImJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRpc2NyaW1pbmF0b3IsIm1hcHBpbmciKSYmZS5kaXNjcmltaW5hdG9yLm1hcHBpbmcmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLCIkJHJlZiIpJiZlLiQkcmVmJiZlLmRpc2NyaW1pbmF0b3IucHJvcGVydHlOYW1lPT09cil7Zm9yKGxldCB0IGluIGUuZGlzY3JpbWluYXRvci5tYXBwaW5nKWlmKC0xIT09ZS4kJHJlZi5zZWFyY2goZS5kaXNjcmltaW5hdG9yLm1hcHBpbmdbdF0pKXtfW3JdPXQ7YnJlYWt9fWVsc2UgX1tyXT1zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyh2W3JdLHQsbixhKTtiKyt9fSxuKXtsZXQgbjtpZihuPXNhbml0aXplUmVmKHZvaWQgMCE9PXI/cjp2b2lkIDAhPT1wP3A6ZS5kZWZhdWx0KSwhYSl7aWYoIm51bWJlciI9PXR5cGVvZiBuJiYic3RyaW5nIj09PWkpcmV0dXJuYCR7bn1gO2lmKCJzdHJpbmciIT10eXBlb2Ygbnx8InN0cmluZyI9PT1pKXJldHVybiBuO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShuKX1jYXRjaChlKXtyZXR1cm4gbn19aWYoZXx8KGk9QXJyYXkuaXNBcnJheShuKT8iYXJyYXkiOnR5cGVvZiBuKSwiYXJyYXkiPT09aSl7aWYoIUFycmF5LmlzQXJyYXkobikpe2lmKCJzdHJpbmciPT10eXBlb2YgbilyZXR1cm4gbjtuPVtuXX1jb25zdCByPWU/ZS5pdGVtczp2b2lkIDA7ciYmKHIueG1sPXIueG1sfHxjfHx7fSxyLnhtbC5uYW1lPXIueG1sLm5hbWV8fGMubmFtZSk7bGV0IHM9bi5tYXAoKGU9PnNhbXBsZUZyb21TY2hlbWFHZW5lcmljKHIsdCxlLGEpKSk7cmV0dXJuIHM9aGFuZGxlTWluTWF4SXRlbXMocyksYy53cmFwcGVkPyhfW3ldPXMsa3QoKShsKXx8X1t5XS5wdXNoKHtfYXR0cjpsfSkpOl89cyxffWlmKCJvYmplY3QiPT09aSl7aWYoInN0cmluZyI9PXR5cGVvZiBuKXJldHVybiBuO2ZvcihsZXQgdCBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHQpJiYoZSYmdlt0XSYmdlt0XS5yZWFkT25seSYmIWh8fGUmJnZbdF0mJnZbdF0ud3JpdGVPbmx5JiYhZ3x8KGUmJnZbdF0mJnZbdF0ueG1sJiZ2W3RdLnhtbC5hdHRyaWJ1dGU/bFt2W3RdLnhtbC5uYW1lfHx0XT1uW3RdOncodCxuW3RdKSkpO3JldHVybiBrdCgpKGwpfHxfW3ldLnB1c2goe19hdHRyOmx9KSxffXJldHVybiBfW3ldPWt0KCkobCk/bjpbe19hdHRyOmx9LG5dLF99aWYoIm9iamVjdCI9PT1pKXtmb3IobGV0IGUgaW4gdilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodixlKSYmKHZbZV0mJnZbZV0uZGVwcmVjYXRlZHx8dltlXSYmdltlXS5yZWFkT25seSYmIWh8fHZbZV0mJnZbZV0ud3JpdGVPbmx5JiYhZ3x8dyhlKSk7aWYoYSYmbCYmX1t5XS5wdXNoKHtfYXR0cjpsfSksaGFzRXhjZWVkZWRNYXhQcm9wZXJ0aWVzKCkpcmV0dXJuIF87aWYoITA9PT11KWE/X1t5XS5wdXNoKHthZGRpdGlvbmFsUHJvcDoiQW55dGhpbmcgY2FuIGJlIGhlcmUifSk6Xy5hZGRpdGlvbmFsUHJvcDE9e30sYisrO2Vsc2UgaWYodSl7Y29uc3Qgcj1vYmplY3RpZnkodSksbj1zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhyLHQsdm9pZCAwLGEpO2lmKGEmJnIueG1sJiZyLnhtbC5uYW1lJiYibm90YWduYW1lIiE9PXIueG1sLm5hbWUpX1t5XS5wdXNoKG4pO2Vsc2V7Y29uc3QgdD1udWxsIT09ZS5taW5Qcm9wZXJ0aWVzJiZ2b2lkIDAhPT1lLm1pblByb3BlcnRpZXMmJmI8ZS5taW5Qcm9wZXJ0aWVzP2UubWluUHJvcGVydGllcy1iOjM7Zm9yKGxldCBlPTE7ZTw9dDtlKyspe2lmKGhhc0V4Y2VlZGVkTWF4UHJvcGVydGllcygpKXJldHVybiBfO2lmKGEpe2NvbnN0IHQ9e307dFsiYWRkaXRpb25hbFByb3AiK2VdPW4ubm90YWduYW1lLF9beV0ucHVzaCh0KX1lbHNlIF9bImFkZGl0aW9uYWxQcm9wIitlXT1uO2IrK319fXJldHVybiBffWlmKCJhcnJheSI9PT1pKXtpZighZClyZXR1cm47bGV0IHI7aWYoYSYmKGQueG1sPWQueG1sfHxlPy54bWx8fHt9LGQueG1sLm5hbWU9ZC54bWwubmFtZXx8Yy5uYW1lKSxBcnJheS5pc0FycmF5KGQuYW55T2YpKXI9ZC5hbnlPZi5tYXAoKGU9PnNhbXBsZUZyb21TY2hlbWFHZW5lcmljKG1lcmdlSnNvblNjaGVtYShlLGQsdCksdCx2b2lkIDAsYSkpKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoZC5vbmVPZikpcj1kLm9uZU9mLm1hcCgoZT0+c2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMobWVyZ2VKc29uU2NoZW1hKGUsZCx0KSx0LHZvaWQgMCxhKSkpO2Vsc2V7aWYoISghYXx8YSYmYy53cmFwcGVkKSlyZXR1cm4gc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoZCx0LHZvaWQgMCxhKTtyPVtzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhkLHQsdm9pZCAwLGEpXX1yZXR1cm4gcj1oYW5kbGVNaW5NYXhJdGVtcyhyKSxhJiZjLndyYXBwZWQ/KF9beV09cixrdCgpKGwpfHxfW3ldLnB1c2goe19hdHRyOmx9KSxfKTpyfWxldCBDO2lmKGUmJkFycmF5LmlzQXJyYXkoZS5lbnVtKSlDPW5vcm1hbGl6ZUFycmF5KGUuZW51bSlbMF07ZWxzZXtpZighZSlyZXR1cm47aWYoQz1wcmltaXRpdmUoZSksIm51bWJlciI9PXR5cGVvZiBDKXtsZXQgdD1lLm1pbmltdW07bnVsbCE9dCYmKGUuZXhjbHVzaXZlTWluaW11bSYmdCsrLEM9dCk7bGV0IHI9ZS5tYXhpbXVtO251bGwhPXImJihlLmV4Y2x1c2l2ZU1heGltdW0mJnItLSxDPXIpfWlmKCJzdHJpbmciPT10eXBlb2YgQyYmKG51bGwhPT1lLm1heExlbmd0aCYmdm9pZCAwIT09ZS5tYXhMZW5ndGgmJihDPUMuc2xpY2UoMCxlLm1heExlbmd0aCkpLG51bGwhPT1lLm1pbkxlbmd0aCYmdm9pZCAwIT09ZS5taW5MZW5ndGgpKXtsZXQgdD0wO2Zvcig7Qy5sZW5ndGg8ZS5taW5MZW5ndGg7KUMrPUNbdCsrJUMubGVuZ3RoXX19aWYoImZpbGUiIT09aSlyZXR1cm4gYT8oX1t5XT1rdCgpKGwpP0M6W3tfYXR0cjpsfSxDXSxfKTpDfSxpbmZlclNjaGVtYT1lPT4oZS5zY2hlbWEmJihlPWUuc2NoZW1hKSxlLnByb3BlcnRpZXMmJihlLnR5cGU9Im9iamVjdCIpLGUpLGNyZWF0ZVhNTEV4YW1wbGU9KGUsdCxyKT0+e2NvbnN0IGE9c2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoZSx0LHIsITApO2lmKGEpcmV0dXJuInN0cmluZyI9PXR5cGVvZiBhP2E6Q3QoKShhLHtkZWNsYXJhdGlvbjohMCxpbmRlbnQ6Ilx0In0pfSxzYW1wbGVGcm9tU2NoZW1hPShlLHQscik9PnNhbXBsZUZyb21TY2hlbWFHZW5lcmljKGUsdCxyLCExKSxyZXNvbHZlcj0oZSx0LHIpPT5bZSxKU09OLnN0cmluZ2lmeSh0KSxKU09OLnN0cmluZ2lmeShyKV0sTXQ9dXRpbHNfbWVtb2l6ZU4oY3JlYXRlWE1MRXhhbXBsZSxyZXNvbHZlciksVHQ9dXRpbHNfbWVtb2l6ZU4oc2FtcGxlRnJvbVNjaGVtYSxyZXNvbHZlciksZ2V0U2NoZW1hT2JqZWN0VHlwZT1lPT5pbW11dGFibGVUb0pTKGUpPy50eXBlPz8ic3RyaW5nIixSdD1be3doZW46L2pzb24vLHNob3VsZFN0cmluZ2lmeVR5cGVzOlsic3RyaW5nIl19XSxKdD1bIm9iamVjdCJdLGdldF9qc29uX3NhbXBsZV9zY2hlbWE9ZT0+KHQscixhLG4pPT57Y29uc3R7Zm46c309ZSgpLG89cy5tZW1vaXplZFNhbXBsZUZyb21TY2hlbWEodCxyLG4pLGw9dHlwZW9mIG8sYz1SdC5yZWR1Y2UoKChlLHQpPT50LndoZW4udGVzdChhKT9bLi4uZSwuLi50LnNob3VsZFN0cmluZ2lmeVR5cGVzXTplKSxKdCk7cmV0dXJuIFgoKShjLChlPT5lPT09bCkpP0pTT04uc3RyaW5naWZ5KG8sbnVsbCwyKTpvfSxnZXRfeWFtbF9zYW1wbGVfc2NoZW1hPWU9Pih0LHIsYSxuKT0+e2NvbnN0e2ZuOnN9PWUoKSxvPXMuZ2V0SnNvblNhbXBsZVNjaGVtYSh0LHIsYSxuKTtsZXQgbDt0cnl7bD1xZSgpLmR1bXAocWUoKS5sb2FkKG8pLHtsaW5lV2lkdGg6LTF9LHtzY2hlbWE6amUuSlNPTl9TQ0hFTUF9KSwiXG4iPT09bFtsLmxlbmd0aC0xXSYmKGw9bC5zbGljZSgwLGwubGVuZ3RoLTEpKX1jYXRjaChlKXtyZXR1cm4gY29uc29sZS5lcnJvcihlKSwiZXJyb3I6IGNvdWxkIG5vdCBnZW5lcmF0ZSB5YW1sIGV4YW1wbGUifXJldHVybiBsLnJlcGxhY2UoL1x0L2csIiAgIil9LGdldF94bWxfc2FtcGxlX3NjaGVtYT1lPT4odCxyLGEpPT57Y29uc3R7Zm46bn09ZSgpO2lmKHQmJiF0LnhtbCYmKHQueG1sPXt9KSx0JiYhdC54bWwubmFtZSl7aWYoIXQuJCRyZWYmJih0LnR5cGV8fHQuaXRlbXN8fHQucHJvcGVydGllc3x8dC5hZGRpdGlvbmFsUHJvcGVydGllcykpcmV0dXJuJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+XG5ceDNjIS0tIFhNTCBleGFtcGxlIGNhbm5vdCBiZSBnZW5lcmF0ZWQ7IHJvb3QgZWxlbWVudCBuYW1lIGlzIHVuZGVmaW5lZCAtLVx4M2UnO2lmKHQuJCRyZWYpe2xldCBlPXQuJCRyZWYubWF0Y2goL1xTKlwvKFxTKykkLyk7dC54bWwubmFtZT1lWzFdfX1yZXR1cm4gbi5tZW1vaXplZENyZWF0ZVhNTEV4YW1wbGUodCxyLGEpfSxnZXRfc2FtcGxlX3NjaGVtYT1lPT4odCxyPSIiLGE9e30sbj12b2lkIDApPT57Y29uc3R7Zm46c309ZSgpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0Py50b0pTJiYodD10LnRvSlMoKSksImZ1bmN0aW9uIj09dHlwZW9mIG4/LnRvSlMmJihuPW4udG9KUygpKSwveG1sLy50ZXN0KHIpP3MuZ2V0WG1sU2FtcGxlU2NoZW1hKHQsYSxuKTovKHlhbWx8eW1sKS8udGVzdChyKT9zLmdldFlhbWxTYW1wbGVTY2hlbWEodCxhLHIsbik6cy5nZXRKc29uU2FtcGxlU2NoZW1hKHQsYSxyLG4pfSxqc29uX3NjaGVtYV81X3NhbXBsZXM9KHtnZXRTeXN0ZW06ZX0pPT57Y29uc3QgdD1nZXRfanNvbl9zYW1wbGVfc2NoZW1hKGUpLHI9Z2V0X3lhbWxfc2FtcGxlX3NjaGVtYShlKSxhPWdldF94bWxfc2FtcGxlX3NjaGVtYShlKSxuPWdldF9zYW1wbGVfc2NoZW1hKGUpO3JldHVybntmbjp7anNvblNjaGVtYTU6e2luZmVyU2NoZW1hLHNhbXBsZUZyb21TY2hlbWEsc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMsY3JlYXRlWE1MRXhhbXBsZSxtZW1vaXplZFNhbXBsZUZyb21TY2hlbWE6VHQsbWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlOk10LGdldEpzb25TYW1wbGVTY2hlbWE6dCxnZXRZYW1sU2FtcGxlU2NoZW1hOnIsZ2V0WG1sU2FtcGxlU2NoZW1hOmEsZ2V0U2FtcGxlU2NoZW1hOm4sbWVyZ2VKc29uU2NoZW1hfSxpbmZlclNjaGVtYSxzYW1wbGVGcm9tU2NoZW1hLHNhbXBsZUZyb21TY2hlbWFHZW5lcmljLGNyZWF0ZVhNTEV4YW1wbGUsbWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hOlR0LG1lbW9pemVkQ3JlYXRlWE1MRXhhbXBsZTpNdCxnZXRKc29uU2FtcGxlU2NoZW1hOnQsZ2V0WWFtbFNhbXBsZVNjaGVtYTpyLGdldFhtbFNhbXBsZVNjaGVtYTphLGdldFNhbXBsZVNjaGVtYTpuLG1lcmdlSnNvblNjaGVtYSxnZXRTY2hlbWFPYmplY3RUeXBlfX19LCR0PXJlcXVpcmUoImxvZGFzaC9jb25zdGFudCIpO3ZhciBWdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oJHQpO2NvbnN0IEx0PVsiZ2V0IiwicHV0IiwicG9zdCIsImRlbGV0ZSIsIm9wdGlvbnMiLCJoZWFkIiwicGF0Y2giLCJ0cmFjZSJdLHNwZWNfc2VsZWN0b3JzX3N0YXRlPWU9PmV8fCgwLGsuTWFwKSgpLER0PSgwLF9lLmNyZWF0ZVNlbGVjdG9yKShzcGVjX3NlbGVjdG9yc19zdGF0ZSwoZT0+ZS5nZXQoImxhc3RFcnJvciIpKSksVXQ9KDAsX2UuY3JlYXRlU2VsZWN0b3IpKHNwZWNfc2VsZWN0b3JzX3N0YXRlLChlPT5lLmdldCgidXJsIikpKSxLdD0oMCxfZS5jcmVhdGVTZWxlY3Rvcikoc3BlY19zZWxlY3RvcnNfc3RhdGUsKGU9PmUuZ2V0KCJzcGVjIil8fCIiKSksenQ9KDAsX2UuY3JlYXRlU2VsZWN0b3IpKHNwZWNfc2VsZWN0b3JzX3N0YXRlLChlPT5lLmdldCgic3BlY1NvdXJjZSIpfHwibm90LWVkaXRvciIpKSxCdD0oMCxfZS5jcmVhdGVTZWxlY3Rvcikoc3BlY19zZWxlY3RvcnNfc3RhdGUsKGU9PmUuZ2V0KCJqc29uIiwoMCxrLk1hcCkoKSkpKSxGdD0oMCxfZS5jcmVhdGVTZWxlY3RvcikoQnQsKGU9PmUudG9KUygpKSksV3Q9KDAsX2UuY3JlYXRlU2VsZWN0b3IpKHNwZWNfc2VsZWN0b3JzX3N0YXRlLChlPT5lLmdldCgicmVzb2x2ZWQiLCgwLGsuTWFwKSgpKSkpLHNwZWNSZXNvbHZlZFN1YnRyZWU9KGUsdCk9PmUuZ2V0SW4oWyJyZXNvbHZlZFN1YnRyZWVzIiwuLi50XSx2b2lkIDApLG1lcmdlckZuPShlLHQpPT5rLk1hcC5pc01hcChlKSYmay5NYXAuaXNNYXAodCk/dC5nZXQoIiQkcmVmIik/dDooMCxrLk9yZGVyZWRNYXApKCkubWVyZ2VXaXRoKG1lcmdlckZuLGUsdCk6dCxIdD0oMCxfZS5jcmVhdGVTZWxlY3Rvcikoc3BlY19zZWxlY3RvcnNfc3RhdGUsKGU9PigwLGsuT3JkZXJlZE1hcCkoKS5tZXJnZVdpdGgobWVyZ2VyRm4sZS5nZXQoImpzb24iKSxlLmdldCgicmVzb2x2ZWRTdWJ0cmVlcyIpKSkpLHNwZWM9ZT0+QnQoZSksWHQ9KDAsX2UuY3JlYXRlU2VsZWN0b3IpKHNwZWMsKCgpPT4hMSkpLEd0PSgwLF9lLmNyZWF0ZVNlbGVjdG9yKShzcGVjLChlPT5yZXR1cm5TZWxmT3JOZXdNYXAoZSYmZS5nZXQoImluZm8iKSkpKSxZdD0oMCxfZS5jcmVhdGVTZWxlY3Rvcikoc3BlYywoZT0+cmV0dXJuU2VsZk9yTmV3TWFwKGUmJmUuZ2V0KCJleHRlcm5hbERvY3MiKSkpKSxRdD0oMCxfZS5jcmVhdGVTZWxlY3RvcikoR3QsKGU9PmUmJmUuZ2V0KCJ2ZXJzaW9uIikpKSxadD0oMCxfZS5jcmVhdGVTZWxlY3RvcikoUXQsKGU9Pi92PyhbMC05XSopXC4oWzAtOV0qKVwuKFswLTldKikvaS5leGVjKGUpLnNsaWNlKDEpKSksZXI9KDAsX2UuY3JlYXRlU2VsZWN0b3IpKEh0LChlPT5lLmdldCgicGF0aHMiKSkpLHRyPVZ0KCkoWyJnZXQiLCJwdXQiLCJwb3N0IiwiZGVsZXRlIiwib3B0aW9ucyIsImhlYWQiLCJwYXRjaCJdKSxycj0oMCxfZS5jcmVhdGVTZWxlY3RvcikoZXIsKGU9PntsZXQgdD0oMCxrLkxpc3QpKCk7cmV0dXJuIWsuTWFwLmlzTWFwKGUpfHxlLmlzRW1wdHkoKXx8ZS5mb3JFYWNoKCgoZSxyKT0+e2lmKCFlfHwhZS5mb3JFYWNoKXJldHVybnt9O2UuZm9yRWFjaCgoKGUsYSk9PntMdC5pbmRleE9mKGEpPDB8fCh0PXQucHVzaCgoMCxrLmZyb21KUykoe3BhdGg6cixtZXRob2Q6YSxvcGVyYXRpb246ZSxpZDpgJHthfS0ke3J9YH0pKSl9KSl9KSksdH0pKSxhcj0oMCxfZS5jcmVhdGVTZWxlY3Rvcikoc3BlYywoZT0+KDAsay5TZXQpKGUuZ2V0KCJjb25zdW1lcyIpKSkpLG5yPSgwLF9lLmNyZWF0ZVNlbGVjdG9yKShzcGVjLChlPT4oMCxrLlNldCkoZS5nZXQoInByb2R1Y2VzIikpKSksc3I9KDAsX2UuY3JlYXRlU2VsZWN0b3IpKHNwZWMsKGU9PmUuZ2V0KCJzZWN1cml0eSIsKDAsay5MaXN0KSgpKSkpLG9yPSgwLF9lLmNyZWF0ZVNlbGVjdG9yKShzcGVjLChlPT5lLmdldCgic2VjdXJpdHlEZWZpbml0aW9ucyIpKSksZmluZERlZmluaXRpb249KGUsdCk9Pntjb25zdCByPWUuZ2V0SW4oWyJyZXNvbHZlZFN1YnRyZWVzIiwiZGVmaW5pdGlvbnMiLHRdLG51bGwpLGE9ZS5nZXRJbihbImpzb24iLCJkZWZpbml0aW9ucyIsdF0sbnVsbCk7cmV0dXJuIHJ8fGF8fG51bGx9LGxyPSgwLF9lLmNyZWF0ZVNlbGVjdG9yKShzcGVjLChlPT57Y29uc3QgdD1lLmdldCgiZGVmaW5pdGlvbnMiKTtyZXR1cm4gay5NYXAuaXNNYXAodCk/dDooMCxrLk1hcCkoKX0pKSxjcj0oMCxfZS5jcmVhdGVTZWxlY3Rvcikoc3BlYywoZT0+ZS5nZXQoImJhc2VQYXRoIikpKSxpcj0oMCxfZS5jcmVhdGVTZWxlY3Rvcikoc3BlYywoZT0+ZS5nZXQoImhvc3QiKSkpLHByPSgwLF9lLmNyZWF0ZVNlbGVjdG9yKShzcGVjLChlPT5lLmdldCgic2NoZW1lcyIsKDAsay5NYXApKCkpKSksbXI9KDAsX2UuY3JlYXRlU2VsZWN0b3IpKFtycixhcixucl0sKChlLHQscik9PmUubWFwKChlPT5lLnVwZGF0ZSgib3BlcmF0aW9uIiwoZT0+ay5NYXAuaXNNYXAoZSk/ZS53aXRoTXV0YXRpb25zKChlPT4oZS5nZXQoImNvbnN1bWVzIil8fGUudXBkYXRlKCJjb25zdW1lcyIsKGU9PigwLGsuU2V0KShlKS5tZXJnZSh0KSkpLGUuZ2V0KCJwcm9kdWNlcyIpfHxlLnVwZGF0ZSgicHJvZHVjZXMiLChlPT4oMCxrLlNldCkoZSkubWVyZ2UocikpKSxlKSkpOigwLGsuTWFwKSgpKSkpKSkpLHVyPSgwLF9lLmNyZWF0ZVNlbGVjdG9yKShzcGVjLChlPT57Y29uc3QgdD1lLmdldCgidGFncyIsKDAsay5MaXN0KSgpKTtyZXR1cm4gay5MaXN0LmlzTGlzdCh0KT90LmZpbHRlcigoZT0+ay5NYXAuaXNNYXAoZSkpKTooMCxrLkxpc3QpKCl9KSksdGFnRGV0YWlscz0oZSx0KT0+KHVyKGUpfHwoMCxrLkxpc3QpKCkpLmZpbHRlcihrLk1hcC5pc01hcCkuZmluZCgoZT0+ZS5nZXQoIm5hbWUiKT09PXQpLCgwLGsuTWFwKSgpKSxkcj0oMCxfZS5jcmVhdGVTZWxlY3RvcikobXIsdXIsKChlLHQpPT5lLnJlZHVjZSgoKGUsdCk9PntsZXQgcj0oMCxrLlNldCkodC5nZXRJbihbIm9wZXJhdGlvbiIsInRhZ3MiXSkpO3JldHVybiByLmNvdW50KCk8MT9lLnVwZGF0ZSgiZGVmYXVsdCIsKDAsay5MaXN0KSgpLChlPT5lLnB1c2godCkpKTpyLnJlZHVjZSgoKGUscik9PmUudXBkYXRlKHIsKDAsay5MaXN0KSgpLChlPT5lLnB1c2godCkpKSksZSl9KSx0LnJlZHVjZSgoKGUsdCk9PmUuc2V0KHQuZ2V0KCJuYW1lIiksKDAsay5MaXN0KSgpKSksKDAsay5PcmRlcmVkTWFwKSgpKSkpKSxzZWxlY3RvcnNfdGFnZ2VkT3BlcmF0aW9ucz1lPT4oe2dldENvbmZpZ3M6dH0pPT57bGV0e3RhZ3NTb3J0ZXI6cixvcGVyYXRpb25zU29ydGVyOmF9PXQoKTtyZXR1cm4gZHIoZSkuc29ydEJ5KCgoZSx0KT0+dCksKChlLHQpPT57bGV0IGE9ImZ1bmN0aW9uIj09dHlwZW9mIHI/cjpwZS50YWdzU29ydGVyW3JdO3JldHVybiBhP2EoZSx0KTpudWxsfSkpLm1hcCgoKHQscik9PntsZXQgbj0iZnVuY3Rpb24iPT10eXBlb2YgYT9hOnBlLm9wZXJhdGlvbnNTb3J0ZXJbYV0scz1uP3Quc29ydChuKTp0O3JldHVybigwLGsuTWFwKSh7dGFnRGV0YWlsczp0YWdEZXRhaWxzKGUsciksb3BlcmF0aW9uczpzfSl9KSl9LGhyPSgwLF9lLmNyZWF0ZVNlbGVjdG9yKShzcGVjX3NlbGVjdG9yc19zdGF0ZSwoZT0+ZS5nZXQoInJlc3BvbnNlcyIsKDAsay5NYXApKCkpKSksZ3I9KDAsX2UuY3JlYXRlU2VsZWN0b3IpKHNwZWNfc2VsZWN0b3JzX3N0YXRlLChlPT5lLmdldCgicmVxdWVzdHMiLCgwLGsuTWFwKSgpKSkpLHlyPSgwLF9lLmNyZWF0ZVNlbGVjdG9yKShzcGVjX3NlbGVjdG9yc19zdGF0ZSwoZT0+ZS5nZXQoIm11dGF0ZWRSZXF1ZXN0cyIsKDAsay5NYXApKCkpKSkscmVzcG9uc2VGb3I9KGUsdCxyKT0+aHIoZSkuZ2V0SW4oW3Qscl0sbnVsbCkscmVxdWVzdEZvcj0oZSx0LHIpPT5ncihlKS5nZXRJbihbdCxyXSxudWxsKSxtdXRhdGVkUmVxdWVzdEZvcj0oZSx0LHIpPT55cihlKS5nZXRJbihbdCxyXSxudWxsKSxhbGxvd1RyeUl0T3V0Rm9yPSgpPT4hMCxwYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHk9KGUsdCxyKT0+e2NvbnN0IGE9SHQoZSkuZ2V0SW4oWyJwYXRocyIsLi4udCwicGFyYW1ldGVycyJdLCgwLGsuT3JkZXJlZE1hcCkoKSksbj1lLmdldEluKFsibWV0YSIsInBhdGhzIiwuLi50LCJwYXJhbWV0ZXJzIl0sKDAsay5PcmRlcmVkTWFwKSgpKTtyZXR1cm4gYS5tYXAoKGU9Pntjb25zdCB0PW4uZ2V0KGAke3IuZ2V0KCJpbiIpfS4ke3IuZ2V0KCJuYW1lIil9YCksYT1uLmdldChgJHtyLmdldCgiaW4iKX0uJHtyLmdldCgibmFtZSIpfS5oYXNoLSR7ci5oYXNoQ29kZSgpfWApO3JldHVybigwLGsuT3JkZXJlZE1hcCkoKS5tZXJnZShlLHQsYSl9KSkuZmluZCgoZT0+ZS5nZXQoImluIik9PT1yLmdldCgiaW4iKSYmZS5nZXQoIm5hbWUiKT09PXIuZ2V0KCJuYW1lIikpLCgwLGsuT3JkZXJlZE1hcCkoKSl9LHBhcmFtZXRlckluY2x1c2lvblNldHRpbmdGb3I9KGUsdCxyLGEpPT57Y29uc3Qgbj1gJHthfS4ke3J9YDtyZXR1cm4gZS5nZXRJbihbIm1ldGEiLCJwYXRocyIsLi4udCwicGFyYW1ldGVyX2luY2x1c2lvbnMiLG5dLCExKX0scGFyYW1ldGVyV2l0aE1ldGE9KGUsdCxyLGEpPT57Y29uc3Qgbj1IdChlKS5nZXRJbihbInBhdGhzIiwuLi50LCJwYXJhbWV0ZXJzIl0sKDAsay5PcmRlcmVkTWFwKSgpKS5maW5kKChlPT5lLmdldCgiaW4iKT09PWEmJmUuZ2V0KCJuYW1lIik9PT1yKSwoMCxrLk9yZGVyZWRNYXApKCkpO3JldHVybiBwYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkoZSx0LG4pfSxvcGVyYXRpb25XaXRoTWV0YT0oZSx0LHIpPT57Y29uc3QgYT1IdChlKS5nZXRJbihbInBhdGhzIix0LHJdLCgwLGsuT3JkZXJlZE1hcCkoKSksbj1lLmdldEluKFsibWV0YSIsInBhdGhzIix0LHJdLCgwLGsuT3JkZXJlZE1hcCkoKSkscz1hLmdldCgicGFyYW1ldGVycyIsKDAsay5MaXN0KSgpKS5tYXAoKGE9PnBhcmFtZXRlcldpdGhNZXRhQnlJZGVudGl0eShlLFt0LHJdLGEpKSk7cmV0dXJuKDAsay5PcmRlcmVkTWFwKSgpLm1lcmdlKGEsbikuc2V0KCJwYXJhbWV0ZXJzIixzKX07ZnVuY3Rpb24gZ2V0UGFyYW1ldGVyKGUsdCxyLGEpe3JldHVybiB0PXR8fFtdLGUuZ2V0SW4oWyJtZXRhIiwicGF0aHMiLC4uLnQsInBhcmFtZXRlcnMiXSwoMCxrLmZyb21KUykoW10pKS5maW5kKChlPT5rLk1hcC5pc01hcChlKSYmZS5nZXQoIm5hbWUiKT09PXImJmUuZ2V0KCJpbiIpPT09YSkpfHwoMCxrLk1hcCkoKX1jb25zdCBmcj0oMCxfZS5jcmVhdGVTZWxlY3Rvcikoc3BlYywoZT0+e2NvbnN0IHQ9ZS5nZXQoImhvc3QiKTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJnQubGVuZ3RoPjAmJiIvIiE9PXRbMF19KSk7ZnVuY3Rpb24gcGFyYW1ldGVyVmFsdWVzKGUsdCxyKXtyZXR1cm4gdD10fHxbXSxvcGVyYXRpb25XaXRoTWV0YShlLC4uLnQpLmdldCgicGFyYW1ldGVycyIsKDAsay5MaXN0KSgpKS5yZWR1Y2UoKChlLHQpPT57bGV0IGE9ciYmImJvZHkiPT09dC5nZXQoImluIik/dC5nZXQoInZhbHVlX3htbCIpOnQuZ2V0KCJ2YWx1ZSIpO3JldHVybiBrLkxpc3QuaXNMaXN0KGEpJiYoYT1hLmZpbHRlcigoZT0+IiIhPT1lKSkpLGUuc2V0KHBhcmFtVG9JZGVudGlmaWVyKHQse2FsbG93SGFzaGVzOiExfSksYSl9KSwoMCxrLmZyb21KUykoe30pKX1mdW5jdGlvbiBwYXJhbWV0ZXJzSW5jbHVkZUluKGUsdD0iIil7aWYoay5MaXN0LmlzTGlzdChlKSlyZXR1cm4gZS5zb21lKChlPT5rLk1hcC5pc01hcChlKSYmZS5nZXQoImluIik9PT10KSl9ZnVuY3Rpb24gcGFyYW1ldGVyc0luY2x1ZGVUeXBlKGUsdD0iIil7aWYoay5MaXN0LmlzTGlzdChlKSlyZXR1cm4gZS5zb21lKChlPT5rLk1hcC5pc01hcChlKSYmZS5nZXQoInR5cGUiKT09PXQpKX1mdW5jdGlvbiBjb250ZW50VHlwZVZhbHVlcyhlLHQpe3Q9dHx8W107bGV0IHI9SHQoZSkuZ2V0SW4oWyJwYXRocyIsLi4udF0sKDAsay5mcm9tSlMpKHt9KSksYT1lLmdldEluKFsibWV0YSIsInBhdGhzIiwuLi50XSwoMCxrLmZyb21KUykoe30pKSxuPWN1cnJlbnRQcm9kdWNlc0ZvcihlLHQpO2NvbnN0IHM9ci5nZXQoInBhcmFtZXRlcnMiKXx8bmV3IGsuTGlzdCxvPWEuZ2V0KCJjb25zdW1lc192YWx1ZSIpP2EuZ2V0KCJjb25zdW1lc192YWx1ZSIpOnBhcmFtZXRlcnNJbmNsdWRlVHlwZShzLCJmaWxlIik/Im11bHRpcGFydC9mb3JtLWRhdGEiOnBhcmFtZXRlcnNJbmNsdWRlVHlwZShzLCJmb3JtRGF0YSIpPyJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiOnZvaWQgMDtyZXR1cm4oMCxrLmZyb21KUykoe3JlcXVlc3RDb250ZW50VHlwZTpvLHJlc3BvbnNlQ29udGVudFR5cGU6bn0pfWZ1bmN0aW9uIGN1cnJlbnRQcm9kdWNlc0ZvcihlLHQpe3Q9dHx8W107Y29uc3Qgcj1IdChlKS5nZXRJbihbInBhdGhzIiwuLi50XSxudWxsKTtpZihudWxsPT09cilyZXR1cm47Y29uc3QgYT1lLmdldEluKFsibWV0YSIsInBhdGhzIiwuLi50LCJwcm9kdWNlc192YWx1ZSJdLG51bGwpLG49ci5nZXRJbihbInByb2R1Y2VzIiwwXSxudWxsKTtyZXR1cm4gYXx8bnx8ImFwcGxpY2F0aW9uL2pzb24ifWZ1bmN0aW9uIHByb2R1Y2VzT3B0aW9uc0ZvcihlLHQpe3Q9dHx8W107Y29uc3Qgcj1IdChlKSxhPXIuZ2V0SW4oWyJwYXRocyIsLi4udF0sbnVsbCk7aWYobnVsbD09PWEpcmV0dXJuO2NvbnN0W25dPXQscz1hLmdldCgicHJvZHVjZXMiLG51bGwpLG89ci5nZXRJbihbInBhdGhzIixuLCJwcm9kdWNlcyJdLG51bGwpLGw9ci5nZXRJbihbInByb2R1Y2VzIl0sbnVsbCk7cmV0dXJuIHN8fG98fGx9ZnVuY3Rpb24gY29uc3VtZXNPcHRpb25zRm9yKGUsdCl7dD10fHxbXTtjb25zdCByPUh0KGUpLGE9ci5nZXRJbihbInBhdGhzIiwuLi50XSxudWxsKTtpZihudWxsPT09YSlyZXR1cm47Y29uc3Rbbl09dCxzPWEuZ2V0KCJjb25zdW1lcyIsbnVsbCksbz1yLmdldEluKFsicGF0aHMiLG4sImNvbnN1bWVzIl0sbnVsbCksbD1yLmdldEluKFsiY29uc3VtZXMiXSxudWxsKTtyZXR1cm4gc3x8b3x8bH1jb25zdCBvcGVyYXRpb25TY2hlbWU9KGUsdCxyKT0+e2xldCBhPWUuZ2V0KCJ1cmwiKS5tYXRjaCgvXihbYS16XVthLXowLTkrXC0uXSopOi8pLG49QXJyYXkuaXNBcnJheShhKT9hWzFdOm51bGw7cmV0dXJuIGUuZ2V0SW4oWyJzY2hlbWUiLHQscl0pfHxlLmdldEluKFsic2NoZW1lIiwiX2RlZmF1bHRTY2hlbWUiXSl8fG58fCIifSxjYW5FeGVjdXRlU2NoZW1lPShlLHQscik9PlsiaHR0cCIsImh0dHBzIl0uaW5kZXhPZihvcGVyYXRpb25TY2hlbWUoZSx0LHIpKT4tMSx2YWxpZGF0aW9uRXJyb3JzPShlLHQpPT57dD10fHxbXTtjb25zdCByPWUuZ2V0SW4oWyJtZXRhIiwicGF0aHMiLC4uLnQsInBhcmFtZXRlcnMiXSwoMCxrLmZyb21KUykoW10pKSxhPVtdO2lmKDA9PT1yLmxlbmd0aClyZXR1cm4gYTtjb25zdCBnZXRFcnJvcnNXaXRoUGF0aHM9KGUsdD1bXSk9Pntjb25zdCBnZXROZXN0ZWRFcnJvcnNXaXRoUGF0aHM9KGUsdCk9Pntjb25zdCByPVsuLi50LGUuZ2V0KCJwcm9wS2V5Iil8fGUuZ2V0KCJpbmRleCIpXTtyZXR1cm4gay5NYXAuaXNNYXAoZS5nZXQoImVycm9yIikpP2dldEVycm9yc1dpdGhQYXRocyhlLmdldCgiZXJyb3IiKSxyKTp7ZXJyb3I6ZS5nZXQoImVycm9yIikscGF0aDpyfX07cmV0dXJuIGsuTGlzdC5pc0xpc3QoZSk/ZS5tYXAoKGU9PmsuTWFwLmlzTWFwKGUpP2dldE5lc3RlZEVycm9yc1dpdGhQYXRocyhlLHQpOntlcnJvcjplLHBhdGg6dH0pKTpnZXROZXN0ZWRFcnJvcnNXaXRoUGF0aHMoZSx0KX07cmV0dXJuIHIuZm9yRWFjaCgoKGUsdCk9Pntjb25zdCByPXQuc3BsaXQoIi4iKS5zbGljZSgxLC0xKS5qb2luKCIuIiksbj1lLmdldCgiZXJyb3JzIik7aWYobiYmbi5jb3VudCgpKXtnZXRFcnJvcnNXaXRoUGF0aHMobikuZm9yRWFjaCgoKHtlcnJvcjplLHBhdGg6dH0pPT57YS5wdXNoKCgoZSx0LHIpPT5gRm9yICcke3J9JyR7KHQ9dC5yZWR1Y2UoKChlLHQpPT4ibnVtYmVyIj09dHlwZW9mIHQ/YCR7ZX1bJHt0fV1gOmU/YCR7ZX0uJHt0fWA6dCksIiIpKT9gIGF0IHBhdGggJyR7dH0nYDoiIn06ICR7ZX0uYCkoZSx0LHIpKX0pKX19KSksYX0sdmFsaWRhdGVCZWZvcmVFeGVjdXRlPShlLHQpPT4wPT09dmFsaWRhdGlvbkVycm9ycyhlLHQpLmxlbmd0aCxnZXRPQVMzUmVxdWlyZWRSZXF1ZXN0Qm9keUNvbnRlbnRUeXBlPShlLHQpPT57bGV0IHI9e3JlcXVlc3RCb2R5OiExLHJlcXVlc3RDb250ZW50VHlwZTp7fX0sYT1lLmdldEluKFsicmVzb2x2ZWRTdWJ0cmVlcyIsInBhdGhzIiwuLi50LCJyZXF1ZXN0Qm9keSJdLCgwLGsuZnJvbUpTKShbXSkpO3JldHVybiBhLnNpemU8MXx8KGEuZ2V0SW4oWyJyZXF1aXJlZCJdKSYmKHIucmVxdWVzdEJvZHk9YS5nZXRJbihbInJlcXVpcmVkIl0pKSxhLmdldEluKFsiY29udGVudCJdKS5lbnRyeVNlcSgpLmZvckVhY2goKGU9Pntjb25zdCB0PWVbMF07aWYoZVsxXS5nZXRJbihbInNjaGVtYSIsInJlcXVpcmVkIl0pKXtjb25zdCBhPWVbMV0uZ2V0SW4oWyJzY2hlbWEiLCJyZXF1aXJlZCJdKS50b0pTKCk7ci5yZXF1ZXN0Q29udGVudFR5cGVbdF09YX19KSkpLHJ9LGlzTWVkaWFUeXBlU2NoZW1hUHJvcGVydGllc0VxdWFsPShlLHQscixhKT0+e2lmKChyfHxhKSYmcj09PWEpcmV0dXJuITA7bGV0IG49ZS5nZXRJbihbInJlc29sdmVkU3VidHJlZXMiLCJwYXRocyIsLi4udCwicmVxdWVzdEJvZHkiLCJjb250ZW50Il0sKDAsay5mcm9tSlMpKFtdKSk7aWYobi5zaXplPDJ8fCFyfHwhYSlyZXR1cm4hMTtsZXQgcz1uLmdldEluKFtyLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIl0sKDAsay5mcm9tSlMpKFtdKSksbz1uLmdldEluKFthLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIl0sKDAsay5mcm9tSlMpKFtdKSk7cmV0dXJuISFzLmVxdWFscyhvKX07ZnVuY3Rpb24gcmV0dXJuU2VsZk9yTmV3TWFwKGUpe3JldHVybiBrLk1hcC5pc01hcChlKT9lOm5ldyBrLk1hcH1jb25zdCBTcj1yZXF1aXJlKCJsb2Rhc2gvaXNTdHJpbmciKTt2YXIgRXI9X193ZWJwYWNrX3JlcXVpcmVfXy5uKFNyKTtjb25zdCBfcj1yZXF1aXJlKCJsb2Rhc2gvZGVib3VuY2UiKTt2YXIgdnI9X193ZWJwYWNrX3JlcXVpcmVfXy5uKF9yKTtjb25zdCB3cj1yZXF1aXJlKCJsb2Rhc2gvc2V0Iik7dmFyIGJyPV9fd2VicGFja19yZXF1aXJlX18ubih3cik7Y29uc3QgQ3I9cmVxdWlyZSgibG9kYXNoL2ZwL2Fzc29jUGF0aCIpO3ZhciB4cj1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oQ3IpO2NvbnN0IE9yPSJzcGVjX3VwZGF0ZV9zcGVjIixOcj0ic3BlY191cGRhdGVfdXJsIixrcj0ic3BlY191cGRhdGVfanNvbiIsQXI9InNwZWNfdXBkYXRlX3BhcmFtIixJcj0ic3BlY191cGRhdGVfZW1wdHlfcGFyYW1faW5jbHVzaW9uIixqcj0ic3BlY192YWxpZGF0ZV9wYXJhbSIscXI9InNwZWNfc2V0X3Jlc3BvbnNlIixQcj0ic3BlY19zZXRfcmVxdWVzdCIsTXI9InNwZWNfc2V0X211dGF0ZWRfcmVxdWVzdCIsVHI9InNwZWNfbG9nX3JlcXVlc3QiLFJyPSJzcGVjX2NsZWFyX3Jlc3BvbnNlIixKcj0ic3BlY19jbGVhcl9yZXF1ZXN0Iiwkcj0ic3BlY19jbGVhcl92YWxpZGF0ZV9wYXJhbSIsVnI9InNwZWNfdXBkYXRlX29wZXJhdGlvbl9tZXRhX3ZhbHVlIixMcj0ic3BlY191cGRhdGVfcmVzb2x2ZWQiLERyPSJzcGVjX3VwZGF0ZV9yZXNvbHZlZF9zdWJ0cmVlIixVcj0ic2V0X3NjaGVtZSIsdG9TdHI9ZT0+RXIoKShlKT9lOiIiO2Z1bmN0aW9uIHVwZGF0ZVNwZWMoZSl7Y29uc3QgdD10b1N0cihlKS5yZXBsYWNlKC9cdC9nLCIgICIpO2lmKCJzdHJpbmciPT10eXBlb2YgZSlyZXR1cm57dHlwZTpPcixwYXlsb2FkOnR9fWZ1bmN0aW9uIHVwZGF0ZVJlc29sdmVkKGUpe3JldHVybnt0eXBlOkxyLHBheWxvYWQ6ZX19ZnVuY3Rpb24gdXBkYXRlVXJsKGUpe3JldHVybnt0eXBlOk5yLHBheWxvYWQ6ZX19ZnVuY3Rpb24gdXBkYXRlSnNvblNwZWMoZSl7cmV0dXJue3R5cGU6a3IscGF5bG9hZDplfX1jb25zdCBwYXJzZVRvSnNvbj1lPT4oe3NwZWNBY3Rpb25zOnQsc3BlY1NlbGVjdG9yczpyLGVyckFjdGlvbnM6YX0pPT57bGV0e3NwZWNTdHI6bn09cixzPW51bGw7dHJ5e2U9ZXx8bigpLGEuY2xlYXIoe3NvdXJjZToicGFyc2VyIn0pLHM9cWUoKS5sb2FkKGUse3NjaGVtYTpqZS5KU09OX1NDSEVNQX0pfWNhdGNoKGUpe3JldHVybiBjb25zb2xlLmVycm9yKGUpLGEubmV3U3BlY0Vycih7c291cmNlOiJwYXJzZXIiLGxldmVsOiJlcnJvciIsbWVzc2FnZTplLnJlYXNvbixsaW5lOmUubWFyayYmZS5tYXJrLmxpbmU/ZS5tYXJrLmxpbmUrMTp2b2lkIDB9KX1yZXR1cm4gcyYmIm9iamVjdCI9PXR5cGVvZiBzP3QudXBkYXRlSnNvblNwZWMocyk6dC51cGRhdGVKc29uU3BlYyh7fSl9O2xldCBLcj0hMTtjb25zdCByZXNvbHZlU3BlYz0oZSx0KT0+KHtzcGVjQWN0aW9uczpyLHNwZWNTZWxlY3RvcnM6YSxlcnJBY3Rpb25zOm4sZm46e2ZldGNoOnMscmVzb2x2ZTpvLEFTVDpsPXt9fSxnZXRDb25maWdzOmN9KT0+e0tyfHwoY29uc29sZS53YXJuKCJzcGVjQWN0aW9ucy5yZXNvbHZlU3BlYyBpcyBkZXByZWNhdGVkIHNpbmNlIHYzLjEwLjAgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB2NC4wLjA7IHVzZSByZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlIGluc3RlYWQhIiksS3I9ITApO2NvbnN0e21vZGVsUHJvcGVydHlNYWNybzppLHBhcmFtZXRlck1hY3JvOnAscmVxdWVzdEludGVyY2VwdG9yOm0scmVzcG9uc2VJbnRlcmNlcHRvcjp1fT1jKCk7dm9pZCAwPT09ZSYmKGU9YS5zcGVjSnNvbigpKSx2b2lkIDA9PT10JiYodD1hLnVybCgpKTtsZXQgZD1sLmdldExpbmVOdW1iZXJGb3JQYXRoP2wuZ2V0TGluZU51bWJlckZvclBhdGg6KCk9Pnt9LGg9YS5zcGVjU3RyKCk7cmV0dXJuIG8oe2ZldGNoOnMsc3BlYzplLGJhc2VEb2M6U3RyaW5nKG5ldyBVUkwodCxkb2N1bWVudC5iYXNlVVJJKSksbW9kZWxQcm9wZXJ0eU1hY3JvOmkscGFyYW1ldGVyTWFjcm86cCxyZXF1ZXN0SW50ZXJjZXB0b3I6bSxyZXNwb25zZUludGVyY2VwdG9yOnV9KS50aGVuKCgoe3NwZWM6ZSxlcnJvcnM6dH0pPT57aWYobi5jbGVhcih7dHlwZToidGhyb3duIn0pLEFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoPjApe2xldCBlPXQubWFwKChlPT4oY29uc29sZS5lcnJvcihlKSxlLmxpbmU9ZS5mdWxsUGF0aD9kKGgsZS5mdWxsUGF0aCk6bnVsbCxlLnBhdGg9ZS5mdWxsUGF0aD9lLmZ1bGxQYXRoLmpvaW4oIi4iKTpudWxsLGUubGV2ZWw9ImVycm9yIixlLnR5cGU9InRocm93biIsZS5zb3VyY2U9InJlc29sdmVyIixPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwibWVzc2FnZSIse2VudW1lcmFibGU6ITAsdmFsdWU6ZS5tZXNzYWdlfSksZSkpKTtuLm5ld1Rocm93bkVyckJhdGNoKGUpfXJldHVybiByLnVwZGF0ZVJlc29sdmVkKGUpfSkpfTtsZXQgenI9W107Y29uc3QgQnI9dnIoKSgoKCk9Pntjb25zdCBlPXpyLnJlZHVjZSgoKGUse3BhdGg6dCxzeXN0ZW06cn0pPT4oZS5oYXMocil8fGUuc2V0KHIsW10pLGUuZ2V0KHIpLnB1c2godCksZSkpLG5ldyBNYXApO3pyPVtdLGUuZm9yRWFjaCgoYXN5bmMoZSx0KT0+e2lmKCF0KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoImRlYlJlc29sdmVTdWJ0cmVlczogZG9uJ3QgaGF2ZSBhIHN5c3RlbSB0byBvcGVyYXRlIG9uLCBhYm9ydGluZy4iKTtpZighdC5mbi5yZXNvbHZlU3VidHJlZSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJFcnJvcjogU3dhZ2dlci1DbGllbnQgZGlkIG5vdCBwcm92aWRlIGEgYHJlc29sdmVTdWJ0cmVlYCBtZXRob2QsIGRvaW5nIG5vdGhpbmcuIik7Y29uc3R7ZXJyQWN0aW9uczpyLGVyclNlbGVjdG9yczphLGZuOntyZXNvbHZlU3VidHJlZTpuLGZldGNoOnMsQVNUOm89e319LHNwZWNTZWxlY3RvcnM6bCxzcGVjQWN0aW9uczpjfT10LGk9by5nZXRMaW5lTnVtYmVyRm9yUGF0aD8/VnQoKSh2b2lkIDApLHA9bC5zcGVjU3RyKCkse21vZGVsUHJvcGVydHlNYWNybzptLHBhcmFtZXRlck1hY3JvOnUscmVxdWVzdEludGVyY2VwdG9yOmQscmVzcG9uc2VJbnRlcmNlcHRvcjpofT10LmdldENvbmZpZ3MoKTt0cnl7Y29uc3QgdD1hd2FpdCBlLnJlZHVjZSgoYXN5bmMoZSx0KT0+e2xldHtyZXN1bHRNYXA6byxzcGVjV2l0aEN1cnJlbnRTdWJ0cmVlczpjfT1hd2FpdCBlO2NvbnN0e2Vycm9yczpnLHNwZWM6eX09YXdhaXQgbihjLHQse2Jhc2VEb2M6U3RyaW5nKG5ldyBVUkwobC51cmwoKSxkb2N1bWVudC5iYXNlVVJJKSksbW9kZWxQcm9wZXJ0eU1hY3JvOm0scGFyYW1ldGVyTWFjcm86dSxyZXF1ZXN0SW50ZXJjZXB0b3I6ZCxyZXNwb25zZUludGVyY2VwdG9yOmh9KTtpZihhLmFsbEVycm9ycygpLnNpemUmJnIuY2xlYXJCeSgoZT0+InRocm93biIhPT1lLmdldCgidHlwZSIpfHwicmVzb2x2ZXIiIT09ZS5nZXQoInNvdXJjZSIpfHwhZS5nZXQoImZ1bGxQYXRoIik/LmV2ZXJ5KCgoZSxyKT0+ZT09PXRbcl18fHZvaWQgMD09PXRbcl0pKSkpLEFycmF5LmlzQXJyYXkoZykmJmcubGVuZ3RoPjApe2xldCBlPWcubWFwKChlPT4oZS5saW5lPWUuZnVsbFBhdGg/aShwLGUuZnVsbFBhdGgpOm51bGwsZS5wYXRoPWUuZnVsbFBhdGg/ZS5mdWxsUGF0aC5qb2luKCIuIik6bnVsbCxlLmxldmVsPSJlcnJvciIsZS50eXBlPSJ0aHJvd24iLGUuc291cmNlPSJyZXNvbHZlciIsT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIm1lc3NhZ2UiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOmUubWVzc2FnZX0pLGUpKSk7ci5uZXdUaHJvd25FcnJCYXRjaChlKX1yZXR1cm4geSYmbC5pc09BUzMoKSYmImNvbXBvbmVudHMiPT09dFswXSYmInNlY3VyaXR5U2NoZW1lcyI9PT10WzFdJiZhd2FpdCBQcm9taXNlLmFsbChPYmplY3QudmFsdWVzKHkpLmZpbHRlcigoZT0+Im9wZW5JZENvbm5lY3QiPT09ZT8udHlwZSkpLm1hcCgoYXN5bmMgZT0+e2NvbnN0IHQ9e3VybDplLm9wZW5JZENvbm5lY3RVcmwscmVxdWVzdEludGVyY2VwdG9yOmQscmVzcG9uc2VJbnRlcmNlcHRvcjpofTt0cnl7Y29uc3Qgcj1hd2FpdCBzKHQpO3IgaW5zdGFuY2VvZiBFcnJvcnx8ci5zdGF0dXM+PTQwMD9jb25zb2xlLmVycm9yKHIuc3RhdHVzVGV4dCsiICIrdC51cmwpOmUub3BlbklkQ29ubmVjdERhdGE9SlNPTi5wYXJzZShyLnRleHQpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZSl9fSkpKSxicigpKG8sdCx5KSxjPXhyKCkodCx5LGMpLHtyZXN1bHRNYXA6byxzcGVjV2l0aEN1cnJlbnRTdWJ0cmVlczpjfX0pLFByb21pc2UucmVzb2x2ZSh7cmVzdWx0TWFwOihsLnNwZWNSZXNvbHZlZFN1YnRyZWUoW10pfHwoMCxrLk1hcCkoKSkudG9KUygpLHNwZWNXaXRoQ3VycmVudFN1YnRyZWVzOmwuc3BlY0pTKCl9KSk7Yy51cGRhdGVSZXNvbHZlZFN1YnRyZWUoW10sdC5yZXN1bHRNYXApfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZSl9fSkpfSksMzUpLHJlcXVlc3RSZXNvbHZlZFN1YnRyZWU9ZT0+dD0+e3pyLmZpbmQoKCh7cGF0aDpyLHN5c3RlbTphfSk9PmE9PT10JiZyLnRvU3RyaW5nKCk9PT1lLnRvU3RyaW5nKCkpKXx8KHpyLnB1c2goe3BhdGg6ZSxzeXN0ZW06dH0pLEJyKCkpfTtmdW5jdGlvbiBjaGFuZ2VQYXJhbShlLHQscixhLG4pe3JldHVybnt0eXBlOkFyLHBheWxvYWQ6e3BhdGg6ZSx2YWx1ZTphLHBhcmFtTmFtZTp0LHBhcmFtSW46cixpc1htbDpufX19ZnVuY3Rpb24gY2hhbmdlUGFyYW1CeUlkZW50aXR5KGUsdCxyLGEpe3JldHVybnt0eXBlOkFyLHBheWxvYWQ6e3BhdGg6ZSxwYXJhbTp0LHZhbHVlOnIsaXNYbWw6YX19fWNvbnN0IHVwZGF0ZVJlc29sdmVkU3VidHJlZT0oZSx0KT0+KHt0eXBlOkRyLHBheWxvYWQ6e3BhdGg6ZSx2YWx1ZTp0fX0pLGludmFsaWRhdGVSZXNvbHZlZFN1YnRyZWVDYWNoZT0oKT0+KHt0eXBlOkRyLHBheWxvYWQ6e3BhdGg6W10sdmFsdWU6KDAsay5NYXApKCl9fSksdmFsaWRhdGVQYXJhbXM9KGUsdCk9Pih7dHlwZTpqcixwYXlsb2FkOntwYXRoTWV0aG9kOmUsaXNPQVMzOnR9fSksdXBkYXRlRW1wdHlQYXJhbUluY2x1c2lvbj0oZSx0LHIsYSk9Pih7dHlwZTpJcixwYXlsb2FkOntwYXRoTWV0aG9kOmUscGFyYW1OYW1lOnQscGFyYW1JbjpyLGluY2x1ZGVFbXB0eVZhbHVlOmF9fSk7ZnVuY3Rpb24gY2xlYXJWYWxpZGF0ZVBhcmFtcyhlKXtyZXR1cm57dHlwZTokcixwYXlsb2FkOntwYXRoTWV0aG9kOmV9fX1mdW5jdGlvbiBjaGFuZ2VDb25zdW1lc1ZhbHVlKGUsdCl7cmV0dXJue3R5cGU6VnIscGF5bG9hZDp7cGF0aDplLHZhbHVlOnQsa2V5OiJjb25zdW1lc192YWx1ZSJ9fX1mdW5jdGlvbiBjaGFuZ2VQcm9kdWNlc1ZhbHVlKGUsdCl7cmV0dXJue3R5cGU6VnIscGF5bG9hZDp7cGF0aDplLHZhbHVlOnQsa2V5OiJwcm9kdWNlc192YWx1ZSJ9fX1jb25zdCBzZXRSZXNwb25zZT0oZSx0LHIpPT4oe3BheWxvYWQ6e3BhdGg6ZSxtZXRob2Q6dCxyZXM6cn0sdHlwZTpxcn0pLHNldFJlcXVlc3Q9KGUsdCxyKT0+KHtwYXlsb2FkOntwYXRoOmUsbWV0aG9kOnQscmVxOnJ9LHR5cGU6UHJ9KSxzZXRNdXRhdGVkUmVxdWVzdD0oZSx0LHIpPT4oe3BheWxvYWQ6e3BhdGg6ZSxtZXRob2Q6dCxyZXE6cn0sdHlwZTpNcn0pLGxvZ1JlcXVlc3Q9ZT0+KHtwYXlsb2FkOmUsdHlwZTpUcn0pLGV4ZWN1dGVSZXF1ZXN0PWU9Pih7Zm46dCxzcGVjQWN0aW9uczpyLHNwZWNTZWxlY3RvcnM6YSxnZXRDb25maWdzOm4sb2FzM1NlbGVjdG9yczpzfSk9PntsZXR7cGF0aE5hbWU6byxtZXRob2Q6bCxvcGVyYXRpb246Y309ZSx7cmVxdWVzdEludGVyY2VwdG9yOmkscmVzcG9uc2VJbnRlcmNlcHRvcjpwfT1uKCksbT1jLnRvSlMoKTtpZihjJiZjLmdldCgicGFyYW1ldGVycyIpJiZjLmdldCgicGFyYW1ldGVycyIpLmZpbHRlcigoZT0+ZSYmITA9PT1lLmdldCgiYWxsb3dFbXB0eVZhbHVlIikpKS5mb3JFYWNoKCh0PT57aWYoYS5wYXJhbWV0ZXJJbmNsdXNpb25TZXR0aW5nRm9yKFtvLGxdLHQuZ2V0KCJuYW1lIiksdC5nZXQoImluIikpKXtlLnBhcmFtZXRlcnM9ZS5wYXJhbWV0ZXJzfHx7fTtjb25zdCByPXBhcmFtVG9WYWx1ZSh0LGUucGFyYW1ldGVycyk7KCFyfHxyJiYwPT09ci5zaXplKSYmKGUucGFyYW1ldGVyc1t0LmdldCgibmFtZSIpXT0iIil9fSkpLGUuY29udGV4dFVybD11ZSgpKGEudXJsKCkpLnRvU3RyaW5nKCksbSYmbS5vcGVyYXRpb25JZD9lLm9wZXJhdGlvbklkPW0ub3BlcmF0aW9uSWQ6bSYmbyYmbCYmKGUub3BlcmF0aW9uSWQ9dC5vcElkKG0sbyxsKSksYS5pc09BUzMoKSl7Y29uc3QgdD1gJHtvfToke2x9YDtlLnNlcnZlcj1zLnNlbGVjdGVkU2VydmVyKHQpfHxzLnNlbGVjdGVkU2VydmVyKCk7Y29uc3Qgcj1zLnNlcnZlclZhcmlhYmxlcyh7c2VydmVyOmUuc2VydmVyLG5hbWVzcGFjZTp0fSkudG9KUygpLGE9cy5zZXJ2ZXJWYXJpYWJsZXMoe3NlcnZlcjplLnNlcnZlcn0pLnRvSlMoKTtlLnNlcnZlclZhcmlhYmxlcz1PYmplY3Qua2V5cyhyKS5sZW5ndGg/cjphLGUucmVxdWVzdENvbnRlbnRUeXBlPXMucmVxdWVzdENvbnRlbnRUeXBlKG8sbCksZS5yZXNwb25zZUNvbnRlbnRUeXBlPXMucmVzcG9uc2VDb250ZW50VHlwZShvLGwpfHwiKi8qIjtjb25zdCBuPXMucmVxdWVzdEJvZHlWYWx1ZShvLGwpLGM9cy5yZXF1ZXN0Qm9keUluY2x1c2lvblNldHRpbmcobyxsKTtuJiZuLnRvSlM/ZS5yZXF1ZXN0Qm9keT1uLm1hcCgoZT0+ay5NYXAuaXNNYXAoZSk/ZS5nZXQoInZhbHVlIik6ZSkpLmZpbHRlcigoKGUsdCk9PihBcnJheS5pc0FycmF5KGUpPzAhPT1lLmxlbmd0aDohaXNFbXB0eVZhbHVlKGUpKXx8Yy5nZXQodCkpKS50b0pTKCk6ZS5yZXF1ZXN0Qm9keT1ufWxldCB1PU9iamVjdC5hc3NpZ24oe30sZSk7dT10LmJ1aWxkUmVxdWVzdCh1KSxyLnNldFJlcXVlc3QoZS5wYXRoTmFtZSxlLm1ldGhvZCx1KTtlLnJlcXVlc3RJbnRlcmNlcHRvcj1hc3luYyB0PT57bGV0IGE9YXdhaXQgaS5hcHBseSh2b2lkIDAsW3RdKSxuPU9iamVjdC5hc3NpZ24oe30sYSk7cmV0dXJuIHIuc2V0TXV0YXRlZFJlcXVlc3QoZS5wYXRoTmFtZSxlLm1ldGhvZCxuKSxhfSxlLnJlc3BvbnNlSW50ZXJjZXB0b3I9cDtjb25zdCBkPURhdGUubm93KCk7cmV0dXJuIHQuZXhlY3V0ZShlKS50aGVuKCh0PT57dC5kdXJhdGlvbj1EYXRlLm5vdygpLWQsci5zZXRSZXNwb25zZShlLnBhdGhOYW1lLGUubWV0aG9kLHQpfSkpLmNhdGNoKCh0PT57IkZhaWxlZCB0byBmZXRjaCI9PT10Lm1lc3NhZ2UmJih0Lm5hbWU9IiIsdC5tZXNzYWdlPScqKkZhaWxlZCB0byBmZXRjaC4qKiAgXG4qKlBvc3NpYmxlIFJlYXNvbnM6KiogXG4gIC0gQ09SUyBcbiAgLSBOZXR3b3JrIEZhaWx1cmUgXG4gIC0gVVJMIHNjaGVtZSBtdXN0IGJlICJodHRwIiBvciAiaHR0cHMiIGZvciBDT1JTIHJlcXVlc3QuJyksci5zZXRSZXNwb25zZShlLnBhdGhOYW1lLGUubWV0aG9kLHtlcnJvcjohMCxlcnI6dH0pfSkpfSxhY3Rpb25zX2V4ZWN1dGU9KHtwYXRoOmUsbWV0aG9kOnQsLi4ucn09e30pPT5hPT57bGV0e2ZuOntmZXRjaDpufSxzcGVjU2VsZWN0b3JzOnMsc3BlY0FjdGlvbnM6b309YSxsPXMuc3BlY0pzb25XaXRoUmVzb2x2ZWRTdWJ0cmVlcygpLnRvSlMoKSxjPXMub3BlcmF0aW9uU2NoZW1lKGUsdCkse3JlcXVlc3RDb250ZW50VHlwZTppLHJlc3BvbnNlQ29udGVudFR5cGU6cH09cy5jb250ZW50VHlwZVZhbHVlcyhbZSx0XSkudG9KUygpLG09L3htbC9pLnRlc3QoaSksdT1zLnBhcmFtZXRlclZhbHVlcyhbZSx0XSxtKS50b0pTKCk7cmV0dXJuIG8uZXhlY3V0ZVJlcXVlc3Qoey4uLnIsZmV0Y2g6bixzcGVjOmwscGF0aE5hbWU6ZSxtZXRob2Q6dCxwYXJhbWV0ZXJzOnUscmVxdWVzdENvbnRlbnRUeXBlOmksc2NoZW1lOmMscmVzcG9uc2VDb250ZW50VHlwZTpwfSl9O2Z1bmN0aW9uIGNsZWFyUmVzcG9uc2UoZSx0KXtyZXR1cm57dHlwZTpScixwYXlsb2FkOntwYXRoOmUsbWV0aG9kOnR9fX1mdW5jdGlvbiBjbGVhclJlcXVlc3QoZSx0KXtyZXR1cm57dHlwZTpKcixwYXlsb2FkOntwYXRoOmUsbWV0aG9kOnR9fX1mdW5jdGlvbiBzZXRTY2hlbWUoZSx0LHIpe3JldHVybnt0eXBlOlVyLHBheWxvYWQ6e3NjaGVtZTplLHBhdGg6dCxtZXRob2Q6cn19fWNvbnN0IEZyPXtbT3JdOihlLHQpPT4ic3RyaW5nIj09dHlwZW9mIHQucGF5bG9hZD9lLnNldCgic3BlYyIsdC5wYXlsb2FkKTplLFtOcl06KGUsdCk9PmUuc2V0KCJ1cmwiLHQucGF5bG9hZCsiIiksW2tyXTooZSx0KT0+ZS5zZXQoImpzb24iLGZyb21KU09yZGVyZWQodC5wYXlsb2FkKSksW0xyXTooZSx0KT0+ZS5zZXRJbihbInJlc29sdmVkIl0sZnJvbUpTT3JkZXJlZCh0LnBheWxvYWQpKSxbRHJdOihlLHQpPT57Y29uc3R7dmFsdWU6cixwYXRoOmF9PXQucGF5bG9hZDtyZXR1cm4gZS5zZXRJbihbInJlc29sdmVkU3VidHJlZXMiLC4uLmFdLGZyb21KU09yZGVyZWQocikpfSxbQXJdOihlLHtwYXlsb2FkOnR9KT0+e2xldHtwYXRoOnIscGFyYW1OYW1lOmEscGFyYW1JbjpuLHBhcmFtOnMsdmFsdWU6byxpc1htbDpsfT10LGM9cz9wYXJhbVRvSWRlbnRpZmllcihzKTpgJHtufS4ke2F9YDtjb25zdCBpPWw/InZhbHVlX3htbCI6InZhbHVlIjtyZXR1cm4gZS5zZXRJbihbIm1ldGEiLCJwYXRocyIsLi4uciwicGFyYW1ldGVycyIsYyxpXSwoMCxrLmZyb21KUykobykpfSxbSXJdOihlLHtwYXlsb2FkOnR9KT0+e2xldHtwYXRoTWV0aG9kOnIscGFyYW1OYW1lOmEscGFyYW1JbjpuLGluY2x1ZGVFbXB0eVZhbHVlOnN9PXQ7aWYoIWF8fCFuKXJldHVybiBjb25zb2xlLndhcm4oIldhcm5pbmc6IFVQREFURV9FTVBUWV9QQVJBTV9JTkNMVVNJT04gY291bGQgbm90IGdlbmVyYXRlIGEgcGFyYW1LZXkuIiksZTtjb25zdCBvPWAke259LiR7YX1gO3JldHVybiBlLnNldEluKFsibWV0YSIsInBhdGhzIiwuLi5yLCJwYXJhbWV0ZXJfaW5jbHVzaW9ucyIsb10scyl9LFtqcl06KGUse3BheWxvYWQ6e3BhdGhNZXRob2Q6dCxpc09BUzM6cn19KT0+e2NvbnN0IGE9SHQoZSkuZ2V0SW4oWyJwYXRocyIsLi4udF0pLG49cGFyYW1ldGVyVmFsdWVzKGUsdCkudG9KUygpO3JldHVybiBlLnVwZGF0ZUluKFsibWV0YSIsInBhdGhzIiwuLi50LCJwYXJhbWV0ZXJzIl0sKDAsay5mcm9tSlMpKHt9KSwocz0+YS5nZXQoInBhcmFtZXRlcnMiLCgwLGsuTGlzdCkoKSkucmVkdWNlKCgoYSxzKT0+e2NvbnN0IG89cGFyYW1Ub1ZhbHVlKHMsbiksbD1wYXJhbWV0ZXJJbmNsdXNpb25TZXR0aW5nRm9yKGUsdCxzLmdldCgibmFtZSIpLHMuZ2V0KCJpbiIpKSxjPSgoZSx0LHtpc09BUzM6cj0hMSxieXBhc3NSZXF1aXJlZENoZWNrOmE9ITF9PXt9KT0+e2xldCBuPWUuZ2V0KCJyZXF1aXJlZCIpLHtzY2hlbWE6cyxwYXJhbWV0ZXJDb250ZW50TWVkaWFUeXBlOm99PWdldFBhcmFtZXRlclNjaGVtYShlLHtpc09BUzM6cn0pO3JldHVybiB2YWxpZGF0ZVZhbHVlQnlTY2hlbWEodCxzLG4sYSxvKX0pKHMsbyx7YnlwYXNzUmVxdWlyZWRDaGVjazpsLGlzT0FTMzpyfSk7cmV0dXJuIGEuc2V0SW4oW3BhcmFtVG9JZGVudGlmaWVyKHMpLCJlcnJvcnMiXSwoMCxrLmZyb21KUykoYykpfSkscykpKX0sWyRyXTooZSx7cGF5bG9hZDp7cGF0aE1ldGhvZDp0fX0pPT5lLnVwZGF0ZUluKFsibWV0YSIsInBhdGhzIiwuLi50LCJwYXJhbWV0ZXJzIl0sKDAsay5mcm9tSlMpKFtdKSwoZT0+ZS5tYXAoKGU9PmUuc2V0KCJlcnJvcnMiLCgwLGsuZnJvbUpTKShbXSkpKSkpKSxbcXJdOihlLHtwYXlsb2FkOntyZXM6dCxwYXRoOnIsbWV0aG9kOmF9fSk9PntsZXQgbjtuPXQuZXJyb3I/T2JqZWN0LmFzc2lnbih7ZXJyb3I6ITAsbmFtZTp0LmVyci5uYW1lLG1lc3NhZ2U6dC5lcnIubWVzc2FnZSxzdGF0dXNDb2RlOnQuZXJyLnN0YXR1c0NvZGV9LHQuZXJyLnJlc3BvbnNlKTp0LG4uaGVhZGVycz1uLmhlYWRlcnN8fHt9O2xldCBzPWUuc2V0SW4oWyJyZXNwb25zZXMiLHIsYV0sZnJvbUpTT3JkZXJlZChuKSk7cmV0dXJuIEsuQmxvYiYmbi5kYXRhIGluc3RhbmNlb2YgSy5CbG9iJiYocz1zLnNldEluKFsicmVzcG9uc2VzIixyLGEsInRleHQiXSxuLmRhdGEpKSxzfSxbUHJdOihlLHtwYXlsb2FkOntyZXE6dCxwYXRoOnIsbWV0aG9kOmF9fSk9PmUuc2V0SW4oWyJyZXF1ZXN0cyIscixhXSxmcm9tSlNPcmRlcmVkKHQpKSxbTXJdOihlLHtwYXlsb2FkOntyZXE6dCxwYXRoOnIsbWV0aG9kOmF9fSk9PmUuc2V0SW4oWyJtdXRhdGVkUmVxdWVzdHMiLHIsYV0sZnJvbUpTT3JkZXJlZCh0KSksW1ZyXTooZSx7cGF5bG9hZDp7cGF0aDp0LHZhbHVlOnIsa2V5OmF9fSk9PntsZXQgbj1bInBhdGhzIiwuLi50XSxzPVsibWV0YSIsInBhdGhzIiwuLi50XTtyZXR1cm4gZS5nZXRJbihbImpzb24iLC4uLm5dKXx8ZS5nZXRJbihbInJlc29sdmVkIiwuLi5uXSl8fGUuZ2V0SW4oWyJyZXNvbHZlZFN1YnRyZWVzIiwuLi5uXSk/ZS5zZXRJbihbLi4ucyxhXSwoMCxrLmZyb21KUykocikpOmV9LFtScl06KGUse3BheWxvYWQ6e3BhdGg6dCxtZXRob2Q6cn19KT0+ZS5kZWxldGVJbihbInJlc3BvbnNlcyIsdCxyXSksW0pyXTooZSx7cGF5bG9hZDp7cGF0aDp0LG1ldGhvZDpyfX0pPT5lLmRlbGV0ZUluKFsicmVxdWVzdHMiLHQscl0pLFtVcl06KGUse3BheWxvYWQ6e3NjaGVtZTp0LHBhdGg6cixtZXRob2Q6YX19KT0+ciYmYT9lLnNldEluKFsic2NoZW1lIixyLGFdLHQpOnJ8fGE/dm9pZCAwOmUuc2V0SW4oWyJzY2hlbWUiLCJfZGVmYXVsdFNjaGVtZSJdLHQpfSx3cmFwX2FjdGlvbnNfdXBkYXRlU3BlYz0oZSx7c3BlY0FjdGlvbnM6dH0pPT4oLi4ucik9PntlKC4uLnIpLHQucGFyc2VUb0pzb24oLi4ucil9LHdyYXBfYWN0aW9uc191cGRhdGVKc29uU3BlYz0oZSx7c3BlY0FjdGlvbnM6dH0pPT4oLi4ucik9PntlKC4uLnIpLHQuaW52YWxpZGF0ZVJlc29sdmVkU3VidHJlZUNhY2hlKCk7Y29uc3RbYV09cixuPUZlKCkoYSxbInBhdGhzIl0pfHx7fTtPYmplY3Qua2V5cyhuKS5mb3JFYWNoKChlPT57Y29uc3Qgcj1GZSgpKG4sW2VdKTt3dCgpKHIpJiZyLiRyZWYmJnQucmVxdWVzdFJlc29sdmVkU3VidHJlZShbInBhdGhzIixlXSl9KSksdC5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKFsiY29tcG9uZW50cyIsInNlY3VyaXR5U2NoZW1lcyJdKX0sd3JhcF9hY3Rpb25zX2V4ZWN1dGVSZXF1ZXN0PShlLHtzcGVjQWN0aW9uczp0fSk9PnI9Pih0LmxvZ1JlcXVlc3QociksZShyKSksd3JhcF9hY3Rpb25zX3ZhbGlkYXRlUGFyYW1zPShlLHtzcGVjU2VsZWN0b3JzOnR9KT0+cj0+ZShyLHQuaXNPQVMzKCkpLHBsdWdpbnNfc3BlYz0oKT0+KHtzdGF0ZVBsdWdpbnM6e3NwZWM6e3dyYXBBY3Rpb25zOnsuLi5TfSxyZWR1Y2Vyczp7Li4uRnJ9LGFjdGlvbnM6ey4uLmZ9LHNlbGVjdG9yczp7Li4ueX19fX0pLFdyPXJlcXVpcmUoInN3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvZ2VuZXJpYyIpO3ZhciBIcj1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oV3IpO2NvbnN0IFhyPXJlcXVpcmUoInN3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvb3BlbmFwaS0yIik7dmFyIEdyPV9fd2VicGFja19yZXF1aXJlX18ubihYcik7Y29uc3QgWXI9cmVxdWlyZSgic3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvc3RyYXRlZ2llcy9vcGVuYXBpLTMtMCIpO3ZhciBRcj1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oWXIpO2NvbnN0IFpyPXJlcXVpcmUoInN3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvb3BlbmFwaS0zLTEtYXBpZG9tIik7dmFyIGVhPV9fd2VicGFja19yZXF1aXJlX18ubihacik7Y29uc3QgdGE9cmVxdWlyZSgic3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIiKSxyYT1yZXF1aXJlKCJzd2FnZ2VyLWNsaWVudC9lcy9leGVjdXRlIiksYWE9cmVxdWlyZSgic3dhZ2dlci1jbGllbnQvZXMvaHR0cCIpO3ZhciBuYT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oYWEpO2NvbnN0IHNhPXJlcXVpcmUoInN3YWdnZXItY2xpZW50L2VzL3N1YnRyZWUtcmVzb2x2ZXIiKSxvYT1yZXF1aXJlKCJzd2FnZ2VyLWNsaWVudC9lcy9oZWxwZXJzIiksY29uZmlnc193cmFwX2FjdGlvbnNfbG9hZGVkPShlLHQpPT4oLi4ucik9PntlKC4uLnIpO2NvbnN0IGE9dC5nZXRDb25maWdzKCkud2l0aENyZWRlbnRpYWxzO3QuZm4uZmV0Y2gud2l0aENyZWRlbnRpYWxzPWF9O2Z1bmN0aW9uIHN3YWdnZXJfY2xpZW50KHtjb25maWdzOmUsZ2V0Q29uZmlnczp0fSl7cmV0dXJue2ZuOntmZXRjaDooMCxhYS5tYWtlSHR0cCkobmEoKSxlLnByZUZldGNoLGUucG9zdEZldGNoKSxidWlsZFJlcXVlc3Q6cmEuYnVpbGRSZXF1ZXN0LGV4ZWN1dGU6cmEuZXhlY3V0ZSxyZXNvbHZlOigwLHRhLm1ha2VSZXNvbHZlKSh7c3RyYXRlZ2llczpbZWEoKSxRcigpLEdyKCksSHIoKV19KSxyZXNvbHZlU3VidHJlZTphc3luYyhlLHIsYT17fSk9Pntjb25zdCBuPXQoKSxzPXttb2RlbFByb3BlcnR5TWFjcm86bi5tb2RlbFByb3BlcnR5TWFjcm8scGFyYW1ldGVyTWFjcm86bi5wYXJhbWV0ZXJNYWNybyxyZXF1ZXN0SW50ZXJjZXB0b3I6bi5yZXF1ZXN0SW50ZXJjZXB0b3IscmVzcG9uc2VJbnRlcmNlcHRvcjpuLnJlc3BvbnNlSW50ZXJjZXB0b3Isc3RyYXRlZ2llczpbZWEoKSxRcigpLEdyKCksSHIoKV19O3JldHVybigwLHNhLm1ha2VSZXNvbHZlU3VidHJlZSkocykoZSxyLGEpfSxzZXJpYWxpemVSZXM6YWEuc2VyaWFsaXplUmVzLG9wSWQ6b2Eub3BJZH0sc3RhdGVQbHVnaW5zOntjb25maWdzOnt3cmFwQWN0aW9uczp7bG9hZGVkOmNvbmZpZ3Nfd3JhcF9hY3Rpb25zX2xvYWRlZH19fX19ZnVuY3Rpb24gdXRpbCgpe3JldHVybntmbjp7c2hhbGxvd0VxdWFsS2V5cyxzYW5pdGl6ZVVybH19fWNvbnN0IGxhPXJlcXVpcmUoInJlYWN0LWRvbSIpO3ZhciBjYT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4obGEpO2NvbnN0IGlhPXJlcXVpcmUoInJlYWN0LXJlZHV4IikscGE9cmVxdWlyZSgibG9kYXNoL2lkZW50aXR5Iik7dmFyIG1hPV9fd2VicGFja19yZXF1aXJlX18ubihwYSk7Y29uc3Qgd2l0aFN5c3RlbT1lPT50PT57Y29uc3R7Zm46cn09ZSgpO2NsYXNzIFdpdGhTeXN0ZW0gZXh0ZW5kcyB4LkNvbXBvbmVudHtyZW5kZXIoKXtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQodCxRZSgpKHt9LGUoKSx0aGlzLnByb3BzLHRoaXMuY29udGV4dCkpfX1yZXR1cm4gV2l0aFN5c3RlbS5kaXNwbGF5TmFtZT1gV2l0aFN5c3RlbSgke3IuZ2V0RGlzcGxheU5hbWUodCl9KWAsV2l0aFN5c3RlbX0sd2l0aFJvb3Q9KGUsdCk9PnI9Pntjb25zdHtmbjphfT1lKCk7Y2xhc3MgV2l0aFJvb3QgZXh0ZW5kcyB4LkNvbXBvbmVudHtyZW5kZXIoKXtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoaWEuUHJvdmlkZXIse3N0b3JlOnR9LE8oKS5jcmVhdGVFbGVtZW50KHIsUWUoKSh7fSx0aGlzLnByb3BzLHRoaXMuY29udGV4dCkpKX19cmV0dXJuIFdpdGhSb290LmRpc3BsYXlOYW1lPWBXaXRoUm9vdCgke2EuZ2V0RGlzcGxheU5hbWUocil9KWAsV2l0aFJvb3R9LHdpdGhDb25uZWN0PShlLHQscik9PigwLE4uY29tcG9zZSkocj93aXRoUm9vdChlLHIpOm1hKCksKDAsaWEuY29ubmVjdCkoKChyLGEpPT57Y29uc3Qgbj17Li4uYSwuLi5lKCl9LHM9dC5wcm90b3R5cGU/Lm1hcFN0YXRlVG9Qcm9wc3x8KGU9Pih7c3RhdGU6ZX0pKTtyZXR1cm4gcyhyLG4pfSkpLHdpdGhTeXN0ZW0oZSkpKHQpLGhhbmRsZVByb3BzPShlLHQscixhKT0+e2Zvcihjb25zdCBuIGluIHQpe2NvbnN0IHM9dFtuXTsiZnVuY3Rpb24iPT10eXBlb2YgcyYmcyhyW25dLGFbbl0sZSgpKX19LHdpdGhNYXBwZWRDb250YWluZXI9KGUsdCxyKT0+KHQsYSk9Pntjb25zdHtmbjpufT1lKCkscz1yKHQsInJvb3QiKTtjbGFzcyBXaXRoTWFwcGVkQ29udGFpbmVyIGV4dGVuZHMgeC5Db21wb25lbnR7Y29uc3RydWN0b3IodCxyKXtzdXBlcih0LHIpLGhhbmRsZVByb3BzKGUsYSx0LHt9KX1VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyh0KXtoYW5kbGVQcm9wcyhlLGEsdCx0aGlzLnByb3BzKX1yZW5kZXIoKXtjb25zdCBlPWtlKCkodGhpcy5wcm9wcyxhP09iamVjdC5rZXlzKGEpOltdKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQocyxlKX19cmV0dXJuIFdpdGhNYXBwZWRDb250YWluZXIuZGlzcGxheU5hbWU9YFdpdGhNYXBwZWRDb250YWluZXIoJHtuLmdldERpc3BsYXlOYW1lKHMpfSlgLFdpdGhNYXBwZWRDb250YWluZXJ9LHJlbmRlcj0oZSx0LHIsYSk9Pm49Pntjb25zdCBzPXIoZSx0LGEpKCJBcHAiLCJyb290Iikse2NyZWF0ZVJvb3Q6b309Y2EoKTtvKG4pLnJlbmRlcihPKCkuY3JlYXRlRWxlbWVudChzLG51bGwpKX0sZ2V0Q29tcG9uZW50PShlLHQscik9PihhLG4scz17fSk9PntpZigic3RyaW5nIiE9dHlwZW9mIGEpdGhyb3cgbmV3IFR5cGVFcnJvcigiTmVlZCBhIHN0cmluZywgdG8gZmV0Y2ggYSBjb21wb25lbnQuIFdhcyBnaXZlbiBhICIrdHlwZW9mIGEpO2NvbnN0IG89cihhKTtyZXR1cm4gbz9uPyJyb290Ij09PW4/d2l0aENvbm5lY3QoZSxvLHQoKSk6d2l0aENvbm5lY3QoZSxvKTpvOihzLmZhaWxTaWxlbnRseXx8ZSgpLmxvZy53YXJuKCJDb3VsZCBub3QgZmluZCBjb21wb25lbnQ6IixhKSxudWxsKX0sZ2V0RGlzcGxheU5hbWU9ZT0+ZS5kaXNwbGF5TmFtZXx8ZS5uYW1lfHwiQ29tcG9uZW50Iix2aWV3PSh7Z2V0Q29tcG9uZW50czplLGdldFN0b3JlOnQsZ2V0U3lzdGVtOnJ9KT0+e2NvbnN0IGE9KG49Z2V0Q29tcG9uZW50KHIsdCxlKSxpZShuLCgoLi4uZSk9PkpTT04uc3RyaW5naWZ5KGUpKSkpO3ZhciBuO2NvbnN0IHM9KGU9PnV0aWxzX21lbW9pemVOKGUsKCguLi5lKT0+ZSkpKSh3aXRoTWFwcGVkQ29udGFpbmVyKHIsMCxhKSk7cmV0dXJue3Jvb3RJbmplY3RzOntnZXRDb21wb25lbnQ6YSxtYWtlTWFwcGVkQ29udGFpbmVyOnMscmVuZGVyOnJlbmRlcihyLHQsZ2V0Q29tcG9uZW50LGUpfSxmbjp7Z2V0RGlzcGxheU5hbWV9fX0sdmlld19sZWdhY3k9KHtSZWFjdDplLGdldFN5c3RlbTp0LGdldFN0b3JlOnIsZ2V0Q29tcG9uZW50czphfSk9Pntjb25zdCBuPXt9LHM9cGFyc2VJbnQoZT8udmVyc2lvbiwxMCk7cmV0dXJuIHM+PTE2JiZzPDE4JiYobi5yZW5kZXI9KChlLHQscixhKT0+bj0+e2NvbnN0IHM9cihlLHQsYSkoIkFwcCIsInJvb3QiKTtjYSgpLnJlbmRlcihPKCkuY3JlYXRlRWxlbWVudChzLG51bGwpLG4pfSkodCxyLGdldENvbXBvbmVudCxhKSkse3Jvb3RJbmplY3RzOm59fTtmdW5jdGlvbiBkb3dubG9hZFVybFBsdWdpbihlKXtsZXR7Zm46dH09ZTtjb25zdCByPXtkb3dubG9hZDplPT4oe2VyckFjdGlvbnM6cixzcGVjU2VsZWN0b3JzOmEsc3BlY0FjdGlvbnM6bixnZXRDb25maWdzOnN9KT0+e2xldHtmZXRjaDpvfT10O2NvbnN0IGw9cygpO2Z1bmN0aW9uIG5leHQodCl7aWYodCBpbnN0YW5jZW9mIEVycm9yfHx0LnN0YXR1cz49NDAwKXJldHVybiBuLnVwZGF0ZUxvYWRpbmdTdGF0dXMoImZhaWxlZCIpLHIubmV3VGhyb3duRXJyKE9iamVjdC5hc3NpZ24obmV3IEVycm9yKCh0Lm1lc3NhZ2V8fHQuc3RhdHVzVGV4dCkrIiAiK2UpLHtzb3VyY2U6ImZldGNoIn0pKSx2b2lkKCF0LnN0YXR1cyYmdCBpbnN0YW5jZW9mIEVycm9yJiZmdW5jdGlvbiBjaGVja1Bvc3NpYmxlRmFpbFJlYXNvbnMoKXt0cnl7bGV0IHQ7aWYoIlVSTCJpbiBLP3Q9bmV3IFVSTChlKToodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksdC5ocmVmPWUpLCJodHRwczoiIT09dC5wcm90b2NvbCYmImh0dHBzOiI9PT1LLmxvY2F0aW9uLnByb3RvY29sKXtjb25zdCBlPU9iamVjdC5hc3NpZ24obmV3IEVycm9yKGBQb3NzaWJsZSBtaXhlZC1jb250ZW50IGlzc3VlPyBUaGUgcGFnZSB3YXMgbG9hZGVkIG92ZXIgaHR0cHM6Ly8gYnV0IGEgJHt0LnByb3RvY29sfS8vIFVSTCB3YXMgc3BlY2lmaWVkLiBDaGVjayB0aGF0IHlvdSBhcmUgbm90IGF0dGVtcHRpbmcgdG8gbG9hZCBtaXhlZCBjb250ZW50LmApLHtzb3VyY2U6ImZldGNoIn0pO3JldHVybiB2b2lkIHIubmV3VGhyb3duRXJyKGUpfWlmKHQub3JpZ2luIT09Sy5sb2NhdGlvbi5vcmlnaW4pe2NvbnN0IGU9T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoYFBvc3NpYmxlIGNyb3NzLW9yaWdpbiAoQ09SUykgaXNzdWU/IFRoZSBVUkwgb3JpZ2luICgke3Qub3JpZ2lufSkgZG9lcyBub3QgbWF0Y2ggdGhlIHBhZ2UgKCR7Sy5sb2NhdGlvbi5vcmlnaW59KS4gQ2hlY2sgdGhlIHNlcnZlciByZXR1cm5zIHRoZSBjb3JyZWN0ICdBY2Nlc3MtQ29udHJvbC1BbGxvdy0qJyBoZWFkZXJzLmApLHtzb3VyY2U6ImZldGNoIn0pO3IubmV3VGhyb3duRXJyKGUpfX1jYXRjaChlKXtyZXR1cm59fSgpKTtuLnVwZGF0ZUxvYWRpbmdTdGF0dXMoInN1Y2Nlc3MiKSxuLnVwZGF0ZVNwZWModC50ZXh0KSxhLnVybCgpIT09ZSYmbi51cGRhdGVVcmwoZSl9ZT1lfHxhLnVybCgpLG4udXBkYXRlTG9hZGluZ1N0YXR1cygibG9hZGluZyIpLHIuY2xlYXIoe3NvdXJjZToiZmV0Y2gifSksbyh7dXJsOmUsbG9hZFNwZWM6ITAscmVxdWVzdEludGVyY2VwdG9yOmwucmVxdWVzdEludGVyY2VwdG9yfHwoZT0+ZSkscmVzcG9uc2VJbnRlcmNlcHRvcjpsLnJlc3BvbnNlSW50ZXJjZXB0b3J8fChlPT5lKSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwqLyoifX0pLnRoZW4obmV4dCxuZXh0KX0sdXBkYXRlTG9hZGluZ1N0YXR1czplPT57bGV0IHQ9W251bGwsImxvYWRpbmciLCJmYWlsZWQiLCJzdWNjZXNzIiwiZmFpbGVkQ29uZmlnIl07cmV0dXJuLTE9PT10LmluZGV4T2YoZSkmJmNvbnNvbGUuZXJyb3IoYEVycm9yOiAke2V9IGlzIG5vdCBvbmUgb2YgJHtKU09OLnN0cmluZ2lmeSh0KX1gKSx7dHlwZToic3BlY191cGRhdGVfbG9hZGluZ19zdGF0dXMiLHBheWxvYWQ6ZX19fTtsZXQgYT17bG9hZGluZ1N0YXR1czooMCxfZS5jcmVhdGVTZWxlY3RvcikoKGU9PmV8fCgwLGsuTWFwKSgpKSwoZT0+ZS5nZXQoImxvYWRpbmdTdGF0dXMiKXx8bnVsbCkpfTtyZXR1cm57c3RhdGVQbHVnaW5zOntzcGVjOnthY3Rpb25zOnIscmVkdWNlcnM6e3NwZWNfdXBkYXRlX2xvYWRpbmdfc3RhdHVzOihlLHQpPT4ic3RyaW5nIj09dHlwZW9mIHQucGF5bG9hZD9lLnNldCgibG9hZGluZ1N0YXR1cyIsdC5wYXlsb2FkKTplfSxzZWxlY3RvcnM6YX19fX1jb25zdCB1YT1yZXF1aXJlKCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGlnaHQiKTt2YXIgZGE9X193ZWJwYWNrX3JlcXVpcmVfXy5uKHVhKTtjb25zdCBoYT1yZXF1aXJlKCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL2hsanMvamF2YXNjcmlwdCIpO3ZhciBnYT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oaGEpO2NvbnN0IHlhPXJlcXVpcmUoInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy9qc29uIik7dmFyIGZhPV9fd2VicGFja19yZXF1aXJlX18ubih5YSk7Y29uc3QgU2E9cmVxdWlyZSgicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL3htbCIpO3ZhciBFYT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oU2EpO2NvbnN0IF9hPXJlcXVpcmUoInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy9iYXNoIik7dmFyIHZhPV9fd2VicGFja19yZXF1aXJlX18ubihfYSk7Y29uc3Qgd2E9cmVxdWlyZSgicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL3lhbWwiKTt2YXIgYmE9X193ZWJwYWNrX3JlcXVpcmVfXy5uKHdhKTtjb25zdCBDYT1yZXF1aXJlKCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL2hsanMvaHR0cCIpO3ZhciB4YT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oQ2EpO2NvbnN0IE9hPXJlcXVpcmUoInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy9wb3dlcnNoZWxsIik7dmFyIE5hPV9fd2VicGFja19yZXF1aXJlX18ubihPYSk7Y29uc3QgYWZ0ZXJfbG9hZD0oKT0+e2RhKCkucmVnaXN0ZXJMYW5ndWFnZSgianNvbiIsZmEoKSksZGEoKS5yZWdpc3Rlckxhbmd1YWdlKCJqcyIsZ2EoKSksZGEoKS5yZWdpc3Rlckxhbmd1YWdlKCJ4bWwiLEVhKCkpLGRhKCkucmVnaXN0ZXJMYW5ndWFnZSgieWFtbCIsYmEoKSksZGEoKS5yZWdpc3Rlckxhbmd1YWdlKCJodHRwIix4YSgpKSxkYSgpLnJlZ2lzdGVyTGFuZ3VhZ2UoImJhc2giLHZhKCkpLGRhKCkucmVnaXN0ZXJMYW5ndWFnZSgicG93ZXJzaGVsbCIsTmEoKSksZGEoKS5yZWdpc3Rlckxhbmd1YWdlKCJqYXZhc2NyaXB0IixnYSgpKX0sa2E9cmVxdWlyZSgicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL3N0eWxlcy9obGpzL2FnYXRlIik7dmFyIEFhPV9fd2VicGFja19yZXF1aXJlX18ubihrYSk7Y29uc3QgSWE9cmVxdWlyZSgicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL3N0eWxlcy9obGpzL2FydGEiKTt2YXIgamE9X193ZWJwYWNrX3JlcXVpcmVfXy5uKElhKTtjb25zdCBxYT1yZXF1aXJlKCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvbW9ub2thaSIpO3ZhciBQYT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocWEpO2NvbnN0IE1hPXJlcXVpcmUoInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9zdHlsZXMvaGxqcy9ub3JkIik7dmFyIFRhPV9fd2VicGFja19yZXF1aXJlX18ubihNYSk7Y29uc3QgUmE9cmVxdWlyZSgicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL3N0eWxlcy9obGpzL29ic2lkaWFuIik7dmFyIEphPV9fd2VicGFja19yZXF1aXJlX18ubihSYSk7Y29uc3QgJGE9cmVxdWlyZSgicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL3N0eWxlcy9obGpzL3RvbW9ycm93LW5pZ2h0Iik7dmFyIFZhPV9fd2VicGFja19yZXF1aXJlX18ubigkYSk7Y29uc3QgTGE9cmVxdWlyZSgicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL3N0eWxlcy9obGpzL2lkZWEiKTt2YXIgRGE9X193ZWJwYWNrX3JlcXVpcmVfXy5uKExhKTtjb25zdCBVYT17YWdhdGU6QWEoKSxhcnRhOmphKCksbW9ub2thaTpQYSgpLG5vcmQ6VGEoKSxvYnNpZGlhbjpKYSgpLCJ0b21vcnJvdy1uaWdodCI6VmEoKSxpZGVhOkRhKCl9LEthPUFhKCksY29tcG9uZW50c19TeW50YXhIaWdobGlnaHRlcj0oe2xhbmd1YWdlOmUsY2xhc3NOYW1lOnQ9IiIsZ2V0Q29uZmlnczpyLHN5bnRheEhpZ2hsaWdodGluZzphPXt9LGNoaWxkcmVuOm49IiJ9KT0+e2NvbnN0IHM9cigpLnN5bnRheEhpZ2hsaWdodC50aGVtZSx7c3R5bGVzOm8sZGVmYXVsdFN0eWxlOmx9PWEsYz1vPy5bc10/P2w7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KGRhKCkse2xhbmd1YWdlOmUsY2xhc3NOYW1lOnQsc3R5bGU6Y30sbil9LHphPXJlcXVpcmUoImpzLWZpbGUtZG93bmxvYWQiKTt2YXIgQmE9X193ZWJwYWNrX3JlcXVpcmVfXy5uKHphKTtjb25zdCBjb21wb25lbnRzX0hpZ2hsaWdodENvZGU9KHtmaWxlTmFtZTplPSJyZXNwb25zZS50eHQiLGNsYXNzTmFtZTp0LGRvd25sb2FkYWJsZTpyLGdldENvbXBvbmVudDphLGNhbkNvcHk6bixsYW5ndWFnZTpzLGNoaWxkcmVuOm99KT0+e2NvbnN0IGw9KDAseC51c2VSZWYpKG51bGwpLGM9YSgiU3ludGF4SGlnaGxpZ2h0ZXIiLCEwKSxoYW5kbGVQcmV2ZW50WVNjcm9sbGluZ0JleW9uZEVsZW1lbnQ9ZT0+e2NvbnN0e3RhcmdldDp0LGRlbHRhWTpyfT1lLHtzY3JvbGxIZWlnaHQ6YSxvZmZzZXRIZWlnaHQ6bixzY3JvbGxUb3A6c309dDthPm4mJigwPT09cyYmcjwwfHxuK3M+PWEmJnI+MCkmJmUucHJldmVudERlZmF1bHQoKX07cmV0dXJuKDAseC51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IGU9QXJyYXkuZnJvbShsLmN1cnJlbnQuY2hpbGROb2RlcykuZmlsdGVyKChlPT4hIWUubm9kZVR5cGUmJmUuY2xhc3NMaXN0LmNvbnRhaW5zKCJtaWNyb2xpZ2h0IikpKTtyZXR1cm4gZS5mb3JFYWNoKChlPT5lLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNld2hlZWwiLGhhbmRsZVByZXZlbnRZU2Nyb2xsaW5nQmV5b25kRWxlbWVudCx7cGFzc2l2ZTohMX0pKSksKCk9PntlLmZvckVhY2goKGU9PmUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V3aGVlbCIsaGFuZGxlUHJldmVudFlTY3JvbGxpbmdCZXlvbmRFbGVtZW50KSkpfX0pLFtvLHQsc10pLE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImhpZ2hsaWdodC1jb2RlIixyZWY6bH0sbiYmTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiY29weS10by1jbGlwYm9hcmQifSxPKCkuY3JlYXRlRWxlbWVudChtdC5Db3B5VG9DbGlwYm9hcmQse3RleHQ6b30sTygpLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIsbnVsbCkpKSxyP08oKS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtjbGFzc05hbWU6ImRvd25sb2FkLWNvbnRlbnRzIixvbkNsaWNrOigpPT57QmEoKShvLGUpfX0sIkRvd25sb2FkIik6bnVsbCxPKCkuY3JlYXRlRWxlbWVudChjLHtsYW5ndWFnZTpzLGNsYXNzTmFtZTpwdCgpKHQsIm1pY3JvbGlnaHQiKSxyZW5kZXJQbGFpblRleHQ6KHtjaGlsZHJlbjplLFBsYWluVGV4dFZpZXdlcjpyfSk9Pk8oKS5jcmVhdGVFbGVtZW50KHIse2NsYXNzTmFtZTp0fSxlKX0sbykpfSxjb21wb25lbnRzX1BsYWluVGV4dFZpZXdlcj0oe2NsYXNzTmFtZTplPSIiLGNoaWxkcmVuOnR9KT0+TygpLmNyZWF0ZUVsZW1lbnQoInByZSIse2NsYXNzTmFtZTpwdCgpKCJtaWNyb2xpZ2h0IixlKX0sdCksd3JhcF9jb21wb25lbnRzX1N5bnRheEhpZ2hsaWdodGVyPShlLHQpPT4oe3JlbmRlclBsYWluVGV4dDpyLGNoaWxkcmVuOmEsLi4ubn0pPT57Y29uc3Qgcz10LmdldENvbmZpZ3MoKS5zeW50YXhIaWdobGlnaHQuYWN0aXZhdGVkLG89dC5nZXRDb21wb25lbnQoIlBsYWluVGV4dFZpZXdlciIpO3JldHVybiBzfHwiZnVuY3Rpb24iIT10eXBlb2Ygcj9zP08oKS5jcmVhdGVFbGVtZW50KGUsbixhKTpPKCkuY3JlYXRlRWxlbWVudChvLG51bGwsYSk6cih7Y2hpbGRyZW46YSxQbGFpblRleHRWaWV3ZXI6b30pfSxTeW50YXhIaWdobGlnaHRpbmdQbHVnaW4xPSgpPT4oe2FmdGVyTG9hZDphZnRlcl9sb2FkLHJvb3RJbmplY3RzOntzeW50YXhIaWdobGlnaHRpbmc6e3N0eWxlczpVYSxkZWZhdWx0U3R5bGU6S2F9fSxjb21wb25lbnRzOntTeW50YXhIaWdobGlnaHRlcjpjb21wb25lbnRzX1N5bnRheEhpZ2hsaWdodGVyLEhpZ2hsaWdodENvZGU6Y29tcG9uZW50c19IaWdobGlnaHRDb2RlLFBsYWluVGV4dFZpZXdlcjpjb21wb25lbnRzX1BsYWluVGV4dFZpZXdlcn19KSxTeW50YXhIaWdobGlnaHRpbmdQbHVnaW4yPSgpPT4oe3dyYXBDb21wb25lbnRzOntTeW50YXhIaWdobGlnaHRlcjp3cmFwX2NvbXBvbmVudHNfU3ludGF4SGlnaGxpZ2h0ZXJ9fSksc3ludGF4X2hpZ2hsaWdodGluZz0oKT0+W1N5bnRheEhpZ2hsaWdodGluZ1BsdWdpbjEsU3ludGF4SGlnaGxpZ2h0aW5nUGx1Z2luMl0sdmVyc2lvbnNfYWZ0ZXJfbG9hZD0oKT0+e2NvbnN0e0dJVF9ESVJUWTplLEdJVF9DT01NSVQ6dCxQQUNLQUdFX1ZFUlNJT046cixCVUlMRF9USU1FOmF9PXtQQUNLQUdFX1ZFUlNJT046IjUuMjQuMiIsR0lUX0NPTU1JVDoiZ2Y3MTRhZmYxIixHSVRfRElSVFk6ITAsQlVJTERfVElNRToiTW9uLCAxNiBKdW4gMjAyNSAxMjo0OTowOCBHTVQifTtLLnZlcnNpb25zPUsudmVyc2lvbnN8fHt9LEsudmVyc2lvbnMuc3dhZ2dlclVJPXt2ZXJzaW9uOnIsZ2l0UmV2aXNpb246dCxnaXREaXJ0eTplLGJ1aWxkVGltZXN0YW1wOmF9fSx2ZXJzaW9ucz0oKT0+KHthZnRlckxvYWQ6dmVyc2lvbnNfYWZ0ZXJfbG9hZH0pLEZhPXJlcXVpcmUoImxvZGFzaC96aXBPYmplY3QiKTt2YXIgV2E9X193ZWJwYWNrX3JlcXVpcmVfXy5uKEZhKTtjb25zdCBIYT1jb25zb2xlLmVycm9yLHdpdGhFcnJvckJvdW5kYXJ5PWU9PnQ9Pntjb25zdHtnZXRDb21wb25lbnQ6cixmbjphfT1lKCksbj1yKCJFcnJvckJvdW5kYXJ5Iikscz1hLmdldERpc3BsYXlOYW1lKHQpO2NsYXNzIFdpdGhFcnJvckJvdW5kYXJ5IGV4dGVuZHMgeC5Db21wb25lbnR7cmVuZGVyKCl7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KG4se3RhcmdldE5hbWU6cyxnZXRDb21wb25lbnQ6cixmbjphfSxPKCkuY3JlYXRlRWxlbWVudCh0LFFlKCkoe30sdGhpcy5wcm9wcyx0aGlzLmNvbnRleHQpKSl9fXZhciBvO3JldHVybiBXaXRoRXJyb3JCb3VuZGFyeS5kaXNwbGF5TmFtZT1gV2l0aEVycm9yQm91bmRhcnkoJHtzfSlgLChvPXQpLnByb3RvdHlwZSYmby5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCYmKFdpdGhFcnJvckJvdW5kYXJ5LnByb3RvdHlwZS5tYXBTdGF0ZVRvUHJvcHM9dC5wcm90b3R5cGUubWFwU3RhdGVUb1Byb3BzKSxXaXRoRXJyb3JCb3VuZGFyeX0sZmFsbGJhY2s9KHtuYW1lOmV9KT0+TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZmFsbGJhY2sifSwi8J+YsSAiLE8oKS5jcmVhdGVFbGVtZW50KCJpIixudWxsLCJDb3VsZCBub3QgcmVuZGVyICIsInQiPT09ZT8idGhpcyBjb21wb25lbnQiOmUsIiwgc2VlIHRoZSBjb25zb2xlLiIpKTtjbGFzcyBFcnJvckJvdW5kYXJ5IGV4dGVuZHMgeC5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17dGFyZ2V0TmFtZToidGhpcyBjb21wb25lbnQiLGdldENvbXBvbmVudDooKT0+ZmFsbGJhY2ssZm46e2NvbXBvbmVudERpZENhdGNoOkhhfSxjaGlsZHJlbjpudWxsfTtzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGUpe3JldHVybntoYXNFcnJvcjohMCxlcnJvcjplfX1jb25zdHJ1Y3RvciguLi5lKXtzdXBlciguLi5lKSx0aGlzLnN0YXRlPXtoYXNFcnJvcjohMSxlcnJvcjpudWxsfX1jb21wb25lbnREaWRDYXRjaChlLHQpe3RoaXMucHJvcHMuZm4uY29tcG9uZW50RGlkQ2F0Y2goZSx0KX1yZW5kZXIoKXtjb25zdHtnZXRDb21wb25lbnQ6ZSx0YXJnZXROYW1lOnQsY2hpbGRyZW46cn09dGhpcy5wcm9wcztpZih0aGlzLnN0YXRlLmhhc0Vycm9yKXtjb25zdCByPWUoIkZhbGxiYWNrIik7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KHIse25hbWU6dH0pfXJldHVybiByfX1jb25zdCBYYT1FcnJvckJvdW5kYXJ5LHNhZmVfcmVuZGVyPSh7Y29tcG9uZW50TGlzdDplPVtdLGZ1bGxPdmVycmlkZTp0PSExfT17fSk9Pih7Z2V0U3lzdGVtOnJ9KT0+e2NvbnN0IGE9dD9lOlsiQXBwIiwiQmFzZUxheW91dCIsIlZlcnNpb25QcmFnbWFGaWx0ZXIiLCJJbmZvQ29udGFpbmVyIiwiU2VydmVyc0NvbnRhaW5lciIsIlNjaGVtZXNDb250YWluZXIiLCJBdXRob3JpemVCdG5Db250YWluZXIiLCJGaWx0ZXJDb250YWluZXIiLCJPcGVyYXRpb25zIiwiT3BlcmF0aW9uQ29udGFpbmVyIiwicGFyYW1ldGVycyIsInJlc3BvbnNlcyIsIk9wZXJhdGlvblNlcnZlcnMiLCJNb2RlbHMiLCJNb2RlbFdyYXBwZXIiLC4uLmVdLG49V2EoKShhLEFycmF5KGEubGVuZ3RoKS5maWxsKCgoZSx7Zm46dH0pPT50LndpdGhFcnJvckJvdW5kYXJ5KGUpKSkpO3JldHVybntmbjp7Y29tcG9uZW50RGlkQ2F0Y2g6SGEsd2l0aEVycm9yQm91bmRhcnk6d2l0aEVycm9yQm91bmRhcnkocil9LGNvbXBvbmVudHM6e0Vycm9yQm91bmRhcnk6WGEsRmFsbGJhY2s6ZmFsbGJhY2t9LHdyYXBDb21wb25lbnRzOm59fTtjbGFzcyBBcHAgZXh0ZW5kcyBPKCkuQ29tcG9uZW50e2dldExheW91dCgpe2NvbnN0e2dldENvbXBvbmVudDplLGxheW91dFNlbGVjdG9yczp0fT10aGlzLnByb3BzLHI9dC5jdXJyZW50KCksYT1lKHIsITApO3JldHVybiBhfHwoKCk9Pk8oKS5jcmVhdGVFbGVtZW50KCJoMSIsbnVsbCwnIE5vIGxheW91dCBkZWZpbmVkIGZvciAiJyxyLCciICcpKX1yZW5kZXIoKXtjb25zdCBlPXRoaXMuZ2V0TGF5b3V0KCk7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KGUsbnVsbCl9fWNvbnN0IEdhPUFwcDtjbGFzcyBBdXRob3JpemF0aW9uUG9wdXAgZXh0ZW5kcyBPKCkuQ29tcG9uZW50e2Nsb3NlPSgpPT57bGV0e2F1dGhBY3Rpb25zOmV9PXRoaXMucHJvcHM7ZS5zaG93RGVmaW5pdGlvbnMoITEpfTtyZW5kZXIoKXtsZXR7YXV0aFNlbGVjdG9yczplLGF1dGhBY3Rpb25zOnQsZ2V0Q29tcG9uZW50OnIsZXJyU2VsZWN0b3JzOmEsc3BlY1NlbGVjdG9yczpuLGZuOntBU1Q6cz17fX19PXRoaXMucHJvcHMsbz1lLnNob3duRGVmaW5pdGlvbnMoKTtjb25zdCBsPXIoImF1dGhzIiksYz1yKCJDbG9zZUljb24iKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZGlhbG9nLXV4In0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiYmFja2Ryb3AtdXgifSksTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibW9kYWwtdXgifSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJtb2RhbC1kaWFsb2ctdXgifSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJtb2RhbC11eC1pbm5lciJ9LE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im1vZGFsLXV4LWhlYWRlciJ9LE8oKS5jcmVhdGVFbGVtZW50KCJoMyIsbnVsbCwiQXZhaWxhYmxlIGF1dGhvcml6YXRpb25zIiksTygpLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJjbG9zZS1tb2RhbCIsb25DbGljazp0aGlzLmNsb3NlfSxPKCkuY3JlYXRlRWxlbWVudChjLG51bGwpKSksTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibW9kYWwtdXgtY29udGVudCJ9LG8udmFsdWVTZXEoKS5tYXAoKChvLGMpPT5PKCkuY3JlYXRlRWxlbWVudChsLHtrZXk6YyxBU1Q6cyxkZWZpbml0aW9uczpvLGdldENvbXBvbmVudDpyLGVyclNlbGVjdG9yczphLGF1dGhTZWxlY3RvcnM6ZSxhdXRoQWN0aW9uczp0LHNwZWNTZWxlY3RvcnM6bn0pKSkpKSkpKX19Y2xhc3MgQXV0aG9yaXplQnRuIGV4dGVuZHMgTygpLkNvbXBvbmVudHtyZW5kZXIoKXtsZXR7aXNBdXRob3JpemVkOmUsc2hvd1BvcHVwOnQsb25DbGljazpyLGdldENvbXBvbmVudDphfT10aGlzLnByb3BzO2NvbnN0IG49YSgiYXV0aG9yaXphdGlvblBvcHVwIiwhMCkscz1hKCJMb2NrQXV0aEljb24iLCEwKSxvPWEoIlVubG9ja0F1dGhJY29uIiwhMCk7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImF1dGgtd3JhcHBlciJ9LE8oKS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtjbGFzc05hbWU6ZT8iYnRuIGF1dGhvcml6ZSBsb2NrZWQiOiJidG4gYXV0aG9yaXplIHVubG9ja2VkIixvbkNsaWNrOnJ9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCJBdXRob3JpemUiKSxlP08oKS5jcmVhdGVFbGVtZW50KHMsbnVsbCk6TygpLmNyZWF0ZUVsZW1lbnQobyxudWxsKSksdCYmTygpLmNyZWF0ZUVsZW1lbnQobixudWxsKSl9fWNsYXNzIEF1dGhvcml6ZUJ0bkNvbnRhaW5lciBleHRlbmRzIE8oKS5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7YXV0aEFjdGlvbnM6ZSxhdXRoU2VsZWN0b3JzOnQsc3BlY1NlbGVjdG9yczpyLGdldENvbXBvbmVudDphfT10aGlzLnByb3BzLG49ci5zZWN1cml0eURlZmluaXRpb25zKCkscz10LmRlZmluaXRpb25zVG9BdXRob3JpemUoKSxvPWEoImF1dGhvcml6ZUJ0biIpO3JldHVybiBuP08oKS5jcmVhdGVFbGVtZW50KG8se29uQ2xpY2s6KCk9PmUuc2hvd0RlZmluaXRpb25zKHMpLGlzQXV0aG9yaXplZDohIXQuYXV0aG9yaXplZCgpLnNpemUsc2hvd1BvcHVwOiEhdC5zaG93bkRlZmluaXRpb25zKCksZ2V0Q29tcG9uZW50OmF9KTpudWxsfX1jbGFzcyBBdXRob3JpemVPcGVyYXRpb25CdG4gZXh0ZW5kcyBPKCkuQ29tcG9uZW50e29uQ2xpY2s9ZT0+e2Uuc3RvcFByb3BhZ2F0aW9uKCk7bGV0e29uQ2xpY2s6dH09dGhpcy5wcm9wczt0JiZ0KCl9O3JlbmRlcigpe2xldHtpc0F1dGhvcml6ZWQ6ZSxnZXRDb21wb25lbnQ6dH09dGhpcy5wcm9wcztjb25zdCByPXQoIkxvY2tBdXRoT3BlcmF0aW9uSWNvbiIsITApLGE9dCgiVW5sb2NrQXV0aE9wZXJhdGlvbkljb24iLCEwKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse2NsYXNzTmFtZToiYXV0aG9yaXphdGlvbl9fYnRuIiwiYXJpYS1sYWJlbCI6ZT8iYXV0aG9yaXphdGlvbiBidXR0b24gbG9ja2VkIjoiYXV0aG9yaXphdGlvbiBidXR0b24gdW5sb2NrZWQiLG9uQ2xpY2s6dGhpcy5vbkNsaWNrfSxlP08oKS5jcmVhdGVFbGVtZW50KHIse2NsYXNzTmFtZToibG9ja2VkIn0pOk8oKS5jcmVhdGVFbGVtZW50KGEse2NsYXNzTmFtZToidW5sb2NrZWQifSkpfX1jbGFzcyBBdXRocyBleHRlbmRzIE8oKS5Db21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLHRoaXMuc3RhdGU9e319b25BdXRoQ2hhbmdlPWU9PntsZXR7bmFtZTp0fT1lO3RoaXMuc2V0U3RhdGUoe1t0XTplfSl9O3N1Ym1pdEF1dGg9ZT0+e2UucHJldmVudERlZmF1bHQoKTtsZXR7YXV0aEFjdGlvbnM6dH09dGhpcy5wcm9wczt0LmF1dGhvcml6ZVdpdGhQZXJzaXN0T3B0aW9uKHRoaXMuc3RhdGUpfTtsb2dvdXRDbGljaz1lPT57ZS5wcmV2ZW50RGVmYXVsdCgpO2xldHthdXRoQWN0aW9uczp0LGRlZmluaXRpb25zOnJ9PXRoaXMucHJvcHMsYT1yLm1hcCgoKGUsdCk9PnQpKS50b0FycmF5KCk7dGhpcy5zZXRTdGF0ZShhLnJlZHVjZSgoKGUsdCk9PihlW3RdPSIiLGUpKSx7fSkpLHQubG9nb3V0V2l0aFBlcnNpc3RPcHRpb24oYSl9O2Nsb3NlPWU9PntlLnByZXZlbnREZWZhdWx0KCk7bGV0e2F1dGhBY3Rpb25zOnR9PXRoaXMucHJvcHM7dC5zaG93RGVmaW5pdGlvbnMoITEpfTtyZW5kZXIoKXtsZXR7ZGVmaW5pdGlvbnM6ZSxnZXRDb21wb25lbnQ6dCxhdXRoU2VsZWN0b3JzOnIsZXJyU2VsZWN0b3JzOmF9PXRoaXMucHJvcHM7Y29uc3Qgbj10KCJBdXRoSXRlbSIpLHM9dCgib2F1dGgyIiwhMCksbz10KCJCdXR0b24iKTtsZXQgbD1yLmF1dGhvcml6ZWQoKSxjPWUuZmlsdGVyKCgoZSx0KT0+ISFsLmdldCh0KSkpLGk9ZS5maWx0ZXIoKGU9PiJvYXV0aDIiIT09ZS5nZXQoInR5cGUiKSkpLHA9ZS5maWx0ZXIoKGU9PiJvYXV0aDIiPT09ZS5nZXQoInR5cGUiKSkpO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJhdXRoLWNvbnRhaW5lciJ9LCEhaS5zaXplJiZPKCkuY3JlYXRlRWxlbWVudCgiZm9ybSIse29uU3VibWl0OnRoaXMuc3VibWl0QXV0aH0saS5tYXAoKChlLHMpPT5PKCkuY3JlYXRlRWxlbWVudChuLHtrZXk6cyxzY2hlbWE6ZSxuYW1lOnMsZ2V0Q29tcG9uZW50OnQsb25BdXRoQ2hhbmdlOnRoaXMub25BdXRoQ2hhbmdlLGF1dGhvcml6ZWQ6bCxlcnJTZWxlY3RvcnM6YSxhdXRoU2VsZWN0b3JzOnJ9KSkpLnRvQXJyYXkoKSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJhdXRoLWJ0bi13cmFwcGVyIn0saS5zaXplPT09Yy5zaXplP08oKS5jcmVhdGVFbGVtZW50KG8se2NsYXNzTmFtZToiYnRuIG1vZGFsLWJ0biBhdXRoIixvbkNsaWNrOnRoaXMubG9nb3V0Q2xpY2ssImFyaWEtbGFiZWwiOiJSZW1vdmUgYXV0aG9yaXphdGlvbiJ9LCJMb2dvdXQiKTpPKCkuY3JlYXRlRWxlbWVudChvLHt0eXBlOiJzdWJtaXQiLGNsYXNzTmFtZToiYnRuIG1vZGFsLWJ0biBhdXRoIGF1dGhvcml6ZSIsImFyaWEtbGFiZWwiOiJBcHBseSBjcmVkZW50aWFscyJ9LCJBdXRob3JpemUiKSxPKCkuY3JlYXRlRWxlbWVudChvLHtjbGFzc05hbWU6ImJ0biBtb2RhbC1idG4gYXV0aCBidG4tZG9uZSIsb25DbGljazp0aGlzLmNsb3NlfSwiQ2xvc2UiKSkpLHAmJnAuc2l6ZT9PKCkuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InNjb3BlLWRlZiJ9LE8oKS5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJTY29wZXMgYXJlIHVzZWQgdG8gZ3JhbnQgYW4gYXBwbGljYXRpb24gZGlmZmVyZW50IGxldmVscyBvZiBhY2Nlc3MgdG8gZGF0YSBvbiBiZWhhbGYgb2YgdGhlIGVuZCB1c2VyLiBFYWNoIEFQSSBtYXkgZGVjbGFyZSBvbmUgb3IgbW9yZSBzY29wZXMuIiksTygpLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIkFQSSByZXF1aXJlcyB0aGUgZm9sbG93aW5nIHNjb3Blcy4gU2VsZWN0IHdoaWNoIG9uZXMgeW91IHdhbnQgdG8gZ3JhbnQgdG8gU3dhZ2dlciBVSS4iKSksZS5maWx0ZXIoKGU9PiJvYXV0aDIiPT09ZS5nZXQoInR5cGUiKSkpLm1hcCgoKGUsdCk9Pk8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6dH0sTygpLmNyZWF0ZUVsZW1lbnQocyx7YXV0aG9yaXplZDpsLHNjaGVtYTplLG5hbWU6dH0pKSkpLnRvQXJyYXkoKSk6bnVsbCl9fWNsYXNzIGF1dGhfaXRlbV9BdXRocyBleHRlbmRzIE8oKS5Db21wb25lbnR7cmVuZGVyKCl7bGV0e3NjaGVtYTplLG5hbWU6dCxnZXRDb21wb25lbnQ6cixvbkF1dGhDaGFuZ2U6YSxhdXRob3JpemVkOm4sZXJyU2VsZWN0b3JzOnMsYXV0aFNlbGVjdG9yczpvfT10aGlzLnByb3BzO2NvbnN0IGw9cigiYXBpS2V5QXV0aCIpLGM9cigiYmFzaWNBdXRoIik7bGV0IGk7Y29uc3QgcD1lLmdldCgidHlwZSIpO3N3aXRjaChwKXtjYXNlImFwaUtleSI6aT1PKCkuY3JlYXRlRWxlbWVudChsLHtrZXk6dCxzY2hlbWE6ZSxuYW1lOnQsZXJyU2VsZWN0b3JzOnMsYXV0aG9yaXplZDpuLGdldENvbXBvbmVudDpyLG9uQ2hhbmdlOmEsYXV0aFNlbGVjdG9yczpvfSk7YnJlYWs7Y2FzZSJiYXNpYyI6aT1PKCkuY3JlYXRlRWxlbWVudChjLHtrZXk6dCxzY2hlbWE6ZSxuYW1lOnQsZXJyU2VsZWN0b3JzOnMsYXV0aG9yaXplZDpuLGdldENvbXBvbmVudDpyLG9uQ2hhbmdlOmEsYXV0aFNlbGVjdG9yczpvfSk7YnJlYWs7ZGVmYXVsdDppPU8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6dH0sIlVua25vd24gc2VjdXJpdHkgZGVmaW5pdGlvbiB0eXBlICIscCl9cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6YCR7dH0tanVtcGB9LGkpfX1jbGFzcyBBdXRoRXJyb3IgZXh0ZW5kcyBPKCkuQ29tcG9uZW50e3JlbmRlcigpe2xldHtlcnJvcjplfT10aGlzLnByb3BzLHQ9ZS5nZXQoImxldmVsIikscj1lLmdldCgibWVzc2FnZSIpLGE9ZS5nZXQoInNvdXJjZSIpO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvcnMifSxPKCkuY3JlYXRlRWxlbWVudCgiYiIsbnVsbCxhLCIgIix0KSxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxyKSl9fWNsYXNzIEFwaUtleUF1dGggZXh0ZW5kcyBPKCkuQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KTtsZXR7bmFtZTpyLHNjaGVtYTphfT10aGlzLnByb3BzLG49dGhpcy5nZXRWYWx1ZSgpO3RoaXMuc3RhdGU9e25hbWU6cixzY2hlbWE6YSx2YWx1ZTpufX1nZXRWYWx1ZSgpe2xldHtuYW1lOmUsYXV0aG9yaXplZDp0fT10aGlzLnByb3BzO3JldHVybiB0JiZ0LmdldEluKFtlLCJ2YWx1ZSJdKX1vbkNoYW5nZT1lPT57bGV0e29uQ2hhbmdlOnR9PXRoaXMucHJvcHMscj1lLnRhcmdldC52YWx1ZSxhPU9iamVjdC5hc3NpZ24oe30sdGhpcy5zdGF0ZSx7dmFsdWU6cn0pO3RoaXMuc2V0U3RhdGUoYSksdChhKX07cmVuZGVyKCl7bGV0e3NjaGVtYTplLGdldENvbXBvbmVudDp0LGVyclNlbGVjdG9yczpyLG5hbWU6YSxhdXRoU2VsZWN0b3JzOm59PXRoaXMucHJvcHM7Y29uc3Qgcz10KCJJbnB1dCIpLG89dCgiUm93IiksbD10KCJDb2wiKSxjPXQoImF1dGhFcnJvciIpLGk9dCgiTWFya2Rvd24iLCEwKSxwPXQoIkp1bXBUb1BhdGgiLCEwKSxtPW4uc2VsZWN0QXV0aFBhdGgoYSk7bGV0IHU9dGhpcy5nZXRWYWx1ZSgpLGQ9ci5hbGxFcnJvcnMoKS5maWx0ZXIoKGU9PmUuZ2V0KCJhdXRoSWQiKT09PWEpKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsYXx8ZS5nZXQoIm5hbWUiKSksIsKgKGFwaUtleSkiLE8oKS5jcmVhdGVFbGVtZW50KHAse3BhdGg6bX0pKSx1JiZPKCkuY3JlYXRlRWxlbWVudCgiaDYiLG51bGwsIkF1dGhvcml6ZWQiKSxPKCkuY3JlYXRlRWxlbWVudChvLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoaSx7c291cmNlOmUuZ2V0KCJkZXNjcmlwdGlvbiIpfSkpLE8oKS5jcmVhdGVFbGVtZW50KG8sbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiTmFtZTogIixPKCkuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCxlLmdldCgibmFtZSIpKSkpLE8oKS5jcmVhdGVFbGVtZW50KG8sbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiSW46ICIsTygpLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsZS5nZXQoImluIikpKSksTygpLmNyZWF0ZUVsZW1lbnQobyxudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6ImFwaV9rZXlfdmFsdWUifSwiVmFsdWU6IiksdT9PKCkuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwiICoqKioqKiAiKTpPKCkuY3JlYXRlRWxlbWVudChsLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQocyx7aWQ6ImFwaV9rZXlfdmFsdWUiLHR5cGU6InRleHQiLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2UsYXV0b0ZvY3VzOiEwfSkpKSxkLnZhbHVlU2VxKCkubWFwKCgoZSx0KT0+TygpLmNyZWF0ZUVsZW1lbnQoYyx7ZXJyb3I6ZSxrZXk6dH0pKSkpfX1jbGFzcyBCYXNpY0F1dGggZXh0ZW5kcyBPKCkuQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KTtsZXR7c2NoZW1hOnIsbmFtZTphfT10aGlzLnByb3BzLG49dGhpcy5nZXRWYWx1ZSgpLnVzZXJuYW1lO3RoaXMuc3RhdGU9e25hbWU6YSxzY2hlbWE6cix2YWx1ZTpuP3t1c2VybmFtZTpufTp7fX19Z2V0VmFsdWUoKXtsZXR7YXV0aG9yaXplZDplLG5hbWU6dH09dGhpcy5wcm9wcztyZXR1cm4gZSYmZS5nZXRJbihbdCwidmFsdWUiXSl8fHt9fW9uQ2hhbmdlPWU9PntsZXR7b25DaGFuZ2U6dH09dGhpcy5wcm9wcyx7dmFsdWU6cixuYW1lOmF9PWUudGFyZ2V0LG49dGhpcy5zdGF0ZS52YWx1ZTtuW2FdPXIsdGhpcy5zZXRTdGF0ZSh7dmFsdWU6bn0pLHQodGhpcy5zdGF0ZSl9O3JlbmRlcigpe2xldHtzY2hlbWE6ZSxnZXRDb21wb25lbnQ6dCxuYW1lOnIsZXJyU2VsZWN0b3JzOmEsYXV0aFNlbGVjdG9yczpufT10aGlzLnByb3BzO2NvbnN0IHM9dCgiSW5wdXQiKSxvPXQoIlJvdyIpLGw9dCgiQ29sIiksYz10KCJhdXRoRXJyb3IiKSxpPXQoIkp1bXBUb1BhdGgiLCEwKSxwPXQoIk1hcmtkb3duIiwhMCksbT1uLnNlbGVjdEF1dGhQYXRoKHIpO2xldCB1PXRoaXMuZ2V0VmFsdWUoKS51c2VybmFtZSxkPWEuYWxsRXJyb3JzKCkuZmlsdGVyKChlPT5lLmdldCgiYXV0aElkIik9PT1yKSk7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLCJCYXNpYyBhdXRob3JpemF0aW9uIixPKCkuY3JlYXRlRWxlbWVudChpLHtwYXRoOm19KSksdSYmTygpLmNyZWF0ZUVsZW1lbnQoImg2IixudWxsLCJBdXRob3JpemVkIiksTygpLmNyZWF0ZUVsZW1lbnQobyxudWxsLE8oKS5jcmVhdGVFbGVtZW50KHAse3NvdXJjZTplLmdldCgiZGVzY3JpcHRpb24iKX0pKSxPKCkuY3JlYXRlRWxlbWVudChvLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjoiYXV0aF91c2VybmFtZSJ9LCJVc2VybmFtZToiKSx1P08oKS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCIgIix1LCIgIik6TygpLmNyZWF0ZUVsZW1lbnQobCxudWxsLE8oKS5jcmVhdGVFbGVtZW50KHMse2lkOiJhdXRoX3VzZXJuYW1lIix0eXBlOiJ0ZXh0IixyZXF1aXJlZDoicmVxdWlyZWQiLG5hbWU6InVzZXJuYW1lIixvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlLGF1dG9Gb2N1czohMH0pKSksTygpLmNyZWF0ZUVsZW1lbnQobyxudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6ImF1dGhfcGFzc3dvcmQifSwiUGFzc3dvcmQ6IiksdT9PKCkuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwiICoqKioqKiAiKTpPKCkuY3JlYXRlRWxlbWVudChsLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQocyx7aWQ6ImF1dGhfcGFzc3dvcmQiLGF1dG9Db21wbGV0ZToibmV3LXBhc3N3b3JkIixuYW1lOiJwYXNzd29yZCIsdHlwZToicGFzc3dvcmQiLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2V9KSkpLGQudmFsdWVTZXEoKS5tYXAoKChlLHQpPT5PKCkuY3JlYXRlRWxlbWVudChjLHtlcnJvcjplLGtleTp0fSkpKSl9fWZ1bmN0aW9uIEV4YW1wbGUoZSl7Y29uc3R7ZXhhbXBsZTp0LHNob3dWYWx1ZTpyLGdldENvbXBvbmVudDphfT1lLG49YSgiTWFya2Rvd24iLCEwKSxzPWEoIkhpZ2hsaWdodENvZGUiLCEwKTtyZXR1cm4gdCYmay5NYXAuaXNNYXAodCk/TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZXhhbXBsZSJ9LHQuZ2V0KCJkZXNjcmlwdGlvbiIpP08oKS5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIix7Y2xhc3NOYW1lOiJleGFtcGxlX19zZWN0aW9uIn0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZXhhbXBsZV9fc2VjdGlvbi1oZWFkZXIifSwiRXhhbXBsZSBEZXNjcmlwdGlvbiIpLE8oKS5jcmVhdGVFbGVtZW50KCJwIixudWxsLE8oKS5jcmVhdGVFbGVtZW50KG4se3NvdXJjZTp0LmdldCgiZGVzY3JpcHRpb24iKX0pKSk6bnVsbCxyJiZ0LmhhcygidmFsdWUiKT9PKCkuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIse2NsYXNzTmFtZToiZXhhbXBsZV9fc2VjdGlvbiJ9LE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImV4YW1wbGVfX3NlY3Rpb24taGVhZGVyIn0sIkV4YW1wbGUgVmFsdWUiKSxPKCkuY3JlYXRlRWxlbWVudChzLG51bGwsc3RyaW5naWZ5KHQuZ2V0KCJ2YWx1ZSIpKSkpOm51bGwpOm51bGx9Y2xhc3MgRXhhbXBsZXNTZWxlY3QgZXh0ZW5kcyBPKCkuUHVyZUNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXtleGFtcGxlczooMCxrLk1hcCkoe30pLG9uU2VsZWN0OiguLi5lKT0+Y29uc29sZS5sb2coIkRFQlVHOiBFeGFtcGxlc1NlbGVjdCB3YXMgbm90IGdpdmVuIGFuIG9uU2VsZWN0IGNhbGxiYWNrIiwuLi5lKSxjdXJyZW50RXhhbXBsZUtleTpudWxsLHNob3dMYWJlbHM6ITB9O19vblNlbGVjdD0oZSx7aXNTeW50aGV0aWNDaGFuZ2U6dD0hMX09e30pPT57ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMucHJvcHMub25TZWxlY3QmJnRoaXMucHJvcHMub25TZWxlY3QoZSx7aXNTeW50aGV0aWNDaGFuZ2U6dH0pfTtfb25Eb21TZWxlY3Q9ZT0+e2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLnByb3BzLm9uU2VsZWN0KXtjb25zdCB0PWUudGFyZ2V0LnNlbGVjdGVkT3B0aW9uc1swXS5nZXRBdHRyaWJ1dGUoInZhbHVlIik7dGhpcy5fb25TZWxlY3QodCx7aXNTeW50aGV0aWNDaGFuZ2U6ITF9KX19O2dldEN1cnJlbnRFeGFtcGxlPSgpPT57Y29uc3R7ZXhhbXBsZXM6ZSxjdXJyZW50RXhhbXBsZUtleTp0fT10aGlzLnByb3BzLHI9ZS5nZXQodCksYT1lLmtleVNlcSgpLmZpcnN0KCksbj1lLmdldChhKTtyZXR1cm4gcnx8bnx8KDAsay5NYXApKHt9KX07Y29tcG9uZW50RGlkTW91bnQoKXtjb25zdHtvblNlbGVjdDplLGV4YW1wbGVzOnR9PXRoaXMucHJvcHM7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUpe2NvbnN0IGU9dC5maXJzdCgpLHI9dC5rZXlPZihlKTt0aGlzLl9vblNlbGVjdChyLHtpc1N5bnRoZXRpY0NoYW5nZTohMH0pfX1VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhlKXtjb25zdHtjdXJyZW50RXhhbXBsZUtleTp0LGV4YW1wbGVzOnJ9PWU7aWYociE9PXRoaXMucHJvcHMuZXhhbXBsZXMmJiFyLmhhcyh0KSl7Y29uc3QgZT1yLmZpcnN0KCksdD1yLmtleU9mKGUpO3RoaXMuX29uU2VsZWN0KHQse2lzU3ludGhldGljQ2hhbmdlOiEwfSl9fXJlbmRlcigpe2NvbnN0e2V4YW1wbGVzOmUsY3VycmVudEV4YW1wbGVLZXk6dCxpc1ZhbHVlTW9kaWZpZWQ6cixpc01vZGlmaWVkVmFsdWVBdmFpbGFibGU6YSxzaG93TGFiZWxzOm59PXRoaXMucHJvcHM7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImV4YW1wbGVzLXNlbGVjdCJ9LG4/TygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6ImV4YW1wbGVzLXNlbGVjdF9fc2VjdGlvbi1sYWJlbCJ9LCJFeGFtcGxlczogIik6bnVsbCxPKCkuY3JlYXRlRWxlbWVudCgic2VsZWN0Iix7Y2xhc3NOYW1lOiJleGFtcGxlcy1zZWxlY3QtZWxlbWVudCIsb25DaGFuZ2U6dGhpcy5fb25Eb21TZWxlY3QsdmFsdWU6YSYmcj8iX19NT0RJRklFRF9fVkFMVUVfXyI6dHx8IiJ9LGE/TygpLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIse3ZhbHVlOiJfX01PRElGSUVEX19WQUxVRV9fIn0sIltNb2RpZmllZCB2YWx1ZV0iKTpudWxsLGUubWFwKCgoZSx0KT0+TygpLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIse2tleTp0LHZhbHVlOnR9LGsuTWFwLmlzTWFwKGUpJiZlLmdldCgic3VtbWFyeSIpfHx0KSkpLnZhbHVlU2VxKCkpKX19Y29uc3Qgc3RyaW5naWZ5VW5sZXNzTGlzdD1lPT5rLkxpc3QuaXNMaXN0KGUpP2U6c3RyaW5naWZ5KGUpO2NsYXNzIEV4YW1wbGVzU2VsZWN0VmFsdWVSZXRhaW5lciBleHRlbmRzIE8oKS5QdXJlQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9e3VzZXJIYXNFZGl0ZWRCb2R5OiExLGV4YW1wbGVzOigwLGsuTWFwKSh7fSksY3VycmVudE5hbWVzcGFjZToiX19ERUZBVUxUX19OQU1FU1BBQ0VfXyIsc2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWc6KCk9Pnt9LG9uU2VsZWN0OiguLi5lKT0+Y29uc29sZS5sb2coIkV4YW1wbGVzU2VsZWN0VmFsdWVSZXRhaW5lcjogbm8gYG9uU2VsZWN0YCBmdW5jdGlvbiB3YXMgcHJvdmlkZWQiLC4uLmUpLHVwZGF0ZVZhbHVlOiguLi5lKT0+Y29uc29sZS5sb2coIkV4YW1wbGVzU2VsZWN0VmFsdWVSZXRhaW5lcjogbm8gYHVwZGF0ZVZhbHVlYCBmdW5jdGlvbiB3YXMgcHJvdmlkZWQiLC4uLmUpfTtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTtjb25zdCB0PXRoaXMuX2dldEN1cnJlbnRFeGFtcGxlVmFsdWUoKTt0aGlzLnN0YXRlPXtbZS5jdXJyZW50TmFtZXNwYWNlXTooMCxrLk1hcCkoe2xhc3RVc2VyRWRpdGVkVmFsdWU6dGhpcy5wcm9wcy5jdXJyZW50VXNlcklucHV0VmFsdWUsbGFzdERvd25zdHJlYW1WYWx1ZTp0LGlzTW9kaWZpZWRWYWx1ZVNlbGVjdGVkOnRoaXMucHJvcHMudXNlckhhc0VkaXRlZEJvZHl8fHRoaXMucHJvcHMuY3VycmVudFVzZXJJbnB1dFZhbHVlIT09dH0pfX1jb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMucHJvcHMuc2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWcoITEpfV9nZXRTdGF0ZUZvckN1cnJlbnROYW1lc3BhY2U9KCk9Pntjb25zdHtjdXJyZW50TmFtZXNwYWNlOmV9PXRoaXMucHJvcHM7cmV0dXJuKHRoaXMuc3RhdGVbZV18fCgwLGsuTWFwKSgpKS50b09iamVjdCgpfTtfc2V0U3RhdGVGb3JDdXJyZW50TmFtZXNwYWNlPWU9Pntjb25zdHtjdXJyZW50TmFtZXNwYWNlOnR9PXRoaXMucHJvcHM7cmV0dXJuIHRoaXMuX3NldFN0YXRlRm9yTmFtZXNwYWNlKHQsZSl9O19zZXRTdGF0ZUZvck5hbWVzcGFjZT0oZSx0KT0+e2NvbnN0IHI9KHRoaXMuc3RhdGVbZV18fCgwLGsuTWFwKSgpKS5tZXJnZURlZXAodCk7cmV0dXJuIHRoaXMuc2V0U3RhdGUoe1tlXTpyfSl9O19pc0N1cnJlbnRVc2VySW5wdXRTYW1lQXNFeGFtcGxlVmFsdWU9KCk9Pntjb25zdHtjdXJyZW50VXNlcklucHV0VmFsdWU6ZX09dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5fZ2V0Q3VycmVudEV4YW1wbGVWYWx1ZSgpPT09ZX07X2dldFZhbHVlRm9yRXhhbXBsZT0oZSx0KT0+e2NvbnN0e2V4YW1wbGVzOnJ9PXR8fHRoaXMucHJvcHM7cmV0dXJuIHN0cmluZ2lmeVVubGVzc0xpc3QoKHJ8fCgwLGsuTWFwKSh7fSkpLmdldEluKFtlLCJ2YWx1ZSJdKSl9O19nZXRDdXJyZW50RXhhbXBsZVZhbHVlPWU9Pntjb25zdHtjdXJyZW50S2V5OnR9PWV8fHRoaXMucHJvcHM7cmV0dXJuIHRoaXMuX2dldFZhbHVlRm9yRXhhbXBsZSh0LGV8fHRoaXMucHJvcHMpfTtfb25FeGFtcGxlc1NlbGVjdD0oZSx7aXNTeW50aGV0aWNDaGFuZ2U6dH09e30sLi4ucik9Pntjb25zdHtvblNlbGVjdDphLHVwZGF0ZVZhbHVlOm4sY3VycmVudFVzZXJJbnB1dFZhbHVlOnMsdXNlckhhc0VkaXRlZEJvZHk6b309dGhpcy5wcm9wcyx7bGFzdFVzZXJFZGl0ZWRWYWx1ZTpsfT10aGlzLl9nZXRTdGF0ZUZvckN1cnJlbnROYW1lc3BhY2UoKSxjPXRoaXMuX2dldFZhbHVlRm9yRXhhbXBsZShlKTtpZigiX19NT0RJRklFRF9fVkFMVUVfXyI9PT1lKXJldHVybiBuKHN0cmluZ2lmeVVubGVzc0xpc3QobCkpLHRoaXMuX3NldFN0YXRlRm9yQ3VycmVudE5hbWVzcGFjZSh7aXNNb2RpZmllZFZhbHVlU2VsZWN0ZWQ6ITB9KTsiZnVuY3Rpb24iPT10eXBlb2YgYSYmYShlLHtpc1N5bnRoZXRpY0NoYW5nZTp0fSwuLi5yKSx0aGlzLl9zZXRTdGF0ZUZvckN1cnJlbnROYW1lc3BhY2Uoe2xhc3REb3duc3RyZWFtVmFsdWU6Yyxpc01vZGlmaWVkVmFsdWVTZWxlY3RlZDp0JiZvfHwhIXMmJnMhPT1jfSksdHx8ImZ1bmN0aW9uIj09dHlwZW9mIG4mJm4oc3RyaW5naWZ5VW5sZXNzTGlzdChjKSl9O1VOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKGUpe2NvbnN0e2N1cnJlbnRVc2VySW5wdXRWYWx1ZTp0LGV4YW1wbGVzOnIsb25TZWxlY3Q6YSx1c2VySGFzRWRpdGVkQm9keTpufT1lLHtsYXN0VXNlckVkaXRlZFZhbHVlOnMsbGFzdERvd25zdHJlYW1WYWx1ZTpvfT10aGlzLl9nZXRTdGF0ZUZvckN1cnJlbnROYW1lc3BhY2UoKSxsPXRoaXMuX2dldFZhbHVlRm9yRXhhbXBsZShlLmN1cnJlbnRLZXksZSksYz1yLmZpbHRlcigoZT0+ay5NYXAuaXNNYXAoZSkmJihlLmdldCgidmFsdWUiKT09PXR8fHN0cmluZ2lmeShlLmdldCgidmFsdWUiKSk9PT10KSkpO2lmKGMuc2l6ZSl7bGV0IHQ7dD1jLmhhcyhlLmN1cnJlbnRLZXkpP2UuY3VycmVudEtleTpjLmtleVNlcSgpLmZpcnN0KCksYSh0LHtpc1N5bnRoZXRpY0NoYW5nZTohMH0pfWVsc2UgdCE9PXRoaXMucHJvcHMuY3VycmVudFVzZXJJbnB1dFZhbHVlJiZ0IT09cyYmdCE9PW8mJih0aGlzLnByb3BzLnNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnKCEwKSx0aGlzLl9zZXRTdGF0ZUZvck5hbWVzcGFjZShlLmN1cnJlbnROYW1lc3BhY2Use2xhc3RVc2VyRWRpdGVkVmFsdWU6ZS5jdXJyZW50VXNlcklucHV0VmFsdWUsaXNNb2RpZmllZFZhbHVlU2VsZWN0ZWQ6bnx8dCE9PWx9KSl9cmVuZGVyKCl7Y29uc3R7Y3VycmVudFVzZXJJbnB1dFZhbHVlOmUsZXhhbXBsZXM6dCxjdXJyZW50S2V5OnIsZ2V0Q29tcG9uZW50OmEsdXNlckhhc0VkaXRlZEJvZHk6bn09dGhpcy5wcm9wcyx7bGFzdERvd25zdHJlYW1WYWx1ZTpzLGxhc3RVc2VyRWRpdGVkVmFsdWU6byxpc01vZGlmaWVkVmFsdWVTZWxlY3RlZDpsfT10aGlzLl9nZXRTdGF0ZUZvckN1cnJlbnROYW1lc3BhY2UoKSxjPWEoIkV4YW1wbGVzU2VsZWN0Iik7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KGMse2V4YW1wbGVzOnQsY3VycmVudEV4YW1wbGVLZXk6cixvblNlbGVjdDp0aGlzLl9vbkV4YW1wbGVzU2VsZWN0LGlzTW9kaWZpZWRWYWx1ZUF2YWlsYWJsZTohIW8mJm8hPT1zLGlzVmFsdWVNb2RpZmllZDp2b2lkIDAhPT1lJiZsJiZlIT09dGhpcy5fZ2V0Q3VycmVudEV4YW1wbGVWYWx1ZSgpfHxufSl9fWZ1bmN0aW9uIG9hdXRoMl9hdXRob3JpemVfYXV0aG9yaXplKHthdXRoOmUsYXV0aEFjdGlvbnM6dCxlcnJBY3Rpb25zOnIsY29uZmlnczphLGF1dGhDb25maWdzOm49e30sY3VycmVudFNlcnZlcjpzfSl7bGV0e3NjaGVtYTpvLHNjb3BlczpsLG5hbWU6YyxjbGllbnRJZDppfT1lLHA9by5nZXQoImZsb3ciKSxtPVtdO3N3aXRjaChwKXtjYXNlInBhc3N3b3JkIjpyZXR1cm4gdm9pZCB0LmF1dGhvcml6ZVBhc3N3b3JkKGUpO2Nhc2UiYXBwbGljYXRpb24iOmNhc2UiY2xpZW50Q3JlZGVudGlhbHMiOmNhc2UiY2xpZW50X2NyZWRlbnRpYWxzIjpyZXR1cm4gdm9pZCB0LmF1dGhvcml6ZUFwcGxpY2F0aW9uKGUpO2Nhc2UiYWNjZXNzQ29kZSI6Y2FzZSJhdXRob3JpemF0aW9uQ29kZSI6Y2FzZSJhdXRob3JpemF0aW9uX2NvZGUiOm0ucHVzaCgicmVzcG9uc2VfdHlwZT1jb2RlIik7YnJlYWs7Y2FzZSJpbXBsaWNpdCI6bS5wdXNoKCJyZXNwb25zZV90eXBlPXRva2VuIil9InN0cmluZyI9PXR5cGVvZiBpJiZtLnB1c2goImNsaWVudF9pZD0iK2VuY29kZVVSSUNvbXBvbmVudChpKSk7bGV0IHU9YS5vYXV0aDJSZWRpcmVjdFVybDtpZih2b2lkIDA9PT11KXJldHVybiB2b2lkIHIubmV3QXV0aEVycih7YXV0aElkOmMsc291cmNlOiJ2YWxpZGF0aW9uIixsZXZlbDoiZXJyb3IiLG1lc3NhZ2U6Im9hdXRoMlJlZGlyZWN0VXJsIGNvbmZpZ3VyYXRpb24gaXMgbm90IHBhc3NlZC4gT2F1dGgyIGF1dGhvcml6YXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZC4ifSk7bS5wdXNoKCJyZWRpcmVjdF91cmk9IitlbmNvZGVVUklDb21wb25lbnQodSkpO2xldCBkPVtdO2lmKEFycmF5LmlzQXJyYXkobCk/ZD1sOkEoKS5MaXN0LmlzTGlzdChsKSYmKGQ9bC50b0FycmF5KCkpLGQubGVuZ3RoPjApe2xldCBlPW4uc2NvcGVTZXBhcmF0b3J8fCIgIjttLnB1c2goInNjb3BlPSIrZW5jb2RlVVJJQ29tcG9uZW50KGQuam9pbihlKSkpfWxldCBoPWJ0b2EobmV3IERhdGUpO2lmKG0ucHVzaCgic3RhdGU9IitlbmNvZGVVUklDb21wb25lbnQoaCkpLHZvaWQgMCE9PW4ucmVhbG0mJm0ucHVzaCgicmVhbG09IitlbmNvZGVVUklDb21wb25lbnQobi5yZWFsbSkpLCgiYXV0aG9yaXphdGlvbkNvZGUiPT09cHx8ImF1dGhvcml6YXRpb25fY29kZSI9PT1wfHwiYWNjZXNzQ29kZSI9PT1wKSYmbi51c2VQa2NlV2l0aEF1dGhvcml6YXRpb25Db2RlR3JhbnQpe2NvbnN0IHQ9ZnVuY3Rpb24gZ2VuZXJhdGVDb2RlVmVyaWZpZXIoKXtyZXR1cm4gYjY0dG9CNjRVcmxFbmNvZGVkKGFlKCkoMzIpLnRvU3RyaW5nKCJiYXNlNjQiKSl9KCkscj1mdW5jdGlvbiBjcmVhdGVDb2RlQ2hhbGxlbmdlKGUpe3JldHVybiBiNjR0b0I2NFVybEVuY29kZWQoc2UoKSgic2hhMjU2IikudXBkYXRlKGUpLmRpZ2VzdCgiYmFzZTY0IikpfSh0KTttLnB1c2goImNvZGVfY2hhbGxlbmdlPSIrciksbS5wdXNoKCJjb2RlX2NoYWxsZW5nZV9tZXRob2Q9UzI1NiIpLGUuY29kZVZlcmlmaWVyPXR9bGV0e2FkZGl0aW9uYWxRdWVyeVN0cmluZ1BhcmFtczpnfT1uO2ZvcihsZXQgZSBpbiBnKXZvaWQgMCE9PWdbZV0mJm0ucHVzaChbZSxnW2VdXS5tYXAoZW5jb2RlVVJJQ29tcG9uZW50KS5qb2luKCI9IikpO2NvbnN0IHk9by5nZXQoImF1dGhvcml6YXRpb25VcmwiKTtsZXQgZjtmPXM/dWUoKShzYW5pdGl6ZVVybCh5KSxzLCEwKS50b1N0cmluZygpOnNhbml0aXplVXJsKHkpO2xldCBTLEU9W2YsbS5qb2luKCImIildLmpvaW4oInN0cmluZyIhPXR5cGVvZiB5fHx5LmluY2x1ZGVzKCI/Iik/IiYiOiI/Iik7Uz0iaW1wbGljaXQiPT09cD90LnByZUF1dGhvcml6ZUltcGxpY2l0Om4udXNlQmFzaWNBdXRoZW50aWNhdGlvbldpdGhBY2Nlc3NDb2RlR3JhbnQ/dC5hdXRob3JpemVBY2Nlc3NDb2RlV2l0aEJhc2ljQXV0aGVudGljYXRpb246dC5hdXRob3JpemVBY2Nlc3NDb2RlV2l0aEZvcm1QYXJhbXMsdC5hdXRoUG9wdXAoRSx7YXV0aDplLHN0YXRlOmgscmVkaXJlY3RVcmw6dSxjYWxsYmFjazpTLGVyckNiOnIubmV3QXV0aEVycn0pfWNsYXNzIE9hdXRoMiBleHRlbmRzIE8oKS5Db21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpO2xldHtuYW1lOnIsc2NoZW1hOmEsYXV0aG9yaXplZDpuLGF1dGhTZWxlY3RvcnM6c309dGhpcy5wcm9wcyxvPW4mJm4uZ2V0KHIpLGw9cy5nZXRDb25maWdzKCl8fHt9LGM9byYmby5nZXQoInVzZXJuYW1lIil8fCIiLGk9byYmby5nZXQoImNsaWVudElkIil8fGwuY2xpZW50SWR8fCIiLHA9byYmby5nZXQoImNsaWVudFNlY3JldCIpfHxsLmNsaWVudFNlY3JldHx8IiIsbT1vJiZvLmdldCgicGFzc3dvcmRUeXBlIil8fCJiYXNpYyIsdT1vJiZvLmdldCgic2NvcGVzIil8fGwuc2NvcGVzfHxbXTsic3RyaW5nIj09dHlwZW9mIHUmJih1PXUuc3BsaXQobC5zY29wZVNlcGFyYXRvcnx8IiAiKSksdGhpcy5zdGF0ZT17YXBwTmFtZTpsLmFwcE5hbWUsbmFtZTpyLHNjaGVtYTphLHNjb3Blczp1LGNsaWVudElkOmksY2xpZW50U2VjcmV0OnAsdXNlcm5hbWU6YyxwYXNzd29yZDoiIixwYXNzd29yZFR5cGU6bX19Y2xvc2U9ZT0+e2UucHJldmVudERlZmF1bHQoKTtsZXR7YXV0aEFjdGlvbnM6dH09dGhpcy5wcm9wczt0LnNob3dEZWZpbml0aW9ucyghMSl9O2F1dGhvcml6ZT0oKT0+e2xldHthdXRoQWN0aW9uczplLGVyckFjdGlvbnM6dCxnZXRDb25maWdzOnIsYXV0aFNlbGVjdG9yczphLG9hczNTZWxlY3RvcnM6bn09dGhpcy5wcm9wcyxzPXIoKSxvPWEuZ2V0Q29uZmlncygpO3QuY2xlYXIoe2F1dGhJZDpuYW1lLHR5cGU6ImF1dGgiLHNvdXJjZToiYXV0aCJ9KSxvYXV0aDJfYXV0aG9yaXplX2F1dGhvcml6ZSh7YXV0aDp0aGlzLnN0YXRlLGN1cnJlbnRTZXJ2ZXI6bi5zZXJ2ZXJFZmZlY3RpdmVWYWx1ZShuLnNlbGVjdGVkU2VydmVyKCkpLGF1dGhBY3Rpb25zOmUsZXJyQWN0aW9uczp0LGNvbmZpZ3M6cyxhdXRoQ29uZmlnczpvfSl9O29uU2NvcGVDaGFuZ2U9ZT0+e2xldHt0YXJnZXQ6dH09ZSx7Y2hlY2tlZDpyfT10LGE9dC5kYXRhc2V0LnZhbHVlO2lmKHImJi0xPT09dGhpcy5zdGF0ZS5zY29wZXMuaW5kZXhPZihhKSl7bGV0IGU9dGhpcy5zdGF0ZS5zY29wZXMuY29uY2F0KFthXSk7dGhpcy5zZXRTdGF0ZSh7c2NvcGVzOmV9KX1lbHNlIXImJnRoaXMuc3RhdGUuc2NvcGVzLmluZGV4T2YoYSk+LTEmJnRoaXMuc2V0U3RhdGUoe3Njb3Blczp0aGlzLnN0YXRlLnNjb3Blcy5maWx0ZXIoKGU9PmUhPT1hKSl9KX07b25JbnB1dENoYW5nZT1lPT57bGV0e3RhcmdldDp7ZGF0YXNldDp7bmFtZTp0fSx2YWx1ZTpyfX09ZSxhPXtbdF06cn07dGhpcy5zZXRTdGF0ZShhKX07c2VsZWN0U2NvcGVzPWU9PntlLnRhcmdldC5kYXRhc2V0LmFsbD90aGlzLnNldFN0YXRlKHtzY29wZXM6QXJyYXkuZnJvbSgodGhpcy5wcm9wcy5zY2hlbWEuZ2V0KCJhbGxvd2VkU2NvcGVzIil8fHRoaXMucHJvcHMuc2NoZW1hLmdldCgic2NvcGVzIikpLmtleXMoKSl9KTp0aGlzLnNldFN0YXRlKHtzY29wZXM6W119KX07bG9nb3V0PWU9PntlLnByZXZlbnREZWZhdWx0KCk7bGV0e2F1dGhBY3Rpb25zOnQsZXJyQWN0aW9uczpyLG5hbWU6YX09dGhpcy5wcm9wcztyLmNsZWFyKHthdXRoSWQ6YSx0eXBlOiJhdXRoIixzb3VyY2U6ImF1dGgifSksdC5sb2dvdXRXaXRoUGVyc2lzdE9wdGlvbihbYV0pfTtyZW5kZXIoKXtsZXR7c2NoZW1hOmUsZ2V0Q29tcG9uZW50OnQsYXV0aFNlbGVjdG9yczpyLGVyclNlbGVjdG9yczphLG5hbWU6bixzcGVjU2VsZWN0b3JzOnN9PXRoaXMucHJvcHM7Y29uc3Qgbz10KCJJbnB1dCIpLGw9dCgiUm93IiksYz10KCJDb2wiKSxpPXQoIkJ1dHRvbiIpLHA9dCgiYXV0aEVycm9yIiksbT10KCJKdW1wVG9QYXRoIiwhMCksdT10KCJNYXJrZG93biIsITApLGQ9dCgiSW5pdGlhbGl6ZWRJbnB1dCIpLHtpc09BUzM6aH09cztsZXQgZz1oKCk/ZS5nZXQoIm9wZW5JZENvbm5lY3RVcmwiKTpudWxsO2NvbnN0IHk9ImltcGxpY2l0IixmPSJwYXNzd29yZCIsUz1oKCk/Zz8iYXV0aG9yaXphdGlvbl9jb2RlIjoiYXV0aG9yaXphdGlvbkNvZGUiOiJhY2Nlc3NDb2RlIixFPWgoKT9nPyJjbGllbnRfY3JlZGVudGlhbHMiOiJjbGllbnRDcmVkZW50aWFscyI6ImFwcGxpY2F0aW9uIixfPXIuc2VsZWN0QXV0aFBhdGgobik7bGV0IHY9ISEoci5nZXRDb25maWdzKCl8fHt9KS51c2VQa2NlV2l0aEF1dGhvcml6YXRpb25Db2RlR3JhbnQsdz1lLmdldCgiZmxvdyIpLGI9dz09PVMmJnY/dysiIHdpdGggUEtDRSI6dyxDPWUuZ2V0KCJhbGxvd2VkU2NvcGVzIil8fGUuZ2V0KCJzY29wZXMiKSx4PSEhci5hdXRob3JpemVkKCkuZ2V0KG4pLE49YS5hbGxFcnJvcnMoKS5maWx0ZXIoKGU9PmUuZ2V0KCJhdXRoSWQiKT09PW4pKSxrPSFOLmZpbHRlcigoZT0+InZhbGlkYXRpb24iPT09ZS5nZXQoInNvdXJjZSIpKSkuc2l6ZSxBPWUuZ2V0KCJkZXNjcmlwdGlvbiIpO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJoNCIsbnVsbCxuLCIgKE9BdXRoMiwgIixiLCIpICIsTygpLmNyZWF0ZUVsZW1lbnQobSx7cGF0aDpffSkpLHRoaXMuc3RhdGUuYXBwTmFtZT9PKCkuY3JlYXRlRWxlbWVudCgiaDUiLG51bGwsIkFwcGxpY2F0aW9uOiAiLHRoaXMuc3RhdGUuYXBwTmFtZSwiICIpOm51bGwsQSYmTygpLmNyZWF0ZUVsZW1lbnQodSx7c291cmNlOmUuZ2V0KCJkZXNjcmlwdGlvbiIpfSkseCYmTygpLmNyZWF0ZUVsZW1lbnQoImg2IixudWxsLCJBdXRob3JpemVkIiksZyYmTygpLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIk9wZW5JRCBDb25uZWN0IFVSTDogIixPKCkuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCxnKSksKHc9PT15fHx3PT09UykmJk8oKS5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJBdXRob3JpemF0aW9uIFVSTDogIixPKCkuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCxlLmdldCgiYXV0aG9yaXphdGlvblVybCIpKSksKHc9PT1mfHx3PT09U3x8dz09PUUpJiZPKCkuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiVG9rZW4gVVJMOiIsTygpLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIiAiLGUuZ2V0KCJ0b2tlblVybCIpKSksTygpLmNyZWF0ZUVsZW1lbnQoInAiLHtjbGFzc05hbWU6ImZsb3cifSwiRmxvdzogIixPKCkuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCxiKSksdyE9PWY/bnVsbDpPKCkuY3JlYXRlRWxlbWVudChsLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQobCxudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6Im9hdXRoX3VzZXJuYW1lIn0sInVzZXJuYW1lOiIpLHg/TygpLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIiAiLHRoaXMuc3RhdGUudXNlcm5hbWUsIiAiKTpPKCkuY3JlYXRlRWxlbWVudChjLHt0YWJsZXQ6MTAsZGVza3RvcDoxMH0sTygpLmNyZWF0ZUVsZW1lbnQoImlucHV0Iix7aWQ6Im9hdXRoX3VzZXJuYW1lIix0eXBlOiJ0ZXh0IiwiZGF0YS1uYW1lIjoidXNlcm5hbWUiLG9uQ2hhbmdlOnRoaXMub25JbnB1dENoYW5nZSxhdXRvRm9jdXM6ITB9KSkpLE8oKS5jcmVhdGVFbGVtZW50KGwsbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtodG1sRm9yOiJvYXV0aF9wYXNzd29yZCJ9LCJwYXNzd29yZDoiKSx4P08oKS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCIgKioqKioqICIpOk8oKS5jcmVhdGVFbGVtZW50KGMse3RhYmxldDoxMCxkZXNrdG9wOjEwfSxPKCkuY3JlYXRlRWxlbWVudCgiaW5wdXQiLHtpZDoib2F1dGhfcGFzc3dvcmQiLHR5cGU6InBhc3N3b3JkIiwiZGF0YS1uYW1lIjoicGFzc3dvcmQiLG9uQ2hhbmdlOnRoaXMub25JbnB1dENoYW5nZX0pKSksTygpLmNyZWF0ZUVsZW1lbnQobCxudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6InBhc3N3b3JkX3R5cGUifSwiQ2xpZW50IGNyZWRlbnRpYWxzIGxvY2F0aW9uOiIpLHg/TygpLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIiAiLHRoaXMuc3RhdGUucGFzc3dvcmRUeXBlLCIgIik6TygpLmNyZWF0ZUVsZW1lbnQoYyx7dGFibGV0OjEwLGRlc2t0b3A6MTB9LE8oKS5jcmVhdGVFbGVtZW50KCJzZWxlY3QiLHtpZDoicGFzc3dvcmRfdHlwZSIsImRhdGEtbmFtZSI6InBhc3N3b3JkVHlwZSIsb25DaGFuZ2U6dGhpcy5vbklucHV0Q2hhbmdlfSxPKCkuY3JlYXRlRWxlbWVudCgib3B0aW9uIix7dmFsdWU6ImJhc2ljIn0sIkF1dGhvcml6YXRpb24gaGVhZGVyIiksTygpLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIse3ZhbHVlOiJyZXF1ZXN0LWJvZHkifSwiUmVxdWVzdCBib2R5IikpKSkpLCh3PT09RXx8dz09PXl8fHc9PT1TfHx3PT09ZikmJigheHx8eCYmdGhpcy5zdGF0ZS5jbGllbnRJZCkmJk8oKS5jcmVhdGVFbGVtZW50KGwsbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtodG1sRm9yOmBjbGllbnRfaWRfJHt3fWB9LCJjbGllbnRfaWQ6IikseD9PKCkuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwiICoqKioqKiAiKTpPKCkuY3JlYXRlRWxlbWVudChjLHt0YWJsZXQ6MTAsZGVza3RvcDoxMH0sTygpLmNyZWF0ZUVsZW1lbnQoZCx7aWQ6YGNsaWVudF9pZF8ke3d9YCx0eXBlOiJ0ZXh0IixyZXF1aXJlZDp3PT09Zixpbml0aWFsVmFsdWU6dGhpcy5zdGF0ZS5jbGllbnRJZCwiZGF0YS1uYW1lIjoiY2xpZW50SWQiLG9uQ2hhbmdlOnRoaXMub25JbnB1dENoYW5nZX0pKSksKHc9PT1FfHx3PT09U3x8dz09PWYpJiZPKCkuY3JlYXRlRWxlbWVudChsLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjpgY2xpZW50X3NlY3JldF8ke3d9YH0sImNsaWVudF9zZWNyZXQ6IikseD9PKCkuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwiICoqKioqKiAiKTpPKCkuY3JlYXRlRWxlbWVudChjLHt0YWJsZXQ6MTAsZGVza3RvcDoxMH0sTygpLmNyZWF0ZUVsZW1lbnQoZCx7aWQ6YGNsaWVudF9zZWNyZXRfJHt3fWAsaW5pdGlhbFZhbHVlOnRoaXMuc3RhdGUuY2xpZW50U2VjcmV0LHR5cGU6InBhc3N3b3JkIiwiZGF0YS1uYW1lIjoiY2xpZW50U2VjcmV0IixvbkNoYW5nZTp0aGlzLm9uSW5wdXRDaGFuZ2V9KSkpLCF4JiZDJiZDLnNpemU/TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToic2NvcGVzIn0sTygpLmNyZWF0ZUVsZW1lbnQoImgyIixudWxsLCJTY29wZXM6IixPKCkuY3JlYXRlRWxlbWVudCgiYSIse29uQ2xpY2s6dGhpcy5zZWxlY3RTY29wZXMsImRhdGEtYWxsIjohMH0sInNlbGVjdCBhbGwiKSxPKCkuY3JlYXRlRWxlbWVudCgiYSIse29uQ2xpY2s6dGhpcy5zZWxlY3RTY29wZXN9LCJzZWxlY3Qgbm9uZSIpKSxDLm1hcCgoKGUsdCk9Pk8oKS5jcmVhdGVFbGVtZW50KGwse2tleTp0fSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJjaGVja2JveCJ9LE8oKS5jcmVhdGVFbGVtZW50KG8seyJkYXRhLXZhbHVlIjp0LGlkOmAke3R9LSR7d30tY2hlY2tib3gtJHt0aGlzLnN0YXRlLm5hbWV9YCxkaXNhYmxlZDp4LGNoZWNrZWQ6dGhpcy5zdGF0ZS5zY29wZXMuaW5jbHVkZXModCksdHlwZToiY2hlY2tib3giLG9uQ2hhbmdlOnRoaXMub25TY29wZUNoYW5nZX0pLE8oKS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6YCR7dH0tJHt3fS1jaGVja2JveC0ke3RoaXMuc3RhdGUubmFtZX1gfSxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiaXRlbSJ9KSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJ0ZXh0In0sTygpLmNyZWF0ZUVsZW1lbnQoInAiLHtjbGFzc05hbWU6Im5hbWUifSx0KSxPKCkuY3JlYXRlRWxlbWVudCgicCIse2NsYXNzTmFtZToiZGVzY3JpcHRpb24ifSxlKSkpKSkpKS50b0FycmF5KCkpOm51bGwsTi52YWx1ZVNlcSgpLm1hcCgoKGUsdCk9Pk8oKS5jcmVhdGVFbGVtZW50KHAse2Vycm9yOmUsa2V5OnR9KSkpLE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImF1dGgtYnRuLXdyYXBwZXIifSxrJiYoeD9PKCkuY3JlYXRlRWxlbWVudChpLHtjbGFzc05hbWU6ImJ0biBtb2RhbC1idG4gYXV0aCBhdXRob3JpemUiLG9uQ2xpY2s6dGhpcy5sb2dvdXQsImFyaWEtbGFiZWwiOiJSZW1vdmUgYXV0aG9yaXphdGlvbiJ9LCJMb2dvdXQiKTpPKCkuY3JlYXRlRWxlbWVudChpLHtjbGFzc05hbWU6ImJ0biBtb2RhbC1idG4gYXV0aCBhdXRob3JpemUiLG9uQ2xpY2s6dGhpcy5hdXRob3JpemUsImFyaWEtbGFiZWwiOiJBcHBseSBnaXZlbiBPQXV0aDIgY3JlZGVudGlhbHMifSwiQXV0aG9yaXplIikpLE8oKS5jcmVhdGVFbGVtZW50KGkse2NsYXNzTmFtZToiYnRuIG1vZGFsLWJ0biBhdXRoIGJ0bi1kb25lIixvbkNsaWNrOnRoaXMuY2xvc2V9LCJDbG9zZSIpKSl9fWNsYXNzIENsZWFyIGV4dGVuZHMgeC5Db21wb25lbnR7b25DbGljaz0oKT0+e2xldHtzcGVjQWN0aW9uczplLHBhdGg6dCxtZXRob2Q6cn09dGhpcy5wcm9wcztlLmNsZWFyUmVzcG9uc2UodCxyKSxlLmNsZWFyUmVxdWVzdCh0LHIpfTtyZW5kZXIoKXtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse2NsYXNzTmFtZToiYnRuIGJ0bi1jbGVhciBvcGJsb2NrLWNvbnRyb2xfX2J0biIsb25DbGljazp0aGlzLm9uQ2xpY2t9LCJDbGVhciIpfX1jb25zdCBIZWFkZXJzPSh7aGVhZGVyczplfSk9Pk8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoImg1IixudWxsLCJSZXNwb25zZSBoZWFkZXJzIiksTygpLmNyZWF0ZUVsZW1lbnQoInByZSIse2NsYXNzTmFtZToibWljcm9saWdodCJ9LGUpKSxEdXJhdGlvbj0oe2R1cmF0aW9uOmV9KT0+TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgiaDUiLG51bGwsIlJlcXVlc3QgZHVyYXRpb24iKSxPKCkuY3JlYXRlRWxlbWVudCgicHJlIix7Y2xhc3NOYW1lOiJtaWNyb2xpZ2h0In0sZSwiIG1zIikpO2NsYXNzIExpdmVSZXNwb25zZSBleHRlbmRzIE8oKS5Db21wb25lbnR7c2hvdWxkQ29tcG9uZW50VXBkYXRlKGUpe3JldHVybiB0aGlzLnByb3BzLnJlc3BvbnNlIT09ZS5yZXNwb25zZXx8dGhpcy5wcm9wcy5wYXRoIT09ZS5wYXRofHx0aGlzLnByb3BzLm1ldGhvZCE9PWUubWV0aG9kfHx0aGlzLnByb3BzLmRpc3BsYXlSZXF1ZXN0RHVyYXRpb24hPT1lLmRpc3BsYXlSZXF1ZXN0RHVyYXRpb259cmVuZGVyKCl7Y29uc3R7cmVzcG9uc2U6ZSxnZXRDb21wb25lbnQ6dCxnZXRDb25maWdzOnIsZGlzcGxheVJlcXVlc3REdXJhdGlvbjphLHNwZWNTZWxlY3RvcnM6bixwYXRoOnMsbWV0aG9kOm99PXRoaXMucHJvcHMse3Nob3dNdXRhdGVkUmVxdWVzdDpsLHJlcXVlc3RTbmlwcGV0c0VuYWJsZWQ6Y309cigpLGk9bD9uLm11dGF0ZWRSZXF1ZXN0Rm9yKHMsbyk6bi5yZXF1ZXN0Rm9yKHMsbykscD1lLmdldCgic3RhdHVzIiksbT1pLmdldCgidXJsIiksdT1lLmdldCgiaGVhZGVycyIpLnRvSlMoKSxkPWUuZ2V0KCJub3REb2N1bWVudGVkIiksaD1lLmdldCgiZXJyb3IiKSxnPWUuZ2V0KCJ0ZXh0IikseT1lLmdldCgiZHVyYXRpb24iKSxmPU9iamVjdC5rZXlzKHUpLFM9dVsiY29udGVudC10eXBlIl18fHVbIkNvbnRlbnQtVHlwZSJdLEU9dCgicmVzcG9uc2VCb2R5IiksXz1mLm1hcCgoZT0+e3ZhciB0PUFycmF5LmlzQXJyYXkodVtlXSk/dVtlXS5qb2luKCk6dVtlXTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6ImhlYWRlcmxpbmUiLGtleTplfSwiICIsZSwiOiAiLHQsIiAiKX0pKSx2PTAhPT1fLmxlbmd0aCx3PXQoIk1hcmtkb3duIiwhMCksYj10KCJSZXF1ZXN0U25pcHBldHMiLCEwKSxDPXQoImN1cmwiLCEwKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxpJiZjP08oKS5jcmVhdGVFbGVtZW50KGIse3JlcXVlc3Q6aX0pOk8oKS5jcmVhdGVFbGVtZW50KEMse3JlcXVlc3Q6aX0pLG0mJk8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicmVxdWVzdC11cmwifSxPKCkuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsIlJlcXVlc3QgVVJMIiksTygpLmNyZWF0ZUVsZW1lbnQoInByZSIse2NsYXNzTmFtZToibWljcm9saWdodCJ9LG0pKSksTygpLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLCJTZXJ2ZXIgcmVzcG9uc2UiKSxPKCkuY3JlYXRlRWxlbWVudCgidGFibGUiLHtjbGFzc05hbWU6InJlc3BvbnNlcy10YWJsZSBsaXZlLXJlc3BvbnNlcy10YWJsZSJ9LE8oKS5jcmVhdGVFbGVtZW50KCJ0aGVhZCIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgidHIiLHtjbGFzc05hbWU6InJlc3BvbnNlcy1oZWFkZXIifSxPKCkuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6ImNvbF9oZWFkZXIgcmVzcG9uc2UtY29sX3N0YXR1cyJ9LCJDb2RlIiksTygpLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJjb2xfaGVhZGVyIHJlc3BvbnNlLWNvbF9kZXNjcmlwdGlvbiJ9LCJEZXRhaWxzIikpKSxPKCkuY3JlYXRlRWxlbWVudCgidGJvZHkiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoInRyIix7Y2xhc3NOYW1lOiJyZXNwb25zZSJ9LE8oKS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToicmVzcG9uc2UtY29sX3N0YXR1cyJ9LHAsZD9PKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJyZXNwb25zZS11bmRvY3VtZW50ZWQifSxPKCkuY3JlYXRlRWxlbWVudCgiaSIsbnVsbCwiIFVuZG9jdW1lbnRlZCAiKSk6bnVsbCksTygpLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJyZXNwb25zZS1jb2xfZGVzY3JpcHRpb24ifSxoP08oKS5jcmVhdGVFbGVtZW50KHcse3NvdXJjZTpgJHsiIiE9PWUuZ2V0KCJuYW1lIik/YCR7ZS5nZXQoIm5hbWUiKX06IGA6IiJ9JHtlLmdldCgibWVzc2FnZSIpfWB9KTpudWxsLGc/TygpLmNyZWF0ZUVsZW1lbnQoRSx7Y29udGVudDpnLGNvbnRlbnRUeXBlOlMsdXJsOm0saGVhZGVyczp1LGdldENvbmZpZ3M6cixnZXRDb21wb25lbnQ6dH0pOm51bGwsdj9PKCkuY3JlYXRlRWxlbWVudChIZWFkZXJzLHtoZWFkZXJzOl99KTpudWxsLGEmJnk/TygpLmNyZWF0ZUVsZW1lbnQoRHVyYXRpb24se2R1cmF0aW9uOnl9KTpudWxsKSkpKSl9fWNsYXNzIE9ubGluZVZhbGlkYXRvckJhZGdlIGV4dGVuZHMgTygpLkNvbXBvbmVudHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCk7bGV0e2dldENvbmZpZ3M6cn09ZSx7dmFsaWRhdG9yVXJsOmF9PXIoKTt0aGlzLnN0YXRlPXt1cmw6dGhpcy5nZXREZWZpbml0aW9uVXJsKCksdmFsaWRhdG9yVXJsOnZvaWQgMD09PWE/Imh0dHBzOi8vdmFsaWRhdG9yLnN3YWdnZXIuaW8vdmFsaWRhdG9yIjphfX1nZXREZWZpbml0aW9uVXJsPSgpPT57bGV0e3NwZWNTZWxlY3RvcnM6ZX09dGhpcy5wcm9wcztyZXR1cm4gbmV3KHVlKCkpKGUudXJsKCksSy5sb2NhdGlvbikudG9TdHJpbmcoKX07VU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoZSl7bGV0e2dldENvbmZpZ3M6dH09ZSx7dmFsaWRhdG9yVXJsOnJ9PXQoKTt0aGlzLnNldFN0YXRlKHt1cmw6dGhpcy5nZXREZWZpbml0aW9uVXJsKCksdmFsaWRhdG9yVXJsOnZvaWQgMD09PXI/Imh0dHBzOi8vdmFsaWRhdG9yLnN3YWdnZXIuaW8vdmFsaWRhdG9yIjpyfSl9cmVuZGVyKCl7bGV0e2dldENvbmZpZ3M6ZX09dGhpcy5wcm9wcyx7c3BlYzp0fT1lKCkscj1zYW5pdGl6ZVVybCh0aGlzLnN0YXRlLnZhbGlkYXRvclVybCk7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZPYmplY3Qua2V5cyh0KS5sZW5ndGg/bnVsbDp0aGlzLnN0YXRlLnVybCYmcmVxdWlyZXNWYWxpZGF0aW9uVVJMKHRoaXMuc3RhdGUudmFsaWRhdG9yVXJsKSYmcmVxdWlyZXNWYWxpZGF0aW9uVVJMKHRoaXMuc3RhdGUudXJsKT9PKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiZmxvYXQtcmlnaHQifSxPKCkuY3JlYXRlRWxlbWVudCgiYSIse3RhcmdldDoiX2JsYW5rIixyZWw6Im5vb3BlbmVyIG5vcmVmZXJyZXIiLGhyZWY6YCR7cn0vZGVidWc/dXJsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuc3RhdGUudXJsKX1gfSxPKCkuY3JlYXRlRWxlbWVudChWYWxpZGF0b3JJbWFnZSx7c3JjOmAke3J9P3VybD0ke2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLnN0YXRlLnVybCl9YCxhbHQ6Ik9ubGluZSB2YWxpZGF0b3IgYmFkZ2UifSkpKTpudWxsfX1jbGFzcyBWYWxpZGF0b3JJbWFnZSBleHRlbmRzIE8oKS5Db21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5zdGF0ZT17bG9hZGVkOiExLGVycm9yOiExfX1jb21wb25lbnREaWRNb3VudCgpe2NvbnN0IGU9bmV3IEltYWdlO2Uub25sb2FkPSgpPT57dGhpcy5zZXRTdGF0ZSh7bG9hZGVkOiEwfSl9LGUub25lcnJvcj0oKT0+e3RoaXMuc2V0U3RhdGUoe2Vycm9yOiEwfSl9LGUuc3JjPXRoaXMucHJvcHMuc3JjfVVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKGUpe2lmKGUuc3JjIT09dGhpcy5wcm9wcy5zcmMpe2NvbnN0IHQ9bmV3IEltYWdlO3Qub25sb2FkPSgpPT57dGhpcy5zZXRTdGF0ZSh7bG9hZGVkOiEwfSl9LHQub25lcnJvcj0oKT0+e3RoaXMuc2V0U3RhdGUoe2Vycm9yOiEwfSl9LHQuc3JjPWUuc3JjfX1yZW5kZXIoKXtyZXR1cm4gdGhpcy5zdGF0ZS5lcnJvcj9PKCkuY3JlYXRlRWxlbWVudCgiaW1nIix7YWx0OiJFcnJvciJ9KTp0aGlzLnN0YXRlLmxvYWRlZD9PKCkuY3JlYXRlRWxlbWVudCgiaW1nIix7c3JjOnRoaXMucHJvcHMuc3JjLGFsdDp0aGlzLnByb3BzLmFsdH0pOm51bGx9fWNsYXNzIE9wZXJhdGlvbnMgZXh0ZW5kcyBPKCkuQ29tcG9uZW50e3JlbmRlcigpe2xldHtzcGVjU2VsZWN0b3JzOmV9PXRoaXMucHJvcHM7Y29uc3QgdD1lLnRhZ2dlZE9wZXJhdGlvbnMoKTtyZXR1cm4gMD09PXQuc2l6ZT9PKCkuY3JlYXRlRWxlbWVudCgiaDMiLG51bGwsIiBObyBvcGVyYXRpb25zIGRlZmluZWQgaW4gc3BlYyEiKTpPKCkuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLHQubWFwKHRoaXMucmVuZGVyT3BlcmF0aW9uVGFnKS50b0FycmF5KCksdC5zaXplPDE/TygpLmNyZWF0ZUVsZW1lbnQoImgzIixudWxsLCIgTm8gb3BlcmF0aW9ucyBkZWZpbmVkIGluIHNwZWMhICIpOm51bGwpfXJlbmRlck9wZXJhdGlvblRhZz0oZSx0KT0+e2NvbnN0e3NwZWNTZWxlY3RvcnM6cixnZXRDb21wb25lbnQ6YSxvYXMzU2VsZWN0b3JzOm4sbGF5b3V0U2VsZWN0b3JzOnMsbGF5b3V0QWN0aW9uczpvLGdldENvbmZpZ3M6bH09dGhpcy5wcm9wcyxjPXIudmFsaWRPcGVyYXRpb25NZXRob2RzKCksaT1hKCJPcGVyYXRpb25Db250YWluZXIiLCEwKSxwPWEoIk9wZXJhdGlvblRhZyIpLG09ZS5nZXQoIm9wZXJhdGlvbnMiKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQocCx7a2V5OiJvcGVyYXRpb24tIit0LHRhZ09iajplLHRhZzp0LG9hczNTZWxlY3RvcnM6bixsYXlvdXRTZWxlY3RvcnM6cyxsYXlvdXRBY3Rpb25zOm8sZ2V0Q29uZmlnczpsLGdldENvbXBvbmVudDphLHNwZWNVcmw6ci51cmwoKX0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BlcmF0aW9uLXRhZy1jb250ZW50In0sbS5tYXAoKGU9Pntjb25zdCByPWUuZ2V0KCJwYXRoIiksYT1lLmdldCgibWV0aG9kIiksbj1BKCkuTGlzdChbInBhdGhzIixyLGFdKTtyZXR1cm4tMT09PWMuaW5kZXhPZihhKT9udWxsOk8oKS5jcmVhdGVFbGVtZW50KGkse2tleTpgJHtyfS0ke2F9YCxzcGVjUGF0aDpuLG9wOmUscGF0aDpyLG1ldGhvZDphLHRhZzp0fSl9KSkudG9BcnJheSgpKSl9fWNsYXNzIE9wZXJhdGlvblRhZyBleHRlbmRzIE8oKS5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17dGFnT2JqOkEoKS5mcm9tSlMoe30pLHRhZzoiIn07cmVuZGVyKCl7Y29uc3R7dGFnT2JqOmUsdGFnOnQsY2hpbGRyZW46cixvYXMzU2VsZWN0b3JzOmEsbGF5b3V0U2VsZWN0b3JzOm4sbGF5b3V0QWN0aW9uczpzLGdldENvbmZpZ3M6byxnZXRDb21wb25lbnQ6bCxzcGVjVXJsOmN9PXRoaXMucHJvcHM7bGV0e2RvY0V4cGFuc2lvbjppLGRlZXBMaW5raW5nOnB9PW8oKTtjb25zdCBtPWwoIkNvbGxhcHNlIiksdT1sKCJNYXJrZG93biIsITApLGQ9bCgiRGVlcExpbmsiKSxoPWwoIkxpbmsiKSxnPWwoIkFycm93VXBJY29uIikseT1sKCJBcnJvd0Rvd25JY29uIik7bGV0IGYsUz1lLmdldEluKFsidGFnRGV0YWlscyIsImRlc2NyaXB0aW9uIl0sbnVsbCksRT1lLmdldEluKFsidGFnRGV0YWlscyIsImV4dGVybmFsRG9jcyIsImRlc2NyaXB0aW9uIl0pLF89ZS5nZXRJbihbInRhZ0RldGFpbHMiLCJleHRlcm5hbERvY3MiLCJ1cmwiXSk7Zj1pc0Z1bmMoYSkmJmlzRnVuYyhhLnNlbGVjdGVkU2VydmVyKT9zYWZlQnVpbGRVcmwoXyxjLHtzZWxlY3RlZFNlcnZlcjphLnNlbGVjdGVkU2VydmVyKCl9KTpfO2xldCB2PVsib3BlcmF0aW9ucy10YWciLHRdLHc9bi5pc1Nob3duKHYsImZ1bGwiPT09aXx8Imxpc3QiPT09aSk7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dz8ib3BibG9jay10YWctc2VjdGlvbiBpcy1vcGVuIjoib3BibG9jay10YWctc2VjdGlvbiJ9LE8oKS5jcmVhdGVFbGVtZW50KCJoMyIse29uQ2xpY2s6KCk9PnMuc2hvdyh2LCF3KSxjbGFzc05hbWU6Uz8ib3BibG9jay10YWciOiJvcGJsb2NrLXRhZyBuby1kZXNjIixpZDp2Lm1hcCgoZT0+ZXNjYXBlRGVlcExpbmtQYXRoKGUpKSkuam9pbigiLSIpLCJkYXRhLXRhZyI6dCwiZGF0YS1pcy1vcGVuIjp3fSxPKCkuY3JlYXRlRWxlbWVudChkLHtlbmFibGVkOnAsaXNTaG93bjp3LHBhdGg6Y3JlYXRlRGVlcExpbmtQYXRoKHQpLHRleHQ6dH0pLFM/TygpLmNyZWF0ZUVsZW1lbnQoInNtYWxsIixudWxsLE8oKS5jcmVhdGVFbGVtZW50KHUse3NvdXJjZTpTfSkpOk8oKS5jcmVhdGVFbGVtZW50KCJzbWFsbCIsbnVsbCksZj9PKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJpbmZvX19leHRlcm5hbGRvY3MifSxPKCkuY3JlYXRlRWxlbWVudCgic21hbGwiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoaCx7aHJlZjpzYW5pdGl6ZVVybChmKSxvbkNsaWNrOmU9PmUuc3RvcFByb3BhZ2F0aW9uKCksdGFyZ2V0OiJfYmxhbmsifSxFfHxmKSkpOm51bGwsTygpLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIseyJhcmlhLWV4cGFuZGVkIjp3LGNsYXNzTmFtZToiZXhwYW5kLW9wZXJhdGlvbiIsdGl0bGU6dz8iQ29sbGFwc2Ugb3BlcmF0aW9uIjoiRXhwYW5kIG9wZXJhdGlvbiIsb25DbGljazooKT0+cy5zaG93KHYsIXcpfSx3P08oKS5jcmVhdGVFbGVtZW50KGcse2NsYXNzTmFtZToiYXJyb3cifSk6TygpLmNyZWF0ZUVsZW1lbnQoeSx7Y2xhc3NOYW1lOiJhcnJvdyJ9KSkpLE8oKS5jcmVhdGVFbGVtZW50KG0se2lzT3BlbmVkOnd9LHIpKX19Y2xhc3MgT3BlcmF0aW9uIGV4dGVuZHMgeC5QdXJlQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9e29wZXJhdGlvbjpudWxsLHJlc3BvbnNlOm51bGwscmVxdWVzdDpudWxsLHNwZWNQYXRoOigwLGsuTGlzdCkoKSxzdW1tYXJ5OiIifTtyZW5kZXIoKXtsZXR7c3BlY1BhdGg6ZSxyZXNwb25zZTp0LHJlcXVlc3Q6cix0b2dnbGVTaG93bjphLG9uVHJ5b3V0Q2xpY2s6bixvblJlc2V0Q2xpY2s6cyxvbkNhbmNlbENsaWNrOm8sb25FeGVjdXRlOmwsZm46YyxnZXRDb21wb25lbnQ6aSxnZXRDb25maWdzOnAsc3BlY0FjdGlvbnM6bSxzcGVjU2VsZWN0b3JzOnUsYXV0aEFjdGlvbnM6ZCxhdXRoU2VsZWN0b3JzOmgsb2FzM0FjdGlvbnM6ZyxvYXMzU2VsZWN0b3JzOnl9PXRoaXMucHJvcHMsZj10aGlzLnByb3BzLm9wZXJhdGlvbix7ZGVwcmVjYXRlZDpTLGlzU2hvd246RSxwYXRoOl8sbWV0aG9kOnYsb3A6dyx0YWc6YixvcGVyYXRpb25JZDpDLGFsbG93VHJ5SXRPdXQ6eCxkaXNwbGF5UmVxdWVzdER1cmF0aW9uOk4sdHJ5SXRPdXRFbmFibGVkOmssZXhlY3V0ZUluUHJvZ3Jlc3M6SX09Zi50b0pTKCkse2Rlc2NyaXB0aW9uOmosZXh0ZXJuYWxEb2NzOnEsc2NoZW1lczpQfT13O2NvbnN0IE09cT9zYWZlQnVpbGRVcmwocS51cmwsdS51cmwoKSx7c2VsZWN0ZWRTZXJ2ZXI6eS5zZWxlY3RlZFNlcnZlcigpfSk6IiI7bGV0IFQ9Zi5nZXRJbihbIm9wIl0pLFI9VC5nZXQoInJlc3BvbnNlcyIpLEo9ZnVuY3Rpb24gZ2V0TGlzdChlLHQpe2lmKCFBKCkuSXRlcmFibGUuaXNJdGVyYWJsZShlKSlyZXR1cm4gQSgpLkxpc3QoKTtsZXQgcj1lLmdldEluKEFycmF5LmlzQXJyYXkodCk/dDpbdF0pO3JldHVybiBBKCkuTGlzdC5pc0xpc3Qocik/cjpBKCkuTGlzdCgpfShULFsicGFyYW1ldGVycyJdKSwkPXUub3BlcmF0aW9uU2NoZW1lKF8sdiksVj1bIm9wZXJhdGlvbnMiLGIsQ10sTD1nZXRFeHRlbnNpb25zKFQpO2NvbnN0IEQ9aSgicmVzcG9uc2VzIiksVT1pKCJwYXJhbWV0ZXJzIiksSz1pKCJleGVjdXRlIiksej1pKCJjbGVhciIpLEI9aSgiQ29sbGFwc2UiKSxGPWkoIk1hcmtkb3duIiwhMCksVz1pKCJzY2hlbWVzIiksSD1pKCJPcGVyYXRpb25TZXJ2ZXJzIiksWD1pKCJPcGVyYXRpb25FeHQiKSxHPWkoIk9wZXJhdGlvblN1bW1hcnkiKSxZPWkoIkxpbmsiKSx7c2hvd0V4dGVuc2lvbnM6UX09cCgpO2lmKFImJnQmJnQuc2l6ZT4wKXtsZXQgZT0hUi5nZXQoU3RyaW5nKHQuZ2V0KCJzdGF0dXMiKSkpJiYhUi5nZXQoImRlZmF1bHQiKTt0PXQuc2V0KCJub3REb2N1bWVudGVkIixlKX1sZXQgWj1bXyx2XTtjb25zdCBlZT11LnZhbGlkYXRpb25FcnJvcnMoW18sdl0pO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlM/Im9wYmxvY2sgb3BibG9jay1kZXByZWNhdGVkIjpFP2BvcGJsb2NrIG9wYmxvY2stJHt2fSBpcy1vcGVuYDpgb3BibG9jayBvcGJsb2NrLSR7dn1gLGlkOmVzY2FwZURlZXBMaW5rUGF0aChWLmpvaW4oIi0iKSl9LE8oKS5jcmVhdGVFbGVtZW50KEcse29wZXJhdGlvblByb3BzOmYsaXNTaG93bjpFLHRvZ2dsZVNob3duOmEsZ2V0Q29tcG9uZW50OmksYXV0aEFjdGlvbnM6ZCxhdXRoU2VsZWN0b3JzOmgsc3BlY1BhdGg6ZX0pLE8oKS5jcmVhdGVFbGVtZW50KEIse2lzT3BlbmVkOkV9LE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stYm9keSJ9LFQmJlQuc2l6ZXx8bnVsbD09PVQ/bnVsbDpPKCkuY3JlYXRlRWxlbWVudChyb2xsaW5nX2xvYWQse2hlaWdodDoiMzJweCIsd2lkdGg6IjMycHgiLGNsYXNzTmFtZToib3BibG9jay1sb2FkaW5nLWFuaW1hdGlvbiJ9KSxTJiZPKCkuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6Im9wYmxvY2stdGl0bGVfbm9ybWFsIn0sIiBXYXJuaW5nOiBEZXByZWNhdGVkIiksaiYmTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1kZXNjcmlwdGlvbi13cmFwcGVyIn0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1kZXNjcmlwdGlvbiJ9LE8oKS5jcmVhdGVFbGVtZW50KEYse3NvdXJjZTpqfSkpKSxNP08oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stZXh0ZXJuYWwtZG9jcy13cmFwcGVyIn0sTygpLmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXRpdGxlX25vcm1hbCJ9LCJGaW5kIG1vcmUgZGV0YWlscyIpLE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stZXh0ZXJuYWwtZG9jcyJ9LHEuZGVzY3JpcHRpb24mJk8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJvcGJsb2NrLWV4dGVybmFsLWRvY3NfX2Rlc2NyaXB0aW9uIn0sTygpLmNyZWF0ZUVsZW1lbnQoRix7c291cmNlOnEuZGVzY3JpcHRpb259KSksTygpLmNyZWF0ZUVsZW1lbnQoWSx7dGFyZ2V0OiJfYmxhbmsiLGNsYXNzTmFtZToib3BibG9jay1leHRlcm5hbC1kb2NzX19saW5rIixocmVmOnNhbml0aXplVXJsKE0pfSxNKSkpOm51bGwsVCYmVC5zaXplP08oKS5jcmVhdGVFbGVtZW50KFUse3BhcmFtZXRlcnM6SixzcGVjUGF0aDplLnB1c2goInBhcmFtZXRlcnMiKSxvcGVyYXRpb246VCxvbkNoYW5nZUtleTpaLG9uVHJ5b3V0Q2xpY2s6bixvblJlc2V0Q2xpY2s6cyxvbkNhbmNlbENsaWNrOm8sdHJ5SXRPdXRFbmFibGVkOmssYWxsb3dUcnlJdE91dDp4LGZuOmMsZ2V0Q29tcG9uZW50Omksc3BlY0FjdGlvbnM6bSxzcGVjU2VsZWN0b3JzOnUscGF0aE1ldGhvZDpbXyx2XSxnZXRDb25maWdzOnAsb2FzM0FjdGlvbnM6ZyxvYXMzU2VsZWN0b3JzOnl9KTpudWxsLGs/TygpLmNyZWF0ZUVsZW1lbnQoSCx7Z2V0Q29tcG9uZW50OmkscGF0aDpfLG1ldGhvZDp2LG9wZXJhdGlvblNlcnZlcnM6VC5nZXQoInNlcnZlcnMiKSxwYXRoU2VydmVyczp1LnBhdGhzKCkuZ2V0SW4oW18sInNlcnZlcnMiXSksZ2V0U2VsZWN0ZWRTZXJ2ZXI6eS5zZWxlY3RlZFNlcnZlcixzZXRTZWxlY3RlZFNlcnZlcjpnLnNldFNlbGVjdGVkU2VydmVyLHNldFNlcnZlclZhcmlhYmxlVmFsdWU6Zy5zZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlLGdldFNlcnZlclZhcmlhYmxlOnkuc2VydmVyVmFyaWFibGVWYWx1ZSxnZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZTp5LnNlcnZlckVmZmVjdGl2ZVZhbHVlfSk6bnVsbCxrJiZ4JiZQJiZQLnNpemU/TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1zY2hlbWVzIn0sTygpLmNyZWF0ZUVsZW1lbnQoVyx7c2NoZW1lczpQLHBhdGg6XyxtZXRob2Q6dixzcGVjQWN0aW9uczptLGN1cnJlbnRTY2hlbWU6JH0pKTpudWxsLCFrfHwheHx8ZWUubGVuZ3RoPD0wP251bGw6TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidmFsaWRhdGlvbi1lcnJvcnMgZXJyb3JzLXdyYXBwZXIifSwiUGxlYXNlIGNvcnJlY3QgdGhlIGZvbGxvd2luZyB2YWxpZGF0aW9uIGVycm9ycyBhbmQgdHJ5IGFnYWluLiIsTygpLmNyZWF0ZUVsZW1lbnQoInVsIixudWxsLGVlLm1hcCgoKGUsdCk9Pk8oKS5jcmVhdGVFbGVtZW50KCJsaSIse2tleTp0fSwiICIsZSwiICIpKSkpKSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmsmJnQmJng/ImJ0bi1ncm91cCI6ImV4ZWN1dGUtd3JhcHBlciJ9LGsmJng/TygpLmNyZWF0ZUVsZW1lbnQoSyx7b3BlcmF0aW9uOlQsc3BlY0FjdGlvbnM6bSxzcGVjU2VsZWN0b3JzOnUsb2FzM1NlbGVjdG9yczp5LG9hczNBY3Rpb25zOmcscGF0aDpfLG1ldGhvZDp2LG9uRXhlY3V0ZTpsLGRpc2FibGVkOkl9KTpudWxsLGsmJnQmJng/TygpLmNyZWF0ZUVsZW1lbnQoeix7c3BlY0FjdGlvbnM6bSxwYXRoOl8sbWV0aG9kOnZ9KTpudWxsKSxJP08oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImxvYWRpbmctY29udGFpbmVyIn0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibG9hZGluZyJ9KSk6bnVsbCxSP08oKS5jcmVhdGVFbGVtZW50KEQse3Jlc3BvbnNlczpSLHJlcXVlc3Q6cix0cnlJdE91dFJlc3BvbnNlOnQsZ2V0Q29tcG9uZW50OmksZ2V0Q29uZmlnczpwLHNwZWNTZWxlY3RvcnM6dSxvYXMzQWN0aW9uczpnLG9hczNTZWxlY3RvcnM6eSxzcGVjQWN0aW9uczptLHByb2R1Y2VzOnUucHJvZHVjZXNPcHRpb25zRm9yKFtfLHZdKSxwcm9kdWNlc1ZhbHVlOnUuY3VycmVudFByb2R1Y2VzRm9yKFtfLHZdKSxzcGVjUGF0aDplLnB1c2goInJlc3BvbnNlcyIpLHBhdGg6XyxtZXRob2Q6dixkaXNwbGF5UmVxdWVzdER1cmF0aW9uOk4sZm46Y30pOm51bGwsUSYmTC5zaXplP08oKS5jcmVhdGVFbGVtZW50KFgse2V4dGVuc2lvbnM6TCxnZXRDb21wb25lbnQ6aX0pOm51bGwpKSl9fWNsYXNzIE9wZXJhdGlvbkNvbnRhaW5lciBleHRlbmRzIHguUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCk7Y29uc3R7dHJ5SXRPdXRFbmFibGVkOnJ9PWUuZ2V0Q29uZmlncygpO3RoaXMuc3RhdGU9e3RyeUl0T3V0RW5hYmxlZDpyLGV4ZWN1dGVJblByb2dyZXNzOiExfX1zdGF0aWMgZGVmYXVsdFByb3BzPXtzaG93U3VtbWFyeTohMCxyZXNwb25zZTpudWxsLGFsbG93VHJ5SXRPdXQ6ITAsZGlzcGxheU9wZXJhdGlvbklkOiExLGRpc3BsYXlSZXF1ZXN0RHVyYXRpb246ITF9O21hcFN0YXRlVG9Qcm9wcyhlLHQpe2NvbnN0e29wOnIsbGF5b3V0U2VsZWN0b3JzOmEsZ2V0Q29uZmlnczpufT10LHtkb2NFeHBhbnNpb246cyxkZWVwTGlua2luZzpvLGRpc3BsYXlPcGVyYXRpb25JZDpsLGRpc3BsYXlSZXF1ZXN0RHVyYXRpb246YyxzdXBwb3J0ZWRTdWJtaXRNZXRob2RzOml9PW4oKSxwPWEuc2hvd1N1bW1hcnkoKSxtPXIuZ2V0SW4oWyJvcGVyYXRpb24iLCJfX29yaWdpbmFsT3BlcmF0aW9uSWQiXSl8fHIuZ2V0SW4oWyJvcGVyYXRpb24iLCJvcGVyYXRpb25JZCJdKXx8KDAsb2Eub3BJZCkoci5nZXQoIm9wZXJhdGlvbiIpLHQucGF0aCx0Lm1ldGhvZCl8fHIuZ2V0KCJpZCIpLHU9WyJvcGVyYXRpb25zIix0LnRhZyxtXSxkPWkuaW5kZXhPZih0Lm1ldGhvZCk+PTAmJih2b2lkIDA9PT10LmFsbG93VHJ5SXRPdXQ/dC5zcGVjU2VsZWN0b3JzLmFsbG93VHJ5SXRPdXRGb3IodC5wYXRoLHQubWV0aG9kKTp0LmFsbG93VHJ5SXRPdXQpLGg9ci5nZXRJbihbIm9wZXJhdGlvbiIsInNlY3VyaXR5Il0pfHx0LnNwZWNTZWxlY3RvcnMuc2VjdXJpdHkoKTtyZXR1cm57b3BlcmF0aW9uSWQ6bSxpc0RlZXBMaW5raW5nRW5hYmxlZDpvLHNob3dTdW1tYXJ5OnAsZGlzcGxheU9wZXJhdGlvbklkOmwsZGlzcGxheVJlcXVlc3REdXJhdGlvbjpjLGFsbG93VHJ5SXRPdXQ6ZCxzZWN1cml0eTpoLGlzQXV0aG9yaXplZDp0LmF1dGhTZWxlY3RvcnMuaXNBdXRob3JpemVkKGgpLGlzU2hvd246YS5pc1Nob3duKHUsImZ1bGwiPT09cyksanVtcFRvS2V5OmBwYXRocy4ke3QucGF0aH0uJHt0Lm1ldGhvZH1gLHJlc3BvbnNlOnQuc3BlY1NlbGVjdG9ycy5yZXNwb25zZUZvcih0LnBhdGgsdC5tZXRob2QpLHJlcXVlc3Q6dC5zcGVjU2VsZWN0b3JzLnJlcXVlc3RGb3IodC5wYXRoLHQubWV0aG9kKX19Y29tcG9uZW50RGlkTW91bnQoKXtjb25zdHtpc1Nob3duOmV9PXRoaXMucHJvcHMsdD10aGlzLmdldFJlc29sdmVkU3VidHJlZSgpO2UmJnZvaWQgMD09PXQmJnRoaXMucmVxdWVzdFJlc29sdmVkU3VidHJlZSgpfVVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKGUpe2NvbnN0e3Jlc3BvbnNlOnQsaXNTaG93bjpyfT1lLGE9dGhpcy5nZXRSZXNvbHZlZFN1YnRyZWUoKTt0IT09dGhpcy5wcm9wcy5yZXNwb25zZSYmdGhpcy5zZXRTdGF0ZSh7ZXhlY3V0ZUluUHJvZ3Jlc3M6ITF9KSxyJiZ2b2lkIDA9PT1hJiZ0aGlzLnJlcXVlc3RSZXNvbHZlZFN1YnRyZWUoKX10b2dnbGVTaG93bj0oKT0+e2xldHtsYXlvdXRBY3Rpb25zOmUsdGFnOnQsb3BlcmF0aW9uSWQ6cixpc1Nob3duOmF9PXRoaXMucHJvcHM7Y29uc3Qgbj10aGlzLmdldFJlc29sdmVkU3VidHJlZSgpO2F8fHZvaWQgMCE9PW58fHRoaXMucmVxdWVzdFJlc29sdmVkU3VidHJlZSgpLGUuc2hvdyhbIm9wZXJhdGlvbnMiLHQscl0sIWEpfTtvbkNhbmNlbENsaWNrPSgpPT57dGhpcy5zZXRTdGF0ZSh7dHJ5SXRPdXRFbmFibGVkOiF0aGlzLnN0YXRlLnRyeUl0T3V0RW5hYmxlZH0pfTtvblRyeW91dENsaWNrPSgpPT57dGhpcy5zZXRTdGF0ZSh7dHJ5SXRPdXRFbmFibGVkOiF0aGlzLnN0YXRlLnRyeUl0T3V0RW5hYmxlZH0pfTtvblJlc2V0Q2xpY2s9ZT0+e2NvbnN0IHQ9dGhpcy5wcm9wcy5vYXMzU2VsZWN0b3JzLnNlbGVjdERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlKC4uLmUpO3RoaXMucHJvcHMub2FzM0FjdGlvbnMuc2V0UmVxdWVzdEJvZHlWYWx1ZSh7dmFsdWU6dCxwYXRoTWV0aG9kOmV9KX07b25FeGVjdXRlPSgpPT57dGhpcy5zZXRTdGF0ZSh7ZXhlY3V0ZUluUHJvZ3Jlc3M6ITB9KX07Z2V0UmVzb2x2ZWRTdWJ0cmVlPSgpPT57Y29uc3R7c3BlY1NlbGVjdG9yczplLHBhdGg6dCxtZXRob2Q6cixzcGVjUGF0aDphfT10aGlzLnByb3BzO3JldHVybiBhP2Uuc3BlY1Jlc29sdmVkU3VidHJlZShhLnRvSlMoKSk6ZS5zcGVjUmVzb2x2ZWRTdWJ0cmVlKFsicGF0aHMiLHQscl0pfTtyZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlPSgpPT57Y29uc3R7c3BlY0FjdGlvbnM6ZSxwYXRoOnQsbWV0aG9kOnIsc3BlY1BhdGg6YX09dGhpcy5wcm9wcztyZXR1cm4gYT9lLnJlcXVlc3RSZXNvbHZlZFN1YnRyZWUoYS50b0pTKCkpOmUucmVxdWVzdFJlc29sdmVkU3VidHJlZShbInBhdGhzIix0LHJdKX07cmVuZGVyKCl7bGV0e29wOmUsdGFnOnQscGF0aDpyLG1ldGhvZDphLHNlY3VyaXR5Om4saXNBdXRob3JpemVkOnMsb3BlcmF0aW9uSWQ6byxzaG93U3VtbWFyeTpsLGlzU2hvd246YyxqdW1wVG9LZXk6aSxhbGxvd1RyeUl0T3V0OnAscmVzcG9uc2U6bSxyZXF1ZXN0OnUsZGlzcGxheU9wZXJhdGlvbklkOmQsZGlzcGxheVJlcXVlc3REdXJhdGlvbjpoLGlzRGVlcExpbmtpbmdFbmFibGVkOmcsc3BlY1BhdGg6eSxzcGVjU2VsZWN0b3JzOmYsc3BlY0FjdGlvbnM6UyxnZXRDb21wb25lbnQ6RSxnZXRDb25maWdzOl8sbGF5b3V0U2VsZWN0b3JzOnYsbGF5b3V0QWN0aW9uczp3LGF1dGhBY3Rpb25zOmIsYXV0aFNlbGVjdG9yczpDLG9hczNBY3Rpb25zOngsb2FzM1NlbGVjdG9yczpOLGZuOkF9PXRoaXMucHJvcHM7Y29uc3QgST1FKCJvcGVyYXRpb24iKSxqPXRoaXMuZ2V0UmVzb2x2ZWRTdWJ0cmVlKCl8fCgwLGsuTWFwKSgpLHE9KDAsay5mcm9tSlMpKHtvcDpqLHRhZzp0LHBhdGg6cixzdW1tYXJ5OmUuZ2V0SW4oWyJvcGVyYXRpb24iLCJzdW1tYXJ5Il0pfHwiIixkZXByZWNhdGVkOmouZ2V0KCJkZXByZWNhdGVkIil8fGUuZ2V0SW4oWyJvcGVyYXRpb24iLCJkZXByZWNhdGVkIl0pfHwhMSxtZXRob2Q6YSxzZWN1cml0eTpuLGlzQXV0aG9yaXplZDpzLG9wZXJhdGlvbklkOm8sb3JpZ2luYWxPcGVyYXRpb25JZDpqLmdldEluKFsib3BlcmF0aW9uIiwiX19vcmlnaW5hbE9wZXJhdGlvbklkIl0pLHNob3dTdW1tYXJ5OmwsaXNTaG93bjpjLGp1bXBUb0tleTppLGFsbG93VHJ5SXRPdXQ6cCxyZXF1ZXN0OnUsZGlzcGxheU9wZXJhdGlvbklkOmQsZGlzcGxheVJlcXVlc3REdXJhdGlvbjpoLGlzRGVlcExpbmtpbmdFbmFibGVkOmcsZXhlY3V0ZUluUHJvZ3Jlc3M6dGhpcy5zdGF0ZS5leGVjdXRlSW5Qcm9ncmVzcyx0cnlJdE91dEVuYWJsZWQ6dGhpcy5zdGF0ZS50cnlJdE91dEVuYWJsZWR9KTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoSSx7b3BlcmF0aW9uOnEscmVzcG9uc2U6bSxyZXF1ZXN0OnUsaXNTaG93bjpjLHRvZ2dsZVNob3duOnRoaXMudG9nZ2xlU2hvd24sb25UcnlvdXRDbGljazp0aGlzLm9uVHJ5b3V0Q2xpY2ssb25SZXNldENsaWNrOnRoaXMub25SZXNldENsaWNrLG9uQ2FuY2VsQ2xpY2s6dGhpcy5vbkNhbmNlbENsaWNrLG9uRXhlY3V0ZTp0aGlzLm9uRXhlY3V0ZSxzcGVjUGF0aDp5LHNwZWNBY3Rpb25zOlMsc3BlY1NlbGVjdG9yczpmLG9hczNBY3Rpb25zOngsb2FzM1NlbGVjdG9yczpOLGxheW91dEFjdGlvbnM6dyxsYXlvdXRTZWxlY3RvcnM6dixhdXRoQWN0aW9uczpiLGF1dGhTZWxlY3RvcnM6QyxnZXRDb21wb25lbnQ6RSxnZXRDb25maWdzOl8sZm46QX0pfX1jb25zdCBZYT1yZXF1aXJlKCJsb2Rhc2gvdG9TdHJpbmciKTt2YXIgUWE9X193ZWJwYWNrX3JlcXVpcmVfXy5uKFlhKTtjbGFzcyBPcGVyYXRpb25TdW1tYXJ5IGV4dGVuZHMgeC5QdXJlQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9e29wZXJhdGlvblByb3BzOm51bGwsc3BlY1BhdGg6KDAsay5MaXN0KSgpLHN1bW1hcnk6IiJ9O3JlbmRlcigpe2xldHtpc1Nob3duOmUsdG9nZ2xlU2hvd246dCxnZXRDb21wb25lbnQ6cixhdXRoQWN0aW9uczphLGF1dGhTZWxlY3RvcnM6bixvcGVyYXRpb25Qcm9wczpzLHNwZWNQYXRoOm99PXRoaXMucHJvcHMse3N1bW1hcnk6bCxpc0F1dGhvcml6ZWQ6YyxtZXRob2Q6aSxvcDpwLHNob3dTdW1tYXJ5Om0scGF0aDp1LG9wZXJhdGlvbklkOmQsb3JpZ2luYWxPcGVyYXRpb25JZDpoLGRpc3BsYXlPcGVyYXRpb25JZDpnfT1zLnRvSlMoKSx7c3VtbWFyeTp5fT1wLGY9cy5nZXQoInNlY3VyaXR5Iik7Y29uc3QgUz1yKCJhdXRob3JpemVPcGVyYXRpb25CdG4iLCEwKSxFPXIoIk9wZXJhdGlvblN1bW1hcnlNZXRob2QiKSxfPXIoIk9wZXJhdGlvblN1bW1hcnlQYXRoIiksdj1yKCJKdW1wVG9QYXRoIiwhMCksdz1yKCJDb3B5VG9DbGlwYm9hcmRCdG4iLCEwKSxiPXIoIkFycm93VXBJY29uIiksQz1yKCJBcnJvd0Rvd25JY29uIikseD1mJiYhIWYuY291bnQoKSxOPXgmJjE9PT1mLnNpemUmJmYuZmlyc3QoKS5pc0VtcHR5KCksaz0heHx8TjtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgb3BibG9jay1zdW1tYXJ5IG9wYmxvY2stc3VtbWFyeS0ke2l9YH0sTygpLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIseyJhcmlhLWV4cGFuZGVkIjplLGNsYXNzTmFtZToib3BibG9jay1zdW1tYXJ5LWNvbnRyb2wiLG9uQ2xpY2s6dH0sTygpLmNyZWF0ZUVsZW1lbnQoRSx7bWV0aG9kOml9KSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXN1bW1hcnktcGF0aC1kZXNjcmlwdGlvbi13cmFwcGVyIn0sTygpLmNyZWF0ZUVsZW1lbnQoXyx7Z2V0Q29tcG9uZW50OnIsb3BlcmF0aW9uUHJvcHM6cyxzcGVjUGF0aDpvfSksbT9PKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXN1bW1hcnktZGVzY3JpcHRpb24ifSxRYSgpKHl8fGwpKTpudWxsKSxnJiYoaHx8ZCk/TygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im9wYmxvY2stc3VtbWFyeS1vcGVyYXRpb24taWQifSxofHxkKTpudWxsKSxPKCkuY3JlYXRlRWxlbWVudCh3LHt0ZXh0VG9Db3B5OmAke28uZ2V0KDEpfWB9KSxrP251bGw6TygpLmNyZWF0ZUVsZW1lbnQoUyx7aXNBdXRob3JpemVkOmMsb25DbGljazooKT0+e2NvbnN0IGU9bi5kZWZpbml0aW9uc0ZvclJlcXVpcmVtZW50cyhmKTthLnNob3dEZWZpbml0aW9ucyhlKX19KSxPKCkuY3JlYXRlRWxlbWVudCh2LHtwYXRoOm99KSxPKCkuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7ImFyaWEtbGFiZWwiOmAke2l9ICR7dS5yZXBsYWNlKC9cLy9nLCLigIsvIil9YCxjbGFzc05hbWU6Im9wYmxvY2stY29udHJvbC1hcnJvdyIsImFyaWEtZXhwYW5kZWQiOmUsdGFiSW5kZXg6Ii0xIixvbkNsaWNrOnR9LGU/TygpLmNyZWF0ZUVsZW1lbnQoYix7Y2xhc3NOYW1lOiJhcnJvdyJ9KTpPKCkuY3JlYXRlRWxlbWVudChDLHtjbGFzc05hbWU6ImFycm93In0pKSl9fWNsYXNzIE9wZXJhdGlvblN1bW1hcnlNZXRob2QgZXh0ZW5kcyB4LlB1cmVDb21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17b3BlcmF0aW9uUHJvcHM6bnVsbH07cmVuZGVyKCl7bGV0e21ldGhvZDplfT10aGlzLnByb3BzO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToib3BibG9jay1zdW1tYXJ5LW1ldGhvZCJ9LGUudG9VcHBlckNhc2UoKSl9fWNsYXNzIE9wZXJhdGlvblN1bW1hcnlQYXRoIGV4dGVuZHMgeC5QdXJlQ29tcG9uZW50e3JlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6ZSxvcGVyYXRpb25Qcm9wczp0fT10aGlzLnByb3BzLHtkZXByZWNhdGVkOnIsaXNTaG93bjphLHBhdGg6bix0YWc6cyxvcGVyYXRpb25JZDpvLGlzRGVlcExpbmtpbmdFbmFibGVkOmx9PXQudG9KUygpO2NvbnN0IGM9bi5zcGxpdCgvKD89XC8pL2cpO2ZvcihsZXQgZT0xO2U8Yy5sZW5ndGg7ZSs9MiljLnNwbGljZShlLDAsTygpLmNyZWF0ZUVsZW1lbnQoIndiciIse2tleTplfSkpO2NvbnN0IGk9ZSgiRGVlcExpbmsiKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cj8ib3BibG9jay1zdW1tYXJ5LXBhdGhfX2RlcHJlY2F0ZWQiOiJvcGJsb2NrLXN1bW1hcnktcGF0aCIsImRhdGEtcGF0aCI6bn0sTygpLmNyZWF0ZUVsZW1lbnQoaSx7ZW5hYmxlZDpsLGlzU2hvd246YSxwYXRoOmNyZWF0ZURlZXBMaW5rUGF0aChgJHtzfS8ke299YCksdGV4dDpjfSkpfX1jb25zdCBvcGVyYXRpb25fZXh0ZW5zaW9ucz0oe2V4dGVuc2lvbnM6ZSxnZXRDb21wb25lbnQ6dH0pPT57bGV0IHI9dCgiT3BlcmF0aW9uRXh0Um93Iik7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc2VjdGlvbiJ9LE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc2VjdGlvbi1oZWFkZXIifSxPKCkuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsIkV4dGVuc2lvbnMiKSksTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidGFibGUtY29udGFpbmVyIn0sTygpLmNyZWF0ZUVsZW1lbnQoInRhYmxlIixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJ0aGVhZCIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgidHIiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJjb2xfaGVhZGVyIn0sIkZpZWxkIiksTygpLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJjb2xfaGVhZGVyIn0sIlZhbHVlIikpKSxPKCkuY3JlYXRlRWxlbWVudCgidGJvZHkiLG51bGwsZS5lbnRyeVNlcSgpLm1hcCgoKFtlLHRdKT0+TygpLmNyZWF0ZUVsZW1lbnQocix7a2V5OmAke2V9LSR7dH1gLHhLZXk6ZSx4VmFsOnR9KSkpKSkpKX0sb3BlcmF0aW9uX2V4dGVuc2lvbl9yb3c9KHt4S2V5OmUseFZhbDp0fSk9Pntjb25zdCByPXQ/dC50b0pTP3QudG9KUygpOnQ6bnVsbDtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoInRyIixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxlKSxPKCkuY3JlYXRlRWxlbWVudCgidGQiLG51bGwsSlNPTi5zdHJpbmdpZnkocikpKX07ZnVuY3Rpb24gY3JlYXRlSHRtbFJlYWR5SWQoZSx0PSJfIil7cmV0dXJuIGUucmVwbGFjZSgvW15cdy1dL2csdCl9Y2xhc3MgUmVzcG9uc2VzIGV4dGVuZHMgTygpLkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXt0cnlJdE91dFJlc3BvbnNlOm51bGwscHJvZHVjZXM6KDAsay5mcm9tSlMpKFsiYXBwbGljYXRpb24vanNvbiJdKSxkaXNwbGF5UmVxdWVzdER1cmF0aW9uOiExfTtvbkNoYW5nZVByb2R1Y2VzV3JhcHBlcj1lPT50aGlzLnByb3BzLnNwZWNBY3Rpb25zLmNoYW5nZVByb2R1Y2VzVmFsdWUoW3RoaXMucHJvcHMucGF0aCx0aGlzLnByb3BzLm1ldGhvZF0sZSk7b25SZXNwb25zZUNvbnRlbnRUeXBlQ2hhbmdlPSh7Y29udHJvbHNBY2NlcHRIZWFkZXI6ZSx2YWx1ZTp0fSk9Pntjb25zdHtvYXMzQWN0aW9uczpyLHBhdGg6YSxtZXRob2Q6bn09dGhpcy5wcm9wcztlJiZyLnNldFJlc3BvbnNlQ29udGVudFR5cGUoe3ZhbHVlOnQscGF0aDphLG1ldGhvZDpufSl9O3JlbmRlcigpe2xldHtyZXNwb25zZXM6ZSx0cnlJdE91dFJlc3BvbnNlOnQsZ2V0Q29tcG9uZW50OnIsZ2V0Q29uZmlnczphLHNwZWNTZWxlY3RvcnM6bixmbjpzLHByb2R1Y2VzVmFsdWU6byxkaXNwbGF5UmVxdWVzdER1cmF0aW9uOmwsc3BlY1BhdGg6YyxwYXRoOmksbWV0aG9kOnAsb2FzM1NlbGVjdG9yczptLG9hczNBY3Rpb25zOnV9PXRoaXMucHJvcHMsZD1mdW5jdGlvbiBkZWZhdWx0U3RhdHVzQ29kZShlKXtsZXQgdD1lLmtleVNlcSgpO3JldHVybiB0LmNvbnRhaW5zKGNlKT9jZTp0LmZpbHRlcigoZT0+IjIiPT09KGUrIiIpWzBdKSkuc29ydCgpLmZpcnN0KCl9KGUpO2NvbnN0IGg9cigiY29udGVudFR5cGUiKSxnPXIoImxpdmVSZXNwb25zZSIpLHk9cigicmVzcG9uc2UiKTtsZXQgZj10aGlzLnByb3BzLnByb2R1Y2VzJiZ0aGlzLnByb3BzLnByb2R1Y2VzLnNpemU/dGhpcy5wcm9wcy5wcm9kdWNlczpSZXNwb25zZXMuZGVmYXVsdFByb3BzLnByb2R1Y2VzO2NvbnN0IFM9bi5pc09BUzMoKT9mdW5jdGlvbiBnZXRBY2NlcHRDb250cm9sbGluZ1Jlc3BvbnNlKGUpe2lmKCFBKCkuT3JkZXJlZE1hcC5pc09yZGVyZWRNYXAoZSkpcmV0dXJuIG51bGw7aWYoIWUuc2l6ZSlyZXR1cm4gbnVsbDtjb25zdCB0PWUuZmluZCgoKGUsdCk9PnQuc3RhcnRzV2l0aCgiMiIpJiZPYmplY3Qua2V5cyhlLmdldCgiY29udGVudCIpfHx7fSkubGVuZ3RoPjApKSxyPWUuZ2V0KCJkZWZhdWx0Iil8fEEoKS5PcmRlcmVkTWFwKCksYT0oci5nZXQoImNvbnRlbnQiKXx8QSgpLk9yZGVyZWRNYXAoKSkua2V5U2VxKCkudG9KUygpLmxlbmd0aD9yOm51bGw7cmV0dXJuIHR8fGF9KGUpOm51bGwsRT1jcmVhdGVIdG1sUmVhZHlJZChgJHtwfSR7aX1fcmVzcG9uc2VzYCksXz1gJHtFfV9zZWxlY3RgO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJyZXNwb25zZXMtd3JhcHBlciJ9LE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc2VjdGlvbi1oZWFkZXIifSxPKCkuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsIlJlc3BvbnNlcyIpLG4uaXNPQVMzKCk/bnVsbDpPKCkuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtodG1sRm9yOl99LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCJSZXNwb25zZSBjb250ZW50IHR5cGUiKSxPKCkuY3JlYXRlRWxlbWVudChoLHt2YWx1ZTpvLGFyaWFDb250cm9sczpFLGFyaWFMYWJlbDoiUmVzcG9uc2UgY29udGVudCB0eXBlIixjbGFzc05hbWU6ImV4ZWN1dGUtY29udGVudC10eXBlIixjb250ZW50VHlwZXM6Zixjb250cm9sSWQ6XyxvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlUHJvZHVjZXNXcmFwcGVyfSkpKSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJyZXNwb25zZXMtaW5uZXIifSx0P08oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoZyx7cmVzcG9uc2U6dCxnZXRDb21wb25lbnQ6cixnZXRDb25maWdzOmEsc3BlY1NlbGVjdG9yczpuLHBhdGg6dGhpcy5wcm9wcy5wYXRoLG1ldGhvZDp0aGlzLnByb3BzLm1ldGhvZCxkaXNwbGF5UmVxdWVzdER1cmF0aW9uOmx9KSxPKCkuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsIlJlc3BvbnNlcyIpKTpudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJ0YWJsZSIseyJhcmlhLWxpdmUiOiJwb2xpdGUiLGNsYXNzTmFtZToicmVzcG9uc2VzLXRhYmxlIixpZDpFLHJvbGU6InJlZ2lvbiJ9LE8oKS5jcmVhdGVFbGVtZW50KCJ0aGVhZCIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgidHIiLHtjbGFzc05hbWU6InJlc3BvbnNlcy1oZWFkZXIifSxPKCkuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6ImNvbF9oZWFkZXIgcmVzcG9uc2UtY29sX3N0YXR1cyJ9LCJDb2RlIiksTygpLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJjb2xfaGVhZGVyIHJlc3BvbnNlLWNvbF9kZXNjcmlwdGlvbiJ9LCJEZXNjcmlwdGlvbiIpLG4uaXNPQVMzKCk/TygpLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJjb2wgY29sX2hlYWRlciByZXNwb25zZS1jb2xfbGlua3MifSwiTGlua3MiKTpudWxsKSksTygpLmNyZWF0ZUVsZW1lbnQoInRib2R5IixudWxsLGUuZW50cnlTZXEoKS5tYXAoKChbZSxsXSk9PntsZXQgaD10JiZ0LmdldCgic3RhdHVzIik9PWU/InJlc3BvbnNlX2N1cnJlbnQiOiIiO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCh5LHtrZXk6ZSxwYXRoOmksbWV0aG9kOnAsc3BlY1BhdGg6Yy5wdXNoKGUpLGlzRGVmYXVsdDpkPT09ZSxmbjpzLGNsYXNzTmFtZTpoLGNvZGU6ZSxyZXNwb25zZTpsLHNwZWNTZWxlY3RvcnM6bixjb250cm9sc0FjY2VwdEhlYWRlcjpsPT09UyxvbkNvbnRlbnRUeXBlQ2hhbmdlOnRoaXMub25SZXNwb25zZUNvbnRlbnRUeXBlQ2hhbmdlLGNvbnRlbnRUeXBlOm8sZ2V0Q29uZmlnczphLGFjdGl2ZUV4YW1wbGVzS2V5Om0uYWN0aXZlRXhhbXBsZXNNZW1iZXIoaSxwLCJyZXNwb25zZXMiLGUpLG9hczNBY3Rpb25zOnUsZ2V0Q29tcG9uZW50OnJ9KX0pKS50b0FycmF5KCkpKSkpfX1mdW5jdGlvbiBnZXRLbm93blN5bnRheEhpZ2hsaWdodGVyTGFuZ3VhZ2UoZSl7cmV0dXJuIGZ1bmN0aW9uIGNhbkpzb25QYXJzZShlKXt0cnl7cmV0dXJuISFKU09OLnBhcnNlKGUpfWNhdGNoKGUpe3JldHVybiBudWxsfX0oZSk/Impzb24iOm51bGx9Y2xhc3MgUmVzcG9uc2UgZXh0ZW5kcyBPKCkuQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLnN0YXRlPXtyZXNwb25zZUNvbnRlbnRUeXBlOiIifX1zdGF0aWMgZGVmYXVsdFByb3BzPXtyZXNwb25zZTooMCxrLmZyb21KUykoe30pLG9uQ29udGVudFR5cGVDaGFuZ2U6KCk9Pnt9fTtfb25Db250ZW50VHlwZUNoYW5nZT1lPT57Y29uc3R7b25Db250ZW50VHlwZUNoYW5nZTp0LGNvbnRyb2xzQWNjZXB0SGVhZGVyOnJ9PXRoaXMucHJvcHM7dGhpcy5zZXRTdGF0ZSh7cmVzcG9uc2VDb250ZW50VHlwZTplfSksdCh7dmFsdWU6ZSxjb250cm9sc0FjY2VwdEhlYWRlcjpyfSl9O2dldFRhcmdldEV4YW1wbGVzS2V5PSgpPT57Y29uc3R7cmVzcG9uc2U6ZSxjb250ZW50VHlwZTp0LGFjdGl2ZUV4YW1wbGVzS2V5OnJ9PXRoaXMucHJvcHMsYT10aGlzLnN0YXRlLnJlc3BvbnNlQ29udGVudFR5cGV8fHQsbj1lLmdldEluKFsiY29udGVudCIsYV0sKDAsay5NYXApKHt9KSkuZ2V0KCJleGFtcGxlcyIsbnVsbCkua2V5U2VxKCkuZmlyc3QoKTtyZXR1cm4gcnx8bn07cmVuZGVyKCl7bGV0e3BhdGg6ZSxtZXRob2Q6dCxjb2RlOnIscmVzcG9uc2U6YSxjbGFzc05hbWU6bixzcGVjUGF0aDpzLGZuOm8sZ2V0Q29tcG9uZW50OmwsZ2V0Q29uZmlnczpjLHNwZWNTZWxlY3RvcnM6aSxjb250ZW50VHlwZTpwLGNvbnRyb2xzQWNjZXB0SGVhZGVyOm0sb2FzM0FjdGlvbnM6dX09dGhpcy5wcm9wcyx7aW5mZXJTY2hlbWE6ZCxnZXRTYW1wbGVTY2hlbWE6aH09byxnPWkuaXNPQVMzKCk7Y29uc3R7c2hvd0V4dGVuc2lvbnM6eX09YygpO2xldCBmPXk/Z2V0RXh0ZW5zaW9ucyhhKTpudWxsLFM9YS5nZXQoImhlYWRlcnMiKSxFPWEuZ2V0KCJsaW5rcyIpO2NvbnN0IF89bCgiUmVzcG9uc2VFeHRlbnNpb24iKSx2PWwoImhlYWRlcnMiKSx3PWwoIkhpZ2hsaWdodENvZGUiLCEwKSxiPWwoIm1vZGVsRXhhbXBsZSIpLEM9bCgiTWFya2Rvd24iLCEwKSx4PWwoIm9wZXJhdGlvbkxpbmsiKSxOPWwoImNvbnRlbnRUeXBlIiksQT1sKCJFeGFtcGxlc1NlbGVjdCIpLEk9bCgiRXhhbXBsZSIpO3ZhciBqLHE7Y29uc3QgUD10aGlzLnN0YXRlLnJlc3BvbnNlQ29udGVudFR5cGV8fHAsTT1hLmdldEluKFsiY29udGVudCIsUF0sKDAsay5NYXApKHt9KSksVD1NLmdldCgiZXhhbXBsZXMiLG51bGwpO2lmKGcpe2NvbnN0IGU9TS5nZXQoInNjaGVtYSIpO2o9ZT9kKGUudG9KUygpKTpudWxsLHE9ZT8oMCxrLkxpc3QpKFsiY29udGVudCIsdGhpcy5zdGF0ZS5yZXNwb25zZUNvbnRlbnRUeXBlLCJzY2hlbWEiXSk6c31lbHNlIGo9YS5nZXQoInNjaGVtYSIpLHE9YS5oYXMoInNjaGVtYSIpP3MucHVzaCgic2NoZW1hIik6cztsZXQgUixKLCQ9ITEsVj17aW5jbHVkZVJlYWRPbmx5OiEwfTtpZihnKWlmKEo9TS5nZXQoInNjaGVtYSIpPy50b0pTKCksay5NYXAuaXNNYXAoVCkmJiFULmlzRW1wdHkoKSl7Y29uc3QgZT10aGlzLmdldFRhcmdldEV4YW1wbGVzS2V5KCksZ2V0TWVkaWFUeXBlRXhhbXBsZT1lPT5rLk1hcC5pc01hcChlKT9lLmdldCgidmFsdWUiKTp2b2lkIDA7Uj1nZXRNZWRpYVR5cGVFeGFtcGxlKFQuZ2V0KGUsKDAsay5NYXApKHt9KSkpLHZvaWQgMD09PVImJihSPWdldE1lZGlhVHlwZUV4YW1wbGUoVC52YWx1ZXMoKS5uZXh0KCkudmFsdWUpKSwkPSEwfWVsc2Ugdm9pZCAwIT09TS5nZXQoImV4YW1wbGUiKSYmKFI9TS5nZXQoImV4YW1wbGUiKSwkPSEwKTtlbHNle0o9aixWPXsuLi5WLGluY2x1ZGVXcml0ZU9ubHk6ITB9O2NvbnN0IGU9YS5nZXRJbihbImV4YW1wbGVzIixQXSk7ZSYmKFI9ZSwkPSEwKX1jb25zdCBMPSgoZSx0KT0+e2lmKG51bGw9PWUpcmV0dXJuIG51bGw7Y29uc3Qgcj1nZXRLbm93blN5bnRheEhpZ2hsaWdodGVyTGFuZ3VhZ2UoZSk/Impzb24iOm51bGw7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQodCx7Y2xhc3NOYW1lOiJleGFtcGxlIixsYW5ndWFnZTpyfSxzdHJpbmdpZnkoZSkpKX0pKGgoSixQLFYsJD9SOnZvaWQgMCksdyk7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJ0ciIse2NsYXNzTmFtZToicmVzcG9uc2UgIisobnx8IiIpLCJkYXRhLWNvZGUiOnJ9LE8oKS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToicmVzcG9uc2UtY29sX3N0YXR1cyJ9LHIpLE8oKS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToicmVzcG9uc2UtY29sX2Rlc2NyaXB0aW9uIn0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicmVzcG9uc2UtY29sX2Rlc2NyaXB0aW9uX19pbm5lciJ9LE8oKS5jcmVhdGVFbGVtZW50KEMse3NvdXJjZTphLmdldCgiZGVzY3JpcHRpb24iKX0pKSx5JiZmLnNpemU/Zi5lbnRyeVNlcSgpLm1hcCgoKFtlLHRdKT0+TygpLmNyZWF0ZUVsZW1lbnQoXyx7a2V5OmAke2V9LSR7dH1gLHhLZXk6ZSx4VmFsOnR9KSkpOm51bGwsZyYmYS5nZXQoImNvbnRlbnQiKT9PKCkuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIse2NsYXNzTmFtZToicmVzcG9uc2UtY29udHJvbHMifSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnB0KCkoInJlc3BvbnNlLWNvbnRyb2wtbWVkaWEtdHlwZSIseyJyZXNwb25zZS1jb250cm9sLW1lZGlhLXR5cGUtLWFjY2VwdC1jb250cm9sbGVyIjptfSl9LE8oKS5jcmVhdGVFbGVtZW50KCJzbWFsbCIse2NsYXNzTmFtZToicmVzcG9uc2UtY29udHJvbC1tZWRpYS10eXBlX190aXRsZSJ9LCJNZWRpYSB0eXBlIiksTygpLmNyZWF0ZUVsZW1lbnQoTix7dmFsdWU6dGhpcy5zdGF0ZS5yZXNwb25zZUNvbnRlbnRUeXBlLGNvbnRlbnRUeXBlczphLmdldCgiY29udGVudCIpP2EuZ2V0KCJjb250ZW50Iikua2V5U2VxKCk6KDAsay5TZXEpKCksb25DaGFuZ2U6dGhpcy5fb25Db250ZW50VHlwZUNoYW5nZSxhcmlhTGFiZWw6Ik1lZGlhIFR5cGUifSksbT9PKCkuY3JlYXRlRWxlbWVudCgic21hbGwiLHtjbGFzc05hbWU6InJlc3BvbnNlLWNvbnRyb2wtbWVkaWEtdHlwZV9fYWNjZXB0LW1lc3NhZ2UifSwiQ29udHJvbHMgIixPKCkuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwiQWNjZXB0IiksIiBoZWFkZXIuIik6bnVsbCksay5NYXAuaXNNYXAoVCkmJiFULmlzRW1wdHkoKT9PKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJyZXNwb25zZS1jb250cm9sLWV4YW1wbGVzIn0sTygpLmNyZWF0ZUVsZW1lbnQoInNtYWxsIix7Y2xhc3NOYW1lOiJyZXNwb25zZS1jb250cm9sLWV4YW1wbGVzX190aXRsZSJ9LCJFeGFtcGxlcyIpLE8oKS5jcmVhdGVFbGVtZW50KEEse2V4YW1wbGVzOlQsY3VycmVudEV4YW1wbGVLZXk6dGhpcy5nZXRUYXJnZXRFeGFtcGxlc0tleSgpLG9uU2VsZWN0OmE9PnUuc2V0QWN0aXZlRXhhbXBsZXNNZW1iZXIoe25hbWU6YSxwYXRoTWV0aG9kOltlLHRdLGNvbnRleHRUeXBlOiJyZXNwb25zZXMiLGNvbnRleHROYW1lOnJ9KSxzaG93TGFiZWxzOiExfSkpOm51bGwpOm51bGwsTHx8aj9PKCkuY3JlYXRlRWxlbWVudChiLHtzcGVjUGF0aDpxLGdldENvbXBvbmVudDpsLGdldENvbmZpZ3M6YyxzcGVjU2VsZWN0b3JzOmksc2NoZW1hOmZyb21KU09yZGVyZWQoaiksZXhhbXBsZTpMLGluY2x1ZGVSZWFkT25seTohMH0pOm51bGwsZyYmVD9PKCkuY3JlYXRlRWxlbWVudChJLHtleGFtcGxlOlQuZ2V0KHRoaXMuZ2V0VGFyZ2V0RXhhbXBsZXNLZXkoKSwoMCxrLk1hcCkoe30pKSxnZXRDb21wb25lbnQ6bCxnZXRDb25maWdzOmMsb21pdFZhbHVlOiEwfSk6bnVsbCxTP08oKS5jcmVhdGVFbGVtZW50KHYse2hlYWRlcnM6UyxnZXRDb21wb25lbnQ6bH0pOm51bGwpLGc/TygpLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJyZXNwb25zZS1jb2xfbGlua3MifSxFP0UudG9TZXEoKS5lbnRyeVNlcSgpLm1hcCgoKFtlLHRdKT0+TygpLmNyZWF0ZUVsZW1lbnQoeCx7a2V5OmUsbmFtZTplLGxpbms6dCxnZXRDb21wb25lbnQ6bH0pKSk6TygpLmNyZWF0ZUVsZW1lbnQoImkiLG51bGwsIk5vIGxpbmtzIikpOm51bGwpfX1jb25zdCByZXNwb25zZV9leHRlbnNpb249KHt4S2V5OmUseFZhbDp0fSk9Pk8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InJlc3BvbnNlX19leHRlbnNpb24ifSxlLCI6ICIsU3RyaW5nKHQpKSxaYT1yZXF1aXJlKCJ4bWwtYnV0LXByZXR0aWVyIik7dmFyIGVuPV9fd2VicGFja19yZXF1aXJlX18ubihaYSk7Y29uc3QgdG49cmVxdWlyZSgibG9kYXNoL3RvTG93ZXIiKTt2YXIgcm49X193ZWJwYWNrX3JlcXVpcmVfXy5uKHRuKTtjbGFzcyBSZXNwb25zZUJvZHkgZXh0ZW5kcyBPKCkuUHVyZUNvbXBvbmVudHtzdGF0ZT17cGFyc2VkQ29udGVudDpudWxsfTt1cGRhdGVQYXJzZWRDb250ZW50PWU9Pntjb25zdHtjb250ZW50OnR9PXRoaXMucHJvcHM7aWYoZSE9PXQpaWYodCYmdCBpbnN0YW5jZW9mIEJsb2Ipe3ZhciByPW5ldyBGaWxlUmVhZGVyO3Iub25sb2FkPSgpPT57dGhpcy5zZXRTdGF0ZSh7cGFyc2VkQ29udGVudDpyLnJlc3VsdH0pfSxyLnJlYWRBc1RleHQodCl9ZWxzZSB0aGlzLnNldFN0YXRlKHtwYXJzZWRDb250ZW50OnQudG9TdHJpbmcoKX0pfTtjb21wb25lbnREaWRNb3VudCgpe3RoaXMudXBkYXRlUGFyc2VkQ29udGVudChudWxsKX1jb21wb25lbnREaWRVcGRhdGUoZSl7dGhpcy51cGRhdGVQYXJzZWRDb250ZW50KGUuY29udGVudCl9cmVuZGVyKCl7bGV0e2NvbnRlbnQ6ZSxjb250ZW50VHlwZTp0LHVybDpyLGhlYWRlcnM6YT17fSxnZXRDb21wb25lbnQ6bn09dGhpcy5wcm9wcztjb25zdHtwYXJzZWRDb250ZW50OnN9PXRoaXMuc3RhdGUsbz1uKCJIaWdobGlnaHRDb2RlIiwhMCksbD0icmVzcG9uc2VfIisobmV3IERhdGUpLmdldFRpbWUoKTtsZXQgYyxpO2lmKHI9cnx8IiIsKC9eYXBwbGljYXRpb25cL29jdGV0LXN0cmVhbS9pLnRlc3QodCl8fGFbIkNvbnRlbnQtRGlzcG9zaXRpb24iXSYmL2F0dGFjaG1lbnQvaS50ZXN0KGFbIkNvbnRlbnQtRGlzcG9zaXRpb24iXSl8fGFbImNvbnRlbnQtZGlzcG9zaXRpb24iXSYmL2F0dGFjaG1lbnQvaS50ZXN0KGFbImNvbnRlbnQtZGlzcG9zaXRpb24iXSl8fGFbIkNvbnRlbnQtRGVzY3JpcHRpb24iXSYmL0ZpbGUgVHJhbnNmZXIvaS50ZXN0KGFbIkNvbnRlbnQtRGVzY3JpcHRpb24iXSl8fGFbImNvbnRlbnQtZGVzY3JpcHRpb24iXSYmL0ZpbGUgVHJhbnNmZXIvaS50ZXN0KGFbImNvbnRlbnQtZGVzY3JpcHRpb24iXSkpJiYoZS5zaXplPjB8fGUubGVuZ3RoPjApKWlmKCJCbG9iImluIHdpbmRvdyl7bGV0IG49dHx8InRleHQvaHRtbCIscz1lIGluc3RhbmNlb2YgQmxvYj9lOm5ldyBCbG9iKFtlXSx7dHlwZTpufSksbz13aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChzKSxsPVtuLHIuc3Vic3RyKHIubGFzdEluZGV4T2YoIi8iKSsxKSxvXS5qb2luKCI6IiksYz1hWyJjb250ZW50LWRpc3Bvc2l0aW9uIl18fGFbIkNvbnRlbnQtRGlzcG9zaXRpb24iXTtpZih2b2lkIDAhPT1jKXtsZXQgZT1mdW5jdGlvbiBleHRyYWN0RmlsZU5hbWVGcm9tQ29udGVudERpc3Bvc2l0aW9uSGVhZGVyKGUpe2xldCB0O2lmKFsvZmlsZW5hbWVcKj1bXiddKydcdyonIihbXiJdKykiOz8vaSwvZmlsZW5hbWVcKj1bXiddKydcdyonKFteO10rKTs/L2ksL2ZpbGVuYW1lPSIoW147XSopOz8iL2ksL2ZpbGVuYW1lPShbXjtdKik7Py9pXS5zb21lKChyPT4odD1yLmV4ZWMoZSksbnVsbCE9PXQpKSksbnVsbCE9PXQmJnQubGVuZ3RoPjEpdHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQodFsxXSl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX1yZXR1cm4gbnVsbH0oYyk7bnVsbCE9PWUmJihsPWUpfWk9Sy5uYXZpZ2F0b3ImJksubmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2I/TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgiYSIse2hyZWY6byxvbkNsaWNrOigpPT5LLm5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKHMsbCl9LCJEb3dubG9hZCBmaWxlIikpOk8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoImEiLHtocmVmOm8sZG93bmxvYWQ6bH0sIkRvd25sb2FkIGZpbGUiKSl9ZWxzZSBpPU8oKS5jcmVhdGVFbGVtZW50KCJwcmUiLHtjbGFzc05hbWU6Im1pY3JvbGlnaHQifSwiRG93bmxvYWQgaGVhZGVycyBkZXRlY3RlZCBidXQgeW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgZG93bmxvYWRpbmcgYmluYXJ5IHZpYSBYSFIgKEJsb2IpLiIpO2Vsc2UgaWYoL2pzb24vaS50ZXN0KHQpKXtsZXQgdD1udWxsO2dldEtub3duU3ludGF4SGlnaGxpZ2h0ZXJMYW5ndWFnZShlKSYmKHQ9Impzb24iKTt0cnl7Yz1KU09OLnN0cmluZ2lmeShKU09OLnBhcnNlKGUpLG51bGwsIiAgIil9Y2F0Y2godCl7Yz0iY2FuJ3QgcGFyc2UgSlNPTi4gIFJhdyByZXN1bHQ6XG5cbiIrZX1pPU8oKS5jcmVhdGVFbGVtZW50KG8se2xhbmd1YWdlOnQsZG93bmxvYWRhYmxlOiEwLGZpbGVOYW1lOmAke2x9Lmpzb25gLGNhbkNvcHk6ITB9LGMpfWVsc2UveG1sL2kudGVzdCh0KT8oYz1lbigpKGUse3RleHROb2Rlc09uU2FtZUxpbmU6ITAsaW5kZW50b3I6IiAgIn0pLGk9TygpLmNyZWF0ZUVsZW1lbnQobyx7ZG93bmxvYWRhYmxlOiEwLGZpbGVOYW1lOmAke2x9LnhtbGAsY2FuQ29weTohMH0sYykpOmk9InRleHQvaHRtbCI9PT1ybigpKHQpfHwvdGV4dFwvcGxhaW4vLnRlc3QodCk/TygpLmNyZWF0ZUVsZW1lbnQobyx7ZG93bmxvYWRhYmxlOiEwLGZpbGVOYW1lOmAke2x9Lmh0bWxgLGNhbkNvcHk6ITB9LGUpOiJ0ZXh0L2NzdiI9PT1ybigpKHQpfHwvdGV4dFwvY3N2Ly50ZXN0KHQpP08oKS5jcmVhdGVFbGVtZW50KG8se2Rvd25sb2FkYWJsZTohMCxmaWxlTmFtZTpgJHtsfS5jc3ZgLGNhbkNvcHk6ITB9LGUpOi9eaW1hZ2VcLy9pLnRlc3QodCk/dC5pbmNsdWRlcygic3ZnIik/TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCwiICIsZSwiICIpOk8oKS5jcmVhdGVFbGVtZW50KCJpbWciLHtzcmM6d2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoZSl9KTovXmF1ZGlvXC8vaS50ZXN0KHQpP08oKS5jcmVhdGVFbGVtZW50KCJwcmUiLHtjbGFzc05hbWU6Im1pY3JvbGlnaHQifSxPKCkuY3JlYXRlRWxlbWVudCgiYXVkaW8iLHtjb250cm9sczohMCxrZXk6cn0sTygpLmNyZWF0ZUVsZW1lbnQoInNvdXJjZSIse3NyYzpyLHR5cGU6dH0pKSk6InN0cmluZyI9PXR5cGVvZiBlP08oKS5jcmVhdGVFbGVtZW50KG8se2Rvd25sb2FkYWJsZTohMCxmaWxlTmFtZTpgJHtsfS50eHRgLGNhbkNvcHk6ITB9LGUpOmUuc2l6ZT4wP3M/TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgicCIse2NsYXNzTmFtZToiaSJ9LCJVbnJlY29nbml6ZWQgcmVzcG9uc2UgdHlwZTsgZGlzcGxheWluZyBjb250ZW50IGFzIHRleHQuIiksTygpLmNyZWF0ZUVsZW1lbnQobyx7ZG93bmxvYWRhYmxlOiEwLGZpbGVOYW1lOmAke2x9LnR4dGAsY2FuQ29weTohMH0scykpOk8oKS5jcmVhdGVFbGVtZW50KCJwIix7Y2xhc3NOYW1lOiJpIn0sIlVucmVjb2duaXplZCByZXNwb25zZSB0eXBlOyB1bmFibGUgdG8gZGlzcGxheS4iKTpudWxsO3JldHVybiBpP08oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoImg1IixudWxsLCJSZXNwb25zZSBib2R5IiksaSk6bnVsbH19Y2xhc3MgUGFyYW1ldGVycyBleHRlbmRzIHguQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMuc3RhdGU9e2NhbGxiYWNrVmlzaWJsZTohMSxwYXJhbWV0ZXJzVmlzaWJsZTohMH19c3RhdGljIGRlZmF1bHRQcm9wcz17b25UcnlvdXRDbGljazpGdW5jdGlvbi5wcm90b3R5cGUsb25DYW5jZWxDbGljazpGdW5jdGlvbi5wcm90b3R5cGUsdHJ5SXRPdXRFbmFibGVkOiExLGFsbG93VHJ5SXRPdXQ6ITAsb25DaGFuZ2VLZXk6W10sc3BlY1BhdGg6W119O29uQ2hhbmdlPShlLHQscik9PntsZXR7c3BlY0FjdGlvbnM6e2NoYW5nZVBhcmFtQnlJZGVudGl0eTphfSxvbkNoYW5nZUtleTpufT10aGlzLnByb3BzO2EobixlLHQscil9O29uQ2hhbmdlQ29uc3VtZXNXcmFwcGVyPWU9PntsZXR7c3BlY0FjdGlvbnM6e2NoYW5nZUNvbnN1bWVzVmFsdWU6dH0sb25DaGFuZ2VLZXk6cn09dGhpcy5wcm9wczt0KHIsZSl9O3RvZ2dsZVRhYj1lPT4icGFyYW1ldGVycyI9PT1lP3RoaXMuc2V0U3RhdGUoe3BhcmFtZXRlcnNWaXNpYmxlOiEwLGNhbGxiYWNrVmlzaWJsZTohMX0pOiJjYWxsYmFja3MiPT09ZT90aGlzLnNldFN0YXRlKHtjYWxsYmFja1Zpc2libGU6ITAscGFyYW1ldGVyc1Zpc2libGU6ITF9KTp2b2lkIDA7b25DaGFuZ2VNZWRpYVR5cGU9KHt2YWx1ZTplLHBhdGhNZXRob2Q6dH0pPT57bGV0e3NwZWNBY3Rpb25zOnIsb2FzM1NlbGVjdG9yczphLG9hczNBY3Rpb25zOm59PXRoaXMucHJvcHM7Y29uc3Qgcz1hLmhhc1VzZXJFZGl0ZWRCb2R5KC4uLnQpLG89YS5zaG91bGRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlKC4uLnQpO24uc2V0UmVxdWVzdENvbnRlbnRUeXBlKHt2YWx1ZTplLHBhdGhNZXRob2Q6dH0pLG4uaW5pdFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcih7cGF0aE1ldGhvZDp0fSksc3x8KG98fG4uc2V0UmVxdWVzdEJvZHlWYWx1ZSh7dmFsdWU6dm9pZCAwLHBhdGhNZXRob2Q6dH0pLHIuY2xlYXJSZXNwb25zZSguLi50KSxyLmNsZWFyUmVxdWVzdCguLi50KSxyLmNsZWFyVmFsaWRhdGVQYXJhbXModCkpfTtyZW5kZXIoKXtsZXR7b25UcnlvdXRDbGljazplLG9uUmVzZXRDbGljazp0LHBhcmFtZXRlcnM6cixhbGxvd1RyeUl0T3V0OmEsdHJ5SXRPdXRFbmFibGVkOm4sc3BlY1BhdGg6cyxmbjpvLGdldENvbXBvbmVudDpsLGdldENvbmZpZ3M6YyxzcGVjU2VsZWN0b3JzOmksc3BlY0FjdGlvbnM6cCxwYXRoTWV0aG9kOm0sb2FzM0FjdGlvbnM6dSxvYXMzU2VsZWN0b3JzOmQsb3BlcmF0aW9uOmh9PXRoaXMucHJvcHM7Y29uc3QgZz1sKCJwYXJhbWV0ZXJSb3ciKSx5PWwoIlRyeUl0T3V0QnV0dG9uIiksZj1sKCJjb250ZW50VHlwZSIpLFM9bCgiQ2FsbGJhY2tzIiwhMCksRT1sKCJSZXF1ZXN0Qm9keSIsITApLF89biYmYSx2PWkuaXNPQVMzKCksdz1gJHtjcmVhdGVIdG1sUmVhZHlJZChgJHttWzFdfSR7bVswXX1fcmVxdWVzdHNgKX1fc2VsZWN0YCxiPWguZ2V0KCJyZXF1ZXN0Qm9keSIpLEM9T2JqZWN0LnZhbHVlcyhyLnJlZHVjZSgoKGUsdCk9PntpZihrLk1hcC5pc01hcCh0KSl7Y29uc3Qgcj10LmdldCgiaW4iKTtlW3JdPz89W10sZVtyXS5wdXNoKHQpfXJldHVybiBlfSkse30pKS5yZWR1Y2UoKChlLHQpPT5lLmNvbmNhdCh0KSksW10pO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXNlY3Rpb24ifSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXNlY3Rpb24taGVhZGVyIn0sdj9PKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJ0YWItaGVhZGVyIn0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse29uQ2xpY2s6KCk9PnRoaXMudG9nZ2xlVGFiKCJwYXJhbWV0ZXJzIiksY2xhc3NOYW1lOmB0YWItaXRlbSAke3RoaXMuc3RhdGUucGFyYW1ldGVyc1Zpc2libGUmJiJhY3RpdmUifWB9LE8oKS5jcmVhdGVFbGVtZW50KCJoNCIse2NsYXNzTmFtZToib3BibG9jay10aXRsZSJ9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCJQYXJhbWV0ZXJzIikpKSxoLmdldCgiY2FsbGJhY2tzIik/TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse29uQ2xpY2s6KCk9PnRoaXMudG9nZ2xlVGFiKCJjYWxsYmFja3MiKSxjbGFzc05hbWU6YHRhYi1pdGVtICR7dGhpcy5zdGF0ZS5jYWxsYmFja1Zpc2libGUmJiJhY3RpdmUifWB9LE8oKS5jcmVhdGVFbGVtZW50KCJoNCIse2NsYXNzTmFtZToib3BibG9jay10aXRsZSJ9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCJDYWxsYmFja3MiKSkpOm51bGwpOk8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InRhYi1oZWFkZXIifSxPKCkuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6Im9wYmxvY2stdGl0bGUifSwiUGFyYW1ldGVycyIpKSxhP08oKS5jcmVhdGVFbGVtZW50KHkse2lzT0FTMzppLmlzT0FTMygpLGhhc1VzZXJFZGl0ZWRCb2R5OmQuaGFzVXNlckVkaXRlZEJvZHkoLi4ubSksZW5hYmxlZDpuLG9uQ2FuY2VsQ2xpY2s6dGhpcy5wcm9wcy5vbkNhbmNlbENsaWNrLG9uVHJ5b3V0Q2xpY2s6ZSxvblJlc2V0Q2xpY2s6KCk9PnQobSl9KTpudWxsKSx0aGlzLnN0YXRlLnBhcmFtZXRlcnNWaXNpYmxlP08oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InBhcmFtZXRlcnMtY29udGFpbmVyIn0sQy5sZW5ndGg/TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidGFibGUtY29udGFpbmVyIn0sTygpLmNyZWF0ZUVsZW1lbnQoInRhYmxlIix7Y2xhc3NOYW1lOiJwYXJhbWV0ZXJzIn0sTygpLmNyZWF0ZUVsZW1lbnQoInRoZWFkIixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJ0ciIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgidGgiLHtjbGFzc05hbWU6ImNvbF9oZWFkZXIgcGFyYW1ldGVycy1jb2xfbmFtZSJ9LCJOYW1lIiksTygpLmNyZWF0ZUVsZW1lbnQoInRoIix7Y2xhc3NOYW1lOiJjb2xfaGVhZGVyIHBhcmFtZXRlcnMtY29sX2Rlc2NyaXB0aW9uIn0sIkRlc2NyaXB0aW9uIikpKSxPKCkuY3JlYXRlRWxlbWVudCgidGJvZHkiLG51bGwsQy5tYXAoKChlLHQpPT5PKCkuY3JlYXRlRWxlbWVudChnLHtmbjpvLHNwZWNQYXRoOnMucHVzaCh0LnRvU3RyaW5nKCkpLGdldENvbXBvbmVudDpsLGdldENvbmZpZ3M6YyxyYXdQYXJhbTplLHBhcmFtOmkucGFyYW1ldGVyV2l0aE1ldGFCeUlkZW50aXR5KG0sZSksa2V5OmAke2UuZ2V0KCJpbiIpfS4ke2UuZ2V0KCJuYW1lIil9YCxvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlLG9uQ2hhbmdlQ29uc3VtZXM6dGhpcy5vbkNoYW5nZUNvbnN1bWVzV3JhcHBlcixzcGVjU2VsZWN0b3JzOmksc3BlY0FjdGlvbnM6cCxvYXMzQWN0aW9uczp1LG9hczNTZWxlY3RvcnM6ZCxwYXRoTWV0aG9kOm0saXNFeGVjdXRlOl99KSkpKSkpOk8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stZGVzY3JpcHRpb24td3JhcHBlciJ9LE8oKS5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJObyBwYXJhbWV0ZXJzIikpKTpudWxsLHRoaXMuc3RhdGUuY2FsbGJhY2tWaXNpYmxlP08oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImNhbGxiYWNrcy1jb250YWluZXIgb3BibG9jay1kZXNjcmlwdGlvbi13cmFwcGVyIn0sTygpLmNyZWF0ZUVsZW1lbnQoUyx7Y2FsbGJhY2tzOigwLGsuTWFwKShoLmdldCgiY2FsbGJhY2tzIikpLHNwZWNQYXRoOnMuc2xpY2UoMCwtMSkucHVzaCgiY2FsbGJhY2tzIil9KSk6bnVsbCx2JiZiJiZ0aGlzLnN0YXRlLnBhcmFtZXRlcnNWaXNpYmxlJiZPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJvcGJsb2NrLXNlY3Rpb24gb3BibG9jay1zZWN0aW9uLXJlcXVlc3QtYm9keSJ9LE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stc2VjdGlvbi1oZWFkZXIifSxPKCkuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6YG9wYmxvY2stdGl0bGUgcGFyYW1ldGVyX19uYW1lICR7Yi5nZXQoInJlcXVpcmVkIikmJiJyZXF1aXJlZCJ9YH0sIlJlcXVlc3QgYm9keSIpLE8oKS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2lkOnd9LE8oKS5jcmVhdGVFbGVtZW50KGYse3ZhbHVlOmQucmVxdWVzdENvbnRlbnRUeXBlKC4uLm0pLGNvbnRlbnRUeXBlczpiLmdldCgiY29udGVudCIsKDAsay5MaXN0KSgpKS5rZXlTZXEoKSxvbkNoYW5nZTplPT57dGhpcy5vbkNoYW5nZU1lZGlhVHlwZSh7dmFsdWU6ZSxwYXRoTWV0aG9kOm19KX0sY2xhc3NOYW1lOiJib2R5LXBhcmFtLWNvbnRlbnQtdHlwZSIsYXJpYUxhYmVsOiJSZXF1ZXN0IGNvbnRlbnQgdHlwZSIsY29udHJvbElkOnd9KSkpLE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Im9wYmxvY2stZGVzY3JpcHRpb24td3JhcHBlciJ9LE8oKS5jcmVhdGVFbGVtZW50KEUse3NldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnOmU9PnUuc2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWcoe3ZhbHVlOmUscGF0aE1ldGhvZDptfSksdXNlckhhc0VkaXRlZEJvZHk6ZC5oYXNVc2VyRWRpdGVkQm9keSguLi5tKSxzcGVjUGF0aDpzLnNsaWNlKDAsLTEpLnB1c2goInJlcXVlc3RCb2R5IikscmVxdWVzdEJvZHk6YixyZXF1ZXN0Qm9keVZhbHVlOmQucmVxdWVzdEJvZHlWYWx1ZSguLi5tKSxyZXF1ZXN0Qm9keUluY2x1c2lvblNldHRpbmc6ZC5yZXF1ZXN0Qm9keUluY2x1c2lvblNldHRpbmcoLi4ubSkscmVxdWVzdEJvZHlFcnJvcnM6ZC5yZXF1ZXN0Qm9keUVycm9ycyguLi5tKSxpc0V4ZWN1dGU6XyxnZXRDb25maWdzOmMsYWN0aXZlRXhhbXBsZXNLZXk6ZC5hY3RpdmVFeGFtcGxlc01lbWJlciguLi5tLCJyZXF1ZXN0Qm9keSIsInJlcXVlc3RCb2R5IiksdXBkYXRlQWN0aXZlRXhhbXBsZXNLZXk6ZT0+e3RoaXMucHJvcHMub2FzM0FjdGlvbnMuc2V0QWN0aXZlRXhhbXBsZXNNZW1iZXIoe25hbWU6ZSxwYXRoTWV0aG9kOnRoaXMucHJvcHMucGF0aE1ldGhvZCxjb250ZXh0VHlwZToicmVxdWVzdEJvZHkiLGNvbnRleHROYW1lOiJyZXF1ZXN0Qm9keSJ9KX0sb25DaGFuZ2U6KGUsdCk9PntpZih0KXtjb25zdCByPWQucmVxdWVzdEJvZHlWYWx1ZSguLi5tKSxhPWsuTWFwLmlzTWFwKHIpP3I6KDAsay5NYXApKCk7cmV0dXJuIHUuc2V0UmVxdWVzdEJvZHlWYWx1ZSh7cGF0aE1ldGhvZDptLHZhbHVlOmEuc2V0SW4odCxlKX0pfXUuc2V0UmVxdWVzdEJvZHlWYWx1ZSh7dmFsdWU6ZSxwYXRoTWV0aG9kOm19KX0sb25DaGFuZ2VJbmNsdWRlRW1wdHk6KGUsdCk9Pnt1LnNldFJlcXVlc3RCb2R5SW5jbHVzaW9uKHtwYXRoTWV0aG9kOm0sdmFsdWU6dCxuYW1lOmV9KX0sY29udGVudFR5cGU6ZC5yZXF1ZXN0Q29udGVudFR5cGUoLi4ubSl9KSkpKX19Y29uc3QgcGFyYW1ldGVyX2V4dGVuc2lvbj0oe3hLZXk6ZSx4VmFsOnR9KT0+TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicGFyYW1ldGVyX19leHRlbnNpb24ifSxlLCI6ICIsU3RyaW5nKHQpKSxhbj17b25DaGFuZ2U6KCk9Pnt9LGlzSW5jbHVkZWRPcHRpb25zOnt9fTtjbGFzcyBQYXJhbWV0ZXJJbmNsdWRlRW1wdHkgZXh0ZW5kcyB4LkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPWFuO2NvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7aXNJbmNsdWRlZE9wdGlvbnM6ZSxvbkNoYW5nZTp0fT10aGlzLnByb3BzLHtzaG91bGREaXNwYXRjaEluaXQ6cixkZWZhdWx0VmFsdWU6YX09ZTtyJiZ0KGEpfW9uQ2hlY2tib3hDaGFuZ2U9ZT0+e2NvbnN0e29uQ2hhbmdlOnR9PXRoaXMucHJvcHM7dChlLnRhcmdldC5jaGVja2VkKX07cmVuZGVyKCl7bGV0e2lzSW5jbHVkZWQ6ZSxpc0Rpc2FibGVkOnR9PXRoaXMucHJvcHM7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjoiaW5jbHVkZV9lbXB0eV92YWx1ZSIsY2xhc3NOYW1lOnB0KCkoInBhcmFtZXRlcl9fZW1wdHlfdmFsdWVfdG9nZ2xlIix7ZGlzYWJsZWQ6dH0pfSxPKCkuY3JlYXRlRWxlbWVudCgiaW5wdXQiLHtpZDoiaW5jbHVkZV9lbXB0eV92YWx1ZSIsdHlwZToiY2hlY2tib3giLGRpc2FibGVkOnQsY2hlY2tlZDohdCYmZSxvbkNoYW5nZTp0aGlzLm9uQ2hlY2tib3hDaGFuZ2V9KSwiU2VuZCBlbXB0eSB2YWx1ZSIpKX19Y2xhc3MgUGFyYW1ldGVyUm93IGV4dGVuZHMgeC5Db21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLHRoaXMuc2V0RGVmYXVsdFZhbHVlKCl9VU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoZSl7bGV0IHQse3NwZWNTZWxlY3RvcnM6cixwYXRoTWV0aG9kOmEscmF3UGFyYW06bn09ZSxzPXIuaXNPQVMzKCksbz1yLnBhcmFtZXRlcldpdGhNZXRhQnlJZGVudGl0eShhLG4pfHxuZXcgay5NYXA7aWYobz1vLmlzRW1wdHkoKT9uOm8scyl7bGV0e3NjaGVtYTplfT1nZXRQYXJhbWV0ZXJTY2hlbWEobyx7aXNPQVMzOnN9KTt0PWU/ZS5nZXQoImVudW0iKTp2b2lkIDB9ZWxzZSB0PW8/by5nZXQoImVudW0iKTp2b2lkIDA7bGV0IGwsYz1vP28uZ2V0KCJ2YWx1ZSIpOnZvaWQgMDt2b2lkIDAhPT1jP2w9YzpuLmdldCgicmVxdWlyZWQiKSYmdCYmdC5zaXplJiYobD10LmZpcnN0KCkpLHZvaWQgMCE9PWwmJmwhPT1jJiZ0aGlzLm9uQ2hhbmdlV3JhcHBlcihmdW5jdGlvbiBudW1iZXJUb1N0cmluZyhlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/ZS50b1N0cmluZygpOmV9KGwpKSx0aGlzLnNldERlZmF1bHRWYWx1ZSgpfW9uQ2hhbmdlV3JhcHBlcj0oZSx0PSExKT0+e2xldCByLHtvbkNoYW5nZTphLHJhd1BhcmFtOm59PXRoaXMucHJvcHM7cmV0dXJuIHI9IiI9PT1lfHxlJiYwPT09ZS5zaXplP251bGw6ZSxhKG4scix0KX07X29uRXhhbXBsZVNlbGVjdD1lPT57dGhpcy5wcm9wcy5vYXMzQWN0aW9ucy5zZXRBY3RpdmVFeGFtcGxlc01lbWJlcih7bmFtZTplLHBhdGhNZXRob2Q6dGhpcy5wcm9wcy5wYXRoTWV0aG9kLGNvbnRleHRUeXBlOiJwYXJhbWV0ZXJzIixjb250ZXh0TmFtZTp0aGlzLmdldFBhcmFtS2V5KCl9KX07b25DaGFuZ2VJbmNsdWRlRW1wdHk9ZT0+e2xldHtzcGVjQWN0aW9uczp0LHBhcmFtOnIscGF0aE1ldGhvZDphfT10aGlzLnByb3BzO2NvbnN0IG49ci5nZXQoIm5hbWUiKSxzPXIuZ2V0KCJpbiIpO3JldHVybiB0LnVwZGF0ZUVtcHR5UGFyYW1JbmNsdXNpb24oYSxuLHMsZSl9O3NldERlZmF1bHRWYWx1ZT0oKT0+e2xldHtzcGVjU2VsZWN0b3JzOmUscGF0aE1ldGhvZDp0LHJhd1BhcmFtOnIsb2FzM1NlbGVjdG9yczphLGZuOm59PXRoaXMucHJvcHM7Y29uc3Qgcz1lLnBhcmFtZXRlcldpdGhNZXRhQnlJZGVudGl0eSh0LHIpfHwoMCxrLk1hcCkoKTtsZXR7c2NoZW1hOm99PWdldFBhcmFtZXRlclNjaGVtYShzLHtpc09BUzM6ZS5pc09BUzMoKX0pO2NvbnN0IGw9cy5nZXQoImNvbnRlbnQiLCgwLGsuTWFwKSgpKS5rZXlTZXEoKS5maXJzdCgpLGM9bz9uLmdldFNhbXBsZVNjaGVtYShvLnRvSlMoKSxsLHtpbmNsdWRlV3JpdGVPbmx5OiEwfSk6bnVsbDtpZihzJiZ2b2lkIDA9PT1zLmdldCgidmFsdWUiKSYmImJvZHkiIT09cy5nZXQoImluIikpe2xldCByO2lmKGUuaXNTd2FnZ2VyMigpKXI9dm9pZCAwIT09cy5nZXQoIngtZXhhbXBsZSIpP3MuZ2V0KCJ4LWV4YW1wbGUiKTp2b2lkIDAhPT1zLmdldEluKFsic2NoZW1hIiwiZXhhbXBsZSJdKT9zLmdldEluKFsic2NoZW1hIiwiZXhhbXBsZSJdKTpvJiZvLmdldEluKFsiZGVmYXVsdCJdKTtlbHNlIGlmKGUuaXNPQVMzKCkpe289dGhpcy5jb21wb3NlSnNvblNjaGVtYShvKTtjb25zdCBlPWEuYWN0aXZlRXhhbXBsZXNNZW1iZXIoLi4udCwicGFyYW1ldGVycyIsdGhpcy5nZXRQYXJhbUtleSgpKTtyPXZvaWQgMCE9PXMuZ2V0SW4oWyJleGFtcGxlcyIsZSwidmFsdWUiXSk/cy5nZXRJbihbImV4YW1wbGVzIixlLCJ2YWx1ZSJdKTp2b2lkIDAhPT1zLmdldEluKFsiY29udGVudCIsbCwiZXhhbXBsZSJdKT9zLmdldEluKFsiY29udGVudCIsbCwiZXhhbXBsZSJdKTp2b2lkIDAhPT1zLmdldCgiZXhhbXBsZSIpP3MuZ2V0KCJleGFtcGxlIik6dm9pZCAwIT09KG8mJm8uZ2V0KCJleGFtcGxlIikpP28mJm8uZ2V0KCJleGFtcGxlIik6dm9pZCAwIT09KG8mJm8uZ2V0KCJkZWZhdWx0IikpP28mJm8uZ2V0KCJkZWZhdWx0Iik6cy5nZXQoImRlZmF1bHQiKX12b2lkIDA9PT1yfHxrLkxpc3QuaXNMaXN0KHIpfHwocj1zdHJpbmdpZnkocikpO2NvbnN0IGk9bi5nZXRTY2hlbWFPYmplY3RUeXBlKG8pLHA9bi5nZXRTY2hlbWFPYmplY3RUeXBlKG8/LmdldCgiaXRlbXMiKSk7dm9pZCAwIT09cj90aGlzLm9uQ2hhbmdlV3JhcHBlcihyKToib2JqZWN0Ij09PWkmJmMmJiFzLmdldCgiZXhhbXBsZXMiKT90aGlzLm9uQ2hhbmdlV3JhcHBlcihrLkxpc3QuaXNMaXN0KGMpP2M6c3RyaW5naWZ5KGMpKToiYXJyYXkiPT09aSYmIm9iamVjdCI9PT1wJiZjJiYhcy5nZXQoImV4YW1wbGVzIikmJnRoaXMub25DaGFuZ2VXcmFwcGVyKGsuTGlzdC5pc0xpc3QoYyk/YzooMCxrLkxpc3QpKEpTT04ucGFyc2UoYykpKX19O2dldFBhcmFtS2V5KCl7Y29uc3R7cGFyYW06ZX09dGhpcy5wcm9wcztyZXR1cm4gZT9gJHtlLmdldCgibmFtZSIpfS0ke2UuZ2V0KCJpbiIpfWA6bnVsbH1jb21wb3NlSnNvblNjaGVtYShlKXtjb25zdHtmbjp0fT10aGlzLnByb3BzLHI9ZS5nZXQoIm9uZU9mIik/LmdldCgwKT8udG9KUygpLGE9ZS5nZXQoImFueU9mIik/LmdldCgwKT8udG9KUygpO3JldHVybigwLGsuZnJvbUpTKSh0Lm1lcmdlSnNvblNjaGVtYShlLnRvSlMoKSxyPz9hPz97fSkpfXJlbmRlcigpe2xldHtwYXJhbTplLHJhd1BhcmFtOnQsZ2V0Q29tcG9uZW50OnIsZ2V0Q29uZmlnczphLGlzRXhlY3V0ZTpuLGZuOnMsb25DaGFuZ2VDb25zdW1lczpvLHNwZWNTZWxlY3RvcnM6bCxwYXRoTWV0aG9kOmMsc3BlY1BhdGg6aSxvYXMzU2VsZWN0b3JzOnB9PXRoaXMucHJvcHMsbT1sLmlzT0FTMygpO2NvbnN0e3Nob3dFeHRlbnNpb25zOnUsc2hvd0NvbW1vbkV4dGVuc2lvbnM6ZH09YSgpO2lmKGV8fChlPXQpLCF0KXJldHVybiBudWxsO2NvbnN0IGg9cigiSnNvblNjaGVtYUZvcm0iKSxnPXIoIlBhcmFtQm9keSIpO2xldCB5PWUuZ2V0KCJpbiIpLGY9ImJvZHkiIT09eT9udWxsOk8oKS5jcmVhdGVFbGVtZW50KGcse2dldENvbXBvbmVudDpyLGdldENvbmZpZ3M6YSxmbjpzLHBhcmFtOmUsY29uc3VtZXM6bC5jb25zdW1lc09wdGlvbnNGb3IoYyksY29uc3VtZXNWYWx1ZTpsLmNvbnRlbnRUeXBlVmFsdWVzKGMpLmdldCgicmVxdWVzdENvbnRlbnRUeXBlIiksb25DaGFuZ2U6dGhpcy5vbkNoYW5nZVdyYXBwZXIsb25DaGFuZ2VDb25zdW1lczpvLGlzRXhlY3V0ZTpuLHNwZWNTZWxlY3RvcnM6bCxwYXRoTWV0aG9kOmN9KTtjb25zdCBTPXIoIm1vZGVsRXhhbXBsZSIpLEU9cigiTWFya2Rvd24iLCEwKSxfPXIoIlBhcmFtZXRlckV4dCIpLHY9cigiUGFyYW1ldGVySW5jbHVkZUVtcHR5Iiksdz1yKCJFeGFtcGxlc1NlbGVjdFZhbHVlUmV0YWluZXIiKSxiPXIoIkV4YW1wbGUiKTtsZXR7c2NoZW1hOkN9PWdldFBhcmFtZXRlclNjaGVtYShlLHtpc09BUzM6bX0pLHg9bC5wYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkoYyx0KXx8KDAsay5NYXApKCk7bSYmKEM9dGhpcy5jb21wb3NlSnNvblNjaGVtYShDKSk7bGV0IE49Qz9DLmdldCgiZm9ybWF0Iik6bnVsbCxBPSJmb3JtRGF0YSI9PT15LEk9IkZvcm1EYXRhImluIEssaj1lLmdldCgicmVxdWlyZWQiKTtjb25zdCBxPXMuZ2V0U2NoZW1hT2JqZWN0VHlwZShDKSxQPXMuZ2V0U2NoZW1hT2JqZWN0VHlwZShDPy5nZXQoIml0ZW1zIikpLE09cy5nZXRTY2hlbWFPYmplY3RUeXBlTGFiZWwoQyksVD0hZiYmIm9iamVjdCI9PT1xLFI9IWYmJiJvYmplY3QiPT09UDtsZXQgSiwkLFYsTCxEPXg/eC5nZXQoInZhbHVlIik6IiIsVT1kP2dldENvbW1vbkV4dGVuc2lvbnMoQyk6bnVsbCx6PXU/Z2V0RXh0ZW5zaW9ucyhlKTpudWxsLEI9ITE7dm9pZCAwIT09ZSYmQyYmKEo9Qy5nZXQoIml0ZW1zIikpLHZvaWQgMCE9PUo/KCQ9Si5nZXQoImVudW0iKSxWPUouZ2V0KCJkZWZhdWx0IikpOkMmJigkPUMuZ2V0KCJlbnVtIikpLCQmJiQuc2l6ZSYmJC5zaXplPjAmJihCPSEwKSx2b2lkIDAhPT1lJiYoQyYmKFY9Qy5nZXQoImRlZmF1bHQiKSksdm9pZCAwPT09ViYmKFY9ZS5nZXQoImRlZmF1bHQiKSksTD1lLmdldCgiZXhhbXBsZSIpLHZvaWQgMD09PUwmJihMPWUuZ2V0KCJ4LWV4YW1wbGUiKSkpO2NvbnN0IEY9Zj9udWxsOk8oKS5jcmVhdGVFbGVtZW50KGgse2ZuOnMsZ2V0Q29tcG9uZW50OnIsdmFsdWU6RCxyZXF1aXJlZDpqLGRpc2FibGVkOiFuLGRlc2NyaXB0aW9uOmUuZ2V0KCJuYW1lIiksb25DaGFuZ2U6dGhpcy5vbkNoYW5nZVdyYXBwZXIsZXJyb3JzOnguZ2V0KCJlcnJvcnMiKSxzY2hlbWE6Q30pO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgidHIiLHsiZGF0YS1wYXJhbS1uYW1lIjplLmdldCgibmFtZSIpLCJkYXRhLXBhcmFtLWluIjplLmdldCgiaW4iKX0sTygpLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJwYXJhbWV0ZXJzLWNvbF9uYW1lIn0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpqPyJwYXJhbWV0ZXJfX25hbWUgcmVxdWlyZWQiOiJwYXJhbWV0ZXJfX25hbWUifSxlLmdldCgibmFtZSIpLGo/TygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsIsKgKiIpOm51bGwpLE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InBhcmFtZXRlcl9fdHlwZSJ9LE0sTiYmTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6InByb3AtZm9ybWF0In0sIigkIixOLCIpIikpLE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InBhcmFtZXRlcl9fZGVwcmVjYXRlZCJ9LG0mJmUuZ2V0KCJkZXByZWNhdGVkIik/ImRlcHJlY2F0ZWQiOm51bGwpLE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InBhcmFtZXRlcl9faW4ifSwiKCIsZS5nZXQoImluIiksIikiKSksTygpLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJwYXJhbWV0ZXJzLWNvbF9kZXNjcmlwdGlvbiJ9LGUuZ2V0KCJkZXNjcmlwdGlvbiIpP08oKS5jcmVhdGVFbGVtZW50KEUse3NvdXJjZTplLmdldCgiZGVzY3JpcHRpb24iKX0pOm51bGwsIWYmJm58fCFCP251bGw6TygpLmNyZWF0ZUVsZW1lbnQoRSx7Y2xhc3NOYW1lOiJwYXJhbWV0ZXJfX2VudW0iLHNvdXJjZToiPGk+QXZhaWxhYmxlIHZhbHVlczwvaT4gOiAiKyQubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKS50b0FycmF5KCkubWFwKFN0cmluZykuam9pbigiLCAiKX0pLCFmJiZufHx2b2lkIDA9PT1WP251bGw6TygpLmNyZWF0ZUVsZW1lbnQoRSx7Y2xhc3NOYW1lOiJwYXJhbWV0ZXJfX2RlZmF1bHQiLHNvdXJjZToiPGk+RGVmYXVsdCB2YWx1ZTwvaT4gOiAiK1Z9KSwhZiYmbnx8dm9pZCAwPT09TD9udWxsOk8oKS5jcmVhdGVFbGVtZW50KEUse3NvdXJjZToiPGk+RXhhbXBsZTwvaT4gOiAiK0x9KSxBJiYhSSYmTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCwiRXJyb3I6IHlvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEZvcm1EYXRhIiksbSYmZS5nZXQoImV4YW1wbGVzIik/TygpLmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24iLHtjbGFzc05hbWU6InBhcmFtZXRlci1jb250cm9scyJ9LE8oKS5jcmVhdGVFbGVtZW50KHcse2V4YW1wbGVzOmUuZ2V0KCJleGFtcGxlcyIpLG9uU2VsZWN0OnRoaXMuX29uRXhhbXBsZVNlbGVjdCx1cGRhdGVWYWx1ZTp0aGlzLm9uQ2hhbmdlV3JhcHBlcixnZXRDb21wb25lbnQ6cixkZWZhdWx0VG9GaXJzdEV4YW1wbGU6ITAsY3VycmVudEtleTpwLmFjdGl2ZUV4YW1wbGVzTWVtYmVyKC4uLmMsInBhcmFtZXRlcnMiLHRoaXMuZ2V0UGFyYW1LZXkoKSksY3VycmVudFVzZXJJbnB1dFZhbHVlOkR9KSk6bnVsbCxUfHxSP08oKS5jcmVhdGVFbGVtZW50KFMse2dldENvbXBvbmVudDpyLHNwZWNQYXRoOmkucHVzaCgic2NoZW1hIiksZ2V0Q29uZmlnczphLGlzRXhlY3V0ZTpuLHNwZWNTZWxlY3RvcnM6bCxzY2hlbWE6QyxleGFtcGxlOkZ9KTpGLGYmJkM/TygpLmNyZWF0ZUVsZW1lbnQoUyx7Z2V0Q29tcG9uZW50OnIsc3BlY1BhdGg6aS5wdXNoKCJzY2hlbWEiKSxnZXRDb25maWdzOmEsaXNFeGVjdXRlOm4sc3BlY1NlbGVjdG9yczpsLHNjaGVtYTpDLGV4YW1wbGU6ZixpbmNsdWRlV3JpdGVPbmx5OiEwfSk6bnVsbCwhZiYmbiYmZS5nZXQoImFsbG93RW1wdHlWYWx1ZSIpP08oKS5jcmVhdGVFbGVtZW50KHYse29uQ2hhbmdlOnRoaXMub25DaGFuZ2VJbmNsdWRlRW1wdHksaXNJbmNsdWRlZDpsLnBhcmFtZXRlckluY2x1c2lvblNldHRpbmdGb3IoYyxlLmdldCgibmFtZSIpLGUuZ2V0KCJpbiIpKSxpc0Rpc2FibGVkOiFpc0VtcHR5VmFsdWUoRCl9KTpudWxsLG0mJmUuZ2V0KCJleGFtcGxlcyIpP08oKS5jcmVhdGVFbGVtZW50KGIse2V4YW1wbGU6ZS5nZXRJbihbImV4YW1wbGVzIixwLmFjdGl2ZUV4YW1wbGVzTWVtYmVyKC4uLmMsInBhcmFtZXRlcnMiLHRoaXMuZ2V0UGFyYW1LZXkoKSldKSxnZXRDb21wb25lbnQ6cixnZXRDb25maWdzOmF9KTpudWxsLGQmJlUuc2l6ZT9VLmVudHJ5U2VxKCkubWFwKCgoW2UsdF0pPT5PKCkuY3JlYXRlRWxlbWVudChfLHtrZXk6YCR7ZX0tJHt0fWAseEtleTplLHhWYWw6dH0pKSk6bnVsbCx1JiZ6LnNpemU/ei5lbnRyeVNlcSgpLm1hcCgoKFtlLHRdKT0+TygpLmNyZWF0ZUVsZW1lbnQoXyx7a2V5OmAke2V9LSR7dH1gLHhLZXk6ZSx4VmFsOnR9KSkpOm51bGwpKX19Y2xhc3MgRXhlY3V0ZSBleHRlbmRzIHguQ29tcG9uZW50e2hhbmRsZVZhbGlkYXRlUGFyYW1ldGVycz0oKT0+e2xldHtzcGVjU2VsZWN0b3JzOmUsc3BlY0FjdGlvbnM6dCxwYXRoOnIsbWV0aG9kOmF9PXRoaXMucHJvcHM7cmV0dXJuIHQudmFsaWRhdGVQYXJhbXMoW3IsYV0pLGUudmFsaWRhdGVCZWZvcmVFeGVjdXRlKFtyLGFdKX07aGFuZGxlVmFsaWRhdGVSZXF1ZXN0Qm9keT0oKT0+e2xldHtwYXRoOmUsbWV0aG9kOnQsc3BlY1NlbGVjdG9yczpyLG9hczNTZWxlY3RvcnM6YSxvYXMzQWN0aW9uczpufT10aGlzLnByb3BzLHM9e21pc3NpbmdCb2R5VmFsdWU6ITEsbWlzc2luZ1JlcXVpcmVkS2V5czpbXX07bi5jbGVhclJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcih7cGF0aDplLG1ldGhvZDp0fSk7bGV0IG89ci5nZXRPQVMzUmVxdWlyZWRSZXF1ZXN0Qm9keUNvbnRlbnRUeXBlKFtlLHRdKSxsPWEucmVxdWVzdEJvZHlWYWx1ZShlLHQpLGM9YS52YWxpZGF0ZUJlZm9yZUV4ZWN1dGUoW2UsdF0pLGk9YS5yZXF1ZXN0Q29udGVudFR5cGUoZSx0KTtpZighYylyZXR1cm4gcy5taXNzaW5nQm9keVZhbHVlPSEwLG4uc2V0UmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yKHtwYXRoOmUsbWV0aG9kOnQsdmFsaWRhdGlvbkVycm9yczpzfSksITE7aWYoIW8pcmV0dXJuITA7bGV0IHA9YS52YWxpZGF0ZVNoYWxsb3dSZXF1aXJlZCh7b2FzM1JlcXVpcmVkUmVxdWVzdEJvZHlDb250ZW50VHlwZTpvLG9hczNSZXF1ZXN0Q29udGVudFR5cGU6aSxvYXMzUmVxdWVzdEJvZHlWYWx1ZTpsfSk7cmV0dXJuIXB8fHAubGVuZ3RoPDF8fChwLmZvckVhY2goKGU9PntzLm1pc3NpbmdSZXF1aXJlZEtleXMucHVzaChlKX0pKSxuLnNldFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcih7cGF0aDplLG1ldGhvZDp0LHZhbGlkYXRpb25FcnJvcnM6c30pLCExKX07aGFuZGxlVmFsaWRhdGlvblJlc3VsdFBhc3M9KCk9PntsZXR7c3BlY0FjdGlvbnM6ZSxvcGVyYXRpb246dCxwYXRoOnIsbWV0aG9kOmF9PXRoaXMucHJvcHM7dGhpcy5wcm9wcy5vbkV4ZWN1dGUmJnRoaXMucHJvcHMub25FeGVjdXRlKCksZS5leGVjdXRlKHtvcGVyYXRpb246dCxwYXRoOnIsbWV0aG9kOmF9KX07aGFuZGxlVmFsaWRhdGlvblJlc3VsdEZhaWw9KCk9PntsZXR7c3BlY0FjdGlvbnM6ZSxwYXRoOnQsbWV0aG9kOnJ9PXRoaXMucHJvcHM7ZS5jbGVhclZhbGlkYXRlUGFyYW1zKFt0LHJdKSxzZXRUaW1lb3V0KCgoKT0+e2UudmFsaWRhdGVQYXJhbXMoW3Qscl0pfSksNDApfTtoYW5kbGVWYWxpZGF0aW9uUmVzdWx0PWU9PntlP3RoaXMuaGFuZGxlVmFsaWRhdGlvblJlc3VsdFBhc3MoKTp0aGlzLmhhbmRsZVZhbGlkYXRpb25SZXN1bHRGYWlsKCl9O29uQ2xpY2s9KCk9PntsZXQgZT10aGlzLmhhbmRsZVZhbGlkYXRlUGFyYW1ldGVycygpLHQ9dGhpcy5oYW5kbGVWYWxpZGF0ZVJlcXVlc3RCb2R5KCkscj1lJiZ0O3RoaXMuaGFuZGxlVmFsaWRhdGlvblJlc3VsdChyKX07b25DaGFuZ2VQcm9kdWNlc1dyYXBwZXI9ZT0+dGhpcy5wcm9wcy5zcGVjQWN0aW9ucy5jaGFuZ2VQcm9kdWNlc1ZhbHVlKFt0aGlzLnByb3BzLnBhdGgsdGhpcy5wcm9wcy5tZXRob2RdLGUpO3JlbmRlcigpe2NvbnN0e2Rpc2FibGVkOmV9PXRoaXMucHJvcHM7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtjbGFzc05hbWU6ImJ0biBleGVjdXRlIG9wYmxvY2stY29udHJvbF9fYnRuIixvbkNsaWNrOnRoaXMub25DbGljayxkaXNhYmxlZDplfSwiRXhlY3V0ZSIpfX1jbGFzcyBoZWFkZXJzX0hlYWRlcnMgZXh0ZW5kcyBPKCkuQ29tcG9uZW50e3JlbmRlcigpe2xldHtoZWFkZXJzOmUsZ2V0Q29tcG9uZW50OnR9PXRoaXMucHJvcHM7Y29uc3Qgcj10KCJQcm9wZXJ0eSIpLGE9dCgiTWFya2Rvd24iLCEwKTtyZXR1cm4gZSYmZS5zaXplP08oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImhlYWRlcnMtd3JhcHBlciJ9LE8oKS5jcmVhdGVFbGVtZW50KCJoNCIse2NsYXNzTmFtZToiaGVhZGVyc19fdGl0bGUifSwiSGVhZGVyczoiKSxPKCkuY3JlYXRlRWxlbWVudCgidGFibGUiLHtjbGFzc05hbWU6ImhlYWRlcnMifSxPKCkuY3JlYXRlRWxlbWVudCgidGhlYWQiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoInRyIix7Y2xhc3NOYW1lOiJoZWFkZXItcm93In0sTygpLmNyZWF0ZUVsZW1lbnQoInRoIix7Y2xhc3NOYW1lOiJoZWFkZXItY29sIn0sIk5hbWUiKSxPKCkuY3JlYXRlRWxlbWVudCgidGgiLHtjbGFzc05hbWU6ImhlYWRlci1jb2wifSwiRGVzY3JpcHRpb24iKSxPKCkuY3JlYXRlRWxlbWVudCgidGgiLHtjbGFzc05hbWU6ImhlYWRlci1jb2wifSwiVHlwZSIpKSksTygpLmNyZWF0ZUVsZW1lbnQoInRib2R5IixudWxsLGUuZW50cnlTZXEoKS5tYXAoKChbZSx0XSk9PntpZighQSgpLk1hcC5pc01hcCh0KSlyZXR1cm4gbnVsbDtjb25zdCBuPXQuZ2V0KCJkZXNjcmlwdGlvbiIpLHM9dC5nZXRJbihbInNjaGVtYSJdKT90LmdldEluKFsic2NoZW1hIiwidHlwZSJdKTp0LmdldEluKFsidHlwZSJdKSxvPXQuZ2V0SW4oWyJzY2hlbWEiLCJleGFtcGxlIl0pO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgidHIiLHtrZXk6ZX0sTygpLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJoZWFkZXItY29sIn0sZSksTygpLmNyZWF0ZUVsZW1lbnQoInRkIix7Y2xhc3NOYW1lOiJoZWFkZXItY29sIn0sbj9PKCkuY3JlYXRlRWxlbWVudChhLHtzb3VyY2U6bn0pOm51bGwpLE8oKS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZToiaGVhZGVyLWNvbCJ9LHMsIiAiLG8/TygpLmNyZWF0ZUVsZW1lbnQocix7cHJvcEtleToiRXhhbXBsZSIscHJvcFZhbDpvLHByb3BDbGFzczoiaGVhZGVyLWV4YW1wbGUifSk6bnVsbCkpfSkpLnRvQXJyYXkoKSkpKTpudWxsfX1jbGFzcyBFcnJvcnMgZXh0ZW5kcyBPKCkuQ29tcG9uZW50e3JlbmRlcigpe2xldHtlZGl0b3JBY3Rpb25zOmUsZXJyU2VsZWN0b3JzOnQsbGF5b3V0U2VsZWN0b3JzOnIsbGF5b3V0QWN0aW9uczphLGdldENvbXBvbmVudDpufT10aGlzLnByb3BzO2NvbnN0IHM9bigiQ29sbGFwc2UiKTtpZihlJiZlLmp1bXBUb0xpbmUpdmFyIG89ZS5qdW1wVG9MaW5lO2xldCBsPXQuYWxsRXJyb3JzKCkuZmlsdGVyKChlPT4idGhyb3duIj09PWUuZ2V0KCJ0eXBlIil8fCJlcnJvciI9PT1lLmdldCgibGV2ZWwiKSkpO2lmKCFsfHxsLmNvdW50KCk8MSlyZXR1cm4gbnVsbDtsZXQgYz1yLmlzU2hvd24oWyJlcnJvclBhbmUiXSwhMCksaT1sLnNvcnRCeSgoZT0+ZS5nZXQoImxpbmUiKSkpO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgicHJlIix7Y2xhc3NOYW1lOiJlcnJvcnMtd3JhcHBlciJ9LE8oKS5jcmVhdGVFbGVtZW50KCJoZ3JvdXAiLHtjbGFzc05hbWU6ImVycm9yIn0sTygpLmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJlcnJvcnNfX3RpdGxlIn0sIkVycm9ycyIpLE8oKS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtjbGFzc05hbWU6ImJ0biBlcnJvcnNfX2NsZWFyLWJ0biIsb25DbGljazooKT0+YS5zaG93KFsiZXJyb3JQYW5lIl0sIWMpfSxjPyJIaWRlIjoiU2hvdyIpKSxPKCkuY3JlYXRlRWxlbWVudChzLHtpc09wZW5lZDpjLGFuaW1hdGVkOiEwfSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvcnMifSxpLm1hcCgoKGUsdCk9PntsZXQgcj1lLmdldCgidHlwZSIpO3JldHVybiJ0aHJvd24iPT09cnx8ImF1dGgiPT09cj9PKCkuY3JlYXRlRWxlbWVudChUaHJvd25FcnJvckl0ZW0se2tleTp0LGVycm9yOmUuZ2V0KCJlcnJvciIpfHxlLGp1bXBUb0xpbmU6b30pOiJzcGVjIj09PXI/TygpLmNyZWF0ZUVsZW1lbnQoU3BlY0Vycm9ySXRlbSx7a2V5OnQsZXJyb3I6ZSxqdW1wVG9MaW5lOm99KTp2b2lkIDB9KSkpKSl9fWNvbnN0IFRocm93bkVycm9ySXRlbT0oe2Vycm9yOmUsanVtcFRvTGluZTp0fSk9PntpZighZSlyZXR1cm4gbnVsbDtsZXQgcj1lLmdldCgibGluZSIpO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvci13cmFwcGVyIn0sZT9PKCkuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJoNCIsbnVsbCxlLmdldCgic291cmNlIikmJmUuZ2V0KCJsZXZlbCIpP3RvVGl0bGVDYXNlKGUuZ2V0KCJzb3VyY2UiKSkrIiAiK2UuZ2V0KCJsZXZlbCIpOiIiLGUuZ2V0KCJwYXRoIik/TygpLmNyZWF0ZUVsZW1lbnQoInNtYWxsIixudWxsLCIgYXQgIixlLmdldCgicGF0aCIpKTpudWxsKSxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToibWVzc2FnZSB0aHJvd24ifSxlLmdldCgibWVzc2FnZSIpKSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvci1saW5lIn0sciYmdD9PKCkuY3JlYXRlRWxlbWVudCgiYSIse29uQ2xpY2s6dC5iaW5kKG51bGwscil9LCJKdW1wIHRvIGxpbmUgIixyKTpudWxsKSk6bnVsbCl9LFNwZWNFcnJvckl0ZW09KHtlcnJvcjplLGp1bXBUb0xpbmU6dD1udWxsfSk9PntsZXQgcj1udWxsO3JldHVybiBlLmdldCgicGF0aCIpP3I9ay5MaXN0LmlzTGlzdChlLmdldCgicGF0aCIpKT9PKCkuY3JlYXRlRWxlbWVudCgic21hbGwiLG51bGwsImF0ICIsZS5nZXQoInBhdGgiKS5qb2luKCIuIikpOk8oKS5jcmVhdGVFbGVtZW50KCJzbWFsbCIsbnVsbCwiYXQgIixlLmdldCgicGF0aCIpKTplLmdldCgibGluZSIpJiYhdCYmKHI9TygpLmNyZWF0ZUVsZW1lbnQoInNtYWxsIixudWxsLCJvbiBsaW5lICIsZS5nZXQoImxpbmUiKSkpLE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImVycm9yLXdyYXBwZXIifSxlP08oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLHRvVGl0bGVDYXNlKGUuZ2V0KCJzb3VyY2UiKSkrIiAiK2UuZ2V0KCJsZXZlbCIpLCLCoCIsciksTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1lc3NhZ2UifSxlLmdldCgibWVzc2FnZSIpKSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvci1saW5lIn0sdD9PKCkuY3JlYXRlRWxlbWVudCgiYSIse29uQ2xpY2s6dC5iaW5kKG51bGwsZS5nZXQoImxpbmUiKSl9LCJKdW1wIHRvIGxpbmUgIixlLmdldCgibGluZSIpKTpudWxsKSk6bnVsbCl9O2Z1bmN0aW9uIHRvVGl0bGVDYXNlKGUpe3JldHVybihlfHwiIikuc3BsaXQoIiAiKS5tYXAoKGU9PmVbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpKSkuam9pbigiICIpfWNvbnN0IGNvbnRlbnRfdHlwZV9ub29wPSgpPT57fTtjbGFzcyBDb250ZW50VHlwZSBleHRlbmRzIE8oKS5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17b25DaGFuZ2U6Y29udGVudF90eXBlX25vb3AsdmFsdWU6bnVsbCxjb250ZW50VHlwZXM6KDAsay5mcm9tSlMpKFsiYXBwbGljYXRpb24vanNvbiJdKX07Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLnByb3BzLmNvbnRlbnRUeXBlcyYmdGhpcy5wcm9wcy5vbkNoYW5nZSh0aGlzLnByb3BzLmNvbnRlbnRUeXBlcy5maXJzdCgpKX1VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhlKXtlLmNvbnRlbnRUeXBlcyYmZS5jb250ZW50VHlwZXMuc2l6ZSYmKGUuY29udGVudFR5cGVzLmluY2x1ZGVzKGUudmFsdWUpfHxlLm9uQ2hhbmdlKGUuY29udGVudFR5cGVzLmZpcnN0KCkpKX1vbkNoYW5nZVdyYXBwZXI9ZT0+dGhpcy5wcm9wcy5vbkNoYW5nZShlLnRhcmdldC52YWx1ZSk7cmVuZGVyKCl7bGV0e2FyaWFDb250cm9sczplLGFyaWFMYWJlbDp0LGNsYXNzTmFtZTpyLGNvbnRlbnRUeXBlczphLGNvbnRyb2xJZDpuLHZhbHVlOnN9PXRoaXMucHJvcHM7cmV0dXJuIGEmJmEuc2l6ZT9PKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJjb250ZW50LXR5cGUtd3JhcHBlciAiKyhyfHwiIil9LE8oKS5jcmVhdGVFbGVtZW50KCJzZWxlY3QiLHsiYXJpYS1jb250cm9scyI6ZSwiYXJpYS1sYWJlbCI6dCxjbGFzc05hbWU6ImNvbnRlbnQtdHlwZSIsaWQ6bixvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlV3JhcHBlcix2YWx1ZTpzfHwiIn0sYS5tYXAoKGU9Pk8oKS5jcmVhdGVFbGVtZW50KCJvcHRpb24iLHtrZXk6ZSx2YWx1ZTplfSxlKSkpLnRvQXJyYXkoKSkpOm51bGx9fWZ1bmN0aW9uIHhjbGFzcyguLi5lKXtyZXR1cm4gZS5maWx0ZXIoKGU9PiEhZSkpLmpvaW4oIiAiKS50cmltKCl9Y2xhc3MgQ29udGFpbmVyIGV4dGVuZHMgTygpLkNvbXBvbmVudHtyZW5kZXIoKXtsZXR7ZnVsbHNjcmVlbjplLGZ1bGw6dCwuLi5yfT10aGlzLnByb3BzO2lmKGUpcmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIixyKTtsZXQgYT0ic3dhZ2dlci1jb250YWluZXIiKyh0PyItZnVsbCI6IiIpO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIsUWUoKSh7fSxyLHtjbGFzc05hbWU6eGNsYXNzKHIuY2xhc3NOYW1lLGEpfSkpfX1jb25zdCBubj17bW9iaWxlOiIiLHRhYmxldDoiLXRhYmxldCIsZGVza3RvcDoiLWRlc2t0b3AiLGxhcmdlOiItaGQifTtjbGFzcyBDb2wgZXh0ZW5kcyBPKCkuQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e2hpZGU6ZSxrZWVwQ29udGVudHM6dCxtb2JpbGU6cix0YWJsZXQ6YSxkZXNrdG9wOm4sbGFyZ2U6cywuLi5vfT10aGlzLnByb3BzO2lmKGUmJiF0KXJldHVybiBPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCk7bGV0IGw9W107Zm9yKGxldCBlIGluIG5uKXtpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG5uLGUpKWNvbnRpbnVlO2xldCB0PW5uW2VdO2lmKGUgaW4gdGhpcy5wcm9wcyl7bGV0IHI9dGhpcy5wcm9wc1tlXTtpZihyPDEpe2wucHVzaCgibm9uZSIrdCk7Y29udGludWV9bC5wdXNoKCJibG9jayIrdCksbC5wdXNoKCJjb2wtIityK3QpfX1lJiZsLnB1c2goImhpZGRlbiIpO2xldCBjPXhjbGFzcyhvLmNsYXNzTmFtZSwuLi5sKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24iLFFlKCkoe30sbyx7Y2xhc3NOYW1lOmN9KSl9fWNsYXNzIFJvdyBleHRlbmRzIE8oKS5Db21wb25lbnR7cmVuZGVyKCl7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLFFlKCkoe30sdGhpcy5wcm9wcyx7Y2xhc3NOYW1lOnhjbGFzcyh0aGlzLnByb3BzLmNsYXNzTmFtZSwid3JhcHBlciIpfSkpfX1jbGFzcyBCdXR0b24gZXh0ZW5kcyBPKCkuQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9e2NsYXNzTmFtZToiIn07cmVuZGVyKCl7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJidXR0b24iLFFlKCkoe30sdGhpcy5wcm9wcyx7Y2xhc3NOYW1lOnhjbGFzcyh0aGlzLnByb3BzLmNsYXNzTmFtZSwiYnV0dG9uIil9KSl9fWNvbnN0IFRleHRBcmVhPWU9Pk8oKS5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIsZSksSW5wdXQ9ZT0+TygpLmNyZWF0ZUVsZW1lbnQoImlucHV0IixlKTtjbGFzcyBTZWxlY3QgZXh0ZW5kcyBPKCkuQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9e211bHRpcGxlOiExLGFsbG93RW1wdHlWYWx1ZTohMH07Y29uc3RydWN0b3IoZSx0KXtsZXQgcjtzdXBlcihlLHQpLHI9ZS52YWx1ZT9lLnZhbHVlOmUubXVsdGlwbGU/WyIiXToiIix0aGlzLnN0YXRlPXt2YWx1ZTpyfX1vbkNoYW5nZT1lPT57bGV0IHQse29uQ2hhbmdlOnIsbXVsdGlwbGU6YX09dGhpcy5wcm9wcyxuPVtdLnNsaWNlLmNhbGwoZS50YXJnZXQub3B0aW9ucyk7dD1hP24uZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZS5zZWxlY3RlZH0pKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnZhbHVlfSkpOmUudGFyZ2V0LnZhbHVlLHRoaXMuc2V0U3RhdGUoe3ZhbHVlOnR9KSxyJiZyKHQpfTtVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhlKXtlLnZhbHVlIT09dGhpcy5wcm9wcy52YWx1ZSYmdGhpcy5zZXRTdGF0ZSh7dmFsdWU6ZS52YWx1ZX0pfXJlbmRlcigpe2xldHthbGxvd2VkVmFsdWVzOmUsbXVsdGlwbGU6dCxhbGxvd0VtcHR5VmFsdWU6cixkaXNhYmxlZDphfT10aGlzLnByb3BzLG49dGhpcy5zdGF0ZS52YWx1ZT8udG9KUz8uKCl8fHRoaXMuc3RhdGUudmFsdWU7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJzZWxlY3QiLHtjbGFzc05hbWU6dGhpcy5wcm9wcy5jbGFzc05hbWUsbXVsdGlwbGU6dCx2YWx1ZTpuLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2UsZGlzYWJsZWQ6YX0scj9PKCkuY3JlYXRlRWxlbWVudCgib3B0aW9uIix7dmFsdWU6IiJ9LCItLSIpOm51bGwsZS5tYXAoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJvcHRpb24iLHtrZXk6dCx2YWx1ZTpTdHJpbmcoZSl9LFN0cmluZyhlKSl9KSkpfX1jbGFzcyBMaW5rIGV4dGVuZHMgTygpLkNvbXBvbmVudHtyZW5kZXIoKXtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImEiLFFlKCkoe30sdGhpcy5wcm9wcyx7cmVsOiJub29wZW5lciBub3JlZmVycmVyIixjbGFzc05hbWU6eGNsYXNzKHRoaXMucHJvcHMuY2xhc3NOYW1lLCJsaW5rIil9KSl9fWNvbnN0IE5vTWFyZ2luPSh7Y2hpbGRyZW46ZX0pPT5PKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJuby1tYXJnaW4ifSwiICIsZSwiICIpO2NsYXNzIENvbGxhcHNlIGV4dGVuZHMgTygpLkNvbXBvbmVudHtzdGF0aWMgZGVmYXVsdFByb3BzPXtpc09wZW5lZDohMSxhbmltYXRlZDohMX07cmVuZGVyTm90QW5pbWF0ZWQoKXtyZXR1cm4gdGhpcy5wcm9wcy5pc09wZW5lZD9PKCkuY3JlYXRlRWxlbWVudChOb01hcmdpbixudWxsLHRoaXMucHJvcHMuY2hpbGRyZW4pOk8oKS5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIsbnVsbCl9cmVuZGVyKCl7bGV0e2FuaW1hdGVkOmUsaXNPcGVuZWQ6dCxjaGlsZHJlbjpyfT10aGlzLnByb3BzO3JldHVybiBlPyhyPXQ/cjpudWxsLE8oKS5jcmVhdGVFbGVtZW50KE5vTWFyZ2luLG51bGwscikpOnRoaXMucmVuZGVyTm90QW5pbWF0ZWQoKX19Y2xhc3MgT3ZlcnZpZXcgZXh0ZW5kcyBPKCkuQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMuc2V0VGFnU2hvd249dGhpcy5fc2V0VGFnU2hvd24uYmluZCh0aGlzKX1fc2V0VGFnU2hvd24oZSx0KXt0aGlzLnByb3BzLmxheW91dEFjdGlvbnMuc2hvdyhlLHQpfXNob3dPcChlLHQpe2xldHtsYXlvdXRBY3Rpb25zOnJ9PXRoaXMucHJvcHM7ci5zaG93KGUsdCl9cmVuZGVyKCl7bGV0e3NwZWNTZWxlY3RvcnM6ZSxsYXlvdXRTZWxlY3RvcnM6dCxsYXlvdXRBY3Rpb25zOnIsZ2V0Q29tcG9uZW50OmF9PXRoaXMucHJvcHMsbj1lLnRhZ2dlZE9wZXJhdGlvbnMoKTtjb25zdCBzPWEoIkNvbGxhcHNlIik7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJvdmVydmlldy10aXRsZSJ9LCJPdmVydmlldyIpLG4ubWFwKCgoZSxhKT0+e2xldCBuPWUuZ2V0KCJvcGVyYXRpb25zIiksbz1bIm92ZXJ2aWV3LXRhZ3MiLGFdLGw9dC5pc1Nob3duKG8sITApO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5OiJvdmVydmlldy0iK2F9LE8oKS5jcmVhdGVFbGVtZW50KCJoNCIse29uQ2xpY2s6KCk9PnIuc2hvdyhvLCFsKSxjbGFzc05hbWU6Imxpbmsgb3ZlcnZpZXctdGFnIn0sIiAiLGw/Ii0iOiIrIixhKSxPKCkuY3JlYXRlRWxlbWVudChzLHtpc09wZW5lZDpsLGFuaW1hdGVkOiEwfSxuLm1hcCgoZT0+e2xldHtwYXRoOmEsbWV0aG9kOm4saWQ6c309ZS50b09iamVjdCgpLG89Im9wZXJhdGlvbnMiLGw9cyxjPXQuaXNTaG93bihbbyxsXSk7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KE9wZXJhdGlvbkxpbmsse2tleTpzLHBhdGg6YSxtZXRob2Q6bixpZDphKyItIituLHNob3duOmMsc2hvd09wSWQ6bCxzaG93T3BJZFByZWZpeDpvLGhyZWY6YCNvcGVyYXRpb24tJHtsfWAsb25DbGljazpyLnNob3d9KX0pKS50b0FycmF5KCkpKX0pKS50b0FycmF5KCksbi5zaXplPDEmJk8oKS5jcmVhdGVFbGVtZW50KCJoMyIsbnVsbCwiIE5vIG9wZXJhdGlvbnMgZGVmaW5lZCBpbiBzcGVjISAiKSl9fWNsYXNzIE9wZXJhdGlvbkxpbmsgZXh0ZW5kcyBPKCkuQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMub25DbGljaz10aGlzLl9vbkNsaWNrLmJpbmQodGhpcyl9X29uQ2xpY2soKXtsZXR7c2hvd09wSWQ6ZSxzaG93T3BJZFByZWZpeDp0LG9uQ2xpY2s6cixzaG93bjphfT10aGlzLnByb3BzO3IoW3QsZV0sIWEpfXJlbmRlcigpe2xldHtpZDplLG1ldGhvZDp0LHNob3duOnIsaHJlZjphfT10aGlzLnByb3BzO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudChMaW5rLHtocmVmOmEsb25DbGljazp0aGlzLm9uQ2xpY2ssY2xhc3NOYW1lOiJibG9jayBvcGJsb2NrLWxpbmsgIisocj8ic2hvd24iOiIiKX0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgic21hbGwiLHtjbGFzc05hbWU6YGJvbGQtbGFiZWwtJHt0fWB9LHQudG9VcHBlckNhc2UoKSksTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6ImJvbGQtbGFiZWwifSxlKSkpfX1jbGFzcyBJbml0aWFsaXplZElucHV0IGV4dGVuZHMgTygpLkNvbXBvbmVudHtjb21wb25lbnREaWRNb3VudCgpe3RoaXMucHJvcHMuaW5pdGlhbFZhbHVlJiYodGhpcy5pbnB1dFJlZi52YWx1ZT10aGlzLnByb3BzLmluaXRpYWxWYWx1ZSl9cmVuZGVyKCl7Y29uc3R7dmFsdWU6ZSxkZWZhdWx0VmFsdWU6dCxpbml0aWFsVmFsdWU6ciwuLi5hfT10aGlzLnByb3BzO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgiaW5wdXQiLFFlKCkoe30sYSx7cmVmOmU9PnRoaXMuaW5wdXRSZWY9ZX0pKX19Y2xhc3MgSW5mb0Jhc2VQYXRoIGV4dGVuZHMgTygpLkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHtob3N0OmUsYmFzZVBhdGg6dH09dGhpcy5wcm9wcztyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoInByZSIse2NsYXNzTmFtZToiYmFzZS11cmwifSwiWyBCYXNlIFVSTDogIixlLHQsIiBdIil9fWNsYXNzIEluZm9VcmwgZXh0ZW5kcyBPKCkuUHVyZUNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHt1cmw6ZSxnZXRDb21wb25lbnQ6dH09dGhpcy5wcm9wcyxyPXQoIkxpbmsiKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQocix7dGFyZ2V0OiJfYmxhbmsiLGhyZWY6c2FuaXRpemVVcmwoZSl9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJ1cmwifSwiICIsZSkpfX1jbGFzcyBJbmZvIGV4dGVuZHMgTygpLkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHtpbmZvOmUsdXJsOnQsaG9zdDpyLGJhc2VQYXRoOmEsZ2V0Q29tcG9uZW50Om4sZXh0ZXJuYWxEb2NzOnMsc2VsZWN0ZWRTZXJ2ZXI6byx1cmw6bH09dGhpcy5wcm9wcyxjPWUuZ2V0KCJ2ZXJzaW9uIiksaT1lLmdldCgiZGVzY3JpcHRpb24iKSxwPWUuZ2V0KCJ0aXRsZSIpLG09c2FmZUJ1aWxkVXJsKGUuZ2V0KCJ0ZXJtc09mU2VydmljZSIpLGwse3NlbGVjdGVkU2VydmVyOm99KSx1PWUuZ2V0KCJjb250YWN0IiksZD1lLmdldCgibGljZW5zZSIpLGg9c2FmZUJ1aWxkVXJsKHMmJnMuZ2V0KCJ1cmwiKSxsLHtzZWxlY3RlZFNlcnZlcjpvfSksZz1zJiZzLmdldCgiZGVzY3JpcHRpb24iKSx5PW4oIk1hcmtkb3duIiwhMCksZj1uKCJMaW5rIiksUz1uKCJWZXJzaW9uU3RhbXAiKSxFPW4oIk9wZW5BUElWZXJzaW9uIiksXz1uKCJJbmZvVXJsIiksdj1uKCJJbmZvQmFzZVBhdGgiKSx3PW4oIkxpY2Vuc2UiKSxiPW4oIkNvbnRhY3QiKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaW5mbyJ9LE8oKS5jcmVhdGVFbGVtZW50KCJoZ3JvdXAiLHtjbGFzc05hbWU6Im1haW4ifSxPKCkuY3JlYXRlRWxlbWVudCgiaDIiLHtjbGFzc05hbWU6InRpdGxlIn0scCxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxjJiZPKCkuY3JlYXRlRWxlbWVudChTLHt2ZXJzaW9uOmN9KSxPKCkuY3JlYXRlRWxlbWVudChFLHtvYXNWZXJzaW9uOiIyLjAifSkpKSxyfHxhP08oKS5jcmVhdGVFbGVtZW50KHYse2hvc3Q6cixiYXNlUGF0aDphfSk6bnVsbCx0JiZPKCkuY3JlYXRlRWxlbWVudChfLHtnZXRDb21wb25lbnQ6bix1cmw6dH0pKSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJkZXNjcmlwdGlvbiJ9LE8oKS5jcmVhdGVFbGVtZW50KHkse3NvdXJjZTppfSkpLG0mJk8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm9fX3RvcyJ9LE8oKS5jcmVhdGVFbGVtZW50KGYse3RhcmdldDoiX2JsYW5rIixocmVmOnNhbml0aXplVXJsKG0pfSwiVGVybXMgb2Ygc2VydmljZSIpKSx1Py5zaXplPjAmJk8oKS5jcmVhdGVFbGVtZW50KGIse2dldENvbXBvbmVudDpuLGRhdGE6dSxzZWxlY3RlZFNlcnZlcjpvLHVybDp0fSksZD8uc2l6ZT4wJiZPKCkuY3JlYXRlRWxlbWVudCh3LHtnZXRDb21wb25lbnQ6bixsaWNlbnNlOmQsc2VsZWN0ZWRTZXJ2ZXI6byx1cmw6dH0pLGg/TygpLmNyZWF0ZUVsZW1lbnQoZix7Y2xhc3NOYW1lOiJpbmZvX19leHRkb2NzIix0YXJnZXQ6Il9ibGFuayIsaHJlZjpzYW5pdGl6ZVVybChoKX0sZ3x8aCk6bnVsbCl9fWNvbnN0IHNuPUluZm87Y2xhc3MgSW5mb0NvbnRhaW5lciBleHRlbmRzIE8oKS5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7c3BlY1NlbGVjdG9yczplLGdldENvbXBvbmVudDp0LG9hczNTZWxlY3RvcnM6cn09dGhpcy5wcm9wcyxhPWUuaW5mbygpLG49ZS51cmwoKSxzPWUuYmFzZVBhdGgoKSxvPWUuaG9zdCgpLGw9ZS5leHRlcm5hbERvY3MoKSxjPXIuc2VsZWN0ZWRTZXJ2ZXIoKSxpPXQoImluZm8iKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxhJiZhLmNvdW50KCk/TygpLmNyZWF0ZUVsZW1lbnQoaSx7aW5mbzphLHVybDpuLGhvc3Q6byxiYXNlUGF0aDpzLGV4dGVybmFsRG9jczpsLGdldENvbXBvbmVudDp0LHNlbGVjdGVkU2VydmVyOmN9KTpudWxsKX19Y2xhc3MgQ29udGFjdCBleHRlbmRzIE8oKS5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7ZGF0YTplLGdldENvbXBvbmVudDp0LHNlbGVjdGVkU2VydmVyOnIsdXJsOmF9PXRoaXMucHJvcHMsbj1lLmdldCgibmFtZSIsInRoZSBkZXZlbG9wZXIiKSxzPXNhZmVCdWlsZFVybChlLmdldCgidXJsIiksYSx7c2VsZWN0ZWRTZXJ2ZXI6cn0pLG89ZS5nZXQoImVtYWlsIiksbD10KCJMaW5rIik7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm9fX2NvbnRhY3QifSxzJiZPKCkuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLE8oKS5jcmVhdGVFbGVtZW50KGwse2hyZWY6c2FuaXRpemVVcmwocyksdGFyZ2V0OiJfYmxhbmsifSxuLCIgLSBXZWJzaXRlIikpLG8mJk8oKS5jcmVhdGVFbGVtZW50KGwse2hyZWY6c2FuaXRpemVVcmwoYG1haWx0bzoke299YCl9LHM/YFNlbmQgZW1haWwgdG8gJHtufWA6YENvbnRhY3QgJHtufWApKX19Y29uc3Qgb249Q29udGFjdDtjbGFzcyBMaWNlbnNlIGV4dGVuZHMgTygpLkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHtsaWNlbnNlOmUsZ2V0Q29tcG9uZW50OnQsc2VsZWN0ZWRTZXJ2ZXI6cix1cmw6YX09dGhpcy5wcm9wcyxuPWUuZ2V0KCJuYW1lIiwiTGljZW5zZSIpLHM9c2FmZUJ1aWxkVXJsKGUuZ2V0KCJ1cmwiKSxhLHtzZWxlY3RlZFNlcnZlcjpyfSksbz10KCJMaW5rIik7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm9fX2xpY2Vuc2UifSxzP08oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm9fX2xpY2Vuc2VfX3VybCJ9LE8oKS5jcmVhdGVFbGVtZW50KG8se3RhcmdldDoiX2JsYW5rIixocmVmOnNhbml0aXplVXJsKHMpfSxuKSk6TygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsbikpfX1jb25zdCBsbj1MaWNlbnNlO2NsYXNzIEp1bXBUb1BhdGggZXh0ZW5kcyBPKCkuQ29tcG9uZW50e3JlbmRlcigpe3JldHVybiBudWxsfX1jbGFzcyBDb3B5VG9DbGlwYm9hcmRCdG4gZXh0ZW5kcyBPKCkuQ29tcG9uZW50e3JlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6ZX09dGhpcy5wcm9wcztjb25zdCB0PWUoIkNvcHlJY29uIik7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InZpZXctbGluZS1saW5rIGNvcHktdG8tY2xpcGJvYXJkIix0aXRsZToiQ29weSB0byBjbGlwYm9hcmQifSxPKCkuY3JlYXRlRWxlbWVudChtdC5Db3B5VG9DbGlwYm9hcmQse3RleHQ6dGhpcy5wcm9wcy50ZXh0VG9Db3B5fSxPKCkuY3JlYXRlRWxlbWVudCh0LG51bGwpKSl9fWNsYXNzIEZvb3RlciBleHRlbmRzIE8oKS5Db21wb25lbnR7cmVuZGVyKCl7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImZvb3RlciJ9KX19Y2xhc3MgRmlsdGVyQ29udGFpbmVyIGV4dGVuZHMgTygpLkNvbXBvbmVudHtvbkZpbHRlckNoYW5nZT1lPT57Y29uc3R7dGFyZ2V0Ont2YWx1ZTp0fX09ZTt0aGlzLnByb3BzLmxheW91dEFjdGlvbnMudXBkYXRlRmlsdGVyKHQpfTtyZW5kZXIoKXtjb25zdHtzcGVjU2VsZWN0b3JzOmUsbGF5b3V0U2VsZWN0b3JzOnQsZ2V0Q29tcG9uZW50OnJ9PXRoaXMucHJvcHMsYT1yKCJDb2wiKSxuPSJsb2FkaW5nIj09PWUubG9hZGluZ1N0YXR1cygpLHM9ImZhaWxlZCI9PT1lLmxvYWRpbmdTdGF0dXMoKSxvPXQuY3VycmVudEZpbHRlcigpLGw9WyJvcGVyYXRpb24tZmlsdGVyLWlucHV0Il07cmV0dXJuIHMmJmwucHVzaCgiZmFpbGVkIiksbiYmbC5wdXNoKCJsb2FkaW5nIiksTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCwhMT09PW8/bnVsbDpPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJmaWx0ZXItY29udGFpbmVyIn0sTygpLmNyZWF0ZUVsZW1lbnQoYSx7Y2xhc3NOYW1lOiJmaWx0ZXIgd3JhcHBlciIsbW9iaWxlOjEyfSxPKCkuY3JlYXRlRWxlbWVudCgiaW5wdXQiLHtjbGFzc05hbWU6bC5qb2luKCIgIikscGxhY2Vob2xkZXI6IkZpbHRlciBieSB0YWciLHR5cGU6InRleHQiLG9uQ2hhbmdlOnRoaXMub25GaWx0ZXJDaGFuZ2UsdmFsdWU6InN0cmluZyI9PXR5cGVvZiBvP286IiIsZGlzYWJsZWQ6bn0pKSkpfX1jb25zdCBjbj1GdW5jdGlvbi5wcm90b3R5cGU7Y2xhc3MgUGFyYW1Cb2R5IGV4dGVuZHMgeC5QdXJlQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcD17Y29uc3VtZXM6KDAsay5mcm9tSlMpKFsiYXBwbGljYXRpb24vanNvbiJdKSxwYXJhbTooMCxrLmZyb21KUykoe30pLG9uQ2hhbmdlOmNuLG9uQ2hhbmdlQ29uc3VtZXM6Y259O2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLnN0YXRlPXtpc0VkaXRCb3g6ITEsdmFsdWU6IiJ9fWNvbXBvbmVudERpZE1vdW50KCl7dGhpcy51cGRhdGVWYWx1ZXMuY2FsbCh0aGlzLHRoaXMucHJvcHMpfVVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKGUpe3RoaXMudXBkYXRlVmFsdWVzLmNhbGwodGhpcyxlKX11cGRhdGVWYWx1ZXM9ZT0+e2xldHtwYXJhbTp0LGlzRXhlY3V0ZTpyLGNvbnN1bWVzVmFsdWU6YT0iIn09ZSxuPS94bWwvaS50ZXN0KGEpLHM9L2pzb24vaS50ZXN0KGEpLG89bj90LmdldCgidmFsdWVfeG1sIik6dC5nZXQoInZhbHVlIik7aWYodm9pZCAwIT09byl7bGV0IGU9IW8mJnM/Int9IjpvO3RoaXMuc2V0U3RhdGUoe3ZhbHVlOmV9KSx0aGlzLm9uQ2hhbmdlKGUse2lzWG1sOm4saXNFZGl0Qm94OnJ9KX1lbHNlIG4/dGhpcy5vbkNoYW5nZSh0aGlzLnNhbXBsZSgieG1sIikse2lzWG1sOm4saXNFZGl0Qm94OnJ9KTp0aGlzLm9uQ2hhbmdlKHRoaXMuc2FtcGxlKCkse2lzRWRpdEJveDpyfSl9O3NhbXBsZT1lPT57bGV0e3BhcmFtOnQsZm46cn09dGhpcy5wcm9wcyxhPXIuaW5mZXJTY2hlbWEodC50b0pTKCkpO3JldHVybiByLmdldFNhbXBsZVNjaGVtYShhLGUse2luY2x1ZGVXcml0ZU9ubHk6ITB9KX07b25DaGFuZ2U9KGUse2lzRWRpdEJveDp0LGlzWG1sOnJ9KT0+e3RoaXMuc2V0U3RhdGUoe3ZhbHVlOmUsaXNFZGl0Qm94OnR9KSx0aGlzLl9vbkNoYW5nZShlLHIpfTtfb25DaGFuZ2U9KGUsdCk9PnsodGhpcy5wcm9wcy5vbkNoYW5nZXx8Y24pKGUsdCl9O2hhbmRsZU9uQ2hhbmdlPWU9Pntjb25zdHtjb25zdW1lc1ZhbHVlOnR9PXRoaXMucHJvcHMscj0veG1sL2kudGVzdCh0KSxhPWUudGFyZ2V0LnZhbHVlO3RoaXMub25DaGFuZ2UoYSx7aXNYbWw6cixpc0VkaXRCb3g6dGhpcy5zdGF0ZS5pc0VkaXRCb3h9KX07dG9nZ2xlSXNFZGl0Qm94PSgpPT50aGlzLnNldFN0YXRlKChlPT4oe2lzRWRpdEJveDohZS5pc0VkaXRCb3h9KSkpO3JlbmRlcigpe2xldHtvbkNoYW5nZUNvbnN1bWVzOmUscGFyYW06dCxpc0V4ZWN1dGU6cixzcGVjU2VsZWN0b3JzOmEscGF0aE1ldGhvZDpuLGdldENvbXBvbmVudDpzfT10aGlzLnByb3BzO2NvbnN0IG89cygiQnV0dG9uIiksbD1zKCJUZXh0QXJlYSIpLGM9cygiSGlnaGxpZ2h0Q29kZSIsITApLGk9cygiY29udGVudFR5cGUiKTtsZXQgcD0oYT9hLnBhcmFtZXRlcldpdGhNZXRhQnlJZGVudGl0eShuLHQpOnQpLmdldCgiZXJyb3JzIiwoMCxrLkxpc3QpKCkpLG09YS5jb250ZW50VHlwZVZhbHVlcyhuKS5nZXQoInJlcXVlc3RDb250ZW50VHlwZSIpLHU9dGhpcy5wcm9wcy5jb25zdW1lcyYmdGhpcy5wcm9wcy5jb25zdW1lcy5zaXplP3RoaXMucHJvcHMuY29uc3VtZXM6UGFyYW1Cb2R5LmRlZmF1bHRQcm9wLmNvbnN1bWVzLHt2YWx1ZTpkLGlzRWRpdEJveDpofT10aGlzLnN0YXRlLGc9bnVsbDtnZXRLbm93blN5bnRheEhpZ2hsaWdodGVyTGFuZ3VhZ2UoZCkmJihnPSJqc29uIik7Y29uc3QgeT1gJHtjcmVhdGVIdG1sUmVhZHlJZChgJHtuWzFdfSR7blswXX1fcGFyYW1ldGVyc2ApfV9zZWxlY3RgO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJib2R5LXBhcmFtIiwiZGF0YS1wYXJhbS1uYW1lIjp0LmdldCgibmFtZSIpLCJkYXRhLXBhcmFtLWluIjp0LmdldCgiaW4iKX0saCYmcj9PKCkuY3JlYXRlRWxlbWVudChsLHtjbGFzc05hbWU6ImJvZHktcGFyYW1fX3RleHQiKyhwLmNvdW50KCk/IiBpbnZhbGlkIjoiIiksdmFsdWU6ZCxvbkNoYW5nZTp0aGlzLmhhbmRsZU9uQ2hhbmdlfSk6ZCYmTygpLmNyZWF0ZUVsZW1lbnQoYyx7Y2xhc3NOYW1lOiJib2R5LXBhcmFtX19leGFtcGxlIixsYW5ndWFnZTpnfSxkKSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJib2R5LXBhcmFtLW9wdGlvbnMifSxyP08oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImJvZHktcGFyYW0tZWRpdCJ9LE8oKS5jcmVhdGVFbGVtZW50KG8se2NsYXNzTmFtZTpoPyJidG4gY2FuY2VsIGJvZHktcGFyYW1fX2V4YW1wbGUtZWRpdCI6ImJ0biBlZGl0IGJvZHktcGFyYW1fX2V4YW1wbGUtZWRpdCIsb25DbGljazp0aGlzLnRvZ2dsZUlzRWRpdEJveH0saD8iQ2FuY2VsIjoiRWRpdCIpKTpudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6eX0sTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsIlBhcmFtZXRlciBjb250ZW50IHR5cGUiKSxPKCkuY3JlYXRlRWxlbWVudChpLHt2YWx1ZTptLGNvbnRlbnRUeXBlczp1LG9uQ2hhbmdlOmUsY2xhc3NOYW1lOiJib2R5LXBhcmFtLWNvbnRlbnQtdHlwZSIsYXJpYUxhYmVsOiJQYXJhbWV0ZXIgY29udGVudCB0eXBlIixjb250cm9sSWQ6eX0pKSkpfX1jbGFzcyBDdXJsIGV4dGVuZHMgTygpLkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHtyZXF1ZXN0OmUsZ2V0Q29tcG9uZW50OnR9PXRoaXMucHJvcHMscj1yZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX2Jhc2goZSksYT10KCJTeW50YXhIaWdobGlnaHRlciIsITApO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJjdXJsLWNvbW1hbmQifSxPKCkuY3JlYXRlRWxlbWVudCgiaDQiLG51bGwsIkN1cmwiKSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJjb3B5LXRvLWNsaXBib2FyZCJ9LE8oKS5jcmVhdGVFbGVtZW50KG10LkNvcHlUb0NsaXBib2FyZCx7dGV4dDpyfSxPKCkuY3JlYXRlRWxlbWVudCgiYnV0dG9uIixudWxsKSkpLE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoYSx7bGFuZ3VhZ2U6ImJhc2giLGNsYXNzTmFtZToiY3VybCBtaWNyb2xpZ2h0IixyZW5kZXJQbGFpblRleHQ6KHtjaGlsZHJlbjplLFBsYWluVGV4dFZpZXdlcjp0fSk9Pk8oKS5jcmVhdGVFbGVtZW50KHQse2NsYXNzTmFtZToiY3VybCJ9LGUpfSxyKSkpfX1jb25zdCBwcm9wZXJ0eT0oe3Byb3BLZXk6ZSxwcm9wVmFsOnQscHJvcENsYXNzOnJ9KT0+TygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cn0sTygpLmNyZWF0ZUVsZW1lbnQoImJyIixudWxsKSxlLCI6ICIsU3RyaW5nKHQpKTtjbGFzcyBUcnlJdE91dEJ1dHRvbiBleHRlbmRzIE8oKS5Db21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17b25UcnlvdXRDbGljazpGdW5jdGlvbi5wcm90b3R5cGUsb25DYW5jZWxDbGljazpGdW5jdGlvbi5wcm90b3R5cGUsb25SZXNldENsaWNrOkZ1bmN0aW9uLnByb3RvdHlwZSxlbmFibGVkOiExLGhhc1VzZXJFZGl0ZWRCb2R5OiExLGlzT0FTMzohMX07cmVuZGVyKCl7Y29uc3R7b25UcnlvdXRDbGljazplLG9uQ2FuY2VsQ2xpY2s6dCxvblJlc2V0Q2xpY2s6cixlbmFibGVkOmEsaGFzVXNlckVkaXRlZEJvZHk6bixpc09BUzM6c309dGhpcy5wcm9wcyxvPXMmJm47cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bz8idHJ5LW91dCBidG4tZ3JvdXAiOiJ0cnktb3V0In0sYT9PKCkuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7Y2xhc3NOYW1lOiJidG4gdHJ5LW91dF9fYnRuIGNhbmNlbCIsb25DbGljazp0fSwiQ2FuY2VsIik6TygpLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse2NsYXNzTmFtZToiYnRuIHRyeS1vdXRfX2J0biIsb25DbGljazplfSwiVHJ5IGl0IG91dCAiKSxvJiZPKCkuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7Y2xhc3NOYW1lOiJidG4gdHJ5LW91dF9fYnRuIHJlc2V0IixvbkNsaWNrOnJ9LCJSZXNldCIpKX19Y2xhc3MgVmVyc2lvblByYWdtYUZpbHRlciBleHRlbmRzIE8oKS5QdXJlQ29tcG9uZW50e3N0YXRpYyBkZWZhdWx0UHJvcHM9e2Fsc29TaG93Om51bGwsY2hpbGRyZW46bnVsbCxieXBhc3M6ITF9O3JlbmRlcigpe2NvbnN0e2J5cGFzczplLGlzU3dhZ2dlcjI6dCxpc09BUzM6cixhbHNvU2hvdzphfT10aGlzLnByb3BzO3JldHVybiBlP08oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsdGhpcy5wcm9wcy5jaGlsZHJlbik6dCYmcj9PKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJ2ZXJzaW9uLXByYWdtYSJ9LGEsTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidmVyc2lvbi1wcmFnbWFfX21lc3NhZ2UgdmVyc2lvbi1wcmFnbWFfX21lc3NhZ2UtLWFtYmlndW91cyJ9LE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoImgzIixudWxsLCJVbmFibGUgdG8gcmVuZGVyIHRoaXMgZGVmaW5pdGlvbiIpLE8oKS5jcmVhdGVFbGVtZW50KCJwIixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJzd2FnZ2VyIiksIiBhbmQgIixPKCkuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwib3BlbmFwaSIpLCIgZmllbGRzIGNhbm5vdCBiZSBwcmVzZW50IGluIHRoZSBzYW1lIFN3YWdnZXIgb3IgT3BlbkFQSSBkZWZpbml0aW9uLiBQbGVhc2UgcmVtb3ZlIG9uZSBvZiB0aGUgZmllbGRzLiIpLE8oKS5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJTdXBwb3J0ZWQgdmVyc2lvbiBmaWVsZHMgYXJlICIsTygpLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsInN3YWdnZXI6ICIsJyIyLjAiJyksIiBhbmQgdGhvc2UgdGhhdCBtYXRjaCAiLE8oKS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJvcGVuYXBpOiAzLjAubiIpLCIgKGZvciBleGFtcGxlLCAiLE8oKS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJvcGVuYXBpOiAzLjAuNCIpLCIpLiIpKSkpOnR8fHI/TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCx0aGlzLnByb3BzLmNoaWxkcmVuKTpPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJ2ZXJzaW9uLXByYWdtYSJ9LGEsTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidmVyc2lvbi1wcmFnbWFfX21lc3NhZ2UgdmVyc2lvbi1wcmFnbWFfX21lc3NhZ2UtLW1pc3NpbmcifSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJoMyIsbnVsbCwiVW5hYmxlIHRvIHJlbmRlciB0aGlzIGRlZmluaXRpb24iKSxPKCkuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiVGhlIHByb3ZpZGVkIGRlZmluaXRpb24gZG9lcyBub3Qgc3BlY2lmeSBhIHZhbGlkIHZlcnNpb24gZmllbGQuIiksTygpLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIlBsZWFzZSBpbmRpY2F0ZSBhIHZhbGlkIFN3YWdnZXIgb3IgT3BlbkFQSSB2ZXJzaW9uIGZpZWxkLiBTdXBwb3J0ZWQgdmVyc2lvbiBmaWVsZHMgYXJlICIsTygpLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsInN3YWdnZXI6ICIsJyIyLjAiJyksIiBhbmQgdGhvc2UgdGhhdCBtYXRjaCAiLE8oKS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJvcGVuYXBpOiAzLjAubiIpLCIgKGZvciBleGFtcGxlLCAiLE8oKS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCJvcGVuYXBpOiAzLjAuNCIpLCIpLiIpKSkpfX1jb25zdCB2ZXJzaW9uX3N0YW1wPSh7dmVyc2lvbjplfSk9Pk8oKS5jcmVhdGVFbGVtZW50KCJzbWFsbCIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgicHJlIix7Y2xhc3NOYW1lOiJ2ZXJzaW9uIn0sIiAiLGUsIiAiKSksb3BlbmFwaV92ZXJzaW9uPSh7b2FzVmVyc2lvbjplfSk9Pk8oKS5jcmVhdGVFbGVtZW50KCJzbWFsbCIse2NsYXNzTmFtZToidmVyc2lvbi1zdGFtcCJ9LE8oKS5jcmVhdGVFbGVtZW50KCJwcmUiLHtjbGFzc05hbWU6InZlcnNpb24ifSwiT0FTICIsZSkpLGRlZXBfbGluaz0oe2VuYWJsZWQ6ZSxwYXRoOnQsdGV4dDpyfSk9Pk8oKS5jcmVhdGVFbGVtZW50KCJhIix7Y2xhc3NOYW1lOiJub3N0eWxlIixvbkNsaWNrOmU/ZT0+ZS5wcmV2ZW50RGVmYXVsdCgpOm51bGwsaHJlZjplP2AjLyR7dH1gOm51bGx9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLHIpKSxzdmdfYXNzZXRzPSgpPT5PKCkuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhtbG5zWGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLGNsYXNzTmFtZToic3ZnLWFzc2V0cyJ9LE8oKS5jcmVhdGVFbGVtZW50KCJkZWZzIixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJzeW1ib2wiLHt2aWV3Qm94OiIwIDAgMjAgMjAiLGlkOiJ1bmxvY2tlZCJ9LE8oKS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE1LjggOEgxNFY1LjZDMTQgMi43MDMgMTIuNjY1IDEgMTAgMSA3LjMzNCAxIDYgMi43MDMgNiA1LjZWNmgydi0uODAxQzggMy43NTQgOC43OTcgMyAxMCAzYzEuMjAzIDAgMiAuNzU0IDIgMi4xOTlWOEg0Yy0uNTUzIDAtMSAuNjQ2LTEgMS4xOTlWMTdjMCAuNTQ5LjQyOCAxLjEzOS45NTEgMS4zMDdsMS4xOTcuMzg3QzUuNjcyIDE4Ljg2MSA2LjU1IDE5IDcuMSAxOWg1LjhjLjU0OSAwIDEuNDI4LS4xMzkgMS45NTEtLjMwN2wxLjE5Ni0uMzg3Yy41MjQtLjE2Ny45NTMtLjc1Ny45NTMtMS4zMDZWOS4xOTlDMTcgOC42NDYgMTYuMzUyIDggMTUuOCA4eiJ9KSksTygpLmNyZWF0ZUVsZW1lbnQoInN5bWJvbCIse3ZpZXdCb3g6IjAgMCAyMCAyMCIsaWQ6ImxvY2tlZCJ9LE8oKS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE1LjggOEgxNFY1LjZDMTQgMi43MDMgMTIuNjY1IDEgMTAgMSA3LjMzNCAxIDYgMi43MDMgNiA1LjZWOEg0Yy0uNTUzIDAtMSAuNjQ2LTEgMS4xOTlWMTdjMCAuNTQ5LjQyOCAxLjEzOS45NTEgMS4zMDdsMS4xOTcuMzg3QzUuNjcyIDE4Ljg2MSA2LjU1IDE5IDcuMSAxOWg1LjhjLjU0OSAwIDEuNDI4LS4xMzkgMS45NTEtLjMwN2wxLjE5Ni0uMzg3Yy41MjQtLjE2Ny45NTMtLjc1Ny45NTMtMS4zMDZWOS4xOTlDMTcgOC42NDYgMTYuMzUyIDggMTUuOCA4ek0xMiA4SDhWNS4xOTlDOCAzLjc1NCA4Ljc5NyAzIDEwIDNjMS4yMDMgMCAyIC43NTQgMiAyLjE5OVY4eiJ9KSksTygpLmNyZWF0ZUVsZW1lbnQoInN5bWJvbCIse3ZpZXdCb3g6IjAgMCAyMCAyMCIsaWQ6ImNsb3NlIn0sTygpLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTQuMzQ4IDE0Ljg0OWMtLjQ2OS40NjktMS4yMjkuNDY5LTEuNjk3IDBMMTAgMTEuODE5bC0yLjY1MSAzLjAyOWMtLjQ2OS40NjktMS4yMjkuNDY5LTEuNjk3IDAtLjQ2OS0uNDY5LS40NjktMS4yMjkgMC0xLjY5N2wyLjc1OC0zLjE1LTIuNzU5LTMuMTUyYy0uNDY5LS40NjktLjQ2OS0xLjIyOCAwLTEuNjk3LjQ2OS0uNDY5IDEuMjI4LS40NjkgMS42OTcgMEwxMCA4LjE4M2wyLjY1MS0zLjAzMWMuNDY5LS40NjkgMS4yMjgtLjQ2OSAxLjY5NyAwIC40NjkuNDY5LjQ2OSAxLjIyOSAwIDEuNjk3bC0yLjc1OCAzLjE1MiAyLjc1OCAzLjE1Yy40NjkuNDY5LjQ2OSAxLjIyOSAwIDEuNjk4eiJ9KSksTygpLmNyZWF0ZUVsZW1lbnQoInN5bWJvbCIse3ZpZXdCb3g6IjAgMCAyMCAyMCIsaWQ6ImxhcmdlLWFycm93In0sTygpLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTMuMjUgMTBMNi4xMDkgMi41OGMtLjI2OC0uMjctLjI2OC0uNzA3IDAtLjk3OS4yNjgtLjI3LjcwMS0uMjcuOTY5IDBsNy44MyA3LjkwOGMuMjY4LjI3MS4yNjguNzA5IDAgLjk3OWwtNy44MyA3LjkwOGMtLjI2OC4yNzEtLjcwMS4yNy0uOTY5IDAtLjI2OC0uMjY5LS4yNjgtLjcwNyAwLS45NzlMMTMuMjUgMTB6In0pKSxPKCkuY3JlYXRlRWxlbWVudCgic3ltYm9sIix7dmlld0JveDoiMCAwIDIwIDIwIixpZDoibGFyZ2UtYXJyb3ctZG93biJ9LE8oKS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTE3LjQxOCA2LjEwOWMuMjcyLS4yNjguNzA5LS4yNjguOTc5IDBzLjI3MS43MDEgMCAuOTY5bC03LjkwOCA3LjgzYy0uMjcuMjY4LS43MDcuMjY4LS45NzkgMGwtNy45MDgtNy44M2MtLjI3LS4yNjgtLjI3LS43MDEgMC0uOTY5LjI3MS0uMjY4LjcwOS0uMjY4Ljk3OSAwTDEwIDEzLjI1bDcuNDE4LTcuMTQxeiJ9KSksTygpLmNyZWF0ZUVsZW1lbnQoInN5bWJvbCIse3ZpZXdCb3g6IjAgMCAyMCAyMCIsaWQ6ImxhcmdlLWFycm93LXVwIn0sTygpLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNIDE3LjQxOCAxNC45MDggQyAxNy42OSAxNS4xNzYgMTguMTI3IDE1LjE3NiAxOC4zOTcgMTQuOTA4IEMgMTguNjY3IDE0LjY0IDE4LjY2OCAxNC4yMDcgMTguMzk3IDEzLjkzOSBMIDEwLjQ4OSA2LjEwOSBDIDEwLjIxOSA1Ljg0MSA5Ljc4MiA1Ljg0MSA5LjUxIDYuMTA5IEwgMS42MDIgMTMuOTM5IEMgMS4zMzIgMTQuMjA3IDEuMzMyIDE0LjY0IDEuNjAyIDE0LjkwOCBDIDEuODczIDE1LjE3NiAyLjMxMSAxNS4xNzYgMi41ODEgMTQuOTA4IEwgMTAgNy43NjcgTCAxNy40MTggMTQuOTA4IFoifSkpLE8oKS5jcmVhdGVFbGVtZW50KCJzeW1ib2wiLHt2aWV3Qm94OiIwIDAgMjQgMjQiLGlkOiJqdW1wLXRvIn0sTygpLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTkgN3Y0SDUuODNsMy41OC0zLjU5TDggNmwtNiA2IDYgNiAxLjQxLTEuNDFMNS44MyAxM0gyMVY3eiJ9KSksTygpLmNyZWF0ZUVsZW1lbnQoInN5bWJvbCIse3ZpZXdCb3g6IjAgMCAyNCAyNCIsaWQ6ImV4cGFuZCJ9LE8oKS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTEwIDE4aDR2LTJoLTR2MnpNMyA2djJoMThWNkgzem0zIDdoMTJ2LTJINnYyeiJ9KSksTygpLmNyZWF0ZUVsZW1lbnQoInN5bWJvbCIse3ZpZXdCb3g6IjAgMCAxNSAxNiIsaWQ6ImNvcHkifSxPKCkuY3JlYXRlRWxlbWVudCgiZyIse3RyYW5zZm9ybToidHJhbnNsYXRlKDIsIC0xKSJ9LE8oKS5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiI2ZmZmZmZiIsZmlsbFJ1bGU6ImV2ZW5vZGQiLGQ6Ik0yIDEzaDR2MUgydi0xem01LTZIMnYxaDVWN3ptMiAzVjhsLTMgMyAzIDN2LTJoNXYtMkg5ek00LjUgOUgydjFoMi41Vjl6TTIgMTJoMi41di0xSDJ2MXptOSAxaDF2MmMtLjAyLjI4LS4xMS41Mi0uMy43LS4xOS4xOC0uNDIuMjgtLjcuM0gxYy0uNTUgMC0xLS40NS0xLTFWNGMwLS41NS40NS0xIDEtMWgzYzAtMS4xMS44OS0yIDItMiAxLjExIDAgMiAuODkgMiAyaDNjLjU1IDAgMSAuNDUgMSAxdjVoLTFWNkgxdjloMTB2LTJ6TTIgNWg4YzAtLjU1LS40NS0xLTEtMUg4Yy0uNTUgMC0xLS40NS0xLTFzLS40NS0xLTEtMS0xIC40NS0xIDEtLjQ1IDEtMSAxSDNjLS41NSAwLTEgLjQ1LTEgMXoifSkpKSkpKSxwbj1yZXF1aXJlKCJyZW1hcmthYmxlIiksbW49cmVxdWlyZSgicmVtYXJrYWJsZS9saW5raWZ5IiksdW49cmVxdWlyZSgiZG9tcHVyaWZ5Iik7dmFyIGRuPV9fd2VicGFja19yZXF1aXJlX18ubih1bik7ZG4oKS5hZGRIb29rJiZkbigpLmFkZEhvb2soImJlZm9yZVNhbml0aXplRWxlbWVudHMiLChmdW5jdGlvbihlKXtyZXR1cm4gZS5ocmVmJiZlLnNldEF0dHJpYnV0ZSgicmVsIiwibm9vcGVuZXIgbm9yZWZlcnJlciIpLGV9KSk7Y29uc3QgaG49ZnVuY3Rpb24gTWFya2Rvd24oe3NvdXJjZTplLGNsYXNzTmFtZTp0PSIiLGdldENvbmZpZ3M6cj0oKT0+KHt1c2VVbnNhZmVNYXJrZG93bjohMX0pfSl7aWYoInN0cmluZyIhPXR5cGVvZiBlKXJldHVybiBudWxsO2NvbnN0IGE9bmV3IHBuLlJlbWFya2FibGUoe2h0bWw6ITAsdHlwb2dyYXBoZXI6ITAsYnJlYWtzOiEwLGxpbmtUYXJnZXQ6Il9ibGFuayJ9KS51c2UobW4ubGlua2lmeSk7YS5jb3JlLnJ1bGVyLmRpc2FibGUoWyJyZXBsYWNlbWVudHMiLCJzbWFydHF1b3RlcyJdKTtjb25zdHt1c2VVbnNhZmVNYXJrZG93bjpufT1yKCkscz1hLnJlbmRlcihlKSxvPXNhbml0aXplcihzLHt1c2VVbnNhZmVNYXJrZG93bjpufSk7cmV0dXJuIGUmJnMmJm8/TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpwdCgpKHQsIm1hcmtkb3duIiksZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDpvfX0pOm51bGx9O2Z1bmN0aW9uIHNhbml0aXplcihlLHt1c2VVbnNhZmVNYXJrZG93bjp0PSExfT17fSl7Y29uc3Qgcj10LGE9dD9bXTpbInN0eWxlIiwiY2xhc3MiXTtyZXR1cm4gdCYmIXNhbml0aXplci5oYXNXYXJuZWRBYm91dERlcHJlY2F0aW9uJiYoY29uc29sZS53YXJuKCJ1c2VVbnNhZmVNYXJrZG93biBkaXNwbGF5IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIGlzIGRlcHJlY2F0ZWQgc2luY2UgPjMuMjYuMCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHY0LjAuMC4iKSxzYW5pdGl6ZXIuaGFzV2FybmVkQWJvdXREZXByZWNhdGlvbj0hMCksZG4oKS5zYW5pdGl6ZShlLHtBRERfQVRUUjpbInRhcmdldCJdLEZPUkJJRF9UQUdTOlsic3R5bGUiLCJmb3JtIl0sQUxMT1dfREFUQV9BVFRSOnIsRk9SQklEX0FUVFI6YX0pfXNhbml0aXplci5oYXNXYXJuZWRBYm91dERlcHJlY2F0aW9uPSExO2NsYXNzIEJhc2VMYXlvdXQgZXh0ZW5kcyBPKCkuQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e2VyclNlbGVjdG9yczplLHNwZWNTZWxlY3RvcnM6dCxnZXRDb21wb25lbnQ6cn09dGhpcy5wcm9wcyxhPXIoIlN2Z0Fzc2V0cyIpLG49cigiSW5mb0NvbnRhaW5lciIsITApLHM9cigiVmVyc2lvblByYWdtYUZpbHRlciIpLG89cigib3BlcmF0aW9ucyIsITApLGw9cigiTW9kZWxzIiwhMCksYz1yKCJXZWJob29rcyIsITApLGk9cigiUm93IikscD1yKCJDb2wiKSxtPXIoImVycm9ycyIsITApLHU9cigiU2VydmVyc0NvbnRhaW5lciIsITApLGQ9cigiU2NoZW1lc0NvbnRhaW5lciIsITApLGg9cigiQXV0aG9yaXplQnRuQ29udGFpbmVyIiwhMCksZz1yKCJGaWx0ZXJDb250YWluZXIiLCEwKSx5PXQuaXNTd2FnZ2VyMigpLGY9dC5pc09BUzMoKSxTPXQuaXNPQVMzMSgpLEU9IXQuc3BlY1N0cigpLF89dC5sb2FkaW5nU3RhdHVzKCk7bGV0IHY9bnVsbDtpZigibG9hZGluZyI9PT1fJiYodj1PKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJpbmZvIn0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibG9hZGluZy1jb250YWluZXIifSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJsb2FkaW5nIn0pKSkpLCJmYWlsZWQiPT09XyYmKHY9TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaW5mbyJ9LE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImxvYWRpbmctY29udGFpbmVyIn0sTygpLmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJ0aXRsZSJ9LCJGYWlsZWQgdG8gbG9hZCBBUEkgZGVmaW5pdGlvbi4iKSxPKCkuY3JlYXRlRWxlbWVudChtLG51bGwpKSkpLCJmYWlsZWRDb25maWciPT09Xyl7Y29uc3QgdD1lLmxhc3RFcnJvcigpLHI9dD90LmdldCgibWVzc2FnZSIpOiIiO3Y9TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaW5mbyBmYWlsZWQtY29uZmlnIn0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibG9hZGluZy1jb250YWluZXIifSxPKCkuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6InRpdGxlIn0sIkZhaWxlZCB0byBsb2FkIHJlbW90ZSBjb25maWd1cmF0aW9uLiIpLE8oKS5jcmVhdGVFbGVtZW50KCJwIixudWxsLHIpKSl9aWYoIXYmJkUmJih2PU8oKS5jcmVhdGVFbGVtZW50KCJoNCIsbnVsbCwiTm8gQVBJIGRlZmluaXRpb24gcHJvdmlkZWQuIikpLHYpcmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InN3YWdnZXItdWkifSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJsb2FkaW5nLWNvbnRhaW5lciJ9LHYpKTtjb25zdCB3PXQuc2VydmVycygpLGI9dC5zY2hlbWVzKCksQz13JiZ3LnNpemUseD1iJiZiLnNpemUsTj0hIXQuc2VjdXJpdHlEZWZpbml0aW9ucygpO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJzd2FnZ2VyLXVpIn0sTygpLmNyZWF0ZUVsZW1lbnQoYSxudWxsKSxPKCkuY3JlYXRlRWxlbWVudChzLHtpc1N3YWdnZXIyOnksaXNPQVMzOmYsYWxzb1Nob3c6TygpLmNyZWF0ZUVsZW1lbnQobSxudWxsKX0sTygpLmNyZWF0ZUVsZW1lbnQobSxudWxsKSxPKCkuY3JlYXRlRWxlbWVudChpLHtjbGFzc05hbWU6ImluZm9ybWF0aW9uLWNvbnRhaW5lciJ9LE8oKS5jcmVhdGVFbGVtZW50KHAse21vYmlsZToxMn0sTygpLmNyZWF0ZUVsZW1lbnQobixudWxsKSkpLEN8fHh8fE4/TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToic2NoZW1lLWNvbnRhaW5lciJ9LE8oKS5jcmVhdGVFbGVtZW50KHAse2NsYXNzTmFtZToic2NoZW1lcyB3cmFwcGVyIixtb2JpbGU6MTJ9LEN8fHg/TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToic2NoZW1lcy1zZXJ2ZXItY29udGFpbmVyIn0sQz9PKCkuY3JlYXRlRWxlbWVudCh1LG51bGwpOm51bGwseD9PKCkuY3JlYXRlRWxlbWVudChkLG51bGwpOm51bGwpOm51bGwsTj9PKCkuY3JlYXRlRWxlbWVudChoLG51bGwpOm51bGwpKTpudWxsLE8oKS5jcmVhdGVFbGVtZW50KGcsbnVsbCksTygpLmNyZWF0ZUVsZW1lbnQoaSxudWxsLE8oKS5jcmVhdGVFbGVtZW50KHAse21vYmlsZToxMixkZXNrdG9wOjEyfSxPKCkuY3JlYXRlRWxlbWVudChvLG51bGwpKSksUyYmTygpLmNyZWF0ZUVsZW1lbnQoaSx7Y2xhc3NOYW1lOiJ3ZWJob29rcy1jb250YWluZXIifSxPKCkuY3JlYXRlRWxlbWVudChwLHttb2JpbGU6MTIsZGVza3RvcDoxMn0sTygpLmNyZWF0ZUVsZW1lbnQoYyxudWxsKSkpLE8oKS5jcmVhdGVFbGVtZW50KGksbnVsbCxPKCkuY3JlYXRlRWxlbWVudChwLHttb2JpbGU6MTIsZGVza3RvcDoxMn0sTygpLmNyZWF0ZUVsZW1lbnQobCxudWxsKSkpKSl9fWNvbnN0IGNvcmVfY29tcG9uZW50cz0oKT0+KHtjb21wb25lbnRzOntBcHA6R2EsYXV0aG9yaXphdGlvblBvcHVwOkF1dGhvcml6YXRpb25Qb3B1cCxhdXRob3JpemVCdG46QXV0aG9yaXplQnRuLEF1dGhvcml6ZUJ0bkNvbnRhaW5lcixhdXRob3JpemVPcGVyYXRpb25CdG46QXV0aG9yaXplT3BlcmF0aW9uQnRuLGF1dGhzOkF1dGhzLEF1dGhJdGVtOmF1dGhfaXRlbV9BdXRocyxhdXRoRXJyb3I6QXV0aEVycm9yLG9hdXRoMjpPYXV0aDIsYXBpS2V5QXV0aDpBcGlLZXlBdXRoLGJhc2ljQXV0aDpCYXNpY0F1dGgsY2xlYXI6Q2xlYXIsbGl2ZVJlc3BvbnNlOkxpdmVSZXNwb25zZSxJbml0aWFsaXplZElucHV0LGluZm86c24sSW5mb0NvbnRhaW5lcixJbmZvVXJsLEluZm9CYXNlUGF0aCxDb250YWN0Om9uLExpY2Vuc2U6bG4sSnVtcFRvUGF0aCxDb3B5VG9DbGlwYm9hcmRCdG4sb25saW5lVmFsaWRhdG9yQmFkZ2U6T25saW5lVmFsaWRhdG9yQmFkZ2Usb3BlcmF0aW9uczpPcGVyYXRpb25zLG9wZXJhdGlvbjpPcGVyYXRpb24sT3BlcmF0aW9uU3VtbWFyeSxPcGVyYXRpb25TdW1tYXJ5TWV0aG9kLE9wZXJhdGlvblN1bW1hcnlQYXRoLHJlc3BvbnNlczpSZXNwb25zZXMscmVzcG9uc2U6UmVzcG9uc2UsUmVzcG9uc2VFeHRlbnNpb246cmVzcG9uc2VfZXh0ZW5zaW9uLHJlc3BvbnNlQm9keTpSZXNwb25zZUJvZHkscGFyYW1ldGVyczpQYXJhbWV0ZXJzLHBhcmFtZXRlclJvdzpQYXJhbWV0ZXJSb3csZXhlY3V0ZTpFeGVjdXRlLGhlYWRlcnM6aGVhZGVyc19IZWFkZXJzLGVycm9yczpFcnJvcnMsY29udGVudFR5cGU6Q29udGVudFR5cGUsb3ZlcnZpZXc6T3ZlcnZpZXcsZm9vdGVyOkZvb3RlcixGaWx0ZXJDb250YWluZXIsUGFyYW1Cb2R5LGN1cmw6Q3VybCxQcm9wZXJ0eTpwcm9wZXJ0eSxUcnlJdE91dEJ1dHRvbixNYXJrZG93bjpobixCYXNlTGF5b3V0LFZlcnNpb25QcmFnbWFGaWx0ZXIsVmVyc2lvblN0YW1wOnZlcnNpb25fc3RhbXAsT3BlcmF0aW9uRXh0Om9wZXJhdGlvbl9leHRlbnNpb25zLE9wZXJhdGlvbkV4dFJvdzpvcGVyYXRpb25fZXh0ZW5zaW9uX3JvdyxQYXJhbWV0ZXJFeHQ6cGFyYW1ldGVyX2V4dGVuc2lvbixQYXJhbWV0ZXJJbmNsdWRlRW1wdHksT3BlcmF0aW9uVGFnLE9wZXJhdGlvbkNvbnRhaW5lcixPcGVuQVBJVmVyc2lvbjpvcGVuYXBpX3ZlcnNpb24sRGVlcExpbms6ZGVlcF9saW5rLFN2Z0Fzc2V0czpzdmdfYXNzZXRzLEV4YW1wbGUsRXhhbXBsZXNTZWxlY3QsRXhhbXBsZXNTZWxlY3RWYWx1ZVJldGFpbmVyfX0pLGZvcm1fY29tcG9uZW50cz0oKT0+KHtjb21wb25lbnRzOnsuLi5FfX0pLGJhc2U9KCk9Pltjb25maWdzUGx1Z2luLHV0aWwsbG9ncyx2aWV3LHZpZXdfbGVnYWN5LHBsdWdpbnNfc3BlYyxlcnIsaWNvbnMscGx1Z2luc19sYXlvdXQsanNvbl9zY2hlbWFfNSxqc29uX3NjaGVtYV81X3NhbXBsZXMsY29yZV9jb21wb25lbnRzLGZvcm1fY29tcG9uZW50cyxzd2FnZ2VyX2NsaWVudCxhdXRoLGRvd25sb2FkVXJsUGx1Z2luLGRlZXBfbGlua2luZyxmaWx0ZXIsb25fY29tcGxldGUscGx1Z2luc19yZXF1ZXN0X3NuaXBwZXRzLHN5bnRheF9oaWdobGlnaHRpbmcsdmVyc2lvbnMsc2FmZV9yZW5kZXIoKV0sZ249KDAsay5NYXApKCk7ZnVuY3Rpb24gb25seU9BUzMoZSl7cmV0dXJuKHQscik9PiguLi5hKT0+e2lmKHIuZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5pc09BUzMoKSl7Y29uc3QgdD1lKC4uLmEpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Qocik6dH1yZXR1cm4gdCguLi5hKX19Y29uc3QgeW49b25seU9BUzMoVnQoKShudWxsKSksZm49b25seU9BUzMoKChlLHQpPT5lPT5lLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuZmluZFNjaGVtYSh0KSkpLFNuPW9ubHlPQVMzKCgoKT0+ZT0+e2NvbnN0IHQ9ZS5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLnNwZWNKc29uKCkuZ2V0SW4oWyJjb21wb25lbnRzIiwic2NoZW1hcyJdKTtyZXR1cm4gay5NYXAuaXNNYXAodCk/dDpnbn0pKSxFbj1vbmx5T0FTMygoKCk9PmU9PmUuZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpLmhhc0luKFsic2VydmVycyIsMF0pKSksX249b25seU9BUzMoKDAsX2UuY3JlYXRlU2VsZWN0b3IpKEh0LChlPT5lLmdldEluKFsiY29tcG9uZW50cyIsInNlY3VyaXR5U2NoZW1lcyJdKXx8bnVsbCkpKSx3cmFwX3NlbGVjdG9yc192YWxpZE9wZXJhdGlvbk1ldGhvZHM9KGUsdCk9PihyLC4uLmEpPT50LnNwZWNTZWxlY3RvcnMuaXNPQVMzKCk/dC5vYXMzU2VsZWN0b3JzLnZhbGlkT3BlcmF0aW9uTWV0aG9kcygpOmUoLi4uYSksdm49eW4sd249eW4sYm49eW4sQ249eW4seG49eW47Y29uc3QgT249ZnVuY3Rpb24gd3JhcF9zZWxlY3RvcnNfb25seU9BUzMoZSl7cmV0dXJuKHQscik9PiguLi5hKT0+e2lmKHIuZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5pc09BUzMoKSl7bGV0IHQ9ci5nZXRTdGF0ZSgpLmdldEluKFsic3BlYyIsInJlc29sdmVkU3VidHJlZXMiLCJjb21wb25lbnRzIiwic2VjdXJpdHlTY2hlbWVzIl0pO3JldHVybiBlKHIsdCwuLi5hKX1yZXR1cm4gdCguLi5hKX19KCgwLF9lLmNyZWF0ZVNlbGVjdG9yKSgoZT0+ZSksKCh7c3BlY1NlbGVjdG9yczplfSk9PmUuc2VjdXJpdHlEZWZpbml0aW9ucygpKSwoKGUsdCk9PntsZXQgcj0oMCxrLkxpc3QpKCk7cmV0dXJuIHQ/KHQuZW50cnlTZXEoKS5mb3JFYWNoKCgoW2UsdF0pPT57Y29uc3QgYT10Py5nZXQoInR5cGUiKTtpZigib2F1dGgyIj09PWEmJnQuZ2V0KCJmbG93cyIpLmVudHJ5U2VxKCkuZm9yRWFjaCgoKFthLG5dKT0+e2xldCBzPSgwLGsuZnJvbUpTKSh7ZmxvdzphLGF1dGhvcml6YXRpb25Vcmw6bi5nZXQoImF1dGhvcml6YXRpb25VcmwiKSx0b2tlblVybDpuLmdldCgidG9rZW5VcmwiKSxzY29wZXM6bi5nZXQoInNjb3BlcyIpLHR5cGU6dC5nZXQoInR5cGUiKSxkZXNjcmlwdGlvbjp0LmdldCgiZGVzY3JpcHRpb24iKX0pO3I9ci5wdXNoKG5ldyBrLk1hcCh7W2VdOnMuZmlsdGVyKChlPT52b2lkIDAhPT1lKSl9KSl9KSksImh0dHAiIT09YSYmImFwaUtleSIhPT1hfHwocj1yLnB1c2gobmV3IGsuTWFwKHtbZV06dH0pKSksIm9wZW5JZENvbm5lY3QiPT09YSYmdC5nZXQoIm9wZW5JZENvbm5lY3REYXRhIikpe2xldCBhPXQuZ2V0KCJvcGVuSWRDb25uZWN0RGF0YSIpOyhhLmdldCgiZ3JhbnRfdHlwZXNfc3VwcG9ydGVkIil8fFsiYXV0aG9yaXphdGlvbl9jb2RlIiwiaW1wbGljaXQiXSkuZm9yRWFjaCgobj0+e2xldCBzPWEuZ2V0KCJzY29wZXNfc3VwcG9ydGVkIikmJmEuZ2V0KCJzY29wZXNfc3VwcG9ydGVkIikucmVkdWNlKCgoZSx0KT0+ZS5zZXQodCwiIikpLG5ldyBrLk1hcCksbz0oMCxrLmZyb21KUykoe2Zsb3c6bixhdXRob3JpemF0aW9uVXJsOmEuZ2V0KCJhdXRob3JpemF0aW9uX2VuZHBvaW50IiksdG9rZW5Vcmw6YS5nZXQoInRva2VuX2VuZHBvaW50Iiksc2NvcGVzOnMsdHlwZToib2F1dGgyIixvcGVuSWRDb25uZWN0VXJsOnQuZ2V0KCJvcGVuSWRDb25uZWN0VXJsIil9KTtyPXIucHVzaChuZXcgay5NYXAoe1tlXTpvLmZpbHRlcigoZT0+dm9pZCAwIT09ZSkpfSkpfSkpfX0pKSxyKTpyfSkpKTtmdW5jdGlvbiBPQVMzQ29tcG9uZW50V3JhcEZhY3RvcnkoZSl7cmV0dXJuKHQscik9PmE9PiJmdW5jdGlvbiI9PXR5cGVvZiByLnNwZWNTZWxlY3RvcnM/LmlzT0FTMz9yLnNwZWNTZWxlY3RvcnMuaXNPQVMzKCk/TygpLmNyZWF0ZUVsZW1lbnQoZSxRZSgpKHt9LGEscix7T3JpOnR9KSk6TygpLmNyZWF0ZUVsZW1lbnQodCxhKTooY29uc29sZS53YXJuKCJPQVMzIHdyYXBwZXI6IGNvdWxkbid0IGdldCBzcGVjIiksbnVsbCl9Y29uc3QgTm49KDAsay5NYXApKCksc2VsZWN0b3JzX2lzU3dhZ2dlcjI9KCk9PmU9PmZ1bmN0aW9uIGlzU3dhZ2dlcjIoZSl7Y29uc3QgdD1lLmdldCgic3dhZ2dlciIpO3JldHVybiJzdHJpbmciPT10eXBlb2YgdCYmIjIuMCI9PT10fShlLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuc3BlY0pzb24oKSksc2VsZWN0b3JzX2lzT0FTMzA9KCk9PmU9PmZ1bmN0aW9uIGlzT0FTMzAoZSl7Y29uc3QgdD1lLmdldCgib3BlbmFwaSIpO3JldHVybiJzdHJpbmciPT10eXBlb2YgdCYmL14zXC4wXC4oPzpbMS05XVxkKnwwKSQvLnRlc3QodCl9KGUuZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpKSxzZWxlY3RvcnNfaXNPQVMzPSgpPT5lPT5lLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuaXNPQVMzMCgpO2Z1bmN0aW9uIHNlbGVjdG9yc19vbmx5T0FTMyhlKXtyZXR1cm4odCwuLi5yKT0+YT0+e2lmKGEuc3BlY1NlbGVjdG9ycy5pc09BUzMoKSl7Y29uc3Qgbj1lKHQsLi4ucik7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG4/bihhKTpufXJldHVybiBudWxsfX1jb25zdCBrbj1zZWxlY3RvcnNfb25seU9BUzMoKCgpPT5lPT5lLnNwZWNTZWxlY3RvcnMuc3BlY0pzb24oKS5nZXQoInNlcnZlcnMiLE5uKSkpLGZpbmRTY2hlbWE9KGUsdCk9Pntjb25zdCByPWUuZ2V0SW4oWyJyZXNvbHZlZFN1YnRyZWVzIiwiY29tcG9uZW50cyIsInNjaGVtYXMiLHRdLG51bGwpLGE9ZS5nZXRJbihbImpzb24iLCJjb21wb25lbnRzIiwic2NoZW1hcyIsdF0sbnVsbCk7cmV0dXJuIHJ8fGF8fG51bGx9LEFuPXNlbGVjdG9yc19vbmx5T0FTMygoKGUse2NhbGxiYWNrczp0LHNwZWNQYXRoOnJ9KT0+ZT0+e2NvbnN0IGE9ZS5zcGVjU2VsZWN0b3JzLnZhbGlkT3BlcmF0aW9uTWV0aG9kcygpO3JldHVybiBrLk1hcC5pc01hcCh0KT90LnJlZHVjZSgoKGUsdCxuKT0+e2lmKCFrLk1hcC5pc01hcCh0KSlyZXR1cm4gZTtjb25zdCBzPXQucmVkdWNlKCgoZSx0LHMpPT57aWYoIWsuTWFwLmlzTWFwKHQpKXJldHVybiBlO2NvbnN0IG89dC5lbnRyeVNlcSgpLmZpbHRlcigoKFtlXSk9PmEuaW5jbHVkZXMoZSkpKS5tYXAoKChbZSx0XSk9Pih7b3BlcmF0aW9uOigwLGsuTWFwKSh7b3BlcmF0aW9uOnR9KSxtZXRob2Q6ZSxwYXRoOnMsY2FsbGJhY2tOYW1lOm4sc3BlY1BhdGg6ci5jb25jYXQoW24scyxlXSl9KSkpO3JldHVybiBlLmNvbmNhdChvKX0pLCgwLGsuTGlzdCkoKSk7cmV0dXJuIGUuY29uY2F0KHMpfSksKDAsay5MaXN0KSgpKS5ncm91cEJ5KChlPT5lLmNhbGxiYWNrTmFtZSkpLm1hcCgoZT0+ZS50b0FycmF5KCkpKS50b09iamVjdCgpOnt9fSkpLGNhbGxiYWNrcz0oe2NhbGxiYWNrczplLHNwZWNQYXRoOnQsc3BlY1NlbGVjdG9yczpyLGdldENvbXBvbmVudDphfSk9Pntjb25zdCBuPXIuY2FsbGJhY2tzT3BlcmF0aW9ucyh7Y2FsbGJhY2tzOmUsc3BlY1BhdGg6dH0pLHM9T2JqZWN0LmtleXMobiksbz1hKCJPcGVyYXRpb25Db250YWluZXIiLCEwKTtyZXR1cm4gMD09PXMubGVuZ3RoP08oKS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCJObyBjYWxsYmFja3MiKTpPKCkuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLHMubWFwKChlPT5PKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5OmAke2V9YH0sTygpLmNyZWF0ZUVsZW1lbnQoImgyIixudWxsLGUpLG5bZV0ubWFwKCh0PT5PKCkuY3JlYXRlRWxlbWVudChvLHtrZXk6YCR7ZX0tJHt0LnBhdGh9LSR7dC5tZXRob2R9YCxvcDp0Lm9wZXJhdGlvbix0YWc6ImNhbGxiYWNrcyIsbWV0aG9kOnQubWV0aG9kLHBhdGg6dC5wYXRoLHNwZWNQYXRoOnQuc3BlY1BhdGgsYWxsb3dUcnlJdE91dDohMX0pKSkpKSkpfSxnZXREZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZT0oZSx0LHIsYSk9Pntjb25zdCBuPWUuZ2V0SW4oWyJjb250ZW50Iix0XSk/PygwLGsuT3JkZXJlZE1hcCkoKSxzPW4uZ2V0KCJzY2hlbWEiLCgwLGsuT3JkZXJlZE1hcCkoKSkudG9KUygpLG89dm9pZCAwIT09bi5nZXQoImV4YW1wbGVzIiksbD1uLmdldCgiZXhhbXBsZSIpLGM9bz9uLmdldEluKFsiZXhhbXBsZXMiLHIsInZhbHVlIl0pOmw7cmV0dXJuIHN0cmluZ2lmeShhLmdldFNhbXBsZVNjaGVtYShzLHQse2luY2x1ZGVXcml0ZU9ubHk6ITB9LGMpKX0scmVxdWVzdF9ib2R5PSh7dXNlckhhc0VkaXRlZEJvZHk6ZSxyZXF1ZXN0Qm9keTp0LHJlcXVlc3RCb2R5VmFsdWU6cixyZXF1ZXN0Qm9keUluY2x1c2lvblNldHRpbmc6YSxyZXF1ZXN0Qm9keUVycm9yczpuLGdldENvbXBvbmVudDpzLGdldENvbmZpZ3M6byxzcGVjU2VsZWN0b3JzOmwsZm46Yyxjb250ZW50VHlwZTppLGlzRXhlY3V0ZTpwLHNwZWNQYXRoOm0sb25DaGFuZ2U6dSxvbkNoYW5nZUluY2x1ZGVFbXB0eTpkLGFjdGl2ZUV4YW1wbGVzS2V5OmgsdXBkYXRlQWN0aXZlRXhhbXBsZXNLZXk6ZyxzZXRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlRmxhZzp5fSk9Pntjb25zdCBoYW5kbGVGaWxlPWU9Pnt1KGUudGFyZ2V0LmZpbGVzWzBdKX0sc2V0SXNJbmNsdWRlZE9wdGlvbnM9ZT0+e2xldCB0PXtrZXk6ZSxzaG91bGREaXNwYXRjaEluaXQ6ITEsZGVmYXVsdFZhbHVlOiEwfTtyZXR1cm4ibm8gdmFsdWUiPT09YS5nZXQoZSwibm8gdmFsdWUiKSYmKHQuc2hvdWxkRGlzcGF0Y2hJbml0PSEwKSx0fSxmPXMoIk1hcmtkb3duIiwhMCksUz1zKCJtb2RlbEV4YW1wbGUiKSxFPXMoIlJlcXVlc3RCb2R5RWRpdG9yIiksXz1zKCJIaWdobGlnaHRDb2RlIiwhMCksdj1zKCJFeGFtcGxlc1NlbGVjdFZhbHVlUmV0YWluZXIiKSx3PXMoIkV4YW1wbGUiKSxiPXMoIlBhcmFtZXRlckluY2x1ZGVFbXB0eSIpLHtzaG93Q29tbW9uRXh0ZW5zaW9uczpDfT1vKCkseD10Py5nZXQoImRlc2NyaXB0aW9uIik/P251bGwsTj10Py5nZXQoImNvbnRlbnQiKT8/bmV3IGsuT3JkZXJlZE1hcDtpPWl8fE4ua2V5U2VxKCkuZmlyc3QoKXx8IiI7Y29uc3QgQT1OLmdldChpKT8/KDAsay5PcmRlcmVkTWFwKSgpLEk9QS5nZXQoInNjaGVtYSIsKDAsay5PcmRlcmVkTWFwKSgpKSxqPUEuZ2V0KCJleGFtcGxlcyIsbnVsbCkscT1qPy5tYXAoKChlLHIpPT57Y29uc3QgYT1lPy5nZXQoInZhbHVlIixudWxsKTtyZXR1cm4gYSYmKGU9ZS5zZXQoInZhbHVlIixnZXREZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZSh0LGkscixjKSxhKSksZX0pKTtuPWsuTGlzdC5pc0xpc3Qobik/bjooMCxrLkxpc3QpKCk7aWYoYy5pc0ZpbGVVcGxvYWRJbnRlbmRlZChBPy5nZXQoInNjaGVtYSIpLGkpKXtjb25zdCBlPXMoIklucHV0Iik7cmV0dXJuIHA/TygpLmNyZWF0ZUVsZW1lbnQoZSx7dHlwZToiZmlsZSIsb25DaGFuZ2U6aGFuZGxlRmlsZX0pOk8oKS5jcmVhdGVFbGVtZW50KCJpIixudWxsLCJFeGFtcGxlIHZhbHVlcyBhcmUgbm90IGF2YWlsYWJsZSBmb3IgIixPKCkuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCxpKSwiIG1lZGlhIHR5cGVzLiIpfWlmKCFBLnNpemUpcmV0dXJuIG51bGw7aWYoYy5oYXNTY2hlbWFUeXBlKEEuZ2V0KCJzY2hlbWEiKSwib2JqZWN0IikmJigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIj09PWl8fDA9PT1pLmluZGV4T2YoIm11bHRpcGFydC8iKSkmJkkuZ2V0KCJwcm9wZXJ0aWVzIiwoMCxrLk9yZGVyZWRNYXApKCkpLnNpemU+MCl7Y29uc3QgZT1zKCJKc29uU2NoZW1hRm9ybSIpLHQ9cygiUGFyYW1ldGVyRXh0IiksaT1JLmdldCgicHJvcGVydGllcyIsKDAsay5PcmRlcmVkTWFwKSgpKTtyZXR1cm4gcj1rLk1hcC5pc01hcChyKT9yOigwLGsuT3JkZXJlZE1hcCkoKSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJ0YWJsZS1jb250YWluZXIifSx4JiZPKCkuY3JlYXRlRWxlbWVudChmLHtzb3VyY2U6eH0pLE8oKS5jcmVhdGVFbGVtZW50KCJ0YWJsZSIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgidGJvZHkiLG51bGwsay5NYXAuaXNNYXAoaSkmJmkuZW50cnlTZXEoKS5tYXAoKChbaSxoXSk9PntpZihoLmdldCgicmVhZE9ubHkiKSlyZXR1cm47Y29uc3QgZz1oLmdldCgib25lT2YiKT8uZ2V0KDApPy50b0pTKCkseT1oLmdldCgiYW55T2YiKT8uZ2V0KDApPy50b0pTKCk7aD0oMCxrLmZyb21KUykoYy5tZXJnZUpzb25TY2hlbWEoaC50b0pTKCksZz8/eT8/e30pKTtsZXQgRT1DP2dldENvbW1vbkV4dGVuc2lvbnMoaCk6bnVsbDtjb25zdCBfPUkuZ2V0KCJyZXF1aXJlZCIsKDAsay5MaXN0KSgpKS5pbmNsdWRlcyhpKSx2PWMuZ2V0U2NoZW1hT2JqZWN0VHlwZShoKSx3PWMuZ2V0U2NoZW1hT2JqZWN0VHlwZUxhYmVsKGgpLHg9Yy5nZXRTY2hlbWFPYmplY3RUeXBlKGg/LmdldCgiaXRlbXMiKSksTj1oLmdldCgiZm9ybWF0IiksQT1oLmdldCgiZGVzY3JpcHRpb24iKSxqPXIuZ2V0SW4oW2ksInZhbHVlIl0pLHE9ci5nZXRJbihbaSwiZXJyb3JzIl0pfHxuLFA9YS5nZXQoaSl8fCExO2xldCBNPWMuZ2V0U2FtcGxlU2NoZW1hKGgsITEse2luY2x1ZGVXcml0ZU9ubHk6ITB9KTshMT09PU0mJihNPSJmYWxzZSIpLDA9PT1NJiYoTT0iMCIpLCJzdHJpbmciIT10eXBlb2YgTSYmIm9iamVjdCI9PT12JiYoTT1zdHJpbmdpZnkoTSkpLCJzdHJpbmciPT10eXBlb2YgTSYmImFycmF5Ij09PXYmJihNPUpTT04ucGFyc2UoTSkpO2NvbnN0IFQ9Yy5pc0ZpbGVVcGxvYWRJbnRlbmRlZChoKSxSPU8oKS5jcmVhdGVFbGVtZW50KGUse2ZuOmMsZGlzcGF0Y2hJbml0aWFsVmFsdWU6IVQsc2NoZW1hOmgsZGVzY3JpcHRpb246aSxnZXRDb21wb25lbnQ6cyx2YWx1ZTp2b2lkIDA9PT1qP006aixyZXF1aXJlZDpfLGVycm9yczpxLG9uQ2hhbmdlOmU9Pnt1KGUsW2ldKX19KTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoInRyIix7a2V5OmksY2xhc3NOYW1lOiJwYXJhbWV0ZXJzIiwiZGF0YS1wcm9wZXJ0eS1uYW1lIjppfSxPKCkuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6InBhcmFtZXRlcnMtY29sX25hbWUifSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOl8/InBhcmFtZXRlcl9fbmFtZSByZXF1aXJlZCI6InBhcmFtZXRlcl9fbmFtZSJ9LGksXz9PKCkuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCwiwqAqIik6bnVsbCksTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToicGFyYW1ldGVyX190eXBlIn0sdyxOJiZPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToicHJvcC1mb3JtYXQifSwiKCQiLE4sIikiKSxDJiZFLnNpemU/RS5lbnRyeVNlcSgpLm1hcCgoKFtlLHJdKT0+TygpLmNyZWF0ZUVsZW1lbnQodCx7a2V5OmAke2V9LSR7cn1gLHhLZXk6ZSx4VmFsOnJ9KSkpOm51bGwpLE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InBhcmFtZXRlcl9fZGVwcmVjYXRlZCJ9LGguZ2V0KCJkZXByZWNhdGVkIik/ImRlcHJlY2F0ZWQiOm51bGwpKSxPKCkuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6InBhcmFtZXRlcnMtY29sX2Rlc2NyaXB0aW9uIn0sTygpLmNyZWF0ZUVsZW1lbnQoZix7c291cmNlOkF9KSxwP08oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsIm9iamVjdCI9PT12fHwib2JqZWN0Ij09PXg/TygpLmNyZWF0ZUVsZW1lbnQoUyx7Z2V0Q29tcG9uZW50OnMsc3BlY1BhdGg6bS5wdXNoKCJzY2hlbWEiKSxnZXRDb25maWdzOm8saXNFeGVjdXRlOnAsc3BlY1NlbGVjdG9yczpsLHNjaGVtYTpoLGV4YW1wbGU6Un0pOlIsXz9udWxsOk8oKS5jcmVhdGVFbGVtZW50KGIse29uQ2hhbmdlOmU9PmQoaSxlKSxpc0luY2x1ZGVkOlAsaXNJbmNsdWRlZE9wdGlvbnM6c2V0SXNJbmNsdWRlZE9wdGlvbnMoaSksaXNEaXNhYmxlZDpBcnJheS5pc0FycmF5KGopPzAhPT1qLmxlbmd0aDohaXNFbXB0eVZhbHVlKGopfSkpOm51bGwpKX0pKSkpKX1jb25zdCBQPWdldERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlKHQsaSxoLGMpO2xldCBNPW51bGw7Z2V0S25vd25TeW50YXhIaWdobGlnaHRlckxhbmd1YWdlKFApJiYoTT0ianNvbiIpO2NvbnN0IFQ9cD9PKCkuY3JlYXRlRWxlbWVudChFLHt2YWx1ZTpyLGVycm9yczpuLGRlZmF1bHRWYWx1ZTpQLG9uQ2hhbmdlOnUsZ2V0Q29tcG9uZW50OnN9KTpPKCkuY3JlYXRlRWxlbWVudChfLHtjbGFzc05hbWU6ImJvZHktcGFyYW1fX2V4YW1wbGUiLGxhbmd1YWdlOk19LHN0cmluZ2lmeShyKXx8UCk7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwseCYmTygpLmNyZWF0ZUVsZW1lbnQoZix7c291cmNlOnh9KSxxP08oKS5jcmVhdGVFbGVtZW50KHYse3VzZXJIYXNFZGl0ZWRCb2R5OmUsZXhhbXBsZXM6cSxjdXJyZW50S2V5OmgsY3VycmVudFVzZXJJbnB1dFZhbHVlOnIsb25TZWxlY3Q6ZT0+e2coZSl9LHVwZGF0ZVZhbHVlOnUsZGVmYXVsdFRvRmlyc3RFeGFtcGxlOiEwLGdldENvbXBvbmVudDpzLHNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnOnl9KTpudWxsLE8oKS5jcmVhdGVFbGVtZW50KFMse2dldENvbXBvbmVudDpzLGdldENvbmZpZ3M6byxzcGVjU2VsZWN0b3JzOmwsZXhwYW5kRGVwdGg6MSxpc0V4ZWN1dGU6cCxzY2hlbWE6QS5nZXQoInNjaGVtYSIpLHNwZWNQYXRoOm0ucHVzaCgiY29udGVudCIsaSksZXhhbXBsZTpULGluY2x1ZGVXcml0ZU9ubHk6ITB9KSxxP08oKS5jcmVhdGVFbGVtZW50KHcse2V4YW1wbGU6cS5nZXQoaCksZ2V0Q29tcG9uZW50OnMsZ2V0Q29uZmlnczpvfSk6bnVsbCl9O2NsYXNzIG9wZXJhdGlvbl9saW5rX09wZXJhdGlvbkxpbmsgZXh0ZW5kcyB4LkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHtsaW5rOmUsbmFtZTp0LGdldENvbXBvbmVudDpyfT10aGlzLnByb3BzLGE9cigiTWFya2Rvd24iLCEwKTtsZXQgbj1lLmdldCgib3BlcmF0aW9uSWQiKXx8ZS5nZXQoIm9wZXJhdGlvblJlZiIpLHM9ZS5nZXQoInBhcmFtZXRlcnMiKSYmZS5nZXQoInBhcmFtZXRlcnMiKS50b0pTKCksbz1lLmdldCgiZGVzY3JpcHRpb24iKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BlcmF0aW9uLWxpbmsifSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJkZXNjcmlwdGlvbiJ9LE8oKS5jcmVhdGVFbGVtZW50KCJiIixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLHQpKSxvP08oKS5jcmVhdGVFbGVtZW50KGEse3NvdXJjZTpvfSk6bnVsbCksTygpLmNyZWF0ZUVsZW1lbnQoInByZSIsbnVsbCwiT3BlcmF0aW9uIGAiLG4sImAiLE8oKS5jcmVhdGVFbGVtZW50KCJiciIsbnVsbCksTygpLmNyZWF0ZUVsZW1lbnQoImJyIixudWxsKSwiUGFyYW1ldGVycyAiLGZ1bmN0aW9uIHBhZFN0cmluZyhlLHQpe2lmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4iIjtyZXR1cm4gdC5zcGxpdCgiXG4iKS5tYXAoKCh0LHIpPT5yPjA/QXJyYXkoZSsxKS5qb2luKCIgIikrdDp0KSkuam9pbigiXG4iKX0oMCxKU09OLnN0cmluZ2lmeShzLG51bGwsMikpfHwie30iLE8oKS5jcmVhdGVFbGVtZW50KCJiciIsbnVsbCkpKX19Y29uc3QgSW49b3BlcmF0aW9uX2xpbmtfT3BlcmF0aW9uTGluayxjb21wb25lbnRzX3NlcnZlcnM9KHtzZXJ2ZXJzOmUsY3VycmVudFNlcnZlcjp0LHNldFNlbGVjdGVkU2VydmVyOnIsc2V0U2VydmVyVmFyaWFibGVWYWx1ZTphLGdldFNlcnZlclZhcmlhYmxlOm4sZ2V0RWZmZWN0aXZlU2VydmVyVmFsdWU6c30pPT57Y29uc3Qgbz0oZS5maW5kKChlPT5lLmdldCgidXJsIik9PT10KSl8fCgwLGsuT3JkZXJlZE1hcCkoKSkuZ2V0KCJ2YXJpYWJsZXMiKXx8KDAsay5PcmRlcmVkTWFwKSgpLGw9MCE9PW8uc2l6ZTsoMCx4LnVzZUVmZmVjdCkoKCgpPT57dHx8cihlLmZpcnN0KCk/LmdldCgidXJsIikpfSksW10pLCgwLHgudXNlRWZmZWN0KSgoKCk9Pntjb25zdCBuPWUuZmluZCgoZT0+ZS5nZXQoInVybCIpPT09dCkpO2lmKCFuKXJldHVybiB2b2lkIHIoZS5maXJzdCgpLmdldCgidXJsIikpOyhuLmdldCgidmFyaWFibGVzIil8fCgwLGsuT3JkZXJlZE1hcCkoKSkubWFwKCgoZSxyKT0+e2Eoe3NlcnZlcjp0LGtleTpyLHZhbDplLmdldCgiZGVmYXVsdCIpfHwiIn0pfSkpfSksW3QsZV0pO2NvbnN0IGM9KDAseC51c2VDYWxsYmFjaykoKGU9PntyKGUudGFyZ2V0LnZhbHVlKX0pLFtyXSksaT0oMCx4LnVzZUNhbGxiYWNrKSgoZT0+e2NvbnN0IHI9ZS50YXJnZXQuZ2V0QXR0cmlidXRlKCJkYXRhLXZhcmlhYmxlIiksbj1lLnRhcmdldC52YWx1ZTthKHtzZXJ2ZXI6dCxrZXk6cix2YWw6bn0pfSksW2EsdF0pO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJzZXJ2ZXJzIn0sTygpLmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjoic2VydmVycyJ9LE8oKS5jcmVhdGVFbGVtZW50KCJzZWxlY3QiLHtvbkNoYW5nZTpjLHZhbHVlOnQsaWQ6InNlcnZlcnMifSxlLnZhbHVlU2VxKCkubWFwKChlPT5PKCkuY3JlYXRlRWxlbWVudCgib3B0aW9uIix7dmFsdWU6ZS5nZXQoInVybCIpLGtleTplLmdldCgidXJsIil9LGUuZ2V0KCJ1cmwiKSxlLmdldCgiZGVzY3JpcHRpb24iKSYmYCAtICR7ZS5nZXQoImRlc2NyaXB0aW9uIil9YCkpKS50b0FycmF5KCkpKSxsJiZPKCkuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImNvbXB1dGVkLXVybCJ9LCJDb21wdXRlZCBVUkw6IixPKCkuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCxzKHQpKSksTygpLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLCJTZXJ2ZXIgdmFyaWFibGVzIiksTygpLmNyZWF0ZUVsZW1lbnQoInRhYmxlIixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJ0Ym9keSIsbnVsbCxvLmVudHJ5U2VxKCkubWFwKCgoW2Uscl0pPT5PKCkuY3JlYXRlRWxlbWVudCgidHIiLHtrZXk6ZX0sTygpLmNyZWF0ZUVsZW1lbnQoInRkIixudWxsLGUpLE8oKS5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxyLmdldCgiZW51bSIpP08oKS5jcmVhdGVFbGVtZW50KCJzZWxlY3QiLHsiZGF0YS12YXJpYWJsZSI6ZSxvbkNoYW5nZTppfSxyLmdldCgiZW51bSIpLm1hcCgocj0+TygpLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIse3NlbGVjdGVkOnI9PT1uKHQsZSksa2V5OnIsdmFsdWU6cn0scikpKSk6TygpLmNyZWF0ZUVsZW1lbnQoImlucHV0Iix7dHlwZToidGV4dCIsdmFsdWU6bih0LGUpfHwiIixvbkNoYW5nZTppLCJkYXRhLXZhcmlhYmxlIjplfSkpKSkpKSkpKX07Y2xhc3MgU2VydmVyc0NvbnRhaW5lciBleHRlbmRzIE8oKS5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7c3BlY1NlbGVjdG9yczplLG9hczNTZWxlY3RvcnM6dCxvYXMzQWN0aW9uczpyLGdldENvbXBvbmVudDphfT10aGlzLnByb3BzLG49ZS5zZXJ2ZXJzKCkscz1hKCJTZXJ2ZXJzIik7cmV0dXJuIG4mJm4uc2l6ZT9PKCkuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJzZXJ2ZXJzLXRpdGxlIn0sIlNlcnZlcnMiKSxPKCkuY3JlYXRlRWxlbWVudChzLHtzZXJ2ZXJzOm4sY3VycmVudFNlcnZlcjp0LnNlbGVjdGVkU2VydmVyKCksc2V0U2VsZWN0ZWRTZXJ2ZXI6ci5zZXRTZWxlY3RlZFNlcnZlcixzZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlOnIuc2V0U2VydmVyVmFyaWFibGVWYWx1ZSxnZXRTZXJ2ZXJWYXJpYWJsZTp0LnNlcnZlclZhcmlhYmxlVmFsdWUsZ2V0RWZmZWN0aXZlU2VydmVyVmFsdWU6dC5zZXJ2ZXJFZmZlY3RpdmVWYWx1ZX0pKTpudWxsfX1jb25zdCBqbj1GdW5jdGlvbi5wcm90b3R5cGU7Y2xhc3MgUmVxdWVzdEJvZHlFZGl0b3IgZXh0ZW5kcyB4LlB1cmVDb21wb25lbnR7c3RhdGljIGRlZmF1bHRQcm9wcz17b25DaGFuZ2U6am4sdXNlckhhc0VkaXRlZEJvZHk6ITF9O2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLnN0YXRlPXt2YWx1ZTpzdHJpbmdpZnkoZS52YWx1ZSl8fGUuZGVmYXVsdFZhbHVlfSxlLm9uQ2hhbmdlKGUudmFsdWUpfWFwcGx5RGVmYXVsdFZhbHVlPWU9Pntjb25zdHtvbkNoYW5nZTp0LGRlZmF1bHRWYWx1ZTpyfT1lfHx0aGlzLnByb3BzO3JldHVybiB0aGlzLnNldFN0YXRlKHt2YWx1ZTpyfSksdChyKX07b25DaGFuZ2U9ZT0+e3RoaXMucHJvcHMub25DaGFuZ2Uoc3RyaW5naWZ5KGUpKX07b25Eb21DaGFuZ2U9ZT0+e2NvbnN0IHQ9ZS50YXJnZXQudmFsdWU7dGhpcy5zZXRTdGF0ZSh7dmFsdWU6dH0sKCgpPT50aGlzLm9uQ2hhbmdlKHQpKSl9O1VOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKGUpe3RoaXMucHJvcHMudmFsdWUhPT1lLnZhbHVlJiZlLnZhbHVlIT09dGhpcy5zdGF0ZS52YWx1ZSYmdGhpcy5zZXRTdGF0ZSh7dmFsdWU6c3RyaW5naWZ5KGUudmFsdWUpfSksIWUudmFsdWUmJmUuZGVmYXVsdFZhbHVlJiZ0aGlzLnN0YXRlLnZhbHVlJiZ0aGlzLmFwcGx5RGVmYXVsdFZhbHVlKGUpfXJlbmRlcigpe2xldHtnZXRDb21wb25lbnQ6ZSxlcnJvcnM6dH09dGhpcy5wcm9wcyx7dmFsdWU6cn09dGhpcy5zdGF0ZSxhPXQuc2l6ZT4wO2NvbnN0IG49ZSgiVGV4dEFyZWEiKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiYm9keS1wYXJhbSJ9LE8oKS5jcmVhdGVFbGVtZW50KG4se2NsYXNzTmFtZTpwdCgpKCJib2R5LXBhcmFtX190ZXh0Iix7aW52YWxpZDphfSksdGl0bGU6dC5zaXplP3Quam9pbigiLCAiKToiIix2YWx1ZTpyLG9uQ2hhbmdlOnRoaXMub25Eb21DaGFuZ2V9KSl9fWNsYXNzIEh0dHBBdXRoIGV4dGVuZHMgTygpLkNvbXBvbmVudHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCk7bGV0e25hbWU6cixzY2hlbWE6YX09dGhpcy5wcm9wcyxuPXRoaXMuZ2V0VmFsdWUoKTt0aGlzLnN0YXRlPXtuYW1lOnIsc2NoZW1hOmEsdmFsdWU6bn19Z2V0VmFsdWUoKXtsZXR7bmFtZTplLGF1dGhvcml6ZWQ6dH09dGhpcy5wcm9wcztyZXR1cm4gdCYmdC5nZXRJbihbZSwidmFsdWUiXSl9b25DaGFuZ2U9ZT0+e2xldHtvbkNoYW5nZTp0fT10aGlzLnByb3BzLHt2YWx1ZTpyLG5hbWU6YX09ZS50YXJnZXQsbj1PYmplY3QuYXNzaWduKHt9LHRoaXMuc3RhdGUudmFsdWUpO2E/blthXT1yOm49cix0aGlzLnNldFN0YXRlKHt2YWx1ZTpufSwoKCk9PnQodGhpcy5zdGF0ZSkpKX07cmVuZGVyKCl7bGV0e3NjaGVtYTplLGdldENvbXBvbmVudDp0LGVyclNlbGVjdG9yczpyLG5hbWU6YSxhdXRoU2VsZWN0b3JzOm59PXRoaXMucHJvcHM7Y29uc3Qgcz10KCJJbnB1dCIpLG89dCgiUm93IiksbD10KCJDb2wiKSxjPXQoImF1dGhFcnJvciIpLGk9dCgiTWFya2Rvd24iLCEwKSxwPXQoIkp1bXBUb1BhdGgiLCEwKSxtPShlLmdldCgic2NoZW1lIil8fCIiKS50b0xvd2VyQ2FzZSgpLHU9bi5zZWxlY3RBdXRoUGF0aChhKTtsZXQgZD10aGlzLmdldFZhbHVlKCksaD1yLmFsbEVycm9ycygpLmZpbHRlcigoZT0+ZS5nZXQoImF1dGhJZCIpPT09YSkpO2lmKCJiYXNpYyI9PT1tKXtsZXQgdD1kP2QuZ2V0KCJ1c2VybmFtZSIpOm51bGw7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLGEpLCLCoCAoaHR0cCwgQmFzaWMpIixPKCkuY3JlYXRlRWxlbWVudChwLHtwYXRoOnV9KSksdCYmTygpLmNyZWF0ZUVsZW1lbnQoImg2IixudWxsLCJBdXRob3JpemVkIiksTygpLmNyZWF0ZUVsZW1lbnQobyxudWxsLE8oKS5jcmVhdGVFbGVtZW50KGkse3NvdXJjZTplLmdldCgiZGVzY3JpcHRpb24iKX0pKSxPKCkuY3JlYXRlRWxlbWVudChvLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjoiYXV0aC1iYXNpYy11c2VybmFtZSJ9LCJVc2VybmFtZToiKSx0P08oKS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCIgIix0LCIgIik6TygpLmNyZWF0ZUVsZW1lbnQobCxudWxsLE8oKS5jcmVhdGVFbGVtZW50KHMse2lkOiJhdXRoLWJhc2ljLXVzZXJuYW1lIix0eXBlOiJ0ZXh0IixyZXF1aXJlZDoicmVxdWlyZWQiLG5hbWU6InVzZXJuYW1lIiwiYXJpYS1sYWJlbCI6ImF1dGgtYmFzaWMtdXNlcm5hbWUiLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2UsYXV0b0ZvY3VzOiEwfSkpKSxPKCkuY3JlYXRlRWxlbWVudChvLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjoiYXV0aC1iYXNpYy1wYXNzd29yZCJ9LCJQYXNzd29yZDoiKSx0P08oKS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCIgKioqKioqICIpOk8oKS5jcmVhdGVFbGVtZW50KGwsbnVsbCxPKCkuY3JlYXRlRWxlbWVudChzLHtpZDoiYXV0aC1iYXNpYy1wYXNzd29yZCIsYXV0b0NvbXBsZXRlOiJuZXctcGFzc3dvcmQiLG5hbWU6InBhc3N3b3JkIix0eXBlOiJwYXNzd29yZCIsImFyaWEtbGFiZWwiOiJhdXRoLWJhc2ljLXBhc3N3b3JkIixvbkNoYW5nZTp0aGlzLm9uQ2hhbmdlfSkpKSxoLnZhbHVlU2VxKCkubWFwKCgoZSx0KT0+TygpLmNyZWF0ZUVsZW1lbnQoYyx7ZXJyb3I6ZSxrZXk6dH0pKSkpfXJldHVybiJiZWFyZXIiPT09bT9PKCkuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJoNCIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCxhKSwiwqAgKGh0dHAsIEJlYXJlcikiLE8oKS5jcmVhdGVFbGVtZW50KHAse3BhdGg6dX0pKSxkJiZPKCkuY3JlYXRlRWxlbWVudCgiaDYiLG51bGwsIkF1dGhvcml6ZWQiKSxPKCkuY3JlYXRlRWxlbWVudChvLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoaSx7c291cmNlOmUuZ2V0KCJkZXNjcmlwdGlvbiIpfSkpLE8oKS5jcmVhdGVFbGVtZW50KG8sbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtodG1sRm9yOiJhdXRoLWJlYXJlci12YWx1ZSJ9LCJWYWx1ZToiKSxkP08oKS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCIgKioqKioqICIpOk8oKS5jcmVhdGVFbGVtZW50KGwsbnVsbCxPKCkuY3JlYXRlRWxlbWVudChzLHtpZDoiYXV0aC1iZWFyZXItdmFsdWUiLHR5cGU6InRleHQiLCJhcmlhLWxhYmVsIjoiYXV0aC1iZWFyZXItdmFsdWUiLG9uQ2hhbmdlOnRoaXMub25DaGFuZ2UsYXV0b0ZvY3VzOiEwfSkpKSxoLnZhbHVlU2VxKCkubWFwKCgoZSx0KT0+TygpLmNyZWF0ZUVsZW1lbnQoYyx7ZXJyb3I6ZSxrZXk6dH0pKSkpOk8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoImVtIixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJiIixudWxsLGEpLCIgSFRUUCBhdXRoZW50aWNhdGlvbjogdW5zdXBwb3J0ZWQgc2NoZW1lICIsYCcke219J2ApKX19Y2xhc3MgT3BlcmF0aW9uU2VydmVycyBleHRlbmRzIE8oKS5Db21wb25lbnR7c2V0U2VsZWN0ZWRTZXJ2ZXI9ZT0+e2NvbnN0e3BhdGg6dCxtZXRob2Q6cn09dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5mb3JjZVVwZGF0ZSgpLHRoaXMucHJvcHMuc2V0U2VsZWN0ZWRTZXJ2ZXIoZSxgJHt0fToke3J9YCl9O3NldFNlcnZlclZhcmlhYmxlVmFsdWU9ZT0+e2NvbnN0e3BhdGg6dCxtZXRob2Q6cn09dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5mb3JjZVVwZGF0ZSgpLHRoaXMucHJvcHMuc2V0U2VydmVyVmFyaWFibGVWYWx1ZSh7Li4uZSxuYW1lc3BhY2U6YCR7dH06JHtyfWB9KX07Z2V0U2VsZWN0ZWRTZXJ2ZXI9KCk9Pntjb25zdHtwYXRoOmUsbWV0aG9kOnR9PXRoaXMucHJvcHM7cmV0dXJuIHRoaXMucHJvcHMuZ2V0U2VsZWN0ZWRTZXJ2ZXIoYCR7ZX06JHt0fWApfTtnZXRTZXJ2ZXJWYXJpYWJsZT0oZSx0KT0+e2NvbnN0e3BhdGg6cixtZXRob2Q6YX09dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5wcm9wcy5nZXRTZXJ2ZXJWYXJpYWJsZSh7bmFtZXNwYWNlOmAke3J9OiR7YX1gLHNlcnZlcjplfSx0KX07Z2V0RWZmZWN0aXZlU2VydmVyVmFsdWU9ZT0+e2NvbnN0e3BhdGg6dCxtZXRob2Q6cn09dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5wcm9wcy5nZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZSh7c2VydmVyOmUsbmFtZXNwYWNlOmAke3R9OiR7cn1gfSl9O3JlbmRlcigpe2NvbnN0e29wZXJhdGlvblNlcnZlcnM6ZSxwYXRoU2VydmVyczp0LGdldENvbXBvbmVudDpyfT10aGlzLnByb3BzO2lmKCFlJiYhdClyZXR1cm4gbnVsbDtjb25zdCBhPXIoIlNlcnZlcnMiKSxuPWV8fHQscz1lPyJvcGVyYXRpb24iOiJwYXRoIjtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1zZWN0aW9uIG9wZXJhdGlvbi1zZXJ2ZXJzIn0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1zZWN0aW9uLWhlYWRlciJ9LE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InRhYi1oZWFkZXIifSxPKCkuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6Im9wYmxvY2stdGl0bGUifSwiU2VydmVycyIpKSksTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToib3BibG9jay1kZXNjcmlwdGlvbi13cmFwcGVyIn0sTygpLmNyZWF0ZUVsZW1lbnQoImg0Iix7Y2xhc3NOYW1lOiJtZXNzYWdlIn0sIlRoZXNlICIscywiLWxldmVsIG9wdGlvbnMgb3ZlcnJpZGUgdGhlIGdsb2JhbCBzZXJ2ZXIgb3B0aW9ucy4iKSxPKCkuY3JlYXRlRWxlbWVudChhLHtzZXJ2ZXJzOm4sY3VycmVudFNlcnZlcjp0aGlzLmdldFNlbGVjdGVkU2VydmVyKCksc2V0U2VsZWN0ZWRTZXJ2ZXI6dGhpcy5zZXRTZWxlY3RlZFNlcnZlcixzZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlOnRoaXMuc2V0U2VydmVyVmFyaWFibGVWYWx1ZSxnZXRTZXJ2ZXJWYXJpYWJsZTp0aGlzLmdldFNlcnZlclZhcmlhYmxlLGdldEVmZmVjdGl2ZVNlcnZlclZhbHVlOnRoaXMuZ2V0RWZmZWN0aXZlU2VydmVyVmFsdWV9KSkpfX1jb25zdCBxbj17Q2FsbGJhY2tzOmNhbGxiYWNrcyxIdHRwQXV0aCxSZXF1ZXN0Qm9keTpyZXF1ZXN0X2JvZHksU2VydmVyczpjb21wb25lbnRzX3NlcnZlcnMsU2VydmVyc0NvbnRhaW5lcixSZXF1ZXN0Qm9keUVkaXRvcixPcGVyYXRpb25TZXJ2ZXJzLG9wZXJhdGlvbkxpbms6SW59LFBuPW5ldyBwbi5SZW1hcmthYmxlKCJjb21tb25tYXJrIik7UG4uYmxvY2sucnVsZXIuZW5hYmxlKFsidGFibGUiXSksUG4uc2V0KHtsaW5rVGFyZ2V0OiJfYmxhbmsifSk7Y29uc3QgTW49T0FTM0NvbXBvbmVudFdyYXBGYWN0b3J5KCgoe3NvdXJjZTplLGNsYXNzTmFtZTp0PSIiLGdldENvbmZpZ3M6cj0oKT0+KHt1c2VVbnNhZmVNYXJrZG93bjohMX0pfSk9PntpZigic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIG51bGw7aWYoZSl7Y29uc3R7dXNlVW5zYWZlTWFya2Rvd246YX09cigpLG49c2FuaXRpemVyKFBuLnJlbmRlcihlKSx7dXNlVW5zYWZlTWFya2Rvd246YX0pO2xldCBzO3JldHVybiJzdHJpbmciPT10eXBlb2YgbiYmKHM9bi50cmltKCkpLE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOnN9LGNsYXNzTmFtZTpwdCgpKHQsInJlbmRlcmVkTWFya2Rvd24iKX0pfXJldHVybiBudWxsfSkpLFRuPU9BUzNDb21wb25lbnRXcmFwRmFjdG9yeSgoKHtPcmk6ZSwuLi50fSk9Pntjb25zdHtzY2hlbWE6cixnZXRDb21wb25lbnQ6YSxlcnJTZWxlY3RvcnM6bixhdXRob3JpemVkOnMsb25BdXRoQ2hhbmdlOm8sbmFtZTpsLGF1dGhTZWxlY3RvcnM6Y309dCxpPWEoIkh0dHBBdXRoIik7cmV0dXJuImh0dHAiPT09ci5nZXQoInR5cGUiKT9PKCkuY3JlYXRlRWxlbWVudChpLHtrZXk6bCxzY2hlbWE6cixuYW1lOmwsZXJyU2VsZWN0b3JzOm4sYXV0aG9yaXplZDpzLGdldENvbXBvbmVudDphLG9uQ2hhbmdlOm8sYXV0aFNlbGVjdG9yczpjfSk6TygpLmNyZWF0ZUVsZW1lbnQoZSx0KX0pKSxSbj1PQVMzQ29tcG9uZW50V3JhcEZhY3RvcnkoT25saW5lVmFsaWRhdG9yQmFkZ2UpO2NsYXNzIE1vZGVsQ29tcG9uZW50IGV4dGVuZHMgeC5Db21wb25lbnR7cmVuZGVyKCl7bGV0e2dldENvbmZpZ3M6ZSxzY2hlbWE6dCxPcmk6cn09dGhpcy5wcm9wcyxhPVsibW9kZWwtYm94Il0sbj1udWxsO3JldHVybiEwPT09dC5nZXQoImRlcHJlY2F0ZWQiKSYmKGEucHVzaCgiZGVwcmVjYXRlZCIpLG49TygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Im1vZGVsLWRlcHJlY2F0ZWQtd2FybmluZyJ9LCJEZXByZWNhdGVkOiIpKSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmEuam9pbigiICIpfSxuLE8oKS5jcmVhdGVFbGVtZW50KHIsUWUoKSh7fSx0aGlzLnByb3BzLHtnZXRDb25maWdzOmUsZGVwdGg6MSxleHBhbmREZXB0aDp0aGlzLnByb3BzLmV4cGFuZERlcHRofHwwfSkpKX19Y29uc3QgSm49T0FTM0NvbXBvbmVudFdyYXBGYWN0b3J5KE1vZGVsQ29tcG9uZW50KSwkbj1PQVMzQ29tcG9uZW50V3JhcEZhY3RvcnkoKCh7T3JpOmUsLi4udH0pPT57Y29uc3R7c2NoZW1hOnIsZ2V0Q29tcG9uZW50OmEsZXJyb3JzOm4sb25DaGFuZ2U6cyxmbjpvfT10LGw9by5pc0ZpbGVVcGxvYWRJbnRlbmRlZChyKSxjPWEoIklucHV0Iik7cmV0dXJuIGw/TygpLmNyZWF0ZUVsZW1lbnQoYyx7dHlwZToiZmlsZSIsY2xhc3NOYW1lOm4ubGVuZ3RoPyJpbnZhbGlkIjoiIix0aXRsZTpuLmxlbmd0aD9uOiIiLG9uQ2hhbmdlOmU9PntzKGUudGFyZ2V0LmZpbGVzWzBdKX0sZGlzYWJsZWQ6ZS5pc0Rpc2FibGVkfSk6TygpLmNyZWF0ZUVsZW1lbnQoZSx0KX0pKSxWbj17TWFya2Rvd246TW4sQXV0aEl0ZW06VG4sT3BlbkFQSVZlcnNpb246ZnVuY3Rpb24gT0FTMzBDb21wb25lbnRXcmFwRmFjdG9yeShlKXtyZXR1cm4odCxyKT0+YT0+ImZ1bmN0aW9uIj09dHlwZW9mIHIuc3BlY1NlbGVjdG9ycz8uaXNPQVMzMD9yLnNwZWNTZWxlY3RvcnMuaXNPQVMzMCgpP08oKS5jcmVhdGVFbGVtZW50KGUsUWUoKSh7fSxhLHIse09yaTp0fSkpOk8oKS5jcmVhdGVFbGVtZW50KHQsYSk6KGNvbnNvbGUud2FybigiT0FTMzAgd3JhcHBlcjogY291bGRuJ3QgZ2V0IHNwZWMiKSxudWxsKX0oKGU9Pntjb25zdHtPcmk6dH09ZTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQodCx7b2FzVmVyc2lvbjoiMy4wIn0pfSkpLEpzb25TY2hlbWFfc3RyaW5nOiRuLG1vZGVsOkpuLG9ubGluZVZhbGlkYXRvckJhZGdlOlJufSxMbj0ib2FzM19zZXRfc2VydmVycyIsRG49Im9hczNfc2V0X3JlcXVlc3RfYm9keV92YWx1ZSIsVW49Im9hczNfc2V0X3JlcXVlc3RfYm9keV9yZXRhaW5fZmxhZyIsS249Im9hczNfc2V0X3JlcXVlc3RfYm9keV9pbmNsdXNpb24iLHpuPSJvYXMzX3NldF9hY3RpdmVfZXhhbXBsZXNfbWVtYmVyIixCbj0ib2FzM19zZXRfcmVxdWVzdF9jb250ZW50X3R5cGUiLEZuPSJvYXMzX3NldF9yZXNwb25zZV9jb250ZW50X3R5cGUiLFduPSJvYXMzX3NldF9zZXJ2ZXJfdmFyaWFibGVfdmFsdWUiLEhuPSJvYXMzX3NldF9yZXF1ZXN0X2JvZHlfdmFsaWRhdGVfZXJyb3IiLFhuPSJvYXMzX2NsZWFyX3JlcXVlc3RfYm9keV92YWxpZGF0ZV9lcnJvciIsR249Im9hczNfY2xlYXJfcmVxdWVzdF9ib2R5X3ZhbHVlIjtmdW5jdGlvbiBzZXRTZWxlY3RlZFNlcnZlcihlLHQpe3JldHVybnt0eXBlOkxuLHBheWxvYWQ6e3NlbGVjdGVkU2VydmVyVXJsOmUsbmFtZXNwYWNlOnR9fX1mdW5jdGlvbiBzZXRSZXF1ZXN0Qm9keVZhbHVlKHt2YWx1ZTplLHBhdGhNZXRob2Q6dH0pe3JldHVybnt0eXBlOkRuLHBheWxvYWQ6e3ZhbHVlOmUscGF0aE1ldGhvZDp0fX19Y29uc3Qgc2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWc9KHt2YWx1ZTplLHBhdGhNZXRob2Q6dH0pPT4oe3R5cGU6VW4scGF5bG9hZDp7dmFsdWU6ZSxwYXRoTWV0aG9kOnR9fSk7ZnVuY3Rpb24gc2V0UmVxdWVzdEJvZHlJbmNsdXNpb24oe3ZhbHVlOmUscGF0aE1ldGhvZDp0LG5hbWU6cn0pe3JldHVybnt0eXBlOktuLHBheWxvYWQ6e3ZhbHVlOmUscGF0aE1ldGhvZDp0LG5hbWU6cn19fWZ1bmN0aW9uIHNldEFjdGl2ZUV4YW1wbGVzTWVtYmVyKHtuYW1lOmUscGF0aE1ldGhvZDp0LGNvbnRleHRUeXBlOnIsY29udGV4dE5hbWU6YX0pe3JldHVybnt0eXBlOnpuLHBheWxvYWQ6e25hbWU6ZSxwYXRoTWV0aG9kOnQsY29udGV4dFR5cGU6cixjb250ZXh0TmFtZTphfX19ZnVuY3Rpb24gc2V0UmVxdWVzdENvbnRlbnRUeXBlKHt2YWx1ZTplLHBhdGhNZXRob2Q6dH0pe3JldHVybnt0eXBlOkJuLHBheWxvYWQ6e3ZhbHVlOmUscGF0aE1ldGhvZDp0fX19ZnVuY3Rpb24gc2V0UmVzcG9uc2VDb250ZW50VHlwZSh7dmFsdWU6ZSxwYXRoOnQsbWV0aG9kOnJ9KXtyZXR1cm57dHlwZTpGbixwYXlsb2FkOnt2YWx1ZTplLHBhdGg6dCxtZXRob2Q6cn19fWZ1bmN0aW9uIHNldFNlcnZlclZhcmlhYmxlVmFsdWUoe3NlcnZlcjplLG5hbWVzcGFjZTp0LGtleTpyLHZhbDphfSl7cmV0dXJue3R5cGU6V24scGF5bG9hZDp7c2VydmVyOmUsbmFtZXNwYWNlOnQsa2V5OnIsdmFsOmF9fX1jb25zdCBzZXRSZXF1ZXN0Qm9keVZhbGlkYXRlRXJyb3I9KHtwYXRoOmUsbWV0aG9kOnQsdmFsaWRhdGlvbkVycm9yczpyfSk9Pih7dHlwZTpIbixwYXlsb2FkOntwYXRoOmUsbWV0aG9kOnQsdmFsaWRhdGlvbkVycm9yczpyfX0pLGNsZWFyUmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yPSh7cGF0aDplLG1ldGhvZDp0fSk9Pih7dHlwZTpYbixwYXlsb2FkOntwYXRoOmUsbWV0aG9kOnR9fSksaW5pdFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcj0oe3BhdGhNZXRob2Q6ZX0pPT4oe3R5cGU6WG4scGF5bG9hZDp7cGF0aDplWzBdLG1ldGhvZDplWzFdfX0pLGNsZWFyUmVxdWVzdEJvZHlWYWx1ZT0oe3BhdGhNZXRob2Q6ZX0pPT4oe3R5cGU6R24scGF5bG9hZDp7cGF0aE1ldGhvZDplfX0pLFluPXJlcXVpcmUoImxvZGFzaC9lc2NhcGVSZWdFeHAiKTt2YXIgUW49X193ZWJwYWNrX3JlcXVpcmVfXy5uKFluKTtjb25zdCBvYXMzX3NlbGVjdG9yc19vbmx5T0FTMz1lPT4odCwuLi5yKT0+YT0+e2lmKGEuZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5pc09BUzMoKSl7Y29uc3Qgbj1lKHQsLi4ucik7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG4/bihhKTpufXJldHVybiBudWxsfTtjb25zdCBabj1vYXMzX3NlbGVjdG9yc19vbmx5T0FTMygoKGUsdCk9Pntjb25zdCByPXQ/W3QsInNlbGVjdGVkU2VydmVyIl06WyJzZWxlY3RlZFNlcnZlciJdO3JldHVybiBlLmdldEluKHIpfHwiIn0pKSxlcz1vYXMzX3NlbGVjdG9yc19vbmx5T0FTMygoKGUsdCxyKT0+ZS5nZXRJbihbInJlcXVlc3REYXRhIix0LHIsImJvZHlWYWx1ZSJdKXx8bnVsbCkpLHRzPW9hczNfc2VsZWN0b3JzX29ubHlPQVMzKCgoZSx0LHIpPT5lLmdldEluKFsicmVxdWVzdERhdGEiLHQsciwicmV0YWluQm9keVZhbHVlIl0pfHwhMSkpLHNlbGVjdERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlPShlLHQscik9PmU9Pntjb25zdHtvYXMzU2VsZWN0b3JzOmEsc3BlY1NlbGVjdG9yczpuLGZuOnN9PWUuZ2V0U3lzdGVtKCk7aWYobi5pc09BUzMoKSl7Y29uc3QgZT1hLnJlcXVlc3RDb250ZW50VHlwZSh0LHIpO2lmKGUpcmV0dXJuIGdldERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlKG4uc3BlY1Jlc29sdmVkU3VidHJlZShbInBhdGhzIix0LHIsInJlcXVlc3RCb2R5Il0pLGUsYS5hY3RpdmVFeGFtcGxlc01lbWJlcih0LHIsInJlcXVlc3RCb2R5IiwicmVxdWVzdEJvZHkiKSxzKX1yZXR1cm4gbnVsbH0scnM9b2FzM19zZWxlY3RvcnNfb25seU9BUzMoKChlLHQscik9PmU9Pntjb25zdHtvYXMzU2VsZWN0b3JzOmEsc3BlY1NlbGVjdG9yczpuLGZuOnN9PWU7bGV0IG89ITE7Y29uc3QgbD1hLnJlcXVlc3RDb250ZW50VHlwZSh0LHIpO2xldCBjPWEucmVxdWVzdEJvZHlWYWx1ZSh0LHIpO2NvbnN0IGk9bi5zcGVjUmVzb2x2ZWRTdWJ0cmVlKFsicGF0aHMiLHQsciwicmVxdWVzdEJvZHkiXSk7aWYoIWkpcmV0dXJuITE7aWYoay5NYXAuaXNNYXAoYykmJihjPXN0cmluZ2lmeShjLm1hcEVudHJpZXMoKGU9PmsuTWFwLmlzTWFwKGVbMV0pP1tlWzBdLGVbMV0uZ2V0KCJ2YWx1ZSIpXTplKSkudG9KUygpKSksay5MaXN0LmlzTGlzdChjKSYmKGM9c3RyaW5naWZ5KGMpKSxsKXtjb25zdCBlPWdldERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlKGksbCxhLmFjdGl2ZUV4YW1wbGVzTWVtYmVyKHQsciwicmVxdWVzdEJvZHkiLCJyZXF1ZXN0Qm9keSIpLHMpO289ISFjJiZjIT09ZX1yZXR1cm4gb30pKSxhcz1vYXMzX3NlbGVjdG9yc19vbmx5T0FTMygoKGUsdCxyKT0+ZS5nZXRJbihbInJlcXVlc3REYXRhIix0LHIsImJvZHlJbmNsdXNpb24iXSl8fCgwLGsuTWFwKSgpKSksbnM9b2FzM19zZWxlY3RvcnNfb25seU9BUzMoKChlLHQscik9PmUuZ2V0SW4oWyJyZXF1ZXN0RGF0YSIsdCxyLCJlcnJvcnMiXSl8fG51bGwpKSxzcz1vYXMzX3NlbGVjdG9yc19vbmx5T0FTMygoKGUsdCxyLGEsbik9PmUuZ2V0SW4oWyJleGFtcGxlcyIsdCxyLGEsbiwiYWN0aXZlRXhhbXBsZSJdKXx8bnVsbCkpLG9zPW9hczNfc2VsZWN0b3JzX29ubHlPQVMzKCgoZSx0LHIpPT5lLmdldEluKFsicmVxdWVzdERhdGEiLHQsciwicmVxdWVzdENvbnRlbnRUeXBlIl0pfHxudWxsKSksbHM9b2FzM19zZWxlY3RvcnNfb25seU9BUzMoKChlLHQscik9PmUuZ2V0SW4oWyJyZXF1ZXN0RGF0YSIsdCxyLCJyZXNwb25zZUNvbnRlbnRUeXBlIl0pfHxudWxsKSksY3M9b2FzM19zZWxlY3RvcnNfb25seU9BUzMoKChlLHQscik9PntsZXQgYTtpZigic3RyaW5nIiE9dHlwZW9mIHQpe2NvbnN0e3NlcnZlcjplLG5hbWVzcGFjZTpufT10O2E9bj9bbiwic2VydmVyVmFyaWFibGVWYWx1ZXMiLGUscl06WyJzZXJ2ZXJWYXJpYWJsZVZhbHVlcyIsZSxyXX1lbHNle2E9WyJzZXJ2ZXJWYXJpYWJsZVZhbHVlcyIsdCxyXX1yZXR1cm4gZS5nZXRJbihhKXx8bnVsbH0pKSxpcz1vYXMzX3NlbGVjdG9yc19vbmx5T0FTMygoKGUsdCk9PntsZXQgcjtpZigic3RyaW5nIiE9dHlwZW9mIHQpe2NvbnN0e3NlcnZlcjplLG5hbWVzcGFjZTphfT10O3I9YT9bYSwic2VydmVyVmFyaWFibGVWYWx1ZXMiLGVdOlsic2VydmVyVmFyaWFibGVWYWx1ZXMiLGVdfWVsc2V7cj1bInNlcnZlclZhcmlhYmxlVmFsdWVzIix0XX1yZXR1cm4gZS5nZXRJbihyKXx8KDAsay5PcmRlcmVkTWFwKSgpfSkpLHBzPW9hczNfc2VsZWN0b3JzX29ubHlPQVMzKCgoZSx0KT0+e3ZhciByLGE7aWYoInN0cmluZyIhPXR5cGVvZiB0KXtjb25zdHtzZXJ2ZXI6bixuYW1lc3BhY2U6c309dDthPW4scj1zP2UuZ2V0SW4oW3MsInNlcnZlclZhcmlhYmxlVmFsdWVzIixhXSk6ZS5nZXRJbihbInNlcnZlclZhcmlhYmxlVmFsdWVzIixhXSl9ZWxzZSBhPXQscj1lLmdldEluKFsic2VydmVyVmFyaWFibGVWYWx1ZXMiLGFdKTtyPXJ8fCgwLGsuT3JkZXJlZE1hcCkoKTtsZXQgbj1hO3JldHVybiByLm1hcCgoKGUsdCk9PntuPW4ucmVwbGFjZShuZXcgUmVnRXhwKGB7JHtRbigpKHQpfX1gLCJnIiksZSl9KSksbn0pKSxtcz1mdW5jdGlvbiB2YWxpZGF0ZVJlcXVlc3RCb2R5SXNSZXF1aXJlZChlKXtyZXR1cm4oLi4udCk9PnI9Pntjb25zdCBhPXIuZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpO2xldCBuPVsuLi50XVsxXXx8W107cmV0dXJuIWEuZ2V0SW4oWyJwYXRocyIsLi4ubiwicmVxdWVzdEJvZHkiLCJyZXF1aXJlZCJdKXx8ZSguLi50KX19KCgoZSx0KT0+KChlLHQpPT4odD10fHxbXSwhIWUuZ2V0SW4oWyJyZXF1ZXN0RGF0YSIsLi4udCwiYm9keVZhbHVlIl0pKSkoZSx0KSkpLHZhbGlkYXRlU2hhbGxvd1JlcXVpcmVkPShlLHtvYXMzUmVxdWlyZWRSZXF1ZXN0Qm9keUNvbnRlbnRUeXBlOnQsb2FzM1JlcXVlc3RDb250ZW50VHlwZTpyLG9hczNSZXF1ZXN0Qm9keVZhbHVlOmF9KT0+e2xldCBuPVtdO2lmKCFrLk1hcC5pc01hcChhKSlyZXR1cm4gbjtsZXQgcz1bXTtyZXR1cm4gT2JqZWN0LmtleXModC5yZXF1ZXN0Q29udGVudFR5cGUpLmZvckVhY2goKGU9PntpZihlPT09cil7dC5yZXF1ZXN0Q29udGVudFR5cGVbZV0uZm9yRWFjaCgoZT0+e3MuaW5kZXhPZihlKTwwJiZzLnB1c2goZSl9KSl9fSkpLHMuZm9yRWFjaCgoZT0+e2EuZ2V0SW4oW2UsInZhbHVlIl0pfHxuLnB1c2goZSl9KSksbn0sdXM9VnQoKShbImdldCIsInB1dCIsInBvc3QiLCJkZWxldGUiLCJvcHRpb25zIiwiaGVhZCIsInBhdGNoIiwidHJhY2UiXSksZHM9e1tMbl06KGUse3BheWxvYWQ6e3NlbGVjdGVkU2VydmVyVXJsOnQsbmFtZXNwYWNlOnJ9fSk9Pntjb25zdCBhPXI/W3IsInNlbGVjdGVkU2VydmVyIl06WyJzZWxlY3RlZFNlcnZlciJdO3JldHVybiBlLnNldEluKGEsdCl9LFtEbl06KGUse3BheWxvYWQ6e3ZhbHVlOnQscGF0aE1ldGhvZDpyfX0pPT57bGV0W2Esbl09cjtpZighay5NYXAuaXNNYXAodCkpcmV0dXJuIGUuc2V0SW4oWyJyZXF1ZXN0RGF0YSIsYSxuLCJib2R5VmFsdWUiXSx0KTtsZXQgcyxvPWUuZ2V0SW4oWyJyZXF1ZXN0RGF0YSIsYSxuLCJib2R5VmFsdWUiXSl8fCgwLGsuTWFwKSgpO2suTWFwLmlzTWFwKG8pfHwobz0oMCxrLk1hcCkoKSk7Y29uc3RbLi4ubF09dC5rZXlzKCk7cmV0dXJuIGwuZm9yRWFjaCgoZT0+e2xldCByPXQuZ2V0SW4oW2VdKTtvLmhhcyhlKSYmay5NYXAuaXNNYXAocil8fChzPW8uc2V0SW4oW2UsInZhbHVlIl0scikpfSkpLGUuc2V0SW4oWyJyZXF1ZXN0RGF0YSIsYSxuLCJib2R5VmFsdWUiXSxzKX0sW1VuXTooZSx7cGF5bG9hZDp7dmFsdWU6dCxwYXRoTWV0aG9kOnJ9fSk9PntsZXRbYSxuXT1yO3JldHVybiBlLnNldEluKFsicmVxdWVzdERhdGEiLGEsbiwicmV0YWluQm9keVZhbHVlIl0sdCl9LFtLbl06KGUse3BheWxvYWQ6e3ZhbHVlOnQscGF0aE1ldGhvZDpyLG5hbWU6YX19KT0+e2xldFtuLHNdPXI7cmV0dXJuIGUuc2V0SW4oWyJyZXF1ZXN0RGF0YSIsbixzLCJib2R5SW5jbHVzaW9uIixhXSx0KX0sW3puXTooZSx7cGF5bG9hZDp7bmFtZTp0LHBhdGhNZXRob2Q6cixjb250ZXh0VHlwZTphLGNvbnRleHROYW1lOm59fSk9PntsZXRbcyxvXT1yO3JldHVybiBlLnNldEluKFsiZXhhbXBsZXMiLHMsbyxhLG4sImFjdGl2ZUV4YW1wbGUiXSx0KX0sW0JuXTooZSx7cGF5bG9hZDp7dmFsdWU6dCxwYXRoTWV0aG9kOnJ9fSk9PntsZXRbYSxuXT1yO3JldHVybiBlLnNldEluKFsicmVxdWVzdERhdGEiLGEsbiwicmVxdWVzdENvbnRlbnRUeXBlIl0sdCl9LFtGbl06KGUse3BheWxvYWQ6e3ZhbHVlOnQscGF0aDpyLG1ldGhvZDphfX0pPT5lLnNldEluKFsicmVxdWVzdERhdGEiLHIsYSwicmVzcG9uc2VDb250ZW50VHlwZSJdLHQpLFtXbl06KGUse3BheWxvYWQ6e3NlcnZlcjp0LG5hbWVzcGFjZTpyLGtleTphLHZhbDpufX0pPT57Y29uc3Qgcz1yP1tyLCJzZXJ2ZXJWYXJpYWJsZVZhbHVlcyIsdCxhXTpbInNlcnZlclZhcmlhYmxlVmFsdWVzIix0LGFdO3JldHVybiBlLnNldEluKHMsbil9LFtIbl06KGUse3BheWxvYWQ6e3BhdGg6dCxtZXRob2Q6cix2YWxpZGF0aW9uRXJyb3JzOmF9fSk9PntsZXQgbj1bXTtpZihuLnB1c2goIlJlcXVpcmVkIGZpZWxkIGlzIG5vdCBwcm92aWRlZCIpLGEubWlzc2luZ0JvZHlWYWx1ZSlyZXR1cm4gZS5zZXRJbihbInJlcXVlc3REYXRhIix0LHIsImVycm9ycyJdLCgwLGsuZnJvbUpTKShuKSk7aWYoYS5taXNzaW5nUmVxdWlyZWRLZXlzJiZhLm1pc3NpbmdSZXF1aXJlZEtleXMubGVuZ3RoPjApe2NvbnN0e21pc3NpbmdSZXF1aXJlZEtleXM6c309YTtyZXR1cm4gZS51cGRhdGVJbihbInJlcXVlc3REYXRhIix0LHIsImJvZHlWYWx1ZSJdLCgwLGsuZnJvbUpTKSh7fSksKGU9PnMucmVkdWNlKCgoZSx0KT0+ZS5zZXRJbihbdCwiZXJyb3JzIl0sKDAsay5mcm9tSlMpKG4pKSksZSkpKX1yZXR1cm4gY29uc29sZS53YXJuKCJ1bmV4cGVjdGVkIHJlc3VsdDogU0VUX1JFUVVFU1RfQk9EWV9WQUxJREFURV9FUlJPUiIpLGV9LFtYbl06KGUse3BheWxvYWQ6e3BhdGg6dCxtZXRob2Q6cn19KT0+e2NvbnN0IGE9ZS5nZXRJbihbInJlcXVlc3REYXRhIix0LHIsImJvZHlWYWx1ZSJdKTtpZighay5NYXAuaXNNYXAoYSkpcmV0dXJuIGUuc2V0SW4oWyJyZXF1ZXN0RGF0YSIsdCxyLCJlcnJvcnMiXSwoMCxrLmZyb21KUykoW10pKTtjb25zdFsuLi5uXT1hLmtleXMoKTtyZXR1cm4gbj9lLnVwZGF0ZUluKFsicmVxdWVzdERhdGEiLHQsciwiYm9keVZhbHVlIl0sKDAsay5mcm9tSlMpKHt9KSwoZT0+bi5yZWR1Y2UoKChlLHQpPT5lLnNldEluKFt0LCJlcnJvcnMiXSwoMCxrLmZyb21KUykoW10pKSksZSkpKTplfSxbR25dOihlLHtwYXlsb2FkOntwYXRoTWV0aG9kOnR9fSk9PntsZXRbcixhXT10O2NvbnN0IG49ZS5nZXRJbihbInJlcXVlc3REYXRhIixyLGEsImJvZHlWYWx1ZSJdKTtyZXR1cm4gbj9rLk1hcC5pc01hcChuKT9lLnNldEluKFsicmVxdWVzdERhdGEiLHIsYSwiYm9keVZhbHVlIl0sKDAsay5NYXApKCkpOmUuc2V0SW4oWyJyZXF1ZXN0RGF0YSIscixhLCJib2R5VmFsdWUiXSwiIik6ZX19O2Z1bmN0aW9uIG9hczMoe2dldFN5c3RlbTplfSl7Y29uc3QgdD0oZT0+KHQscj1udWxsKT0+e2NvbnN0e2dldENvbmZpZ3M6YSxmbjpufT1lKCkse2ZpbGVVcGxvYWRNZWRpYVR5cGVzOnN9PWEoKTtpZigic3RyaW5nIj09dHlwZW9mIHImJnMuc29tZSgoZT0+ci5zdGFydHNXaXRoKGUpKSkpcmV0dXJuITA7Y29uc3Qgbz1rLk1hcC5pc01hcCh0KTtpZighbyYmIXd0KCkodCkpcmV0dXJuITE7Y29uc3QgbD1vP3QuZ2V0KCJmb3JtYXQiKTp0LmZvcm1hdDtyZXR1cm4gbi5oYXNTY2hlbWFUeXBlKHQsInN0cmluZyIpJiZbImJpbmFyeSIsImJ5dGUiXS5pbmNsdWRlcyhsKX0pKGUpO3JldHVybntjb21wb25lbnRzOnFuLHdyYXBDb21wb25lbnRzOlZuLHN0YXRlUGx1Z2luczp7c3BlYzp7d3JhcFNlbGVjdG9yczpfLHNlbGVjdG9yczp3fSxhdXRoOnt3cmFwU2VsZWN0b3JzOnZ9LG9hczM6e2FjdGlvbnM6ey4uLmJ9LHJlZHVjZXJzOmRzLHNlbGVjdG9yczp7Li4uQ319fSxmbjp7aXNGaWxlVXBsb2FkSW50ZW5kZWQ6dCxpc0ZpbGVVcGxvYWRJbnRlbmRlZE9BUzMwOnR9fX1jb25zdCB3ZWJob29rcz0oe3NwZWNTZWxlY3RvcnM6ZSxnZXRDb21wb25lbnQ6dH0pPT57Y29uc3Qgcj1lLnNlbGVjdFdlYmhvb2tzT3BlcmF0aW9ucygpLGE9T2JqZWN0LmtleXMociksbj10KCJPcGVyYXRpb25Db250YWluZXIiLCEwKTtyZXR1cm4gMD09PWEubGVuZ3RoP251bGw6TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToid2ViaG9va3MifSxPKCkuY3JlYXRlRWxlbWVudCgiaDIiLG51bGwsIldlYmhvb2tzIiksYS5tYXAoKGU9Pk8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6YCR7ZX0td2ViaG9va2B9LHJbZV0ubWFwKCh0PT5PKCkuY3JlYXRlRWxlbWVudChuLHtrZXk6YCR7ZX0tJHt0Lm1ldGhvZH0td2ViaG9va2Asb3A6dC5vcGVyYXRpb24sdGFnOiJ3ZWJob29rcyIsbWV0aG9kOnQubWV0aG9kLHBhdGg6ZSxzcGVjUGF0aDooMCxrLkxpc3QpKHQuc3BlY1BhdGgpLGFsbG93VHJ5SXRPdXQ6ITF9KSkpKSkpKX0sY29tcG9uZW50c19saWNlbnNlPSh7Z2V0Q29tcG9uZW50OmUsc3BlY1NlbGVjdG9yczp0fSk9Pntjb25zdCByPXQuc2VsZWN0TGljZW5zZU5hbWVGaWVsZCgpLGE9dC5zZWxlY3RMaWNlbnNlVXJsKCksbj1lKCJMaW5rIik7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm9fX2xpY2Vuc2UifSxhP08oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm9fX2xpY2Vuc2VfX3VybCJ9LE8oKS5jcmVhdGVFbGVtZW50KG4se3RhcmdldDoiX2JsYW5rIixocmVmOnNhbml0aXplVXJsKGEpfSxyKSk6TygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwscikpfSxjb21wb25lbnRzX2NvbnRhY3Q9KHtnZXRDb21wb25lbnQ6ZSxzcGVjU2VsZWN0b3JzOnR9KT0+e2NvbnN0IHI9dC5zZWxlY3RDb250YWN0TmFtZUZpZWxkKCksYT10LnNlbGVjdENvbnRhY3RVcmwoKSxuPXQuc2VsZWN0Q29udGFjdEVtYWlsRmllbGQoKSxzPWUoIkxpbmsiKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaW5mb19fY29udGFjdCJ9LGEmJk8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQocyx7aHJlZjpzYW5pdGl6ZVVybChhKSx0YXJnZXQ6Il9ibGFuayJ9LHIsIiAtIFdlYnNpdGUiKSksbiYmTygpLmNyZWF0ZUVsZW1lbnQocyx7aHJlZjpzYW5pdGl6ZVVybChgbWFpbHRvOiR7bn1gKX0sYT9gU2VuZCBlbWFpbCB0byAke3J9YDpgQ29udGFjdCAke3J9YCkpfSxvYXMzMV9jb21wb25lbnRzX2luZm89KHtnZXRDb21wb25lbnQ6ZSxzcGVjU2VsZWN0b3JzOnR9KT0+e2NvbnN0IHI9dC52ZXJzaW9uKCksYT10LnVybCgpLG49dC5iYXNlUGF0aCgpLHM9dC5ob3N0KCksbz10LnNlbGVjdEluZm9TdW1tYXJ5RmllbGQoKSxsPXQuc2VsZWN0SW5mb0Rlc2NyaXB0aW9uRmllbGQoKSxjPXQuc2VsZWN0SW5mb1RpdGxlRmllbGQoKSxpPXQuc2VsZWN0SW5mb1Rlcm1zT2ZTZXJ2aWNlVXJsKCkscD10LnNlbGVjdEV4dGVybmFsRG9jc1VybCgpLG09dC5zZWxlY3RFeHRlcm5hbERvY3NEZXNjcmlwdGlvbkZpZWxkKCksdT10LmNvbnRhY3QoKSxkPXQubGljZW5zZSgpLGg9ZSgiTWFya2Rvd24iLCEwKSxnPWUoIkxpbmsiKSx5PWUoIlZlcnNpb25TdGFtcCIpLGY9ZSgiT3BlbkFQSVZlcnNpb24iKSxTPWUoIkluZm9VcmwiKSxFPWUoIkluZm9CYXNlUGF0aCIpLF89ZSgiTGljZW5zZSIsITApLHY9ZSgiQ29udGFjdCIsITApLHc9ZSgiSnNvblNjaGVtYURpYWxlY3QiLCEwKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiaW5mbyJ9LE8oKS5jcmVhdGVFbGVtZW50KCJoZ3JvdXAiLHtjbGFzc05hbWU6Im1haW4ifSxPKCkuY3JlYXRlRWxlbWVudCgiaDIiLHtjbGFzc05hbWU6InRpdGxlIn0sYyxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxyJiZPKCkuY3JlYXRlRWxlbWVudCh5LHt2ZXJzaW9uOnJ9KSxPKCkuY3JlYXRlRWxlbWVudChmLHtvYXNWZXJzaW9uOiIzLjEifSkpKSwoc3x8bikmJk8oKS5jcmVhdGVFbGVtZW50KEUse2hvc3Q6cyxiYXNlUGF0aDpufSksYSYmTygpLmNyZWF0ZUVsZW1lbnQoUyx7Z2V0Q29tcG9uZW50OmUsdXJsOmF9KSksbyYmTygpLmNyZWF0ZUVsZW1lbnQoInAiLHtjbGFzc05hbWU6ImluZm9fX3N1bW1hcnkifSxvKSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJpbmZvX19kZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiJ9LE8oKS5jcmVhdGVFbGVtZW50KGgse3NvdXJjZTpsfSkpLGkmJk8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImluZm9fX3RvcyJ9LE8oKS5jcmVhdGVFbGVtZW50KGcse3RhcmdldDoiX2JsYW5rIixocmVmOnNhbml0aXplVXJsKGkpfSwiVGVybXMgb2Ygc2VydmljZSIpKSx1LnNpemU+MCYmTygpLmNyZWF0ZUVsZW1lbnQodixudWxsKSxkLnNpemU+MCYmTygpLmNyZWF0ZUVsZW1lbnQoXyxudWxsKSxwJiZPKCkuY3JlYXRlRWxlbWVudChnLHtjbGFzc05hbWU6ImluZm9fX2V4dGRvY3MiLHRhcmdldDoiX2JsYW5rIixocmVmOnNhbml0aXplVXJsKHApfSxtfHxwKSxPKCkuY3JlYXRlRWxlbWVudCh3LG51bGwpKX0sanNvbl9zY2hlbWFfZGlhbGVjdD0oe2dldENvbXBvbmVudDplLHNwZWNTZWxlY3RvcnM6dH0pPT57Y29uc3Qgcj10LnNlbGVjdEpzb25TY2hlbWFEaWFsZWN0RmllbGQoKSxhPXQuc2VsZWN0SnNvblNjaGVtYURpYWxlY3REZWZhdWx0KCksbj1lKCJMaW5rIik7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KE8oKS5GcmFnbWVudCxudWxsLHImJnI9PT1hJiZPKCkuY3JlYXRlRWxlbWVudCgicCIse2NsYXNzTmFtZToiaW5mb19fanNvbnNjaGVtYWRpYWxlY3QifSwiSlNPTiBTY2hlbWEgZGlhbGVjdDoiLCIgIixPKCkuY3JlYXRlRWxlbWVudChuLHt0YXJnZXQ6Il9ibGFuayIsaHJlZjpzYW5pdGl6ZVVybChyKX0scikpLHImJnIhPT1hJiZPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvci13cmFwcGVyIn0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibm8tbWFyZ2luIn0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZXJyb3JzIn0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiZXJyb3JzLXdyYXBwZXIifSxPKCkuY3JlYXRlRWxlbWVudCgiaDQiLHtjbGFzc05hbWU6ImNlbnRlciJ9LCJXYXJuaW5nIiksTygpLmNyZWF0ZUVsZW1lbnQoInAiLHtjbGFzc05hbWU6Im1lc3NhZ2UifSxPKCkuY3JlYXRlRWxlbWVudCgic3Ryb25nIixudWxsLCJPcGVuQVBJLmpzb25TY2hlbWFEaWFsZWN0IiksIiBmaWVsZCBjb250YWlucyBhIHZhbHVlIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IHZhbHVlIG9mIiwiICIsTygpLmNyZWF0ZUVsZW1lbnQobix7dGFyZ2V0OiJfYmxhbmsiLGhyZWY6YX0sYSksIi4gVmFsdWVzIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IG9uZSBhcmUgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQuIFBsZWFzZSBlaXRoZXIgb21pdCB0aGUgZmllbGQgb3IgcHJvdmlkZSBpdCB3aXRoIHRoZSBkZWZhdWx0IHZhbHVlLiIpKSkpKSl9LHZlcnNpb25fcHJhZ21hX2ZpbHRlcj0oe2J5cGFzczplLGlzU3dhZ2dlcjI6dCxpc09BUzM6cixpc09BUzMxOmEsYWxzb1Nob3c6bixjaGlsZHJlbjpzfSk9PmU/TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxzKTp0JiYocnx8YSk/TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidmVyc2lvbi1wcmFnbWEifSxuLE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InZlcnNpb24tcHJhZ21hX19tZXNzYWdlIHZlcnNpb24tcHJhZ21hX19tZXNzYWdlLS1hbWJpZ3VvdXMifSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJoMyIsbnVsbCwiVW5hYmxlIHRvIHJlbmRlciB0aGlzIGRlZmluaXRpb24iKSxPKCkuY3JlYXRlRWxlbWVudCgicCIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwic3dhZ2dlciIpLCIgYW5kICIsTygpLmNyZWF0ZUVsZW1lbnQoImNvZGUiLG51bGwsIm9wZW5hcGkiKSwiIGZpZWxkcyBjYW5ub3QgYmUgcHJlc2VudCBpbiB0aGUgc2FtZSBTd2FnZ2VyIG9yIE9wZW5BUEkgZGVmaW5pdGlvbi4gUGxlYXNlIHJlbW92ZSBvbmUgb2YgdGhlIGZpZWxkcy4iKSxPKCkuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiU3VwcG9ydGVkIHZlcnNpb24gZmllbGRzIGFyZSAiLE8oKS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCdzd2FnZ2VyOiAiMi4wIicpLCIgYW5kIHRob3NlIHRoYXQgbWF0Y2ggIixPKCkuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwib3BlbmFwaTogMy54LnkiKSwiIChmb3IgZXhhbXBsZSwiLCIgIixPKCkuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwib3BlbmFwaTogMy4xLjAiKSwiKS4iKSkpKTp0fHxyfHxhP08oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwscyk6TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToidmVyc2lvbi1wcmFnbWEifSxuLE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6InZlcnNpb24tcHJhZ21hX19tZXNzYWdlIHZlcnNpb24tcHJhZ21hX19tZXNzYWdlLS1taXNzaW5nIn0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgiaDMiLG51bGwsIlVuYWJsZSB0byByZW5kZXIgdGhpcyBkZWZpbml0aW9uIiksTygpLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsIlRoZSBwcm92aWRlZCBkZWZpbml0aW9uIGRvZXMgbm90IHNwZWNpZnkgYSB2YWxpZCB2ZXJzaW9uIGZpZWxkLiIpLE8oKS5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJQbGVhc2UgaW5kaWNhdGUgYSB2YWxpZCBTd2FnZ2VyIG9yIE9wZW5BUEkgdmVyc2lvbiBmaWVsZC4gU3VwcG9ydGVkIHZlcnNpb24gZmllbGRzIGFyZSAiLE8oKS5jcmVhdGVFbGVtZW50KCJjb2RlIixudWxsLCdzd2FnZ2VyOiAiMi4wIicpLCIgYW5kIHRob3NlIHRoYXQgbWF0Y2ggIixPKCkuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwib3BlbmFwaTogMy54LnkiKSwiIChmb3IgZXhhbXBsZSwiLCIgIixPKCkuY3JlYXRlRWxlbWVudCgiY29kZSIsbnVsbCwib3BlbmFwaTogMy4xLjAiKSwiKS4iKSkpKSxnZXRNb2RlbE5hbWU9ZT0+InN0cmluZyI9PXR5cGVvZiBlJiZlLmluY2x1ZGVzKCIjL2NvbXBvbmVudHMvc2NoZW1hcy8iKT8oZT0+e2NvbnN0IHQ9ZS5yZXBsYWNlKC9+MS9nLCIvIikucmVwbGFjZSgvfjAvZywifiIpO3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHQpfWNhdGNoe3JldHVybiB0fX0pKGUucmVwbGFjZSgvXi4qI1wvY29tcG9uZW50c1wvc2NoZW1hc1wvLywiIikpOm51bGwsaHM9KDAseC5mb3J3YXJkUmVmKSgoKHtzY2hlbWE6ZSxnZXRDb21wb25lbnQ6dCxvblRvZ2dsZTpyPSgpPT57fSxzcGVjUGF0aDphfSxuKT0+e2NvbnN0IHM9dCgiSlNPTlNjaGVtYTIwMjAxMiIpLG89Z2V0TW9kZWxOYW1lKGUuZ2V0KCIkJHJlZiIpKSxsPSgwLHgudXNlQ2FsbGJhY2spKCgoZSx0KT0+e3Iobyx0KX0pLFtvLHJdKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQocyx7bmFtZTpvLHNjaGVtYTplLnRvSlMoKSxyZWY6bixvbkV4cGFuZDpsLGlkZW50aWZpZXI6YS50b0pTKCkuam9pbigiXyIpfSl9KSksZ3M9aHMsbW9kZWxzPSh7c3BlY0FjdGlvbnM6ZSxzcGVjU2VsZWN0b3JzOnQsbGF5b3V0U2VsZWN0b3JzOnIsbGF5b3V0QWN0aW9uczphLGdldENvbXBvbmVudDpuLGdldENvbmZpZ3M6cyxmbjpvfSk9Pntjb25zdCBsPXQuc2VsZWN0U2NoZW1hcygpLGM9T2JqZWN0LmtleXMobCkubGVuZ3RoPjAsaT1bImNvbXBvbmVudHMiLCJzY2hlbWFzIl0se2RvY0V4cGFuc2lvbjpwLGRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aDptfT1zKCksdT1tPjAmJiJub25lIiE9PXAsZD1yLmlzU2hvd24oaSx1KSxoPW4oIkNvbGxhcHNlIiksZz1uKCJKU09OU2NoZW1hMjAyMDEyIikseT1uKCJBcnJvd1VwSWNvbiIpLGY9bigiQXJyb3dEb3duSWNvbiIpLHtnZXRUaXRsZTpTfT1vLmpzb25TY2hlbWEyMDIwMTIudXNlRm4oKTsoMCx4LnVzZUVmZmVjdCkoKCgpPT57Y29uc3Qgcj1kJiZtPjEsYT1udWxsIT10LnNwZWNSZXNvbHZlZFN1YnRyZWUoaSk7ciYmIWEmJmUucmVxdWVzdFJlc29sdmVkU3VidHJlZShpKX0pLFtkLG1dKTtjb25zdCBFPSgwLHgudXNlQ2FsbGJhY2spKCgoKT0+e2Euc2hvdyhpLCFkKX0pLFtkXSksXz0oMCx4LnVzZUNhbGxiYWNrKSgoZT0+e251bGwhPT1lJiZhLnJlYWR5VG9TY3JvbGwoaSxlKX0pLFtdKSxoYW5kbGVKU09OU2NoZW1hMjAyMDEyUmVmPWU9PnQ9PntudWxsIT09dCYmYS5yZWFkeVRvU2Nyb2xsKFsuLi5pLGVdLHQpfSxoYW5kbGVKU09OU2NoZW1hMjAyMDEyRXhwYW5kPXI9PihhLG4pPT57aWYobil7Y29uc3QgYT1bLi4uaSxyXTtudWxsIT10LnNwZWNSZXNvbHZlZFN1YnRyZWUoYSl8fGUucmVxdWVzdFJlc29sdmVkU3VidHJlZShbLi4uaSxyXSl9fTtyZXR1cm4hY3x8bTwwP251bGw6TygpLmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24iLHtjbGFzc05hbWU6cHQoKSgibW9kZWxzIix7ImlzLW9wZW4iOmR9KSxyZWY6X30sTygpLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLE8oKS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHsiYXJpYS1leHBhbmRlZCI6ZCxjbGFzc05hbWU6Im1vZGVscy1jb250cm9sIixvbkNsaWNrOkV9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCJTY2hlbWFzIiksZD9PKCkuY3JlYXRlRWxlbWVudCh5LG51bGwpOk8oKS5jcmVhdGVFbGVtZW50KGYsbnVsbCkpKSxPKCkuY3JlYXRlRWxlbWVudChoLHtpc09wZW5lZDpkfSxPYmplY3QuZW50cmllcyhsKS5tYXAoKChbZSx0XSk9Pntjb25zdCByPVModCx7bG9va3VwOiJiYXNpYyJ9KXx8ZTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoZyx7a2V5OmUscmVmOmhhbmRsZUpTT05TY2hlbWEyMDIwMTJSZWYoZSksc2NoZW1hOnQsbmFtZTpyLG9uRXhwYW5kOmhhbmRsZUpTT05TY2hlbWEyMDIwMTJFeHBhbmQoZSl9KX0pKSkpfSxtdXR1YWxfdGxzX2F1dGg9KHtzY2hlbWE6ZSxnZXRDb21wb25lbnQ6dCxuYW1lOnIsYXV0aFNlbGVjdG9yczphfSk9Pntjb25zdCBuPXQoIkp1bXBUb1BhdGgiLCEwKSxzPWEuc2VsZWN0QXV0aFBhdGgocik7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoImg0IixudWxsLHIsIiAobXV0dWFsVExTKSAiLE8oKS5jcmVhdGVFbGVtZW50KG4se3BhdGg6c30pKSxPKCkuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiTXV0dWFsIFRMUyBpcyByZXF1aXJlZCBieSB0aGlzIEFQSS9PcGVyYXRpb24uIENlcnRpZmljYXRlcyBhcmUgbWFuYWdlZCB2aWEgeW91ciBPcGVyYXRpbmcgU3lzdGVtIGFuZC9vciB5b3VyIGJyb3dzZXIuIiksTygpLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsZS5nZXQoImRlc2NyaXB0aW9uIikpKX07Y2xhc3MgYXV0aHNfQXV0aHMgZXh0ZW5kcyBPKCkuQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLnN0YXRlPXt9fW9uQXV0aENoYW5nZT1lPT57bGV0e25hbWU6dH09ZTt0aGlzLnNldFN0YXRlKHtbdF06ZX0pfTtzdWJtaXRBdXRoPWU9PntlLnByZXZlbnREZWZhdWx0KCk7bGV0e2F1dGhBY3Rpb25zOnR9PXRoaXMucHJvcHM7dC5hdXRob3JpemVXaXRoUGVyc2lzdE9wdGlvbih0aGlzLnN0YXRlKX07bG9nb3V0Q2xpY2s9ZT0+e2UucHJldmVudERlZmF1bHQoKTtsZXR7YXV0aEFjdGlvbnM6dCxkZWZpbml0aW9uczpyfT10aGlzLnByb3BzLGE9ci5tYXAoKChlLHQpPT50KSkudG9BcnJheSgpO3RoaXMuc2V0U3RhdGUoYS5yZWR1Y2UoKChlLHQpPT4oZVt0XT0iIixlKSkse30pKSx0LmxvZ291dFdpdGhQZXJzaXN0T3B0aW9uKGEpfTtjbG9zZT1lPT57ZS5wcmV2ZW50RGVmYXVsdCgpO2xldHthdXRoQWN0aW9uczp0fT10aGlzLnByb3BzO3Quc2hvd0RlZmluaXRpb25zKCExKX07cmVuZGVyKCl7bGV0e2RlZmluaXRpb25zOmUsZ2V0Q29tcG9uZW50OnQsYXV0aFNlbGVjdG9yczpyLGVyclNlbGVjdG9yczphfT10aGlzLnByb3BzO2NvbnN0IG49dCgiQXV0aEl0ZW0iKSxzPXQoIm9hdXRoMiIsITApLG89dCgiQnV0dG9uIiksbD1yLmF1dGhvcml6ZWQoKSxjPWUuZmlsdGVyKCgoZSx0KT0+ISFsLmdldCh0KSkpLGk9ZS5maWx0ZXIoKGU9PiJvYXV0aDIiIT09ZS5nZXQoInR5cGUiKSYmIm11dHVhbFRMUyIhPT1lLmdldCgidHlwZSIpKSkscD1lLmZpbHRlcigoZT0+Im9hdXRoMiI9PT1lLmdldCgidHlwZSIpKSksbT1lLmZpbHRlcigoZT0+Im11dHVhbFRMUyI9PT1lLmdldCgidHlwZSIpKSk7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImF1dGgtY29udGFpbmVyIn0saS5zaXplPjAmJk8oKS5jcmVhdGVFbGVtZW50KCJmb3JtIix7b25TdWJtaXQ6dGhpcy5zdWJtaXRBdXRofSxpLm1hcCgoKGUscyk9Pk8oKS5jcmVhdGVFbGVtZW50KG4se2tleTpzLHNjaGVtYTplLG5hbWU6cyxnZXRDb21wb25lbnQ6dCxvbkF1dGhDaGFuZ2U6dGhpcy5vbkF1dGhDaGFuZ2UsYXV0aG9yaXplZDpsLGVyclNlbGVjdG9yczphLGF1dGhTZWxlY3RvcnM6cn0pKSkudG9BcnJheSgpLE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ImF1dGgtYnRuLXdyYXBwZXIifSxpLnNpemU9PT1jLnNpemU/TygpLmNyZWF0ZUVsZW1lbnQobyx7Y2xhc3NOYW1lOiJidG4gbW9kYWwtYnRuIGF1dGgiLG9uQ2xpY2s6dGhpcy5sb2dvdXRDbGljaywiYXJpYS1sYWJlbCI6IlJlbW92ZSBhdXRob3JpemF0aW9uIn0sIkxvZ291dCIpOk8oKS5jcmVhdGVFbGVtZW50KG8se3R5cGU6InN1Ym1pdCIsY2xhc3NOYW1lOiJidG4gbW9kYWwtYnRuIGF1dGggYXV0aG9yaXplIiwiYXJpYS1sYWJlbCI6IkFwcGx5IGNyZWRlbnRpYWxzIn0sIkF1dGhvcml6ZSIpLE8oKS5jcmVhdGVFbGVtZW50KG8se2NsYXNzTmFtZToiYnRuIG1vZGFsLWJ0biBhdXRoIGJ0bi1kb25lIixvbkNsaWNrOnRoaXMuY2xvc2V9LCJDbG9zZSIpKSkscC5zaXplPjA/TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJzY29wZS1kZWYifSxPKCkuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwiU2NvcGVzIGFyZSB1c2VkIHRvIGdyYW50IGFuIGFwcGxpY2F0aW9uIGRpZmZlcmVudCBsZXZlbHMgb2YgYWNjZXNzIHRvIGRhdGEgb24gYmVoYWxmIG9mIHRoZSBlbmQgdXNlci4gRWFjaCBBUEkgbWF5IGRlY2xhcmUgb25lIG9yIG1vcmUgc2NvcGVzLiIpLE8oKS5jcmVhdGVFbGVtZW50KCJwIixudWxsLCJBUEkgcmVxdWlyZXMgdGhlIGZvbGxvd2luZyBzY29wZXMuIFNlbGVjdCB3aGljaCBvbmVzIHlvdSB3YW50IHRvIGdyYW50IHRvIFN3YWdnZXIgVUkuIikpLGUuZmlsdGVyKChlPT4ib2F1dGgyIj09PWUuZ2V0KCJ0eXBlIikpKS5tYXAoKChlLHQpPT5PKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5OnR9LE8oKS5jcmVhdGVFbGVtZW50KHMse2F1dGhvcml6ZWQ6bCxzY2hlbWE6ZSxuYW1lOnR9KSkpKS50b0FycmF5KCkpOm51bGwsbS5zaXplPjAmJk8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsbS5tYXAoKChlLHMpPT5PKCkuY3JlYXRlRWxlbWVudChuLHtrZXk6cyxzY2hlbWE6ZSxuYW1lOnMsZ2V0Q29tcG9uZW50OnQsb25BdXRoQ2hhbmdlOnRoaXMub25BdXRoQ2hhbmdlLGF1dGhvcml6ZWQ6bCxlcnJTZWxlY3RvcnM6YSxhdXRoU2VsZWN0b3JzOnJ9KSkpLnRvQXJyYXkoKSkpfX1jb25zdCB5cz1hdXRoc19BdXRocyxpc09BUzMxPWU9Pntjb25zdCB0PWUuZ2V0KCJvcGVuYXBpIik7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYvXjNcLjFcLig/OlsxLTldXGQqfDApJC8udGVzdCh0KX0sZm5fY3JlYXRlT25seU9BUzMxU2VsZWN0b3I9ZT0+KHQsLi4ucik9PmE9PntpZihhLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuaXNPQVMzMSgpKXtjb25zdCBuPWUodCwuLi5yKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygbj9uKGEpOm59cmV0dXJuIG51bGx9LGNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yV3JhcHBlcj1lPT4odCxyKT0+KGEsLi4ubik9PntpZihyLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuaXNPQVMzMSgpKXtjb25zdCBzPWUoYSwuLi5uKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygcz9zKHQscik6c31yZXR1cm4gdCguLi5uKX0sZm5fY3JlYXRlU3lzdGVtU2VsZWN0b3I9ZT0+KHQsLi4ucik9PmE9Pntjb25zdCBuPWUodCxhLC4uLnIpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBuP24oYSk6bn0sY3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcj1lPT4odCxyKT0+YT0+ci5zcGVjU2VsZWN0b3JzLmlzT0FTMzEoKT9PKCkuY3JlYXRlRWxlbWVudChlLFFlKCkoe30sYSx7b3JpZ2luYWxDb21wb25lbnQ6dCxnZXRTeXN0ZW06ci5nZXRTeXN0ZW19KSk6TygpLmNyZWF0ZUVsZW1lbnQodCxhKSx3cmFwT0FTMzFGbj0oZSx0KT0+e2NvbnN0e2ZuOnIsc3BlY1NlbGVjdG9yczphfT10O3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoZSkubWFwKCgoW2UsdF0pPT57Y29uc3Qgbj1yW2VdO3JldHVybltlLCguLi5lKT0+YS5pc09BUzMxKCk/dCguLi5lKToiZnVuY3Rpb24iPT10eXBlb2Ygbj9uKC4uLmUpOnZvaWQgMF19KSkpfSxmcz1jcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyKCgoe2dldFN5c3RlbTplfSk9Pntjb25zdCB0PWUoKS5nZXRDb21wb25lbnQoIk9BUzMxTGljZW5zZSIsITApO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCh0LG51bGwpfSkpLFNzPWNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoKCh7Z2V0U3lzdGVtOmV9KT0+e2NvbnN0IHQ9ZSgpLmdldENvbXBvbmVudCgiT0FTMzFDb250YWN0IiwhMCk7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KHQsbnVsbCl9KSksRXM9Y3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcigoKHtnZXRTeXN0ZW06ZX0pPT57Y29uc3QgdD1lKCkuZ2V0Q29tcG9uZW50KCJPQVMzMUluZm8iLCEwKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQodCxudWxsKX0pKSxnZXRQcm9wZXJ0aWVzPShlLHtpbmNsdWRlUmVhZE9ubHk6dCxpbmNsdWRlV3JpdGVPbmx5OnJ9KT0+e2lmKCFlPy5wcm9wZXJ0aWVzKXJldHVybnt9O2NvbnN0IGE9T2JqZWN0LmVudHJpZXMoZS5wcm9wZXJ0aWVzKS5maWx0ZXIoKChbLGVdKT0+KCEoITA9PT1lPy5yZWFkT25seSl8fHQpJiYoISghMD09PWU/LndyaXRlT25seSl8fHIpKSk7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhhKX0sbWFrZUdldFNjaGVtYUtleXdvcmRzPWU9PntpZigiZnVuY3Rpb24iIT10eXBlb2YgZSlyZXR1cm4gbnVsbDtjb25zdCB0PWUoKTtyZXR1cm4oKT0+Wy4uLnQsImRpc2NyaW1pbmF0b3IiLCJ4bWwiLCJleHRlcm5hbERvY3MiLCJleGFtcGxlIiwiJCRyZWYiXX0sX3M9Y3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcigoKHtnZXRTeXN0ZW06ZSwuLi50fSk9Pntjb25zdCByPWUoKSx7Z2V0Q29tcG9uZW50OmEsZm46bixnZXRDb25maWdzOnN9PXIsbz1zKCksbD1hKCJPQVMzMU1vZGVsIiksYz1hKCJ3aXRoSlNPTlNjaGVtYTIwMjAxMlN5c3RlbUNvbnRleHQiKTtyZXR1cm4gX3MuTW9kZWxXaXRoSlNPTlNjaGVtYUNvbnRleHQ/Pz1jKGwse2NvbmZpZzp7ZGVmYXVsdCRzY2hlbWE6Imh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzLzMuMS9kaWFsZWN0L2Jhc2UiLGRlZmF1bHRFeHBhbmRlZExldmVsczpvLmRlZmF1bHRNb2RlbEV4cGFuZERlcHRoLGluY2x1ZGVSZWFkT25seTp0LmluY2x1ZGVSZWFkT25seSxpbmNsdWRlV3JpdGVPbmx5OnQuaW5jbHVkZVdyaXRlT25seX0sZm46e2dldFByb3BlcnRpZXM6bi5qc29uU2NoZW1hMjAyMDEyLmdldFByb3BlcnRpZXMsaXNFeHBhbmRhYmxlOm4uanNvblNjaGVtYTIwMjAxMi5pc0V4cGFuZGFibGUsZ2V0U2NoZW1hS2V5d29yZHM6bWFrZUdldFNjaGVtYUtleXdvcmRzKG4uanNvblNjaGVtYTIwMjAxMi5nZXRTY2hlbWFLZXl3b3Jkcyl9fSksTygpLmNyZWF0ZUVsZW1lbnQoX3MuTW9kZWxXaXRoSlNPTlNjaGVtYUNvbnRleHQsdCl9KSksdnM9X3Msd3M9Y3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcigoKHtnZXRTeXN0ZW06ZX0pPT57Y29uc3R7Z2V0Q29tcG9uZW50OnQsZm46cixnZXRDb25maWdzOmF9PWUoKSxuPWEoKTtpZih3cy5Nb2RlbHNXaXRoSlNPTlNjaGVtYUNvbnRleHQpcmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KHdzLk1vZGVsc1dpdGhKU09OU2NoZW1hQ29udGV4dCxudWxsKTtjb25zdCBzPXQoIk9BUzMxTW9kZWxzIiwhMCksbz10KCJ3aXRoSlNPTlNjaGVtYTIwMjAxMlN5c3RlbUNvbnRleHQiKTtyZXR1cm4gd3MuTW9kZWxzV2l0aEpTT05TY2hlbWFDb250ZXh0Pz89byhzLHtjb25maWc6e2RlZmF1bHQkc2NoZW1hOiJodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy8zLjEvZGlhbGVjdC9iYXNlIixkZWZhdWx0RXhwYW5kZWRMZXZlbHM6bi5kZWZhdWx0TW9kZWxzRXhwYW5kRGVwdGgtMSxpbmNsdWRlUmVhZE9ubHk6ITAsaW5jbHVkZVdyaXRlT25seTohMH0sZm46e2dldFByb3BlcnRpZXM6ci5qc29uU2NoZW1hMjAyMDEyLmdldFByb3BlcnRpZXMsaXNFeHBhbmRhYmxlOnIuanNvblNjaGVtYTIwMjAxMi5pc0V4cGFuZGFibGUsZ2V0U2NoZW1hS2V5d29yZHM6bWFrZUdldFNjaGVtYUtleXdvcmRzKHIuanNvblNjaGVtYTIwMjAxMi5nZXRTY2hlbWFLZXl3b3Jkcyl9fSksTygpLmNyZWF0ZUVsZW1lbnQod3MuTW9kZWxzV2l0aEpTT05TY2hlbWFDb250ZXh0LG51bGwpfSkpO3dzLk1vZGVsc1dpdGhKU09OU2NoZW1hQ29udGV4dD1udWxsO2NvbnN0IGJzPXdzLHdyYXBfY29tcG9uZW50c192ZXJzaW9uX3ByYWdtYV9maWx0ZXI9KGUsdCk9PmU9Pntjb25zdCByPXQuc3BlY1NlbGVjdG9ycy5pc09BUzMxKCksYT10LmdldENvbXBvbmVudCgiT0FTMzFWZXJzaW9uUHJhZ21hRmlsdGVyIik7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KGEsUWUoKSh7aXNPQVMzMTpyfSxlKSl9LENzPWNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoKCh7b3JpZ2luYWxDb21wb25lbnQ6ZSwuLi50fSk9Pntjb25zdHtnZXRDb21wb25lbnQ6cixzY2hlbWE6YSxuYW1lOm59PXQscz1yKCJNdXR1YWxUTFNBdXRoIiwhMCk7cmV0dXJuIm11dHVhbFRMUyI9PT1hLmdldCgidHlwZSIpP08oKS5jcmVhdGVFbGVtZW50KHMse3NjaGVtYTphLG5hbWU6bn0pOk8oKS5jcmVhdGVFbGVtZW50KGUsdCl9KSkseHM9Q3MsT3M9Y3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcigoKHtnZXRTeXN0ZW06ZSwuLi50fSk9Pntjb25zdCByPWUoKS5nZXRDb21wb25lbnQoIk9BUzMxQXV0aHMiLCEwKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQocix0KX0pKSxOcz0oMCxrLk1hcCkoKSxrcz0oMCxfZS5jcmVhdGVTZWxlY3RvcikoKChlLHQpPT50LnNwZWNTZWxlY3RvcnMuc3BlY0pzb24oKSksaXNPQVMzMSksc2VsZWN0b3JzX3dlYmhvb2tzPSgpPT5lPT57Y29uc3QgdD1lLnNwZWNTZWxlY3RvcnMuc3BlY0pzb24oKS5nZXQoIndlYmhvb2tzIik7cmV0dXJuIGsuTWFwLmlzTWFwKHQpP3Q6TnN9LEFzPSgwLF9lLmNyZWF0ZVNlbGVjdG9yKShbKGUsdCk9PnQuc3BlY1NlbGVjdG9ycy53ZWJob29rcygpLChlLHQpPT50LnNwZWNTZWxlY3RvcnMudmFsaWRPcGVyYXRpb25NZXRob2RzKCksKGUsdCk9PnQuc3BlY1NlbGVjdG9ycy5zcGVjUmVzb2x2ZWRTdWJ0cmVlKFsid2ViaG9va3MiXSldLCgoZSx0KT0+ZS5yZWR1Y2UoKChlLHIsYSk9PntpZighay5NYXAuaXNNYXAocikpcmV0dXJuIGU7Y29uc3Qgbj1yLmVudHJ5U2VxKCkuZmlsdGVyKCgoW2VdKT0+dC5pbmNsdWRlcyhlKSkpLm1hcCgoKFtlLHRdKT0+KHtvcGVyYXRpb246KDAsay5NYXApKHtvcGVyYXRpb246dH0pLG1ldGhvZDplLHBhdGg6YSxzcGVjUGF0aDpbIndlYmhvb2tzIixhLGVdfSkpKTtyZXR1cm4gZS5jb25jYXQobil9KSwoMCxrLkxpc3QpKCkpLmdyb3VwQnkoKGU9PmUucGF0aCkpLm1hcCgoZT0+ZS50b0FycmF5KCkpKS50b09iamVjdCgpKSksc2VsZWN0b3JzX2xpY2Vuc2U9KCk9PmU9Pntjb25zdCB0PWUuc3BlY1NlbGVjdG9ycy5pbmZvKCkuZ2V0KCJsaWNlbnNlIik7cmV0dXJuIGsuTWFwLmlzTWFwKHQpP3Q6TnN9LHNlbGVjdExpY2Vuc2VOYW1lRmllbGQ9KCk9PmU9PmUuc3BlY1NlbGVjdG9ycy5saWNlbnNlKCkuZ2V0KCJuYW1lIiwiTGljZW5zZSIpLHNlbGVjdExpY2Vuc2VVcmxGaWVsZD0oKT0+ZT0+ZS5zcGVjU2VsZWN0b3JzLmxpY2Vuc2UoKS5nZXQoInVybCIpLElzPSgwLF9lLmNyZWF0ZVNlbGVjdG9yKShbKGUsdCk9PnQuc3BlY1NlbGVjdG9ycy51cmwoKSwoZSx0KT0+dC5vYXMzU2VsZWN0b3JzLnNlbGVjdGVkU2VydmVyKCksKGUsdCk9PnQuc3BlY1NlbGVjdG9ycy5zZWxlY3RMaWNlbnNlVXJsRmllbGQoKV0sKChlLHQscik9PntpZihyKXJldHVybiBzYWZlQnVpbGRVcmwocixlLHtzZWxlY3RlZFNlcnZlcjp0fSl9KSksc2VsZWN0TGljZW5zZUlkZW50aWZpZXJGaWVsZD0oKT0+ZT0+ZS5zcGVjU2VsZWN0b3JzLmxpY2Vuc2UoKS5nZXQoImlkZW50aWZpZXIiKSxzZWxlY3RvcnNfY29udGFjdD0oKT0+ZT0+e2NvbnN0IHQ9ZS5zcGVjU2VsZWN0b3JzLmluZm8oKS5nZXQoImNvbnRhY3QiKTtyZXR1cm4gay5NYXAuaXNNYXAodCk/dDpOc30sc2VsZWN0Q29udGFjdE5hbWVGaWVsZD0oKT0+ZT0+ZS5zcGVjU2VsZWN0b3JzLmNvbnRhY3QoKS5nZXQoIm5hbWUiLCJ0aGUgZGV2ZWxvcGVyIiksc2VsZWN0Q29udGFjdEVtYWlsRmllbGQ9KCk9PmU9PmUuc3BlY1NlbGVjdG9ycy5jb250YWN0KCkuZ2V0KCJlbWFpbCIpLHNlbGVjdENvbnRhY3RVcmxGaWVsZD0oKT0+ZT0+ZS5zcGVjU2VsZWN0b3JzLmNvbnRhY3QoKS5nZXQoInVybCIpLGpzPSgwLF9lLmNyZWF0ZVNlbGVjdG9yKShbKGUsdCk9PnQuc3BlY1NlbGVjdG9ycy51cmwoKSwoZSx0KT0+dC5vYXMzU2VsZWN0b3JzLnNlbGVjdGVkU2VydmVyKCksKGUsdCk9PnQuc3BlY1NlbGVjdG9ycy5zZWxlY3RDb250YWN0VXJsRmllbGQoKV0sKChlLHQscik9PntpZihyKXJldHVybiBzYWZlQnVpbGRVcmwocixlLHtzZWxlY3RlZFNlcnZlcjp0fSl9KSksc2VsZWN0SW5mb1RpdGxlRmllbGQ9KCk9PmU9PmUuc3BlY1NlbGVjdG9ycy5pbmZvKCkuZ2V0KCJ0aXRsZSIpLHNlbGVjdEluZm9TdW1tYXJ5RmllbGQ9KCk9PmU9PmUuc3BlY1NlbGVjdG9ycy5pbmZvKCkuZ2V0KCJzdW1tYXJ5Iiksc2VsZWN0SW5mb0Rlc2NyaXB0aW9uRmllbGQ9KCk9PmU9PmUuc3BlY1NlbGVjdG9ycy5pbmZvKCkuZ2V0KCJkZXNjcmlwdGlvbiIpLHNlbGVjdEluZm9UZXJtc09mU2VydmljZUZpZWxkPSgpPT5lPT5lLnNwZWNTZWxlY3RvcnMuaW5mbygpLmdldCgidGVybXNPZlNlcnZpY2UiKSxxcz0oMCxfZS5jcmVhdGVTZWxlY3RvcikoWyhlLHQpPT50LnNwZWNTZWxlY3RvcnMudXJsKCksKGUsdCk9PnQub2FzM1NlbGVjdG9ycy5zZWxlY3RlZFNlcnZlcigpLChlLHQpPT50LnNwZWNTZWxlY3RvcnMuc2VsZWN0SW5mb1Rlcm1zT2ZTZXJ2aWNlRmllbGQoKV0sKChlLHQscik9PntpZihyKXJldHVybiBzYWZlQnVpbGRVcmwocixlLHtzZWxlY3RlZFNlcnZlcjp0fSl9KSksc2VsZWN0RXh0ZXJuYWxEb2NzRGVzY3JpcHRpb25GaWVsZD0oKT0+ZT0+ZS5zcGVjU2VsZWN0b3JzLmV4dGVybmFsRG9jcygpLmdldCgiZGVzY3JpcHRpb24iKSxzZWxlY3RFeHRlcm5hbERvY3NVcmxGaWVsZD0oKT0+ZT0+ZS5zcGVjU2VsZWN0b3JzLmV4dGVybmFsRG9jcygpLmdldCgidXJsIiksUHM9KDAsX2UuY3JlYXRlU2VsZWN0b3IpKFsoZSx0KT0+dC5zcGVjU2VsZWN0b3JzLnVybCgpLChlLHQpPT50Lm9hczNTZWxlY3RvcnMuc2VsZWN0ZWRTZXJ2ZXIoKSwoZSx0KT0+dC5zcGVjU2VsZWN0b3JzLnNlbGVjdEV4dGVybmFsRG9jc1VybEZpZWxkKCldLCgoZSx0LHIpPT57aWYocilyZXR1cm4gc2FmZUJ1aWxkVXJsKHIsZSx7c2VsZWN0ZWRTZXJ2ZXI6dH0pfSkpLHNlbGVjdEpzb25TY2hlbWFEaWFsZWN0RmllbGQ9KCk9PmU9PmUuc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpLmdldCgianNvblNjaGVtYURpYWxlY3QiKSxzZWxlY3RKc29uU2NoZW1hRGlhbGVjdERlZmF1bHQ9KCk9PiJodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy8zLjEvZGlhbGVjdC9iYXNlIixNcz0oMCxfZS5jcmVhdGVTZWxlY3RvcikoKChlLHQpPT50LnNwZWNTZWxlY3RvcnMuZGVmaW5pdGlvbnMoKSksKChlLHQpPT50LnNwZWNTZWxlY3RvcnMuc3BlY1Jlc29sdmVkU3VidHJlZShbImNvbXBvbmVudHMiLCJzY2hlbWFzIl0pKSwoKGUsdCk9PmsuTWFwLmlzTWFwKGUpP2suTWFwLmlzTWFwKHQpP09iamVjdC5lbnRyaWVzKGUudG9KUygpKS5yZWR1Y2UoKChlLFtyLGFdKT0+e2NvbnN0IG49dC5nZXQocik7cmV0dXJuIGVbcl09bj8udG9KUygpfHxhLGV9KSx7fSk6ZS50b0pTKCk6e30pKSx3cmFwX3NlbGVjdG9yc19pc09BUzM9KGUsdCk9PihyLC4uLmEpPT50LnNwZWNTZWxlY3RvcnMuaXNPQVMzMSgpfHxlKC4uLmEpLFRzPWNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yV3JhcHBlcigoKCk9PihlLHQpPT50Lm9hczMxU2VsZWN0b3JzLnNlbGVjdExpY2Vuc2VVcmwoKSkpLFJzPWNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yV3JhcHBlcigoKCk9PihlLHQpPT57Y29uc3Qgcj10LnNwZWNTZWxlY3RvcnMuc2VjdXJpdHlEZWZpbml0aW9ucygpO2xldCBhPWUoKTtyZXR1cm4gcj8oci5lbnRyeVNlcSgpLmZvckVhY2goKChbZSx0XSk9Pntjb25zdCByPXQ/LmdldCgidHlwZSIpOyJtdXR1YWxUTFMiPT09ciYmKGE9YS5wdXNoKG5ldyBrLk1hcCh7W2VdOnR9KSkpfSkpLGEpOmF9KSksSnM9KDAsX2UuY3JlYXRlU2VsZWN0b3IpKFsoZSx0KT0+dC5zcGVjU2VsZWN0b3JzLnVybCgpLChlLHQpPT50Lm9hczNTZWxlY3RvcnMuc2VsZWN0ZWRTZXJ2ZXIoKSwoZSx0KT0+dC5zcGVjU2VsZWN0b3JzLnNlbGVjdExpY2Vuc2VVcmxGaWVsZCgpLChlLHQpPT50LnNwZWNTZWxlY3RvcnMuc2VsZWN0TGljZW5zZUlkZW50aWZpZXJGaWVsZCgpXSwoKGUsdCxyLGEpPT5yP3NhZmVCdWlsZFVybChyLGUse3NlbGVjdGVkU2VydmVyOnR9KTphP2BodHRwczovL3NwZHgub3JnL2xpY2Vuc2VzLyR7YX0uaHRtbGA6dm9pZCAwKSksa2V5d29yZHNfRXhhbXBsZT0oe3NjaGVtYTplLGdldFN5c3RlbTp0fSk9Pntjb25zdHtmbjpyLGdldENvbXBvbmVudDphfT10KCkse2hhc0tleXdvcmQ6bn09ci5qc29uU2NoZW1hMjAyMDEyLnVzZUZuKCkscz1hKCJKU09OU2NoZW1hMjAyMDEySlNPTlZpZXdlciIpO3JldHVybiBuKGUsImV4YW1wbGUiKT9PKCkuY3JlYXRlRWxlbWVudChzLHtuYW1lOiJFeGFtcGxlIix2YWx1ZTplLmV4YW1wbGUsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1leGFtcGxlIn0pOm51bGx9LGtleXdvcmRzX1htbD0oe3NjaGVtYTplLGdldFN5c3RlbTp0fSk9Pntjb25zdCByPWU/LnhtbHx8e30se2ZuOmEsZ2V0Q29tcG9uZW50Om4sZ2V0Q29uZmlnczpzfT10KCkse3Nob3dFeHRlbnNpb25zOm99PXMoKSx7dXNlQ29tcG9uZW50OmwsdXNlSXNFeHBhbmRlZDpjLHVzZVBhdGg6aSx1c2VMZXZlbDpwfT1hLmpzb25TY2hlbWEyMDIwMTIse3BhdGg6bX09aSgieG1sIikse2lzRXhwYW5kZWQ6dSxzZXRFeHBhbmRlZDpkLHNldENvbGxhcHNlZDpofT1jKCJ4bWwiKSxbZyx5XT1wKCksZj1vP2dldEV4dGVuc2lvbnMocik6W10sUz0hIShyLm5hbWV8fHIubmFtZXNwYWNlfHxyLnByZWZpeHx8Zi5sZW5ndGg+MCksRT1sKCJBY2NvcmRpb24iKSxfPWwoIkV4cGFuZERlZXBCdXR0b24iKSx2PW4oIk9wZW5BUEkzMUV4dGVuc2lvbnMiKSx3PW4oIkpTT05TY2hlbWEyMDIwMTJQYXRoQ29udGV4dCIpKCksYj1uKCJKU09OU2NoZW1hMjAyMDEyTGV2ZWxDb250ZXh0IikoKSxDPSgwLHgudXNlQ2FsbGJhY2spKCgoKT0+e3U/aCgpOmQoKX0pLFt1LGQsaF0pLE49KDAseC51c2VDYWxsYmFjaykoKChlLHQpPT57dD9kKHtkZWVwOiEwfSk6aCh7ZGVlcDohMH0pfSksW2QsaF0pO3JldHVybiAwPT09T2JqZWN0LmtleXMocikubGVuZ3RoP251bGw6TygpLmNyZWF0ZUVsZW1lbnQody5Qcm92aWRlcix7dmFsdWU6bX0sTygpLmNyZWF0ZUVsZW1lbnQoYi5Qcm92aWRlcix7dmFsdWU6eX0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0teG1sIiwiZGF0YS1qc29uLXNjaGVtYS1sZXZlbCI6Z30sUz9PKCkuY3JlYXRlRWxlbWVudChPKCkuRnJhZ21lbnQsbnVsbCxPKCkuY3JlYXRlRWxlbWVudChFLHtleHBhbmRlZDp1LG9uQ2hhbmdlOkN9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiWE1MIikpLE8oKS5jcmVhdGVFbGVtZW50KF8se2V4cGFuZGVkOnUsb25DbGljazpOfSkpOk8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiWE1MIiksITA9PT1yLmF0dHJpYnV0ZSYmTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLW11dGVkIn0sImF0dHJpYnV0ZSIpLCEwPT09ci53cmFwcGVkJiZPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tbXV0ZWQifSwid3JhcHBlZCIpLE8oKS5jcmVhdGVFbGVtZW50KCJzdHJvbmciLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnkifSwib2JqZWN0IiksTygpLmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOnB0KCkoImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4iLHsianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkIjohdX0pfSx1JiZPKCkuY3JlYXRlRWxlbWVudChPKCkuRnJhZ21lbnQsbnVsbCxyLm5hbWUmJk8oKS5jcmVhdGVFbGVtZW50KCJsaSIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSJ9LE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQifSxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sIm5hbWUiKSxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxyLm5hbWUpKSksci5uYW1lc3BhY2UmJk8oKS5jcmVhdGVFbGVtZW50KCJsaSIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSJ9LE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCJ9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwibmFtZXNwYWNlIiksTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0sci5uYW1lc3BhY2UpKSksci5wcmVmaXgmJk8oKS5jcmVhdGVFbGVtZW50KCJsaSIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSJ9LE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCJ9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwicHJlZml4IiksTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0sci5wcmVmaXgpKSkpLGYubGVuZ3RoPjAmJk8oKS5jcmVhdGVFbGVtZW50KHYse29wZW5BUElTcGVjT2JqOnIsb3BlbkFQSUV4dGVuc2lvbnM6ZixnZXRTeXN0ZW06dH0pKSkpKX0sRGlzY3JpbWluYXRvcl9EaXNjcmltaW5hdG9yTWFwcGluZz0oe2Rpc2NyaW1pbmF0b3I6ZX0pPT57Y29uc3QgdD1lPy5tYXBwaW5nfHx7fTtyZXR1cm4gMD09PU9iamVjdC5rZXlzKHQpLmxlbmd0aD9udWxsOk9iamVjdC5lbnRyaWVzKHQpLm1hcCgoKFtlLHRdKT0+TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleTpgJHtlfS0ke3R9YCxjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCJ9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSxlKSxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSx0KSkpKX0sRGlzY3JpbWluYXRvcl9EaXNjcmltaW5hdG9yPSh7c2NoZW1hOmUsZ2V0U3lzdGVtOnR9KT0+e2NvbnN0IHI9ZT8uZGlzY3JpbWluYXRvcnx8e30se2ZuOmEsZ2V0Q29tcG9uZW50Om4sZ2V0Q29uZmlnczpzfT10KCkse3Nob3dFeHRlbnNpb25zOm99PXMoKSx7dXNlQ29tcG9uZW50OmwsdXNlSXNFeHBhbmRlZDpjLHVzZVBhdGg6aSx1c2VMZXZlbDpwfT1hLmpzb25TY2hlbWEyMDIwMTIsbT0iZGlzY3JpbWluYXRvciIse3BhdGg6dX09aShtKSx7aXNFeHBhbmRlZDpkLHNldEV4cGFuZGVkOmgsc2V0Q29sbGFwc2VkOmd9PWMobSksW3ksZl09cCgpLFM9bz9nZXRFeHRlbnNpb25zKHIpOltdLEU9ISEoci5tYXBwaW5nfHxTLmxlbmd0aD4wKSxfPWwoIkFjY29yZGlvbiIpLHY9bCgiRXhwYW5kRGVlcEJ1dHRvbiIpLHc9bigiT3BlbkFQSTMxRXh0ZW5zaW9ucyIpLGI9bigiSlNPTlNjaGVtYTIwMjAxMlBhdGhDb250ZXh0IikoKSxDPW4oIkpTT05TY2hlbWEyMDIwMTJMZXZlbENvbnRleHQiKSgpLE49KDAseC51c2VDYWxsYmFjaykoKCgpPT57ZD9nKCk6aCgpfSksW2QsaCxnXSksaz0oMCx4LnVzZUNhbGxiYWNrKSgoKGUsdCk9Pnt0P2goe2RlZXA6ITB9KTpnKHtkZWVwOiEwfSl9KSxbaCxnXSk7cmV0dXJuIDA9PT1PYmplY3Qua2V5cyhyKS5sZW5ndGg/bnVsbDpPKCkuY3JlYXRlRWxlbWVudChiLlByb3ZpZGVyLHt2YWx1ZTp1fSxPKCkuY3JlYXRlRWxlbWVudChDLlByb3ZpZGVyLHt2YWx1ZTpmfSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kaXNjcmltaW5hdG9yIiwiZGF0YS1qc29uLXNjaGVtYS1sZXZlbCI6eX0sRT9PKCkuY3JlYXRlRWxlbWVudChPKCkuRnJhZ21lbnQsbnVsbCxPKCkuY3JlYXRlRWxlbWVudChfLHtleHBhbmRlZDpkLG9uQ2hhbmdlOk59LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiRGlzY3JpbWluYXRvciIpKSxPKCkuY3JlYXRlRWxlbWVudCh2LHtleHBhbmRlZDpkLG9uQ2xpY2s6a30pKTpPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sIkRpc2NyaW1pbmF0b3IiKSxyLnByb3BlcnR5TmFtZSYmTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLW11dGVkIn0sci5wcm9wZXJ0eU5hbWUpLE8oKS5jcmVhdGVFbGVtZW50KCJzdHJvbmciLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnkifSwib2JqZWN0IiksTygpLmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOnB0KCkoImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4iLHsianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkIjohZH0pfSxkJiZPKCkuY3JlYXRlRWxlbWVudCgibGkiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHkifSxPKCkuY3JlYXRlRWxlbWVudChEaXNjcmltaW5hdG9yX0Rpc2NyaW1pbmF0b3JNYXBwaW5nLHtkaXNjcmltaW5hdG9yOnJ9KSksUy5sZW5ndGg+MCYmTygpLmNyZWF0ZUVsZW1lbnQodyx7b3BlbkFQSVNwZWNPYmo6cixvcGVuQVBJRXh0ZW5zaW9uczpTLGdldFN5c3RlbTp0fSkpKSkpfSxrZXl3b3Jkc19PcGVuQVBJRXh0ZW5zaW9ucz0oe29wZW5BUElTcGVjT2JqOmUsZ2V0U3lzdGVtOnQsb3BlbkFQSUV4dGVuc2lvbnM6cn0pPT57Y29uc3R7Zm46YX09dCgpLHt1c2VDb21wb25lbnQ6bn09YS5qc29uU2NoZW1hMjAyMDEyLHM9bigiSlNPTlZpZXdlciIpO3JldHVybiByLm1hcCgodD0+TygpLmNyZWF0ZUVsZW1lbnQocyx7a2V5OnQsbmFtZTp0LHZhbHVlOmVbdF0sY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyLWV4dGVuc2lvbi1rZXl3b3JkIn0pKSl9LGtleXdvcmRzX0V4dGVybmFsRG9jcz0oe3NjaGVtYTplLGdldFN5c3RlbTp0fSk9Pntjb25zdCByPWU/LmV4dGVybmFsRG9jc3x8e30se2ZuOmEsZ2V0Q29tcG9uZW50Om4sZ2V0Q29uZmlnczpzfT10KCkse3Nob3dFeHRlbnNpb25zOm99PXMoKSx7dXNlQ29tcG9uZW50OmwsdXNlSXNFeHBhbmRlZDpjLHVzZVBhdGg6aSx1c2VMZXZlbDpwfT1hLmpzb25TY2hlbWEyMDIwMTIsbT0iZXh0ZXJuYWxEb2NzIix7cGF0aDp1fT1pKG0pLHtpc0V4cGFuZGVkOmQsc2V0RXhwYW5kZWQ6aCxzZXRDb2xsYXBzZWQ6Z309YyhtKSxbeSxmXT1wKCksUz1vP2dldEV4dGVuc2lvbnMocik6W10sRT0hIShyLmRlc2NyaXB0aW9ufHxyLnVybHx8Uy5sZW5ndGg+MCksXz1sKCJBY2NvcmRpb24iKSx2PWwoIkV4cGFuZERlZXBCdXR0b24iKSx3PW4oIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVzY3JpcHRpb24iKSxiPW4oIkxpbmsiKSxDPW4oIk9wZW5BUEkzMUV4dGVuc2lvbnMiKSxOPW4oIkpTT05TY2hlbWEyMDIwMTJQYXRoQ29udGV4dCIpKCksaz1uKCJKU09OU2NoZW1hMjAyMDEyTGV2ZWxDb250ZXh0IikoKSxBPSgwLHgudXNlQ2FsbGJhY2spKCgoKT0+e2Q/ZygpOmgoKX0pLFtkLGgsZ10pLEk9KDAseC51c2VDYWxsYmFjaykoKChlLHQpPT57dD9oKHtkZWVwOiEwfSk6Zyh7ZGVlcDohMH0pfSksW2gsZ10pO3JldHVybiAwPT09T2JqZWN0LmtleXMocikubGVuZ3RoP251bGw6TygpLmNyZWF0ZUVsZW1lbnQoTi5Qcm92aWRlcix7dmFsdWU6dX0sTygpLmNyZWF0ZUVsZW1lbnQoay5Qcm92aWRlcix7dmFsdWU6Zn0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZXh0ZXJuYWxEb2NzIiwiZGF0YS1qc29uLXNjaGVtYS1sZXZlbCI6eX0sRT9PKCkuY3JlYXRlRWxlbWVudChPKCkuRnJhZ21lbnQsbnVsbCxPKCkuY3JlYXRlRWxlbWVudChfLHtleHBhbmRlZDpkLG9uQ2hhbmdlOkF9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiRXh0ZXJuYWwgZG9jdW1lbnRhdGlvbiIpKSxPKCkuY3JlYXRlRWxlbWVudCh2LHtleHBhbmRlZDpkLG9uQ2xpY2s6SX0pKTpPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sIkV4dGVybmFsIGRvY3VtZW50YXRpb24iKSxPKCkuY3JlYXRlRWxlbWVudCgic3Ryb25nIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5In0sIm9iamVjdCIpLE8oKS5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZTpwdCgpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuIix7Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4tLWNvbGxhcHNlZCI6IWR9KX0sZCYmTygpLmNyZWF0ZUVsZW1lbnQoTygpLkZyYWdtZW50LG51bGwsci5kZXNjcmlwdGlvbiYmTygpLmNyZWF0ZUVsZW1lbnQoImxpIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sTygpLmNyZWF0ZUVsZW1lbnQodyx7c2NoZW1hOnIsZ2V0U3lzdGVtOnR9KSksci51cmwmJk8oKS5jcmVhdGVFbGVtZW50KCJsaSIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSJ9LE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQifSxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5In0sInVybCIpLE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeSJ9LE8oKS5jcmVhdGVFbGVtZW50KGIse3RhcmdldDoiX2JsYW5rIixocmVmOnNhbml0aXplVXJsKHIudXJsKX0sci51cmwpKSkpKSxTLmxlbmd0aD4wJiZPKCkuY3JlYXRlRWxlbWVudChDLHtvcGVuQVBJU3BlY09iajpyLG9wZW5BUElFeHRlbnNpb25zOlMsZ2V0U3lzdGVtOnR9KSkpKSl9LGtleXdvcmRzX0Rlc2NyaXB0aW9uPSh7c2NoZW1hOmUsZ2V0U3lzdGVtOnR9KT0+e2lmKCFlPy5kZXNjcmlwdGlvbilyZXR1cm4gbnVsbDtjb25zdHtnZXRDb21wb25lbnQ6cn09dCgpLGE9cigiTWFya2Rvd24iKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZGVzY3JpcHRpb24ifSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWNvcmUta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1jb3JlLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxPKCkuY3JlYXRlRWxlbWVudChhLHtzb3VyY2U6ZS5kZXNjcmlwdGlvbn0pKSl9LCRzPWNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoa2V5d29yZHNfRGVzY3JpcHRpb24pLFZzPWNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoKCh7c2NoZW1hOmUsZ2V0U3lzdGVtOnQsb3JpZ2luYWxDb21wb25lbnQ6cn0pPT57Y29uc3R7Z2V0Q29tcG9uZW50OmF9PXQoKSxuPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGlzY3JpbWluYXRvciIpLHM9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRYbWwiKSxvPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXhhbXBsZSIpLGw9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFeHRlcm5hbERvY3MiKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoTygpLkZyYWdtZW50LG51bGwsTygpLmNyZWF0ZUVsZW1lbnQocix7c2NoZW1hOmV9KSxPKCkuY3JlYXRlRWxlbWVudChuLHtzY2hlbWE6ZSxnZXRTeXN0ZW06dH0pLE8oKS5jcmVhdGVFbGVtZW50KHMse3NjaGVtYTplLGdldFN5c3RlbTp0fSksTygpLmNyZWF0ZUVsZW1lbnQobCx7c2NoZW1hOmUsZ2V0U3lzdGVtOnR9KSxPKCkuY3JlYXRlRWxlbWVudChvLHtzY2hlbWE6ZSxnZXRTeXN0ZW06dH0pKX0pKSxMcz1WcyxrZXl3b3Jkc19Qcm9wZXJ0aWVzPSh7c2NoZW1hOmUsZ2V0U3lzdGVtOnR9KT0+e2NvbnN0e2ZuOnIsZ2V0Q29tcG9uZW50OmF9PXQoKSx7dXNlQ29tcG9uZW50Om4sdXNlUGF0aDpzfT1yLmpzb25TY2hlbWEyMDIwMTIse2dldERlcGVuZGVudFJlcXVpcmVkOm8sZ2V0UHJvcGVydGllczpsfT1yLmpzb25TY2hlbWEyMDIwMTIudXNlRm4oKSxjPXIuanNvblNjaGVtYTIwMjAxMi51c2VDb25maWcoKSxpPUFycmF5LmlzQXJyYXkoZT8ucmVxdWlyZWQpP2UucmVxdWlyZWQ6W10se3BhdGg6cH09cygicHJvcGVydGllcyIpLG09bigiSlNPTlNjaGVtYSIpLHU9YSgiSlNPTlNjaGVtYTIwMjAxMlBhdGhDb250ZXh0IikoKSxkPWwoZSxjKTtyZXR1cm4gMD09PU9iamVjdC5rZXlzKGQpLmxlbmd0aD9udWxsOk8oKS5jcmVhdGVFbGVtZW50KHUuUHJvdmlkZXIse3ZhbHVlOnB9LE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLXByb3BlcnRpZXMifSxPKCkuY3JlYXRlRWxlbWVudCgidWwiLG51bGwsT2JqZWN0LmVudHJpZXMoZCkubWFwKCgoW3Qscl0pPT57Y29uc3QgYT1pLmluY2x1ZGVzKHQpLG49byh0LGUpO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgibGkiLHtrZXk6dCxjbGFzc05hbWU6cHQoKSgianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSIseyJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5LS1yZXF1aXJlZCI6YX0pfSxPKCkuY3JlYXRlRWxlbWVudChtLHtuYW1lOnQsc2NoZW1hOnIsZGVwZW5kZW50UmVxdWlyZWQ6bn0pKX0pKSkpKX0sRHM9Y3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcihrZXl3b3Jkc19Qcm9wZXJ0aWVzKTtjb25zdCBVcz1mdW5jdGlvbiBvYXMzMV9hZnRlcl9sb2FkX2FmdGVyTG9hZCh7Zm46ZSxnZXRTeXN0ZW06dH0pe2lmKGUuanNvblNjaGVtYTIwMjAxMil7Y29uc3Qgcj0oKGUsdCk9Pntjb25zdHtmbjpyfT10KCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpcmV0dXJuIG51bGw7Y29uc3R7aGFzS2V5d29yZDphfT1yLmpzb25TY2hlbWEyMDIwMTI7cmV0dXJuIHQ9PmUodCl8fGEodCwiZXhhbXBsZSIpfHx0Py54bWx8fHQ/LmRpc2NyaW1pbmF0b3J8fHQ/LmV4dGVybmFsRG9jc30pKGUuanNvblNjaGVtYTIwMjAxMi5pc0V4cGFuZGFibGUsdCk7T2JqZWN0LmFzc2lnbih0aGlzLmZuLmpzb25TY2hlbWEyMDIwMTIse2lzRXhwYW5kYWJsZTpyLGdldFByb3BlcnRpZXN9KX1pZigiZnVuY3Rpb24iPT10eXBlb2YgZS5zYW1wbGVGcm9tU2NoZW1hJiZlLmpzb25TY2hlbWEyMDIwMTIpe2NvbnN0IHI9d3JhcE9BUzMxRm4oe3NhbXBsZUZyb21TY2hlbWE6ZS5qc29uU2NoZW1hMjAyMDEyLnNhbXBsZUZyb21TY2hlbWEsc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWM6ZS5qc29uU2NoZW1hMjAyMDEyLnNhbXBsZUZyb21TY2hlbWFHZW5lcmljLGNyZWF0ZVhNTEV4YW1wbGU6ZS5qc29uU2NoZW1hMjAyMDEyLmNyZWF0ZVhNTEV4YW1wbGUsbWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hOmUuanNvblNjaGVtYTIwMjAxMi5tZW1vaXplZFNhbXBsZUZyb21TY2hlbWEsbWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlOmUuanNvblNjaGVtYTIwMjAxMi5tZW1vaXplZENyZWF0ZVhNTEV4YW1wbGUsZ2V0SnNvblNhbXBsZVNjaGVtYTplLmpzb25TY2hlbWEyMDIwMTIuZ2V0SnNvblNhbXBsZVNjaGVtYSxnZXRZYW1sU2FtcGxlU2NoZW1hOmUuanNvblNjaGVtYTIwMjAxMi5nZXRZYW1sU2FtcGxlU2NoZW1hLGdldFhtbFNhbXBsZVNjaGVtYTplLmpzb25TY2hlbWEyMDIwMTIuZ2V0WG1sU2FtcGxlU2NoZW1hLGdldFNhbXBsZVNjaGVtYTplLmpzb25TY2hlbWEyMDIwMTIuZ2V0U2FtcGxlU2NoZW1hLG1lcmdlSnNvblNjaGVtYTplLmpzb25TY2hlbWEyMDIwMTIubWVyZ2VKc29uU2NoZW1hLGdldFNjaGVtYU9iamVjdFR5cGVMYWJlbDp0PT5lLmpzb25TY2hlbWEyMDIwMTIuZ2V0VHlwZShpbW11dGFibGVUb0pTKHQpKSxnZXRTY2hlbWFPYmplY3RUeXBlOnQ9PmUuanNvblNjaGVtYTIwMjAxMi5mb2xkVHlwZShpbW11dGFibGVUb0pTKHQpPy50eXBlKX0sdCgpKTtPYmplY3QuYXNzaWduKHRoaXMuZm4scil9Y29uc3Qgcj0oZT0+KHQscj1udWxsKT0+e2NvbnN0e2ZuOmF9PWUoKTtpZihhLmlzRmlsZVVwbG9hZEludGVuZGVkT0FTMzAodCxyKSlyZXR1cm4hMDtjb25zdCBuPWsuTWFwLmlzTWFwKHQpO2lmKCFuJiYhd3QoKSh0KSlyZXR1cm4hMTtjb25zdCBzPW4/dC5nZXQoImNvbnRlbnRNZWRpYVR5cGUiKTp0LmNvbnRlbnRNZWRpYVR5cGUsbz1uP3QuZ2V0KCJjb250ZW50RW5jb2RpbmciKTp0LmNvbnRlbnRFbmNvZGluZztyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHMmJiIiIT09c3x8InN0cmluZyI9PXR5cGVvZiBvJiYiIiE9PW99KSh0KSx7aXNGaWxlVXBsb2FkSW50ZW5kZWQ6YX09d3JhcE9BUzMxRm4oe2lzRmlsZVVwbG9hZEludGVuZGVkOnJ9LHQoKSk7aWYodGhpcy5mbi5pc0ZpbGVVcGxvYWRJbnRlbmRlZD1hLHRoaXMuZm4uaXNGaWxlVXBsb2FkSW50ZW5kZWRPQVMzMT1yLGUuanNvblNjaGVtYTIwMjAxMil7Y29uc3R7aGFzU2NoZW1hVHlwZTpyfT13cmFwT0FTMzFGbih7aGFzU2NoZW1hVHlwZTplLmpzb25TY2hlbWEyMDIwMTIuaGFzU2NoZW1hVHlwZX0sdCgpKTt0aGlzLmZuLmhhc1NjaGVtYVR5cGU9cn19LG9hczMxPSh7Zm46ZX0pPT57Y29uc3QgdD1lLmNyZWF0ZVN5c3RlbVNlbGVjdG9yfHxmbl9jcmVhdGVTeXN0ZW1TZWxlY3RvcixyPWUuY3JlYXRlT25seU9BUzMxU2VsZWN0b3J8fGZuX2NyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yO3JldHVybnthZnRlckxvYWQ6VXMsZm46e2lzT0FTMzEsY3JlYXRlU3lzdGVtU2VsZWN0b3I6Zm5fY3JlYXRlU3lzdGVtU2VsZWN0b3IsY3JlYXRlT25seU9BUzMxU2VsZWN0b3I6Zm5fY3JlYXRlT25seU9BUzMxU2VsZWN0b3J9LGNvbXBvbmVudHM6e1dlYmhvb2tzOndlYmhvb2tzLEpzb25TY2hlbWFEaWFsZWN0Ompzb25fc2NoZW1hX2RpYWxlY3QsTXV0dWFsVExTQXV0aDptdXR1YWxfdGxzX2F1dGgsT0FTMzFJbmZvOm9hczMxX2NvbXBvbmVudHNfaW5mbyxPQVMzMUxpY2Vuc2U6Y29tcG9uZW50c19saWNlbnNlLE9BUzMxQ29udGFjdDpjb21wb25lbnRzX2NvbnRhY3QsT0FTMzFWZXJzaW9uUHJhZ21hRmlsdGVyOnZlcnNpb25fcHJhZ21hX2ZpbHRlcixPQVMzMU1vZGVsOmdzLE9BUzMxTW9kZWxzOm1vZGVscyxPQVMzMUF1dGhzOnlzLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXhhbXBsZTprZXl3b3Jkc19FeGFtcGxlLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkWG1sOmtleXdvcmRzX1htbCxKU09OU2NoZW1hMjAyMDEyS2V5d29yZERpc2NyaW1pbmF0b3I6RGlzY3JpbWluYXRvcl9EaXNjcmltaW5hdG9yLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXh0ZXJuYWxEb2NzOmtleXdvcmRzX0V4dGVybmFsRG9jcyxPcGVuQVBJMzFFeHRlbnNpb25zOmtleXdvcmRzX09wZW5BUElFeHRlbnNpb25zfSx3cmFwQ29tcG9uZW50czp7SW5mb0NvbnRhaW5lcjpFcyxMaWNlbnNlOmZzLENvbnRhY3Q6U3MsVmVyc2lvblByYWdtYUZpbHRlcjp3cmFwX2NvbXBvbmVudHNfdmVyc2lvbl9wcmFnbWFfZmlsdGVyLE1vZGVsOnZzLE1vZGVsczpicyxBdXRoSXRlbTp4cyxhdXRoczpPcyxKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlc2NyaXB0aW9uOiRzLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXhhbXBsZXM6THMsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRQcm9wZXJ0aWVzOkRzfSxzdGF0ZVBsdWdpbnM6e2F1dGg6e3dyYXBTZWxlY3RvcnM6e2RlZmluaXRpb25zVG9BdXRob3JpemU6UnN9fSxzcGVjOntzZWxlY3RvcnM6e2lzT0FTMzE6dChrcyksbGljZW5zZTpzZWxlY3RvcnNfbGljZW5zZSxzZWxlY3RMaWNlbnNlTmFtZUZpZWxkLHNlbGVjdExpY2Vuc2VVcmxGaWVsZCxzZWxlY3RMaWNlbnNlSWRlbnRpZmllckZpZWxkOnIoc2VsZWN0TGljZW5zZUlkZW50aWZpZXJGaWVsZCksc2VsZWN0TGljZW5zZVVybDp0KElzKSxjb250YWN0OnNlbGVjdG9yc19jb250YWN0LHNlbGVjdENvbnRhY3ROYW1lRmllbGQsc2VsZWN0Q29udGFjdEVtYWlsRmllbGQsc2VsZWN0Q29udGFjdFVybEZpZWxkLHNlbGVjdENvbnRhY3RVcmw6dChqcyksc2VsZWN0SW5mb1RpdGxlRmllbGQsc2VsZWN0SW5mb1N1bW1hcnlGaWVsZDpyKHNlbGVjdEluZm9TdW1tYXJ5RmllbGQpLHNlbGVjdEluZm9EZXNjcmlwdGlvbkZpZWxkLHNlbGVjdEluZm9UZXJtc09mU2VydmljZUZpZWxkLHNlbGVjdEluZm9UZXJtc09mU2VydmljZVVybDp0KHFzKSxzZWxlY3RFeHRlcm5hbERvY3NEZXNjcmlwdGlvbkZpZWxkLHNlbGVjdEV4dGVybmFsRG9jc1VybEZpZWxkLHNlbGVjdEV4dGVybmFsRG9jc1VybDp0KFBzKSx3ZWJob29rczpyKHNlbGVjdG9yc193ZWJob29rcyksc2VsZWN0V2ViaG9va3NPcGVyYXRpb25zOnIodChBcykpLHNlbGVjdEpzb25TY2hlbWFEaWFsZWN0RmllbGQsc2VsZWN0SnNvblNjaGVtYURpYWxlY3REZWZhdWx0LHNlbGVjdFNjaGVtYXM6dChNcyl9LHdyYXBTZWxlY3RvcnM6e2lzT0FTMzp3cmFwX3NlbGVjdG9yc19pc09BUzMsc2VsZWN0TGljZW5zZVVybDpUc319LG9hczMxOntzZWxlY3RvcnM6e3NlbGVjdExpY2Vuc2VVcmw6cih0KEpzKSl9fX19fSxLcz1PZSgpLm9iamVjdCx6cz1PZSgpLmJvb2wsQnM9KE9lKCkub25lT2ZUeXBlKFtLcyx6c10pLCgwLHguY3JlYXRlQ29udGV4dCkobnVsbCkpO0JzLmRpc3BsYXlOYW1lPSJKU09OU2NoZW1hQ29udGV4dCI7Y29uc3QgRnM9KDAseC5jcmVhdGVDb250ZXh0KSgwKTtGcy5kaXNwbGF5TmFtZT0iSlNPTlNjaGVtYUxldmVsQ29udGV4dCI7Y29uc3QgV3M9KDAseC5jcmVhdGVDb250ZXh0KShuZXcgU2V0KSxIcz0oMCx4LmNyZWF0ZUNvbnRleHQpKFtdKTtjbGFzcyBKU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRle3N0YXRpYyBDb2xsYXBzZWQ9ImNvbGxhcHNlZCI7c3RhdGljIEV4cGFuZGVkPSJleHBhbmRlZCI7c3RhdGljIERlZXBseUV4cGFuZGVkPSJkZWVwbHktZXhwYW5kZWQifWNvbnN0IHVzZUNvbmZpZz0oKT0+e2NvbnN0e2NvbmZpZzplfT0oMCx4LnVzZUNvbnRleHQpKEJzKTtyZXR1cm4gZX0sdXNlQ29tcG9uZW50PWU9Pntjb25zdHtjb21wb25lbnRzOnR9PSgwLHgudXNlQ29udGV4dCkoQnMpO3JldHVybiB0W2VdfHxudWxsfSx1c2VGbj0oZT12b2lkIDApPT57Y29uc3R7Zm46dH09KDAseC51c2VDb250ZXh0KShCcyk7cmV0dXJuIHZvaWQgMCE9PWU/dFtlXTp0fSx1c2VKU09OU2NoZW1hQ29udGV4dFN0YXRlPSgpPT57Y29uc3RbLGVdPSgwLHgudXNlU3RhdGUpKG51bGwpLHtzdGF0ZTp0fT0oMCx4LnVzZUNvbnRleHQpKEJzKTtyZXR1cm57c3RhdGU6dCxzZXRTdGF0ZTpyPT57cih0KSxlKHt9KX19fSx1c2VMZXZlbD0oKT0+e2NvbnN0IGU9KDAseC51c2VDb250ZXh0KShGcyk7cmV0dXJuW2UsZSsxXX0sdXNlUGF0aD1lPT57Y29uc3QgdD0oMCx4LnVzZUNvbnRleHQpKEhzKSx7c2V0U3RhdGU6cn09dXNlSlNPTlNjaGVtYUNvbnRleHRTdGF0ZSgpLGE9InN0cmluZyI9PXR5cGVvZiBlP1suLi50LGVdOnQ7cmV0dXJue3BhdGg6YSxwYXRoTXV0YXRvcjooZSx0PXtkZWVwOiExfSk9Pntjb25zdCBuPWEudG9TdHJpbmcoKSx1cGRhdGVGbj10PT57dC5wYXRoc1tuXT1lLGU9PT1KU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkNvbGxhcHNlZCYmT2JqZWN0LmtleXModC5wYXRocykuZm9yRWFjaCgoZT0+e2Uuc3RhcnRzV2l0aChuKSYmdC5wYXRoc1tlXT09PUpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuRGVlcGx5RXhwYW5kZWQmJih0LnBhdGhzW2VdPUpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuRXhwYW5kZWQpfSkpfSx1cGRhdGVEZWVwRm49dD0+e09iamVjdC5rZXlzKHQucGF0aHMpLmZvckVhY2goKHI9PntyLnN0YXJ0c1dpdGgobikmJih0LnBhdGhzW3JdPWUpfSkpfTt0LmRlZXA/cih1cGRhdGVEZWVwRm4pOnIodXBkYXRlRm4pfX19LHVzZUlzRXhwYW5kZWQ9ZT0+e2NvbnN0W3RdPXVzZUxldmVsKCkse2RlZmF1bHRFeHBhbmRlZExldmVsczpyfT11c2VDb25maWcoKSx7cGF0aDphLHBhdGhNdXRhdG9yOm59PXVzZVBhdGgoZSkse3BhdGg6c309dXNlUGF0aCgpLHtzdGF0ZTpvfT11c2VKU09OU2NoZW1hQ29udGV4dFN0YXRlKCksbD1vLnBhdGhzW2EudG9TdHJpbmcoKV0sYz1vLnBhdGhzW3MudG9TdHJpbmcoKV0/P28ucGF0aHNbcy5zbGljZSgwLC0xKS50b1N0cmluZygpXSxpPWw/PyhyLXQ+MD9KU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkV4cGFuZGVkOkpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuQ29sbGFwc2VkKSxwPWkhPT1KU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkNvbGxhcHNlZDsoMCx4LnVzZUVmZmVjdCkoKCgpPT57bihjPT09SlNPTlNjaGVtYUlzRXhwYW5kZWRTdGF0ZS5EZWVwbHlFeHBhbmRlZD9KU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkRlZXBseUV4cGFuZGVkOmkpfSksW2NdKTtyZXR1cm57aXNFeHBhbmRlZDpwLHNldEV4cGFuZGVkOigwLHgudXNlQ2FsbGJhY2spKCgoZT17ZGVlcDohMX0pPT57bihlLmRlZXA/SlNPTlNjaGVtYUlzRXhwYW5kZWRTdGF0ZS5EZWVwbHlFeHBhbmRlZDpKU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkV4cGFuZGVkKX0pLFtdKSxzZXRDb2xsYXBzZWQ6KDAseC51c2VDYWxsYmFjaykoKChlPXtkZWVwOiExfSk9PntuKEpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuQ29sbGFwc2VkLGUpfSksW10pfX0sdXNlUmVuZGVyZWRTY2hlbWFzPShlPXZvaWQgMCk9PntpZih2b2lkIDA9PT1lKXJldHVybigwLHgudXNlQ29udGV4dCkoV3MpO2NvbnN0IHQ9KDAseC51c2VDb250ZXh0KShXcyk7cmV0dXJuIG5ldyBTZXQoWy4uLnQsZV0pfSxYcz0oMCx4LmZvcndhcmRSZWYpKCgoe3NjaGVtYTplLG5hbWU6dD0iIixkZXBlbmRlbnRSZXF1aXJlZDpyPVtdLG9uRXhwYW5kOmE9KCk9Pnt9LGlkZW50aWZpZXI6bj0iIn0scyk9Pntjb25zdCBvPXVzZUZuKCksbD1ufHxlPy4kaWR8fHQse3BhdGg6Y309dXNlUGF0aChsKSx7aXNFeHBhbmRlZDppLHNldEV4cGFuZGVkOnAsc2V0Q29sbGFwc2VkOm19PXVzZUlzRXhwYW5kZWQobCksW3UsZF09dXNlTGV2ZWwoKSxoPSgoKT0+e2NvbnN0W2VdPXVzZUxldmVsKCk7cmV0dXJuIGU+MH0pKCksZz1vLmlzRXhwYW5kYWJsZShlKXx8ci5sZW5ndGg+MCx5PShlPT51c2VSZW5kZXJlZFNjaGVtYXMoKS5oYXMoZSkpKGUpLGY9dXNlUmVuZGVyZWRTY2hlbWFzKGUpLFM9by5zdHJpbmdpZnlDb25zdHJhaW50cyhlKSxFPXVzZUNvbXBvbmVudCgiQWNjb3JkaW9uIiksXz11c2VDb21wb25lbnQoIktleXdvcmQkc2NoZW1hIiksdj11c2VDb21wb25lbnQoIktleXdvcmQkdm9jYWJ1bGFyeSIpLHc9dXNlQ29tcG9uZW50KCJLZXl3b3JkJGlkIiksYj11c2VDb21wb25lbnQoIktleXdvcmQkYW5jaG9yIiksQz11c2VDb21wb25lbnQoIktleXdvcmQkZHluYW1pY0FuY2hvciIpLE49dXNlQ29tcG9uZW50KCJLZXl3b3JkJHJlZiIpLGs9dXNlQ29tcG9uZW50KCJLZXl3b3JkJGR5bmFtaWNSZWYiKSxBPXVzZUNvbXBvbmVudCgiS2V5d29yZCRkZWZzIiksST11c2VDb21wb25lbnQoIktleXdvcmQkY29tbWVudCIpLGo9dXNlQ29tcG9uZW50KCJLZXl3b3JkQWxsT2YiKSxxPXVzZUNvbXBvbmVudCgiS2V5d29yZEFueU9mIiksUD11c2VDb21wb25lbnQoIktleXdvcmRPbmVPZiIpLE09dXNlQ29tcG9uZW50KCJLZXl3b3JkTm90IiksVD11c2VDb21wb25lbnQoIktleXdvcmRJZiIpLFI9dXNlQ29tcG9uZW50KCJLZXl3b3JkVGhlbiIpLEo9dXNlQ29tcG9uZW50KCJLZXl3b3JkRWxzZSIpLCQ9dXNlQ29tcG9uZW50KCJLZXl3b3JkRGVwZW5kZW50U2NoZW1hcyIpLFY9dXNlQ29tcG9uZW50KCJLZXl3b3JkUHJlZml4SXRlbXMiKSxMPXVzZUNvbXBvbmVudCgiS2V5d29yZEl0ZW1zIiksRD11c2VDb21wb25lbnQoIktleXdvcmRDb250YWlucyIpLFU9dXNlQ29tcG9uZW50KCJLZXl3b3JkUHJvcGVydGllcyIpLEs9dXNlQ29tcG9uZW50KCJLZXl3b3JkUGF0dGVyblByb3BlcnRpZXMiKSx6PXVzZUNvbXBvbmVudCgiS2V5d29yZEFkZGl0aW9uYWxQcm9wZXJ0aWVzIiksQj11c2VDb21wb25lbnQoIktleXdvcmRQcm9wZXJ0eU5hbWVzIiksRj11c2VDb21wb25lbnQoIktleXdvcmRVbmV2YWx1YXRlZEl0ZW1zIiksVz11c2VDb21wb25lbnQoIktleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXMiKSxIPXVzZUNvbXBvbmVudCgiS2V5d29yZFR5cGUiKSxYPXVzZUNvbXBvbmVudCgiS2V5d29yZEVudW0iKSxHPXVzZUNvbXBvbmVudCgiS2V5d29yZENvbnN0IiksWT11c2VDb21wb25lbnQoIktleXdvcmRDb25zdHJhaW50IiksUT11c2VDb21wb25lbnQoIktleXdvcmREZXBlbmRlbnRSZXF1aXJlZCIpLFo9dXNlQ29tcG9uZW50KCJLZXl3b3JkQ29udGVudFNjaGVtYSIpLGVlPXVzZUNvbXBvbmVudCgiS2V5d29yZFRpdGxlIiksdGU9dXNlQ29tcG9uZW50KCJLZXl3b3JkRGVzY3JpcHRpb24iKSxyZT11c2VDb21wb25lbnQoIktleXdvcmREZWZhdWx0IiksYWU9dXNlQ29tcG9uZW50KCJLZXl3b3JkRGVwcmVjYXRlZCIpLG5lPXVzZUNvbXBvbmVudCgiS2V5d29yZFJlYWRPbmx5Iiksc2U9dXNlQ29tcG9uZW50KCJLZXl3b3JkV3JpdGVPbmx5Iiksb2U9dXNlQ29tcG9uZW50KCJLZXl3b3JkRXhhbXBsZXMiKSxsZT11c2VDb21wb25lbnQoIkV4dGVuc2lvbktleXdvcmRzIiksY2U9dXNlQ29tcG9uZW50KCJFeHBhbmREZWVwQnV0dG9uIiksaWU9KDAseC51c2VDYWxsYmFjaykoKChlLHQpPT57dD9wKCk6bSgpLGEoZSx0LCExKX0pLFthLHAsbV0pLHBlPSgwLHgudXNlQ2FsbGJhY2spKCgoZSx0KT0+e3Q/cCh7ZGVlcDohMH0pOm0oe2RlZXA6ITB9KSxhKGUsdCwhMCl9KSxbYSxwLG1dKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoSHMuUHJvdmlkZXIse3ZhbHVlOmN9LE8oKS5jcmVhdGVFbGVtZW50KEZzLlByb3ZpZGVyLHt2YWx1ZTpkfSxPKCkuY3JlYXRlRWxlbWVudChXcy5Qcm92aWRlcix7dmFsdWU6Zn0sTygpLmNyZWF0ZUVsZW1lbnQoImFydGljbGUiLHtyZWY6cywiZGF0YS1qc29uLXNjaGVtYS1sZXZlbCI6dSxjbGFzc05hbWU6cHQoKSgianNvbi1zY2hlbWEtMjAyMC0xMiIseyJqc29uLXNjaGVtYS0yMDIwLTEyLS1lbWJlZGRlZCI6aCwianNvbi1zY2hlbWEtMjAyMC0xMi0tY2lyY3VsYXIiOnl9KX0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1oZWFkIn0sZyYmIXk/TygpLmNyZWF0ZUVsZW1lbnQoTygpLkZyYWdtZW50LG51bGwsTygpLmNyZWF0ZUVsZW1lbnQoRSx7ZXhwYW5kZWQ6aSxvbkNoYW5nZTppZX0sTygpLmNyZWF0ZUVsZW1lbnQoZWUse3RpdGxlOnQsc2NoZW1hOmV9KSksTygpLmNyZWF0ZUVsZW1lbnQoY2Use2V4cGFuZGVkOmksb25DbGljazpwZX0pKTpPKCkuY3JlYXRlRWxlbWVudChlZSx7dGl0bGU6dCxzY2hlbWE6ZX0pLE8oKS5jcmVhdGVFbGVtZW50KGFlLHtzY2hlbWE6ZX0pLE8oKS5jcmVhdGVFbGVtZW50KG5lLHtzY2hlbWE6ZX0pLE8oKS5jcmVhdGVFbGVtZW50KHNlLHtzY2hlbWE6ZX0pLE8oKS5jcmVhdGVFbGVtZW50KEgse3NjaGVtYTplLGlzQ2lyY3VsYXI6eX0pLFMubGVuZ3RoPjAmJlMubWFwKChlPT5PKCkuY3JlYXRlRWxlbWVudChZLHtrZXk6YCR7ZS5zY29wZX0tJHtlLnZhbHVlfWAsY29uc3RyYWludDplfSkpKSksTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpwdCgpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWJvZHkiLHsianNvbi1zY2hlbWEtMjAyMC0xMi1ib2R5LS1jb2xsYXBzZWQiOiFpfSl9LGkmJk8oKS5jcmVhdGVFbGVtZW50KE8oKS5GcmFnbWVudCxudWxsLE8oKS5jcmVhdGVFbGVtZW50KHRlLHtzY2hlbWE6ZX0pLCF5JiZnJiZPKCkuY3JlYXRlRWxlbWVudChPKCkuRnJhZ21lbnQsbnVsbCxPKCkuY3JlYXRlRWxlbWVudChVLHtzY2hlbWE6ZX0pLE8oKS5jcmVhdGVFbGVtZW50KEsse3NjaGVtYTplfSksTygpLmNyZWF0ZUVsZW1lbnQoeix7c2NoZW1hOmV9KSxPKCkuY3JlYXRlRWxlbWVudChXLHtzY2hlbWE6ZX0pLE8oKS5jcmVhdGVFbGVtZW50KEIse3NjaGVtYTplfSksTygpLmNyZWF0ZUVsZW1lbnQoaix7c2NoZW1hOmV9KSxPKCkuY3JlYXRlRWxlbWVudChxLHtzY2hlbWE6ZX0pLE8oKS5jcmVhdGVFbGVtZW50KFAse3NjaGVtYTplfSksTygpLmNyZWF0ZUVsZW1lbnQoTSx7c2NoZW1hOmV9KSxPKCkuY3JlYXRlRWxlbWVudChULHtzY2hlbWE6ZX0pLE8oKS5jcmVhdGVFbGVtZW50KFIse3NjaGVtYTplfSksTygpLmNyZWF0ZUVsZW1lbnQoSix7c2NoZW1hOmV9KSxPKCkuY3JlYXRlRWxlbWVudCgkLHtzY2hlbWE6ZX0pLE8oKS5jcmVhdGVFbGVtZW50KFYse3NjaGVtYTplfSksTygpLmNyZWF0ZUVsZW1lbnQoTCx7c2NoZW1hOmV9KSxPKCkuY3JlYXRlRWxlbWVudChGLHtzY2hlbWE6ZX0pLE8oKS5jcmVhdGVFbGVtZW50KEQse3NjaGVtYTplfSksTygpLmNyZWF0ZUVsZW1lbnQoWix7c2NoZW1hOmV9KSksTygpLmNyZWF0ZUVsZW1lbnQoWCx7c2NoZW1hOmV9KSxPKCkuY3JlYXRlRWxlbWVudChHLHtzY2hlbWE6ZX0pLE8oKS5jcmVhdGVFbGVtZW50KFEse3NjaGVtYTplLGRlcGVuZGVudFJlcXVpcmVkOnJ9KSxPKCkuY3JlYXRlRWxlbWVudChyZSx7c2NoZW1hOmV9KSxPKCkuY3JlYXRlRWxlbWVudChvZSx7c2NoZW1hOmV9KSxPKCkuY3JlYXRlRWxlbWVudChfLHtzY2hlbWE6ZX0pLE8oKS5jcmVhdGVFbGVtZW50KHYse3NjaGVtYTplfSksTygpLmNyZWF0ZUVsZW1lbnQodyx7c2NoZW1hOmV9KSxPKCkuY3JlYXRlRWxlbWVudChiLHtzY2hlbWE6ZX0pLE8oKS5jcmVhdGVFbGVtZW50KEMse3NjaGVtYTplfSksTygpLmNyZWF0ZUVsZW1lbnQoTix7c2NoZW1hOmV9KSwheSYmZyYmTygpLmNyZWF0ZUVsZW1lbnQoQSx7c2NoZW1hOmV9KSxPKCkuY3JlYXRlRWxlbWVudChrLHtzY2hlbWE6ZX0pLE8oKS5jcmVhdGVFbGVtZW50KEkse3NjaGVtYTplfSksTygpLmNyZWF0ZUVsZW1lbnQobGUse3NjaGVtYTplfSkpKSkpKSl9KSksR3M9WHMsa2V5d29yZHNfJHNjaGVtYT0oe3NjaGVtYTplfSk9PmU/LiRzY2hlbWE/TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJHNjaGVtYSJ9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiJHNjaGVtYSIpLE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeSJ9LGUuJHNjaGVtYSkpOm51bGwsJHZvY2FidWxhcnlfJHZvY2FidWxhcnk9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD0iJHZvY2FidWxhcnkiLHtwYXRoOnJ9PXVzZVBhdGgodCkse2lzRXhwYW5kZWQ6YSxzZXRFeHBhbmRlZDpuLHNldENvbGxhcHNlZDpzfT11c2VJc0V4cGFuZGVkKHQpLG89dXNlQ29tcG9uZW50KCJBY2NvcmRpb24iKSxsPSgwLHgudXNlQ2FsbGJhY2spKCgoKT0+e2E/cygpOm4oKX0pLFthLG4sc10pO3JldHVybiBlPy4kdm9jYWJ1bGFyeT8ib2JqZWN0IiE9dHlwZW9mIGUuJHZvY2FidWxhcnk/bnVsbDpPKCkuY3JlYXRlRWxlbWVudChIcy5Qcm92aWRlcix7dmFsdWU6cn0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJHZvY2FidWxhcnkifSxPKCkuY3JlYXRlRWxlbWVudChvLHtleHBhbmRlZDphLG9uQ2hhbmdlOmx9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiJHZvY2FidWxhcnkiKSksTygpLmNyZWF0ZUVsZW1lbnQoInN0cm9uZyIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeSJ9LCJvYmplY3QiKSxPKCkuY3JlYXRlRWxlbWVudCgidWwiLG51bGwsYSYmT2JqZWN0LmVudHJpZXMoZS4kdm9jYWJ1bGFyeSkubWFwKCgoW2UsdF0pPT5PKCkuY3JlYXRlRWxlbWVudCgibGkiLHtrZXk6ZSxjbGFzc05hbWU6cHQoKSgianNvbi1zY2hlbWEtMjAyMC0xMi0kdm9jYWJ1bGFyeS11cmkiLHsianNvbi1zY2hlbWEtMjAyMC0xMi0kdm9jYWJ1bGFyeS11cmktLWRpc2FibGVkIjohdH0pfSxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxlKSkpKSkpKTpudWxsfSxrZXl3b3Jkc18kaWQ9KHtzY2hlbWE6ZX0pPT5lPy4kaWQ/TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJGlkIn0sTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCIkaWQiKSxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxlLiRpZCkpOm51bGwsa2V5d29yZHNfJGFuY2hvcj0oe3NjaGVtYTplfSk9PmU/LiRhbmNob3I/TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJGFuY2hvciJ9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiJGFuY2hvciIpLE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeSJ9LGUuJGFuY2hvcikpOm51bGwsa2V5d29yZHNfJGR5bmFtaWNBbmNob3I9KHtzY2hlbWE6ZX0pPT5lPy4kZHluYW1pY0FuY2hvcj9PKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS0kZHluYW1pY0FuY2hvciJ9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiJGR5bmFtaWNBbmNob3IiKSxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxlLiRkeW5hbWljQW5jaG9yKSk6bnVsbCxrZXl3b3Jkc18kcmVmPSh7c2NoZW1hOmV9KT0+ZT8uJHJlZj9PKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS0kcmVmIn0sTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCIkcmVmIiksTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5In0sZS4kcmVmKSk6bnVsbCxrZXl3b3Jkc18kZHluYW1pY1JlZj0oe3NjaGVtYTplfSk9PmU/LiRkeW5hbWljUmVmP08oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLSRkeW5hbWljUmVmIn0sTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCIkZHluYW1pY1JlZiIpLE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeSJ9LGUuJGR5bmFtaWNSZWYpKTpudWxsLGtleXdvcmRzXyRkZWZzPSh7c2NoZW1hOmV9KT0+e2NvbnN0IHQ9ZT8uJGRlZnN8fHt9LHI9IiRkZWZzIix7cGF0aDphfT11c2VQYXRoKHIpLHtpc0V4cGFuZGVkOm4sc2V0RXhwYW5kZWQ6cyxzZXRDb2xsYXBzZWQ6b309dXNlSXNFeHBhbmRlZChyKSxbbCxjXT11c2VMZXZlbCgpLGk9dXNlQ29tcG9uZW50KCJBY2NvcmRpb24iKSxwPXVzZUNvbXBvbmVudCgiRXhwYW5kRGVlcEJ1dHRvbiIpLG09dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIiksdT0oMCx4LnVzZUNhbGxiYWNrKSgoKCk9PntuP28oKTpzKCl9KSxbbixzLG9dKSxkPSgwLHgudXNlQ2FsbGJhY2spKCgoZSx0KT0+e3Q/cyh7ZGVlcDohMH0pOm8oe2RlZXA6ITB9KX0pLFtzLG9dKTtyZXR1cm4gMD09PU9iamVjdC5rZXlzKHQpLmxlbmd0aD9udWxsOk8oKS5jcmVhdGVFbGVtZW50KEhzLlByb3ZpZGVyLHt2YWx1ZTphfSxPKCkuY3JlYXRlRWxlbWVudChGcy5Qcm92aWRlcix7dmFsdWU6Y30sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJGRlZnMiLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjpsfSxPKCkuY3JlYXRlRWxlbWVudChpLHtleHBhbmRlZDpuLG9uQ2hhbmdlOnV9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnkifSwiJGRlZnMiKSksTygpLmNyZWF0ZUVsZW1lbnQocCx7ZXhwYW5kZWQ6bixvbkNsaWNrOmR9KSxPKCkuY3JlYXRlRWxlbWVudCgic3Ryb25nIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5In0sIm9iamVjdCIpLE8oKS5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZTpwdCgpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuIix7Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4tLWNvbGxhcHNlZCI6IW59KX0sbiYmTygpLmNyZWF0ZUVsZW1lbnQoTygpLkZyYWdtZW50LG51bGwsT2JqZWN0LmVudHJpZXModCkubWFwKCgoW2UsdF0pPT5PKCkuY3JlYXRlRWxlbWVudCgibGkiLHtrZXk6ZSxjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHkifSxPKCkuY3JlYXRlRWxlbWVudChtLHtuYW1lOmUsc2NoZW1hOnR9KSkpKSkpKSkpfSxrZXl3b3Jkc18kY29tbWVudD0oe3NjaGVtYTplfSk9PmU/LiRjb21tZW50P08oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLSRjb21tZW50In0sTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeSJ9LCIkY29tbWVudCIpLE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeSJ9LGUuJGNvbW1lbnQpKTpudWxsLGtleXdvcmRzX0FsbE9mPSh7c2NoZW1hOmV9KT0+e2NvbnN0IHQ9ZT8uYWxsT2Z8fFtdLHI9dXNlRm4oKSxhPSJhbGxPZiIse3BhdGg6bn09dXNlUGF0aChhKSx7aXNFeHBhbmRlZDpzLHNldEV4cGFuZGVkOm8sc2V0Q29sbGFwc2VkOmx9PXVzZUlzRXhwYW5kZWQoYSksW2MsaV09dXNlTGV2ZWwoKSxwPXVzZUNvbXBvbmVudCgiQWNjb3JkaW9uIiksbT11c2VDb21wb25lbnQoIkV4cGFuZERlZXBCdXR0b24iKSx1PXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpLGQ9dXNlQ29tcG9uZW50KCJLZXl3b3JkVHlwZSIpLGg9KDAseC51c2VDYWxsYmFjaykoKCgpPT57cz9sKCk6bygpfSksW3MsbyxsXSksZz0oMCx4LnVzZUNhbGxiYWNrKSgoKGUsdCk9Pnt0P28oe2RlZXA6ITB9KTpsKHtkZWVwOiEwfSl9KSxbbyxsXSk7cmV0dXJuIEFycmF5LmlzQXJyYXkodCkmJjAhPT10Lmxlbmd0aD9PKCkuY3JlYXRlRWxlbWVudChIcy5Qcm92aWRlcix7dmFsdWU6bn0sTygpLmNyZWF0ZUVsZW1lbnQoRnMuUHJvdmlkZXIse3ZhbHVlOml9LE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWFsbE9mIiwiZGF0YS1qc29uLXNjaGVtYS1sZXZlbCI6Y30sTygpLmNyZWF0ZUVsZW1lbnQocCx7ZXhwYW5kZWQ6cyxvbkNoYW5nZTpofSxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJBbGwgb2YiKSksTygpLmNyZWF0ZUVsZW1lbnQobSx7ZXhwYW5kZWQ6cyxvbkNsaWNrOmd9KSxPKCkuY3JlYXRlRWxlbWVudChkLHtzY2hlbWE6e2FsbE9mOnR9fSksTygpLmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOnB0KCkoImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4iLHsianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkIjohc30pfSxzJiZPKCkuY3JlYXRlRWxlbWVudChPKCkuRnJhZ21lbnQsbnVsbCx0Lm1hcCgoKGUsdCk9Pk8oKS5jcmVhdGVFbGVtZW50KCJsaSIse2tleTpgIyR7dH1gLGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSJ9LE8oKS5jcmVhdGVFbGVtZW50KHUse25hbWU6YCMke3R9ICR7ci5nZXRUaXRsZShlKX1gLHNjaGVtYTplfSkpKSkpKSkpKTpudWxsfSxrZXl3b3Jkc19BbnlPZj0oe3NjaGVtYTplfSk9Pntjb25zdCB0PWU/LmFueU9mfHxbXSxyPXVzZUZuKCksYT0iYW55T2YiLHtwYXRoOm59PXVzZVBhdGgoYSkse2lzRXhwYW5kZWQ6cyxzZXRFeHBhbmRlZDpvLHNldENvbGxhcHNlZDpsfT11c2VJc0V4cGFuZGVkKGEpLFtjLGldPXVzZUxldmVsKCkscD11c2VDb21wb25lbnQoIkFjY29yZGlvbiIpLG09dXNlQ29tcG9uZW50KCJFeHBhbmREZWVwQnV0dG9uIiksdT11c2VDb21wb25lbnQoIkpTT05TY2hlbWEiKSxkPXVzZUNvbXBvbmVudCgiS2V5d29yZFR5cGUiKSxoPSgwLHgudXNlQ2FsbGJhY2spKCgoKT0+e3M/bCgpOm8oKX0pLFtzLG8sbF0pLGc9KDAseC51c2VDYWxsYmFjaykoKChlLHQpPT57dD9vKHtkZWVwOiEwfSk6bCh7ZGVlcDohMH0pfSksW28sbF0pO3JldHVybiBBcnJheS5pc0FycmF5KHQpJiYwIT09dC5sZW5ndGg/TygpLmNyZWF0ZUVsZW1lbnQoSHMuUHJvdmlkZXIse3ZhbHVlOm59LE8oKS5jcmVhdGVFbGVtZW50KEZzLlByb3ZpZGVyLHt2YWx1ZTppfSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1hbnlPZiIsImRhdGEtanNvbi1zY2hlbWEtbGV2ZWwiOmN9LE8oKS5jcmVhdGVFbGVtZW50KHAse2V4cGFuZGVkOnMsb25DaGFuZ2U6aH0sTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnkifSwiQW55IG9mIikpLE8oKS5jcmVhdGVFbGVtZW50KG0se2V4cGFuZGVkOnMsb25DbGljazpnfSksTygpLmNyZWF0ZUVsZW1lbnQoZCx7c2NoZW1hOnthbnlPZjp0fX0pLE8oKS5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZTpwdCgpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuIix7Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4tLWNvbGxhcHNlZCI6IXN9KX0scyYmTygpLmNyZWF0ZUVsZW1lbnQoTygpLkZyYWdtZW50LG51bGwsdC5tYXAoKChlLHQpPT5PKCkuY3JlYXRlRWxlbWVudCgibGkiLHtrZXk6YCMke3R9YCxjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHkifSxPKCkuY3JlYXRlRWxlbWVudCh1LHtuYW1lOmAjJHt0fSAke3IuZ2V0VGl0bGUoZSl9YCxzY2hlbWE6ZX0pKSkpKSkpKSk6bnVsbH0sa2V5d29yZHNfT25lT2Y9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD1lPy5vbmVPZnx8W10scj11c2VGbigpLGE9Im9uZU9mIix7cGF0aDpufT11c2VQYXRoKGEpLHtpc0V4cGFuZGVkOnMsc2V0RXhwYW5kZWQ6byxzZXRDb2xsYXBzZWQ6bH09dXNlSXNFeHBhbmRlZChhKSxbYyxpXT11c2VMZXZlbCgpLHA9dXNlQ29tcG9uZW50KCJBY2NvcmRpb24iKSxtPXVzZUNvbXBvbmVudCgiRXhwYW5kRGVlcEJ1dHRvbiIpLHU9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIiksZD11c2VDb21wb25lbnQoIktleXdvcmRUeXBlIiksaD0oMCx4LnVzZUNhbGxiYWNrKSgoKCk9PntzP2woKTpvKCl9KSxbcyxvLGxdKSxnPSgwLHgudXNlQ2FsbGJhY2spKCgoZSx0KT0+e3Q/byh7ZGVlcDohMH0pOmwoe2RlZXA6ITB9KX0pLFtvLGxdKTtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmMCE9PXQubGVuZ3RoP08oKS5jcmVhdGVFbGVtZW50KEhzLlByb3ZpZGVyLHt2YWx1ZTpufSxPKCkuY3JlYXRlRWxlbWVudChGcy5Qcm92aWRlcix7dmFsdWU6aX0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tb25lT2YiLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjpjfSxPKCkuY3JlYXRlRWxlbWVudChwLHtleHBhbmRlZDpzLG9uQ2hhbmdlOmh9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIk9uZSBvZiIpKSxPKCkuY3JlYXRlRWxlbWVudChtLHtleHBhbmRlZDpzLG9uQ2xpY2s6Z30pLE8oKS5jcmVhdGVFbGVtZW50KGQse3NjaGVtYTp7b25lT2Y6dH19KSxPKCkuY3JlYXRlRWxlbWVudCgidWwiLHtjbGFzc05hbWU6cHQoKSgianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbiIseyJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWQiOiFzfSl9LHMmJk8oKS5jcmVhdGVFbGVtZW50KE8oKS5GcmFnbWVudCxudWxsLHQubWFwKCgoZSx0KT0+TygpLmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OmAjJHt0fWAsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sTygpLmNyZWF0ZUVsZW1lbnQodSx7bmFtZTpgIyR7dH0gJHtyLmdldFRpdGxlKGUpfWAsc2NoZW1hOmV9KSkpKSkpKSkpOm51bGx9LGtleXdvcmRzX05vdD0oe3NjaGVtYTplfSk9Pntjb25zdCB0PXVzZUZuKCkscj11c2VDb21wb25lbnQoIkpTT05TY2hlbWEiKTtpZighdC5oYXNLZXl3b3JkKGUsIm5vdCIpKXJldHVybiBudWxsO2NvbnN0IGE9TygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnkifSwiTm90Iik7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLW5vdCJ9LE8oKS5jcmVhdGVFbGVtZW50KHIse25hbWU6YSxzY2hlbWE6ZS5ub3QsaWRlbnRpZmllcjoibm90In0pKX0sa2V5d29yZHNfSWY9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD11c2VGbigpLHI9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIik7aWYoIXQuaGFzS2V5d29yZChlLCJpZiIpKXJldHVybiBudWxsO2NvbnN0IGE9TygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnkifSwiSWYiKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0taWYifSxPKCkuY3JlYXRlRWxlbWVudChyLHtuYW1lOmEsc2NoZW1hOmUuaWYsaWRlbnRpZmllcjoiaWYifSkpfSxrZXl3b3Jkc19UaGVuPSh7c2NoZW1hOmV9KT0+e2NvbnN0IHQ9dXNlRm4oKSxyPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpO2lmKCF0Lmhhc0tleXdvcmQoZSwidGhlbiIpKXJldHVybiBudWxsO2NvbnN0IGE9TygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnkifSwiVGhlbiIpO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS10aGVuIn0sTygpLmNyZWF0ZUVsZW1lbnQocix7bmFtZTphLHNjaGVtYTplLnRoZW4saWRlbnRpZmllcjoidGhlbiJ9KSl9LGtleXdvcmRzX0Vsc2U9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD11c2VGbigpLHI9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIik7aWYoIXQuaGFzS2V5d29yZChlLCJlbHNlIikpcmV0dXJuIG51bGw7Y29uc3QgYT1PKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJFbHNlIik7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWlmIn0sTygpLmNyZWF0ZUVsZW1lbnQocix7bmFtZTphLHNjaGVtYTplLmVsc2UsaWRlbnRpZmllcjoiZWxzZSJ9KSl9LGtleXdvcmRzX0RlcGVuZGVudFNjaGVtYXM9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD1lPy5kZXBlbmRlbnRTY2hlbWFzfHxbXSxyPSJkZXBlbmRlbnRTY2hlbWFzIix7cGF0aDphfT11c2VQYXRoKHIpLHtpc0V4cGFuZGVkOm4sc2V0RXhwYW5kZWQ6cyxzZXRDb2xsYXBzZWQ6b309dXNlSXNFeHBhbmRlZChyKSxbbCxjXT11c2VMZXZlbCgpLGk9dXNlQ29tcG9uZW50KCJBY2NvcmRpb24iKSxwPXVzZUNvbXBvbmVudCgiRXhwYW5kRGVlcEJ1dHRvbiIpLG09dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIiksdT0oMCx4LnVzZUNhbGxiYWNrKSgoKCk9PntuP28oKTpzKCl9KSxbbixzLG9dKSxkPSgwLHgudXNlQ2FsbGJhY2spKCgoZSx0KT0+e3Q/cyh7ZGVlcDohMH0pOm8oe2RlZXA6ITB9KX0pLFtzLG9dKTtyZXR1cm4ib2JqZWN0IiE9dHlwZW9mIHR8fDA9PT1PYmplY3Qua2V5cyh0KS5sZW5ndGg/bnVsbDpPKCkuY3JlYXRlRWxlbWVudChIcy5Qcm92aWRlcix7dmFsdWU6YX0sTygpLmNyZWF0ZUVsZW1lbnQoRnMuUHJvdmlkZXIse3ZhbHVlOmN9LE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWRlcGVuZGVudFNjaGVtYXMiLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjpsfSxPKCkuY3JlYXRlRWxlbWVudChpLHtleHBhbmRlZDpuLG9uQ2hhbmdlOnV9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIkRlcGVuZGVudCBzY2hlbWFzIikpLE8oKS5jcmVhdGVFbGVtZW50KHAse2V4cGFuZGVkOm4sb25DbGljazpkfSksTygpLmNyZWF0ZUVsZW1lbnQoInN0cm9uZyIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeSJ9LCJvYmplY3QiKSxPKCkuY3JlYXRlRWxlbWVudCgidWwiLHtjbGFzc05hbWU6cHQoKSgianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbiIseyJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWQiOiFufSl9LG4mJk8oKS5jcmVhdGVFbGVtZW50KE8oKS5GcmFnbWVudCxudWxsLE9iamVjdC5lbnRyaWVzKHQpLm1hcCgoKFtlLHRdKT0+TygpLmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OmUsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sTygpLmNyZWF0ZUVsZW1lbnQobSx7bmFtZTplLHNjaGVtYTp0fSkpKSkpKSkpKX0sa2V5d29yZHNfUHJlZml4SXRlbXM9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD1lPy5wcmVmaXhJdGVtc3x8W10scj11c2VGbigpLGE9InByZWZpeEl0ZW1zIix7cGF0aDpufT11c2VQYXRoKGEpLHtpc0V4cGFuZGVkOnMsc2V0RXhwYW5kZWQ6byxzZXRDb2xsYXBzZWQ6bH09dXNlSXNFeHBhbmRlZChhKSxbYyxpXT11c2VMZXZlbCgpLHA9dXNlQ29tcG9uZW50KCJBY2NvcmRpb24iKSxtPXVzZUNvbXBvbmVudCgiRXhwYW5kRGVlcEJ1dHRvbiIpLHU9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIiksZD11c2VDb21wb25lbnQoIktleXdvcmRUeXBlIiksaD0oMCx4LnVzZUNhbGxiYWNrKSgoKCk9PntzP2woKTpvKCl9KSxbcyxvLGxdKSxnPSgwLHgudXNlQ2FsbGJhY2spKCgoZSx0KT0+e3Q/byh7ZGVlcDohMH0pOmwoe2RlZXA6ITB9KX0pLFtvLGxdKTtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmMCE9PXQubGVuZ3RoP08oKS5jcmVhdGVFbGVtZW50KEhzLlByb3ZpZGVyLHt2YWx1ZTpufSxPKCkuY3JlYXRlRWxlbWVudChGcy5Qcm92aWRlcix7dmFsdWU6aX0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tcHJlZml4SXRlbXMiLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjpjfSxPKCkuY3JlYXRlRWxlbWVudChwLHtleHBhbmRlZDpzLG9uQ2hhbmdlOmh9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIlByZWZpeCBpdGVtcyIpKSxPKCkuY3JlYXRlRWxlbWVudChtLHtleHBhbmRlZDpzLG9uQ2xpY2s6Z30pLE8oKS5jcmVhdGVFbGVtZW50KGQse3NjaGVtYTp7cHJlZml4SXRlbXM6dH19KSxPKCkuY3JlYXRlRWxlbWVudCgidWwiLHtjbGFzc05hbWU6cHQoKSgianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbiIseyJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWQiOiFzfSl9LHMmJk8oKS5jcmVhdGVFbGVtZW50KE8oKS5GcmFnbWVudCxudWxsLHQubWFwKCgoZSx0KT0+TygpLmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OmAjJHt0fWAsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sTygpLmNyZWF0ZUVsZW1lbnQodSx7bmFtZTpgIyR7dH0gJHtyLmdldFRpdGxlKGUpfWAsc2NoZW1hOmV9KSkpKSkpKSkpOm51bGx9LGtleXdvcmRzX0l0ZW1zPSh7c2NoZW1hOmV9KT0+e2NvbnN0IHQ9dXNlRm4oKSxyPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpO2lmKCF0Lmhhc0tleXdvcmQoZSwiaXRlbXMiKSlyZXR1cm4gbnVsbDtjb25zdCBhPU8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIkl0ZW1zIik7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWl0ZW1zIn0sTygpLmNyZWF0ZUVsZW1lbnQocix7bmFtZTphLHNjaGVtYTplLml0ZW1zLGlkZW50aWZpZXI6Iml0ZW1zIn0pKX0sa2V5d29yZHNfQ29udGFpbnM9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD11c2VGbigpLHI9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIik7aWYoIXQuaGFzS2V5d29yZChlLCJjb250YWlucyIpKXJldHVybiBudWxsO2NvbnN0IGE9TygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnkifSwiQ29udGFpbnMiKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tY29udGFpbnMifSxPKCkuY3JlYXRlRWxlbWVudChyLHtuYW1lOmEsc2NoZW1hOmUuY29udGFpbnMsaWRlbnRpZmllcjoiY29udGFpbnMifSkpfSxrZXl3b3Jkc19Qcm9wZXJ0aWVzX1Byb3BlcnRpZXM9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD11c2VGbigpLHI9ZT8ucHJvcGVydGllc3x8e30sYT1BcnJheS5pc0FycmF5KGU/LnJlcXVpcmVkKT9lLnJlcXVpcmVkOltdLG49dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIikse3BhdGg6c309dXNlUGF0aCgicHJvcGVydGllcyIpO3JldHVybiAwPT09T2JqZWN0LmtleXMocikubGVuZ3RoP251bGw6TygpLmNyZWF0ZUVsZW1lbnQoSHMuUHJvdmlkZXIse3ZhbHVlOnN9LE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLXByb3BlcnRpZXMifSxPKCkuY3JlYXRlRWxlbWVudCgidWwiLG51bGwsT2JqZWN0LmVudHJpZXMocikubWFwKCgoW3Isc10pPT57Y29uc3Qgbz1hLmluY2x1ZGVzKHIpLGw9dC5nZXREZXBlbmRlbnRSZXF1aXJlZChyLGUpO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgibGkiLHtrZXk6cixjbGFzc05hbWU6cHQoKSgianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSIseyJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5LS1yZXF1aXJlZCI6b30pfSxPKCkuY3JlYXRlRWxlbWVudChuLHtuYW1lOnIsc2NoZW1hOnMsZGVwZW5kZW50UmVxdWlyZWQ6bH0pKX0pKSkpKX0sUGF0dGVyblByb3BlcnRpZXNfUGF0dGVyblByb3BlcnRpZXM9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD1lPy5wYXR0ZXJuUHJvcGVydGllc3x8e30scj11c2VDb21wb25lbnQoIkpTT05TY2hlbWEiKSx7cGF0aDphfT11c2VQYXRoKCJwYXR0ZXJuUHJvcGVydGllcyIpO3JldHVybiAwPT09T2JqZWN0LmtleXModCkubGVuZ3RoP251bGw6TygpLmNyZWF0ZUVsZW1lbnQoSHMuUHJvdmlkZXIse3ZhbHVlOmF9LE8oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLXBhdHRlcm5Qcm9wZXJ0aWVzIn0sTygpLmNyZWF0ZUVsZW1lbnQoInVsIixudWxsLE9iamVjdC5lbnRyaWVzKHQpLm1hcCgoKFtlLHRdKT0+TygpLmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OmUsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sTygpLmNyZWF0ZUVsZW1lbnQocix7bmFtZTplLHNjaGVtYTp0fSkpKSkpKSl9LGtleXdvcmRzX0FkZGl0aW9uYWxQcm9wZXJ0aWVzPSh7c2NoZW1hOmV9KT0+e2NvbnN0IHQ9dXNlRm4oKSxyPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpO2lmKCF0Lmhhc0tleXdvcmQoZSwiYWRkaXRpb25hbFByb3BlcnRpZXMiKSlyZXR1cm4gbnVsbDtjb25zdCBhPU8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIkFkZGl0aW9uYWwgcHJvcGVydGllcyIpO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1hZGRpdGlvbmFsUHJvcGVydGllcyJ9LCEwPT09ZS5hZGRpdGlvbmFsUHJvcGVydGllcz9PKCkuY3JlYXRlRWxlbWVudChPKCkuRnJhZ21lbnQsbnVsbCxhLE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5In0sImFsbG93ZWQiKSk6ITE9PT1lLmFkZGl0aW9uYWxQcm9wZXJ0aWVzP08oKS5jcmVhdGVFbGVtZW50KE8oKS5GcmFnbWVudCxudWxsLGEsTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnkifSwiZm9yYmlkZGVuIikpOk8oKS5jcmVhdGVFbGVtZW50KHIse25hbWU6YSxzY2hlbWE6ZS5hZGRpdGlvbmFsUHJvcGVydGllcyxpZGVudGlmaWVyOiJhZGRpdGlvbmFsUHJvcGVydGllcyJ9KSl9LGtleXdvcmRzX1Byb3BlcnR5TmFtZXM9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD11c2VGbigpLHI9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIiksYT1PKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJQcm9wZXJ0eSBuYW1lcyIpO3JldHVybiB0Lmhhc0tleXdvcmQoZSwicHJvcGVydHlOYW1lcyIpP08oKS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLXByb3BlcnR5TmFtZXMifSxPKCkuY3JlYXRlRWxlbWVudChyLHtuYW1lOmEsc2NoZW1hOmUucHJvcGVydHlOYW1lcyxpZGVudGlmaWVyOiJwcm9wZXJ0eU5hbWVzIn0pKTpudWxsfSxrZXl3b3Jkc19VbmV2YWx1YXRlZEl0ZW1zPSh7c2NoZW1hOmV9KT0+e2NvbnN0IHQ9dXNlRm4oKSxyPXVzZUNvbXBvbmVudCgiSlNPTlNjaGVtYSIpO2lmKCF0Lmhhc0tleXdvcmQoZSwidW5ldmFsdWF0ZWRJdGVtcyIpKXJldHVybiBudWxsO2NvbnN0IGE9TygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnkifSwiVW5ldmFsdWF0ZWQgaXRlbXMiKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tdW5ldmFsdWF0ZWRJdGVtcyJ9LE8oKS5jcmVhdGVFbGVtZW50KHIse25hbWU6YSxzY2hlbWE6ZS51bmV2YWx1YXRlZEl0ZW1zLGlkZW50aWZpZXI6InVuZXZhbHVhdGVkSXRlbXMifSkpfSxrZXl3b3Jkc19VbmV2YWx1YXRlZFByb3BlcnRpZXM9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD11c2VGbigpLHI9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIik7aWYoIXQuaGFzS2V5d29yZChlLCJ1bmV2YWx1YXRlZFByb3BlcnRpZXMiKSlyZXR1cm4gbnVsbDtjb25zdCBhPU8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5In0sIlVuZXZhbHVhdGVkIHByb3BlcnRpZXMiKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tdW5ldmFsdWF0ZWRQcm9wZXJ0aWVzIn0sTygpLmNyZWF0ZUVsZW1lbnQocix7bmFtZTphLHNjaGVtYTplLnVuZXZhbHVhdGVkUHJvcGVydGllcyxpZGVudGlmaWVyOiJ1bmV2YWx1YXRlZFByb3BlcnRpZXMifSkpfSxrZXl3b3Jkc19UeXBlPSh7c2NoZW1hOmUsaXNDaXJjdWxhcjp0PSExfSk9Pntjb25zdCByPXVzZUZuKCkuZ2V0VHlwZShlKSxhPXQ/IiBbY2lyY3VsYXJdIjoiIjtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoInN0cm9uZyIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeSJ9LGAke3J9JHthfWApfSxFbnVtX0VudW09KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD11c2VDb21wb25lbnQoIkpTT05WaWV3ZXIiKTtyZXR1cm4gQXJyYXkuaXNBcnJheShlPy5lbnVtKT9PKCkuY3JlYXRlRWxlbWVudCh0LHtuYW1lOiJFbnVtIix2YWx1ZTplLmVudW0sY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1lbnVtIn0pOm51bGx9LENvbnN0X0NvbnN0PSh7c2NoZW1hOmV9KT0+e2NvbnN0IHQ9dXNlRm4oKSxyPXVzZUNvbXBvbmVudCgiSlNPTlZpZXdlciIpO3JldHVybiB0Lmhhc0tleXdvcmQoZSwiY29uc3QiKT9PKCkuY3JlYXRlRWxlbWVudChyLHtuYW1lOiJDb25zdCIsdmFsdWU6ZS5jb25zdCxjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWNvbnN0In0pOm51bGx9LGZuX3VwcGVyRmlyc3Q9ZT0+InN0cmluZyI9PXR5cGVvZiBlP2Ake2UuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHtlLnNsaWNlKDEpfWA6ZSxtYWtlR2V0VGl0bGU9ZT0+KHQse2xvb2t1cDpyPSJleHRlbmRlZCJ9PXt9KT0+e2NvbnN0IGE9ZSgpO2lmKG51bGwhPXQ/LnRpdGxlKXJldHVybiBhLnVwcGVyRmlyc3QoU3RyaW5nKHQudGl0bGUpKTtpZigiZXh0ZW5kZWQiPT09cil7aWYobnVsbCE9dD8uJGFuY2hvcilyZXR1cm4gYS51cHBlckZpcnN0KFN0cmluZyh0LiRhbmNob3IpKTtpZihudWxsIT10Py4kaWQpcmV0dXJuIFN0cmluZyh0LiRpZCl9cmV0dXJuIiJ9LG1ha2VHZXRUeXBlPWU9Pntjb25zdCBnZXRUeXBlPSh0LHI9bmV3IFdlYWtTZXQpPT57Y29uc3QgYT1lKCk7aWYobnVsbD09dClyZXR1cm4iYW55IjtpZihhLmlzQm9vbGVhbkpTT05TY2hlbWEodCkpcmV0dXJuIHQ/ImFueSI6Im5ldmVyIjtpZigib2JqZWN0IiE9dHlwZW9mIHQpcmV0dXJuImFueSI7aWYoci5oYXModCkpcmV0dXJuImFueSI7ci5hZGQodCk7Y29uc3R7dHlwZTpuLHByZWZpeEl0ZW1zOnMsaXRlbXM6b309dCxnZXRBcnJheVR5cGU9KCk9PntpZihBcnJheS5pc0FycmF5KHMpKXtjb25zdCBlPXMubWFwKChlPT5nZXRUeXBlKGUscikpKSx0PW8/Z2V0VHlwZShvLHIpOiJhbnkiO3JldHVybmBhcnJheTxbJHtlLmpvaW4oIiwgIil9XSwgJHt0fT5gfWlmKG8pe3JldHVybmBhcnJheTwke2dldFR5cGUobyxyKX0+YH1yZXR1cm4iYXJyYXk8YW55PiJ9O2lmKHQubm90JiYiYW55Ij09PWdldFR5cGUodC5ub3QpKXJldHVybiJuZXZlciI7Y29uc3QgaGFuZGxlQ29tYmluaW5nS2V5d29yZHM9KGUsYSk9PntpZihBcnJheS5pc0FycmF5KHRbZV0pKXtyZXR1cm5gKCR7dFtlXS5tYXAoKGU9PmdldFR5cGUoZSxyKSkpLmpvaW4oYSl9KWB9cmV0dXJuIG51bGx9LGw9W0FycmF5LmlzQXJyYXkobik/bi5tYXAoKGU9PiJhcnJheSI9PT1lP2dldEFycmF5VHlwZSgpOmUpKS5qb2luKCIgfCAiKToiYXJyYXkiPT09bj9nZXRBcnJheVR5cGUoKTpbIm51bGwiLCJib29sZWFuIiwib2JqZWN0IiwiYXJyYXkiLCJudW1iZXIiLCJpbnRlZ2VyIiwic3RyaW5nIl0uaW5jbHVkZXMobik/bjooKCk9PntpZihPYmplY3QuaGFzT3duKHQsInByZWZpeEl0ZW1zIil8fE9iamVjdC5oYXNPd24odCwiaXRlbXMiKXx8T2JqZWN0Lmhhc093bih0LCJjb250YWlucyIpKXJldHVybiBnZXRBcnJheVR5cGUoKTtpZihPYmplY3QuaGFzT3duKHQsInByb3BlcnRpZXMiKXx8T2JqZWN0Lmhhc093bih0LCJhZGRpdGlvbmFsUHJvcGVydGllcyIpfHxPYmplY3QuaGFzT3duKHQsInBhdHRlcm5Qcm9wZXJ0aWVzIikpcmV0dXJuIm9iamVjdCI7aWYoWyJpbnQzMiIsImludDY0Il0uaW5jbHVkZXModC5mb3JtYXQpKXJldHVybiJpbnRlZ2VyIjtpZihbImZsb2F0IiwiZG91YmxlIl0uaW5jbHVkZXModC5mb3JtYXQpKXJldHVybiJudW1iZXIiO2lmKE9iamVjdC5oYXNPd24odCwibWluaW11bSIpfHxPYmplY3QuaGFzT3duKHQsIm1heGltdW0iKXx8T2JqZWN0Lmhhc093bih0LCJleGNsdXNpdmVNaW5pbXVtIil8fE9iamVjdC5oYXNPd24odCwiZXhjbHVzaXZlTWF4aW11bSIpfHxPYmplY3QuaGFzT3duKHQsIm11bHRpcGxlT2YiKSlyZXR1cm4ibnVtYmVyIHwgaW50ZWdlciI7aWYoT2JqZWN0Lmhhc093bih0LCJwYXR0ZXJuIil8fE9iamVjdC5oYXNPd24odCwiZm9ybWF0Iil8fE9iamVjdC5oYXNPd24odCwibWluTGVuZ3RoIil8fE9iamVjdC5oYXNPd24odCwibWF4TGVuZ3RoIil8fE9iamVjdC5oYXNPd24odCwiY29udGVudEVuY29kaW5nIil8fE9iamVjdC5oYXNPd24odCwiY29udGVudE1lZGlhVHlwZSIpKXJldHVybiJzdHJpbmciO2lmKHZvaWQgMCE9PXQuY29uc3Qpe2lmKG51bGw9PT10LmNvbnN0KXJldHVybiJudWxsIjtpZigiYm9vbGVhbiI9PXR5cGVvZiB0LmNvbnN0KXJldHVybiJib29sZWFuIjtpZigibnVtYmVyIj09dHlwZW9mIHQuY29uc3QpcmV0dXJuIE51bWJlci5pc0ludGVnZXIodC5jb25zdCk/ImludGVnZXIiOiJudW1iZXIiO2lmKCJzdHJpbmciPT10eXBlb2YgdC5jb25zdClyZXR1cm4ic3RyaW5nIjtpZihBcnJheS5pc0FycmF5KHQuY29uc3QpKXJldHVybiJhcnJheTxhbnk+IjtpZigib2JqZWN0Ij09dHlwZW9mIHQuY29uc3QpcmV0dXJuIm9iamVjdCJ9cmV0dXJuIG51bGx9KSgpLGhhbmRsZUNvbWJpbmluZ0tleXdvcmRzKCJvbmVPZiIsIiB8ICIpLGhhbmRsZUNvbWJpbmluZ0tleXdvcmRzKCJhbnlPZiIsIiB8ICIpLGhhbmRsZUNvbWJpbmluZ0tleXdvcmRzKCJhbGxPZiIsIiAmICIpXS5maWx0ZXIoQm9vbGVhbikuam9pbigiIHwgIik7cmV0dXJuIHIuZGVsZXRlKHQpLGx8fCJhbnkifTtyZXR1cm4gZ2V0VHlwZX0saXNCb29sZWFuSlNPTlNjaGVtYT1lPT4iYm9vbGVhbiI9PXR5cGVvZiBlLGhhc0tleXdvcmQ9KGUsdCk9Pm51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGUmJk9iamVjdC5oYXNPd24oZSx0KSxmbl9tYWtlSXNFeHBhbmRhYmxlPWU9PnQ9Pntjb25zdCByPWUoKTtyZXR1cm4gdD8uJHNjaGVtYXx8dD8uJHZvY2FidWxhcnl8fHQ/LiRpZHx8dD8uJGFuY2hvcnx8dD8uJGR5bmFtaWNBbmNob3J8fHQ/LiRyZWZ8fHQ/LiRkeW5hbWljUmVmfHx0Py4kZGVmc3x8dD8uJGNvbW1lbnR8fHQ/LmFsbE9mfHx0Py5hbnlPZnx8dD8ub25lT2Z8fHIuaGFzS2V5d29yZCh0LCJub3QiKXx8ci5oYXNLZXl3b3JkKHQsImlmIil8fHIuaGFzS2V5d29yZCh0LCJ0aGVuIil8fHIuaGFzS2V5d29yZCh0LCJlbHNlIil8fHQ/LmRlcGVuZGVudFNjaGVtYXN8fHQ/LnByZWZpeEl0ZW1zfHxyLmhhc0tleXdvcmQodCwiaXRlbXMiKXx8ci5oYXNLZXl3b3JkKHQsImNvbnRhaW5zIil8fHQ/LnByb3BlcnRpZXN8fHQ/LnBhdHRlcm5Qcm9wZXJ0aWVzfHxyLmhhc0tleXdvcmQodCwiYWRkaXRpb25hbFByb3BlcnRpZXMiKXx8ci5oYXNLZXl3b3JkKHQsInByb3BlcnR5TmFtZXMiKXx8ci5oYXNLZXl3b3JkKHQsInVuZXZhbHVhdGVkSXRlbXMiKXx8ci5oYXNLZXl3b3JkKHQsInVuZXZhbHVhdGVkUHJvcGVydGllcyIpfHx0Py5kZXNjcmlwdGlvbnx8dD8uZW51bXx8ci5oYXNLZXl3b3JkKHQsImNvbnN0Iil8fHIuaGFzS2V5d29yZCh0LCJjb250ZW50U2NoZW1hIil8fHIuaGFzS2V5d29yZCh0LCJkZWZhdWx0Iil8fHQ/LmV4YW1wbGVzfHxyLmdldEV4dGVuc2lvbktleXdvcmRzKHQpLmxlbmd0aD4wfSxmbl9zdHJpbmdpZnk9ZT0+bnVsbD09PWV8fFsibnVtYmVyIiwiYmlnaW50IiwiYm9vbGVhbiJdLmluY2x1ZGVzKHR5cGVvZiBlKT9TdHJpbmcoZSk6QXJyYXkuaXNBcnJheShlKT9gWyR7ZS5tYXAoZm5fc3RyaW5naWZ5KS5qb2luKCIsICIpfV1gOkpTT04uc3RyaW5naWZ5KGUpLHN0cmluZ2lmeUNvbnN0cmFpbnRSYW5nZT0oZSx0LHIpPT57Y29uc3QgYT0ibnVtYmVyIj09dHlwZW9mIHQsbj0ibnVtYmVyIj09dHlwZW9mIHI7cmV0dXJuIGEmJm4/dD09PXI/YCR7dH0gJHtlfWA6YFske3R9LCAke3J9XSAke2V9YDphP2DiiaUgJHt0fSAke2V9YDpuP2DiiaQgJHtyfSAke2V9YDpudWxsfSxzdHJpbmdpZnlDb25zdHJhaW50cz1lPT57Y29uc3QgdD1bXSxyPShlPT57aWYoIm51bWJlciIhPXR5cGVvZiBlPy5tdWx0aXBsZU9mKXJldHVybiBudWxsO2lmKGUubXVsdGlwbGVPZjw9MClyZXR1cm4gbnVsbDtpZigxPT09ZS5tdWx0aXBsZU9mKXJldHVybiBudWxsO2NvbnN0e211bHRpcGxlT2Y6dH09ZTtpZihOdW1iZXIuaXNJbnRlZ2VyKHQpKXJldHVybmBtdWx0aXBsZSBvZiAke3R9YDtjb25zdCByPTEwKip0LnRvU3RyaW5nKCkuc3BsaXQoIi4iKVsxXS5sZW5ndGg7cmV0dXJuYG11bHRpcGxlIG9mICR7dCpyfS8ke3J9YH0pKGUpO251bGwhPT1yJiZ0LnB1c2goe3Njb3BlOiJudW1iZXIiLHZhbHVlOnJ9KTtjb25zdCBhPShlPT57Y29uc3QgdD1lPy5taW5pbXVtLHI9ZT8ubWF4aW11bSxhPWU/LmV4Y2x1c2l2ZU1pbmltdW0sbj1lPy5leGNsdXNpdmVNYXhpbXVtLHM9Im51bWJlciI9PXR5cGVvZiB0LG89Im51bWJlciI9PXR5cGVvZiByLGw9Im51bWJlciI9PXR5cGVvZiBhLGM9Im51bWJlciI9PXR5cGVvZiBuLGk9bCYmKCFzfHx0PGEpLHA9YyYmKCFvfHxyPm4pO2lmKChzfHxsKSYmKG98fGMpKXJldHVybmAke2k/IigiOiJbIn0ke2k/YTp0fSwgJHtwP246cn0ke3A/IikiOiJdIn1gO2lmKHN8fGwpcmV0dXJuYCR7aT8iPiI6IuKJpSJ9ICR7aT9hOnR9YDtpZihvfHxjKXJldHVybmAke3A/IjwiOiLiiaQifSAke3A/bjpyfWA7cmV0dXJuIG51bGx9KShlKTtudWxsIT09YSYmdC5wdXNoKHtzY29wZToibnVtYmVyIix2YWx1ZTphfSksZT8uZm9ybWF0JiZ0LnB1c2goe3Njb3BlOiJzdHJpbmciLHZhbHVlOmUuZm9ybWF0fSk7Y29uc3Qgbj1zdHJpbmdpZnlDb25zdHJhaW50UmFuZ2UoImNoYXJhY3RlcnMiLGU/Lm1pbkxlbmd0aCxlPy5tYXhMZW5ndGgpO251bGwhPT1uJiZ0LnB1c2goe3Njb3BlOiJzdHJpbmciLHZhbHVlOm59KSxlPy5wYXR0ZXJuJiZ0LnB1c2goe3Njb3BlOiJzdHJpbmciLHZhbHVlOmBtYXRjaGVzICR7ZT8ucGF0dGVybn1gfSksZT8uY29udGVudE1lZGlhVHlwZSYmdC5wdXNoKHtzY29wZToic3RyaW5nIix2YWx1ZTpgbWVkaWEgdHlwZTogJHtlLmNvbnRlbnRNZWRpYVR5cGV9YH0pLGU/LmNvbnRlbnRFbmNvZGluZyYmdC5wdXNoKHtzY29wZToic3RyaW5nIix2YWx1ZTpgZW5jb2Rpbmc6ICR7ZS5jb250ZW50RW5jb2Rpbmd9YH0pO2NvbnN0IHM9c3RyaW5naWZ5Q29uc3RyYWludFJhbmdlKGU/LnVuaXF1ZUl0ZW1zPyJ1bmlxdWUgaXRlbXMiOiJpdGVtcyIsZT8ubWluSXRlbXMsZT8ubWF4SXRlbXMpO251bGwhPT1zJiZ0LnB1c2goe3Njb3BlOiJhcnJheSIsdmFsdWU6c30pLGU/LnVuaXF1ZUl0ZW1zJiYhcyYmdC5wdXNoKHtzY29wZToiYXJyYXkiLHZhbHVlOiJ1bmlxdWUifSk7Y29uc3Qgbz1zdHJpbmdpZnlDb25zdHJhaW50UmFuZ2UoImNvbnRhaW5lZCBpdGVtcyIsZT8ubWluQ29udGFpbnMsZT8ubWF4Q29udGFpbnMpO251bGwhPT1vJiZ0LnB1c2goe3Njb3BlOiJhcnJheSIsdmFsdWU6b30pO2NvbnN0IGw9c3RyaW5naWZ5Q29uc3RyYWludFJhbmdlKCJwcm9wZXJ0aWVzIixlPy5taW5Qcm9wZXJ0aWVzLGU/Lm1heFByb3BlcnRpZXMpO3JldHVybiBudWxsIT09bCYmdC5wdXNoKHtzY29wZToib2JqZWN0Iix2YWx1ZTpsfSksdH0sZ2V0RGVwZW5kZW50UmVxdWlyZWQ9KGUsdCk9PnQ/LmRlcGVuZGVudFJlcXVpcmVkP0FycmF5LmZyb20oT2JqZWN0LmVudHJpZXModC5kZXBlbmRlbnRSZXF1aXJlZCkucmVkdWNlKCgodCxbcixhXSk9PkFycmF5LmlzQXJyYXkoYSkmJmEuaW5jbHVkZXMoZSk/KHQuYWRkKHIpLHQpOnQpLG5ldyBTZXQpKTpbXSxpc1BsYWluT2JqZWN0PWU9PiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJiFBcnJheS5pc0FycmF5KGUpJiYobnVsbD09PU9iamVjdC5nZXRQcm90b3R5cGVPZihlKXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09T2JqZWN0LnByb3RvdHlwZSksZ2V0U2NoZW1hS2V5d29yZHM9KCk9PlsiJHNjaGVtYSIsIiR2b2NhYnVsYXJ5IiwiJGlkIiwiJGFuY2hvciIsIiRkeW5hbWljQW5jaG9yIiwiJGR5bmFtaWNSZWYiLCIkcmVmIiwiJGRlZnMiLCIkY29tbWVudCIsImFsbE9mIiwiYW55T2YiLCJvbmVPZiIsIm5vdCIsImlmIiwidGhlbiIsImVsc2UiLCJkZXBlbmRlbnRTY2hlbWFzIiwicHJlZml4SXRlbXMiLCJpdGVtcyIsImNvbnRhaW5zIiwicHJvcGVydGllcyIsInBhdHRlcm5Qcm9wZXJ0aWVzIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJwcm9wZXJ0eU5hbWVzIiwidW5ldmFsdWF0ZWRJdGVtcyIsInVuZXZhbHVhdGVkUHJvcGVydGllcyIsInR5cGUiLCJlbnVtIiwiY29uc3QiLCJtdWx0aXBsZU9mIiwibWF4aW11bSIsImV4Y2x1c2l2ZU1heGltdW0iLCJtaW5pbXVtIiwiZXhjbHVzaXZlTWluaW11bSIsIm1heExlbmd0aCIsIm1pbkxlbmd0aCIsInBhdHRlcm4iLCJtYXhJdGVtcyIsIm1pbkl0ZW1zIiwidW5pcXVlSXRlbXMiLCJtYXhDb250YWlucyIsIm1pbkNvbnRhaW5zIiwibWF4UHJvcGVydGllcyIsIm1pblByb3BlcnRpZXMiLCJyZXF1aXJlZCIsImRlcGVuZGVudFJlcXVpcmVkIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImRlZmF1bHQiLCJkZXByZWNhdGVkIiwicmVhZE9ubHkiLCJ3cml0ZU9ubHkiLCJleGFtcGxlcyIsImZvcm1hdCIsImNvbnRlbnRFbmNvZGluZyIsImNvbnRlbnRNZWRpYVR5cGUiLCJjb250ZW50U2NoZW1hIl0sbWFrZUdldEV4dGVuc2lvbktleXdvcmRzPWU9PnQ9Pntjb25zdCByPWUoKS5nZXRTY2hlbWFLZXl3b3JkcygpO3JldHVybiBpc1BsYWluT2JqZWN0KHQpPygoZSx0KT0+e2NvbnN0IHI9bmV3IFNldCh0KTtyZXR1cm4gZS5maWx0ZXIoKGU9PiFyLmhhcyhlKSkpfSkoT2JqZWN0LmtleXModCkscik6W119LGZuX2hhc1NjaGVtYVR5cGU9KGUsdCk9Pntjb25zdCByPWsuTWFwLmlzTWFwKGUpO2lmKCFyJiYhaXNQbGFpbk9iamVjdChlKSlyZXR1cm4hMTtjb25zdCBoYXNUeXBlPWU9PnQ9PT1lfHxBcnJheS5pc0FycmF5KHQpJiZ0LmluY2x1ZGVzKGUpLGE9cj9lLmdldCgidHlwZSIpOmUudHlwZTtyZXR1cm4gay5MaXN0LmlzTGlzdChhKXx8QXJyYXkuaXNBcnJheShhKT9hLnNvbWUoKGU9Pmhhc1R5cGUoZSkpKTpoYXNUeXBlKGEpfSxDb25zdHJhaW50PSh7Y29uc3RyYWludDplfSk9PmlzUGxhaW5PYmplY3QoZSkmJiJzdHJpbmciPT10eXBlb2YgZS5zY29wZSYmInN0cmluZyI9PXR5cGVvZiBlLnZhbHVlP08oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmBqc29uLXNjaGVtYS0yMDIwLTEyX19jb25zdHJhaW50IGpzb24tc2NoZW1hLTIwMjAtMTJfX2NvbnN0cmFpbnQtLSR7ZS5zY29wZX1gfSxlLnZhbHVlKTpudWxsLFlzPU8oKS5tZW1vKENvbnN0cmFpbnQpLERlcGVuZGVudFJlcXVpcmVkX0RlcGVuZGVudFJlcXVpcmVkPSh7ZGVwZW5kZW50UmVxdWlyZWQ6ZX0pPT5BcnJheS5pc0FycmF5KGUpJiYwIT09ZS5sZW5ndGg/TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZGVwZW5kZW50UmVxdWlyZWQifSxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJSZXF1aXJlZCB3aGVuIGRlZmluZWQiKSxPKCkuY3JlYXRlRWxlbWVudCgidWwiLG51bGwsZS5tYXAoKGU9Pk8oKS5jcmVhdGVFbGVtZW50KCJsaSIse2tleTplfSxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS13YXJuaW5nIn0sZSkpKSkpKTpudWxsLGtleXdvcmRzX0NvbnRlbnRTY2hlbWE9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD11c2VGbigpLHI9dXNlQ29tcG9uZW50KCJKU09OU2NoZW1hIik7aWYoIXQuaGFzS2V5d29yZChlLCJjb250ZW50U2NoZW1hIikpcmV0dXJuIG51bGw7Y29uc3QgYT1PKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeSJ9LCJDb250ZW50IHNjaGVtYSIpO3JldHVybiBPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1jb250ZW50U2NoZW1hIn0sTygpLmNyZWF0ZUVsZW1lbnQocix7bmFtZTphLHNjaGVtYTplLmNvbnRlbnRTY2hlbWEsaWRlbnRpZmllcjoiY29udGVudFNjaGVtYSJ9KSl9LFRpdGxlX1RpdGxlPSh7dGl0bGU6ZT0iIixzY2hlbWE6dH0pPT57Y29uc3Qgcj11c2VGbigpLGE9ZXx8ci5nZXRUaXRsZSh0KTtyZXR1cm4gYT9PKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX190aXRsZSJ9LGEpOm51bGx9LGtleXdvcmRzX0Rlc2NyaXB0aW9uX0Rlc2NyaXB0aW9uPSh7c2NoZW1hOmV9KT0+ZT8uZGVzY3JpcHRpb24/TygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZGVzY3JpcHRpb24ifSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWNvcmUta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1jb3JlLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnkifSxlLmRlc2NyaXB0aW9uKSk6bnVsbCxEZWZhdWx0X0RlZmF1bHQ9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD11c2VGbigpLHI9dXNlQ29tcG9uZW50KCJKU09OVmlld2VyIik7cmV0dXJuIHQuaGFzS2V5d29yZChlLCJkZWZhdWx0Iik/TygpLmNyZWF0ZUVsZW1lbnQocix7bmFtZToiRGVmYXVsdCIsdmFsdWU6ZS5kZWZhdWx0LGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZGVmYXVsdCJ9KTpudWxsfSxrZXl3b3Jkc19EZXByZWNhdGVkPSh7c2NoZW1hOmV9KT0+ITAhPT1lPy5kZXByZWNhdGVkP251bGw6TygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXdhcm5pbmcifSwiZGVwcmVjYXRlZCIpLGtleXdvcmRzX1JlYWRPbmx5PSh7c2NoZW1hOmV9KT0+ITAhPT1lPy5yZWFkT25seT9udWxsOk8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1tdXRlZCJ9LCJyZWFkLW9ubHkiKSxrZXl3b3Jkc19Xcml0ZU9ubHk9KHtzY2hlbWE6ZX0pPT4hMCE9PWU/LndyaXRlT25seT9udWxsOk8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1tdXRlZCJ9LCJ3cml0ZS1vbmx5Iiksa2V5d29yZHNfRXhhbXBsZXNfRXhhbXBsZXM9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD1lPy5leGFtcGxlc3x8W10scj11c2VDb21wb25lbnQoIkpTT05WaWV3ZXIiKTtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmMCE9PXQubGVuZ3RoP08oKS5jcmVhdGVFbGVtZW50KHIse25hbWU6IkV4YW1wbGVzIix2YWx1ZTplLmV4YW1wbGVzLGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZXhhbXBsZXMifSk6bnVsbH0sRXh0ZW5zaW9uS2V5d29yZHNfRXh0ZW5zaW9uS2V5d29yZHM9KHtzY2hlbWE6ZX0pPT57Y29uc3QgdD11c2VGbigpLHI9IkV4dGVuc2lvbktleXdvcmRzIix7cGF0aDphfT11c2VQYXRoKHIpLHtpc0V4cGFuZGVkOm4sc2V0RXhwYW5kZWQ6cyxzZXRDb2xsYXBzZWQ6b309dXNlSXNFeHBhbmRlZChyKSxbbCxjXT11c2VMZXZlbCgpLGk9dXNlQ29tcG9uZW50KCJBY2NvcmRpb24iKSxwPXVzZUNvbXBvbmVudCgiRXhwYW5kRGVlcEJ1dHRvbiIpLG09dXNlQ29tcG9uZW50KCJKU09OVmlld2VyIikse3Nob3dFeHRlbnNpb25LZXl3b3Jkczp1fT11c2VDb25maWcoKSxkPXQuZ2V0RXh0ZW5zaW9uS2V5d29yZHMoZSksaD0oMCx4LnVzZUNhbGxiYWNrKSgoKCk9PntuP28oKTpzKCl9KSxbbixzLG9dKSxnPSgwLHgudXNlQ2FsbGJhY2spKCgoZSx0KT0+e3Q/cyh7ZGVlcDohMH0pOm8oe2RlZXA6ITB9KX0pLFtzLG9dKTtyZXR1cm4gdSYmMCE9PWQubGVuZ3RoP08oKS5jcmVhdGVFbGVtZW50KEhzLlByb3ZpZGVyLHt2YWx1ZTphfSxPKCkuY3JlYXRlRWxlbWVudChGcy5Qcm92aWRlcix7dmFsdWU6Y30sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZXh0ZW5zaW9uLWtleXdvcmRzIiwiZGF0YS1qc29uLXNjaGVtYS1sZXZlbCI6bH0sTygpLmNyZWF0ZUVsZW1lbnQoaSx7ZXhwYW5kZWQ6bixvbkNoYW5nZTpofSxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tZXh0ZW5zaW9uIn0sIkV4dGVuc2lvbiBLZXl3b3JkcyIpKSxPKCkuY3JlYXRlRWxlbWVudChwLHtleHBhbmRlZDpuLG9uQ2xpY2s6Z30pLE8oKS5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZTpwdCgpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuIix7Impzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4tLWNvbGxhcHNlZCI6IW59KX0sbiYmTygpLmNyZWF0ZUVsZW1lbnQoTygpLkZyYWdtZW50LG51bGwsZC5tYXAoKHQ9Pk8oKS5jcmVhdGVFbGVtZW50KG0se2tleTp0LG5hbWU6dCx2YWx1ZTplW3RdLGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlci1leHRlbnNpb24ta2V5d29yZCJ9KSkpKSkpKSk6bnVsbH0sSlNPTlZpZXdlcj0oe25hbWU6ZSx2YWx1ZTp0LGNsYXNzTmFtZTpyfSk9Pntjb25zdCBhPXVzZUZuKCkse3BhdGg6bn09dXNlUGF0aChlKSx7aXNFeHBhbmRlZDpzLHNldEV4cGFuZGVkOm8sc2V0Q29sbGFwc2VkOmx9PXVzZUlzRXhwYW5kZWQoZSksW2MsaV09dXNlTGV2ZWwoKSxwPXVzZUNvbXBvbmVudCgiQWNjb3JkaW9uIiksbT11c2VDb21wb25lbnQoIkV4cGFuZERlZXBCdXR0b24iKSx1PSJzdHJpbmciPT10eXBlb2YgdHx8Im51bWJlciI9PXR5cGVvZiB0fHwiYmlnaW50Ij09dHlwZW9mIHR8fCJib29sZWFuIj09dHlwZW9mIHR8fCJzeW1ib2wiPT10eXBlb2YgdHx8bnVsbD09dCxkPShlPT5pc1BsYWluT2JqZWN0KGUpJiYwPT09T2JqZWN0LmtleXMoZSkubGVuZ3RoKSh0KXx8KGU9PkFycmF5LmlzQXJyYXkoZSkmJjA9PT1lLmxlbmd0aCkodCksaD0oMCx4LnVzZUNhbGxiYWNrKSgoKCk9PntzP2woKTpvKCl9KSxbcyxvLGxdKSxnPSgwLHgudXNlQ2FsbGJhY2spKCgoZSx0KT0+e3Q/byh7ZGVlcDohMH0pOmwoe2RlZXA6ITB9KX0pLFtvLGxdKTtyZXR1cm4gdT9PKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnB0KCkoImpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXIiLHIpfSxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19uYW1lLS1zZWNvbmRhcnkifSxlKSxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fdmFsdWUtLXNlY29uZGFyeSJ9LGEuc3RyaW5naWZ5KHQpKSk6ZD9PKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnB0KCkoImpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXIiLHIpfSxPKCkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19uYW1lLS1zZWNvbmRhcnkifSxlKSxPKCkuY3JlYXRlRWxlbWVudCgic3Ryb25nIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5In0sQXJyYXkuaXNBcnJheSh0KT8iZW1wdHkgYXJyYXkiOiJlbXB0eSBvYmplY3QiKSk6TygpLmNyZWF0ZUVsZW1lbnQoSHMuUHJvdmlkZXIse3ZhbHVlOm59LE8oKS5jcmVhdGVFbGVtZW50KEZzLlByb3ZpZGVyLHt2YWx1ZTppfSxPKCkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnB0KCkoImpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXIiLHIpLCJkYXRhLWpzb24tc2NoZW1hLWxldmVsIjpjfSxPKCkuY3JlYXRlRWxlbWVudChwLHtleHBhbmRlZDpzLG9uQ2hhbmdlOmh9LE8oKS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX25hbWUtLXNlY29uZGFyeSJ9LGUpKSxPKCkuY3JlYXRlRWxlbWVudChtLHtleHBhbmRlZDpzLG9uQ2xpY2s6Z30pLE8oKS5jcmVhdGVFbGVtZW50KCJzdHJvbmciLHtjbGFzc05hbWU6Impzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnkifSxBcnJheS5pc0FycmF5KHQpPyJhcnJheSI6Im9iamVjdCIpLE8oKS5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZTpwdCgpKCJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19jaGlsZHJlbiIseyJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19jaGlsZHJlbi0tY29sbGFwc2VkIjohc30pfSxzJiZPKCkuY3JlYXRlRWxlbWVudChPKCkuRnJhZ21lbnQsbnVsbCxBcnJheS5pc0FycmF5KHQpP3QubWFwKCgoZSx0KT0+TygpLmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OmAjJHt0fWAsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5In0sTygpLmNyZWF0ZUVsZW1lbnQoSlNPTlZpZXdlcix7bmFtZTpgIyR7dH1gLHZhbHVlOmUsY2xhc3NOYW1lOnJ9KSkpKTpPYmplY3QuZW50cmllcyh0KS5tYXAoKChbZSx0XSk9Pk8oKS5jcmVhdGVFbGVtZW50KCJsaSIse2tleTplLGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eSJ9LE8oKS5jcmVhdGVFbGVtZW50KEpTT05WaWV3ZXIse25hbWU6ZSx2YWx1ZTp0LGNsYXNzTmFtZTpyfSkpKSkpKSkpKX0sUXM9SlNPTlZpZXdlcixBY2NvcmRpb25fQWNjb3JkaW9uPSh7ZXhwYW5kZWQ6ZT0hMSxjaGlsZHJlbjp0LG9uQ2hhbmdlOnJ9KT0+e2NvbnN0IGE9dXNlQ29tcG9uZW50KCJDaGV2cm9uUmlnaHRJY29uIiksbj0oMCx4LnVzZUNhbGxiYWNrKSgodD0+e3IodCwhZSl9KSxbZSxyXSk7cmV0dXJuIE8oKS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb24iLG9uQ2xpY2s6bn0sTygpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToianNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb25fX2NoaWxkcmVuIn0sdCksTygpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cHQoKSgianNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb25fX2ljb24iLHsianNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb25fX2ljb24tLWV4cGFuZGVkIjplLCJqc29uLXNjaGVtYS0yMDIwLTEyLWFjY29yZGlvbl9faWNvbi0tY29sbGFwc2VkIjohZX0pfSxPKCkuY3JlYXRlRWxlbWVudChhLG51bGwpKSl9LEV4cGFuZERlZXBCdXR0b25fRXhwYW5kRGVlcEJ1dHRvbj0oe2V4cGFuZGVkOmUsb25DbGljazp0fSk9Pntjb25zdCByPSgwLHgudXNlQ2FsbGJhY2spKChyPT57dChyLCFlKX0pLFtlLHRdKTtyZXR1cm4gTygpLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJqc29uLXNjaGVtYS0yMDIwLTEyLWV4cGFuZC1kZWVwLWJ1dHRvbiIsb25DbGljazpyfSxlPyJDb2xsYXBzZSBhbGwiOiJFeHBhbmQgYWxsIil9LGljb25zX0NoZXZyb25SaWdodD0oKT0+TygpLmNyZWF0ZUVsZW1lbnQoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6IjI0IixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQifSxPKCkuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xMCA2TDguNTkgNy40MSAxMy4xNyAxMmwtNC41OCA0LjU5TDEwIDE4bDYtNnoifSkpLHdpdGhKU09OU2NoZW1hQ29udGV4dD0oZSx0PXt9KT0+e2NvbnN0IHI9e2NvbXBvbmVudHM6e0pTT05TY2hlbWE6R3MsS2V5d29yZCRzY2hlbWE6a2V5d29yZHNfJHNjaGVtYSxLZXl3b3JkJHZvY2FidWxhcnk6JHZvY2FidWxhcnlfJHZvY2FidWxhcnksS2V5d29yZCRpZDprZXl3b3Jkc18kaWQsS2V5d29yZCRhbmNob3I6a2V5d29yZHNfJGFuY2hvcixLZXl3b3JkJGR5bmFtaWNBbmNob3I6a2V5d29yZHNfJGR5bmFtaWNBbmNob3IsS2V5d29yZCRyZWY6a2V5d29yZHNfJHJlZixLZXl3b3JkJGR5bmFtaWNSZWY6a2V5d29yZHNfJGR5bmFtaWNSZWYsS2V5d29yZCRkZWZzOmtleXdvcmRzXyRkZWZzLEtleXdvcmQkY29tbWVudDprZXl3b3Jkc18kY29tbWVudCxLZXl3b3JkQWxsT2Y6a2V5d29yZHNfQWxsT2YsS2V5d29yZEFueU9mOmtleXdvcmRzX0FueU9mLEtleXdvcmRPbmVPZjprZXl3b3Jkc19PbmVPZixLZXl3b3JkTm90OmtleXdvcmRzX05vdCxLZXl3b3JkSWY6a2V5d29yZHNfSWYsS2V5d29yZFRoZW46a2V5d29yZHNfVGhlbixLZXl3b3JkRWxzZTprZXl3b3Jkc19FbHNlLEtleXdvcmREZXBlbmRlbnRTY2hlbWFzOmtleXdvcmRzX0RlcGVuZGVudFNjaGVtYXMsS2V5d29yZFByZWZpeEl0ZW1zOmtleXdvcmRzX1ByZWZpeEl0ZW1zLEtleXdvcmRJdGVtczprZXl3b3Jkc19JdGVtcyxLZXl3b3JkQ29udGFpbnM6a2V5d29yZHNfQ29udGFpbnMsS2V5d29yZFByb3BlcnRpZXM6a2V5d29yZHNfUHJvcGVydGllc19Qcm9wZXJ0aWVzLEtleXdvcmRQYXR0ZXJuUHJvcGVydGllczpQYXR0ZXJuUHJvcGVydGllc19QYXR0ZXJuUHJvcGVydGllcyxLZXl3b3JkQWRkaXRpb25hbFByb3BlcnRpZXM6a2V5d29yZHNfQWRkaXRpb25hbFByb3BlcnRpZXMsS2V5d29yZFByb3BlcnR5TmFtZXM6a2V5d29yZHNfUHJvcGVydHlOYW1lcyxLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtczprZXl3b3Jkc19VbmV2YWx1YXRlZEl0ZW1zLEtleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXM6a2V5d29yZHNfVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzLEtleXdvcmRUeXBlOmtleXdvcmRzX1R5cGUsS2V5d29yZEVudW06RW51bV9FbnVtLEtleXdvcmRDb25zdDpDb25zdF9Db25zdCxLZXl3b3JkQ29uc3RyYWludDpZcyxLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQ6RGVwZW5kZW50UmVxdWlyZWRfRGVwZW5kZW50UmVxdWlyZWQsS2V5d29yZENvbnRlbnRTY2hlbWE6a2V5d29yZHNfQ29udGVudFNjaGVtYSxLZXl3b3JkVGl0bGU6VGl0bGVfVGl0bGUsS2V5d29yZERlc2NyaXB0aW9uOmtleXdvcmRzX0Rlc2NyaXB0aW9uX0Rlc2NyaXB0aW9uLEtleXdvcmREZWZhdWx0OkRlZmF1bHRfRGVmYXVsdCxLZXl3b3JkRGVwcmVjYXRlZDprZXl3b3Jkc19EZXByZWNhdGVkLEtleXdvcmRSZWFkT25seTprZXl3b3Jkc19SZWFkT25seSxLZXl3b3JkV3JpdGVPbmx5OmtleXdvcmRzX1dyaXRlT25seSxLZXl3b3JkRXhhbXBsZXM6a2V5d29yZHNfRXhhbXBsZXNfRXhhbXBsZXMsRXh0ZW5zaW9uS2V5d29yZHM6RXh0ZW5zaW9uS2V5d29yZHNfRXh0ZW5zaW9uS2V5d29yZHMsSlNPTlZpZXdlcjpRcyxBY2NvcmRpb246QWNjb3JkaW9uX0FjY29yZGlvbixFeHBhbmREZWVwQnV0dG9uOkV4cGFuZERlZXBCdXR0b25fRXhwYW5kRGVlcEJ1dHRvbixDaGV2cm9uUmlnaHRJY29uOmljb25zX0NoZXZyb25SaWdodCwuLi50LmNvbXBvbmVudHN9LGNvbmZpZzp7ZGVmYXVsdCRzY2hlbWE6Imh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMjAtMTIvc2NoZW1hIixkZWZhdWx0RXhwYW5kZWRMZXZlbHM6MCxzaG93RXh0ZW5zaW9uS2V5d29yZHM6ITAsLi4udC5jb25maWd9LGZuOnt1cHBlckZpcnN0OmZuX3VwcGVyRmlyc3QsZ2V0VGl0bGU6bWFrZUdldFRpdGxlKHVzZUZuKSxnZXRUeXBlOm1ha2VHZXRUeXBlKHVzZUZuKSxpc0Jvb2xlYW5KU09OU2NoZW1hLGhhc0tleXdvcmQsaXNFeHBhbmRhYmxlOmZuX21ha2VJc0V4cGFuZGFibGUodXNlRm4pLHN0cmluZ2lmeTpmbl9zdHJpbmdpZnksc3RyaW5naWZ5Q29uc3RyYWludHMsZ2V0RGVwZW5kZW50UmVxdWlyZWQsZ2V0U2NoZW1hS2V5d29yZHMsZ2V0RXh0ZW5zaW9uS2V5d29yZHM6bWFrZUdldEV4dGVuc2lvbktleXdvcmRzKHVzZUZuKSwuLi50LmZufSxzdGF0ZTp7cGF0aHM6e319fSxIT0M9dD0+TygpLmNyZWF0ZUVsZW1lbnQoQnMuUHJvdmlkZXIse3ZhbHVlOnJ9LE8oKS5jcmVhdGVFbGVtZW50KGUsdCkpO3JldHVybiBIT0MuY29udGV4dHM9e0pTT05TY2hlbWFDb250ZXh0OkJzfSxIT0MuZGlzcGxheU5hbWU9ZS5kaXNwbGF5TmFtZSxIT0N9LG1ha2VXaXRoSlNPTlNjaGVtYVN5c3RlbUNvbnRleHQ9KHtnZXRTeXN0ZW06ZX0pPT4odCxyPXt9KT0+e2NvbnN0e2dldENvbXBvbmVudDphLGdldENvbmZpZ3M6bn09ZSgpLHM9bigpLG89YSgiSlNPTlNjaGVtYTIwMjAxMiIpLGw9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkc2NoZW1hIiksYz1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCR2b2NhYnVsYXJ5IiksaT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRpZCIpLHA9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkYW5jaG9yIiksbT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRkeW5hbWljQW5jaG9yIiksdT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRyZWYiKSxkPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGR5bmFtaWNSZWYiKSxoPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGRlZnMiKSxnPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGNvbW1lbnQiKSx5PWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQWxsT2YiKSxmPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQW55T2YiKSxTPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkT25lT2YiKSxFPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkTm90IiksXz1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZElmIiksdj1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRoZW4iKSx3PWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRWxzZSIpLGI9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXBlbmRlbnRTY2hlbWFzIiksQz1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByZWZpeEl0ZW1zIikseD1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEl0ZW1zIiksTz1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZENvbnRhaW5zIiksTj1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByb3BlcnRpZXMiKSxrPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUGF0dGVyblByb3BlcnRpZXMiKSxBPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQWRkaXRpb25hbFByb3BlcnRpZXMiKSxJPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUHJvcGVydHlOYW1lcyIpLGo9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRVbmV2YWx1YXRlZEl0ZW1zIikscT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFVuZXZhbHVhdGVkUHJvcGVydGllcyIpLFA9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRUeXBlIiksTT1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEVudW0iKSxUPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29uc3QiKSxSPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29uc3RyYWludCIpLEo9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXBlbmRlbnRSZXF1aXJlZCIpLCQ9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRDb250ZW50U2NoZW1hIiksVj1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRpdGxlIiksTD1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlc2NyaXB0aW9uIiksRD1hKCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlZmF1bHQiKSxVPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwcmVjYXRlZCIpLEs9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRSZWFkT25seSIpLHo9YSgiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRXcml0ZU9ubHkiKSxCPWEoIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXhhbXBsZXMiKSxGPWEoIkpTT05TY2hlbWEyMDIwMTJFeHRlbnNpb25LZXl3b3JkcyIpLFc9YSgiSlNPTlNjaGVtYTIwMjAxMkpTT05WaWV3ZXIiKSxIPWEoIkpTT05TY2hlbWEyMDIwMTJBY2NvcmRpb24iKSxYPWEoIkpTT05TY2hlbWEyMDIwMTJFeHBhbmREZWVwQnV0dG9uIiksRz1hKCJKU09OU2NoZW1hMjAyMDEyQ2hldnJvblJpZ2h0SWNvbiIpO3JldHVybiB3aXRoSlNPTlNjaGVtYUNvbnRleHQodCx7Y29tcG9uZW50czp7SlNPTlNjaGVtYTpvLEtleXdvcmQkc2NoZW1hOmwsS2V5d29yZCR2b2NhYnVsYXJ5OmMsS2V5d29yZCRpZDppLEtleXdvcmQkYW5jaG9yOnAsS2V5d29yZCRkeW5hbWljQW5jaG9yOm0sS2V5d29yZCRyZWY6dSxLZXl3b3JkJGR5bmFtaWNSZWY6ZCxLZXl3b3JkJGRlZnM6aCxLZXl3b3JkJGNvbW1lbnQ6ZyxLZXl3b3JkQWxsT2Y6eSxLZXl3b3JkQW55T2Y6ZixLZXl3b3JkT25lT2Y6UyxLZXl3b3JkTm90OkUsS2V5d29yZElmOl8sS2V5d29yZFRoZW46dixLZXl3b3JkRWxzZTp3LEtleXdvcmREZXBlbmRlbnRTY2hlbWFzOmIsS2V5d29yZFByZWZpeEl0ZW1zOkMsS2V5d29yZEl0ZW1zOngsS2V5d29yZENvbnRhaW5zOk8sS2V5d29yZFByb3BlcnRpZXM6TixLZXl3b3JkUGF0dGVyblByb3BlcnRpZXM6ayxLZXl3b3JkQWRkaXRpb25hbFByb3BlcnRpZXM6QSxLZXl3b3JkUHJvcGVydHlOYW1lczpJLEtleXdvcmRVbmV2YWx1YXRlZEl0ZW1zOmosS2V5d29yZFVuZXZhbHVhdGVkUHJvcGVydGllczpxLEtleXdvcmRUeXBlOlAsS2V5d29yZEVudW06TSxLZXl3b3JkQ29uc3Q6VCxLZXl3b3JkQ29uc3RyYWludDpSLEtleXdvcmREZXBlbmRlbnRSZXF1aXJlZDpKLEtleXdvcmRDb250ZW50U2NoZW1hOiQsS2V5d29yZFRpdGxlOlYsS2V5d29yZERlc2NyaXB0aW9uOkwsS2V5d29yZERlZmF1bHQ6RCxLZXl3b3JkRGVwcmVjYXRlZDpVLEtleXdvcmRSZWFkT25seTpLLEtleXdvcmRXcml0ZU9ubHk6eixLZXl3b3JkRXhhbXBsZXM6QixFeHRlbnNpb25LZXl3b3JkczpGLEpTT05WaWV3ZXI6VyxBY2NvcmRpb246SCxFeHBhbmREZWVwQnV0dG9uOlgsQ2hldnJvblJpZ2h0SWNvbjpHLC4uLnIuY29tcG9uZW50c30sY29uZmlnOntzaG93RXh0ZW5zaW9uS2V5d29yZHM6cy5zaG93RXh0ZW5zaW9ucywuLi5yLmNvbmZpZ30sZm46ey4uLnIuZm59fSl9LGpzb25fc2NoZW1hXzIwMjBfMTI9KHtnZXRTeXN0ZW06ZSxmbjp0fSk9Pntjb25zdCBmbkFjY2Vzc29yPSgpPT4oe3VwcGVyRmlyc3Q6dC51cHBlckZpcnN0LC4uLnQuanNvblNjaGVtYTIwMjAxMn0pO3JldHVybntjb21wb25lbnRzOntKU09OU2NoZW1hMjAyMDEyOkdzLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJHNjaGVtYTprZXl3b3Jkc18kc2NoZW1hLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJHZvY2FidWxhcnk6JHZvY2FidWxhcnlfJHZvY2FidWxhcnksSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkaWQ6a2V5d29yZHNfJGlkLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGFuY2hvcjprZXl3b3Jkc18kYW5jaG9yLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGR5bmFtaWNBbmNob3I6a2V5d29yZHNfJGR5bmFtaWNBbmNob3IsSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkcmVmOmtleXdvcmRzXyRyZWYsSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkZHluYW1pY1JlZjprZXl3b3Jkc18kZHluYW1pY1JlZixKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRkZWZzOmtleXdvcmRzXyRkZWZzLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGNvbW1lbnQ6a2V5d29yZHNfJGNvbW1lbnQsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBbGxPZjprZXl3b3Jkc19BbGxPZixKU09OU2NoZW1hMjAyMDEyS2V5d29yZEFueU9mOmtleXdvcmRzX0FueU9mLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkT25lT2Y6a2V5d29yZHNfT25lT2YsSlNPTlNjaGVtYTIwMjAxMktleXdvcmROb3Q6a2V5d29yZHNfTm90LEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkSWY6a2V5d29yZHNfSWYsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRUaGVuOmtleXdvcmRzX1RoZW4sSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFbHNlOmtleXdvcmRzX0Vsc2UsSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXBlbmRlbnRTY2hlbWFzOmtleXdvcmRzX0RlcGVuZGVudFNjaGVtYXMsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRQcmVmaXhJdGVtczprZXl3b3Jkc19QcmVmaXhJdGVtcyxKU09OU2NoZW1hMjAyMDEyS2V5d29yZEl0ZW1zOmtleXdvcmRzX0l0ZW1zLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29udGFpbnM6a2V5d29yZHNfQ29udGFpbnMsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRQcm9wZXJ0aWVzOmtleXdvcmRzX1Byb3BlcnRpZXNfUHJvcGVydGllcyxKU09OU2NoZW1hMjAyMDEyS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzOlBhdHRlcm5Qcm9wZXJ0aWVzX1BhdHRlcm5Qcm9wZXJ0aWVzLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQWRkaXRpb25hbFByb3BlcnRpZXM6a2V5d29yZHNfQWRkaXRpb25hbFByb3BlcnRpZXMsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRQcm9wZXJ0eU5hbWVzOmtleXdvcmRzX1Byb3BlcnR5TmFtZXMsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRVbmV2YWx1YXRlZEl0ZW1zOmtleXdvcmRzX1VuZXZhbHVhdGVkSXRlbXMsSlNPTlNjaGVtYTIwMjAxMktleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXM6a2V5d29yZHNfVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVHlwZTprZXl3b3Jkc19UeXBlLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRW51bTpFbnVtX0VudW0sSlNPTlNjaGVtYTIwMjAxMktleXdvcmRDb25zdDpDb25zdF9Db25zdCxKU09OU2NoZW1hMjAyMDEyS2V5d29yZENvbnN0cmFpbnQ6WXMsSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXBlbmRlbnRSZXF1aXJlZDpEZXBlbmRlbnRSZXF1aXJlZF9EZXBlbmRlbnRSZXF1aXJlZCxKU09OU2NoZW1hMjAyMDEyS2V5d29yZENvbnRlbnRTY2hlbWE6a2V5d29yZHNfQ29udGVudFNjaGVtYSxKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRpdGxlOlRpdGxlX1RpdGxlLEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVzY3JpcHRpb246a2V5d29yZHNfRGVzY3JpcHRpb25fRGVzY3JpcHRpb24sSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZWZhdWx0OkRlZmF1bHRfRGVmYXVsdCxKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlcHJlY2F0ZWQ6a2V5d29yZHNfRGVwcmVjYXRlZCxKU09OU2NoZW1hMjAyMDEyS2V5d29yZFJlYWRPbmx5OmtleXdvcmRzX1JlYWRPbmx5LEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkV3JpdGVPbmx5OmtleXdvcmRzX1dyaXRlT25seSxKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4YW1wbGVzOmtleXdvcmRzX0V4YW1wbGVzX0V4YW1wbGVzLEpTT05TY2hlbWEyMDIwMTJFeHRlbnNpb25LZXl3b3JkczpFeHRlbnNpb25LZXl3b3Jkc19FeHRlbnNpb25LZXl3b3JkcyxKU09OU2NoZW1hMjAyMDEySlNPTlZpZXdlcjpRcyxKU09OU2NoZW1hMjAyMDEyQWNjb3JkaW9uOkFjY29yZGlvbl9BY2NvcmRpb24sSlNPTlNjaGVtYTIwMjAxMkV4cGFuZERlZXBCdXR0b246RXhwYW5kRGVlcEJ1dHRvbl9FeHBhbmREZWVwQnV0dG9uLEpTT05TY2hlbWEyMDIwMTJDaGV2cm9uUmlnaHRJY29uOmljb25zX0NoZXZyb25SaWdodCx3aXRoSlNPTlNjaGVtYTIwMjAxMkNvbnRleHQ6d2l0aEpTT05TY2hlbWFDb250ZXh0LHdpdGhKU09OU2NoZW1hMjAyMDEyU3lzdGVtQ29udGV4dDptYWtlV2l0aEpTT05TY2hlbWFTeXN0ZW1Db250ZXh0KGUoKSksSlNPTlNjaGVtYTIwMjAxMlBhdGhDb250ZXh0OigpPT5IcyxKU09OU2NoZW1hMjAyMDEyTGV2ZWxDb250ZXh0OigpPT5Gc30sZm46e3VwcGVyRmlyc3Q6Zm5fdXBwZXJGaXJzdCxqc29uU2NoZW1hMjAyMDEyOntnZXRUaXRsZTptYWtlR2V0VGl0bGUoZm5BY2Nlc3NvciksZ2V0VHlwZTptYWtlR2V0VHlwZShmbkFjY2Vzc29yKSxpc0V4cGFuZGFibGU6Zm5fbWFrZUlzRXhwYW5kYWJsZShmbkFjY2Vzc29yKSxpc0Jvb2xlYW5KU09OU2NoZW1hLGhhc0tleXdvcmQsdXNlRm4sdXNlQ29uZmlnLHVzZUNvbXBvbmVudCx1c2VJc0V4cGFuZGVkLHVzZVBhdGgsdXNlTGV2ZWwsZ2V0U2NoZW1hS2V5d29yZHMsZ2V0RXh0ZW5zaW9uS2V5d29yZHM6bWFrZUdldEV4dGVuc2lvbktleXdvcmRzKGZuQWNjZXNzb3IpLGhhc1NjaGVtYVR5cGU6Zm5faGFzU2NoZW1hVHlwZX19fX0sYXJyYXk9KGUse3NhbXBsZTp0PVtdfT17fSk9PigoZSx0PXt9KT0+e2NvbnN0e21pbkl0ZW1zOnIsbWF4SXRlbXM6YSx1bmlxdWVJdGVtczpufT10LHtjb250YWluczpzLG1pbkNvbnRhaW5zOm8sbWF4Q29udGFpbnM6bH09dDtsZXQgYz1bLi4uZV07aWYobnVsbCE9cyYmIm9iamVjdCI9PXR5cGVvZiBzKXtpZihOdW1iZXIuaXNJbnRlZ2VyKG8pJiZvPjEpe2NvbnN0IGU9Yy5hdCgwKTtmb3IobGV0IHQ9MTt0PG87dCs9MSljLnVuc2hpZnQoZSl9TnVtYmVyLmlzSW50ZWdlcihsKX1pZihOdW1iZXIuaXNJbnRlZ2VyKGEpJiZhPjAmJihjPWUuc2xpY2UoMCxhKSksTnVtYmVyLmlzSW50ZWdlcihyKSYmcj4wKWZvcihsZXQgZT0wO2MubGVuZ3RoPHI7ZSs9MSljLnB1c2goY1tlJWMubGVuZ3RoXSk7cmV0dXJuITA9PT1uJiYoYz1BcnJheS5mcm9tKG5ldyBTZXQoYykpKSxjfSkodCxlKSxvYmplY3Q9KCk9Pnt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfSxieXRlcz1lPT5hZSgpKGUpLHBpY2s9ZT0+ZS5hdCgwKSxwcmVkaWNhdGVzX2lzQm9vbGVhbkpTT05TY2hlbWE9ZT0+ImJvb2xlYW4iPT10eXBlb2YgZSxpc0pTT05TY2hlbWFPYmplY3Q9ZT0+d3QoKShlKSxpc0pTT05TY2hlbWE9ZT0+cHJlZGljYXRlc19pc0Jvb2xlYW5KU09OU2NoZW1hKGUpfHxpc0pTT05TY2hlbWFPYmplY3QoZSk7Y29uc3QgWnM9Y2xhc3MgUmVnaXN0cnl7ZGF0YT17fTtyZWdpc3RlcihlLHQpe3RoaXMuZGF0YVtlXT10fXVucmVnaXN0ZXIoZSl7dm9pZCAwPT09ZT90aGlzLmRhdGE9e306ZGVsZXRlIHRoaXMuZGF0YVtlXX1nZXQoZSl7cmV0dXJuIHRoaXMuZGF0YVtlXX19LGludDMyPSgpPT4wLGludDY0PSgpPT4wLGdlbmVyYXRvcnNfZmxvYXQ9KCk9Pi4xLGdlbmVyYXRvcnNfZG91YmxlPSgpPT4uMSxlbWFpbD0oKT0+InVzZXJAZXhhbXBsZS5jb20iLGlkbl9lbWFpbD0oKT0+IuyLpOuhgEBleGFtcGxlLmNvbSIsaG9zdG5hbWU9KCk9PiJleGFtcGxlLmNvbSIsaWRuX2hvc3RuYW1lPSgpPT4i7Iuk66GALmNvbSIsaXB2ND0oKT0+IjE5OC41MS4xMDAuNDIiLGlwdjY9KCk9PiIyMDAxOjBkYjg6NWI5NjowMDAwOjAwMDA6NDI2Zjo4ZTE3OjY0MmEiLHVyaT0oKT0+Imh0dHBzOi8vZXhhbXBsZS5jb20vIix1cmlfcmVmZXJlbmNlPSgpPT4icGF0aC9pbmRleC5odG1sIixpcmk9KCk9PiJodHRwczovL+yLpOuhgC5jb20vIixpcmlfcmVmZXJlbmNlPSgpPT4icGF0aC/si6TroYAuaHRtbCIsdXVpZD0oKT0+IjNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNiIsdXJpX3RlbXBsYXRlPSgpPT4iaHR0cHM6Ly9leGFtcGxlLmNvbS9kaWN0aW9uYXJ5L3t0ZXJtOjF9L3t0ZXJtfSIsanNvbl9wb2ludGVyPSgpPT4iL2EvYi9jIixyZWxhdGl2ZV9qc29uX3BvaW50ZXI9KCk9PiIxLzAiLGRhdGVfdGltZT0oKT0+KG5ldyBEYXRlKS50b0lTT1N0cmluZygpLGRhdGU9KCk9PihuZXcgRGF0ZSkudG9JU09TdHJpbmcoKS5zdWJzdHJpbmcoMCwxMCksdGltZT0oKT0+KG5ldyBEYXRlKS50b0lTT1N0cmluZygpLnN1YnN0cmluZygxMSksZHVyYXRpb249KCk9PiJQM0QiLGdlbmVyYXRvcnNfcGFzc3dvcmQ9KCk9PiIqKioqKioqKiIscmVnZXg9KCk9PiJeW2Etel0rJCI7Y29uc3QgZW89bmV3IGNsYXNzIEZvcm1hdFJlZ2lzdHJ5IGV4dGVuZHMgWnN7I2U9e2ludDMyLGludDY0LGZsb2F0OmdlbmVyYXRvcnNfZmxvYXQsZG91YmxlOmdlbmVyYXRvcnNfZG91YmxlLGVtYWlsLCJpZG4tZW1haWwiOmlkbl9lbWFpbCxob3N0bmFtZSwiaWRuLWhvc3RuYW1lIjppZG5faG9zdG5hbWUsaXB2NCxpcHY2LHVyaSwidXJpLXJlZmVyZW5jZSI6dXJpX3JlZmVyZW5jZSxpcmksImlyaS1yZWZlcmVuY2UiOmlyaV9yZWZlcmVuY2UsdXVpZCwidXJpLXRlbXBsYXRlIjp1cmlfdGVtcGxhdGUsImpzb24tcG9pbnRlciI6anNvbl9wb2ludGVyLCJyZWxhdGl2ZS1qc29uLXBvaW50ZXIiOnJlbGF0aXZlX2pzb25fcG9pbnRlciwiZGF0ZS10aW1lIjpkYXRlX3RpbWUsZGF0ZSx0aW1lLGR1cmF0aW9uLHBhc3N3b3JkOmdlbmVyYXRvcnNfcGFzc3dvcmQscmVnZXh9O2RhdGE9ey4uLnRoaXMuI2V9O2dldCBkZWZhdWx0cygpe3JldHVybnsuLi50aGlzLiNlfX19LGZvcm1hdEFQST0oZSx0KT0+ImZ1bmN0aW9uIj09dHlwZW9mIHQ/ZW8ucmVnaXN0ZXIoZSx0KTpudWxsPT09dD9lby51bnJlZ2lzdGVyKGUpOmVvLmdldChlKTtmb3JtYXRBUEkuZ2V0RGVmYXVsdHM9KCk9PmVvLmRlZmF1bHRzO2NvbnN0IHRvPWZvcm1hdEFQSTt2YXIgcm89X193ZWJwYWNrX3JlcXVpcmVfXygxNTgpLkJ1ZmZlcjtjb25zdCBfN2JpdD1lPT5yby5mcm9tKGUpLnRvU3RyaW5nKCJhc2NpaSIpO3ZhciBhbz1fX3dlYnBhY2tfcmVxdWlyZV9fKDE1OCkuQnVmZmVyO2NvbnN0IF84Yml0PWU9PmFvLmZyb20oZSkudG9TdHJpbmcoInV0ZjgiKTt2YXIgbm89X193ZWJwYWNrX3JlcXVpcmVfXygxNTgpLkJ1ZmZlcjtjb25zdCBiaW5hcnk9ZT0+bm8uZnJvbShlKS50b1N0cmluZygiYmluYXJ5IikscXVvdGVkX3ByaW50YWJsZT1lPT57bGV0IHQ9IiI7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspe2NvbnN0IGE9ZS5jaGFyQ29kZUF0KHIpO2lmKDYxPT09YSl0Kz0iPTNEIjtlbHNlIGlmKGE+PTMzJiZhPD02MHx8YT49NjImJmE8PTEyNnx8OT09PWF8fDMyPT09YSl0Kz1lLmNoYXJBdChyKTtlbHNlIGlmKDEzPT09YXx8MTA9PT1hKXQrPSJcclxuIjtlbHNlIGlmKGE+MTI2KXtjb25zdCBhPXVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChlLmNoYXJBdChyKSkpO2ZvcihsZXQgZT0wO2U8YS5sZW5ndGg7ZSsrKXQrPSI9IisoIjAiK2EuY2hhckNvZGVBdChlKS50b1N0cmluZygxNikpLnNsaWNlKC0yKS50b1VwcGVyQ2FzZSgpfWVsc2UgdCs9Ij0iKygiMCIrYS50b1N0cmluZygxNikpLnNsaWNlKC0yKS50b1VwcGVyQ2FzZSgpfXJldHVybiB0fTt2YXIgc289X193ZWJwYWNrX3JlcXVpcmVfXygxNTgpLkJ1ZmZlcjtjb25zdCBiYXNlMTY9ZT0+c28uZnJvbShlKS50b1N0cmluZygiaGV4Iik7dmFyIG9vPV9fd2VicGFja19yZXF1aXJlX18oMTU4KS5CdWZmZXI7Y29uc3QgYmFzZTMyPWU9Pntjb25zdCB0PW9vLmZyb20oZSkudG9TdHJpbmcoInV0ZjgiKSxyPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjIzNDU2NyI7bGV0IGE9MCxuPSIiLHM9MCxvPTA7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspZm9yKHM9czw8OHx0LmNoYXJDb2RlQXQoZSksbys9ODtvPj01OyluKz1yLmNoYXJBdChzPj4+by01JjMxKSxvLT01O28+MCYmKG4rPXIuY2hhckF0KHM8PDUtbyYzMSksYT0oOC04KnQubGVuZ3RoJTUpJTUpO2ZvcihsZXQgZT0wO2U8YTtlKyspbis9Ij0iO3JldHVybiBufTt2YXIgbG89X193ZWJwYWNrX3JlcXVpcmVfXygxNTgpLkJ1ZmZlcjtjb25zdCBiYXNlNjQ9ZT0+bG8uZnJvbShlKS50b1N0cmluZygiYmFzZTY0Iik7dmFyIGNvPV9fd2VicGFja19yZXF1aXJlX18oMTU4KS5CdWZmZXI7Y29uc3QgYmFzZTY0dXJsPWU9PmNvLmZyb20oZSkudG9TdHJpbmcoImJhc2U2NHVybCIpO2NvbnN0IGlvPW5ldyBjbGFzcyBFbmNvZGVyUmVnaXN0cnkgZXh0ZW5kcyBac3sjZT17IjdiaXQiOl83Yml0LCI4Yml0IjpfOGJpdCxiaW5hcnksInF1b3RlZC1wcmludGFibGUiOnF1b3RlZF9wcmludGFibGUsYmFzZTE2LGJhc2UzMixiYXNlNjQsYmFzZTY0dXJsfTtkYXRhPXsuLi50aGlzLiNlfTtnZXQgZGVmYXVsdHMoKXtyZXR1cm57Li4udGhpcy4jZX19fSxlbmNvZGVyQVBJPShlLHQpPT4iZnVuY3Rpb24iPT10eXBlb2YgdD9pby5yZWdpc3RlcihlLHQpOm51bGw9PT10P2lvLnVucmVnaXN0ZXIoZSk6aW8uZ2V0KGUpO2VuY29kZXJBUEkuZ2V0RGVmYXVsdHM9KCk9PmlvLmRlZmF1bHRzO2NvbnN0IHBvPWVuY29kZXJBUEksbW89eyJ0ZXh0L3BsYWluIjooKT0+InN0cmluZyIsInRleHQvY3NzIjooKT0+Ii5zZWxlY3RvciB7IGJvcmRlcjogMXB4IHNvbGlkIHJlZCB9IiwidGV4dC9jc3YiOigpPT4idmFsdWUxLHZhbHVlMix2YWx1ZTMiLCJ0ZXh0L2h0bWwiOigpPT4iPHA+Y29udGVudDwvcD4iLCJ0ZXh0L2NhbGVuZGFyIjooKT0+IkJFR0lOOlZDQUxFTkRBUiIsInRleHQvamF2YXNjcmlwdCI6KCk9PiJjb25zb2xlLmRpcignSGVsbG8gd29ybGQhJyk7IiwidGV4dC94bWwiOigpPT4nPHBlcnNvbiBhZ2U9IjMwIj5Kb2huIERvZTwvcGVyc29uPicsInRleHQvKiI6KCk9PiJzdHJpbmcifSx1bz17ImltYWdlLyoiOigpPT5ieXRlcygyNSkudG9TdHJpbmcoImJpbmFyeSIpfSxobz17ImF1ZGlvLyoiOigpPT5ieXRlcygyNSkudG9TdHJpbmcoImJpbmFyeSIpfSxnbz17InZpZGVvLyoiOigpPT5ieXRlcygyNSkudG9TdHJpbmcoImJpbmFyeSIpfSx5bz17ImFwcGxpY2F0aW9uL2pzb24iOigpPT4neyJrZXkiOiJ2YWx1ZSJ9JywiYXBwbGljYXRpb24vbGQranNvbiI6KCk9Pid7Im5hbWUiOiAiSm9obiBEb2UifScsImFwcGxpY2F0aW9uL3gtaHR0cGQtcGhwIjooKT0+Ijw/cGhwIGVjaG8gJzxwPkhlbGxvIFdvcmxkITwvcD4nOyA/PiIsImFwcGxpY2F0aW9uL3J0ZiI6KCk9PlN0cmluZy5yYXdge1xydGYxXGFkZWZsYW5nMTAyNVxhbnNpXGFuc2ljcGcxMjUyXHVjMWAsImFwcGxpY2F0aW9uL3gtc2giOigpPT4nZWNobyAiSGVsbG8gV29ybGQhIicsImFwcGxpY2F0aW9uL3hodG1sK3htbCI6KCk9PiI8cD5jb250ZW50PC9wPiIsImFwcGxpY2F0aW9uLyoiOigpPT5ieXRlcygyNSkudG9TdHJpbmcoImJpbmFyeSIpfTtjb25zdCBmbz1uZXcgY2xhc3MgTWVkaWFUeXBlUmVnaXN0cnkgZXh0ZW5kcyBac3sjZT17Li4ubW8sLi4udW8sLi4uaG8sLi4uZ28sLi4ueW99O2RhdGE9ey4uLnRoaXMuI2V9O2dldCBkZWZhdWx0cygpe3JldHVybnsuLi50aGlzLiNlfX19LG1lZGlhVHlwZUFQST0oZSx0KT0+e2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0KXJldHVybiBmby5yZWdpc3RlcihlLHQpO2lmKG51bGw9PT10KXJldHVybiBmby51bnJlZ2lzdGVyKGUpO2NvbnN0IHI9ZS5zcGxpdCgiOyIpLmF0KDApLGE9YCR7ci5zcGxpdCgiLyIpLmF0KDApfS8qYDtyZXR1cm4gZm8uZ2V0KGUpfHxmby5nZXQocil8fGZvLmdldChhKX07bWVkaWFUeXBlQVBJLmdldERlZmF1bHRzPSgpPT5mby5kZWZhdWx0cztjb25zdCBTbz1tZWRpYVR5cGVBUEksYXBwbHlTdHJpbmdDb25zdHJhaW50cz0oZSx0PXt9KT0+e2NvbnN0e21heExlbmd0aDpyLG1pbkxlbmd0aDphfT10O2xldCBuPWU7aWYoTnVtYmVyLmlzSW50ZWdlcihyKSYmcj4wJiYobj1uLnNsaWNlKDAscikpLE51bWJlci5pc0ludGVnZXIoYSkmJmE+MCl7bGV0IGU9MDtmb3IoO24ubGVuZ3RoPGE7KW4rPW5bZSsrJW4ubGVuZ3RoXX1yZXR1cm4gbn0sdHlwZXNfc3RyaW5nPShlLHtzYW1wbGU6dH09e30pPT57Y29uc3R7Y29udGVudEVuY29kaW5nOnIsY29udGVudE1lZGlhVHlwZTphLGNvbnRlbnRTY2hlbWE6bn09ZSx7cGF0dGVybjpzLGZvcm1hdDpvfT1lLGw9cG8ocil8fG1hKCk7bGV0IGM7cmV0dXJuIGM9InN0cmluZyI9PXR5cGVvZiBzP2FwcGx5U3RyaW5nQ29uc3RyYWludHMoKGU9Pnt0cnl7Y29uc3QgdD0vKD88PSg/PCFcXClceykoXGR7Myx9KSg/PVx9KXwoPzw9KD88IVxcKVx7XGQqLCkoXGR7Myx9KSg/PVx9KXwoPzw9KD88IVxcKVx7KShcZHszLH0pKD89LFxkKlx9KS9nLHI9ZS5yZXBsYWNlKHQsIjEwMCIpLGE9bmV3KE90KCkpKHIpO3JldHVybiBhLm1heD0xMDAsYS5nZW4oKX1jYXRjaHtyZXR1cm4ic3RyaW5nIn19KShzKSxlKToic3RyaW5nIj09dHlwZW9mIG8/KGU9Pntjb25zdHtmb3JtYXQ6dH09ZSxyPXRvKHQpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiByP3IoZSk6InN0cmluZyJ9KShlKTppc0pTT05TY2hlbWEobikmJiJzdHJpbmciPT10eXBlb2YgYSYmdm9pZCAwIT09dD9BcnJheS5pc0FycmF5KHQpfHwib2JqZWN0Ij09dHlwZW9mIHQ/SlNPTi5zdHJpbmdpZnkodCk6YXBwbHlTdHJpbmdDb25zdHJhaW50cyhTdHJpbmcodCksZSk6InN0cmluZyI9PXR5cGVvZiBhPyhlPT57Y29uc3R7Y29udGVudE1lZGlhVHlwZTp0fT1lLHI9U28odCk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHI/cihlKToic3RyaW5nIn0pKGUpOmFwcGx5U3RyaW5nQ29uc3RyYWludHMoInN0cmluZyIsZSksbChjKX0sYXBwbHlOdW1iZXJDb25zdHJhaW50cz0oZSx0PXt9KT0+e2NvbnN0e21pbmltdW06cixtYXhpbXVtOmEsZXhjbHVzaXZlTWluaW11bTpuLGV4Y2x1c2l2ZU1heGltdW06c309dCx7bXVsdGlwbGVPZjpvfT10LGw9TnVtYmVyLmlzSW50ZWdlcihlKT8xOk51bWJlci5FUFNJTE9OO2xldCBjPSJudW1iZXIiPT10eXBlb2Ygcj9yOm51bGwsaT0ibnVtYmVyIj09dHlwZW9mIGE/YTpudWxsLHA9ZTtpZigibnVtYmVyIj09dHlwZW9mIG4mJihjPW51bGwhPT1jP01hdGgubWF4KGMsbitsKTpuK2wpLCJudW1iZXIiPT10eXBlb2YgcyYmKGk9bnVsbCE9PWk/TWF0aC5taW4oaSxzLWwpOnMtbCkscD1jPmkmJmV8fGN8fGl8fHAsIm51bWJlciI9PXR5cGVvZiBvJiZvPjApe2NvbnN0IGU9cCVvO3A9MD09PWU/cDpwK28tZX1yZXR1cm4gcH0sdHlwZXNfbnVtYmVyPWU9Pntjb25zdHtmb3JtYXQ6dH09ZTtsZXQgcjtyZXR1cm4gcj0ic3RyaW5nIj09dHlwZW9mIHQ/KGU9Pntjb25zdHtmb3JtYXQ6dH09ZSxyPXRvKHQpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiByP3IoZSk6MH0pKGUpOjAsYXBwbHlOdW1iZXJDb25zdHJhaW50cyhyLGUpfSx0eXBlc19pbnRlZ2VyPWU9Pntjb25zdHtmb3JtYXQ6dH09ZTtsZXQgcjtyZXR1cm4gcj0ic3RyaW5nIj09dHlwZW9mIHQ/KGU9Pntjb25zdHtmb3JtYXQ6dH09ZSxyPXRvKHQpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiByKXJldHVybiByKGUpO3N3aXRjaCh0KXtjYXNlImludDMyIjpyZXR1cm4gaW50MzIoKTtjYXNlImludDY0IjpyZXR1cm4gaW50NjQoKX1yZXR1cm4gMH0pKGUpOjAsYXBwbHlOdW1iZXJDb25zdHJhaW50cyhyLGUpfSx0eXBlc19ib29sZWFuPWU9PiJib29sZWFuIiE9dHlwZW9mIGUuZGVmYXVsdHx8ZS5kZWZhdWx0LEVvPW5ldyBQcm94eSh7YXJyYXksb2JqZWN0LHN0cmluZzp0eXBlc19zdHJpbmcsbnVtYmVyOnR5cGVzX251bWJlcixpbnRlZ2VyOnR5cGVzX2ludGVnZXIsYm9vbGVhbjp0eXBlc19ib29sZWFuLG51bGw6KCk9Pm51bGx9LHtnZXQ6KGUsdCk9PiJzdHJpbmciPT10eXBlb2YgdCYmT2JqZWN0Lmhhc093bihlLHQpP2VbdF06KCk9PmBVbmtub3duIFR5cGU6ICR7dH1gfSksX289WyJhcnJheSIsIm9iamVjdCIsIm51bWJlciIsImludGVnZXIiLCJzdHJpbmciLCJib29sZWFuIiwibnVsbCJdLGhhc0V4YW1wbGU9ZT0+e2lmKCFpc0pTT05TY2hlbWFPYmplY3QoZSkpcmV0dXJuITE7Y29uc3R7ZXhhbXBsZXM6dCxleGFtcGxlOnIsZGVmYXVsdDphfT1lO3JldHVybiEhKEFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoPj0xKXx8KHZvaWQgMCE9PWF8fHZvaWQgMCE9PXIpfSxleHRyYWN0RXhhbXBsZT1lPT57aWYoIWlzSlNPTlNjaGVtYU9iamVjdChlKSlyZXR1cm4gbnVsbDtjb25zdHtleGFtcGxlczp0LGV4YW1wbGU6cixkZWZhdWx0OmF9PWU7cmV0dXJuIEFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoPj0xP3QuYXQoMCk6dm9pZCAwIT09YT9hOnZvaWQgMCE9PXI/cjp2b2lkIDB9LHZvPXthcnJheTpbIml0ZW1zIiwicHJlZml4SXRlbXMiLCJjb250YWlucyIsIm1heENvbnRhaW5zIiwibWluQ29udGFpbnMiLCJtYXhJdGVtcyIsIm1pbkl0ZW1zIiwidW5pcXVlSXRlbXMiLCJ1bmV2YWx1YXRlZEl0ZW1zIl0sb2JqZWN0OlsicHJvcGVydGllcyIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwicGF0dGVyblByb3BlcnRpZXMiLCJwcm9wZXJ0eU5hbWVzIiwibWluUHJvcGVydGllcyIsIm1heFByb3BlcnRpZXMiLCJyZXF1aXJlZCIsImRlcGVuZGVudFNjaGVtYXMiLCJkZXBlbmRlbnRSZXF1aXJlZCIsInVuZXZhbHVhdGVkUHJvcGVydGllcyJdLHN0cmluZzpbInBhdHRlcm4iLCJmb3JtYXQiLCJtaW5MZW5ndGgiLCJtYXhMZW5ndGgiLCJjb250ZW50RW5jb2RpbmciLCJjb250ZW50TWVkaWFUeXBlIiwiY29udGVudFNjaGVtYSJdLGludGVnZXI6WyJtaW5pbXVtIiwibWF4aW11bSIsImV4Y2x1c2l2ZU1pbmltdW0iLCJleGNsdXNpdmVNYXhpbXVtIiwibXVsdGlwbGVPZiJdfTt2by5udW1iZXI9dm8uaW50ZWdlcjtjb25zdCB3bz0ic3RyaW5nIixpbmZlclR5cGVGcm9tVmFsdWU9ZT0+dm9pZCAwPT09ZT9udWxsOm51bGw9PT1lPyJudWxsIjpBcnJheS5pc0FycmF5KGUpPyJhcnJheSI6TnVtYmVyLmlzSW50ZWdlcihlKT8iaW50ZWdlciI6dHlwZW9mIGUsZm9sZFR5cGU9ZT0+e2lmKEFycmF5LmlzQXJyYXkoZSkmJmUubGVuZ3RoPj0xKXtpZihlLmluY2x1ZGVzKCJhcnJheSIpKXJldHVybiJhcnJheSI7aWYoZS5pbmNsdWRlcygib2JqZWN0IikpcmV0dXJuIm9iamVjdCI7e2NvbnN0IHQ9ZS5maWx0ZXIoKGU9PiJudWxsIiE9PWUpKSxyPXBpY2sodC5sZW5ndGg+MD90OmUpO2lmKF9vLmluY2x1ZGVzKHIpKXJldHVybiByfX1yZXR1cm4gX28uaW5jbHVkZXMoZSk/ZTpudWxsfSxpbmZlclR5cGU9KGUsdD1uZXcgV2Vha1NldCk9PntpZighaXNKU09OU2NoZW1hT2JqZWN0KGUpKXJldHVybiB3bztpZih0LmhhcyhlKSlyZXR1cm4gd287dC5hZGQoZSk7bGV0e3R5cGU6cixjb25zdDphfT1lO2lmKHI9Zm9sZFR5cGUociksInN0cmluZyIhPXR5cGVvZiByKXtjb25zdCB0PU9iamVjdC5rZXlzKHZvKTtlOmZvcihsZXQgYT0wO2E8dC5sZW5ndGg7YSs9MSl7Y29uc3Qgbj10W2FdLHM9dm9bbl07Zm9yKGxldCB0PTA7dDxzLmxlbmd0aDt0Kz0xKXtjb25zdCBhPXNbdF07aWYoT2JqZWN0Lmhhc093bihlLGEpKXtyPW47YnJlYWsgZX19fX1pZigic3RyaW5nIiE9dHlwZW9mIHImJnZvaWQgMCE9PWEpe2NvbnN0IGU9aW5mZXJUeXBlRnJvbVZhbHVlKGEpO3I9InN0cmluZyI9PXR5cGVvZiBlP2U6cn1pZigic3RyaW5nIiE9dHlwZW9mIHIpe2NvbnN0IGNvbWJpbmVUeXBlcz1yPT57aWYoQXJyYXkuaXNBcnJheShlW3JdKSl7Y29uc3QgYT1lW3JdLm1hcCgoZT0+aW5mZXJUeXBlKGUsdCkpKTtyZXR1cm4gZm9sZFR5cGUoYSl9cmV0dXJuIG51bGx9LGE9Y29tYmluZVR5cGVzKCJhbGxPZiIpLG49Y29tYmluZVR5cGVzKCJhbnlPZiIpLHM9Y29tYmluZVR5cGVzKCJvbmVPZiIpLG89ZS5ub3Q/aW5mZXJUeXBlKGUubm90LHQpOm51bGw7KGF8fG58fHN8fG8pJiYocj1mb2xkVHlwZShbYSxuLHMsb10uZmlsdGVyKEJvb2xlYW4pKSl9aWYoInN0cmluZyIhPXR5cGVvZiByJiZoYXNFeGFtcGxlKGUpKXtjb25zdCB0PWV4dHJhY3RFeGFtcGxlKGUpLGE9aW5mZXJUeXBlRnJvbVZhbHVlKHQpO3I9InN0cmluZyI9PXR5cGVvZiBhP2E6cn1yZXR1cm4gdC5kZWxldGUoZSkscnx8d299LHR5cGVfZ2V0VHlwZT1lPT5pbmZlclR5cGUoZSksdHlwZUNhc3Q9ZT0+cHJlZGljYXRlc19pc0Jvb2xlYW5KU09OU2NoZW1hKGUpPyhlPT4hMT09PWU/e25vdDp7fX06e30pKGUpOmlzSlNPTlNjaGVtYU9iamVjdChlKT9lOnt9LG1lcmdlPShlLHQscj17fSk9PntpZihwcmVkaWNhdGVzX2lzQm9vbGVhbkpTT05TY2hlbWEoZSkmJiEwPT09ZSlyZXR1cm4hMDtpZihwcmVkaWNhdGVzX2lzQm9vbGVhbkpTT05TY2hlbWEoZSkmJiExPT09ZSlyZXR1cm4hMTtpZihwcmVkaWNhdGVzX2lzQm9vbGVhbkpTT05TY2hlbWEodCkmJiEwPT09dClyZXR1cm4hMDtpZihwcmVkaWNhdGVzX2lzQm9vbGVhbkpTT05TY2hlbWEodCkmJiExPT09dClyZXR1cm4hMTtpZighaXNKU09OU2NoZW1hKGUpKXJldHVybiB0O2lmKCFpc0pTT05TY2hlbWEodCkpcmV0dXJuIGU7Y29uc3QgYT17Li4udCwuLi5lfTtpZih0LnR5cGUmJmUudHlwZSYmQXJyYXkuaXNBcnJheSh0LnR5cGUpJiYic3RyaW5nIj09dHlwZW9mIHQudHlwZSl7Y29uc3Qgcj1ub3JtYWxpemVBcnJheSh0LnR5cGUpLmNvbmNhdChlLnR5cGUpO2EudHlwZT1BcnJheS5mcm9tKG5ldyBTZXQocikpfWlmKEFycmF5LmlzQXJyYXkodC5yZXF1aXJlZCkmJkFycmF5LmlzQXJyYXkoZS5yZXF1aXJlZCkmJihhLnJlcXVpcmVkPVsuLi5uZXcgU2V0KFsuLi5lLnJlcXVpcmVkLC4uLnQucmVxdWlyZWRdKV0pLHQucHJvcGVydGllcyYmZS5wcm9wZXJ0aWVzKXtjb25zdCBuPW5ldyBTZXQoWy4uLk9iamVjdC5rZXlzKHQucHJvcGVydGllcyksLi4uT2JqZWN0LmtleXMoZS5wcm9wZXJ0aWVzKV0pO2EucHJvcGVydGllcz17fTtmb3IoY29uc3QgcyBvZiBuKXtjb25zdCBuPXQucHJvcGVydGllc1tzXXx8e30sbz1lLnByb3BlcnRpZXNbc118fHt9O24ucmVhZE9ubHkmJiFyLmluY2x1ZGVSZWFkT25seXx8bi53cml0ZU9ubHkmJiFyLmluY2x1ZGVXcml0ZU9ubHk/YS5yZXF1aXJlZD0oYS5yZXF1aXJlZHx8W10pLmZpbHRlcigoZT0+ZSE9PXMpKTphLnByb3BlcnRpZXNbc109bWVyZ2UobyxuLHIpfX1yZXR1cm4gaXNKU09OU2NoZW1hKHQuaXRlbXMpJiZpc0pTT05TY2hlbWEoZS5pdGVtcykmJihhLml0ZW1zPW1lcmdlKGUuaXRlbXMsdC5pdGVtcyxyKSksaXNKU09OU2NoZW1hKHQuY29udGFpbnMpJiZpc0pTT05TY2hlbWEoZS5jb250YWlucykmJihhLmNvbnRhaW5zPW1lcmdlKGUuY29udGFpbnMsdC5jb250YWlucyxyKSksaXNKU09OU2NoZW1hKHQuY29udGVudFNjaGVtYSkmJmlzSlNPTlNjaGVtYShlLmNvbnRlbnRTY2hlbWEpJiYoYS5jb250ZW50U2NoZW1hPW1lcmdlKGUuY29udGVudFNjaGVtYSx0LmNvbnRlbnRTY2hlbWEscikpLGF9LGJvPW1lcmdlLG1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWM9KGUsdD17fSxyPXZvaWQgMCxhPSExKT0+e2lmKG51bGw9PWUmJnZvaWQgMD09PXIpcmV0dXJuOyJmdW5jdGlvbiI9PXR5cGVvZiBlPy50b0pTJiYoZT1lLnRvSlMoKSksZT10eXBlQ2FzdChlKTtsZXQgbj12b2lkIDAhPT1yfHxoYXNFeGFtcGxlKGUpO2NvbnN0IHM9IW4mJkFycmF5LmlzQXJyYXkoZS5vbmVPZikmJmUub25lT2YubGVuZ3RoPjAsbz0hbiYmQXJyYXkuaXNBcnJheShlLmFueU9mKSYmZS5hbnlPZi5sZW5ndGg+MDtpZighbiYmKHN8fG8pKXtjb25zdCByPXR5cGVDYXN0KHBpY2socz9lLm9uZU9mOmUuYW55T2YpKTshKGU9Ym8oZSxyLHQpKS54bWwmJnIueG1sJiYoZS54bWw9ci54bWwpLGhhc0V4YW1wbGUoZSkmJmhhc0V4YW1wbGUocikmJihuPSEwKX1jb25zdCBsPXt9O2xldHt4bWw6Yyxwcm9wZXJ0aWVzOmksYWRkaXRpb25hbFByb3BlcnRpZXM6cCxpdGVtczptLGNvbnRhaW5zOnV9PWV8fHt9LGQ9dHlwZV9nZXRUeXBlKGUpLHtpbmNsdWRlUmVhZE9ubHk6aCxpbmNsdWRlV3JpdGVPbmx5Omd9PXQ7Yz1jfHx7fTtsZXQgeSx7bmFtZTpmLHByZWZpeDpTLG5hbWVzcGFjZTpFfT1jLF89e307aWYoT2JqZWN0Lmhhc093bihlLCJ0eXBlIil8fChlLnR5cGU9ZCksYSYmKGY9Znx8Im5vdGFnbmFtZSIseT0oUz9gJHtTfTpgOiIiKStmLEUpKXtsW1M/YHhtbG5zOiR7U31gOiJ4bWxucyJdPUV9YSYmKF9beV09W10pO2NvbnN0IHY9b2JqZWN0aWZ5KGkpO2xldCB3LGI9MDtjb25zdCBoYXNFeGNlZWRlZE1heFByb3BlcnRpZXM9KCk9Pk51bWJlci5pc0ludGVnZXIoZS5tYXhQcm9wZXJ0aWVzKSYmZS5tYXhQcm9wZXJ0aWVzPjAmJmI+PWUubWF4UHJvcGVydGllcyxjYW5BZGRQcm9wZXJ0eT10PT4hKE51bWJlci5pc0ludGVnZXIoZS5tYXhQcm9wZXJ0aWVzKSYmZS5tYXhQcm9wZXJ0aWVzPjApfHwhaGFzRXhjZWVkZWRNYXhQcm9wZXJ0aWVzKCkmJighKHQ9PiFBcnJheS5pc0FycmF5KGUucmVxdWlyZWQpfHwwPT09ZS5yZXF1aXJlZC5sZW5ndGh8fCFlLnJlcXVpcmVkLmluY2x1ZGVzKHQpKSh0KXx8ZS5tYXhQcm9wZXJ0aWVzLWItKCgpPT57aWYoIUFycmF5LmlzQXJyYXkoZS5yZXF1aXJlZCl8fDA9PT1lLnJlcXVpcmVkLmxlbmd0aClyZXR1cm4gMDtsZXQgdD0wO3JldHVybiBhP2UucmVxdWlyZWQuZm9yRWFjaCgoZT0+dCs9dm9pZCAwPT09X1tlXT8wOjEpKTplLnJlcXVpcmVkLmZvckVhY2goKGU9Pnt0Kz12b2lkIDA9PT1fW3ldPy5maW5kKCh0PT52b2lkIDAhPT10W2VdKSk/MDoxfSkpLGUucmVxdWlyZWQubGVuZ3RoLXR9KSgpPjApO2lmKHc9YT8ocixuPXZvaWQgMCk9PntpZihlJiZ2W3JdKXtpZih2W3JdLnhtbD12W3JdLnhtbHx8e30sdltyXS54bWwuYXR0cmlidXRlKXtjb25zdCBlPUFycmF5LmlzQXJyYXkodltyXS5lbnVtKT9waWNrKHZbcl0uZW51bSk6dm9pZCAwO2lmKGhhc0V4YW1wbGUodltyXSkpbFt2W3JdLnhtbC5uYW1lfHxyXT1leHRyYWN0RXhhbXBsZSh2W3JdKTtlbHNlIGlmKHZvaWQgMCE9PWUpbFt2W3JdLnhtbC5uYW1lfHxyXT1lO2Vsc2V7Y29uc3QgZT10eXBlQ2FzdCh2W3JdKSxhPXR5cGVfZ2V0VHlwZShlKSxzPXZbcl0ueG1sLm5hbWV8fHI7aWYoImFycmF5Ij09PWEpe2NvbnN0IGU9bWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyh2W3JdLHQsbiwhMSk7bFtzXT1lLm1hcCgoZT0+d3QoKShlKT8iVW5rbm93blR5cGVPYmplY3QiOkFycmF5LmlzQXJyYXkoZSk/IlVua25vd25UeXBlQXJyYXkiOmUpKS5qb2luKCIgIil9ZWxzZSBsW3NdPSJvYmplY3QiPT09YT8iVW5rbm93blR5cGVPYmplY3QiOkVvW2FdKGUpfXJldHVybn12W3JdLnhtbC5uYW1lPXZbcl0ueG1sLm5hbWV8fHJ9ZWxzZSB2W3JdfHwhMT09PXB8fCh2W3JdPXt4bWw6e25hbWU6cn19KTtsZXQgcz1tYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKHZbcl0sdCxuLGEpO2NhbkFkZFByb3BlcnR5KHIpJiYoYisrLEFycmF5LmlzQXJyYXkocyk/X1t5XT1fW3ldLmNvbmNhdChzKTpfW3ldLnB1c2gocykpfToocixuKT0+e2lmKGNhbkFkZFByb3BlcnR5KHIpKXtpZih3dCgpKGUuZGlzY3JpbWluYXRvcj8ubWFwcGluZykmJmUuZGlzY3JpbWluYXRvci5wcm9wZXJ0eU5hbWU9PT1yJiYic3RyaW5nIj09dHlwZW9mIGUuJCRyZWYpe2Zvcihjb25zdCB0IGluIGUuZGlzY3JpbWluYXRvci5tYXBwaW5nKWlmKC0xIT09ZS4kJHJlZi5zZWFyY2goZS5kaXNjcmltaW5hdG9yLm1hcHBpbmdbdF0pKXtfW3JdPXQ7YnJlYWt9fWVsc2UgX1tyXT1tYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKHZbcl0sdCxuLGEpO2IrK319LG4pe2xldCBuO2lmKG49dm9pZCAwIT09cj9yOmV4dHJhY3RFeGFtcGxlKGUpLCFhKXtpZigibnVtYmVyIj09dHlwZW9mIG4mJiJzdHJpbmciPT09ZClyZXR1cm5gJHtufWA7aWYoInN0cmluZyIhPXR5cGVvZiBufHwic3RyaW5nIj09PWQpcmV0dXJuIG47dHJ5e3JldHVybiBKU09OLnBhcnNlKG4pfWNhdGNoe3JldHVybiBufX1pZigiYXJyYXkiPT09ZCl7aWYoIUFycmF5LmlzQXJyYXkobikpe2lmKCJzdHJpbmciPT10eXBlb2YgbilyZXR1cm4gbjtuPVtuXX1sZXQgcj1bXTtyZXR1cm4gaXNKU09OU2NoZW1hT2JqZWN0KG0pJiYobS54bWw9bS54bWx8fGN8fHt9LG0ueG1sLm5hbWU9bS54bWwubmFtZXx8Yy5uYW1lLHI9bi5tYXAoKGU9Pm1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMobSx0LGUsYSkpKSksaXNKU09OU2NoZW1hT2JqZWN0KHUpJiYodS54bWw9dS54bWx8fGN8fHt9LHUueG1sLm5hbWU9dS54bWwubmFtZXx8Yy5uYW1lLHI9W21haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWModSx0LHZvaWQgMCxhKSwuLi5yXSkscj1Fby5hcnJheShlLHtzYW1wbGU6cn0pLGMud3JhcHBlZD8oX1t5XT1yLGt0KCkobCl8fF9beV0ucHVzaCh7X2F0dHI6bH0pKTpfPXIsX31pZigib2JqZWN0Ij09PWQpe2lmKCJzdHJpbmciPT10eXBlb2YgbilyZXR1cm4gbjtmb3IoY29uc3QgZSBpbiBuKU9iamVjdC5oYXNPd24obixlKSYmKHZbZV0/LnJlYWRPbmx5JiYhaHx8dltlXT8ud3JpdGVPbmx5JiYhZ3x8KHZbZV0/LnhtbD8uYXR0cmlidXRlP2xbdltlXS54bWwubmFtZXx8ZV09bltlXTp3KGUsbltlXSkpKTtyZXR1cm4ga3QoKShsKXx8X1t5XS5wdXNoKHtfYXR0cjpsfSksX31yZXR1cm4gX1t5XT1rdCgpKGwpP246W3tfYXR0cjpsfSxuXSxffWlmKCJhcnJheSI9PT1kKXtsZXQgcj1bXTtpZihpc0pTT05TY2hlbWFPYmplY3QodSkpaWYoYSYmKHUueG1sPXUueG1sfHxlLnhtbHx8e30sdS54bWwubmFtZT11LnhtbC5uYW1lfHxjLm5hbWUpLEFycmF5LmlzQXJyYXkodS5hbnlPZikpe2NvbnN0e2FueU9mOmUsLi4ubn09bTtyLnB1c2goLi4udS5hbnlPZi5tYXAoKGU9Pm1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoYm8oZSxuLHQpLHQsdm9pZCAwLGEpKSkpfWVsc2UgaWYoQXJyYXkuaXNBcnJheSh1Lm9uZU9mKSl7Y29uc3R7b25lT2Y6ZSwuLi5ufT1tO3IucHVzaCguLi51Lm9uZU9mLm1hcCgoZT0+bWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhibyhlLG4sdCksdCx2b2lkIDAsYSkpKSl9ZWxzZXtpZighKCFhfHxhJiZjLndyYXBwZWQpKXJldHVybiBtYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKHUsdCx2b2lkIDAsYSk7ci5wdXNoKG1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWModSx0LHZvaWQgMCxhKSl9aWYoaXNKU09OU2NoZW1hT2JqZWN0KG0pKWlmKGEmJihtLnhtbD1tLnhtbHx8ZS54bWx8fHt9LG0ueG1sLm5hbWU9bS54bWwubmFtZXx8Yy5uYW1lKSxBcnJheS5pc0FycmF5KG0uYW55T2YpKXtjb25zdHthbnlPZjplLC4uLm59PW07ci5wdXNoKC4uLm0uYW55T2YubWFwKChlPT5tYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKGJvKGUsbix0KSx0LHZvaWQgMCxhKSkpKX1lbHNlIGlmKEFycmF5LmlzQXJyYXkobS5vbmVPZikpe2NvbnN0e29uZU9mOmUsLi4ubn09bTtyLnB1c2goLi4ubS5vbmVPZi5tYXAoKGU9Pm1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoYm8oZSxuLHQpLHQsdm9pZCAwLGEpKSkpfWVsc2V7aWYoISghYXx8YSYmYy53cmFwcGVkKSlyZXR1cm4gbWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhtLHQsdm9pZCAwLGEpO3IucHVzaChtYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKG0sdCx2b2lkIDAsYSkpfXJldHVybiByPUVvLmFycmF5KGUse3NhbXBsZTpyfSksYSYmYy53cmFwcGVkPyhfW3ldPXIsa3QoKShsKXx8X1t5XS5wdXNoKHtfYXR0cjpsfSksXyk6cn1pZigib2JqZWN0Ij09PWQpe2ZvcihsZXQgZSBpbiB2KU9iamVjdC5oYXNPd24odixlKSYmKHZbZV0/LmRlcHJlY2F0ZWR8fHZbZV0/LnJlYWRPbmx5JiYhaHx8dltlXT8ud3JpdGVPbmx5JiYhZ3x8dyhlKSk7aWYoYSYmbCYmX1t5XS5wdXNoKHtfYXR0cjpsfSksaGFzRXhjZWVkZWRNYXhQcm9wZXJ0aWVzKCkpcmV0dXJuIF87aWYocHJlZGljYXRlc19pc0Jvb2xlYW5KU09OU2NoZW1hKHApJiZwKWE/X1t5XS5wdXNoKHthZGRpdGlvbmFsUHJvcDoiQW55dGhpbmcgY2FuIGJlIGhlcmUifSk6Xy5hZGRpdGlvbmFsUHJvcDE9e30sYisrO2Vsc2UgaWYoaXNKU09OU2NoZW1hT2JqZWN0KHApKXtjb25zdCByPXAsbj1tYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKHIsdCx2b2lkIDAsYSk7aWYoYSYmInN0cmluZyI9PXR5cGVvZiByPy54bWw/Lm5hbWUmJiJub3RhZ25hbWUiIT09cj8ueG1sPy5uYW1lKV9beV0ucHVzaChuKTtlbHNle2NvbnN0IHQ9TnVtYmVyLmlzSW50ZWdlcihlLm1pblByb3BlcnRpZXMpJiZlLm1pblByb3BlcnRpZXM+MCYmYjxlLm1pblByb3BlcnRpZXM/ZS5taW5Qcm9wZXJ0aWVzLWI6Mztmb3IobGV0IGU9MTtlPD10O2UrKyl7aWYoaGFzRXhjZWVkZWRNYXhQcm9wZXJ0aWVzKCkpcmV0dXJuIF87aWYoYSl7Y29uc3QgdD17fTt0WyJhZGRpdGlvbmFsUHJvcCIrZV09bi5ub3RhZ25hbWUsX1t5XS5wdXNoKHQpfWVsc2UgX1siYWRkaXRpb25hbFByb3AiK2VdPW47YisrfX19cmV0dXJuIF99bGV0IEM7aWYodm9pZCAwIT09ZS5jb25zdClDPWUuY29uc3Q7ZWxzZSBpZihlJiZBcnJheS5pc0FycmF5KGUuZW51bSkpQz1waWNrKG5vcm1hbGl6ZUFycmF5KGUuZW51bSkpO2Vsc2V7Y29uc3Qgcj1pc0pTT05TY2hlbWFPYmplY3QoZS5jb250ZW50U2NoZW1hKT9tYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKGUuY29udGVudFNjaGVtYSx0LHZvaWQgMCxhKTp2b2lkIDA7Qz1Fb1tkXShlLHtzYW1wbGU6cn0pfXJldHVybiBhPyhfW3ldPWt0KCkobCk/Qzpbe19hdHRyOmx9LENdLF8pOkN9LG1haW5fY3JlYXRlWE1MRXhhbXBsZT0oZSx0LHIpPT57Y29uc3QgYT1tYWluX3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKGUsdCxyLCEwKTtpZihhKXJldHVybiJzdHJpbmciPT10eXBlb2YgYT9hOkN0KCkoYSx7ZGVjbGFyYXRpb246ITAsaW5kZW50OiJcdCJ9KX0sbWFpbl9zYW1wbGVGcm9tU2NoZW1hPShlLHQscik9Pm1haW5fc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoZSx0LHIsITEpLG1haW5fcmVzb2x2ZXI9KGUsdCxyKT0+W2UsSlNPTi5zdHJpbmdpZnkodCksSlNPTi5zdHJpbmdpZnkocildLENvPXV0aWxzX21lbW9pemVOKG1haW5fY3JlYXRlWE1MRXhhbXBsZSxtYWluX3Jlc29sdmVyKSx4bz11dGlsc19tZW1vaXplTihtYWluX3NhbXBsZUZyb21TY2hlbWEsbWFpbl9yZXNvbHZlcik7Y29uc3QgT289bmV3IGNsYXNzIE9wdGlvblJlZ2lzdHJ5IGV4dGVuZHMgWnN7I2U9e307ZGF0YT17Li4udGhpcy4jZX07Z2V0IGRlZmF1bHRzKCl7cmV0dXJuey4uLnRoaXMuI2V9fX0sYXBpX29wdGlvbkFQST0oZSx0KT0+KHZvaWQgMCE9PXQmJk9vLnJlZ2lzdGVyKGUsdCksT28uZ2V0KGUpKSxObz1be3doZW46L2pzb24vLHNob3VsZFN0cmluZ2lmeVR5cGVzOlsic3RyaW5nIl19XSxrbz1bIm9iamVjdCJdLGZuX2dldF9qc29uX3NhbXBsZV9zY2hlbWE9ZT0+KHQscixhLG4pPT57Y29uc3R7Zm46c309ZSgpLG89cy5qc29uU2NoZW1hMjAyMDEyLm1lbW9pemVkU2FtcGxlRnJvbVNjaGVtYSh0LHIsbiksbD10eXBlb2YgbyxjPU5vLnJlZHVjZSgoKGUsdCk9PnQud2hlbi50ZXN0KGEpP1suLi5lLC4uLnQuc2hvdWxkU3RyaW5naWZ5VHlwZXNdOmUpLGtvKTtyZXR1cm4gWCgpKGMsKGU9PmU9PT1sKSk/SlNPTi5zdHJpbmdpZnkobyxudWxsLDIpOm99LGZuX2dldF95YW1sX3NhbXBsZV9zY2hlbWE9ZT0+KHQscixhLG4pPT57Y29uc3R7Zm46c309ZSgpLG89cy5qc29uU2NoZW1hMjAyMDEyLmdldEpzb25TYW1wbGVTY2hlbWEodCxyLGEsbik7bGV0IGw7dHJ5e2w9cWUoKS5kdW1wKHFlKCkubG9hZChvKSx7bGluZVdpZHRoOi0xfSx7c2NoZW1hOmplLkpTT05fU0NIRU1BfSksIlxuIj09PWxbbC5sZW5ndGgtMV0mJihsPWwuc2xpY2UoMCxsLmxlbmd0aC0xKSl9Y2F0Y2goZSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoZSksImVycm9yOiBjb3VsZCBub3QgZ2VuZXJhdGUgeWFtbCBleGFtcGxlIn1yZXR1cm4gbC5yZXBsYWNlKC9cdC9nLCIgICIpfSxmbl9nZXRfeG1sX3NhbXBsZV9zY2hlbWE9ZT0+KHQscixhKT0+e2NvbnN0e2ZuOm59PWUoKTtpZih0JiYhdC54bWwmJih0LnhtbD17fSksdCYmIXQueG1sLm5hbWUpe2lmKCF0LiQkcmVmJiYodC50eXBlfHx0Lml0ZW1zfHx0LnByb3BlcnRpZXN8fHQuYWRkaXRpb25hbFByb3BlcnRpZXMpKXJldHVybic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PlxuXHgzYyEtLSBYTUwgZXhhbXBsZSBjYW5ub3QgYmUgZ2VuZXJhdGVkOyByb290IGVsZW1lbnQgbmFtZSBpcyB1bmRlZmluZWQgLS1ceDNlJztpZih0LiQkcmVmKXtsZXQgZT10LiQkcmVmLm1hdGNoKC9cUypcLyhcUyspJC8pO3QueG1sLm5hbWU9ZVsxXX19cmV0dXJuIG4uanNvblNjaGVtYTIwMjAxMi5tZW1vaXplZENyZWF0ZVhNTEV4YW1wbGUodCxyLGEpfSxmbl9nZXRfc2FtcGxlX3NjaGVtYT1lPT4odCxyPSIiLGE9e30sbj12b2lkIDApPT57Y29uc3R7Zm46c309ZSgpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0Py50b0pTJiYodD10LnRvSlMoKSksImZ1bmN0aW9uIj09dHlwZW9mIG4/LnRvSlMmJihuPW4udG9KUygpKSwveG1sLy50ZXN0KHIpP3MuanNvblNjaGVtYTIwMjAxMi5nZXRYbWxTYW1wbGVTY2hlbWEodCxhLG4pOi8oeWFtbHx5bWwpLy50ZXN0KHIpP3MuanNvblNjaGVtYTIwMjAxMi5nZXRZYW1sU2FtcGxlU2NoZW1hKHQsYSxyLG4pOnMuanNvblNjaGVtYTIwMjAxMi5nZXRKc29uU2FtcGxlU2NoZW1hKHQsYSxyLG4pfSxqc29uX3NjaGVtYV8yMDIwXzEyX3NhbXBsZXM9KHtnZXRTeXN0ZW06ZX0pPT57Y29uc3QgdD1mbl9nZXRfanNvbl9zYW1wbGVfc2NoZW1hKGUpLHI9Zm5fZ2V0X3lhbWxfc2FtcGxlX3NjaGVtYShlKSxhPWZuX2dldF94bWxfc2FtcGxlX3NjaGVtYShlKSxuPWZuX2dldF9zYW1wbGVfc2NoZW1hKGUpO3JldHVybntmbjp7anNvblNjaGVtYTIwMjAxMjp7c2FtcGxlRnJvbVNjaGVtYTptYWluX3NhbXBsZUZyb21TY2hlbWEsc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWM6bWFpbl9zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyxzYW1wbGVPcHRpb25BUEk6YXBpX29wdGlvbkFQSSxzYW1wbGVFbmNvZGVyQVBJOnBvLHNhbXBsZUZvcm1hdEFQSTp0byxzYW1wbGVNZWRpYVR5cGVBUEk6U28sY3JlYXRlWE1MRXhhbXBsZTptYWluX2NyZWF0ZVhNTEV4YW1wbGUsbWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hOnhvLG1lbW9pemVkQ3JlYXRlWE1MRXhhbXBsZTpDbyxnZXRKc29uU2FtcGxlU2NoZW1hOnQsZ2V0WWFtbFNhbXBsZVNjaGVtYTpyLGdldFhtbFNhbXBsZVNjaGVtYTphLGdldFNhbXBsZVNjaGVtYTpuLG1lcmdlSnNvblNjaGVtYTpibyxmb2xkVHlwZX19fX07ZnVuY3Rpb24gUHJlc2V0QXBpcygpe3JldHVybltiYXNlLG9hczMsanNvbl9zY2hlbWFfMjAyMF8xMixqc29uX3NjaGVtYV8yMDIwXzEyX3NhbXBsZXMsb2FzMzFdfWNvbnN0IGlubGluZV9wbHVnaW49ZT0+KCk9Pih7Zm46ZS5mbixjb21wb25lbnRzOmUuY29tcG9uZW50c30pLGZhY3Rvcml6YXRpb25fc3lzdGVtPWU9Pntjb25zdCB0PWooKSh7bGF5b3V0OntsYXlvdXQ6ZS5sYXlvdXQsZmlsdGVyOmUuZmlsdGVyfSxzcGVjOntzcGVjOiIiLHVybDplLnVybH0scmVxdWVzdFNuaXBwZXRzOmUucmVxdWVzdFNuaXBwZXRzfSxlLmluaXRpYWxTdGF0ZSk7aWYoZS5pbml0aWFsU3RhdGUpZm9yKGNvbnN0W3IsYV1vZiBPYmplY3QuZW50cmllcyhlLmluaXRpYWxTdGF0ZSkpdm9pZCAwPT09YSYmZGVsZXRlIHRbcl07cmV0dXJue3N5c3RlbTp7Y29uZmlnczplLmNvbmZpZ3N9LHBsdWdpbnM6ZS5wcmVzZXRzLHN0YXRlOnR9fSxxdWVyeT0oKT0+ZT0+e2NvbnN0IHQ9ZS5xdWVyeUNvbmZpZ0VuYWJsZWQ/KCgpPT57Y29uc3QgZT1uZXcgVVJMU2VhcmNoUGFyYW1zKEsubG9jYXRpb24uc2VhcmNoKTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKGUpfSkoKTp7fTtyZXR1cm4gT2JqZWN0LmVudHJpZXModCkucmVkdWNlKCgoZSxbdCxyXSk9PigiY29uZmlnIj09PXQ/ZS5jb25maWdVcmw9cjoidXJscy5wcmltYXJ5TmFtZSI9PT10P2VbdF09cjplPWJyKCkoZSx0LHIpLGUpKSx7fSl9LHNvdXJjZXNfdXJsPSh7dXJsOmUsc3lzdGVtOnR9KT0+YXN5bmMgcj0+e2lmKCFlKXJldHVybnt9O2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0LmNvbmZpZ3NBY3Rpb25zPy5nZXRDb25maWdCeVVybClyZXR1cm57fTtjb25zdCBhPSgoKT0+e2NvbnN0IGU9e307cmV0dXJuIGUucHJvbWlzZT1uZXcgUHJvbWlzZSgoKHQscik9PntlLnJlc29sdmU9dCxlLnJlamVjdD1yfSkpLGV9KSgpO3JldHVybiB0LmNvbmZpZ3NBY3Rpb25zLmdldENvbmZpZ0J5VXJsKHt1cmw6ZSxsb2FkUmVtb3RlQ29uZmlnOiEwLHJlcXVlc3RJbnRlcmNlcHRvcjpyLnJlcXVlc3RJbnRlcmNlcHRvcixyZXNwb25zZUludGVyY2VwdG9yOnIucmVzcG9uc2VJbnRlcmNlcHRvcn0sKGU9PnthLnJlc29sdmUoZSl9KSksYS5wcm9taXNlfSxydW50aW1lPSgpPT4oKT0+e2NvbnN0IGU9e307cmV0dXJuIGdsb2JhbFRoaXMubG9jYXRpb24mJihlLm9hdXRoMlJlZGlyZWN0VXJsPWAke2dsb2JhbFRoaXMubG9jYXRpb24ucHJvdG9jb2x9Ly8ke2dsb2JhbFRoaXMubG9jYXRpb24uaG9zdH0ke2dsb2JhbFRoaXMubG9jYXRpb24ucGF0aG5hbWUuc3Vic3RyaW5nKDAsZ2xvYmFsVGhpcy5sb2NhdGlvbi5wYXRobmFtZS5sYXN0SW5kZXhPZigiLyIpKX0vb2F1dGgyLXJlZGlyZWN0Lmh0bWxgKSxlfSxBbz1PYmplY3QuZnJlZXplKHtkb21faWQ6bnVsbCxkb21Ob2RlOm51bGwsc3BlYzp7fSx1cmw6IiIsdXJsczpudWxsLGNvbmZpZ1VybDpudWxsLGxheW91dDoiQmFzZUxheW91dCIsZG9jRXhwYW5zaW9uOiJsaXN0IixtYXhEaXNwbGF5ZWRUYWdzOi0xLGZpbHRlcjohMSx2YWxpZGF0b3JVcmw6Imh0dHBzOi8vdmFsaWRhdG9yLnN3YWdnZXIuaW8vdmFsaWRhdG9yIixvYXV0aDJSZWRpcmVjdFVybDp2b2lkIDAscGVyc2lzdEF1dGhvcml6YXRpb246ITEsY29uZmlnczp7fSxkaXNwbGF5T3BlcmF0aW9uSWQ6ITEsZGlzcGxheVJlcXVlc3REdXJhdGlvbjohMSxkZWVwTGlua2luZzohMSx0cnlJdE91dEVuYWJsZWQ6ITEscmVxdWVzdEludGVyY2VwdG9yOmU9PihlLmN1cmxPcHRpb25zPVtdLGUpLHJlc3BvbnNlSW50ZXJjZXB0b3I6ZT0+ZSxzaG93TXV0YXRlZFJlcXVlc3Q6ITAsZGVmYXVsdE1vZGVsUmVuZGVyaW5nOiJleGFtcGxlIixkZWZhdWx0TW9kZWxFeHBhbmREZXB0aDoxLGRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aDoxLHNob3dFeHRlbnNpb25zOiExLHNob3dDb21tb25FeHRlbnNpb25zOiExLHdpdGhDcmVkZW50aWFsczohMSxyZXF1ZXN0U25pcHBldHNFbmFibGVkOiExLHJlcXVlc3RTbmlwcGV0czp7Z2VuZXJhdG9yczp7Y3VybF9iYXNoOnt0aXRsZToiY1VSTCAoYmFzaCkiLHN5bnRheDoiYmFzaCJ9LGN1cmxfcG93ZXJzaGVsbDp7dGl0bGU6ImNVUkwgKFBvd2VyU2hlbGwpIixzeW50YXg6InBvd2Vyc2hlbGwifSxjdXJsX2NtZDp7dGl0bGU6ImNVUkwgKENNRCkiLHN5bnRheDoiYmFzaCJ9fSxkZWZhdWx0RXhwYW5kZWQ6ITAsbGFuZ3VhZ2VzOm51bGx9LHN1cHBvcnRlZFN1Ym1pdE1ldGhvZHM6WyJnZXQiLCJwdXQiLCJwb3N0IiwiZGVsZXRlIiwib3B0aW9ucyIsImhlYWQiLCJwYXRjaCIsInRyYWNlIl0scXVlcnlDb25maWdFbmFibGVkOiExLHByZXNldHM6W1ByZXNldEFwaXNdLHBsdWdpbnM6W10saW5pdGlhbFN0YXRlOnt9LGZuOnt9LGNvbXBvbmVudHM6e30sc3ludGF4SGlnaGxpZ2h0OnthY3RpdmF0ZWQ6ITAsdGhlbWU6ImFnYXRlIn0sb3BlcmF0aW9uc1NvcnRlcjpudWxsLHRhZ3NTb3J0ZXI6bnVsbCxvbkNvbXBsZXRlOm51bGwsbW9kZWxQcm9wZXJ0eU1hY3JvOm51bGwscGFyYW1ldGVyTWFjcm86bnVsbCxmaWxlVXBsb2FkTWVkaWFUeXBlczpbImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsImltYWdlLyIsImF1ZGlvLyIsInZpZGVvLyJdLHVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcjpudWxsfSksSW89cmVxdWlyZSgibG9kYXNoL2hhcyIpO3ZhciBqbz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oSW8pO2NvbnN0IHFvPXJlcXVpcmUoImxvZGFzaC9mcC9zZXQiKTt2YXIgUG89X193ZWJwYWNrX3JlcXVpcmVfXy5uKHFvKTtjb25zdCB0eXBlX2Nhc3RlcnNfYXJyYXk9KGUsdD1bXSk9PkFycmF5LmlzQXJyYXkoZSk/ZTp0LHR5cGVfY2FzdGVyc19ib29sZWFuPShlLHQ9ITEpPT4hMD09PWV8fCJ0cnVlIj09PWV8fDE9PT1lfHwiMSI9PT1lfHwhMSE9PWUmJiJmYWxzZSIhPT1lJiYwIT09ZSYmIjAiIT09ZSYmdCxkb21fbm9kZT1lPT5udWxsPT09ZXx8Im51bGwiPT09ZT9udWxsOmUsdHlwZV9jYXN0ZXJzX2ZpbHRlcj1lPT57Y29uc3QgdD1TdHJpbmcoZSk7cmV0dXJuIHR5cGVfY2FzdGVyc19ib29sZWFuKGUsdCl9LHR5cGVfY2FzdGVyc19mdW5jdGlvbj0oZSx0KT0+ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTp0LG51bGxhYmxlX2FycmF5PWU9PkFycmF5LmlzQXJyYXkoZSk/ZTpudWxsLG51bGxhYmxlX2Z1bmN0aW9uPWU9PiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6bnVsbCxudWxsYWJsZV9zdHJpbmc9ZT0+bnVsbD09PWV8fCJudWxsIj09PWU/bnVsbDpTdHJpbmcoZSksdHlwZV9jYXN0ZXJzX251bWJlcj0oZSx0PS0xKT0+e2NvbnN0IHI9cGFyc2VJbnQoZSwxMCk7cmV0dXJuIE51bWJlci5pc05hTihyKT90OnJ9LHR5cGVfY2FzdGVyc19vYmplY3Q9KGUsdD17fSk9Pnd0KCkoZSk/ZTp0LHNvcnRlcj1lPT4iZnVuY3Rpb24iPT10eXBlb2YgZXx8InN0cmluZyI9PXR5cGVvZiBlP2U6bnVsbCx0eXBlX2Nhc3RlcnNfc3RyaW5nPWU9PlN0cmluZyhlKSxzeW50YXhfaGlnaGxpZ2h0PShlLHQpPT53dCgpKGUpP2U6ITE9PT1lfHwiZmFsc2UiPT09ZXx8MD09PWV8fCIwIj09PWU/e2FjdGl2YXRlZDohMX06dCx1bmRlZmluZWRfc3RyaW5nPWU9PnZvaWQgMD09PWV8fCJ1bmRlZmluZWQiPT09ZT92b2lkIDA6U3RyaW5nKGUpLE1vPXtjb21wb25lbnRzOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19vYmplY3R9LGNvbmZpZ3M6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX29iamVjdH0sY29uZmlnVXJsOnt0eXBlQ2FzdGVyOm51bGxhYmxlX3N0cmluZ30sZGVlcExpbmtpbmc6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX2Jvb2xlYW4sZGVmYXVsdFZhbHVlOkFvLmRlZXBMaW5raW5nfSxkZWZhdWx0TW9kZWxFeHBhbmREZXB0aDp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfbnVtYmVyLGRlZmF1bHRWYWx1ZTpBby5kZWZhdWx0TW9kZWxFeHBhbmREZXB0aH0sZGVmYXVsdE1vZGVsUmVuZGVyaW5nOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19zdHJpbmd9LGRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aDp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfbnVtYmVyLGRlZmF1bHRWYWx1ZTpBby5kZWZhdWx0TW9kZWxzRXhwYW5kRGVwdGh9LGRpc3BsYXlPcGVyYXRpb25JZDp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfYm9vbGVhbixkZWZhdWx0VmFsdWU6QW8uZGlzcGxheU9wZXJhdGlvbklkfSxkaXNwbGF5UmVxdWVzdER1cmF0aW9uOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19ib29sZWFuLGRlZmF1bHRWYWx1ZTpBby5kaXNwbGF5UmVxdWVzdER1cmF0aW9ufSxkb2NFeHBhbnNpb246e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX3N0cmluZ30sZG9tX2lkOnt0eXBlQ2FzdGVyOm51bGxhYmxlX3N0cmluZ30sZG9tTm9kZTp7dHlwZUNhc3Rlcjpkb21fbm9kZX0sZmlsZVVwbG9hZE1lZGlhVHlwZXM6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX2FycmF5LGRlZmF1bHRWYWx1ZTpBby5maWxlVXBsb2FkTWVkaWFUeXBlc30sZmlsdGVyOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19maWx0ZXJ9LGZuOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19vYmplY3R9LGluaXRpYWxTdGF0ZTp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfb2JqZWN0fSxsYXlvdXQ6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX3N0cmluZ30sbWF4RGlzcGxheWVkVGFnczp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfbnVtYmVyLGRlZmF1bHRWYWx1ZTpBby5tYXhEaXNwbGF5ZWRUYWdzfSxtb2RlbFByb3BlcnR5TWFjcm86e3R5cGVDYXN0ZXI6bnVsbGFibGVfZnVuY3Rpb259LG9hdXRoMlJlZGlyZWN0VXJsOnt0eXBlQ2FzdGVyOnVuZGVmaW5lZF9zdHJpbmd9LG9uQ29tcGxldGU6e3R5cGVDYXN0ZXI6bnVsbGFibGVfZnVuY3Rpb259LG9wZXJhdGlvbnNTb3J0ZXI6e3R5cGVDYXN0ZXI6c29ydGVyfSxwYXJhbWF0ZXJNYWNybzp7dHlwZUNhc3RlcjpudWxsYWJsZV9mdW5jdGlvbn0scGVyc2lzdEF1dGhvcml6YXRpb246e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX2Jvb2xlYW4sZGVmYXVsdFZhbHVlOkFvLnBlcnNpc3RBdXRob3JpemF0aW9ufSxwbHVnaW5zOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19hcnJheSxkZWZhdWx0VmFsdWU6QW8ucGx1Z2luc30scHJlc2V0czp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfYXJyYXksZGVmYXVsdFZhbHVlOkFvLnByZXNldHN9LHJlcXVlc3RJbnRlcmNlcHRvcjp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfZnVuY3Rpb24sZGVmYXVsdFZhbHVlOkFvLnJlcXVlc3RJbnRlcmNlcHRvcn0scmVxdWVzdFNuaXBwZXRzOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19vYmplY3QsZGVmYXVsdFZhbHVlOkFvLnJlcXVlc3RTbmlwcGV0c30scmVxdWVzdFNuaXBwZXRzRW5hYmxlZDp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfYm9vbGVhbixkZWZhdWx0VmFsdWU6QW8ucmVxdWVzdFNuaXBwZXRzRW5hYmxlZH0scmVzcG9uc2VJbnRlcmNlcHRvcjp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfZnVuY3Rpb24sZGVmYXVsdFZhbHVlOkFvLnJlc3BvbnNlSW50ZXJjZXB0b3J9LHNob3dDb21tb25FeHRlbnNpb25zOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19ib29sZWFuLGRlZmF1bHRWYWx1ZTpBby5zaG93Q29tbW9uRXh0ZW5zaW9uc30sc2hvd0V4dGVuc2lvbnM6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX2Jvb2xlYW4sZGVmYXVsdFZhbHVlOkFvLnNob3dFeHRlbnNpb25zfSxzaG93TXV0YXRlZFJlcXVlc3Q6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX2Jvb2xlYW4sZGVmYXVsdFZhbHVlOkFvLnNob3dNdXRhdGVkUmVxdWVzdH0sc3BlYzp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfb2JqZWN0LGRlZmF1bHRWYWx1ZTpBby5zcGVjfSxzdXBwb3J0ZWRTdWJtaXRNZXRob2RzOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19hcnJheSxkZWZhdWx0VmFsdWU6QW8uc3VwcG9ydGVkU3VibWl0TWV0aG9kc30sc3ludGF4SGlnaGxpZ2h0Ont0eXBlQ2FzdGVyOnN5bnRheF9oaWdobGlnaHQsZGVmYXVsdFZhbHVlOkFvLnN5bnRheEhpZ2hsaWdodH0sInN5bnRheEhpZ2hsaWdodC5hY3RpdmF0ZWQiOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19ib29sZWFuLGRlZmF1bHRWYWx1ZTpBby5zeW50YXhIaWdobGlnaHQuYWN0aXZhdGVkfSwic3ludGF4SGlnaGxpZ2h0LnRoZW1lIjp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfc3RyaW5nfSx0YWdzU29ydGVyOnt0eXBlQ2FzdGVyOnNvcnRlcn0sdHJ5SXRPdXRFbmFibGVkOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19ib29sZWFuLGRlZmF1bHRWYWx1ZTpBby50cnlJdE91dEVuYWJsZWR9LHVybDp7dHlwZUNhc3Rlcjp0eXBlX2Nhc3RlcnNfc3RyaW5nfSx1cmxzOnt0eXBlQ2FzdGVyOm51bGxhYmxlX2FycmF5fSwidXJscy5wcmltYXJ5TmFtZSI6e3R5cGVDYXN0ZXI6dHlwZV9jYXN0ZXJzX3N0cmluZ30sdmFsaWRhdG9yVXJsOnt0eXBlQ2FzdGVyOm51bGxhYmxlX3N0cmluZ30sd2l0aENyZWRlbnRpYWxzOnt0eXBlQ2FzdGVyOnR5cGVfY2FzdGVyc19ib29sZWFuLGRlZmF1bHRWYWx1ZTpBby53aXRoQ3JlZGVudGlhbHN9LHVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcjp7dHlwZUNhc3RlcjpudWxsYWJsZV9mdW5jdGlvbn19LHR5cGVfY2FzdD1lPT5PYmplY3QuZW50cmllcyhNbykucmVkdWNlKCgoZSxbdCx7dHlwZUNhc3RlcjpyLGRlZmF1bHRWYWx1ZTphfV0pPT57aWYoam8oKShlLHQpKXtjb25zdCBuPXIoRmUoKShlLHQpLGEpO2U9UG8oKSh0LG4sZSl9cmV0dXJuIGV9KSx7Li4uZX0pLGNvbmZpZ19tZXJnZT0oZSwuLi50KT0+e2xldCByPVN5bWJvbC5mb3IoImRvbU5vZGUiKSxhPVN5bWJvbC5mb3IoInByaW1hcnlOYW1lIik7Y29uc3Qgbj1bXTtmb3IoY29uc3QgZSBvZiB0KXtjb25zdCB0PXsuLi5lfTtPYmplY3QuaGFzT3duKHQsImRvbU5vZGUiKSYmKHI9dC5kb21Ob2RlLGRlbGV0ZSB0LmRvbU5vZGUpLE9iamVjdC5oYXNPd24odCwidXJscy5wcmltYXJ5TmFtZSIpPyhhPXRbInVybHMucHJpbWFyeU5hbWUiXSxkZWxldGUgdFsidXJscy5wcmltYXJ5TmFtZSJdKTpBcnJheS5pc0FycmF5KHQudXJscykmJk9iamVjdC5oYXNPd24odC51cmxzLCJwcmltYXJ5TmFtZSIpJiYoYT10LnVybHMucHJpbWFyeU5hbWUsZGVsZXRlIHQudXJscy5wcmltYXJ5TmFtZSksbi5wdXNoKHQpfWNvbnN0IHM9aigpKGUsLi4ubik7cmV0dXJuIHIhPT1TeW1ib2wuZm9yKCJkb21Ob2RlIikmJihzLmRvbU5vZGU9ciksYSE9PVN5bWJvbC5mb3IoInByaW1hcnlOYW1lIikmJkFycmF5LmlzQXJyYXkocy51cmxzKSYmKHMudXJscy5wcmltYXJ5TmFtZT1hKSx0eXBlX2Nhc3Qocyl9O2Z1bmN0aW9uIFN3YWdnZXJVSShlKXtjb25zdCB0PXF1ZXJ5KCkoZSkscj1ydW50aW1lKCkoKSxhPVN3YWdnZXJVSS5jb25maWcubWVyZ2Uoe30sU3dhZ2dlclVJLmNvbmZpZy5kZWZhdWx0cyxyLGUsdCksbj1mYWN0b3JpemF0aW9uX3N5c3RlbShhKSxzPWlubGluZV9wbHVnaW4oYSksbz1uZXcgU3RvcmUobik7by5yZWdpc3RlcihbYS5wbHVnaW5zLHNdKTtjb25zdCBsPW8uZ2V0U3lzdGVtKCkscGVyc2lzdENvbmZpZ3M9ZT0+e28uc2V0Q29uZmlncyhlKSxsLmNvbmZpZ3NBY3Rpb25zLmxvYWRlZCgpfSx1cGRhdGVTcGVjPWU9PnshdC51cmwmJiJvYmplY3QiPT10eXBlb2YgZS5zcGVjJiZPYmplY3Qua2V5cyhlLnNwZWMpLmxlbmd0aD4wPyhsLnNwZWNBY3Rpb25zLnVwZGF0ZVVybCgiIiksbC5zcGVjQWN0aW9ucy51cGRhdGVMb2FkaW5nU3RhdHVzKCJzdWNjZXNzIiksbC5zcGVjQWN0aW9ucy51cGRhdGVTcGVjKEpTT04uc3RyaW5naWZ5KGUuc3BlYykpKToiZnVuY3Rpb24iPT10eXBlb2YgbC5zcGVjQWN0aW9ucy5kb3dubG9hZCYmZS51cmwmJiFlLnVybHMmJihsLnNwZWNBY3Rpb25zLnVwZGF0ZVVybChlLnVybCksbC5zcGVjQWN0aW9ucy5kb3dubG9hZChlLnVybCkpfSxyZW5kZXI9ZT0+e2lmKGUuZG9tTm9kZSlsLnJlbmRlcihlLmRvbU5vZGUsIkFwcCIpO2Vsc2UgaWYoZS5kb21faWQpe2NvbnN0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlLmRvbV9pZCk7bC5yZW5kZXIodCwiQXBwIil9ZWxzZSBudWxsPT09ZS5kb21faWR8fG51bGw9PT1lLmRvbU5vZGV8fGNvbnNvbGUuZXJyb3IoIlNraXBwZWQgcmVuZGVyaW5nOiBubyBgZG9tX2lkYCBvciBgZG9tTm9kZWAgd2FzIHNwZWNpZmllZCIpfTtyZXR1cm4gYS5jb25maWdVcmw/KChhc3luYygpPT57Y29uc3R7Y29uZmlnVXJsOmV9PWEscj1hd2FpdCBzb3VyY2VzX3VybCh7dXJsOmUsc3lzdGVtOmx9KShhKSxuPVN3YWdnZXJVSS5jb25maWcubWVyZ2Uoe30sYSxyLHQpO3BlcnNpc3RDb25maWdzKG4pLG51bGwhPT1yJiZ1cGRhdGVTcGVjKG4pLHJlbmRlcihuKX0pKCksbCk6KHBlcnNpc3RDb25maWdzKGEpLHVwZGF0ZVNwZWMoYSkscmVuZGVyKGEpLGwpfVN3YWdnZXJVSS5TeXN0ZW09U3RvcmUsU3dhZ2dlclVJLmNvbmZpZz17ZGVmYXVsdHM6QW8sbWVyZ2U6Y29uZmlnX21lcmdlLHR5cGVDYXN0OnR5cGVfY2FzdCx0eXBlQ2FzdE1hcHBpbmdzOk1vfSxTd2FnZ2VyVUkucHJlc2V0cz17YmFzZSxhcGlzOlByZXNldEFwaXN9LFN3YWdnZXJVSS5wbHVnaW5zPXtBdXRoOmF1dGgsQ29uZmlnczpjb25maWdzUGx1Z2luLERlZXBMaW5pbmc6ZGVlcF9saW5raW5nLEVycjplcnIsRmlsdGVyOmZpbHRlcixJY29uczppY29ucyxKU09OU2NoZW1hNTpqc29uX3NjaGVtYV81LEpTT05TY2hlbWE1U2FtcGxlczpqc29uX3NjaGVtYV81X3NhbXBsZXMsSlNPTlNjaGVtYTIwMjAxMjpqc29uX3NjaGVtYV8yMDIwXzEyLEpTT05TY2hlbWEyMDIwMTJTYW1wbGVzOmpzb25fc2NoZW1hXzIwMjBfMTJfc2FtcGxlcyxMYXlvdXQ6cGx1Z2luc19sYXlvdXQsTG9nczpsb2dzLE9wZW5BUEkzMDpvYXMzLE9wZW5BUEkzMTpvYXMzLE9uQ29tcGxldGU6b25fY29tcGxldGUsUmVxdWVzdFNuaXBwZXRzOnBsdWdpbnNfcmVxdWVzdF9zbmlwcGV0cyxTcGVjOnBsdWdpbnNfc3BlYyxTd2FnZ2VyQ2xpZW50OnN3YWdnZXJfY2xpZW50LFV0aWw6dXRpbCxWaWV3OnZpZXcsVmlld0xlZ2FjeTp2aWV3X2xlZ2FjeSxEb3dubG9hZFVybDpkb3dubG9hZFVybFBsdWdpbixTeW50YXhIaWdobGlnaHRpbmc6c3ludGF4X2hpZ2hsaWdodGluZyxWZXJzaW9uczp2ZXJzaW9ucyxTYWZlUmVuZGVyOnNhZmVfcmVuZGVyfTtjb25zdCBUbz1Td2FnZ2VyVUk7cmV0dXJuIHI9ci5kZWZhdWx0fSkoKSkpOwovLyMgc291cmNlTWFwcGluZ1VSTD1zd2FnZ2VyLXVpLmpzLm1hcA==</File>
        <File Location="var/httpd/htdocs/js/thirdparty/swagger/swagger-ui.js.map" Permission="660" Encode="Base64">eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dhZ2dlci11aS5qcyIsIm1hcHBpbmdzIjoiQ0FBQSxTQUFVQSxpQ0FBaUNDLEVBQU1DLEdBQzFCLGlCQUFaQyxTQUEwQyxpQkFBWEMsT0FDeENBLE9BQU9ELFFBQVVELElBQ1EsbUJBQVhHLFFBQXlCQSxPQUFPQyxJQUM5Q0QsT0FBTyxHQUFJSCxHQUNlLGlCQUFaQyxRQUNkQSxRQUF1QixjQUFJRCxJQUUzQkQsRUFBb0IsY0FBSUMsR0FDekIsQ0FURCxDQVNHSyxNQUFNLEksa0NDVFRILEVBQU9ELFFBQVVLLFFBQVEsUyxHQ0NyQkMsRUFBMkIsQ0FBQyxFQUdoQyxTQUFTQyxvQkFBb0JDLEdBRTVCLElBQUlDLEVBQWVILEVBQXlCRSxHQUM1QyxRQUFxQkUsSUFBakJELEVBQ0gsT0FBT0EsRUFBYVQsUUFHckIsSUFBSUMsRUFBU0ssRUFBeUJFLEdBQVksQ0FHakRSLFFBQVMsQ0FBQyxHQU9YLE9BSEFXLEVBQW9CSCxHQUFVUCxFQUFRQSxFQUFPRCxRQUFTTyxxQkFHL0NOLEVBQU9ELE9BQ2YsQ0NyQkFPLG9CQUFvQkssRUFBS1gsSUFDeEIsSUFBSVksRUFBU1osR0FBVUEsRUFBT2EsV0FDN0IsSUFBT2IsRUFBaUIsUUFDeEIsSUFBTSxFQUVQLE9BREFNLG9CQUFvQlEsRUFBRUYsRUFBUSxDQUFFRyxFQUFHSCxJQUM1QkEsQ0FBTSxFQ0xkTixvQkFBb0JRLEVBQUksQ0FBQ2YsRUFBU2lCLEtBQ2pDLElBQUksSUFBSUMsS0FBT0QsRUFDWFYsb0JBQW9CWSxFQUFFRixFQUFZQyxLQUFTWCxvQkFBb0JZLEVBQUVuQixFQUFTa0IsSUFDNUVFLE9BQU9DLGVBQWVyQixFQUFTa0IsRUFBSyxDQUFFSSxZQUFZLEVBQU1DLElBQUtOLEVBQVdDLElBRTFFLEVDTkRYLG9CQUFvQlksRUFBSSxDQUFDSyxFQUFLQyxJQUFVTCxPQUFPTSxVQUFVQyxlQUFlQyxLQUFLSixFQUFLQyxHQ0NsRmxCLG9CQUFvQnNCLEVBQUs3QixJQUNILG9CQUFYOEIsUUFBMEJBLE9BQU9DLGFBQzFDWCxPQUFPQyxlQUFlckIsRUFBUzhCLE9BQU9DLFlBQWEsQ0FBRUMsTUFBTyxXQUU3RFosT0FBT0MsZUFBZXJCLEVBQVMsYUFBYyxDQUFFZ0MsT0FBTyxHQUFPLEUsc2dTQ0w5RCxNQUFNLEVBQStCM0IsUUFBUSxTLCtCQ0E3QyxNQUFNLEVBQStCQSxRQUFRLFNDQXZDLEVBQStCQSxRQUFRLGEsK0JDQTdDLE1BQU0sRUFBK0JBLFFBQVEsZSwrQkNBN0MsTUFBTSxFQUErQkEsUUFBUSxtQkNBdkMsRUFBK0JBLFFBQVEsbUJDQXZDLEVBQStCQSxRQUFRLGdCLCtCQ0V0QyxNQUFNNEIsRUFBaUIscUJBQ2pCQyxFQUF1QiwyQkFDdkJDLEVBQWUsbUJBQ2ZDLEVBQXFCLHlCQUNyQkMsRUFBZSxtQkFDZkMsRUFBUSxZQUNSQyxFQUFXLGVBRWpCLFNBQVNDLGFBQWFDLEdBQzNCLE1BQU8sQ0FDSEMsS0FBTVQsRUFDTlUsU0FBU0MsRUFBQUEsRUFBQUEsZ0JBQWVILEdBRTlCLENBRU8sU0FBU0ksa0JBQWtCQyxHQUNoQyxNQUFPLENBQ0hKLEtBQU1SLEVBQ05TLFFBQVNHLEVBRWYsQ0FFTyxTQUFTQyxXQUFXTixHQUN6QixNQUFPLENBQ0hDLEtBQU1QLEVBQ05RLFFBQVNGLEVBRWYsQ0FFTyxTQUFTTyxnQkFBZ0JDLEdBQzlCLE1BQU8sQ0FDSFAsS0FBTU4sRUFDTk8sUUFBU00sRUFFZixDQUVPLFNBQVNDLFdBQVdULEdBQ3pCLE1BQU8sQ0FDTEMsS0FBTUwsRUFDTk0sUUFBU0YsRUFFYixDQUVPLFNBQVNVLE1BQU1DLEVBQVMsQ0FBQyxHQUU5QixNQUFPLENBQ0xWLEtBQU1KLEVBQ05LLFFBQVNTLEVBRWIsQ0FFTyxTQUFTQyxRQUFRRCxFQUFTQSxLQUFNLEdBRXJDLE1BQU8sQ0FDTFYsS0FBTUgsRUFDTkksUUFBU1MsRUFFYixDQzlCQSxRQTdCQSxTQUFTRSxhQUNQLElBQUlDLEVBQU0sQ0FDUkMsU0FBVSxDQUFDLEVBQ1hDLFFBQVMsQ0FBQyxFQUNWQyxLQUFNQSxPQUNOQyxNQUFPQSxPQUNQQyxLQUFNLFdBQVksRUFDbEJDLFNBQVUsV0FBWSxHQUd4QixHQUFxQixvQkFBWEMsT0FDUixPQUFPUCxFQUdULElBQ0VBLEVBQU1PLE9BRU4sSUFBSyxJQUFJckMsSUFERyxDQUFDLE9BQVEsT0FBUSxZQUV2QkEsS0FBUXFDLFNBQ1ZQLEVBQUk5QixHQUFRcUMsT0FBT3JDLEdBR3pCLENBQUUsTUFBT3NDLEdBQ1BDLFFBQVFDLE1BQU1GLEVBQ2hCLENBRUEsT0FBT1IsQ0FDVCxDQUVBLEdDN0JNLEdDQStCbEQsUUFBUSxvQkNBUkEsUUFBUSxxQkZBUkEsUUFBUSxtQiwrQkdBN0MsTUFBTSxFQUErQkEsUUFBUSxlLCtCQ0E3QyxNQUFNLEVBQStCQSxRQUFRLGUsK0JDQTdDLE1BQU0sRUFBK0JBLFFBQVEsYSwrQkNBN0MsTUFBTSxFQUErQkEsUUFBUSxxQiwrQkNBN0MsTUFBTSxHQUErQkEsUUFBUSxjLGlDQ0E3QyxNQUFNLEdBQStCQSxRQUFRLGUsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEsVSxpQ0NNN0MsTUFBTTZELEdBQXFCQyxJQUFBQSxJQUFPQyxHQUNoQyxPQUNBLFNBQ0EsUUFDQSxVQUNBLFVBQ0EsbUJBQ0EsVUFDQSxtQkFDQSxZQUNBLFlBQ0EsVUFDQSxXQUNBLFdBQ0EsY0FDQSxPQUNBLGNBdUJhLFNBQVNDLG1CQUFtQkMsR0FBVyxPQUFFQyxHQUFXLENBQUMsR0FFbEUsSUFBS0osSUFBQUEsSUFBT0ssTUFBTUYsR0FDaEIsTUFBTyxDQUNMRyxPQUFRTixJQUFBQSxNQUNSTywwQkFBMkIsTUFJL0IsSUFBS0gsRUFFSCxNQUE0QixTQUF4QkQsRUFBVS9DLElBQUksTUFDVCxDQUNMa0QsT0FBUUgsRUFBVS9DLElBQUksU0FBVTRDLElBQUFBLE9BQ2hDTywwQkFBMkIsTUFHdEIsQ0FDTEQsT0FBUUgsRUFBVWxCLFFBQU8sQ0FBQ3VCLEVBQUdDLElBQU1WLEdBQW1CVyxTQUFTRCxLQUMvREYsMEJBQTJCLE1BT2pDLEdBQUlKLEVBQVUvQyxJQUFJLFdBQVksQ0FDNUIsTUFJTW1ELEVBSjZCSixFQUNoQy9DLElBQUksVUFBVzRDLElBQUFBLElBQU8sQ0FBQyxJQUN2QlcsU0FFMERDLFFBRTdELE1BQU8sQ0FDTE4sT0FBUUgsRUFBVVUsTUFDaEIsQ0FBQyxVQUFXTixFQUEyQixVQUN2Q1AsSUFBQUEsT0FFRk8sNEJBRUosQ0FFQSxNQUFPLENBQ0xELE9BQVFILEVBQVUvQyxJQUFJLFVBQ2xCK0MsRUFBVS9DLElBQUksU0FBVTRDLElBQUFBLE9BQ3hCQSxJQUFBQSxNQUNKTywwQkFBMkIsS0FFL0IsQyx1Q0NuRUEsTUFBTU8sR0FBdUIsVUFFaEJDLFlBQWVDLEdBQVVoQixJQUFBQSxTQUFZaUIsV0FBV0QsR0FFaERFLGNBQWlCckQsR0FBVWtELFlBQVlsRCxHQUFTQSxFQUFNc0QsT0FBU3RELEVBRXJFLFNBQVN1RCxVQUFXQyxHQUN6QixPQUFJQyxTQUFTRCxHQUdOSCxjQUFjRyxHQUZaLENBQUMsQ0FHWixDQVlPLFNBQVNFLGNBQWNDLEdBQzVCLEdBQUlULFlBQVlTLEdBQ2QsT0FBT0EsRUFFVCxHQUFJQSxhQUFjcEMsRUFBSUssS0FDcEIsT0FBTytCLEVBRVQsSUFBS0YsU0FBU0UsR0FDWixPQUFPQSxFQUVULEdBQUlDLE1BQU1DLFFBQVFGLEdBQ2hCLE9BQU94QixJQUFBQSxJQUFPd0IsR0FBSUcsSUFBSUosZUFBZUssU0FFdkMsR0FBSUMsSUFBV0wsRUFBR00sU0FBVSxDQUUxQixNQUFNQyxFQXdCSCxTQUFTQyx3QkFBeUJDLEdBQ3ZDLElBQUtKLElBQVdJLEVBQU1ILFNBQ3BCLE9BQU9HLEVBRVQsTUFBTUMsRUFBUyxDQUFDLEVBQ1ZDLEVBQVUsUUFDVkMsRUFBWSxDQUFDLEVBQ25CLElBQUssSUFBSUMsS0FBUUosRUFBTUgsVUFDckIsR0FBS0ksRUFBT0csRUFBSyxLQUFTRCxFQUFVQyxFQUFLLEtBQU9ELEVBQVVDLEVBQUssSUFBSUMsaUJBRTVELENBQ0wsSUFBS0YsRUFBVUMsRUFBSyxJQUFLLENBRXZCRCxFQUFVQyxFQUFLLElBQU0sQ0FDbkJDLGtCQUFrQixFQUNsQkMsT0FBUSxHQUlWTCxFQURxQixHQUFHRyxFQUFLLEtBQUtGLElBQVVDLEVBQVVDLEVBQUssSUFBSUUsVUFDdENMLEVBQU9HLEVBQUssV0FFOUJILEVBQU9HLEVBQUssR0FDckIsQ0FDQUQsRUFBVUMsRUFBSyxJQUFJRSxRQUFVLEVBRTdCTCxFQUR1QixHQUFHRyxFQUFLLEtBQUtGLElBQVVDLEVBQVVDLEVBQUssSUFBSUUsVUFDdENGLEVBQUssRUFDbEMsTUFqQkVILEVBQU9HLEVBQUssSUFBTUEsRUFBSyxHQW1CM0IsT0FBT0gsQ0FDVCxDQXJEOEJGLENBQXdCUixHQUNsRCxPQUFPeEIsSUFBQUEsV0FBYytCLEdBQW1CSixJQUFJSixjQUM5QyxDQUNBLE9BQU92QixJQUFBQSxXQUFjd0IsR0FBSUcsSUFBSUosY0FDL0IsQ0EyRE8sU0FBU2lCLGVBQWVDLEdBQzdCLE9BQUdoQixNQUFNQyxRQUFRZSxHQUNSQSxFQUNGLENBQUNBLEVBQ1YsQ0FFTyxTQUFTQyxLQUFLQyxHQUNuQixNQUFxQixtQkFBUEEsQ0FDaEIsQ0FFTyxTQUFTckIsU0FBU2pFLEdBQ3ZCLFFBQVNBLEdBQXNCLGlCQUFSQSxDQUN6QixDQUVPLFNBQVN1RixPQUFPdkIsR0FDckIsTUFBeUIsbUJBQVhBLENBQ2hCLENBRU8sU0FBU0ssUUFBUUwsR0FDdEIsT0FBT0ksTUFBTUMsUUFBUUwsRUFDdkIsQ0FHTyxNQUFNd0IsR0FBVUMsSUFFaEIsU0FBU0MsT0FBTzFGLEVBQUtzRixHQUMxQixPQUFPMUYsT0FBTytGLEtBQUszRixHQUFLNEYsUUFBTyxDQUFDZixFQUFRbkYsS0FDdENtRixFQUFPbkYsR0FBTzRGLEVBQUd0RixFQUFJTixHQUFNQSxHQUNwQm1GLElBQ04sQ0FBQyxFQUNOLENBRU8sU0FBU2dCLFVBQVU3RixFQUFLc0YsR0FDN0IsT0FBTzFGLE9BQU8rRixLQUFLM0YsR0FBSzRGLFFBQU8sQ0FBQ2YsRUFBUW5GLEtBQ3RDLElBQUlvRyxFQUFNUixFQUFHdEYsRUFBSU4sR0FBTUEsR0FHdkIsT0FGR29HLEdBQXNCLGlCQUFSQSxHQUNmbEcsT0FBT21HLE9BQU9sQixFQUFRaUIsR0FDakJqQixDQUFNLEdBQ1osQ0FBQyxFQUNOLENBR08sU0FBU21CLHNCQUFzQkMsR0FDcEMsTUFBTyxFQUFHQyxXQUFVQyxjQUNYQyxHQUFRQyxHQUNTLG1CQUFYQSxFQUNGQSxFQUFPSixLQUdURyxFQUFLQyxFQUdsQixDQXlPQSxTQUFTQyxzQkFBc0I5RixFQUFPeUMsRUFBUXNELEVBQWlCQyxFQUFxQnRELEdBQ2xGLElBQUlELEVBQVEsTUFBTyxHQUNuQixJQUFJM0IsRUFBUyxHQUNUbUYsRUFBV3hELEVBQU9sRCxJQUFJLFlBQ3RCMkcsRUFBbUJ6RCxFQUFPbEQsSUFBSSxZQUM5QjRHLEVBQVUxRCxFQUFPbEQsSUFBSSxXQUNyQjZHLEVBQVUzRCxFQUFPbEQsSUFBSSxXQUNyQm1CLEVBQU8rQixFQUFPbEQsSUFBSSxRQUNsQjhHLEVBQVM1RCxFQUFPbEQsSUFBSSxVQUNwQitHLEVBQVk3RCxFQUFPbEQsSUFBSSxhQUN2QmdILEVBQVk5RCxFQUFPbEQsSUFBSSxhQUN2QmlILEVBQWMvRCxFQUFPbEQsSUFBSSxlQUN6QmtILEVBQVdoRSxFQUFPbEQsSUFBSSxZQUN0Qm1ILEVBQVdqRSxFQUFPbEQsSUFBSSxZQUN0Qm9ILEVBQVVsRSxFQUFPbEQsSUFBSSxXQUV6QixNQUFNcUgsRUFBc0JiLElBQXdDLElBQXJCRyxFQUN6Q1csRUFBVzdHLFFBS1g4RyxFQUNKRixHQUh3Q0MsR0FBcUIsVUFBVG5HLE1BRmhDa0csSUFBd0JDLEdBU3hDRSxFQUFrQmQsR0FBc0IsT0FBVmpHLEVBVXBDLEdBTkU0RyxJQUNJQyxJQUNBRSxJQUNBZixJQUNBdEYsRUFJSixPQURBSSxFQUFPa0csS0FBSyxrQ0FDTGxHLEVBU1QsR0FKRWlHLElBQ0lyRyxJQUNBb0csRUFHSixNQUFPLEdBSVQsSUFBSUcsRUFBdUIsV0FBVHZHLEdBQXFCVixFQUNuQ2tILEVBQXNCLFVBQVR4RyxHQUFvQmtELE1BQU1DLFFBQVE3RCxJQUFVQSxFQUFNMEUsT0FDL0R5QyxFQUEwQixVQUFUekcsR0FBb0J5QixJQUFBQSxLQUFRaUYsT0FBT3BILElBQVVBLEVBQU1xSCxRQVN4RSxNQUtNQyxFQUxZLENBQ2hCTCxFQUFhQyxFQUFZQyxFQVRLLFVBQVR6RyxHQUFxQyxpQkFBVlYsR0FBc0JBLEVBQy9DLFNBQVRVLEdBQW1CVixhQUFpQnVCLEVBQUlLLEtBQzVCLFlBQVRsQixJQUF1QlYsSUFBbUIsSUFBVkEsR0FDeEIsV0FBVFUsSUFBc0JWLEdBQW1CLElBQVZBLEdBQ3JCLFlBQVRVLElBQXVCVixHQUFtQixJQUFWQSxHQUN4QixXQUFUVSxHQUFzQyxpQkFBVlYsR0FBZ0MsT0FBVkEsRUFDbkMsV0FBVFUsR0FBc0MsaUJBQVZWLEdBQXNCQSxHQU96Q3VILE1BQUs1RSxLQUFPQSxJQUU3QyxHQUFJaUUsSUFBd0JVLElBQW1CdEIsRUFFN0MsT0FEQWxGLEVBQU9rRyxLQUFLLGtDQUNMbEcsRUFFVCxHQUNXLFdBQVRKLElBQytCLE9BQTlCZ0MsR0FDK0IscUJBQTlCQSxHQUNGLENBQ0EsSUFBSThFLEVBQVl4SCxFQUNoQixHQUFvQixpQkFBVkEsRUFDUixJQUNFd0gsRUFBWUMsS0FBS0MsTUFBTTFILEVBQ3pCLENBQUUsTUFBTytCLEdBRVAsT0FEQWpCLEVBQU9rRyxLQUFLLDZDQUNMbEcsQ0FDVCxDQUVDMkIsR0FBVUEsRUFBT2tGLElBQUksYUFBZTVDLE9BQU9tQixFQUFpQmtCLFNBQVdsQixFQUFpQmtCLFVBQ3pGbEIsRUFBaUIwQixTQUFRMUksU0FDRFIsSUFBbkI4SSxFQUFVdEksSUFDWDRCLEVBQU9rRyxLQUFLLENBQUVhLFFBQVMzSSxFQUFLK0MsTUFBTywrQkFDckMsSUFHRFEsR0FBVUEsRUFBT2tGLElBQUksZUFDdEJsRixFQUFPbEQsSUFBSSxjQUFjcUksU0FBUSxDQUFDRSxFQUFLNUksS0FDckMsTUFBTTZJLEVBQU9qQyxzQkFBc0IwQixFQUFVdEksR0FBTTRJLEdBQUssRUFBTzlCLEVBQXFCdEQsR0FDcEY1QixFQUFPa0csUUFBUWUsRUFDWmpFLEtBQUs3QixJQUFVLENBQUc0RixRQUFTM0ksRUFBSytDLFlBQVUsR0FHbkQsQ0FFQSxHQUFJMEUsRUFBUyxDQUNYLElBQUlsRyxFQWpIdUJ1SCxFQUFDRixFQUFLRyxLQUVuQyxJQURXLElBQUlDLE9BQU9ELEdBQ1pFLEtBQUtMLEdBQ2IsTUFBTyw2QkFBK0JHLENBQ3hDLEVBNkdZRCxDQUFnQmhJLEVBQU8yRyxHQUM3QmxHLEdBQUtLLEVBQU9rRyxLQUFLdkcsRUFDdkIsQ0FFQSxHQUFJaUcsR0FDVyxVQUFUaEcsRUFBa0IsQ0FDcEIsSUFBSUQsRUF6SXNCMkgsRUFBQ04sRUFBS08sS0FDcEMsSUFBS1AsR0FBT08sR0FBTyxHQUFLUCxHQUFPQSxFQUFJcEQsT0FBUzJELEVBQzFDLE1BQU8sK0JBQStCQSxTQUFtQixJQUFSQSxFQUFZLEdBQUssS0FDcEUsRUFzSWNELENBQWlCcEksRUFBTzBHLEdBQzlCakcsR0FBS0ssRUFBT2tHLEtBQUt2RyxFQUN2QixDQUdGLEdBQUlnRyxHQUNXLFVBQVQvRixFQUFrQixDQUNwQixJQUFJRCxFQTFJc0I2SCxFQUFDUixFQUFLUyxLQUNwQyxHQUFJVCxHQUFPQSxFQUFJcEQsT0FBUzZELEVBQ3RCLE1BQU8sb0NBQW9DQSxTQUFtQixJQUFSQSxFQUFZLEdBQUssS0FDekUsRUF1SWNELENBQWlCdEksRUFBT3lHLEdBQzlCaEcsR0FBS0ssRUFBT2tHLEtBQUssQ0FBRXdCLFlBQVksRUFBTXZHLE1BQU94QixHQUNsRCxDQUdGLEdBQUkrRixHQUNXLFVBQVQ5RixFQUFrQixDQUNwQixJQUFJK0gsRUE3S3lCQyxFQUFDWixFQUFLdEIsS0FDdkMsR0FBS3NCLElBR2UsU0FBaEJ0QixJQUEwQyxJQUFoQkEsR0FBc0IsQ0FDbEQsTUFBTW1DLEdBQU9DLEVBQUFBLEVBQUFBLFFBQU9kLEdBQ2RlLEVBQU1GLEVBQUtHLFFBRWpCLEdBRHNCaEIsRUFBSXBELE9BQVNtRSxFQUFJRSxLQUNyQixDQUNoQixJQUFJQyxHQUFpQkMsRUFBQUEsRUFBQUEsT0FNckIsR0FMQU4sRUFBS2YsU0FBUSxDQUFDc0IsRUFBTUMsS0FDZlIsRUFBS3ZILFFBQU91QixHQUFLb0MsT0FBT3BDLEVBQUV5RyxRQUFVekcsRUFBRXlHLE9BQU9GLEdBQVF2RyxJQUFNdUcsSUFBTUgsS0FBTyxJQUN6RUMsRUFBaUJBLEVBQWVLLElBQUlGLEdBQ3RDLElBRXlCLElBQXhCSCxFQUFlRCxLQUNoQixPQUFPQyxFQUFlbEYsS0FBSXFGLElBQUMsQ0FBTUcsTUFBT0gsRUFBR2xILE1BQU8sNkJBQTRCc0gsU0FFbEYsQ0FDRixHQTBKdUJiLENBQW9CMUksRUFBT3dHLEdBQzFDaUMsR0FBYzNILEVBQU9rRyxRQUFReUIsRUFDbkMsQ0FHRixHQUFJbkMsR0FBMkIsSUFBZEEsRUFBaUIsQ0FDaEMsSUFBSTdGLEVBekx5QitJLEVBQUMxQixFQUFLUyxLQUNyQyxHQUFJVCxFQUFJcEQsT0FBUzZELEVBQ2YsTUFBTyxnQ0FBZ0NBLGNBQXdCLElBQVJBLEVBQVksSUFBTSxJQUMzRSxFQXNMWWlCLENBQWtCeEosRUFBT3NHLEdBQy9CN0YsR0FBS0ssRUFBT2tHLEtBQUt2RyxFQUN2QixDQUVBLEdBQUk4RixFQUFXLENBQ2IsSUFBSTlGLEVBdEp5QmdKLEVBQUMzQixFQUFLTyxLQUNyQyxHQUFJUCxFQUFJcEQsT0FBUzJELEVBQ2YsTUFBTywwQkFBMEJBLGNBQXdCLElBQVJBLEVBQVksSUFBTSxJQUNyRSxFQW1KWW9CLENBQWtCekosRUFBT3VHLEdBQy9COUYsR0FBS0ssRUFBT2tHLEtBQUt2RyxFQUN2QixDQUVBLEdBQUkwRixHQUF1QixJQUFaQSxFQUFlLENBQzVCLElBQUkxRixFQTFQdUJpSixFQUFFNUIsRUFBS1MsS0FDcEMsR0FBSVQsRUFBTVMsRUFDUixNQUFPLHVDQUF1Q0EsR0FDaEQsRUF1UFltQixDQUFnQjFKLEVBQU9tRyxHQUM3QjFGLEdBQUtLLEVBQU9rRyxLQUFLdkcsRUFDdkIsQ0FFQSxHQUFJMkYsR0FBdUIsSUFBWkEsRUFBZSxDQUM1QixJQUFJM0YsRUF6UHVCa0osRUFBRTdCLEVBQUtPLEtBQ3BDLEdBQUlQLEVBQU1PLEVBQ1IsTUFBTywwQ0FBMENBLEdBQ25ELEVBc1BZc0IsQ0FBZ0IzSixFQUFPb0csR0FDN0IzRixHQUFLSyxFQUFPa0csS0FBS3ZHLEVBQ3ZCLENBRUEsR0FBYSxXQUFUQyxFQUFtQixDQUNyQixJQUFJRCxFQVFKLEdBTkVBLEVBRGEsY0FBWDRGLEVBM053QnVELENBQUM5QixJQUMvQixHQUFJK0IsTUFBTUMsS0FBS3BDLE1BQU1JLElBQ25CLE1BQU8sMEJBQ1QsRUF5TlU4QixDQUFpQjVKLEdBQ0gsU0FBWHFHLEVBdk5hMEQsQ0FBQ2pDLElBRTNCLEdBREFBLEVBQU1BLEVBQUlrQyxXQUFXQyxlQUNoQiwyRUFBMkU5QixLQUFLTCxHQUNuRixNQUFPLHNCQUNULEVBb05VaUMsQ0FBYS9KLEdBcE9La0ssQ0FBRXBDLElBQzlCLEdBQUtBLEdBQXNCLGlCQUFSQSxFQUNqQixNQUFPLHdCQUNULEVBbU9Vb0MsQ0FBZWxLLElBRWxCUyxFQUFLLE9BQU9LLEVBQ2pCQSxFQUFPa0csS0FBS3ZHLEVBQ2QsTUFBTyxHQUFhLFlBQVRDLEVBQW9CLENBQzdCLElBQUlELEVBalB1QjBKLENBQUVyQyxJQUMvQixHQUFlLFNBQVJBLEdBQTBCLFVBQVJBLElBQTJCLElBQVJBLElBQXdCLElBQVJBLEVBQzFELE1BQU8seUJBQ1QsRUE4T1lxQyxDQUFnQm5LLEdBQzFCLElBQUtTLEVBQUssT0FBT0ssRUFDakJBLEVBQU9rRyxLQUFLdkcsRUFDZCxNQUFPLEdBQWEsV0FBVEMsRUFBbUIsQ0FDNUIsSUFBSUQsRUF2UXNCMkosQ0FBRXRDLElBQzlCLElBQUssbUJBQW1CSyxLQUFLTCxHQUMzQixNQUFPLHdCQUNULEVBb1FZc0MsQ0FBZXBLLEdBQ3pCLElBQUtTLEVBQUssT0FBT0ssRUFDakJBLEVBQU9rRyxLQUFLdkcsRUFDZCxNQUFPLEdBQWEsWUFBVEMsRUFBb0IsQ0FDN0IsSUFBSUQsRUFyUXVCNEosQ0FBRXZDLElBQy9CLElBQUssVUFBVUssS0FBS0wsR0FDbEIsTUFBTywwQkFDVCxFQWtRWXVDLENBQWdCckssR0FDMUIsSUFBS1MsRUFBSyxPQUFPSyxFQUNqQkEsRUFBT2tHLEtBQUt2RyxFQUNkLE1BQU8sR0FBYSxVQUFUQyxFQUFrQixDQUMzQixJQUFNd0csSUFBY0MsRUFDbEIsT0FBT3JHLEVBRU5kLEdBQ0RBLEVBQU00SCxTQUFRLENBQUNzQixFQUFNQyxLQUNuQixNQUFNcEIsRUFBT2pDLHNCQUFzQm9ELEVBQU16RyxFQUFPbEQsSUFBSSxVQUFVLEVBQU95RyxFQUFxQnRELEdBQzFGNUIsRUFBT2tHLFFBQVFlLEVBQ1pqRSxLQUFLckQsSUFBUSxDQUFHNkksTUFBT0gsRUFBR2xILE1BQU94QixNQUFRLEdBR2xELE1BQU8sR0FBYSxTQUFUQyxFQUFpQixDQUMxQixJQUFJRCxFQTlRb0I2SixDQUFFeEMsSUFDNUIsR0FBS0EsS0FBU0EsYUFBZXZHLEVBQUlLLE1BQy9CLE1BQU8sc0JBQ1QsRUEyUVkwSSxDQUFhdEssR0FDdkIsSUFBS1MsRUFBSyxPQUFPSyxFQUNqQkEsRUFBT2tHLEtBQUt2RyxFQUNkLENBRUEsT0FBT0ssQ0FDVCxDQUdPLE1Bc0JNeUosS0FBUUMsSUFDbkIsSUFBSUMsRUFRSixPQUxFQSxFQURFRCxhQUFlRSxHQUNSRixFQUVBRSxHQUFPQyxLQUFLSCxFQUFJUixXQUFZLFNBR2hDUyxFQUFPVCxTQUFTLFNBQVMsRUFHckJZLEdBQVUsQ0FDckJDLGlCQUFrQixDQUNoQkMsTUFBT0EsQ0FBQzlMLEVBQUcrTCxJQUFNL0wsRUFBRU8sSUFBSSxRQUFReUwsY0FBY0QsRUFBRXhMLElBQUksU0FDbkQwTCxPQUFRQSxDQUFDak0sRUFBRytMLElBQU0vTCxFQUFFTyxJQUFJLFVBQVV5TCxjQUFjRCxFQUFFeEwsSUFBSSxZQUV4RDJMLFdBQVksQ0FDVkosTUFBT0EsQ0FBQzlMLEVBQUcrTCxJQUFNL0wsRUFBRWdNLGNBQWNELEtBSXhCSSxjQUFpQkMsSUFDNUIsSUFBSUMsRUFBVSxHQUVkLElBQUssSUFBSUMsS0FBUUYsRUFBTSxDQUNyQixJQUFJdEQsRUFBTXNELEVBQUtFLFFBQ0g1TSxJQUFSb0osR0FBNkIsS0FBUkEsR0FDdkJ1RCxFQUFRckUsS0FBSyxDQUFDc0UsRUFBTSxJQUFLQyxtQkFBbUJ6RCxHQUFLMEQsUUFBUSxPQUFPLE1BQU1DLEtBQUssSUFFL0UsQ0FDQSxPQUFPSixFQUFRSSxLQUFLLElBQUksRUFJYkMsaUJBQW1CQSxDQUFDMU0sRUFBRStMLEVBQUc1RixNQUMzQndHLElBQUt4RyxHQUFPakcsR0FDWjBNLElBQUc1TSxFQUFFRSxHQUFNNkwsRUFBRTdMLE1BSWpCLFNBQVMyTSxzQkFBc0JDLEdBQ3BDLFNBQUtBLEdBQU9BLEVBQUlDLFFBQVEsY0FBZ0IsR0FBS0QsRUFBSUMsUUFBUSxjQUFnQixHQUFhLFNBQVJELEVBSWhGLENBMkJPLE1BQU1FLG1CQUFzQnhCLEdBQXNCLGlCQUFQQSxHQUFtQkEsYUFBZXlCLE9BQVN6QixFQUFJMEIsT0FBT1YsUUFBUSxNQUFPLE9BQVMsR0FFbkhXLG1CQUFzQjNCLEdBQVE0QixLQUFXSixtQkFBbUJ4QixHQUFLZ0IsUUFBUSxPQUFRLE1BRWpGYSxjQUFpQkMsSUFDNUIsTUFBTUMsRUFBa0IsTUFDeEIsT0FBR0MsRUFBQUEsSUFBSWhLLE1BQU04SixHQUNKQSxFQUFPbEwsUUFBTyxDQUFDdUIsRUFBR0MsSUFBTTJKLEVBQWdCcEUsS0FBS3ZGLEtBRS9DeEQsT0FBTytGLEtBQUttSCxHQUFRbEwsUUFBUWxDLEdBQVFxTixFQUFnQnBFLEtBQUtqSixJQUFLLEVBRTFEdU4sb0JBQXVCSCxHQUFXQSxFQUFPbEwsUUFBTyxDQUFDdUIsRUFBR0MsSUFBTSwrQ0FBK0N1RixLQUFLdkYsS0FNcEgsU0FBUzhKLGVBQWVDLEVBQU9DLEVBQVlDLEVBQVlBLEtBQU0sR0FDbEUsR0FBb0IsaUJBQVZGLEdBQXNCL0ksTUFBTUMsUUFBUThJLElBQW9CLE9BQVZBLElBQW1CQyxFQUN6RSxPQUFPRCxFQUdULE1BQU1uTixFQUFNSixPQUFPbUcsT0FBTyxDQUFDLEVBQUdvSCxHQVU5QixPQVJBdk4sT0FBTytGLEtBQUszRixHQUFLb0ksU0FBUWhGLElBQ3BCQSxJQUFNZ0ssR0FBY0MsRUFBVXJOLEVBQUlvRCxHQUFJQSxVQUNoQ3BELEVBQUlvRCxHQUdicEQsRUFBSW9ELEdBQUs4SixlQUFlbE4sRUFBSW9ELEdBQUlnSyxFQUFZQyxFQUFVLElBR2pEck4sQ0FDVCxDQUVPLFNBQVNzTixVQUFVdEosR0FDeEIsR0FBcUIsaUJBQVZBLEVBQ1QsT0FBT0EsRUFPVCxHQUpJQSxHQUFTQSxFQUFNRixPQUNqQkUsRUFBUUEsRUFBTUYsUUFHSyxpQkFBVkUsR0FBZ0MsT0FBVkEsRUFDL0IsSUFDRSxPQUFPaUUsS0FBS3FGLFVBQVV0SixFQUFPLEtBQU0sRUFDckMsQ0FDQSxNQUFPekIsR0FDTCxPQUFPa0ssT0FBT3pJLEVBQ2hCLENBR0YsT0FBR0EsUUFDTSxHQUdGQSxFQUFNd0csVUFDZixDQVVPLFNBQVMrQyxrQkFBa0JDLEdBQU8sVUFBRUMsR0FBWSxFQUFLLFlBQUVDLEdBQWMsR0FBUyxDQUFDLEdBQ3BGLElBQUkvSyxJQUFBQSxJQUFPSyxNQUFNd0ssR0FDZixNQUFNLElBQUlHLE1BQU0sK0RBRWxCLE1BQU1DLEVBQVlKLEVBQU16TixJQUFJLFFBQ3RCOE4sRUFBVUwsRUFBTXpOLElBQUksTUFFMUIsSUFBSStOLEVBQXVCLEdBZ0IzQixPQVpJTixHQUFTQSxFQUFNTyxVQUFZRixHQUFXRCxHQUFhRixHQUNyREksRUFBcUJ0RyxLQUFLLEdBQUdxRyxLQUFXRCxVQUFrQkosRUFBTU8sY0FHL0RGLEdBQVdELEdBQ1pFLEVBQXFCdEcsS0FBSyxHQUFHcUcsS0FBV0QsS0FHMUNFLEVBQXFCdEcsS0FBS29HLEdBSW5CSCxFQUFZSyxFQUF3QkEsRUFBcUIsSUFBTSxFQUN4RSxDQUVPLFNBQVNFLGFBQWFSLEVBQU9TLEdBV2xDLE9BVnVCVixrQkFBa0JDLEVBQU8sQ0FBRUMsV0FBVyxJQUsxRG5KLEtBQUk0SixHQUNJRCxFQUFZQyxLQUVwQnRNLFFBQU9wQixRQUFtQnRCLElBQVZzQixJQUVMLEVBQ2hCLENBaUJBLFNBQVMyTixtQkFBbUJuRCxHQUMxQixPQUFPQSxFQUNKZ0IsUUFBUSxNQUFPLEtBQ2ZBLFFBQVEsTUFBTyxLQUNmQSxRQUFRLEtBQU0sR0FDbkIsQ0FFTyxNQUFNb0MsYUFBZ0I1TixJQUN0QkEsTUFJRGtELFlBQVlsRCxLQUFVQSxFQUFNNk4sV0N6ekI1QkMsS0FBTzlPLEdBQUtBLEVBbUJILE1BQU0rTyxNQUVuQkMsV0FBQUEsQ0FBWUMsRUFBSyxDQUFDLEdBQ2hCQyxJQUFXOVAsS0FBTSxDQUNmK1AsTUFBTyxDQUFDLEVBQ1JDLFFBQVMsR0FDVEMsT0FBUSxDQUNOQyxRQUFTLENBQUMsRUFDVnhKLEdBQUksQ0FBQyxFQUNMeUosV0FBWSxDQUFDLEVBQ2JDLFlBQWEsQ0FBQyxFQUNkQyxhQUFjLENBQUMsR0FFakJDLFlBQWEsQ0FBQyxFQUNkQyxRQUFTLENBQUMsR0FDVFYsR0FFSDdQLEtBQUtxSCxVQUFZckgsS0FBS3dRLFdBQVdDLEtBQUt6USxNQUd0Q0EsS0FBSzBRLE1BK2JULFNBQVNDLGVBQWVDLEVBQWFDLEVBQWN4SixHQVdqRCxPQTllRixTQUFTeUosMEJBQTBCRixFQUFhQyxFQUFjeEosR0FFNUQsSUFBSTBKLEVBQWEsQ0FJZjNKLHNCQUF1QkMsSUFHekIsTUFBTTJKLEVBQW1CN04sRUFBSThOLHNDQUF3Q0MsRUFBQUEsUUFFckUsT0FBT0MsRUFBQUEsRUFBQUEsYUFBWVAsRUFBYUMsRUFBY0csR0FDNUNJLEVBQUFBLEVBQUFBLG9CQUFvQkwsSUFFeEIsQ0FzZGdCRCxDQUEwQkYsRUFBYUMsRUFBY3hKLEVBV3JFLENBM2NpQnNKLENBQWVqQixNQUFNbEYsRUFBQUEsRUFBQUEsUUFBT3hLLEtBQUsrUCxPQUFRL1AsS0FBS3FILFdBRzNEckgsS0FBS3FSLGFBQVksR0FHakJyUixLQUFLc1IsU0FBU3RSLEtBQUtnUSxRQUNyQixDQUVBdUIsUUFBQUEsR0FDRSxPQUFPdlIsS0FBSzBRLEtBQ2QsQ0FFQVksUUFBQUEsQ0FBU3RCLEVBQVN3QixHQUFRLEdBQ3hCLElBQUlDLEVBQWVDLGVBQWUxQixFQUFTaFEsS0FBS3FILGFBQ2hEc0ssYUFBYTNSLEtBQUtpUSxPQUFRd0IsR0FDdkJELEdBQ0R4UixLQUFLcVIsY0FHb0JPLGNBQWNwUSxLQUFLeEIsS0FBS2lRLE9BQVFELEVBQVNoUSxLQUFLcUgsY0FHdkVySCxLQUFLcVIsYUFFVCxDQUVBQSxXQUFBQSxDQUFZUSxHQUFhLEdBQ3ZCLElBQUl2SyxFQUFXdEgsS0FBS3VSLFdBQVdqSyxTQUMzQkMsRUFBV3ZILEtBQUt1UixXQUFXaEssU0FFL0J2SCxLQUFLc1EsWUFBY3RQLE9BQU9tRyxPQUFPLENBQUMsRUFDOUJuSCxLQUFLOFIsaUJBQ0w5UixLQUFLK1IsMEJBQTBCekssR0FDL0J0SCxLQUFLZ1MsNEJBQTRCekssRUFBVXZILEtBQUtxSCxXQUNoRHJILEtBQUtpUyxlQUFlMUssR0FDcEJ2SCxLQUFLa1MsUUFDTGxTLEtBQUttUyxjQUdOTixHQUNEN1IsS0FBS29TLGdCQUNULENBRUE1QixVQUFBQSxHQUNFLE9BQU94USxLQUFLc1EsV0FDZCxDQUVBd0IsY0FBQUEsR0FDRSxPQUFPOVEsT0FBT21HLE9BQU8sQ0FDbkJFLFVBQVdySCxLQUFLcUgsVUFDaEJrSyxTQUFVdlIsS0FBS3VSLFNBQVNkLEtBQUt6USxNQUM3QnFTLGNBQWVyUyxLQUFLcVMsY0FBYzVCLEtBQUt6USxNQUN2Q3VILFNBQVV2SCxLQUFLdVIsV0FBV2hLLFNBQzFCNEssV0FBWW5TLEtBQUtzUyxZQUFZN0IsS0FBS3pRLE1BQ2xDK0QsR0FBRSxJQUNGd08sTUFBS0EsS0FDSnZTLEtBQUtpUSxPQUFPRyxhQUFlLENBQUMsRUFDakMsQ0FFQWtDLFdBQUFBLEdBQ0UsT0FBT3RTLEtBQUtpUSxPQUFPQyxPQUNyQixDQUVBaUMsVUFBQUEsR0FDRSxNQUFPLENBQ0xqQyxRQUFTbFEsS0FBS2lRLE9BQU9DLFFBRXpCLENBRUFzQyxVQUFBQSxDQUFXdEMsR0FDVGxRLEtBQUtpUSxPQUFPQyxRQUFVQSxDQUN4QixDQUVBa0MsY0FBQUEsR0FDRXBTLEtBQUswUSxNQUFNK0IsZUF3VGYsU0FBU1osYUFBYWEsRUFBUXJMLEdBSTVCLE9BR0YsU0FBU3NMLFlBQVlDLEVBQWV2TCxHQUNsQyxJQUFJd0wsRUFBVzdSLE9BQU8rRixLQUFLNkwsR0FBZTVMLFFBQU8sQ0FBQzVGLEVBQUtOLEtBQ3JETSxFQUFJTixHQVdSLFNBQVNnUyxZQUFZQyxFQUFZMUwsR0FDL0IsTUFBTyxDQUFDMEksRUFBUSxJQUFJM0IsRUFBQUEsSUFBTzNHLEtBQ3pCLElBQUlzTCxFQUNGLE9BQU9oRCxFQUVULElBQUlpRCxFQUFTRCxFQUFXdEwsRUFBT25GLE1BQy9CLEdBQUcwUSxFQUFPLENBQ1IsTUFBTTlMLEVBQU0rTCxpQkFBaUJELEVBQU8zTCxFQUF4QjRMLENBQW1DbEQsRUFBT3RJLEdBR3RELE9BQWUsT0FBUlAsRUFBZTZJLEVBQVE3SSxDQUNoQyxDQUNBLE9BQU82SSxDQUFLLENBRWhCLENBekJlK0MsQ0FBWUYsRUFBYzlSLEdBQU11RyxHQUNwQ2pHLElBQ1AsQ0FBQyxHQUVILElBQUlKLE9BQU8rRixLQUFLOEwsR0FBVXZNLE9BQ3hCLE9BQU9vSixLQUdULE9BQU93RCxFQUFBQSxFQUFBQSxpQkFBZ0JMLEVBQ3pCLENBZFNGLENBSFU3TCxPQUFPNEwsR0FBU2hKLEdBQ3hCQSxFQUFJbUosV0FFa0J4TCxFQUNqQyxDQTdUOEJ3SyxDQUFhN1IsS0FBS2lRLE9BQU9JLGFBQWNyUSxLQUFLcUgsV0FDeEUsQ0FNQThMLE9BQUFBLENBQVFqRyxHQUNOLElBQUlrRyxFQUFTbEcsRUFBSyxHQUFHbUcsY0FBZ0JuRyxFQUFLb0csTUFBTSxHQUNoRCxPQUFPck0sVUFBVWpILEtBQUtpUSxPQUFPSSxjQUFjLENBQUMzRyxFQUFLNkosS0FDN0MsSUFBSW5PLEVBQVFzRSxFQUFJd0QsR0FDaEIsR0FBRzlILEVBQ0gsTUFBTyxDQUFDLENBQUNtTyxFQUFVSCxHQUFVaE8sRUFBTSxHQUV6QyxDQUVBb08sWUFBQUEsR0FDRSxPQUFPeFQsS0FBS21ULFFBQVEsWUFDdEIsQ0FFQU0sVUFBQUEsR0FHRSxPQUFPM00sT0FGYTlHLEtBQUttVCxRQUFRLFlBRUhPLEdBQ3JCek0sVUFBVXlNLEdBQVMsQ0FBQ2pNLEVBQVFrTSxLQUNqQyxHQUFHbE4sS0FBS2dCLEdBQ04sTUFBTyxDQUFDLENBQUNrTSxHQUFhbE0sRUFBTyxLQUdyQyxDQUVBc0sseUJBQUFBLENBQTBCekssR0FFdEIsT0FBT1IsT0FEVTlHLEtBQUs0VCxnQkFBZ0J0TSxJQUNWLENBQUNvTSxFQUFTRyxLQUNwQyxJQUFJQyxFQUFXOVQsS0FBS2lRLE9BQU9JLGFBQWF3RCxFQUFnQlAsTUFBTSxHQUFHLElBQUlTLFlBQ25FLE9BQUdELEVBQ01oTixPQUFPNE0sR0FBUyxDQUFDak0sRUFBUWtNLEtBQzlCLElBQUlLLEVBQU9GLEVBQVNILEdBQ3BCLE9BQUlLLEdBSUF4TyxNQUFNQyxRQUFRdU8sS0FDaEJBLEVBQU8sQ0FBQ0EsSUFFSEEsRUFBS2hOLFFBQU8sQ0FBQ2lOLEVBQUt2TixLQUN2QixJQUFJd04sVUFBWUEsSUFBSUMsSUFDWHpOLEVBQUd1TixFQUFLalUsS0FBS3FILFlBQWJYLElBQTZCeU4sR0FFdEMsSUFBSTFOLEtBQUt5TixXQUNQLE1BQU0sSUFBSUUsVUFBVSw4RkFFdEIsT0FBT25CLGlCQUFpQmlCLFVBQVdsVSxLQUFLcUgsVUFBVSxHQUNqREksR0FBVTRNLFNBQVMvUyxZQWRibUcsQ0FjdUIsSUFHL0JpTSxDQUFPLEdBRXBCLENBRUExQiwyQkFBQUEsQ0FBNEJ6SyxFQUFVRixHQUVsQyxPQUFPUCxPQURZOUcsS0FBS3NVLGtCQUFrQi9NLEVBQVVGLElBQ3RCLENBQUNrTixFQUFXQyxLQUN4QyxJQUFJQyxFQUFZLENBQUNELEVBQWtCbEIsTUFBTSxHQUFJLElBQ3pDUSxFQUFXOVQsS0FBS2lRLE9BQU9JLGFBQWFvRSxHQUFXQyxjQUNqRCxPQUFHWixFQUNNaE4sT0FBT3lOLEdBQVcsQ0FBQ0ksRUFBVUMsS0FDbEMsSUFBSVosRUFBT0YsRUFBU2MsR0FDcEIsT0FBSVosR0FJQXhPLE1BQU1DLFFBQVF1TyxLQUNoQkEsRUFBTyxDQUFDQSxJQUVIQSxFQUFLaE4sUUFBTyxDQUFDaU4sRUFBS3ZOLEtBQ3ZCLElBQUltTyxnQkFBa0JBLElBQUlWLElBQ2pCek4sRUFBR3VOLEVBQUtqVSxLQUFLcUgsWUFBYlgsQ0FBMEJhLElBQVczQyxNQUFNNlAsTUFBZU4sR0FFbkUsSUFBSTFOLEtBQUtvTyxpQkFDUCxNQUFNLElBQUlULFVBQVUsK0ZBRXRCLE9BQU9TLGVBQWUsR0FDckJGLEdBQVlOLFNBQVMvUyxZQWRmcVQsQ0FjeUIsSUFHakNKLENBQVMsR0FFdEIsQ0FFQU8sU0FBQUEsQ0FBVS9FLEdBQ1IsT0FBTy9PLE9BQU8rRixLQUFLL0csS0FBS2lRLE9BQU9JLGNBQWNySixRQUFPLENBQUM1RixFQUFLTixLQUN4RE0sRUFBSU4sR0FBT2lQLEVBQU01TyxJQUFJTCxHQUNkTSxJQUNOLENBQUMsRUFDTixDQUVBNlEsY0FBQUEsQ0FBZTFLLEdBQ2IsT0FBT3ZHLE9BQU8rRixLQUFLL0csS0FBS2lRLE9BQU9JLGNBQWNySixRQUFPLENBQUM1RixFQUFLTixLQUN0RE0sRUFBSU4sR0FBTyxJQUFLeUcsSUFBV3BHLElBQUlMLEdBQzVCTSxJQUNOLENBQUMsRUFDSixDQUVBOFEsS0FBQUEsR0FDRSxNQUFPLENBQ0x4TCxHQUFJMUcsS0FBS2lRLE9BQU92SixHQUVwQixDQUVBMkwsYUFBQUEsQ0FBYzBDLEdBQ1osTUFBTTdOLEVBQU1sSCxLQUFLaVEsT0FBT0UsV0FBVzRFLEdBRW5DLE9BQUd2UCxNQUFNQyxRQUFReUIsR0FDUkEsRUFBSUYsUUFBTyxDQUFDZ08sRUFBS0MsSUFDZkEsRUFBUUQsRUFBS2hWLEtBQUtxSCxvQkFHTCxJQUFkME4sRUFDRC9VLEtBQUtpUSxPQUFPRSxXQUFXNEUsR0FHekIvVSxLQUFLaVEsT0FBT0UsVUFDckIsQ0FFQW1FLGlCQUFBQSxDQUFrQi9NLEVBQVVGLEdBQzFCLE9BQU9QLE9BQU85RyxLQUFLd1QsZ0JBQWdCLENBQUNwUyxFQUFLTixLQUN2QyxJQUFJMlQsRUFBWSxDQUFDM1QsRUFBSXdTLE1BQU0sR0FBSSxJQUcvQixPQUFPeE0sT0FBTzFGLEdBQU1zRixHQUNYLElBQUl5TixLQUNULElBQUlqTixFQUFNK0wsaUJBQWlCdk0sRUFBSTFHLEtBQUtxSCxXQUFXNk4sTUFBTSxLQUFNLENBSm5DM04sSUFBVzNDLE1BQU02UCxNQUl3Q04sSUFNakYsTUFIbUIsbUJBQVRqTixJQUNSQSxFQUFNK0wsaUJBQWlCL0wsRUFBS2xILEtBQUtxSCxVQUEzQjRMLENBQXNDNUwsTUFFdkNILENBQUcsR0FFWixHQUVOLENBRUEwTSxlQUFBQSxDQUFnQnRNLEdBRWRBLEVBQVdBLEdBQVl0SCxLQUFLdVIsV0FBV2pLLFNBRXZDLE1BQU1vTSxFQUFVMVQsS0FBS3lULGFBRWYwQixRQUFVQyxHQUNZLG1CQUFkQSxFQUNIdE8sT0FBT3NPLEdBQVMvVCxHQUFROFQsUUFBUTlULEtBR2xDLElBQUs4UyxLQUNWLElBQUkxTSxFQUFTLEtBQ2IsSUFDRUEsRUFBUzJOLEtBQVlqQixFQUN2QixDQUNBLE1BQU94USxHQUNMOEQsRUFBUyxDQUFDbkYsS0FBTVQsRUFBZ0JnQyxPQUFPLEVBQU10QixTQUFTQyxFQUFBQSxFQUFBQSxnQkFBZW1CLEdBQ3ZFLENBQUMsUUFFQyxPQUFPOEQsQ0FDVCxHQUlKLE9BQU9YLE9BQU80TSxHQUFTMkIsSUFBaUJDLEVBQUFBLEVBQUFBLG9CQUFvQkgsUUFBU0UsR0FBaUIvTixJQUN4RixDQUVBaU8sa0JBQUFBLEdBQ0UsTUFBTyxJQUNFdlUsT0FBT21HLE9BQU8sQ0FBQyxFQUFHbkgsS0FBS3FILFlBRWxDLENBRUFtTyxxQkFBQUEsQ0FBc0JDLEdBQ3BCLE9BQVFuTyxHQUNDd0ksSUFBVyxDQUFDLEVBQUc5UCxLQUFLK1IsMEJBQTBCekssR0FBV3RILEtBQUtrUyxRQUFTdUQsRUFFbEYsRUFJRixTQUFTL0QsZUFBZTFCLEVBQVNPLEdBQy9CLE9BQUdsTCxTQUFTMkssS0FBYXZLLFFBQVF1SyxHQUN4QjBGLElBQU0sQ0FBQyxFQUFHMUYsR0FHaEJySixPQUFPcUosR0FDRDBCLGVBQWUxQixFQUFRTyxHQUFVQSxHQUd2QzlLLFFBQVF1SyxHQUNGQSxFQUNKdEssS0FBSWlRLEdBQVVqRSxlQUFlaUUsRUFBUXBGLEtBQ3JDdkosT0FBTzJLLGFBQWMsQ0FBRXhCLFdBQVlJLEVBQVE4QixrQkFHekMsQ0FBQyxDQUNWLENBRUEsU0FBU1QsY0FBYzVCLEVBQVNDLEdBQVEsVUFBRTJGLEdBQWMsQ0FBQyxHQUN2RCxJQUFJQyxFQUFrQkQsRUFRdEIsT0FQR3ZRLFNBQVMySyxLQUFhdkssUUFBUXVLLElBQ0MsbUJBQXRCQSxFQUFROEYsWUFDaEJELEdBQWtCLEVBQ2xCNUMsaUJBQWlCakQsRUFBUThGLFVBQVc3RixFQUFPNUksV0FBVzdGLEtBQUt4QixLQUFNaVEsSUFJbEV0SixPQUFPcUosR0FDRDRCLGNBQWNwUSxLQUFLeEIsS0FBTWdRLEVBQVFDLEdBQVNBLEVBQVEsQ0FBRTJGLFVBQVdDLElBRXJFcFEsUUFBUXVLLEdBQ0ZBLEVBQVF0SyxLQUFJaVEsR0FBVS9ELGNBQWNwUSxLQUFLeEIsS0FBTTJWLEVBQVExRixFQUFRLENBQUUyRixVQUFXQyxNQUc5RUEsQ0FDVCxDQUtBLFNBQVNsRSxhQUFhb0UsRUFBSyxDQUFDLEVBQUdDLEVBQUksQ0FBQyxHQUVsQyxJQUFJM1EsU0FBUzBRLEdBQ1gsTUFBTyxDQUFDLEVBRVYsSUFBSTFRLFNBQVMyUSxHQUNYLE9BQU9ELEVBS05DLEVBQUlDLGlCQUNMblAsT0FBT2tQLEVBQUlDLGdCQUFnQixDQUFDQyxFQUFXcFYsS0FDckMsTUFBTWtVLEVBQU1lLEVBQUs1RixZQUFjNEYsRUFBSzVGLFdBQVdyUCxHQUM1Q2tVLEdBQU94UCxNQUFNQyxRQUFRdVAsSUFDdEJlLEVBQUs1RixXQUFXclAsR0FBT2tVLEVBQUltQixPQUFPLENBQUNELFdBQzVCRixFQUFJQyxlQUFlblYsSUFDbEJrVSxJQUNSZSxFQUFLNUYsV0FBV3JQLEdBQU8sQ0FBQ2tVLEVBQUtrQixVQUN0QkYsRUFBSUMsZUFBZW5WLEdBQzVCLElBR0VFLE9BQU8rRixLQUFLaVAsRUFBSUMsZ0JBQWdCM1AsZUFJM0IwUCxFQUFJQyxnQkFRZixNQUFNLGFBQUU1RixHQUFpQjBGLEVBQ3pCLEdBQUcxUSxTQUFTZ0wsR0FDVixJQUFJLElBQUlrRCxLQUFhbEQsRUFBYyxDQUNqQyxNQUFNK0YsRUFBZS9GLEVBQWFrRCxHQUNsQyxJQUFJbE8sU0FBUytRLEdBQ1gsU0FHRixNQUFNLFlBQUVyQyxFQUFXLGNBQUVXLEdBQWtCMEIsRUFHdkMsR0FBSS9RLFNBQVMwTyxHQUNYLElBQUksSUFBSUosS0FBY0ksRUFBYSxDQUNqQyxJQUFJdE0sRUFBU3NNLEVBQVlKLEdBR3JCbk8sTUFBTUMsUUFBUWdDLEtBQ2hCQSxFQUFTLENBQUNBLEdBQ1ZzTSxFQUFZSixHQUFjbE0sR0FHekJ1TyxHQUFPQSxFQUFJM0YsY0FBZ0IyRixFQUFJM0YsYUFBYWtELElBQWN5QyxFQUFJM0YsYUFBYWtELEdBQVdRLGFBQWVpQyxFQUFJM0YsYUFBYWtELEdBQVdRLFlBQVlKLEtBQzlJcUMsRUFBSTNGLGFBQWFrRCxHQUFXUSxZQUFZSixHQUFjSSxFQUFZSixHQUFZd0MsT0FBT0gsRUFBSTNGLGFBQWFrRCxHQUFXUSxZQUFZSixJQUdqSSxDQUlGLEdBQUl0TyxTQUFTcVAsR0FDWCxJQUFJLElBQUlFLEtBQWdCRixFQUFlLENBQ3JDLElBQUlDLEVBQVdELEVBQWNFLEdBR3pCcFAsTUFBTUMsUUFBUWtQLEtBQ2hCQSxFQUFXLENBQUNBLEdBQ1pELEVBQWNFLEdBQWdCRCxHQUc3QnFCLEdBQU9BLEVBQUkzRixjQUFnQjJGLEVBQUkzRixhQUFha0QsSUFBY3lDLEVBQUkzRixhQUFha0QsR0FBV21CLGVBQWlCc0IsRUFBSTNGLGFBQWFrRCxHQUFXbUIsY0FBY0UsS0FDbEpvQixFQUFJM0YsYUFBYWtELEdBQVdtQixjQUFjRSxHQUFnQkYsRUFBY0UsR0FBY3VCLE9BQU9ILEVBQUkzRixhQUFha0QsR0FBV21CLGNBQWNFLElBRzNJLENBRUosQ0FHRixPQUFPOUUsSUFBV2lHLEVBQU1DLEVBQzFCLENBc0NBLFNBQVMvQyxpQkFBaUJ2TSxFQUFJVyxHQUFXLFVBQ3ZDZ1AsR0FBWSxHQUNWLENBQUMsR0FDSCxNQUFpQixtQkFBUDNQLEVBQ0RBLEVBR0YsWUFBWXlOLEdBQ2pCLElBQ0UsT0FBT3pOLEVBQUdsRixLQUFLeEIsUUFBU21VLEVBQzFCLENBQUUsTUFBTXRRLEdBQ04sR0FBR3dTLEVBQVcsQ0FDWixNQUFNLHlCQUFFQyxHQUE0QmpQLElBQVk4SyxhQUNSLG1CQUE3Qm1FLEVBQ1RBLEVBQXlCelMsR0FFekJELFFBQVFDLE1BQU1BLEVBRWxCLENBQ0EsT0FBTyxJQUNULENBQ0YsQ0FDRixDQ2hmQSxNQUFNLEdBQStCNUQsUUFBUSxhLGlDQ0l0QyxNQUFNc1csR0FBa0IsYUFDbEJDLEdBQVksWUFDWkMsR0FBUyxTQUNUQyxHQUFtQixtQkFDbkJDLEdBQWlCLGlCQUNqQkMsR0FBd0Isd0JBSTlCLFNBQVNDLGdCQUFnQnRVLEdBQzlCLE1BQU8sQ0FDTEQsS0FBTWlVLEdBQ05oVSxRQUFTQSxFQUViLENBRU8sU0FBU3VVLFVBQVV2VSxHQUN4QixNQUFPLENBQ0xELEtBQU1rVSxHQUNOalUsUUFBU0EsRUFFYixDQUVPLE1BQU13VSwyQkFBOEJ4VSxHQUFZLEVBQUl5VSxrQkFDekRBLEVBQVlGLFVBQVV2VSxHQUN0QnlVLEVBQVlDLDhCQUE4QixFQUdyQyxTQUFTQyxPQUFPM1UsR0FDckIsTUFBTyxDQUNMRCxLQUFNbVUsR0FDTmxVLFFBQVNBLEVBRWIsQ0FFTyxNQUFNNFUsd0JBQTJCNVUsR0FBWSxFQUFJeVUsa0JBQ3REQSxFQUFZRSxPQUFPM1UsR0FDbkJ5VSxFQUFZQyw4QkFBOEIsRUFHL0JHLHFCQUF3QjdVLEdBQVksRUFBSXlVLGNBQWFLLGlCQUNoRSxJQUFJLEtBQUVDLEVBQUksTUFBR0MsRUFBSyxRQUFFQyxHQUFZalYsR0FDNUIsT0FBRThCLEVBQU0sS0FBRTZJLEdBQVNvSyxFQUNuQkcsRUFBT3BULEVBQU9sRCxJQUFJLGVBR2ZnQyxFQUFJdVUsd0JBRUcsZUFBVEQsR0FBMEJELEdBQzdCSCxFQUFXdlUsV0FBWSxDQUNyQjZVLE9BQVF6SyxFQUNSMEssT0FBUSxPQUNSQyxNQUFPLFVBQ1BDLFFBQVMsa0hBSVJQLEVBQU0xVCxNQUNUd1QsRUFBV3ZVLFdBQVcsQ0FDcEI2VSxPQUFRekssRUFDUjBLLE9BQVEsT0FDUkMsTUFBTyxRQUNQQyxRQUFTek8sS0FBS3FGLFVBQVU2SSxLQUs1QlAsRUFBWWUsaUNBQWlDLENBQUVULE9BQU1DLFNBQVEsRUFJeEQsU0FBU1MsZ0JBQWdCelYsR0FDOUIsTUFBTyxDQUNMRCxLQUFNb1UsR0FDTm5VLFFBQVNBLEVBRWIsQ0FHTyxNQUFNd1YsaUNBQW9DeFYsR0FBWSxFQUFJeVUsa0JBQy9EQSxFQUFZZ0IsZ0JBQWdCelYsR0FDNUJ5VSxFQUFZQyw4QkFBOEIsRUFHL0JnQixrQkFBc0JYLEdBQVUsRUFBSU4sa0JBQy9DLElBQUksT0FBRTNTLEVBQU0sS0FBRTZJLEVBQUksU0FBRWdMLEVBQVEsU0FBRUMsRUFBUSxhQUFFQyxFQUFZLFNBQUVDLEVBQVEsYUFBRUMsR0FBaUJoQixFQUM3RWlCLEVBQU8sQ0FDVEMsV0FBWSxXQUNaQyxNQUFPbkIsRUFBS29CLE9BQU9yTCxLQWpGQSxLQWtGbkI2SyxXQUNBQyxZQUdFUSxFQUFVLENBQUMsRUFFZixPQUFRUCxHQUNOLElBQUssZ0JBY1QsU0FBU1EscUJBQXFCQyxFQUFRUixFQUFVQyxHQUN6Q0QsR0FDSHJYLE9BQU9tRyxPQUFPMFIsRUFBUSxDQUFDQyxVQUFXVCxJQUcvQkMsR0FDSHRYLE9BQU9tRyxPQUFPMFIsRUFBUSxDQUFDRSxjQUFlVCxHQUUxQyxDQXJCTU0sQ0FBcUJMLEVBQU1GLEVBQVVDLEdBQ3JDLE1BRUYsSUFBSyxRQUNISyxFQUFRSyxjQUFnQixTQUFXN00sS0FBS2tNLEVBQVcsSUFBTUMsR0FDekQsTUFDRixRQUNFMVUsUUFBUXFWLEtBQUssaUNBQWlDYixvREFHbEQsT0FBT3BCLEVBQVlrQyxpQkFBaUIsQ0FBRUMsS0FBTXBNLGNBQWN3TCxHQUFPYSxJQUFLL1UsRUFBT2xELElBQUksWUFBYStMLE9BQU15TCxVQUFTVSxNQWZqRyxDQUFDLEVBZXVHL0IsUUFBTSxFQWFySCxNQUFNZ0MscUJBQXlCaEMsR0FBVSxFQUFJTixrQkFDbEQsSUFBSSxPQUFFM1MsRUFBTSxPQUFFcVUsRUFBTSxLQUFFeEwsRUFBSSxTQUFFbUwsRUFBUSxhQUFFQyxHQUFpQmhCLEVBQ25EcUIsRUFBVSxDQUNaSyxjQUFlLFNBQVc3TSxLQUFLa00sRUFBVyxJQUFNQyxJQUU5Q0MsRUFBTyxDQUNUQyxXQUFZLHFCQUNaQyxNQUFPQyxFQUFPckwsS0F4SEssTUEySHJCLE9BQU8ySixFQUFZa0MsaUJBQWlCLENBQUNDLEtBQU1wTSxjQUFjd0wsR0FBT3JMLE9BQU1rTSxJQUFLL1UsRUFBT2xELElBQUksWUFBYW1XLE9BQU1xQixXQUFVLEVBR3hHWSxrQ0FBb0NBLEVBQUlqQyxPQUFNa0MsaUJBQW1CLEVBQUl4QyxrQkFDaEYsSUFBSSxPQUFFM1MsRUFBTSxLQUFFNkksRUFBSSxTQUFFbUwsRUFBUSxhQUFFQyxFQUFZLGFBQUVtQixHQUFpQm5DLEVBQ3pEaUIsRUFBTyxDQUNUQyxXQUFZLHFCQUNaa0IsS0FBTXBDLEVBQUtvQyxLQUNYWixVQUFXVCxFQUNYVSxjQUFlVCxFQUNmcUIsYUFBY0gsRUFDZEksY0FBZUgsR0FHakIsT0FBT3pDLEVBQVlrQyxpQkFBaUIsQ0FBQ0MsS0FBTXBNLGNBQWN3TCxHQUFPckwsT0FBTWtNLElBQUsvVSxFQUFPbEQsSUFBSSxZQUFhbVcsUUFBTSxFQUc5RnVDLDJDQUE2Q0EsRUFBSXZDLE9BQU1rQyxpQkFBbUIsRUFBSXhDLGtCQUN6RixJQUFJLE9BQUUzUyxFQUFNLEtBQUU2SSxFQUFJLFNBQUVtTCxFQUFRLGFBQUVDLEVBQVksYUFBRW1CLEdBQWlCbkMsRUFDekRxQixFQUFVLENBQ1pLLGNBQWUsU0FBVzdNLEtBQUtrTSxFQUFXLElBQU1DLElBRTlDQyxFQUFPLENBQ1RDLFdBQVkscUJBQ1prQixLQUFNcEMsRUFBS29DLEtBQ1haLFVBQVdULEVBQ1hzQixhQUFjSCxFQUNkSSxjQUFlSCxHQUdqQixPQUFPekMsRUFBWWtDLGlCQUFpQixDQUFDQyxLQUFNcE0sY0FBY3dMLEdBQU9yTCxPQUFNa00sSUFBSy9VLEVBQU9sRCxJQUFJLFlBQWFtVyxPQUFNcUIsV0FBUyxFQUd2R08saUJBQXFCbE0sR0FBVSxFQUFJdEcsS0FBSXlMLGFBQVk2RSxjQUFhSyxhQUFZeUMsZ0JBQWVDLGdCQUFlQyxvQkFDckgsSUFJSUMsR0FKQSxLQUFFZCxFQUFJLE1BQUVFLEVBQU0sQ0FBQyxFQUFDLFFBQUVWLEVBQVEsQ0FBQyxFQUFDLEtBQUV6TCxFQUFJLElBQUVrTSxFQUFHLEtBQUU5QixHQUFTdEssR0FFbEQsNEJBQUVrTixHQUFnQ0YsRUFBYzdILGNBQWdCLENBQUMsRUFJckUsR0FBSTRILEVBQWM1VixTQUFVLENBQzFCLElBQUlnVyxFQUFpQkwsRUFBY00scUJBQXFCTixFQUFjTyxrQkFDdEVKLEVBQVlLLEtBQVNsQixFQUFLZSxHQUFnQixFQUM1QyxNQUNFRixFQUFZSyxLQUFTbEIsRUFBS1csRUFBY1gsT0FBTyxHQUdQLGlCQUFoQ2MsSUFDUkQsRUFBVVosTUFBUXJZLE9BQU9tRyxPQUFPLENBQUMsRUFBRzhTLEVBQVVaLE1BQU9hLElBR3ZELE1BQU1LLEVBQVdOLEVBQVVyTyxXQUUzQixJQUFJNE8sRUFBV3haLE9BQU9tRyxPQUFPLENBQzNCLE9BQVMsb0NBQ1QsZUFBZ0Isb0NBQ2hCLG1CQUFvQixrQkFDbkJ3UixHQUVIalMsRUFBRytULE1BQU0sQ0FDUHJCLElBQUttQixFQUNMMU4sT0FBUSxPQUNSOEwsUUFBUzZCLEVBQ1RuQixNQUFPQSxFQUNQRixLQUFNQSxFQUNOdUIsbUJBQW9CdkksSUFBYXVJLG1CQUNqQ0Msb0JBQXFCeEksSUFBYXdJLHNCQUVuQ0MsTUFBSyxTQUFVQyxHQUNkLElBQUl0RCxFQUFRbE8sS0FBS0MsTUFBTXVSLEVBQVM3TixNQUM1Qm5KLEVBQVEwVCxJQUFXQSxFQUFNMVQsT0FBUyxJQUNsQ2lYLEVBQWF2RCxJQUFXQSxFQUFNdUQsWUFBYyxJQUUxQ0QsRUFBU0UsR0FVVmxYLEdBQVNpWCxFQUNaekQsRUFBV3ZVLFdBQVcsQ0FDcEI2VSxPQUFRekssRUFDUjJLLE1BQU8sUUFDUEQsT0FBUSxPQUNSRSxRQUFTek8sS0FBS3FGLFVBQVU2SSxLQUs1QlAsRUFBWWUsaUNBQWlDLENBQUVULE9BQU1DLFVBbkJuREYsRUFBV3ZVLFdBQVksQ0FDckI2VSxPQUFRekssRUFDUjJLLE1BQU8sUUFDUEQsT0FBUSxPQUNSRSxRQUFTK0MsRUFBU0csWUFnQnhCLElBQ0NDLE9BQU10WCxJQUNMLElBQ0ltVSxFQURNLElBQUkvSSxNQUFNcEwsR0FDRm1VLFFBS2xCLEdBQUluVSxFQUFFa1gsVUFBWWxYLEVBQUVrWCxTQUFTN04sS0FBTSxDQUNqQyxNQUFNa08sRUFBVXZYLEVBQUVrWCxTQUFTN04sS0FDM0IsSUFDRSxNQUFNbU8sRUFBa0MsaUJBQVpELEVBQXVCN1IsS0FBS0MsTUFBTTRSLEdBQVdBLEVBQ3JFQyxFQUFhdFgsUUFDZmlVLEdBQVcsWUFBWXFELEVBQWF0WCxTQUNsQ3NYLEVBQWFDLG9CQUNmdEQsR0FBVyxrQkFBa0JxRCxFQUFhQyxvQkFDOUMsQ0FBRSxNQUFPQyxHQUNQLENBRUosQ0FDQWhFLEVBQVd2VSxXQUFZLENBQ3JCNlUsT0FBUXpLLEVBQ1IySyxNQUFPLFFBQ1BELE9BQVEsT0FDUkUsUUFBU0EsR0FDUixHQUNILEVBR0csU0FBU3dELGNBQWMvWSxHQUM1QixNQUFPLENBQ0xELEtBQU1xVSxHQUNOcFUsUUFBU0EsRUFFYixDQUVPLFNBQVNnWixxQkFBcUJoWixHQUNuQyxNQUFPLENBQ0xELEtBQU1zVSxHQUNOclUsUUFBU0EsRUFFYixDQUVPLE1BQU0wVSw2QkFBK0JBLElBQU0sRUFBSStDLGdCQUFlN0gsaUJBR25FLElBRmdCQSxJQUVIcUoscUJBQXNCLE9BR25DLE1BQU1DLEVBQWF6QixFQUFjeUIsYUFBYXZXLE9BQzlDd1csYUFBYUMsUUFBUSxhQUFjdFMsS0FBS3FGLFVBQVUrTSxHQUFZLEVBR25ERyxVQUFZQSxDQUFDeEMsRUFBSzFCLElBQTRCLEtBQ3pEdlUsRUFBSXVVLHdCQUEwQkEsRUFFOUJ2VSxFQUFJRyxLQUFLOFYsRUFBSSxFQ2hSZixJQUNFLENBQUM3QyxJQUFrQixDQUFDeEcsR0FBU3hOLGFBQ3BCd04sRUFBTXRGLElBQUssa0JBQW1CbEksR0FHdkMsQ0FBQ2lVLElBQVksQ0FBQ3pHLEdBQVN4TixjQUNyQixJQUFJc1osR0FBYXJSLEVBQUFBLEVBQUFBLFFBQU9qSSxHQUNwQm1ELEVBQU1xSyxFQUFNNU8sSUFBSSxnQkFBaUJpTixFQUFBQSxFQUFBQSxPQXdCckMsT0FyQkF5TixFQUFXQyxXQUFXdFMsU0FBUyxFQUFHMUksRUFBS2liLE1BQ3JDLElBQUtwVixPQUFPb1YsRUFBU25YLE9BQ25CLE9BQU9tTCxFQUFNdEYsSUFBSSxhQUFjL0UsR0FFakMsSUFBSXBELEVBQU95WixFQUFTblgsTUFBTSxDQUFDLFNBQVUsU0FFckMsR0FBYyxXQUFUdEMsR0FBOEIsU0FBVEEsRUFDeEJvRCxFQUFNQSxFQUFJK0UsSUFBSTNKLEVBQUtpYixRQUNkLEdBQWMsVUFBVHpaLEVBQW1CLENBQzdCLElBQUk0VixFQUFXNkQsRUFBU25YLE1BQU0sQ0FBQyxRQUFTLGFBQ3BDdVQsRUFBVzRELEVBQVNuWCxNQUFNLENBQUMsUUFBUyxhQUV4Q2MsRUFBTUEsRUFBSXNXLE1BQU0sQ0FBQ2xiLEVBQUssU0FBVSxDQUM5Qm9YLFNBQVVBLEVBQ1YrRCxPQUFRLFNBQVc5UCxLQUFLK0wsRUFBVyxJQUFNQyxLQUczQ3pTLEVBQU1BLEVBQUlzVyxNQUFNLENBQUNsYixFQUFLLFVBQVdpYixFQUFTNWEsSUFBSSxVQUNoRCxLQUdLNE8sRUFBTXRGLElBQUssYUFBYy9FLEVBQUssRUFHdkMsQ0FBQ2dSLElBQW1CLENBQUMzRyxHQUFTeE4sY0FDNUIsSUFDSTJaLEdBREEsS0FBRTVFLEVBQUksTUFBRUMsR0FBVWhWLEVBR3RCK1UsRUFBS0MsTUFBUXZXLE9BQU9tRyxPQUFPLENBQUMsRUFBR29RLEdBQy9CMkUsR0FBYTFSLEVBQUFBLEVBQUFBLFFBQU84TSxHQUVwQixJQUFJNVIsRUFBTXFLLEVBQU01TyxJQUFJLGdCQUFpQmlOLEVBQUFBLEVBQUFBLE9BR3JDLE9BRkExSSxFQUFNQSxFQUFJK0UsSUFBSXlSLEVBQVcvYSxJQUFJLFFBQVMrYSxHQUUvQm5NLEVBQU10RixJQUFLLGFBQWMvRSxFQUFLLEVBR3ZDLENBQUMrUSxJQUFTLENBQUMxRyxHQUFTeE4sY0FDbEIsSUFBSTRaLEVBQVNwTSxFQUFNNU8sSUFBSSxjQUFjaWIsZUFBZVgsSUFDaERsWixFQUFRaUgsU0FBUzhOLElBQ2ZtRSxFQUFXWSxPQUFPL0UsRUFBSyxHQUN2QixJQUdOLE9BQU92SCxFQUFNdEYsSUFBSSxhQUFjMFIsRUFBTyxFQUd4QyxDQUFDeEYsSUFBaUIsQ0FBQzVHLEdBQVN4TixhQUNuQndOLEVBQU10RixJQUFJLFVBQVdsSSxHQUc5QixDQUFDcVUsSUFBd0IsQ0FBQzdHLEdBQVN4TixhQUMxQndOLEVBQU10RixJQUFJLGNBQWNELEVBQUFBLEVBQUFBLFFBQU9qSSxFQUFRa1osY0MxRTVDLEdBQStCeGIsUUFBUSxZQ0d2QzhQLE1BQVFBLEdBQVNBLEVBRVZ1TSxJQUFtQkMsRUFBQUEsR0FBQUEsZ0JBQzVCeE0sT0FDQXVILEdBQVFBLEVBQUtuVyxJQUFLLHFCQUdUcWIsSUFBeUJELEVBQUFBLEdBQUFBLGdCQUNsQ3hNLE9BQ0EsSUFBTSxFQUFJZ0ssb0JBQ1IsSUFBSTBDLEVBQWMxQyxFQUFjMkMsd0JBQXlCdE8sRUFBQUEsRUFBQUEsS0FBSSxDQUFDLEdBQzFEN0QsR0FBT29TLEVBQUFBLEVBQUFBLFFBVVgsT0FQQUYsRUFBWVgsV0FBV3RTLFNBQVMsRUFBRzFJLEVBQUs0SSxNQUN0QyxJQUFJaEUsR0FBTTBJLEVBQUFBLEVBQUFBLE9BRVYxSSxFQUFNQSxFQUFJK0UsSUFBSTNKLEVBQUs0SSxHQUNuQmEsRUFBT0EsRUFBSzNCLEtBQUtsRCxFQUFJLElBR2hCNkUsQ0FBSSxJQUlKcVMsZUFDWEEsQ0FBQzdNLEVBQU83QyxJQUNSLEVBQUc2TSxvQkFDRDRDLEVBQUFBLEVBQUFBLE1BQ0U1QyxFQUFjNVYsU0FDVixDQUFDLGFBQWMsa0JBQW1CK0ksR0FDbEMsQ0FBQyxzQkFBdUJBLElBR3JCMlAsc0JBQXdCQSxDQUFFOU0sRUFBTzhMLElBQWdCLEVBQUk5QixvQkFDaEVuVyxRQUFRcVYsS0FBSywrRkFDYixJQUFJeUQsRUFBc0IzQyxFQUFjMkMsc0JBQ3BDUCxHQUFTUSxFQUFBQSxFQUFBQSxRQTBCYixPQXhCQWQsRUFBV2lCLFdBQVd0VCxTQUFVdVQsSUFDOUIsSUFBSXJYLEdBQU0wSSxFQUFBQSxFQUFBQSxPQUNWMk8sRUFBTWpCLFdBQVd0UyxTQUFTLEVBQUUwRCxFQUFNd0wsTUFDaEMsSUFDSXNFLEVBREFuYyxFQUFhNmIsRUFBb0J2YixJQUFJK0wsR0FHVCxXQUEzQnJNLEVBQVdNLElBQUksU0FBd0J1WCxFQUFPL04sT0FDakRxUyxFQUFnQm5jLEVBQVdNLElBQUksVUFFL0I2YixFQUFjdFksU0FBUzhFLFNBQVUxSSxJQUN6QjRYLEVBQU91RSxTQUFTbmMsS0FDcEJrYyxFQUFnQkEsRUFBY1gsT0FBT3ZiLEdBQ3ZDLElBR0ZELEVBQWFBLEVBQVc0SixJQUFJLGdCQUFpQnVTLElBRy9DdFgsRUFBTUEsRUFBSStFLElBQUl5QyxFQUFNck0sRUFBVyxJQUdqQ3NiLEVBQVNBLEVBQU92VCxLQUFLbEQsRUFBSSxJQUdwQnlXLENBQU0sRUFHRmUsMkJBQTZCQSxDQUFDbk4sRUFBTzhMLEdBQWFjLEVBQUFBLEVBQUFBLFVBQVcsRUFBRzNDLG9CQUMzRSxNQUFNbUQsRUFBaUJuRCxFQUFjd0MsMkJBQTRCRyxFQUFBQSxFQUFBQSxRQUNqRSxJQUFJUixHQUFTUSxFQUFBQSxFQUFBQSxRQXFCYixPQXBCQVEsRUFBZTNULFNBQVUzSSxJQUN2QixJQUFJa2IsRUFBV0YsRUFBV3RPLE1BQUs2UCxHQUFPQSxFQUFJamMsSUFBSU4sRUFBVzZELFNBQVNDLFdBQzdEb1gsSUFDSGxiLEVBQVcySSxTQUFTLENBQUM2VCxFQUFPblEsS0FDMUIsR0FBMkIsV0FBdEJtUSxFQUFNbGMsSUFBSSxRQUF1QixDQUNwQyxNQUFNbWMsRUFBaUJ2QixFQUFTNWEsSUFBSStMLEdBQ3BDLElBQUlxUSxFQUFtQkYsRUFBTWxjLElBQUksVUFDN0J3YixFQUFBQSxLQUFLM1QsT0FBT3NVLElBQW1CbFAsRUFBQUEsSUFBSWhLLE1BQU1tWixLQUMzQ0EsRUFBaUI3WSxTQUFTOEUsU0FBVTFJLElBQzVCd2MsRUFBZUwsU0FBU25jLEtBQzVCeWMsRUFBbUJBLEVBQWlCbEIsT0FBT3ZiLEdBQzdDLElBRUZELEVBQWFBLEVBQVc0SixJQUFJeUMsRUFBTW1RLEVBQU01UyxJQUFJLFNBQVU4UyxJQUUxRCxLQUVGcEIsRUFBU0EsRUFBT3ZULEtBQUsvSCxHQUN2QixJQUVLc2IsQ0FBTSxFQUdGVixJQUFhYyxFQUFBQSxHQUFBQSxnQkFDdEJ4TSxPQUNBdUgsR0FBUUEsRUFBS25XLElBQUksZ0JBQWlCaU4sRUFBQUEsRUFBQUEsU0FJekJvUCxhQUFlQSxDQUFFek4sRUFBTzhMLElBQWdCLEVBQUk3QixvQkFDdkQsSUFBSXlCLEVBQWF6QixFQUFjeUIsYUFFL0IsT0FBSWtCLEVBQUFBLEtBQUszVCxPQUFPNlMsS0FJUEEsRUFBVzNXLE9BQU9sQyxRQUFVK1ksSUFLVixJQUZoQi9hLE9BQU8rRixLQUFLZ1YsR0FBVXJXLEtBQUs1RSxLQUNOMmEsRUFBV3RhLElBQUlMLEtBQ3hDNk0sU0FBUSxLQUNWckgsT0FUSSxJQVNFLEVBR0E2TCxJQUFhb0ssRUFBQUEsR0FBQUEsZ0JBQ3RCeE0sT0FDQXVILEdBQVFBLEVBQUtuVyxJQUFLLGFDdEhUc2MsUUFBVUEsQ0FBRUMsR0FBYTFELGdCQUFlRCxtQkFBb0IsRUFBRzRELE9BQU05USxTQUFRK1EsWUFBV25JLGFBQ25HLElBQUlvRyxFQUFhLENBQ2ZKLFdBQVl6QixFQUFjeUIsY0FBZ0J6QixFQUFjeUIsYUFBYXZXLE9BQ3JFdVgsWUFBYTFDLEVBQWMyQyx1QkFBeUIzQyxFQUFjMkMsc0JBQXNCeFgsT0FDeEYyWSxhQUFlOUQsRUFBY2dDLFlBQWNoQyxFQUFjZ0MsV0FBVzdXLFFBR3RFLE9BQU93WSxFQUFVLENBQUVDLE9BQU05USxTQUFRK1EsWUFBVy9CLGdCQUFlcEcsR0FBUyxFQ0x6RHFJLE9BQVNBLENBQUNKLEVBQVd6TixJQUFZMU4sSUFDNUMsTUFBTSxXQUFFNFAsRUFBVSxZQUFFNkUsR0FBZ0IvRyxFQUM5QkMsRUFBVWlDLElBS2hCLEdBSEF1TCxFQUFVbmIsR0FHTjJOLEVBQVFzTCxxQkFBc0IsQ0FDaEMsTUFBTUMsRUFBYUMsYUFBYXFDLFFBQVEsY0FDcEN0QyxHQUNGekUsRUFBWXVFLHFCQUFxQixDQUMvQkUsV0FBWXBTLEtBQUtDLE1BQU1tUyxJQUc3QixHQ05XM0UsdUJBQVlBLENBQUM0RyxFQUFXek4sSUFBWTFOLElBQy9DbWIsRUFBVW5iLEdBSVYsR0FGZ0IwTixFQUFPa0MsYUFFVnFKLHFCQUdiLElBQ0UsT0FBTyxPQUFFblgsRUFBTSxNQUFFekMsSUFBV1osT0FBT2dkLE9BQU96YixHQUNwQzBiLEVBQXNDLFdBQXZCNVosRUFBT2xELElBQUksUUFDMUIrYyxFQUFrQyxXQUFyQjdaLEVBQU9sRCxJQUFJLE1BQ0w4YyxHQUFnQkMsSUFHdkNDLFNBQVNDLE9BQVMsR0FBRy9aLEVBQU9sRCxJQUFJLFdBQVdTLDJCQUUvQyxDQUFFLE1BQU9pQyxHQUNQRCxRQUFRQyxNQUNOLDJEQUNBQSxFQUVKLEdBR1dxVCxvQkFBU0EsQ0FBQ3dHLEVBQVd6TixJQUFZMU4sSUFDNUMsTUFBTTJOLEVBQVVELEVBQU9rQyxhQUNqQnNKLEVBQWF4TCxFQUFPK0osY0FBY3lCLGFBR3hDLElBQ012TCxFQUFRc0wsc0JBQXdCaFcsTUFBTUMsUUFBUWxELElBQ2hEQSxFQUFRaUgsU0FBUzZVLElBQ2YsTUFBTS9HLEVBQU9tRSxFQUFXdGEsSUFBSWtkLEVBQWdCLENBQUMsR0FDdkNKLEVBQWtELFdBQW5DM0csRUFBSzFTLE1BQU0sQ0FBQyxTQUFVLFNBQ3JDc1osRUFBOEMsV0FBakM1RyxFQUFLMVMsTUFBTSxDQUFDLFNBQVUsT0FHekMsR0FGeUJxWixHQUFnQkMsRUFFbkIsQ0FDcEIsTUFBTUksRUFBYWhILEVBQUsxUyxNQUFNLENBQUMsU0FBVSxTQUN6Q3VaLFNBQVNDLE9BQVMsR0FBR0UsdUJBQ3ZCLElBR04sQ0FBRSxNQUFPemEsR0FDUEQsUUFBUUMsTUFDTiwyREFDQUEsRUFFSixDQUVBNlosRUFBVW5iLEVBQVEsRUM5RGQsR0FBK0J0QyxRQUFRLGMsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEsZSxpQ0NPN0MsTUFBTXNlLHFCQUFxQmhNLElBQUFBLFVBQ3pCaU0sZUFBQUEsQ0FBZ0J6TyxFQUFPc04sR0FFckIsTUFBTyxDQUFFdE4sUUFBTzBPLFNBRENDLEtBQUtyQixFQUFPcmMsT0FBTytGLEtBQUtzVyxFQUFNaFcsY0FFakQsQ0FFQXNYLE1BQUFBLEdBQ0UsTUFBTSxhQUFFQyxFQUFZLFNBQUVILEdBQWF6ZSxLQUFLcWQsTUFDbEN3QixFQUFXRCxFQUFhLFlBRTlCLE9BQU9yTSxJQUFBQSxjQUFDc00sRUFBYUosRUFDdkIsRUFRRixzQkNuQkEsTUFBTUssdUJBQXVCdk0sSUFBQUEsVUFDM0JpTSxlQUFBQSxDQUFnQnpPLEVBQU9zTixHQUVyQixNQUFPLENBQUV0TixRQUFPME8sU0FEQ0MsS0FBS3JCLEVBQU9yYyxPQUFPK0YsS0FBS3NXLEVBQU1oVyxjQUVqRCxDQUVBc1gsTUFBQUEsR0FDRSxNQUFNLGFBQUVDLEVBQVksU0FBRUgsR0FBYXplLEtBQUtxZCxNQUNsQzBCLEVBQWFILEVBQWEsY0FFaEMsT0FBT3JNLElBQUFBLGNBQUN3TSxFQUFlTixFQUN6QixFQVFGLHdCQ2hCZSxnQkFDYixNQUFPLENBQ0wzSSxTQUFBQSxDQUFVN0YsR0FDUmpRLEtBQUtvUSxZQUFjcFEsS0FBS29RLGFBQWUsQ0FBQyxFQUN4Q3BRLEtBQUtvUSxZQUFZNE8sVUFBWS9PLEVBQU8rRyxZQUFZc0UsY0FDaER0YixLQUFLb1EsWUFBWTZPLG1CQUFxQkEsbUJBQW1CeE8sS0FBSyxLQUFNUixHQUNwRWpRLEtBQUtvUSxZQUFZOE8sa0JBQW9CQSxrQkFBa0J6TyxLQUFLLEtBQU1SLEVBQ3BFLEVBQ0FFLFdBQVksQ0FDVm9PLGFBQWNBLEdBQ2RPLGVBQWdCQSxHQUNoQkssc0JBQXVCWixHQUN2QmEsd0JBQXlCTixJQUUzQnpPLGFBQWMsQ0FDWmlILEtBQU0sQ0FDSnpFLFNBQVEsR0FDUmEsUUFBTyxFQUNQYSxVQUFTLEVBQ1RSLFlBQWEsQ0FDWCtDLFVBQVd1SSx1QkFDWG5JLE9BQVFvSSxzQkFHWnBQLFFBQVMsQ0FDUDZELFlBQWEsQ0FDWCtKLFNBR0p5QixLQUFNLENBQ0p4TCxZQUFhLENBQ1gwSixXQUtWLENBRU8sU0FBU3lCLGtCQUFrQmpQLEVBQVFuUCxFQUFLb1gsRUFBVUMsR0FDdkQsTUFDRW5CLGFBQWEsVUFBRUYsR0FDZmlELGVBQWUsU0FBRXlGLEVBQVEsT0FBRXJiLElBQ3pCOEwsRUFFRXdQLEVBQWlCdGIsSUFBVyxDQUFDLGFBQWMsbUJBQXFCLENBQUMsdUJBRWpFRSxFQUFTbWIsSUFBVzVhLE1BQU0sSUFBSTZhLEVBQWdCM2UsSUFFcEQsT0FBSXVELEVBSUd5UyxFQUFVLENBQ2YsQ0FBQ2hXLEdBQU0sQ0FDTGMsTUFBTyxDQUNMc1csV0FDQUMsWUFFRjlULE9BQVFBLEVBQU9hLFVBVFYsSUFZWCxDQUVPLFNBQVMrWixtQkFBbUJoUCxFQUFRblAsRUFBS2MsR0FDOUMsTUFDRW9WLGFBQWEsVUFBRUYsR0FDZmlELGVBQWUsU0FBRXlGLEVBQVEsT0FBRXJiLElBQ3pCOEwsRUFFRXdQLEVBQWlCdGIsSUFBVyxDQUFDLGFBQWMsbUJBQXFCLENBQUMsdUJBRWpFRSxFQUFTbWIsSUFBVzVhLE1BQU0sSUFBSTZhLEVBQWdCM2UsSUFFcEQsT0FBSXVELEVBSUd5UyxFQUFVLENBQ2YsQ0FBQ2hXLEdBQU0sQ0FDTGMsUUFDQXlDLE9BQVFBLEVBQU9hLFVBTlYsSUFTWCxDQzdGQSxNQUFNLEdBQStCakYsUUFBUSxXLGlDQ0V0QyxNQ0dNeWYsR0FBaUIsaUJBQ2pCQyxHQUFpQixpQkFHdkIsU0FBU0MsT0FBT0MsRUFBWUMsR0FDakMsTUFBTyxDQUNMeGQsS0FBTW9kLEdBQ05uZCxRQUFTLENBQ1AsQ0FBQ3NkLEdBQWFDLEdBR3BCLENBR08sU0FBU0MsT0FBT0YsR0FDckIsTUFBTyxDQUNMdmQsS0FBTXFkLEdBQ05wZCxRQUFTc2QsRUFFYixDQUdPLE1BQU0vQixlQUFTQSxJQUFNLE9BSWZrQyxlQUFrQkMsR0FBU2hRLElBQ3RDLE1BQ0V2SixJQUFJLE1BQUUrVCxJQUNKeEssRUFFSixPQUFPd0ssRUFBTXdGLEVBQUksRUFHTkMsZUFBaUJBLENBQUNELEVBQUtFLElBQVFsUSxJQUMxQyxNQUFNLFlBQUVtUSxFQUFXLGVBQUVDLEdBQW1CcFEsRUFFeEMsR0FBSWdRLEVBQ0YsT0FBT0ksRUFBZUwsZUFBZUMsR0FBS3JGLEtBQUtwVCxLQUFNQSxNQUd2RCxTQUFTQSxLQUFLTixHQUNSQSxhQUFlNkgsT0FBUzdILEVBQUlvWixRQUFVLEtBQ3hDRixFQUFZRyxvQkFBb0IsZ0JBQ2hDSCxFQUFZRyxvQkFBb0IsZ0JBQ2hDSCxFQUFZSSxVQUFVLElBQ3RCNWMsUUFBUUMsTUFBTXFELEVBQUk4VCxXQUFhLElBQU1pRixFQUFJN0csS0FDekMrRyxFQUFHLE9BRUhBLEVEcERxQk0sRUFBQ0MsRUFBTXpRLEtBQ2hDLElBQ0UsT0FBTzBRLEtBQUFBLEtBQVVELEVBQ25CLENBQUUsTUFBTS9jLEdBSU4sT0FISXNNLEdBQ0ZBLEVBQU9vSCxXQUFXalYsYUFBYyxJQUFJMk0sTUFBTXBMLElBRXJDLENBQUMsQ0FDVixHQzRDTzhjLENBQVl2WixFQUFJMFosS0FBTTNRLEdBRTdCLEdDdkRXOU8sSUFBTUEsQ0FBQzRPLEVBQU80TixJQUNsQjVOLEVBQU1uTCxNQUFNWSxNQUFNQyxRQUFRa1ksR0FBUUEsRUFBTyxDQUFDQSxJQ0tuRCxJQUVFLENBQUMrQixJQUFpQixDQUFDM1AsRUFBT3RJLElBQ2pCc0ksRUFBTTJGLE9BQU1sTCxFQUFBQSxFQUFBQSxRQUFPL0MsRUFBT2xGLFVBR25DLENBQUNvZCxJQUFpQixDQUFDNVAsRUFBT3RJLEtBQ3hCLE1BQU1vWSxFQUFhcFksRUFBT2xGLFFBQ3BCc2UsRUFBUzlRLEVBQU01TyxJQUFJMGUsR0FDekIsT0FBTzlQLEVBQU10RixJQUFJb1YsR0FBYWdCLEVBQU8sR0NaMUIsU0FBU0MsZ0JBRXRCLE1BQU8sQ0FDTHpRLGFBQWMsQ0FDWkgsUUFBUyxDQUNQMkMsU0FBUSxHQUNSYSxRQUFPLEVBQ1BhLFVBQVNBLElBSWpCLENDZk8sTUFBTXdNLFFBQVduZixHQUNuQkEsRUFDTXlCLFFBQVEyZCxVQUFVLEtBQU0sS0FBTSxJQUFJcGYsS0FFbEM4QixPQUFPTixTQUFTNmQsS0FBTyxHQ0o1QixHQUErQmhoQixRQUFRLGEsaUNDSzdDLE1BQU1paEIsR0FBWSxtQkFDWkMsR0FBa0Isc0JBdUp4QixVQUNFemEsR0FBSSxDQUNGMGEsZ0JBdEJKLFNBQVNBLGdCQUFnQkMsRUFBU0MsR0FDaEMsTUFBTUMsRUFBY3BELFNBQVNxRCxnQkFDN0IsSUFBSUMsRUFBUUMsaUJBQWlCTCxHQUM3QixNQUFNTSxFQUF5QyxhQUFuQkYsRUFBTUcsU0FDNUJDLEVBQWdCUCxFQUFnQix1QkFBeUIsZ0JBRS9ELEdBQXVCLFVBQW5CRyxFQUFNRyxTQUNSLE9BQU9MLEVBQ1QsSUFBSyxJQUFJTyxFQUFTVCxFQUFVUyxFQUFTQSxFQUFPQyxlQUUxQyxHQURBTixFQUFRQyxpQkFBaUJJLEtBQ3JCSCxHQUEwQyxXQUFuQkYsRUFBTUcsV0FHN0JDLEVBQWM5WCxLQUFLMFgsRUFBTU8sU0FBV1AsRUFBTVEsVUFBWVIsRUFBTVMsV0FDOUQsT0FBT0osRUFHWCxPQUFPUCxDQUNULEdBTUVsUixhQUFjLENBQ1o4UixPQUFRLENBQ056TyxRQUFTLENBQ1AwTyxnQkE3Q3VCQSxDQUFDQyxFQUFLQyxJQUFlclMsSUFDbEQsSUFDRXFTLEVBQVlBLEdBQWFyUyxFQUFPdkosR0FBRzBhLGdCQUFnQmlCLEdBQ2xDRSxLQUFBQSxlQUF5QkQsR0FDL0JFLEdBQUdILEVBQ2hCLENBQUUsTUFBTTFlLEdBQ05DLFFBQVFDLE1BQU1GLEVBQ2hCLEdBdUNNOGUsU0F2SGlCOUUsSUFDaEIsQ0FDTHJiLEtBQU00ZSxHQUNOM2UsUUFBU2lELE1BQU1DLFFBQVFrWSxHQUFRQSxFQUFPLENBQUNBLEtBcUhuQytFLGNBckNxQkEsS0FDcEIsQ0FDTHBnQixLQUFNNmUsS0FvQ0Z3QixjQTFEcUJBLENBQUNDLEVBQVlQLElBQVNwUyxJQUNqRCxNQUFNNFMsRUFBYzVTLEVBQU82UyxnQkFBZ0JDLGlCQUV4Q2hmLElBQUFBLEdBQU04ZSxHQUFhclksRUFBQUEsRUFBQUEsUUFBT29ZLE1BQzNCM1MsRUFBTytTLGNBQWNaLGdCQUFnQkMsR0FDckNwUyxFQUFPK1MsY0FBY04sZ0JBQ3ZCLEVBcURNTyxrQkFuSDBCQyxHQUFZLEVBQUdGLGdCQUFlRixrQkFBaUIzUSxpQkFFL0UsR0FBSUEsSUFBYWdSLGFBSWRELEVBQVMsQ0FDVixJQUFJakMsRUFBT2lDLEVBQVE1UCxNQUFNLEdBR1YsTUFBWjJOLEVBQUssS0FFTkEsRUFBT0EsRUFBSzNOLE1BQU0sSUFHTCxNQUFaMk4sRUFBSyxLQUlOQSxFQUFPQSxFQUFLM04sTUFBTSxJQUdwQixNQUFNOFAsRUFBWW5DLEVBQUtvQyxNQUFNLEtBQUszZCxLQUFJZ0UsR0FBUUEsR0FBTyxLQUUvQ2taLEVBQWFFLEVBQWdCUSwyQkFBMkJGLElBRXZEOWdCLEVBQU1paEIsRUFBUSxHQUFJQyxFQUFtQixJQUFNWixFQUVsRCxHQUFZLGVBQVR0Z0IsRUFBdUIsQ0FFeEIsTUFBTW1oQixFQUFnQlgsRUFBZ0JRLDJCQUEyQixDQUFDQyxJQUkvREEsRUFBTTVWLFFBQVEsTUFBUSxJQUN2Qi9KLFFBQVFxVixLQUFLLG1HQUNiK0osRUFBY1UsS0FBS0QsRUFBYy9kLEtBQUlnRSxHQUFPQSxFQUFJMEQsUUFBUSxLQUFNLFFBQU8sSUFHdkU0VixFQUFjVSxLQUFLRCxHQUFlLEVBQ3BDLEVBSUlGLEVBQU01VixRQUFRLE1BQVEsR0FBSzZWLEVBQWlCN1YsUUFBUSxNQUFRLEtBQzlEL0osUUFBUXFWLEtBQUssbUdBQ2IrSixFQUFjVSxLQUFLZCxFQUFXbGQsS0FBSWdFLEdBQU9BLEVBQUkwRCxRQUFRLEtBQU0sUUFBTyxJQUdwRTRWLEVBQWNVLEtBQUtkLEdBQVksR0FHL0JJLEVBQWNQLFNBQVNHLEVBQ3pCLElBZ0VJck8sVUFBVyxDQUNUd08sZUFBZWhULEdBQ05BLEVBQU01TyxJQUFJLGVBRW5CbWlCLDBCQUFBQSxDQUEyQnZULEVBQU80VCxHQUNoQyxNQUFPQyxFQUFLQyxHQUFlRixFQUUzQixPQUFHRSxFQUNNLENBQUMsYUFBY0QsRUFBS0MsR0FDbEJELEVBQ0YsQ0FBQyxpQkFBa0JBLEdBRXJCLEVBQ1QsRUFDQUUsMEJBQUFBLENBQTJCL1QsRUFBTzZTLEdBQ2hDLElBQUt0Z0IsRUFBTXNoQixFQUFLQyxHQUFlakIsRUFFL0IsTUFBVyxjQUFSdGdCLEVBQ00sQ0FBQ3NoQixFQUFLQyxHQUNJLGtCQUFSdmhCLEVBQ0YsQ0FBQ3NoQixHQUVILEVBQ1QsR0FFRi9RLFNBQVUsQ0FDUixDQUFDcU8sSUFBVSxDQUFDblIsRUFBT3RJLElBQ1ZzSSxFQUFNdEYsSUFBSSxjQUFlMUcsSUFBQUEsT0FBVTBELEVBQU9sRixVQUVuRCxDQUFDNGUsSUFBaUJwUixHQUNUQSxFQUFNc00sT0FBTyxnQkFHeEJ0SSxZQUFhLENBQ1gyUCxLQXBNWUEsQ0FBQzFPLEdBQU83QyxhQUFZMlEscUJBQXNCLElBQUkzTyxLQUdoRSxHQUZBYSxLQUFPYixHQUVIaEMsSUFBYWdSLFlBSWpCLElBQ0UsSUFBS1ksRUFBWUMsR0FBUzdQLEVBRTFCNFAsRUFBYXZlLE1BQU1DLFFBQVFzZSxHQUFjQSxFQUFhLENBQUNBLEdBR3ZELE1BQU1KLEVBQWViLEVBQWdCZ0IsMkJBQTJCQyxHQUdoRSxJQUFJSixFQUFhcmQsT0FDZixPQUVGLE1BQU9oRSxFQUFNMmhCLEdBQWFOLEVBRTFCLElBQUtLLEVBQ0gsT0FBT2pELFFBQVEsS0FHVyxJQUF4QjRDLEVBQWFyZCxPQUNmeWEsUUFBUW5ULG1CQUFtQixJQUFJVCxtQkFBbUI3SyxNQUFTNkssbUJBQW1COFcsT0FDN0MsSUFBeEJOLEVBQWFyZCxRQUN0QnlhLFFBQVFuVCxtQkFBbUIsSUFBSVQsbUJBQW1CN0ssTUFHdEQsQ0FBRSxNQUFPcUIsR0FHUEMsUUFBUUMsTUFBTUYsRUFDaEIsT0MzQ0ksR0FBK0IxRCxRQUFRLDZCLGlDQ0c3QyxNQXVCQSxrQkF2QmdCaWtCLENBQUNDLEVBQUtsVSxJQUFXLE1BQU1tVSx5QkFBeUI3UixJQUFBQSxVQU05RDhSLE9BQVVoQyxJQUNSLE1BQU0sVUFBRXpFLEdBQWM1ZCxLQUFLcWQsT0FDckIsSUFBRXVHLEVBQUcsWUFBRUMsR0FBZ0JqRyxFQUFVMEcsV0FDdkMsSUFBSSxXQUFFMUIsR0FBZWhGLEVBQVUwRyxXQUMvQjFCLEVBQWFBLEdBQWMsQ0FBQyxhQUFjZ0IsRUFBS0MsR0FDL0M1VCxFQUFPK1MsY0FBY0wsY0FBY0MsRUFBWVAsRUFBSSxFQUdyRDFELE1BQUFBLEdBQ0UsT0FDRXBNLElBQUFBLGNBQUEsUUFBTThQLElBQUtyaUIsS0FBS3FrQixRQUNkOVIsSUFBQUEsY0FBQzRSLEVBQVFua0IsS0FBS3FkLE9BR3BCLEdDQ0Ysc0JBckJnQjZHLENBQUNDLEVBQUtsVSxJQUFXLE1BQU1zVSw0QkFBNEJoUyxJQUFBQSxVQU1qRThSLE9BQVVoQyxJQUNSLE1BQU0sSUFBRXVCLEdBQVE1akIsS0FBS3FkLE1BQ2Z1RixFQUFhLENBQUMsaUJBQWtCZ0IsR0FDdEMzVCxFQUFPK1MsY0FBY0wsY0FBY0MsRUFBWVAsRUFBSSxFQUdyRDFELE1BQUFBLEdBQ0UsT0FDRXBNLElBQUFBLGNBQUEsUUFBTThQLElBQUtyaUIsS0FBS3FrQixRQUNkOVIsSUFBQUEsY0FBQzRSLEVBQVFua0IsS0FBS3FkLE9BR3BCLEdDakJhLHdCQUNiLE1BQU8sQ0FBQzhFLEdBQVEsQ0FDZDlSLGFBQWMsQ0FDWkgsUUFBUyxDQUNQNkQsWUFBYSxDQUNYK0osT0FBUUEsQ0FBQzlJLEVBQUsvRSxJQUFXLElBQUlrRSxLQUMzQmEsS0FBT2IsR0FFUCxNQUFNOE0sRUFBT3VELG1CQUFtQjlnQixPQUFPTixTQUFTNmQsTUFDaERoUixFQUFPK1MsY0FBY0Msa0JBQWtCaEMsRUFBSyxLQUtwRGhMLGVBQWdCLENBQ2QySCxVQUFXd0csa0JBQ1hLLGFBQWNGLHdCQUdwQixDQ3ZCQSxNQUFNLEdBQStCdGtCLFFBQVEsaUIsaUNDQXRDLFNBQVN5a0IsVUFBVWhpQixHQUd4QixPQUFPQSxFQUNKZ0QsS0FBSXJELElBQ0gsSUFBSXNpQixFQUFVLHNCQUNWNVosRUFBSTFJLEVBQUlsQixJQUFJLFdBQVd3TSxRQUFRZ1gsR0FDbkMsR0FBRzVaLEdBQUssRUFBRyxDQUNULElBQUk2WixFQUFRdmlCLEVBQUlsQixJQUFJLFdBQVdtUyxNQUFNdkksRUFBSTRaLElBQWdCdEIsTUFBTSxLQUMvRCxPQUFPaGhCLEVBQUlvSSxJQUFJLFVBQVdwSSxFQUFJbEIsSUFBSSxXQUFXbVMsTUFBTSxFQUFHdkksR0FPOUQsU0FBUzhaLGVBQWVELEdBQ3RCLE9BQU9BLEVBQU01ZCxRQUFPLENBQUM4ZCxFQUFHQyxFQUFHaGEsRUFBR3ZFLElBQ3pCdUUsSUFBTXZFLEVBQUlGLE9BQVMsR0FBS0UsRUFBSUYsT0FBUyxFQUMvQndlLEVBQUksTUFBUUMsRUFDWHZlLEVBQUl1RSxFQUFFLElBQU12RSxFQUFJRixPQUFTLEVBQzFCd2UsRUFBSUMsRUFBSSxLQUNQdmUsRUFBSXVFLEVBQUUsR0FDUCtaLEVBQUlDLEVBQUksSUFFUkQsRUFBSUMsR0FFWixjQUNMLENBbkJtRUYsQ0FBZUQsR0FDNUUsQ0FDRSxPQUFPdmlCLENBQ1QsR0FFTixDQ2RBLE1BQU0sR0FBK0JwQyxRQUFRLGMsaUNDR3RDLFNBQVN5a0IsMEJBQVVoaUIsR0FBUSxPQUFFc2lCLElBSWxDLE9BQU90aUIsQ0FpQlQsQ0NwQkEsTUFBTXVpQixHQUFvQixDQUN4QkMsRUFDQUMsR0FHYSxTQUFTQyxnQkFBaUIxaUIsR0FLdkMsSUFBSTJpQixFQUFTLENBQ1hMLE9BQVEsQ0FBQyxHQUdQTSxFQUFvQnRlLEtBQU9pZSxJQUFtQixDQUFDOUksRUFBUW9KLEtBQ3pELElBRUUsT0FENkJBLEVBQVliLFVBQVV2SSxFQUFRa0osR0FDN0JyaUIsUUFBT1gsS0FBU0EsR0FDaEQsQ0FBRSxNQUFNc0IsR0FFTixPQURBQyxRQUFRQyxNQUFNLHFCQUFzQkYsR0FDN0J3WSxDQUNULElBQ0N6WixHQUVILE9BQU80aUIsRUFDSnRpQixRQUFPWCxLQUFTQSxJQUNoQnFELEtBQUlyRCxLQUNDQSxFQUFJbEIsSUFBSSxTQUFXa0IsRUFBSWxCLElBQUksUUFHeEJrQixJQUdiLENDdkJBLElBQUltakIsR0FBMEIsQ0FFNUJDLEtBQU0sRUFDTjVOLE1BQU8sUUFDUEMsUUFBUyxpQkNmWCxNQUVhNE4sSUFBWW5KLEVBQUFBLEdBQUFBLGlCQUZYeE0sR0FBU0EsSUFJckIxTixHQUFPQSxFQUFJbEIsSUFBSSxVQUFVd2IsRUFBQUEsRUFBQUEsV0FHZGdKLElBQVlwSixFQUFBQSxHQUFBQSxnQkFDdkJtSixJQUNBRSxHQUFPQSxFQUFJQyxTQ1JFLGFBQVM1VixHQUN0QixNQUFPLENBQ0xJLGFBQWMsQ0FDWmhPLElBQUssQ0FDSHdRLFNGY0MsQ0FDTCxDQUFDaFIsR0FBaUIsQ0FBQ2tPLEdBQVN4TixjQUMxQixJQUFJc0IsRUFBUTdDLE9BQU9tRyxPQUFPcWUsR0FBeUJqakIsRUFBUyxDQUFDRCxLQUFNLFdBQ25FLE9BQU95TixFQUNKNlAsT0FBTyxVQUFVbGQsSUFBV0EsSUFBVWlhLEVBQUFBLEVBQUFBLFNBQVEvVCxNQUFNNEIsRUFBQUEsRUFBQUEsUUFBUTNHLE1BQzVEK2IsT0FBTyxVQUFVbGQsR0FBVTBpQixnQkFBZ0IxaUIsSUFBUSxFQUd4RCxDQUFDWixHQUF1QixDQUFDaU8sR0FBU3hOLGNBQ2hDQSxFQUFVQSxFQUFRbUQsS0FBSXJELElBQ2JtSSxFQUFBQSxFQUFBQSxRQUFPeEosT0FBT21HLE9BQU9xZSxHQUF5Qm5qQixFQUFLLENBQUVDLEtBQU0sY0FFN0R5TixFQUNKNlAsT0FBTyxVQUFVbGQsSUFBV0EsSUFBVWlhLEVBQUFBLEVBQUFBLFNBQVF4RyxRQUFRM0wsRUFBQUEsRUFBQUEsUUFBUWpJLE1BQzlEcWQsT0FBTyxVQUFVbGQsR0FBVTBpQixnQkFBZ0IxaUIsTUFHaEQsQ0FBQ1gsR0FBZSxDQUFDZ08sR0FBU3hOLGNBQ3hCLElBQUlzQixHQUFRMkcsRUFBQUEsRUFBQUEsUUFBT2pJLEdBRW5CLE9BREFzQixFQUFRQSxFQUFNNEcsSUFBSSxPQUFRLFFBQ25Cc0YsRUFDSjZQLE9BQU8sVUFBVWxkLElBQVdBLElBQVVpYSxFQUFBQSxFQUFBQSxTQUFRL1QsTUFBTTRCLEVBQUFBLEVBQUFBLFFBQU8zRyxJQUFRaWlCLFFBQU96akIsR0FBT0EsRUFBSWxCLElBQUksWUFDekZ5ZSxPQUFPLFVBQVVsZCxHQUFVMGlCLGdCQUFnQjFpQixJQUFRLEVBR3hELENBQUNWLEdBQXFCLENBQUMrTixHQUFTeE4sY0FDOUJBLEVBQVVBLEVBQVFtRCxLQUFJckQsSUFDYm1JLEVBQUFBLEVBQUFBLFFBQU94SixPQUFPbUcsT0FBT3FlLEdBQXlCbmpCLEVBQUssQ0FBRUMsS0FBTSxZQUU3RHlOLEVBQ0o2UCxPQUFPLFVBQVVsZCxJQUFXQSxJQUFVaWEsRUFBQUEsRUFBQUEsU0FBUXhHLFFBQU8zTCxFQUFBQSxFQUFBQSxRQUFPakksTUFDNURxZCxPQUFPLFVBQVVsZCxHQUFVMGlCLGdCQUFnQjFpQixNQUdoRCxDQUFDVCxHQUFlLENBQUM4TixHQUFTeE4sY0FDeEIsSUFBSXNCLEdBQVEyRyxFQUFBQSxFQUFBQSxRQUFPeEosT0FBT21HLE9BQU8sQ0FBQyxFQUFHNUUsSUFHckMsT0FEQXNCLEVBQVFBLEVBQU00RyxJQUFJLE9BQVEsUUFDbkJzRixFQUNKNlAsT0FBTyxVQUFVbGQsSUFBV0EsSUFBVWlhLEVBQUFBLEVBQUFBLFNBQVEvVCxNQUFNNEIsRUFBQUEsRUFBQUEsUUFBTzNHLE1BQzNEK2IsT0FBTyxVQUFVbGQsR0FBVTBpQixnQkFBZ0IxaUIsSUFBUSxFQUd4RCxDQUFDUixHQUFRLENBQUM2TixHQUFTeE4sY0FDakIsSUFBSUEsSUFBWXdOLEVBQU01TyxJQUFJLFVBQ3hCLE9BQU80TyxFQUdULElBQUlnVyxFQUFZaFcsRUFBTTVPLElBQUksVUFDdkI2QixRQUFPWCxHQUNDQSxFQUFJcUMsU0FBU3NoQixPQUFNeGhCLElBQ3hCLE1BQU15aEIsRUFBVzVqQixFQUFJbEIsSUFBSXFELEdBQ25CMGhCLEVBQWMzakIsRUFBUWlDLEdBRTVCLE9BQUkwaEIsR0FFR0QsSUFBYUMsQ0FBVyxNQUdyQyxPQUFPblcsRUFBTTJGLE1BQU0sQ0FDakJoVCxPQUFRcWpCLEdBQ1IsRUFHSixDQUFDNWpCLEdBQVcsQ0FBQzROLEdBQVN4TixjQUNwQixJQUFJQSxHQUE4QixtQkFBWkEsRUFDcEIsT0FBT3dOLEVBRVQsSUFBSWdXLEVBQVloVyxFQUFNNU8sSUFBSSxVQUN2QjZCLFFBQU9YLEdBQ0NFLEVBQVFGLEtBRW5CLE9BQU8wTixFQUFNMkYsTUFBTSxDQUNqQmhULE9BQVFxakIsR0FDUixHRXZGQXJTLFFBQU8sRUFDUGEsVUFBU0EsSUFJakIsQ0NkZSxtQkFBUzRSLEVBQVdDLEdBQ2pDLE9BQU9ELEVBQVVuakIsUUFBTyxDQUFDcWpCLEVBQVF6QyxLQUFpQyxJQUF6QkEsRUFBSWpXLFFBQVF5WSxJQUN2RCxDQ0FlLGtCQUNiLE1BQU8sQ0FDTDFmLEdBQUksQ0FDRjRmLFdBR04sQ0NSQSxNQUFNLEdBQStCcm1CLFFBQVEsMEMsaUNDTTdDLE1BcUJBLFNBckJnQnNtQixFQUFHQyxZQUFZLEtBQU1DLFFBQVEsR0FBSUMsU0FBUyxNQUFPQyxLQUMvRHBVLElBQUFBLGNBQUEsTUFBQXFVLEtBQUEsQ0FDRUMsTUFBTSw2QkFDTkMsUUFBUSxZQUNSTixVQUFXQSxFQUNYQyxNQUFPQSxFQUNQQyxPQUFRQSxFQUNSLGNBQVksT0FDWkssVUFBVSxTQUNOSixHQUVKcFUsSUFBQUEsY0FBQSxRQUFNNVIsRUFBRSw2UkNVWixXQXJCa0JxbUIsRUFBR1IsWUFBWSxLQUFNQyxRQUFRLEdBQUlDLFNBQVMsTUFBT0MsS0FDakVwVSxJQUFBQSxjQUFBLE1BQUFxVSxLQUFBLENBQ0VDLE1BQU0sNkJBQ05DLFFBQVEsWUFDUk4sVUFBV0EsRUFDWEMsTUFBT0EsRUFDUEMsT0FBUUEsRUFDUixjQUFZLE9BQ1pLLFVBQVUsU0FDTkosR0FFSnBVLElBQUFBLGNBQUEsUUFBTTVSLEVBQUUscUxDVVosTUFyQmNzbUIsRUFBR1QsWUFBWSxLQUFNQyxRQUFRLEdBQUlDLFNBQVMsTUFBT0MsS0FDN0RwVSxJQUFBQSxjQUFBLE1BQUFxVSxLQUFBLENBQ0VDLE1BQU0sNkJBQ05DLFFBQVEsWUFDUk4sVUFBV0EsRUFDWEMsTUFBT0EsRUFDUEMsT0FBUUEsRUFDUixjQUFZLE9BQ1pLLFVBQVUsU0FDTkosR0FFSnBVLElBQUFBLGNBQUEsUUFBTTVSLEVBQUUsd0xDVVosaUJBckJjdW1CLEVBQUdWLFlBQVksS0FBTUMsUUFBUSxHQUFJQyxTQUFTLE1BQU9DLEtBQzdEcFUsSUFBQUEsY0FBQSxNQUFBcVUsS0FBQSxDQUNFQyxNQUFNLDZCQUNOQyxRQUFRLFlBQ1JOLFVBQVdBLEVBQ1hDLE1BQU9BLEVBQ1BDLE9BQVFBLEVBQ1IsY0FBWSxPQUNaSyxVQUFVLFNBQ05KLEdBRUpwVSxJQUFBQSxjQUFBLFFBQU01UixFQUFFLGtWQ2dCWixLQTNCYXdtQixFQUFHWCxZQUFZLEtBQU1DLFFBQVEsR0FBSUMsU0FBUyxNQUFPQyxLQUM1RHBVLElBQUFBLGNBQUEsTUFBQXFVLEtBQUEsQ0FDRUMsTUFBTSw2QkFDTkMsUUFBUSxZQUNSTixVQUFXQSxFQUNYQyxNQUFPQSxFQUNQQyxPQUFRQSxFQUNSLGNBQVksT0FDWkssVUFBVSxTQUNOSixHQUVKcFUsSUFBQUEsY0FBQSxLQUFHbVMsVUFBVSxvQkFDWG5TLElBQUFBLGNBQUEsUUFDRTZVLEtBQUssVUFDTEMsU0FBUyxVQUNUMW1CLEVBQUUscVZDTVYsS0FyQmEybUIsRUFBR2QsWUFBWSxLQUFNQyxRQUFRLEdBQUlDLFNBQVMsTUFBT0MsS0FDNURwVSxJQUFBQSxjQUFBLE1BQUFxVSxLQUFBLENBQ0VDLE1BQU0sNkJBQ05DLFFBQVEsWUFDUk4sVUFBV0EsRUFDWEMsTUFBT0EsRUFDUEMsT0FBUUEsRUFDUixjQUFZLE9BQ1pLLFVBQVUsU0FDTkosR0FFSnBVLElBQUFBLGNBQUEsUUFBTTVSLEVBQUUscVVDVVosT0FyQmU0bUIsRUFBR2YsWUFBWSxLQUFNQyxRQUFRLEdBQUlDLFNBQVMsTUFBT0MsS0FDOURwVSxJQUFBQSxjQUFBLE1BQUFxVSxLQUFBLENBQ0VDLE1BQU0sNkJBQ05DLFFBQVEsWUFDUk4sVUFBV0EsRUFDWEMsTUFBT0EsRUFDUEMsT0FBUUEsRUFDUixjQUFZLE9BQ1pLLFVBQVUsU0FDTkosR0FFSnBVLElBQUFBLGNBQUEsUUFBTTVSLEVBQUUsK1RDTVosTUFab0I2bUIsS0FBQSxDQUNsQnJYLFdBQVksQ0FDVnNYLFlBQVcsU0FDWEMsY0FBYSxXQUNiQyxVQUFTLE1BQ1RDLFVBQVMsaUJBQ1RDLFNBQVEsS0FDUmhKLFNBQVEsS0FDUkUsV0FBVUEsVUNqQkQrSSxHQUFnQix1QkFDaEJDLEdBQWdCLHVCQUNoQkMsR0FBYyxxQkFDZEMsR0FBTyxjQUliLFNBQVNDLGFBQWEvRixHQUMzQixNQUFPLENBQ0w3ZixLQUFNd2xCLEdBQ052bEIsUUFBUzRmLEVBRWIsQ0FFTyxTQUFTZ0csYUFBYW5sQixHQUMzQixNQUFPLENBQ0xWLEtBQU15bEIsR0FDTnhsQixRQUFTUyxFQUViLENBRU8sU0FBUzBnQixhQUFLdGUsRUFBTzRlLEdBQU0sR0FFaEMsT0FEQTVlLEVBQVFtQixlQUFlbkIsR0FDaEIsQ0FDTDlDLEtBQU0ybEIsR0FDTjFsQixRQUFTLENBQUM2QyxRQUFPNGUsU0FFckIsQ0FHTyxTQUFTb0UsV0FBV2hqQixFQUFPaWpCLEVBQUssSUFFckMsT0FEQWpqQixFQUFRbUIsZUFBZW5CLEdBQ2hCLENBQ0w5QyxLQUFNMGxCLEdBQ056bEIsUUFBUyxDQUFDNkMsUUFBT2lqQixRQUVyQixDQzlCQSxVQUVFLENBQUNQLElBQWdCLENBQUMvWCxFQUFPdEksSUFBV3NJLEVBQU10RixJQUFJLFNBQVVoRCxFQUFPbEYsU0FFL0QsQ0FBQ3dsQixJQUFnQixDQUFDaFksRUFBT3RJLElBQVdzSSxFQUFNdEYsSUFBSSxTQUFVaEQsRUFBT2xGLFNBRS9ELENBQUMwbEIsSUFBTyxDQUFDbFksRUFBT3RJLEtBQ2QsTUFBTTZnQixFQUFVN2dCLEVBQU9sRixRQUFReWhCLE1BR3pCdUUsR0FBYy9kLEVBQUFBLEVBQUFBLFFBQU8vQyxFQUFPbEYsUUFBUTZDLE9BSTFDLE9BQU8ySyxFQUFNNlAsT0FBTyxTQUFTcFYsRUFBQUEsRUFBQUEsUUFBTyxDQUFDLElBQUk1SixHQUFLQSxFQUFFNkosSUFBSThkLEVBQWFELElBQVMsRUFHNUUsQ0FBQ04sSUFBYyxDQUFDalksRUFBT3RJLEtBQ3JCLElBQUlyQyxFQUFRcUMsRUFBT2xGLFFBQVE2QyxNQUN2QmlqQixFQUFPNWdCLEVBQU9sRixRQUFROGxCLEtBQzFCLE9BQU90WSxFQUFNaU0sTUFBTSxDQUFDLFNBQVM3RixPQUFPL1EsSUFBU2lqQixHQUFRLElBQU0sR0FBRyxHQ3RCckRHLFFBQVV6WSxHQUFTQSxFQUFNNU8sSUFBSSxVQUU3QnNuQixjQUFnQjFZLEdBQVNBLEVBQU01TyxJQUFJLFVBRW5DbW5CLFFBQVVBLENBQUN2WSxFQUFPM0ssRUFBT3NqQixLQUNwQ3RqQixFQUFRbUIsZUFBZW5CLEdBQ2hCMkssRUFBTTVPLElBQUksU0FBU3FKLEVBQUFBLEVBQUFBLFFBQU8sQ0FBQyxJQUFJckosS0FBSXFKLEVBQUFBLEVBQUFBLFFBQU9wRixHQUFRc2pCLElBRzlDQyxTQUFXQSxDQUFDNVksRUFBTzNLLEVBQU9zakIsRUFBSSxNQUN6Q3RqQixFQUFRbUIsZUFBZW5CLEdBQ2hCMkssRUFBTW5MLE1BQU0sQ0FBQyxXQUFZUSxHQUFRc2pCLElBRzdCRSxJQUFjck0sRUFBQUEsR0FBQUEsaUJBaEJieE0sR0FBU0EsSUFrQnJCQSxJQUFVdVksUUFBUXZZLEVBQU8sWUNyQmQ4WSxpQkFBbUJBLENBQUNDLEVBQWE3WSxJQUFXLENBQUNGLEtBQVVvRSxLQUNsRSxJQUFJZ1MsRUFBWTJDLEVBQVkvWSxLQUFVb0UsR0FFdEMsTUFBTSxHQUFFek4sRUFBRSxnQkFBRW9jLEVBQWUsV0FBRTNRLEdBQWVsQyxFQUFPNUksWUFDN0M2SSxFQUFVaUMsS0FDVixpQkFBRTRXLEdBQXFCN1ksRUFHN0IsSUFBSWxOLEVBQVM4ZixFQUFnQjJGLGdCQVc3QixPQVZJemxCLElBQ2EsSUFBWEEsSUFDRm1qQixFQUFZemYsRUFBRzRmLFVBQVVILEVBQVduakIsSUFJcEMrbEIsR0FBb0IsSUFDdEI1QyxFQUFZQSxFQUFVN1MsTUFBTSxFQUFHeVYsSUFHMUI1QyxDQUFTLEVDZkgsMEJBQ2IsTUFBTyxDQUNMOVYsYUFBYyxDQUNaOFIsT0FBUSxDQUNOdFAsU0FBUSxHQUNSYSxRQUFPLEVBQ1BhLFVBQVNBLEdBRVhnTCxLQUFNLENBQ0o3SyxjQUFhQSxJQUlyQixDQ2xCZSxTQUFTLE1BQUMsUUFBQ3hFLElBRXhCLE1BQU04WSxFQUFTLENBQ2IsTUFBUyxFQUNULEtBQVEsRUFDUixJQUFPLEVBQ1AsS0FBUSxFQUNSLE1BQVMsR0FHTEMsU0FBWXBSLEdBQVVtUixFQUFPblIsS0FBVyxFQUU5QyxJQUFJLFNBQUVxUixHQUFhaFosRUFDZmlaLEVBQWNGLFNBQVNDLEdBRTNCLFNBQVNFLElBQUl2UixLQUFVMUQsR0FDbEI4VSxTQUFTcFIsSUFBVXNSLEdBRXBCdmxCLFFBQVFpVSxNQUFVMUQsRUFDdEIsQ0FPQSxPQUxBaVYsSUFBSW5RLEtBQU9tUSxJQUFJM1ksS0FBSyxLQUFNLFFBQzFCMlksSUFBSXZsQixNQUFRdWxCLElBQUkzWSxLQUFLLEtBQU0sU0FDM0IyWSxJQUFJQyxLQUFPRCxJQUFJM1ksS0FBSyxLQUFNLFFBQzFCMlksSUFBSUUsTUFBUUYsSUFBSTNZLEtBQUssS0FBTSxTQUVwQixDQUFFTCxZQUFhLENBQUVnWixLQUMxQixDQzNCQSxJQUFJRyxJQUFVLEVBRUMsdUJBRWIsTUFBTyxDQUNMbFosYUFBYyxDQUNaa1AsS0FBTSxDQUNKeEwsWUFBYSxDQUNYeVYsV0FBYXhVLEdBQVEsSUFBSWIsS0FDdkJvVixJQUFVLEVBQ0h2VSxLQUFPYixJQUVoQnNWLGVBQWdCQSxDQUFDelUsRUFBSy9FLElBQVcsSUFBSWtFLEtBQ25DLE1BQU1nTSxFQUFLbFEsRUFBT2tDLGFBQWF1WCxXQVEvQixPQVBHSCxJQUF5QixtQkFBUHBKLElBR25Cd0osV0FBV3hKLEVBQUksR0FDZm9KLElBQVUsR0FHTHZVLEtBQU9iLEVBQUssS0FNL0IsQ0NqQkEsTUFBTXlWLFdBQWNwbEIsSUFDbEIsTUFBTTBCLEVBQVUsUUFDaEIsT0FBSTFCLEVBQUVtSixRQUFRekgsR0FBVyxFQUNoQjFCLEVBRUZBLEVBQUU2ZSxNQUFNbmQsR0FBUyxHQUFHNEgsTUFBTSxFQUc3QitiLFlBQWV6ZCxHQUNQLFFBQVJBLEdBSUMsV0FBV3JDLEtBQUtxQyxHQUhaQSxFQUlDLElBQU1BLEVBQ1hnQixRQUFRLEtBQU0sU0FBVyxJQUsxQjBjLFVBQWExZCxHQU1MLFNBTFpBLEVBQU1BLEVBQ0hnQixRQUFRLE1BQU8sTUFDZkEsUUFBUSxPQUFRLFNBQ2hCQSxRQUFRLEtBQU0sTUFDZEEsUUFBUSxNQUFPLFFBRVRoQixFQUNKZ0IsUUFBUSxPQUFRLFVBR2hCLFdBQVdyRCxLQUFLcUMsR0FHWkEsRUFGQSxJQUFPQSxFQUFNLElBS2xCMmQsaUJBQW9CM2QsSUFDeEIsR0FBWSxRQUFSQSxFQUNGLE9BQU9BLEVBRVQsR0FBSSxLQUFLckMsS0FBS3FDLEdBQU0sQ0FFbEIsTUFBTyxPQURTQSxFQUFJZ0IsUUFBUSxLQUFNLE1BQU1BLFFBQVEsTUFBTyxXQUV6RCxDQUNBLElBQUssVUFBVXJELEtBQUtxQyxHQUFNLENBRXhCLE1BQU8sSUFEU0EsRUFBSWdCLFFBQVEsS0FBTSxRQUVwQyxDQUNBLE9BQU9oQixDQUFHLEVBZ0JaLE1BQU00ZCxRQUFVQSxDQUFDQyxFQUFTQyxFQUFRQyxFQUFTQyxFQUFNLE1BQy9DLElBQUlDLEdBQTZCLEVBQzdCQyxFQUFZLEdBQ2hCLE1BQU1DLFNBQVdBLElBQUlwVyxJQUFTbVcsR0FBYSxJQUFNblcsRUFBS3pPLElBQUl3a0IsR0FBUTdjLEtBQUssS0FDakVtZCw0QkFBOEJBLElBQUlyVyxJQUFTbVcsR0FBYW5XLEVBQUt6TyxJQUFJd2tCLEdBQVE3YyxLQUFLLEtBQzlFb2QsV0FBYUEsSUFBTUgsR0FBYSxJQUFJSCxJQUNwQ08sVUFBWUEsQ0FBQzdTLEVBQVEsSUFBTXlTLEdBQWEsS0FBS0ssT0FBTzlTLEdBQzFELElBQUljLEVBQVVzUixFQUFROW9CLElBQUksV0FDMUJtcEIsR0FBYSxPQUFTRixFQUV0QixNQUFNUSxFQUFjWCxFQUFROW9CLElBQUksZUFXaEMsR0FWSXdiLEVBQUFBLEtBQUszVCxPQUFPNGhCLEtBQWlCQSxFQUFZbmIsV0FDM0M4YSxZQUFZTixFQUFROW9CLElBQUksZ0JBRzFCb3BCLFNBQVMsS0FBTU4sRUFBUTlvQixJQUFJLFdBRTNCc3BCLGFBQ0FDLFlBQ0FGLDRCQUE0QixHQUFHUCxFQUFROW9CLElBQUksVUFFdkN3WCxHQUFXQSxFQUFRaE8sS0FDckIsSUFBSyxJQUFJbWEsS0FBS21GLEVBQVE5b0IsSUFBSSxXQUFXMEUsVUFBVyxDQUM5QzRrQixhQUNBQyxZQUNBLElBQUtHLEVBQUd0bUIsR0FBS3VnQixFQUNiMEYsNEJBQTRCLEtBQU0sR0FBR0ssTUFBTXRtQixLQUMzQzhsQixFQUE2QkEsR0FBOEIsa0JBQWtCdGdCLEtBQUs4Z0IsSUFBTSwwQkFBMEI5Z0IsS0FBS3hGLEVBQ3pILENBR0YsTUFBTTRVLEVBQU84USxFQUFROW9CLElBQUksUUFDekIsR0FBSWdZLEVBQ0YsR0FBSWtSLEdBQThCLENBQUMsT0FBUSxNQUFPLFNBQVM1bEIsU0FBU3dsQixFQUFROW9CLElBQUksV0FDOUUsSUFBSyxJQUFLcUQsRUFBR0QsS0FBTTRVLEVBQUsyQyxXQUFZLENBQ2xDLElBQUlnUCxFQUFlbEIsV0FBV3BsQixHQUM5QmltQixhQUNBQyxZQUNBRiw0QkFBNEIsTUFVeEJqbUIsYUFBYXBCLEVBQUlLLE1BQStCLGlCQUFoQmUsRUFBRXdtQixVQUNwQ1IsU0FBUyxHQUFHTyxLQUFnQnZtQixFQUFFeUksT0FBT3pJLEVBQUVqQyxLQUFPLFNBQVNpQyxFQUFFakMsT0FBUyxNQUN6RGlDLGFBQWFwQixFQUFJSyxLQUMxQittQixTQUFTLEdBQUdPLE1BQWlCdm1CLEVBQUUySSxPQUFPM0ksRUFBRWpDLEtBQU8sU0FBU2lDLEVBQUVqQyxPQUFTLE1BRW5FaW9CLFNBQVMsR0FBR08sS0FBZ0J2bUIsSUFFaEMsTUFDSyxHQUFHNFUsYUFBZ0JoVyxFQUFJSyxLQUM1QmluQixhQUNBQyxZQUNBRiw0QkFBNEIsbUJBQW1CclIsRUFBS2pNLGFBQy9DLENBQ0x1ZCxhQUNBQyxZQUNBRiw0QkFBNEIsT0FDNUIsSUFBSVEsRUFBVTdSLEVBQ1QvSyxFQUFBQSxJQUFJaEssTUFBTTRtQixHQU1iUiw0QkFwRlIsU0FBU1MsbUJBQW1CaEIsR0FDMUIsSUFBSWlCLEVBQWdCLEdBQ3BCLElBQUssSUFBSzFtQixFQUFHRCxLQUFNMGxCLEVBQVE5b0IsSUFBSSxRQUFRMmEsV0FBWSxDQUNqRCxJQUFJZ1AsRUFBZWxCLFdBQVdwbEIsR0FDMUJELGFBQWFwQixFQUFJSyxLQUNuQjBuQixFQUFjdGlCLEtBQUssTUFBTWtpQix1QkFBa0N2bUIsRUFBRTJJLFFBQVEzSSxFQUFFakMsS0FBTyxtQkFBbUJpQyxFQUFFakMsUUFBVSxXQUU3RzRvQixFQUFjdGlCLEtBQUssTUFBTWtpQixPQUFrQnpoQixLQUFLcUYsVUFBVW5LLEVBQUcsS0FBTSxHQUFHNkksUUFBUSxnQkFBaUIsVUFFbkcsQ0FDQSxNQUFPLE1BQU04ZCxFQUFjN2QsS0FBSyxXQUNsQyxDQXlFb0M0ZCxDQUFtQmhCLEtBTHhCLGlCQUFaZSxJQUNUQSxFQUFVM2hCLEtBQUtxRixVQUFVc2MsSUFFM0JSLDRCQUE0QlEsR0FJaEMsTUFDVTdSLEdBQWtDLFNBQTFCOFEsRUFBUTlvQixJQUFJLFlBQzlCc3BCLGFBQ0FDLFlBQ0FGLDRCQUE0QixVQUc5QixPQUFPRixDQUFTLEVBR0xhLHdDQUEyQ2xCLEdBQy9DRCxRQUFRQyxFQUFTRixpQkFBa0IsTUFBTyxRQUd0Q3FCLGtDQUFxQ25CLEdBQ3pDRCxRQUFRQyxFQUFTSixZQUFhLFFBRzFCd0IsaUNBQW9DcEIsR0FDeENELFFBQVFDLEVBQVNILFVBQVcsT0NwSy9CL1osaUNBQVFBLEdBQVNBLElBQVMzQixFQUFBQSxFQUFBQSxPQUVuQmtkLElBQWdCL08sRUFBQUEsR0FBQUEsZ0JBQzNCeE0sa0NBQ0FBLElBQ0UsTUFBTXdiLEVBQWV4YixFQUNsQjVPLElBQUksYUFDRHFxQixFQUFhemIsRUFDaEI1TyxJQUFJLGNBQWNpTixFQUFBQSxFQUFBQSxRQUNyQixPQUFJbWQsR0FBZ0JBLEVBQWE5YixVQUN4QitiLEVBRUZBLEVBQ0p4b0IsUUFBTyxDQUFDdUIsRUFBR3pELElBQVF5cUIsRUFBYTltQixTQUFTM0QsSUFBSyxJQUl4QzJxQixxQkFBd0IxYixHQUFVLEVBQUdySixRQUV6QzRrQixHQUFjdmIsR0FDbEJySyxLQUFJLENBQUNnbUIsRUFBSzVxQixLQUNULE1BQU02cUIsRUFIT0MsQ0FBQzlxQixHQUFRNEYsRUFBRywyQkFBMkI1RixLQUd0QzhxQixDQUFTOXFCLEdBQ3ZCLE1BQW9CLG1CQUFWNnFCLEVBQ0QsS0FHRkQsRUFBSWpoQixJQUFJLEtBQU1raEIsRUFBTSxJQUU1QjNvQixRQUFPdUIsR0FBS0EsSUFHSnNuQixJQUFvQnRQLEVBQUFBLEdBQUFBLGdCQUMvQnhNLGtDQUNBQSxHQUFTQSxFQUNONU8sSUFBSSxvQkFHSTJxQixJQUFxQnZQLEVBQUFBLEdBQUFBLGdCQUNoQ3hNLGtDQUNBQSxHQUFTQSxFQUNONU8sSUFBSSxxQkMzQ0gsR0FBK0JsQixRQUFRLGMsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEsMkJDS3ZDd2hCLEdBQVEsQ0FDWnNLLE9BQVEsVUFDUkMsV0FBWSxFQUNaQyxRQUFTLGNBQ1RDLGdCQUFpQixxQkFDakJDLGNBQWUsSUFDZkMsV0FBWSxJQUNaQyxPQUFRLDRCQUNSQyxhQUFjLGNBQ2RDLFVBQVcsT0FDWEMsYUFBYyxRQUdWQyxHQUFjLENBQ2xCVixPQUFRLFVBQ1JDLFdBQVksRUFDWkMsUUFBUyxjQUNUQyxnQkFBaUIsa0JBQ2pCSyxVQUFXLE9BQ1hGLE9BQVEsNEJBQ1JGLGNBQWUsSUFDZkMsV0FBWSxJQUNaRSxhQUFjLGNBQ2RJLFVBQVcsT0FDWEMsWUFBYSxPQUNiQyxXQUFZLE9BQ1pDLE9BQVEsT0FDUkwsYUFBYyxRQWtJaEIsaUJBL0h3Qk0sRUFBRzdDLFVBQVM4QywyQkFBMEJuTyxtQkFDNUQsTUFBTW9PLEdBQVVDLEVBQUFBLEVBQUFBLFFBQU8sTUFFakJ0RixFQUFZL0ksRUFBYSxlQUN6QjhJLEVBQWdCOUksRUFBYSxpQkFDN0JzTyxFQUFvQnRPLEVBQWEscUJBQXFCLElBRXJEdU8sRUFBZ0JDLElBQXFCQyxFQUFBQSxFQUFBQSxVQUFTTixFQUF5QnRCLHdCQUF3Qi9tQixTQUFTQyxVQUN4RzJvQixFQUFZQyxJQUFpQkYsRUFBQUEsRUFBQUEsVUFBU04sR0FBMEJqQixzQkFFakUwQixFQUFvQlQsRUFBeUJ0Qix1QkFDN0NnQyxFQUFrQkQsRUFBa0Jyc0IsSUFBSWdzQixHQUN4Q08sRUFBVUQsRUFBZ0J0c0IsSUFBSSxLQUFwQnNzQixDQUEwQnhELEdBU3BDMEQsb0JBQXNCQSxLQUMxQkosR0FBZUQsRUFBVyxFQUd0Qk0sa0JBQXFCOXNCLEdBQ3JCQSxJQUFRcXNCLEVBQ0hWLEdBRUZoTCxHQUdIb00scUNBQXdDbHFCLElBQzVDLE1BQU0sT0FBRWtWLEVBQU0sT0FBRWlWLEdBQVducUIsR0FDbkJvcUIsYUFBY0MsRUFBZUMsYUFBY0MsRUFBYSxVQUFFQyxHQUFjdFYsRUFFcERtVixFQUFnQkUsSUFDSCxJQUFkQyxHQUFtQkwsRUFBUyxHQUZsQ0ksRUFBZ0JDLEdBR1NILEdBQWlCRixFQUFTLElBR3RFbnFCLEVBQUV5cUIsZ0JBQ0osRUF1QkYsT0FwQkFDLEVBQUFBLEVBQUFBLFlBQVUsS0FJRixHQUNMLEtBRUhBLEVBQUFBLEVBQUFBLFlBQVUsS0FDUixNQUFNQyxFQUFhOW9CLE1BQ2hCK0csS0FBS3lnQixFQUFReEUsUUFBUThGLFlBQ3JCdHJCLFFBQU91ckIsS0FBVUEsRUFBS0MsVUFBWUQsRUFBS0UsV0FBV3hSLFNBQVMsa0JBSTlELE9BRkFxUixFQUFXOWtCLFNBQVEra0IsR0FBUUEsRUFBS0csaUJBQWlCLGFBQWNiLHFDQUFzQyxDQUFFYyxTQUFTLE1BRXpHLEtBRUxMLEVBQVc5a0IsU0FBUStrQixHQUFRQSxFQUFLSyxvQkFBb0IsYUFBY2YsdUNBQXNDLENBQ3pHLEdBQ0EsQ0FBQzVELElBR0YxWCxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLG1CQUFtQm5FLElBQUsySyxHQUNyQ3phLElBQUFBLGNBQUEsT0FBS2tQLE1BQU8sQ0FBRWdGLE1BQU8sT0FBUXdGLFFBQVMsT0FBUTRDLGVBQWdCLGFBQWNDLFdBQVksU0FBVUMsYUFBYyxTQUM5R3hjLElBQUFBLGNBQUEsTUFDRXljLFFBQVNBLElBQU1yQixzQkFDZmxNLE1BQU8sQ0FBRXNLLE9BQVEsWUFDbEIsWUFDRHhaLElBQUFBLGNBQUEsVUFDRXljLFFBQVNBLElBQU1yQixzQkFDZmxNLE1BQU8sQ0FBRTRLLE9BQVEsT0FBUTRDLFdBQVksUUFDckNDLE1BQU81QixFQUFhLHFCQUF1QixvQkFFMUNBLEVBQWEvYSxJQUFBQSxjQUFDbVYsRUFBYSxDQUFDbEIsVUFBVSxRQUFRQyxNQUFNLEtBQUtDLE9BQU8sT0FBVW5VLElBQUFBLGNBQUNvVixFQUFTLENBQUNuQixVQUFVLFFBQVFDLE1BQU0sS0FBS0MsT0FBTyxTQUk1SDRHLEdBQWMvYSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLGdCQUMzQmpVLElBQUFBLGNBQUEsT0FBS2tQLE1BQU8sQ0FBRTBOLFlBQWEsT0FBUUMsYUFBYyxPQUFRM0ksTUFBTyxPQUFRd0YsUUFBUyxTQUU3RXVCLEVBQWtCMVIsV0FBV3BXLEtBQUksRUFBRTVFLEVBQUs0cUIsS0FFcENuWixJQUFBQSxjQUFBLE9BQ0VpVSxVQUFXNkksS0FBVyxNQUFPLENBQUMsT0FBVXZ1QixJQUFRcXNCLElBQ2hEMUwsTUFBT21NLGtCQUFrQjlzQixHQUN6QkEsSUFBS0EsRUFDTGt1QixRQUFTQSxJQTVFSE0sQ0FBQ3h1QixJQUNIcXNCLElBQW1CcnNCLEdBRXJDc3NCLEVBQWtCdHNCLEVBQ3BCLEVBd0UrQnd1QixDQUFnQnh1QixJQUUvQnlSLElBQUFBLGNBQUEsTUFBSWtQLE1BQU8zZ0IsSUFBUXFzQixFQUFpQixDQUFFb0MsTUFBTyxTQUFhLENBQUMsR0FBSTdELEVBQUl2cUIsSUFBSSxjQU1qRm9SLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUscUJBQ2JqVSxJQUFBQSxjQUFDaWQsR0FBQUEsZ0JBQWUsQ0FBQzVPLEtBQU04TSxHQUNyQm5iLElBQUFBLGNBQUEsaUJBR0pBLElBQUFBLGNBQUEsV0FDRUEsSUFBQUEsY0FBQzJhLEVBQWlCLENBQ2hCdUMsU0FBVWhDLEVBQWdCdHNCLElBQUksVUFDOUJxbEIsVUFBVSxrQkFDVmtKLGdCQUFpQkEsRUFBR0MsV0FBVUMscUJBQzVCcmQsSUFBQUEsY0FBQ3FkLEVBQWUsQ0FBQ3BKLFVBQVUsUUFBUW1KLElBR3BDakMsS0FLTCxFQ25KViw4QkFDUyxDQUNMdmQsV0FBWSxDQUNWMmMsZ0JBQWVBLGtCQUVqQnBtQixHQUFJLENBQ0Ywa0Isa0NBQ0FDLGlDQUNBRix5Q0FFRjlhLGFBQWMsQ0FDWndmLGdCQUFpQixDQUNmdGIsVUFBU0EsTUNYRixNQUFNdWIsc0JBQXNCQyxFQUFBQSxVQWV6Q0Msb0JBQXNCLENBQ3BCQyxpQkFBa0IsUUFDbEJDLFVBQVUsRUFDVmhCLE1BQU8sS0FDUGlCLFNBQVVBLE9BQ1ZDLGtCQUFrQixFQUNsQkMsU0FBVXRzQixJQUFBQSxLQUFRLEtBR3BCNkwsV0FBQUEsQ0FBWXlOLEVBQU9pVCxHQUNqQkMsTUFBTWxULEVBQU9pVCxHQUViLElBQUksU0FBRUosRUFBUSxpQkFBRUQsR0FBcUJqd0IsS0FBS3FkLE1BRTFDcmQsS0FBSytQLE1BQVEsQ0FDWG1nQixTQUFXQSxFQUNYRCxpQkFBa0JBLEdBQW9CSCxjQUFjVSxhQUFhUCxpQkFFckUsQ0FFQVEsaUJBQUFBLEdBQ0UsTUFBTSxpQkFBRUwsRUFBZ0IsU0FBRUYsRUFBUSxVQUFFUSxHQUFjMXdCLEtBQUtxZCxNQUNwRCtTLEdBQW9CRixHQUlyQmx3QixLQUFLcWQsTUFBTThTLFNBQVNPLEVBQVdSLEVBRW5DLENBRUFTLGdDQUFBQSxDQUFpQ0MsR0FDNUI1d0IsS0FBS3FkLE1BQU02UyxXQUFhVSxFQUFVVixVQUNqQ2x3QixLQUFLNndCLFNBQVMsQ0FBQ1gsU0FBVVUsRUFBVVYsVUFFekMsQ0FFQVksZ0JBQWdCQSxLQUNYOXdCLEtBQUtxZCxNQUFNOFMsVUFDWm53QixLQUFLcWQsTUFBTThTLFNBQVNud0IsS0FBS3FkLE1BQU1xVCxXQUFXMXdCLEtBQUsrUCxNQUFNbWdCLFVBR3ZEbHdCLEtBQUs2d0IsU0FBUyxDQUNaWCxVQUFXbHdCLEtBQUsrUCxNQUFNbWdCLFVBQ3RCLEVBR0o3TCxPQUFVaEMsSUFDUixHQUFJQSxHQUFPcmlCLEtBQUtxZCxNQUFNeUYsZ0JBQWlCLENBQ3JDLE1BQU1ELEVBQWM3aUIsS0FBS3FkLE1BQU15RixnQkFBZ0JDLGlCQUUzQ2hmLElBQUFBLEdBQU04ZSxFQUFhN2lCLEtBQUtxZCxNQUFNZ1QsV0FBWXJ3QixLQUFLOHdCLGtCQUNuRDl3QixLQUFLcWQsTUFBTTJGLGNBQWNMLGNBQWMzaUIsS0FBS3FkLE1BQU1nVCxTQUFVaE8sRUFBSU4sY0FDbEUsR0FHRnBELE1BQUFBLEdBQ0UsTUFBTSxNQUFFdVEsRUFBSyxRQUFFNkIsR0FBWS93QixLQUFLcWQsTUFFaEMsT0FBR3JkLEtBQUsrUCxNQUFNbWdCLFVBQ1Rsd0IsS0FBS3FkLE1BQU0rUyxpQkFDTDdkLElBQUFBLGNBQUEsUUFBTWlVLFVBQVd1SyxHQUFXLElBQ2hDL3dCLEtBQUtxZCxNQUFNc1MsVUFNaEJwZCxJQUFBQSxjQUFBLFFBQU1pVSxVQUFXdUssR0FBVyxHQUFJMU8sSUFBS3JpQixLQUFLcWtCLFFBQ3hDOVIsSUFBQUEsY0FBQSxVQUFRLGdCQUFldlMsS0FBSytQLE1BQU1tZ0IsU0FBVTFKLFVBQVUsb0JBQW9Cd0ksUUFBU2h2QixLQUFLOHdCLGlCQUNwRjVCLEdBQVMzYyxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLFdBQVcwSSxHQUN0QzNjLElBQUFBLGNBQUEsUUFBTWlVLFVBQVksZ0JBQW1CeG1CLEtBQUsrUCxNQUFNbWdCLFNBQVcsR0FBSyxpQkFDN0Rsd0IsS0FBSytQLE1BQU1tZ0IsVUFBWTNkLElBQUFBLGNBQUEsWUFBT3ZTLEtBQUsrUCxNQUFNa2dCLG1CQUc1Q2p3QixLQUFLK1AsTUFBTW1nQixVQUFZbHdCLEtBQUtxZCxNQUFNc1MsU0FHMUMsRUN4RkYsTUFRTXFCLFFBQVVBLEVBQUdDLGFBQVlDLFlBQVc3c0IsU0FBUThzQixjQUNoRCxNQUFNQyxHQUFPQyxFQUFBQSxFQUFBQSxVQUFRLEtBQU0sQ0FBR0YsUUFBUyxVQUFXRyxNQUFPLFdBQVksSUFFL0RDLEdBRGNGLEVBQUFBLEVBQUFBLFVBQVEsSUFBTXJ3QixPQUFPK0YsS0FBS3FxQixJQUFPLENBQUNBLElBRXZDM3NCLFNBQVN3c0IsSUFBZ0I1c0IsSUFBVTZzQixFQUU1Q0QsRUFEQUcsRUFBS0QsUUFFTEssRUFmWUMsQ0FBQzd2QixJQUNuQixNQUFNeWdCLEdBQU00SyxFQUFBQSxFQUFBQSxVQUlaLE9BSEFvQixFQUFBQSxFQUFBQSxZQUFVLEtBQ1JoTSxFQUFJbUcsUUFBVTVtQixDQUFLLElBRWR5Z0IsRUFBSW1HLE9BQU8sRUFVSWlKLENBQVlQLElBQzNCUSxFQUFXQyxJQUFnQnRFLEVBQUFBLEVBQUFBLFVBQVNrRSxHQUNyQ0ssR0FBa0JDLEVBQUFBLEVBQUFBLGNBQWFsdUIsSUFDbkNndUIsRUFBYWh1QixFQUFFa1YsT0FBT2laLFFBQVE1a0IsS0FBSyxHQUNsQyxJQVFILE9BTkFtaEIsRUFBQUEsRUFBQUEsWUFBVSxLQUNKbUQsSUFBa0JOLEdBQWFDLEdBQ2pDUSxFQUFhUCxFQUFLRCxRQUNwQixHQUNDLENBQUNLLEVBQWVOLEVBQVdDLElBRXZCLENBQUVPLFlBQVdLLFlBQWFILEVBQWlCUixPQUFNLEVBMkgxRCxjQXhIcUJZLEVBQ25CM3RCLFNBQ0E4c0IsVUFDQUQsYUFBWSxFQUNaYixXQUNBNEIsb0JBQW1CLEVBQ25CQyxtQkFBa0IsRUFDbEJ0VCxlQUNBek0sYUFDQTRILG9CQUVBLE1BQU0sc0JBQUVvWSxFQUFxQix3QkFBRUMsR0FBNEJqZ0IsSUFDckRrZ0IsRUFBZXpULEVBQWEsZ0JBQzVCMFQsRUFBZ0IxVCxFQUFhLGlCQUFpQixHQUM5QzJULEVBQWVDLEtBQVksR0FBRzVtQixTQUFTLFVBQ3ZDNm1CLEVBQWlCRCxLQUFZLEdBQUc1bUIsU0FBUyxVQUN6QzhtQixFQUFhRixLQUFZLEdBQUc1bUIsU0FBUyxVQUNyQyttQixFQUFlSCxLQUFZLEdBQUc1bUIsU0FBUyxVQUN2Q3pILEVBQVM0VixFQUFjNVYsVUFDdkIsVUFBRXV0QixFQUFTLEtBQUVOLEVBQUksWUFBRVcsR0FBZ0JmLFFBQVEsQ0FDL0NDLFdBQVlrQixFQUNaakIsWUFDQTdzQixTQUNBOHNCLFlBR0YsT0FDRTVlLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsaUJBQ2JqVSxJQUFBQSxjQUFBLE1BQUlpVSxVQUFVLE1BQU1vTSxLQUFLLFdBQ3ZCcmdCLElBQUFBLGNBQUEsTUFDRWlVLFVBQVdxTSxLQUFHLFVBQVcsQ0FBRUMsT0FBUXBCLElBQWNOLEVBQUtELFVBQ3REeUIsS0FBSyxnQkFFTHJnQixJQUFBQSxjQUFBLFVBQ0UsZ0JBQWVrZ0IsRUFDZixnQkFBZWYsSUFBY04sRUFBS0QsUUFDbEMzSyxVQUFVLFdBQ1YsWUFBVSxVQUNWbFgsR0FBSWlqQixFQUNKdkQsUUFBUytDLEVBQ1RhLEtBQUssT0FFSjFCLEVBQVksYUFBZSxrQkFHL0I3c0IsR0FDQ2tPLElBQUFBLGNBQUEsTUFDRWlVLFVBQVdxTSxLQUFHLFVBQVcsQ0FBRUMsT0FBUXBCLElBQWNOLEVBQUtFLFFBQ3REc0IsS0FBSyxnQkFFTHJnQixJQUFBQSxjQUFBLFVBQ0UsZ0JBQWVvZ0IsRUFDZixnQkFBZWpCLElBQWNOLEVBQUtFLE1BQ2xDOUssVUFBV3FNLEtBQUcsV0FBWSxDQUFFRSxTQUFVN0IsSUFDdEMsWUFBVSxRQUNWNWhCLEdBQUlvakIsRUFDSjFELFFBQVMrQyxFQUNUYSxLQUFLLE9BRUp6dUIsRUFBUyxTQUFXLFdBSzVCdXRCLElBQWNOLEVBQUtELFNBQ2xCNWUsSUFBQUEsY0FBQSxPQUNFLGNBQWFtZixJQUFjTixFQUFLRCxRQUNoQyxrQkFBaUJvQixFQUNqQixZQUFVLGVBQ1ZqakIsR0FBSW1qQixFQUNKRyxLQUFLLFdBQ0xJLFNBQVMsS0FFUjdCLEdBR0M1ZSxJQUFBQSxjQUFDK2YsRUFBYSxLQUFDLDBCQUtwQlosSUFBY04sRUFBS0UsT0FDbEIvZSxJQUFBQSxjQUFBLE9BQ0VpVSxVQUFVLGtCQUNWLGNBQWFrTCxJQUFjTixFQUFLRCxRQUNoQyxrQkFBaUJ1QixFQUNqQixZQUFVLGFBQ1ZwakIsR0FBSXFqQixFQUNKQyxLQUFLLFdBQ0xJLFNBQVMsS0FFVHpnQixJQUFBQSxjQUFDOGYsRUFBWSxDQUNYaHVCLE9BQVFBLEVBQ1J1YSxhQUFjQSxFQUNkek0sV0FBWUEsRUFDWjRILGNBQWVBLEVBQ2ZrWixZQUFhYixFQUNiL0IsU0FBVUEsRUFDVjZCLGdCQUFpQkEsRUFDakJELGlCQUFrQkEsS0FJcEIsRUMxSUssTUFBTUkscUJBQXFCdEMsRUFBQUEsVUFrQnhDSSxTQUFXQSxDQUFDampCLEVBQUtvYixLQUVadG9CLEtBQUtxZCxNQUFNMkYsZUFDWmhqQixLQUFLcWQsTUFBTTJGLGNBQWNVLEtBQUsxakIsS0FBS3FkLE1BQU02VixTQUFVNUssRUFDckQsRUFHRjNKLE1BQUFBLEdBQ0UsSUFBSSxhQUFFQyxFQUFZLFdBQUV6TSxHQUFlblMsS0FBS3FkLE1BQ3hDLE1BQU04VixFQUFRdlUsRUFBYSxTQUUzQixJQUFJc1IsRUFNSixPQUxHbHdCLEtBQUtxZCxNQUFNeUYsa0JBRVpvTixFQUFXbHdCLEtBQUtxZCxNQUFNeUYsZ0JBQWdCd0YsUUFBUXRvQixLQUFLcWQsTUFBTTZWLFdBR3BEM2dCLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsYUFDcEJqVSxJQUFBQSxjQUFDNGdCLEVBQUt2TSxLQUFBLEdBQU01bUIsS0FBS3FkLE1BQUssQ0FBR2xMLFdBQWFBLEVBQWErZCxTQUFVQSxFQUFVa0QsTUFBUSxFQUFJakQsU0FBV253QixLQUFLbXdCLFNBQVc4QyxZQUFjanpCLEtBQUtxZCxNQUFNNFYsYUFBZSxLQUUxSixFQzFDRixNQUFNLEdBQStCaHpCLFFBQVEsa0MsSUNBekNvekIsRyw2QkFDSixTQUFTek0sV0FBYSxPQUFPQSxTQUFXNWxCLE9BQU9tRyxPQUFTbkcsT0FBT21HLE9BQU9zSixPQUFTLFNBQVVqUSxHQUFLLElBQUssSUFBSW1ELEVBQUksRUFBR0EsRUFBSTJ2QixVQUFVaHRCLE9BQVEzQyxJQUFLLENBQUUsSUFBSTR2QixFQUFJRCxVQUFVM3ZCLEdBQUksSUFBSyxJQUFJbEMsS0FBSzh4QixHQUFHLENBQUcsR0FBRWh5QixlQUFlQyxLQUFLK3hCLEVBQUc5eEIsS0FBT2pCLEVBQUVpQixHQUFLOHhCLEVBQUU5eEIsR0FBSyxDQUFFLE9BQU9qQixDQUFHLEVBQUdvbUIsU0FBUzFSLE1BQU0sS0FBTW9lLFVBQVksQ0FFblIsTUE4QkEsYUE5QnVCalcsR0FBc0IsZ0JBQW9CLE1BQU91SixTQUFTLENBQy9FQyxNQUFPLDZCQUNQSixNQUFPLElBQ1BDLE9BQVEsSUFDUkYsVUFBVyxnQ0FDWGdOLG9CQUFxQixXQUNyQi9SLE1BQU8sQ0FDTGdTLGdCQUFpQixPQUNqQkMsbUJBQW9CLGtCQUNwQkMsaUJBQWtCLG1CQUVwQjdNLFFBQVMsZUFDUnpKLEdBQVFnVyxLQUFZQSxHQUF1QixnQkFBb0IsU0FBVSxDQUMxRVIsR0FBSSxHQUNKZSxHQUFJLEdBQ0pueUIsRUFBRyxHQUNIMmxCLEtBQU0sT0FDTnlNLE9BQVEsT0FDUkMsZ0JBQWlCLHVDQUNqQkMsWUFBYSxJQUNDLGdCQUFvQixtQkFBb0IsQ0FDdERDLGNBQWUsWUFDZkMsTUFBTyxLQUNQQyxTQUFVLFNBQ1ZDLElBQUssS0FDTEMsU0FBVSxNQUNWQyxZQUFhLGFBQ2IveEIsS0FBTSxTQUNOMGIsT0FBUSx5QkN2QkpzVyxjQUFnQjVtQixJQUNwQixNQUFNNm1CLEVBQVk3bUIsRUFBSU4sUUFBUSxNQUFPLEtBQUtBLFFBQVEsTUFBTyxLQUV6RCxJQUNFLE9BQU9vWCxtQkFBbUIrUCxFQUM1QixDQUFFLE1BQ0EsT0FBT0EsQ0FDVCxHQUdhLE1BQU1wQixjQUFjcUIsTUFDakN4RSxpQkFBbUIsQ0FDakIzckIsT0FBUW93QixLQUFBQSxJQUFnQkMsV0FDeEI5VixhQUFjK1YsS0FBQUEsS0FBZUQsV0FDN0J2aUIsV0FBWXdpQixLQUFBQSxLQUFlRCxXQUMzQjNhLGNBQWU0YSxLQUFBQSxPQUFpQkQsV0FDaEN4bkIsS0FBTXluQixLQUFBQSxPQUNOQyxZQUFhRCxLQUFBQSxPQUNiRSxNQUFPRixLQUFBQSxLQUNQRyxTQUFVSCxLQUFBQSxLQUNWMUIsWUFBYTBCLEtBQUFBLE9BQ2J2QixNQUFPdUIsS0FBQUEsT0FDUHRFLFNBQVVvRSxLQUFBQSxLQUFpQkMsV0FDM0J4QyxnQkFBaUJ5QyxLQUFBQSxLQUNqQjFDLGlCQUFrQjBDLEtBQUFBLE1BR3BCSSxhQUFnQjFTLElBQzBCLElBQW5DQSxFQUFJMVUsUUFBUSxrQkFDUjJtQixjQUFjalMsRUFBSWpWLFFBQVEsc0JBQXVCLE1BRVgsSUFBMUNpVixFQUFJMVUsUUFBUSx5QkFDUjJtQixjQUFjalMsRUFBSWpWLFFBQVEsOEJBQStCLFVBRGxFLEVBS0Y0bkIsYUFBZ0IxRCxJQUNkLElBQUksY0FBRXZYLEdBQWtCL1osS0FBS3FkLE1BRTdCLE9BQU90RCxFQUFja2IsZUFBZTNELEVBQU0sRUFHNUMzUyxNQUFBQSxHQUNFLElBQUksYUFBRUMsRUFBWSxXQUFFek0sRUFBVSxjQUFFNEgsRUFBYSxPQUFFMVYsRUFBTSxTQUFFeXdCLEVBQVEsS0FBRTVuQixFQUFJLE1BQUUybkIsRUFBSyxTQUFFeEUsRUFBUSxZQUFFdUUsRUFBVyxnQkFDakcxQyxFQUFlLGlCQUFFRCxHQUFvQmp5QixLQUFLcWQsTUFDNUMsTUFBTTZYLEVBQWN0VyxFQUFhLGVBQzNCdVcsRUFBYXZXLEVBQWEsY0FDMUJ3VyxFQUFpQnhXLEVBQWEsa0JBQ3BDLElBQUl0YyxFQUFPLFNBQ1AreUIsRUFBUWh4QixHQUFVQSxFQUFPbEQsSUFBSSxTQUM3Qm0wQixFQUFPanhCLEdBQVVBLEVBQU9sRCxJQUFJLFFBY2hDLElBWEsrTCxHQUFRbW9CLElBQ1hub0IsRUFBT2xOLEtBQUsrMEIsYUFBYU0sSUFVdkJDLEVBQU0sQ0FDUixNQUFNQyxFQUFVdjFCLEtBQUsrMEIsYUFBYU8sR0FDNUJFLEVBQVl4MUIsS0FBS2cxQixhQUFhTyxHQUNoQ25uQixFQUFBQSxJQUFJaEssTUFBTW94QixJQUNabnhCLEVBQVNteEIsRUFBVUMsVUFBVXB4QixHQUN4Qmd4QixJQUNIaHhCLEVBQVNBLEVBQU9vRyxJQUFJLFFBQVM2cUIsR0FDN0JELEVBQVFDLElBRURsbkIsRUFBQUEsSUFBSWhLLE1BQU1DLElBQTJCLElBQWhCQSxFQUFPc0csT0FDckN0RyxFQUFTLEtBQ1Q2SSxFQUFPb29CLEVBRVgsQ0FFQSxJQUFJanhCLEVBQ0YsT0FBT2tPLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUscUJBQ2ZqVSxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLHFCQUFzQm9PLEdBQWUxbkIsSUFDbkRvb0IsR0FBUS9pQixJQUFBQSxjQUFDbWpCLGFBQWMsQ0FBQ2hQLE9BQU8sT0FBT0QsTUFBTSxVQUl4RCxNQUFNa1AsRUFBYTViLEVBQWM1VixVQUFZRSxFQUFPbEQsSUFBSSxjQUl4RCxPQUhBMHpCLE9BQWtCdjBCLElBQVZ1MEIsRUFBc0JBLElBQVVRLEVBQ3hDL3lCLEVBQU8rQixHQUFVQSxFQUFPbEQsSUFBSSxTQUFXbUIsRUFFaENBLEdBQ0wsSUFBSyxTQUNILE9BQU9pUSxJQUFBQSxjQUFDMmlCLEVBQVd0TyxLQUFBLENBQ2pCSixVQUFVLFVBQWN4bUIsS0FBS3FkLE1BQUssQ0FDbENnVCxTQUFVQSxFQUNWbGUsV0FBYUEsRUFDYjlOLE9BQVNBLEVBQ1Q2SSxLQUFPQSxFQUNQeW9CLFdBQVlBLEVBQ1pkLE1BQVFBLEVBQ1IzQyxnQkFBbUJBLEVBQ25CRCxpQkFBb0JBLEtBQ3hCLElBQUssUUFDSCxPQUFPMWYsSUFBQUEsY0FBQzRpQixFQUFVdk8sS0FBQSxDQUNoQkosVUFBVSxTQUFheG1CLEtBQUtxZCxNQUFLLENBQ2pDbEwsV0FBYUEsRUFDYjlOLE9BQVNBLEVBQ1Q2SSxLQUFPQSxFQUNQeW9CLFdBQVlBLEVBQ1piLFNBQVdBLEVBQ1g1QyxnQkFBbUJBLEVBQ25CRCxpQkFBb0JBLEtBS3hCLFFBQ0UsT0FBTzFmLElBQUFBLGNBQUM2aUIsRUFBY3hPLEtBQUEsR0FDZjVtQixLQUFLcWQsTUFBSyxDQUNmdUIsYUFBZUEsRUFDZnpNLFdBQWFBLEVBQ2I5TixPQUFTQSxFQUNUNkksS0FBT0EsRUFDUHlvQixXQUFZQSxFQUNaYixTQUFXQSxLQUVuQixFQ2hJYSxNQUFNYyxlQUFlN0YsRUFBQUEsVUFVbEM4RixrQkFBb0JBLElBQ0g3MUIsS0FBS3FkLE1BQU10RCxjQUFjNVYsU0FDeEIsQ0FBQyxhQUFjLFdBQWEsQ0FBQyxlQUcvQzJ4QixvQkFBc0JBLElBQ2IsSUFHVEMsYUFBZUEsQ0FBQzdvQixFQUFNb2dCLEtBQ3BCLE1BQU0sY0FBRXRLLEdBQWtCaGpCLEtBQUtxZCxNQUMvQjJGLEVBQWNVLEtBQUssSUFBSTFqQixLQUFLNjFCLG9CQUFxQjNvQixHQUFPb2dCLEdBQ3JEQSxHQUNEdHRCLEtBQUtxZCxNQUFNK0MsWUFBWTRWLHVCQUF1QixJQUFJaDJCLEtBQUs2MUIsb0JBQXFCM29CLEdBQzlFLEVBR0Yrb0IsYUFBZ0I1VCxJQUNWQSxHQUNGcmlCLEtBQUtxZCxNQUFNMkYsY0FBY0wsY0FBYzNpQixLQUFLNjFCLG9CQUFxQnhULEVBQ25FLEVBR0Y2VCxZQUFlN1QsSUFDYixHQUFJQSxFQUFLLENBQ1AsTUFBTW5WLEVBQU9tVixFQUFJOFQsYUFBYSxhQUM5Qm4yQixLQUFLcWQsTUFBTTJGLGNBQWNMLGNBQWMsSUFBSTNpQixLQUFLNjFCLG9CQUFxQjNvQixHQUFPbVYsRUFDOUUsR0FHRjFELE1BQUFBLEdBQ0UsSUFBSSxjQUFFNUUsRUFBYSxhQUFFNkUsRUFBWSxnQkFBRWtFLEVBQWUsY0FBRUUsRUFBYSxXQUFFN1EsR0FBZW5TLEtBQUtxZCxNQUNuRlosRUFBYzFDLEVBQWMwQyxlQUM1QixhQUFFMlosRUFBWSx5QkFBRUMsR0FBNkJsa0IsSUFDakQsSUFBS3NLLEVBQVk5UixNQUFRMHJCLEVBQTJCLEVBQUcsT0FBTyxLQUU5RCxNQUFNQyxFQUFldDJCLEtBQUs2MUIsb0JBQzFCLElBQUlVLEVBQWF6VCxFQUFnQndGLFFBQVFnTyxFQUFjRCxFQUEyQixHQUFzQixTQUFqQkQsR0FDdkYsTUFBTWp5QixFQUFTNFYsRUFBYzVWLFNBRXZCa3VCLEVBQWV6VCxFQUFhLGdCQUM1QjRYLEVBQVc1WCxFQUFhLFlBQ3hCa1IsRUFBZ0JsUixFQUFhLGlCQUM3QjZYLEVBQWE3WCxFQUFhLGNBQWMsR0FDeEM2SSxFQUFjN0ksRUFBYSxlQUMzQjhJLEVBQWdCOUksRUFBYSxpQkFFbkMsT0FBT3JNLElBQUFBLGNBQUEsV0FBU2lVLFVBQVkrUCxFQUFhLGlCQUFtQixTQUFVbFUsSUFBS3JpQixLQUFLaTJCLGNBQzlFMWpCLElBQUFBLGNBQUEsVUFDRUEsSUFBQUEsY0FBQSxVQUNFLGdCQUFlZ2tCLEVBQ2YvUCxVQUFVLGlCQUNWd0ksUUFBU0EsSUFBTWhNLEVBQWNVLEtBQUs0UyxHQUFlQyxJQUVqRGhrQixJQUFBQSxjQUFBLFlBQU9wTyxFQUFTLFVBQVksVUFDM0JveUIsRUFBYWhrQixJQUFBQSxjQUFDa1YsRUFBVyxNQUFNbFYsSUFBQUEsY0FBQ21WLEVBQWEsUUFHbERuVixJQUFBQSxjQUFDaWtCLEVBQVEsQ0FBQ0UsU0FBVUgsR0FFaEI5WixFQUFZWCxXQUFXcFcsS0FBSSxFQUFFd0gsTUFFM0IsTUFBTWdtQixFQUFXLElBQUlvRCxFQUFjcHBCLEdBQzdCbWpCLEVBQVd0c0IsSUFBQUEsS0FBUW12QixHQUVuQnlELEVBQWM1YyxFQUFjNmMsb0JBQW9CMUQsR0FDaEQyRCxFQUFpQjljLEVBQWN5RixXQUFXNWEsTUFBTXN1QixHQUVoRDd1QixFQUFTK0osRUFBQUEsSUFBSWhLLE1BQU11eUIsR0FBZUEsRUFBYzV5QixJQUFBQSxNQUNoRCt5QixFQUFZMW9CLEVBQUFBLElBQUloSyxNQUFNeXlCLEdBQWtCQSxFQUFpQjl5QixJQUFBQSxNQUV6RDZ3QixFQUFjdndCLEVBQU9sRCxJQUFJLFVBQVkyMUIsRUFBVTMxQixJQUFJLFVBQVkrTCxFQUMvRG9iLEVBQVV4RixFQUFnQndGLFFBQVE0SyxHQUFVLEdBRTlDNUssR0FBNEIsSUFBaEJqa0IsRUFBT3NHLE1BQWNtc0IsRUFBVW5zQixLQUFPLEdBR3BEM0ssS0FBS3FkLE1BQU0rQyxZQUFZNFYsdUJBQXVCOUMsR0FHaEQsTUFBTTZELEVBQVV4a0IsSUFBQUEsY0FBQzhmLEVBQVksQ0FBQ25sQixLQUFPQSxFQUNuQytsQixZQUFjb0QsRUFDZGh5QixPQUFTQSxHQUFVTixJQUFBQSxNQUNuQjZ3QixZQUFhQSxFQUNiMUIsU0FBVUEsRUFDVjdDLFNBQVVBLEVBQ1Z6UixhQUFlQSxFQUNmN0UsY0FBZ0JBLEVBQ2hCNUgsV0FBY0EsRUFDZDJRLGdCQUFtQkEsRUFDbkJFLGNBQWlCQSxFQUNqQmtQLGlCQUFtQixFQUNuQkQsa0JBQW9CLElBRWhCL0MsRUFBUTNjLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsYUFDNUJqVSxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLHFCQUNib08sSUFJTCxPQUFPcmlCLElBQUFBLGNBQUEsT0FBS2pELEdBQUssU0FBU3BDLElBQVNzWixVQUFVLGtCQUFrQjFsQixJQUFNLGtCQUFrQm9NLElBQy9FLFlBQVdBLEVBQU1tVixJQUFLcmlCLEtBQUtrMkIsYUFDakMzakIsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSx1QkFBc0JqVSxJQUFBQSxjQUFDa2tCLEVBQVUsQ0FBQzlZLEtBQU0wUyxLQUN4RDlkLElBQUFBLGNBQUN1ZCxFQUFhLENBQ1ppQixRQUFRLFlBQ1JkLGlCQUFrQmp3QixLQUFLODFCLG9CQUFvQjVvQixHQUMzQ2lqQixTQUFVbndCLEtBQUsrMUIsYUFDZjdHLE1BQU9BLEVBQ1AwRixZQUFhQSxFQUNibEUsVUFBV3hqQixFQUNYbWpCLFNBQVVBLEVBQ1Z2TixnQkFBaUJBLEVBQ2pCRSxjQUFlQSxFQUNmb04sa0JBQWtCLEVBQ2xCRixTQUFXbUcsRUFBMkIsR0FBSy9OLEdBQ3pDeU8sR0FDRSxJQUNQNXJCLFdBSVgsRUN0SUYsTUFlQSxXQWZrQjZyQixFQUFHcDFCLFFBQU9nZCxtQkFDMUIsSUFBSWtSLEVBQWdCbFIsRUFBYSxpQkFDN0JxUixFQUFtQjFkLElBQUFBLGNBQUEsWUFBTSxXQUFVM1EsRUFBTXFILFFBQVMsTUFDdEQsT0FBT3NKLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsYUFBWSxRQUM1QmpVLElBQUFBLGNBQUEsV0FDTEEsSUFBQUEsY0FBQ3VkLEVBQWEsQ0FBQ0csaUJBQW1CQSxHQUFtQixLQUMvQ3J1QixFQUFNOEQsSUFBSW1JLFFBQVFSLEtBQUssTUFBTyxNQUUvQixFQ1hGLFNBQVM0cEIsY0FBYzdkLEdBQzVCLE9BQU9BLEVBQUk4ZCxNQUFNLHFCQUNuQixDQVFPLFNBQVNDLGFBQWE5YyxFQUFnQitjLEdBQzNDLE9BQUsvYyxFQUNENGMsY0FBYzVjLEdBUmIsU0FBU2dkLFlBQVlqZSxHQUMxQixPQUFLQSxFQUFJOGQsTUFBTSxVQUVSLEdBQUd4ekIsT0FBT04sU0FBU2swQixXQUFXbGUsSUFGSkEsQ0FHbkMsQ0FJNENpZSxDQUFZaGQsR0FFL0MsSUFBSWtkLElBQUlsZCxFQUFnQitjLEdBQVNJLEtBSFpKLENBSTlCLENBaUJPLFNBQVNLLGFBQWFyZSxFQUFLZ2UsR0FBUyxlQUFFL2MsRUFBZSxJQUFPLENBQUMsR0FDbEUsSUFDRSxPQWpCRyxTQUFTcWQsU0FBU3RlLEVBQUtnZSxHQUFTLGVBQUUvYyxFQUFlLElBQU8sQ0FBQyxHQUM5RCxJQUFLakIsRUFBSyxPQUNWLEdBQUk2ZCxjQUFjN2QsR0FBTSxPQUFPQSxFQUUvQixNQUFNdWUsRUFBVVIsYUFBYTljLEVBQWdCK2MsR0FDN0MsT0FBS0gsY0FBY1UsR0FHWixJQUFJSixJQUFJbmUsRUFBS3VlLEdBQVNILEtBRnBCLElBQUlELElBQUluZSxFQUFLMVYsT0FBT04sU0FBU28wQixNQUFNQSxJQUc5QyxDQVFXRSxDQUFTdGUsRUFBS2dlLEVBQVMsQ0FBRS9jLGtCQUNsQyxDQUFFLE1BQ0EsTUFDRixDQUNGLENBRU8sU0FBU3VkLFlBQVl4ZSxHQUMxQixHQUFtQixpQkFBUkEsR0FBbUMsS0FBZkEsRUFBSXRMLE9BQ2pDLE1BQU8sR0FHVCxNQUFNK3BCLEVBQWF6ZSxFQUFJdEwsT0FDakJncUIsRUFBVyxjQUVqQixJQUNFLE1BQU1DLEVBQU8sZUFBZWxxQixPQUFPbXFCLEtBQUtDLFVBQVUza0IsTUFBTSxLQUNsRDRrQixFQUFZLElBQUlYLElBQUlNLEVBQVlFLEdBQ2hDSSxFQUFTRCxFQUFVWixTQUFTaGtCLE1BQU0sR0FBSSxHQUc1QyxNQUFJLENBQUMsYUFBYyxPQUFRLFlBQVk3TyxTQUFTMHpCLEVBQU90c0IsZUFDOUNpc0IsRUFJTEksRUFBVUUsU0FBV0wsRUFDaEJGLEVBQVdRLFdBQVcsS0FDekIsR0FBR0gsRUFBVUksV0FBV0osRUFBVUssU0FBU0wsRUFBVWpYLE9BQ3JENFcsRUFBV1EsV0FBVyxLQUN0QixJQUFJSCxFQUFVSSxXQUFXSixFQUFVSyxTQUFTTCxFQUFValgsT0FDdEQsR0FBR2lYLEVBQVVJLFNBQVNFLFVBQVUsS0FBS04sRUFBVUssU0FBU0wsRUFBVWpYLE9BR2pFcFQsT0FBT3FxQixFQUNoQixDQUFFLE1BQ0EsT0FBT0osQ0FDVCxDQUNGLENDeERlLE1BQU01QyxvQkFBb0JuRixFQUFBQSxVQWtCdkNwUixNQUFBQSxHQUNFLElBQUksT0FDRnRhLEVBQU0sS0FDTjZJLEVBQUksWUFDSjBuQixFQUFXLE1BQ1hDLEVBQUssYUFDTGpXLEVBQVksV0FDWnpNLEVBQVUsTUFDVmloQixFQUFLLFNBQ0xqRCxFQUFRLFNBQ1JELEVBQVEsU0FDUkcsS0FDR29JLEdBQ0R6NEIsS0FBS3FkLE9BQ0wsY0FBRXRELEVBQWEsWUFBRWtaLEVBQVcsZ0JBQUVmLEVBQWUsaUJBQUVELEdBQ2pEd0csRUFDRixNQUFNLE9BQUV0MEIsR0FBVzRWLEVBQ2IyZSxFQUFhdEYsRUFBUSxHQUFnQixJQUFWQSxHQUFtQyxVQUFwQi9DLEVBQVN4SyxPQUV6RCxJQUFLeGhCLEVBQ0gsT0FBTyxLQUdULE1BQU0sZUFBRXMwQixHQUFtQnhtQixJQUNyQnltQixFQUFhRCxFQUFpQjFxQixjQUFjNUosSUFBVXNZLEVBQUFBLEVBQUFBLFFBRTVELElBQUlrYyxFQUFjeDBCLEVBQU9sRCxJQUFJLGVBQ3pCMjNCLEVBQWF6MEIsRUFBT2xELElBQUksY0FDeEI0M0IsRUFBdUIxMEIsRUFBT2xELElBQUksd0JBQ2xDK3RCLEVBQVE3cUIsRUFBT2xELElBQUksVUFBWXl6QixHQUFlMW5CLEVBQzlDOHJCLEVBQXFCMzBCLEVBQU9sRCxJQUFJLFlBQ2hDODNCLEVBQWlCNTBCLEVBQU9yQixRQUMxQixDQUFDdUIsRUFBR3pELEtBR0ssSUFGUCxDQUFDLGdCQUFpQixnQkFBaUIsV0FBWSxXQUFXNk0sUUFDeEQ3TSxLQUdGNjBCLEVBQWF0eEIsRUFBT2xELElBQUksY0FDeEIrM0IsRUFBa0I3MEIsRUFBT08sTUFBTSxDQUFDLGVBQWdCLFFBQ2hEdTBCLEVBQTBCOTBCLEVBQU9PLE1BQU0sQ0FBQyxlQUFnQixnQkFFNUQsTUFBTTZ4QixFQUFhN1gsRUFBYSxjQUFjLEdBQ3hDd2EsRUFBV3hhLEVBQWEsWUFBWSxHQUNwQ3VVLEVBQVF2VSxFQUFhLFNBQ3JCa1IsRUFBZ0JsUixFQUFhLGlCQUM3QnlhLEVBQVd6YSxFQUFhLFlBQ3hCMGEsRUFBTzFhLEVBQWEsUUFDcEIyYSxFQUFrQjNhLEVBQWEsbUJBRS9CNGEsa0JBQW9CQSxJQUV0QmpuQixJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLHNCQUNkalUsSUFBQUEsY0FBQ2trQixFQUFVLENBQUM5WSxLQUFNMFMsS0FJbEJKLEVBQ0oxZCxJQUFBQSxjQUFBLFlBQ0VBLElBQUFBLGNBQUEsWUFoRlUsS0FnRmMsTUFBR0EsSUFBQUEsY0FBQSxZQS9FaEIsS0FnRlZzaUIsRUFBUXRpQixJQUFBQSxjQUFDaW5CLGtCQUFpQixNQUFNLElBSS9CQyxFQUFRMWYsRUFBYzVWLFNBQVdFLEVBQU9sRCxJQUFJLFNBQVcsS0FDdkR1NEIsRUFBUTNmLEVBQWM1VixTQUFXRSxFQUFPbEQsSUFBSSxTQUFXLEtBQ3ZEdzRCLEVBQVE1ZixFQUFjNVYsU0FBV0UsRUFBT2xELElBQUksU0FBVyxLQUN2RHk0QixFQUFNN2YsRUFBYzVWLFNBQVdFLEVBQU9sRCxJQUFJLE9BQVMsS0FFbkQwNEIsRUFBVTNLLEdBQ2QzYyxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGVBQ2JxTyxHQUFTeHdCLEVBQU9sRCxJQUFJLFVBQ25Cb1IsSUFBQUEsY0FBQSxRQUNFaVUsVUFBVzZJLEtBQVcsYUFBYyxDQUNsQyx1QkFBd0JxSixLQUd6QnIwQixFQUFPbEQsSUFBSSxVQUdoQm9SLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUscUJBQXFCMEksSUFJekMsT0FDRTNjLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsU0FDZGpVLElBQUFBLGNBQUN1ZCxFQUFhLENBQ1pZLFVBQVd4akIsRUFDWGdpQixNQUFPMkssRUFDUDFKLFNBQVVBLEVBQ1ZELFdBQVVBLEdBQWtCa0QsR0FBU0gsRUFDckNoRCxpQkFBa0JBLEdBRWxCMWQsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxxQkFsSFIsS0FtSE5xTyxFQUFldGlCLElBQUFBLGNBQUNpbkIsa0JBQWlCLE1BQXpCLEtBQ1ZqbkIsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxnQkFFWmpVLElBQUFBLGNBQUEsU0FBT2lVLFVBQVUsU0FDZmpVLElBQUFBLGNBQUEsYUFDSXNtQixFQUNBdG1CLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsZUFDWmpVLElBQUFBLGNBQUEsVUFBSSxnQkFDSkEsSUFBQUEsY0FBQSxVQUNFQSxJQUFBQSxjQUFDNm1CLEVBQVEsQ0FBQ3hoQixPQUFRaWhCLE1BSlIsS0FRZkssR0FDQzNtQixJQUFBQSxjQUFBLE1BQUlpVSxVQUFXLGlCQUNialUsSUFBQUEsY0FBQSxVQUFJLGlCQUNKQSxJQUFBQSxjQUFBLFVBQ0VBLElBQUFBLGNBQUMrbUIsRUFBSSxDQUNIemdCLE9BQU8sU0FDUDJlLEtBQU1JLFlBQVlzQixJQUVqQkMsR0FBMkJELEtBS2xDdkQsRUFDQXBqQixJQUFBQSxjQUFBLE1BQUlpVSxVQUFXLFlBQ2JqVSxJQUFBQSxjQUFBLFVBQUksZUFDSkEsSUFBQUEsY0FBQSxVQUFJLFNBSE8sS0FNWnVtQixHQUFjQSxFQUFXbnVCLEtBRXhCbXVCLEVBQ0doZCxXQUNBOVksUUFBTyxFQUFFLENBQUVwQixPQUVOQSxFQUFNVCxJQUFJLGFBQWUrd0IsTUFDekJ0d0IsRUFBTVQsSUFBSSxjQUFnQjh3QixLQUcvQnZzQixLQUFJLEVBQUU1RSxFQUFLYyxNQUNWLElBQUlrNEIsRUFBZTMxQixLQUFZdkMsRUFBTVQsSUFBSSxjQUNyQ3V6QixFQUNGL1gsRUFBQUEsS0FBSzNULE9BQU9nd0IsSUFDWkEsRUFBbUIvYixTQUFTbmMsR0FFMUJ1dUIsRUFBYSxDQUFDLGdCQVVsQixPQVJJeUssR0FDRnpLLEVBQVd6bUIsS0FBSyxjQUdkOHJCLEdBQ0ZyRixFQUFXem1CLEtBQUssWUFJaEIySixJQUFBQSxjQUFBLE1BQUl6UixJQUFLQSxFQUFLMGxCLFVBQVc2SSxFQUFXaGlCLEtBQUssTUFDdkNrRixJQUFBQSxjQUFBLFVBQ0d6UixFQUNBNHpCLEdBQWNuaUIsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxRQUFPLE1BRXhDalUsSUFBQUEsY0FBQSxVQUNFQSxJQUFBQSxjQUFDNGdCLEVBQUt2TSxLQUFBLENBQ0o5bEIsSUFBSyxVQUFVb00sS0FBUXBNLEtBQU9jLEtBQzFCNjJCLEVBQVUsQ0FDZDNELFNBQVVKLEVBQ1Y5VixhQUFjQSxFQUNkeVIsU0FBVUEsRUFBU3puQixLQUFLLGFBQWM5SCxHQUN0Q3FSLFdBQVlBLEVBQ1o5TixPQUFRekMsRUFDUnd4QixNQUFPQSxFQUFRLE1BR2hCLElBR1Jqb0IsVUE5Q0gsS0ErQ2lCLElBQXBCeXRCLEVBQVdqdUIsS0FBYSxLQUN2QjRILElBQUFBLGNBQUFBLElBQUFBLFNBQUEsS0FDRUEsSUFBQUEsY0FBQSxVQUNFQSxJQUFBQSxjQUFBLFVBQUksTUFFTkEsSUFBQUEsY0FBQ2duQixFQUFlLENBQ2RYLFdBQVlBLEVBQ1ptQixVQUFVLGVBSWRoQixHQUNEQSxFQUFxQnB1QixLQUNwQjRILElBQUFBLGNBQUEsVUFDRUEsSUFBQUEsY0FBQSxVQUFLLFVBQ0xBLElBQUFBLGNBQUEsVUFDRUEsSUFBQUEsY0FBQzRnQixFQUFLdk0sS0FBQSxHQUNBNlIsRUFBVSxDQUNkM0QsVUFBVSxFQUNWbFcsYUFBY0EsRUFDZHlSLFNBQVVBLEVBQVN6bkIsS0FBSyx3QkFDeEJ1SixXQUFZQSxFQUNaOU4sT0FBUTAwQixFQUNSM0YsTUFBT0EsRUFBUSxPQVhNLEtBZ0IzQnFHLEVBQ0FsbkIsSUFBQUEsY0FBQSxVQUNFQSxJQUFBQSxjQUFBLFVBQUssWUFDTEEsSUFBQUEsY0FBQSxVQUNHa25CLEVBQU0vekIsS0FBSSxDQUFDckIsRUFBUUcsSUFFaEIrTixJQUFBQSxjQUFBLE9BQUt6UixJQUFLMEQsR0FDUitOLElBQUFBLGNBQUM0Z0IsRUFBS3ZNLEtBQUEsR0FDQTZSLEVBQVUsQ0FDZDNELFVBQVUsRUFDVmxXLGFBQWNBLEVBQ2R5UixTQUFVQSxFQUFTem5CLEtBQUssUUFBU3BFLEdBQ2pDMk4sV0FBWUEsRUFDWjlOLE9BQVFBLEVBQ1IrdUIsTUFBT0EsRUFBUSxVQWRuQixLQXNCUnNHLEVBQ0FubkIsSUFBQUEsY0FBQSxVQUNFQSxJQUFBQSxjQUFBLFVBQUssWUFDTEEsSUFBQUEsY0FBQSxVQUNHbW5CLEVBQU1oMEIsS0FBSSxDQUFDckIsRUFBUUcsSUFFaEIrTixJQUFBQSxjQUFBLE9BQUt6UixJQUFLMEQsR0FDUitOLElBQUFBLGNBQUM0Z0IsRUFBS3ZNLEtBQUEsR0FDQTZSLEVBQVUsQ0FDZDNELFVBQVUsRUFDVmxXLGFBQWNBLEVBQ2R5UixTQUFVQSxFQUFTem5CLEtBQUssUUFBU3BFLEdBQ2pDMk4sV0FBWUEsRUFDWjlOLE9BQVFBLEVBQ1IrdUIsTUFBT0EsRUFBUSxVQWRuQixLQXNCUnVHLEVBQ0FwbkIsSUFBQUEsY0FBQSxVQUNFQSxJQUFBQSxjQUFBLFVBQUssWUFDTEEsSUFBQUEsY0FBQSxVQUNHb25CLEVBQU1qMEIsS0FBSSxDQUFDckIsRUFBUUcsSUFFaEIrTixJQUFBQSxjQUFBLE9BQUt6UixJQUFLMEQsR0FDUitOLElBQUFBLGNBQUM0Z0IsRUFBS3ZNLEtBQUEsR0FDQTZSLEVBQVUsQ0FDZDNELFVBQVUsRUFDVmxXLGFBQWNBLEVBQ2R5UixTQUFVQSxFQUFTem5CLEtBQUssUUFBU3BFLEdBQ2pDMk4sV0FBWUEsRUFDWjlOLE9BQVFBLEVBQ1IrdUIsTUFBT0EsRUFBUSxVQWRuQixLQXNCUndHLEVBQ0FybkIsSUFBQUEsY0FBQSxVQUNFQSxJQUFBQSxjQUFBLFVBQUssVUFDTEEsSUFBQUEsY0FBQSxVQUNFQSxJQUFBQSxjQUFBLFdBQ0VBLElBQUFBLGNBQUM0Z0IsRUFBS3ZNLEtBQUEsR0FDQTZSLEVBQVUsQ0FDZDNELFVBQVUsRUFDVmxXLGFBQWNBLEVBQ2R5UixTQUFVQSxFQUFTem5CLEtBQUssT0FDeEJ1SixXQUFZQSxFQUNaOU4sT0FBUXUxQixFQUNSeEcsTUFBT0EsRUFBUSxRQVpqQixRQXNCaEI3Z0IsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxlQXRUUCxNQXdUVnlTLEVBQWV0dUIsS0FDWnN1QixFQUNHbmQsV0FDQXBXLEtBQUksRUFBRTVFLEVBQUt5RCxLQUNWZ08sSUFBQUEsY0FBQzhtQixFQUFRLENBQ1B2NEIsSUFBSyxHQUFHQSxLQUFPeUQsSUFDZmtGLFFBQVMzSSxFQUNUazVCLFFBQVN6MUIsRUFDVHcxQixVQS9UQSxlQWtVTixLQUdWLEVDM1VhLE1BQU01RSxtQkFBbUJwRixFQUFBQSxVQWdCdENwUixNQUFBQSxHQUNFLElBQUksYUFBRUMsRUFBWSxXQUFFek0sRUFBVSxPQUFFOU4sRUFBTSxNQUFFK3VCLEVBQUssWUFBRUgsRUFBVyxLQUFFL2xCLEVBQUksWUFBRTBuQixFQUFXLFNBQUV2RSxHQUFhcndCLEtBQUtxZCxNQUM3RndiLEVBQWN4MEIsRUFBT2xELElBQUksZUFDekI4NEIsRUFBUTUxQixFQUFPbEQsSUFBSSxTQUNuQit0QixFQUFRN3FCLEVBQU9sRCxJQUFJLFVBQVl5ekIsR0FBZTFuQixFQUM5QzRyQixFQUFhejBCLEVBQU9yQixRQUFRLENBQUV1QixFQUFHekQsS0FBb0YsSUFBNUUsQ0FBQyxPQUFRLFFBQVMsY0FBZSxRQUFTLGdCQUFnQjZNLFFBQVE3TSxLQUMzR280QixFQUFrQjcwQixFQUFPTyxNQUFNLENBQUMsZUFBZ0IsUUFDaER1MEIsRUFBMEI5MEIsRUFBT08sTUFBTSxDQUFDLGVBQWdCLGdCQUc1RCxNQUFNdzBCLEVBQVd4YSxFQUFhLFlBQVksR0FDcENrUixFQUFnQmxSLEVBQWEsaUJBQzdCdVUsRUFBUXZVLEVBQWEsU0FDckJ5YSxFQUFXemEsRUFBYSxZQUN4QjBhLEVBQU8xYSxFQUFhLFFBRXBCaWIsRUFBVTNLLEdBQ2QzYyxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGVBQ2RqVSxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLHFCQUFzQjBJLElBUTFDLE9BQU8zYyxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLFNBQ3JCalUsSUFBQUEsY0FBQ3VkLEVBQWEsQ0FBQ1osTUFBTzJLLEVBQVMzSixTQUFXa0QsR0FBU0gsRUFBY2hELGlCQUFpQixTQUFRLElBR3BGNkksRUFBV251QixLQUFPbXVCLEVBQVdoZCxXQUFXcFcsS0FBSyxFQUFJNUUsRUFBS3lELEtBQVNnTyxJQUFBQSxjQUFDOG1CLEVBQVEsQ0FBQ3Y0QixJQUFLLEdBQUdBLEtBQU95RCxJQUFLa0YsUUFBVTNJLEVBQU1rNUIsUUFBVXoxQixFQUFJdzFCLFVBaERySCxlQWdEbUosS0FHeEpsQixFQUNDdG1CLElBQUFBLGNBQUM2bUIsRUFBUSxDQUFDeGhCLE9BQVNpaEIsSUFETEMsRUFBV251QixLQUFPNEgsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxhQUFvQixLQUdyRTBTLEdBQ0EzbUIsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxpQkFDWmpVLElBQUFBLGNBQUMrbUIsRUFBSSxDQUFDemdCLE9BQU8sU0FBUzJlLEtBQU1JLFlBQVlzQixJQUFtQkMsR0FBMkJELElBRzNGM21CLElBQUFBLGNBQUEsWUFDRUEsSUFBQUEsY0FBQzRnQixFQUFLdk0sS0FBQSxHQUNDNW1CLEtBQUtxZCxNQUFLLENBQ2ZsTCxXQUFhQSxFQUNia2UsU0FBVUEsRUFBU3puQixLQUFLLFNBQ3hCc0UsS0FBTSxLQUNON0ksT0FBUzQxQixFQUNUbkYsVUFBVyxFQUNYMUIsTUFBUUEsRUFBUSxNQUViLEtBSWYsRUN0RUYsTUFBTTJHLEdBQVkscUJBRUgsTUFBTUcsa0JBQWtCbkssRUFBQUEsVUFXckNwUixNQUFBQSxHQUNFLElBQUksT0FDRnRhLEVBQU0sYUFDTnVhLEVBQVksV0FDWnpNLEVBQVUsS0FDVmpGLEVBQUksWUFDSjBuQixFQUFXLE1BQ1h4QixFQUFLLFlBQ0xILEdBQ0VqekIsS0FBS3FkLE1BRVQsTUFBTSxlQUFFc2IsR0FBbUJ4bUIsSUFFM0IsSUFBSzlOLElBQVdBLEVBQU9sRCxJQUVyQixPQUFPb1IsSUFBQUEsY0FBQSxZQUdULElBQUlqUSxFQUFPK0IsRUFBT2xELElBQUksUUFDbEI4RyxFQUFTNUQsRUFBT2xELElBQUksVUFDcEJnNUIsRUFBTTkxQixFQUFPbEQsSUFBSSxPQUNqQmk1QixFQUFZLzFCLEVBQU9sRCxJQUFJLFFBQ3ZCK3RCLEVBQVE3cUIsRUFBT2xELElBQUksVUFBWXl6QixHQUFlMW5CLEVBQzlDMnJCLEVBQWN4MEIsRUFBT2xELElBQUksZUFDN0IsTUFBTXkzQixFQUFhM3FCLGNBQWM1SixHQUVqQyxJQUFJeTBCLEVBQWF6MEIsRUFDZHJCLFFBQ0MsQ0FBQ3EzQixFQUFHdjVCLEtBUWtCLElBUHBCLENBQ0UsT0FDQSxPQUNBLFNBQ0EsY0FDQSxRQUNBLGdCQUNBNk0sUUFBUTdNLEtBRWJ3NUIsV0FBVSxDQUFDRCxFQUFHdjVCLElBQVE4M0IsRUFBV3J2QixJQUFJekksS0FDcENvNEIsRUFBa0I3MEIsRUFBT08sTUFBTSxDQUFDLGVBQWdCLFFBQ2hEdTBCLEVBQTBCOTBCLEVBQU9PLE1BQU0sQ0FBQyxlQUFnQixnQkFFNUQsTUFBTXcwQixFQUFXeGEsRUFBYSxZQUFZLEdBQ3BDb1ksRUFBWXBZLEVBQWEsYUFDekJ5YSxFQUFXemEsRUFBYSxZQUN4QmtSLEVBQWdCbFIsRUFBYSxpQkFDN0IwYSxFQUFPMWEsRUFBYSxRQUNwQjJhLEVBQWtCM2EsRUFBYSxtQkFFL0JpYixFQUFVM0ssR0FDZDNjLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsZUFDZGpVLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUscUJBQXFCMEksSUFJekMsT0FDRTNjLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsU0FDZGpVLElBQUFBLGNBQUN1ZCxFQUFhLENBQ1paLE1BQU8ySyxFQUNQM0osU0FBVWtELEdBQVNILEVBQ25CaEQsaUJBQWlCLFNBRWpCMWQsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxRQUNidFosR0FBUWttQixFQUFRLEdBQUs3Z0IsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxhQUFhMEksR0FDbkQzYyxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGFBQWFsa0IsR0FDNUIyRixHQUFVc0ssSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxlQUFjLEtBQUd2ZSxFQUFPLEtBQ2xENndCLEVBQVdudUIsS0FDUm11QixFQUNHaGQsV0FDQXBXLEtBQUksRUFBRTVFLEVBQUt5RCxLQUNWZ08sSUFBQUEsY0FBQzhtQixFQUFRLENBQ1B2NEIsSUFBSyxHQUFHQSxLQUFPeUQsSUFDZmtGLFFBQVMzSSxFQUNUazVCLFFBQVN6MUIsRUFDVHcxQixVQUFXQSxPQUdqQixLQUNIcEIsR0FBa0JDLEVBQVdqdUIsS0FBTyxFQUNuQzRILElBQUFBLGNBQUNnbkIsRUFBZSxDQUNkWCxXQUFZQSxFQUNabUIsVUFBVyxHQUFHQSxpQkFFZCxLQUNGbEIsRUFBcUJ0bUIsSUFBQUEsY0FBQzZtQixFQUFRLENBQUN4aEIsT0FBUWloQixJQUF6QixLQUNmSyxHQUNDM21CLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsaUJBQ2JqVSxJQUFBQSxjQUFDK21CLEVBQUksQ0FBQ3pnQixPQUFPLFNBQVMyZSxLQUFNSSxZQUFZc0IsSUFDckNDLEdBQTJCRCxJQUlqQ2lCLEdBQU9BLEVBQUl4dkIsS0FDVjRILElBQUFBLGNBQUEsWUFDRUEsSUFBQUEsY0FBQSxXQUNBQSxJQUFBQSxjQUFBLFFBQU1pVSxVQUFXdVQsSUFBVyxRQUMzQkksRUFDRXJlLFdBQ0FwVyxLQUFJLEVBQUU1RSxFQUFLeUQsS0FDVmdPLElBQUFBLGNBQUEsUUFBTXpSLElBQUssR0FBR0EsS0FBT3lELElBQUtpaUIsVUFBV3VULElBQ25DeG5CLElBQUFBLGNBQUEsV0FBTSxNQUNhelIsRUFBSSxLQUFHK00sT0FBT3RKLE1BR3BDNEcsV0FFSCxLQUNIaXZCLEdBQ0M3bkIsSUFBQUEsY0FBQ3lrQixFQUFTLENBQUNwMUIsTUFBT3c0QixFQUFXeGIsYUFBY0EsTUFNdkQsRUNwSWEsTUFBTTJiLGdCQUFnQmhvQixJQUFBQSxVQVVuQ2lvQix5QkFBQUEsR0FDRSxJQUFJLFFBQUVDLEdBQVl6NkIsS0FBS3FkLE1BR3ZCcmQsS0FBSzA2QixVQUFVRCxFQUFROTFCLFFBQ3pCLENBRUFnc0IsZ0NBQUFBLENBQWlDQyxHQUN6QjV3QixLQUFLcWQsTUFBTXNkLGVBQWtCL0osRUFBVTZKLFFBQVFoMkIsU0FBU3pFLEtBQUtxZCxNQUFNc2QsZ0JBR3ZFMzZCLEtBQUswNkIsVUFBVTlKLEVBQVU2SixRQUFROTFCLFFBRXJDLENBRUFpMkIsU0FBWWozQixJQUNWM0QsS0FBSzA2QixVQUFXLzJCLEVBQUVrVixPQUFPalgsTUFBTyxFQUdsQzg0QixVQUFjOTRCLElBQ1osSUFBSSxLQUFFK2IsRUFBSSxPQUFFOVEsRUFBTSxZQUFFdVQsR0FBZ0JwZ0IsS0FBS3FkLE1BRXpDK0MsRUFBWXNhLFVBQVc5NEIsRUFBTytiLEVBQU05USxFQUFRLEVBRzlDOFIsTUFBQUEsR0FDRSxJQUFJLFFBQUU4YixFQUFPLGNBQUVFLEdBQWtCMzZCLEtBQUtxZCxNQUV0QyxPQUNFOUssSUFBQUEsY0FBQSxTQUFPc29CLFFBQVEsV0FDYnRvQixJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGlCQUFnQixXQUNoQ2pVLElBQUFBLGNBQUEsVUFBUXFvQixTQUFXNTZCLEtBQUs0NkIsU0FBV2g1QixNQUFPKzRCLEVBQWVyckIsR0FBRyxXQUN4RG1yQixFQUFRM2QsV0FBV3BYLEtBQ2pCeXlCLEdBQVk1bEIsSUFBQUEsY0FBQSxVQUFRM1EsTUFBUXUyQixFQUFTcjNCLElBQU1xM0IsR0FBV0EsS0FDeERodEIsV0FJVixFQ2hEYSxNQUFNMnZCLHlCQUF5QnZvQixJQUFBQSxVQVE1Q29NLE1BQUFBLEdBQ0UsTUFBTSxZQUFDeUIsRUFBVyxjQUFFckcsRUFBYSxhQUFFNkUsR0FBZ0I1ZSxLQUFLcWQsTUFFbERzZCxFQUFnQjVnQixFQUFjZ2hCLGtCQUM5Qk4sRUFBVTFnQixFQUFjMGdCLFVBRXhCRixFQUFVM2IsRUFBYSxXQUk3QixPQUYwQjZiLEdBQVdBLEVBQVE5dkIsS0FHekM0SCxJQUFBQSxjQUFDZ29CLEVBQU8sQ0FDTkksY0FBZUEsRUFDZkYsUUFBU0EsRUFDVHJhLFlBQWFBLElBRWIsSUFDUixFQzVCRixNQUFNLEdBQStCbmdCLFFBQVEsd0IsaUNDUTdDLE1BZU0rNkIsR0FBeUIsQ0FDN0JwNUIsTUFBTyxHQUNQZzVCLFNBakJXSyxPQWtCWDUyQixPQUFRLENBQUMsRUFDVDYyQixRQUFTLEdBQ1RwRyxVQUFVLEVBQ1ZweUIsUUFBUWlhLEVBQUFBLEVBQUFBLFNBR0gsTUFBTXdlLHVCQUF1QnBMLEVBQUFBLFVBR2xDQyxvQkFBc0JnTCxHQUV0QnZLLGlCQUFBQSxHQUNFLE1BQU0scUJBQUUySyxFQUFvQixNQUFFeDVCLEVBQUssU0FBRWc1QixHQUFhNTZCLEtBQUtxZCxNQUNwRCtkLEVBQ0RSLEVBQVNoNUIsSUFDd0IsSUFBekJ3NUIsR0FDUlIsRUFBUyxHQUViLENBRUFqYyxNQUFBQSxHQUNFLElBQUksT0FBRXRhLEVBQU0sT0FBRTNCLEVBQU0sTUFBRWQsRUFBSyxTQUFFZzVCLEVBQVEsYUFBRWhjLEVBQVksR0FBRWxZLEVBQUUsU0FBRTIwQixHQUFhcjdCLEtBQUtxZCxNQUMzRSxNQUFNcFYsRUFBUzVELEdBQVVBLEVBQU9sRCxJQUFNa0QsRUFBT2xELElBQUksVUFBWSxLQUN2RG1CLEVBQU8rQixHQUFVQSxFQUFPbEQsSUFBTWtELEVBQU9sRCxJQUFJLFFBQVUsS0FDbkRtNkIsRUFBYTUwQixFQUFHNjBCLG9CQUFvQmwzQixHQUNwQ20zQixFQUF1QjkwQixFQUFHODBCLHFCQUFxQm4zQixHQUVyRCxJQUFJbzNCLHFCQUF3QnZ1QixHQUFTMFIsRUFBYTFSLEdBQU0sRUFBTyxDQUFFd3VCLGNBQWMsSUFDM0VDLEVBQU9yNUIsRUFDVG01QixxQkFEZ0J4ekIsRUFDSyxjQUFjM0YsS0FBUTJGLElBQ3RCLGNBQWMzRixLQUNuQ3NjLEVBQWEscUJBVWYsT0FSSzRjLElBQXdCN2UsRUFBQUEsS0FBSzNULE9BQU8xRyxJQUF5QixVQUFmZzVCLEdBQXlDLFdBQWZBLElBQzNFSyxFQUFPL2MsRUFBYSxzQkFHakIrYyxJQUNIQSxFQUFPL2MsRUFBYSxzQkFHZnJNLElBQUFBLGNBQUNvcEIsRUFBSS9VLEtBQUEsR0FBTTVtQixLQUFLcWQsTUFBSyxDQUFHM2EsT0FBUUEsRUFBUWdFLEdBQUlBLEVBQUlrWSxhQUFjQSxFQUFjaGQsTUFBT0EsRUFBT2c1QixTQUFVQSxFQUFVdjJCLE9BQVFBLEVBQVFnM0IsU0FBVUEsSUFDakosRUFHSyxNQUFNTywwQkFBMEI3TCxFQUFBQSxVQUVyQ0Msb0JBQXNCZ0wsR0FDdEJKLFNBQVlqM0IsSUFDVixNQUFNL0IsRUFBUTVCLEtBQUtxZCxNQUFNaFosUUFBNEMsU0FBbENyRSxLQUFLcWQsTUFBTWhaLE9BQU9sRCxJQUFJLFFBQXFCd0MsRUFBRWtWLE9BQU9nakIsTUFBTSxHQUFLbDRCLEVBQUVrVixPQUFPalgsTUFDM0c1QixLQUFLcWQsTUFBTXVkLFNBQVNoNUIsRUFBTzVCLEtBQUtxZCxNQUFNNmQsUUFBUSxFQUVoRFksYUFBZ0JweUIsR0FBUTFKLEtBQUtxZCxNQUFNdWQsU0FBU2x4QixHQUM1Q2lWLE1BQUFBLEdBQ0UsSUFBSSxhQUFFQyxFQUFZLE1BQUVoZCxFQUFLLE9BQUV5QyxFQUFNLE9BQUUzQixFQUFNLFNBQUVveUIsRUFBUSxZQUFFK0QsRUFBVyxTQUFFd0MsR0FBYXI3QixLQUFLcWQsTUFDcEYsTUFBTTBlLEVBQVkxM0IsR0FBVUEsRUFBT2xELElBQU1rRCxFQUFPbEQsSUFBSSxRQUFVLEtBQ3hEOEcsRUFBUzVELEdBQVVBLEVBQU9sRCxJQUFNa0QsRUFBT2xELElBQUksVUFBWSxLQUN2RG1CLEVBQU8rQixHQUFVQSxFQUFPbEQsSUFBTWtELEVBQU9sRCxJQUFJLFFBQVUsS0FDbkQ2NkIsRUFBVzMzQixHQUFVQSxFQUFPbEQsSUFBTWtELEVBQU9sRCxJQUFJLE1BQVEsS0FTM0QsR0FSS1MsR0FFTWtELFlBQVlsRCxJQUEyQixpQkFBVkEsS0FDdENBLEVBQVE4TSxVQUFVOU0sSUFGbEJBLEVBQVEsR0FLVmMsRUFBU0EsRUFBT3dDLEtBQU94QyxFQUFPd0MsT0FBUyxHQUVsQzYyQixFQUFZLENBQ2YsTUFBTUUsRUFBU3JkLEVBQWEsVUFDNUIsT0FBUXJNLElBQUFBLGNBQUMwcEIsRUFBTSxDQUFDelYsVUFBWTlqQixFQUFPNEQsT0FBUyxVQUFZLEdBQ3hDNG9CLE1BQVF4c0IsRUFBTzRELE9BQVM1RCxFQUFTLEdBQ2pDdzVCLGNBQWdCLElBQUlILEdBQ3BCbjZCLE1BQVFBLEVBQ1J1NkIsaUJBQW1CckgsRUFDbkJ1RyxTQUFVQSxFQUNWVCxTQUFXNTZCLEtBQUs4N0IsY0FDbEMsQ0FFQSxNQUFNTSxFQUFhZixHQUFhVyxHQUF5QixhQUFiQSxLQUE2QixhQUFjdDRCLFFBQ2pGMjRCLEVBQVF6ZCxFQUFhLFNBQzNCLE9BQUl0YyxHQUFpQixTQUFUQSxFQUVSaVEsSUFBQUEsY0FBQzhwQixFQUFLLENBQUMvNUIsS0FBSyxPQUNWa2tCLFVBQVc5akIsRUFBTzRELE9BQVMsVUFBWSxHQUN2QzRvQixNQUFPeHNCLEVBQU80RCxPQUFTNUQsRUFBUyxHQUNoQ2s0QixTQUFVNTZCLEtBQUs0NkIsU0FDZlMsU0FBVWUsSUFLWjdwQixJQUFBQSxjQUFDK3BCLEtBQWEsQ0FDWmg2QixLQUFNMkYsR0FBcUIsYUFBWEEsRUFBd0IsV0FBYSxPQUNyRHVlLFVBQVc5akIsRUFBTzRELE9BQVMsVUFBWSxHQUN2QzRvQixNQUFPeHNCLEVBQU80RCxPQUFTNUQsRUFBUyxHQUNoQ2QsTUFBT0EsRUFDUHVHLFVBQVcsRUFDWG8wQixnQkFBaUIsSUFDakJDLFlBQWEzRCxFQUNiK0IsU0FBVTU2QixLQUFLNDZCLFNBQ2ZTLFNBQVVlLEdBR2xCLEVBR0ssTUFBTUsseUJBQXlCQyxFQUFBQSxjQUdwQzFNLG9CQUFzQmdMLEdBRXRCcHJCLFdBQUFBLENBQVl5TixFQUFPaVQsR0FDakJDLE1BQU1sVCxFQUFPaVQsR0FDYnR3QixLQUFLK1AsTUFBUSxDQUFFbk8sTUFBTys2QixpQkFBaUJ0ZixFQUFNemIsT0FBUXlDLE9BQVFnWixFQUFNaFosT0FDckUsQ0FFQXNzQixnQ0FBQUEsQ0FBaUN0VCxHQUMvQixNQUFNemIsRUFBUSs2QixpQkFBaUJ0ZixFQUFNemIsT0FDbENBLElBQVU1QixLQUFLK1AsTUFBTW5PLE9BQ3RCNUIsS0FBSzZ3QixTQUFTLENBQUVqdkIsVUFFZnliLEVBQU1oWixTQUFXckUsS0FBSytQLE1BQU0xTCxRQUM3QnJFLEtBQUs2d0IsU0FBUyxDQUFFeHNCLE9BQVFnWixFQUFNaFosUUFDbEMsQ0FFQXUyQixTQUFXQSxLQUNUNTZCLEtBQUtxZCxNQUFNdWQsU0FBUzU2QixLQUFLK1AsTUFBTW5PLE1BQU0sRUFHdkNnN0IsYUFBZUEsQ0FBQ0MsRUFBUzl4QixLQUN2Qi9LLEtBQUs2d0IsVUFBUyxFQUFHanZCLFlBQVksQ0FDM0JBLE1BQU9BLEVBQU02SSxJQUFJTSxFQUFHOHhCLE1BQ2xCNzhCLEtBQUs0NkIsU0FBUyxFQUdwQmtDLFdBQWMveEIsSUFDWi9LLEtBQUs2d0IsVUFBUyxFQUFHanZCLFlBQVksQ0FDM0JBLE1BQU9BLEVBQU15YSxPQUFPdFIsTUFDbEIvSyxLQUFLNDZCLFNBQVMsRUFHcEJtQyxRQUFVQSxLQUNSLE1BQU0sR0FBRXIyQixHQUFPMUcsS0FBS3FkLE1BQ3BCLElBQUkyZixFQUFXTCxpQkFBaUIzOEIsS0FBSytQLE1BQU1uTyxPQUMzQzVCLEtBQUs2d0IsVUFBUyxLQUFNLENBQ2xCanZCLE1BQU9vN0IsRUFBU3AwQixLQUFLbEMsRUFBR3UyQixnQkFBZ0JqOUIsS0FBSytQLE1BQU0xTCxPQUFPbEQsSUFBSSxVQUFVLEVBQU8sQ0FDN0U4d0Isa0JBQWtCLFFBRWxCanlCLEtBQUs0NkIsU0FBUyxFQUdwQmtCLGFBQWdCbDZCLElBQ2Q1QixLQUFLNndCLFVBQVMsS0FBTSxDQUNsQmp2QixNQUFPQSxLQUNMNUIsS0FBSzQ2QixTQUFTLEVBR3BCamMsTUFBQUEsR0FDRSxJQUFJLGFBQUVDLEVBQVksU0FBRWtXLEVBQVEsT0FBRXp3QixFQUFNLE9BQUUzQixFQUFNLEdBQUVnRSxFQUFFLFNBQUUyMEIsR0FBYXI3QixLQUFLcWQsTUFFcEUzYSxFQUFTQSxFQUFPd0MsS0FBT3hDLEVBQU93QyxPQUFTTSxNQUFNQyxRQUFRL0MsR0FBVUEsRUFBUyxHQUN4RSxNQUFNdzZCLEVBQWN4NkIsRUFBT00sUUFBT1csR0FBa0IsaUJBQU5BLElBQ3hDdzVCLEVBQW1CejZCLEVBQU9NLFFBQU9XLFFBQXNCckQsSUFBakJxRCxFQUFFeUcsYUFDM0MxRSxLQUFJL0IsR0FBS0EsRUFBRUUsUUFDUmpDLEVBQVE1QixLQUFLK1AsTUFBTW5PLE1BQ25CdzdCLEtBQ0R4N0IsR0FBU0EsRUFBTXFILE9BQVNySCxFQUFNcUgsUUFBVSxHQUN2Q28wQixFQUFrQmg1QixFQUFPTyxNQUFNLENBQUMsUUFBUyxTQUN6QzA0QixFQUFjajVCLEVBQU9sRCxJQUFJLFNBQ3pCbzhCLEVBQWtCNzJCLEVBQUc2MEIsb0JBQW9CK0IsR0FDekNFLEVBQXVCOTJCLEVBQUcrMkIseUJBQXlCSCxHQUNuREksRUFBb0JyNUIsRUFBT08sTUFBTSxDQUFDLFFBQVMsV0FDM0MrNEIsRUFBb0J0NUIsRUFBT2xELElBQUksU0FDckMsSUFBSXk4QixFQUNBQyxHQUFrQixFQUNsQkMsRUFBdUMsU0FBcEJQLEdBQW1ELFdBQXBCQSxHQUFzRCxXQUF0QkcsRUFpQnRGLEdBaEJJSCxHQUFtQkcsRUFDckJFLEVBQXNCaGYsRUFBYSxjQUFjMmUsS0FBbUJHLEtBQ3ZDLFlBQXBCSCxHQUFxRCxVQUFwQkEsR0FBbUQsV0FBcEJBLElBQ3pFSyxFQUFzQmhmLEVBQWEsY0FBYzJlLE9BRy9DNWdCLEVBQUFBLEtBQUszVCxPQUFPczBCLEdBQWFuOEIsSUFBSSxVQUFpQyxVQUFwQm84QixHQUFtRCxXQUFwQkEsSUFDM0VLLEVBQXNCaGYsRUFBYSxzQkFLaENnZixHQUF3QkUsSUFDM0JELEdBQWtCLEdBR2ZSLEVBQWtCLENBQ3JCLE1BQU1wQixFQUFTcmQsRUFBYSxVQUM1QixPQUFRck0sSUFBQUEsY0FBQzBwQixFQUFNLENBQUN6VixVQUFZOWpCLEVBQU80RCxPQUFTLFVBQVksR0FDeEM0b0IsTUFBUXhzQixFQUFPNEQsT0FBUzVELEVBQVMsR0FDakNxN0IsVUFBVyxFQUNYbjhCLE1BQVFBLEVBQ1J5NUIsU0FBVUEsRUFDVmEsY0FBZ0JtQixFQUNoQmxCLGlCQUFtQnJILEVBQ25COEYsU0FBVzU2QixLQUFLODdCLGNBQ2xDLENBRUEsTUFBTWtDLEVBQVNwZixFQUFhLFVBQzVCLE9BQ0VyTSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLHFCQUNaNFcsRUFDRXg3QixFQUFNOEQsS0FBSSxDQUFDb0YsRUFBTUMsS0FDaEIsTUFBTWt6QixHQUFhenpCLEVBQUFBLEVBQUFBLFFBQU8sSUFDckI5SCxFQUFPTSxRQUFRWCxHQUFRQSxFQUFJNkksUUFBVUgsSUFDdkNyRixLQUFJL0IsR0FBS0EsRUFBRUUsVUFFZCxPQUNFME8sSUFBQUEsY0FBQSxPQUFLelIsSUFBS2lLLEVBQUd5YixVQUFVLHlCQUVuQnNYLEVBQ0V2ckIsSUFBQUEsY0FBQzJyQix3QkFBdUIsQ0FDeEJ0OEIsTUFBT2tKLEVBQ1A4dkIsU0FBV2x4QixHQUFPMUosS0FBSzQ4QixhQUFhbHpCLEVBQUtxQixHQUN6Q3N3QixTQUFVQSxFQUNWMzRCLE9BQVF1N0IsRUFDUnJmLGFBQWNBLElBRVppZixFQUNBdHJCLElBQUFBLGNBQUM0ckIsd0JBQXVCLENBQ3RCdjhCLE1BQU9rSixFQUNQOHZCLFNBQVdseEIsR0FBUTFKLEtBQUs0OEIsYUFBYWx6QixFQUFLcUIsR0FDMUNzd0IsU0FBVUEsRUFDVjM0QixPQUFRdTdCLElBRVIxckIsSUFBQUEsY0FBQ3FyQixFQUFtQmhYLEtBQUEsR0FBSzVtQixLQUFLcWQsTUFBSyxDQUNuQ3piLE1BQU9rSixFQUNQOHZCLFNBQVdseEIsR0FBUTFKLEtBQUs0OEIsYUFBYWx6QixFQUFLcUIsR0FDMUNzd0IsU0FBVUEsRUFDVjM0QixPQUFRdTdCLEVBQ1I1NUIsT0FBUXM1QixFQUNSL2UsYUFBY0EsRUFDZGxZLEdBQUlBLEtBR1YyMEIsRUFPRSxLQU5GOW9CLElBQUFBLGNBQUN5ckIsRUFBTSxDQUNMeFgsVUFBVywyQ0FBMkMyVyxFQUFpQjcyQixPQUFTLFVBQVksT0FDNUY0b0IsTUFBT2lPLEVBQWlCNzJCLE9BQVM2MkIsRUFBbUIsR0FFcERuTyxRQUFTQSxJQUFNaHZCLEtBQUs4OEIsV0FBVy94QixJQUNoQyxPQUVDLElBR04sS0FFSnN3QixFQVFFLEtBUEY5b0IsSUFBQUEsY0FBQ3lyQixFQUFNLENBQ0x4WCxVQUFXLHdDQUF3QzBXLEVBQVk1MkIsT0FBUyxVQUFZLE9BQ3BGNG9CLE1BQU9nTyxFQUFZNTJCLE9BQVM0MkIsRUFBYyxHQUMxQ2xPLFFBQVNodkIsS0FBSys4QixTQUNmLE9BQ01TLEVBQXFCLFNBS3BDLEVBR0ssTUFBTVcsZ0NBQWdDcE8sRUFBQUEsVUFFM0NDLG9CQUFzQmdMLEdBRXRCSixTQUFZajNCLElBQ1YsTUFBTS9CLEVBQVErQixFQUFFa1YsT0FBT2pYLE1BQ3ZCNUIsS0FBS3FkLE1BQU11ZCxTQUFTaDVCLEVBQU81QixLQUFLcWQsTUFBTTZkLFFBQVEsRUFHaER2YyxNQUFBQSxHQUNFLElBQUksTUFBRS9jLEVBQUssT0FBRWMsRUFBTSxZQUFFbTJCLEVBQVcsU0FBRXdDLEdBQWFyN0IsS0FBS3FkLE1BU3BELE9BUkt6YixHQUVNa0QsWUFBWWxELElBQTJCLGlCQUFWQSxLQUN0Q0EsRUFBUThNLFVBQVU5TSxJQUZsQkEsRUFBUSxHQUtWYyxFQUFTQSxFQUFPd0MsS0FBT3hDLEVBQU93QyxPQUFTLEdBRS9CcU4sSUFBQUEsY0FBQytwQixLQUFhLENBQ3BCaDZCLEtBQU0sT0FDTmtrQixVQUFXOWpCLEVBQU80RCxPQUFTLFVBQVksR0FDdkM0b0IsTUFBT3hzQixFQUFPNEQsT0FBUzVELEVBQVMsR0FDaENkLE1BQU9BLEVBQ1B1RyxVQUFXLEVBQ1hvMEIsZ0JBQWlCLElBQ2pCQyxZQUFhM0QsRUFDYitCLFNBQVU1NkIsS0FBSzQ2QixTQUNmUyxTQUFVQSxHQUNkLEVBR0ssTUFBTTZDLGdDQUFnQ25PLEVBQUFBLFVBRTNDQyxvQkFBc0JnTCxHQUV0Qm9ELGFBQWdCejZCLElBQ2QsTUFBTS9CLEVBQVErQixFQUFFa1YsT0FBT2dqQixNQUFNLEdBQzdCNzdCLEtBQUtxZCxNQUFNdWQsU0FBU2g1QixFQUFPNUIsS0FBS3FkLE1BQU02ZCxRQUFRLEVBR2hEdmMsTUFBQUEsR0FDRSxJQUFJLGFBQUVDLEVBQVksT0FBRWxjLEVBQU0sU0FBRTI0QixHQUFhcjdCLEtBQUtxZCxNQUM5QyxNQUFNZ2YsRUFBUXpkLEVBQWEsU0FDckJ3ZCxFQUFhZixLQUFjLGFBQWMzM0IsUUFFL0MsT0FBUTZPLElBQUFBLGNBQUM4cEIsRUFBSyxDQUFDLzVCLEtBQUssT0FDbEJra0IsVUFBVzlqQixFQUFPNEQsT0FBUyxVQUFZLEdBQ3ZDNG9CLE1BQU94c0IsRUFBTzRELE9BQVM1RCxFQUFTLEdBQ2hDazRCLFNBQVU1NkIsS0FBS28rQixhQUNmL0MsU0FBVWUsR0FDZCxFQUdLLE1BQU1pQywyQkFBMkJ0TyxFQUFBQSxVQUV0Q0Msb0JBQXNCZ0wsR0FFdEJjLGFBQWdCcHlCLEdBQVExSixLQUFLcWQsTUFBTXVkLFNBQVNseEIsR0FDNUNpVixNQUFBQSxHQUNFLElBQUksYUFBRUMsRUFBWSxNQUFFaGQsRUFBSyxPQUFFYyxFQUFNLE9BQUUyQixFQUFNLFNBQUV5d0IsRUFBUSxTQUFFdUcsR0FBYXI3QixLQUFLcWQsTUFDdkUzYSxFQUFTQSxFQUFPd0MsS0FBT3hDLEVBQU93QyxPQUFTLEdBQ3ZDLElBQUk2MkIsRUFBWTEzQixHQUFVQSxFQUFPbEQsSUFBTWtELEVBQU9sRCxJQUFJLFFBQVUsS0FDeERnN0IsR0FBbUJKLElBQWNqSCxFQUNqQ3dKLEdBQWdCdkMsR0FBYSxDQUFDLE9BQVEsU0FDMUMsTUFBTUUsRUFBU3JkLEVBQWEsVUFFNUIsT0FBUXJNLElBQUFBLGNBQUMwcEIsRUFBTSxDQUFDelYsVUFBWTlqQixFQUFPNEQsT0FBUyxVQUFZLEdBQ3hDNG9CLE1BQVF4c0IsRUFBTzRELE9BQVM1RCxFQUFTLEdBQ2pDZCxNQUFRaU0sT0FBT2pNLEdBQ2Z5NUIsU0FBV0EsRUFDWGEsY0FBZ0JILEVBQVksSUFBSUEsR0FBYXVDLEVBQzdDbkMsZ0JBQWtCQSxFQUNsQnZCLFNBQVc1NkIsS0FBSzg3QixjQUNsQyxFQUdGLE1BQU15QyxzQkFBeUI3N0IsR0FDdEJBLEVBQU9nRCxLQUFJckQsSUFDaEIsTUFBTW04QixPQUF1QmwrQixJQUFoQitCLEVBQUlvSCxRQUF3QnBILEVBQUlvSCxRQUFVcEgsRUFBSTZJLE1BQzNELElBQUl1ekIsRUFBNkIsaUJBQVJwOEIsRUFBbUJBLEVBQTJCLGlCQUFkQSxFQUFJd0IsTUFBcUJ4QixFQUFJd0IsTUFBUSxLQUU5RixJQUFJMjZCLEdBQVFDLEVBQ1YsT0FBT0EsRUFFVCxJQUFJQyxFQUFlcjhCLEVBQUl3QixNQUNuQjhaLEVBQU8sSUFBSXRiLEVBQUlvSCxVQUNuQixLQUE4QixpQkFBakJpMUIsR0FBMkIsQ0FDdEMsTUFBTUMsT0FBZ0NyK0IsSUFBekJvK0IsRUFBYWoxQixRQUF3QmkxQixFQUFhajFCLFFBQVVpMUIsRUFBYXh6QixNQUN0RixRQUFZNUssSUFBVHErQixFQUNELE1BR0YsR0FEQWhoQixHQUFRLElBQUlnaEIsS0FDUEQsRUFBYTc2QixNQUNoQixNQUVGNjZCLEVBQWVBLEVBQWE3NkIsS0FDOUIsQ0FDQSxNQUFPLEdBQUc4WixNQUFTK2dCLEdBQWMsSUFJOUIsTUFBTUUsMEJBQTBCbEMsRUFBQUEsY0FDckM5c0IsV0FBQUEsR0FDRTJnQixPQUNGLENBR0FQLG9CQUFzQmdMLEdBRXRCSixTQUFZaDVCLElBQ1Y1QixLQUFLcWQsTUFBTXVkLFNBQVNoNUIsRUFBTSxFQUc1Qmk5QixlQUFpQmw3QixJQUNmLE1BQU1tN0IsRUFBYW43QixFQUFFa1YsT0FBT2pYLE1BRTVCNUIsS0FBSzQ2QixTQUFTa0UsRUFBVyxFQUczQm5nQixNQUFBQSxHQUNFLElBQUksYUFDRkMsRUFBWSxNQUNaaGQsRUFBSyxPQUNMYyxFQUFNLFNBQ04yNEIsR0FDRXI3QixLQUFLcWQsTUFFVCxNQUFNMGhCLEVBQVduZ0IsRUFBYSxZQUc5QixPQUZBbGMsRUFBU0EsRUFBT3dDLEtBQU94QyxFQUFPd0MsT0FBU00sTUFBTUMsUUFBUS9DLEdBQVVBLEVBQVMsR0FHdEU2UCxJQUFBQSxjQUFBLFdBQ0VBLElBQUFBLGNBQUN3c0IsRUFBUSxDQUNQdlksVUFBV3FNLEtBQUcsQ0FBRW1NLFFBQVN0OEIsRUFBTzRELFNBQ2hDNG9CLE1BQVF4c0IsRUFBTzRELE9BQVNpNEIsc0JBQXNCNzdCLEdBQVEySyxLQUFLLE1BQVEsR0FDbkV6TCxNQUFPOE0sVUFBVTlNLEdBQ2pCeTVCLFNBQVVBLEVBQ1ZULFNBQVc1NkIsS0FBSzYrQixpQkFHeEIsRUFHRixTQUFTbEMsaUJBQWlCLzZCLEdBQ3hCLE9BQU8rYSxFQUFBQSxLQUFLM1QsT0FBT3BILEdBQVNBLEVBQVE0RCxNQUFNQyxRQUFRN0QsSUFBUzRJLEVBQUFBLEVBQUFBLFFBQU81SSxJQUFTK2EsRUFBQUEsRUFBQUEsT0FDN0UsQ0NoYk8sTUFBTTRjLGdCQUFrQkEsRUFBR1gsYUFBWW1CLFlBQVksTUFDakRuQixFQUNKOWMsV0FDQXBXLEtBQUksRUFBRTVFLEVBQUtjLE1BQ1YsTUFBTXE5QixFQUFrQmg2QixjQUFjckQsSUFBVSxLQUVoRCxPQUNFMlEsSUFBQUEsY0FBQSxNQUFJelIsSUFBS0EsRUFBSzBsQixVQUFXdVQsR0FDdkJ4bkIsSUFBQUEsY0FBQSxVQUFLelIsR0FDTHlSLElBQUFBLGNBQUEsVUFBS2xKLEtBQUtxRixVQUFVdXdCLElBQ2pCLElBR1I5ekIsVUNyQkMsR0FBK0JsTCxRQUFRLHdCLGlDQ090QyxNQUFNaS9CLGNBQWdCQSxDQUFDNzZCLEVBQVEvQixLQUNwQyxNQUFNNjhCLEVBQW9CL3dCLEVBQUFBLElBQUloSyxNQUFNQyxHQUVwQyxJQUFLODZCLElBQXNCQyxLQUFjLzZCLEdBQ3ZDLE9BQU8sRUFHVCxNQUFNZzdCLEVBQWFGLEVBQW9COTZCLEVBQU9sRCxJQUFJLFFBQVVrRCxFQUFPL0IsS0FFbkUsT0FDRUEsSUFBUys4QixHQUFlNzVCLE1BQU1DLFFBQVFuRCxJQUFTQSxFQUFLbUMsU0FBUzQ2QixFQUFZLEVBSXZFbHNCLFFBQVVBLENBQUM5TyxFQUFRaTdCLEVBQW1CLElBQUlDLFdBQzlDLEdBQWMsTUFBVmw3QixFQUNGLE1BQU8sTUFHVCxHQUFJaTdCLEVBQWlCLzFCLElBQUlsRixHQUN2QixNQUFPLE1BR1RpN0IsRUFBaUJyMEIsSUFBSTVHLEdBRXJCLE1BQU0sS0FBRS9CLEVBQUksTUFBRTIzQixHQUFVNTFCLEVBV3hCLE9BQUlyRCxPQUFPdytCLE9BQU9uN0IsRUFBUSxTQVRMbzdCLE1BQ25CLEdBQUl4RixFQUVGLE1BQU8sU0FEVzltQixRQUFROG1CLEVBQU9xRixNQUdqQyxNQUFPLFlBQ1QsRUFJT0csR0FFRm45QixDQUFJLEVBR0FtN0IseUJBQTRCcDVCLEdBQ3ZDOE8sUUFBUWxPLGNBQWNaLElDVnhCLGNBdEIwQnE3QixLQUFBLENBQ3hCdnZCLFdBQVksQ0FDVnd2QixhQUFjM04sY0FDZEssYUFDQXZDLGNBQ0FxRCxNQUNBeUMsT0FDQW9CLFVBQVMsV0FDVDlCLFlBQ0FDLFdBQ0FDLGVBQWMsVUFDZG1FLGdCQUNBa0IsUUFBU0YsUUFDVE8sb0JBQ0c4RSxHQUVMbDVCLEdBQUksQ0FDRnc0QixjQUNBekIsNEJDcENFLEdBQStCeDlCLFFBQVEsTyxpQ0NBN0MsTUFBTSxHQUErQkEsUUFBUSxXLGlDQ0E3QyxNQUFNLEdBQStCQSxRQUFRLGtCLGlDQ1M3QyxNQUFNNC9CLG1CQUFzQmovQixHQUFPK0wsR0FDMUJuSCxNQUFNQyxRQUFRN0UsSUFBTTRFLE1BQU1DLFFBQVFrSCxJQUNwQy9MLEVBQUUwRixTQUFXcUcsRUFBRXJHLFFBQ2YxRixFQUFFb2xCLE9BQU0sQ0FBQ3RjLEVBQUt3QixJQUFVeEIsSUFBUWlELEVBQUV6QixLQUduQ1gsS0FBT0EsSUFBSTRKLElBQVNBLEVBRTFCLE1BQU0yckIsY0FBYzF4QixJQUNsQmlPLE9BQU92YixHQUNMLE1BQ01pL0IsRUFET3Y2QixNQUFNK0csS0FBS3ZNLEtBQUsrRyxRQUNQd0csS0FBS3N5QixtQkFBbUIvK0IsSUFDOUMsT0FBT3l2QixNQUFNbFUsT0FBTzBqQixFQUN0QixDQUVBNStCLEdBQUFBLENBQUlMLEdBQ0YsTUFDTWkvQixFQURPdjZCLE1BQU0rRyxLQUFLdk0sS0FBSytHLFFBQ1B3RyxLQUFLc3lCLG1CQUFtQi8rQixJQUM5QyxPQUFPeXZCLE1BQU1wdkIsSUFBSTQrQixFQUNuQixDQUVBeDJCLEdBQUFBLENBQUl6SSxHQUVGLE9BQW9ELElBRHZDMEUsTUFBTStHLEtBQUt2TSxLQUFLK0csUUFDakJpNUIsVUFBVUgsbUJBQW1CLytCLEdBQzNDLEVBR0YsTUFXQSxlQVhpQm0vQixDQUFDdjVCLEVBQUl3NUIsRUFBVzMxQixRQUMvQixNQUFRdTFCLE1BQU9LLEdBQWtCdjVCLElBQ2pDQSxJQUFBQSxNQUFnQms1QixNQUVoQixNQUFNTSxFQUFXeDVCLElBQVFGLEVBQUl3NUIsR0FJN0IsT0FGQXQ1QixJQUFBQSxNQUFnQnU1QixFQUVUQyxDQUFRLEVDakJYQyxHQUFhLENBQ2pCLE9BQVdoOEIsR0FBV0EsRUFBT2tFLFFBdEJDKzNCLENBQUMvM0IsSUFDL0IsSUFRRSxNQUFNZzRCLEVBQ0osa0dBQ0lDLEVBQWNqNEIsRUFBUTZFLFFBQVFtekIsRUFBa0IsT0FDaERFLEVBQWtCLElBQUlDLEtBQUosQ0FBWUYsR0FFcEMsT0FEQUMsRUFBZ0J0MkIsSUFBTSxJQUNmczJCLEVBQWdCL1UsS0FDekIsQ0FBRSxNQUFPL25CLEdBRVAsTUFBTyxRQUNULEdBSXVDMjhCLENBQXdCajhCLEVBQU9rRSxTQUFXLFNBQ2pGLGFBQWdCbzRCLElBQU0sbUJBQ3RCLG1CQUFvQkMsS0FBTSxJQUFJbDFCLE1BQU9tMUIsY0FDckMsWUFBZUMsS0FBTSxJQUFJcDFCLE1BQU9tMUIsY0FBY3JJLFVBQVUsRUFBRyxJQUMzRCxZQUFldUksS0FBTSxJQUFJcjFCLE1BQU9tMUIsY0FBY3JJLFVBQVUsSUFDeEQsWUFBZXdJLElBQU0sdUNBQ3JCLGdCQUFtQkMsSUFBTSxjQUN6QixZQUFlQyxJQUFNLGdCQUNyQixZQUFlQyxJQUFNLDBDQUNyQixPQUFVQyxJQUFNLEVBQ2hCLGFBQWdCQyxJQUFNLEVBQ3RCLFFBQVdDLElBQU0sRUFDakIsUUFBWWo5QixHQUFxQyxrQkFBbkJBLEVBQU9rOUIsU0FBd0JsOUIsRUFBT2s5QixTQUdoRUMsVUFBYW45QixJQUNqQkEsRUFBU2MsVUFBVWQsR0FDbkIsSUFBSSxLQUFFL0IsRUFBSSxPQUFFMkYsR0FBVzVELEVBRW5CcUMsRUFBSzI1QixHQUFXLEdBQUcvOUIsS0FBUTJGLE1BQWFvNEIsR0FBVy85QixHQUV2RCxPQUFHcUUsT0FBT0QsR0FDREEsRUFBR3JDLEdBRUwsaUJBQW1CQSxFQUFPL0IsSUFBSSxFQUtqQ20vQixZQUFlNy9CLEdBQVUwTSxlQUFlMU0sRUFBTyxTQUFVOEgsR0FDOUMsaUJBQVJBLEdBQW9CQSxFQUFJaUUsUUFBUSxNQUFRLElBRTNDK3pCLEdBQWtCLENBQUMsZ0JBQWlCLGlCQUNwQ0MsR0FBaUIsQ0FBQyxXQUFZLFlBQzlCQyxHQUFrQixDQUN0QixVQUNBLFVBQ0EsbUJBQ0Esb0JBRUlDLEdBQWtCLENBQUMsWUFBYSxhQUV6QkMsZ0JBQWtCQSxDQUFDanBCLEVBQVFqQixFQUFRbXFCLEVBQVMsQ0FBQyxLQUN4RCxNQUFNQyxFQUFTLElBQUtucEIsR0ErQnBCLEdBdkJBLENBQ0UsVUFDQSxVQUNBLE9BQ0EsTUFDQSxVQUNHNm9CLE1BQ0FDLE1BQ0FDLE1BQ0FDLElBQ0hyNEIsU0FBUTFJLEdBaEJzQm1oQyxDQUFDbmhDLFNBQ1pSLElBQWhCMGhDLEVBQU9saEMsU0FBc0NSLElBQWhCc1gsRUFBTzlXLEtBQ3JDa2hDLEVBQU9saEMsR0FBTzhXLEVBQU85VyxHQUN2QixFQWFlbWhDLENBQXdCbmhDLFVBRWxCUixJQUFwQnNYLEVBQU9rZCxVQUEwQnR2QixNQUFNQyxRQUFRbVMsRUFBT2tkLGlCQUNoQ3gwQixJQUFwQjBoQyxFQUFPbE4sVUFBMkJrTixFQUFPbE4sU0FBU3h1QixTQUNuRDA3QixFQUFPbE4sU0FBVyxJQUVwQmxkLEVBQU9rZCxTQUFTdHJCLFNBQVExSSxJQUNuQmtoQyxFQUFPbE4sU0FBU3J3QixTQUFTM0QsSUFHNUJraEMsRUFBT2xOLFNBQVNsc0IsS0FBSzlILEVBQUksS0FHMUI4VyxFQUFPa2hCLFdBQVksQ0FDaEJrSixFQUFPbEosYUFDVGtKLEVBQU9sSixXQUFhLENBQUMsR0FFdkIsSUFBSXpiLEVBQVFsWSxVQUFVeVMsRUFBT2toQixZQUM3QixJQUFLLElBQUlvSixLQUFZN2tCLEVBQ2RyYyxPQUFPTSxVQUFVQyxlQUFlQyxLQUFLNmIsRUFBTzZrQixLQUc1QzdrQixFQUFNNmtCLElBQWE3a0IsRUFBTTZrQixHQUFVdk0sWUFHbkN0WSxFQUFNNmtCLElBQWE3a0IsRUFBTTZrQixHQUFVQyxXQUFhSixFQUFPN1AsaUJBR3ZEN1UsRUFBTTZrQixJQUFhN2tCLEVBQU02a0IsR0FBVUUsWUFBY0wsRUFBTzlQLGtCQUd6RCtQLEVBQU9sSixXQUFXb0osS0FDcEJGLEVBQU9sSixXQUFXb0osR0FBWTdrQixFQUFNNmtCLElBQ2hDdHFCLEVBQU9rZCxVQUFZdHZCLE1BQU1DLFFBQVFtUyxFQUFPa2QsWUFBb0QsSUFBdkNsZCxFQUFPa2QsU0FBU25uQixRQUFRdTBCLEtBQzNFRixFQUFPbE4sU0FHVGtOLEVBQU9sTixTQUFTbHNCLEtBQUtzNUIsR0FGckJGLEVBQU9sTixTQUFXLENBQUNvTixLQU83QixDQVFBLE9BUEd0cUIsRUFBT3FpQixRQUNKK0gsRUFBTy9ILFFBQ1QrSCxFQUFPL0gsTUFBUSxDQUFDLEdBRWxCK0gsRUFBTy9ILE1BQVE2SCxnQkFBZ0JFLEVBQU8vSCxNQUFPcmlCLEVBQU9xaUIsTUFBTzhILElBR3REQyxDQUFNLEVBR0ZLLHdCQUEwQkEsQ0FBQ2grQixFQUFRMDlCLEVBQU8sQ0FBQyxFQUFHTyxPQUFrQmhpQyxFQUFXaWlDLEdBQWEsS0FDaEdsK0IsR0FBVXNDLE9BQU90QyxFQUFPYSxRQUN6QmIsRUFBU0EsRUFBT2EsUUFDbEIsSUFBSXM5QixPQUFvQ2xpQyxJQUFwQmdpQyxHQUFpQ2orQixRQUE2Qi9ELElBQW5CK0QsRUFBTzhzQixTQUF5QjlzQixRQUE2Qi9ELElBQW5CK0QsRUFBT2s5QixRQUVoSCxNQUFNa0IsR0FBWUQsR0FBaUJuK0IsR0FBVUEsRUFBT3MxQixPQUFTdDFCLEVBQU9zMUIsTUFBTXJ6QixPQUFTLEVBQzdFbzhCLEdBQVlGLEdBQWlCbitCLEdBQVVBLEVBQU9xMUIsT0FBU3IxQixFQUFPcTFCLE1BQU1wekIsT0FBUyxFQUNuRixJQUFJazhCLElBQWtCQyxHQUFZQyxHQUFXLENBQzNDLE1BQU1DLEVBQWN4OUIsVUFBVXM5QixFQUMxQnArQixFQUFPczFCLE1BQU0sR0FDYnQxQixFQUFPcTFCLE1BQU0sSUFNakIsS0FKQXIxQixFQUFTeTlCLGdCQUFnQno5QixFQUFRcytCLEVBQWFaLElBQ25DNUgsS0FBT3dJLEVBQVl4SSxNQUM1QjkxQixFQUFPODFCLElBQU13SSxFQUFZeEksVUFFTDc1QixJQUFuQitELEVBQU84c0IsY0FBaUQ3d0IsSUFBeEJxaUMsRUFBWXhSLFFBQzdDcVIsR0FBZ0IsT0FDWCxHQUFHRyxFQUFZN0osV0FBWSxDQUM1QnowQixFQUFPeTBCLGFBQ1R6MEIsRUFBT3kwQixXQUFhLENBQUMsR0FFdkIsSUFBSXpiLEVBQVFsWSxVQUFVdzlCLEVBQVk3SixZQUNsQyxJQUFLLElBQUlvSixLQUFZN2tCLEVBQ2RyYyxPQUFPTSxVQUFVQyxlQUFlQyxLQUFLNmIsRUFBTzZrQixLQUc1QzdrQixFQUFNNmtCLElBQWE3a0IsRUFBTTZrQixHQUFVdk0sWUFHbkN0WSxFQUFNNmtCLElBQWE3a0IsRUFBTTZrQixHQUFVQyxXQUFhSixFQUFPN1AsaUJBR3ZEN1UsRUFBTTZrQixJQUFhN2tCLEVBQU02a0IsR0FBVUUsWUFBY0wsRUFBTzlQLGtCQUd6RDV0QixFQUFPeTBCLFdBQVdvSixLQUNwQjc5QixFQUFPeTBCLFdBQVdvSixHQUFZN2tCLEVBQU02a0IsSUFDaENTLEVBQVk3TixVQUFZdHZCLE1BQU1DLFFBQVFrOUIsRUFBWTdOLFlBQXlELElBQTVDNk4sRUFBWTdOLFNBQVNubkIsUUFBUXUwQixLQUMxRjc5QixFQUFPeXdCLFNBR1R6d0IsRUFBT3l3QixTQUFTbHNCLEtBQUtzNUIsR0FGckI3OUIsRUFBT3l3QixTQUFXLENBQUNvTixLQU83QixDQUNGLENBQ0EsTUFBTVUsRUFBUSxDQUFDLEVBQ2YsSUFBSSxJQUFFekksRUFBRyxLQUFFNzNCLEVBQUksUUFBRTZ1QixFQUFPLFdBQUUySCxFQUFVLHFCQUFFQyxFQUFvQixNQUFFa0IsR0FBVTUxQixHQUFVLENBQUMsR0FDN0UsZ0JBQUU2dEIsRUFBZSxpQkFBRUQsR0FBcUI4UCxFQUM1QzVILEVBQU1BLEdBQU8sQ0FBQyxFQUNkLElBQ0l2RixHQURBLEtBQUUxbkIsRUFBSSxPQUFFMjFCLEVBQU0sVUFBRXR2QixHQUFjNG1CLEVBRTlCanpCLEVBQU0sQ0FBQyxFQUdYLEdBQUdxN0IsSUFDRHIxQixFQUFPQSxHQUFRLFlBRWYwbkIsR0FBZWlPLEVBQVNBLEVBQVMsSUFBTSxJQUFNMzFCLEVBQ3hDcUcsR0FBWSxDQUdmcXZCLEVBRHNCQyxFQUFXLFNBQVdBLEVBQVcsU0FDOUJ0dkIsQ0FDM0IsQ0FJQ2d2QixJQUNEcjdCLEVBQUkwdEIsR0FBZSxJQUdyQixNQUFNa08sYUFBZ0IvN0IsR0FBU0EsRUFBS29DLE1BQUtySSxHQUFPRSxPQUFPTSxVQUFVQyxlQUFlQyxLQUFLNkMsRUFBUXZELEtBRTFGdUQsSUFBVy9CLElBQ1R3MkIsR0FBY0MsR0FBd0IrSixhQUFhcEIsSUFDcERwL0IsRUFBTyxTQUNDMjNCLEdBQVM2SSxhQUFhbkIsSUFDOUJyL0IsRUFBTyxRQUNDd2dDLGFBQWFsQixLQUNyQnQvQixFQUFPLFNBQ1ArQixFQUFPL0IsS0FBTyxVQUNMa2dDLEdBQWtCbitCLEVBQU8wK0IsT0FlbEN6Z0MsRUFBTyxTQUNQK0IsRUFBTy9CLEtBQU8sV0FJbEIsTUFBTTBnQyxrQkFBcUJDLElBSXpCLEdBSEk1K0IsU0FBUWdFLFdBQ1Y0NkIsRUFBY0EsRUFBWTN2QixNQUFNLEVBQUdqUCxHQUFRZ0UsV0FFekNoRSxTQUFRaUUsU0FBcUQsQ0FDL0QsSUFBSXlDLEVBQUksRUFDUixLQUFPazRCLEVBQVkzOEIsT0FBU2pDLEdBQVFpRSxVQUNsQzI2QixFQUFZcjZCLEtBQUtxNkIsRUFBWWw0QixJQUFNazRCLEVBQVkzOEIsUUFFbkQsQ0FDQSxPQUFPMjhCLENBQVcsRUFJZDVsQixFQUFRbFksVUFBVTJ6QixHQUN4QixJQUFJb0ssRUFDQUMsRUFBdUIsRUFFM0IsTUFBTUMseUJBQTJCQSxJQUFNLytCLEdBQ1QsT0FBekJBLEVBQU9nL0Isb0JBQW1EL2lDLElBQXpCK0QsRUFBT2cvQixlQUN4Q0YsR0FBd0I5K0IsRUFBT2cvQixjQThCOUJDLGVBQWtCcEIsSUFDbEI3OUIsR0FBbUMsT0FBekJBLEVBQU9nL0Isb0JBQW1EL2lDLElBQXpCK0QsRUFBT2cvQixnQkFHbkRELDhCQVhzQkcsQ0FBQ3JCLEtBQ3RCNzlCLEdBQVdBLEVBQU95d0IsVUFBYXp3QixFQUFPeXdCLFNBQVN4dUIsUUFHM0NqQyxFQUFPeXdCLFNBQVNyd0IsU0FBU3k5QixJQVU3QnFCLENBQW1CckIsSUFHZjc5QixFQUFPZy9CLGNBQWdCRixFQXRDREssTUFDOUIsSUFBSW4vQixJQUFXQSxFQUFPeXdCLFNBQ3BCLE9BQU8sRUFFVCxJQUFJMk8sRUFBYSxFQWNqQixPQWJHbEIsRUFDRGwrQixFQUFPeXdCLFNBQVN0ckIsU0FBUTFJLEdBQU8yaUMsUUFDaEJuakMsSUFBYjRHLEVBQUlwRyxHQUNBLEVBQ0EsSUFHTnVELEVBQU95d0IsU0FBU3RyQixTQUFRMUksR0FBTzJpQyxRQUN5Qm5qQyxJQUF0RDRHLEVBQUkwdEIsSUFBY3JuQixNQUFLbTJCLFFBQWdCcGpDLElBQVhvakMsRUFBRTVpQyxLQUMxQixFQUNBLElBR0R1RCxFQUFPeXdCLFNBQVN4dUIsT0FBU205QixDQUFVLEVBb0JZRCxHQUE2QixHQTRFckYsR0F4RUVOLEVBRENYLEVBQ3FCVyxDQUFDaEIsRUFBVXlCLE9BQVlyakMsS0FDM0MsR0FBRytELEdBQVVnWixFQUFNNmtCLEdBQVcsQ0FJNUIsR0FGQTdrQixFQUFNNmtCLEdBQVUvSCxJQUFNOWMsRUFBTTZrQixHQUFVL0gsS0FBTyxDQUFDLEVBRTFDOWMsRUFBTTZrQixHQUFVL0gsSUFBSXlKLFVBQVcsQ0FDakMsTUFBTUMsRUFBY3IrQixNQUFNQyxRQUFRNFgsRUFBTTZrQixHQUFVYSxNQUM5QzFsQixFQUFNNmtCLEdBQVVhLEtBQUssUUFDckJ6aUMsRUFDRXdqQyxFQUFjem1CLEVBQU02a0IsR0FBVS9RLFFBQzlCNFMsRUFBYzFtQixFQUFNNmtCLEdBQVVYLFFBWXBDLFlBVEVxQixFQUFNdmxCLEVBQU02a0IsR0FBVS9ILElBQUlqdEIsTUFBUWcxQixRQURqQjVoQyxJQUFoQndqQyxFQUM2Q0EsT0FDdEJ4akMsSUFBaEJ5akMsRUFDc0NBLE9BQ3RCempDLElBQWhCdWpDLEVBQ3NDQSxFQUVBckMsVUFBVW5rQixFQUFNNmtCLElBSWxFLENBQ0E3a0IsRUFBTTZrQixHQUFVL0gsSUFBSWp0QixLQUFPbVEsRUFBTTZrQixHQUFVL0gsSUFBSWp0QixNQUFRZzFCLENBQ3pELE1BQVc3a0IsRUFBTTZrQixLQUFzQyxJQUF6Qm5KLElBRTVCMWIsRUFBTTZrQixHQUFZLENBQ2hCL0gsSUFBSyxDQUNIanRCLEtBQU1nMUIsS0FLWixJQUFJM08sRUFBSThPLHdCQUF3QmgrQixHQUFVZ1osRUFBTTZrQixTQUFhNWhDLEVBQVd5aEMsRUFBUTRCLEVBQVdwQixHQUN2RmUsZUFBZXBCLEtBSW5CaUIsSUFDSTM5QixNQUFNQyxRQUFROHRCLEdBQ2hCcnNCLEVBQUkwdEIsR0FBZTF0QixFQUFJMHRCLEdBQWF6ZSxPQUFPb2QsR0FFM0Nyc0IsRUFBSTB0QixHQUFhaHNCLEtBQUsycUIsR0FDeEIsRUFHb0IyUCxDQUFDaEIsRUFBVXlCLEtBQy9CLEdBQUlMLGVBQWVwQixHQUFuQixDQUdBLEdBQUdsaEMsT0FBT00sVUFBVUMsZUFBZUMsS0FBSzZDLEVBQVEsa0JBQzlDQSxFQUFPMi9CLGVBQ1BoakMsT0FBT00sVUFBVUMsZUFBZUMsS0FBSzZDLEVBQU8yL0IsY0FBZSxZQUMzRDMvQixFQUFPMi9CLGNBQWNDLFNBQ3JCampDLE9BQU9NLFVBQVVDLGVBQWVDLEtBQUs2QyxFQUFRLFVBQzdDQSxFQUFPZ3hCLE9BQ1BoeEIsRUFBTzIvQixjQUFjRSxlQUFpQmhDLEdBQ3RDLElBQUssSUFBSTk3QixLQUFRL0IsRUFBTzIvQixjQUFjQyxRQUNwQyxJQUFpRSxJQUE3RDUvQixFQUFPZ3hCLE1BQU1rRCxPQUFPbDBCLEVBQU8yL0IsY0FBY0MsUUFBUTc5QixJQUFlLENBQ2xFYyxFQUFJZzdCLEdBQVk5N0IsRUFDaEIsS0FDRixPQUdGYyxFQUFJZzdCLEdBQVlHLHdCQUF3QmhsQixFQUFNNmtCLEdBQVdILEVBQVE0QixFQUFXcEIsR0FFOUVZLEdBakJBLENBaUJzQixFQUt2QlgsRUFBZSxDQUNoQixJQUFJMkIsRUFVSixHQVJFQSxFQUFTMUMsaUJBRFluaEMsSUFBcEJnaUMsRUFDb0JBLE9BQ0RoaUMsSUFBWjZ3QixFQUNhQSxFQUVBOXNCLEVBQU9rOUIsVUFJMUJnQixFQUFZLENBRWQsR0FBcUIsaUJBQVg0QixHQUFnQyxXQUFUN2hDLEVBQy9CLE1BQU8sR0FBRzZoQyxJQUdaLEdBQXFCLGlCQUFYQSxHQUFnQyxXQUFUN2hDLEVBQy9CLE9BQU82aEMsRUFHVCxJQUNFLE9BQU85NkIsS0FBS0MsTUFBTTY2QixFQUNwQixDQUFFLE1BQU14Z0MsR0FFTixPQUFPd2dDLENBQ1QsQ0FDRixDQVFBLEdBTEk5L0IsSUFDRi9CLEVBQU9rRCxNQUFNQyxRQUFRMCtCLEdBQVUsZUFBaUJBLEdBSXRDLFVBQVQ3aEMsRUFBa0IsQ0FDbkIsSUFBS2tELE1BQU1DLFFBQVEwK0IsR0FBUyxDQUMxQixHQUFxQixpQkFBWEEsRUFDUixPQUFPQSxFQUVUQSxFQUFTLENBQUNBLEVBQ1osQ0FDQSxNQUFNQyxFQUFhLy9CLEVBQ2ZBLEVBQU80MUIsV0FDUDM1QixFQUNEOGpDLElBQ0RBLEVBQVdqSyxJQUFNaUssRUFBV2pLLEtBQU9BLEdBQU8sQ0FBQyxFQUMzQ2lLLEVBQVdqSyxJQUFJanRCLEtBQU9rM0IsRUFBV2pLLElBQUlqdEIsTUFBUWl0QixFQUFJanRCLE1BRW5ELElBQUltM0IsRUFBY0YsRUFDZnorQixLQUFJNCtCLEdBQUtqQyx3QkFBd0IrQixFQUFZckMsRUFBUXVDLEVBQUcvQixLQVczRCxPQVZBOEIsRUFBY3JCLGtCQUFrQnFCLEdBQzdCbEssRUFBSW9LLFNBQ0xyOUIsRUFBSTB0QixHQUFleVAsRUFDZDUwQixLQUFRbXpCLElBQ1gxN0IsRUFBSTB0QixHQUFhaHNCLEtBQUssQ0FBQ2c2QixNQUFPQSxLQUloQzE3QixFQUFNbTlCLEVBRURuOUIsQ0FDVCxDQUdBLEdBQVksV0FBVDVFLEVBQW1CLENBRXBCLEdBQXFCLGlCQUFYNmhDLEVBQ1IsT0FBT0EsRUFFVCxJQUFLLElBQUlqQyxLQUFZaUMsRUFDZG5qQyxPQUFPTSxVQUFVQyxlQUFlQyxLQUFLMmlDLEVBQVFqQyxLQUc5Qzc5QixHQUFVZ1osRUFBTTZrQixJQUFhN2tCLEVBQU02a0IsR0FBVUMsV0FBYWpRLEdBRzFEN3RCLEdBQVVnWixFQUFNNmtCLElBQWE3a0IsRUFBTTZrQixHQUFVRSxZQUFjblEsSUFHM0Q1dEIsR0FBVWdaLEVBQU02a0IsSUFBYTdrQixFQUFNNmtCLEdBQVUvSCxLQUFPOWMsRUFBTTZrQixHQUFVL0gsSUFBSXlKLFVBQzFFaEIsRUFBTXZsQixFQUFNNmtCLEdBQVUvSCxJQUFJanRCLE1BQVFnMUIsR0FBWWlDLEVBQU9qQyxHQUd2RGdCLEVBQW9CaEIsRUFBVWlDLEVBQU9qQyxNQU12QyxPQUpLenlCLEtBQVFtekIsSUFDWDE3QixFQUFJMHRCLEdBQWFoc0IsS0FBSyxDQUFDZzZCLE1BQU9BLElBR3pCMTdCLENBQ1QsQ0FHQSxPQURBQSxFQUFJMHRCLEdBQWdCbmxCLEtBQVFtekIsR0FBb0N1QixFQUEzQixDQUFDLENBQUN2QixNQUFPQSxHQUFRdUIsR0FDL0NqOUIsQ0FDVCxDQUlBLEdBQVksV0FBVDVFLEVBQW1CLENBQ3BCLElBQUssSUFBSTQvQixLQUFZN2tCLEVBQ2RyYyxPQUFPTSxVQUFVQyxlQUFlQyxLQUFLNmIsRUFBTzZrQixLQUc1QzdrQixFQUFNNmtCLElBQWE3a0IsRUFBTTZrQixHQUFVdk0sWUFHbkN0WSxFQUFNNmtCLElBQWE3a0IsRUFBTTZrQixHQUFVQyxXQUFhalEsR0FHaEQ3VSxFQUFNNmtCLElBQWE3a0IsRUFBTTZrQixHQUFVRSxZQUFjblEsR0FHdERpUixFQUFvQmhCLElBTXRCLEdBSklLLEdBQWNLLEdBQ2hCMTdCLEVBQUkwdEIsR0FBYWhzQixLQUFLLENBQUNnNkIsTUFBT0EsSUFHN0JRLDJCQUNELE9BQU9sOEIsRUFHVCxJQUE4QixJQUF6QjZ4QixFQUNBd0osRUFDRHI3QixFQUFJMHRCLEdBQWFoc0IsS0FBSyxDQUFDNDdCLGVBQWdCLHlCQUV2Q3Q5QixFQUFJdTlCLGdCQUFrQixDQUFDLEVBRXpCdEIsU0FDSyxHQUFLcEssRUFBdUIsQ0FDakMsTUFBTTJMLEVBQWtCdi9CLFVBQVU0ekIsR0FDNUI0TCxFQUF1QnRDLHdCQUF3QnFDLEVBQWlCM0MsT0FBUXpoQyxFQUFXaWlDLEdBRXpGLEdBQUdBLEdBQWNtQyxFQUFnQnZLLEtBQU91SyxFQUFnQnZLLElBQUlqdEIsTUFBcUMsY0FBN0J3M0IsRUFBZ0J2SyxJQUFJanRCLEtBRXRGaEcsRUFBSTB0QixHQUFhaHNCLEtBQUsrN0IsT0FDakIsQ0FDTCxNQUFNQyxFQUEyQyxPQUF6QnZnQyxFQUFPd2dDLG9CQUFtRHZrQyxJQUF6QitELEVBQU93Z0MsZUFBK0IxQixFQUF1QjkrQixFQUFPd2dDLGNBQ3pIeGdDLEVBQU93Z0MsY0FBZ0IxQixFQUN2QixFQUNKLElBQUssSUFBSXA0QixFQUFJLEVBQUdBLEdBQUs2NUIsRUFBaUI3NUIsSUFBSyxDQUN6QyxHQUFHcTRCLDJCQUNELE9BQU9sOEIsRUFFVCxHQUFHcTdCLEVBQVksQ0FDYixNQUFNdUMsRUFBTyxDQUFDLEVBQ2RBLEVBQUssaUJBQW1CLzVCLEdBQUs0NUIsRUFBZ0MsVUFDN0R6OUIsRUFBSTB0QixHQUFhaHNCLEtBQUtrOEIsRUFDeEIsTUFDRTU5QixFQUFJLGlCQUFtQjZELEdBQUs0NUIsRUFFOUJ4QixHQUNGLENBQ0YsQ0FDRixDQUNBLE9BQU9qOEIsQ0FDVCxDQUVBLEdBQVksVUFBVDVFLEVBQWtCLENBQ25CLElBQUsyM0IsRUFDSCxPQUdGLElBQUlnSixFQU1KLEdBTEdWLElBQ0R0SSxFQUFNRSxJQUFNRixFQUFNRSxLQUFPOTFCLEdBQVE4MUIsS0FBTyxDQUFDLEVBQ3pDRixFQUFNRSxJQUFJanRCLEtBQU8rc0IsRUFBTUUsSUFBSWp0QixNQUFRaXRCLEVBQUlqdEIsTUFHdEMxSCxNQUFNQyxRQUFRdzBCLEVBQU1QLE9BQ3JCdUosRUFBY2hKLEVBQU1QLE1BQU1oMEIsS0FBSXFGLEdBQUtzM0Isd0JBQXdCUCxnQkFBZ0IvMkIsRUFBR2t2QixFQUFPOEgsR0FBU0EsT0FBUXpoQyxFQUFXaWlDLFVBQzVHLEdBQUcvOEIsTUFBTUMsUUFBUXcwQixFQUFNTixPQUM1QnNKLEVBQWNoSixFQUFNTixNQUFNajBCLEtBQUlxRixHQUFLczNCLHdCQUF3QlAsZ0JBQWdCLzJCLEVBQUdrdkIsRUFBTzhILEdBQVNBLE9BQVF6aEMsRUFBV2lpQyxTQUM1RyxPQUFJQSxHQUFjQSxHQUFjcEksRUFBSW9LLFNBR3pDLE9BQU9sQyx3QkFBd0JwSSxFQUFPOEgsT0FBUXpoQyxFQUFXaWlDLEdBRnpEVSxFQUFjLENBQUNaLHdCQUF3QnBJLEVBQU84SCxPQUFRemhDLEVBQVdpaUMsR0FHbkUsQ0FFQSxPQURBVSxFQUFjRCxrQkFBa0JDLEdBQzdCVixHQUFjcEksRUFBSW9LLFNBQ25CcjlCLEVBQUkwdEIsR0FBZXFPLEVBQ2R4ekIsS0FBUW16QixJQUNYMTdCLEVBQUkwdEIsR0FBYWhzQixLQUFLLENBQUNnNkIsTUFBT0EsSUFFekIxN0IsR0FFRis3QixDQUNULENBRUEsSUFBSXJoQyxFQUNKLEdBQUl5QyxHQUFVbUIsTUFBTUMsUUFBUXBCLEVBQU8wK0IsTUFFakNuaEMsRUFBUTJFLGVBQWVsQyxFQUFPMCtCLE1BQU0sT0FDL0IsS0FBRzErQixFQStCUixPQTVCQSxHQURBekMsRUFBUTQvQixVQUFVbjlCLEdBQ0UsaUJBQVZ6QyxFQUFvQixDQUM1QixJQUFJcUksRUFBTTVGLEVBQU8yRCxRQUNkaUMsVUFDRTVGLEVBQU8wZ0Msa0JBQ1I5NkIsSUFFRnJJLEVBQVFxSSxHQUVWLElBQUlFLEVBQU05RixFQUFPMEQsUUFDZG9DLFVBQ0U5RixFQUFPMmdDLGtCQUNSNzZCLElBRUZ2SSxFQUFRdUksRUFFWixDQUNBLEdBQW9CLGlCQUFWdkksSUFDaUIsT0FBckJ5QyxFQUFPNkQsZ0JBQTJDNUgsSUFBckIrRCxFQUFPNkQsWUFDdEN0RyxFQUFRQSxFQUFNMFIsTUFBTSxFQUFHalAsRUFBTzZELFlBRVAsT0FBckI3RCxFQUFPOEQsZ0JBQTJDN0gsSUFBckIrRCxFQUFPOEQsV0FBeUIsQ0FDL0QsSUFBSTRDLEVBQUksRUFDUixLQUFPbkosRUFBTTBFLE9BQVNqQyxFQUFPOEQsV0FDM0J2RyxHQUFTQSxFQUFNbUosSUFBTW5KLEVBQU0wRSxPQUUvQixDQUlKLENBQ0EsR0FBYSxTQUFUaEUsRUFJSixPQUFHaWdDLEdBQ0RyN0IsRUFBSTB0QixHQUFnQm5sQixLQUFRbXpCLEdBQW1DaGhDLEVBQTFCLENBQUMsQ0FBQ2doQyxNQUFPQSxHQUFRaGhDLEdBQy9Dc0YsR0FHRnRGLENBQUssRUFHRHFqQyxZQUFlNy9CLElBQ3ZCQSxFQUFNZixTQUNQZSxFQUFRQSxFQUFNZixRQUViZSxFQUFNMHpCLGFBQ1AxekIsRUFBTTlDLEtBQU8sVUFHUjhDLEdBR0k4L0IsaUJBQW1CQSxDQUFDN2dDLEVBQVEwOUIsRUFBUWhoQyxLQUMvQyxNQUFNb2tDLEVBQU85Qyx3QkFBd0JoK0IsRUFBUTA5QixFQUFRaGhDLEdBQUcsR0FDeEQsR0FBS29rQyxFQUNMLE1BQW1CLGlCQUFUQSxFQUNEQSxFQUVGQyxLQUFJRCxFQUFNLENBQUVFLGFBQWEsRUFBTUMsT0FBUSxNQUFPLEVBSTFDQyxpQkFBbUJBLENBQUNsaEMsRUFBUTA5QixFQUFRaGhDLElBQy9Dc2hDLHdCQUF3QmgrQixFQUFRMDlCLEVBQVFoaEMsR0FBRyxHQUV2Q20vQixTQUFXQSxDQUFDc0YsRUFBTUMsRUFBTUMsSUFBUyxDQUFDRixFQUFNbjhCLEtBQUtxRixVQUFVKzJCLEdBQU9wOEIsS0FBS3FGLFVBQVVnM0IsSUFFdEVDLEdBQTJCMUYsZUFBU2lGLGlCQUFrQmhGLFVBRXREMEYsR0FBMkIzRixlQUFTc0YsaUJBQWtCckYsVUFFdEQzRSxvQkFBdUJsM0IsR0FBV1ksY0FBY1osSUFBUy9CLE1BQVEsU0N0b0J4RXVqQyxHQUE2QixDQUNqQyxDQUNFQyxLQUFNLE9BQ05DLHFCQUFzQixDQUFDLFlBR3JCQyxHQUF3QixDQUFDLFVBb0IvQix1QkFsQkczK0IsR0FBYyxDQUFDaEQsRUFBUTA5QixFQUFRa0UsRUFBYTNELEtBQzNDLE1BQU0sR0FBRTU3QixHQUFPVyxJQUNUSCxFQUFNUixFQUFHay9CLHlCQUF5QnZoQyxFQUFRMDlCLEVBQVFPLEdBQ2xENEQsU0FBaUJoL0IsRUFFakJpL0IsRUFBbUJOLEdBQTJCNytCLFFBQ2xELENBQUM0ZCxFQUFPd2hCLElBQ05BLEVBQVdOLEtBQUsvN0IsS0FBS2s4QixHQUNqQixJQUFJcmhCLEtBQVV3aEIsRUFBV0wsc0JBQ3pCbmhCLEdBQ05vaEIsSUFHRixPQUFPNzhCLElBQUtnOUIsR0FBbUJ6QyxHQUFNQSxJQUFNd0MsSUFDdkM3OEIsS0FBS3FGLFVBQVV4SCxFQUFLLEtBQU0sR0FDMUJBLENBQUcsRUNLWCx1QkEzQkdHLEdBQWMsQ0FBQ2hELEVBQVEwOUIsRUFBUWtFLEVBQWEzRCxLQUMzQyxNQUFNLEdBQUU1N0IsR0FBT1csSUFDVGcvQixFQUFjMy9CLEVBQUc0L0Isb0JBQ3JCamlDLEVBQ0EwOUIsRUFDQWtFLEVBQ0EzRCxHQUVGLElBQUlpRSxFQUNKLElBQ0VBLEVBQWE1bEIsS0FBQUEsS0FDWEEsS0FBQUEsS0FBVTBsQixHQUNWLENBQ0VHLFdBQVksR0FFZCxDQUFFbmlDLE9BQVFvaUMsR0FBQUEsY0FFOEIsT0FBdENGLEVBQVdBLEVBQVdqZ0MsT0FBUyxLQUNqQ2lnQyxFQUFhQSxFQUFXanpCLE1BQU0sRUFBR2l6QixFQUFXamdDLE9BQVMsR0FFekQsQ0FBRSxNQUFPM0MsR0FFUCxPQURBQyxRQUFRQyxNQUFNRixHQUNQLHdDQUNULENBQ0EsT0FBTzRpQyxFQUFXbjVCLFFBQVEsTUFBTyxLQUFLLEVDQTFDLHNCQTFCRy9GLEdBQWMsQ0FBQ2hELEVBQVEwOUIsRUFBUU8sS0FDOUIsTUFBTSxHQUFFNTdCLEdBQU9XLElBS2YsR0FISWhELElBQVdBLEVBQU84MUIsTUFDcEI5MUIsRUFBTzgxQixJQUFNLENBQUMsR0FFWjkxQixJQUFXQSxFQUFPODFCLElBQUlqdEIsS0FBTSxDQUM5QixJQUNHN0ksRUFBT2d4QixRQUNQaHhCLEVBQU8vQixNQUNOK0IsRUFBTzQxQixPQUNQNTFCLEVBQU95MEIsWUFDUHowQixFQUFPMDBCLHNCQUdULE1BQU8seUhBRVQsR0FBSTEwQixFQUFPZ3hCLE1BQU8sQ0FDaEIsSUFBSTZCLEVBQVE3eUIsRUFBT2d4QixNQUFNNkIsTUFBTSxlQUMvQjd5QixFQUFPODFCLElBQUlqdEIsS0FBT2dxQixFQUFNLEVBQzFCLENBQ0YsQ0FFQSxPQUFPeHdCLEVBQUdpL0IseUJBQXlCdGhDLEVBQVEwOUIsRUFBUU8sRUFBZ0IsRUNFdkUsa0JBekJHajdCLEdBQ0QsQ0FBQ2hELEVBQVE0aEMsRUFBYyxHQUFJbEUsRUFBUyxDQUFDLEVBQUdPLE9BQWtCaGlDLEtBQ3hELE1BQU0sR0FBRW9HLEdBQU9XLElBU2YsTUFQNEIsbUJBQWpCaEQsR0FBUWEsT0FDakJiLEVBQVNBLEVBQU9hLFFBRW1CLG1CQUExQm85QixHQUFpQnA5QixPQUMxQm85QixFQUFrQkEsRUFBZ0JwOUIsUUFHaEMsTUFBTTZFLEtBQUtrOEIsR0FDTnYvQixFQUFHZ2dDLG1CQUFtQnJpQyxFQUFRMDlCLEVBQVFPLEdBRTNDLGFBQWF2NEIsS0FBS2s4QixHQUNidi9CLEVBQUdpZ0Msb0JBQ1J0aUMsRUFDQTA5QixFQUNBa0UsRUFDQTNELEdBR0c1N0IsRUFBRzQvQixvQkFBb0JqaUMsRUFBUTA5QixFQUFRa0UsRUFBYTNELEVBQWdCLEVDNkIvRSxzQkFyQ2lDc0UsRUFBR3YvQixnQkFDbEMsTUFBTWkvQixFQUFzQk8sdUJBQXdCeC9CLEdBQzlDcy9CLEVBQXNCRyx1QkFBd0J6L0IsR0FDOUNxL0IsRUFBcUJLLHNCQUF1QjEvQixHQUM1QzQxQixFQUFrQitKLGtCQUFvQjMvQixHQUU1QyxNQUFPLENBQ0xYLEdBQUksQ0FDRnVnQyxZQUFhLENBQ1hoQyxZQUNBTSxpQkFDQWxELHdCQUNBNkMsaUJBQ0FVLHlCQUF3QixHQUN4QkQseUJBQXdCLEdBQ3hCVyxzQkFDQUssc0JBQ0FELHFCQUNBekosa0JBQ0E2RSxpQkFFRm1ELFlBQ0FNLGlCQUNBbEQsd0JBQ0E2QyxpQkFDQVUseUJBQXdCLEdBQ3hCRCx5QkFBd0IsR0FDeEJXLHNCQUNBSyxzQkFDQUQscUJBQ0F6SixrQkFDQTZFLGdCQUNBdkcscUJBRUgsRUNwREcsR0FBK0J0N0IsUUFBUSxtQixpQ0NLN0MsTUFFTWluQyxHQUFvQixDQUN4QixNQUFPLE1BQU8sT0FBUSxTQUFVLFVBQVcsT0FBUSxRQUFTLFNBR3hEbjNCLHFCQUFRQSxHQUNMQSxJQUFTM0IsRUFBQUEsRUFBQUEsT0FHTHVYLElBQVlwSixFQUFBQSxHQUFBQSxnQkFDdkJ4TSxzQkFDQXdQLEdBQVFBLEVBQUtwZSxJQUFJLGVBR05pWSxJQUFNbUQsRUFBQUEsR0FBQUEsZ0JBQ2pCeE0sc0JBQ0F3UCxHQUFRQSxFQUFLcGUsSUFBSSxTQUdOZ21DLElBQVU1cUIsRUFBQUEsR0FBQUEsZ0JBQ3JCeE0sc0JBQ0F3UCxHQUFRQSxFQUFLcGUsSUFBSSxTQUFXLEtBR2pCaW1DLElBQWE3cUIsRUFBQUEsR0FBQUEsZ0JBQ3hCeE0sc0JBQ0F3UCxHQUFRQSxFQUFLcGUsSUFBSSxlQUFpQixlQUd2QnFlLElBQVdqRCxFQUFBQSxHQUFBQSxnQkFDdEJ4TSxzQkFDQXdQLEdBQVFBLEVBQUtwZSxJQUFJLFFBQVFpTixFQUFBQSxFQUFBQSxVQUdkaTVCLElBQVM5cUIsRUFBQUEsR0FBQUEsZ0JBQ3BCaUQsSUFDQ0QsR0FBU0EsRUFBS3JhLFNBR0pvaUMsSUFBZS9xQixFQUFBQSxHQUFBQSxnQkFDMUJ4TSxzQkFDQXdQLEdBQVFBLEVBQUtwZSxJQUFJLFlBQVlpTixFQUFBQSxFQUFBQSxVQUdsQndvQixvQkFBc0JBLENBQUM3bUIsRUFBTzROLElBQ2xDNU4sRUFBTW5MLE1BQU0sQ0FBQyxzQkFBdUIrWSxRQUFPcmQsR0FHOUNpbkMsU0FBV0EsQ0FBQ0MsRUFBUUMsSUFDckJyNUIsRUFBQUEsSUFBSWhLLE1BQU1vakMsSUFBV3A1QixFQUFBQSxJQUFJaEssTUFBTXFqQyxHQUM3QkEsRUFBT3RtQyxJQUFJLFNBR0xzbUMsR0FHRkMsRUFBQUEsRUFBQUEsY0FBYUMsVUFDbEJKLFNBQ0FDLEVBQ0FDLEdBSUdBLEVBR0lHLElBQStCcnJCLEVBQUFBLEdBQUFBLGdCQUMxQ3hNLHNCQUNBd1AsSUFBUW1vQixFQUFBQSxFQUFBQSxjQUFhQyxVQUNuQkosU0FDQWhvQixFQUFLcGUsSUFBSSxRQUNUb2UsRUFBS3BlLElBQUksdUJBS0FvZSxLQUFPeFAsR0FDUnlQLEdBQVN6UCxHQUlSNUwsSUFBU29ZLEVBQUFBLEdBQUFBLGdCQUtwQmdELE1BQ0QsS0FBTSxJQUdNOEosSUFBTzlNLEVBQUFBLEdBQUFBLGdCQUNsQmdELE1BQ0RBLEdBQVFzb0IsbUJBQW1CdG9CLEdBQVFBLEVBQUtwZSxJQUFJLFdBR2hDMm1DLElBQWV2ckIsRUFBQUEsR0FBQUEsZ0JBQzFCZ0QsTUFDREEsR0FBUXNvQixtQkFBbUJ0b0IsR0FBUUEsRUFBS3BlLElBQUksbUJBR2hDNG1DLElBQVV4ckIsRUFBQUEsR0FBQUEsZ0JBQ3RCOE0sSUFDQUEsR0FBUUEsR0FBUUEsRUFBS2xvQixJQUFJLGFBR2I2bUMsSUFBU3pyQixFQUFBQSxHQUFBQSxnQkFDckJ3ckIsSUFDQUEsR0FBVyxrQ0FBa0NFLEtBQUtGLEdBQVN6MEIsTUFBTSxLQUdyRDQwQixJQUFRM3JCLEVBQUFBLEdBQUFBLGdCQUNwQnFyQixJQUNBcm9CLEdBQVFBLEVBQUtwZSxJQUFJLFdBR0xnbkMsR0FBd0JDLEtBQVMsQ0FBQyxNQUFPLE1BQU8sT0FBUSxTQUFVLFVBQVcsT0FBUSxVQUVyRkMsSUFBYTlyQixFQUFBQSxHQUFBQSxnQkFDeEIyckIsSUFDQUEsSUFDRSxJQUFJMzlCLEdBQU9vUyxFQUFBQSxFQUFBQSxRQUVYLE9BQUt2TyxFQUFBQSxJQUFJaEssTUFBTThqQyxJQUFVQSxFQUFNejRCLFdBSS9CeTRCLEVBQU0xK0IsU0FBUSxDQUFDbVUsRUFBTTJxQixLQUNuQixJQUFJM3FCLElBQVNBLEVBQUtuVSxRQUNoQixNQUFPLENBQUMsRUFFVm1VLEVBQUtuVSxTQUFRLENBQUNvVSxFQUFXL1EsS0FDcEJxNkIsR0FBa0J2NUIsUUFBUWQsR0FBVSxJQUd2Q3RDLEVBQU9BLEVBQUszQixNQUFLNEIsRUFBQUEsRUFBQUEsUUFBTyxDQUN0Qm1ULEtBQU0ycUIsRUFDTno3QixTQUNBK1EsWUFDQXRPLEdBQUksR0FBR3pDLEtBQVV5N0IsT0FDaEIsR0FDSCxJQWpCSy85QixDQW9CRSxJQUlGZytCLElBQVdoc0IsRUFBQUEsR0FBQUEsZ0JBQ3RCZ0QsTUFDQUEsSUFBUTFVLEVBQUFBLEVBQUFBLEtBQUkwVSxFQUFLcGUsSUFBSSxlQUdWcW5DLElBQVdqc0IsRUFBQUEsR0FBQUEsZ0JBQ3RCZ0QsTUFDQUEsSUFBUTFVLEVBQUFBLEVBQUFBLEtBQUkwVSxFQUFLcGUsSUFBSSxlQUdWNGEsSUFBV1EsRUFBQUEsR0FBQUEsZ0JBQ3BCZ0QsTUFDQUEsR0FBUUEsRUFBS3BlLElBQUksWUFBWXdiLEVBQUFBLEVBQUFBLFdBR3BCRCxJQUFzQkgsRUFBQUEsR0FBQUEsZ0JBQy9CZ0QsTUFDQUEsR0FBUUEsRUFBS3BlLElBQUkseUJBSVI4ekIsZUFBaUJBLENBQUVsbEIsRUFBTzdDLEtBQ3JDLE1BQU11N0IsRUFBYzE0QixFQUFNbkwsTUFBTSxDQUFDLG1CQUFvQixjQUFlc0ksR0FBTyxNQUNyRXc3QixFQUFnQjM0QixFQUFNbkwsTUFBTSxDQUFDLE9BQVEsY0FBZXNJLEdBQU8sTUFDakUsT0FBT3U3QixHQUFlQyxHQUFpQixJQUFJLEVBR2hDanNCLElBQWNGLEVBQUFBLEdBQUFBLGdCQUN6QmdELE1BQ0FBLElBQ0UsTUFBTXJZLEVBQU1xWSxFQUFLcGUsSUFBSSxlQUNyQixPQUFPaU4sRUFBQUEsSUFBSWhLLE1BQU04QyxHQUFPQSxHQUFNa0gsRUFBQUEsRUFBQUEsTUFBSyxJQUkxQnU2QixJQUFXcHNCLEVBQUFBLEdBQUFBLGdCQUNwQmdELE1BQ0FBLEdBQVFBLEVBQUtwZSxJQUFJLGNBR1J5bkMsSUFBT3JzQixFQUFBQSxHQUFBQSxnQkFDaEJnRCxNQUNBQSxHQUFRQSxFQUFLcGUsSUFBSSxVQUdSczVCLElBQVVsZSxFQUFBQSxHQUFBQSxnQkFDbkJnRCxNQUNBQSxHQUFRQSxFQUFLcGUsSUFBSSxXQUFXaU4sRUFBQUEsRUFBQUEsVUFHbkJ5NkIsSUFBOEJ0c0IsRUFBQUEsR0FBQUEsZ0JBQ3pDLENBQ0U4ckIsR0FDQUUsR0FDQUMsS0FFRixDQUFDSCxFQUFZRSxFQUFVQyxJQUNkSCxFQUFXM2lDLEtBQUtvakMsR0FBT0EsRUFBSWxwQixPQUFPLGFBQWFtcEIsR0FDaEQzNkIsRUFBQUEsSUFBSWhLLE1BQU0ya0MsR0FDTEEsRUFBRzNzQixlQUFlMnNCLElBQ2pCQSxFQUFHNW5DLElBQUksYUFDWDRuQyxFQUFHbnBCLE9BQU8sWUFBWWhmLElBQUtpSyxFQUFBQSxFQUFBQSxLQUFJakssR0FBRzhVLE1BQU02eUIsS0FFcENRLEVBQUc1bkMsSUFBSSxhQUNYNG5DLEVBQUducEIsT0FBTyxZQUFZaGYsSUFBS2lLLEVBQUFBLEVBQUFBLEtBQUlqSyxHQUFHOFUsTUFBTTh5QixLQUVuQ08sTUFJRjM2QixFQUFBQSxFQUFBQSxhQU9GNDZCLElBQU96c0IsRUFBQUEsR0FBQUEsZ0JBQ2xCZ0QsTUFDQTRsQixJQUNFLE1BQU02RCxFQUFPN0QsRUFBS2hrQyxJQUFJLFFBQVF3YixFQUFBQSxFQUFBQSxTQUM5QixPQUFPQSxFQUFBQSxLQUFLM1QsT0FBT2dnQyxHQUFRQSxFQUFLaG1DLFFBQU80Z0IsR0FBT3hWLEVBQUFBLElBQUloSyxNQUFNd2YsTUFBUWpILEVBQUFBLEVBQUFBLE9BQU0sSUFJN0Rzc0IsV0FBYUEsQ0FBQ2w1QixFQUFPNlQsS0FDZG9sQixHQUFLajVCLEtBQVU0TSxFQUFBQSxFQUFBQSxTQUNkM1osT0FBT29MLEVBQUFBLElBQUloSyxPQUFPbUosTUFBS2dtQixHQUFLQSxFQUFFcHlCLElBQUksVUFBWXlpQixJQUFLeFYsRUFBQUEsRUFBQUEsUUFHM0Q4NkIsSUFBcUIzc0IsRUFBQUEsR0FBQUEsZ0JBQ2hDc3NCLEdBQ0FHLElBQ0EsQ0FBQ1gsRUFBWVcsSUFDSlgsRUFBV3JoQyxRQUFRLENBQUNtaUMsRUFBV0osS0FDcEMsSUFBSUMsR0FBT24rQixFQUFBQSxFQUFBQSxLQUFJaytCLEVBQUdua0MsTUFBTSxDQUFDLFlBQVksVUFDckMsT0FBR29rQyxFQUFLLy9CLFFBQVUsRUFDVGtnQyxFQUFVdnBCLE9BclBMLFdBcVB5QmpELEVBQUFBLEVBQUFBLFNBQVF5c0IsR0FBTUEsRUFBR3hnQyxLQUFLbWdDLEtBQ3REQyxFQUFLaGlDLFFBQVEsQ0FBQ0UsRUFBSzBjLElBQVExYyxFQUFJMFksT0FBT2dFLEdBQUtqSCxFQUFBQSxFQUFBQSxTQUFTeXNCLEdBQU9BLEVBQUd4Z0MsS0FBS21nQyxNQUFNSSxFQUFXLEdBQzFGSCxFQUFLaGlDLFFBQVEsQ0FBQ21pQyxFQUFXdmxCLElBQ25CdWxCLEVBQVUxK0IsSUFBSW1aLEVBQUl6aUIsSUFBSSxTQUFTd2IsRUFBQUEsRUFBQUEsV0FDcEMrcUIsRUFBQUEsRUFBQUEsa0JBSUs3ZSwyQkFBb0I5WSxHQUFVLEVBQUdvQyxpQkFDNUMsSUFBSSxXQUFFckYsRUFBVSxpQkFBRUwsR0FBcUIwRixJQUN2QyxPQUFPKzJCLEdBQW1CbjVCLEdBQ3ZCK1YsUUFDQyxDQUFDcGMsRUFBSzVJLElBQVFBLElBQ2QsQ0FBQ3VvQyxFQUFNQyxLQUNMLElBQUlDLEVBQWdDLG1CQUFmejhCLEVBQTRCQSxFQUFhTixHQUFRTSxXQUFZQSxHQUNsRixPQUFTeThCLEVBQWdCQSxFQUFPRixFQUFNQyxHQUFwQixJQUF5QixJQUc5QzVqQyxLQUFJLENBQUNvakMsRUFBS2xsQixLQUNULElBQUkybEIsRUFBc0MsbUJBQXJCOThCLEVBQWtDQSxFQUFtQkQsR0FBUUMsaUJBQWtCQSxHQUNoRzQ3QixFQUFla0IsRUFBZVQsRUFBSVUsS0FBS0QsR0FBZlQsRUFFNUIsT0FBTzE2QixFQUFBQSxFQUFBQSxLQUFJLENBQUU2NkIsV0FBWUEsV0FBV2w1QixFQUFPNlQsR0FBTXlrQixXQUFZQSxHQUFhLEdBQzFFLEVBR09vQixJQUFZbHRCLEVBQUFBLEdBQUFBLGdCQUN2QnhNLHNCQUNBQSxHQUFTQSxFQUFNNU8sSUFBSyxhQUFhaU4sRUFBQUEsRUFBQUEsVUFHdEJzN0IsSUFBV250QixFQUFBQSxHQUFBQSxnQkFDcEJ4TSxzQkFDQUEsR0FBU0EsRUFBTTVPLElBQUssWUFBWWlOLEVBQUFBLEVBQUFBLFVBR3ZCdTdCLElBQWtCcHRCLEVBQUFBLEdBQUFBLGdCQUMzQnhNLHNCQUNBQSxHQUFTQSxFQUFNNU8sSUFBSyxtQkFBbUJpTixFQUFBQSxFQUFBQSxVQUc5Qnc3QixZQUFjQSxDQUFDNzVCLEVBQU80TixFQUFNOVEsSUFDaEM0OEIsR0FBVTE1QixHQUFPbkwsTUFBTSxDQUFDK1ksRUFBTTlRLEdBQVMsTUFHbkNnOUIsV0FBYUEsQ0FBQzk1QixFQUFPNE4sRUFBTTlRLElBQy9CNjhCLEdBQVMzNUIsR0FBT25MLE1BQU0sQ0FBQytZLEVBQU05USxHQUFTLE1BR2xDaTlCLGtCQUFvQkEsQ0FBQy81QixFQUFPNE4sRUFBTTlRLElBQ3RDODhCLEdBQWdCNTVCLEdBQU9uTCxNQUFNLENBQUMrWSxFQUFNOVEsR0FBUyxNQUd6Q2s5QixpQkFBbUJBLEtBRXZCLEVBR0lDLDRCQUE4QkEsQ0FBQ2o2QixFQUFPazZCLEVBQVlyN0IsS0FDN0QsTUFBTXM3QixFQUFXdEMsR0FBNkI3M0IsR0FBT25MLE1BQU0sQ0FBQyxXQUFZcWxDLEVBQVksZUFBZXZDLEVBQUFBLEVBQUFBLGVBQzdGeUMsRUFBYXA2QixFQUFNbkwsTUFBTSxDQUFDLE9BQVEsV0FBWXFsQyxFQUFZLGVBQWV2QyxFQUFBQSxFQUFBQSxlQVcvRSxPQVRxQndDLEVBQVN4a0MsS0FBSzBrQyxJQUNqQyxNQUFNQyxFQUFrQkYsRUFBV2hwQyxJQUFJLEdBQUd5TixFQUFNek4sSUFBSSxTQUFTeU4sRUFBTXpOLElBQUksV0FDakVtcEMsRUFBZ0JILEVBQVdocEMsSUFBSSxHQUFHeU4sRUFBTXpOLElBQUksU0FBU3lOLEVBQU16TixJQUFJLGdCQUFnQnlOLEVBQU1PLGNBQzNGLE9BQU91NEIsRUFBQUEsRUFBQUEsY0FBYWh5QixNQUNsQjAwQixFQUNBQyxFQUNBQyxFQUNELElBRWlCLzhCLE1BQUtnOUIsR0FBUUEsRUFBS3BwQyxJQUFJLFFBQVV5TixFQUFNek4sSUFBSSxPQUFTb3BDLEVBQUtwcEMsSUFBSSxVQUFZeU4sRUFBTXpOLElBQUksVUFBU3VtQyxFQUFBQSxFQUFBQSxjQUFhLEVBR2pIOEMsNkJBQStCQSxDQUFDejZCLEVBQU9rNkIsRUFBWWo3QixFQUFXQyxLQUN6RSxNQUFNdzdCLEVBQVcsR0FBR3g3QixLQUFXRCxJQUMvQixPQUFPZSxFQUFNbkwsTUFBTSxDQUFDLE9BQVEsV0FBWXFsQyxFQUFZLHVCQUF3QlEsSUFBVyxFQUFNLEVBSWxGQyxrQkFBb0JBLENBQUMzNkIsRUFBT2s2QixFQUFZajdCLEVBQVdDLEtBQzlELE1BQ01tN0IsRUFEV3hDLEdBQTZCNzNCLEdBQU9uTCxNQUFNLENBQUMsV0FBWXFsQyxFQUFZLGVBQWV2QyxFQUFBQSxFQUFBQSxlQUNyRW42QixNQUFLcUIsR0FBU0EsRUFBTXpOLElBQUksUUFBVThOLEdBQVdMLEVBQU16TixJQUFJLFVBQVk2TixJQUFXMDRCLEVBQUFBLEVBQUFBLGVBQzVHLE9BQU9zQyw0QkFBNEJqNkIsRUFBT2s2QixFQUFZRyxFQUFhLEVBR3hETyxrQkFBb0JBLENBQUM1NkIsRUFBTzROLEVBQU05USxLQUM3QyxNQUFNazhCLEVBQUtuQixHQUE2QjczQixHQUFPbkwsTUFBTSxDQUFDLFFBQVMrWSxFQUFNOVEsSUFBUzY2QixFQUFBQSxFQUFBQSxlQUN4RWxKLEVBQU96dUIsRUFBTW5MLE1BQU0sQ0FBQyxPQUFRLFFBQVMrWSxFQUFNOVEsSUFBUzY2QixFQUFBQSxFQUFBQSxlQUVwRGtELEVBQWU3QixFQUFHNW5DLElBQUksY0FBY3diLEVBQUFBLEVBQUFBLFNBQVFqWCxLQUFLa0osR0FDOUNvN0IsNEJBQTRCajZCLEVBQU8sQ0FBQzROLEVBQU05USxHQUFTK0IsS0FHNUQsT0FBTzg0QixFQUFBQSxFQUFBQSxjQUNKaHlCLE1BQU1xekIsRUFBSXZLLEdBQ1YvekIsSUFBSSxhQUFjbWdDLEVBQWEsRUFJN0IsU0FBU0MsYUFBYTk2QixFQUFPazZCLEVBQVkvOEIsRUFBTTQ5QixHQUdwRCxPQUZBYixFQUFhQSxHQUFjLEdBQ2RsNkIsRUFBTW5MLE1BQU0sQ0FBQyxPQUFRLFdBQVlxbEMsRUFBWSxlQUFlei9CLEVBQUFBLEVBQUFBLFFBQU8sS0FDbEUrQyxNQUFPdVgsR0FDWjFXLEVBQUFBLElBQUloSyxNQUFNMGdCLElBQU1BLEVBQUUzakIsSUFBSSxVQUFZK0wsR0FBUTRYLEVBQUUzakIsSUFBSSxRQUFVMnBDLE1BQzdEMThCLEVBQUFBLEVBQUFBLE1BQ1IsQ0FFTyxNQUFNMjhCLElBQVV4dUIsRUFBQUEsR0FBQUEsZ0JBQ3JCZ0QsTUFDQUEsSUFDRSxNQUFNcXBCLEVBQU9ycEIsRUFBS3BlLElBQUksUUFDdEIsTUFBdUIsaUJBQVR5bkMsR0FBcUJBLEVBQUt0aUMsT0FBUyxHQUFpQixNQUFac2lDLEVBQUssRUFBVSxJQUtsRSxTQUFTb0MsZ0JBQWdCajdCLEVBQU9rNkIsRUFBWWdCLEdBR2pELE9BRkFoQixFQUFhQSxHQUFjLEdBQ1RVLGtCQUFrQjU2QixLQUFVazZCLEdBQVk5b0MsSUFBSSxjQUFjd2IsRUFBQUEsRUFBQUEsU0FDekQzVixRQUFRLENBQUNpYSxFQUFNNkQsS0FDaEMsSUFBSWxqQixFQUFRcXBDLEdBQXlCLFNBQWhCbm1CLEVBQUUzakIsSUFBSSxNQUFtQjJqQixFQUFFM2pCLElBQUksYUFBZTJqQixFQUFFM2pCLElBQUksU0FJekUsT0FISXdiLEVBQUFBLEtBQUszVCxPQUFPcEgsS0FDZEEsRUFBUUEsRUFBTW9CLFFBQU91QixHQUFXLEtBQU5BLEtBRXJCMGMsRUFBS3hXLElBQUlrRSxrQkFBa0JtVyxFQUFHLENBQUVoVyxhQUFhLElBQVVsTixFQUFNLElBQ25FNEksRUFBQUEsRUFBQUEsUUFBTyxDQUFDLEdBQ2IsQ0FHTyxTQUFTMGdDLG9CQUFvQkMsRUFBWUMsRUFBUSxJQUN0RCxHQUFHenVCLEVBQUFBLEtBQUszVCxPQUFPbWlDLEdBQ2IsT0FBT0EsRUFBV2hpQyxNQUFNMmIsR0FBSzFXLEVBQUFBLElBQUloSyxNQUFNMGdCLElBQU1BLEVBQUUzakIsSUFBSSxRQUFVaXFDLEdBRWpFLENBR08sU0FBU0Msc0JBQXNCRixFQUFZRyxFQUFVLElBQzFELEdBQUczdUIsRUFBQUEsS0FBSzNULE9BQU9taUMsR0FDYixPQUFPQSxFQUFXaGlDLE1BQU0yYixHQUFLMVcsRUFBQUEsSUFBSWhLLE1BQU0wZ0IsSUFBTUEsRUFBRTNqQixJQUFJLFVBQVltcUMsR0FFbkUsQ0FHTyxTQUFTQyxrQkFBa0J4N0IsRUFBT2s2QixHQUN2Q0EsRUFBYUEsR0FBYyxHQUMzQixJQUFJbEIsRUFBS25CLEdBQTZCNzNCLEdBQU9uTCxNQUFNLENBQUMsV0FBWXFsQyxJQUFhei9CLEVBQUFBLEVBQUFBLFFBQU8sQ0FBQyxJQUNqRmcwQixFQUFPenVCLEVBQU1uTCxNQUFNLENBQUMsT0FBUSxXQUFZcWxDLElBQWF6L0IsRUFBQUEsRUFBQUEsUUFBTyxDQUFDLElBQzdEZ2hDLEVBQWdCQyxtQkFBbUIxN0IsRUFBT2s2QixHQUU5QyxNQUFNa0IsRUFBYXBDLEVBQUc1bkMsSUFBSSxlQUFpQixJQUFJd2IsRUFBQUEsS0FFekMrdUIsRUFDSmxOLEVBQUtyOUIsSUFBSSxrQkFBb0JxOUIsRUFBS3I5QixJQUFJLGtCQUNsQ2txQyxzQkFBc0JGLEVBQVksUUFBVSxzQkFDNUNFLHNCQUFzQkYsRUFBWSxZQUFjLHlDQUNoRDdxQyxFQUdOLE9BQU9rSyxFQUFBQSxFQUFBQSxRQUFPLENBQ1praEMscUJBQ0FDLG9CQUFxQkgsR0FFekIsQ0FHTyxTQUFTQyxtQkFBbUIxN0IsRUFBT2s2QixHQUN4Q0EsRUFBYUEsR0FBYyxHQUUzQixNQUFNcnNCLEVBQVlncUIsR0FBNkI3M0IsR0FBT25MLE1BQU0sQ0FBRSxXQUFZcWxDLEdBQWEsTUFFdkYsR0FBaUIsT0FBZHJzQixFQUVELE9BR0YsTUFBTWd1QixFQUF1Qjc3QixFQUFNbkwsTUFBTSxDQUFDLE9BQVEsV0FBWXFsQyxFQUFZLGtCQUFtQixNQUN2RjRCLEVBQXlCanVCLEVBQVVoWixNQUFNLENBQUMsV0FBWSxHQUFJLE1BRWhFLE9BQU9nbkMsR0FBd0JDLEdBQTBCLGtCQUUzRCxDQUdPLFNBQVNDLG1CQUFtQi83QixFQUFPazZCLEdBQ3hDQSxFQUFhQSxHQUFjLEdBRTNCLE1BQU0xcUIsRUFBT3FvQixHQUE2QjczQixHQUNwQzZOLEVBQVkyQixFQUFLM2EsTUFBTSxDQUFFLFdBQVlxbEMsR0FBYSxNQUV4RCxHQUFpQixPQUFkcnNCLEVBRUQsT0FHRixNQUFPRCxHQUFRc3NCLEVBRVQ4QixFQUFvQm51QixFQUFVemMsSUFBSSxXQUFZLE1BQzlDNnFDLEVBQW1CenNCLEVBQUszYSxNQUFNLENBQUMsUUFBUytZLEVBQU0sWUFBYSxNQUMzRHN1QixFQUFpQjFzQixFQUFLM2EsTUFBTSxDQUFDLFlBQWEsTUFFaEQsT0FBT21uQyxHQUFxQkMsR0FBb0JDLENBQ2xELENBR08sU0FBU0MsbUJBQW1CbjhCLEVBQU9rNkIsR0FDeENBLEVBQWFBLEdBQWMsR0FFM0IsTUFBTTFxQixFQUFPcW9CLEdBQTZCNzNCLEdBQ3BDNk4sRUFBWTJCLEVBQUszYSxNQUFNLENBQUMsV0FBWXFsQyxHQUFhLE1BRXZELEdBQWtCLE9BQWRyc0IsRUFFRixPQUdGLE1BQU9ELEdBQVFzc0IsRUFFVGtDLEVBQW9CdnVCLEVBQVV6YyxJQUFJLFdBQVksTUFDOUNpckMsRUFBbUI3c0IsRUFBSzNhLE1BQU0sQ0FBQyxRQUFTK1ksRUFBTSxZQUFhLE1BQzNEMHVCLEVBQWlCOXNCLEVBQUszYSxNQUFNLENBQUMsWUFBYSxNQUVoRCxPQUFPdW5DLEdBQXFCQyxHQUFvQkMsQ0FDbEQsQ0FFTyxNQUFNdFIsZ0JBQWtCQSxDQUFFaHJCLEVBQU80TixFQUFNOVEsS0FDNUMsSUFDSXkvQixFQURNdjhCLEVBQU01TyxJQUFJLE9BQ0UrMUIsTUFBTSwwQkFDeEJxVixFQUFZL21DLE1BQU1DLFFBQVE2bUMsR0FBZUEsRUFBWSxHQUFLLEtBRTlELE9BQU92OEIsRUFBTW5MLE1BQU0sQ0FBQyxTQUFVK1ksRUFBTTlRLEtBQVlrRCxFQUFNbkwsTUFBTSxDQUFDLFNBQVUsb0JBQXNCMm5DLEdBQWEsRUFBRSxFQUdqR0MsaUJBQW1CQSxDQUFFejhCLEVBQU80TixFQUFNOVEsSUFDdEMsQ0FBQyxPQUFRLFNBQVNjLFFBQVFvdEIsZ0JBQWdCaHJCLEVBQU80TixFQUFNOVEsS0FBWSxFQUcvRDQvQixpQkFBbUJBLENBQUMxOEIsRUFBT2s2QixLQUN0Q0EsRUFBYUEsR0FBYyxHQUMzQixNQUFNNTZCLEVBQWNVLEVBQU1uTCxNQUFNLENBQUMsT0FBUSxXQUFZcWxDLEVBQVksZUFBZXovQixFQUFBQSxFQUFBQSxRQUFPLEtBQ2pGMlIsRUFBUyxHQUVmLEdBQTJCLElBQXZCOU0sRUFBWS9JLE9BQWMsT0FBTzZWLEVBRXJDLE1BQU11d0IsbUJBQXFCQSxDQUFDaHFDLEVBQVFpYixFQUFPLE1BQ3pDLE1BQU1ndkIseUJBQTJCQSxDQUFDaHBDLEVBQUdnYSxLQUNuQyxNQUFNaXZCLEVBQVcsSUFBSWp2QixFQUFNaGEsRUFBRXhDLElBQUksWUFBY3dDLEVBQUV4QyxJQUFJLFVBQ3JELE9BQU9pTixFQUFBQSxJQUFJaEssTUFBTVQsRUFBRXhDLElBQUksVUFDbkJ1ckMsbUJBQW1CL29DLEVBQUV4QyxJQUFJLFNBQVV5ckMsR0FDbkMsQ0FBRS9vQyxNQUFPRixFQUFFeEMsSUFBSSxTQUFVd2MsS0FBTWl2QixFQUFVLEVBRy9DLE9BQU9qd0IsRUFBQUEsS0FBSzNULE9BQU90RyxHQUNoQkEsRUFBT2dELEtBQUsvQixHQUFPeUssRUFBQUEsSUFBSWhLLE1BQU1ULEdBQUtncEMseUJBQXlCaHBDLEVBQUdnYSxHQUFRLENBQUU5WixNQUFPRixFQUFHZ2EsVUFDbEZndkIseUJBQXlCanFDLEVBQVFpYixFQUFLLEVBd0IzQyxPQVZBdE8sRUFBWTdGLFNBQVMsQ0FBQ3NiLEVBQUdoa0IsS0FDdkIsTUFBTWtPLEVBQVlsTyxFQUFJdWlCLE1BQU0sS0FBSy9QLE1BQU0sR0FBSSxHQUFHakcsS0FBSyxLQUM3QzNLLEVBQVNvaUIsRUFBRTNqQixJQUFJLFVBQ3JCLEdBQUl1QixHQUFVQSxFQUFPdUcsUUFBUyxDQUNKeWpDLG1CQUFtQmhxQyxHQUMzQjhHLFNBQVEsRUFBRTNGLFFBQU84WixXQUMvQnhCLEVBQU92VCxLQWpCT2lrQyxFQUFDaHBDLEVBQU84WixFQUFNM08sSUFRekIsUUFBUUEsTUFQZjJPLEVBQU9BLEVBQUszVyxRQUFPLENBQUNpTixFQUFLczJCLElBQ0EsaUJBQVRBLEVBQ1YsR0FBR3QyQixLQUFPczJCLEtBQ1Z0MkIsRUFDQSxHQUFHQSxLQUFPczJCLElBQ1ZBLEdBQ0gsS0FDZ0MsYUFBYTVzQixLQUFVLE9BQU85WixLQVNqRGdwQyxDQUFZaHBDLEVBQU84WixFQUFNM08sR0FBVyxHQUVwRCxLQUVLbU4sQ0FBTSxFQUdGMndCLHNCQUF3QkEsQ0FBQy84QixFQUFPazZCLElBQ1csSUFBL0N3QyxpQkFBaUIxOEIsRUFBT2s2QixHQUFZM2pDLE9BR2hDeW1DLHNDQUF3Q0EsQ0FBQ2g5QixFQUFPazZCLEtBQzNELElBQUkrQyxFQUFjLENBQ2hCQyxhQUFhLEVBQ2J2QixtQkFBb0IsQ0FBQyxHQUVuQnVCLEVBQWNsOUIsRUFBTW5MLE1BQU0sQ0FBQyxtQkFBb0IsV0FBWXFsQyxFQUFZLGdCQUFnQnovQixFQUFBQSxFQUFBQSxRQUFPLEtBQ2xHLE9BQUl5aUMsRUFBWXRpQyxLQUFPLElBR25Cc2lDLEVBQVlyb0MsTUFBTSxDQUFDLGVBQ3JCb29DLEVBQVlDLFlBQWNBLEVBQVlyb0MsTUFBTSxDQUFDLGNBRS9DcW9DLEVBQVlyb0MsTUFBTSxDQUFDLFlBQVlrWCxXQUFXdFMsU0FBU3k4QixJQUNqRCxNQUFNbmxDLEVBQU1tbEMsRUFBWSxHQUN4QixHQUFJQSxFQUFZLEdBQUdyaEMsTUFBTSxDQUFDLFNBQVUsYUFBYyxDQUNoRCxNQUFNOEUsRUFBTXU4QixFQUFZLEdBQUdyaEMsTUFBTSxDQUFDLFNBQVUsYUFBYU0sT0FDekQ4bkMsRUFBWXRCLG1CQUFtQjVxQyxHQUFPNEksQ0FDeEMsTUFWT3NqQyxDQVlTLEVBR1BFLGlDQUFtQ0EsQ0FBRW45QixFQUFPazZCLEVBQVlrRCxFQUFrQkMsS0FDckYsSUFBSUQsR0FBb0JDLElBQW9CRCxJQUFxQkMsRUFDL0QsT0FBTyxFQUVULElBQUlDLEVBQXFCdDlCLEVBQU1uTCxNQUFNLENBQUMsbUJBQW9CLFdBQVlxbEMsRUFBWSxjQUFlLFlBQVl6L0IsRUFBQUEsRUFBQUEsUUFBTyxLQUNwSCxHQUFJNmlDLEVBQW1CMWlDLEtBQU8sSUFBTXdpQyxJQUFxQkMsRUFFdkQsT0FBTyxFQUVULElBQUlFLEVBQW1DRCxFQUFtQnpvQyxNQUFNLENBQUN1b0MsRUFBa0IsU0FBVSxlQUFlM2lDLEVBQUFBLEVBQUFBLFFBQU8sS0FDL0craUMsRUFBa0NGLEVBQW1Cem9DLE1BQU0sQ0FBQ3dvQyxFQUFpQixTQUFVLGVBQWU1aUMsRUFBQUEsRUFBQUEsUUFBTyxLQUNqSCxRQUFTOGlDLEVBQWlDdGlDLE9BQU91aUMsRUFBZ0MsRUFHbkYsU0FBUzFGLG1CQUFtQnptQyxHQUUxQixPQUFPZ04sRUFBQUEsSUFBSWhLLE1BQU1oRCxHQUFPQSxFQUFNLElBQUlnTixFQUFBQSxHQUNwQyxDQzlqQkEsTUFBTSxHQUErQm5PLFFBQVEsbUIsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEsbUIsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEsYyxpQ0NBN0MsTUFBTSxHQUErQkEsUUFBUSx1QixpQ0NjdEMsTUFBTXV0QyxHQUFjLG1CQUNkQyxHQUFhLGtCQUNiQyxHQUFjLG1CQUNkQyxHQUFlLG9CQUNmQyxHQUErQixvQ0FDL0JDLEdBQWtCLHNCQUNsQkMsR0FBZSxvQkFDZkMsR0FBYyxtQkFDZEMsR0FBc0IsMkJBQ3RCQyxHQUFjLG1CQUNkQyxHQUFpQixzQkFDakJDLEdBQWdCLHFCQUNoQkMsR0FBd0IsNEJBQ3hCQyxHQUE4QixtQ0FDOUJDLEdBQWtCLHVCQUNsQkMsR0FBMEIsK0JBQzFCQyxHQUFhLGFBRXBCQyxNQUFTcmlDLEdBQVFzaUMsS0FBU3RpQyxHQUFPQSxFQUFNLEdBRXRDLFNBQVNvZCxXQUFXakssR0FDekIsTUFBTW92QixFQUFhRixNQUFNbHZCLEdBQU9uUyxRQUFRLE1BQU8sTUFDL0MsR0FBbUIsaUJBQVRtUyxFQUNSLE1BQU8sQ0FDTGpkLEtBQU1rckMsR0FDTmpyQyxRQUFTb3NDLEVBR2YsQ0FFTyxTQUFTQyxlQUFlcnZCLEdBQzdCLE1BQU8sQ0FDTGpkLEtBQU1nc0MsR0FDTi9yQyxRQUFTZ2QsRUFFYixDQUVPLFNBQVNpQixVQUFVcEgsR0FDeEIsTUFBTyxDQUFDOVcsS0FBTW1yQyxHQUFZbHJDLFFBQVM2VyxFQUNyQyxDQUVPLFNBQVNxUSxlQUFlMGIsR0FDN0IsTUFBTyxDQUFDN2lDLEtBQU1vckMsR0FBYW5yQyxRQUFTNGlDLEVBQ3RDLENBRU8sTUFBTTBKLFlBQWV6aUMsR0FBUSxFQUFFZ1UsY0FBYXJHLGdCQUFlMUMsaUJBQ2hFLElBQUksUUFBRTh2QixHQUFZcHRCLEVBRWRvckIsRUFBTyxLQUNYLElBQ0UvNEIsRUFBTUEsR0FBTys2QixJQUNiOXZCLEVBQVd0VSxNQUFNLENBQUU2VSxPQUFRLFdBQzNCdXRCLEVBQU94a0IsS0FBQUEsS0FBVXZVLEVBQUssQ0FBRS9ILE9BQVFvaUMsR0FBQUEsYUFDbEMsQ0FBRSxNQUFNOWlDLEdBR04sT0FEQUMsUUFBUUMsTUFBTUYsR0FDUDBULEVBQVcxVSxXQUFXLENBQzNCaVYsT0FBUSxTQUNSQyxNQUFPLFFBQ1BDLFFBQVNuVSxFQUFFbXJDLE9BQ1hycEIsS0FBTTloQixFQUFFb3JDLE1BQVFwckMsRUFBRW9yQyxLQUFLdHBCLEtBQU85aEIsRUFBRW9yQyxLQUFLdHBCLEtBQU8sT0FBSW5sQixHQUVwRCxDQUNBLE9BQUc2a0MsR0FBd0IsaUJBQVRBLEVBQ1Qva0IsRUFBWXFKLGVBQWUwYixHQUU3Qi9rQixFQUFZcUosZUFBZSxDQUFDLEVBQUUsRUFHdkMsSUFBSXVsQixJQUF1QyxFQUVwQyxNQUFNQyxZQUFjQSxDQUFDOUosRUFBTS9yQixJQUFRLEVBQUVnSCxjQUFhckcsZ0JBQWUxQyxhQUFZM1EsSUFBTStULFFBQU95MEIsVUFBU0MsTUFBTSxDQUFDLEdBQUtoOUIsaUJBQ2hINjhCLEtBQ0ZwckMsUUFBUXFWLEtBQUssMEhBQ2IrMUIsSUFBdUMsR0FHekMsTUFBTSxtQkFDSkksRUFBa0IsZUFDbEJDLEVBQWMsbUJBQ2QzMEIsRUFBa0Isb0JBQ2xCQyxHQUNFeEksU0FFZ0IsSUFBVmd6QixJQUNSQSxFQUFPcHJCLEVBQWN5RixpQkFFSixJQUFUcEcsSUFDUkEsRUFBTVcsRUFBY1gsT0FHdEIsSUFBSWsyQixFQUF1QkgsRUFBSUcscUJBQXVCSCxFQUFJRyxxQkFBdUIsS0FBZSxFQUU1Rm5JLEVBQVVwdEIsRUFBY290QixVQUU1QixPQUFPK0gsRUFBUSxDQUNiejBCLFFBQ0E4RSxLQUFNNGxCLEVBQ05vSyxRQUFTMWhDLE9BQU8sSUFBSTBwQixJQUFJbmUsRUFBSytFLFNBQVNxeEIsVUFDdENKLHFCQUNBQyxpQkFDQTMwQixxQkFDQUMsd0JBQ0NDLE1BQU0sRUFBRTJFLE9BQU03YyxhQUlmLEdBSEEyVSxFQUFXdFUsTUFBTSxDQUNmVCxLQUFNLFdBRUxrRCxNQUFNQyxRQUFRL0MsSUFBV0EsRUFBTzRELE9BQVMsRUFBRyxDQUM3QyxJQUFJbXBDLEVBQWlCL3NDLEVBQ2xCZ0QsS0FBSXJELElBQ0h1QixRQUFRQyxNQUFNeEIsR0FDZEEsRUFBSW9qQixLQUFPcGpCLEVBQUk2d0IsU0FBV29jLEVBQXFCbkksRUFBUzlrQyxFQUFJNndCLFVBQVksS0FDeEU3d0IsRUFBSXNiLEtBQU90YixFQUFJNndCLFNBQVc3d0IsRUFBSTZ3QixTQUFTN2xCLEtBQUssS0FBTyxLQUNuRGhMLEVBQUl3VixNQUFRLFFBQ1p4VixFQUFJQyxLQUFPLFNBQ1hELEVBQUl1VixPQUFTLFdBQ2I1VyxPQUFPQyxlQUFlb0IsRUFBSyxVQUFXLENBQUVuQixZQUFZLEVBQU1VLE1BQU9TLEVBQUl5VixVQUM5RHpWLEtBRVhnVixFQUFXNVUsa0JBQWtCZ3RDLEVBQy9CLENBRUEsT0FBT3J2QixFQUFZd3VCLGVBQWVydkIsRUFBSyxHQUN2QyxFQUdKLElBQUltd0IsR0FBZSxHQUVuQixNQUFNQyxHQUFxQkMsTUFBUyxLQUNsQyxNQUFNQyxFQUEyQkgsR0FBYTFvQyxRQUFPLENBQUNpTixHQUFPMEosT0FBTTFOLGFBQzVEZ0UsRUFBSTFLLElBQUkwRyxJQUFTZ0UsRUFBSXhKLElBQUl3RixFQUFRLElBQ3RDZ0UsRUFBSTlTLElBQUk4TyxHQUFRckgsS0FBSytVLEdBQ2QxSixJQUNOLElBQUk3RixLQUVQc2hDLEdBQWUsR0FFZkcsRUFBeUJybUMsU0FBUXNtQyxNQUFPQyxFQUFvQjkvQixLQUMxRCxJQUFJQSxFQUVGLFlBREFyTSxRQUFRQyxNQUFNLG9FQUdoQixJQUFJb00sRUFBT3ZKLEdBQUdzcEMsZUFFWixZQURBcHNDLFFBQVFDLE1BQU0sbUZBR2hCLE1BQU0sV0FDSndULEVBQVUsYUFDVjQ0QixFQUNBdnBDLElBQUksZUFDRnNwQyxFQUFjLE1BQ2R2MUIsRUFBSyxJQUNMMDBCLEVBQU0sQ0FBQyxHQUNSLGNBQ0RwMUIsRUFBYSxZQUNicUcsR0FDRW5RLEVBQ0VxL0IsRUFBdUJILEVBQUlHLHNCQUF3QmxILFVBQVM5bkMsR0FDNUQ2bUMsRUFBVXB0QixFQUFjb3RCLFdBQ3hCLG1CQUNKaUksRUFBa0IsZUFDbEJDLEVBQWMsbUJBQ2QzMEIsRUFBa0Isb0JBQ2xCQyxHQUNFMUssRUFBT2tDLGFBRVgsSUFDRSxNQUFNKzlCLFFBQW9CSCxFQUFtQi9vQyxRQUFPOG9DLE1BQU9LLEVBQU14eUIsS0FDL0QsSUFBSSxVQUFFeXlCLEVBQVMsd0JBQUVDLFNBQWtDRixFQUNuRCxNQUFNLE9BQUV6dEMsRUFBTSxLQUFFNmMsU0FBZXl3QixFQUFlSyxFQUF5QjF5QixFQUFNLENBQzNFNHhCLFFBQVMxaEMsT0FBTyxJQUFJMHBCLElBQUl4ZCxFQUFjWCxNQUFPK0UsU0FBU3F4QixVQUN0REoscUJBQ0FDLGlCQUNBMzBCLHFCQUNBQyx3QkFZRixHQVRHczFCLEVBQWF2cUIsWUFBWS9hLE1BQzFCME0sRUFBV3BVLFNBQVFaLEdBRVUsV0FBcEJBLEVBQUlsQixJQUFJLFNBQ1ksYUFBdEJrQixFQUFJbEIsSUFBSSxZQUNQa0IsRUFBSWxCLElBQUksYUFBYTZrQixPQUFNLENBQUNsbEIsRUFBS2lLLElBQU1qSyxJQUFRNmMsRUFBSzVTLFNBQWtCekssSUFBWnFkLEVBQUs1UyxPQUl0RXZGLE1BQU1DLFFBQVEvQyxJQUFXQSxFQUFPNEQsT0FBUyxFQUFHLENBQzdDLElBQUltcEMsRUFBaUIvc0MsRUFDbEJnRCxLQUFJckQsSUFDSEEsRUFBSW9qQixLQUFPcGpCLEVBQUk2d0IsU0FBV29jLEVBQXFCbkksRUFBUzlrQyxFQUFJNndCLFVBQVksS0FDeEU3d0IsRUFBSXNiLEtBQU90YixFQUFJNndCLFNBQVc3d0IsRUFBSTZ3QixTQUFTN2xCLEtBQUssS0FBTyxLQUNuRGhMLEVBQUl3VixNQUFRLFFBQ1p4VixFQUFJQyxLQUFPLFNBQ1hELEVBQUl1VixPQUFTLFdBQ2I1VyxPQUFPQyxlQUFlb0IsRUFBSyxVQUFXLENBQUVuQixZQUFZLEVBQU1VLE1BQU9TLEVBQUl5VixVQUM5RHpWLEtBRVhnVixFQUFXNVUsa0JBQWtCZ3RDLEVBQy9CLENBMkJBLE9BekJJbHdCLEdBQVF4RixFQUFjNVYsVUFBd0IsZUFBWndaLEVBQUssSUFBbUMsb0JBQVpBLEVBQUssVUFFL0QyeUIsUUFBUTFxQixJQUFJNWtCLE9BQU9nZCxPQUFPdUIsR0FDN0J2YyxRQUFRbTFCLEdBQTRCLGtCQUFqQkEsR0FBUTcxQixPQUMzQm9ELEtBQUlvcUMsTUFBT1MsSUFDVixNQUFNdHdCLEVBQU0sQ0FDVjdHLElBQUttM0IsRUFBV0MsaUJBQ2hCOTFCLG1CQUFvQkEsRUFDcEJDLG9CQUFxQkEsR0FFdkIsSUFDRSxNQUFNelQsUUFBWXVULEVBQU13RixHQUNwQi9ZLGFBQWU2SCxPQUFTN0gsRUFBSW9aLFFBQVUsSUFDeEMxYyxRQUFRQyxNQUFNcUQsRUFBSThULFdBQWEsSUFBTWlGLEVBQUk3RyxLQUV6Q20zQixFQUFXRSxrQkFBb0JwbkMsS0FBS0MsTUFBTXBDLEVBQUkwWixLQUVsRCxDQUFFLE1BQU9qZCxHQUNQQyxRQUFRQyxNQUFNRixFQUNoQixNQUdOOEcsS0FBSTJsQyxFQUFXenlCLEVBQU00QixHQUNyQjh3QixFQUEwQkssS0FBVS95QixFQUFNNEIsRUFBTTh3QixHQUV6QyxDQUNMRCxZQUNBQywwQkFDRCxHQUNBQyxRQUFRcEIsUUFBUSxDQUNqQmtCLFdBQVlyMkIsRUFBYzZjLG9CQUFvQixNQUFPK1osRUFBQUEsRUFBQUEsUUFBZ0J6ckMsT0FDckVtckMsd0JBQXlCdDJCLEVBQWNzdEIsWUFHekNqbkIsRUFBWXd3QixzQkFBc0IsR0FBSVYsRUFBWUUsVUFDcEQsQ0FBRSxNQUFNenNDLEdBQ05DLFFBQVFDLE1BQU1GLEVBQ2hCLElBQ0EsR0FDRCxJQUVVcXlCLHVCQUF5QnJZLEdBQVExTixJQUNmeS9CLEdBQWFuaUMsTUFBSyxFQUFHb1EsS0FBTWt6QixFQUFhNWdDLE9BQVE2Z0MsS0FDcEVBLElBQWtCN2dDLEdBQVU0Z0MsRUFBWWpsQyxhQUFlK1IsRUFBSy9SLGVBT3JFOGpDLEdBQWE5bUMsS0FBSyxDQUFFK1UsT0FBTTFOLFdBRTFCMC9CLEtBQW9CLEVBR2YsU0FBU29CLFlBQWFwekIsRUFBTTNPLEVBQVdDLEVBQVNyTixFQUFPcXBDLEdBQzVELE1BQU8sQ0FDTDNvQyxLQUFNcXJDLEdBQ05wckMsUUFBUSxDQUFFb2IsT0FBTS9iLFFBQU9vTixZQUFXQyxVQUFTZzhCLFNBRS9DLENBRU8sU0FBUytGLHNCQUF1Qi9HLEVBQVlyN0IsRUFBT2hOLEVBQU9xcEMsR0FDL0QsTUFBTyxDQUNMM29DLEtBQU1xckMsR0FDTnByQyxRQUFRLENBQUVvYixLQUFNc3NCLEVBQVlyN0IsUUFBT2hOLFFBQU9xcEMsU0FFOUMsQ0FFTyxNQUFNMkYsc0JBQXdCQSxDQUFDanpCLEVBQU0vYixLQUNuQyxDQUNMVSxLQUFNaXNDLEdBQ05oc0MsUUFBUyxDQUFFb2IsT0FBTS9iLFdBSVJxdkMsK0JBQWlDQSxLQUNyQyxDQUNMM3VDLEtBQU1pc0MsR0FDTmhzQyxRQUFTLENBQ1BvYixLQUFNLEdBQ04vYixPQUFPK3VDLEVBQUFBLEVBQUFBLFVBS0FPLGVBQWlCQSxDQUFFM3VDLEVBQVM0QixLQUNoQyxDQUNMN0IsS0FBTXVyQyxHQUNOdHJDLFFBQVEsQ0FDTjBuQyxXQUFZMW5DLEVBQ1o0QixZQUtPZ3RDLDBCQUE0QkEsQ0FBRWxILEVBQVlqN0IsRUFBV0MsRUFBU21pQyxLQUNsRSxDQUNMOXVDLEtBQU1zckMsR0FDTnJyQyxRQUFRLENBQ04wbkMsYUFDQWo3QixZQUNBQyxVQUNBbWlDLHVCQUtDLFNBQVNDLG9CQUFxQjl1QyxHQUNuQyxNQUFPLENBQ0xELEtBQU04ckMsR0FDTjdyQyxRQUFRLENBQUUwbkMsV0FBWTFuQyxHQUUxQixDQUVPLFNBQVMrdUMsb0JBQW9CM3pCLEVBQU0vYixHQUN4QyxNQUFPLENBQ0xVLEtBQU0rckMsR0FDTjlyQyxRQUFRLENBQUVvYixPQUFNL2IsUUFBT2QsSUFBSyxrQkFFaEMsQ0FFTyxTQUFTeXdDLG9CQUFvQjV6QixFQUFNL2IsR0FDeEMsTUFBTyxDQUNMVSxLQUFNK3JDLEdBQ045ckMsUUFBUSxDQUFFb2IsT0FBTS9iLFFBQU9kLElBQUssa0JBRWhDLENBRU8sTUFBTTB3QyxZQUFjQSxDQUFFN3pCLEVBQU05USxFQUFRM0YsS0FDbEMsQ0FDTDNFLFFBQVMsQ0FBRW9iLE9BQU05USxTQUFRM0YsT0FDekI1RSxLQUFNd3JDLEtBSUcyRCxXQUFhQSxDQUFFOXpCLEVBQU05USxFQUFRb1QsS0FDakMsQ0FDTDFkLFFBQVMsQ0FBRW9iLE9BQU05USxTQUFRb1QsT0FDekIzZCxLQUFNeXJDLEtBSUcyRCxrQkFBb0JBLENBQUUvekIsRUFBTTlRLEVBQVFvVCxLQUN4QyxDQUNMMWQsUUFBUyxDQUFFb2IsT0FBTTlRLFNBQVFvVCxPQUN6QjNkLEtBQU0wckMsS0FLRzJELFdBQWMxeEIsSUFDbEIsQ0FDTDFkLFFBQVMwZCxFQUNUM2QsS0FBTTJyQyxLQU1HMkQsZUFBa0IzeEIsR0FDN0IsRUFBRXZaLEtBQUkwWixjQUFhckcsZ0JBQWU1SCxhQUFZMkgsb0JBQzVDLElBQUksU0FBRXd1QixFQUFRLE9BQUV6N0IsRUFBTSxVQUFFK1EsR0FBY3FDLEdBQ2xDLG1CQUFFdkYsRUFBa0Isb0JBQUVDLEdBQXdCeEksSUFHOUM0MkIsRUFBS25yQixFQUFVMVksT0ErQm5CLEdBM0JJMFksR0FBYUEsRUFBVXpjLElBQUksZUFDN0J5YyxFQUFVemMsSUFBSSxjQUNYNkIsUUFBTzRMLEdBQVNBLElBQTBDLElBQWpDQSxFQUFNek4sSUFBSSxxQkFDbkNxSSxTQUFRb0YsSUFDUCxHQUFJbUwsRUFBY3l3Qiw2QkFBNkIsQ0FBQ2xDLEVBQVV6N0IsR0FBUytCLEVBQU16TixJQUFJLFFBQVN5TixFQUFNek4sSUFBSSxPQUFRLENBQ3RHOGUsRUFBSWtyQixXQUFhbHJCLEVBQUlrckIsWUFBYyxDQUFDLEVBQ3BDLE1BQU0wRyxFQUFhemlDLGFBQWFSLEVBQU9xUixFQUFJa3JCLGNBR3ZDMEcsR0FBZUEsR0FBa0MsSUFBcEJBLEVBQVdsbkMsUUFHMUNzVixFQUFJa3JCLFdBQVd2OEIsRUFBTXpOLElBQUksU0FBVyxHQUV4QyxLQUtOOGUsRUFBSTZ4QixXQUFheDNCLEtBQVNQLEVBQWNYLE9BQU94TixXQUU1Q205QixHQUFNQSxFQUFHbGxCLFlBQ1Y1RCxFQUFJNEQsWUFBY2tsQixFQUFHbGxCLFlBQ2JrbEIsR0FBTVQsR0FBWXo3QixJQUMxQm9ULEVBQUk0RCxZQUFjbmQsRUFBR3FyQyxLQUFLaEosRUFBSVQsRUFBVXo3QixJQUd2Q2tOLEVBQWM1VixTQUFVLENBQ3pCLE1BQU1vUCxFQUFZLEdBQUcrMEIsS0FBWXo3QixJQUVqQ29ULEVBQUkreEIsT0FBU2w0QixFQUFjTyxlQUFlOUcsSUFBY3VHLEVBQWNPLGlCQUV0RSxNQUFNNDNCLEVBQXFCbjRCLEVBQWNvNEIsZ0JBQWdCLENBQ3ZERixPQUFRL3hCLEVBQUkreEIsT0FDWnorQixjQUNDck8sT0FDR2l0QyxFQUFrQnI0QixFQUFjbzRCLGdCQUFnQixDQUFFRixPQUFRL3hCLEVBQUkreEIsU0FBVTlzQyxPQUU5RSthLEVBQUlpeUIsZ0JBQWtCbHhDLE9BQU8rRixLQUFLa3JDLEdBQW9CM3JDLE9BQVMyckMsRUFBcUJFLEVBRXBGbHlCLEVBQUl5ckIsbUJBQXFCNXhCLEVBQWM0eEIsbUJBQW1CcEQsRUFBVXo3QixHQUNwRW9ULEVBQUkwckIsb0JBQXNCN3hCLEVBQWM2eEIsb0JBQW9CckQsRUFBVXo3QixJQUFXLE1BQ2pGLE1BQU1vZ0MsRUFBY256QixFQUFjczRCLGlCQUFpQjlKLEVBQVV6N0IsR0FDdkR3bEMsRUFBOEJ2NEIsRUFBY3U0Qiw0QkFBNEIvSixFQUFVejdCLEdBRXJGb2dDLEdBQWVBLEVBQVkvbkMsS0FDNUIrYSxFQUFJZ3RCLFlBQWNBLEVBQ2Z2bkMsS0FDRWdFLEdBQ0tpbkMsRUFBQUEsSUFBYXZzQyxNQUFNc0YsR0FDZEEsRUFBSXZJLElBQUksU0FFVnVJLElBR1YxRyxRQUNDLENBQUNwQixFQUFPZCxLQUFTMEUsTUFBTUMsUUFBUTdELEdBQ1IsSUFBakJBLEVBQU0wRSxRQUNMa0osYUFBYTVOLEtBQ2Z5d0MsRUFBNEJseEMsSUFBSUwsS0FFdENvRSxPQUVIK2EsRUFBSWd0QixZQUFjQSxDQUV0QixDQUVBLElBQUlxRixFQUFnQnR4QyxPQUFPbUcsT0FBTyxDQUFDLEVBQUc4WSxHQUN0Q3F5QixFQUFnQjVyQyxFQUFHNnJDLGFBQWFELEdBRWhDbHlCLEVBQVlxeEIsV0FBV3h4QixFQUFJcW9CLFNBQVVyb0IsRUFBSXBULE9BQVF5bEMsR0FTakRyeUIsRUFBSXZGLG1CQVA0Qm8xQixNQUFPcnVDLElBQ3JDLElBQUkrd0MsUUFBdUI5M0IsRUFBbUJ4RixXQUFNLEVBQU0sQ0FBQ3pULElBQ3ZEZ3hDLEVBQXVCenhDLE9BQU9tRyxPQUFPLENBQUMsRUFBR3FyQyxHQUU3QyxPQURBcHlCLEVBQVlzeEIsa0JBQWtCenhCLEVBQUlxb0IsU0FBVXJvQixFQUFJcFQsT0FBUTRsQyxHQUNqREQsQ0FBYyxFQUl2QnZ5QixFQUFJdEYsb0JBQXNCQSxFQUcxQixNQUFNKzNCLEVBQVlobkMsS0FBS2luQyxNQUd2QixPQUFPanNDLEVBQUcrVyxRQUFRd0MsR0FDZnJGLE1BQU0xVCxJQUNMQSxFQUFJMHJDLFNBQVdsbkMsS0FBS2luQyxNQUFRRCxFQUM1QnR5QixFQUFZb3hCLFlBQVl2eEIsRUFBSXFvQixTQUFVcm9CLEVBQUlwVCxPQUFRM0YsRUFBSSxJQUV2RCtULE9BQ0M1WSxJQUVxQixvQkFBaEJBLEVBQUl5VixVQUNMelYsRUFBSTZLLEtBQU8sR0FDWDdLLEVBQUl5VixRQUFVLCtJQUVoQnNJLEVBQVlveEIsWUFBWXZ4QixFQUFJcW9CLFNBQVVyb0IsRUFBSXBULE9BQVEsQ0FDaERoSixPQUFPLEVBQU14QixPQUNiLEdBRUwsRUFLTW9iLGdCQUFVQSxFQUFJRSxPQUFNOVEsWUFBVzRJLEdBQVMsQ0FBQyxJQUFReEYsSUFDNUQsSUFBTXZKLElBQUcsTUFBQytULEdBQU0sY0FBRVYsRUFBYSxZQUFFcUcsR0FBZ0JuUSxFQUM3Q3NQLEVBQU94RixFQUFjNnRCLCtCQUErQjFpQyxPQUNwRGl6QixFQUFTcGUsRUFBY2doQixnQkFBZ0JwZCxFQUFNOVEsSUFDN0MsbUJBQUU2K0IsRUFBa0Isb0JBQUVDLEdBQXdCNXhCLEVBQWN3eEIsa0JBQWtCLENBQUM1dEIsRUFBTTlRLElBQVMzSCxPQUM5RitsQyxFQUFRLE9BQU9saEMsS0FBSzJoQyxHQUNwQlAsRUFBYXB4QixFQUFjaXhCLGdCQUFnQixDQUFDcnRCLEVBQU05USxHQUFTbytCLEdBQU8vbEMsT0FFdEUsT0FBT2tiLEVBQVl3eEIsZUFBZSxJQUM3Qm44QixFQUNIZ0YsUUFDQThFLE9BQ0Erb0IsU0FBVTNxQixFQUNWOVEsU0FBUXMrQixhQUNSTyxxQkFDQXZULFNBQ0F3VCx1QkFDQSxFQUdHLFNBQVNrSCxjQUFlbDFCLEVBQU05USxHQUNuQyxNQUFPLENBQ0x2SyxLQUFNNHJDLEdBQ04zckMsUUFBUSxDQUFFb2IsT0FBTTlRLFVBRXBCLENBRU8sU0FBU2ltQyxhQUFjbjFCLEVBQU05USxHQUNsQyxNQUFPLENBQ0x2SyxLQUFNNnJDLEdBQ041ckMsUUFBUSxDQUFFb2IsT0FBTTlRLFVBRXBCLENBRU8sU0FBUzZ0QixVQUFXdkMsRUFBUXhhLEVBQU05USxHQUN2QyxNQUFPLENBQ0x2SyxLQUFNa3NDLEdBQ05qc0MsUUFBUyxDQUFFNDFCLFNBQVF4YSxPQUFNOVEsVUFFN0IsQ0NwZkEsVUFFRSxDQUFDMmdDLElBQWMsQ0FBQ3o5QixFQUFPdEksSUFDYSxpQkFBbkJBLEVBQU9sRixRQUNsQndOLEVBQU10RixJQUFJLE9BQVFoRCxFQUFPbEYsU0FDekJ3TixFQUdOLENBQUMwOUIsSUFBYSxDQUFDMTlCLEVBQU90SSxJQUNic0ksRUFBTXRGLElBQUksTUFBT2hELEVBQU9sRixRQUFRLElBR3pDLENBQUNtckMsSUFBYyxDQUFDMzlCLEVBQU90SSxJQUNkc0ksRUFBTXRGLElBQUksT0FBUW5GLGNBQWNtQyxFQUFPbEYsVUFHaEQsQ0FBQytyQyxJQUFrQixDQUFDditCLEVBQU90SSxJQUNsQnNJLEVBQU1pTSxNQUFNLENBQUMsWUFBYTFXLGNBQWNtQyxFQUFPbEYsVUFHeEQsQ0FBQ2dzQyxJQUEwQixDQUFDeCtCLEVBQU90SSxLQUNqQyxNQUFNLE1BQUU3RixFQUFLLEtBQUUrYixHQUFTbFcsRUFBT2xGLFFBQy9CLE9BQU93TixFQUFNaU0sTUFBTSxDQUFDLHNCQUF1QjJCLEdBQU9yWSxjQUFjMUQsR0FBTyxFQUd6RSxDQUFDK3JDLElBQWUsQ0FBRTU5QixHQUFReE4sY0FDeEIsSUFBTW9iLEtBQU1zc0IsRUFBVSxVQUFFajdCLEVBQVMsUUFBRUMsRUFBTyxNQUFFTCxFQUFLLE1BQUVoTixFQUFLLE1BQUVxcEMsR0FBVTFvQyxFQUVoRWtvQyxFQUFXNzdCLEVBQVFELGtCQUFrQkMsR0FBUyxHQUFHSyxLQUFXRCxJQUVoRSxNQUFNK2pDLEVBQVc5SCxFQUFRLFlBQWMsUUFFdkMsT0FBT2w3QixFQUFNaU0sTUFDWCxDQUFDLE9BQVEsV0FBWWl1QixFQUFZLGFBQWNRLEVBQVVzSSxJQUN6RHZvQyxFQUFBQSxFQUFBQSxRQUFPNUksR0FDUixFQUdILENBQUNnc0MsSUFBK0IsQ0FBRTc5QixHQUFReE4sY0FDeEMsSUFBSSxXQUFFMG5DLEVBQVUsVUFBRWo3QixFQUFTLFFBQUVDLEVBQU8sa0JBQUVtaUMsR0FBc0I3dUMsRUFFNUQsSUFBSXlNLElBQWNDLEVBRWhCLE9BREFyTCxRQUFRcVYsS0FBSyx3RUFDTmxKLEVBR1QsTUFBTTA2QixFQUFXLEdBQUd4N0IsS0FBV0QsSUFFL0IsT0FBT2UsRUFBTWlNLE1BQ1gsQ0FBQyxPQUFRLFdBQVlpdUIsRUFBWSx1QkFBd0JRLEdBQ3pEMkcsRUFDRCxFQUdILENBQUN2RCxJQUFrQixDQUFFOTlCLEdBQVN4TixTQUFXMG5DLGFBQVk5bEMsY0FDbkQsTUFBTTRrQyxFQUFLbkIsR0FBNkI3M0IsR0FBT25MLE1BQU0sQ0FBQyxXQUFZcWxDLElBQzVENTZCLEVBQWMyN0IsZ0JBQWdCajdCLEVBQU9rNkIsR0FBWS9rQyxPQUV2RCxPQUFPNkssRUFBTWlqQyxTQUFTLENBQUMsT0FBUSxXQUFZL0ksRUFBWSxlQUFlei9CLEVBQUFBLEVBQUFBLFFBQU8sQ0FBQyxJQUFJeW9DLEdBQ3pFbEssRUFBRzVuQyxJQUFJLGNBQWN3YixFQUFBQSxFQUFBQSxTQUFRM1YsUUFBTyxDQUFDRSxFQUFLMEgsS0FDL0MsTUFBTWhOLEVBQVF3TixhQUFhUixFQUFPUyxHQUM1QjZqQyxFQUF1QjFJLDZCQUE2Qno2QixFQUFPazZCLEVBQVlyN0IsRUFBTXpOLElBQUksUUFBU3lOLEVBQU16TixJQUFJLE9BQ3BHdUIsRWpHbWdCZXl3QyxFQUFDdmtDLEVBQU9oTixHQUFTdUMsVUFBUyxFQUFPeUQsdUJBQXNCLEdBQVUsQ0FBQyxLQUU3RixJQUFJd3JDLEVBQWdCeGtDLEVBQU16TixJQUFJLGFBRzVCa0QsT0FBUWd2QyxFQUFZLDBCQUNwQi91QyxHQUNFTCxtQkFBbUIySyxFQUFPLENBQUV6SyxXQUVoQyxPQUFPdUQsc0JBQXNCOUYsRUFBT3l4QyxFQUFjRCxFQUFleHJDLEVBQXFCdEQsRUFBMEIsRWlHNWdCM0Y2dUMsQ0FBY3ZrQyxFQUFPaE4sRUFBTyxDQUN6Q2dHLG9CQUFxQnNyQyxFQUNyQi91QyxXQUVGLE9BQU8rQyxFQUFJOFUsTUFBTSxDQUFDck4sa0JBQWtCQyxHQUFRLFdBQVdwRSxFQUFBQSxFQUFBQSxRQUFPOUgsR0FBUSxHQUNyRXV3QyxJQUNILEVBRUosQ0FBQzdFLElBQXdCLENBQUVyK0IsR0FBU3hOLFNBQVkwbkMsaUJBQ3ZDbDZCLEVBQU1pakMsU0FBVSxDQUFFLE9BQVEsV0FBWS9JLEVBQVksZUFBZ0J6L0IsRUFBQUEsRUFBQUEsUUFBTyxLQUFLMmdDLEdBQzVFQSxFQUFXemxDLEtBQUlrSixHQUFTQSxFQUFNbkUsSUFBSSxVQUFVRCxFQUFBQSxFQUFBQSxRQUFPLFNBSTlELENBQUNzakMsSUFBZSxDQUFDLzlCLEdBQVN4TixTQUFXMkUsTUFBS3lXLE9BQU05USxjQUM5QyxJQUFJc1AsRUFFRkEsRUFER2pWLEVBQUlyRCxNQUNFN0MsT0FBT21HLE9BQU8sQ0FDckJ0RCxPQUFPLEVBQ1BxSixLQUFNaEcsRUFBSTdFLElBQUk2SyxLQUNkNEssUUFBUzVRLEVBQUk3RSxJQUFJeVYsUUFDakJ3N0IsV0FBWXBzQyxFQUFJN0UsSUFBSWl4QyxZQUNuQnBzQyxFQUFJN0UsSUFBSXdZLFVBRUYzVCxFQUlYaVYsRUFBT3hELFFBQVV3RCxFQUFPeEQsU0FBVyxDQUFDLEVBRXBDLElBQUk0NkIsRUFBV3hqQyxFQUFNaU0sTUFBTyxDQUFFLFlBQWEyQixFQUFNOVEsR0FBVXZILGNBQWM2VyxJQU16RSxPQUhJaFosRUFBSXF3QyxNQUFRcjNCLEVBQU9uUCxnQkFBZ0I3SixFQUFJcXdDLE9BQ3pDRCxFQUFXQSxFQUFTdjNCLE1BQU8sQ0FBRSxZQUFhMkIsRUFBTTlRLEVBQVEsUUFBVXNQLEVBQU9uUCxPQUVwRXVtQyxDQUFRLEVBR2pCLENBQUN4RixJQUFjLENBQUNoK0IsR0FBU3hOLFNBQVcwZCxNQUFLdEMsT0FBTTlRLGFBQ3RDa0QsRUFBTWlNLE1BQU8sQ0FBRSxXQUFZMkIsRUFBTTlRLEdBQVV2SCxjQUFjMmEsSUFHbEUsQ0FBQyt0QixJQUFzQixDQUFDaitCLEdBQVN4TixTQUFXMGQsTUFBS3RDLE9BQU05USxhQUM5Q2tELEVBQU1pTSxNQUFPLENBQUUsa0JBQW1CMkIsRUFBTTlRLEdBQVV2SCxjQUFjMmEsSUFHekUsQ0FBQ291QixJQUE4QixDQUFDdCtCLEdBQVN4TixTQUFXb2IsT0FBTS9iLFFBQU9kLFdBRS9ELElBQUkyeUMsRUFBZ0IsQ0FBQyxXQUFZOTFCLEdBQzdCKzFCLEVBQVcsQ0FBQyxPQUFRLFdBQVkvMUIsR0FFcEMsT0FDRzVOLEVBQU1uTCxNQUFNLENBQUMsVUFBVzZ1QyxLQUNyQjFqQyxFQUFNbkwsTUFBTSxDQUFDLGNBQWU2dUMsS0FDNUIxakMsRUFBTW5MLE1BQU0sQ0FBQyxzQkFBdUI2dUMsSUFNbkMxakMsRUFBTWlNLE1BQU0sSUFBSTAzQixFQUFVNXlDLElBQU0wSixFQUFBQSxFQUFBQSxRQUFPNUksSUFIckNtTyxDQUc0QyxFQUd2RCxDQUFDbStCLElBQWlCLENBQUNuK0IsR0FBU3hOLFNBQVdvYixPQUFNOVEsYUFDcENrRCxFQUFNNGpDLFNBQVUsQ0FBRSxZQUFhaDJCLEVBQU05USxJQUc5QyxDQUFDc2hDLElBQWdCLENBQUNwK0IsR0FBU3hOLFNBQVdvYixPQUFNOVEsYUFDbkNrRCxFQUFNNGpDLFNBQVUsQ0FBRSxXQUFZaDJCLEVBQU05USxJQUc3QyxDQUFDMmhDLElBQWEsQ0FBQ3orQixHQUFTeE4sU0FBVzQxQixTQUFReGEsT0FBTTlRLGFBQzFDOFEsR0FBUTlRLEVBQ0prRCxFQUFNaU0sTUFBTyxDQUFFLFNBQVUyQixFQUFNOVEsR0FBVXNyQixHQUc3Q3hhLEdBQVM5USxPQUFkLEVBQ1NrRCxFQUFNaU0sTUFBTyxDQUFFLFNBQVUsa0JBQW9CbWMsSUN2SzdDM08sd0JBQWFBLENBQUN4VSxHQUFNb0wsaUJBQWlCLElBQUlqTSxLQUNwRGEsS0FBT2IsR0FDUGlNLEVBQVl5dUIsZUFBZTE2QixFQUFLLEVBR3JCc1YsNEJBQWlCQSxDQUFDelUsR0FBTW9MLGlCQUFpQixJQUFJak0sS0FDeERhLEtBQU9iLEdBRVBpTSxFQUFZNndCLGlDQUdaLE1BQU85TCxHQUFRaHhCLEVBQ1R5L0IsRUFBWXp5QyxLQUFJZ2tDLEVBQU0sQ0FBQyxXQUFhLENBQUMsRUFDdEJua0MsT0FBTytGLEtBQUs2c0MsR0FFcEJwcUMsU0FBUWhGLElBQ25CLE1BQU1rRixFQUFNdkksS0FBSXl5QyxFQUFXLENBQUNwdkMsSUFFeEI0NkIsS0FBYzExQixJQUFRQSxFQUFJNHJCLE1BQzVCbFYsRUFBWTRWLHVCQUF1QixDQUFDLFFBQVN4eEIsR0FDL0MsSUFJRjRiLEVBQVk0Vix1QkFBdUIsQ0FBQyxhQUFjLG1CQUFtQixFQUkxRDRiLDRCQUFpQkEsQ0FBQzU4QixHQUFPb0wsaUJBQW1CSCxJQUN2REcsRUFBWXV4QixXQUFXMXhCLEdBQ2hCakwsRUFBSWlMLElBR0FpeEIsNEJBQWlCQSxDQUFDbDhCLEdBQU8rRSxtQkFBcUJrRyxHQUNsRGpMLEVBQUlpTCxFQUFLbEcsRUFBYzVWLFVDbEJoQyxhQVhtQjB2QyxLQUFBLENBQ2pCeGpDLGFBQWMsQ0FDWmtQLEtBQU0sQ0FDSnhMLFlBQWEsSUFBS0EsR0FDbEJsQixTQUFVLElBQUtBLElBQ2ZhLFFBQVMsSUFBS0EsR0FDZGEsVUFBVyxJQUFLQSxPQ2RoQixHQUErQnRVLFFBQVEsaUQsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEsbUQsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEscUQsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEsNEQsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEsOEJDQXZDLEdBQStCQSxRQUFRLDZCQ0F2QyxHQUErQkEsUUFBUSwwQixpQ0NBN0MsTUFBTSxHQUErQkEsUUFBUSxzQ0NBdkMsR0FBK0JBLFFBQVEsNkJDQWhDNmQsNEJBQVNBLENBQUM5SSxFQUFLL0UsSUFBVyxJQUFJa0UsS0FDekNhLEtBQU9iLEdBQ1AsTUFBTXZTLEVBQVFxTyxFQUFPa0MsYUFBYTJoQyxnQkFFbEM3akMsRUFBT3ZKLEdBQUcrVCxNQUFNcTVCLGdCQUFrQmx5QyxDQUFLLEVDTzFCLHlCQUFTLFFBQUVzTyxFQUFPLFdBQUVpQyxJQUNqQyxNQUFPLENBQ0x6TCxHQUFJLENBQ0YrVCxPQUFPczVCLEVBQUFBLEdBQUFBLFVBQVNDLEtBQU05akMsRUFBUStqQyxTQUFVL2pDLEVBQVFna0MsV0FDaEQzQixhQUFZLGdCQUNaOTBCLFFBQU8sV0FDUHl4QixTQUFTaUYsRUFBQUEsR0FBQUEsYUFBWSxDQUNuQkMsV0FBWSxDQUNWQyxLQUNBQyxLQUNBQyxLQUNBQyxRQUdKeEUsZUFBZ0JGLE1BQU8xdUMsRUFBS3VjLEVBQU04MkIsRUFBVSxDQUFDLEtBQzNDLE1BQU1DLEVBQWV2aUMsSUFDZndpQyxFQUFpQixDQUNyQnZGLG1CQUFvQnNGLEVBQWF0RixtQkFDakNDLGVBQWdCcUYsRUFBYXJGLGVBQzdCMzBCLG1CQUFvQmc2QixFQUFhaDZCLG1CQUNqQ0Msb0JBQXFCKzVCLEVBQWEvNUIsb0JBQ2xDeTVCLFdBQVksQ0FDVkMsS0FDQUMsS0FDQUMsS0FDQUMsT0FJSixPQUFPSSxFQUFBQSxHQUFBQSxvQkFBbUJELEVBQW5CQyxDQUFtQ3h6QyxFQUFLdWMsRUFBTTgyQixFQUFRLEVBRS9ESSxhQUFZLGdCQUNaOUMsS0FBSUEsR0FBQUEsTUFFTjFoQyxhQUFjLENBQ1pILFFBQVMsQ0FDUDZELFlBQWEsQ0FDWCtKLE9BQU1BLCtCQUtoQixDQ2xEZSxnQkFDYixNQUFPLENBQ0xwWCxHQUFJLENBQ0Y0RyxpQkFDQXNxQixhQUdOLENDVkEsTUFBTSxHQUErQjMzQixRQUFRLGEsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEsZUNBdkMsR0FBK0JBLFFBQVEsbUIsaUNDTzdDLE1BQU02MEMsV0FBY3p0QyxHQUFlMHRDLElBQ2pDLE1BQU0sR0FBRXJ1QyxHQUFPVyxJQUVmLE1BQU0ydEMsbUJBQW1CamxCLEVBQUFBLFVBQ3ZCcFIsTUFBQUEsR0FDRSxPQUFPcE0sSUFBQUEsY0FBQ3dpQyxFQUFnQm51QixLQUFBLEdBQUt2ZixJQUFpQnJILEtBQUtxZCxNQUFXcmQsS0FBS3N3QixTQUNyRSxFQUdGLE9BREEwa0IsV0FBV3BnQixZQUFjLGNBQWNsdUIsRUFBR3V1QyxlQUFlRixNQUNsREMsVUFBVSxFQUdiRSxTQUFXQSxDQUFDN3RDLEVBQVc4dEMsSUFBZ0JKLElBQzNDLE1BQU0sR0FBRXJ1QyxHQUFPVyxJQUVmLE1BQU0rdEMsaUJBQWlCcmxCLEVBQUFBLFVBQ3JCcFIsTUFBQUEsR0FDRSxPQUNFcE0sSUFBQUEsY0FBQzhpQyxHQUFBQSxTQUFRLENBQUMza0MsTUFBT3lrQyxHQUNmNWlDLElBQUFBLGNBQUN3aUMsRUFBZ0JudUIsS0FBQSxHQUFLNW1CLEtBQUtxZCxNQUFXcmQsS0FBS3N3QixVQUdqRCxFQUdGLE9BREE4a0IsU0FBU3hnQixZQUFjLFlBQVlsdUIsRUFBR3V1QyxlQUFlRixNQUM5Q0ssUUFBUSxFQUdYRSxZQUFjQSxDQUFDanVDLEVBQVcwdEMsRUFBa0JJLEtBT3pDamtDLEVBQUFBLEVBQUFBLFNBQ0xpa0MsRUFBYUQsU0FBUzd0QyxFQUFXOHRDLEdBQWNJLE1BQy9DQyxFQUFBQSxHQUFBQSxVQVJzQmgzQixDQUFDek8sRUFBTzBPLEtBQzlCLE1BQU1wQixFQUFRLElBQUlvQixLQUFhcFgsS0FDekJvdUMsRUFBd0JWLEVBQWlCenpDLFdBQVdrZCxpQkFBbUIsQ0FBQ3pPLElBQUssQ0FBTUEsV0FDekYsT0FBTzBsQyxFQUFzQjFsQyxFQUFPc04sRUFBTSxJQU0xQ3kzQixXQUFXenRDLEdBSE42SixDQUlMNmpDLEdBR0VXLFlBQWNBLENBQUNydUMsRUFBVzQ4QixFQUFTNW1CLEVBQU9zNEIsS0FDOUMsSUFBSyxNQUFNdDBDLEtBQVE0aUMsRUFBUyxDQUMxQixNQUFNdjlCLEVBQUt1OUIsRUFBUTVpQyxHQUVELG1CQUFQcUYsR0FDVEEsRUFBRzJXLEVBQU1oYyxHQUFPczBDLEVBQVN0MEMsR0FBT2dHLElBRXBDLEdBR1d1dUMsb0JBQXNCQSxDQUFDdnVDLEVBQVdrSyxFQUFVc2tDLElBQW9CLENBQUNDLEVBQWU3UixLQUMzRixNQUFNLEdBQUV2OUIsR0FBT1csSUFDVDB0QyxFQUFtQmMsRUFBZ0JDLEVBQWUsUUFFeEQsTUFBTUMsNEJBQTRCaG1CLEVBQUFBLFVBQ2hDbmdCLFdBQUFBLENBQVl5TixFQUFPaVQsR0FDakJDLE1BQU1sVCxFQUFPaVQsR0FDYm9sQixZQUFZcnVDLEVBQVc0OEIsRUFBUzVtQixFQUFPLENBQUMsRUFDMUMsQ0FFQXNULGdDQUFBQSxDQUFpQ0MsR0FDL0I4a0IsWUFBWXJ1QyxFQUFXNDhCLEVBQVNyVCxFQUFXNXdCLEtBQUtxZCxNQUNsRCxDQUVBc0IsTUFBQUEsR0FDRSxNQUFNcTNCLEVBQWF0M0IsS0FBSzFlLEtBQUtxZCxNQUFPNG1CLEVBQVVqakMsT0FBTytGLEtBQUtrOUIsR0FBVyxJQUNyRSxPQUFPMXhCLElBQUFBLGNBQUN3aUMsRUFBcUJpQixFQUMvQixFQUdGLE9BREFELG9CQUFvQm5oQixZQUFjLHVCQUF1Qmx1QixFQUFHdXVDLGVBQWVGLE1BQ3BFZ0IsbUJBQW1CLEVBR2ZwM0IsT0FBU0EsQ0FBQ3RYLEVBQVdrSyxFQUFVcU4sRUFBY3ZNLElBQW1CNGpDLElBQzNFLE1BQU1DLEVBQU10M0IsRUFBYXZYLEVBQVdrSyxFQUFVYyxFQUFsQ3VNLENBQWlELE1BQU8sU0FDOUQsV0FBRXUzQixHQUFlQyxLQUNWRCxFQUFXRixHQUVuQnQzQixPQUFPcE0sSUFBQUEsY0FBQzJqQyxFQUFHLE1BQUcsRUFHUnQzQixhQUFlQSxDQUFDdlgsRUFBV2tLLEVBQVVjLElBQWtCLENBQUN5akMsRUFBZXh6QixFQUFXeWYsRUFBUyxDQUFDLEtBRXZHLEdBQTZCLGlCQUFsQitULEVBQ1QsTUFBTSxJQUFJMWhDLFVBQVUsMkRBQTZEMGhDLEdBS25GLE1BQU0vZ0MsRUFBWTFDLEVBQWN5akMsR0FFaEMsT0FBSy9nQyxFQU9EdU4sRUFJYSxTQUFkQSxFQUNNZ3pCLFlBQVlqdUMsRUFBVzBOLEVBQVd4RCxLQUlwQytqQyxZQUFZanVDLEVBQVcwTixHQVJyQkEsR0FQRmd0QixFQUFPckcsY0FDVnIwQixJQUFZK2hCLElBQUluUSxLQUFLLDRCQUE2QjY4QixHQUU3QyxLQVkrQixFQ3BIN0JiLGVBQWtCRixHQUFxQkEsRUFBaUJuZ0IsYUFBZW1nQixFQUFpQjduQyxNQUFRLFlDaUM3RyxLQWpCbUJtcEMsRUFBRWhrQyxnQkFBZWQsV0FBVWxLLGdCQUU1QyxNQUFNd3VDLEdBWndCbnZDLEVBWWlCa1ksYUFBYXZYLEVBQVdrSyxFQUFVYyxHQVYxRXpMLEdBQVFGLEdBREV3NUIsSUFBSS9yQixJQUFTOUssS0FBS3FGLFVBQVV5RixNQURoQm1pQyxJQUFDNXZDLEVBYTlCLE1BQU02dkMsRUFSOEJDLENBQUM5dkMsR0FFOUJ1NUIsZUFBU3Y1QixHQURDdzVCLElBQUkvckIsSUFBU0EsSUFPQ3FpQyxDQUE4Qlosb0JBQW9CdnVDLEVBQVdrSyxFQUFVc2tDLElBRXRHLE1BQU8sQ0FDTHpsQyxZQUFhLENBQ1h3TyxhQUFjaTNCLEVBQ2RZLG9CQUFxQkYsRUFDckI1M0IsT0FBUUEsT0FBT3RYLEVBQVdrSyxFQUFVcU4sYUFBY3ZNLElBRXBEM0wsR0FBSSxDQUNGdXVDLGdCQUVILEVDTkgsWUFsQnlCeUIsRUFBR25rQyxRQUFPbEwsWUFBV2tLLFdBQVVjLG9CQUN0RCxNQUFNakMsRUFBYyxDQUFDLEVBQ2Z1bUMsRUFBb0JDLFNBQVNya0MsR0FBT3cxQixRQUFTLElBV25ELE9BVEk0TyxHQUFxQixJQUFNQSxFQUFvQixLQUNqRHZtQyxFQUFZdU8sT0NKZEEsRUFBQ3RYLEVBQVdrSyxFQUFVcU4sRUFBY3ZNLElBQW1CNGpDLElBQ3JELE1BQU1DLEVBQU10M0IsRUFBYXZYLEVBQVdrSyxFQUFVYyxFQUFsQ3VNLENBQWlELE1BQU8sUUFFcEV3M0IsS0FBQUEsT0FBZ0I3akMsSUFBQUEsY0FBQzJqQyxFQUFHLE1BQUtELEVBQVEsRURDWnQzQixDQUNuQnRYLEVBQ0FrSyxFQUNBcU4sYUFDQXZNLElBSUcsQ0FDTGpDLGNBQ0QsRUVkWSxTQUFTeW1DLGtCQUFrQnRtQyxHQUN4QyxJQUFJLEdBQUU3SixHQUFPNkosRUFFYixNQUFNbUQsRUFBVSxDQUNkb2pDLFNBQ0cxOUIsR0FDRCxFQUFHL0IsYUFBWTBDLGdCQUFlcUcsY0FBYWpPLGlCQUN6QyxJQUFJLE1BQUVzSSxHQUFVL1QsRUFDaEIsTUFBTXE3QixFQUFTNXZCLElBZWYsU0FBUzNLLEtBQUtOLEdBQ1osR0FBSUEsYUFBZTZILE9BQVM3SCxFQUFJb1osUUFBVSxJQVV4QyxPQVRBRixFQUFZRyxvQkFBb0IsVUFDaENsSixFQUFXalYsYUFDVHBCLE9BQU9tRyxPQUNMLElBQUk0SCxPQUFPN0gsRUFBSTRRLFNBQVc1USxFQUFJOFQsWUFBYyxJQUFNNUIsR0FDbEQsQ0FBRXhCLE9BQVEsaUJBSVQxUSxFQUFJb1osUUFBVXBaLGFBQWU2SCxPQVV0QyxTQUFTZ29DLDJCQUNQLElBQ0UsSUFBSTNmLEVBVUosR0FSSSxRQUFTLEVBQ1hBLEVBQVUsSUFBSUcsSUFBSW5lLElBR2xCZ2UsRUFBVWpaLFNBQVM2NEIsY0FBYyxLQUNqQzVmLEVBQVFJLEtBQU9wZSxHQUlNLFdBQXJCZ2UsRUFBUUUsVUFDa0IsV0FBMUJuMEIsRUFBSUMsU0FBU2swQixTQUNiLENBQ0EsTUFBTXp6QixFQUFRN0MsT0FBT21HLE9BQ25CLElBQUk0SCxNQUNGLHlFQUF5RXFvQixFQUFRRSwwRkFFbkYsQ0FBRTFmLE9BQVEsVUFHWixZQURBUCxFQUFXalYsYUFBYXlCLEVBRTFCLENBQ0EsR0FBSXV6QixFQUFRZ0IsU0FBV2oxQixFQUFJQyxTQUFTZzFCLE9BQVEsQ0FDMUMsTUFBTXYwQixFQUFRN0MsT0FBT21HLE9BQ25CLElBQUk0SCxNQUNGLHVEQUF1RHFvQixFQUFRZ0Isb0NBQW9DajFCLEVBQUlDLFNBQVNnMUIsbUZBRWxILENBQUV4Z0IsT0FBUSxVQUVaUCxFQUFXalYsYUFBYXlCLEVBQzFCLENBQ0YsQ0FBRSxNQUFPRixHQUNQLE1BQ0YsQ0FDRixDQS9DNkNvekMsSUFHM0MzMkIsRUFBWUcsb0JBQW9CLFdBQ2hDSCxFQUFZb0osV0FBV3RpQixFQUFJMFosTUFDdkI3RyxFQUFjWCxRQUFVQSxHQUMxQmdILEVBQVlJLFVBQVVwSCxFQUUxQixDQWhDQUEsRUFBTUEsR0FBT1csRUFBY1gsTUFDM0JnSCxFQUFZRyxvQkFBb0IsV0FDaENsSixFQUFXdFUsTUFBTSxDQUFFNlUsT0FBUSxVQUMzQjZDLEVBQU0sQ0FDSnJCLE1BQ0E2OUIsVUFBVSxFQUNWdjhCLG1CQUFvQnFuQixFQUFPcm5CLG9CQUFzQixDQUFFOVosR0FBTUEsR0FDekQrWixvQkFBcUJvbkIsRUFBT3BuQixxQkFBdUIsQ0FBRS9aLEdBQU1BLEdBQzNEczJDLFlBQWEsY0FDYnYrQixRQUFTLENBQ1B3K0IsT0FBUSwwQkFFVHY4QixLQUFLcFQsS0FBTUEsS0EyRGQsRUFHSitZLG9CQUFzQkQsSUFDcEIsSUFBSTgyQixFQUFRLENBQUMsS0FBTSxVQUFXLFNBQVUsVUFBVyxnQkFLbkQsT0FKK0IsSUFBM0JBLEVBQU16cEMsUUFBUTJTLElBQ2hCMWMsUUFBUUMsTUFBTSxVQUFVeWMsbUJBQXdCalgsS0FBS3FGLFVBQVUwb0MsTUFHMUQsQ0FDTDkwQyxLQUFNLDZCQUNOQyxRQUFTK2QsRUFDVixHQUlMLElBUUkvTCxFQUFZLENBQ2Q4aUMsZUFBZTk2QixFQUFBQSxHQUFBQSxpQkFDWnhNLEdBQ1FBLElBQVMzQixFQUFBQSxFQUFBQSxTQUVqQm1SLEdBQVNBLEVBQUtwZSxJQUFJLGtCQUFvQixRQUkzQyxNQUFPLENBQ0xrUCxhQUFjLENBQ1prUCxLQUFNLENBQUU3TCxVQUFTYixTQW5CTixDQUNieWtDLDJCQUE0QkEsQ0FBQ3ZuQyxFQUFPdEksSUFDRCxpQkFBbkJBLEVBQU9sRixRQUNqQndOLEVBQU10RixJQUFJLGdCQUFpQmhELEVBQU9sRixTQUNsQ3dOLEdBZXVCd0UsY0FHakMsQ0M3SEEsTUFBTSxHQUErQnRVLFFBQVEsMkMsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEsK0QsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEseUQsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEsd0QsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEseUQsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEseUQsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEseUQsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEsK0QsaUNDYTdDLE1BV0EsV0FYa0I2VixLQUNoQm9YLEtBQUFBLGlCQUFtQyxPQUFRaVksTUFDM0NqWSxLQUFBQSxpQkFBbUMsS0FBTTNuQixNQUN6QzJuQixLQUFBQSxpQkFBbUMsTUFBT2lOLE1BQzFDak4sS0FBQUEsaUJBQW1DLE9BQVF4TSxNQUMzQ3dNLEtBQUFBLGlCQUFtQyxPQUFRcXFCLE1BQzNDcnFCLEtBQUFBLGlCQUFtQyxPQUFRc3FCLE1BQzNDdHFCLEtBQUFBLGlCQUFtQyxhQUFjdXFCLE1BQ2pEdnFCLEtBQUFBLGlCQUFtQyxhQUFjd3FCLEtBQVcsRUNyQnhELEdBQStCejNDLFFBQVEsdUQsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEsc0QsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEseUQsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEsc0QsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEsMEQsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEsZ0UsaUNDQTdDLE1BQU0sR0FBK0JBLFFBQVEsc0QsaUNDV3RDLE1BQU0wM0MsR0FBUyxDQUNwQkMsTUFBSyxLQUNMQyxLQUFJLEtBQ0pDLFFBQU8sS0FDUEMsS0FBSSxLQUNKQyxTQUFRLEtBQ1IsaUJBQWtCQyxLQUNsQkMsS0FBSUEsTUFHT0MsR0FBZVAsS0NvQjVCLDZCQWxDMEIxcUIsRUFDeEJ1QyxXQUNBakosWUFBWSxHQUNaclUsYUFDQWltQyxxQkFBcUIsQ0FBQyxFQUN0QnpvQixXQUFXLE9BRVgsTUFBTTBvQixFQUFRbG1DLElBQWFtbUMsZ0JBQWdCRCxPQUNyQyxPQUFFVixFQUFNLGFBQUVRLEdBQWlCQyxFQUMzQjMyQixFQUFRazJCLElBQVNVLElBQVVGLEVBRWpDLE9BQ0U1bEMsSUFBQUEsY0FBQ2dtQyxLQUFzQixDQUNyQjlvQixTQUFVQSxFQUNWakosVUFBV0EsRUFDWC9FLE1BQU9BLEdBRU5rTyxFQUNzQixFQ3pCdkIsR0FBK0IxdkIsUUFBUSxvQixpQ0NTN0MsTUFpR0EseUJBakdzQnF5QixFQUNwQmttQixXQUFXLGVBQ1hoeUIsWUFDQWl5QixlQUNBNzVCLGVBQ0E4NUIsVUFDQWpwQixXQUNBRSxlQUVBLE1BQU0zQyxHQUFVQyxFQUFBQSxFQUFBQSxRQUFPLE1BQ2pCQyxFQUFvQnRPLEVBQWEscUJBQXFCLEdBTXREaVAscUNBQXdDbHFCLElBQzVDLE1BQU0sT0FBRWtWLEVBQU0sT0FBRWlWLEdBQVducUIsR0FFekJvcUIsYUFBY0MsRUFDZEMsYUFBY0MsRUFBYSxVQUMzQkMsR0FDRXRWLEVBRXdCbVYsRUFBZ0JFLElBQ0gsSUFBZEMsR0FBbUJMLEVBQVMsR0FGbENJLEVBQWdCQyxHQUdTSCxHQUFpQkYsRUFBUyxJQUd0RW5xQixFQUFFeXFCLGdCQUNKLEVBNEJGLE9BekJBQyxFQUFBQSxFQUFBQSxZQUFVLEtBQ1IsTUFBTUMsRUFBYTlvQixNQUFNK0csS0FBS3lnQixFQUFReEUsUUFBUThGLFlBQVl0ckIsUUFDdkR1ckIsS0FBV0EsRUFBS0MsVUFBWUQsRUFBS0UsVUFBVXhSLFNBQVMsZ0JBWXZELE9BUkFxUixFQUFXOWtCLFNBQVMra0IsR0FDbEJBLEVBQUtHLGlCQUNILGFBQ0FiLHFDQUNBLENBQUVjLFNBQVMsTUFJUixLQUVMTCxFQUFXOWtCLFNBQVMra0IsR0FDbEJBLEVBQUtLLG9CQUNILGFBQ0FmLHVDQUVILENBQ0YsR0FDQSxDQUFDOEIsRUFBVW5KLEVBQVdpSixJQUd2QmxkLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsaUJBQWlCbkUsSUFBSzJLLEdBQ2xDMHJCLEdBQ0NubUMsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxxQkFDYmpVLElBQUFBLGNBQUNpZCxHQUFBQSxnQkFBZSxDQUFDNU8sS0FBTStPLEdBQ3JCcGQsSUFBQUEsY0FBQSxpQkFLSmttQyxFQUNBbG1DLElBQUFBLGNBQUEsVUFBUWlVLFVBQVUsb0JBQW9Cd0ksUUF6RHJCMnBCLEtBQ3JCQyxLQUFPanBCLEVBQVU2b0IsRUFBUyxHQXdEeUMsWUFEaEQsS0FNakJqbUMsSUFBQUEsY0FBQzJhLEVBQWlCLENBQ2hCdUMsU0FBVUEsRUFDVmpKLFVBQVc2SSxLQUFXN0ksRUFBVyxjQUNqQ2tKLGdCQUFpQkEsRUFBR0MsV0FBVUMscUJBQzVCcmQsSUFBQUEsY0FBQ3FkLEVBQWUsQ0FBQ3BKLFVBQVdBLEdBQVltSixJQUd6Q0EsR0FFQyxFQzVFViwyQkFUd0JDLEVBQUdwSixZQUFZLEdBQUltSixjQUN6Q3BkLElBQUFBLGNBQUEsT0FBS2lVLFVBQVc2SSxLQUFXLGFBQWM3SSxJQUFhbUosR0NzQnhELGtDQXhCaUNrcEIsQ0FBQ0MsRUFBVTdvQyxJQUNoQmlkLEVBQUd3QyxrQkFBaUJDLGNBQWFoSixNQUN6RCxNQUFNb3lCLEVBQXFCOW9DLEVBQU9rQyxhQUFhbW1DLGdCQUFnQlUsVUFDekRwcEIsRUFBa0IzZixFQUFPMk8sYUFBYSxtQkFFNUMsT0FBS202QixHQUFpRCxtQkFBcEJycEIsRUFHN0JxcEIsRUFJRXhtQyxJQUFBQSxjQUFDdW1DLEVBQWFueUIsRUFBT2dKLEdBSG5CcGQsSUFBQUEsY0FBQ3FkLEVBQWUsS0FBRUQsR0FIbEJELEVBQWdCLENBQUVDLFdBQVVDLG1CQU1XLEVDUjlDcXBCLDBCQUE0QkEsS0FBQSxDQUNoQ25qQyxVQUFTLFdBQ1QxRixZQUFhLENBQ1hnb0MsbUJBQW9CLENBQUVULE9BQU0sR0FBRVEsYUFBWSxLQUU1Q2hvQyxXQUFZLENBQ1YrYyxrQkFBaUIsNkJBQ2pCb0YsY0FBYSx5QkFDYjFDLGdCQUFlQSw4QkFJYnNwQiwwQkFBNEJBLEtBQUEsQ0FDaENqakMsZUFBZ0IsQ0FDZGlYLGtCQUFtQjJyQixxQ0FTdkIsb0JBTGlDTSxJQUFNLENBQ3JDRiwwQkFDQUMsMkJDWkYsb0JBYmtCcGpDLEtBRWhCLE1BQU0sVUFBRXNqQyxFQUFTLFdBQUVDLEVBQVUsZ0JBQUVDLEVBQWUsV0FBRUMsR0FBZUMsQ0FBQUEsZ0JBQUFBLFNBQUFBLFdBQUFBLFlBQUFBLFdBQUFBLEVBQUFBLFdBQUFBLGlDQUUvRHIyQyxFQUFJczJDLFNBQVd0MkMsRUFBSXMyQyxVQUFZLENBQUMsRUFDaEN0MkMsRUFBSXMyQyxTQUFTQyxVQUFZLENBQ3ZCM1IsUUFBU3VSLEVBQ1RLLFlBQWFOLEVBQ2JPLFNBQVVSLEVBQ1ZTLGVBQWdCTixFQUNqQixFQ05ILFNBSnVCTyxLQUFBLENBQ3JCaGtDLFVBQVNBLHNCQ05MLEdBQStCN1YsUUFBUSxvQixpQ0NFdEMsTUFBTTg1QyxHQUFvQm4yQyxRQUFRQyxNQUk1Qm0yQyxrQkFBcUIzeUMsR0FBZTB0QyxJQUMvQyxNQUFNLGFBQUVuMkIsRUFBWSxHQUFFbFksR0FBT1csSUFDdkI0eUMsRUFBZ0JyN0IsRUFBYSxpQkFDN0JzN0IsRUFBYXh6QyxFQUFHdXVDLGVBQWVGLEdBRXJDLE1BQU1vRiwwQkFBMEJwcUIsRUFBQUEsVUFDOUJwUixNQUFBQSxHQUNFLE9BQ0VwTSxJQUFBQSxjQUFDMG5DLEVBQWEsQ0FBQ0MsV0FBWUEsRUFBWXQ3QixhQUFjQSxFQUFjbFksR0FBSUEsR0FDckU2TCxJQUFBQSxjQUFDd2lDLEVBQWdCbnVCLEtBQUEsR0FBSzVtQixLQUFLcWQsTUFBV3JkLEtBQUtzd0IsVUFHakQsRUFkcUI4cEIsSUFBQXJsQyxFQXlCdkIsT0FUQW9sQyxrQkFBa0J2bEIsWUFBYyxxQkFBcUJzbEIsTUFoQjlCbmxDLEVBaUJGZ2dDLEdBakJ5Qnp6QyxXQUFheVQsRUFBVXpULFVBQVUrNEMsbUJBc0I3RUYsa0JBQWtCNzRDLFVBQVVrZCxnQkFBa0J1MkIsRUFBaUJ6ekMsVUFBVWtkLGlCQUdwRTI3QixpQkFBaUIsRUNqQjFCLFNBVGlCRyxFQUFHcHRDLFVBQ2xCcUYsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxZQUFXLE1BQ3JCalUsSUFBQUEsY0FBQSxTQUFHLG9CQUE0QixNQUFUckYsRUFBZSxpQkFBbUJBLEVBQU0sdUJDQzlELE1BQU0rc0Msc0JBQXNCbHFCLEVBQUFBLFVBV2pDQyxvQkFBc0IsQ0FDcEJrcUIsV0FBWSxpQkFDWnQ3QixhQUFjQSxJQUFNMDdCLFNBQ3BCNXpDLEdBQUksQ0FDRnF6QyxrQkFBaUJBLElBRW5CcHFCLFNBQVUsTUFHWiwrQkFBTzRxQixDQUF5QjEyQyxHQUM5QixNQUFPLENBQUUyMkMsVUFBVSxFQUFNMzJDLFFBQzNCLENBRUErTCxXQUFBQSxJQUFldUUsR0FDYm9jLFNBQVNwYyxHQUNUblUsS0FBSytQLE1BQVEsQ0FBRXlxQyxVQUFVLEVBQU8zMkMsTUFBTyxLQUN6QyxDQUVBazJDLGlCQUFBQSxDQUFrQmwyQyxFQUFPNDJDLEdBQ3ZCejZDLEtBQUtxZCxNQUFNM1csR0FBR3F6QyxrQkFBa0JsMkMsRUFBTzQyQyxFQUN6QyxDQUVBOTdCLE1BQUFBLEdBQ0UsTUFBTSxhQUFFQyxFQUFZLFdBQUVzN0IsRUFBVSxTQUFFdnFCLEdBQWEzdkIsS0FBS3FkLE1BRXBELEdBQUlyZCxLQUFLK1AsTUFBTXlxQyxTQUFVLENBQ3ZCLE1BQU1FLEVBQW9COTdCLEVBQWEsWUFDdkMsT0FBT3JNLElBQUFBLGNBQUNtb0MsRUFBaUIsQ0FBQ3h0QyxLQUFNZ3RDLEdBQ2xDLENBRUEsT0FBT3ZxQixDQUNULEVBR0YsdUJDVkEsWUFuQ3lCZ3JCLEVBQUVDLGdCQUFnQixHQUFJQyxnQkFBZSxHQUFTLENBQUMsSUFBTSxFQUFHeHpDLGdCQUMvRSxNQWlCTXl6QyxFQUFzQkQsRUFBZUQsRUFBZ0IsQ0FoQnpELE1BQ0EsYUFDQSxzQkFDQSxnQkFDQSxtQkFDQSxtQkFDQSx3QkFDQSxrQkFDQSxhQUNBLHFCQUNBLGFBQ0EsWUFDQSxtQkFDQSxTQUNBLGtCQUVzRkEsR0FFbEYza0MsRUFBaUI4a0MsS0FBVUQsRUFBcUJ0MUMsTUFBTXMxQyxFQUFvQngwQyxRQUFROGdCLE1BRHBFNHpCLENBQUNsQyxHQUFZcHlDLFFBQVNBLEVBQUdzekMsa0JBQWtCbEIsTUFHL0QsTUFBTyxDQUNMcHlDLEdBQUksQ0FDRnF6QyxrQkFBaUIsR0FDakJDLGtCQUFtQkEsa0JBQWtCM3lDLElBRXZDOEksV0FBWSxDQUNWOHBDLGNBQWEsR0FDYkssU0FBUUEsVUFFVnJrQyxpQkFDRCxFQ2hDSCxNQUFNaWdDLFlBQVkzakMsSUFBQUEsVUFDaEIwb0MsU0FBQUEsR0FDRSxNQUFNLGFBQUVyOEIsRUFBWSxnQkFBRWtFLEdBQW9COWlCLEtBQUtxZCxNQUN6QzY5QixFQUFhcDRCLEVBQWdCMEYsVUFDN0J1SCxFQUFZblIsRUFBYXM4QixHQUFZLEdBRTNDLE9BQU9uckIsR0FFSCxLQUFNeGQsSUFBQUEsY0FBQSxVQUFJLDJCQUE4QjJvQyxFQUFXLE1BQ3pELENBRUF2OEIsTUFBQUEsR0FDRSxNQUFNdzhCLEVBQVNuN0MsS0FBS2k3QyxZQUVwQixPQUFPMW9DLElBQUFBLGNBQUM0b0MsRUFBTSxLQUNoQixFQVFGLGFDMUJlLE1BQU1DLDJCQUEyQjdvQyxJQUFBQSxVQUM5Q2hQLE1BQU9BLEtBQ0wsSUFBSSxZQUFFeVQsR0FBZ0JoWCxLQUFLcWQsTUFFM0JyRyxFQUFZSCxpQkFBZ0IsRUFBTSxFQUdwQzhILE1BQUFBLEdBQ0UsSUFBSSxjQUFFM0UsRUFBYSxZQUFFaEQsRUFBVyxhQUFFNEgsRUFBWSxhQUFFcXhCLEVBQVksY0FBRWwyQixFQUFlclQsSUFBSSxJQUFFeW9DLEVBQU0sQ0FBQyxJQUFRbnZDLEtBQUtxZCxNQUNuR1osRUFBY3pDLEVBQWNzQyxtQkFDaEMsTUFBTSsrQixFQUFRejhCLEVBQWEsU0FDckJnSixFQUFZaEosRUFBYSxhQUUvQixPQUNFck0sSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxhQUNialUsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxnQkFDZmpVLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsWUFDYmpVLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsbUJBQ2JqVSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLGtCQUNialUsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxtQkFDYmpVLElBQUFBLGNBQUEsVUFBSSw0QkFDSkEsSUFBQUEsY0FBQSxVQUFRalEsS0FBSyxTQUFTa2tCLFVBQVUsY0FBY3dJLFFBQVVodkIsS0FBS3VELE9BQzNEZ1AsSUFBQUEsY0FBQ3FWLEVBQVMsUUFHZHJWLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsb0JBR1gvSixFQUFZSyxXQUFXcFgsS0FBSSxDQUFFN0UsRUFBWUMsSUFDaEN5UixJQUFBQSxjQUFDOG9DLEVBQUssQ0FBQ3Y2QyxJQUFNQSxFQUNOcXVDLElBQUtBLEVBQ0wxeUIsWUFBYzViLEVBQ2QrZCxhQUFlQSxFQUNmcXhCLGFBQWVBLEVBQ2ZqMkIsY0FBZ0JBLEVBQ2hCaEQsWUFBY0EsRUFDZCtDLGNBQWdCQSxVQVNoRCxFQzdDYSxNQUFNdWhDLHFCQUFxQi9vQyxJQUFBQSxVQVF4Q29NLE1BQUFBLEdBQ0UsSUFBSSxhQUFFbkIsRUFBWSxVQUFFKzlCLEVBQVMsUUFBRXZzQixFQUFPLGFBQUVwUSxHQUFpQjVlLEtBQUtxZCxNQUc5RCxNQUFNKzlCLEVBQXFCeDhCLEVBQWEsc0JBQXNCLEdBQ3hETCxFQUFlSyxFQUFhLGdCQUFnQixHQUM1Q0UsRUFBaUJGLEVBQWEsa0JBQWtCLEdBRXRELE9BQ0VyTSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLGdCQUNialUsSUFBQUEsY0FBQSxVQUFRaVUsVUFBV2hKLEVBQWUsdUJBQXlCLHlCQUEwQndSLFFBQVNBLEdBQzVGemMsSUFBQUEsY0FBQSxZQUFNLGFBQ0xpTCxFQUFlakwsSUFBQUEsY0FBQ2dNLEVBQVksTUFBTWhNLElBQUFBLGNBQUN1TSxFQUFjLE9BRXBEeThCLEdBQWFocEMsSUFBQUEsY0FBQzZvQyxFQUFrQixNQUd0QyxFQ3pCYSxNQUFNSSw4QkFBOEJqcEMsSUFBQUEsVUFVakRvTSxNQUFBQSxHQUNFLE1BQU0sWUFBRTNILEVBQVcsY0FBRWdELEVBQWEsY0FBRUQsRUFBYSxhQUFFNkUsR0FBZ0I1ZSxLQUFLcWQsTUFFbEVYLEVBQXNCM0MsRUFBYzJDLHNCQUNwQysrQixFQUEwQnpoQyxFQUFjd0MseUJBRXhDOCtCLEVBQWUxOEIsRUFBYSxnQkFFbEMsT0FBT2xDLEVBQ0xuSyxJQUFBQSxjQUFDK29DLEVBQVksQ0FDWHRzQixRQUFTQSxJQUFNaFksRUFBWUgsZ0JBQWdCNGtDLEdBQzNDaitCLGVBQWdCeEQsRUFBY3lCLGFBQWE5USxLQUMzQzR3QyxZQUFhdmhDLEVBQWNzQyxtQkFDM0JzQyxhQUFjQSxJQUVkLElBQ04sRUMxQmEsTUFBTTg4Qiw4QkFBOEJucEMsSUFBQUEsVUFPakR5YyxRQUFVcnJCLElBQ1JBLEVBQUVnNEMsa0JBQ0YsSUFBSSxRQUFFM3NCLEdBQVlodkIsS0FBS3FkLE1BRXBCMlIsR0FDREEsR0FDRixFQUdGclEsTUFBQUEsR0FDRSxJQUFJLGFBQUVuQixFQUFZLGFBQUVvQixHQUFpQjVlLEtBQUtxZCxNQUUxQyxNQUFNOEIsRUFBd0JQLEVBQWEseUJBQXlCLEdBQzlEUSxFQUEwQlIsRUFBYSwyQkFBMkIsR0FFeEUsT0FDRXJNLElBQUFBLGNBQUEsVUFBUWlVLFVBQVUscUJBQ2hCLGFBQVloSixFQUFlLDhCQUFnQyxnQ0FDM0R3UixRQUFTaHZCLEtBQUtndkIsU0FDYnhSLEVBQWVqTCxJQUFBQSxjQUFDNE0sRUFBcUIsQ0FBQ3FILFVBQVUsV0FBY2pVLElBQUFBLGNBQUM2TSxFQUF1QixDQUFDb0gsVUFBVSxhQUl4RyxFQzdCYSxNQUFNNjBCLGNBQWM5b0MsSUFBQUEsVUFVakMzQyxXQUFBQSxDQUFZeU4sRUFBT2lULEdBQ2pCQyxNQUFNbFQsRUFBT2lULEdBRWJ0d0IsS0FBSytQLE1BQVEsQ0FBQyxDQUNoQixDQUVBNnJDLGFBQWV0a0MsSUFDYixJQUFJLEtBQUVwSyxHQUFTb0ssRUFFZnRYLEtBQUs2d0IsU0FBUyxDQUFFLENBQUMzakIsR0FBT29LLEdBQU8sRUFHakN1a0MsV0FBYWw0QyxJQUNYQSxFQUFFeXFCLGlCQUVGLElBQUksWUFBRXBYLEdBQWdCaFgsS0FBS3FkLE1BQzNCckcsRUFBWUQsMkJBQTJCL1csS0FBSytQLE1BQU0sRUFHcEQrckMsWUFBY240QyxJQUNaQSxFQUFFeXFCLGlCQUVGLElBQUksWUFBRXBYLEVBQVcsWUFBRXlGLEdBQWdCemMsS0FBS3FkLE1BQ3BDMCtCLEVBQVF0L0IsRUFBWS9XLEtBQUssQ0FBQ2dFLEVBQUs1SSxJQUMxQkEsSUFDTnFLLFVBRUhuTCxLQUFLNndCLFNBQVNrckIsRUFBTS8wQyxRQUFPLENBQUNtcEMsRUFBTTc0QixLQUNoQzY0QixFQUFLNzRCLEdBQVEsR0FDTjY0QixJQUNOLENBQUMsSUFFSm41QixFQUFZRyx3QkFBd0I0a0MsRUFBTSxFQUc1Q3g0QyxNQUFRSSxJQUNOQSxFQUFFeXFCLGlCQUNGLElBQUksWUFBRXBYLEdBQWdCaFgsS0FBS3FkLE1BRTNCckcsRUFBWUgsaUJBQWdCLEVBQU0sRUFHcEM4SCxNQUFBQSxHQUNFLElBQUksWUFBRWxDLEVBQVcsYUFBRW1DLEVBQVksY0FBRTVFLEVBQWEsYUFBRWkyQixHQUFpQmp3QyxLQUFLcWQsTUFDdEUsTUFBTTIrQixFQUFXcDlCLEVBQWEsWUFDeEJxOUIsRUFBU3I5QixFQUFhLFVBQVUsR0FDaENvZixFQUFTcGYsRUFBYSxVQUU1QixJQUFJbkQsRUFBYXpCLEVBQWN5QixhQUUzQnlnQyxFQUFpQnovQixFQUFZelosUUFBUSxDQUFDbkMsRUFBWUMsTUFDM0MyYSxFQUFXdGEsSUFBSUwsS0FHdEJxN0MsRUFBc0IxL0IsRUFBWXpaLFFBQVFxQixHQUFpQyxXQUF2QkEsRUFBT2xELElBQUksVUFDL0RpN0MsRUFBbUIzL0IsRUFBWXpaLFFBQVFxQixHQUFpQyxXQUF2QkEsRUFBT2xELElBQUksVUFFaEUsT0FDRW9SLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsb0JBRVQyMUIsRUFBb0J4eEMsTUFBUTRILElBQUFBLGNBQUEsUUFBTThwQyxTQUFXcjhDLEtBQUs2N0MsWUFFaERNLEVBQW9CejJDLEtBQUssQ0FBQ3JCLEVBQVE2SSxJQUN6QnFGLElBQUFBLGNBQUN5cEMsRUFBUSxDQUNkbDdDLElBQUtvTSxFQUNMN0ksT0FBUUEsRUFDUjZJLEtBQU1BLEVBQ04wUixhQUFjQSxFQUNkZzlCLGFBQWM1N0MsS0FBSzQ3QyxhQUNuQm5nQyxXQUFZQSxFQUNadzBCLGFBQWNBLEVBQ2RqMkIsY0FBZUEsTUFFaEI3TyxVQUVMb0gsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxvQkFFWDIxQixFQUFvQnh4QyxPQUFTdXhDLEVBQWV2eEMsS0FBTzRILElBQUFBLGNBQUN5ckIsRUFBTSxDQUFDeFgsVUFBVSxxQkFBcUJ3SSxRQUFVaHZCLEtBQUs4N0MsWUFBYyxhQUFXLHdCQUF1QixVQUN6SnZwQyxJQUFBQSxjQUFDeXJCLEVBQU0sQ0FBQzE3QixLQUFLLFNBQVNra0IsVUFBVSwrQkFBK0IsYUFBVyxxQkFBb0IsYUFFaEdqVSxJQUFBQSxjQUFDeXJCLEVBQU0sQ0FBQ3hYLFVBQVUsOEJBQThCd0ksUUFBVWh2QixLQUFLdUQsT0FBUSxXQU0zRTY0QyxHQUFvQkEsRUFBaUJ6eEMsS0FBTzRILElBQUFBLGNBQUEsV0FDNUNBLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsYUFDYmpVLElBQUFBLGNBQUEsU0FBRyxrSkFDSEEsSUFBQUEsY0FBQSxTQUFHLDBGQUdEa0ssRUFBWXpaLFFBQVFxQixHQUFpQyxXQUF2QkEsRUFBT2xELElBQUksVUFDdEN1RSxLQUFLLENBQUNyQixFQUFRNkksSUFDTHFGLElBQUFBLGNBQUEsT0FBS3pSLElBQU1vTSxHQUNqQnFGLElBQUFBLGNBQUMwcEMsRUFBTSxDQUFDeGdDLFdBQWFBLEVBQ2JwWCxPQUFTQSxFQUNUNkksS0FBT0EsT0FHakIvQixXQUVDLEtBS2pCLEVDckhhLE1BQU1rd0Msd0JBQWM5b0MsSUFBQUEsVUFXakNvTSxNQUFBQSxHQUNFLElBQUksT0FDRnRhLEVBQU0sS0FDTjZJLEVBQUksYUFDSjBSLEVBQVksYUFDWmc5QixFQUFZLFdBQ1puZ0MsRUFBVSxhQUNWdzBCLEVBQVksY0FDWmoyQixHQUNFaGEsS0FBS3FkLE1BQ1QsTUFBTWkvQixFQUFhMTlCLEVBQWEsY0FDMUIyOUIsRUFBWTM5QixFQUFhLGFBRS9CLElBQUk0OUIsRUFFSixNQUFNbDZDLEVBQU8rQixFQUFPbEQsSUFBSSxRQUV4QixPQUFPbUIsR0FDTCxJQUFLLFNBQVVrNkMsRUFBU2pxQyxJQUFBQSxjQUFDK3BDLEVBQVUsQ0FBQ3g3QyxJQUFNb00sRUFDUjdJLE9BQVNBLEVBQ1Q2SSxLQUFPQSxFQUNQK2lDLGFBQWVBLEVBQ2Z4MEIsV0FBYUEsRUFDYm1ELGFBQWVBLEVBQ2ZnYyxTQUFXZ2hCLEVBQ1g1aEMsY0FBa0JBLElBQ2xELE1BQ0YsSUFBSyxRQUFTd2lDLEVBQVNqcUMsSUFBQUEsY0FBQ2dxQyxFQUFTLENBQUN6N0MsSUFBTW9NLEVBQ1I3SSxPQUFTQSxFQUNUNkksS0FBT0EsRUFDUCtpQyxhQUFlQSxFQUNmeDBCLFdBQWFBLEVBQ2JtRCxhQUFlQSxFQUNmZ2MsU0FBV2doQixFQUNYNWhDLGNBQWtCQSxJQUNoRCxNQUNGLFFBQVN3aUMsRUFBU2pxQyxJQUFBQSxjQUFBLE9BQUt6UixJQUFNb00sR0FBTyxvQ0FBbUM1SyxHQUd6RSxPQUFRaVEsSUFBQUEsY0FBQSxPQUFLelIsSUFBSyxHQUFHb00sVUFDakJzdkMsRUFFTixFQ3REYSxNQUFNQyxrQkFBa0JscUMsSUFBQUEsVUFNckNvTSxNQUFBQSxHQUNFLElBQUksTUFBRTlhLEdBQVU3RCxLQUFLcWQsTUFFakJ4RixFQUFRaFUsRUFBTTFDLElBQUksU0FDbEIyVyxFQUFValUsRUFBTTFDLElBQUksV0FDcEJ5VyxFQUFTL1QsRUFBTTFDLElBQUksVUFFdkIsT0FDRW9SLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsVUFDYmpVLElBQUFBLGNBQUEsU0FBS3FGLEVBQVEsSUFBR0MsR0FDaEJ0RixJQUFBQSxjQUFBLFlBQVF1RixHQUdkLEVDbkJhLE1BQU13a0MsbUJBQW1CL3BDLElBQUFBLFVBV3RDM0MsV0FBQUEsQ0FBWXlOLEVBQU9pVCxHQUNqQkMsTUFBTWxULEVBQU9pVCxHQUNiLElBQUksS0FBRXBqQixFQUFJLE9BQUU3SSxHQUFXckUsS0FBS3FkLE1BQ3hCemIsRUFBUTVCLEtBQUswOEMsV0FFakIxOEMsS0FBSytQLE1BQVEsQ0FDWDdDLEtBQU1BLEVBQ043SSxPQUFRQSxFQUNSekMsTUFBT0EsRUFFWCxDQUVBODZDLFFBQUFBLEdBQ0UsSUFBSSxLQUFFeHZDLEVBQUksV0FBRXVPLEdBQWV6YixLQUFLcWQsTUFFaEMsT0FBTzVCLEdBQWNBLEVBQVc3VyxNQUFNLENBQUNzSSxFQUFNLFNBQy9DLENBRUEwdEIsU0FBV2ozQixJQUNULElBQUksU0FBRWkzQixHQUFhNTZCLEtBQUtxZCxNQUNwQnpiLEVBQVErQixFQUFFa1YsT0FBT2pYLE1BQ2pCMnhDLEVBQVd2eUMsT0FBT21HLE9BQU8sQ0FBQyxFQUFHbkgsS0FBSytQLE1BQU8sQ0FBRW5PLE1BQU9BLElBRXRENUIsS0FBSzZ3QixTQUFTMGlCLEdBQ2QzWSxFQUFTMlksRUFBUyxFQUdwQjUwQixNQUFBQSxHQUNFLElBQUksT0FBRXRhLEVBQU0sYUFBRXVhLEVBQVksYUFBRXF4QixFQUFZLEtBQUUvaUMsRUFBSSxjQUFFOE0sR0FBa0JoYSxLQUFLcWQsTUFDdkUsTUFBTWdmLEVBQVF6ZCxFQUFhLFNBQ3JCKzlCLEVBQU0vOUIsRUFBYSxPQUNuQmcrQixFQUFNaCtCLEVBQWEsT0FDbkI2OUIsRUFBWTc5QixFQUFhLGFBQ3pCd2EsRUFBV3hhLEVBQWEsWUFBWSxHQUNwQzZYLEVBQWE3WCxFQUFhLGNBQWMsR0FDeENqQixFQUFPM0QsRUFBYzRDLGVBQWUxUCxHQUMxQyxJQUFJdEwsRUFBUTVCLEtBQUswOEMsV0FDYmg2QyxFQUFTdXRDLEVBQWF2cUIsWUFBWTFpQixRQUFRWCxHQUFPQSxFQUFJbEIsSUFBSSxZQUFjK0wsSUFFM0UsT0FDRXFGLElBQUFBLGNBQUEsV0FDRUEsSUFBQUEsY0FBQSxVQUNFQSxJQUFBQSxjQUFBLFlBQVFyRixHQUFRN0ksRUFBT2xELElBQUksU0FBZ0IsWUFDM0NvUixJQUFBQSxjQUFDa2tCLEVBQVUsQ0FBQzlZLEtBQU1BLEtBRWxCL2IsR0FBUzJRLElBQUFBLGNBQUEsVUFBSSxjQUNmQSxJQUFBQSxjQUFDb3FDLEVBQUcsS0FDRnBxQyxJQUFBQSxjQUFDNm1CLEVBQVEsQ0FBQ3hoQixPQUFTdlQsRUFBT2xELElBQUksa0JBRWhDb1IsSUFBQUEsY0FBQ29xQyxFQUFHLEtBQ0ZwcUMsSUFBQUEsY0FBQSxTQUFHLFNBQU1BLElBQUFBLGNBQUEsWUFBUWxPLEVBQU9sRCxJQUFJLFdBRTlCb1IsSUFBQUEsY0FBQ29xQyxFQUFHLEtBQ0ZwcUMsSUFBQUEsY0FBQSxTQUFHLE9BQUlBLElBQUFBLGNBQUEsWUFBUWxPLEVBQU9sRCxJQUFJLFNBRTVCb1IsSUFBQUEsY0FBQ29xQyxFQUFHLEtBQ0ZwcUMsSUFBQUEsY0FBQSxTQUFPc29CLFFBQVEsaUJBQWdCLFVBRTdCajVCLEVBQVEyUSxJQUFBQSxjQUFBLFlBQU0sWUFDTkEsSUFBQUEsY0FBQ3FxQyxFQUFHLEtBQ0ZycUMsSUFBQUEsY0FBQzhwQixFQUFLLENBQ0ovc0IsR0FBRyxnQkFDSGhOLEtBQUssT0FDTHM0QixTQUFXNTZCLEtBQUs0NkIsU0FDaEJpaUIsV0FBUyxNQU12Qm42QyxFQUFPb2EsV0FBV3BYLEtBQUssQ0FBQzdCLEVBQU8vQyxJQUN0QnlSLElBQUFBLGNBQUNrcUMsRUFBUyxDQUFDNTRDLE1BQVFBLEVBQ1IvQyxJQUFNQSxNQUtsQyxFQ3ZGYSxNQUFNeTdDLGtCQUFrQmhxQyxJQUFBQSxVQVdyQzNDLFdBQUFBLENBQVl5TixFQUFPaVQsR0FDakJDLE1BQU1sVCxFQUFPaVQsR0FDYixJQUFJLE9BQUVqc0IsRUFBTSxLQUFFNkksR0FBU2xOLEtBQUtxZCxNQUd4Qm5GLEVBRFFsWSxLQUFLMDhDLFdBQ0l4a0MsU0FFckJsWSxLQUFLK1AsTUFBUSxDQUNYN0MsS0FBTUEsRUFDTjdJLE9BQVFBLEVBQ1J6QyxNQUFRc1csRUFBZ0IsQ0FDdEJBLFNBQVVBLEdBRE8sQ0FBQyxFQUl4QixDQUVBd2tDLFFBQUFBLEdBQ0UsSUFBSSxXQUFFamhDLEVBQVUsS0FBRXZPLEdBQVNsTixLQUFLcWQsTUFFaEMsT0FBTzVCLEdBQWNBLEVBQVc3VyxNQUFNLENBQUNzSSxFQUFNLFdBQWEsQ0FBQyxDQUM3RCxDQUVBMHRCLFNBQVdqM0IsSUFDVCxJQUFJLFNBQUVpM0IsR0FBYTU2QixLQUFLcWQsT0FDcEIsTUFBRXpiLEVBQUssS0FBRXNMLEdBQVN2SixFQUFFa1YsT0FFcEJta0IsRUFBV2g5QixLQUFLK1AsTUFBTW5PLE1BQzFCbzdCLEVBQVM5dkIsR0FBUXRMLEVBRWpCNUIsS0FBSzZ3QixTQUFTLENBQUVqdkIsTUFBT283QixJQUV2QnBDLEVBQVM1NkIsS0FBSytQLE1BQU0sRUFHdEI0TyxNQUFBQSxHQUNFLElBQUksT0FBRXRhLEVBQU0sYUFBRXVhLEVBQVksS0FBRTFSLEVBQUksYUFBRStpQyxFQUFZLGNBQUVqMkIsR0FBa0JoYSxLQUFLcWQsTUFDdkUsTUFBTWdmLEVBQVF6ZCxFQUFhLFNBQ3JCKzlCLEVBQU0vOUIsRUFBYSxPQUNuQmcrQixFQUFNaCtCLEVBQWEsT0FDbkI2OUIsRUFBWTc5QixFQUFhLGFBQ3pCNlgsRUFBYTdYLEVBQWEsY0FBYyxHQUN4Q3dhLEVBQVd4YSxFQUFhLFlBQVksR0FDcENqQixFQUFPM0QsRUFBYzRDLGVBQWUxUCxHQUMxQyxJQUFJZ0wsRUFBV2xZLEtBQUswOEMsV0FBV3hrQyxTQUMzQnhWLEVBQVN1dEMsRUFBYXZxQixZQUFZMWlCLFFBQVFYLEdBQU9BLEVBQUlsQixJQUFJLFlBQWMrTCxJQUUzRSxPQUNFcUYsSUFBQUEsY0FBQSxXQUNFQSxJQUFBQSxjQUFBLFVBQUksc0JBQW1CQSxJQUFBQSxjQUFDa2tCLEVBQVUsQ0FBQzlZLEtBQU1BLEtBQ3ZDekYsR0FBWTNGLElBQUFBLGNBQUEsVUFBSSxjQUNsQkEsSUFBQUEsY0FBQ29xQyxFQUFHLEtBQ0ZwcUMsSUFBQUEsY0FBQzZtQixFQUFRLENBQUN4aEIsT0FBU3ZULEVBQU9sRCxJQUFJLGtCQUVoQ29SLElBQUFBLGNBQUNvcUMsRUFBRyxLQUNGcHFDLElBQUFBLGNBQUEsU0FBT3NvQixRQUFRLGlCQUFnQixhQUU3QjNpQixFQUFXM0YsSUFBQUEsY0FBQSxZQUFNLElBQUcyRixFQUFVLEtBQ25CM0YsSUFBQUEsY0FBQ3FxQyxFQUFHLEtBQ0RycUMsSUFBQUEsY0FBQzhwQixFQUFLLENBQ0ovc0IsR0FBRyxnQkFDSGhOLEtBQUssT0FDTHd5QixTQUFTLFdBQ1Q1bkIsS0FBSyxXQUNMMHRCLFNBQVc1NkIsS0FBSzQ2QixTQUNoQmlpQixXQUFTLE1BSzdCdHFDLElBQUFBLGNBQUNvcUMsRUFBRyxLQUNGcHFDLElBQUFBLGNBQUEsU0FBT3NvQixRQUFRLGlCQUFnQixhQUUzQjNpQixFQUFXM0YsSUFBQUEsY0FBQSxZQUFNLFlBQ05BLElBQUFBLGNBQUNxcUMsRUFBRyxLQUNEcnFDLElBQUFBLGNBQUM4cEIsRUFBSyxDQUNKL3NCLEdBQUcsZ0JBQ0h3dEMsYUFBYSxlQUNiNXZDLEtBQUssV0FDTDVLLEtBQUssV0FDTHM0QixTQUFXNTZCLEtBQUs0NkIsYUFNcENsNEIsRUFBT29hLFdBQVdwWCxLQUFLLENBQUM3QixFQUFPL0MsSUFDdEJ5UixJQUFBQSxjQUFDa3FDLEVBQVMsQ0FBQzU0QyxNQUFRQSxFQUNSL0MsSUFBTUEsTUFLbEMsRUNqR2EsU0FBU2k4QyxRQUFRMS9CLEdBQzlCLE1BQU0sUUFBRThULEVBQU8sVUFBRTZyQixFQUFTLGFBQUVwK0IsR0FBaUJ2QixFQUV2QytiLEVBQVd4YSxFQUFhLFlBQVksR0FDcEMwVCxFQUFnQjFULEVBQWEsaUJBQWlCLEdBRXBELE9BQUt1UyxHQUFZL2lCLEVBQUFBLElBQUloSyxNQUFNK3NCLEdBR3pCNWUsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxXQUNaMkssRUFBUWh3QixJQUFJLGVBQ1hvUixJQUFBQSxjQUFBLFdBQVNpVSxVQUFVLG9CQUNqQmpVLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsMkJBQTBCLHVCQUN6Q2pVLElBQUFBLGNBQUEsU0FDRUEsSUFBQUEsY0FBQzZtQixFQUFRLENBQUN4aEIsT0FBUXVaLEVBQVFod0IsSUFBSSxtQkFHaEMsS0FDSDY3QyxHQUFhN3JCLEVBQVE1bkIsSUFBSSxTQUN4QmdKLElBQUFBLGNBQUEsV0FBU2lVLFVBQVUsb0JBQ2pCalUsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSwyQkFBMEIsaUJBQ3pDalUsSUFBQUEsY0FBQytmLEVBQWEsS0FBRTVqQixVQUFVeWlCLEVBQVFod0IsSUFBSSxZQUV0QyxNQWpCb0MsSUFvQjlDLENDM0JlLE1BQU04N0MsdUJBQXVCMXFDLElBQUFBLGNBVTFDeWQsb0JBQXNCLENBQ3BCa3RCLFVBQVU5dUMsRUFBQUEsRUFBQUEsS0FBSSxDQUFDLEdBQ2YrdUMsU0FBVUEsSUFBSWhwQyxJQUVadlEsUUFBUXdsQixJQUVOLDhEQUNHalYsR0FFUGlwQyxrQkFBbUIsS0FDbkJDLFlBQVksR0FHZEMsVUFBWUEsQ0FBQ3g4QyxHQUFPeThDLHFCQUFvQixHQUFVLENBQUMsS0FDZCxtQkFBeEJ2OUMsS0FBS3FkLE1BQU04L0IsVUFDcEJuOUMsS0FBS3FkLE1BQU04L0IsU0FBU3I4QyxFQUFLLENBQ3ZCeThDLHFCQUVKLEVBR0ZDLGFBQWdCNzVDLElBQ2QsR0FBbUMsbUJBQXhCM0QsS0FBS3FkLE1BQU04L0IsU0FBeUIsQ0FDN0MsTUFDTXI4QyxFQURVNkMsRUFBRWtWLE9BQU80a0MsZ0JBQWdCLEdBQ3JCdG5CLGFBQWEsU0FFakNuMkIsS0FBS3M5QyxVQUFVeDhDLEVBQUssQ0FDbEJ5OEMsbUJBQW1CLEdBRXZCLEdBR0ZHLGtCQUFvQkEsS0FDbEIsTUFBTSxTQUFFUixFQUFRLGtCQUFFRSxHQUFzQnA5QyxLQUFLcWQsTUFFdkNzZ0MsRUFBeUJULEVBQVMvN0MsSUFBSWk4QyxHQUV0Q1EsRUFBbUJWLEVBQVN4NEMsU0FBU0MsUUFDckNrNUMsRUFBZVgsRUFBUy83QyxJQUFJeThDLEdBRWxDLE9BQU9ELEdBQTBCRSxJQUFnQnp2QyxFQUFBQSxFQUFBQSxLQUFJLENBQUMsRUFBRSxFQUcxRHFpQixpQkFBQUEsR0FPRSxNQUFNLFNBQUUwc0IsRUFBUSxTQUFFRCxHQUFhbDlDLEtBQUtxZCxNQUVwQyxHQUF3QixtQkFBYjgvQixFQUF5QixDQUNsQyxNQUFNVSxFQUFlWCxFQUFTdjRDLFFBQ3hCbTVDLEVBQWtCWixFQUFTYSxNQUFNRixHQUV2Qzc5QyxLQUFLczlDLFVBQVVRLEVBQWlCLENBQzlCUCxtQkFBbUIsR0FFdkIsQ0FDRixDQUVBNXNCLGdDQUFBQSxDQUFpQ0MsR0FDL0IsTUFBTSxrQkFBRXdzQixFQUFpQixTQUFFRixHQUFhdHNCLEVBQ3hDLEdBQUlzc0IsSUFBYWw5QyxLQUFLcWQsTUFBTTYvQixXQUFhQSxFQUFTM3pDLElBQUk2ekMsR0FBb0IsQ0FHeEUsTUFBTVMsRUFBZVgsRUFBU3Y0QyxRQUN4Qm01QyxFQUFrQlosRUFBU2EsTUFBTUYsR0FFdkM3OUMsS0FBS3M5QyxVQUFVUSxFQUFpQixDQUM5QlAsbUJBQW1CLEdBRXZCLENBQ0YsQ0FFQTUrQixNQUFBQSxHQUNFLE1BQU0sU0FDSnUrQixFQUFRLGtCQUNSRSxFQUFpQixnQkFDakJZLEVBQWUseUJBQ2ZDLEVBQXdCLFdBQ3hCWixHQUNFcjlDLEtBQUtxZCxNQUVULE9BQ0U5SyxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLG1CQUNaNjJCLEVBQ0M5cUMsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxrQ0FBaUMsY0FDL0MsS0FDSmpVLElBQUFBLGNBQUEsVUFDRWlVLFVBQVUsMEJBQ1ZvVSxTQUFVNTZCLEtBQUt3OUMsYUFDZjU3QyxNQUNFcThDLEdBQTRCRCxFQUN4QixzQkFDQVosR0FBcUIsSUFHMUJhLEVBQ0MxckMsSUFBQUEsY0FBQSxVQUFRM1EsTUFBTSx1QkFBc0Isb0JBQ2xDLEtBQ0hzN0MsRUFDRXgzQyxLQUFJLENBQUN5ckIsRUFBUytzQixJQUVYM3JDLElBQUFBLGNBQUEsVUFDRXpSLElBQUtvOUMsRUFDTHQ4QyxNQUFPczhDLEdBRUw5dkMsRUFBQUEsSUFBSWhLLE1BQU0rc0IsSUFBWUEsRUFBUWh3QixJQUFJLFlBQ2xDKzhDLEtBSVBwaEMsWUFJWCxFQzNHRixNQUFNcWhDLG9CQUF1QjV2QyxHQUMzQm9PLEVBQUFBLEtBQUszVCxPQUFPdUYsR0FBU0EsRUFBUUcsVUFBVUgsR0FFMUIsTUFBTTZ2QyxvQ0FBb0M3ckMsSUFBQUEsY0FjdkR5ZCxvQkFBc0IsQ0FDcEJxdUIsbUJBQW1CLEVBQ25CbkIsVUFBVTl1QyxFQUFBQSxFQUFBQSxLQUFJLENBQUMsR0FDZmt3QyxpQkFBa0IseUJBQ2xCQyw4QkFBK0JBLE9BRy9CcEIsU0FBVUEsSUFBSWhwQyxJQUVadlEsUUFBUXdsQixJQUNOLHNFQUNHalYsR0FFUHFxQyxZQUFhQSxJQUFJcnFDLElBRWZ2USxRQUFRd2xCLElBQ04seUVBQ0dqVixJQUlUdkUsV0FBQUEsQ0FBWXlOLEdBQ1ZrVCxNQUFNbFQsR0FFTixNQUFNb2hDLEVBQW1CeitDLEtBQUswK0MsMEJBRTlCMStDLEtBQUsrUCxNQUFRLENBSVgsQ0FBQ3NOLEVBQU1paEMsbUJBQW1CbHdDLEVBQUFBLEVBQUFBLEtBQUksQ0FDNUJ1d0Msb0JBQXFCMytDLEtBQUtxZCxNQUFNdWhDLHNCQUNoQ0Msb0JBQXFCSixFQUNyQkssd0JBRUU5K0MsS0FBS3FkLE1BQU1naEMsbUJBQ1hyK0MsS0FBS3FkLE1BQU11aEMsd0JBQTBCSCxJQUc3QyxDQUVBTSxvQkFBQUEsR0FDRS8rQyxLQUFLcWQsTUFBTWtoQywrQkFBOEIsRUFDM0MsQ0FFQVMsNkJBQStCQSxLQUM3QixNQUFNLGlCQUFFVixHQUFxQnQrQyxLQUFLcWQsTUFFbEMsT0FBUXJkLEtBQUsrUCxNQUFNdXVDLEtBQXFCbHdDLEVBQUFBLEVBQUFBLFFBQU9rVyxVQUFVLEVBRzNEMjZCLDZCQUFnQzc5QyxJQUM5QixNQUFNLGlCQUFFazlDLEdBQXFCdCtDLEtBQUtxZCxNQUVsQyxPQUFPcmQsS0FBS2svQyxzQkFBc0JaLEVBQWtCbDlDLEVBQUksRUFHMUQ4OUMsc0JBQXdCQSxDQUFDM3JDLEVBQVduUyxLQUNsQyxNQUNNKzlDLEdBRHVCbi9DLEtBQUsrUCxNQUFNd0QsS0FBY25GLEVBQUFBLEVBQUFBLFFBQ0pxbkIsVUFBVXIwQixHQUM1RCxPQUFPcEIsS0FBSzZ3QixTQUFTLENBQ25CLENBQUN0ZCxHQUFZNHJDLEdBQ2IsRUFHSkMsc0NBQXdDQSxLQUN0QyxNQUFNLHNCQUFFUixHQUEwQjUrQyxLQUFLcWQsTUFJdkMsT0FGeUJyZCxLQUFLMCtDLDRCQUVGRSxDQUFxQixFQUduRFMsb0JBQXNCQSxDQUFDQyxFQUFZamlDLEtBR2pDLE1BQU0sU0FBRTYvQixHQUFhNy9CLEdBQVNyZCxLQUFLcWQsTUFDbkMsT0FBTzhnQyxxQkFDSmpCLElBQVk5dUMsRUFBQUEsRUFBQUEsS0FBSSxDQUFDLElBQUl4SixNQUFNLENBQUMwNkMsRUFBWSxVQUMxQyxFQUdIWix3QkFBMkJyaEMsSUFHekIsTUFBTSxXQUFFa2lDLEdBQWVsaUMsR0FBU3JkLEtBQUtxZCxNQUNyQyxPQUFPcmQsS0FBS3EvQyxvQkFBb0JFLEVBQVlsaUMsR0FBU3JkLEtBQUtxZCxNQUFNLEVBR2xFbWlDLGtCQUFvQkEsQ0FBQzErQyxHQUFPeThDLHFCQUFzQixDQUFDLEtBQU1rQyxLQUN2RCxNQUFNLFNBQUV0QyxFQUFRLFlBQUVxQixFQUFXLHNCQUFFSSxFQUFxQixrQkFBRVAsR0FDcERyK0MsS0FBS3FkLE9BQ0Qsb0JBQUVzaEMsR0FBd0IzK0MsS0FBS2cvQywrQkFFL0JQLEVBQW1CeitDLEtBQUtxL0Msb0JBQW9CditDLEdBRWxELEdBQVksd0JBQVJBLEVBRUYsT0FEQTA5QyxFQUFZTCxvQkFBb0JRLElBQ3pCMytDLEtBQUtpL0MsNkJBQTZCLENBQ3ZDSCx5QkFBeUIsSUFJTCxtQkFBYjNCLEdBQ1RBLEVBQVNyOEMsRUFBSyxDQUFFeThDLHdCQUF3QmtDLEdBRzFDei9DLEtBQUtpL0MsNkJBQTZCLENBQ2hDSixvQkFBcUJKLEVBQ3JCSyx3QkFDR3ZCLEdBQXFCYyxLQUNuQk8sR0FBeUJBLElBQTBCSCxJQUl0RGxCLEdBRXVCLG1CQUFoQmlCLEdBQ1RBLEVBQVlMLG9CQUFvQk0sR0FDbEMsRUFHRjl0QixnQ0FBQUEsQ0FBaUNDLEdBRy9CLE1BQ0VndUIsc0JBQXVCNWhCLEVBQVEsU0FDL0JrZ0IsRUFBUSxTQUNSQyxFQUFRLGtCQUNSa0IsR0FDRXp0QixHQUVFLG9CQUFFK3RCLEVBQW1CLG9CQUFFRSxHQUMzQjcrQyxLQUFLZy9DLCtCQUVEVSxFQUEwQjEvQyxLQUFLcS9DLG9CQUNuQ3p1QixFQUFVMnVCLFdBQ1YzdUIsR0FHSSt1QixFQUEyQnpDLEVBQVNsNkMsUUFDdkNtdUIsR0FDQy9pQixFQUFBQSxJQUFJaEssTUFBTStzQixLQUNUQSxFQUFRaHdCLElBQUksV0FBYTY3QixHQUd4QnR1QixVQUFVeWlCLEVBQVFod0IsSUFBSSxZQUFjNjdCLEtBRzFDLEdBQUkyaUIsRUFBeUJoMUMsS0FBTSxDQUNqQyxJQUFJN0osRUFFRkEsRUFERTYrQyxFQUF5QnAyQyxJQUFJcW5CLEVBQVUydUIsWUFDbkMzdUIsRUFBVTJ1QixXQUVWSSxFQUF5Qmo3QyxTQUFTQyxRQUUxQ3c0QyxFQUFTcjhDLEVBQUssQ0FDWnk4QyxtQkFBbUIsR0FFdkIsTUFDRXZnQixJQUFhaDlCLEtBQUtxZCxNQUFNdWhDLHVCQUN4QjVoQixJQUFhMmhCLEdBQ2IzaEIsSUFBYTZoQixJQUViNytDLEtBQUtxZCxNQUFNa2hDLCtCQUE4QixHQUN6Q3YrQyxLQUFLay9DLHNCQUFzQnR1QixFQUFVMHRCLGlCQUFrQixDQUNyREssb0JBQXFCL3RCLEVBQVVndUIsc0JBQy9CRSx3QkFDRVQsR0FBcUJyaEIsSUFBYTBpQixJQUcxQyxDQUVBL2dDLE1BQUFBLEdBQ0UsTUFBTSxzQkFDSmlnQyxFQUFxQixTQUNyQjFCLEVBQVEsV0FDUnFDLEVBQVUsYUFDVjNnQyxFQUFZLGtCQUNaeS9CLEdBQ0VyK0MsS0FBS3FkLE9BQ0gsb0JBQ0p3aEMsRUFBbUIsb0JBQ25CRixFQUFtQix3QkFDbkJHLEdBQ0U5K0MsS0FBS2cvQywrQkFFSC9CLEVBQWlCcitCLEVBQWEsa0JBRXBDLE9BQ0VyTSxJQUFBQSxjQUFDMHFDLEVBQWMsQ0FDYkMsU0FBVUEsRUFDVkUsa0JBQW1CbUMsRUFDbkJwQyxTQUFVbjlDLEtBQUt3L0Msa0JBQ2Z2QiwyQkFDSVUsR0FBdUJBLElBQXdCRSxFQUVuRGIscUJBQzZCMTlDLElBQTFCcytDLEdBQ0NFLEdBQ0FGLElBQTBCNStDLEtBQUswK0MsMkJBQ2pDTCxHQUlSLEVDdlBhLFNBQVN2bkMsNEJBQVksS0FBRVEsRUFBSSxZQUFFTixFQUFXLFdBQUVLLEVBQVUsUUFBRW5ILEVBQU8sWUFBRTB2QyxFQUFZLENBQUMsRUFBQyxjQUFFQyxJQUM1RixJQUFJLE9BQUV4N0MsRUFBTSxPQUFFcVUsRUFBTSxLQUFFeEwsRUFBSSxTQUFFbUwsR0FBYWYsRUFDckNHLEVBQU9wVCxFQUFPbEQsSUFBSSxRQUNsQmtZLEVBQVEsR0FFWixPQUFRNUIsR0FDTixJQUFLLFdBRUgsWUFEQVQsRUFBWWlCLGtCQUFrQlgsR0FHaEMsSUFBSyxjQVlMLElBQUssb0JBQ0wsSUFBSyxxQkFHSCxZQURBTixFQUFZc0MscUJBQXFCaEMsR0FYbkMsSUFBSyxhQWNMLElBQUssb0JBQ0wsSUFBSyxxQkFFSCtCLEVBQU16USxLQUFLLHNCQUNYLE1BZEYsSUFBSyxXQUNIeVEsRUFBTXpRLEtBQUssdUJBZ0JTLGlCQUFieVAsR0FDVGdCLEVBQU16USxLQUFLLGFBQWV1RSxtQkFBbUJrTCxJQUcvQyxJQUFJbUIsRUFBY3RKLEVBQVE0dkMsa0JBRzFCLFFBQTJCLElBQWhCdG1DLEVBT1QsWUFOQW5DLEVBQVd2VSxXQUFZLENBQ3JCNlUsT0FBUXpLLEVBQ1IwSyxPQUFRLGFBQ1JDLE1BQU8sUUFDUEMsUUFBUyw2RkFJYnVCLEVBQU16USxLQUFLLGdCQUFrQnVFLG1CQUFtQnFNLElBRWhELElBQUl1bUMsRUFBYyxHQU9sQixHQU5JdjZDLE1BQU1DLFFBQVFpVCxHQUNoQnFuQyxFQUFjcm5DLEVBQ0wzVSxJQUFBQSxLQUFRaUYsT0FBTzBQLEtBQ3hCcW5DLEVBQWNybkMsRUFBT3ZOLFdBR25CNDBDLEVBQVl6NUMsT0FBUyxFQUFHLENBQzFCLElBQUkwNUMsRUFBaUJKLEVBQVlJLGdCQUFrQixJQUVuRDNtQyxFQUFNelEsS0FBSyxTQUFXdUUsbUJBQW1CNHlDLEVBQVkxeUMsS0FBSzJ5QyxJQUM1RCxDQUVBLElBQUlqd0MsRUFBUTVELEtBQUssSUFBSVQsTUFRckIsR0FOQTJOLEVBQU16USxLQUFLLFNBQVd1RSxtQkFBbUI0QyxTQUVSLElBQXRCNnZDLEVBQVlLLE9BQ3JCNW1DLEVBQU16USxLQUFLLFNBQVd1RSxtQkFBbUJ5eUMsRUFBWUssU0FHekMsc0JBQVR4b0MsR0FBeUMsdUJBQVRBLEdBQTBDLGVBQVRBLElBQTBCbW9DLEVBQVlNLGtDQUFtQyxDQUMzSSxNQUFNem1DLEVwSzJ0QkwsU0FBUzBtQyx1QkFDZCxPQUFPNXdDLG1CQUNMaWpCLEtBQVksSUFBSTVtQixTQUFTLFVBRTdCLENvSy90QjJCdTBDLEdBQ2ZDLEVwS2d1QkwsU0FBU0Msb0JBQW9CNW1DLEdBQ2xDLE9BQU9sSyxtQkFDTCt3QyxLQUFNLFVBQ0gxZ0MsT0FBT25HLEdBQ1A4bUMsT0FBTyxVQUVkLENvS3R1QjRCRixDQUFvQjVtQyxHQUUxQ0osRUFBTXpRLEtBQUssa0JBQW9CdzNDLEdBQy9CL21DLEVBQU16USxLQUFLLDhCQUlYME8sRUFBS21DLGFBQWVBLENBQ3hCLENBRUEsSUFBSSw0QkFBRVMsR0FBZ0MwbEMsRUFFdEMsSUFBSyxJQUFJOStDLEtBQU9vWixPQUNrQyxJQUFyQ0EsRUFBNEJwWixJQUNyQ3VZLEVBQU16USxLQUFLLENBQUM5SCxFQUFLb1osRUFBNEJwWixJQUFNNEUsSUFBSXlILG9CQUFvQkUsS0FBSyxNQUlwRixNQUFNbXpDLEVBQW1CbjhDLEVBQU9sRCxJQUFJLG9CQUNwQyxJQUFJcy9DLEVBR0ZBLEVBRkVaLEVBRTBCdmxDLEtBQzFCc2QsWUFBWTRvQixHQUNaWCxHQUNBLEdBQ0FqMEMsV0FFMEJnc0IsWUFBWTRvQixHQUUxQyxJQVNJRSxFQVRBdG5DLEVBQU0sQ0FBQ3FuQyxFQUEyQnBuQyxFQUFNaE0sS0FBSyxNQUFNQSxLQUN6QixpQkFBckJtekMsR0FBa0NBLEVBQWlCLzdDLFNBQVMsS0FFL0QsSUFEQSxLQVNKaThDLEVBRFcsYUFBVGpwQyxFQUNTVCxFQUFZSSxxQkFDZHdvQyxFQUFZZSwwQ0FDVjNwQyxFQUFZNkMsMkNBRVo3QyxFQUFZdUMsa0NBR3pCdkMsRUFBWTRFLFVBQVV4QyxFQUFLLENBQ3pCOUIsS0FBTUEsRUFDTnZILE1BQU9BLEVBQ1B5SixZQUFhQSxFQUNia25DLFNBQVVBLEVBQ1ZFLE1BQU92cEMsRUFBV3ZVLFlBRXRCLENDcEllLE1BQU1tNUMsZUFBZTFwQyxJQUFBQSxVQWVsQzNDLFdBQUFBLENBQVl5TixFQUFPaVQsR0FDakJDLE1BQU1sVCxFQUFPaVQsR0FDYixJQUFJLEtBQUVwakIsRUFBSSxPQUFFN0ksRUFBTSxXQUFFb1gsRUFBVSxjQUFFekIsR0FBa0JoYSxLQUFLcWQsTUFDbkQvRixFQUFPbUUsR0FBY0EsRUFBV3RhLElBQUkrTCxHQUNwQzB5QyxFQUFjNWxDLEVBQWM3SCxjQUFnQixDQUFDLEVBQzdDK0YsRUFBV1osR0FBUUEsRUFBS25XLElBQUksYUFBZSxHQUMzQ2tYLEVBQVdmLEdBQVFBLEVBQUtuVyxJQUFJLGFBQWV5K0MsRUFBWXZuQyxVQUFZLEdBQ25FQyxFQUFlaEIsR0FBUUEsRUFBS25XLElBQUksaUJBQW1CeStDLEVBQVl0bkMsY0FBZ0IsR0FDL0VGLEVBQWVkLEdBQVFBLEVBQUtuVyxJQUFJLGlCQUFtQixRQUNuRHVYLEVBQVNwQixHQUFRQSxFQUFLblcsSUFBSSxXQUFheStDLEVBQVlsbkMsUUFBVSxHQUMzQyxpQkFBWEEsSUFDVEEsRUFBU0EsRUFBTzJLLE1BQU11OEIsRUFBWUksZ0JBQWtCLE1BR3REaGdELEtBQUsrUCxNQUFRLENBQ1g4d0MsUUFBU2pCLEVBQVlpQixRQUNyQjN6QyxLQUFNQSxFQUNON0ksT0FBUUEsRUFDUnFVLE9BQVFBLEVBQ1JMLFNBQVVBLEVBQ1ZDLGFBQWNBLEVBQ2RKLFNBQVVBLEVBQ1ZDLFNBQVUsR0FDVkMsYUFBY0EsRUFFbEIsQ0FFQTdVLE1BQVNJLElBQ1BBLEVBQUV5cUIsaUJBQ0YsSUFBSSxZQUFFcFgsR0FBZ0JoWCxLQUFLcWQsTUFFM0JyRyxFQUFZSCxpQkFBZ0IsRUFBTSxFQUdwQ0MsVUFBV0EsS0FDVCxJQUFJLFlBQUVFLEVBQVcsV0FBRUssRUFBVSxXQUFFbEYsRUFBVSxjQUFFNkgsRUFBYSxjQUFFRixHQUFrQjlaLEtBQUtxZCxNQUM3RW5OLEVBQVVpQyxJQUNWeXRDLEVBQWM1bEMsRUFBYzdILGFBRWhDa0YsRUFBV3RVLE1BQU0sQ0FBQzRVLE9BQVF6SyxLQUFLNUssS0FBTSxPQUFRc1YsT0FBUSxTQUNyRGtwQywyQkFBZ0IsQ0FDZHhwQyxLQUFNdFgsS0FBSytQLE1BQ1g4dkMsY0FBZS9sQyxFQUFjTSxxQkFBcUJOLEVBQWNPLGtCQUNoRXJELGNBQ0FLLGFBQ0FuSCxVQUNBMHZDLGVBQ0EsRUFHSm1CLGNBQWdCcDlDLElBQ2QsSUFBSSxPQUFFa1YsR0FBV2xWLEdBQ2IsUUFBRXE5QyxHQUFZbm9DLEVBQ2RKLEVBQVFJLEVBQU9pWixRQUFRbHdCLE1BRTNCLEdBQUtvL0MsSUFBaUQsSUFBdENoaEQsS0FBSytQLE1BQU0ySSxPQUFPL0ssUUFBUThLLEdBQWdCLENBQ3hELElBQUl3b0MsRUFBWWpoRCxLQUFLK1AsTUFBTTJJLE9BQU92QyxPQUFPLENBQUNzQyxJQUMxQ3pZLEtBQUs2d0IsU0FBUyxDQUFFblksT0FBUXVvQyxHQUMxQixNQUFhRCxHQUFXaGhELEtBQUsrUCxNQUFNMkksT0FBTy9LLFFBQVE4SyxJQUFVLEdBQzFEelksS0FBSzZ3QixTQUFTLENBQUVuWSxPQUFRMVksS0FBSytQLE1BQU0ySSxPQUFPMVYsUUFBUTBHLEdBQVFBLElBQVErTyxLQUNwRSxFQUdGeW9DLGNBQWdCdjlDLElBQ2QsSUFBTWtWLFFBQVdpWixTQUFVLEtBQUU1a0IsR0FBTSxNQUFFdEwsSUFBWStCLEVBQzdDb00sRUFBUSxDQUNWLENBQUM3QyxHQUFPdEwsR0FHVjVCLEtBQUs2d0IsU0FBUzlnQixFQUFNLEVBR3RCb3hDLGFBQWV4OUMsSUFDVEEsRUFBRWtWLE9BQU9pWixRQUFRbE0sSUFDbkI1bEIsS0FBSzZ3QixTQUFTLENBQ1puWSxPQUFRbFQsTUFBTStHLE1BQU12TSxLQUFLcWQsTUFBTWhaLE9BQU9sRCxJQUFJLGtCQUFvQm5CLEtBQUtxZCxNQUFNaFosT0FBT2xELElBQUksV0FBVzRGLFVBR2pHL0csS0FBSzZ3QixTQUFTLENBQUVuWSxPQUFRLElBQzFCLEVBR0Z4QixPQUFTdlQsSUFDUEEsRUFBRXlxQixpQkFDRixJQUFJLFlBQUVwWCxFQUFXLFdBQUVLLEVBQVUsS0FBRW5LLEdBQVNsTixLQUFLcWQsTUFFN0NoRyxFQUFXdFUsTUFBTSxDQUFDNFUsT0FBUXpLLEVBQU01SyxLQUFNLE9BQVFzVixPQUFRLFNBQ3REWixFQUFZRyx3QkFBd0IsQ0FBRWpLLEdBQU8sRUFHL0N5UixNQUFBQSxHQUNFLElBQUksT0FDRnRhLEVBQU0sYUFBRXVhLEVBQVksY0FBRTVFLEVBQWEsYUFBRWkyQixFQUFZLEtBQUUvaUMsRUFBSSxjQUFFNk0sR0FDdkQvWixLQUFLcWQsTUFDVCxNQUFNZ2YsRUFBUXpkLEVBQWEsU0FDckIrOUIsRUFBTS85QixFQUFhLE9BQ25CZytCLEVBQU1oK0IsRUFBYSxPQUNuQm9mLEVBQVNwZixFQUFhLFVBQ3RCNjlCLEVBQVk3OUIsRUFBYSxhQUN6QjZYLEVBQWE3WCxFQUFhLGNBQWMsR0FDeEN3YSxFQUFXeGEsRUFBYSxZQUFZLEdBQ3BDd2lDLEVBQW1CeGlDLEVBQWEscUJBRWhDLE9BQUV6YSxHQUFXNFYsRUFFbkIsSUFBSXNuQyxFQUFVbDlDLElBQVdFLEVBQU9sRCxJQUFJLG9CQUFzQixLQUcxRCxNQUFNbWdELEVBQXFCLFdBQ3JCQyxFQUFxQixXQUNyQkMsRUFBd0JyOUMsSUFBWWs5QyxFQUFVLHFCQUF1QixvQkFBdUIsYUFDNUZJLEVBQXdCdDlDLElBQVlrOUMsRUFBVSxxQkFBdUIsb0JBQXVCLGNBRTVGMWpDLEVBQU8zRCxFQUFjNEMsZUFBZTFQLEdBRTFDLElBQ0l3MEMsS0FEYzFuQyxFQUFjN0gsY0FBZ0IsQ0FBQyxHQUNiK3RDLGtDQUVoQ3pvQyxFQUFPcFQsRUFBT2xELElBQUksUUFDbEJ3Z0QsRUFBZ0JscUMsSUFBUytwQyxHQUF5QkUsRUFBa0JqcUMsRUFBTyxhQUFlQSxFQUMxRmlCLEVBQVNyVSxFQUFPbEQsSUFBSSxrQkFBb0JrRCxFQUFPbEQsSUFBSSxVQUVuRHFjLElBRGlCeEQsRUFBY3lCLGFBQWF0YSxJQUFJK0wsR0FFaER4SyxFQUFTdXRDLEVBQWF2cUIsWUFBWTFpQixRQUFRWCxHQUFPQSxFQUFJbEIsSUFBSSxZQUFjK0wsSUFDdkVzSyxHQUFXOVUsRUFBT00sUUFBUVgsR0FBNkIsZUFBdEJBLEVBQUlsQixJQUFJLFlBQTRCd0osS0FDckVrdUIsRUFBY3gwQixFQUFPbEQsSUFBSSxlQUU3QixPQUNFb1IsSUFBQUEsY0FBQSxXQUNFQSxJQUFBQSxjQUFBLFVBQUtyRixFQUFLLGFBQVl5MEMsRUFBZSxLQUFFcHZDLElBQUFBLGNBQUNra0IsRUFBVSxDQUFDOVksS0FBTUEsS0FDdEQzZCxLQUFLK1AsTUFBTTh3QyxRQUFpQnR1QyxJQUFBQSxjQUFBLFVBQUksZ0JBQWV2UyxLQUFLK1AsTUFBTTh3QyxRQUFTLEtBQTlDLEtBQ3RCaG9CLEdBQWV0bUIsSUFBQUEsY0FBQzZtQixFQUFRLENBQUN4aEIsT0FBU3ZULEVBQU9sRCxJQUFJLGlCQUU3Q3FjLEdBQWdCakwsSUFBQUEsY0FBQSxVQUFJLGNBRXBCOHVDLEdBQVc5dUMsSUFBQUEsY0FBQSxTQUFHLHVCQUFvQkEsSUFBQUEsY0FBQSxZQUFROHVDLEtBQ3hDNXBDLElBQVM2cEMsR0FBc0I3cEMsSUFBUytwQyxJQUEyQmp2QyxJQUFBQSxjQUFBLFNBQUcsc0JBQW1CQSxJQUFBQSxjQUFBLFlBQVFsTyxFQUFPbEQsSUFBSSx1QkFDNUdzVyxJQUFTOHBDLEdBQXNCOXBDLElBQVMrcEMsR0FBeUIvcEMsSUFBU2dxQyxJQUEyQmx2QyxJQUFBQSxjQUFBLFNBQUcsYUFBVUEsSUFBQUEsY0FBQSxZQUFNLElBQUdsTyxFQUFPbEQsSUFBSSxjQUMxSW9SLElBQUFBLGNBQUEsS0FBR2lVLFVBQVUsUUFBTyxTQUFNalUsSUFBQUEsY0FBQSxZQUFRb3ZDLElBR2hDbHFDLElBQVM4cEMsRUFBcUIsS0FDMUJodkMsSUFBQUEsY0FBQ29xQyxFQUFHLEtBQ0pwcUMsSUFBQUEsY0FBQ29xQyxFQUFHLEtBQ0ZwcUMsSUFBQUEsY0FBQSxTQUFPc29CLFFBQVEsa0JBQWlCLGFBRTlCcmQsRUFBZWpMLElBQUFBLGNBQUEsWUFBTSxJQUFHdlMsS0FBSytQLE1BQU1tSSxTQUFVLEtBQ3pDM0YsSUFBQUEsY0FBQ3FxQyxFQUFHLENBQUNnRixPQUFRLEdBQUlDLFFBQVMsSUFDMUJ0dkMsSUFBQUEsY0FBQSxTQUFPakQsR0FBRyxpQkFBaUJoTixLQUFLLE9BQU8sWUFBVSxXQUFXczRCLFNBQVc1NkIsS0FBS2toRCxjQUFnQnJFLFdBQVMsTUFPN0d0cUMsSUFBQUEsY0FBQ29xQyxFQUFHLEtBQ0ZwcUMsSUFBQUEsY0FBQSxTQUFPc29CLFFBQVEsa0JBQWlCLGFBRTlCcmQsRUFBZWpMLElBQUFBLGNBQUEsWUFBTSxZQUNqQkEsSUFBQUEsY0FBQ3FxQyxFQUFHLENBQUNnRixPQUFRLEdBQUlDLFFBQVMsSUFDMUJ0dkMsSUFBQUEsY0FBQSxTQUFPakQsR0FBRyxpQkFBaUJoTixLQUFLLFdBQVcsWUFBVSxXQUFXczRCLFNBQVc1NkIsS0FBS2toRCxrQkFJeEYzdUMsSUFBQUEsY0FBQ29xQyxFQUFHLEtBQ0ZwcUMsSUFBQUEsY0FBQSxTQUFPc29CLFFBQVEsaUJBQWdCLGdDQUU3QnJkLEVBQWVqTCxJQUFBQSxjQUFBLFlBQU0sSUFBR3ZTLEtBQUsrUCxNQUFNcUksYUFBYyxLQUM3QzdGLElBQUFBLGNBQUNxcUMsRUFBRyxDQUFDZ0YsT0FBUSxHQUFJQyxRQUFTLElBQzFCdHZDLElBQUFBLGNBQUEsVUFBUWpELEdBQUcsZ0JBQWdCLFlBQVUsZUFBZXNyQixTQUFXNTZCLEtBQUtraEQsZUFDbEUzdUMsSUFBQUEsY0FBQSxVQUFRM1EsTUFBTSxTQUFRLHdCQUN0QjJRLElBQUFBLGNBQUEsVUFBUTNRLE1BQU0sZ0JBQWUscUJBUXpDNlYsSUFBU2dxQyxHQUF5QmhxQyxJQUFTNnBDLEdBQXNCN3BDLElBQVMrcEMsR0FBeUIvcEMsSUFBUzhwQyxNQUMzRy9qQyxHQUFnQkEsR0FBZ0J4ZCxLQUFLK1AsTUFBTXNJLFdBQWE5RixJQUFBQSxjQUFDb3FDLEVBQUcsS0FDN0RwcUMsSUFBQUEsY0FBQSxTQUFPc29CLFFBQVUsYUFBYXBqQixLQUFTLGNBRXJDK0YsRUFBZWpMLElBQUFBLGNBQUEsWUFBTSxZQUNOQSxJQUFBQSxjQUFDcXFDLEVBQUcsQ0FBQ2dGLE9BQVEsR0FBSUMsUUFBUyxJQUN4QnR2QyxJQUFBQSxjQUFDNnVDLEVBQWdCLENBQUM5eEMsR0FBSSxhQUFhbUksSUFDNUJuVixLQUFLLE9BQ0x3eUIsU0FBV3JkLElBQVM4cEMsRUFDcEJPLGFBQWU5aEQsS0FBSytQLE1BQU1zSSxTQUMxQixZQUFVLFdBQ1Z1aUIsU0FBVzU2QixLQUFLa2hELG1CQU96Q3pwQyxJQUFTZ3FDLEdBQXlCaHFDLElBQVMrcEMsR0FBeUIvcEMsSUFBUzhwQyxJQUF1Qmh2QyxJQUFBQSxjQUFDb3FDLEVBQUcsS0FDekdwcUMsSUFBQUEsY0FBQSxTQUFPc29CLFFBQVUsaUJBQWlCcGpCLEtBQVMsa0JBRXpDK0YsRUFBZWpMLElBQUFBLGNBQUEsWUFBTSxZQUNOQSxJQUFBQSxjQUFDcXFDLEVBQUcsQ0FBQ2dGLE9BQVEsR0FBSUMsUUFBUyxJQUN4QnR2QyxJQUFBQSxjQUFDNnVDLEVBQWdCLENBQUM5eEMsR0FBSyxpQkFBaUJtSSxJQUNqQ3FxQyxhQUFlOWhELEtBQUsrUCxNQUFNdUksYUFDMUJoVyxLQUFLLFdBQ0wsWUFBVSxlQUNWczRCLFNBQVc1NkIsS0FBS2toRCxtQkFRM0MxakMsR0FBZ0I5RSxHQUFVQSxFQUFPL04sS0FBTzRILElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsVUFDdERqVSxJQUFBQSxjQUFBLFVBQUksVUFFRkEsSUFBQUEsY0FBQSxLQUFHeWMsUUFBU2h2QixLQUFLbWhELGFBQWMsWUFBVSxHQUFNLGNBQy9DNXVDLElBQUFBLGNBQUEsS0FBR3ljLFFBQVNodkIsS0FBS21oRCxjQUFjLGdCQUUvQnpvQyxFQUFPaFQsS0FBSSxDQUFDbXpCLEVBQWEzckIsSUFFdkJxRixJQUFBQSxjQUFDb3FDLEVBQUcsQ0FBQzc3QyxJQUFNb00sR0FDVHFGLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsWUFDYmpVLElBQUFBLGNBQUM4cEIsRUFBSyxDQUFDLGFBQWFudkIsRUFDZG9DLEdBQUksR0FBR3BDLEtBQVF1SyxjQUFpQnpYLEtBQUsrUCxNQUFNN0MsT0FDMUNtdUIsU0FBVzdkLEVBQ1h3akMsUUFBVWhoRCxLQUFLK1AsTUFBTTJJLE9BQU9qVSxTQUFTeUksR0FDckM1SyxLQUFLLFdBQ0xzNEIsU0FBVzU2QixLQUFLK2dELGdCQUNsQnh1QyxJQUFBQSxjQUFBLFNBQU9zb0IsUUFBUyxHQUFHM3RCLEtBQVF1SyxjQUFpQnpYLEtBQUsrUCxNQUFNN0MsUUFDckRxRixJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLFNBQ2hCalUsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxRQUNialUsSUFBQUEsY0FBQSxLQUFHaVUsVUFBVSxRQUFRdFosR0FDckJxRixJQUFBQSxjQUFBLEtBQUdpVSxVQUFVLGVBQWVxUyxTQU14QzF0QixXQUVFLEtBSVR6SSxFQUFPb2EsV0FBV3BYLEtBQUssQ0FBQzdCLEVBQU8vQyxJQUN0QnlSLElBQUFBLGNBQUNrcUMsRUFBUyxDQUFDNTRDLE1BQVFBLEVBQ1IvQyxJQUFNQSxNQUc1QnlSLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsb0JBQ2JoUCxJQUNFZ0csRUFBZWpMLElBQUFBLGNBQUN5ckIsRUFBTSxDQUFDeFgsVUFBVSwrQkFBK0J3SSxRQUFVaHZCLEtBQUtrWCxPQUFTLGFBQVcsd0JBQXVCLFVBQzVIM0UsSUFBQUEsY0FBQ3lyQixFQUFNLENBQUN4WCxVQUFVLCtCQUErQndJLFFBQVVodkIsS0FBSzhXLFVBQVksYUFBVyxrQ0FBaUMsY0FHeEh2RSxJQUFBQSxjQUFDeXJCLEVBQU0sQ0FBQ3hYLFVBQVUsOEJBQThCd0ksUUFBVWh2QixLQUFLdUQsT0FBUSxVQUsvRSxFQ3RSYSxNQUFNdytDLGNBQWNoeUIsRUFBQUEsVUFFakNmLFFBQVNBLEtBQ1AsSUFBSSxZQUFFNU8sRUFBVyxLQUFFekMsRUFBSSxPQUFFOVEsR0FBVzdNLEtBQUtxZCxNQUN6QytDLEVBQVl5eUIsY0FBZWwxQixFQUFNOVEsR0FDakN1VCxFQUFZMHlCLGFBQWNuMUIsRUFBTTlRLEVBQVEsRUFHMUM4UixNQUFBQSxHQUNFLE9BQ0VwTSxJQUFBQSxjQUFBLFVBQVFpVSxVQUFVLHFDQUFxQ3dJLFFBQVVodkIsS0FBS2d2QixTQUFVLFFBSXBGLEVDYkYsTUFBTWd6QixRQUFVQSxFQUFJcnBDLGFBRWhCcEcsSUFBQUEsY0FBQSxXQUNFQSxJQUFBQSxjQUFBLFVBQUksb0JBQ0pBLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsY0FBYzdOLElBTzdCc3BDLFNBQVdBLEVBQUlyUCxjQUVqQnJnQyxJQUFBQSxjQUFBLFdBQ0VBLElBQUFBLGNBQUEsVUFBSSxvQkFDSkEsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxjQUFjb3NCLEVBQVMsUUFTN0IsTUFBTXNQLHFCQUFxQjN2QyxJQUFBQSxVQVd4QzR2QyxxQkFBQUEsQ0FBc0J2eEIsR0FHcEIsT0FBTzV3QixLQUFLcWQsTUFBTXhDLFdBQWErVixFQUFVL1YsVUFDcEM3YSxLQUFLcWQsTUFBTU0sT0FBU2lULEVBQVVqVCxNQUM5QjNkLEtBQUtxZCxNQUFNeFEsU0FBVytqQixFQUFVL2pCLFFBQ2hDN00sS0FBS3FkLE1BQU0ra0MseUJBQTJCeHhCLEVBQVV3eEIsc0JBQ3ZELENBRUF6akMsTUFBQUEsR0FDRSxNQUFNLFNBQUU5RCxFQUFRLGFBQUUrRCxFQUFZLFdBQUV6TSxFQUFVLHVCQUFFaXdDLEVBQXNCLGNBQUVyb0MsRUFBYSxLQUFFNEQsRUFBSSxPQUFFOVEsR0FBVzdNLEtBQUtxZCxPQUNuRyxtQkFBRWdsQyxFQUFrQix1QkFBRUMsR0FBMkJud0MsSUFFakRvd0MsRUFBY0YsRUFBcUJ0b0MsRUFBYyt2QixrQkFBa0Juc0IsRUFBTTlRLEdBQVVrTixFQUFjOHZCLFdBQVdsc0IsRUFBTTlRLEdBQ2xIeVQsRUFBU3pGLEVBQVMxWixJQUFJLFVBQ3RCaVksRUFBTW1wQyxFQUFZcGhELElBQUksT0FDdEJ3WCxFQUFVa0MsRUFBUzFaLElBQUksV0FBVytELE9BQ2xDczlDLEVBQWdCM25DLEVBQVMxWixJQUFJLGlCQUM3QnNoRCxFQUFVNW5DLEVBQVMxWixJQUFJLFNBQ3ZCZ1ksRUFBTzBCLEVBQVMxWixJQUFJLFFBQ3BCeXhDLEVBQVcvM0IsRUFBUzFaLElBQUksWUFDeEJ1aEQsRUFBYzFoRCxPQUFPK0YsS0FBSzRSLEdBQzFCc3RCLEVBQWN0dEIsRUFBUSxpQkFBbUJBLEVBQVEsZ0JBRWpEZ3FDLEVBQWUvakMsRUFBYSxnQkFDNUJna0MsRUFBZUYsRUFBWWg5QyxLQUFJNUUsSUFDbkMsSUFBSStoRCxFQUFnQnI5QyxNQUFNQyxRQUFRa1QsRUFBUTdYLElBQVE2WCxFQUFRN1gsR0FBS3VNLE9BQVNzTCxFQUFRN1gsR0FDaEYsT0FBT3lSLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsYUFBYTFsQixJQUFLQSxHQUFLLElBQUVBLEVBQUksS0FBRytoRCxFQUFjLElBQVEsSUFFekVDLEVBQXFDLElBQXhCRixFQUFhdDhDLE9BQzFCOHlCLEVBQVd4YSxFQUFhLFlBQVksR0FDcENrTyxFQUFrQmxPLEVBQWEsbUJBQW1CLEdBQ2xEbWtDLEVBQU9ua0MsRUFBYSxRQUFRLEdBRWxDLE9BQ0VyTSxJQUFBQSxjQUFBLFdBQ0lnd0MsR0FBZUQsRUFDYi92QyxJQUFBQSxjQUFDdWEsRUFBZSxDQUFDN0MsUUFBVXM0QixJQUMzQmh3QyxJQUFBQSxjQUFDd3dDLEVBQUksQ0FBQzk0QixRQUFVczRCLElBRWxCbnBDLEdBQU83RyxJQUFBQSxjQUFBLFdBQ0xBLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsZUFDYmpVLElBQUFBLGNBQUEsVUFBSSxlQUNKQSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLGNBQWNwTixLQUluQzdHLElBQUFBLGNBQUEsVUFBSSxtQkFDSkEsSUFBQUEsY0FBQSxTQUFPaVUsVUFBVSx3Q0FDZmpVLElBQUFBLGNBQUEsYUFDQUEsSUFBQUEsY0FBQSxNQUFJaVUsVUFBVSxvQkFDWmpVLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsa0NBQWlDLFFBQy9DalUsSUFBQUEsY0FBQSxNQUFJaVUsVUFBVSx1Q0FBc0MsYUFHdERqVSxJQUFBQSxjQUFBLGFBQ0VBLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsWUFDWmpVLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsdUJBQ1ZsRyxFQUVBa2lDLEVBQWdCandDLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUseUJBQ2JqVSxJQUFBQSxjQUFBLFNBQUcsbUJBRUwsTUFHcEJBLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsNEJBRVZpOEIsRUFBVWx3QyxJQUFBQSxjQUFDNm1CLEVBQVEsQ0FBQ3hoQixPQUFRLEdBQTRCLEtBQXpCaUQsRUFBUzFaLElBQUksUUFBaUIsR0FBRzBaLEVBQVMxWixJQUFJLFlBQWMsS0FBSzBaLEVBQVMxWixJQUFJLGVBQ25HLEtBR1ZnWSxFQUFPNUcsSUFBQUEsY0FBQ293QyxFQUFZLENBQUM1ckIsUUFBVTVkLEVBQ1Y4c0IsWUFBY0EsRUFDZDdzQixJQUFNQSxFQUNOVCxRQUFVQSxFQUNWeEcsV0FBYUEsRUFDYnlNLGFBQWVBLElBQzdCLEtBR1Bra0MsRUFBYXZ3QyxJQUFBQSxjQUFDeXZDLFFBQU8sQ0FBQ3JwQyxRQUFVaXFDLElBQW1CLEtBR25EUixHQUEwQnhQLEVBQVdyZ0MsSUFBQUEsY0FBQzB2QyxTQUFRLENBQUNyUCxTQUFXQSxJQUFnQixTQVExRixFQzNIYSxNQUFNb1EsNkJBQTZCendDLElBQUFBLFVBTzlDM0MsV0FBQUEsQ0FBWXlOLEVBQU9pVCxHQUNmQyxNQUFNbFQsRUFBT2lULEdBQ2IsSUFBSSxXQUFFbmUsR0FBZWtMLEdBQ2pCLGFBQUU0bEMsR0FBaUI5d0MsSUFDdkJuUyxLQUFLK1AsTUFBUSxDQUNUcUosSUFBS3BaLEtBQUtrakQsbUJBQ1ZELGtCQUErQjNpRCxJQUFqQjJpRCxFQUE2Qix5Q0FBMkNBLEVBRTlGLENBRUFDLGlCQUFtQkEsS0FFakIsSUFBSSxjQUFFbnBDLEdBQWtCL1osS0FBS3FkLE1BRzdCLE9BRGtCLElBQUlrYSxLQUFKLENBQVF4ZCxFQUFjWCxNQUFPalcsRUFBSUMsVUFDbEN3SSxVQUFVLEVBRy9CK2tCLGdDQUFBQSxDQUFpQ0MsR0FDM0IsSUFBSSxXQUFFemUsR0FBZXllLEdBQ2pCLGFBQUVxeUIsR0FBaUI5d0MsSUFFdkJuUyxLQUFLNndCLFNBQVMsQ0FDVnpYLElBQUtwWixLQUFLa2pELG1CQUNWRCxrQkFBK0IzaUQsSUFBakIyaUQsRUFBNkIseUNBQTJDQSxHQUU5RixDQUVBdGtDLE1BQUFBLEdBQ0ksSUFBSSxXQUFFeE0sR0FBZW5TLEtBQUtxZCxPQUN0QixLQUFFa0MsR0FBU3BOLElBRVhneEMsRUFBd0J2ckIsWUFBWTUzQixLQUFLK1AsTUFBTWt6QyxjQUVuRCxNQUFxQixpQkFBVDFqQyxHQUFxQnZlLE9BQU8rRixLQUFLd1ksR0FBTWpaLE9BQWUsS0FFN0R0RyxLQUFLK1AsTUFBTXFKLEtBQVEzTCxzQkFBc0J6TixLQUFLK1AsTUFBTWt6QyxlQUNqQ3gxQyxzQkFBc0J6TixLQUFLK1AsTUFBTXFKLEtBSWpEN0csSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxlQUNoQmpVLElBQUFBLGNBQUEsS0FBR3NHLE9BQU8sU0FBU3VxQyxJQUFJLHNCQUFzQjVyQixLQUFNLEdBQUkyckIsZUFBcUNoMkMsbUJBQW1Cbk4sS0FBSytQLE1BQU1xSixRQUN0SDdHLElBQUFBLGNBQUM4d0MsZUFBYyxDQUFDcnRDLElBQUssR0FBSW10QyxTQUErQmgyQyxtQkFBbUJuTixLQUFLK1AsTUFBTXFKLE9BQVNrcUMsSUFBSSw2QkFMdEcsSUFRYixFQUlKLE1BQU1ELHVCQUF1Qjl3QyxJQUFBQSxVQU0zQjNDLFdBQUFBLENBQVl5TixHQUNWa1QsTUFBTWxULEdBQ05yZCxLQUFLK1AsTUFBUSxDQUNYK04sUUFBUSxFQUNSamEsT0FBTyxFQUVYLENBRUE0c0IsaUJBQUFBLEdBQ0UsTUFBTTh5QixFQUFNLElBQUlDLE1BQ2hCRCxFQUFJRSxPQUFTLEtBQ1h6akQsS0FBSzZ3QixTQUFTLENBQ1ovUyxRQUFRLEdBQ1IsRUFFSnlsQyxFQUFJRyxRQUFVLEtBQ1oxakQsS0FBSzZ3QixTQUFTLENBQ1podEIsT0FBTyxHQUNQLEVBRUowL0MsRUFBSXZ0QyxJQUFNaFcsS0FBS3FkLE1BQU1ySCxHQUN2QixDQUVBMmEsZ0NBQUFBLENBQWlDQyxHQUMvQixHQUFJQSxFQUFVNWEsTUFBUWhXLEtBQUtxZCxNQUFNckgsSUFBSyxDQUNwQyxNQUFNdXRDLEVBQU0sSUFBSUMsTUFDaEJELEVBQUlFLE9BQVMsS0FDWHpqRCxLQUFLNndCLFNBQVMsQ0FDWi9TLFFBQVEsR0FDUixFQUVKeWxDLEVBQUlHLFFBQVUsS0FDWjFqRCxLQUFLNndCLFNBQVMsQ0FDWmh0QixPQUFPLEdBQ1AsRUFFSjAvQyxFQUFJdnRDLElBQU00YSxFQUFVNWEsR0FDdEIsQ0FDRixDQUVBMkksTUFBQUEsR0FDRSxPQUFJM2UsS0FBSytQLE1BQU1sTSxNQUNOME8sSUFBQUEsY0FBQSxPQUFLK3dDLElBQUssVUFDUHRqRCxLQUFLK1AsTUFBTStOLE9BR2hCdkwsSUFBQUEsY0FBQSxPQUFLeUQsSUFBS2hXLEtBQUtxZCxNQUFNckgsSUFBS3N0QyxJQUFLdGpELEtBQUtxZCxNQUFNaW1DLE1BRnhDLElBR1gsRUNsSGEsTUFBTUssbUJBQW1CcHhDLElBQUFBLFVBZ0J0Q29NLE1BQUFBLEdBQ0UsSUFBSSxjQUNGNUUsR0FDRS9aLEtBQUtxZCxNQUVULE1BQU04SSxFQUFZcE0sRUFBYzhPLG1CQUVoQyxPQUFzQixJQUFuQjFDLEVBQVV4YixLQUNKNEgsSUFBQUEsY0FBQSxVQUFJLG1DQUlYQSxJQUFBQSxjQUFBLFdBQ0k0VCxFQUFVemdCLElBQUkxRixLQUFLNGpELG9CQUFvQno0QyxVQUN2Q2diLEVBQVV4YixLQUFPLEVBQUk0SCxJQUFBQSxjQUFBLFVBQUksb0NBQXdDLEtBR3pFLENBRUFxeEMsbUJBQXFCQSxDQUFDdjlCLEVBQVF6QyxLQUM1QixNQUFNLGNBQ0o3SixFQUFhLGFBQ2I2RSxFQUFZLGNBQ1o5RSxFQUFhLGdCQUNiZ0osRUFBZSxjQUNmRSxFQUFhLFdBQ2I3USxHQUNFblMsS0FBS3FkLE1BQ0g4cUIsRUFBd0JwdUIsRUFBY291Qix3QkFDdEMwYixFQUFxQmpsQyxFQUFhLHNCQUFzQixHQUN4RDZGLEVBQWU3RixFQUFhLGdCQUM1QnlwQixFQUFhaGlCLEVBQU9sbEIsSUFBSSxjQUM5QixPQUNFb1IsSUFBQUEsY0FBQ2tTLEVBQVksQ0FDWDNqQixJQUFLLGFBQWU4aUIsRUFDcEJ5QyxPQUFRQSxFQUNSekMsSUFBS0EsRUFDTDlKLGNBQWVBLEVBQ2ZnSixnQkFBaUJBLEVBQ2pCRSxjQUFlQSxFQUNmN1EsV0FBWUEsRUFDWnlNLGFBQWNBLEVBQ2R3WSxRQUFTcmQsRUFBY1gsT0FDdkI3RyxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLHlCQUVYNmhCLEVBQVczaUMsS0FBSXFqQyxJQUNiLE1BQU1wckIsRUFBT29yQixFQUFHNW5DLElBQUksUUFDZDBMLEVBQVNrOEIsRUFBRzVuQyxJQUFJLFVBQ2hCa3ZCLEVBQVd0c0IsSUFBQUEsS0FBUSxDQUFDLFFBQVM0WixFQUFNOVEsSUFFekMsT0FBK0MsSUFBM0NzN0IsRUFBc0J4NkIsUUFBUWQsR0FDekIsS0FJUDBGLElBQUFBLGNBQUNzeEMsRUFBa0IsQ0FDakIvaUQsSUFBSyxHQUFHNmMsS0FBUTlRLElBQ2hCd2pCLFNBQVVBLEVBQ1YwWSxHQUFJQSxFQUNKcHJCLEtBQU1BLEVBQ045USxPQUFRQSxFQUNSK1csSUFBS0EsR0FBTyxJQUVmelksV0FHTSxFQzdFTixNQUFNc1oscUJBQXFCbFMsSUFBQUEsVUFFeEN5ZCxvQkFBc0IsQ0FDcEIzSixPQUFRdGlCLElBQUFBLE9BQVUsQ0FBQyxHQUNuQjZmLElBQUssSUFtQlBqRixNQUFBQSxHQUNFLE1BQU0sT0FDSjBILEVBQU0sSUFDTnpDLEVBQUcsU0FDSCtMLEVBQVEsY0FDUjdWLEVBQWEsZ0JBQ2JnSixFQUFlLGNBQ2ZFLEVBQWEsV0FDYjdRLEVBQVUsYUFDVnlNLEVBQVksUUFDWndZLEdBQ0VwM0IsS0FBS3FkLE1BRVQsSUFBSSxhQUNGK1ksRUFBWSxZQUNaalQsR0FDRWhSLElBRUosTUFBTXFrQixFQUFXNVgsRUFBYSxZQUN4QndhLEVBQVd4YSxFQUFhLFlBQVksR0FDcENrbEMsRUFBV2xsQyxFQUFhLFlBQ3hCMGEsRUFBTzFhLEVBQWEsUUFDcEI2SSxFQUFjN0ksRUFBYSxlQUMzQjhJLEVBQWdCOUksRUFBYSxpQkFFbkMsSUFHSW1sQyxFQUhBQyxFQUFpQjM5QixFQUFPemhCLE1BQU0sQ0FBQyxhQUFjLGVBQWdCLE1BQzdEcS9DLEVBQTZCNTlCLEVBQU96aEIsTUFBTSxDQUFDLGFBQWMsZUFBZ0IsZ0JBQ3pFcy9DLEVBQXdCNzlCLEVBQU96aEIsTUFBTSxDQUFDLGFBQWMsZUFBZ0IsUUFHdEVtL0MsRUFERXA5QyxPQUFPbVQsSUFBa0JuVCxPQUFPbVQsRUFBY08sZ0JBQzNCb2QsYUFBYXlzQixFQUF1QjlzQixFQUFTLENBQUUvYyxlQUFnQlAsRUFBY08sbUJBRTdFNnBDLEVBR3ZCLElBQUl0aEMsRUFBYSxDQUFDLGlCQUFrQmdCLEdBQ2hDdWdDLEVBQVVyaEMsRUFBZ0J3RixRQUFRMUYsRUFBNkIsU0FBakJ3VCxHQUE0QyxTQUFqQkEsR0FFN0UsT0FDRTdqQixJQUFBQSxjQUFBLE9BQUtpVSxVQUFXMjlCLEVBQVUsOEJBQWdDLHVCQUV4RDV4QyxJQUFBQSxjQUFBLE1BQ0V5YyxRQUFTQSxJQUFNaE0sRUFBY1UsS0FBS2QsR0FBYXVoQyxHQUMvQzM5QixVQUFZdzlCLEVBQXlDLGNBQXhCLHNCQUM3QjEwQyxHQUFJc1QsRUFBV2xkLEtBQUluQixHQUFLd0osbUJBQW1CeEosS0FBSThJLEtBQUssS0FDcEQsV0FBVXVXLEVBQ1YsZUFBY3VnQyxHQUVkNXhDLElBQUFBLGNBQUN1eEMsRUFBUSxDQUNQTSxRQUFTamhDLEVBQ1RtRixRQUFTNjdCLEVBQ1R4bUMsS0FBTS9QLG1CQUFtQmdXLEdBQ3pCaEQsS0FBTWdELElBQ05vZ0MsRUFDQXp4QyxJQUFBQSxjQUFBLGFBQ0VBLElBQUFBLGNBQUM2bUIsRUFBUSxDQUFDeGhCLE9BQVFvc0MsS0FGSHp4QyxJQUFBQSxjQUFBLGNBTWpCd3hDLEVBQ0F4eEMsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxzQkFDYmpVLElBQUFBLGNBQUEsYUFDRUEsSUFBQUEsY0FBQyttQixFQUFJLENBQ0Q5QixLQUFNSSxZQUFZbXNCLEdBQ2xCLzBCLFFBQVVyckIsR0FBTUEsRUFBRWc0QyxrQkFDbEI5aUMsT0FBTyxVQUNQb3JDLEdBQThCRixLQVBqQixLQWF2Qnh4QyxJQUFBQSxjQUFBLFVBQ0UsZ0JBQWU0eEMsRUFDZjM5QixVQUFVLG1CQUNWMEksTUFBT2kxQixFQUFVLHFCQUF1QixtQkFDeENuMUIsUUFBU0EsSUFBTWhNLEVBQWNVLEtBQUtkLEdBQWF1aEMsSUFFOUNBLEVBQVU1eEMsSUFBQUEsY0FBQ2tWLEVBQVcsQ0FBQ2pCLFVBQVUsVUFBYWpVLElBQUFBLGNBQUNtVixFQUFhLENBQUNsQixVQUFVLFlBSTVFalUsSUFBQUEsY0FBQ2lrQixFQUFRLENBQUNFLFNBQVV5dEIsR0FDakJ4MEIsR0FJVCxFQzlHYSxNQUFNMDBCLGtCQUFrQjNuQixFQUFBQSxjQTJCckMxTSxvQkFBc0IsQ0FDcEJwUyxVQUFXLEtBQ1gvQyxTQUFVLEtBQ1ZvUCxRQUFTLEtBQ1RvRyxVQUFVMVQsRUFBQUEsRUFBQUEsUUFDVjJuQyxRQUFTLElBR1gzbEMsTUFBQUEsR0FDRSxJQUFJLFNBQ0YwUixFQUFRLFNBQ1J4VixFQUFRLFFBQ1JvUCxFQUFPLFlBQ1BzNkIsRUFBVyxjQUNYQyxFQUFhLGFBQ2JDLEVBQVksY0FDWkMsRUFBYSxVQUNiQyxFQUFTLEdBQ1RqK0MsRUFBRSxhQUNGa1ksRUFBWSxXQUNaek0sRUFBVSxZQUNWaU8sRUFBVyxjQUNYckcsRUFBYSxZQUNiL0MsRUFBVyxjQUNYZ0QsRUFBYSxZQUNiNHFDLEVBQVcsY0FDWDlxQyxHQUNFOVosS0FBS3FkLE1BQ0x3bkMsRUFBaUI3a0QsS0FBS3FkLE1BQU1PLFdBRTVCLFdBQ0YrWCxFQUFVLFFBQ1ZyTixFQUFPLEtBQ1AzSyxFQUFJLE9BQ0o5USxFQUFNLEdBQ05rOEIsRUFBRSxJQUNGbmxCLEVBQUcsWUFDSEMsRUFBVyxjQUNYaWhDLEVBQWEsdUJBQ2IxQyxFQUFzQixnQkFDdEIyQyxFQUFlLGtCQUNmQyxHQUNFSCxFQUFlMy9DLFFBRWYsWUFDRjJ6QixFQUFXLGFBQ1hpUCxFQUFZLFFBQ1pyTixHQUNFc08sRUFFSixNQUFNN1AsRUFBa0I0TyxFQUFlclEsYUFBYXFRLEVBQWExdUIsSUFBS1csRUFBY1gsTUFBTyxDQUFFaUIsZUFBZ0JQLEVBQWNPLG1CQUFzQixHQUNqSixJQUFJdUQsRUFBWWluQyxFQUFlamdELE1BQU0sQ0FBQyxPQUNsQzZrQyxFQUFZN3JCLEVBQVV6YyxJQUFJLGFBQzFCZ3FDLEUzS3dHRCxTQUFTOFosUUFBUUMsRUFBVW4rQyxHQUNoQyxJQUFJaEQsSUFBQUEsU0FBWWlCLFdBQVdrZ0QsR0FDekIsT0FBT25oRCxJQUFBQSxPQUVULElBQUkyRixFQUFNdzdDLEVBQVN0Z0QsTUFBTVksTUFBTUMsUUFBUXNCLEdBQVFBLEVBQU8sQ0FBQ0EsSUFDdkQsT0FBT2hELElBQUFBLEtBQVFpRixPQUFPVSxHQUFPQSxFQUFNM0YsSUFBQUEsTUFDckMsQzJLOUdxQmtoRCxDQUFRcm5DLEVBQVcsQ0FBQyxlQUNqQ21kLEVBQWtCaGhCLEVBQWNnaEIsZ0JBQWdCcGQsRUFBTTlRLEdBQ3REK1YsRUFBYSxDQUFDLGFBQWNnQixFQUFLQyxHQUNqQytVLEVBQWEzcUIsY0FBYzJQLEdBRS9CLE1BQU11bkMsRUFBWXZtQyxFQUFhLGFBQ3pCd21DLEVBQWF4bUMsRUFBYyxjQUMzQnltQyxFQUFVem1DLEVBQWMsV0FDeEJtakMsRUFBUW5qQyxFQUFjLFNBQ3RCNFgsRUFBVzVYLEVBQWMsWUFDekJ3YSxFQUFXeGEsRUFBYSxZQUFZLEdBQ3BDMmIsRUFBVTNiLEVBQWMsV0FDeEIwbUMsRUFBbUIxbUMsRUFBYyxvQkFDakMybUMsRUFBZTNtQyxFQUFjLGdCQUM3QjRtQyxFQUFtQjVtQyxFQUFjLG9CQUNqQzBhLEVBQU8xYSxFQUFjLFNBRXJCLGVBQUUrWixHQUFtQnhtQixJQUczQixHQUFHczNCLEdBQWE1dUIsR0FBWUEsRUFBU2xRLEtBQU8sRUFBRyxDQUM3QyxJQUFJNjNDLEdBQWlCL1ksRUFBVXRvQyxJQUFJME0sT0FBT2dOLEVBQVMxWixJQUFJLGNBQWdCc29DLEVBQVV0b0MsSUFBSSxXQUNyRjBaLEVBQVdBLEVBQVNwUSxJQUFJLGdCQUFpQiszQyxFQUMzQyxDQUVBLElBQUlpRCxFQUFjLENBQUU5bkMsRUFBTTlRLEdBRTFCLE1BQU00L0IsR0FBbUIxeUIsRUFBYzB5QixpQkFBaUIsQ0FBQzl1QixFQUFNOVEsSUFFL0QsT0FDSTBGLElBQUFBLGNBQUEsT0FBS2lVLFVBQVdtUCxFQUFhLDZCQUErQnJOLEVBQVUsbUJBQW1CemIsWUFBbUIsbUJBQW1CQSxJQUFVeUMsR0FBSXZCLG1CQUFtQjZVLEVBQVd2VixLQUFLLE9BQzlLa0YsSUFBQUEsY0FBQ2l6QyxFQUFnQixDQUFDWCxlQUFnQkEsRUFBZ0J2OEIsUUFBU0EsRUFBU2k4QixZQUFhQSxFQUFhM2xDLGFBQWNBLEVBQWM1SCxZQUFhQSxFQUFhZ0QsY0FBZUEsRUFBZXFXLFNBQVVBLElBQzVMOWQsSUFBQUEsY0FBQ2lrQixFQUFRLENBQUNFLFNBQVVwTyxHQUNsQi9WLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsZ0JBQ1Y1SSxHQUFhQSxFQUFValQsTUFBdUIsT0FBZGlULEVBQXFCLEtBQ3REckwsSUFBQUEsY0FBQ21qQixhQUFjLENBQUNoUCxPQUFPLE9BQU9ELE1BQU0sT0FBT0QsVUFBVSw4QkFFckRtUCxHQUFjcGpCLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsd0JBQXVCLHdCQUNuRHFTLEdBQ0F0bUIsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSwrQkFDYmpVLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsdUJBQ2JqVSxJQUFBQSxjQUFDNm1CLEVBQVEsQ0FBQ3hoQixPQUFTaWhCLE1BS3ZCSyxFQUNBM21CLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsaUNBQ2JqVSxJQUFBQSxjQUFBLE1BQUlpVSxVQUFVLHdCQUF1QixxQkFDckNqVSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLHlCQUNac2hCLEVBQWFqUCxhQUNadG1CLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsc0NBQ2RqVSxJQUFBQSxjQUFDNm1CLEVBQVEsQ0FBQ3hoQixPQUFTa3dCLEVBQWFqUCxlQUdwQ3RtQixJQUFBQSxjQUFDK21CLEVBQUksQ0FBQ3pnQixPQUFPLFNBQVMyTixVQUFVLDhCQUE4QmdSLEtBQU1JLFlBQVlzQixJQUFtQkEsS0FFOUYsS0FHUnRiLEdBQWNBLEVBQVVqVCxLQUN6QjRILElBQUFBLGNBQUM2eUMsRUFBVSxDQUNUamEsV0FBWUEsRUFDWjlhLFNBQVVBLEVBQVN6bkIsS0FBSyxjQUN4QmdWLFVBQVdBLEVBQ1g2bkMsWUFBYUEsRUFDYmpCLGNBQWtCQSxFQUNsQkMsYUFBaUJBLEVBQ2pCQyxjQUFrQkEsRUFDbEJLLGdCQUFvQkEsRUFDcEJELGNBQWVBLEVBRWZwK0MsR0FBSUEsRUFDSmtZLGFBQWVBLEVBQ2Z3QixZQUFjQSxFQUNkckcsY0FBZ0JBLEVBQ2hCa3dCLFdBQWEsQ0FBQ3RzQixFQUFNOVEsR0FDcEJzRixXQUFhQSxFQUNieXlDLFlBQWNBLEVBQ2Q5cUMsY0FBZ0JBLElBbkJjLEtBdUIvQmlyQyxFQUNEeHlDLElBQUFBLGNBQUMreUMsRUFBZ0IsQ0FDZjFtQyxhQUFjQSxFQUNkakIsS0FBTUEsRUFDTjlRLE9BQVFBLEVBQ1I2NEMsaUJBQWtCOW5DLEVBQVV6YyxJQUFJLFdBQ2hDd2tELFlBQWE1ckMsRUFBY211QixRQUFRdGpDLE1BQU0sQ0FBQytZLEVBQU0sWUFDaERpb0Msa0JBQW1COXJDLEVBQWNPLGVBQ2pDd3JDLGtCQUFtQmpCLEVBQVlpQixrQkFDL0JDLHVCQUF3QmxCLEVBQVlrQix1QkFDcENDLGtCQUFtQmpzQyxFQUFja3NDLG9CQUNqQ0Msd0JBQXlCbnNDLEVBQWNNLHVCQVh0QixLQWVuQjJxQyxHQUFvQkQsR0FBdUJycUIsR0FBV0EsRUFBUTl2QixLQUFPNEgsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxtQkFDaEZqVSxJQUFBQSxjQUFDZ29CLEVBQU8sQ0FBQ0UsUUFBVUEsRUFDVjljLEtBQU9BLEVBQ1A5USxPQUFTQSxFQUNUdVQsWUFBY0EsRUFDZHVhLGNBQWdCSSxLQUxPLE1BU25DZ3FCLElBQW9CRCxHQUFpQnJZLEdBQWlCbm1DLFFBQVUsRUFBSSxLQUFPaU0sSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxvQ0FBbUMsZ0VBRTVIalUsSUFBQUEsY0FBQSxVQUNJazZCLEdBQWlCL21DLEtBQUksQ0FBQzdCLEVBQU9xSCxJQUFVcUgsSUFBQUEsY0FBQSxNQUFJelIsSUFBS29LLEdBQU8sSUFBR3JILEVBQU8sU0FLM0UwTyxJQUFBQSxjQUFBLE9BQUtpVSxVQUFhdStCLEdBQW9CbHFDLEdBQWFpcUMsRUFBcUMsWUFBcEIsbUJBQy9EQyxHQUFvQkQsRUFFbkJ2eUMsSUFBQUEsY0FBQzh5QyxFQUFPLENBQ056bkMsVUFBWUEsRUFDWndDLFlBQWNBLEVBQ2RyRyxjQUFnQkEsRUFDaEJELGNBQWdCQSxFQUNoQjhxQyxZQUFjQSxFQUNkam5DLEtBQU9BLEVBQ1A5USxPQUFTQSxFQUNUODNDLFVBQVlBLEVBQ1p0cEIsU0FBVTJwQixJQVh1QixLQWNuQ0QsR0FBb0JscUMsR0FBYWlxQyxFQUNqQ3Z5QyxJQUFBQSxjQUFDd3ZDLEVBQUssQ0FDSjNoQyxZQUFjQSxFQUNkekMsS0FBT0EsRUFDUDlRLE9BQVNBLElBSnVDLE1BUXZEbTRDLEVBQW9CenlDLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUscUJBQW9CalUsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxhQUF5QixLQUUzRmlqQixFQUNDbDNCLElBQUFBLGNBQUM0eUMsRUFBUyxDQUNSMWIsVUFBWUEsRUFDWnhmLFFBQVVBLEVBQ1ZpOEIsaUJBQW1CcnJDLEVBQ25CK0QsYUFBZUEsRUFDZnpNLFdBQWFBLEVBQ2I0SCxjQUFnQkEsRUFDaEI2cUMsWUFBYUEsRUFDYjlxQyxjQUFlQSxFQUNmc0csWUFBY0EsRUFDZG9vQixTQUFVenVCLEVBQWMreEIsbUJBQW1CLENBQUNudUIsRUFBTTlRLElBQ2xEMitCLGNBQWdCenhCLEVBQWMweEIsbUJBQW1CLENBQUM5dEIsRUFBTTlRLElBQ3hEd2pCLFNBQVVBLEVBQVN6bkIsS0FBSyxhQUN4QitVLEtBQU9BLEVBQ1A5USxPQUFTQSxFQUNUdTFDLHVCQUF5QkEsRUFDekIxN0MsR0FBSUEsSUFqQkssS0FvQlppeUIsR0FBbUJDLEVBQVdqdUIsS0FDL0I0SCxJQUFBQSxjQUFDZ3pDLEVBQVksQ0FBQzNzQixXQUFhQSxFQUFhaGEsYUFBZUEsSUFEakIsT0FPcEQsRUMxUGEsTUFBTWlsQywyQkFBMkJubkIsRUFBQUEsY0FDOUM5c0IsV0FBQUEsQ0FBWXlOLEVBQU9pVCxHQUNqQkMsTUFBTWxULEVBQU9pVCxHQUViLE1BQU0sZ0JBQUV5MEIsR0FBb0IxbkMsRUFBTWxMLGFBRWxDblMsS0FBSytQLE1BQVEsQ0FDWGcxQyxrQkFDQUMsbUJBQW1CLEVBRXZCLENBaUNBaDFCLG9CQUFzQixDQUNwQnBILGFBQWEsRUFDYi9OLFNBQVUsS0FDVmlxQyxlQUFlLEVBQ2ZxQixvQkFBb0IsRUFDcEIvRCx3QkFBd0IsR0FHMUI1akMsZUFBQUEsQ0FBZ0I0bkMsRUFBVy9vQyxHQUN6QixNQUFNLEdBQUUwckIsRUFBRSxnQkFBRWptQixFQUFlLFdBQUUzUSxHQUFla0wsR0FDdEMsYUFBRStZLEVBQVksWUFBRWpULEVBQVcsbUJBQUVnakMsRUFBa0IsdUJBQUUvRCxFQUFzQix1QkFBRWlFLEdBQTJCbDBDLElBQ3BHeVcsRUFBYzlGLEVBQWdCOEYsY0FDOUIvRSxFQUFja2xCLEVBQUdua0MsTUFBTSxDQUFDLFlBQWEsMkJBQTZCbWtDLEVBQUdua0MsTUFBTSxDQUFDLFlBQWEsa0JBQW1CbXRDLEVBQUFBLEdBQUFBLE1BQUtoSixFQUFHNW5DLElBQUksYUFBY2tjLEVBQU1NLEtBQU1OLEVBQU14USxTQUFXazhCLEVBQUc1bkMsSUFBSSxNQUMxS3loQixFQUFhLENBQUMsYUFBY3ZGLEVBQU11RyxJQUFLQyxHQUN2Q2loQyxFQUFnQnVCLEVBQXVCMTRDLFFBQVEwUCxFQUFNeFEsU0FBVyxTQUFxQyxJQUF4QndRLEVBQU15bkMsY0FDdkZ6bkMsRUFBTXRELGNBQWNnd0IsaUJBQWlCMXNCLEVBQU1NLEtBQU1OLEVBQU14USxRQUFVd1EsRUFBTXluQyxlQUNuRS9vQyxFQUFXZ3RCLEVBQUdua0MsTUFBTSxDQUFDLFlBQWEsY0FBZ0J5WSxFQUFNdEQsY0FBY2dDLFdBRTVFLE1BQU8sQ0FDTDhILGNBQ0F5aUMscUJBQXNCbmpDLEVBQ3RCeUYsY0FDQXU5QixxQkFDQS9ELHlCQUNBMEMsZ0JBQ0Evb0MsV0FDQXlCLGFBQWNILEVBQU1yRCxjQUFjd0QsYUFBYXpCLEdBQy9DdU0sUUFBU3hGLEVBQWdCd0YsUUFBUTFGLEVBQTZCLFNBQWpCd1QsR0FDN0Ntd0IsVUFBVyxTQUFTbHBDLEVBQU1NLFFBQVFOLEVBQU14USxTQUN4Q2dPLFNBQVV3QyxFQUFNdEQsY0FBYzZ2QixZQUFZdnNCLEVBQU1NLEtBQU1OLEVBQU14USxRQUM1RG9kLFFBQVM1TSxFQUFNdEQsY0FBYzh2QixXQUFXeHNCLEVBQU1NLEtBQU1OLEVBQU14USxRQUU5RCxDQUVBNGpCLGlCQUFBQSxHQUNFLE1BQU0sUUFBRW5JLEdBQVl0b0IsS0FBS3FkLE1BQ25CbXBDLEVBQWtCeG1ELEtBQUt5bUQscUJBRTFCbitCLFFBQStCaG9CLElBQXBCa21ELEdBQ1p4bUQsS0FBS2cyQix3QkFFVCxDQUVBckYsZ0NBQUFBLENBQWlDQyxHQUMvQixNQUFNLFNBQUUvVixFQUFRLFFBQUV5TixHQUFZc0ksRUFDeEI0MUIsRUFBa0J4bUQsS0FBS3ltRCxxQkFFMUI1ckMsSUFBYTdhLEtBQUtxZCxNQUFNeEMsVUFDekI3YSxLQUFLNndCLFNBQVMsQ0FBRW0wQixtQkFBbUIsSUFHbEMxOEIsUUFBK0Job0IsSUFBcEJrbUQsR0FDWnhtRCxLQUFLZzJCLHdCQUVULENBRUF1dUIsWUFBYUEsS0FDWCxJQUFJLGNBQUV2aEMsRUFBYSxJQUFFWSxFQUFHLFlBQUVDLEVBQVcsUUFBRXlFLEdBQVl0b0IsS0FBS3FkLE1BQ3hELE1BQU1tcEMsRUFBa0J4bUQsS0FBS3ltRCxxQkFDekJuK0IsUUFBK0Job0IsSUFBcEJrbUQsR0FFYnhtRCxLQUFLZzJCLHlCQUVQaFQsRUFBY1UsS0FBSyxDQUFDLGFBQWNFLEVBQUtDLElBQWV5RSxFQUFRLEVBR2hFbzhCLGNBQWNBLEtBQ1oxa0QsS0FBSzZ3QixTQUFTLENBQUNrMEIsaUJBQWtCL2tELEtBQUsrUCxNQUFNZzFDLGlCQUFpQixFQUcvRFAsY0FBZUEsS0FDYnhrRCxLQUFLNndCLFNBQVMsQ0FBQ2swQixpQkFBa0Iva0QsS0FBSytQLE1BQU1nMUMsaUJBQWlCLEVBRy9ETixhQUFnQnhhLElBQ2QsTUFBTXljLEVBQTBCMW1ELEtBQUtxZCxNQUFNdkQsY0FBYzZzQyxpQ0FBaUMxYyxHQUMxRmpxQyxLQUFLcWQsTUFBTXVuQyxZQUFZZ0Msb0JBQW9CLENBQUVobEQsTUFBTzhrRCxFQUF5QnpjLGNBQWEsRUFHNUYwYSxVQUFZQSxLQUNWM2tELEtBQUs2d0IsU0FBUyxDQUFFbTBCLG1CQUFtQixHQUFPLEVBRzVDeUIsbUJBQXFCQSxLQUNuQixNQUFNLGNBQ0oxc0MsRUFBYSxLQUNiNEQsRUFBSSxPQUNKOVEsRUFBTSxTQUNOd2pCLEdBQ0Vyd0IsS0FBS3FkLE1BRVQsT0FBR2dULEVBQ010VyxFQUFjNmMsb0JBQW9CdkcsRUFBU25yQixRQUc3QzZVLEVBQWM2YyxvQkFBb0IsQ0FBQyxRQUFTalosRUFBTTlRLEdBQVEsRUFHbkVtcEIsdUJBQXlCQSxLQUN2QixNQUFNLFlBQ0o1VixFQUFXLEtBQ1h6QyxFQUFJLE9BQ0o5USxFQUFNLFNBQ053akIsR0FDRXJ3QixLQUFLcWQsTUFHVCxPQUFHZ1QsRUFDTWpRLEVBQVk0Vix1QkFBdUIzRixFQUFTbnJCLFFBRzlDa2IsRUFBWTRWLHVCQUF1QixDQUFDLFFBQVNyWSxFQUFNOVEsR0FBUSxFQUdwRThSLE1BQUFBLEdBQ0UsSUFDRW9xQixHQUFJOGQsRUFBWSxJQUNoQmpqQyxFQUFHLEtBQ0hqRyxFQUFJLE9BQ0o5USxFQUFNLFNBQ05rUCxFQUFRLGFBQ1J5QixFQUFZLFlBQ1pxRyxFQUFXLFlBQ1grRSxFQUFXLFFBQ1hOLEVBQU8sVUFDUGkrQixFQUFTLGNBQ1R6QixFQUFhLFNBQ2JqcUMsRUFBUSxRQUNSb1AsRUFBTyxtQkFDUGs4QixFQUFrQix1QkFDbEIvRCxFQUFzQixxQkFDdEJrRSxFQUFvQixTQUNwQmoyQixFQUFRLGNBQ1J0VyxFQUFhLFlBQ2JxRyxFQUFXLGFBQ1h4QixFQUFZLFdBQ1p6TSxFQUFVLGdCQUNWMlEsRUFBZSxjQUNmRSxFQUFhLFlBQ2JoTSxFQUFXLGNBQ1hnRCxFQUFhLFlBQ2I0cUMsRUFBVyxjQUNYOXFDLEVBQWEsR0FDYnBULEdBQ0UxRyxLQUFLcWQsTUFFVCxNQUFNZ25DLEVBQVl6bEMsRUFBYyxhQUUxQjRuQyxFQUFrQnhtRCxLQUFLeW1ELHVCQUF3QnI0QyxFQUFBQSxFQUFBQSxPQUUvQ3kyQyxHQUFpQnI2QyxFQUFBQSxFQUFBQSxRQUFPLENBQzVCdStCLEdBQUl5ZCxFQUNKNWlDLE1BQ0FqRyxPQUNBMm1DLFFBQVN1QyxFQUFhamlELE1BQU0sQ0FBQyxZQUFhLGFBQWUsR0FDekQrd0IsV0FBWTZ3QixFQUFnQnJsRCxJQUFJLGVBQWlCMGxELEVBQWFqaUQsTUFBTSxDQUFDLFlBQWEsaUJBQWtCLEVBQ3BHaUksU0FDQWtQLFdBQ0F5QixlQUNBcUcsY0FDQWlqQyxvQkFBcUJOLEVBQWdCNWhELE1BQU0sQ0FBQyxZQUFhLDBCQUN6RGdrQixjQUNBTixVQUNBaStCLFlBQ0F6QixnQkFDQTc2QixVQUNBazhCLHFCQUNBL0QseUJBQ0FrRSx1QkFDQXRCLGtCQUFtQmhsRCxLQUFLK1AsTUFBTWkxQyxrQkFDOUJELGdCQUFpQi9rRCxLQUFLK1AsTUFBTWcxQyxrQkFHOUIsT0FDRXh5QyxJQUFBQSxjQUFDOHhDLEVBQVMsQ0FDUnptQyxVQUFXaW5DLEVBQ1hocUMsU0FBVUEsRUFDVm9QLFFBQVNBLEVBQ1QzQixRQUFTQSxFQUVUaThCLFlBQWF2a0QsS0FBS3VrRCxZQUNsQkMsY0FBZXhrRCxLQUFLd2tELGNBQ3BCQyxhQUFjemtELEtBQUt5a0QsYUFDbkJDLGNBQWUxa0QsS0FBSzBrRCxjQUNwQkMsVUFBVzNrRCxLQUFLMmtELFVBQ2hCdDBCLFNBQVVBLEVBRVZqUSxZQUFjQSxFQUNkckcsY0FBZ0JBLEVBQ2hCNnFDLFlBQWFBLEVBQ2I5cUMsY0FBZUEsRUFDZmtKLGNBQWdCQSxFQUNoQkYsZ0JBQWtCQSxFQUNsQjlMLFlBQWNBLEVBQ2RnRCxjQUFnQkEsRUFDaEI0RSxhQUFlQSxFQUNmek0sV0FBYUEsRUFDYnpMLEdBQUlBLEdBR1YsRUN6UEYsTUFBTSxHQUErQnpHLFFBQVEsbUIsaUNDTzlCLE1BQU11bEQseUJBQXlCOW9CLEVBQUFBLGNBYTVDMU0sb0JBQXNCLENBQ3BCNjBCLGVBQWdCLEtBQ2hCeDBCLFVBQVUxVCxFQUFBQSxFQUFBQSxRQUNWMm5DLFFBQVMsSUFHWDNsQyxNQUFBQSxHQUVFLElBQUksUUFDRjJKLEVBQU8sWUFDUGk4QixFQUFXLGFBQ1gzbEMsRUFBWSxZQUNaNUgsRUFBVyxjQUNYZ0QsRUFBYSxlQUNiNnFDLEVBQWMsU0FDZHgwQixHQUNFcndCLEtBQUtxZCxPQUVMLFFBQ0ZpbkMsRUFBTyxhQUNQOW1DLEVBQVksT0FDWjNRLEVBQU0sR0FDTms4QixFQUFFLFlBQ0ZuZ0IsRUFBVyxLQUNYakwsRUFBSSxZQUNKa0csRUFBVyxvQkFDWGlqQyxFQUFtQixtQkFDbkJYLEdBQ0V0QixFQUFlMy9DLFFBR2pCby9DLFFBQVN5QyxHQUNQaGUsRUFFQWh0QixFQUFXOG9DLEVBQWUxakQsSUFBSSxZQUVsQyxNQUFNdTZDLEVBQXdCOThCLEVBQWEseUJBQXlCLEdBQzlEb29DLEVBQXlCcG9DLEVBQWEsMEJBQ3RDcW9DLEVBQXVCcm9DLEVBQWEsd0JBQ3BDNlgsRUFBYTdYLEVBQWEsY0FBYyxHQUN4Q3NvQyxFQUFxQnRvQyxFQUFhLHNCQUFzQixHQUN4RDZJLEVBQWM3SSxFQUFhLGVBQzNCOEksRUFBZ0I5SSxFQUFhLGlCQUU3QnVvQyxFQUFjcHJDLEtBQWNBLEVBQVM5UyxRQUNyQ20rQyxFQUFxQkQsR0FBaUMsSUFBbEJwckMsRUFBU3BSLE1BQWNvUixFQUFTcFgsUUFBUThLLFVBQzVFNDNDLEdBQWtCRixHQUFlQyxFQUN2QyxPQUNFNzBDLElBQUFBLGNBQUEsT0FBS2lVLFVBQVcsbUNBQW1DM1osS0FDakQwRixJQUFBQSxjQUFBLFVBQ0UsZ0JBQWUrVixFQUNmOUIsVUFBVSwwQkFDVndJLFFBQVN1MUIsR0FFVGh5QyxJQUFBQSxjQUFDeTBDLEVBQXNCLENBQUNuNkMsT0FBUUEsSUFDaEMwRixJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLDRDQUNialUsSUFBQUEsY0FBQzAwQyxFQUFvQixDQUFDcm9DLGFBQWNBLEVBQWNpbUMsZUFBZ0JBLEVBQWdCeDBCLFNBQVVBLElBRTFGekgsRUFDQXJXLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsK0JBQ1o1YSxLQUFTbTdDLEdBQW1CekMsSUFGakIsTUFPakI2QixJQUF1QlcsR0FBdUJqakMsR0FBZXRSLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsZ0NBQWdDc2dDLEdBQXVCampDLEdBQXNCLE1BRTdKdFIsSUFBQUEsY0FBQzIwQyxFQUFrQixDQUFDSSxXQUFZLEdBQUdqM0IsRUFBU2x2QixJQUFJLE9BRTlDa21ELEVBQWlCLEtBQ2Y5MEMsSUFBQUEsY0FBQ21wQyxFQUFxQixDQUNwQmwrQixhQUFjQSxFQUNkd1IsUUFBU0EsS0FDUCxNQUFNdTRCLEVBQXdCdnRDLEVBQWNrRCwyQkFBMkJuQixHQUN2RS9FLEVBQVlILGdCQUFnQjB3QyxFQUFzQixJQUkxRGgxQyxJQUFBQSxjQUFDa2tCLEVBQVUsQ0FBQzlZLEtBQU0wUyxJQUNsQjlkLElBQUFBLGNBQUEsVUFDRSxhQUFZLEdBQUcxRixLQUFVOFEsRUFBS3ZRLFFBQVEsTUFBTyxRQUM3Q29aLFVBQVUsd0JBQ1YsZ0JBQWU4QixFQUNmMEssU0FBUyxLQUNUaEUsUUFBU3UxQixHQUNSajhCLEVBQVUvVixJQUFBQSxjQUFDa1YsRUFBVyxDQUFDakIsVUFBVSxVQUFhalUsSUFBQUEsY0FBQ21WLEVBQWEsQ0FBQ2xCLFVBQVUsV0FJaEYsRUN6R2EsTUFBTXdnQywrQkFBK0J0cUIsRUFBQUEsY0FPbEQxTSxvQkFBc0IsQ0FDcEI2MEIsZUFBZ0IsTUFFbEJsbUMsTUFBQUEsR0FFRSxJQUFJLE9BQ0Y5UixHQUNFN00sS0FBS3FkLE1BRVQsT0FDRTlLLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsMEJBQTBCM1osRUFBT3dHLGNBRXJELEVDakJhLE1BQU00ekMsNkJBQTZCdnFCLEVBQUFBLGNBUWhEL2QsTUFBQUEsR0FDRSxJQUFJLGFBQ0ZDLEVBQVksZUFDWmltQyxHQUNFN2tELEtBQUtxZCxPQUdMLFdBQ0ZzWSxFQUFVLFFBQ1ZyTixFQUFPLEtBQ1AzSyxFQUFJLElBQ0ppRyxFQUFHLFlBQ0hDLEVBQVcscUJBQ1h5aUMsR0FDRXpCLEVBQWUzL0MsT0FNbkIsTUFBTXNpRCxFQUFZN3BDLEVBQUswRixNQUFNLFdBQzdCLElBQUssSUFBSXRZLEVBQUksRUFBR0EsRUFBSXk4QyxFQUFVbGhELE9BQVF5RSxHQUFLLEVBQ3pDeThDLEVBQVVDLE9BQU8xOEMsRUFBRyxFQUFHd0gsSUFBQUEsY0FBQSxPQUFLelIsSUFBS2lLLEtBR25DLE1BQU0rNEMsRUFBV2xsQyxFQUFjLFlBRS9CLE9BQ0VyTSxJQUFBQSxjQUFBLFFBQU1pVSxVQUFZbVAsRUFBYSxtQ0FBcUMsdUJBQ2xFLFlBQVdoWSxHQUNYcEwsSUFBQUEsY0FBQ3V4QyxFQUFRLENBQ0xNLFFBQVNrQyxFQUNUaCtCLFFBQVNBLEVBQ1QzSyxLQUFNL1AsbUJBQW1CLEdBQUdnVyxLQUFPQyxLQUNuQ2pELEtBQU00bUMsSUFJaEIsRUNqREssTUErQlAscUJBL0I0QmpDLEVBQUczc0IsYUFBWWhhLG1CQUN2QyxJQUFJOG9DLEVBQWtCOW9DLEVBQWEsbUJBQ25DLE9BQ0VyTSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLG1CQUNialUsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSwwQkFDYmpVLElBQUFBLGNBQUEsVUFBSSxlQUVOQSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLG1CQUVialUsSUFBQUEsY0FBQSxhQUNFQSxJQUFBQSxjQUFBLGFBQ0VBLElBQUFBLGNBQUEsVUFDRUEsSUFBQUEsY0FBQSxNQUFJaVUsVUFBVSxjQUFhLFNBQzNCalUsSUFBQUEsY0FBQSxNQUFJaVUsVUFBVSxjQUFhLFdBRy9CalUsSUFBQUEsY0FBQSxhQUVRcW1CLEVBQVc5YyxXQUFXcFcsS0FBSSxFQUFFbEIsRUFBR0QsS0FBT2dPLElBQUFBLGNBQUNtMUMsRUFBZSxDQUFDNW1ELElBQUssR0FBRzBELEtBQUtELElBQUtvakQsS0FBTW5qRCxFQUFHb2pELEtBQU1yakQsU0FLaEcsRUNWWix3QkFiK0JtakQsRUFBR0MsT0FBTUMsV0FDdEMsTUFBTUMsRUFBb0JELEVBQWNBLEVBQUsxaUQsS0FBTzBpRCxFQUFLMWlELE9BQVMwaUQsRUFBakMsS0FFL0IsT0FBUXIxQyxJQUFBQSxjQUFBLFVBQ0pBLElBQUFBLGNBQUEsVUFBTW8xQyxHQUNOcDFDLElBQUFBLGNBQUEsVUFBTWxKLEtBQUtxRixVQUFVbTVDLElBQ3BCLEVDRk0sU0FBU0Msa0JBQWtCeDRDLEVBQUl5NEMsRUFBYyxLQUMxRCxPQUFPejRDLEVBQUdsQyxRQUFRLFVBQVcyNkMsRUFDL0IsQ0NGZSxNQUFNNUMsa0JBQWtCNXlDLElBQUFBLFVBbUJyQ3lkLG9CQUFzQixDQUNwQmsyQixpQkFBa0IsS0FDbEIxZCxVQUFVaCtCLEVBQUFBLEVBQUFBLFFBQU8sQ0FBQyxxQkFDbEI0M0Msd0JBQXdCLEdBa0IzQjRGLHdCQUE0QnQrQyxHQUFTMUosS0FBS3FkLE1BQU0rQyxZQUFZbXhCLG9CQUFvQixDQUFDdnhDLEtBQUtxZCxNQUFNTSxLQUFNM2QsS0FBS3FkLE1BQU14USxRQUFTbkQsR0FFckh1K0MsNEJBQThCQSxFQUFHQyx1QkFBc0J0bUQsWUFDckQsTUFBTSxZQUFFZ2pELEVBQVcsS0FBRWpuQyxFQUFJLE9BQUU5USxHQUFXN00sS0FBS3FkLE1BQ3hDNnFDLEdBQ0R0RCxFQUFZdUQsdUJBQXVCLENBQ2pDdm1ELFFBQ0ErYixPQUNBOVEsVUFFSixFQUdGOFIsTUFBQUEsR0FDRSxJQUFJLFVBQ0Y4cUIsRUFBUyxpQkFDVHljLEVBQWdCLGFBQ2hCdG5DLEVBQVksV0FDWnpNLEVBQVUsY0FDVjRILEVBQWEsR0FDYnJULEVBQUUsY0FDRjhrQyxFQUFhLHVCQUNiNFcsRUFBc0IsU0FDdEIveEIsRUFBUSxLQUNSMVMsRUFBSSxPQUNKOVEsRUFBTSxjQUNOaU4sRUFBYSxZQUNiOHFDLEdBQ0U1a0QsS0FBS3FkLE1BQ0wrcUMsRXBMeUdELFNBQVNDLGtCQUFvQjVlLEdBQ2xDLElBQUk2ZSxFQUFRN2UsRUFBVS9rQyxTQUN0QixPQUFPNGpELEVBQU1yckMsU0FBU3BZLElBQXdCQSxHQUF1QnlqRCxFQUFNdGxELFFBQVFsQyxHQUF1QixPQUFmQSxFQUFJLElBQUksS0FBWTBvQyxPQUFPN2tDLE9BQ3hILENvTDVHc0IwakQsQ0FBbUI1ZSxHQUVyQyxNQUFNOGUsRUFBYzNwQyxFQUFjLGVBQzVCc2pDLEVBQWV0akMsRUFBYyxnQkFDN0I0cEMsRUFBVzVwQyxFQUFjLFlBRS9CLElBQUk0cEIsRUFBV3hvQyxLQUFLcWQsTUFBTW1yQixVQUFZeG9DLEtBQUtxZCxNQUFNbXJCLFNBQVM3OUIsS0FBTzNLLEtBQUtxZCxNQUFNbXJCLFNBQVcyYyxVQUFVMzBCLGFBQWFnWSxTQUU5RyxNQUVNaWdCLEVBRmExdUMsRUFBYzVWLFNwTGtsQjlCLFNBQVN1a0QsNkJBQTZCamYsR0FDM0MsSUFBSTFsQyxJQUFBQSxXQUFjNGtELGFBQWFsZixHQUU3QixPQUFPLEtBR1QsSUFBSUEsRUFBVTkrQixLQUVaLE9BQU8sS0FHVCxNQUFNaStDLEVBQXNCbmYsRUFBVWw4QixNQUFLLENBQUNyRyxFQUFLMUMsSUFDeENBLEVBQUU2ekIsV0FBVyxNQUFRcjNCLE9BQU8rRixLQUFLRyxFQUFJL0YsSUFBSSxZQUFjLENBQUMsR0FBR21GLE9BQVMsSUFJdkV1aUQsRUFBa0JwZixFQUFVdG9DLElBQUksWUFBYzRDLElBQUFBLGFBRTlDK2tELEdBRDZCRCxFQUFnQjFuRCxJQUFJLFlBQWM0QyxJQUFBQSxjQUFpQlcsU0FBU1EsT0FDckNvQixPQUFTdWlELEVBQWtCLEtBRXJGLE9BQU9ELEdBQXVCRSxDQUNoQyxDb0xwbUJNSixDQUE2QmpmLEdBQWEsS0FFdENzZixFQUFXakIsa0JBQWtCLEdBQUdqN0MsSUFBUzhRLGVBQ3pDcXJDLEVBQVksR0FBR0QsV0FFckIsT0FDRXgyQyxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLHFCQUNialUsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSwwQkFDYmpVLElBQUFBLGNBQUEsVUFBSSxhQUNBd0gsRUFBYzVWLFNBQVcsS0FBT29PLElBQUFBLGNBQUEsU0FBT3NvQixRQUFTbXVCLEdBQ2hEejJDLElBQUFBLGNBQUEsWUFBTSx5QkFDTkEsSUFBQUEsY0FBQ2cyQyxFQUFXLENBQUMzbUQsTUFBTzRwQyxFQUNUeWQsYUFBY0YsRUFDZEcsVUFBVSx3QkFDVjFpQyxVQUFVLHVCQUNWMmlDLGFBQWMzZ0IsRUFDZHdnQixVQUFXQSxFQUNYcHVCLFNBQVU1NkIsS0FBS2dvRCw0QkFHaEN6MUMsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxtQkFFVjAvQixFQUNtQjN6QyxJQUFBQSxjQUFBLFdBQ0VBLElBQUFBLGNBQUMydkMsRUFBWSxDQUFDcm5DLFNBQVdxckMsRUFDWHRuQyxhQUFlQSxFQUNmek0sV0FBYUEsRUFDYjRILGNBQWdCQSxFQUNoQjRELEtBQU8zZCxLQUFLcWQsTUFBTU0sS0FDbEI5USxPQUFTN00sS0FBS3FkLE1BQU14USxPQUNwQnUxQyx1QkFBeUJBLElBQ3ZDN3ZDLElBQUFBLGNBQUEsVUFBSSxjQVROLEtBY3RCQSxJQUFBQSxjQUFBLFNBQU8sWUFBVSxTQUFTaVUsVUFBVSxrQkFBa0JsWCxHQUFJeTVDLEVBQVVuMkIsS0FBSyxVQUN2RXJnQixJQUFBQSxjQUFBLGFBQ0VBLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsb0JBQ1pqVSxJQUFBQSxjQUFBLE1BQUlpVSxVQUFVLGtDQUFpQyxRQUMvQ2pVLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsdUNBQXNDLGVBQ2xEek0sRUFBYzVWLFNBQVdvTyxJQUFBQSxjQUFBLE1BQUlpVSxVQUFVLHFDQUFvQyxTQUFhLE9BRzlGalUsSUFBQUEsY0FBQSxhQUVJazNCLEVBQVUzdEIsV0FBV3BXLEtBQUssRUFBRWdVLEVBQU1tQixNQUVoQyxJQUFJMkwsRUFBWTAvQixHQUFvQkEsRUFBaUIva0QsSUFBSSxXQUFhdVksRUFBTyxtQkFBcUIsR0FDbEcsT0FDRW5ILElBQUFBLGNBQUNpMkMsRUFBUSxDQUFDMW5ELElBQU00WSxFQUNOaUUsS0FBTUEsRUFDTjlRLE9BQVFBLEVBQ1J3akIsU0FBVUEsRUFBU3puQixLQUFLOFEsR0FDeEIwdkMsVUFBV2hCLElBQWdCMXVDLEVBQzNCaFQsR0FBSUEsRUFDSjhmLFVBQVlBLEVBQ1o5TSxLQUFPQSxFQUNQbUIsU0FBV0EsRUFDWGQsY0FBZ0JBLEVBQ2hCbXVDLHFCQUFzQnJ0QyxJQUFhNHRDLEVBQ25DWSxvQkFBcUJycEQsS0FBS2lvRCw0QkFDMUJoaUIsWUFBY3VGLEVBQ2RyNUIsV0FBYUEsRUFDYm0zQyxrQkFBbUJ4dkMsRUFBY3l2QyxxQkFDL0I1ckMsRUFDQTlRLEVBQ0EsWUFDQTZNLEdBRUZrckMsWUFBYUEsRUFDYmhtQyxhQUFlQSxHQUFnQixJQUUxQ3pULGFBT2pCLEVDN0pLLFNBQVNxK0Msa0NBQWtDOS9DLEdBR2hELE9BYkssU0FBUysvQyxhQUFhcjlDLEdBQzNCLElBRUUsUUFEdUIvQyxLQUFLQyxNQUFNOEMsRUFFcEMsQ0FBRSxNQUFPekksR0FFUCxPQUFPLElBQ1QsQ0FDRixDQUlzQjhsRCxDQUFhLy9DLEdBQ1osT0FBUyxJQUNoQyxDQ1FlLE1BQU04K0MsaUJBQWlCajJDLElBQUFBLFVBQ3BDM0MsV0FBQUEsQ0FBWXlOLEVBQU9pVCxHQUNqQkMsTUFBTWxULEVBQU9pVCxHQUVidHdCLEtBQUsrUCxNQUFRLENBQ1g0N0Isb0JBQXFCLEdBRXpCLENBb0JBM2Isb0JBQXNCLENBQ3BCblYsVUFBVXJRLEVBQUFBLEVBQUFBLFFBQU8sQ0FBQyxHQUNsQjYrQyxvQkFBcUJBLFFBR3ZCSyxxQkFBd0I5bkQsSUFDdEIsTUFBTSxvQkFBRXluRCxFQUFtQixxQkFBRW5CLEdBQXlCbG9ELEtBQUtxZCxNQUMzRHJkLEtBQUs2d0IsU0FBUyxDQUFFOGEsb0JBQXFCL3BDLElBQ3JDeW5ELEVBQW9CLENBQ2xCem5ELE1BQU9BLEVBQ1BzbUQsd0JBQ0EsRUFHSnlCLHFCQUF1QkEsS0FDckIsTUFBTSxTQUFFOXVDLEVBQVEsWUFBRW9yQixFQUFXLGtCQUFFcWpCLEdBQXNCdHBELEtBQUtxZCxNQUVwRHVzQyxFQUFvQjVwRCxLQUFLK1AsTUFBTTQ3QixxQkFBdUIxRixFQUl0RDJYLEVBSGtCL2lDLEVBQVNqVyxNQUFNLENBQUMsVUFBV2dsRCxJQUFvQng3QyxFQUFBQSxFQUFBQSxLQUFJLENBQUMsSUFDL0JqTixJQUFJLFdBQVksTUFFZnVELFNBQVNDLFFBQ3ZELE9BQU8ya0QsR0FBcUIxTCxDQUFnQixFQUc5Q2ovQixNQUFBQSxHQUNFLElBQUksS0FDRmhCLEVBQUksT0FDSjlRLEVBQU0sS0FDTjZNLEVBQUksU0FDSm1CLEVBQVEsVUFDUjJMLEVBQVMsU0FDVDZKLEVBQVEsR0FDUjNwQixFQUFFLGFBQ0ZrWSxFQUFZLFdBQ1p6TSxFQUFVLGNBQ1Y0SCxFQUFhLFlBQ2Jrc0IsRUFBVyxxQkFDWGlpQixFQUFvQixZQUNwQnRELEdBQ0U1a0QsS0FBS3FkLE9BRUwsWUFBRTRuQixFQUFXLGdCQUFFaEksR0FBb0J2MkIsRUFDbkN2QyxFQUFTNFYsRUFBYzVWLFNBQzNCLE1BQU0sZUFBRXcwQixHQUFtQnhtQixJQUUzQixJQUFJeW1CLEVBQWFELEVBQWlCMXFCLGNBQWM0TSxHQUFZLEtBQ3hEbEMsRUFBVWtDLEVBQVMxWixJQUFJLFdBQ3ZCMG9ELEVBQVFodkMsRUFBUzFaLElBQUksU0FDekIsTUFBTTJvRCxFQUFvQmxyQyxFQUFhLHFCQUNqQ29qQyxFQUFVcGpDLEVBQWEsV0FDdkIwVCxFQUFnQjFULEVBQWEsaUJBQWlCLEdBQzlDb1QsRUFBZXBULEVBQWEsZ0JBQzVCd2EsRUFBV3hhLEVBQWEsWUFBWSxHQUNwQ21yQyxFQUFnQm5yQyxFQUFhLGlCQUM3QjJwQyxFQUFjM3BDLEVBQWEsZUFDM0JxK0IsRUFBaUJyK0IsRUFBYSxrQkFDOUJtK0IsRUFBVW4rQixFQUFhLFdBRzdCLElBQUl2YSxFQUFRMmxELEVBRVosTUFBTUosRUFBb0I1cEQsS0FBSytQLE1BQU00N0IscUJBQXVCMUYsRUFDdERna0IsRUFBa0JwdkMsRUFBU2pXLE1BQU0sQ0FBQyxVQUFXZ2xELElBQW9CeDdDLEVBQUFBLEVBQUFBLEtBQUksQ0FBQyxJQUN0RTg3QyxFQUF1QkQsRUFBZ0I5b0QsSUFBSSxXQUFZLE1BRzdELEdBQUdnRCxFQUFRLENBQ1QsTUFBTWdtRCxFQUEyQkYsRUFBZ0I5b0QsSUFBSSxVQUVyRGtELEVBQVM4bEQsRUFBMkJsbEIsRUFBWWtsQixFQUF5QmpsRCxRQUFVLEtBQ25GOGtELEVBQTZCRyxHQUEyQnh0QyxFQUFBQSxFQUFBQSxNQUFLLENBQUMsVUFBVzNjLEtBQUsrUCxNQUFNNDdCLG9CQUFxQixXQUFhdGIsQ0FDeEgsTUFDRWhzQixFQUFTd1csRUFBUzFaLElBQUksVUFDdEI2b0QsRUFBNkJudkMsRUFBU3RSLElBQUksVUFBWThtQixFQUFTem5CLEtBQUssVUFBWXluQixFQUdsRixJQUFJKzVCLEVBRUFDLEVBREFDLEdBQThCLEVBRTlCQyxFQUFrQixDQUNwQnI0QixpQkFBaUIsR0FJbkIsR0FBRy90QixFQUVELEdBREFrbUQsRUFBZUosRUFBZ0I5b0QsSUFBSSxXQUFXK0QsT0FDM0NrSixFQUFBQSxJQUFJaEssTUFBTThsRCxLQUEwQkEsRUFBcUJ6NkMsVUFBVyxDQUNyRSxNQUFNKzZDLEVBQW9CeHFELEtBQUsycEQsdUJBR3pCYyxvQkFBdUJDLEdBQzNCdDhDLEVBQUFBLElBQUloSyxNQUFNc21ELEdBQ1JBLEVBQWN2cEQsSUFBSSxjQUNsQmIsRUFDSjhwRCxFQUFtQkssb0JBTkdQLEVBQ25CL29ELElBQUlxcEQsR0FBbUJwOEMsRUFBQUEsRUFBQUEsS0FBSSxDQUFDLFVBTVA5TixJQUFyQjhwRCxJQUNEQSxFQUFtQkssb0JBQW9CUCxFQUFxQmxzQyxTQUFTeFcsT0FBTzVGLFFBRTlFMG9ELEdBQThCLENBQ2hDLFdBQTZDaHFELElBQW5DMnBELEVBQWdCOW9ELElBQUksYUFFNUJpcEQsRUFBbUJILEVBQWdCOW9ELElBQUksV0FDdkNtcEQsR0FBOEIsT0FFM0IsQ0FDTEQsRUFBZWhtRCxFQUNma21ELEVBQWtCLElBQUlBLEVBQWlCdDRCLGtCQUFrQixHQUN6RCxNQUFNMDRCLEVBQXlCOXZDLEVBQVNqVyxNQUFNLENBQUMsV0FBWWdsRCxJQUN4RGUsSUFDRFAsRUFBbUJPLEVBQ25CTCxHQUE4QixFQUVsQyxDQUVBLE1BT01uNUIsRUFsS2tCeTVCLEVBQUVDLEVBQWdCdjRCLEtBQzVDLEdBQXNCLE1BQWxCdTRCLEVBQXdCLE9BQU8sS0FFbkMsTUFDTXA3QixFQURtQis1QixrQ0FBa0NxQixHQUN2QixPQUFTLEtBRTdDLE9BQ0V0NEMsSUFBQUEsY0FBQSxXQUNFQSxJQUFBQSxjQUFDK2YsRUFBYSxDQUFDOUwsVUFBVSxVQUFVaUosU0FBVUEsR0FBVy9nQixVQUFVbThDLElBQzlELEVBeUpVRCxDQVBPM3RCLEVBQ3JCb3RCLEVBQ0FULEVBQ0FXLEVBQ0FELEVBQThCRixPQUFtQjlwRCxHQUdFZ3lCLEdBRXJELE9BQ0UvZixJQUFBQSxjQUFBLE1BQUlpVSxVQUFZLGFBQWdCQSxHQUFhLElBQU0sWUFBVzlNLEdBQzVEbkgsSUFBQUEsY0FBQSxNQUFJaVUsVUFBVSx1QkFDVjlNLEdBRUpuSCxJQUFBQSxjQUFBLE1BQUlpVSxVQUFVLDRCQUVaalUsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxtQ0FDYmpVLElBQUFBLGNBQUM2bUIsRUFBUSxDQUFDeGhCLE9BQVNpRCxFQUFTMVosSUFBSyxrQkFHaEN3M0IsR0FBbUJDLEVBQVdqdUIsS0FBY2l1QixFQUFXOWMsV0FBV3BXLEtBQUksRUFBRTVFLEVBQUt5RCxLQUFPZ08sSUFBQUEsY0FBQ3UzQyxFQUFpQixDQUFDaHBELElBQUssR0FBR0EsS0FBT3lELElBQUtvakQsS0FBTTdtRCxFQUFLOG1ELEtBQU1yakQsTUFBdkcsS0FFdkNKLEdBQVUwVyxFQUFTMVosSUFBSSxXQUN0Qm9SLElBQUFBLGNBQUEsV0FBU2lVLFVBQVUscUJBQ2pCalUsSUFBQUEsY0FBQSxPQUNFaVUsVUFBV3FNLEtBQUcsOEJBQStCLENBQzNDLGlEQUFrRHExQixLQUdwRDMxQyxJQUFBQSxjQUFBLFNBQU9pVSxVQUFVLHNDQUFxQyxjQUd0RGpVLElBQUFBLGNBQUNnMkMsRUFBVyxDQUNWM21ELE1BQU81QixLQUFLK1AsTUFBTTQ3QixvQkFDbEJ3ZCxhQUNFdHVDLEVBQVMxWixJQUFJLFdBQ1QwWixFQUFTMVosSUFBSSxXQUFXdUQsVUFDeEJvbUQsRUFBQUEsRUFBQUEsT0FFTmx3QixTQUFVNTZCLEtBQUswcEQscUJBQ2ZSLFVBQVUsZUFFWGhCLEVBQ0MzMUMsSUFBQUEsY0FBQSxTQUFPaVUsVUFBVSwrQ0FBOEMsWUFDcERqVSxJQUFBQSxjQUFBLFlBQU0sVUFBYSxZQUU1QixNQUVMbkUsRUFBQUEsSUFBSWhLLE1BQU04bEQsS0FBMEJBLEVBQXFCejZDLFVBQ3hEOEMsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSw2QkFDYmpVLElBQUFBLGNBQUEsU0FBT2lVLFVBQVUsb0NBQW1DLFlBR3BEalUsSUFBQUEsY0FBQzBxQyxFQUFjLENBQ2JDLFNBQVVnTixFQUNWOU0sa0JBQW1CcDlDLEtBQUsycEQsdUJBQ3hCeE0sU0FBVXI4QyxHQUNSOGpELEVBQVltRyx3QkFBd0IsQ0FDbEM3OUMsS0FBTXBNLEVBQ05tcEMsV0FBWSxDQUFDdHNCLEVBQU05USxHQUNuQm0rQyxZQUFhLFlBQ2JDLFlBQWF2eEMsSUFHakIyakMsWUFBWSxLQUdkLE1BRUosS0FFRmxzQixHQUFXOXNCLEVBQ1hrTyxJQUFBQSxjQUFDeWYsRUFBWSxDQUNYM0IsU0FBVTI1QixFQUNWcHJDLGFBQWVBLEVBQ2Z6TSxXQUFhQSxFQUNiNEgsY0FBZ0JBLEVBQ2hCMVYsT0FBU2lCLGNBQWNqQixHQUN2QjhzQixRQUFVQSxFQUNWZSxpQkFBa0IsSUFDbEIsS0FFRi90QixHQUFVK2xELEVBQ1IzM0MsSUFBQUEsY0FBQ3dxQyxFQUFPLENBQ041ckIsUUFBUys0QixFQUFxQi9vRCxJQUFJbkIsS0FBSzJwRCx3QkFBd0J2N0MsRUFBQUEsRUFBQUEsS0FBSSxDQUFDLElBQ3BFd1EsYUFBY0EsRUFDZHpNLFdBQVlBLEVBQ1orNEMsV0FBVyxJQUViLEtBRUZ2eUMsRUFDQXBHLElBQUFBLGNBQUN5dkMsRUFBTyxDQUNOcnBDLFFBQVVBLEVBQ1ZpRyxhQUFlQSxJQUVmLE1BR0x6YSxFQUFTb08sSUFBQUEsY0FBQSxNQUFJaVUsVUFBVSxzQkFDcEJxakMsRUFDQUEsRUFBTXNCLFFBQVFydkMsV0FBV3BXLEtBQUksRUFBRTVFLEVBQUtzcUQsS0FDM0I3NEMsSUFBQUEsY0FBQ3czQyxFQUFhLENBQUNqcEQsSUFBS0EsRUFBS29NLEtBQU1wTSxFQUFLc3FELEtBQU9BLEVBQU94c0MsYUFBY0EsTUFFekVyTSxJQUFBQSxjQUFBLFNBQUcsYUFDQyxLQUdkLEVDN1FLLE1BUVAsbUJBUmlDdTNDLEVBQUduQyxPQUFNQyxVQUMvQnIxQyxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLHVCQUF3Qm1oQyxFQUFNLEtBQUk5NUMsT0FBTys1QyxJQ0o3RCxHQUErQjNuRCxRQUFRLG9CLGlDQ0E3QyxNQUFNLEdBQStCQSxRQUFRLGtCLGlDQ1E5QixNQUFNMGlELHFCQUFxQnB3QyxJQUFBQSxjQUN4Q3hDLE1BQVEsQ0FDTnM3QyxjQUFlLE1BV2pCQyxvQkFBdUJDLElBQ3JCLE1BQU0sUUFBRXgwQixHQUFZLzJCLEtBQUtxZCxNQUV6QixHQUFHa3VDLElBQWdCeDBCLEVBSW5CLEdBQUdBLEdBQVdBLGFBQW1CeWMsS0FBTSxDQUNyQyxJQUFJZ1ksRUFBUyxJQUFJQyxXQUNqQkQsRUFBTy9ILE9BQVMsS0FDZHpqRCxLQUFLNndCLFNBQVMsQ0FDWnc2QixjQUFlRyxFQUFPcnZDLFFBQ3RCLEVBRUpxdkMsRUFBT0UsV0FBVzMwQixFQUNwQixNQUNFLzJCLEtBQUs2d0IsU0FBUyxDQUNadzZCLGNBQWV0MEIsRUFBUW5yQixZQUUzQixFQUdGNmtCLGlCQUFBQSxHQUNFendCLEtBQUtzckQsb0JBQW9CLEtBQzNCLENBRUFLLGtCQUFBQSxDQUFtQkMsR0FDakI1ckQsS0FBS3NyRCxvQkFBb0JNLEVBQVU3MEIsUUFDckMsQ0FFQXBZLE1BQUFBLEdBQ0UsSUFBSSxRQUFFb1ksRUFBTyxZQUFFa1AsRUFBVyxJQUFFN3NCLEVBQUcsUUFBRVQsRUFBUSxDQUFDLEVBQUMsYUFBRWlHLEdBQWlCNWUsS0FBS3FkLE1BQ25FLE1BQU0sY0FBRWd1QyxHQUFrQnJyRCxLQUFLK1AsTUFDekJ1aUIsRUFBZ0IxVCxFQUFhLGlCQUFpQixHQUM5Q2l0QyxFQUFlLGFBQWMsSUFBSW5nRCxNQUFPb2dELFVBQzlDLElBQUkzeUMsRUFBTTR5QyxFQUdWLEdBRkEzeUMsRUFBTUEsR0FBTyxJQUdWLDhCQUE4QnJQLEtBQUtrOEIsSUFDakN0dEIsRUFBUSx3QkFBMEIsY0FBYzVPLEtBQUs0TyxFQUFRLHlCQUM3REEsRUFBUSx3QkFBMEIsY0FBYzVPLEtBQUs0TyxFQUFRLHlCQUM3REEsRUFBUSx3QkFBMEIsaUJBQWlCNU8sS0FBSzRPLEVBQVEseUJBQ2hFQSxFQUFRLHdCQUEwQixpQkFBaUI1TyxLQUFLNE8sRUFBUSwyQkFDbEVvZSxFQUFRcHNCLEtBQU8sR0FBS29zQixFQUFRendCLE9BQVMsR0FJdEMsR0FBSSxTQUFVNUMsT0FBUSxDQUNwQixJQUFJcEIsRUFBTzJqQyxHQUFlLFlBQ3RCK2xCLEVBQVFqMUIsYUFBbUJ5YyxLQUFRemMsRUFBVSxJQUFJeWMsS0FBSyxDQUFDemMsR0FBVSxDQUFDejBCLEtBQU1BLElBQ3hFazFCLEVBQU85ekIsT0FBTzZ6QixJQUFJMDBCLGdCQUFnQkQsR0FFbENsVixFQUFXLENBQUN4MEMsRUFERDhXLEVBQUk4eUMsT0FBTzl5QyxFQUFJK3lDLFlBQVksS0FBTyxHQUNqQjMwQixHQUFNbnFCLEtBQUssS0FJdkMrK0MsRUFBY3p6QyxFQUFRLHdCQUEwQkEsRUFBUSx1QkFDNUQsUUFBMkIsSUFBaEJ5ekMsRUFBNkIsQ0FDdEMsSUFBSUMsRTFMNkpQLFNBQVNDLDRDQUE0QzFxRCxHQUMxRCxJQU9JeXFELEVBTUosR0FiZSxDQUNiLG9DQUNBLGtDQUNBLHdCQUNBLHVCQUlPbGpELE1BQUtvakQsSUFDWkYsRUFBbUJFLEVBQU10a0IsS0FBS3JtQyxHQUNGLE9BQXJCeXFELEtBR2dCLE9BQXJCQSxHQUE2QkEsRUFBaUIvbEQsT0FBUyxFQUN6RCxJQUNFLE9BQU9rZSxtQkFBbUI2bkMsRUFBaUIsR0FDN0MsQ0FBRSxNQUFNMW9ELEdBQ05DLFFBQVFDLE1BQU1GLEVBQ2hCLENBR0YsT0FBTyxJQUNULEMwTHBMaUMyb0QsQ0FBNENGLEdBQzFDLE9BQXJCQyxJQUNGdlYsRUFBV3VWLEVBRWYsQ0FHSU4sRUFERDVvRCxFQUFJcXBELFdBQWFycEQsRUFBSXFwRCxVQUFVQyxpQkFDckJsNkMsSUFBQUEsY0FBQSxXQUFLQSxJQUFBQSxjQUFBLEtBQUdpbEIsS0FBT0EsRUFBT3hJLFFBQVNBLElBQU03ckIsRUFBSXFwRCxVQUFVQyxpQkFBaUJULEVBQU1sVixJQUFhLGtCQUV2RnZrQyxJQUFBQSxjQUFBLFdBQUtBLElBQUFBLGNBQUEsS0FBR2lsQixLQUFPQSxFQUFPc2YsU0FBV0EsR0FBYSxpQkFFN0QsTUFDRWlWLEVBQVN4NUMsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxjQUFhLHVHQUlsQyxHQUFJLFFBQVF6YyxLQUFLazhCLEdBQWMsQ0FFcEMsSUFBSXhXLEVBQVcsS0FDUSs1QixrQ0FBa0N6eUIsS0FFdkR0SCxFQUFXLFFBRWIsSUFDRXRXLEVBQU85UCxLQUFLcUYsVUFBVXJGLEtBQUtDLE1BQU15dEIsR0FBVSxLQUFNLEtBQ25ELENBQUUsTUFBT2x6QixHQUNQc1YsRUFBTyxxQ0FBdUM0ZCxDQUNoRCxDQUVBZzFCLEVBQVN4NUMsSUFBQUEsY0FBQytmLEVBQWEsQ0FBQzdDLFNBQVVBLEVBQVVncEIsY0FBWSxFQUFDRCxTQUFVLEdBQUdxVCxTQUFxQm5ULFNBQU8sR0FBRXYvQixFQUd0RyxLQUFXLE9BQU9wUCxLQUFLazhCLElBQ3JCOXNCLEVBQU91ekMsS0FBVTMxQixFQUFTLENBQ3hCNDFCLHFCQUFxQixFQUNyQkMsU0FBVSxPQUVaYixFQUFTeDVDLElBQUFBLGNBQUMrZixFQUFhLENBQUNtbUIsY0FBWSxFQUFDRCxTQUFVLEdBQUdxVCxRQUFvQm5ULFNBQU8sR0FBRXYvQixJQUkvRTR5QyxFQURrQyxjQUF6QmMsS0FBUTVtQixJQUFnQyxjQUFjbDhCLEtBQUtrOEIsR0FDM0QxekIsSUFBQUEsY0FBQytmLEVBQWEsQ0FBQ21tQixjQUFZLEVBQUNELFNBQVUsR0FBR3FULFNBQXFCblQsU0FBTyxHQUFFM2hCLEdBRzlDLGFBQXpCODFCLEtBQVE1bUIsSUFBK0IsWUFBWWw4QixLQUFLazhCLEdBQ3hEMXpCLElBQUFBLGNBQUMrZixFQUFhLENBQUNtbUIsY0FBWSxFQUFDRCxTQUFVLEdBQUdxVCxRQUFvQm5ULFNBQU8sR0FBRTNoQixHQUd0RSxZQUFZaHRCLEtBQUtrOEIsR0FDdkJBLEVBQVl4aEMsU0FBUyxPQUNiOE4sSUFBQUEsY0FBQSxXQUFLLElBQUd3a0IsRUFBUyxLQUVqQnhrQixJQUFBQSxjQUFBLE9BQUt5RCxJQUFNdFMsT0FBTzZ6QixJQUFJMDBCLGdCQUFnQmwxQixLQUl4QyxZQUFZaHRCLEtBQUtrOEIsR0FDakIxekIsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxjQUFhalUsSUFBQUEsY0FBQSxTQUFPdTZDLFVBQVEsRUFBQ2hzRCxJQUFNc1ksR0FBTTdHLElBQUFBLGNBQUEsVUFBUXlELElBQU1vRCxFQUFNOVcsS0FBTzJqQyxNQUNoRSxpQkFBWmxQLEVBQ1B4a0IsSUFBQUEsY0FBQytmLEVBQWEsQ0FBQ21tQixjQUFZLEVBQUNELFNBQVUsR0FBR3FULFFBQW9CblQsU0FBTyxHQUFFM2hCLEdBQ3JFQSxFQUFRcHNCLEtBQU8sRUFFdEIwZ0QsRUFHUTk0QyxJQUFBQSxjQUFBLFdBQ1BBLElBQUFBLGNBQUEsS0FBR2lVLFVBQVUsS0FBSSwyREFHakJqVSxJQUFBQSxjQUFDK2YsRUFBYSxDQUFDbW1CLGNBQVksRUFBQ0QsU0FBVSxHQUFHcVQsUUFBb0JuVCxTQUFPLEdBQUUyUyxJQUsvRDk0QyxJQUFBQSxjQUFBLEtBQUdpVSxVQUFVLEtBQUksa0RBTW5CLEtBR1gsT0FBVXVsQyxFQUFnQng1QyxJQUFBQSxjQUFBLFdBQ3RCQSxJQUFBQSxjQUFBLFVBQUksaUJBQ0Z3NUMsR0FGYSxJQUtyQixFQ2xLYSxNQUFNM0csbUJBQW1CcjFCLEVBQUFBLFVBRXRDbmdCLFdBQUFBLENBQVl5TixHQUNWa1QsTUFBTWxULEdBQ05yZCxLQUFLK1AsTUFBUSxDQUNYZzlDLGlCQUFpQixFQUNqQkMsbUJBQW1CLEVBRXZCLENBdUJBaDlCLG9CQUFzQixDQUNwQncwQixjQUFlbndDLFNBQVMvUyxVQUN4Qm9qRCxjQUFlcndDLFNBQVMvUyxVQUN4QnlqRCxpQkFBaUIsRUFDakJELGVBQWUsRUFDZlcsWUFBYSxHQUNicDFCLFNBQVUsSUFHWnVLLFNBQVdBLENBQUNoc0IsRUFBT2hOLEVBQU9xcEMsS0FDeEIsSUFDRTdxQixhQUFhLHNCQUFFNHdCLEdBQXVCLFlBQ3RDeVUsR0FDRXpsRCxLQUFLcWQsTUFFVDJ6QixFQUFzQnlVLEVBQWE3MkMsRUFBT2hOLEVBQU9xcEMsRUFBTSxFQUd6RGdpQix3QkFBMkJ2akQsSUFDekIsSUFDRTBXLGFBQWEsb0JBQUVreEIsR0FBcUIsWUFDcENtVSxHQUNFemxELEtBQUtxZCxNQUVUaTBCLEVBQW9CbVUsRUFBYS83QyxFQUFJLEVBR3ZDd2pELFVBQWEzN0IsR0FDQyxlQUFSQSxFQUNLdnhCLEtBQUs2d0IsU0FBUyxDQUNuQm04QixtQkFBbUIsRUFDbkJELGlCQUFpQixJQUVGLGNBQVJ4N0IsRUFDRnZ4QixLQUFLNndCLFNBQVMsQ0FDbkJrOEIsaUJBQWlCLEVBQ2pCQyxtQkFBbUIsU0FIaEIsRUFRVEcsa0JBQW9CQSxFQUFHdnJELFFBQU9xb0MsaUJBQzVCLElBQUksWUFBRTdwQixFQUFXLGNBQUV0RyxFQUFhLFlBQUU4cUMsR0FBZ0I1a0QsS0FBS3FkLE1BQ3ZELE1BQU1naEMsRUFBb0J2a0MsRUFBY3N6QyxxQkFBcUJuakIsR0FDdkRvakIsRUFBK0J2ekMsRUFBY3V6QyxnQ0FBZ0NwakIsR0FDbkYyYSxFQUFZMEksc0JBQXNCLENBQUUxckQsUUFBT3FvQyxlQUMzQzJhLEVBQVkySSw2QkFBNkIsQ0FBRXRqQixlQUN0Q29VLElBQ0NnUCxHQUNGekksRUFBWWdDLG9CQUFvQixDQUFFaGxELFdBQU90QixFQUFXMnBDLGVBRXREN3BCLEVBQVl5eUIsaUJBQWlCNUksR0FDN0I3cEIsRUFBWTB5QixnQkFBZ0I3SSxHQUM1QjdwQixFQUFZaXhCLG9CQUFvQnBILEdBQ2xDLEVBR0Z0ckIsTUFBQUEsR0FFRSxJQUFJLGNBQ0Y2bEMsRUFBYSxhQUNiQyxFQUFZLFdBQ1p0WixFQUFVLGNBQ1YyWixFQUFhLGdCQUNiQyxFQUFlLFNBQ2YxMEIsRUFBUSxHQUNSM3BCLEVBQUUsYUFDRmtZLEVBQVksV0FDWnpNLEVBQVUsY0FDVjRILEVBQWEsWUFDYnFHLEVBQVcsV0FDWDZwQixFQUFVLFlBQ1YyYSxFQUFXLGNBQ1g5cUMsRUFBYSxVQUNiOEQsR0FDRTVkLEtBQUtxZCxNQUVULE1BQU1td0MsRUFBZTV1QyxFQUFhLGdCQUM1QjZ1QyxFQUFpQjd1QyxFQUFhLGtCQUM5QjJwQyxFQUFjM3BDLEVBQWEsZUFDM0I4dUMsRUFBWTl1QyxFQUFhLGFBQWEsR0FDdEMrdUMsRUFBYy91QyxFQUFhLGVBQWUsR0FFMUNzUyxFQUFZNnpCLEdBQW1CRCxFQUMvQjNnRCxFQUFTNFYsRUFBYzVWLFNBR3ZCNmtELEVBQVksR0FERGxCLGtCQUFrQixHQUFHN2QsRUFBVyxLQUFLQSxFQUFXLHdCQUczRGdELEVBQWNydkIsRUFBVXpjLElBQUksZUFFNUJ5c0QsRUFBdUI1c0QsT0FBT2dkLE9BQU9tdEIsRUFDeENua0MsUUFBTyxDQUFDaU4sRUFBS3l2QixLQUNaLEdBQUl0MUIsRUFBQUEsSUFBSWhLLE1BQU1zL0IsR0FBSSxDQUNoQixNQUFNNWlDLEVBQU00aUMsRUFBRXZpQyxJQUFJLE1BQ2xCOFMsRUFBSW5ULEtBQVMsR0FDYm1ULEVBQUluVCxHQUFLOEgsS0FBSzg2QixFQUNoQixDQUNBLE9BQU96dkIsQ0FBRyxHQUNULENBQUMsSUFDSGpOLFFBQU8sQ0FBQ2lOLEVBQUt5dkIsSUFBTXp2QixFQUFJa0MsT0FBT3V0QixJQUFJLElBR3JDLE9BQ0VueEIsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxtQkFDYmpVLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsMEJBQ1pyaUIsRUFDQ29PLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsY0FDYmpVLElBQUFBLGNBQUEsT0FBS3ljLFFBQVNBLElBQU1odkIsS0FBS2t0RCxVQUFVLGNBQzlCMW1DLFVBQVcsWUFBWXhtQixLQUFLK1AsTUFBTWk5QyxtQkFBcUIsWUFDMUR6NkMsSUFBQUEsY0FBQSxNQUFJaVUsVUFBVSxpQkFBZ0JqVSxJQUFBQSxjQUFBLFlBQU0sZ0JBRXJDcUwsRUFBVXpjLElBQUksYUFFWG9SLElBQUFBLGNBQUEsT0FBS3ljLFFBQVNBLElBQU1odkIsS0FBS2t0RCxVQUFVLGFBQzlCMW1DLFVBQVcsWUFBWXhtQixLQUFLK1AsTUFBTWc5QyxpQkFBbUIsWUFDeER4NkMsSUFBQUEsY0FBQSxNQUFJaVUsVUFBVSxpQkFBZ0JqVSxJQUFBQSxjQUFBLFlBQU0sZUFFcEMsTUFJUkEsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxjQUNialUsSUFBQUEsY0FBQSxNQUFJaVUsVUFBVSxpQkFBZ0IsZUFHakNzK0IsRUFDQ3Z5QyxJQUFBQSxjQUFDazdDLEVBQWMsQ0FDYnRwRCxPQUFRNFYsRUFBYzVWLFNBQ3RCaXBELGtCQUFtQnR6QyxFQUFjc3pDLHFCQUFxQm5qQixHQUN0RG1hLFFBQVNXLEVBQ1RMLGNBQWUxa0QsS0FBS3FkLE1BQU1xbkMsY0FDMUJGLGNBQWVBLEVBQ2ZDLGFBQWNBLElBQU1BLEVBQWF4YSxLQUNqQyxNQUVManFDLEtBQUsrUCxNQUFNaTlDLGtCQUFvQno2QyxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLHdCQUMzQ29uQyxFQUFxQnRuRCxPQUNyQmlNLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsbUJBQ2JqVSxJQUFBQSxjQUFBLFNBQU9pVSxVQUFVLGNBQ2ZqVSxJQUFBQSxjQUFBLGFBQ0FBLElBQUFBLGNBQUEsVUFDRUEsSUFBQUEsY0FBQSxNQUFJaVUsVUFBVSxrQ0FBaUMsUUFDL0NqVSxJQUFBQSxjQUFBLE1BQUlpVSxVQUFVLHlDQUF3QyxpQkFHeERqVSxJQUFBQSxjQUFBLGFBRUVxN0MsRUFBcUJsb0QsS0FBSSxDQUFDeEIsRUFBVzZHLElBQ25Dd0gsSUFBQUEsY0FBQ2k3QyxFQUFZLENBQ1g5bUQsR0FBSUEsRUFDSjJwQixTQUFVQSxFQUFTem5CLEtBQUttQyxFQUFFYSxZQUMxQmdULGFBQWNBLEVBQ2R6TSxXQUFZQSxFQUNaMDdDLFNBQVUzcEQsRUFDVjBLLE1BQU9tTCxFQUFjaXdCLDRCQUE0QkMsRUFBWS9sQyxHQUM3RHBELElBQUssR0FBR29ELEVBQVUvQyxJQUFJLFNBQVMrQyxFQUFVL0MsSUFBSSxVQUM3Q3k1QixTQUFVNTZCLEtBQUs0NkIsU0FDZmt6QixpQkFBa0I5dEQsS0FBS2l0RCx3QkFDdkJsekMsY0FBZUEsRUFDZnFHLFlBQWFBLEVBQ2J3a0MsWUFBYUEsRUFDYjlxQyxjQUFlQSxFQUNmbXdCLFdBQVlBLEVBQ1ovWSxVQUFXQSxTQTNCUzNlLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsK0JBQThCalUsSUFBQUEsY0FBQSxTQUFHLG1CQWtDekUsS0FFUnZTLEtBQUsrUCxNQUFNZzlDLGdCQUFrQng2QyxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLG1EQUMzQ2pVLElBQUFBLGNBQUNtN0MsRUFBUyxDQUNSSyxXQUFXMy9DLEVBQUFBLEVBQUFBLEtBQUl3UCxFQUFVemMsSUFBSSxjQUM3Qmt2QixTQUFVQSxFQUFTL2MsTUFBTSxHQUFJLEdBQUcxSyxLQUFLLGdCQUVoQyxLQUVQekUsR0FBVThvQyxHQUFlanRDLEtBQUsrUCxNQUFNaTlDLG1CQUNwQ3o2QyxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLGdEQUNialUsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSwwQkFDYmpVLElBQUFBLGNBQUEsTUFBSWlVLFVBQVcsaUNBQWlDeW1CLEVBQVk5ckMsSUFBSSxhQUFlLGNBQWMsZ0JBRTdGb1IsSUFBQUEsY0FBQSxTQUFPakQsR0FBSTA1QyxHQUNUejJDLElBQUFBLGNBQUNnMkMsRUFBVyxDQUNWM21ELE1BQU9rWSxFQUFjNHhCLHNCQUFzQnpCLEdBQzNDa2YsYUFBY2xjLEVBQVk5ckMsSUFBSSxXQUFXd2IsRUFBQUEsRUFBQUEsU0FBUWpZLFNBQ2pEazJCLFNBQVdoNUIsSUFDVDVCLEtBQUttdEQsa0JBQWtCLENBQUV2ckQsUUFBT3FvQyxjQUFhLEVBRS9DempCLFVBQVUsMEJBQ1YwaUMsVUFBVSx1QkFDVkYsVUFBV0EsTUFJakJ6MkMsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSwrQkFDYmpVLElBQUFBLGNBQUNvN0MsRUFBVyxDQUNWcFAsOEJBbEdvQ3lQLEdBQU1wSixFQUFZckcsOEJBQThCLENBQUUzOEMsTUFBT29zRCxFQUFHL2pCLGVBbUdoR29VLGtCQUFtQnZrQyxFQUFjc3pDLHFCQUFxQm5qQixHQUN0RDVaLFNBQVVBLEVBQVMvYyxNQUFNLEdBQUksR0FBRzFLLEtBQUssZUFDckNxa0MsWUFBYUEsRUFDYm1GLGlCQUFrQnQ0QixFQUFjczRCLG9CQUFvQm5JLEdBQ3BEb0ksNEJBQTZCdjRCLEVBQWN1NEIsK0JBQStCcEksR0FDMUVna0Isa0JBQW1CbjBDLEVBQWNtMEMscUJBQXFCaGtCLEdBQ3REL1ksVUFBV0EsRUFDWC9lLFdBQVlBLEVBQ1ptM0Msa0JBQW1CeHZDLEVBQWN5dkMsd0JBQzVCdGYsRUFDSCxjQUNBLGVBRUZpa0Isd0JBQXlCcHRELElBQ3ZCZCxLQUFLcWQsTUFBTXVuQyxZQUFZbUcsd0JBQXdCLENBQzdDNzlDLEtBQU1wTSxFQUNObXBDLFdBQVlqcUMsS0FBS3FkLE1BQU00c0IsV0FDdkIrZ0IsWUFBYSxjQUNiQyxZQUFhLGVBQ2IsRUFHSnJ3QixTQUFVQSxDQUFDaDVCLEVBQU8rYixLQUNoQixHQUFJQSxFQUFNLENBQ1IsTUFBTXd3QyxFQUFZcjBDLEVBQWNzNEIsb0JBQW9CbkksR0FDOUNta0IsRUFBY2hnRCxFQUFBQSxJQUFJaEssTUFBTStwRCxHQUFhQSxHQUFZLy9DLEVBQUFBLEVBQUFBLE9BQ3ZELE9BQU93MkMsRUFBWWdDLG9CQUFvQixDQUNyQzNjLGFBQ0Fyb0MsTUFBT3dzRCxFQUFZcHlDLE1BQU0yQixFQUFNL2IsSUFFbkMsQ0FDQWdqRCxFQUFZZ0Msb0JBQW9CLENBQUVobEQsUUFBT3FvQyxjQUFhLEVBRXhEb2tCLHFCQUFzQkEsQ0FBQ25oRCxFQUFNdEwsS0FDM0JnakQsRUFBWTBKLHdCQUF3QixDQUNsQ3JrQixhQUNBcm9DLFFBQ0FzTCxRQUNBLEVBRUorNEIsWUFBYW5zQixFQUFjNHhCLHNCQUFzQnpCLE9BTS9ELEVDelJLLE1BUVAsb0JBUjRCc2tCLEVBQUc1RyxPQUFNQyxVQUMxQnIxQyxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLHdCQUF5Qm1oQyxFQUFNLEtBQUk5NUMsT0FBTys1QyxJQ1U5RDRHLEdBQW9DLENBQ3hDNXpCLFNBVldLLE9BV1h3ekIsa0JBQW1CLENBQUMsR0FFUCxNQUFNQyw4QkFBOEIzK0IsRUFBQUEsVUFFakRDLG9CQUFzQncrQixHQUV0Qi85QixpQkFBQUEsR0FDRSxNQUFNLGtCQUFFZytCLEVBQWlCLFNBQUU3ekIsR0FBYTU2QixLQUFLcWQsT0FDdkMsbUJBQUVzeEMsRUFBa0IsYUFBRUMsR0FBaUJILEVBQ3pDRSxHQUNGL3pCLEVBQVNnMEIsRUFFYixDQUVBQyxpQkFBbUJsckQsSUFDakIsTUFBTSxTQUFFaTNCLEdBQWE1NkIsS0FBS3FkLE1BQzFCdWQsRUFBU2ozQixFQUFFa1YsT0FBT21vQyxRQUFRLEVBRzVCcmlDLE1BQUFBLEdBQ0UsSUFBSSxXQUFFbXdDLEVBQVUsV0FBRTF5QixHQUFlcDhCLEtBQUtxZCxNQUV0QyxPQUNFOUssSUFBQUEsY0FBQSxXQUNFQSxJQUFBQSxjQUFBLFNBQ0Vzb0IsUUFBUSxzQkFDUnJVLFVBQVdxTSxLQUFHLGdDQUFpQyxDQUM3QyxTQUFZdUosS0FHZDdwQixJQUFBQSxjQUFBLFNBQ0VqRCxHQUFHLHNCQUNIaE4sS0FBSyxXQUNMKzRCLFNBQVVlLEVBQ1Y0a0IsU0FBVTVrQixHQUFjMHlCLEVBQ3hCbDBCLFNBQVU1NkIsS0FBSzZ1RCxtQkFDZixvQkFLVixFQ2pEYSxNQUFNckIscUJBQXFCejlCLEVBQUFBLFVBa0J4Q25nQixXQUFBQSxDQUFZeU4sRUFBT2lULEdBQ2pCQyxNQUFNbFQsRUFBT2lULEdBRWJ0d0IsS0FBSyt1RCxpQkFDUCxDQUVBcCtCLGdDQUFBQSxDQUFpQ3RULEdBQy9CLElBT0kwZSxHQVBBLGNBQUVoaUIsRUFBYSxXQUFFa3dCLEVBQVUsU0FBRTRqQixHQUFheHdDLEVBQzFDbFosRUFBUzRWLEVBQWM1VixTQUV2QnVtQyxFQUFvQjN3QixFQUFjaXdCLDRCQUE0QkMsRUFBWTRqQixJQUFhLElBQUl6L0MsRUFBQUEsSUFNL0YsR0FKQXM4QixFQUFvQkEsRUFBa0JqN0IsVUFBWW8rQyxFQUFXbmpCLEVBSTFEdm1DLEVBQVEsQ0FDVCxJQUFJLE9BQUVFLEdBQVdKLG1CQUFtQnltQyxFQUFtQixDQUFFdm1DLFdBQ3pENDNCLEVBQVkxM0IsRUFBU0EsRUFBT2xELElBQUksYUFBVWIsQ0FDNUMsTUFDRXk3QixFQUFZMk8sRUFBb0JBLEVBQWtCdnBDLElBQUksYUFBVWIsRUFFbEUsSUFFSXNCLEVBRkFpd0MsRUFBYW5ILEVBQW9CQSxFQUFrQnZwQyxJQUFJLGNBQVdiLE9BSWxEQSxJQUFmdXhDLEVBQ0hqd0MsRUFBUWl3QyxFQUNFZ2MsRUFBUzFzRCxJQUFJLGFBQWU0NkIsR0FBYUEsRUFBVXB4QixPQUM3RC9JLEVBQVFtNkIsRUFBVXAzQixjQUdMckUsSUFBVnNCLEdBQXVCQSxJQUFVaXdDLEdBQ3BDN3hDLEtBQUtndkQsZ0I5TCtyQkosU0FBU0MsZUFBZTdwRCxHQUM3QixNQUFvQixpQkFBVkEsRUFDREEsRUFBTXdHLFdBR1J4RyxDQUNULEM4THJzQjJCNnBELENBQWVydEQsSUFHdEM1QixLQUFLK3VELGlCQUNQLENBRUFDLGdCQUFrQkEsQ0FBQ3B0RCxFQUFPcXBDLEdBQVEsS0FDaEMsSUFDSWlrQixHQURBLFNBQUV0MEIsRUFBUSxTQUFFaXpCLEdBQWE3dEQsS0FBS3FkLE1BVWxDLE9BTEU2eEMsRUFEVyxLQUFWdHRELEdBQWlCQSxHQUF3QixJQUFmQSxFQUFNK0ksS0FDZCxLQUVBL0ksRUFHZGc1QixFQUFTaXpCLEVBQVVxQixFQUFrQmprQixFQUFNLEVBR3BEa2tCLGlCQUFvQnJ1RCxJQUNsQmQsS0FBS3FkLE1BQU11bkMsWUFBWW1HLHdCQUF3QixDQUM3Qzc5QyxLQUFNcE0sRUFDTm1wQyxXQUFZanFDLEtBQUtxZCxNQUFNNHNCLFdBQ3ZCK2dCLFlBQWEsYUFDYkMsWUFBYWpyRCxLQUFLb3ZELGVBQ2xCLEVBR0pmLHFCQUF3QnJ4QixJQUN0QixJQUFJLFlBQUU1YyxFQUFXLE1BQUV4UixFQUFLLFdBQUVxN0IsR0FBZWpxQyxLQUFLcWQsTUFDOUMsTUFBTXJPLEVBQVlKLEVBQU16TixJQUFJLFFBQ3RCOE4sRUFBVUwsRUFBTXpOLElBQUksTUFDMUIsT0FBT2lmLEVBQVkrd0IsMEJBQTBCbEgsRUFBWWo3QixFQUFXQyxFQUFTK3RCLEVBQVMsRUFHeEYreEIsZ0JBQWtCQSxLQUNoQixJQUFJLGNBQUVoMUMsRUFBYSxXQUFFa3dCLEVBQVUsU0FBRTRqQixFQUFRLGNBQUUvekMsRUFBYSxHQUFFcFQsR0FBTzFHLEtBQUtxZCxNQUV0RSxNQUFNZ3lDLEVBQWdCdDFDLEVBQWNpd0IsNEJBQTRCQyxFQUFZNGpCLEtBQWF6L0MsRUFBQUEsRUFBQUEsT0FDekYsSUFBSSxPQUFFL0osR0FBV0osbUJBQW1Cb3JELEVBQWUsQ0FBRWxyRCxPQUFRNFYsRUFBYzVWLFdBQzNFLE1BQU1tckQsRUFBcUJELEVBQ3hCbHVELElBQUksV0FBV2lOLEVBQUFBLEVBQUFBLFFBQ2YxSixTQUNBQyxRQUdHNHFELEVBQXVCbHJELEVBQVNxQyxFQUFHdTJCLGdCQUFnQjU0QixFQUFPYSxPQUFRb3FELEVBQW9CLENBRTFGcjlCLGtCQUFrQixJQUNmLEtBRUwsR0FBS285QixRQUFnRC91RCxJQUEvQit1RCxFQUFjbHVELElBQUksVUFJUixTQUE1Qmt1RCxFQUFjbHVELElBQUksTUFBbUIsQ0FDdkMsSUFBSTJnRCxFQUlKLEdBQUkvbkMsRUFBY3kxQyxhQUNoQjFOLE9BQ3FDeGhELElBQW5DK3VELEVBQWNsdUQsSUFBSSxhQUNoQmt1RCxFQUFjbHVELElBQUksa0JBQzZCYixJQUEvQyt1RCxFQUFjenFELE1BQU0sQ0FBQyxTQUFVLFlBQy9CeXFELEVBQWN6cUQsTUFBTSxDQUFDLFNBQVUsWUFDOUJQLEdBQVVBLEVBQU9PLE1BQU0sQ0FBQyxpQkFDeEIsR0FBSW1WLEVBQWM1VixTQUFVLENBQ2pDRSxFQUFTckUsS0FBS3l2RCxrQkFBa0JwckQsR0FFaEMsTUFBTSs0QyxFQUFvQnRqQyxFQUFjeXZDLHdCQUF3QnRmLEVBQVksYUFBY2pxQyxLQUFLb3ZELGVBQy9GdE4sT0FDb0V4aEQsSUFBbEUrdUQsRUFBY3pxRCxNQUFNLENBQUMsV0FBWXc0QyxFQUFtQixVQUNsRGlTLEVBQWN6cUQsTUFBTSxDQUFDLFdBQVl3NEMsRUFBbUIsZUFDZ0I5OEMsSUFBcEUrdUQsRUFBY3pxRCxNQUFNLENBQUMsVUFBVzBxRCxFQUFvQixZQUNwREQsRUFBY3pxRCxNQUFNLENBQUMsVUFBVzBxRCxFQUFvQixpQkFDbkJodkQsSUFBakMrdUQsRUFBY2x1RCxJQUFJLFdBQ2xCa3VELEVBQWNsdUQsSUFBSSxnQkFDb0JiLEtBQXJDK0QsR0FBVUEsRUFBT2xELElBQUksWUFDckJrRCxHQUFVQSxFQUFPbEQsSUFBSSxnQkFDZ0JiLEtBQXJDK0QsR0FBVUEsRUFBT2xELElBQUksWUFDckJrRCxHQUFVQSxFQUFPbEQsSUFBSSxXQUN0Qmt1RCxFQUFjbHVELElBQUksVUFDeEIsTUFJb0JiLElBQWpCd2hELEdBQStCbmxDLEVBQUFBLEtBQUszVCxPQUFPODRDLEtBRTVDQSxFQUFlcHpDLFVBQVVvekMsSUFLM0IsTUFBTTROLEVBQW1CaHBELEVBQUc2MEIsb0JBQW9CbDNCLEdBQzFDazVCLEVBQWtCNzJCLEVBQUc2MEIsb0JBQW9CbDNCLEdBQVFsRCxJQUFJLGVBRXZDYixJQUFqQndoRCxFQUNEOWhELEtBQUtndkQsZ0JBQWdCbE4sR0FFQSxXQUFyQjROLEdBQ0dILElBQ0NGLEVBQWNsdUQsSUFBSSxZQU90Qm5CLEtBQUtndkQsZ0JBQ0hyeUMsRUFBQUEsS0FBSzNULE9BQU91bUQsR0FDVkEsRUFFQTdnRCxVQUFVNmdELElBS08sVUFBckJHLEdBQ3VCLFdBQXBCbnlCLEdBQ0FneUIsSUFDQ0YsRUFBY2x1RCxJQUFJLGFBRXRCbkIsS0FBS2d2RCxnQkFDSHJ5QyxFQUFBQSxLQUFLM1QsT0FBT3VtRCxHQUNWQSxHQUVBNXlDLEVBQUFBLEVBQUFBLE1BQUt0VCxLQUFLQyxNQUFNaW1ELElBSXhCLEdBR0ZILFdBQUFBLEdBQ0UsTUFBTSxNQUFFeGdELEdBQVU1TyxLQUFLcWQsTUFFdkIsT0FBSXpPLEVBRUcsR0FBR0EsRUFBTXpOLElBQUksV0FBV3lOLEVBQU16TixJQUFJLFFBRnZCLElBR3BCLENBRUFzdUQsaUJBQUFBLENBQWtCcHJELEdBQ2hCLE1BQU0sR0FBRXFDLEdBQU8xRyxLQUFLcWQsTUFDZHNjLEVBQVF0MUIsRUFBT2xELElBQUksVUFBVUEsSUFBSSxJQUFJK0QsT0FDckN3MEIsRUFBUXIxQixFQUFPbEQsSUFBSSxVQUFVQSxJQUFJLElBQUkrRCxPQUMzQyxPQUFPc0YsRUFBQUEsRUFBQUEsUUFBTzlELEVBQUdvN0IsZ0JBQWdCejlCLEVBQU9hLE9BQVF5MEIsR0FBU0QsR0FBUyxDQUFDLEdBQ3JFLENBRUEvYSxNQUFBQSxHQUNFLElBQUksTUFBQy9QLEVBQUssU0FBRWkvQyxFQUFRLGFBQUVqdkMsRUFBWSxXQUFFek0sRUFBVSxVQUFFK2UsRUFBUyxHQUFFeHFCLEVBQUUsaUJBQUVvbkQsRUFBZ0IsY0FBRS96QyxFQUFhLFdBQUVrd0IsRUFBVSxTQUFFNVosRUFBUSxjQUFFdlcsR0FBaUI5WixLQUFLcWQsTUFFeElsWixFQUFTNFYsRUFBYzVWLFNBRTNCLE1BQU0sZUFBRXcwQixFQUFjLHFCQUFFZzNCLEdBQXlCeDlDLElBTWpELEdBSkl2RCxJQUNGQSxFQUFRaS9DLElBR05BLEVBQVUsT0FBTyxLQUdyQixNQUFNMXlCLEVBQWlCdmMsRUFBYSxrQkFDOUJneEMsRUFBWWh4QyxFQUFhLGFBQy9CLElBQUlrc0IsRUFBU2w4QixFQUFNek4sSUFBSSxNQUNuQjB1RCxFQUF1QixTQUFYL2tCLEVBQW9CLEtBQ2hDdjRCLElBQUFBLGNBQUNxOUMsRUFBUyxDQUFDaHhDLGFBQWNBLEVBQ2R6TSxXQUFhQSxFQUNiekwsR0FBSUEsRUFDSmtJLE1BQU9BLEVBQ1AyNUIsU0FBV3h1QixFQUFjbXlCLG1CQUFtQmpDLEdBQzVDNmxCLGNBQWdCLzFDLEVBQWN3eEIsa0JBQWtCdEIsR0FBWTlvQyxJQUFJLHNCQUNoRXk1QixTQUFVNTZCLEtBQUtndkQsZ0JBQ2ZsQixpQkFBa0JBLEVBQ2xCNThCLFVBQVlBLEVBQ1puWCxjQUFnQkEsRUFDaEJrd0IsV0FBYUEsSUFHNUIsTUFBTWpZLEVBQWVwVCxFQUFhLGdCQUM1QndhLEVBQVd4YSxFQUFhLFlBQVksR0FDcEMydkMsRUFBZTN2QyxFQUFhLGdCQUM1Qjh2QyxFQUF3Qjl2QyxFQUFhLHlCQUNyQ3cvQixFQUE4QngvQixFQUFhLCtCQUMzQ20rQixFQUFVbitCLEVBQWEsV0FFN0IsSUFBSSxPQUFFdmEsR0FBV0osbUJBQW1CMkssRUFBTyxDQUFFekssV0FDekNrckQsRUFBZ0J0MUMsRUFBY2l3Qiw0QkFBNEJDLEVBQVk0akIsS0FBYXovQyxFQUFBQSxFQUFBQSxPQUVuRmpLLElBQ0ZFLEVBQVNyRSxLQUFLeXZELGtCQUFrQnByRCxJQUdsQyxJQUFJNEQsRUFBUzVELEVBQVNBLEVBQU9sRCxJQUFJLFVBQVksS0FDekM0dUQsRUFBd0IsYUFBWGpsQixFQUNia2xCLEVBQXNCLGFBQWMsRUFDcENsN0IsRUFBV2xtQixFQUFNek4sSUFBSSxZQUV6QixNQUFNdXVELEVBQW1CaHBELEVBQUc2MEIsb0JBQW9CbDNCLEdBQzFDazVCLEVBQWtCNzJCLEVBQUc2MEIsb0JBQW9CbDNCLEdBQVFsRCxJQUFJLFVBQ3JEOHVELEVBQXdCdnBELEVBQUcrMkIseUJBQXlCcDVCLEdBQ3BEZ0IsR0FBWXdxRCxHQUFrQyxXQUFyQkgsRUFDekJRLEdBQW9CTCxHQUFpQyxXQUFwQnR5QixFQUV2QyxJQUlJNHlCLEVBQ0FDLEVBQ0FDLEVBQ0FDLEVBUEExdUQsRUFBUXl0RCxFQUFnQkEsRUFBY2x1RCxJQUFJLFNBQVcsR0FDckRvdkQsRUFBWVosRUFBdUJ0aEQsb0JBQW9CaEssR0FBVSxLQUNqRXUwQixFQUFhRCxFQUFpQjFxQixjQUFjVyxHQUFTLEtBTXJENGhELEdBQXFCLE9BRVZsd0QsSUFBVnNPLEdBQXVCdkssSUFDMUI4ckQsRUFBYTlyRCxFQUFPbEQsSUFBSSxlQUdQYixJQUFmNnZELEdBQ0ZDLEVBQVlELEVBQVdodkQsSUFBSSxRQUMzQmt2RCxFQUFvQkYsRUFBV2h2RCxJQUFJLFlBQzFCa0QsSUFDVCtyRCxFQUFZL3JELEVBQU9sRCxJQUFJLFNBR3BCaXZELEdBQWFBLEVBQVV6bEQsTUFBUXlsRCxFQUFVemxELEtBQU8sSUFDbkQ2bEQsR0FBcUIsUUFJUmx3RCxJQUFWc08sSUFDQ3ZLLElBQ0Znc0QsRUFBb0Joc0QsRUFBT2xELElBQUksaUJBRVBiLElBQXRCK3ZELElBQ0ZBLEVBQW9CemhELEVBQU16TixJQUFJLFlBRWhDbXZELEVBQWUxaEQsRUFBTXpOLElBQUksZ0JBQ0piLElBQWpCZ3dELElBQ0ZBLEVBQWUxaEQsRUFBTXpOLElBQUksZUFJN0IsTUFBTXN2RCxFQUFpQlosRUFBWSxLQUMvQnQ5QyxJQUFBQSxjQUFDNG9CLEVBQWMsQ0FBQ3owQixHQUFJQSxFQUNwQmtZLGFBQWNBLEVBQ2RoZCxNQUFRQSxFQUNSa3pCLFNBQVdBLEVBQ1h1RyxVQUFXbkssRUFDWDJILFlBQWFqcUIsRUFBTXpOLElBQUksUUFDdkJ5NUIsU0FBVzU2QixLQUFLZ3ZELGdCQUNoQnRzRCxPQUFTMnNELEVBQWNsdUQsSUFBSSxVQUMzQmtELE9BQVNBLElBR2IsT0FDRWtPLElBQUFBLGNBQUEsTUFBSSxrQkFBaUIzRCxFQUFNek4sSUFBSSxRQUFTLGdCQUFleU4sRUFBTXpOLElBQUksT0FDL0RvUixJQUFBQSxjQUFBLE1BQUlpVSxVQUFVLHVCQUNaalUsSUFBQUEsY0FBQSxPQUFLaVUsVUFBV3NPLEVBQVcsMkJBQTZCLG1CQUNwRGxtQixFQUFNek4sSUFBSSxRQUNUMnpCLEVBQWtCdmlCLElBQUFBLGNBQUEsWUFBTSxNQUFiLE1BRWhCQSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLG1CQUNYeXBDLEVBQ0Fob0QsR0FBVXNLLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsZUFBYyxLQUFHdmUsRUFBTyxNQUV0RHNLLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUseUJBQ1hyaUIsR0FBVXlLLEVBQU16TixJQUFJLGNBQWdCLGFBQWMsTUFFdERvUixJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLGlCQUFnQixJQUFHNVgsRUFBTXpOLElBQUksTUFBTyxNQUdyRG9SLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsOEJBQ1Y1WCxFQUFNek4sSUFBSSxlQUFpQm9SLElBQUFBLGNBQUM2bUIsRUFBUSxDQUFDeGhCLE9BQVNoSixFQUFNek4sSUFBSSxpQkFBcUIsTUFFNUUwdUQsR0FBYzMrQixJQUFjcy9CLEVBSzNCLEtBSkZqK0MsSUFBQUEsY0FBQzZtQixFQUFRLENBQUM1UyxVQUFVLGtCQUFrQjVPLE9BQ2xDLDZCQUErQnc0QyxFQUFVMXFELEtBQUksU0FBU29GLEdBQ2xELE9BQU9BLENBQ1QsSUFBR0ssVUFBVXpGLElBQUltSSxRQUFRUixLQUFLLFNBSW5Dd2lELEdBQWMzK0IsUUFBb0M1d0IsSUFBdEIrdkQsRUFFM0IsS0FERjk5QyxJQUFBQSxjQUFDNm1CLEVBQVEsQ0FBQzVTLFVBQVUscUJBQXFCNU8sT0FBUSwwQkFBNEJ5NEMsS0FJNUVSLEdBQWMzK0IsUUFBK0I1d0IsSUFBakJnd0QsRUFFM0IsS0FERi85QyxJQUFBQSxjQUFDNm1CLEVBQVEsQ0FBQ3hoQixPQUFRLG9CQUFzQjA0QyxJQUl4Q1AsSUFBZUMsR0FBd0J6OUMsSUFBQUEsY0FBQSxXQUFLLGlEQUc1Q3BPLEdBQVV5SyxFQUFNek4sSUFBSSxZQUNsQm9SLElBQUFBLGNBQUEsV0FBU2lVLFVBQVUsc0JBQ2pCalUsSUFBQUEsY0FBQzZyQyxFQUEyQixDQUMxQmxCLFNBQVV0dUMsRUFBTXpOLElBQUksWUFDcEJnOEMsU0FBVW45QyxLQUFLbXZELGlCQUNmM1EsWUFBYXgrQyxLQUFLZ3ZELGdCQUNsQnB3QyxhQUFjQSxFQUNkOHhDLHVCQUF1QixFQUN2Qm5SLFdBQVl6bEMsRUFBY3l2Qyx3QkFBd0J0ZixFQUFZLGFBQWNqcUMsS0FBS292RCxlQUNqRnhRLHNCQUF1Qmg5QyxLQUd6QixLQUdIeUQsR0FBWTZxRCxFQUNiMzlDLElBQUFBLGNBQUN5ZixFQUFZLENBQ1hwVCxhQUFjQSxFQUNkeVIsU0FBVUEsRUFBU3puQixLQUFLLFVBQ3hCdUosV0FBWUEsRUFDWitlLFVBQVdBLEVBQ1huWCxjQUFlQSxFQUNmMVYsT0FBUUEsRUFDUjhzQixRQUFTcy9CLElBRVBBLEVBSUpaLEdBQWF4ckQsRUFBU2tPLElBQUFBLGNBQUN5ZixFQUFZLENBQUNwVCxhQUFlQSxFQUNmeVIsU0FBVUEsRUFBU3puQixLQUFLLFVBQ3hCdUosV0FBYUEsRUFDYitlLFVBQVlBLEVBQ1puWCxjQUFnQkEsRUFDaEIxVixPQUFTQSxFQUNUOHNCLFFBQVUwK0IsRUFDVjU5QixrQkFBbUIsSUFDbkQsTUFJSDQ5QixHQUFhMytCLEdBQWF0aUIsRUFBTXpOLElBQUksbUJBQ3JDb1IsSUFBQUEsY0FBQ204QyxFQUFxQixDQUNwQjl6QixTQUFVNTZCLEtBQUtxdUQscUJBQ2ZTLFdBQVkvMEMsRUFBY3l3Qiw2QkFBNkJQLEVBQVlyN0IsRUFBTXpOLElBQUksUUFBU3lOLEVBQU16TixJQUFJLE9BQ2hHaTdCLFlBQWE1c0IsYUFBYTVOLEtBQzFCLEtBSUZ1QyxHQUFVeUssRUFBTXpOLElBQUksWUFDbEJvUixJQUFBQSxjQUFDd3FDLEVBQU8sQ0FDTjVyQixRQUFTdmlCLEVBQU1oSyxNQUFNLENBQ25CLFdBQ0FrVixFQUFjeXZDLHdCQUF3QnRmLEVBQVksYUFBY2pxQyxLQUFLb3ZELGlCQUV2RXh3QyxhQUFjQSxFQUNkek0sV0FBWUEsSUFFWixLQUdIdzlDLEdBQXlCWSxFQUFVNWxELEtBQWM0bEQsRUFBVXowQyxXQUFXcFcsS0FBSSxFQUFFNUUsRUFBS3lELEtBQU9nTyxJQUFBQSxjQUFDZzhDLEVBQVksQ0FBQ3p0RCxJQUFLLEdBQUdBLEtBQU95RCxJQUFLb2pELEtBQU03bUQsRUFBSzhtRCxLQUFNcmpELE1BQWpHLEtBQzFDbzBCLEdBQW1CQyxFQUFXanVCLEtBQWNpdUIsRUFBVzljLFdBQVdwVyxLQUFJLEVBQUU1RSxFQUFLeUQsS0FBT2dPLElBQUFBLGNBQUNnOEMsRUFBWSxDQUFDenRELElBQUssR0FBR0EsS0FBT3lELElBQUtvakQsS0FBTTdtRCxFQUFLOG1ELEtBQU1yakQsTUFBbEcsTUFPaEQsRUN4YWEsTUFBTThnRCxnQkFBZ0J0MUIsRUFBQUEsVUFjbkM0Z0MseUJBQTJCQSxLQUN6QixJQUFJLGNBQUU1MkMsRUFBYSxZQUFFcUcsRUFBVyxLQUFFekMsRUFBSSxPQUFFOVEsR0FBVzdNLEtBQUtxZCxNQUV4RCxPQURBK0MsRUFBWTh3QixlQUFlLENBQUN2ekIsRUFBTTlRLElBQzNCa04sRUFBYyt5QixzQkFBc0IsQ0FBQ252QixFQUFNOVEsR0FBUSxFQUc1RCtqRCwwQkFBNEJBLEtBQzFCLElBQUksS0FBRWp6QyxFQUFJLE9BQUU5USxFQUFNLGNBQUVrTixFQUFhLGNBQUVELEVBQWEsWUFBRThxQyxHQUFnQjVrRCxLQUFLcWQsTUFDbkVvdkIsRUFBbUIsQ0FDckJva0Isa0JBQWtCLEVBQ2xCQyxvQkFBcUIsSUFHdkJsTSxFQUFZbU0sOEJBQThCLENBQUVwekMsT0FBTTlRLFdBQ2xELElBQUlta0QsRUFBcUNqM0MsRUFBY2d6QixzQ0FBc0MsQ0FBQ3B2QixFQUFNOVEsSUFDaEdva0QsRUFBdUJuM0MsRUFBY3M0QixpQkFBaUJ6MEIsRUFBTTlRLEdBQzVEcWtELEVBQW1DcDNDLEVBQWNnekIsc0JBQXNCLENBQUNudkIsRUFBTTlRLElBQzlFc2tELEVBQXlCcjNDLEVBQWM0eEIsbUJBQW1CL3RCLEVBQU05USxHQUVwRSxJQUFLcWtELEVBR0gsT0FGQXprQixFQUFpQm9rQixrQkFBbUIsRUFDcENqTSxFQUFZd00sNEJBQTRCLENBQUV6ekMsT0FBTTlRLFNBQVE0L0Isc0JBQ2pELEVBRVQsSUFBS3VrQixFQUNILE9BQU8sRUFFVCxJQUFJRixFQUFzQmgzQyxFQUFjdTNDLHdCQUF3QixDQUM5REwscUNBQ0FHLHlCQUNBRix5QkFFRixPQUFLSCxHQUF1QkEsRUFBb0J4cUQsT0FBUyxJQUd6RHdxRCxFQUFvQnRuRCxTQUFTOG5ELElBQzNCN2tCLEVBQWlCcWtCLG9CQUFvQmxvRCxLQUFLMG9ELEVBQVcsSUFFdkQxTSxFQUFZd00sNEJBQTRCLENBQUV6ekMsT0FBTTlRLFNBQVE0L0Isc0JBQ2pELEVBQUssRUFHZDhrQiwyQkFBNkJBLEtBQzNCLElBQUksWUFBRW54QyxFQUFXLFVBQUV4QyxFQUFTLEtBQUVELEVBQUksT0FBRTlRLEdBQVc3TSxLQUFLcWQsTUFDaERyZCxLQUFLcWQsTUFBTXNuQyxXQUViM2tELEtBQUtxZCxNQUFNc25DLFlBRWJ2a0MsRUFBWTNDLFFBQVEsQ0FBRUcsWUFBV0QsT0FBTTlRLFVBQVMsRUFHbEQya0QsMkJBQTZCQSxLQUMzQixJQUFJLFlBQUVweEMsRUFBVyxLQUFFekMsRUFBSSxPQUFFOVEsR0FBVzdNLEtBQUtxZCxNQUV6QytDLEVBQVlpeEIsb0JBQW9CLENBQUMxekIsRUFBTTlRLElBQ3ZDOGMsWUFBVyxLQUNUdkosRUFBWTh3QixlQUFlLENBQUN2ekIsRUFBTTlRLEdBQVEsR0FDekMsR0FBRyxFQUdSNGtELHVCQUEwQkMsSUFDcEJBLEVBQ0YxeEQsS0FBS3V4RCw2QkFFTHZ4RCxLQUFLd3hELDRCQUNQLEVBR0Z4aUMsUUFBVUEsS0FDUixJQUFJMmlDLEVBQWUzeEQsS0FBSzJ3RCwyQkFDcEJpQixFQUFvQjV4RCxLQUFLNHdELDRCQUN6QmMsRUFBU0MsR0FBZ0JDLEVBQzdCNXhELEtBQUt5eEQsdUJBQXVCQyxFQUFPLEVBR3JDMUosd0JBQTRCdCtDLEdBQVMxSixLQUFLcWQsTUFBTStDLFlBQVlteEIsb0JBQW9CLENBQUN2eEMsS0FBS3FkLE1BQU1NLEtBQU0zZCxLQUFLcWQsTUFBTXhRLFFBQVNuRCxHQUV0SGlWLE1BQUFBLEdBQ0UsTUFBTSxTQUFFMGMsR0FBYXI3QixLQUFLcWQsTUFDMUIsT0FDSTlLLElBQUFBLGNBQUEsVUFBUWlVLFVBQVUsbUNBQW1Dd0ksUUFBVWh2QixLQUFLZ3ZCLFFBQVVxTSxTQUFVQSxHQUFVLFVBSXhHLEVDL0ZhLE1BQU0ybUIsd0JBQWdCenZDLElBQUFBLFVBTW5Db00sTUFBQUEsR0FDRSxJQUFJLFFBQUVoRyxFQUFPLGFBQUVpRyxHQUFpQjVlLEtBQUtxZCxNQUVyQyxNQUFNZ2MsRUFBV3phLEVBQWEsWUFDeEJ3YSxFQUFXeGEsRUFBYSxZQUFZLEdBRTFDLE9BQU1qRyxHQUFZQSxFQUFRaE8sS0FJeEI0SCxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLG1CQUNialUsSUFBQUEsY0FBQSxNQUFJaVUsVUFBVSxrQkFBaUIsWUFDL0JqVSxJQUFBQSxjQUFBLFNBQU9pVSxVQUFVLFdBQ2ZqVSxJQUFBQSxjQUFBLGFBQ0VBLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsY0FDWmpVLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsY0FBYSxRQUMzQmpVLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsY0FBYSxlQUMzQmpVLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsY0FBYSxVQUcvQmpVLElBQUFBLGNBQUEsYUFFRW9HLEVBQVFtRCxXQUFXcFcsS0FBSyxFQUFHNUUsRUFBS21iLE1BQzlCLElBQUlsWSxJQUFBQSxJQUFPSyxNQUFNNlgsR0FDZixPQUFPLEtBR1QsTUFBTTRjLEVBQWM1YyxFQUFPOWEsSUFBSSxlQUN6Qm1CLEVBQU8yWixFQUFPclgsTUFBTSxDQUFDLFdBQWFxWCxFQUFPclgsTUFBTSxDQUFDLFNBQVUsU0FBV3FYLEVBQU9yWCxNQUFNLENBQUMsU0FDbkZpdEQsRUFBZ0I1MUMsRUFBT3JYLE1BQU0sQ0FBQyxTQUFVLFlBRTlDLE9BQVEyTixJQUFBQSxjQUFBLE1BQUl6UixJQUFNQSxHQUNoQnlSLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsY0FBZTFsQixHQUM3QnlSLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsY0FDWHFTLEVBQXFCdG1CLElBQUFBLGNBQUM2bUIsRUFBUSxDQUFDeGhCLE9BQVNpaEIsSUFBMUIsTUFFakJ0bUIsSUFBQUEsY0FBQSxNQUFJaVUsVUFBVSxjQUFlbGtCLEVBQU0sSUFBR3V2RCxFQUFnQnQvQyxJQUFBQSxjQUFDOG1CLEVBQVEsQ0FBQzV2QixRQUFVLFVBQVl1d0IsUUFBVTYzQixFQUFnQjkzQixVQTVDOUcsbUJBNEMySSxNQUMxSSxJQUNKNXVCLGFBL0JGLElBcUNYLEVDcERhLE1BQU0ybUQsZUFBZXYvQyxJQUFBQSxVQVVsQ29NLE1BQUFBLEdBQ0UsSUFBSSxjQUFFb3pDLEVBQWEsYUFBRTloQixFQUFZLGdCQUFFbnRCLEVBQWUsY0FBRUUsRUFBYSxhQUFFcEUsR0FBaUI1ZSxLQUFLcWQsTUFFekYsTUFBTW1aLEVBQVc1WCxFQUFhLFlBRTlCLEdBQUdtekMsR0FBaUJBLEVBQWNDLFdBQ2hDLElBQUlBLEVBQWFELEVBQWNDLFdBR2pDLElBR0lDLEVBSFNoaUIsRUFBYXZxQixZQUdNMWlCLFFBQU9YLEdBQTJCLFdBQXBCQSxFQUFJbEIsSUFBSSxTQUFrRCxVQUFyQmtCLEVBQUlsQixJQUFJLFdBRTNGLElBQUk4d0QsR0FBc0JBLEVBQW1CaHBELFFBQVUsRUFDckQsT0FBTyxLQUdULElBQUlpcEQsRUFBWXB2QyxFQUFnQndGLFFBQVEsQ0FBQyxjQUFjLEdBR25ENnBDLEVBQWlCRixFQUFtQm5zQyxRQUFPempCLEdBQU9BLEVBQUlsQixJQUFJLFVBRTlELE9BQ0VvUixJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLGtCQUNialUsSUFBQUEsY0FBQSxVQUFRaVUsVUFBVSxTQUNoQmpVLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsaUJBQWdCLFVBQzlCalUsSUFBQUEsY0FBQSxVQUFRaVUsVUFBVSx3QkFBd0J3SSxRQVJ6Qm9qQyxJQUFNcHZDLEVBQWNVLEtBQUssQ0FBQyxjQUFld3VDLElBUWVBLEVBQVksT0FBUyxTQUVoRzMvQyxJQUFBQSxjQUFDaWtCLEVBQVEsQ0FBQ0UsU0FBV3c3QixFQUFZRyxVQUFRLEdBQ3ZDOS9DLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsVUFDWDJyQyxFQUFlenNELEtBQUksQ0FBQ3JELEVBQUswSSxLQUN6QixJQUFJekksRUFBT0QsRUFBSWxCLElBQUksUUFDbkIsTUFBWSxXQUFUbUIsR0FBOEIsU0FBVEEsRUFDZmlRLElBQUFBLGNBQUMrL0MsZ0JBQWUsQ0FBQ3h4RCxJQUFNaUssRUFBSWxILE1BQVF4QixFQUFJbEIsSUFBSSxVQUFZa0IsRUFBTTJ2RCxXQUFZQSxJQUV0RSxTQUFUMXZELEVBQ01pUSxJQUFBQSxjQUFDZ2dELGNBQWEsQ0FBQ3p4RCxJQUFNaUssRUFBSWxILE1BQVF4QixFQUFNMnZELFdBQVlBLFNBRDVELENBRUEsTUFNVixFQUdKLE1BQU1NLGdCQUFrQkEsRUFBSXp1RCxRQUFPbXVELGlCQUNqQyxJQUFJbnVELEVBQ0YsT0FBTyxLQUVULElBQUkydUQsRUFBWTN1RCxFQUFNMUMsSUFBSSxRQUUxQixPQUNFb1IsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxpQkFDVjNpQixFQUNEME8sSUFBQUEsY0FBQSxXQUNFQSxJQUFBQSxjQUFBLFVBQU8xTyxFQUFNMUMsSUFBSSxXQUFhMEMsRUFBTTFDLElBQUksU0FDdENzeEQsWUFBWTV1RCxFQUFNMUMsSUFBSSxXQUFhLElBQU0wQyxFQUFNMUMsSUFBSSxTQUFXLEdBQzlEMEMsRUFBTTFDLElBQUksUUFBVW9SLElBQUFBLGNBQUEsYUFBTyxPQUFLMU8sRUFBTTFDLElBQUksU0FBa0IsTUFDOURvUixJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGtCQUNaM2lCLEVBQU0xQyxJQUFJLFlBRWRvUixJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLGNBQ1hnc0MsR0FBYVIsRUFBYXovQyxJQUFBQSxjQUFBLEtBQUd5YyxRQUFTZ2pDLEVBQVd2aEQsS0FBSyxLQUFNK2hELElBQVksZ0JBQWVBLEdBQWtCLE9BVHRHLEtBYVAsRUFJSkQsY0FBZ0JBLEVBQUkxdUQsUUFBT211RCxhQUFhLFNBQzVDLElBQUlVLEVBQWtCLEtBWXRCLE9BVkc3dUQsRUFBTTFDLElBQUksUUFFVHV4RCxFQURDLzFDLEVBQUFBLEtBQUszVCxPQUFPbkYsRUFBTTFDLElBQUksU0FDTG9SLElBQUFBLGNBQUEsYUFBTyxNQUFLMU8sRUFBTTFDLElBQUksUUFBUWtNLEtBQUssTUFFbkNrRixJQUFBQSxjQUFBLGFBQU8sTUFBSzFPLEVBQU0xQyxJQUFJLFNBRWxDMEMsRUFBTTFDLElBQUksVUFBWTZ3RCxJQUM5QlUsRUFBa0JuZ0QsSUFBQUEsY0FBQSxhQUFPLFdBQVUxTyxFQUFNMUMsSUFBSSxVQUk3Q29SLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsaUJBQ1YzaUIsRUFDRDBPLElBQUFBLGNBQUEsV0FDRUEsSUFBQUEsY0FBQSxVQUFNa2dELFlBQVk1dUQsRUFBTTFDLElBQUksV0FBYSxJQUFNMEMsRUFBTTFDLElBQUksU0FBVSxJQUFRdXhELEdBQzNFbmdELElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsV0FBWTNpQixFQUFNMUMsSUFBSSxZQUN0Q29SLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsY0FDWHdyQyxFQUNBei9DLElBQUFBLGNBQUEsS0FBR3ljLFFBQVNnakMsRUFBV3ZoRCxLQUFLLEtBQU01TSxFQUFNMUMsSUFBSSxVQUFVLGdCQUFlMEMsRUFBTTFDLElBQUksU0FDN0UsT0FQQyxLQVdQLEVBSVYsU0FBU3N4RCxZQUFZcm1ELEdBQ25CLE9BQVFBLEdBQU8sSUFDWmlYLE1BQU0sS0FDTjNkLEtBQUl3bUQsR0FBVUEsRUFBTyxHQUFHNzRDLGNBQWdCNjRDLEVBQU81NEMsTUFBTSxLQUNyRGpHLEtBQUssSUFDVixDQ3BIQSxNQUFNNHRCLGtCQUFPQSxPQUVFLE1BQU1zdEIsb0JBQW9CaDJDLElBQUFBLFVBWXZDeWQsb0JBQXNCLENBQ3BCNEssU0FBVUssa0JBQ1ZyNUIsTUFBTyxLQUNQdW5ELGNBQWMzK0MsRUFBQUEsRUFBQUEsUUFBTyxDQUFDLHNCQUd4QmltQixpQkFBQUEsR0FFS3p3QixLQUFLcWQsTUFBTThyQyxjQUNabnBELEtBQUtxZCxNQUFNdWQsU0FBUzU2QixLQUFLcWQsTUFBTThyQyxhQUFheGtELFFBRWhELENBRUFnc0IsZ0NBQUFBLENBQWlDQyxHQUMzQkEsRUFBVXU0QixjQUFpQnY0QixFQUFVdTRCLGFBQWF4K0MsT0FJbERpbUIsRUFBVXU0QixhQUFhMWtELFNBQVNtc0IsRUFBVWh2QixRQUM1Q2d2QixFQUFVZ0ssU0FBU2hLLEVBQVV1NEIsYUFBYXhrRCxTQUU5QyxDQUVBcXFELGdCQUFrQnJyRCxHQUFLM0QsS0FBS3FkLE1BQU11ZCxTQUFTajNCLEVBQUVrVixPQUFPalgsT0FFcEQrYyxNQUFBQSxHQUNFLElBQUksYUFBRXNxQyxFQUFZLFVBQUVDLEVBQVMsVUFBRTFpQyxFQUFTLGFBQUUyaUMsRUFBWSxVQUFFSCxFQUFTLE1BQUVwbkQsR0FBVTVCLEtBQUtxZCxNQUVsRixPQUFNOHJDLEdBQWlCQSxFQUFheCtDLEtBSWxDNEgsSUFBQUEsY0FBQSxPQUFLaVUsVUFBWSx5QkFBNEJBLEdBQWEsS0FDeERqVSxJQUFBQSxjQUFBLFVBQVEsZ0JBQWUwMkMsRUFBYyxhQUFZQyxFQUFXMWlDLFVBQVUsZUFBZWxYLEdBQUkwNUMsRUFBV3B1QixTQUFVNTZCLEtBQUtndkQsZ0JBQWlCcHRELE1BQU9BLEdBQVMsSUFDaEp1bkQsRUFBYXpqRCxLQUFNZ0UsR0FDWjZJLElBQUFBLGNBQUEsVUFBUXpSLElBQU00SSxFQUFNOUgsTUFBUThILEdBQVFBLEtBQzFDeUIsWUFQQSxJQVdYLEVDeERGLFNBQVN3bkQsVUFBVXgrQyxHQUNqQixPQUFPQSxFQUFLblIsUUFBT3BDLEtBQU9BLElBQUd5TSxLQUFLLEtBQUtTLE1BQ3pDLENBRU8sTUFBTThrRCxrQkFBa0JyZ0QsSUFBQUEsVUFDN0JvTSxNQUFBQSxHQUNFLElBQUksV0FBRWswQyxFQUFVLEtBQUVDLEtBQVNuc0MsR0FBUzNtQixLQUFLcWQsTUFHekMsR0FBR3cxQyxFQUNELE9BQU90Z0QsSUFBQUEsY0FBQSxVQUFhb1UsR0FFdEIsSUFBSW9zQyxFQUFpQixxQkFBdUJELEVBQU8sUUFBVSxJQUM3RCxPQUNFdmdELElBQUFBLGNBQUEsVUFBQXFVLEtBQUEsR0FBYUQsRUFBSSxDQUFFSCxVQUFXbXNDLE9BQU9oc0MsRUFBS0gsVUFBV3VzQyxLQUV6RCxFQVNGLE1BQU1DLEdBQVUsQ0FDZCxPQUFVLEdBQ1YsT0FBVSxVQUNWLFFBQVcsV0FDWCxNQUFTLE9BR0osTUFBTXBXLFlBQVlycUMsSUFBQUEsVUFFdkJvTSxNQUFBQSxHQUNFLE1BQU0sS0FDSnMwQyxFQUFJLGFBQ0pDLEVBQVksT0FJWkMsRUFBTSxPQUNOdlIsRUFBTSxRQUNOQyxFQUFPLE1BQ1B1UixLQUVHenNDLEdBQ0QzbUIsS0FBS3FkLE1BRVQsR0FBRzQxQyxJQUFTQyxFQUNWLE9BQU8zZ0QsSUFBQUEsY0FBQSxhQUVULElBQUk4Z0QsRUFBWSxHQUVoQixJQUFLLElBQUlDLEtBQVVOLEdBQVMsQ0FDMUIsSUFBS2h5RCxPQUFPTSxVQUFVQyxlQUFlQyxLQUFLd3hELEdBQVNNLEdBQ2pELFNBRUYsSUFBSUMsRUFBY1AsR0FBUU0sR0FDMUIsR0FBR0EsS0FBVXR6RCxLQUFLcWQsTUFBTyxDQUN2QixJQUFJM1QsRUFBTTFKLEtBQUtxZCxNQUFNaTJDLEdBRXJCLEdBQUc1cEQsRUFBTSxFQUFHLENBQ1YycEQsRUFBVXpxRCxLQUFLLE9BQVMycUQsR0FDeEIsUUFDRixDQUVBRixFQUFVenFELEtBQUssUUFBVTJxRCxHQUN6QkYsRUFBVXpxRCxLQUFLLE9BQVNjLEVBQU02cEQsRUFDaEMsQ0FDRixDQUVJTixHQUNGSSxFQUFVenFELEtBQUssVUFHakIsSUFBSW1vQixFQUFVNGhDLE9BQU9oc0MsRUFBS0gsYUFBYzZzQyxHQUV4QyxPQUNFOWdELElBQUFBLGNBQUEsVUFBQXFVLEtBQUEsR0FBYUQsRUFBSSxDQUFFSCxVQUFXdUssSUFFbEMsRUFjSyxNQUFNNHJCLFlBQVlwcUMsSUFBQUEsVUFFdkJvTSxNQUFBQSxHQUNFLE9BQU9wTSxJQUFBQSxjQUFBLE1BQUFxVSxLQUFBLEdBQVM1bUIsS0FBS3FkLE1BQUssQ0FBRW1KLFVBQVdtc0MsT0FBTzN5RCxLQUFLcWQsTUFBTW1KLFVBQVcsYUFDdEUsRUFRSyxNQUFNd1gsZUFBZXpyQixJQUFBQSxVQU0xQnlkLG9CQUFzQixDQUNwQnhKLFVBQVcsSUFHYjdILE1BQUFBLEdBQ0UsT0FBT3BNLElBQUFBLGNBQUEsU0FBQXFVLEtBQUEsR0FBWTVtQixLQUFLcWQsTUFBSyxDQUFFbUosVUFBV21zQyxPQUFPM3lELEtBQUtxZCxNQUFNbUosVUFBVyxZQUN6RSxFQUtLLE1BQU11WSxTQUFZMWhCLEdBQVU5SyxJQUFBQSxjQUFBLFdBQWM4SyxHQUVwQ2dmLE1BQVNoZixHQUFVOUssSUFBQUEsY0FBQSxRQUFXOEssR0FFcEMsTUFBTTRlLGVBQWUxcEIsSUFBQUEsVUFXMUJ5ZCxvQkFBc0IsQ0FDcEIrTixVQUFVLEVBQ1Y1QixpQkFBaUIsR0FHbkJ2c0IsV0FBQUEsQ0FBWXlOLEVBQU9pVCxHQUdqQixJQUFJMXVCLEVBRkoydUIsTUFBTWxULEVBQU9pVCxHQUtYMXVCLEVBREV5YixFQUFNemIsTUFDQXliLEVBQU16YixNQUVOeWIsRUFBTTBnQixTQUFXLENBQUMsSUFBTSxHQUdsQy85QixLQUFLK1AsTUFBUSxDQUFFbk8sTUFBT0EsRUFDeEIsQ0FFQWc1QixTQUFZajNCLElBQ1YsSUFFSS9CLEdBRkEsU0FBRWc1QixFQUFRLFNBQUVtRCxHQUFhLzlCLEtBQUtxZCxNQUM5Qm8zQixFQUFVLEdBQUduaEMsTUFBTTlSLEtBQUttQyxFQUFFa1YsT0FBTzQ3QixTQUtuQzd5QyxFQURFbThCLEVBQ00wVyxFQUFRenhDLFFBQU8sU0FBVXd3RCxHQUM3QixPQUFPQSxFQUFPQyxRQUNoQixJQUNDL3RELEtBQUksU0FBVTh0RCxHQUNiLE9BQU9BLEVBQU81eEQsS0FDaEIsSUFFTStCLEVBQUVrVixPQUFPalgsTUFHbkI1QixLQUFLNndCLFNBQVMsQ0FBQ2p2QixNQUFPQSxJQUVuQmc1QixHQUNEQSxFQUFTaDVCLEVBQ1gsRUFHRit1QixnQ0FBQUEsQ0FBaUNDLEdBRTVCQSxFQUFVaHZCLFFBQVU1QixLQUFLcWQsTUFBTXpiLE9BQ2hDNUIsS0FBSzZ3QixTQUFTLENBQUVqdkIsTUFBT2d2QixFQUFVaHZCLE9BRXJDLENBRUErYyxNQUFBQSxHQUNFLElBQUksY0FBRXVkLEVBQWEsU0FBRTZCLEVBQVEsZ0JBQUU1QixFQUFlLFNBQUVkLEdBQWFyN0IsS0FBS3FkLE1BQzlEemIsRUFBUTVCLEtBQUsrUCxNQUFNbk8sT0FBT3NELFVBQVlsRixLQUFLK1AsTUFBTW5PLE1BRXJELE9BQ0UyUSxJQUFBQSxjQUFBLFVBQVFpVSxVQUFXeG1CLEtBQUtxZCxNQUFNbUosVUFBV3VYLFNBQVdBLEVBQVduOEIsTUFBT0EsRUFBT2c1QixTQUFXNTZCLEtBQUs0NkIsU0FBV1MsU0FBVUEsR0FDOUdjLEVBQWtCNXBCLElBQUFBLGNBQUEsVUFBUTNRLE1BQU0sSUFBRyxNQUFjLEtBRWpEczZCLEVBQWN4MkIsS0FBSSxTQUFVb0YsRUFBTWhLLEdBQ2hDLE9BQU95UixJQUFBQSxjQUFBLFVBQVF6UixJQUFNQSxFQUFNYyxNQUFRaU0sT0FBTy9DLElBQVUrQyxPQUFPL0MsR0FDN0QsSUFJUixFQUdLLE1BQU13dUIsYUFBYS9tQixJQUFBQSxVQUV4Qm9NLE1BQUFBLEdBQ0UsT0FBT3BNLElBQUFBLGNBQUEsSUFBQXFVLEtBQUEsR0FBTzVtQixLQUFLcWQsTUFBSyxDQUFFK2xDLElBQUksc0JBQXNCNThCLFVBQVdtc0MsT0FBTzN5RCxLQUFLcWQsTUFBTW1KLFVBQVcsVUFDOUYsRUFRRixNQUFNa3RDLFNBQVdBLEVBQUUvakMsY0FBY3BkLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsYUFBWSxJQUFFbUosRUFBUyxLQU1oRSxNQUFNNkcsaUJBQWlCamtCLElBQUFBLFVBUTVCeWQsb0JBQXNCLENBQ3BCMEcsVUFBVSxFQUNWMjdCLFVBQVUsR0FHWnNCLGlCQUFBQSxHQUNFLE9BQUkzekQsS0FBS3FkLE1BQU1xWixTQUdibmtCLElBQUFBLGNBQUNtaEQsU0FBUSxLQUNOMXpELEtBQUtxZCxNQUFNc1MsVUFIUHBkLElBQUFBLGNBQUEsZ0JBTVgsQ0FFQW9NLE1BQUFBLEdBQ0UsSUFBSSxTQUFFMHpDLEVBQVEsU0FBRTM3QixFQUFRLFNBQUUvRyxHQUFhM3ZCLEtBQUtxZCxNQUU1QyxPQUFJZzFDLEdBR0oxaUMsRUFBVytHLEVBQVcvRyxFQUFXLEtBRS9CcGQsSUFBQUEsY0FBQ21oRCxTQUFRLEtBQ04vakMsSUFMSTN2QixLQUFLMnpELG1CQVFoQixFQ2xRYSxNQUFNQyxpQkFBaUJyaEQsSUFBQUEsVUFFcEMzQyxXQUFBQSxJQUFldUUsR0FDYm9jLFNBQVNwYyxHQUNUblUsS0FBSzZ6RCxZQUFjN3pELEtBQUs4ekQsYUFBYXJqRCxLQUFLelEsS0FDNUMsQ0FFQTh6RCxZQUFBQSxDQUFhQyxFQUFXL3ZDLEdBQ3RCaGtCLEtBQUtxZCxNQUFNMkYsY0FBY1UsS0FBS3F3QyxFQUFXL3ZDLEVBQzNDLENBRUFnd0MsTUFBQUEsQ0FBT2x6RCxFQUFLa2pCLEdBQ1YsSUFBSSxjQUFFaEIsR0FBa0JoakIsS0FBS3FkLE1BQzdCMkYsRUFBY1UsS0FBSzVpQixFQUFLa2pCLEVBQzFCLENBRUFyRixNQUFBQSxHQUNFLElBQUksY0FBRTVFLEVBQWEsZ0JBQUUrSSxFQUFlLGNBQUVFLEVBQWEsYUFBRXBFLEdBQWlCNWUsS0FBS3FkLE1BQ3ZFOEksRUFBWXBNLEVBQWM4TyxtQkFFOUIsTUFBTTJOLEVBQVc1WCxFQUFhLFlBRTlCLE9BQ0lyTSxJQUFBQSxjQUFBLFdBQ0VBLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsa0JBQWlCLFlBRzdCTCxFQUFVemdCLEtBQUssQ0FBQzJnQixFQUFRekMsS0FDdEIsSUFBSXlrQixFQUFhaGlCLEVBQU9sbEIsSUFBSSxjQUV4QjR5RCxFQUFZLENBQUMsZ0JBQWlCbndDLEdBQzlCdWdDLEVBQVVyaEMsRUFBZ0J3RixRQUFReXJDLEdBQVcsR0FHakQsT0FDRXhoRCxJQUFBQSxjQUFBLE9BQUt6UixJQUFLLFlBQVk4aUIsR0FHcEJyUixJQUFBQSxjQUFBLE1BQUl5YyxRQU5TaWxDLElBQUtqeEMsRUFBY1UsS0FBS3F3QyxHQUFZNVAsR0FNeEIzOUIsVUFBVSxxQkFBb0IsSUFBRTI5QixFQUFVLElBQU0sSUFBS3ZnQyxHQUU5RXJSLElBQUFBLGNBQUNpa0IsRUFBUSxDQUFDRSxTQUFVeXRCLEVBQVNrTyxVQUFRLEdBRWpDaHFCLEVBQVczaUMsS0FBS3FqQyxJQUNkLElBQUksS0FBRXByQixFQUFJLE9BQUU5USxFQUFNLEdBQUV5QyxHQUFPeTVCLEVBQUd6a0IsV0FDMUI0dkMsRUFBaUIsYUFDakJDLEVBQVc3a0QsRUFDWDBVLEVBQVFsQixFQUFnQndGLFFBQVEsQ0FBQzRyQyxFQUFnQkMsSUFDckQsT0FBTzVoRCxJQUFBQSxjQUFDdzNDLGNBQWEsQ0FBQ2pwRCxJQUFLd08sRUFDTHFPLEtBQU1BLEVBQ045USxPQUFRQSxFQUNSeUMsR0FBSXFPLEVBQU8sSUFBTTlRLEVBQ2pCbVgsTUFBT0EsRUFDUG13QyxTQUFVQSxFQUNWRCxlQUFnQkEsRUFDaEIxOEIsS0FBTSxjQUFjMjhCLElBQ3BCbmxDLFFBQVNoTSxFQUFjVSxNQUFRLElBQ3BEdlksV0FJSCxJQUVQQSxVQUdIZ2IsRUFBVXhiLEtBQU8sR0FBSzRILElBQUFBLGNBQUEsVUFBSSxvQ0FHcEMsRUFXSyxNQUFNdzNDLHNCQUFzQngzQyxJQUFBQSxVQUVqQzNDLFdBQUFBLENBQVl5TixHQUNWa1QsTUFBTWxULEdBQ05yZCxLQUFLZ3ZCLFFBQVVodkIsS0FBS28wRCxTQUFTM2pELEtBQUt6USxLQUNwQyxDQUVBbzBELFFBQUFBLEdBQ0UsSUFBSSxTQUFFRCxFQUFRLGVBQUVELEVBQWMsUUFBRWxsQyxFQUFPLE1BQUVoTCxHQUFVaGtCLEtBQUtxZCxNQUN4RDJSLEVBQVEsQ0FBQ2tsQyxFQUFnQkMsSUFBWW53QyxFQUN2QyxDQUVBckYsTUFBQUEsR0FDRSxJQUFJLEdBQUVyUCxFQUFFLE9BQUV6QyxFQUFNLE1BQUVtWCxFQUFLLEtBQUV3VCxHQUFTeDNCLEtBQUtxZCxNQUV2QyxPQUNFOUssSUFBQUEsY0FBQyttQixLQUFJLENBQUM5QixLQUFPQSxFQUFPeEksUUFBU2h2QixLQUFLZ3ZCLFFBQVN4SSxVQUFXLHVCQUFzQnhDLEVBQVEsUUFBVSxLQUM1RnpSLElBQUFBLGNBQUEsV0FDRUEsSUFBQUEsY0FBQSxTQUFPaVUsVUFBVyxjQUFjM1osS0FBV0EsRUFBT3dHLGVBQ2xEZCxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGNBQWVsWCxJQUl2QyxFQzNGYSxNQUFNOHhDLHlCQUF5Qjd1QyxJQUFBQSxVQUM1Q2tlLGlCQUFBQSxHQUdLendCLEtBQUtxZCxNQUFNeWtDLGVBQ1o5aEQsS0FBS3EwRCxTQUFTenlELE1BQVE1QixLQUFLcWQsTUFBTXlrQyxhQUVyQyxDQUVBbmpDLE1BQUFBLEdBSUUsTUFBTSxNQUFFL2MsRUFBSyxhQUFFZ3RELEVBQVksYUFBRTlNLEtBQWlCcnBCLEdBQWV6NEIsS0FBS3FkLE1BQ2xFLE9BQU85SyxJQUFBQSxjQUFBLFFBQUFxVSxLQUFBLEdBQVc2UixFQUFVLENBQUVwVyxJQUFLMEMsR0FBSy9rQixLQUFLcTBELFNBQVd0dkMsSUFDMUQsRUN0QkssTUFBTXV2QyxxQkFBcUIvaEQsSUFBQUEsVUFNaENvTSxNQUFBQSxHQUNFLE1BQU0sS0FBRWlxQixFQUFJLFNBQUVELEdBQWEzb0MsS0FBS3FkLE1BRWhDLE9BQ0U5SyxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLFlBQVcsZUFDWG9pQixFQUNaRCxFQUFTLEtBR2hCLEVBR0ssTUFBTTRyQixnQkFBZ0JoaUQsSUFBQUEsY0FNM0JvTSxNQUFBQSxHQUNFLE1BQU0sSUFBRXZGLEVBQUcsYUFBRXdGLEdBQWlCNWUsS0FBS3FkLE1BQzdCaWMsRUFBTzFhLEVBQWEsUUFFMUIsT0FDRXJNLElBQUFBLGNBQUMrbUIsRUFBSSxDQUFDemdCLE9BQU8sU0FBUzJlLEtBQU1JLFlBQVl4ZSxJQUN0QzdHLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsT0FBTSxJQUFFcE4sR0FHOUIsRUFHRixNQUFNbzdDLGFBQWFqaUQsSUFBQUEsVUFlakJvTSxNQUFBQSxHQUNFLE1BQU0sS0FDSjBLLEVBQUksSUFDSmpRLEVBQUcsS0FDSHd2QixFQUFJLFNBQ0pELEVBQVEsYUFDUi9wQixFQUFZLGFBQ1prcEIsRUFBWSxlQUNaenRCLEVBQ0FqQixJQUFLZ2UsR0FDSHAzQixLQUFLcWQsTUFDSDBxQixFQUFVMWUsRUFBS2xvQixJQUFJLFdBQ25CMDNCLEVBQWN4UCxFQUFLbG9CLElBQUksZUFDdkIrdEIsRUFBUTdGLEVBQUtsb0IsSUFBSSxTQUNqQnN6RCxFQUFvQmg5QixhQUN4QnBPLEVBQUtsb0IsSUFBSSxrQkFDVGkyQixFQUNBLENBQUUvYyxtQkFFRXE2QyxFQUFjcnJDLEVBQUtsb0IsSUFBSSxXQUN2Qnd6RCxFQUFjdHJDLEVBQUtsb0IsSUFBSSxXQUV2QiszQixFQUFrQnpCLGFBREdxUSxHQUFnQkEsRUFBYTNtQyxJQUFJLE9BQ0hpMkIsRUFBUyxDQUNoRS9jLG1CQUVJOGUsRUFDSjJPLEdBQWdCQSxFQUFhM21DLElBQUksZUFFN0JpNEIsRUFBV3hhLEVBQWEsWUFBWSxHQUNwQzBhLEVBQU8xYSxFQUFhLFFBQ3BCZzJDLEVBQWVoMkMsRUFBYSxnQkFDNUJpMkMsRUFBaUJqMkMsRUFBYSxrQkFDOUIyMUMsRUFBVTMxQyxFQUFhLFdBQ3ZCMDFDLEVBQWUxMUMsRUFBYSxnQkFDNUJrMkMsRUFBVWwyQyxFQUFhLFdBQ3ZCbTJDLEVBQVVuMkMsRUFBYSxXQUU3QixPQUNFck0sSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxRQUNialUsSUFBQUEsY0FBQSxVQUFRaVUsVUFBVSxRQUNoQmpVLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsU0FDWDBJLEVBQ0QzYyxJQUFBQSxjQUFBLFlBQ0d3MUIsR0FBV3gxQixJQUFBQSxjQUFDcWlELEVBQVksQ0FBQzdzQixRQUFTQSxJQUNuQ3gxQixJQUFBQSxjQUFDc2lELEVBQWMsQ0FBQ0csV0FBVyxVQUc5QnBzQixHQUFRRCxFQUNQcDJCLElBQUFBLGNBQUMraEQsRUFBWSxDQUFDMXJCLEtBQU1BLEVBQU1ELFNBQVVBLElBQ2xDLEtBQ0h2dkIsR0FBTzdHLElBQUFBLGNBQUNnaUQsRUFBTyxDQUFDMzFDLGFBQWNBLEVBQWN4RixJQUFLQSxLQUdwRDdHLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsZUFDYmpVLElBQUFBLGNBQUM2bUIsRUFBUSxDQUFDeGhCLE9BQVFpaEIsS0FHbkI0N0IsR0FDQ2xpRCxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLGFBQ2JqVSxJQUFBQSxjQUFDK21CLEVBQUksQ0FBQ3pnQixPQUFPLFNBQVMyZSxLQUFNSSxZQUFZNjhCLElBQW9CLHFCQU0vREMsR0FBYS9wRCxLQUFPLEdBQ25CNEgsSUFBQUEsY0FBQ3dpRCxFQUFPLENBQ05uMkMsYUFBY0EsRUFDZDVSLEtBQU0wbkQsRUFDTnI2QyxlQUFnQkEsRUFDaEJqQixJQUFLQSxJQUdSdTdDLEdBQWFocUQsS0FBTyxHQUNuQjRILElBQUFBLGNBQUN1aUQsRUFBTyxDQUNObDJDLGFBQWNBLEVBQ2RxMkMsUUFBU04sRUFDVHQ2QyxlQUFnQkEsRUFDaEJqQixJQUFLQSxJQUdSOGYsRUFDQzNtQixJQUFBQSxjQUFDK21CLEVBQUksQ0FDSDlTLFVBQVUsZ0JBQ1YzTixPQUFPLFNBQ1AyZSxLQUFNSSxZQUFZc0IsSUFFakJDLEdBQTJCRCxHQUU1QixLQUdWLEVBR0YsY0N2SmUsTUFBTWc4QixzQkFBc0IzaUQsSUFBQUEsVUFTekNvTSxNQUFBQSxHQUNFLE1BQU0sY0FBQzVFLEVBQWEsYUFBRTZFLEVBQVksY0FBRTlFLEdBQWlCOVosS0FBS3FkLE1BRXBEZ00sRUFBT3RQLEVBQWNzUCxPQUNyQmpRLEVBQU1XLEVBQWNYLE1BQ3BCdXZCLEVBQVc1dUIsRUFBYzR1QixXQUN6QkMsRUFBTzd1QixFQUFjNnVCLE9BQ3JCZCxFQUFlL3RCLEVBQWMrdEIsZUFDN0J6dEIsRUFBaUJQLEVBQWNPLGlCQUUvQm02QyxFQUFPNTFDLEVBQWEsUUFFMUIsT0FDRXJNLElBQUFBLGNBQUEsV0FDRzhXLEdBQVFBLEVBQUtwZ0IsUUFDWnNKLElBQUFBLGNBQUNpaUQsRUFBSSxDQUFDbnJDLEtBQU1BLEVBQU1qUSxJQUFLQSxFQUFLd3ZCLEtBQU1BLEVBQU1ELFNBQVVBLEVBQVViLGFBQWNBLEVBQ3BFbHBCLGFBQWNBLEVBQWN2RSxlQUFnQkEsSUFDaEQsS0FHVixFQ3pCRixNQUFNMDZDLGdCQUFnQnhpRCxJQUFBQSxVQVNwQm9NLE1BQUFBLEdBQ0UsTUFBTSxLQUFFM1IsRUFBSSxhQUFFNFIsRUFBWSxlQUFFdkUsRUFBZ0JqQixJQUFLZ2UsR0FBWXAzQixLQUFLcWQsTUFDNURuUSxFQUFPRixFQUFLN0wsSUFBSSxPQUFRLGlCQUN4QmlZLEVBQU1xZSxhQUFhenFCLEVBQUs3TCxJQUFJLE9BQVFpMkIsRUFBUyxDQUFFL2MsbUJBQy9DODZDLEVBQVFub0QsRUFBSzdMLElBQUksU0FFakJtNEIsRUFBTzFhLEVBQWEsUUFFMUIsT0FDRXJNLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsaUJBQ1pwTixHQUNDN0csSUFBQUEsY0FBQSxXQUNFQSxJQUFBQSxjQUFDK21CLEVBQUksQ0FBQzlCLEtBQU1JLFlBQVl4ZSxHQUFNUCxPQUFPLFVBQ2xDM0wsRUFBSyxlQUlYaW9ELEdBQ0M1aUQsSUFBQUEsY0FBQyttQixFQUFJLENBQUM5QixLQUFNSSxZQUFZLFVBQVV1OUIsTUFDL0IvN0MsRUFBTSxpQkFBaUJsTSxJQUFTLFdBQVdBLEtBS3RELEVBR0YsaUJDcENBLE1BQU00bkQsZ0JBQWdCdmlELElBQUFBLFVBU3BCb00sTUFBQUEsR0FDRSxNQUFNLFFBQUVzMkMsRUFBTyxhQUFFcjJDLEVBQVksZUFBRXZFLEVBQWdCakIsSUFBS2dlLEdBQVlwM0IsS0FBS3FkLE1BQy9EblEsRUFBTytuRCxFQUFROXpELElBQUksT0FBUSxXQUMzQmlZLEVBQU1xZSxhQUFhdzlCLEVBQVE5ekQsSUFBSSxPQUFRaTJCLEVBQVMsQ0FBRS9jLG1CQUVsRGlmLEVBQU8xYSxFQUFhLFFBRTFCLE9BQ0VyTSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLGlCQUNacE4sRUFDQzdHLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsc0JBQ2JqVSxJQUFBQSxjQUFDK21CLEVBQUksQ0FBQ3pnQixPQUFPLFNBQVMyZSxLQUFNSSxZQUFZeGUsSUFDckNsTSxJQUlMcUYsSUFBQUEsY0FBQSxZQUFPckYsR0FJZixFQUdGLGlCQ25DZSxNQUFNdXBCLG1CQUFtQmxrQixJQUFBQSxVQUN0Q29NLE1BQUFBLEdBQ0UsT0FBTyxJQUNULEVDRWEsTUFBTXVvQywyQkFBMkIzMEMsSUFBQUEsVUFDOUNvTSxNQUFBQSxHQUNFLElBQUksYUFBRUMsR0FBaUI1ZSxLQUFLcWQsTUFFNUIsTUFBTXdLLEVBQVdqSixFQUFhLFlBRTlCLE9BQ0VyTSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLG1DQUFtQzBJLE1BQU0scUJBQ3REM2MsSUFBQUEsY0FBQ2lkLEdBQUFBLGdCQUFlLENBQUM1TyxLQUFNNWdCLEtBQUtxZCxNQUFNaXFDLFlBQ2hDLzBDLElBQUFBLGNBQUNzVixFQUFRLE9BSWpCLEVDcEJhLE1BQU11dEMsZUFBZTdpRCxJQUFBQSxVQUNsQ29NLE1BQUFBLEdBQ0UsT0FDRXBNLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsVUFFbkIsRUNKYSxNQUFNNnVDLHdCQUF3QjlpRCxJQUFBQSxVQVMzQytpRCxlQUFrQjN4RCxJQUNoQixNQUFPa1YsUUFBUSxNQUFDalgsSUFBVStCLEVBQzFCM0QsS0FBS3FkLE1BQU0yRixjQUFjbUYsYUFBYXZtQixFQUFNLEVBRzlDK2MsTUFBQUEsR0FDRSxNQUFNLGNBQUM1RSxFQUFhLGdCQUFFK0ksRUFBZSxhQUFFbEUsR0FBZ0I1ZSxLQUFLcWQsTUFDdER1L0IsRUFBTWgrQixFQUFhLE9BRW5CMjJDLEVBQThDLFlBQWxDeDdDLEVBQWNzOUIsZ0JBQzFCbWUsRUFBNkMsV0FBbEN6N0MsRUFBY3M5QixnQkFDekJyMEMsRUFBUzhmLEVBQWdCMkYsZ0JBRXpCNEcsRUFBYSxDQUFDLDBCQUlwQixPQUhJbW1DLEdBQVVubUMsRUFBV3ptQixLQUFLLFVBQzFCMnNELEdBQVdsbUMsRUFBV3ptQixLQUFLLFdBRzdCMkosSUFBQUEsY0FBQSxZQUNjLElBQVh2UCxFQUFtQixLQUNsQnVQLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsb0JBQ2JqVSxJQUFBQSxjQUFDcXFDLEVBQUcsQ0FBQ3AyQixVQUFVLGlCQUFpQjJzQyxPQUFRLElBQ3RDNWdELElBQUFBLGNBQUEsU0FBT2lVLFVBQVc2SSxFQUFXaGlCLEtBQUssS0FBTW12QixZQUFZLGdCQUFnQmw2QixLQUFLLE9BQ2xFczRCLFNBQVU1NkIsS0FBS3MxRCxlQUFnQjF6RCxNQUF5QixpQkFBWG9CLEVBQXNCQSxFQUFTLEdBQzVFcTRCLFNBQVVrNkIsTUFNN0IsRUNwQ0YsTUFBTUUsR0FBT3BoRCxTQUFTL1MsVUFFUCxNQUFNc3VELGtCQUFrQmx6QixFQUFBQSxjQWVyQzFNLG1CQUFxQixDQUNuQnVZLFVBQVUvOUIsRUFBQUEsRUFBQUEsUUFBTyxDQUFDLHFCQUNsQm9FLE9BQU9wRSxFQUFBQSxFQUFBQSxRQUFPLENBQUMsR0FDZm93QixTQUFVNjZCLEdBQ1YzSCxpQkFBa0IySCxJQUdwQjdsRCxXQUFBQSxDQUFZeU4sRUFBT2lULEdBQ2pCQyxNQUFNbFQsRUFBT2lULEdBRWJ0d0IsS0FBSytQLE1BQVEsQ0FDWDJsRCxXQUFXLEVBQ1g5ekQsTUFBTyxHQUdYLENBRUE2dUIsaUJBQUFBLEdBQ0V6d0IsS0FBSzIxRCxhQUFhbjBELEtBQUt4QixLQUFNQSxLQUFLcWQsTUFDcEMsQ0FFQXNULGdDQUFBQSxDQUFpQ0MsR0FDL0I1d0IsS0FBSzIxRCxhQUFhbjBELEtBQUt4QixLQUFNNHdCLEVBQy9CLENBRUEra0MsYUFBZ0J0NEMsSUFDZCxJQUFJLE1BQUV6TyxFQUFLLFVBQUVzaUIsRUFBUyxjQUFFNCtCLEVBQWMsSUFBT3p5QyxFQUN6QzR0QixFQUFRLE9BQU9saEMsS0FBSytsRCxHQUNwQjhGLEVBQVMsUUFBUTdyRCxLQUFLK2xELEdBQ3RCamUsRUFBYTVHLEVBQVFyOEIsRUFBTXpOLElBQUksYUFBZXlOLEVBQU16TixJQUFJLFNBRTVELFFBQW9CYixJQUFmdXhDLEVBQTJCLENBQzlCLElBQUlub0MsR0FBT21vQyxHQUFjK2pCLEVBQVMsS0FBTy9qQixFQUN6Qzd4QyxLQUFLNndCLFNBQVMsQ0FBRWp2QixNQUFPOEgsSUFDdkIxSixLQUFLNDZCLFNBQVNseEIsRUFBSyxDQUFDdWhDLE1BQU9BLEVBQU95cUIsVUFBV3hrQyxHQUMvQyxNQUNNK1osRUFDRmpyQyxLQUFLNDZCLFNBQVM1NkIsS0FBS21rQyxPQUFPLE9BQVEsQ0FBQzhHLE1BQU9BLEVBQU95cUIsVUFBV3hrQyxJQUU1RGx4QixLQUFLNDZCLFNBQVM1NkIsS0FBS21rQyxTQUFVLENBQUN1eEIsVUFBV3hrQyxHQUU3QyxFQUdGaVQsT0FBVWhLLElBQ1IsSUFBSSxNQUFFdnJCLEVBQUssR0FBRWxJLEdBQU0xRyxLQUFLcWQsTUFDcEJoWixFQUFTcUMsRUFBR3UrQixZQUFZcjJCLEVBQU0xSixRQUVsQyxPQUFPd0IsRUFBR3UyQixnQkFBZ0I1NEIsRUFBUTgxQixFQUFLLENBQ3JDbEksa0JBQWtCLEdBQ2xCLEVBR0oySSxTQUFXQSxDQUFDaDVCLEdBQVM4ekQsWUFBV3pxQixZQUM5QmpyQyxLQUFLNndCLFNBQVMsQ0FBQ2p2QixRQUFPOHpELGNBQ3RCMTFELEtBQUs2MUQsVUFBVWowRCxFQUFPcXBDLEVBQU0sRUFHOUI0cUIsVUFBWUEsQ0FBQ25zRCxFQUFLdWhDLE1BQWFqckMsS0FBS3FkLE1BQU11ZCxVQUFZNjZCLElBQU0vckQsRUFBS3VoQyxFQUFNLEVBRXZFcE0sZUFBaUJsN0IsSUFDZixNQUFNLGNBQUNtc0QsR0FBaUI5dkQsS0FBS3FkLE1BQ3ZCNHRCLEVBQVEsT0FBT2xoQyxLQUFLK2xELEdBQ3BCaHhCLEVBQWFuN0IsRUFBRWtWLE9BQU9qWCxNQUM1QjVCLEtBQUs0NkIsU0FBU2tFLEVBQVksQ0FBQ21NLFFBQU95cUIsVUFBVzExRCxLQUFLK1AsTUFBTTJsRCxXQUFXLEVBR3JFSSxnQkFBa0JBLElBQU05MUQsS0FBSzZ3QixVQUFVOWdCLElBQUssQ0FBTTJsRCxXQUFZM2xELEVBQU0ybEQsY0FFcEUvMkMsTUFBQUEsR0FDRSxJQUFJLGlCQUNGbXZDLEVBQWdCLE1BQ2hCbC9DLEVBQUssVUFDTHNpQixFQUFTLGNBQ1RuWCxFQUFhLFdBQ2Jrd0IsRUFBVSxhQUNWcnJCLEdBQ0U1ZSxLQUFLcWQsTUFFVCxNQUFNMmdCLEVBQVNwZixFQUFhLFVBQ3RCbWdCLEVBQVduZ0IsRUFBYSxZQUN4QjBULEVBQWdCMVQsRUFBYSxpQkFBaUIsR0FDOUMycEMsRUFBYzNwQyxFQUFhLGVBRWpDLElBQ0lsYyxHQURZcVgsRUFBZ0JBLEVBQWNpd0IsNEJBQTRCQyxFQUFZcjdCLEdBQVNBLEdBQ3hFek4sSUFBSSxVQUFVd2IsRUFBQUEsRUFBQUEsU0FDakNtekMsRUFBZ0IvMUMsRUFBY3d4QixrQkFBa0J0QixHQUFZOW9DLElBQUksc0JBQ2hFb25DLEVBQVd2b0MsS0FBS3FkLE1BQU1rckIsVUFBWXZvQyxLQUFLcWQsTUFBTWtyQixTQUFTNTlCLEtBQU8zSyxLQUFLcWQsTUFBTWtyQixTQUFXcW5CLFVBQVVtRyxZQUFZeHRCLFVBRXpHLE1BQUUzbUMsRUFBSyxVQUFFOHpELEdBQWMxMUQsS0FBSytQLE1BQzVCMGYsRUFBVyxLQUNRKzVCLGtDQUFrQzVuRCxLQUV2RDZ0QixFQUFXLFFBR2IsTUFDTXU1QixFQUFZLEdBRERsQixrQkFBa0IsR0FBRzdkLEVBQVcsS0FBS0EsRUFBVywwQkFHakUsT0FDRTEzQixJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLGFBQWEsa0JBQWlCNVgsRUFBTXpOLElBQUksUUFBUyxnQkFBZXlOLEVBQU16TixJQUFJLE9BRXJGdTBELEdBQWF4a0MsRUFDVDNlLElBQUFBLGNBQUN3c0IsRUFBUSxDQUFDdlksVUFBWSxvQkFBdUI5akIsRUFBT3VHLFFBQVUsV0FBYSxJQUFLckgsTUFBT0EsRUFBT2c1QixTQUFXNTZCLEtBQUs2K0IsaUJBQzdHajlCLEdBQVMyUSxJQUFBQSxjQUFDK2YsRUFBYSxDQUFDOUwsVUFBVSxzQkFBc0JpSixTQUFXQSxHQUFZN3RCLEdBRXRGMlEsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxzQkFFVjBLLEVBQ1kzZSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLG1CQUNoQmpVLElBQUFBLGNBQUN5ckIsRUFBTSxDQUFDeFgsVUFBV2t2QyxFQUFZLHNDQUF3QyxvQ0FDOUQxbUMsUUFBU2h2QixLQUFLODFELGlCQUFtQkosRUFBWSxTQUFXLFNBSGhFLEtBT2ZuakQsSUFBQUEsY0FBQSxTQUFPc29CLFFBQVNtdUIsR0FDZHoyQyxJQUFBQSxjQUFBLFlBQU0sMEJBQ05BLElBQUFBLGNBQUNnMkMsRUFBVyxDQUNWM21ELE1BQVFrdUQsRUFDUjNHLGFBQWU1Z0IsRUFDZjNOLFNBQVVrekIsRUFDVnRuQyxVQUFVLDBCQUNWMGlDLFVBQVUseUJBQ1ZGLFVBQVdBLE1BUXZCLEVDckphLE1BQU1qRyxhQUFheHdDLElBQUFBLFVBTWhDb00sTUFBQUEsR0FDRSxNQUFNLFFBQUVzTCxFQUFPLGFBQUVyTCxHQUFpQjVlLEtBQUtxZCxNQUNqQzI0QyxFQUFPNXFDLGtDQUFrQ25CLEdBQ3pDaUQsRUFBb0J0TyxFQUFhLHFCQUFxQixHQUU1RCxPQUNFck0sSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxnQkFDYmpVLElBQUFBLGNBQUEsVUFBSSxRQUNKQSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLHFCQUNYalUsSUFBQUEsY0FBQ2lkLEdBQUFBLGdCQUFlLENBQUM1TyxLQUFNbzFDLEdBQU16akQsSUFBQUEsY0FBQSxpQkFFakNBLElBQUFBLGNBQUEsV0FDRUEsSUFBQUEsY0FBQzJhLEVBQWlCLENBQ2hCdUMsU0FBUyxPQUNUakosVUFBVSxrQkFDVmtKLGdCQUFpQkEsRUFBR0MsV0FBVUMscUJBQzVCcmQsSUFBQUEsY0FBQ3FkLEVBQWUsQ0FBQ3BKLFVBQVUsUUFBUW1KLElBR3BDcW1DLElBS1gsRUNoQ0ssTUFZUCxTQVp3QjM4QixFQUFHNXZCLFVBQVN1d0IsVUFBU0QsZUFFckN4bkIsSUFBQUEsY0FBQSxRQUFNaVUsVUFBWXVULEdBQ2hCeG5CLElBQUFBLGNBQUEsV0FBUTlJLEVBQVMsS0FBSW9FLE9BQU9tc0IsSUNIdkIsTUFBTXl6Qix1QkFBdUJsN0MsSUFBQUEsVUFXMUN5ZCxvQkFBc0IsQ0FDcEJ3MEIsY0FBZW53QyxTQUFTL1MsVUFDeEJvakQsY0FBZXJ3QyxTQUFTL1MsVUFDeEJtakQsYUFBY3B3QyxTQUFTL1MsVUFDdkI4aUQsU0FBUyxFQUNUZ0osbUJBQW1CLEVBQ25CanBELFFBQVEsR0FHVndhLE1BQUFBLEdBQ0UsTUFBTSxjQUFFNmxDLEVBQWEsY0FBRUUsRUFBYSxhQUFFRCxFQUFZLFFBQUVMLEVBQU8sa0JBQUVnSixFQUFpQixPQUFFanBELEdBQVduRSxLQUFLcWQsTUFFMUY0NEMsRUFBWTl4RCxHQUFVaXBELEVBQzVCLE9BQ0U3NkMsSUFBQUEsY0FBQSxPQUFLaVUsVUFBV3l2QyxFQUFZLG9CQUFzQixXQUU5QzdSLEVBQVU3eEMsSUFBQUEsY0FBQSxVQUFRaVUsVUFBVSwwQkFBMEJ3SSxRQUFVMDFCLEdBQWdCLFVBQ3RFbnlDLElBQUFBLGNBQUEsVUFBUWlVLFVBQVUsbUJBQW1Cd0ksUUFBVXcxQixHQUFnQixlQUl6RXlSLEdBQWExakQsSUFBQUEsY0FBQSxVQUFRaVUsVUFBVSx5QkFBeUJ3SSxRQUFVeTFCLEdBQWUsU0FJekYsRUNwQ2EsTUFBTXlSLDRCQUE0QjNqRCxJQUFBQSxjQVMvQ3lkLG9CQUFzQixDQUNwQm1tQyxTQUFVLEtBQ1Z4bUMsU0FBVSxLQUNWeW1DLFFBQVEsR0FHVnozQyxNQUFBQSxHQUNFLE1BQU0sT0FBRXkzQyxFQUFNLFdBQUU1RyxFQUFVLE9BQUVyckQsRUFBTSxTQUFFZ3lELEdBQWFuMkQsS0FBS3FkLE1BRXRELE9BQUcrNEMsRUFDTTdqRCxJQUFBQSxjQUFBLFdBQU92UyxLQUFLcWQsTUFBTXNTLFVBR3hCNi9CLEdBQWNyckQsRUFDUm9PLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsa0JBQ25CMnZDLEVBQ0Q1akQsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSw4REFDYmpVLElBQUFBLGNBQUEsV0FDRUEsSUFBQUEsY0FBQSxVQUFJLG9DQUNKQSxJQUFBQSxjQUFBLFNBQUdBLElBQUFBLGNBQUEsWUFBTSxXQUFjLFFBQUtBLElBQUFBLGNBQUEsWUFBTSxXQUFjLHlHQUNoREEsSUFBQUEsY0FBQSxTQUFHLGdDQUE2QkEsSUFBQUEsY0FBQSxZQUFNLFlBQVUsU0FBaUIseUJBQXNCQSxJQUFBQSxjQUFBLFlBQU0sa0JBQXFCLGtCQUFlQSxJQUFBQSxjQUFBLFlBQU0sa0JBQXFCLFNBTWhLaTlDLEdBQWVyckQsRUFhWm9PLElBQUFBLGNBQUEsV0FBT3ZTLEtBQUtxZCxNQUFNc1MsVUFaaEJwZCxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLGtCQUNuQjJ2QyxFQUNENWpELElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsNERBQ2JqVSxJQUFBQSxjQUFBLFdBQ0VBLElBQUFBLGNBQUEsVUFBSSxvQ0FDSkEsSUFBQUEsY0FBQSxTQUFHLG1FQUNIQSxJQUFBQSxjQUFBLFNBQUcsMEZBQXVGQSxJQUFBQSxjQUFBLFlBQU0sWUFBVSxTQUFpQix5QkFBc0JBLElBQUFBLGNBQUEsWUFBTSxrQkFBcUIsa0JBQWVBLElBQUFBLGNBQUEsWUFBTSxrQkFBcUIsUUFPaE8sRUNqREYsTUFRQSxjQVJxQnFpRCxFQUFHN3NCLGFBQ2Z4MUIsSUFBQUEsY0FBQSxhQUFPQSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLFdBQVUsSUFBR3VoQixFQUFTLE1DVXJELGdCQVZ1QjhzQixFQUFHRyxnQkFDeEJ6aUQsSUFBQUEsY0FBQSxTQUFPaVUsVUFBVSxpQkFDZmpVLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsV0FBVSxPQUFLd3VDLElDYWxDLFVBaEJ3QmxSLEVBQUdNLFVBQVN6bUMsT0FBTWlELFVBRWxDck8sSUFBQUEsY0FBQSxLQUFHaVUsVUFBVSxVQUNYd0ksUUFBU28xQixFQUFXemdELEdBQU1BLEVBQUV5cUIsaUJBQW1CLEtBQy9Db0osS0FBTTRzQixFQUFVLEtBQUt6bUMsSUFBUyxNQUM5QnBMLElBQUFBLGNBQUEsWUFBT3FPLElDdUNqQixXQTlDa0J5MUMsSUFDaEI5akQsSUFBQUEsY0FBQSxXQUNFQSxJQUFBQSxjQUFBLE9BQUtzVSxNQUFNLDZCQUE2Qnl2QyxXQUFXLCtCQUErQjl2QyxVQUFVLGNBQzFGalUsSUFBQUEsY0FBQSxZQUNFQSxJQUFBQSxjQUFBLFVBQVF1VSxRQUFRLFlBQVl4WCxHQUFHLFlBQzdCaUQsSUFBQUEsY0FBQSxRQUFNNVIsRUFBRSwrVEFHVjRSLElBQUFBLGNBQUEsVUFBUXVVLFFBQVEsWUFBWXhYLEdBQUcsVUFDN0JpRCxJQUFBQSxjQUFBLFFBQU01UixFQUFFLHFVQUdWNFIsSUFBQUEsY0FBQSxVQUFRdVUsUUFBUSxZQUFZeFgsR0FBRyxTQUM3QmlELElBQUFBLGNBQUEsUUFBTTVSLEVBQUUsa1ZBR1Y0UixJQUFBQSxjQUFBLFVBQVF1VSxRQUFRLFlBQVl4WCxHQUFHLGVBQzdCaUQsSUFBQUEsY0FBQSxRQUFNNVIsRUFBRSx3TEFHVjRSLElBQUFBLGNBQUEsVUFBUXVVLFFBQVEsWUFBWXhYLEdBQUcsb0JBQzdCaUQsSUFBQUEsY0FBQSxRQUFNNVIsRUFBRSxxTEFHVjRSLElBQUFBLGNBQUEsVUFBUXVVLFFBQVEsWUFBWXhYLEdBQUcsa0JBQzdCaUQsSUFBQUEsY0FBQSxRQUFNNVIsRUFBRSw2UkFHVjRSLElBQUFBLGNBQUEsVUFBUXVVLFFBQVEsWUFBWXhYLEdBQUcsV0FDN0JpRCxJQUFBQSxjQUFBLFFBQU01UixFQUFFLGlFQUdWNFIsSUFBQUEsY0FBQSxVQUFRdVUsUUFBUSxZQUFZeFgsR0FBRyxVQUM3QmlELElBQUFBLGNBQUEsUUFBTTVSLEVBQUUsb0RBR1Y0UixJQUFBQSxjQUFBLFVBQVF1VSxRQUFRLFlBQVl4WCxHQUFHLFFBQzdCaUQsSUFBQUEsY0FBQSxLQUFHbVMsVUFBVSxvQkFDWG5TLElBQUFBLGNBQUEsUUFBTTZVLEtBQUssVUFBVUMsU0FBUyxVQUFVMW1CLEVBQUUsd1ZDdkNoRCxHQUErQlYsUUFBUSxjQ0F2QyxHQUErQkEsUUFBUSxzQkNBdkMsR0FBK0JBLFFBQVEsYSxpQ0NPekNzMkQsS0FBQUEsU0FDRkEsS0FBQUEsUUFBa0IsMEJBQTBCLFNBQVUvdEMsR0FRcEQsT0FISUEsRUFBUWdQLE1BQ1ZoUCxFQUFRZ3VDLGFBQWEsTUFBTyx1QkFFdkJodUMsQ0FDVCxJQW9DRixTQWpDQSxTQUFTNFEsVUFBUyxPQUFFeGhCLEVBQU0sVUFBRTRPLEVBQVksR0FBRSxXQUFFclUsRUFBYUEsS0FBQSxDQUFTc2tELG1CQUFtQixNQUNuRixHQUFzQixpQkFBWDcrQyxFQUNULE9BQU8sS0FHVCxNQUFNOCtDLEVBQUssSUFBSUMsR0FBQUEsV0FBVyxDQUN4QkMsTUFBTSxFQUNOQyxhQUFhLEVBQ2JDLFFBQVEsRUFDUkMsV0FBWSxXQUNYQyxJQUFJQyxHQUFBQSxTQUVQUCxFQUFHUSxLQUFLQyxNQUFNQyxRQUFRLENBQUMsZUFBZ0IsZ0JBRXZDLE1BQU0sa0JBQUVYLEdBQXNCdGtELElBQ3hCeWtELEVBQU9GLEVBQUcvM0MsT0FBTy9HLEdBQ2pCeS9DLEVBQVlDLFVBQVVWLEVBQU0sQ0FBRUgsc0JBRXBDLE9BQUs3K0MsR0FBV2cvQyxHQUFTUyxFQUt2QjlrRCxJQUFBQSxjQUFBLE9BQUtpVSxVQUFXcU0sS0FBR3JNLEVBQVcsWUFBYSt3Qyx3QkFBeUIsQ0FBRUMsT0FBUUgsS0FKdkUsSUFNWCxFQVVPLFNBQVNDLFVBQVVsckQsR0FBSyxrQkFBRXFxRCxHQUFvQixHQUFVLENBQUMsR0FDOUQsTUFBTWdCLEVBQWtCaEIsRUFDbEJpQixFQUFjakIsRUFBb0IsR0FBSyxDQUFDLFFBQVMsU0FPdkQsT0FMSUEsSUFBc0JhLFVBQVVLLDRCQUNsQy96RCxRQUFRcVYsS0FBSyxnSEFDYnErQyxVQUFVSywyQkFBNEIsR0FHakNwQixLQUFBQSxTQUFtQm5xRCxFQUFLLENBQzdCd3JELFNBQVUsQ0FBQyxVQUNYQyxZQUFhLENBQUMsUUFBUyxRQUN2Qkosa0JBQ0FDLGVBRUosQ0FDQUosVUFBVUssMkJBQTRCLEVDakV2QixNQUFNRyxtQkFBbUJ2bEQsSUFBQUEsVUFVdENvTSxNQUFBQSxHQUNFLE1BQU0sYUFBRXN4QixFQUFZLGNBQUVsMkIsRUFBYSxhQUFFNkUsR0FBaUI1ZSxLQUFLcWQsTUFFckRnNUMsRUFBWXozQyxFQUFhLGFBQ3pCczJDLEVBQWdCdDJDLEVBQWEsaUJBQWlCLEdBQzlDczNDLEVBQXNCdDNDLEVBQWEsdUJBQ25DK2tDLEVBQWEva0MsRUFBYSxjQUFjLEdBQ3hDZ1gsRUFBU2hYLEVBQWEsVUFBVSxHQUNoQ201QyxFQUFXbjVDLEVBQWEsWUFBWSxHQUNwQys5QixFQUFNLzlCLEVBQWEsT0FDbkJnK0IsRUFBTWgrQixFQUFhLE9BQ25Ca3pDLEVBQVNsekMsRUFBYSxVQUFVLEdBRWhDbzVDLEVBQW1CcDVDLEVBQWEsb0JBQW9CLEdBQ3BEa2MsRUFBbUJsYyxFQUFhLG9CQUFvQixHQUNwRDQ4QixFQUF3QjU4QixFQUFhLHlCQUF5QixHQUM5RHkyQyxFQUFrQnoyQyxFQUFhLG1CQUFtQixHQUNsRDR3QyxFQUFhejFDLEVBQWN5MUMsYUFDM0JyckQsRUFBUzRWLEVBQWM1VixTQUN2Qjh6RCxFQUFVbCtDLEVBQWNrK0MsVUFFeEJDLEdBQWVuK0MsRUFBY290QixVQUU3QmtRLEVBQWdCdDlCLEVBQWNzOUIsZ0JBRXBDLElBQUk4Z0IsRUFBaUIsS0F1QnJCLEdBckJzQixZQUFsQjlnQixJQUNGOGdCLEVBQ0U1bEQsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxRQUNialUsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxxQkFDYmpVLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsZUFNRCxXQUFsQjZ3QixJQUNGOGdCLEVBQ0U1bEQsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxRQUNialUsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxxQkFDYmpVLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsU0FBUSxrQ0FDdEJqVSxJQUFBQSxjQUFDdS9DLEVBQU0sU0FNTyxpQkFBbEJ6YSxFQUFrQyxDQUNwQyxNQUFNK2dCLEVBQVVub0IsRUFBYXRxQixZQUN2QjB5QyxFQUFhRCxFQUFVQSxFQUFRajNELElBQUksV0FBYSxHQUN0RGczRCxFQUNFNWxELElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsc0JBQ2JqVSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLHFCQUNialUsSUFBQUEsY0FBQSxNQUFJaVUsVUFBVSxTQUFRLHdDQUN0QmpVLElBQUFBLGNBQUEsU0FBSThsRCxJQUlaLENBTUEsSUFKS0YsR0FBa0JELElBQ3JCQyxFQUFpQjVsRCxJQUFBQSxjQUFBLFVBQUksZ0NBR25CNGxELEVBQ0YsT0FDRTVsRCxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLGNBQ2JqVSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLHFCQUFxQjJ4QyxJQUsxQyxNQUFNRyxFQUFVditDLEVBQWN1K0MsVUFDeEI3OUIsRUFBVTFnQixFQUFjMGdCLFVBRXhCODlCLEVBQWFELEdBQVdBLEVBQVEzdEQsS0FDaEM2dEQsRUFBYS85QixHQUFXQSxFQUFROXZCLEtBQ2hDOHRELElBQTJCMStDLEVBQWMyQyxzQkFFL0MsT0FDRW5LLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsY0FDYmpVLElBQUFBLGNBQUM4akQsRUFBUyxNQUNWOWpELElBQUFBLGNBQUMyakQsRUFBbUIsQ0FDbEIxRyxXQUFZQSxFQUNacnJELE9BQVFBLEVBQ1JneUQsU0FBVTVqRCxJQUFBQSxjQUFDdS9DLEVBQU0sT0FFakJ2L0MsSUFBQUEsY0FBQ3UvQyxFQUFNLE1BQ1B2L0MsSUFBQUEsY0FBQ29xQyxFQUFHLENBQUNuMkIsVUFBVSx5QkFDYmpVLElBQUFBLGNBQUNxcUMsRUFBRyxDQUFDdVcsT0FBUSxJQUNYNWdELElBQUFBLGNBQUMyaUQsRUFBYSxRQUlqQnFELEdBQWNDLEdBQWNDLEVBQzNCbG1ELElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsb0JBQ2JqVSxJQUFBQSxjQUFDcXFDLEVBQUcsQ0FBQ3AyQixVQUFVLGtCQUFrQjJzQyxPQUFRLElBQ3RDb0YsR0FBY0MsRUFDYmptRCxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLDRCQUNaK3hDLEVBQWFobUQsSUFBQUEsY0FBQ3lsRCxFQUFnQixNQUFNLEtBQ3BDUSxFQUFham1ELElBQUFBLGNBQUN1b0IsRUFBZ0IsTUFBTSxNQUVyQyxLQUNIMjlCLEVBQXlCbG1ELElBQUFBLGNBQUNpcEMsRUFBcUIsTUFBTSxPQUd4RCxLQUVKanBDLElBQUFBLGNBQUM4aUQsRUFBZSxNQUVoQjlpRCxJQUFBQSxjQUFDb3FDLEVBQUcsS0FDRnBxQyxJQUFBQSxjQUFDcXFDLEVBQUcsQ0FBQ3VXLE9BQVEsR0FBSXRSLFFBQVMsSUFDeEJ0dkMsSUFBQUEsY0FBQ294QyxFQUFVLFFBSWRzVSxHQUNDMWxELElBQUFBLGNBQUNvcUMsRUFBRyxDQUFDbjJCLFVBQVUsc0JBQ2JqVSxJQUFBQSxjQUFDcXFDLEVBQUcsQ0FBQ3VXLE9BQVEsR0FBSXRSLFFBQVMsSUFDeEJ0dkMsSUFBQUEsY0FBQ3dsRCxFQUFRLFFBS2Z4bEQsSUFBQUEsY0FBQ29xQyxFQUFHLEtBQ0ZwcUMsSUFBQUEsY0FBQ3FxQyxFQUFHLENBQUN1VyxPQUFRLEdBQUl0UixRQUFTLElBQ3hCdHZDLElBQUFBLGNBQUNxakIsRUFBTSxTQU1uQixFQ3RGRixNQWtFQSxnQkFsRTZCOGlDLEtBQUEsQ0FDM0J2b0QsV0FBWSxDQUNWK2xDLElBQUcsR0FDSHlpQixtQkFBb0J2ZCxtQkFDcEJ3ZCxhQUFjdGQsYUFDZEUsc0JBQ0FxZCxzQkFBdUJuZCxzQkFDdkJLLE1BQU9WLE1BQ1BXLFNBQVVBLGdCQUNWOGMsVUFBV3JjLFVBQ1hzYyxPQUFROWMsT0FDUitjLFdBQVkxYyxXQUNaMmMsVUFBVzFjLFVBQ1h4NUMsTUFBT2cvQyxNQUNQbVgsYUFBY2hYLGFBQ2RkLGlCQUNBLzNCLEtBQU1tckMsR0FDTlUsY0FDQVgsUUFDQUQsYUFDQVMsUUFBTyxHQUNQRCxRQUFPLEdBQ1ByK0IsV0FDQXl3QixtQkFDQWlTLHFCQUFzQm5XLHFCQUN0QjNhLFdBQVlzYixXQUNaL2xDLFVBQVd5bUMsVUFDWG1CLGlCQUNBd0IsdUJBQ0FDLHFCQUNBeGQsVUFBVzBiLFVBQ1h0cUMsU0FBVTJ0QyxTQUNWc0Isa0JBQW1CQSxtQkFDbkJzUCxhQUFjelcsYUFDZHhYLFdBQVlpYSxXQUNaaVUsYUFBYzdMLGFBQ2QvdkMsUUFBUzRuQyxRQUNUMXNDLFFBQVNxcEMsZ0JBQ1R0L0MsT0FBUW92RCxPQUNSN3JCLFlBQWFzaUIsWUFDYitRLFNBQVUxRixTQUNWMkYsT0FBUW5FLE9BQ1JDLGdCQUNBekYsVUFDQW9HLEtBQU1qVCxLQUNOMXBCLFNBQVEsU0FDUm8wQixlQUNBcjBCLFNBQVEsR0FDUjArQixXQUNBNUIsb0JBQ0F0QixhQUFZLGNBQ1pyUCxhQUFZLHFCQUNabUMsZ0JBQWUsd0JBQ2Y2RyxhQUFZLG9CQUNaRyxzQkFDQWpxQyxhQUNBby9CLG1CQUNBZ1IsZUFBYyxnQkFDZC9RLFNBQVEsVUFDUnVTLFVBQVMsV0FDVHRaLFFBQ0FFLGVBQ0FtQiwrQkNwSEosZ0JBSjZCb2IsS0FBQSxDQUMzQnJwRCxXQUFZLElBQUtzcEQsS0NnRG5CLEtBMUJtQkMsSUFBTSxDQUN2QkMsY0FDQUMsS0FDQUMsS0FDQUMsS0FDQXBqQixZQUNBN0MsYUFDQWttQixJQUNBdnlDLE1BQ0F3eUMsZUFDQXQ2QixjQUNBa0gsc0JBQ0E4eEIsZ0JBQ0FjLGdCQUNBUyxlQUNBQyxLQUNBQyxrQkFDQUMsYUFDQUMsT0FDQUMsWUFDQUMseUJBQ0FwaEIsb0JBQ0FXLFNBQ0EwZ0IsZUN2Q0k5MEQsSUFBTTBJLEVBQUFBLEVBQUFBLE9BRVosU0FBU3FzRCxTQUFTOWxELEdBQ2hCLE1BQU8sQ0FBQ0ssRUFBSy9FLElBQ1gsSUFBSWtFLEtBQ0YsR0FBSWxFLEVBQU81SSxZQUFZMFMsY0FBYzVWLFNBQVUsQ0FDN0MsTUFBTWdZLEVBQVN4SCxLQUFZUixHQUMzQixNQUF5QixtQkFBWGdJLEVBQXdCQSxFQUFPbE0sR0FBVWtNLENBQ3pELENBQ0UsT0FBT25ILEtBQU9iLEVBQ2hCLENBRU4sQ0FFQSxNQUVNdW1ELEdBQW1CRCxTQUZKcnlCLEtBQVMsT0FRakJuVCxHQUFpQndsQyxVQUFTLENBQUMxcUQsRUFBTzRxRCxJQUFnQjFxRCxHQUN0REEsRUFBTzVJLFlBQVkwUyxjQUFjNmdELFdBQVdELEtBR3hDbCtDLEdBQWNnK0MsVUFBUyxJQUFPeHFELElBQ3pDLE1BQ000cUQsRUFETzVxRCxFQUFPNUksWUFBWTBTLGNBQWN5RixXQUN6QjVhLE1BQU0sQ0FBQyxhQUFjLFlBQzFDLE9BQU93SixFQUFBQSxJQUFJaEssTUFBTXkyRCxHQUFXQSxFQUFVbjFELEVBQUcsSUFHOUJxbEMsR0FBVTB2QixVQUFTLElBQU94cUQsR0FDeEJBLEVBQU81SSxZQUFZMFMsY0FBY3lGLFdBQ2xDczdDLE1BQU0sQ0FBQyxVQUFXLE1BR25CcCtDLEdBQXNCKzlDLFVBQ2pDbCtDLEVBQUFBLEdBQUFBLGdCQUNFcXJCLElBQ0Nyb0IsR0FBU0EsRUFBSzNhLE1BQU0sQ0FBQyxhQUFjLHFCQUF1QixRQUlsRHVqQyxxQ0FDWEEsQ0FBQ3JmLEVBQWE3WSxJQUNkLENBQUNGLEtBQVVvRSxJQUNMbEUsRUFBTzhKLGNBQWM1VixTQUNoQjhMLEVBQU82SixjQUFjcXVCLHdCQUd2QnJmLEtBQWUzVSxHQUdieTBCLEdBQU84eEIsR0FDUC94QixHQUFXK3hCLEdBQ1hueUIsR0FBV215QixHQUNYbHlCLEdBQVdreUIsR0FDWGpnQyxHQUFVaWdDLEdDakRoQixNQUFNbCtDLEdBYmIsU0FBU2krQyx3QkFBUzlsRCxHQUNoQixNQUFPLENBQUNLLEVBQUsvRSxJQUFXLElBQUlrRSxLQUMxQixHQUFHbEUsRUFBTzVJLFlBQVkwUyxjQUFjNVYsU0FBVSxDQUU1QyxJQUFJNDJELEVBQWtCOXFELEVBQU8xSSxXQUFXM0MsTUFBTSxDQUFDLE9BQVEsbUJBQ3JELGFBQWMsb0JBQ2hCLE9BQU8rUCxFQUFTMUUsRUFBUThxRCxLQUFvQjVtRCxFQUM5QyxDQUNFLE9BQU9hLEtBQU9iLEVBQ2hCLENBRUosQ0FFc0NzbUQsRUFBU2wrQyxFQUFBQSxHQUFBQSxpQkFmakN4TSxHQUFTQSxJQWlCbkIsRUFBRWdLLG1CQUFtQkEsRUFBYzJDLHdCQUNuQyxDQUFDek0sRUFBUXdNLEtBR1AsSUFBSWxTLEdBQU9vUyxFQUFBQSxFQUFBQSxRQUVYLE9BQUlGLEdBSUpBLEVBQVlYLFdBQVd0UyxTQUFTLEVBQUd3eEQsRUFBU242RCxNQUMxQyxNQUFNeUIsRUFBT3pCLEdBQVlNLElBQUksUUEyQjdCLEdBekJZLFdBQVRtQixHQUNEekIsRUFBV00sSUFBSSxTQUFTMmEsV0FBV3RTLFNBQVEsRUFBRXl4RCxFQUFTQyxNQUNwRCxJQUFJQyxHQUFnQjN3RCxFQUFBQSxFQUFBQSxRQUFPLENBQ3pCaU4sS0FBTXdqRCxFQUNOemEsaUJBQWtCMGEsRUFBUS81RCxJQUFJLG9CQUM5Qmk2RCxTQUFVRixFQUFRLzVELElBQUksWUFDdEJ1WCxPQUFRd2lELEVBQVEvNUQsSUFBSSxVQUNwQm1CLEtBQU16QixFQUFXTSxJQUFJLFFBQ3JCMDNCLFlBQWFoNEIsRUFBV00sSUFBSSxpQkFHOUJvSixFQUFPQSxFQUFLM0IsS0FBSyxJQUFJd0YsRUFBQUEsSUFBSSxDQUN2QixDQUFDNHNELEdBQVVHLEVBQWNuNEQsUUFBUXVCLFFBR2xCakUsSUFBTmlFLE1BRVIsSUFHSyxTQUFUakMsR0FBNEIsV0FBVEEsSUFDcEJpSSxFQUFPQSxFQUFLM0IsS0FBSyxJQUFJd0YsRUFBQUEsSUFBSSxDQUN2QixDQUFDNHNELEdBQVVuNkQsTUFHSCxrQkFBVHlCLEdBQTRCekIsRUFBV00sSUFBSSxxQkFBc0IsQ0FDbEUsSUFBSWs2RCxFQUFXeDZELEVBQVdNLElBQUksc0JBQ2pCazZELEVBQVNsNkQsSUFBSSwwQkFBNEIsQ0FBQyxxQkFBc0IsYUFDdEVxSSxTQUFTOHhELElBRWQsSUFBSUMsRUFBbUJGLEVBQVNsNkQsSUFBSSxxQkFDbENrNkQsRUFBU2w2RCxJQUFJLG9CQUFvQjZGLFFBQU8sQ0FBQ2lOLEVBQUt1bkQsSUFBUXZuRCxFQUFJeEosSUFBSSt3RCxFQUFLLEtBQUssSUFBSXB0RCxFQUFBQSxLQUUxRStzRCxHQUFnQjN3RCxFQUFBQSxFQUFBQSxRQUFPLENBQ3pCaU4sS0FBTTZqRCxFQUNOOWEsaUJBQWtCNmEsRUFBU2w2RCxJQUFJLDBCQUMvQmk2RCxTQUFVQyxFQUFTbDZELElBQUksa0JBQ3ZCdVgsT0FBUTZpRCxFQUNSajVELEtBQU0sU0FDTmt1QyxpQkFBa0IzdkMsRUFBV00sSUFBSSxzQkFHbkNvSixFQUFPQSxFQUFLM0IsS0FBSyxJQUFJd0YsRUFBQUEsSUFBSSxDQUN2QixDQUFDNHNELEdBQVVHLEVBQWNuNEQsUUFBUXVCLFFBR2xCakUsSUFBTmlFLE1BRVIsR0FFUCxLQUdLZ0csR0EzREVBLENBMkRFLEtDdEVWLFNBQVNreEQseUJBQXlCMXJDLEdBQ3ZDLE1BQU8sQ0FBQzVMLEVBQUtsVSxJQUFZb04sR0FDcUIsbUJBQWpDcE4sRUFBTzhKLGVBQWU1VixPQUMzQjhMLEVBQU84SixjQUFjNVYsU0FDaEJvTyxJQUFBQSxjQUFDd2QsRUFBU25KLEtBQUEsR0FBS3ZKLEVBQVdwTixFQUFNLENBQUVrVSxJQUFLQSxLQUV2QzVSLElBQUFBLGNBQUM0UixFQUFROUcsSUFHbEJ6WixRQUFRcVYsS0FBSyxtQ0FDTixLQUdiLENDbEJBLE1BQU12VCxJQUFNMEksRUFBQUEsRUFBQUEsT0FFQ29oRCxxQkFBYUEsSUFBT3YvQyxHREgxQixTQUFTdS9DLFdBQVd4cUMsR0FDekIsTUFBTTAyQyxFQUFpQjEyQyxFQUFPN2pCLElBQUksV0FFbEMsTUFBaUMsaUJBQW5CdTZELEdBQWtELFFBQW5CQSxDQUMvQyxDQ0NTQyxDQURNMXJELEVBQU81SSxZQUFZMFMsY0FBY3lGLFlBSW5DbzhDLGtCQUFVQSxJQUFPM3JELEdEaEJ2QixTQUFTMnJELFFBQVE1MkMsR0FDdEIsTUFBTWd3QyxFQUFhaHdDLEVBQU83akIsSUFBSSxXQUU5QixNQUN3QixpQkFBZjZ6RCxHQUEyQix5QkFBeUJqckQsS0FBS2lyRCxFQUVwRSxDQ1lTNkcsQ0FETTVyRCxFQUFPNUksWUFBWTBTLGNBQWN5RixZQUluQ3JiLGlCQUFTQSxJQUFPOEwsR0FDcEJBLEVBQU81SSxZQUFZMFMsY0FBYzZoRCxVQUcxQyxTQUFTbkIsbUJBQVM5bEQsR0FDaEIsTUFBTyxDQUFDNUUsS0FBVW9FLElBQ2ZsRSxJQUNDLEdBQUlBLEVBQU84SixjQUFjNVYsU0FBVSxDQUNqQyxNQUFNMjNELEVBQWdCbm5ELEVBQVM1RSxLQUFVb0UsR0FDekMsTUFBZ0MsbUJBQWxCMm5ELEVBQ1ZBLEVBQWM3ckQsR0FDZDZyRCxDQUNOLENBQ0UsT0FBTyxJQUNULENBRU4sQ0FFTyxNQUFNeEQsR0FBVW1DLG9CQUFTLElBQU94cUQsR0FDeEJBLEVBQU84SixjQUFjeUYsV0FDdEJyZSxJQUFJLFVBQVd1RSxNQUdoQmsxRCxXQUFhQSxDQUFDN3FELEVBQU80cUQsS0FDaEMsTUFBTW9CLEVBQWlCaHNELEVBQU1uTCxNQUMzQixDQUFDLG1CQUFvQixhQUFjLFVBQVcrMUQsR0FDOUMsTUFFSXFCLEVBQW1CanNELEVBQU1uTCxNQUM3QixDQUFDLE9BQVEsYUFBYyxVQUFXKzFELEdBQ2xDLE1BR0YsT0FBT29CLEdBQWtCQyxHQUFvQixJQUFJLEVBR3RDQyxHQUFzQnhCLG9CQUNqQyxDQUFDMXFELEdBQVNnK0MsWUFBVzE5QixjQUNsQnBnQixJQUNDLE1BQU1rNEIsRUFBd0JsNEIsRUFBTzhKLGNBQWNvdUIsd0JBRW5ELE9BQUsvNUIsRUFBQUEsSUFBSWhLLE1BQU0ycEQsR0FFUkEsRUFDSi9tRCxRQUFPLENBQUNrMUQsRUFBZXhiLEVBQVV5YixLQUNoQyxJQUFLL3RELEVBQUFBLElBQUloSyxNQUFNczhDLEdBQVcsT0FBT3diLEVBRWpDLE1BQU1FLEVBQXFCMWIsRUFBUzE1QyxRQUNsQyxDQUFDcTFELEVBQWFDLEVBQVVDLEtBQ3RCLElBQUtudUQsRUFBQUEsSUFBSWhLLE1BQU1rNEQsR0FBVyxPQUFPRCxFQUVqQyxNQUFNRyxFQUFxQkYsRUFDeEJ4Z0QsV0FDQTlZLFFBQU8sRUFBRWxDLEtBQVNxbkMsRUFBc0IxakMsU0FBUzNELEtBQ2pENEUsS0FBSSxFQUFFbUgsRUFBUStRLE1BQWUsQ0FDNUJBLFdBQVd4UCxFQUFBQSxFQUFBQSxLQUFJLENBQUV3UCxjQUNqQi9RLFNBQ0E4USxLQUFNNCtDLEVBQ05KLGVBQ0E5ckMsU0FBVUEsRUFBU2xhLE9BQU8sQ0FBQ2dtRCxFQUFjSSxFQUFZMXZELFFBR3pELE9BQU93dkQsRUFBWWxtRCxPQUFPcW1ELEVBQW1CLElBRS9DNy9DLEVBQUFBLEVBQUFBLFNBR0YsT0FBT3UvQyxFQUFjL2xELE9BQU9pbUQsRUFBbUIsSUFDOUN6L0MsRUFBQUEsRUFBQUEsU0FDRjgvQyxTQUFTQyxHQUFpQkEsRUFBYVAsZUFDdkN6MkQsS0FBSzJpQyxHQUFlQSxFQUFXbDlCLFlBQy9CbVosV0E5QitCLENBQUMsQ0E4QnRCLElDL0NuQixVQTNDa0JvcEMsRUFBR0ssWUFBVzE5QixXQUFVdFcsZ0JBQWU2RSxtQkFDdkQsTUFBTSs5QyxFQUFnQjVpRCxFQUFja2lELG9CQUFvQixDQUN0RGxPLFlBQ0ExOUIsYUFFSXVzQyxFQUFnQjU3RCxPQUFPK0YsS0FBSzQxRCxHQUU1QjlZLEVBQXFCamxDLEVBQWEsc0JBQXNCLEdBRTlELE9BQTZCLElBQXpCZytDLEVBQWN0MkQsT0FBcUJpTSxJQUFBQSxjQUFBLFlBQU0sZ0JBRzNDQSxJQUFBQSxjQUFBLFdBQ0dxcUQsRUFBY2wzRCxLQUFLeTJELEdBQ2xCNXBELElBQUFBLGNBQUEsT0FBS3pSLElBQUssR0FBR3E3RCxLQUNYNXBELElBQUFBLGNBQUEsVUFBSzRwRCxHQUVKUSxFQUFjUixHQUFjejJELEtBQUtnM0QsR0FDaENucUQsSUFBQUEsY0FBQ3N4QyxFQUFrQixDQUNqQi9pRCxJQUFLLEdBQUdxN0QsS0FBZ0JPLEVBQWEvK0MsUUFBUSsrQyxFQUFhN3ZELFNBQzFEazhCLEdBQUkyekIsRUFBYTkrQyxVQUNqQmdHLElBQUksWUFDSi9XLE9BQVE2dkQsRUFBYTd2RCxPQUNyQjhRLEtBQU0rK0MsRUFBYS8rQyxLQUNuQjBTLFNBQVVxc0MsRUFBYXJzQyxTQUN2QnkwQixlQUFlLFNBS25CLEVDOUJHK1gsMkJBQTZCQSxDQUFDNXZCLEVBQWE2dkIsRUFBV3hULEVBQW1CNWlELEtBQ3BGLE1BQU1xMkQsRUFBaUI5dkIsRUFBWXJvQyxNQUFNLENBQUMsVUFBV2s0RCxNQUFlcDFCLEVBQUFBLEVBQUFBLGNBQzlEcmpDLEVBQVMwNEQsRUFBZTU3RCxJQUFJLFVBQVV1bUMsRUFBQUEsRUFBQUEsZUFBY3hpQyxPQUVwRDgzRCxPQUFvRDE4RCxJQUFuQ3k4RCxFQUFlNTdELElBQUksWUFDcEM4N0QsRUFBZ0JGLEVBQWU1N0QsSUFBSSxXQUNuQ2lwRCxFQUFtQjRTLEVBQ3JCRCxFQUFlbjRELE1BQU0sQ0FDckIsV0FDQTBrRCxFQUNBLFVBRUEyVCxFQVVKLE9BQU92dUQsVUFSY2hJLEVBQUd1MkIsZ0JBQ3RCNTRCLEVBQ0F5NEQsRUFDQSxDQUNFN3FDLGtCQUFrQixHQUVwQm00QixHQUU0QixFQW9UaEMsYUEvU29CdUQsRUFDbEJ0UCxvQkFDQXBSLGNBQ0FtRixtQkFDQUMsOEJBQ0E0YixvQkFDQXJ2QyxlQUNBek0sYUFDQTRILGdCQUNBclQsS0FDQXUvQixjQUNBL1UsWUFDQWIsV0FDQXVLLFdBQ0F5ekIsdUJBQ0EvRSxvQkFDQTRFLDBCQUNBM1Asb0NBRUEsTUFBTTJlLFdBQWN2NUQsSUFDbEJpM0IsRUFBU2ozQixFQUFFa1YsT0FBT2dqQixNQUFNLEdBQUcsRUFFdkJzaEMscUJBQXdCcjhELElBQzVCLElBQUkyekMsRUFBVSxDQUNaM3pDLE1BQ0E2dEQsb0JBQW9CLEVBQ3BCQyxjQUFjLEdBT2hCLE1BSnlCLGFBREZ2YyxFQUE0Qmx4QyxJQUFJTCxFQUFLLGNBRTFEMnpDLEVBQVFrYSxvQkFBcUIsR0FHeEJsYSxDQUFPLEVBR1ZyYixFQUFXeGEsRUFBYSxZQUFZLEdBQ3BDb1QsRUFBZXBULEVBQWEsZ0JBQzVCdytDLEVBQW9CeCtDLEVBQWEscUJBQ2pDMFQsRUFBZ0IxVCxFQUFhLGlCQUFpQixHQUM5Q3cvQixFQUE4QngvQixFQUFhLCtCQUMzQ20rQixFQUFVbitCLEVBQWEsV0FDdkI4dkMsRUFBd0I5dkMsRUFBYSwwQkFFckMscUJBQUUrd0MsR0FBeUJ4OUMsSUFFM0JrckQsRUFBeUJwd0IsR0FBYTlyQyxJQUFJLGdCQUFrQixLQUM1RGtzQyxFQUFxQkosR0FBYTlyQyxJQUFJLFlBQWMsSUFBSXVtQyxFQUFBQSxXQUM5RHpCLEVBQWNBLEdBQWVvSCxFQUFtQjNvQyxTQUFTQyxTQUFXLEdBRXBFLE1BQU1vNEQsRUFBaUIxdkIsRUFBbUJsc0MsSUFBSThrQyxLQUFnQnlCLEVBQUFBLEVBQUFBLGNBQ3hENDFCLEVBQXFCUCxFQUFlNTdELElBQUksVUFBVXVtQyxFQUFBQSxFQUFBQSxlQUNsRDYxQixFQUF5QlIsRUFBZTU3RCxJQUFJLFdBQVksTUFDeERxOEQsRUFBcUJELEdBQXdCNzNELEtBQUksQ0FBQzRjLEVBQVd4aEIsS0FDakUsTUFBTTRJLEVBQU00WSxHQUFXbmhCLElBQUksUUFBUyxNQVNwQyxPQVJHdUksSUFDRDRZLEVBQVlBLEVBQVU3WCxJQUFJLFFBQVNveUQsMkJBQ2pDNXZCLEVBQ0FoSCxFQUNBbmxDLEVBQ0E0RixHQUNDZ0QsSUFFRTRZLENBQVMsSUFNbEIyckMsRUFBb0J0eEMsRUFBQUEsS0FBSzNULE9BQU9pbEQsR0FBcUJBLEdBQW9CdHhDLEVBQUFBLEVBQUFBLFFBT3pFLEdBTDZCalcsRUFBRzgwQixxQkFDOUJ1aEMsR0FBZ0I1N0QsSUFBSSxVQUNwQjhrQyxHQUtBLENBQ0EsTUFBTTVKLEVBQVF6ZCxFQUFhLFNBRTNCLE9BQUlzUyxFQU1HM2UsSUFBQUEsY0FBQzhwQixFQUFLLENBQUMvNUIsS0FBTSxPQUFRczRCLFNBQVVzaUMsYUFMN0IzcUQsSUFBQUEsY0FBQSxTQUFHLHdDQUM2QkEsSUFBQUEsY0FBQSxZQUFPMHpCLEdBQW1CLGdCQUtyRSxDQUdBLElBQUs4MkIsRUFBZXB5RCxLQUNsQixPQUFPLEtBS1QsR0FGd0JqRSxFQUFHdzRCLGNBQWM2OUIsRUFBZTU3RCxJQUFJLFVBQVcsWUFLbkQsc0NBQWhCOGtDLEdBQ3NDLElBQXRDQSxFQUFZdDRCLFFBQVEsZ0JBRXRCMnZELEVBQW1CbjhELElBQUksY0FBY3VtQyxFQUFBQSxFQUFBQSxlQUFjLzhCLEtBQU8sRUFDMUQsQ0FDQSxNQUFNd3dCLEVBQWlCdmMsRUFBYSxrQkFDOUIydkMsRUFBZTN2QyxFQUFhLGdCQUM1QjYrQyxFQUFpQkgsRUFBbUJuOEQsSUFBSSxjQUFjdW1DLEVBQUFBLEVBQUFBLGVBRzVELE9BRkEwSyxFQUFtQmhrQyxFQUFBQSxJQUFJaEssTUFBTWd1QyxHQUFvQkEsR0FBbUIxSyxFQUFBQSxFQUFBQSxjQUU3RG4xQixJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLG1CQUNsQjYyQyxHQUNBOXFELElBQUFBLGNBQUM2bUIsRUFBUSxDQUFDeGhCLE9BQVF5bEQsSUFFcEI5cUQsSUFBQUEsY0FBQSxhQUNFQSxJQUFBQSxjQUFBLGFBRUluRSxFQUFBQSxJQUFJaEssTUFBTXE1RCxJQUFtQkEsRUFBZTNoRCxXQUFXcFcsS0FBSSxFQUFFNUUsRUFBS3VELE1BQ2hFLEdBQUlBLEVBQU9sRCxJQUFJLFlBQWEsT0FFNUIsTUFBTXc0QixFQUFRdDFCLEVBQU9sRCxJQUFJLFVBQVVBLElBQUksSUFBSStELE9BQ3JDdzBCLEVBQVFyMUIsRUFBT2xELElBQUksVUFBVUEsSUFBSSxJQUFJK0QsT0FDM0NiLEdBQVNtRyxFQUFBQSxFQUFBQSxRQUFPOUQsRUFBR283QixnQkFBZ0J6OUIsRUFBT2EsT0FBUXkwQixHQUFTRCxHQUFTLENBQUMsSUFFckUsSUFBSTYyQixFQUFZWixFQUF1QnRoRCxvQkFBb0JoSyxHQUFVLEtBQ3JFLE1BQU15d0IsRUFBV3dvQyxFQUFtQm44RCxJQUFJLFlBQVl3YixFQUFBQSxFQUFBQSxTQUFRbFksU0FBUzNELEdBQy9EdzZCLEVBQWE1MEIsRUFBRzYwQixvQkFBb0JsM0IsR0FDcENxNUQsRUFBa0JoM0QsRUFBRysyQix5QkFBeUJwNUIsR0FDOUNrNUIsRUFBa0I3MkIsRUFBRzYwQixvQkFBb0JsM0IsR0FBUWxELElBQUksVUFDckQ4RyxFQUFTNUQsRUFBT2xELElBQUksVUFDcEIwM0IsRUFBY3gwQixFQUFPbEQsSUFBSSxlQUN6Qnc4RCxFQUFldnJCLEVBQWlCeHRDLE1BQU0sQ0FBQzlELEVBQUssVUFDNUM4OEQsRUFBZ0J4ckIsRUFBaUJ4dEMsTUFBTSxDQUFDOUQsRUFBSyxZQUFjbXRELEVBQzNENFAsRUFBV3hyQixFQUE0Qmx4QyxJQUFJTCxLQUFRLEVBRXpELElBQUlnaEQsRUFBZXA3QyxFQUFHdTJCLGdCQUFnQjU0QixHQUFRLEVBQU8sQ0FDbkQ0dEIsa0JBQWtCLEtBR0MsSUFBakI2dkIsSUFDRkEsRUFBZSxTQUdJLElBQWpCQSxJQUNGQSxFQUFlLEtBR1csaUJBQWpCQSxHQUE0QyxXQUFmeG1CLElBQ3ZDd21CLEVBQWVwekMsVUFBVW96QyxJQUdFLGlCQUFqQkEsR0FBNEMsVUFBZnhtQixJQUN0Q3dtQixFQUFlejRDLEtBQUtDLE1BQU13NEMsSUFHNUIsTUFBTXRtQixFQUF1QjkwQixFQUFHODBCLHFCQUFxQm4zQixHQUUvQ29zRCxFQUFpQmwrQyxJQUFBQSxjQUFDNG9CLEVBQWMsQ0FDcEN6MEIsR0FBSUEsRUFDSjAwQixzQkFBdUJJLEVBQ3ZCbjNCLE9BQVFBLEVBQ1J3MEIsWUFBYS8zQixFQUNiOGQsYUFBY0EsRUFDZGhkLFdBQXdCdEIsSUFBakJxOUQsRUFBNkI3YixFQUFlNmIsRUFDbkQ3b0MsU0FBVUEsRUFDVnB5QixPQUFRazdELEVBQ1JoakMsU0FBV2g1QixJQUNUZzVCLEVBQVNoNUIsRUFBTyxDQUFDZCxHQUFLLElBSTFCLE9BQU95UixJQUFBQSxjQUFBLE1BQUl6UixJQUFLQSxFQUFLMGxCLFVBQVUsYUFBYSxxQkFBb0IxbEIsR0FDaEV5UixJQUFBQSxjQUFBLE1BQUlpVSxVQUFVLHVCQUNaalUsSUFBQUEsY0FBQSxPQUFLaVUsVUFBV3NPLEVBQVcsMkJBQTZCLG1CQUNwRGgwQixFQUNDZzBCLEVBQWtCdmlCLElBQUFBLGNBQUEsWUFBTSxNQUFiLE1BRWhCQSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLG1CQUNYazNDLEVBQ0F6MUQsR0FBVXNLLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsZUFBYyxLQUFHdmUsRUFBTyxLQUNsRDBuRCxHQUF5QlksRUFBVTVsRCxLQUFjNGxELEVBQVV6MEMsV0FBV3BXLEtBQUksRUFBRTVFLEVBQUt5RCxLQUFPZ08sSUFBQUEsY0FBQ2c4QyxFQUFZLENBQUN6dEQsSUFBSyxHQUFHQSxLQUFPeUQsSUFBS29qRCxLQUFNN21ELEVBQUs4bUQsS0FBTXJqRCxNQUFqRyxNQUU5Q2dPLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUseUJBQ1huaUIsRUFBT2xELElBQUksY0FBZ0IsYUFBYyxPQUcvQ29SLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsOEJBQ1pqVSxJQUFBQSxjQUFDNm1CLEVBQVEsQ0FBQ3hoQixPQUFTaWhCLElBQ2xCM0gsRUFBWTNlLElBQUFBLGNBQUEsV0FDTSxXQUFmK29CLEdBQStDLFdBQXBCaUMsRUFDM0JockIsSUFBQUEsY0FBQ3lmLEVBQVksQ0FDWHBULGFBQWNBLEVBQ2R5UixTQUFVQSxFQUFTem5CLEtBQUssVUFDeEJ1SixXQUFZQSxFQUNaK2UsVUFBV0EsRUFDWG5YLGNBQWVBLEVBQ2YxVixPQUFRQSxFQUNSOHNCLFFBQVNzL0IsSUFFUEEsRUFFTDM3QixFQUFXLEtBQ1Z2aUIsSUFBQUEsY0FBQ204QyxFQUFxQixDQUNwQjl6QixTQUFXaDVCLEdBQVV5c0QsRUFBcUJ2dEQsRUFBS2MsR0FDL0NrdEQsV0FBWStPLEVBQ1pwUCxrQkFBbUIwTyxxQkFBcUJyOEQsR0FDeENzN0IsV0FBWTUyQixNQUFNQyxRQUFRazRELEdBQXdDLElBQXhCQSxFQUFhcjNELFFBQWdCa0osYUFBYW11RCxNQUdqRixNQUVOLE1BTWpCLENBRUEsTUFBTUcsRUFBb0JqQiwyQkFDeEI1dkIsRUFDQWhILEVBQ0FxakIsRUFDQTVpRCxHQUVGLElBQUkrb0IsRUFBVyxLQUNRKzVCLGtDQUFrQ3NVLEtBRXZEcnVDLEVBQVcsUUFFYixNQUFNMEIsRUFBVUQsRUFBWTNlLElBQUFBLGNBQUM2cUQsRUFBaUIsQ0FDMUN4N0QsTUFBT3d3QyxFQUNQMXZDLE9BQVF1ckQsRUFDUlcsYUFBY2tQLEVBQ2RsakMsU0FBVUEsRUFDVmhjLGFBQWNBLElBQ1hyTSxJQUFBQSxjQUFDK2YsRUFBYSxDQUFDOUwsVUFBVSxzQkFBc0JpSixTQUFVQSxHQUMzRC9nQixVQUFVMGpDLElBQXFCMHJCLEdBR3BDLE9BQU92ckQsSUFBQUEsY0FBQSxXQUNIOHFELEdBQ0E5cUQsSUFBQUEsY0FBQzZtQixFQUFRLENBQUN4aEIsT0FBUXlsRCxJQUdsQkcsRUFDRWpyRCxJQUFBQSxjQUFDNnJDLEVBQTJCLENBQ3hCQyxrQkFBbUJBLEVBQ25CbkIsU0FBVXNnQixFQUNWamUsV0FBWStKLEVBQ1oxSyxzQkFBdUJ4TSxFQUN2QitLLFNBekxvQnI4QyxJQUM1Qm90RCxFQUF3QnB0RCxFQUFJLEVBeUxwQjA5QyxZQUFhNWpCLEVBQ2I4MUIsdUJBQXVCLEVBQ3ZCOXhDLGFBQWNBLEVBQ2QyL0IsOEJBQStCQSxJQUVqQyxLQUVOaHNDLElBQUFBLGNBQUN5ZixFQUFZLENBQ1hwVCxhQUFlQSxFQUNmek0sV0FBYUEsRUFDYjRILGNBQWdCQSxFQUNoQmtaLFlBQWEsRUFDYi9CLFVBQVdBLEVBQ1g3c0IsT0FBUTA0RCxFQUFlNTdELElBQUksVUFDM0JrdkIsU0FBVUEsRUFBU3puQixLQUFLLFVBQVdxOUIsR0FDbkM5VSxRQUFTQSxFQUNUYyxrQkFBa0IsSUFHbEJ1ckMsRUFDRWpyRCxJQUFBQSxjQUFDd3FDLEVBQU8sQ0FDTjVyQixRQUFTcXNDLEVBQW1CcjhELElBQUltb0QsR0FDaEMxcUMsYUFBY0EsRUFDZHpNLFdBQVlBLElBRVosS0FFRixFQ3JUUixNQUFNNDNDLHFDQUFzQmg2QixFQUFBQSxVQUMxQnBSLE1BQUFBLEdBQ0UsTUFBTSxLQUFFeXNDLEVBQUksS0FBRWwrQyxFQUFJLGFBQUUwUixHQUFpQjVlLEtBQUtxZCxNQUVwQytiLEVBQVd4YSxFQUFhLFlBQVksR0FFMUMsSUFBSW0vQyxFQUFXM1MsRUFBS2pxRCxJQUFJLGdCQUFrQmlxRCxFQUFLanFELElBQUksZ0JBQy9DZ3FDLEVBQWFpZ0IsRUFBS2pxRCxJQUFJLGVBQWlCaXFELEVBQUtqcUQsSUFBSSxjQUFjK0QsT0FDOUQyekIsRUFBY3V5QixFQUFLanFELElBQUksZUFFM0IsT0FBT29SLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsa0JBQ3BCalUsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxlQUNialUsSUFBQUEsY0FBQSxTQUFHQSxJQUFBQSxjQUFBLFlBQU9yRixJQUNSMnJCLEVBQWN0bUIsSUFBQUEsY0FBQzZtQixFQUFRLENBQUN4aEIsT0FBUWloQixJQUEyQixNQUUvRHRtQixJQUFBQSxjQUFBLFdBQUssY0FDU3dyRCxFQUFTLElBQUN4ckQsSUFBQUEsY0FBQSxXQUFNQSxJQUFBQSxjQUFBLFdBQU0sY0FRMUMsU0FBU3lyRCxVQUFVeDlELEVBQUd5OUQsR0FDcEIsR0FBcUIsaUJBQVhBLEVBQXVCLE1BQU8sR0FDeEMsT0FBT0EsRUFDSjU2QyxNQUFNLE1BQ04zZCxLQUFJLENBQUMrZixFQUFNMWEsSUFBTUEsRUFBSSxFQUFJdkYsTUFBTWhGLEVBQUksR0FBRzZNLEtBQUssS0FBT29ZLEVBQU9BLElBQ3pEcFksS0FBSyxLQUNWLENBYm9CMndELENBQVUsRUFBRzMwRCxLQUFLcUYsVUFBVXk4QixFQUFZLEtBQU0sS0FBTyxLQUFLNTRCLElBQUFBLGNBQUEsWUFHNUUsRUFrQkYsc0NDOEdBLG1CQWhKZ0IyckQsRUFDZDVGLFVBQ0F6WSxnQkFDQWdHLG9CQUNBQyx5QkFDQUMsb0JBQ0FFLDhCQUVBLE1BRU1rWSxHQURKN0YsRUFBUS9xRCxNQUFNKzJCLEdBQU1BLEVBQUVuakMsSUFBSSxTQUFXMCtDLE1BQWtCblksRUFBQUEsRUFBQUEsZUFFL0J2bUMsSUFBSSxlQUFnQnVtQyxFQUFBQSxFQUFBQSxjQUN4QzAyQixFQUEwRCxJQUFuQ0QsRUFBMEJ4ekQsTUFFdkQwakIsRUFBQUEsRUFBQUEsWUFBVSxLQUNKd3hCLEdBR0pnRyxFQUFrQnlTLEVBQVEzekQsU0FBU3hELElBQUksT0FBTyxHQUM3QyxLQUVIa3RCLEVBQUFBLEVBQUFBLFlBQVUsS0FFUixNQUFNZ3dDLEVBQTBCL0YsRUFBUS9xRCxNQUNyQ3lrQyxHQUFXQSxFQUFPN3dDLElBQUksU0FBVzArQyxJQUVwQyxJQUFLd2UsRUFFSCxZQURBeFksRUFBa0J5UyxFQUFRM3pELFFBQVF4RCxJQUFJLFNBS3RDazlELEVBQXdCbDlELElBQUksZUFBZ0J1bUMsRUFBQUEsRUFBQUEsZUFDcEJoaUMsS0FBSSxDQUFDZ0UsRUFBSzVJLEtBQ2xDZ2xELEVBQXVCLENBQ3JCOVQsT0FBUTZOLEVBQ1IvK0MsTUFDQTRJLElBQUtBLEVBQUl2SSxJQUFJLFlBQWMsSUFDM0IsR0FDRixHQUNELENBQUMwK0MsRUFBZXlZLElBRW5CLE1BQU1nRyxHQUFxQnpzQyxFQUFBQSxFQUFBQSxjQUN4Qmx1QixJQUNDa2lELEVBQWtCbGlELEVBQUVrVixPQUFPalgsTUFBTSxHQUVuQyxDQUFDaWtELElBR0cwWSxHQUE2QjFzQyxFQUFBQSxFQUFBQSxjQUNoQ2x1QixJQUNDLE1BQU02NkQsRUFBZTc2RCxFQUFFa1YsT0FBT3NkLGFBQWEsaUJBQ3JDc29DLEVBQW1COTZELEVBQUVrVixPQUFPalgsTUFFbENra0QsRUFBdUIsQ0FDckI5VCxPQUFRNk4sRUFDUi8rQyxJQUFLMDlELEVBQ0w5MEQsSUFBSyswRCxHQUNMLEdBRUosQ0FBQzNZLEVBQXdCakcsSUFHM0IsT0FDRXR0QyxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLFdBQ2JqVSxJQUFBQSxjQUFBLFNBQU9zb0IsUUFBUSxXQUNidG9CLElBQUFBLGNBQUEsVUFDRXFvQixTQUFVMGpDLEVBQ1YxOEQsTUFBT2krQyxFQUNQdndDLEdBQUcsV0FFRmdwRCxFQUNFeDdDLFdBQ0FwWCxLQUFLc3NDLEdBQ0p6L0IsSUFBQUEsY0FBQSxVQUFRM1EsTUFBT293QyxFQUFPN3dDLElBQUksT0FBUUwsSUFBS2t4QyxFQUFPN3dDLElBQUksUUFDL0M2d0MsRUFBTzd3QyxJQUFJLE9BQ1g2d0MsRUFBTzd3QyxJQUFJLGdCQUFrQixNQUFNNndDLEVBQU83d0MsSUFBSSxvQkFHbERnSyxZQUdOaXpELEdBQ0M3ckQsSUFBQUEsY0FBQSxXQUNFQSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFXLGdCQUFnQixnQkFFOUJqVSxJQUFBQSxjQUFBLFlBQU8wekMsRUFBd0JwRyxLQUVqQ3R0QyxJQUFBQSxjQUFBLFVBQUksb0JBQ0pBLElBQUFBLGNBQUEsYUFDRUEsSUFBQUEsY0FBQSxhQUNHNHJELEVBQTBCcmlELFdBQVdwVyxLQUFJLEVBQUV3SCxFQUFNeEQsS0FFOUM2SSxJQUFBQSxjQUFBLE1BQUl6UixJQUFLb00sR0FDUHFGLElBQUFBLGNBQUEsVUFBS3JGLEdBQ0xxRixJQUFBQSxjQUFBLFVBQ0c3SSxFQUFJdkksSUFBSSxRQUNQb1IsSUFBQUEsY0FBQSxVQUNFLGdCQUFlckYsRUFDZjB0QixTQUFVMmpDLEdBRVQ3MEQsRUFBSXZJLElBQUksUUFBUXVFLEtBQUtxMkIsR0FFbEJ4cEIsSUFBQUEsY0FBQSxVQUNFa2hELFNBQ0UxM0IsSUFDQWdxQixFQUFrQmxHLEVBQWUzeUMsR0FFbkNwTSxJQUFLaTdCLEVBQ0xuNkIsTUFBT202QixHQUVOQSxNQU1UeHBCLElBQUFBLGNBQUEsU0FDRWpRLEtBQU0sT0FDTlYsTUFBT21rRCxFQUFrQmxHLEVBQWUzeUMsSUFBUyxHQUNqRDB0QixTQUFVMmpDLEVBQ1YsZ0JBQWVyeEQsV0FXL0IsRUN6SUssTUFBTThxRCx5QkFBeUJ6bEQsSUFBQUEsVUFTNUNvTSxNQUFBQSxHQUNFLE1BQU0sY0FBQzVFLEVBQWEsY0FBRUQsRUFBYSxZQUFFOHFDLEVBQVcsYUFBRWhtQyxHQUFnQjVlLEtBQUtxZCxNQUVqRWk3QyxFQUFVditDLEVBQWN1K0MsVUFFeEI0RixFQUFVdC9DLEVBQWEsV0FFN0IsT0FBTzA1QyxHQUFXQSxFQUFRM3RELEtBQ3hCNEgsSUFBQUEsY0FBQSxXQUNFQSxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGlCQUFnQixXQUNoQ2pVLElBQUFBLGNBQUMyckQsRUFBTyxDQUNONUYsUUFBU0EsRUFDVHpZLGNBQWUvbEMsRUFBY08saUJBQzdCd3JDLGtCQUFtQmpCLEVBQVlpQixrQkFDL0JDLHVCQUF3QmxCLEVBQVlrQix1QkFDcENDLGtCQUFtQmpzQyxFQUFja3NDLG9CQUNqQ0Msd0JBQXlCbnNDLEVBQWNNLHdCQUVoQyxJQUNmLEVDMUJGLE1BQU1xN0MsR0FBT3BoRCxTQUFTL1MsVUFFUCxNQUFNODdELDBCQUEwQjFnQyxFQUFBQSxjQVU3QzFNLG9CQUFzQixDQUNwQjRLLFNBQVU2NkIsR0FDVnBYLG1CQUFtQixHQUdyQnp1QyxXQUFBQSxDQUFZeU4sRUFBT2lULEdBQ2pCQyxNQUFNbFQsRUFBT2lULEdBRWJ0d0IsS0FBSytQLE1BQVEsQ0FDWG5PLE1BQU84TSxVQUFVMk8sRUFBTXpiLFFBQVV5YixFQUFNdXhDLGNBTXpDdnhDLEVBQU11ZCxTQUFTdmQsRUFBTXpiLE1BQ3ZCLENBRUE4OEQsa0JBQXFCOXRDLElBQ25CLE1BQU0sU0FBRWdLLEVBQVEsYUFBRWcwQixHQUFrQmgrQixHQUF3QjV3QixLQUFLcWQsTUFNakUsT0FKQXJkLEtBQUs2d0IsU0FBUyxDQUNaanZCLE1BQU9ndEQsSUFHRmgwQixFQUFTZzBCLEVBQWEsRUFHL0JoMEIsU0FBWWg1QixJQUNWNUIsS0FBS3FkLE1BQU11ZCxTQUFTbHNCLFVBQVU5TSxHQUFPLEVBR3ZDKzhELFlBQWNoN0QsSUFDWixNQUFNbTdCLEVBQWFuN0IsRUFBRWtWLE9BQU9qWCxNQUU1QjVCLEtBQUs2d0IsU0FBUyxDQUNaanZCLE1BQU9rOUIsSUFDTixJQUFNOStCLEtBQUs0NkIsU0FBU2tFLElBQVksRUFHckNuTyxnQ0FBQUEsQ0FBaUNDLEdBRTdCNXdCLEtBQUtxZCxNQUFNemIsUUFBVWd2QixFQUFVaHZCLE9BQy9CZ3ZCLEVBQVVodkIsUUFBVTVCLEtBQUsrUCxNQUFNbk8sT0FHL0I1QixLQUFLNndCLFNBQVMsQ0FDWmp2QixNQUFPOE0sVUFBVWtpQixFQUFVaHZCLFVBTTNCZ3ZCLEVBQVVodkIsT0FBU2d2QixFQUFVZytCLGNBQWtCNXVELEtBQUsrUCxNQUFNbk8sT0FHNUQ1QixLQUFLMCtELGtCQUFrQjl0QyxFQUUzQixDQUVBalMsTUFBQUEsR0FDRSxJQUFJLGFBQ0ZDLEVBQVksT0FDWmxjLEdBQ0UxQyxLQUFLcWQsT0FFTCxNQUNGemIsR0FDRTVCLEtBQUsrUCxNQUVMNnVELEVBQVlsOEQsRUFBT2lJLEtBQU8sRUFDOUIsTUFBTW8wQixFQUFXbmdCLEVBQWEsWUFFOUIsT0FDRXJNLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsY0FDYmpVLElBQUFBLGNBQUN3c0IsRUFBUSxDQUNQdlksVUFBV3FNLEtBQUcsbUJBQW9CLENBQUVtTSxRQUFTNC9CLElBQzdDMXZDLE1BQU94c0IsRUFBT2lJLEtBQU9qSSxFQUFPMkssS0FBSyxNQUFRLEdBQ3pDekwsTUFBT0EsRUFDUGc1QixTQUFXNTZCLEtBQUsyK0QsY0FLeEIsRUNsR2EsTUFBTUUsaUJBQWlCdHNELElBQUFBLFVBV3BDM0MsV0FBQUEsQ0FBWXlOLEVBQU9pVCxHQUNqQkMsTUFBTWxULEVBQU9pVCxHQUNiLElBQUksS0FBRXBqQixFQUFJLE9BQUU3SSxHQUFXckUsS0FBS3FkLE1BQ3hCemIsRUFBUTVCLEtBQUswOEMsV0FFakIxOEMsS0FBSytQLE1BQVEsQ0FDWDdDLEtBQU1BLEVBQ043SSxPQUFRQSxFQUNSekMsTUFBT0EsRUFFWCxDQUVBODZDLFFBQUFBLEdBQ0UsSUFBSSxLQUFFeHZDLEVBQUksV0FBRXVPLEdBQWV6YixLQUFLcWQsTUFFaEMsT0FBTzVCLEdBQWNBLEVBQVc3VyxNQUFNLENBQUNzSSxFQUFNLFNBQy9DLENBRUEwdEIsU0FBV2ozQixJQUNULElBQUksU0FBRWkzQixHQUFhNTZCLEtBQUtxZCxPQUNwQixNQUFFemIsRUFBSyxLQUFFc0wsR0FBU3ZKLEVBQUVrVixPQUVwQm1rQixFQUFXaDhCLE9BQU9tRyxPQUFPLENBQUMsRUFBR25ILEtBQUsrUCxNQUFNbk8sT0FFekNzTCxFQUNEOHZCLEVBQVM5dkIsR0FBUXRMLEVBRWpCbzdCLEVBQVdwN0IsRUFHYjVCLEtBQUs2d0IsU0FBUyxDQUFFanZCLE1BQU9vN0IsSUFBWSxJQUFNcEMsRUFBUzU2QixLQUFLK1AsUUFBTyxFQUloRTRPLE1BQUFBLEdBQ0UsSUFBSSxPQUFFdGEsRUFBTSxhQUFFdWEsRUFBWSxhQUFFcXhCLEVBQVksS0FBRS9pQyxFQUFJLGNBQUU4TSxHQUFrQmhhLEtBQUtxZCxNQUN2RSxNQUFNZ2YsRUFBUXpkLEVBQWEsU0FDckIrOUIsRUFBTS85QixFQUFhLE9BQ25CZytCLEVBQU1oK0IsRUFBYSxPQUNuQjY5QixFQUFZNzlCLEVBQWEsYUFDekJ3YSxFQUFXeGEsRUFBYSxZQUFZLEdBQ3BDNlgsRUFBYTdYLEVBQWEsY0FBYyxHQUV4Q3VaLEdBQVU5ekIsRUFBT2xELElBQUksV0FBYSxJQUFJMEssY0FDdEM4UixFQUFPM0QsRUFBYzRDLGVBQWUxUCxHQUMxQyxJQUFJdEwsRUFBUTVCLEtBQUswOEMsV0FDYmg2QyxFQUFTdXRDLEVBQWF2cUIsWUFBWTFpQixRQUFRWCxHQUFPQSxFQUFJbEIsSUFBSSxZQUFjK0wsSUFFM0UsR0FBYyxVQUFYaXJCLEVBQW9CLENBQ3JCLElBQUlqZ0IsRUFBV3RXLEVBQVFBLEVBQU1ULElBQUksWUFBYyxLQUMvQyxPQUFPb1IsSUFBQUEsY0FBQSxXQUNMQSxJQUFBQSxjQUFBLFVBQ0VBLElBQUFBLGNBQUEsWUFBT3JGLEdBQVksa0JBRWpCcUYsSUFBQUEsY0FBQ2trQixFQUFVLENBQUM5WSxLQUFNQSxLQUVwQnpGLEdBQVkzRixJQUFBQSxjQUFBLFVBQUksY0FDbEJBLElBQUFBLGNBQUNvcUMsRUFBRyxLQUNGcHFDLElBQUFBLGNBQUM2bUIsRUFBUSxDQUFDeGhCLE9BQVN2VCxFQUFPbEQsSUFBSSxrQkFFaENvUixJQUFBQSxjQUFDb3FDLEVBQUcsS0FDRnBxQyxJQUFBQSxjQUFBLFNBQU9zb0IsUUFBUSx1QkFBc0IsYUFFbkMzaUIsRUFBVzNGLElBQUFBLGNBQUEsWUFBTSxJQUFHMkYsRUFBVSxLQUMxQjNGLElBQUFBLGNBQUNxcUMsRUFBRyxLQUNGcnFDLElBQUFBLGNBQUM4cEIsRUFBSyxDQUNKL3NCLEdBQUcsc0JBQ0hoTixLQUFLLE9BQ0x3eUIsU0FBUyxXQUNUNW5CLEtBQUssV0FDTCxhQUFXLHNCQUNYMHRCLFNBQVc1NkIsS0FBSzQ2QixTQUNoQmlpQixXQUFTLE1BS3JCdHFDLElBQUFBLGNBQUNvcUMsRUFBRyxLQUNGcHFDLElBQUFBLGNBQUEsU0FBT3NvQixRQUFRLHVCQUFzQixhQUVqQzNpQixFQUFXM0YsSUFBQUEsY0FBQSxZQUFNLFlBQ05BLElBQUFBLGNBQUNxcUMsRUFBRyxLQUNEcnFDLElBQUFBLGNBQUM4cEIsRUFBSyxDQUNKL3NCLEdBQUcsc0JBQ0h3dEMsYUFBYSxlQUNiNXZDLEtBQUssV0FDTDVLLEtBQUssV0FDTCxhQUFXLHNCQUNYczRCLFNBQVc1NkIsS0FBSzQ2QixhQU1wQ2w0QixFQUFPb2EsV0FBV3BYLEtBQUssQ0FBQzdCLEVBQU8vQyxJQUN0QnlSLElBQUFBLGNBQUNrcUMsRUFBUyxDQUFDNTRDLE1BQVFBLEVBQ1IvQyxJQUFNQSxNQUloQyxDQUVBLE1BQWMsV0FBWHEzQixFQUVDNWxCLElBQUFBLGNBQUEsV0FDRUEsSUFBQUEsY0FBQSxVQUNFQSxJQUFBQSxjQUFBLFlBQU9yRixHQUFZLG1CQUVqQnFGLElBQUFBLGNBQUNra0IsRUFBVSxDQUFDOVksS0FBTUEsS0FFbEIvYixHQUFTMlEsSUFBQUEsY0FBQSxVQUFJLGNBQ2ZBLElBQUFBLGNBQUNvcUMsRUFBRyxLQUNGcHFDLElBQUFBLGNBQUM2bUIsRUFBUSxDQUFDeGhCLE9BQVN2VCxFQUFPbEQsSUFBSSxrQkFFaENvUixJQUFBQSxjQUFDb3FDLEVBQUcsS0FDRnBxQyxJQUFBQSxjQUFBLFNBQU9zb0IsUUFBUSxxQkFBb0IsVUFFakNqNUIsRUFBUTJRLElBQUFBLGNBQUEsWUFBTSxZQUNkQSxJQUFBQSxjQUFDcXFDLEVBQUcsS0FDRnJxQyxJQUFBQSxjQUFDOHBCLEVBQUssQ0FDSi9zQixHQUFHLG9CQUNIaE4sS0FBSyxPQUNMLGFBQVcsb0JBQ1hzNEIsU0FBVzU2QixLQUFLNDZCLFNBQ2hCaWlCLFdBQVMsTUFNbkJuNkMsRUFBT29hLFdBQVdwWCxLQUFLLENBQUM3QixFQUFPL0MsSUFDdEJ5UixJQUFBQSxjQUFDa3FDLEVBQVMsQ0FBQzU0QyxNQUFRQSxFQUN4Qi9DLElBQU1BLE9BTVh5UixJQUFBQSxjQUFBLFdBQ0xBLElBQUFBLGNBQUEsVUFBSUEsSUFBQUEsY0FBQSxTQUFJckYsR0FBUyw0Q0FBMEMsSUFBSWlyQixNQUVqRSxFQ3ZKYSxNQUFNbXRCLHlCQUF5Qi95QyxJQUFBQSxVQWlCNUNzekMsa0JBQXFCN1QsSUFDbkIsTUFBTSxLQUFFcjBCLEVBQUksT0FBRTlRLEdBQVc3TSxLQUFLcWQsTUFJOUIsT0FEQXJkLEtBQUs4K0QsY0FDRTkrRCxLQUFLcWQsTUFBTXdvQyxrQkFBa0I3VCxFQUFRLEdBQUdyMEIsS0FBUTlRLElBQVMsRUFHbEVpNUMsdUJBQTBCMWtELElBQ3hCLE1BQU0sS0FBRXVjLEVBQUksT0FBRTlRLEdBQVc3TSxLQUFLcWQsTUFJOUIsT0FEQXJkLEtBQUs4K0QsY0FDRTkrRCxLQUFLcWQsTUFBTXlvQyx1QkFBdUIsSUFDcEMxa0QsRUFDSG1TLFVBQVcsR0FBR29LLEtBQVE5USxLQUN0QixFQUdKKzRDLGtCQUFvQkEsS0FDbEIsTUFBTSxLQUFFam9DLEVBQUksT0FBRTlRLEdBQVc3TSxLQUFLcWQsTUFDOUIsT0FBT3JkLEtBQUtxZCxNQUFNdW9DLGtCQUFrQixHQUFHam9DLEtBQVE5USxJQUFTLEVBRzFEazVDLGtCQUFvQkEsQ0FBQy9ULEVBQVFseEMsS0FDM0IsTUFBTSxLQUFFNmMsRUFBSSxPQUFFOVEsR0FBVzdNLEtBQUtxZCxNQUM5QixPQUFPcmQsS0FBS3FkLE1BQU0wb0Msa0JBQWtCLENBQ2xDeHlDLFVBQVcsR0FBR29LLEtBQVE5USxJQUN0Qm1sQyxVQUNDbHhDLEVBQUksRUFHVG1sRCx3QkFBMkJqVSxJQUN6QixNQUFNLEtBQUVyMEIsRUFBSSxPQUFFOVEsR0FBVzdNLEtBQUtxZCxNQUM5QixPQUFPcmQsS0FBS3FkLE1BQU00b0Msd0JBQXdCLENBQ3hDalUsU0FDQXorQixVQUFXLEdBQUdvSyxLQUFROVEsS0FDdEIsRUFHSjhSLE1BQUFBLEdBQ0UsTUFBTSxpQkFFSittQyxFQUFnQixZQUNoQkMsRUFBVyxhQUdYL21DLEdBQ0U1ZSxLQUFLcWQsTUFFVCxJQUFJcW9DLElBQXFCQyxFQUN2QixPQUFPLEtBR1QsTUFBTXVZLEVBQVV0L0MsRUFBYSxXQUV2Qm1nRCxFQUFtQnJaLEdBQW9CQyxFQUN2Q3FaLEVBQWF0WixFQUFtQixZQUFjLE9BRXBELE9BQU9uekMsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxxQ0FDcEJqVSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLDBCQUNialUsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxjQUNialUsSUFBQUEsY0FBQSxNQUFJaVUsVUFBVSxpQkFBZ0IsYUFHbENqVSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLCtCQUNialUsSUFBQUEsY0FBQSxNQUFJaVUsVUFBVSxXQUFVLFNBQ2Z3NEMsRUFBVyxzREFFcEJ6c0QsSUFBQUEsY0FBQzJyRCxFQUFPLENBQ041RixRQUFTeUcsRUFDVGxmLGNBQWU3L0MsS0FBSzRsRCxvQkFDcEJDLGtCQUFtQjdsRCxLQUFLNmxELGtCQUN4QkMsdUJBQXdCOWxELEtBQUs4bEQsdUJBQzdCQyxrQkFBbUIvbEQsS0FBSytsRCxrQkFDeEJFLHdCQUF5QmptRCxLQUFLaW1ELDJCQUl0QyxFQzNGRixVQUNFeUgsVUFBUyxVQUNUbVIsU0FDQWxSLFlBQVcsYUFDWHVRLFFBQU8sbUJBQ1BsRyxpQkFDQW9GLGtCQUNBOVgsaUJBQ0EyWixjQUFlbFYsSUNWWG1WLEdBQVMsSUFBSXZJLEdBQUFBLFdBQVcsY0FDOUJ1SSxHQUFPQyxNQUFNaEksTUFBTWlJLE9BQU8sQ0FBQyxVQUMzQkYsR0FBT3owRCxJQUFJLENBQUVzc0QsV0FBWSxXQUVsQixNQWlDUCxHQUFlMEUsMEJBakNTcmlDLEVBQUd4aEIsU0FBUTRPLFlBQVksR0FBSXJVLGFBQWFBLEtBQUEsQ0FBU3NrRCxtQkFBbUIsUUFDMUYsR0FBcUIsaUJBQVg3K0MsRUFDUixPQUFPLEtBR1QsR0FBS0EsRUFBUyxDQUNaLE1BQU0sa0JBQUU2K0MsR0FBc0J0a0QsSUFFeEJrbEQsRUFBWUMsVUFETDRILEdBQU92Z0QsT0FBTy9HLEdBQ08sQ0FBRTYrQyxzQkFFcEMsSUFBSTRJLEVBTUosTUFKd0IsaUJBQWRoSSxJQUNSZ0ksRUFBVWhJLEVBQVV2cEQsUUFJcEJ5RSxJQUFBQSxjQUFBLE9BQ0VnbEQsd0JBQXlCLENBQ3ZCQyxPQUFRNkgsR0FFVjc0QyxVQUFXcU0sS0FBR3JNLEVBQVcscUJBRy9CLENBQ0EsT0FBTyxJQUFJLElDakNiLEdBQWVpMUMsMEJBQXlCLEVBQUd0M0MsU0FBUTlHLE1BQ2pELE1BQU0sT0FDSmhaLEVBQU0sYUFBRXVhLEVBQVksYUFBRXF4QixFQUFZLFdBQUV4MEIsRUFBVSxhQUFFbWdDLEVBQVksS0FBRTF1QyxFQUFJLGNBQUU4TSxHQUNsRXFELEVBRUV3aEQsRUFBV2pnRCxFQUFhLFlBSTlCLE1BQVksU0FIQ3ZhLEVBQU9sRCxJQUFJLFFBSWZvUixJQUFBQSxjQUFDc3NELEVBQVEsQ0FBQy85RCxJQUFNb00sRUFDYjdJLE9BQVNBLEVBQ1Q2SSxLQUFPQSxFQUNQK2lDLGFBQWVBLEVBQ2Z4MEIsV0FBYUEsRUFDYm1ELGFBQWVBLEVBQ2ZnYyxTQUFXZ2hCLEVBQ1g1aEMsY0FBaUJBLElBRXBCekgsSUFBQUEsY0FBQzRSLEVBQVE5RyxFQUNsQixJQ25CRixHQUFlbytDLHlCQUF5QnpZLHNCQ0F4QyxNQUFNc2MsdUJBQXVCdnZDLEVBQUFBLFVBYTNCcFIsTUFBQUEsR0FDRSxJQUFJLFdBQUV4TSxFQUFVLE9BQUU5TixFQUFROGYsSUFBS2dQLEdBQVVuekIsS0FBS3FkLE1BQzFDMFQsRUFBVSxDQUFDLGFBRVhqWixFQUFVLEtBT2QsT0FSZ0QsSUFBN0J6VCxFQUFPbEQsSUFBSSxnQkFJNUI0dkIsRUFBUW5vQixLQUFLLGNBQ2JrUCxFQUFVdkYsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSw0QkFBMkIsZ0JBR2hEalUsSUFBQUEsY0FBQSxPQUFLaVUsVUFBV3VLLEVBQVExakIsS0FBSyxNQUNqQ3lLLEVBQ0R2RixJQUFBQSxjQUFDNGdCLEVBQUt2TSxLQUFBLEdBQU01bUIsS0FBS3FkLE1BQUssQ0FDcEJsTCxXQUFhQSxFQUNiaWhCLE1BQVEsRUFDUkgsWUFBY2p6QixLQUFLcWQsTUFBTTRWLGFBQWUsS0FHOUMsRUFHRixTQUFld29DLHlCQUF5QjZELGdCQ3BDeEMsR0FBZTdELDBCQUF5QixFQUFHdDNDLFNBQVE5RyxNQUNqRCxNQUFNLE9BQ0poWixFQUFNLGFBQ051YSxFQUFZLE9BQ1psYyxFQUFNLFNBQ05rNEIsRUFBUSxHQUNSbDBCLEdBQ0UyVyxFQUVFbWUsRUFBdUI5MEIsRUFBRzgwQixxQkFBcUJuM0IsR0FDL0NnNEIsRUFBUXpkLEVBQWEsU0FFM0IsT0FBSTRjLEVBQ0tqcEIsSUFBQUEsY0FBQzhwQixFQUFLLENBQUMvNUIsS0FBSyxPQUNKa2tCLFVBQVk5akIsRUFBTzRELE9BQVMsVUFBWSxHQUN4QzRvQixNQUFReHNCLEVBQU80RCxPQUFTNUQsRUFBUyxHQUNqQ2s0QixTQUFXajNCLElBQ1RpM0IsRUFBU2ozQixFQUFFa1YsT0FBT2dqQixNQUFNLEdBQUcsRUFFN0JSLFNBQVVsWCxFQUFJaVksYUFFdEI3cEIsSUFBQUEsY0FBQzRSLEVBQVE5RyxFQUNsQixJQ2xCRixJQUNFK2IsU0FBUSxHQUNSNGlCLFNBQVEsR0FDUjZZLGVoQndCSyxTQUFTMEssMEJBQTBCeHZDLEdBQ3hDLE1BQU8sQ0FBQzVMLEVBQUtsVSxJQUFZb04sR0FDc0IsbUJBQWxDcE4sRUFBTzhKLGVBQWU2aEQsUUFDM0IzckQsRUFBTzhKLGNBQWM2aEQsVUFDaEJycEQsSUFBQUEsY0FBQ3dkLEVBQVNuSixLQUFBLEdBQUt2SixFQUFXcE4sRUFBTSxDQUFFa1UsSUFBS0EsS0FFdkM1UixJQUFBQSxjQUFDNFIsRUFBUTlHLElBR2xCelosUUFBUXFWLEtBQUssb0NBQ04sS0FHYixDaUI1Q0EsRUFBMENvRSxJQUN4QyxNQUFNLElBQUU4RyxHQUFROUcsRUFDaEIsT0FBTzlLLElBQUFBLGNBQUM0UixFQUFHLENBQUM2d0MsV0FBVyxPQUFRLElETS9CcDVCLGtCQUFpQixHQUNqQnRLLE1BQU82QixHQUNQZ21DLHFCQUFzQm5XLElFVlh3YyxHQUF5QixtQkFDekJDLEdBQTRCLDhCQUM1QkMsR0FBd0Msb0NBQ3hDQyxHQUFnQyxrQ0FDaENDLEdBQWdDLGtDQUNoQ0MsR0FBOEIsZ0NBQzlCQyxHQUErQixpQ0FDL0JDLEdBQStCLGlDQUMvQkMsR0FBa0MsdUNBQ2xDQyxHQUFvQyx5Q0FDcENDLEdBQTJCLGdDQUVqQyxTQUFTcmEsa0JBQW1Cc2EsRUFBbUI1c0QsR0FDcEQsTUFBTyxDQUNMalIsS0FBTWs5RCxHQUNOajlELFFBQVMsQ0FBQzQ5RCxvQkFBbUI1c0QsYUFFakMsQ0FFTyxTQUFTcXpDLHFCQUFxQixNQUFFaGxELEVBQUssV0FBRXFvQyxJQUM1QyxNQUFPLENBQ0wzbkMsS0FBTW05RCxHQUNObDlELFFBQVMsQ0FBRVgsUUFBT3FvQyxjQUV0QixDQUVPLE1BQU1zVSw4QkFBZ0NBLEVBQUczOEMsUUFBT3FvQyxpQkFDOUMsQ0FDTDNuQyxLQUFNbzlELEdBQ05uOUQsUUFBUyxDQUFFWCxRQUFPcW9DLGdCQUtmLFNBQVNxa0IseUJBQXlCLE1BQUUxc0QsRUFBSyxXQUFFcW9DLEVBQVUsS0FBRS84QixJQUM1RCxNQUFPLENBQ0w1SyxLQUFNcTlELEdBQ05wOUQsUUFBUyxDQUFFWCxRQUFPcW9DLGFBQVkvOEIsUUFFbEMsQ0FFTyxTQUFTNjlDLHlCQUF5QixLQUFFNzlDLEVBQUksV0FBRSs4QixFQUFVLFlBQUUrZ0IsRUFBVyxZQUFFQyxJQUN4RSxNQUFPLENBQ0wzb0QsS0FBTXM5RCxHQUNOcjlELFFBQVMsQ0FBRTJLLE9BQU0rOEIsYUFBWStnQixjQUFhQyxlQUU5QyxDQUVPLFNBQVNxQyx1QkFBdUIsTUFBRTFyRCxFQUFLLFdBQUVxb0MsSUFDOUMsTUFBTyxDQUNMM25DLEtBQU11OUQsR0FDTnQ5RCxRQUFTLENBQUVYLFFBQU9xb0MsY0FFdEIsQ0FFTyxTQUFTa2Usd0JBQXdCLE1BQUV2bUQsRUFBSyxLQUFFK2IsRUFBSSxPQUFFOVEsSUFDckQsTUFBTyxDQUNMdkssS0FBTXc5RCxHQUNOdjlELFFBQVMsQ0FBRVgsUUFBTytiLE9BQU05USxVQUU1QixDQUVPLFNBQVNpNUMsd0JBQXdCLE9BQUU5VCxFQUFNLFVBQUV6K0IsRUFBUyxJQUFFelMsRUFBRyxJQUFFNEksSUFDaEUsTUFBTyxDQUNMcEgsS0FBTXk5RCxHQUNOeDlELFFBQVMsQ0FBRXl2QyxTQUFReitCLFlBQVd6UyxNQUFLNEksT0FFdkMsQ0FFTyxNQUFNMG5ELDRCQUE4QkEsRUFBR3p6QyxPQUFNOVEsU0FBUTQvQix1QkFDbkQsQ0FDTG5xQyxLQUFNMDlELEdBQ056OUQsUUFBUyxDQUFFb2IsT0FBTTlRLFNBQVE0L0Isc0JBSWhCc2tCLDhCQUFnQ0EsRUFBR3B6QyxPQUFNOVEsYUFDN0MsQ0FDTHZLLEtBQU0yOUQsR0FDTjE5RCxRQUFTLENBQUVvYixPQUFNOVEsWUFJUjBnRCw2QkFBK0JBLEVBQUd0akIsaUJBQ3RDLENBQ0wzbkMsS0FBTTI5RCxHQUNOMTlELFFBQVMsQ0FBRW9iLEtBQU1zc0IsRUFBVyxHQUFJcDlCLE9BQVFvOUIsRUFBVyxNQUkxQ20yQixzQkFBd0JBLEVBQUduMkIsaUJBQy9CLENBQ0wzbkMsS0FBTzQ5RCxHQUNQMzlELFFBQVMsQ0FBRTBuQyxnQkNoR1QsR0FBK0JocUMsUUFBUSx1QixpQ0NZN0MsTUFBTXc2RCx3QkFDSDlsRCxHQUNELENBQUM1RSxLQUFVb0UsSUFDVmxFLElBQ0MsR0FBSUEsRUFBTzVJLFlBQVkwUyxjQUFjNVYsU0FBVSxDQUM3QyxNQUFNMjNELEVBQWdCbm5ELEVBQVM1RSxLQUFVb0UsR0FDekMsTUFBZ0MsbUJBQWxCMm5ELEVBQ1ZBLEVBQWM3ckQsR0FDZDZyRCxDQUNOLENBQ0UsT0FBTyxJQUNULEVBMEJKLE1BZWF6aEQsR0FBaUJvZ0QseUJBQVMsQ0FBQzFxRCxFQUFPd0QsS0FDN0MsTUFBTW9LLEVBQU9wSyxFQUFZLENBQUNBLEVBQVcsa0JBQW9CLENBQUMsa0JBQzFELE9BQU94RCxFQUFNbkwsTUFBTStZLElBQVMsRUFBRSxJQUduQnkwQixHQUFtQnFvQix5QkFBUyxDQUFDMXFELEVBQU80TixFQUFNOVEsSUFDOUNrRCxFQUFNbkwsTUFBTSxDQUFDLGNBQWUrWSxFQUFNOVEsRUFBUSxlQUFpQixPQUd2RHdnRCxHQUErQm9OLHlCQUFTLENBQUMxcUQsRUFBTzROLEVBQU05USxJQUMxRGtELEVBQU1uTCxNQUFNLENBQUMsY0FBZStZLEVBQU05USxFQUFRLHNCQUF1QixJQUc3RDg1Qyw4QkFDWEEsQ0FBQzUyQyxFQUFPNE4sRUFBTTlRLElBQVlvRCxJQUN4QixNQUFNLGNBQUU2SixFQUFhLGNBQUVDLEVBQWEsR0FBRXJULEdBQU91SixFQUFPNUksWUFFcEQsR0FBSTBTLEVBQWM1VixTQUFVLENBQzFCLE1BQU1ncEMsRUFBbUJyekIsRUFBYzR4QixtQkFBbUIvdEIsRUFBTTlRLEdBQ2hFLEdBQUlzZ0MsRUFDRixPQUFPMHZCLDJCQUNMOWlELEVBQWM2YyxvQkFBb0IsQ0FDaEMsUUFDQWpaLEVBQ0E5USxFQUNBLGdCQUVGc2dDLEVBQ0FyekIsRUFBY3l2QyxxQkFDWjVyQyxFQUNBOVEsRUFDQSxjQUNBLGVBRUZuRyxFQUdOLENBQ0EsT0FBTyxJQUFJLEVBR0YwbUQsR0FBb0JxTix5QkFBUyxDQUFDMXFELEVBQU80TixFQUFNOVEsSUFBWW9ELElBQ2xFLE1BQU0sY0FBRTZKLEVBQWEsY0FBRUMsRUFBYSxHQUFFclQsR0FBT3VKLEVBRTdDLElBQUlvdUMsR0FBb0IsRUFDeEIsTUFBTWxSLEVBQW1CcnpCLEVBQWM0eEIsbUJBQW1CL3RCLEVBQU05USxHQUNoRSxJQUFJd3pELEVBQXdCdm1ELEVBQWNzNEIsaUJBQWlCejBCLEVBQU05USxHQUNqRSxNQUFNb2dDLEVBQWNsekIsRUFBYzZjLG9CQUFvQixDQUNwRCxRQUNBalosRUFDQTlRLEVBQ0EsZ0JBUUYsSUFBS29nQyxFQUNILE9BQU8sRUFpQlQsR0FkSTcrQixFQUFBQSxJQUFJaEssTUFBTWk4RCxLQUVaQSxFQUF3QjN4RCxVQUN0QjJ4RCxFQUNHQyxZQUFZQyxHQUNYbnlELEVBQUFBLElBQUloSyxNQUFNbThELEVBQUcsSUFBTSxDQUFDQSxFQUFHLEdBQUlBLEVBQUcsR0FBR3AvRCxJQUFJLFVBQVlvL0QsSUFFbERyN0QsU0FHSHlYLEVBQUFBLEtBQUszVCxPQUFPcTNELEtBQ2RBLEVBQXdCM3hELFVBQVUyeEQsSUFHaENsekIsRUFBa0IsQ0FDcEIsTUFBTXF6QixFQUFtQzNELDJCQUN2QzV2QixFQUNBRSxFQUNBcnpCLEVBQWN5dkMscUJBQ1o1ckMsRUFDQTlRLEVBQ0EsY0FDQSxlQUVGbkcsR0FFRjIzQyxJQUNJZ2lCLEdBQ0ZBLElBQTBCRyxDQUM5QixDQUNBLE9BQU9uaUIsQ0FBaUIsSUFHYmhNLEdBQThCb29CLHlCQUFTLENBQUMxcUQsRUFBTzROLEVBQU05USxJQUN6RGtELEVBQU1uTCxNQUFNLENBQUMsY0FBZStZLEVBQU05USxFQUFRLG9CQUFxQnVCLEVBQUFBLEVBQUFBLFNBRzNENi9DLEdBQW9Cd00seUJBQVMsQ0FBQzFxRCxFQUFPNE4sRUFBTTlRLElBQy9Da0QsRUFBTW5MLE1BQU0sQ0FBQyxjQUFlK1ksRUFBTTlRLEVBQVEsWUFBYyxPQUdwRDA4QyxHQUF1QmtSLHlCQUNsQyxDQUFDMXFELEVBQU80TixFQUFNOVEsRUFBUXZLLEVBQU00SyxJQUV4QjZDLEVBQU1uTCxNQUFNLENBQUMsV0FBWStZLEVBQU05USxFQUFRdkssRUFBTTRLLEVBQU0sbUJBQ25ELE9BS093K0IsR0FBcUIrdUIseUJBQVMsQ0FBQzFxRCxFQUFPNE4sRUFBTTlRLElBRXJEa0QsRUFBTW5MLE1BQU0sQ0FBQyxjQUFlK1ksRUFBTTlRLEVBQVEsd0JBQTBCLE9BSTNEOCtCLEdBQXNCOHVCLHlCQUFTLENBQUMxcUQsRUFBTzROLEVBQU05USxJQUV0RGtELEVBQU1uTCxNQUFNLENBQUMsY0FBZStZLEVBQU05USxFQUFRLHlCQUEyQixPQUk1RG01QyxHQUFzQnlVLHlCQUFTLENBQUMxcUQsRUFBTzB3RCxFQUFjMy9ELEtBQ2hFLElBQUk2YyxFQUlKLEdBQTRCLGlCQUFqQjhpRCxFQUEyQixDQUNwQyxNQUFNLE9BQUV6dUIsRUFBTSxVQUFFeitCLEdBQWNrdEQsRUFFNUI5aUQsRUFERXBLLEVBQ0ssQ0FBQ0EsRUFBVyx1QkFBd0J5K0IsRUFBUWx4QyxHQUU1QyxDQUFDLHVCQUF3Qmt4QyxFQUFRbHhDLEVBRTVDLEtBQU8sQ0FFTDZjLEVBQU8sQ0FBQyx1QkFETzhpRCxFQUN5QjMvRCxFQUMxQyxDQUVBLE9BQU9pUCxFQUFNbkwsTUFBTStZLElBQVMsSUFBSSxJQUdyQnUwQixHQUFrQnVvQix5QkFBUyxDQUFDMXFELEVBQU8wd0QsS0FDOUMsSUFBSTlpRCxFQUlKLEdBQTRCLGlCQUFqQjhpRCxFQUEyQixDQUNwQyxNQUFNLE9BQUV6dUIsRUFBTSxVQUFFeitCLEdBQWNrdEQsRUFFNUI5aUQsRUFERXBLLEVBQ0ssQ0FBQ0EsRUFBVyx1QkFBd0J5K0IsR0FFcEMsQ0FBQyx1QkFBd0JBLEVBRXBDLEtBQU8sQ0FFTHIwQixFQUFPLENBQUMsdUJBRE84aUQsRUFFakIsQ0FFQSxPQUFPMXdELEVBQU1uTCxNQUFNK1ksS0FBUytwQixFQUFBQSxFQUFBQSxhQUFZLElBRzdCdHRCLEdBQXVCcWdELHlCQUFTLENBQUMxcUQsRUFBTzB3RCxLQUNuRCxJQUFJQyxFQUFXQyxFQUlmLEdBQTRCLGlCQUFqQkYsRUFBMkIsQ0FDcEMsTUFBTSxPQUFFenVCLEVBQU0sVUFBRXorQixHQUFja3RELEVBQzlCRSxFQUFjM3VCLEVBRVowdUIsRUFERW50RCxFQUNVeEQsRUFBTW5MLE1BQU0sQ0FBQzJPLEVBQVcsdUJBQXdCb3RELElBRWhENXdELEVBQU1uTCxNQUFNLENBQUMsdUJBQXdCKzdELEdBRXJELE1BQ0VBLEVBQWNGLEVBQ2RDLEVBQVkzd0QsRUFBTW5MLE1BQU0sQ0FBQyx1QkFBd0IrN0QsSUFHbkRELEVBQVlBLElBQWFoNUIsRUFBQUEsRUFBQUEsY0FDekIsSUFBSXQ3QixFQUFNdTBELEVBTVYsT0FKQUQsRUFBVWg3RCxLQUFJLENBQUNnRSxFQUFLNUksS0FDbEJzTCxFQUFNQSxFQUFJZ0IsUUFBUSxJQUFJdEQsT0FBTyxJQUFJODJELEtBQWE5L0QsTUFBUyxLQUFNNEksRUFBSSxJQUc1RDBDLENBQUcsSUFHQzBnQyxHQXZPYixTQUFTK3pCLDhCQUE4QmxzRCxHQUNyQyxNQUFPLElBQUlSLElBQ1JsRSxJQUNDLE1BQU11UCxFQUFXdlAsRUFBTzVJLFlBQVkwUyxjQUFjeUYsV0FHbEQsSUFBSXlxQixFQUZhLElBQUk5MUIsR0FFSyxJQUFNLEdBUWhDLE9BUGdDcUwsRUFBUzVhLE1BQU0sQ0FDN0MsV0FDR3FsQyxFQUNILGNBQ0EsY0FJT3QxQixLQUFZUixFQUlyQixDQUVOLENBa05xQzBzRCxFQUNuQyxDQUFDOXdELEVBQU9rNkIsSUFqTjZCNjJCLEVBQUMvd0QsRUFBT2s2QixLQUM3Q0EsRUFBYUEsR0FBYyxLQUNBbDZCLEVBQU1uTCxNQUFNLENBQ3JDLGlCQUNHcWxDLEVBQ0gsZUE0TXFCNjJCLENBQStCL3dELEVBQU9rNkIsS0FHbERvbkIsd0JBQTBCQSxDQUNyQ3RoRCxHQUVFaWhELHFDQUNBRyx5QkFDQUYsMkJBR0YsSUFBSUgsRUFBc0IsR0FFMUIsSUFBSzFpRCxFQUFBQSxJQUFJaEssTUFBTTZzRCxHQUNiLE9BQU9ILEVBRVQsSUFBSWlRLEVBQWUsR0FxQm5CLE9BbkJBLy9ELE9BQU8rRixLQUFLaXFELEVBQW1DdGxCLG9CQUFvQmxpQyxTQUNoRXk4QixJQUNDLEdBQUlBLElBQWdCa3JCLEVBQXdCLENBRXhDSCxFQUFtQ3RsQixtQkFBbUJ6RixHQUN6Q3o4QixTQUFTdzNELElBQ2xCRCxFQUFhcHpELFFBQVFxekQsR0FBZSxHQUN0Q0QsRUFBYW40RCxLQUFLbzRELEVBQ3BCLEdBRUosS0FHSkQsRUFBYXYzRCxTQUFTMUksSUFDR213RCxFQUFxQnJzRCxNQUFNLENBQUM5RCxFQUFLLFdBRXREZ3dELEVBQW9CbG9ELEtBQUs5SCxFQUMzQixJQUVLZ3dELENBQW1CLEVBR2Yzb0IsR0FBd0JDLEtBQVMsQ0FDNUMsTUFDQSxNQUNBLE9BQ0EsU0FDQSxVQUNBLE9BQ0EsUUFDQSxVQ25TRixJQUNFLENBQUNvM0IsSUFBeUIsQ0FBQ3p2RCxHQUFTeE4sU0FBVzQ5RCxvQkFBbUI1c0QsaUJBQ2hFLE1BQU1vSyxFQUFPcEssRUFBWSxDQUFFQSxFQUFXLGtCQUFvQixDQUFFLGtCQUM1RCxPQUFPeEQsRUFBTWlNLE1BQU8yQixFQUFNd2lELEVBQWtCLEVBRTlDLENBQUNWLElBQTRCLENBQUMxdkQsR0FBU3hOLFNBQVdYLFFBQU9xb0Msa0JBQ3ZELElBQUt0c0IsRUFBTTlRLEdBQVVvOUIsRUFDckIsSUFBSzc3QixFQUFBQSxJQUFJaEssTUFBTXhDLEdBRWIsT0FBT21PLEVBQU1pTSxNQUFPLENBQUUsY0FBZTJCLEVBQU05USxFQUFRLGFBQWVqTCxHQUVwRSxJQUtJNmxDLEVBTEF3NUIsRUFBYWx4RCxFQUFNbkwsTUFBTSxDQUFDLGNBQWUrWSxFQUFNOVEsRUFBUSxnQkFBaUJ1QixFQUFBQSxFQUFBQSxPQUN2RUEsRUFBQUEsSUFBSWhLLE1BQU02OEQsS0FFYkEsR0FBYTd5RCxFQUFBQSxFQUFBQSxRQUdmLFNBQVU4eUQsR0FBYXQvRCxFQUFNbUYsT0FVN0IsT0FUQW02RCxFQUFVMTNELFNBQVN1cEMsSUFDakIsSUFBSW91QixFQUFjdi9ELEVBQU1nRCxNQUFNLENBQUNtdUMsSUFDMUJrdUIsRUFBVzEzRCxJQUFJd3BDLElBRVIza0MsRUFBQUEsSUFBSWhLLE1BQU0rOEQsS0FEcEIxNUIsRUFBU3c1QixFQUFXamxELE1BQU0sQ0FBQysyQixFQUFVLFNBQVVvdUIsR0FJakQsSUFFS3B4RCxFQUFNaU0sTUFBTSxDQUFDLGNBQWUyQixFQUFNOVEsRUFBUSxhQUFjNDZCLEVBQU8sRUFFeEUsQ0FBQ2k0QixJQUF3QyxDQUFDM3ZELEdBQVN4TixTQUFXWCxRQUFPcW9DLGtCQUNuRSxJQUFLdHNCLEVBQU05USxHQUFVbzlCLEVBQ3JCLE9BQU9sNkIsRUFBTWlNLE1BQU0sQ0FBQyxjQUFlMkIsRUFBTTlRLEVBQVEsbUJBQW9CakwsRUFBTSxFQUU3RSxDQUFDKzlELElBQWdDLENBQUM1dkQsR0FBU3hOLFNBQVdYLFFBQU9xb0MsYUFBWS84QixZQUN2RSxJQUFLeVEsRUFBTTlRLEdBQVVvOUIsRUFDckIsT0FBT2w2QixFQUFNaU0sTUFBTyxDQUFFLGNBQWUyQixFQUFNOVEsRUFBUSxnQkFBaUJLLEdBQVF0TCxFQUFNLEVBRXBGLENBQUNnK0QsSUFBZ0MsQ0FBQzd2RCxHQUFTeE4sU0FBVzJLLE9BQU0rOEIsYUFBWStnQixjQUFhQyxtQkFDbkYsSUFBS3R0QyxFQUFNOVEsR0FBVW85QixFQUNyQixPQUFPbDZCLEVBQU1pTSxNQUFPLENBQUUsV0FBWTJCLEVBQU05USxFQUFRbStDLEVBQWFDLEVBQWEsaUJBQW1CLzlDLEVBQUssRUFFcEcsQ0FBQzJ5RCxJQUE4QixDQUFDOXZELEdBQVN4TixTQUFXWCxRQUFPcW9DLGtCQUN6RCxJQUFLdHNCLEVBQU05USxHQUFVbzlCLEVBQ3JCLE9BQU9sNkIsRUFBTWlNLE1BQU8sQ0FBRSxjQUFlMkIsRUFBTTlRLEVBQVEsc0JBQXdCakwsRUFBTSxFQUVuRixDQUFDaytELElBQStCLENBQUMvdkQsR0FBU3hOLFNBQVdYLFFBQU8rYixPQUFNOVEsYUFDekRrRCxFQUFNaU0sTUFBTyxDQUFFLGNBQWUyQixFQUFNOVEsRUFBUSx1QkFBeUJqTCxHQUU5RSxDQUFDbStELElBQStCLENBQUNod0QsR0FBU3hOLFNBQVd5dkMsU0FBUXorQixZQUFXelMsTUFBSzRJLFdBQzNFLE1BQU1pVSxFQUFPcEssRUFBWSxDQUFFQSxFQUFXLHVCQUF3QnkrQixFQUFRbHhDLEdBQVEsQ0FBRSx1QkFBd0JreEMsRUFBUWx4QyxHQUNoSCxPQUFPaVAsRUFBTWlNLE1BQU0yQixFQUFNalUsRUFBSSxFQUUvQixDQUFDczJELElBQWtDLENBQUNqd0QsR0FBU3hOLFNBQVdvYixPQUFNOVEsU0FBUTQvQix3QkFDcEUsSUFBSS9wQyxFQUFTLEdBRWIsR0FEQUEsRUFBT2tHLEtBQUssa0NBQ1I2akMsRUFBaUJva0IsaUJBRW5CLE9BQU85Z0QsRUFBTWlNLE1BQU0sQ0FBQyxjQUFlMkIsRUFBTTlRLEVBQVEsV0FBV3JDLEVBQUFBLEVBQUFBLFFBQU85SCxJQUVyRSxHQUFJK3BDLEVBQWlCcWtCLHFCQUF1QnJrQixFQUFpQnFrQixvQkFBb0J4cUQsT0FBUyxFQUFHLENBRTNGLE1BQU0sb0JBQUV3cUQsR0FBd0Jya0IsRUFDaEMsT0FBTzE4QixFQUFNaWpDLFNBQVMsQ0FBQyxjQUFlcjFCLEVBQU05USxFQUFRLGNBQWNyQyxFQUFBQSxFQUFBQSxRQUFPLENBQUMsSUFBSTQyRCxHQUNyRXRRLEVBQW9COXBELFFBQU8sQ0FBQ3E2RCxFQUFXQyxJQUNyQ0QsRUFBVXJsRCxNQUFNLENBQUNzbEQsRUFBbUIsV0FBVzkyRCxFQUFBQSxFQUFBQSxRQUFPOUgsS0FDNUQwK0QsSUFFUCxDQUVBLE9BREF4OUQsUUFBUXFWLEtBQUssc0RBQ05sSixDQUFLLEVBRWQsQ0FBQ2t3RCxJQUFvQyxDQUFDbHdELEdBQVN4TixTQUFXb2IsT0FBTTlRLGNBQzlELE1BQU11bEMsRUFBbUJyaUMsRUFBTW5MLE1BQU0sQ0FBQyxjQUFlK1ksRUFBTTlRLEVBQVEsY0FDbkUsSUFBS3VCLEVBQUFBLElBQUloSyxNQUFNZ3VDLEdBQ2IsT0FBT3JpQyxFQUFNaU0sTUFBTSxDQUFDLGNBQWUyQixFQUFNOVEsRUFBUSxXQUFXckMsRUFBQUEsRUFBQUEsUUFBTyxLQUVyRSxTQUFVMDJELEdBQWE5dUIsRUFBaUJyckMsT0FDeEMsT0FBS202RCxFQUdFbnhELEVBQU1pakMsU0FBUyxDQUFDLGNBQWVyMUIsRUFBTTlRLEVBQVEsY0FBY3JDLEVBQUFBLEVBQUFBLFFBQU8sQ0FBQyxJQUFJKzJELEdBQ3JFTCxFQUFVbDZELFFBQU8sQ0FBQ3E2RCxFQUFXOTJCLElBQzNCODJCLEVBQVVybEQsTUFBTSxDQUFDdXVCLEVBQU0sV0FBVy8vQixFQUFBQSxFQUFBQSxRQUFPLE1BQy9DKzJELEtBTEl4eEQsQ0FNUCxFQUVKLENBQUNtd0QsSUFBMkIsQ0FBQ253RCxHQUFTeE4sU0FBVzBuQyxrQkFDL0MsSUFBS3RzQixFQUFNOVEsR0FBVW85QixFQUNyQixNQUFNbUksRUFBbUJyaUMsRUFBTW5MLE1BQU0sQ0FBQyxjQUFlK1ksRUFBTTlRLEVBQVEsY0FDbkUsT0FBS3VsQyxFQUdBaGtDLEVBQUFBLElBQUloSyxNQUFNZ3VDLEdBR1JyaUMsRUFBTWlNLE1BQU0sQ0FBQyxjQUFlMkIsRUFBTTlRLEVBQVEsY0FBY3VCLEVBQUFBLEVBQUFBLFFBRnREMkIsRUFBTWlNLE1BQU0sQ0FBQyxjQUFlMkIsRUFBTTlRLEVBQVEsYUFBYyxJQUh4RGtELENBSzRELEdDakcxRCxTQUFTLE1BQUMsVUFBRTFJLElBQ3pCLE1BQU1tMEIsRUNSZ0NnbUMsQ0FBQ242RCxHQUNWbTBCLENBQUNuM0IsRUFBUXk0RCxFQUFZLFFBQ2hELE1BQU0sV0FBRTNxRCxFQUFVLEdBQUV6TCxHQUFPVyxLQUNyQixxQkFBRW82RCxHQUF5QnR2RCxJQU9qQyxHQUx1QixpQkFBZDJxRCxHQUNQMkUsRUFBcUJ0NEQsTUFBTXU0RCxHQUN6QjVFLEVBQVV6a0MsV0FBV3FwQyxLQUl2QixPQUFPLEVBR1QsTUFBTXZpQyxFQUFvQi93QixFQUFBQSxJQUFJaEssTUFBTUMsR0FFcEMsSUFBSzg2QixJQUFzQkMsS0FBYy82QixHQUN2QyxPQUFPLEVBR1QsTUFBTTRELEVBQVNrM0IsRUFBb0I5NkIsRUFBT2xELElBQUksVUFBWWtELEVBQU80RCxPQUVqRSxPQUNFdkIsRUFBR3c0QixjQUFjNzZCLEVBQVEsV0FBYSxDQUFDLFNBQVUsUUFBUUksU0FBU3dELEVBQU8sRURmaER1NUQsQ0FBeUJuNkQsR0FFdEQsTUFBTyxDQUNMOEksV0FBVSxHQUNWOEYsZUFBYyxHQUNkNUYsYUFBYyxDQUNaa1AsS0FBTSxDQUNKN0ssY0FBZWl0RCxFQUNmcHRELFVBQVd3RixHQUViekMsS0FBTSxDQUNKNUMsY0FBZWt0RCxHQUVqQkMsS0FBTSxDQUNKbnVELFFBQVMsSUFBS0EsR0FDZGIsU0FBUSxHQUNSMEIsVUFBVyxJQUFLQSxLQUdwQjdOLEdBQUksQ0FDRjgwQix1QkFDQXNtQywwQkFBMkJ0bUMsR0FHakMsQ0UvQkEsTUFzQ0EsU0F0Q2lCdThCLEVBQUdoK0MsZ0JBQWU2RSxtQkFDakMsTUFBTSs5QyxFQUFnQjVpRCxFQUFjZ29ELDJCQUM5QkMsRUFBZ0JoaEUsT0FBTytGLEtBQUs0MUQsR0FFNUI5WSxFQUFxQmpsQyxFQUFhLHNCQUFzQixHQUU5RCxPQUE2QixJQUF6Qm9qRCxFQUFjMTdELE9BQXFCLEtBR3JDaU0sSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxZQUNialUsSUFBQUEsY0FBQSxVQUFJLFlBRUh5dkQsRUFBY3Q4RCxLQUFLdThELEdBQ2xCMXZELElBQUFBLGNBQUEsT0FBS3pSLElBQUssR0FBR21oRSxhQUNWdEYsRUFBY3NGLEdBQWN2OEQsS0FBS2czRCxHQUNoQ25xRCxJQUFBQSxjQUFDc3hDLEVBQWtCLENBQ2pCL2lELElBQUssR0FBR21oRSxLQUFnQnZGLEVBQWE3dkQsaUJBQ3JDazhCLEdBQUkyekIsRUFBYTkrQyxVQUNqQmdHLElBQUksV0FDSi9XLE9BQVE2dkQsRUFBYTd2RCxPQUNyQjhRLEtBQU1za0QsRUFDTjV4QyxVQUFVMVQsRUFBQUEsRUFBQUEsTUFBSysvQyxFQUFhcnNDLFVBQzVCeTBCLGVBQWUsU0FLbkIsRUNHVixtQkE3QmdCZ1EsRUFBR2wyQyxlQUFjN0Usb0JBQy9CLE1BQU03TSxFQUFPNk0sRUFBY21vRCx5QkFDckI5b0QsRUFBTVcsRUFBY29vRCxtQkFFcEI3b0MsRUFBTzFhLEVBQWEsUUFFMUIsT0FDRXJNLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsaUJBQ1pwTixFQUNDN0csSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxzQkFDYmpVLElBQUFBLGNBQUMrbUIsRUFBSSxDQUFDemdCLE9BQU8sU0FBUzJlLEtBQU1JLFlBQVl4ZSxJQUNyQ2xNLElBSUxxRixJQUFBQSxjQUFBLFlBQU9yRixHQUVMLEVDaUJWLG1CQWxDZ0I2bkQsRUFBR24yQyxlQUFjN0Usb0JBQy9CLE1BQU03TSxFQUFPNk0sRUFBY3FvRCx5QkFDckJocEQsRUFBTVcsRUFBY3NvRCxtQkFDcEJsTixFQUFRcDdDLEVBQWN1b0QsMEJBRXRCaHBDLEVBQU8xYSxFQUFhLFFBRTFCLE9BQ0VyTSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLGlCQUNacE4sR0FDQzdHLElBQUFBLGNBQUEsV0FDRUEsSUFBQUEsY0FBQyttQixFQUFJLENBQUM5QixLQUFNSSxZQUFZeGUsR0FBTVAsT0FBTyxVQUNsQzNMLEVBQUssZUFJWGlvRCxHQUNDNWlELElBQUFBLGNBQUMrbUIsRUFBSSxDQUFDOUIsS0FBTUksWUFBWSxVQUFVdTlCLE1BQy9CLzdDLEVBQU0saUJBQWlCbE0sSUFBUyxXQUFXQSxLQUc1QyxFQ3FFVixzQkExRmFzbkQsRUFBRzUxQyxlQUFjN0Usb0JBQzVCLE1BQU1ndUIsRUFBVWh1QixFQUFjZ3VCLFVBQ3hCM3VCLEVBQU1XLEVBQWNYLE1BQ3BCdXZCLEVBQVc1dUIsRUFBYzR1QixXQUN6QkMsRUFBTzd1QixFQUFjNnVCLE9BQ3JCMGIsRUFBVXZxQyxFQUFjd29ELHlCQUN4QjFwQyxFQUFjOWUsRUFBY3lvRCw2QkFDNUJ0ekMsRUFBUW5WLEVBQWMwb0QsdUJBQ3RCaE8sRUFBb0IxNkMsRUFBYzJvRCw4QkFDbEN4cEMsRUFBa0JuZixFQUFjNG9ELHdCQUNoQ0MsRUFBbUI3b0QsRUFBYzhvRCxxQ0FDakNDLEVBQVUvb0QsRUFBYytvRCxVQUN4QjdOLEVBQVVsN0MsRUFBY2s3QyxVQUV4Qjc3QixFQUFXeGEsRUFBYSxZQUFZLEdBQ3BDMGEsRUFBTzFhLEVBQWEsUUFDcEJnMkMsRUFBZWgyQyxFQUFhLGdCQUM1QmkyQyxFQUFpQmoyQyxFQUFhLGtCQUM5QjIxQyxFQUFVMzFDLEVBQWEsV0FDdkIwMUMsRUFBZTExQyxFQUFhLGdCQUM1QmsyQyxFQUFVbDJDLEVBQWEsV0FBVyxHQUNsQ20yQyxFQUFVbjJDLEVBQWEsV0FBVyxHQUNsQ21rRCxFQUFvQm5rRCxFQUFhLHFCQUFxQixHQUU1RCxPQUNFck0sSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxRQUNialUsSUFBQUEsY0FBQSxVQUFRaVUsVUFBVSxRQUNoQmpVLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsU0FDWDBJLEVBQ0QzYyxJQUFBQSxjQUFBLFlBQ0d3MUIsR0FBV3gxQixJQUFBQSxjQUFDcWlELEVBQVksQ0FBQzdzQixRQUFTQSxJQUNuQ3gxQixJQUFBQSxjQUFDc2lELEVBQWMsQ0FBQ0csV0FBVyxXQUk3QnBzQixHQUFRRCxJQUFhcDJCLElBQUFBLGNBQUMraEQsRUFBWSxDQUFDMXJCLEtBQU1BLEVBQU1ELFNBQVVBLElBQzFEdnZCLEdBQU83RyxJQUFBQSxjQUFDZ2lELEVBQU8sQ0FBQzMxQyxhQUFjQSxFQUFjeEYsSUFBS0EsS0FHbkRrckMsR0FBVy94QyxJQUFBQSxjQUFBLEtBQUdpVSxVQUFVLGlCQUFpQjg5QixHQUUxQy94QyxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLGlDQUNialUsSUFBQUEsY0FBQzZtQixFQUFRLENBQUN4aEIsT0FBUWloQixLQUduQjQ3QixHQUNDbGlELElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsYUFDYmpVLElBQUFBLGNBQUMrbUIsRUFBSSxDQUFDemdCLE9BQU8sU0FBUzJlLEtBQU1JLFlBQVk2OEIsSUFBb0IscUJBTS9EcU8sRUFBUW40RCxLQUFPLEdBQUs0SCxJQUFBQSxjQUFDd2lELEVBQU8sTUFFNUJFLEVBQVF0cUQsS0FBTyxHQUFLNEgsSUFBQUEsY0FBQ3VpRCxFQUFPLE1BRTVCNTdCLEdBQ0MzbUIsSUFBQUEsY0FBQyttQixFQUFJLENBQ0g5UyxVQUFVLGdCQUNWM04sT0FBTyxTQUNQMmUsS0FBTUksWUFBWXNCLElBRWpCMHBDLEdBQW9CMXBDLEdBSXpCM21CLElBQUFBLGNBQUN3d0QsRUFBaUIsTUFDZCxFQ2pCVixvQkFsRDBCQSxFQUFHbmtELGVBQWM3RSxvQkFDekMsTUFBTWlwRCxFQUFvQmpwRCxFQUFja3BELCtCQUNsQ0MsRUFBMkJucEQsRUFBY29wRCxpQ0FFekM3cEMsRUFBTzFhLEVBQWEsUUFFMUIsT0FDRXJNLElBQUFBLGNBQUFBLElBQUFBLFNBQUEsS0FDR3l3RCxHQUFxQkEsSUFBc0JFLEdBQzFDM3dELElBQUFBLGNBQUEsS0FBR2lVLFVBQVUsMkJBQTBCLHVCQUNoQixJQUNyQmpVLElBQUFBLGNBQUMrbUIsRUFBSSxDQUFDemdCLE9BQU8sU0FBUzJlLEtBQU1JLFlBQVlvckMsSUFDckNBLElBS05BLEdBQXFCQSxJQUFzQkUsR0FDMUMzd0QsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxpQkFDYmpVLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsYUFDYmpVLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsVUFDYmpVLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsa0JBQ2JqVSxJQUFBQSxjQUFBLE1BQUlpVSxVQUFVLFVBQVMsV0FDdkJqVSxJQUFBQSxjQUFBLEtBQUdpVSxVQUFVLFdBQ1hqVSxJQUFBQSxjQUFBLGNBQVEsNkJBQWtDLDhEQUNBLElBQzFDQSxJQUFBQSxjQUFDK21CLEVBQUksQ0FBQ3pnQixPQUFPLFNBQVMyZSxLQUFNMHJDLEdBQ3pCQSxHQUNJLCtJQVVsQixFQ3lCUCxzQkFyRTRCaE4sRUFDMUJFLFNBQ0E1RyxhQUNBcnJELFNBQ0E4ekQsVUFDQTlCLFdBQ0F4bUMsY0FFSXltQyxFQUNLN2pELElBQUFBLGNBQUEsV0FBTW9kLEdBR1g2L0IsSUFBZXJyRCxHQUFVOHpELEdBRXpCMWxELElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsa0JBQ1oydkMsRUFDRDVqRCxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLDhEQUNialUsSUFBQUEsY0FBQSxXQUNFQSxJQUFBQSxjQUFBLFVBQUksb0NBQ0pBLElBQUFBLGNBQUEsU0FDRUEsSUFBQUEsY0FBQSxZQUFNLFdBQWMsUUFBS0EsSUFBQUEsY0FBQSxZQUFNLFdBQWMseUdBSS9DQSxJQUFBQSxjQUFBLFNBQUcsZ0NBQzRCQSxJQUFBQSxjQUFBLFlBQU0sa0JBQStCLHlCQUNqREEsSUFBQUEsY0FBQSxZQUFNLGtCQUFxQixpQkFBZSxJQUMzREEsSUFBQUEsY0FBQSxZQUFNLGtCQUFxQixTQVFsQ2k5QyxHQUFlcnJELEdBQVc4ekQsRUFzQnhCMWxELElBQUFBLGNBQUEsV0FBTW9kLEdBcEJUcGQsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxrQkFDWjJ2QyxFQUNENWpELElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsNERBQ2JqVSxJQUFBQSxjQUFBLFdBQ0VBLElBQUFBLGNBQUEsVUFBSSxvQ0FDSkEsSUFBQUEsY0FBQSxTQUFHLG1FQUdIQSxJQUFBQSxjQUFBLFNBQUcsMEZBRTRCQSxJQUFBQSxjQUFBLFlBQU0sa0JBQStCLHlCQUNqREEsSUFBQUEsY0FBQSxZQUFNLGtCQUFxQixpQkFBZSxJQUMzREEsSUFBQUEsY0FBQSxZQUFNLGtCQUFxQixTQ3JDbkN3aUIsYUFBZ0JybkIsR0FDRCxpQkFBUkEsR0FBb0JBLEVBQUlqSixTQUFTLHlCQVR4QjZ2QixDQUFDNW1CLElBQ3JCLE1BQU02bUIsRUFBWTdtQixFQUFJTixRQUFRLE1BQU8sS0FBS0EsUUFBUSxNQUFPLEtBQ3pELElBQ0UsT0FBT29YLG1CQUFtQitQLEVBQzVCLENBQUUsTUFDQSxPQUFPQSxDQUNULEdBSVNELENBQWM1bUIsRUFBSU4sUUFBUSw4QkFBK0IsS0FFM0QsS0FHSCtsQixJQUFRaXdDLEVBQUFBLEVBQUFBLGFBQ1osRUFBRy8rRCxTQUFRdWEsZUFBY3VSLFdBQVdBLE9BQVVFLFlBQVloTyxLQUN4RCxNQUFNZ2hELEVBQW1CemtELEVBQWEsb0JBQ2hDMVIsRUFBTzZuQixhQUFhMXdCLEVBQU9sRCxJQUFJLFVBRS9CbWlFLEdBQWV6eEMsRUFBQUEsRUFBQUEsY0FDbkIsQ0FBQ2x1QixFQUFHdXNCLEtBQ0ZDLEVBQVNqakIsRUFBTWdqQixFQUFTLEdBRTFCLENBQUNoakIsRUFBTWlqQixJQUdULE9BQ0U1ZCxJQUFBQSxjQUFDOHdELEVBQWdCLENBQ2ZuMkQsS0FBTUEsRUFDTjdJLE9BQVFBLEVBQU9hLE9BQ2ZtZCxJQUFLQSxFQUNMa2hELFNBQVVELEVBQ1ZFLFdBQVluekMsRUFBU25yQixPQUFPbUksS0FBSyxNQUNqQyxJQVlSLE1DK0VBLE9BN0hldW9CLEVBQ2J4VixjQUNBckcsZ0JBQ0ErSSxrQkFDQUUsZ0JBQ0FwRSxlQUNBek0sYUFDQXpMLFNBRUEsTUFBTW0wRCxFQUFVOWdELEVBQWMwcEQsZ0JBQ3hCQyxFQUFhMWlFLE9BQU8rRixLQUFLOHpELEdBQVN2MEQsT0FBUyxFQUMzQ3E5RCxFQUFjLENBQUMsYUFBYyxZQUM3QixhQUFFdnRDLEVBQVkseUJBQUVDLEdBQTZCbGtCLElBQzdDeXhELEVBQWdCdnRDLEVBQTJCLEdBQXNCLFNBQWpCRCxFQUNoRHl0QyxFQUFTL2dELEVBQWdCd0YsUUFBUXE3QyxFQUFhQyxHQUM5Q3B0QyxFQUFXNVgsRUFBYSxZQUN4QnlrRCxFQUFtQnprRCxFQUFhLG9CQUNoQzZJLEVBQWM3SSxFQUFhLGVBQzNCOEksRUFBZ0I5SSxFQUFhLGtCQUM3QixTQUFFa2xELEdBQWFwOUQsRUFBR3E5RCxpQkFBaUJDLFNBS3pDMzFDLEVBQUFBLEVBQUFBLFlBQVUsS0FDUixNQUFNNDFDLEVBQW9CSixHQUFVeHRDLEVBQTJCLEVBQ3pENnRDLEVBQStELE1BQWxEbnFELEVBQWM2YyxvQkFBb0Irc0MsR0FDakRNLElBQXNCQyxHQUN4QjlqRCxFQUFZNFYsdUJBQXVCMnRDLEVBQ3JDLEdBQ0MsQ0FBQ0UsRUFBUXh0QyxJQU1aLE1BQU04dEMsR0FBcUJ0eUMsRUFBQUEsRUFBQUEsY0FBWSxLQUNyQzdPLEVBQWNVLEtBQUtpZ0QsR0FBY0UsRUFBTyxHQUN2QyxDQUFDQSxJQUNFTyxHQUFrQnZ5QyxFQUFBQSxFQUFBQSxjQUFhdEQsSUFDdEIsT0FBVEEsR0FDRnZMLEVBQWNMLGNBQWNnaEQsRUFBYXAxQyxFQUMzQyxHQUNDLElBQ0c4MUMsMEJBQTZCMUosR0FBZ0Jwc0MsSUFDcEMsT0FBVEEsR0FDRnZMLEVBQWNMLGNBQWMsSUFBSWdoRCxFQUFhaEosR0FBYXBzQyxFQUM1RCxFQUVJKzFDLDZCQUFnQzNKLEdBQWUsQ0FBQ2gzRCxFQUFHdXNCLEtBQ3ZELEdBQUlBLEVBQVUsQ0FDWixNQUFNcTBDLEVBQWEsSUFBSVosRUFBYWhKLEdBQ2dDLE1BQWpENWdELEVBQWM2YyxvQkFBb0IydEMsSUFFbkRua0QsRUFBWTRWLHVCQUF1QixJQUFJMnRDLEVBQWFoSixHQUV4RCxHQU9GLE9BQUsrSSxHQUFjcnRDLEVBQTJCLEVBQ3JDLEtBSVA5akIsSUFBQUEsY0FBQSxXQUNFaVUsVUFBVzZJLEtBQVcsU0FBVSxDQUFFLFVBQVd3MEMsSUFDN0N4aEQsSUFBSytoRCxHQUVMN3hELElBQUFBLGNBQUEsVUFDRUEsSUFBQUEsY0FBQSxVQUNFLGdCQUFlc3hELEVBQ2ZyOUMsVUFBVSxpQkFDVndJLFFBQVNtMUMsR0FFVDV4RCxJQUFBQSxjQUFBLFlBQU0sV0FDTHN4RCxFQUFTdHhELElBQUFBLGNBQUNrVixFQUFXLE1BQU1sVixJQUFBQSxjQUFDbVYsRUFBYSxRQUc5Q25WLElBQUFBLGNBQUNpa0IsRUFBUSxDQUFDRSxTQUFVbXRDLEdBQ2pCN2lFLE9BQU82RSxRQUFRZzFELEdBQVNuMUQsS0FBSSxFQUFFaTFELEVBQVl0MkQsTUFDekMsTUFBTTZJLEVBQU80MkQsRUFBU3ovRCxFQUFRLENBQUVtZ0UsT0FBUSxXQUFjN0osRUFFdEQsT0FDRXBvRCxJQUFBQSxjQUFDOHdELEVBQWdCLENBQ2Z2aUUsSUFBSzY1RCxFQUNMdDRDLElBQUtnaUQsMEJBQTBCMUosR0FDL0J0MkQsT0FBUUEsRUFDUjZJLEtBQU1BLEVBQ05xMkQsU0FBVWUsNkJBQTZCM0osSUFDdkMsS0FJQSxFQ3pFZCxnQkF6QnNCOEosRUFBR3BnRSxTQUFRdWEsZUFBYzFSLE9BQU04TSxvQkFDbkQsTUFBTXljLEVBQWE3WCxFQUFhLGNBQWMsR0FDeENqQixFQUFPM0QsRUFBYzRDLGVBQWUxUCxHQUUxQyxPQUNFcUYsSUFBQUEsY0FBQSxXQUNFQSxJQUFBQSxjQUFBLFVBQ0dyRixFQUFLLGdCQUFhcUYsSUFBQUEsY0FBQ2trQixFQUFVLENBQUM5WSxLQUFNQSxLQUV2Q3BMLElBQUFBLGNBQUEsU0FBRyx5SEFJSEEsSUFBQUEsY0FBQSxTQUFJbE8sRUFBT2xELElBQUksZ0JBQ1gsRUNiVixNQUFNazZDLG9CQUFjOW9DLElBQUFBLFVBVWxCM0MsV0FBQUEsQ0FBWXlOLEVBQU9pVCxHQUNqQkMsTUFBTWxULEVBQU9pVCxHQUVidHdCLEtBQUsrUCxNQUFRLENBQUMsQ0FDaEIsQ0FFQTZyQyxhQUFnQnRrQyxJQUNkLElBQUksS0FBRXBLLEdBQVNvSyxFQUVmdFgsS0FBSzZ3QixTQUFTLENBQUUsQ0FBQzNqQixHQUFPb0ssR0FBTyxFQUdqQ3VrQyxXQUFjbDRDLElBQ1pBLEVBQUV5cUIsaUJBRUYsSUFBSSxZQUFFcFgsR0FBZ0JoWCxLQUFLcWQsTUFDM0JyRyxFQUFZRCwyQkFBMkIvVyxLQUFLK1AsTUFBTSxFQUdwRCtyQyxZQUFlbjRDLElBQ2JBLEVBQUV5cUIsaUJBRUYsSUFBSSxZQUFFcFgsRUFBVyxZQUFFeUYsR0FBZ0J6YyxLQUFLcWQsTUFDcEMwK0IsRUFBUXQvQixFQUNUL1csS0FBSSxDQUFDZ0UsRUFBSzVJLElBQ0ZBLElBRVJxSyxVQUVIbkwsS0FBSzZ3QixTQUNIa3JCLEVBQU0vMEMsUUFBTyxDQUFDbXBDLEVBQU03NEIsS0FDbEI2NEIsRUFBSzc0QixHQUFRLEdBQ042NEIsSUFDTixDQUFDLElBR05uNUIsRUFBWUcsd0JBQXdCNGtDLEVBQU0sRUFHNUN4NEMsTUFBU0ksSUFDUEEsRUFBRXlxQixpQkFDRixJQUFJLFlBQUVwWCxHQUFnQmhYLEtBQUtxZCxNQUUzQnJHLEVBQVlILGlCQUFnQixFQUFNLEVBR3BDOEgsTUFBQUEsR0FDRSxJQUFJLFlBQUVsQyxFQUFXLGFBQUVtQyxFQUFZLGNBQUU1RSxFQUFhLGFBQUVpMkIsR0FBaUJqd0MsS0FBS3FkLE1BQ3RFLE1BQU0yK0IsRUFBV3A5QixFQUFhLFlBQ3hCcTlCLEVBQVNyOUIsRUFBYSxVQUFVLEdBQ2hDb2YsRUFBU3BmLEVBQWEsVUFFdEJuRCxFQUFhekIsRUFBY3lCLGFBQzNCeWdDLEVBQWlCei9CLEVBQVl6WixRQUFPLENBQUNuQyxFQUFZQyxNQUM1QzJhLEVBQVd0YSxJQUFJTCxLQUVwQnE3QyxFQUFzQjEvQixFQUFZelosUUFDckNxQixHQUN3QixXQUF2QkEsRUFBT2xELElBQUksU0FBK0MsY0FBdkJrRCxFQUFPbEQsSUFBSSxVQUU1Q2k3QyxFQUFtQjMvQixFQUFZelosUUFDbENxQixHQUFrQyxXQUF2QkEsRUFBT2xELElBQUksVUFFbkJ1akUsRUFBdUJqb0QsRUFBWXpaLFFBQ3RDcUIsR0FBa0MsY0FBdkJBLEVBQU9sRCxJQUFJLFVBRXpCLE9BQ0VvUixJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLGtCQUNaMjFCLEVBQW9CeHhDLEtBQU8sR0FDMUI0SCxJQUFBQSxjQUFBLFFBQU04cEMsU0FBVXI4QyxLQUFLNjdDLFlBQ2xCTSxFQUNFejJDLEtBQUksQ0FBQ3JCLEVBQVE2SSxJQUVWcUYsSUFBQUEsY0FBQ3lwQyxFQUFRLENBQ1BsN0MsSUFBS29NLEVBQ0w3SSxPQUFRQSxFQUNSNkksS0FBTUEsRUFDTjBSLGFBQWNBLEVBQ2RnOUIsYUFBYzU3QyxLQUFLNDdDLGFBQ25CbmdDLFdBQVlBLEVBQ1p3MEIsYUFBY0EsRUFDZGoyQixjQUFlQSxNQUlwQjdPLFVBQ0hvSCxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLG9CQUNaMjFCLEVBQW9CeHhDLE9BQVN1eEMsRUFBZXZ4QyxLQUMzQzRILElBQUFBLGNBQUN5ckIsRUFBTSxDQUNMeFgsVUFBVSxxQkFDVndJLFFBQVNodkIsS0FBSzg3QyxZQUNkLGFBQVcsd0JBQ1osVUFJRHZwQyxJQUFBQSxjQUFDeXJCLEVBQU0sQ0FDTDE3QixLQUFLLFNBQ0xra0IsVUFBVSwrQkFDVixhQUFXLHFCQUNaLGFBSUhqVSxJQUFBQSxjQUFDeXJCLEVBQU0sQ0FDTHhYLFVBQVUsOEJBQ1Z3SSxRQUFTaHZCLEtBQUt1RCxPQUNmLFdBT042NEMsRUFBaUJ6eEMsS0FBTyxFQUN2QjRILElBQUFBLGNBQUEsV0FDRUEsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxhQUNialUsSUFBQUEsY0FBQSxTQUFHLGtKQUtIQSxJQUFBQSxjQUFBLFNBQUcsMEZBS0prSyxFQUNFelosUUFBUXFCLEdBQWtDLFdBQXZCQSxFQUFPbEQsSUFBSSxVQUM5QnVFLEtBQUksQ0FBQ3JCLEVBQVE2SSxJQUVWcUYsSUFBQUEsY0FBQSxPQUFLelIsSUFBS29NLEdBQ1JxRixJQUFBQSxjQUFDMHBDLEVBQU0sQ0FDTHhnQyxXQUFZQSxFQUNacFgsT0FBUUEsRUFDUjZJLEtBQU1BLE9BS2IvQixXQUVILEtBQ0h1NUQsRUFBcUIvNUQsS0FBTyxHQUMzQjRILElBQUFBLGNBQUEsV0FDR215RCxFQUNFaC9ELEtBQUksQ0FBQ3JCLEVBQVE2SSxJQUVWcUYsSUFBQUEsY0FBQ3lwQyxFQUFRLENBQ1BsN0MsSUFBS29NLEVBQ0w3SSxPQUFRQSxFQUNSNkksS0FBTUEsRUFDTjBSLGFBQWNBLEVBQ2RnOUIsYUFBYzU3QyxLQUFLNDdDLGFBQ25CbmdDLFdBQVlBLEVBQ1p3MEIsYUFBY0EsRUFDZGoyQixjQUFlQSxNQUlwQjdPLFdBS2IsRUFHRixxQkNwTGE4c0QsUUFBV2p6QyxJQUN0QixNQUFNZ3dDLEVBQWFod0MsRUFBTzdqQixJQUFJLFdBRTlCLE1BQ3dCLGlCQUFmNnpELEdBQTJCLHlCQUF5QmpyRCxLQUFLaXJELEVBQVcsRUFXbEUyUCwyQkFDVmh3RCxHQUNELENBQUM1RSxLQUFVb0UsSUFDVmxFLElBQ0MsR0FBSUEsRUFBTzVJLFlBQVkwUyxjQUFjaytDLFVBQVcsQ0FDOUMsTUFBTTZELEVBQWdCbm5ELEVBQVM1RSxLQUFVb0UsR0FDekMsTUFBZ0MsbUJBQWxCMm5ELEVBQ1ZBLEVBQWM3ckQsR0FDZDZyRCxDQUNOLENBQ0UsT0FBTyxJQUNULEVBV1M4SSwrQkFDVmp3RCxHQUNELENBQUNtVSxFQUFhN1ksSUFDZCxDQUFDRixLQUFVb0UsS0FDVCxHQUFJbEUsRUFBTzVJLFlBQVkwUyxjQUFjaytDLFVBQVcsQ0FDOUMsTUFBTTZELEVBQWdCbm5ELEVBQVM1RSxLQUFVb0UsR0FDekMsTUFBZ0MsbUJBQWxCMm5ELEVBQ1ZBLEVBQWNoekMsRUFBYTdZLEdBQzNCNnJELENBQ04sQ0FDRSxPQUFPaHpDLEtBQWUzVSxFQUN4QixFQVdTMHdELHdCQUNWbHdELEdBQ0QsQ0FBQzVFLEtBQVVvRSxJQUNWbEUsSUFDQyxNQUFNNnJELEVBQWdCbm5ELEVBQVM1RSxFQUFPRSxLQUFXa0UsR0FDakQsTUFBZ0MsbUJBQWxCMm5ELEVBQ1ZBLEVBQWM3ckQsR0FDZDZyRCxDQUFhLEVBWVJnSixnQ0FDVi8wQyxHQUFjLENBQUMrb0IsRUFBVTdvQyxJQUFZb04sR0FDaENwTixFQUFPOEosY0FBY2srQyxVQUVyQjFsRCxJQUFBQSxjQUFDd2QsRUFBU25KLEtBQUEsR0FDSnZKLEVBQUssQ0FDVDBuRCxrQkFBbUJqc0IsRUFDbkJ6eEMsVUFBVzRJLEVBQU81SSxhQUtqQmtMLElBQUFBLGNBQUN1bUMsRUFBYXo3QixHQVlaMm5ELFlBQWNBLENBQUN0K0QsRUFBSXVKLEtBQzlCLE1BQVF2SixHQUFJdStELEVBQVEsY0FBRWxyRCxHQUFrQjlKLEVBRXhDLE9BQU9qUCxPQUFPa2tFLFlBQ1psa0UsT0FBTzZFLFFBQVFhLEdBQUloQixLQUFJLEVBQUV3SCxFQUFNaTRELE1BQzdCLE1BQU1DLEVBQVVILEVBQVMvM0QsR0FRekIsTUFBTyxDQUFDQSxFQVBLbTRELElBQUlseEQsSUFDZjRGLEVBQWNrK0MsVUFDVmtOLEtBQVdoeEQsR0FDUSxtQkFBWml4RCxFQUNMQSxLQUFXanhELFFBQ1g3VCxFQUVXLElBRXRCLEVDNUdILEdBUHVCd2tFLGlDQUFnQyxFQUFHejlELGdCQUN4RCxNQUNNaStELEVBRFNqK0QsSUFDYXVYLGFBQWEsZ0JBQWdCLEdBRXpELE9BQU9yTSxJQUFBQSxjQUFDK3lELEVBQVksS0FBRyxJQ0d6QixHQVB1QlIsaUNBQWdDLEVBQUd6OUQsZ0JBQ3hELE1BQ01rK0QsRUFEU2wrRCxJQUNhdVgsYUFBYSxnQkFBZ0IsR0FFekQsT0FBT3JNLElBQUFBLGNBQUNnekQsRUFBWSxLQUFHLElDR3pCLEdBUG9CVCxpQ0FBZ0MsRUFBR3o5RCxnQkFDckQsTUFDTW0rRCxFQURTbitELElBQ1V1WCxhQUFhLGFBQWEsR0FFbkQsT0FBT3JNLElBQUFBLGNBQUNpekQsRUFBUyxLQUFHLElDU1RDLGNBQWdCQSxDQUMzQnBoRSxHQUNFNnRCLGtCQUFpQkQsdUJBR25CLElBQUs1dEIsR0FBUXkwQixXQUFZLE1BQU8sQ0FBQyxFQUVqQyxNQUNNNHNDLEVBRGExa0UsT0FBTzZFLFFBQVF4QixFQUFPeTBCLFlBQ0g5MUIsUUFBTyxFQUFFLENBQUVwQixTQUNSLElBQXBCQSxHQUFPdWdDLFdBSVJqUSxRQUh1QixJQUFyQnR3QixHQUFPd2dDLFlBRzRCblEsS0FJekQsT0FBT2p4QixPQUFPa2tFLFlBQVlRLEVBQW1CLEVBR2xDQyxzQkFBeUJDLElBQ3BDLEdBQXdCLG1CQUFiQSxFQUNULE9BQU8sS0FHVCxNQUFNQyxFQUEyQkQsSUFFakMsTUFBTyxJQUFNLElBQ1JDLEVBQ0gsZ0JBQ0EsTUFDQSxlQUNBLFVBRUEsUUFDRCxFQy9DR3h6QyxHQUFleXlDLGlDQUNuQixFQUFHejlELGVBQWNnVyxNQUNmLE1BQU1wTixFQUFTNUksS0FDVCxhQUFFdVgsRUFBWSxHQUFFbFksRUFBRSxXQUFFeUwsR0FBZWxDLEVBQ25DQyxFQUFVaUMsSUFFVmdoQixFQUFRdlUsRUFBYSxjQUNyQmtuRCxFQUE4QmxuRCxFQUNsQyxxQ0F1QkYsT0FuQkF5VCxHQUFhMHpDLDZCQUErQkQsRUFDMUMzeUMsRUFDQSxDQUNFNE8sT0FBUSxDQUNOaWtDLGVBQWdCLGlEQUNoQkMsc0JBQXVCLzFELEVBQVFraUIsd0JBQy9CRixnQkFBaUI3VSxFQUFNNlUsZ0JBQ3ZCRCxpQkFBa0I1VSxFQUFNNFUsa0JBRTFCdnJCLEdBQUksQ0FDRisrRCxjQUFlLytELEVBQUdxOUQsaUJBQWlCMEIsY0FDbkNTLGFBQWN4L0QsRUFBR3E5RCxpQkFBaUJtQyxhQUNsQ0Msa0JBQW1CUixzQkFDakJqL0QsRUFBR3E5RCxpQkFBaUJvQyxzQkFNckI1ekQsSUFBQUEsY0FBQzhmLEdBQWEwekMsMkJBQStCMW9ELEVBQVMsSUFJakUsTUNuQ00rb0QsR0FBZ0J0QixpQ0FBZ0MsRUFBR3o5RCxnQkFDdkQsTUFBTSxhQUFFdVgsRUFBWSxHQUFFbFksRUFBRSxXQUFFeUwsR0FBZTlLLElBQ25DNkksRUFBVWlDLElBRWhCLEdBQUlpMEQsR0FBY0MsNEJBQ2hCLE9BQU85ekQsSUFBQUEsY0FBQzZ6RCxHQUFjQyw0QkFBMkIsTUFHbkQsTUFBTXp3QyxFQUFTaFgsRUFBYSxlQUFlLEdBQ3JDa25ELEVBQThCbG5ELEVBQ2xDLHFDQXVCRixPQW5CQXduRCxHQUFjQyw4QkFBZ0NQLEVBQzVDbHdDLEVBQ0EsQ0FDRW1NLE9BQVEsQ0FDTmlrQyxlQUFnQixpREFDaEJDLHNCQUF1Qi8xRCxFQUFRbW1CLHlCQUEyQixFQUMxRG5FLGlCQUFpQixFQUNqQkQsa0JBQWtCLEdBRXBCdnJCLEdBQUksQ0FDRisrRCxjQUFlLytELEVBQUdxOUQsaUJBQWlCMEIsY0FDbkNTLGFBQWN4L0QsRUFBR3E5RCxpQkFBaUJtQyxhQUNsQ0Msa0JBQW1CUixzQkFDakJqL0QsRUFBR3E5RCxpQkFBaUJvQyxzQkFNckI1ekQsSUFBQUEsY0FBQzZ6RCxHQUFjQyw0QkFBMkIsS0FBRyxJQUd0REQsR0FBY0MsNEJBQThCLEtBRTVDLFlDL0JBLHNDQVZtQ0MsQ0FBQ3h0QixFQUFVN29DLElBQVlvTixJQUN4RCxNQUFNNDZDLEVBQVVob0QsRUFBTzhKLGNBQWNrK0MsVUFFL0JzTyxFQUEyQnQyRCxFQUFPMk8sYUFDdEMsNEJBR0YsT0FBT3JNLElBQUFBLGNBQUNnMEQsRUFBd0IzL0MsS0FBQSxDQUFDcXhDLFFBQVNBLEdBQWE1NkMsR0FBUyxFQ0w1RDIrQixHQUFXOG9CLGlDQUNmLEVBQUdDLGtCQUFtQjVnRCxLQUFROUcsTUFDNUIsTUFBTSxhQUFFdUIsRUFBWSxPQUFFdmEsRUFBTSxLQUFFNkksR0FBU21RLEVBQ2pDb25ELEVBQWdCN2xELEVBQWEsaUJBQWlCLEdBR3BELE1BQWEsY0FGQXZhLEVBQU9sRCxJQUFJLFFBR2ZvUixJQUFBQSxjQUFDa3lELEVBQWEsQ0FBQ3BnRSxPQUFRQSxFQUFRNkksS0FBTUEsSUFHdkNxRixJQUFBQSxjQUFDNFIsRUFBUTlHLEVBQVMsSUFJN0IsTUNMQSxHQVRxQnluRCxpQ0FDbkIsRUFBR3o5RCxlQUFjZ1csTUFDZixNQUNNbXBELEVBRFNuL0QsSUFDV3VYLGFBQWEsY0FBYyxHQUVyRCxPQUFPck0sSUFBQUEsY0FBQ2kwRCxFQUFlbnBELEVBQVMsSUNIOUIzWCxJQUFNMEksRUFBQUEsRUFBQUEsT0FFQzZwRCxJQUFVMTdDLEVBQUFBLEdBQUFBLGlCQUNyQixDQUFDeE0sRUFBT0UsSUFBV0EsRUFBTzhKLGNBQWN5RixZQUN4Q2luRCxTQUdXQyxtQkFBV0EsSUFBT3oyRCxJQUM3QixNQUFNeTJELEVBQVd6MkQsRUFBTzhKLGNBQWN5RixXQUFXcmUsSUFBSSxZQUNyRCxPQUFPaU4sRUFBQUEsSUFBSWhLLE1BQU1zaUUsR0FBWUEsRUFBV2hoRSxFQUFHLEVBUWhDcThELElBQTJCeGxELEVBQUFBLEdBQUFBLGdCQUN0QyxDQUNFLENBQUN4TSxFQUFPRSxJQUFXQSxFQUFPOEosY0FBYzJzRCxXQUN4QyxDQUFDMzJELEVBQU9FLElBQVdBLEVBQU84SixjQUFjb3VCLHdCQUN4QyxDQUFDcDRCLEVBQU9FLElBQVdBLEVBQU84SixjQUFjNmMsb0JBQW9CLENBQUMsZUFFL0QsQ0FBQzh2QyxFQUFVditCLElBQ1R1K0IsRUFDRzEvRCxRQUFPLENBQUNrMUQsRUFBZUksRUFBVTJGLEtBQ2hDLElBQUs3ekQsRUFBQUEsSUFBSWhLLE1BQU1rNEQsR0FBVyxPQUFPSixFQUVqQyxNQUFNTSxFQUFxQkYsRUFDeEJ4Z0QsV0FDQTlZLFFBQU8sRUFBRWxDLEtBQVNxbkMsRUFBc0IxakMsU0FBUzNELEtBQ2pENEUsS0FBSSxFQUFFbUgsRUFBUStRLE1BQWUsQ0FDNUJBLFdBQVd4UCxFQUFBQSxFQUFBQSxLQUFJLENBQUV3UCxjQUNqQi9RLFNBQ0E4USxLQUFNc2tELEVBQ041eEMsU0FBVSxDQUFDLFdBQVk0eEMsRUFBY3AxRCxPQUd6QyxPQUFPcXZELEVBQWMvbEQsT0FBT3FtRCxFQUFtQixJQUM5QzcvQyxFQUFBQSxFQUFBQSxTQUNGOC9DLFNBQVNDLEdBQWlCQSxFQUFhLytDLE9BQ3ZDalksS0FBSzJpQyxHQUFlQSxFQUFXbDlCLFlBQy9CbVosYUFHTTJ3QyxrQkFBVUEsSUFBT2hsRCxJQUM1QixNQUFNZ2xELEVBQVVobEQsRUFBTzhKLGNBQWNzUCxPQUFPbG9CLElBQUksV0FDaEQsT0FBT2lOLEVBQUFBLElBQUloSyxNQUFNNndELEdBQVdBLEVBQVV2dkQsRUFBRyxFQUc5Qnc4RCx1QkFBeUJBLElBQU9qeUQsR0FDcENBLEVBQU84SixjQUFjazdDLFVBQVU5ekQsSUFBSSxPQUFRLFdBR3ZDd2xFLHNCQUF3QkEsSUFBTzEyRCxHQUNuQ0EsRUFBTzhKLGNBQWNrN0MsVUFBVTl6RCxJQUFJLE9BRy9CZ2hFLElBQW1CNWxELEVBQUFBLEdBQUFBLGdCQUM5QixDQUNFLENBQUN4TSxFQUFPRSxJQUFXQSxFQUFPOEosY0FBY1gsTUFDeEMsQ0FBQ3JKLEVBQU9FLElBQVdBLEVBQU82SixjQUFjTyxpQkFDeEMsQ0FBQ3RLLEVBQU9FLElBQVdBLEVBQU84SixjQUFjNHNELDBCQUUxQyxDQUFDdnZDLEVBQVMvYyxFQUFnQmpCLEtBQ3hCLEdBQUlBLEVBQ0YsT0FBT3FlLGFBQWFyZSxFQUFLZ2UsRUFBUyxDQUFFL2Msa0JBR3RCLElBSVB1c0QsNkJBQStCQSxJQUFPMzJELEdBQzFDQSxFQUFPOEosY0FBY2s3QyxVQUFVOXpELElBQUksY0FHL0IyaEUsa0JBQVVBLElBQU83eUQsSUFDNUIsTUFBTTZ5RCxFQUFVN3lELEVBQU84SixjQUFjc1AsT0FBT2xvQixJQUFJLFdBQ2hELE9BQU9pTixFQUFBQSxJQUFJaEssTUFBTTArRCxHQUFXQSxFQUFVcDlELEVBQUcsRUFHOUIwOEQsdUJBQXlCQSxJQUFPbnlELEdBQ3BDQSxFQUFPOEosY0FBYytvRCxVQUFVM2hFLElBQUksT0FBUSxpQkFHdkNtaEUsd0JBQTBCQSxJQUFPcnlELEdBQ3JDQSxFQUFPOEosY0FBYytvRCxVQUFVM2hFLElBQUksU0FHL0IwbEUsc0JBQXdCQSxJQUFPNTJELEdBQ25DQSxFQUFPOEosY0FBYytvRCxVQUFVM2hFLElBQUksT0FHL0JraEUsSUFBbUI5bEQsRUFBQUEsR0FBQUEsZ0JBQzlCLENBQ0UsQ0FBQ3hNLEVBQU9FLElBQVdBLEVBQU84SixjQUFjWCxNQUN4QyxDQUFDckosRUFBT0UsSUFBV0EsRUFBTzZKLGNBQWNPLGlCQUN4QyxDQUFDdEssRUFBT0UsSUFBV0EsRUFBTzhKLGNBQWM4c0QsMEJBRTFDLENBQUN6dkMsRUFBUy9jLEVBQWdCakIsS0FDeEIsR0FBSUEsRUFDRixPQUFPcWUsYUFBYXJlLEVBQUtnZSxFQUFTLENBQUUvYyxrQkFHdEIsSUFJUG9vRCxxQkFBdUJBLElBQU94eUQsR0FDbENBLEVBQU84SixjQUFjc1AsT0FBT2xvQixJQUFJLFNBRzVCb2hFLHVCQUF5QkEsSUFBT3R5RCxHQUNwQ0EsRUFBTzhKLGNBQWNzUCxPQUFPbG9CLElBQUksV0FHNUJxaEUsMkJBQTZCQSxJQUFPdnlELEdBQ3hDQSxFQUFPOEosY0FBY3NQLE9BQU9sb0IsSUFBSSxlQUc1QjJsRSw4QkFBZ0NBLElBQU83MkQsR0FDM0NBLEVBQU84SixjQUFjc1AsT0FBT2xvQixJQUFJLGtCQUc1QnVoRSxJQUE4Qm5tRCxFQUFBQSxHQUFBQSxnQkFDekMsQ0FDRSxDQUFDeE0sRUFBT0UsSUFBV0EsRUFBTzhKLGNBQWNYLE1BQ3hDLENBQUNySixFQUFPRSxJQUFXQSxFQUFPNkosY0FBY08saUJBQ3hDLENBQUN0SyxFQUFPRSxJQUFXQSxFQUFPOEosY0FBYytzRCxrQ0FFMUMsQ0FBQzF2QyxFQUFTL2MsRUFBZ0Iwc0QsS0FDeEIsR0FBSUEsRUFDRixPQUFPdHZDLGFBQWFzdkMsRUFBZ0IzdkMsRUFBUyxDQUFFL2Msa0JBR2pDLElBSVB3b0QsbUNBQXFDQSxJQUFPNXlELEdBQ2hEQSxFQUFPOEosY0FBYyt0QixlQUFlM21DLElBQUksZUFHcEM2bEUsMkJBQTZCQSxJQUFPLzJELEdBQ3hDQSxFQUFPOEosY0FBYyt0QixlQUFlM21DLElBQUksT0FHcEN3aEUsSUFBd0JwbUQsRUFBQUEsR0FBQUEsZ0JBQ25DLENBQ0UsQ0FBQ3hNLEVBQU9FLElBQVdBLEVBQU84SixjQUFjWCxNQUN4QyxDQUFDckosRUFBT0UsSUFBV0EsRUFBTzZKLGNBQWNPLGlCQUN4QyxDQUFDdEssRUFBT0UsSUFBV0EsRUFBTzhKLGNBQWNpdEQsK0JBRTFDLENBQUM1dkMsRUFBUy9jLEVBQWdCakIsS0FDeEIsR0FBSUEsRUFDRixPQUFPcWUsYUFBYXJlLEVBQUtnZSxFQUFTLENBQUUvYyxrQkFHdEIsSUFJUDRvRCw2QkFBK0JBLElBQU9oekQsR0FDMUNBLEVBQU84SixjQUFjeUYsV0FBV3JlLElBQUkscUJBR2hDZ2lFLCtCQUFpQ0EsSUFDNUMsaURBRVdNLElBQWdCbG5ELEVBQUFBLEdBQUFBLGlCQUMzQixDQUFDeE0sRUFBT0UsSUFBV0EsRUFBTzhKLGNBQWMwQyxnQkFDeEMsQ0FBQzFNLEVBQU9FLElBQ05BLEVBQU84SixjQUFjNmMsb0JBQW9CLENBQUMsYUFBYyxjQUUxRCxDQUFDcXdDLEVBQVlDLElBQ045NEQsRUFBQUEsSUFBSWhLLE1BQU02aUUsR0FDVjc0RCxFQUFBQSxJQUFJaEssTUFBTThpRSxHQUVSbG1FLE9BQU82RSxRQUFRb2hFLEVBQVcvaEUsUUFBUThCLFFBQ3ZDLENBQUNpTixHQUFNMG1ELEVBQVk3akMsTUFDakIsTUFBTWlsQyxFQUFpQm1MLEVBQWdCL2xFLElBQUl3NUQsR0FFM0MsT0FEQTFtRCxFQUFJMG1ELEdBQWNvQixHQUFnQjcyRCxRQUFVNHhCLEVBQ3JDN2lCLENBQUcsR0FFWixDQUFDLEdBUnFDZ3pELEVBQVcvaEUsT0FEaEIsQ0FBQyxJQ25MM0JmLHNCQUNYQSxDQUFDMmtCLEVBQWE3WSxJQUNkLENBQUNGLEtBQVVvRSxJQUNPbEUsRUFBTzhKLGNBQWNrK0MsV0FDbkJudkMsS0FBZTNVLEdBR3hCZ3VELEdBQW1CeUMsZ0NBQzlCLElBQU0sQ0FBQzk3QyxFQUFhN1ksSUFDWEEsRUFBT2szRCxlQUFlaEYscUJDVHBCM2xELEdBQXlCb29ELGdDQUNwQyxJQUFNLENBQUM5N0MsRUFBYTdZLEtBQ2xCLE1BQU13TSxFQUFjeE0sRUFBTzhKLGNBQWMyQyxzQkFDekMsSUFBSW5TLEVBQU91ZSxJQUVYLE9BQUtyTSxHQUVMQSxFQUFZWCxXQUFXdFMsU0FBUSxFQUFFd3hELEVBQVNuNkQsTUFDeEMsTUFBTXlCLEVBQU96QixHQUFZTSxJQUFJLFFBRWhCLGNBQVRtQixJQUNGaUksRUFBT0EsRUFBSzNCLEtBQ1YsSUFBSXdGLEVBQUFBLElBQUksQ0FDTixDQUFDNHNELEdBQVVuNkQsS0FHakIsSUFHSzBKLEdBZGtCQSxDQWNkLElDbEJGNDNELElBQW1CNWxELEVBQUFBLEdBQUFBLGdCQUM5QixDQUNFLENBQUN4TSxFQUFPRSxJQUFXQSxFQUFPOEosY0FBY1gsTUFDeEMsQ0FBQ3JKLEVBQU9FLElBQVdBLEVBQU82SixjQUFjTyxpQkFDeEMsQ0FBQ3RLLEVBQU9FLElBQVdBLEVBQU84SixjQUFjNHNELHdCQUN4QyxDQUFDNTJELEVBQU9FLElBQVdBLEVBQU84SixjQUFjNnNELGlDQUUxQyxDQUFDeHZDLEVBQVMvYyxFQUFnQmpCLEVBQUtvcUQsSUFDekJwcUQsRUFDS3FlLGFBQWFyZSxFQUFLZ2UsRUFBUyxDQUFFL2MsbUJBR2xDbXBELEVBQ0ssNkJBQTZCQSxjQUR0QyxJQ1FKLGlCQXJCZ0J6bUIsRUFBRzE0QyxTQUFRZ0QsZ0JBQ3pCLE1BQU0sR0FBRVgsRUFBRSxhQUFFa1ksR0FBaUJ2WCxLQUN2QixXQUFFKy9ELEdBQWUxZ0UsRUFBR3E5RCxpQkFBaUJDLFFBQ3JDcUQsRUFBYXpvRCxFQUFhLDhCQUVoQyxPQUFLd29ELEVBQVcvaUUsRUFBUSxXQUd0QmtPLElBQUFBLGNBQUM4MEQsRUFBVSxDQUNUbjZELEtBQUssVUFDTHRMLE1BQU95QyxFQUFPOHNCLFFBQ2QzSyxVQUFVLHFFQU42QixJQU92QyxFQytJTixhQXpKWThnRCxFQUFHampFLFNBQVFnRCxnQkFDckIsTUFBTTh5QixFQUFNOTFCLEdBQVE4MUIsS0FBTyxDQUFDLEdBQ3RCLEdBQUV6ekIsRUFBRSxhQUFFa1ksRUFBWSxXQUFFek0sR0FBZTlLLEtBQ25DLGVBQUVzeEIsR0FBbUJ4bUIsS0FDckIsYUFBRW8xRCxFQUFZLGNBQUVDLEVBQWEsUUFBRUMsRUFBTyxTQUFFQyxHQUFhaGhFLEVBQUdxOUQsa0JBRXhELEtBQUVwbUQsR0FBUzhwRCxFQURDLFFBRVosV0FBRW42QyxFQUFVLFlBQUVxNkMsRUFBVyxhQUFFQyxHQUFpQkosRUFGaEMsUUFHWDN2RCxFQUFPZ3dELEdBQWFILElBQ3JCOXVDLEVBQWFELEVBQWlCMXFCLGNBQWNrc0IsR0FBTyxHQUNuRCtyQyxLQUNKL3JDLEVBQUlqdEIsTUFDSml0QixFQUFJNW1CLFdBQ0o0bUIsRUFBSTBJLFFBQ0pqSyxFQUFXdHlCLE9BQVMsR0FFaEJ3aEUsRUFBWVAsRUFBYSxhQUN6QlEsRUFBbUJSLEVBQWEsb0JBQ2hDUyxFQUFzQnBwRCxFQUFhLHVCQUNuQ3FwRCxFQUF3QnJwRCxFQUFhLDhCQUFiQSxHQUN4QnNwRCxFQUF5QnRwRCxFQUFhLCtCQUFiQSxHQUt6QnVwRCxHQUFrQnQyQyxFQUFBQSxFQUFBQSxjQUFZLEtBQzlCdkUsRUFDRnM2QyxJQUVBRCxHQUNGLEdBQ0MsQ0FBQ3I2QyxFQUFZcTZDLEVBQWFDLElBQ3ZCUSxHQUFzQnYyQyxFQUFBQSxFQUFBQSxjQUMxQixDQUFDbHVCLEVBQUcwa0UsS0FDRUEsRUFDRlYsRUFBWSxDQUFFVyxNQUFNLElBRXBCVixFQUFhLENBQUVVLE1BQU0sR0FDdkIsR0FFRixDQUFDWCxFQUFhQyxJQU1oQixPQUFnQyxJQUE1QjVtRSxPQUFPK0YsS0FBS296QixHQUFLN3pCLE9BQ1osS0FJUGlNLElBQUFBLGNBQUMwMUQsRUFBc0I1eUIsU0FBUSxDQUFDenpDLE1BQU8rYixHQUNyQ3BMLElBQUFBLGNBQUMyMUQsRUFBdUI3eUIsU0FBUSxDQUFDenpDLE1BQU9pbUUsR0FDdEN0MUQsSUFBQUEsY0FBQSxPQUNFaVUsVUFBVSwrREFDVix5QkFBd0IzTyxHQUV2QnF1RCxFQUNDM3pELElBQUFBLGNBQUFBLElBQUFBLFNBQUEsS0FDRUEsSUFBQUEsY0FBQ3UxRCxFQUFTLENBQUM1M0MsU0FBVTVDLEVBQVlzTixTQUFVdXRDLEdBQ3pDNTFELElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsa0ZBQWlGLFFBSW5HalUsSUFBQUEsY0FBQ3cxRCxFQUFnQixDQUNmNzNDLFNBQVU1QyxFQUNWMEIsUUFBU281QyxLQUliNzFELElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsa0ZBQWlGLFFBSWhGLElBQWxCMlQsRUFBSXlKLFdBQ0hyeEIsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSx3RUFBdUUsY0FJeEUsSUFBaEIyVCxFQUFJb0ssU0FDSGh5QixJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLHdFQUF1RSxXQUl6RmpVLElBQUFBLGNBQUEsVUFBUWlVLFVBQVUsMEVBQXlFLFVBRzNGalUsSUFBQUEsY0FBQSxNQUNFaVUsVUFBVzZJLEtBQVcsd0NBQXlDLENBQzdELG9EQUFxRC9CLEtBR3REQSxHQUNDL2EsSUFBQUEsY0FBQUEsSUFBQUEsU0FBQSxLQUNHNG5CLEVBQUlqdEIsTUFDSHFGLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsZ0NBQ1pqVSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLDJEQUNialUsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxrRkFBaUYsUUFHakdqVSxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLG9GQUNiMlQsRUFBSWp0QixRQU1aaXRCLEVBQUk1bUIsV0FDSGhCLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsZ0NBQ1pqVSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLCtCQUNialUsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxrRkFBaUYsYUFHakdqVSxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLG9GQUNiMlQsRUFBSTVtQixhQU1aNG1CLEVBQUkwSSxRQUNIdHdCLElBQUFBLGNBQUEsTUFBSWlVLFVBQVUsZ0NBQ1pqVSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLCtCQUNialUsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxrRkFBaUYsVUFHakdqVSxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLG9GQUNiMlQsRUFBSTBJLFdBT2hCakssRUFBV3R5QixPQUFTLEdBQ25CaU0sSUFBQUEsY0FBQ3kxRCxFQUFtQixDQUNsQk8sZUFBZ0JwdUMsRUFDaEJxdUMsa0JBQW1CNXZDLEVBQ25CdnhCLFVBQVdBLE9BTVUsRUN6SHJDLG1DQXpCNkJvaEUsRUFBR3prQyxvQkFDOUIsTUFBTUMsRUFBVUQsR0FBZUMsU0FBVyxDQUFDLEVBRTNDLE9BQW9DLElBQWhDampDLE9BQU8rRixLQUFLazlCLEdBQVMzOUIsT0FDaEIsS0FHRnRGLE9BQU82RSxRQUFRbytCLEdBQVN2K0IsS0FBSSxFQUFFNUUsRUFBS2MsS0FDeEMyUSxJQUFBQSxjQUFBLE9BQUt6UixJQUFLLEdBQUdBLEtBQU9jLElBQVM0a0IsVUFBVSwrQkFDckNqVSxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGtGQUNiMWxCLEdBRUh5UixJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLG9GQUNiNWtCLEtBR0wsRUMrRkosNEJBM0dzQjhtRSxFQUFHcmtFLFNBQVFnRCxnQkFDL0IsTUFBTTI4QixFQUFnQjMvQixHQUFRMi9CLGVBQWlCLENBQUMsR0FDMUMsR0FBRXQ5QixFQUFFLGFBQUVrWSxFQUFZLFdBQUV6TSxHQUFlOUssS0FDbkMsZUFBRXN4QixHQUFtQnhtQixLQUNyQixhQUFFbzFELEVBQVksY0FBRUMsRUFBYSxRQUFFQyxFQUFPLFNBQUVDLEdBQWFoaEUsRUFBR3E5RCxpQkFDeEQ0RSxFQUFZLGlCQUNaLEtBQUVockQsR0FBUzhwRCxFQUFRa0IsSUFDbkIsV0FBRXI3QyxFQUFVLFlBQUVxNkMsRUFBVyxhQUFFQyxHQUFpQkosRUFBY21CLElBQ3pEOXdELEVBQU9nd0QsR0FBYUgsSUFDckI5dUMsRUFBYUQsRUFBaUIxcUIsY0FBYysxQixHQUFpQixHQUM3RGtpQyxLQUFrQmxpQyxFQUFjQyxTQUFXckwsRUFBV3R5QixPQUFTLEdBQy9Ed2hFLEVBQVlQLEVBQWEsYUFDekJRLEVBQW1CUixFQUFhLG9CQUNoQ1MsRUFBc0JwcEQsRUFBYSx1QkFDbkNxcEQsRUFBd0JycEQsRUFBYSw4QkFBYkEsR0FDeEJzcEQsRUFBeUJ0cEQsRUFBYSwrQkFBYkEsR0FLekJ1cEQsR0FBa0J0MkMsRUFBQUEsRUFBQUEsY0FBWSxLQUM5QnZFLEVBQ0ZzNkMsSUFFQUQsR0FDRixHQUNDLENBQUNyNkMsRUFBWXE2QyxFQUFhQyxJQUN2QlEsR0FBc0J2MkMsRUFBQUEsRUFBQUEsY0FDMUIsQ0FBQ2x1QixFQUFHMGtFLEtBQ0VBLEVBQ0ZWLEVBQVksQ0FBRVcsTUFBTSxJQUVwQlYsRUFBYSxDQUFFVSxNQUFNLEdBQ3ZCLEdBRUYsQ0FBQ1gsRUFBYUMsSUFNaEIsT0FBMEMsSUFBdEM1bUUsT0FBTytGLEtBQUtpOUIsR0FBZTE5QixPQUN0QixLQUlQaU0sSUFBQUEsY0FBQzAxRCxFQUFzQjV5QixTQUFRLENBQUN6ekMsTUFBTytiLEdBQ3JDcEwsSUFBQUEsY0FBQzIxRCxFQUF1Qjd5QixTQUFRLENBQUN6ekMsTUFBT2ltRSxHQUN0Q3QxRCxJQUFBQSxjQUFBLE9BQ0VpVSxVQUFVLHlFQUNWLHlCQUF3QjNPLEdBRXZCcXVELEVBQ0MzekQsSUFBQUEsY0FBQUEsSUFBQUEsU0FBQSxLQUNFQSxJQUFBQSxjQUFDdTFELEVBQVMsQ0FBQzUzQyxTQUFVNUMsRUFBWXNOLFNBQVV1dEMsR0FDekM1MUQsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxrRkFBaUYsa0JBSW5HalUsSUFBQUEsY0FBQ3cxRCxFQUFnQixDQUNmNzNDLFNBQVU1QyxFQUNWMEIsUUFBU281QyxLQUliNzFELElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsa0ZBQWlGLGlCQUtsR3dkLEVBQWNFLGNBQ2IzeEIsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSx3RUFDYndkLEVBQWNFLGNBR25CM3hCLElBQUFBLGNBQUEsVUFBUWlVLFVBQVUsMEVBQXlFLFVBRzNGalUsSUFBQUEsY0FBQSxNQUNFaVUsVUFBVzZJLEtBQVcsd0NBQXlDLENBQzdELG9EQUFxRC9CLEtBR3REQSxHQUNDL2EsSUFBQUEsY0FBQSxNQUFJaVUsVUFBVSxnQ0FDWmpVLElBQUFBLGNBQUNrMkQsbUNBQW9CLENBQUN6a0MsY0FBZUEsS0FHeENwTCxFQUFXdHlCLE9BQVMsR0FDbkJpTSxJQUFBQSxjQUFDeTFELEVBQW1CLENBQ2xCTyxlQUFnQnZrQyxFQUNoQndrQyxrQkFBbUI1dkMsRUFDbkJ2eEIsVUFBV0EsT0FNVSxFQzVFckMsMkJBMUIwQnVoRSxFQUN4QkwsaUJBQ0FsaEUsWUFDQW1oRSx3QkFFQSxNQUFNLEdBQUU5aEUsR0FBT1csS0FDVCxhQUFFa2dFLEdBQWlCN2dFLEVBQUdxOUQsaUJBRXRCc0QsRUFBYUUsRUFBYSxjQUNoQyxPQUFPaUIsRUFBa0I5aUUsS0FBS21qRSxHQUM1QnQyRCxJQUFBQSxjQUFDODBELEVBQVUsQ0FDVHZtRSxJQUFLK25FLEVBQ0wzN0QsS0FBTTI3RCxFQUNOam5FLE1BQU8ybUUsRUFBZU0sR0FDdEJyaUQsVUFBVSx1REFFWixFQ3dISixzQkFwSXFCc2lELEVBQUd6a0UsU0FBUWdELGdCQUM5QixNQUFNeWdDLEVBQWV6akMsR0FBUXlqQyxjQUFnQixDQUFDLEdBQ3hDLEdBQUVwaEMsRUFBRSxhQUFFa1ksRUFBWSxXQUFFek0sR0FBZTlLLEtBQ25DLGVBQUVzeEIsR0FBbUJ4bUIsS0FDckIsYUFBRW8xRCxFQUFZLGNBQUVDLEVBQWEsUUFBRUMsRUFBTyxTQUFFQyxHQUFhaGhFLEVBQUdxOUQsaUJBQ3hENEUsRUFBWSxnQkFDWixLQUFFaHJELEdBQVM4cEQsRUFBUWtCLElBQ25CLFdBQUVyN0MsRUFBVSxZQUFFcTZDLEVBQVcsYUFBRUMsR0FBaUJKLEVBQWNtQixJQUN6RDl3RCxFQUFPZ3dELEdBQWFILElBQ3JCOXVDLEVBQWFELEVBQWlCMXFCLGNBQWM2NUIsR0FBZ0IsR0FDNURvK0IsS0FDSnArQixFQUFhalAsYUFDYmlQLEVBQWExdUIsS0FDYndmLEVBQVd0eUIsT0FBUyxHQUVoQndoRSxFQUFZUCxFQUFhLGFBQ3pCUSxFQUFtQlIsRUFBYSxvQkFDaEN3QixFQUFxQm5xRCxFQUFhLHNDQUNsQzBhLEVBQU8xYSxFQUFhLFFBQ3BCb3BELEVBQXNCcHBELEVBQWEsdUJBQ25DcXBELEVBQXdCcnBELEVBQWEsOEJBQWJBLEdBQ3hCc3BELEVBQXlCdHBELEVBQWEsK0JBQWJBLEdBS3pCdXBELEdBQWtCdDJDLEVBQUFBLEVBQUFBLGNBQVksS0FDOUJ2RSxFQUNGczZDLElBRUFELEdBQ0YsR0FDQyxDQUFDcjZDLEVBQVlxNkMsRUFBYUMsSUFDdkJRLEdBQXNCdjJDLEVBQUFBLEVBQUFBLGNBQzFCLENBQUNsdUIsRUFBRzBrRSxLQUNFQSxFQUNGVixFQUFZLENBQUVXLE1BQU0sSUFFcEJWLEVBQWEsQ0FBRVUsTUFBTSxHQUN2QixHQUVGLENBQUNYLEVBQWFDLElBTWhCLE9BQXlDLElBQXJDNW1FLE9BQU8rRixLQUFLK2dDLEdBQWN4aEMsT0FDckIsS0FJUGlNLElBQUFBLGNBQUMwMUQsRUFBc0I1eUIsU0FBUSxDQUFDenpDLE1BQU8rYixHQUNyQ3BMLElBQUFBLGNBQUMyMUQsRUFBdUI3eUIsU0FBUSxDQUFDenpDLE1BQU9pbUUsR0FDdEN0MUQsSUFBQUEsY0FBQSxPQUNFaVUsVUFBVSx3RUFDVix5QkFBd0IzTyxHQUV2QnF1RCxFQUNDM3pELElBQUFBLGNBQUFBLElBQUFBLFNBQUEsS0FDRUEsSUFBQUEsY0FBQ3UxRCxFQUFTLENBQUM1M0MsU0FBVTVDLEVBQVlzTixTQUFVdXRDLEdBQ3pDNTFELElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsa0ZBQWlGLDJCQUluR2pVLElBQUFBLGNBQUN3MUQsRUFBZ0IsQ0FDZjczQyxTQUFVNUMsRUFDVjBCLFFBQVNvNUMsS0FJYjcxRCxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGtGQUFpRiwwQkFJbkdqVSxJQUFBQSxjQUFBLFVBQVFpVSxVQUFVLDBFQUF5RSxVQUczRmpVLElBQUFBLGNBQUEsTUFDRWlVLFVBQVc2SSxLQUFXLHdDQUF5QyxDQUM3RCxvREFBcUQvQixLQUd0REEsR0FDQy9hLElBQUFBLGNBQUFBLElBQUFBLFNBQUEsS0FDR3UxQixFQUFhalAsYUFDWnRtQixJQUFBQSxjQUFBLE1BQUlpVSxVQUFVLGdDQUNaalUsSUFBQUEsY0FBQ3cyRCxFQUFrQixDQUNqQjFrRSxPQUFReWpDLEVBQ1J6Z0MsVUFBV0EsS0FLaEJ5Z0MsRUFBYTF1QixLQUNaN0csSUFBQUEsY0FBQSxNQUFJaVUsVUFBVSxnQ0FDWmpVLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsMkRBQ2JqVSxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGtGQUFpRixPQUdqR2pVLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsb0ZBQ2RqVSxJQUFBQSxjQUFDK21CLEVBQUksQ0FDSHpnQixPQUFPLFNBQ1AyZSxLQUFNSSxZQUFZa1EsRUFBYTF1QixNQUU5QjB1QixFQUFhMXVCLFNBUTNCd2YsRUFBV3R5QixPQUFTLEdBQ25CaU0sSUFBQUEsY0FBQ3kxRCxFQUFtQixDQUNsQk8sZUFBZ0J6Z0MsRUFDaEIwZ0Msa0JBQW1CNXZDLEVBQ25CdnhCLFVBQVdBLE9BTVUsRUMzR3JDLHFCQXBCb0IyaEUsRUFBRzNrRSxTQUFRZ0QsZ0JBQzdCLElBQUtoRCxHQUFRdzBCLFlBQWEsT0FBTyxLQUVqQyxNQUFNLGFBQUVqYSxHQUFpQnZYLElBQ25CNGhFLEVBQVdycUQsRUFBYSxZQUU5QixPQUNFck0sSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSx3RUFDYmpVLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsOEZBQ2JqVSxJQUFBQSxjQUFDMDJELEVBQVEsQ0FBQ3J4RCxPQUFRdlQsRUFBT3cwQixlQUV2QixFQ1RWLEdBRjJCaXNDLGdDQUFnQ29FLHNCQ0FyREMsR0FBa0JyRSxpQ0FDdEIsRUFBR3pnRSxTQUFRZ0QsWUFBVzA5RCxrQkFBbUJxRSxNQUN2QyxNQUFNLGFBQUV4cUQsR0FBaUJ2WCxJQUNuQmdpRSxFQUF1QnpxRCxFQUMzQix3Q0FFSTBxRCxFQUFhMXFELEVBQWEsOEJBQzFCMnFELEVBQWlCM3FELEVBQWEsa0NBQzlCNHFELEVBQXNCNXFELEVBQzFCLHVDQUdGLE9BQ0VyTSxJQUFBQSxjQUFBQSxJQUFBQSxTQUFBLEtBQ0VBLElBQUFBLGNBQUM2MkQsRUFBZSxDQUFDL2tFLE9BQVFBLElBQ3pCa08sSUFBQUEsY0FBQzgyRCxFQUFvQixDQUFDaGxFLE9BQVFBLEVBQVFnRCxVQUFXQSxJQUNqRGtMLElBQUFBLGNBQUMrMkQsRUFBVSxDQUFDamxFLE9BQVFBLEVBQVFnRCxVQUFXQSxJQUN2Q2tMLElBQUFBLGNBQUNpM0QsRUFBbUIsQ0FBQ25sRSxPQUFRQSxFQUFRZ0QsVUFBV0EsSUFDaERrTCxJQUFBQSxjQUFDZzNELEVBQWMsQ0FBQ2xsRSxPQUFRQSxFQUFRZ0QsVUFBV0EsSUFDMUMsSUFLVCxNQzZCQSxvQkFwRG1Cb2lFLEVBQUdwbEUsU0FBUWdELGdCQUM1QixNQUFNLEdBQUVYLEVBQUUsYUFBRWtZLEdBQWlCdlgsS0FDdkIsYUFBRWtnRSxFQUFZLFFBQUVFLEdBQVkvZ0UsRUFBR3E5RCxrQkFDL0IscUJBQUUyRixFQUFvQixjQUFFakUsR0FBa0IvK0QsRUFBR3E5RCxpQkFBaUJDLFFBQzlEamlDLEVBQVNyN0IsRUFBR3E5RCxpQkFBaUI0RixZQUM3QjcwQyxFQUFXdHZCLE1BQU1DLFFBQVFwQixHQUFReXdCLFVBQVl6d0IsRUFBT3l3QixTQUFXLElBQy9ELEtBQUVuWCxHQUFTOHBELEVBQVEsY0FDbkJtQyxFQUFhckMsRUFBYSxjQUMxQlUsRUFBd0JycEQsRUFBYSw4QkFBYkEsR0FDeEJrYSxFQUFhMnNDLEVBQWNwaEUsRUFBUTA5QixHQUt6QyxPQUF1QyxJQUFuQy9nQyxPQUFPK0YsS0FBSyt4QixHQUFZeHlCLE9BQ25CLEtBSVBpTSxJQUFBQSxjQUFDMDFELEVBQXNCNXlCLFNBQVEsQ0FBQ3p6QyxNQUFPK2IsR0FDckNwTCxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLHVFQUNialUsSUFBQUEsY0FBQSxVQUNHdlIsT0FBTzZFLFFBQVFpekIsR0FBWXB6QixLQUFJLEVBQUV3K0IsRUFBYzJsQyxNQUM5QyxNQUFNbjFDLEVBQWFJLEVBQVNyd0IsU0FBU3kvQixHQUMvQjRsQyxFQUFvQkosRUFBcUJ4bEMsRUFBYzcvQixHQUU3RCxPQUNFa08sSUFBQUEsY0FBQSxNQUNFelIsSUFBS29qQyxFQUNMMWQsVUFBVzZJLEtBQVcsK0JBQWdDLENBQ3BELHlDQUEwQ3FGLEtBRzVDbmlCLElBQUFBLGNBQUNxM0QsRUFBVSxDQUNUMThELEtBQU1nM0IsRUFDTjcvQixPQUFRd2xFLEVBQ1JDLGtCQUFtQkEsSUFFbEIsTUFLa0IsRUMxQ3JDLEdBRjBCaEYsZ0NBQWdDaUYscUJDaUUxRCxTQTVEQSxTQUFTajBELDRCQUFVLEdBQUVwUCxFQUFFLFVBQUVXLElBRXZCLEdBQUlYLEVBQUdxOUQsaUJBQWtCLENBQ3ZCLE1BQU1tQyxFckJYc0I4RCxFQUFDcEUsRUFBVXYrRCxLQUN6QyxNQUFNLEdBQUVYLEdBQU9XLElBRWYsR0FBd0IsbUJBQWJ1K0QsRUFDVCxPQUFPLEtBR1QsTUFBTSxXQUFFd0IsR0FBZTFnRSxFQUFHcTlELGlCQUUxQixPQUFRMS9ELEdBQ051aEUsRUFBU3ZoRSxJQUNUK2lFLEVBQVcvaUUsRUFBUSxZQUNuQkEsR0FBUTgxQixLQUNSOTFCLEdBQVEyL0IsZUFDUjMvQixHQUFReWpDLFlBQVksRXFCSENraUMsQ0FDbkJ0akUsRUFBR3E5RCxpQkFBaUJtQyxhQUNwQjcrRCxHQUdGckcsT0FBT21HLE9BQU9uSCxLQUFLMEcsR0FBR3E5RCxpQkFBa0IsQ0FBRW1DLGVBQWNULGVBQzFELENBR0EsR0FBbUMsbUJBQXhCLytELEVBQUc2K0Isa0JBQW1DNytCLEVBQUdxOUQsaUJBQWtCLENBQ3BFLE1BQU1rRyxFQUFhakYsWUFDakIsQ0FDRXovQixpQkFBa0I3K0IsRUFBR3E5RCxpQkFBaUJ4K0IsaUJBQ3RDbEQsd0JBQXlCMzdCLEVBQUdxOUQsaUJBQWlCMWhDLHdCQUM3QzZDLGlCQUFrQngrQixFQUFHcTlELGlCQUFpQjcrQixpQkFDdENVLHlCQUEwQmwvQixFQUFHcTlELGlCQUFpQm4rQix5QkFDOUNELHlCQUEwQmovQixFQUFHcTlELGlCQUFpQnArQix5QkFDOUNXLG9CQUFxQjUvQixFQUFHcTlELGlCQUFpQno5QixvQkFDekNLLG9CQUFxQmpnQyxFQUFHcTlELGlCQUFpQnA5QixvQkFDekNELG1CQUFvQmhnQyxFQUFHcTlELGlCQUFpQnI5QixtQkFDeEN6SixnQkFBaUJ2MkIsRUFBR3E5RCxpQkFBaUI5bUMsZ0JBQ3JDNkUsZ0JBQWlCcDdCLEVBQUdxOUQsaUJBQWlCamlDLGdCQUNyQ3JFLHlCQUEyQnA1QixHQUN6QnFDLEVBQUdxOUQsaUJBQWlCNXdELFFBQVFsTyxjQUFjWixJQUM1Q2szQixvQkFBc0JsM0IsR0FDcEJxQyxFQUFHcTlELGlCQUFpQm1HLFNBQVNqbEUsY0FBY1osSUFBUy9CLE9BRXhEK0UsS0FHRnJHLE9BQU9tRyxPQUFPbkgsS0FBSzBHLEdBQUl1akUsRUFDekIsQ0FHQSxNQUFNenVDLEVDMUNnQ2dtQyxDQUFDbjZELEdBQ1ZtMEIsQ0FBQ24zQixFQUFReTRELEVBQVksUUFDaEQsTUFBTSxHQUFFcDJELEdBQU9XLElBYWYsR0FMa0NYLEVBQUdvN0QsMEJBQ25DejlELEVBQ0F5NEQsR0FJQSxPQUFPLEVBR1QsTUFBTTM5QixFQUFvQi93QixFQUFBQSxJQUFJaEssTUFBTUMsR0FFcEMsSUFBSzg2QixJQUFzQkMsS0FBYy82QixHQUN2QyxPQUFPLEVBR1QsTUFBTThsRSxFQUFtQmhyQyxFQUNyQjk2QixFQUFPbEQsSUFBSSxvQkFDWGtELEVBQU84bEUsaUJBQ0xDLEVBQWtCanJDLEVBQ3BCOTZCLEVBQU9sRCxJQUFJLG1CQUNYa0QsRUFBTytsRSxnQkFFWCxNQUMrQixpQkFBckJELEdBQXNELEtBQXJCQSxHQUNiLGlCQUFwQkMsR0FBb0QsS0FBcEJBLENBQXVCLEVEUXRDNUksQ0FBeUJuNkQsSUFDOUNtMEIscUJBQXNCNnVDLEdBQTZCckYsWUFDekQsQ0FDRXhwQyx3QkFFRm4wQixLQU1GLEdBSEFySCxLQUFLMEcsR0FBRzgwQixxQkFBdUI2dUMsRUFDL0JycUUsS0FBSzBHLEdBQUc0akUsMEJBQTRCOXVDLEVBRWhDOTBCLEVBQUdxOUQsaUJBQWtCLENBQ3ZCLE1BQU0sY0FBRTdrQyxHQUFrQjhsQyxZQUN4QixDQUNFOWxDLGNBQWV4NEIsRUFBR3E5RCxpQkFBaUI3a0MsZUFFckM3M0IsS0FHRnJILEtBQUswRyxHQUFHdzRCLGNBQWdCQSxDQUMxQixDQUNGLEVFZ0dBLE1BakdvQnFyQyxFQUFHN2pFLFNBQ3JCLE1BQU1tK0QsRUFBdUJuK0QsRUFBR20rRCxzQkFBd0IyRix3QkFDbEQ3RixFQUEwQmorRCxFQUFHaStELHlCQUEyQjhGLDJCQUU5RCxNQUFPLENBQ0wzMEQsVUFBUyxHQUNUcFAsR0FBSSxDQUNGdXhELFFBQ0E0TSxxQkFBc0IyRix3QkFDdEI3Rix3QkFBeUI4Riw0QkFFM0J0NkQsV0FBWSxDQUNWNG5ELFNBQVEsU0FDUmdMLGtCQUFpQixvQkFDakIwQixjQUFhLGdCQUNiZSxVQUFXaFIsc0JBQ1g4USxhQUFjeFEsbUJBQ2R5USxhQUFjeFEsbUJBQ2R3Uix5QkFBMEJyUSxzQkFDMUJ3VSxXQUFZdjNDLEdBQ1p3M0MsWUFBYS8wQyxPQUNiNHdDLFdBQVluckIsR0FDWnV2QiwrQkFBOEIsaUJBQzlCQywyQkFBMEIsYUFDMUJDLHFDQUFvQyw0QkFDcENDLG9DQUFtQyxzQkFDbkMvQyxvQkFBcUJZLDRCQUV2QjN5RCxlQUFnQixDQUNkaS9DLGNBQWU4VixHQUNmbFcsUUFBU21XLEdBQ1RsVyxRQUFTbVcsR0FDVGhWLG9CQUFxQm9RLHNDQUNyQm56QyxNQUFPZCxHQUNQdUQsT0FBUXd3QyxHQUNScHFCLFNBQVVtdkIsR0FDVnB2QixNQUFPcXZCLEdBQ1BDLG1DQUNFQyxHQUNGQyxnQ0FBaUNDLEdBQ2pDQyxrQ0FDRUMsSUFFSnI3RCxhQUFjLENBQ1ppSCxLQUFNLENBQ0o1QyxjQUFlLENBQ2I4SCx1QkFBd0JtdkQsS0FHNUJwc0QsS0FBTSxDQUNKaEwsVUFBVyxDQUNUMGpELFFBQVM0TSxFQUFxQitHLElBRTlCM1csUUFBUzRXLGtCQUNUM0osdUJBQ0F5RSxzQkFDQUMsNkJBQThCakMsRUFBd0JpQyw4QkFDdER6RSxpQkFBa0IwQyxFQUFxQjFDLElBRXZDVyxRQUFTZ0osa0JBQ1QxSix1QkFDQUUsd0JBQ0F1RSxzQkFDQXhFLGlCQUFrQndDLEVBQXFCeEMsSUFFdkNJLHFCQUNBRix1QkFBd0JvQyxFQUF3QnBDLHdCQUNoREMsMkJBQ0FzRSw4QkFDQXBFLDRCQUE2Qm1DLEVBQXFCbkMsSUFFbERHLG1DQUNBbUUsMkJBQ0FyRSxzQkFBdUJrQyxFQUFxQmxDLElBRTVDK0QsU0FBVS9CLEVBQXdCb0gsb0JBQ2xDaEsseUJBQTBCNEMsRUFBd0JFLEVBQXFCOUMsS0FFdkVrQiw2QkFDQUUsK0JBRUFNLGNBQWVvQixFQUFxQnBCLEtBRXRDL3VELGNBQWUsQ0FDYnZRLE9BQVE2bkUsc0JBQ1I3SixpQkFBa0I4SixLQUd0QkMsTUFBTyxDQUNMMzNELFVBQVcsQ0FDVDR0RCxpQkFBa0J3QyxFQUF3QkUsRUFBcUJzSCxRQUl0RSxFQzdKVUMsR0FBZXozQyxLQUFBQSxPQUVmMDNDLEdBQWdCMTNDLEtBQUFBLEtDRmhCMjNDLElESVMzM0MsS0FBQUEsVUFBb0IsQ0FBQ3kzQyxHQUFjQyxNQ0p4QkUsRUFBQUEsRUFBQUEsZUFBYyxPQUMvQ0QsR0FBa0IxM0MsWUFBYyxvQkFFekIsTUFBTXN6QyxJQUF5QnFFLEVBQUFBLEVBQUFBLGVBQWMsR0FDcERyRSxHQUF1QnR6QyxZQUFjLHlCQUU5QixNQUFNNDNDLElBQTBCRCxFQUFBQSxFQUFBQSxlQUFjLElBQUkxaEUsS0FFNUNvOUQsSUFBd0JzRSxFQUFBQSxFQUFBQSxlQUFjLElDVjVDLE1BQU1FLDBCQUNYejhDLGlCQUFtQixZQUVuQkEsZ0JBQWtCLFdBRWxCQSxzQkFBd0Isa0JDS25CLE1BQU0yNUMsVUFBWUEsS0FDdkIsTUFBTSxPQUFFNW5DLElBQVcycUMsRUFBQUEsRUFBQUEsWUFBV0osSUFDOUIsT0FBT3ZxQyxDQUFNLEVBR0Z3bEMsYUFBZ0J6eEIsSUFDM0IsTUFBTSxXQUFFM2xDLElBQWV1OEQsRUFBQUEsRUFBQUEsWUFBV0osSUFDbEMsT0FBT244RCxFQUFXMmxDLElBQWtCLElBQUksRUFHN0JrdUIsTUFBUUEsQ0FBQzJJLE9BQVNyc0UsS0FDN0IsTUFBTSxHQUFFb0csSUFBT2dtRSxFQUFBQSxFQUFBQSxZQUFXSixJQUUxQixZQUF5QixJQUFYSyxFQUF5QmptRSxFQUFHaW1FLEdBQVVqbUUsQ0FBRSxFQUczQ2ttRSwwQkFBNEJBLEtBQ3ZDLE1BQU8sQ0FBRUMsSUFBZ0J4L0MsRUFBQUEsRUFBQUEsVUFBUyxPQUM1QixNQUFFdGQsSUFBVTI4RCxFQUFBQSxFQUFBQSxZQUFXSixJQU03QixNQUFPLENBQUV2OEQsUUFBTzhnQixTQUxFaThDLElBQ2hCQSxFQUFTLzhELEdBQ1Q4OEQsRUFBYSxDQUFDLEVBQUUsRUFHUSxFQUdmbkYsU0FBV0EsS0FDdEIsTUFBTTd2RCxHQUFRNjBELEVBQUFBLEVBQUFBLFlBQVd4RSxJQUV6QixNQUFPLENBQUNyd0QsRUFBT0EsRUFBUSxFQUFFLEVBU2Q0dkQsUUFBV2tCLElBQ3RCLE1BQU1ockQsR0FBTyt1RCxFQUFBQSxFQUFBQSxZQUFXekUsS0FDbEIsU0FBRXAzQyxHQUFhKzdDLDRCQUNmRyxFQUNpQixpQkFBZHBFLEVBQXlCLElBQUlockQsRUFBTWdyRCxHQUFhaHJELEVBaUN6RCxNQUFPLENBQUVBLEtBQU1vdkQsRUFBYUMsWUEvQlJBLENBQUNwckUsRUFBTzZ5QyxFQUFVLENBQUU2ekIsTUFBTSxNQUM1QyxNQUFNMkUsRUFBWUYsRUFBWW5oRSxXQUN4QmtoRSxTQUFZLzhELElBQ2hCQSxFQUFNbTRCLE1BQU0ra0MsR0FBYXJyRSxFQUVyQkEsSUFBVTZxRSwwQkFBMEJTLFdBQ3RDbHNFLE9BQU8rRixLQUFLZ0osRUFBTW00QixPQUFPMStCLFNBQVMxSSxJQUU5QkEsRUFBSXUzQixXQUFXNDBDLElBQ2ZsOUQsRUFBTW00QixNQUFNcG5DLEtBQVMyckUsMEJBQTBCVSxpQkFFL0NwOUQsRUFBTW00QixNQUFNcG5DLEdBQU8yckUsMEJBQTBCVyxTQUMvQyxHQUVKLEVBRUlDLGFBQWdCdDlELElBQ3BCL08sT0FBTytGLEtBQUtnSixFQUFNbTRCLE9BQU8xK0IsU0FBUzFJLElBQzVCQSxFQUFJdTNCLFdBQVc0MEMsS0FDakJsOUQsRUFBTW00QixNQUFNcG5DLEdBQU9jLEVBQ3JCLEdBQ0EsRUFHQTZ5QyxFQUFRNnpCLEtBQ1Z6M0MsRUFBU3c4QyxjQUVUeDhDLEVBQVNpOEMsU0FDWCxFQUd1QyxFQUc5QnRGLGNBQWlCdDZELElBQzVCLE1BQU8ySyxHQUFTNnZELFlBQ1Ysc0JBQUV6QixHQUEwQjBELGFBQzVCLEtBQUVoc0QsRUFBSSxZQUFFcXZELEdBQWdCdkYsUUFBUXY2RCxJQUM5QnlRLEtBQU0ydkQsR0FBZTdGLFdBQ3ZCLE1BQUUxM0QsR0FBVTY4RCw0QkFDWlcsRUFBZXg5RCxFQUFNbTRCLE1BQU12cUIsRUFBSy9SLFlBQ2hDNGhFLEVBQ0p6OUQsRUFBTW00QixNQUFNb2xDLEVBQVcxaEUsYUFDdkJtRSxFQUFNbTRCLE1BQU1vbEMsRUFBV2g2RCxNQUFNLEdBQUksR0FBRzFILFlBQ2hDNmhFLEVBQ0pGLElBQ0N0SCxFQUF3QnB1RCxFQUFRLEVBQzdCNDBELDBCQUEwQlcsU0FDMUJYLDBCQUEwQlMsV0FDMUI1L0MsRUFBYW1nRCxJQUFvQmhCLDBCQUEwQlMsV0FFakU3K0MsRUFBQUEsRUFBQUEsWUFBVSxLQUNSMitDLEVBQ0VRLElBQWdCZiwwQkFBMEJVLGVBQ3RDViwwQkFBMEJVLGVBQzFCTSxFQUNMLEdBQ0EsQ0FBQ0QsSUFjSixNQUFPLENBQUVsZ0QsYUFBWXE2QyxhQVpEOTFDLEVBQUFBLEVBQUFBLGNBQVksQ0FBQzRpQixFQUFVLENBQUU2ekIsTUFBTSxNQUNqRDBFLEVBQ0V2NEIsRUFBUTZ6QixLQUNKbUUsMEJBQTBCVSxlQUMxQlYsMEJBQTBCVyxTQUMvQixHQUNBLElBTStCeEYsY0FKYi8xQyxFQUFBQSxFQUFBQSxjQUFZLENBQUM0aUIsRUFBVSxDQUFFNnpCLE1BQU0sTUFDbEQwRSxFQUFZUCwwQkFBMEJTLFVBQVd6NEIsRUFBUSxHQUN4RCxJQUU2QyxFQUdyQ2k1QixtQkFBcUJBLENBQUNycEUsT0FBUy9ELEtBQzFDLFFBQXNCLElBQVgrRCxFQUNULE9BQU9xb0UsRUFBQUEsRUFBQUEsWUFBV0YsSUFHcEIsTUFBTW1CLEdBQWtCakIsRUFBQUEsRUFBQUEsWUFBV0YsSUFDbkMsT0FBTyxJQUFJM2hFLElBQUksSUFBSThpRSxFQUFpQnRwRSxHQUFRLEVDbEh4Q3VsRSxJQUFheEcsRUFBQUEsRUFBQUEsYUFDakIsRUFFSS8rRCxTQUNBNkksT0FBTyxHQUNQNDhELG9CQUFvQixHQUNwQnZHLFdBQVdBLE9BQ1hDLGFBQWEsSUFFZm5oRCxLQUVBLE1BQU0zYixFQUFLczlELFFBRUwyRSxFQUFZbkYsR0FBY24vRCxHQUFRdXBFLEtBQU8xZ0UsR0FDekMsS0FBRXlRLEdBQVM4cEQsUUFBUWtCLElBQ25CLFdBQUVyN0MsRUFBVSxZQUFFcTZDLEVBQVcsYUFBRUMsR0FBaUJKLGNBQWNtQixJQUN6RDl3RCxFQUFPZ3dELEdBQWFILFdBQ3JCaHZDLEVES21CbTFDLE1BQzNCLE1BQU9oMkQsR0FBUzZ2RCxXQUVoQixPQUFPN3ZELEVBQVEsQ0FBQyxFQ1JLZzJELEdBQ2IzSCxFQUFleC9ELEVBQUd3L0QsYUFBYTdoRSxJQUFXeWxFLEVBQWtCeGpFLE9BQVMsRUFDckV3bkUsRURpR21CQyxDQUFDMXBFLEdBQ0pxcEUscUJBQ0Rua0UsSUFBSWxGLEdDbkdOMHBFLENBQWMxcEUsR0FDM0JzcEUsRUFBa0JELG1CQUFtQnJwRSxHQUNyQzJwRSxFQUFjdG5FLEVBQUd1bkUscUJBQXFCNXBFLEdBQ3RDeWpFLEVBQVlQLGFBQWEsYUFDekIyRyxFQUFpQjNHLGFBQWEsa0JBQzlCNEcsRUFBcUI1RyxhQUFhLHNCQUNsQzZHLEVBQWE3RyxhQUFhLGNBQzFCOEcsRUFBaUI5RyxhQUFhLGtCQUM5QitHLEVBQXdCL0csYUFBYSx5QkFDckNnSCxFQUFjaEgsYUFBYSxlQUMzQmlILEVBQXFCakgsYUFBYSxzQkFDbENrSCxFQUFlbEgsYUFBYSxnQkFDNUJtSCxFQUFrQm5ILGFBQWEsbUJBQy9Cb0gsRUFBZXBILGFBQWEsZ0JBQzVCcUgsRUFBZXJILGFBQWEsZ0JBQzVCc0gsRUFBZXRILGFBQWEsZ0JBQzVCdUgsRUFBYXZILGFBQWEsY0FDMUJ3SCxFQUFZeEgsYUFBYSxhQUN6QnlILEVBQWN6SCxhQUFhLGVBQzNCMEgsRUFBYzFILGFBQWEsZUFDM0IySCxFQUEwQjNILGFBQWEsMkJBQ3ZDNEgsRUFBcUI1SCxhQUFhLHNCQUNsQzZILEVBQWU3SCxhQUFhLGdCQUM1QjhILEVBQWtCOUgsYUFBYSxtQkFDL0IrSCxFQUFvQi9ILGFBQWEscUJBQ2pDZ0ksRUFBMkJoSSxhQUFhLDRCQUN4Q2lJLEVBQThCakksYUFDbEMsK0JBRUlrSSxFQUF1QmxJLGFBQWEsd0JBQ3BDbUksRUFBMEJuSSxhQUFhLDJCQUN2Q29JLEVBQStCcEksYUFDbkMsZ0NBRUlxSSxFQUFjckksYUFBYSxlQUMzQnNJLEVBQWN0SSxhQUFhLGVBQzNCdUksRUFBZXZJLGFBQWEsZ0JBQzVCd0ksRUFBb0J4SSxhQUFhLHFCQUNqQ3lJLEVBQTJCekksYUFBYSw0QkFDeEMwSSxFQUF1QjFJLGFBQWEsd0JBQ3BDMkksR0FBZTNJLGFBQWEsZ0JBQzVCd0IsR0FBcUJ4QixhQUFhLHNCQUNsQzRJLEdBQWlCNUksYUFBYSxrQkFDOUI2SSxHQUFvQjdJLGFBQWEscUJBQ2pDOEksR0FBa0I5SSxhQUFhLG1CQUMvQitJLEdBQW1CL0ksYUFBYSxvQkFDaEM2QixHQUFrQjdCLGFBQWEsbUJBQy9CZ0osR0FBb0JoSixhQUFhLHFCQUNqQ1EsR0FBbUJSLGFBQWEsb0JBS2hDWSxJQUFrQnQyQyxFQUFBQSxFQUFBQSxjQUN0QixDQUFDbHVCLEVBQUc2c0UsS0FDRUEsRUFDRjdJLElBRUFDLElBRUZyRSxFQUFTNS9ELEVBQUc2c0UsR0FBYSxFQUFNLEdBRWpDLENBQUNqTixFQUFVb0UsRUFBYUMsSUFFcEJRLElBQXNCdjJDLEVBQUFBLEVBQUFBLGNBQzFCLENBQUNsdUIsRUFBRzBrRSxLQUNFQSxFQUNGVixFQUFZLENBQUVXLE1BQU0sSUFFcEJWLEVBQWEsQ0FBRVUsTUFBTSxJQUV2Qi9FLEVBQVM1L0QsRUFBRzBrRSxHQUFpQixFQUFLLEdBRXBDLENBQUM5RSxFQUFVb0UsRUFBYUMsSUFHMUIsT0FDRXIxRCxJQUFBQSxjQUFDMDFELEdBQXNCNXlCLFNBQVEsQ0FBQ3p6QyxNQUFPK2IsR0FDckNwTCxJQUFBQSxjQUFDMjFELEdBQXVCN3lCLFNBQVEsQ0FBQ3p6QyxNQUFPaW1FLEdBQ3RDdDFELElBQUFBLGNBQUNpNkQsR0FBd0JuM0IsU0FBUSxDQUFDenpDLE1BQU8rckUsR0FDdkNwN0QsSUFBQUEsY0FBQSxXQUNFOFAsSUFBS0EsRUFDTCx5QkFBd0J4SyxFQUN4QjJPLFVBQVc2SSxLQUFXLHNCQUF1QixDQUMzQyxnQ0FBaUNxSixFQUNqQyxnQ0FBaUNvMUMsS0FHbkN2N0QsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSw0QkFDWjAvQyxJQUFpQjRILEVBQ2hCdjdELElBQUFBLGNBQUFBLElBQUFBLFNBQUEsS0FDRUEsSUFBQUEsY0FBQ3UxRCxFQUFTLENBQUM1M0MsU0FBVTVDLEVBQVlzTixTQUFVdXRDLElBQ3pDNTFELElBQUFBLGNBQUMyOUQsR0FBWSxDQUFDaGhELE1BQU9oaUIsRUFBTTdJLE9BQVFBLEtBRXJDa08sSUFBQUEsY0FBQ3cxRCxHQUFnQixDQUNmNzNDLFNBQVU1QyxFQUNWMEIsUUFBU281QyxNQUliNzFELElBQUFBLGNBQUMyOUQsR0FBWSxDQUFDaGhELE1BQU9oaUIsRUFBTTdJLE9BQVFBLElBRXJDa08sSUFBQUEsY0FBQzY5RCxHQUFpQixDQUFDL3JFLE9BQVFBLElBQzNCa08sSUFBQUEsY0FBQzg5RCxHQUFlLENBQUNoc0UsT0FBUUEsSUFDekJrTyxJQUFBQSxjQUFDKzlELEdBQWdCLENBQUNqc0UsT0FBUUEsSUFDMUJrTyxJQUFBQSxjQUFDcTlELEVBQVcsQ0FBQ3ZyRSxPQUFRQSxFQUFReXBFLFdBQVlBLElBQ3hDRSxFQUFZMW5FLE9BQVMsR0FDcEIwbkUsRUFBWXRvRSxLQUFLK3FFLEdBQ2ZsK0QsSUFBQUEsY0FBQ3c5RCxFQUFpQixDQUNoQmp2RSxJQUFLLEdBQUcydkUsRUFBV2g0RCxTQUFTZzRELEVBQVc3dUUsUUFDdkM2dUUsV0FBWUEsT0FJcEJsK0QsSUFBQUEsY0FBQSxPQUNFaVUsVUFBVzZJLEtBQVcsMkJBQTRCLENBQ2hELHVDQUF3Qy9CLEtBR3pDQSxHQUNDL2EsSUFBQUEsY0FBQUEsSUFBQUEsU0FBQSxLQUNFQSxJQUFBQSxjQUFDdzJELEdBQWtCLENBQUMxa0UsT0FBUUEsS0FDMUJ5cEUsR0FBYzVILEdBQ2QzekQsSUFBQUEsY0FBQUEsSUFBQUEsU0FBQSxLQUNFQSxJQUFBQSxjQUFDKzhELEVBQWlCLENBQUNqckUsT0FBUUEsSUFDM0JrTyxJQUFBQSxjQUFDZzlELEVBQXdCLENBQUNsckUsT0FBUUEsSUFDbENrTyxJQUFBQSxjQUFDaTlELEVBQTJCLENBQUNuckUsT0FBUUEsSUFDckNrTyxJQUFBQSxjQUFDbzlELEVBQTRCLENBQUN0ckUsT0FBUUEsSUFDdENrTyxJQUFBQSxjQUFDazlELEVBQW9CLENBQUNwckUsT0FBUUEsSUFDOUJrTyxJQUFBQSxjQUFDbzhELEVBQVksQ0FBQ3RxRSxPQUFRQSxJQUN0QmtPLElBQUFBLGNBQUNxOEQsRUFBWSxDQUFDdnFFLE9BQVFBLElBQ3RCa08sSUFBQUEsY0FBQ3M4RCxFQUFZLENBQUN4cUUsT0FBUUEsSUFDdEJrTyxJQUFBQSxjQUFDdThELEVBQVUsQ0FBQ3pxRSxPQUFRQSxJQUNwQmtPLElBQUFBLGNBQUN3OEQsRUFBUyxDQUFDMXFFLE9BQVFBLElBQ25Ca08sSUFBQUEsY0FBQ3k4RCxFQUFXLENBQUMzcUUsT0FBUUEsSUFDckJrTyxJQUFBQSxjQUFDMDhELEVBQVcsQ0FBQzVxRSxPQUFRQSxJQUNyQmtPLElBQUFBLGNBQUMyOEQsRUFBdUIsQ0FBQzdxRSxPQUFRQSxJQUNqQ2tPLElBQUFBLGNBQUM0OEQsRUFBa0IsQ0FBQzlxRSxPQUFRQSxJQUM1QmtPLElBQUFBLGNBQUM2OEQsRUFBWSxDQUFDL3FFLE9BQVFBLElBQ3RCa08sSUFBQUEsY0FBQ205RCxFQUF1QixDQUFDcnJFLE9BQVFBLElBQ2pDa08sSUFBQUEsY0FBQzg4RCxFQUFlLENBQUNockUsT0FBUUEsSUFDekJrTyxJQUFBQSxjQUFDMDlELEVBQW9CLENBQUM1ckUsT0FBUUEsS0FHbENrTyxJQUFBQSxjQUFDczlELEVBQVcsQ0FBQ3hyRSxPQUFRQSxJQUNyQmtPLElBQUFBLGNBQUN1OUQsRUFBWSxDQUFDenJFLE9BQVFBLElBQ3RCa08sSUFBQUEsY0FBQ3k5RCxFQUF3QixDQUN2QjNyRSxPQUFRQSxFQUNSeWxFLGtCQUFtQkEsSUFFckJ2M0QsSUFBQUEsY0FBQzQ5RCxHQUFjLENBQUM5ckUsT0FBUUEsSUFDeEJrTyxJQUFBQSxjQUFDNjJELEdBQWUsQ0FBQy9rRSxPQUFRQSxJQUN6QmtPLElBQUFBLGNBQUMyN0QsRUFBYyxDQUFDN3BFLE9BQVFBLElBQ3hCa08sSUFBQUEsY0FBQzQ3RCxFQUFrQixDQUFDOXBFLE9BQVFBLElBQzVCa08sSUFBQUEsY0FBQzY3RCxFQUFVLENBQUMvcEUsT0FBUUEsSUFDcEJrTyxJQUFBQSxjQUFDODdELEVBQWMsQ0FBQ2hxRSxPQUFRQSxJQUN4QmtPLElBQUFBLGNBQUMrN0QsRUFBcUIsQ0FBQ2pxRSxPQUFRQSxJQUMvQmtPLElBQUFBLGNBQUNnOEQsRUFBVyxDQUFDbHFFLE9BQVFBLEtBQ25CeXBFLEdBQWM1SCxHQUNkM3pELElBQUFBLGNBQUNrOEQsRUFBWSxDQUFDcHFFLE9BQVFBLElBRXhCa08sSUFBQUEsY0FBQ2k4RCxFQUFrQixDQUFDbnFFLE9BQVFBLElBQzVCa08sSUFBQUEsY0FBQ204RCxFQUFlLENBQUNycUUsT0FBUUEsSUFDekJrTyxJQUFBQSxjQUFDZytELEdBQWlCLENBQUNsc0UsT0FBUUEsU0FPUixJQWF2QyxNQ3hNQSxpQkFuQmdCcXNFLEVBQUdyc0UsWUFDWkEsR0FBUXFzRSxRQUdYbitELElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsb0VBQ2JqVSxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGtGQUFpRixXQUdqR2pVLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsb0ZBQ2JuaUIsRUFBT3FzRSxVQVJlLEtDeUQvQix3QkF2RG9CQyxFQUFHdHNFLGFBQ3JCLE1BQU1za0UsRUFBWSxlQUNaLEtBQUVockQsR0FBUzhwRCxRQUFRa0IsSUFDbkIsV0FBRXI3QyxFQUFVLFlBQUVxNkMsRUFBVyxhQUFFQyxHQUFpQkosY0FBY21CLEdBQzFEYixFQUFZUCxhQUFhLGFBRXpCWSxHQUFrQnQyQyxFQUFBQSxFQUFBQSxjQUFZLEtBQzlCdkUsRUFDRnM2QyxJQUVBRCxHQUNGLEdBQ0MsQ0FBQ3I2QyxFQUFZcTZDLEVBQWFDLElBSzdCLE9BQUt2akUsR0FBUXNzRSxZQUNxQixpQkFBdkJ0c0UsRUFBT3NzRSxZQUFpQyxLQUdqRHArRCxJQUFBQSxjQUFDMDFELEdBQXNCNXlCLFNBQVEsQ0FBQ3p6QyxNQUFPK2IsR0FDckNwTCxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLHdFQUNialUsSUFBQUEsY0FBQ3UxRCxFQUFTLENBQUM1M0MsU0FBVTVDLEVBQVlzTixTQUFVdXRDLEdBQ3pDNTFELElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsa0ZBQWlGLGdCQUluR2pVLElBQUFBLGNBQUEsVUFBUWlVLFVBQVUsMEVBQXlFLFVBRzNGalUsSUFBQUEsY0FBQSxVQUNHK2EsR0FDQ3RzQixPQUFPNkUsUUFBUXhCLEVBQU9zc0UsYUFBYWpyRSxLQUFJLEVBQUVnSSxFQUFLMDJDLEtBQzVDN3hDLElBQUFBLGNBQUEsTUFDRXpSLElBQUs0TSxFQUNMOFksVUFBVzZJLEtBQVcsc0NBQXVDLENBQzNELGlEQUFrRCswQixLQUdwRDd4QyxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLG9GQUNiOVksU0F4QmdCLElBOEJFLEVDL0JyQyxhQW5CWWtnRSxFQUFHdnBFLFlBQ1JBLEdBQVF1cEUsSUFHWHI3RCxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLGdFQUNialUsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxrRkFBaUYsT0FHakdqVSxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLG9GQUNibmlCLEVBQU91cEUsTUFSVyxLQ2tCM0IsaUJBbkJnQmdELEVBQUd2c0UsWUFDWkEsR0FBUXVzRSxRQUdYcitELElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsb0VBQ2JqVSxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGtGQUFpRixXQUdqR2pVLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsb0ZBQ2JuaUIsRUFBT3VzRSxVQVJlLEtDa0IvQix3QkFuQnVCQyxFQUFHeHNFLFlBQ25CQSxHQUFRd3NFLGVBR1h0K0QsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSwyRUFDYmpVLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsa0ZBQWlGLGtCQUdqR2pVLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsb0ZBQ2JuaUIsRUFBT3dzRSxpQkFSc0IsS0NrQnRDLGNBbkJhdjdDLEVBQUdqeEIsWUFDVEEsR0FBUWl4QixLQUdYL2lCLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsaUVBQ2JqVSxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGtGQUFpRixRQUdqR2pVLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsb0ZBQ2JuaUIsRUFBT2l4QixPQVJZLEtDa0I1QixxQkFuQm9CdzdDLEVBQUd6c0UsWUFDaEJBLEdBQVF5c0UsWUFHWHYrRCxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLHdFQUNialUsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxrRkFBaUYsZUFHakdqVSxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLG9GQUNibmlCLEVBQU95c0UsY0FSbUIsS0NvRm5DLGVBbEZjQyxFQUFHMXNFLGFBQ2YsTUFBTTBzRSxFQUFRMXNFLEdBQVEwc0UsT0FBUyxDQUFDLEVBQzFCcEksRUFBWSxTQUNaLEtBQUVockQsR0FBUzhwRCxRQUFRa0IsSUFDbkIsV0FBRXI3QyxFQUFVLFlBQUVxNkMsRUFBVyxhQUFFQyxHQUFpQkosY0FBY21CLElBQ3pEOXdELEVBQU9nd0QsR0FBYUgsV0FDckJJLEVBQVlQLGFBQWEsYUFDekJRLEVBQW1CUixhQUFhLG9CQUNoQ3FDLEVBQWFyQyxhQUFhLGNBSzFCWSxHQUFrQnQyQyxFQUFBQSxFQUFBQSxjQUFZLEtBQzlCdkUsRUFDRnM2QyxJQUVBRCxHQUNGLEdBQ0MsQ0FBQ3I2QyxFQUFZcTZDLEVBQWFDLElBQ3ZCUSxHQUFzQnYyQyxFQUFBQSxFQUFBQSxjQUMxQixDQUFDbHVCLEVBQUcwa0UsS0FDRUEsRUFDRlYsRUFBWSxDQUFFVyxNQUFNLElBRXBCVixFQUFhLENBQUVVLE1BQU0sR0FDdkIsR0FFRixDQUFDWCxFQUFhQyxJQU1oQixPQUFrQyxJQUE5QjVtRSxPQUFPK0YsS0FBS2dxRSxHQUFPenFFLE9BQ2QsS0FJUGlNLElBQUFBLGNBQUMwMUQsR0FBc0I1eUIsU0FBUSxDQUFDenpDLE1BQU8rYixHQUNyQ3BMLElBQUFBLGNBQUMyMUQsR0FBdUI3eUIsU0FBUSxDQUFDenpDLE1BQU9pbUUsR0FDdEN0MUQsSUFBQUEsY0FBQSxPQUNFaVUsVUFBVSxpRUFDVix5QkFBd0IzTyxHQUV4QnRGLElBQUFBLGNBQUN1MUQsRUFBUyxDQUFDNTNDLFNBQVU1QyxFQUFZc04sU0FBVXV0QyxHQUN6QzUxRCxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGtGQUFpRixVQUluR2pVLElBQUFBLGNBQUN3MUQsRUFBZ0IsQ0FDZjczQyxTQUFVNUMsRUFDVjBCLFFBQVNvNUMsSUFFWDcxRCxJQUFBQSxjQUFBLFVBQVFpVSxVQUFVLDBFQUF5RSxVQUczRmpVLElBQUFBLGNBQUEsTUFDRWlVLFVBQVc2SSxLQUFXLHdDQUF5QyxDQUM3RCxvREFBcUQvQixLQUd0REEsR0FDQy9hLElBQUFBLGNBQUFBLElBQUFBLFNBQUEsS0FDR3ZSLE9BQU82RSxRQUFRa3JFLEdBQU9yckUsS0FBSSxFQUFFaTFELEVBQVl0MkQsS0FDdkNrTyxJQUFBQSxjQUFBLE1BQUl6UixJQUFLNjVELEVBQVluMEMsVUFBVSxnQ0FDN0JqVSxJQUFBQSxjQUFDcTNELEVBQVUsQ0FBQzE4RCxLQUFNeXRELEVBQVl0MkQsT0FBUUEsV0FRckIsRUMxRHJDLGtCQW5CaUIyc0UsRUFBRzNzRSxZQUNiQSxHQUFRMnNFLFNBR1h6K0QsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxxRUFDYmpVLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsa0ZBQWlGLFlBR2pHalUsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxvRkFDYm5pQixFQUFPMnNFLFdBUmdCLEtDZ0doQyxlQXhGY0MsRUFBRzVzRSxhQUNmLE1BQU1vMUIsRUFBUXAxQixHQUFRbzFCLE9BQVMsR0FDekIveUIsRUFBS3M5RCxRQUNMMkUsRUFBWSxTQUNaLEtBQUVockQsR0FBUzhwRCxRQUFRa0IsSUFDbkIsV0FBRXI3QyxFQUFVLFlBQUVxNkMsRUFBVyxhQUFFQyxHQUFpQkosY0FBY21CLElBQ3pEOXdELEVBQU9nd0QsR0FBYUgsV0FDckJJLEVBQVlQLGFBQWEsYUFDekJRLEVBQW1CUixhQUFhLG9CQUNoQ3FDLEVBQWFyQyxhQUFhLGNBQzFCcUksRUFBY3JJLGFBQWEsZUFLM0JZLEdBQWtCdDJDLEVBQUFBLEVBQUFBLGNBQVksS0FDOUJ2RSxFQUNGczZDLElBRUFELEdBQ0YsR0FDQyxDQUFDcjZDLEVBQVlxNkMsRUFBYUMsSUFDdkJRLEdBQXNCdjJDLEVBQUFBLEVBQUFBLGNBQzFCLENBQUNsdUIsRUFBRzBrRSxLQUNFQSxFQUNGVixFQUFZLENBQUVXLE1BQU0sSUFFcEJWLEVBQWEsQ0FBRVUsTUFBTSxHQUN2QixHQUVGLENBQUNYLEVBQWFDLElBTWhCLE9BQUtwaUUsTUFBTUMsUUFBUWcwQixJQUEyQixJQUFqQkEsRUFBTW56QixPQUtqQ2lNLElBQUFBLGNBQUMwMUQsR0FBc0I1eUIsU0FBUSxDQUFDenpDLE1BQU8rYixHQUNyQ3BMLElBQUFBLGNBQUMyMUQsR0FBdUI3eUIsU0FBUSxDQUFDenpDLE1BQU9pbUUsR0FDdEN0MUQsSUFBQUEsY0FBQSxPQUNFaVUsVUFBVSxpRUFDVix5QkFBd0IzTyxHQUV4QnRGLElBQUFBLGNBQUN1MUQsRUFBUyxDQUFDNTNDLFNBQVU1QyxFQUFZc04sU0FBVXV0QyxHQUN6QzUxRCxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGdGQUErRSxXQUlqR2pVLElBQUFBLGNBQUN3MUQsRUFBZ0IsQ0FDZjczQyxTQUFVNUMsRUFDVjBCLFFBQVNvNUMsSUFFWDcxRCxJQUFBQSxjQUFDcTlELEVBQVcsQ0FBQ3ZyRSxPQUFRLENBQUVvMUIsV0FDdkJsbkIsSUFBQUEsY0FBQSxNQUNFaVUsVUFBVzZJLEtBQVcsd0NBQXlDLENBQzdELG9EQUFxRC9CLEtBR3REQSxHQUNDL2EsSUFBQUEsY0FBQUEsSUFBQUEsU0FBQSxLQUNHa25CLEVBQU0vekIsS0FBSSxDQUFDckIsRUFBUTZHLElBQ2xCcUgsSUFBQUEsY0FBQSxNQUNFelIsSUFBSyxJQUFJb0ssSUFDVHNiLFVBQVUsZ0NBRVZqVSxJQUFBQSxjQUFDcTNELEVBQVUsQ0FDVDE4RCxLQUFNLElBQUloQyxLQUFTeEUsRUFBR285RCxTQUFTei9ELEtBQy9CQSxPQUFRQSxZQWxDbkIsSUEyQzBCLEVDUXJDLGVBeEZjNnNFLEVBQUc3c0UsYUFDZixNQUFNcTFCLEVBQVFyMUIsR0FBUXExQixPQUFTLEdBQ3pCaHpCLEVBQUtzOUQsUUFDTDJFLEVBQVksU0FDWixLQUFFaHJELEdBQVM4cEQsUUFBUWtCLElBQ25CLFdBQUVyN0MsRUFBVSxZQUFFcTZDLEVBQVcsYUFBRUMsR0FBaUJKLGNBQWNtQixJQUN6RDl3RCxFQUFPZ3dELEdBQWFILFdBQ3JCSSxFQUFZUCxhQUFhLGFBQ3pCUSxFQUFtQlIsYUFBYSxvQkFDaENxQyxFQUFhckMsYUFBYSxjQUMxQnFJLEVBQWNySSxhQUFhLGVBSzNCWSxHQUFrQnQyQyxFQUFBQSxFQUFBQSxjQUFZLEtBQzlCdkUsRUFDRnM2QyxJQUVBRCxHQUNGLEdBQ0MsQ0FBQ3I2QyxFQUFZcTZDLEVBQWFDLElBQ3ZCUSxHQUFzQnYyQyxFQUFBQSxFQUFBQSxjQUMxQixDQUFDbHVCLEVBQUcwa0UsS0FDRUEsRUFDRlYsRUFBWSxDQUFFVyxNQUFNLElBRXBCVixFQUFhLENBQUVVLE1BQU0sR0FDdkIsR0FFRixDQUFDWCxFQUFhQyxJQU1oQixPQUFLcGlFLE1BQU1DLFFBQVFpMEIsSUFBMkIsSUFBakJBLEVBQU1wekIsT0FLakNpTSxJQUFBQSxjQUFDMDFELEdBQXNCNXlCLFNBQVEsQ0FBQ3p6QyxNQUFPK2IsR0FDckNwTCxJQUFBQSxjQUFDMjFELEdBQXVCN3lCLFNBQVEsQ0FBQ3p6QyxNQUFPaW1FLEdBQ3RDdDFELElBQUFBLGNBQUEsT0FDRWlVLFVBQVUsaUVBQ1YseUJBQXdCM08sR0FFeEJ0RixJQUFBQSxjQUFDdTFELEVBQVMsQ0FBQzUzQyxTQUFVNUMsRUFBWXNOLFNBQVV1dEMsR0FDekM1MUQsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxnRkFBK0UsV0FJakdqVSxJQUFBQSxjQUFDdzFELEVBQWdCLENBQ2Y3M0MsU0FBVTVDLEVBQ1YwQixRQUFTbzVDLElBRVg3MUQsSUFBQUEsY0FBQ3E5RCxFQUFXLENBQUN2ckUsT0FBUSxDQUFFcTFCLFdBQ3ZCbm5CLElBQUFBLGNBQUEsTUFDRWlVLFVBQVc2SSxLQUFXLHdDQUF5QyxDQUM3RCxvREFBcUQvQixLQUd0REEsR0FDQy9hLElBQUFBLGNBQUFBLElBQUFBLFNBQUEsS0FDR21uQixFQUFNaDBCLEtBQUksQ0FBQ3JCLEVBQVE2RyxJQUNsQnFILElBQUFBLGNBQUEsTUFDRXpSLElBQUssSUFBSW9LLElBQ1RzYixVQUFVLGdDQUVWalUsSUFBQUEsY0FBQ3EzRCxFQUFVLENBQ1QxOEQsS0FBTSxJQUFJaEMsS0FBU3hFLEVBQUdvOUQsU0FBU3ovRCxLQUMvQkEsT0FBUUEsWUFsQ25CLElBMkMwQixFQ1FyQyxlQXhGYzhzRSxFQUFHOXNFLGFBQ2YsTUFBTXMxQixFQUFRdDFCLEdBQVFzMUIsT0FBUyxHQUN6Qmp6QixFQUFLczlELFFBQ0wyRSxFQUFZLFNBQ1osS0FBRWhyRCxHQUFTOHBELFFBQVFrQixJQUNuQixXQUFFcjdDLEVBQVUsWUFBRXE2QyxFQUFXLGFBQUVDLEdBQWlCSixjQUFjbUIsSUFDekQ5d0QsRUFBT2d3RCxHQUFhSCxXQUNyQkksRUFBWVAsYUFBYSxhQUN6QlEsRUFBbUJSLGFBQWEsb0JBQ2hDcUMsRUFBYXJDLGFBQWEsY0FDMUJxSSxFQUFjckksYUFBYSxlQUszQlksR0FBa0J0MkMsRUFBQUEsRUFBQUEsY0FBWSxLQUM5QnZFLEVBQ0ZzNkMsSUFFQUQsR0FDRixHQUNDLENBQUNyNkMsRUFBWXE2QyxFQUFhQyxJQUN2QlEsR0FBc0J2MkMsRUFBQUEsRUFBQUEsY0FDMUIsQ0FBQ2x1QixFQUFHMGtFLEtBQ0VBLEVBQ0ZWLEVBQVksQ0FBRVcsTUFBTSxJQUVwQlYsRUFBYSxDQUFFVSxNQUFNLEdBQ3ZCLEdBRUYsQ0FBQ1gsRUFBYUMsSUFNaEIsT0FBS3BpRSxNQUFNQyxRQUFRazBCLElBQTJCLElBQWpCQSxFQUFNcnpCLE9BS2pDaU0sSUFBQUEsY0FBQzAxRCxHQUFzQjV5QixTQUFRLENBQUN6ekMsTUFBTytiLEdBQ3JDcEwsSUFBQUEsY0FBQzIxRCxHQUF1Qjd5QixTQUFRLENBQUN6ekMsTUFBT2ltRSxHQUN0Q3QxRCxJQUFBQSxjQUFBLE9BQ0VpVSxVQUFVLGlFQUNWLHlCQUF3QjNPLEdBRXhCdEYsSUFBQUEsY0FBQ3UxRCxFQUFTLENBQUM1M0MsU0FBVTVDLEVBQVlzTixTQUFVdXRDLEdBQ3pDNTFELElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsZ0ZBQStFLFdBSWpHalUsSUFBQUEsY0FBQ3cxRCxFQUFnQixDQUNmNzNDLFNBQVU1QyxFQUNWMEIsUUFBU281QyxJQUVYNzFELElBQUFBLGNBQUNxOUQsRUFBVyxDQUFDdnJFLE9BQVEsQ0FBRXMxQixXQUN2QnBuQixJQUFBQSxjQUFBLE1BQ0VpVSxVQUFXNkksS0FBVyx3Q0FBeUMsQ0FDN0Qsb0RBQXFEL0IsS0FHdERBLEdBQ0MvYSxJQUFBQSxjQUFBQSxJQUFBQSxTQUFBLEtBQ0dvbkIsRUFBTWowQixLQUFJLENBQUNyQixFQUFRNkcsSUFDbEJxSCxJQUFBQSxjQUFBLE1BQ0V6UixJQUFLLElBQUlvSyxJQUNUc2IsVUFBVSxnQ0FFVmpVLElBQUFBLGNBQUNxM0QsRUFBVSxDQUNUMThELEtBQU0sSUFBSWhDLEtBQVN4RSxFQUFHbzlELFNBQVN6L0QsS0FDL0JBLE9BQVFBLFlBbENuQixJQTJDMEIsRUM5RHJDLGFBMUJZK3NFLEVBQUcvc0UsYUFDYixNQUFNcUMsRUFBS3M5RCxRQUNMNEYsRUFBYXJDLGFBQWEsY0FLaEMsSUFBSzdnRSxFQUFHMGdFLFdBQVcvaUUsRUFBUSxPQUFRLE9BQU8sS0FFMUMsTUFBTTZJLEVBQ0pxRixJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGdGQUErRSxPQUtqRyxPQUNFalUsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxnRUFDYmpVLElBQUFBLGNBQUNxM0QsRUFBVSxDQUFDMThELEtBQU1BLEVBQU03SSxPQUFRQSxFQUFPdTFCLElBQUs0cEMsV0FBVyxRQUNuRCxFQ1FWLFlBMUJXNk4sRUFBR2h0RSxhQUNaLE1BQU1xQyxFQUFLczlELFFBQ0w0RixFQUFhckMsYUFBYSxjQUtoQyxJQUFLN2dFLEVBQUcwZ0UsV0FBVy9pRSxFQUFRLE1BQU8sT0FBTyxLQUV6QyxNQUFNNkksRUFDSnFGLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsZ0ZBQStFLE1BS2pHLE9BQ0VqVSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLCtEQUNialUsSUFBQUEsY0FBQ3EzRCxFQUFVLENBQUMxOEQsS0FBTUEsRUFBTTdJLE9BQVFBLEVBQU9pdEUsR0FBSTlOLFdBQVcsT0FDbEQsRUNRVixjQTFCYStOLEVBQUdsdEUsYUFDZCxNQUFNcUMsRUFBS3M5RCxRQUNMNEYsRUFBYXJDLGFBQWEsY0FLaEMsSUFBSzdnRSxFQUFHMGdFLFdBQVcvaUUsRUFBUSxRQUFTLE9BQU8sS0FFM0MsTUFBTTZJLEVBQ0pxRixJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGdGQUErRSxRQUtqRyxPQUNFalUsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSxpRUFDYmpVLElBQUFBLGNBQUNxM0QsRUFBVSxDQUFDMThELEtBQU1BLEVBQU03SSxPQUFRQSxFQUFPdVcsS0FBTTRvRCxXQUFXLFNBQ3BELEVDUVYsY0ExQmFnTyxFQUFHbnRFLGFBQ2QsTUFBTXFDLEVBQUtzOUQsUUFDTDRGLEVBQWFyQyxhQUFhLGNBS2hDLElBQUs3Z0UsRUFBRzBnRSxXQUFXL2lFLEVBQVEsUUFBUyxPQUFPLEtBRTNDLE1BQU02SSxFQUNKcUYsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxnRkFBK0UsUUFLakcsT0FDRWpVLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsK0RBQ2JqVSxJQUFBQSxjQUFDcTNELEVBQVUsQ0FBQzE4RCxLQUFNQSxFQUFNN0ksT0FBUUEsRUFBT290RSxLQUFNak8sV0FBVyxTQUNwRCxFQ3NFViwwQkF0RnlCa08sRUFBR3J0RSxhQUMxQixNQUFNc3RFLEVBQW1CdHRFLEdBQVFzdEUsa0JBQW9CLEdBQy9DaEosRUFBWSxvQkFDWixLQUFFaHJELEdBQVM4cEQsUUFBUWtCLElBQ25CLFdBQUVyN0MsRUFBVSxZQUFFcTZDLEVBQVcsYUFBRUMsR0FBaUJKLGNBQWNtQixJQUN6RDl3RCxFQUFPZ3dELEdBQWFILFdBQ3JCSSxFQUFZUCxhQUFhLGFBQ3pCUSxFQUFtQlIsYUFBYSxvQkFDaENxQyxFQUFhckMsYUFBYSxjQUsxQlksR0FBa0J0MkMsRUFBQUEsRUFBQUEsY0FBWSxLQUM5QnZFLEVBQ0ZzNkMsSUFFQUQsR0FDRixHQUNDLENBQUNyNkMsRUFBWXE2QyxFQUFhQyxJQUN2QlEsR0FBc0J2MkMsRUFBQUEsRUFBQUEsY0FDMUIsQ0FBQ2x1QixFQUFHMGtFLEtBQ0VBLEVBQ0ZWLEVBQVksQ0FBRVcsTUFBTSxJQUVwQlYsRUFBYSxDQUFFVSxNQUFNLEdBQ3ZCLEdBRUYsQ0FBQ1gsRUFBYUMsSUFNaEIsTUFBZ0MsaUJBQXJCK0osR0FDa0MsSUFBekMzd0UsT0FBTytGLEtBQUs0cUUsR0FBa0JyckUsT0FEZSxLQUkvQ2lNLElBQUFBLGNBQUMwMUQsR0FBc0I1eUIsU0FBUSxDQUFDenpDLE1BQU8rYixHQUNyQ3BMLElBQUFBLGNBQUMyMUQsR0FBdUI3eUIsU0FBUSxDQUFDenpDLE1BQU9pbUUsR0FDdEN0MUQsSUFBQUEsY0FBQSxPQUNFaVUsVUFBVSw0RUFDVix5QkFBd0IzTyxHQUV4QnRGLElBQUFBLGNBQUN1MUQsRUFBUyxDQUFDNTNDLFNBQVU1QyxFQUFZc04sU0FBVXV0QyxHQUN6QzUxRCxJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGdGQUErRSxzQkFJakdqVSxJQUFBQSxjQUFDdzFELEVBQWdCLENBQ2Y3M0MsU0FBVTVDLEVBQ1YwQixRQUFTbzVDLElBRVg3MUQsSUFBQUEsY0FBQSxVQUFRaVUsVUFBVSwwRUFBeUUsVUFHM0ZqVSxJQUFBQSxjQUFBLE1BQ0VpVSxVQUFXNkksS0FBVyx3Q0FBeUMsQ0FDN0Qsb0RBQXFEL0IsS0FHdERBLEdBQ0MvYSxJQUFBQSxjQUFBQSxJQUFBQSxTQUFBLEtBQ0d2UixPQUFPNkUsUUFBUThyRSxHQUFrQmpzRSxLQUNoQyxFQUFFaTFELEVBQVl0MkQsS0FDWmtPLElBQUFBLGNBQUEsTUFDRXpSLElBQUs2NUQsRUFDTG4wQyxVQUFVLGdDQUVWalUsSUFBQUEsY0FBQ3EzRCxFQUFVLENBQUMxOEQsS0FBTXl0RCxFQUFZdDJELE9BQVFBLFdBU3ZCLEVDZ0JyQyxxQkF4Rm9CdXRFLEVBQUd2dEUsYUFDckIsTUFBTXd0RSxFQUFjeHRFLEdBQVF3dEUsYUFBZSxHQUNyQ25yRSxFQUFLczlELFFBQ0wyRSxFQUFZLGVBQ1osS0FBRWhyRCxHQUFTOHBELFFBQVFrQixJQUNuQixXQUFFcjdDLEVBQVUsWUFBRXE2QyxFQUFXLGFBQUVDLEdBQWlCSixjQUFjbUIsSUFDekQ5d0QsRUFBT2d3RCxHQUFhSCxXQUNyQkksRUFBWVAsYUFBYSxhQUN6QlEsRUFBbUJSLGFBQWEsb0JBQ2hDcUMsRUFBYXJDLGFBQWEsY0FDMUJxSSxFQUFjckksYUFBYSxlQUszQlksR0FBa0J0MkMsRUFBQUEsRUFBQUEsY0FBWSxLQUM5QnZFLEVBQ0ZzNkMsSUFFQUQsR0FDRixHQUNDLENBQUNyNkMsRUFBWXE2QyxFQUFhQyxJQUN2QlEsR0FBc0J2MkMsRUFBQUEsRUFBQUEsY0FDMUIsQ0FBQ2x1QixFQUFHMGtFLEtBQ0VBLEVBQ0ZWLEVBQVksQ0FBRVcsTUFBTSxJQUVwQlYsRUFBYSxDQUFFVSxNQUFNLEdBQ3ZCLEdBRUYsQ0FBQ1gsRUFBYUMsSUFNaEIsT0FBS3BpRSxNQUFNQyxRQUFRb3NFLElBQXVDLElBQXZCQSxFQUFZdnJFLE9BSzdDaU0sSUFBQUEsY0FBQzAxRCxHQUFzQjV5QixTQUFRLENBQUN6ekMsTUFBTytiLEdBQ3JDcEwsSUFBQUEsY0FBQzIxRCxHQUF1Qjd5QixTQUFRLENBQUN6ekMsTUFBT2ltRSxHQUN0Q3QxRCxJQUFBQSxjQUFBLE9BQ0VpVSxVQUFVLHVFQUNWLHlCQUF3QjNPLEdBRXhCdEYsSUFBQUEsY0FBQ3UxRCxFQUFTLENBQUM1M0MsU0FBVTVDLEVBQVlzTixTQUFVdXRDLEdBQ3pDNTFELElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsZ0ZBQStFLGlCQUlqR2pVLElBQUFBLGNBQUN3MUQsRUFBZ0IsQ0FDZjczQyxTQUFVNUMsRUFDVjBCLFFBQVNvNUMsSUFFWDcxRCxJQUFBQSxjQUFDcTlELEVBQVcsQ0FBQ3ZyRSxPQUFRLENBQUV3dEUsaUJBQ3ZCdC9ELElBQUFBLGNBQUEsTUFDRWlVLFVBQVc2SSxLQUFXLHdDQUF5QyxDQUM3RCxvREFBcUQvQixLQUd0REEsR0FDQy9hLElBQUFBLGNBQUFBLElBQUFBLFNBQUEsS0FDR3MvRCxFQUFZbnNFLEtBQUksQ0FBQ3JCLEVBQVE2RyxJQUN4QnFILElBQUFBLGNBQUEsTUFDRXpSLElBQUssSUFBSW9LLElBQ1RzYixVQUFVLGdDQUVWalUsSUFBQUEsY0FBQ3EzRCxFQUFVLENBQ1QxOEQsS0FBTSxJQUFJaEMsS0FBU3hFLEVBQUdvOUQsU0FBU3ovRCxLQUMvQkEsT0FBUUEsWUFsQ25CLElBMkMwQixFQzlEckMsZUExQmN5dEUsRUFBR3p0RSxhQUNmLE1BQU1xQyxFQUFLczlELFFBQ0w0RixFQUFhckMsYUFBYSxjQUtoQyxJQUFLN2dFLEVBQUcwZ0UsV0FBVy9pRSxFQUFRLFNBQVUsT0FBTyxLQUU1QyxNQUFNNkksRUFDSnFGLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsZ0ZBQStFLFNBS2pHLE9BQ0VqVSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLGtFQUNialUsSUFBQUEsY0FBQ3EzRCxFQUFVLENBQUMxOEQsS0FBTUEsRUFBTTdJLE9BQVFBLEVBQU80MUIsTUFBT3VwQyxXQUFXLFVBQ3JELEVDUVYsa0JBMUJpQnVPLEVBQUcxdEUsYUFDbEIsTUFBTXFDLEVBQUtzOUQsUUFDTDRGLEVBQWFyQyxhQUFhLGNBS2hDLElBQUs3Z0UsRUFBRzBnRSxXQUFXL2lFLEVBQVEsWUFBYSxPQUFPLEtBRS9DLE1BQU02SSxFQUNKcUYsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxnRkFBK0UsWUFLakcsT0FDRWpVLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUscUVBQ2JqVSxJQUFBQSxjQUFDcTNELEVBQVUsQ0FBQzE4RCxLQUFNQSxFQUFNN0ksT0FBUUEsRUFBTzRZLFNBQVV1bUQsV0FBVyxhQUN4RCxFQ2tDViwrQkFsRG1CaUcsRUFBR3BsRSxhQUNwQixNQUFNcUMsRUFBS3M5RCxRQUNMbHJDLEVBQWF6MEIsR0FBUXkwQixZQUFjLENBQUMsRUFDcENoRSxFQUFXdHZCLE1BQU1DLFFBQVFwQixHQUFReXdCLFVBQVl6d0IsRUFBT3l3QixTQUFXLEdBQy9EODBDLEVBQWFyQyxhQUFhLGVBQzFCLEtBQUU1cEQsR0FBUzhwRCxRQUFRLGNBS3pCLE9BQXVDLElBQW5Dem1FLE9BQU8rRixLQUFLK3hCLEdBQVl4eUIsT0FDbkIsS0FJUGlNLElBQUFBLGNBQUMwMUQsR0FBc0I1eUIsU0FBUSxDQUFDenpDLE1BQU8rYixHQUNyQ3BMLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsdUVBQ2JqVSxJQUFBQSxjQUFBLFVBQ0d2UixPQUFPNkUsUUFBUWl6QixHQUFZcHpCLEtBQUksRUFBRXcrQixFQUFjMmxDLE1BQzlDLE1BQU1uMUMsRUFBYUksRUFBU3J3QixTQUFTeS9CLEdBQy9CNGxDLEVBQW9CcGpFLEVBQUdnakUscUJBQzNCeGxDLEVBQ0E3L0IsR0FHRixPQUNFa08sSUFBQUEsY0FBQSxNQUNFelIsSUFBS29qQyxFQUNMMWQsVUFBVzZJLEtBQVcsK0JBQWdDLENBQ3BELHlDQUEwQ3FGLEtBRzVDbmlCLElBQUFBLGNBQUNxM0QsRUFBVSxDQUNUMThELEtBQU1nM0IsRUFDTjcvQixPQUFRd2xFLEVBQ1JDLGtCQUFtQkEsSUFFbEIsTUFLa0IsRUNackMsb0NBL0IwQmtJLEVBQUczdEUsYUFDM0IsTUFBTTR0RSxFQUFvQjV0RSxHQUFRNHRFLG1CQUFxQixDQUFDLEVBQ2xEckksRUFBYXJDLGFBQWEsZUFDMUIsS0FBRTVwRCxHQUFTOHBELFFBQVEscUJBS3pCLE9BQThDLElBQTFDem1FLE9BQU8rRixLQUFLa3JFLEdBQW1CM3JFLE9BQzFCLEtBSVBpTSxJQUFBQSxjQUFDMDFELEdBQXNCNXlCLFNBQVEsQ0FBQ3p6QyxNQUFPK2IsR0FDckNwTCxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLDhFQUNialUsSUFBQUEsY0FBQSxVQUNHdlIsT0FBTzZFLFFBQVFvc0UsR0FBbUJ2c0UsS0FBSSxFQUFFdytCLEVBQWM3L0IsS0FDckRrTyxJQUFBQSxjQUFBLE1BQUl6UixJQUFLb2pDLEVBQWMxZCxVQUFVLGdDQUMvQmpVLElBQUFBLGNBQUNxM0QsRUFBVSxDQUFDMThELEtBQU1nM0IsRUFBYzcvQixPQUFRQSxTQUtqQixFQ3NCckMsOEJBOUM2QjZ0RSxFQUFHN3RFLGFBQzlCLE1BQU1xQyxFQUFLczlELFFBQ0w0RixFQUFhckMsYUFBYSxjQUVoQyxJQUFLN2dFLEVBQUcwZ0UsV0FBVy9pRSxFQUFRLHdCQUF5QixPQUFPLEtBSzNELE1BQU02SSxFQUNKcUYsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxnRkFBK0UseUJBS2pHLE9BQ0VqVSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLGtGQUNvQixJQUFoQ25pQixFQUFPMDBCLHFCQUNOeG1CLElBQUFBLGNBQUFBLElBQUFBLFNBQUEsS0FDR3JGLEVBQ0RxRixJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLDBFQUF5RSxhQUl6RCxJQUFoQ25pQixFQUFPMDBCLHFCQUNUeG1CLElBQUFBLGNBQUFBLElBQUFBLFNBQUEsS0FDR3JGLEVBQ0RxRixJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLDBFQUF5RSxjQUszRmpVLElBQUFBLGNBQUNxM0QsRUFBVSxDQUNUMThELEtBQU1BLEVBQ043SSxPQUFRQSxFQUFPMDBCLHFCQUNmeXFDLFdBQVcseUJBR1gsRUNUVix1QkE3QnNCMk8sRUFBRzl0RSxhQUN2QixNQUFNcUMsRUFBS3M5RCxRQUNMNEYsRUFBYXJDLGFBQWEsY0FDMUJyNkQsRUFDSnFGLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsZ0ZBQStFLGtCQVFqRyxPQUFLOWYsRUFBRzBnRSxXQUFXL2lFLEVBQVEsaUJBR3pCa08sSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSwwRUFDYmpVLElBQUFBLGNBQUNxM0QsRUFBVSxDQUNUMThELEtBQU1BLEVBQ043SSxPQUFRQSxFQUFPK3RFLGNBQ2Y1TyxXQUFXLG1CQVBtQyxJQVM1QyxFQ1NWLDBCQTlCeUI2TyxFQUFHaHVFLGFBQzFCLE1BQU1xQyxFQUFLczlELFFBQ0w0RixFQUFhckMsYUFBYSxjQUtoQyxJQUFLN2dFLEVBQUcwZ0UsV0FBVy9pRSxFQUFRLG9CQUFxQixPQUFPLEtBRXZELE1BQU02SSxFQUNKcUYsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxnRkFBK0UscUJBS2pHLE9BQ0VqVSxJQUFBQSxjQUFBLE9BQUtpVSxVQUFVLDZFQUNialUsSUFBQUEsY0FBQ3EzRCxFQUFVLENBQ1QxOEQsS0FBTUEsRUFDTjdJLE9BQVFBLEVBQU9pdUUsaUJBQ2Y5TyxXQUFXLHFCQUVULEVDUVYsK0JBOUI4QitPLEVBQUdsdUUsYUFDL0IsTUFBTXFDLEVBQUtzOUQsUUFDTDRGLEVBQWFyQyxhQUFhLGNBS2hDLElBQUs3Z0UsRUFBRzBnRSxXQUFXL2lFLEVBQVEseUJBQTBCLE9BQU8sS0FFNUQsTUFBTTZJLEVBQ0pxRixJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGdGQUErRSwwQkFLakcsT0FDRWpVLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsa0ZBQ2JqVSxJQUFBQSxjQUFDcTNELEVBQVUsQ0FDVDE4RCxLQUFNQSxFQUNON0ksT0FBUUEsRUFBT211RSxzQkFDZmhQLFdBQVcsMEJBRVQsRUNKVixjQWpCYWlQLEVBQUdwdUUsU0FBUXlwRSxjQUFhLE1BQ25DLE1BQ014ckUsRUFESzBoRSxRQUNLN3dELFFBQVE5TyxHQUNsQnF1RSxFQUFpQjVFLEVBQWEsY0FBZ0IsR0FFcEQsT0FDRXY3RCxJQUFBQSxjQUFBLFVBQVFpVSxVQUFVLDBFQUNmLEdBQUdsa0IsSUFBT293RSxJQUNKLEVDU2IsVUFsQmFDLEVBQUd0dUUsYUFDZCxNQUFNZ2pFLEVBQWFFLGFBQWEsY0FFaEMsT0FBSy9oRSxNQUFNQyxRQUFRcEIsR0FBUTArQixNQUd6Qnh3QixJQUFBQSxjQUFDODBELEVBQVUsQ0FDVG42RCxLQUFLLE9BQ0x0TCxNQUFPeUMsRUFBTzArQixLQUNkdmMsVUFBVSxrRUFOMkIsSUFPckMsRUNTTixZQW5CY29zRCxFQUFHdnVFLGFBQ2YsTUFBTXFDLEVBQUtzOUQsUUFDTHFELEVBQWFFLGFBQWEsY0FFaEMsT0FBSzdnRSxFQUFHMGdFLFdBQVcvaUUsRUFBUSxTQUd6QmtPLElBQUFBLGNBQUM4MEQsRUFBVSxDQUNUbjZELEtBQUssUUFDTHRMLE1BQU95QyxFQUFPd3VFLE1BQ2Ryc0QsVUFBVSxtRUFOOEIsSUFPeEMsRUNkT3NzRCxjQUFjbHhFLEdBQ0osaUJBQVZBLEVBQ0YsR0FBR0EsRUFBTW14RSxPQUFPLEdBQUcxL0QsZ0JBQWdCelIsRUFBTTBSLE1BQU0sS0FFakQxUixFQU1Jb3hFLGFBQWdCQyxHQUNWblAsQ0FBQ3ovRCxHQUFVbWdFLFNBQVMsWUFBZSxDQUFDLEtBQ25ELE1BQU05OUQsRUFBS3VzRSxJQUVYLEdBQXFCLE1BQWpCNXVFLEdBQVE2cUIsTUFBZSxPQUFPeG9CLEVBQUdvc0UsV0FBV2psRSxPQUFPeEosRUFBTzZxQixRQUM5RCxHQUFlLGFBQVhzMUMsRUFBdUIsQ0FDekIsR0FBdUIsTUFBbkJuZ0UsR0FBUXVzRSxRQUFpQixPQUFPbHFFLEVBQUdvc0UsV0FBV2psRSxPQUFPeEosRUFBT3VzRSxVQUNoRSxHQUFtQixNQUFmdnNFLEdBQVF1cEUsSUFBYSxPQUFPLy9ELE9BQU94SixFQUFPdXBFLElBQ2hELENBRUEsTUFBTyxFQUFFLEVBTUFzRixZQUFlRCxJQUMxQixNQUFNOS9ELFFBQVVBLENBQUM5TyxFQUFRaTdCLEVBQW1CLElBQUlDLFdBQzlDLE1BQU03NEIsRUFBS3VzRSxJQUVYLEdBQWMsTUFBVjV1RSxFQUNGLE1BQU8sTUFHVCxHQUFJcUMsRUFBR3lzRSxvQkFBb0I5dUUsR0FDekIsT0FBT0EsRUFBUyxNQUFRLFFBRzFCLEdBQXNCLGlCQUFYQSxFQUNULE1BQU8sTUFHVCxHQUFJaTdCLEVBQWlCLzFCLElBQUlsRixHQUN2QixNQUFPLE1BRVRpN0IsRUFBaUJyMEIsSUFBSTVHLEdBRXJCLE1BQU0sS0FBRS9CLEVBQUksWUFBRXV2RSxFQUFXLE1BQUU1M0MsR0FBVTUxQixFQUUvQm83QixhQUFlQSxLQUNuQixHQUFJajZCLE1BQU1DLFFBQVFvc0UsR0FBYyxDQUM5QixNQUFNdUIsRUFBbUJ2QixFQUFZbnNFLEtBQUswK0IsR0FDeENqeEIsUUFBUWl4QixFQUFZOUUsS0FFaEIrekMsRUFBWXA1QyxFQUFROW1CLFFBQVE4bUIsRUFBT3FGLEdBQW9CLE1BQzdELE1BQU8sVUFBVTh6QyxFQUFpQi9sRSxLQUFLLFdBQVdnbUUsSUFDcEQsQ0FBTyxHQUFJcDVDLEVBQU8sQ0FFaEIsTUFBTyxTQURXOW1CLFFBQVE4bUIsRUFBT3FGLEtBRW5DLENBQ0UsTUFBTyxZQUNULEVBeURGLEdBQUlqN0IsRUFBT3UxQixLQUErQixRQUF4QnptQixRQUFROU8sRUFBT3UxQixLQUMvQixNQUFPLFFBR1QsTUFnQk0wNUMsd0JBQTBCQSxDQUFDekssRUFBUzBLLEtBQ3hDLEdBQUkvdEUsTUFBTUMsUUFBUXBCLEVBQU93a0UsSUFBVyxDQUlsQyxNQUFPLElBSGV4a0UsRUFBT3drRSxHQUFTbmpFLEtBQUs4dEUsR0FDekNyZ0UsUUFBUXFnRSxFQUFXbDBDLEtBRUlqeUIsS0FBS2ttRSxLQUNoQyxDQUNBLE9BQU8sSUFBSSxFQU9QRSxFQUFrQixDQTlCTGp1RSxNQUFNQyxRQUFRbkQsR0FDN0JBLEVBQUtvRCxLQUFLNnRCLEdBQWEsVUFBTkEsRUFBZ0JrTSxlQUFpQmxNLElBQUlsbUIsS0FBSyxPQUNsRCxVQUFUL0ssRUFDRW05QixlQUNBLENBQ0ksT0FDQSxVQUNBLFNBQ0EsUUFDQSxTQUNBLFVBQ0EsVUFDQWg3QixTQUFTbkMsR0FDWEEsRUF2RVVveEUsTUFDaEIsR0FDRTF5RSxPQUFPdytCLE9BQU9uN0IsRUFBUSxnQkFDdEJyRCxPQUFPdytCLE9BQU9uN0IsRUFBUSxVQUN0QnJELE9BQU93K0IsT0FBT243QixFQUFRLFlBRXRCLE9BQU9vN0IsZUFDRixHQUNMeitCLE9BQU93K0IsT0FBT243QixFQUFRLGVBQ3RCckQsT0FBT3crQixPQUFPbjdCLEVBQVEseUJBQ3RCckQsT0FBT3crQixPQUFPbjdCLEVBQVEscUJBRXRCLE1BQU8sU0FDRixHQUFJLENBQUMsUUFBUyxTQUFTSSxTQUFTSixFQUFPNEQsUUFFNUMsTUFBTyxVQUNGLEdBQUksQ0FBQyxRQUFTLFVBQVV4RCxTQUFTSixFQUFPNEQsUUFFN0MsTUFBTyxTQUNGLEdBQ0xqSCxPQUFPdytCLE9BQU9uN0IsRUFBUSxZQUN0QnJELE9BQU93K0IsT0FBT243QixFQUFRLFlBQ3RCckQsT0FBT3crQixPQUFPbjdCLEVBQVEscUJBQ3RCckQsT0FBT3crQixPQUFPbjdCLEVBQVEscUJBQ3RCckQsT0FBT3crQixPQUFPbjdCLEVBQVEsY0FFdEIsTUFBTyxtQkFDRixHQUNMckQsT0FBT3crQixPQUFPbjdCLEVBQVEsWUFDdEJyRCxPQUFPdytCLE9BQU9uN0IsRUFBUSxXQUN0QnJELE9BQU93K0IsT0FBT243QixFQUFRLGNBQ3RCckQsT0FBT3crQixPQUFPbjdCLEVBQVEsY0FDdEJyRCxPQUFPdytCLE9BQU9uN0IsRUFBUSxvQkFDdEJyRCxPQUFPdytCLE9BQU9uN0IsRUFBUSxvQkFFdEIsTUFBTyxTQUNGLFFBQTRCLElBQWpCQSxFQUFPd3VFLE1BQXVCLENBQzlDLEdBQXFCLE9BQWpCeHVFLEVBQU93dUUsTUFDVCxNQUFPLE9BQ0YsR0FBNEIsa0JBQWpCeHVFLEVBQU93dUUsTUFDdkIsTUFBTyxVQUNGLEdBQTRCLGlCQUFqQnh1RSxFQUFPd3VFLE1BQ3ZCLE9BQU9jLE9BQU9DLFVBQVV2dkUsRUFBT3d1RSxPQUFTLFVBQVksU0FDL0MsR0FBNEIsaUJBQWpCeHVFLEVBQU93dUUsTUFDdkIsTUFBTyxTQUNGLEdBQUlydEUsTUFBTUMsUUFBUXBCLEVBQU93dUUsT0FDOUIsTUFBTyxhQUNGLEdBQTRCLGlCQUFqQnh1RSxFQUFPd3VFLE1BQ3ZCLE1BQU8sUUFFWCxDQUNBLE9BQU8sSUFBSSxFQXFCTGEsR0FZWUosd0JBQXdCLFFBQVMsT0FDakNBLHdCQUF3QixRQUFTLE9BQ2pDQSx3QkFBd0IsUUFBUyxRQUdsRHR3RSxPQUFPNndFLFNBQ1B4bUUsS0FBSyxPQUlSLE9BRkFpeUIsRUFBaUJqakIsT0FBT2hZLEdBRWpCb3ZFLEdBQW1CLEtBQUssRUFHakMsT0FBT3RnRSxPQUFPLEVBR0hnZ0Usb0JBQXVCOXVFLEdBQTZCLGtCQUFYQSxFQUV6QytpRSxXQUFhQSxDQUFDL2lFLEVBQVF3a0UsSUFDdEIsT0FBWHhrRSxHQUNrQixpQkFBWEEsR0FDUHJELE9BQU93K0IsT0FBT243QixFQUFRd2tFLEdBRVhtQixvQkFBb0JpSixHQUNUNXVFLElBQ3BCLE1BQU1xQyxFQUFLdXNFLElBRVgsT0FDRTV1RSxHQUFRcXNFLFNBQ1Jyc0UsR0FBUXNzRSxhQUNSdHNFLEdBQVF1cEUsS0FDUnZwRSxHQUFRdXNFLFNBQ1J2c0UsR0FBUXdzRSxnQkFDUnhzRSxHQUFRaXhCLE1BQ1JqeEIsR0FBUXlzRSxhQUNSenNFLEdBQVEwc0UsT0FDUjFzRSxHQUFRMnNFLFVBQ1Izc0UsR0FBUW8xQixPQUNScDFCLEdBQVFxMUIsT0FDUnIxQixHQUFRczFCLE9BQ1JqekIsRUFBRzBnRSxXQUFXL2lFLEVBQVEsUUFDdEJxQyxFQUFHMGdFLFdBQVcvaUUsRUFBUSxPQUN0QnFDLEVBQUcwZ0UsV0FBVy9pRSxFQUFRLFNBQ3RCcUMsRUFBRzBnRSxXQUFXL2lFLEVBQVEsU0FDdEJBLEdBQVFzdEUsa0JBQ1J0dEUsR0FBUXd0RSxhQUNSbnJFLEVBQUcwZ0UsV0FBVy9pRSxFQUFRLFVBQ3RCcUMsRUFBRzBnRSxXQUFXL2lFLEVBQVEsYUFDdEJBLEdBQVF5MEIsWUFDUnowQixHQUFRNHRFLG1CQUNSdnJFLEVBQUcwZ0UsV0FBVy9pRSxFQUFRLHlCQUN0QnFDLEVBQUcwZ0UsV0FBVy9pRSxFQUFRLGtCQUN0QnFDLEVBQUcwZ0UsV0FBVy9pRSxFQUFRLHFCQUN0QnFDLEVBQUcwZ0UsV0FBVy9pRSxFQUFRLDBCQUN0QkEsR0FBUXcwQixhQUNSeDBCLEdBQVEwK0IsTUFDUnI4QixFQUFHMGdFLFdBQVcvaUUsRUFBUSxVQUN0QnFDLEVBQUcwZ0UsV0FBVy9pRSxFQUFRLGtCQUN0QnFDLEVBQUcwZ0UsV0FBVy9pRSxFQUFRLFlBQ3RCQSxHQUFRNjRDLFVBQ1J4MkMsRUFBR290RSxxQkFBcUJ6dkUsR0FBUWlDLE9BQVMsQ0FBQyxFQU9uQ29JLGFBQWE5TSxHQUVaLE9BQVZBLEdBQ0EsQ0FBQyxTQUFVLFNBQVUsV0FBVzZDLGdCQUFnQjdDLEdBRXpDaU0sT0FBT2pNLEdBR1o0RCxNQUFNQyxRQUFRN0QsR0FDVCxJQUFJQSxFQUFNOEQsSUFBSWdKLGNBQVdyQixLQUFLLFNBR2hDaEUsS0FBS3FGLFVBQVU5TSxHQXlEbEJteUUseUJBQTJCQSxDQUFDQyxFQUFPL3BFLEVBQUtFLEtBQzVDLE1BQU04cEUsRUFBd0IsaUJBQVJocUUsRUFDaEJpcUUsRUFBd0IsaUJBQVIvcEUsRUFFdEIsT0FBSThwRSxHQUFVQyxFQUNSanFFLElBQVFFLEVBQ0gsR0FBR0YsS0FBTytwRSxJQUVWLElBQUkvcEUsTUFBUUUsTUFBUTZwRSxJQUczQkMsRUFDSyxLQUFLaHFFLEtBQU8rcEUsSUFFakJFLEVBQ0ssS0FBSy9wRSxLQUFPNnBFLElBR2QsSUFBSSxFQUdBL0YscUJBQXdCNXBFLElBQ25DLE1BQU0ycEUsRUFBYyxHQUdkbUcsRUEvRThCQyxDQUFDL3ZFLElBQ3JDLEdBQWtDLGlCQUF2QkEsR0FBUTh2RSxXQUF5QixPQUFPLEtBQ25ELEdBQUk5dkUsRUFBTzh2RSxZQUFjLEVBQUcsT0FBTyxLQUNuQyxHQUEwQixJQUF0Qjl2RSxFQUFPOHZFLFdBQWtCLE9BQU8sS0FFcEMsTUFBTSxXQUFFQSxHQUFlOXZFLEVBRXZCLEdBQUlzdkUsT0FBT0MsVUFBVU8sR0FDbkIsTUFBTyxlQUFlQSxJQUd4QixNQUNNRSxFQUFTLElBRE9GLEVBQVd2b0UsV0FBV3lYLE1BQU0sS0FBSyxHQUFHL2MsT0FJMUQsTUFBTyxlQUZXNnRFLEVBQWFFLEtBQ1hBLEdBQzRCLEVBZ0U3QkQsQ0FBOEIvdkUsR0FDOUIsT0FBZjh2RSxHQUNGbkcsRUFBWXBsRSxLQUFLLENBQUU2UCxNQUFPLFNBQVU3VyxNQUFPdXlFLElBRTdDLE1BQU1HLEVBakUrQkMsQ0FBQ2x3RSxJQUN0QyxNQUFNMkQsRUFBVTNELEdBQVEyRCxRQUNsQkQsRUFBVTFELEdBQVEwRCxRQUNsQmc5QixFQUFtQjFnQyxHQUFRMGdDLGlCQUMzQkMsRUFBbUIzZ0MsR0FBUTJnQyxpQkFDM0J3dkMsRUFBZ0MsaUJBQVp4c0UsRUFDcEJ5c0UsRUFBZ0MsaUJBQVoxc0UsRUFDcEIyc0UsRUFBa0QsaUJBQXJCM3ZDLEVBQzdCNHZDLEVBQWtELGlCQUFyQjN2QyxFQUM3QjR2QyxFQUFpQkYsS0FBeUJGLEdBQWN4c0UsRUFBVSs4QixHQUNsRTh2QyxFQUFpQkYsS0FBeUJGLEdBQWMxc0UsRUFBVWk5QixHQUV4RSxJQUNHd3ZDLEdBQWNFLEtBQ2RELEdBQWNFLEdBTWYsTUFBTyxHQUpXQyxFQUFpQixJQUFNLE1BRXhCQSxFQUFpQjd2QyxFQUFtQi84QixNQUNwQzZzRSxFQUFpQjd2QyxFQUFtQmo5QixJQUZuQzhzRSxFQUFpQixJQUFNLE1BSzNDLEdBQUlMLEdBQWNFLEVBR2hCLE1BQU8sR0FGV0UsRUFBaUIsSUFBTSxPQUN4QkEsRUFBaUI3dkMsRUFBbUIvOEIsSUFHdkQsR0FBSXlzRSxHQUFjRSxFQUdoQixNQUFPLEdBRldFLEVBQWlCLElBQU0sT0FDeEJBLEVBQWlCN3ZDLEVBQW1CajlCLElBSXZELE9BQU8sSUFBSSxFQWdDU3dzRSxDQUErQmx3RSxHQUMvQixPQUFoQml3RSxHQUNGdEcsRUFBWXBsRSxLQUFLLENBQUU2UCxNQUFPLFNBQVU3VyxNQUFPMHlFLElBSXpDandFLEdBQVE0RCxRQUNWK2xFLEVBQVlwbEUsS0FBSyxDQUFFNlAsTUFBTyxTQUFVN1csTUFBT3lDLEVBQU80RCxTQUlwRCxNQUFNNnNFLEVBQWNmLHlCQUNsQixhQUNBMXZFLEdBQVE4RCxVQUNSOUQsR0FBUTZELFdBRVUsT0FBaEI0c0UsR0FDRjlHLEVBQVlwbEUsS0FBSyxDQUFFNlAsTUFBTyxTQUFVN1csTUFBT2t6RSxJQUV6Q3p3RSxHQUFRa0UsU0FDVnlsRSxFQUFZcGxFLEtBQUssQ0FBRTZQLE1BQU8sU0FBVTdXLE1BQU8sV0FBV3lDLEdBQVFrRSxZQUk1RGxFLEdBQVE4bEUsa0JBQ1Y2RCxFQUFZcGxFLEtBQUssQ0FDZjZQLE1BQU8sU0FDUDdXLE1BQU8sZUFBZXlDLEVBQU84bEUscUJBRzdCOWxFLEdBQVErbEUsaUJBQ1Y0RCxFQUFZcGxFLEtBQUssQ0FDZjZQLE1BQU8sU0FDUDdXLE1BQU8sYUFBYXlDLEVBQU8rbEUsb0JBSy9CLE1BQU0ySyxFQUFhaEIseUJBQ2pCMXZFLEdBQVErRCxZQUFjLGVBQWlCLFFBQ3ZDL0QsR0FBUWlFLFNBQ1JqRSxHQUFRZ0UsVUFFUyxPQUFmMHNFLEdBQ0YvRyxFQUFZcGxFLEtBQUssQ0FBRTZQLE1BQU8sUUFBUzdXLE1BQU9tekUsSUFFeEMxd0UsR0FBUStELGNBQWdCMnNFLEdBQzFCL0csRUFBWXBsRSxLQUFLLENBQUU2UCxNQUFPLFFBQVM3VyxNQUFPLFdBRTVDLE1BQU1vekUsRUFBZ0JqQix5QkFDcEIsa0JBQ0ExdkUsR0FBUTR3RSxZQUNSNXdFLEdBQVE2d0UsYUFFWSxPQUFsQkYsR0FDRmhILEVBQVlwbEUsS0FBSyxDQUFFNlAsTUFBTyxRQUFTN1csTUFBT296RSxJQUk1QyxNQUFNRyxFQUFjcEIseUJBQ2xCLGFBQ0ExdkUsR0FBUXdnQyxjQUNSeGdDLEdBQVFnL0IsZUFNVixPQUpvQixPQUFoQjh4QyxHQUNGbkgsRUFBWXBsRSxLQUFLLENBQUU2UCxNQUFPLFNBQVU3VyxNQUFPdXpFLElBR3RDbkgsQ0FBVyxFQUdQdEUscUJBQXVCQSxDQUFDeGxDLEVBQWM3L0IsSUFDNUNBLEdBQVF5bEUsa0JBRU50a0UsTUFBTStHLEtBQ1h2TCxPQUFPNkUsUUFBUXhCLEVBQU95bEUsbUJBQW1COWlFLFFBQU8sQ0FBQ2lOLEdBQU01UyxFQUFNa0osS0FDdEQvRSxNQUFNQyxRQUFROEUsSUFDZEEsRUFBSzlGLFNBQVN5L0IsSUFFbkJqd0IsRUFBSWhKLElBQUk1SixHQUVENFMsR0FMMEJBLEdBTWhDLElBQUlwSixNQVY4QixHQWM1QnUwQixjQUFpQng5QixHQUNYLGlCQUFWQSxHQUNHLE9BQVZBLElBQ0M0RCxNQUFNQyxRQUFRN0QsS0FDbUIsT0FBakNaLE9BQU9vMEUsZUFBZXh6RSxJQUNyQlosT0FBT28wRSxlQUFleHpFLEtBQVdaLE9BQU9NLFdBYS9CNmtFLGtCQUFvQkEsSUFDeEIsQ0FFTCxVQUNBLGNBQ0EsTUFDQSxVQUNBLGlCQUNBLGNBQ0EsT0FDQSxRQUNBLFdBRUEsUUFDQSxRQUNBLFFBQ0EsTUFDQSxLQUNBLE9BQ0EsT0FDQSxtQkFDQSxjQUNBLFFBQ0EsV0FDQSxhQUNBLG9CQUNBLHVCQUNBLGdCQUVBLG1CQUNBLHdCQUdBLE9BQ0EsT0FDQSxRQUVBLGFBQ0EsVUFDQSxtQkFDQSxVQUNBLG1CQUVBLFlBQ0EsWUFDQSxVQUVBLFdBQ0EsV0FDQSxjQUNBLGNBQ0EsY0FFQSxnQkFDQSxnQkFDQSxXQUNBLG9CQUVBLFFBQ0EsY0FDQSxVQUNBLGFBQ0EsV0FDQSxZQUNBLFdBRUEsU0FFQSxrQkFDQSxtQkFDQSxpQkFJU2tQLHlCQUE0QnBDLEdBQ1Q1dUUsSUFDNUIsTUFDTWl4RSxFQURLckMsSUFDUzlNLG9CQUVwQixPQUFPL21DLGNBQWMvNkIsR0FwRkNreEUsRUFBQzN6RSxFQUFPNHpFLEtBQ2hDLE1BQU1DLEVBQWdCLElBQUk1cUUsSUFBSTJxRSxHQUM5QixPQUFPNXpFLEVBQU1vQixRQUFROEgsSUFBVTJxRSxFQUFjbHNFLElBQUl1QixJQUFNLEVBbUZqRHlxRSxDQUFXdjBFLE9BQU8rRixLQUFLMUMsR0FBU2l4RSxHQUNoQyxFQUFFLEVBTUdwMkMsaUJBQWdCQSxDQUFDNzZCLEVBQVEvQixLQUNwQyxNQUFNNjhCLEVBQW9CL3dCLEVBQUFBLElBQUloSyxNQUFNQyxHQUVwQyxJQUFLODZCLElBQXNCQyxjQUFjLzZCLEdBQ3ZDLE9BQU8sRUFHVCxNQUFNcXhFLFFBQVdyMkMsR0FDZi84QixJQUFTKzhCLEdBQWU3NUIsTUFBTUMsUUFBUW5ELElBQVNBLEVBQUttQyxTQUFTNDZCLEdBRXpEQSxFQUFhRixFQUFvQjk2QixFQUFPbEQsSUFBSSxRQUFVa0QsRUFBTy9CLEtBRW5FLE9BQUlxYSxFQUFBQSxLQUFLM1QsT0FBT3EyQixJQUFlNzVCLE1BQU1DLFFBQVE0NUIsR0FDcENBLEVBQVdsMkIsTUFBTW9xQixHQUFNbWlELFFBQVFuaUQsS0FHakNtaUQsUUFBUXIyQyxFQUFXLEVDamdCdEJzMkMsV0FBYUEsRUFBR2xGLGdCQUVqQnJ4QyxjQUFjcXhDLElBQ2EsaUJBQXJCQSxFQUFXaDRELE9BQ1UsaUJBQXJCZzRELEVBQVc3dUUsTUFNbEIyUSxJQUFBQSxjQUFBLFFBQ0VpVSxVQUFXLG9FQUFvRWlxRCxFQUFXaDRELFNBRXpGZzRELEVBQVc3dUUsT0FQUCxLQW1CWCxHQUFlMlEsSUFBQUEsS0FBV29qRSxZQ0QxQixvQ0E1QjBCQyxFQUFHOUwsdUJBQ3RCdGtFLE1BQU1DLFFBQVFxa0UsSUFBbUQsSUFBN0JBLEVBQWtCeGpFLE9BS3pEaU0sSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSw4RUFDYmpVLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsZ0ZBQStFLHlCQUcvRmpVLElBQUFBLGNBQUEsVUFDR3UzRCxFQUFrQnBrRSxLQUFLdytCLEdBQ3RCM3hCLElBQUFBLGNBQUEsTUFBSXpSLElBQUtvakMsR0FDUDN4QixJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGtGQUNiMGQsUUFaSixLQzRCWCx1QkE5QnNCMnhDLEVBQUd4eEUsYUFDdkIsTUFBTXFDLEVBQUtzOUQsUUFDTDRGLEVBQWFyQyxhQUFhLGNBS2hDLElBQUs3Z0UsRUFBRzBnRSxXQUFXL2lFLEVBQVEsaUJBQWtCLE9BQU8sS0FFcEQsTUFBTTZJLEVBQ0pxRixJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLGdGQUErRSxrQkFLakcsT0FDRWpVLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsMEVBQ2JqVSxJQUFBQSxjQUFDcTNELEVBQVUsQ0FDVDE4RCxLQUFNQSxFQUNON0ksT0FBUUEsRUFBT3l4RSxjQUNmdFMsV0FBVyxrQkFFVCxFQ1BWLFlBZGN1UyxFQUFHN21ELFFBQVEsR0FBSTdxQixhQUMzQixNQUFNcUMsRUFBS3M5RCxRQUNMZ1MsRUFBZ0I5bUQsR0FBU3hvQixFQUFHbzlELFNBQVN6L0QsR0FFM0MsT0FBSzJ4RSxFQUVFempFLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsOEJBQThCd3ZELEdBRnpCLElBRTZDLEVDUTFFLGlDQWhCb0JoTixFQUFHM2tFLFlBQ2hCQSxHQUFRdzBCLFlBR1h0bUIsSUFBQUEsY0FBQSxPQUFLaVUsVUFBVSx3RUFDYmpVLElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsOEZBQ1puaUIsRUFBT3cwQixjQUxtQixLQ21CbkMsZ0JBbkJnQm85QyxFQUFHNXhFLGFBQ2pCLE1BQU1xQyxFQUFLczlELFFBQ0xxRCxFQUFhRSxhQUFhLGNBRWhDLE9BQUs3Z0UsRUFBRzBnRSxXQUFXL2lFLEVBQVEsV0FHekJrTyxJQUFBQSxjQUFDODBELEVBQVUsQ0FDVG42RCxLQUFLLFVBQ0x0TCxNQUFPeUMsRUFBT2s5QixRQUNkL2EsVUFBVSxxRUFOZ0MsSUFPMUMsRUNFTixvQkFkbUIwdkQsRUFBRzd4RSxhQUNPLElBQXZCQSxHQUFRc3hCLFdBQTRCLEtBR3RDcGpCLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsMEVBQXlFLGNDVTdGLGtCQWRpQjJ2RCxFQUFHOXhFLGFBQ08sSUFBckJBLEdBQVE4OUIsU0FBMEIsS0FHcEM1dkIsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSx3RUFBdUUsYUNVM0YsbUJBZGtCNHZELEVBQUcveEUsYUFDTyxJQUF0QkEsR0FBUSs5QixVQUEyQixLQUdyQzd2QixJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLHdFQUF1RSxjQ2tCM0YsMkJBckJpQjZ2RCxFQUFHaHlFLGFBQ2xCLE1BQU02NEMsRUFBVzc0QyxHQUFRNjRDLFVBQVksR0FDL0JtcUIsRUFBYUUsYUFBYSxjQUVoQyxPQUFLL2hFLE1BQU1DLFFBQVF5M0MsSUFBaUMsSUFBcEJBLEVBQVM1MkMsT0FLdkNpTSxJQUFBQSxjQUFDODBELEVBQVUsQ0FDVG42RCxLQUFLLFdBQ0x0TCxNQUFPeUMsRUFBTzY0QyxTQUNkMTJCLFVBQVUsc0VBUEwsSUFRTCxFQ2lGTixvQ0FwRjBCK3BELEVBQUdsc0UsYUFDM0IsTUFBTXFDLEVBQUtzOUQsUUFDTDJFLEVBQVkscUJBQ1osS0FBRWhyRCxHQUFTOHBELFFBQVFrQixJQUNuQixXQUFFcjdDLEVBQVUsWUFBRXE2QyxFQUFXLGFBQUVDLEdBQWlCSixjQUFjbUIsSUFDekQ5d0QsRUFBT2d3RCxHQUFhSCxXQUNyQkksRUFBWVAsYUFBYSxhQUN6QlEsRUFBbUJSLGFBQWEsb0JBQ2hDRixFQUFhRSxhQUFhLGVBQzFCLHNCQUFFK08sR0FBMEIzTSxZQUM1QjRNLEVBQW9CN3ZFLEVBQUdvdEUscUJBQXFCenZFLEdBSzVDOGpFLEdBQWtCdDJDLEVBQUFBLEVBQUFBLGNBQVksS0FDOUJ2RSxFQUNGczZDLElBRUFELEdBQ0YsR0FDQyxDQUFDcjZDLEVBQVlxNkMsRUFBYUMsSUFDdkJRLEdBQXNCdjJDLEVBQUFBLEVBQUFBLGNBQzFCLENBQUNsdUIsRUFBRzBrRSxLQUNFQSxFQUNGVixFQUFZLENBQUVXLE1BQU0sSUFFcEJWLEVBQWEsQ0FBRVUsTUFBTSxHQUN2QixHQUVGLENBQUNYLEVBQWFDLElBTWhCLE9BQUswTyxHQUFzRCxJQUE3QkMsRUFBa0Jqd0UsT0FLOUNpTSxJQUFBQSxjQUFDMDFELEdBQXNCNXlCLFNBQVEsQ0FBQ3p6QyxNQUFPK2IsR0FDckNwTCxJQUFBQSxjQUFDMjFELEdBQXVCN3lCLFNBQVEsQ0FBQ3p6QyxNQUFPaW1FLEdBQ3RDdDFELElBQUFBLGNBQUEsT0FDRWlVLFVBQVUsOEVBQ1YseUJBQXdCM08sR0FFeEJ0RixJQUFBQSxjQUFDdTFELEVBQVMsQ0FBQzUzQyxTQUFVNUMsRUFBWXNOLFNBQVV1dEMsR0FDekM1MUQsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSxrRkFBaUYsdUJBSW5HalUsSUFBQUEsY0FBQ3cxRCxFQUFnQixDQUNmNzNDLFNBQVU1QyxFQUNWMEIsUUFBU281QyxJQUVYNzFELElBQUFBLGNBQUEsTUFDRWlVLFVBQVc2SSxLQUFXLHdDQUF5QyxDQUM3RCxvREFBcUQvQixLQUd0REEsR0FDQy9hLElBQUFBLGNBQUFBLElBQUFBLFNBQUEsS0FDR2drRSxFQUFrQjd3RSxLQUFLbWpFLEdBQ3RCdDJELElBQUFBLGNBQUM4MEQsRUFBVSxDQUNUdm1FLElBQUsrbkUsRUFDTDM3RCxLQUFNMjdELEVBQ05qbkUsTUFBT3lDLEVBQU93a0UsR0FDZHJpRCxVQUFVLDZEQS9CbkIsSUF1QzBCLEVDN0UvQjZnRCxXQUFhQSxFQUFHbjZELE9BQU10TCxRQUFPNGtCLGdCQUNqQyxNQUFNOWYsRUFBS3M5RCxTQUNMLEtBQUVybUQsR0FBUzhwRCxRQUFRdjZELElBQ25CLFdBQUVvZ0IsRUFBVSxZQUFFcTZDLEVBQVcsYUFBRUMsR0FBaUJKLGNBQWN0NkQsSUFDekQySyxFQUFPZ3dELEdBQWFILFdBQ3JCSSxFQUFZUCxhQUFhLGFBQ3pCUSxFQUFtQlIsYUFBYSxvQkFDaENpUCxFQUNhLGlCQUFWNTBFLEdBQ1UsaUJBQVZBLEdBQ1UsaUJBQVZBLEdBQ1Usa0JBQVZBLEdBQ1UsaUJBQVZBLEdBQ0UsTUFBVEEsRUFDSTZOLEVaNFhxQmduRSxDQUFDNzBFLEdBQzVCdzlCLGNBQWN4OUIsSUFBd0MsSUFBOUJaLE9BQU8rRixLQUFLbkYsR0FBTzBFLE9ZN1gzQm13RSxDQUFjNzBFLElaK1hKODBFLENBQUM5MEUsR0FDM0I0RCxNQUFNQyxRQUFRN0QsSUFBMkIsSUFBakJBLEVBQU0wRSxPWWhZVW93RSxDQUFhOTBFLEdBSy9DdW1FLEdBQWtCdDJDLEVBQUFBLEVBQUFBLGNBQVksS0FDOUJ2RSxFQUNGczZDLElBRUFELEdBQ0YsR0FDQyxDQUFDcjZDLEVBQVlxNkMsRUFBYUMsSUFDdkJRLEdBQXNCdjJDLEVBQUFBLEVBQUFBLGNBQzFCLENBQUNsdUIsRUFBRzBrRSxLQUNFQSxFQUNGVixFQUFZLENBQUVXLE1BQU0sSUFFcEJWLEVBQWEsQ0FBRVUsTUFBTSxHQUN2QixHQUVGLENBQUNYLEVBQWFDLElBTWhCLE9BQUk0TyxFQUVBamtFLElBQUFBLGNBQUEsT0FBS2lVLFVBQVc2SSxLQUFXLGtDQUFtQzdJLElBQzVEalUsSUFBQUEsY0FBQSxRQUFNaVUsVUFBVSwwRkFDYnRaLEdBRUhxRixJQUFBQSxjQUFBLFFBQU1pVSxVQUFVLDRGQUNiOWYsRUFBR2dJLFVBQVU5TSxLQU1sQjZOLEVBRUE4QyxJQUFBQSxjQUFBLE9BQUtpVSxVQUFXNkksS0FBVyxrQ0FBbUM3SSxJQUM1RGpVLElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsMEZBQ2J0WixHQUVIcUYsSUFBQUEsY0FBQSxVQUFRaVUsVUFBVSwwRUFDZmhoQixNQUFNQyxRQUFRN0QsR0FBUyxjQUFnQixpQkFPOUMyUSxJQUFBQSxjQUFDMDFELEdBQXNCNXlCLFNBQVEsQ0FBQ3p6QyxNQUFPK2IsR0FDckNwTCxJQUFBQSxjQUFDMjFELEdBQXVCN3lCLFNBQVEsQ0FBQ3p6QyxNQUFPaW1FLEdBQ3RDdDFELElBQUFBLGNBQUEsT0FDRWlVLFVBQVc2SSxLQUFXLGtDQUFtQzdJLEdBQ3pELHlCQUF3QjNPLEdBRXhCdEYsSUFBQUEsY0FBQ3UxRCxFQUFTLENBQUM1M0MsU0FBVTVDLEVBQVlzTixTQUFVdXRDLEdBQ3pDNTFELElBQUFBLGNBQUEsUUFBTWlVLFVBQVUsMEZBQ2J0WixJQUdMcUYsSUFBQUEsY0FBQ3cxRCxFQUFnQixDQUNmNzNDLFNBQVU1QyxFQUNWMEIsUUFBU281QyxJQUVYNzFELElBQUFBLGNBQUEsVUFBUWlVLFVBQVUsMEVBQ2ZoaEIsTUFBTUMsUUFBUTdELEdBQVMsUUFBVSxVQUVwQzJRLElBQUFBLGNBQUEsTUFDRWlVLFVBQVc2SSxLQUFXLDRDQUE2QyxDQUNqRSx3REFDRy9CLEtBR0pBLEdBQ0MvYSxJQUFBQSxjQUFBQSxJQUFBQSxTQUFBLEtBQ0cvTSxNQUFNQyxRQUFRN0QsR0FDWEEsRUFBTThELEtBQUksQ0FBQ29GLEVBQU1JLElBQ2ZxSCxJQUFBQSxjQUFBLE1BQ0V6UixJQUFLLElBQUlvSyxJQUNUc2IsVUFBVSxnQ0FFVmpVLElBQUFBLGNBQUM4MEQsV0FBVSxDQUNUbjZELEtBQU0sSUFBSWhDLElBQ1Z0SixNQUFPa0osRUFDUDBiLFVBQVdBLE9BSWpCeGxCLE9BQU82RSxRQUFRakUsR0FBTzhELEtBQ3BCLEVBQUV3K0IsRUFBY3l5QyxLQUNkcGtFLElBQUFBLGNBQUEsTUFDRXpSLElBQUtvakMsRUFDTDFkLFVBQVUsZ0NBRVZqVSxJQUFBQSxjQUFDODBELFdBQVUsQ0FDVG42RCxLQUFNZzNCLEVBQ050aUMsTUFBTyswRSxFQUNQbndELFVBQVdBLFdBVUYsRUFVckMsY0M1R0Esb0JBbkNrQnNoRCxFQUFHNTNDLFlBQVcsRUFBT1AsV0FBVWlMLGVBQy9DLE1BQU1nOEMsRUFBbUJyUCxhQUFhLG9CQUVoQ1ksR0FBa0J0MkMsRUFBQUEsRUFBQUEsY0FDckJnbEQsSUFDQ2o4QyxFQUFTaThDLEdBQVEzbUQsRUFBUyxHQUU1QixDQUFDQSxFQUFVMEssSUFHYixPQUNFcm9CLElBQUFBLGNBQUEsVUFDRWpRLEtBQUssU0FDTGtrQixVQUFVLGdDQUNWd0ksUUFBU201QyxHQUVUNTFELElBQUFBLGNBQUEsT0FBS2lVLFVBQVUsMkNBQTJDbUosR0FDMURwZCxJQUFBQSxjQUFBLFFBQ0VpVSxVQUFXNkksS0FBVyxzQ0FBdUMsQ0FDM0QsZ0RBQWlEYSxFQUNqRCxrREFBbURBLEtBR3JEM2QsSUFBQUEsY0FBQ3FrRSxFQUFnQixPQUVaLEVDSmIsa0NBeEJ5QjdPLEVBQUc3M0MsV0FBVWxCLGNBQ3BDLE1BQU1tNUMsR0FBa0J0MkMsRUFBQUEsRUFBQUEsY0FDckJnbEQsSUFDQzduRCxFQUFRNm5ELEdBQVEzbUQsRUFBUyxHQUUzQixDQUFDQSxFQUFVbEIsSUFHYixPQUNFemMsSUFBQUEsY0FBQSxVQUNFalEsS0FBSyxTQUNMa2tCLFVBQVUseUNBQ1Z3SSxRQUFTbTVDLEdBRVJqNEMsRUFBVyxlQUFpQixhQUN0QixFQ0xiLG1CQVhxQjRtRCxJQUNuQnZrRSxJQUFBQSxjQUFBLE9BQ0VzVSxNQUFNLDZCQUNOSixNQUFNLEtBQ05DLE9BQU8sS0FDUEksUUFBUSxhQUVSdlUsSUFBQUEsY0FBQSxRQUFNNVIsRUFBRSxvRENzRENvMkUsc0JBQXdCQSxDQUFDaG5ELEVBQVdpbkQsRUFBWSxDQUFDLEtBQzVELE1BQU1wMUUsRUFBUSxDQUNadU8sV0FBWSxDQUNWeTVELFdBQVUsR0FDVnNFLGVBQWMsaUJBQ2RDLG1CQUFrQix3QkFDbEJDLFdBQVUsYUFDVkMsZUFBYyxpQkFDZEMsc0JBQXFCLHdCQUNyQkMsWUFBVyxjQUNYQyxtQkFBa0IscUJBQ2xCQyxhQUFZLGVBQ1pDLGdCQUFlLGtCQUNmQyxhQUFZLGVBQ1pDLGFBQVksZUFDWkMsYUFBWSxlQUNaQyxXQUFVLGFBQ1ZDLFVBQVMsWUFDVEMsWUFBVyxjQUNYQyxZQUFXLGNBQ1hDLHdCQUF1QiwwQkFDdkJDLG1CQUFrQixxQkFDbEJDLGFBQVksZUFDWkMsZ0JBQWUsa0JBQ2ZDLGtCQUFpQiwrQkFDakJDLHlCQUF3QixvQ0FDeEJDLDRCQUEyQiw4QkFDM0JDLHFCQUFvQix1QkFDcEJDLHdCQUF1QiwwQkFDdkJDLDZCQUE0QiwrQkFDNUJDLFlBQVcsY0FDWEMsWUFBVyxVQUNYQyxhQUFZLFlBQ1pDLGtCQUFpQixHQUNqQkMseUJBQXdCLG9DQUN4QkMscUJBQW9CLHVCQUNwQkMsYUFBWSxZQUNabkgsbUJBQWtCLGlDQUNsQm9ILGVBQWMsZ0JBQ2RDLGtCQUFpQixvQkFDakJDLGdCQUFlLGtCQUNmQyxpQkFBZ0IsbUJBQ2hCbEgsZ0JBQWUsMkJBQ2ZtSCxrQkFBaUIsb0NBQ2pCbEosV0FBVSxHQUNWUyxVQUFTLG9CQUNUQyxpQkFBZ0Isa0NBQ2hCNk8saUJBQWdCLHNCQUNiSSxFQUFVN21FLFlBRWY0eEIsT0FBUSxDQUNOaWtDLGVBQWdCLCtDQVNoQkMsc0JBQXVCLEVBQ3ZCcVEsdUJBQXVCLEtBQ3BCVSxFQUFVajFDLFFBRWZyN0IsR0FBSSxDQUNGb3NFLFdBQVUsY0FDVmhQLFNBQVVrUCxhQUFhaFAsT0FDdkI3d0QsUUFBUysvRCxZQUFZbFAsT0FDckJtUCxvQkFDQS9MLFdBQ0FsQixhQUFjOEQsb0JBQWlCaEcsT0FDL0J0MUQsVUFBUyxhQUNUdS9ELHFCQUNBdkUscUJBQ0F2RCxrQkFDQTJOLHFCQUFzQnVCLHlCQUF5QnJSLFVBQzVDZ1QsRUFBVXR3RSxJQUVmcUosTUFBTyxDQUFFbTRCLE1BQU8sQ0FBQyxJQUdiK3VDLElBQU81NUQsR0FDWDlLLElBQUFBLGNBQUMrNUQsR0FBa0JqM0IsU0FBUSxDQUFDenpDLE1BQU9BLEdBQ2pDMlEsSUFBQUEsY0FBQ3dkLEVBQWMxUyxJQVFuQixPQUxBNDVELElBQUlDLFNBQVcsQ0FDYjVLLGtCQUFpQkEsSUFFbkIySyxJQUFJcmlELFlBQWM3RSxFQUFVNkUsWUFFckJxaUQsR0FBRyxFQUdDRSxnQ0FDWEEsRUFBRzl2RSxlQUNILENBQUMwb0IsRUFBV2luRCxFQUFZLENBQUMsS0FDdkIsTUFBTSxhQUFFcDRELEVBQVksV0FBRXpNLEdBQWU5SyxJQUMvQjZJLEVBQVVpQyxJQUVWeTNELEVBQWFockQsRUFBYSxvQkFDMUJzdkQsRUFBaUJ0dkQsRUFBYSxrQ0FDOUJ1dkQsRUFBcUJ2dkQsRUFDekIsc0NBRUl3dkQsRUFBYXh2RCxFQUFhLDhCQUMxQnl2RCxFQUFpQnp2RCxFQUFhLGtDQUM5QjB2RCxFQUF3QjF2RCxFQUM1Qix5Q0FFSTJ2RCxFQUFjM3ZELEVBQWEsK0JBQzNCNHZELEVBQXFCNXZELEVBQ3pCLHNDQUVJNnZELEVBQWU3dkQsRUFBYSxnQ0FDNUI4dkQsRUFBa0I5dkQsRUFBYSxtQ0FDL0IrdkQsRUFBZS92RCxFQUFhLGdDQUM1Qmd3RCxFQUFlaHdELEVBQWEsZ0NBQzVCaXdELEVBQWVqd0QsRUFBYSxnQ0FDNUJrd0QsRUFBYWx3RCxFQUFhLDhCQUMxQm13RCxFQUFZbndELEVBQWEsNkJBQ3pCb3dELEVBQWNwd0QsRUFBYSwrQkFDM0Jxd0QsRUFBY3J3RCxFQUFhLCtCQUMzQnN3RCxFQUEwQnR3RCxFQUM5QiwyQ0FFSXV3RCxFQUFxQnZ3RCxFQUN6QixzQ0FFSXd3RCxFQUFleHdELEVBQWEsZ0NBQzVCeXdELEVBQWtCendELEVBQWEsbUNBQy9CMHdELEVBQW9CMXdELEVBQWEscUNBQ2pDMndELEVBQTJCM3dELEVBQy9CLDRDQUVJNHdELEVBQThCNXdELEVBQ2xDLCtDQUVJNndELEVBQXVCN3dELEVBQzNCLHdDQUVJOHdELEVBQTBCOXdELEVBQzlCLDJDQUVJK3dELEVBQStCL3dELEVBQ25DLGdEQUVJZ3hELEVBQWNoeEQsRUFBYSwrQkFDM0JpeEQsRUFBY2p4RCxFQUFhLCtCQUMzQmt4RCxFQUFlbHhELEVBQWEsZ0NBQzVCbXhELEVBQW9CbnhELEVBQWEscUNBQ2pDb3hELEVBQTJCcHhELEVBQy9CLDRDQUVJcXhELEVBQXVCcnhELEVBQzNCLHdDQUVJc3hELEVBQWV0eEQsRUFBYSxnQ0FDNUJtcUQsRUFBcUJucUQsRUFDekIsc0NBRUl1eEQsRUFBaUJ2eEQsRUFBYSxrQ0FDOUJ3eEQsRUFBb0J4eEQsRUFBYSxxQ0FDakN5eEQsRUFBa0J6eEQsRUFBYSxtQ0FDL0IweEQsRUFBbUIxeEQsRUFBYSxvQ0FDaEN3cUQsRUFBa0J4cUQsRUFBYSxtQ0FDL0IyeEQsRUFBb0IzeEQsRUFBYSxxQ0FDakN5b0QsRUFBYXpvRCxFQUFhLDhCQUMxQmtwRCxFQUFZbHBELEVBQWEsNkJBQ3pCbXBELEVBQW1CbnBELEVBQWEsb0NBQ2hDZzRELEVBQW1CaDRELEVBQWEsb0NBRXRDLE9BQU9tNEQsc0JBQXNCaG5ELEVBQVcsQ0FDdEM1ZixXQUFZLENBQ1Z5NUQsYUFDQXNFLGlCQUNBQyxxQkFDQUMsYUFDQUMsaUJBQ0FDLHdCQUNBQyxjQUNBQyxxQkFDQUMsZUFDQUMsa0JBQ0FDLGVBQ0FDLGVBQ0FDLGVBQ0FDLGFBQ0FDLFlBQ0FDLGNBQ0FDLGNBQ0FDLDBCQUNBQyxxQkFDQUMsZUFDQUMsa0JBQ0FDLG9CQUNBQywyQkFDQUMsOEJBQ0FDLHVCQUNBQywwQkFDQUMsK0JBQ0FDLGNBQ0FDLGNBQ0FDLGVBQ0FDLG9CQUNBQywyQkFDQUMsdUJBQ0FDLGVBQ0FuSCxxQkFDQW9ILGlCQUNBQyxvQkFDQUMsa0JBQ0FDLG1CQUNBbEgsa0JBQ0FtSCxvQkFDQWxKLGFBQ0FTLFlBQ0FDLG1CQUNBNk8sc0JBQ0dJLEVBQVU3bUUsWUFFZjR4QixPQUFRLENBQ051MEMsc0JBQXVCcG1FLEVBQVF5b0Isa0JBQzVCcStDLEVBQVVqMUMsUUFFZnI3QixHQUFJLElBQ0Nzd0UsRUFBVXR3RSxLQUVmLEVDOUlOLG9CQWxGK0Iwd0UsRUFBRy92RSxZQUFXWCxTQUMzQyxNQUFNdXNFLFdBQWFBLEtBQUEsQ0FDakJILFdBQVlwc0UsRUFBR29zRSxjQUNacHNFLEVBQUdxOUQsbUJBR1IsTUFBTyxDQUNMNXpELFdBQVksQ0FDVmt6RCxpQkFBa0J1RyxHQUNsQnlOLCtCQUFnQ25KLGlCQUNoQ29KLG1DQUFvQ25KLHdCQUNwQ29KLDJCQUE0Qm5KLGFBQzVCb0osK0JBQWdDbkosaUJBQ2hDb0osc0NBQXVDbkosd0JBQ3ZDb0osNEJBQTZCbkosY0FDN0JvSixtQ0FBb0NuSixxQkFDcENvSiw2QkFBOEJuSixlQUM5Qm9KLGdDQUFpQ25KLGtCQUNqQ29KLDZCQUE4Qm5KLGVBQzlCb0osNkJBQThCbkosZUFDOUJvSiw2QkFBOEJuSixlQUM5Qm9KLDJCQUE0Qm5KLGFBQzVCb0osMEJBQTJCbkosWUFDM0JvSiw0QkFBNkJuSixjQUM3Qm9KLDRCQUE2Qm5KLGNBQzdCb0osd0NBQXlDbkosMEJBQ3pDb0osbUNBQW9DbkoscUJBQ3BDb0osNkJBQThCbkosZUFDOUJvSixnQ0FBaUNuSixrQkFDakM1RCxrQ0FBbUM2RCwrQkFDbkNtSix5Q0FBMENsSixvQ0FDMUNtSiw0Q0FBNkNsSiw4QkFDN0NtSixxQ0FBc0NsSix1QkFDdENtSix3Q0FBeUNsSiwwQkFDekNtSiw2Q0FDRWxKLCtCQUNGbUosNEJBQTZCbEosY0FDN0JtSiw0QkFBNkJsSixVQUM3Qm1KLDZCQUE4QmxKLFlBQzlCbUosa0NBQW1DbEosR0FDbkNtSix5Q0FBMENsSixvQ0FDMUNtSixxQ0FBc0NsSix1QkFDdENtSiw2QkFBOEJsSixZQUM5QjdFLG1DQUFvQ3RDLGlDQUNwQ3NRLCtCQUFnQ2xKLGdCQUNoQ21KLGtDQUFtQ2xKLG9CQUNuQ21KLGdDQUFpQ2xKLGtCQUNqQ21KLGlDQUFrQ2xKLG1CQUNsQy9FLGdDQUFpQ25DLDJCQUNqQ3FRLGtDQUFtQ2xKLG9DQUNuQ21KLDJCQUE0QnJTLEdBQzVCc1MsMEJBQTJCN1Isb0JBQzNCOFIsaUNBQWtDN1Isa0NBQ2xDOFIsaUNBQWtDakQsbUJBQ2xDa0QsNEJBQTZCL0Msc0JBQzdCZ0Qsa0NBQ0U1QyxnQ0FBZ0M5dkUsS0FDbEMyeUUsNEJBQTZCQSxJQUFNL1IsR0FDbkNnUyw2QkFBOEJBLElBQU0vUixJQUV0Q3hoRSxHQUFJLENBQ0Zvc0UsV0FBVSxjQUNWL08saUJBQWtCLENBQ2hCRCxTQUFVa1AsYUFBYUMsWUFDdkI5L0QsUUFBUysvRCxZQUFZRCxZQUNyQi9NLGFBQWM4RCxvQkFBaUJpSixZQUMvQkUsb0JBQ0EvTCxXQUNBcEQsTUFDQTJGLFVBQ0FwQyxhQUNBQyxjQUNBQyxRQUNBQyxTQUNBdkIsa0JBQ0EyTixxQkFBc0J1Qix5QkFBeUJwQyxZQUMvQy96QyxjQUFhQSxtQkFHbEIsRUNsR0gsTUFKa0JnN0MsQ0FBQzcxRSxHQUFVOC9CLFNBQVMsSUFBTyxDQUFDLElBM0NUZzJDLEVBQUNDLEVBQU9wTSxFQUFjLENBQUMsS0FDMUQsTUFBTSxTQUFFMWxFLEVBQVEsU0FBRUQsRUFBUSxZQUFFRCxHQUFnQjRsRSxHQUN0QyxTQUFFL3dELEVBQVEsWUFBRWc0RCxFQUFXLFlBQUVDLEdBQWdCbEgsRUFDL0MsSUFBSXFNLEVBQW1CLElBQUlELEdBRTNCLEdBQWdCLE1BQVpuOUQsR0FBd0MsaUJBQWJBLEVBQXVCLENBQ3BELEdBQUkwMkQsT0FBT0MsVUFBVXFCLElBQWdCQSxFQUFjLEVBQUcsQ0FDcEQsTUFBTXFGLEVBQWVELEVBQWlCRSxHQUFHLEdBQ3pDLElBQUssSUFBSXh2RSxFQUFJLEVBQUdBLEVBQUlrcUUsRUFBYWxxRSxHQUFLLEVBQ3BDc3ZFLEVBQWlCRyxRQUFRRixFQUU3QixDQUNJM0csT0FBT0MsVUFBVXNCLEVBT3ZCLENBS0EsR0FISXZCLE9BQU9DLFVBQVV2ckUsSUFBYUEsRUFBVyxJQUMzQ2d5RSxFQUFtQkQsRUFBTTltRSxNQUFNLEVBQUdqTCxJQUVoQ3NyRSxPQUFPQyxVQUFVdHJFLElBQWFBLEVBQVcsRUFDM0MsSUFBSyxJQUFJeUMsRUFBSSxFQUFHc3ZFLEVBQWlCL3pFLE9BQVNnQyxFQUFVeUMsR0FBSyxFQUN2RHN2RSxFQUFpQnp4RSxLQUFLeXhFLEVBQWlCdHZFLEVBQUlzdkUsRUFBaUIvekUsU0FjaEUsT0FWb0IsSUFBaEI4QixJQU9GaXlFLEVBQW1CNzBFLE1BQU0rRyxLQUFLLElBQUkxQixJQUFJd3ZFLEtBR2pDQSxDQUFnQixFQUloQkYsQ0FBc0JoMkMsRUFBUTkvQixHQ3hDdkMsT0FKbUJpM0IsS0FDakIsTUFBTSxJQUFJdnNCLE1BQU0sa0JBQWtCLEVDU3ZCMHJFLE1BQVNuMEUsR0FBV2tzQixLQUFZbHNCLEdBdUJoQ28wRSxLQUFRbndFLEdBQ1pBLEVBQUtnd0UsR0FBRyxHQ2pDSnBILCtCQUF1Qjl1RSxHQUNULGtCQUFYQSxFQUdIczJFLG1CQUFzQnQyRSxHQUMxQis2QixLQUFjLzZCLEdBR1Z1MkUsYUFBZ0J2MkUsR0FDcEI4dUUsK0JBQW9COXVFLElBQVdzMkUsbUJBQW1CdDJFLEdDUzNELFNBcEJBLE1BQU13MkUsU0FDSjd0RSxLQUFPLENBQUMsRUFFUnNFLFFBQUFBLENBQVNwRSxFQUFNdEwsR0FDYjVCLEtBQUtnTixLQUFLRSxHQUFRdEwsQ0FDcEIsQ0FFQWs1RSxVQUFBQSxDQUFXNXRFLFFBQ1csSUFBVEEsRUFDVGxOLEtBQUtnTixLQUFPLENBQUMsU0FFTmhOLEtBQUtnTixLQUFLRSxFQUVyQixDQUVBL0wsR0FBQUEsQ0FBSStMLEdBQ0YsT0FBT2xOLEtBQUtnTixLQUFLRSxFQUNuQixHQ2ZGLE1BRnVCNnRFLElBQU0sRUNFN0IsTUFGdUJDLElBQU0sRUNFN0IsaUJBRnVCQyxJQUFNLEdDRTdCLGtCQUZ3QkMsSUFBTSxHQ0U5QixNQUZ1QkMsSUFBTSxtQkNFN0IsVUFGMEJDLElBQU0saUJDRWhDLFNBRjBCQyxJQUFNLGNDRWhDLGFBRjZCQyxJQUFNLFNDRW5DLEtBRnNCQyxJQUFNLGdCQ0U1QixLQUZzQkMsSUFBTSwwQ0NFNUIsSUFGcUJDLElBQU0sdUJDRTNCLGNBRjhCQyxJQUFNLGtCQ0VwQyxJQUZxQkMsSUFBTSxrQkNFM0IsY0FGOEJDLElBQU0sZUNFcEMsS0FGc0JDLElBQU0sdUNDRzVCLGFBSDZCQyxJQUMzQixpRENDRixhQUY2QkMsSUFBTSxTQ0VuQyxzQkFGcUNDLElBQU0sTUNFM0MsVUFGMEJDLEtBQU0sSUFBSXZ3RSxNQUFPbTFCLGNDRTNDLEtBRnNCcTdDLEtBQU0sSUFBSXh3RSxNQUFPbTFCLGNBQWNySSxVQUFVLEVBQUcsSUNFbEUsS0FGc0IyakQsS0FBTSxJQUFJendFLE1BQU9tMUIsY0FBY3JJLFVBQVUsSUNFL0QsU0FGMEI0akQsSUFBTSxNQ0VoQyxvQkFGMEJDLElBQU0sV0NFaEMsTUFGdUJDLElBQU0sV0M2RDdCLE1DMURNQyxHQUFXLElEdUJqQixNQUFNQyx1QkFBdUIzQixHQUMzQixHQUFZLENBQ1Y0QixNQUNBQyxNQUNBQyxNQUFPMUIsaUJBQ1AyQixPQUFRMUIsa0JBQ1IvbEIsTUFDQSxZQUFhaW1CLFVBQ2J5QixTQUNBLGVBQWdCdkIsYUFDaEJ3QixLQUNBQyxLQUNBcnZFLElBQ0EsZ0JBQWlCZ3VFLGNBQ2pCc0IsSUFDQSxnQkFBaUJwQixjQUNqQnFCLEtBQ0EsZUFBZ0JuQixhQUNoQixlQUFnQkMsYUFDaEIsd0JBQXlCQyxzQkFDekIsWUFBYUMsVUFDYmlCLEtBQ0FDLEtBQ0F2cUMsU0FDQXo2QixTQUFVa2tFLG9CQUNWOXZCLE9BR0Z2L0MsS0FBTyxJQUFLaE4sTUFBSyxHQUVqQixZQUFJbzlFLEdBQ0YsTUFBTyxJQUFLcDlFLE1BQUssRUFDbkIsR0NyRElxOUUsVUFBWUEsQ0FBQ3AxRSxFQUFRcTFFLElBQ0EsbUJBQWRBLEVBQ0ZmLEdBQVNqckUsU0FBU3JKLEVBQVFxMUUsR0FDVixPQUFkQSxFQUNGZixHQUFTekIsV0FBVzd5RSxHQUd0QnMwRSxHQUFTcDdFLElBQUk4RyxHQUV0Qm8xRSxVQUFVRSxZQUFjLElBQU1oQixHQUFTYSxTQUV2QyxtQix1Q0NoQkEsTUFFQSxNQUZvQnJtRCxHQUFZenFCLEdBQU9DLEtBQUt3cUIsR0FBU25yQixTQUFTLFMsdUNDQTlELE1BRUEsTUFGb0JtckIsR0FBWXpxQixHQUFPQyxLQUFLd3FCLEdBQVNuckIsU0FBUyxRLHVDQ0E5RCxNQUVBLE9BRnNCbXJCLEdBQVl6cUIsR0FBT0MsS0FBS3dxQixHQUFTbnJCLFNBQVMsVUNrQ2hFLGlCQWxDK0JtckIsSUFDN0IsSUFBSXltRCxFQUFrQixHQUV0QixJQUFLLElBQUl6eUUsRUFBSSxFQUFHQSxFQUFJZ3NCLEVBQVF6d0IsT0FBUXlFLElBQUssQ0FDdkMsTUFBTTB5RSxFQUFXMW1ELEVBQVEybUQsV0FBVzN5RSxHQUVwQyxHQUFpQixLQUFiMHlFLEVBRUZELEdBQW1CLFdBQ2QsR0FDSkMsR0FBWSxJQUFNQSxHQUFZLElBQzlCQSxHQUFZLElBQU1BLEdBQVksS0FDbEIsSUFBYkEsR0FDYSxLQUFiQSxFQUVBRCxHQUFtQnptRCxFQUFRZzhDLE9BQU9ob0UsUUFDN0IsR0FBaUIsS0FBYjB5RSxHQUFnQyxLQUFiQSxFQUM1QkQsR0FBbUIsWUFDZCxHQUFJQyxFQUFXLElBQUssQ0FFekIsTUFBTUUsRUFBT0MsU0FBU3p3RSxtQkFBbUI0cEIsRUFBUWc4QyxPQUFPaG9FLEtBQ3hELElBQUssSUFBSTh5RSxFQUFJLEVBQUdBLEVBQUlGLEVBQUtyM0UsT0FBUXUzRSxJQUMvQkwsR0FDRSxLQUFPLElBQU1HLEVBQUtELFdBQVdHLEdBQUdqeUUsU0FBUyxLQUFLMEgsT0FBTyxHQUFHRCxhQUU5RCxNQUNFbXFFLEdBQ0UsS0FBTyxJQUFNQyxFQUFTN3hFLFNBQVMsS0FBSzBILE9BQU8sR0FBR0QsYUFFcEQsQ0FFQSxPQUFPbXFFLENBQWUsRSx1Q0MvQnhCLE1BRUEsT0FGc0J6bUQsR0FBWXpxQixHQUFPQyxLQUFLd3FCLEdBQVNuckIsU0FBUyxPLHVDQ0FoRSxNQThCQSxPQTlCc0JtckIsSUFDcEIsTUFBTSttRCxFQUFZeHhFLEdBQU9DLEtBQUt3cUIsR0FBU25yQixTQUFTLFFBQzFDbXlFLEVBQWlCLG1DQUN2QixJQUFJQyxFQUFlLEVBQ2ZDLEVBQVksR0FDWjV4RSxFQUFTLEVBQ1Q2eEUsRUFBZSxFQUVuQixJQUFLLElBQUluekUsRUFBSSxFQUFHQSxFQUFJK3lFLEVBQVV4M0UsT0FBUXlFLElBSXBDLElBSEFzQixFQUFVQSxHQUFVLEVBQUt5eEUsRUFBVUosV0FBVzN5RSxHQUM5Q216RSxHQUFnQixFQUVUQSxHQUFnQixHQUNyQkQsR0FBYUYsRUFBZWhMLE9BQVExbUUsSUFBWTZ4RSxFQUFlLEVBQU0sSUFDckVBLEdBQWdCLEVBSWhCQSxFQUFlLElBQ2pCRCxHQUFhRixFQUFlaEwsT0FBUTFtRSxHQUFXLEVBQUk2eEUsRUFBaUIsSUFDcEVGLEdBQWdCLEVBQXlCLEVBQW5CRixFQUFVeDNFLE9BQWMsR0FBTSxHQUd0RCxJQUFLLElBQUl5RSxFQUFJLEVBQUdBLEVBQUlpekUsRUFBY2p6RSxJQUNoQ2t6RSxHQUFhLElBR2YsT0FBT0EsQ0FBUyxFLHVDQzNCbEIsTUFFQSxPQUZzQmxuRCxHQUFZenFCLEdBQU9DLEtBQUt3cUIsR0FBU25yQixTQUFTLFUsdUNDQWhFLE1BRUEsVUFGeUJtckIsR0FBWXpxQixHQUFPQyxLQUFLd3FCLEdBQVNuckIsU0FBUyxhQzZCbkUsTUMxQk0yd0UsR0FBVyxJRE9qQixNQUFNNEIsd0JBQXdCdEQsR0FDNUIsR0FBWSxDQUNWLE9BQVF1RCxNQUNSLE9BQVFDLE1BQ1JDLE9BQ0EsbUJBQW9CQyxpQkFDcEJDLE9BQ0FDLE9BQ0FDLE9BQ0FDLFdBR0YzeEUsS0FBTyxJQUFLaE4sTUFBSyxHQUVqQixZQUFJbzlFLEdBQ0YsTUFBTyxJQUFLcDlFLE1BQUssRUFDbkIsR0NyQkk0K0UsV0FBYUEsQ0FBQ0MsRUFBY0MsSUFDVCxtQkFBWkEsRUFDRnZDLEdBQVNqckUsU0FBU3V0RSxFQUFjQyxHQUNsQixPQUFaQSxFQUNGdkMsR0FBU3pCLFdBQVcrRCxHQUd0QnRDLEdBQVNwN0UsSUFBSTA5RSxHQUV0QkQsV0FBV3JCLFlBQWMsSUFBTWhCLEdBQVNhLFNBRXhDLG9CQ0hBLEdBWGlDLENBQy9CLGFBQWMyQixJQUFNLFNBQ3BCLFdBQVlDLElBQU0sc0NBQ2xCLFdBQVlDLElBQU0sdUJBQ2xCLFlBQWFDLElBQU0saUJBQ25CLGdCQUFpQkMsSUFBTSxrQkFDdkIsa0JBQW1CQyxJQUFNLCtCQUN6QixXQUFZQyxJQUFNLHFDQUNsQixTQUFVQyxJQUFNLFVDSmxCLEdBSmtDLENBQ2hDLFVBQVdDLElBQU05RSxNQUFNLElBQUk3dUUsU0FBUyxXQ0d0QyxHQUprQyxDQUNoQyxVQUFXNHpFLElBQU0vRSxNQUFNLElBQUk3dUUsU0FBUyxXQ0d0QyxHQUprQyxDQUNoQyxVQUFXNnpFLElBQU1oRixNQUFNLElBQUk3dUUsU0FBUyxXQ1V0QyxHQVZ3QyxDQUN0QyxtQkFBb0I4ekUsSUFBTSxrQkFDMUIsc0JBQXVCQyxJQUFNLHVCQUM3QiwwQkFBMkJDLElBQU0sdUNBQ2pDLGtCQUFtQkMsSUFBTWh5RSxPQUFPaXlFLEdBQUcsMkNBQ25DLG1CQUFvQkMsSUFBTSxzQkFDMUIsd0JBQXlCQyxJQUFNLGlCQUMvQixnQkFBaUJDLElBQU14RixNQUFNLElBQUk3dUUsU0FBUyxXQ2E1QyxNQ3BCTTJ3RSxHQUFXLElESWpCLE1BQU0yRCwwQkFBMEJyRixHQUM5QixHQUFZLElBQ1BzRixNQUNBQyxNQUNBQyxNQUNBQyxNQUNBQyxJQUdMdnpFLEtBQU8sSUFBS2hOLE1BQUssR0FFakIsWUFBSW85RSxHQUNGLE1BQU8sSUFBS3A5RSxNQUFLLEVBQ25CLEdDZkl3Z0YsYUFBZUEsQ0FBQzFqQixFQUFXd2dCLEtBQy9CLEdBQXlCLG1CQUFkQSxFQUNULE9BQU9mLEdBQVNqckUsU0FBU3dyRCxFQUFXd2dCLEdBQy9CLEdBQWtCLE9BQWRBLEVBQ1QsT0FBT2YsR0FBU3pCLFdBQVdoZSxHQUc3QixNQUFNMmpCLEVBQW9CM2pCLEVBQVV6NUMsTUFBTSxLQUFLazNELEdBQUcsR0FDNUNtRyxFQUFvQixHQUFHRCxFQUFrQnA5RCxNQUFNLEtBQUtrM0QsR0FBRyxPQUU3RCxPQUNFZ0MsR0FBU3A3RSxJQUFJMjdELElBQ2J5ZixHQUFTcDdFLElBQUlzL0UsSUFDYmxFLEdBQVNwN0UsSUFBSXUvRSxFQUFrQixFQUduQ0YsYUFBYWpELFlBQWMsSUFBTWhCLEdBQVNhLFNBRTFDLHNCQ09NdUQsdUJBQXlCQSxDQUFDMWlCLEVBQVErUCxFQUFjLENBQUMsS0FDckQsTUFBTSxVQUFFOWxFLEVBQVMsVUFBRUMsR0FBYzZsRSxFQUNqQyxJQUFJNFMsRUFBb0IzaUIsRUFLeEIsR0FISTBWLE9BQU9DLFVBQVUxckUsSUFBY0EsRUFBWSxJQUM3QzA0RSxFQUFvQkEsRUFBa0J0dEUsTUFBTSxFQUFHcEwsSUFFN0N5ckUsT0FBT0MsVUFBVXpyRSxJQUFjQSxFQUFZLEVBQUcsQ0FDaEQsSUFBSTRDLEVBQUksRUFDUixLQUFPNjFFLEVBQWtCdDZFLE9BQVM2QixHQUNoQ3k0RSxHQUFxQkEsRUFBa0I3MUUsSUFBTTYxRSxFQUFrQnQ2RSxPQUVuRSxDQUVBLE9BQU9zNkUsQ0FBaUIsRUFnQzFCLGFBN0JtQkMsQ0FBQ3g4RSxHQUFVOC9CLFVBQVcsQ0FBQyxLQUN4QyxNQUFNLGdCQUFFaW1DLEVBQWUsaUJBQUVELEVBQWdCLGNBQUUyTCxHQUFrQnp4RSxHQUN2RCxRQUFFa0UsRUFBTyxPQUFFTixHQUFXNUQsRUFDdEJ5OEUsRUFBU2xDLEdBQVd4VSxJQUFvQjcwQixLQUM5QyxJQUFJd3JDLEVBc0JKLE9BbkJFQSxFQURxQixpQkFBWng0RSxFQUNTbzRFLHVCOUN6Q0NLLENBQUN6NEUsSUFDdEIsSUFRRSxNQUFNZzRCLEVBQ0osa0dBQ0lDLEVBQWNqNEIsRUFBUTZFLFFBQVFtekIsRUFBa0IsT0FDaERFLEVBQWtCLElBQUlDLEtBQUosQ0FBWUYsR0FFcEMsT0FEQUMsRUFBZ0J0MkIsSUFBTSxJQUNmczJCLEVBQWdCL1UsS0FDekIsQ0FBRSxNQUVBLE1BQU8sUUFDVCxHOEN1QjJDczFELENBQVF6NEUsR0FBVWxFLEdBQ2hDLGlCQUFYNEQsRUEvQ0dnNUUsQ0FBQzU4RSxJQUN0QixNQUFNLE9BQUU0RCxHQUFXNUQsRUFFYjY4RSxFQUFrQjdELEdBQVVwMUUsR0FDbEMsTUFBK0IsbUJBQXBCaTVFLEVBQ0ZBLEVBQWdCNzhFLEc5Q3lCQyxROEN0QkwsRUF3Q0Q0OEUsQ0FBZTU4RSxHQUVqQ3UyRSxhQUFhOUUsSUFDZSxpQkFBckIzTCxRQUNXLElBQVhobUMsRUFFSDMrQixNQUFNQyxRQUFRMCtCLElBQTZCLGlCQUFYQSxFQUNoQjk2QixLQUFLcUYsVUFBVXkxQixHQUVmdzhDLHVCQUF1Qjl5RSxPQUFPczJCLEdBQVM5L0IsR0FFdEIsaUJBQXJCOGxFLEVBaERNZ1gsQ0FBQzk4RSxJQUN6QixNQUFNLGlCQUFFOGxFLEdBQXFCOWxFLEVBRXZCKzhFLEVBQXFCWixHQUFhclcsR0FDeEMsTUFBa0MsbUJBQXZCaVgsRUFDRkEsRUFBbUIvOEUsRzlDY0YsUThDWEwsRUF5Q0Q4OEUsQ0FBa0I5OEUsR0FFbEJzOEUsdUI5Q2hDTSxTOENnQ2lDdDhFLEdBR3BEeThFLEVBQU9DLEVBQWdCLEVDM0RuQk0sdUJBQXlCQSxDQUFDamdELEVBQVE0c0MsRUFBYyxDQUFDLEtBQzVELE1BQU0sUUFBRWhtRSxFQUFPLFFBQUVELEVBQU8saUJBQUVnOUIsRUFBZ0IsaUJBQUVDLEdBQXFCZ3BDLEdBQzNELFdBQUVtRyxHQUFlbkcsRUFDakJzVCxFQUFVM04sT0FBT0MsVUFBVXh5QyxHQUFVLEVBQUl1eUMsT0FBTzROLFFBQ3RELElBQUlDLEVBQThCLGlCQUFaeDVFLEVBQXVCQSxFQUFVLEtBQ25EeTVFLEVBQThCLGlCQUFaMTVFLEVBQXVCQSxFQUFVLEtBQ25EMjVFLEVBQW9CdGdELEVBaUJ4QixHQWZnQyxpQkFBckIyRCxJQUNUeThDLEVBQ2UsT0FBYkEsRUFDSXhwRCxLQUFLN3RCLElBQUlxM0UsRUFBVXo4QyxFQUFtQnU4QyxHQUN0Q3Y4QyxFQUFtQnU4QyxHQUVLLGlCQUFyQnQ4QyxJQUNUeThDLEVBQ2UsT0FBYkEsRUFDSXpwRCxLQUFLL3RCLElBQUl3M0UsRUFBVXo4QyxFQUFtQnM4QyxHQUN0Q3Q4QyxFQUFtQnM4QyxHQUUzQkksRUFDR0YsRUFBV0MsR0FBWXJnRCxHQUFXb2dELEdBQVlDLEdBQVlDLEVBRW5DLGlCQUFmdk4sR0FBMkJBLEVBQWEsRUFBRyxDQUNwRCxNQUFNd04sRUFBWUQsRUFBb0J2TixFQUN0Q3VOLEVBQ2dCLElBQWRDLEVBQ0lELEVBQ0FBLEVBQW9Cdk4sRUFBYXdOLENBQ3pDLENBRUEsT0FBT0QsQ0FBaUIsRUFnQjFCLGFBYm9CcjlFLElBQ2xCLE1BQU0sT0FBRTRELEdBQVc1RCxFQUNuQixJQUFJdTlFLEVBUUosT0FMRUEsRUFEb0IsaUJBQVgzNUUsRUFqRFVnNUUsQ0FBQzU4RSxJQUN0QixNQUFNLE9BQUU0RCxHQUFXNUQsRUFFYjY4RSxFQUFrQjdELEdBQVVwMUUsR0FDbEMsTUFBK0IsbUJBQXBCaTVFLEVBQ0ZBLEVBQWdCNzhFLEcvQ2dDQyxDK0M3QkwsRUEwQ0Q0OEUsQ0FBZTU4RSxHL0NiVCxFK0NrQm5CZzlFLHVCQUF1Qk8sRUFBaUJ2OUUsRUFBTyxFQ25CeEQsY0FicUJBLElBQ25CLE1BQU0sT0FBRTRELEdBQVc1RCxFQUNuQixJQUFJdzlFLEVBUUosT0FMRUEsRUFEb0IsaUJBQVg1NUUsRUF4QlVnNUUsQ0FBQzU4RSxJQUN0QixNQUFNLE9BQUU0RCxHQUFXNUQsRUFFYjY4RSxFQUFrQjdELEdBQVVwMUUsR0FDbEMsR0FBK0IsbUJBQXBCaTVFLEVBQ1QsT0FBT0EsRUFBZ0I3OEUsR0FHekIsT0FBUTRELEdBQ04sSUFBSyxRQUNILE9BQU84eUUsUUFFVCxJQUFLLFFBQ0gsT0FBT0MsUUFJWCxPaERtQjJCLENnRG5CTCxFQVFEaUcsQ0FBZTU4RSxHaERXVCxFZ0ROcEJnOUUsdUJBQXVCUSxFQUFrQng5RSxFQUFPLEVDL0J6RCxjQUpxQkEsR0FDYyxrQkFBbkJBLEVBQU9rOUIsU0FBd0JsOUIsRUFBT2s5QixRQ2dCdEQsT0FBbUJ1Z0QsTUFWSCxDQUNkMUgsTUFDQTJILE9BQ0E5akIsT0FBUTRpQixhQUNSei9DLE9BQVE0Z0QsYUFDUjFnRCxRQUFTMmdELGNBQ1RDLFFBQVNDLGNBQ1RDLEtDZGVDLElBQ1IsTURnQnlCLENBQ2hDbGhGLElBQUdBLENBQUMwWCxFQUFReFgsSUFDVSxpQkFBVEEsR0FBcUJMLE9BQU93K0IsT0FBTzNtQixFQUFReFgsR0FDN0N3WCxFQUFPeFgsR0FHVCxJQUFNLGlCQUFpQkEsTUV0QnJCaWhGLEdBQVksQ0FBQyxRQUFTLFNBRk4sU0FBVSxVQUFXLFNBQVUsVUFBVyxRQ21CMURDLFdBQWNsK0UsSUFDekIsSUFBS3MyRSxtQkFBbUJ0MkUsR0FBUyxPQUFPLEVBRXhDLE1BQU0sU0FBRTY0QyxFQUFRLFFBQUUvckIsRUFBU29RLFFBQVNpaEQsR0FBZW4rRSxFQUVuRCxTQUFJbUIsTUFBTUMsUUFBUXkzQyxJQUFhQSxFQUFTNTJDLFFBQVUsVUFJeEIsSUFBZms4RSxRQUllLElBQVpyeEQsRUFBdUIsRUFHMUJzeEQsZUFBa0JwK0UsSUFDN0IsSUFBS3MyRSxtQkFBbUJ0MkUsR0FBUyxPQUFPLEtBRXhDLE1BQU0sU0FBRTY0QyxFQUFRLFFBQUUvckIsRUFBU29RLFFBQVNpaEQsR0FBZW4rRSxFQUVuRCxPQUFJbUIsTUFBTUMsUUFBUXkzQyxJQUFhQSxFQUFTNTJDLFFBQVUsRUFDekM0MkMsRUFBU3E5QixHQUFHLFFBR0ssSUFBZmlJLEVBQ0ZBLE9BR2MsSUFBWnJ4RCxFQUNGQSxPQURULENBSWdCLEVDL0NadXhELEdBQW9CLENBQ3hCdEksTUFBTyxDQUNMLFFBQ0EsY0FDQSxXQUNBLGNBQ0EsY0FDQSxXQUNBLFdBQ0EsY0FDQSxvQkFFRjJILE9BQVEsQ0FDTixhQUNBLHVCQUNBLG9CQUNBLGdCQUNBLGdCQUNBLGdCQUNBLFdBQ0EsbUJBQ0Esb0JBQ0EseUJBRUY5akIsT0FBUSxDQUNOLFVBQ0EsU0FDQSxZQUNBLFlBQ0Esa0JBQ0EsbUJBQ0EsaUJBRUYzOEIsUUFBUyxDQUNQLFVBQ0EsVUFDQSxtQkFDQSxtQkFDQSxlQUdKb2hELEdBQWtCdGhELE9BQVNzaEQsR0FBa0JwaEQsUUFFN0MsTUFBTXFoRCxHQUFlLFNBRWZDLG1CQUFzQmhoRixRQUNMLElBQVZBLEVBQThCLEtBQzNCLE9BQVZBLEVBQXVCLE9BQ3ZCNEQsTUFBTUMsUUFBUTdELEdBQWUsUUFDN0IreEUsT0FBT0MsVUFBVWh5RSxHQUFlLGlCQUV0QkEsRUFHSHNvRSxTQUFZNW5FLElBQ3ZCLEdBQUlrRCxNQUFNQyxRQUFRbkQsSUFBU0EsRUFBS2dFLFFBQVUsRUFBRyxDQUMzQyxHQUFJaEUsRUFBS21DLFNBQVMsU0FDaEIsTUFBTyxRQUNGLEdBQUluQyxFQUFLbUMsU0FBUyxVQUN2QixNQUFPLFNBQ0YsQ0FDTCxNQUFNbytFLEVBQWV2Z0YsRUFBS1UsUUFBUXV3QixHQUFZLFNBQU5BLElBQ2xDdXZELEVBQWFDLEtBQ2pCRixFQUFhdjhFLE9BQVMsRUFBSXU4RSxFQUFldmdGLEdBRTNDLEdBQUlnZ0YsR0FBVTc5RSxTQUFTcStFLEdBQ3JCLE9BQU9BLENBRVgsQ0FDRixDQUVBLE9BQUlSLEdBQVU3OUUsU0FBU25DLEdBQ2RBLEVBR0YsSUFBSSxFQUdBb3hFLFVBQVlBLENBQUNydkUsRUFBUWk3QixFQUFtQixJQUFJQyxXQUN2RCxJQUFLbzdDLG1CQUFtQnQyRSxHQUFTLE9BQU9zK0UsR0FDeEMsR0FBSXJqRCxFQUFpQi8xQixJQUFJbEYsR0FBUyxPQUFPcytFLEdBRXpDcmpELEVBQWlCcjBCLElBQUk1RyxHQUVyQixJQUFJLEtBQUUvQixFQUFNdXdFLE1BQU96cUMsR0FBYS9qQyxFQUloQyxHQUhBL0IsRUFBTzRuRSxTQUFTNW5FLEdBR0ksaUJBQVRBLEVBQW1CLENBQzVCLE1BQU0wZ0YsRUFBaUJoaUYsT0FBTytGLEtBQUsyN0UsSUFFbkNPLEVBQVcsSUFBSyxJQUFJbDRFLEVBQUksRUFBR0EsRUFBSWk0RSxFQUFlMThFLE9BQVF5RSxHQUFLLEVBQUcsQ0FDNUQsTUFBTW00RSxFQUFnQkYsRUFBZWo0RSxHQUMvQm80RSxFQUF3QlQsR0FBa0JRLEdBRWhELElBQUssSUFBSXJGLEVBQUksRUFBR0EsRUFBSXNGLEVBQXNCNzhFLE9BQVF1M0UsR0FBSyxFQUFHLENBQ3hELE1BQU11RixFQUFtQkQsRUFBc0J0RixHQUMvQyxHQUFJNzhFLE9BQU93K0IsT0FBT243QixFQUFRKytFLEdBQW1CLENBQzNDOWdGLEVBQU80Z0YsRUFDUCxNQUFNRCxDQUNSLENBQ0YsQ0FDRixDQUNGLENBR0EsR0FBb0IsaUJBQVQzZ0YsUUFBeUMsSUFBYjhsQyxFQUEwQixDQUMvRCxNQUFNaTdDLEVBQVlULG1CQUFtQng2QyxHQUNyQzlsQyxFQUE0QixpQkFBZCtnRixFQUF5QkEsRUFBWS9nRixDQUNyRCxDQUdBLEdBQW9CLGlCQUFUQSxFQUFtQixDQUM1QixNQUFNZ2hGLGFBQWdCemEsSUFDcEIsR0FBSXJqRSxNQUFNQyxRQUFRcEIsRUFBT3drRSxJQUFXLENBQ2xDLE1BQU0wYSxFQUFnQmwvRSxFQUFPd2tFLEdBQVNuakUsS0FBSzh0RSxHQUN6Q0UsVUFBVUYsRUFBV2wwQyxLQUV2QixPQUFPNHFDLFNBQVNxWixFQUNsQixDQUNBLE9BQU8sSUFBSSxFQUdQOXBELEVBQVE2cEQsYUFBYSxTQUNyQjVwRCxFQUFRNHBELGFBQWEsU0FDckIzcEQsRUFBUTJwRCxhQUFhLFNBQ3JCMXBELEVBQU12MUIsRUFBT3UxQixJQUFNODVDLFVBQVVydkUsRUFBT3UxQixJQUFLMEYsR0FBb0IsTUFFL0Q3RixHQUFTQyxHQUFTQyxHQUFTQyxLQUM3QnQzQixFQUFPNG5FLFNBQVMsQ0FBQ3p3QyxFQUFPQyxFQUFPQyxFQUFPQyxHQUFLNTJCLE9BQU82d0UsVUFFdEQsQ0FHQSxHQUFvQixpQkFBVHZ4RSxHQUFxQmlnRixXQUFXbCtFLEdBQVMsQ0FDbEQsTUFBTThzQixFQUFVc3hELGVBQWVwK0UsR0FDekJtL0UsRUFBY1osbUJBQW1CenhELEdBQ3ZDN3VCLEVBQThCLGlCQUFoQmtoRixFQUEyQkEsRUFBY2xoRixDQUN6RCxDQUlBLE9BRkFnOUIsRUFBaUJqakIsT0FBT2hZLEdBRWpCL0IsR0FBUXFnRixFQUFZLEVBR2hCeHZFLGFBQVc5TyxHQUNmcXZFLFVBQVVydkUsR0M3SU5vL0UsU0FBWXAvRSxHQUNuQjh1RSwrQkFBb0I5dUUsR0FUV3EvRSxDQUFDci9FLElBQ3JCLElBQVhBLEVBQ0ssQ0FBRXUxQixJQUFLLENBQUMsR0FHVixDQUFDLEVBS0M4cEQsQ0FBc0JyL0UsR0FFMUJzMkUsbUJBQW1CdDJFLEdBSWpCQSxFQUhFLENBQUMsRUNaTnFSLE1BQVFBLENBQUNtRCxFQUFRakIsRUFBUW1xQixFQUFTLENBQUMsS0FDdkMsR0FBSW94QywrQkFBb0J0NkQsS0FBc0IsSUFBWEEsRUFBaUIsT0FBTyxFQUMzRCxHQUFJczZELCtCQUFvQnQ2RCxLQUFzQixJQUFYQSxFQUFrQixPQUFPLEVBQzVELEdBQUlzNkQsK0JBQW9CdjdELEtBQXNCLElBQVhBLEVBQWlCLE9BQU8sRUFDM0QsR0FBSXU3RCwrQkFBb0J2N0QsS0FBc0IsSUFBWEEsRUFBa0IsT0FBTyxFQUU1RCxJQUFLZ2pFLGFBQWEvaEUsR0FBUyxPQUFPakIsRUFDbEMsSUFBS2dqRSxhQUFhaGpFLEdBQVMsT0FBT2lCLEVBTWxDLE1BQU1tcEIsRUFBUyxJQUFLcHFCLEtBQVdpQixHQUcvQixHQUFJakIsRUFBT3RWLE1BQVF1VyxFQUFPdlcsTUFDcEJrRCxNQUFNQyxRQUFRbVMsRUFBT3RWLE9BQWdDLGlCQUFoQnNWLEVBQU90VixLQUFtQixDQUNqRSxNQUFNcWhGLEVBQWFDLGVBQVloc0UsRUFBT3RWLE1BQU02VCxPQUFPMEMsRUFBT3ZXLE1BQzFEMC9CLEVBQU8xL0IsS0FBT2tELE1BQU0rRyxLQUFLLElBQUkxQixJQUFJODRFLEdBQ25DLENBU0YsR0FMSW4rRSxNQUFNQyxRQUFRbVMsRUFBT2tkLFdBQWF0dkIsTUFBTUMsUUFBUW9ULEVBQU9pYyxZQUN6RGtOLEVBQU9sTixTQUFXLElBQUksSUFBSWpxQixJQUFJLElBQUlnTyxFQUFPaWMsWUFBYWxkLEVBQU9rZCxhQUkzRGxkLEVBQU9raEIsWUFBY2pnQixFQUFPaWdCLFdBQVksQ0FDMUMsTUFBTStxRCxFQUFtQixJQUFJaDVFLElBQUksSUFDNUI3SixPQUFPK0YsS0FBSzZRLEVBQU9raEIsZUFDbkI5M0IsT0FBTytGLEtBQUs4UixFQUFPaWdCLGNBR3hCa0osRUFBT2xKLFdBQWEsQ0FBQyxFQUNyQixJQUFLLE1BQU01ckIsS0FBUTIyRSxFQUFrQixDQUNuQyxNQUFNQyxFQUFpQmxzRSxFQUFPa2hCLFdBQVc1ckIsSUFBUyxDQUFDLEVBQzdDNjJFLEVBQWlCbHJFLEVBQU9pZ0IsV0FBVzVyQixJQUFTLENBQUMsRUFHaEQ0MkUsRUFBZTNoRCxXQUFhSixFQUFPN1AsaUJBQ25DNHhELEVBQWUxaEQsWUFBY0wsRUFBTzlQLGlCQUVyQytQLEVBQU9sTixVQUFZa04sRUFBT2xOLFVBQVksSUFBSTl4QixRQUFROGhCLEdBQU1BLElBQU01WCxJQUU5RDgwQixFQUFPbEosV0FBVzVyQixHQUFRd0ksTUFBTXF1RSxFQUFnQkQsRUFBZ0IvaEQsRUFFcEUsQ0FDRixDQXdCQSxPQXJCSTY0QyxhQUFhaGpFLEVBQU9xaUIsUUFBVTJnRCxhQUFhL2hFLEVBQU9vaEIsU0FDcEQrSCxFQUFPL0gsTUFBUXZrQixNQUFNbUQsRUFBT29oQixNQUFPcmlCLEVBQU9xaUIsTUFBTzhILElBSS9DNjRDLGFBQWFoakUsRUFBT3FGLFdBQWEyOUQsYUFBYS9oRSxFQUFPb0UsWUFDdkQra0IsRUFBTy9rQixTQUFXdkgsTUFBTW1ELEVBQU9vRSxTQUFVckYsRUFBT3FGLFNBQVU4a0IsSUFLMUQ2NEMsYUFBYWhqRSxFQUFPaytELGdCQUNwQjhFLGFBQWEvaEUsRUFBT2k5RCxpQkFFcEI5ekMsRUFBTzh6QyxjQUFnQnBnRSxNQUNyQm1ELEVBQU9pOUQsY0FDUGwrRCxFQUFPaytELGNBQ1AvekMsSUFJR0MsQ0FBTSxFQUdmLFNDakVhSyw2QkFBMEJBLENBQ3JDaCtCLEVBQ0EwOUIsRUFBUyxDQUFDLEVBQ1ZPLE9BQWtCaGlDLEVBQ2xCaWlDLEdBQWEsS0FHYixHQUFjLE1BQVZsK0IsUUFBc0MvRCxJQUFwQmdpQyxFQUErQixPQUV6QixtQkFBakJqK0IsR0FBUWEsT0FBcUJiLEVBQVNBLEVBQU9hLFFBQ3hEYixFQUFTby9FLFNBQVNwL0UsR0FFbEIsSUFBSW0rQixPQUFvQ2xpQyxJQUFwQmdpQyxHQUFpQ2lnRCxXQUFXbCtFLEdBRWhFLE1BQU1vK0IsR0FDSEQsR0FBaUJoOUIsTUFBTUMsUUFBUXBCLEVBQU9zMUIsUUFBVXQxQixFQUFPczFCLE1BQU1yekIsT0FBUyxFQUNuRW84QixHQUNIRixHQUFpQmg5QixNQUFNQyxRQUFRcEIsRUFBT3ExQixRQUFVcjFCLEVBQU9xMUIsTUFBTXB6QixPQUFTLEVBQ3pFLElBQUtrOEIsSUFBa0JDLEdBQVlDLEdBQVcsQ0FDNUMsTUFBTUMsRUFBYzhnRCxTQUNQVixLQUFYdGdELEVBQXNCcCtCLEVBQU9zMUIsTUFBb0J0MUIsRUFBT3ExQixVQUUxRHIxQixFQUFTcVIsR0FBTXJSLEVBQVFzK0IsRUFBYVosSUFDeEI1SCxLQUFPd0ksRUFBWXhJLE1BQzdCOTFCLEVBQU84MUIsSUFBTXdJLEVBQVl4SSxLQUV2Qm9vRCxXQUFXbCtFLElBQVdrK0UsV0FBVzUvQyxLQUNuQ0gsR0FBZ0IsRUFFcEIsQ0FDQSxNQUFNSSxFQUFRLENBQUMsRUFDZixJQUFJLElBQUV6SSxFQUFHLFdBQUVyQixFQUFVLHFCQUFFQyxFQUFvQixNQUFFa0IsRUFBSyxTQUFFaGQsR0FBYTVZLEdBQVUsQ0FBQyxFQUN4RS9CLEVBQU82USxhQUFROU8sSUFDZixnQkFBRTZ0QixFQUFlLGlCQUFFRCxHQUFxQjhQLEVBQzVDNUgsRUFBTUEsR0FBTyxDQUFDLEVBQ2QsSUFDSXZGLEdBREEsS0FBRTFuQixFQUFJLE9BQUUyMUIsRUFBTSxVQUFFdHZCLEdBQWM0bUIsRUFFOUJqekIsRUFBTSxDQUFDLEVBT1gsR0FMS2xHLE9BQU93K0IsT0FBT243QixFQUFRLFVBQ3pCQSxFQUFPL0IsS0FBT0EsR0FJWmlnQyxJQUNGcjFCLEVBQU9BLEdBQVEsWUFFZjBuQixHQUFlaU8sRUFBUyxHQUFHQSxLQUFZLElBQU0zMUIsRUFDekNxRyxHQUFXLENBR2JxdkIsRUFEc0JDLEVBQVMsU0FBU0EsSUFBVyxTQUMxQnR2QixDQUMzQixDQUlFZ3ZCLElBQ0ZyN0IsRUFBSTB0QixHQUFlLElBSXJCLE1BQU12WCxFQUFRbFksVUFBVTJ6QixHQUN4QixJQUFJb0ssRUFDQUMsRUFBdUIsRUFFM0IsTUFBTUMseUJBQTJCQSxJQUMvQnV3QyxPQUFPQyxVQUFVdnZFLEVBQU9nL0IsZ0JBQ3hCaC9CLEVBQU9nL0IsY0FBZ0IsR0FDdkJGLEdBQXdCOStCLEVBQU9nL0IsY0E2QjNCQyxlQUFrQnBCLEtBQ2hCeXhDLE9BQU9DLFVBQVV2dkUsRUFBT2cvQixnQkFBa0JoL0IsRUFBT2cvQixjQUFnQixLQUduRUQsOEJBWHFCRyxDQUFDckIsSUFDckIxOEIsTUFBTUMsUUFBUXBCLEVBQU95d0IsV0FDSyxJQUEzQnp3QixFQUFPeXdCLFNBQVN4dUIsU0FFWmpDLEVBQU95d0IsU0FBU3J3QixTQUFTeTlCLEdBVTVCcUIsQ0FBbUJyQixJQUl0Qjc5QixFQUFPZy9CLGNBQWdCRixFQXRDS0ssTUFDOUIsSUFBS2grQixNQUFNQyxRQUFRcEIsRUFBT3l3QixXQUF3QyxJQUEzQnp3QixFQUFPeXdCLFNBQVN4dUIsT0FDckQsT0FBTyxFQUVULElBQUltOUIsRUFBYSxFQWFqQixPQVpJbEIsRUFDRmwrQixFQUFPeXdCLFNBQVN0ckIsU0FDYjFJLEdBQVMyaUMsUUFBMkJuakMsSUFBYjRHLEVBQUlwRyxHQUFxQixFQUFJLElBR3ZEdUQsRUFBT3l3QixTQUFTdHJCLFNBQVMxSSxJQUN2QjJpQyxRQUMwRG5qQyxJQUF4RDRHLEVBQUkwdEIsSUFBY3JuQixNQUFNbTJCLFFBQWlCcGpDLElBQVhvakMsRUFBRTVpQyxLQUM1QixFQUNBLENBQUMsSUFHSnVELEVBQU95d0IsU0FBU3h1QixPQUFTbTlCLENBQVUsRUFxQk1ELEdBQzlDLEdBNkdKLEdBeEdFTixFQURFWCxFQUNvQlcsQ0FBQ2hCLEVBQVV5QixPQUFZcmpDLEtBQzNDLEdBQUkrRCxHQUFVZ1osRUFBTTZrQixHQUFXLENBSTdCLEdBRkE3a0IsRUFBTTZrQixHQUFVL0gsSUFBTTljLEVBQU02a0IsR0FBVS9ILEtBQU8sQ0FBQyxFQUUxQzljLEVBQU02a0IsR0FBVS9ILElBQUl5SixVQUFXLENBQ2pDLE1BQU1DLEVBQWNyK0IsTUFBTUMsUUFBUTRYLEVBQU02a0IsR0FBVWEsTUFDOUNnZ0QsS0FBVzFsRSxFQUFNNmtCLEdBQVVhLFdBQzNCemlDLEVBQ0osR0FBSWlpRixXQUFXbGxFLEVBQU02a0IsSUFDbkJVLEVBQU12bEIsRUFBTTZrQixHQUFVL0gsSUFBSWp0QixNQUFRZzFCLEdBQVl1Z0QsZUFDNUNwbEUsRUFBTTZrQixTQUVILFFBQW9CNWhDLElBQWhCdWpDLEVBQ1RqQixFQUFNdmxCLEVBQU02a0IsR0FBVS9ILElBQUlqdEIsTUFBUWcxQixHQUFZMkIsTUFDekMsQ0FDTCxNQUFNbWdELEVBQWFQLFNBQVNwbUUsRUFBTTZrQixJQUM1QitoRCxFQUFpQjl3RSxhQUFRNndFLEdBQ3pCRSxFQUFXN21FLEVBQU02a0IsR0FBVS9ILElBQUlqdEIsTUFBUWcxQixFQUU3QyxHQUF1QixVQUFuQitoRCxFQUE0QixDQUM5QixNQUFNRSxFQUFjOWhELDZCQUNsQmhsQixFQUFNNmtCLEdBQ05ILEVBQ0E0QixHQUNBLEdBRUZmLEVBQU1zaEQsR0FBWUMsRUFDZnorRSxLQUFLb0YsR0FDQXMwQixLQUFjdDBCLEdBQ1Qsb0JBRUx0RixNQUFNQyxRQUFRcUYsR0FDVCxtQkFFRkEsSUFFUnVDLEtBQUssSUFDVixNQUNFdTFCLEVBQU1zaEQsR0FDZSxXQUFuQkQsRUFDSSxvQkFDQUcsR0FBUUgsR0FBZ0JELEVBRWxDLENBRUEsTUFDRixDQUNBM21FLEVBQU02a0IsR0FBVS9ILElBQUlqdEIsS0FBT21RLEVBQU02a0IsR0FBVS9ILElBQUlqdEIsTUFBUWcxQixDQUN6RCxNQUFZN2tCLEVBQU02a0IsS0FBc0MsSUFBekJuSixJQUU3QjFiLEVBQU02a0IsR0FBWSxDQUNoQi9ILElBQUssQ0FDSGp0QixLQUFNZzFCLEtBS1osSUFBSTNPLEVBQUk4Tyw2QkFDTmhsQixFQUFNNmtCLEdBQ05ILEVBQ0E0QixFQUNBcEIsR0FFR2UsZUFBZXBCLEtBSXBCaUIsSUFDSTM5QixNQUFNQyxRQUFROHRCLEdBQ2hCcnNCLEVBQUkwdEIsR0FBZTF0QixFQUFJMHRCLEdBQWF6ZSxPQUFPb2QsR0FFM0Nyc0IsRUFBSTB0QixHQUFhaHNCLEtBQUsycUIsR0FDeEIsRUFHb0IyUCxDQUFDaEIsRUFBVXlCLEtBQy9CLEdBQUtMLGVBQWVwQixHQUFwQixDQUdBLEdBQ0U5QyxLQUFjLzZCLEVBQU8yL0IsZUFBZUMsVUFDcEM1L0IsRUFBTzIvQixjQUFjRSxlQUFpQmhDLEdBQ2QsaUJBQWpCNzlCLEVBQU9neEIsT0FFZCxJQUFLLE1BQU1qdkIsS0FBUS9CLEVBQU8yL0IsY0FBY0MsUUFDdEMsSUFBaUUsSUFBN0Q1L0IsRUFBT2d4QixNQUFNa0QsT0FBT2wwQixFQUFPMi9CLGNBQWNDLFFBQVE3OUIsSUFBZSxDQUNsRWMsRUFBSWc3QixHQUFZOTdCLEVBQ2hCLEtBQ0YsT0FHRmMsRUFBSWc3QixHQUFZRyw2QkFDZGhsQixFQUFNNmtCLEdBQ05ILEVBQ0E0QixFQUNBcEIsR0FHSlksR0FwQkEsQ0FvQnNCLEVBS3RCWCxFQUFlLENBQ2pCLElBQUkyQixFQVFKLEdBTkVBLE9BRHNCN2pDLElBQXBCZ2lDLEVBQ09BLEVBRUFtZ0QsZUFBZXArRSxJQUlyQmsrQixFQUFZLENBRWYsR0FBc0IsaUJBQVg0QixHQUFnQyxXQUFUN2hDLEVBQ2hDLE1BQU8sR0FBRzZoQyxJQUdaLEdBQXNCLGlCQUFYQSxHQUFnQyxXQUFUN2hDLEVBQ2hDLE9BQU82aEMsRUFHVCxJQUNFLE9BQU85NkIsS0FBS0MsTUFBTTY2QixFQUNwQixDQUFFLE1BRUEsT0FBT0EsQ0FDVCxDQUNGLENBR0EsR0FBYSxVQUFUN2hDLEVBQWtCLENBQ3BCLElBQUtrRCxNQUFNQyxRQUFRMCtCLEdBQVMsQ0FDMUIsR0FBc0IsaUJBQVhBLEVBQ1QsT0FBT0EsRUFFVEEsRUFBUyxDQUFDQSxFQUNaLENBRUEsSUFBSUUsRUFBYyxHQTRCbEIsT0ExQklzMkMsbUJBQW1CMWdELEtBQ3JCQSxFQUFNRSxJQUFNRixFQUFNRSxLQUFPQSxHQUFPLENBQUMsRUFDakNGLEVBQU1FLElBQUlqdEIsS0FBTytzQixFQUFNRSxJQUFJanRCLE1BQVFpdEIsRUFBSWp0QixLQUN2Q20zQixFQUFjRixFQUFPeitCLEtBQUs0K0IsR0FDeEJqQyw2QkFBd0JwSSxFQUFPOEgsRUFBUXVDLEVBQUcvQixNQUkxQ280QyxtQkFBbUIxOUQsS0FDckJBLEVBQVNrZCxJQUFNbGQsRUFBU2tkLEtBQU9BLEdBQU8sQ0FBQyxFQUN2Q2xkLEVBQVNrZCxJQUFJanRCLEtBQU8rUCxFQUFTa2QsSUFBSWp0QixNQUFRaXRCLEVBQUlqdEIsS0FDN0NtM0IsRUFBYyxDQUNaaEMsNkJBQXdCcGxCLEVBQVU4a0IsT0FBUXpoQyxFQUFXaWlDLE1BQ2xEOEIsSUFJUEEsRUFBYysvQyxHQUFRaEssTUFBTS8xRSxFQUFRLENBQUU4L0IsT0FBUUUsSUFDMUNsSyxFQUFJb0ssU0FDTnI5QixFQUFJMHRCLEdBQWV5UCxFQUNkNTBCLEtBQVFtekIsSUFDWDE3QixFQUFJMHRCLEdBQWFoc0IsS0FBSyxDQUFFZzZCLE1BQU9BLEtBR2pDMTdCLEVBQU1tOUIsRUFFRG45QixDQUNULENBR0EsR0FBYSxXQUFUNUUsRUFBbUIsQ0FFckIsR0FBc0IsaUJBQVg2aEMsRUFDVCxPQUFPQSxFQUVULElBQUssTUFBTWpDLEtBQVlpQyxFQUNoQm5qQyxPQUFPdytCLE9BQU8yRSxFQUFRakMsS0FHdkI3a0IsRUFBTTZrQixJQUFXQyxXQUFhalEsR0FHOUI3VSxFQUFNNmtCLElBQVdFLFlBQWNuUSxJQUcvQjVVLEVBQU02a0IsSUFBVy9ILEtBQUt5SixVQUN4QmhCLEVBQU12bEIsRUFBTTZrQixHQUFVL0gsSUFBSWp0QixNQUFRZzFCLEdBQVlpQyxFQUFPakMsR0FHdkRnQixFQUFvQmhCLEVBQVVpQyxFQUFPakMsTUFNdkMsT0FKS3p5QixLQUFRbXpCLElBQ1gxN0IsRUFBSTB0QixHQUFhaHNCLEtBQUssQ0FBRWc2QixNQUFPQSxJQUcxQjE3QixDQUNULENBR0EsT0FEQUEsRUFBSTB0QixHQUFnQm5sQixLQUFRbXpCLEdBQXNDdUIsRUFBN0IsQ0FBQyxDQUFFdkIsTUFBT0EsR0FBU3VCLEdBQ2pEajlCLENBQ1QsQ0FHQSxHQUFhLFVBQVQ1RSxFQUFrQixDQUNwQixJQUFJMmdDLEVBQWMsR0FFbEIsR0FBSTAzQyxtQkFBbUIxOUQsR0FNckIsR0FMSXNsQixJQUNGdGxCLEVBQVNrZCxJQUFNbGQsRUFBU2tkLEtBQU85MUIsRUFBTzgxQixLQUFPLENBQUMsRUFDOUNsZCxFQUFTa2QsSUFBSWp0QixLQUFPK1AsRUFBU2tkLElBQUlqdEIsTUFBUWl0QixFQUFJanRCLE1BRzNDMUgsTUFBTUMsUUFBUXdYLEVBQVN5YyxPQUFRLENBRWpDLE1BQU0sTUFBRUEsS0FBVTJxRCxHQUF5QnBxRCxFQUUzQ2dKLEVBQVlyNkIsUUFDUHFVLEVBQVN5YyxNQUFNaDBCLEtBQUs0K0UsR0FDckJqaUQsNkJBQ0Uzc0IsR0FBTTR1RSxFQUFhRCxFQUFzQnRpRCxHQUN6Q0EsT0FDQXpoQyxFQUNBaWlDLEtBSVIsTUFBTyxHQUFJLzhCLE1BQU1DLFFBQVF3WCxFQUFTMGMsT0FBUSxDQUV4QyxNQUFNLE1BQUVBLEtBQVU0cUQsR0FBeUJ0cUQsRUFFM0NnSixFQUFZcjZCLFFBQ1BxVSxFQUFTMGMsTUFBTWowQixLQUFLOCtFLEdBQ3JCbmlELDZCQUNFM3NCLEdBQU04dUUsRUFBYUQsRUFBc0J4aUQsR0FDekNBLE9BQ0F6aEMsRUFDQWlpQyxLQUlSLEtBQU8sT0FBS0EsR0FBZUEsR0FBY3BJLEVBQUlvSyxTQUszQyxPQUFPbEMsNkJBQXdCcGxCLEVBQVU4a0IsT0FBUXpoQyxFQUFXaWlDLEdBSjVEVSxFQUFZcjZCLEtBQ1Z5NUIsNkJBQXdCcGxCLEVBQVU4a0IsT0FBUXpoQyxFQUFXaWlDLEdBSXpELENBR0YsR0FBSW80QyxtQkFBbUIxZ0QsR0FNckIsR0FMSXNJLElBQ0Z0SSxFQUFNRSxJQUFNRixFQUFNRSxLQUFPOTFCLEVBQU84MUIsS0FBTyxDQUFDLEVBQ3hDRixFQUFNRSxJQUFJanRCLEtBQU8rc0IsRUFBTUUsSUFBSWp0QixNQUFRaXRCLEVBQUlqdEIsTUFHckMxSCxNQUFNQyxRQUFRdzBCLEVBQU1QLE9BQVEsQ0FFOUIsTUFBTSxNQUFFQSxLQUFVK3FELEdBQXNCeHFELEVBRXhDZ0osRUFBWXI2QixRQUNQcXhCLEVBQU1QLE1BQU1oMEIsS0FBS3FGLEdBQ2xCczNCLDZCQUNFM3NCLEdBQU0zSyxFQUFHMDVFLEVBQW1CMWlELEdBQzVCQSxPQUNBemhDLEVBQ0FpaUMsS0FJUixNQUFPLEdBQUkvOEIsTUFBTUMsUUFBUXcwQixFQUFNTixPQUFRLENBRXJDLE1BQU0sTUFBRUEsS0FBVStxRCxHQUFzQnpxRCxFQUV4Q2dKLEVBQVlyNkIsUUFDUHF4QixFQUFNTixNQUFNajBCLEtBQUtxRixHQUNsQnMzQiw2QkFDRTNzQixHQUFNM0ssRUFBRzI1RSxFQUFtQjNpRCxHQUM1QkEsT0FDQXpoQyxFQUNBaWlDLEtBSVIsS0FBTyxPQUFLQSxHQUFlQSxHQUFjcEksRUFBSW9LLFNBSzNDLE9BQU9sQyw2QkFBd0JwSSxFQUFPOEgsT0FBUXpoQyxFQUFXaWlDLEdBSnpEVSxFQUFZcjZCLEtBQ1Z5NUIsNkJBQXdCcEksRUFBTzhILE9BQVF6aEMsRUFBV2lpQyxHQUl0RCxDQUlGLE9BREFVLEVBQWNtaEQsR0FBUWhLLE1BQU0vMUUsRUFBUSxDQUFFOC9CLE9BQVFsQixJQUMxQ1YsR0FBY3BJLEVBQUlvSyxTQUNwQnI5QixFQUFJMHRCLEdBQWVxTyxFQUNkeHpCLEtBQVFtekIsSUFDWDE3QixFQUFJMHRCLEdBQWFoc0IsS0FBSyxDQUFFZzZCLE1BQU9BLElBRTFCMTdCLEdBR0YrN0IsQ0FDVCxDQUVBLEdBQWEsV0FBVDNnQyxFQUFtQixDQUNyQixJQUFLLElBQUk0L0IsS0FBWTdrQixFQUNkcmMsT0FBT3crQixPQUFPbmlCLEVBQU82a0IsS0FHdEI3a0IsRUFBTTZrQixJQUFXdk0sWUFHakJ0WSxFQUFNNmtCLElBQVdDLFdBQWFqUSxHQUc5QjdVLEVBQU02a0IsSUFBV0UsWUFBY25RLEdBR25DaVIsRUFBb0JoQixJQU10QixHQUpJSyxHQUFjSyxHQUNoQjE3QixFQUFJMHRCLEdBQWFoc0IsS0FBSyxDQUFFZzZCLE1BQU9BLElBRzdCUSwyQkFDRixPQUFPbDhCLEVBR1QsR0FBSWlzRSwrQkFBb0JwNkMsSUFBeUJBLEVBQzNDd0osRUFDRnI3QixFQUFJMHRCLEdBQWFoc0IsS0FBSyxDQUFFNDdCLGVBQWdCLHlCQUV4Q3Q5QixFQUFJdTlCLGdCQUFrQixDQUFDLEVBRXpCdEIsU0FDSyxHQUFJdzNDLG1CQUFtQjVoRCxHQUF1QixDQUNuRCxNQUFNMkwsRUFBa0IzTCxFQUNsQjRMLEVBQXVCdEMsNkJBQzNCcUMsRUFDQTNDLE9BQ0F6aEMsRUFDQWlpQyxHQUdGLEdBQ0VBLEdBQ3NDLGlCQUEvQm1DLEdBQWlCdkssS0FBS2p0QixNQUNFLGNBQS9CdzNCLEdBQWlCdkssS0FBS2p0QixLQUV0QmhHLEVBQUkwdEIsR0FBYWhzQixLQUFLKzdCLE9BQ2pCLENBQ0wsTUFBTUMsRUFDSit1QyxPQUFPQyxVQUFVdnZFLEVBQU93Z0MsZ0JBQ3hCeGdDLEVBQU93Z0MsY0FBZ0IsR0FDdkIxQixFQUF1QjkrQixFQUFPd2dDLGNBQzFCeGdDLEVBQU93Z0MsY0FBZ0IxQixFQUN2QixFQUNOLElBQUssSUFBSXA0QixFQUFJLEVBQUdBLEdBQUs2NUIsRUFBaUI3NUIsSUFBSyxDQUN6QyxHQUFJcTRCLDJCQUNGLE9BQU9sOEIsRUFFVCxHQUFJcTdCLEVBQVksQ0FDZCxNQUFNdUMsRUFBTyxDQUFDLEVBQ2RBLEVBQUssaUJBQW1CLzVCLEdBQUs0NUIsRUFBZ0MsVUFDN0R6OUIsRUFBSTB0QixHQUFhaHNCLEtBQUtrOEIsRUFDeEIsTUFDRTU5QixFQUFJLGlCQUFtQjZELEdBQUs0NUIsRUFFOUJ4QixHQUNGLENBQ0YsQ0FDRixDQUNBLE9BQU9qOEIsQ0FDVCxDQUVBLElBQUl0RixFQUNKLFFBQTRCLElBQWpCeUMsRUFBT3d1RSxNQUVoQmp4RSxFQUFReUMsRUFBT3d1RSxXQUNWLEdBQUl4dUUsR0FBVW1CLE1BQU1DLFFBQVFwQixFQUFPMCtCLE1BRXhDbmhDLEVBQVFtaEYsS0FBV3g4RSxlQUFlbEMsRUFBTzArQixXQUNwQyxDQUVMLE1BQU00aEQsRUFBZ0JoSyxtQkFBbUJ0MkUsRUFBT3l4RSxlQUM1Q3p6Qyw2QkFDRWgrQixFQUFPeXhFLGNBQ1AvekMsT0FDQXpoQyxFQUNBaWlDLFFBRUZqaUMsRUFDSnNCLEVBQVF3aUYsR0FBUTloRixHQUFNK0IsRUFBUSxDQUFFOC9CLE9BQVF3Z0QsR0FDMUMsQ0FFQSxPQUFJcGlELEdBQ0ZyN0IsRUFBSTB0QixHQUFnQm5sQixLQUFRbXpCLEdBQXFDaGhDLEVBQTVCLENBQUMsQ0FBRWdoQyxNQUFPQSxHQUFTaGhDLEdBQ2pEc0YsR0FHRnRGLENBQUssRUFHRHNqQyxzQkFBbUJBLENBQUM3Z0MsRUFBUTA5QixFQUFRaGhDLEtBQy9DLE1BQU1va0MsRUFBTzlDLDZCQUF3QmgrQixFQUFRMDlCLEVBQVFoaEMsR0FBRyxHQUN4RCxHQUFLb2tDLEVBR0wsTUFBb0IsaUJBQVRBLEVBQ0ZBLEVBRUZDLEtBQUlELEVBQU0sQ0FBRUUsYUFBYSxFQUFNQyxPQUFRLE1BQU8sRUFHMUNDLHNCQUFtQkEsQ0FBQ2xoQyxFQUFRMDlCLEVBQVFoaEMsSUFDeENzaEMsNkJBQXdCaCtCLEVBQVEwOUIsRUFBUWhoQyxHQUFHLEdBRzlDbS9CLGNBQVdBLENBQUNzRixFQUFNQyxFQUFNQyxJQUFTLENBQ3JDRixFQUNBbjhCLEtBQUtxRixVQUFVKzJCLEdBQ2ZwOEIsS0FBS3FGLFVBQVVnM0IsSUFHSkMsR0FBMkIxRixlQUFTaUYsc0JBQWtCaEYsZUFFdEQwRixHQUEyQjNGLGVBQVNzRixzQkFBa0JyRixlQ2hpQm5FLE1DVE1xOEMsR0FBVyxJRERqQixNQUFNcUksdUJBQXVCL0osR0FDM0IsR0FBWSxDQUFDLEVBRWI3dEUsS0FBTyxJQUFLaE4sTUFBSyxHQUVqQixZQUFJbzlFLEdBQ0YsTUFBTyxJQUFLcDlFLE1BQUssRUFDbkIsR0NJRixjQVJrQjZrRixDQUFDQyxFQUFZQyxVQUNGLElBQWhCQSxHQUNUeEksR0FBU2pyRSxTQUFTd3pFLEVBQVlDLEdBR3pCeEksR0FBU3A3RSxJQUFJMmpGLElDUmhCai9DLEdBQTZCLENBQ2pDLENBQ0VDLEtBQU0sT0FDTkMscUJBQXNCLENBQUMsWUFHckJDLEdBQXdCLENBQUMsVUF3Qi9CLDBCQXRCRzMrQixHQUFjLENBQUNoRCxFQUFRMDlCLEVBQVFrRSxFQUFhM0QsS0FDM0MsTUFBTSxHQUFFNTdCLEdBQU9XLElBQ1RILEVBQU1SLEVBQUdxOUQsaUJBQWlCbitCLHlCQUM5QnZoQyxFQUNBMDlCLEVBQ0FPLEdBRUk0RCxTQUFpQmgvQixFQUVqQmkvQixFQUFtQk4sR0FBMkI3K0IsUUFDbEQsQ0FBQzRkLEVBQU93aEIsSUFDTkEsRUFBV04sS0FBSy83QixLQUFLazhCLEdBQ2pCLElBQUlyaEIsS0FBVXdoQixFQUFXTCxzQkFDekJuaEIsR0FDTm9oQixJQUdGLE9BQU83OEIsSUFBS2c5QixHQUFtQnpDLEdBQU1BLElBQU13QyxJQUN2Qzc4QixLQUFLcUYsVUFBVXhILEVBQUssS0FBTSxHQUMxQkEsQ0FBRyxFQ0NYLDBCQTNCR0csR0FBYyxDQUFDaEQsRUFBUTA5QixFQUFRa0UsRUFBYTNELEtBQzNDLE1BQU0sR0FBRTU3QixHQUFPVyxJQUNUZy9CLEVBQWMzL0IsRUFBR3E5RCxpQkFBaUJ6OUIsb0JBQ3RDamlDLEVBQ0EwOUIsRUFDQWtFLEVBQ0EzRCxHQUVGLElBQUlpRSxFQUNKLElBQ0VBLEVBQWE1bEIsS0FBQUEsS0FDWEEsS0FBQUEsS0FBVTBsQixHQUNWLENBQ0VHLFdBQVksR0FFZCxDQUFFbmlDLE9BQVFvaUMsR0FBQUEsY0FFOEIsT0FBdENGLEVBQVdBLEVBQVdqZ0MsT0FBUyxLQUNqQ2lnQyxFQUFhQSxFQUFXanpCLE1BQU0sRUFBR2l6QixFQUFXamdDLE9BQVMsR0FFekQsQ0FBRSxNQUFPM0MsR0FFUCxPQURBQyxRQUFRQyxNQUFNRixHQUNQLHdDQUNULENBQ0EsT0FBTzRpQyxFQUFXbjVCLFFBQVEsTUFBTyxLQUFLLEVDSTFDLHlCQTlCRy9GLEdBQWMsQ0FBQ2hELEVBQVEwOUIsRUFBUU8sS0FDOUIsTUFBTSxHQUFFNTdCLEdBQU9XLElBS2YsR0FISWhELElBQVdBLEVBQU84MUIsTUFDcEI5MUIsRUFBTzgxQixJQUFNLENBQUMsR0FFWjkxQixJQUFXQSxFQUFPODFCLElBQUlqdEIsS0FBTSxDQUM5QixJQUNHN0ksRUFBT2d4QixRQUNQaHhCLEVBQU8vQixNQUNOK0IsRUFBTzQxQixPQUNQNTFCLEVBQU95MEIsWUFDUHowQixFQUFPMDBCLHNCQUdULE1BQU8seUhBRVQsR0FBSTEwQixFQUFPZ3hCLE1BQU8sQ0FDaEIsSUFBSTZCLEVBQVE3eUIsRUFBT2d4QixNQUFNNkIsTUFBTSxlQUMvQjd5QixFQUFPODFCLElBQUlqdEIsS0FBT2dxQixFQUFNLEVBQzFCLENBQ0YsQ0FFQSxPQUFPeHdCLEVBQUdxOUQsaUJBQWlCcCtCLHlCQUN6QnRoQyxFQUNBMDlCLEVBQ0FPLEVBQ0QsRUNPTCxxQkFsQ0dqN0IsR0FDRCxDQUFDaEQsRUFBUTRoQyxFQUFjLEdBQUlsRSxFQUFTLENBQUMsRUFBR08sT0FBa0JoaUMsS0FDeEQsTUFBTSxHQUFFb0csR0FBT1csSUFTZixNQVA0QixtQkFBakJoRCxHQUFRYSxPQUNqQmIsRUFBU0EsRUFBT2EsUUFFbUIsbUJBQTFCbzlCLEdBQWlCcDlCLE9BQzFCbzlCLEVBQWtCQSxFQUFnQnA5QixRQUdoQyxNQUFNNkUsS0FBS2s4QixHQUNOdi9CLEVBQUdxOUQsaUJBQWlCcjlCLG1CQUN6QnJpQyxFQUNBMDlCLEVBQ0FPLEdBR0EsYUFBYXY0QixLQUFLazhCLEdBQ2J2L0IsRUFBR3E5RCxpQkFBaUJwOUIsb0JBQ3pCdGlDLEVBQ0EwOUIsRUFDQWtFLEVBQ0EzRCxHQUdHNTdCLEVBQUdxOUQsaUJBQWlCejlCLG9CQUN6QmppQyxFQUNBMDlCLEVBQ0FrRSxFQUNBM0QsRUFDRCxFQ2VMLDRCQTdCc0MwaUQsRUFBRzM5RSxnQkFDdkMsTUFBTWkvQixFQUFzQk8sMEJBQXdCeC9CLEdBQzlDcy9CLEVBQXNCRywwQkFBd0J6L0IsR0FDOUNxL0IsRUFBcUJLLHlCQUF1QjEvQixHQUM1QzQxQixFQUFrQitKLHFCQUFvQjMvQixHQUU1QyxNQUFPLENBQ0xYLEdBQUksQ0FDRnE5RCxpQkFBa0IsQ0FDaEJ4K0IsaUJBQWdCLHNCQUNoQmxELHdCQUF1Qiw2QkFDdkI0aUQsZ0JBQWlCSixjQUNqQkssaUJBQWtCdEcsR0FDbEJ1RyxnQkFBaUI5SCxHQUNqQitILG1CQUFvQjVFLEdBQ3BCdDdDLGlCQUFnQixzQkFDaEJVLHlCQUF3QixHQUN4QkQseUJBQXdCLEdBQ3hCVyxzQkFDQUssc0JBQ0FELHFCQUNBekosa0JBQ0E2RSxnQkFBZSxHQUNmb29DLFdBR0wsRUN0Q1ksU0FBU21iLGFBQ3RCLE1BQU8sQ0FDTDNyQixLQUNBNHJCLEtBQ0FsTyxvQkFDQTROLDRCQUNBTyxNQUVKLENDYkEsTUFLQSxjQUxtQzl3QyxHQUFZLEtBQU0sQ0FDbkQvdEMsR0FBSSt0QyxFQUFRL3RDLEdBQ1p5SixXQUFZc2tDLEVBQVF0a0MsYUNxQ3RCLHFCQXRDNkJza0MsSUFDM0IsTUFBTTFrQyxFQUFRRCxJQUNaLENBQ0VxUyxPQUFRLENBQ05BLE9BQVFzeUIsRUFBUXR5QixPQUNoQm5mLE9BQVF5eEMsRUFBUXp4QyxRQUVsQnVjLEtBQU0sQ0FDSkEsS0FBTSxHQUNObkcsSUFBS3E3QixFQUFRcjdCLEtBRWZ5VyxnQkFBaUI0a0IsRUFBUTVrQixpQkFFM0I0a0IsRUFBUTVqQyxjQUdWLEdBQUk0akMsRUFBUTVqQyxhQU1WLElBQUssTUFBTy9QLEVBQUtjLEtBQVVaLE9BQU82RSxRQUFRNHVDLEVBQVE1akMsbUJBQ2xDdlEsSUFBVnNCLFVBQ0ttTyxFQUFNalAsR0FLbkIsTUFBTyxDQUNMbVAsT0FBUSxDQUNOQyxRQUFTdWtDLEVBQVF2a0MsU0FFbkJGLFFBQVN5a0MsRUFBUSt3QyxRQUNqQnoxRSxRQUNELEVDYkgsTUFoQnlCMDFFLElBQU9oeEMsSUFDOUIsTUFBTWl4QyxFQUFrQmp4QyxFQUFRa3hDLG1CelorbEJQQyxNQUN6QixNQUFNQyxFQUFlLElBQUlDLGdCQUFnQjNpRixFQUFJQyxTQUFTbTFCLFFBQ3RELE9BQU92M0IsT0FBT2trRSxZQUFZMmdCLEVBQWEsRXlaam1CY0QsR0FBZ0IsQ0FBQyxFQUV0RSxPQUFPNWtGLE9BQU82RSxRQUFRNi9FLEdBQWlCMStFLFFBQU8sQ0FBQ2lOLEdBQU1uVCxFQUFLYyxNQUU1QyxXQUFSZCxFQUNGbVQsRUFBZSxVQUFJclMsRUFDRixxQkFBUmQsRUFDVG1ULEVBQUluVCxHQUFPYyxFQUVYcVMsRUFBTXhKLEtBQUl3SixFQUFLblQsRUFBS2MsR0FFZnFTLElBQ04sQ0FBQyxFQUFFLEVDYVIsWUF2QkU4eEUsRUFBRzNzRSxNQUFLbkosWUFDUjYvQixNQUFPMkUsSUFDTCxJQUFLcjdCLEVBQUssTUFBTyxDQUFDLEVBQ2xCLEdBQXFELG1CQUExQ25KLEVBQU9vUSxnQkFBZ0JILGVBQStCLE1BQU8sQ0FBQyxFQUN6RSxNQUFNOGxFLEVBZFdDLE1BQ25CLE1BQU1ELEVBQVcsQ0FBQyxFQUtsQixPQUpBQSxFQUFTRSxRQUFVLElBQUk1MUMsU0FBUSxDQUFDcEIsRUFBU2kzQyxLQUN2Q0gsRUFBUzkyQyxRQUFVQSxFQUNuQjgyQyxFQUFTRyxPQUFTQSxDQUFNLElBRW5CSCxDQUFRLEVBUUlDLEdBZ0JqQixPQVZBaDJFLEVBQU9vUSxlQUFlSCxlQUNwQixDQUNFOUcsTUFDQWd0RSxrQkFBa0IsRUFDbEIxckUsbUJBQW9CKzVCLEVBQVEvNUIsbUJBQzVCQyxvQkFBcUI4NUIsRUFBUTk1QixzQkFWZjByRSxJQUVoQkwsRUFBUzkyQyxRQUFRbTNDLEVBQWUsSUFhM0JMLEVBQVNFLE9BQU8sRUNqQjNCLFFBVjJCSSxJQUFNLEtBQy9CLE1BQU03eEMsRUFBVSxDQUFDLEVBTWpCLE9BSkk4eEMsV0FBV25qRixXQUNicXhDLEVBQVFxTCxrQkFBb0IsR0FBR3ltQyxXQUFXbmpGLFNBQVNrMEIsYUFBYWl2RCxXQUFXbmpGLFNBQVN3bEMsT0FBTzI5QyxXQUFXbmpGLFNBQVNrMUIsU0FBU0UsVUFBVSxFQUFHK3RELFdBQVduakYsU0FBU2sxQixTQUFTNnpCLFlBQVksOEJBR3pLMVgsQ0FBTyxFQ3NGaEIsR0EvRnVCenpDLE9BQU93bEYsT0FBTyxDQUNuQ0MsT0FBUSxLQUNSeHdDLFFBQVMsS0FDVDEyQixLQUFNLENBQUMsRUFDUG5HLElBQUssR0FDTHN0RSxLQUFNLEtBQ05DLFVBQVcsS0FDWHhrRSxPQUFRLGFBQ1JpVSxhQUFjLE9BQ2RyTixrQkFBbUIsRUFDbkIvbEIsUUFBUSxFQUNSaWdELGFBQWMseUNBQ2RuRCx1QkFBbUJ4L0MsRUFDbkJrYixzQkFBc0IsRUFDdEJ0TCxRQUFTLENBQUMsRUFDVmkyQyxvQkFBb0IsRUFDcEIvRCx3QkFBd0IsRUFDeEJqL0IsYUFBYSxFQUNiNGhDLGlCQUFpQixFQUNqQnJxQyxtQkFBcUJ1UCxJQUNuQkEsRUFBUVcsWUFBYyxHQUNmWCxHQUVUdFAsb0JBQXNCL1osR0FBTUEsRUFDNUJ5aEQsb0JBQW9CLEVBQ3BCbHdCLHNCQUF1QixVQUN2QkMsd0JBQXlCLEVBQ3pCaUUseUJBQTBCLEVBQzFCc0MsZ0JBQWdCLEVBQ2hCZzNCLHNCQUFzQixFQUN0QjdiLGlCQUFpQixFQUNqQndPLHdCQUF3QixFQUN4Qnp5QixnQkFBaUIsQ0FDZnJFLFdBQVksQ0FDVm83RCxVQUFXLENBQ1QxM0QsTUFBTyxjQUNQMjNELE9BQVEsUUFFVkMsZ0JBQWlCLENBQ2Y1M0QsTUFBTyxvQkFDUDIzRCxPQUFRLGNBRVZFLFNBQVUsQ0FDUjczRCxNQUFPLGFBQ1AyM0QsT0FBUSxTQUdaRyxpQkFBaUIsRUFDakJDLFVBQVcsTUFFYjVnQyx1QkFBd0IsQ0FDdEIsTUFDQSxNQUNBLE9BQ0EsU0FDQSxVQUNBLE9BQ0EsUUFDQSxTQUVGcy9CLG9CQUFvQixFQUlwQkgsUUFBUyxDQUFDMEIsWUFHVmwzRSxRQUFTLEdBRVRhLGFBQWMsQ0FBQyxFQUdmbkssR0FBSSxDQUFDLEVBQ0x5SixXQUFZLENBQUMsRUFFYm1vQyxnQkFBaUIsQ0FDZlUsV0FBVyxFQUNYWCxNQUFPLFNBRVQ1ckMsaUJBQWtCLEtBQ2xCSyxXQUFZLEtBQ1o0YyxXQUFZLEtBQ1owbEIsbUJBQW9CLEtBQ3BCQyxlQUFnQixLQUVoQm95QixxQkFBc0IsQ0FDcEIsMkJBQ0EsU0FDQSxTQUNBLFVBR0ZuckQseUJBQTBCLE9Dakd0QixHQUErQnJXLFFBQVEsYyxpQ0NBN0MsTUFBTSxHQUErQkEsUUFBUSxpQixpQ0NHN0MsTUFHQSxtQkFId0JrbkYsQ0FBQ3ZsRixFQUFPZ3RELEVBQWUsS0FDN0NwcEQsTUFBTUMsUUFBUTdELEdBQVNBLEVBQVFndEQsRUNNakMscUJBUDBCdzRCLENBQUN4bEYsRUFBT2d0RCxHQUFlLEtBQ3JDLElBQVZodEQsR0FBNEIsU0FBVkEsR0FBOEIsSUFBVkEsR0FBeUIsTUFBVkEsSUFFdkMsSUFBVkEsR0FBNkIsVUFBVkEsR0FBK0IsSUFBVkEsR0FBeUIsTUFBVkEsR0FFckRndEQsRUNGUixTQUgyQmh0RCxHQUNmLE9BQVZBLEdBQTRCLFNBQVZBLEVBQW1CLEtBQU9BLEVDTTlDLG9CQUwwQkEsSUFDeEIsTUFBTWd0RCxFQUFlL2dELE9BQU9qTSxHQUM1QixPQUFPd2xGLHFCQUFrQnhsRixFQUFPZ3RELEVBQWEsRUNEL0Msc0JBSDJCeTRCLENBQUN6bEYsRUFBT2d0RCxJQUNoQixtQkFBVmh0RCxFQUF1QkEsRUFBUWd0RCxFQ0N4QyxlQUZpQ2h0RCxHQUFXNEQsTUFBTUMsUUFBUTdELEdBQVNBLEVBQVEsS0NHM0Usa0JBSG9DQSxHQUNqQixtQkFBVkEsRUFBdUJBLEVBQVEsS0NFeEMsZ0JBSGtDQSxHQUN0QixPQUFWQSxHQUE0QixTQUFWQSxFQUFtQixLQUFPaU0sT0FBT2pNLEdDSXJELG9CQUx5QjBsRixDQUFDMWxGLEVBQU9ndEQsR0FBZSxLQUM5QyxNQUFNMjRCLEVBQWMzd0MsU0FBU2gxQyxFQUFPLElBQ3BDLE9BQU8reEUsT0FBT2xvRSxNQUFNODdFLEdBQWUzNEIsRUFBZTI0QixDQUFXLEVDRy9ELG9CQUh5QkMsQ0FBQzVsRixFQUFPZ3RELEVBQWUsQ0FBQyxJQUMvQ3h2QixLQUFjeDlCLEdBQVNBLEVBQVFndEQsRUNBakMsT0FIMEJodEQsR0FDUCxtQkFBVkEsR0FBeUMsaUJBQVZBLEVBQXFCQSxFQUFRLEtDQ3JFLG9CQUYwQkEsR0FBVWlNLE9BQU9qTSxHQ1UzQyxpQkFSa0M2bEYsQ0FBQzdsRixFQUFPZ3RELElBQ2pDeHZCLEtBQWN4OUIsR0FDakJBLEdBQ1UsSUFBVkEsR0FBNkIsVUFBVkEsR0FBK0IsSUFBVkEsR0FBeUIsTUFBVkEsRUFDckQsQ0FBRW8zQyxXQUFXLEdBQ2I0VixFQ0pSLGlCQUhtQ2h0RCxRQUN2QnRCLElBQVZzQixHQUFpQyxjQUFWQSxPQUF3QnRCLEVBQVl1TixPQUFPak0sR0NzSXBFLEdBdkhpQixDQUNmdU8sV0FBWSxDQUFFdTNFLFdBQVlGLHFCQUMxQnQzRSxRQUFTLENBQUV3M0UsV0FBWUYscUJBQ3ZCYixVQUFXLENBQUVlLFdBQVlDLGlCQUN6QnhrRSxZQUFhLENBQ1h1a0UsV0FBWU4scUJBQ1p4NEIsYUFBY2phLEdBQWV4eEIsYUFFL0JpUCx3QkFBeUIsQ0FDdkJzMUQsV0FBWUosb0JBQ1oxNEIsYUFBY2phLEdBQWV2aUIseUJBRS9CRCxzQkFBdUIsQ0FBRXUxRCxXQUFZRSxxQkFDckN2eEQseUJBQTBCLENBQ3hCcXhELFdBQVlKLG9CQUNaMTRCLGFBQWNqYSxHQUFldGUsMEJBRS9COHZCLG1CQUFvQixDQUNsQnVoQyxXQUFZTixxQkFDWng0QixhQUFjamEsR0FBZXdSLG9CQUUvQi9ELHVCQUF3QixDQUN0QnNsQyxXQUFZTixxQkFDWng0QixhQUFjamEsR0FBZXlOLHdCQUUvQmhzQixhQUFjLENBQUVzeEQsV0FBWUUscUJBQzVCbkIsT0FBUSxDQUFFaUIsV0FBWUMsaUJBQ3RCMXhDLFFBQVMsQ0FBRXl4QyxXQUFZRyxVQUN2QnBtQixxQkFBc0IsQ0FDcEJpbUIsV0FBWVAsbUJBQ1p2NEIsYUFBY2phLEdBQWU4c0Isc0JBRS9CeitELE9BQVEsQ0FBRTBrRixXQUFZSSxxQkFDdEJwaEYsR0FBSSxDQUFFZ2hGLFdBQVlGLHFCQUNsQjMyRSxhQUFjLENBQUU2MkUsV0FBWUYscUJBQzVCcmxFLE9BQVEsQ0FBRXVsRSxXQUFZRSxxQkFDdEI3K0QsaUJBQWtCLENBQ2hCMitELFdBQVlKLG9CQUNaMTRCLGFBQWNqYSxHQUFlNXJCLGtCQUUvQnFtQixtQkFBb0IsQ0FBRXM0QyxXQUFZSyxtQkFDbENqb0Msa0JBQW1CLENBQUU0bkMsV0FBWU0sa0JBQ2pDdCtELFdBQVksQ0FBRWcrRCxXQUFZSyxtQkFDMUJ0N0UsaUJBQWtCLENBQ2hCaTdFLFdBQVlPLFFBRWRDLGVBQWdCLENBQUVSLFdBQVlLLG1CQUM5QnZzRSxxQkFBc0IsQ0FDcEJrc0UsV0FBWU4scUJBQ1p4NEIsYUFBY2phLEdBQWVuNUIsc0JBRS9CeEwsUUFBUyxDQUNQMDNFLFdBQVlQLG1CQUNadjRCLGFBQWNqYSxHQUFlM2tDLFNBRS9CdzFFLFFBQVMsQ0FDUGtDLFdBQVlQLG1CQUNadjRCLGFBQWNqYSxHQUFlNndDLFNBRS9COXFFLG1CQUFvQixDQUNsQmd0RSxXQUFZTCxzQkFDWno0QixhQUFjamEsR0FBZWo2QixvQkFFL0JtVixnQkFBaUIsQ0FDZjYzRCxXQUFZRixvQkFDWjU0QixhQUFjamEsR0FBZTlrQixpQkFFL0J5eUIsdUJBQXdCLENBQ3RCb2xDLFdBQVlOLHFCQUNaeDRCLGFBQWNqYSxHQUFlMk4sd0JBRS9CM25DLG9CQUFxQixDQUNuQitzRSxXQUFZTCxzQkFDWno0QixhQUFjamEsR0FBZWg2QixxQkFFL0JnMUMscUJBQXNCLENBQ3BCKzNCLFdBQVlOLHFCQUNaeDRCLGFBQWNqYSxHQUFlZ2Isc0JBRS9CaDNCLGVBQWdCLENBQ2QrdUQsV0FBWU4scUJBQ1p4NEIsYUFBY2phLEdBQWVoYyxnQkFFL0IwcEIsbUJBQW9CLENBQ2xCcWxDLFdBQVlOLHFCQUNaeDRCLGFBQWNqYSxHQUFlME4sb0JBRS9COWlDLEtBQU0sQ0FBRW1vRSxXQUFZRixvQkFBa0I1NEIsYUFBY2phLEdBQWVwMUIsTUFDbkU4bUMsdUJBQXdCLENBQ3RCcWhDLFdBQVlQLG1CQUNadjRCLGFBQWNqYSxHQUFlMFIsd0JBRS9CL04sZ0JBQWlCLENBQ2ZvdkMsV0FBWUQsaUJBQ1o3NEIsYUFBY2phLEdBQWUyRCxpQkFFL0IsNEJBQTZCLENBQzNCb3ZDLFdBQVlOLHFCQUNaeDRCLGFBQWNqYSxHQUFlMkQsZ0JBQWdCVSxXQUUvQyx3QkFBeUIsQ0FBRTB1QyxXQUFZRSxxQkFDdkM5NkUsV0FBWSxDQUNWNDZFLFdBQVlPLFFBRWRsakMsZ0JBQWlCLENBQ2YyaUMsV0FBWU4scUJBQ1p4NEIsYUFBY2phLEdBQWVvUSxpQkFFL0IzckMsSUFBSyxDQUFFc3VFLFdBQVlFLHFCQUNuQmxCLEtBQU0sQ0FBRWdCLFdBQVlTLGdCQUNwQixtQkFBb0IsQ0FBRVQsV0FBWUUscUJBQ2xDM2tDLGFBQWMsQ0FBRXlrQyxXQUFZQyxpQkFDNUI3ekMsZ0JBQWlCLENBQ2Y0ekMsV0FBWU4scUJBQ1p4NEIsYUFBY2phLEdBQWViLGlCQUUvQng5Qix5QkFBMEIsQ0FBRW94RSxXQUFZSyxvQkNoSDFDLFVBZGtCdHpDLEdBQ1R6ekMsT0FBTzZFLFFBQVF1aUYsSUFBVXBoRixRQUM5QixDQUFDaU4sR0FBTW8wRSxHQUFjWCxhQUFZOTRCLG9CQUMvQixHQUFJcmxELEtBQUkwSyxFQUFLbzBFLEdBQWEsQ0FDeEIsTUFDTUMsRUFBU1osRUFERXZtRixLQUFJOFMsRUFBS28wRSxHQUNVejVCLEdBQ3BDMzZDLEVBQU14SixLQUFJNDlFLEVBQVlDLEVBQVFyMEUsRUFDaEMsQ0FDQSxPQUFPQSxDQUFHLEdBRVosSUFBS3dnQyxJQ3NDVCxhQXhDYy8rQixDQUFDbUQsS0FBVzB2RSxLQUN4QixJQUFJdHlDLEVBQVV2MEMsT0FBTzhtRixJQUFJLFdBQ3JCQyxFQUFjL21GLE9BQU84bUYsSUFBSSxlQUM3QixNQUFNRSxFQUEyQixHQUVqQyxJQUFLLE1BQU05d0UsS0FBVTJ3RSxFQUFTLENBQzVCLE1BQU1JLEVBQTBCLElBQUsvd0UsR0FFakM1VyxPQUFPdytCLE9BQU9tcEQsRUFBeUIsYUFDekMxeUMsRUFBVTB5QyxFQUF3QjF5QyxlQUMzQjB5QyxFQUF3QjF5QyxTQUc3QmoxQyxPQUFPdytCLE9BQU9tcEQsRUFBeUIscUJBQ3pDRixFQUFjRSxFQUF3QiwyQkFDL0JBLEVBQXdCLHFCQUUvQm5qRixNQUFNQyxRQUFRa2pGLEVBQXdCakMsT0FDdEMxbEYsT0FBT3crQixPQUFPbXBELEVBQXdCakMsS0FBTSxpQkFFNUMrQixFQUFjRSxFQUF3QmpDLEtBQUsrQixtQkFDcENFLEVBQXdCakMsS0FBSytCLGFBR3RDQyxFQUF5QjkvRSxLQUFLKy9FLEVBQ2hDLENBRUEsTUFBTTNtRCxFQUFTbHlCLElBQVcrSSxLQUFXNnZFLEdBVXJDLE9BUkl6eUMsSUFBWXYwQyxPQUFPOG1GLElBQUksYUFDekJ4bUQsRUFBT2lVLFFBQVVBLEdBR2Z3eUMsSUFBZ0IvbUYsT0FBTzhtRixJQUFJLGdCQUFrQmhqRixNQUFNQyxRQUFRdThCLEVBQU8wa0QsUUFDcEUxa0QsRUFBTzBrRCxLQUFLK0IsWUFBY0EsR0FHckJoRixVQUFTemhELEVBQU8sRUNSekIsU0FBUzRtRCxVQUFVQyxHQUNqQixNQUFNQyxFQUFlckQsUUFBbUJvRCxHQUNsQ0UsRUFBaUJ6QyxZQUNqQjBDLEVBQWdCSixVQUFVN21ELE9BQU9yc0IsTUFDckMsQ0FBQyxFQUNEa3pFLFVBQVU3bUQsT0FBT3E3QyxTQUNqQjJMLEVBQ0FGLEVBQ0FDLEdBRUlHLEVBQWdCQyxxQkFBMkJGLEdBQzNDRyxFQUFlQyxjQUFpQ0osR0FFaERLLEVBQWdCLElBQUlDLE1BQU9MLEdBQ2pDSSxFQUFjLzNFLFNBQVMsQ0FBQzAzRSxFQUFjaDVFLFFBQVNtNUUsSUFDL0MsTUFBTWw1RSxFQUFTbzVFLEVBQWNoaUYsWUFFdkJraUYsZUFBa0I5MEMsSUFDdEI0MEMsRUFBYzcyRSxXQUFXaWlDLEdBQ3pCeGtDLEVBQU9vUSxlQUFldkMsUUFBUSxFQUUxQjBMLFdBQWNpckIsS0FFZnEwQyxFQUFhMXZFLEtBQ1UsaUJBQWpCcTdCLEVBQVFsMUIsTUFDZnZlLE9BQU8rRixLQUFLMHRDLEVBQVFsMUIsTUFBTWpaLE9BQVMsR0FFbkMySixFQUFPbVEsWUFBWUksVUFBVSxJQUM3QnZRLEVBQU9tUSxZQUFZRyxvQkFBb0IsV0FDdkN0USxFQUFPbVEsWUFBWW9KLFdBQVduZ0IsS0FBS3FGLFVBQVUrbEMsRUFBUWwxQixRQUVkLG1CQUFoQ3RQLEVBQU9tUSxZQUFZMDJCLFVBQzFCckMsRUFBUXI3QixNQUNQcTdCLEVBQVFpeUMsT0FFVHoyRSxFQUFPbVEsWUFBWUksVUFBVWkwQixFQUFRcjdCLEtBQ3JDbkosRUFBT21RLFlBQVkwMkIsU0FBU3JDLEVBQVFyN0IsS0FDdEMsRUFFSXVGLE9BQVU4MUIsSUFDZCxHQUFJQSxFQUFRd0IsUUFDVmhtQyxFQUFPME8sT0FBTzgxQixFQUFRd0IsUUFBUyxZQUMxQixHQUFJeEIsRUFBUWd5QyxPQUFRLENBQ3pCLE1BQU14d0MsRUFBVTkzQixTQUFTcXJFLGNBQWMvMEMsRUFBUWd5QyxRQUMvQ3gyRSxFQUFPME8sT0FBT3MzQixFQUFTLE1BQ3pCLE1BQThCLE9BQW5CeEIsRUFBUWd5QyxRQUF1QyxPQUFwQmh5QyxFQUFRd0IsU0FRNUNyeUMsUUFBUUMsTUFBTSw0REFDaEIsRUFJRixPQUFLbWxGLEVBQWNyQyxXQVNsQixXQUNDLE1BQVFBLFVBQVd2dEUsR0FBUTR2RSxFQUNyQlMsUUFBbUIxRCxZQUFlLENBQUUzc0UsTUFBS25KLFVBQXRCODFFLENBQWdDaUQsR0FDbkRVLEVBQW1CZCxVQUFVN21ELE9BQU9yc0IsTUFDeEMsQ0FBQyxFQUNEc3pFLEVBQ0FTLEVBQ0FYLEdBR0ZTLGVBQWVHLEdBQ0ksT0FBZkQsR0FBcUJqZ0UsV0FBV2tnRSxHQUNwQy9xRSxPQUFPK3FFLEVBQ1IsRUFiQSxHQWVNejVFLElBdkJMczVFLGVBQWVQLEdBQ2Z4L0QsV0FBV3cvRCxHQUNYcnFFLE9BQU9xcUUsR0FFQS80RSxFQW9CWCxDQUVBMjRFLFVBQVVVLE9BQVNBLE1BRW5CVixVQUFVN21ELE9BQVMsQ0FDakJxN0MsU0FBVXpvQyxHQUNWai9CLE1BQU9pMEUsYUFDUGxHLFNBQVVtRyxVQUNWQyxpQkFBZ0JBLElBR2xCakIsVUFBVXBELFFBQVUsQ0FDbEJ6dEQsS0FDQSt4RCxLQUFNNUMsWUFHUjBCLFVBQVU1NEUsUUFBVSxDQUNsQis1RSxLQUFNN3ZCLEtBQ044dkIsUUFBU3J3QixjQUNUc3dCLFdBQVk3dkIsYUFDWjh2QixJQUFLbndCLElBQ0xvd0IsT0FBUTl2QixPQUNSK3ZCLE1BQU81aUUsTUFDUDZpRSxZQUFhM3FELGNBQ2I0cUQsbUJBQW9CMWpELHNCQUNwQnk4QixpQkFBa0IrVCxvQkFDbEJtVCx3QkFBeUJ2Riw0QkFDekI3cEMsT0FBUTZlLGVBQ1J3d0IsS0FBTTN3QixLQUNONHdCLFVBQVduRixLQUNYb0YsVUFBV25GLEtBQ1hvRixXQUFZcndCLFlBQ1p4dEMsZ0JBQWlCeXRDLHlCQUNqQnF3QixLQUFNLzJDLGFBQ05nM0MsY0FBZTV3QixlQUNmNndCLEtBQU1seEIsS0FDTm14QixLQUFNanhCLEtBQ05reEIsV0FBWXQwQyxZQUNadTBDLFlBQWE5d0Isa0JBQ2Ird0IsbUJBQW9CL3hDLG9CQUNwQmd5QyxTQUFVcnhDLFNBQ1ZzeEMsV0FBWTV3QixhQUdkLE1DM0tBLEdEMktBLFUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwiYnVmZmVyXCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcInJlYWN0XCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcInJlZHV4XCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcImltbXV0YWJsZVwiIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJkZWVwLWV4dGVuZFwiIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJyZWR1eC1pbW11dGFibGVcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwic2VyaWFsaXplLWVycm9yXCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcImxvZGFzaC9tZXJnZVwiIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2Vyci9hY3Rpb25zLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS93aW5kb3cuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcImxvZGFzaC9tZW1vaXplXCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcImxvZGFzaC9jYW1lbENhc2VcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwibG9kYXNoL3VwcGVyRmlyc3RcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwibG9kYXNoL2ZpbmRcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwibG9kYXNoL3NvbWVcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwibG9kYXNoL2VxXCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcImxvZGFzaC9pc0Z1bmN0aW9uXCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcImNzcy5lc2NhcGVcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmFuZG9tYnl0ZXNcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwic2hhLmpzXCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3V0aWxzL2dldC1wYXJhbWV0ZXItc2NoZW1hLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS91dGlscy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvc3lzdGVtLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJ1cmwtcGFyc2VcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9hdXRoL2FjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvYXV0aC9yZWR1Y2Vycy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVzZWxlY3RcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9hdXRoL3NlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9hdXRoL3NwZWMtZXh0ZW5zaW9ucy93cmFwLWFjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvYXV0aC9jb25maWdzLWV4dGVuc2lvbnMvd3JhcC1hY3Rpb25zLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2F1dGgvd3JhcC1hY3Rpb25zLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJwcm9wLXR5cGVzXCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcImxvZGFzaC9vbWl0XCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvYXV0aC9jb21wb25lbnRzL2xvY2stYXV0aC1pY29uLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9hdXRoL2NvbXBvbmVudHMvdW5sb2NrLWF1dGgtaWNvbi5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvYXV0aC9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwianMteWFtbFwiIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2NvbmZpZ3MvZm4uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvY29uZmlncy9hY3Rpb25zLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2NvbmZpZ3Mvc2VsZWN0b3JzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2NvbmZpZ3MvcmVkdWNlcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvY29uZmlncy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9kZWVwLWxpbmtpbmcvaGVscGVycy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwiemVuc2Nyb2xsXCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvZGVlcC1saW5raW5nL2xheW91dC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2RlZXAtbGlua2luZy9vcGVyYXRpb24td3JhcHBlci5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvZGVlcC1saW5raW5nL29wZXJhdGlvbi10YWctd3JhcHBlci5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvZGVlcC1saW5raW5nL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJsb2Rhc2gvcmVkdWNlXCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvZXJyL2Vycm9yLXRyYW5zZm9ybWVycy90cmFuc2Zvcm1lcnMvbm90LW9mLXR5cGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcImxvZGFzaC9nZXRcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9lcnIvZXJyb3ItdHJhbnNmb3JtZXJzL3RyYW5zZm9ybWVycy9wYXJhbWV0ZXItb25lb2YuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvZXJyL2Vycm9yLXRyYW5zZm9ybWVycy9ob29rLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2Vyci9yZWR1Y2Vycy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9lcnIvc2VsZWN0b3JzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2Vyci9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9maWx0ZXIvb3BzRmlsdGVyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2ZpbHRlci9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwiQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9oZWxwZXJzL2V4dGVuZHNcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9pY29ucy9jb21wb25lbnRzL2Fycm93LXVwLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9pY29ucy9jb21wb25lbnRzL2Fycm93LWRvd24uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2ljb25zL2NvbXBvbmVudHMvYXJyb3cuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2ljb25zL2NvbXBvbmVudHMvY2xvc2UuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2ljb25zL2NvbXBvbmVudHMvY29weS5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvaWNvbnMvY29tcG9uZW50cy9sb2NrLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9pY29ucy9jb21wb25lbnRzL3VubG9jay5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvaWNvbnMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvbGF5b3V0L2FjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvbGF5b3V0L3JlZHVjZXJzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2xheW91dC9zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvbGF5b3V0L3NwZWMtZXh0ZW5zaW9ucy93cmFwLXNlbGVjdG9yLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2xheW91dC9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9sb2dzL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL29uLWNvbXBsZXRlL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL3JlcXVlc3Qtc25pcHBldHMvZm4uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvcmVxdWVzdC1zbmlwcGV0cy9zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcImNsYXNzbmFtZXNcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3QtY29weS10by1jbGlwYm9hcmRcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9yZXF1ZXN0LXNuaXBwZXRzL3JlcXVlc3Qtc25pcHBldHMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL3JlcXVlc3Qtc25pcHBldHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtNS9jb21wb25lbnRzL21vZGVsLWNvbGxhcHNlLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvbW9kZWwtZXhhbXBsZS5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtNS9jb21wb25lbnRzL21vZGVsLXdyYXBwZXIuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJyZWFjdC1pbW11dGFibGUtcHVyZS1jb21wb25lbnRcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvYXNzZXRzL3JvbGxpbmctbG9hZC5zdmciLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtNS9jb21wb25lbnRzL21vZGVsLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvbW9kZWxzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvZW51bS1tb2RlbC5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3V0aWxzL3VybC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvb2JqZWN0LW1vZGVsLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbXBvbmVudHMvYXJyYXktbW9kZWwuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUvY29tcG9uZW50cy9wcmltaXRpdmUtbW9kZWwuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUvY29tcG9uZW50cy9zY2hlbWVzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2NvbnRhaW5lcnMvc2NoZW1lcy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcInJlYWN0LWRlYm91bmNlLWlucHV0XCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtNS9jb21wb25lbnRzL2pzb24tc2NoZW1hLWNvbXBvbmVudHMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUvY29tcG9uZW50cy9tb2RlbC1leHRlbnNpb25zLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwibG9kYXNoL2lzUGxhaW5PYmplY3RcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01L2ZuLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcInhtbFwiIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJyYW5kZXhwXCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcImxvZGFzaC9pc0VtcHR5XCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3V0aWxzL21lbW9pemVOLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUtc2FtcGxlcy9mbi9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01LXNhbXBsZXMvZm4vZ2V0LWpzb24tc2FtcGxlLXNjaGVtYS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01LXNhbXBsZXMvZm4vZ2V0LXlhbWwtc2FtcGxlLXNjaGVtYS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01LXNhbXBsZXMvZm4vZ2V0LXhtbC1zYW1wbGUtc2NoZW1hLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUtc2FtcGxlcy9mbi9nZXQtc2FtcGxlLXNjaGVtYS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS01LXNhbXBsZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcImxvZGFzaC9jb25zdGFudFwiIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL3NwZWMvc2VsZWN0b3JzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJsb2Rhc2gvaXNTdHJpbmdcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwibG9kYXNoL2RlYm91bmNlXCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcImxvZGFzaC9zZXRcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwibG9kYXNoL2ZwL2Fzc29jUGF0aFwiIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL3NwZWMvYWN0aW9ucy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9zcGVjL3JlZHVjZXJzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL3NwZWMvd3JhcC1hY3Rpb25zLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL3NwZWMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcInN3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvZ2VuZXJpY1wiIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJzd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9zdHJhdGVnaWVzL29wZW5hcGktMlwiIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJzd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9zdHJhdGVnaWVzL29wZW5hcGktMy0wXCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcInN3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvb3BlbmFwaS0zLTEtYXBpZG9tXCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcInN3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyXCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcInN3YWdnZXItY2xpZW50L2VzL2V4ZWN1dGVcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwic3dhZ2dlci1jbGllbnQvZXMvaHR0cFwiIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJzd2FnZ2VyLWNsaWVudC9lcy9zdWJ0cmVlLXJlc29sdmVyXCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcInN3YWdnZXItY2xpZW50L2VzL2hlbHBlcnNcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9zd2FnZ2VyLWNsaWVudC9jb25maWdzLXdyYXAtYWN0aW9ucy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9zd2FnZ2VyLWNsaWVudC9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy91dGlsL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJyZWFjdC1kb21cIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3QtcmVkdXhcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwibG9kYXNoL2lkZW50aXR5XCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvdmlldy9yb290LWluamVjdHMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL3ZpZXcvZm4uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvdmlldy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy92aWV3LWxlZ2FjeS9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy92aWV3LWxlZ2FjeS9yb290LWluamVjdHMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2Rvd25sb2FkLXVybC9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xpZ2h0XCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy9qYXZhc2NyaXB0XCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy9qc29uXCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy94bWxcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL2Jhc2hcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL3lhbWxcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL2h0dHBcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL3Bvd2Vyc2hlbGxcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9zeW50YXgtaGlnaGxpZ2h0aW5nL2FmdGVyLWxvYWQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9zdHlsZXMvaGxqcy9hZ2F0ZVwiIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvYXJ0YVwiIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvbW9ub2thaVwiIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvbm9yZFwiIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvb2JzaWRpYW5cIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL3N0eWxlcy9obGpzL3RvbW9ycm93LW5pZ2h0XCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9zdHlsZXMvaGxqcy9pZGVhXCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvc3ludGF4LWhpZ2hsaWdodGluZy9yb290LWluamVjdHMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvc3ludGF4LWhpZ2hsaWdodGluZy9jb21wb25lbnRzL1N5bnRheEhpZ2hsaWdodGVyLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwianMtZmlsZS1kb3dubG9hZFwiIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL3N5bnRheC1oaWdobGlnaHRpbmcvY29tcG9uZW50cy9IaWdobGlnaHRDb2RlLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9zeW50YXgtaGlnaGxpZ2h0aW5nL2NvbXBvbmVudHMvUGxhaW5UZXh0Vmlld2VyLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9zeW50YXgtaGlnaGxpZ2h0aW5nL3dyYXAtY29tcG9uZW50cy9TeW50YXhIaWdobGlnaHRlci5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvc3ludGF4LWhpZ2hsaWdodGluZy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy92ZXJzaW9ucy9hZnRlci1sb2FkLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL3ZlcnNpb25zL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJsb2Rhc2gvemlwT2JqZWN0XCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvc2FmZS1yZW5kZXIvZm4uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL3NhZmUtcmVuZGVyL2NvbXBvbmVudHMvZmFsbGJhY2suanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL3NhZmUtcmVuZGVyL2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnkuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL3NhZmUtcmVuZGVyL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL2FwcC5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvYXV0aC9hdXRob3JpemF0aW9uLXBvcHVwLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9hdXRoL2F1dGhvcml6ZS1idG4uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb250YWluZXJzL2F1dGhvcml6ZS1idG4uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL2F1dGgvYXV0aG9yaXplLW9wZXJhdGlvbi1idG4uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL2F1dGgvYXV0aHMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL2F1dGgvYXV0aC1pdGVtLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9hdXRoL2Vycm9yLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9hdXRoL2FwaS1rZXktYXV0aC5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvYXV0aC9iYXNpYy1hdXRoLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9leGFtcGxlLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9leGFtcGxlcy1zZWxlY3QuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL2V4YW1wbGVzLXNlbGVjdC12YWx1ZS1yZXRhaW5lci5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL29hdXRoMi1hdXRob3JpemUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvYXV0aC9vYXV0aDIuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL2NsZWFyLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9saXZlLXJlc3BvbnNlLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9vbmxpbmUtdmFsaWRhdG9yLWJhZGdlLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9vcGVyYXRpb25zLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9vcGVyYXRpb24tdGFnLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9vcGVyYXRpb24uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb250YWluZXJzL09wZXJhdGlvbkNvbnRhaW5lci5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcImxvZGFzaC90b1N0cmluZ1wiIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL29wZXJhdGlvbi1zdW1tYXJ5LmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9vcGVyYXRpb24tc3VtbWFyeS1tZXRob2QuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL29wZXJhdGlvbi1zdW1tYXJ5LXBhdGguanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL29wZXJhdGlvbi1leHRlbnNpb25zLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9vcGVyYXRpb24tZXh0ZW5zaW9uLXJvdy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3V0aWxzL2NyZWF0ZS1odG1sLXJlYWR5LWlkLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL3Jlc3BvbnNlcy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3V0aWxzL2pzb25QYXJzZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9yZXNwb25zZS5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvcmVzcG9uc2UtZXh0ZW5zaW9uLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwieG1sLWJ1dC1wcmV0dGllclwiIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJsb2Rhc2gvdG9Mb3dlclwiIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL3Jlc3BvbnNlLWJvZHkuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL3BhcmFtZXRlcnMvcGFyYW1ldGVycy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvcGFyYW1ldGVyLWV4dGVuc2lvbi5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvcGFyYW1ldGVyLWluY2x1ZGUtZW1wdHkuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL3BhcmFtZXRlci1yb3cuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL2V4ZWN1dGUuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL2hlYWRlcnMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL2Vycm9ycy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvY29udGVudC10eXBlLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9sYXlvdXQtdXRpbHMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL292ZXJ2aWV3LmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9pbml0aWFsaXplZC1pbnB1dC5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvaW5mby5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbnRhaW5lcnMvaW5mby5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvY29udGFjdC5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvbGljZW5zZS5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvanVtcC10by1wYXRoLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9jb3B5LXRvLWNsaXBib2FyZC1idG4uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL2Zvb3Rlci5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbnRhaW5lcnMvZmlsdGVyLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9wYXJhbS1ib2R5LmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9jdXJsLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9wcm9wZXJ0eS5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvdHJ5LWl0LW91dC1idXR0b24uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL3ZlcnNpb24tcHJhZ21hLWZpbHRlci5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvdmVyc2lvbi1zdGFtcC5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbXBvbmVudHMvb3BlbmFwaS12ZXJzaW9uLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9kZWVwLWxpbmsuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL3N2Zy1hc3NldHMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJyZW1hcmthYmxlXCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcInJlbWFya2FibGUvbGlua2lmeVwiIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJkb21wdXJpZnlcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29tcG9uZW50cy9wcm92aWRlcnMvbWFya2Rvd24uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb21wb25lbnRzL2xheW91dHMvYmFzZS5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3ByZXNldHMvYmFzZS9wbHVnaW5zL2NvcmUtY29tcG9uZW50cy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcHJlc2V0cy9iYXNlL3BsdWdpbnMvZm9ybS1jb21wb25lbnRzL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wcmVzZXRzL2Jhc2UvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9zcGVjLWV4dGVuc2lvbnMvd3JhcC1zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9hdXRoLWV4dGVuc2lvbnMvd3JhcC1zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9oZWxwZXJzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL3NwZWMtZXh0ZW5zaW9ucy9zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9jb21wb25lbnRzL2NhbGxiYWNrcy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9jb21wb25lbnRzL3JlcXVlc3QtYm9keS5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9jb21wb25lbnRzL29wZXJhdGlvbi1saW5rLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL2NvbXBvbmVudHMvc2VydmVycy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9jb21wb25lbnRzL3NlcnZlcnMtY29udGFpbmVyLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL2NvbXBvbmVudHMvcmVxdWVzdC1ib2R5LWVkaXRvci5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9jb21wb25lbnRzL2F1dGgvaHR0cC1hdXRoLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL2NvbXBvbmVudHMvb3BlcmF0aW9uLXNlcnZlcnMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvY29tcG9uZW50cy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL3dyYXAtY29tcG9uZW50cy9tYXJrZG93bi5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy93cmFwLWNvbXBvbmVudHMvYXV0aC9hdXRoLWl0ZW0uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvd3JhcC1jb21wb25lbnRzL29ubGluZS12YWxpZGF0b3ItYmFkZ2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy93cmFwLWNvbXBvbmVudHMvbW9kZWwuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvd3JhcC1jb21wb25lbnRzL2pzb24tc2NoZW1hLXN0cmluZy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy93cmFwLWNvbXBvbmVudHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy93cmFwLWNvbXBvbmVudHMvb3BlbmFwaS12ZXJzaW9uLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL2FjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcImxvZGFzaC9lc2NhcGVSZWdFeHBcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL3NlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzL3JlZHVjZXJzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMy9mbi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9jb21wb25lbnRzL3dlYmhvb2tzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9jb21wb25lbnRzL2xpY2Vuc2UuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2NvbXBvbmVudHMvY29udGFjdC5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvY29tcG9uZW50cy9pbmZvLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9jb21wb25lbnRzL2pzb24tc2NoZW1hLWRpYWxlY3QuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2NvbXBvbmVudHMvdmVyc2lvbi1wcmFnbWEtZmlsdGVyLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9jb21wb25lbnRzL21vZGVsL21vZGVsLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9jb21wb25lbnRzL21vZGVscy9tb2RlbHMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2NvbXBvbmVudHMvYXV0aC9tdXR1YWwtdGxzLWF1dGguanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2NvbXBvbmVudHMvYXV0aC9hdXRocy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvZm4uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvd3JhcC1jb21wb25lbnRzL2xpY2Vuc2UuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL3dyYXAtY29tcG9uZW50cy9jb250YWN0LmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS93cmFwLWNvbXBvbmVudHMvaW5mby5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvanNvbi1zY2hlbWEtMjAyMC0xMi1leHRlbnNpb25zL2ZuLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL3dyYXAtY29tcG9uZW50cy9tb2RlbC5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvd3JhcC1jb21wb25lbnRzL21vZGVscy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvd3JhcC1jb21wb25lbnRzL3ZlcnNpb24tcHJhZ21hLWZpbHRlci5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvd3JhcC1jb21wb25lbnRzL2F1dGgvYXV0aC1pdGVtLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS93cmFwLWNvbXBvbmVudHMvYXV0aHMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL3NwZWMtZXh0ZW5zaW9ucy9zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvc3BlYy1leHRlbnNpb25zL3dyYXAtc2VsZWN0b3JzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2F1dGgtZXh0ZW5zaW9ucy93cmFwLXNlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvanNvbi1zY2hlbWEtMjAyMC0xMi1leHRlbnNpb25zL2NvbXBvbmVudHMva2V5d29yZHMvRXhhbXBsZS5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvanNvbi1zY2hlbWEtMjAyMC0xMi1leHRlbnNpb25zL2NvbXBvbmVudHMva2V5d29yZHMvWG1sLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvY29tcG9uZW50cy9rZXl3b3Jkcy9EaXNjcmltaW5hdG9yL0Rpc2NyaW1pbmF0b3JNYXBwaW5nLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvY29tcG9uZW50cy9rZXl3b3Jkcy9EaXNjcmltaW5hdG9yL0Rpc2NyaW1pbmF0b3IuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2pzb24tc2NoZW1hLTIwMjAtMTItZXh0ZW5zaW9ucy9jb21wb25lbnRzL2tleXdvcmRzL09wZW5BUElFeHRlbnNpb25zLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvY29tcG9uZW50cy9rZXl3b3Jkcy9FeHRlcm5hbERvY3MuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2pzb24tc2NoZW1hLTIwMjAtMTItZXh0ZW5zaW9ucy9jb21wb25lbnRzL2tleXdvcmRzL0Rlc2NyaXB0aW9uLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvd3JhcC1jb21wb25lbnRzL2tleXdvcmRzL0Rlc2NyaXB0aW9uLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvd3JhcC1jb21wb25lbnRzL2tleXdvcmRzL0V4YW1wbGVzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvY29tcG9uZW50cy9rZXl3b3Jkcy9Qcm9wZXJ0aWVzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9vYXMzMS9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvd3JhcC1jb21wb25lbnRzL2tleXdvcmRzL1Byb3BlcnRpZXMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2FmdGVyLWxvYWQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvb2FzMzEvb2FzMy1leHRlbnNpb25zL2ZuLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL29hczMxL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvcHJvcC10eXBlcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbnRleHQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9lbnVtLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvaG9va3MuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL0pTT05TY2hlbWEvSlNPTlNjaGVtYS5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzLyRzY2hlbWEuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy8kdm9jYWJ1bGFyeS8kdm9jYWJ1bGFyeS5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzLyRpZC5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzLyRhbmNob3IuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy8kZHluYW1pY0FuY2hvci5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzLyRyZWYuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy8kZHluYW1pY1JlZi5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzLyRkZWZzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvJGNvbW1lbnQuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9BbGxPZi5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0FueU9mLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvT25lT2YuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9Ob3QuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9JZi5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL1RoZW4uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9FbHNlLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvRGVwZW5kZW50U2NoZW1hcy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL1ByZWZpeEl0ZW1zLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvSXRlbXMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9Db250YWlucy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL1Byb3BlcnRpZXMvUHJvcGVydGllcy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL1BhdHRlcm5Qcm9wZXJ0aWVzL1BhdHRlcm5Qcm9wZXJ0aWVzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvQWRkaXRpb25hbFByb3BlcnRpZXMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9Qcm9wZXJ0eU5hbWVzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvVW5ldmFsdWF0ZWRJdGVtcy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL1VuZXZhbHVhdGVkUHJvcGVydGllcy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL1R5cGUuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9FbnVtL0VudW0uanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9Db25zdC9Db25zdC5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9mbi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvQ29uc3RyYWludC9Db25zdHJhaW50LmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvRGVwZW5kZW50UmVxdWlyZWQvRGVwZW5kZW50UmVxdWlyZWQuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9Db250ZW50U2NoZW1hLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvVGl0bGUvVGl0bGUuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9EZXNjcmlwdGlvbi9EZXNjcmlwdGlvbi5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0RlZmF1bHQvRGVmYXVsdC5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0RlcHJlY2F0ZWQuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9rZXl3b3Jkcy9SZWFkT25seS5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL1dyaXRlT25seS5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9jb21wb25lbnRzL2tleXdvcmRzL0V4YW1wbGVzL0V4YW1wbGVzLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMva2V5d29yZHMvRXh0ZW5zaW9uS2V5d29yZHMvRXh0ZW5zaW9uS2V5d29yZHMuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9KU09OVmlld2VyL0pTT05WaWV3ZXIuanN4Iiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTIvY29tcG9uZW50cy9BY2NvcmRpb24vQWNjb3JkaW9uLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMvRXhwYW5kRGVlcEJ1dHRvbi9FeHBhbmREZWVwQnV0dG9uLmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2NvbXBvbmVudHMvaWNvbnMvQ2hldnJvblJpZ2h0LmpzeCIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyL2hvYy5qc3giLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi9pbmRleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vdHlwZXMvYXJyYXkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL3R5cGVzL29iamVjdC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vY29yZS9yYW5kb20uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2NvcmUvcHJlZGljYXRlcy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vY2xhc3MvUmVnaXN0cnkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvaW50MzIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvaW50NjQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvZmxvYXQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvZG91YmxlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2VtYWlsLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2lkbi1lbWFpbC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9ob3N0bmFtZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9pZG4taG9zdG5hbWUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvaXB2NC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9pcHY2LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL3VyaS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy91cmktcmVmZXJlbmNlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2lyaS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9pcmktcmVmZXJlbmNlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL3V1aWQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvdXJpLXRlbXBsYXRlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2pzb24tcG9pbnRlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9yZWxhdGl2ZS1qc29uLXBvaW50ZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvZGF0ZS10aW1lLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL2RhdGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvdGltZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9kdXJhdGlvbi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9wYXNzd29yZC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2VuZXJhdG9ycy9yZWdleC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vY2xhc3MvRm9ybWF0UmVnaXN0cnkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2FwaS9mb3JtYXRBUEkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2VuY29kZXJzLzdiaXQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2VuY29kZXJzLzhiaXQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2VuY29kZXJzL2JpbmFyeS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZW5jb2RlcnMvcXVvdGVkLXByaW50YWJsZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZW5jb2RlcnMvYmFzZTE2LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9lbmNvZGVycy9iYXNlMzIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2VuY29kZXJzL2Jhc2U2NC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZW5jb2RlcnMvYmFzZTY0dXJsLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9jbGFzcy9FbmNvZGVyUmVnaXN0cnkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2FwaS9lbmNvZGVyQVBJLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9nZW5lcmF0b3JzL21lZGlhLXR5cGVzL3RleHQuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvbWVkaWEtdHlwZXMvaW1hZ2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvbWVkaWEtdHlwZXMvYXVkaW8uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvbWVkaWEtdHlwZXMvdmlkZW8uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dlbmVyYXRvcnMvbWVkaWEtdHlwZXMvYXBwbGljYXRpb24uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2NsYXNzL01lZGlhVHlwZVJlZ2lzdHJ5LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9hcGkvbWVkaWFUeXBlQVBJLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi90eXBlcy9zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL3R5cGVzL251bWJlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vdHlwZXMvaW50ZWdlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vdHlwZXMvYm9vbGVhbi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vdHlwZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL3R5cGVzL251bGwuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2NvcmUvY29uc3RhbnRzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlcy9mbi9jb3JlL2V4YW1wbGUuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2NvcmUvdHlwZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vY29yZS91dGlscy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vY29yZS9tZXJnZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vbWFpbi5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vY2xhc3MvT3B0aW9uUmVnaXN0cnkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2FwaS9vcHRpb25BUEkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dldC1qc29uLXNhbXBsZS1zY2hlbWEuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dldC15YW1sLXNhbXBsZS1zY2hlbWEuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2ZuL2dldC14bWwtc2FtcGxlLXNjaGVtYS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyLXNhbXBsZXMvZm4vZ2V0LXNhbXBsZS1zY2hlbWEuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9wcmVzZXRzL2FwaXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbmZpZy9mYWN0b3JpemF0aW9uL2lubGluZS1wbHVnaW4uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbmZpZy9mYWN0b3JpemF0aW9uL3N5c3RlbS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29uZmlnL3NvdXJjZXMvcXVlcnkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbmZpZy9zb3VyY2VzL3VybC5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29uZmlnL3NvdXJjZXMvcnVudGltZS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29uZmlnL2RlZmF1bHRzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJsb2Rhc2gvaGFzXCIiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS9leHRlcm5hbCBjb21tb25qcyBcImxvZGFzaC9mcC9zZXRcIiIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvYXJyYXkuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbmZpZy90eXBlLWNhc3QvdHlwZS1jYXN0ZXJzL2Jvb2xlYW4uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbmZpZy90eXBlLWNhc3QvdHlwZS1jYXN0ZXJzL2RvbS1ub2RlLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb25maWcvdHlwZS1jYXN0L3R5cGUtY2FzdGVycy9maWx0ZXIuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbmZpZy90eXBlLWNhc3QvdHlwZS1jYXN0ZXJzL2Z1bmN0aW9uLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb25maWcvdHlwZS1jYXN0L3R5cGUtY2FzdGVycy9udWxsYWJsZS1hcnJheS5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvbnVsbGFibGUtZnVuY3Rpb24uanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbmZpZy90eXBlLWNhc3QvdHlwZS1jYXN0ZXJzL251bGxhYmxlLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvbnVtYmVyLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb25maWcvdHlwZS1jYXN0L3R5cGUtY2FzdGVycy9vYmplY3QuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2NvbmZpZy90eXBlLWNhc3QvdHlwZS1jYXN0ZXJzL3NvcnRlci5qcyIsIndlYnBhY2s6Ly9Td2FnZ2VyVUlDb3JlLy4vc3JjL2NvcmUvY29uZmlnL3R5cGUtY2FzdC90eXBlLWNhc3RlcnMvc3RyaW5nLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb25maWcvdHlwZS1jYXN0L3R5cGUtY2FzdGVycy9zeW50YXgtaGlnaGxpZ2h0LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb25maWcvdHlwZS1jYXN0L3R5cGUtY2FzdGVycy91bmRlZmluZWQtc3RyaW5nLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb25maWcvdHlwZS1jYXN0L21hcHBpbmdzLmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb25maWcvdHlwZS1jYXN0L2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvY29yZS9jb25maWcvbWVyZ2UuanMiLCJ3ZWJwYWNrOi8vU3dhZ2dlclVJQ29yZS8uL3NyYy9jb3JlL2luZGV4LmpzIiwid2VicGFjazovL1N3YWdnZXJVSUNvcmUvLi9zcmMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiU3dhZ2dlclVJQ29yZVwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJTd2FnZ2VyVUlDb3JlXCJdID0gZmFjdG9yeSgpO1xufSkodGhpcywgKCkgPT4ge1xucmV0dXJuICIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImJ1ZmZlclwiKTsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdFwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcInJlZHV4XCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwiaW1tdXRhYmxlXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwiZGVlcC1leHRlbmRcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWR1eC1pbW11dGFibGVcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJzZXJpYWxpemUtZXJyb3JcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJsb2Rhc2gvbWVyZ2VcIik7IiwiaW1wb3J0IHsgc2VyaWFsaXplRXJyb3IgfSBmcm9tIFwic2VyaWFsaXplLWVycm9yXCJcblxuZXhwb3J0IGNvbnN0IE5FV19USFJPV05fRVJSID0gXCJlcnJfbmV3X3Rocm93bl9lcnJcIlxuZXhwb3J0IGNvbnN0IE5FV19USFJPV05fRVJSX0JBVENIID0gXCJlcnJfbmV3X3Rocm93bl9lcnJfYmF0Y2hcIlxuZXhwb3J0IGNvbnN0IE5FV19TUEVDX0VSUiA9IFwiZXJyX25ld19zcGVjX2VyclwiXG5leHBvcnQgY29uc3QgTkVXX1NQRUNfRVJSX0JBVENIID0gXCJlcnJfbmV3X3NwZWNfZXJyX2JhdGNoXCJcbmV4cG9ydCBjb25zdCBORVdfQVVUSF9FUlIgPSBcImVycl9uZXdfYXV0aF9lcnJcIlxuZXhwb3J0IGNvbnN0IENMRUFSID0gXCJlcnJfY2xlYXJcIlxuZXhwb3J0IGNvbnN0IENMRUFSX0JZID0gXCJlcnJfY2xlYXJfYnlcIlxuXG5leHBvcnQgZnVuY3Rpb24gbmV3VGhyb3duRXJyKGVycikge1xuICByZXR1cm4ge1xuICAgICAgdHlwZTogTkVXX1RIUk9XTl9FUlIsXG4gICAgICBwYXlsb2FkOiBzZXJpYWxpemVFcnJvcihlcnIpXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5ld1Rocm93bkVyckJhdGNoKGVycm9ycykge1xuICByZXR1cm4ge1xuICAgICAgdHlwZTogTkVXX1RIUk9XTl9FUlJfQkFUQ0gsXG4gICAgICBwYXlsb2FkOiBlcnJvcnNcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbmV3U3BlY0VycihlcnIpIHtcbiAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IE5FV19TUEVDX0VSUixcbiAgICAgIHBheWxvYWQ6IGVyclxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBuZXdTcGVjRXJyQmF0Y2goZXJyQXJyYXkpIHtcbiAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IE5FV19TUEVDX0VSUl9CQVRDSCxcbiAgICAgIHBheWxvYWQ6IGVyckFycmF5XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5ld0F1dGhFcnIoZXJyKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogTkVXX0FVVEhfRVJSLFxuICAgIHBheWxvYWQ6IGVyclxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhcihmaWx0ZXIgPSB7fSkge1xuICAvLyBmaWx0ZXIgbG9va3MgbGlrZToge3R5cGU6ICdzcGVjJ30sIHtzb3VyY2U6ICdwYXJzZXInfVxuICByZXR1cm4ge1xuICAgIHR5cGU6IENMRUFSLFxuICAgIHBheWxvYWQ6IGZpbHRlclxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhckJ5KGZpbHRlciA9ICgpID0+IHRydWUpIHtcbiAgLy8gZmlsdGVyIGlzIGEgZnVuY3Rpb25cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBDTEVBUl9CWSxcbiAgICBwYXlsb2FkOiBmaWx0ZXJcbiAgfVxufVxuIiwiZnVuY3Rpb24gbWFrZVdpbmRvdygpIHtcbiAgdmFyIHdpbiA9IHtcbiAgICBsb2NhdGlvbjoge30sXG4gICAgaGlzdG9yeToge30sXG4gICAgb3BlbjogKCkgPT4ge30sXG4gICAgY2xvc2U6ICgpID0+IHt9LFxuICAgIEZpbGU6IGZ1bmN0aW9uKCkge30sXG4gICAgRm9ybURhdGE6IGZ1bmN0aW9uKCkge30sXG4gIH1cblxuICBpZih0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHdpblxuICB9XG5cbiAgdHJ5IHtcbiAgICB3aW4gPSB3aW5kb3dcbiAgICB2YXIgcHJvcHMgPSBbXCJGaWxlXCIsIFwiQmxvYlwiLCBcIkZvcm1EYXRhXCJdXG4gICAgZm9yICh2YXIgcHJvcCBvZiBwcm9wcykge1xuICAgICAgaWYgKHByb3AgaW4gd2luZG93KSB7XG4gICAgICAgIHdpbltwcm9wXSA9IHdpbmRvd1twcm9wXVxuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCggZSApIHtcbiAgICBjb25zb2xlLmVycm9yKGUpXG4gIH1cblxuICByZXR1cm4gd2luXG59XG5cbmV4cG9ydCBkZWZhdWx0IG1ha2VXaW5kb3coKVxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJsb2Rhc2gvbWVtb2l6ZVwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImxvZGFzaC9jYW1lbENhc2VcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJsb2Rhc2gvdXBwZXJGaXJzdFwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImxvZGFzaC9maW5kXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwibG9kYXNoL3NvbWVcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJsb2Rhc2gvZXFcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJsb2Rhc2gvaXNGdW5jdGlvblwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImNzcy5lc2NhcGVcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyYW5kb21ieXRlc1wiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcInNoYS5qc1wiKTsiLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5cbmltcG9ydCBJbSBmcm9tIFwiaW1tdXRhYmxlXCJcblxuY29uc3Qgc3dhZ2dlcjJTY2hlbWFLZXlzID0gSW0uU2V0Lm9mKFxuICBcInR5cGVcIixcbiAgXCJmb3JtYXRcIixcbiAgXCJpdGVtc1wiLFxuICBcImRlZmF1bHRcIixcbiAgXCJtYXhpbXVtXCIsXG4gIFwiZXhjbHVzaXZlTWF4aW11bVwiLFxuICBcIm1pbmltdW1cIixcbiAgXCJleGNsdXNpdmVNaW5pbXVtXCIsXG4gIFwibWF4TGVuZ3RoXCIsXG4gIFwibWluTGVuZ3RoXCIsXG4gIFwicGF0dGVyblwiLFxuICBcIm1heEl0ZW1zXCIsXG4gIFwibWluSXRlbXNcIixcbiAgXCJ1bmlxdWVJdGVtc1wiLFxuICBcImVudW1cIixcbiAgXCJtdWx0aXBsZU9mXCJcbilcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBQYXJhbWV0ZXJTY2hlbWFEZXNjcmlwdG9yXG4gKiBAcHJvcGVydHkge0ltbXV0YWJsZS5NYXB9IHNjaGVtYSAtIHRoZSBwYXJhbWV0ZXIgc2NoZW1hXG4gKiBAcHJvcGVydHkge3N0cmluZ3xudWxsfSBwYXJhbWV0ZXJDb250ZW50TWVkaWFUeXBlIC0gdGhlIGVmZmVjdGl2ZSBtZWRpYSB0eXBlLCBmb3IgYGNvbnRlbnRgLWJhc2VkIE9wZW5BUEkgMy4wIFBhcmFtZXRlcnMsIG9yIGBudWxsYCBvdGhlcndpc2VcbiAqL1xuXG4vKipcbiAqIEdldCB0aGUgZWZmZWN0aXZlIHNjaGVtYSB2YWx1ZSBmb3IgYSBwYXJhbWV0ZXIsIG9yIGFuIGVtcHR5IEltbXV0YWJsZS5NYXAgaWZcbiAqIG5vIHN1aXRhYmxlIHNjaGVtYSBjYW4gYmUgZm91bmQuXG4gKlxuICogU3VwcG9ydHMgT3BlbkFQSSAzLjAgYFBhcmFtZXRlci5jb250ZW50YCBwcmlvcml0eSAtLSBzaW5jZSBhIFBhcmFtZXRlciBPYmplY3RcbiAqIGNhbm5vdCBoYXZlIGJvdGggYHNjaGVtYWAgYW5kIGBjb250ZW50YCwgdGhpcyBmdW5jdGlvbiBpZ25vcmVzIGBzY2hlbWFgIHdoZW5cbiAqIGBjb250ZW50YCBpcyBwcmVzZW50LlxuICpcbiAqIEBwYXJhbSB7SW1tdXRhYmxlLk1hcH0gcGFyYW1ldGVyIFRoZSBwYXJhbWV0ZXIgdG8gaWRlbnRpZnkgYSBzY2hlbWEgZm9yXG4gKiBAcGFyYW0ge29iamVjdH0gY29uZmlnXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGNvbmZpZy5pc09BUzMgV2hldGhlciB0aGUgcGFyYW1ldGVyIGlzIGZyb20gYW4gT3BlbkFQSSAyLjBcbiAqIG9yIE9wZW5BUEkgMy4wIGRlZmluaXRpb25cbiAqIEByZXR1cm4ge1BhcmFtZXRlclNjaGVtYURlc2NyaXB0b3J9IEluZm9ybWF0aW9uIGFib3V0IHRoZSBwYXJhbWV0ZXIgc2NoZW1hXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFBhcmFtZXRlclNjaGVtYShwYXJhbWV0ZXIsIHsgaXNPQVMzIH0gPSB7fSkge1xuICAvLyBSZXR1cm4gZW1wdHkgTWFwIGlmIGBwYXJhbWV0ZXJgIGlzbid0IGEgTWFwXG4gIGlmICghSW0uTWFwLmlzTWFwKHBhcmFtZXRlcikpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2NoZW1hOiBJbS5NYXAoKSxcbiAgICAgIHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGU6IG51bGwsXG4gICAgfVxuICB9XG5cbiAgaWYgKCFpc09BUzMpIHtcbiAgICAvLyBTd2FnZ2VyIDIuMFxuICAgIGlmIChwYXJhbWV0ZXIuZ2V0KFwiaW5cIikgPT09IFwiYm9keVwiKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzY2hlbWE6IHBhcmFtZXRlci5nZXQoXCJzY2hlbWFcIiwgSW0uTWFwKCkpLFxuICAgICAgICBwYXJhbWV0ZXJDb250ZW50TWVkaWFUeXBlOiBudWxsLFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzY2hlbWE6IHBhcmFtZXRlci5maWx0ZXIoKHYsIGspID0+IHN3YWdnZXIyU2NoZW1hS2V5cy5pbmNsdWRlcyhrKSksXG4gICAgICAgIHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGU6IG51bGwsXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgd2UndmUgcmVhY2hlZCBoZXJlLCB0aGUgcGFyYW1ldGVyIGlzIE9wZW5BUEkgMy4wXG5cbiAgaWYgKHBhcmFtZXRlci5nZXQoXCJjb250ZW50XCIpKSB7XG4gICAgY29uc3QgcGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZXMgPSBwYXJhbWV0ZXJcbiAgICAgIC5nZXQoXCJjb250ZW50XCIsIEltLk1hcCh7fSkpXG4gICAgICAua2V5U2VxKClcblxuICAgIGNvbnN0IHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGUgPSBwYXJhbWV0ZXJDb250ZW50TWVkaWFUeXBlcy5maXJzdCgpXG5cbiAgICByZXR1cm4ge1xuICAgICAgc2NoZW1hOiBwYXJhbWV0ZXIuZ2V0SW4oXG4gICAgICAgIFtcImNvbnRlbnRcIiwgcGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZSwgXCJzY2hlbWFcIl0sXG4gICAgICAgIEltLk1hcCgpXG4gICAgICApLFxuICAgICAgcGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZSxcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHNjaGVtYTogcGFyYW1ldGVyLmdldChcInNjaGVtYVwiKVxuICAgICAgPyBwYXJhbWV0ZXIuZ2V0KFwic2NoZW1hXCIsIEltLk1hcCgpKVxuICAgICAgOiBJbS5NYXAoKSxcbiAgICBwYXJhbWV0ZXJDb250ZW50TWVkaWFUeXBlOiBudWxsLFxuICB9XG59XG4iLCIvKlxuICBBVFRFTlRJT04hIFRoaXMgZmlsZSAoYnV0IG5vdCB0aGUgZnVuY3Rpb25zIHdpdGhpbikgaXMgZGVwcmVjYXRlZC5cblxuICBZb3Ugc2hvdWxkIHByb2JhYmx5IGFkZCBhIG5ldyBmaWxlIHRvIGAuL2hlbHBlcnMvYCBpbnN0ZWFkIG9mIGFkZGluZyBhIG5ld1xuICBmdW5jdGlvbiBoZXJlLlxuXG4gIE9uZS1mdW5jdGlvbi1wZXItZmlsZSBpcyBhIGJldHRlciBwYXR0ZXJuIHRoYW4gd2hhdCB3ZSBoYXZlIGhlcmUuXG5cbiAgSWYgeW91J3JlIHJlZmFjdG9yaW5nIHNvbWV0aGluZyBpbiBoZXJlLCBmZWVsIGZyZWUgdG8gYnJlYWsgaXQgb3V0IHRvIGEgZmlsZVxuICBpbiBgLi9oZWxwZXJzYCBpZiB5b3UgaGF2ZSB0aGUgdGltZS5cbiovXG5pbXBvcnQgSW0sIHsgZnJvbUpTLCBNYXAsIFNldCB9IGZyb20gXCJpbW11dGFibGVcIlxuaW1wb3J0IGNhbWVsQ2FzZSBmcm9tIFwibG9kYXNoL2NhbWVsQ2FzZVwiXG5pbXBvcnQgdXBwZXJGaXJzdCBmcm9tIFwibG9kYXNoL3VwcGVyRmlyc3RcIlxuaW1wb3J0IF9tZW1vaXplIGZyb20gXCJsb2Rhc2gvbWVtb2l6ZVwiXG5pbXBvcnQgZmluZCBmcm9tIFwibG9kYXNoL2ZpbmRcIlxuaW1wb3J0IHNvbWUgZnJvbSBcImxvZGFzaC9zb21lXCJcbmltcG9ydCBlcSBmcm9tIFwibG9kYXNoL2VxXCJcbmltcG9ydCBpc0Z1bmN0aW9uIGZyb20gXCJsb2Rhc2gvaXNGdW5jdGlvblwiXG5pbXBvcnQgY3NzRXNjYXBlIGZyb20gXCJjc3MuZXNjYXBlXCJcbmltcG9ydCByYW5kb21CeXRlcyBmcm9tIFwicmFuZG9tYnl0ZXNcIlxuaW1wb3J0IHNoYUpzIGZyb20gXCJzaGEuanNcIlxuaW1wb3J0IHdpbiBmcm9tIFwiY29yZS93aW5kb3dcIlxuaW1wb3J0IGdldFBhcmFtZXRlclNjaGVtYSBmcm9tIFwiY29yZS91dGlscy9nZXQtcGFyYW1ldGVyLXNjaGVtYVwiXG5cblxuY29uc3QgREVGQVVMVF9SRVNQT05TRV9LRVkgPSBcImRlZmF1bHRcIlxuXG5leHBvcnQgY29uc3QgaXNJbW11dGFibGUgPSAobWF5YmUpID0+IEltLkl0ZXJhYmxlLmlzSXRlcmFibGUobWF5YmUpXG5cbmV4cG9ydCBjb25zdCBpbW11dGFibGVUb0pTID0gKHZhbHVlKSA9PiBpc0ltbXV0YWJsZSh2YWx1ZSkgPyB2YWx1ZS50b0pTKCkgOiB2YWx1ZVxuXG5leHBvcnQgZnVuY3Rpb24gb2JqZWN0aWZ5ICh0aGluZykge1xuICBpZighaXNPYmplY3QodGhpbmcpKVxuICAgIHJldHVybiB7fVxuXG4gIHJldHVybiBpbW11dGFibGVUb0pTKHRoaW5nKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlpZnkgKHRoaW5nKSB7XG4gIGlmKCF0aGluZylcbiAgICByZXR1cm4gW11cblxuICBpZih0aGluZy50b0FycmF5KVxuICAgIHJldHVybiB0aGluZy50b0FycmF5KClcblxuICByZXR1cm4gbm9ybWFsaXplQXJyYXkodGhpbmcpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcm9tSlNPcmRlcmVkKGpzKSB7XG4gIGlmIChpc0ltbXV0YWJsZShqcykpIHtcbiAgICByZXR1cm4ganMgLy8gQ2FuJ3QgZG8gbXVjaCBoZXJlXG4gIH1cbiAgaWYgKGpzIGluc3RhbmNlb2Ygd2luLkZpbGUpIHtcbiAgICByZXR1cm4ganNcbiAgfVxuICBpZiAoIWlzT2JqZWN0KGpzKSkge1xuICAgIHJldHVybiBqc1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KGpzKSkge1xuICAgIHJldHVybiBJbS5TZXEoanMpLm1hcChmcm9tSlNPcmRlcmVkKS50b0xpc3QoKVxuICB9XG4gIGlmIChpc0Z1bmN0aW9uKGpzLmVudHJpZXMpKSB7XG4gICAgLy8gaGFuZGxlIG11bHRpcGFydC9mb3JtLWRhdGFcbiAgICBjb25zdCBvYmpXaXRoSGFzaGVkS2V5cyA9IGNyZWF0ZU9ialdpdGhIYXNoZWRLZXlzKGpzKVxuICAgIHJldHVybiBJbS5PcmRlcmVkTWFwKG9ialdpdGhIYXNoZWRLZXlzKS5tYXAoZnJvbUpTT3JkZXJlZClcbiAgfVxuICByZXR1cm4gSW0uT3JkZXJlZE1hcChqcykubWFwKGZyb21KU09yZGVyZWQpXG59XG5cbi8qKlxuICogQ29udmVydCBhIEZvcm1EYXRhIG9iamVjdCBpbnRvIHBsYWluIG9iamVjdFxuICogQXBwZW5kIGEgaGFzaElkeCBhbmQgY291bnRlciB0byB0aGUga2V5IG5hbWUsIGlmIG11bHRpcGxlIGV4aXN0c1xuICogaWYgc2luZ2xlLCBrZXkgbmFtZSA9IDxvcmlnaW5hbD5cbiAqIGlmIG11bHRpcGxlLCBrZXkgbmFtZSA9IDxvcmlnaW5hbD48aGFzaElkeD48Y291bnQ+XG4gKiBAZXhhbXBsZSA8Y2FwdGlvbj5zaW5nbGUgZW50cnkgZm9yIHZlZ2V0YWJsZTwvY2FwdGlvbj5cbiAqIGZkT2JqLmVudHJpZXMudmVndGFibGVzOiBcImNhcnJvdFwiXG4gKiAvLyByZXR1cm5zIG5ld09iai52ZWdldGFibGVzIDogXCJjYXJyb3RcIlxuICogQGV4YW1wbGUgPGNhcHRpb24+bXVsdGlwbGUgZW50cmllcyBmb3IgZnJ1aXRzW108L2NhcHRpb24+XG4gKiBmZE9iai5lbnRyaWVzLmZydWl0c1tdOiBcImFwcGxlXCJcbiAqIC8vIHJldHVybnMgbmV3T2JqLmZydWl0c1tdXyoqW10xIDogXCJhcHBsZVwiXG4gKiBmZE9iai5lbnRyaWVzLmZydWl0c1tdOiBcImJhbmFuYVwiXG4gKiAvLyByZXR1cm5zIG5ld09iai5mcnVpdHNbXV8qKltdMiA6IFwiYmFuYW5hXCJcbiAqIGZkT2JqLmVudHJpZXMuZnJ1aXRzW106IFwiZ3JhcGVcIlxuICogLy8gcmV0dXJucyBuZXdPYmouZnJ1aXRzW11fKipbXTMgOiBcImdyYXBlXCJcbiAqIEBwYXJhbSB7Rm9ybURhdGF9IGZkT2JqIC0gYSBGb3JtRGF0YSBvYmplY3RcbiAqIEByZXR1cm4ge09iamVjdH0gLSBhIHBsYWluIG9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlT2JqV2l0aEhhc2hlZEtleXMgKGZkT2JqKSB7XG4gIGlmICghaXNGdW5jdGlvbihmZE9iai5lbnRyaWVzKSkge1xuICAgIHJldHVybiBmZE9iaiAvLyBub3QgYSBGb3JtRGF0YSBvYmplY3Qgd2l0aCBpdGVyYWJsZVxuICB9XG4gIGNvbnN0IG5ld09iaiA9IHt9XG4gIGNvbnN0IGhhc2hJZHggPSBcIl8qKltdXCIgLy8gb3VyIGludGVybmFsIGlkZW50aWZpZXJcbiAgY29uc3QgdHJhY2tLZXlzID0ge31cbiAgZm9yIChsZXQgcGFpciBvZiBmZE9iai5lbnRyaWVzKCkpIHtcbiAgICBpZiAoIW5ld09ialtwYWlyWzBdXSAmJiAhKHRyYWNrS2V5c1twYWlyWzBdXSAmJiB0cmFja0tleXNbcGFpclswXV0uY29udGFpbnNNdWx0aXBsZSkpIHtcbiAgICAgIG5ld09ialtwYWlyWzBdXSA9IHBhaXJbMV0gLy8gZmlyc3Qga2V5IG5hbWU6IG5vIGhhc2ggcmVxdWlyZWRcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCF0cmFja0tleXNbcGFpclswXV0pIHtcbiAgICAgICAgLy8gaW5pdGlhdGUgdHJhY2tpbmcga2V5IGZvciBtdWx0aXBsZVxuICAgICAgICB0cmFja0tleXNbcGFpclswXV0gPSB7XG4gICAgICAgICAgY29udGFpbnNNdWx0aXBsZTogdHJ1ZSxcbiAgICAgICAgICBsZW5ndGg6IDFcbiAgICAgICAgfVxuICAgICAgICAvLyBcInJlYXNzaWduXCIgZmlyc3QgcGFpciB0byBtYXRjaGluZyBoYXNoZWQgZm9ybWF0IGZvciBtdWx0aXBsZVxuICAgICAgICBsZXQgaGFzaGVkS2V5Rmlyc3QgPSBgJHtwYWlyWzBdfSR7aGFzaElkeH0ke3RyYWNrS2V5c1twYWlyWzBdXS5sZW5ndGh9YFxuICAgICAgICBuZXdPYmpbaGFzaGVkS2V5Rmlyc3RdID0gbmV3T2JqW3BhaXJbMF1dXG4gICAgICAgIC8vIHJlbW92ZSBub24taGFzaGVkIGtleSBvZiBtdWx0aXBsZVxuICAgICAgICBkZWxldGUgbmV3T2JqW3BhaXJbMF1dIC8vIGZpcnN0XG4gICAgICB9XG4gICAgICB0cmFja0tleXNbcGFpclswXV0ubGVuZ3RoICs9IDFcbiAgICAgIGxldCBoYXNoZWRLZXlDdXJyZW50ID0gYCR7cGFpclswXX0ke2hhc2hJZHh9JHt0cmFja0tleXNbcGFpclswXV0ubGVuZ3RofWBcbiAgICAgIG5ld09ialtoYXNoZWRLZXlDdXJyZW50XSA9IHBhaXJbMV1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ld09ialxufVxuXG5leHBvcnQgZnVuY3Rpb24gYmluZFRvU3RhdGUob2JqLCBzdGF0ZSkge1xuICB2YXIgbmV3T2JqID0ge31cbiAgT2JqZWN0LmtleXMob2JqKVxuICAgIC5maWx0ZXIoa2V5ID0+IHR5cGVvZiBvYmpba2V5XSA9PT0gXCJmdW5jdGlvblwiKVxuICAgIC5mb3JFYWNoKGtleSA9PiBuZXdPYmpba2V5XSA9IG9ialtrZXldLmJpbmQobnVsbCwgc3RhdGUpKVxuICByZXR1cm4gbmV3T2JqXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVBcnJheShhcnIpIHtcbiAgaWYoQXJyYXkuaXNBcnJheShhcnIpKVxuICAgIHJldHVybiBhcnJcbiAgcmV0dXJuIFthcnJdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ZuKGZuKSB7XG4gIHJldHVybiB0eXBlb2YgZm4gPT09IFwiZnVuY3Rpb25cIlxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3Qob2JqKSB7XG4gIHJldHVybiAhIW9iaiAmJiB0eXBlb2Ygb2JqID09PSBcIm9iamVjdFwiXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmModGhpbmcpIHtcbiAgcmV0dXJuIHR5cGVvZih0aGluZykgPT09IFwiZnVuY3Rpb25cIlxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBcnJheSh0aGluZykge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGluZylcbn1cblxuLy8gSSd2ZSBjaGFuZ2VkIG1lbW9pemUgbGlicyBtb3JlIHRoYW4gb25jZSwgc28gSSdtIHVzaW5nIHRoaXMgYSB3YXkgdG8gbWFrZSB0aGF0IHNpbXBsZXJcbmV4cG9ydCBjb25zdCBtZW1vaXplID0gX21lbW9pemVcblxuZXhwb3J0IGZ1bmN0aW9uIG9iak1hcChvYmosIGZuKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZSgobmV3T2JqLCBrZXkpID0+IHtcbiAgICBuZXdPYmpba2V5XSA9IGZuKG9ialtrZXldLCBrZXkpXG4gICAgcmV0dXJuIG5ld09ialxuICB9LCB7fSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9ialJlZHVjZShvYmosIGZuKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZSgobmV3T2JqLCBrZXkpID0+IHtcbiAgICBsZXQgcmVzID0gZm4ob2JqW2tleV0sIGtleSlcbiAgICBpZihyZXMgJiYgdHlwZW9mIHJlcyA9PT0gXCJvYmplY3RcIilcbiAgICAgIE9iamVjdC5hc3NpZ24obmV3T2JqLCByZXMpXG4gICAgcmV0dXJuIG5ld09ialxuICB9LCB7fSlcbn1cblxuLy8gUmVkdXggbWlkZGxld2FyZSB0aGF0IGV4cG9zZXMgdGhlIHN5c3RlbSB0byBhc3luYyBhY3Rpb25zIChsaWtlIHJlZHV4LXRodW5rLCBidXQgd2l0aCBvdXQgc3lzdGVtIGluc3RlYWQgb2YgKGRpc3BhdGNoLCBnZXRTdGF0ZSlcbmV4cG9ydCBmdW5jdGlvbiBzeXN0ZW1UaHVua01pZGRsZXdhcmUoZ2V0U3lzdGVtKSB7XG4gIHJldHVybiAoeyBkaXNwYXRjaCwgZ2V0U3RhdGUgfSkgPT4geyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgcmV0dXJuIG5leHQgPT4gYWN0aW9uID0+IHtcbiAgICAgIGlmICh0eXBlb2YgYWN0aW9uID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIGFjdGlvbihnZXRTeXN0ZW0oKSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5leHQoYWN0aW9uKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdFN0YXR1c0NvZGUgKCByZXNwb25zZXMgKSB7XG4gIGxldCBjb2RlcyA9IHJlc3BvbnNlcy5rZXlTZXEoKVxuICByZXR1cm4gY29kZXMuY29udGFpbnMoREVGQVVMVF9SRVNQT05TRV9LRVkpID8gREVGQVVMVF9SRVNQT05TRV9LRVkgOiBjb2Rlcy5maWx0ZXIoIGtleSA9PiAoa2V5K1wiXCIpWzBdID09PSBcIjJcIikuc29ydCgpLmZpcnN0KClcbn1cblxuXG4vKipcbiAqIFJldHVybnMgYW4gSW1tdXRhYmxlIExpc3QsIHNhZmVseVxuICogQHBhcmFtIHtJbW11dGFibGUuSXRlcmFibGV9IGl0ZXJhYmxlIHRoZSBpdGVyYWJsZSB0byBnZXQgdGhlIGtleSBmcm9tXG4gKiBAcGFyYW0ge1N0cmluZ3xbU3RyaW5nXX0ga2V5IGVpdGhlciBhbiBhcnJheSBvZiBrZXlzLCBvciBhIHNpbmdsZSBrZXlcbiAqIEByZXR1cm5zIHtJbW11dGFibGUuTGlzdH0gZWl0aGVyIGl0ZXJhYmxlLmdldChrZXlzKSBvciBhbiBlbXB0eSBJbW11dGFibGUuTGlzdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGlzdChpdGVyYWJsZSwga2V5cykge1xuICBpZighSW0uSXRlcmFibGUuaXNJdGVyYWJsZShpdGVyYWJsZSkpIHtcbiAgICByZXR1cm4gSW0uTGlzdCgpXG4gIH1cbiAgbGV0IHZhbCA9IGl0ZXJhYmxlLmdldEluKEFycmF5LmlzQXJyYXkoa2V5cykgPyBrZXlzIDogW2tleXNdKVxuICByZXR1cm4gSW0uTGlzdC5pc0xpc3QodmFsKSA/IHZhbCA6IEltLkxpc3QoKVxufVxuXG4vKipcbiAqIFRha2UgYW4gaW1tdXRhYmxlIG1hcCwgYW5kIGNvbnZlcnQgdG8gYSBsaXN0LlxuICogV2hlcmUgdGhlIGtleXMgYXJlIG1lcmdlZCB3aXRoIHRoZSB2YWx1ZSBvYmplY3RzXG4gKiBAcGFyYW0ge0ltbXV0YWJsZS5NYXB9IG1hcCwgdGhlIG1hcCB0byBjb252ZXJ0XG4gKiBAcGFyYW0ge1N0cmluZ30ga2V5IHRoZSBrZXkgdG8gdXNlLCB3aGVuIG1lcmdpbmcgdGhlIGBrZXlgXG4gKiBAcmV0dXJucyB7SW1tdXRhYmxlLkxpc3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXBUb0xpc3QobWFwLCBrZXlOYW1lcz1cImtleVwiLCBjb2xsZWN0ZWRLZXlzPUltLk1hcCgpKSB7XG4gIGlmKCFJbS5NYXAuaXNNYXAobWFwKSB8fCAhbWFwLnNpemUpIHtcbiAgICByZXR1cm4gSW0uTGlzdCgpXG4gIH1cblxuICBpZighQXJyYXkuaXNBcnJheShrZXlOYW1lcykpIHtcbiAgICBrZXlOYW1lcyA9IFsga2V5TmFtZXMgXVxuICB9XG5cbiAgaWYoa2V5TmFtZXMubGVuZ3RoIDwgMSkge1xuICAgIHJldHVybiBtYXAubWVyZ2UoY29sbGVjdGVkS2V5cylcbiAgfVxuXG4gIC8vIEkgbmVlZCB0byBhdm9pZCBgZmxhdE1hcGAgZnJvbSBtZXJnaW5nIGluIHRoZSBNYXBzLCBhcyB3ZWxsIGFzIHRoZSBsaXN0c1xuICBsZXQgbGlzdCA9IEltLkxpc3QoKVxuICBsZXQga2V5TmFtZSA9IGtleU5hbWVzWzBdXG4gIGZvcihsZXQgZW50cnkgb2YgbWFwLmVudHJpZXMoKSkge1xuICAgIGxldCBba2V5LCB2YWxdID0gZW50cnlcbiAgICBsZXQgbmV4dExpc3QgPSBtYXBUb0xpc3QodmFsLCBrZXlOYW1lcy5zbGljZSgxKSwgY29sbGVjdGVkS2V5cy5zZXQoa2V5TmFtZSwga2V5KSlcbiAgICBpZihJbS5MaXN0LmlzTGlzdChuZXh0TGlzdCkpIHtcbiAgICAgIGxpc3QgPSBsaXN0LmNvbmNhdChuZXh0TGlzdClcbiAgICB9IGVsc2Uge1xuICAgICAgbGlzdCA9IGxpc3QucHVzaChuZXh0TGlzdClcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbGlzdFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEZpbGVOYW1lRnJvbUNvbnRlbnREaXNwb3NpdGlvbkhlYWRlcih2YWx1ZSl7XG4gIGxldCBwYXR0ZXJucyA9IFtcbiAgICAvZmlsZW5hbWVcXCo9W14nXSsnXFx3KidcIihbXlwiXSspXCI7Py9pLFxuICAgIC9maWxlbmFtZVxcKj1bXiddKydcXHcqJyhbXjtdKyk7Py9pLFxuICAgIC9maWxlbmFtZT1cIihbXjtdKik7P1wiL2ksXG4gICAgL2ZpbGVuYW1lPShbXjtdKik7Py9pXG4gIF1cblxuICBsZXQgcmVzcG9uc2VGaWxlbmFtZVxuICBwYXR0ZXJucy5zb21lKHJlZ2V4ID0+IHtcbiAgICByZXNwb25zZUZpbGVuYW1lID0gcmVnZXguZXhlYyh2YWx1ZSlcbiAgICByZXR1cm4gcmVzcG9uc2VGaWxlbmFtZSAhPT0gbnVsbFxuICB9KVxuXG4gIGlmIChyZXNwb25zZUZpbGVuYW1lICE9PSBudWxsICYmIHJlc3BvbnNlRmlsZW5hbWUubGVuZ3RoID4gMSkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHJlc3BvbnNlRmlsZW5hbWVbMV0pXG4gICAgfSBjYXRjaChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cblxuLy8gUGFzY2FsQ2FzZSwgYWthIFVwcGVyQ2FtZWxDYXNlXG5leHBvcnQgZnVuY3Rpb24gcGFzY2FsQ2FzZShzdHIpIHtcbiAgcmV0dXJuIHVwcGVyRmlyc3QoY2FtZWxDYXNlKHN0cikpXG59XG5cbi8vIFJlbW92ZSB0aGUgZXh0IG9mIGEgZmlsZW5hbWUsIGFuZCBwYXNjYWxDYXNlIGl0XG5leHBvcnQgZnVuY3Rpb24gcGFzY2FsQ2FzZUZpbGVuYW1lKGZpbGVuYW1lKSB7XG4gIHJldHVybiBwYXNjYWxDYXNlKGZpbGVuYW1lLnJlcGxhY2UoL1xcLlteLi9dKiQvLCBcIlwiKSlcbn1cblxuLy8gQ2hlY2sgaWYgLi4uXG4vLyAtIG5ldyBwcm9wc1xuLy8gLSBJZiBpbW11dGFibGUsIHVzZSAuaXMoKVxuLy8gLSBpZiBpbiBleHBsaWNpdCBvYmplY3RMaXN0LCB0aGVuIGNvbXBhcmUgdXNpbmcgXy5lcVxuLy8gLSBlbHNlIHVzZSA9PT1cbmV4cG9ydCBjb25zdCBwcm9wQ2hlY2tlciA9IChwcm9wcywgbmV4dFByb3BzLCBvYmplY3RMaXN0PVtdLCBpZ25vcmVMaXN0PVtdKSA9PiB7XG5cbiAgaWYoT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCAhPT0gT2JqZWN0LmtleXMobmV4dFByb3BzKS5sZW5ndGgpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICBzb21lKHByb3BzLCAoYSwgbmFtZSkgPT4ge1xuICAgICAgaWYoaWdub3JlTGlzdC5pbmNsdWRlcyhuYW1lKSkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGxldCBiID0gbmV4dFByb3BzW25hbWVdXG5cbiAgICAgIGlmKEltLkl0ZXJhYmxlLmlzSXRlcmFibGUoYSkpIHtcbiAgICAgICAgcmV0dXJuICFJbS5pcyhhLGIpXG4gICAgICB9XG5cbiAgICAgIC8vIE5vdCBnb2luZyB0byBjb21wYXJlIG9iamVjdHNcbiAgICAgIGlmKHR5cGVvZiBhID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBiID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gYSAhPT0gYlxuICAgIH0pXG4gICAgfHwgb2JqZWN0TGlzdC5zb21lKCBvYmplY3RQcm9wTmFtZSA9PiAhZXEocHJvcHNbb2JqZWN0UHJvcE5hbWVdLCBuZXh0UHJvcHNbb2JqZWN0UHJvcE5hbWVdKSkpXG59XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU1heGltdW0gPSAoIHZhbCwgbWF4ICkgPT4ge1xuICBpZiAodmFsID4gbWF4KSB7XG4gICAgcmV0dXJuIGBWYWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAke21heH1gXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlTWluaW11bSA9ICggdmFsLCBtaW4gKSA9PiB7XG4gIGlmICh2YWwgPCBtaW4pIHtcbiAgICByZXR1cm4gYFZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICR7bWlufWBcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVOdW1iZXIgPSAoIHZhbCApID0+IHtcbiAgaWYgKCEvXi0/XFxkKyhcXC4/XFxkKyk/JC8udGVzdCh2YWwpKSB7XG4gICAgcmV0dXJuIFwiVmFsdWUgbXVzdCBiZSBhIG51bWJlclwiXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlSW50ZWdlciA9ICggdmFsICkgPT4ge1xuICBpZiAoIS9eLT9cXGQrJC8udGVzdCh2YWwpKSB7XG4gICAgcmV0dXJuIFwiVmFsdWUgbXVzdCBiZSBhbiBpbnRlZ2VyXCJcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVGaWxlID0gKCB2YWwgKSA9PiB7XG4gIGlmICggdmFsICYmICEodmFsIGluc3RhbmNlb2Ygd2luLkZpbGUpICkge1xuICAgIHJldHVybiBcIlZhbHVlIG11c3QgYmUgYSBmaWxlXCJcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVCb29sZWFuID0gKCB2YWwgKSA9PiB7XG4gIGlmICggISh2YWwgPT09IFwidHJ1ZVwiIHx8IHZhbCA9PT0gXCJmYWxzZVwiIHx8IHZhbCA9PT0gdHJ1ZSB8fCB2YWwgPT09IGZhbHNlKSApIHtcbiAgICByZXR1cm4gXCJWYWx1ZSBtdXN0IGJlIGEgYm9vbGVhblwiXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlU3RyaW5nID0gKCB2YWwgKSA9PiB7XG4gIGlmICggdmFsICYmIHR5cGVvZiB2YWwgIT09IFwic3RyaW5nXCIgKSB7XG4gICAgcmV0dXJuIFwiVmFsdWUgbXVzdCBiZSBhIHN0cmluZ1wiXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlRGF0ZVRpbWUgPSAodmFsKSA9PiB7XG4gIGlmIChpc05hTihEYXRlLnBhcnNlKHZhbCkpKSB7XG4gICAgcmV0dXJuIFwiVmFsdWUgbXVzdCBiZSBhIERhdGVUaW1lXCJcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVHdWlkID0gKHZhbCkgPT4ge1xuICB2YWwgPSB2YWwudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpXG4gIGlmICghL15beyhdP1swLTlhLWZdezh9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezEyfVspfV0/JC8udGVzdCh2YWwpKSB7XG4gICAgcmV0dXJuIFwiVmFsdWUgbXVzdCBiZSBhIEd1aWRcIlxuICB9XG59XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU1heExlbmd0aCA9ICh2YWwsIG1heCkgPT4ge1xuICBpZiAodmFsLmxlbmd0aCA+IG1heCkge1xuICAgIHJldHVybiBgVmFsdWUgbXVzdCBiZSBubyBsb25nZXIgdGhhbiAke21heH0gY2hhcmFjdGVyJHttYXggIT09IDEgPyBcInNcIiA6IFwiXCJ9YFxuICB9XG59XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVVuaXF1ZUl0ZW1zID0gKHZhbCwgdW5pcXVlSXRlbXMpID0+IHtcbiAgaWYgKCF2YWwpIHtcbiAgICByZXR1cm5cbiAgfVxuICBpZiAodW5pcXVlSXRlbXMgPT09IFwidHJ1ZVwiIHx8IHVuaXF1ZUl0ZW1zID09PSB0cnVlKSB7XG4gICAgY29uc3QgbGlzdCA9IGZyb21KUyh2YWwpXG4gICAgY29uc3Qgc2V0ID0gbGlzdC50b1NldCgpXG4gICAgY29uc3QgaGFzRHVwbGljYXRlcyA9IHZhbC5sZW5ndGggPiBzZXQuc2l6ZVxuICAgIGlmKGhhc0R1cGxpY2F0ZXMpIHtcbiAgICAgIGxldCBlcnJvcnNQZXJJbmRleCA9IFNldCgpXG4gICAgICBsaXN0LmZvckVhY2goKGl0ZW0sIGkpID0+IHtcbiAgICAgICAgaWYobGlzdC5maWx0ZXIodiA9PiBpc0Z1bmModi5lcXVhbHMpID8gdi5lcXVhbHMoaXRlbSkgOiB2ID09PSBpdGVtKS5zaXplID4gMSkge1xuICAgICAgICAgIGVycm9yc1BlckluZGV4ID0gZXJyb3JzUGVySW5kZXguYWRkKGkpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBpZihlcnJvcnNQZXJJbmRleC5zaXplICE9PSAwKSB7XG4gICAgICAgIHJldHVybiBlcnJvcnNQZXJJbmRleC5tYXAoaSA9PiAoe2luZGV4OiBpLCBlcnJvcjogXCJObyBkdXBsaWNhdGVzIGFsbG93ZWQuXCJ9KSkudG9BcnJheSgpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU1pbkl0ZW1zID0gKHZhbCwgbWluKSA9PiB7XG4gIGlmICghdmFsICYmIG1pbiA+PSAxIHx8IHZhbCAmJiB2YWwubGVuZ3RoIDwgbWluKSB7XG4gICAgcmV0dXJuIGBBcnJheSBtdXN0IGNvbnRhaW4gYXQgbGVhc3QgJHttaW59IGl0ZW0ke21pbiA9PT0gMSA/IFwiXCIgOiBcInNcIn1gXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlTWF4SXRlbXMgPSAodmFsLCBtYXgpID0+IHtcbiAgaWYgKHZhbCAmJiB2YWwubGVuZ3RoID4gbWF4KSB7XG4gICAgcmV0dXJuIGBBcnJheSBtdXN0IG5vdCBjb250YWluIG1vcmUgdGhlbiAke21heH0gaXRlbSR7bWF4ID09PSAxID8gXCJcIiA6IFwic1wifWBcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVNaW5MZW5ndGggPSAodmFsLCBtaW4pID0+IHtcbiAgaWYgKHZhbC5sZW5ndGggPCBtaW4pIHtcbiAgICByZXR1cm4gYFZhbHVlIG11c3QgYmUgYXQgbGVhc3QgJHttaW59IGNoYXJhY3RlciR7bWluICE9PSAxID8gXCJzXCIgOiBcIlwifWBcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVQYXR0ZXJuID0gKHZhbCwgcnhQYXR0ZXJuKSA9PiB7XG4gIHZhciBwYXR0ID0gbmV3IFJlZ0V4cChyeFBhdHRlcm4pXG4gIGlmICghcGF0dC50ZXN0KHZhbCkpIHtcbiAgICByZXR1cm4gXCJWYWx1ZSBtdXN0IGZvbGxvdyBwYXR0ZXJuIFwiICsgcnhQYXR0ZXJuXG4gIH1cbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVWYWx1ZUJ5U2NoZW1hKHZhbHVlLCBzY2hlbWEsIHJlcXVpcmVkQnlQYXJhbSwgYnlwYXNzUmVxdWlyZWRDaGVjaywgcGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZSkge1xuICBpZighc2NoZW1hKSByZXR1cm4gW11cbiAgbGV0IGVycm9ycyA9IFtdXG4gIGxldCBudWxsYWJsZSA9IHNjaGVtYS5nZXQoXCJudWxsYWJsZVwiKVxuICBsZXQgcmVxdWlyZWRCeVNjaGVtYSA9IHNjaGVtYS5nZXQoXCJyZXF1aXJlZFwiKVxuICBsZXQgbWF4aW11bSA9IHNjaGVtYS5nZXQoXCJtYXhpbXVtXCIpXG4gIGxldCBtaW5pbXVtID0gc2NoZW1hLmdldChcIm1pbmltdW1cIilcbiAgbGV0IHR5cGUgPSBzY2hlbWEuZ2V0KFwidHlwZVwiKVxuICBsZXQgZm9ybWF0ID0gc2NoZW1hLmdldChcImZvcm1hdFwiKVxuICBsZXQgbWF4TGVuZ3RoID0gc2NoZW1hLmdldChcIm1heExlbmd0aFwiKVxuICBsZXQgbWluTGVuZ3RoID0gc2NoZW1hLmdldChcIm1pbkxlbmd0aFwiKVxuICBsZXQgdW5pcXVlSXRlbXMgPSBzY2hlbWEuZ2V0KFwidW5pcXVlSXRlbXNcIilcbiAgbGV0IG1heEl0ZW1zID0gc2NoZW1hLmdldChcIm1heEl0ZW1zXCIpXG4gIGxldCBtaW5JdGVtcyA9IHNjaGVtYS5nZXQoXCJtaW5JdGVtc1wiKVxuICBsZXQgcGF0dGVybiA9IHNjaGVtYS5nZXQoXCJwYXR0ZXJuXCIpXG5cbiAgY29uc3Qgc2NoZW1hUmVxdWlyZXNWYWx1ZSA9IHJlcXVpcmVkQnlQYXJhbSB8fCByZXF1aXJlZEJ5U2NoZW1hID09PSB0cnVlXG4gIGNvbnN0IGhhc1ZhbHVlID0gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbFxuICBjb25zdCBpc1ZhbGlkRW1wdHkgPSAhc2NoZW1hUmVxdWlyZXNWYWx1ZSAmJiAhaGFzVmFsdWVcblxuICBjb25zdCBuZWVkc0V4cGxpY2l0Q29uc3RyYWludFZhbGlkYXRpb24gPSBoYXNWYWx1ZSAmJiB0eXBlID09PSBcImFycmF5XCJcblxuICBjb25zdCByZXF1aXJlc0Z1cnRoZXJWYWxpZGF0aW9uID1cbiAgICBzY2hlbWFSZXF1aXJlc1ZhbHVlXG4gICAgfHwgbmVlZHNFeHBsaWNpdENvbnN0cmFpbnRWYWxpZGF0aW9uXG4gICAgfHwgIWlzVmFsaWRFbXB0eVxuXG4gIGNvbnN0IGlzVmFsaWROdWxsYWJsZSA9IG51bGxhYmxlICYmIHZhbHVlID09PSBudWxsXG5cbiAgLy8gcmVxdWlyZWQgdmFsdWUgaXMgbm90IHByb3ZpZGVkIGFuZCB0aGVyZSdzIG5vIHR5cGUgZGVmaW5lZCBpbiB0aGUgc2NoZW1hXG4gIGNvbnN0IHJlcXVpcmVkTm90UHJvdmlkZWQgPVxuICAgIHNjaGVtYVJlcXVpcmVzVmFsdWVcbiAgICAmJiAhaGFzVmFsdWVcbiAgICAmJiAhaXNWYWxpZE51bGxhYmxlXG4gICAgJiYgIWJ5cGFzc1JlcXVpcmVkQ2hlY2tcbiAgICAmJiAhdHlwZVxuXG4gIGlmIChyZXF1aXJlZE5vdFByb3ZpZGVkKSB7XG4gICAgZXJyb3JzLnB1c2goXCJSZXF1aXJlZCBmaWVsZCBpcyBub3QgcHJvdmlkZWRcIilcbiAgICByZXR1cm4gZXJyb3JzXG4gIH1cblxuICAvLyB3aWxsIG5vdCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVxdWVzdCBvciBbc2NoZW1hIC8gdmFsdWVdIGRvZXMgbm90IFthbGxvdyAvIHJlcXVpcmVdIGZ1cnRoZXIgYW5hbHlzaXMuXG4gIGNvbnN0IG5vRnVydGhlclZhbGlkYXRpb25OZWVkZWQgPVxuICAgIGlzVmFsaWROdWxsYWJsZVxuICAgIHx8ICF0eXBlXG4gICAgfHwgIXJlcXVpcmVzRnVydGhlclZhbGlkYXRpb25cblxuICBpZiAobm9GdXJ0aGVyVmFsaWRhdGlvbk5lZWRlZCkge1xuICAgIHJldHVybiBbXVxuICB9XG5cbiAgLy8gRnVydGhlciB0aGlzIHBvaW50IHRoZSBwYXJhbWV0ZXIgaXMgY29uc2lkZXJlZCB3b3J0aCB0byB2YWxpZGF0ZVxuICBsZXQgc3RyaW5nQ2hlY2sgPSB0eXBlID09PSBcInN0cmluZ1wiICYmIHZhbHVlXG4gIGxldCBhcnJheUNoZWNrID0gdHlwZSA9PT0gXCJhcnJheVwiICYmIEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aFxuICBsZXQgYXJyYXlMaXN0Q2hlY2sgPSB0eXBlID09PSBcImFycmF5XCIgJiYgSW0uTGlzdC5pc0xpc3QodmFsdWUpICYmIHZhbHVlLmNvdW50KClcbiAgbGV0IGFycmF5U3RyaW5nQ2hlY2sgPSB0eXBlID09PSBcImFycmF5XCIgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIHZhbHVlXG4gIGxldCBmaWxlQ2hlY2sgPSB0eXBlID09PSBcImZpbGVcIiAmJiB2YWx1ZSBpbnN0YW5jZW9mIHdpbi5GaWxlXG4gIGxldCBib29sZWFuQ2hlY2sgPSB0eXBlID09PSBcImJvb2xlYW5cIiAmJiAodmFsdWUgfHwgdmFsdWUgPT09IGZhbHNlKVxuICBsZXQgbnVtYmVyQ2hlY2sgPSB0eXBlID09PSBcIm51bWJlclwiICYmICh2YWx1ZSB8fCB2YWx1ZSA9PT0gMClcbiAgbGV0IGludGVnZXJDaGVjayA9IHR5cGUgPT09IFwiaW50ZWdlclwiICYmICh2YWx1ZSB8fCB2YWx1ZSA9PT0gMClcbiAgbGV0IG9iamVjdENoZWNrID0gdHlwZSA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgdmFsdWUgIT09IG51bGxcbiAgbGV0IG9iamVjdFN0cmluZ0NoZWNrID0gdHlwZSA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFsdWVcblxuICBjb25zdCBhbGxDaGVja3MgPSBbXG4gICAgc3RyaW5nQ2hlY2ssIGFycmF5Q2hlY2ssIGFycmF5TGlzdENoZWNrLCBhcnJheVN0cmluZ0NoZWNrLCBmaWxlQ2hlY2ssXG4gICAgYm9vbGVhbkNoZWNrLCBudW1iZXJDaGVjaywgaW50ZWdlckNoZWNrLCBvYmplY3RDaGVjaywgb2JqZWN0U3RyaW5nQ2hlY2ssXG4gIF1cblxuICBjb25zdCBwYXNzZWRBbnlDaGVjayA9IGFsbENoZWNrcy5zb21lKHYgPT4gISF2KVxuXG4gIGlmIChzY2hlbWFSZXF1aXJlc1ZhbHVlICYmICFwYXNzZWRBbnlDaGVjayAmJiAhYnlwYXNzUmVxdWlyZWRDaGVjaykge1xuICAgIGVycm9ycy5wdXNoKFwiUmVxdWlyZWQgZmllbGQgaXMgbm90IHByb3ZpZGVkXCIpXG4gICAgcmV0dXJuIGVycm9yc1xuICB9XG4gIGlmIChcbiAgICB0eXBlID09PSBcIm9iamVjdFwiICYmXG4gICAgKHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGUgPT09IG51bGwgfHxcbiAgICAgIHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGUgPT09IFwiYXBwbGljYXRpb24vanNvblwiKVxuICApIHtcbiAgICBsZXQgb2JqZWN0VmFsID0gdmFsdWVcbiAgICBpZih0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIG9iamVjdFZhbCA9IEpTT04ucGFyc2UodmFsdWUpXG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKFwiUGFyYW1ldGVyIHN0cmluZyB2YWx1ZSBtdXN0IGJlIHZhbGlkIEpTT05cIilcbiAgICAgICAgcmV0dXJuIGVycm9yc1xuICAgICAgfVxuICAgIH1cbiAgICBpZihzY2hlbWEgJiYgc2NoZW1hLmhhcyhcInJlcXVpcmVkXCIpICYmIGlzRnVuYyhyZXF1aXJlZEJ5U2NoZW1hLmlzTGlzdCkgJiYgcmVxdWlyZWRCeVNjaGVtYS5pc0xpc3QoKSkge1xuICAgICAgcmVxdWlyZWRCeVNjaGVtYS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGlmKG9iamVjdFZhbFtrZXldID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBlcnJvcnMucHVzaCh7IHByb3BLZXk6IGtleSwgZXJyb3I6IFwiUmVxdWlyZWQgcHJvcGVydHkgbm90IGZvdW5kXCIgfSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gICAgaWYoc2NoZW1hICYmIHNjaGVtYS5oYXMoXCJwcm9wZXJ0aWVzXCIpKSB7XG4gICAgICBzY2hlbWEuZ2V0KFwicHJvcGVydGllc1wiKS5mb3JFYWNoKCh2YWwsIGtleSkgPT4ge1xuICAgICAgICBjb25zdCBlcnJzID0gdmFsaWRhdGVWYWx1ZUJ5U2NoZW1hKG9iamVjdFZhbFtrZXldLCB2YWwsIGZhbHNlLCBieXBhc3NSZXF1aXJlZENoZWNrLCBwYXJhbWV0ZXJDb250ZW50TWVkaWFUeXBlKVxuICAgICAgICBlcnJvcnMucHVzaCguLi5lcnJzXG4gICAgICAgICAgLm1hcCgoZXJyb3IpID0+ICh7IHByb3BLZXk6IGtleSwgZXJyb3IgfSkpKVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBpZiAocGF0dGVybikge1xuICAgIGxldCBlcnIgPSB2YWxpZGF0ZVBhdHRlcm4odmFsdWUsIHBhdHRlcm4pXG4gICAgaWYgKGVycikgZXJyb3JzLnB1c2goZXJyKVxuICB9XG5cbiAgaWYgKG1pbkl0ZW1zKSB7XG4gICAgaWYgKHR5cGUgPT09IFwiYXJyYXlcIikge1xuICAgICAgbGV0IGVyciA9IHZhbGlkYXRlTWluSXRlbXModmFsdWUsIG1pbkl0ZW1zKVxuICAgICAgaWYgKGVycikgZXJyb3JzLnB1c2goZXJyKVxuICAgIH1cbiAgfVxuXG4gIGlmIChtYXhJdGVtcykge1xuICAgIGlmICh0eXBlID09PSBcImFycmF5XCIpIHtcbiAgICAgIGxldCBlcnIgPSB2YWxpZGF0ZU1heEl0ZW1zKHZhbHVlLCBtYXhJdGVtcylcbiAgICAgIGlmIChlcnIpIGVycm9ycy5wdXNoKHsgbmVlZFJlbW92ZTogdHJ1ZSwgZXJyb3I6IGVyciB9KVxuICAgIH1cbiAgfVxuXG4gIGlmICh1bmlxdWVJdGVtcykge1xuICAgIGlmICh0eXBlID09PSBcImFycmF5XCIpIHtcbiAgICAgIGxldCBlcnJvclBlckl0ZW0gPSB2YWxpZGF0ZVVuaXF1ZUl0ZW1zKHZhbHVlLCB1bmlxdWVJdGVtcylcbiAgICAgIGlmIChlcnJvclBlckl0ZW0pIGVycm9ycy5wdXNoKC4uLmVycm9yUGVySXRlbSlcbiAgICB9XG4gIH1cblxuICBpZiAobWF4TGVuZ3RoIHx8IG1heExlbmd0aCA9PT0gMCkge1xuICAgIGxldCBlcnIgPSB2YWxpZGF0ZU1heExlbmd0aCh2YWx1ZSwgbWF4TGVuZ3RoKVxuICAgIGlmIChlcnIpIGVycm9ycy5wdXNoKGVycilcbiAgfVxuXG4gIGlmIChtaW5MZW5ndGgpIHtcbiAgICBsZXQgZXJyID0gdmFsaWRhdGVNaW5MZW5ndGgodmFsdWUsIG1pbkxlbmd0aClcbiAgICBpZiAoZXJyKSBlcnJvcnMucHVzaChlcnIpXG4gIH1cblxuICBpZiAobWF4aW11bSB8fCBtYXhpbXVtID09PSAwKSB7XG4gICAgbGV0IGVyciA9IHZhbGlkYXRlTWF4aW11bSh2YWx1ZSwgbWF4aW11bSlcbiAgICBpZiAoZXJyKSBlcnJvcnMucHVzaChlcnIpXG4gIH1cblxuICBpZiAobWluaW11bSB8fCBtaW5pbXVtID09PSAwKSB7XG4gICAgbGV0IGVyciA9IHZhbGlkYXRlTWluaW11bSh2YWx1ZSwgbWluaW11bSlcbiAgICBpZiAoZXJyKSBlcnJvcnMucHVzaChlcnIpXG4gIH1cblxuICBpZiAodHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIGxldCBlcnJcbiAgICBpZiAoZm9ybWF0ID09PSBcImRhdGUtdGltZVwiKSB7XG4gICAgICBlcnIgPSB2YWxpZGF0ZURhdGVUaW1lKHZhbHVlKVxuICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09PSBcInV1aWRcIikge1xuICAgICAgZXJyID0gdmFsaWRhdGVHdWlkKHZhbHVlKVxuICAgIH0gZWxzZSB7XG4gICAgICBlcnIgPSB2YWxpZGF0ZVN0cmluZyh2YWx1ZSlcbiAgICB9XG4gICAgaWYgKCFlcnIpIHJldHVybiBlcnJvcnNcbiAgICBlcnJvcnMucHVzaChlcnIpXG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICBsZXQgZXJyID0gdmFsaWRhdGVCb29sZWFuKHZhbHVlKVxuICAgIGlmICghZXJyKSByZXR1cm4gZXJyb3JzXG4gICAgZXJyb3JzLnB1c2goZXJyKVxuICB9IGVsc2UgaWYgKHR5cGUgPT09IFwibnVtYmVyXCIpIHtcbiAgICBsZXQgZXJyID0gdmFsaWRhdGVOdW1iZXIodmFsdWUpXG4gICAgaWYgKCFlcnIpIHJldHVybiBlcnJvcnNcbiAgICBlcnJvcnMucHVzaChlcnIpXG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJpbnRlZ2VyXCIpIHtcbiAgICBsZXQgZXJyID0gdmFsaWRhdGVJbnRlZ2VyKHZhbHVlKVxuICAgIGlmICghZXJyKSByZXR1cm4gZXJyb3JzXG4gICAgZXJyb3JzLnB1c2goZXJyKVxuICB9IGVsc2UgaWYgKHR5cGUgPT09IFwiYXJyYXlcIikge1xuICAgIGlmICghKGFycmF5Q2hlY2sgfHwgYXJyYXlMaXN0Q2hlY2spKSB7XG4gICAgICByZXR1cm4gZXJyb3JzXG4gICAgfVxuICAgIGlmKHZhbHVlKSB7XG4gICAgICB2YWx1ZS5mb3JFYWNoKChpdGVtLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IGVycnMgPSB2YWxpZGF0ZVZhbHVlQnlTY2hlbWEoaXRlbSwgc2NoZW1hLmdldChcIml0ZW1zXCIpLCBmYWxzZSwgYnlwYXNzUmVxdWlyZWRDaGVjaywgcGFyYW1ldGVyQ29udGVudE1lZGlhVHlwZSlcbiAgICAgICAgZXJyb3JzLnB1c2goLi4uZXJyc1xuICAgICAgICAgIC5tYXAoKGVycikgPT4gKHsgaW5kZXg6IGksIGVycm9yOiBlcnIgfSkpKVxuICAgICAgfSlcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJmaWxlXCIpIHtcbiAgICBsZXQgZXJyID0gdmFsaWRhdGVGaWxlKHZhbHVlKVxuICAgIGlmICghZXJyKSByZXR1cm4gZXJyb3JzXG4gICAgZXJyb3JzLnB1c2goZXJyKVxuICB9XG5cbiAgcmV0dXJuIGVycm9yc1xufVxuXG4vLyB2YWxpZGF0aW9uIG9mIHBhcmFtZXRlcnMgYmVmb3JlIGV4ZWN1dGVcbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVBhcmFtID0gKHBhcmFtLCB2YWx1ZSwgeyBpc09BUzMgPSBmYWxzZSwgYnlwYXNzUmVxdWlyZWRDaGVjayA9IGZhbHNlIH0gPSB7fSkgPT4ge1xuXG4gIGxldCBwYXJhbVJlcXVpcmVkID0gcGFyYW0uZ2V0KFwicmVxdWlyZWRcIilcblxuICBsZXQge1xuICAgIHNjaGVtYTogcGFyYW1EZXRhaWxzLFxuICAgIHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGVcbiAgfSA9IGdldFBhcmFtZXRlclNjaGVtYShwYXJhbSwgeyBpc09BUzMgfSlcblxuICByZXR1cm4gdmFsaWRhdGVWYWx1ZUJ5U2NoZW1hKHZhbHVlLCBwYXJhbURldGFpbHMsIHBhcmFtUmVxdWlyZWQsIGJ5cGFzc1JlcXVpcmVkQ2hlY2ssIHBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGUpXG59XG5cbmV4cG9ydCBjb25zdCBwYXJzZVNlYXJjaCA9ICgpID0+IHtcbiAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW4ubG9jYXRpb24uc2VhcmNoKVxuICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHNlYXJjaFBhcmFtcylcbn1cblxuZXhwb3J0IGNvbnN0IHNlcmlhbGl6ZVNlYXJjaCA9IChzZWFyY2hNYXApID0+IHtcbiAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhPYmplY3QuZW50cmllcyhzZWFyY2hNYXApKVxuICByZXR1cm4gU3RyaW5nKHNlYXJjaFBhcmFtcylcbn1cblxuZXhwb3J0IGNvbnN0IGJ0b2EgPSAoc3RyKSA9PiB7XG4gIGxldCBidWZmZXJcblxuICBpZiAoc3RyIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgYnVmZmVyID0gc3RyXG4gIH0gZWxzZSB7XG4gICAgYnVmZmVyID0gQnVmZmVyLmZyb20oc3RyLnRvU3RyaW5nKCksIFwidXRmLThcIilcbiAgfVxuXG4gIHJldHVybiBidWZmZXIudG9TdHJpbmcoXCJiYXNlNjRcIilcbn1cblxuZXhwb3J0IGNvbnN0IHNvcnRlcnMgPSB7XG4gIG9wZXJhdGlvbnNTb3J0ZXI6IHtcbiAgICBhbHBoYTogKGEsIGIpID0+IGEuZ2V0KFwicGF0aFwiKS5sb2NhbGVDb21wYXJlKGIuZ2V0KFwicGF0aFwiKSksXG4gICAgbWV0aG9kOiAoYSwgYikgPT4gYS5nZXQoXCJtZXRob2RcIikubG9jYWxlQ29tcGFyZShiLmdldChcIm1ldGhvZFwiKSlcbiAgfSxcbiAgdGFnc1NvcnRlcjoge1xuICAgIGFscGhhOiAoYSwgYikgPT4gYS5sb2NhbGVDb21wYXJlKGIpXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGJ1aWxkRm9ybURhdGEgPSAoZGF0YSkgPT4ge1xuICBsZXQgZm9ybUFyciA9IFtdXG5cbiAgZm9yIChsZXQgbmFtZSBpbiBkYXRhKSB7XG4gICAgbGV0IHZhbCA9IGRhdGFbbmFtZV1cbiAgICBpZiAodmFsICE9PSB1bmRlZmluZWQgJiYgdmFsICE9PSBcIlwiKSB7XG4gICAgICBmb3JtQXJyLnB1c2goW25hbWUsIFwiPVwiLCBlbmNvZGVVUklDb21wb25lbnQodmFsKS5yZXBsYWNlKC8lMjAvZyxcIitcIildLmpvaW4oXCJcIikpXG4gICAgfVxuICB9XG4gIHJldHVybiBmb3JtQXJyLmpvaW4oXCImXCIpXG59XG5cbi8vIElzIHRoaXMgcmVhbGx5IHJlcXVpcmVkIGFzIGEgaGVscGVyPyBQZXJoYXBzLiBUT0RPOiBleHBvc2UgdGhlIHN5c3RlbSBvZiBwcmVzZXRzLmFwaXMgaW4gZG9jcywgc28gd2Uga25vdyB3aGF0IGlzIHN1cHBvcnRlZFxuZXhwb3J0IGNvbnN0IHNoYWxsb3dFcXVhbEtleXMgPSAoYSxiLCBrZXlzKSA9PiB7XG4gIHJldHVybiAhIWZpbmQoa2V5cywgKGtleSkgPT4ge1xuICAgIHJldHVybiBlcShhW2tleV0sIGJba2V5XSlcbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcXVpcmVzVmFsaWRhdGlvblVSTCh1cmkpIHtcbiAgaWYgKCF1cmkgfHwgdXJpLmluZGV4T2YoXCJsb2NhbGhvc3RcIikgPj0gMCB8fCB1cmkuaW5kZXhPZihcIjEyNy4wLjAuMVwiKSA+PSAwIHx8IHVyaSA9PT0gXCJub25lXCIpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICByZXR1cm4gdHJ1ZVxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY2NlcHRDb250cm9sbGluZ1Jlc3BvbnNlKHJlc3BvbnNlcykge1xuICBpZighSW0uT3JkZXJlZE1hcC5pc09yZGVyZWRNYXAocmVzcG9uc2VzKSkge1xuICAgIC8vIHdyb25nIHR5cGUhXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGlmKCFyZXNwb25zZXMuc2l6ZSkge1xuICAgIC8vIHJlc3BvbnNlcyBpcyBlbXB0eVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCBzdWl0YWJsZTJ4eFJlc3BvbnNlID0gcmVzcG9uc2VzLmZpbmQoKHJlcywgaykgPT4ge1xuICAgIHJldHVybiBrLnN0YXJ0c1dpdGgoXCIyXCIpICYmIE9iamVjdC5rZXlzKHJlcy5nZXQoXCJjb250ZW50XCIpIHx8IHt9KS5sZW5ndGggPiAwXG4gIH0pXG5cbiAgLy8gdHJ5IHRvIGZpbmQgYSBzdWl0YWJsZSBgZGVmYXVsdGAgcmVzcG9uc2VzXG4gIGNvbnN0IGRlZmF1bHRSZXNwb25zZSA9IHJlc3BvbnNlcy5nZXQoXCJkZWZhdWx0XCIpIHx8IEltLk9yZGVyZWRNYXAoKVxuICBjb25zdCBkZWZhdWx0UmVzcG9uc2VNZWRpYVR5cGVzID0gKGRlZmF1bHRSZXNwb25zZS5nZXQoXCJjb250ZW50XCIpIHx8IEltLk9yZGVyZWRNYXAoKSkua2V5U2VxKCkudG9KUygpXG4gIGNvbnN0IHN1aXRhYmxlRGVmYXVsdFJlc3BvbnNlID0gZGVmYXVsdFJlc3BvbnNlTWVkaWFUeXBlcy5sZW5ndGggPyBkZWZhdWx0UmVzcG9uc2UgOiBudWxsXG5cbiAgcmV0dXJuIHN1aXRhYmxlMnh4UmVzcG9uc2UgfHwgc3VpdGFibGVEZWZhdWx0UmVzcG9uc2Vcbn1cblxuLy8gc3VpdGFibGUgZm9yIHVzZSBpbiBVUkwgZnJhZ21lbnRzXG5leHBvcnQgY29uc3QgY3JlYXRlRGVlcExpbmtQYXRoID0gKHN0cikgPT4gdHlwZW9mIHN0ciA9PSBcInN0cmluZ1wiIHx8IHN0ciBpbnN0YW5jZW9mIFN0cmluZyA/IHN0ci50cmltKCkucmVwbGFjZSgvXFxzL2csIFwiJTIwXCIpIDogXCJcIlxuLy8gc3VpdGFibGUgZm9yIHVzZSBpbiBDU1MgY2xhc3NlcyBhbmQgaWRzXG5leHBvcnQgY29uc3QgZXNjYXBlRGVlcExpbmtQYXRoID0gKHN0cikgPT4gY3NzRXNjYXBlKCBjcmVhdGVEZWVwTGlua1BhdGgoc3RyKS5yZXBsYWNlKC8lMjAvZywgXCJfXCIpIClcblxuZXhwb3J0IGNvbnN0IGdldEV4dGVuc2lvbnMgPSAoZGVmT2JqKSA9PiB7XG4gIGNvbnN0IGV4dGVuc2lvblJlZ0V4cCA9IC9eeC0vXG4gIGlmKE1hcC5pc01hcChkZWZPYmopKSB7XG4gICAgcmV0dXJuIGRlZk9iai5maWx0ZXIoKHYsIGspID0+IGV4dGVuc2lvblJlZ0V4cC50ZXN0KGspKVxuICB9XG4gIHJldHVybiBPYmplY3Qua2V5cyhkZWZPYmopLmZpbHRlcigoa2V5KSA9PiBleHRlbnNpb25SZWdFeHAudGVzdChrZXkpKVxufVxuZXhwb3J0IGNvbnN0IGdldENvbW1vbkV4dGVuc2lvbnMgPSAoZGVmT2JqKSA9PiBkZWZPYmouZmlsdGVyKCh2LCBrKSA9PiAvXnBhdHRlcm58bWF4TGVuZ3RofG1pbkxlbmd0aHxtYXhpbXVtfG1pbmltdW0vLnRlc3QoaykpXG5cbi8vIERlZXBseSBzdHJpcHMgYSBzcGVjaWZpYyBrZXkgZnJvbSBhbiBvYmplY3QuXG4vL1xuLy8gYHByZWRpY2F0ZWAgY2FuIGJlIHVzZWQgdG8gZGlzY3JpbWluYXRlIHRoZSBzdHJpcHBpbmcgZnVydGhlcixcbi8vIGJ5IHByZXNlcnZpbmcgdGhlIGtleSdzIHBsYWNlIGluIHRoZSBvYmplY3QgYmFzZWQgb24gaXRzIHZhbHVlLlxuZXhwb3J0IGZ1bmN0aW9uIGRlZXBseVN0cmlwS2V5KGlucHV0LCBrZXlUb1N0cmlwLCBwcmVkaWNhdGUgPSAoKSA9PiB0cnVlKSB7XG4gIGlmKHR5cGVvZiBpbnB1dCAhPT0gXCJvYmplY3RcIiB8fCBBcnJheS5pc0FycmF5KGlucHV0KSB8fCBpbnB1dCA9PT0gbnVsbCB8fCAha2V5VG9TdHJpcCkge1xuICAgIHJldHVybiBpbnB1dFxuICB9XG5cbiAgY29uc3Qgb2JqID0gT2JqZWN0LmFzc2lnbih7fSwgaW5wdXQpXG5cbiAgT2JqZWN0LmtleXMob2JqKS5mb3JFYWNoKGsgPT4ge1xuICAgIGlmKGsgPT09IGtleVRvU3RyaXAgJiYgcHJlZGljYXRlKG9ialtrXSwgaykpIHtcbiAgICAgIGRlbGV0ZSBvYmpba11cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBvYmpba10gPSBkZWVwbHlTdHJpcEtleShvYmpba10sIGtleVRvU3RyaXAsIHByZWRpY2F0ZSlcbiAgfSlcblxuICByZXR1cm4gb2JqXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnkodGhpbmcpIHtcbiAgaWYgKHR5cGVvZiB0aGluZyA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiB0aGluZ1xuICB9XG5cbiAgaWYgKHRoaW5nICYmIHRoaW5nLnRvSlMpIHtcbiAgICB0aGluZyA9IHRoaW5nLnRvSlMoKVxuICB9XG5cbiAgaWYgKHR5cGVvZiB0aGluZyA9PT0gXCJvYmplY3RcIiAmJiB0aGluZyAhPT0gbnVsbCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpbmcsIG51bGwsIDIpXG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKHRoaW5nKVxuICAgIH1cbiAgfVxuXG4gIGlmKHRoaW5nID09PSBudWxsIHx8IHRoaW5nID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gXCJcIlxuICB9XG5cbiAgcmV0dXJuIHRoaW5nLnRvU3RyaW5nKClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG51bWJlclRvU3RyaW5nKHRoaW5nKSB7XG4gIGlmKHR5cGVvZiB0aGluZyA9PT0gXCJudW1iZXJcIikge1xuICAgIHJldHVybiB0aGluZy50b1N0cmluZygpXG4gIH1cblxuICByZXR1cm4gdGhpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcmFtVG9JZGVudGlmaWVyKHBhcmFtLCB7IHJldHVybkFsbCA9IGZhbHNlLCBhbGxvd0hhc2hlcyA9IHRydWUgfSA9IHt9KSB7XG4gIGlmKCFJbS5NYXAuaXNNYXAocGFyYW0pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwicGFyYW1Ub0lkZW50aWZpZXI6IHJlY2VpdmVkIGEgbm9uLUltLk1hcCBwYXJhbWV0ZXIgYXMgaW5wdXRcIilcbiAgfVxuICBjb25zdCBwYXJhbU5hbWUgPSBwYXJhbS5nZXQoXCJuYW1lXCIpXG4gIGNvbnN0IHBhcmFtSW4gPSBwYXJhbS5nZXQoXCJpblwiKVxuXG4gIGxldCBnZW5lcmF0ZWRJZGVudGlmaWVycyA9IFtdXG5cbiAgLy8gR2VuZXJhdGUgaWRlbnRpZmllcnMgaW4gb3JkZXIgb2YgbW9zdCB0byBsZWFzdCBzcGVjaWZpY2l0eVxuXG4gIGlmIChwYXJhbSAmJiBwYXJhbS5oYXNoQ29kZSAmJiBwYXJhbUluICYmIHBhcmFtTmFtZSAmJiBhbGxvd0hhc2hlcykge1xuICAgIGdlbmVyYXRlZElkZW50aWZpZXJzLnB1c2goYCR7cGFyYW1Jbn0uJHtwYXJhbU5hbWV9Lmhhc2gtJHtwYXJhbS5oYXNoQ29kZSgpfWApXG4gIH1cblxuICBpZihwYXJhbUluICYmIHBhcmFtTmFtZSkge1xuICAgIGdlbmVyYXRlZElkZW50aWZpZXJzLnB1c2goYCR7cGFyYW1Jbn0uJHtwYXJhbU5hbWV9YClcbiAgfVxuXG4gIGdlbmVyYXRlZElkZW50aWZpZXJzLnB1c2gocGFyYW1OYW1lKVxuXG4gIC8vIFJldHVybiB0aGUgbW9zdCBwcmVmZXJyZWQgaWRlbnRpZmllciwgb3IgYWxsIGlmIHJlcXVlc3RlZFxuXG4gIHJldHVybiByZXR1cm5BbGwgPyBnZW5lcmF0ZWRJZGVudGlmaWVycyA6IChnZW5lcmF0ZWRJZGVudGlmaWVyc1swXSB8fCBcIlwiKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyYW1Ub1ZhbHVlKHBhcmFtLCBwYXJhbVZhbHVlcykge1xuICBjb25zdCBhbGxJZGVudGlmaWVycyA9IHBhcmFtVG9JZGVudGlmaWVyKHBhcmFtLCB7IHJldHVybkFsbDogdHJ1ZSB9KVxuXG4gIC8vIE1hcCBpZGVudGlmaWVycyB0byB2YWx1ZXMgaW4gdGhlIHByb3ZpZGVkIHZhbHVlIGhhc2gsIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzLFxuICAvLyBhbmQgcmV0dXJuIHRoZSBmaXJzdCB2YWx1ZSBmb3VuZFxuICBjb25zdCB2YWx1ZXMgPSBhbGxJZGVudGlmaWVyc1xuICAgIC5tYXAoaWQgPT4ge1xuICAgICAgcmV0dXJuIHBhcmFtVmFsdWVzW2lkXVxuICAgIH0pXG4gICAgLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuXG4gIHJldHVybiB2YWx1ZXNbMF1cbn1cblxuLy8gYWRhcHRlZCBmcm9tIGh0dHBzOi8vYXV0aDAuY29tL2RvY3MvZmxvd3MvZ3VpZGVzL2F1dGgtY29kZS1wa2NlL2luY2x1ZGVzL2NyZWF0ZS1jb2RlLXZlcmlmaWVyXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVDb2RlVmVyaWZpZXIoKSB7XG4gIHJldHVybiBiNjR0b0I2NFVybEVuY29kZWQoXG4gICAgcmFuZG9tQnl0ZXMoMzIpLnRvU3RyaW5nKFwiYmFzZTY0XCIpXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvZGVDaGFsbGVuZ2UoY29kZVZlcmlmaWVyKSB7XG4gIHJldHVybiBiNjR0b0I2NFVybEVuY29kZWQoXG4gICAgc2hhSnMoXCJzaGEyNTZcIilcbiAgICAgIC51cGRhdGUoY29kZVZlcmlmaWVyKVxuICAgICAgLmRpZ2VzdChcImJhc2U2NFwiKVxuICApXG59XG5cbmZ1bmN0aW9uIGI2NHRvQjY0VXJsRW5jb2RlZChzdHIpIHtcbiAgcmV0dXJuIHN0clxuICAgIC5yZXBsYWNlKC9cXCsvZywgXCItXCIpXG4gICAgLnJlcGxhY2UoL1xcLy9nLCBcIl9cIilcbiAgICAucmVwbGFjZSgvPS9nLCBcIlwiKVxufVxuXG5leHBvcnQgY29uc3QgaXNFbXB0eVZhbHVlID0gKHZhbHVlKSA9PiB7XG4gIGlmICghdmFsdWUpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKGlzSW1tdXRhYmxlKHZhbHVlKSAmJiB2YWx1ZS5pc0VtcHR5KCkpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IGNyZWF0ZVN0b3JlLCBhcHBseU1pZGRsZXdhcmUsIGJpbmRBY3Rpb25DcmVhdG9ycywgY29tcG9zZSB9IGZyb20gXCJyZWR1eFwiXG5pbXBvcnQgSW0sIHsgZnJvbUpTLCBNYXAgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCBkZWVwRXh0ZW5kIGZyb20gXCJkZWVwLWV4dGVuZFwiXG5pbXBvcnQgeyBjb21iaW5lUmVkdWNlcnMgfSBmcm9tIFwicmVkdXgtaW1tdXRhYmxlXCJcbmltcG9ydCB7IHNlcmlhbGl6ZUVycm9yIH0gZnJvbSBcInNlcmlhbGl6ZS1lcnJvclwiXG5pbXBvcnQgbWVyZ2UgZnJvbSBcImxvZGFzaC9tZXJnZVwiXG5pbXBvcnQgeyBORVdfVEhST1dOX0VSUiB9IGZyb20gXCJjb3JlL3BsdWdpbnMvZXJyL2FjdGlvbnNcIlxuaW1wb3J0IHdpbiBmcm9tIFwiY29yZS93aW5kb3dcIlxuXG5pbXBvcnQgeyBzeXN0ZW1UaHVua01pZGRsZXdhcmUsIGlzRm4sIG9iak1hcCwgb2JqUmVkdWNlLCBpc09iamVjdCwgaXNBcnJheSwgaXNGdW5jIH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuXG5jb25zdCBpZEZuID0gYSA9PiBhXG5cbi8vIEFwcGx5IG1pZGRsZXdhcmUgdGhhdCBnZXRzIHNhbmR3aXRjaGVkIGJldHdlZW4gYGRpc3BhdGNoYCBhbmQgdGhlIHJlZHVjZXIgZnVuY3Rpb24ocylcbmZ1bmN0aW9uIGNyZWF0ZVN0b3JlV2l0aE1pZGRsZXdhcmUocm9vdFJlZHVjZXIsIGluaXRpYWxTdGF0ZSwgZ2V0U3lzdGVtKSB7XG5cbiAgbGV0IG1pZGRsd2FyZXMgPSBbXG4gICAgLy8gY3JlYXRlTG9nZ2VyKCB7XG4gICAgLy8gICBzdGF0ZVRyYW5zZm9ybWVyOiBzdGF0ZSA9PiBzdGF0ZSAmJiBzdGF0ZS50b0pTKClcbiAgICAvLyB9ICksXG4gICAgc3lzdGVtVGh1bmtNaWRkbGV3YXJlKCBnZXRTeXN0ZW0gKVxuICBdXG5cbiAgY29uc3QgY29tcG9zZUVuaGFuY2VycyA9IHdpbi5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9DT01QT1NFX18gfHwgY29tcG9zZVxuXG4gIHJldHVybiBjcmVhdGVTdG9yZShyb290UmVkdWNlciwgaW5pdGlhbFN0YXRlLCBjb21wb3NlRW5oYW5jZXJzKFxuICAgIGFwcGx5TWlkZGxld2FyZSggLi4ubWlkZGx3YXJlcyApXG4gICkpXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN0b3JlIHtcblxuICBjb25zdHJ1Y3RvcihvcHRzPXt9KSB7XG4gICAgZGVlcEV4dGVuZCh0aGlzLCB7XG4gICAgICBzdGF0ZToge30sXG4gICAgICBwbHVnaW5zOiBbXSxcbiAgICAgIHN5c3RlbToge1xuICAgICAgICBjb25maWdzOiB7fSxcbiAgICAgICAgZm46IHt9LFxuICAgICAgICBjb21wb25lbnRzOiB7fSxcbiAgICAgICAgcm9vdEluamVjdHM6IHt9LFxuICAgICAgICBzdGF0ZVBsdWdpbnM6IHt9XG4gICAgICB9LFxuICAgICAgYm91bmRTeXN0ZW06IHt9LFxuICAgICAgdG9vbGJveDoge31cbiAgICB9LCBvcHRzKVxuXG4gICAgdGhpcy5nZXRTeXN0ZW0gPSB0aGlzLl9nZXRTeXN0ZW0uYmluZCh0aGlzKVxuXG4gICAgLy8gQmFyZSBzeXN0ZW0gKG5vdGhpbmcgaW4gaXQsIGJlc2lkZXMgdGhlIHN0YXRlKVxuICAgIHRoaXMuc3RvcmUgPSBjb25maWd1cmVTdG9yZShpZEZuLCBmcm9tSlModGhpcy5zdGF0ZSksIHRoaXMuZ2V0U3lzdGVtIClcblxuICAgIC8vIHdpbGwgYmUgdGhlIHN5c3RlbSArIEltLCB3ZSBjYW4gYWRkIG1vcmUgdG9vbHMgd2hlbiB3ZSBuZWVkIHRvXG4gICAgdGhpcy5idWlsZFN5c3RlbShmYWxzZSlcblxuICAgIC8vIEJvb3RzdHJhcCBwbHVnaW5zXG4gICAgdGhpcy5yZWdpc3Rlcih0aGlzLnBsdWdpbnMpXG4gIH1cblxuICBnZXRTdG9yZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZVxuICB9XG5cbiAgcmVnaXN0ZXIocGx1Z2lucywgcmVidWlsZD10cnVlKSB7XG4gICAgdmFyIHBsdWdpblN5c3RlbSA9IGNvbWJpbmVQbHVnaW5zKHBsdWdpbnMsIHRoaXMuZ2V0U3lzdGVtKCkpXG4gICAgc3lzdGVtRXh0ZW5kKHRoaXMuc3lzdGVtLCBwbHVnaW5TeXN0ZW0pXG4gICAgaWYocmVidWlsZCkge1xuICAgICAgdGhpcy5idWlsZFN5c3RlbSgpXG4gICAgfVxuXG4gICAgY29uc3QgbmVlZEFub3RoZXJSZWJ1aWxkID0gY2FsbEFmdGVyTG9hZC5jYWxsKHRoaXMuc3lzdGVtLCBwbHVnaW5zLCB0aGlzLmdldFN5c3RlbSgpKVxuXG4gICAgaWYobmVlZEFub3RoZXJSZWJ1aWxkKSB7XG4gICAgICB0aGlzLmJ1aWxkU3lzdGVtKClcbiAgICB9XG4gIH1cblxuICBidWlsZFN5c3RlbShidWlsZFJlZHVjZXI9dHJ1ZSkge1xuICAgIGxldCBkaXNwYXRjaCA9IHRoaXMuZ2V0U3RvcmUoKS5kaXNwYXRjaFxuICAgIGxldCBnZXRTdGF0ZSA9IHRoaXMuZ2V0U3RvcmUoKS5nZXRTdGF0ZVxuXG4gICAgdGhpcy5ib3VuZFN5c3RlbSA9IE9iamVjdC5hc3NpZ24oe30sXG4gICAgICAgIHRoaXMuZ2V0Um9vdEluamVjdHMoKSxcbiAgICAgICAgdGhpcy5nZXRXcmFwcGVkQW5kQm91bmRBY3Rpb25zKGRpc3BhdGNoKSxcbiAgICAgICAgdGhpcy5nZXRXcmFwcGVkQW5kQm91bmRTZWxlY3RvcnMoZ2V0U3RhdGUsIHRoaXMuZ2V0U3lzdGVtKSxcbiAgICAgICAgdGhpcy5nZXRTdGF0ZVRodW5rcyhnZXRTdGF0ZSksXG4gICAgICAgIHRoaXMuZ2V0Rm4oKSxcbiAgICAgICAgdGhpcy5nZXRDb25maWdzKClcbiAgICAgKVxuXG4gICAgaWYoYnVpbGRSZWR1Y2VyKVxuICAgICAgdGhpcy5yZWJ1aWxkUmVkdWNlcigpXG4gIH1cblxuICBfZ2V0U3lzdGVtKCkge1xuICAgIHJldHVybiB0aGlzLmJvdW5kU3lzdGVtXG4gIH1cblxuICBnZXRSb290SW5qZWN0cygpIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7XG4gICAgICBnZXRTeXN0ZW06IHRoaXMuZ2V0U3lzdGVtLFxuICAgICAgZ2V0U3RvcmU6IHRoaXMuZ2V0U3RvcmUuYmluZCh0aGlzKSxcbiAgICAgIGdldENvbXBvbmVudHM6IHRoaXMuZ2V0Q29tcG9uZW50cy5iaW5kKHRoaXMpLFxuICAgICAgZ2V0U3RhdGU6IHRoaXMuZ2V0U3RvcmUoKS5nZXRTdGF0ZSxcbiAgICAgIGdldENvbmZpZ3M6IHRoaXMuX2dldENvbmZpZ3MuYmluZCh0aGlzKSxcbiAgICAgIEltLFxuICAgICAgUmVhY3RcbiAgICB9LCB0aGlzLnN5c3RlbS5yb290SW5qZWN0cyB8fCB7fSlcbiAgfVxuXG4gIF9nZXRDb25maWdzKCl7XG4gICAgcmV0dXJuIHRoaXMuc3lzdGVtLmNvbmZpZ3NcbiAgfVxuXG4gIGdldENvbmZpZ3MoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbmZpZ3M6IHRoaXMuc3lzdGVtLmNvbmZpZ3NcbiAgICB9XG4gIH1cblxuICBzZXRDb25maWdzKGNvbmZpZ3MpIHtcbiAgICB0aGlzLnN5c3RlbS5jb25maWdzID0gY29uZmlnc1xuICB9XG5cbiAgcmVidWlsZFJlZHVjZXIoKSB7XG4gICAgdGhpcy5zdG9yZS5yZXBsYWNlUmVkdWNlcihidWlsZFJlZHVjZXIodGhpcy5zeXN0ZW0uc3RhdGVQbHVnaW5zLCB0aGlzLmdldFN5c3RlbSkpXG4gIH1cblxuICAvKipcbiAgICogR2VuZXJpYyBnZXR0ZXIgZnJvbSBzeXN0ZW0uc3RhdGVQbHVnaW5zXG4gICAqXG4gICAqL1xuICBnZXRUeXBlKG5hbWUpIHtcbiAgICBsZXQgdXBOYW1lID0gbmFtZVswXS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxKVxuICAgIHJldHVybiBvYmpSZWR1Y2UodGhpcy5zeXN0ZW0uc3RhdGVQbHVnaW5zLCAodmFsLCBuYW1lc3BhY2UpID0+IHtcbiAgICAgICAgbGV0IHRoaW5nID0gdmFsW25hbWVdXG4gICAgICAgIGlmKHRoaW5nKVxuICAgICAgICByZXR1cm4ge1tuYW1lc3BhY2UrdXBOYW1lXTogIHRoaW5nfVxuICAgICAgfSlcbiAgfVxuXG4gIGdldFNlbGVjdG9ycygpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRUeXBlKFwic2VsZWN0b3JzXCIpXG4gIH1cblxuICBnZXRBY3Rpb25zKCkge1xuICAgIGxldCBhY3Rpb25Ib2xkZXJzID0gdGhpcy5nZXRUeXBlKFwiYWN0aW9uc1wiKVxuXG4gICAgcmV0dXJuIG9iak1hcChhY3Rpb25Ib2xkZXJzLCAoYWN0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIG9ialJlZHVjZShhY3Rpb25zLCAoYWN0aW9uLCBhY3Rpb25OYW1lKSA9PiB7XG4gICAgICAgIGlmKGlzRm4oYWN0aW9uKSlcbiAgICAgICAgICByZXR1cm4ge1thY3Rpb25OYW1lXTogYWN0aW9ufVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgZ2V0V3JhcHBlZEFuZEJvdW5kQWN0aW9ucyhkaXNwYXRjaCkge1xuICAgIGxldCBhY3Rpb25Hcm91cHMgPSB0aGlzLmdldEJvdW5kQWN0aW9ucyhkaXNwYXRjaClcbiAgICAgIHJldHVybiBvYmpNYXAoYWN0aW9uR3JvdXBzLCAoYWN0aW9ucywgYWN0aW9uR3JvdXBOYW1lKSA9PiB7XG4gICAgICAgIGxldCB3cmFwcGVycyA9IHRoaXMuc3lzdGVtLnN0YXRlUGx1Z2luc1thY3Rpb25Hcm91cE5hbWUuc2xpY2UoMCwtNyldLndyYXBBY3Rpb25zXG4gICAgICAgICAgaWYod3JhcHBlcnMpIHtcbiAgICAgICAgICAgIHJldHVybiBvYmpNYXAoYWN0aW9ucywgKGFjdGlvbiwgYWN0aW9uTmFtZSkgPT4ge1xuICAgICAgICAgICAgICBsZXQgd3JhcCA9IHdyYXBwZXJzW2FjdGlvbk5hbWVdXG4gICAgICAgICAgICAgIGlmKCF3cmFwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjdGlvblxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYoIUFycmF5LmlzQXJyYXkod3JhcCkpIHtcbiAgICAgICAgICAgICAgICB3cmFwID0gW3dyYXBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIHdyYXAucmVkdWNlKChhY2MsIGZuKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IG5ld0FjdGlvbiA9ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZm4oYWNjLCB0aGlzLmdldFN5c3RlbSgpKSguLi5hcmdzKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZighaXNGbihuZXdBY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwid3JhcEFjdGlvbnMgbmVlZHMgdG8gcmV0dXJuIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgbmV3IGZ1bmN0aW9uIChpZSB0aGUgd3JhcHBlZCBhY3Rpb24pXCIpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwV2l0aFRyeUNhdGNoKG5ld0FjdGlvbiwgdGhpcy5nZXRTeXN0ZW0pXG4gICAgICAgICAgICAgIH0sIGFjdGlvbiB8fCBGdW5jdGlvbi5wcm90b3R5cGUpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjdGlvbnNcbiAgICAgIH0pXG4gIH1cblxuICBnZXRXcmFwcGVkQW5kQm91bmRTZWxlY3RvcnMoZ2V0U3RhdGUsIGdldFN5c3RlbSkge1xuICAgIGxldCBzZWxlY3Rvckdyb3VwcyA9IHRoaXMuZ2V0Qm91bmRTZWxlY3RvcnMoZ2V0U3RhdGUsIGdldFN5c3RlbSlcbiAgICAgIHJldHVybiBvYmpNYXAoc2VsZWN0b3JHcm91cHMsIChzZWxlY3RvcnMsIHNlbGVjdG9yR3JvdXBOYW1lKSA9PiB7XG4gICAgICAgIGxldCBzdGF0ZU5hbWUgPSBbc2VsZWN0b3JHcm91cE5hbWUuc2xpY2UoMCwgLTkpXSAvLyBzZWxlY3RvcnMgPSA5IGNoYXJzXG4gICAgICAgIGxldCB3cmFwcGVycyA9IHRoaXMuc3lzdGVtLnN0YXRlUGx1Z2luc1tzdGF0ZU5hbWVdLndyYXBTZWxlY3RvcnNcbiAgICAgICAgICBpZih3cmFwcGVycykge1xuICAgICAgICAgICAgcmV0dXJuIG9iak1hcChzZWxlY3RvcnMsIChzZWxlY3Rvciwgc2VsZWN0b3JOYW1lKSA9PiB7XG4gICAgICAgICAgICAgIGxldCB3cmFwID0gd3JhcHBlcnNbc2VsZWN0b3JOYW1lXVxuICAgICAgICAgICAgICBpZighd3JhcCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxlY3RvclxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYoIUFycmF5LmlzQXJyYXkod3JhcCkpIHtcbiAgICAgICAgICAgICAgICB3cmFwID0gW3dyYXBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIHdyYXAucmVkdWNlKChhY2MsIGZuKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHdyYXBwZWRTZWxlY3RvciA9ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZm4oYWNjLCB0aGlzLmdldFN5c3RlbSgpKShnZXRTdGF0ZSgpLmdldEluKHN0YXRlTmFtZSksIC4uLmFyZ3MpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmKCFpc0ZuKHdyYXBwZWRTZWxlY3RvcikpIHtcbiAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJ3cmFwU2VsZWN0b3IgbmVlZHMgdG8gcmV0dXJuIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgbmV3IGZ1bmN0aW9uIChpZSB0aGUgd3JhcHBlZCBhY3Rpb24pXCIpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkU2VsZWN0b3JcbiAgICAgICAgICAgICAgfSwgc2VsZWN0b3IgfHwgRnVuY3Rpb24ucHJvdG90eXBlKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZWxlY3RvcnNcbiAgICAgIH0pXG4gIH1cblxuICBnZXRTdGF0ZXMoc3RhdGUpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5zeXN0ZW0uc3RhdGVQbHVnaW5zKS5yZWR1Y2UoKG9iaiwga2V5KSA9PiB7XG4gICAgICBvYmpba2V5XSA9IHN0YXRlLmdldChrZXkpXG4gICAgICByZXR1cm4gb2JqXG4gICAgfSwge30pXG4gIH1cblxuICBnZXRTdGF0ZVRodW5rcyhnZXRTdGF0ZSkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLnN5c3RlbS5zdGF0ZVBsdWdpbnMpLnJlZHVjZSgob2JqLCBrZXkpID0+IHtcbiAgICAgICAgb2JqW2tleV0gPSAoKT0+IGdldFN0YXRlKCkuZ2V0KGtleSlcbiAgICByZXR1cm4gb2JqXG4gIH0sIHt9KVxuICB9XG5cbiAgZ2V0Rm4oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZuOiB0aGlzLnN5c3RlbS5mblxuICAgIH1cbiAgfVxuXG4gIGdldENvbXBvbmVudHMoY29tcG9uZW50KSB7XG4gICAgY29uc3QgcmVzID0gdGhpcy5zeXN0ZW0uY29tcG9uZW50c1tjb21wb25lbnRdXG5cbiAgICBpZihBcnJheS5pc0FycmF5KHJlcykpIHtcbiAgICAgIHJldHVybiByZXMucmVkdWNlKChvcmksIHdyYXBwZXIpID0+IHtcbiAgICAgICAgcmV0dXJuIHdyYXBwZXIob3JpLCB0aGlzLmdldFN5c3RlbSgpKVxuICAgICAgfSlcbiAgICB9XG4gICAgaWYodHlwZW9mIGNvbXBvbmVudCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgcmV0dXJuIHRoaXMuc3lzdGVtLmNvbXBvbmVudHNbY29tcG9uZW50XVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN5c3RlbS5jb21wb25lbnRzXG4gIH1cblxuICBnZXRCb3VuZFNlbGVjdG9ycyhnZXRTdGF0ZSwgZ2V0U3lzdGVtKSB7XG4gICAgcmV0dXJuIG9iak1hcCh0aGlzLmdldFNlbGVjdG9ycygpLCAob2JqLCBrZXkpID0+IHtcbiAgICAgIGxldCBzdGF0ZU5hbWUgPSBba2V5LnNsaWNlKDAsIC05KV0gLy8gc2VsZWN0b3JzID0gOSBjaGFyc1xuICAgICAgY29uc3QgZ2V0TmVzdGVkU3RhdGUgPSAoKT0+IGdldFN0YXRlKCkuZ2V0SW4oc3RhdGVOYW1lKVxuXG4gICAgICByZXR1cm4gb2JqTWFwKG9iaiwgKGZuKSA9PiB7XG4gICAgICAgIHJldHVybiAoLi4uYXJncykgPT4ge1xuICAgICAgICAgIGxldCByZXMgPSB3cmFwV2l0aFRyeUNhdGNoKGZuLCB0aGlzLmdldFN5c3RlbSkuYXBwbHkobnVsbCwgW2dldE5lc3RlZFN0YXRlKCksIC4uLmFyZ3NdKVxuXG4gICAgICAgICAgLy8gIElmIGEgc2VsZWN0b3IgcmV0dXJucyBhIGZ1bmN0aW9uLCBnaXZlIGl0IHRoZSBzeXN0ZW0gLSBmb3IgYWR2YW5jZWQgdXNhZ2VcbiAgICAgICAgICBpZih0eXBlb2YocmVzKSA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgICAgcmVzID0gd3JhcFdpdGhUcnlDYXRjaChyZXMsIHRoaXMuZ2V0U3lzdGVtKShnZXRTeXN0ZW0oKSlcblxuICAgICAgICAgIHJldHVybiByZXNcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgZ2V0Qm91bmRBY3Rpb25zKGRpc3BhdGNoKSB7XG5cbiAgICBkaXNwYXRjaCA9IGRpc3BhdGNoIHx8IHRoaXMuZ2V0U3RvcmUoKS5kaXNwYXRjaFxuXG4gICAgY29uc3QgYWN0aW9ucyA9IHRoaXMuZ2V0QWN0aW9ucygpXG5cbiAgICBjb25zdCBwcm9jZXNzID0gY3JlYXRvciA9PntcbiAgICAgIGlmKCB0eXBlb2YoIGNyZWF0b3IgKSAhPT0gXCJmdW5jdGlvblwiICkge1xuICAgICAgICByZXR1cm4gb2JqTWFwKGNyZWF0b3IsIHByb3AgPT4gcHJvY2Vzcyhwcm9wKSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICggLi4uYXJncyApPT57XG4gICAgICAgIHZhciBhY3Rpb24gPSBudWxsXG4gICAgICAgIHRyeXtcbiAgICAgICAgICBhY3Rpb24gPSBjcmVhdG9yKCAuLi5hcmdzIClcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCggZSApe1xuICAgICAgICAgIGFjdGlvbiA9IHt0eXBlOiBORVdfVEhST1dOX0VSUiwgZXJyb3I6IHRydWUsIHBheWxvYWQ6IHNlcmlhbGl6ZUVycm9yKGUpIH1cbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5e1xuICAgICAgICAgIHJldHVybiBhY3Rpb24gLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnNhZmUtZmluYWxseVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG4gICAgcmV0dXJuIG9iak1hcChhY3Rpb25zLCBhY3Rpb25DcmVhdG9yID0+IGJpbmRBY3Rpb25DcmVhdG9ycyggcHJvY2VzcyggYWN0aW9uQ3JlYXRvciApLCBkaXNwYXRjaCApIClcbiAgfVxuXG4gIGdldE1hcFN0YXRlVG9Qcm9wcygpIHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZ2V0U3lzdGVtKCkpXG4gICAgfVxuICB9XG5cbiAgZ2V0TWFwRGlzcGF0Y2hUb1Byb3BzKGV4dHJhcykge1xuICAgIHJldHVybiAoZGlzcGF0Y2gpID0+IHtcbiAgICAgIHJldHVybiBkZWVwRXh0ZW5kKHt9LCB0aGlzLmdldFdyYXBwZWRBbmRCb3VuZEFjdGlvbnMoZGlzcGF0Y2gpLCB0aGlzLmdldEZuKCksIGV4dHJhcylcbiAgICB9XG4gIH1cblxufVxuXG5mdW5jdGlvbiBjb21iaW5lUGx1Z2lucyhwbHVnaW5zLCB0b29sYm94KSB7XG4gIGlmKGlzT2JqZWN0KHBsdWdpbnMpICYmICFpc0FycmF5KHBsdWdpbnMpKSB7XG4gICAgcmV0dXJuIG1lcmdlKHt9LCBwbHVnaW5zKVxuICB9XG5cbiAgaWYoaXNGdW5jKHBsdWdpbnMpKSB7XG4gICAgcmV0dXJuIGNvbWJpbmVQbHVnaW5zKHBsdWdpbnModG9vbGJveCksIHRvb2xib3gpXG4gIH1cblxuICBpZihpc0FycmF5KHBsdWdpbnMpKSB7XG4gICAgcmV0dXJuIHBsdWdpbnNcbiAgICAgIC5tYXAocGx1Z2luID0+IGNvbWJpbmVQbHVnaW5zKHBsdWdpbiwgdG9vbGJveCkpXG4gICAgICAucmVkdWNlKHN5c3RlbUV4dGVuZCwgeyBjb21wb25lbnRzOiB0b29sYm94LmdldENvbXBvbmVudHMoKSB9KVxuICB9XG5cbiAgcmV0dXJuIHt9XG59XG5cbmZ1bmN0aW9uIGNhbGxBZnRlckxvYWQocGx1Z2lucywgc3lzdGVtLCB7IGhhc0xvYWRlZCB9ID0ge30pIHtcbiAgbGV0IGNhbGxlZFNvbWV0aGluZyA9IGhhc0xvYWRlZFxuICBpZihpc09iamVjdChwbHVnaW5zKSAmJiAhaXNBcnJheShwbHVnaW5zKSkge1xuICAgIGlmKHR5cGVvZiBwbHVnaW5zLmFmdGVyTG9hZCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBjYWxsZWRTb21ldGhpbmcgPSB0cnVlXG4gICAgICB3cmFwV2l0aFRyeUNhdGNoKHBsdWdpbnMuYWZ0ZXJMb2FkLCBzeXN0ZW0uZ2V0U3lzdGVtKS5jYWxsKHRoaXMsIHN5c3RlbSlcbiAgICB9XG4gIH1cblxuICBpZihpc0Z1bmMocGx1Z2lucykpXG4gICAgcmV0dXJuIGNhbGxBZnRlckxvYWQuY2FsbCh0aGlzLCBwbHVnaW5zKHN5c3RlbSksIHN5c3RlbSwgeyBoYXNMb2FkZWQ6IGNhbGxlZFNvbWV0aGluZyB9KVxuXG4gIGlmKGlzQXJyYXkocGx1Z2lucykpIHtcbiAgICByZXR1cm4gcGx1Z2lucy5tYXAocGx1Z2luID0+IGNhbGxBZnRlckxvYWQuY2FsbCh0aGlzLCBwbHVnaW4sIHN5c3RlbSwgeyBoYXNMb2FkZWQ6IGNhbGxlZFNvbWV0aGluZyB9KSlcbiAgfVxuXG4gIHJldHVybiBjYWxsZWRTb21ldGhpbmdcbn1cblxuLy8gV3JhcHMgZGVlcEV4dGVuZCwgdG8gYWNjb3VudCBmb3IgY2VydGFpbiBmaWVsZHMsIGJlaW5nIHdyYXBwZXJzLlxuLy8gSWU6IHdlIG5lZWQgdG8gY29udmVydCBzb21lIGZpZWxkcyBpbnRvIGFycmF5cywgYW5kIGFwcGVuZCB0byB0aGVtLlxuLy8gUmF0aGVyIHRoYW4gb3ZlcndyaXRlXG5mdW5jdGlvbiBzeXN0ZW1FeHRlbmQoZGVzdD17fSwgc3JjPXt9KSB7XG5cbiAgaWYoIWlzT2JqZWN0KGRlc3QpKSB7XG4gICAgcmV0dXJuIHt9XG4gIH1cbiAgaWYoIWlzT2JqZWN0KHNyYykpIHtcbiAgICByZXR1cm4gZGVzdFxuICB9XG5cbiAgLy8gV3JhcCBjb21wb25lbnRzXG4gIC8vIFBhcnNlcyBleGlzdGluZyBjb21wb25lbnRzIGluIHRoZSBzeXN0ZW0sIGFuZCBwcmVwYXJlcyB0aGVtIGZvciB3cmFwcGluZyB2aWEgZ2V0Q29tcG9uZW50c1xuICBpZihzcmMud3JhcENvbXBvbmVudHMpIHtcbiAgICBvYmpNYXAoc3JjLndyYXBDb21wb25lbnRzLCAod3JhcHBlckZuLCBrZXkpID0+IHtcbiAgICAgIGNvbnN0IG9yaSA9IGRlc3QuY29tcG9uZW50cyAmJiBkZXN0LmNvbXBvbmVudHNba2V5XVxuICAgICAgaWYob3JpICYmIEFycmF5LmlzQXJyYXkob3JpKSkge1xuICAgICAgICBkZXN0LmNvbXBvbmVudHNba2V5XSA9IG9yaS5jb25jYXQoW3dyYXBwZXJGbl0pXG4gICAgICAgIGRlbGV0ZSBzcmMud3JhcENvbXBvbmVudHNba2V5XVxuICAgICAgfSBlbHNlIGlmKG9yaSkge1xuICAgICAgICBkZXN0LmNvbXBvbmVudHNba2V5XSA9IFtvcmksIHdyYXBwZXJGbl1cbiAgICAgICAgZGVsZXRlIHNyYy53cmFwQ29tcG9uZW50c1trZXldXG4gICAgICB9XG4gICAgfSlcblxuICAgIGlmKCFPYmplY3Qua2V5cyhzcmMud3JhcENvbXBvbmVudHMpLmxlbmd0aCkge1xuICAgICAgLy8gb25seSBkZWxldGUgd3JhcENvbXBvbmVudHMgaWYgd2UndmUgbWF0Y2hlZCBhbGwgb2Ygb3VyIHdyYXBwZXJzIHRvIGNvbXBvbmVudHNcbiAgICAgIC8vIHRoaXMgaGFuZGxlcyBjYXNlcyB3aGVyZSB0aGUgY29tcG9uZW50IHRvIHdyYXAgbWF5IGJlIG91dCBvZiBvdXIgc2NvcGUsXG4gICAgICAvLyBidXQgYSBoaWdoZXIgcmVjdXJzaXZlIGBjb21iaW5lUGx1Z2luc2AgY2FsbCB3aWxsIGJlIGFibGUgdG8gaGFuZGxlIGl0LlxuICAgICAgZGVsZXRlIHNyYy53cmFwQ29tcG9uZW50c1xuICAgIH1cbiAgfVxuXG5cbiAgLy8gQWNjb3VudCBmb3Igd3JhcEFjdGlvbnMsIG1ha2UgaXQgYW4gYXJyYXkgYW5kIGFwcGVuZCB0byBpdFxuICAvLyBNb2RpZmllcyBgc3JjYFxuICAvLyA4MCUgb2YgdGhpcyBjb2RlIGlzIGp1c3Qgc2FmZSB0cmF2ZXJzYWwuIFdlIG5lZWQgdG8gYWRkcmVzcyB0aGF0ICggaWU6IHVzZSBhIGxpYiApXG4gIGNvbnN0IHsgc3RhdGVQbHVnaW5zIH0gPSBkZXN0XG4gIGlmKGlzT2JqZWN0KHN0YXRlUGx1Z2lucykpIHtcbiAgICBmb3IobGV0IG5hbWVzcGFjZSBpbiBzdGF0ZVBsdWdpbnMpIHtcbiAgICAgIGNvbnN0IG5hbWVzcGFjZU9iaiA9IHN0YXRlUGx1Z2luc1tuYW1lc3BhY2VdXG4gICAgICBpZighaXNPYmplY3QobmFtZXNwYWNlT2JqKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IHdyYXBBY3Rpb25zLCB3cmFwU2VsZWN0b3JzIH0gPSBuYW1lc3BhY2VPYmpcblxuICAgICAgLy8gcHJvY2VzcyBhY3Rpb24gd3JhcHBpbmdcbiAgICAgIGlmIChpc09iamVjdCh3cmFwQWN0aW9ucykpIHtcbiAgICAgICAgZm9yKGxldCBhY3Rpb25OYW1lIGluIHdyYXBBY3Rpb25zKSB7XG4gICAgICAgICAgbGV0IGFjdGlvbiA9IHdyYXBBY3Rpb25zW2FjdGlvbk5hbWVdXG5cbiAgICAgICAgICAvLyBUaGlzIHNob3VsZCBvbmx5IGhhcHBlbiBpZiBkZXN0IGlzIHRoZSBmaXJzdCBwbHVnaW4sIHNpbmNlIGludm9jYXRpb25zIGFmdGVyIHRoYXQgd2lsbCBlbnN1cmUgaXRzIGFuIGFycmF5XG4gICAgICAgICAgaWYoIUFycmF5LmlzQXJyYXkoYWN0aW9uKSkge1xuICAgICAgICAgICAgYWN0aW9uID0gW2FjdGlvbl1cbiAgICAgICAgICAgIHdyYXBBY3Rpb25zW2FjdGlvbk5hbWVdID0gYWN0aW9uIC8vIFB1dCB0aGUgdmFsdWUgaW5zaWRlIGFuIGFycmF5XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYoc3JjICYmIHNyYy5zdGF0ZVBsdWdpbnMgJiYgc3JjLnN0YXRlUGx1Z2luc1tuYW1lc3BhY2VdICYmIHNyYy5zdGF0ZVBsdWdpbnNbbmFtZXNwYWNlXS53cmFwQWN0aW9ucyAmJiBzcmMuc3RhdGVQbHVnaW5zW25hbWVzcGFjZV0ud3JhcEFjdGlvbnNbYWN0aW9uTmFtZV0pIHtcbiAgICAgICAgICAgIHNyYy5zdGF0ZVBsdWdpbnNbbmFtZXNwYWNlXS53cmFwQWN0aW9uc1thY3Rpb25OYW1lXSA9IHdyYXBBY3Rpb25zW2FjdGlvbk5hbWVdLmNvbmNhdChzcmMuc3RhdGVQbHVnaW5zW25hbWVzcGFjZV0ud3JhcEFjdGlvbnNbYWN0aW9uTmFtZV0pXG4gICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gcHJvY2VzcyBzZWxlY3RvciB3cmFwcGluZ1xuICAgICAgaWYgKGlzT2JqZWN0KHdyYXBTZWxlY3RvcnMpKSB7XG4gICAgICAgIGZvcihsZXQgc2VsZWN0b3JOYW1lIGluIHdyYXBTZWxlY3RvcnMpIHtcbiAgICAgICAgICBsZXQgc2VsZWN0b3IgPSB3cmFwU2VsZWN0b3JzW3NlbGVjdG9yTmFtZV1cblxuICAgICAgICAgIC8vIFRoaXMgc2hvdWxkIG9ubHkgaGFwcGVuIGlmIGRlc3QgaXMgdGhlIGZpcnN0IHBsdWdpbiwgc2luY2UgaW52b2NhdGlvbnMgYWZ0ZXIgdGhhdCB3aWxsIGVuc3VyZSBpdHMgYW4gYXJyYXlcbiAgICAgICAgICBpZighQXJyYXkuaXNBcnJheShzZWxlY3RvcikpIHtcbiAgICAgICAgICAgIHNlbGVjdG9yID0gW3NlbGVjdG9yXVxuICAgICAgICAgICAgd3JhcFNlbGVjdG9yc1tzZWxlY3Rvck5hbWVdID0gc2VsZWN0b3IgLy8gUHV0IHRoZSB2YWx1ZSBpbnNpZGUgYW4gYXJyYXlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZihzcmMgJiYgc3JjLnN0YXRlUGx1Z2lucyAmJiBzcmMuc3RhdGVQbHVnaW5zW25hbWVzcGFjZV0gJiYgc3JjLnN0YXRlUGx1Z2luc1tuYW1lc3BhY2VdLndyYXBTZWxlY3RvcnMgJiYgc3JjLnN0YXRlUGx1Z2luc1tuYW1lc3BhY2VdLndyYXBTZWxlY3RvcnNbc2VsZWN0b3JOYW1lXSkge1xuICAgICAgICAgICAgc3JjLnN0YXRlUGx1Z2luc1tuYW1lc3BhY2VdLndyYXBTZWxlY3RvcnNbc2VsZWN0b3JOYW1lXSA9IHdyYXBTZWxlY3RvcnNbc2VsZWN0b3JOYW1lXS5jb25jYXQoc3JjLnN0YXRlUGx1Z2luc1tuYW1lc3BhY2VdLndyYXBTZWxlY3RvcnNbc2VsZWN0b3JOYW1lXSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZWVwRXh0ZW5kKGRlc3QsIHNyYylcbn1cblxuZnVuY3Rpb24gYnVpbGRSZWR1Y2VyKHN0YXRlcywgZ2V0U3lzdGVtKSB7XG4gIGxldCByZWR1Y2VyT2JqID0gb2JqTWFwKHN0YXRlcywgKHZhbCkgPT4ge1xuICAgIHJldHVybiB2YWwucmVkdWNlcnNcbiAgfSlcbiAgcmV0dXJuIGFsbFJlZHVjZXJzKHJlZHVjZXJPYmosIGdldFN5c3RlbSlcbn1cblxuZnVuY3Rpb24gYWxsUmVkdWNlcnMocmVkdWNlclN5c3RlbSwgZ2V0U3lzdGVtKSB7XG4gIGxldCByZWR1Y2VycyA9IE9iamVjdC5rZXlzKHJlZHVjZXJTeXN0ZW0pLnJlZHVjZSgob2JqLCBrZXkpID0+IHtcbiAgICBvYmpba2V5XSA9IG1ha2VSZWR1Y2VyKHJlZHVjZXJTeXN0ZW1ba2V5XSwgZ2V0U3lzdGVtKVxuICAgIHJldHVybiBvYmpcbiAgfSx7fSlcblxuICBpZighT2JqZWN0LmtleXMocmVkdWNlcnMpLmxlbmd0aCkge1xuICAgIHJldHVybiBpZEZuXG4gIH1cblxuICByZXR1cm4gY29tYmluZVJlZHVjZXJzKHJlZHVjZXJzKVxufVxuXG5mdW5jdGlvbiBtYWtlUmVkdWNlcihyZWR1Y2VyT2JqLCBnZXRTeXN0ZW0pIHtcbiAgcmV0dXJuIChzdGF0ZSA9IG5ldyBNYXAoKSwgYWN0aW9uKSA9PiB7XG4gICAgaWYoIXJlZHVjZXJPYmopXG4gICAgICByZXR1cm4gc3RhdGVcblxuICAgIGxldCByZWRGbiA9IChyZWR1Y2VyT2JqW2FjdGlvbi50eXBlXSlcbiAgICBpZihyZWRGbikge1xuICAgICAgY29uc3QgcmVzID0gd3JhcFdpdGhUcnlDYXRjaChyZWRGbiwgZ2V0U3lzdGVtKShzdGF0ZSwgYWN0aW9uKVxuICAgICAgLy8gSWYgdGhlIHRyeS9jYXRjaCB3cmFwcGVyIGtpY2tzIGluLCB3ZSdsbCBnZXQgbnVsbCBiYWNrLi4uXG4gICAgICAvLyBpbiB0aGF0IGNhc2UsIHdlIHdhbnQgdG8gYXZvaWQgbWFraW5nIGFueSBjaGFuZ2VzIHRvIHN0YXRlXG4gICAgICByZXR1cm4gcmVzID09PSBudWxsID8gc3RhdGUgOiByZXNcbiAgICB9XG4gICAgcmV0dXJuIHN0YXRlXG4gIH1cbn1cblxuZnVuY3Rpb24gd3JhcFdpdGhUcnlDYXRjaChmbiwgZ2V0U3lzdGVtLCB7XG4gIGxvZ0Vycm9ycyA9IHRydWVcbn0gPSB7fSkge1xuICBpZih0eXBlb2YgZm4gIT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiBmblxuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhpcywgLi4uYXJncylcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBpZihsb2dFcnJvcnMpIHtcbiAgICAgICAgY29uc3QgeyB1bmNhdWdodEV4Y2VwdGlvbkhhbmRsZXJ9ID0gZ2V0U3lzdGVtKCkuZ2V0Q29uZmlncygpXG4gICAgICAgIGlmICh0eXBlb2YgdW5jYXVnaHRFeGNlcHRpb25IYW5kbGVyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICB1bmNhdWdodEV4Y2VwdGlvbkhhbmRsZXIoZXJyb3IpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcilcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY29uZmlndXJlU3RvcmUocm9vdFJlZHVjZXIsIGluaXRpYWxTdGF0ZSwgZ2V0U3lzdGVtKSB7XG4gIGNvbnN0IHN0b3JlID0gY3JlYXRlU3RvcmVXaXRoTWlkZGxld2FyZShyb290UmVkdWNlciwgaW5pdGlhbFN0YXRlLCBnZXRTeXN0ZW0pXG5cbiAgLy8gaWYgKG1vZHVsZS5ob3QpIHtcbiAgLy8gICAvLyBFbmFibGUgV2VicGFjayBob3QgbW9kdWxlIHJlcGxhY2VtZW50IGZvciByZWR1Y2Vyc1xuICAvLyAgIG1vZHVsZS5ob3QuYWNjZXB0KFwicmVkdWNlcnMvaW5kZXhcIiwgKCkgPT4ge1xuICAvLyAgICAgY29uc3QgbmV4dFJvb3RSZWR1Y2VyID0gcmVxdWlyZShcInJlZHVjZXJzL2luZGV4XCIpXG4gIC8vICAgICBzdG9yZS5yZXBsYWNlUmVkdWNlcihuZXh0Um9vdFJlZHVjZXIpXG4gIC8vICAgfSlcbiAgLy8gfVxuXG4gIHJldHVybiBzdG9yZVxufVxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJ1cmwtcGFyc2VcIik7IiwiaW1wb3J0IHBhcnNlVXJsIGZyb20gXCJ1cmwtcGFyc2VcIlxuaW1wb3J0IHdpbiBmcm9tIFwiY29yZS93aW5kb3dcIlxuaW1wb3J0IHsgYnRvYSwgYnVpbGRGb3JtRGF0YSB9IGZyb20gXCJjb3JlL3V0aWxzXCJcblxuZXhwb3J0IGNvbnN0IFNIT1dfQVVUSF9QT1BVUCA9IFwic2hvd19wb3B1cFwiXG5leHBvcnQgY29uc3QgQVVUSE9SSVpFID0gXCJhdXRob3JpemVcIlxuZXhwb3J0IGNvbnN0IExPR09VVCA9IFwibG9nb3V0XCJcbmV4cG9ydCBjb25zdCBBVVRIT1JJWkVfT0FVVEgyID0gXCJhdXRob3JpemVfb2F1dGgyXCJcbmV4cG9ydCBjb25zdCBDT05GSUdVUkVfQVVUSCA9IFwiY29uZmlndXJlX2F1dGhcIlxuZXhwb3J0IGNvbnN0IFJFU1RPUkVfQVVUSE9SSVpBVElPTiA9IFwicmVzdG9yZV9hdXRob3JpemF0aW9uXCJcblxuY29uc3Qgc2NvcGVTZXBhcmF0b3IgPSBcIiBcIlxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd0RlZmluaXRpb25zKHBheWxvYWQpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBTSE9XX0FVVEhfUE9QVVAsXG4gICAgcGF5bG9hZDogcGF5bG9hZFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhdXRob3JpemUocGF5bG9hZCkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IEFVVEhPUklaRSxcbiAgICBwYXlsb2FkOiBwYXlsb2FkXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGF1dGhvcml6ZVdpdGhQZXJzaXN0T3B0aW9uID0gKHBheWxvYWQpID0+ICggeyBhdXRoQWN0aW9ucyB9ICkgPT4ge1xuICBhdXRoQWN0aW9ucy5hdXRob3JpemUocGF5bG9hZClcbiAgYXV0aEFjdGlvbnMucGVyc2lzdEF1dGhvcml6YXRpb25JZk5lZWRlZCgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2dvdXQocGF5bG9hZCkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IExPR09VVCxcbiAgICBwYXlsb2FkOiBwYXlsb2FkXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGxvZ291dFdpdGhQZXJzaXN0T3B0aW9uID0gKHBheWxvYWQpID0+ICggeyBhdXRoQWN0aW9ucyB9ICkgPT4ge1xuICBhdXRoQWN0aW9ucy5sb2dvdXQocGF5bG9hZClcbiAgYXV0aEFjdGlvbnMucGVyc2lzdEF1dGhvcml6YXRpb25JZk5lZWRlZCgpXG59XG5cbmV4cG9ydCBjb25zdCBwcmVBdXRob3JpemVJbXBsaWNpdCA9IChwYXlsb2FkKSA9PiAoIHsgYXV0aEFjdGlvbnMsIGVyckFjdGlvbnMgfSApID0+IHtcbiAgbGV0IHsgYXV0aCAsIHRva2VuLCBpc1ZhbGlkIH0gPSBwYXlsb2FkXG4gIGxldCB7IHNjaGVtYSwgbmFtZSB9ID0gYXV0aFxuICBsZXQgZmxvdyA9IHNjaGVtYS5nZXQoXCJmbG93XCIpXG5cbiAgLy8gcmVtb3ZlIG9hdXRoMiBwcm9wZXJ0eSBmcm9tIHdpbmRvdyBhZnRlciByZWRpcmVjdCBmcm9tIGF1dGhlbnRpY2F0aW9uXG4gIGRlbGV0ZSB3aW4uc3dhZ2dlclVJUmVkaXJlY3RPYXV0aDJcblxuICBpZiAoIGZsb3cgIT09IFwiYWNjZXNzQ29kZVwiICYmICFpc1ZhbGlkICkge1xuICAgIGVyckFjdGlvbnMubmV3QXV0aEVycigge1xuICAgICAgYXV0aElkOiBuYW1lLFxuICAgICAgc291cmNlOiBcImF1dGhcIixcbiAgICAgIGxldmVsOiBcIndhcm5pbmdcIixcbiAgICAgIG1lc3NhZ2U6IFwiQXV0aG9yaXphdGlvbiBtYXkgYmUgdW5zYWZlLCBwYXNzZWQgc3RhdGUgd2FzIGNoYW5nZWQgaW4gc2VydmVyIFBhc3NlZCBzdGF0ZSB3YXNuJ3QgcmV0dXJuZWQgZnJvbSBhdXRoIHNlcnZlclwiXG4gICAgfSlcbiAgfVxuXG4gIGlmICggdG9rZW4uZXJyb3IgKSB7XG4gICAgZXJyQWN0aW9ucy5uZXdBdXRoRXJyKHtcbiAgICAgIGF1dGhJZDogbmFtZSxcbiAgICAgIHNvdXJjZTogXCJhdXRoXCIsXG4gICAgICBsZXZlbDogXCJlcnJvclwiLFxuICAgICAgbWVzc2FnZTogSlNPTi5zdHJpbmdpZnkodG9rZW4pXG4gICAgfSlcbiAgICByZXR1cm5cbiAgfVxuXG4gIGF1dGhBY3Rpb25zLmF1dGhvcml6ZU9hdXRoMldpdGhQZXJzaXN0T3B0aW9uKHsgYXV0aCwgdG9rZW4gfSlcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gYXV0aG9yaXplT2F1dGgyKHBheWxvYWQpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBBVVRIT1JJWkVfT0FVVEgyLFxuICAgIHBheWxvYWQ6IHBheWxvYWRcbiAgfVxufVxuXG5cbmV4cG9ydCBjb25zdCBhdXRob3JpemVPYXV0aDJXaXRoUGVyc2lzdE9wdGlvbiA9IChwYXlsb2FkKSA9PiAoIHsgYXV0aEFjdGlvbnMgfSApID0+IHtcbiAgYXV0aEFjdGlvbnMuYXV0aG9yaXplT2F1dGgyKHBheWxvYWQpXG4gIGF1dGhBY3Rpb25zLnBlcnNpc3RBdXRob3JpemF0aW9uSWZOZWVkZWQoKVxufVxuXG5leHBvcnQgY29uc3QgYXV0aG9yaXplUGFzc3dvcmQgPSAoIGF1dGggKSA9PiAoIHsgYXV0aEFjdGlvbnMgfSApID0+IHtcbiAgbGV0IHsgc2NoZW1hLCBuYW1lLCB1c2VybmFtZSwgcGFzc3dvcmQsIHBhc3N3b3JkVHlwZSwgY2xpZW50SWQsIGNsaWVudFNlY3JldCB9ID0gYXV0aFxuICBsZXQgZm9ybSA9IHtcbiAgICBncmFudF90eXBlOiBcInBhc3N3b3JkXCIsXG4gICAgc2NvcGU6IGF1dGguc2NvcGVzLmpvaW4oc2NvcGVTZXBhcmF0b3IpLFxuICAgIHVzZXJuYW1lLFxuICAgIHBhc3N3b3JkXG4gIH1cbiAgbGV0IHF1ZXJ5ID0ge31cbiAgbGV0IGhlYWRlcnMgPSB7fVxuXG4gIHN3aXRjaCAocGFzc3dvcmRUeXBlKSB7XG4gICAgY2FzZSBcInJlcXVlc3QtYm9keVwiOlxuICAgICAgc2V0Q2xpZW50SWRBbmRTZWNyZXQoZm9ybSwgY2xpZW50SWQsIGNsaWVudFNlY3JldClcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlIFwiYmFzaWNcIjpcbiAgICAgIGhlYWRlcnMuQXV0aG9yaXphdGlvbiA9IFwiQmFzaWMgXCIgKyBidG9hKGNsaWVudElkICsgXCI6XCIgKyBjbGllbnRTZWNyZXQpXG4gICAgICBicmVha1xuICAgIGRlZmF1bHQ6XG4gICAgICBjb25zb2xlLndhcm4oYFdhcm5pbmc6IGludmFsaWQgcGFzc3dvcmRUeXBlICR7cGFzc3dvcmRUeXBlfSB3YXMgcGFzc2VkLCBub3QgaW5jbHVkaW5nIGNsaWVudCBpZCBhbmQgc2VjcmV0YClcbiAgfVxuXG4gIHJldHVybiBhdXRoQWN0aW9ucy5hdXRob3JpemVSZXF1ZXN0KHsgYm9keTogYnVpbGRGb3JtRGF0YShmb3JtKSwgdXJsOiBzY2hlbWEuZ2V0KFwidG9rZW5VcmxcIiksIG5hbWUsIGhlYWRlcnMsIHF1ZXJ5LCBhdXRofSlcbn1cblxuZnVuY3Rpb24gc2V0Q2xpZW50SWRBbmRTZWNyZXQodGFyZ2V0LCBjbGllbnRJZCwgY2xpZW50U2VjcmV0KSB7XG4gIGlmICggY2xpZW50SWQgKSB7XG4gICAgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHtjbGllbnRfaWQ6IGNsaWVudElkfSlcbiAgfVxuXG4gIGlmICggY2xpZW50U2VjcmV0ICkge1xuICAgIE9iamVjdC5hc3NpZ24odGFyZ2V0LCB7Y2xpZW50X3NlY3JldDogY2xpZW50U2VjcmV0fSlcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgYXV0aG9yaXplQXBwbGljYXRpb24gPSAoIGF1dGggKSA9PiAoIHsgYXV0aEFjdGlvbnMgfSApID0+IHtcbiAgbGV0IHsgc2NoZW1hLCBzY29wZXMsIG5hbWUsIGNsaWVudElkLCBjbGllbnRTZWNyZXQgfSA9IGF1dGhcbiAgbGV0IGhlYWRlcnMgPSB7XG4gICAgQXV0aG9yaXphdGlvbjogXCJCYXNpYyBcIiArIGJ0b2EoY2xpZW50SWQgKyBcIjpcIiArIGNsaWVudFNlY3JldClcbiAgfVxuICBsZXQgZm9ybSA9IHtcbiAgICBncmFudF90eXBlOiBcImNsaWVudF9jcmVkZW50aWFsc1wiLFxuICAgIHNjb3BlOiBzY29wZXMuam9pbihzY29wZVNlcGFyYXRvcilcbiAgfVxuXG4gIHJldHVybiBhdXRoQWN0aW9ucy5hdXRob3JpemVSZXF1ZXN0KHtib2R5OiBidWlsZEZvcm1EYXRhKGZvcm0pLCBuYW1lLCB1cmw6IHNjaGVtYS5nZXQoXCJ0b2tlblVybFwiKSwgYXV0aCwgaGVhZGVycyB9KVxufVxuXG5leHBvcnQgY29uc3QgYXV0aG9yaXplQWNjZXNzQ29kZVdpdGhGb3JtUGFyYW1zID0gKCB7IGF1dGgsIHJlZGlyZWN0VXJsIH0gKSA9PiAoIHsgYXV0aEFjdGlvbnMgfSApID0+IHtcbiAgbGV0IHsgc2NoZW1hLCBuYW1lLCBjbGllbnRJZCwgY2xpZW50U2VjcmV0LCBjb2RlVmVyaWZpZXIgfSA9IGF1dGhcbiAgbGV0IGZvcm0gPSB7XG4gICAgZ3JhbnRfdHlwZTogXCJhdXRob3JpemF0aW9uX2NvZGVcIixcbiAgICBjb2RlOiBhdXRoLmNvZGUsXG4gICAgY2xpZW50X2lkOiBjbGllbnRJZCxcbiAgICBjbGllbnRfc2VjcmV0OiBjbGllbnRTZWNyZXQsXG4gICAgcmVkaXJlY3RfdXJpOiByZWRpcmVjdFVybCxcbiAgICBjb2RlX3ZlcmlmaWVyOiBjb2RlVmVyaWZpZXJcbiAgfVxuXG4gIHJldHVybiBhdXRoQWN0aW9ucy5hdXRob3JpemVSZXF1ZXN0KHtib2R5OiBidWlsZEZvcm1EYXRhKGZvcm0pLCBuYW1lLCB1cmw6IHNjaGVtYS5nZXQoXCJ0b2tlblVybFwiKSwgYXV0aH0pXG59XG5cbmV4cG9ydCBjb25zdCBhdXRob3JpemVBY2Nlc3NDb2RlV2l0aEJhc2ljQXV0aGVudGljYXRpb24gPSAoIHsgYXV0aCwgcmVkaXJlY3RVcmwgfSApID0+ICggeyBhdXRoQWN0aW9ucyB9ICkgPT4ge1xuICBsZXQgeyBzY2hlbWEsIG5hbWUsIGNsaWVudElkLCBjbGllbnRTZWNyZXQsIGNvZGVWZXJpZmllciB9ID0gYXV0aFxuICBsZXQgaGVhZGVycyA9IHtcbiAgICBBdXRob3JpemF0aW9uOiBcIkJhc2ljIFwiICsgYnRvYShjbGllbnRJZCArIFwiOlwiICsgY2xpZW50U2VjcmV0KVxuICB9XG4gIGxldCBmb3JtID0ge1xuICAgIGdyYW50X3R5cGU6IFwiYXV0aG9yaXphdGlvbl9jb2RlXCIsXG4gICAgY29kZTogYXV0aC5jb2RlLFxuICAgIGNsaWVudF9pZDogY2xpZW50SWQsXG4gICAgcmVkaXJlY3RfdXJpOiByZWRpcmVjdFVybCxcbiAgICBjb2RlX3ZlcmlmaWVyOiBjb2RlVmVyaWZpZXJcbiAgfVxuXG4gIHJldHVybiBhdXRoQWN0aW9ucy5hdXRob3JpemVSZXF1ZXN0KHtib2R5OiBidWlsZEZvcm1EYXRhKGZvcm0pLCBuYW1lLCB1cmw6IHNjaGVtYS5nZXQoXCJ0b2tlblVybFwiKSwgYXV0aCwgaGVhZGVyc30pXG59XG5cbmV4cG9ydCBjb25zdCBhdXRob3JpemVSZXF1ZXN0ID0gKCBkYXRhICkgPT4gKCB7IGZuLCBnZXRDb25maWdzLCBhdXRoQWN0aW9ucywgZXJyQWN0aW9ucywgb2FzM1NlbGVjdG9ycywgc3BlY1NlbGVjdG9ycywgYXV0aFNlbGVjdG9ycyB9ICkgPT4ge1xuICBsZXQgeyBib2R5LCBxdWVyeT17fSwgaGVhZGVycz17fSwgbmFtZSwgdXJsLCBhdXRoIH0gPSBkYXRhXG5cbiAgbGV0IHsgYWRkaXRpb25hbFF1ZXJ5U3RyaW5nUGFyYW1zIH0gPSBhdXRoU2VsZWN0b3JzLmdldENvbmZpZ3MoKSB8fCB7fVxuXG4gIGxldCBwYXJzZWRVcmxcblxuICBpZiAoc3BlY1NlbGVjdG9ycy5pc09BUzMoKSkge1xuICAgIGxldCBmaW5hbFNlcnZlclVybCA9IG9hczNTZWxlY3RvcnMuc2VydmVyRWZmZWN0aXZlVmFsdWUob2FzM1NlbGVjdG9ycy5zZWxlY3RlZFNlcnZlcigpKVxuICAgIHBhcnNlZFVybCA9IHBhcnNlVXJsKHVybCwgZmluYWxTZXJ2ZXJVcmwsIHRydWUpXG4gIH0gZWxzZSB7XG4gICAgcGFyc2VkVXJsID0gcGFyc2VVcmwodXJsLCBzcGVjU2VsZWN0b3JzLnVybCgpLCB0cnVlKVxuICB9XG5cbiAgaWYodHlwZW9mIGFkZGl0aW9uYWxRdWVyeVN0cmluZ1BhcmFtcyA9PT0gXCJvYmplY3RcIikge1xuICAgIHBhcnNlZFVybC5xdWVyeSA9IE9iamVjdC5hc3NpZ24oe30sIHBhcnNlZFVybC5xdWVyeSwgYWRkaXRpb25hbFF1ZXJ5U3RyaW5nUGFyYW1zKVxuICB9XG5cbiAgY29uc3QgZmV0Y2hVcmwgPSBwYXJzZWRVcmwudG9TdHJpbmcoKVxuXG4gIGxldCBfaGVhZGVycyA9IE9iamVjdC5hc3NpZ24oe1xuICAgIFwiQWNjZXB0XCI6XCJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLypcIixcbiAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiLFxuICAgIFwiWC1SZXF1ZXN0ZWQtV2l0aFwiOiBcIlhNTEh0dHBSZXF1ZXN0XCJcbiAgfSwgaGVhZGVycylcblxuICBmbi5mZXRjaCh7XG4gICAgdXJsOiBmZXRjaFVybCxcbiAgICBtZXRob2Q6IFwicG9zdFwiLFxuICAgIGhlYWRlcnM6IF9oZWFkZXJzLFxuICAgIHF1ZXJ5OiBxdWVyeSxcbiAgICBib2R5OiBib2R5LFxuICAgIHJlcXVlc3RJbnRlcmNlcHRvcjogZ2V0Q29uZmlncygpLnJlcXVlc3RJbnRlcmNlcHRvcixcbiAgICByZXNwb25zZUludGVyY2VwdG9yOiBnZXRDb25maWdzKCkucmVzcG9uc2VJbnRlcmNlcHRvclxuICB9KVxuICAudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICBsZXQgdG9rZW4gPSBKU09OLnBhcnNlKHJlc3BvbnNlLmRhdGEpXG4gICAgbGV0IGVycm9yID0gdG9rZW4gJiYgKCB0b2tlbi5lcnJvciB8fCBcIlwiIClcbiAgICBsZXQgcGFyc2VFcnJvciA9IHRva2VuICYmICggdG9rZW4ucGFyc2VFcnJvciB8fCBcIlwiIClcblxuICAgIGlmICggIXJlc3BvbnNlLm9rICkge1xuICAgICAgZXJyQWN0aW9ucy5uZXdBdXRoRXJyKCB7XG4gICAgICAgIGF1dGhJZDogbmFtZSxcbiAgICAgICAgbGV2ZWw6IFwiZXJyb3JcIixcbiAgICAgICAgc291cmNlOiBcImF1dGhcIixcbiAgICAgICAgbWVzc2FnZTogcmVzcG9uc2Uuc3RhdHVzVGV4dFxuICAgICAgfSApXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIGVycm9yIHx8IHBhcnNlRXJyb3IgKSB7XG4gICAgICBlcnJBY3Rpb25zLm5ld0F1dGhFcnIoe1xuICAgICAgICBhdXRoSWQ6IG5hbWUsXG4gICAgICAgIGxldmVsOiBcImVycm9yXCIsXG4gICAgICAgIHNvdXJjZTogXCJhdXRoXCIsXG4gICAgICAgIG1lc3NhZ2U6IEpTT04uc3RyaW5naWZ5KHRva2VuKVxuICAgICAgfSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGF1dGhBY3Rpb25zLmF1dGhvcml6ZU9hdXRoMldpdGhQZXJzaXN0T3B0aW9uKHsgYXV0aCwgdG9rZW59KVxuICB9KVxuICAuY2F0Y2goZSA9PiB7XG4gICAgbGV0IGVyciA9IG5ldyBFcnJvcihlKVxuICAgIGxldCBtZXNzYWdlID0gZXJyLm1lc3NhZ2VcbiAgICAvLyBzd2FnZ2VyLWpzIHdyYXBzIHRoZSByZXNwb25zZSAoaWYgYXZhaWxhYmxlKSBpbnRvIHRoZSBlLnJlc3BvbnNlIHByb3BlcnR5O1xuICAgIC8vIGludmVzdGlnYXRlIHRvIGNoZWNrIHdoZXRoZXIgdGhlcmUgYXJlIG1vcmUgZGV0YWlscyBvbiB3aHkgdGhlIGF1dGhvcml6YXRpb25cbiAgICAvLyByZXF1ZXN0IGZhaWxlZCAoYWNjb3JkaW5nIHRvIFJGQyA2NDc5KS5cbiAgICAvLyBTZWUgYWxzbyBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aS9pc3N1ZXMvNDA0OFxuICAgIGlmIChlLnJlc3BvbnNlICYmIGUucmVzcG9uc2UuZGF0YSkge1xuICAgICAgY29uc3QgZXJyRGF0YSA9IGUucmVzcG9uc2UuZGF0YVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QganNvblJlc3BvbnNlID0gdHlwZW9mIGVyckRhdGEgPT09IFwic3RyaW5nXCIgPyBKU09OLnBhcnNlKGVyckRhdGEpIDogZXJyRGF0YVxuICAgICAgICBpZiAoanNvblJlc3BvbnNlLmVycm9yKVxuICAgICAgICAgIG1lc3NhZ2UgKz0gYCwgZXJyb3I6ICR7anNvblJlc3BvbnNlLmVycm9yfWBcbiAgICAgICAgaWYgKGpzb25SZXNwb25zZS5lcnJvcl9kZXNjcmlwdGlvbilcbiAgICAgICAgICBtZXNzYWdlICs9IGAsIGRlc2NyaXB0aW9uOiAke2pzb25SZXNwb25zZS5lcnJvcl9kZXNjcmlwdGlvbn1gXG4gICAgICB9IGNhdGNoIChqc29uRXJyb3IpIHtcbiAgICAgICAgLy8gSWdub3JlXG4gICAgICB9XG4gICAgfVxuICAgIGVyckFjdGlvbnMubmV3QXV0aEVycigge1xuICAgICAgYXV0aElkOiBuYW1lLFxuICAgICAgbGV2ZWw6IFwiZXJyb3JcIixcbiAgICAgIHNvdXJjZTogXCJhdXRoXCIsXG4gICAgICBtZXNzYWdlOiBtZXNzYWdlXG4gICAgfSApXG4gIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25maWd1cmVBdXRoKHBheWxvYWQpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBDT05GSUdVUkVfQVVUSCxcbiAgICBwYXlsb2FkOiBwYXlsb2FkXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc3RvcmVBdXRob3JpemF0aW9uKHBheWxvYWQpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBSRVNUT1JFX0FVVEhPUklaQVRJT04sXG4gICAgcGF5bG9hZDogcGF5bG9hZFxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBwZXJzaXN0QXV0aG9yaXphdGlvbklmTmVlZGVkID0gKCkgPT4gKCB7IGF1dGhTZWxlY3RvcnMsIGdldENvbmZpZ3MgfSApID0+IHtcbiAgY29uc3QgY29uZmlncyA9IGdldENvbmZpZ3MoKVxuXG4gIGlmICghY29uZmlncy5wZXJzaXN0QXV0aG9yaXphdGlvbikgcmV0dXJuXG5cbiAgLy8gcGVyc2lzdCBhdXRob3JpemF0aW9uIHRvIGxvY2FsIHN0b3JhZ2VcbiAgY29uc3QgYXV0aG9yaXplZCA9IGF1dGhTZWxlY3RvcnMuYXV0aG9yaXplZCgpLnRvSlMoKVxuICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImF1dGhvcml6ZWRcIiwgSlNPTi5zdHJpbmdpZnkoYXV0aG9yaXplZCkpXG59XG5cbmV4cG9ydCBjb25zdCBhdXRoUG9wdXAgPSAodXJsLCBzd2FnZ2VyVUlSZWRpcmVjdE9hdXRoMikgPT4gKCApID0+IHtcbiAgd2luLnN3YWdnZXJVSVJlZGlyZWN0T2F1dGgyID0gc3dhZ2dlclVJUmVkaXJlY3RPYXV0aDJcblxuICB3aW4ub3Blbih1cmwpXG59XG4iLCJpbXBvcnQgeyBmcm9tSlMsIE1hcCB9IGZyb20gXCJpbW11dGFibGVcIlxuaW1wb3J0IHsgYnRvYSwgaXNGdW5jIH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuXG5pbXBvcnQge1xuICBTSE9XX0FVVEhfUE9QVVAsXG4gIEFVVEhPUklaRSxcbiAgQVVUSE9SSVpFX09BVVRIMixcbiAgTE9HT1VULFxuICBDT05GSUdVUkVfQVVUSCxcbiAgUkVTVE9SRV9BVVRIT1JJWkFUSU9OXG59IGZyb20gXCIuL2FjdGlvbnNcIlxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIFtTSE9XX0FVVEhfUE9QVVBdOiAoc3RhdGUsIHsgcGF5bG9hZCB9ICkgPT57XG4gICAgcmV0dXJuIHN0YXRlLnNldCggXCJzaG93RGVmaW5pdGlvbnNcIiwgcGF5bG9hZCApXG4gIH0sXG5cbiAgW0FVVEhPUklaRV06IChzdGF0ZSwgeyBwYXlsb2FkIH0gKSA9PntcbiAgICBsZXQgc2VjdXJpdGllcyA9IGZyb21KUyhwYXlsb2FkKVxuICAgIGxldCBtYXAgPSBzdGF0ZS5nZXQoXCJhdXRob3JpemVkXCIpIHx8IE1hcCgpXG5cbiAgICAvLyByZWZhY3RvciB3aXRoTXV0YXRpb25zXG4gICAgc2VjdXJpdGllcy5lbnRyeVNlcSgpLmZvckVhY2goIChbIGtleSwgc2VjdXJpdHkgXSkgPT4ge1xuICAgICAgaWYgKCFpc0Z1bmMoc2VjdXJpdHkuZ2V0SW4pKSB7XG4gICAgICAgIHJldHVybiBzdGF0ZS5zZXQoXCJhdXRob3JpemVkXCIsIG1hcClcbiAgICAgIH1cbiAgICAgIGxldCB0eXBlID0gc2VjdXJpdHkuZ2V0SW4oW1wic2NoZW1hXCIsIFwidHlwZVwiXSlcblxuICAgICAgaWYgKCB0eXBlID09PSBcImFwaUtleVwiIHx8IHR5cGUgPT09IFwiaHR0cFwiICkge1xuICAgICAgICBtYXAgPSBtYXAuc2V0KGtleSwgc2VjdXJpdHkpXG4gICAgICB9IGVsc2UgaWYgKCB0eXBlID09PSBcImJhc2ljXCIgKSB7XG4gICAgICAgIGxldCB1c2VybmFtZSA9IHNlY3VyaXR5LmdldEluKFtcInZhbHVlXCIsIFwidXNlcm5hbWVcIl0pXG4gICAgICAgIGxldCBwYXNzd29yZCA9IHNlY3VyaXR5LmdldEluKFtcInZhbHVlXCIsIFwicGFzc3dvcmRcIl0pXG5cbiAgICAgICAgbWFwID0gbWFwLnNldEluKFtrZXksIFwidmFsdWVcIl0sIHtcbiAgICAgICAgICB1c2VybmFtZTogdXNlcm5hbWUsXG4gICAgICAgICAgaGVhZGVyOiBcIkJhc2ljIFwiICsgYnRvYSh1c2VybmFtZSArIFwiOlwiICsgcGFzc3dvcmQpXG4gICAgICAgIH0pXG5cbiAgICAgICAgbWFwID0gbWFwLnNldEluKFtrZXksIFwic2NoZW1hXCJdLCBzZWN1cml0eS5nZXQoXCJzY2hlbWFcIikpXG4gICAgICB9XG4gICAgfSlcblxuICAgIHJldHVybiBzdGF0ZS5zZXQoIFwiYXV0aG9yaXplZFwiLCBtYXAgKVxuICB9LFxuXG4gIFtBVVRIT1JJWkVfT0FVVEgyXTogKHN0YXRlLCB7IHBheWxvYWQgfSApID0+e1xuICAgIGxldCB7IGF1dGgsIHRva2VuIH0gPSBwYXlsb2FkXG4gICAgbGV0IHBhcnNlZEF1dGhcblxuICAgIGF1dGgudG9rZW4gPSBPYmplY3QuYXNzaWduKHt9LCB0b2tlbilcbiAgICBwYXJzZWRBdXRoID0gZnJvbUpTKGF1dGgpXG5cbiAgICBsZXQgbWFwID0gc3RhdGUuZ2V0KFwiYXV0aG9yaXplZFwiKSB8fCBNYXAoKVxuICAgIG1hcCA9IG1hcC5zZXQocGFyc2VkQXV0aC5nZXQoXCJuYW1lXCIpLCBwYXJzZWRBdXRoKVxuICAgIFxuICAgIHJldHVybiBzdGF0ZS5zZXQoIFwiYXV0aG9yaXplZFwiLCBtYXAgKVxuICB9LFxuXG4gIFtMT0dPVVRdOiAoc3RhdGUsIHsgcGF5bG9hZCB9ICkgPT57XG4gICAgbGV0IHJlc3VsdCA9IHN0YXRlLmdldChcImF1dGhvcml6ZWRcIikud2l0aE11dGF0aW9ucygoYXV0aG9yaXplZCkgPT4ge1xuICAgICAgICBwYXlsb2FkLmZvckVhY2goKGF1dGgpID0+IHtcbiAgICAgICAgICBhdXRob3JpemVkLmRlbGV0ZShhdXRoKVxuICAgICAgICB9KVxuICAgICAgfSlcblxuICAgIHJldHVybiBzdGF0ZS5zZXQoXCJhdXRob3JpemVkXCIsIHJlc3VsdClcbiAgfSxcblxuICBbQ09ORklHVVJFX0FVVEhdOiAoc3RhdGUsIHsgcGF5bG9hZCB9ICkgPT57XG4gICAgcmV0dXJuIHN0YXRlLnNldChcImNvbmZpZ3NcIiwgcGF5bG9hZClcbiAgfSxcblxuICBbUkVTVE9SRV9BVVRIT1JJWkFUSU9OXTogKHN0YXRlLCB7IHBheWxvYWQgfSApID0+eyAgICBcbiAgICByZXR1cm4gc3RhdGUuc2V0KFwiYXV0aG9yaXplZFwiLCBmcm9tSlMocGF5bG9hZC5hdXRob3JpemVkKSlcbiAgfSxcbn1cbiIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwicmVzZWxlY3RcIik7IiwiaW1wb3J0IHsgY3JlYXRlU2VsZWN0b3IgfSBmcm9tIFwicmVzZWxlY3RcIlxuaW1wb3J0IHsgTGlzdCwgTWFwIH0gZnJvbSBcImltbXV0YWJsZVwiXG5cbmNvbnN0IHN0YXRlID0gc3RhdGUgPT4gc3RhdGVcblxuZXhwb3J0IGNvbnN0IHNob3duRGVmaW5pdGlvbnMgPSBjcmVhdGVTZWxlY3RvcihcbiAgICBzdGF0ZSxcbiAgICBhdXRoID0+IGF1dGguZ2V0KCBcInNob3dEZWZpbml0aW9uc1wiIClcbilcblxuZXhwb3J0IGNvbnN0IGRlZmluaXRpb25zVG9BdXRob3JpemUgPSBjcmVhdGVTZWxlY3RvcihcbiAgICBzdGF0ZSxcbiAgICAoKSA9PiAoIHsgc3BlY1NlbGVjdG9ycyB9ICkgPT4ge1xuICAgICAgbGV0IGRlZmluaXRpb25zID0gc3BlY1NlbGVjdG9ycy5zZWN1cml0eURlZmluaXRpb25zKCkgfHwgTWFwKHt9KVxuICAgICAgbGV0IGxpc3QgPSBMaXN0KClcblxuICAgICAgLy90b2RvIHJlZmFjdG9yXG4gICAgICBkZWZpbml0aW9ucy5lbnRyeVNlcSgpLmZvckVhY2goIChbIGtleSwgdmFsIF0pID0+IHtcbiAgICAgICAgbGV0IG1hcCA9IE1hcCgpXG5cbiAgICAgICAgbWFwID0gbWFwLnNldChrZXksIHZhbClcbiAgICAgICAgbGlzdCA9IGxpc3QucHVzaChtYXApXG4gICAgICB9KVxuXG4gICAgICByZXR1cm4gbGlzdFxuICAgIH1cbilcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEF1dGhQYXRoID1cbiAgKHN0YXRlLCBuYW1lKSA9PlxuICAoeyBzcGVjU2VsZWN0b3JzIH0pID0+XG4gICAgTGlzdChcbiAgICAgIHNwZWNTZWxlY3RvcnMuaXNPQVMzKClcbiAgICAgICAgPyBbXCJjb21wb25lbnRzXCIsIFwic2VjdXJpdHlTY2hlbWVzXCIsIG5hbWVdXG4gICAgICAgIDogW1wic2VjdXJpdHlEZWZpbml0aW9uc1wiLCBuYW1lXVxuICAgIClcbiAgICBcbmV4cG9ydCBjb25zdCBnZXREZWZpbml0aW9uc0J5TmFtZXMgPSAoIHN0YXRlLCBzZWN1cml0aWVzICkgPT4gKCB7IHNwZWNTZWxlY3RvcnMgfSApID0+IHtcbiAgY29uc29sZS53YXJuKFwiV0FSTklORzogZ2V0RGVmaW5pdGlvbnNCeU5hbWVzIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uLlwiKVxuICBsZXQgc2VjdXJpdHlEZWZpbml0aW9ucyA9IHNwZWNTZWxlY3RvcnMuc2VjdXJpdHlEZWZpbml0aW9ucygpXG4gIGxldCByZXN1bHQgPSBMaXN0KClcblxuICBzZWN1cml0aWVzLnZhbHVlU2VxKCkuZm9yRWFjaCggKG5hbWVzKSA9PiB7XG4gICAgbGV0IG1hcCA9IE1hcCgpXG4gICAgbmFtZXMuZW50cnlTZXEoKS5mb3JFYWNoKCAoW25hbWUsIHNjb3Blc10pID0+IHtcbiAgICAgIGxldCBkZWZpbml0aW9uID0gc2VjdXJpdHlEZWZpbml0aW9ucy5nZXQobmFtZSlcbiAgICAgIGxldCBhbGxvd2VkU2NvcGVzXG5cbiAgICAgIGlmICggZGVmaW5pdGlvbi5nZXQoXCJ0eXBlXCIpID09PSBcIm9hdXRoMlwiICYmIHNjb3Blcy5zaXplICkge1xuICAgICAgICBhbGxvd2VkU2NvcGVzID0gZGVmaW5pdGlvbi5nZXQoXCJzY29wZXNcIilcblxuICAgICAgICBhbGxvd2VkU2NvcGVzLmtleVNlcSgpLmZvckVhY2goIChrZXkpID0+IHtcbiAgICAgICAgICBpZiAoICFzY29wZXMuY29udGFpbnMoa2V5KSApIHtcbiAgICAgICAgICAgIGFsbG93ZWRTY29wZXMgPSBhbGxvd2VkU2NvcGVzLmRlbGV0ZShrZXkpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgICAgIGRlZmluaXRpb24gPSBkZWZpbml0aW9uLnNldChcImFsbG93ZWRTY29wZXNcIiwgYWxsb3dlZFNjb3BlcylcbiAgICAgIH1cblxuICAgICAgbWFwID0gbWFwLnNldChuYW1lLCBkZWZpbml0aW9uKVxuICAgIH0pXG5cbiAgICByZXN1bHQgPSByZXN1bHQucHVzaChtYXApXG4gIH0pXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5leHBvcnQgY29uc3QgZGVmaW5pdGlvbnNGb3JSZXF1aXJlbWVudHMgPSAoc3RhdGUsIHNlY3VyaXRpZXMgPSBMaXN0KCkpID0+ICh7IGF1dGhTZWxlY3RvcnMgfSkgPT4ge1xuICBjb25zdCBhbGxEZWZpbml0aW9ucyA9IGF1dGhTZWxlY3RvcnMuZGVmaW5pdGlvbnNUb0F1dGhvcml6ZSgpIHx8IExpc3QoKVxuICBsZXQgcmVzdWx0ID0gTGlzdCgpXG4gIGFsbERlZmluaXRpb25zLmZvckVhY2goIChkZWZpbml0aW9uKSA9PiB7XG4gICAgbGV0IHNlY3VyaXR5ID0gc2VjdXJpdGllcy5maW5kKHNlYyA9PiBzZWMuZ2V0KGRlZmluaXRpb24ua2V5U2VxKCkuZmlyc3QoKSkpXG4gICAgaWYgKCBzZWN1cml0eSApIHtcbiAgICAgIGRlZmluaXRpb24uZm9yRWFjaCggKHByb3BzLCBuYW1lKSA9PiB7XG4gICAgICAgIGlmICggcHJvcHMuZ2V0KFwidHlwZVwiKSA9PT0gXCJvYXV0aDJcIiApIHtcbiAgICAgICAgICBjb25zdCBzZWN1cml0eVNjb3BlcyA9IHNlY3VyaXR5LmdldChuYW1lKVxuICAgICAgICAgIGxldCBkZWZpbml0aW9uU2NvcGVzID0gcHJvcHMuZ2V0KFwic2NvcGVzXCIpXG4gICAgICAgICAgaWYoIExpc3QuaXNMaXN0KHNlY3VyaXR5U2NvcGVzKSAmJiBNYXAuaXNNYXAoZGVmaW5pdGlvblNjb3BlcykgKSB7XG4gICAgICAgICAgICBkZWZpbml0aW9uU2NvcGVzLmtleVNlcSgpLmZvckVhY2goIChrZXkpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCAhc2VjdXJpdHlTY29wZXMuY29udGFpbnMoa2V5KSApIHtcbiAgICAgICAgICAgICAgICBkZWZpbml0aW9uU2NvcGVzID0gZGVmaW5pdGlvblNjb3Blcy5kZWxldGUoa2V5KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgZGVmaW5pdGlvbiA9IGRlZmluaXRpb24uc2V0KG5hbWUsIHByb3BzLnNldChcInNjb3Blc1wiLCBkZWZpbml0aW9uU2NvcGVzKSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICByZXN1bHQgPSByZXN1bHQucHVzaChkZWZpbml0aW9uKVxuICAgIH1cbiAgfSlcbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5leHBvcnQgY29uc3QgYXV0aG9yaXplZCA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgIHN0YXRlLFxuICAgIGF1dGggPT4gYXV0aC5nZXQoXCJhdXRob3JpemVkXCIpIHx8IE1hcCgpXG4pXG5cblxuZXhwb3J0IGNvbnN0IGlzQXV0aG9yaXplZCA9ICggc3RhdGUsIHNlY3VyaXRpZXMgKSA9PiAoIHsgYXV0aFNlbGVjdG9ycyB9ICkgPT4ge1xuICBsZXQgYXV0aG9yaXplZCA9IGF1dGhTZWxlY3RvcnMuYXV0aG9yaXplZCgpXG5cbiAgaWYoIUxpc3QuaXNMaXN0KHNlY3VyaXRpZXMpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiAhIXNlY3VyaXRpZXMudG9KUygpLmZpbHRlciggKCBzZWN1cml0eSApID0+IHtcbiAgICAgIGxldCBpc0F1dGhvcml6ZWQgPSB0cnVlXG5cbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhzZWN1cml0eSkubWFwKChrZXkpID0+IHtcbiAgICAgICAgcmV0dXJuICFpc0F1dGhvcml6ZWQgfHwgISFhdXRob3JpemVkLmdldChrZXkpXG4gICAgICB9KS5pbmRleE9mKGZhbHNlKSA9PT0gLTFcbiAgICB9KS5sZW5ndGhcbn1cblxuZXhwb3J0IGNvbnN0IGdldENvbmZpZ3MgPSBjcmVhdGVTZWxlY3RvcihcbiAgICBzdGF0ZSxcbiAgICBhdXRoID0+IGF1dGguZ2V0KCBcImNvbmZpZ3NcIiApXG4pXG4iLCIvLyBBZGQgc2VjdXJpdHkgdG8gdGhlIGZpbmFsIGBleGVjdXRlYCBjYWxsICggdmlhIGBleHRyYXNgIClcbmV4cG9ydCBjb25zdCBleGVjdXRlID0gKCBvcmlBY3Rpb24sIHsgYXV0aFNlbGVjdG9ycywgc3BlY1NlbGVjdG9ycyB9KSA9PiAoeyBwYXRoLCBtZXRob2QsIG9wZXJhdGlvbiwgZXh0cmFzIH0pID0+IHtcbiAgbGV0IHNlY3VyaXRpZXMgPSB7XG4gICAgYXV0aG9yaXplZDogYXV0aFNlbGVjdG9ycy5hdXRob3JpemVkKCkgJiYgYXV0aFNlbGVjdG9ycy5hdXRob3JpemVkKCkudG9KUygpLFxuICAgIGRlZmluaXRpb25zOiBzcGVjU2VsZWN0b3JzLnNlY3VyaXR5RGVmaW5pdGlvbnMoKSAmJiBzcGVjU2VsZWN0b3JzLnNlY3VyaXR5RGVmaW5pdGlvbnMoKS50b0pTKCksXG4gICAgc3BlY1NlY3VyaXR5OiAgc3BlY1NlbGVjdG9ycy5zZWN1cml0eSgpICYmIHNwZWNTZWxlY3RvcnMuc2VjdXJpdHkoKS50b0pTKClcbiAgfVxuXG4gIHJldHVybiBvcmlBY3Rpb24oeyBwYXRoLCBtZXRob2QsIG9wZXJhdGlvbiwgc2VjdXJpdGllcywgLi4uZXh0cmFzIH0pXG59XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5leHBvcnQgY29uc3QgbG9hZGVkID0gKG9yaUFjdGlvbiwgc3lzdGVtKSA9PiAocGF5bG9hZCkgPT4ge1xuICBjb25zdCB7IGdldENvbmZpZ3MsIGF1dGhBY3Rpb25zIH0gPSBzeXN0ZW1cbiAgY29uc3QgY29uZmlncyA9IGdldENvbmZpZ3MoKVxuXG4gIG9yaUFjdGlvbihwYXlsb2FkKVxuXG4gIC8vIGNoZWNrIGlmIHdlIHNob3VsZCByZXN0b3JlIGF1dGhvcml6YXRpb24gZGF0YSBmcm9tIGxvY2FsU3RvcmFnZVxuICBpZiAoY29uZmlncy5wZXJzaXN0QXV0aG9yaXphdGlvbikge1xuICAgIGNvbnN0IGF1dGhvcml6ZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImF1dGhvcml6ZWRcIilcbiAgICBpZiAoYXV0aG9yaXplZCkge1xuICAgICAgYXV0aEFjdGlvbnMucmVzdG9yZUF1dGhvcml6YXRpb24oe1xuICAgICAgICBhdXRob3JpemVkOiBKU09OLnBhcnNlKGF1dGhvcml6ZWQpLFxuICAgICAgfSlcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cblxuLyoqXG4gKiBgYXV0aG9yaXplYCBhbmQgYGxvZ291dGAgd3JhcHBlZCBhY3Rpb25zIHByb3ZpZGUgY2FwYWNpdHlcbiAqIHRvIHBlcnNpc3QgY29va2llIGJhc2VkIGFwaUtleSBpbiBkb2N1bWVudC5jb29raWUuXG4gKlxuICogYHBlcnNpc3RBdXRob3JpemF0aW9uYCBTd2FnZ2VyVUkgb3B0aW9ucyBuZWVkcyB0byBzZXQgdG8gYHRydWVgXG4gKiBmb3IgZG9jdW1lbnQuY29va2llIHBlcnNpc3RlbmNlIHRvIHdvcmsuXG4gKi9cbmV4cG9ydCBjb25zdCBhdXRob3JpemUgPSAob3JpQWN0aW9uLCBzeXN0ZW0pID0+IChwYXlsb2FkKSA9PiB7XG4gIG9yaUFjdGlvbihwYXlsb2FkKVxuXG4gIGNvbnN0IGNvbmZpZ3MgPSBzeXN0ZW0uZ2V0Q29uZmlncygpXG5cbiAgaWYgKCFjb25maWdzLnBlcnNpc3RBdXRob3JpemF0aW9uKSByZXR1cm5cblxuICAvLyBjcmVhdGUgY29va2llXG4gIHRyeSB7XG4gICAgY29uc3QgW3sgc2NoZW1hLCB2YWx1ZSB9XSA9IE9iamVjdC52YWx1ZXMocGF5bG9hZClcbiAgICBjb25zdCBpc0FwaUtleUF1dGggPSBzY2hlbWEuZ2V0KFwidHlwZVwiKSA9PT0gXCJhcGlLZXlcIlxuICAgIGNvbnN0IGlzSW5Db29raWUgPSBzY2hlbWEuZ2V0KFwiaW5cIikgPT09IFwiY29va2llXCJcbiAgICBjb25zdCBpc0FwaUtleUluQ29va2llID0gaXNBcGlLZXlBdXRoICYmIGlzSW5Db29raWVcblxuICAgIGlmIChpc0FwaUtleUluQ29va2llKSB7XG4gICAgICBkb2N1bWVudC5jb29raWUgPSBgJHtzY2hlbWEuZ2V0KFwibmFtZVwiKX09JHt2YWx1ZX07IFNhbWVTaXRlPU5vbmU7IFNlY3VyZWBcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcihcbiAgICAgIFwiRXJyb3IgcGVyc2lzdGluZyBjb29raWUgYmFzZWQgYXBpS2V5IGluIGRvY3VtZW50LmNvb2tpZS5cIixcbiAgICAgIGVycm9yXG4gICAgKVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBsb2dvdXQgPSAob3JpQWN0aW9uLCBzeXN0ZW0pID0+IChwYXlsb2FkKSA9PiB7XG4gIGNvbnN0IGNvbmZpZ3MgPSBzeXN0ZW0uZ2V0Q29uZmlncygpXG4gIGNvbnN0IGF1dGhvcml6ZWQgPSBzeXN0ZW0uYXV0aFNlbGVjdG9ycy5hdXRob3JpemVkKClcblxuICAvLyBkZWxldGluZyBjb29raWVcbiAgdHJ5IHtcbiAgICBpZiAoY29uZmlncy5wZXJzaXN0QXV0aG9yaXphdGlvbiAmJiBBcnJheS5pc0FycmF5KHBheWxvYWQpKSB7XG4gICAgICBwYXlsb2FkLmZvckVhY2goKGF1dGhvcml6ZWROYW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IGF1dGggPSBhdXRob3JpemVkLmdldChhdXRob3JpemVkTmFtZSwge30pXG4gICAgICAgIGNvbnN0IGlzQXBpS2V5QXV0aCA9IGF1dGguZ2V0SW4oW1wic2NoZW1hXCIsIFwidHlwZVwiXSkgPT09IFwiYXBpS2V5XCJcbiAgICAgICAgY29uc3QgaXNJbkNvb2tpZSA9IGF1dGguZ2V0SW4oW1wic2NoZW1hXCIsIFwiaW5cIl0pID09PSBcImNvb2tpZVwiXG4gICAgICAgIGNvbnN0IGlzQXBpS2V5SW5Db29raWUgPSBpc0FwaUtleUF1dGggJiYgaXNJbkNvb2tpZVxuXG4gICAgICAgIGlmIChpc0FwaUtleUluQ29va2llKSB7XG4gICAgICAgICAgY29uc3QgY29va2llTmFtZSA9IGF1dGguZ2V0SW4oW1wic2NoZW1hXCIsIFwibmFtZVwiXSlcbiAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSBgJHtjb29raWVOYW1lfT07IE1heC1BZ2U9LTk5OTk5OTk5YFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgXCJFcnJvciBkZWxldGluZyBjb29raWUgYmFzZWQgYXBpS2V5IGZyb20gZG9jdW1lbnQuY29va2llLlwiLFxuICAgICAgZXJyb3JcbiAgICApXG4gIH1cblxuICBvcmlBY3Rpb24ocGF5bG9hZClcbn1cbiIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwicHJvcC10eXBlc1wiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImxvZGFzaC9vbWl0XCIpOyIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgb21pdCBmcm9tIFwibG9kYXNoL29taXRcIlxuXG5jbGFzcyBMb2NrQXV0aEljb24gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBtYXBTdGF0ZVRvUHJvcHMoc3RhdGUsIHByb3BzKSB7XG4gICAgY29uc3Qgb3duUHJvcHMgPSBvbWl0KHByb3BzLCBPYmplY3Qua2V5cyhwcm9wcy5nZXRTeXN0ZW0oKSkpXG4gICAgcmV0dXJuIHsgc3RhdGUsIG93blByb3BzIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGdldENvbXBvbmVudCwgb3duUHJvcHMgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBMb2NrSWNvbiA9IGdldENvbXBvbmVudChcIkxvY2tJY29uXCIpXG5cbiAgICByZXR1cm4gPExvY2tJY29uIHsuLi5vd25Qcm9wc30gLz5cbiAgfVxufVxuXG5Mb2NrQXV0aEljb24ucHJvcFR5cGVzID0ge1xuICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG93blByb3BzOiBQcm9wVHlwZXMuc2hhcGUoe30pLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IExvY2tBdXRoSWNvblxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBvbWl0IGZyb20gXCJsb2Rhc2gvb21pdFwiXG5cbmNsYXNzIFVubG9ja0F1dGhJY29uIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgbWFwU3RhdGVUb1Byb3BzKHN0YXRlLCBwcm9wcykge1xuICAgIGNvbnN0IG93blByb3BzID0gb21pdChwcm9wcywgT2JqZWN0LmtleXMocHJvcHMuZ2V0U3lzdGVtKCkpKVxuICAgIHJldHVybiB7IHN0YXRlLCBvd25Qcm9wcyB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBnZXRDb21wb25lbnQsIG93blByb3BzIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgVW5sb2NrSWNvbiA9IGdldENvbXBvbmVudChcIlVubG9ja0ljb25cIilcblxuICAgIHJldHVybiA8VW5sb2NrSWNvbiB7Li4ub3duUHJvcHN9IC8+XG4gIH1cbn1cblxuVW5sb2NrQXV0aEljb24ucHJvcFR5cGVzID0ge1xuICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG93blByb3BzOiBQcm9wVHlwZXMuc2hhcGUoe30pLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFVubG9ja0F1dGhJY29uXG4iLCJpbXBvcnQgcmVkdWNlcnMgZnJvbSBcIi4vcmVkdWNlcnNcIlxuaW1wb3J0ICogYXMgYWN0aW9ucyBmcm9tIFwiLi9hY3Rpb25zXCJcbmltcG9ydCAqIGFzIHNlbGVjdG9ycyBmcm9tIFwiLi9zZWxlY3RvcnNcIlxuaW1wb3J0IHsgZXhlY3V0ZSBhcyB3cmFwcGVkRXhlY3V0ZUFjdGlvbiB9IGZyb20gXCIuL3NwZWMtZXh0ZW5zaW9ucy93cmFwLWFjdGlvbnNcIlxuaW1wb3J0IHsgbG9hZGVkIGFzIHdyYXBwZWRMb2FkZWRBY3Rpb24gfSBmcm9tIFwiLi9jb25maWdzLWV4dGVuc2lvbnMvd3JhcC1hY3Rpb25zXCJcbmltcG9ydCB7IGF1dGhvcml6ZSBhcyB3cmFwcGVkQXV0aG9yaXplQWN0aW9uLCBsb2dvdXQgYXMgd3JhcHBlZExvZ291dEFjdGlvbiB9IGZyb20gXCIuL3dyYXAtYWN0aW9uc1wiXG5cbmltcG9ydCBMb2NrQXV0aEljb24gZnJvbSBcIi4vY29tcG9uZW50cy9sb2NrLWF1dGgtaWNvblwiXG5pbXBvcnQgVW5sb2NrQXV0aEljb24gZnJvbSBcIi4vY29tcG9uZW50cy91bmxvY2stYXV0aC1pY29uXCJcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7XG4gICAgYWZ0ZXJMb2FkKHN5c3RlbSkge1xuICAgICAgdGhpcy5yb290SW5qZWN0cyA9IHRoaXMucm9vdEluamVjdHMgfHwge31cbiAgICAgIHRoaXMucm9vdEluamVjdHMuaW5pdE9BdXRoID0gc3lzdGVtLmF1dGhBY3Rpb25zLmNvbmZpZ3VyZUF1dGhcbiAgICAgIHRoaXMucm9vdEluamVjdHMucHJlYXV0aG9yaXplQXBpS2V5ID0gcHJlYXV0aG9yaXplQXBpS2V5LmJpbmQobnVsbCwgc3lzdGVtKVxuICAgICAgdGhpcy5yb290SW5qZWN0cy5wcmVhdXRob3JpemVCYXNpYyA9IHByZWF1dGhvcml6ZUJhc2ljLmJpbmQobnVsbCwgc3lzdGVtKVxuICAgIH0sXG4gICAgY29tcG9uZW50czoge1xuICAgICAgTG9ja0F1dGhJY29uOiBMb2NrQXV0aEljb24sXG4gICAgICBVbmxvY2tBdXRoSWNvbjogVW5sb2NrQXV0aEljb24sXG4gICAgICBMb2NrQXV0aE9wZXJhdGlvbkljb246IExvY2tBdXRoSWNvbixcbiAgICAgIFVubG9ja0F1dGhPcGVyYXRpb25JY29uOiBVbmxvY2tBdXRoSWNvbixcbiAgICB9LFxuICAgIHN0YXRlUGx1Z2luczoge1xuICAgICAgYXV0aDoge1xuICAgICAgICByZWR1Y2VycyxcbiAgICAgICAgYWN0aW9ucyxcbiAgICAgICAgc2VsZWN0b3JzLFxuICAgICAgICB3cmFwQWN0aW9uczoge1xuICAgICAgICAgIGF1dGhvcml6ZTogd3JhcHBlZEF1dGhvcml6ZUFjdGlvbixcbiAgICAgICAgICBsb2dvdXQ6IHdyYXBwZWRMb2dvdXRBY3Rpb24sXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjb25maWdzOiB7XG4gICAgICAgIHdyYXBBY3Rpb25zOiB7XG4gICAgICAgICAgbG9hZGVkOiB3cmFwcGVkTG9hZGVkQWN0aW9uLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHNwZWM6IHtcbiAgICAgICAgd3JhcEFjdGlvbnM6IHtcbiAgICAgICAgICBleGVjdXRlOiB3cmFwcGVkRXhlY3V0ZUFjdGlvbixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmVhdXRob3JpemVCYXNpYyhzeXN0ZW0sIGtleSwgdXNlcm5hbWUsIHBhc3N3b3JkKSB7XG4gIGNvbnN0IHtcbiAgICBhdXRoQWN0aW9uczogeyBhdXRob3JpemUgfSxcbiAgICBzcGVjU2VsZWN0b3JzOiB7IHNwZWNKc29uLCBpc09BUzMgfVxuICB9ID0gc3lzdGVtXG5cbiAgY29uc3QgZGVmaW5pdGlvbkJhc2UgPSBpc09BUzMoKSA/IFtcImNvbXBvbmVudHNcIiwgXCJzZWN1cml0eVNjaGVtZXNcIl0gOiBbXCJzZWN1cml0eURlZmluaXRpb25zXCJdXG5cbiAgY29uc3Qgc2NoZW1hID0gc3BlY0pzb24oKS5nZXRJbihbLi4uZGVmaW5pdGlvbkJhc2UsIGtleV0pXG5cbiAgaWYoIXNjaGVtYSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gYXV0aG9yaXplKHtcbiAgICBba2V5XToge1xuICAgICAgdmFsdWU6IHtcbiAgICAgICAgdXNlcm5hbWUsXG4gICAgICAgIHBhc3N3b3JkLFxuICAgICAgfSxcbiAgICAgIHNjaGVtYTogc2NoZW1hLnRvSlMoKVxuICAgIH1cbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZWF1dGhvcml6ZUFwaUtleShzeXN0ZW0sIGtleSwgdmFsdWUpIHtcbiAgY29uc3Qge1xuICAgIGF1dGhBY3Rpb25zOiB7IGF1dGhvcml6ZSB9LFxuICAgIHNwZWNTZWxlY3RvcnM6IHsgc3BlY0pzb24sIGlzT0FTMyB9XG4gIH0gPSBzeXN0ZW1cblxuICBjb25zdCBkZWZpbml0aW9uQmFzZSA9IGlzT0FTMygpID8gW1wiY29tcG9uZW50c1wiLCBcInNlY3VyaXR5U2NoZW1lc1wiXSA6IFtcInNlY3VyaXR5RGVmaW5pdGlvbnNcIl1cblxuICBjb25zdCBzY2hlbWEgPSBzcGVjSnNvbigpLmdldEluKFsuLi5kZWZpbml0aW9uQmFzZSwga2V5XSlcblxuICBpZighc2NoZW1hKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiBhdXRob3JpemUoe1xuICAgIFtrZXldOiB7XG4gICAgICB2YWx1ZSxcbiAgICAgIHNjaGVtYTogc2NoZW1hLnRvSlMoKVxuICAgIH1cbiAgfSlcbn1cbiIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwianMteWFtbFwiKTsiLCJpbXBvcnQgWUFNTCBmcm9tIFwianMteWFtbFwiXG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbmZpZyA9ICh5YW1sLCBzeXN0ZW0pID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gWUFNTC5sb2FkKHlhbWwpXG4gIH0gY2F0Y2goZSkge1xuICAgIGlmIChzeXN0ZW0pIHtcbiAgICAgIHN5c3RlbS5lcnJBY3Rpb25zLm5ld1Rocm93bkVyciggbmV3IEVycm9yKGUpIClcbiAgICB9XG4gICAgcmV0dXJuIHt9XG4gIH1cbn1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IHBhcnNlQ29uZmlnIH0gZnJvbSBcIi4vZm5cIlxuXG5leHBvcnQgY29uc3QgVVBEQVRFX0NPTkZJR1MgPSBcImNvbmZpZ3NfdXBkYXRlXCJcbmV4cG9ydCBjb25zdCBUT0dHTEVfQ09ORklHUyA9IFwiY29uZmlnc190b2dnbGVcIlxuXG4vLyBVcGRhdGUgdGhlIGNvbmZpZ3MsIHdpdGggYSBtZXJnZSAoIG5vdCBkZWVwIClcbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGUoY29uZmlnTmFtZSwgY29uZmlnVmFsdWUpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBVUERBVEVfQ09ORklHUyxcbiAgICBwYXlsb2FkOiB7XG4gICAgICBbY29uZmlnTmFtZV06IGNvbmZpZ1ZhbHVlLFxuICAgIH0sXG4gIH1cbn1cblxuLy8gVG9nZ2xlJ3MgdGhlIGNvbmZpZywgYnkgbmFtZVxuZXhwb3J0IGZ1bmN0aW9uIHRvZ2dsZShjb25maWdOYW1lKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogVE9HR0xFX0NPTkZJR1MsXG4gICAgcGF5bG9hZDogY29uZmlnTmFtZSxcbiAgfVxufVxuXG4vLyBIb29rXG5leHBvcnQgY29uc3QgbG9hZGVkID0gKCkgPT4gKCkgPT4ge1xuICAvLyBub29wXG59XG5cbmV4cG9ydCBjb25zdCBkb3dubG9hZENvbmZpZyA9IChyZXEpID0+IChzeXN0ZW0pID0+IHtcbiAgY29uc3Qge1xuICAgIGZuOiB7IGZldGNoIH0sXG4gIH0gPSBzeXN0ZW1cblxuICByZXR1cm4gZmV0Y2gocmVxKVxufVxuXG5leHBvcnQgY29uc3QgZ2V0Q29uZmlnQnlVcmwgPSAocmVxLCBjYikgPT4gKHN5c3RlbSkgPT4ge1xuICBjb25zdCB7IHNwZWNBY3Rpb25zLCBjb25maWdzQWN0aW9ucyB9ID0gc3lzdGVtXG5cbiAgaWYgKHJlcSkge1xuICAgIHJldHVybiBjb25maWdzQWN0aW9ucy5kb3dubG9hZENvbmZpZyhyZXEpLnRoZW4obmV4dCwgbmV4dClcbiAgfVxuXG4gIGZ1bmN0aW9uIG5leHQocmVzKSB7XG4gICAgaWYgKHJlcyBpbnN0YW5jZW9mIEVycm9yIHx8IHJlcy5zdGF0dXMgPj0gNDAwKSB7XG4gICAgICBzcGVjQWN0aW9ucy51cGRhdGVMb2FkaW5nU3RhdHVzKFwiZmFpbGVkQ29uZmlnXCIpXG4gICAgICBzcGVjQWN0aW9ucy51cGRhdGVMb2FkaW5nU3RhdHVzKFwiZmFpbGVkQ29uZmlnXCIpXG4gICAgICBzcGVjQWN0aW9ucy51cGRhdGVVcmwoXCJcIilcbiAgICAgIGNvbnNvbGUuZXJyb3IocmVzLnN0YXR1c1RleHQgKyBcIiBcIiArIHJlcS51cmwpXG4gICAgICBjYihudWxsKVxuICAgIH0gZWxzZSB7XG4gICAgICBjYihwYXJzZUNvbmZpZyhyZXMudGV4dCwgc3lzdGVtKSlcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEp1c3QgZ2V0IHRoZSBjb25maWcgdmFsdWUgKCBpdCBjYW4gcG9zc2libHkgYmUgYW4gaW1tdXRhYmxlIG9iamVjdClcbmV4cG9ydCBjb25zdCBnZXQgPSAoc3RhdGUsIHBhdGgpID0+IHtcbiAgcmV0dXJuIHN0YXRlLmdldEluKEFycmF5LmlzQXJyYXkocGF0aCkgPyBwYXRoIDogW3BhdGhdKVxufVxuIiwiaW1wb3J0IHsgZnJvbUpTIH0gZnJvbSBcImltbXV0YWJsZVwiXG5cbmltcG9ydCB7XG5cdFVQREFURV9DT05GSUdTLFxuXHRUT0dHTEVfQ09ORklHUyxcbn0gZnJvbSBcIi4vYWN0aW9uc1wiXG5cbmV4cG9ydCBkZWZhdWx0IHtcblxuICBbVVBEQVRFX0NPTkZJR1NdOiAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiBzdGF0ZS5tZXJnZShmcm9tSlMoYWN0aW9uLnBheWxvYWQpKVxuICB9LFxuXG4gIFtUT0dHTEVfQ09ORklHU106IChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgY29uZmlnTmFtZSA9IGFjdGlvbi5wYXlsb2FkXG4gICAgY29uc3Qgb3JpVmFsID0gc3RhdGUuZ2V0KGNvbmZpZ05hbWUpXG4gICAgcmV0dXJuIHN0YXRlLnNldChjb25maWdOYW1lLCAhb3JpVmFsKVxuICB9LFxuXG59XG4iLCJpbXBvcnQgKiBhcyBhY3Rpb25zIGZyb20gXCIuL2FjdGlvbnNcIlxuaW1wb3J0ICogYXMgc2VsZWN0b3JzIGZyb20gXCIuL3NlbGVjdG9yc1wiXG5pbXBvcnQgcmVkdWNlcnMgZnJvbSBcIi4vcmVkdWNlcnNcIlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb25maWdzUGx1Z2luKCkge1xuXG4gIHJldHVybiB7XG4gICAgc3RhdGVQbHVnaW5zOiB7XG4gICAgICBjb25maWdzOiB7XG4gICAgICAgIHJlZHVjZXJzLFxuICAgICAgICBhY3Rpb25zLFxuICAgICAgICBzZWxlY3RvcnMsXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJleHBvcnQgY29uc3Qgc2V0SGFzaCA9ICh2YWx1ZSkgPT4ge1xuICBpZih2YWx1ZSkge1xuICAgIHJldHVybiBoaXN0b3J5LnB1c2hTdGF0ZShudWxsLCBudWxsLCBgIyR7dmFsdWV9YClcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLmhhc2ggPSBcIlwiXG4gIH1cbn1cbiIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwiemVuc2Nyb2xsXCIpOyIsImltcG9ydCB7IHNldEhhc2ggfSBmcm9tIFwiLi9oZWxwZXJzXCJcbmltcG9ydCB6ZW5zY3JvbGwgZnJvbSBcInplbnNjcm9sbFwiXG5pbXBvcnQgeyBjcmVhdGVEZWVwTGlua1BhdGggfSBmcm9tIFwiY29yZS91dGlsc1wiXG5pbXBvcnQgSW0sIHsgZnJvbUpTIH0gZnJvbSBcImltbXV0YWJsZVwiXG5cbmNvbnN0IFNDUk9MTF9UTyA9IFwibGF5b3V0X3Njcm9sbF90b1wiXG5jb25zdCBDTEVBUl9TQ1JPTExfVE8gPSBcImxheW91dF9jbGVhcl9zY3JvbGxcIlxuXG5leHBvcnQgY29uc3Qgc2hvdyA9IChvcmksIHsgZ2V0Q29uZmlncywgbGF5b3V0U2VsZWN0b3JzIH0pID0+ICguLi5hcmdzKSA9PiB7XG4gIG9yaSguLi5hcmdzKVxuXG4gIGlmKCFnZXRDb25maWdzKCkuZGVlcExpbmtpbmcpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIHRyeSB7XG4gICAgbGV0IFt0b2tlbkFycmF5LCBzaG93bl0gPSBhcmdzXG4gICAgLy9Db2VyY2UgaW4gdG8gYXJyYXlcbiAgICB0b2tlbkFycmF5ID0gQXJyYXkuaXNBcnJheSh0b2tlbkFycmF5KSA/IHRva2VuQXJyYXkgOiBbdG9rZW5BcnJheV1cbiAgICAvLyBDb252ZXJ0IGludG8gc29tZXRoaW5nIHdlIGNhbiBwdXQgaW4gdGhlIFVSTCBoYXNoXG4gICAgLy8gT3IgcmV0dXJuIGVtcHR5LCBpZiB3ZSBjYW5ub3RcbiAgICBjb25zdCB1cmxIYXNoQXJyYXkgPSBsYXlvdXRTZWxlY3RvcnMudXJsSGFzaEFycmF5RnJvbUlzU2hvd25LZXkodG9rZW5BcnJheSkgLy8gV2lsbCBjb252ZXJ0XG5cbiAgICAvLyBObyBoYXNoIGZyaWVuZGx5IGxpc3Q/XG4gICAgaWYoIXVybEhhc2hBcnJheS5sZW5ndGgpXG4gICAgICByZXR1cm5cblxuICAgIGNvbnN0IFt0eXBlLCBhc3NldE5hbWVdID0gdXJsSGFzaEFycmF5XG5cbiAgICBpZiAoIXNob3duKSB7XG4gICAgICByZXR1cm4gc2V0SGFzaChcIi9cIilcbiAgICB9XG5cbiAgICBpZiAodXJsSGFzaEFycmF5Lmxlbmd0aCA9PT0gMikge1xuICAgICAgc2V0SGFzaChjcmVhdGVEZWVwTGlua1BhdGgoYC8ke2VuY29kZVVSSUNvbXBvbmVudCh0eXBlKX0vJHtlbmNvZGVVUklDb21wb25lbnQoYXNzZXROYW1lKX1gKSlcbiAgICB9IGVsc2UgaWYgKHVybEhhc2hBcnJheS5sZW5ndGggPT09IDEpIHtcbiAgICAgIHNldEhhc2goY3JlYXRlRGVlcExpbmtQYXRoKGAvJHtlbmNvZGVVUklDb21wb25lbnQodHlwZSl9YCkpXG4gICAgfVxuXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm90IG1pc3Npb24gY3JpdGljYWwsIHNvIGlmIHNvbWV0aGluZyBnb2VzIHdyb25nXG4gICAgLy8gd2UnbGwganVzdCBtb3ZlIG9uXG4gICAgY29uc29sZS5lcnJvcihlKSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnNvbGVcbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgc2Nyb2xsVG8gPSAocGF0aCkgPT4ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFNDUk9MTF9UTyxcbiAgICBwYXlsb2FkOiBBcnJheS5pc0FycmF5KHBhdGgpID8gcGF0aCA6IFtwYXRoXVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBwYXJzZURlZXBMaW5rSGFzaCA9IChyYXdIYXNoKSA9PiAoeyBsYXlvdXRBY3Rpb25zLCBsYXlvdXRTZWxlY3RvcnMsIGdldENvbmZpZ3MgfSkgPT4ge1xuXG4gIGlmKCFnZXRDb25maWdzKCkuZGVlcExpbmtpbmcpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmKHJhd0hhc2gpIHtcbiAgICBsZXQgaGFzaCA9IHJhd0hhc2guc2xpY2UoMSkgLy8gIyBpcyBmaXJzdCBjaGFyYWN0ZXJcblxuXG4gICAgaWYoaGFzaFswXSA9PT0gXCIhXCIpIHtcbiAgICAgIC8vIFBhcnNlIFVJIDIueCBzaGViYW5nc1xuICAgICAgaGFzaCA9IGhhc2guc2xpY2UoMSlcbiAgICB9XG5cbiAgICBpZihoYXNoWzBdID09PSBcIi9cIikge1xuICAgICAgLy8gXCIvcGV0L2FkZFBldFwiID0+IFwicGV0L2FkZFBldFwiXG4gICAgICAvLyBtYWtlcyB0aGUgc3BsaXQgcmVzdWx0IGNsZWFuZXJcbiAgICAgIC8vIGFsc28gaGFuZGxlcyBmb3Jnb3R0ZW4gbGVhZGluZyBzbGFzaFxuICAgICAgaGFzaCA9IGhhc2guc2xpY2UoMSlcbiAgICB9XG5cbiAgICBjb25zdCBoYXNoQXJyYXkgPSBoYXNoLnNwbGl0KFwiL1wiKS5tYXAodmFsID0+ICh2YWwgfHwgXCJcIikpXG5cbiAgICBjb25zdCBpc1Nob3duS2V5ID0gbGF5b3V0U2VsZWN0b3JzLmlzU2hvd25LZXlGcm9tVXJsSGFzaEFycmF5KGhhc2hBcnJheSlcblxuICAgIGNvbnN0IFt0eXBlLCB0YWdJZCA9IFwiXCIsIG1heWJlT3BlcmF0aW9uSWQgPSBcIlwiXSA9IGlzU2hvd25LZXlcblxuICAgIGlmKHR5cGUgPT09IFwib3BlcmF0aW9uc1wiKSB7XG4gICAgICAvLyB3ZSdyZSBnb2luZyB0byBzaG93IGFuIG9wZXJhdGlvbiwgc28gd2UgbmVlZCB0byBleHBhbmQgdGhlIHRhZyBhcyB3ZWxsXG4gICAgICBjb25zdCB0YWdJc1Nob3duS2V5ID0gbGF5b3V0U2VsZWN0b3JzLmlzU2hvd25LZXlGcm9tVXJsSGFzaEFycmF5KFt0YWdJZF0pXG5cbiAgICAgIC8vIElmIGFuIGBfYCBpcyBwcmVzZW50LCB0cmlnZ2VyIHRoZSBsZWdhY3kgZXNjYXBpbmcgYmVoYXZpb3IgdG8gYmUgc2FmZVxuICAgICAgLy8gVE9ETzogcmVtb3ZlIHRoaXMgaW4gdjQuMCwgaXQgaXMgZGVwcmVjYXRlZFxuICAgICAgaWYodGFnSWQuaW5kZXhPZihcIl9cIikgPiAtMSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXCJXYXJuaW5nOiBlc2NhcGluZyBkZWVwIGxpbmsgd2hpdGVzcGFjZSB3aXRoIGBfYCB3aWxsIGJlIHVuc3VwcG9ydGVkIGluIHY0LjAsIHVzZSBgJTIwYCBpbnN0ZWFkLlwiKVxuICAgICAgICBsYXlvdXRBY3Rpb25zLnNob3codGFnSXNTaG93bktleS5tYXAodmFsID0+IHZhbC5yZXBsYWNlKC9fL2csIFwiIFwiKSksIHRydWUpXG4gICAgICB9XG5cbiAgICAgIGxheW91dEFjdGlvbnMuc2hvdyh0YWdJc1Nob3duS2V5LCB0cnVlKVxuICAgIH1cblxuICAgIC8vIElmIGFuIGBfYCBpcyBwcmVzZW50LCB0cmlnZ2VyIHRoZSBsZWdhY3kgZXNjYXBpbmcgYmVoYXZpb3IgdG8gYmUgc2FmZVxuICAgIC8vIFRPRE86IHJlbW92ZSB0aGlzIGluIHY0LjAsIGl0IGlzIGRlcHJlY2F0ZWRcbiAgICBpZiAodGFnSWQuaW5kZXhPZihcIl9cIikgPiAtMSB8fCBtYXliZU9wZXJhdGlvbklkLmluZGV4T2YoXCJfXCIpID4gLTEpIHtcbiAgICAgIGNvbnNvbGUud2FybihcIldhcm5pbmc6IGVzY2FwaW5nIGRlZXAgbGluayB3aGl0ZXNwYWNlIHdpdGggYF9gIHdpbGwgYmUgdW5zdXBwb3J0ZWQgaW4gdjQuMCwgdXNlIGAlMjBgIGluc3RlYWQuXCIpXG4gICAgICBsYXlvdXRBY3Rpb25zLnNob3coaXNTaG93bktleS5tYXAodmFsID0+IHZhbC5yZXBsYWNlKC9fL2csIFwiIFwiKSksIHRydWUpXG4gICAgfVxuXG4gICAgbGF5b3V0QWN0aW9ucy5zaG93KGlzU2hvd25LZXksIHRydWUpXG5cbiAgICAvLyBTY3JvbGwgdG8gdGhlIG5ld2x5IGV4cGFuZGVkIGVudGl0eVxuICAgIGxheW91dEFjdGlvbnMuc2Nyb2xsVG8oaXNTaG93bktleSlcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgcmVhZHlUb1Njcm9sbCA9IChpc1Nob3duS2V5LCByZWYpID0+IChzeXN0ZW0pID0+IHtcbiAgY29uc3Qgc2Nyb2xsVG9LZXkgPSBzeXN0ZW0ubGF5b3V0U2VsZWN0b3JzLmdldFNjcm9sbFRvS2V5KClcblxuICBpZihJbS5pcyhzY3JvbGxUb0tleSwgZnJvbUpTKGlzU2hvd25LZXkpKSkge1xuICAgIHN5c3RlbS5sYXlvdXRBY3Rpb25zLnNjcm9sbFRvRWxlbWVudChyZWYpXG4gICAgc3lzdGVtLmxheW91dEFjdGlvbnMuY2xlYXJTY3JvbGxUbygpXG4gIH1cbn1cblxuLy8gU2Nyb2xsIHRvIFwicmVmXCIgKGRvbSBub2RlKSB3aXRoIHRoZSBzY3JvbGxiYXIgb24gXCJjb250YWluZXJcIiBvciB0aGUgbmVhcmVzdCBwYXJlbnRcbmV4cG9ydCBjb25zdCBzY3JvbGxUb0VsZW1lbnQgPSAocmVmLCBjb250YWluZXIpID0+IChzeXN0ZW0pID0+IHtcbiAgdHJ5IHtcbiAgICBjb250YWluZXIgPSBjb250YWluZXIgfHwgc3lzdGVtLmZuLmdldFNjcm9sbFBhcmVudChyZWYpXG4gICAgbGV0IG15U2Nyb2xsZXIgPSB6ZW5zY3JvbGwuY3JlYXRlU2Nyb2xsZXIoY29udGFpbmVyKVxuICAgIG15U2Nyb2xsZXIudG8ocmVmKVxuICB9IGNhdGNoKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKGUpIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29uc29sZVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBjbGVhclNjcm9sbFRvID0gKCkgPT4ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IENMRUFSX1NDUk9MTF9UTyxcbiAgfVxufVxuXG4vLyBGcm9tOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDI1NDM5MDgvMzkzMzcyNFxuLy8gTW9kaWZpZWQgdG8gcmV0dXJuIGh0bWwgaW5zdGVhZCBvZiBib2R5IGVsZW1lbnQgYXMgbGFzdCByZXNvcnRcbmZ1bmN0aW9uIGdldFNjcm9sbFBhcmVudChlbGVtZW50LCBpbmNsdWRlSGlkZGVuKSB7XG4gIGNvbnN0IExBU1RfUkVTT1JUID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XG4gIGxldCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudClcbiAgY29uc3QgZXhjbHVkZVN0YXRpY1BhcmVudCA9IHN0eWxlLnBvc2l0aW9uID09PSBcImFic29sdXRlXCJcbiAgY29uc3Qgb3ZlcmZsb3dSZWdleCA9IGluY2x1ZGVIaWRkZW4gPyAvKGF1dG98c2Nyb2xsfGhpZGRlbikvIDogLyhhdXRvfHNjcm9sbCkvXG5cbiAgaWYgKHN0eWxlLnBvc2l0aW9uID09PSBcImZpeGVkXCIpXG4gICAgcmV0dXJuIExBU1RfUkVTT1JUXG4gIGZvciAobGV0IHBhcmVudCA9IGVsZW1lbnQ7IChwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudCk7KSB7XG4gICAgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHBhcmVudClcbiAgICBpZiAoZXhjbHVkZVN0YXRpY1BhcmVudCAmJiBzdHlsZS5wb3NpdGlvbiA9PT0gXCJzdGF0aWNcIikge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgaWYgKG92ZXJmbG93UmVnZXgudGVzdChzdHlsZS5vdmVyZmxvdyArIHN0eWxlLm92ZXJmbG93WSArIHN0eWxlLm92ZXJmbG93WCkpXG4gICAgICByZXR1cm4gcGFyZW50XG4gIH1cblxuICByZXR1cm4gTEFTVF9SRVNPUlRcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBmbjoge1xuICAgIGdldFNjcm9sbFBhcmVudCxcbiAgfSxcbiAgc3RhdGVQbHVnaW5zOiB7XG4gICAgbGF5b3V0OiB7XG4gICAgICBhY3Rpb25zOiB7XG4gICAgICAgIHNjcm9sbFRvRWxlbWVudCxcbiAgICAgICAgc2Nyb2xsVG8sXG4gICAgICAgIGNsZWFyU2Nyb2xsVG8sXG4gICAgICAgIHJlYWR5VG9TY3JvbGwsXG4gICAgICAgIHBhcnNlRGVlcExpbmtIYXNoXG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7XG4gICAgICAgIGdldFNjcm9sbFRvS2V5KHN0YXRlKSB7XG4gICAgICAgICAgcmV0dXJuIHN0YXRlLmdldChcInNjcm9sbFRvS2V5XCIpXG4gICAgICAgIH0sXG4gICAgICAgIGlzU2hvd25LZXlGcm9tVXJsSGFzaEFycmF5KHN0YXRlLCB1cmxIYXNoQXJyYXkpIHtcbiAgICAgICAgICBjb25zdCBbdGFnLCBvcGVyYXRpb25JZF0gPSB1cmxIYXNoQXJyYXlcbiAgICAgICAgICAvLyBXZSBvbmx5IHB1dCBvcGVyYXRpb25zIGluIHRoZSBVUkxcbiAgICAgICAgICBpZihvcGVyYXRpb25JZCkge1xuICAgICAgICAgICAgcmV0dXJuIFtcIm9wZXJhdGlvbnNcIiwgdGFnLCBvcGVyYXRpb25JZF1cbiAgICAgICAgICB9IGVsc2UgaWYgKHRhZykge1xuICAgICAgICAgICAgcmV0dXJuIFtcIm9wZXJhdGlvbnMtdGFnXCIsIHRhZ11cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIFtdXG4gICAgICAgIH0sXG4gICAgICAgIHVybEhhc2hBcnJheUZyb21Jc1Nob3duS2V5KHN0YXRlLCBpc1Nob3duS2V5KSB7XG4gICAgICAgICAgbGV0IFt0eXBlLCB0YWcsIG9wZXJhdGlvbklkXSA9IGlzU2hvd25LZXlcbiAgICAgICAgICAvLyBXZSBvbmx5IHB1dCBvcGVyYXRpb25zIGluIHRoZSBVUkxcbiAgICAgICAgICBpZih0eXBlID09IFwib3BlcmF0aW9uc1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gW3RhZywgb3BlcmF0aW9uSWRdXG4gICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwib3BlcmF0aW9ucy10YWdcIikge1xuICAgICAgICAgICAgcmV0dXJuIFt0YWddXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBbXVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHJlZHVjZXJzOiB7XG4gICAgICAgIFtTQ1JPTExfVE9dKHN0YXRlLCBhY3Rpb24pIHtcbiAgICAgICAgICByZXR1cm4gc3RhdGUuc2V0KFwic2Nyb2xsVG9LZXlcIiwgSW0uZnJvbUpTKGFjdGlvbi5wYXlsb2FkKSlcbiAgICAgICAgfSxcbiAgICAgICAgW0NMRUFSX1NDUk9MTF9UT10oc3RhdGUpIHtcbiAgICAgICAgICByZXR1cm4gc3RhdGUuZGVsZXRlKFwic2Nyb2xsVG9LZXlcIilcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHdyYXBBY3Rpb25zOiB7XG4gICAgICAgIHNob3dcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiKTsiLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5cbmNvbnN0IFdyYXBwZXIgPSAoT3JpLCBzeXN0ZW0pID0+IGNsYXNzIE9wZXJhdGlvbldyYXBwZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb3BlcmF0aW9uOiBJbVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgfVxuXG4gIG9uTG9hZCA9IChyZWYpID0+IHtcbiAgICBjb25zdCB7IG9wZXJhdGlvbiB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHsgdGFnLCBvcGVyYXRpb25JZCB9ID0gb3BlcmF0aW9uLnRvT2JqZWN0KClcbiAgICBsZXQgeyBpc1Nob3duS2V5IH0gPSBvcGVyYXRpb24udG9PYmplY3QoKVxuICAgIGlzU2hvd25LZXkgPSBpc1Nob3duS2V5IHx8IFtcIm9wZXJhdGlvbnNcIiwgdGFnLCBvcGVyYXRpb25JZF1cbiAgICBzeXN0ZW0ubGF5b3V0QWN0aW9ucy5yZWFkeVRvU2Nyb2xsKGlzU2hvd25LZXksIHJlZilcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPHNwYW4gcmVmPXt0aGlzLm9uTG9hZH0+XG4gICAgICAgIDxPcmkgey4uLnRoaXMucHJvcHN9IC8+XG4gICAgICA8L3NwYW4+XG4gICAgKVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFdyYXBwZXJcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgUHJvcFR5cGVzIH0gZnJvbSBcInByb3AtdHlwZXNcIlxuXG5jb25zdCBXcmFwcGVyID0gKE9yaSwgc3lzdGVtKSA9PiBjbGFzcyBPcGVyYXRpb25UYWdXcmFwcGVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHRhZzogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICB9XG5cbiAgb25Mb2FkID0gKHJlZikgPT4ge1xuICAgIGNvbnN0IHsgdGFnIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgaXNTaG93bktleSA9IFtcIm9wZXJhdGlvbnMtdGFnXCIsIHRhZ11cbiAgICBzeXN0ZW0ubGF5b3V0QWN0aW9ucy5yZWFkeVRvU2Nyb2xsKGlzU2hvd25LZXksIHJlZilcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPHNwYW4gcmVmPXt0aGlzLm9uTG9hZH0+XG4gICAgICAgIDxPcmkgey4uLnRoaXMucHJvcHN9IC8+XG4gICAgICA8L3NwYW4+XG4gICAgKVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFdyYXBwZXJcbiIsImltcG9ydCBsYXlvdXQgZnJvbSBcIi4vbGF5b3V0XCJcbmltcG9ydCBPcGVyYXRpb25XcmFwcGVyIGZyb20gXCIuL29wZXJhdGlvbi13cmFwcGVyXCJcbmltcG9ydCBPcGVyYXRpb25UYWdXcmFwcGVyIGZyb20gXCIuL29wZXJhdGlvbi10YWctd3JhcHBlclwiXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gW2xheW91dCwge1xuICAgIHN0YXRlUGx1Z2luczoge1xuICAgICAgY29uZmlnczoge1xuICAgICAgICB3cmFwQWN0aW9uczoge1xuICAgICAgICAgIGxvYWRlZDogKG9yaSwgc3lzdGVtKSA9PiAoLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgb3JpKC4uLmFyZ3MpXG4gICAgICAgICAgICAvLyBsb2NhdGlvbi5oYXNoIHdhcyBhbiBVVEYtMTYgU3RyaW5nLCBoZXJlIGlzIHJlcXVpcmVkIFVURi04XG4gICAgICAgICAgICBjb25zdCBoYXNoID0gZGVjb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5oYXNoKVxuICAgICAgICAgICAgc3lzdGVtLmxheW91dEFjdGlvbnMucGFyc2VEZWVwTGlua0hhc2goaGFzaClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIHdyYXBDb21wb25lbnRzOiB7XG4gICAgICBvcGVyYXRpb246IE9wZXJhdGlvbldyYXBwZXIsXG4gICAgICBPcGVyYXRpb25UYWc6IE9wZXJhdGlvblRhZ1dyYXBwZXIsXG4gICAgfSxcbiAgfV1cbn1cbiIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwibG9kYXNoL3JlZHVjZVwiKTsiLCJleHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtKGVycm9ycykge1xuICAvLyBKU09OU2NoZW1hIHJlZmVycyB0byB0aGUgY3VycmVudCBvYmplY3QgYmVpbmcgdmFsaWRhdGVkXG4gIC8vIGFzICdpbnN0YW5jZScuIFRoaXMgaXNuJ3QgaGVscGZ1bCB0byB1c2Vycywgc28gd2UgcmVtb3ZlIGl0LlxuICByZXR1cm4gZXJyb3JzXG4gICAgLm1hcChlcnIgPT4ge1xuICAgICAgbGV0IHNlZWtTdHIgPSBcImlzIG5vdCBvZiBhIHR5cGUocylcIlxuICAgICAgbGV0IGkgPSBlcnIuZ2V0KFwibWVzc2FnZVwiKS5pbmRleE9mKHNlZWtTdHIpXG4gICAgICBpZihpID4gLTEpIHtcbiAgICAgICAgbGV0IHR5cGVzID0gZXJyLmdldChcIm1lc3NhZ2VcIikuc2xpY2UoaSArIHNlZWtTdHIubGVuZ3RoKS5zcGxpdChcIixcIilcbiAgICAgICAgcmV0dXJuIGVyci5zZXQoXCJtZXNzYWdlXCIsIGVyci5nZXQoXCJtZXNzYWdlXCIpLnNsaWNlKDAsIGkpICsgbWFrZU5ld01lc3NhZ2UodHlwZXMpKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGVyclxuICAgICAgfVxuICAgIH0pXG59XG5cbmZ1bmN0aW9uIG1ha2VOZXdNZXNzYWdlKHR5cGVzKSB7XG4gIHJldHVybiB0eXBlcy5yZWR1Y2UoKHAsIGMsIGksIGFycikgPT4ge1xuICAgIGlmKGkgPT09IGFyci5sZW5ndGggLSAxICYmIGFyci5sZW5ndGggPiAxKSB7XG4gICAgICByZXR1cm4gcCArIFwib3IgXCIgKyBjXG4gICAgfSBlbHNlIGlmKGFycltpKzFdICYmIGFyci5sZW5ndGggPiAyKSB7XG4gICAgICByZXR1cm4gcCArIGMgKyBcIiwgXCJcbiAgICB9IGVsc2UgaWYoYXJyW2krMV0pIHtcbiAgICAgIHJldHVybiBwICsgYyArIFwiIFwiXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwICsgY1xuICAgIH1cbiAgfSwgXCJzaG91bGQgYmUgYVwiKVxufVxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJsb2Rhc2gvZ2V0XCIpOyIsImltcG9ydCBnZXQgZnJvbSBcImxvZGFzaC9nZXRcIlxuaW1wb3J0IHsgZnJvbUpTIH0gZnJvbSBcImltbXV0YWJsZVwiXG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm0oZXJyb3JzLCB7IGpzU3BlYyB9KSB7XG4gIC8vIExPT0sgSEVSRSBUSElTIFRSQU5TRk9STUVSIElTIENVUlJFTlRMWSBESVNBQkxFRCDwn5iDXG4gIC8vIFRPRE86IGZpbmlzaCBpbXBsZW1lbnRpbmcsIGZpeCBmbGF0dGVuaW5nIHByb2JsZW1cbiAgLyogZXNsaW50LWRpc2FibGUgbm8tdW5yZWFjaGFibGUgKi9cbiAgcmV0dXJuIGVycm9yc1xuXG5cbiAgLy8gSlNPTlNjaGVtYSBnaXZlcyB1cyB2ZXJ5IGxpdHRsZSB0byBnbyBvblxuICBsZXQgc2VhcmNoU3RyID0gXCJpcyBub3QgZXhhY3RseSBvbmUgZnJvbSA8Iy9kZWZpbml0aW9ucy9wYXJhbWV0ZXI+LDwjL2RlZmluaXRpb25zL2pzb25SZWZlcmVuY2U+XCJcbiAgcmV0dXJuIGVycm9yc1xuICAgIC5tYXAoZXJyID0+IHtcbiAgICAgIGxldCBtZXNzYWdlID0gZXJyLmdldChcIm1lc3NhZ2VcIilcbiAgICAgIGxldCBpc1BhcmFtZXRlck9uZU9mRXJyb3IgPSBtZXNzYWdlLmluZGV4T2Yoc2VhcmNoU3RyKSA+IC0xXG4gICAgICBpZihpc1BhcmFtZXRlck9uZU9mRXJyb3IpIHtcbiAgICAgICAgLy8gdHJ5IHRvIGZpbmQgd2hhdCdzIHdyb25nXG4gICAgICAgIHJldHVybiBjcmVhdGVUYWlsb3JlZFBhcmFtZXRlckVycm9yKGVyciwganNTcGVjKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGVyclxuICAgICAgfVxuICAgIH0pXG4gICAgLmZsYXR0ZW4odHJ1ZSkgLy8gc2hhbGxvdyBJbW11dGFibGUgZmxhdHRlblxufVxuXG5jb25zdCBWQUxJRF9JTl9WQUxVRVMgPSBbXCJwYXRoXCIsIFwicXVlcnlcIiwgXCJoZWFkZXJcIiwgXCJib2R5XCIsIFwiZm9ybURhdGFcIl1cbmNvbnN0IFZBTElEX0NPTExFQ1RJT05GT1JNQVRfVkFMVUVTID0gW1wiY3N2XCIsIFwic3N2XCIsIFwidHN2XCIsIFwicGlwZXNcIiwgXCJtdWx0aVwiXVxuXG5mdW5jdGlvbiBjcmVhdGVUYWlsb3JlZFBhcmFtZXRlckVycm9yKGVyciwganNTcGVjKSB7XG4gIGxldCBuZXdFcnJzID0gW11cbiAgbGV0IHBhcmFtZXRlciA9IGdldChqc1NwZWMsIGVyci5nZXQoXCJwYXRoXCIpKVxuXG4gIC8vIGZpbmQgYWRkcmVzc2FibGUgY2FzZXNcbiAgaWYocGFyYW1ldGVyLmluICYmIFZBTElEX0lOX1ZBTFVFUy5pbmRleE9mKHBhcmFtZXRlci5pbikgPT09IC0xKSB7XG4gICAgbGV0IG1lc3NhZ2UgPSBgV3JvbmcgdmFsdWUgZm9yIHRoZSBcImluXCIga2V5d29yZC4gRXhwZWN0ZWQgb25lIG9mOiAke1ZBTElEX0lOX1ZBTFVFUy5qb2luKFwiLCBcIil9LmBcbiAgICBuZXdFcnJzLnB1c2goe1xuICAgICAgbWVzc2FnZSxcbiAgICAgIHBhdGg6IGVyci5nZXQoXCJwYXRoXCIpICsgXCIuaW5cIixcbiAgICAgIHR5cGU6IFwic3BlY1wiLFxuICAgICAgc291cmNlOiBcInN0cnVjdHVyYWxcIixcbiAgICAgIGxldmVsOiBcImVycm9yXCJcbiAgICB9KVxuICB9XG5cbiAgaWYocGFyYW1ldGVyLmNvbGxlY3Rpb25Gb3JtYXQgJiYgVkFMSURfQ09MTEVDVElPTkZPUk1BVF9WQUxVRVMuaW5kZXhPZihwYXJhbWV0ZXIuY29sbGVjdGlvbkZvcm1hdCkgPT09IC0xKSB7XG4gICAgbGV0IG1lc3NhZ2UgPSBgV3JvbmcgdmFsdWUgZm9yIHRoZSBcImNvbGxlY3Rpb25Gb3JtYXRcIiBrZXl3b3JkLiBFeHBlY3RlZCBvbmUgb2Y6ICR7VkFMSURfQ09MTEVDVElPTkZPUk1BVF9WQUxVRVMuam9pbihcIiwgXCIpfS5gXG4gICAgbmV3RXJycy5wdXNoKHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBwYXRoOiBlcnIuZ2V0KFwicGF0aFwiKSArIFwiLmNvbGxlY3Rpb25Gb3JtYXRcIixcbiAgICAgIHR5cGU6IFwic3BlY1wiLFxuICAgICAgc291cmNlOiBcInN0cnVjdHVyYWxcIixcbiAgICAgIGxldmVsOiBcImVycm9yXCJcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIG5ld0VycnMubGVuZ3RoID8gZnJvbUpTKG5ld0VycnMpIDogZXJyIC8vIGZhbGwgYmFjayB0byBtYWtpbmcgbm8gY2hhbmdlc1xuXG59XG4iLCJpbXBvcnQgcmVkdWNlIGZyb20gXCJsb2Rhc2gvcmVkdWNlXCJcbmltcG9ydCAqIGFzIE5vdE9mVHlwZSBmcm9tIFwiLi90cmFuc2Zvcm1lcnMvbm90LW9mLXR5cGVcIlxuaW1wb3J0ICogYXMgUGFyYW1ldGVyT25lT2YgZnJvbSBcIi4vdHJhbnNmb3JtZXJzL3BhcmFtZXRlci1vbmVvZlwiXG5cbmNvbnN0IGVycm9yVHJhbnNmb3JtZXJzID0gW1xuICBOb3RPZlR5cGUsXG4gIFBhcmFtZXRlck9uZU9mXG5dXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRyYW5zZm9ybUVycm9ycyAoZXJyb3JzKSB7XG4gIC8vIERldiBub3RlOiB1bmltcGxlbWVudGVkIGFydGlmYWN0IHdoZXJlXG4gIC8vIGpzU3BlYzogc3lzdGVtLnNwZWNTZWxlY3RvcnMuc3BlY0pTKClcbiAgLy8gcmVnYXJkbGVzcywgdG8gYmUgY29tcGxpYW50IHdpdGggcmVkdXhANCwgaW5zdGVhZCBvZiBjYWxsaW5nIHRoZSBzdG9yZSBtZXRob2QgaGVyZSxcbiAgLy8ganNTcGVjIHNob3VsZCBiZSBwYXNzIGRvd24gYXMgYW4gYXJndW1lbnQsXG4gIGxldCBpbnB1dHMgPSB7XG4gICAganNTcGVjOiB7fVxuICB9XG5cbiAgbGV0IHRyYW5zZm9ybWVkRXJyb3JzID0gcmVkdWNlKGVycm9yVHJhbnNmb3JtZXJzLCAocmVzdWx0LCB0cmFuc2Zvcm1lcikgPT4ge1xuICAgIHRyeSB7XG4gICAgICBsZXQgbmV3bHlUcmFuc2Zvcm1lZEVycm9ycyA9IHRyYW5zZm9ybWVyLnRyYW5zZm9ybShyZXN1bHQsIGlucHV0cylcbiAgICAgIHJldHVybiBuZXdseVRyYW5zZm9ybWVkRXJyb3JzLmZpbHRlcihlcnIgPT4gISFlcnIpIC8vIGZpbHRlciByZW1vdmVkIGVycm9yc1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgY29uc29sZS5lcnJvcihcIlRyYW5zZm9ybWVyIGVycm9yOlwiLCBlKVxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cbiAgfSwgZXJyb3JzKVxuXG4gIHJldHVybiB0cmFuc2Zvcm1lZEVycm9yc1xuICAgIC5maWx0ZXIoZXJyID0+ICEhZXJyKSAvLyBmaWx0ZXIgcmVtb3ZlZCBlcnJvcnNcbiAgICAubWFwKGVyciA9PiB7XG4gICAgICBpZighZXJyLmdldChcImxpbmVcIikgJiYgZXJyLmdldChcInBhdGhcIikpIHtcbiAgICAgICAgLy8gVE9ETzogcmUtcmVzb2x2ZSBsaW5lIG51bWJlciBpZiB3ZSd2ZSB0cmFuc2Zvcm1lZCBpdCBhd2F5XG4gICAgICB9XG4gICAgICByZXR1cm4gZXJyXG4gICAgfSlcblxufVxuIiwiaW1wb3J0IHtcbiAgTkVXX1RIUk9XTl9FUlIsXG4gIE5FV19USFJPV05fRVJSX0JBVENILFxuICBORVdfU1BFQ19FUlIsXG4gIE5FV19TUEVDX0VSUl9CQVRDSCxcbiAgTkVXX0FVVEhfRVJSLFxuICBDTEVBUixcbiAgQ0xFQVJfQlksXG59IGZyb20gXCIuL2FjdGlvbnNcIlxuXG5pbXBvcnQgeyBmcm9tSlMsIExpc3QgfSBmcm9tIFwiaW1tdXRhYmxlXCJcblxuaW1wb3J0IHRyYW5zZm9ybUVycm9ycyBmcm9tIFwiLi9lcnJvci10cmFuc2Zvcm1lcnMvaG9va1wiXG5cbmxldCBERUZBVUxUX0VSUk9SX1NUUlVDVFVSRSA9IHtcbiAgLy8gZGVmYXVsdHNcbiAgbGluZTogMCxcbiAgbGV2ZWw6IFwiZXJyb3JcIixcbiAgbWVzc2FnZTogXCJVbmtub3duIGVycm9yXCJcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7XG4gICAgW05FV19USFJPV05fRVJSXTogKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4ge1xuICAgICAgbGV0IGVycm9yID0gT2JqZWN0LmFzc2lnbihERUZBVUxUX0VSUk9SX1NUUlVDVFVSRSwgcGF5bG9hZCwge3R5cGU6IFwidGhyb3duXCJ9KVxuICAgICAgcmV0dXJuIHN0YXRlXG4gICAgICAgIC51cGRhdGUoXCJlcnJvcnNcIiwgZXJyb3JzID0+IChlcnJvcnMgfHwgTGlzdCgpKS5wdXNoKCBmcm9tSlMoIGVycm9yICkpIClcbiAgICAgICAgLnVwZGF0ZShcImVycm9yc1wiLCBlcnJvcnMgPT4gdHJhbnNmb3JtRXJyb3JzKGVycm9ycykpXG4gICAgfSxcblxuICAgIFtORVdfVEhST1dOX0VSUl9CQVRDSF06IChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+IHtcbiAgICAgIHBheWxvYWQgPSBwYXlsb2FkLm1hcChlcnIgPT4ge1xuICAgICAgICByZXR1cm4gZnJvbUpTKE9iamVjdC5hc3NpZ24oREVGQVVMVF9FUlJPUl9TVFJVQ1RVUkUsIGVyciwgeyB0eXBlOiBcInRocm93blwiIH0pKVxuICAgICAgfSlcbiAgICAgIHJldHVybiBzdGF0ZVxuICAgICAgICAudXBkYXRlKFwiZXJyb3JzXCIsIGVycm9ycyA9PiAoZXJyb3JzIHx8IExpc3QoKSkuY29uY2F0KCBmcm9tSlMoIHBheWxvYWQgKSkgKVxuICAgICAgICAudXBkYXRlKFwiZXJyb3JzXCIsIGVycm9ycyA9PiB0cmFuc2Zvcm1FcnJvcnMoZXJyb3JzKSlcbiAgICB9LFxuXG4gICAgW05FV19TUEVDX0VSUl06IChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+IHtcbiAgICAgIGxldCBlcnJvciA9IGZyb21KUyhwYXlsb2FkKVxuICAgICAgZXJyb3IgPSBlcnJvci5zZXQoXCJ0eXBlXCIsIFwic3BlY1wiKVxuICAgICAgcmV0dXJuIHN0YXRlXG4gICAgICAgIC51cGRhdGUoXCJlcnJvcnNcIiwgZXJyb3JzID0+IChlcnJvcnMgfHwgTGlzdCgpKS5wdXNoKCBmcm9tSlMoZXJyb3IpKS5zb3J0QnkoZXJyID0+IGVyci5nZXQoXCJsaW5lXCIpKSApXG4gICAgICAgIC51cGRhdGUoXCJlcnJvcnNcIiwgZXJyb3JzID0+IHRyYW5zZm9ybUVycm9ycyhlcnJvcnMpKVxuICAgIH0sXG5cbiAgICBbTkVXX1NQRUNfRVJSX0JBVENIXTogKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4ge1xuICAgICAgcGF5bG9hZCA9IHBheWxvYWQubWFwKGVyciA9PiB7XG4gICAgICAgIHJldHVybiBmcm9tSlMoT2JqZWN0LmFzc2lnbihERUZBVUxUX0VSUk9SX1NUUlVDVFVSRSwgZXJyLCB7IHR5cGU6IFwic3BlY1wiIH0pKVxuICAgICAgfSlcbiAgICAgIHJldHVybiBzdGF0ZVxuICAgICAgICAudXBkYXRlKFwiZXJyb3JzXCIsIGVycm9ycyA9PiAoZXJyb3JzIHx8IExpc3QoKSkuY29uY2F0KGZyb21KUyhwYXlsb2FkKSkpXG4gICAgICAgIC51cGRhdGUoXCJlcnJvcnNcIiwgZXJyb3JzID0+IHRyYW5zZm9ybUVycm9ycyhlcnJvcnMpKVxuICAgIH0sXG5cbiAgICBbTkVXX0FVVEhfRVJSXTogKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4ge1xuICAgICAgbGV0IGVycm9yID0gZnJvbUpTKE9iamVjdC5hc3NpZ24oe30sIHBheWxvYWQpKVxuXG4gICAgICBlcnJvciA9IGVycm9yLnNldChcInR5cGVcIiwgXCJhdXRoXCIpXG4gICAgICByZXR1cm4gc3RhdGVcbiAgICAgICAgLnVwZGF0ZShcImVycm9yc1wiLCBlcnJvcnMgPT4gKGVycm9ycyB8fCBMaXN0KCkpLnB1c2goIGZyb21KUyhlcnJvcikpIClcbiAgICAgICAgLnVwZGF0ZShcImVycm9yc1wiLCBlcnJvcnMgPT4gdHJhbnNmb3JtRXJyb3JzKGVycm9ycykpXG4gICAgfSxcblxuICAgIFtDTEVBUl06IChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+IHtcbiAgICAgIGlmKCFwYXlsb2FkIHx8ICFzdGF0ZS5nZXQoXCJlcnJvcnNcIikpIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlXG4gICAgICB9XG5cbiAgICAgIGxldCBuZXdFcnJvcnMgPSBzdGF0ZS5nZXQoXCJlcnJvcnNcIilcbiAgICAgICAgLmZpbHRlcihlcnIgPT4ge1xuICAgICAgICAgIHJldHVybiBlcnIua2V5U2VxKCkuZXZlcnkoayA9PiB7XG4gICAgICAgICAgICBjb25zdCBlcnJWYWx1ZSA9IGVyci5nZXQoaylcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlclZhbHVlID0gcGF5bG9hZFtrXVxuXG4gICAgICAgICAgICBpZighZmlsdGVyVmFsdWUpIHJldHVybiB0cnVlXG5cbiAgICAgICAgICAgIHJldHVybiBlcnJWYWx1ZSAhPT0gZmlsdGVyVmFsdWVcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgcmV0dXJuIHN0YXRlLm1lcmdlKHtcbiAgICAgICAgZXJyb3JzOiBuZXdFcnJvcnNcbiAgICAgIH0pXG4gICAgfSxcblxuICAgIFtDTEVBUl9CWV06IChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+IHtcbiAgICAgIGlmKCFwYXlsb2FkIHx8IHR5cGVvZiBwYXlsb2FkICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlXG4gICAgICB9XG4gICAgICBsZXQgbmV3RXJyb3JzID0gc3RhdGUuZ2V0KFwiZXJyb3JzXCIpXG4gICAgICAgIC5maWx0ZXIoZXJyID0+IHtcbiAgICAgICAgICByZXR1cm4gcGF5bG9hZChlcnIpXG4gICAgICAgIH0pXG4gICAgICByZXR1cm4gc3RhdGUubWVyZ2Uoe1xuICAgICAgICBlcnJvcnM6IG5ld0Vycm9yc1xuICAgICAgfSlcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7IExpc3QgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCB7IGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSBcInJlc2VsZWN0XCJcblxuY29uc3Qgc3RhdGUgPSBzdGF0ZSA9PiBzdGF0ZVxuXG5leHBvcnQgY29uc3QgYWxsRXJyb3JzID0gY3JlYXRlU2VsZWN0b3IoXG4gIHN0YXRlLFxuICBlcnIgPT4gZXJyLmdldChcImVycm9yc1wiLCBMaXN0KCkpXG4pXG5cbmV4cG9ydCBjb25zdCBsYXN0RXJyb3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgYWxsRXJyb3JzLFxuICBhbGwgPT4gYWxsLmxhc3QoKVxuKVxuXG4iLCJpbXBvcnQgbWFrZVJlZHVjZXJzIGZyb20gXCIuL3JlZHVjZXJzXCJcbmltcG9ydCAqIGFzIGFjdGlvbnMgZnJvbSBcIi4vYWN0aW9uc1wiXG5pbXBvcnQgKiBhcyBzZWxlY3RvcnMgZnJvbSBcIi4vc2VsZWN0b3JzXCJcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oc3lzdGVtKSB7XG4gIHJldHVybiB7XG4gICAgc3RhdGVQbHVnaW5zOiB7XG4gICAgICBlcnI6IHtcbiAgICAgICAgcmVkdWNlcnM6IG1ha2VSZWR1Y2VycyhzeXN0ZW0pLFxuICAgICAgICBhY3Rpb25zLFxuICAgICAgICBzZWxlY3RvcnNcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHRhZ2dlZE9wcywgcGhyYXNlKSB7XG4gIHJldHVybiB0YWdnZWRPcHMuZmlsdGVyKCh0YWdPYmosIHRhZykgPT4gdGFnLmluZGV4T2YocGhyYXNlKSAhPT0gLTEpXG59XG4iLCJpbXBvcnQgb3BzRmlsdGVyIGZyb20gXCIuL29wc0ZpbHRlclwiXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICByZXR1cm4ge1xuICAgIGZuOiB7XG4gICAgICBvcHNGaWx0ZXJcbiAgICB9XG4gIH1cbn1cbiIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9oZWxwZXJzL2V4dGVuZHNcIik7IiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuY29uc3QgQXJyb3dVcCA9ICh7IGNsYXNzTmFtZSA9IG51bGwsIHdpZHRoID0gMjAsIGhlaWdodCA9IDIwLCAuLi5yZXN0IH0pID0+IChcbiAgPHN2Z1xuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIHdpZHRoPXt3aWR0aH1cbiAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICB7Li4ucmVzdH1cbiAgPlxuICAgIDxwYXRoIGQ9XCJNIDE3LjQxOCAxNC45MDggQyAxNy42OSAxNS4xNzYgMTguMTI3IDE1LjE3NiAxOC4zOTcgMTQuOTA4IEMgMTguNjY3IDE0LjY0IDE4LjY2OCAxNC4yMDcgMTguMzk3IDEzLjkzOSBMIDEwLjQ4OSA2LjEwOSBDIDEwLjIxOSA1Ljg0MSA5Ljc4MiA1Ljg0MSA5LjUxIDYuMTA5IEwgMS42MDIgMTMuOTM5IEMgMS4zMzIgMTQuMjA3IDEuMzMyIDE0LjY0IDEuNjAyIDE0LjkwOCBDIDEuODczIDE1LjE3NiAyLjMxMSAxNS4xNzYgMi41ODEgMTQuOTA4IEwgMTAgNy43NjcgTCAxNy40MTggMTQuOTA4IFpcIiAvPlxuICA8L3N2Zz5cbilcblxuQXJyb3dVcC5wcm9wVHlwZXMgPSB7XG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgd2lkdGg6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGhlaWdodDogUHJvcFR5cGVzLnN0cmluZyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dVcFxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuY29uc3QgQXJyb3dEb3duID0gKHsgY2xhc3NOYW1lID0gbnVsbCwgd2lkdGggPSAyMCwgaGVpZ2h0ID0gMjAsIC4uLnJlc3QgfSkgPT4gKFxuICA8c3ZnXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgd2lkdGg9e3dpZHRofVxuICAgIGhlaWdodD17aGVpZ2h0fVxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgIHsuLi5yZXN0fVxuICA+XG4gICAgPHBhdGggZD1cIk0xNy40MTggNi4xMDljLjI3Mi0uMjY4LjcwOS0uMjY4Ljk3OSAwcy4yNzEuNzAxIDAgLjk2OWwtNy45MDggNy44M2MtLjI3LjI2OC0uNzA3LjI2OC0uOTc5IDBsLTcuOTA4LTcuODNjLS4yNy0uMjY4LS4yNy0uNzAxIDAtLjk2OS4yNzEtLjI2OC43MDktLjI2OC45NzkgMEwxMCAxMy4yNWw3LjQxOC03LjE0MXpcIiAvPlxuICA8L3N2Zz5cbilcblxuQXJyb3dEb3duLnByb3BUeXBlcyA9IHtcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB3aWR0aDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaGVpZ2h0OiBQcm9wVHlwZXMuc3RyaW5nLFxufVxuXG5leHBvcnQgZGVmYXVsdCBBcnJvd0Rvd25cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmNvbnN0IEFycm93ID0gKHsgY2xhc3NOYW1lID0gbnVsbCwgd2lkdGggPSAyMCwgaGVpZ2h0ID0gMjAsIC4uLnJlc3QgfSkgPT4gKFxuICA8c3ZnXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgd2lkdGg9e3dpZHRofVxuICAgIGhlaWdodD17aGVpZ2h0fVxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgIHsuLi5yZXN0fVxuICA+XG4gICAgPHBhdGggZD1cIk0xMy4yNSAxMEw2LjEwOSAyLjU4Yy0uMjY4LS4yNy0uMjY4LS43MDcgMC0uOTc5LjI2OC0uMjcuNzAxLS4yNy45NjkgMGw3LjgzIDcuOTA4Yy4yNjguMjcxLjI2OC43MDkgMCAuOTc5bC03LjgzIDcuOTA4Yy0uMjY4LjI3MS0uNzAxLjI3LS45NjkgMC0uMjY4LS4yNjktLjI2OC0uNzA3IDAtLjk3OUwxMy4yNSAxMHpcIiAvPlxuICA8L3N2Zz5cbilcblxuQXJyb3cucHJvcFR5cGVzID0ge1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHdpZHRoOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBoZWlnaHQ6IFByb3BUeXBlcy5zdHJpbmcsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5jb25zdCBDbG9zZSA9ICh7IGNsYXNzTmFtZSA9IG51bGwsIHdpZHRoID0gMjAsIGhlaWdodCA9IDIwLCAuLi5yZXN0IH0pID0+IChcbiAgPHN2Z1xuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIHdpZHRoPXt3aWR0aH1cbiAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICB7Li4ucmVzdH1cbiAgPlxuICAgIDxwYXRoIGQ9XCJNMTQuMzQ4IDE0Ljg0OWMtLjQ2OS40NjktMS4yMjkuNDY5LTEuNjk3IDBMMTAgMTEuODE5bC0yLjY1MSAzLjAyOWMtLjQ2OS40NjktMS4yMjkuNDY5LTEuNjk3IDAtLjQ2OS0uNDY5LS40NjktMS4yMjkgMC0xLjY5N2wyLjc1OC0zLjE1LTIuNzU5LTMuMTUyYy0uNDY5LS40NjktLjQ2OS0xLjIyOCAwLTEuNjk3LjQ2OS0uNDY5IDEuMjI4LS40NjkgMS42OTcgMEwxMCA4LjE4M2wyLjY1MS0zLjAzMWMuNDY5LS40NjkgMS4yMjgtLjQ2OSAxLjY5NyAwIC40NjkuNDY5LjQ2OSAxLjIyOSAwIDEuNjk3bC0yLjc1OCAzLjE1MiAyLjc1OCAzLjE1Yy40NjkuNDY5LjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvc3ZnPlxuKVxuXG5DbG9zZS5wcm9wVHlwZXMgPSB7XG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgd2lkdGg6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGhlaWdodDogUHJvcFR5cGVzLnN0cmluZyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ2xvc2VcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmNvbnN0IENvcHkgPSAoeyBjbGFzc05hbWUgPSBudWxsLCB3aWR0aCA9IDE1LCBoZWlnaHQgPSAxNiwgLi4ucmVzdCB9KSA9PiAoXG4gIDxzdmdcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICB2aWV3Qm94PVwiMCAwIDE1IDE2XCJcbiAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICB3aWR0aD17d2lkdGh9XG4gICAgaGVpZ2h0PXtoZWlnaHR9XG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgey4uLnJlc3R9XG4gID5cbiAgICA8ZyB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMiwgLTEpXCI+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsPVwiI2ZmZmZmZlwiXG4gICAgICAgIGZpbGxSdWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNMiAxM2g0djFIMnYtMXptNS02SDJ2MWg1Vjd6bTIgM1Y4bC0zIDMgMyAzdi0yaDV2LTJIOXpNNC41IDlIMnYxaDIuNVY5ek0yIDEyaDIuNXYtMUgydjF6bTkgMWgxdjJjLS4wMi4yOC0uMTEuNTItLjMuNy0uMTkuMTgtLjQyLjI4LS43LjNIMWMtLjU1IDAtMS0uNDUtMS0xVjRjMC0uNTUuNDUtMSAxLTFoM2MwLTEuMTEuODktMiAyLTIgMS4xMSAwIDIgLjg5IDIgMmgzYy41NSAwIDEgLjQ1IDEgMXY1aC0xVjZIMXY5aDEwdi0yek0yIDVoOGMwLS41NS0uNDUtMS0xLTFIOGMtLjU1IDAtMS0uNDUtMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxLS40NSAxLTEgMUgzYy0uNTUgMC0xIC40NS0xIDF6XCJcbiAgICAgID48L3BhdGg+XG4gICAgPC9nPlxuICA8L3N2Zz5cbilcblxuQ29weS5wcm9wVHlwZXMgPSB7XG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgd2lkdGg6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGhlaWdodDogUHJvcFR5cGVzLnN0cmluZyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29weVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuY29uc3QgTG9jayA9ICh7IGNsYXNzTmFtZSA9IG51bGwsIHdpZHRoID0gMjAsIGhlaWdodCA9IDIwLCAuLi5yZXN0IH0pID0+IChcbiAgPHN2Z1xuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIHdpZHRoPXt3aWR0aH1cbiAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICB7Li4ucmVzdH1cbiAgPlxuICAgIDxwYXRoIGQ9XCJNMTUuOCA4SDE0VjUuNkMxNCAyLjcwMyAxMi42NjUgMSAxMCAxIDcuMzM0IDEgNiAyLjcwMyA2IDUuNlY4SDRjLS41NTMgMC0xIC42NDYtMSAxLjE5OVYxN2MwIC41NDkuNDI4IDEuMTM5Ljk1MSAxLjMwN2wxLjE5Ny4zODdDNS42NzIgMTguODYxIDYuNTUgMTkgNy4xIDE5aDUuOGMuNTQ5IDAgMS40MjgtLjEzOSAxLjk1MS0uMzA3bDEuMTk2LS4zODdjLjUyNC0uMTY3Ljk1My0uNzU3Ljk1My0xLjMwNlY5LjE5OUMxNyA4LjY0NiAxNi4zNTIgOCAxNS44IDh6TTEyIDhIOFY1LjE5OUM4IDMuNzU0IDguNzk3IDMgMTAgM2MxLjIwMyAwIDIgLjc1NCAyIDIuMTk5Vjh6XCIgLz5cbiAgPC9zdmc+XG4pXG5cbkxvY2sucHJvcFR5cGVzID0ge1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHdpZHRoOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBoZWlnaHQ6IFByb3BUeXBlcy5zdHJpbmcsXG59XG5cbmV4cG9ydCBkZWZhdWx0IExvY2tcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmNvbnN0IFVubG9jayA9ICh7IGNsYXNzTmFtZSA9IG51bGwsIHdpZHRoID0gMjAsIGhlaWdodCA9IDIwLCAuLi5yZXN0IH0pID0+IChcbiAgPHN2Z1xuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIHdpZHRoPXt3aWR0aH1cbiAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICB7Li4ucmVzdH1cbiAgPlxuICAgIDxwYXRoIGQ9XCJNMTUuOCA4SDE0VjUuNkMxNCAyLjcwMyAxMi42NjUgMSAxMCAxIDcuMzM0IDEgNiAyLjcwMyA2IDUuNlY2aDJ2LS44MDFDOCAzLjc1NCA4Ljc5NyAzIDEwIDNjMS4yMDMgMCAyIC43NTQgMiAyLjE5OVY4SDRjLS41NTMgMC0xIC42NDYtMSAxLjE5OVYxN2MwIC41NDkuNDI4IDEuMTM5Ljk1MSAxLjMwN2wxLjE5Ny4zODdDNS42NzIgMTguODYxIDYuNTUgMTkgNy4xIDE5aDUuOGMuNTQ5IDAgMS40MjgtLjEzOSAxLjk1MS0uMzA3bDEuMTk2LS4zODdjLjUyNC0uMTY3Ljk1My0uNzU3Ljk1My0xLjMwNlY5LjE5OUMxNyA4LjY0NiAxNi4zNTIgOCAxNS44IDh6XCI+PC9wYXRoPlxuICA8L3N2Zz5cbilcblxuVW5sb2NrLnByb3BUeXBlcyA9IHtcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB3aWR0aDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaGVpZ2h0OiBQcm9wVHlwZXMuc3RyaW5nLFxufVxuXG5leHBvcnQgZGVmYXVsdCBVbmxvY2tcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBBcnJvd1VwSWNvbiBmcm9tIFwiLi9jb21wb25lbnRzL2Fycm93LXVwXCJcbmltcG9ydCBBcnJvd0Rvd25JY29uIGZyb20gXCIuL2NvbXBvbmVudHMvYXJyb3ctZG93blwiXG5pbXBvcnQgQXJyb3dJY29uIGZyb20gXCIuL2NvbXBvbmVudHMvYXJyb3dcIlxuaW1wb3J0IENsb3NlSWNvbiBmcm9tIFwiLi9jb21wb25lbnRzL2Nsb3NlXCJcbmltcG9ydCBDb3B5SWNvbiBmcm9tIFwiLi9jb21wb25lbnRzL2NvcHlcIlxuaW1wb3J0IExvY2tJY29uIGZyb20gXCIuL2NvbXBvbmVudHMvbG9ja1wiXG5pbXBvcnQgVW5sb2NrSWNvbiBmcm9tIFwiLi9jb21wb25lbnRzL3VubG9ja1wiXG5cbmNvbnN0IEljb25zUGx1Z2luID0gKCkgPT4gKHtcbiAgY29tcG9uZW50czoge1xuICAgIEFycm93VXBJY29uLFxuICAgIEFycm93RG93bkljb24sXG4gICAgQXJyb3dJY29uLFxuICAgIENsb3NlSWNvbixcbiAgICBDb3B5SWNvbixcbiAgICBMb2NrSWNvbixcbiAgICBVbmxvY2tJY29uLFxuICB9LFxufSlcblxuZXhwb3J0IGRlZmF1bHQgSWNvbnNQbHVnaW5cbiIsImltcG9ydCB7IG5vcm1hbGl6ZUFycmF5IH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuXG5leHBvcnQgY29uc3QgVVBEQVRFX0xBWU9VVCA9IFwibGF5b3V0X3VwZGF0ZV9sYXlvdXRcIlxuZXhwb3J0IGNvbnN0IFVQREFURV9GSUxURVIgPSBcImxheW91dF91cGRhdGVfZmlsdGVyXCJcbmV4cG9ydCBjb25zdCBVUERBVEVfTU9ERSA9IFwibGF5b3V0X3VwZGF0ZV9tb2RlXCJcbmV4cG9ydCBjb25zdCBTSE9XID0gXCJsYXlvdXRfc2hvd1wiXG5cbi8vIGV4cG9ydCBjb25zdCBPTkxZX1NIT1cgPSBcImxheW91dF9vbmx5X3Nob3dcIlxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlTGF5b3V0KGxheW91dCkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9MQVlPVVQsXG4gICAgcGF5bG9hZDogbGF5b3V0XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUZpbHRlcihmaWx0ZXIpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBVUERBVEVfRklMVEVSLFxuICAgIHBheWxvYWQ6IGZpbHRlclxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG93KHRoaW5nLCBzaG93bj10cnVlKSB7XG4gIHRoaW5nID0gbm9ybWFsaXplQXJyYXkodGhpbmcpXG4gIHJldHVybiB7XG4gICAgdHlwZTogU0hPVyxcbiAgICBwYXlsb2FkOiB7dGhpbmcsIHNob3dufVxuICB9XG59XG5cbi8vIFNpbXBsZSBzdHJpbmcga2V5LXN0b3JlLCB1c2VkIGZvclxuZXhwb3J0IGZ1bmN0aW9uIGNoYW5nZU1vZGUodGhpbmcsIG1vZGU9XCJcIikge1xuICB0aGluZyA9IG5vcm1hbGl6ZUFycmF5KHRoaW5nKVxuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9NT0RFLFxuICAgIHBheWxvYWQ6IHt0aGluZywgbW9kZX1cbiAgfVxufVxuIiwiaW1wb3J0IHsgZnJvbUpTIH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQge1xuICBVUERBVEVfTEFZT1VULFxuICBVUERBVEVfRklMVEVSLFxuICBVUERBVEVfTU9ERSxcbiAgU0hPV1xufSBmcm9tIFwiLi9hY3Rpb25zXCJcblxuZXhwb3J0IGRlZmF1bHQge1xuXG4gIFtVUERBVEVfTEFZT1VUXTogKHN0YXRlLCBhY3Rpb24pID0+IHN0YXRlLnNldChcImxheW91dFwiLCBhY3Rpb24ucGF5bG9hZCksXG5cbiAgW1VQREFURV9GSUxURVJdOiAoc3RhdGUsIGFjdGlvbikgPT4gc3RhdGUuc2V0KFwiZmlsdGVyXCIsIGFjdGlvbi5wYXlsb2FkKSxcblxuICBbU0hPV106IChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgaXNTaG93biA9IGFjdGlvbi5wYXlsb2FkLnNob3duXG4gICAgLy8gVGhpcyBpcyBvbmUgd2F5IHRvIHNlcmlhbGl6ZSBhbiBhcnJheSwgYW5vdGhlciAocHJlZmVycmVkKSBpcyB0byBjb252ZXJ0IHRvIGpzb24tcG9pbnRlclxuICAgIC8vIFRPRE86IHVzZSBqc29uLXBvaW50ZXIgc2VyaWxpemF0aW9uIGluc3RlYWQgb2YgZnJvbUpTKC4uLiksIGZvciBwZXJmb3JtYW5jZVxuICAgIGNvbnN0IHRoaW5nVG9TaG93ID0gZnJvbUpTKGFjdGlvbi5wYXlsb2FkLnRoaW5nKVxuICAgIC8vIFRoaXMgaXMgYSBtYXAgb2YgcGF0aHMgdG8gYm9vbHNcbiAgICAvLyBlZzogW29uZSwgdHdvXSA9PiB0cnVlXG4gICAgLy8gZWc6IFtvbmVdID0+IGZhbHNlXG4gICAgcmV0dXJuIHN0YXRlLnVwZGF0ZShcInNob3duXCIsIGZyb21KUyh7fSksIGEgPT4gYS5zZXQodGhpbmdUb1Nob3csIGlzU2hvd24pKVxuICB9LFxuXG4gIFtVUERBVEVfTU9ERV06IChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgbGV0IHRoaW5nID0gYWN0aW9uLnBheWxvYWQudGhpbmdcbiAgICBsZXQgbW9kZSA9IGFjdGlvbi5wYXlsb2FkLm1vZGVcbiAgICByZXR1cm4gc3RhdGUuc2V0SW4oW1wibW9kZXNcIl0uY29uY2F0KHRoaW5nKSwgKG1vZGUgfHwgXCJcIikgKyBcIlwiKVxuICB9XG5cbn1cbiIsImltcG9ydCB7IGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSBcInJlc2VsZWN0XCJcbmltcG9ydCB7IG5vcm1hbGl6ZUFycmF5IH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuaW1wb3J0IHsgZnJvbUpTIH0gZnJvbSBcImltbXV0YWJsZVwiXG5cbmNvbnN0IHN0YXRlID0gc3RhdGUgPT4gc3RhdGVcblxuZXhwb3J0IGNvbnN0IGN1cnJlbnQgPSBzdGF0ZSA9PiBzdGF0ZS5nZXQoXCJsYXlvdXRcIilcblxuZXhwb3J0IGNvbnN0IGN1cnJlbnRGaWx0ZXIgPSBzdGF0ZSA9PiBzdGF0ZS5nZXQoXCJmaWx0ZXJcIilcblxuZXhwb3J0IGNvbnN0IGlzU2hvd24gPSAoc3RhdGUsIHRoaW5nLCBkZWYpID0+IHtcbiAgdGhpbmcgPSBub3JtYWxpemVBcnJheSh0aGluZylcbiAgcmV0dXJuIHN0YXRlLmdldChcInNob3duXCIsIGZyb21KUyh7fSkpLmdldChmcm9tSlModGhpbmcpLCBkZWYpXG59XG5cbmV4cG9ydCBjb25zdCB3aGF0TW9kZSA9IChzdGF0ZSwgdGhpbmcsIGRlZj1cIlwiKSA9PiB7XG4gIHRoaW5nID0gbm9ybWFsaXplQXJyYXkodGhpbmcpXG4gIHJldHVybiBzdGF0ZS5nZXRJbihbXCJtb2Rlc1wiLCAuLi50aGluZ10sIGRlZilcbn1cblxuZXhwb3J0IGNvbnN0IHNob3dTdW1tYXJ5ID0gY3JlYXRlU2VsZWN0b3IoXG4gIHN0YXRlLFxuICBzdGF0ZSA9PiAhaXNTaG93bihzdGF0ZSwgXCJlZGl0b3JcIilcbilcbiIsIlxuZXhwb3J0IGNvbnN0IHRhZ2dlZE9wZXJhdGlvbnMgPSAob3JpU2VsZWN0b3IsIHN5c3RlbSkgPT4gKHN0YXRlLCAuLi5hcmdzKSA9PiB7XG4gIGxldCB0YWdnZWRPcHMgPSBvcmlTZWxlY3RvcihzdGF0ZSwgLi4uYXJncylcblxuICBjb25zdCB7IGZuLCBsYXlvdXRTZWxlY3RvcnMsIGdldENvbmZpZ3MgfSA9IHN5c3RlbS5nZXRTeXN0ZW0oKVxuICBjb25zdCBjb25maWdzID0gZ2V0Q29uZmlncygpXG4gIGNvbnN0IHsgbWF4RGlzcGxheWVkVGFncyB9ID0gY29uZmlnc1xuXG4gIC8vIEZpbHRlciwgaWYgcmVxdWVzdGVkXG4gIGxldCBmaWx0ZXIgPSBsYXlvdXRTZWxlY3RvcnMuY3VycmVudEZpbHRlcigpXG4gIGlmIChmaWx0ZXIpIHtcbiAgICBpZiAoZmlsdGVyICE9PSB0cnVlKSB7XG4gICAgICB0YWdnZWRPcHMgPSBmbi5vcHNGaWx0ZXIodGFnZ2VkT3BzLCBmaWx0ZXIpXG4gICAgfVxuICB9XG4gIC8vIExpbWl0IHRvIFttYXhdIGl0ZW1zLCBpZiBzcGVjaWZpZWRcbiAgaWYgKG1heERpc3BsYXllZFRhZ3MgPj0gMCkge1xuICAgIHRhZ2dlZE9wcyA9IHRhZ2dlZE9wcy5zbGljZSgwLCBtYXhEaXNwbGF5ZWRUYWdzKVxuICB9XG5cbiAgcmV0dXJuIHRhZ2dlZE9wc1xufVxuIiwiaW1wb3J0IHJlZHVjZXJzIGZyb20gXCIuL3JlZHVjZXJzXCJcbmltcG9ydCAqIGFzIGFjdGlvbnMgZnJvbSBcIi4vYWN0aW9uc1wiXG5pbXBvcnQgKiBhcyBzZWxlY3RvcnMgZnJvbSBcIi4vc2VsZWN0b3JzXCJcbmltcG9ydCAqIGFzIHdyYXBTZWxlY3RvcnMgZnJvbSBcIi4vc3BlYy1leHRlbnNpb25zL3dyYXAtc2VsZWN0b3JcIlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHtcbiAgICBzdGF0ZVBsdWdpbnM6IHtcbiAgICAgIGxheW91dDoge1xuICAgICAgICByZWR1Y2VycyxcbiAgICAgICAgYWN0aW9ucyxcbiAgICAgICAgc2VsZWN0b3JzXG4gICAgICB9LFxuICAgICAgc3BlYzoge1xuICAgICAgICB3cmFwU2VsZWN0b3JzXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoe2NvbmZpZ3N9KSB7XG5cbiAgY29uc3QgbGV2ZWxzID0ge1xuICAgIFwiZGVidWdcIjogMCxcbiAgICBcImluZm9cIjogMSxcbiAgICBcImxvZ1wiOiAyLFxuICAgIFwid2FyblwiOiAzLFxuICAgIFwiZXJyb3JcIjogNFxuICB9XG5cbiAgY29uc3QgZ2V0TGV2ZWwgPSAobGV2ZWwpID0+IGxldmVsc1tsZXZlbF0gfHwgLTFcblxuICBsZXQgeyBsb2dMZXZlbCB9ID0gY29uZmlnc1xuICBsZXQgbG9nTGV2ZWxJbnQgPSBnZXRMZXZlbChsb2dMZXZlbClcblxuICBmdW5jdGlvbiBsb2cobGV2ZWwsIC4uLmFyZ3MpIHtcbiAgICBpZihnZXRMZXZlbChsZXZlbCkgPj0gbG9nTGV2ZWxJbnQpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGVbbGV2ZWxdKC4uLmFyZ3MpXG4gIH1cblxuICBsb2cud2FybiA9IGxvZy5iaW5kKG51bGwsIFwid2FyblwiKVxuICBsb2cuZXJyb3IgPSBsb2cuYmluZChudWxsLCBcImVycm9yXCIpXG4gIGxvZy5pbmZvID0gbG9nLmJpbmQobnVsbCwgXCJpbmZvXCIpXG4gIGxvZy5kZWJ1ZyA9IGxvZy5iaW5kKG51bGwsIFwiZGVidWdcIilcblxuICByZXR1cm4geyByb290SW5qZWN0czogeyBsb2cgfSB9XG59XG4iLCJsZXQgZW5nYWdlZCA9IGZhbHNlXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuXG4gIHJldHVybiB7XG4gICAgc3RhdGVQbHVnaW5zOiB7XG4gICAgICBzcGVjOiB7XG4gICAgICAgIHdyYXBBY3Rpb25zOiB7XG4gICAgICAgICAgdXBkYXRlU3BlYzogKG9yaSkgPT4gKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgIGVuZ2FnZWQgPSB0cnVlXG4gICAgICAgICAgICByZXR1cm4gb3JpKC4uLmFyZ3MpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB1cGRhdGVKc29uU3BlYzogKG9yaSwgc3lzdGVtKSA9PiAoLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2IgPSBzeXN0ZW0uZ2V0Q29uZmlncygpLm9uQ29tcGxldGVcbiAgICAgICAgICAgIGlmKGVuZ2FnZWQgJiYgdHlwZW9mIGNiID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgLy8gY2FsbCBgb25Db21wbGV0ZWAgb24gbmV4dCB0aWNrLCB3aGljaCBhbGxvd3MgUmVhY3QgdG9cbiAgICAgICAgICAgICAgLy8gcmVjb25jaWxlIHRoZSBET00gYmVmb3JlIHdlIG5vdGlmeSB0aGUgdXNlclxuICAgICAgICAgICAgICBzZXRUaW1lb3V0KGNiLCAwKVxuICAgICAgICAgICAgICBlbmdhZ2VkID0gZmFsc2VcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG9yaSguLi5hcmdzKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgTGlzdCwgTWFwIH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgd2luIGZyb20gXCIuLi8uLi93aW5kb3dcIlxuXG5cbi8qKlxuICogaWYgZHVwbGljYXRlIGtleSBuYW1lIGV4aXN0ZWQgZnJvbSBGb3JtRGF0YSBlbnRyaWVzLFxuICogd2UgbXV0YXRlZCB0aGUga2V5IG5hbWUgYnkgYXBwZW5kaW5nIGEgaGFzaElkeFxuICogQHBhcmFtIHtTdHJpbmd9IGsgLSBwb3NzaWJseSBtdXRhdGVkIGtleSBuYW1lXG4gKiBAcmV0dXJuIHtTdHJpbmd9IC0gc3JjIGtleSBuYW1lXG4gKi9cbmNvbnN0IGV4dHJhY3RLZXkgPSAoaykgPT4ge1xuICBjb25zdCBoYXNoSWR4ID0gXCJfKipbXVwiXG4gIGlmIChrLmluZGV4T2YoaGFzaElkeCkgPCAwKSB7XG4gICAgcmV0dXJuIGtcbiAgfVxuICByZXR1cm4gay5zcGxpdChoYXNoSWR4KVswXS50cmltKClcbn1cblxuY29uc3QgZXNjYXBlU2hlbGwgPSAoc3RyKSA9PiB7XG4gIGlmIChzdHIgPT09IFwiLWQgXCIpIHtcbiAgICByZXR1cm4gc3RyXG4gIH1cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtZXNjYXBlXG4gIGlmICghL15bX1xcLy1dL2cudGVzdChzdHIpKVxuICAgIHJldHVybiAoXCInXCIgKyBzdHJcbiAgICAgIC5yZXBsYWNlKC8nL2csIFwiJ1xcXFwnJ1wiKSArIFwiJ1wiKVxuICBlbHNlXG4gICAgcmV0dXJuIHN0clxufVxuXG5jb25zdCBlc2NhcGVDTUQgPSAoc3RyKSA9PiB7XG4gIHN0ciA9IHN0clxuICAgIC5yZXBsYWNlKC9cXF4vZywgXCJeXlwiKVxuICAgIC5yZXBsYWNlKC9cXFxcXCIvZywgXCJcXFxcXFxcXFxcXCJcIilcbiAgICAucmVwbGFjZSgvXCIvZywgXCJcXFwiXFxcIlwiKVxuICAgIC5yZXBsYWNlKC9cXG4vZywgXCJeXFxuXCIpXG4gIGlmIChzdHIgPT09IFwiLWQgXCIpIHtcbiAgICByZXR1cm4gc3RyXG4gICAgICAucmVwbGFjZSgvLWQgL2csIFwiLWQgXlxcblwiKVxuICB9XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWVzY2FwZVxuICBpZiAoIS9eW19cXC8tXS9nLnRlc3Qoc3RyKSlcbiAgICByZXR1cm4gXCJcXFwiXCIgKyBzdHIgKyBcIlxcXCJcIlxuICBlbHNlXG4gICAgcmV0dXJuIHN0clxufVxuXG5jb25zdCBlc2NhcGVQb3dlcnNoZWxsID0gKHN0cikgPT4ge1xuICBpZiAoc3RyID09PSBcIi1kIFwiKSB7XG4gICAgcmV0dXJuIHN0clxuICB9XG4gIGlmICgvXFxuLy50ZXN0KHN0cikpIHtcbiAgICBjb25zdCBlc2NhcGVkID0gc3RyLnJlcGxhY2UoL2AvZywgXCJgYFwiKS5yZXBsYWNlKC9cXCQvZywgXCJgJFwiKVxuICAgIHJldHVybiBgQFwiXFxuJHtlc2NhcGVkfVxcblwiQGBcbiAgfVxuICBpZiAoIS9eW19cXC8tXS8udGVzdChzdHIpKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdXNlbGVzcy1lc2NhcGVcbiAgICBjb25zdCBlc2NhcGVkID0gc3RyLnJlcGxhY2UoLycvZywgXCInJ1wiKVxuICAgIHJldHVybiBgJyR7ZXNjYXBlZH0nYFxuICB9XG4gIHJldHVybiBzdHJcbn1cblxuZnVuY3Rpb24gZ2V0U3RyaW5nQm9keU9mTWFwKHJlcXVlc3QpIHtcbiAgbGV0IGN1cmxpZnlUb0pvaW4gPSBbXVxuICBmb3IgKGxldCBbaywgdl0gb2YgcmVxdWVzdC5nZXQoXCJib2R5XCIpLmVudHJ5U2VxKCkpIHtcbiAgICBsZXQgZXh0cmFjdGVkS2V5ID0gZXh0cmFjdEtleShrKVxuICAgIGlmICh2IGluc3RhbmNlb2Ygd2luLkZpbGUpIHtcbiAgICAgIGN1cmxpZnlUb0pvaW4ucHVzaChgICBcIiR7ZXh0cmFjdGVkS2V5fVwiOiB7XFxuICAgIFwibmFtZVwiOiBcIiR7di5uYW1lfVwiJHt2LnR5cGUgPyBgLFxcbiAgICBcInR5cGVcIjogXCIke3YudHlwZX1cImAgOiBcIlwifVxcbiAgfWApXG4gICAgfSBlbHNlIHtcbiAgICAgIGN1cmxpZnlUb0pvaW4ucHVzaChgICBcIiR7ZXh0cmFjdGVkS2V5fVwiOiAke0pTT04uc3RyaW5naWZ5KHYsIG51bGwsIDIpLnJlcGxhY2UoLyhcXHJcXG58XFxyfFxcbikvZywgXCJcXG4gIFwiKX1gKVxuICAgIH1cbiAgfVxuICByZXR1cm4gYHtcXG4ke2N1cmxpZnlUb0pvaW4uam9pbihcIixcXG5cIil9XFxufWBcbn1cblxuY29uc3QgY3VybGlmeSA9IChyZXF1ZXN0LCBlc2NhcGUsIG5ld0xpbmUsIGV4dCA9IFwiXCIpID0+IHtcbiAgbGV0IGlzTXVsdGlwYXJ0Rm9ybURhdGFSZXF1ZXN0ID0gZmFsc2VcbiAgbGV0IGN1cmxpZmllZCA9IFwiXCJcbiAgY29uc3QgYWRkV29yZHMgPSAoLi4uYXJncykgPT4gY3VybGlmaWVkICs9IFwiIFwiICsgYXJncy5tYXAoZXNjYXBlKS5qb2luKFwiIFwiKVxuICBjb25zdCBhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2UgPSAoLi4uYXJncykgPT4gY3VybGlmaWVkICs9IGFyZ3MubWFwKGVzY2FwZSkuam9pbihcIiBcIilcbiAgY29uc3QgYWRkTmV3TGluZSA9ICgpID0+IGN1cmxpZmllZCArPSBgICR7bmV3TGluZX1gXG4gIGNvbnN0IGFkZEluZGVudCA9IChsZXZlbCA9IDEpID0+IGN1cmxpZmllZCArPSBcIiAgXCIucmVwZWF0KGxldmVsKVxuICBsZXQgaGVhZGVycyA9IHJlcXVlc3QuZ2V0KFwiaGVhZGVyc1wiKVxuICBjdXJsaWZpZWQgKz0gXCJjdXJsXCIgKyBleHRcblxuICBjb25zdCBjdXJsT3B0aW9ucyA9IHJlcXVlc3QuZ2V0KFwiY3VybE9wdGlvbnNcIilcbiAgaWYgKExpc3QuaXNMaXN0KGN1cmxPcHRpb25zKSAmJiAhY3VybE9wdGlvbnMuaXNFbXB0eSgpKSB7XG4gICAgYWRkV29yZHMoLi4ucmVxdWVzdC5nZXQoXCJjdXJsT3B0aW9uc1wiKSlcbiAgfVxuXG4gIGFkZFdvcmRzKFwiLVhcIiwgcmVxdWVzdC5nZXQoXCJtZXRob2RcIikpXG5cbiAgYWRkTmV3TGluZSgpXG4gIGFkZEluZGVudCgpXG4gIGFkZFdvcmRzV2l0aG91dExlYWRpbmdTcGFjZShgJHtyZXF1ZXN0LmdldChcInVybFwiKX1gKVxuXG4gIGlmIChoZWFkZXJzICYmIGhlYWRlcnMuc2l6ZSkge1xuICAgIGZvciAobGV0IHAgb2YgcmVxdWVzdC5nZXQoXCJoZWFkZXJzXCIpLmVudHJpZXMoKSkge1xuICAgICAgYWRkTmV3TGluZSgpXG4gICAgICBhZGRJbmRlbnQoKVxuICAgICAgbGV0IFtoLCB2XSA9IHBcbiAgICAgIGFkZFdvcmRzV2l0aG91dExlYWRpbmdTcGFjZShcIi1IXCIsIGAke2h9OiAke3Z9YClcbiAgICAgIGlzTXVsdGlwYXJ0Rm9ybURhdGFSZXF1ZXN0ID0gaXNNdWx0aXBhcnRGb3JtRGF0YVJlcXVlc3QgfHwgL15jb250ZW50LXR5cGUkL2kudGVzdChoKSAmJiAvXm11bHRpcGFydFxcL2Zvcm0tZGF0YSQvaS50ZXN0KHYpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgYm9keSA9IHJlcXVlc3QuZ2V0KFwiYm9keVwiKVxuICBpZiAoYm9keSkge1xuICAgIGlmIChpc011bHRpcGFydEZvcm1EYXRhUmVxdWVzdCAmJiBbXCJQT1NUXCIsIFwiUFVUXCIsIFwiUEFUQ0hcIl0uaW5jbHVkZXMocmVxdWVzdC5nZXQoXCJtZXRob2RcIikpKSB7XG4gICAgICBmb3IgKGxldCBbaywgdl0gb2YgYm9keS5lbnRyeVNlcSgpKSB7XG4gICAgICAgIGxldCBleHRyYWN0ZWRLZXkgPSBleHRyYWN0S2V5KGspXG4gICAgICAgIGFkZE5ld0xpbmUoKVxuICAgICAgICBhZGRJbmRlbnQoKVxuICAgICAgICBhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2UoXCItRlwiKVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTd2FnZ2VyQ2xpZW50IHByb2R1Y2VzIHNwZWNpYWxpemVkIHN1Yi1jbGFzcyBvZiBGaWxlIGNsYXNzLCB0aGF0IG9ubHlcbiAgICAgICAgICogYWNjZXB0cyBzdHJpbmcgZGF0YSBhbmQgcmV0YWluIHRoaXMgZGF0YSBpbiBgZGF0YWBcbiAgICAgICAgICogcHVibGljIHByb3BlcnR5IHRocm91Z2hvdXQgdGhlIGxpZmVjeWNsZSBvZiBpdHMgaW5zdGFuY2VzLlxuICAgICAgICAgKlxuICAgICAgICAgKiBUaGlzIHN1Yi1jbGFzcyBpcyBleGNsdXNpdmVseSB1c2VkIG9ubHkgd2hlbiBFbmNvZGluZyBPYmplY3RcbiAgICAgICAgICogaXMgZGVmaW5lZCB3aXRoaW4gdGhlIE1lZGlhIFR5cGUgT2JqZWN0IChPcGVuQVBJIDMueC55KS5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh2IGluc3RhbmNlb2Ygd2luLkZpbGUgJiYgdHlwZW9mIHYudmFsdWVPZigpID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgYWRkV29yZHMoYCR7ZXh0cmFjdGVkS2V5fT0ke3YuZGF0YX0ke3YudHlwZSA/IGA7dHlwZT0ke3YudHlwZX1gIDogXCJcIn1gKVxuICAgICAgICB9IGVsc2UgaWYgKHYgaW5zdGFuY2VvZiB3aW4uRmlsZSkge1xuICAgICAgICAgIGFkZFdvcmRzKGAke2V4dHJhY3RlZEtleX09QCR7di5uYW1lfSR7di50eXBlID8gYDt0eXBlPSR7di50eXBlfWAgOiBcIlwifWApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWRkV29yZHMoYCR7ZXh0cmFjdGVkS2V5fT0ke3Z9YClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZihib2R5IGluc3RhbmNlb2Ygd2luLkZpbGUpIHtcbiAgICAgIGFkZE5ld0xpbmUoKVxuICAgICAgYWRkSW5kZW50KClcbiAgICAgIGFkZFdvcmRzV2l0aG91dExlYWRpbmdTcGFjZShgLS1kYXRhLWJpbmFyeSAnQCR7Ym9keS5uYW1lfSdgKVxuICAgIH0gZWxzZSB7XG4gICAgICBhZGROZXdMaW5lKClcbiAgICAgIGFkZEluZGVudCgpXG4gICAgICBhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2UoXCItZCBcIilcbiAgICAgIGxldCByZXFCb2R5ID0gYm9keVxuICAgICAgaWYgKCFNYXAuaXNNYXAocmVxQm9keSkpIHtcbiAgICAgICAgaWYgKHR5cGVvZiByZXFCb2R5ICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgcmVxQm9keSA9IEpTT04uc3RyaW5naWZ5KHJlcUJvZHkpXG4gICAgICAgIH1cbiAgICAgICAgYWRkV29yZHNXaXRob3V0TGVhZGluZ1NwYWNlKHJlcUJvZHkpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhZGRXb3Jkc1dpdGhvdXRMZWFkaW5nU3BhY2UoZ2V0U3RyaW5nQm9keU9mTWFwKHJlcXVlc3QpKVxuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIGlmICghYm9keSAmJiByZXF1ZXN0LmdldChcIm1ldGhvZFwiKSA9PT0gXCJQT1NUXCIpIHtcbiAgICBhZGROZXdMaW5lKClcbiAgICBhZGRJbmRlbnQoKVxuICAgIGFkZFdvcmRzV2l0aG91dExlYWRpbmdTcGFjZShcIi1kICcnXCIpXG4gIH1cblxuICByZXR1cm4gY3VybGlmaWVkXG59XG5cbmV4cG9ydCBjb25zdCByZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX3Bvd2Vyc2hlbGwgPSAocmVxdWVzdCkgPT4ge1xuICByZXR1cm4gY3VybGlmeShyZXF1ZXN0LCBlc2NhcGVQb3dlcnNoZWxsLCBcImBcXG5cIiwgXCIuZXhlXCIpXG59XG5cbmV4cG9ydCBjb25zdCByZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX2Jhc2ggPSAocmVxdWVzdCkgPT4ge1xuICByZXR1cm4gY3VybGlmeShyZXF1ZXN0LCBlc2NhcGVTaGVsbCwgXCJcXFxcXFxuXCIpXG59XG5cbmV4cG9ydCBjb25zdCByZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX2NtZCA9IChyZXF1ZXN0KSA9PiB7XG4gIHJldHVybiBjdXJsaWZ5KHJlcXVlc3QsIGVzY2FwZUNNRCwgXCJeXFxuXCIpXG59XG4iLCJpbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gXCJyZXNlbGVjdFwiXG5pbXBvcnQgeyBNYXAgfSBmcm9tIFwiaW1tdXRhYmxlXCJcblxuY29uc3Qgc3RhdGUgPSBzdGF0ZSA9PiBzdGF0ZSB8fCBNYXAoKVxuXG5leHBvcnQgY29uc3QgZ2V0R2VuZXJhdG9ycyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzdGF0ZSxcbiAgc3RhdGUgPT4ge1xuICAgIGNvbnN0IGxhbmd1YWdlS2V5cyA9IHN0YXRlXG4gICAgICAuZ2V0KFwibGFuZ3VhZ2VzXCIpXG4gICAgY29uc3QgZ2VuZXJhdG9ycyA9IHN0YXRlXG4gICAgICAuZ2V0KFwiZ2VuZXJhdG9yc1wiLCBNYXAoKSlcbiAgICBpZighbGFuZ3VhZ2VLZXlzIHx8IGxhbmd1YWdlS2V5cy5pc0VtcHR5KCkpIHtcbiAgICAgIHJldHVybiBnZW5lcmF0b3JzXG4gICAgfVxuICAgIHJldHVybiBnZW5lcmF0b3JzXG4gICAgICAuZmlsdGVyKCh2LCBrZXkpID0+IGxhbmd1YWdlS2V5cy5pbmNsdWRlcyhrZXkpKVxuICB9XG4pXG5cbmV4cG9ydCBjb25zdCBnZXRTbmlwcGV0R2VuZXJhdG9ycyA9IChzdGF0ZSkgPT4gKHsgZm4gfSkgPT4ge1xuICBjb25zdCBnZXRHZW5GbiA9IChrZXkpID0+IGZuW2ByZXF1ZXN0U25pcHBldEdlbmVyYXRvcl8ke2tleX1gXVxuICByZXR1cm4gZ2V0R2VuZXJhdG9ycyhzdGF0ZSlcbiAgICAubWFwKChnZW4sIGtleSkgPT4ge1xuICAgICAgY29uc3QgZ2VuRm4gPSBnZXRHZW5GbihrZXkpXG4gICAgICBpZih0eXBlb2YgZ2VuRm4gIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZ2VuLnNldChcImZuXCIsIGdlbkZuKVxuICAgIH0pXG4gICAgLmZpbHRlcih2ID0+IHYpXG59XG5cbmV4cG9ydCBjb25zdCBnZXRBY3RpdmVMYW5ndWFnZSA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzdGF0ZSxcbiAgc3RhdGUgPT4gc3RhdGVcbiAgICAuZ2V0KFwiYWN0aXZlTGFuZ3VhZ2VcIilcbilcblxuZXhwb3J0IGNvbnN0IGdldERlZmF1bHRFeHBhbmRlZCA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzdGF0ZSxcbiAgc3RhdGUgPT4gc3RhdGVcbiAgICAuZ2V0KFwiZGVmYXVsdEV4cGFuZGVkXCIpXG4pXG4iLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImNsYXNzbmFtZXNcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdC1jb3B5LXRvLWNsaXBib2FyZFwiKTsiLCJpbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHsgQ29weVRvQ2xpcGJvYXJkIH0gZnJvbSBcInJlYWN0LWNvcHktdG8tY2xpcGJvYXJkXCJcblxuY29uc3Qgc3R5bGUgPSB7XG4gIGN1cnNvcjogXCJwb2ludGVyXCIsXG4gIGxpbmVIZWlnaHQ6IDEsXG4gIGRpc3BsYXk6IFwiaW5saW5lLWZsZXhcIixcbiAgYmFja2dyb3VuZENvbG9yOiBcInJnYigyNTAsIDI1MCwgMjUwKVwiLFxuICBwYWRkaW5nQm90dG9tOiBcIjBcIixcbiAgcGFkZGluZ1RvcDogXCIwXCIsXG4gIGJvcmRlcjogXCIxcHggc29saWQgcmdiKDUxLCA1MSwgNTEpXCIsXG4gIGJvcmRlclJhZGl1czogXCI0cHggNHB4IDAgMFwiLFxuICBib3hTaGFkb3c6IFwibm9uZVwiLFxuICBib3JkZXJCb3R0b206IFwibm9uZVwiXG59XG5cbmNvbnN0IGFjdGl2ZVN0eWxlID0ge1xuICBjdXJzb3I6IFwicG9pbnRlclwiLFxuICBsaW5lSGVpZ2h0OiAxLFxuICBkaXNwbGF5OiBcImlubGluZS1mbGV4XCIsXG4gIGJhY2tncm91bmRDb2xvcjogXCJyZ2IoNTEsIDUxLCA1MSlcIixcbiAgYm94U2hhZG93OiBcIm5vbmVcIixcbiAgYm9yZGVyOiBcIjFweCBzb2xpZCByZ2IoNTEsIDUxLCA1MSlcIixcbiAgcGFkZGluZ0JvdHRvbTogXCIwXCIsXG4gIHBhZGRpbmdUb3A6IFwiMFwiLFxuICBib3JkZXJSYWRpdXM6IFwiNHB4IDRweCAwIDBcIixcbiAgbWFyZ2luVG9wOiBcIi01cHhcIixcbiAgbWFyZ2luUmlnaHQ6IFwiLTVweFwiLFxuICBtYXJnaW5MZWZ0OiBcIi01cHhcIixcbiAgekluZGV4OiBcIjk5OTlcIixcbiAgYm9yZGVyQm90dG9tOiBcIm5vbmVcIlxufVxuXG5jb25zdCBSZXF1ZXN0U25pcHBldHMgPSAoeyByZXF1ZXN0LCByZXF1ZXN0U25pcHBldHNTZWxlY3RvcnMsIGdldENvbXBvbmVudCB9KSA9PiB7XG4gIGNvbnN0IHJvb3RSZWYgPSB1c2VSZWYobnVsbClcblxuICBjb25zdCBBcnJvd0ljb24gPSBnZXRDb21wb25lbnQoXCJBcnJvd1VwSWNvblwiKVxuICBjb25zdCBBcnJvd0Rvd25JY29uID0gZ2V0Q29tcG9uZW50KFwiQXJyb3dEb3duSWNvblwiKVxuICBjb25zdCBTeW50YXhIaWdobGlnaHRlciA9IGdldENvbXBvbmVudChcIlN5bnRheEhpZ2hsaWdodGVyXCIsIHRydWUpXG5cbiAgY29uc3QgW2FjdGl2ZUxhbmd1YWdlLCBzZXRBY3RpdmVMYW5ndWFnZV0gPSB1c2VTdGF0ZShyZXF1ZXN0U25pcHBldHNTZWxlY3RvcnMuZ2V0U25pcHBldEdlbmVyYXRvcnMoKT8ua2V5U2VxKCkuZmlyc3QoKSlcbiAgY29uc3QgW2lzRXhwYW5kZWQsIHNldElzRXhwYW5kZWRdID0gdXNlU3RhdGUocmVxdWVzdFNuaXBwZXRzU2VsZWN0b3JzPy5nZXREZWZhdWx0RXhwYW5kZWQoKSlcblxuICBjb25zdCBzbmlwcGV0R2VuZXJhdG9ycyA9IHJlcXVlc3RTbmlwcGV0c1NlbGVjdG9ycy5nZXRTbmlwcGV0R2VuZXJhdG9ycygpXG4gIGNvbnN0IGFjdGl2ZUdlbmVyYXRvciA9IHNuaXBwZXRHZW5lcmF0b3JzLmdldChhY3RpdmVMYW5ndWFnZSlcbiAgY29uc3Qgc25pcHBldCA9IGFjdGl2ZUdlbmVyYXRvci5nZXQoXCJmblwiKShyZXF1ZXN0KVxuXG4gIGNvbnN0IGhhbmRsZUdlbkNoYW5nZSA9IChrZXkpID0+IHtcbiAgICBjb25zdCBuZWVkc0NoYW5nZSA9IGFjdGl2ZUxhbmd1YWdlICE9PSBrZXlcbiAgICBpZiAobmVlZHNDaGFuZ2UpIHtcbiAgICAgIHNldEFjdGl2ZUxhbmd1YWdlKGtleSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVTZXRJc0V4cGFuZGVkID0gKCkgPT4ge1xuICAgIHNldElzRXhwYW5kZWQoIWlzRXhwYW5kZWQpXG4gIH1cblxuICBjb25zdCBoYW5kbGVHZXRCdG5TdHlsZSA9IChrZXkpID0+IHtcbiAgICBpZiAoa2V5ID09PSBhY3RpdmVMYW5ndWFnZSkge1xuICAgICAgcmV0dXJuIGFjdGl2ZVN0eWxlXG4gICAgfVxuICAgIHJldHVybiBzdHlsZVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUHJldmVudFlTY3JvbGxpbmdCZXlvbmRFbGVtZW50ID0gKGUpID0+IHtcbiAgICBjb25zdCB7IHRhcmdldCwgZGVsdGFZIH0gPSBlXG4gICAgY29uc3QgeyBzY3JvbGxIZWlnaHQ6IGNvbnRlbnRIZWlnaHQsIG9mZnNldEhlaWdodDogdmlzaWJsZUhlaWdodCwgc2Nyb2xsVG9wIH0gPSB0YXJnZXRcbiAgICBjb25zdCBzY3JvbGxPZmZzZXQgPSB2aXNpYmxlSGVpZ2h0ICsgc2Nyb2xsVG9wXG4gICAgY29uc3QgaXNFbGVtZW50U2Nyb2xsYWJsZSA9IGNvbnRlbnRIZWlnaHQgPiB2aXNpYmxlSGVpZ2h0XG4gICAgY29uc3QgaXNTY3JvbGxpbmdQYXN0VG9wID0gc2Nyb2xsVG9wID09PSAwICYmIGRlbHRhWSA8IDBcbiAgICBjb25zdCBpc1Njcm9sbGluZ1Bhc3RCb3R0b20gPSBzY3JvbGxPZmZzZXQgPj0gY29udGVudEhlaWdodCAmJiBkZWx0YVkgPiAwXG5cbiAgICBpZiAoaXNFbGVtZW50U2Nyb2xsYWJsZSAmJiAoaXNTY3JvbGxpbmdQYXN0VG9wIHx8IGlzU2Nyb2xsaW5nUGFzdEJvdHRvbSkpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZG9JdCA9ICgpID0+IHtcblxuICAgIH1cbiAgICBkb0l0KClcbiAgfSwgW10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gQXJyYXlcbiAgICAgIC5mcm9tKHJvb3RSZWYuY3VycmVudC5jaGlsZE5vZGVzKVxuICAgICAgLmZpbHRlcihub2RlID0+ICEhbm9kZS5ub2RlVHlwZSAmJiBub2RlLmNsYXNzTGlzdD8uY29udGFpbnMoXCJjdXJsLWNvbW1hbmRcIikpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgY2hpbGROb2Rlcy5mb3JFYWNoKG5vZGUgPT4gbm9kZS5hZGRFdmVudExpc3RlbmVyKFwibW91c2V3aGVlbFwiLCBoYW5kbGVQcmV2ZW50WVNjcm9sbGluZ0JleW9uZEVsZW1lbnQsIHsgcGFzc2l2ZTogZmFsc2UgfSkpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICBjaGlsZE5vZGVzLmZvckVhY2gobm9kZSA9PiBub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXdoZWVsXCIsIGhhbmRsZVByZXZlbnRZU2Nyb2xsaW5nQmV5b25kRWxlbWVudCkpXG4gICAgfVxuICB9LCBbcmVxdWVzdF0pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInJlcXVlc3Qtc25pcHBldHNcIiByZWY9e3Jvb3RSZWZ9PlxuICAgICAgPGRpdiBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIsIGRpc3BsYXk6IFwiZmxleFwiLCBqdXN0aWZ5Q29udGVudDogXCJmbGV4LXN0YXJ0XCIsIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsIG1hcmdpbkJvdHRvbTogXCIxNXB4XCIgfX0+XG4gICAgICAgIDxoNFxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVNldElzRXhwYW5kZWQoKX1cbiAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XG4gICAgICAgID5TbmlwcGV0czwvaDQ+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVTZXRJc0V4cGFuZGVkKCl9XG4gICAgICAgICAgc3R5bGU9e3sgYm9yZGVyOiBcIm5vbmVcIiwgYmFja2dyb3VuZDogXCJub25lXCIgfX1cbiAgICAgICAgICB0aXRsZT17aXNFeHBhbmRlZCA/IFwiQ29sbGFwc2Ugb3BlcmF0aW9uXCIgOiBcIkV4cGFuZCBvcGVyYXRpb25cIn1cbiAgICAgICAgPlxuICAgICAgICAgIHtpc0V4cGFuZGVkID8gPEFycm93RG93bkljb24gY2xhc3NOYW1lPVwiYXJyb3dcIiB3aWR0aD1cIjEwXCIgaGVpZ2h0PVwiMTBcIiAvPiA6IDxBcnJvd0ljb24gY2xhc3NOYW1lPVwiYXJyb3dcIiB3aWR0aD1cIjEwXCIgaGVpZ2h0PVwiMTBcIiAvPn1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIHtcbiAgICAgICAgaXNFeHBhbmRlZCAmJiA8ZGl2IGNsYXNzTmFtZT1cImN1cmwtY29tbWFuZFwiPlxuICAgICAgICAgIDxkaXYgc3R5bGU9e3sgcGFkZGluZ0xlZnQ6IFwiMTVweFwiLCBwYWRkaW5nUmlnaHQ6IFwiMTBweFwiLCB3aWR0aDogXCIxMDAlXCIsIGRpc3BsYXk6IFwiZmxleFwiIH19PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBzbmlwcGV0R2VuZXJhdG9ycy5lbnRyeVNlcSgpLm1hcCgoW2tleSwgZ2VuXSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcImJ0blwiLCB7XCJhY3RpdmVcIjoga2V5ID09PSBhY3RpdmVMYW5ndWFnZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e2hhbmRsZUdldEJ0blN0eWxlKGtleSl9XG4gICAgICAgICAgICAgICAgICAgIGtleT17a2V5fVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVHZW5DaGFuZ2Uoa2V5KX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGg0IHN0eWxlPXtrZXkgPT09IGFjdGl2ZUxhbmd1YWdlID8geyBjb2xvcjogXCJ3aGl0ZVwiLCB9IDoge319PntnZW4uZ2V0KFwidGl0bGVcIil9PC9oND5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvcHktdG8tY2xpcGJvYXJkXCI+XG4gICAgICAgICAgICA8Q29weVRvQ2xpcGJvYXJkIHRleHQ9e3NuaXBwZXR9PlxuICAgICAgICAgICAgICA8YnV0dG9uIC8+XG4gICAgICAgICAgICA8L0NvcHlUb0NsaXBib2FyZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPFN5bnRheEhpZ2hsaWdodGVyXG4gICAgICAgICAgICAgIGxhbmd1YWdlPXthY3RpdmVHZW5lcmF0b3IuZ2V0KFwic3ludGF4XCIpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjdXJsIG1pY3JvbGlnaHRcIlxuICAgICAgICAgICAgICByZW5kZXJQbGFpblRleHQ9eyh7IGNoaWxkcmVuLCBQbGFpblRleHRWaWV3ZXIgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxQbGFpblRleHRWaWV3ZXIgY2xhc3NOYW1lPVwiY3VybFwiPntjaGlsZHJlbn08L1BsYWluVGV4dFZpZXdlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3NuaXBwZXR9XG4gICAgICAgICAgICA8L1N5bnRheEhpZ2hsaWdodGVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5SZXF1ZXN0U25pcHBldHMucHJvcFR5cGVzID0ge1xuICByZXF1ZXN0OiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIHJlcXVlc3RTbmlwcGV0c1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHJlcXVlc3RTbmlwcGV0c0FjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFJlcXVlc3RTbmlwcGV0c1xuIiwiaW1wb3J0IHsgcmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfY3VybF9iYXNoLCByZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX2NtZCwgcmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfY3VybF9wb3dlcnNoZWxsIH0gZnJvbSBcIi4vZm5cIlxuaW1wb3J0ICogYXMgc2VsZWN0b3JzIGZyb20gXCIuL3NlbGVjdG9yc1wiXG5pbXBvcnQgUmVxdWVzdFNuaXBwZXRzIGZyb20gXCIuL3JlcXVlc3Qtc25pcHBldHNcIlxuXG5leHBvcnQgZGVmYXVsdCAoKSA9PiB7XG4gIHJldHVybiB7XG4gICAgY29tcG9uZW50czoge1xuICAgICAgUmVxdWVzdFNuaXBwZXRzXG4gICAgfSxcbiAgICBmbjoge1xuICAgICAgcmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfY3VybF9iYXNoLFxuICAgICAgcmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfY3VybF9jbWQsXG4gICAgICByZXF1ZXN0U25pcHBldEdlbmVyYXRvcl9jdXJsX3Bvd2Vyc2hlbGwsXG4gICAgfSxcbiAgICBzdGF0ZVBsdWdpbnM6IHtcbiAgICAgIHJlcXVlc3RTbmlwcGV0czoge1xuICAgICAgICBzZWxlY3RvcnNcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuaW1wb3J0IEltIGZyb20gXCJpbW11dGFibGVcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNb2RlbENvbGxhcHNlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjb2xsYXBzZWRDb250ZW50OiBQcm9wVHlwZXMuYW55LFxuICAgIGV4cGFuZGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLmFueSxcbiAgICB0aXRsZTogUHJvcFR5cGVzLmVsZW1lbnQsXG4gICAgbW9kZWxOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Ub2dnbGU6IFByb3BUeXBlcy5mdW5jLFxuICAgIGhpZGVTZWxmT25FeHBhbmQ6IFByb3BUeXBlcy5ib29sLFxuICAgIGxheW91dEFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbGF5b3V0U2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgc3BlY1BhdGg6IEltUHJvcFR5cGVzLmxpc3QuaXNSZXF1aXJlZCxcbiAgfVxuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgY29sbGFwc2VkQ29udGVudDogXCJ7Li4ufVwiLFxuICAgIGV4cGFuZGVkOiBmYWxzZSxcbiAgICB0aXRsZTogbnVsbCxcbiAgICBvblRvZ2dsZTogKCkgPT4ge30sXG4gICAgaGlkZVNlbGZPbkV4cGFuZDogZmFsc2UsXG4gICAgc3BlY1BhdGg6IEltLkxpc3QoW10pLFxuICB9XG5cbiAgY29uc3RydWN0b3IocHJvcHMsIGNvbnRleHQpIHtcbiAgICBzdXBlcihwcm9wcywgY29udGV4dClcblxuICAgIGxldCB7IGV4cGFuZGVkLCBjb2xsYXBzZWRDb250ZW50IH0gPSB0aGlzLnByb3BzXG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgZXhwYW5kZWQgOiBleHBhbmRlZCxcbiAgICAgIGNvbGxhcHNlZENvbnRlbnQ6IGNvbGxhcHNlZENvbnRlbnQgfHwgTW9kZWxDb2xsYXBzZS5kZWZhdWx0UHJvcHMuY29sbGFwc2VkQ29udGVudFxuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaGlkZVNlbGZPbkV4cGFuZCwgZXhwYW5kZWQsIG1vZGVsTmFtZSB9ID0gdGhpcy5wcm9wc1xuICAgIGlmKGhpZGVTZWxmT25FeHBhbmQgJiYgZXhwYW5kZWQpIHtcbiAgICAgIC8vIFdlIGp1c3QgbW91bnRlZCBwcmUtZXhwYW5kZWQsIGFuZCB3ZSB3b24ndCBiZSBnb2luZyBiYWNrLi5cbiAgICAgIC8vIFNvIGxldCdzIGdpdmUgb3VyIHBhcmVudCBhbiBgb25Ub2dnbGVgIGNhbGwuLlxuICAgICAgLy8gU2luY2Ugb3RoZXJ3aXNlIGl0IHdpbGwgbmV2ZXIgYmUgY2FsbGVkLlxuICAgICAgdGhpcy5wcm9wcy5vblRvZ2dsZShtb2RlbE5hbWUsIGV4cGFuZGVkKVxuICAgIH1cbiAgfVxuXG4gIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcyl7XG4gICAgaWYodGhpcy5wcm9wcy5leHBhbmRlZCAhPT0gbmV4dFByb3BzLmV4cGFuZGVkKXtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7ZXhwYW5kZWQ6IG5leHRQcm9wcy5leHBhbmRlZH0pXG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlQ29sbGFwc2VkPSgpPT57XG4gICAgaWYodGhpcy5wcm9wcy5vblRvZ2dsZSl7XG4gICAgICB0aGlzLnByb3BzLm9uVG9nZ2xlKHRoaXMucHJvcHMubW9kZWxOYW1lLCF0aGlzLnN0YXRlLmV4cGFuZGVkKVxuICAgIH1cblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgZXhwYW5kZWQ6ICF0aGlzLnN0YXRlLmV4cGFuZGVkXG4gICAgfSlcbiAgfVxuXG4gIG9uTG9hZCA9IChyZWYpID0+IHtcbiAgICBpZiAocmVmICYmIHRoaXMucHJvcHMubGF5b3V0U2VsZWN0b3JzKSB7XG4gICAgICBjb25zdCBzY3JvbGxUb0tleSA9IHRoaXMucHJvcHMubGF5b3V0U2VsZWN0b3JzLmdldFNjcm9sbFRvS2V5KClcblxuICAgICAgaWYoIEltLmlzKHNjcm9sbFRvS2V5LCB0aGlzLnByb3BzLnNwZWNQYXRoKSApIHRoaXMudG9nZ2xlQ29sbGFwc2VkKClcbiAgICAgIHRoaXMucHJvcHMubGF5b3V0QWN0aW9ucy5yZWFkeVRvU2Nyb2xsKHRoaXMucHJvcHMuc3BlY1BhdGgsIHJlZi5wYXJlbnRFbGVtZW50KVxuICAgIH1cbiAgfVxuXG4gIHJlbmRlciAoKSB7XG4gICAgY29uc3QgeyB0aXRsZSwgY2xhc3NlcyB9ID0gdGhpcy5wcm9wc1xuXG4gICAgaWYodGhpcy5zdGF0ZS5leHBhbmRlZCApIHtcbiAgICAgIGlmKHRoaXMucHJvcHMuaGlkZVNlbGZPbkV4cGFuZCkge1xuICAgICAgICByZXR1cm4gPHNwYW4gY2xhc3NOYW1lPXtjbGFzc2VzIHx8IFwiXCJ9PlxuICAgICAgICAgIHt0aGlzLnByb3BzLmNoaWxkcmVufVxuICAgICAgICA8L3NwYW4+XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxzcGFuIGNsYXNzTmFtZT17Y2xhc3NlcyB8fCBcIlwifSByZWY9e3RoaXMub25Mb2FkfT5cbiAgICAgICAgPGJ1dHRvbiBhcmlhLWV4cGFuZGVkPXt0aGlzLnN0YXRlLmV4cGFuZGVkfSBjbGFzc05hbWU9XCJtb2RlbC1ib3gtY29udHJvbFwiIG9uQ2xpY2s9e3RoaXMudG9nZ2xlQ29sbGFwc2VkfT5cbiAgICAgICAgICB7IHRpdGxlICYmIDxzcGFuIGNsYXNzTmFtZT1cInBvaW50ZXJcIj57dGl0bGV9PC9zcGFuPiB9XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXsgXCJtb2RlbC10b2dnbGVcIiArICggdGhpcy5zdGF0ZS5leHBhbmRlZCA/IFwiXCIgOiBcIiBjb2xsYXBzZWRcIiApIH0+PC9zcGFuPlxuICAgICAgICAgIHsgIXRoaXMuc3RhdGUuZXhwYW5kZWQgJiYgPHNwYW4+e3RoaXMuc3RhdGUuY29sbGFwc2VkQ29udGVudH08L3NwYW4+IH1cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgeyB0aGlzLnN0YXRlLmV4cGFuZGVkICYmIHRoaXMucHJvcHMuY2hpbGRyZW4gfVxuICAgICAgPC9zcGFuPlxuICAgIClcbiAgfVxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8sIHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuaW1wb3J0IGN4IGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCByYW5kb21CeXRlcyBmcm9tIFwicmFuZG9tYnl0ZXNcIlxuXG5jb25zdCB1c2VQcmV2aW91cyA9ICh2YWx1ZSkgPT4ge1xuICBjb25zdCByZWYgPSB1c2VSZWYoKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJlZi5jdXJyZW50ID0gdmFsdWVcbiAgfSlcbiAgcmV0dXJuIHJlZi5jdXJyZW50XG59XG5cbmNvbnN0IHVzZVRhYnMgPSAoeyBpbml0aWFsVGFiLCBpc0V4ZWN1dGUsIHNjaGVtYSwgZXhhbXBsZSB9KSA9PiB7XG4gIGNvbnN0IHRhYnMgPSB1c2VNZW1vKCgpID0+ICh7IGV4YW1wbGU6IFwiZXhhbXBsZVwiLCBtb2RlbDogXCJtb2RlbFwiIH0pLCBbXSlcbiAgY29uc3QgYWxsb3dlZFRhYnMgPSB1c2VNZW1vKCgpID0+IE9iamVjdC5rZXlzKHRhYnMpLCBbdGFic10pXG4gIGNvbnN0IHRhYiA9XG4gICAgIWFsbG93ZWRUYWJzLmluY2x1ZGVzKGluaXRpYWxUYWIpIHx8ICFzY2hlbWEgfHwgaXNFeGVjdXRlXG4gICAgICA/IHRhYnMuZXhhbXBsZVxuICAgICAgOiBpbml0aWFsVGFiXG4gIGNvbnN0IHByZXZJc0V4ZWN1dGUgPSB1c2VQcmV2aW91cyhpc0V4ZWN1dGUpXG4gIGNvbnN0IFthY3RpdmVUYWIsIHNldEFjdGl2ZVRhYl0gPSB1c2VTdGF0ZSh0YWIpXG4gIGNvbnN0IGhhbmRsZVRhYkNoYW5nZSA9IHVzZUNhbGxiYWNrKChlKSA9PiB7XG4gICAgc2V0QWN0aXZlVGFiKGUudGFyZ2V0LmRhdGFzZXQubmFtZSlcbiAgfSwgW10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocHJldklzRXhlY3V0ZSAmJiAhaXNFeGVjdXRlICYmIGV4YW1wbGUpIHtcbiAgICAgIHNldEFjdGl2ZVRhYih0YWJzLmV4YW1wbGUpXG4gICAgfVxuICB9LCBbcHJldklzRXhlY3V0ZSwgaXNFeGVjdXRlLCBleGFtcGxlXSlcblxuICByZXR1cm4geyBhY3RpdmVUYWIsIG9uVGFiQ2hhbmdlOiBoYW5kbGVUYWJDaGFuZ2UsIHRhYnMgfVxufVxuXG5jb25zdCBNb2RlbEV4YW1wbGUgPSAoe1xuICBzY2hlbWEsXG4gIGV4YW1wbGUsXG4gIGlzRXhlY3V0ZSA9IGZhbHNlLFxuICBzcGVjUGF0aCxcbiAgaW5jbHVkZVdyaXRlT25seSA9IGZhbHNlLFxuICBpbmNsdWRlUmVhZE9ubHkgPSBmYWxzZSxcbiAgZ2V0Q29tcG9uZW50LFxuICBnZXRDb25maWdzLFxuICBzcGVjU2VsZWN0b3JzLFxufSkgPT4ge1xuICBjb25zdCB7IGRlZmF1bHRNb2RlbFJlbmRlcmluZywgZGVmYXVsdE1vZGVsRXhwYW5kRGVwdGggfSA9IGdldENvbmZpZ3MoKVxuICBjb25zdCBNb2RlbFdyYXBwZXIgPSBnZXRDb21wb25lbnQoXCJNb2RlbFdyYXBwZXJcIilcbiAgY29uc3QgSGlnaGxpZ2h0Q29kZSA9IGdldENvbXBvbmVudChcIkhpZ2hsaWdodENvZGVcIiwgdHJ1ZSlcbiAgY29uc3QgZXhhbXBsZVRhYklkID0gcmFuZG9tQnl0ZXMoNSkudG9TdHJpbmcoXCJiYXNlNjRcIilcbiAgY29uc3QgZXhhbXBsZVBhbmVsSWQgPSByYW5kb21CeXRlcyg1KS50b1N0cmluZyhcImJhc2U2NFwiKVxuICBjb25zdCBtb2RlbFRhYklkID0gcmFuZG9tQnl0ZXMoNSkudG9TdHJpbmcoXCJiYXNlNjRcIilcbiAgY29uc3QgbW9kZWxQYW5lbElkID0gcmFuZG9tQnl0ZXMoNSkudG9TdHJpbmcoXCJiYXNlNjRcIilcbiAgY29uc3QgaXNPQVMzID0gc3BlY1NlbGVjdG9ycy5pc09BUzMoKVxuICBjb25zdCB7IGFjdGl2ZVRhYiwgdGFicywgb25UYWJDaGFuZ2UgfSA9IHVzZVRhYnMoe1xuICAgIGluaXRpYWxUYWI6IGRlZmF1bHRNb2RlbFJlbmRlcmluZyxcbiAgICBpc0V4ZWN1dGUsXG4gICAgc2NoZW1hLFxuICAgIGV4YW1wbGUsXG4gIH0pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGVsLWV4YW1wbGVcIj5cbiAgICAgIDx1bCBjbGFzc05hbWU9XCJ0YWJcIiByb2xlPVwidGFibGlzdFwiPlxuICAgICAgICA8bGlcbiAgICAgICAgICBjbGFzc05hbWU9e2N4KFwidGFiaXRlbVwiLCB7IGFjdGl2ZTogYWN0aXZlVGFiID09PSB0YWJzLmV4YW1wbGUgfSl9XG4gICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgID5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBhcmlhLWNvbnRyb2xzPXtleGFtcGxlUGFuZWxJZH1cbiAgICAgICAgICAgIGFyaWEtc2VsZWN0ZWQ9e2FjdGl2ZVRhYiA9PT0gdGFicy5leGFtcGxlfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwidGFibGlua3NcIlxuICAgICAgICAgICAgZGF0YS1uYW1lPVwiZXhhbXBsZVwiXG4gICAgICAgICAgICBpZD17ZXhhbXBsZVRhYklkfVxuICAgICAgICAgICAgb25DbGljaz17b25UYWJDaGFuZ2V9XG4gICAgICAgICAgICByb2xlPVwidGFiXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aXNFeGVjdXRlID8gXCJFZGl0IFZhbHVlXCIgOiBcIkV4YW1wbGUgVmFsdWVcIn1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9saT5cbiAgICAgICAge3NjaGVtYSAmJiAoXG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICBjbGFzc05hbWU9e2N4KFwidGFiaXRlbVwiLCB7IGFjdGl2ZTogYWN0aXZlVGFiID09PSB0YWJzLm1vZGVsIH0pfVxuICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPXttb2RlbFBhbmVsSWR9XG4gICAgICAgICAgICAgIGFyaWEtc2VsZWN0ZWQ9e2FjdGl2ZVRhYiA9PT0gdGFicy5tb2RlbH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChcInRhYmxpbmtzXCIsIHsgaW5hY3RpdmU6IGlzRXhlY3V0ZSB9KX1cbiAgICAgICAgICAgICAgZGF0YS1uYW1lPVwibW9kZWxcIlxuICAgICAgICAgICAgICBpZD17bW9kZWxUYWJJZH1cbiAgICAgICAgICAgICAgb25DbGljaz17b25UYWJDaGFuZ2V9XG4gICAgICAgICAgICAgIHJvbGU9XCJ0YWJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aXNPQVMzID8gXCJTY2hlbWFcIiA6IFwiTW9kZWxcIn1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICl9XG4gICAgICA8L3VsPlxuICAgICAge2FjdGl2ZVRhYiA9PT0gdGFicy5leGFtcGxlICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGFyaWEtaGlkZGVuPXthY3RpdmVUYWIgIT09IHRhYnMuZXhhbXBsZX1cbiAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e2V4YW1wbGVUYWJJZH1cbiAgICAgICAgICBkYXRhLW5hbWU9XCJleGFtcGxlUGFuZWxcIlxuICAgICAgICAgIGlkPXtleGFtcGxlUGFuZWxJZH1cbiAgICAgICAgICByb2xlPVwidGFicGFuZWxcIlxuICAgICAgICAgIHRhYkluZGV4PVwiMFwiXG4gICAgICAgID5cbiAgICAgICAgICB7ZXhhbXBsZSA/IChcbiAgICAgICAgICAgIGV4YW1wbGVcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPEhpZ2hsaWdodENvZGU+KG5vIGV4YW1wbGUgYXZhaWxhYmxlPC9IaWdobGlnaHRDb2RlPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cblxuICAgICAge2FjdGl2ZVRhYiA9PT0gdGFicy5tb2RlbCAmJiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9XCJtb2RlbC1jb250YWluZXJcIlxuICAgICAgICAgIGFyaWEtaGlkZGVuPXthY3RpdmVUYWIgPT09IHRhYnMuZXhhbXBsZX1cbiAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e21vZGVsVGFiSWR9XG4gICAgICAgICAgZGF0YS1uYW1lPVwibW9kZWxQYW5lbFwiXG4gICAgICAgICAgaWQ9e21vZGVsUGFuZWxJZH1cbiAgICAgICAgICByb2xlPVwidGFicGFuZWxcIlxuICAgICAgICAgIHRhYkluZGV4PVwiMFwiXG4gICAgICAgID5cbiAgICAgICAgICA8TW9kZWxXcmFwcGVyXG4gICAgICAgICAgICBzY2hlbWE9e3NjaGVtYX1cbiAgICAgICAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgICAgICAgICAgZ2V0Q29uZmlncz17Z2V0Q29uZmlnc31cbiAgICAgICAgICAgIHNwZWNTZWxlY3RvcnM9e3NwZWNTZWxlY3RvcnN9XG4gICAgICAgICAgICBleHBhbmREZXB0aD17ZGVmYXVsdE1vZGVsRXhwYW5kRGVwdGh9XG4gICAgICAgICAgICBzcGVjUGF0aD17c3BlY1BhdGh9XG4gICAgICAgICAgICBpbmNsdWRlUmVhZE9ubHk9e2luY2x1ZGVSZWFkT25seX1cbiAgICAgICAgICAgIGluY2x1ZGVXcml0ZU9ubHk9e2luY2x1ZGVXcml0ZU9ubHl9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApXG59XG5cbk1vZGVsRXhhbXBsZS5wcm9wVHlwZXMgPSB7XG4gIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLnNoYXBlKHsgaXNPQVMzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkIH0pXG4gICAgLmlzUmVxdWlyZWQsXG4gIHNjaGVtYTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBleGFtcGxlOiBQcm9wVHlwZXMuYW55LmlzUmVxdWlyZWQsXG4gIGlzRXhlY3V0ZTogUHJvcFR5cGVzLmJvb2wsXG4gIGdldENvbmZpZ3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNwZWNQYXRoOiBJbVByb3BUeXBlcy5saXN0LmlzUmVxdWlyZWQsXG4gIGluY2x1ZGVSZWFkT25seTogUHJvcFR5cGVzLmJvb2wsXG4gIGluY2x1ZGVXcml0ZU9ubHk6IFByb3BUeXBlcy5ib29sLFxufVxuXG5leHBvcnQgZGVmYXVsdCBNb2RlbEV4YW1wbGVcbiIsImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQsIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTW9kZWxXcmFwcGVyIGV4dGVuZHMgQ29tcG9uZW50IHtcblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHNjaGVtYTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZGlzcGxheU5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZnVsbFBhdGg6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICAgIHNwZWNQYXRoOiBJbVByb3BUeXBlcy5saXN0LmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGdldENvbmZpZ3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGV4cGFuZERlcHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIGxheW91dEFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbGF5b3V0U2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgaW5jbHVkZVJlYWRPbmx5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpbmNsdWRlV3JpdGVPbmx5OiBQcm9wVHlwZXMuYm9vbCxcbiAgfVxuXG4gIG9uVG9nZ2xlID0gKG5hbWUsaXNTaG93bikgPT4ge1xuICAgIC8vIElmIHRoaXMgcHJvcCBpcyBwcmVzZW50LCB3ZSdsbCBoYXZlIGRlZXBMaW5raW5nIGZvciBpdFxuICAgIGlmKHRoaXMucHJvcHMubGF5b3V0QWN0aW9ucykge1xuICAgICAgdGhpcy5wcm9wcy5sYXlvdXRBY3Rpb25zLnNob3codGhpcy5wcm9wcy5mdWxsUGF0aCwgaXNTaG93bilcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKXtcbiAgICBsZXQgeyBnZXRDb21wb25lbnQsIGdldENvbmZpZ3MgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBNb2RlbCA9IGdldENvbXBvbmVudChcIk1vZGVsXCIpXG5cbiAgICBsZXQgZXhwYW5kZWRcbiAgICBpZih0aGlzLnByb3BzLmxheW91dFNlbGVjdG9ycykge1xuICAgICAgLy8gSWYgdGhpcyBpcyBwcm9wIGlzIHByZXNlbnQsIHdlJ2xsIGhhdmUgZGVlcExpbmtpbmcgZm9yIGl0XG4gICAgICBleHBhbmRlZCA9IHRoaXMucHJvcHMubGF5b3V0U2VsZWN0b3JzLmlzU2hvd24odGhpcy5wcm9wcy5mdWxsUGF0aClcbiAgICB9XG5cbiAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJtb2RlbC1ib3hcIj5cbiAgICAgIDxNb2RlbCB7IC4uLnRoaXMucHJvcHMgfSBnZXRDb25maWdzPXsgZ2V0Q29uZmlncyB9IGV4cGFuZGVkPXtleHBhbmRlZH0gZGVwdGg9eyAxIH0gb25Ub2dnbGU9eyB0aGlzLm9uVG9nZ2xlIH0gZXhwYW5kRGVwdGg9eyB0aGlzLnByb3BzLmV4cGFuZERlcHRoIHx8IDAgfS8+XG4gICAgPC9kaXY+XG4gIH1cbn1cbiIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwicmVhY3QtaW1tdXRhYmxlLXB1cmUtY29tcG9uZW50XCIpOyIsInZhciBfY2lyY2xlO1xuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IHJldHVybiBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gPyBPYmplY3QuYXNzaWduLmJpbmQoKSA6IGZ1bmN0aW9uIChuKSB7IGZvciAodmFyIGUgPSAxOyBlIDwgYXJndW1lbnRzLmxlbmd0aDsgZSsrKSB7IHZhciB0ID0gYXJndW1lbnRzW2VdOyBmb3IgKHZhciByIGluIHQpICh7fSkuaGFzT3duUHJvcGVydHkuY2FsbCh0LCByKSAmJiAobltyXSA9IHRbcl0pOyB9IHJldHVybiBuOyB9LCBfZXh0ZW5kcy5hcHBseShudWxsLCBhcmd1bWVudHMpOyB9XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmNvbnN0IFN2Z1JvbGxpbmdMb2FkID0gcHJvcHMgPT4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX2V4dGVuZHMoe1xuICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFxuICB3aWR0aDogMjAwLFxuICBoZWlnaHQ6IDIwMCxcbiAgY2xhc3NOYW1lOiBcInJvbGxpbmctbG9hZF9zdmdfX2xkcy1yb2xsaW5nXCIsXG4gIHByZXNlcnZlQXNwZWN0UmF0aW86IFwieE1pZFlNaWRcIixcbiAgc3R5bGU6IHtcbiAgICBiYWNrZ3JvdW5kSW1hZ2U6IFwibm9uZVwiLFxuICAgIGJhY2tncm91bmRQb3NpdGlvbjogXCJpbml0aWFsIGluaXRpYWxcIixcbiAgICBiYWNrZ3JvdW5kUmVwZWF0OiBcImluaXRpYWwgaW5pdGlhbFwiXG4gIH0sXG4gIHZpZXdCb3g6IFwiMCAwIDEwMCAxMDBcIlxufSwgcHJvcHMpLCBfY2lyY2xlIHx8IChfY2lyY2xlID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJjaXJjbGVcIiwge1xuICBjeDogNTAsXG4gIGN5OiA1MCxcbiAgcjogMzUsXG4gIGZpbGw6IFwibm9uZVwiLFxuICBzdHJva2U6IFwiIzU1NVwiLFxuICBzdHJva2VEYXNoYXJyYXk6IFwiMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4XCIsXG4gIHN0cm9rZVdpZHRoOiAxMFxufSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhbmltYXRlVHJhbnNmb3JtXCIsIHtcbiAgYXR0cmlidXRlTmFtZTogXCJ0cmFuc2Zvcm1cIixcbiAgYmVnaW46IFwiMHNcIixcbiAgY2FsY01vZGU6IFwibGluZWFyXCIsXG4gIGR1cjogXCIxc1wiLFxuICBrZXlUaW1lczogXCIwOzFcIixcbiAgcmVwZWF0Q291bnQ6IFwiaW5kZWZpbml0ZVwiLFxuICB0eXBlOiBcInJvdGF0ZVwiLFxuICB2YWx1ZXM6IFwiMCA1MCA1MDszNjAgNTAgNTBcIlxufSkpKSk7XG5leHBvcnQgZGVmYXVsdCBTdmdSb2xsaW5nTG9hZDsiLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBJbW11dGFibGVQdXJlQ29tcG9uZW50IGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHVyZS1jb21wb25lbnRcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHsgTWFwIH0gZnJvbSBcImltbXV0YWJsZVwiXG5cbmltcG9ydCBSb2xsaW5nTG9hZFNWRyBmcm9tIFwiY29yZS9hc3NldHMvcm9sbGluZy1sb2FkLnN2Z1wiXG5cbmNvbnN0IGRlY29kZVJlZk5hbWUgPSB1cmkgPT4ge1xuICBjb25zdCB1bmVzY2FwZWQgPSB1cmkucmVwbGFjZSgvfjEvZywgXCIvXCIpLnJlcGxhY2UoL34wL2csIFwiflwiKVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh1bmVzY2FwZWQpXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmVzY2FwZWRcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNb2RlbCBleHRlbmRzIEltbXV0YWJsZVB1cmVDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHNjaGVtYTogSW1Qcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGdldENvbmZpZ3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZGlzcGxheU5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgaXNSZWY6IFByb3BUeXBlcy5ib29sLFxuICAgIHJlcXVpcmVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBleHBhbmREZXB0aDogUHJvcFR5cGVzLm51bWJlcixcbiAgICBkZXB0aDogUHJvcFR5cGVzLm51bWJlcixcbiAgICBzcGVjUGF0aDogSW1Qcm9wVHlwZXMubGlzdC5pc1JlcXVpcmVkLFxuICAgIGluY2x1ZGVSZWFkT25seTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaW5jbHVkZVdyaXRlT25seTogUHJvcFR5cGVzLmJvb2wsXG4gIH1cblxuICBnZXRNb2RlbE5hbWUgPSggcmVmICk9PiB7XG4gICAgaWYgKCByZWYuaW5kZXhPZihcIiMvZGVmaW5pdGlvbnMvXCIpICE9PSAtMSApIHtcbiAgICAgIHJldHVybiBkZWNvZGVSZWZOYW1lKHJlZi5yZXBsYWNlKC9eLiojXFwvZGVmaW5pdGlvbnNcXC8vLCBcIlwiKSlcbiAgICB9XG4gICAgaWYgKCByZWYuaW5kZXhPZihcIiMvY29tcG9uZW50cy9zY2hlbWFzL1wiKSAhPT0gLTEgKSB7XG4gICAgICByZXR1cm4gZGVjb2RlUmVmTmFtZShyZWYucmVwbGFjZSgvXi4qI1xcL2NvbXBvbmVudHNcXC9zY2hlbWFzXFwvLywgXCJcIikpXG4gICAgfVxuICB9XG5cbiAgZ2V0UmVmU2NoZW1hID0oIG1vZGVsICk9PiB7XG4gICAgbGV0IHsgc3BlY1NlbGVjdG9ycyB9ID0gdGhpcy5wcm9wc1xuXG4gICAgcmV0dXJuIHNwZWNTZWxlY3RvcnMuZmluZERlZmluaXRpb24obW9kZWwpXG4gIH1cblxuICByZW5kZXIgKCkge1xuICAgIGxldCB7IGdldENvbXBvbmVudCwgZ2V0Q29uZmlncywgc3BlY1NlbGVjdG9ycywgc2NoZW1hLCByZXF1aXJlZCwgbmFtZSwgaXNSZWYsIHNwZWNQYXRoLCBkaXNwbGF5TmFtZSxcbiAgICAgIGluY2x1ZGVSZWFkT25seSwgaW5jbHVkZVdyaXRlT25seX0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgT2JqZWN0TW9kZWwgPSBnZXRDb21wb25lbnQoXCJPYmplY3RNb2RlbFwiKVxuICAgIGNvbnN0IEFycmF5TW9kZWwgPSBnZXRDb21wb25lbnQoXCJBcnJheU1vZGVsXCIpXG4gICAgY29uc3QgUHJpbWl0aXZlTW9kZWwgPSBnZXRDb21wb25lbnQoXCJQcmltaXRpdmVNb2RlbFwiKVxuICAgIGxldCB0eXBlID0gXCJvYmplY3RcIlxuICAgIGxldCAkJHJlZiA9IHNjaGVtYSAmJiBzY2hlbWEuZ2V0KFwiJCRyZWZcIilcbiAgICBsZXQgJHJlZiA9IHNjaGVtYSAmJiBzY2hlbWEuZ2V0KFwiJHJlZlwiKVxuXG4gICAgLy8gSWYgd2Ugd2VyZW4ndCBwYXNzZWQgYSBgbmFtZWAgYnV0IGhhdmUgYSByZXNvbHZlZCByZWYsIGdyYWIgdGhlIG5hbWUgZnJvbSB0aGUgcmVmXG4gICAgaWYgKCFuYW1lICYmICQkcmVmKSB7XG4gICAgICBuYW1lID0gdGhpcy5nZXRNb2RlbE5hbWUoJCRyZWYpXG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBJZiB3ZSBoYXZlIGFuIHVucmVzb2x2ZWQgcmVmLCBnZXQgdGhlIHNjaGVtYSBhbmQgbmFtZSBmcm9tIHRoZSByZWYuXG4gICAgICogSWYgdGhlIHJlZiBpcyBleHRlcm5hbCwgd2UgY2FuJ3QgcmVzb2x2ZSBpdCwgc28gd2UganVzdCBkaXNwbGF5IHRoZSByZWYgbG9jYXRpb24uXG4gICAgICogVGhpcyBpcyBmb3Igc2l0dWF0aW9ucyB3aGVyZTpcbiAgICAgKiAgLSB0aGUgcmVmIHdhcyBub3QgcmVzb2x2ZWQgYnkgU3dhZ2dlciBDbGllbnQgYmVjYXVzZSB3ZSByZWFjaGVkIHRoZSB0cmF2ZXJzYWwgZGVwdGggbGltaXRcbiAgICAgKiAgLSB3ZSBoYWQgYSBjaXJjdWxhciByZWYgaW5zaWRlIHRoZSBhbGxPZiBrZXl3b3JkXG4gICAgICovXG4gICAgaWYgKCRyZWYpIHtcbiAgICAgIGNvbnN0IHJlZk5hbWUgPSB0aGlzLmdldE1vZGVsTmFtZSgkcmVmKVxuICAgICAgY29uc3QgcmVmU2NoZW1hID0gdGhpcy5nZXRSZWZTY2hlbWEocmVmTmFtZSlcbiAgICAgIGlmIChNYXAuaXNNYXAocmVmU2NoZW1hKSkge1xuICAgICAgICBzY2hlbWEgPSByZWZTY2hlbWEubWVyZ2VEZWVwKHNjaGVtYSlcbiAgICAgICAgaWYgKCEkJHJlZikge1xuICAgICAgICAgIHNjaGVtYSA9IHNjaGVtYS5zZXQoXCIkJHJlZlwiLCAkcmVmKVxuICAgICAgICAgICQkcmVmID0gJHJlZlxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKE1hcC5pc01hcChzY2hlbWEpICYmIHNjaGVtYS5zaXplID09PSAxKSB7XG4gICAgICAgIHNjaGVtYSA9IG51bGxcbiAgICAgICAgbmFtZSA9ICRyZWZcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZighc2NoZW1hKSB7XG4gICAgICByZXR1cm4gPHNwYW4gY2xhc3NOYW1lPVwibW9kZWwgbW9kZWwtdGl0bGVcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibW9kZWwtdGl0bGVfX3RleHRcIj57IGRpc3BsYXlOYW1lIHx8IG5hbWUgfTwvc3Bhbj5cbiAgICAgICAgICAgICAgeyEkcmVmICYmIDxSb2xsaW5nTG9hZFNWRyBoZWlnaHQ9XCIyMHB4XCIgd2lkdGg9XCIyMHB4XCIgLz59XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgfVxuXG4gICAgY29uc3QgZGVwcmVjYXRlZCA9IHNwZWNTZWxlY3RvcnMuaXNPQVMzKCkgJiYgc2NoZW1hLmdldChcImRlcHJlY2F0ZWRcIilcbiAgICBpc1JlZiA9IGlzUmVmICE9PSB1bmRlZmluZWQgPyBpc1JlZiA6ICEhJCRyZWZcbiAgICB0eXBlID0gc2NoZW1hICYmIHNjaGVtYS5nZXQoXCJ0eXBlXCIpIHx8IHR5cGVcblxuICAgIHN3aXRjaCh0eXBlKSB7XG4gICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgIHJldHVybiA8T2JqZWN0TW9kZWxcbiAgICAgICAgICBjbGFzc05hbWU9XCJvYmplY3RcIiB7IC4uLnRoaXMucHJvcHMgfVxuICAgICAgICAgIHNwZWNQYXRoPXtzcGVjUGF0aH1cbiAgICAgICAgICBnZXRDb25maWdzPXsgZ2V0Q29uZmlncyB9XG4gICAgICAgICAgc2NoZW1hPXsgc2NoZW1hIH1cbiAgICAgICAgICBuYW1lPXsgbmFtZSB9XG4gICAgICAgICAgZGVwcmVjYXRlZD17ZGVwcmVjYXRlZH1cbiAgICAgICAgICBpc1JlZj17IGlzUmVmIH1cbiAgICAgICAgICBpbmNsdWRlUmVhZE9ubHkgPSB7aW5jbHVkZVJlYWRPbmx5fVxuICAgICAgICAgIGluY2x1ZGVXcml0ZU9ubHkgPSB7aW5jbHVkZVdyaXRlT25seX0vPlxuICAgICAgY2FzZSBcImFycmF5XCI6XG4gICAgICAgIHJldHVybiA8QXJyYXlNb2RlbFxuICAgICAgICAgIGNsYXNzTmFtZT1cImFycmF5XCIgeyAuLi50aGlzLnByb3BzIH1cbiAgICAgICAgICBnZXRDb25maWdzPXsgZ2V0Q29uZmlncyB9XG4gICAgICAgICAgc2NoZW1hPXsgc2NoZW1hIH1cbiAgICAgICAgICBuYW1lPXsgbmFtZSB9XG4gICAgICAgICAgZGVwcmVjYXRlZD17ZGVwcmVjYXRlZH1cbiAgICAgICAgICByZXF1aXJlZD17IHJlcXVpcmVkIH1cbiAgICAgICAgICBpbmNsdWRlUmVhZE9ubHkgPSB7aW5jbHVkZVJlYWRPbmx5fVxuICAgICAgICAgIGluY2x1ZGVXcml0ZU9ubHkgPSB7aW5jbHVkZVdyaXRlT25seX0vPlxuICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgY2FzZSBcImludGVnZXJcIjpcbiAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gPFByaW1pdGl2ZU1vZGVsXG4gICAgICAgICAgeyAuLi50aGlzLnByb3BzIH1cbiAgICAgICAgICBnZXRDb21wb25lbnQ9eyBnZXRDb21wb25lbnQgfVxuICAgICAgICAgIGdldENvbmZpZ3M9eyBnZXRDb25maWdzIH1cbiAgICAgICAgICBzY2hlbWE9eyBzY2hlbWEgfVxuICAgICAgICAgIG5hbWU9eyBuYW1lIH1cbiAgICAgICAgICBkZXByZWNhdGVkPXtkZXByZWNhdGVkfVxuICAgICAgICAgIHJlcXVpcmVkPXsgcmVxdWlyZWQgfS8+XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBJbSwgeyBNYXAgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG4vKiBlc2xpbnQtZGlzYWJsZSAgcmVhY3QvanN4LW5vLWJpbmQgKi9cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTW9kZWxzIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgc3BlY0FjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBsYXlvdXRTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbGF5b3V0QWN0aW9uczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBnZXRDb25maWdzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG4gIH1cblxuICBnZXRTY2hlbWFCYXNlUGF0aCA9ICgpID0+IHtcbiAgICBjb25zdCBpc09BUzMgPSB0aGlzLnByb3BzLnNwZWNTZWxlY3RvcnMuaXNPQVMzKClcbiAgICByZXR1cm4gaXNPQVMzID8gW1wiY29tcG9uZW50c1wiLCBcInNjaGVtYXNcIl0gOiBbXCJkZWZpbml0aW9uc1wiXVxuICB9XG5cbiAgZ2V0Q29sbGFwc2VkQ29udGVudCA9ICgpID0+IHtcbiAgICByZXR1cm4gXCIgXCJcbiAgfVxuXG4gIGhhbmRsZVRvZ2dsZSA9IChuYW1lLCBpc0V4cGFuZGVkKSA9PiB7XG4gICAgY29uc3QgeyBsYXlvdXRBY3Rpb25zIH0gPSB0aGlzLnByb3BzXG4gICAgbGF5b3V0QWN0aW9ucy5zaG93KFsuLi50aGlzLmdldFNjaGVtYUJhc2VQYXRoKCksIG5hbWVdLCBpc0V4cGFuZGVkKVxuICAgIGlmKGlzRXhwYW5kZWQpIHtcbiAgICAgIHRoaXMucHJvcHMuc3BlY0FjdGlvbnMucmVxdWVzdFJlc29sdmVkU3VidHJlZShbLi4udGhpcy5nZXRTY2hlbWFCYXNlUGF0aCgpLCBuYW1lXSlcbiAgICB9XG4gIH1cblxuICBvbkxvYWRNb2RlbHMgPSAocmVmKSA9PiB7XG4gICAgaWYgKHJlZikge1xuICAgICAgdGhpcy5wcm9wcy5sYXlvdXRBY3Rpb25zLnJlYWR5VG9TY3JvbGwodGhpcy5nZXRTY2hlbWFCYXNlUGF0aCgpLCByZWYpXG4gICAgfVxuICB9XG5cbiAgb25Mb2FkTW9kZWwgPSAocmVmKSA9PiB7XG4gICAgaWYgKHJlZikge1xuICAgICAgY29uc3QgbmFtZSA9IHJlZi5nZXRBdHRyaWJ1dGUoXCJkYXRhLW5hbWVcIilcbiAgICAgIHRoaXMucHJvcHMubGF5b3V0QWN0aW9ucy5yZWFkeVRvU2Nyb2xsKFsuLi50aGlzLmdldFNjaGVtYUJhc2VQYXRoKCksIG5hbWVdLCByZWYpXG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCl7XG4gICAgbGV0IHsgc3BlY1NlbGVjdG9ycywgZ2V0Q29tcG9uZW50LCBsYXlvdXRTZWxlY3RvcnMsIGxheW91dEFjdGlvbnMsIGdldENvbmZpZ3MgfSA9IHRoaXMucHJvcHNcbiAgICBsZXQgZGVmaW5pdGlvbnMgPSBzcGVjU2VsZWN0b3JzLmRlZmluaXRpb25zKClcbiAgICBsZXQgeyBkb2NFeHBhbnNpb24sIGRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aCB9ID0gZ2V0Q29uZmlncygpXG4gICAgaWYgKCFkZWZpbml0aW9ucy5zaXplIHx8IGRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aCA8IDApIHJldHVybiBudWxsXG5cbiAgICBjb25zdCBzcGVjUGF0aEJhc2UgPSB0aGlzLmdldFNjaGVtYUJhc2VQYXRoKClcbiAgICBsZXQgc2hvd01vZGVscyA9IGxheW91dFNlbGVjdG9ycy5pc1Nob3duKHNwZWNQYXRoQmFzZSwgZGVmYXVsdE1vZGVsc0V4cGFuZERlcHRoID4gMCAmJiBkb2NFeHBhbnNpb24gIT09IFwibm9uZVwiKVxuICAgIGNvbnN0IGlzT0FTMyA9IHNwZWNTZWxlY3RvcnMuaXNPQVMzKClcblxuICAgIGNvbnN0IE1vZGVsV3JhcHBlciA9IGdldENvbXBvbmVudChcIk1vZGVsV3JhcHBlclwiKVxuICAgIGNvbnN0IENvbGxhcHNlID0gZ2V0Q29tcG9uZW50KFwiQ29sbGFwc2VcIilcbiAgICBjb25zdCBNb2RlbENvbGxhcHNlID0gZ2V0Q29tcG9uZW50KFwiTW9kZWxDb2xsYXBzZVwiKVxuICAgIGNvbnN0IEp1bXBUb1BhdGggPSBnZXRDb21wb25lbnQoXCJKdW1wVG9QYXRoXCIsIHRydWUpXG4gICAgY29uc3QgQXJyb3dVcEljb24gPSBnZXRDb21wb25lbnQoXCJBcnJvd1VwSWNvblwiKVxuICAgIGNvbnN0IEFycm93RG93bkljb24gPSBnZXRDb21wb25lbnQoXCJBcnJvd0Rvd25JY29uXCIpXG5cbiAgICByZXR1cm4gPHNlY3Rpb24gY2xhc3NOYW1lPXsgc2hvd01vZGVscyA/IFwibW9kZWxzIGlzLW9wZW5cIiA6IFwibW9kZWxzXCJ9IHJlZj17dGhpcy5vbkxvYWRNb2RlbHN9PlxuICAgICAgPGg0PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17c2hvd01vZGVsc31cbiAgICAgICAgICBjbGFzc05hbWU9XCJtb2RlbHMtY29udHJvbFwiXG4gICAgICAgICAgb25DbGljaz17KCkgPT4gbGF5b3V0QWN0aW9ucy5zaG93KHNwZWNQYXRoQmFzZSwgIXNob3dNb2RlbHMpfVxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4+e2lzT0FTMyA/IFwiU2NoZW1hc1wiIDogXCJNb2RlbHNcIn08L3NwYW4+XG4gICAgICAgICAge3Nob3dNb2RlbHMgPyA8QXJyb3dVcEljb24gLz4gOiA8QXJyb3dEb3duSWNvbiAvPn1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2g0PlxuICAgICAgPENvbGxhcHNlIGlzT3BlbmVkPXtzaG93TW9kZWxzfT5cbiAgICAgICAge1xuICAgICAgICAgIGRlZmluaXRpb25zLmVudHJ5U2VxKCkubWFwKChbbmFtZV0pPT57XG5cbiAgICAgICAgICAgIGNvbnN0IGZ1bGxQYXRoID0gWy4uLnNwZWNQYXRoQmFzZSwgbmFtZV1cbiAgICAgICAgICAgIGNvbnN0IHNwZWNQYXRoID0gSW0uTGlzdChmdWxsUGF0aClcblxuICAgICAgICAgICAgY29uc3Qgc2NoZW1hVmFsdWUgPSBzcGVjU2VsZWN0b3JzLnNwZWNSZXNvbHZlZFN1YnRyZWUoZnVsbFBhdGgpXG4gICAgICAgICAgICBjb25zdCByYXdTY2hlbWFWYWx1ZSA9IHNwZWNTZWxlY3RvcnMuc3BlY0pzb24oKS5nZXRJbihmdWxsUGF0aClcblxuICAgICAgICAgICAgY29uc3Qgc2NoZW1hID0gTWFwLmlzTWFwKHNjaGVtYVZhbHVlKSA/IHNjaGVtYVZhbHVlIDogSW0uTWFwKClcbiAgICAgICAgICAgIGNvbnN0IHJhd1NjaGVtYSA9IE1hcC5pc01hcChyYXdTY2hlbWFWYWx1ZSkgPyByYXdTY2hlbWFWYWx1ZSA6IEltLk1hcCgpXG5cbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gc2NoZW1hLmdldChcInRpdGxlXCIpIHx8IHJhd1NjaGVtYS5nZXQoXCJ0aXRsZVwiKSB8fCBuYW1lXG4gICAgICAgICAgICBjb25zdCBpc1Nob3duID0gbGF5b3V0U2VsZWN0b3JzLmlzU2hvd24oZnVsbFBhdGgsIGZhbHNlKVxuXG4gICAgICAgICAgICBpZiggaXNTaG93biAmJiAoc2NoZW1hLnNpemUgPT09IDAgJiYgcmF3U2NoZW1hLnNpemUgPiAwKSApIHtcbiAgICAgICAgICAgICAgLy8gRmlyaW5nIGFuIGFjdGlvbiBpbiBhIGNvbnRhaW5lciByZW5kZXIgaXMgbm90IGdyZWF0LFxuICAgICAgICAgICAgICAvLyBidXQgaXQgd29ya3MgZm9yIG5vdy5cbiAgICAgICAgICAgICAgdGhpcy5wcm9wcy5zcGVjQWN0aW9ucy5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKGZ1bGxQYXRoKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjb250ZW50ID0gPE1vZGVsV3JhcHBlciBuYW1lPXsgbmFtZSB9XG4gICAgICAgICAgICAgIGV4cGFuZERlcHRoPXsgZGVmYXVsdE1vZGVsc0V4cGFuZERlcHRoIH1cbiAgICAgICAgICAgICAgc2NoZW1hPXsgc2NoZW1hIHx8IEltLk1hcCgpIH1cbiAgICAgICAgICAgICAgZGlzcGxheU5hbWU9e2Rpc3BsYXlOYW1lfVxuICAgICAgICAgICAgICBmdWxsUGF0aD17ZnVsbFBhdGh9XG4gICAgICAgICAgICAgIHNwZWNQYXRoPXtzcGVjUGF0aH1cbiAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXsgZ2V0Q29tcG9uZW50IH1cbiAgICAgICAgICAgICAgc3BlY1NlbGVjdG9ycz17IHNwZWNTZWxlY3RvcnMgfVxuICAgICAgICAgICAgICBnZXRDb25maWdzID0ge2dldENvbmZpZ3N9XG4gICAgICAgICAgICAgIGxheW91dFNlbGVjdG9ycyA9IHtsYXlvdXRTZWxlY3RvcnN9XG4gICAgICAgICAgICAgIGxheW91dEFjdGlvbnMgPSB7bGF5b3V0QWN0aW9uc31cbiAgICAgICAgICAgICAgaW5jbHVkZVJlYWRPbmx5ID0ge3RydWV9XG4gICAgICAgICAgICAgIGluY2x1ZGVXcml0ZU9ubHkgPSB7dHJ1ZX0vPlxuXG4gICAgICAgICAgICBjb25zdCB0aXRsZSA9IDxzcGFuIGNsYXNzTmFtZT1cIm1vZGVsLWJveFwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtb2RlbCBtb2RlbC10aXRsZVwiPlxuICAgICAgICAgICAgICAgIHtkaXNwbGF5TmFtZX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICByZXR1cm4gPGRpdiBpZD17IGBtb2RlbC0ke25hbWV9YCB9IGNsYXNzTmFtZT1cIm1vZGVsLWNvbnRhaW5lclwiIGtleT17IGBtb2RlbHMtc2VjdGlvbi0ke25hbWV9YCB9XG4gICAgICAgICAgICAgICAgICAgIGRhdGEtbmFtZT17bmFtZX0gcmVmPXt0aGlzLm9uTG9hZE1vZGVsfSA+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm1vZGVscy1qdW1wLXRvLXBhdGhcIj48SnVtcFRvUGF0aCBwYXRoPXtzcGVjUGF0aH0gLz48L3NwYW4+XG4gICAgICAgICAgICAgIDxNb2RlbENvbGxhcHNlXG4gICAgICAgICAgICAgICAgY2xhc3Nlcz1cIm1vZGVsLWJveFwiXG4gICAgICAgICAgICAgICAgY29sbGFwc2VkQ29udGVudD17dGhpcy5nZXRDb2xsYXBzZWRDb250ZW50KG5hbWUpfVxuICAgICAgICAgICAgICAgIG9uVG9nZ2xlPXt0aGlzLmhhbmRsZVRvZ2dsZX1cbiAgICAgICAgICAgICAgICB0aXRsZT17dGl0bGV9XG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU9e2Rpc3BsYXlOYW1lfVxuICAgICAgICAgICAgICAgIG1vZGVsTmFtZT17bmFtZX1cbiAgICAgICAgICAgICAgICBzcGVjUGF0aD17c3BlY1BhdGh9XG4gICAgICAgICAgICAgICAgbGF5b3V0U2VsZWN0b3JzPXtsYXlvdXRTZWxlY3RvcnN9XG4gICAgICAgICAgICAgICAgbGF5b3V0QWN0aW9ucz17bGF5b3V0QWN0aW9uc31cbiAgICAgICAgICAgICAgICBoaWRlU2VsZk9uRXhwYW5kPXt0cnVlfVxuICAgICAgICAgICAgICAgIGV4cGFuZGVkPXsgZGVmYXVsdE1vZGVsc0V4cGFuZERlcHRoID4gMCAmJiBpc1Nob3duIH1cbiAgICAgICAgICAgICAgICA+e2NvbnRlbnR9PC9Nb2RlbENvbGxhcHNlPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9KS50b0FycmF5KClcbiAgICAgICAgfVxuICAgICAgPC9Db2xsYXBzZT5cbiAgICA8L3NlY3Rpb24+XG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcblxuY29uc3QgRW51bU1vZGVsID0gKHsgdmFsdWUsIGdldENvbXBvbmVudCB9KSA9PiB7XG4gIGxldCBNb2RlbENvbGxhcHNlID0gZ2V0Q29tcG9uZW50KFwiTW9kZWxDb2xsYXBzZVwiKVxuICBsZXQgY29sbGFwc2VkQ29udGVudCA9IDxzcGFuPkFycmF5IFsgeyB2YWx1ZS5jb3VudCgpIH0gXTwvc3Bhbj5cbiAgcmV0dXJuIDxzcGFuIGNsYXNzTmFtZT1cInByb3AtZW51bVwiPlxuICAgIEVudW06PGJyIC8+XG4gICAgPE1vZGVsQ29sbGFwc2UgY29sbGFwc2VkQ29udGVudD17IGNvbGxhcHNlZENvbnRlbnQgfT5cbiAgICAgIFsgeyB2YWx1ZS5tYXAoU3RyaW5nKS5qb2luKFwiLCBcIikgfSBdXG4gICAgPC9Nb2RlbENvbGxhcHNlPlxuICA8L3NwYW4+XG59XG5FbnVtTW9kZWwucHJvcFR5cGVzID0ge1xuICB2YWx1ZTogSW1Qcm9wVHlwZXMuaXRlcmFibGUsXG4gIGdldENvbXBvbmVudDogSW1Qcm9wVHlwZXMuZnVuY1xufVxuXG5leHBvcnQgZGVmYXVsdCBFbnVtTW9kZWxcbiIsImV4cG9ydCBmdW5jdGlvbiBpc0Fic29sdXRlVXJsKHVybCkge1xuICByZXR1cm4gdXJsLm1hdGNoKC9eKD86W2Etel0rOik/XFwvXFwvL2kpIC8vIE1hdGNoZXMgaHR0cDovLywgSFRUUDovLywgaHR0cHM6Ly8sIGZ0cDovLywgLy9leGFtcGxlLmNvbSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFByb3RvY29sKHVybCkge1xuICBpZiAoIXVybC5tYXRjaCgvXlxcL1xcLy9pKSkgcmV0dXJuIHVybCAvLyBDaGVja3MgaWYgcHJvdG9jb2wgaXMgbWlzc2luZyBlLmcuIC8vZXhhbXBsZS5jb21cblxuICByZXR1cm4gYCR7d2luZG93LmxvY2F0aW9uLnByb3RvY29sfSR7dXJsfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQmFzZVVybChzZWxlY3RlZFNlcnZlciwgc3BlY1VybCkge1xuICBpZiAoIXNlbGVjdGVkU2VydmVyKSByZXR1cm4gc3BlY1VybFxuICBpZiAoaXNBYnNvbHV0ZVVybChzZWxlY3RlZFNlcnZlcikpIHJldHVybiBhZGRQcm90b2NvbChzZWxlY3RlZFNlcnZlcilcblxuICByZXR1cm4gbmV3IFVSTChzZWxlY3RlZFNlcnZlciwgc3BlY1VybCkuaHJlZlxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRVcmwodXJsLCBzcGVjVXJsLCB7IHNlbGVjdGVkU2VydmVyPVwiXCIgfSA9IHt9KSB7XG4gIGlmICghdXJsKSByZXR1cm4gdW5kZWZpbmVkXG4gIGlmIChpc0Fic29sdXRlVXJsKHVybCkpIHJldHVybiB1cmxcblxuICBjb25zdCBiYXNlVXJsID0gYnVpbGRCYXNlVXJsKHNlbGVjdGVkU2VydmVyLCBzcGVjVXJsKVxuICBpZiAoIWlzQWJzb2x1dGVVcmwoYmFzZVVybCkpIHtcbiAgICByZXR1cm4gbmV3IFVSTCh1cmwsIHdpbmRvdy5sb2NhdGlvbi5ocmVmKS5ocmVmXG4gIH1cbiAgcmV0dXJuIG5ldyBVUkwodXJsLCBiYXNlVXJsKS5ocmVmXG59XG5cbi8qKlxuICogU2FmZSB2ZXJzaW9uIG9mIGJ1aWxkVXJsIGZ1bmN0aW9uLiBgc2VsZWN0ZWRTZXJ2ZXJgIGNhbiBjb250YWluIHNlcnZlciB2YXJpYWJsZXNcbiAqIHdoaWNoIGNhbiBmYWlsIHRoZSBVUkwgcmVzb2x1dGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhZmVCdWlsZFVybCh1cmwsIHNwZWNVcmwsIHsgc2VsZWN0ZWRTZXJ2ZXI9XCJcIiB9ID0ge30pIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYnVpbGRVcmwodXJsLCBzcGVjVXJsLCB7IHNlbGVjdGVkU2VydmVyIH0pXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2FuaXRpemVVcmwodXJsKSB7XG4gIGlmICh0eXBlb2YgdXJsICE9PSBcInN0cmluZ1wiIHx8IHVybC50cmltKCkgPT09IFwiXCIpIHtcbiAgICByZXR1cm4gXCJcIlxuICB9XG5cbiAgY29uc3QgdXJsVHJpbW1lZCA9IHVybC50cmltKClcbiAgY29uc3QgYmxhbmtVUkwgPSBcImFib3V0OmJsYW5rXCJcblxuICB0cnkge1xuICAgIGNvbnN0IGJhc2UgPSBgaHR0cHM6Ly9iYXNlJHtTdHJpbmcoTWF0aC5yYW5kb20oKSkuc2xpY2UoMil9YFxuICAgIGNvbnN0IHVybE9iamVjdCA9IG5ldyBVUkwodXJsVHJpbW1lZCwgYmFzZSlcbiAgICBjb25zdCBzY2hlbWUgPSB1cmxPYmplY3QucHJvdG9jb2wuc2xpY2UoMCwgLTEpXG5cbiAgICAvLyBjaGVjayBmb3IgaW52YWxpZCBzY2hlbWVzXG4gICAgaWYgKFtcImphdmFzY3JpcHRcIiwgXCJkYXRhXCIsIFwidmJzY3JpcHRcIl0uaW5jbHVkZXMoc2NoZW1lLnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgICByZXR1cm4gYmxhbmtVUkxcbiAgICB9XG5cbiAgICAvLyByZXR1cm4gc2FuaXRpemVkIFVSSSByZWZlcmVuY2VcbiAgICBpZiAodXJsT2JqZWN0Lm9yaWdpbiA9PT0gYmFzZSkge1xuICAgICAgcmV0dXJuIHVybFRyaW1tZWQuc3RhcnRzV2l0aChcIi9cIilcbiAgICAgICAgPyBgJHt1cmxPYmplY3QucGF0aG5hbWV9JHt1cmxPYmplY3Quc2VhcmNofSR7dXJsT2JqZWN0Lmhhc2h9YFxuICAgICAgICA6IHVybFRyaW1tZWQuc3RhcnRzV2l0aChcIi5cIilcbiAgICAgICAgPyBgLiR7dXJsT2JqZWN0LnBhdGhuYW1lfSR7dXJsT2JqZWN0LnNlYXJjaH0ke3VybE9iamVjdC5oYXNofWBcbiAgICAgICAgOiBgJHt1cmxPYmplY3QucGF0aG5hbWUuc3Vic3RyaW5nKDEpfSR7dXJsT2JqZWN0LnNlYXJjaH0ke3VybE9iamVjdC5oYXNofWBcbiAgICB9XG5cbiAgICByZXR1cm4gU3RyaW5nKHVybE9iamVjdClcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGJsYW5rVVJMXG4gIH1cbn1cblxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCB7IExpc3QgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5pbXBvcnQgeyBzYW5pdGl6ZVVybCB9IGZyb20gXCJjb3JlL3V0aWxzL3VybFwiXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiXG5pbXBvcnQgeyBnZXRFeHRlbnNpb25zIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzXCJcblxuY29uc3QgYnJhY2VPcGVuID0gXCJ7XCJcbmNvbnN0IGJyYWNlQ2xvc2UgPSBcIn1cIlxuY29uc3QgcHJvcENsYXNzID0gXCJwcm9wZXJ0eVwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE9iamVjdE1vZGVsIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBzY2hlbWE6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29uZmlnczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBleHBhbmRlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25Ub2dnbGU6IFByb3BUeXBlcy5mdW5jLFxuICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGRpc3BsYXlOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGlzUmVmOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBleHBhbmREZXB0aDogUHJvcFR5cGVzLm51bWJlcixcbiAgICBkZXB0aDogUHJvcFR5cGVzLm51bWJlcixcbiAgICBzcGVjUGF0aDogSW1Qcm9wVHlwZXMubGlzdC5pc1JlcXVpcmVkLFxuICAgIGluY2x1ZGVSZWFkT25seTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaW5jbHVkZVdyaXRlT25seTogUHJvcFR5cGVzLmJvb2wsXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHtcbiAgICAgIHNjaGVtYSxcbiAgICAgIG5hbWUsXG4gICAgICBkaXNwbGF5TmFtZSxcbiAgICAgIGlzUmVmLFxuICAgICAgZ2V0Q29tcG9uZW50LFxuICAgICAgZ2V0Q29uZmlncyxcbiAgICAgIGRlcHRoLFxuICAgICAgb25Ub2dnbGUsXG4gICAgICBleHBhbmRlZCxcbiAgICAgIHNwZWNQYXRoLFxuICAgICAgLi4ub3RoZXJQcm9wc1xuICAgIH0gPSB0aGlzLnByb3BzXG4gICAgbGV0IHsgc3BlY1NlbGVjdG9ycywgZXhwYW5kRGVwdGgsIGluY2x1ZGVSZWFkT25seSwgaW5jbHVkZVdyaXRlT25seSB9ID1cbiAgICAgIG90aGVyUHJvcHNcbiAgICBjb25zdCB7IGlzT0FTMyB9ID0gc3BlY1NlbGVjdG9yc1xuICAgIGNvbnN0IGlzRW1iZWRkZWQgPSBkZXB0aCA+IDIgfHwgKGRlcHRoID09PSAyICYmIHNwZWNQYXRoLmxhc3QoKSAhPT0gXCJpdGVtc1wiKVxuXG4gICAgaWYgKCFzY2hlbWEpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29uc3QgeyBzaG93RXh0ZW5zaW9ucyB9ID0gZ2V0Q29uZmlncygpXG4gICAgY29uc3QgZXh0ZW5zaW9ucyA9IHNob3dFeHRlbnNpb25zID8gZ2V0RXh0ZW5zaW9ucyhzY2hlbWEpIDogTGlzdCgpXG5cbiAgICBsZXQgZGVzY3JpcHRpb24gPSBzY2hlbWEuZ2V0KFwiZGVzY3JpcHRpb25cIilcbiAgICBsZXQgcHJvcGVydGllcyA9IHNjaGVtYS5nZXQoXCJwcm9wZXJ0aWVzXCIpXG4gICAgbGV0IGFkZGl0aW9uYWxQcm9wZXJ0aWVzID0gc2NoZW1hLmdldChcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCIpXG4gICAgbGV0IHRpdGxlID0gc2NoZW1hLmdldChcInRpdGxlXCIpIHx8IGRpc3BsYXlOYW1lIHx8IG5hbWVcbiAgICBsZXQgcmVxdWlyZWRQcm9wZXJ0aWVzID0gc2NoZW1hLmdldChcInJlcXVpcmVkXCIpXG4gICAgbGV0IGluZm9Qcm9wZXJ0aWVzID0gc2NoZW1hLmZpbHRlcihcbiAgICAgICh2LCBrZXkpID0+XG4gICAgICAgIFtcIm1heFByb3BlcnRpZXNcIiwgXCJtaW5Qcm9wZXJ0aWVzXCIsIFwibnVsbGFibGVcIiwgXCJleGFtcGxlXCJdLmluZGV4T2YoXG4gICAgICAgICAga2V5XG4gICAgICAgICkgIT09IC0xXG4gICAgKVxuICAgIGxldCBkZXByZWNhdGVkID0gc2NoZW1hLmdldChcImRlcHJlY2F0ZWRcIilcbiAgICBsZXQgZXh0ZXJuYWxEb2NzVXJsID0gc2NoZW1hLmdldEluKFtcImV4dGVybmFsRG9jc1wiLCBcInVybFwiXSlcbiAgICBsZXQgZXh0ZXJuYWxEb2NzRGVzY3JpcHRpb24gPSBzY2hlbWEuZ2V0SW4oW1wiZXh0ZXJuYWxEb2NzXCIsIFwiZGVzY3JpcHRpb25cIl0pXG5cbiAgICBjb25zdCBKdW1wVG9QYXRoID0gZ2V0Q29tcG9uZW50KFwiSnVtcFRvUGF0aFwiLCB0cnVlKVxuICAgIGNvbnN0IE1hcmtkb3duID0gZ2V0Q29tcG9uZW50KFwiTWFya2Rvd25cIiwgdHJ1ZSlcbiAgICBjb25zdCBNb2RlbCA9IGdldENvbXBvbmVudChcIk1vZGVsXCIpXG4gICAgY29uc3QgTW9kZWxDb2xsYXBzZSA9IGdldENvbXBvbmVudChcIk1vZGVsQ29sbGFwc2VcIilcbiAgICBjb25zdCBQcm9wZXJ0eSA9IGdldENvbXBvbmVudChcIlByb3BlcnR5XCIpXG4gICAgY29uc3QgTGluayA9IGdldENvbXBvbmVudChcIkxpbmtcIilcbiAgICBjb25zdCBNb2RlbEV4dGVuc2lvbnMgPSBnZXRDb21wb25lbnQoXCJNb2RlbEV4dGVuc2lvbnNcIilcblxuICAgIGNvbnN0IEp1bXBUb1BhdGhTZWN0aW9uID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibW9kZWwtanVtcC10by1wYXRoXCI+XG4gICAgICAgICAgPEp1bXBUb1BhdGggcGF0aD17c3BlY1BhdGh9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIClcbiAgICB9XG4gICAgY29uc3QgY29sbGFwc2VkQ29udGVudCA9IChcbiAgICAgIDxzcGFuPlxuICAgICAgICA8c3Bhbj57YnJhY2VPcGVufTwvc3Bhbj4uLi48c3Bhbj57YnJhY2VDbG9zZX08L3NwYW4+XG4gICAgICAgIHtpc1JlZiA/IDxKdW1wVG9QYXRoU2VjdGlvbiAvPiA6IFwiXCJ9XG4gICAgICA8L3NwYW4+XG4gICAgKVxuXG4gICAgY29uc3QgYWxsT2YgPSBzcGVjU2VsZWN0b3JzLmlzT0FTMygpID8gc2NoZW1hLmdldChcImFsbE9mXCIpIDogbnVsbFxuICAgIGNvbnN0IGFueU9mID0gc3BlY1NlbGVjdG9ycy5pc09BUzMoKSA/IHNjaGVtYS5nZXQoXCJhbnlPZlwiKSA6IG51bGxcbiAgICBjb25zdCBvbmVPZiA9IHNwZWNTZWxlY3RvcnMuaXNPQVMzKCkgPyBzY2hlbWEuZ2V0KFwib25lT2ZcIikgOiBudWxsXG4gICAgY29uc3Qgbm90ID0gc3BlY1NlbGVjdG9ycy5pc09BUzMoKSA/IHNjaGVtYS5nZXQoXCJub3RcIikgOiBudWxsXG5cbiAgICBjb25zdCB0aXRsZUVsID0gdGl0bGUgJiYgKFxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibW9kZWwtdGl0bGVcIj5cbiAgICAgICAge2lzUmVmICYmIHNjaGVtYS5nZXQoXCIkJHJlZlwiKSAmJiAoXG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcIm1vZGVsLWhpbnRcIiwge1xuICAgICAgICAgICAgICBcIm1vZGVsLWhpbnQtLWVtYmVkZGVkXCI6IGlzRW1iZWRkZWQsXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2NoZW1hLmdldChcIiQkcmVmXCIpfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgKX1cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibW9kZWwtdGl0bGVfX3RleHRcIj57dGl0bGV9PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJtb2RlbFwiPlxuICAgICAgICA8TW9kZWxDb2xsYXBzZVxuICAgICAgICAgIG1vZGVsTmFtZT17bmFtZX1cbiAgICAgICAgICB0aXRsZT17dGl0bGVFbH1cbiAgICAgICAgICBvblRvZ2dsZT17b25Ub2dnbGV9XG4gICAgICAgICAgZXhwYW5kZWQ9e2V4cGFuZGVkID8gdHJ1ZSA6IGRlcHRoIDw9IGV4cGFuZERlcHRofVxuICAgICAgICAgIGNvbGxhcHNlZENvbnRlbnQ9e2NvbGxhcHNlZENvbnRlbnR9XG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJicmFjZS1vcGVuIG9iamVjdFwiPnticmFjZU9wZW59PC9zcGFuPlxuICAgICAgICAgIHshaXNSZWYgPyBudWxsIDogPEp1bXBUb1BhdGhTZWN0aW9uIC8+fVxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImlubmVyLW9iamVjdFwiPlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICA8dGFibGUgY2xhc3NOYW1lPVwibW9kZWxcIj5cbiAgICAgICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAgICB7IWRlc2NyaXB0aW9uID8gbnVsbCA6IChcbiAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPmRlc2NyaXB0aW9uOjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPE1hcmtkb3duIHNvdXJjZT17ZGVzY3JpcHRpb259IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICB7ZXh0ZXJuYWxEb2NzVXJsICYmIChcbiAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzTmFtZT17XCJleHRlcm5hbC1kb2NzXCJ9PlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5leHRlcm5hbERvY3M6PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtzYW5pdGl6ZVVybChleHRlcm5hbERvY3NVcmwpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7ZXh0ZXJuYWxEb2NzRGVzY3JpcHRpb24gfHwgZXh0ZXJuYWxEb2NzVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgeyFkZXByZWNhdGVkID8gbnVsbCA6IChcbiAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzTmFtZT17XCJwcm9wZXJ0eVwifT5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZGVwcmVjYXRlZDo8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD50cnVlPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICB7IShwcm9wZXJ0aWVzICYmIHByb3BlcnRpZXMuc2l6ZSlcbiAgICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICAgIDogcHJvcGVydGllc1xuICAgICAgICAgICAgICAgICAgICAgICAgLmVudHJ5U2VxKClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKFssIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICghdmFsdWUuZ2V0KFwicmVhZE9ubHlcIikgfHwgaW5jbHVkZVJlYWRPbmx5KSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICghdmFsdWUuZ2V0KFwid3JpdGVPbmx5XCIpIHx8IGluY2x1ZGVXcml0ZU9ubHkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGlzRGVwcmVjYXRlZCA9IGlzT0FTMygpICYmIHZhbHVlLmdldChcImRlcHJlY2F0ZWRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGlzUmVxdWlyZWQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3QuaXNMaXN0KHJlcXVpcmVkUHJvcGVydGllcykgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFByb3BlcnRpZXMuY29udGFpbnMoa2V5KVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjbGFzc05hbWVzID0gW1wicHJvcGVydHktcm93XCJdXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRGVwcmVjYXRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZXMucHVzaChcImRlcHJlY2F0ZWRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1JlcXVpcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lcy5wdXNoKFwicmVxdWlyZWRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGtleT17a2V5fSBjbGFzc05hbWU9e2NsYXNzTmFtZXMuam9pbihcIiBcIil9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7a2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXNSZXF1aXJlZCAmJiA8c3BhbiBjbGFzc05hbWU9XCJzdGFyXCI+Kjwvc3Bhbj59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TW9kZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2BvYmplY3QtJHtuYW1lfS0ke2tleX1fJHt2YWx1ZX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5vdGhlclByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtpc1JlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNQYXRoPXtzcGVjUGF0aC5wdXNoKFwicHJvcGVydGllc1wiLCBrZXkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbmZpZ3M9e2dldENvbmZpZ3N9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aD17ZGVwdGggKyAxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRvQXJyYXkoKX1cbiAgICAgICAgICAgICAgICAgIHtleHRlbnNpb25zLnNpemUgPT09IDAgPyBudWxsIDogKFxuICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4mbmJzcDs8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgPE1vZGVsRXh0ZW5zaW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ucz17ZXh0ZW5zaW9uc31cbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BDbGFzcz1cImV4dGVuc2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgeyFhZGRpdGlvbmFsUHJvcGVydGllcyB8fFxuICAgICAgICAgICAgICAgICAgIWFkZGl0aW9uYWxQcm9wZXJ0aWVzLnNpemUgPyBudWxsIDogKFxuICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPntcIjwgKiA+OlwifTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPE1vZGVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5vdGhlclByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjUGF0aD17c3BlY1BhdGgucHVzaChcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDb25maWdzPXtnZXRDb25maWdzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWE9e2FkZGl0aW9uYWxQcm9wZXJ0aWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aD17ZGVwdGggKyAxfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIHshYWxsT2YgPyBudWxsIDogKFxuICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPntcImFsbE9mIC0+XCJ9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICB7YWxsT2YubWFwKChzY2hlbWEsIGspID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17a30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TW9kZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLm90aGVyUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNQYXRoPXtzcGVjUGF0aC5wdXNoKFwiYWxsT2ZcIiwgayl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbmZpZ3M9e2dldENvbmZpZ3N9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYT17c2NoZW1hfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aD17ZGVwdGggKyAxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICB7IWFueU9mID8gbnVsbCA6IChcbiAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD57XCJhbnlPZiAtPlwifTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAge2FueU9mLm1hcCgoc2NoZW1hLCBrKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2t9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1vZGVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5vdGhlclByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjUGF0aD17c3BlY1BhdGgucHVzaChcImFueU9mXCIsIGspfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDb25maWdzPXtnZXRDb25maWdzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWE9e3NjaGVtYX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGg9e2RlcHRoICsgMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgeyFvbmVPZiA/IG51bGwgOiAoXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+e1wib25lT2YgLT5cIn08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtvbmVPZi5tYXAoKHNjaGVtYSwgaykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYga2V5PXtrfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNb2RlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4ub3RoZXJQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY1BhdGg9e3NwZWNQYXRoLnB1c2goXCJvbmVPZlwiLCBrKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29uZmlncz17Z2V0Q29uZmlnc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hPXtzY2hlbWF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoPXtkZXB0aCArIDF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIHshbm90ID8gbnVsbCA6IChcbiAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD57XCJub3QgLT5cIn08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNb2RlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5vdGhlclByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjUGF0aD17c3BlY1BhdGgucHVzaChcIm5vdFwiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDb25maWdzPXtnZXRDb25maWdzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYT17bm90fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoPXtkZXB0aCArIDF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJicmFjZS1jbG9zZVwiPnticmFjZUNsb3NlfTwvc3Bhbj5cbiAgICAgICAgPC9Nb2RlbENvbGxhcHNlPlxuICAgICAgICB7aW5mb1Byb3BlcnRpZXMuc2l6ZVxuICAgICAgICAgID8gaW5mb1Byb3BlcnRpZXNcbiAgICAgICAgICAgICAgLmVudHJ5U2VxKClcbiAgICAgICAgICAgICAgLm1hcCgoW2tleSwgdl0pID0+IChcbiAgICAgICAgICAgICAgICA8UHJvcGVydHlcbiAgICAgICAgICAgICAgICAgIGtleT17YCR7a2V5fS0ke3Z9YH1cbiAgICAgICAgICAgICAgICAgIHByb3BLZXk9e2tleX1cbiAgICAgICAgICAgICAgICAgIHByb3BWYWw9e3Z9XG4gICAgICAgICAgICAgICAgICBwcm9wQ2xhc3M9e3Byb3BDbGFzc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApKVxuICAgICAgICAgIDogbnVsbH1cbiAgICAgIDwvc3Bhbj5cbiAgICApXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuaW1wb3J0IHsgc2FuaXRpemVVcmwgfSBmcm9tIFwiY29yZS91dGlscy91cmxcIlxuXG5jb25zdCBwcm9wQ2xhc3MgPSBcInByb3BlcnR5XCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXJyYXlNb2RlbCBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgc2NoZW1hOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGdldENvbmZpZ3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZGlzcGxheU5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgcmVxdWlyZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIGV4cGFuZERlcHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIHNwZWNQYXRoOiBJbVByb3BUeXBlcy5saXN0LmlzUmVxdWlyZWQsXG4gICAgZGVwdGg6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgaW5jbHVkZVJlYWRPbmx5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpbmNsdWRlV3JpdGVPbmx5OiBQcm9wVHlwZXMuYm9vbCxcbiAgfVxuXG4gIHJlbmRlcigpe1xuICAgIGxldCB7IGdldENvbXBvbmVudCwgZ2V0Q29uZmlncywgc2NoZW1hLCBkZXB0aCwgZXhwYW5kRGVwdGgsIG5hbWUsIGRpc3BsYXlOYW1lLCBzcGVjUGF0aCB9ID0gdGhpcy5wcm9wc1xuICAgIGxldCBkZXNjcmlwdGlvbiA9IHNjaGVtYS5nZXQoXCJkZXNjcmlwdGlvblwiKVxuICAgIGxldCBpdGVtcyA9IHNjaGVtYS5nZXQoXCJpdGVtc1wiKVxuICAgIGxldCB0aXRsZSA9IHNjaGVtYS5nZXQoXCJ0aXRsZVwiKSB8fCBkaXNwbGF5TmFtZSB8fCBuYW1lXG4gICAgbGV0IHByb3BlcnRpZXMgPSBzY2hlbWEuZmlsdGVyKCAoIHYsIGtleSkgPT4gW1widHlwZVwiLCBcIml0ZW1zXCIsIFwiZGVzY3JpcHRpb25cIiwgXCIkJHJlZlwiLCBcImV4dGVybmFsRG9jc1wiXS5pbmRleE9mKGtleSkgPT09IC0xIClcbiAgICBsZXQgZXh0ZXJuYWxEb2NzVXJsID0gc2NoZW1hLmdldEluKFtcImV4dGVybmFsRG9jc1wiLCBcInVybFwiXSlcbiAgICBsZXQgZXh0ZXJuYWxEb2NzRGVzY3JpcHRpb24gPSBzY2hlbWEuZ2V0SW4oW1wiZXh0ZXJuYWxEb2NzXCIsIFwiZGVzY3JpcHRpb25cIl0pXG5cblxuICAgIGNvbnN0IE1hcmtkb3duID0gZ2V0Q29tcG9uZW50KFwiTWFya2Rvd25cIiwgdHJ1ZSlcbiAgICBjb25zdCBNb2RlbENvbGxhcHNlID0gZ2V0Q29tcG9uZW50KFwiTW9kZWxDb2xsYXBzZVwiKVxuICAgIGNvbnN0IE1vZGVsID0gZ2V0Q29tcG9uZW50KFwiTW9kZWxcIilcbiAgICBjb25zdCBQcm9wZXJ0eSA9IGdldENvbXBvbmVudChcIlByb3BlcnR5XCIpXG4gICAgY29uc3QgTGluayA9IGdldENvbXBvbmVudChcIkxpbmtcIilcblxuICAgIGNvbnN0IHRpdGxlRWwgPSB0aXRsZSAmJlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibW9kZWwtdGl0bGVcIj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibW9kZWwtdGl0bGVfX3RleHRcIj57IHRpdGxlIH08L3NwYW4+XG4gICAgICA8L3NwYW4+XG5cbiAgICAvKlxuICAgIE5vdGU6IHdlIHNldCBgbmFtZT17bnVsbH1gIGluIDxNb2RlbD4gYmVsb3cgYmVjYXVzZSB3ZSBkb24ndCB3YW50XG4gICAgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgTW9kZWwgcGFzc2VkIChhbmQgZGlzcGxheWVkKSBhcyB0aGUgbmFtZSBvZiB0aGUgYXJyYXkgZWxlbWVudCBNb2RlbFxuICAgICovXG5cbiAgICByZXR1cm4gPHNwYW4gY2xhc3NOYW1lPVwibW9kZWxcIj5cbiAgICAgIDxNb2RlbENvbGxhcHNlIHRpdGxlPXt0aXRsZUVsfSBleHBhbmRlZD17IGRlcHRoIDw9IGV4cGFuZERlcHRoIH0gY29sbGFwc2VkQ29udGVudD1cIlsuLi5dXCI+XG4gICAgICAgIFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcm9wZXJ0aWVzLnNpemUgPyBwcm9wZXJ0aWVzLmVudHJ5U2VxKCkubWFwKCAoIFsga2V5LCB2IF0gKSA9PiA8UHJvcGVydHkga2V5PXtgJHtrZXl9LSR7dn1gfSBwcm9wS2V5PXsga2V5IH0gcHJvcFZhbD17IHYgfSBwcm9wQ2xhc3M9eyBwcm9wQ2xhc3MgfSAvPikgOiBudWxsXG4gICAgICAgICAgfVxuICAgICAgICAgIHtcbiAgICAgICAgICAgICFkZXNjcmlwdGlvbiA/IChwcm9wZXJ0aWVzLnNpemUgPyA8ZGl2IGNsYXNzTmFtZT1cIm1hcmtkb3duXCI+PC9kaXY+IDogbnVsbCkgOlxuICAgICAgICAgICAgICA8TWFya2Rvd24gc291cmNlPXsgZGVzY3JpcHRpb24gfSAvPlxuICAgICAgICAgIH1cbiAgICAgICAgICB7IGV4dGVybmFsRG9jc1VybCAmJlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJleHRlcm5hbC1kb2NzXCI+XG4gICAgICAgICAgICAgICA8TGluayB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXtzYW5pdGl6ZVVybChleHRlcm5hbERvY3NVcmwpfT57ZXh0ZXJuYWxEb2NzRGVzY3JpcHRpb24gfHwgZXh0ZXJuYWxEb2NzVXJsfTwvTGluaz5cbiAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICA8TW9kZWxcbiAgICAgICAgICAgICAgeyAuLi50aGlzLnByb3BzIH1cbiAgICAgICAgICAgICAgZ2V0Q29uZmlncz17IGdldENvbmZpZ3MgfVxuICAgICAgICAgICAgICBzcGVjUGF0aD17c3BlY1BhdGgucHVzaChcIml0ZW1zXCIpfVxuICAgICAgICAgICAgICBuYW1lPXtudWxsfVxuICAgICAgICAgICAgICBzY2hlbWE9eyBpdGVtcyB9XG4gICAgICAgICAgICAgIHJlcXVpcmVkPXsgZmFsc2UgfVxuICAgICAgICAgICAgICBkZXB0aD17IGRlcHRoICsgMSB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgXVxuICAgICAgPC9Nb2RlbENvbGxhcHNlPlxuICAgIDwvc3Bhbj5cbiAgfVxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCB7IGdldEV4dGVuc2lvbnMgfSBmcm9tIFwiY29yZS91dGlsc1wiXG5pbXBvcnQgeyBzYW5pdGl6ZVVybCB9IGZyb20gXCJjb3JlL3V0aWxzL3VybFwiXG5cbmNvbnN0IHByb3BDbGFzcyA9IFwicHJvcGVydHkgcHJpbWl0aXZlXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUHJpbWl0aXZlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBzY2hlbWE6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29uZmlnczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGRpc3BsYXlOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGRlcHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIGV4cGFuZERlcHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7XG4gICAgICBzY2hlbWEsXG4gICAgICBnZXRDb21wb25lbnQsXG4gICAgICBnZXRDb25maWdzLFxuICAgICAgbmFtZSxcbiAgICAgIGRpc3BsYXlOYW1lLFxuICAgICAgZGVwdGgsXG4gICAgICBleHBhbmREZXB0aCxcbiAgICB9ID0gdGhpcy5wcm9wc1xuXG4gICAgY29uc3QgeyBzaG93RXh0ZW5zaW9ucyB9ID0gZ2V0Q29uZmlncygpXG5cbiAgICBpZiAoIXNjaGVtYSB8fCAhc2NoZW1hLmdldCkge1xuICAgICAgLy8gZG9uJ3QgcmVuZGVyIGlmIHNjaGVtYSBpc24ndCBjb3JyZWN0bHkgZm9ybWVkXG4gICAgICByZXR1cm4gPGRpdj48L2Rpdj5cbiAgICB9XG5cbiAgICBsZXQgdHlwZSA9IHNjaGVtYS5nZXQoXCJ0eXBlXCIpXG4gICAgbGV0IGZvcm1hdCA9IHNjaGVtYS5nZXQoXCJmb3JtYXRcIilcbiAgICBsZXQgeG1sID0gc2NoZW1hLmdldChcInhtbFwiKVxuICAgIGxldCBlbnVtQXJyYXkgPSBzY2hlbWEuZ2V0KFwiZW51bVwiKVxuICAgIGxldCB0aXRsZSA9IHNjaGVtYS5nZXQoXCJ0aXRsZVwiKSB8fCBkaXNwbGF5TmFtZSB8fCBuYW1lXG4gICAgbGV0IGRlc2NyaXB0aW9uID0gc2NoZW1hLmdldChcImRlc2NyaXB0aW9uXCIpXG4gICAgY29uc3QgZXh0ZW5zaW9ucyA9IGdldEV4dGVuc2lvbnMoc2NoZW1hKVxuXG4gICAgbGV0IHByb3BlcnRpZXMgPSBzY2hlbWFcbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChfLCBrZXkpID0+XG4gICAgICAgICAgW1xuICAgICAgICAgICAgXCJlbnVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIixcbiAgICAgICAgICAgIFwiZm9ybWF0XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCIsXG4gICAgICAgICAgICBcIiQkcmVmXCIsXG4gICAgICAgICAgICBcImV4dGVybmFsRG9jc1wiLFxuICAgICAgICAgIF0uaW5kZXhPZihrZXkpID09PSAtMVxuICAgICAgKVxuICAgICAgLmZpbHRlck5vdCgoXywga2V5KSA9PiBleHRlbnNpb25zLmhhcyhrZXkpKVxuICAgIGxldCBleHRlcm5hbERvY3NVcmwgPSBzY2hlbWEuZ2V0SW4oW1wiZXh0ZXJuYWxEb2NzXCIsIFwidXJsXCJdKVxuICAgIGxldCBleHRlcm5hbERvY3NEZXNjcmlwdGlvbiA9IHNjaGVtYS5nZXRJbihbXCJleHRlcm5hbERvY3NcIiwgXCJkZXNjcmlwdGlvblwiXSlcblxuICAgIGNvbnN0IE1hcmtkb3duID0gZ2V0Q29tcG9uZW50KFwiTWFya2Rvd25cIiwgdHJ1ZSlcbiAgICBjb25zdCBFbnVtTW9kZWwgPSBnZXRDb21wb25lbnQoXCJFbnVtTW9kZWxcIilcbiAgICBjb25zdCBQcm9wZXJ0eSA9IGdldENvbXBvbmVudChcIlByb3BlcnR5XCIpXG4gICAgY29uc3QgTW9kZWxDb2xsYXBzZSA9IGdldENvbXBvbmVudChcIk1vZGVsQ29sbGFwc2VcIilcbiAgICBjb25zdCBMaW5rID0gZ2V0Q29tcG9uZW50KFwiTGlua1wiKVxuICAgIGNvbnN0IE1vZGVsRXh0ZW5zaW9ucyA9IGdldENvbXBvbmVudChcIk1vZGVsRXh0ZW5zaW9uc1wiKVxuXG4gICAgY29uc3QgdGl0bGVFbCA9IHRpdGxlICYmIChcbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm1vZGVsLXRpdGxlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm1vZGVsLXRpdGxlX190ZXh0XCI+e3RpdGxlfTwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibW9kZWxcIj5cbiAgICAgICAgPE1vZGVsQ29sbGFwc2VcbiAgICAgICAgICB0aXRsZT17dGl0bGVFbH1cbiAgICAgICAgICBleHBhbmRlZD17ZGVwdGggPD0gZXhwYW5kRGVwdGh9XG4gICAgICAgICAgY29sbGFwc2VkQ29udGVudD1cIlsuLi5dXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInByb3BcIj5cbiAgICAgICAgICAgIHtuYW1lICYmIGRlcHRoID4gMSAmJiA8c3BhbiBjbGFzc05hbWU9XCJwcm9wLW5hbWVcIj57dGl0bGV9PC9zcGFuPn1cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInByb3AtdHlwZVwiPnt0eXBlfTwvc3Bhbj5cbiAgICAgICAgICAgIHtmb3JtYXQgJiYgPHNwYW4gY2xhc3NOYW1lPVwicHJvcC1mb3JtYXRcIj4oJHtmb3JtYXR9KTwvc3Bhbj59XG4gICAgICAgICAgICB7cHJvcGVydGllcy5zaXplXG4gICAgICAgICAgICAgID8gcHJvcGVydGllc1xuICAgICAgICAgICAgICAgICAgLmVudHJ5U2VxKClcbiAgICAgICAgICAgICAgICAgIC5tYXAoKFtrZXksIHZdKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxQcm9wZXJ0eVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7a2V5fS0ke3Z9YH1cbiAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5PXtrZXl9XG4gICAgICAgICAgICAgICAgICAgICAgcHJvcFZhbD17dn1cbiAgICAgICAgICAgICAgICAgICAgICBwcm9wQ2xhc3M9e3Byb3BDbGFzc31cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgIDogbnVsbH1cbiAgICAgICAgICAgIHtzaG93RXh0ZW5zaW9ucyAmJiBleHRlbnNpb25zLnNpemUgPiAwID8gKFxuICAgICAgICAgICAgICA8TW9kZWxFeHRlbnNpb25zXG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9ucz17ZXh0ZW5zaW9uc31cbiAgICAgICAgICAgICAgICBwcm9wQ2xhc3M9e2Ake3Byb3BDbGFzc30gZXh0ZW5zaW9uYH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgeyFkZXNjcmlwdGlvbiA/IG51bGwgOiA8TWFya2Rvd24gc291cmNlPXtkZXNjcmlwdGlvbn0gLz59XG4gICAgICAgICAgICB7ZXh0ZXJuYWxEb2NzVXJsICYmIChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJleHRlcm5hbC1kb2NzXCI+XG4gICAgICAgICAgICAgICAgPExpbmsgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17c2FuaXRpemVVcmwoZXh0ZXJuYWxEb2NzVXJsKX0+XG4gICAgICAgICAgICAgICAgICB7ZXh0ZXJuYWxEb2NzRGVzY3JpcHRpb24gfHwgZXh0ZXJuYWxEb2NzVXJsfVxuICAgICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge3htbCAmJiB4bWwuc2l6ZSA/IChcbiAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtwcm9wQ2xhc3N9PnhtbDo8L3NwYW4+XG4gICAgICAgICAgICAgICAge3htbFxuICAgICAgICAgICAgICAgICAgLmVudHJ5U2VxKClcbiAgICAgICAgICAgICAgICAgIC5tYXAoKFtrZXksIHZdKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGtleT17YCR7a2V5fS0ke3Z9YH0gY2xhc3NOYW1lPXtwcm9wQ2xhc3N9PlxuICAgICAgICAgICAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwO3trZXl9OiB7U3RyaW5nKHYpfVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgLnRvQXJyYXkoKX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7ZW51bUFycmF5ICYmIChcbiAgICAgICAgICAgICAgPEVudW1Nb2RlbCB2YWx1ZT17ZW51bUFycmF5fSBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH0gLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L01vZGVsQ29sbGFwc2U+XG4gICAgICA8L3NwYW4+XG4gICAgKVxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTY2hlbWVzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHNwZWNBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgc2NoZW1lczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGN1cnJlbnRTY2hlbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBwYXRoOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIG1ldGhvZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgfVxuXG4gIFVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSB7XG4gICAgbGV0IHsgc2NoZW1lcyB9ID0gdGhpcy5wcm9wc1xuXG4gICAgLy9maXJlICdjaGFuZ2UnIGV2ZW50IHRvIHNldCBkZWZhdWx0ICd2YWx1ZScgb2Ygc2VsZWN0XG4gICAgdGhpcy5zZXRTY2hlbWUoc2NoZW1lcy5maXJzdCgpKVxuICB9XG5cbiAgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgaWYgKCAhdGhpcy5wcm9wcy5jdXJyZW50U2NoZW1lIHx8ICFuZXh0UHJvcHMuc2NoZW1lcy5pbmNsdWRlcyh0aGlzLnByb3BzLmN1cnJlbnRTY2hlbWUpICkge1xuICAgICAgLy8gaWYgd2UgZG9uJ3QgaGF2ZSBhIHNlbGVjdGVkIGN1cnJlbnRTY2hlbWUgb3IgaWYgb3VyIHNlbGVjdGVkIHNjaGVtZSBpcyBubyBsb25nZXIgYW4gb3B0aW9uLFxuICAgICAgLy8gdGhlbiBmaXJlICdjaGFuZ2UnIGV2ZW50IGFuZCBzZWxlY3QgdGhlIGZpcnN0IHNjaGVtZSBpbiB0aGUgbGlzdCBvZiBvcHRpb25zXG4gICAgICB0aGlzLnNldFNjaGVtZShuZXh0UHJvcHMuc2NoZW1lcy5maXJzdCgpKVxuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlID0oIGUgKSA9PiB7XG4gICAgdGhpcy5zZXRTY2hlbWUoIGUudGFyZ2V0LnZhbHVlIClcbiAgfVxuXG4gIHNldFNjaGVtZSA9ICggdmFsdWUgKSA9PiB7XG4gICAgbGV0IHsgcGF0aCwgbWV0aG9kLCBzcGVjQWN0aW9ucyB9ID0gdGhpcy5wcm9wc1xuXG4gICAgc3BlY0FjdGlvbnMuc2V0U2NoZW1lKCB2YWx1ZSwgcGF0aCwgbWV0aG9kIClcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyBzY2hlbWVzLCBjdXJyZW50U2NoZW1lIH0gPSB0aGlzLnByb3BzXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGxhYmVsIGh0bWxGb3I9XCJzY2hlbWVzXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInNjaGVtZXMtdGl0bGVcIj5TY2hlbWVzPC9zcGFuPlxuICAgICAgICA8c2VsZWN0IG9uQ2hhbmdlPXsgdGhpcy5vbkNoYW5nZSB9IHZhbHVlPXtjdXJyZW50U2NoZW1lfSBpZD1cInNjaGVtZXNcIj5cbiAgICAgICAgICB7IHNjaGVtZXMudmFsdWVTZXEoKS5tYXAoXG4gICAgICAgICAgICAoIHNjaGVtZSApID0+IDxvcHRpb24gdmFsdWU9eyBzY2hlbWUgfSBrZXk9eyBzY2hlbWUgfT57IHNjaGVtZSB9PC9vcHRpb24+XG4gICAgICAgICAgKS50b0FycmF5KCl9XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9sYWJlbD5cbiAgICApXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjaGVtZXNDb250YWluZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgc3BlY0FjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG4gIH1cblxuICByZW5kZXIgKCkge1xuICAgIGNvbnN0IHtzcGVjQWN0aW9ucywgc3BlY1NlbGVjdG9ycywgZ2V0Q29tcG9uZW50fSA9IHRoaXMucHJvcHNcblxuICAgIGNvbnN0IGN1cnJlbnRTY2hlbWUgPSBzcGVjU2VsZWN0b3JzLm9wZXJhdGlvblNjaGVtZSgpXG4gICAgY29uc3Qgc2NoZW1lcyA9IHNwZWNTZWxlY3RvcnMuc2NoZW1lcygpXG5cbiAgICBjb25zdCBTY2hlbWVzID0gZ2V0Q29tcG9uZW50KFwic2NoZW1lc1wiKVxuXG4gICAgY29uc3Qgc2NoZW1lc0FyZVByZXNlbnQgPSBzY2hlbWVzICYmIHNjaGVtZXMuc2l6ZVxuXG4gICAgcmV0dXJuIHNjaGVtZXNBcmVQcmVzZW50ID8gKFxuICAgICAgICA8U2NoZW1lc1xuICAgICAgICAgIGN1cnJlbnRTY2hlbWU9e2N1cnJlbnRTY2hlbWV9XG4gICAgICAgICAgc2NoZW1lcz17c2NoZW1lc31cbiAgICAgICAgICBzcGVjQWN0aW9ucz17c3BlY0FjdGlvbnN9XG4gICAgICAgIC8+XG4gICAgICApIDogbnVsbFxuICB9XG59XG4iLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcInJlYWN0LWRlYm91bmNlLWlucHV0XCIpOyIsImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50LCBDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgeyBMaXN0LCBmcm9tSlMgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCBjeCBmcm9tIFwiY2xhc3NuYW1lc1wiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuaW1wb3J0IERlYm91bmNlSW5wdXQgZnJvbSBcInJlYWN0LWRlYm91bmNlLWlucHV0XCJcbmltcG9ydCB7IHN0cmluZ2lmeSwgaXNJbW11dGFibGUgfSBmcm9tIFwiY29yZS91dGlsc1wiXG5cbmNvbnN0IG5vb3AgPSAoKT0+IHt9XG5jb25zdCBKc29uU2NoZW1hUHJvcFNoYXBlID0ge1xuICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHZhbHVlOiBQcm9wVHlwZXMuYW55LFxuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gIGtleU5hbWU6IFByb3BUeXBlcy5hbnksXG4gIGZuOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIHNjaGVtYTogUHJvcFR5cGVzLm9iamVjdCxcbiAgZXJyb3JzOiBJbVByb3BUeXBlcy5saXN0LFxuICByZXF1aXJlZDogUHJvcFR5cGVzLmJvb2wsXG4gIGRpc3BhdGNoSW5pdGlhbFZhbHVlOiBQcm9wVHlwZXMuYm9vbCxcbiAgZGVzY3JpcHRpb246IFByb3BUeXBlcy5hbnksXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbn1cblxuY29uc3QgSnNvblNjaGVtYURlZmF1bHRQcm9wcyA9IHtcbiAgdmFsdWU6IFwiXCIsXG4gIG9uQ2hhbmdlOiBub29wLFxuICBzY2hlbWE6IHt9LFxuICBrZXlOYW1lOiBcIlwiLFxuICByZXF1aXJlZDogZmFsc2UsXG4gIGVycm9yczogTGlzdCgpXG59XG5cbmV4cG9ydCBjbGFzcyBKc29uU2NoZW1hRm9ybSBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IEpzb25TY2hlbWFQcm9wU2hhcGVcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IEpzb25TY2hlbWFEZWZhdWx0UHJvcHNcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGRpc3BhdGNoSW5pdGlhbFZhbHVlLCB2YWx1ZSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHNcbiAgICBpZihkaXNwYXRjaEluaXRpYWxWYWx1ZSkge1xuICAgICAgb25DaGFuZ2UodmFsdWUpXG4gICAgfSBlbHNlIGlmKGRpc3BhdGNoSW5pdGlhbFZhbHVlID09PSBmYWxzZSkge1xuICAgICAgb25DaGFuZ2UoXCJcIilcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHsgc2NoZW1hLCBlcnJvcnMsIHZhbHVlLCBvbkNoYW5nZSwgZ2V0Q29tcG9uZW50LCBmbiwgZGlzYWJsZWQgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBmb3JtYXQgPSBzY2hlbWEgJiYgc2NoZW1hLmdldCA/IHNjaGVtYS5nZXQoXCJmb3JtYXRcIikgOiBudWxsXG4gICAgY29uc3QgdHlwZSA9IHNjaGVtYSAmJiBzY2hlbWEuZ2V0ID8gc2NoZW1hLmdldChcInR5cGVcIikgOiBudWxsXG4gICAgY29uc3Qgb2JqZWN0VHlwZSA9IGZuLmdldFNjaGVtYU9iamVjdFR5cGUoc2NoZW1hKVxuICAgIGNvbnN0IGlzRmlsZVVwbG9hZEludGVuZGVkID0gZm4uaXNGaWxlVXBsb2FkSW50ZW5kZWQoc2NoZW1hKVxuXG4gICAgbGV0IGdldENvbXBvbmVudFNpbGVudGx5ID0gKG5hbWUpID0+IGdldENvbXBvbmVudChuYW1lLCBmYWxzZSwgeyBmYWlsU2lsZW50bHk6IHRydWUgfSlcbiAgICBsZXQgQ29tcCA9IHR5cGUgPyBmb3JtYXQgP1xuICAgICAgZ2V0Q29tcG9uZW50U2lsZW50bHkoYEpzb25TY2hlbWFfJHt0eXBlfV8ke2Zvcm1hdH1gKSA6XG4gICAgICBnZXRDb21wb25lbnRTaWxlbnRseShgSnNvblNjaGVtYV8ke3R5cGV9YCkgOlxuICAgICAgZ2V0Q29tcG9uZW50KFwiSnNvblNjaGVtYV9zdHJpbmdcIilcblxuICAgIGlmICghaXNGaWxlVXBsb2FkSW50ZW5kZWQgJiYgTGlzdC5pc0xpc3QodHlwZSkgJiYgKG9iamVjdFR5cGUgPT09IFwiYXJyYXlcIiB8fCBvYmplY3RUeXBlID09PSBcIm9iamVjdFwiKSkge1xuICAgICAgQ29tcCA9IGdldENvbXBvbmVudChcIkpzb25TY2hlbWFfb2JqZWN0XCIpXG4gICAgfVxuXG4gICAgaWYgKCFDb21wKSB7XG4gICAgICBDb21wID0gZ2V0Q29tcG9uZW50KFwiSnNvblNjaGVtYV9zdHJpbmdcIilcbiAgICB9XG5cbiAgICByZXR1cm4gPENvbXAgeyAuLi50aGlzLnByb3BzIH0gZXJyb3JzPXtlcnJvcnN9IGZuPXtmbn0gZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9IHZhbHVlPXt2YWx1ZX0gb25DaGFuZ2U9e29uQ2hhbmdlfSBzY2hlbWE9e3NjaGVtYX0gZGlzYWJsZWQ9e2Rpc2FibGVkfS8+XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEpzb25TY2hlbWFfc3RyaW5nIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IEpzb25TY2hlbWFQcm9wU2hhcGVcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IEpzb25TY2hlbWFEZWZhdWx0UHJvcHNcbiAgb25DaGFuZ2UgPSAoZSkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wcm9wcy5zY2hlbWEgJiYgdGhpcy5wcm9wcy5zY2hlbWEuZ2V0KFwidHlwZVwiKSA9PT0gXCJmaWxlXCIgPyBlLnRhcmdldC5maWxlc1swXSA6IGUudGFyZ2V0LnZhbHVlXG4gICAgdGhpcy5wcm9wcy5vbkNoYW5nZSh2YWx1ZSwgdGhpcy5wcm9wcy5rZXlOYW1lKVxuICB9XG4gIG9uRW51bUNoYW5nZSA9ICh2YWwpID0+IHRoaXMucHJvcHMub25DaGFuZ2UodmFsKVxuICByZW5kZXIoKSB7XG4gICAgbGV0IHsgZ2V0Q29tcG9uZW50LCB2YWx1ZSwgc2NoZW1hLCBlcnJvcnMsIHJlcXVpcmVkLCBkZXNjcmlwdGlvbiwgZGlzYWJsZWQgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBlbnVtVmFsdWUgPSBzY2hlbWEgJiYgc2NoZW1hLmdldCA/IHNjaGVtYS5nZXQoXCJlbnVtXCIpIDogbnVsbFxuICAgIGNvbnN0IGZvcm1hdCA9IHNjaGVtYSAmJiBzY2hlbWEuZ2V0ID8gc2NoZW1hLmdldChcImZvcm1hdFwiKSA6IG51bGxcbiAgICBjb25zdCB0eXBlID0gc2NoZW1hICYmIHNjaGVtYS5nZXQgPyBzY2hlbWEuZ2V0KFwidHlwZVwiKSA6IG51bGxcbiAgICBjb25zdCBzY2hlbWFJbiA9IHNjaGVtYSAmJiBzY2hlbWEuZ2V0ID8gc2NoZW1hLmdldChcImluXCIpIDogbnVsbFxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHZhbHVlID0gXCJcIiAvLyB2YWx1ZSBzaG91bGQgbm90IGJlIG51bGw7IHRoaXMgZml4ZXMgYSBEZWJvdW5jZSBlcnJvclxuICAgIH0gZWxzZSBpZiAoaXNJbW11dGFibGUodmFsdWUpIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgdmFsdWUgPSBzdHJpbmdpZnkodmFsdWUpXG4gICAgfVxuXG4gICAgZXJyb3JzID0gZXJyb3JzLnRvSlMgPyBlcnJvcnMudG9KUygpIDogW11cblxuICAgIGlmICggZW51bVZhbHVlICkge1xuICAgICAgY29uc3QgU2VsZWN0ID0gZ2V0Q29tcG9uZW50KFwiU2VsZWN0XCIpXG4gICAgICByZXR1cm4gKDxTZWxlY3QgY2xhc3NOYW1lPXsgZXJyb3JzLmxlbmd0aCA/IFwiaW52YWxpZFwiIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17IGVycm9ycy5sZW5ndGggPyBlcnJvcnMgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWRWYWx1ZXM9eyBbLi4uZW51bVZhbHVlXSB9XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9eyB2YWx1ZSB9XG4gICAgICAgICAgICAgICAgICAgICAgYWxsb3dFbXB0eVZhbHVlPXsgIXJlcXVpcmVkIH1cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyB0aGlzLm9uRW51bUNoYW5nZSB9Lz4pXG4gICAgfVxuXG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IGRpc2FibGVkIHx8IChzY2hlbWFJbiAmJiBzY2hlbWFJbiA9PT0gXCJmb3JtRGF0YVwiICYmICEoXCJGb3JtRGF0YVwiIGluIHdpbmRvdykpXG4gICAgY29uc3QgSW5wdXQgPSBnZXRDb21wb25lbnQoXCJJbnB1dFwiKVxuICAgIGlmICh0eXBlICYmIHR5cGUgPT09IFwiZmlsZVwiKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8SW5wdXQgdHlwZT1cImZpbGVcIlxuICAgICAgICAgIGNsYXNzTmFtZT17ZXJyb3JzLmxlbmd0aCA/IFwiaW52YWxpZFwiIDogXCJcIn1cbiAgICAgICAgICB0aXRsZT17ZXJyb3JzLmxlbmd0aCA/IGVycm9ycyA6IFwiXCJ9XG4gICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2V9XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWR9IC8+XG4gICAgICApXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPERlYm91bmNlSW5wdXRcbiAgICAgICAgICB0eXBlPXtmb3JtYXQgJiYgZm9ybWF0ID09PSBcInBhc3N3b3JkXCIgPyBcInBhc3N3b3JkXCIgOiBcInRleHRcIn1cbiAgICAgICAgICBjbGFzc05hbWU9e2Vycm9ycy5sZW5ndGggPyBcImludmFsaWRcIiA6IFwiXCJ9XG4gICAgICAgICAgdGl0bGU9e2Vycm9ycy5sZW5ndGggPyBlcnJvcnMgOiBcIlwifVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBtaW5MZW5ndGg9ezB9XG4gICAgICAgICAgZGVib3VuY2VUaW1lb3V0PXszNTB9XG4gICAgICAgICAgcGxhY2Vob2xkZXI9e2Rlc2NyaXB0aW9ufVxuICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlfVxuICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfSAvPlxuICAgICAgKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSnNvblNjaGVtYV9hcnJheSBleHRlbmRzIFB1cmVDb21wb25lbnQge1xuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBKc29uU2NoZW1hUHJvcFNoYXBlXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSBKc29uU2NoZW1hRGVmYXVsdFByb3BzXG5cbiAgY29uc3RydWN0b3IocHJvcHMsIGNvbnRleHQpIHtcbiAgICBzdXBlcihwcm9wcywgY29udGV4dClcbiAgICB0aGlzLnN0YXRlID0geyB2YWx1ZTogdmFsdWVPckVtcHR5TGlzdChwcm9wcy52YWx1ZSksIHNjaGVtYTogcHJvcHMuc2NoZW1hfVxuICB9XG5cbiAgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMocHJvcHMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHZhbHVlT3JFbXB0eUxpc3QocHJvcHMudmFsdWUpXG4gICAgaWYodmFsdWUgIT09IHRoaXMuc3RhdGUudmFsdWUpXG4gICAgICB0aGlzLnNldFN0YXRlKHsgdmFsdWUgfSlcblxuICAgIGlmKHByb3BzLnNjaGVtYSAhPT0gdGhpcy5zdGF0ZS5zY2hlbWEpXG4gICAgICB0aGlzLnNldFN0YXRlKHsgc2NoZW1hOiBwcm9wcy5zY2hlbWEgfSlcbiAgfVxuXG4gIG9uQ2hhbmdlID0gKCkgPT4ge1xuICAgIHRoaXMucHJvcHMub25DaGFuZ2UodGhpcy5zdGF0ZS52YWx1ZSlcbiAgfVxuXG4gIG9uSXRlbUNoYW5nZSA9IChpdGVtVmFsLCBpKSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSgoeyB2YWx1ZSB9KSA9PiAoe1xuICAgICAgdmFsdWU6IHZhbHVlLnNldChpLCBpdGVtVmFsKVxuICAgIH0pLCB0aGlzLm9uQ2hhbmdlKVxuICB9XG5cbiAgcmVtb3ZlSXRlbSA9IChpKSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSgoeyB2YWx1ZSB9KSA9PiAoe1xuICAgICAgdmFsdWU6IHZhbHVlLmRlbGV0ZShpKVxuICAgIH0pLCB0aGlzLm9uQ2hhbmdlKVxuICB9XG5cbiAgYWRkSXRlbSA9ICgpID0+IHtcbiAgICBjb25zdCB7IGZuIH0gPSB0aGlzLnByb3BzXG4gICAgbGV0IG5ld1ZhbHVlID0gdmFsdWVPckVtcHR5TGlzdCh0aGlzLnN0YXRlLnZhbHVlKVxuICAgIHRoaXMuc2V0U3RhdGUoKCkgPT4gKHtcbiAgICAgIHZhbHVlOiBuZXdWYWx1ZS5wdXNoKGZuLmdldFNhbXBsZVNjaGVtYSh0aGlzLnN0YXRlLnNjaGVtYS5nZXQoXCJpdGVtc1wiKSwgZmFsc2UsIHtcbiAgICAgICAgaW5jbHVkZVdyaXRlT25seTogdHJ1ZVxuICAgICAgfSkpXG4gICAgfSksIHRoaXMub25DaGFuZ2UpXG4gIH1cblxuICBvbkVudW1DaGFuZ2UgPSAodmFsdWUpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKCgpID0+ICh7XG4gICAgICB2YWx1ZTogdmFsdWVcbiAgICB9KSwgdGhpcy5vbkNoYW5nZSlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyBnZXRDb21wb25lbnQsIHJlcXVpcmVkLCBzY2hlbWEsIGVycm9ycywgZm4sIGRpc2FibGVkIH0gPSB0aGlzLnByb3BzXG5cbiAgICBlcnJvcnMgPSBlcnJvcnMudG9KUyA/IGVycm9ycy50b0pTKCkgOiBBcnJheS5pc0FycmF5KGVycm9ycykgPyBlcnJvcnMgOiBbXVxuICAgIGNvbnN0IGFycmF5RXJyb3JzID0gZXJyb3JzLmZpbHRlcihlID0+IHR5cGVvZiBlID09PSBcInN0cmluZ1wiKVxuICAgIGNvbnN0IG5lZWRzUmVtb3ZlRXJyb3IgPSBlcnJvcnMuZmlsdGVyKGUgPT4gZS5uZWVkUmVtb3ZlICE9PSB1bmRlZmluZWQpXG4gICAgICAubWFwKGUgPT4gZS5lcnJvcilcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc3RhdGUudmFsdWUgLy8gZXhwZWN0IEltIExpc3RcbiAgICBjb25zdCBzaG91bGRSZW5kZXJWYWx1ZSA9XG4gICAgICAhISh2YWx1ZSAmJiB2YWx1ZS5jb3VudCAmJiB2YWx1ZS5jb3VudCgpID4gMClcbiAgICBjb25zdCBzY2hlbWFJdGVtc0VudW0gPSBzY2hlbWEuZ2V0SW4oW1wiaXRlbXNcIiwgXCJlbnVtXCJdKVxuICAgIGNvbnN0IHNjaGVtYUl0ZW1zID0gc2NoZW1hLmdldChcIml0ZW1zXCIpXG4gICAgY29uc3Qgc2NoZW1hSXRlbXNUeXBlID0gZm4uZ2V0U2NoZW1hT2JqZWN0VHlwZShzY2hlbWFJdGVtcylcbiAgICBjb25zdCBzY2hlbWFJdGVtc1R5cGVMYWJlbCA9IGZuLmdldFNjaGVtYU9iamVjdFR5cGVMYWJlbChzY2hlbWFJdGVtcylcbiAgICBjb25zdCBzY2hlbWFJdGVtc0Zvcm1hdCA9IHNjaGVtYS5nZXRJbihbXCJpdGVtc1wiLCBcImZvcm1hdFwiXSlcbiAgICBjb25zdCBzY2hlbWFJdGVtc1NjaGVtYSA9IHNjaGVtYS5nZXQoXCJpdGVtc1wiKVxuICAgIGxldCBBcnJheUl0ZW1zQ29tcG9uZW50XG4gICAgbGV0IGlzQXJyYXlJdGVtVGV4dCA9IGZhbHNlXG4gICAgbGV0IGlzQXJyYXlJdGVtRmlsZSA9IChzY2hlbWFJdGVtc1R5cGUgPT09IFwiZmlsZVwiIHx8IChzY2hlbWFJdGVtc1R5cGUgPT09IFwic3RyaW5nXCIgJiYgc2NoZW1hSXRlbXNGb3JtYXQgPT09IFwiYmluYXJ5XCIpKVxuICAgIGlmIChzY2hlbWFJdGVtc1R5cGUgJiYgc2NoZW1hSXRlbXNGb3JtYXQpIHtcbiAgICAgIEFycmF5SXRlbXNDb21wb25lbnQgPSBnZXRDb21wb25lbnQoYEpzb25TY2hlbWFfJHtzY2hlbWFJdGVtc1R5cGV9XyR7c2NoZW1hSXRlbXNGb3JtYXR9YClcbiAgICB9IGVsc2UgaWYgKHNjaGVtYUl0ZW1zVHlwZSA9PT0gXCJib29sZWFuXCIgfHwgc2NoZW1hSXRlbXNUeXBlID09PSBcImFycmF5XCIgfHwgc2NoZW1hSXRlbXNUeXBlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBBcnJheUl0ZW1zQ29tcG9uZW50ID0gZ2V0Q29tcG9uZW50KGBKc29uU2NoZW1hXyR7c2NoZW1hSXRlbXNUeXBlfWApXG4gICAgfVxuXG4gICAgaWYgKExpc3QuaXNMaXN0KHNjaGVtYUl0ZW1zPy5nZXQoXCJ0eXBlXCIpKSAmJiAoc2NoZW1hSXRlbXNUeXBlID09PSBcImFycmF5XCIgfHwgc2NoZW1hSXRlbXNUeXBlID09PSBcIm9iamVjdFwiKSkge1xuICAgICAgQXJyYXlJdGVtc0NvbXBvbmVudCA9IGdldENvbXBvbmVudChgSnNvblNjaGVtYV9vYmplY3RgKVxuICAgIH1cblxuICAgIC8vIGlmIEFycmF5SXRlbXNDb21wb25lbnQgbm90IGFzc2lnbmVkIG9yIGRvZXMgbm90IGV4aXN0LFxuICAgIC8vIHVzZSBkZWZhdWx0IHNjaGVtYUl0ZW1zVHlwZSA9PT0gXCJzdHJpbmdcIiAmIEpzb25TY2hlbWFBcnJheUl0ZW1UZXh0IGNvbXBvbmVudFxuICAgIGlmICghQXJyYXlJdGVtc0NvbXBvbmVudCAmJiAhaXNBcnJheUl0ZW1GaWxlKSB7XG4gICAgICBpc0FycmF5SXRlbVRleHQgPSB0cnVlXG4gICAgfVxuXG4gICAgaWYgKCBzY2hlbWFJdGVtc0VudW0gKSB7XG4gICAgICBjb25zdCBTZWxlY3QgPSBnZXRDb21wb25lbnQoXCJTZWxlY3RcIilcbiAgICAgIHJldHVybiAoPFNlbGVjdCBjbGFzc05hbWU9eyBlcnJvcnMubGVuZ3RoID8gXCJpbnZhbGlkXCIgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXsgZXJyb3JzLmxlbmd0aCA/IGVycm9ycyA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGU9eyB0cnVlIH1cbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17IHZhbHVlIH1cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgYWxsb3dlZFZhbHVlcz17IHNjaGVtYUl0ZW1zRW51bSB9XG4gICAgICAgICAgICAgICAgICAgICAgYWxsb3dFbXB0eVZhbHVlPXsgIXJlcXVpcmVkIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17IHRoaXMub25FbnVtQ2hhbmdlIH0vPilcbiAgICB9XG5cbiAgICBjb25zdCBCdXR0b24gPSBnZXRDb21wb25lbnQoXCJCdXR0b25cIilcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS1hcnJheVwiPlxuICAgICAgICB7c2hvdWxkUmVuZGVyVmFsdWUgP1xuICAgICAgICAgICh2YWx1ZS5tYXAoKGl0ZW0sIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1FcnJvcnMgPSBmcm9tSlMoW1xuICAgICAgICAgICAgICAuLi5lcnJvcnMuZmlsdGVyKChlcnIpID0+IGVyci5pbmRleCA9PT0gaSlcbiAgICAgICAgICAgICAgLm1hcChlID0+IGUuZXJyb3IpXG4gICAgICAgICAgICBdKVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPGRpdiBrZXk9e2l9IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLWZvcm0taXRlbVwiPlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGlzQXJyYXlJdGVtRmlsZSA/XG4gICAgICAgICAgICAgICAgICAgIDxKc29uU2NoZW1hQXJyYXlJdGVtRmlsZVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17aXRlbX1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWwpPT4gdGhpcy5vbkl0ZW1DaGFuZ2UodmFsLCBpKX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBlcnJvcnM9e2l0ZW1FcnJvcnN9XG4gICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA6IGlzQXJyYXlJdGVtVGV4dCA/XG4gICAgICAgICAgICAgICAgICAgICAgPEpzb25TY2hlbWFBcnJheUl0ZW1UZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17aXRlbX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsKSA9PiB0aGlzLm9uSXRlbUNoYW5nZSh2YWwsIGkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzPXtpdGVtRXJyb3JzfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgOiA8QXJyYXlJdGVtc0NvbXBvbmVudCB7Li4udGhpcy5wcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtpdGVtfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWwpID0+IHRoaXMub25JdGVtQ2hhbmdlKHZhbCwgaSl9XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnM9e2l0ZW1FcnJvcnN9XG4gICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWE9e3NjaGVtYUl0ZW1zU2NoZW1hfVxuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICBmbj17Zm59XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgeyFkaXNhYmxlZCA/IChcbiAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgYnRuIGJ0bi1zbSBqc29uLXNjaGVtYS1mb3JtLWl0ZW0tcmVtb3ZlICR7bmVlZHNSZW1vdmVFcnJvci5sZW5ndGggPyBcImludmFsaWRcIiA6IG51bGx9YH1cbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9e25lZWRzUmVtb3ZlRXJyb3IubGVuZ3RoID8gbmVlZHNSZW1vdmVFcnJvciA6IFwiXCJ9XG5cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gdGhpcy5yZW1vdmVJdGVtKGkpfVxuICAgICAgICAgICAgICAgICAgPiAtIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KVxuICAgICAgICAgICkgOiBudWxsXG4gICAgICAgIH1cbiAgICAgICAgeyFkaXNhYmxlZCA/IChcbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBjbGFzc05hbWU9e2BidG4gYnRuLXNtIGpzb24tc2NoZW1hLWZvcm0taXRlbS1hZGQgJHthcnJheUVycm9ycy5sZW5ndGggPyBcImludmFsaWRcIiA6IG51bGx9YH1cbiAgICAgICAgICAgIHRpdGxlPXthcnJheUVycm9ycy5sZW5ndGggPyBhcnJheUVycm9ycyA6IFwiXCJ9XG4gICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmFkZEl0ZW19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgQWRkIHtzY2hlbWFJdGVtc1R5cGVMYWJlbH0gaXRlbVxuICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSnNvblNjaGVtYUFycmF5SXRlbVRleHQgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0gSnNvblNjaGVtYVByb3BTaGFwZVxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0gSnNvblNjaGVtYURlZmF1bHRQcm9wc1xuXG4gIG9uQ2hhbmdlID0gKGUpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LnZhbHVlXG4gICAgdGhpcy5wcm9wcy5vbkNoYW5nZSh2YWx1ZSwgdGhpcy5wcm9wcy5rZXlOYW1lKVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IHZhbHVlLCBlcnJvcnMsIGRlc2NyaXB0aW9uLCBkaXNhYmxlZCB9ID0gdGhpcy5wcm9wc1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHZhbHVlID0gXCJcIiAvLyB2YWx1ZSBzaG91bGQgbm90IGJlIG51bGxcbiAgICB9IGVsc2UgaWYgKGlzSW1tdXRhYmxlKHZhbHVlKSB8fCB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIHZhbHVlID0gc3RyaW5naWZ5KHZhbHVlKVxuICAgIH1cblxuICAgIGVycm9ycyA9IGVycm9ycy50b0pTID8gZXJyb3JzLnRvSlMoKSA6IFtdXG5cbiAgICByZXR1cm4gKDxEZWJvdW5jZUlucHV0XG4gICAgICB0eXBlPXtcInRleHRcIn1cbiAgICAgIGNsYXNzTmFtZT17ZXJyb3JzLmxlbmd0aCA/IFwiaW52YWxpZFwiIDogXCJcIn1cbiAgICAgIHRpdGxlPXtlcnJvcnMubGVuZ3RoID8gZXJyb3JzIDogXCJcIn1cbiAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgIG1pbkxlbmd0aD17MH1cbiAgICAgIGRlYm91bmNlVGltZW91dD17MzUwfVxuICAgICAgcGxhY2Vob2xkZXI9e2Rlc2NyaXB0aW9ufVxuICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2V9XG4gICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9IC8+KVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBKc29uU2NoZW1hQXJyYXlJdGVtRmlsZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBKc29uU2NoZW1hUHJvcFNoYXBlXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSBKc29uU2NoZW1hRGVmYXVsdFByb3BzXG5cbiAgb25GaWxlQ2hhbmdlID0gKGUpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LmZpbGVzWzBdXG4gICAgdGhpcy5wcm9wcy5vbkNoYW5nZSh2YWx1ZSwgdGhpcy5wcm9wcy5rZXlOYW1lKVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IGdldENvbXBvbmVudCwgZXJyb3JzLCBkaXNhYmxlZCB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IElucHV0ID0gZ2V0Q29tcG9uZW50KFwiSW5wdXRcIilcbiAgICBjb25zdCBpc0Rpc2FibGVkID0gZGlzYWJsZWQgfHwgIShcIkZvcm1EYXRhXCIgaW4gd2luZG93KVxuXG4gICAgcmV0dXJuICg8SW5wdXQgdHlwZT1cImZpbGVcIlxuICAgICAgY2xhc3NOYW1lPXtlcnJvcnMubGVuZ3RoID8gXCJpbnZhbGlkXCIgOiBcIlwifVxuICAgICAgdGl0bGU9e2Vycm9ycy5sZW5ndGggPyBlcnJvcnMgOiBcIlwifVxuICAgICAgb25DaGFuZ2U9e3RoaXMub25GaWxlQ2hhbmdlfVxuICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWR9IC8+KVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBKc29uU2NoZW1hX2Jvb2xlYW4gZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0gSnNvblNjaGVtYVByb3BTaGFwZVxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0gSnNvblNjaGVtYURlZmF1bHRQcm9wc1xuXG4gIG9uRW51bUNoYW5nZSA9ICh2YWwpID0+IHRoaXMucHJvcHMub25DaGFuZ2UodmFsKVxuICByZW5kZXIoKSB7XG4gICAgbGV0IHsgZ2V0Q29tcG9uZW50LCB2YWx1ZSwgZXJyb3JzLCBzY2hlbWEsIHJlcXVpcmVkLCBkaXNhYmxlZCB9ID0gdGhpcy5wcm9wc1xuICAgIGVycm9ycyA9IGVycm9ycy50b0pTID8gZXJyb3JzLnRvSlMoKSA6IFtdXG4gICAgbGV0IGVudW1WYWx1ZSA9IHNjaGVtYSAmJiBzY2hlbWEuZ2V0ID8gc2NoZW1hLmdldChcImVudW1cIikgOiBudWxsXG4gICAgbGV0IGFsbG93RW1wdHlWYWx1ZSA9ICFlbnVtVmFsdWUgfHwgIXJlcXVpcmVkXG4gICAgbGV0IGJvb2xlYW5WYWx1ZSA9ICFlbnVtVmFsdWUgJiYgW1widHJ1ZVwiLCBcImZhbHNlXCJdXG4gICAgY29uc3QgU2VsZWN0ID0gZ2V0Q29tcG9uZW50KFwiU2VsZWN0XCIpXG5cbiAgICByZXR1cm4gKDxTZWxlY3QgY2xhc3NOYW1lPXsgZXJyb3JzLmxlbmd0aCA/IFwiaW52YWxpZFwiIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9eyBlcnJvcnMubGVuZ3RoID8gZXJyb3JzIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9eyBTdHJpbmcodmFsdWUpIH1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyBkaXNhYmxlZCB9XG4gICAgICAgICAgICAgICAgICAgIGFsbG93ZWRWYWx1ZXM9eyBlbnVtVmFsdWUgPyBbLi4uZW51bVZhbHVlXSA6IGJvb2xlYW5WYWx1ZSB9XG4gICAgICAgICAgICAgICAgICAgIGFsbG93RW1wdHlWYWx1ZT17IGFsbG93RW1wdHlWYWx1ZSB9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsgdGhpcy5vbkVudW1DaGFuZ2UgfS8+KVxuICB9XG59XG5cbmNvbnN0IHN0cmluZ2lmeU9iamVjdEVycm9ycyA9IChlcnJvcnMpID0+IHtcbiAgcmV0dXJuIGVycm9ycy5tYXAoZXJyID0+IHtcbiAgICBjb25zdCBtZXRhID0gZXJyLnByb3BLZXkgIT09IHVuZGVmaW5lZCA/IGVyci5wcm9wS2V5IDogZXJyLmluZGV4XG4gICAgbGV0IHN0cmluZ0Vycm9yID0gdHlwZW9mIGVyciA9PT0gXCJzdHJpbmdcIiA/IGVyciA6IHR5cGVvZiBlcnIuZXJyb3IgPT09IFwic3RyaW5nXCIgPyBlcnIuZXJyb3IgOiBudWxsXG5cbiAgICBpZighbWV0YSAmJiBzdHJpbmdFcnJvcikge1xuICAgICAgcmV0dXJuIHN0cmluZ0Vycm9yXG4gICAgfVxuICAgIGxldCBjdXJyZW50RXJyb3IgPSBlcnIuZXJyb3JcbiAgICBsZXQgcGF0aCA9IGAvJHtlcnIucHJvcEtleX1gXG4gICAgd2hpbGUodHlwZW9mIGN1cnJlbnRFcnJvciA9PT0gXCJvYmplY3RcIikge1xuICAgICAgY29uc3QgcGFydCA9IGN1cnJlbnRFcnJvci5wcm9wS2V5ICE9PSB1bmRlZmluZWQgPyBjdXJyZW50RXJyb3IucHJvcEtleSA6IGN1cnJlbnRFcnJvci5pbmRleFxuICAgICAgaWYocGFydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBwYXRoICs9IGAvJHtwYXJ0fWBcbiAgICAgIGlmICghY3VycmVudEVycm9yLmVycm9yKSB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjdXJyZW50RXJyb3IgPSBjdXJyZW50RXJyb3IuZXJyb3JcbiAgICB9XG4gICAgcmV0dXJuIGAke3BhdGh9OiAke2N1cnJlbnRFcnJvcn1gXG4gIH0pXG59XG5cbmV4cG9ydCBjbGFzcyBKc29uU2NoZW1hX29iamVjdCBleHRlbmRzIFB1cmVDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpXG4gIH1cblxuICBzdGF0aWMgcHJvcFR5cGVzID0gSnNvblNjaGVtYVByb3BTaGFwZVxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0gSnNvblNjaGVtYURlZmF1bHRQcm9wc1xuXG4gIG9uQ2hhbmdlID0gKHZhbHVlKSA9PiB7XG4gICAgdGhpcy5wcm9wcy5vbkNoYW5nZSh2YWx1ZSlcbiAgfVxuXG4gIGhhbmRsZU9uQ2hhbmdlID0gZSA9PiB7XG4gICAgY29uc3QgaW5wdXRWYWx1ZSA9IGUudGFyZ2V0LnZhbHVlXG5cbiAgICB0aGlzLm9uQ2hhbmdlKGlucHV0VmFsdWUpXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHtcbiAgICAgIGdldENvbXBvbmVudCxcbiAgICAgIHZhbHVlLFxuICAgICAgZXJyb3JzLFxuICAgICAgZGlzYWJsZWRcbiAgICB9ID0gdGhpcy5wcm9wc1xuXG4gICAgY29uc3QgVGV4dEFyZWEgPSBnZXRDb21wb25lbnQoXCJUZXh0QXJlYVwiKVxuICAgIGVycm9ycyA9IGVycm9ycy50b0pTID8gZXJyb3JzLnRvSlMoKSA6IEFycmF5LmlzQXJyYXkoZXJyb3JzKSA/IGVycm9ycyA6IFtdXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPFRleHRBcmVhXG4gICAgICAgICAgY2xhc3NOYW1lPXtjeCh7IGludmFsaWQ6IGVycm9ycy5sZW5ndGggfSl9XG4gICAgICAgICAgdGl0bGU9eyBlcnJvcnMubGVuZ3RoID8gc3RyaW5naWZ5T2JqZWN0RXJyb3JzKGVycm9ycykuam9pbihcIiwgXCIpIDogXCJcIn1cbiAgICAgICAgICB2YWx1ZT17c3RyaW5naWZ5KHZhbHVlKX1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgb25DaGFuZ2U9eyB0aGlzLmhhbmRsZU9uQ2hhbmdlIH0vPlxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG59XG5cbmZ1bmN0aW9uIHZhbHVlT3JFbXB0eUxpc3QodmFsdWUpIHtcbiAgcmV0dXJuIExpc3QuaXNMaXN0KHZhbHVlKSA/IHZhbHVlIDogQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBmcm9tSlModmFsdWUpIDogTGlzdCgpXG59XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHsgaW1tdXRhYmxlVG9KUyB9IGZyb20gXCJjb3JlL3V0aWxzXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5cbmV4cG9ydCBjb25zdCBNb2RlbEV4dGVuc2lvbnMgPSAoeyBleHRlbnNpb25zLCBwcm9wQ2xhc3MgPSBcIlwiIH0pID0+IHtcbiAgcmV0dXJuIGV4dGVuc2lvbnNcbiAgICAuZW50cnlTZXEoKVxuICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgY29uc3Qgbm9ybWFsaXplZFZhbHVlID0gaW1tdXRhYmxlVG9KUyh2YWx1ZSkgPz8gbnVsbFxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8dHIga2V5PXtrZXl9IGNsYXNzTmFtZT17cHJvcENsYXNzfT5cbiAgICAgICAgICA8dGQ+e2tleX08L3RkPlxuICAgICAgICAgIDx0ZD57SlNPTi5zdHJpbmdpZnkobm9ybWFsaXplZFZhbHVlKX08L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgKVxuICAgIH0pXG4gICAgLnRvQXJyYXkoKVxufVxuXG5Nb2RlbEV4dGVuc2lvbnMucHJvcFR5cGVzID0ge1xuICBleHRlbnNpb25zOiBJbVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgcHJvcENsYXNzOiBQcm9wVHlwZXMuc3RyaW5nLFxufVxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJsb2Rhc2gvaXNQbGFpbk9iamVjdFwiKTsiLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBNYXAgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCBpc1BsYWluT2JqZWN0IGZyb20gXCJsb2Rhc2gvaXNQbGFpbk9iamVjdFwiXG5pbXBvcnQgeyBpbW11dGFibGVUb0pTIH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuXG5leHBvcnQgY29uc3QgaGFzU2NoZW1hVHlwZSA9IChzY2hlbWEsIHR5cGUpID0+IHtcbiAgY29uc3QgaXNTY2hlbWFJbW11dGFibGUgPSBNYXAuaXNNYXAoc2NoZW1hKVxuXG4gIGlmICghaXNTY2hlbWFJbW11dGFibGUgJiYgIWlzUGxhaW5PYmplY3Qoc2NoZW1hKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY29uc3Qgc2NoZW1hVHlwZSA9IGlzU2NoZW1hSW1tdXRhYmxlID8gc2NoZW1hLmdldChcInR5cGVcIikgOiBzY2hlbWEudHlwZVxuXG4gIHJldHVybiAoXG4gICAgdHlwZSA9PT0gc2NoZW1hVHlwZSB8fCAoQXJyYXkuaXNBcnJheSh0eXBlKSAmJiB0eXBlLmluY2x1ZGVzKHNjaGVtYVR5cGUpKVxuICApXG59XG5cbmNvbnN0IGdldFR5cGUgPSAoc2NoZW1hLCBwcm9jZXNzZWRTY2hlbWFzID0gbmV3IFdlYWtTZXQoKSkgPT4ge1xuICBpZiAoc2NoZW1hID09IG51bGwpIHtcbiAgICByZXR1cm4gXCJhbnlcIlxuICB9XG5cbiAgaWYgKHByb2Nlc3NlZFNjaGVtYXMuaGFzKHNjaGVtYSkpIHtcbiAgICByZXR1cm4gXCJhbnlcIiAvLyBkZXRlY3QgYSBjeWNsZVxuICB9XG5cbiAgcHJvY2Vzc2VkU2NoZW1hcy5hZGQoc2NoZW1hKVxuXG4gIGNvbnN0IHsgdHlwZSwgaXRlbXMgfSA9IHNjaGVtYVxuXG4gIGNvbnN0IGdldEFycmF5VHlwZSA9ICgpID0+IHtcbiAgICBpZiAoaXRlbXMpIHtcbiAgICAgIGNvbnN0IGl0ZW1zVHlwZSA9IGdldFR5cGUoaXRlbXMsIHByb2Nlc3NlZFNjaGVtYXMpXG4gICAgICByZXR1cm4gYGFycmF5PCR7aXRlbXNUeXBlfT5gXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBcImFycmF5PGFueT5cIlxuICAgIH1cbiAgfVxuXG4gIGlmIChPYmplY3QuaGFzT3duKHNjaGVtYSwgXCJpdGVtc1wiKSkge1xuICAgIHJldHVybiBnZXRBcnJheVR5cGUoKVxuICB9XG4gIHJldHVybiB0eXBlXG59XG5cbmV4cG9ydCBjb25zdCBnZXRTY2hlbWFPYmplY3RUeXBlTGFiZWwgPSAoc2NoZW1hKSA9PlxuICBnZXRUeXBlKGltbXV0YWJsZVRvSlMoc2NoZW1hKSlcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBNb2RlbENvbGxhcHNlIGZyb20gXCIuL2NvbXBvbmVudHMvbW9kZWwtY29sbGFwc2VcIlxuaW1wb3J0IE1vZGVsRXhhbXBsZSBmcm9tIFwiLi9jb21wb25lbnRzL21vZGVsLWV4YW1wbGVcIlxuaW1wb3J0IE1vZGVsV3JhcHBlciBmcm9tIFwiLi9jb21wb25lbnRzL21vZGVsLXdyYXBwZXJcIlxuaW1wb3J0IE1vZGVsIGZyb20gXCIuL2NvbXBvbmVudHMvbW9kZWxcIlxuaW1wb3J0IE1vZGVscyBmcm9tIFwiLi9jb21wb25lbnRzL21vZGVsc1wiXG5pbXBvcnQgRW51bU1vZGVsIGZyb20gXCIuL2NvbXBvbmVudHMvZW51bS1tb2RlbFwiXG5pbXBvcnQgT2JqZWN0TW9kZWwgZnJvbSBcIi4vY29tcG9uZW50cy9vYmplY3QtbW9kZWxcIlxuaW1wb3J0IEFycmF5TW9kZWwgZnJvbSBcIi4vY29tcG9uZW50cy9hcnJheS1tb2RlbFwiXG5pbXBvcnQgUHJpbWl0aXZlTW9kZWwgZnJvbSBcIi4vY29tcG9uZW50cy9wcmltaXRpdmUtbW9kZWxcIlxuaW1wb3J0IFNjaGVtZXMgZnJvbSBcIi4vY29tcG9uZW50cy9zY2hlbWVzXCJcbmltcG9ydCBTY2hlbWVzQ29udGFpbmVyIGZyb20gXCIuL2NvbnRhaW5lcnMvc2NoZW1lc1wiXG5pbXBvcnQgKiBhcyBKU09OU2NoZW1hQ29tcG9uZW50cyBmcm9tIFwiLi9jb21wb25lbnRzL2pzb24tc2NoZW1hLWNvbXBvbmVudHNcIlxuaW1wb3J0IHsgTW9kZWxFeHRlbnNpb25zIH0gZnJvbSBcIi4vY29tcG9uZW50cy9tb2RlbC1leHRlbnNpb25zXCJcbmltcG9ydCB7IGdldFNjaGVtYU9iamVjdFR5cGVMYWJlbCwgaGFzU2NoZW1hVHlwZSB9IGZyb20gXCIuL2ZuXCJcblxuY29uc3QgSlNPTlNjaGVtYTVQbHVnaW4gPSAoKSA9PiAoe1xuICBjb21wb25lbnRzOiB7XG4gICAgbW9kZWxFeGFtcGxlOiBNb2RlbEV4YW1wbGUsXG4gICAgTW9kZWxXcmFwcGVyLFxuICAgIE1vZGVsQ29sbGFwc2UsXG4gICAgTW9kZWwsXG4gICAgTW9kZWxzLFxuICAgIEVudW1Nb2RlbCxcbiAgICBPYmplY3RNb2RlbCxcbiAgICBBcnJheU1vZGVsLFxuICAgIFByaW1pdGl2ZU1vZGVsLFxuICAgIE1vZGVsRXh0ZW5zaW9ucyxcbiAgICBzY2hlbWVzOiBTY2hlbWVzLFxuICAgIFNjaGVtZXNDb250YWluZXIsXG4gICAgLi4uSlNPTlNjaGVtYUNvbXBvbmVudHMsXG4gIH0sXG4gIGZuOiB7XG4gICAgaGFzU2NoZW1hVHlwZSxcbiAgICBnZXRTY2hlbWFPYmplY3RUeXBlTGFiZWwsXG4gIH0sXG59KVxuXG5leHBvcnQgZGVmYXVsdCBKU09OU2NoZW1hNVBsdWdpblxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJ4bWxcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyYW5kZXhwXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwibG9kYXNoL2lzRW1wdHlcIik7IiwiaW1wb3J0IG1lbW9pemUgZnJvbSBcImxvZGFzaC9tZW1vaXplXCJcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIGV4dGVuc2lvbiBvbiB0b3Agb2YgbG9kYXNoLm1lbW9pemUuXG4gKiBJdCB1c2VzIGFsbCB0aGUgYXJndW1lbnRzIG9mIHRoZSBgZm5gIGFzIHRoZSBjYWNoZSBrZXkgaW5zdGVhZCBvZiBqdXN0IHRoZSBmaXJzdCBvbmUuXG4gKiBJZiByZXNvbHZlciBpcyBwcm92aWRlZCwgaXQgZGV0ZXJtaW5lcyB0aGUgY2FjaGUga2V5IGZvclxuICogc3RvcmluZyB0aGUgcmVzdWx0IGJhc2VkIG9uIHRoZSBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIG1lbW9pemVkIGZ1bmN0aW9uLlxuICovXG5cbmNvbnN0IHNoYWxsb3dBcnJheUVxdWFscyA9IChhKSA9PiAoYikgPT4ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShhKSAmJiBBcnJheS5pc0FycmF5KGIpXG4gICAgJiYgYS5sZW5ndGggPT09IGIubGVuZ3RoXG4gICAgJiYgYS5ldmVyeSgodmFsLCBpbmRleCkgPT4gdmFsID09PSBiW2luZGV4XSlcbn1cblxuY29uc3QgbGlzdCA9ICguLi5hcmdzKSA9PiBhcmdzXG5cbmNsYXNzIENhY2hlIGV4dGVuZHMgTWFwIHtcbiAgZGVsZXRlKGtleSkge1xuICAgIGNvbnN0IGtleXMgPSBBcnJheS5mcm9tKHRoaXMua2V5cygpKVxuICAgIGNvbnN0IGZvdW5kS2V5ID0ga2V5cy5maW5kKHNoYWxsb3dBcnJheUVxdWFscyhrZXkpKVxuICAgIHJldHVybiBzdXBlci5kZWxldGUoZm91bmRLZXkpXG4gIH1cblxuICBnZXQoa2V5KSB7XG4gICAgY29uc3Qga2V5cyA9IEFycmF5LmZyb20odGhpcy5rZXlzKCkpXG4gICAgY29uc3QgZm91bmRLZXkgPSBrZXlzLmZpbmQoc2hhbGxvd0FycmF5RXF1YWxzKGtleSkpXG4gICAgcmV0dXJuIHN1cGVyLmdldChmb3VuZEtleSlcbiAgfVxuXG4gIGhhcyhrZXkpIHtcbiAgICBjb25zdCBrZXlzID0gQXJyYXkuZnJvbSh0aGlzLmtleXMoKSlcbiAgICByZXR1cm4ga2V5cy5maW5kSW5kZXgoc2hhbGxvd0FycmF5RXF1YWxzKGtleSkpICE9PSAtMVxuICB9XG59XG5cbmNvbnN0IG1lbW9pemVOID0gKGZuLCByZXNvbHZlciA9IGxpc3QpID0+IHtcbiAgY29uc3QgeyBDYWNoZTogT3JpZ2luYWxDYWNoZSB9ID0gbWVtb2l6ZVxuICBtZW1vaXplLkNhY2hlID0gQ2FjaGVcblxuICBjb25zdCBtZW1vaXplZCA9IG1lbW9pemUoZm4sIHJlc29sdmVyKVxuXG4gIG1lbW9pemUuQ2FjaGUgPSBPcmlnaW5hbENhY2hlXG5cbiAgcmV0dXJuIG1lbW9pemVkXG59XG5cbmV4cG9ydCBkZWZhdWx0IG1lbW9pemVOXG4iLCJpbXBvcnQgWE1MIGZyb20gXCJ4bWxcIlxuaW1wb3J0IFJhbmRFeHAgZnJvbSBcInJhbmRleHBcIlxuaW1wb3J0IGlzRW1wdHkgZnJvbSBcImxvZGFzaC9pc0VtcHR5XCJcbmltcG9ydCB7IGRlZXBseVN0cmlwS2V5LCBpc0Z1bmMsIG5vcm1hbGl6ZUFycmF5LCBvYmplY3RpZnksIGltbXV0YWJsZVRvSlMgfSBmcm9tIFwiY29yZS91dGlsc1wiXG5pbXBvcnQgbWVtb2l6ZU4gZnJvbSBcImNvcmUvdXRpbHMvbWVtb2l6ZU5cIlxuXG5jb25zdCBnZW5lcmF0ZVN0cmluZ0Zyb21SZWdleCA9IChwYXR0ZXJuKSA9PiB7XG4gIHRyeSB7XG4gICAgLyoqXG4gICAgICogQXBwbHlpbmcgbWF4aW11bSB2YWx1ZSAoMTAwKSB0byBudW1iZXJzIGZyb20gcmVnZXggcGF0dGVybnMgdG8gYXZvaWQgUmVEb1M6XG4gICAgICogMS4ge3h9XG4gICAgICogMi4ge3gsfVxuICAgICAqIDMuIHsseX1cbiAgICAgKiA0LiB7eCx5fVxuICAgICAqL1xuICAgIGNvbnN0IHBhdHRlcm5TYW5pdGl6ZXIgPVxuICAgICAgLyg/PD0oPzwhXFxcXClcXHspKFxcZHszLH0pKD89XFx9KXwoPzw9KD88IVxcXFwpXFx7XFxkKiwpKFxcZHszLH0pKD89XFx9KXwoPzw9KD88IVxcXFwpXFx7KShcXGR7Myx9KSg/PSxcXGQqXFx9KS9nXG4gICAgY29uc3Qgc2FmZVBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UocGF0dGVyblNhbml0aXplciwgXCIxMDBcIilcbiAgICBjb25zdCByYW5kZXhwSW5zdGFuY2UgPSBuZXcgUmFuZEV4cChzYWZlUGF0dGVybilcbiAgICByYW5kZXhwSW5zdGFuY2UubWF4ID0gMTAwXG4gICAgcmV0dXJuIHJhbmRleHBJbnN0YW5jZS5nZW4oKVxuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gSW52YWxpZCByZWdleCBzaG91bGQgbm90IGNhdXNlIGEgY3Jhc2ggKHJlZ2V4IHN5bnRheCB2YXJpZXMgYWNyb3NzIGxhbmd1YWdlcylcbiAgICByZXR1cm4gXCJzdHJpbmdcIlxuICB9XG59XG5cbmNvbnN0IHByaW1pdGl2ZXMgPSB7XG4gIFwic3RyaW5nXCI6IChzY2hlbWEpID0+IHNjaGVtYS5wYXR0ZXJuID8gZ2VuZXJhdGVTdHJpbmdGcm9tUmVnZXgoc2NoZW1hLnBhdHRlcm4pIDogXCJzdHJpbmdcIixcbiAgXCJzdHJpbmdfZW1haWxcIjogKCkgPT4gXCJ1c2VyQGV4YW1wbGUuY29tXCIsXG4gIFwic3RyaW5nX2RhdGUtdGltZVwiOiAoKSA9PiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gIFwic3RyaW5nX2RhdGVcIjogKCkgPT4gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnN1YnN0cmluZygwLCAxMCksXG4gIFwic3RyaW5nX3RpbWVcIjogKCkgPT4gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnN1YnN0cmluZygxMSksXG4gIFwic3RyaW5nX3V1aWRcIjogKCkgPT4gXCIzZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTZcIixcbiAgXCJzdHJpbmdfaG9zdG5hbWVcIjogKCkgPT4gXCJleGFtcGxlLmNvbVwiLFxuICBcInN0cmluZ19pcHY0XCI6ICgpID0+IFwiMTk4LjUxLjEwMC40MlwiLFxuICBcInN0cmluZ19pcHY2XCI6ICgpID0+IFwiMjAwMTowZGI4OjViOTY6MDAwMDowMDAwOjQyNmY6OGUxNzo2NDJhXCIsXG4gIFwibnVtYmVyXCI6ICgpID0+IDAsXG4gIFwibnVtYmVyX2Zsb2F0XCI6ICgpID0+IDAuMCxcbiAgXCJpbnRlZ2VyXCI6ICgpID0+IDAsXG4gIFwiYm9vbGVhblwiOiAoc2NoZW1hKSA9PiB0eXBlb2Ygc2NoZW1hLmRlZmF1bHQgPT09IFwiYm9vbGVhblwiID8gc2NoZW1hLmRlZmF1bHQgOiB0cnVlXG59XG5cbmNvbnN0IHByaW1pdGl2ZSA9IChzY2hlbWEpID0+IHtcbiAgc2NoZW1hID0gb2JqZWN0aWZ5KHNjaGVtYSlcbiAgbGV0IHsgdHlwZSwgZm9ybWF0IH0gPSBzY2hlbWFcblxuICBsZXQgZm4gPSBwcmltaXRpdmVzW2Ake3R5cGV9XyR7Zm9ybWF0fWBdIHx8IHByaW1pdGl2ZXNbdHlwZV1cblxuICBpZihpc0Z1bmMoZm4pKVxuICAgIHJldHVybiBmbihzY2hlbWEpXG5cbiAgcmV0dXJuIFwiVW5rbm93biBUeXBlOiBcIiArIHNjaGVtYS50eXBlXG59XG5cbi8vIGRvIGEgY291cGxlIG9mIHF1aWNrIHNhbml0eSB0ZXN0cyB0byBlbnN1cmUgdGhlIHZhbHVlXG4vLyBsb29rcyBsaWtlIGEgJCRyZWYgdGhhdCBzd2FnZ2VyLWNsaWVudCBnZW5lcmF0ZXMuXG5jb25zdCBzYW5pdGl6ZVJlZiA9ICh2YWx1ZSkgPT4gZGVlcGx5U3RyaXBLZXkodmFsdWUsIFwiJCRyZWZcIiwgKHZhbCkgPT5cbiAgdHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIiAmJiB2YWwuaW5kZXhPZihcIiNcIikgPiAtMSlcblxuY29uc3Qgb2JqZWN0Q29udHJhY3RzID0gW1wibWF4UHJvcGVydGllc1wiLCBcIm1pblByb3BlcnRpZXNcIl1cbmNvbnN0IGFycmF5Q29udHJhY3RzID0gW1wibWluSXRlbXNcIiwgXCJtYXhJdGVtc1wiXVxuY29uc3QgbnVtYmVyQ29udHJhY3RzID0gW1xuICBcIm1pbmltdW1cIixcbiAgXCJtYXhpbXVtXCIsXG4gIFwiZXhjbHVzaXZlTWluaW11bVwiLFxuICBcImV4Y2x1c2l2ZU1heGltdW1cIlxuXVxuY29uc3Qgc3RyaW5nQ29udHJhY3RzID0gW1wibWluTGVuZ3RoXCIsIFwibWF4TGVuZ3RoXCJdXG5cbmV4cG9ydCBjb25zdCBtZXJnZUpzb25TY2hlbWEgPSAodGFyZ2V0LCBzb3VyY2UsIGNvbmZpZyA9IHt9KSA9PiB7XG4gIGNvbnN0IG1lcmdlZCA9IHsgLi4udGFyZ2V0IH1cblxuICBjb25zdCBzZXRJZk5vdERlZmluZWRJblRhcmdldCA9IChrZXkpID0+IHtcbiAgICBpZihtZXJnZWRba2V5XSA9PT0gdW5kZWZpbmVkICYmIHNvdXJjZVtrZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG1lcmdlZFtrZXldID0gc291cmNlW2tleV1cbiAgICB9XG4gIH1cblxuICBbXG4gICAgXCJleGFtcGxlXCIsXG4gICAgXCJkZWZhdWx0XCIsXG4gICAgXCJlbnVtXCIsXG4gICAgXCJ4bWxcIixcbiAgICBcInR5cGVcIixcbiAgICAuLi5vYmplY3RDb250cmFjdHMsXG4gICAgLi4uYXJyYXlDb250cmFjdHMsXG4gICAgLi4ubnVtYmVyQ29udHJhY3RzLFxuICAgIC4uLnN0cmluZ0NvbnRyYWN0cyxcbiAgXS5mb3JFYWNoKGtleSA9PiBzZXRJZk5vdERlZmluZWRJblRhcmdldChrZXkpKVxuXG4gIGlmKHNvdXJjZS5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkICYmIEFycmF5LmlzQXJyYXkoc291cmNlLnJlcXVpcmVkKSkge1xuICAgIGlmKG1lcmdlZC5yZXF1aXJlZCA9PT0gdW5kZWZpbmVkIHx8ICFtZXJnZWQucmVxdWlyZWQubGVuZ3RoKSB7XG4gICAgICBtZXJnZWQucmVxdWlyZWQgPSBbXVxuICAgIH1cbiAgICBzb3VyY2UucmVxdWlyZWQuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYobWVyZ2VkLnJlcXVpcmVkLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBtZXJnZWQucmVxdWlyZWQucHVzaChrZXkpXG4gICAgfSlcbiAgfVxuICBpZihzb3VyY2UucHJvcGVydGllcykge1xuICAgIGlmKCFtZXJnZWQucHJvcGVydGllcykge1xuICAgICAgbWVyZ2VkLnByb3BlcnRpZXMgPSB7fVxuICAgIH1cbiAgICBsZXQgcHJvcHMgPSBvYmplY3RpZnkoc291cmNlLnByb3BlcnRpZXMpXG4gICAgZm9yIChsZXQgcHJvcE5hbWUgaW4gcHJvcHMpIHtcbiAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BzLCBwcm9wTmFtZSkpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmICggcHJvcHNbcHJvcE5hbWVdICYmIHByb3BzW3Byb3BOYW1lXS5kZXByZWNhdGVkICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKCBwcm9wc1twcm9wTmFtZV0gJiYgcHJvcHNbcHJvcE5hbWVdLnJlYWRPbmx5ICYmICFjb25maWcuaW5jbHVkZVJlYWRPbmx5ICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKCBwcm9wc1twcm9wTmFtZV0gJiYgcHJvcHNbcHJvcE5hbWVdLndyaXRlT25seSAmJiAhY29uZmlnLmluY2x1ZGVXcml0ZU9ubHkgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZighbWVyZ2VkLnByb3BlcnRpZXNbcHJvcE5hbWVdKSB7XG4gICAgICAgIG1lcmdlZC5wcm9wZXJ0aWVzW3Byb3BOYW1lXSA9IHByb3BzW3Byb3BOYW1lXVxuICAgICAgICBpZighc291cmNlLnJlcXVpcmVkICYmIEFycmF5LmlzQXJyYXkoc291cmNlLnJlcXVpcmVkKSAmJiBzb3VyY2UucmVxdWlyZWQuaW5kZXhPZihwcm9wTmFtZSkgIT09IC0xKSB7XG4gICAgICAgICAgaWYoIW1lcmdlZC5yZXF1aXJlZCkge1xuICAgICAgICAgICAgbWVyZ2VkLnJlcXVpcmVkID0gW3Byb3BOYW1lXVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtZXJnZWQucmVxdWlyZWQucHVzaChwcm9wTmFtZSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYoc291cmNlLml0ZW1zKSB7XG4gICAgaWYoIW1lcmdlZC5pdGVtcykge1xuICAgICAgbWVyZ2VkLml0ZW1zID0ge31cbiAgICB9XG4gICAgbWVyZ2VkLml0ZW1zID0gbWVyZ2VKc29uU2NoZW1hKG1lcmdlZC5pdGVtcywgc291cmNlLml0ZW1zLCBjb25maWcpXG4gIH1cblxuICByZXR1cm4gbWVyZ2VkXG59XG5cbmV4cG9ydCBjb25zdCBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyA9IChzY2hlbWEsIGNvbmZpZz17fSwgZXhhbXBsZU92ZXJyaWRlID0gdW5kZWZpbmVkLCByZXNwZWN0WE1MID0gZmFsc2UpID0+IHtcbiAgaWYoc2NoZW1hICYmIGlzRnVuYyhzY2hlbWEudG9KUykpXG4gICAgc2NoZW1hID0gc2NoZW1hLnRvSlMoKVxuICBsZXQgdXNlUGxhaW5WYWx1ZSA9IGV4YW1wbGVPdmVycmlkZSAhPT0gdW5kZWZpbmVkIHx8IHNjaGVtYSAmJiBzY2hlbWEuZXhhbXBsZSAhPT0gdW5kZWZpbmVkIHx8IHNjaGVtYSAmJiBzY2hlbWEuZGVmYXVsdCAhPT0gdW5kZWZpbmVkXG4gIC8vIGZpcnN0IGNoZWNrIGlmIHRoZXJlIGlzIHRoZSBuZWVkIG9mIGNvbWJpbmluZyB0aGlzIHNjaGVtYSB3aXRoIG90aGVycyByZXF1aXJlZCBieSBhbGxPZlxuICBjb25zdCBoYXNPbmVPZiA9ICF1c2VQbGFpblZhbHVlICYmIHNjaGVtYSAmJiBzY2hlbWEub25lT2YgJiYgc2NoZW1hLm9uZU9mLmxlbmd0aCA+IDBcbiAgY29uc3QgaGFzQW55T2YgPSAhdXNlUGxhaW5WYWx1ZSAmJiBzY2hlbWEgJiYgc2NoZW1hLmFueU9mICYmIHNjaGVtYS5hbnlPZi5sZW5ndGggPiAwXG4gIGlmKCF1c2VQbGFpblZhbHVlICYmIChoYXNPbmVPZiB8fCBoYXNBbnlPZikpIHtcbiAgICBjb25zdCBzY2hlbWFUb0FkZCA9IG9iamVjdGlmeShoYXNPbmVPZlxuICAgICAgPyBzY2hlbWEub25lT2ZbMF1cbiAgICAgIDogc2NoZW1hLmFueU9mWzBdXG4gICAgKVxuICAgIHNjaGVtYSA9IG1lcmdlSnNvblNjaGVtYShzY2hlbWEsIHNjaGVtYVRvQWRkLCBjb25maWcpXG4gICAgaWYoIXNjaGVtYS54bWwgJiYgc2NoZW1hVG9BZGQueG1sKSB7XG4gICAgICBzY2hlbWEueG1sID0gc2NoZW1hVG9BZGQueG1sXG4gICAgfVxuICAgIGlmKHNjaGVtYS5leGFtcGxlICE9PSB1bmRlZmluZWQgJiYgc2NoZW1hVG9BZGQuZXhhbXBsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB1c2VQbGFpblZhbHVlID0gdHJ1ZVxuICAgIH0gZWxzZSBpZihzY2hlbWFUb0FkZC5wcm9wZXJ0aWVzKSB7XG4gICAgICBpZighc2NoZW1hLnByb3BlcnRpZXMpIHtcbiAgICAgICAgc2NoZW1hLnByb3BlcnRpZXMgPSB7fVxuICAgICAgfVxuICAgICAgbGV0IHByb3BzID0gb2JqZWN0aWZ5KHNjaGVtYVRvQWRkLnByb3BlcnRpZXMpXG4gICAgICBmb3IgKGxldCBwcm9wTmFtZSBpbiBwcm9wcykge1xuICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcywgcHJvcE5hbWUpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBpZiAoIHByb3BzW3Byb3BOYW1lXSAmJiBwcm9wc1twcm9wTmFtZV0uZGVwcmVjYXRlZCApIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGlmICggcHJvcHNbcHJvcE5hbWVdICYmIHByb3BzW3Byb3BOYW1lXS5yZWFkT25seSAmJiAhY29uZmlnLmluY2x1ZGVSZWFkT25seSApIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGlmICggcHJvcHNbcHJvcE5hbWVdICYmIHByb3BzW3Byb3BOYW1lXS53cml0ZU9ubHkgJiYgIWNvbmZpZy5pbmNsdWRlV3JpdGVPbmx5ICkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgaWYoIXNjaGVtYS5wcm9wZXJ0aWVzW3Byb3BOYW1lXSkge1xuICAgICAgICAgIHNjaGVtYS5wcm9wZXJ0aWVzW3Byb3BOYW1lXSA9IHByb3BzW3Byb3BOYW1lXVxuICAgICAgICAgIGlmKCFzY2hlbWFUb0FkZC5yZXF1aXJlZCAmJiBBcnJheS5pc0FycmF5KHNjaGVtYVRvQWRkLnJlcXVpcmVkKSAmJiBzY2hlbWFUb0FkZC5yZXF1aXJlZC5pbmRleE9mKHByb3BOYW1lKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIGlmKCFzY2hlbWEucmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgc2NoZW1hLnJlcXVpcmVkID0gW3Byb3BOYW1lXVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgc2NoZW1hLnJlcXVpcmVkLnB1c2gocHJvcE5hbWUpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNvbnN0IF9hdHRyID0ge31cbiAgbGV0IHsgeG1sLCB0eXBlLCBleGFtcGxlLCBwcm9wZXJ0aWVzLCBhZGRpdGlvbmFsUHJvcGVydGllcywgaXRlbXMgfSA9IHNjaGVtYSB8fCB7fVxuICBsZXQgeyBpbmNsdWRlUmVhZE9ubHksIGluY2x1ZGVXcml0ZU9ubHkgfSA9IGNvbmZpZ1xuICB4bWwgPSB4bWwgfHwge31cbiAgbGV0IHsgbmFtZSwgcHJlZml4LCBuYW1lc3BhY2UgfSA9IHhtbFxuICBsZXQgZGlzcGxheU5hbWVcbiAgbGV0IHJlcyA9IHt9XG5cbiAgLy8gc2V0IHhtbCBuYW1pbmcgYW5kIGF0dHJpYnV0ZXNcbiAgaWYocmVzcGVjdFhNTCkge1xuICAgIG5hbWUgPSBuYW1lIHx8IFwibm90YWduYW1lXCJcbiAgICAvLyBhZGQgcHJlZml4IHRvIG5hbWUgaWYgZXhpc3RzXG4gICAgZGlzcGxheU5hbWUgPSAocHJlZml4ID8gcHJlZml4ICsgXCI6XCIgOiBcIlwiKSArIG5hbWVcbiAgICBpZiAoIG5hbWVzcGFjZSApIHtcbiAgICAgIC8vYWRkIHByZWZpeCB0byBuYW1lc3BhY2UgaWYgZXhpc3RzXG4gICAgICBsZXQgbmFtZXNwYWNlUHJlZml4ID0gcHJlZml4ID8gKCBcInhtbG5zOlwiICsgcHJlZml4ICkgOiBcInhtbG5zXCJcbiAgICAgIF9hdHRyW25hbWVzcGFjZVByZWZpeF0gPSBuYW1lc3BhY2VcbiAgICB9XG4gIH1cblxuICAvLyBpbml0IHhtbCBkZWZhdWx0IHJlc3BvbnNlIHNhbXBsZSBvYmpcbiAgaWYocmVzcGVjdFhNTCkge1xuICAgIHJlc1tkaXNwbGF5TmFtZV0gPSBbXVxuICB9XG5cbiAgY29uc3Qgc2NoZW1hSGFzQW55ID0gKGtleXMpID0+IGtleXMuc29tZShrZXkgPT4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNjaGVtYSwga2V5KSlcbiAgLy8gdHJ5IHJlY292ZXIgbWlzc2luZyB0eXBlXG4gIGlmKHNjaGVtYSAmJiAhdHlwZSkge1xuICAgIGlmKHByb3BlcnRpZXMgfHwgYWRkaXRpb25hbFByb3BlcnRpZXMgfHwgc2NoZW1hSGFzQW55KG9iamVjdENvbnRyYWN0cykpIHtcbiAgICAgIHR5cGUgPSBcIm9iamVjdFwiXG4gICAgfSBlbHNlIGlmKGl0ZW1zIHx8IHNjaGVtYUhhc0FueShhcnJheUNvbnRyYWN0cykpIHtcbiAgICAgIHR5cGUgPSBcImFycmF5XCJcbiAgICB9IGVsc2UgaWYoc2NoZW1hSGFzQW55KG51bWJlckNvbnRyYWN0cykpIHtcbiAgICAgIHR5cGUgPSBcIm51bWJlclwiXG4gICAgICBzY2hlbWEudHlwZSA9IFwibnVtYmVyXCJcbiAgICB9IGVsc2UgaWYoIXVzZVBsYWluVmFsdWUgJiYgIXNjaGVtYS5lbnVtKXtcbiAgICAgIC8vIGltcGxpY2l0IGNvdmVyIHNjaGVtYUhhc0FueShzdHJpbmdDb250cmFjdHMpIG9yIEEgc2NoZW1hIHdpdGhvdXQgYSB0eXBlIG1hdGNoZXMgYW55IGRhdGEgdHlwZSBpczpcbiAgICAgIC8vIGNvbXBvbmVudHM6XG4gICAgICAvLyAgIHNjaGVtYXM6XG4gICAgICAvLyAgICAgQW55VmFsdWU6XG4gICAgICAvLyAgICAgICBhbnlPZjpcbiAgICAgIC8vICAgICAgICAgLSB0eXBlOiBzdHJpbmdcbiAgICAgIC8vICAgICAgICAgLSB0eXBlOiBudW1iZXJcbiAgICAgIC8vICAgICAgICAgLSB0eXBlOiBpbnRlZ2VyXG4gICAgICAvLyAgICAgICAgIC0gdHlwZTogYm9vbGVhblxuICAgICAgLy8gICAgICAgICAtIHR5cGU6IGFycmF5XG4gICAgICAvLyAgICAgICAgICAgaXRlbXM6IHt9XG4gICAgICAvLyAgICAgICAgIC0gdHlwZTogb2JqZWN0XG4gICAgICAvL1xuICAgICAgLy8gd2hpY2ggd291bGQgcmVzb2x2ZSB0byB0eXBlOiBzdHJpbmdcbiAgICAgIHR5cGUgPSBcInN0cmluZ1wiXG4gICAgICBzY2hlbWEudHlwZSA9IFwic3RyaW5nXCJcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVNaW5NYXhJdGVtcyA9IChzYW1wbGVBcnJheSkgPT4ge1xuICAgIGlmIChzY2hlbWE/Lm1heEl0ZW1zICE9PSBudWxsICYmIHNjaGVtYT8ubWF4SXRlbXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgc2FtcGxlQXJyYXkgPSBzYW1wbGVBcnJheS5zbGljZSgwLCBzY2hlbWE/Lm1heEl0ZW1zKVxuICAgIH1cbiAgICBpZiAoc2NoZW1hPy5taW5JdGVtcyAhPT0gbnVsbCAmJiBzY2hlbWE/Lm1pbkl0ZW1zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCBpID0gMFxuICAgICAgd2hpbGUgKHNhbXBsZUFycmF5Lmxlbmd0aCA8IHNjaGVtYT8ubWluSXRlbXMpIHtcbiAgICAgICAgc2FtcGxlQXJyYXkucHVzaChzYW1wbGVBcnJheVtpKysgJSBzYW1wbGVBcnJheS5sZW5ndGhdKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc2FtcGxlQXJyYXlcbiAgfVxuXG4gIC8vIGFkZCB0byByZXN1bHQgaGVscGVyIGluaXQgZm9yIHhtbCBvciBqc29uXG4gIGNvbnN0IHByb3BzID0gb2JqZWN0aWZ5KHByb3BlcnRpZXMpXG4gIGxldCBhZGRQcm9wZXJ0eVRvUmVzdWx0XG4gIGxldCBwcm9wZXJ0eUFkZGVkQ291bnRlciA9IDBcblxuICBjb25zdCBoYXNFeGNlZWRlZE1heFByb3BlcnRpZXMgPSAoKSA9PiBzY2hlbWFcbiAgICAmJiBzY2hlbWEubWF4UHJvcGVydGllcyAhPT0gbnVsbCAmJiBzY2hlbWEubWF4UHJvcGVydGllcyAhPT0gdW5kZWZpbmVkXG4gICAgJiYgcHJvcGVydHlBZGRlZENvdW50ZXIgPj0gc2NoZW1hLm1heFByb3BlcnRpZXNcblxuICBjb25zdCByZXF1aXJlZFByb3BlcnRpZXNUb0FkZCA9ICgpID0+IHtcbiAgICBpZighc2NoZW1hIHx8ICFzY2hlbWEucmVxdWlyZWQpIHtcbiAgICAgIHJldHVybiAwXG4gICAgfVxuICAgIGxldCBhZGRlZENvdW50ID0gMFxuICAgIGlmKHJlc3BlY3RYTUwpIHtcbiAgICAgIHNjaGVtYS5yZXF1aXJlZC5mb3JFYWNoKGtleSA9PiBhZGRlZENvdW50ICs9XG4gICAgICAgIHJlc1trZXldID09PSB1bmRlZmluZWRcbiAgICAgICAgICA/IDBcbiAgICAgICAgICA6IDFcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgc2NoZW1hLnJlcXVpcmVkLmZvckVhY2goa2V5ID0+IGFkZGVkQ291bnQgKz1cbiAgICAgICAgcmVzW2Rpc3BsYXlOYW1lXT8uZmluZCh4ID0+IHhba2V5XSAhPT0gdW5kZWZpbmVkKSA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyAwXG4gICAgICAgICAgOiAxXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBzY2hlbWEucmVxdWlyZWQubGVuZ3RoIC0gYWRkZWRDb3VudFxuICB9XG5cbiAgY29uc3QgaXNPcHRpb25hbFByb3BlcnR5ID0gKHByb3BOYW1lKSA9PiB7XG4gICAgaWYoIXNjaGVtYSB8fCAhc2NoZW1hLnJlcXVpcmVkIHx8ICFzY2hlbWEucmVxdWlyZWQubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICByZXR1cm4gIXNjaGVtYS5yZXF1aXJlZC5pbmNsdWRlcyhwcm9wTmFtZSlcbiAgfVxuXG4gIGNvbnN0IGNhbkFkZFByb3BlcnR5ID0gKHByb3BOYW1lKSA9PiB7XG4gICAgaWYoIXNjaGVtYSB8fCBzY2hlbWEubWF4UHJvcGVydGllcyA9PT0gbnVsbCB8fCBzY2hlbWEubWF4UHJvcGVydGllcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICBpZihoYXNFeGNlZWRlZE1heFByb3BlcnRpZXMoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICAgIGlmKCFpc09wdGlvbmFsUHJvcGVydHkocHJvcE5hbWUpKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICByZXR1cm4gKHNjaGVtYS5tYXhQcm9wZXJ0aWVzIC0gcHJvcGVydHlBZGRlZENvdW50ZXIgLSByZXF1aXJlZFByb3BlcnRpZXNUb0FkZCgpKSA+IDBcbiAgfVxuXG4gIGlmKHJlc3BlY3RYTUwpIHtcbiAgICBhZGRQcm9wZXJ0eVRvUmVzdWx0ID0gKHByb3BOYW1lLCBvdmVycmlkZUUgPSB1bmRlZmluZWQpID0+IHtcbiAgICAgIGlmKHNjaGVtYSAmJiBwcm9wc1twcm9wTmFtZV0pIHtcbiAgICAgICAgLy8gY2FzZSBpdCBpcyBhbiB4bWwgYXR0cmlidXRlXG4gICAgICAgIHByb3BzW3Byb3BOYW1lXS54bWwgPSBwcm9wc1twcm9wTmFtZV0ueG1sIHx8IHt9XG5cbiAgICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXS54bWwuYXR0cmlidXRlKSB7XG4gICAgICAgICAgY29uc3QgZW51bUF0dHJWYWwgPSBBcnJheS5pc0FycmF5KHByb3BzW3Byb3BOYW1lXS5lbnVtKVxuICAgICAgICAgICAgPyBwcm9wc1twcm9wTmFtZV0uZW51bVswXVxuICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICBjb25zdCBhdHRyRXhhbXBsZSA9IHByb3BzW3Byb3BOYW1lXS5leGFtcGxlXG4gICAgICAgICAgY29uc3QgYXR0ckRlZmF1bHQgPSBwcm9wc1twcm9wTmFtZV0uZGVmYXVsdFxuXG4gICAgICAgICAgaWYoYXR0ckV4YW1wbGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgX2F0dHJbcHJvcHNbcHJvcE5hbWVdLnhtbC5uYW1lIHx8IHByb3BOYW1lXSA9IGF0dHJFeGFtcGxlXG4gICAgICAgICAgfSBlbHNlIGlmKGF0dHJEZWZhdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIF9hdHRyW3Byb3BzW3Byb3BOYW1lXS54bWwubmFtZSB8fCBwcm9wTmFtZV0gPSBhdHRyRGVmYXVsdFxuICAgICAgICAgIH0gZWxzZSBpZihlbnVtQXR0clZhbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBfYXR0cltwcm9wc1twcm9wTmFtZV0ueG1sLm5hbWUgfHwgcHJvcE5hbWVdID0gZW51bUF0dHJWYWxcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgX2F0dHJbcHJvcHNbcHJvcE5hbWVdLnhtbC5uYW1lIHx8IHByb3BOYW1lXSA9IHByaW1pdGl2ZShwcm9wc1twcm9wTmFtZV0pXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgcHJvcHNbcHJvcE5hbWVdLnhtbC5uYW1lID0gcHJvcHNbcHJvcE5hbWVdLnhtbC5uYW1lIHx8IHByb3BOYW1lXG4gICAgICB9IGVsc2UgaWYoIXByb3BzW3Byb3BOYW1lXSAmJiBhZGRpdGlvbmFsUHJvcGVydGllcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgLy8gY2FzZSBvbmx5IGFkZGl0aW9uYWxQcm9wZXJ0eSB0aGF0IGlzIG5vdCBkZWZpbmVkIGluIHNjaGVtYVxuICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSB7XG4gICAgICAgICAgeG1sOiB7XG4gICAgICAgICAgICBuYW1lOiBwcm9wTmFtZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsZXQgdCA9IHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKHNjaGVtYSAmJiBwcm9wc1twcm9wTmFtZV0gfHwgdW5kZWZpbmVkLCBjb25maWcsIG92ZXJyaWRlRSwgcmVzcGVjdFhNTClcbiAgICAgIGlmKCFjYW5BZGRQcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHByb3BlcnR5QWRkZWRDb3VudGVyKytcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHQpKSB7XG4gICAgICAgIHJlc1tkaXNwbGF5TmFtZV0gPSByZXNbZGlzcGxheU5hbWVdLmNvbmNhdCh0KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzW2Rpc3BsYXlOYW1lXS5wdXNoKHQpXG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGFkZFByb3BlcnR5VG9SZXN1bHQgPSAocHJvcE5hbWUsIG92ZXJyaWRlRSkgPT4ge1xuICAgICAgaWYoIWNhbkFkZFByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzY2hlbWEsIFwiZGlzY3JpbWluYXRvclwiKSAmJlxuICAgICAgICBzY2hlbWEuZGlzY3JpbWluYXRvciAmJlxuICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc2NoZW1hLmRpc2NyaW1pbmF0b3IsIFwibWFwcGluZ1wiKSAmJlxuICAgICAgICBzY2hlbWEuZGlzY3JpbWluYXRvci5tYXBwaW5nICYmXG4gICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzY2hlbWEsIFwiJCRyZWZcIikgJiZcbiAgICAgICAgc2NoZW1hLiQkcmVmICYmXG4gICAgICAgIHNjaGVtYS5kaXNjcmltaW5hdG9yLnByb3BlcnR5TmFtZSA9PT0gcHJvcE5hbWUpIHtcbiAgICAgICAgZm9yIChsZXQgcGFpciBpbiBzY2hlbWEuZGlzY3JpbWluYXRvci5tYXBwaW5nKXtcbiAgICAgICAgICBpZiAoc2NoZW1hLiQkcmVmLnNlYXJjaChzY2hlbWEuZGlzY3JpbWluYXRvci5tYXBwaW5nW3BhaXJdKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHJlc1twcm9wTmFtZV0gPSBwYWlyXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzW3Byb3BOYW1lXSA9IHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKHByb3BzW3Byb3BOYW1lXSwgY29uZmlnLCBvdmVycmlkZUUsIHJlc3BlY3RYTUwpXG4gICAgICB9XG4gICAgICBwcm9wZXJ0eUFkZGVkQ291bnRlcisrXG4gICAgfVxuICB9XG5cbiAgLy8gY2hlY2sgZm9yIHBsYWluIHZhbHVlIGFuZCBpZiBmb3VuZCB1c2UgaXQgdG8gZ2VuZXJhdGUgc2FtcGxlIGZyb20gaXRcbiAgaWYodXNlUGxhaW5WYWx1ZSkge1xuICAgIGxldCBzYW1wbGVcbiAgICBpZihleGFtcGxlT3ZlcnJpZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgc2FtcGxlID0gc2FuaXRpemVSZWYoZXhhbXBsZU92ZXJyaWRlKVxuICAgIH0gZWxzZSBpZihleGFtcGxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHNhbXBsZSA9IHNhbml0aXplUmVmKGV4YW1wbGUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNhbXBsZSA9IHNhbml0aXplUmVmKHNjaGVtYS5kZWZhdWx0KVxuICAgIH1cblxuICAgIC8vIGlmIGpzb24ganVzdCByZXR1cm5cbiAgICBpZighcmVzcGVjdFhNTCkge1xuICAgICAgLy8gc3BlY2lhbCBjYXNlIHlhbWwgcGFyc2VyIGNhbiBub3Qga25vdyBhYm91dFxuICAgICAgaWYodHlwZW9mIHNhbXBsZSA9PT0gXCJudW1iZXJcIiAmJiB0eXBlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBgJHtzYW1wbGV9YFxuICAgICAgfVxuICAgICAgLy8gcmV0dXJuIGlmIHNhbXBsZSBkb2VzIG5vdCBuZWVkIGFueSBwYXJzaW5nXG4gICAgICBpZih0eXBlb2Ygc2FtcGxlICE9PSBcInN0cmluZ1wiIHx8IHR5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIHNhbXBsZVxuICAgICAgfVxuICAgICAgLy8gY2hlY2sgaWYgc2FtcGxlIGlzIHBhcnNhYmxlIG9yIGp1c3QgYSBwbGFpbiBzdHJpbmdcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHNhbXBsZSlcbiAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICAvLyBzYW1wbGUgaXMganVzdCBwbGFpbiBzdHJpbmcgcmV0dXJuIGl0XG4gICAgICAgIHJldHVybiBzYW1wbGVcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyByZWNvdmVyIG1pc3NpbmcgdHlwZVxuICAgIGlmKCFzY2hlbWEpIHtcbiAgICAgIHR5cGUgPSBBcnJheS5pc0FycmF5KHNhbXBsZSkgPyBcImFycmF5XCIgOiB0eXBlb2Ygc2FtcGxlXG4gICAgfVxuXG4gICAgLy8gZ2VuZXJhdGUgeG1sIHNhbXBsZSByZWN1cnNpdmVseSBmb3IgYXJyYXkgY2FzZVxuICAgIGlmKHR5cGUgPT09IFwiYXJyYXlcIikge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHNhbXBsZSkpIHtcbiAgICAgICAgaWYodHlwZW9mIHNhbXBsZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIHJldHVybiBzYW1wbGVcbiAgICAgICAgfVxuICAgICAgICBzYW1wbGUgPSBbc2FtcGxlXVxuICAgICAgfVxuICAgICAgY29uc3QgaXRlbVNjaGVtYSA9IHNjaGVtYVxuICAgICAgICA/IHNjaGVtYS5pdGVtc1xuICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgaWYoaXRlbVNjaGVtYSkge1xuICAgICAgICBpdGVtU2NoZW1hLnhtbCA9IGl0ZW1TY2hlbWEueG1sIHx8IHhtbCB8fCB7fVxuICAgICAgICBpdGVtU2NoZW1hLnhtbC5uYW1lID0gaXRlbVNjaGVtYS54bWwubmFtZSB8fCB4bWwubmFtZVxuICAgICAgfVxuICAgICAgbGV0IGl0ZW1TYW1wbGVzID0gc2FtcGxlXG4gICAgICAgIC5tYXAocyA9PiBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhpdGVtU2NoZW1hLCBjb25maWcsIHMsIHJlc3BlY3RYTUwpKVxuICAgICAgaXRlbVNhbXBsZXMgPSBoYW5kbGVNaW5NYXhJdGVtcyhpdGVtU2FtcGxlcylcbiAgICAgIGlmKHhtbC53cmFwcGVkKSB7XG4gICAgICAgIHJlc1tkaXNwbGF5TmFtZV0gPSBpdGVtU2FtcGxlc1xuICAgICAgICBpZiAoIWlzRW1wdHkoX2F0dHIpKSB7XG4gICAgICAgICAgcmVzW2Rpc3BsYXlOYW1lXS5wdXNoKHtfYXR0cjogX2F0dHJ9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgcmVzID0gaXRlbVNhbXBsZXNcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNcbiAgICB9XG5cbiAgICAvLyBnZW5lcmF0ZSB4bWwgc2FtcGxlIHJlY3Vyc2l2ZWx5IGZvciBvYmplY3QgY2FzZVxuICAgIGlmKHR5cGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIC8vIGNhc2UgbGl0ZXJhbCBleGFtcGxlXG4gICAgICBpZih0eXBlb2Ygc2FtcGxlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBzYW1wbGVcbiAgICAgIH1cbiAgICAgIGZvciAobGV0IHByb3BOYW1lIGluIHNhbXBsZSkge1xuICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzYW1wbGUsIHByb3BOYW1lKSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNjaGVtYSAmJiBwcm9wc1twcm9wTmFtZV0gJiYgcHJvcHNbcHJvcE5hbWVdLnJlYWRPbmx5ICYmICFpbmNsdWRlUmVhZE9ubHkpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGlmIChzY2hlbWEgJiYgcHJvcHNbcHJvcE5hbWVdICYmIHByb3BzW3Byb3BOYW1lXS53cml0ZU9ubHkgJiYgIWluY2x1ZGVXcml0ZU9ubHkpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGlmIChzY2hlbWEgJiYgcHJvcHNbcHJvcE5hbWVdICYmIHByb3BzW3Byb3BOYW1lXS54bWwgJiYgcHJvcHNbcHJvcE5hbWVdLnhtbC5hdHRyaWJ1dGUpIHtcbiAgICAgICAgICBfYXR0cltwcm9wc1twcm9wTmFtZV0ueG1sLm5hbWUgfHwgcHJvcE5hbWVdID0gc2FtcGxlW3Byb3BOYW1lXVxuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgYWRkUHJvcGVydHlUb1Jlc3VsdChwcm9wTmFtZSwgc2FtcGxlW3Byb3BOYW1lXSlcbiAgICAgIH1cbiAgICAgIGlmICghaXNFbXB0eShfYXR0cikpIHtcbiAgICAgICAgcmVzW2Rpc3BsYXlOYW1lXS5wdXNoKHtfYXR0cjogX2F0dHJ9KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzXG4gICAgfVxuXG4gICAgcmVzW2Rpc3BsYXlOYW1lXSA9ICFpc0VtcHR5KF9hdHRyKSA/IFt7X2F0dHI6IF9hdHRyfSwgc2FtcGxlXSA6IHNhbXBsZVxuICAgIHJldHVybiByZXNcbiAgfVxuXG4gIC8vIHVzZSBzY2hlbWEgdG8gZ2VuZXJhdGUgc2FtcGxlXG5cbiAgaWYodHlwZSA9PT0gXCJvYmplY3RcIikge1xuICAgIGZvciAobGV0IHByb3BOYW1lIGluIHByb3BzKSB7XG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcywgcHJvcE5hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoIHByb3BzW3Byb3BOYW1lXSAmJiBwcm9wc1twcm9wTmFtZV0uZGVwcmVjYXRlZCApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmICggcHJvcHNbcHJvcE5hbWVdICYmIHByb3BzW3Byb3BOYW1lXS5yZWFkT25seSAmJiAhaW5jbHVkZVJlYWRPbmx5ICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKCBwcm9wc1twcm9wTmFtZV0gJiYgcHJvcHNbcHJvcE5hbWVdLndyaXRlT25seSAmJiAhaW5jbHVkZVdyaXRlT25seSApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGFkZFByb3BlcnR5VG9SZXN1bHQocHJvcE5hbWUpXG4gICAgfVxuICAgIGlmIChyZXNwZWN0WE1MICYmIF9hdHRyKSB7XG4gICAgICByZXNbZGlzcGxheU5hbWVdLnB1c2goe19hdHRyOiBfYXR0cn0pXG4gICAgfVxuXG4gICAgaWYoaGFzRXhjZWVkZWRNYXhQcm9wZXJ0aWVzKCkpIHtcbiAgICAgIHJldHVybiByZXNcbiAgICB9XG5cbiAgICBpZiAoIGFkZGl0aW9uYWxQcm9wZXJ0aWVzID09PSB0cnVlICkge1xuICAgICAgaWYocmVzcGVjdFhNTCkge1xuICAgICAgICByZXNbZGlzcGxheU5hbWVdLnB1c2goe2FkZGl0aW9uYWxQcm9wOiBcIkFueXRoaW5nIGNhbiBiZSBoZXJlXCJ9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzLmFkZGl0aW9uYWxQcm9wMSA9IHt9XG4gICAgICB9XG4gICAgICBwcm9wZXJ0eUFkZGVkQ291bnRlcisrXG4gICAgfSBlbHNlIGlmICggYWRkaXRpb25hbFByb3BlcnRpZXMgKSB7XG4gICAgICBjb25zdCBhZGRpdGlvbmFsUHJvcHMgPSBvYmplY3RpZnkoYWRkaXRpb25hbFByb3BlcnRpZXMpXG4gICAgICBjb25zdCBhZGRpdGlvbmFsUHJvcFNhbXBsZSA9IHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKGFkZGl0aW9uYWxQcm9wcywgY29uZmlnLCB1bmRlZmluZWQsIHJlc3BlY3RYTUwpXG5cbiAgICAgIGlmKHJlc3BlY3RYTUwgJiYgYWRkaXRpb25hbFByb3BzLnhtbCAmJiBhZGRpdGlvbmFsUHJvcHMueG1sLm5hbWUgJiYgYWRkaXRpb25hbFByb3BzLnhtbC5uYW1lICE9PSBcIm5vdGFnbmFtZVwiKVxuICAgICAge1xuICAgICAgICByZXNbZGlzcGxheU5hbWVdLnB1c2goYWRkaXRpb25hbFByb3BTYW1wbGUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB0b0dlbmVyYXRlQ291bnQgPSBzY2hlbWEubWluUHJvcGVydGllcyAhPT0gbnVsbCAmJiBzY2hlbWEubWluUHJvcGVydGllcyAhPT0gdW5kZWZpbmVkICYmIHByb3BlcnR5QWRkZWRDb3VudGVyIDwgc2NoZW1hLm1pblByb3BlcnRpZXNcbiAgICAgICAgICA/IHNjaGVtYS5taW5Qcm9wZXJ0aWVzIC0gcHJvcGVydHlBZGRlZENvdW50ZXJcbiAgICAgICAgICA6IDNcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdG9HZW5lcmF0ZUNvdW50OyBpKyspIHtcbiAgICAgICAgICBpZihoYXNFeGNlZWRlZE1heFByb3BlcnRpZXMoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZihyZXNwZWN0WE1MKSB7XG4gICAgICAgICAgICBjb25zdCB0ZW1wID0ge31cbiAgICAgICAgICAgIHRlbXBbXCJhZGRpdGlvbmFsUHJvcFwiICsgaV0gPSBhZGRpdGlvbmFsUHJvcFNhbXBsZVtcIm5vdGFnbmFtZVwiXVxuICAgICAgICAgICAgcmVzW2Rpc3BsYXlOYW1lXS5wdXNoKHRlbXApXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc1tcImFkZGl0aW9uYWxQcm9wXCIgKyBpXSA9IGFkZGl0aW9uYWxQcm9wU2FtcGxlXG4gICAgICAgICAgfVxuICAgICAgICAgIHByb3BlcnR5QWRkZWRDb3VudGVyKytcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzXG4gIH1cblxuICBpZih0eXBlID09PSBcImFycmF5XCIpIHtcbiAgICBpZiAoIWl0ZW1zKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBsZXQgc2FtcGxlQXJyYXlcbiAgICBpZihyZXNwZWN0WE1MKSB7XG4gICAgICBpdGVtcy54bWwgPSBpdGVtcy54bWwgfHwgc2NoZW1hPy54bWwgfHwge31cbiAgICAgIGl0ZW1zLnhtbC5uYW1lID0gaXRlbXMueG1sLm5hbWUgfHwgeG1sLm5hbWVcbiAgICB9XG5cbiAgICBpZihBcnJheS5pc0FycmF5KGl0ZW1zLmFueU9mKSkge1xuICAgICAgc2FtcGxlQXJyYXkgPSBpdGVtcy5hbnlPZi5tYXAoaSA9PiBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhtZXJnZUpzb25TY2hlbWEoaSwgaXRlbXMsIGNvbmZpZyksIGNvbmZpZywgdW5kZWZpbmVkLCByZXNwZWN0WE1MKSlcbiAgICB9IGVsc2UgaWYoQXJyYXkuaXNBcnJheShpdGVtcy5vbmVPZikpIHtcbiAgICAgIHNhbXBsZUFycmF5ID0gaXRlbXMub25lT2YubWFwKGkgPT4gc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMobWVyZ2VKc29uU2NoZW1hKGksIGl0ZW1zLCBjb25maWcpLCBjb25maWcsIHVuZGVmaW5lZCwgcmVzcGVjdFhNTCkpXG4gICAgfSBlbHNlIGlmKCFyZXNwZWN0WE1MIHx8IHJlc3BlY3RYTUwgJiYgeG1sLndyYXBwZWQpIHtcbiAgICAgIHNhbXBsZUFycmF5ID0gW3NhbXBsZUZyb21TY2hlbWFHZW5lcmljKGl0ZW1zLCBjb25maWcsIHVuZGVmaW5lZCwgcmVzcGVjdFhNTCldXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhpdGVtcywgY29uZmlnLCB1bmRlZmluZWQsIHJlc3BlY3RYTUwpXG4gICAgfVxuICAgIHNhbXBsZUFycmF5ID0gaGFuZGxlTWluTWF4SXRlbXMoc2FtcGxlQXJyYXkpXG4gICAgaWYocmVzcGVjdFhNTCAmJiB4bWwud3JhcHBlZCkge1xuICAgICAgcmVzW2Rpc3BsYXlOYW1lXSA9IHNhbXBsZUFycmF5XG4gICAgICBpZiAoIWlzRW1wdHkoX2F0dHIpKSB7XG4gICAgICAgIHJlc1tkaXNwbGF5TmFtZV0ucHVzaCh7X2F0dHI6IF9hdHRyfSlcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNcbiAgICB9XG4gICAgcmV0dXJuIHNhbXBsZUFycmF5XG4gIH1cblxuICBsZXQgdmFsdWVcbiAgaWYgKHNjaGVtYSAmJiBBcnJheS5pc0FycmF5KHNjaGVtYS5lbnVtKSkge1xuICAgIC8vZGlzcGxheSBlbnVtIGZpcnN0IHZhbHVlXG4gICAgdmFsdWUgPSBub3JtYWxpemVBcnJheShzY2hlbWEuZW51bSlbMF1cbiAgfSBlbHNlIGlmKHNjaGVtYSkge1xuICAgIC8vIGRpc3BsYXkgc2NoZW1hIGRlZmF1bHRcbiAgICB2YWx1ZSA9IHByaW1pdGl2ZShzY2hlbWEpXG4gICAgaWYodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICBsZXQgbWluID0gc2NoZW1hLm1pbmltdW1cbiAgICAgIGlmKG1pbiAhPT0gdW5kZWZpbmVkICYmIG1pbiAhPT0gbnVsbCkge1xuICAgICAgICBpZihzY2hlbWEuZXhjbHVzaXZlTWluaW11bSkge1xuICAgICAgICAgIG1pbisrXG4gICAgICAgIH1cbiAgICAgICAgdmFsdWUgPSBtaW5cbiAgICAgIH1cbiAgICAgIGxldCBtYXggPSBzY2hlbWEubWF4aW11bVxuICAgICAgaWYobWF4ICE9PSB1bmRlZmluZWQgJiYgbWF4ICE9PSBudWxsKSB7XG4gICAgICAgIGlmKHNjaGVtYS5leGNsdXNpdmVNYXhpbXVtKSB7XG4gICAgICAgICAgbWF4LS1cbiAgICAgICAgfVxuICAgICAgICB2YWx1ZSA9IG1heFxuICAgICAgfVxuICAgIH1cbiAgICBpZih0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGlmIChzY2hlbWEubWF4TGVuZ3RoICE9PSBudWxsICYmIHNjaGVtYS5tYXhMZW5ndGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKDAsIHNjaGVtYS5tYXhMZW5ndGgpXG4gICAgICB9XG4gICAgICBpZiAoc2NoZW1hLm1pbkxlbmd0aCAhPT0gbnVsbCAmJiBzY2hlbWEubWluTGVuZ3RoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbGV0IGkgPSAwXG4gICAgICAgIHdoaWxlICh2YWx1ZS5sZW5ndGggPCBzY2hlbWEubWluTGVuZ3RoKSB7XG4gICAgICAgICAgdmFsdWUgKz0gdmFsdWVbaSsrICUgdmFsdWUubGVuZ3RoXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVyblxuICB9XG4gIGlmICh0eXBlID09PSBcImZpbGVcIikge1xuICAgIHJldHVyblxuICB9XG5cbiAgaWYocmVzcGVjdFhNTCkge1xuICAgIHJlc1tkaXNwbGF5TmFtZV0gPSAhaXNFbXB0eShfYXR0cikgPyBbe19hdHRyOiBfYXR0cn0sIHZhbHVlXSA6IHZhbHVlXG4gICAgcmV0dXJuIHJlc1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlXG59XG5cbmV4cG9ydCBjb25zdCBpbmZlclNjaGVtYSA9ICh0aGluZykgPT4ge1xuICBpZih0aGluZy5zY2hlbWEpXG4gICAgdGhpbmcgPSB0aGluZy5zY2hlbWFcblxuICBpZih0aGluZy5wcm9wZXJ0aWVzKSB7XG4gICAgdGhpbmcudHlwZSA9IFwib2JqZWN0XCJcbiAgfVxuXG4gIHJldHVybiB0aGluZyAvLyBIb3BlZnVsbHkgdGhpcyB3aWxsIGhhdmUgc29tZXRoaW5nIHNjaGVtYSBsaWtlIGluIGl0Li4uIGB0eXBlYCBmb3IgZXhhbXBsZVxufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlWE1MRXhhbXBsZSA9IChzY2hlbWEsIGNvbmZpZywgbykgPT4ge1xuICBjb25zdCBqc29uID0gc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoc2NoZW1hLCBjb25maWcsIG8sIHRydWUpXG4gIGlmICghanNvbikgeyByZXR1cm4gfVxuICBpZih0eXBlb2YganNvbiA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBqc29uXG4gIH1cbiAgcmV0dXJuIFhNTChqc29uLCB7IGRlY2xhcmF0aW9uOiB0cnVlLCBpbmRlbnQ6IFwiXFx0XCIgfSlcbn1cblxuXG5leHBvcnQgY29uc3Qgc2FtcGxlRnJvbVNjaGVtYSA9IChzY2hlbWEsIGNvbmZpZywgbykgPT5cbiAgc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoc2NoZW1hLCBjb25maWcsIG8sIGZhbHNlKVxuXG5jb25zdCByZXNvbHZlciA9IChhcmcxLCBhcmcyLCBhcmczKSA9PiBbYXJnMSwgSlNPTi5zdHJpbmdpZnkoYXJnMiksIEpTT04uc3RyaW5naWZ5KGFyZzMpXVxuXG5leHBvcnQgY29uc3QgbWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlID0gbWVtb2l6ZU4oY3JlYXRlWE1MRXhhbXBsZSwgcmVzb2x2ZXIpXG5cbmV4cG9ydCBjb25zdCBtZW1vaXplZFNhbXBsZUZyb21TY2hlbWEgPSBtZW1vaXplTihzYW1wbGVGcm9tU2NoZW1hLCByZXNvbHZlcilcblxuZXhwb3J0IGNvbnN0IGdldFNjaGVtYU9iamVjdFR5cGUgPSAoc2NoZW1hKSA9PiBpbW11dGFibGVUb0pTKHNjaGVtYSk/LnR5cGUgPz8gXCJzdHJpbmdcIlxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHNvbWUgZnJvbSBcImxvZGFzaC9zb21lXCJcblxuY29uc3Qgc2hvdWxkU3RyaW5naWZ5VHlwZXNDb25maWcgPSBbXG4gIHtcbiAgICB3aGVuOiAvanNvbi8sXG4gICAgc2hvdWxkU3RyaW5naWZ5VHlwZXM6IFtcInN0cmluZ1wiXSxcbiAgfSxcbl1cbmNvbnN0IGRlZmF1bHRTdHJpbmdpZnlUeXBlcyA9IFtcIm9iamVjdFwiXVxuY29uc3QgbWFrZUdldEpzb25TYW1wbGVTY2hlbWEgPVxuICAoZ2V0U3lzdGVtKSA9PiAoc2NoZW1hLCBjb25maWcsIGNvbnRlbnRUeXBlLCBleGFtcGxlT3ZlcnJpZGUpID0+IHtcbiAgICBjb25zdCB7IGZuIH0gPSBnZXRTeXN0ZW0oKVxuICAgIGNvbnN0IHJlcyA9IGZuLm1lbW9pemVkU2FtcGxlRnJvbVNjaGVtYShzY2hlbWEsIGNvbmZpZywgZXhhbXBsZU92ZXJyaWRlKVxuICAgIGNvbnN0IHJlc1R5cGUgPSB0eXBlb2YgcmVzXG5cbiAgICBjb25zdCB0eXBlc1RvU3RyaW5naWZ5ID0gc2hvdWxkU3RyaW5naWZ5VHlwZXNDb25maWcucmVkdWNlKFxuICAgICAgKHR5cGVzLCBuZXh0Q29uZmlnKSA9PlxuICAgICAgICBuZXh0Q29uZmlnLndoZW4udGVzdChjb250ZW50VHlwZSlcbiAgICAgICAgICA/IFsuLi50eXBlcywgLi4ubmV4dENvbmZpZy5zaG91bGRTdHJpbmdpZnlUeXBlc11cbiAgICAgICAgICA6IHR5cGVzLFxuICAgICAgZGVmYXVsdFN0cmluZ2lmeVR5cGVzXG4gICAgKVxuXG4gICAgcmV0dXJuIHNvbWUodHlwZXNUb1N0cmluZ2lmeSwgKHgpID0+IHggPT09IHJlc1R5cGUpXG4gICAgICA/IEpTT04uc3RyaW5naWZ5KHJlcywgbnVsbCwgMilcbiAgICAgIDogcmVzXG4gIH1cblxuZXhwb3J0IGRlZmF1bHQgbWFrZUdldEpzb25TYW1wbGVTY2hlbWFcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBZQU1MLCB7IEpTT05fU0NIRU1BIH0gZnJvbSBcImpzLXlhbWxcIlxuXG5jb25zdCBtYWtlR2V0WWFtbFNhbXBsZVNjaGVtYSA9XG4gIChnZXRTeXN0ZW0pID0+IChzY2hlbWEsIGNvbmZpZywgY29udGVudFR5cGUsIGV4YW1wbGVPdmVycmlkZSkgPT4ge1xuICAgIGNvbnN0IHsgZm4gfSA9IGdldFN5c3RlbSgpXG4gICAgY29uc3QganNvbkV4YW1wbGUgPSBmbi5nZXRKc29uU2FtcGxlU2NoZW1hKFxuICAgICAgc2NoZW1hLFxuICAgICAgY29uZmlnLFxuICAgICAgY29udGVudFR5cGUsXG4gICAgICBleGFtcGxlT3ZlcnJpZGVcbiAgICApXG4gICAgbGV0IHlhbWxTdHJpbmdcbiAgICB0cnkge1xuICAgICAgeWFtbFN0cmluZyA9IFlBTUwuZHVtcChcbiAgICAgICAgWUFNTC5sb2FkKGpzb25FeGFtcGxlKSxcbiAgICAgICAge1xuICAgICAgICAgIGxpbmVXaWR0aDogLTEsIC8vIGRvbid0IGdlbmVyYXRlIGxpbmUgZm9sZHNcbiAgICAgICAgfSxcbiAgICAgICAgeyBzY2hlbWE6IEpTT05fU0NIRU1BIH1cbiAgICAgIClcbiAgICAgIGlmICh5YW1sU3RyaW5nW3lhbWxTdHJpbmcubGVuZ3RoIC0gMV0gPT09IFwiXFxuXCIpIHtcbiAgICAgICAgeWFtbFN0cmluZyA9IHlhbWxTdHJpbmcuc2xpY2UoMCwgeWFtbFN0cmluZy5sZW5ndGggLSAxKVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSlcbiAgICAgIHJldHVybiBcImVycm9yOiBjb3VsZCBub3QgZ2VuZXJhdGUgeWFtbCBleGFtcGxlXCJcbiAgICB9XG4gICAgcmV0dXJuIHlhbWxTdHJpbmcucmVwbGFjZSgvXFx0L2csIFwiICBcIilcbiAgfVxuXG5leHBvcnQgZGVmYXVsdCBtYWtlR2V0WWFtbFNhbXBsZVNjaGVtYVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgbWFrZUdldFhtbFNhbXBsZVNjaGVtYSA9XG4gIChnZXRTeXN0ZW0pID0+IChzY2hlbWEsIGNvbmZpZywgZXhhbXBsZU92ZXJyaWRlKSA9PiB7XG4gICAgY29uc3QgeyBmbiB9ID0gZ2V0U3lzdGVtKClcblxuICAgIGlmIChzY2hlbWEgJiYgIXNjaGVtYS54bWwpIHtcbiAgICAgIHNjaGVtYS54bWwgPSB7fVxuICAgIH1cbiAgICBpZiAoc2NoZW1hICYmICFzY2hlbWEueG1sLm5hbWUpIHtcbiAgICAgIGlmIChcbiAgICAgICAgIXNjaGVtYS4kJHJlZiAmJlxuICAgICAgICAoc2NoZW1hLnR5cGUgfHxcbiAgICAgICAgICBzY2hlbWEuaXRlbXMgfHxcbiAgICAgICAgICBzY2hlbWEucHJvcGVydGllcyB8fFxuICAgICAgICAgIHNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcylcbiAgICAgICkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcXVvdGVzXG4gICAgICAgIHJldHVybiAnPD94bWwgdmVyc2lvbj1cIjEuMFwiIGVuY29kaW5nPVwiVVRGLThcIj8+XFxuPCEtLSBYTUwgZXhhbXBsZSBjYW5ub3QgYmUgZ2VuZXJhdGVkOyByb290IGVsZW1lbnQgbmFtZSBpcyB1bmRlZmluZWQgLS0+J1xuICAgICAgfVxuICAgICAgaWYgKHNjaGVtYS4kJHJlZikge1xuICAgICAgICBsZXQgbWF0Y2ggPSBzY2hlbWEuJCRyZWYubWF0Y2goL1xcUypcXC8oXFxTKykkLylcbiAgICAgICAgc2NoZW1hLnhtbC5uYW1lID0gbWF0Y2hbMV1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZm4ubWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlKHNjaGVtYSwgY29uZmlnLCBleGFtcGxlT3ZlcnJpZGUpXG4gIH1cblxuZXhwb3J0IGRlZmF1bHQgbWFrZUdldFhtbFNhbXBsZVNjaGVtYVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgbWFrZUdldFNhbXBsZVNjaGVtYSA9XG4gIChnZXRTeXN0ZW0pID0+XG4gIChzY2hlbWEsIGNvbnRlbnRUeXBlID0gXCJcIiwgY29uZmlnID0ge30sIGV4YW1wbGVPdmVycmlkZSA9IHVuZGVmaW5lZCkgPT4ge1xuICAgIGNvbnN0IHsgZm4gfSA9IGdldFN5c3RlbSgpXG5cbiAgICBpZiAodHlwZW9mIHNjaGVtYT8udG9KUyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBzY2hlbWEgPSBzY2hlbWEudG9KUygpXG4gICAgfVxuICAgIGlmICh0eXBlb2YgZXhhbXBsZU92ZXJyaWRlPy50b0pTID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIGV4YW1wbGVPdmVycmlkZSA9IGV4YW1wbGVPdmVycmlkZS50b0pTKClcbiAgICB9XG5cbiAgICBpZiAoL3htbC8udGVzdChjb250ZW50VHlwZSkpIHtcbiAgICAgIHJldHVybiBmbi5nZXRYbWxTYW1wbGVTY2hlbWEoc2NoZW1hLCBjb25maWcsIGV4YW1wbGVPdmVycmlkZSlcbiAgICB9XG4gICAgaWYgKC8oeWFtbHx5bWwpLy50ZXN0KGNvbnRlbnRUeXBlKSkge1xuICAgICAgcmV0dXJuIGZuLmdldFlhbWxTYW1wbGVTY2hlbWEoXG4gICAgICAgIHNjaGVtYSxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBjb250ZW50VHlwZSxcbiAgICAgICAgZXhhbXBsZU92ZXJyaWRlXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBmbi5nZXRKc29uU2FtcGxlU2NoZW1hKHNjaGVtYSwgY29uZmlnLCBjb250ZW50VHlwZSwgZXhhbXBsZU92ZXJyaWRlKVxuICB9XG5cbmV4cG9ydCBkZWZhdWx0IG1ha2VHZXRTYW1wbGVTY2hlbWFcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7XG4gIHNhbXBsZUZyb21TY2hlbWEsXG4gIGluZmVyU2NoZW1hLFxuICBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyxcbiAgY3JlYXRlWE1MRXhhbXBsZSxcbiAgbWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlLFxuICBtZW1vaXplZFNhbXBsZUZyb21TY2hlbWEsXG4gIG1lcmdlSnNvblNjaGVtYSxcbiAgZ2V0U2NoZW1hT2JqZWN0VHlwZSxcbn0gZnJvbSBcIi4vZm4vaW5kZXhcIlxuaW1wb3J0IG1ha2VHZXRKc29uU2FtcGxlU2NoZW1hIGZyb20gXCIuL2ZuL2dldC1qc29uLXNhbXBsZS1zY2hlbWFcIlxuaW1wb3J0IG1ha2VHZXRZYW1sU2FtcGxlU2NoZW1hIGZyb20gXCIuL2ZuL2dldC15YW1sLXNhbXBsZS1zY2hlbWFcIlxuaW1wb3J0IG1ha2VHZXRYbWxTYW1wbGVTY2hlbWEgZnJvbSBcIi4vZm4vZ2V0LXhtbC1zYW1wbGUtc2NoZW1hXCJcbmltcG9ydCBtYWtlR2V0U2FtcGxlU2NoZW1hIGZyb20gXCIuL2ZuL2dldC1zYW1wbGUtc2NoZW1hXCJcblxuY29uc3QgSlNPTlNjaGVtYTVTYW1wbGVzUGx1Z2luID0gKHsgZ2V0U3lzdGVtIH0pID0+IHtcbiAgY29uc3QgZ2V0SnNvblNhbXBsZVNjaGVtYSA9IG1ha2VHZXRKc29uU2FtcGxlU2NoZW1hKGdldFN5c3RlbSlcbiAgY29uc3QgZ2V0WWFtbFNhbXBsZVNjaGVtYSA9IG1ha2VHZXRZYW1sU2FtcGxlU2NoZW1hKGdldFN5c3RlbSlcbiAgY29uc3QgZ2V0WG1sU2FtcGxlU2NoZW1hID0gbWFrZUdldFhtbFNhbXBsZVNjaGVtYShnZXRTeXN0ZW0pXG4gIGNvbnN0IGdldFNhbXBsZVNjaGVtYSA9IG1ha2VHZXRTYW1wbGVTY2hlbWEoZ2V0U3lzdGVtKVxuXG4gIHJldHVybiB7XG4gICAgZm46IHtcbiAgICAgIGpzb25TY2hlbWE1OiB7XG4gICAgICAgIGluZmVyU2NoZW1hLFxuICAgICAgICBzYW1wbGVGcm9tU2NoZW1hLFxuICAgICAgICBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyxcbiAgICAgICAgY3JlYXRlWE1MRXhhbXBsZSxcbiAgICAgICAgbWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hLFxuICAgICAgICBtZW1vaXplZENyZWF0ZVhNTEV4YW1wbGUsXG4gICAgICAgIGdldEpzb25TYW1wbGVTY2hlbWEsXG4gICAgICAgIGdldFlhbWxTYW1wbGVTY2hlbWEsXG4gICAgICAgIGdldFhtbFNhbXBsZVNjaGVtYSxcbiAgICAgICAgZ2V0U2FtcGxlU2NoZW1hLFxuICAgICAgICBtZXJnZUpzb25TY2hlbWEsXG4gICAgICB9LFxuICAgICAgaW5mZXJTY2hlbWEsXG4gICAgICBzYW1wbGVGcm9tU2NoZW1hLFxuICAgICAgc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMsXG4gICAgICBjcmVhdGVYTUxFeGFtcGxlLFxuICAgICAgbWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hLFxuICAgICAgbWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlLFxuICAgICAgZ2V0SnNvblNhbXBsZVNjaGVtYSxcbiAgICAgIGdldFlhbWxTYW1wbGVTY2hlbWEsXG4gICAgICBnZXRYbWxTYW1wbGVTY2hlbWEsXG4gICAgICBnZXRTYW1wbGVTY2hlbWEsXG4gICAgICBtZXJnZUpzb25TY2hlbWEsXG4gICAgICBnZXRTY2hlbWFPYmplY3RUeXBlLFxuICAgIH0sXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgSlNPTlNjaGVtYTVTYW1wbGVzUGx1Z2luXG4iLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImxvZGFzaC9jb25zdGFudFwiKTsiLCJpbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gXCJyZXNlbGVjdFwiXG5pbXBvcnQgY29uc3RhbnQgZnJvbSBcImxvZGFzaC9jb25zdGFudFwiXG5pbXBvcnQgeyBzb3J0ZXJzLCBwYXJhbVRvSWRlbnRpZmllciB9IGZyb20gXCJjb3JlL3V0aWxzXCJcbmltcG9ydCB7IGZyb21KUywgU2V0LCBNYXAsIE9yZGVyZWRNYXAsIExpc3QgfSBmcm9tIFwiaW1tdXRhYmxlXCJcblxuY29uc3QgREVGQVVMVF9UQUcgPSBcImRlZmF1bHRcIlxuXG5jb25zdCBPUEVSQVRJT05fTUVUSE9EUyA9IFtcbiAgXCJnZXRcIiwgXCJwdXRcIiwgXCJwb3N0XCIsIFwiZGVsZXRlXCIsIFwib3B0aW9uc1wiLCBcImhlYWRcIiwgXCJwYXRjaFwiLCBcInRyYWNlXCJcbl1cblxuY29uc3Qgc3RhdGUgPSBzdGF0ZSA9PiB7XG4gIHJldHVybiBzdGF0ZSB8fCBNYXAoKVxufVxuXG5leHBvcnQgY29uc3QgbGFzdEVycm9yID0gY3JlYXRlU2VsZWN0b3IoXG4gIHN0YXRlLFxuICBzcGVjID0+IHNwZWMuZ2V0KFwibGFzdEVycm9yXCIpXG4pXG5cbmV4cG9ydCBjb25zdCB1cmwgPSBjcmVhdGVTZWxlY3RvcihcbiAgc3RhdGUsXG4gIHNwZWMgPT4gc3BlYy5nZXQoXCJ1cmxcIilcbilcblxuZXhwb3J0IGNvbnN0IHNwZWNTdHIgPSBjcmVhdGVTZWxlY3RvcihcbiAgc3RhdGUsXG4gIHNwZWMgPT4gc3BlYy5nZXQoXCJzcGVjXCIpIHx8IFwiXCJcbilcblxuZXhwb3J0IGNvbnN0IHNwZWNTb3VyY2UgPSBjcmVhdGVTZWxlY3RvcihcbiAgc3RhdGUsXG4gIHNwZWMgPT4gc3BlYy5nZXQoXCJzcGVjU291cmNlXCIpIHx8IFwibm90LWVkaXRvclwiXG4pXG5cbmV4cG9ydCBjb25zdCBzcGVjSnNvbiA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzdGF0ZSxcbiAgc3BlYyA9PiBzcGVjLmdldChcImpzb25cIiwgTWFwKCkpXG4pXG5cbmV4cG9ydCBjb25zdCBzcGVjSlMgPSBjcmVhdGVTZWxlY3RvcihcbiAgc3BlY0pzb24sXG4gIChzcGVjKSA9PiBzcGVjLnRvSlMoKVxuKVxuXG5leHBvcnQgY29uc3Qgc3BlY1Jlc29sdmVkID0gY3JlYXRlU2VsZWN0b3IoXG4gIHN0YXRlLFxuICBzcGVjID0+IHNwZWMuZ2V0KFwicmVzb2x2ZWRcIiwgTWFwKCkpXG4pXG5cbmV4cG9ydCBjb25zdCBzcGVjUmVzb2x2ZWRTdWJ0cmVlID0gKHN0YXRlLCBwYXRoKSA9PiB7XG4gIHJldHVybiBzdGF0ZS5nZXRJbihbXCJyZXNvbHZlZFN1YnRyZWVzXCIsIC4uLnBhdGhdLCB1bmRlZmluZWQpXG59XG5cbmNvbnN0IG1lcmdlckZuID0gKG9sZFZhbCwgbmV3VmFsKSA9PiB7XG4gIGlmKE1hcC5pc01hcChvbGRWYWwpICYmIE1hcC5pc01hcChuZXdWYWwpKSB7XG4gICAgaWYobmV3VmFsLmdldChcIiQkcmVmXCIpKSB7XG4gICAgICAvLyByZXNvbHZlciBhcnRpZmFjdHMgaW5kaWNhdGVkIHRoYXQgdGhpcyBrZXkgd2FzIGRpcmVjdGx5IHJlc29sdmVkXG4gICAgICAvLyBzbyB3ZSBzaG91bGQgZHJvcCB0aGUgb2xkIHZhbHVlIGVudGlyZWx5XG4gICAgICByZXR1cm4gbmV3VmFsXG4gICAgfVxuXG4gICAgcmV0dXJuIE9yZGVyZWRNYXAoKS5tZXJnZVdpdGgoXG4gICAgICBtZXJnZXJGbixcbiAgICAgIG9sZFZhbCxcbiAgICAgIG5ld1ZhbFxuICAgIClcbiAgfVxuXG4gIHJldHVybiBuZXdWYWxcbn1cblxuZXhwb3J0IGNvbnN0IHNwZWNKc29uV2l0aFJlc29sdmVkU3VidHJlZXMgPSBjcmVhdGVTZWxlY3RvcihcbiAgc3RhdGUsXG4gIHNwZWMgPT4gT3JkZXJlZE1hcCgpLm1lcmdlV2l0aChcbiAgICBtZXJnZXJGbixcbiAgICBzcGVjLmdldChcImpzb25cIiksXG4gICAgc3BlYy5nZXQoXCJyZXNvbHZlZFN1YnRyZWVzXCIpXG4gIClcbilcblxuLy8gRGVmYXVsdCBTcGVjICggYXMgYW4gb2JqZWN0IClcbmV4cG9ydCBjb25zdCBzcGVjID0gc3RhdGUgPT4ge1xuICBsZXQgcmVzID0gc3BlY0pzb24oc3RhdGUpXG4gIHJldHVybiByZXNcbn1cblxuZXhwb3J0IGNvbnN0IGlzT0FTMyA9IGNyZWF0ZVNlbGVjdG9yKFxuICAvLyBpc09BUzMgaXMgc3R1YmJlZCBvdXQgaGVyZSB0byB3b3JrIGFyb3VuZCBhbiBpc3N1ZSB3aXRoIGluamVjdGluZyBtb3JlIHNlbGVjdG9yc1xuICAvLyBpbiB0aGUgT0FTMyBwbHVnaW4sIGFuZCB0byBlbnN1cmUgdGhhdCB0aGUgZnVuY3Rpb24gaXMgYWx3YXlzIGF2YWlsYWJsZS5cbiAgLy8gSXQncyBub3QgcGVyZmVjdCwgYnV0IG91ciBoeWJyaWQgKGNvcmUrcGx1Z2luIGNvZGUpIGltcGxlbWVudGF0aW9uIGZvciBPQVMzXG4gIC8vIG5lZWRzIHRoaXMuIC8vS1NcbiAgc3BlYyxcblx0KCkgPT4gZmFsc2VcbilcblxuZXhwb3J0IGNvbnN0IGluZm8gPSBjcmVhdGVTZWxlY3RvcihcbiAgc3BlYyxcblx0c3BlYyA9PiByZXR1cm5TZWxmT3JOZXdNYXAoc3BlYyAmJiBzcGVjLmdldChcImluZm9cIikpXG4pXG5cbmV4cG9ydCBjb25zdCBleHRlcm5hbERvY3MgPSBjcmVhdGVTZWxlY3RvcihcbiAgc3BlYyxcblx0c3BlYyA9PiByZXR1cm5TZWxmT3JOZXdNYXAoc3BlYyAmJiBzcGVjLmdldChcImV4dGVybmFsRG9jc1wiKSlcbilcblxuZXhwb3J0IGNvbnN0IHZlcnNpb24gPSBjcmVhdGVTZWxlY3Rvcihcblx0aW5mbyxcblx0aW5mbyA9PiBpbmZvICYmIGluZm8uZ2V0KFwidmVyc2lvblwiKVxuKVxuXG5leHBvcnQgY29uc3Qgc2VtdmVyID0gY3JlYXRlU2VsZWN0b3IoXG5cdHZlcnNpb24sXG5cdHZlcnNpb24gPT4gL3Y/KFswLTldKilcXC4oWzAtOV0qKVxcLihbMC05XSopL2kuZXhlYyh2ZXJzaW9uKS5zbGljZSgxKVxuKVxuXG5leHBvcnQgY29uc3QgcGF0aHMgPSBjcmVhdGVTZWxlY3Rvcihcblx0c3BlY0pzb25XaXRoUmVzb2x2ZWRTdWJ0cmVlcyxcblx0c3BlYyA9PiBzcGVjLmdldChcInBhdGhzXCIpXG4pXG5cbmV4cG9ydCBjb25zdCB2YWxpZE9wZXJhdGlvbk1ldGhvZHMgPSBjb25zdGFudChbXCJnZXRcIiwgXCJwdXRcIiwgXCJwb3N0XCIsIFwiZGVsZXRlXCIsIFwib3B0aW9uc1wiLCBcImhlYWRcIiwgXCJwYXRjaFwiXSlcblxuZXhwb3J0IGNvbnN0IG9wZXJhdGlvbnMgPSBjcmVhdGVTZWxlY3RvcihcbiAgcGF0aHMsXG4gIHBhdGhzID0+IHtcbiAgICBsZXQgbGlzdCA9IExpc3QoKVxuXG4gICAgaWYgKCFNYXAuaXNNYXAocGF0aHMpIHx8IHBhdGhzLmlzRW1wdHkoKSkge1xuICAgICAgcmV0dXJuIGxpc3RcbiAgICB9XG5cbiAgICBwYXRocy5mb3JFYWNoKChwYXRoLCBwYXRoTmFtZSkgPT4ge1xuICAgICAgaWYoIXBhdGggfHwgIXBhdGguZm9yRWFjaCkge1xuICAgICAgICByZXR1cm4ge31cbiAgICAgIH1cbiAgICAgIHBhdGguZm9yRWFjaCgob3BlcmF0aW9uLCBtZXRob2QpID0+IHtcbiAgICAgICAgaWYoT1BFUkFUSU9OX01FVEhPRFMuaW5kZXhPZihtZXRob2QpIDwgMCkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGxpc3QgPSBsaXN0LnB1c2goZnJvbUpTKHtcbiAgICAgICAgICBwYXRoOiBwYXRoTmFtZSxcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgIGlkOiBgJHttZXRob2R9LSR7cGF0aE5hbWV9YFxuICAgICAgICB9KSlcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIHJldHVybiBsaXN0XG4gIH1cbilcblxuZXhwb3J0IGNvbnN0IGNvbnN1bWVzID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNwZWMsXG4gIHNwZWMgPT4gU2V0KHNwZWMuZ2V0KFwiY29uc3VtZXNcIikpXG4pXG5cbmV4cG9ydCBjb25zdCBwcm9kdWNlcyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzcGVjLFxuICBzcGVjID0+IFNldChzcGVjLmdldChcInByb2R1Y2VzXCIpKVxuKVxuXG5leHBvcnQgY29uc3Qgc2VjdXJpdHkgPSBjcmVhdGVTZWxlY3RvcihcbiAgICBzcGVjLFxuICAgIHNwZWMgPT4gc3BlYy5nZXQoXCJzZWN1cml0eVwiLCBMaXN0KCkpXG4pXG5cbmV4cG9ydCBjb25zdCBzZWN1cml0eURlZmluaXRpb25zID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgc3BlYyxcbiAgICBzcGVjID0+IHNwZWMuZ2V0KFwic2VjdXJpdHlEZWZpbml0aW9uc1wiKVxuKVxuXG5cbmV4cG9ydCBjb25zdCBmaW5kRGVmaW5pdGlvbiA9ICggc3RhdGUsIG5hbWUgKSA9PiB7XG4gIGNvbnN0IHJlc29sdmVkUmVzID0gc3RhdGUuZ2V0SW4oW1wicmVzb2x2ZWRTdWJ0cmVlc1wiLCBcImRlZmluaXRpb25zXCIsIG5hbWVdLCBudWxsKVxuICBjb25zdCB1bnJlc29sdmVkUmVzID0gc3RhdGUuZ2V0SW4oW1wianNvblwiLCBcImRlZmluaXRpb25zXCIsIG5hbWVdLCBudWxsKVxuICByZXR1cm4gcmVzb2x2ZWRSZXMgfHwgdW5yZXNvbHZlZFJlcyB8fCBudWxsXG59XG5cbmV4cG9ydCBjb25zdCBkZWZpbml0aW9ucyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzcGVjLFxuICBzcGVjID0+IHtcbiAgICBjb25zdCByZXMgPSBzcGVjLmdldChcImRlZmluaXRpb25zXCIpXG4gICAgcmV0dXJuIE1hcC5pc01hcChyZXMpID8gcmVzIDogTWFwKClcbiAgfVxuKVxuXG5leHBvcnQgY29uc3QgYmFzZVBhdGggPSBjcmVhdGVTZWxlY3RvcihcbiAgICBzcGVjLFxuICAgIHNwZWMgPT4gc3BlYy5nZXQoXCJiYXNlUGF0aFwiKVxuKVxuXG5leHBvcnQgY29uc3QgaG9zdCA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgIHNwZWMsXG4gICAgc3BlYyA9PiBzcGVjLmdldChcImhvc3RcIilcbilcblxuZXhwb3J0IGNvbnN0IHNjaGVtZXMgPSBjcmVhdGVTZWxlY3RvcihcbiAgICBzcGVjLFxuICAgIHNwZWMgPT4gc3BlYy5nZXQoXCJzY2hlbWVzXCIsIE1hcCgpKVxuKVxuXG5leHBvcnQgY29uc3Qgb3BlcmF0aW9uc1dpdGhSb290SW5oZXJpdGVkID0gY3JlYXRlU2VsZWN0b3IoXG4gIFtcbiAgICBvcGVyYXRpb25zLFxuICAgIGNvbnN1bWVzLFxuICAgIHByb2R1Y2VzXG4gIF0sXG4gIChvcGVyYXRpb25zLCBjb25zdW1lcywgcHJvZHVjZXMpID0+IHtcbiAgICByZXR1cm4gb3BlcmF0aW9ucy5tYXAoIG9wcyA9PiBvcHMudXBkYXRlKFwib3BlcmF0aW9uXCIsIG9wID0+IHtcbiAgICAgIGlmIChNYXAuaXNNYXAob3ApKSB7XG4gICAgICAgIHJldHVybiBvcC53aXRoTXV0YXRpb25zKCBvcCA9PiB7XG4gICAgICAgICAgaWYgKCAhb3AuZ2V0KFwiY29uc3VtZXNcIikgKSB7XG4gICAgICAgICAgICBvcC51cGRhdGUoXCJjb25zdW1lc1wiLCBhID0+IFNldChhKS5tZXJnZShjb25zdW1lcykpXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICggIW9wLmdldChcInByb2R1Y2VzXCIpICkge1xuICAgICAgICAgICAgb3AudXBkYXRlKFwicHJvZHVjZXNcIiwgYSA9PiBTZXQoYSkubWVyZ2UocHJvZHVjZXMpKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gb3BcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHJldHVybiBzb21ldGhpbmcgd2l0aCBJbW11dGFibGUgbWV0aG9kc1xuICAgICAgICByZXR1cm4gTWFwKClcbiAgICAgIH1cblxuICAgIH0pKVxuICB9XG4pXG5cbmV4cG9ydCBjb25zdCB0YWdzID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNwZWMsXG4gIGpzb24gPT4ge1xuICAgIGNvbnN0IHRhZ3MgPSBqc29uLmdldChcInRhZ3NcIiwgTGlzdCgpKVxuICAgIHJldHVybiBMaXN0LmlzTGlzdCh0YWdzKSA/IHRhZ3MuZmlsdGVyKHRhZyA9PiBNYXAuaXNNYXAodGFnKSkgOiBMaXN0KClcbiAgfVxuKVxuXG5leHBvcnQgY29uc3QgdGFnRGV0YWlscyA9IChzdGF0ZSwgdGFnKSA9PiB7XG4gIGxldCBjdXJyZW50VGFncyA9IHRhZ3Moc3RhdGUpIHx8IExpc3QoKVxuICByZXR1cm4gY3VycmVudFRhZ3MuZmlsdGVyKE1hcC5pc01hcCkuZmluZCh0ID0+IHQuZ2V0KFwibmFtZVwiKSA9PT0gdGFnLCBNYXAoKSlcbn1cblxuZXhwb3J0IGNvbnN0IG9wZXJhdGlvbnNXaXRoVGFncyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBvcGVyYXRpb25zV2l0aFJvb3RJbmhlcml0ZWQsXG4gIHRhZ3MsXG4gIChvcGVyYXRpb25zLCB0YWdzKSA9PiB7XG4gICAgcmV0dXJuIG9wZXJhdGlvbnMucmVkdWNlKCAodGFnZ2VkTWFwLCBvcCkgPT4ge1xuICAgICAgbGV0IHRhZ3MgPSBTZXQob3AuZ2V0SW4oW1wib3BlcmF0aW9uXCIsXCJ0YWdzXCJdKSlcbiAgICAgIGlmKHRhZ3MuY291bnQoKSA8IDEpXG4gICAgICAgIHJldHVybiB0YWdnZWRNYXAudXBkYXRlKERFRkFVTFRfVEFHLCBMaXN0KCksIGFyID0+IGFyLnB1c2gob3ApKVxuICAgICAgcmV0dXJuIHRhZ3MucmVkdWNlKCAocmVzLCB0YWcpID0+IHJlcy51cGRhdGUodGFnLCBMaXN0KCksIChhcikgPT4gYXIucHVzaChvcCkpLCB0YWdnZWRNYXAgKVxuICAgIH0sIHRhZ3MucmVkdWNlKCAodGFnZ2VkTWFwLCB0YWcpID0+IHtcbiAgICAgIHJldHVybiB0YWdnZWRNYXAuc2V0KHRhZy5nZXQoXCJuYW1lXCIpLCBMaXN0KCkpXG4gICAgfSAsIE9yZGVyZWRNYXAoKSkpXG4gIH1cbilcblxuZXhwb3J0IGNvbnN0IHRhZ2dlZE9wZXJhdGlvbnMgPSAoc3RhdGUpID0+ICh7IGdldENvbmZpZ3MgfSkgPT4ge1xuICBsZXQgeyB0YWdzU29ydGVyLCBvcGVyYXRpb25zU29ydGVyIH0gPSBnZXRDb25maWdzKClcbiAgcmV0dXJuIG9wZXJhdGlvbnNXaXRoVGFncyhzdGF0ZSlcbiAgICAuc29ydEJ5KFxuICAgICAgKHZhbCwga2V5KSA9PiBrZXksIC8vIGdldCB0aGUgbmFtZSBvZiB0aGUgdGFnIHRvIGJlIHBhc3NlZCB0byB0aGUgc29ydGVyXG4gICAgICAodGFnQSwgdGFnQikgPT4ge1xuICAgICAgICBsZXQgc29ydEZuID0gKHR5cGVvZiB0YWdzU29ydGVyID09PSBcImZ1bmN0aW9uXCIgPyB0YWdzU29ydGVyIDogc29ydGVycy50YWdzU29ydGVyWyB0YWdzU29ydGVyIF0pXG4gICAgICAgIHJldHVybiAoIXNvcnRGbiA/IG51bGwgOiBzb3J0Rm4odGFnQSwgdGFnQikpXG4gICAgICB9XG4gICAgKVxuICAgIC5tYXAoKG9wcywgdGFnKSA9PiB7XG4gICAgICBsZXQgc29ydEZuID0gKHR5cGVvZiBvcGVyYXRpb25zU29ydGVyID09PSBcImZ1bmN0aW9uXCIgPyBvcGVyYXRpb25zU29ydGVyIDogc29ydGVycy5vcGVyYXRpb25zU29ydGVyWyBvcGVyYXRpb25zU29ydGVyIF0pXG4gICAgICBsZXQgb3BlcmF0aW9ucyA9ICghc29ydEZuID8gb3BzIDogb3BzLnNvcnQoc29ydEZuKSlcblxuICAgICAgcmV0dXJuIE1hcCh7IHRhZ0RldGFpbHM6IHRhZ0RldGFpbHMoc3RhdGUsIHRhZyksIG9wZXJhdGlvbnM6IG9wZXJhdGlvbnMgfSlcbiAgICB9KVxufVxuXG5leHBvcnQgY29uc3QgcmVzcG9uc2VzID0gY3JlYXRlU2VsZWN0b3IoXG4gIHN0YXRlLFxuICBzdGF0ZSA9PiBzdGF0ZS5nZXQoIFwicmVzcG9uc2VzXCIsIE1hcCgpIClcbilcblxuZXhwb3J0IGNvbnN0IHJlcXVlc3RzID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgc3RhdGUsXG4gICAgc3RhdGUgPT4gc3RhdGUuZ2V0KCBcInJlcXVlc3RzXCIsIE1hcCgpIClcbilcblxuZXhwb3J0IGNvbnN0IG11dGF0ZWRSZXF1ZXN0cyA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgIHN0YXRlLFxuICAgIHN0YXRlID0+IHN0YXRlLmdldCggXCJtdXRhdGVkUmVxdWVzdHNcIiwgTWFwKCkgKVxuKVxuXG5leHBvcnQgY29uc3QgcmVzcG9uc2VGb3IgPSAoc3RhdGUsIHBhdGgsIG1ldGhvZCkgPT4ge1xuICByZXR1cm4gcmVzcG9uc2VzKHN0YXRlKS5nZXRJbihbcGF0aCwgbWV0aG9kXSwgbnVsbClcbn1cblxuZXhwb3J0IGNvbnN0IHJlcXVlc3RGb3IgPSAoc3RhdGUsIHBhdGgsIG1ldGhvZCkgPT4ge1xuICByZXR1cm4gcmVxdWVzdHMoc3RhdGUpLmdldEluKFtwYXRoLCBtZXRob2RdLCBudWxsKVxufVxuXG5leHBvcnQgY29uc3QgbXV0YXRlZFJlcXVlc3RGb3IgPSAoc3RhdGUsIHBhdGgsIG1ldGhvZCkgPT4ge1xuICByZXR1cm4gbXV0YXRlZFJlcXVlc3RzKHN0YXRlKS5nZXRJbihbcGF0aCwgbWV0aG9kXSwgbnVsbClcbn1cblxuZXhwb3J0IGNvbnN0IGFsbG93VHJ5SXRPdXRGb3IgPSAoKSA9PiB7XG4gIC8vIFRoaXMgaXMganVzdCBhIGhvb2sgZm9yIG5vdy5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHBhcmFtZXRlcldpdGhNZXRhQnlJZGVudGl0eSA9IChzdGF0ZSwgcGF0aE1ldGhvZCwgcGFyYW0pID0+IHtcbiAgY29uc3Qgb3BQYXJhbXMgPSBzcGVjSnNvbldpdGhSZXNvbHZlZFN1YnRyZWVzKHN0YXRlKS5nZXRJbihbXCJwYXRoc1wiLCAuLi5wYXRoTWV0aG9kLCBcInBhcmFtZXRlcnNcIl0sIE9yZGVyZWRNYXAoKSlcbiAgY29uc3QgbWV0YVBhcmFtcyA9IHN0YXRlLmdldEluKFtcIm1ldGFcIiwgXCJwYXRoc1wiLCAuLi5wYXRoTWV0aG9kLCBcInBhcmFtZXRlcnNcIl0sIE9yZGVyZWRNYXAoKSlcblxuICBjb25zdCBtZXJnZWRQYXJhbXMgPSBvcFBhcmFtcy5tYXAoKGN1cnJlbnRQYXJhbSkgPT4ge1xuICAgIGNvbnN0IGluTmFtZUtleWVkTWV0YSA9IG1ldGFQYXJhbXMuZ2V0KGAke3BhcmFtLmdldChcImluXCIpfS4ke3BhcmFtLmdldChcIm5hbWVcIil9YClcbiAgICBjb25zdCBoYXNoS2V5ZWRNZXRhID0gbWV0YVBhcmFtcy5nZXQoYCR7cGFyYW0uZ2V0KFwiaW5cIil9LiR7cGFyYW0uZ2V0KFwibmFtZVwiKX0uaGFzaC0ke3BhcmFtLmhhc2hDb2RlKCl9YClcbiAgICByZXR1cm4gT3JkZXJlZE1hcCgpLm1lcmdlKFxuICAgICAgY3VycmVudFBhcmFtLFxuICAgICAgaW5OYW1lS2V5ZWRNZXRhLFxuICAgICAgaGFzaEtleWVkTWV0YVxuICAgIClcbiAgfSlcbiAgcmV0dXJuIG1lcmdlZFBhcmFtcy5maW5kKGN1cnIgPT4gY3Vyci5nZXQoXCJpblwiKSA9PT0gcGFyYW0uZ2V0KFwiaW5cIikgJiYgY3Vyci5nZXQoXCJuYW1lXCIpID09PSBwYXJhbS5nZXQoXCJuYW1lXCIpLCBPcmRlcmVkTWFwKCkpXG59XG5cbmV4cG9ydCBjb25zdCBwYXJhbWV0ZXJJbmNsdXNpb25TZXR0aW5nRm9yID0gKHN0YXRlLCBwYXRoTWV0aG9kLCBwYXJhbU5hbWUsIHBhcmFtSW4pID0+IHtcbiAgY29uc3QgcGFyYW1LZXkgPSBgJHtwYXJhbUlufS4ke3BhcmFtTmFtZX1gXG4gIHJldHVybiBzdGF0ZS5nZXRJbihbXCJtZXRhXCIsIFwicGF0aHNcIiwgLi4ucGF0aE1ldGhvZCwgXCJwYXJhbWV0ZXJfaW5jbHVzaW9uc1wiLCBwYXJhbUtleV0sIGZhbHNlKVxufVxuXG5cbmV4cG9ydCBjb25zdCBwYXJhbWV0ZXJXaXRoTWV0YSA9IChzdGF0ZSwgcGF0aE1ldGhvZCwgcGFyYW1OYW1lLCBwYXJhbUluKSA9PiB7XG4gIGNvbnN0IG9wUGFyYW1zID0gc3BlY0pzb25XaXRoUmVzb2x2ZWRTdWJ0cmVlcyhzdGF0ZSkuZ2V0SW4oW1wicGF0aHNcIiwgLi4ucGF0aE1ldGhvZCwgXCJwYXJhbWV0ZXJzXCJdLCBPcmRlcmVkTWFwKCkpXG4gIGNvbnN0IGN1cnJlbnRQYXJhbSA9IG9wUGFyYW1zLmZpbmQocGFyYW0gPT4gcGFyYW0uZ2V0KFwiaW5cIikgPT09IHBhcmFtSW4gJiYgcGFyYW0uZ2V0KFwibmFtZVwiKSA9PT0gcGFyYW1OYW1lLCBPcmRlcmVkTWFwKCkpXG4gIHJldHVybiBwYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkoc3RhdGUsIHBhdGhNZXRob2QsIGN1cnJlbnRQYXJhbSlcbn1cblxuZXhwb3J0IGNvbnN0IG9wZXJhdGlvbldpdGhNZXRhID0gKHN0YXRlLCBwYXRoLCBtZXRob2QpID0+IHtcbiAgY29uc3Qgb3AgPSBzcGVjSnNvbldpdGhSZXNvbHZlZFN1YnRyZWVzKHN0YXRlKS5nZXRJbihbXCJwYXRoc1wiLCBwYXRoLCBtZXRob2RdLCBPcmRlcmVkTWFwKCkpXG4gIGNvbnN0IG1ldGEgPSBzdGF0ZS5nZXRJbihbXCJtZXRhXCIsIFwicGF0aHNcIiwgcGF0aCwgbWV0aG9kXSwgT3JkZXJlZE1hcCgpKVxuXG4gIGNvbnN0IG1lcmdlZFBhcmFtcyA9IG9wLmdldChcInBhcmFtZXRlcnNcIiwgTGlzdCgpKS5tYXAoKHBhcmFtKSA9PiB7XG4gICAgcmV0dXJuIHBhcmFtZXRlcldpdGhNZXRhQnlJZGVudGl0eShzdGF0ZSwgW3BhdGgsIG1ldGhvZF0sIHBhcmFtKVxuICB9KVxuXG4gIHJldHVybiBPcmRlcmVkTWFwKClcbiAgICAubWVyZ2Uob3AsIG1ldGEpXG4gICAgLnNldChcInBhcmFtZXRlcnNcIiwgbWVyZ2VkUGFyYW1zKVxufVxuXG4vLyBHZXQgdGhlIHBhcmFtZXRlciB2YWx1ZSBieSBwYXJhbWV0ZXIgbmFtZVxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhcmFtZXRlcihzdGF0ZSwgcGF0aE1ldGhvZCwgbmFtZSwgaW5UeXBlKSB7XG4gIHBhdGhNZXRob2QgPSBwYXRoTWV0aG9kIHx8IFtdXG4gIGxldCBwYXJhbXMgPSBzdGF0ZS5nZXRJbihbXCJtZXRhXCIsIFwicGF0aHNcIiwgLi4ucGF0aE1ldGhvZCwgXCJwYXJhbWV0ZXJzXCJdLCBmcm9tSlMoW10pKVxuICByZXR1cm4gcGFyYW1zLmZpbmQoIChwKSA9PiB7XG4gICAgcmV0dXJuIE1hcC5pc01hcChwKSAmJiBwLmdldChcIm5hbWVcIikgPT09IG5hbWUgJiYgcC5nZXQoXCJpblwiKSA9PT0gaW5UeXBlXG4gIH0pIHx8IE1hcCgpIC8vIEFsd2F5cyByZXR1cm4gYSBtYXBcbn1cblxuZXhwb3J0IGNvbnN0IGhhc0hvc3QgPSBjcmVhdGVTZWxlY3RvcihcbiAgc3BlYyxcbiAgc3BlYyA9PiB7XG4gICAgY29uc3QgaG9zdCA9IHNwZWMuZ2V0KFwiaG9zdFwiKVxuICAgIHJldHVybiB0eXBlb2YgaG9zdCA9PT0gXCJzdHJpbmdcIiAmJiBob3N0Lmxlbmd0aCA+IDAgJiYgaG9zdFswXSAhPT0gXCIvXCJcbiAgfVxuKVxuXG4vLyBHZXQgdGhlIHBhcmFtZXRlciB2YWx1ZXMsIHRoYXQgdGhlIHVzZXIgZmlsbGVkIG91dFxuZXhwb3J0IGZ1bmN0aW9uIHBhcmFtZXRlclZhbHVlcyhzdGF0ZSwgcGF0aE1ldGhvZCwgaXNYbWwpIHtcbiAgcGF0aE1ldGhvZCA9IHBhdGhNZXRob2QgfHwgW11cbiAgbGV0IHBhcmFtVmFsdWVzID0gb3BlcmF0aW9uV2l0aE1ldGEoc3RhdGUsIC4uLnBhdGhNZXRob2QpLmdldChcInBhcmFtZXRlcnNcIiwgTGlzdCgpKVxuICByZXR1cm4gcGFyYW1WYWx1ZXMucmVkdWNlKCAoaGFzaCwgcCkgPT4ge1xuICAgIGxldCB2YWx1ZSA9IGlzWG1sICYmIHAuZ2V0KFwiaW5cIikgPT09IFwiYm9keVwiID8gcC5nZXQoXCJ2YWx1ZV94bWxcIikgOiBwLmdldChcInZhbHVlXCIpXG4gICAgaWYgKExpc3QuaXNMaXN0KHZhbHVlKSkge1xuICAgICAgdmFsdWUgPSB2YWx1ZS5maWx0ZXIodiA9PiB2ICE9PSBcIlwiKVxuICAgIH1cbiAgICByZXR1cm4gaGFzaC5zZXQocGFyYW1Ub0lkZW50aWZpZXIocCwgeyBhbGxvd0hhc2hlczogZmFsc2UgfSksIHZhbHVlKVxuICB9LCBmcm9tSlMoe30pKVxufVxuXG4vLyBUcnVlIGlmIGFueSBwYXJhbWV0ZXIgaW5jbHVkZXMgYGluOiA/YFxuZXhwb3J0IGZ1bmN0aW9uIHBhcmFtZXRlcnNJbmNsdWRlSW4ocGFyYW1ldGVycywgaW5WYWx1ZT1cIlwiKSB7XG4gIGlmKExpc3QuaXNMaXN0KHBhcmFtZXRlcnMpKSB7XG4gICAgcmV0dXJuIHBhcmFtZXRlcnMuc29tZSggcCA9PiBNYXAuaXNNYXAocCkgJiYgcC5nZXQoXCJpblwiKSA9PT0gaW5WYWx1ZSApXG4gIH1cbn1cblxuLy8gVHJ1ZSBpZiBhbnkgcGFyYW1ldGVyIGluY2x1ZGVzIGB0eXBlOiA/YFxuZXhwb3J0IGZ1bmN0aW9uIHBhcmFtZXRlcnNJbmNsdWRlVHlwZShwYXJhbWV0ZXJzLCB0eXBlVmFsdWU9XCJcIikge1xuICBpZihMaXN0LmlzTGlzdChwYXJhbWV0ZXJzKSkge1xuICAgIHJldHVybiBwYXJhbWV0ZXJzLnNvbWUoIHAgPT4gTWFwLmlzTWFwKHApICYmIHAuZ2V0KFwidHlwZVwiKSA9PT0gdHlwZVZhbHVlIClcbiAgfVxufVxuXG4vLyBHZXQgdGhlIGNvbnN1bWVzL3Byb2R1Y2VzIHZhbHVlIHRoYXQgdGhlIHVzZXIgc2VsZWN0ZWRcbmV4cG9ydCBmdW5jdGlvbiBjb250ZW50VHlwZVZhbHVlcyhzdGF0ZSwgcGF0aE1ldGhvZCkge1xuICBwYXRoTWV0aG9kID0gcGF0aE1ldGhvZCB8fCBbXVxuICBsZXQgb3AgPSBzcGVjSnNvbldpdGhSZXNvbHZlZFN1YnRyZWVzKHN0YXRlKS5nZXRJbihbXCJwYXRoc1wiLCAuLi5wYXRoTWV0aG9kXSwgZnJvbUpTKHt9KSlcbiAgbGV0IG1ldGEgPSBzdGF0ZS5nZXRJbihbXCJtZXRhXCIsIFwicGF0aHNcIiwgLi4ucGF0aE1ldGhvZF0sIGZyb21KUyh7fSkpXG4gIGxldCBwcm9kdWNlc1ZhbHVlID0gY3VycmVudFByb2R1Y2VzRm9yKHN0YXRlLCBwYXRoTWV0aG9kKVxuXG4gIGNvbnN0IHBhcmFtZXRlcnMgPSBvcC5nZXQoXCJwYXJhbWV0ZXJzXCIpIHx8IG5ldyBMaXN0KClcblxuICBjb25zdCByZXF1ZXN0Q29udGVudFR5cGUgPSAoXG4gICAgbWV0YS5nZXQoXCJjb25zdW1lc192YWx1ZVwiKSA/IG1ldGEuZ2V0KFwiY29uc3VtZXNfdmFsdWVcIilcbiAgICAgIDogcGFyYW1ldGVyc0luY2x1ZGVUeXBlKHBhcmFtZXRlcnMsIFwiZmlsZVwiKSA/IFwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiXG4gICAgICA6IHBhcmFtZXRlcnNJbmNsdWRlVHlwZShwYXJhbWV0ZXJzLCBcImZvcm1EYXRhXCIpID8gXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIlxuICAgICAgOiB1bmRlZmluZWRcbiAgKVxuXG4gIHJldHVybiBmcm9tSlMoe1xuICAgIHJlcXVlc3RDb250ZW50VHlwZSxcbiAgICByZXNwb25zZUNvbnRlbnRUeXBlOiBwcm9kdWNlc1ZhbHVlXG4gIH0pXG59XG5cbi8vIEdldCB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHByb2R1Y2VzIHZhbHVlIGZvciBhbiBvcGVyYXRpb25cbmV4cG9ydCBmdW5jdGlvbiBjdXJyZW50UHJvZHVjZXNGb3Ioc3RhdGUsIHBhdGhNZXRob2QpIHtcbiAgcGF0aE1ldGhvZCA9IHBhdGhNZXRob2QgfHwgW11cblxuICBjb25zdCBvcGVyYXRpb24gPSBzcGVjSnNvbldpdGhSZXNvbHZlZFN1YnRyZWVzKHN0YXRlKS5nZXRJbihbIFwicGF0aHNcIiwgLi4ucGF0aE1ldGhvZF0sIG51bGwpXG5cbiAgaWYob3BlcmF0aW9uID09PSBudWxsKSB7XG4gICAgLy8gcmV0dXJuIG5vdGhpbmcgaWYgdGhlIG9wZXJhdGlvbiBkb2VzIG5vdCBleGlzdFxuICAgIHJldHVyblxuICB9XG5cbiAgY29uc3QgY3VycmVudFByb2R1Y2VzVmFsdWUgPSBzdGF0ZS5nZXRJbihbXCJtZXRhXCIsIFwicGF0aHNcIiwgLi4ucGF0aE1ldGhvZCwgXCJwcm9kdWNlc192YWx1ZVwiXSwgbnVsbClcbiAgY29uc3QgZmlyc3RQcm9kdWNlc0FycmF5SXRlbSA9IG9wZXJhdGlvbi5nZXRJbihbXCJwcm9kdWNlc1wiLCAwXSwgbnVsbClcblxuICByZXR1cm4gY3VycmVudFByb2R1Y2VzVmFsdWUgfHwgZmlyc3RQcm9kdWNlc0FycmF5SXRlbSB8fCBcImFwcGxpY2F0aW9uL2pzb25cIlxuXG59XG5cbi8vIEdldCB0aGUgcHJvZHVjZXMgb3B0aW9ucyBmb3IgYW4gb3BlcmF0aW9uXG5leHBvcnQgZnVuY3Rpb24gcHJvZHVjZXNPcHRpb25zRm9yKHN0YXRlLCBwYXRoTWV0aG9kKSB7XG4gIHBhdGhNZXRob2QgPSBwYXRoTWV0aG9kIHx8IFtdXG5cbiAgY29uc3Qgc3BlYyA9IHNwZWNKc29uV2l0aFJlc29sdmVkU3VidHJlZXMoc3RhdGUpXG4gIGNvbnN0IG9wZXJhdGlvbiA9IHNwZWMuZ2V0SW4oWyBcInBhdGhzXCIsIC4uLnBhdGhNZXRob2RdLCBudWxsKVxuXG4gIGlmKG9wZXJhdGlvbiA9PT0gbnVsbCkge1xuICAgIC8vIHJldHVybiBub3RoaW5nIGlmIHRoZSBvcGVyYXRpb24gZG9lcyBub3QgZXhpc3RcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IFtwYXRoXSA9IHBhdGhNZXRob2RcblxuICBjb25zdCBvcGVyYXRpb25Qcm9kdWNlcyA9IG9wZXJhdGlvbi5nZXQoXCJwcm9kdWNlc1wiLCBudWxsKVxuICBjb25zdCBwYXRoSXRlbVByb2R1Y2VzID0gc3BlYy5nZXRJbihbXCJwYXRoc1wiLCBwYXRoLCBcInByb2R1Y2VzXCJdLCBudWxsKVxuICBjb25zdCBnbG9iYWxQcm9kdWNlcyA9IHNwZWMuZ2V0SW4oW1wicHJvZHVjZXNcIl0sIG51bGwpXG5cbiAgcmV0dXJuIG9wZXJhdGlvblByb2R1Y2VzIHx8IHBhdGhJdGVtUHJvZHVjZXMgfHwgZ2xvYmFsUHJvZHVjZXNcbn1cblxuLy8gR2V0IHRoZSBjb25zdW1lcyBvcHRpb25zIGZvciBhbiBvcGVyYXRpb25cbmV4cG9ydCBmdW5jdGlvbiBjb25zdW1lc09wdGlvbnNGb3Ioc3RhdGUsIHBhdGhNZXRob2QpIHtcbiAgcGF0aE1ldGhvZCA9IHBhdGhNZXRob2QgfHwgW11cblxuICBjb25zdCBzcGVjID0gc3BlY0pzb25XaXRoUmVzb2x2ZWRTdWJ0cmVlcyhzdGF0ZSlcbiAgY29uc3Qgb3BlcmF0aW9uID0gc3BlYy5nZXRJbihbXCJwYXRoc1wiLCAuLi5wYXRoTWV0aG9kXSwgbnVsbClcblxuICBpZiAob3BlcmF0aW9uID09PSBudWxsKSB7XG4gICAgLy8gcmV0dXJuIG5vdGhpbmcgaWYgdGhlIG9wZXJhdGlvbiBkb2VzIG5vdCBleGlzdFxuICAgIHJldHVyblxuICB9XG5cbiAgY29uc3QgW3BhdGhdID0gcGF0aE1ldGhvZFxuXG4gIGNvbnN0IG9wZXJhdGlvbkNvbnN1bWVzID0gb3BlcmF0aW9uLmdldChcImNvbnN1bWVzXCIsIG51bGwpXG4gIGNvbnN0IHBhdGhJdGVtQ29uc3VtZXMgPSBzcGVjLmdldEluKFtcInBhdGhzXCIsIHBhdGgsIFwiY29uc3VtZXNcIl0sIG51bGwpXG4gIGNvbnN0IGdsb2JhbENvbnN1bWVzID0gc3BlYy5nZXRJbihbXCJjb25zdW1lc1wiXSwgbnVsbClcblxuICByZXR1cm4gb3BlcmF0aW9uQ29uc3VtZXMgfHwgcGF0aEl0ZW1Db25zdW1lcyB8fCBnbG9iYWxDb25zdW1lc1xufVxuXG5leHBvcnQgY29uc3Qgb3BlcmF0aW9uU2NoZW1lID0gKCBzdGF0ZSwgcGF0aCwgbWV0aG9kICkgPT4ge1xuICBsZXQgdXJsID0gc3RhdGUuZ2V0KFwidXJsXCIpXG4gIGxldCBtYXRjaFJlc3VsdCA9IHVybC5tYXRjaCgvXihbYS16XVthLXowLTkrXFwtLl0qKTovKVxuICBsZXQgdXJsU2NoZW1lID0gQXJyYXkuaXNBcnJheShtYXRjaFJlc3VsdCkgPyBtYXRjaFJlc3VsdFsxXSA6IG51bGxcblxuICByZXR1cm4gc3RhdGUuZ2V0SW4oW1wic2NoZW1lXCIsIHBhdGgsIG1ldGhvZF0pIHx8IHN0YXRlLmdldEluKFtcInNjaGVtZVwiLCBcIl9kZWZhdWx0U2NoZW1lXCJdKSB8fCB1cmxTY2hlbWUgfHwgXCJcIlxufVxuXG5leHBvcnQgY29uc3QgY2FuRXhlY3V0ZVNjaGVtZSA9ICggc3RhdGUsIHBhdGgsIG1ldGhvZCApID0+IHtcbiAgcmV0dXJuIFtcImh0dHBcIiwgXCJodHRwc1wiXS5pbmRleE9mKG9wZXJhdGlvblNjaGVtZShzdGF0ZSwgcGF0aCwgbWV0aG9kKSkgPiAtMVxufVxuXG5leHBvcnQgY29uc3QgdmFsaWRhdGlvbkVycm9ycyA9IChzdGF0ZSwgcGF0aE1ldGhvZCkgPT4ge1xuICBwYXRoTWV0aG9kID0gcGF0aE1ldGhvZCB8fCBbXVxuICBjb25zdCBwYXJhbVZhbHVlcyA9IHN0YXRlLmdldEluKFtcIm1ldGFcIiwgXCJwYXRoc1wiLCAuLi5wYXRoTWV0aG9kLCBcInBhcmFtZXRlcnNcIl0sIGZyb21KUyhbXSkpXG4gIGNvbnN0IHJlc3VsdCA9IFtdXG5cbiAgaWYgKHBhcmFtVmFsdWVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHJlc3VsdFxuXG4gIGNvbnN0IGdldEVycm9yc1dpdGhQYXRocyA9IChlcnJvcnMsIHBhdGggPSBbXSkgPT4ge1xuICAgIGNvbnN0IGdldE5lc3RlZEVycm9yc1dpdGhQYXRocyA9IChlLCBwYXRoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyUGF0aCA9IFsuLi5wYXRoLCBlLmdldChcInByb3BLZXlcIikgfHwgZS5nZXQoXCJpbmRleFwiKV1cbiAgICAgIHJldHVybiBNYXAuaXNNYXAoZS5nZXQoXCJlcnJvclwiKSlcbiAgICAgICAgPyBnZXRFcnJvcnNXaXRoUGF0aHMoZS5nZXQoXCJlcnJvclwiKSwgY3VyclBhdGgpXG4gICAgICAgIDogeyBlcnJvcjogZS5nZXQoXCJlcnJvclwiKSwgcGF0aDogY3VyclBhdGggfVxuICAgIH1cblxuICAgIHJldHVybiBMaXN0LmlzTGlzdChlcnJvcnMpXG4gICAgID8gZXJyb3JzLm1hcCgoZSkgPT4gKE1hcC5pc01hcChlKSA/IGdldE5lc3RlZEVycm9yc1dpdGhQYXRocyhlLCBwYXRoKSA6IHsgZXJyb3I6IGUsIHBhdGggfSkpXG4gICAgIDogZ2V0TmVzdGVkRXJyb3JzV2l0aFBhdGhzKGVycm9ycywgcGF0aClcbiAgfVxuXG4gIGNvbnN0IGZvcm1hdEVycm9yID0gKGVycm9yLCBwYXRoLCBwYXJhbU5hbWUpID0+IHtcbiAgICBwYXRoID0gcGF0aC5yZWR1Y2UoKGFjYywgY3VycikgPT4ge1xuICAgICAgcmV0dXJuIHR5cGVvZiBjdXJyID09PSBcIm51bWJlclwiXG4gICAgICAgID8gYCR7YWNjfVske2N1cnJ9XWBcbiAgICAgICAgOiBhY2NcbiAgICAgICAgPyBgJHthY2N9LiR7Y3Vycn1gXG4gICAgICAgIDogY3VyclxuICAgIH0sIFwiXCIpXG4gICAgcmV0dXJuIGBGb3IgJyR7cGFyYW1OYW1lfScke3BhdGggPyBgIGF0IHBhdGggJyR7cGF0aH0nYCA6IFwiXCJ9OiAke2Vycm9yfS5gXG4gIH1cblxuICBwYXJhbVZhbHVlcy5mb3JFYWNoKCAocCwga2V5KSA9PiB7XG4gICAgY29uc3QgcGFyYW1OYW1lID0ga2V5LnNwbGl0KFwiLlwiKS5zbGljZSgxLCAtMSkuam9pbihcIi5cIilcbiAgICBjb25zdCBlcnJvcnMgPSBwLmdldChcImVycm9yc1wiKVxuICAgIGlmIChlcnJvcnMgJiYgZXJyb3JzLmNvdW50KCkpIHtcbiAgICAgIGNvbnN0IGVycm9yc1dpdGhQYXRocyA9IGdldEVycm9yc1dpdGhQYXRocyhlcnJvcnMpXG4gICAgICBlcnJvcnNXaXRoUGF0aHMuZm9yRWFjaCgoe2Vycm9yLCBwYXRofSkgPT4ge1xuICAgICAgICByZXN1bHQucHVzaChmb3JtYXRFcnJvcihlcnJvciwgcGF0aCwgcGFyYW1OYW1lKSlcbiAgICAgIH0pXG4gICAgfVxuICB9KVxuICByZXR1cm4gcmVzdWx0XG59XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUJlZm9yZUV4ZWN1dGUgPSAoc3RhdGUsIHBhdGhNZXRob2QpID0+IHtcbiAgcmV0dXJuIHZhbGlkYXRpb25FcnJvcnMoc3RhdGUsIHBhdGhNZXRob2QpLmxlbmd0aCA9PT0gMFxufVxuXG5leHBvcnQgY29uc3QgZ2V0T0FTM1JlcXVpcmVkUmVxdWVzdEJvZHlDb250ZW50VHlwZSA9IChzdGF0ZSwgcGF0aE1ldGhvZCkgPT4ge1xuICBsZXQgcmVxdWlyZWRPYmogPSB7XG4gICAgcmVxdWVzdEJvZHk6IGZhbHNlLFxuICAgIHJlcXVlc3RDb250ZW50VHlwZToge31cbiAgfVxuICBsZXQgcmVxdWVzdEJvZHkgPSBzdGF0ZS5nZXRJbihbXCJyZXNvbHZlZFN1YnRyZWVzXCIsIFwicGF0aHNcIiwgLi4ucGF0aE1ldGhvZCwgXCJyZXF1ZXN0Qm9keVwiXSwgZnJvbUpTKFtdKSlcbiAgaWYgKHJlcXVlc3RCb2R5LnNpemUgPCAxKSB7XG4gICAgcmV0dXJuIHJlcXVpcmVkT2JqXG4gIH1cbiAgaWYgKHJlcXVlc3RCb2R5LmdldEluKFtcInJlcXVpcmVkXCJdKSkge1xuICAgIHJlcXVpcmVkT2JqLnJlcXVlc3RCb2R5ID0gcmVxdWVzdEJvZHkuZ2V0SW4oW1wicmVxdWlyZWRcIl0pXG4gIH1cbiAgcmVxdWVzdEJvZHkuZ2V0SW4oW1wiY29udGVudFwiXSkuZW50cnlTZXEoKS5mb3JFYWNoKChjb250ZW50VHlwZSkgPT4geyAvLyBlLmcgYXBwbGljYXRpb24vanNvblxuICAgIGNvbnN0IGtleSA9IGNvbnRlbnRUeXBlWzBdXG4gICAgaWYgKGNvbnRlbnRUeXBlWzFdLmdldEluKFtcInNjaGVtYVwiLCBcInJlcXVpcmVkXCJdKSkge1xuICAgICAgY29uc3QgdmFsID0gY29udGVudFR5cGVbMV0uZ2V0SW4oW1wic2NoZW1hXCIsIFwicmVxdWlyZWRcIl0pLnRvSlMoKVxuICAgICAgcmVxdWlyZWRPYmoucmVxdWVzdENvbnRlbnRUeXBlW2tleV0gPSB2YWxcbiAgICB9XG4gIH0pXG4gIHJldHVybiByZXF1aXJlZE9ialxufVxuXG5leHBvcnQgY29uc3QgaXNNZWRpYVR5cGVTY2hlbWFQcm9wZXJ0aWVzRXF1YWwgPSAoIHN0YXRlLCBwYXRoTWV0aG9kLCBjdXJyZW50TWVkaWFUeXBlLCB0YXJnZXRNZWRpYVR5cGUpID0+IHtcbiAgaWYoKGN1cnJlbnRNZWRpYVR5cGUgfHwgdGFyZ2V0TWVkaWFUeXBlKSAmJiBjdXJyZW50TWVkaWFUeXBlID09PSB0YXJnZXRNZWRpYVR5cGUgKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuICBsZXQgcmVxdWVzdEJvZHlDb250ZW50ID0gc3RhdGUuZ2V0SW4oW1wicmVzb2x2ZWRTdWJ0cmVlc1wiLCBcInBhdGhzXCIsIC4uLnBhdGhNZXRob2QsIFwicmVxdWVzdEJvZHlcIiwgXCJjb250ZW50XCJdLCBmcm9tSlMoW10pKVxuICBpZiAocmVxdWVzdEJvZHlDb250ZW50LnNpemUgPCAyIHx8ICFjdXJyZW50TWVkaWFUeXBlIHx8ICF0YXJnZXRNZWRpYVR5cGUpIHtcbiAgICAvLyBub3RoaW5nIHRvIGNvbXBhcmVcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBsZXQgY3VycmVudE1lZGlhVHlwZVNjaGVtYVByb3BlcnRpZXMgPSByZXF1ZXN0Qm9keUNvbnRlbnQuZ2V0SW4oW2N1cnJlbnRNZWRpYVR5cGUsIFwic2NoZW1hXCIsIFwicHJvcGVydGllc1wiXSwgZnJvbUpTKFtdKSlcbiAgbGV0IHRhcmdldE1lZGlhVHlwZVNjaGVtYVByb3BlcnRpZXMgPSByZXF1ZXN0Qm9keUNvbnRlbnQuZ2V0SW4oW3RhcmdldE1lZGlhVHlwZSwgXCJzY2hlbWFcIiwgXCJwcm9wZXJ0aWVzXCJdLCBmcm9tSlMoW10pKVxuICByZXR1cm4gISFjdXJyZW50TWVkaWFUeXBlU2NoZW1hUHJvcGVydGllcy5lcXVhbHModGFyZ2V0TWVkaWFUeXBlU2NoZW1hUHJvcGVydGllcylcbn1cblxuZnVuY3Rpb24gcmV0dXJuU2VsZk9yTmV3TWFwKG9iaikge1xuICAvLyByZXR1cm5zIG9iaiBpZiBvYmogaXMgYW4gSW1tdXRhYmxlIG1hcCwgZWxzZSByZXR1cm5zIGEgbmV3IE1hcFxuICByZXR1cm4gTWFwLmlzTWFwKG9iaikgPyBvYmogOiBuZXcgTWFwKClcbn1cbiIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwibG9kYXNoL2lzU3RyaW5nXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwibG9kYXNoL2RlYm91bmNlXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwibG9kYXNoL3NldFwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImxvZGFzaC9mcC9hc3NvY1BhdGhcIik7IiwiaW1wb3J0IFlBTUwsIHsgSlNPTl9TQ0hFTUEgfSBmcm9tIFwianMteWFtbFwiXG5pbXBvcnQgeyBNYXAgYXMgSW1tdXRhYmxlTWFwIH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgcGFyc2VVcmwgZnJvbSBcInVybC1wYXJzZVwiXG5pbXBvcnQgaXNTdHJpbmcgZnJvbSBcImxvZGFzaC9pc1N0cmluZ1wiXG5pbXBvcnQgZGVib3VuY2UgZnJvbSBcImxvZGFzaC9kZWJvdW5jZVwiXG5pbXBvcnQgc2V0IGZyb20gXCJsb2Rhc2gvc2V0XCJcbmltcG9ydCBhc3NvY1BhdGggZnJvbSBcImxvZGFzaC9mcC9hc3NvY1BhdGhcIlxuaW1wb3J0IGNvbnN0YW50IGZyb20gXCJsb2Rhc2gvY29uc3RhbnRcIlxuXG5pbXBvcnQgeyBwYXJhbVRvVmFsdWUsIGlzRW1wdHlWYWx1ZSB9IGZyb20gXCJjb3JlL3V0aWxzXCJcblxuLy8gQWN0aW9ucyBjb25mb3JtIHRvIEZTQSAoZmx1eC1zdGFuZGFyZC1hY3Rpb25zKVxuLy8ge3R5cGU6IHN0cmluZyxwYXlsb2FkOiBBbnl8RXJyb3IsIG1ldGE6IG9iaiwgZXJyb3I6IGJvb2x9XG5cbmV4cG9ydCBjb25zdCBVUERBVEVfU1BFQyA9IFwic3BlY191cGRhdGVfc3BlY1wiXG5leHBvcnQgY29uc3QgVVBEQVRFX1VSTCA9IFwic3BlY191cGRhdGVfdXJsXCJcbmV4cG9ydCBjb25zdCBVUERBVEVfSlNPTiA9IFwic3BlY191cGRhdGVfanNvblwiXG5leHBvcnQgY29uc3QgVVBEQVRFX1BBUkFNID0gXCJzcGVjX3VwZGF0ZV9wYXJhbVwiXG5leHBvcnQgY29uc3QgVVBEQVRFX0VNUFRZX1BBUkFNX0lOQ0xVU0lPTiA9IFwic3BlY191cGRhdGVfZW1wdHlfcGFyYW1faW5jbHVzaW9uXCJcbmV4cG9ydCBjb25zdCBWQUxJREFURV9QQVJBTVMgPSBcInNwZWNfdmFsaWRhdGVfcGFyYW1cIlxuZXhwb3J0IGNvbnN0IFNFVF9SRVNQT05TRSA9IFwic3BlY19zZXRfcmVzcG9uc2VcIlxuZXhwb3J0IGNvbnN0IFNFVF9SRVFVRVNUID0gXCJzcGVjX3NldF9yZXF1ZXN0XCJcbmV4cG9ydCBjb25zdCBTRVRfTVVUQVRFRF9SRVFVRVNUID0gXCJzcGVjX3NldF9tdXRhdGVkX3JlcXVlc3RcIlxuZXhwb3J0IGNvbnN0IExPR19SRVFVRVNUID0gXCJzcGVjX2xvZ19yZXF1ZXN0XCJcbmV4cG9ydCBjb25zdCBDTEVBUl9SRVNQT05TRSA9IFwic3BlY19jbGVhcl9yZXNwb25zZVwiXG5leHBvcnQgY29uc3QgQ0xFQVJfUkVRVUVTVCA9IFwic3BlY19jbGVhcl9yZXF1ZXN0XCJcbmV4cG9ydCBjb25zdCBDTEVBUl9WQUxJREFURV9QQVJBTVMgPSBcInNwZWNfY2xlYXJfdmFsaWRhdGVfcGFyYW1cIlxuZXhwb3J0IGNvbnN0IFVQREFURV9PUEVSQVRJT05fTUVUQV9WQUxVRSA9IFwic3BlY191cGRhdGVfb3BlcmF0aW9uX21ldGFfdmFsdWVcIlxuZXhwb3J0IGNvbnN0IFVQREFURV9SRVNPTFZFRCA9IFwic3BlY191cGRhdGVfcmVzb2x2ZWRcIlxuZXhwb3J0IGNvbnN0IFVQREFURV9SRVNPTFZFRF9TVUJUUkVFID0gXCJzcGVjX3VwZGF0ZV9yZXNvbHZlZF9zdWJ0cmVlXCJcbmV4cG9ydCBjb25zdCBTRVRfU0NIRU1FID0gXCJzZXRfc2NoZW1lXCJcblxuY29uc3QgdG9TdHIgPSAoc3RyKSA9PiBpc1N0cmluZyhzdHIpID8gc3RyIDogXCJcIlxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlU3BlYyhzcGVjKSB7XG4gIGNvbnN0IGNsZWFuU3BlYyA9ICh0b1N0cihzcGVjKSkucmVwbGFjZSgvXFx0L2csIFwiICBcIilcbiAgaWYodHlwZW9mIHNwZWMgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogVVBEQVRFX1NQRUMsXG4gICAgICBwYXlsb2FkOiBjbGVhblNwZWNcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVJlc29sdmVkKHNwZWMpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBVUERBVEVfUkVTT0xWRUQsXG4gICAgcGF5bG9hZDogc3BlY1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVVcmwodXJsKSB7XG4gIHJldHVybiB7dHlwZTogVVBEQVRFX1VSTCwgcGF5bG9hZDogdXJsfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlSnNvblNwZWMoanNvbikge1xuICByZXR1cm4ge3R5cGU6IFVQREFURV9KU09OLCBwYXlsb2FkOiBqc29ufVxufVxuXG5leHBvcnQgY29uc3QgcGFyc2VUb0pzb24gPSAoc3RyKSA9PiAoe3NwZWNBY3Rpb25zLCBzcGVjU2VsZWN0b3JzLCBlcnJBY3Rpb25zfSkgPT4ge1xuICBsZXQgeyBzcGVjU3RyIH0gPSBzcGVjU2VsZWN0b3JzXG5cbiAgbGV0IGpzb24gPSBudWxsXG4gIHRyeSB7XG4gICAgc3RyID0gc3RyIHx8IHNwZWNTdHIoKVxuICAgIGVyckFjdGlvbnMuY2xlYXIoeyBzb3VyY2U6IFwicGFyc2VyXCIgfSlcbiAgICBqc29uID0gWUFNTC5sb2FkKHN0ciwgeyBzY2hlbWE6IEpTT05fU0NIRU1BIH0pXG4gIH0gY2F0Y2goZSkge1xuICAgIC8vIFRPRE86IHB1c2ggZXJyb3IgdG8gc3RhdGVcbiAgICBjb25zb2xlLmVycm9yKGUpXG4gICAgcmV0dXJuIGVyckFjdGlvbnMubmV3U3BlY0Vycih7XG4gICAgICBzb3VyY2U6IFwicGFyc2VyXCIsXG4gICAgICBsZXZlbDogXCJlcnJvclwiLFxuICAgICAgbWVzc2FnZTogZS5yZWFzb24sXG4gICAgICBsaW5lOiBlLm1hcmsgJiYgZS5tYXJrLmxpbmUgPyBlLm1hcmsubGluZSArIDEgOiB1bmRlZmluZWRcbiAgICB9KVxuICB9XG4gIGlmKGpzb24gJiYgdHlwZW9mIGpzb24gPT09IFwib2JqZWN0XCIpIHtcbiAgICByZXR1cm4gc3BlY0FjdGlvbnMudXBkYXRlSnNvblNwZWMoanNvbilcbiAgfVxuICByZXR1cm4gc3BlY0FjdGlvbnMudXBkYXRlSnNvblNwZWMoe30pXG59XG5cbmxldCBoYXNXYXJuZWRBYm91dFJlc29sdmVTcGVjRGVwcmVjYXRpb24gPSBmYWxzZVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZVNwZWMgPSAoanNvbiwgdXJsKSA9PiAoe3NwZWNBY3Rpb25zLCBzcGVjU2VsZWN0b3JzLCBlcnJBY3Rpb25zLCBmbjogeyBmZXRjaCwgcmVzb2x2ZSwgQVNUID0ge30gfSwgZ2V0Q29uZmlnc30pID0+IHtcbiAgaWYoIWhhc1dhcm5lZEFib3V0UmVzb2x2ZVNwZWNEZXByZWNhdGlvbikge1xuICAgIGNvbnNvbGUud2Fybihgc3BlY0FjdGlvbnMucmVzb2x2ZVNwZWMgaXMgZGVwcmVjYXRlZCBzaW5jZSB2My4xMC4wIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdjQuMC4wOyB1c2UgcmVxdWVzdFJlc29sdmVkU3VidHJlZSBpbnN0ZWFkIWApXG4gICAgaGFzV2FybmVkQWJvdXRSZXNvbHZlU3BlY0RlcHJlY2F0aW9uID0gdHJ1ZVxuICB9XG5cbiAgY29uc3Qge1xuICAgIG1vZGVsUHJvcGVydHlNYWNybyxcbiAgICBwYXJhbWV0ZXJNYWNybyxcbiAgICByZXF1ZXN0SW50ZXJjZXB0b3IsXG4gICAgcmVzcG9uc2VJbnRlcmNlcHRvclxuICB9ID0gZ2V0Q29uZmlncygpXG5cbiAgaWYodHlwZW9mKGpzb24pID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAganNvbiA9IHNwZWNTZWxlY3RvcnMuc3BlY0pzb24oKVxuICB9XG4gIGlmKHR5cGVvZih1cmwpID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgdXJsID0gc3BlY1NlbGVjdG9ycy51cmwoKVxuICB9XG5cbiAgbGV0IGdldExpbmVOdW1iZXJGb3JQYXRoID0gQVNULmdldExpbmVOdW1iZXJGb3JQYXRoID8gQVNULmdldExpbmVOdW1iZXJGb3JQYXRoIDogKCkgPT4gdW5kZWZpbmVkXG5cbiAgbGV0IHNwZWNTdHIgPSBzcGVjU2VsZWN0b3JzLnNwZWNTdHIoKVxuXG4gIHJldHVybiByZXNvbHZlKHtcbiAgICBmZXRjaCxcbiAgICBzcGVjOiBqc29uLFxuICAgIGJhc2VEb2M6IFN0cmluZyhuZXcgVVJMKHVybCwgZG9jdW1lbnQuYmFzZVVSSSkpLFxuICAgIG1vZGVsUHJvcGVydHlNYWNybyxcbiAgICBwYXJhbWV0ZXJNYWNybyxcbiAgICByZXF1ZXN0SW50ZXJjZXB0b3IsXG4gICAgcmVzcG9uc2VJbnRlcmNlcHRvclxuICB9KS50aGVuKCAoe3NwZWMsIGVycm9yc30pID0+IHtcbiAgICBlcnJBY3Rpb25zLmNsZWFyKHtcbiAgICAgIHR5cGU6IFwidGhyb3duXCJcbiAgICB9KVxuICAgIGlmKEFycmF5LmlzQXJyYXkoZXJyb3JzKSAmJiBlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgbGV0IHByZXBhcmVkRXJyb3JzID0gZXJyb3JzXG4gICAgICAgIC5tYXAoZXJyID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycilcbiAgICAgICAgICBlcnIubGluZSA9IGVyci5mdWxsUGF0aCA/IGdldExpbmVOdW1iZXJGb3JQYXRoKHNwZWNTdHIsIGVyci5mdWxsUGF0aCkgOiBudWxsXG4gICAgICAgICAgZXJyLnBhdGggPSBlcnIuZnVsbFBhdGggPyBlcnIuZnVsbFBhdGguam9pbihcIi5cIikgOiBudWxsXG4gICAgICAgICAgZXJyLmxldmVsID0gXCJlcnJvclwiXG4gICAgICAgICAgZXJyLnR5cGUgPSBcInRocm93blwiXG4gICAgICAgICAgZXJyLnNvdXJjZSA9IFwicmVzb2x2ZXJcIlxuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlcnIsIFwibWVzc2FnZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiBlcnIubWVzc2FnZSB9KVxuICAgICAgICAgIHJldHVybiBlcnJcbiAgICAgICAgfSlcbiAgICAgIGVyckFjdGlvbnMubmV3VGhyb3duRXJyQmF0Y2gocHJlcGFyZWRFcnJvcnMpXG4gICAgfVxuXG4gICAgcmV0dXJuIHNwZWNBY3Rpb25zLnVwZGF0ZVJlc29sdmVkKHNwZWMpXG4gIH0pXG59XG5cbmxldCByZXF1ZXN0QmF0Y2ggPSBbXVxuXG5jb25zdCBkZWJSZXNvbHZlU3VidHJlZXMgPSBkZWJvdW5jZSgoKSA9PiB7XG4gIGNvbnN0IHN5c3RlbVBhcnRpdGlvbmVkQmF0Y2hlcyA9IHJlcXVlc3RCYXRjaC5yZWR1Y2UoKGFjYywgeyBwYXRoLCBzeXN0ZW0gfSkgPT4ge1xuICAgIGlmICghYWNjLmhhcyhzeXN0ZW0pKSBhY2Muc2V0KHN5c3RlbSwgW10pXG4gICAgYWNjLmdldChzeXN0ZW0pLnB1c2gocGF0aClcbiAgICByZXR1cm4gYWNjXG4gIH0sIG5ldyBNYXAoKSlcblxuICByZXF1ZXN0QmF0Y2ggPSBbXSAvLyBjbGVhciBzdGFja1xuXG4gIHN5c3RlbVBhcnRpdGlvbmVkQmF0Y2hlcy5mb3JFYWNoKGFzeW5jIChzeXN0ZW1SZXF1ZXN0QmF0Y2gsIHN5c3RlbSkgPT4ge1xuICAgIGlmKCFzeXN0ZW0pIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJkZWJSZXNvbHZlU3VidHJlZXM6IGRvbid0IGhhdmUgYSBzeXN0ZW0gdG8gb3BlcmF0ZSBvbiwgYWJvcnRpbmcuXCIpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYoIXN5c3RlbS5mbi5yZXNvbHZlU3VidHJlZSkge1xuICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yOiBTd2FnZ2VyLUNsaWVudCBkaWQgbm90IHByb3ZpZGUgYSBgcmVzb2x2ZVN1YnRyZWVgIG1ldGhvZCwgZG9pbmcgbm90aGluZy5cIilcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCB7XG4gICAgICBlcnJBY3Rpb25zLFxuICAgICAgZXJyU2VsZWN0b3JzLFxuICAgICAgZm46IHtcbiAgICAgICAgcmVzb2x2ZVN1YnRyZWUsXG4gICAgICAgIGZldGNoLFxuICAgICAgICBBU1QgPSB7fVxuICAgICAgfSxcbiAgICAgIHNwZWNTZWxlY3RvcnMsXG4gICAgICBzcGVjQWN0aW9ucyxcbiAgICB9ID0gc3lzdGVtXG4gICAgY29uc3QgZ2V0TGluZU51bWJlckZvclBhdGggPSBBU1QuZ2V0TGluZU51bWJlckZvclBhdGggPz8gY29uc3RhbnQodW5kZWZpbmVkKVxuICAgIGNvbnN0IHNwZWNTdHIgPSBzcGVjU2VsZWN0b3JzLnNwZWNTdHIoKVxuICAgIGNvbnN0IHtcbiAgICAgIG1vZGVsUHJvcGVydHlNYWNybyxcbiAgICAgIHBhcmFtZXRlck1hY3JvLFxuICAgICAgcmVxdWVzdEludGVyY2VwdG9yLFxuICAgICAgcmVzcG9uc2VJbnRlcmNlcHRvclxuICAgIH0gPSBzeXN0ZW0uZ2V0Q29uZmlncygpXG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgYmF0Y2hSZXN1bHQgPSBhd2FpdCBzeXN0ZW1SZXF1ZXN0QmF0Y2gucmVkdWNlKGFzeW5jIChwcmV2LCBwYXRoKSA9PiB7XG4gICAgICAgIGxldCB7IHJlc3VsdE1hcCwgc3BlY1dpdGhDdXJyZW50U3VidHJlZXMgfSA9IGF3YWl0IHByZXZcbiAgICAgICAgY29uc3QgeyBlcnJvcnMsIHNwZWMgfSA9IGF3YWl0IHJlc29sdmVTdWJ0cmVlKHNwZWNXaXRoQ3VycmVudFN1YnRyZWVzLCBwYXRoLCB7XG4gICAgICAgICAgYmFzZURvYzogU3RyaW5nKG5ldyBVUkwoc3BlY1NlbGVjdG9ycy51cmwoKSwgZG9jdW1lbnQuYmFzZVVSSSkpLFxuICAgICAgICAgIG1vZGVsUHJvcGVydHlNYWNybyxcbiAgICAgICAgICBwYXJhbWV0ZXJNYWNybyxcbiAgICAgICAgICByZXF1ZXN0SW50ZXJjZXB0b3IsXG4gICAgICAgICAgcmVzcG9uc2VJbnRlcmNlcHRvclxuICAgICAgICB9KVxuXG4gICAgICAgIGlmKGVyclNlbGVjdG9ycy5hbGxFcnJvcnMoKS5zaXplKSB7XG4gICAgICAgICAgZXJyQWN0aW9ucy5jbGVhckJ5KGVyciA9PiB7XG4gICAgICAgICAgICAvLyBrZWVwIGlmLi4uXG4gICAgICAgICAgICByZXR1cm4gZXJyLmdldChcInR5cGVcIikgIT09IFwidGhyb3duXCIgLy8gaXQncyBub3QgYSB0aHJvd24gZXJyb3JcbiAgICAgICAgICAgICAgfHwgZXJyLmdldChcInNvdXJjZVwiKSAhPT0gXCJyZXNvbHZlclwiIC8vIGl0J3Mgbm90IGEgcmVzb2x2ZXIgZXJyb3JcbiAgICAgICAgICAgICAgfHwgIWVyci5nZXQoXCJmdWxsUGF0aFwiKT8uZXZlcnkoKGtleSwgaSkgPT4ga2V5ID09PSBwYXRoW2ldIHx8IHBhdGhbaV0gPT09IHVuZGVmaW5lZCkgLy8gaXQncyBub3Qgd2l0aGluIHRoZSBwYXRoIHdlJ3JlIHJlc29sdmluZ1xuICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICBpZihBcnJheS5pc0FycmF5KGVycm9ycykgJiYgZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBsZXQgcHJlcGFyZWRFcnJvcnMgPSBlcnJvcnNcbiAgICAgICAgICAgIC5tYXAoZXJyID0+IHtcbiAgICAgICAgICAgICAgZXJyLmxpbmUgPSBlcnIuZnVsbFBhdGggPyBnZXRMaW5lTnVtYmVyRm9yUGF0aChzcGVjU3RyLCBlcnIuZnVsbFBhdGgpIDogbnVsbFxuICAgICAgICAgICAgICBlcnIucGF0aCA9IGVyci5mdWxsUGF0aCA/IGVyci5mdWxsUGF0aC5qb2luKFwiLlwiKSA6IG51bGxcbiAgICAgICAgICAgICAgZXJyLmxldmVsID0gXCJlcnJvclwiXG4gICAgICAgICAgICAgIGVyci50eXBlID0gXCJ0aHJvd25cIlxuICAgICAgICAgICAgICBlcnIuc291cmNlID0gXCJyZXNvbHZlclwiXG4gICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlcnIsIFwibWVzc2FnZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiBlcnIubWVzc2FnZSB9KVxuICAgICAgICAgICAgICByZXR1cm4gZXJyXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIGVyckFjdGlvbnMubmV3VGhyb3duRXJyQmF0Y2gocHJlcGFyZWRFcnJvcnMpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3BlYyAmJiBzcGVjU2VsZWN0b3JzLmlzT0FTMygpICYmIHBhdGhbMF0gPT09IFwiY29tcG9uZW50c1wiICYmIHBhdGhbMV0gPT09IFwic2VjdXJpdHlTY2hlbWVzXCIpIHtcbiAgICAgICAgICAvLyBSZXNvbHZlIE9JREMgVVJMcyBpZiBwcmVzZW50XG4gICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoT2JqZWN0LnZhbHVlcyhzcGVjKVxuICAgICAgICAgICAgLmZpbHRlcigoc2NoZW1lKSA9PiBzY2hlbWU/LnR5cGUgPT09IFwib3BlbklkQ29ubmVjdFwiKVxuICAgICAgICAgICAgLm1hcChhc3luYyAob2lkY1NjaGVtZSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCByZXEgPSB7XG4gICAgICAgICAgICAgICAgdXJsOiBvaWRjU2NoZW1lLm9wZW5JZENvbm5lY3RVcmwsXG4gICAgICAgICAgICAgICAgcmVxdWVzdEludGVyY2VwdG9yOiByZXF1ZXN0SW50ZXJjZXB0b3IsXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VJbnRlcmNlcHRvcjogcmVzcG9uc2VJbnRlcmNlcHRvclxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2gocmVxKVxuICAgICAgICAgICAgICAgIGlmIChyZXMgaW5zdGFuY2VvZiBFcnJvciB8fCByZXMuc3RhdHVzID49IDQwMCkge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihyZXMuc3RhdHVzVGV4dCArIFwiIFwiICsgcmVxLnVybClcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgb2lkY1NjaGVtZS5vcGVuSWRDb25uZWN0RGF0YSA9IEpTT04ucGFyc2UocmVzLnRleHQpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSlcbiAgICAgICAgfVxuICAgICAgICBzZXQocmVzdWx0TWFwLCBwYXRoLCBzcGVjKVxuICAgICAgICBzcGVjV2l0aEN1cnJlbnRTdWJ0cmVlcyA9IGFzc29jUGF0aChwYXRoLCBzcGVjLCBzcGVjV2l0aEN1cnJlbnRTdWJ0cmVlcylcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlc3VsdE1hcCxcbiAgICAgICAgICBzcGVjV2l0aEN1cnJlbnRTdWJ0cmVlc1xuICAgICAgICB9XG4gICAgICB9LCBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICByZXN1bHRNYXA6IChzcGVjU2VsZWN0b3JzLnNwZWNSZXNvbHZlZFN1YnRyZWUoW10pIHx8IEltbXV0YWJsZU1hcCgpKS50b0pTKCksXG4gICAgICAgIHNwZWNXaXRoQ3VycmVudFN1YnRyZWVzOiBzcGVjU2VsZWN0b3JzLnNwZWNKUygpXG4gICAgICB9KSlcblxuICAgICAgc3BlY0FjdGlvbnMudXBkYXRlUmVzb2x2ZWRTdWJ0cmVlKFtdLCBiYXRjaFJlc3VsdC5yZXN1bHRNYXApXG4gICAgfSBjYXRjaChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGUpXG4gICAgfVxuICB9KVxufSwgMzUpXG5cbmV4cG9ydCBjb25zdCByZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlID0gcGF0aCA9PiBzeXN0ZW0gPT4ge1xuICBjb25zdCBpc1BhdGhBbHJlYWR5QmF0Y2hlZCA9IHJlcXVlc3RCYXRjaC5maW5kKCh7IHBhdGg6IGJhdGNoZWRQYXRoLCBzeXN0ZW06IGJhdGNoZWRTeXN0ZW0gfSkgPT4ge1xuICAgIHJldHVybiBiYXRjaGVkU3lzdGVtID09PSBzeXN0ZW0gJiYgYmF0Y2hlZFBhdGgudG9TdHJpbmcoKSA9PT0gcGF0aC50b1N0cmluZygpXG4gIH0pXG5cbiAgaWYoaXNQYXRoQWxyZWFkeUJhdGNoZWQpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIHJlcXVlc3RCYXRjaC5wdXNoKHsgcGF0aCwgc3lzdGVtIH0pXG5cbiAgZGViUmVzb2x2ZVN1YnRyZWVzKClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoYW5nZVBhcmFtKCBwYXRoLCBwYXJhbU5hbWUsIHBhcmFtSW4sIHZhbHVlLCBpc1htbCApe1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9QQVJBTSxcbiAgICBwYXlsb2FkOnsgcGF0aCwgdmFsdWUsIHBhcmFtTmFtZSwgcGFyYW1JbiwgaXNYbWwgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGFuZ2VQYXJhbUJ5SWRlbnRpdHkoIHBhdGhNZXRob2QsIHBhcmFtLCB2YWx1ZSwgaXNYbWwgKXtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBVUERBVEVfUEFSQU0sXG4gICAgcGF5bG9hZDp7IHBhdGg6IHBhdGhNZXRob2QsIHBhcmFtLCB2YWx1ZSwgaXNYbWwgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVSZXNvbHZlZFN1YnRyZWUgPSAocGF0aCwgdmFsdWUpID0+IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBVUERBVEVfUkVTT0xWRURfU1VCVFJFRSxcbiAgICBwYXlsb2FkOiB7IHBhdGgsIHZhbHVlIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgaW52YWxpZGF0ZVJlc29sdmVkU3VidHJlZUNhY2hlID0gKCkgPT4ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9SRVNPTFZFRF9TVUJUUkVFLFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIHBhdGg6IFtdLFxuICAgICAgdmFsdWU6IEltbXV0YWJsZU1hcCgpXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVBhcmFtcyA9ICggcGF5bG9hZCwgaXNPQVMzICkgPT57XG4gIHJldHVybiB7XG4gICAgdHlwZTogVkFMSURBVEVfUEFSQU1TLFxuICAgIHBheWxvYWQ6e1xuICAgICAgcGF0aE1ldGhvZDogcGF5bG9hZCxcbiAgICAgIGlzT0FTM1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdXBkYXRlRW1wdHlQYXJhbUluY2x1c2lvbiA9ICggcGF0aE1ldGhvZCwgcGFyYW1OYW1lLCBwYXJhbUluLCBpbmNsdWRlRW1wdHlWYWx1ZSApID0+e1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9FTVBUWV9QQVJBTV9JTkNMVVNJT04sXG4gICAgcGF5bG9hZDp7XG4gICAgICBwYXRoTWV0aG9kLFxuICAgICAgcGFyYW1OYW1lLFxuICAgICAgcGFyYW1JbixcbiAgICAgIGluY2x1ZGVFbXB0eVZhbHVlXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhclZhbGlkYXRlUGFyYW1zKCBwYXlsb2FkICl7XG4gIHJldHVybiB7XG4gICAgdHlwZTogQ0xFQVJfVkFMSURBVEVfUEFSQU1TLFxuICAgIHBheWxvYWQ6eyBwYXRoTWV0aG9kOiBwYXlsb2FkIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hhbmdlQ29uc3VtZXNWYWx1ZShwYXRoLCB2YWx1ZSkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9PUEVSQVRJT05fTUVUQV9WQUxVRSxcbiAgICBwYXlsb2FkOnsgcGF0aCwgdmFsdWUsIGtleTogXCJjb25zdW1lc192YWx1ZVwiIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hhbmdlUHJvZHVjZXNWYWx1ZShwYXRoLCB2YWx1ZSkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9PUEVSQVRJT05fTUVUQV9WQUxVRSxcbiAgICBwYXlsb2FkOnsgcGF0aCwgdmFsdWUsIGtleTogXCJwcm9kdWNlc192YWx1ZVwiIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgc2V0UmVzcG9uc2UgPSAoIHBhdGgsIG1ldGhvZCwgcmVzICkgPT4ge1xuICByZXR1cm4ge1xuICAgIHBheWxvYWQ6IHsgcGF0aCwgbWV0aG9kLCByZXMgfSxcbiAgICB0eXBlOiBTRVRfUkVTUE9OU0VcbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgc2V0UmVxdWVzdCA9ICggcGF0aCwgbWV0aG9kLCByZXEgKSA9PiB7XG4gIHJldHVybiB7XG4gICAgcGF5bG9hZDogeyBwYXRoLCBtZXRob2QsIHJlcSB9LFxuICAgIHR5cGU6IFNFVF9SRVFVRVNUXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHNldE11dGF0ZWRSZXF1ZXN0ID0gKCBwYXRoLCBtZXRob2QsIHJlcSApID0+IHtcbiAgcmV0dXJuIHtcbiAgICBwYXlsb2FkOiB7IHBhdGgsIG1ldGhvZCwgcmVxIH0sXG4gICAgdHlwZTogU0VUX01VVEFURURfUkVRVUVTVFxuICB9XG59XG5cbi8vIFRoaXMgaXMgZm9yIGRlYnVnZ2luZywgcmVtb3ZlIHRoaXMgY29tbWVudCBpZiB5b3UgZGVwZW5kIG9uIHRoaXMgYWN0aW9uXG5leHBvcnQgY29uc3QgbG9nUmVxdWVzdCA9IChyZXEpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBwYXlsb2FkOiByZXEsXG4gICAgdHlwZTogTE9HX1JFUVVFU1RcbiAgfVxufVxuXG4vLyBBY3R1YWxseSBmaXJlIHRoZSByZXF1ZXN0IHZpYSBmbi5leGVjdXRlXG4vLyAoRm9yIGRlYnVnZ2luZykgYW5kIGVhc2Ugb2YgdGVzdGluZ1xuZXhwb3J0IGNvbnN0IGV4ZWN1dGVSZXF1ZXN0ID0gKHJlcSkgPT5cbiAgKHtmbiwgc3BlY0FjdGlvbnMsIHNwZWNTZWxlY3RvcnMsIGdldENvbmZpZ3MsIG9hczNTZWxlY3RvcnN9KSA9PiB7XG4gICAgbGV0IHsgcGF0aE5hbWUsIG1ldGhvZCwgb3BlcmF0aW9uIH0gPSByZXFcbiAgICBsZXQgeyByZXF1ZXN0SW50ZXJjZXB0b3IsIHJlc3BvbnNlSW50ZXJjZXB0b3IgfSA9IGdldENvbmZpZ3MoKVxuXG5cbiAgICBsZXQgb3AgPSBvcGVyYXRpb24udG9KUygpXG5cbiAgICAvLyBlbnN1cmUgdGhhdCBleHBsaWNpdGx5LWluY2x1ZGVkIHBhcmFtcyBhcmUgaW4gdGhlIHJlcXVlc3RcblxuICAgIGlmIChvcGVyYXRpb24gJiYgb3BlcmF0aW9uLmdldChcInBhcmFtZXRlcnNcIikpIHtcbiAgICAgIG9wZXJhdGlvbi5nZXQoXCJwYXJhbWV0ZXJzXCIpXG4gICAgICAgIC5maWx0ZXIocGFyYW0gPT4gcGFyYW0gJiYgcGFyYW0uZ2V0KFwiYWxsb3dFbXB0eVZhbHVlXCIpID09PSB0cnVlKVxuICAgICAgICAuZm9yRWFjaChwYXJhbSA9PiB7XG4gICAgICAgICAgaWYgKHNwZWNTZWxlY3RvcnMucGFyYW1ldGVySW5jbHVzaW9uU2V0dGluZ0ZvcihbcGF0aE5hbWUsIG1ldGhvZF0sIHBhcmFtLmdldChcIm5hbWVcIiksIHBhcmFtLmdldChcImluXCIpKSkge1xuICAgICAgICAgICAgcmVxLnBhcmFtZXRlcnMgPSByZXEucGFyYW1ldGVycyB8fCB7fVxuICAgICAgICAgICAgY29uc3QgcGFyYW1WYWx1ZSA9IHBhcmFtVG9WYWx1ZShwYXJhbSwgcmVxLnBhcmFtZXRlcnMpXG5cbiAgICAgICAgICAgIC8vIGlmIHRoZSB2YWx1ZSBpcyBmYWxzeSBvciBhbiBlbXB0eSBJbW11dGFibGUgaXRlcmFibGUuLi5cbiAgICAgICAgICAgIGlmKCFwYXJhbVZhbHVlIHx8IChwYXJhbVZhbHVlICYmIHBhcmFtVmFsdWUuc2l6ZSA9PT0gMCkpIHtcbiAgICAgICAgICAgICAgLy8gc2V0IGl0IHRvIGVtcHR5IHN0cmluZywgc28gU3dhZ2dlciBDbGllbnQgd2lsbCB0cmVhdCBpdCBhc1xuICAgICAgICAgICAgICAvLyBwcmVzZW50IGJ1dCBlbXB0eS5cbiAgICAgICAgICAgICAgcmVxLnBhcmFtZXRlcnNbcGFyYW0uZ2V0KFwibmFtZVwiKV0gPSBcIlwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIC8vIGlmIHVybCBpcyByZWxhdGl2ZSwgcGFyc2VVcmwgbWFrZXMgaXQgYWJzb2x1dGUgYnkgaW5mZXJyaW5nIGZyb20gYHdpbmRvdy5sb2NhdGlvbmBcbiAgICByZXEuY29udGV4dFVybCA9IHBhcnNlVXJsKHNwZWNTZWxlY3RvcnMudXJsKCkpLnRvU3RyaW5nKClcblxuICAgIGlmKG9wICYmIG9wLm9wZXJhdGlvbklkKSB7XG4gICAgICByZXEub3BlcmF0aW9uSWQgPSBvcC5vcGVyYXRpb25JZFxuICAgIH0gZWxzZSBpZihvcCAmJiBwYXRoTmFtZSAmJiBtZXRob2QpIHtcbiAgICAgIHJlcS5vcGVyYXRpb25JZCA9IGZuLm9wSWQob3AsIHBhdGhOYW1lLCBtZXRob2QpXG4gICAgfVxuXG4gICAgaWYoc3BlY1NlbGVjdG9ycy5pc09BUzMoKSkge1xuICAgICAgY29uc3QgbmFtZXNwYWNlID0gYCR7cGF0aE5hbWV9OiR7bWV0aG9kfWBcblxuICAgICAgcmVxLnNlcnZlciA9IG9hczNTZWxlY3RvcnMuc2VsZWN0ZWRTZXJ2ZXIobmFtZXNwYWNlKSB8fCBvYXMzU2VsZWN0b3JzLnNlbGVjdGVkU2VydmVyKClcblxuICAgICAgY29uc3QgbmFtZXNwYWNlVmFyaWFibGVzID0gb2FzM1NlbGVjdG9ycy5zZXJ2ZXJWYXJpYWJsZXMoe1xuICAgICAgICBzZXJ2ZXI6IHJlcS5zZXJ2ZXIsXG4gICAgICAgIG5hbWVzcGFjZVxuICAgICAgfSkudG9KUygpXG4gICAgICBjb25zdCBnbG9iYWxWYXJpYWJsZXMgPSBvYXMzU2VsZWN0b3JzLnNlcnZlclZhcmlhYmxlcyh7IHNlcnZlcjogcmVxLnNlcnZlciB9KS50b0pTKClcblxuICAgICAgcmVxLnNlcnZlclZhcmlhYmxlcyA9IE9iamVjdC5rZXlzKG5hbWVzcGFjZVZhcmlhYmxlcykubGVuZ3RoID8gbmFtZXNwYWNlVmFyaWFibGVzIDogZ2xvYmFsVmFyaWFibGVzXG5cbiAgICAgIHJlcS5yZXF1ZXN0Q29udGVudFR5cGUgPSBvYXMzU2VsZWN0b3JzLnJlcXVlc3RDb250ZW50VHlwZShwYXRoTmFtZSwgbWV0aG9kKVxuICAgICAgcmVxLnJlc3BvbnNlQ29udGVudFR5cGUgPSBvYXMzU2VsZWN0b3JzLnJlc3BvbnNlQ29udGVudFR5cGUocGF0aE5hbWUsIG1ldGhvZCkgfHwgXCIqLypcIlxuICAgICAgY29uc3QgcmVxdWVzdEJvZHkgPSBvYXMzU2VsZWN0b3JzLnJlcXVlc3RCb2R5VmFsdWUocGF0aE5hbWUsIG1ldGhvZClcbiAgICAgIGNvbnN0IHJlcXVlc3RCb2R5SW5jbHVzaW9uU2V0dGluZyA9IG9hczNTZWxlY3RvcnMucmVxdWVzdEJvZHlJbmNsdXNpb25TZXR0aW5nKHBhdGhOYW1lLCBtZXRob2QpXG5cbiAgICAgIGlmKHJlcXVlc3RCb2R5ICYmIHJlcXVlc3RCb2R5LnRvSlMpIHtcbiAgICAgICAgcmVxLnJlcXVlc3RCb2R5ID0gcmVxdWVzdEJvZHlcbiAgICAgICAgICAubWFwKFxuICAgICAgICAgICAgKHZhbCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoSW1tdXRhYmxlTWFwLmlzTWFwKHZhbCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsLmdldChcInZhbHVlXCIpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIHZhbFxuICAgICAgICAgICAgfVxuICAgICAgICAgIClcbiAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgKHZhbHVlLCBrZXkpID0+IChBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgICAgICAgICAgID8gdmFsdWUubGVuZ3RoICE9PSAwXG4gICAgICAgICAgICAgICAgOiAhaXNFbXB0eVZhbHVlKHZhbHVlKVxuICAgICAgICAgICAgKSB8fCByZXF1ZXN0Qm9keUluY2x1c2lvblNldHRpbmcuZ2V0KGtleSlcbiAgICAgICAgICApXG4gICAgICAgICAgLnRvSlMoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVxLnJlcXVlc3RCb2R5ID0gcmVxdWVzdEJvZHlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgcGFyc2VkUmVxdWVzdCA9IE9iamVjdC5hc3NpZ24oe30sIHJlcSlcbiAgICBwYXJzZWRSZXF1ZXN0ID0gZm4uYnVpbGRSZXF1ZXN0KHBhcnNlZFJlcXVlc3QpXG5cbiAgICBzcGVjQWN0aW9ucy5zZXRSZXF1ZXN0KHJlcS5wYXRoTmFtZSwgcmVxLm1ldGhvZCwgcGFyc2VkUmVxdWVzdClcblxuICAgIGxldCByZXF1ZXN0SW50ZXJjZXB0b3JXcmFwcGVyID0gYXN5bmMgKHIpID0+IHtcbiAgICAgIGxldCBtdXRhdGVkUmVxdWVzdCA9IGF3YWl0IHJlcXVlc3RJbnRlcmNlcHRvci5hcHBseSh0aGlzLCBbcl0pXG4gICAgICBsZXQgcGFyc2VkTXV0YXRlZFJlcXVlc3QgPSBPYmplY3QuYXNzaWduKHt9LCBtdXRhdGVkUmVxdWVzdClcbiAgICAgIHNwZWNBY3Rpb25zLnNldE11dGF0ZWRSZXF1ZXN0KHJlcS5wYXRoTmFtZSwgcmVxLm1ldGhvZCwgcGFyc2VkTXV0YXRlZFJlcXVlc3QpXG4gICAgICByZXR1cm4gbXV0YXRlZFJlcXVlc3RcbiAgICB9XG5cbiAgICByZXEucmVxdWVzdEludGVyY2VwdG9yID0gcmVxdWVzdEludGVyY2VwdG9yV3JhcHBlclxuICAgIHJlcS5yZXNwb25zZUludGVyY2VwdG9yID0gcmVzcG9uc2VJbnRlcmNlcHRvclxuXG4gICAgLy8gdHJhY2sgZHVyYXRpb24gb2YgcmVxdWVzdFxuICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KClcblxuXG4gICAgcmV0dXJuIGZuLmV4ZWN1dGUocmVxKVxuICAgICAgLnRoZW4oIHJlcyA9PiB7XG4gICAgICAgIHJlcy5kdXJhdGlvbiA9IERhdGUubm93KCkgLSBzdGFydFRpbWVcbiAgICAgICAgc3BlY0FjdGlvbnMuc2V0UmVzcG9uc2UocmVxLnBhdGhOYW1lLCByZXEubWV0aG9kLCByZXMpXG4gICAgICB9IClcbiAgICAgIC5jYXRjaChcbiAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICAvLyBjb25zb2xlLmVycm9yKGVycilcbiAgICAgICAgICBpZihlcnIubWVzc2FnZSA9PT0gXCJGYWlsZWQgdG8gZmV0Y2hcIikge1xuICAgICAgICAgICAgZXJyLm5hbWUgPSBcIlwiXG4gICAgICAgICAgICBlcnIubWVzc2FnZSA9IFwiKipGYWlsZWQgdG8gZmV0Y2guKiogIFxcbioqUG9zc2libGUgUmVhc29uczoqKiBcXG4gIC0gQ09SUyBcXG4gIC0gTmV0d29yayBGYWlsdXJlIFxcbiAgLSBVUkwgc2NoZW1lIG11c3QgYmUgXFxcImh0dHBcXFwiIG9yIFxcXCJodHRwc1xcXCIgZm9yIENPUlMgcmVxdWVzdC5cIlxuICAgICAgICAgIH1cbiAgICAgICAgICBzcGVjQWN0aW9ucy5zZXRSZXNwb25zZShyZXEucGF0aE5hbWUsIHJlcS5tZXRob2QsIHtcbiAgICAgICAgICAgIGVycm9yOiB0cnVlLCBlcnJcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuXG4vLyBJJ20gdXNpbmcgZXh0cmFzIGFzIGEgd2F5IHRvIGluamVjdCBwcm9wZXJ0aWVzIGludG8gdGhlIGZpbmFsLCBgZXhlY3V0ZWAgbWV0aG9kIC0gSXQncyBub3QgZ3JlYXQuIEFueW9uZSBoYXZlIGEgYmV0dGVyIGlkZWE/IEBwb25lbGF0XG5leHBvcnQgY29uc3QgZXhlY3V0ZSA9ICggeyBwYXRoLCBtZXRob2QsIC4uLmV4dHJhcyB9PXt9ICkgPT4gKHN5c3RlbSkgPT4ge1xuICBsZXQgeyBmbjp7ZmV0Y2h9LCBzcGVjU2VsZWN0b3JzLCBzcGVjQWN0aW9ucyB9ID0gc3lzdGVtXG4gIGxldCBzcGVjID0gc3BlY1NlbGVjdG9ycy5zcGVjSnNvbldpdGhSZXNvbHZlZFN1YnRyZWVzKCkudG9KUygpXG4gIGxldCBzY2hlbWUgPSBzcGVjU2VsZWN0b3JzLm9wZXJhdGlvblNjaGVtZShwYXRoLCBtZXRob2QpXG4gIGxldCB7IHJlcXVlc3RDb250ZW50VHlwZSwgcmVzcG9uc2VDb250ZW50VHlwZSB9ID0gc3BlY1NlbGVjdG9ycy5jb250ZW50VHlwZVZhbHVlcyhbcGF0aCwgbWV0aG9kXSkudG9KUygpXG4gIGxldCBpc1htbCA9IC94bWwvaS50ZXN0KHJlcXVlc3RDb250ZW50VHlwZSlcbiAgbGV0IHBhcmFtZXRlcnMgPSBzcGVjU2VsZWN0b3JzLnBhcmFtZXRlclZhbHVlcyhbcGF0aCwgbWV0aG9kXSwgaXNYbWwpLnRvSlMoKVxuXG4gIHJldHVybiBzcGVjQWN0aW9ucy5leGVjdXRlUmVxdWVzdCh7XG4gICAgLi4uZXh0cmFzLFxuICAgIGZldGNoLFxuICAgIHNwZWMsXG4gICAgcGF0aE5hbWU6IHBhdGgsXG4gICAgbWV0aG9kLCBwYXJhbWV0ZXJzLFxuICAgIHJlcXVlc3RDb250ZW50VHlwZSxcbiAgICBzY2hlbWUsXG4gICAgcmVzcG9uc2VDb250ZW50VHlwZVxuICB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJSZXNwb25zZSAocGF0aCwgbWV0aG9kKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogQ0xFQVJfUkVTUE9OU0UsXG4gICAgcGF5bG9hZDp7IHBhdGgsIG1ldGhvZCB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyUmVxdWVzdCAocGF0aCwgbWV0aG9kKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogQ0xFQVJfUkVRVUVTVCxcbiAgICBwYXlsb2FkOnsgcGF0aCwgbWV0aG9kIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0U2NoZW1lIChzY2hlbWUsIHBhdGgsIG1ldGhvZCkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFNFVF9TQ0hFTUUsXG4gICAgcGF5bG9hZDogeyBzY2hlbWUsIHBhdGgsIG1ldGhvZCB9XG4gIH1cbn1cbiIsImltcG9ydCB7IGZyb21KUywgTGlzdCB9IGZyb20gXCJpbW11dGFibGVcIlxuaW1wb3J0IHsgZnJvbUpTT3JkZXJlZCwgdmFsaWRhdGVQYXJhbSwgcGFyYW1Ub1ZhbHVlLCBwYXJhbVRvSWRlbnRpZmllciB9IGZyb20gXCJjb3JlL3V0aWxzXCJcbmltcG9ydCB3aW4gZnJvbSBcImNvcmUvd2luZG93XCJcblxuLy8gc2VsZWN0b3ItaW4tcmVkdWNlciBpcyBzdWJvcHRpbWFsLCBidXQgYG9wZXJhdGlvbldpdGhNZXRhYCBpcyBtb3JlIG9mIGEgaGVscGVyXG5pbXBvcnQge1xuICBzcGVjSnNvbldpdGhSZXNvbHZlZFN1YnRyZWVzLFxuICBwYXJhbWV0ZXJWYWx1ZXMsXG4gIHBhcmFtZXRlckluY2x1c2lvblNldHRpbmdGb3IsXG59IGZyb20gXCIuL3NlbGVjdG9yc1wiXG5cbmltcG9ydCB7XG4gIFVQREFURV9TUEVDLFxuICBVUERBVEVfVVJMLFxuICBVUERBVEVfSlNPTixcbiAgVVBEQVRFX1BBUkFNLFxuICBVUERBVEVfRU1QVFlfUEFSQU1fSU5DTFVTSU9OLFxuICBWQUxJREFURV9QQVJBTVMsXG4gIFNFVF9SRVNQT05TRSxcbiAgU0VUX1JFUVVFU1QsXG4gIFNFVF9NVVRBVEVEX1JFUVVFU1QsXG4gIFVQREFURV9SRVNPTFZFRCxcbiAgVVBEQVRFX1JFU09MVkVEX1NVQlRSRUUsXG4gIFVQREFURV9PUEVSQVRJT05fTUVUQV9WQUxVRSxcbiAgQ0xFQVJfUkVTUE9OU0UsXG4gIENMRUFSX1JFUVVFU1QsXG4gIENMRUFSX1ZBTElEQVRFX1BBUkFNUyxcbiAgU0VUX1NDSEVNRVxufSBmcm9tIFwiLi9hY3Rpb25zXCJcblxuZXhwb3J0IGRlZmF1bHQge1xuXG4gIFtVUERBVEVfU1BFQ106IChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuICh0eXBlb2YgYWN0aW9uLnBheWxvYWQgPT09IFwic3RyaW5nXCIpXG4gICAgICA/IHN0YXRlLnNldChcInNwZWNcIiwgYWN0aW9uLnBheWxvYWQpXG4gICAgICA6IHN0YXRlXG4gIH0sXG5cbiAgW1VQREFURV9VUkxdOiAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiBzdGF0ZS5zZXQoXCJ1cmxcIiwgYWN0aW9uLnBheWxvYWQrXCJcIilcbiAgfSxcblxuICBbVVBEQVRFX0pTT05dOiAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiBzdGF0ZS5zZXQoXCJqc29uXCIsIGZyb21KU09yZGVyZWQoYWN0aW9uLnBheWxvYWQpKVxuICB9LFxuXG4gIFtVUERBVEVfUkVTT0xWRURdOiAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiBzdGF0ZS5zZXRJbihbXCJyZXNvbHZlZFwiXSwgZnJvbUpTT3JkZXJlZChhY3Rpb24ucGF5bG9hZCkpXG4gIH0sXG5cbiAgW1VQREFURV9SRVNPTFZFRF9TVUJUUkVFXTogKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCB7IHZhbHVlLCBwYXRoIH0gPSBhY3Rpb24ucGF5bG9hZFxuICAgIHJldHVybiBzdGF0ZS5zZXRJbihbXCJyZXNvbHZlZFN1YnRyZWVzXCIsIC4uLnBhdGhdLCBmcm9tSlNPcmRlcmVkKHZhbHVlKSlcbiAgfSxcblxuICBbVVBEQVRFX1BBUkFNXTogKCBzdGF0ZSwge3BheWxvYWR9ICkgPT4ge1xuICAgIGxldCB7IHBhdGg6IHBhdGhNZXRob2QsIHBhcmFtTmFtZSwgcGFyYW1JbiwgcGFyYW0sIHZhbHVlLCBpc1htbCB9ID0gcGF5bG9hZFxuXG4gICAgbGV0IHBhcmFtS2V5ID0gcGFyYW0gPyBwYXJhbVRvSWRlbnRpZmllcihwYXJhbSkgOiBgJHtwYXJhbUlufS4ke3BhcmFtTmFtZX1gXG5cbiAgICBjb25zdCB2YWx1ZUtleSA9IGlzWG1sID8gXCJ2YWx1ZV94bWxcIiA6IFwidmFsdWVcIlxuXG4gICAgcmV0dXJuIHN0YXRlLnNldEluKFxuICAgICAgW1wibWV0YVwiLCBcInBhdGhzXCIsIC4uLnBhdGhNZXRob2QsIFwicGFyYW1ldGVyc1wiLCBwYXJhbUtleSwgdmFsdWVLZXldLFxuICAgICAgZnJvbUpTKHZhbHVlKVxuICAgIClcbiAgfSxcblxuICBbVVBEQVRFX0VNUFRZX1BBUkFNX0lOQ0xVU0lPTl06ICggc3RhdGUsIHtwYXlsb2FkfSApID0+IHtcbiAgICBsZXQgeyBwYXRoTWV0aG9kLCBwYXJhbU5hbWUsIHBhcmFtSW4sIGluY2x1ZGVFbXB0eVZhbHVlIH0gPSBwYXlsb2FkXG5cbiAgICBpZighcGFyYW1OYW1lIHx8ICFwYXJhbUluKSB7XG4gICAgICBjb25zb2xlLndhcm4oXCJXYXJuaW5nOiBVUERBVEVfRU1QVFlfUEFSQU1fSU5DTFVTSU9OIGNvdWxkIG5vdCBnZW5lcmF0ZSBhIHBhcmFtS2V5LlwiKVxuICAgICAgcmV0dXJuIHN0YXRlXG4gICAgfVxuXG4gICAgY29uc3QgcGFyYW1LZXkgPSBgJHtwYXJhbUlufS4ke3BhcmFtTmFtZX1gXG5cbiAgICByZXR1cm4gc3RhdGUuc2V0SW4oXG4gICAgICBbXCJtZXRhXCIsIFwicGF0aHNcIiwgLi4ucGF0aE1ldGhvZCwgXCJwYXJhbWV0ZXJfaW5jbHVzaW9uc1wiLCBwYXJhbUtleV0sXG4gICAgICBpbmNsdWRlRW1wdHlWYWx1ZVxuICAgIClcbiAgfSxcblxuICBbVkFMSURBVEVfUEFSQU1TXTogKCBzdGF0ZSwgeyBwYXlsb2FkOiB7IHBhdGhNZXRob2QsIGlzT0FTMyB9IH0gKSA9PiB7XG4gICAgY29uc3Qgb3AgPSBzcGVjSnNvbldpdGhSZXNvbHZlZFN1YnRyZWVzKHN0YXRlKS5nZXRJbihbXCJwYXRoc1wiLCAuLi5wYXRoTWV0aG9kXSlcbiAgICBjb25zdCBwYXJhbVZhbHVlcyA9IHBhcmFtZXRlclZhbHVlcyhzdGF0ZSwgcGF0aE1ldGhvZCkudG9KUygpXG5cbiAgICByZXR1cm4gc3RhdGUudXBkYXRlSW4oW1wibWV0YVwiLCBcInBhdGhzXCIsIC4uLnBhdGhNZXRob2QsIFwicGFyYW1ldGVyc1wiXSwgZnJvbUpTKHt9KSwgcGFyYW1NZXRhID0+IHtcbiAgICAgIHJldHVybiBvcC5nZXQoXCJwYXJhbWV0ZXJzXCIsIExpc3QoKSkucmVkdWNlKChyZXMsIHBhcmFtKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gcGFyYW1Ub1ZhbHVlKHBhcmFtLCBwYXJhbVZhbHVlcylcbiAgICAgICAgY29uc3QgaXNFbXB0eVZhbHVlSW5jbHVkZWQgPSBwYXJhbWV0ZXJJbmNsdXNpb25TZXR0aW5nRm9yKHN0YXRlLCBwYXRoTWV0aG9kLCBwYXJhbS5nZXQoXCJuYW1lXCIpLCBwYXJhbS5nZXQoXCJpblwiKSlcbiAgICAgICAgY29uc3QgZXJyb3JzID0gdmFsaWRhdGVQYXJhbShwYXJhbSwgdmFsdWUsIHtcbiAgICAgICAgICBieXBhc3NSZXF1aXJlZENoZWNrOiBpc0VtcHR5VmFsdWVJbmNsdWRlZCxcbiAgICAgICAgICBpc09BUzMsXG4gICAgICAgIH0pXG4gICAgICAgIHJldHVybiByZXMuc2V0SW4oW3BhcmFtVG9JZGVudGlmaWVyKHBhcmFtKSwgXCJlcnJvcnNcIl0sIGZyb21KUyhlcnJvcnMpKVxuICAgICAgfSwgcGFyYW1NZXRhKVxuICAgIH0pXG4gIH0sXG4gIFtDTEVBUl9WQUxJREFURV9QQVJBTVNdOiAoIHN0YXRlLCB7IHBheWxvYWQ6ICB7IHBhdGhNZXRob2QgfSB9ICkgPT4ge1xuICAgIHJldHVybiBzdGF0ZS51cGRhdGVJbiggWyBcIm1ldGFcIiwgXCJwYXRoc1wiLCAuLi5wYXRoTWV0aG9kLCBcInBhcmFtZXRlcnNcIiBdLCBmcm9tSlMoW10pLCBwYXJhbWV0ZXJzID0+IHtcbiAgICAgIHJldHVybiBwYXJhbWV0ZXJzLm1hcChwYXJhbSA9PiBwYXJhbS5zZXQoXCJlcnJvcnNcIiwgZnJvbUpTKFtdKSkpXG4gICAgfSlcbiAgfSxcblxuICBbU0VUX1JFU1BPTlNFXTogKHN0YXRlLCB7IHBheWxvYWQ6IHsgcmVzLCBwYXRoLCBtZXRob2QgfSB9ICkgPT57XG4gICAgbGV0IHJlc3VsdFxuICAgIGlmICggcmVzLmVycm9yICkge1xuICAgICAgcmVzdWx0ID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICBuYW1lOiByZXMuZXJyLm5hbWUsXG4gICAgICAgIG1lc3NhZ2U6IHJlcy5lcnIubWVzc2FnZSxcbiAgICAgICAgc3RhdHVzQ29kZTogcmVzLmVyci5zdGF0dXNDb2RlXG4gICAgICB9LCByZXMuZXJyLnJlc3BvbnNlKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSByZXNcbiAgICB9XG5cbiAgICAvLyBFbnN1cmUgaGVhZGVyc1xuICAgIHJlc3VsdC5oZWFkZXJzID0gcmVzdWx0LmhlYWRlcnMgfHwge31cblxuICAgIGxldCBuZXdTdGF0ZSA9IHN0YXRlLnNldEluKCBbIFwicmVzcG9uc2VzXCIsIHBhdGgsIG1ldGhvZCBdLCBmcm9tSlNPcmRlcmVkKHJlc3VsdCkgKVxuXG4gICAgLy8gSW1tdXRhYmxlSlMgbWVzc2VzIHVwIEJsb2IuIE5lZWRzIHRvIHJlc2V0IGl0cyB2YWx1ZS5cbiAgICBpZiAod2luLkJsb2IgJiYgcmVzdWx0LmRhdGEgaW5zdGFuY2VvZiB3aW4uQmxvYikge1xuICAgICAgbmV3U3RhdGUgPSBuZXdTdGF0ZS5zZXRJbiggWyBcInJlc3BvbnNlc1wiLCBwYXRoLCBtZXRob2QsIFwidGV4dFwiIF0sIHJlc3VsdC5kYXRhKVxuICAgIH1cbiAgICByZXR1cm4gbmV3U3RhdGVcbiAgfSxcblxuICBbU0VUX1JFUVVFU1RdOiAoc3RhdGUsIHsgcGF5bG9hZDogeyByZXEsIHBhdGgsIG1ldGhvZCB9IH0gKSA9PntcbiAgICByZXR1cm4gc3RhdGUuc2V0SW4oIFsgXCJyZXF1ZXN0c1wiLCBwYXRoLCBtZXRob2QgXSwgZnJvbUpTT3JkZXJlZChyZXEpKVxuICB9LFxuXG4gIFtTRVRfTVVUQVRFRF9SRVFVRVNUXTogKHN0YXRlLCB7IHBheWxvYWQ6IHsgcmVxLCBwYXRoLCBtZXRob2QgfSB9ICkgPT57XG4gICAgcmV0dXJuIHN0YXRlLnNldEluKCBbIFwibXV0YXRlZFJlcXVlc3RzXCIsIHBhdGgsIG1ldGhvZCBdLCBmcm9tSlNPcmRlcmVkKHJlcSkpXG4gIH0sXG5cbiAgW1VQREFURV9PUEVSQVRJT05fTUVUQV9WQUxVRV06IChzdGF0ZSwgeyBwYXlsb2FkOiB7IHBhdGgsIHZhbHVlLCBrZXkgfSB9KSA9PiB7XG4gICAgLy8gcGF0aCBpcyBhIHBhdGhNZXRob2QgdHVwbGUuLi4gY2FuJ3QgY2hhbmdlIHRoZSBuYW1lIG5vdy5cbiAgICBsZXQgb3BlcmF0aW9uUGF0aCA9IFtcInBhdGhzXCIsIC4uLnBhdGhdXG4gICAgbGV0IG1ldGFQYXRoID0gW1wibWV0YVwiLCBcInBhdGhzXCIsIC4uLnBhdGhdXG5cbiAgICBpZihcbiAgICAgICFzdGF0ZS5nZXRJbihbXCJqc29uXCIsIC4uLm9wZXJhdGlvblBhdGhdKVxuICAgICAgJiYgIXN0YXRlLmdldEluKFtcInJlc29sdmVkXCIsIC4uLm9wZXJhdGlvblBhdGhdKVxuICAgICAgJiYgIXN0YXRlLmdldEluKFtcInJlc29sdmVkU3VidHJlZXNcIiwgLi4ub3BlcmF0aW9uUGF0aF0pXG4gICAgKSB7XG4gICAgICAvLyBkbyBub3RoaW5nIGlmIHRoZSBvcGVyYXRpb24gZG9lcyBub3QgZXhpc3RcbiAgICAgIHJldHVybiBzdGF0ZVxuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZS5zZXRJbihbLi4ubWV0YVBhdGgsIGtleV0sIGZyb21KUyh2YWx1ZSkpXG4gIH0sXG5cbiAgW0NMRUFSX1JFU1BPTlNFXTogKHN0YXRlLCB7IHBheWxvYWQ6IHsgcGF0aCwgbWV0aG9kIH0gfSApID0+e1xuICAgIHJldHVybiBzdGF0ZS5kZWxldGVJbiggWyBcInJlc3BvbnNlc1wiLCBwYXRoLCBtZXRob2QgXSlcbiAgfSxcblxuICBbQ0xFQVJfUkVRVUVTVF06IChzdGF0ZSwgeyBwYXlsb2FkOiB7IHBhdGgsIG1ldGhvZCB9IH0gKSA9PntcbiAgICByZXR1cm4gc3RhdGUuZGVsZXRlSW4oIFsgXCJyZXF1ZXN0c1wiLCBwYXRoLCBtZXRob2QgXSlcbiAgfSxcblxuICBbU0VUX1NDSEVNRV06IChzdGF0ZSwgeyBwYXlsb2FkOiB7IHNjaGVtZSwgcGF0aCwgbWV0aG9kIH0gfSApID0+e1xuICAgIGlmICggcGF0aCAmJiBtZXRob2QgKSB7XG4gICAgICByZXR1cm4gc3RhdGUuc2V0SW4oIFsgXCJzY2hlbWVcIiwgcGF0aCwgbWV0aG9kIF0sIHNjaGVtZSlcbiAgICB9XG5cbiAgICBpZiAoIXBhdGggJiYgIW1ldGhvZCkge1xuICAgICAgcmV0dXJuIHN0YXRlLnNldEluKCBbIFwic2NoZW1lXCIsIFwiX2RlZmF1bHRTY2hlbWVcIiBdLCBzY2hlbWUpXG4gICAgfVxuXG4gIH1cblxufVxuIiwiaW1wb3J0IGdldCBmcm9tIFwibG9kYXNoL2dldFwiXG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tIFwibG9kYXNoL2lzUGxhaW5PYmplY3RcIlxuXG5leHBvcnQgY29uc3QgdXBkYXRlU3BlYyA9IChvcmksIHtzcGVjQWN0aW9uc30pID0+ICguLi5hcmdzKSA9PiB7XG4gIG9yaSguLi5hcmdzKVxuICBzcGVjQWN0aW9ucy5wYXJzZVRvSnNvbiguLi5hcmdzKVxufVxuXG5leHBvcnQgY29uc3QgdXBkYXRlSnNvblNwZWMgPSAob3JpLCB7c3BlY0FjdGlvbnN9KSA9PiAoLi4uYXJncykgPT4ge1xuICBvcmkoLi4uYXJncylcblxuICBzcGVjQWN0aW9ucy5pbnZhbGlkYXRlUmVzb2x2ZWRTdWJ0cmVlQ2FjaGUoKVxuXG4gIC8vIFRyaWdnZXIgcmVzb2x1dGlvbiBvZiBhbnkgcGF0aC1sZXZlbCAkcmVmcy5cbiAgY29uc3QgW2pzb25dID0gYXJnc1xuICBjb25zdCBwYXRoSXRlbXMgPSBnZXQoanNvbiwgW1wicGF0aHNcIl0pIHx8IHt9XG4gIGNvbnN0IHBhdGhJdGVtS2V5cyA9IE9iamVjdC5rZXlzKHBhdGhJdGVtcylcblxuICBwYXRoSXRlbUtleXMuZm9yRWFjaChrID0+IHtcbiAgICBjb25zdCB2YWwgPSBnZXQocGF0aEl0ZW1zLCBba10pXG5cbiAgICBpZiAoaXNQbGFpbk9iamVjdCh2YWwpICYmIHZhbC4kcmVmKSB7XG4gICAgICBzcGVjQWN0aW9ucy5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKFtcInBhdGhzXCIsIGtdKVxuICAgIH1cbiAgfSlcblxuICAvLyBUcmlnZ2VyIHJlc29sdXRpb24gb2YgYW55IHNlY3VyaXR5U2NoZW1lcy1sZXZlbCAkcmVmcy5cbiAgc3BlY0FjdGlvbnMucmVxdWVzdFJlc29sdmVkU3VidHJlZShbXCJjb21wb25lbnRzXCIsIFwic2VjdXJpdHlTY2hlbWVzXCJdKVxufVxuXG4vLyBMb2cgdGhlIHJlcXVlc3QgKCBqdXN0IGZvciBkZWJ1Z2dpbmcsIHNob3VsZG4ndCBhZmZlY3QgcHJvZCApXG5leHBvcnQgY29uc3QgZXhlY3V0ZVJlcXVlc3QgPSAob3JpLCB7IHNwZWNBY3Rpb25zIH0pID0+IChyZXEpID0+IHtcbiAgc3BlY0FjdGlvbnMubG9nUmVxdWVzdChyZXEpXG4gIHJldHVybiBvcmkocmVxKVxufVxuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVQYXJhbXMgPSAob3JpLCB7IHNwZWNTZWxlY3RvcnMgfSkgPT4gKHJlcSkgPT4ge1xuICByZXR1cm4gb3JpKHJlcSwgc3BlY1NlbGVjdG9ycy5pc09BUzMoKSlcbn1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCByZWR1Y2VycyBmcm9tIFwiLi9yZWR1Y2Vyc1wiXG5pbXBvcnQgKiBhcyBhY3Rpb25zIGZyb20gXCIuL2FjdGlvbnNcIlxuaW1wb3J0ICogYXMgc2VsZWN0b3JzIGZyb20gXCIuL3NlbGVjdG9yc1wiXG5pbXBvcnQgKiBhcyB3cmFwQWN0aW9ucyBmcm9tIFwiLi93cmFwLWFjdGlvbnNcIlxuXG5jb25zdCBTcGVjUGx1Z2luID0gKCkgPT4gKHtcbiAgc3RhdGVQbHVnaW5zOiB7XG4gICAgc3BlYzoge1xuICAgICAgd3JhcEFjdGlvbnM6IHsgLi4ud3JhcEFjdGlvbnMgfSxcbiAgICAgIHJlZHVjZXJzOiB7IC4uLnJlZHVjZXJzIH0sXG4gICAgICBhY3Rpb25zOiB7IC4uLmFjdGlvbnMgfSxcbiAgICAgIHNlbGVjdG9yczogeyAuLi5zZWxlY3RvcnMgfSxcbiAgICB9LFxuICB9LFxufSlcblxuZXhwb3J0IGRlZmF1bHQgU3BlY1BsdWdpblxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJzd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9zdHJhdGVnaWVzL2dlbmVyaWNcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJzd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9zdHJhdGVnaWVzL29wZW5hcGktMlwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcInN3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyL3N0cmF0ZWdpZXMvb3BlbmFwaS0zLTBcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJzd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9zdHJhdGVnaWVzL29wZW5hcGktMy0xLWFwaWRvbVwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcInN3YWdnZXItY2xpZW50L2VzL3Jlc29sdmVyXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwic3dhZ2dlci1jbGllbnQvZXMvZXhlY3V0ZVwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcInN3YWdnZXItY2xpZW50L2VzL2h0dHBcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJzd2FnZ2VyLWNsaWVudC9lcy9zdWJ0cmVlLXJlc29sdmVyXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwic3dhZ2dlci1jbGllbnQvZXMvaGVscGVyc1wiKTsiLCJleHBvcnQgY29uc3QgbG9hZGVkID0gKG9yaSwgc3lzdGVtKSA9PiAoLi4uYXJncykgPT4ge1xuICBvcmkoLi4uYXJncylcbiAgY29uc3QgdmFsdWUgPSBzeXN0ZW0uZ2V0Q29uZmlncygpLndpdGhDcmVkZW50aWFsc1xuICBcbiAgc3lzdGVtLmZuLmZldGNoLndpdGhDcmVkZW50aWFscyA9IHZhbHVlXG59XG4iLCJpbXBvcnQgZ2VuZXJpY1Jlc29sdmVTdHJhdGVneSBmcm9tIFwic3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvc3RyYXRlZ2llcy9nZW5lcmljXCJcbmltcG9ydCBvcGVuQXBpMlJlc29sdmVTdHJhdGVneSBmcm9tIFwic3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvc3RyYXRlZ2llcy9vcGVuYXBpLTJcIlxuaW1wb3J0IG9wZW5BcGkzMFJlc29sdmVTdHJhdGVneSBmcm9tIFwic3dhZ2dlci1jbGllbnQvZXMvcmVzb2x2ZXIvc3RyYXRlZ2llcy9vcGVuYXBpLTMtMFwiXG5pbXBvcnQgb3BlbkFwaTMxQXBpRE9NUmVzb2x2ZVN0cmF0ZWd5IGZyb20gXCJzd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlci9zdHJhdGVnaWVzL29wZW5hcGktMy0xLWFwaWRvbVwiXG5pbXBvcnQgeyBtYWtlUmVzb2x2ZSB9IGZyb20gXCJzd2FnZ2VyLWNsaWVudC9lcy9yZXNvbHZlclwiXG5pbXBvcnQgeyBleGVjdXRlLCBidWlsZFJlcXVlc3QgfSBmcm9tIFwic3dhZ2dlci1jbGllbnQvZXMvZXhlY3V0ZVwiXG5pbXBvcnQgSHR0cCwgeyBtYWtlSHR0cCwgc2VyaWFsaXplUmVzIH0gZnJvbSBcInN3YWdnZXItY2xpZW50L2VzL2h0dHBcIlxuaW1wb3J0IHsgbWFrZVJlc29sdmVTdWJ0cmVlIH0gZnJvbSBcInN3YWdnZXItY2xpZW50L2VzL3N1YnRyZWUtcmVzb2x2ZXJcIlxuaW1wb3J0IHsgb3BJZCB9IGZyb20gXCJzd2FnZ2VyLWNsaWVudC9lcy9oZWxwZXJzXCJcbmltcG9ydCB7IGxvYWRlZCB9IGZyb20gXCIuL2NvbmZpZ3Mtd3JhcC1hY3Rpb25zXCJcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oeyBjb25maWdzLCBnZXRDb25maWdzIH0pIHtcbiAgcmV0dXJuIHtcbiAgICBmbjoge1xuICAgICAgZmV0Y2g6IG1ha2VIdHRwKEh0dHAsIGNvbmZpZ3MucHJlRmV0Y2gsIGNvbmZpZ3MucG9zdEZldGNoKSxcbiAgICAgIGJ1aWxkUmVxdWVzdCxcbiAgICAgIGV4ZWN1dGUsXG4gICAgICByZXNvbHZlOiBtYWtlUmVzb2x2ZSh7XG4gICAgICAgIHN0cmF0ZWdpZXM6IFtcbiAgICAgICAgICBvcGVuQXBpMzFBcGlET01SZXNvbHZlU3RyYXRlZ3ksXG4gICAgICAgICAgb3BlbkFwaTMwUmVzb2x2ZVN0cmF0ZWd5LFxuICAgICAgICAgIG9wZW5BcGkyUmVzb2x2ZVN0cmF0ZWd5LFxuICAgICAgICAgIGdlbmVyaWNSZXNvbHZlU3RyYXRlZ3ksXG4gICAgICAgIF0sXG4gICAgICB9KSxcbiAgICAgIHJlc29sdmVTdWJ0cmVlOiBhc3luYyAob2JqLCBwYXRoLCBvcHRpb25zID0ge30pID0+IHtcbiAgICAgICAgY29uc3QgZnJlc2hDb25maWdzID0gZ2V0Q29uZmlncygpXG4gICAgICAgIGNvbnN0IGRlZmF1bHRPcHRpb25zID0ge1xuICAgICAgICAgIG1vZGVsUHJvcGVydHlNYWNybzogZnJlc2hDb25maWdzLm1vZGVsUHJvcGVydHlNYWNybyxcbiAgICAgICAgICBwYXJhbWV0ZXJNYWNybzogZnJlc2hDb25maWdzLnBhcmFtZXRlck1hY3JvLFxuICAgICAgICAgIHJlcXVlc3RJbnRlcmNlcHRvcjogZnJlc2hDb25maWdzLnJlcXVlc3RJbnRlcmNlcHRvcixcbiAgICAgICAgICByZXNwb25zZUludGVyY2VwdG9yOiBmcmVzaENvbmZpZ3MucmVzcG9uc2VJbnRlcmNlcHRvcixcbiAgICAgICAgICBzdHJhdGVnaWVzOiBbXG4gICAgICAgICAgICBvcGVuQXBpMzFBcGlET01SZXNvbHZlU3RyYXRlZ3ksXG4gICAgICAgICAgICBvcGVuQXBpMzBSZXNvbHZlU3RyYXRlZ3ksXG4gICAgICAgICAgICBvcGVuQXBpMlJlc29sdmVTdHJhdGVneSxcbiAgICAgICAgICAgIGdlbmVyaWNSZXNvbHZlU3RyYXRlZ3ksXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtYWtlUmVzb2x2ZVN1YnRyZWUoZGVmYXVsdE9wdGlvbnMpKG9iaiwgcGF0aCwgb3B0aW9ucylcbiAgICAgIH0sXG4gICAgICBzZXJpYWxpemVSZXMsXG4gICAgICBvcElkXG4gICAgfSxcbiAgICBzdGF0ZVBsdWdpbnM6IHtcbiAgICAgIGNvbmZpZ3M6IHtcbiAgICAgICAgd3JhcEFjdGlvbnM6IHtcbiAgICAgICAgICBsb2FkZWQsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICB9XG59XG4iLCJpbXBvcnQgeyBzaGFsbG93RXF1YWxLZXlzIH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuaW1wb3J0IHsgc2FuaXRpemVVcmwgfSBmcm9tIFwiY29yZS91dGlscy91cmxcIlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHtcbiAgICBmbjoge1xuICAgICAgc2hhbGxvd0VxdWFsS2V5cyxcbiAgICAgIHNhbml0aXplVXJsLFxuICAgIH1cbiAgfVxufVxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdC1kb21cIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdC1yZWR1eFwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImxvZGFzaC9pZGVudGl0eVwiKTsiLCJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCJcbmltcG9ydCB7IGNvbXBvc2UgfSBmcm9tIFwicmVkdXhcIlxuaW1wb3J0IHsgY29ubmVjdCwgUHJvdmlkZXIgfSBmcm9tIFwicmVhY3QtcmVkdXhcIlxuaW1wb3J0IG9taXQgZnJvbSBcImxvZGFzaC9vbWl0XCJcbmltcG9ydCBpZGVudGl0eSBmcm9tIFwibG9kYXNoL2lkZW50aXR5XCJcblxuY29uc3Qgd2l0aFN5c3RlbSA9IChnZXRTeXN0ZW0pID0+IChXcmFwcGVkQ29tcG9uZW50KSA9PiB7XG4gIGNvbnN0IHsgZm4gfSA9IGdldFN5c3RlbSgpXG5cbiAgY2xhc3MgV2l0aFN5c3RlbSBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIDxXcmFwcGVkQ29tcG9uZW50IHsuLi5nZXRTeXN0ZW0oKX0gey4uLnRoaXMucHJvcHN9IHsuLi50aGlzLmNvbnRleHR9IC8+XG4gICAgfVxuICB9XG4gIFdpdGhTeXN0ZW0uZGlzcGxheU5hbWUgPSBgV2l0aFN5c3RlbSgke2ZuLmdldERpc3BsYXlOYW1lKFdyYXBwZWRDb21wb25lbnQpfSlgXG4gIHJldHVybiBXaXRoU3lzdGVtXG59XG5cbmNvbnN0IHdpdGhSb290ID0gKGdldFN5c3RlbSwgcmVkdXhTdG9yZSkgPT4gKFdyYXBwZWRDb21wb25lbnQpID0+IHtcbiAgY29uc3QgeyBmbiB9ID0gZ2V0U3lzdGVtKClcblxuICBjbGFzcyBXaXRoUm9vdCBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFByb3ZpZGVyIHN0b3JlPXtyZWR1eFN0b3JlfT5cbiAgICAgICAgICA8V3JhcHBlZENvbXBvbmVudCB7Li4udGhpcy5wcm9wc30gey4uLnRoaXMuY29udGV4dH0gLz5cbiAgICAgICAgPC9Qcm92aWRlcj5cbiAgICAgIClcbiAgICB9XG4gIH1cbiAgV2l0aFJvb3QuZGlzcGxheU5hbWUgPSBgV2l0aFJvb3QoJHtmbi5nZXREaXNwbGF5TmFtZShXcmFwcGVkQ29tcG9uZW50KX0pYFxuICByZXR1cm4gV2l0aFJvb3Rcbn1cblxuY29uc3Qgd2l0aENvbm5lY3QgPSAoZ2V0U3lzdGVtLCBXcmFwcGVkQ29tcG9uZW50LCByZWR1eFN0b3JlKSA9PiB7XG4gIGNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IChzdGF0ZSwgb3duUHJvcHMpID0+IHtcbiAgICBjb25zdCBwcm9wcyA9IHsuLi5vd25Qcm9wcywgLi4uZ2V0U3lzdGVtKCl9XG4gICAgY29uc3QgY3VzdG9tTWFwU3RhdGVUb1Byb3BzID0gV3JhcHBlZENvbXBvbmVudC5wcm90b3R5cGU/Lm1hcFN0YXRlVG9Qcm9wcyB8fCAoc3RhdGUgPT4gKHtzdGF0ZX0pKVxuICAgIHJldHVybiBjdXN0b21NYXBTdGF0ZVRvUHJvcHMoc3RhdGUsIHByb3BzKVxuICB9XG5cbiAgcmV0dXJuIGNvbXBvc2UoXG4gICAgcmVkdXhTdG9yZSA/IHdpdGhSb290KGdldFN5c3RlbSwgcmVkdXhTdG9yZSkgOiBpZGVudGl0eSxcbiAgICBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcyksXG4gICAgd2l0aFN5c3RlbShnZXRTeXN0ZW0pLFxuICApKFdyYXBwZWRDb21wb25lbnQpXG59XG5cbmNvbnN0IGhhbmRsZVByb3BzID0gKGdldFN5c3RlbSwgbWFwcGluZywgcHJvcHMsIG9sZFByb3BzKSA9PiB7XG4gIGZvciAoY29uc3QgcHJvcCBpbiBtYXBwaW5nKSB7XG4gICAgY29uc3QgZm4gPSBtYXBwaW5nW3Byb3BdXG5cbiAgICBpZiAodHlwZW9mIGZuID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIGZuKHByb3BzW3Byb3BdLCBvbGRQcm9wc1twcm9wXSwgZ2V0U3lzdGVtKCkpXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCB3aXRoTWFwcGVkQ29udGFpbmVyID0gKGdldFN5c3RlbSwgZ2V0U3RvcmUsIG1lbUdldENvbXBvbmVudCkgPT4gKGNvbXBvbmVudE5hbWUsIG1hcHBpbmcpID0+IHtcbiAgY29uc3QgeyBmbiB9ID0gZ2V0U3lzdGVtKClcbiAgY29uc3QgV3JhcHBlZENvbXBvbmVudCA9IG1lbUdldENvbXBvbmVudChjb21wb25lbnROYW1lLCBcInJvb3RcIilcblxuICBjbGFzcyBXaXRoTWFwcGVkQ29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcywgY29udGV4dCkge1xuICAgICAgc3VwZXIocHJvcHMsIGNvbnRleHQpXG4gICAgICBoYW5kbGVQcm9wcyhnZXRTeXN0ZW0sIG1hcHBpbmcsIHByb3BzLCB7fSlcbiAgICB9XG5cbiAgICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAgIGhhbmRsZVByb3BzKGdldFN5c3RlbSwgbWFwcGluZywgbmV4dFByb3BzLCB0aGlzLnByb3BzKVxuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IGNsZWFuUHJvcHMgPSBvbWl0KHRoaXMucHJvcHMsIG1hcHBpbmcgPyBPYmplY3Qua2V5cyhtYXBwaW5nKSA6IFtdKVxuICAgICAgcmV0dXJuIDxXcmFwcGVkQ29tcG9uZW50IHsuLi5jbGVhblByb3BzfSAvPlxuICAgIH1cbiAgfVxuICBXaXRoTWFwcGVkQ29udGFpbmVyLmRpc3BsYXlOYW1lID0gYFdpdGhNYXBwZWRDb250YWluZXIoJHtmbi5nZXREaXNwbGF5TmFtZShXcmFwcGVkQ29tcG9uZW50KX0pYFxuICByZXR1cm4gV2l0aE1hcHBlZENvbnRhaW5lclxufVxuXG5leHBvcnQgY29uc3QgcmVuZGVyID0gKGdldFN5c3RlbSwgZ2V0U3RvcmUsIGdldENvbXBvbmVudCwgZ2V0Q29tcG9uZW50cykgPT4gKGRvbU5vZGUpID0+IHtcbiAgY29uc3QgQXBwID0gZ2V0Q29tcG9uZW50KGdldFN5c3RlbSwgZ2V0U3RvcmUsIGdldENvbXBvbmVudHMpKFwiQXBwXCIsIFwicm9vdFwiKVxuICBjb25zdCB7IGNyZWF0ZVJvb3QgfSA9IFJlYWN0RE9NXG4gIGNvbnN0IHJvb3QgPSBjcmVhdGVSb290KGRvbU5vZGUpXG5cbiAgcm9vdC5yZW5kZXIoPEFwcC8+KVxufVxuXG5leHBvcnQgY29uc3QgZ2V0Q29tcG9uZW50ID0gKGdldFN5c3RlbSwgZ2V0U3RvcmUsIGdldENvbXBvbmVudHMpID0+IChjb21wb25lbnROYW1lLCBjb250YWluZXIsIGNvbmZpZyA9IHt9KSA9PiB7XG5cbiAgaWYgKHR5cGVvZiBjb21wb25lbnROYW1lICE9PSBcInN0cmluZ1wiKVxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJOZWVkIGEgc3RyaW5nLCB0byBmZXRjaCBhIGNvbXBvbmVudC4gV2FzIGdpdmVuIGEgXCIgKyB0eXBlb2YgY29tcG9uZW50TmFtZSlcblxuICAgIC8vIGdldENvbXBvbmVudCBoYXMgYSBjb25maWcgb2JqZWN0IGFzIGEgdGhpcmQsIG9wdGlvbmFsIHBhcmFtZXRlclxuICAgIC8vIHVzaW5nIHRoZSBjb25maWcgb2JqZWN0IHJlcXVpcmVzIHRoZSBwcmVzZW5jZSBvZiB0aGUgc2Vjb25kIHBhcmFtZXRlciwgY29udGFpbmVyXG4gICAgLy8gZS5nLiBnZXRDb21wb25lbnQoXCJKc29uU2NoZW1hX3N0cmluZ193aGF0ZXZlclwiLCBmYWxzZSwgeyBmYWlsU2lsZW50bHk6IHRydWUgfSlcbiAgY29uc3QgY29tcG9uZW50ID0gZ2V0Q29tcG9uZW50cyhjb21wb25lbnROYW1lKVxuXG4gIGlmICghY29tcG9uZW50KSB7XG4gICAgaWYgKCFjb25maWcuZmFpbFNpbGVudGx5KSB7XG4gICAgICBnZXRTeXN0ZW0oKS5sb2cud2FybihcIkNvdWxkIG5vdCBmaW5kIGNvbXBvbmVudDpcIiwgY29tcG9uZW50TmFtZSlcbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGlmKCFjb250YWluZXIpIHtcbiAgICByZXR1cm4gY29tcG9uZW50XG4gIH1cblxuICBpZihjb250YWluZXIgPT09IFwicm9vdFwiKSB7XG4gICAgcmV0dXJuIHdpdGhDb25uZWN0KGdldFN5c3RlbSwgY29tcG9uZW50LCBnZXRTdG9yZSgpKVxuICB9XG5cbiAgLy8gY29udGFpbmVyID09IHRydXRoeVxuICByZXR1cm4gd2l0aENvbm5lY3QoZ2V0U3lzdGVtLCBjb21wb25lbnQpXG59XG4iLCJleHBvcnQgY29uc3QgZ2V0RGlzcGxheU5hbWUgPSAoV3JhcHBlZENvbXBvbmVudCkgPT4gV3JhcHBlZENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBXcmFwcGVkQ29tcG9uZW50Lm5hbWUgfHwgXCJDb21wb25lbnRcIlxuIiwiaW1wb3J0IHsgbWVtb2l6ZSB9IGZyb20gXCJjb3JlL3V0aWxzXCJcblxuaW1wb3J0IG1lbW9pemVOIGZyb20gXCJjb3JlL3V0aWxzL21lbW9pemVOXCJcbmltcG9ydCB7IGdldENvbXBvbmVudCwgcmVuZGVyLCB3aXRoTWFwcGVkQ29udGFpbmVyIH0gZnJvbSBcIi4vcm9vdC1pbmplY3RzXCJcbmltcG9ydCB7IGdldERpc3BsYXlOYW1lIH0gZnJvbSBcIi4vZm5cIlxuXG5jb25zdCBtZW1vaXplRm9yR2V0Q29tcG9uZW50ID0gKGZuKSA9PiB7XG4gIGNvbnN0IHJlc29sdmVyID0gKC4uLmFyZ3MpID0+IEpTT04uc3RyaW5naWZ5KGFyZ3MpXG4gIHJldHVybiBtZW1vaXplKGZuLCByZXNvbHZlcilcbn1cblxuY29uc3QgbWVtb2l6ZUZvcldpdGhNYXBwZWRDb250YWluZXIgPSAoZm4pID0+IHtcbiAgY29uc3QgcmVzb2x2ZXIgPSAoLi4uYXJncykgPT4gYXJnc1xuICByZXR1cm4gbWVtb2l6ZU4oZm4sIHJlc29sdmVyKVxufVxuXG5jb25zdCB2aWV3UGx1Z2luID0gKHtnZXRDb21wb25lbnRzLCBnZXRTdG9yZSwgZ2V0U3lzdGVtfSkgPT4ge1xuICAvLyBnZXRDb21wb25lbnQgc2hvdWxkIGJlIHBhc3NlZCBpbnRvIG1ha2VNYXBwZWRDb250YWluZXIsIF9hbHJlYWR5XyBtZW1vaXplZC4uLiBvdGhlcndpc2Ugd2UgaGF2ZSBhIGJpZyBwZXJmb3JtYW5jZSBoaXQgKCB0aGluaywgcmVhbGx5IGJpZyApXG4gIGNvbnN0IG1lbUdldENvbXBvbmVudCA9IG1lbW9pemVGb3JHZXRDb21wb25lbnQoZ2V0Q29tcG9uZW50KGdldFN5c3RlbSwgZ2V0U3RvcmUsIGdldENvbXBvbmVudHMpKVxuICBjb25zdCBtZW1NYWtlTWFwcGVkQ29udGFpbmVyID0gbWVtb2l6ZUZvcldpdGhNYXBwZWRDb250YWluZXIod2l0aE1hcHBlZENvbnRhaW5lcihnZXRTeXN0ZW0sIGdldFN0b3JlLCBtZW1HZXRDb21wb25lbnQpKVxuXG4gIHJldHVybiB7XG4gICAgcm9vdEluamVjdHM6IHtcbiAgICAgIGdldENvbXBvbmVudDogbWVtR2V0Q29tcG9uZW50LFxuICAgICAgbWFrZU1hcHBlZENvbnRhaW5lcjogbWVtTWFrZU1hcHBlZENvbnRhaW5lcixcbiAgICAgIHJlbmRlcjogcmVuZGVyKGdldFN5c3RlbSwgZ2V0U3RvcmUsIGdldENvbXBvbmVudCwgZ2V0Q29tcG9uZW50cyksXG4gICAgfSxcbiAgICBmbjoge1xuICAgICAgZ2V0RGlzcGxheU5hbWUsXG4gICAgfSxcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB2aWV3UGx1Z2luXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBnZXRDb21wb25lbnQgfSBmcm9tIFwiY29yZS9wbHVnaW5zL3ZpZXcvcm9vdC1pbmplY3RzXCJcbmltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL3Jvb3QtaW5qZWN0c1wiXG5cbmNvbnN0IFZpZXdMZWdhY3lQbHVnaW4gPSAoeyBSZWFjdCwgZ2V0U3lzdGVtLCBnZXRTdG9yZSwgZ2V0Q29tcG9uZW50cyB9KSA9PiB7XG4gIGNvbnN0IHJvb3RJbmplY3RzID0ge31cbiAgY29uc3QgcmVhY3RNYWpvclZlcnNpb24gPSBwYXJzZUludChSZWFjdD8udmVyc2lvbiwgMTApXG5cbiAgaWYgKHJlYWN0TWFqb3JWZXJzaW9uID49IDE2ICYmIHJlYWN0TWFqb3JWZXJzaW9uIDwgMTgpIHtcbiAgICByb290SW5qZWN0cy5yZW5kZXIgPSByZW5kZXIoXG4gICAgICBnZXRTeXN0ZW0sXG4gICAgICBnZXRTdG9yZSxcbiAgICAgIGdldENvbXBvbmVudCxcbiAgICAgIGdldENvbXBvbmVudHNcbiAgICApXG4gIH1cblxuICByZXR1cm4ge1xuICAgIHJvb3RJbmplY3RzLFxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFZpZXdMZWdhY3lQbHVnaW5cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFJlYWN0RE9NIGZyb20gXCJyZWFjdC1kb21cIlxuXG5leHBvcnQgY29uc3QgcmVuZGVyID1cbiAgKGdldFN5c3RlbSwgZ2V0U3RvcmUsIGdldENvbXBvbmVudCwgZ2V0Q29tcG9uZW50cykgPT4gKGRvbU5vZGUpID0+IHtcbiAgICBjb25zdCBBcHAgPSBnZXRDb21wb25lbnQoZ2V0U3lzdGVtLCBnZXRTdG9yZSwgZ2V0Q29tcG9uZW50cykoXCJBcHBcIiwgXCJyb290XCIpXG5cbiAgICBSZWFjdERPTS5yZW5kZXIoPEFwcCAvPiwgZG9tTm9kZSlcbiAgfVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgY3JlYXRlU2VsZWN0b3IgfSBmcm9tIFwicmVzZWxlY3RcIlxuaW1wb3J0IHsgTWFwIH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgd2luIGZyb20gXCJjb3JlL3dpbmRvd1wiXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRvd25sb2FkVXJsUGx1Z2luKHRvb2xib3gpIHtcbiAgbGV0IHsgZm4gfSA9IHRvb2xib3hcblxuICBjb25zdCBhY3Rpb25zID0ge1xuICAgIGRvd25sb2FkOlxuICAgICAgKHVybCkgPT5cbiAgICAgICh7IGVyckFjdGlvbnMsIHNwZWNTZWxlY3RvcnMsIHNwZWNBY3Rpb25zLCBnZXRDb25maWdzIH0pID0+IHtcbiAgICAgICAgbGV0IHsgZmV0Y2ggfSA9IGZuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGdldENvbmZpZ3MoKVxuICAgICAgICB1cmwgPSB1cmwgfHwgc3BlY1NlbGVjdG9ycy51cmwoKVxuICAgICAgICBzcGVjQWN0aW9ucy51cGRhdGVMb2FkaW5nU3RhdHVzKFwibG9hZGluZ1wiKVxuICAgICAgICBlcnJBY3Rpb25zLmNsZWFyKHsgc291cmNlOiBcImZldGNoXCIgfSlcbiAgICAgICAgZmV0Y2goe1xuICAgICAgICAgIHVybCxcbiAgICAgICAgICBsb2FkU3BlYzogdHJ1ZSxcbiAgICAgICAgICByZXF1ZXN0SW50ZXJjZXB0b3I6IGNvbmZpZy5yZXF1ZXN0SW50ZXJjZXB0b3IgfHwgKChhKSA9PiBhKSxcbiAgICAgICAgICByZXNwb25zZUludGVyY2VwdG9yOiBjb25maWcucmVzcG9uc2VJbnRlcmNlcHRvciB8fCAoKGEpID0+IGEpLFxuICAgICAgICAgIGNyZWRlbnRpYWxzOiBcInNhbWUtb3JpZ2luXCIsXG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgQWNjZXB0OiBcImFwcGxpY2F0aW9uL2pzb24sKi8qXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSkudGhlbihuZXh0LCBuZXh0KVxuXG4gICAgICAgIGZ1bmN0aW9uIG5leHQocmVzKSB7XG4gICAgICAgICAgaWYgKHJlcyBpbnN0YW5jZW9mIEVycm9yIHx8IHJlcy5zdGF0dXMgPj0gNDAwKSB7XG4gICAgICAgICAgICBzcGVjQWN0aW9ucy51cGRhdGVMb2FkaW5nU3RhdHVzKFwiZmFpbGVkXCIpXG4gICAgICAgICAgICBlcnJBY3Rpb25zLm5ld1Rocm93bkVycihcbiAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAgICBuZXcgRXJyb3IoKHJlcy5tZXNzYWdlIHx8IHJlcy5zdGF0dXNUZXh0KSArIFwiIFwiICsgdXJsKSxcbiAgICAgICAgICAgICAgICB7IHNvdXJjZTogXCJmZXRjaFwiIH1cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGZhaWx1cmUgd2FzIHBvc3NpYmx5IGR1ZSB0byBDT1JTIG9yIG1peGVkIGNvbnRlbnRcbiAgICAgICAgICAgIGlmICghcmVzLnN0YXR1cyAmJiByZXMgaW5zdGFuY2VvZiBFcnJvcikgY2hlY2tQb3NzaWJsZUZhaWxSZWFzb25zKClcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgICBzcGVjQWN0aW9ucy51cGRhdGVMb2FkaW5nU3RhdHVzKFwic3VjY2Vzc1wiKVxuICAgICAgICAgIHNwZWNBY3Rpb25zLnVwZGF0ZVNwZWMocmVzLnRleHQpXG4gICAgICAgICAgaWYgKHNwZWNTZWxlY3RvcnMudXJsKCkgIT09IHVybCkge1xuICAgICAgICAgICAgc3BlY0FjdGlvbnMudXBkYXRlVXJsKHVybClcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBjaGVja1Bvc3NpYmxlRmFpbFJlYXNvbnMoKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBzcGVjVXJsXG5cbiAgICAgICAgICAgIGlmIChcIlVSTFwiIGluIHdpbikge1xuICAgICAgICAgICAgICBzcGVjVXJsID0gbmV3IFVSTCh1cmwpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBsZWdhY3kgYnJvd3NlciwgdXNlIDxhIGhyZWY+IHRvIHBhcnNlIHRoZSBVUkxcbiAgICAgICAgICAgICAgc3BlY1VybCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpXG4gICAgICAgICAgICAgIHNwZWNVcmwuaHJlZiA9IHVybFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHNwZWNVcmwucHJvdG9jb2wgIT09IFwiaHR0cHM6XCIgJiZcbiAgICAgICAgICAgICAgd2luLmxvY2F0aW9uLnByb3RvY29sID09PSBcImh0dHBzOlwiXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgIGBQb3NzaWJsZSBtaXhlZC1jb250ZW50IGlzc3VlPyBUaGUgcGFnZSB3YXMgbG9hZGVkIG92ZXIgaHR0cHM6Ly8gYnV0IGEgJHtzcGVjVXJsLnByb3RvY29sfS8vIFVSTCB3YXMgc3BlY2lmaWVkLiBDaGVjayB0aGF0IHlvdSBhcmUgbm90IGF0dGVtcHRpbmcgdG8gbG9hZCBtaXhlZCBjb250ZW50LmBcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHsgc291cmNlOiBcImZldGNoXCIgfVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGVyckFjdGlvbnMubmV3VGhyb3duRXJyKGVycm9yKVxuICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzcGVjVXJsLm9yaWdpbiAhPT0gd2luLmxvY2F0aW9uLm9yaWdpbikge1xuICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgYFBvc3NpYmxlIGNyb3NzLW9yaWdpbiAoQ09SUykgaXNzdWU/IFRoZSBVUkwgb3JpZ2luICgke3NwZWNVcmwub3JpZ2lufSkgZG9lcyBub3QgbWF0Y2ggdGhlIHBhZ2UgKCR7d2luLmxvY2F0aW9uLm9yaWdpbn0pLiBDaGVjayB0aGUgc2VydmVyIHJldHVybnMgdGhlIGNvcnJlY3QgJ0FjY2Vzcy1Db250cm9sLUFsbG93LSonIGhlYWRlcnMuYFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgeyBzb3VyY2U6IFwiZmV0Y2hcIiB9XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgZXJyQWN0aW9ucy5uZXdUaHJvd25FcnIoZXJyb3IpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgdXBkYXRlTG9hZGluZ1N0YXR1czogKHN0YXR1cykgPT4ge1xuICAgICAgbGV0IGVudW1zID0gW251bGwsIFwibG9hZGluZ1wiLCBcImZhaWxlZFwiLCBcInN1Y2Nlc3NcIiwgXCJmYWlsZWRDb25maWdcIl1cbiAgICAgIGlmIChlbnVtcy5pbmRleE9mKHN0YXR1cykgPT09IC0xKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yOiAke3N0YXR1c30gaXMgbm90IG9uZSBvZiAke0pTT04uc3RyaW5naWZ5KGVudW1zKX1gKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBcInNwZWNfdXBkYXRlX2xvYWRpbmdfc3RhdHVzXCIsXG4gICAgICAgIHBheWxvYWQ6IHN0YXR1cyxcbiAgICAgIH1cbiAgICB9LFxuICB9XG5cbiAgbGV0IHJlZHVjZXJzID0ge1xuICAgIHNwZWNfdXBkYXRlX2xvYWRpbmdfc3RhdHVzOiAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHR5cGVvZiBhY3Rpb24ucGF5bG9hZCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IHN0YXRlLnNldChcImxvYWRpbmdTdGF0dXNcIiwgYWN0aW9uLnBheWxvYWQpXG4gICAgICAgIDogc3RhdGVcbiAgICB9LFxuICB9XG5cbiAgbGV0IHNlbGVjdG9ycyA9IHtcbiAgICBsb2FkaW5nU3RhdHVzOiBjcmVhdGVTZWxlY3RvcihcbiAgICAgIChzdGF0ZSkgPT4ge1xuICAgICAgICByZXR1cm4gc3RhdGUgfHwgTWFwKClcbiAgICAgIH0sXG4gICAgICAoc3BlYykgPT4gc3BlYy5nZXQoXCJsb2FkaW5nU3RhdHVzXCIpIHx8IG51bGxcbiAgICApLFxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBzdGF0ZVBsdWdpbnM6IHtcbiAgICAgIHNwZWM6IHsgYWN0aW9ucywgcmVkdWNlcnMsIHNlbGVjdG9ycyB9LFxuICAgIH0sXG4gIH1cbn1cbiIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xpZ2h0XCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL2phdmFzY3JpcHRcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL2hsanMvanNvblwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy94bWxcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL2hsanMvYmFzaFwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy95YW1sXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL2h0dHBcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL2hsanMvcG93ZXJzaGVsbFwiKTsiLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgU3ludGF4SGlnaGxpZ2h0ZXIgZnJvbSBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9saWdodFwiXG5pbXBvcnQganMgZnJvbSBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy9qYXZhc2NyaXB0XCJcbmltcG9ydCBqc29uIGZyb20gXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL2hsanMvanNvblwiXG5pbXBvcnQgeG1sIGZyb20gXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL2hsanMveG1sXCJcbmltcG9ydCBiYXNoIGZyb20gXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL2hsanMvYmFzaFwiXG5pbXBvcnQgeWFtbCBmcm9tIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL3lhbWxcIlxuaW1wb3J0IGh0dHAgZnJvbSBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvaGxqcy9odHRwXCJcbmltcG9ydCBwb3dlcnNoZWxsIGZyb20gXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL2hsanMvcG93ZXJzaGVsbFwiXG5pbXBvcnQgamF2YXNjcmlwdCBmcm9tIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9obGpzL2phdmFzY3JpcHRcIlxuXG5jb25zdCBhZnRlckxvYWQgPSAoKSA9PiB7XG4gIFN5bnRheEhpZ2hsaWdodGVyLnJlZ2lzdGVyTGFuZ3VhZ2UoXCJqc29uXCIsIGpzb24pXG4gIFN5bnRheEhpZ2hsaWdodGVyLnJlZ2lzdGVyTGFuZ3VhZ2UoXCJqc1wiLCBqcylcbiAgU3ludGF4SGlnaGxpZ2h0ZXIucmVnaXN0ZXJMYW5ndWFnZShcInhtbFwiLCB4bWwpXG4gIFN5bnRheEhpZ2hsaWdodGVyLnJlZ2lzdGVyTGFuZ3VhZ2UoXCJ5YW1sXCIsIHlhbWwpXG4gIFN5bnRheEhpZ2hsaWdodGVyLnJlZ2lzdGVyTGFuZ3VhZ2UoXCJodHRwXCIsIGh0dHApXG4gIFN5bnRheEhpZ2hsaWdodGVyLnJlZ2lzdGVyTGFuZ3VhZ2UoXCJiYXNoXCIsIGJhc2gpXG4gIFN5bnRheEhpZ2hsaWdodGVyLnJlZ2lzdGVyTGFuZ3VhZ2UoXCJwb3dlcnNoZWxsXCIsIHBvd2Vyc2hlbGwpXG4gIFN5bnRheEhpZ2hsaWdodGVyLnJlZ2lzdGVyTGFuZ3VhZ2UoXCJqYXZhc2NyaXB0XCIsIGphdmFzY3JpcHQpXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFmdGVyTG9hZFxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvYWdhdGVcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvYXJ0YVwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9zdHlsZXMvaGxqcy9tb25va2FpXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL3N0eWxlcy9obGpzL25vcmRcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvb2JzaWRpYW5cIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvdG9tb3Jyb3ctbmlnaHRcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvaWRlYVwiKTsiLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgYWdhdGUgZnJvbSBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9zdHlsZXMvaGxqcy9hZ2F0ZVwiXG5pbXBvcnQgYXJ0YSBmcm9tIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL3N0eWxlcy9obGpzL2FydGFcIlxuaW1wb3J0IG1vbm9rYWkgZnJvbSBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9zdHlsZXMvaGxqcy9tb25va2FpXCJcbmltcG9ydCBub3JkIGZyb20gXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvbm9yZFwiXG5pbXBvcnQgb2JzaWRpYW4gZnJvbSBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9zdHlsZXMvaGxqcy9vYnNpZGlhblwiXG5pbXBvcnQgdG9tb3Jyb3dOaWdodCBmcm9tIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL3N0eWxlcy9obGpzL3RvbW9ycm93LW5pZ2h0XCJcbmltcG9ydCBpZGVhIGZyb20gXCJyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vc3R5bGVzL2hsanMvaWRlYVwiXG5cbmV4cG9ydCBjb25zdCBzdHlsZXMgPSB7XG4gIGFnYXRlLFxuICBhcnRhLFxuICBtb25va2FpLFxuICBub3JkLFxuICBvYnNpZGlhbixcbiAgXCJ0b21vcnJvdy1uaWdodFwiOiB0b21vcnJvd05pZ2h0LFxuICBpZGVhLFxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdFN0eWxlID0gYWdhdGVcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgUmVhY3RTeW50YXhIaWdobGlnaHRlciBmcm9tIFwicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xpZ2h0XCJcblxuY29uc3QgU3ludGF4SGlnaGxpZ2h0ZXIgPSAoe1xuICBsYW5ndWFnZSxcbiAgY2xhc3NOYW1lID0gXCJcIixcbiAgZ2V0Q29uZmlncyxcbiAgc3ludGF4SGlnaGxpZ2h0aW5nID0ge30sXG4gIGNoaWxkcmVuID0gXCJcIixcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSBnZXRDb25maWdzKCkuc3ludGF4SGlnaGxpZ2h0LnRoZW1lXG4gIGNvbnN0IHsgc3R5bGVzLCBkZWZhdWx0U3R5bGUgfSA9IHN5bnRheEhpZ2hsaWdodGluZ1xuICBjb25zdCBzdHlsZSA9IHN0eWxlcz8uW3RoZW1lXSA/PyBkZWZhdWx0U3R5bGVcblxuICByZXR1cm4gKFxuICAgIDxSZWFjdFN5bnRheEhpZ2hsaWdodGVyXG4gICAgICBsYW5ndWFnZT17bGFuZ3VhZ2V9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9SZWFjdFN5bnRheEhpZ2hsaWdodGVyPlxuICApXG59XG5cblN5bnRheEhpZ2hsaWdodGVyLnByb3BUeXBlcyA9IHtcbiAgbGFuZ3VhZ2U6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBnZXRDb25maWdzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzeW50YXhIaWdobGlnaHRpbmc6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgc3R5bGVzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGRlZmF1bHRTdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgfSksXG4gIHJlbmRlclBsYWluVGV4dDogUHJvcFR5cGVzLmZ1bmMsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuc3RyaW5nLFxufVxuXG5leHBvcnQgZGVmYXVsdCBTeW50YXhIaWdobGlnaHRlclxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJqcy1maWxlLWRvd25sb2FkXCIpOyIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCwgeyB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCBzYXZlQXMgZnJvbSBcImpzLWZpbGUtZG93bmxvYWRcIlxuaW1wb3J0IHsgQ29weVRvQ2xpcGJvYXJkIH0gZnJvbSBcInJlYWN0LWNvcHktdG8tY2xpcGJvYXJkXCJcblxuY29uc3QgSGlnaGxpZ2h0Q29kZSA9ICh7XG4gIGZpbGVOYW1lID0gXCJyZXNwb25zZS50eHRcIixcbiAgY2xhc3NOYW1lLFxuICBkb3dubG9hZGFibGUsXG4gIGdldENvbXBvbmVudCxcbiAgY2FuQ29weSxcbiAgbGFuZ3VhZ2UsXG4gIGNoaWxkcmVuLFxufSkgPT4ge1xuICBjb25zdCByb290UmVmID0gdXNlUmVmKG51bGwpXG4gIGNvbnN0IFN5bnRheEhpZ2hsaWdodGVyID0gZ2V0Q29tcG9uZW50KFwiU3ludGF4SGlnaGxpZ2h0ZXJcIiwgdHJ1ZSlcblxuICBjb25zdCBoYW5kbGVEb3dubG9hZCA9ICgpID0+IHtcbiAgICBzYXZlQXMoY2hpbGRyZW4sIGZpbGVOYW1lKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUHJldmVudFlTY3JvbGxpbmdCZXlvbmRFbGVtZW50ID0gKGUpID0+IHtcbiAgICBjb25zdCB7IHRhcmdldCwgZGVsdGFZIH0gPSBlXG4gICAgY29uc3Qge1xuICAgICAgc2Nyb2xsSGVpZ2h0OiBjb250ZW50SGVpZ2h0LFxuICAgICAgb2Zmc2V0SGVpZ2h0OiB2aXNpYmxlSGVpZ2h0LFxuICAgICAgc2Nyb2xsVG9wLFxuICAgIH0gPSB0YXJnZXRcbiAgICBjb25zdCBzY3JvbGxPZmZzZXQgPSB2aXNpYmxlSGVpZ2h0ICsgc2Nyb2xsVG9wXG4gICAgY29uc3QgaXNFbGVtZW50U2Nyb2xsYWJsZSA9IGNvbnRlbnRIZWlnaHQgPiB2aXNpYmxlSGVpZ2h0XG4gICAgY29uc3QgaXNTY3JvbGxpbmdQYXN0VG9wID0gc2Nyb2xsVG9wID09PSAwICYmIGRlbHRhWSA8IDBcbiAgICBjb25zdCBpc1Njcm9sbGluZ1Bhc3RCb3R0b20gPSBzY3JvbGxPZmZzZXQgPj0gY29udGVudEhlaWdodCAmJiBkZWx0YVkgPiAwXG5cbiAgICBpZiAoaXNFbGVtZW50U2Nyb2xsYWJsZSAmJiAoaXNTY3JvbGxpbmdQYXN0VG9wIHx8IGlzU2Nyb2xsaW5nUGFzdEJvdHRvbSkpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY2hpbGROb2RlcyA9IEFycmF5LmZyb20ocm9vdFJlZi5jdXJyZW50LmNoaWxkTm9kZXMpLmZpbHRlcihcbiAgICAgIChub2RlKSA9PiAhIW5vZGUubm9kZVR5cGUgJiYgbm9kZS5jbGFzc0xpc3QuY29udGFpbnMoXCJtaWNyb2xpZ2h0XCIpXG4gICAgKVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgY2hpbGROb2Rlcy5mb3JFYWNoKChub2RlKSA9PlxuICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICBcIm1vdXNld2hlZWxcIixcbiAgICAgICAgaGFuZGxlUHJldmVudFlTY3JvbGxpbmdCZXlvbmRFbGVtZW50LFxuICAgICAgICB7IHBhc3NpdmU6IGZhbHNlIH1cbiAgICAgIClcbiAgICApXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICBjaGlsZE5vZGVzLmZvckVhY2goKG5vZGUpID0+XG4gICAgICAgIG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICBcIm1vdXNld2hlZWxcIixcbiAgICAgICAgICBoYW5kbGVQcmV2ZW50WVNjcm9sbGluZ0JleW9uZEVsZW1lbnRcbiAgICAgICAgKVxuICAgICAgKVxuICAgIH1cbiAgfSwgW2NoaWxkcmVuLCBjbGFzc05hbWUsIGxhbmd1YWdlXSlcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiaGlnaGxpZ2h0LWNvZGVcIiByZWY9e3Jvb3RSZWZ9PlxuICAgICAge2NhbkNvcHkgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvcHktdG8tY2xpcGJvYXJkXCI+XG4gICAgICAgICAgPENvcHlUb0NsaXBib2FyZCB0ZXh0PXtjaGlsZHJlbn0+XG4gICAgICAgICAgICA8YnV0dG9uIC8+XG4gICAgICAgICAgPC9Db3B5VG9DbGlwYm9hcmQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cblxuICAgICAgeyFkb3dubG9hZGFibGUgPyBudWxsIDogKFxuICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImRvd25sb2FkLWNvbnRlbnRzXCIgb25DbGljaz17aGFuZGxlRG93bmxvYWR9PlxuICAgICAgICAgIERvd25sb2FkXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgKX1cblxuICAgICAgPFN5bnRheEhpZ2hsaWdodGVyXG4gICAgICAgIGxhbmd1YWdlPXtsYW5ndWFnZX1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzTmFtZSwgXCJtaWNyb2xpZ2h0XCIpfVxuICAgICAgICByZW5kZXJQbGFpblRleHQ9eyh7IGNoaWxkcmVuLCBQbGFpblRleHRWaWV3ZXIgfSkgPT4gKFxuICAgICAgICAgIDxQbGFpblRleHRWaWV3ZXIgY2xhc3NOYW1lPXtjbGFzc05hbWV9PntjaGlsZHJlbn08L1BsYWluVGV4dFZpZXdlcj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9TeW50YXhIaWdobGlnaHRlcj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5IaWdobGlnaHRDb2RlLnByb3BUeXBlcyA9IHtcbiAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGRvd25sb2FkYWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gIGZpbGVOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBsYW5ndWFnZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgY2FuQ29weTogUHJvcFR5cGVzLmJvb2wsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEhpZ2hsaWdodENvZGVcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiXG5cbmNvbnN0IFBsYWluVGV4dFZpZXdlciA9ICh7IGNsYXNzTmFtZSA9IFwiXCIsIGNoaWxkcmVuIH0pID0+IChcbiAgPHByZSBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJtaWNyb2xpZ2h0XCIsIGNsYXNzTmFtZSl9PntjaGlsZHJlbn08L3ByZT5cbilcblxuUGxhaW5UZXh0Vmlld2VyLnByb3BUeXBlcyA9IHtcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBQbGFpblRleHRWaWV3ZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmNvbnN0IFN5bnRheEhpZ2hsaWdodGVyV3JhcHBlciA9IChPcmlnaW5hbCwgc3lzdGVtKSA9PiB7XG4gIGNvbnN0IFN5bnRheEhpZ2hsaWdodGVyID0gKHsgcmVuZGVyUGxhaW5UZXh0LCBjaGlsZHJlbiwgLi4ucmVzdCB9KSA9PiB7XG4gICAgY29uc3QgY2FuU3ludGF4SGlnaGxpZ2h0ID0gc3lzdGVtLmdldENvbmZpZ3MoKS5zeW50YXhIaWdobGlnaHQuYWN0aXZhdGVkXG4gICAgY29uc3QgUGxhaW5UZXh0Vmlld2VyID0gc3lzdGVtLmdldENvbXBvbmVudChcIlBsYWluVGV4dFZpZXdlclwiKVxuXG4gICAgaWYgKCFjYW5TeW50YXhIaWdobGlnaHQgJiYgdHlwZW9mIHJlbmRlclBsYWluVGV4dCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm4gcmVuZGVyUGxhaW5UZXh0KHsgY2hpbGRyZW4sIFBsYWluVGV4dFZpZXdlciB9KVxuICAgIH1cbiAgICBpZiAoIWNhblN5bnRheEhpZ2hsaWdodCkge1xuICAgICAgcmV0dXJuIDxQbGFpblRleHRWaWV3ZXI+e2NoaWxkcmVufTwvUGxhaW5UZXh0Vmlld2VyPlxuICAgIH1cblxuICAgIHJldHVybiA8T3JpZ2luYWwgey4uLnJlc3R9PntjaGlsZHJlbn08L09yaWdpbmFsPlxuICB9XG5cbiAgU3ludGF4SGlnaGxpZ2h0ZXIucHJvcFR5cGVzID0ge1xuICAgIC4uLk9yaWdpbmFsLnByb3BUeXBlcyxcbiAgICByZW5kZXJQbGFpblRleHQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIH1cblxuICByZXR1cm4gU3ludGF4SGlnaGxpZ2h0ZXJcbn1cblxuZXhwb3J0IGRlZmF1bHQgU3ludGF4SGlnaGxpZ2h0ZXJXcmFwcGVyXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgYWZ0ZXJMb2FkIGZyb20gXCIuL2FmdGVyLWxvYWRcIlxuaW1wb3J0IHsgc3R5bGVzLCBkZWZhdWx0U3R5bGUgfSBmcm9tIFwiLi9yb290LWluamVjdHNcIlxuaW1wb3J0IFN5bnRheEhpZ2hsaWdodGVyIGZyb20gXCIuL2NvbXBvbmVudHMvU3ludGF4SGlnaGxpZ2h0ZXJcIlxuaW1wb3J0IEhpZ2hsaWdodENvZGUgZnJvbSBcIi4vY29tcG9uZW50cy9IaWdobGlnaHRDb2RlXCJcbmltcG9ydCBQbGFpblRleHRWaWV3ZXIgZnJvbSBcIi4vY29tcG9uZW50cy9QbGFpblRleHRWaWV3ZXJcIlxuaW1wb3J0IFN5bnRheEhpZ2hsaWdodGVyV3JhcHBlciBmcm9tIFwiLi93cmFwLWNvbXBvbmVudHMvU3ludGF4SGlnaGxpZ2h0ZXJcIlxuXG5jb25zdCBTeW50YXhIaWdobGlnaHRpbmdQbHVnaW4xID0gKCkgPT4gKHtcbiAgYWZ0ZXJMb2FkLFxuICByb290SW5qZWN0czoge1xuICAgIHN5bnRheEhpZ2hsaWdodGluZzogeyBzdHlsZXMsIGRlZmF1bHRTdHlsZSB9LFxuICB9LFxuICBjb21wb25lbnRzOiB7XG4gICAgU3ludGF4SGlnaGxpZ2h0ZXIsXG4gICAgSGlnaGxpZ2h0Q29kZSxcbiAgICBQbGFpblRleHRWaWV3ZXIsXG4gIH0sXG59KVxuXG5jb25zdCBTeW50YXhIaWdobGlnaHRpbmdQbHVnaW4yID0gKCkgPT4gKHtcbiAgd3JhcENvbXBvbmVudHM6IHtcbiAgICBTeW50YXhIaWdobGlnaHRlcjogU3ludGF4SGlnaGxpZ2h0ZXJXcmFwcGVyLFxuICB9LFxufSlcblxuY29uc3QgU3ludGF4SGlnaGxpZ2h0aW5nUGx1Z2luID0gKCkgPT4gW1xuICBTeW50YXhIaWdobGlnaHRpbmdQbHVnaW4xLFxuICBTeW50YXhIaWdobGlnaHRpbmdQbHVnaW4yLFxuXVxuXG5leHBvcnQgZGVmYXVsdCBTeW50YXhIaWdobGlnaHRpbmdQbHVnaW5cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB3aW4gZnJvbSBcImNvcmUvd2luZG93XCJcblxuY29uc3QgYWZ0ZXJMb2FkID0gKCkgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgY29uc3QgeyBHSVRfRElSVFksIEdJVF9DT01NSVQsIFBBQ0tBR0VfVkVSU0lPTiwgQlVJTERfVElNRSB9ID0gYnVpbGRJbmZvXG5cbiAgd2luLnZlcnNpb25zID0gd2luLnZlcnNpb25zIHx8IHt9XG4gIHdpbi52ZXJzaW9ucy5zd2FnZ2VyVUkgPSB7XG4gICAgdmVyc2lvbjogUEFDS0FHRV9WRVJTSU9OLFxuICAgIGdpdFJldmlzaW9uOiBHSVRfQ09NTUlULFxuICAgIGdpdERpcnR5OiBHSVRfRElSVFksXG4gICAgYnVpbGRUaW1lc3RhbXA6IEJVSUxEX1RJTUUsXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgYWZ0ZXJMb2FkXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgYWZ0ZXJMb2FkIGZyb20gXCIuL2FmdGVyLWxvYWQuanNcIlxuXG5jb25zdCBWZXJzaW9uc1BsdWdpbiA9ICgpID0+ICh7XG4gIGFmdGVyTG9hZCxcbn0pXG5cbmV4cG9ydCBkZWZhdWx0IFZlcnNpb25zUGx1Z2luXG4iLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImxvZGFzaC96aXBPYmplY3RcIik7IiwiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiXG5cbmV4cG9ydCBjb25zdCBjb21wb25lbnREaWRDYXRjaCA9IGNvbnNvbGUuZXJyb3JcblxuY29uc3QgaXNDbGFzc0NvbXBvbmVudCA9IGNvbXBvbmVudCA9PiBjb21wb25lbnQucHJvdG90eXBlICYmIGNvbXBvbmVudC5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudFxuXG5leHBvcnQgY29uc3Qgd2l0aEVycm9yQm91bmRhcnkgPSAoZ2V0U3lzdGVtKSA9PiAoV3JhcHBlZENvbXBvbmVudCkgPT4ge1xuICBjb25zdCB7IGdldENvbXBvbmVudCwgZm4gfSA9IGdldFN5c3RlbSgpXG4gIGNvbnN0IEVycm9yQm91bmRhcnkgPSBnZXRDb21wb25lbnQoXCJFcnJvckJvdW5kYXJ5XCIpXG4gIGNvbnN0IHRhcmdldE5hbWUgPSBmbi5nZXREaXNwbGF5TmFtZShXcmFwcGVkQ29tcG9uZW50KVxuXG4gIGNsYXNzIFdpdGhFcnJvckJvdW5kYXJ5IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8RXJyb3JCb3VuZGFyeSB0YXJnZXROYW1lPXt0YXJnZXROYW1lfSBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH0gZm49e2ZufT5cbiAgICAgICAgICA8V3JhcHBlZENvbXBvbmVudCB7Li4udGhpcy5wcm9wc30gey4uLnRoaXMuY29udGV4dH0gLz5cbiAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxuICAgICAgKVxuICAgIH1cbiAgfVxuICBXaXRoRXJyb3JCb3VuZGFyeS5kaXNwbGF5TmFtZSA9IGBXaXRoRXJyb3JCb3VuZGFyeSgke3RhcmdldE5hbWV9KWBcbiAgaWYgKGlzQ2xhc3NDb21wb25lbnQoV3JhcHBlZENvbXBvbmVudCkpIHtcbiAgICAvKipcbiAgICAgKiBXZSBuZWVkIHRvIGhhbmRsZSBjYXNlIG9mIGNsYXNzIGNvbXBvbmVudHMgZGVmaW5pbmcgYSBgbWFwU3RhdGVUb1Byb3BzYCBwdWJsaWMgbWV0aG9kLlxuICAgICAqIENvbXBvbmVudHMgd2l0aCBgbWFwU3RhdGVUb1Byb3BzYCBwdWJsaWMgbWV0aG9kIGNhbm5vdCBiZSB3cmFwcGVkLlxuICAgICAqL1xuICAgIFdpdGhFcnJvckJvdW5kYXJ5LnByb3RvdHlwZS5tYXBTdGF0ZVRvUHJvcHMgPSBXcmFwcGVkQ29tcG9uZW50LnByb3RvdHlwZS5tYXBTdGF0ZVRvUHJvcHNcbiAgfVxuXG4gIHJldHVybiBXaXRoRXJyb3JCb3VuZGFyeVxufVxuXG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5jb25zdCBGYWxsYmFjayA9ICh7IG5hbWUgfSkgPT4gKFxuICA8ZGl2IGNsYXNzTmFtZT1cImZhbGxiYWNrXCI+XG4gICAg8J+YsSA8aT5Db3VsZCBub3QgcmVuZGVyIHsgbmFtZSA9PT0gXCJ0XCIgPyBcInRoaXMgY29tcG9uZW50XCIgOiBuYW1lIH0sIHNlZSB0aGUgY29uc29sZS48L2k+XG4gIDwvZGl2PlxuKVxuRmFsbGJhY2sucHJvcFR5cGVzID0ge1xuICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEZhbGxiYWNrXG4iLCJpbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBjb21wb25lbnREaWRDYXRjaCB9IGZyb20gXCIuLi9mblwiXG5pbXBvcnQgRmFsbGJhY2sgZnJvbSBcIi4vZmFsbGJhY2tcIlxuXG5leHBvcnQgY2xhc3MgRXJyb3JCb3VuZGFyeSBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgdGFyZ2V0TmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIGZuOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgIFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5ub2RlKSxcbiAgICAgIFByb3BUeXBlcy5ub2RlLFxuICAgIF0pXG4gIH1cblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIHRhcmdldE5hbWU6IFwidGhpcyBjb21wb25lbnRcIixcbiAgICBnZXRDb21wb25lbnQ6ICgpID0+IEZhbGxiYWNrLFxuICAgIGZuOiB7XG4gICAgICBjb21wb25lbnREaWRDYXRjaCxcbiAgICB9LFxuICAgIGNoaWxkcmVuOiBudWxsLFxuICB9XG5cbiAgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcihlcnJvcikge1xuICAgIHJldHVybiB7IGhhc0Vycm9yOiB0cnVlLCBlcnJvciB9XG4gIH1cblxuICBjb25zdHJ1Y3RvciguLi5hcmdzKSB7XG4gICAgc3VwZXIoLi4uYXJncylcbiAgICB0aGlzLnN0YXRlID0geyBoYXNFcnJvcjogZmFsc2UsIGVycm9yOiBudWxsIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZENhdGNoKGVycm9yLCBlcnJvckluZm8pIHtcbiAgICB0aGlzLnByb3BzLmZuLmNvbXBvbmVudERpZENhdGNoKGVycm9yLCBlcnJvckluZm8pXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBnZXRDb21wb25lbnQsIHRhcmdldE5hbWUsIGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzXG5cbiAgICBpZiAodGhpcy5zdGF0ZS5oYXNFcnJvcikge1xuICAgICAgY29uc3QgRmFsbGJhY2tDb21wb25lbnQgPSBnZXRDb21wb25lbnQoXCJGYWxsYmFja1wiKVxuICAgICAgcmV0dXJuIDxGYWxsYmFja0NvbXBvbmVudCBuYW1lPXt0YXJnZXROYW1lfSAvPlxuICAgIH1cblxuICAgIHJldHVybiBjaGlsZHJlblxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEVycm9yQm91bmRhcnlcbiIsImltcG9ydCB6aXBPYmplY3QgZnJvbSBcImxvZGFzaC96aXBPYmplY3RcIlxuXG5pbXBvcnQgRXJyb3JCb3VuZGFyeSBmcm9tIFwiLi9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5XCJcbmltcG9ydCBGYWxsYmFjayBmcm9tIFwiLi9jb21wb25lbnRzL2ZhbGxiYWNrXCJcbmltcG9ydCB7IGNvbXBvbmVudERpZENhdGNoLCB3aXRoRXJyb3JCb3VuZGFyeSB9IGZyb20gXCIuL2ZuXCJcblxuY29uc3Qgc2FmZVJlbmRlclBsdWdpbiA9ICh7Y29tcG9uZW50TGlzdCA9IFtdLCBmdWxsT3ZlcnJpZGUgPSBmYWxzZX0gPSB7fSkgPT4gKHsgZ2V0U3lzdGVtIH0pID0+IHtcbiAgY29uc3QgZGVmYXVsdENvbXBvbmVudExpc3QgPSBbXG4gICAgXCJBcHBcIixcbiAgICBcIkJhc2VMYXlvdXRcIixcbiAgICBcIlZlcnNpb25QcmFnbWFGaWx0ZXJcIixcbiAgICBcIkluZm9Db250YWluZXJcIixcbiAgICBcIlNlcnZlcnNDb250YWluZXJcIixcbiAgICBcIlNjaGVtZXNDb250YWluZXJcIixcbiAgICBcIkF1dGhvcml6ZUJ0bkNvbnRhaW5lclwiLFxuICAgIFwiRmlsdGVyQ29udGFpbmVyXCIsXG4gICAgXCJPcGVyYXRpb25zXCIsXG4gICAgXCJPcGVyYXRpb25Db250YWluZXJcIixcbiAgICBcInBhcmFtZXRlcnNcIixcbiAgICBcInJlc3BvbnNlc1wiLFxuICAgIFwiT3BlcmF0aW9uU2VydmVyc1wiLFxuICAgIFwiTW9kZWxzXCIsXG4gICAgXCJNb2RlbFdyYXBwZXJcIixcbiAgXVxuICBjb25zdCBtZXJnZWRDb21wb25lbnRMaXN0ID0gZnVsbE92ZXJyaWRlID8gY29tcG9uZW50TGlzdCA6IFsuLi5kZWZhdWx0Q29tcG9uZW50TGlzdCwgLi4uY29tcG9uZW50TGlzdF1cbiAgY29uc3Qgd3JhcEZhY3RvcnkgPSAoT3JpZ2luYWwsIHsgZm4gfSkgPT4gZm4ud2l0aEVycm9yQm91bmRhcnkoT3JpZ2luYWwpXG4gIGNvbnN0IHdyYXBDb21wb25lbnRzID0gemlwT2JqZWN0KG1lcmdlZENvbXBvbmVudExpc3QsIEFycmF5KG1lcmdlZENvbXBvbmVudExpc3QubGVuZ3RoKS5maWxsKHdyYXBGYWN0b3J5KSlcblxuICByZXR1cm4ge1xuICAgIGZuOiB7XG4gICAgICBjb21wb25lbnREaWRDYXRjaCxcbiAgICAgIHdpdGhFcnJvckJvdW5kYXJ5OiB3aXRoRXJyb3JCb3VuZGFyeShnZXRTeXN0ZW0pLFxuICAgIH0sXG4gICAgY29tcG9uZW50czoge1xuICAgICAgRXJyb3JCb3VuZGFyeSxcbiAgICAgIEZhbGxiYWNrLFxuICAgIH0sXG4gICAgd3JhcENvbXBvbmVudHMsXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgc2FmZVJlbmRlclBsdWdpblxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuY2xhc3MgQXBwIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgZ2V0TGF5b3V0KCkge1xuICAgIGNvbnN0IHsgZ2V0Q29tcG9uZW50LCBsYXlvdXRTZWxlY3RvcnMgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBsYXlvdXROYW1lID0gbGF5b3V0U2VsZWN0b3JzLmN1cnJlbnQoKVxuICAgIGNvbnN0IENvbXBvbmVudCA9IGdldENvbXBvbmVudChsYXlvdXROYW1lLCB0cnVlKVxuXG4gICAgcmV0dXJuIENvbXBvbmVudFxuICAgICAgPyBDb21wb25lbnRcbiAgICAgIDogKCkgPT4gPGgxPiBObyBsYXlvdXQgZGVmaW5lZCBmb3IgJnF1b3Q7e2xheW91dE5hbWV9JnF1b3Q7IDwvaDE+XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgTGF5b3V0ID0gdGhpcy5nZXRMYXlvdXQoKVxuXG4gICAgcmV0dXJuIDxMYXlvdXQgLz5cbiAgfVxufVxuXG5BcHAucHJvcFR5cGVzID0ge1xuICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGxheW91dFNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBBcHBcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF1dGhvcml6YXRpb25Qb3B1cCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNsb3NlID0oKSA9PiB7XG4gICAgbGV0IHsgYXV0aEFjdGlvbnMgfSA9IHRoaXMucHJvcHNcblxuICAgIGF1dGhBY3Rpb25zLnNob3dEZWZpbml0aW9ucyhmYWxzZSlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyBhdXRoU2VsZWN0b3JzLCBhdXRoQWN0aW9ucywgZ2V0Q29tcG9uZW50LCBlcnJTZWxlY3RvcnMsIHNwZWNTZWxlY3RvcnMsIGZuOiB7IEFTVCA9IHt9IH0gfSA9IHRoaXMucHJvcHNcbiAgICBsZXQgZGVmaW5pdGlvbnMgPSBhdXRoU2VsZWN0b3JzLnNob3duRGVmaW5pdGlvbnMoKVxuICAgIGNvbnN0IEF1dGhzID0gZ2V0Q29tcG9uZW50KFwiYXV0aHNcIilcbiAgICBjb25zdCBDbG9zZUljb24gPSBnZXRDb21wb25lbnQoXCJDbG9zZUljb25cIilcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImRpYWxvZy11eFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJhY2tkcm9wLXV4XCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9kYWwtdXhcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLWRpYWxvZy11eFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb2RhbC11eC1pbm5lclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLXV4LWhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxoMz5BdmFpbGFibGUgYXV0aG9yaXphdGlvbnM8L2gzPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzTmFtZT1cImNsb3NlLW1vZGFsXCIgb25DbGljaz17IHRoaXMuY2xvc2UgfT5cbiAgICAgICAgICAgICAgICAgIDxDbG9zZUljb24gLz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9kYWwtdXgtY29udGVudFwiPlxuXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgZGVmaW5pdGlvbnMudmFsdWVTZXEoKS5tYXAoKCBkZWZpbml0aW9uLCBrZXkgKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8QXV0aHMga2V5PXsga2V5IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1Q9e0FTVH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbml0aW9ucz17IGRlZmluaXRpb24gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudD17IGdldENvbXBvbmVudCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyU2VsZWN0b3JzPXsgZXJyU2VsZWN0b3JzIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoU2VsZWN0b3JzPXsgYXV0aFNlbGVjdG9ycyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aEFjdGlvbnM9eyBhdXRoQWN0aW9ucyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY1NlbGVjdG9ycz17IHNwZWNTZWxlY3RvcnMgfS8+XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGZuOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGF1dGhTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZXJyU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgYXV0aEFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXV0aG9yaXplQnRuIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBpc0F1dGhvcml6ZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIHNob3dQb3B1cDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHsgaXNBdXRob3JpemVkLCBzaG93UG9wdXAsIG9uQ2xpY2ssIGdldENvbXBvbmVudCB9ID0gdGhpcy5wcm9wc1xuXG4gICAgLy9tdXN0IGJlIG1vdmVkIG91dCBvZiBidXR0b24gY29tcG9uZW50XG4gICAgY29uc3QgQXV0aG9yaXphdGlvblBvcHVwID0gZ2V0Q29tcG9uZW50KFwiYXV0aG9yaXphdGlvblBvcHVwXCIsIHRydWUpXG4gICAgY29uc3QgTG9ja0F1dGhJY29uID0gZ2V0Q29tcG9uZW50KFwiTG9ja0F1dGhJY29uXCIsIHRydWUpXG4gICAgY29uc3QgVW5sb2NrQXV0aEljb24gPSBnZXRDb21wb25lbnQoXCJVbmxvY2tBdXRoSWNvblwiLCB0cnVlKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXV0aC13cmFwcGVyXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3NOYW1lPXtpc0F1dGhvcml6ZWQgPyBcImJ0biBhdXRob3JpemUgbG9ja2VkXCIgOiBcImJ0biBhdXRob3JpemUgdW5sb2NrZWRcIn0gb25DbGljaz17b25DbGlja30+XG4gICAgICAgICAgPHNwYW4+QXV0aG9yaXplPC9zcGFuPlxuICAgICAgICAgIHtpc0F1dGhvcml6ZWQgPyA8TG9ja0F1dGhJY29uIC8+IDogPFVubG9ja0F1dGhJY29uIC8+fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIHsgc2hvd1BvcHVwICYmIDxBdXRob3JpemF0aW9uUG9wdXAgLz4gfVxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBdXRob3JpemVCdG5Db250YWluZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgc3BlY0FjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgYXV0aEFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBhdXRoU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG4gIH1cblxuICByZW5kZXIgKCkge1xuICAgIGNvbnN0IHsgYXV0aEFjdGlvbnMsIGF1dGhTZWxlY3RvcnMsIHNwZWNTZWxlY3RvcnMsIGdldENvbXBvbmVudH0gPSB0aGlzLnByb3BzXG4gICAgXG4gICAgY29uc3Qgc2VjdXJpdHlEZWZpbml0aW9ucyA9IHNwZWNTZWxlY3RvcnMuc2VjdXJpdHlEZWZpbml0aW9ucygpXG4gICAgY29uc3QgYXV0aG9yaXphYmxlRGVmaW5pdGlvbnMgPSBhdXRoU2VsZWN0b3JzLmRlZmluaXRpb25zVG9BdXRob3JpemUoKVxuXG4gICAgY29uc3QgQXV0aG9yaXplQnRuID0gZ2V0Q29tcG9uZW50KFwiYXV0aG9yaXplQnRuXCIpXG5cbiAgICByZXR1cm4gc2VjdXJpdHlEZWZpbml0aW9ucyA/IChcbiAgICAgIDxBdXRob3JpemVCdG5cbiAgICAgICAgb25DbGljaz17KCkgPT4gYXV0aEFjdGlvbnMuc2hvd0RlZmluaXRpb25zKGF1dGhvcml6YWJsZURlZmluaXRpb25zKX1cbiAgICAgICAgaXNBdXRob3JpemVkPXshIWF1dGhTZWxlY3RvcnMuYXV0aG9yaXplZCgpLnNpemV9XG4gICAgICAgIHNob3dQb3B1cD17ISFhdXRoU2VsZWN0b3JzLnNob3duRGVmaW5pdGlvbnMoKX1cbiAgICAgICAgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9XG4gICAgICAvPlxuICAgICkgOiBudWxsXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF1dGhvcml6ZU9wZXJhdGlvbkJ0biBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIGlzQXV0aG9yaXplZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG4gICAgfVxuXG4gIG9uQ2xpY2sgPShlKSA9PiB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIGxldCB7IG9uQ2xpY2sgfSA9IHRoaXMucHJvcHNcblxuICAgIGlmKG9uQ2xpY2spIHtcbiAgICAgIG9uQ2xpY2soKVxuICAgIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyBpc0F1dGhvcml6ZWQsIGdldENvbXBvbmVudCB9ID0gdGhpcy5wcm9wc1xuXG4gICAgY29uc3QgTG9ja0F1dGhPcGVyYXRpb25JY29uID0gZ2V0Q29tcG9uZW50KFwiTG9ja0F1dGhPcGVyYXRpb25JY29uXCIsIHRydWUpXG4gICAgY29uc3QgVW5sb2NrQXV0aE9wZXJhdGlvbkljb24gPSBnZXRDb21wb25lbnQoXCJVbmxvY2tBdXRoT3BlcmF0aW9uSWNvblwiLCB0cnVlKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYXV0aG9yaXphdGlvbl9fYnRuXCJcbiAgICAgICAgYXJpYS1sYWJlbD17aXNBdXRob3JpemVkID8gXCJhdXRob3JpemF0aW9uIGJ1dHRvbiBsb2NrZWRcIiA6IFwiYXV0aG9yaXphdGlvbiBidXR0b24gdW5sb2NrZWRcIn1cbiAgICAgICAgb25DbGljaz17dGhpcy5vbkNsaWNrfT5cbiAgICAgICAge2lzQXV0aG9yaXplZCA/IDxMb2NrQXV0aE9wZXJhdGlvbkljb24gY2xhc3NOYW1lPVwibG9ja2VkXCIgLz4gOiA8VW5sb2NrQXV0aE9wZXJhdGlvbkljb24gY2xhc3NOYW1lPVwidW5sb2NrZWRcIi8+fVxuICAgICAgPC9idXR0b24+XG5cbiAgICApXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBdXRocyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgZGVmaW5pdGlvbnM6IEltUHJvcFR5cGVzLml0ZXJhYmxlLmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGF1dGhTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBhdXRoQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGVyclNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZFxuICB9XG5cbiAgY29uc3RydWN0b3IocHJvcHMsIGNvbnRleHQpIHtcbiAgICBzdXBlcihwcm9wcywgY29udGV4dClcblxuICAgIHRoaXMuc3RhdGUgPSB7fVxuICB9XG5cbiAgb25BdXRoQ2hhbmdlID0oYXV0aCkgPT4ge1xuICAgIGxldCB7IG5hbWUgfSA9IGF1dGhcblxuICAgIHRoaXMuc2V0U3RhdGUoeyBbbmFtZV06IGF1dGggfSlcbiAgfVxuXG4gIHN1Ym1pdEF1dGggPShlKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG5cbiAgICBsZXQgeyBhdXRoQWN0aW9ucyB9ID0gdGhpcy5wcm9wc1xuICAgIGF1dGhBY3Rpb25zLmF1dGhvcml6ZVdpdGhQZXJzaXN0T3B0aW9uKHRoaXMuc3RhdGUpXG4gIH1cblxuICBsb2dvdXRDbGljayA9KGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcblxuICAgIGxldCB7IGF1dGhBY3Rpb25zLCBkZWZpbml0aW9ucyB9ID0gdGhpcy5wcm9wc1xuICAgIGxldCBhdXRocyA9IGRlZmluaXRpb25zLm1hcCggKHZhbCwga2V5KSA9PiB7XG4gICAgICByZXR1cm4ga2V5XG4gICAgfSkudG9BcnJheSgpXG5cbiAgICB0aGlzLnNldFN0YXRlKGF1dGhzLnJlZHVjZSgocHJldiwgYXV0aCkgPT4ge1xuICAgICAgcHJldlthdXRoXSA9IFwiXCJcbiAgICAgIHJldHVybiBwcmV2XG4gICAgfSwge30pKVxuXG4gICAgYXV0aEFjdGlvbnMubG9nb3V0V2l0aFBlcnNpc3RPcHRpb24oYXV0aHMpXG4gIH1cblxuICBjbG9zZSA9KGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBsZXQgeyBhdXRoQWN0aW9ucyB9ID0gdGhpcy5wcm9wc1xuXG4gICAgYXV0aEFjdGlvbnMuc2hvd0RlZmluaXRpb25zKGZhbHNlKVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IGRlZmluaXRpb25zLCBnZXRDb21wb25lbnQsIGF1dGhTZWxlY3RvcnMsIGVyclNlbGVjdG9ycyB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IEF1dGhJdGVtID0gZ2V0Q29tcG9uZW50KFwiQXV0aEl0ZW1cIilcbiAgICBjb25zdCBPYXV0aDIgPSBnZXRDb21wb25lbnQoXCJvYXV0aDJcIiwgdHJ1ZSlcbiAgICBjb25zdCBCdXR0b24gPSBnZXRDb21wb25lbnQoXCJCdXR0b25cIilcblxuICAgIGxldCBhdXRob3JpemVkID0gYXV0aFNlbGVjdG9ycy5hdXRob3JpemVkKClcblxuICAgIGxldCBhdXRob3JpemVkQXV0aCA9IGRlZmluaXRpb25zLmZpbHRlciggKGRlZmluaXRpb24sIGtleSkgPT4ge1xuICAgICAgcmV0dXJuICEhYXV0aG9yaXplZC5nZXQoa2V5KVxuICAgIH0pXG5cbiAgICBsZXQgbm9uT2F1dGhEZWZpbml0aW9ucyA9IGRlZmluaXRpb25zLmZpbHRlciggc2NoZW1hID0+IHNjaGVtYS5nZXQoXCJ0eXBlXCIpICE9PSBcIm9hdXRoMlwiKVxuICAgIGxldCBvYXV0aERlZmluaXRpb25zID0gZGVmaW5pdGlvbnMuZmlsdGVyKCBzY2hlbWEgPT4gc2NoZW1hLmdldChcInR5cGVcIikgPT09IFwib2F1dGgyXCIpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJhdXRoLWNvbnRhaW5lclwiPlxuICAgICAgICB7XG4gICAgICAgICAgISFub25PYXV0aERlZmluaXRpb25zLnNpemUgJiYgPGZvcm0gb25TdWJtaXQ9eyB0aGlzLnN1Ym1pdEF1dGggfT5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbm9uT2F1dGhEZWZpbml0aW9ucy5tYXAoIChzY2hlbWEsIG5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gPEF1dGhJdGVtXG4gICAgICAgICAgICAgICAgICBrZXk9e25hbWV9XG4gICAgICAgICAgICAgICAgICBzY2hlbWE9e3NjaGVtYX1cbiAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgIG9uQXV0aENoYW5nZT17dGhpcy5vbkF1dGhDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICBhdXRob3JpemVkPXthdXRob3JpemVkfVxuICAgICAgICAgICAgICAgICAgZXJyU2VsZWN0b3JzPXtlcnJTZWxlY3RvcnN9XG4gICAgICAgICAgICAgICAgICBhdXRoU2VsZWN0b3JzPXthdXRoU2VsZWN0b3JzfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgfSkudG9BcnJheSgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImF1dGgtYnRuLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5vbk9hdXRoRGVmaW5pdGlvbnMuc2l6ZSA9PT0gYXV0aG9yaXplZEF1dGguc2l6ZSA/IDxCdXR0b24gY2xhc3NOYW1lPVwiYnRuIG1vZGFsLWJ0biBhdXRoXCIgb25DbGljaz17IHRoaXMubG9nb3V0Q2xpY2sgfSBhcmlhLWxhYmVsPVwiUmVtb3ZlIGF1dGhvcml6YXRpb25cIj5Mb2dvdXQ8L0J1dHRvbj5cbiAgICAgICAgICAgICAgOiA8QnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzc05hbWU9XCJidG4gbW9kYWwtYnRuIGF1dGggYXV0aG9yaXplXCIgYXJpYS1sYWJlbD1cIkFwcGx5IGNyZWRlbnRpYWxzXCI+QXV0aG9yaXplPC9CdXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPEJ1dHRvbiBjbGFzc05hbWU9XCJidG4gbW9kYWwtYnRuIGF1dGggYnRuLWRvbmVcIiBvbkNsaWNrPXsgdGhpcy5jbG9zZSB9PkNsb3NlPC9CdXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIH1cblxuICAgICAgICB7XG4gICAgICAgICAgb2F1dGhEZWZpbml0aW9ucyAmJiBvYXV0aERlZmluaXRpb25zLnNpemUgPyA8ZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2NvcGUtZGVmXCI+XG4gICAgICAgICAgICA8cD5TY29wZXMgYXJlIHVzZWQgdG8gZ3JhbnQgYW4gYXBwbGljYXRpb24gZGlmZmVyZW50IGxldmVscyBvZiBhY2Nlc3MgdG8gZGF0YSBvbiBiZWhhbGYgb2YgdGhlIGVuZCB1c2VyLiBFYWNoIEFQSSBtYXkgZGVjbGFyZSBvbmUgb3IgbW9yZSBzY29wZXMuPC9wPlxuICAgICAgICAgICAgPHA+QVBJIHJlcXVpcmVzIHRoZSBmb2xsb3dpbmcgc2NvcGVzLiBTZWxlY3Qgd2hpY2ggb25lcyB5b3Ugd2FudCB0byBncmFudCB0byBTd2FnZ2VyIFVJLjwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZGVmaW5pdGlvbnMuZmlsdGVyKCBzY2hlbWEgPT4gc2NoZW1hLmdldChcInR5cGVcIikgPT09IFwib2F1dGgyXCIpXG4gICAgICAgICAgICAgICAgLm1hcCggKHNjaGVtYSwgbmFtZSkgPT57XG4gICAgICAgICAgICAgICAgICByZXR1cm4gKDxkaXYga2V5PXsgbmFtZSB9PlxuICAgICAgICAgICAgICAgICAgICA8T2F1dGgyIGF1dGhvcml6ZWQ9eyBhdXRob3JpemVkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWE9eyBzY2hlbWEgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9eyBuYW1lIH0gLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PilcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKS50b0FycmF5KClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj4gOiBudWxsXG4gICAgICAgIH1cblxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG5cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBdXRocyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgYXV0aG9yaXplZDogSW1Qcm9wVHlwZXMub3JkZXJlZE1hcC5pc1JlcXVpcmVkLFxuICAgIHNjaGVtYTogSW1Qcm9wVHlwZXMub3JkZXJlZE1hcC5pc1JlcXVpcmVkLFxuICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25BdXRoQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGVyclNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGF1dGhTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQge1xuICAgICAgc2NoZW1hLFxuICAgICAgbmFtZSxcbiAgICAgIGdldENvbXBvbmVudCxcbiAgICAgIG9uQXV0aENoYW5nZSxcbiAgICAgIGF1dGhvcml6ZWQsXG4gICAgICBlcnJTZWxlY3RvcnMsXG4gICAgICBhdXRoU2VsZWN0b3JzXG4gICAgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBBcGlLZXlBdXRoID0gZ2V0Q29tcG9uZW50KFwiYXBpS2V5QXV0aFwiKVxuICAgIGNvbnN0IEJhc2ljQXV0aCA9IGdldENvbXBvbmVudChcImJhc2ljQXV0aFwiKVxuXG4gICAgbGV0IGF1dGhFbFxuXG4gICAgY29uc3QgdHlwZSA9IHNjaGVtYS5nZXQoXCJ0eXBlXCIpXG5cbiAgICBzd2l0Y2godHlwZSkge1xuICAgICAgY2FzZSBcImFwaUtleVwiOiBhdXRoRWwgPSA8QXBpS2V5QXV0aCBrZXk9eyBuYW1lIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWE9eyBzY2hlbWEgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9eyBuYW1lIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJTZWxlY3RvcnM9eyBlcnJTZWxlY3RvcnMgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml6ZWQ9eyBhdXRob3JpemVkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9eyBnZXRDb21wb25lbnQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsgb25BdXRoQ2hhbmdlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoU2VsZWN0b3JzID0geyBhdXRoU2VsZWN0b3JzIH0gLz5cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJiYXNpY1wiOiBhdXRoRWwgPSA8QmFzaWNBdXRoIGtleT17IG5hbWUgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWE9eyBzY2hlbWEgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXsgbmFtZSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyclNlbGVjdG9ycz17IGVyclNlbGVjdG9ycyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml6ZWQ9eyBhdXRob3JpemVkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXsgZ2V0Q29tcG9uZW50IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyBvbkF1dGhDaGFuZ2UgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoU2VsZWN0b3JzID0geyBhdXRoU2VsZWN0b3JzIH0gLz5cbiAgICAgICAgYnJlYWtcbiAgICAgIGRlZmF1bHQ6IGF1dGhFbCA9IDxkaXYga2V5PXsgbmFtZSB9PlVua25vd24gc2VjdXJpdHkgZGVmaW5pdGlvbiB0eXBlIHsgdHlwZSB9PC9kaXY+XG4gICAgfVxuXG4gICAgcmV0dXJuICg8ZGl2IGtleT17YCR7bmFtZX0tanVtcGB9PlxuICAgICAgeyBhdXRoRWwgfVxuICAgIDwvZGl2PilcbiAgfVxuXG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBdXRoRXJyb3IgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgZXJyb3I6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZFxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IGVycm9yIH0gPSB0aGlzLnByb3BzXG5cbiAgICBsZXQgbGV2ZWwgPSBlcnJvci5nZXQoXCJsZXZlbFwiKVxuICAgIGxldCBtZXNzYWdlID0gZXJyb3IuZ2V0KFwibWVzc2FnZVwiKVxuICAgIGxldCBzb3VyY2UgPSBlcnJvci5nZXQoXCJzb3VyY2VcIilcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImVycm9yc1wiPlxuICAgICAgICA8Yj57IHNvdXJjZSB9IHsgbGV2ZWwgfTwvYj5cbiAgICAgICAgPHNwYW4+eyBtZXNzYWdlIH08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaUtleUF1dGggZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGF1dGhvcml6ZWQ6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGVyclNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHNjaGVtYTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgYXV0aFNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm9wcywgY29udGV4dCkge1xuICAgIHN1cGVyKHByb3BzLCBjb250ZXh0KVxuICAgIGxldCB7IG5hbWUsIHNjaGVtYSB9ID0gdGhpcy5wcm9wc1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKVxuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICBzY2hlbWE6IHNjaGVtYSxcbiAgICAgIHZhbHVlOiB2YWx1ZVxuICAgIH1cbiAgfVxuXG4gIGdldFZhbHVlICgpIHtcbiAgICBsZXQgeyBuYW1lLCBhdXRob3JpemVkIH0gPSB0aGlzLnByb3BzXG5cbiAgICByZXR1cm4gYXV0aG9yaXplZCAmJiBhdXRob3JpemVkLmdldEluKFtuYW1lLCBcInZhbHVlXCJdKVxuICB9XG5cbiAgb25DaGFuZ2UgPShlKSA9PiB7XG4gICAgbGV0IHsgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHNcbiAgICBsZXQgdmFsdWUgPSBlLnRhcmdldC52YWx1ZVxuICAgIGxldCBuZXdTdGF0ZSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuc3RhdGUsIHsgdmFsdWU6IHZhbHVlIH0pXG5cbiAgICB0aGlzLnNldFN0YXRlKG5ld1N0YXRlKVxuICAgIG9uQ2hhbmdlKG5ld1N0YXRlKVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IHNjaGVtYSwgZ2V0Q29tcG9uZW50LCBlcnJTZWxlY3RvcnMsIG5hbWUsIGF1dGhTZWxlY3RvcnMgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBJbnB1dCA9IGdldENvbXBvbmVudChcIklucHV0XCIpXG4gICAgY29uc3QgUm93ID0gZ2V0Q29tcG9uZW50KFwiUm93XCIpXG4gICAgY29uc3QgQ29sID0gZ2V0Q29tcG9uZW50KFwiQ29sXCIpXG4gICAgY29uc3QgQXV0aEVycm9yID0gZ2V0Q29tcG9uZW50KFwiYXV0aEVycm9yXCIpXG4gICAgY29uc3QgTWFya2Rvd24gPSBnZXRDb21wb25lbnQoXCJNYXJrZG93blwiLCB0cnVlKVxuICAgIGNvbnN0IEp1bXBUb1BhdGggPSBnZXRDb21wb25lbnQoXCJKdW1wVG9QYXRoXCIsIHRydWUpXG4gICAgY29uc3QgcGF0aCA9IGF1dGhTZWxlY3RvcnMuc2VsZWN0QXV0aFBhdGgobmFtZSlcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmdldFZhbHVlKClcbiAgICBsZXQgZXJyb3JzID0gZXJyU2VsZWN0b3JzLmFsbEVycm9ycygpLmZpbHRlciggZXJyID0+IGVyci5nZXQoXCJhdXRoSWRcIikgPT09IG5hbWUpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPGg0PlxuICAgICAgICAgIDxjb2RlPnsgbmFtZSB8fCBzY2hlbWEuZ2V0KFwibmFtZVwiKSB9PC9jb2RlPiZuYnNwOyhhcGlLZXkpXG4gICAgICAgICAgPEp1bXBUb1BhdGggcGF0aD17cGF0aH0gLz5cbiAgICAgICAgPC9oND5cbiAgICAgICAgeyB2YWx1ZSAmJiA8aDY+QXV0aG9yaXplZDwvaDY+fVxuICAgICAgICA8Um93PlxuICAgICAgICAgIDxNYXJrZG93biBzb3VyY2U9eyBzY2hlbWEuZ2V0KFwiZGVzY3JpcHRpb25cIikgfSAvPlxuICAgICAgICA8L1Jvdz5cbiAgICAgICAgPFJvdz5cbiAgICAgICAgICA8cD5OYW1lOiA8Y29kZT57IHNjaGVtYS5nZXQoXCJuYW1lXCIpIH08L2NvZGU+PC9wPlxuICAgICAgICA8L1Jvdz5cbiAgICAgICAgPFJvdz5cbiAgICAgICAgICA8cD5JbjogPGNvZGU+eyBzY2hlbWEuZ2V0KFwiaW5cIikgfTwvY29kZT48L3A+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93PlxuICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwiYXBpX2tleV92YWx1ZVwiPlZhbHVlOjwvbGFiZWw+XG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWUgPyA8Y29kZT4gKioqKioqIDwvY29kZT5cbiAgICAgICAgICAgICAgICAgIDogPENvbD5cbiAgICAgICAgICAgICAgICAgICAgICA8SW5wdXQgXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFwaV9rZXlfdmFsdWVcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17IHRoaXMub25DaGFuZ2UgfSBcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9Sb3c+XG4gICAgICAgIHtcbiAgICAgICAgICBlcnJvcnMudmFsdWVTZXEoKS5tYXAoIChlcnJvciwga2V5KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gPEF1dGhFcnJvciBlcnJvcj17IGVycm9yIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17IGtleSB9Lz5cbiAgICAgICAgICB9IClcbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmFzaWNBdXRoIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBhdXRob3JpemVkOiBJbVByb3BUeXBlcy5tYXAsXG4gICAgc2NoZW1hOiBJbVByb3BUeXBlcy5tYXAsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBlcnJTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBhdXRoU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWRcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3BzLCBjb250ZXh0KSB7XG4gICAgc3VwZXIocHJvcHMsIGNvbnRleHQpXG4gICAgbGV0IHsgc2NoZW1hLCBuYW1lIH0gPSB0aGlzLnByb3BzXG5cbiAgICBsZXQgdmFsdWUgPSB0aGlzLmdldFZhbHVlKClcbiAgICBsZXQgdXNlcm5hbWUgPSB2YWx1ZS51c2VybmFtZVxuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICBzY2hlbWE6IHNjaGVtYSxcbiAgICAgIHZhbHVlOiAhdXNlcm5hbWUgPyB7fSA6IHtcbiAgICAgICAgdXNlcm5hbWU6IHVzZXJuYW1lXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0VmFsdWUgKCkge1xuICAgIGxldCB7IGF1dGhvcml6ZWQsIG5hbWUgfSA9IHRoaXMucHJvcHNcblxuICAgIHJldHVybiBhdXRob3JpemVkICYmIGF1dGhvcml6ZWQuZ2V0SW4oW25hbWUsIFwidmFsdWVcIl0pIHx8IHt9XG4gIH1cblxuICBvbkNoYW5nZSA9KGUpID0+IHtcbiAgICBsZXQgeyBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wc1xuICAgIGxldCB7IHZhbHVlLCBuYW1lIH0gPSBlLnRhcmdldFxuXG4gICAgbGV0IG5ld1ZhbHVlID0gdGhpcy5zdGF0ZS52YWx1ZVxuICAgIG5ld1ZhbHVlW25hbWVdID0gdmFsdWVcblxuICAgIHRoaXMuc2V0U3RhdGUoeyB2YWx1ZTogbmV3VmFsdWUgfSlcblxuICAgIG9uQ2hhbmdlKHRoaXMuc3RhdGUpXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHsgc2NoZW1hLCBnZXRDb21wb25lbnQsIG5hbWUsIGVyclNlbGVjdG9ycywgYXV0aFNlbGVjdG9ycyB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IElucHV0ID0gZ2V0Q29tcG9uZW50KFwiSW5wdXRcIilcbiAgICBjb25zdCBSb3cgPSBnZXRDb21wb25lbnQoXCJSb3dcIilcbiAgICBjb25zdCBDb2wgPSBnZXRDb21wb25lbnQoXCJDb2xcIilcbiAgICBjb25zdCBBdXRoRXJyb3IgPSBnZXRDb21wb25lbnQoXCJhdXRoRXJyb3JcIilcbiAgICBjb25zdCBKdW1wVG9QYXRoID0gZ2V0Q29tcG9uZW50KFwiSnVtcFRvUGF0aFwiLCB0cnVlKVxuICAgIGNvbnN0IE1hcmtkb3duID0gZ2V0Q29tcG9uZW50KFwiTWFya2Rvd25cIiwgdHJ1ZSlcbiAgICBjb25zdCBwYXRoID0gYXV0aFNlbGVjdG9ycy5zZWxlY3RBdXRoUGF0aChuYW1lKVxuICAgIGxldCB1c2VybmFtZSA9IHRoaXMuZ2V0VmFsdWUoKS51c2VybmFtZVxuICAgIGxldCBlcnJvcnMgPSBlcnJTZWxlY3RvcnMuYWxsRXJyb3JzKCkuZmlsdGVyKCBlcnIgPT4gZXJyLmdldChcImF1dGhJZFwiKSA9PT0gbmFtZSlcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8aDQ+QmFzaWMgYXV0aG9yaXphdGlvbjxKdW1wVG9QYXRoIHBhdGg9e3BhdGh9IC8+PC9oND5cbiAgICAgICAgeyB1c2VybmFtZSAmJiA8aDY+QXV0aG9yaXplZDwvaDY+IH1cbiAgICAgICAgPFJvdz5cbiAgICAgICAgICA8TWFya2Rvd24gc291cmNlPXsgc2NoZW1hLmdldChcImRlc2NyaXB0aW9uXCIpIH0gLz5cbiAgICAgICAgPC9Sb3c+XG4gICAgICAgIDxSb3c+XG4gICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJhdXRoX3VzZXJuYW1lXCI+VXNlcm5hbWU6PC9sYWJlbD5cbiAgICAgICAgICB7XG4gICAgICAgICAgICB1c2VybmFtZSA/IDxjb2RlPiB7IHVzZXJuYW1lIH0gPC9jb2RlPlxuICAgICAgICAgICAgICAgICAgICAgOiA8Q29sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhdXRoX3VzZXJuYW1lXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD1cInJlcXVpcmVkXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInVzZXJuYW1lXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyB0aGlzLm9uQ2hhbmdlIH0gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93PlxuICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwiYXV0aF9wYXNzd29yZFwiPlBhc3N3b3JkOjwvbGFiZWw+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHVzZXJuYW1lID8gPGNvZGU+ICoqKioqKiA8L2NvZGU+XG4gICAgICAgICAgICAgICAgICAgICAgIDogPENvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImF1dGhfcGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwibmV3LXBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyB0aGlzLm9uQ2hhbmdlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9Sb3c+XG4gICAgICAgIHtcbiAgICAgICAgICBlcnJvcnMudmFsdWVTZXEoKS5tYXAoIChlcnJvciwga2V5KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gPEF1dGhFcnJvciBlcnJvcj17IGVycm9yIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17IGtleSB9Lz5cbiAgICAgICAgICB9IClcbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG5cbn1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5pbXBvcnQgeyBzdHJpbmdpZnkgfSBmcm9tIFwiY29yZS91dGlsc1wiXG5pbXBvcnQgeyBNYXAgfSBmcm9tIFwiaW1tdXRhYmxlXCJcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRXhhbXBsZShwcm9wcykge1xuICBjb25zdCB7IGV4YW1wbGUsIHNob3dWYWx1ZSwgZ2V0Q29tcG9uZW50IH0gPSBwcm9wc1xuXG4gIGNvbnN0IE1hcmtkb3duID0gZ2V0Q29tcG9uZW50KFwiTWFya2Rvd25cIiwgdHJ1ZSlcbiAgY29uc3QgSGlnaGxpZ2h0Q29kZSA9IGdldENvbXBvbmVudChcIkhpZ2hsaWdodENvZGVcIiwgdHJ1ZSlcblxuICBpZiAoIWV4YW1wbGUgfHwgIU1hcC5pc01hcChleGFtcGxlKSkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZXhhbXBsZVwiPlxuICAgICAge2V4YW1wbGUuZ2V0KFwiZGVzY3JpcHRpb25cIikgPyAoXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cImV4YW1wbGVfX3NlY3Rpb25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImV4YW1wbGVfX3NlY3Rpb24taGVhZGVyXCI+RXhhbXBsZSBEZXNjcmlwdGlvbjwvZGl2PlxuICAgICAgICAgIDxwPlxuICAgICAgICAgICAgPE1hcmtkb3duIHNvdXJjZT17ZXhhbXBsZS5nZXQoXCJkZXNjcmlwdGlvblwiKX0gLz5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICkgOiBudWxsfVxuICAgICAge3Nob3dWYWx1ZSAmJiBleGFtcGxlLmhhcyhcInZhbHVlXCIpID8gKFxuICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJleGFtcGxlX19zZWN0aW9uXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJleGFtcGxlX19zZWN0aW9uLWhlYWRlclwiPkV4YW1wbGUgVmFsdWU8L2Rpdj5cbiAgICAgICAgICA8SGlnaGxpZ2h0Q29kZT57c3RyaW5naWZ5KGV4YW1wbGUuZ2V0KFwidmFsdWVcIikpfTwvSGlnaGxpZ2h0Q29kZT5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgKSA6IG51bGx9XG4gICAgPC9kaXY+XG4gIClcbn1cblxuRXhhbXBsZS5wcm9wVHlwZXMgPSB7XG4gIGV4YW1wbGU6IEltUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICBzaG93VmFsdWU6IFByb3BUeXBlcy5ib29sLFxuICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgTWFwIH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEV4YW1wbGVzU2VsZWN0IGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgZXhhbXBsZXM6IEltUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICAgIG9uU2VsZWN0OiBQcm9wVHlwZXMuZnVuYyxcbiAgICBjdXJyZW50RXhhbXBsZUtleTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBpc01vZGlmaWVkVmFsdWVBdmFpbGFibGU6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVmFsdWVNb2RpZmllZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgc2hvd0xhYmVsczogUHJvcFR5cGVzLmJvb2wsXG4gIH1cblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGV4YW1wbGVzOiBNYXAoe30pLFxuICAgIG9uU2VsZWN0OiAoLi4uYXJncykgPT5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgLy8gRklYTUU6IHJlbW92ZSBiZWZvcmUgbWVyZ2luZyB0byBtYXN0ZXIuLi5cbiAgICAgICAgYERFQlVHOiBFeGFtcGxlc1NlbGVjdCB3YXMgbm90IGdpdmVuIGFuIG9uU2VsZWN0IGNhbGxiYWNrYCxcbiAgICAgICAgLi4uYXJnc1xuICAgICAgKSxcbiAgICBjdXJyZW50RXhhbXBsZUtleTogbnVsbCxcbiAgICBzaG93TGFiZWxzOiB0cnVlLFxuICB9XG5cbiAgX29uU2VsZWN0ID0gKGtleSwgeyBpc1N5bnRoZXRpY0NoYW5nZSA9IGZhbHNlIH0gPSB7fSkgPT4ge1xuICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vblNlbGVjdCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICB0aGlzLnByb3BzLm9uU2VsZWN0KGtleSwge1xuICAgICAgICBpc1N5bnRoZXRpY0NoYW5nZSxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgX29uRG9tU2VsZWN0ID0gKGUpID0+IHtcbiAgICBpZiAodHlwZW9mIHRoaXMucHJvcHMub25TZWxlY3QgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgY29uc3QgZWxlbWVudCA9IGUudGFyZ2V0LnNlbGVjdGVkT3B0aW9uc1swXVxuICAgICAgY29uc3Qga2V5ID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJ2YWx1ZVwiKVxuXG4gICAgICB0aGlzLl9vblNlbGVjdChrZXksIHtcbiAgICAgICAgaXNTeW50aGV0aWNDaGFuZ2U6IGZhbHNlLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBnZXRDdXJyZW50RXhhbXBsZSA9ICgpID0+IHtcbiAgICBjb25zdCB7IGV4YW1wbGVzLCBjdXJyZW50RXhhbXBsZUtleSB9ID0gdGhpcy5wcm9wc1xuXG4gICAgY29uc3QgY3VycmVudEV4YW1wbGVQZXJQcm9wcyA9IGV4YW1wbGVzLmdldChjdXJyZW50RXhhbXBsZUtleSlcblxuICAgIGNvbnN0IGZpcnN0RXhhbXBsZXNLZXkgPSBleGFtcGxlcy5rZXlTZXEoKS5maXJzdCgpXG4gICAgY29uc3QgZmlyc3RFeGFtcGxlID0gZXhhbXBsZXMuZ2V0KGZpcnN0RXhhbXBsZXNLZXkpXG5cbiAgICByZXR1cm4gY3VycmVudEV4YW1wbGVQZXJQcm9wcyB8fCBmaXJzdEV4YW1wbGUgfHwgTWFwKHt9KVxuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgLy8gdGhpcyBpcyB0aGUgbm90LXNvLWdyZWF0IHBhcnQgb2YgRXhhbXBsZXNTZWxlY3QuLi4gaGVyZSB3ZSdyZVxuICAgIC8vIGFydGlmaWNpYWxseSBraWNraW5nIG9mZiBhbiBvblNlbGVjdCBldmVudCBpbiBvcmRlciB0byBzZXQgYSBkZWZhdWx0XG4gICAgLy8gdmFsdWUgaW4gc3RhdGUuIHRoZSBjb25zdW1lciBoYXMgdGhlIG9wdGlvbiB0byBhdm9pZCB0aGlzIGJ5IGNoZWNraW5nXG4gICAgLy8gYGlzU3ludGhldGljRXZlbnRgLCBidXQgd2Ugc2hvdWxkIHJlYWxseSBiZSBkb2luZyB0aGlzIGluIGEgc2VsZWN0b3IuXG4gICAgLy8gVE9ETzogY2xlYW4gdGhpcyB1cFxuICAgIC8vIEZJWE1FOiBzaG91bGQgdGhpcyBvbmx5IHRyaWdnZXIgaWYgYGN1cnJlbnRFeGFtcGxlc0tleWAgaXMgbnVsbGlzaD9cbiAgICBjb25zdCB7IG9uU2VsZWN0LCBleGFtcGxlcyB9ID0gdGhpcy5wcm9wc1xuXG4gICAgaWYgKHR5cGVvZiBvblNlbGVjdCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBjb25zdCBmaXJzdEV4YW1wbGUgPSBleGFtcGxlcy5maXJzdCgpXG4gICAgICBjb25zdCBmaXJzdEV4YW1wbGVLZXkgPSBleGFtcGxlcy5rZXlPZihmaXJzdEV4YW1wbGUpXG5cbiAgICAgIHRoaXMuX29uU2VsZWN0KGZpcnN0RXhhbXBsZUtleSwge1xuICAgICAgICBpc1N5bnRoZXRpY0NoYW5nZTogdHJ1ZSxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgY29uc3QgeyBjdXJyZW50RXhhbXBsZUtleSwgZXhhbXBsZXMgfSA9IG5leHRQcm9wc1xuICAgIGlmIChleGFtcGxlcyAhPT0gdGhpcy5wcm9wcy5leGFtcGxlcyAmJiAhZXhhbXBsZXMuaGFzKGN1cnJlbnRFeGFtcGxlS2V5KSkge1xuICAgICAgLy8gZXhhbXBsZXMgaGF2ZSBjaGFuZ2VkIGZyb20gdW5kZXIgdXMsIGFuZCB0aGUgY3VycmVudEV4YW1wbGVLZXkgaXMgbm8gbG9uZ2VyXG4gICAgICAvLyB2YWxpZC5cbiAgICAgIGNvbnN0IGZpcnN0RXhhbXBsZSA9IGV4YW1wbGVzLmZpcnN0KClcbiAgICAgIGNvbnN0IGZpcnN0RXhhbXBsZUtleSA9IGV4YW1wbGVzLmtleU9mKGZpcnN0RXhhbXBsZSlcblxuICAgICAgdGhpcy5fb25TZWxlY3QoZmlyc3RFeGFtcGxlS2V5LCB7XG4gICAgICAgIGlzU3ludGhldGljQ2hhbmdlOiB0cnVlLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgZXhhbXBsZXMsXG4gICAgICBjdXJyZW50RXhhbXBsZUtleSxcbiAgICAgIGlzVmFsdWVNb2RpZmllZCxcbiAgICAgIGlzTW9kaWZpZWRWYWx1ZUF2YWlsYWJsZSxcbiAgICAgIHNob3dMYWJlbHMsXG4gICAgfSA9IHRoaXMucHJvcHNcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImV4YW1wbGVzLXNlbGVjdFwiPlxuICAgICAgICB7c2hvd0xhYmVscyA/IChcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJleGFtcGxlcy1zZWxlY3RfX3NlY3Rpb24tbGFiZWxcIj5FeGFtcGxlczogPC9zcGFuPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPHNlbGVjdFxuICAgICAgICAgIGNsYXNzTmFtZT1cImV4YW1wbGVzLXNlbGVjdC1lbGVtZW50XCJcbiAgICAgICAgICBvbkNoYW5nZT17dGhpcy5fb25Eb21TZWxlY3R9XG4gICAgICAgICAgdmFsdWU9e1xuICAgICAgICAgICAgaXNNb2RpZmllZFZhbHVlQXZhaWxhYmxlICYmIGlzVmFsdWVNb2RpZmllZFxuICAgICAgICAgICAgICA/IFwiX19NT0RJRklFRF9fVkFMVUVfX1wiXG4gICAgICAgICAgICAgIDogY3VycmVudEV4YW1wbGVLZXkgfHwgXCJcIlxuICAgICAgICAgIH1cbiAgICAgICAgPlxuICAgICAgICAgIHtpc01vZGlmaWVkVmFsdWVBdmFpbGFibGUgPyAoXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiX19NT0RJRklFRF9fVkFMVUVfX1wiPltNb2RpZmllZCB2YWx1ZV08L29wdGlvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICB7ZXhhbXBsZXNcbiAgICAgICAgICAgIC5tYXAoKGV4YW1wbGUsIGV4YW1wbGVOYW1lKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgICAga2V5PXtleGFtcGxlTmFtZX0gLy8gZm9yIFJlYWN0XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17ZXhhbXBsZU5hbWV9IC8vIGZvciBtYXRjaGluZyB0byBzZWxlY3QncyBgdmFsdWVgXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgeyhNYXAuaXNNYXAoZXhhbXBsZSkgJiYgZXhhbXBsZS5nZXQoXCJzdW1tYXJ5XCIpKSB8fFxuICAgICAgICAgICAgICAgICAgICBleGFtcGxlTmFtZX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC52YWx1ZVNlcSgpfVxuICAgICAgICA8L3NlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBNYXAsIExpc3QgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcblxuaW1wb3J0IHsgc3RyaW5naWZ5IH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuXG4vLyBUaGlzIHN0YXRlZnVsIGNvbXBvbmVudCBsZXRzIHVzIGF2b2lkIHdyaXRpbmcgY29tcGV0aW5nIHZhbHVlcyAodXNlclxuLy8gbW9kaWZpY2F0aW9ucyB2cyBleGFtcGxlIHZhbHVlcykgaW50byBnbG9iYWwgc3RhdGUsIGFuZCB0aGUgbWVzcyB0aGF0IGNvbWVzXG4vLyB3aXRoIHRoYXQ6IHRyYWNraW5nIHdoaWNoIG9mIHRoZSB0d28gdmFsdWVzIGFyZSBjdXJyZW50bHkgdXNlZCBmb3Jcbi8vIFRyeS1JdC1PdXQsIHdoaWNoIGV4YW1wbGUgYSBtb2RpZmllZCB2YWx1ZSBjYW1lIGZyb20sIGV0Yy4uLlxuLy9cbi8vIFRoZSBzb2x1dGlvbiBoZXJlIGlzIHRvIHJldGFpbiB0aGUgbGFzdCB1c2VyLW1vZGlmaWVkIHZhbHVlIGluXG4vLyBFeGFtcGxlc1NlbGVjdFZhbHVlUmV0YWluZXIncyBjb21wb25lbnQgc3RhdGUsIHNvIHRoYXQgb3VyIGdsb2JhbCBzdGF0ZSBjYW4gc3RheVxuLy8gY2xlYW4sIGFsd2F5cyBzaW1wbHkgYmVpbmcgdGhlIHNvdXJjZSBvZiB0cnV0aCBmb3Igd2hhdCB2YWx1ZSBzaG91bGQgYmUgYm90aFxuLy8gZGlzcGxheWVkIHRvIHRoZSB1c2VyIGFuZCB1c2VkIGFzIGEgdmFsdWUgZHVyaW5nIHJlcXVlc3QgZXhlY3V0aW9uLlxuLy9cbi8vIFRoaXMgYXBwcm9hY2gvdHJhZGVvZmYgd2FzIGNob3NlbiBpbiBvcmRlciB0byBlbmNhcHN1bGF0ZSB0aGUgcGFydGljdWxhclxuLy8gbG9naWMgb2YgRXhhbXBsZXMgd2l0aGluIHRoZSBFeGFtcGxlcyBjb21wb25lbnQgdHJlZSwgYW5kIHRvIGF2b2lkXG4vLyByZWdyZXNzaW9ucyB3aXRoaW4gb3VyIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gZWxzZXdoZXJlIChub24tRXhhbXBsZXNcbi8vIGRlZmluaXRpb25zLCBPcGVuQVBJIDIuMCwgZXRjKS4gQSBmdXR1cmUgcmVmYWN0b3IgdG8gZ2xvYmFsIHN0YXRlIG1pZ2h0IG1ha2Vcbi8vIHRoaXMgY29tcG9uZW50IHVubmVjZXNzYXJ5LlxuLy9cbi8vIFRMO0RSOiB0aGlzIGlzIG5vdCBvdXIgdXN1YWwgYXBwcm9hY2gsIGJ1dCB0aGUgY2hvaWNlIHdhcyBtYWRlIGNvbnNjaW91c2x5LlxuXG4vLyBOb3RlIHRoYXQgYGN1cnJlbnROYW1lc3BhY2VgIGlzbid0IGN1cnJlbnRseSB1c2VkIGFueXdoZXJlIVxuXG5jb25zdCBzdHJpbmdpZnlVbmxlc3NMaXN0ID0gKGlucHV0KSA9PlxuICBMaXN0LmlzTGlzdChpbnB1dCkgPyBpbnB1dCA6IHN0cmluZ2lmeShpbnB1dClcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRXhhbXBsZXNTZWxlY3RWYWx1ZVJldGFpbmVyIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgZXhhbXBsZXM6IEltUHJvcFR5cGVzLm1hcCxcbiAgICBvblNlbGVjdDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgdXBkYXRlVmFsdWU6IFByb3BUeXBlcy5mdW5jLCAvLyBtZWNoYW5pc20gdG8gdXBkYXRlIHVwc3RyZWFtIHZhbHVlXG4gICAgdXNlckhhc0VkaXRlZEJvZHk6IFByb3BUeXBlcy5ib29sLFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBjdXJyZW50VXNlcklucHV0VmFsdWU6IFByb3BUeXBlcy5hbnksXG4gICAgY3VycmVudEtleTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjdXJyZW50TmFtZXNwYWNlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIC8vIChhbHNvIHByb3hpZXMgcHJvcHMgZm9yIEV4YW1wbGVzKVxuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICB1c2VySGFzRWRpdGVkQm9keTogZmFsc2UsXG4gICAgZXhhbXBsZXM6IE1hcCh7fSksXG4gICAgY3VycmVudE5hbWVzcGFjZTogXCJfX0RFRkFVTFRfX05BTUVTUEFDRV9fXCIsXG4gICAgc2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWc6ICgpID0+IHtcbiAgICAgIC8vIE5PT1BcbiAgICB9LFxuICAgIG9uU2VsZWN0OiAoLi4uYXJncykgPT5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgXCJFeGFtcGxlc1NlbGVjdFZhbHVlUmV0YWluZXI6IG5vIGBvblNlbGVjdGAgZnVuY3Rpb24gd2FzIHByb3ZpZGVkXCIsXG4gICAgICAgIC4uLmFyZ3NcbiAgICAgICksXG4gICAgdXBkYXRlVmFsdWU6ICguLi5hcmdzKSA9PlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBcIkV4YW1wbGVzU2VsZWN0VmFsdWVSZXRhaW5lcjogbm8gYHVwZGF0ZVZhbHVlYCBmdW5jdGlvbiB3YXMgcHJvdmlkZWRcIixcbiAgICAgICAgLi4uYXJnc1xuICAgICAgKSxcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpXG5cbiAgICBjb25zdCB2YWx1ZUZyb21FeGFtcGxlID0gdGhpcy5fZ2V0Q3VycmVudEV4YW1wbGVWYWx1ZSgpXG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgLy8gdXNlciBlZGl0ZWQ6IGxhc3QgdmFsdWUgdGhhdCBjYW1lIGZyb20gdGhlIHdvcmxkIGFyb3VuZCB1cywgYW5kIGRpZG4ndFxuICAgICAgLy8gbWF0Y2ggdGhlIGN1cnJlbnQgZXhhbXBsZSdzIHZhbHVlXG4gICAgICAvLyBpbnRlcm5hbDogbGFzdCB2YWx1ZSB0aGF0IGNhbWUgZnJvbSB1c2VyIHNlbGVjdGluZyBhbiBFeGFtcGxlXG4gICAgICBbcHJvcHMuY3VycmVudE5hbWVzcGFjZV06IE1hcCh7XG4gICAgICAgIGxhc3RVc2VyRWRpdGVkVmFsdWU6IHRoaXMucHJvcHMuY3VycmVudFVzZXJJbnB1dFZhbHVlLFxuICAgICAgICBsYXN0RG93bnN0cmVhbVZhbHVlOiB2YWx1ZUZyb21FeGFtcGxlLFxuICAgICAgICBpc01vZGlmaWVkVmFsdWVTZWxlY3RlZDpcbiAgICAgICAgICAvLyB2YWx1ZUZyb21FeGFtcGxlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICB0aGlzLnByb3BzLnVzZXJIYXNFZGl0ZWRCb2R5IHx8XG4gICAgICAgICAgdGhpcy5wcm9wcy5jdXJyZW50VXNlcklucHV0VmFsdWUgIT09IHZhbHVlRnJvbUV4YW1wbGUsXG4gICAgICB9KSxcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLnByb3BzLnNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnKGZhbHNlKVxuICB9XG5cbiAgX2dldFN0YXRlRm9yQ3VycmVudE5hbWVzcGFjZSA9ICgpID0+IHtcbiAgICBjb25zdCB7IGN1cnJlbnROYW1lc3BhY2UgfSA9IHRoaXMucHJvcHNcblxuICAgIHJldHVybiAodGhpcy5zdGF0ZVtjdXJyZW50TmFtZXNwYWNlXSB8fCBNYXAoKSkudG9PYmplY3QoKVxuICB9XG5cbiAgX3NldFN0YXRlRm9yQ3VycmVudE5hbWVzcGFjZSA9IChvYmopID0+IHtcbiAgICBjb25zdCB7IGN1cnJlbnROYW1lc3BhY2UgfSA9IHRoaXMucHJvcHNcblxuICAgIHJldHVybiB0aGlzLl9zZXRTdGF0ZUZvck5hbWVzcGFjZShjdXJyZW50TmFtZXNwYWNlLCBvYmopXG4gIH1cblxuICBfc2V0U3RhdGVGb3JOYW1lc3BhY2UgPSAobmFtZXNwYWNlLCBvYmopID0+IHtcbiAgICBjb25zdCBvbGRTdGF0ZUZvck5hbWVzcGFjZSA9IHRoaXMuc3RhdGVbbmFtZXNwYWNlXSB8fCBNYXAoKVxuICAgIGNvbnN0IG5ld1N0YXRlRm9yTmFtZXNwYWNlID0gb2xkU3RhdGVGb3JOYW1lc3BhY2UubWVyZ2VEZWVwKG9iailcbiAgICByZXR1cm4gdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBbbmFtZXNwYWNlXTogbmV3U3RhdGVGb3JOYW1lc3BhY2UsXG4gICAgfSlcbiAgfVxuXG4gIF9pc0N1cnJlbnRVc2VySW5wdXRTYW1lQXNFeGFtcGxlVmFsdWUgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50VXNlcklucHV0VmFsdWUgfSA9IHRoaXMucHJvcHNcblxuICAgIGNvbnN0IHZhbHVlRnJvbUV4YW1wbGUgPSB0aGlzLl9nZXRDdXJyZW50RXhhbXBsZVZhbHVlKClcblxuICAgIHJldHVybiB2YWx1ZUZyb21FeGFtcGxlID09PSBjdXJyZW50VXNlcklucHV0VmFsdWVcbiAgfVxuXG4gIF9nZXRWYWx1ZUZvckV4YW1wbGUgPSAoZXhhbXBsZUtleSwgcHJvcHMpID0+IHtcbiAgICAvLyBwcm9wcyBhcmUgYWNjZXB0ZWQgc28gdGhhdCB0aGlzIGNhbiBiZSB1c2VkIGluIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzLFxuICAgIC8vIHdoaWNoIGhhcyBhY2Nlc3MgdG8gYG5leHRQcm9wc2BcbiAgICBjb25zdCB7IGV4YW1wbGVzIH0gPSBwcm9wcyB8fCB0aGlzLnByb3BzXG4gICAgcmV0dXJuIHN0cmluZ2lmeVVubGVzc0xpc3QoXG4gICAgICAoZXhhbXBsZXMgfHwgTWFwKHt9KSkuZ2V0SW4oW2V4YW1wbGVLZXksIFwidmFsdWVcIl0pXG4gICAgKVxuICB9XG5cbiAgX2dldEN1cnJlbnRFeGFtcGxlVmFsdWUgPSAocHJvcHMpID0+IHtcbiAgICAvLyBwcm9wcyBhcmUgYWNjZXB0ZWQgc28gdGhhdCB0aGlzIGNhbiBiZSB1c2VkIGluIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzLFxuICAgIC8vIHdoaWNoIGhhcyBhY2Nlc3MgdG8gYG5leHRQcm9wc2BcbiAgICBjb25zdCB7IGN1cnJlbnRLZXkgfSA9IHByb3BzIHx8IHRoaXMucHJvcHNcbiAgICByZXR1cm4gdGhpcy5fZ2V0VmFsdWVGb3JFeGFtcGxlKGN1cnJlbnRLZXksIHByb3BzIHx8IHRoaXMucHJvcHMpXG4gIH1cblxuICBfb25FeGFtcGxlc1NlbGVjdCA9IChrZXksIHsgaXNTeW50aGV0aWNDaGFuZ2UgfSA9IHt9LCAuLi5vdGhlckFyZ3MpID0+IHtcbiAgICBjb25zdCB7IG9uU2VsZWN0LCB1cGRhdGVWYWx1ZSwgY3VycmVudFVzZXJJbnB1dFZhbHVlLCB1c2VySGFzRWRpdGVkQm9keSB9ID1cbiAgICAgIHRoaXMucHJvcHNcbiAgICBjb25zdCB7IGxhc3RVc2VyRWRpdGVkVmFsdWUgfSA9IHRoaXMuX2dldFN0YXRlRm9yQ3VycmVudE5hbWVzcGFjZSgpXG5cbiAgICBjb25zdCB2YWx1ZUZyb21FeGFtcGxlID0gdGhpcy5fZ2V0VmFsdWVGb3JFeGFtcGxlKGtleSlcblxuICAgIGlmIChrZXkgPT09IFwiX19NT0RJRklFRF9fVkFMVUVfX1wiKSB7XG4gICAgICB1cGRhdGVWYWx1ZShzdHJpbmdpZnlVbmxlc3NMaXN0KGxhc3RVc2VyRWRpdGVkVmFsdWUpKVxuICAgICAgcmV0dXJuIHRoaXMuX3NldFN0YXRlRm9yQ3VycmVudE5hbWVzcGFjZSh7XG4gICAgICAgIGlzTW9kaWZpZWRWYWx1ZVNlbGVjdGVkOiB0cnVlLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9uU2VsZWN0ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIG9uU2VsZWN0KGtleSwgeyBpc1N5bnRoZXRpY0NoYW5nZSB9LCAuLi5vdGhlckFyZ3MpXG4gICAgfVxuXG4gICAgdGhpcy5fc2V0U3RhdGVGb3JDdXJyZW50TmFtZXNwYWNlKHtcbiAgICAgIGxhc3REb3duc3RyZWFtVmFsdWU6IHZhbHVlRnJvbUV4YW1wbGUsXG4gICAgICBpc01vZGlmaWVkVmFsdWVTZWxlY3RlZDpcbiAgICAgICAgKGlzU3ludGhldGljQ2hhbmdlICYmIHVzZXJIYXNFZGl0ZWRCb2R5KSB8fFxuICAgICAgICAoISFjdXJyZW50VXNlcklucHV0VmFsdWUgJiYgY3VycmVudFVzZXJJbnB1dFZhbHVlICE9PSB2YWx1ZUZyb21FeGFtcGxlKSxcbiAgICB9KVxuXG4gICAgLy8gd2UgbmV2ZXIgd2FudCB0byBzZW5kIHVwIHZhbHVlIHVwZGF0ZXMgZnJvbSBzeW50aGV0aWMgY2hhbmdlc1xuICAgIGlmIChpc1N5bnRoZXRpY0NoYW5nZSkgcmV0dXJuXG5cbiAgICBpZiAodHlwZW9mIHVwZGF0ZVZhbHVlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHVwZGF0ZVZhbHVlKHN0cmluZ2lmeVVubGVzc0xpc3QodmFsdWVGcm9tRXhhbXBsZSkpXG4gICAgfVxuICB9XG5cbiAgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgLy8gdXBkYXRlIGBsYXN0VXNlckVkaXRlZFZhbHVlYCBhcyBuZXcgY3VycmVudFVzZXJJbnB1dCB2YWx1ZXMgY29tZSBpblxuXG4gICAgY29uc3Qge1xuICAgICAgY3VycmVudFVzZXJJbnB1dFZhbHVlOiBuZXdWYWx1ZSxcbiAgICAgIGV4YW1wbGVzLFxuICAgICAgb25TZWxlY3QsXG4gICAgICB1c2VySGFzRWRpdGVkQm9keSxcbiAgICB9ID0gbmV4dFByb3BzXG5cbiAgICBjb25zdCB7IGxhc3RVc2VyRWRpdGVkVmFsdWUsIGxhc3REb3duc3RyZWFtVmFsdWUgfSA9XG4gICAgICB0aGlzLl9nZXRTdGF0ZUZvckN1cnJlbnROYW1lc3BhY2UoKVxuXG4gICAgY29uc3QgdmFsdWVGcm9tQ3VycmVudEV4YW1wbGUgPSB0aGlzLl9nZXRWYWx1ZUZvckV4YW1wbGUoXG4gICAgICBuZXh0UHJvcHMuY3VycmVudEtleSxcbiAgICAgIG5leHRQcm9wc1xuICAgIClcblxuICAgIGNvbnN0IGV4YW1wbGVzTWF0Y2hpbmdOZXdWYWx1ZSA9IGV4YW1wbGVzLmZpbHRlcihcbiAgICAgIChleGFtcGxlKSA9PlxuICAgICAgICBNYXAuaXNNYXAoZXhhbXBsZSkgJiZcbiAgICAgICAgKGV4YW1wbGUuZ2V0KFwidmFsdWVcIikgPT09IG5ld1ZhbHVlIHx8XG4gICAgICAgICAgLy8gc29tZXRpbWVzIGRhdGEgaXMgc3RvcmVkIGFzIGEgc3RyaW5nIChlLmcuIGluIFJlcXVlc3QgQm9kaWVzKSwgc29cbiAgICAgICAgICAvLyBsZXQncyBjaGVjayBhZ2FpbnN0IGEgc3RyaW5naWZpZWQgdmVyc2lvbiBvZiBvdXIgZXhhbXBsZSB0b29cbiAgICAgICAgICBzdHJpbmdpZnkoZXhhbXBsZS5nZXQoXCJ2YWx1ZVwiKSkgPT09IG5ld1ZhbHVlKVxuICAgIClcblxuICAgIGlmIChleGFtcGxlc01hdGNoaW5nTmV3VmFsdWUuc2l6ZSkge1xuICAgICAgbGV0IGtleVxuICAgICAgaWYgKGV4YW1wbGVzTWF0Y2hpbmdOZXdWYWx1ZS5oYXMobmV4dFByb3BzLmN1cnJlbnRLZXkpKSB7XG4gICAgICAgIGtleSA9IG5leHRQcm9wcy5jdXJyZW50S2V5XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBrZXkgPSBleGFtcGxlc01hdGNoaW5nTmV3VmFsdWUua2V5U2VxKCkuZmlyc3QoKVxuICAgICAgfVxuICAgICAgb25TZWxlY3Qoa2V5LCB7XG4gICAgICAgIGlzU3ludGhldGljQ2hhbmdlOiB0cnVlLFxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgbmV3VmFsdWUgIT09IHRoaXMucHJvcHMuY3VycmVudFVzZXJJbnB1dFZhbHVlICYmIC8vIHZhbHVlIGhhcyBjaGFuZ2VkXG4gICAgICBuZXdWYWx1ZSAhPT0gbGFzdFVzZXJFZGl0ZWRWYWx1ZSAmJiAvLyB2YWx1ZSBpc24ndCBhbHJlYWR5IHRyYWNrZWRcbiAgICAgIG5ld1ZhbHVlICE9PSBsYXN0RG93bnN0cmVhbVZhbHVlIC8vIHZhbHVlIGlzbid0IHdoYXQgd2UndmUgc2VlbiBvbiB0aGUgb3RoZXIgc2lkZVxuICAgICkge1xuICAgICAgdGhpcy5wcm9wcy5zZXRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlRmxhZyh0cnVlKVxuICAgICAgdGhpcy5fc2V0U3RhdGVGb3JOYW1lc3BhY2UobmV4dFByb3BzLmN1cnJlbnROYW1lc3BhY2UsIHtcbiAgICAgICAgbGFzdFVzZXJFZGl0ZWRWYWx1ZTogbmV4dFByb3BzLmN1cnJlbnRVc2VySW5wdXRWYWx1ZSxcbiAgICAgICAgaXNNb2RpZmllZFZhbHVlU2VsZWN0ZWQ6XG4gICAgICAgICAgdXNlckhhc0VkaXRlZEJvZHkgfHwgbmV3VmFsdWUgIT09IHZhbHVlRnJvbUN1cnJlbnRFeGFtcGxlLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgY3VycmVudFVzZXJJbnB1dFZhbHVlLFxuICAgICAgZXhhbXBsZXMsXG4gICAgICBjdXJyZW50S2V5LFxuICAgICAgZ2V0Q29tcG9uZW50LFxuICAgICAgdXNlckhhc0VkaXRlZEJvZHksXG4gICAgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7XG4gICAgICBsYXN0RG93bnN0cmVhbVZhbHVlLFxuICAgICAgbGFzdFVzZXJFZGl0ZWRWYWx1ZSxcbiAgICAgIGlzTW9kaWZpZWRWYWx1ZVNlbGVjdGVkLFxuICAgIH0gPSB0aGlzLl9nZXRTdGF0ZUZvckN1cnJlbnROYW1lc3BhY2UoKVxuXG4gICAgY29uc3QgRXhhbXBsZXNTZWxlY3QgPSBnZXRDb21wb25lbnQoXCJFeGFtcGxlc1NlbGVjdFwiKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxFeGFtcGxlc1NlbGVjdFxuICAgICAgICBleGFtcGxlcz17ZXhhbXBsZXN9XG4gICAgICAgIGN1cnJlbnRFeGFtcGxlS2V5PXtjdXJyZW50S2V5fVxuICAgICAgICBvblNlbGVjdD17dGhpcy5fb25FeGFtcGxlc1NlbGVjdH1cbiAgICAgICAgaXNNb2RpZmllZFZhbHVlQXZhaWxhYmxlPXtcbiAgICAgICAgICAhIWxhc3RVc2VyRWRpdGVkVmFsdWUgJiYgbGFzdFVzZXJFZGl0ZWRWYWx1ZSAhPT0gbGFzdERvd25zdHJlYW1WYWx1ZVxuICAgICAgICB9XG4gICAgICAgIGlzVmFsdWVNb2RpZmllZD17XG4gICAgICAgICAgKGN1cnJlbnRVc2VySW5wdXRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBpc01vZGlmaWVkVmFsdWVTZWxlY3RlZCAmJlxuICAgICAgICAgICAgY3VycmVudFVzZXJJbnB1dFZhbHVlICE9PSB0aGlzLl9nZXRDdXJyZW50RXhhbXBsZVZhbHVlKCkpIHx8XG4gICAgICAgICAgdXNlckhhc0VkaXRlZEJvZHlcbiAgICAgICAgfVxuICAgICAgLz5cbiAgICApXG4gIH1cbn1cbiIsImltcG9ydCBwYXJzZVVybCBmcm9tIFwidXJsLXBhcnNlXCJcbmltcG9ydCBJbSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCB7IGJ0b2EsIGdlbmVyYXRlQ29kZVZlcmlmaWVyLCBjcmVhdGVDb2RlQ2hhbGxlbmdlIH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuaW1wb3J0IHsgc2FuaXRpemVVcmwgfSBmcm9tIFwiY29yZS91dGlscy91cmxcIlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhdXRob3JpemUgKCB7IGF1dGgsIGF1dGhBY3Rpb25zLCBlcnJBY3Rpb25zLCBjb25maWdzLCBhdXRoQ29uZmlncz17fSwgY3VycmVudFNlcnZlciB9ICkge1xuICBsZXQgeyBzY2hlbWEsIHNjb3BlcywgbmFtZSwgY2xpZW50SWQgfSA9IGF1dGhcbiAgbGV0IGZsb3cgPSBzY2hlbWEuZ2V0KFwiZmxvd1wiKVxuICBsZXQgcXVlcnkgPSBbXVxuXG4gIHN3aXRjaCAoZmxvdykge1xuICAgIGNhc2UgXCJwYXNzd29yZFwiOlxuICAgICAgYXV0aEFjdGlvbnMuYXV0aG9yaXplUGFzc3dvcmQoYXV0aClcbiAgICAgIHJldHVyblxuXG4gICAgY2FzZSBcImFwcGxpY2F0aW9uXCI6XG4gICAgICBhdXRoQWN0aW9ucy5hdXRob3JpemVBcHBsaWNhdGlvbihhdXRoKVxuICAgICAgcmV0dXJuXG5cbiAgICBjYXNlIFwiYWNjZXNzQ29kZVwiOlxuICAgICAgcXVlcnkucHVzaChcInJlc3BvbnNlX3R5cGU9Y29kZVwiKVxuICAgICAgYnJlYWtcblxuICAgIGNhc2UgXCJpbXBsaWNpdFwiOlxuICAgICAgcXVlcnkucHVzaChcInJlc3BvbnNlX3R5cGU9dG9rZW5cIilcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlIFwiY2xpZW50Q3JlZGVudGlhbHNcIjpcbiAgICBjYXNlIFwiY2xpZW50X2NyZWRlbnRpYWxzXCI6XG4gICAgICAvLyBPQVMzXG4gICAgICBhdXRoQWN0aW9ucy5hdXRob3JpemVBcHBsaWNhdGlvbihhdXRoKVxuICAgICAgcmV0dXJuXG5cbiAgICBjYXNlIFwiYXV0aG9yaXphdGlvbkNvZGVcIjpcbiAgICBjYXNlIFwiYXV0aG9yaXphdGlvbl9jb2RlXCI6XG4gICAgICAvLyBPQVMzXG4gICAgICBxdWVyeS5wdXNoKFwicmVzcG9uc2VfdHlwZT1jb2RlXCIpXG4gICAgICBicmVha1xuICB9XG5cbiAgaWYgKHR5cGVvZiBjbGllbnRJZCA9PT0gXCJzdHJpbmdcIikge1xuICAgIHF1ZXJ5LnB1c2goXCJjbGllbnRfaWQ9XCIgKyBlbmNvZGVVUklDb21wb25lbnQoY2xpZW50SWQpKVxuICB9XG5cbiAgbGV0IHJlZGlyZWN0VXJsID0gY29uZmlncy5vYXV0aDJSZWRpcmVjdFVybFxuXG4gIC8vIHRvZG8gbW92ZSB0byBwYXJzZXJcbiAgaWYgKHR5cGVvZiByZWRpcmVjdFVybCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGVyckFjdGlvbnMubmV3QXV0aEVycigge1xuICAgICAgYXV0aElkOiBuYW1lLFxuICAgICAgc291cmNlOiBcInZhbGlkYXRpb25cIixcbiAgICAgIGxldmVsOiBcImVycm9yXCIsXG4gICAgICBtZXNzYWdlOiBcIm9hdXRoMlJlZGlyZWN0VXJsIGNvbmZpZ3VyYXRpb24gaXMgbm90IHBhc3NlZC4gT2F1dGgyIGF1dGhvcml6YXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZC5cIlxuICAgIH0pXG4gICAgcmV0dXJuXG4gIH1cbiAgcXVlcnkucHVzaChcInJlZGlyZWN0X3VyaT1cIiArIGVuY29kZVVSSUNvbXBvbmVudChyZWRpcmVjdFVybCkpXG5cbiAgbGV0IHNjb3Blc0FycmF5ID0gW11cbiAgaWYgKEFycmF5LmlzQXJyYXkoc2NvcGVzKSkge1xuICAgIHNjb3Blc0FycmF5ID0gc2NvcGVzXG4gIH0gZWxzZSBpZiAoSW0uTGlzdC5pc0xpc3Qoc2NvcGVzKSkge1xuICAgIHNjb3Blc0FycmF5ID0gc2NvcGVzLnRvQXJyYXkoKVxuICB9XG5cbiAgaWYgKHNjb3Blc0FycmF5Lmxlbmd0aCA+IDApIHtcbiAgICBsZXQgc2NvcGVTZXBhcmF0b3IgPSBhdXRoQ29uZmlncy5zY29wZVNlcGFyYXRvciB8fCBcIiBcIlxuXG4gICAgcXVlcnkucHVzaChcInNjb3BlPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHNjb3Blc0FycmF5LmpvaW4oc2NvcGVTZXBhcmF0b3IpKSlcbiAgfVxuXG4gIGxldCBzdGF0ZSA9IGJ0b2EobmV3IERhdGUoKSlcblxuICBxdWVyeS5wdXNoKFwic3RhdGU9XCIgKyBlbmNvZGVVUklDb21wb25lbnQoc3RhdGUpKVxuXG4gIGlmICh0eXBlb2YgYXV0aENvbmZpZ3MucmVhbG0gIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBxdWVyeS5wdXNoKFwicmVhbG09XCIgKyBlbmNvZGVVUklDb21wb25lbnQoYXV0aENvbmZpZ3MucmVhbG0pKVxuICB9XG5cbiAgaWYgKChmbG93ID09PSBcImF1dGhvcml6YXRpb25Db2RlXCIgfHwgZmxvdyA9PT0gXCJhdXRob3JpemF0aW9uX2NvZGVcIiB8fCBmbG93ID09PSBcImFjY2Vzc0NvZGVcIikgJiYgYXV0aENvbmZpZ3MudXNlUGtjZVdpdGhBdXRob3JpemF0aW9uQ29kZUdyYW50KSB7XG4gICAgICBjb25zdCBjb2RlVmVyaWZpZXIgPSBnZW5lcmF0ZUNvZGVWZXJpZmllcigpXG4gICAgICBjb25zdCBjb2RlQ2hhbGxlbmdlID0gY3JlYXRlQ29kZUNoYWxsZW5nZShjb2RlVmVyaWZpZXIpXG5cbiAgICAgIHF1ZXJ5LnB1c2goXCJjb2RlX2NoYWxsZW5nZT1cIiArIGNvZGVDaGFsbGVuZ2UpXG4gICAgICBxdWVyeS5wdXNoKFwiY29kZV9jaGFsbGVuZ2VfbWV0aG9kPVMyNTZcIilcblxuICAgICAgLy8gc3RvcmluZyB0aGUgQ29kZSBWZXJpZmllciBzbyBpdCBjYW4gYmUgc2VudCB0byB0aGUgdG9rZW4gZW5kcG9pbnRcbiAgICAgIC8vIHdoZW4gZXhjaGFuZ2luZyB0aGUgQXV0aG9yaXphdGlvbiBDb2RlIGZvciBhbiBBY2Nlc3MgVG9rZW5cbiAgICAgIGF1dGguY29kZVZlcmlmaWVyID0gY29kZVZlcmlmaWVyXG4gIH1cblxuICBsZXQgeyBhZGRpdGlvbmFsUXVlcnlTdHJpbmdQYXJhbXMgfSA9IGF1dGhDb25maWdzXG5cbiAgZm9yIChsZXQga2V5IGluIGFkZGl0aW9uYWxRdWVyeVN0cmluZ1BhcmFtcykge1xuICAgIGlmICh0eXBlb2YgYWRkaXRpb25hbFF1ZXJ5U3RyaW5nUGFyYW1zW2tleV0gIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHF1ZXJ5LnB1c2goW2tleSwgYWRkaXRpb25hbFF1ZXJ5U3RyaW5nUGFyYW1zW2tleV1dLm1hcChlbmNvZGVVUklDb21wb25lbnQpLmpvaW4oXCI9XCIpKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGF1dGhvcml6YXRpb25VcmwgPSBzY2hlbWEuZ2V0KFwiYXV0aG9yaXphdGlvblVybFwiKVxuICBsZXQgc2FuaXRpemVkQXV0aG9yaXphdGlvblVybFxuICBpZiAoY3VycmVudFNlcnZlcikge1xuICAgIC8vIE9wZW5BUEkgM1xuICAgIHNhbml0aXplZEF1dGhvcml6YXRpb25VcmwgPSBwYXJzZVVybChcbiAgICAgIHNhbml0aXplVXJsKGF1dGhvcml6YXRpb25VcmwpLFxuICAgICAgY3VycmVudFNlcnZlcixcbiAgICAgIHRydWVcbiAgICApLnRvU3RyaW5nKClcbiAgfSBlbHNlIHtcbiAgICBzYW5pdGl6ZWRBdXRob3JpemF0aW9uVXJsID0gc2FuaXRpemVVcmwoYXV0aG9yaXphdGlvblVybClcbiAgfVxuICBsZXQgdXJsID0gW3Nhbml0aXplZEF1dGhvcml6YXRpb25VcmwsIHF1ZXJ5LmpvaW4oXCImXCIpXS5qb2luKFxuICAgIHR5cGVvZiBhdXRob3JpemF0aW9uVXJsID09PSBcInN0cmluZ1wiICYmICFhdXRob3JpemF0aW9uVXJsLmluY2x1ZGVzKFwiP1wiKVxuICAgICAgPyBcIj9cIlxuICAgICAgOiBcIiZcIlxuICApXG5cbiAgLy8gcGFzcyBhY3Rpb24gYXV0aG9yaXplT2F1dGgyIGFuZCBhdXRoZW50aWNhdGlvbiBkYXRhIHRocm91Z2ggd2luZG93XG4gIC8vIHRvIGF1dGhvcml6ZSB3aXRoIG9hdXRoMlxuXG4gIGxldCBjYWxsYmFja1xuICBpZiAoZmxvdyA9PT0gXCJpbXBsaWNpdFwiKSB7XG4gICAgY2FsbGJhY2sgPSBhdXRoQWN0aW9ucy5wcmVBdXRob3JpemVJbXBsaWNpdFxuICB9IGVsc2UgaWYgKGF1dGhDb25maWdzLnVzZUJhc2ljQXV0aGVudGljYXRpb25XaXRoQWNjZXNzQ29kZUdyYW50KSB7XG4gICAgY2FsbGJhY2sgPSBhdXRoQWN0aW9ucy5hdXRob3JpemVBY2Nlc3NDb2RlV2l0aEJhc2ljQXV0aGVudGljYXRpb25cbiAgfSBlbHNlIHtcbiAgICBjYWxsYmFjayA9IGF1dGhBY3Rpb25zLmF1dGhvcml6ZUFjY2Vzc0NvZGVXaXRoRm9ybVBhcmFtc1xuICB9XG5cbiAgYXV0aEFjdGlvbnMuYXV0aFBvcHVwKHVybCwge1xuICAgIGF1dGg6IGF1dGgsXG4gICAgc3RhdGU6IHN0YXRlLFxuICAgIHJlZGlyZWN0VXJsOiByZWRpcmVjdFVybCxcbiAgICBjYWxsYmFjazogY2FsbGJhY2ssXG4gICAgZXJyQ2I6IGVyckFjdGlvbnMubmV3QXV0aEVyclxuICB9KVxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBvYXV0aDJBdXRob3JpemUgZnJvbSBcImNvcmUvb2F1dGgyLWF1dGhvcml6ZVwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE9hdXRoMiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBhdXRob3JpemVkOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzY2hlbWE6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBhdXRoU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgYXV0aEFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBlcnJTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBvYXMzU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGVyckFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBnZXRDb25maWdzOiBQcm9wVHlwZXMuYW55XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm9wcywgY29udGV4dCkge1xuICAgIHN1cGVyKHByb3BzLCBjb250ZXh0KVxuICAgIGxldCB7IG5hbWUsIHNjaGVtYSwgYXV0aG9yaXplZCwgYXV0aFNlbGVjdG9ycyB9ID0gdGhpcy5wcm9wc1xuICAgIGxldCBhdXRoID0gYXV0aG9yaXplZCAmJiBhdXRob3JpemVkLmdldChuYW1lKVxuICAgIGxldCBhdXRoQ29uZmlncyA9IGF1dGhTZWxlY3RvcnMuZ2V0Q29uZmlncygpIHx8IHt9XG4gICAgbGV0IHVzZXJuYW1lID0gYXV0aCAmJiBhdXRoLmdldChcInVzZXJuYW1lXCIpIHx8IFwiXCJcbiAgICBsZXQgY2xpZW50SWQgPSBhdXRoICYmIGF1dGguZ2V0KFwiY2xpZW50SWRcIikgfHwgYXV0aENvbmZpZ3MuY2xpZW50SWQgfHwgXCJcIlxuICAgIGxldCBjbGllbnRTZWNyZXQgPSBhdXRoICYmIGF1dGguZ2V0KFwiY2xpZW50U2VjcmV0XCIpIHx8IGF1dGhDb25maWdzLmNsaWVudFNlY3JldCB8fCBcIlwiXG4gICAgbGV0IHBhc3N3b3JkVHlwZSA9IGF1dGggJiYgYXV0aC5nZXQoXCJwYXNzd29yZFR5cGVcIikgfHwgXCJiYXNpY1wiXG4gICAgbGV0IHNjb3BlcyA9IGF1dGggJiYgYXV0aC5nZXQoXCJzY29wZXNcIikgfHwgYXV0aENvbmZpZ3Muc2NvcGVzIHx8IFtdXG4gICAgaWYgKHR5cGVvZiBzY29wZXMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHNjb3BlcyA9IHNjb3Blcy5zcGxpdChhdXRoQ29uZmlncy5zY29wZVNlcGFyYXRvciB8fCBcIiBcIilcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgYXBwTmFtZTogYXV0aENvbmZpZ3MuYXBwTmFtZSxcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICBzY2hlbWE6IHNjaGVtYSxcbiAgICAgIHNjb3Blczogc2NvcGVzLFxuICAgICAgY2xpZW50SWQ6IGNsaWVudElkLFxuICAgICAgY2xpZW50U2VjcmV0OiBjbGllbnRTZWNyZXQsXG4gICAgICB1c2VybmFtZTogdXNlcm5hbWUsXG4gICAgICBwYXNzd29yZDogXCJcIixcbiAgICAgIHBhc3N3b3JkVHlwZTogcGFzc3dvcmRUeXBlXG4gICAgfVxuICB9XG5cbiAgY2xvc2UgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGxldCB7IGF1dGhBY3Rpb25zIH0gPSB0aGlzLnByb3BzXG5cbiAgICBhdXRoQWN0aW9ucy5zaG93RGVmaW5pdGlvbnMoZmFsc2UpXG4gIH1cblxuICBhdXRob3JpemUgPSgpID0+IHtcbiAgICBsZXQgeyBhdXRoQWN0aW9ucywgZXJyQWN0aW9ucywgZ2V0Q29uZmlncywgYXV0aFNlbGVjdG9ycywgb2FzM1NlbGVjdG9ycyB9ID0gdGhpcy5wcm9wc1xuICAgIGxldCBjb25maWdzID0gZ2V0Q29uZmlncygpXG4gICAgbGV0IGF1dGhDb25maWdzID0gYXV0aFNlbGVjdG9ycy5nZXRDb25maWdzKClcblxuICAgIGVyckFjdGlvbnMuY2xlYXIoe2F1dGhJZDogbmFtZSx0eXBlOiBcImF1dGhcIiwgc291cmNlOiBcImF1dGhcIn0pXG4gICAgb2F1dGgyQXV0aG9yaXplKHtcbiAgICAgIGF1dGg6IHRoaXMuc3RhdGUsXG4gICAgICBjdXJyZW50U2VydmVyOiBvYXMzU2VsZWN0b3JzLnNlcnZlckVmZmVjdGl2ZVZhbHVlKG9hczNTZWxlY3RvcnMuc2VsZWN0ZWRTZXJ2ZXIoKSksXG4gICAgICBhdXRoQWN0aW9ucyxcbiAgICAgIGVyckFjdGlvbnMsXG4gICAgICBjb25maWdzLFxuICAgICAgYXV0aENvbmZpZ3NcbiAgICB9KVxuICB9XG5cbiAgb25TY29wZUNoYW5nZSA9KGUpID0+IHtcbiAgICBsZXQgeyB0YXJnZXQgfSA9IGVcbiAgICBsZXQgeyBjaGVja2VkIH0gPSB0YXJnZXRcbiAgICBsZXQgc2NvcGUgPSB0YXJnZXQuZGF0YXNldC52YWx1ZVxuXG4gICAgaWYgKCBjaGVja2VkICYmIHRoaXMuc3RhdGUuc2NvcGVzLmluZGV4T2Yoc2NvcGUpID09PSAtMSApIHtcbiAgICAgIGxldCBuZXdTY29wZXMgPSB0aGlzLnN0YXRlLnNjb3Blcy5jb25jYXQoW3Njb3BlXSlcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBzY29wZXM6IG5ld1Njb3BlcyB9KVxuICAgIH0gZWxzZSBpZiAoICFjaGVja2VkICYmIHRoaXMuc3RhdGUuc2NvcGVzLmluZGV4T2Yoc2NvcGUpID4gLTEpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBzY29wZXM6IHRoaXMuc3RhdGUuc2NvcGVzLmZpbHRlcigodmFsKSA9PiB2YWwgIT09IHNjb3BlKSB9KVxuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXRDaGFuZ2UgPShlKSA9PiB7XG4gICAgbGV0IHsgdGFyZ2V0IDogeyBkYXRhc2V0IDogeyBuYW1lIH0sIHZhbHVlIH0gfSA9IGVcbiAgICBsZXQgc3RhdGUgPSB7XG4gICAgICBbbmFtZV06IHZhbHVlXG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdGF0ZShzdGF0ZSlcbiAgfVxuXG4gIHNlbGVjdFNjb3BlcyA9KGUpID0+IHtcbiAgICBpZiAoZS50YXJnZXQuZGF0YXNldC5hbGwpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBzY29wZXM6IEFycmF5LmZyb20oKHRoaXMucHJvcHMuc2NoZW1hLmdldChcImFsbG93ZWRTY29wZXNcIikgfHwgdGhpcy5wcm9wcy5zY2hlbWEuZ2V0KFwic2NvcGVzXCIpKS5rZXlzKCkpXG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgc2NvcGVzOiBbXSB9KVxuICAgIH1cbiAgfVxuXG4gIGxvZ291dCA9KGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBsZXQgeyBhdXRoQWN0aW9ucywgZXJyQWN0aW9ucywgbmFtZSB9ID0gdGhpcy5wcm9wc1xuXG4gICAgZXJyQWN0aW9ucy5jbGVhcih7YXV0aElkOiBuYW1lLCB0eXBlOiBcImF1dGhcIiwgc291cmNlOiBcImF1dGhcIn0pXG4gICAgYXV0aEFjdGlvbnMubG9nb3V0V2l0aFBlcnNpc3RPcHRpb24oWyBuYW1lIF0pXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHtcbiAgICAgIHNjaGVtYSwgZ2V0Q29tcG9uZW50LCBhdXRoU2VsZWN0b3JzLCBlcnJTZWxlY3RvcnMsIG5hbWUsIHNwZWNTZWxlY3RvcnNcbiAgICB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IElucHV0ID0gZ2V0Q29tcG9uZW50KFwiSW5wdXRcIilcbiAgICBjb25zdCBSb3cgPSBnZXRDb21wb25lbnQoXCJSb3dcIilcbiAgICBjb25zdCBDb2wgPSBnZXRDb21wb25lbnQoXCJDb2xcIilcbiAgICBjb25zdCBCdXR0b24gPSBnZXRDb21wb25lbnQoXCJCdXR0b25cIilcbiAgICBjb25zdCBBdXRoRXJyb3IgPSBnZXRDb21wb25lbnQoXCJhdXRoRXJyb3JcIilcbiAgICBjb25zdCBKdW1wVG9QYXRoID0gZ2V0Q29tcG9uZW50KFwiSnVtcFRvUGF0aFwiLCB0cnVlKVxuICAgIGNvbnN0IE1hcmtkb3duID0gZ2V0Q29tcG9uZW50KFwiTWFya2Rvd25cIiwgdHJ1ZSlcbiAgICBjb25zdCBJbml0aWFsaXplZElucHV0ID0gZ2V0Q29tcG9uZW50KFwiSW5pdGlhbGl6ZWRJbnB1dFwiKVxuXG4gICAgY29uc3QgeyBpc09BUzMgfSA9IHNwZWNTZWxlY3RvcnNcblxuICAgIGxldCBvaWRjVXJsID0gaXNPQVMzKCkgPyBzY2hlbWEuZ2V0KFwib3BlbklkQ29ubmVjdFVybFwiKSA6IG51bGxcblxuICAgIC8vIEF1dGggdHlwZSBjb25zdHNcbiAgICBjb25zdCBBVVRIX0ZMT1dfSU1QTElDSVQgPSBcImltcGxpY2l0XCJcbiAgICBjb25zdCBBVVRIX0ZMT1dfUEFTU1dPUkQgPSBcInBhc3N3b3JkXCJcbiAgICBjb25zdCBBVVRIX0ZMT1dfQUNDRVNTX0NPREUgPSBpc09BUzMoKSA/IChvaWRjVXJsID8gXCJhdXRob3JpemF0aW9uX2NvZGVcIiA6IFwiYXV0aG9yaXphdGlvbkNvZGVcIikgOiBcImFjY2Vzc0NvZGVcIlxuICAgIGNvbnN0IEFVVEhfRkxPV19BUFBMSUNBVElPTiA9IGlzT0FTMygpID8gKG9pZGNVcmwgPyBcImNsaWVudF9jcmVkZW50aWFsc1wiIDogXCJjbGllbnRDcmVkZW50aWFsc1wiKSA6IFwiYXBwbGljYXRpb25cIlxuXG4gICAgY29uc3QgcGF0aCA9IGF1dGhTZWxlY3RvcnMuc2VsZWN0QXV0aFBhdGgobmFtZSlcblxuICAgIGxldCBhdXRoQ29uZmlncyA9IGF1dGhTZWxlY3RvcnMuZ2V0Q29uZmlncygpIHx8IHt9XG4gICAgbGV0IGlzUGtjZUNvZGVHcmFudCA9ICEhYXV0aENvbmZpZ3MudXNlUGtjZVdpdGhBdXRob3JpemF0aW9uQ29kZUdyYW50XG5cbiAgICBsZXQgZmxvdyA9IHNjaGVtYS5nZXQoXCJmbG93XCIpXG4gICAgbGV0IGZsb3dUb0Rpc3BsYXkgPSBmbG93ID09PSBBVVRIX0ZMT1dfQUNDRVNTX0NPREUgJiYgaXNQa2NlQ29kZUdyYW50ID8gZmxvdyArIFwiIHdpdGggUEtDRVwiIDogZmxvd1xuICAgIGxldCBzY29wZXMgPSBzY2hlbWEuZ2V0KFwiYWxsb3dlZFNjb3Blc1wiKSB8fCBzY2hlbWEuZ2V0KFwic2NvcGVzXCIpXG4gICAgbGV0IGF1dGhvcml6ZWRBdXRoID0gYXV0aFNlbGVjdG9ycy5hdXRob3JpemVkKCkuZ2V0KG5hbWUpXG4gICAgbGV0IGlzQXV0aG9yaXplZCA9ICEhYXV0aG9yaXplZEF1dGhcbiAgICBsZXQgZXJyb3JzID0gZXJyU2VsZWN0b3JzLmFsbEVycm9ycygpLmZpbHRlciggZXJyID0+IGVyci5nZXQoXCJhdXRoSWRcIikgPT09IG5hbWUpXG4gICAgbGV0IGlzVmFsaWQgPSAhZXJyb3JzLmZpbHRlciggZXJyID0+IGVyci5nZXQoXCJzb3VyY2VcIikgPT09IFwidmFsaWRhdGlvblwiKS5zaXplXG4gICAgbGV0IGRlc2NyaXB0aW9uID0gc2NoZW1hLmdldChcImRlc2NyaXB0aW9uXCIpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPGg0PntuYW1lfSAoT0F1dGgyLCB7IGZsb3dUb0Rpc3BsYXkgfSkgPEp1bXBUb1BhdGggcGF0aD17cGF0aH0gLz48L2g0PlxuICAgICAgICB7ICF0aGlzLnN0YXRlLmFwcE5hbWUgPyBudWxsIDogPGg1PkFwcGxpY2F0aW9uOiB7IHRoaXMuc3RhdGUuYXBwTmFtZSB9IDwvaDU+IH1cbiAgICAgICAgeyBkZXNjcmlwdGlvbiAmJiA8TWFya2Rvd24gc291cmNlPXsgc2NoZW1hLmdldChcImRlc2NyaXB0aW9uXCIpIH0gLz4gfVxuXG4gICAgICAgIHsgaXNBdXRob3JpemVkICYmIDxoNj5BdXRob3JpemVkPC9oNj4gfVxuXG4gICAgICAgIHsgb2lkY1VybCAmJiA8cD5PcGVuSUQgQ29ubmVjdCBVUkw6IDxjb2RlPnsgb2lkY1VybCB9PC9jb2RlPjwvcD4gfVxuICAgICAgICB7ICggZmxvdyA9PT0gQVVUSF9GTE9XX0lNUExJQ0lUIHx8IGZsb3cgPT09IEFVVEhfRkxPV19BQ0NFU1NfQ09ERSApICYmIDxwPkF1dGhvcml6YXRpb24gVVJMOiA8Y29kZT57IHNjaGVtYS5nZXQoXCJhdXRob3JpemF0aW9uVXJsXCIpIH08L2NvZGU+PC9wPiB9XG4gICAgICAgIHsgKCBmbG93ID09PSBBVVRIX0ZMT1dfUEFTU1dPUkQgfHwgZmxvdyA9PT0gQVVUSF9GTE9XX0FDQ0VTU19DT0RFIHx8IGZsb3cgPT09IEFVVEhfRkxPV19BUFBMSUNBVElPTiApICYmIDxwPlRva2VuIFVSTDo8Y29kZT4geyBzY2hlbWEuZ2V0KFwidG9rZW5VcmxcIikgfTwvY29kZT48L3A+IH1cbiAgICAgICAgPHAgY2xhc3NOYW1lPVwiZmxvd1wiPkZsb3c6IDxjb2RlPnsgZmxvd1RvRGlzcGxheSB9PC9jb2RlPjwvcD5cblxuICAgICAgICB7XG4gICAgICAgICAgZmxvdyAhPT0gQVVUSF9GTE9XX1BBU1NXT1JEID8gbnVsbFxuICAgICAgICAgICAgOiA8Um93PlxuICAgICAgICAgICAgICA8Um93PlxuICAgICAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwib2F1dGhfdXNlcm5hbWVcIj51c2VybmFtZTo8L2xhYmVsPlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGlzQXV0aG9yaXplZCA/IDxjb2RlPiB7IHRoaXMuc3RhdGUudXNlcm5hbWUgfSA8L2NvZGU+XG4gICAgICAgICAgICAgICAgICAgIDogPENvbCB0YWJsZXQ9ezEwfSBkZXNrdG9wPXsxMH0+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwib2F1dGhfdXNlcm5hbWVcIiB0eXBlPVwidGV4dFwiIGRhdGEtbmFtZT1cInVzZXJuYW1lXCIgb25DaGFuZ2U9eyB0aGlzLm9uSW5wdXRDaGFuZ2UgfSBhdXRvRm9jdXMvPlxuICAgICAgICAgICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvUm93PlxuICAgICAgICAgICAgICB7XG5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8Um93PlxuICAgICAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwib2F1dGhfcGFzc3dvcmRcIj5wYXNzd29yZDo8L2xhYmVsPlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGlzQXV0aG9yaXplZCA/IDxjb2RlPiAqKioqKiogPC9jb2RlPlxuICAgICAgICAgICAgICAgICAgICA6IDxDb2wgdGFibGV0PXsxMH0gZGVza3RvcD17MTB9PlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cIm9hdXRoX3Bhc3N3b3JkXCIgdHlwZT1cInBhc3N3b3JkXCIgZGF0YS1uYW1lPVwicGFzc3dvcmRcIiBvbkNoYW5nZT17IHRoaXMub25JbnB1dENoYW5nZSB9Lz5cbiAgICAgICAgICAgICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L1Jvdz5cbiAgICAgICAgICAgICAgPFJvdz5cbiAgICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cInBhc3N3b3JkX3R5cGVcIj5DbGllbnQgY3JlZGVudGlhbHMgbG9jYXRpb246PC9sYWJlbD5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBpc0F1dGhvcml6ZWQgPyA8Y29kZT4geyB0aGlzLnN0YXRlLnBhc3N3b3JkVHlwZSB9IDwvY29kZT5cbiAgICAgICAgICAgICAgICAgICAgOiA8Q29sIHRhYmxldD17MTB9IGRlc2t0b3A9ezEwfT5cbiAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGlkPVwicGFzc3dvcmRfdHlwZVwiIGRhdGEtbmFtZT1cInBhc3N3b3JkVHlwZVwiIG9uQ2hhbmdlPXsgdGhpcy5vbklucHV0Q2hhbmdlIH0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiYmFzaWNcIj5BdXRob3JpemF0aW9uIGhlYWRlcjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInJlcXVlc3QtYm9keVwiPlJlcXVlc3QgYm9keTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvUm93PlxuICAgICAgICAgICAgPC9Sb3c+XG4gICAgICAgIH1cbiAgICAgICAge1xuICAgICAgICAgICggZmxvdyA9PT0gQVVUSF9GTE9XX0FQUExJQ0FUSU9OIHx8IGZsb3cgPT09IEFVVEhfRkxPV19JTVBMSUNJVCB8fCBmbG93ID09PSBBVVRIX0ZMT1dfQUNDRVNTX0NPREUgfHwgZmxvdyA9PT0gQVVUSF9GTE9XX1BBU1NXT1JEICkgJiZcbiAgICAgICAgICAoICFpc0F1dGhvcml6ZWQgfHwgaXNBdXRob3JpemVkICYmIHRoaXMuc3RhdGUuY2xpZW50SWQpICYmIDxSb3c+XG4gICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj17IGBjbGllbnRfaWRfJHtmbG93fWAgfT5jbGllbnRfaWQ6PC9sYWJlbD5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaXNBdXRob3JpemVkID8gPGNvZGU+ICoqKioqKiA8L2NvZGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICA6IDxDb2wgdGFibGV0PXsxMH0gZGVza3RvcD17MTB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbml0aWFsaXplZElucHV0IGlkPXtgY2xpZW50X2lkXyR7Zmxvd31gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXsgZmxvdyA9PT0gQVVUSF9GTE9XX1BBU1NXT1JEIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlPXsgdGhpcy5zdGF0ZS5jbGllbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbmFtZT1cImNsaWVudElkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyB0aGlzLm9uSW5wdXRDaGFuZ2UgfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvUm93PlxuICAgICAgICB9XG5cbiAgICAgICAge1xuICAgICAgICAgICggKGZsb3cgPT09IEFVVEhfRkxPV19BUFBMSUNBVElPTiB8fCBmbG93ID09PSBBVVRIX0ZMT1dfQUNDRVNTX0NPREUgfHwgZmxvdyA9PT0gQVVUSF9GTE9XX1BBU1NXT1JEKSAmJiA8Um93PlxuICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9eyBgY2xpZW50X3NlY3JldF8ke2Zsb3d9YCB9PmNsaWVudF9zZWNyZXQ6PC9sYWJlbD5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaXNBdXRob3JpemVkID8gPGNvZGU+ICoqKioqKiA8L2NvZGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICA6IDxDb2wgdGFibGV0PXsxMH0gZGVza3RvcD17MTB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbml0aWFsaXplZElucHV0IGlkPXsgYGNsaWVudF9zZWNyZXRfJHtmbG93fWAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWU9eyB0aGlzLnN0YXRlLmNsaWVudFNlY3JldCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbmFtZT1cImNsaWVudFNlY3JldFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsgdGhpcy5vbklucHV0Q2hhbmdlIH0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIDwvUm93PlxuICAgICAgICApfVxuXG4gICAgICAgIHtcbiAgICAgICAgICAhaXNBdXRob3JpemVkICYmIHNjb3BlcyAmJiBzY29wZXMuc2l6ZSA/IDxkaXYgY2xhc3NOYW1lPVwic2NvcGVzXCI+XG4gICAgICAgICAgICA8aDI+XG4gICAgICAgICAgICAgIFNjb3BlczpcbiAgICAgICAgICAgICAgPGEgb25DbGljaz17dGhpcy5zZWxlY3RTY29wZXN9IGRhdGEtYWxsPXt0cnVlfT5zZWxlY3QgYWxsPC9hPlxuICAgICAgICAgICAgICA8YSBvbkNsaWNrPXt0aGlzLnNlbGVjdFNjb3Blc30+c2VsZWN0IG5vbmU8L2E+XG4gICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgeyBzY29wZXMubWFwKChkZXNjcmlwdGlvbiwgbmFtZSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxSb3cga2V5PXsgbmFtZSB9PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjaGVja2JveFwiPlxuICAgICAgICAgICAgICAgICAgICA8SW5wdXQgZGF0YS12YWx1ZT17IG5hbWUgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17YCR7bmFtZX0tJHtmbG93fS1jaGVja2JveC0ke3RoaXMuc3RhdGUubmFtZX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyBpc0F1dGhvcml6ZWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17IHRoaXMuc3RhdGUuc2NvcGVzLmluY2x1ZGVzKG5hbWUpIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17IHRoaXMub25TY29wZUNoYW5nZSB9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj17YCR7bmFtZX0tJHtmbG93fS1jaGVja2JveC0ke3RoaXMuc3RhdGUubmFtZX1gfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIml0ZW1cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwibmFtZVwiPntuYW1lfTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZGVzY3JpcHRpb25cIj57ZGVzY3JpcHRpb259PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvUm93PlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH0pLnRvQXJyYXkoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PiA6IG51bGxcbiAgICAgICAgfVxuXG4gICAgICAgIHtcbiAgICAgICAgICBlcnJvcnMudmFsdWVTZXEoKS5tYXAoIChlcnJvciwga2V5KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gPEF1dGhFcnJvciBlcnJvcj17IGVycm9yIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17IGtleSB9Lz5cbiAgICAgICAgICB9IClcbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImF1dGgtYnRuLXdyYXBwZXJcIj5cbiAgICAgICAgeyBpc1ZhbGlkICYmXG4gICAgICAgICAgKCBpc0F1dGhvcml6ZWQgPyA8QnV0dG9uIGNsYXNzTmFtZT1cImJ0biBtb2RhbC1idG4gYXV0aCBhdXRob3JpemVcIiBvbkNsaWNrPXsgdGhpcy5sb2dvdXQgfSBhcmlhLWxhYmVsPVwiUmVtb3ZlIGF1dGhvcml6YXRpb25cIj5Mb2dvdXQ8L0J1dHRvbj5cbiAgICAgICAgOiA8QnV0dG9uIGNsYXNzTmFtZT1cImJ0biBtb2RhbC1idG4gYXV0aCBhdXRob3JpemVcIiBvbkNsaWNrPXsgdGhpcy5hdXRob3JpemUgfSBhcmlhLWxhYmVsPVwiQXBwbHkgZ2l2ZW4gT0F1dGgyIGNyZWRlbnRpYWxzXCI+QXV0aG9yaXplPC9CdXR0b24+XG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgICAgPEJ1dHRvbiBjbGFzc05hbWU9XCJidG4gbW9kYWwtYnRuIGF1dGggYnRuLWRvbmVcIiBvbkNsaWNrPXsgdGhpcy5jbG9zZSB9PkNsb3NlPC9CdXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENsZWFyIGV4dGVuZHMgQ29tcG9uZW50IHtcblxuICBvbkNsaWNrID0oKSA9PiB7XG4gICAgbGV0IHsgc3BlY0FjdGlvbnMsIHBhdGgsIG1ldGhvZCB9ID0gdGhpcy5wcm9wc1xuICAgIHNwZWNBY3Rpb25zLmNsZWFyUmVzcG9uc2UoIHBhdGgsIG1ldGhvZCApXG4gICAgc3BlY0FjdGlvbnMuY2xlYXJSZXF1ZXN0KCBwYXRoLCBtZXRob2QgKVxuICB9XG5cbiAgcmVuZGVyKCl7XG4gICAgcmV0dXJuIChcbiAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYnRuIGJ0bi1jbGVhciBvcGJsb2NrLWNvbnRyb2xfX2J0blwiIG9uQ2xpY2s9eyB0aGlzLm9uQ2xpY2sgfT5cbiAgICAgICAgQ2xlYXJcbiAgICAgIDwvYnV0dG9uPlxuICAgIClcbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgc3BlY0FjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBwYXRoOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgbWV0aG9kOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuXG5jb25zdCBIZWFkZXJzID0gKCB7IGhlYWRlcnMgfSApPT57XG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIDxoNT5SZXNwb25zZSBoZWFkZXJzPC9oNT5cbiAgICAgIDxwcmUgY2xhc3NOYW1lPVwibWljcm9saWdodFwiPntoZWFkZXJzfTwvcHJlPlxuICAgIDwvZGl2Pilcbn1cbkhlYWRlcnMucHJvcFR5cGVzID0ge1xuICBoZWFkZXJzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZFxufVxuXG5jb25zdCBEdXJhdGlvbiA9ICggeyBkdXJhdGlvbiB9ICkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICA8aDU+UmVxdWVzdCBkdXJhdGlvbjwvaDU+XG4gICAgICA8cHJlIGNsYXNzTmFtZT1cIm1pY3JvbGlnaHRcIj57ZHVyYXRpb259IG1zPC9wcmU+XG4gICAgPC9kaXY+XG4gIClcbn1cbkR1cmF0aW9uLnByb3BUeXBlcyA9IHtcbiAgZHVyYXRpb246IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZFxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExpdmVSZXNwb25zZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgcmVzcG9uc2U6IEltUHJvcFR5cGVzLm1hcCxcbiAgICBwYXRoOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgbWV0aG9kOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgZGlzcGxheVJlcXVlc3REdXJhdGlvbjogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGdldENvbmZpZ3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbiAgfVxuXG4gIHNob3VsZENvbXBvbmVudFVwZGF0ZShuZXh0UHJvcHMpIHtcbiAgICAvLyBCVUc6IHByb3BzLnJlc3BvbnNlIGlzIGFsd2F5cyBjb21pbmcgYmFjayBhcyBhIG5ldyBJbW11dGFibGUgaW5zdGFuY2VcbiAgICAvLyBzYW1lIGlzc3VlIGFzIHJlc3BvbnNlcy5qc3ggKHRyeUl0T3V0UmVzcG9uc2UpXG4gICAgcmV0dXJuIHRoaXMucHJvcHMucmVzcG9uc2UgIT09IG5leHRQcm9wcy5yZXNwb25zZVxuICAgICAgfHwgdGhpcy5wcm9wcy5wYXRoICE9PSBuZXh0UHJvcHMucGF0aFxuICAgICAgfHwgdGhpcy5wcm9wcy5tZXRob2QgIT09IG5leHRQcm9wcy5tZXRob2RcbiAgICAgIHx8IHRoaXMucHJvcHMuZGlzcGxheVJlcXVlc3REdXJhdGlvbiAhPT0gbmV4dFByb3BzLmRpc3BsYXlSZXF1ZXN0RHVyYXRpb25cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IHJlc3BvbnNlLCBnZXRDb21wb25lbnQsIGdldENvbmZpZ3MsIGRpc3BsYXlSZXF1ZXN0RHVyYXRpb24sIHNwZWNTZWxlY3RvcnMsIHBhdGgsIG1ldGhvZCB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHsgc2hvd011dGF0ZWRSZXF1ZXN0LCByZXF1ZXN0U25pcHBldHNFbmFibGVkIH0gPSBnZXRDb25maWdzKClcblxuICAgIGNvbnN0IGN1cmxSZXF1ZXN0ID0gc2hvd011dGF0ZWRSZXF1ZXN0ID8gc3BlY1NlbGVjdG9ycy5tdXRhdGVkUmVxdWVzdEZvcihwYXRoLCBtZXRob2QpIDogc3BlY1NlbGVjdG9ycy5yZXF1ZXN0Rm9yKHBhdGgsIG1ldGhvZClcbiAgICBjb25zdCBzdGF0dXMgPSByZXNwb25zZS5nZXQoXCJzdGF0dXNcIilcbiAgICBjb25zdCB1cmwgPSBjdXJsUmVxdWVzdC5nZXQoXCJ1cmxcIilcbiAgICBjb25zdCBoZWFkZXJzID0gcmVzcG9uc2UuZ2V0KFwiaGVhZGVyc1wiKS50b0pTKClcbiAgICBjb25zdCBub3REb2N1bWVudGVkID0gcmVzcG9uc2UuZ2V0KFwibm90RG9jdW1lbnRlZFwiKVxuICAgIGNvbnN0IGlzRXJyb3IgPSByZXNwb25zZS5nZXQoXCJlcnJvclwiKVxuICAgIGNvbnN0IGJvZHkgPSByZXNwb25zZS5nZXQoXCJ0ZXh0XCIpXG4gICAgY29uc3QgZHVyYXRpb24gPSByZXNwb25zZS5nZXQoXCJkdXJhdGlvblwiKVxuICAgIGNvbnN0IGhlYWRlcnNLZXlzID0gT2JqZWN0LmtleXMoaGVhZGVycylcbiAgICBjb25zdCBjb250ZW50VHlwZSA9IGhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gfHwgaGVhZGVyc1tcIkNvbnRlbnQtVHlwZVwiXVxuXG4gICAgY29uc3QgUmVzcG9uc2VCb2R5ID0gZ2V0Q29tcG9uZW50KFwicmVzcG9uc2VCb2R5XCIpXG4gICAgY29uc3QgcmV0dXJuT2JqZWN0ID0gaGVhZGVyc0tleXMubWFwKGtleSA9PiB7XG4gICAgICB2YXIgam9pbmVkSGVhZGVycyA9IEFycmF5LmlzQXJyYXkoaGVhZGVyc1trZXldKSA/IGhlYWRlcnNba2V5XS5qb2luKCkgOiBoZWFkZXJzW2tleV1cbiAgICAgIHJldHVybiA8c3BhbiBjbGFzc05hbWU9XCJoZWFkZXJsaW5lXCIga2V5PXtrZXl9PiB7a2V5fToge2pvaW5lZEhlYWRlcnN9IDwvc3Bhbj5cbiAgICB9KVxuICAgIGNvbnN0IGhhc0hlYWRlcnMgPSByZXR1cm5PYmplY3QubGVuZ3RoICE9PSAwXG4gICAgY29uc3QgTWFya2Rvd24gPSBnZXRDb21wb25lbnQoXCJNYXJrZG93blwiLCB0cnVlKVxuICAgIGNvbnN0IFJlcXVlc3RTbmlwcGV0cyA9IGdldENvbXBvbmVudChcIlJlcXVlc3RTbmlwcGV0c1wiLCB0cnVlKVxuICAgIGNvbnN0IEN1cmwgPSBnZXRDb21wb25lbnQoXCJjdXJsXCIsIHRydWUpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgeyBjdXJsUmVxdWVzdCAmJiByZXF1ZXN0U25pcHBldHNFbmFibGVkIFxuICAgICAgICAgID8gPFJlcXVlc3RTbmlwcGV0cyByZXF1ZXN0PXsgY3VybFJlcXVlc3QgfS8+XG4gICAgICAgICAgOiA8Q3VybCByZXF1ZXN0PXsgY3VybFJlcXVlc3QgfSAvPlxuICAgICAgICB9XG4gICAgICAgIHsgdXJsICYmIDxkaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlcXVlc3QtdXJsXCI+XG4gICAgICAgICAgICAgIDxoND5SZXF1ZXN0IFVSTDwvaDQ+XG4gICAgICAgICAgICAgIDxwcmUgY2xhc3NOYW1lPVwibWljcm9saWdodFwiPnt1cmx9PC9wcmU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8aDQ+U2VydmVyIHJlc3BvbnNlPC9oND5cbiAgICAgICAgPHRhYmxlIGNsYXNzTmFtZT1cInJlc3BvbnNlcy10YWJsZSBsaXZlLXJlc3BvbnNlcy10YWJsZVwiPlxuICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICA8dHIgY2xhc3NOYW1lPVwicmVzcG9uc2VzLWhlYWRlclwiPlxuICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT1cImNvbF9oZWFkZXIgcmVzcG9uc2UtY29sX3N0YXR1c1wiPkNvZGU8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT1cImNvbF9oZWFkZXIgcmVzcG9uc2UtY29sX2Rlc2NyaXB0aW9uXCI+RGV0YWlsczwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIDx0ciBjbGFzc05hbWU9XCJyZXNwb25zZVwiPlxuICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwicmVzcG9uc2UtY29sX3N0YXR1c1wiPlxuICAgICAgICAgICAgICAgIHsgc3RhdHVzIH1cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBub3REb2N1bWVudGVkID8gPGRpdiBjbGFzc05hbWU9XCJyZXNwb25zZS11bmRvY3VtZW50ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpPiBVbmRvY3VtZW50ZWQgPC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJyZXNwb25zZS1jb2xfZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBpc0Vycm9yID8gPE1hcmtkb3duIHNvdXJjZT17YCR7cmVzcG9uc2UuZ2V0KFwibmFtZVwiKSAhPT0gXCJcIiA/IGAke3Jlc3BvbnNlLmdldChcIm5hbWVcIil9OiBgIDogXCJcIn0ke3Jlc3BvbnNlLmdldChcIm1lc3NhZ2VcIil9YH0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYm9keSA/IDxSZXNwb25zZUJvZHkgY29udGVudD17IGJvZHkgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudFR5cGU9eyBjb250ZW50VHlwZSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw9eyB1cmwgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycz17IGhlYWRlcnMgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29uZmlncz17IGdldENvbmZpZ3MgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXsgZ2V0Q29tcG9uZW50IH0vPlxuICAgICAgICAgICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgaGFzSGVhZGVycyA/IDxIZWFkZXJzIGhlYWRlcnM9eyByZXR1cm5PYmplY3QgfS8+IDogbnVsbFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5UmVxdWVzdER1cmF0aW9uICYmIGR1cmF0aW9uID8gPER1cmF0aW9uIGR1cmF0aW9uPXsgZHVyYXRpb24gfSAvPiA6IG51bGxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDwvdGFibGU+XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFVSTCBmcm9tIFwidXJsLXBhcnNlXCJcblxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgeyByZXF1aXJlc1ZhbGlkYXRpb25VUkwgfSBmcm9tIFwiY29yZS91dGlsc1wiXG5pbXBvcnQgeyBzYW5pdGl6ZVVybCB9IGZyb20gXCJjb3JlL3V0aWxzL3VybFwiXG5pbXBvcnQgd2luIGZyb20gXCJjb3JlL3dpbmRvd1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE9ubGluZVZhbGlkYXRvckJhZGdlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgZ2V0Q29uZmlnczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZFxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByb3BzLCBjb250ZXh0KSB7XG4gICAgICAgIHN1cGVyKHByb3BzLCBjb250ZXh0KVxuICAgICAgICBsZXQgeyBnZXRDb25maWdzIH0gPSBwcm9wc1xuICAgICAgICBsZXQgeyB2YWxpZGF0b3JVcmwgfSA9IGdldENvbmZpZ3MoKVxuICAgICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICAgICAgdXJsOiB0aGlzLmdldERlZmluaXRpb25VcmwoKSxcbiAgICAgICAgICAgIHZhbGlkYXRvclVybDogdmFsaWRhdG9yVXJsID09PSB1bmRlZmluZWQgPyBcImh0dHBzOi8vdmFsaWRhdG9yLnN3YWdnZXIuaW8vdmFsaWRhdG9yXCIgOiB2YWxpZGF0b3JVcmxcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldERlZmluaXRpb25VcmwgPSAoKSA9PiB7XG4gICAgICAvLyBUT0RPOiB0ZXN0IHRoaXMgYmVoYXZpb3IgYnkgc3R1YmJpbmcgYHdpbmRvdy5sb2NhdGlvbmAgaW4gYW4gRW56eW1lL0pTRG9tIGVudlxuICAgICAgbGV0IHsgc3BlY1NlbGVjdG9ycyB9ID0gdGhpcy5wcm9wc1xuXG4gICAgICBjb25zdCB1cmxPYmplY3QgPSBuZXcgVVJMKHNwZWNTZWxlY3RvcnMudXJsKCksIHdpbi5sb2NhdGlvbilcbiAgICAgIHJldHVybiB1cmxPYmplY3QudG9TdHJpbmcoKVxuICAgIH1cblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAgICAgbGV0IHsgZ2V0Q29uZmlncyB9ID0gbmV4dFByb3BzXG4gICAgICAgIGxldCB7IHZhbGlkYXRvclVybCB9ID0gZ2V0Q29uZmlncygpXG5cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICB1cmw6IHRoaXMuZ2V0RGVmaW5pdGlvblVybCgpLFxuICAgICAgICAgICAgdmFsaWRhdG9yVXJsOiB2YWxpZGF0b3JVcmwgPT09IHVuZGVmaW5lZCA/IFwiaHR0cHM6Ly92YWxpZGF0b3Iuc3dhZ2dlci5pby92YWxpZGF0b3JcIiA6IHZhbGlkYXRvclVybFxuICAgICAgICB9KVxuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgbGV0IHsgZ2V0Q29uZmlncyB9ID0gdGhpcy5wcm9wc1xuICAgICAgICBsZXQgeyBzcGVjIH0gPSBnZXRDb25maWdzKClcblxuICAgICAgICBsZXQgc2FuaXRpemVkVmFsaWRhdG9yVXJsID0gc2FuaXRpemVVcmwodGhpcy5zdGF0ZS52YWxpZGF0b3JVcmwpXG5cbiAgICAgICAgaWYgKCB0eXBlb2Ygc3BlYyA9PT0gXCJvYmplY3RcIiAmJiBPYmplY3Qua2V5cyhzcGVjKS5sZW5ndGgpIHJldHVybiBudWxsXG5cbiAgICAgICAgaWYgKCF0aGlzLnN0YXRlLnVybCB8fCAhcmVxdWlyZXNWYWxpZGF0aW9uVVJMKHRoaXMuc3RhdGUudmFsaWRhdG9yVXJsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICFyZXF1aXJlc1ZhbGlkYXRpb25VUkwodGhpcy5zdGF0ZS51cmwpKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoPHNwYW4gY2xhc3NOYW1lPVwiZmxvYXQtcmlnaHRcIj5cbiAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgaHJlZj17YCR7IHNhbml0aXplZFZhbGlkYXRvclVybCB9L2RlYnVnP3VybD0keyBlbmNvZGVVUklDb21wb25lbnQodGhpcy5zdGF0ZS51cmwpIH1gfT5cbiAgICAgICAgICAgICAgICAgICAgPFZhbGlkYXRvckltYWdlIHNyYz17YCR7IHNhbml0aXplZFZhbGlkYXRvclVybCB9P3VybD0keyBlbmNvZGVVUklDb21wb25lbnQodGhpcy5zdGF0ZS51cmwpIH1gfSBhbHQ9XCJPbmxpbmUgdmFsaWRhdG9yIGJhZGdlXCIvPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvc3Bhbj4pXG4gICAgfVxufVxuXG5cbmNsYXNzIFZhbGlkYXRvckltYWdlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBzcmM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgYWx0OiBQcm9wVHlwZXMuc3RyaW5nXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKVxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgZXJyb3I6IGZhbHNlXG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3QgaW1nID0gbmV3IEltYWdlKClcbiAgICBpbWcub25sb2FkID0gKCkgPT4ge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGxvYWRlZDogdHJ1ZVxuICAgICAgfSlcbiAgICB9XG4gICAgaW1nLm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgZXJyb3I6IHRydWVcbiAgICAgIH0pXG4gICAgfVxuICAgIGltZy5zcmMgPSB0aGlzLnByb3BzLnNyY1xuICB9XG5cbiAgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgaWYgKG5leHRQcm9wcy5zcmMgIT09IHRoaXMucHJvcHMuc3JjKSB7XG4gICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKVxuICAgICAgaW1nLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgbG9hZGVkOiB0cnVlXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgICBpbWcub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgZXJyb3I6IHRydWVcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIGltZy5zcmMgPSBuZXh0UHJvcHMuc3JjXG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGlmICh0aGlzLnN0YXRlLmVycm9yKSB7XG4gICAgICByZXR1cm4gPGltZyBhbHQ9e1wiRXJyb3JcIn0gLz5cbiAgICB9IGVsc2UgaWYgKCF0aGlzLnN0YXRlLmxvYWRlZCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgcmV0dXJuIDxpbWcgc3JjPXt0aGlzLnByb3BzLnNyY30gYWx0PXt0aGlzLnByb3BzLmFsdH0gLz5cbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBJbSBmcm9tIFwiaW1tdXRhYmxlXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT3BlcmF0aW9ucyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgc3BlY0FjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBvYXMzQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvYXMzU2VsZWN0b3JzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGxheW91dFNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGxheW91dEFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBhdXRoQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGF1dGhTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBnZXRDb25maWdzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGZuOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHtcbiAgICAgIHNwZWNTZWxlY3RvcnMsXG4gICAgfSA9IHRoaXMucHJvcHNcblxuICAgIGNvbnN0IHRhZ2dlZE9wcyA9IHNwZWNTZWxlY3RvcnMudGFnZ2VkT3BlcmF0aW9ucygpXG5cbiAgICBpZih0YWdnZWRPcHMuc2l6ZSA9PT0gMCkge1xuICAgICAgcmV0dXJuIDxoMz4gTm8gb3BlcmF0aW9ucyBkZWZpbmVkIGluIHNwZWMhPC9oMz5cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgeyB0YWdnZWRPcHMubWFwKHRoaXMucmVuZGVyT3BlcmF0aW9uVGFnKS50b0FycmF5KCkgfVxuICAgICAgICB7IHRhZ2dlZE9wcy5zaXplIDwgMSA/IDxoMz4gTm8gb3BlcmF0aW9ucyBkZWZpbmVkIGluIHNwZWMhIDwvaDM+IDogbnVsbCB9XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cblxuICByZW5kZXJPcGVyYXRpb25UYWcgPSAodGFnT2JqLCB0YWcpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBzcGVjU2VsZWN0b3JzLFxuICAgICAgZ2V0Q29tcG9uZW50LFxuICAgICAgb2FzM1NlbGVjdG9ycyxcbiAgICAgIGxheW91dFNlbGVjdG9ycyxcbiAgICAgIGxheW91dEFjdGlvbnMsXG4gICAgICBnZXRDb25maWdzLFxuICAgIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgdmFsaWRPcGVyYXRpb25NZXRob2RzID0gc3BlY1NlbGVjdG9ycy52YWxpZE9wZXJhdGlvbk1ldGhvZHMoKVxuICAgIGNvbnN0IE9wZXJhdGlvbkNvbnRhaW5lciA9IGdldENvbXBvbmVudChcIk9wZXJhdGlvbkNvbnRhaW5lclwiLCB0cnVlKVxuICAgIGNvbnN0IE9wZXJhdGlvblRhZyA9IGdldENvbXBvbmVudChcIk9wZXJhdGlvblRhZ1wiKVxuICAgIGNvbnN0IG9wZXJhdGlvbnMgPSB0YWdPYmouZ2V0KFwib3BlcmF0aW9uc1wiKVxuICAgIHJldHVybiAoXG4gICAgICA8T3BlcmF0aW9uVGFnXG4gICAgICAgIGtleT17XCJvcGVyYXRpb24tXCIgKyB0YWd9XG4gICAgICAgIHRhZ09iaj17dGFnT2JqfVxuICAgICAgICB0YWc9e3RhZ31cbiAgICAgICAgb2FzM1NlbGVjdG9ycz17b2FzM1NlbGVjdG9yc31cbiAgICAgICAgbGF5b3V0U2VsZWN0b3JzPXtsYXlvdXRTZWxlY3RvcnN9XG4gICAgICAgIGxheW91dEFjdGlvbnM9e2xheW91dEFjdGlvbnN9XG4gICAgICAgIGdldENvbmZpZ3M9e2dldENvbmZpZ3N9XG4gICAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgICAgICBzcGVjVXJsPXtzcGVjU2VsZWN0b3JzLnVybCgpfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJvcGVyYXRpb24tdGFnLWNvbnRlbnRcIj5cbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcGVyYXRpb25zLm1hcChvcCA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBvcC5nZXQoXCJwYXRoXCIpXG4gICAgICAgICAgICAgIGNvbnN0IG1ldGhvZCA9IG9wLmdldChcIm1ldGhvZFwiKVxuICAgICAgICAgICAgICBjb25zdCBzcGVjUGF0aCA9IEltLkxpc3QoW1wicGF0aHNcIiwgcGF0aCwgbWV0aG9kXSlcblxuICAgICAgICAgICAgICBpZiAodmFsaWRPcGVyYXRpb25NZXRob2RzLmluZGV4T2YobWV0aG9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8T3BlcmF0aW9uQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICBrZXk9e2Ake3BhdGh9LSR7bWV0aG9kfWB9XG4gICAgICAgICAgICAgICAgICBzcGVjUGF0aD17c3BlY1BhdGh9XG4gICAgICAgICAgICAgICAgICBvcD17b3B9XG4gICAgICAgICAgICAgICAgICBwYXRoPXtwYXRofVxuICAgICAgICAgICAgICAgICAgbWV0aG9kPXttZXRob2R9XG4gICAgICAgICAgICAgICAgICB0YWc9e3RhZ30gLz5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSkudG9BcnJheSgpXG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvT3BlcmF0aW9uVGFnPlxuICAgIClcbiAgfVxuXG59XG5cbk9wZXJhdGlvbnMucHJvcFR5cGVzID0ge1xuICBsYXlvdXRBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgc3BlY0FjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgbGF5b3V0U2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZm46IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZFxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5pbXBvcnQgSW0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgeyBjcmVhdGVEZWVwTGlua1BhdGgsIGVzY2FwZURlZXBMaW5rUGF0aCwgaXNGdW5jIH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuaW1wb3J0IHsgc2FmZUJ1aWxkVXJsLCBzYW5pdGl6ZVVybCB9IGZyb20gXCJjb3JlL3V0aWxzL3VybFwiXG5cbi8qIGVzbGludC1kaXNhYmxlICByZWFjdC9qc3gtbm8tYmluZCAqL1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBPcGVyYXRpb25UYWcgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgdGFnT2JqOiBJbS5mcm9tSlMoe30pLFxuICAgIHRhZzogXCJcIixcbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgdGFnT2JqOiBJbVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICB0YWc6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcblxuICAgIG9hczNTZWxlY3RvcnM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgbGF5b3V0U2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgbGF5b3V0QWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuXG4gICAgZ2V0Q29uZmlnczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG5cbiAgICBzcGVjVXJsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG5cbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLmVsZW1lbnQsXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdGFnT2JqLFxuICAgICAgdGFnLFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBvYXMzU2VsZWN0b3JzLFxuICAgICAgbGF5b3V0U2VsZWN0b3JzLFxuICAgICAgbGF5b3V0QWN0aW9ucyxcbiAgICAgIGdldENvbmZpZ3MsXG4gICAgICBnZXRDb21wb25lbnQsXG4gICAgICBzcGVjVXJsLFxuICAgIH0gPSB0aGlzLnByb3BzXG5cbiAgICBsZXQge1xuICAgICAgZG9jRXhwYW5zaW9uLFxuICAgICAgZGVlcExpbmtpbmcsXG4gICAgfSA9IGdldENvbmZpZ3MoKVxuXG4gICAgY29uc3QgQ29sbGFwc2UgPSBnZXRDb21wb25lbnQoXCJDb2xsYXBzZVwiKVxuICAgIGNvbnN0IE1hcmtkb3duID0gZ2V0Q29tcG9uZW50KFwiTWFya2Rvd25cIiwgdHJ1ZSlcbiAgICBjb25zdCBEZWVwTGluayA9IGdldENvbXBvbmVudChcIkRlZXBMaW5rXCIpXG4gICAgY29uc3QgTGluayA9IGdldENvbXBvbmVudChcIkxpbmtcIilcbiAgICBjb25zdCBBcnJvd1VwSWNvbiA9IGdldENvbXBvbmVudChcIkFycm93VXBJY29uXCIpXG4gICAgY29uc3QgQXJyb3dEb3duSWNvbiA9IGdldENvbXBvbmVudChcIkFycm93RG93bkljb25cIilcblxuICAgIGxldCB0YWdEZXNjcmlwdGlvbiA9IHRhZ09iai5nZXRJbihbXCJ0YWdEZXRhaWxzXCIsIFwiZGVzY3JpcHRpb25cIl0sIG51bGwpXG4gICAgbGV0IHRhZ0V4dGVybmFsRG9jc0Rlc2NyaXB0aW9uID0gdGFnT2JqLmdldEluKFtcInRhZ0RldGFpbHNcIiwgXCJleHRlcm5hbERvY3NcIiwgXCJkZXNjcmlwdGlvblwiXSlcbiAgICBsZXQgcmF3VGFnRXh0ZXJuYWxEb2NzVXJsID0gdGFnT2JqLmdldEluKFtcInRhZ0RldGFpbHNcIiwgXCJleHRlcm5hbERvY3NcIiwgXCJ1cmxcIl0pXG4gICAgbGV0IHRhZ0V4dGVybmFsRG9jc1VybFxuICAgIGlmIChpc0Z1bmMob2FzM1NlbGVjdG9ycykgJiYgaXNGdW5jKG9hczNTZWxlY3RvcnMuc2VsZWN0ZWRTZXJ2ZXIpKSB7XG4gICAgICB0YWdFeHRlcm5hbERvY3NVcmwgPSBzYWZlQnVpbGRVcmwocmF3VGFnRXh0ZXJuYWxEb2NzVXJsLCBzcGVjVXJsLCB7IHNlbGVjdGVkU2VydmVyOiBvYXMzU2VsZWN0b3JzLnNlbGVjdGVkU2VydmVyKCkgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGFnRXh0ZXJuYWxEb2NzVXJsID0gcmF3VGFnRXh0ZXJuYWxEb2NzVXJsXG4gICAgfVxuXG4gICAgbGV0IGlzU2hvd25LZXkgPSBbXCJvcGVyYXRpb25zLXRhZ1wiLCB0YWddXG4gICAgbGV0IHNob3dUYWcgPSBsYXlvdXRTZWxlY3RvcnMuaXNTaG93bihpc1Nob3duS2V5LCBkb2NFeHBhbnNpb24gPT09IFwiZnVsbFwiIHx8IGRvY0V4cGFuc2lvbiA9PT0gXCJsaXN0XCIpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e3Nob3dUYWcgPyBcIm9wYmxvY2stdGFnLXNlY3Rpb24gaXMtb3BlblwiIDogXCJvcGJsb2NrLXRhZy1zZWN0aW9uXCJ9ID5cblxuICAgICAgICA8aDNcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBsYXlvdXRBY3Rpb25zLnNob3coaXNTaG93bktleSwgIXNob3dUYWcpfVxuICAgICAgICAgIGNsYXNzTmFtZT17IXRhZ0Rlc2NyaXB0aW9uID8gXCJvcGJsb2NrLXRhZyBuby1kZXNjXCIgOiBcIm9wYmxvY2stdGFnXCJ9XG4gICAgICAgICAgaWQ9e2lzU2hvd25LZXkubWFwKHYgPT4gZXNjYXBlRGVlcExpbmtQYXRoKHYpKS5qb2luKFwiLVwiKX1cbiAgICAgICAgICBkYXRhLXRhZz17dGFnfVxuICAgICAgICAgIGRhdGEtaXMtb3Blbj17c2hvd1RhZ31cbiAgICAgICAgPlxuICAgICAgICAgIDxEZWVwTGlua1xuICAgICAgICAgICAgZW5hYmxlZD17ZGVlcExpbmtpbmd9XG4gICAgICAgICAgICBpc1Nob3duPXtzaG93VGFnfVxuICAgICAgICAgICAgcGF0aD17Y3JlYXRlRGVlcExpbmtQYXRoKHRhZyl9XG4gICAgICAgICAgICB0ZXh0PXt0YWd9IC8+XG4gICAgICAgICAgeyF0YWdEZXNjcmlwdGlvbiA/IDxzbWFsbD48L3NtYWxsPiA6XG4gICAgICAgICAgICA8c21hbGw+XG4gICAgICAgICAgICAgIDxNYXJrZG93biBzb3VyY2U9e3RhZ0Rlc2NyaXB0aW9ufSAvPlxuICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB7IXRhZ0V4dGVybmFsRG9jc1VybCA/IG51bGwgOlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvX19leHRlcm5hbGRvY3NcIj5cbiAgICAgICAgICAgICAgPHNtYWxsPlxuICAgICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgICAgIGhyZWY9e3Nhbml0aXplVXJsKHRhZ0V4dGVybmFsRG9jc1VybCl9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgPnt0YWdFeHRlcm5hbERvY3NEZXNjcmlwdGlvbiB8fCB0YWdFeHRlcm5hbERvY3NVcmx9PC9MaW5rPlxuICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuXG5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtzaG93VGFnfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZXhwYW5kLW9wZXJhdGlvblwiXG4gICAgICAgICAgICB0aXRsZT17c2hvd1RhZyA/IFwiQ29sbGFwc2Ugb3BlcmF0aW9uXCIgOiBcIkV4cGFuZCBvcGVyYXRpb25cIn1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGxheW91dEFjdGlvbnMuc2hvdyhpc1Nob3duS2V5LCAhc2hvd1RhZyl9PlxuXG4gICAgICAgICAgICB7c2hvd1RhZyA/IDxBcnJvd1VwSWNvbiBjbGFzc05hbWU9XCJhcnJvd1wiIC8+IDogPEFycm93RG93bkljb24gY2xhc3NOYW1lPVwiYXJyb3dcIiAvPn1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9oMz5cblxuICAgICAgICA8Q29sbGFwc2UgaXNPcGVuZWQ9e3Nob3dUYWd9PlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9Db2xsYXBzZT5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgeyBnZXRFeHRlbnNpb25zLCBlc2NhcGVEZWVwTGlua1BhdGgsIGdldExpc3QgfSBmcm9tIFwiY29yZS91dGlsc1wiXG5pbXBvcnQgeyBzYWZlQnVpbGRVcmwsIHNhbml0aXplVXJsIH0gZnJvbSBcImNvcmUvdXRpbHMvdXJsXCJcbmltcG9ydCB7IEl0ZXJhYmxlLCBMaXN0IH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuXG5pbXBvcnQgUm9sbGluZ0xvYWRTVkcgZnJvbSBcImNvcmUvYXNzZXRzL3JvbGxpbmctbG9hZC5zdmdcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBPcGVyYXRpb24gZXh0ZW5kcyBQdXJlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBzcGVjUGF0aDogSW1Qcm9wVHlwZXMubGlzdC5pc1JlcXVpcmVkLFxuICAgIG9wZXJhdGlvbjogUHJvcFR5cGVzLmluc3RhbmNlT2YoSXRlcmFibGUpLmlzUmVxdWlyZWQsXG4gICAgc3VtbWFyeTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICByZXNwb25zZTogUHJvcFR5cGVzLmluc3RhbmNlT2YoSXRlcmFibGUpLFxuICAgIHJlcXVlc3Q6IFByb3BUeXBlcy5pbnN0YW5jZU9mKEl0ZXJhYmxlKSxcblxuICAgIHRvZ2dsZVNob3duOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uVHJ5b3V0Q2xpY2s6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25SZXNldENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uQ2FuY2VsQ2xpY2s6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25FeGVjdXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGdldENvbmZpZ3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgYXV0aEFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgYXV0aFNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBzcGVjQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBvYXMzQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG9hczNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBsYXlvdXRBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgbGF5b3V0U2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZm46IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZFxuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBvcGVyYXRpb246IG51bGwsXG4gICAgcmVzcG9uc2U6IG51bGwsXG4gICAgcmVxdWVzdDogbnVsbCxcbiAgICBzcGVjUGF0aDogTGlzdCgpLFxuICAgIHN1bW1hcnk6IFwiXCJcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQge1xuICAgICAgc3BlY1BhdGgsXG4gICAgICByZXNwb25zZSxcbiAgICAgIHJlcXVlc3QsXG4gICAgICB0b2dnbGVTaG93bixcbiAgICAgIG9uVHJ5b3V0Q2xpY2ssXG4gICAgICBvblJlc2V0Q2xpY2ssXG4gICAgICBvbkNhbmNlbENsaWNrLFxuICAgICAgb25FeGVjdXRlLFxuICAgICAgZm4sXG4gICAgICBnZXRDb21wb25lbnQsXG4gICAgICBnZXRDb25maWdzLFxuICAgICAgc3BlY0FjdGlvbnMsXG4gICAgICBzcGVjU2VsZWN0b3JzLFxuICAgICAgYXV0aEFjdGlvbnMsXG4gICAgICBhdXRoU2VsZWN0b3JzLFxuICAgICAgb2FzM0FjdGlvbnMsXG4gICAgICBvYXMzU2VsZWN0b3JzXG4gICAgfSA9IHRoaXMucHJvcHNcbiAgICBsZXQgb3BlcmF0aW9uUHJvcHMgPSB0aGlzLnByb3BzLm9wZXJhdGlvblxuXG4gICAgbGV0IHtcbiAgICAgIGRlcHJlY2F0ZWQsXG4gICAgICBpc1Nob3duLFxuICAgICAgcGF0aCxcbiAgICAgIG1ldGhvZCxcbiAgICAgIG9wLFxuICAgICAgdGFnLFxuICAgICAgb3BlcmF0aW9uSWQsXG4gICAgICBhbGxvd1RyeUl0T3V0LFxuICAgICAgZGlzcGxheVJlcXVlc3REdXJhdGlvbixcbiAgICAgIHRyeUl0T3V0RW5hYmxlZCxcbiAgICAgIGV4ZWN1dGVJblByb2dyZXNzXG4gICAgfSA9IG9wZXJhdGlvblByb3BzLnRvSlMoKVxuXG4gICAgbGV0IHtcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgZXh0ZXJuYWxEb2NzLFxuICAgICAgc2NoZW1lc1xuICAgIH0gPSBvcFxuXG4gICAgY29uc3QgZXh0ZXJuYWxEb2NzVXJsID0gZXh0ZXJuYWxEb2NzID8gc2FmZUJ1aWxkVXJsKGV4dGVybmFsRG9jcy51cmwsIHNwZWNTZWxlY3RvcnMudXJsKCksIHsgc2VsZWN0ZWRTZXJ2ZXI6IG9hczNTZWxlY3RvcnMuc2VsZWN0ZWRTZXJ2ZXIoKSB9KSA6IFwiXCJcbiAgICBsZXQgb3BlcmF0aW9uID0gb3BlcmF0aW9uUHJvcHMuZ2V0SW4oW1wib3BcIl0pXG4gICAgbGV0IHJlc3BvbnNlcyA9IG9wZXJhdGlvbi5nZXQoXCJyZXNwb25zZXNcIilcbiAgICBsZXQgcGFyYW1ldGVycyA9IGdldExpc3Qob3BlcmF0aW9uLCBbXCJwYXJhbWV0ZXJzXCJdKVxuICAgIGxldCBvcGVyYXRpb25TY2hlbWUgPSBzcGVjU2VsZWN0b3JzLm9wZXJhdGlvblNjaGVtZShwYXRoLCBtZXRob2QpXG4gICAgbGV0IGlzU2hvd25LZXkgPSBbXCJvcGVyYXRpb25zXCIsIHRhZywgb3BlcmF0aW9uSWRdXG4gICAgbGV0IGV4dGVuc2lvbnMgPSBnZXRFeHRlbnNpb25zKG9wZXJhdGlvbilcblxuICAgIGNvbnN0IFJlc3BvbnNlcyA9IGdldENvbXBvbmVudChcInJlc3BvbnNlc1wiKVxuICAgIGNvbnN0IFBhcmFtZXRlcnMgPSBnZXRDb21wb25lbnQoIFwicGFyYW1ldGVyc1wiIClcbiAgICBjb25zdCBFeGVjdXRlID0gZ2V0Q29tcG9uZW50KCBcImV4ZWN1dGVcIiApXG4gICAgY29uc3QgQ2xlYXIgPSBnZXRDb21wb25lbnQoIFwiY2xlYXJcIiApXG4gICAgY29uc3QgQ29sbGFwc2UgPSBnZXRDb21wb25lbnQoIFwiQ29sbGFwc2VcIiApXG4gICAgY29uc3QgTWFya2Rvd24gPSBnZXRDb21wb25lbnQoXCJNYXJrZG93blwiLCB0cnVlKVxuICAgIGNvbnN0IFNjaGVtZXMgPSBnZXRDb21wb25lbnQoIFwic2NoZW1lc1wiIClcbiAgICBjb25zdCBPcGVyYXRpb25TZXJ2ZXJzID0gZ2V0Q29tcG9uZW50KCBcIk9wZXJhdGlvblNlcnZlcnNcIiApXG4gICAgY29uc3QgT3BlcmF0aW9uRXh0ID0gZ2V0Q29tcG9uZW50KCBcIk9wZXJhdGlvbkV4dFwiIClcbiAgICBjb25zdCBPcGVyYXRpb25TdW1tYXJ5ID0gZ2V0Q29tcG9uZW50KCBcIk9wZXJhdGlvblN1bW1hcnlcIiApXG4gICAgY29uc3QgTGluayA9IGdldENvbXBvbmVudCggXCJMaW5rXCIgKVxuXG4gICAgY29uc3QgeyBzaG93RXh0ZW5zaW9ucyB9ID0gZ2V0Q29uZmlncygpXG5cbiAgICAvLyBNZXJnZSBpbiBMaXZlIFJlc3BvbnNlXG4gICAgaWYocmVzcG9uc2VzICYmIHJlc3BvbnNlICYmIHJlc3BvbnNlLnNpemUgPiAwKSB7XG4gICAgICBsZXQgbm90RG9jdW1lbnRlZCA9ICFyZXNwb25zZXMuZ2V0KFN0cmluZyhyZXNwb25zZS5nZXQoXCJzdGF0dXNcIikpKSAmJiAhcmVzcG9uc2VzLmdldChcImRlZmF1bHRcIilcbiAgICAgIHJlc3BvbnNlID0gcmVzcG9uc2Uuc2V0KFwibm90RG9jdW1lbnRlZFwiLCBub3REb2N1bWVudGVkKVxuICAgIH1cblxuICAgIGxldCBvbkNoYW5nZUtleSA9IFsgcGF0aCwgbWV0aG9kIF0gLy8gVXNlZCB0byBhZGQgdmFsdWVzIHRvIF90aGlzXyBvcGVyYXRpb24gKCBpbmRleGVkIGJ5IHBhdGggYW5kIG1ldGhvZCApXG5cbiAgICBjb25zdCB2YWxpZGF0aW9uRXJyb3JzID0gc3BlY1NlbGVjdG9ycy52YWxpZGF0aW9uRXJyb3JzKFtwYXRoLCBtZXRob2RdKVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2RlcHJlY2F0ZWQgPyBcIm9wYmxvY2sgb3BibG9jay1kZXByZWNhdGVkXCIgOiBpc1Nob3duID8gYG9wYmxvY2sgb3BibG9jay0ke21ldGhvZH0gaXMtb3BlbmAgOiBgb3BibG9jayBvcGJsb2NrLSR7bWV0aG9kfWB9IGlkPXtlc2NhcGVEZWVwTGlua1BhdGgoaXNTaG93bktleS5qb2luKFwiLVwiKSl9ID5cbiAgICAgICAgICA8T3BlcmF0aW9uU3VtbWFyeSBvcGVyYXRpb25Qcm9wcz17b3BlcmF0aW9uUHJvcHN9IGlzU2hvd249e2lzU2hvd259IHRvZ2dsZVNob3duPXt0b2dnbGVTaG93bn0gZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9IGF1dGhBY3Rpb25zPXthdXRoQWN0aW9uc30gYXV0aFNlbGVjdG9ycz17YXV0aFNlbGVjdG9yc30gc3BlY1BhdGg9e3NwZWNQYXRofSAvPlxuICAgICAgICAgIDxDb2xsYXBzZSBpc09wZW5lZD17aXNTaG93bn0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm9wYmxvY2stYm9keVwiPlxuICAgICAgICAgICAgICB7IChvcGVyYXRpb24gJiYgb3BlcmF0aW9uLnNpemUpIHx8IG9wZXJhdGlvbiA9PT0gbnVsbCA/IG51bGwgOlxuICAgICAgICAgICAgICAgIDxSb2xsaW5nTG9hZFNWRyBoZWlnaHQ9XCIzMnB4XCIgd2lkdGg9XCIzMnB4XCIgY2xhc3NOYW1lPVwib3BibG9jay1sb2FkaW5nLWFuaW1hdGlvblwiIC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgeyBkZXByZWNhdGVkICYmIDxoNCBjbGFzc05hbWU9XCJvcGJsb2NrLXRpdGxlX25vcm1hbFwiPiBXYXJuaW5nOiBEZXByZWNhdGVkPC9oND59XG4gICAgICAgICAgICAgIHsgZGVzY3JpcHRpb24gJiZcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm9wYmxvY2stZGVzY3JpcHRpb24td3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJvcGJsb2NrLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxNYXJrZG93biBzb3VyY2U9eyBkZXNjcmlwdGlvbiB9IC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZXh0ZXJuYWxEb2NzVXJsID9cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm9wYmxvY2stZXh0ZXJuYWwtZG9jcy13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwib3BibG9jay10aXRsZV9ub3JtYWxcIj5GaW5kIG1vcmUgZGV0YWlsczwvaDQ+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm9wYmxvY2stZXh0ZXJuYWwtZG9jc1wiPlxuICAgICAgICAgICAgICAgICAgICB7ZXh0ZXJuYWxEb2NzLmRlc2NyaXB0aW9uICYmXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwib3BibG9jay1leHRlcm5hbC1kb2NzX19kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPE1hcmtkb3duIHNvdXJjZT17IGV4dGVybmFsRG9jcy5kZXNjcmlwdGlvbiB9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzTmFtZT1cIm9wYmxvY2stZXh0ZXJuYWwtZG9jc19fbGlua1wiIGhyZWY9e3Nhbml0aXplVXJsKGV4dGVybmFsRG9jc1VybCl9PntleHRlcm5hbERvY3NVcmx9PC9MaW5rPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+IDogbnVsbFxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgeyAhb3BlcmF0aW9uIHx8ICFvcGVyYXRpb24uc2l6ZSA/IG51bGwgOlxuICAgICAgICAgICAgICAgIDxQYXJhbWV0ZXJzXG4gICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzPXtwYXJhbWV0ZXJzfVxuICAgICAgICAgICAgICAgICAgc3BlY1BhdGg9e3NwZWNQYXRoLnB1c2goXCJwYXJhbWV0ZXJzXCIpfVxuICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uPXtvcGVyYXRpb259XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZUtleT17b25DaGFuZ2VLZXl9XG4gICAgICAgICAgICAgICAgICBvblRyeW91dENsaWNrID0geyBvblRyeW91dENsaWNrIH1cbiAgICAgICAgICAgICAgICAgIG9uUmVzZXRDbGljayA9IHsgb25SZXNldENsaWNrIH1cbiAgICAgICAgICAgICAgICAgIG9uQ2FuY2VsQ2xpY2sgPSB7IG9uQ2FuY2VsQ2xpY2sgfVxuICAgICAgICAgICAgICAgICAgdHJ5SXRPdXRFbmFibGVkID0geyB0cnlJdE91dEVuYWJsZWQgfVxuICAgICAgICAgICAgICAgICAgYWxsb3dUcnlJdE91dD17YWxsb3dUcnlJdE91dH1cblxuICAgICAgICAgICAgICAgICAgZm49e2ZufVxuICAgICAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXsgZ2V0Q29tcG9uZW50IH1cbiAgICAgICAgICAgICAgICAgIHNwZWNBY3Rpb25zPXsgc3BlY0FjdGlvbnMgfVxuICAgICAgICAgICAgICAgICAgc3BlY1NlbGVjdG9ycz17IHNwZWNTZWxlY3RvcnMgfVxuICAgICAgICAgICAgICAgICAgcGF0aE1ldGhvZD17IFtwYXRoLCBtZXRob2RdIH1cbiAgICAgICAgICAgICAgICAgIGdldENvbmZpZ3M9eyBnZXRDb25maWdzIH1cbiAgICAgICAgICAgICAgICAgIG9hczNBY3Rpb25zPXsgb2FzM0FjdGlvbnMgfVxuICAgICAgICAgICAgICAgICAgb2FzM1NlbGVjdG9ycz17IG9hczNTZWxlY3RvcnMgfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB7ICF0cnlJdE91dEVuYWJsZWQgPyBudWxsIDpcbiAgICAgICAgICAgICAgICA8T3BlcmF0aW9uU2VydmVyc1xuICAgICAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICBwYXRoPXtwYXRofVxuICAgICAgICAgICAgICAgICAgbWV0aG9kPXttZXRob2R9XG4gICAgICAgICAgICAgICAgICBvcGVyYXRpb25TZXJ2ZXJzPXtvcGVyYXRpb24uZ2V0KFwic2VydmVyc1wiKX1cbiAgICAgICAgICAgICAgICAgIHBhdGhTZXJ2ZXJzPXtzcGVjU2VsZWN0b3JzLnBhdGhzKCkuZ2V0SW4oW3BhdGgsIFwic2VydmVyc1wiXSl9XG4gICAgICAgICAgICAgICAgICBnZXRTZWxlY3RlZFNlcnZlcj17b2FzM1NlbGVjdG9ycy5zZWxlY3RlZFNlcnZlcn1cbiAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkU2VydmVyPXtvYXMzQWN0aW9ucy5zZXRTZWxlY3RlZFNlcnZlcn1cbiAgICAgICAgICAgICAgICAgIHNldFNlcnZlclZhcmlhYmxlVmFsdWU9e29hczNBY3Rpb25zLnNldFNlcnZlclZhcmlhYmxlVmFsdWV9XG4gICAgICAgICAgICAgICAgICBnZXRTZXJ2ZXJWYXJpYWJsZT17b2FzM1NlbGVjdG9ycy5zZXJ2ZXJWYXJpYWJsZVZhbHVlfVxuICAgICAgICAgICAgICAgICAgZ2V0RWZmZWN0aXZlU2VydmVyVmFsdWU9e29hczNTZWxlY3RvcnMuc2VydmVyRWZmZWN0aXZlVmFsdWV9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHshdHJ5SXRPdXRFbmFibGVkIHx8ICFhbGxvd1RyeUl0T3V0ID8gbnVsbCA6IHNjaGVtZXMgJiYgc2NoZW1lcy5zaXplID8gPGRpdiBjbGFzc05hbWU9XCJvcGJsb2NrLXNjaGVtZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPFNjaGVtZXMgc2NoZW1lcz17IHNjaGVtZXMgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoPXsgcGF0aCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZD17IG1ldGhvZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNBY3Rpb25zPXsgc3BlY0FjdGlvbnMgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U2NoZW1lPXsgb3BlcmF0aW9uU2NoZW1lIH0gLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PiA6IG51bGxcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHsgIXRyeUl0T3V0RW5hYmxlZCB8fCAhYWxsb3dUcnlJdE91dCB8fCB2YWxpZGF0aW9uRXJyb3JzLmxlbmd0aCA8PSAwID8gbnVsbCA6IDxkaXYgY2xhc3NOYW1lPVwidmFsaWRhdGlvbi1lcnJvcnMgZXJyb3JzLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgIFBsZWFzZSBjb3JyZWN0IHRoZSBmb2xsb3dpbmcgdmFsaWRhdGlvbiBlcnJvcnMgYW5kIHRyeSBhZ2Fpbi5cbiAgICAgICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICAgICAgeyB2YWxpZGF0aW9uRXJyb3JzLm1hcCgoZXJyb3IsIGluZGV4KSA9PiA8bGkga2V5PXtpbmRleH0+IHsgZXJyb3IgfSA8L2xpPikgfVxuICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17KCF0cnlJdE91dEVuYWJsZWQgfHwgIXJlc3BvbnNlIHx8ICFhbGxvd1RyeUl0T3V0KSA/IFwiZXhlY3V0ZS13cmFwcGVyXCIgOiBcImJ0bi1ncm91cFwifT5cbiAgICAgICAgICAgICAgeyAhdHJ5SXRPdXRFbmFibGVkIHx8ICFhbGxvd1RyeUl0T3V0ID8gbnVsbCA6XG5cbiAgICAgICAgICAgICAgICAgIDxFeGVjdXRlXG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbj17IG9wZXJhdGlvbiB9XG4gICAgICAgICAgICAgICAgICAgIHNwZWNBY3Rpb25zPXsgc3BlY0FjdGlvbnMgfVxuICAgICAgICAgICAgICAgICAgICBzcGVjU2VsZWN0b3JzPXsgc3BlY1NlbGVjdG9ycyB9XG4gICAgICAgICAgICAgICAgICAgIG9hczNTZWxlY3RvcnM9eyBvYXMzU2VsZWN0b3JzIH1cbiAgICAgICAgICAgICAgICAgICAgb2FzM0FjdGlvbnM9eyBvYXMzQWN0aW9ucyB9XG4gICAgICAgICAgICAgICAgICAgIHBhdGg9eyBwYXRoIH1cbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kPXsgbWV0aG9kIH1cbiAgICAgICAgICAgICAgICAgICAgb25FeGVjdXRlPXsgb25FeGVjdXRlIH1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2V4ZWN1dGVJblByb2dyZXNzfS8+XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB7ICghdHJ5SXRPdXRFbmFibGVkIHx8ICFyZXNwb25zZSB8fCAhYWxsb3dUcnlJdE91dCkgPyBudWxsIDpcbiAgICAgICAgICAgICAgICAgIDxDbGVhclxuICAgICAgICAgICAgICAgICAgICBzcGVjQWN0aW9ucz17IHNwZWNBY3Rpb25zIH1cbiAgICAgICAgICAgICAgICAgICAgcGF0aD17IHBhdGggfVxuICAgICAgICAgICAgICAgICAgICBtZXRob2Q9eyBtZXRob2QgfS8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICB7ZXhlY3V0ZUluUHJvZ3Jlc3MgPyA8ZGl2IGNsYXNzTmFtZT1cImxvYWRpbmctY29udGFpbmVyXCI+PGRpdiBjbGFzc05hbWU9XCJsb2FkaW5nXCI+PC9kaXY+PC9kaXY+IDogbnVsbH1cblxuICAgICAgICAgICAgICB7ICFyZXNwb25zZXMgPyBudWxsIDpcbiAgICAgICAgICAgICAgICAgIDxSZXNwb25zZXNcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VzPXsgcmVzcG9uc2VzIH1cbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdD17IHJlcXVlc3QgfVxuICAgICAgICAgICAgICAgICAgICB0cnlJdE91dFJlc3BvbnNlPXsgcmVzcG9uc2UgfVxuICAgICAgICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9eyBnZXRDb21wb25lbnQgfVxuICAgICAgICAgICAgICAgICAgICBnZXRDb25maWdzPXsgZ2V0Q29uZmlncyB9XG4gICAgICAgICAgICAgICAgICAgIHNwZWNTZWxlY3RvcnM9eyBzcGVjU2VsZWN0b3JzIH1cbiAgICAgICAgICAgICAgICAgICAgb2FzM0FjdGlvbnM9e29hczNBY3Rpb25zfVxuICAgICAgICAgICAgICAgICAgICBvYXMzU2VsZWN0b3JzPXtvYXMzU2VsZWN0b3JzfVxuICAgICAgICAgICAgICAgICAgICBzcGVjQWN0aW9ucz17IHNwZWNBY3Rpb25zIH1cbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjZXM9e3NwZWNTZWxlY3RvcnMucHJvZHVjZXNPcHRpb25zRm9yKFtwYXRoLCBtZXRob2RdKSB9XG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y2VzVmFsdWU9eyBzcGVjU2VsZWN0b3JzLmN1cnJlbnRQcm9kdWNlc0ZvcihbcGF0aCwgbWV0aG9kXSkgfVxuICAgICAgICAgICAgICAgICAgICBzcGVjUGF0aD17c3BlY1BhdGgucHVzaChcInJlc3BvbnNlc1wiKX1cbiAgICAgICAgICAgICAgICAgICAgcGF0aD17IHBhdGggfVxuICAgICAgICAgICAgICAgICAgICBtZXRob2Q9eyBtZXRob2QgfVxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5UmVxdWVzdER1cmF0aW9uPXsgZGlzcGxheVJlcXVlc3REdXJhdGlvbiB9XG4gICAgICAgICAgICAgICAgICAgIGZuPXtmbn0gLz5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHsgIXNob3dFeHRlbnNpb25zIHx8ICFleHRlbnNpb25zLnNpemUgPyBudWxsIDpcbiAgICAgICAgICAgICAgICA8T3BlcmF0aW9uRXh0IGV4dGVuc2lvbnM9eyBleHRlbnNpb25zIH0gZ2V0Q29tcG9uZW50PXsgZ2V0Q29tcG9uZW50IH0gLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9Db2xsYXBzZT5cbiAgICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG5cbn1cbiIsImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcbmltcG9ydCB7IG9wSWQgfSBmcm9tIFwic3dhZ2dlci1jbGllbnQvZXMvaGVscGVyc1wiXG5pbXBvcnQgeyBJdGVyYWJsZSwgZnJvbUpTLCBNYXAgfSBmcm9tIFwiaW1tdXRhYmxlXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT3BlcmF0aW9uQ29udGFpbmVyIGV4dGVuZHMgUHVyZUNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzLCBjb250ZXh0KSB7XG4gICAgc3VwZXIocHJvcHMsIGNvbnRleHQpXG5cbiAgICBjb25zdCB7IHRyeUl0T3V0RW5hYmxlZCB9ID0gcHJvcHMuZ2V0Q29uZmlncygpXG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgdHJ5SXRPdXRFbmFibGVkLFxuICAgICAgZXhlY3V0ZUluUHJvZ3Jlc3M6IGZhbHNlXG4gICAgfVxuICB9XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBvcDogUHJvcFR5cGVzLmluc3RhbmNlT2YoSXRlcmFibGUpLmlzUmVxdWlyZWQsXG4gICAgdGFnOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgcGF0aDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIG1ldGhvZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIG9wZXJhdGlvbklkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgc2hvd1N1bW1hcnk6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgaXNTaG93bjogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBqdW1wVG9LZXk6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBhbGxvd1RyeUl0T3V0OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5T3BlcmF0aW9uSWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzQXV0aG9yaXplZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVJlcXVlc3REdXJhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgcmVzcG9uc2U6IFByb3BUeXBlcy5pbnN0YW5jZU9mKEl0ZXJhYmxlKSxcbiAgICByZXF1ZXN0OiBQcm9wVHlwZXMuaW5zdGFuY2VPZihJdGVyYWJsZSksXG4gICAgc2VjdXJpdHk6IFByb3BUeXBlcy5pbnN0YW5jZU9mKEl0ZXJhYmxlKSxcbiAgICBpc0RlZXBMaW5raW5nRW5hYmxlZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBzcGVjUGF0aDogSW1Qcm9wVHlwZXMubGlzdC5pc1JlcXVpcmVkLFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBhdXRoQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBvYXMzQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBvYXMzU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGF1dGhTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgc3BlY0FjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgbGF5b3V0QWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGxheW91dFNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGZuOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29uZmlnczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZFxuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBzaG93U3VtbWFyeTogdHJ1ZSxcbiAgICByZXNwb25zZTogbnVsbCxcbiAgICBhbGxvd1RyeUl0T3V0OiB0cnVlLFxuICAgIGRpc3BsYXlPcGVyYXRpb25JZDogZmFsc2UsXG4gICAgZGlzcGxheVJlcXVlc3REdXJhdGlvbjogZmFsc2VcbiAgfVxuXG4gIG1hcFN0YXRlVG9Qcm9wcyhuZXh0U3RhdGUsIHByb3BzKSB7XG4gICAgY29uc3QgeyBvcCwgbGF5b3V0U2VsZWN0b3JzLCBnZXRDb25maWdzIH0gPSBwcm9wc1xuICAgIGNvbnN0IHsgZG9jRXhwYW5zaW9uLCBkZWVwTGlua2luZywgZGlzcGxheU9wZXJhdGlvbklkLCBkaXNwbGF5UmVxdWVzdER1cmF0aW9uLCBzdXBwb3J0ZWRTdWJtaXRNZXRob2RzIH0gPSBnZXRDb25maWdzKClcbiAgICBjb25zdCBzaG93U3VtbWFyeSA9IGxheW91dFNlbGVjdG9ycy5zaG93U3VtbWFyeSgpXG4gICAgY29uc3Qgb3BlcmF0aW9uSWQgPSBvcC5nZXRJbihbXCJvcGVyYXRpb25cIiwgXCJfX29yaWdpbmFsT3BlcmF0aW9uSWRcIl0pIHx8IG9wLmdldEluKFtcIm9wZXJhdGlvblwiLCBcIm9wZXJhdGlvbklkXCJdKSB8fCBvcElkKG9wLmdldChcIm9wZXJhdGlvblwiKSwgcHJvcHMucGF0aCwgcHJvcHMubWV0aG9kKSB8fCBvcC5nZXQoXCJpZFwiKVxuICAgIGNvbnN0IGlzU2hvd25LZXkgPSBbXCJvcGVyYXRpb25zXCIsIHByb3BzLnRhZywgb3BlcmF0aW9uSWRdXG4gICAgY29uc3QgYWxsb3dUcnlJdE91dCA9IHN1cHBvcnRlZFN1Ym1pdE1ldGhvZHMuaW5kZXhPZihwcm9wcy5tZXRob2QpID49IDAgJiYgKHR5cGVvZiBwcm9wcy5hbGxvd1RyeUl0T3V0ID09PSBcInVuZGVmaW5lZFwiID9cbiAgICAgIHByb3BzLnNwZWNTZWxlY3RvcnMuYWxsb3dUcnlJdE91dEZvcihwcm9wcy5wYXRoLCBwcm9wcy5tZXRob2QpIDogcHJvcHMuYWxsb3dUcnlJdE91dClcbiAgICBjb25zdCBzZWN1cml0eSA9IG9wLmdldEluKFtcIm9wZXJhdGlvblwiLCBcInNlY3VyaXR5XCJdKSB8fCBwcm9wcy5zcGVjU2VsZWN0b3JzLnNlY3VyaXR5KClcblxuICAgIHJldHVybiB7XG4gICAgICBvcGVyYXRpb25JZCxcbiAgICAgIGlzRGVlcExpbmtpbmdFbmFibGVkOiBkZWVwTGlua2luZyxcbiAgICAgIHNob3dTdW1tYXJ5LFxuICAgICAgZGlzcGxheU9wZXJhdGlvbklkLFxuICAgICAgZGlzcGxheVJlcXVlc3REdXJhdGlvbixcbiAgICAgIGFsbG93VHJ5SXRPdXQsXG4gICAgICBzZWN1cml0eSxcbiAgICAgIGlzQXV0aG9yaXplZDogcHJvcHMuYXV0aFNlbGVjdG9ycy5pc0F1dGhvcml6ZWQoc2VjdXJpdHkpLFxuICAgICAgaXNTaG93bjogbGF5b3V0U2VsZWN0b3JzLmlzU2hvd24oaXNTaG93bktleSwgZG9jRXhwYW5zaW9uID09PSBcImZ1bGxcIiApLFxuICAgICAganVtcFRvS2V5OiBgcGF0aHMuJHtwcm9wcy5wYXRofS4ke3Byb3BzLm1ldGhvZH1gLFxuICAgICAgcmVzcG9uc2U6IHByb3BzLnNwZWNTZWxlY3RvcnMucmVzcG9uc2VGb3IocHJvcHMucGF0aCwgcHJvcHMubWV0aG9kKSxcbiAgICAgIHJlcXVlc3Q6IHByb3BzLnNwZWNTZWxlY3RvcnMucmVxdWVzdEZvcihwcm9wcy5wYXRoLCBwcm9wcy5tZXRob2QpXG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3QgeyBpc1Nob3duIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgcmVzb2x2ZWRTdWJ0cmVlID0gdGhpcy5nZXRSZXNvbHZlZFN1YnRyZWUoKVxuXG4gICAgaWYoaXNTaG93biAmJiByZXNvbHZlZFN1YnRyZWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKClcbiAgICB9XG4gIH1cblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICBjb25zdCB7IHJlc3BvbnNlLCBpc1Nob3duIH0gPSBuZXh0UHJvcHNcbiAgICBjb25zdCByZXNvbHZlZFN1YnRyZWUgPSB0aGlzLmdldFJlc29sdmVkU3VidHJlZSgpXG5cbiAgICBpZihyZXNwb25zZSAhPT0gdGhpcy5wcm9wcy5yZXNwb25zZSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGV4ZWN1dGVJblByb2dyZXNzOiBmYWxzZSB9KVxuICAgIH1cblxuICAgIGlmKGlzU2hvd24gJiYgcmVzb2x2ZWRTdWJ0cmVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucmVxdWVzdFJlc29sdmVkU3VidHJlZSgpXG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlU2hvd24gPSgpID0+IHtcbiAgICBsZXQgeyBsYXlvdXRBY3Rpb25zLCB0YWcsIG9wZXJhdGlvbklkLCBpc1Nob3duIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgcmVzb2x2ZWRTdWJ0cmVlID0gdGhpcy5nZXRSZXNvbHZlZFN1YnRyZWUoKVxuICAgIGlmKCFpc1Nob3duICYmIHJlc29sdmVkU3VidHJlZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyB0cmFuc2l0aW9uaW5nIGZyb20gY29sbGFwc2VkIHRvIGV4cGFuZGVkXG4gICAgICB0aGlzLnJlcXVlc3RSZXNvbHZlZFN1YnRyZWUoKVxuICAgIH1cbiAgICBsYXlvdXRBY3Rpb25zLnNob3coW1wib3BlcmF0aW9uc1wiLCB0YWcsIG9wZXJhdGlvbklkXSwgIWlzU2hvd24pXG4gIH1cblxuICBvbkNhbmNlbENsaWNrPSgpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHt0cnlJdE91dEVuYWJsZWQ6ICF0aGlzLnN0YXRlLnRyeUl0T3V0RW5hYmxlZH0pXG4gIH1cblxuICBvblRyeW91dENsaWNrID0oKSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7dHJ5SXRPdXRFbmFibGVkOiAhdGhpcy5zdGF0ZS50cnlJdE91dEVuYWJsZWR9KVxuICB9XG5cbiAgb25SZXNldENsaWNrID0gKHBhdGhNZXRob2QpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZSA9IHRoaXMucHJvcHMub2FzM1NlbGVjdG9ycy5zZWxlY3REZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZSguLi5wYXRoTWV0aG9kKVxuICAgIHRoaXMucHJvcHMub2FzM0FjdGlvbnMuc2V0UmVxdWVzdEJvZHlWYWx1ZSh7IHZhbHVlOiBkZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZSwgcGF0aE1ldGhvZCB9KVxuICB9XG5cbiAgb25FeGVjdXRlID0gKCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBleGVjdXRlSW5Qcm9ncmVzczogdHJ1ZSB9KVxuICB9XG5cbiAgZ2V0UmVzb2x2ZWRTdWJ0cmVlID0gKCkgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHNwZWNTZWxlY3RvcnMsXG4gICAgICBwYXRoLFxuICAgICAgbWV0aG9kLFxuICAgICAgc3BlY1BhdGhcbiAgICB9ID0gdGhpcy5wcm9wc1xuXG4gICAgaWYoc3BlY1BhdGgpIHtcbiAgICAgIHJldHVybiBzcGVjU2VsZWN0b3JzLnNwZWNSZXNvbHZlZFN1YnRyZWUoc3BlY1BhdGgudG9KUygpKVxuICAgIH1cblxuICAgIHJldHVybiBzcGVjU2VsZWN0b3JzLnNwZWNSZXNvbHZlZFN1YnRyZWUoW1wicGF0aHNcIiwgcGF0aCwgbWV0aG9kXSlcbiAgfVxuXG4gIHJlcXVlc3RSZXNvbHZlZFN1YnRyZWUgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgc3BlY0FjdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgbWV0aG9kLFxuICAgICAgc3BlY1BhdGhcbiAgICB9ID0gdGhpcy5wcm9wc1xuXG5cbiAgICBpZihzcGVjUGF0aCkge1xuICAgICAgcmV0dXJuIHNwZWNBY3Rpb25zLnJlcXVlc3RSZXNvbHZlZFN1YnRyZWUoc3BlY1BhdGgudG9KUygpKVxuICAgIH1cblxuICAgIHJldHVybiBzcGVjQWN0aW9ucy5yZXF1ZXN0UmVzb2x2ZWRTdWJ0cmVlKFtcInBhdGhzXCIsIHBhdGgsIG1ldGhvZF0pXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHtcbiAgICAgIG9wOiB1bnJlc29sdmVkT3AsXG4gICAgICB0YWcsXG4gICAgICBwYXRoLFxuICAgICAgbWV0aG9kLFxuICAgICAgc2VjdXJpdHksXG4gICAgICBpc0F1dGhvcml6ZWQsXG4gICAgICBvcGVyYXRpb25JZCxcbiAgICAgIHNob3dTdW1tYXJ5LFxuICAgICAgaXNTaG93bixcbiAgICAgIGp1bXBUb0tleSxcbiAgICAgIGFsbG93VHJ5SXRPdXQsXG4gICAgICByZXNwb25zZSxcbiAgICAgIHJlcXVlc3QsXG4gICAgICBkaXNwbGF5T3BlcmF0aW9uSWQsXG4gICAgICBkaXNwbGF5UmVxdWVzdER1cmF0aW9uLFxuICAgICAgaXNEZWVwTGlua2luZ0VuYWJsZWQsXG4gICAgICBzcGVjUGF0aCxcbiAgICAgIHNwZWNTZWxlY3RvcnMsXG4gICAgICBzcGVjQWN0aW9ucyxcbiAgICAgIGdldENvbXBvbmVudCxcbiAgICAgIGdldENvbmZpZ3MsXG4gICAgICBsYXlvdXRTZWxlY3RvcnMsXG4gICAgICBsYXlvdXRBY3Rpb25zLFxuICAgICAgYXV0aEFjdGlvbnMsXG4gICAgICBhdXRoU2VsZWN0b3JzLFxuICAgICAgb2FzM0FjdGlvbnMsXG4gICAgICBvYXMzU2VsZWN0b3JzLFxuICAgICAgZm5cbiAgICB9ID0gdGhpcy5wcm9wc1xuXG4gICAgY29uc3QgT3BlcmF0aW9uID0gZ2V0Q29tcG9uZW50KCBcIm9wZXJhdGlvblwiIClcblxuICAgIGNvbnN0IHJlc29sdmVkU3VidHJlZSA9IHRoaXMuZ2V0UmVzb2x2ZWRTdWJ0cmVlKCkgfHwgTWFwKClcblxuICAgIGNvbnN0IG9wZXJhdGlvblByb3BzID0gZnJvbUpTKHtcbiAgICAgIG9wOiByZXNvbHZlZFN1YnRyZWUsXG4gICAgICB0YWcsXG4gICAgICBwYXRoLFxuICAgICAgc3VtbWFyeTogdW5yZXNvbHZlZE9wLmdldEluKFtcIm9wZXJhdGlvblwiLCBcInN1bW1hcnlcIl0pIHx8IFwiXCIsXG4gICAgICBkZXByZWNhdGVkOiByZXNvbHZlZFN1YnRyZWUuZ2V0KFwiZGVwcmVjYXRlZFwiKSB8fCB1bnJlc29sdmVkT3AuZ2V0SW4oW1wib3BlcmF0aW9uXCIsIFwiZGVwcmVjYXRlZFwiXSkgfHwgZmFsc2UsXG4gICAgICBtZXRob2QsXG4gICAgICBzZWN1cml0eSxcbiAgICAgIGlzQXV0aG9yaXplZCxcbiAgICAgIG9wZXJhdGlvbklkLFxuICAgICAgb3JpZ2luYWxPcGVyYXRpb25JZDogcmVzb2x2ZWRTdWJ0cmVlLmdldEluKFtcIm9wZXJhdGlvblwiLCBcIl9fb3JpZ2luYWxPcGVyYXRpb25JZFwiXSksXG4gICAgICBzaG93U3VtbWFyeSxcbiAgICAgIGlzU2hvd24sXG4gICAgICBqdW1wVG9LZXksXG4gICAgICBhbGxvd1RyeUl0T3V0LFxuICAgICAgcmVxdWVzdCxcbiAgICAgIGRpc3BsYXlPcGVyYXRpb25JZCxcbiAgICAgIGRpc3BsYXlSZXF1ZXN0RHVyYXRpb24sXG4gICAgICBpc0RlZXBMaW5raW5nRW5hYmxlZCxcbiAgICAgIGV4ZWN1dGVJblByb2dyZXNzOiB0aGlzLnN0YXRlLmV4ZWN1dGVJblByb2dyZXNzLFxuICAgICAgdHJ5SXRPdXRFbmFibGVkOiB0aGlzLnN0YXRlLnRyeUl0T3V0RW5hYmxlZFxuICAgIH0pXG5cbiAgICByZXR1cm4gKFxuICAgICAgPE9wZXJhdGlvblxuICAgICAgICBvcGVyYXRpb249e29wZXJhdGlvblByb3BzfVxuICAgICAgICByZXNwb25zZT17cmVzcG9uc2V9XG4gICAgICAgIHJlcXVlc3Q9e3JlcXVlc3R9XG4gICAgICAgIGlzU2hvd249e2lzU2hvd259XG5cbiAgICAgICAgdG9nZ2xlU2hvd249e3RoaXMudG9nZ2xlU2hvd259XG4gICAgICAgIG9uVHJ5b3V0Q2xpY2s9e3RoaXMub25UcnlvdXRDbGlja31cbiAgICAgICAgb25SZXNldENsaWNrPXt0aGlzLm9uUmVzZXRDbGlja31cbiAgICAgICAgb25DYW5jZWxDbGljaz17dGhpcy5vbkNhbmNlbENsaWNrfVxuICAgICAgICBvbkV4ZWN1dGU9e3RoaXMub25FeGVjdXRlfVxuICAgICAgICBzcGVjUGF0aD17c3BlY1BhdGh9XG5cbiAgICAgICAgc3BlY0FjdGlvbnM9eyBzcGVjQWN0aW9ucyB9XG4gICAgICAgIHNwZWNTZWxlY3RvcnM9eyBzcGVjU2VsZWN0b3JzIH1cbiAgICAgICAgb2FzM0FjdGlvbnM9e29hczNBY3Rpb25zfVxuICAgICAgICBvYXMzU2VsZWN0b3JzPXtvYXMzU2VsZWN0b3JzfVxuICAgICAgICBsYXlvdXRBY3Rpb25zPXsgbGF5b3V0QWN0aW9ucyB9XG4gICAgICAgIGxheW91dFNlbGVjdG9ycz17IGxheW91dFNlbGVjdG9ycyB9XG4gICAgICAgIGF1dGhBY3Rpb25zPXsgYXV0aEFjdGlvbnMgfVxuICAgICAgICBhdXRoU2VsZWN0b3JzPXsgYXV0aFNlbGVjdG9ycyB9XG4gICAgICAgIGdldENvbXBvbmVudD17IGdldENvbXBvbmVudCB9XG4gICAgICAgIGdldENvbmZpZ3M9eyBnZXRDb25maWdzIH1cbiAgICAgICAgZm49e2ZufVxuICAgICAgLz5cbiAgICApXG4gIH1cblxufVxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJsb2Rhc2gvdG9TdHJpbmdcIik7IiwiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgeyBJdGVyYWJsZSwgTGlzdCB9IGZyb20gXCJpbW11dGFibGVcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcbmltcG9ydCB0b1N0cmluZyBmcm9tIFwibG9kYXNoL3RvU3RyaW5nXCJcblxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBPcGVyYXRpb25TdW1tYXJ5IGV4dGVuZHMgUHVyZUNvbXBvbmVudCB7XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBzcGVjUGF0aDogSW1Qcm9wVHlwZXMubGlzdC5pc1JlcXVpcmVkLFxuICAgIG9wZXJhdGlvblByb3BzOiBQcm9wVHlwZXMuaW5zdGFuY2VPZihJdGVyYWJsZSkuaXNSZXF1aXJlZCxcbiAgICBpc1Nob3duOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIHRvZ2dsZVNob3duOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBnZXRDb25maWdzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGF1dGhBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGF1dGhTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QsXG4gIH1cblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIG9wZXJhdGlvblByb3BzOiBudWxsLFxuICAgIHNwZWNQYXRoOiBMaXN0KCksXG4gICAgc3VtbWFyeTogXCJcIlxuICB9XG5cbiAgcmVuZGVyKCkge1xuXG4gICAgbGV0IHtcbiAgICAgIGlzU2hvd24sXG4gICAgICB0b2dnbGVTaG93bixcbiAgICAgIGdldENvbXBvbmVudCxcbiAgICAgIGF1dGhBY3Rpb25zLFxuICAgICAgYXV0aFNlbGVjdG9ycyxcbiAgICAgIG9wZXJhdGlvblByb3BzLFxuICAgICAgc3BlY1BhdGgsXG4gICAgfSA9IHRoaXMucHJvcHNcblxuICAgIGxldCB7XG4gICAgICBzdW1tYXJ5LFxuICAgICAgaXNBdXRob3JpemVkLFxuICAgICAgbWV0aG9kLFxuICAgICAgb3AsXG4gICAgICBzaG93U3VtbWFyeSxcbiAgICAgIHBhdGgsXG4gICAgICBvcGVyYXRpb25JZCxcbiAgICAgIG9yaWdpbmFsT3BlcmF0aW9uSWQsXG4gICAgICBkaXNwbGF5T3BlcmF0aW9uSWQsXG4gICAgfSA9IG9wZXJhdGlvblByb3BzLnRvSlMoKVxuXG4gICAgbGV0IHtcbiAgICAgIHN1bW1hcnk6IHJlc29sdmVkU3VtbWFyeSxcbiAgICB9ID0gb3BcblxuICAgIGxldCBzZWN1cml0eSA9IG9wZXJhdGlvblByb3BzLmdldChcInNlY3VyaXR5XCIpXG5cbiAgICBjb25zdCBBdXRob3JpemVPcGVyYXRpb25CdG4gPSBnZXRDb21wb25lbnQoXCJhdXRob3JpemVPcGVyYXRpb25CdG5cIiwgdHJ1ZSlcbiAgICBjb25zdCBPcGVyYXRpb25TdW1tYXJ5TWV0aG9kID0gZ2V0Q29tcG9uZW50KFwiT3BlcmF0aW9uU3VtbWFyeU1ldGhvZFwiKVxuICAgIGNvbnN0IE9wZXJhdGlvblN1bW1hcnlQYXRoID0gZ2V0Q29tcG9uZW50KFwiT3BlcmF0aW9uU3VtbWFyeVBhdGhcIilcbiAgICBjb25zdCBKdW1wVG9QYXRoID0gZ2V0Q29tcG9uZW50KFwiSnVtcFRvUGF0aFwiLCB0cnVlKVxuICAgIGNvbnN0IENvcHlUb0NsaXBib2FyZEJ0biA9IGdldENvbXBvbmVudChcIkNvcHlUb0NsaXBib2FyZEJ0blwiLCB0cnVlKVxuICAgIGNvbnN0IEFycm93VXBJY29uID0gZ2V0Q29tcG9uZW50KFwiQXJyb3dVcEljb25cIilcbiAgICBjb25zdCBBcnJvd0Rvd25JY29uID0gZ2V0Q29tcG9uZW50KFwiQXJyb3dEb3duSWNvblwiKVxuXG4gICAgY29uc3QgaGFzU2VjdXJpdHkgPSBzZWN1cml0eSAmJiAhIXNlY3VyaXR5LmNvdW50KClcbiAgICBjb25zdCBzZWN1cml0eUlzT3B0aW9uYWwgPSBoYXNTZWN1cml0eSAmJiBzZWN1cml0eS5zaXplID09PSAxICYmIHNlY3VyaXR5LmZpcnN0KCkuaXNFbXB0eSgpXG4gICAgY29uc3QgYWxsb3dBbm9ueW1vdXMgPSAhaGFzU2VjdXJpdHkgfHwgc2VjdXJpdHlJc09wdGlvbmFsXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgb3BibG9jay1zdW1tYXJ5IG9wYmxvY2stc3VtbWFyeS0ke21ldGhvZH1gfSA+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtpc1Nob3dufVxuICAgICAgICAgIGNsYXNzTmFtZT1cIm9wYmxvY2stc3VtbWFyeS1jb250cm9sXCJcbiAgICAgICAgICBvbkNsaWNrPXt0b2dnbGVTaG93bn1cbiAgICAgICAgPlxuICAgICAgICAgIDxPcGVyYXRpb25TdW1tYXJ5TWV0aG9kIG1ldGhvZD17bWV0aG9kfSAvPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwib3BibG9jay1zdW1tYXJ5LXBhdGgtZGVzY3JpcHRpb24td3JhcHBlclwiPlxuICAgICAgICAgICAgPE9wZXJhdGlvblN1bW1hcnlQYXRoIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fSBvcGVyYXRpb25Qcm9wcz17b3BlcmF0aW9uUHJvcHN9IHNwZWNQYXRoPXtzcGVjUGF0aH0gLz5cblxuICAgICAgICAgICAgeyFzaG93U3VtbWFyeSA/IG51bGwgOlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm9wYmxvY2stc3VtbWFyeS1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgIHt0b1N0cmluZyhyZXNvbHZlZFN1bW1hcnkgfHwgc3VtbWFyeSl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAge2Rpc3BsYXlPcGVyYXRpb25JZCAmJiAob3JpZ2luYWxPcGVyYXRpb25JZCB8fCBvcGVyYXRpb25JZCkgPyA8c3BhbiBjbGFzc05hbWU9XCJvcGJsb2NrLXN1bW1hcnktb3BlcmF0aW9uLWlkXCI+e29yaWdpbmFsT3BlcmF0aW9uSWQgfHwgb3BlcmF0aW9uSWR9PC9zcGFuPiA6IG51bGx9XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8Q29weVRvQ2xpcGJvYXJkQnRuIHRleHRUb0NvcHk9e2Ake3NwZWNQYXRoLmdldCgxKX1gfSAvPlxuICAgICAgICB7XG4gICAgICAgICAgYWxsb3dBbm9ueW1vdXMgPyBudWxsIDpcbiAgICAgICAgICAgIDxBdXRob3JpemVPcGVyYXRpb25CdG5cbiAgICAgICAgICAgICAgaXNBdXRob3JpemVkPXtpc0F1dGhvcml6ZWR9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhcHBsaWNhYmxlRGVmaW5pdGlvbnMgPSBhdXRoU2VsZWN0b3JzLmRlZmluaXRpb25zRm9yUmVxdWlyZW1lbnRzKHNlY3VyaXR5KVxuICAgICAgICAgICAgICAgIGF1dGhBY3Rpb25zLnNob3dEZWZpbml0aW9ucyhhcHBsaWNhYmxlRGVmaW5pdGlvbnMpXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIDxKdW1wVG9QYXRoIHBhdGg9e3NwZWNQYXRofSAvPnsvKiBUT0RPOiB1c2Ugd3JhcENvbXBvbmVudHMgaGVyZSwgc3dhZ2dlci11aSBkb2Vzbid0IGNhcmUgYWJvdXQganVtcFRvUGF0aCAqL31cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGFyaWEtbGFiZWw9e2Ake21ldGhvZH0gJHtwYXRoLnJlcGxhY2UoL1xcLy9nLCBcIlxcdTIwMGIvXCIpfWB9XG4gICAgICAgICAgY2xhc3NOYW1lPVwib3BibG9jay1jb250cm9sLWFycm93XCJcbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtpc1Nob3dufVxuICAgICAgICAgIHRhYkluZGV4PVwiLTFcIlxuICAgICAgICAgIG9uQ2xpY2s9e3RvZ2dsZVNob3dufT5cbiAgICAgICAgICB7aXNTaG93biA/IDxBcnJvd1VwSWNvbiBjbGFzc05hbWU9XCJhcnJvd1wiIC8+IDogPEFycm93RG93bkljb24gY2xhc3NOYW1lPVwiYXJyb3dcIiAvPn1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHsgSXRlcmFibGUgfSBmcm9tIFwiaW1tdXRhYmxlXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT3BlcmF0aW9uU3VtbWFyeU1ldGhvZCBleHRlbmRzIFB1cmVDb21wb25lbnQge1xuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb3BlcmF0aW9uUHJvcHM6IFByb3BUeXBlcy5pbnN0YW5jZU9mKEl0ZXJhYmxlKS5pc1JlcXVpcmVkLFxuICAgIG1ldGhvZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBvcGVyYXRpb25Qcm9wczogbnVsbCxcbiAgfVxuICByZW5kZXIoKSB7XG5cbiAgICBsZXQge1xuICAgICAgbWV0aG9kLFxuICAgIH0gPSB0aGlzLnByb3BzXG5cbiAgICByZXR1cm4gKFxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwib3BibG9jay1zdW1tYXJ5LW1ldGhvZFwiPnttZXRob2QudG9VcHBlckNhc2UoKX08L3NwYW4+XG4gICAgKVxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCB7IEl0ZXJhYmxlIH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgeyBjcmVhdGVEZWVwTGlua1BhdGggfSBmcm9tIFwiY29yZS91dGlsc1wiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBPcGVyYXRpb25TdW1tYXJ5UGF0aCBleHRlbmRzIFB1cmVDb21wb25lbnR7XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBzcGVjUGF0aDogSW1Qcm9wVHlwZXMubGlzdC5pc1JlcXVpcmVkLFxuICAgIG9wZXJhdGlvblByb3BzOiBQcm9wVHlwZXMuaW5zdGFuY2VPZihJdGVyYWJsZSkuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIH1cblxuICByZW5kZXIoKXtcbiAgICBsZXQge1xuICAgICAgZ2V0Q29tcG9uZW50LFxuICAgICAgb3BlcmF0aW9uUHJvcHMsXG4gICAgfSA9IHRoaXMucHJvcHNcblxuXG4gICAgbGV0IHtcbiAgICAgIGRlcHJlY2F0ZWQsXG4gICAgICBpc1Nob3duLFxuICAgICAgcGF0aCxcbiAgICAgIHRhZyxcbiAgICAgIG9wZXJhdGlvbklkLFxuICAgICAgaXNEZWVwTGlua2luZ0VuYWJsZWQsXG4gICAgfSA9IG9wZXJhdGlvblByb3BzLnRvSlMoKVxuXG4gICAgLyoqXG4gICAgICogQWRkIDx3YnI+IHdvcmQtYnJlYWsgZWxlbWVudHMgYmV0d2VlbiBlYWNoIHNlZ21lbnQsIGJlZm9yZSB0aGUgc2xhc2hcbiAgICAgKiB0byBhbGxvdyBicm93c2VycyBhbiBvcHBvcnR1bml0eSB0byBicmVhayBsb25nIHBhdGhzIGludG8gc2Vuc2libGUgc2VnbWVudHMuXG4gICAgICovXG4gICAgY29uc3QgcGF0aFBhcnRzID0gcGF0aC5zcGxpdCgvKD89XFwvKS9nKVxuICAgIGZvciAobGV0IGkgPSAxOyBpIDwgcGF0aFBhcnRzLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgICBwYXRoUGFydHMuc3BsaWNlKGksIDAsIDx3YnIga2V5PXtpfSAvPilcbiAgICB9XG5cbiAgICBjb25zdCBEZWVwTGluayA9IGdldENvbXBvbmVudCggXCJEZWVwTGlua1wiIClcblxuICAgIHJldHVybihcbiAgICAgIDxzcGFuIGNsYXNzTmFtZT17IGRlcHJlY2F0ZWQgPyBcIm9wYmxvY2stc3VtbWFyeS1wYXRoX19kZXByZWNhdGVkXCIgOiBcIm9wYmxvY2stc3VtbWFyeS1wYXRoXCIgfVxuICAgICAgICBkYXRhLXBhdGg9e3BhdGh9PlxuICAgICAgICA8RGVlcExpbmtcbiAgICAgICAgICAgIGVuYWJsZWQ9e2lzRGVlcExpbmtpbmdFbmFibGVkfVxuICAgICAgICAgICAgaXNTaG93bj17aXNTaG93bn1cbiAgICAgICAgICAgIHBhdGg9e2NyZWF0ZURlZXBMaW5rUGF0aChgJHt0YWd9LyR7b3BlcmF0aW9uSWR9YCl9XG4gICAgICAgICAgICB0ZXh0PXtwYXRoUGFydHN9IC8+XG4gICAgICA8L3NwYW4+XG5cbiAgICApXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmV4cG9ydCBjb25zdCBPcGVyYXRpb25FeHQgPSAoeyBleHRlbnNpb25zLCBnZXRDb21wb25lbnQgfSkgPT4ge1xuICAgIGxldCBPcGVyYXRpb25FeHRSb3cgPSBnZXRDb21wb25lbnQoXCJPcGVyYXRpb25FeHRSb3dcIilcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJvcGJsb2NrLXNlY3Rpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJvcGJsb2NrLXNlY3Rpb24taGVhZGVyXCI+XG4gICAgICAgICAgPGg0PkV4dGVuc2lvbnM8L2g0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0YWJsZS1jb250YWluZXJcIj5cblxuICAgICAgICAgIDx0YWJsZT5cbiAgICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJjb2xfaGVhZGVyXCI+RmllbGQ8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJjb2xfaGVhZGVyXCI+VmFsdWU8L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnMuZW50cnlTZXEoKS5tYXAoKFtrLCB2XSkgPT4gPE9wZXJhdGlvbkV4dFJvdyBrZXk9e2Ake2t9LSR7dn1gfSB4S2V5PXtrfSB4VmFsPXt2fSAvPilcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgKVxufVxuT3BlcmF0aW9uRXh0LnByb3BUeXBlcyA9IHtcbiAgZXh0ZW5zaW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbn1cblxuZXhwb3J0IGRlZmF1bHQgT3BlcmF0aW9uRXh0XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5leHBvcnQgY29uc3QgT3BlcmF0aW9uRXh0Um93ID0gKHsgeEtleSwgeFZhbCB9KSA9PiB7XG4gIGNvbnN0IHhOb3JtYWxpemVkVmFsdWUgPSAheFZhbCA/IG51bGwgOiB4VmFsLnRvSlMgPyB4VmFsLnRvSlMoKSA6IHhWYWxcblxuICAgIHJldHVybiAoPHRyPlxuICAgICAgICA8dGQ+eyB4S2V5IH08L3RkPlxuICAgICAgICA8dGQ+eyBKU09OLnN0cmluZ2lmeSh4Tm9ybWFsaXplZFZhbHVlKSB9PC90ZD5cbiAgICA8L3RyPilcbn1cbk9wZXJhdGlvbkV4dFJvdy5wcm9wVHlwZXMgPSB7XG4gIHhLZXk6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHhWYWw6IFByb3BUeXBlcy5hbnlcbn1cblxuZXhwb3J0IGRlZmF1bHQgT3BlcmF0aW9uRXh0Um93XG4iLCIvKipcbiAqIFJlcGxhY2UgaW52YWxpZCBjaGFyYWN0ZXJzIGZyb20gYSBzdHJpbmcgdG8gY3JlYXRlIGFuIGh0bWwtcmVhZHkgSURcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gaWQgQSBzdHJpbmcgdGhhdCBtYXkgY29udGFpbiBpbnZhbGlkIGNoYXJhY3RlcnMgZm9yIHRoZSBIVE1MIElEIGF0dHJpYnV0ZVxuICogQHBhcmFtIHtzdHJpbmd9IFtyZXBsYWNlbWVudD1fXSBUaGUgc3RyaW5nIHRvIHJlcGxhY2UgaW52YWxpZCBjaGFyYWN0ZXJzIHdpdGg7IFwiX1wiIGJ5IGRlZmF1bHRcbiAqIEByZXR1cm4ge3N0cmluZ30gSW5mb3JtYXRpb24gYWJvdXQgdGhlIHBhcmFtZXRlciBzY2hlbWFcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSHRtbFJlYWR5SWQoaWQsIHJlcGxhY2VtZW50ID0gXCJfXCIpIHtcbiAgcmV0dXJuIGlkLnJlcGxhY2UoL1teXFx3LV0vZywgcmVwbGFjZW1lbnQpXG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IGZyb21KUywgSXRlcmFibGUgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcbmltcG9ydCB7IGRlZmF1bHRTdGF0dXNDb2RlLCBnZXRBY2NlcHRDb250cm9sbGluZ1Jlc3BvbnNlIH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuaW1wb3J0IGNyZWF0ZUh0bWxSZWFkeUlkIGZyb20gXCJjb3JlL3V0aWxzL2NyZWF0ZS1odG1sLXJlYWR5LWlkXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVzcG9uc2VzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICB0cnlJdE91dFJlc3BvbnNlOiBQcm9wVHlwZXMuaW5zdGFuY2VPZihJdGVyYWJsZSksXG4gICAgcmVzcG9uc2VzOiBQcm9wVHlwZXMuaW5zdGFuY2VPZihJdGVyYWJsZSkuaXNSZXF1aXJlZCxcbiAgICBwcm9kdWNlczogUHJvcFR5cGVzLmluc3RhbmNlT2YoSXRlcmFibGUpLFxuICAgIHByb2R1Y2VzVmFsdWU6IFByb3BUeXBlcy5hbnksXG4gICAgZGlzcGxheVJlcXVlc3REdXJhdGlvbjogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBwYXRoOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgbWV0aG9kOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGdldENvbmZpZ3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHNwZWNBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgb2FzM0FjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBvYXMzU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgc3BlY1BhdGg6IEltUHJvcFR5cGVzLmxpc3QuaXNSZXF1aXJlZCxcbiAgICBmbjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkXG4gIH1cblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIHRyeUl0T3V0UmVzcG9uc2U6IG51bGwsXG4gICAgcHJvZHVjZXM6IGZyb21KUyhbXCJhcHBsaWNhdGlvbi9qc29uXCJdKSxcbiAgICBkaXNwbGF5UmVxdWVzdER1cmF0aW9uOiBmYWxzZVxuICB9XG5cbiAgLy8gVGhlc2UgcGVyZm9ybWFuY2UtZW5oYW5jaW5nIGNoZWNrcyB3ZXJlIGRpc2FibGVkIGFzIHBhcnQgb2YgTXVsdGlwbGUgRXhhbXBsZXNcbiAgLy8gYmVjYXVzZSB0aGV5IHdlcmUgY2F1c2luZyBkYXRhLWNvbnNpc3RlbmN5IGlzc3Vlc1xuICAvL1xuICAvLyBzaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzKSB7XG4gIC8vICAgLy8gQlVHOiBwcm9wcy50cnlJdE91dFJlc3BvbnNlIGlzIGFsd2F5cyBjb21pbmcgYmFjayBhcyBhIG5ldyBJbW11dGFibGUgaW5zdGFuY2VcbiAgLy8gICBsZXQgcmVuZGVyID0gdGhpcy5wcm9wcy50cnlJdE91dFJlc3BvbnNlICE9PSBuZXh0UHJvcHMudHJ5SXRPdXRSZXNwb25zZVxuICAvLyAgIHx8IHRoaXMucHJvcHMucmVzcG9uc2VzICE9PSBuZXh0UHJvcHMucmVzcG9uc2VzXG4gIC8vICAgfHwgdGhpcy5wcm9wcy5wcm9kdWNlcyAhPT0gbmV4dFByb3BzLnByb2R1Y2VzXG4gIC8vICAgfHwgdGhpcy5wcm9wcy5wcm9kdWNlc1ZhbHVlICE9PSBuZXh0UHJvcHMucHJvZHVjZXNWYWx1ZVxuICAvLyAgIHx8IHRoaXMucHJvcHMuZGlzcGxheVJlcXVlc3REdXJhdGlvbiAhPT0gbmV4dFByb3BzLmRpc3BsYXlSZXF1ZXN0RHVyYXRpb25cbiAgLy8gICB8fCB0aGlzLnByb3BzLnBhdGggIT09IG5leHRQcm9wcy5wYXRoXG4gIC8vICAgfHwgdGhpcy5wcm9wcy5tZXRob2QgIT09IG5leHRQcm9wcy5tZXRob2RcbiAgLy8gICByZXR1cm4gcmVuZGVyXG4gIC8vIH1cblxuXHRvbkNoYW5nZVByb2R1Y2VzV3JhcHBlciA9ICggdmFsICkgPT4gdGhpcy5wcm9wcy5zcGVjQWN0aW9ucy5jaGFuZ2VQcm9kdWNlc1ZhbHVlKFt0aGlzLnByb3BzLnBhdGgsIHRoaXMucHJvcHMubWV0aG9kXSwgdmFsKVxuXG4gIG9uUmVzcG9uc2VDb250ZW50VHlwZUNoYW5nZSA9ICh7IGNvbnRyb2xzQWNjZXB0SGVhZGVyLCB2YWx1ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvYXMzQWN0aW9ucywgcGF0aCwgbWV0aG9kIH0gPSB0aGlzLnByb3BzXG4gICAgaWYoY29udHJvbHNBY2NlcHRIZWFkZXIpIHtcbiAgICAgIG9hczNBY3Rpb25zLnNldFJlc3BvbnNlQ29udGVudFR5cGUoe1xuICAgICAgICB2YWx1ZSxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgbWV0aG9kXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQge1xuICAgICAgcmVzcG9uc2VzLFxuICAgICAgdHJ5SXRPdXRSZXNwb25zZSxcbiAgICAgIGdldENvbXBvbmVudCxcbiAgICAgIGdldENvbmZpZ3MsXG4gICAgICBzcGVjU2VsZWN0b3JzLFxuICAgICAgZm4sXG4gICAgICBwcm9kdWNlc1ZhbHVlLFxuICAgICAgZGlzcGxheVJlcXVlc3REdXJhdGlvbixcbiAgICAgIHNwZWNQYXRoLFxuICAgICAgcGF0aCxcbiAgICAgIG1ldGhvZCxcbiAgICAgIG9hczNTZWxlY3RvcnMsXG4gICAgICBvYXMzQWN0aW9ucyxcbiAgICB9ID0gdGhpcy5wcm9wc1xuICAgIGxldCBkZWZhdWx0Q29kZSA9IGRlZmF1bHRTdGF0dXNDb2RlKCByZXNwb25zZXMgKVxuXG4gICAgY29uc3QgQ29udGVudFR5cGUgPSBnZXRDb21wb25lbnQoIFwiY29udGVudFR5cGVcIiApXG4gICAgY29uc3QgTGl2ZVJlc3BvbnNlID0gZ2V0Q29tcG9uZW50KCBcImxpdmVSZXNwb25zZVwiIClcbiAgICBjb25zdCBSZXNwb25zZSA9IGdldENvbXBvbmVudCggXCJyZXNwb25zZVwiIClcblxuICAgIGxldCBwcm9kdWNlcyA9IHRoaXMucHJvcHMucHJvZHVjZXMgJiYgdGhpcy5wcm9wcy5wcm9kdWNlcy5zaXplID8gdGhpcy5wcm9wcy5wcm9kdWNlcyA6IFJlc3BvbnNlcy5kZWZhdWx0UHJvcHMucHJvZHVjZXNcblxuICAgIGNvbnN0IGlzU3BlY09BUzMgPSBzcGVjU2VsZWN0b3JzLmlzT0FTMygpXG5cbiAgICBjb25zdCBhY2NlcHRDb250cm9sbGluZ1Jlc3BvbnNlID0gaXNTcGVjT0FTMyA/XG4gICAgICBnZXRBY2NlcHRDb250cm9sbGluZ1Jlc3BvbnNlKHJlc3BvbnNlcykgOiBudWxsXG5cbiAgICBjb25zdCByZWdpb25JZCA9IGNyZWF0ZUh0bWxSZWFkeUlkKGAke21ldGhvZH0ke3BhdGh9X3Jlc3BvbnNlc2ApXG4gICAgY29uc3QgY29udHJvbElkID0gYCR7cmVnaW9uSWR9X3NlbGVjdGBcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlc3BvbnNlcy13cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwib3BibG9jay1zZWN0aW9uLWhlYWRlclwiPlxuICAgICAgICAgIDxoND5SZXNwb25zZXM8L2g0PlxuICAgICAgICAgICAgeyBzcGVjU2VsZWN0b3JzLmlzT0FTMygpID8gbnVsbCA6IDxsYWJlbCBodG1sRm9yPXtjb250cm9sSWR9PlxuICAgICAgICAgICAgICA8c3Bhbj5SZXNwb25zZSBjb250ZW50IHR5cGU8L3NwYW4+XG4gICAgICAgICAgICAgIDxDb250ZW50VHlwZSB2YWx1ZT17cHJvZHVjZXNWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhQ29udHJvbHM9e3JlZ2lvbklkfVxuICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWFMYWJlbD1cIlJlc3BvbnNlIGNvbnRlbnQgdHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZXhlY3V0ZS1jb250ZW50LXR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlcz17cHJvZHVjZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbElkPXtjb250cm9sSWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2VQcm9kdWNlc1dyYXBwZXJ9IC8+XG4gICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPiB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlc3BvbnNlcy1pbm5lclwiPlxuICAgICAgICAgIHtcbiAgICAgICAgICAgICF0cnlJdE91dFJlc3BvbnNlID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaXZlUmVzcG9uc2UgcmVzcG9uc2U9eyB0cnlJdE91dFJlc3BvbnNlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudD17IGdldENvbXBvbmVudCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDb25maWdzPXsgZ2V0Q29uZmlncyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjU2VsZWN0b3JzPXsgc3BlY1NlbGVjdG9ycyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoPXsgdGhpcy5wcm9wcy5wYXRoIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZD17IHRoaXMucHJvcHMubWV0aG9kIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlSZXF1ZXN0RHVyYXRpb249eyBkaXNwbGF5UmVxdWVzdER1cmF0aW9uIH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmVzcG9uc2VzPC9oND5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8dGFibGUgYXJpYS1saXZlPVwicG9saXRlXCIgY2xhc3NOYW1lPVwicmVzcG9uc2VzLXRhYmxlXCIgaWQ9e3JlZ2lvbklkfSByb2xlPVwicmVnaW9uXCI+XG4gICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgIDx0ciBjbGFzc05hbWU9XCJyZXNwb25zZXMtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT1cImNvbF9oZWFkZXIgcmVzcG9uc2UtY29sX3N0YXR1c1wiPkNvZGU8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJjb2xfaGVhZGVyIHJlc3BvbnNlLWNvbF9kZXNjcmlwdGlvblwiPkRlc2NyaXB0aW9uPC90ZD5cbiAgICAgICAgICAgICAgICB7IHNwZWNTZWxlY3RvcnMuaXNPQVMzKCkgPyA8dGQgY2xhc3NOYW1lPVwiY29sIGNvbF9oZWFkZXIgcmVzcG9uc2UtY29sX2xpbmtzXCI+TGlua3M8L3RkPiA6IG51bGwgfVxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlcy5lbnRyeVNlcSgpLm1hcCggKFtjb2RlLCByZXNwb25zZV0pID0+IHtcblxuICAgICAgICAgICAgICAgICAgbGV0IGNsYXNzTmFtZSA9IHRyeUl0T3V0UmVzcG9uc2UgJiYgdHJ5SXRPdXRSZXNwb25zZS5nZXQoXCJzdGF0dXNcIikgPT0gY29kZSA/IFwicmVzcG9uc2VfY3VycmVudFwiIDogXCJcIlxuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPFJlc3BvbnNlIGtleT17IGNvZGUgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aD17cGF0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZD17bWV0aG9kfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY1BhdGg9e3NwZWNQYXRoLnB1c2goY29kZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ9e2RlZmF1bHRDb2RlID09PSBjb2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm49e2ZufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsgY2xhc3NOYW1lIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU9eyBjb2RlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlPXsgcmVzcG9uc2UgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY1NlbGVjdG9ycz17IHNwZWNTZWxlY3RvcnMgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbHNBY2NlcHRIZWFkZXI9e3Jlc3BvbnNlID09PSBhY2NlcHRDb250cm9sbGluZ1Jlc3BvbnNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Db250ZW50VHlwZUNoYW5nZT17dGhpcy5vblJlc3BvbnNlQ29udGVudFR5cGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50VHlwZT17IHByb2R1Y2VzVmFsdWUgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29uZmlncz17IGdldENvbmZpZ3MgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlRXhhbXBsZXNLZXk9e29hczNTZWxlY3RvcnMuYWN0aXZlRXhhbXBsZXNNZW1iZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXNwb25zZXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9hczNBY3Rpb25zPXtvYXMzQWN0aW9uc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudD17IGdldENvbXBvbmVudCB9Lz5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pLnRvQXJyYXkoKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG59XG4iLCJleHBvcnQgZnVuY3Rpb24gY2FuSnNvblBhcnNlKHN0cikge1xuICB0cnkge1xuICAgIGxldCB0ZXN0VmFsdWVGb3JKc29uID0gSlNPTi5wYXJzZShzdHIpXG4gICAgcmV0dXJuIHRlc3RWYWx1ZUZvckpzb24gPyB0cnVlIDogZmFsc2VcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIGV4Y2VwdGlvbjogc3RyaW5nIGlzIG5vdCB2YWxpZCBqc29uXG4gICAgcmV0dXJuIG51bGxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0S25vd25TeW50YXhIaWdobGlnaHRlckxhbmd1YWdlKHZhbCkge1xuICAvLyB0byBzdGFydCwgb25seSBjaGVjayBmb3IganNvbi4gY2FuIGV4cGFuZCBhcyBuZWVkZWQgaW4gZnV0dXJlXG4gIGNvbnN0IGlzVmFsaWRKc29uID0gY2FuSnNvblBhcnNlKHZhbClcbiAgcmV0dXJuIGlzVmFsaWRKc29uID8gXCJqc29uXCIgOiBudWxsXG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcbmltcG9ydCBjeCBmcm9tIFwiY2xhc3NuYW1lc1wiXG5pbXBvcnQgeyBmcm9tSlMsIFNlcSwgSXRlcmFibGUsIExpc3QsIE1hcCB9IGZyb20gXCJpbW11dGFibGVcIlxuaW1wb3J0IHsgZ2V0RXh0ZW5zaW9ucywgZnJvbUpTT3JkZXJlZCwgc3RyaW5naWZ5IH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuaW1wb3J0IHsgZ2V0S25vd25TeW50YXhIaWdobGlnaHRlckxhbmd1YWdlIH0gZnJvbSBcImNvcmUvdXRpbHMvanNvblBhcnNlXCJcblxuXG5jb25zdCBnZXRFeGFtcGxlQ29tcG9uZW50ID0gKCBzYW1wbGVSZXNwb25zZSwgSGlnaGxpZ2h0Q29kZSApID0+IHtcbiAgaWYgKHNhbXBsZVJlc3BvbnNlID09IG51bGwpIHJldHVybiBudWxsXG5cbiAgY29uc3QgdGVzdFZhbHVlRm9ySnNvbiA9IGdldEtub3duU3ludGF4SGlnaGxpZ2h0ZXJMYW5ndWFnZShzYW1wbGVSZXNwb25zZSlcbiAgY29uc3QgbGFuZ3VhZ2UgPSB0ZXN0VmFsdWVGb3JKc29uID8gXCJqc29uXCIgOiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPEhpZ2hsaWdodENvZGUgY2xhc3NOYW1lPVwiZXhhbXBsZVwiIGxhbmd1YWdlPXtsYW5ndWFnZX0+e3N0cmluZ2lmeShzYW1wbGVSZXNwb25zZSl9PC9IaWdobGlnaHRDb2RlPlxuICAgIDwvZGl2PlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlc3BvbnNlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMsIGNvbnRleHQpIHtcbiAgICBzdXBlcihwcm9wcywgY29udGV4dClcblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICByZXNwb25zZUNvbnRlbnRUeXBlOiBcIlwiLFxuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgcGF0aDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIG1ldGhvZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIGNvZGU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICByZXNwb25zZTogUHJvcFR5cGVzLmluc3RhbmNlT2YoSXRlcmFibGUpLFxuICAgIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29uZmlnczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgb2FzM0FjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBzcGVjUGF0aDogSW1Qcm9wVHlwZXMubGlzdC5pc1JlcXVpcmVkLFxuICAgIGZuOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgY29udGVudFR5cGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgYWN0aXZlRXhhbXBsZXNLZXk6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY29udHJvbHNBY2NlcHRIZWFkZXI6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uQ29udGVudFR5cGVDaGFuZ2U6IFByb3BUeXBlcy5mdW5jXG4gIH1cblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIHJlc3BvbnNlOiBmcm9tSlMoe30pLFxuICAgIG9uQ29udGVudFR5cGVDaGFuZ2U6ICgpID0+IHt9XG4gIH1cblxuICBfb25Db250ZW50VHlwZUNoYW5nZSA9ICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHsgb25Db250ZW50VHlwZUNoYW5nZSwgY29udHJvbHNBY2NlcHRIZWFkZXIgfSA9IHRoaXMucHJvcHNcbiAgICB0aGlzLnNldFN0YXRlKHsgcmVzcG9uc2VDb250ZW50VHlwZTogdmFsdWUgfSlcbiAgICBvbkNvbnRlbnRUeXBlQ2hhbmdlKHtcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGNvbnRyb2xzQWNjZXB0SGVhZGVyXG4gICAgfSlcbiAgfVxuXG4gIGdldFRhcmdldEV4YW1wbGVzS2V5ID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgcmVzcG9uc2UsIGNvbnRlbnRUeXBlLCBhY3RpdmVFeGFtcGxlc0tleSB9ID0gdGhpcy5wcm9wc1xuXG4gICAgY29uc3QgYWN0aXZlQ29udGVudFR5cGUgPSB0aGlzLnN0YXRlLnJlc3BvbnNlQ29udGVudFR5cGUgfHwgY29udGVudFR5cGVcbiAgICBjb25zdCBhY3RpdmVNZWRpYVR5cGUgPSByZXNwb25zZS5nZXRJbihbXCJjb250ZW50XCIsIGFjdGl2ZUNvbnRlbnRUeXBlXSwgTWFwKHt9KSlcbiAgICBjb25zdCBleGFtcGxlc0Zvck1lZGlhVHlwZSA9IGFjdGl2ZU1lZGlhVHlwZS5nZXQoXCJleGFtcGxlc1wiLCBudWxsKVxuXG4gICAgY29uc3QgZmlyc3RFeGFtcGxlc0tleSA9IGV4YW1wbGVzRm9yTWVkaWFUeXBlLmtleVNlcSgpLmZpcnN0KClcbiAgICByZXR1cm4gYWN0aXZlRXhhbXBsZXNLZXkgfHwgZmlyc3RFeGFtcGxlc0tleVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7XG4gICAgICBwYXRoLFxuICAgICAgbWV0aG9kLFxuICAgICAgY29kZSxcbiAgICAgIHJlc3BvbnNlLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgc3BlY1BhdGgsXG4gICAgICBmbixcbiAgICAgIGdldENvbXBvbmVudCxcbiAgICAgIGdldENvbmZpZ3MsXG4gICAgICBzcGVjU2VsZWN0b3JzLFxuICAgICAgY29udGVudFR5cGUsXG4gICAgICBjb250cm9sc0FjY2VwdEhlYWRlcixcbiAgICAgIG9hczNBY3Rpb25zLFxuICAgIH0gPSB0aGlzLnByb3BzXG5cbiAgICBsZXQgeyBpbmZlclNjaGVtYSwgZ2V0U2FtcGxlU2NoZW1hIH0gPSBmblxuICAgIGxldCBpc09BUzMgPSBzcGVjU2VsZWN0b3JzLmlzT0FTMygpXG4gICAgY29uc3QgeyBzaG93RXh0ZW5zaW9ucyB9ID0gZ2V0Q29uZmlncygpXG5cbiAgICBsZXQgZXh0ZW5zaW9ucyA9IHNob3dFeHRlbnNpb25zID8gZ2V0RXh0ZW5zaW9ucyhyZXNwb25zZSkgOiBudWxsXG4gICAgbGV0IGhlYWRlcnMgPSByZXNwb25zZS5nZXQoXCJoZWFkZXJzXCIpXG4gICAgbGV0IGxpbmtzID0gcmVzcG9uc2UuZ2V0KFwibGlua3NcIilcbiAgICBjb25zdCBSZXNwb25zZUV4dGVuc2lvbiA9IGdldENvbXBvbmVudChcIlJlc3BvbnNlRXh0ZW5zaW9uXCIpXG4gICAgY29uc3QgSGVhZGVycyA9IGdldENvbXBvbmVudChcImhlYWRlcnNcIilcbiAgICBjb25zdCBIaWdobGlnaHRDb2RlID0gZ2V0Q29tcG9uZW50KFwiSGlnaGxpZ2h0Q29kZVwiLCB0cnVlKVxuICAgIGNvbnN0IE1vZGVsRXhhbXBsZSA9IGdldENvbXBvbmVudChcIm1vZGVsRXhhbXBsZVwiKVxuICAgIGNvbnN0IE1hcmtkb3duID0gZ2V0Q29tcG9uZW50KFwiTWFya2Rvd25cIiwgdHJ1ZSlcbiAgICBjb25zdCBPcGVyYXRpb25MaW5rID0gZ2V0Q29tcG9uZW50KFwib3BlcmF0aW9uTGlua1wiKVxuICAgIGNvbnN0IENvbnRlbnRUeXBlID0gZ2V0Q29tcG9uZW50KFwiY29udGVudFR5cGVcIilcbiAgICBjb25zdCBFeGFtcGxlc1NlbGVjdCA9IGdldENvbXBvbmVudChcIkV4YW1wbGVzU2VsZWN0XCIpXG4gICAgY29uc3QgRXhhbXBsZSA9IGdldENvbXBvbmVudChcIkV4YW1wbGVcIilcblxuXG4gICAgdmFyIHNjaGVtYSwgc3BlY1BhdGhXaXRoUG9zc2libGVTY2hlbWFcblxuICAgIGNvbnN0IGFjdGl2ZUNvbnRlbnRUeXBlID0gdGhpcy5zdGF0ZS5yZXNwb25zZUNvbnRlbnRUeXBlIHx8IGNvbnRlbnRUeXBlXG4gICAgY29uc3QgYWN0aXZlTWVkaWFUeXBlID0gcmVzcG9uc2UuZ2V0SW4oW1wiY29udGVudFwiLCBhY3RpdmVDb250ZW50VHlwZV0sIE1hcCh7fSkpXG4gICAgY29uc3QgZXhhbXBsZXNGb3JNZWRpYVR5cGUgPSBhY3RpdmVNZWRpYVR5cGUuZ2V0KFwiZXhhbXBsZXNcIiwgbnVsbClcblxuICAgIC8vIEdvYWw6IGZpbmQgYSBzY2hlbWEgdmFsdWUgZm9yIGBzY2hlbWFgXG4gICAgaWYoaXNPQVMzKSB7XG4gICAgICBjb25zdCBvYXMzU2NoZW1hRm9yQ29udGVudFR5cGUgPSBhY3RpdmVNZWRpYVR5cGUuZ2V0KFwic2NoZW1hXCIpXG5cbiAgICAgIHNjaGVtYSA9IG9hczNTY2hlbWFGb3JDb250ZW50VHlwZSA/IGluZmVyU2NoZW1hKG9hczNTY2hlbWFGb3JDb250ZW50VHlwZS50b0pTKCkpIDogbnVsbFxuICAgICAgc3BlY1BhdGhXaXRoUG9zc2libGVTY2hlbWEgPSBvYXMzU2NoZW1hRm9yQ29udGVudFR5cGUgPyBMaXN0KFtcImNvbnRlbnRcIiwgdGhpcy5zdGF0ZS5yZXNwb25zZUNvbnRlbnRUeXBlLCBcInNjaGVtYVwiXSkgOiBzcGVjUGF0aFxuICAgIH0gZWxzZSB7XG4gICAgICBzY2hlbWEgPSByZXNwb25zZS5nZXQoXCJzY2hlbWFcIilcbiAgICAgIHNwZWNQYXRoV2l0aFBvc3NpYmxlU2NoZW1hID0gcmVzcG9uc2UuaGFzKFwic2NoZW1hXCIpID8gc3BlY1BhdGgucHVzaChcInNjaGVtYVwiKSA6IHNwZWNQYXRoXG4gICAgfVxuXG4gICAgbGV0IG1lZGlhVHlwZUV4YW1wbGVcbiAgICBsZXQgc2hvdWxkT3ZlcnJpZGVTY2hlbWFFeGFtcGxlID0gZmFsc2VcbiAgICBsZXQgc2FtcGxlU2NoZW1hXG4gICAgbGV0IHNhbXBsZUdlbkNvbmZpZyA9IHtcbiAgICAgIGluY2x1ZGVSZWFkT25seTogdHJ1ZVxuICAgIH1cblxuICAgIC8vIEdvYWw6IGZpbmQgYW4gZXhhbXBsZSB2YWx1ZSBmb3IgYHNhbXBsZVJlc3BvbnNlYFxuICAgIGlmKGlzT0FTMykge1xuICAgICAgc2FtcGxlU2NoZW1hID0gYWN0aXZlTWVkaWFUeXBlLmdldChcInNjaGVtYVwiKT8udG9KUygpXG4gICAgICBpZihNYXAuaXNNYXAoZXhhbXBsZXNGb3JNZWRpYVR5cGUpICYmICFleGFtcGxlc0Zvck1lZGlhVHlwZS5pc0VtcHR5KCkpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RXhhbXBsZXNLZXkgPSB0aGlzLmdldFRhcmdldEV4YW1wbGVzS2V5KClcbiAgICAgICAgY29uc3QgdGFyZ2V0RXhhbXBsZSA9IGV4YW1wbGVzRm9yTWVkaWFUeXBlXG4gICAgICAgICAgLmdldCh0YXJnZXRFeGFtcGxlc0tleSwgTWFwKHt9KSlcbiAgICAgICAgY29uc3QgZ2V0TWVkaWFUeXBlRXhhbXBsZSA9ICh0YXJnZXRFeGFtcGxlKSA9PlxuICAgICAgICAgIE1hcC5pc01hcCh0YXJnZXRFeGFtcGxlKSBcbiAgICAgICAgICA/IHRhcmdldEV4YW1wbGUuZ2V0KFwidmFsdWVcIikgXG4gICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgbWVkaWFUeXBlRXhhbXBsZSA9IGdldE1lZGlhVHlwZUV4YW1wbGUodGFyZ2V0RXhhbXBsZSlcbiAgICAgICAgaWYobWVkaWFUeXBlRXhhbXBsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgbWVkaWFUeXBlRXhhbXBsZSA9IGdldE1lZGlhVHlwZUV4YW1wbGUoZXhhbXBsZXNGb3JNZWRpYVR5cGUudmFsdWVzKCkubmV4dCgpLnZhbHVlKVxuICAgICAgICB9XG4gICAgICAgIHNob3VsZE92ZXJyaWRlU2NoZW1hRXhhbXBsZSA9IHRydWVcbiAgICAgIH0gZWxzZSBpZihhY3RpdmVNZWRpYVR5cGUuZ2V0KFwiZXhhbXBsZVwiKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIHVzZSB0aGUgZXhhbXBsZSBrZXkncyB2YWx1ZVxuICAgICAgICBtZWRpYVR5cGVFeGFtcGxlID0gYWN0aXZlTWVkaWFUeXBlLmdldChcImV4YW1wbGVcIilcbiAgICAgICAgc2hvdWxkT3ZlcnJpZGVTY2hlbWFFeGFtcGxlID0gdHJ1ZVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzYW1wbGVTY2hlbWEgPSBzY2hlbWFcbiAgICAgIHNhbXBsZUdlbkNvbmZpZyA9IHsuLi5zYW1wbGVHZW5Db25maWcsIGluY2x1ZGVXcml0ZU9ubHk6IHRydWV9XG4gICAgICBjb25zdCBvbGRPQVNNZWRpYVR5cGVFeGFtcGxlID0gcmVzcG9uc2UuZ2V0SW4oW1wiZXhhbXBsZXNcIiwgYWN0aXZlQ29udGVudFR5cGVdKVxuICAgICAgaWYob2xkT0FTTWVkaWFUeXBlRXhhbXBsZSkge1xuICAgICAgICBtZWRpYVR5cGVFeGFtcGxlID0gb2xkT0FTTWVkaWFUeXBlRXhhbXBsZVxuICAgICAgICBzaG91bGRPdmVycmlkZVNjaGVtYUV4YW1wbGUgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc2FtcGxlUmVzcG9uc2UgPSBnZXRTYW1wbGVTY2hlbWEoXG4gICAgICBzYW1wbGVTY2hlbWEsXG4gICAgICBhY3RpdmVDb250ZW50VHlwZSxcbiAgICAgIHNhbXBsZUdlbkNvbmZpZyxcbiAgICAgIHNob3VsZE92ZXJyaWRlU2NoZW1hRXhhbXBsZSA/IG1lZGlhVHlwZUV4YW1wbGUgOiB1bmRlZmluZWRcbiAgICApXG5cbiAgICBjb25zdCBleGFtcGxlID0gZ2V0RXhhbXBsZUNvbXBvbmVudCggc2FtcGxlUmVzcG9uc2UsIEhpZ2hsaWdodENvZGUgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDx0ciBjbGFzc05hbWU9eyBcInJlc3BvbnNlIFwiICsgKCBjbGFzc05hbWUgfHwgXCJcIikgfSBkYXRhLWNvZGU9e2NvZGV9PlxuICAgICAgICA8dGQgY2xhc3NOYW1lPVwicmVzcG9uc2UtY29sX3N0YXR1c1wiPlxuICAgICAgICAgIHsgY29kZSB9XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzc05hbWU9XCJyZXNwb25zZS1jb2xfZGVzY3JpcHRpb25cIj5cblxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVzcG9uc2UtY29sX2Rlc2NyaXB0aW9uX19pbm5lclwiPlxuICAgICAgICAgICAgPE1hcmtkb3duIHNvdXJjZT17IHJlc3BvbnNlLmdldCggXCJkZXNjcmlwdGlvblwiICkgfSAvPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgeyAhc2hvd0V4dGVuc2lvbnMgfHwgIWV4dGVuc2lvbnMuc2l6ZSA/IG51bGwgOiBleHRlbnNpb25zLmVudHJ5U2VxKCkubWFwKChba2V5LCB2XSkgPT4gPFJlc3BvbnNlRXh0ZW5zaW9uIGtleT17YCR7a2V5fS0ke3Z9YH0geEtleT17a2V5fSB4VmFsPXt2fSAvPiApfVxuXG4gICAgICAgICAge2lzT0FTMyAmJiByZXNwb25zZS5nZXQoXCJjb250ZW50XCIpID8gKFxuICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicmVzcG9uc2UtY29udHJvbHNcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goXCJyZXNwb25zZS1jb250cm9sLW1lZGlhLXR5cGVcIiwge1xuICAgICAgICAgICAgICAgICAgXCJyZXNwb25zZS1jb250cm9sLW1lZGlhLXR5cGUtLWFjY2VwdC1jb250cm9sbGVyXCI6IGNvbnRyb2xzQWNjZXB0SGVhZGVyXG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3NOYW1lPVwicmVzcG9uc2UtY29udHJvbC1tZWRpYS10eXBlX190aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgTWVkaWEgdHlwZVxuICAgICAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgICAgICAgICAgPENvbnRlbnRUeXBlXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5yZXNwb25zZUNvbnRlbnRUeXBlfVxuICAgICAgICAgICAgICAgICAgY29udGVudFR5cGVzPXtcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZ2V0KFwiY29udGVudFwiKVxuICAgICAgICAgICAgICAgICAgICAgID8gcmVzcG9uc2UuZ2V0KFwiY29udGVudFwiKS5rZXlTZXEoKVxuICAgICAgICAgICAgICAgICAgICAgIDogU2VxKClcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLl9vbkNvbnRlbnRUeXBlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiTWVkaWEgVHlwZVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB7Y29udHJvbHNBY2NlcHRIZWFkZXIgPyAoXG4gICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3NOYW1lPVwicmVzcG9uc2UtY29udHJvbC1tZWRpYS10eXBlX19hY2NlcHQtbWVzc2FnZVwiPlxuICAgICAgICAgICAgICAgICAgICBDb250cm9scyA8Y29kZT5BY2NlcHQ8L2NvZGU+IGhlYWRlci5cbiAgICAgICAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB7TWFwLmlzTWFwKGV4YW1wbGVzRm9yTWVkaWFUeXBlKSAmJiAhZXhhbXBsZXNGb3JNZWRpYVR5cGUuaXNFbXB0eSgpID8gKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVzcG9uc2UtY29udHJvbC1leGFtcGxlc1wiPlxuICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzTmFtZT1cInJlc3BvbnNlLWNvbnRyb2wtZXhhbXBsZXNfX3RpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIEV4YW1wbGVzXG4gICAgICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgICAgICAgPEV4YW1wbGVzU2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIGV4YW1wbGVzPXtleGFtcGxlc0Zvck1lZGlhVHlwZX1cbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEV4YW1wbGVLZXk9e3RoaXMuZ2V0VGFyZ2V0RXhhbXBsZXNLZXkoKX1cbiAgICAgICAgICAgICAgICAgICAgb25TZWxlY3Q9e2tleSA9PlxuICAgICAgICAgICAgICAgICAgICAgIG9hczNBY3Rpb25zLnNldEFjdGl2ZUV4YW1wbGVzTWVtYmVyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhNZXRob2Q6IFtwYXRoLCBtZXRob2RdLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dFR5cGU6IFwicmVzcG9uc2VzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0TmFtZTogY29kZVxuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2hvd0xhYmVscz17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICApIDogbnVsbH1cblxuICAgICAgICAgIHsgZXhhbXBsZSB8fCBzY2hlbWEgPyAoXG4gICAgICAgICAgICA8TW9kZWxFeGFtcGxlXG4gICAgICAgICAgICAgIHNwZWNQYXRoPXtzcGVjUGF0aFdpdGhQb3NzaWJsZVNjaGVtYX1cbiAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXsgZ2V0Q29tcG9uZW50IH1cbiAgICAgICAgICAgICAgZ2V0Q29uZmlncz17IGdldENvbmZpZ3MgfVxuICAgICAgICAgICAgICBzcGVjU2VsZWN0b3JzPXsgc3BlY1NlbGVjdG9ycyB9XG4gICAgICAgICAgICAgIHNjaGVtYT17IGZyb21KU09yZGVyZWQoc2NoZW1hKSB9XG4gICAgICAgICAgICAgIGV4YW1wbGU9eyBleGFtcGxlIH1cbiAgICAgICAgICAgICAgaW5jbHVkZVJlYWRPbmx5PXsgdHJ1ZSB9Lz5cbiAgICAgICAgICApIDogbnVsbCB9XG5cbiAgICAgICAgICB7IGlzT0FTMyAmJiBleGFtcGxlc0Zvck1lZGlhVHlwZSA/IChcbiAgICAgICAgICAgICAgPEV4YW1wbGVcbiAgICAgICAgICAgICAgICBleGFtcGxlPXtleGFtcGxlc0Zvck1lZGlhVHlwZS5nZXQodGhpcy5nZXRUYXJnZXRFeGFtcGxlc0tleSgpLCBNYXAoe30pKX1cbiAgICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH1cbiAgICAgICAgICAgICAgICBnZXRDb25maWdzPXtnZXRDb25maWdzfVxuICAgICAgICAgICAgICAgIG9taXRWYWx1ZT17dHJ1ZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogbnVsbH1cblxuICAgICAgICAgIHsgaGVhZGVycyA/IChcbiAgICAgICAgICAgIDxIZWFkZXJzXG4gICAgICAgICAgICAgIGhlYWRlcnM9eyBoZWFkZXJzIH1cbiAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXsgZ2V0Q29tcG9uZW50IH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAgPC90ZD5cbiAgICAgICAge2lzT0FTMyA/IDx0ZCBjbGFzc05hbWU9XCJyZXNwb25zZS1jb2xfbGlua3NcIj5cbiAgICAgICAgICB7IGxpbmtzID9cbiAgICAgICAgICAgIGxpbmtzLnRvU2VxKCkuZW50cnlTZXEoKS5tYXAoKFtrZXksIGxpbmtdKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiA8T3BlcmF0aW9uTGluayBrZXk9e2tleX0gbmFtZT17a2V5fSBsaW5rPXsgbGluayB9IGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fS8+XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIDogPGk+Tm8gbGlua3M8L2k+fVxuICAgICAgICA8L3RkPiA6IG51bGx9XG4gICAgICA8L3RyPlxuICAgIClcbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuZXhwb3J0IGNvbnN0IFJlc3BvbnNlRXh0ZW5zaW9uID0gKHsgeEtleSwgeFZhbCB9KSA9PiB7XG4gICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwicmVzcG9uc2VfX2V4dGVuc2lvblwiPnsgeEtleSB9OiB7IFN0cmluZyh4VmFsKSB9PC9kaXY+XG59XG5SZXNwb25zZUV4dGVuc2lvbi5wcm9wVHlwZXMgPSB7XG4gIHhLZXk6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHhWYWw6IFByb3BUeXBlcy5hbnlcbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVzcG9uc2VFeHRlbnNpb25cbiIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwieG1sLWJ1dC1wcmV0dGllclwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImxvZGFzaC90b0xvd2VyXCIpOyIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgZm9ybWF0WG1sIGZyb20gXCJ4bWwtYnV0LXByZXR0aWVyXCJcbmltcG9ydCB0b0xvd2VyIGZyb20gXCJsb2Rhc2gvdG9Mb3dlclwiXG5pbXBvcnQgeyBleHRyYWN0RmlsZU5hbWVGcm9tQ29udGVudERpc3Bvc2l0aW9uSGVhZGVyIH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuaW1wb3J0IHsgZ2V0S25vd25TeW50YXhIaWdobGlnaHRlckxhbmd1YWdlIH0gZnJvbSBcImNvcmUvdXRpbHMvanNvblBhcnNlXCJcbmltcG9ydCB3aW4gZnJvbSBcImNvcmUvd2luZG93XCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVzcG9uc2VCb2R5IGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gIHN0YXRlID0ge1xuICAgIHBhcnNlZENvbnRlbnQ6IG51bGxcbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgY29udGVudDogUHJvcFR5cGVzLmFueS5pc1JlcXVpcmVkLFxuICAgIGNvbnRlbnRUeXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBoZWFkZXJzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHVybDogUHJvcFR5cGVzLnN0cmluZ1xuICB9XG5cbiAgdXBkYXRlUGFyc2VkQ29udGVudCA9IChwcmV2Q29udGVudCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGVudCB9ID0gdGhpcy5wcm9wc1xuXG4gICAgaWYocHJldkNvbnRlbnQgPT09IGNvbnRlbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmKGNvbnRlbnQgJiYgY29udGVudCBpbnN0YW5jZW9mIEJsb2IpIHtcbiAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpXG4gICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBwYXJzZWRDb250ZW50OiByZWFkZXIucmVzdWx0XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgICByZWFkZXIucmVhZEFzVGV4dChjb250ZW50KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgcGFyc2VkQ29udGVudDogY29udGVudC50b1N0cmluZygpXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMudXBkYXRlUGFyc2VkQ29udGVudChudWxsKVxuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgIHRoaXMudXBkYXRlUGFyc2VkQ29udGVudChwcmV2UHJvcHMuY29udGVudClcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyBjb250ZW50LCBjb250ZW50VHlwZSwgdXJsLCBoZWFkZXJzPXt9LCBnZXRDb21wb25lbnQgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7IHBhcnNlZENvbnRlbnQgfSA9IHRoaXMuc3RhdGVcbiAgICBjb25zdCBIaWdobGlnaHRDb2RlID0gZ2V0Q29tcG9uZW50KFwiSGlnaGxpZ2h0Q29kZVwiLCB0cnVlKVxuICAgIGNvbnN0IGRvd25sb2FkTmFtZSA9IFwicmVzcG9uc2VfXCIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKVxuICAgIGxldCBib2R5LCBib2R5RWxcbiAgICB1cmwgPSB1cmwgfHwgXCJcIlxuXG4gICAgaWYgKFxuICAgICAgKC9eYXBwbGljYXRpb25cXC9vY3RldC1zdHJlYW0vaS50ZXN0KGNvbnRlbnRUeXBlKSB8fFxuICAgICAgICAoaGVhZGVyc1tcIkNvbnRlbnQtRGlzcG9zaXRpb25cIl0gJiYgL2F0dGFjaG1lbnQvaS50ZXN0KGhlYWRlcnNbXCJDb250ZW50LURpc3Bvc2l0aW9uXCJdKSkgfHxcbiAgICAgICAgKGhlYWRlcnNbXCJjb250ZW50LWRpc3Bvc2l0aW9uXCJdICYmIC9hdHRhY2htZW50L2kudGVzdChoZWFkZXJzW1wiY29udGVudC1kaXNwb3NpdGlvblwiXSkpIHx8XG4gICAgICAgIChoZWFkZXJzW1wiQ29udGVudC1EZXNjcmlwdGlvblwiXSAmJiAvRmlsZSBUcmFuc2Zlci9pLnRlc3QoaGVhZGVyc1tcIkNvbnRlbnQtRGVzY3JpcHRpb25cIl0pKSB8fFxuICAgICAgICAoaGVhZGVyc1tcImNvbnRlbnQtZGVzY3JpcHRpb25cIl0gJiYgL0ZpbGUgVHJhbnNmZXIvaS50ZXN0KGhlYWRlcnNbXCJjb250ZW50LWRlc2NyaXB0aW9uXCJdKSkpICYmXG4gICAgICAoY29udGVudC5zaXplID4gMCB8fCBjb250ZW50Lmxlbmd0aCA+IDApXG4gICAgKSB7XG4gICAgICAvLyBEb3dubG9hZFxuXG4gICAgICBpZiAoXCJCbG9iXCIgaW4gd2luZG93KSB7XG4gICAgICAgIGxldCB0eXBlID0gY29udGVudFR5cGUgfHwgXCJ0ZXh0L2h0bWxcIlxuICAgICAgICBsZXQgYmxvYiA9IChjb250ZW50IGluc3RhbmNlb2YgQmxvYikgPyBjb250ZW50IDogbmV3IEJsb2IoW2NvbnRlbnRdLCB7dHlwZTogdHlwZX0pXG4gICAgICAgIGxldCBocmVmID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcbiAgICAgICAgbGV0IGZpbGVOYW1lID0gdXJsLnN1YnN0cih1cmwubGFzdEluZGV4T2YoXCIvXCIpICsgMSlcbiAgICAgICAgbGV0IGRvd25sb2FkID0gW3R5cGUsIGZpbGVOYW1lLCBocmVmXS5qb2luKFwiOlwiKVxuXG4gICAgICAgIC8vIFVzZSBmaWxlbmFtZSBmcm9tIHJlc3BvbnNlIGhlYWRlcixcbiAgICAgICAgLy8gRmlyc3QgY2hlY2sgaWYgZmlsZW5hbWUgaXMgcXVvdGVkIChlLmcuIGNvbnRhaW5zIHNwYWNlKSwgaWYgbm8sIGZhbGxiYWNrIHRvIG5vdCBxdW90ZWQgY2hlY2tcbiAgICAgICAgbGV0IGRpc3Bvc2l0aW9uID0gaGVhZGVyc1tcImNvbnRlbnQtZGlzcG9zaXRpb25cIl0gfHwgaGVhZGVyc1tcIkNvbnRlbnQtRGlzcG9zaXRpb25cIl1cbiAgICAgICAgaWYgKHR5cGVvZiBkaXNwb3NpdGlvbiAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgIGxldCByZXNwb25zZUZpbGVuYW1lID0gZXh0cmFjdEZpbGVOYW1lRnJvbUNvbnRlbnREaXNwb3NpdGlvbkhlYWRlcihkaXNwb3NpdGlvbilcbiAgICAgICAgICBpZiAocmVzcG9uc2VGaWxlbmFtZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgZG93bmxvYWQgPSByZXNwb25zZUZpbGVuYW1lXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYod2luLm5hdmlnYXRvciAmJiB3aW4ubmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IpIHtcbiAgICAgICAgICAgIGJvZHlFbCA9IDxkaXY+PGEgaHJlZj17IGhyZWYgfSBvbkNsaWNrPXsoKSA9PiB3aW4ubmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IoYmxvYiwgZG93bmxvYWQpfT57IFwiRG93bmxvYWQgZmlsZVwiIH08L2E+PC9kaXY+XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBib2R5RWwgPSA8ZGl2PjxhIGhyZWY9eyBocmVmIH0gZG93bmxvYWQ9eyBkb3dubG9hZCB9PnsgXCJEb3dubG9hZCBmaWxlXCIgfTwvYT48L2Rpdj5cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYm9keUVsID0gPHByZSBjbGFzc05hbWU9XCJtaWNyb2xpZ2h0XCI+RG93bmxvYWQgaGVhZGVycyBkZXRlY3RlZCBidXQgeW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgZG93bmxvYWRpbmcgYmluYXJ5IHZpYSBYSFIgKEJsb2IpLjwvcHJlPlxuICAgICAgfVxuXG4gICAgICAvLyBBbnl0aGluZyBlbHNlIChDT1JTKVxuICAgIH0gZWxzZSBpZiAoL2pzb24vaS50ZXN0KGNvbnRlbnRUeXBlKSkge1xuICAgICAgLy8gSlNPTlxuICAgICAgbGV0IGxhbmd1YWdlID0gbnVsbFxuICAgICAgbGV0IHRlc3RWYWx1ZUZvckpzb24gPSBnZXRLbm93blN5bnRheEhpZ2hsaWdodGVyTGFuZ3VhZ2UoY29udGVudClcbiAgICAgIGlmICh0ZXN0VmFsdWVGb3JKc29uKSB7XG4gICAgICAgIGxhbmd1YWdlID0gXCJqc29uXCJcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIGJvZHkgPSBKU09OLnN0cmluZ2lmeShKU09OLnBhcnNlKGNvbnRlbnQpLCBudWxsLCBcIiAgXCIpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBib2R5ID0gXCJjYW4ndCBwYXJzZSBKU09OLiAgUmF3IHJlc3VsdDpcXG5cXG5cIiArIGNvbnRlbnRcbiAgICAgIH1cblxuICAgICAgYm9keUVsID0gPEhpZ2hsaWdodENvZGUgbGFuZ3VhZ2U9e2xhbmd1YWdlfSBkb3dubG9hZGFibGUgZmlsZU5hbWU9e2Ake2Rvd25sb2FkTmFtZX0uanNvbmB9IGNhbkNvcHk+e2JvZHl9PC9IaWdobGlnaHRDb2RlPlxuXG4gICAgICAvLyBYTUxcbiAgICB9IGVsc2UgaWYgKC94bWwvaS50ZXN0KGNvbnRlbnRUeXBlKSkge1xuICAgICAgYm9keSA9IGZvcm1hdFhtbChjb250ZW50LCB7XG4gICAgICAgIHRleHROb2Rlc09uU2FtZUxpbmU6IHRydWUsXG4gICAgICAgIGluZGVudG9yOiBcIiAgXCJcbiAgICAgIH0pXG4gICAgICBib2R5RWwgPSA8SGlnaGxpZ2h0Q29kZSBkb3dubG9hZGFibGUgZmlsZU5hbWU9e2Ake2Rvd25sb2FkTmFtZX0ueG1sYH0gY2FuQ29weT57Ym9keX08L0hpZ2hsaWdodENvZGU+XG5cbiAgICAgIC8vIEhUTUwgb3IgUGxhaW4gVGV4dFxuICAgIH0gZWxzZSBpZiAodG9Mb3dlcihjb250ZW50VHlwZSkgPT09IFwidGV4dC9odG1sXCIgfHwgL3RleHRcXC9wbGFpbi8udGVzdChjb250ZW50VHlwZSkpIHtcbiAgICAgIGJvZHlFbCA9IDxIaWdobGlnaHRDb2RlIGRvd25sb2FkYWJsZSBmaWxlTmFtZT17YCR7ZG93bmxvYWROYW1lfS5odG1sYH0gY2FuQ29weT57Y29udGVudH08L0hpZ2hsaWdodENvZGU+XG5cbiAgICAgIC8vIENTVlxuICAgIH0gZWxzZSBpZiAodG9Mb3dlcihjb250ZW50VHlwZSkgPT09IFwidGV4dC9jc3ZcIiB8fCAvdGV4dFxcL2Nzdi8udGVzdChjb250ZW50VHlwZSkpIHtcbiAgICAgIGJvZHlFbCA9IDxIaWdobGlnaHRDb2RlIGRvd25sb2FkYWJsZSBmaWxlTmFtZT17YCR7ZG93bmxvYWROYW1lfS5jc3ZgfSBjYW5Db3B5Pntjb250ZW50fTwvSGlnaGxpZ2h0Q29kZT5cblxuICAgICAgLy8gSW1hZ2VcbiAgICB9IGVsc2UgaWYgKC9eaW1hZ2VcXC8vaS50ZXN0KGNvbnRlbnRUeXBlKSkge1xuICAgICAgaWYoY29udGVudFR5cGUuaW5jbHVkZXMoXCJzdmdcIikpIHtcbiAgICAgICAgYm9keUVsID0gPGRpdj4geyBjb250ZW50IH0gPC9kaXY+XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBib2R5RWwgPSA8aW1nIHNyYz17IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGNvbnRlbnQpIH0gLz5cbiAgICAgIH1cblxuICAgICAgLy8gQXVkaW9cbiAgICB9IGVsc2UgaWYgKC9eYXVkaW9cXC8vaS50ZXN0KGNvbnRlbnRUeXBlKSkge1xuICAgICAgYm9keUVsID0gPHByZSBjbGFzc05hbWU9XCJtaWNyb2xpZ2h0XCI+PGF1ZGlvIGNvbnRyb2xzIGtleT17IHVybCB9Pjxzb3VyY2Ugc3JjPXsgdXJsIH0gdHlwZT17IGNvbnRlbnRUeXBlIH0gLz48L2F1ZGlvPjwvcHJlPlxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbnRlbnQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGJvZHlFbCA9IDxIaWdobGlnaHRDb2RlIGRvd25sb2FkYWJsZSBmaWxlTmFtZT17YCR7ZG93bmxvYWROYW1lfS50eHRgfSBjYW5Db3B5Pntjb250ZW50fTwvSGlnaGxpZ2h0Q29kZT5cbiAgICB9IGVsc2UgaWYgKCBjb250ZW50LnNpemUgPiAwICkge1xuICAgICAgLy8gV2UgZG9uJ3Qga25vdyB0aGUgY29udGVudFR5cGUsIGJ1dCB0aGVyZSB3YXMgc29tZSBjb250ZW50IHJldHVybmVkXG4gICAgICBpZihwYXJzZWRDb250ZW50KSB7XG4gICAgICAgIC8vIFdlIHdlcmUgYWJsZSB0byBzcXVlZXplIHNvbWV0aGluZyBvdXQgb2YgY29udGVudFxuICAgICAgICAvLyBpbiBgdXBkYXRlUGFyc2VkQ29udGVudGAsIHNvIGxldCdzIGRpc3BsYXkgaXRcbiAgICAgICAgYm9keUVsID0gPGRpdj5cbiAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpXCI+XG4gICAgICAgICAgICBVbnJlY29nbml6ZWQgcmVzcG9uc2UgdHlwZTsgZGlzcGxheWluZyBjb250ZW50IGFzIHRleHQuXG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxIaWdobGlnaHRDb2RlIGRvd25sb2FkYWJsZSBmaWxlTmFtZT17YCR7ZG93bmxvYWROYW1lfS50eHRgfSBjYW5Db3B5PntwYXJzZWRDb250ZW50fTwvSGlnaGxpZ2h0Q29kZT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEdpdmUgdXBcbiAgICAgICAgYm9keUVsID0gPHAgY2xhc3NOYW1lPVwiaVwiPlxuICAgICAgICAgIFVucmVjb2duaXplZCByZXNwb25zZSB0eXBlOyB1bmFibGUgdG8gZGlzcGxheS5cbiAgICAgICAgPC9wPlxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBXZSBkb24ndCBrbm93IHRoZSBjb250ZW50VHlwZSBhbmQgdGhlcmUgd2FzIG5vIGNvbnRlbnQgcmV0dXJuZWRcbiAgICAgIGJvZHlFbCA9IG51bGxcbiAgICB9XG5cbiAgICByZXR1cm4gKCAhYm9keUVsID8gbnVsbCA6IDxkaXY+XG4gICAgICAgIDxoNT5SZXNwb25zZSBib2R5PC9oNT5cbiAgICAgICAgeyBib2R5RWwgfVxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHsgTWFwLCBMaXN0IH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuaW1wb3J0IGNyZWF0ZUh0bWxSZWFkeUlkIGZyb20gXCJjb3JlL3V0aWxzL2NyZWF0ZS1odG1sLXJlYWR5LWlkXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGFyYW1ldGVycyBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcylcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgY2FsbGJhY2tWaXNpYmxlOiBmYWxzZSxcbiAgICAgIHBhcmFtZXRlcnNWaXNpYmxlOiB0cnVlLFxuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgcGFyYW1ldGVyczogSW1Qcm9wVHlwZXMubGlzdC5pc1JlcXVpcmVkLFxuICAgIG9wZXJhdGlvbjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHNwZWNBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBvYXMzQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG9hczNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBmbjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHRyeUl0T3V0RW5hYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgYWxsb3dUcnlJdE91dDogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25UcnlvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25SZXNldENsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkNhbmNlbENsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkNoYW5nZUtleTogUHJvcFR5cGVzLmFycmF5LFxuICAgIHBhdGhNZXRob2Q6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICAgIGdldENvbmZpZ3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc3BlY1BhdGg6IEltUHJvcFR5cGVzLmxpc3QuaXNSZXF1aXJlZCxcbiAgfVxuXG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBvblRyeW91dENsaWNrOiBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgb25DYW5jZWxDbGljazogRnVuY3Rpb24ucHJvdG90eXBlLFxuICAgIHRyeUl0T3V0RW5hYmxlZDogZmFsc2UsXG4gICAgYWxsb3dUcnlJdE91dDogdHJ1ZSxcbiAgICBvbkNoYW5nZUtleTogW10sXG4gICAgc3BlY1BhdGg6IFtdLFxuICB9XG5cbiAgb25DaGFuZ2UgPSAocGFyYW0sIHZhbHVlLCBpc1htbCkgPT4ge1xuICAgIGxldCB7XG4gICAgICBzcGVjQWN0aW9uczogeyBjaGFuZ2VQYXJhbUJ5SWRlbnRpdHkgfSxcbiAgICAgIG9uQ2hhbmdlS2V5LFxuICAgIH0gPSB0aGlzLnByb3BzXG5cbiAgICBjaGFuZ2VQYXJhbUJ5SWRlbnRpdHkob25DaGFuZ2VLZXksIHBhcmFtLCB2YWx1ZSwgaXNYbWwpXG4gIH1cblxuICBvbkNoYW5nZUNvbnN1bWVzV3JhcHBlciA9ICh2YWwpID0+IHtcbiAgICBsZXQge1xuICAgICAgc3BlY0FjdGlvbnM6IHsgY2hhbmdlQ29uc3VtZXNWYWx1ZSB9LFxuICAgICAgb25DaGFuZ2VLZXksXG4gICAgfSA9IHRoaXMucHJvcHNcblxuICAgIGNoYW5nZUNvbnN1bWVzVmFsdWUob25DaGFuZ2VLZXksIHZhbClcbiAgfVxuXG4gIHRvZ2dsZVRhYiA9ICh0YWIpID0+IHtcbiAgICBpZiAodGFiID09PSBcInBhcmFtZXRlcnNcIikge1xuICAgICAgcmV0dXJuIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBwYXJhbWV0ZXJzVmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgY2FsbGJhY2tWaXNpYmxlOiBmYWxzZSxcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmICh0YWIgPT09IFwiY2FsbGJhY2tzXCIpIHtcbiAgICAgIHJldHVybiB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgY2FsbGJhY2tWaXNpYmxlOiB0cnVlLFxuICAgICAgICBwYXJhbWV0ZXJzVmlzaWJsZTogZmFsc2UsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuICBcbiAgb25DaGFuZ2VNZWRpYVR5cGUgPSAoeyB2YWx1ZSwgcGF0aE1ldGhvZCB9KSA9PiB7XG4gICAgbGV0IHsgc3BlY0FjdGlvbnMsIG9hczNTZWxlY3RvcnMsIG9hczNBY3Rpb25zIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgdXNlckhhc0VkaXRlZEJvZHkgPSBvYXMzU2VsZWN0b3JzLmhhc1VzZXJFZGl0ZWRCb2R5KC4uLnBhdGhNZXRob2QpXG4gICAgY29uc3Qgc2hvdWxkUmV0YWluUmVxdWVzdEJvZHlWYWx1ZSA9IG9hczNTZWxlY3RvcnMuc2hvdWxkUmV0YWluUmVxdWVzdEJvZHlWYWx1ZSguLi5wYXRoTWV0aG9kKVxuICAgIG9hczNBY3Rpb25zLnNldFJlcXVlc3RDb250ZW50VHlwZSh7IHZhbHVlLCBwYXRoTWV0aG9kIH0pXG4gICAgb2FzM0FjdGlvbnMuaW5pdFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcih7IHBhdGhNZXRob2QgfSlcbiAgICBpZiAoIXVzZXJIYXNFZGl0ZWRCb2R5KSB7XG4gICAgICBpZighc2hvdWxkUmV0YWluUmVxdWVzdEJvZHlWYWx1ZSkge1xuICAgICAgICBvYXMzQWN0aW9ucy5zZXRSZXF1ZXN0Qm9keVZhbHVlKHsgdmFsdWU6IHVuZGVmaW5lZCwgcGF0aE1ldGhvZCB9KVxuICAgICAgfVxuICAgICAgc3BlY0FjdGlvbnMuY2xlYXJSZXNwb25zZSguLi5wYXRoTWV0aG9kKVxuICAgICAgc3BlY0FjdGlvbnMuY2xlYXJSZXF1ZXN0KC4uLnBhdGhNZXRob2QpXG4gICAgICBzcGVjQWN0aW9ucy5jbGVhclZhbGlkYXRlUGFyYW1zKHBhdGhNZXRob2QpXG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuXG4gICAgbGV0IHtcbiAgICAgIG9uVHJ5b3V0Q2xpY2ssXG4gICAgICBvblJlc2V0Q2xpY2ssXG4gICAgICBwYXJhbWV0ZXJzLFxuICAgICAgYWxsb3dUcnlJdE91dCxcbiAgICAgIHRyeUl0T3V0RW5hYmxlZCxcbiAgICAgIHNwZWNQYXRoLFxuICAgICAgZm4sXG4gICAgICBnZXRDb21wb25lbnQsXG4gICAgICBnZXRDb25maWdzLFxuICAgICAgc3BlY1NlbGVjdG9ycyxcbiAgICAgIHNwZWNBY3Rpb25zLFxuICAgICAgcGF0aE1ldGhvZCxcbiAgICAgIG9hczNBY3Rpb25zLFxuICAgICAgb2FzM1NlbGVjdG9ycyxcbiAgICAgIG9wZXJhdGlvbixcbiAgICB9ID0gdGhpcy5wcm9wc1xuXG4gICAgY29uc3QgUGFyYW1ldGVyUm93ID0gZ2V0Q29tcG9uZW50KFwicGFyYW1ldGVyUm93XCIpXG4gICAgY29uc3QgVHJ5SXRPdXRCdXR0b24gPSBnZXRDb21wb25lbnQoXCJUcnlJdE91dEJ1dHRvblwiKVxuICAgIGNvbnN0IENvbnRlbnRUeXBlID0gZ2V0Q29tcG9uZW50KFwiY29udGVudFR5cGVcIilcbiAgICBjb25zdCBDYWxsYmFja3MgPSBnZXRDb21wb25lbnQoXCJDYWxsYmFja3NcIiwgdHJ1ZSlcbiAgICBjb25zdCBSZXF1ZXN0Qm9keSA9IGdldENvbXBvbmVudChcIlJlcXVlc3RCb2R5XCIsIHRydWUpXG5cbiAgICBjb25zdCBpc0V4ZWN1dGUgPSB0cnlJdE91dEVuYWJsZWQgJiYgYWxsb3dUcnlJdE91dFxuICAgIGNvbnN0IGlzT0FTMyA9IHNwZWNTZWxlY3RvcnMuaXNPQVMzKClcblxuICAgIGNvbnN0IHJlZ2lvbklkID0gY3JlYXRlSHRtbFJlYWR5SWQoYCR7cGF0aE1ldGhvZFsxXX0ke3BhdGhNZXRob2RbMF19X3JlcXVlc3RzYClcbiAgICBjb25zdCBjb250cm9sSWQgPSBgJHtyZWdpb25JZH1fc2VsZWN0YFxuXG4gICAgY29uc3QgcmVxdWVzdEJvZHkgPSBvcGVyYXRpb24uZ2V0KFwicmVxdWVzdEJvZHlcIilcblxuICAgIGNvbnN0IGdyb3VwZWRQYXJhbWV0ZXJzQXJyID0gT2JqZWN0LnZhbHVlcyhwYXJhbWV0ZXJzXG4gICAgICAucmVkdWNlKChhY2MsIHgpID0+IHtcbiAgICAgICAgaWYgKE1hcC5pc01hcCh4KSkge1xuICAgICAgICAgIGNvbnN0IGtleSA9IHguZ2V0KFwiaW5cIilcbiAgICAgICAgICBhY2Nba2V5XSA/Pz0gW11cbiAgICAgICAgICBhY2Nba2V5XS5wdXNoKHgpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwge30pKVxuICAgICAgLnJlZHVjZSgoYWNjLCB4KSA9PiBhY2MuY29uY2F0KHgpLCBbXSlcblxuICAgIGNvbnN0IHJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnRm9yT3BlcmF0aW9uID0gKGYpID0+IG9hczNBY3Rpb25zLnNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnKHsgdmFsdWU6IGYsIHBhdGhNZXRob2QgfSlcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJvcGJsb2NrLXNlY3Rpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJvcGJsb2NrLXNlY3Rpb24taGVhZGVyXCI+XG4gICAgICAgICAge2lzT0FTMyA/IChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGFiLWhlYWRlclwiPlxuICAgICAgICAgICAgICA8ZGl2IG9uQ2xpY2s9eygpID0+IHRoaXMudG9nZ2xlVGFiKFwicGFyYW1ldGVyc1wiKX1cbiAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2B0YWItaXRlbSAke3RoaXMuc3RhdGUucGFyYW1ldGVyc1Zpc2libGUgJiYgXCJhY3RpdmVcIn1gfT5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwib3BibG9jay10aXRsZVwiPjxzcGFuPlBhcmFtZXRlcnM8L3NwYW4+PC9oND5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIHtvcGVyYXRpb24uZ2V0KFwiY2FsbGJhY2tzXCIpID9cbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICA8ZGl2IG9uQ2xpY2s9eygpID0+IHRoaXMudG9nZ2xlVGFiKFwiY2FsbGJhY2tzXCIpfVxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2B0YWItaXRlbSAke3RoaXMuc3RhdGUuY2FsbGJhY2tWaXNpYmxlICYmIFwiYWN0aXZlXCJ9YH0+XG4gICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJvcGJsb2NrLXRpdGxlXCI+PHNwYW4+Q2FsbGJhY2tzPC9zcGFuPjwvaDQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApIDogbnVsbFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0YWItaGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJvcGJsb2NrLXRpdGxlXCI+UGFyYW1ldGVyczwvaDQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICAgIHthbGxvd1RyeUl0T3V0ID8gKFxuICAgICAgICAgICAgPFRyeUl0T3V0QnV0dG9uXG4gICAgICAgICAgICAgIGlzT0FTMz17c3BlY1NlbGVjdG9ycy5pc09BUzMoKX1cbiAgICAgICAgICAgICAgaGFzVXNlckVkaXRlZEJvZHk9e29hczNTZWxlY3RvcnMuaGFzVXNlckVkaXRlZEJvZHkoLi4ucGF0aE1ldGhvZCl9XG4gICAgICAgICAgICAgIGVuYWJsZWQ9e3RyeUl0T3V0RW5hYmxlZH1cbiAgICAgICAgICAgICAgb25DYW5jZWxDbGljaz17dGhpcy5wcm9wcy5vbkNhbmNlbENsaWNrfVxuICAgICAgICAgICAgICBvblRyeW91dENsaWNrPXtvblRyeW91dENsaWNrfVxuICAgICAgICAgICAgICBvblJlc2V0Q2xpY2s9eygpID0+IG9uUmVzZXRDbGljayhwYXRoTWV0aG9kKX0vPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge3RoaXMuc3RhdGUucGFyYW1ldGVyc1Zpc2libGUgPyA8ZGl2IGNsYXNzTmFtZT1cInBhcmFtZXRlcnMtY29udGFpbmVyXCI+XG4gICAgICAgICAgeyFncm91cGVkUGFyYW1ldGVyc0Fyci5sZW5ndGggPyA8ZGl2IGNsYXNzTmFtZT1cIm9wYmxvY2stZGVzY3JpcHRpb24td3JhcHBlclwiPjxwPk5vIHBhcmFtZXRlcnM8L3A+PC9kaXY+IDpcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGFibGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDx0YWJsZSBjbGFzc05hbWU9XCJwYXJhbWV0ZXJzXCI+XG4gICAgICAgICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgIDx0aCBjbGFzc05hbWU9XCJjb2xfaGVhZGVyIHBhcmFtZXRlcnMtY29sX25hbWVcIj5OYW1lPC90aD5cbiAgICAgICAgICAgICAgICAgIDx0aCBjbGFzc05hbWU9XCJjb2xfaGVhZGVyIHBhcmFtZXRlcnMtY29sX2Rlc2NyaXB0aW9uXCI+RGVzY3JpcHRpb248L3RoPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgZ3JvdXBlZFBhcmFtZXRlcnNBcnIubWFwKChwYXJhbWV0ZXIsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPFBhcmFtZXRlclJvd1xuICAgICAgICAgICAgICAgICAgICAgIGZuPXtmbn1cbiAgICAgICAgICAgICAgICAgICAgICBzcGVjUGF0aD17c3BlY1BhdGgucHVzaChpLnRvU3RyaW5nKCkpfVxuICAgICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgIGdldENvbmZpZ3M9e2dldENvbmZpZ3N9XG4gICAgICAgICAgICAgICAgICAgICAgcmF3UGFyYW09e3BhcmFtZXRlcn1cbiAgICAgICAgICAgICAgICAgICAgICBwYXJhbT17c3BlY1NlbGVjdG9ycy5wYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkocGF0aE1ldGhvZCwgcGFyYW1ldGVyKX1cbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake3BhcmFtZXRlci5nZXQoXCJpblwiKX0uJHtwYXJhbWV0ZXIuZ2V0KFwibmFtZVwiKX1gfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlQ29uc3VtZXM9e3RoaXMub25DaGFuZ2VDb25zdW1lc1dyYXBwZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgc3BlY1NlbGVjdG9ycz17c3BlY1NlbGVjdG9yc31cbiAgICAgICAgICAgICAgICAgICAgICBzcGVjQWN0aW9ucz17c3BlY0FjdGlvbnN9XG4gICAgICAgICAgICAgICAgICAgICAgb2FzM0FjdGlvbnM9e29hczNBY3Rpb25zfVxuICAgICAgICAgICAgICAgICAgICAgIG9hczNTZWxlY3RvcnM9e29hczNTZWxlY3RvcnN9XG4gICAgICAgICAgICAgICAgICAgICAgcGF0aE1ldGhvZD17cGF0aE1ldGhvZH1cbiAgICAgICAgICAgICAgICAgICAgICBpc0V4ZWN1dGU9e2lzRXhlY3V0ZX0gLz5cbiAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PiA6IG51bGx9XG5cbiAgICAgICAge3RoaXMuc3RhdGUuY2FsbGJhY2tWaXNpYmxlID8gPGRpdiBjbGFzc05hbWU9XCJjYWxsYmFja3MtY29udGFpbmVyIG9wYmxvY2stZGVzY3JpcHRpb24td3JhcHBlclwiPlxuICAgICAgICAgIDxDYWxsYmFja3NcbiAgICAgICAgICAgIGNhbGxiYWNrcz17TWFwKG9wZXJhdGlvbi5nZXQoXCJjYWxsYmFja3NcIikpfVxuICAgICAgICAgICAgc3BlY1BhdGg9e3NwZWNQYXRoLnNsaWNlKDAsIC0xKS5wdXNoKFwiY2FsbGJhY2tzXCIpfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PiA6IG51bGx9XG4gICAgICAgIHtcbiAgICAgICAgICBpc09BUzMgJiYgcmVxdWVzdEJvZHkgJiYgdGhpcy5zdGF0ZS5wYXJhbWV0ZXJzVmlzaWJsZSAmJlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwib3BibG9jay1zZWN0aW9uIG9wYmxvY2stc2VjdGlvbi1yZXF1ZXN0LWJvZHlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwib3BibG9jay1zZWN0aW9uLWhlYWRlclwiPlxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPXtgb3BibG9jay10aXRsZSBwYXJhbWV0ZXJfX25hbWUgJHtyZXF1ZXN0Qm9keS5nZXQoXCJyZXF1aXJlZFwiKSAmJiBcInJlcXVpcmVkXCJ9YH0+UmVxdWVzdFxuICAgICAgICAgICAgICAgIGJvZHk8L2g0PlxuICAgICAgICAgICAgICA8bGFiZWwgaWQ9e2NvbnRyb2xJZH0+XG4gICAgICAgICAgICAgICAgPENvbnRlbnRUeXBlXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17b2FzM1NlbGVjdG9ycy5yZXF1ZXN0Q29udGVudFR5cGUoLi4ucGF0aE1ldGhvZCl9XG4gICAgICAgICAgICAgICAgICBjb250ZW50VHlwZXM9e3JlcXVlc3RCb2R5LmdldChcImNvbnRlbnRcIiwgTGlzdCgpKS5rZXlTZXEoKX1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZU1lZGlhVHlwZSh7IHZhbHVlLCBwYXRoTWV0aG9kIH0pXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYm9keS1wYXJhbS1jb250ZW50LXR5cGVcIlxuICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiUmVxdWVzdCBjb250ZW50IHR5cGVcIiBcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xJZD17Y29udHJvbElkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwib3BibG9jay1kZXNjcmlwdGlvbi13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIDxSZXF1ZXN0Qm9keVxuICAgICAgICAgICAgICAgIHNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnPXtyZXRhaW5SZXF1ZXN0Qm9keVZhbHVlRmxhZ0Zvck9wZXJhdGlvbn1cbiAgICAgICAgICAgICAgICB1c2VySGFzRWRpdGVkQm9keT17b2FzM1NlbGVjdG9ycy5oYXNVc2VyRWRpdGVkQm9keSguLi5wYXRoTWV0aG9kKX1cbiAgICAgICAgICAgICAgICBzcGVjUGF0aD17c3BlY1BhdGguc2xpY2UoMCwgLTEpLnB1c2goXCJyZXF1ZXN0Qm9keVwiKX1cbiAgICAgICAgICAgICAgICByZXF1ZXN0Qm9keT17cmVxdWVzdEJvZHl9XG4gICAgICAgICAgICAgICAgcmVxdWVzdEJvZHlWYWx1ZT17b2FzM1NlbGVjdG9ycy5yZXF1ZXN0Qm9keVZhbHVlKC4uLnBhdGhNZXRob2QpfVxuICAgICAgICAgICAgICAgIHJlcXVlc3RCb2R5SW5jbHVzaW9uU2V0dGluZz17b2FzM1NlbGVjdG9ycy5yZXF1ZXN0Qm9keUluY2x1c2lvblNldHRpbmcoLi4ucGF0aE1ldGhvZCl9XG4gICAgICAgICAgICAgICAgcmVxdWVzdEJvZHlFcnJvcnM9e29hczNTZWxlY3RvcnMucmVxdWVzdEJvZHlFcnJvcnMoLi4ucGF0aE1ldGhvZCl9XG4gICAgICAgICAgICAgICAgaXNFeGVjdXRlPXtpc0V4ZWN1dGV9XG4gICAgICAgICAgICAgICAgZ2V0Q29uZmlncz17Z2V0Q29uZmlnc31cbiAgICAgICAgICAgICAgICBhY3RpdmVFeGFtcGxlc0tleT17b2FzM1NlbGVjdG9ycy5hY3RpdmVFeGFtcGxlc01lbWJlcihcbiAgICAgICAgICAgICAgICAgIC4uLnBhdGhNZXRob2QsXG4gICAgICAgICAgICAgICAgICBcInJlcXVlc3RCb2R5XCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVlc3RCb2R5XCIsIC8vIFJCcyBhcmUgY3VycmVudGx5IG5vdCBzdG9yZWQgcGVyLW1lZGlhVHlwZVxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgdXBkYXRlQWN0aXZlRXhhbXBsZXNLZXk9e2tleSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9hczNBY3Rpb25zLnNldEFjdGl2ZUV4YW1wbGVzTWVtYmVyKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZToga2V5LFxuICAgICAgICAgICAgICAgICAgICBwYXRoTWV0aG9kOiB0aGlzLnByb3BzLnBhdGhNZXRob2QsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHRUeXBlOiBcInJlcXVlc3RCb2R5XCIsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHROYW1lOiBcInJlcXVlc3RCb2R5XCIsIC8vIFJCcyBhcmUgY3VycmVudGx5IG5vdCBzdG9yZWQgcGVyLW1lZGlhVHlwZVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUsIHBhdGgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RWYWx1ZSA9IG9hczNTZWxlY3RvcnMucmVxdWVzdEJvZHlWYWx1ZSguLi5wYXRoTWV0aG9kKVxuICAgICAgICAgICAgICAgICAgICBjb25zdCB1c2FibGVWYWx1ZSA9IE1hcC5pc01hcChsYXN0VmFsdWUpID8gbGFzdFZhbHVlIDogTWFwKClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9hczNBY3Rpb25zLnNldFJlcXVlc3RCb2R5VmFsdWUoe1xuICAgICAgICAgICAgICAgICAgICAgIHBhdGhNZXRob2QsXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHVzYWJsZVZhbHVlLnNldEluKHBhdGgsIHZhbHVlKSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIG9hczNBY3Rpb25zLnNldFJlcXVlc3RCb2R5VmFsdWUoeyB2YWx1ZSwgcGF0aE1ldGhvZCB9KVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25DaGFuZ2VJbmNsdWRlRW1wdHk9eyhuYW1lLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgb2FzM0FjdGlvbnMuc2V0UmVxdWVzdEJvZHlJbmNsdXNpb24oe1xuICAgICAgICAgICAgICAgICAgICBwYXRoTWV0aG9kLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBjb250ZW50VHlwZT17b2FzM1NlbGVjdG9ycy5yZXF1ZXN0Q29udGVudFR5cGUoLi4ucGF0aE1ldGhvZCl9IC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5leHBvcnQgY29uc3QgUGFyYW1ldGVyRXh0ID0gKHsgeEtleSwgeFZhbCB9KSA9PiB7XG4gICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwicGFyYW1ldGVyX19leHRlbnNpb25cIj57IHhLZXkgfTogeyBTdHJpbmcoeFZhbCkgfTwvZGl2PlxufVxuUGFyYW1ldGVyRXh0LnByb3BUeXBlcyA9IHtcbiAgeEtleTogUHJvcFR5cGVzLnN0cmluZyxcbiAgeFZhbDogUHJvcFR5cGVzLmFueVxufVxuXG5leHBvcnQgZGVmYXVsdCBQYXJhbWV0ZXJFeHRcbiIsImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IGN4IGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7IH1cblxuY29uc3QgUGFyYW1ldGVySW5jbHVkZUVtcHR5UHJvcFR5cGVzID0ge1xuICBpc0luY2x1ZGVkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBpc0Rpc2FibGVkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBpc0luY2x1ZGVkT3B0aW9uczogUHJvcFR5cGVzLm9iamVjdCxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59XG5cbmNvbnN0IFBhcmFtZXRlckluY2x1ZGVFbXB0eURlZmF1bHRQcm9wcyA9IHtcbiAgb25DaGFuZ2U6IG5vb3AsXG4gIGlzSW5jbHVkZWRPcHRpb25zOiB7fSxcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhcmFtZXRlckluY2x1ZGVFbXB0eSBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBQYXJhbWV0ZXJJbmNsdWRlRW1wdHlQcm9wVHlwZXNcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IFBhcmFtZXRlckluY2x1ZGVFbXB0eURlZmF1bHRQcm9wc1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNJbmNsdWRlZE9wdGlvbnMsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgeyBzaG91bGREaXNwYXRjaEluaXQsIGRlZmF1bHRWYWx1ZSB9ID0gaXNJbmNsdWRlZE9wdGlvbnNcbiAgICBpZiAoc2hvdWxkRGlzcGF0Y2hJbml0KSB7XG4gICAgICBvbkNoYW5nZShkZWZhdWx0VmFsdWUpXG4gICAgfVxuICB9XG5cbiAgb25DaGVja2JveENoYW5nZSA9IGUgPT4ge1xuICAgIGNvbnN0IHsgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHNcbiAgICBvbkNoYW5nZShlLnRhcmdldC5jaGVja2VkKVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IGlzSW5jbHVkZWQsIGlzRGlzYWJsZWQgfSA9IHRoaXMucHJvcHNcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8bGFiZWwgXG4gICAgICAgICAgaHRtbEZvcj1cImluY2x1ZGVfZW1wdHlfdmFsdWVcIiBcbiAgICAgICAgICBjbGFzc05hbWU9e2N4KFwicGFyYW1ldGVyX19lbXB0eV92YWx1ZV90b2dnbGVcIiwge1xuICAgICAgICAgICAgXCJkaXNhYmxlZFwiOiBpc0Rpc2FibGVkXG4gICAgICAgICAgfSl9XG4gICAgICAgID5cbiAgICAgICAgICA8aW5wdXQgXG4gICAgICAgICAgICBpZD1cImluY2x1ZGVfZW1wdHlfdmFsdWVcIlxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgXG4gICAgICAgICAgICBkaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICAgICAgICAgIGNoZWNrZWQ9eyFpc0Rpc2FibGVkICYmIGlzSW5jbHVkZWR9XG4gICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoZWNrYm94Q2hhbmdlfSBcbiAgICAgICAgICAvPlxuICAgICAgICAgIFNlbmQgZW1wdHkgdmFsdWVcbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBNYXAsIExpc3QsIGZyb21KUyB9IGZyb20gXCJpbW11dGFibGVcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuaW1wb3J0IHdpbiBmcm9tIFwiY29yZS93aW5kb3dcIlxuaW1wb3J0IHsgZ2V0RXh0ZW5zaW9ucywgZ2V0Q29tbW9uRXh0ZW5zaW9ucywgbnVtYmVyVG9TdHJpbmcsIHN0cmluZ2lmeSwgaXNFbXB0eVZhbHVlIH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuaW1wb3J0IGdldFBhcmFtZXRlclNjaGVtYSBmcm9tIFwiY29yZS91dGlscy9nZXQtcGFyYW1ldGVyLXNjaGVtYS5qc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhcmFtZXRlclJvdyBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgcGFyYW06IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICByYXdQYXJhbTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBmbjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGlzRXhlY3V0ZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25DaGFuZ2VDb25zdW1lczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgc3BlY0FjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBwYXRoTWV0aG9kOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgICBnZXRDb25maWdzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNwZWNQYXRoOiBJbVByb3BUeXBlcy5saXN0LmlzUmVxdWlyZWQsXG4gICAgb2FzM0FjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBvYXMzU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm9wcywgY29udGV4dCkge1xuICAgIHN1cGVyKHByb3BzLCBjb250ZXh0KVxuXG4gICAgdGhpcy5zZXREZWZhdWx0VmFsdWUoKVxuICB9XG5cbiAgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMocHJvcHMpIHtcbiAgICBsZXQgeyBzcGVjU2VsZWN0b3JzLCBwYXRoTWV0aG9kLCByYXdQYXJhbSB9ID0gcHJvcHNcbiAgICBsZXQgaXNPQVMzID0gc3BlY1NlbGVjdG9ycy5pc09BUzMoKVxuXG4gICAgbGV0IHBhcmFtZXRlcldpdGhNZXRhID0gc3BlY1NlbGVjdG9ycy5wYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkocGF0aE1ldGhvZCwgcmF3UGFyYW0pIHx8IG5ldyBNYXAoKVxuICAgIC8vIGZhbGxiYWNrLCBpZiB0aGUgbWV0YSBsb29rdXAgZmFpbHNcbiAgICBwYXJhbWV0ZXJXaXRoTWV0YSA9IHBhcmFtZXRlcldpdGhNZXRhLmlzRW1wdHkoKSA/IHJhd1BhcmFtIDogcGFyYW1ldGVyV2l0aE1ldGFcblxuICAgIGxldCBlbnVtVmFsdWVcblxuICAgIGlmKGlzT0FTMykge1xuICAgICAgbGV0IHsgc2NoZW1hIH0gPSBnZXRQYXJhbWV0ZXJTY2hlbWEocGFyYW1ldGVyV2l0aE1ldGEsIHsgaXNPQVMzIH0pXG4gICAgICBlbnVtVmFsdWUgPSBzY2hlbWEgPyBzY2hlbWEuZ2V0KFwiZW51bVwiKSA6IHVuZGVmaW5lZFxuICAgIH0gZWxzZSB7XG4gICAgICBlbnVtVmFsdWUgPSBwYXJhbWV0ZXJXaXRoTWV0YSA/IHBhcmFtZXRlcldpdGhNZXRhLmdldChcImVudW1cIikgOiB1bmRlZmluZWRcbiAgICB9XG4gICAgbGV0IHBhcmFtVmFsdWUgPSBwYXJhbWV0ZXJXaXRoTWV0YSA/IHBhcmFtZXRlcldpdGhNZXRhLmdldChcInZhbHVlXCIpIDogdW5kZWZpbmVkXG5cbiAgICBsZXQgdmFsdWVcblxuICAgIGlmICggcGFyYW1WYWx1ZSAhPT0gdW5kZWZpbmVkICkge1xuICAgICAgdmFsdWUgPSBwYXJhbVZhbHVlXG4gICAgfSBlbHNlIGlmICggcmF3UGFyYW0uZ2V0KFwicmVxdWlyZWRcIikgJiYgZW51bVZhbHVlICYmIGVudW1WYWx1ZS5zaXplICkge1xuICAgICAgdmFsdWUgPSBlbnVtVmFsdWUuZmlyc3QoKVxuICAgIH1cblxuICAgIGlmICggdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gcGFyYW1WYWx1ZSApIHtcbiAgICAgIHRoaXMub25DaGFuZ2VXcmFwcGVyKG51bWJlclRvU3RyaW5nKHZhbHVlKSlcbiAgICB9XG4gICAgLy8gdG9kbzogY291bGQgY2hlY2sgaWYgc2NoZW1hIGhlcmU7IGlmIG5vdCwgZG8gbm90IGNhbGwuIGltcGFjdD9cbiAgICB0aGlzLnNldERlZmF1bHRWYWx1ZSgpXG4gIH1cblxuICBvbkNoYW5nZVdyYXBwZXIgPSAodmFsdWUsIGlzWG1sID0gZmFsc2UpID0+IHtcbiAgICBsZXQgeyBvbkNoYW5nZSwgcmF3UGFyYW0gfSA9IHRoaXMucHJvcHNcbiAgICBsZXQgdmFsdWVGb3JVcHN0cmVhbVxuXG4gICAgLy8gQ29lcmNlIGVtcHR5IHN0cmluZ3MgYW5kIGVtcHR5IEltbXV0YWJsZSBvYmplY3RzIHRvIG51bGxcbiAgICBpZih2YWx1ZSA9PT0gXCJcIiB8fCAodmFsdWUgJiYgdmFsdWUuc2l6ZSA9PT0gMCkpIHtcbiAgICAgIHZhbHVlRm9yVXBzdHJlYW0gPSBudWxsXG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlRm9yVXBzdHJlYW0gPSB2YWx1ZVxuICAgIH1cblxuICAgIHJldHVybiBvbkNoYW5nZShyYXdQYXJhbSwgdmFsdWVGb3JVcHN0cmVhbSwgaXNYbWwpXG4gIH1cblxuICBfb25FeGFtcGxlU2VsZWN0ID0gKGtleSwgLyogeyBpc1N5bnRoZXRpY0NoYW5nZSB9ID0ge30gKi8pID0+IHtcbiAgICB0aGlzLnByb3BzLm9hczNBY3Rpb25zLnNldEFjdGl2ZUV4YW1wbGVzTWVtYmVyKHtcbiAgICAgIG5hbWU6IGtleSxcbiAgICAgIHBhdGhNZXRob2Q6IHRoaXMucHJvcHMucGF0aE1ldGhvZCxcbiAgICAgIGNvbnRleHRUeXBlOiBcInBhcmFtZXRlcnNcIixcbiAgICAgIGNvbnRleHROYW1lOiB0aGlzLmdldFBhcmFtS2V5KClcbiAgICB9KVxuICB9XG5cbiAgb25DaGFuZ2VJbmNsdWRlRW1wdHkgPSAobmV3VmFsdWUpID0+IHtcbiAgICBsZXQgeyBzcGVjQWN0aW9ucywgcGFyYW0sIHBhdGhNZXRob2QgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBwYXJhbU5hbWUgPSBwYXJhbS5nZXQoXCJuYW1lXCIpXG4gICAgY29uc3QgcGFyYW1JbiA9IHBhcmFtLmdldChcImluXCIpXG4gICAgcmV0dXJuIHNwZWNBY3Rpb25zLnVwZGF0ZUVtcHR5UGFyYW1JbmNsdXNpb24ocGF0aE1ldGhvZCwgcGFyYW1OYW1lLCBwYXJhbUluLCBuZXdWYWx1ZSlcbiAgfVxuXG4gIHNldERlZmF1bHRWYWx1ZSA9ICgpID0+IHtcbiAgICBsZXQgeyBzcGVjU2VsZWN0b3JzLCBwYXRoTWV0aG9kLCByYXdQYXJhbSwgb2FzM1NlbGVjdG9ycywgZm4gfSA9IHRoaXMucHJvcHNcblxuICAgIGNvbnN0IHBhcmFtV2l0aE1ldGEgPSBzcGVjU2VsZWN0b3JzLnBhcmFtZXRlcldpdGhNZXRhQnlJZGVudGl0eShwYXRoTWV0aG9kLCByYXdQYXJhbSkgfHwgTWFwKClcbiAgICBsZXQgeyBzY2hlbWEgfSA9IGdldFBhcmFtZXRlclNjaGVtYShwYXJhbVdpdGhNZXRhLCB7IGlzT0FTMzogc3BlY1NlbGVjdG9ycy5pc09BUzMoKSB9KVxuICAgIGNvbnN0IHBhcmFtZXRlck1lZGlhVHlwZSA9IHBhcmFtV2l0aE1ldGFcbiAgICAgIC5nZXQoXCJjb250ZW50XCIsIE1hcCgpKVxuICAgICAgLmtleVNlcSgpXG4gICAgICAuZmlyc3QoKVxuXG4gICAgLy8gZ2V0U2FtcGxlU2NoZW1hIGNvdWxkIHJldHVybiBudWxsXG4gICAgY29uc3QgZ2VuZXJhdGVkU2FtcGxlVmFsdWUgPSBzY2hlbWEgPyBmbi5nZXRTYW1wbGVTY2hlbWEoc2NoZW1hLnRvSlMoKSwgcGFyYW1ldGVyTWVkaWFUeXBlLCB7XG5cbiAgICAgIGluY2x1ZGVXcml0ZU9ubHk6IHRydWVcbiAgICB9KSA6IG51bGxcblxuICAgIGlmICghcGFyYW1XaXRoTWV0YSB8fCBwYXJhbVdpdGhNZXRhLmdldChcInZhbHVlXCIpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmKCBwYXJhbVdpdGhNZXRhLmdldChcImluXCIpICE9PSBcImJvZHlcIiApIHtcbiAgICAgIGxldCBpbml0aWFsVmFsdWVcblxuICAgICAgLy8vLyBGaW5kIGFuIGluaXRpYWwgdmFsdWVcblxuICAgICAgaWYgKHNwZWNTZWxlY3RvcnMuaXNTd2FnZ2VyMigpKSB7XG4gICAgICAgIGluaXRpYWxWYWx1ZSA9XG4gICAgICAgICAgcGFyYW1XaXRoTWV0YS5nZXQoXCJ4LWV4YW1wbGVcIikgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gcGFyYW1XaXRoTWV0YS5nZXQoXCJ4LWV4YW1wbGVcIilcbiAgICAgICAgICA6IHBhcmFtV2l0aE1ldGEuZ2V0SW4oW1wic2NoZW1hXCIsIFwiZXhhbXBsZVwiXSkgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gcGFyYW1XaXRoTWV0YS5nZXRJbihbXCJzY2hlbWFcIiwgXCJleGFtcGxlXCJdKVxuICAgICAgICAgIDogKHNjaGVtYSAmJiBzY2hlbWEuZ2V0SW4oW1wiZGVmYXVsdFwiXSkpXG4gICAgICB9IGVsc2UgaWYgKHNwZWNTZWxlY3RvcnMuaXNPQVMzKCkpIHtcbiAgICAgICAgc2NoZW1hID0gdGhpcy5jb21wb3NlSnNvblNjaGVtYShzY2hlbWEpXG5cbiAgICAgICAgY29uc3QgY3VycmVudEV4YW1wbGVLZXkgPSBvYXMzU2VsZWN0b3JzLmFjdGl2ZUV4YW1wbGVzTWVtYmVyKC4uLnBhdGhNZXRob2QsIFwicGFyYW1ldGVyc1wiLCB0aGlzLmdldFBhcmFtS2V5KCkpXG4gICAgICAgIGluaXRpYWxWYWx1ZSA9XG4gICAgICAgICAgcGFyYW1XaXRoTWV0YS5nZXRJbihbXCJleGFtcGxlc1wiLCBjdXJyZW50RXhhbXBsZUtleSwgXCJ2YWx1ZVwiXSkgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gcGFyYW1XaXRoTWV0YS5nZXRJbihbXCJleGFtcGxlc1wiLCBjdXJyZW50RXhhbXBsZUtleSwgXCJ2YWx1ZVwiXSlcbiAgICAgICAgICA6IHBhcmFtV2l0aE1ldGEuZ2V0SW4oW1wiY29udGVudFwiLCBwYXJhbWV0ZXJNZWRpYVR5cGUsIFwiZXhhbXBsZVwiXSkgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gcGFyYW1XaXRoTWV0YS5nZXRJbihbXCJjb250ZW50XCIsIHBhcmFtZXRlck1lZGlhVHlwZSwgXCJleGFtcGxlXCJdKVxuICAgICAgICAgIDogcGFyYW1XaXRoTWV0YS5nZXQoXCJleGFtcGxlXCIpICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IHBhcmFtV2l0aE1ldGEuZ2V0KFwiZXhhbXBsZVwiKVxuICAgICAgICAgIDogKHNjaGVtYSAmJiBzY2hlbWEuZ2V0KFwiZXhhbXBsZVwiKSkgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gKHNjaGVtYSAmJiBzY2hlbWEuZ2V0KFwiZXhhbXBsZVwiKSlcbiAgICAgICAgICA6IChzY2hlbWEgJiYgc2NoZW1hLmdldChcImRlZmF1bHRcIikpICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IChzY2hlbWEgJiYgc2NoZW1hLmdldChcImRlZmF1bHRcIikpXG4gICAgICAgICAgOiBwYXJhbVdpdGhNZXRhLmdldChcImRlZmF1bHRcIikgLy8gZW5zdXJlcyBzdXBwb3J0IGZvciBgcGFyYW1ldGVyTWFjcm9gXG4gICAgICB9XG5cbiAgICAgIC8vLy8gUHJvY2VzcyB0aGUgaW5pdGlhbCB2YWx1ZVxuXG4gICAgICBpZihpbml0aWFsVmFsdWUgIT09IHVuZGVmaW5lZCAmJiAhTGlzdC5pc0xpc3QoaW5pdGlhbFZhbHVlKSkge1xuICAgICAgICAvLyBTdHJpbmdpZnkgaWYgaXQgaXNuJ3QgYSBMaXN0XG4gICAgICAgIGluaXRpYWxWYWx1ZSA9IHN0cmluZ2lmeShpbml0aWFsVmFsdWUpXG4gICAgICB9XG5cbiAgICAgIC8vLy8gRGlzcGF0Y2ggdGhlIGluaXRpYWwgdmFsdWVcblxuICAgICAgY29uc3Qgc2NoZW1hT2JqZWN0VHlwZSA9IGZuLmdldFNjaGVtYU9iamVjdFR5cGUoc2NoZW1hKVxuICAgICAgY29uc3Qgc2NoZW1hSXRlbXNUeXBlID0gZm4uZ2V0U2NoZW1hT2JqZWN0VHlwZShzY2hlbWE/LmdldChcIml0ZW1zXCIpKVxuXG4gICAgICBpZihpbml0aWFsVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlV3JhcHBlcihpbml0aWFsVmFsdWUpXG4gICAgICB9IGVsc2UgaWYoXG4gICAgICAgIHNjaGVtYU9iamVjdFR5cGUgPT09IFwib2JqZWN0XCJcbiAgICAgICAgJiYgZ2VuZXJhdGVkU2FtcGxlVmFsdWVcbiAgICAgICAgJiYgIXBhcmFtV2l0aE1ldGEuZ2V0KFwiZXhhbXBsZXNcIilcbiAgICAgICkge1xuICAgICAgICAvLyBPYmplY3QgcGFyYW1ldGVycyBnZXQgc3BlY2lhbCB0cmVhdG1lbnQuLiBpZiB0aGUgdXNlciBkb2Vzbid0IHNldCBhbnlcbiAgICAgICAgLy8gZGVmYXVsdCBvciBleGFtcGxlIHZhbHVlcywgd2UnbGwgcHJvdmlkZSBpbml0aWFsIHZhbHVlcyBnZW5lcmF0ZWQgZnJvbVxuICAgICAgICAvLyB0aGUgc2NoZW1hLlxuICAgICAgICAvLyBIb3dldmVyLCBpZiBgZXhhbXBsZXNgIGV4aXN0IGZvciB0aGUgcGFyYW1ldGVyLCB3ZSB3b24ndCBkbyBhbnl0aGluZyxcbiAgICAgICAgLy8gc28gdGhhdCB0aGUgYXBwcm9wcmlhdGUgYGV4YW1wbGVzYCBsb2dpYyBjYW4gdGFrZSBvdmVyLlxuICAgICAgICB0aGlzLm9uQ2hhbmdlV3JhcHBlcihcbiAgICAgICAgICBMaXN0LmlzTGlzdChnZW5lcmF0ZWRTYW1wbGVWYWx1ZSkgPyAoXG4gICAgICAgICAgICBnZW5lcmF0ZWRTYW1wbGVWYWx1ZVxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICBzdHJpbmdpZnkoZ2VuZXJhdGVkU2FtcGxlVmFsdWUpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9XG4gICAgICBlbHNlIGlmIChcbiAgICAgICAgc2NoZW1hT2JqZWN0VHlwZSA9PT0gXCJhcnJheVwiXG4gICAgICAgICYmIHNjaGVtYUl0ZW1zVHlwZSA9PT0gXCJvYmplY3RcIlxuICAgICAgICAmJiBnZW5lcmF0ZWRTYW1wbGVWYWx1ZVxuICAgICAgICAmJiAhcGFyYW1XaXRoTWV0YS5nZXQoXCJleGFtcGxlc1wiKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VXcmFwcGVyKFxuICAgICAgICAgIExpc3QuaXNMaXN0KGdlbmVyYXRlZFNhbXBsZVZhbHVlKSA/IChcbiAgICAgICAgICAgIGdlbmVyYXRlZFNhbXBsZVZhbHVlXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIExpc3QoSlNPTi5wYXJzZShnZW5lcmF0ZWRTYW1wbGVWYWx1ZSkpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0UGFyYW1LZXkoKSB7XG4gICAgY29uc3QgeyBwYXJhbSB9ID0gdGhpcy5wcm9wc1xuXG4gICAgaWYoIXBhcmFtKSByZXR1cm4gbnVsbFxuXG4gICAgcmV0dXJuIGAke3BhcmFtLmdldChcIm5hbWVcIil9LSR7cGFyYW0uZ2V0KFwiaW5cIil9YFxuICB9XG5cbiAgY29tcG9zZUpzb25TY2hlbWEoc2NoZW1hKSB7XG4gICAgY29uc3QgeyBmbiB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IG9uZU9mID0gc2NoZW1hLmdldChcIm9uZU9mXCIpPy5nZXQoMCk/LnRvSlMoKVxuICAgIGNvbnN0IGFueU9mID0gc2NoZW1hLmdldChcImFueU9mXCIpPy5nZXQoMCk/LnRvSlMoKVxuICAgIHJldHVybiBmcm9tSlMoZm4ubWVyZ2VKc29uU2NoZW1hKHNjaGVtYS50b0pTKCksIG9uZU9mID8/IGFueU9mID8/IHt9KSlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQge3BhcmFtLCByYXdQYXJhbSwgZ2V0Q29tcG9uZW50LCBnZXRDb25maWdzLCBpc0V4ZWN1dGUsIGZuLCBvbkNoYW5nZUNvbnN1bWVzLCBzcGVjU2VsZWN0b3JzLCBwYXRoTWV0aG9kLCBzcGVjUGF0aCwgb2FzM1NlbGVjdG9yc30gPSB0aGlzLnByb3BzXG5cbiAgICBsZXQgaXNPQVMzID0gc3BlY1NlbGVjdG9ycy5pc09BUzMoKVxuXG4gICAgY29uc3QgeyBzaG93RXh0ZW5zaW9ucywgc2hvd0NvbW1vbkV4dGVuc2lvbnMgfSA9IGdldENvbmZpZ3MoKVxuXG4gICAgaWYoIXBhcmFtKSB7XG4gICAgICBwYXJhbSA9IHJhd1BhcmFtXG4gICAgfVxuXG4gICAgaWYoIXJhd1BhcmFtKSByZXR1cm4gbnVsbFxuXG4gICAgLy8gY29uc3Qgb25DaGFuZ2VXcmFwcGVyID0gKHZhbHVlKSA9PiBvbkNoYW5nZShwYXJhbSwgdmFsdWUpXG4gICAgY29uc3QgSnNvblNjaGVtYUZvcm0gPSBnZXRDb21wb25lbnQoXCJKc29uU2NoZW1hRm9ybVwiKVxuICAgIGNvbnN0IFBhcmFtQm9keSA9IGdldENvbXBvbmVudChcIlBhcmFtQm9keVwiKVxuICAgIGxldCBpblR5cGUgPSBwYXJhbS5nZXQoXCJpblwiKVxuICAgIGxldCBib2R5UGFyYW0gPSBpblR5cGUgIT09IFwiYm9keVwiID8gbnVsbFxuICAgICAgOiA8UGFyYW1Cb2R5IGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgIGdldENvbmZpZ3M9eyBnZXRDb25maWdzIH1cbiAgICAgICAgICAgICAgICAgICBmbj17Zm59XG4gICAgICAgICAgICAgICAgICAgcGFyYW09e3BhcmFtfVxuICAgICAgICAgICAgICAgICAgIGNvbnN1bWVzPXsgc3BlY1NlbGVjdG9ycy5jb25zdW1lc09wdGlvbnNGb3IocGF0aE1ldGhvZCkgfVxuICAgICAgICAgICAgICAgICAgIGNvbnN1bWVzVmFsdWU9eyBzcGVjU2VsZWN0b3JzLmNvbnRlbnRUeXBlVmFsdWVzKHBhdGhNZXRob2QpLmdldChcInJlcXVlc3RDb250ZW50VHlwZVwiKSB9XG4gICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2VXcmFwcGVyfVxuICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlQ29uc3VtZXM9e29uQ2hhbmdlQ29uc3VtZXN9XG4gICAgICAgICAgICAgICAgICAgaXNFeGVjdXRlPXsgaXNFeGVjdXRlIH1cbiAgICAgICAgICAgICAgICAgICBzcGVjU2VsZWN0b3JzPXsgc3BlY1NlbGVjdG9ycyB9XG4gICAgICAgICAgICAgICAgICAgcGF0aE1ldGhvZD17IHBhdGhNZXRob2QgfVxuICAgICAgLz5cblxuICAgIGNvbnN0IE1vZGVsRXhhbXBsZSA9IGdldENvbXBvbmVudChcIm1vZGVsRXhhbXBsZVwiKVxuICAgIGNvbnN0IE1hcmtkb3duID0gZ2V0Q29tcG9uZW50KFwiTWFya2Rvd25cIiwgdHJ1ZSlcbiAgICBjb25zdCBQYXJhbWV0ZXJFeHQgPSBnZXRDb21wb25lbnQoXCJQYXJhbWV0ZXJFeHRcIilcbiAgICBjb25zdCBQYXJhbWV0ZXJJbmNsdWRlRW1wdHkgPSBnZXRDb21wb25lbnQoXCJQYXJhbWV0ZXJJbmNsdWRlRW1wdHlcIilcbiAgICBjb25zdCBFeGFtcGxlc1NlbGVjdFZhbHVlUmV0YWluZXIgPSBnZXRDb21wb25lbnQoXCJFeGFtcGxlc1NlbGVjdFZhbHVlUmV0YWluZXJcIilcbiAgICBjb25zdCBFeGFtcGxlID0gZ2V0Q29tcG9uZW50KFwiRXhhbXBsZVwiKVxuXG4gICAgbGV0IHsgc2NoZW1hIH0gPSBnZXRQYXJhbWV0ZXJTY2hlbWEocGFyYW0sIHsgaXNPQVMzIH0pXG4gICAgbGV0IHBhcmFtV2l0aE1ldGEgPSBzcGVjU2VsZWN0b3JzLnBhcmFtZXRlcldpdGhNZXRhQnlJZGVudGl0eShwYXRoTWV0aG9kLCByYXdQYXJhbSkgfHwgTWFwKClcblxuICAgIGlmIChpc09BUzMpIHtcbiAgICAgIHNjaGVtYSA9IHRoaXMuY29tcG9zZUpzb25TY2hlbWEoc2NoZW1hKVxuICAgIH1cblxuICAgIGxldCBmb3JtYXQgPSBzY2hlbWEgPyBzY2hlbWEuZ2V0KFwiZm9ybWF0XCIpIDogbnVsbFxuICAgIGxldCBpc0Zvcm1EYXRhID0gaW5UeXBlID09PSBcImZvcm1EYXRhXCJcbiAgICBsZXQgaXNGb3JtRGF0YVN1cHBvcnRlZCA9IFwiRm9ybURhdGFcIiBpbiB3aW5cbiAgICBsZXQgcmVxdWlyZWQgPSBwYXJhbS5nZXQoXCJyZXF1aXJlZFwiKVxuXG4gICAgY29uc3Qgc2NoZW1hT2JqZWN0VHlwZSA9IGZuLmdldFNjaGVtYU9iamVjdFR5cGUoc2NoZW1hKVxuICAgIGNvbnN0IHNjaGVtYUl0ZW1zVHlwZSA9IGZuLmdldFNjaGVtYU9iamVjdFR5cGUoc2NoZW1hPy5nZXQoXCJpdGVtc1wiKSlcbiAgICBjb25zdCBzY2hlbWFPYmplY3RUeXBlTGFiZWwgPSBmbi5nZXRTY2hlbWFPYmplY3RUeXBlTGFiZWwoc2NoZW1hKVxuICAgIGNvbnN0IGlzT2JqZWN0ID0gIWJvZHlQYXJhbSAmJiBzY2hlbWFPYmplY3RUeXBlID09PSBcIm9iamVjdFwiXG4gICAgY29uc3QgaXNBcnJheU9mT2JqZWN0cyA9ICFib2R5UGFyYW0gJiYgc2NoZW1hSXRlbXNUeXBlID09PSBcIm9iamVjdFwiXG5cbiAgICBsZXQgdmFsdWUgPSBwYXJhbVdpdGhNZXRhID8gcGFyYW1XaXRoTWV0YS5nZXQoXCJ2YWx1ZVwiKSA6IFwiXCJcbiAgICBsZXQgY29tbW9uRXh0ID0gc2hvd0NvbW1vbkV4dGVuc2lvbnMgPyBnZXRDb21tb25FeHRlbnNpb25zKHNjaGVtYSkgOiBudWxsXG4gICAgbGV0IGV4dGVuc2lvbnMgPSBzaG93RXh0ZW5zaW9ucyA/IGdldEV4dGVuc2lvbnMocGFyYW0pIDogbnVsbFxuXG4gICAgbGV0IHBhcmFtSXRlbXMgLy8gdW5kZWZpbmVkXG4gICAgbGV0IHBhcmFtRW51bSAvLyB1bmRlZmluZWRcbiAgICBsZXQgcGFyYW1EZWZhdWx0VmFsdWUgLy8gdW5kZWZpbmVkXG4gICAgbGV0IHBhcmFtRXhhbXBsZSAvLyB1bmRlZmluZWRcbiAgICBsZXQgaXNEaXNwbGF5UGFyYW1FbnVtID0gZmFsc2VcblxuICAgIGlmICggcGFyYW0gIT09IHVuZGVmaW5lZCAmJiBzY2hlbWEgKSB7XG4gICAgICBwYXJhbUl0ZW1zID0gc2NoZW1hLmdldChcIml0ZW1zXCIpXG4gICAgfVxuXG4gICAgaWYgKHBhcmFtSXRlbXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcGFyYW1FbnVtID0gcGFyYW1JdGVtcy5nZXQoXCJlbnVtXCIpXG4gICAgICBwYXJhbURlZmF1bHRWYWx1ZSA9IHBhcmFtSXRlbXMuZ2V0KFwiZGVmYXVsdFwiKVxuICAgIH0gZWxzZSBpZiAoc2NoZW1hKSB7XG4gICAgICBwYXJhbUVudW0gPSBzY2hlbWEuZ2V0KFwiZW51bVwiKVxuICAgIH1cblxuICAgIGlmICggcGFyYW1FbnVtICYmIHBhcmFtRW51bS5zaXplICYmIHBhcmFtRW51bS5zaXplID4gMCkge1xuICAgICAgaXNEaXNwbGF5UGFyYW1FbnVtID0gdHJ1ZVxuICAgIH1cblxuICAgIC8vIERlZmF1bHQgYW5kIEV4YW1wbGUgVmFsdWUgZm9yIHJlYWRvbmx5IGRvY1xuICAgIGlmICggcGFyYW0gIT09IHVuZGVmaW5lZCApIHtcbiAgICAgIGlmIChzY2hlbWEpIHtcbiAgICAgICAgcGFyYW1EZWZhdWx0VmFsdWUgPSBzY2hlbWEuZ2V0KFwiZGVmYXVsdFwiKVxuICAgICAgfVxuICAgICAgaWYgKHBhcmFtRGVmYXVsdFZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcGFyYW1EZWZhdWx0VmFsdWUgPSBwYXJhbS5nZXQoXCJkZWZhdWx0XCIpXG4gICAgICB9XG4gICAgICBwYXJhbUV4YW1wbGUgPSBwYXJhbS5nZXQoXCJleGFtcGxlXCIpXG4gICAgICBpZiAocGFyYW1FeGFtcGxlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcGFyYW1FeGFtcGxlID0gcGFyYW0uZ2V0KFwieC1leGFtcGxlXCIpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QganNvblNjaGVtYUZvcm0gPSBib2R5UGFyYW0gPyBudWxsXG4gICAgICA6IDxKc29uU2NoZW1hRm9ybSBmbj17Zm59XG4gICAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgICAgICB2YWx1ZT17IHZhbHVlIH1cbiAgICAgICAgcmVxdWlyZWQ9eyByZXF1aXJlZCB9XG4gICAgICAgIGRpc2FibGVkPXshaXNFeGVjdXRlfVxuICAgICAgICBkZXNjcmlwdGlvbj17cGFyYW0uZ2V0KFwibmFtZVwiKX1cbiAgICAgICAgb25DaGFuZ2U9eyB0aGlzLm9uQ2hhbmdlV3JhcHBlciB9XG4gICAgICAgIGVycm9ycz17IHBhcmFtV2l0aE1ldGEuZ2V0KFwiZXJyb3JzXCIpIH1cbiAgICAgICAgc2NoZW1hPXsgc2NoZW1hIH1cbiAgICAgIC8+XG5cbiAgICByZXR1cm4gKFxuICAgICAgPHRyIGRhdGEtcGFyYW0tbmFtZT17cGFyYW0uZ2V0KFwibmFtZVwiKX0gZGF0YS1wYXJhbS1pbj17cGFyYW0uZ2V0KFwiaW5cIil9PlxuICAgICAgICA8dGQgY2xhc3NOYW1lPVwicGFyYW1ldGVycy1jb2xfbmFtZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtyZXF1aXJlZCA/IFwicGFyYW1ldGVyX19uYW1lIHJlcXVpcmVkXCIgOiBcInBhcmFtZXRlcl9fbmFtZVwifT5cbiAgICAgICAgICAgIHsgcGFyYW0uZ2V0KFwibmFtZVwiKSB9XG4gICAgICAgICAgICB7ICFyZXF1aXJlZCA/IG51bGwgOiA8c3Bhbj4mbmJzcDsqPC9zcGFuPiB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYXJhbWV0ZXJfX3R5cGVcIj5cbiAgICAgICAgICAgIHsgc2NoZW1hT2JqZWN0VHlwZUxhYmVsIH1cbiAgICAgICAgICAgIHsgZm9ybWF0ICYmIDxzcGFuIGNsYXNzTmFtZT1cInByb3AtZm9ybWF0XCI+KCR7Zm9ybWF0fSk8L3NwYW4+fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFyYW1ldGVyX19kZXByZWNhdGVkXCI+XG4gICAgICAgICAgICB7IGlzT0FTMyAmJiBwYXJhbS5nZXQoXCJkZXByZWNhdGVkXCIpID8gXCJkZXByZWNhdGVkXCI6IG51bGwgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFyYW1ldGVyX19pblwiPih7IHBhcmFtLmdldChcImluXCIpIH0pPC9kaXY+XG4gICAgICAgIDwvdGQ+XG5cbiAgICAgICAgPHRkIGNsYXNzTmFtZT1cInBhcmFtZXRlcnMtY29sX2Rlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgeyBwYXJhbS5nZXQoXCJkZXNjcmlwdGlvblwiKSA/IDxNYXJrZG93biBzb3VyY2U9eyBwYXJhbS5nZXQoXCJkZXNjcmlwdGlvblwiKSB9Lz4gOiBudWxsIH1cblxuICAgICAgICAgIHsgKGJvZHlQYXJhbSB8fCAhaXNFeGVjdXRlKSAmJiBpc0Rpc3BsYXlQYXJhbUVudW0gP1xuICAgICAgICAgICAgPE1hcmtkb3duIGNsYXNzTmFtZT1cInBhcmFtZXRlcl9fZW51bVwiIHNvdXJjZT17XG4gICAgICAgICAgICAgICAgXCI8aT5BdmFpbGFibGUgdmFsdWVzPC9pPiA6IFwiICsgcGFyYW1FbnVtLm1hcChmdW5jdGlvbihpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtXG4gICAgICAgICAgICAgICAgICB9KS50b0FycmF5KCkubWFwKFN0cmluZykuam9pbihcIiwgXCIpfS8+XG4gICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB7IChib2R5UGFyYW0gfHwgIWlzRXhlY3V0ZSkgJiYgcGFyYW1EZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCA/XG4gICAgICAgICAgICA8TWFya2Rvd24gY2xhc3NOYW1lPVwicGFyYW1ldGVyX19kZWZhdWx0XCIgc291cmNlPXtcIjxpPkRlZmF1bHQgdmFsdWU8L2k+IDogXCIgKyBwYXJhbURlZmF1bHRWYWx1ZX0vPlxuICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgeyAoYm9keVBhcmFtIHx8ICFpc0V4ZWN1dGUpICYmIHBhcmFtRXhhbXBsZSAhPT0gdW5kZWZpbmVkID9cbiAgICAgICAgICAgIDxNYXJrZG93biBzb3VyY2U9e1wiPGk+RXhhbXBsZTwvaT4gOiBcIiArIHBhcmFtRXhhbXBsZX0vPlxuICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgeyhpc0Zvcm1EYXRhICYmICFpc0Zvcm1EYXRhU3VwcG9ydGVkKSAmJiA8ZGl2PkVycm9yOiB5b3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBGb3JtRGF0YTwvZGl2Pn1cblxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlzT0FTMyAmJiBwYXJhbS5nZXQoXCJleGFtcGxlc1wiKSA/IChcbiAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicGFyYW1ldGVyLWNvbnRyb2xzXCI+XG4gICAgICAgICAgICAgICAgPEV4YW1wbGVzU2VsZWN0VmFsdWVSZXRhaW5lclxuICAgICAgICAgICAgICAgICAgZXhhbXBsZXM9e3BhcmFtLmdldChcImV4YW1wbGVzXCIpfVxuICAgICAgICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMuX29uRXhhbXBsZVNlbGVjdH1cbiAgICAgICAgICAgICAgICAgIHVwZGF0ZVZhbHVlPXt0aGlzLm9uQ2hhbmdlV3JhcHBlcn1cbiAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgZGVmYXVsdFRvRmlyc3RFeGFtcGxlPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgY3VycmVudEtleT17b2FzM1NlbGVjdG9ycy5hY3RpdmVFeGFtcGxlc01lbWJlciguLi5wYXRoTWV0aG9kLCBcInBhcmFtZXRlcnNcIiwgdGhpcy5nZXRQYXJhbUtleSgpKX1cbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRVc2VySW5wdXRWYWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgICAgKSA6IG51bGxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB7IChpc09iamVjdCB8fCBpc0FycmF5T2ZPYmplY3RzKSA/IChcbiAgICAgICAgICAgIDxNb2RlbEV4YW1wbGVcbiAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9XG4gICAgICAgICAgICAgIHNwZWNQYXRoPXtzcGVjUGF0aC5wdXNoKFwic2NoZW1hXCIpfVxuICAgICAgICAgICAgICBnZXRDb25maWdzPXtnZXRDb25maWdzfVxuICAgICAgICAgICAgICBpc0V4ZWN1dGU9e2lzRXhlY3V0ZX1cbiAgICAgICAgICAgICAgc3BlY1NlbGVjdG9ycz17c3BlY1NlbGVjdG9yc31cbiAgICAgICAgICAgICAgc2NoZW1hPXtzY2hlbWF9XG4gICAgICAgICAgICAgIGV4YW1wbGU9e2pzb25TY2hlbWFGb3JtfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBqc29uU2NoZW1hRm9ybVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJvZHlQYXJhbSAmJiBzY2hlbWEgPyA8TW9kZWxFeGFtcGxlIGdldENvbXBvbmVudD17IGdldENvbXBvbmVudCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjUGF0aD17c3BlY1BhdGgucHVzaChcInNjaGVtYVwiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbmZpZ3M9eyBnZXRDb25maWdzIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRXhlY3V0ZT17IGlzRXhlY3V0ZSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjU2VsZWN0b3JzPXsgc3BlY1NlbGVjdG9ycyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWE9eyBzY2hlbWEgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhhbXBsZT17IGJvZHlQYXJhbSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlV3JpdGVPbmx5PXsgdHJ1ZSB9Lz5cbiAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgfVxuXG4gICAgICAgICAge1xuICAgICAgICAgICAgIWJvZHlQYXJhbSAmJiBpc0V4ZWN1dGUgJiYgcGFyYW0uZ2V0KFwiYWxsb3dFbXB0eVZhbHVlXCIpID9cbiAgICAgICAgICAgIDxQYXJhbWV0ZXJJbmNsdWRlRW1wdHlcbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2VJbmNsdWRlRW1wdHl9XG4gICAgICAgICAgICAgIGlzSW5jbHVkZWQ9e3NwZWNTZWxlY3RvcnMucGFyYW1ldGVySW5jbHVzaW9uU2V0dGluZ0ZvcihwYXRoTWV0aG9kLCBwYXJhbS5nZXQoXCJuYW1lXCIpLCBwYXJhbS5nZXQoXCJpblwiKSl9XG4gICAgICAgICAgICAgIGlzRGlzYWJsZWQ9eyFpc0VtcHR5VmFsdWUodmFsdWUpfSAvPlxuICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgfVxuXG4gICAgICAgICAge1xuICAgICAgICAgICAgaXNPQVMzICYmIHBhcmFtLmdldChcImV4YW1wbGVzXCIpID8gKFxuICAgICAgICAgICAgICA8RXhhbXBsZVxuICAgICAgICAgICAgICAgIGV4YW1wbGU9e3BhcmFtLmdldEluKFtcbiAgICAgICAgICAgICAgICAgIFwiZXhhbXBsZXNcIixcbiAgICAgICAgICAgICAgICAgIG9hczNTZWxlY3RvcnMuYWN0aXZlRXhhbXBsZXNNZW1iZXIoLi4ucGF0aE1ldGhvZCwgXCJwYXJhbWV0ZXJzXCIsIHRoaXMuZ2V0UGFyYW1LZXkoKSlcbiAgICAgICAgICAgICAgICBdKX1cbiAgICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH1cbiAgICAgICAgICAgICAgICBnZXRDb25maWdzPXtnZXRDb25maWdzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB7ICFzaG93Q29tbW9uRXh0ZW5zaW9ucyB8fCAhY29tbW9uRXh0LnNpemUgPyBudWxsIDogY29tbW9uRXh0LmVudHJ5U2VxKCkubWFwKChba2V5LCB2XSkgPT4gPFBhcmFtZXRlckV4dCBrZXk9e2Ake2tleX0tJHt2fWB9IHhLZXk9e2tleX0geFZhbD17dn0gLz4gKX1cbiAgICAgICAgICB7ICFzaG93RXh0ZW5zaW9ucyB8fCAhZXh0ZW5zaW9ucy5zaXplID8gbnVsbCA6IGV4dGVuc2lvbnMuZW50cnlTZXEoKS5tYXAoKFtrZXksIHZdKSA9PiA8UGFyYW1ldGVyRXh0IGtleT17YCR7a2V5fS0ke3Z9YH0geEtleT17a2V5fSB4VmFsPXt2fSAvPiApfVxuXG4gICAgICAgIDwvdGQ+XG5cbiAgICAgIDwvdHI+XG4gICAgKVxuXG4gIH1cblxufVxuIiwiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRXhlY3V0ZSBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgc3BlY0FjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBvcGVyYXRpb246IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBwYXRoOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgbWV0aG9kOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgb2FzM1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG9hczNBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgb25FeGVjdXRlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2xcbiAgfVxuXG4gIGhhbmRsZVZhbGlkYXRlUGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICBsZXQgeyBzcGVjU2VsZWN0b3JzLCBzcGVjQWN0aW9ucywgcGF0aCwgbWV0aG9kIH0gPSB0aGlzLnByb3BzXG4gICAgc3BlY0FjdGlvbnMudmFsaWRhdGVQYXJhbXMoW3BhdGgsIG1ldGhvZF0pXG4gICAgcmV0dXJuIHNwZWNTZWxlY3RvcnMudmFsaWRhdGVCZWZvcmVFeGVjdXRlKFtwYXRoLCBtZXRob2RdKVxuICB9XG5cbiAgaGFuZGxlVmFsaWRhdGVSZXF1ZXN0Qm9keSA9ICgpID0+IHtcbiAgICBsZXQgeyBwYXRoLCBtZXRob2QsIHNwZWNTZWxlY3RvcnMsIG9hczNTZWxlY3RvcnMsIG9hczNBY3Rpb25zIH0gPSB0aGlzLnByb3BzXG4gICAgbGV0IHZhbGlkYXRpb25FcnJvcnMgPSB7XG4gICAgICBtaXNzaW5nQm9keVZhbHVlOiBmYWxzZSxcbiAgICAgIG1pc3NpbmdSZXF1aXJlZEtleXM6IFtdXG4gICAgfVxuICAgIC8vIGNvbnRleHQ6IHJlc2V0IGVycm9ycywgdGhlbiAocmUpdmFsaWRhdGVcbiAgICBvYXMzQWN0aW9ucy5jbGVhclJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvcih7IHBhdGgsIG1ldGhvZCB9KVxuICAgIGxldCBvYXMzUmVxdWlyZWRSZXF1ZXN0Qm9keUNvbnRlbnRUeXBlID0gc3BlY1NlbGVjdG9ycy5nZXRPQVMzUmVxdWlyZWRSZXF1ZXN0Qm9keUNvbnRlbnRUeXBlKFtwYXRoLCBtZXRob2RdKVxuICAgIGxldCBvYXMzUmVxdWVzdEJvZHlWYWx1ZSA9IG9hczNTZWxlY3RvcnMucmVxdWVzdEJvZHlWYWx1ZShwYXRoLCBtZXRob2QpXG4gICAgbGV0IG9hczNWYWxpZGF0ZUJlZm9yZUV4ZWN1dGVTdWNjZXNzID0gb2FzM1NlbGVjdG9ycy52YWxpZGF0ZUJlZm9yZUV4ZWN1dGUoW3BhdGgsIG1ldGhvZF0pXG4gICAgbGV0IG9hczNSZXF1ZXN0Q29udGVudFR5cGUgPSBvYXMzU2VsZWN0b3JzLnJlcXVlc3RDb250ZW50VHlwZShwYXRoLCBtZXRob2QpXG5cbiAgICBpZiAoIW9hczNWYWxpZGF0ZUJlZm9yZUV4ZWN1dGVTdWNjZXNzKSB7XG4gICAgICB2YWxpZGF0aW9uRXJyb3JzLm1pc3NpbmdCb2R5VmFsdWUgPSB0cnVlXG4gICAgICBvYXMzQWN0aW9ucy5zZXRSZXF1ZXN0Qm9keVZhbGlkYXRlRXJyb3IoeyBwYXRoLCBtZXRob2QsIHZhbGlkYXRpb25FcnJvcnMgfSlcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICBpZiAoIW9hczNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIGxldCBtaXNzaW5nUmVxdWlyZWRLZXlzID0gb2FzM1NlbGVjdG9ycy52YWxpZGF0ZVNoYWxsb3dSZXF1aXJlZCh7XG4gICAgICBvYXMzUmVxdWlyZWRSZXF1ZXN0Qm9keUNvbnRlbnRUeXBlLFxuICAgICAgb2FzM1JlcXVlc3RDb250ZW50VHlwZSxcbiAgICAgIG9hczNSZXF1ZXN0Qm9keVZhbHVlXG4gICAgfSlcbiAgICBpZiAoIW1pc3NpbmdSZXF1aXJlZEtleXMgfHwgbWlzc2luZ1JlcXVpcmVkS2V5cy5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICBtaXNzaW5nUmVxdWlyZWRLZXlzLmZvckVhY2goKG1pc3NpbmdLZXkpID0+IHtcbiAgICAgIHZhbGlkYXRpb25FcnJvcnMubWlzc2luZ1JlcXVpcmVkS2V5cy5wdXNoKG1pc3NpbmdLZXkpXG4gICAgfSlcbiAgICBvYXMzQWN0aW9ucy5zZXRSZXF1ZXN0Qm9keVZhbGlkYXRlRXJyb3IoeyBwYXRoLCBtZXRob2QsIHZhbGlkYXRpb25FcnJvcnMgfSlcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGhhbmRsZVZhbGlkYXRpb25SZXN1bHRQYXNzID0gKCkgPT4ge1xuICAgIGxldCB7IHNwZWNBY3Rpb25zLCBvcGVyYXRpb24sIHBhdGgsIG1ldGhvZCB9ID0gdGhpcy5wcm9wc1xuICAgIGlmICh0aGlzLnByb3BzLm9uRXhlY3V0ZSkge1xuICAgICAgLy8gbG9hZGluZyBzcGlubmVyXG4gICAgICB0aGlzLnByb3BzLm9uRXhlY3V0ZSgpXG4gICAgfVxuICAgIHNwZWNBY3Rpb25zLmV4ZWN1dGUoeyBvcGVyYXRpb24sIHBhdGgsIG1ldGhvZCB9KVxuICB9XG5cbiAgaGFuZGxlVmFsaWRhdGlvblJlc3VsdEZhaWwgPSAoKSA9PiB7XG4gICAgbGV0IHsgc3BlY0FjdGlvbnMsIHBhdGgsIG1ldGhvZCB9ID0gdGhpcy5wcm9wc1xuICAgIC8vIGRlZmVycmVkIGJ5IDQwbXMsIHRvIGdpdmUgZWxlbWVudCBjbGFzcyBjaGFuZ2UgdGltZSB0byBzZXR0bGUuXG4gICAgc3BlY0FjdGlvbnMuY2xlYXJWYWxpZGF0ZVBhcmFtcyhbcGF0aCwgbWV0aG9kXSlcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHNwZWNBY3Rpb25zLnZhbGlkYXRlUGFyYW1zKFtwYXRoLCBtZXRob2RdKVxuICAgIH0sIDQwKVxuICB9XG5cbiAgaGFuZGxlVmFsaWRhdGlvblJlc3VsdCA9IChpc1Bhc3MpID0+IHtcbiAgICBpZiAoaXNQYXNzKSB7XG4gICAgICB0aGlzLmhhbmRsZVZhbGlkYXRpb25SZXN1bHRQYXNzKClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYW5kbGVWYWxpZGF0aW9uUmVzdWx0RmFpbCgpXG4gICAgfVxuICB9XG5cbiAgb25DbGljayA9ICgpID0+IHtcbiAgICBsZXQgcGFyYW1zUmVzdWx0ID0gdGhpcy5oYW5kbGVWYWxpZGF0ZVBhcmFtZXRlcnMoKVxuICAgIGxldCByZXF1ZXN0Qm9keVJlc3VsdCA9IHRoaXMuaGFuZGxlVmFsaWRhdGVSZXF1ZXN0Qm9keSgpXG4gICAgbGV0IGlzUGFzcyA9IHBhcmFtc1Jlc3VsdCAmJiByZXF1ZXN0Qm9keVJlc3VsdFxuICAgIHRoaXMuaGFuZGxlVmFsaWRhdGlvblJlc3VsdChpc1Bhc3MpXG4gIH1cblxuICBvbkNoYW5nZVByb2R1Y2VzV3JhcHBlciA9ICggdmFsICkgPT4gdGhpcy5wcm9wcy5zcGVjQWN0aW9ucy5jaGFuZ2VQcm9kdWNlc1ZhbHVlKFt0aGlzLnByb3BzLnBhdGgsIHRoaXMucHJvcHMubWV0aG9kXSwgdmFsKVxuXG4gIHJlbmRlcigpe1xuICAgIGNvbnN0IHsgZGlzYWJsZWQgfSA9IHRoaXMucHJvcHNcbiAgICByZXR1cm4gKFxuICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0biBleGVjdXRlIG9wYmxvY2stY29udHJvbF9fYnRuXCIgb25DbGljaz17IHRoaXMub25DbGljayB9IGRpc2FibGVkPXtkaXNhYmxlZH0+XG4gICAgICAgICAgRXhlY3V0ZVxuICAgICAgICA8L2J1dHRvbj5cbiAgICApXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgSW0gZnJvbSBcImltbXV0YWJsZVwiXG5cbmNvbnN0IHByb3BDbGFzcyA9IFwiaGVhZGVyLWV4YW1wbGVcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIZWFkZXJzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBoZWFkZXJzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHsgaGVhZGVycywgZ2V0Q29tcG9uZW50IH0gPSB0aGlzLnByb3BzXG5cbiAgICBjb25zdCBQcm9wZXJ0eSA9IGdldENvbXBvbmVudChcIlByb3BlcnR5XCIpXG4gICAgY29uc3QgTWFya2Rvd24gPSBnZXRDb21wb25lbnQoXCJNYXJrZG93blwiLCB0cnVlKVxuXG4gICAgaWYgKCAhaGVhZGVycyB8fCAhaGVhZGVycy5zaXplIClcbiAgICAgIHJldHVybiBudWxsXG5cbiAgICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlYWRlcnMtd3JhcHBlclwiPlxuICAgICAgICA8aDQgY2xhc3NOYW1lPVwiaGVhZGVyc19fdGl0bGVcIj5IZWFkZXJzOjwvaDQ+XG4gICAgICAgIDx0YWJsZSBjbGFzc05hbWU9XCJoZWFkZXJzXCI+XG4gICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgPHRyIGNsYXNzTmFtZT1cImhlYWRlci1yb3dcIj5cbiAgICAgICAgICAgICAgPHRoIGNsYXNzTmFtZT1cImhlYWRlci1jb2xcIj5OYW1lPC90aD5cbiAgICAgICAgICAgICAgPHRoIGNsYXNzTmFtZT1cImhlYWRlci1jb2xcIj5EZXNjcmlwdGlvbjwvdGg+XG4gICAgICAgICAgICAgIDx0aCBjbGFzc05hbWU9XCJoZWFkZXItY29sXCI+VHlwZTwvdGg+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgPHRib2R5PlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGhlYWRlcnMuZW50cnlTZXEoKS5tYXAoIChbIGtleSwgaGVhZGVyIF0pID0+IHtcbiAgICAgICAgICAgICAgaWYoIUltLk1hcC5pc01hcChoZWFkZXIpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gaGVhZGVyLmdldChcImRlc2NyaXB0aW9uXCIpXG4gICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBoZWFkZXIuZ2V0SW4oW1wic2NoZW1hXCJdKSA/IGhlYWRlci5nZXRJbihbXCJzY2hlbWFcIiwgXCJ0eXBlXCJdKSA6IGhlYWRlci5nZXRJbihbXCJ0eXBlXCJdKVxuICAgICAgICAgICAgICBjb25zdCBzY2hlbWFFeGFtcGxlID0gaGVhZGVyLmdldEluKFtcInNjaGVtYVwiLCBcImV4YW1wbGVcIl0pXG5cbiAgICAgICAgICAgICAgcmV0dXJuICg8dHIga2V5PXsga2V5IH0+XG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT1cImhlYWRlci1jb2xcIj57IGtleSB9PC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwiaGVhZGVyLWNvbFwiPntcbiAgICAgICAgICAgICAgICAgICFkZXNjcmlwdGlvbiA/IG51bGwgOiA8TWFya2Rvd24gc291cmNlPXsgZGVzY3JpcHRpb24gfSAvPlxuICAgICAgICAgICAgICAgIH08L3RkPlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJoZWFkZXItY29sXCI+eyB0eXBlIH0geyBzY2hlbWFFeGFtcGxlID8gPFByb3BlcnR5IHByb3BLZXk9eyBcIkV4YW1wbGVcIiB9IHByb3BWYWw9eyBzY2hlbWFFeGFtcGxlIH0gcHJvcENsYXNzPXsgcHJvcENsYXNzIH0gLz4gOiBudWxsIH08L3RkPlxuICAgICAgICAgICAgICA8L3RyPilcbiAgICAgICAgICAgIH0pLnRvQXJyYXkoKVxuICAgICAgICAgIH1cbiAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHsgTGlzdCB9IGZyb20gXCJpbW11dGFibGVcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFcnJvcnMgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgZWRpdG9yQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBlcnJTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBsYXlvdXRTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBsYXlvdXRBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IGVkaXRvckFjdGlvbnMsIGVyclNlbGVjdG9ycywgbGF5b3V0U2VsZWN0b3JzLCBsYXlvdXRBY3Rpb25zLCBnZXRDb21wb25lbnQgfSA9IHRoaXMucHJvcHNcblxuICAgIGNvbnN0IENvbGxhcHNlID0gZ2V0Q29tcG9uZW50KFwiQ29sbGFwc2VcIilcblxuICAgIGlmKGVkaXRvckFjdGlvbnMgJiYgZWRpdG9yQWN0aW9ucy5qdW1wVG9MaW5lKSB7XG4gICAgICB2YXIganVtcFRvTGluZSA9IGVkaXRvckFjdGlvbnMuanVtcFRvTGluZVxuICAgIH1cblxuICAgIGxldCBlcnJvcnMgPSBlcnJTZWxlY3RvcnMuYWxsRXJyb3JzKClcblxuICAgIC8vIGFsbCB0aHJvd24gZXJyb3JzLCBwbHVzIGVycm9yLWxldmVsIGV2ZXJ5dGhpbmcgZWxzZVxuICAgIGxldCBhbGxFcnJvcnNUb0Rpc3BsYXkgPSBlcnJvcnMuZmlsdGVyKGVyciA9PiBlcnIuZ2V0KFwidHlwZVwiKSA9PT0gXCJ0aHJvd25cIiA/IHRydWUgOmVyci5nZXQoXCJsZXZlbFwiKSA9PT0gXCJlcnJvclwiKVxuXG4gICAgaWYoIWFsbEVycm9yc1RvRGlzcGxheSB8fCBhbGxFcnJvcnNUb0Rpc3BsYXkuY291bnQoKSA8IDEpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgbGV0IGlzVmlzaWJsZSA9IGxheW91dFNlbGVjdG9ycy5pc1Nob3duKFtcImVycm9yUGFuZVwiXSwgdHJ1ZSlcbiAgICBsZXQgdG9nZ2xlVmlzaWJpbGl0eSA9ICgpID0+IGxheW91dEFjdGlvbnMuc2hvdyhbXCJlcnJvclBhbmVcIl0sICFpc1Zpc2libGUpXG5cbiAgICBsZXQgc29ydGVkSlNFcnJvcnMgPSBhbGxFcnJvcnNUb0Rpc3BsYXkuc29ydEJ5KGVyciA9PiBlcnIuZ2V0KFwibGluZVwiKSlcblxuICAgIHJldHVybiAoXG4gICAgICA8cHJlIGNsYXNzTmFtZT1cImVycm9ycy13cmFwcGVyXCI+XG4gICAgICAgIDxoZ3JvdXAgY2xhc3NOYW1lPVwiZXJyb3JcIj5cbiAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiZXJyb3JzX190aXRsZVwiPkVycm9yczwvaDQ+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG4gZXJyb3JzX19jbGVhci1idG5cIiBvbkNsaWNrPXsgdG9nZ2xlVmlzaWJpbGl0eSB9PnsgaXNWaXNpYmxlID8gXCJIaWRlXCIgOiBcIlNob3dcIiB9PC9idXR0b24+XG4gICAgICAgIDwvaGdyb3VwPlxuICAgICAgICA8Q29sbGFwc2UgaXNPcGVuZWQ9eyBpc1Zpc2libGUgfSBhbmltYXRlZCA+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJlcnJvcnNcIj5cbiAgICAgICAgICAgIHsgc29ydGVkSlNFcnJvcnMubWFwKChlcnIsIGkpID0+IHtcbiAgICAgICAgICAgICAgbGV0IHR5cGUgPSBlcnIuZ2V0KFwidHlwZVwiKVxuICAgICAgICAgICAgICBpZih0eXBlID09PSBcInRocm93blwiIHx8IHR5cGUgPT09IFwiYXV0aFwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxUaHJvd25FcnJvckl0ZW0ga2V5PXsgaSB9IGVycm9yPXsgZXJyLmdldChcImVycm9yXCIpIHx8IGVyciB9IGp1bXBUb0xpbmU9e2p1bXBUb0xpbmV9IC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYodHlwZSA9PT0gXCJzcGVjXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gPFNwZWNFcnJvckl0ZW0ga2V5PXsgaSB9IGVycm9yPXsgZXJyIH0ganVtcFRvTGluZT17anVtcFRvTGluZX0gLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L0NvbGxhcHNlPlxuICAgICAgPC9wcmU+XG4gICAgICApXG4gICAgfVxufVxuXG5jb25zdCBUaHJvd25FcnJvckl0ZW0gPSAoIHsgZXJyb3IsIGp1bXBUb0xpbmUgfSApID0+IHtcbiAgaWYoIWVycm9yKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBsZXQgZXJyb3JMaW5lID0gZXJyb3IuZ2V0KFwibGluZVwiKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJlcnJvci13cmFwcGVyXCI+XG4gICAgICB7ICFlcnJvciA/IG51bGwgOlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxoND57IChlcnJvci5nZXQoXCJzb3VyY2VcIikgJiYgZXJyb3IuZ2V0KFwibGV2ZWxcIikpID9cbiAgICAgICAgICAgIHRvVGl0bGVDYXNlKGVycm9yLmdldChcInNvdXJjZVwiKSkgKyBcIiBcIiArIGVycm9yLmdldChcImxldmVsXCIpIDogXCJcIiB9XG4gICAgICAgICAgeyBlcnJvci5nZXQoXCJwYXRoXCIpID8gPHNtYWxsPiBhdCB7ZXJyb3IuZ2V0KFwicGF0aFwiKX08L3NtYWxsPjogbnVsbCB9PC9oND5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtZXNzYWdlIHRocm93blwiPlxuICAgICAgICAgICAgeyBlcnJvci5nZXQoXCJtZXNzYWdlXCIpIH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJlcnJvci1saW5lXCI+XG4gICAgICAgICAgICB7IGVycm9yTGluZSAmJiBqdW1wVG9MaW5lID8gPGEgb25DbGljaz17anVtcFRvTGluZS5iaW5kKG51bGwsIGVycm9yTGluZSl9Pkp1bXAgdG8gbGluZSB7IGVycm9yTGluZSB9PC9hPiA6IG51bGwgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICApXG4gIH1cblxuY29uc3QgU3BlY0Vycm9ySXRlbSA9ICggeyBlcnJvciwganVtcFRvTGluZSA9IG51bGwgfSApID0+IHtcbiAgbGV0IGxvY2F0aW9uTWVzc2FnZSA9IG51bGxcblxuICBpZihlcnJvci5nZXQoXCJwYXRoXCIpKSB7XG4gICAgaWYoTGlzdC5pc0xpc3QoZXJyb3IuZ2V0KFwicGF0aFwiKSkpIHtcbiAgICAgIGxvY2F0aW9uTWVzc2FnZSA9IDxzbWFsbD5hdCB7IGVycm9yLmdldChcInBhdGhcIikuam9pbihcIi5cIikgfTwvc21hbGw+XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvY2F0aW9uTWVzc2FnZSA9IDxzbWFsbD5hdCB7IGVycm9yLmdldChcInBhdGhcIikgfTwvc21hbGw+XG4gICAgfVxuICB9IGVsc2UgaWYoZXJyb3IuZ2V0KFwibGluZVwiKSAmJiAhanVtcFRvTGluZSkge1xuICAgIGxvY2F0aW9uTWVzc2FnZSA9IDxzbWFsbD5vbiBsaW5lIHsgZXJyb3IuZ2V0KFwibGluZVwiKSB9PC9zbWFsbD5cbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJlcnJvci13cmFwcGVyXCI+XG4gICAgICB7ICFlcnJvciA/IG51bGwgOlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxoND57IHRvVGl0bGVDYXNlKGVycm9yLmdldChcInNvdXJjZVwiKSkgKyBcIiBcIiArIGVycm9yLmdldChcImxldmVsXCIpIH0mbmJzcDt7IGxvY2F0aW9uTWVzc2FnZSB9PC9oND5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtZXNzYWdlXCI+eyBlcnJvci5nZXQoXCJtZXNzYWdlXCIpIH08L3NwYW4+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJlcnJvci1saW5lXCI+XG4gICAgICAgICAgICB7IGp1bXBUb0xpbmUgPyAoXG4gICAgICAgICAgICAgIDxhIG9uQ2xpY2s9e2p1bXBUb0xpbmUuYmluZChudWxsLCBlcnJvci5nZXQoXCJsaW5lXCIpKX0+SnVtcCB0byBsaW5lIHsgZXJyb3IuZ2V0KFwibGluZVwiKSB9PC9hPlxuICAgICAgICAgICAgKSA6IG51bGwgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICApXG4gIH1cblxuZnVuY3Rpb24gdG9UaXRsZUNhc2Uoc3RyKSB7XG4gIHJldHVybiAoc3RyIHx8IFwiXCIpXG4gICAgLnNwbGl0KFwiIFwiKVxuICAgIC5tYXAoc3Vic3RyID0+IHN1YnN0clswXS50b1VwcGVyQ2FzZSgpICsgc3Vic3RyLnNsaWNlKDEpKVxuICAgIC5qb2luKFwiIFwiKVxufVxuXG5UaHJvd25FcnJvckl0ZW0ucHJvcFR5cGVzID0ge1xuICBlcnJvcjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBqdW1wVG9MaW5lOiBQcm9wVHlwZXMuZnVuY1xufVxuXG5TcGVjRXJyb3JJdGVtLnByb3BUeXBlcyA9IHtcbiAgZXJyb3I6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAganVtcFRvTGluZTogUHJvcFR5cGVzLmZ1bmNcbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuaW1wb3J0IHsgZnJvbUpTIH0gZnJvbSBcImltbXV0YWJsZVwiXG5cbmNvbnN0IG5vb3AgPSAoKT0+e31cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGVudFR5cGUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgYXJpYUNvbnRyb2xzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbnRlbnRUeXBlczogUHJvcFR5cGVzLm9uZU9mVHlwZShbSW1Qcm9wVHlwZXMubGlzdCwgSW1Qcm9wVHlwZXMuc2V0LCBJbVByb3BUeXBlcy5zZXFdKSxcbiAgICBjb250cm9sSWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgdmFsdWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBhcmlhTGFiZWw6IFByb3BUeXBlcy5zdHJpbmdcbiAgfVxuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgb25DaGFuZ2U6IG5vb3AsXG4gICAgdmFsdWU6IG51bGwsXG4gICAgY29udGVudFR5cGVzOiBmcm9tSlMoW1wiYXBwbGljYXRpb24vanNvblwiXSksXG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAvLyBOZWVkZWQgdG8gcG9wdWxhdGUgdGhlIGZvcm0sIGluaXRpYWxseVxuICAgIGlmKHRoaXMucHJvcHMuY29udGVudFR5cGVzKSB7XG4gICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKHRoaXMucHJvcHMuY29udGVudFR5cGVzLmZpcnN0KCkpXG4gICAgfVxuICB9XG5cbiAgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgaWYoIW5leHRQcm9wcy5jb250ZW50VHlwZXMgfHwgIW5leHRQcm9wcy5jb250ZW50VHlwZXMuc2l6ZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYoIW5leHRQcm9wcy5jb250ZW50VHlwZXMuaW5jbHVkZXMobmV4dFByb3BzLnZhbHVlKSkge1xuICAgICAgbmV4dFByb3BzLm9uQ2hhbmdlKG5leHRQcm9wcy5jb250ZW50VHlwZXMuZmlyc3QoKSlcbiAgICB9XG4gIH1cblxuICBvbkNoYW5nZVdyYXBwZXIgPSBlID0+IHRoaXMucHJvcHMub25DaGFuZ2UoZS50YXJnZXQudmFsdWUpXG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IGFyaWFDb250cm9scywgYXJpYUxhYmVsLCBjbGFzc05hbWUsIGNvbnRlbnRUeXBlcywgY29udHJvbElkLCB2YWx1ZSB9ID0gdGhpcy5wcm9wc1xuXG4gICAgaWYgKCAhY29udGVudFR5cGVzIHx8ICFjb250ZW50VHlwZXMuc2l6ZSApXG4gICAgICByZXR1cm4gbnVsbFxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXsgXCJjb250ZW50LXR5cGUtd3JhcHBlciBcIiArICggY2xhc3NOYW1lIHx8IFwiXCIgKSB9PlxuICAgICAgICA8c2VsZWN0IGFyaWEtY29udHJvbHM9e2FyaWFDb250cm9sc30gYXJpYS1sYWJlbD17YXJpYUxhYmVsfSBjbGFzc05hbWU9XCJjb250ZW50LXR5cGVcIiBpZD17Y29udHJvbElkfSBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZVdyYXBwZXJ9IHZhbHVlPXt2YWx1ZSB8fCBcIlwifSA+XG4gICAgICAgICAgeyBjb250ZW50VHlwZXMubWFwKCAodmFsKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gPG9wdGlvbiBrZXk9eyB2YWwgfSB2YWx1ZT17IHZhbCB9PnsgdmFsIH08L29wdGlvbj5cbiAgICAgICAgICB9KS50b0FycmF5KCl9XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5mdW5jdGlvbiB4Y2xhc3MoLi4uYXJncykge1xuICByZXR1cm4gYXJncy5maWx0ZXIoYSA9PiAhIWEpLmpvaW4oXCIgXCIpLnRyaW0oKVxufVxuXG5leHBvcnQgY2xhc3MgQ29udGFpbmVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IGZ1bGxzY3JlZW4sIGZ1bGwsIC4uLnJlc3QgfSA9IHRoaXMucHJvcHNcbiAgICAvLyBOb3JtYWwgZWxlbWVudFxuXG4gICAgaWYoZnVsbHNjcmVlbilcbiAgICAgIHJldHVybiA8c2VjdGlvbiB7Li4ucmVzdH0vPlxuXG4gICAgbGV0IGNvbnRhaW5lckNsYXNzID0gXCJzd2FnZ2VyLWNvbnRhaW5lclwiICsgKGZ1bGwgPyBcIi1mdWxsXCIgOiBcIlwiKVxuICAgIHJldHVybiAoXG4gICAgICA8c2VjdGlvbiB7Li4ucmVzdH0gY2xhc3NOYW1lPXt4Y2xhc3MocmVzdC5jbGFzc05hbWUsIGNvbnRhaW5lckNsYXNzKX0vPlxuICAgIClcbiAgfVxufVxuXG5Db250YWluZXIucHJvcFR5cGVzID0ge1xuICBmdWxsc2NyZWVuOiBQcm9wVHlwZXMuYm9vbCxcbiAgZnVsbDogUHJvcFR5cGVzLmJvb2wsXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZ1xufVxuXG5jb25zdCBERVZJQ0VTID0ge1xuICBcIm1vYmlsZVwiOiBcIlwiLFxuICBcInRhYmxldFwiOiBcIi10YWJsZXRcIixcbiAgXCJkZXNrdG9wXCI6IFwiLWRlc2t0b3BcIixcbiAgXCJsYXJnZVwiOiBcIi1oZFwiXG59XG5cbmV4cG9ydCBjbGFzcyBDb2wgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBoaWRlLFxuICAgICAga2VlcENvbnRlbnRzLFxuICAgICAgLyogd2UgZG9uJ3Qgd2FudCB0aGVzZSBpbiB0aGUgYHJlc3RgIG9iamVjdCB0aGF0IHBhc3NlcyB0byB0aGUgZmluYWwgY29tcG9uZW50LFxuICAgICAgICAgc2luY2UgUmVhY3Qgbm93IGNvbXBsYWlucy4gU28gd2UgZXh0cmFjdCB0aGVtICovXG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuICAgICAgbW9iaWxlLFxuICAgICAgdGFibGV0LFxuICAgICAgZGVza3RvcCxcbiAgICAgIGxhcmdlLFxuICAgICAgLyogZXNsaW50LWVuYWJsZSBuby11bnVzZWQtdmFycyAqL1xuICAgICAgLi4ucmVzdFxuICAgIH0gPSB0aGlzLnByb3BzXG5cbiAgICBpZihoaWRlICYmICFrZWVwQ29udGVudHMpXG4gICAgICByZXR1cm4gPHNwYW4vPlxuXG4gICAgbGV0IGNsYXNzZXNBciA9IFtdXG5cbiAgICBmb3IgKGxldCBkZXZpY2UgaW4gREVWSUNFUykge1xuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoREVWSUNFUywgZGV2aWNlKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgbGV0IGRldmljZUNsYXNzID0gREVWSUNFU1tkZXZpY2VdXG4gICAgICBpZihkZXZpY2UgaW4gdGhpcy5wcm9wcykge1xuICAgICAgICBsZXQgdmFsID0gdGhpcy5wcm9wc1tkZXZpY2VdXG5cbiAgICAgICAgaWYodmFsIDwgMSkge1xuICAgICAgICAgIGNsYXNzZXNBci5wdXNoKFwibm9uZVwiICsgZGV2aWNlQ2xhc3MpXG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuXG4gICAgICAgIGNsYXNzZXNBci5wdXNoKFwiYmxvY2tcIiArIGRldmljZUNsYXNzKVxuICAgICAgICBjbGFzc2VzQXIucHVzaChcImNvbC1cIiArIHZhbCArIGRldmljZUNsYXNzKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChoaWRlKSB7XG4gICAgICBjbGFzc2VzQXIucHVzaChcImhpZGRlblwiKVxuICAgIH1cblxuICAgIGxldCBjbGFzc2VzID0geGNsYXNzKHJlc3QuY2xhc3NOYW1lLCAuLi5jbGFzc2VzQXIpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPHNlY3Rpb24gey4uLnJlc3R9IGNsYXNzTmFtZT17Y2xhc3Nlc30vPlxuICAgIClcbiAgfVxuXG59XG5cbkNvbC5wcm9wVHlwZXMgPSB7XG4gIGhpZGU6IFByb3BUeXBlcy5ib29sLFxuICBrZWVwQ29udGVudHM6IFByb3BUeXBlcy5ib29sLFxuICBtb2JpbGU6IFByb3BUeXBlcy5udW1iZXIsXG4gIHRhYmxldDogUHJvcFR5cGVzLm51bWJlcixcbiAgZGVza3RvcDogUHJvcFR5cGVzLm51bWJlcixcbiAgbGFyZ2U6IFByb3BUeXBlcy5udW1iZXIsXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZ1xufVxuXG5leHBvcnQgY2xhc3MgUm93IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIDxkaXYgey4uLnRoaXMucHJvcHN9IGNsYXNzTmFtZT17eGNsYXNzKHRoaXMucHJvcHMuY2xhc3NOYW1lLCBcIndyYXBwZXJcIil9IC8+XG4gIH1cblxufVxuXG5Sb3cucHJvcFR5cGVzID0ge1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmdcbn1cblxuZXhwb3J0IGNsYXNzIEJ1dHRvbiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmdcbiAgfVxuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgY2xhc3NOYW1lOiBcIlwiXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIDxidXR0b24gey4uLnRoaXMucHJvcHN9IGNsYXNzTmFtZT17eGNsYXNzKHRoaXMucHJvcHMuY2xhc3NOYW1lLCBcImJ1dHRvblwiKX0gLz5cbiAgfVxuXG59XG5cblxuZXhwb3J0IGNvbnN0IFRleHRBcmVhID0gKHByb3BzKSA9PiA8dGV4dGFyZWEgey4uLnByb3BzfSAvPlxuXG5leHBvcnQgY29uc3QgSW5wdXQgPSAocHJvcHMpID0+IDxpbnB1dCB7Li4ucHJvcHN9IC8+XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3QgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGFsbG93ZWRWYWx1ZXM6IFByb3BUeXBlcy5hcnJheSxcbiAgICB2YWx1ZTogUHJvcFR5cGVzLmFueSxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgbXVsdGlwbGU6IFByb3BUeXBlcy5ib29sLFxuICAgIGFsbG93RW1wdHlWYWx1ZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgfVxuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgbXVsdGlwbGU6IGZhbHNlLFxuICAgIGFsbG93RW1wdHlWYWx1ZTogdHJ1ZVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJvcHMsIGNvbnRleHQpIHtcbiAgICBzdXBlcihwcm9wcywgY29udGV4dClcblxuICAgIGxldCB2YWx1ZVxuXG4gICAgaWYgKHByb3BzLnZhbHVlKSB7XG4gICAgICB2YWx1ZSA9IHByb3BzLnZhbHVlXG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gcHJvcHMubXVsdGlwbGUgPyBbXCJcIl0gOiBcIlwiXG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9IHsgdmFsdWU6IHZhbHVlIH1cbiAgfVxuXG4gIG9uQ2hhbmdlID0gKGUpID0+IHtcbiAgICBsZXQgeyBvbkNoYW5nZSwgbXVsdGlwbGUgfSA9IHRoaXMucHJvcHNcbiAgICBsZXQgb3B0aW9ucyA9IFtdLnNsaWNlLmNhbGwoZS50YXJnZXQub3B0aW9ucylcbiAgICBsZXQgdmFsdWVcblxuXG4gICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICB2YWx1ZSA9IG9wdGlvbnMuZmlsdGVyKGZ1bmN0aW9uIChvcHRpb24pIHtcbiAgICAgICAgICByZXR1cm4gb3B0aW9uLnNlbGVjdGVkXG4gICAgICAgIH0pXG4gICAgICAgIC5tYXAoZnVuY3Rpb24gKG9wdGlvbil7XG4gICAgICAgICAgcmV0dXJuIG9wdGlvbi52YWx1ZVxuICAgICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IGUudGFyZ2V0LnZhbHVlXG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7dmFsdWU6IHZhbHVlfSlcblxuICAgIGlmKG9uQ2hhbmdlKSB7XG4gICAgICBvbkNoYW5nZSh2YWx1ZSlcbiAgICB9XG4gIH1cblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAvLyBUT0RPOiB0aGlzIHB1dHMgdXMgaW4gYSB3ZWlyZCBhcmVhIGJ0d24gdW4vY29udHJvbGxlZCBzZWxlY3Rpb24uLi4gcmV2aWV3XG4gICAgaWYobmV4dFByb3BzLnZhbHVlICE9PSB0aGlzLnByb3BzLnZhbHVlKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgdmFsdWU6IG5leHRQcm9wcy52YWx1ZSB9KVxuICAgIH1cbiAgfVxuXG4gIHJlbmRlcigpe1xuICAgIGxldCB7IGFsbG93ZWRWYWx1ZXMsIG11bHRpcGxlLCBhbGxvd0VtcHR5VmFsdWUsIGRpc2FibGVkIH0gPSB0aGlzLnByb3BzXG4gICAgbGV0IHZhbHVlID0gdGhpcy5zdGF0ZS52YWx1ZT8udG9KUz8uKCkgfHwgdGhpcy5zdGF0ZS52YWx1ZVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxzZWxlY3QgY2xhc3NOYW1lPXt0aGlzLnByb3BzLmNsYXNzTmFtZX0gbXVsdGlwbGU9eyBtdWx0aXBsZSB9IHZhbHVlPXt2YWx1ZX0gb25DaGFuZ2U9eyB0aGlzLm9uQ2hhbmdlIH0gZGlzYWJsZWQ9e2Rpc2FibGVkfSA+XG4gICAgICAgIHsgYWxsb3dFbXB0eVZhbHVlID8gPG9wdGlvbiB2YWx1ZT1cIlwiPi0tPC9vcHRpb24+IDogbnVsbCB9XG4gICAgICAgIHtcbiAgICAgICAgICBhbGxvd2VkVmFsdWVzLm1hcChmdW5jdGlvbiAoaXRlbSwga2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gPG9wdGlvbiBrZXk9eyBrZXkgfSB2YWx1ZT17IFN0cmluZyhpdGVtKSB9PnsgU3RyaW5nKGl0ZW0pIH08L29wdGlvbj5cbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICA8L3NlbGVjdD5cbiAgICApXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpbmsgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gPGEgey4uLnRoaXMucHJvcHN9IHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiBjbGFzc05hbWU9e3hjbGFzcyh0aGlzLnByb3BzLmNsYXNzTmFtZSwgXCJsaW5rXCIpfS8+XG4gIH1cblxufVxuXG5MaW5rLnByb3BUeXBlcyA9IHtcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nXG59XG5cbmNvbnN0IE5vTWFyZ2luID0gKHtjaGlsZHJlbn0pID0+IDxkaXYgY2xhc3NOYW1lPVwibm8tbWFyZ2luXCI+IHtjaGlsZHJlbn0gPC9kaXY+XG5cbk5vTWFyZ2luLnByb3BUeXBlcyA9IHtcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlXG59XG5cbmV4cG9ydCBjbGFzcyBDb2xsYXBzZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc09wZW5lZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLmlzUmVxdWlyZWQsXG4gICAgYW5pbWF0ZWQ6IFByb3BUeXBlcy5ib29sXG4gIH1cblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGlzT3BlbmVkOiBmYWxzZSxcbiAgICBhbmltYXRlZDogZmFsc2VcbiAgfVxuXG4gIHJlbmRlck5vdEFuaW1hdGVkKCkge1xuICAgIGlmKCF0aGlzLnByb3BzLmlzT3BlbmVkKVxuICAgICAgcmV0dXJuIDxub3NjcmlwdC8+XG4gICAgcmV0dXJuIChcbiAgICAgIDxOb01hcmdpbj5cbiAgICAgICAge3RoaXMucHJvcHMuY2hpbGRyZW59XG4gICAgICA8L05vTWFyZ2luPlxuICAgIClcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyBhbmltYXRlZCwgaXNPcGVuZWQsIGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzXG5cbiAgICBpZighYW5pbWF0ZWQpXG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJOb3RBbmltYXRlZCgpXG5cbiAgICBjaGlsZHJlbiA9IGlzT3BlbmVkID8gY2hpbGRyZW4gOiBudWxsXG4gICAgcmV0dXJuIChcbiAgICAgIDxOb01hcmdpbj5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9Ob01hcmdpbj5cbiAgICApXG4gIH1cblxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwiY29yZS9jb21wb25lbnRzL2xheW91dC11dGlsc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE92ZXJ2aWV3IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvciguLi5hcmdzKSB7XG4gICAgc3VwZXIoLi4uYXJncylcbiAgICB0aGlzLnNldFRhZ1Nob3duID0gdGhpcy5fc2V0VGFnU2hvd24uYmluZCh0aGlzKVxuICB9XG5cbiAgX3NldFRhZ1Nob3duKHNob3dUYWdJZCwgc2hvd24pIHtcbiAgICB0aGlzLnByb3BzLmxheW91dEFjdGlvbnMuc2hvdyhzaG93VGFnSWQsIHNob3duKVxuICB9XG5cbiAgc2hvd09wKGtleSwgc2hvd24pIHtcbiAgICBsZXQgeyBsYXlvdXRBY3Rpb25zIH0gPSB0aGlzLnByb3BzXG4gICAgbGF5b3V0QWN0aW9ucy5zaG93KGtleSwgc2hvd24pXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHsgc3BlY1NlbGVjdG9ycywgbGF5b3V0U2VsZWN0b3JzLCBsYXlvdXRBY3Rpb25zLCBnZXRDb21wb25lbnQgfSA9IHRoaXMucHJvcHNcbiAgICBsZXQgdGFnZ2VkT3BzID0gc3BlY1NlbGVjdG9ycy50YWdnZWRPcGVyYXRpb25zKClcblxuICAgIGNvbnN0IENvbGxhcHNlID0gZ2V0Q29tcG9uZW50KFwiQ29sbGFwc2VcIilcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGg0IGNsYXNzTmFtZT1cIm92ZXJ2aWV3LXRpdGxlXCI+T3ZlcnZpZXc8L2g0PlxuXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGFnZ2VkT3BzLm1hcCggKHRhZ09iaiwgdGFnKSA9PiB7XG4gICAgICAgICAgICAgIGxldCBvcGVyYXRpb25zID0gdGFnT2JqLmdldChcIm9wZXJhdGlvbnNcIilcblxuICAgICAgICAgICAgICBsZXQgc2hvd1RhZ0lkID0gW1wib3ZlcnZpZXctdGFnc1wiLCB0YWddXG4gICAgICAgICAgICAgIGxldCBzaG93VGFnID0gbGF5b3V0U2VsZWN0b3JzLmlzU2hvd24oc2hvd1RhZ0lkLCB0cnVlKVxuICAgICAgICAgICAgICBsZXQgdG9nZ2xlU2hvdyA9ICgpPT4gbGF5b3V0QWN0aW9ucy5zaG93KHNob3dUYWdJZCwgIXNob3dUYWcpXG5cbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8ZGl2IGtleT17XCJvdmVydmlldy1cIit0YWd9PlxuXG5cbiAgICAgICAgICAgICAgICAgIDxoNCBvbkNsaWNrPXt0b2dnbGVTaG93fSBjbGFzc05hbWU9XCJsaW5rIG92ZXJ2aWV3LXRhZ1wiPiB7c2hvd1RhZyA/IFwiLVwiIDogXCIrXCJ9e3RhZ308L2g0PlxuXG4gICAgICAgICAgICAgICAgICA8Q29sbGFwc2UgaXNPcGVuZWQ9e3Nob3dUYWd9IGFuaW1hdGVkPlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9ucy5tYXAoIG9wID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB7IHBhdGgsIG1ldGhvZCwgaWQgfSA9IG9wLnRvT2JqZWN0KCkgLy8gdG9PYmplY3QgaXMgc2hhbGxvd1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNob3dPcElkUHJlZml4ID0gXCJvcGVyYXRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzaG93T3BJZCA9IGlkXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2hvd24gPSBsYXlvdXRTZWxlY3RvcnMuaXNTaG93bihbc2hvd09wSWRQcmVmaXgsIHNob3dPcElkXSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8T3BlcmF0aW9uTGluayBrZXk9e2lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg9e3BhdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kPXttZXRob2R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9e3BhdGggKyBcIi1cIiArIG1ldGhvZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93bj17c2hvd259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd09wSWQ9e3Nob3dPcElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dPcElkUHJlZml4PXtzaG93T3BJZFByZWZpeH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtgI29wZXJhdGlvbi0ke3Nob3dPcElkfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17bGF5b3V0QWN0aW9ucy5zaG93fSAvPlxuICAgICAgICAgICAgICAgICAgICAgIH0pLnRvQXJyYXkoKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L0NvbGxhcHNlPlxuXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSkudG9BcnJheSgpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgeyB0YWdnZWRPcHMuc2l6ZSA8IDEgJiYgPGgzPiBObyBvcGVyYXRpb25zIGRlZmluZWQgaW4gc3BlYyEgPC9oMz4gfVxuICAgICAgICA8L2Rpdj5cbiAgICApXG4gIH1cblxufVxuXG5PdmVydmlldy5wcm9wVHlwZXMgPSB7XG4gIGxheW91dFNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGxheW91dEFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG59XG5cbmV4cG9ydCBjbGFzcyBPcGVyYXRpb25MaW5rIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKVxuICAgIHRoaXMub25DbGljayA9IHRoaXMuX29uQ2xpY2suYmluZCh0aGlzKVxuICB9XG5cbiAgX29uQ2xpY2soKSB7XG4gICAgbGV0IHsgc2hvd09wSWQsIHNob3dPcElkUHJlZml4LCBvbkNsaWNrLCBzaG93biB9ID0gdGhpcy5wcm9wc1xuICAgIG9uQ2xpY2soW3Nob3dPcElkUHJlZml4LCBzaG93T3BJZF0sICFzaG93bilcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyBpZCwgbWV0aG9kLCBzaG93biwgaHJlZiB9ID0gdGhpcy5wcm9wc1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxMaW5rIGhyZWY9eyBocmVmIH0gb25DbGljaz17dGhpcy5vbkNsaWNrfSBjbGFzc05hbWU9e2BibG9jayBvcGJsb2NrLWxpbmsgJHtzaG93biA/IFwic2hvd25cIiA6IFwiXCJ9YH0+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHNtYWxsIGNsYXNzTmFtZT17YGJvbGQtbGFiZWwtJHttZXRob2R9YH0+e21ldGhvZC50b1VwcGVyQ2FzZSgpfTwvc21hbGw+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYm9sZC1sYWJlbFwiID57aWR9PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvTGluaz5cbiAgICApXG4gIH1cblxufVxuXG5PcGVyYXRpb25MaW5rLnByb3BUeXBlcyA9IHtcbiAgaHJlZjogUHJvcFR5cGVzLnN0cmluZyxcbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIG1ldGhvZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBzaG93bjogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgc2hvd09wSWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgc2hvd09wSWRQcmVmaXg6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZFxufVxuIiwiLy8gVGhpcyBjb21wb25lbnQgcHJvdmlkZXMgYW4gaW50ZXJmYWNlIHRoYXQgZmVlbHMgbGlrZSBhbiB1bmNvbnRyb2xsZWQgaW5wdXRcbi8vIHRvIGNvbnN1bWVycywgd2hpbGUgcHJvdmlkaW5nIGEgYGRlZmF1bHRWYWx1ZWAgaW50ZXJmYWNlIHRoYXQgaW5pdGlhbGl6ZXNcbi8vIHRoZSBpbnB1dCdzIHZhbHVlIHVzaW5nIEphdmFTY3JpcHQgdmFsdWUgcHJvcGVydHkgQVBJcyBpbnN0ZWFkIG9mIFJlYWN0J3MgXG4vLyB2YW5pbGxhWzBdIGltcGxlbWVudGF0aW9uIHRoYXQgdXNlcyBIVE1MIHZhbHVlIGF0dHJpYnV0ZXMuXG4vL1xuLy8gVGhpcyBpcyB1c2VmdWwgaW4gc2l0dWF0aW9ucyB3aGVyZSB3ZSBkb24ndCB3YW50IHRvIHN1cmZhY2UgYW4gaW5wdXQncyB2YWx1ZVxuLy8gaW50byB0aGUgSFRNTC9DU1MtZXhwb3NlZCBzaWRlIG9mIHRoZSBET00sIGZvciBleGFtcGxlIHRvIGF2b2lkIHNlcXVlbnRpYWxcbi8vIGlucHV0IGNoYWluaW5nIGF0dGFja3NbMV0uXG4vLyBcbi8vIFswXTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2Jsb2IvYmFmZjVjYzJmNjlkMzA1ODlhNWRjNjViMDg5ZTQ3NzY1NDM3Mjk0Yi9maXh0dXJlcy9kb20vc3JjL2NvbXBvbmVudHMvZml4dHVyZXMvdGV4dC1pbnB1dHMvUkVBRE1FLm1kXG4vLyBbMV06IGh0dHBzOi8vZ2l0aHViLmNvbS9kMG51dHB0ci9zaWNcblxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW5pdGlhbGl6ZWRJbnB1dCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIC8vIFNldCB0aGUgZWxlbWVudCdzIGB2YWx1ZWAgcHJvcGVydHkgKCpub3QqIHRoZSBgdmFsdWVgIGF0dHJpYnV0ZSlcbiAgICAvLyBvbmNlLCBvbiBtb3VudCwgaWYgYW4gYGluaXRpYWxWYWx1ZWAgaXMgcHJvdmlkZWQuXG4gICAgaWYodGhpcy5wcm9wcy5pbml0aWFsVmFsdWUpIHtcbiAgICAgIHRoaXMuaW5wdXRSZWYudmFsdWUgPSB0aGlzLnByb3BzLmluaXRpYWxWYWx1ZVxuICAgIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICAvLyBGaWx0ZXIgb3V0IGB2YWx1ZWAgYW5kIGBkZWZhdWx0VmFsdWVgLCBzaW5jZSB3ZSBoYXZlIG91ciBvd25cbiAgICAvLyBgaW5pdGlhbFZhbHVlYCBpbnRlcmZhY2UgdGhhdCB3ZSBwcm92aWRlLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFycywgcmVhY3QvcHJvcC10eXBlc1xuICAgIGNvbnN0IHsgdmFsdWUsIGRlZmF1bHRWYWx1ZSwgaW5pdGlhbFZhbHVlLCAuLi5vdGhlclByb3BzIH0gPSB0aGlzLnByb3BzXG4gICAgcmV0dXJuIDxpbnB1dCB7Li4ub3RoZXJQcm9wc30gcmVmPXtjID0+IHRoaXMuaW5wdXRSZWYgPSBjfSAvPlxuICB9XG59XG5cbkluaXRpYWxpemVkSW5wdXQucHJvcFR5cGVzID0ge1xuICBpbml0aWFsVmFsdWU6IFByb3BUeXBlcy5zdHJpbmdcbn1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuaW1wb3J0IHsgc2FmZUJ1aWxkVXJsLCBzYW5pdGl6ZVVybCB9IGZyb20gXCJjb3JlL3V0aWxzL3VybFwiXG5cbmV4cG9ydCBjbGFzcyBJbmZvQmFzZVBhdGggZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGhvc3Q6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgYmFzZVBhdGg6IFByb3BUeXBlcy5zdHJpbmcsXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBob3N0LCBiYXNlUGF0aCB9ID0gdGhpcy5wcm9wc1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxwcmUgY2xhc3NOYW1lPVwiYmFzZS11cmxcIj5cbiAgICAgICAgWyBCYXNlIFVSTDoge2hvc3R9XG4gICAgICAgIHtiYXNlUGF0aH0gXVxuICAgICAgPC9wcmU+XG4gICAgKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbmZvVXJsIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgdXJsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgdXJsLCBnZXRDb21wb25lbnQgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBMaW5rID0gZ2V0Q29tcG9uZW50KFwiTGlua1wiKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxMaW5rIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9e3Nhbml0aXplVXJsKHVybCl9PlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ1cmxcIj4ge3VybH08L3NwYW4+XG4gICAgICA8L0xpbms+XG4gICAgKVxuICB9XG59XG5cbmNsYXNzIEluZm8gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHRpdGxlOiBQcm9wVHlwZXMuYW55LFxuICAgIGRlc2NyaXB0aW9uOiBQcm9wVHlwZXMuYW55LFxuICAgIHZlcnNpb246IFByb3BUeXBlcy5hbnksXG4gICAgaW5mbzogUHJvcFR5cGVzLm9iamVjdCxcbiAgICB1cmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgaG9zdDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBiYXNlUGF0aDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBleHRlcm5hbERvY3M6IEltUHJvcFR5cGVzLm1hcCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb2FzM3NlbGVjdG9yczogUHJvcFR5cGVzLmZ1bmMsXG4gICAgc2VsZWN0ZWRTZXJ2ZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgaW5mbyxcbiAgICAgIHVybCxcbiAgICAgIGhvc3QsXG4gICAgICBiYXNlUGF0aCxcbiAgICAgIGdldENvbXBvbmVudCxcbiAgICAgIGV4dGVybmFsRG9jcyxcbiAgICAgIHNlbGVjdGVkU2VydmVyLFxuICAgICAgdXJsOiBzcGVjVXJsLFxuICAgIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgdmVyc2lvbiA9IGluZm8uZ2V0KFwidmVyc2lvblwiKVxuICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gaW5mby5nZXQoXCJkZXNjcmlwdGlvblwiKVxuICAgIGNvbnN0IHRpdGxlID0gaW5mby5nZXQoXCJ0aXRsZVwiKVxuICAgIGNvbnN0IHRlcm1zT2ZTZXJ2aWNlVXJsID0gc2FmZUJ1aWxkVXJsKFxuICAgICAgaW5mby5nZXQoXCJ0ZXJtc09mU2VydmljZVwiKSxcbiAgICAgIHNwZWNVcmwsXG4gICAgICB7IHNlbGVjdGVkU2VydmVyIH1cbiAgICApXG4gICAgY29uc3QgY29udGFjdERhdGEgPSBpbmZvLmdldChcImNvbnRhY3RcIilcbiAgICBjb25zdCBsaWNlbnNlRGF0YSA9IGluZm8uZ2V0KFwibGljZW5zZVwiKVxuICAgIGNvbnN0IHJhd0V4dGVybmFsRG9jc1VybCA9IGV4dGVybmFsRG9jcyAmJiBleHRlcm5hbERvY3MuZ2V0KFwidXJsXCIpXG4gICAgY29uc3QgZXh0ZXJuYWxEb2NzVXJsID0gc2FmZUJ1aWxkVXJsKHJhd0V4dGVybmFsRG9jc1VybCwgc3BlY1VybCwge1xuICAgICAgc2VsZWN0ZWRTZXJ2ZXIsXG4gICAgfSlcbiAgICBjb25zdCBleHRlcm5hbERvY3NEZXNjcmlwdGlvbiA9XG4gICAgICBleHRlcm5hbERvY3MgJiYgZXh0ZXJuYWxEb2NzLmdldChcImRlc2NyaXB0aW9uXCIpXG5cbiAgICBjb25zdCBNYXJrZG93biA9IGdldENvbXBvbmVudChcIk1hcmtkb3duXCIsIHRydWUpXG4gICAgY29uc3QgTGluayA9IGdldENvbXBvbmVudChcIkxpbmtcIilcbiAgICBjb25zdCBWZXJzaW9uU3RhbXAgPSBnZXRDb21wb25lbnQoXCJWZXJzaW9uU3RhbXBcIilcbiAgICBjb25zdCBPcGVuQVBJVmVyc2lvbiA9IGdldENvbXBvbmVudChcIk9wZW5BUElWZXJzaW9uXCIpXG4gICAgY29uc3QgSW5mb1VybCA9IGdldENvbXBvbmVudChcIkluZm9VcmxcIilcbiAgICBjb25zdCBJbmZvQmFzZVBhdGggPSBnZXRDb21wb25lbnQoXCJJbmZvQmFzZVBhdGhcIilcbiAgICBjb25zdCBMaWNlbnNlID0gZ2V0Q29tcG9uZW50KFwiTGljZW5zZVwiKVxuICAgIGNvbnN0IENvbnRhY3QgPSBnZXRDb21wb25lbnQoXCJDb250YWN0XCIpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XG4gICAgICAgIDxoZ3JvdXAgY2xhc3NOYW1lPVwibWFpblwiPlxuICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxuICAgICAgICAgICAge3RpdGxlfVxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIHt2ZXJzaW9uICYmIDxWZXJzaW9uU3RhbXAgdmVyc2lvbj17dmVyc2lvbn0gLz59XG4gICAgICAgICAgICAgIDxPcGVuQVBJVmVyc2lvbiBvYXNWZXJzaW9uPVwiMi4wXCIgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2gyPlxuICAgICAgICAgIHtob3N0IHx8IGJhc2VQYXRoID8gKFxuICAgICAgICAgICAgPEluZm9CYXNlUGF0aCBob3N0PXtob3N0fSBiYXNlUGF0aD17YmFzZVBhdGh9IC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAge3VybCAmJiA8SW5mb1VybCBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH0gdXJsPXt1cmx9IC8+fVxuICAgICAgICA8L2hncm91cD5cblxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgPE1hcmtkb3duIHNvdXJjZT17ZGVzY3JpcHRpb259IC8+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIHt0ZXJtc09mU2VydmljZVVybCAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvX190b3NcIj5cbiAgICAgICAgICAgIDxMaW5rIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9e3Nhbml0aXplVXJsKHRlcm1zT2ZTZXJ2aWNlVXJsKX0+XG4gICAgICAgICAgICAgIFRlcm1zIG9mIHNlcnZpY2VcbiAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cblxuICAgICAgICB7Y29udGFjdERhdGE/LnNpemUgPiAwICYmIChcbiAgICAgICAgICA8Q29udGFjdFxuICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9XG4gICAgICAgICAgICBkYXRhPXtjb250YWN0RGF0YX1cbiAgICAgICAgICAgIHNlbGVjdGVkU2VydmVyPXtzZWxlY3RlZFNlcnZlcn1cbiAgICAgICAgICAgIHVybD17dXJsfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtsaWNlbnNlRGF0YT8uc2l6ZSA+IDAgJiYgKFxuICAgICAgICAgIDxMaWNlbnNlXG4gICAgICAgICAgICBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH1cbiAgICAgICAgICAgIGxpY2Vuc2U9e2xpY2Vuc2VEYXRhfVxuICAgICAgICAgICAgc2VsZWN0ZWRTZXJ2ZXI9e3NlbGVjdGVkU2VydmVyfVxuICAgICAgICAgICAgdXJsPXt1cmx9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAge2V4dGVybmFsRG9jc1VybCA/IChcbiAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW5mb19fZXh0ZG9jc1wiXG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgaHJlZj17c2FuaXRpemVVcmwoZXh0ZXJuYWxEb2NzVXJsKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ZXh0ZXJuYWxEb2NzRGVzY3JpcHRpb24gfHwgZXh0ZXJuYWxEb2NzVXJsfVxuICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgSW5mb1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW5mb0NvbnRhaW5lciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBzcGVjQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb2FzM1NlbGVjdG9yczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgfVxuXG4gIHJlbmRlciAoKSB7XG4gICAgY29uc3Qge3NwZWNTZWxlY3RvcnMsIGdldENvbXBvbmVudCwgb2FzM1NlbGVjdG9yc30gPSB0aGlzLnByb3BzXG5cbiAgICBjb25zdCBpbmZvID0gc3BlY1NlbGVjdG9ycy5pbmZvKClcbiAgICBjb25zdCB1cmwgPSBzcGVjU2VsZWN0b3JzLnVybCgpXG4gICAgY29uc3QgYmFzZVBhdGggPSBzcGVjU2VsZWN0b3JzLmJhc2VQYXRoKClcbiAgICBjb25zdCBob3N0ID0gc3BlY1NlbGVjdG9ycy5ob3N0KClcbiAgICBjb25zdCBleHRlcm5hbERvY3MgPSBzcGVjU2VsZWN0b3JzLmV4dGVybmFsRG9jcygpXG4gICAgY29uc3Qgc2VsZWN0ZWRTZXJ2ZXIgPSBvYXMzU2VsZWN0b3JzLnNlbGVjdGVkU2VydmVyKClcblxuICAgIGNvbnN0IEluZm8gPSBnZXRDb21wb25lbnQoXCJpbmZvXCIpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAge2luZm8gJiYgaW5mby5jb3VudCgpID8gKFxuICAgICAgICAgIDxJbmZvIGluZm89e2luZm99IHVybD17dXJsfSBob3N0PXtob3N0fSBiYXNlUGF0aD17YmFzZVBhdGh9IGV4dGVybmFsRG9jcz17ZXh0ZXJuYWxEb2NzfVxuICAgICAgICAgICAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fSBzZWxlY3RlZFNlcnZlcj17c2VsZWN0ZWRTZXJ2ZXJ9IC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG59XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHsgc2FmZUJ1aWxkVXJsLCBzYW5pdGl6ZVVybCB9IGZyb20gXCJjb3JlL3V0aWxzL3VybFwiXG5cbmNsYXNzIENvbnRhY3QgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGRhdGE6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBzZWxlY3RlZFNlcnZlcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB1cmw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGRhdGEsIGdldENvbXBvbmVudCwgc2VsZWN0ZWRTZXJ2ZXIsIHVybDogc3BlY1VybCB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IG5hbWUgPSBkYXRhLmdldChcIm5hbWVcIiwgXCJ0aGUgZGV2ZWxvcGVyXCIpXG4gICAgY29uc3QgdXJsID0gc2FmZUJ1aWxkVXJsKGRhdGEuZ2V0KFwidXJsXCIpLCBzcGVjVXJsLCB7IHNlbGVjdGVkU2VydmVyIH0pXG4gICAgY29uc3QgZW1haWwgPSBkYXRhLmdldChcImVtYWlsXCIpXG5cbiAgICBjb25zdCBMaW5rID0gZ2V0Q29tcG9uZW50KFwiTGlua1wiKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb19fY29udGFjdFwiPlxuICAgICAgICB7dXJsICYmIChcbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPExpbmsgaHJlZj17c2FuaXRpemVVcmwodXJsKX0gdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgICAgIHtuYW1lfSAtIFdlYnNpdGVcbiAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgICAge2VtYWlsICYmIChcbiAgICAgICAgICA8TGluayBocmVmPXtzYW5pdGl6ZVVybChgbWFpbHRvOiR7ZW1haWx9YCl9PlxuICAgICAgICAgICAge3VybCA/IGBTZW5kIGVtYWlsIHRvICR7bmFtZX1gIDogYENvbnRhY3QgJHtuYW1lfWB9XG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbnRhY3RcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgeyBzYWZlQnVpbGRVcmwsIHNhbml0aXplVXJsIH0gZnJvbSBcImNvcmUvdXRpbHMvdXJsXCJcblxuY2xhc3MgTGljZW5zZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgbGljZW5zZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHNlbGVjdGVkU2VydmVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHVybDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgbGljZW5zZSwgZ2V0Q29tcG9uZW50LCBzZWxlY3RlZFNlcnZlciwgdXJsOiBzcGVjVXJsIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgbmFtZSA9IGxpY2Vuc2UuZ2V0KFwibmFtZVwiLCBcIkxpY2Vuc2VcIilcbiAgICBjb25zdCB1cmwgPSBzYWZlQnVpbGRVcmwobGljZW5zZS5nZXQoXCJ1cmxcIiksIHNwZWNVcmwsIHsgc2VsZWN0ZWRTZXJ2ZXIgfSlcblxuICAgIGNvbnN0IExpbmsgPSBnZXRDb21wb25lbnQoXCJMaW5rXCIpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvX19saWNlbnNlXCI+XG4gICAgICAgIHt1cmwgPyAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvX19saWNlbnNlX191cmxcIj5cbiAgICAgICAgICAgIDxMaW5rIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9e3Nhbml0aXplVXJsKHVybCl9PlxuICAgICAgICAgICAgICB7bmFtZX1cbiAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8c3Bhbj57bmFtZX08L3NwYW4+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTGljZW5zZVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbi8vIE5vdGhpbmcgYnkgZGVmYXVsdC0gY29tcG9uZW50IGNhbiBiZSBvdmVycmlkZGVuIGJ5IGFub3RoZXIgcGx1Z2luLlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBKdW1wVG9QYXRoIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgQ29weVRvQ2xpcGJvYXJkIH0gZnJvbSBcInJlYWN0LWNvcHktdG8tY2xpcGJvYXJkXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG4vKipcbiAqIEBwYXJhbSB7eyBnZXRDb21wb25lbnQ6IGZ1bmMsIHRleHRUb0NvcHk6IHN0cmluZyB9fSBwcm9wc1xuICogQHJldHVybnMge0pTWC5FbGVtZW50fVxuICogQGNvbnN0cnVjdG9yXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvcHlUb0NsaXBib2FyZEJ0biBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyBnZXRDb21wb25lbnQgfSA9IHRoaXMucHJvcHNcblxuICAgIGNvbnN0IENvcHlJY29uID0gZ2V0Q29tcG9uZW50KFwiQ29weUljb25cIilcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInZpZXctbGluZS1saW5rIGNvcHktdG8tY2xpcGJvYXJkXCIgdGl0bGU9XCJDb3B5IHRvIGNsaXBib2FyZFwiPlxuICAgICAgICA8Q29weVRvQ2xpcGJvYXJkIHRleHQ9e3RoaXMucHJvcHMudGV4dFRvQ29weX0+XG4gICAgICAgICAgPENvcHlJY29uIC8+XG4gICAgICAgIDwvQ29weVRvQ2xpcGJvYXJkPlxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdGV4dFRvQ29weTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRm9vdGVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvb3RlclwiPjwvZGl2PlxuICAgIClcbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmlsdGVyQ29udGFpbmVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBsYXlvdXRTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBsYXlvdXRBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB9XG5cbiAgb25GaWx0ZXJDaGFuZ2UgPSAoZSkgPT4ge1xuICAgIGNvbnN0IHt0YXJnZXQ6IHt2YWx1ZX19ID0gZVxuICAgIHRoaXMucHJvcHMubGF5b3V0QWN0aW9ucy51cGRhdGVGaWx0ZXIodmFsdWUpXG4gIH1cblxuICByZW5kZXIgKCkge1xuICAgIGNvbnN0IHtzcGVjU2VsZWN0b3JzLCBsYXlvdXRTZWxlY3RvcnMsIGdldENvbXBvbmVudH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgQ29sID0gZ2V0Q29tcG9uZW50KFwiQ29sXCIpXG5cbiAgICBjb25zdCBpc0xvYWRpbmcgPSBzcGVjU2VsZWN0b3JzLmxvYWRpbmdTdGF0dXMoKSA9PT0gXCJsb2FkaW5nXCJcbiAgICBjb25zdCBpc0ZhaWxlZCA9IHNwZWNTZWxlY3RvcnMubG9hZGluZ1N0YXR1cygpID09PSBcImZhaWxlZFwiXG4gICAgY29uc3QgZmlsdGVyID0gbGF5b3V0U2VsZWN0b3JzLmN1cnJlbnRGaWx0ZXIoKVxuXG4gICAgY29uc3QgY2xhc3NOYW1lcyA9IFtcIm9wZXJhdGlvbi1maWx0ZXItaW5wdXRcIl1cbiAgICBpZiAoaXNGYWlsZWQpIGNsYXNzTmFtZXMucHVzaChcImZhaWxlZFwiKVxuICAgIGlmIChpc0xvYWRpbmcpIGNsYXNzTmFtZXMucHVzaChcImxvYWRpbmdcIilcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICB7ZmlsdGVyID09PSBmYWxzZSA/IG51bGwgOlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsdGVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPENvbCBjbGFzc05hbWU9XCJmaWx0ZXIgd3JhcHBlclwiIG1vYmlsZT17MTJ9PlxuICAgICAgICAgICAgICA8aW5wdXQgY2xhc3NOYW1lPXtjbGFzc05hbWVzLmpvaW4oXCIgXCIpfSBwbGFjZWhvbGRlcj1cIkZpbHRlciBieSB0YWdcIiB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkZpbHRlckNoYW5nZX0gdmFsdWU9e3R5cGVvZiBmaWx0ZXIgPT09IFwic3RyaW5nXCIgPyBmaWx0ZXIgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzTG9hZGluZ30vPlxuICAgICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgeyBmcm9tSlMsIExpc3QgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCB7IGdldEtub3duU3ludGF4SGlnaGxpZ2h0ZXJMYW5ndWFnZSB9IGZyb20gXCJjb3JlL3V0aWxzL2pzb25QYXJzZVwiXG5pbXBvcnQgY3JlYXRlSHRtbFJlYWR5SWQgZnJvbSBcImNvcmUvdXRpbHMvY3JlYXRlLWh0bWwtcmVhZHktaWRcIlxuXG5jb25zdCBOT09QID0gRnVuY3Rpb24ucHJvdG90eXBlXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhcmFtQm9keSBleHRlbmRzIFB1cmVDb21wb25lbnQge1xuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgcGFyYW06IFByb3BUeXBlcy5vYmplY3QsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uQ2hhbmdlQ29uc3VtZXM6IFByb3BUeXBlcy5mdW5jLFxuICAgIGNvbnN1bWVzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGNvbnN1bWVzVmFsdWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZm46IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgaXNFeGVjdXRlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgcGF0aE1ldGhvZDogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWRcbiAgfVxuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcCA9IHtcbiAgICBjb25zdW1lczogZnJvbUpTKFtcImFwcGxpY2F0aW9uL2pzb25cIl0pLFxuICAgIHBhcmFtOiBmcm9tSlMoe30pLFxuICAgIG9uQ2hhbmdlOiBOT09QLFxuICAgIG9uQ2hhbmdlQ29uc3VtZXM6IE5PT1AsXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm9wcywgY29udGV4dCkge1xuICAgIHN1cGVyKHByb3BzLCBjb250ZXh0KVxuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGlzRWRpdEJveDogZmFsc2UsXG4gICAgICB2YWx1ZTogXCJcIlxuICAgIH1cblxuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZXMuY2FsbCh0aGlzLCB0aGlzLnByb3BzKVxuICB9XG5cbiAgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZXMuY2FsbCh0aGlzLCBuZXh0UHJvcHMpXG4gIH1cblxuICB1cGRhdGVWYWx1ZXMgPSAocHJvcHMpID0+IHtcbiAgICBsZXQgeyBwYXJhbSwgaXNFeGVjdXRlLCBjb25zdW1lc1ZhbHVlPVwiXCIgfSA9IHByb3BzXG4gICAgbGV0IGlzWG1sID0gL3htbC9pLnRlc3QoY29uc3VtZXNWYWx1ZSlcbiAgICBsZXQgaXNKc29uID0gL2pzb24vaS50ZXN0KGNvbnN1bWVzVmFsdWUpXG4gICAgbGV0IHBhcmFtVmFsdWUgPSBpc1htbCA/IHBhcmFtLmdldChcInZhbHVlX3htbFwiKSA6IHBhcmFtLmdldChcInZhbHVlXCIpXG5cbiAgICBpZiAoIHBhcmFtVmFsdWUgIT09IHVuZGVmaW5lZCApIHtcbiAgICAgIGxldCB2YWwgPSAhcGFyYW1WYWx1ZSAmJiBpc0pzb24gPyBcInt9XCIgOiBwYXJhbVZhbHVlXG4gICAgICB0aGlzLnNldFN0YXRlKHsgdmFsdWU6IHZhbCB9KVxuICAgICAgdGhpcy5vbkNoYW5nZSh2YWwsIHtpc1htbDogaXNYbWwsIGlzRWRpdEJveDogaXNFeGVjdXRlfSlcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGlzWG1sKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5zYW1wbGUoXCJ4bWxcIiksIHtpc1htbDogaXNYbWwsIGlzRWRpdEJveDogaXNFeGVjdXRlfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5zYW1wbGUoKSwge2lzRWRpdEJveDogaXNFeGVjdXRlfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzYW1wbGUgPSAoeG1sKSA9PiB7XG4gICAgbGV0IHsgcGFyYW0sIGZufSA9IHRoaXMucHJvcHNcbiAgICBsZXQgc2NoZW1hID0gZm4uaW5mZXJTY2hlbWEocGFyYW0udG9KUygpKVxuXG4gICAgcmV0dXJuIGZuLmdldFNhbXBsZVNjaGVtYShzY2hlbWEsIHhtbCwge1xuICAgICAgaW5jbHVkZVdyaXRlT25seTogdHJ1ZVxuICAgIH0pXG4gIH1cblxuICBvbkNoYW5nZSA9ICh2YWx1ZSwgeyBpc0VkaXRCb3gsIGlzWG1sIH0pID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHt2YWx1ZSwgaXNFZGl0Qm94fSlcbiAgICB0aGlzLl9vbkNoYW5nZSh2YWx1ZSwgaXNYbWwpXG4gIH1cblxuICBfb25DaGFuZ2UgPSAodmFsLCBpc1htbCkgPT4geyAodGhpcy5wcm9wcy5vbkNoYW5nZSB8fCBOT09QKSh2YWwsIGlzWG1sKSB9XG5cbiAgaGFuZGxlT25DaGFuZ2UgPSBlID0+IHtcbiAgICBjb25zdCB7Y29uc3VtZXNWYWx1ZX0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgaXNYbWwgPSAveG1sL2kudGVzdChjb25zdW1lc1ZhbHVlKVxuICAgIGNvbnN0IGlucHV0VmFsdWUgPSBlLnRhcmdldC52YWx1ZVxuICAgIHRoaXMub25DaGFuZ2UoaW5wdXRWYWx1ZSwge2lzWG1sLCBpc0VkaXRCb3g6IHRoaXMuc3RhdGUuaXNFZGl0Qm94fSlcbiAgfVxuXG4gIHRvZ2dsZUlzRWRpdEJveCA9ICgpID0+IHRoaXMuc2V0U3RhdGUoIHN0YXRlID0+ICh7aXNFZGl0Qm94OiAhc3RhdGUuaXNFZGl0Qm94fSkpXG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7XG4gICAgICBvbkNoYW5nZUNvbnN1bWVzLFxuICAgICAgcGFyYW0sXG4gICAgICBpc0V4ZWN1dGUsXG4gICAgICBzcGVjU2VsZWN0b3JzLFxuICAgICAgcGF0aE1ldGhvZCxcbiAgICAgIGdldENvbXBvbmVudCxcbiAgICB9ID0gdGhpcy5wcm9wc1xuXG4gICAgY29uc3QgQnV0dG9uID0gZ2V0Q29tcG9uZW50KFwiQnV0dG9uXCIpXG4gICAgY29uc3QgVGV4dEFyZWEgPSBnZXRDb21wb25lbnQoXCJUZXh0QXJlYVwiKVxuICAgIGNvbnN0IEhpZ2hsaWdodENvZGUgPSBnZXRDb21wb25lbnQoXCJIaWdobGlnaHRDb2RlXCIsIHRydWUpXG4gICAgY29uc3QgQ29udGVudFR5cGUgPSBnZXRDb21wb25lbnQoXCJjb250ZW50VHlwZVwiKVxuICAgIC8vIGZvciBkb21haW5zIHdoZXJlIHNwZWNTZWxlY3RvcnMgbm90IHBhc3NlZFxuICAgIGxldCBwYXJhbWV0ZXIgPSBzcGVjU2VsZWN0b3JzID8gc3BlY1NlbGVjdG9ycy5wYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkocGF0aE1ldGhvZCwgcGFyYW0pIDogcGFyYW1cbiAgICBsZXQgZXJyb3JzID0gcGFyYW1ldGVyLmdldChcImVycm9yc1wiLCBMaXN0KCkpXG4gICAgbGV0IGNvbnN1bWVzVmFsdWUgPSBzcGVjU2VsZWN0b3JzLmNvbnRlbnRUeXBlVmFsdWVzKHBhdGhNZXRob2QpLmdldChcInJlcXVlc3RDb250ZW50VHlwZVwiKVxuICAgIGxldCBjb25zdW1lcyA9IHRoaXMucHJvcHMuY29uc3VtZXMgJiYgdGhpcy5wcm9wcy5jb25zdW1lcy5zaXplID8gdGhpcy5wcm9wcy5jb25zdW1lcyA6IFBhcmFtQm9keS5kZWZhdWx0UHJvcC5jb25zdW1lc1xuXG4gICAgbGV0IHsgdmFsdWUsIGlzRWRpdEJveCB9ID0gdGhpcy5zdGF0ZVxuICAgIGxldCBsYW5ndWFnZSA9IG51bGxcbiAgICBsZXQgdGVzdFZhbHVlRm9ySnNvbiA9IGdldEtub3duU3ludGF4SGlnaGxpZ2h0ZXJMYW5ndWFnZSh2YWx1ZSlcbiAgICBpZiAodGVzdFZhbHVlRm9ySnNvbikge1xuICAgICAgbGFuZ3VhZ2UgPSBcImpzb25cIlxuICAgIH1cblxuICAgIGNvbnN0IHJlZ2lvbklkID0gY3JlYXRlSHRtbFJlYWR5SWQoYCR7cGF0aE1ldGhvZFsxXX0ke3BhdGhNZXRob2RbMF19X3BhcmFtZXRlcnNgKVxuICAgIGNvbnN0IGNvbnRyb2xJZCA9IGAke3JlZ2lvbklkfV9zZWxlY3RgXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJib2R5LXBhcmFtXCIgZGF0YS1wYXJhbS1uYW1lPXtwYXJhbS5nZXQoXCJuYW1lXCIpfSBkYXRhLXBhcmFtLWluPXtwYXJhbS5nZXQoXCJpblwiKX0+XG4gICAgICAgIHtcbiAgICAgICAgICBpc0VkaXRCb3ggJiYgaXNFeGVjdXRlXG4gICAgICAgICAgICA/IDxUZXh0QXJlYSBjbGFzc05hbWU9eyBcImJvZHktcGFyYW1fX3RleHRcIiArICggZXJyb3JzLmNvdW50KCkgPyBcIiBpbnZhbGlkXCIgOiBcIlwiKX0gdmFsdWU9e3ZhbHVlfSBvbkNoYW5nZT17IHRoaXMuaGFuZGxlT25DaGFuZ2UgfS8+XG4gICAgICAgICAgICA6ICh2YWx1ZSAmJiA8SGlnaGxpZ2h0Q29kZSBjbGFzc05hbWU9XCJib2R5LXBhcmFtX19leGFtcGxlXCIgbGFuZ3VhZ2U9eyBsYW5ndWFnZSB9Pnt2YWx1ZX08L0hpZ2hsaWdodENvZGU+KVxuICAgICAgICB9XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm9keS1wYXJhbS1vcHRpb25zXCI+XG4gICAgICAgICAge1xuICAgICAgICAgICAgIWlzRXhlY3V0ZSA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgOiA8ZGl2IGNsYXNzTmFtZT1cImJvZHktcGFyYW0tZWRpdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiBjbGFzc05hbWU9e2lzRWRpdEJveCA/IFwiYnRuIGNhbmNlbCBib2R5LXBhcmFtX19leGFtcGxlLWVkaXRcIiA6IFwiYnRuIGVkaXQgYm9keS1wYXJhbV9fZXhhbXBsZS1lZGl0XCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLnRvZ2dsZUlzRWRpdEJveH0+eyBpc0VkaXRCb3ggPyBcIkNhbmNlbFwiIDogXCJFZGl0XCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxsYWJlbCBodG1sRm9yPXtjb250cm9sSWR9PlxuICAgICAgICAgICAgPHNwYW4+UGFyYW1ldGVyIGNvbnRlbnQgdHlwZTwvc3Bhbj5cbiAgICAgICAgICAgIDxDb250ZW50VHlwZVxuICAgICAgICAgICAgICB2YWx1ZT17IGNvbnN1bWVzVmFsdWUgfVxuICAgICAgICAgICAgICBjb250ZW50VHlwZXM9eyBjb25zdW1lcyB9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZUNvbnN1bWVzfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJib2R5LXBhcmFtLWNvbnRlbnQtdHlwZVwiXG4gICAgICAgICAgICAgIGFyaWFMYWJlbD1cIlBhcmFtZXRlciBjb250ZW50IHR5cGVcIlxuICAgICAgICAgICAgICBjb250cm9sSWQ9e2NvbnRyb2xJZH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgIDwvZGl2PlxuICAgIClcblxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHsgQ29weVRvQ2xpcGJvYXJkIH0gZnJvbSBcInJlYWN0LWNvcHktdG8tY2xpcGJvYXJkXCJcbmltcG9ydCB7IHJlcXVlc3RTbmlwcGV0R2VuZXJhdG9yX2N1cmxfYmFzaCB9IGZyb20gXCIuLi9wbHVnaW5zL3JlcXVlc3Qtc25pcHBldHMvZm5cIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDdXJsIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgcmVxdWVzdDogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyByZXF1ZXN0LCBnZXRDb21wb25lbnQgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBjdXJsID0gcmVxdWVzdFNuaXBwZXRHZW5lcmF0b3JfY3VybF9iYXNoKHJlcXVlc3QpXG4gICAgY29uc3QgU3ludGF4SGlnaGxpZ2h0ZXIgPSBnZXRDb21wb25lbnQoXCJTeW50YXhIaWdobGlnaHRlclwiLCB0cnVlKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY3VybC1jb21tYW5kXCI+XG4gICAgICAgIDxoND5DdXJsPC9oND5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb3B5LXRvLWNsaXBib2FyZFwiPlxuICAgICAgICAgICAgPENvcHlUb0NsaXBib2FyZCB0ZXh0PXtjdXJsfT48YnV0dG9uLz48L0NvcHlUb0NsaXBib2FyZD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPFN5bnRheEhpZ2hsaWdodGVyXG4gICAgICAgICAgICBsYW5ndWFnZT1cImJhc2hcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiY3VybCBtaWNyb2xpZ2h0XCJcbiAgICAgICAgICAgIHJlbmRlclBsYWluVGV4dD17KHsgY2hpbGRyZW4sIFBsYWluVGV4dFZpZXdlciB9KSA9PiAoXG4gICAgICAgICAgICAgIDxQbGFpblRleHRWaWV3ZXIgY2xhc3NOYW1lPVwiY3VybFwiPntjaGlsZHJlbn08L1BsYWluVGV4dFZpZXdlcj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2N1cmx9XG4gICAgICAgICAgPC9TeW50YXhIaWdobGlnaHRlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cblxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuZXhwb3J0IGNvbnN0IFByb3BlcnR5ID0gKHsgcHJvcEtleSwgcHJvcFZhbCwgcHJvcENsYXNzIH0pID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9eyBwcm9wQ2xhc3MgfT5cbiAgICAgICAgICA8YnIgLz57IHByb3BLZXkgfTogeyBTdHJpbmcocHJvcFZhbCkgfTwvc3Bhbj5cbiAgICApXG59XG5Qcm9wZXJ0eS5wcm9wVHlwZXMgPSB7XG4gIHByb3BLZXk6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHByb3BWYWw6IFByb3BUeXBlcy5hbnksXG4gIHByb3BDbGFzczogUHJvcFR5cGVzLnN0cmluZ1xufVxuXG5leHBvcnQgZGVmYXVsdCBQcm9wZXJ0eVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVHJ5SXRPdXRCdXR0b24gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb25UcnlvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25SZXNldENsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkNhbmNlbENsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBlbmFibGVkOiBQcm9wVHlwZXMuYm9vbCwgLy8gVHJ5IGl0IG91dCBpcyBlbmFibGVkLCBpZTogdGhlIHVzZXIgaGFzIGFjY2VzcyB0byB0aGUgZm9ybVxuICAgIGhhc1VzZXJFZGl0ZWRCb2R5OiBQcm9wVHlwZXMuYm9vbCwgLy8gVHJ5IGl0IG91dCBpcyBlbmFibGVkLCBpZTogdGhlIHVzZXIgaGFzIGFjY2VzcyB0byB0aGUgZm9ybVxuICAgIGlzT0FTMzogUHJvcFR5cGVzLmJvb2wsIC8vIFRyeSBpdCBvdXQgaXMgZW5hYmxlZCwgaWU6IHRoZSB1c2VyIGhhcyBhY2Nlc3MgdG8gdGhlIGZvcm1cbiAgfVxuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgb25UcnlvdXRDbGljazogRnVuY3Rpb24ucHJvdG90eXBlLFxuICAgIG9uQ2FuY2VsQ2xpY2s6IEZ1bmN0aW9uLnByb3RvdHlwZSxcbiAgICBvblJlc2V0Q2xpY2s6IEZ1bmN0aW9uLnByb3RvdHlwZSxcbiAgICBlbmFibGVkOiBmYWxzZSxcbiAgICBoYXNVc2VyRWRpdGVkQm9keTogZmFsc2UsXG4gICAgaXNPQVMzOiBmYWxzZSxcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IG9uVHJ5b3V0Q2xpY2ssIG9uQ2FuY2VsQ2xpY2ssIG9uUmVzZXRDbGljaywgZW5hYmxlZCwgaGFzVXNlckVkaXRlZEJvZHksIGlzT0FTMyB9ID0gdGhpcy5wcm9wc1xuXG4gICAgY29uc3Qgc2hvd1Jlc2V0ID0gaXNPQVMzICYmIGhhc1VzZXJFZGl0ZWRCb2R5XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtzaG93UmVzZXQgPyBcInRyeS1vdXQgYnRuLWdyb3VwXCIgOiBcInRyeS1vdXRcIn0+XG4gICAgICAgIHtcbiAgICAgICAgICBlbmFibGVkID8gPGJ1dHRvbiBjbGFzc05hbWU9XCJidG4gdHJ5LW91dF9fYnRuIGNhbmNlbFwiIG9uQ2xpY2s9eyBvbkNhbmNlbENsaWNrIH0+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA6IDxidXR0b24gY2xhc3NOYW1lPVwiYnRuIHRyeS1vdXRfX2J0blwiIG9uQ2xpY2s9eyBvblRyeW91dENsaWNrIH0+VHJ5IGl0IG91dCA8L2J1dHRvbj5cblxuICAgICAgICB9XG4gICAgICAgIHtcbiAgICAgICAgICBzaG93UmVzZXQgJiYgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG4gdHJ5LW91dF9fYnRuIHJlc2V0XCIgb25DbGljaz17IG9uUmVzZXRDbGljayB9PlJlc2V0PC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVyc2lvblByYWdtYUZpbHRlciBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGlzU3dhZ2dlcjI6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgaXNPQVMzOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIGJ5cGFzczogUHJvcFR5cGVzLmJvb2wsXG4gICAgYWxzb1Nob3c6IFByb3BUeXBlcy5lbGVtZW50LFxuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMuYW55LFxuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBhbHNvU2hvdzogbnVsbCxcbiAgICBjaGlsZHJlbjogbnVsbCxcbiAgICBieXBhc3M6IGZhbHNlLFxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgYnlwYXNzLCBpc1N3YWdnZXIyLCBpc09BUzMsIGFsc29TaG93IH0gPSB0aGlzLnByb3BzXG5cbiAgICBpZihieXBhc3MpIHtcbiAgICAgIHJldHVybiA8ZGl2PnsgdGhpcy5wcm9wcy5jaGlsZHJlbiB9PC9kaXY+XG4gICAgfVxuXG4gICAgaWYoaXNTd2FnZ2VyMiAmJiBpc09BUzMpIHtcbiAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT1cInZlcnNpb24tcHJhZ21hXCI+XG4gICAgICAgIHthbHNvU2hvd31cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ2ZXJzaW9uLXByYWdtYV9fbWVzc2FnZSB2ZXJzaW9uLXByYWdtYV9fbWVzc2FnZS0tYW1iaWd1b3VzXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxoMz5VbmFibGUgdG8gcmVuZGVyIHRoaXMgZGVmaW5pdGlvbjwvaDM+XG4gICAgICAgICAgICA8cD48Y29kZT5zd2FnZ2VyPC9jb2RlPiBhbmQgPGNvZGU+b3BlbmFwaTwvY29kZT4gZmllbGRzIGNhbm5vdCBiZSBwcmVzZW50IGluIHRoZSBzYW1lIFN3YWdnZXIgb3IgT3BlbkFQSSBkZWZpbml0aW9uLiBQbGVhc2UgcmVtb3ZlIG9uZSBvZiB0aGUgZmllbGRzLjwvcD5cbiAgICAgICAgICAgIDxwPlN1cHBvcnRlZCB2ZXJzaW9uIGZpZWxkcyBhcmUgPGNvZGU+c3dhZ2dlcjoge1wiXFxcIjIuMFxcXCJcIn08L2NvZGU+IGFuZCB0aG9zZSB0aGF0IG1hdGNoIDxjb2RlPm9wZW5hcGk6IDMuMC5uPC9jb2RlPiAoZm9yIGV4YW1wbGUsIDxjb2RlPm9wZW5hcGk6IDMuMC40PC9jb2RlPikuPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIGlmKCFpc1N3YWdnZXIyICYmICFpc09BUzMpIHtcbiAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT1cInZlcnNpb24tcHJhZ21hXCI+XG4gICAgICAgIHthbHNvU2hvd31cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ2ZXJzaW9uLXByYWdtYV9fbWVzc2FnZSB2ZXJzaW9uLXByYWdtYV9fbWVzc2FnZS0tbWlzc2luZ1wiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8aDM+VW5hYmxlIHRvIHJlbmRlciB0aGlzIGRlZmluaXRpb248L2gzPlxuICAgICAgICAgICAgPHA+VGhlIHByb3ZpZGVkIGRlZmluaXRpb24gZG9lcyBub3Qgc3BlY2lmeSBhIHZhbGlkIHZlcnNpb24gZmllbGQuPC9wPlxuICAgICAgICAgICAgPHA+UGxlYXNlIGluZGljYXRlIGEgdmFsaWQgU3dhZ2dlciBvciBPcGVuQVBJIHZlcnNpb24gZmllbGQuIFN1cHBvcnRlZCB2ZXJzaW9uIGZpZWxkcyBhcmUgPGNvZGU+c3dhZ2dlcjoge1wiXFxcIjIuMFxcXCJcIn08L2NvZGU+IGFuZCB0aG9zZSB0aGF0IG1hdGNoIDxjb2RlPm9wZW5hcGk6IDMuMC5uPC9jb2RlPiAoZm9yIGV4YW1wbGUsIDxjb2RlPm9wZW5hcGk6IDMuMC40PC9jb2RlPikuPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIHJldHVybiA8ZGl2PnsgdGhpcy5wcm9wcy5jaGlsZHJlbiB9PC9kaXY+XG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmNvbnN0IFZlcnNpb25TdGFtcCA9ICh7IHZlcnNpb24gfSkgPT4ge1xuICByZXR1cm4gPHNtYWxsPjxwcmUgY2xhc3NOYW1lPVwidmVyc2lvblwiPiB7IHZlcnNpb24gfSA8L3ByZT48L3NtYWxsPlxufVxuXG5WZXJzaW9uU3RhbXAucHJvcFR5cGVzID0ge1xuICB2ZXJzaW9uOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWRcbn1cblxuZXhwb3J0IGRlZmF1bHQgVmVyc2lvblN0YW1wXG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5cbmNvbnN0IE9wZW5BUElWZXJzaW9uID0gKHsgb2FzVmVyc2lvbiB9KSA9PiAoXG4gIDxzbWFsbCBjbGFzc05hbWU9XCJ2ZXJzaW9uLXN0YW1wXCI+XG4gICAgPHByZSBjbGFzc05hbWU9XCJ2ZXJzaW9uXCI+T0FTIHtvYXNWZXJzaW9ufTwvcHJlPlxuICA8L3NtYWxsPlxuKVxuXG5PcGVuQVBJVmVyc2lvbi5wcm9wVHlwZXMgPSB7XG4gIG9hc1ZlcnNpb246IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZFxufVxuXG5leHBvcnQgZGVmYXVsdCBPcGVuQVBJVmVyc2lvblxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuZXhwb3J0IGNvbnN0IERlZXBMaW5rID0gKHsgZW5hYmxlZCwgcGF0aCwgdGV4dCB9KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPGEgY2xhc3NOYW1lPVwibm9zdHlsZVwiXG4gICAgICAgICAgb25DbGljaz17ZW5hYmxlZCA/IChlKSA9PiBlLnByZXZlbnREZWZhdWx0KCkgOiBudWxsfVxuICAgICAgICAgIGhyZWY9e2VuYWJsZWQgPyBgIy8ke3BhdGh9YCA6IG51bGx9PlxuICAgICAgICAgIDxzcGFuPnt0ZXh0fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIClcbn1cbkRlZXBMaW5rLnByb3BUeXBlcyA9IHtcbiAgZW5hYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIGlzU2hvd246IFByb3BUeXBlcy5ib29sLFxuICBwYXRoOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0ZXh0OiBQcm9wVHlwZXMubm9kZVxufVxuXG5leHBvcnQgZGVmYXVsdCBEZWVwTGlua1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5jb25zdCBTdmdBc3NldHMgPSAoKSA9PlxuICA8ZGl2PlxuICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zWGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIgY2xhc3NOYW1lPVwic3ZnLWFzc2V0c1wiPlxuICAgICAgPGRlZnM+XG4gICAgICAgIDxzeW1ib2wgdmlld0JveD1cIjAgMCAyMCAyMFwiIGlkPVwidW5sb2NrZWRcIj5cbiAgICAgICAgICA8cGF0aCBkPVwiTTE1LjggOEgxNFY1LjZDMTQgMi43MDMgMTIuNjY1IDEgMTAgMSA3LjMzNCAxIDYgMi43MDMgNiA1LjZWNmgydi0uODAxQzggMy43NTQgOC43OTcgMyAxMCAzYzEuMjAzIDAgMiAuNzU0IDIgMi4xOTlWOEg0Yy0uNTUzIDAtMSAuNjQ2LTEgMS4xOTlWMTdjMCAuNTQ5LjQyOCAxLjEzOS45NTEgMS4zMDdsMS4xOTcuMzg3QzUuNjcyIDE4Ljg2MSA2LjU1IDE5IDcuMSAxOWg1LjhjLjU0OSAwIDEuNDI4LS4xMzkgMS45NTEtLjMwN2wxLjE5Ni0uMzg3Yy41MjQtLjE2Ny45NTMtLjc1Ny45NTMtMS4zMDZWOS4xOTlDMTcgOC42NDYgMTYuMzUyIDggMTUuOCA4elwiPjwvcGF0aD5cbiAgICAgICAgPC9zeW1ib2w+XG5cbiAgICAgICAgPHN5bWJvbCB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgaWQ9XCJsb2NrZWRcIj5cbiAgICAgICAgICA8cGF0aCBkPVwiTTE1LjggOEgxNFY1LjZDMTQgMi43MDMgMTIuNjY1IDEgMTAgMSA3LjMzNCAxIDYgMi43MDMgNiA1LjZWOEg0Yy0uNTUzIDAtMSAuNjQ2LTEgMS4xOTlWMTdjMCAuNTQ5LjQyOCAxLjEzOS45NTEgMS4zMDdsMS4xOTcuMzg3QzUuNjcyIDE4Ljg2MSA2LjU1IDE5IDcuMSAxOWg1LjhjLjU0OSAwIDEuNDI4LS4xMzkgMS45NTEtLjMwN2wxLjE5Ni0uMzg3Yy41MjQtLjE2Ny45NTMtLjc1Ny45NTMtMS4zMDZWOS4xOTlDMTcgOC42NDYgMTYuMzUyIDggMTUuOCA4ek0xMiA4SDhWNS4xOTlDOCAzLjc1NCA4Ljc5NyAzIDEwIDNjMS4yMDMgMCAyIC43NTQgMiAyLjE5OVY4elwiLz5cbiAgICAgICAgPC9zeW1ib2w+XG5cbiAgICAgICAgPHN5bWJvbCB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgaWQ9XCJjbG9zZVwiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNMTQuMzQ4IDE0Ljg0OWMtLjQ2OS40NjktMS4yMjkuNDY5LTEuNjk3IDBMMTAgMTEuODE5bC0yLjY1MSAzLjAyOWMtLjQ2OS40NjktMS4yMjkuNDY5LTEuNjk3IDAtLjQ2OS0uNDY5LS40NjktMS4yMjkgMC0xLjY5N2wyLjc1OC0zLjE1LTIuNzU5LTMuMTUyYy0uNDY5LS40NjktLjQ2OS0xLjIyOCAwLTEuNjk3LjQ2OS0uNDY5IDEuMjI4LS40NjkgMS42OTcgMEwxMCA4LjE4M2wyLjY1MS0zLjAzMWMuNDY5LS40NjkgMS4yMjgtLjQ2OSAxLjY5NyAwIC40NjkuNDY5LjQ2OSAxLjIyOSAwIDEuNjk3bC0yLjc1OCAzLjE1MiAyLjc1OCAzLjE1Yy40NjkuNDY5LjQ2OSAxLjIyOSAwIDEuNjk4elwiLz5cbiAgICAgICAgPC9zeW1ib2w+XG5cbiAgICAgICAgPHN5bWJvbCB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgaWQ9XCJsYXJnZS1hcnJvd1wiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNMTMuMjUgMTBMNi4xMDkgMi41OGMtLjI2OC0uMjctLjI2OC0uNzA3IDAtLjk3OS4yNjgtLjI3LjcwMS0uMjcuOTY5IDBsNy44MyA3LjkwOGMuMjY4LjI3MS4yNjguNzA5IDAgLjk3OWwtNy44MyA3LjkwOGMtLjI2OC4yNzEtLjcwMS4yNy0uOTY5IDAtLjI2OC0uMjY5LS4yNjgtLjcwNyAwLS45NzlMMTMuMjUgMTB6XCIvPlxuICAgICAgICA8L3N5bWJvbD5cblxuICAgICAgICA8c3ltYm9sIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBpZD1cImxhcmdlLWFycm93LWRvd25cIj5cbiAgICAgICAgICA8cGF0aCBkPVwiTTE3LjQxOCA2LjEwOWMuMjcyLS4yNjguNzA5LS4yNjguOTc5IDBzLjI3MS43MDEgMCAuOTY5bC03LjkwOCA3LjgzYy0uMjcuMjY4LS43MDcuMjY4LS45NzkgMGwtNy45MDgtNy44M2MtLjI3LS4yNjgtLjI3LS43MDEgMC0uOTY5LjI3MS0uMjY4LjcwOS0uMjY4Ljk3OSAwTDEwIDEzLjI1bDcuNDE4LTcuMTQxelwiLz5cbiAgICAgICAgPC9zeW1ib2w+XG5cbiAgICAgICAgPHN5bWJvbCB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgaWQ9XCJsYXJnZS1hcnJvdy11cFwiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNIDE3LjQxOCAxNC45MDggQyAxNy42OSAxNS4xNzYgMTguMTI3IDE1LjE3NiAxOC4zOTcgMTQuOTA4IEMgMTguNjY3IDE0LjY0IDE4LjY2OCAxNC4yMDcgMTguMzk3IDEzLjkzOSBMIDEwLjQ4OSA2LjEwOSBDIDEwLjIxOSA1Ljg0MSA5Ljc4MiA1Ljg0MSA5LjUxIDYuMTA5IEwgMS42MDIgMTMuOTM5IEMgMS4zMzIgMTQuMjA3IDEuMzMyIDE0LjY0IDEuNjAyIDE0LjkwOCBDIDEuODczIDE1LjE3NiAyLjMxMSAxNS4xNzYgMi41ODEgMTQuOTA4IEwgMTAgNy43NjcgTCAxNy40MTggMTQuOTA4IFpcIi8+XG4gICAgICAgIDwvc3ltYm9sPlxuXG4gICAgICAgIDxzeW1ib2wgdmlld0JveD1cIjAgMCAyNCAyNFwiIGlkPVwianVtcC10b1wiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNMTkgN3Y0SDUuODNsMy41OC0zLjU5TDggNmwtNiA2IDYgNiAxLjQxLTEuNDFMNS44MyAxM0gyMVY3elwiLz5cbiAgICAgICAgPC9zeW1ib2w+XG5cbiAgICAgICAgPHN5bWJvbCB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgaWQ9XCJleHBhbmRcIj5cbiAgICAgICAgICA8cGF0aCBkPVwiTTEwIDE4aDR2LTJoLTR2MnpNMyA2djJoMThWNkgzem0zIDdoMTJ2LTJINnYyelwiLz5cbiAgICAgICAgPC9zeW1ib2w+XG5cbiAgICAgICAgPHN5bWJvbCB2aWV3Qm94PVwiMCAwIDE1IDE2XCIgaWQ9XCJjb3B5XCI+XG4gICAgICAgICAgPGcgdHJhbnNmb3JtPSd0cmFuc2xhdGUoMiwgLTEpJz5cbiAgICAgICAgICAgIDxwYXRoIGZpbGw9JyNmZmZmZmYnIGZpbGxSdWxlPSdldmVub2RkJyBkPSdNMiAxM2g0djFIMnYtMXptNS02SDJ2MWg1Vjd6bTIgM1Y4bC0zIDMgMyAzdi0yaDV2LTJIOXpNNC41IDlIMnYxaDIuNVY5ek0yIDEyaDIuNXYtMUgydjF6bTkgMWgxdjJjLS4wMi4yOC0uMTEuNTItLjMuNy0uMTkuMTgtLjQyLjI4LS43LjNIMWMtLjU1IDAtMS0uNDUtMS0xVjRjMC0uNTUuNDUtMSAxLTFoM2MwLTEuMTEuODktMiAyLTIgMS4xMSAwIDIgLjg5IDIgMmgzYy41NSAwIDEgLjQ1IDEgMXY1aC0xVjZIMXY5aDEwdi0yek0yIDVoOGMwLS41NS0uNDUtMS0xLTFIOGMtLjU1IDAtMS0uNDUtMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxLS40NSAxLTEgMUgzYy0uNTUgMC0xIC40NS0xIDF6Jz48L3BhdGg+XG4gICAgICAgICAgPC9nPlxuICAgICAgICA8L3N5bWJvbD5cblxuICAgICAgPC9kZWZzPlxuICAgIDwvc3ZnPlxuICA8L2Rpdj5cblxuZXhwb3J0IGRlZmF1bHQgU3ZnQXNzZXRzXG4iLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcInJlbWFya2FibGVcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZW1hcmthYmxlL2xpbmtpZnlcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJkb21wdXJpZnlcIik7IiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCB7IFJlbWFya2FibGUgfSBmcm9tIFwicmVtYXJrYWJsZVwiXG5pbXBvcnQgeyBsaW5raWZ5IH0gZnJvbSBcInJlbWFya2FibGUvbGlua2lmeVwiXG5pbXBvcnQgRG9tUHVyaWZ5IGZyb20gXCJkb21wdXJpZnlcIlxuaW1wb3J0IGN4IGZyb20gXCJjbGFzc25hbWVzXCJcblxuaWYgKERvbVB1cmlmeS5hZGRIb29rKSB7XG4gIERvbVB1cmlmeS5hZGRIb29rKFwiYmVmb3JlU2FuaXRpemVFbGVtZW50c1wiLCBmdW5jdGlvbiAoY3VycmVudCwgKSB7XG4gICAgLy8gQXR0YWNoIHNhZmUgYHJlbGAgdmFsdWVzIHRvIGFsbCBlbGVtZW50cyB0aGF0IGNvbnRhaW4gYW4gYGhyZWZgLFxuICAgIC8vIGkuZS4gYWxsIGFuY2hvcnMgdGhhdCBhcmUgbGlua3MuXG4gICAgLy8gV2UgX2NvdWxkXyBqdXN0IGxvb2sgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG5vbi1zZWxmIHRhcmdldCxcbiAgICAvLyBidXQgYXBwbHlpbmcgaXQgbW9yZSBicm9hZGx5IHNob3VsZG4ndCBodXJ0IGFueXRoaW5nLCBhbmQgaXMgc2FmZXIuXG4gICAgaWYgKGN1cnJlbnQuaHJlZikge1xuICAgICAgY3VycmVudC5zZXRBdHRyaWJ1dGUoXCJyZWxcIiwgXCJub29wZW5lciBub3JlZmVycmVyXCIpXG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50XG4gIH0pXG59XG5cbmZ1bmN0aW9uIE1hcmtkb3duKHsgc291cmNlLCBjbGFzc05hbWUgPSBcIlwiLCBnZXRDb25maWdzID0gKCkgPT4gKHsgdXNlVW5zYWZlTWFya2Rvd246IGZhbHNlIH0pIH0pIHtcbiAgaWYgKHR5cGVvZiBzb3VyY2UgIT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgbWQgPSBuZXcgUmVtYXJrYWJsZSh7XG4gICAgaHRtbDogdHJ1ZSxcbiAgICB0eXBvZ3JhcGhlcjogdHJ1ZSxcbiAgICBicmVha3M6IHRydWUsXG4gICAgbGlua1RhcmdldDogXCJfYmxhbmtcIlxuICB9KS51c2UobGlua2lmeSlcblxuICBtZC5jb3JlLnJ1bGVyLmRpc2FibGUoW1wicmVwbGFjZW1lbnRzXCIsIFwic21hcnRxdW90ZXNcIl0pXG5cbiAgY29uc3QgeyB1c2VVbnNhZmVNYXJrZG93biB9ID0gZ2V0Q29uZmlncygpXG4gIGNvbnN0IGh0bWwgPSBtZC5yZW5kZXIoc291cmNlKVxuICBjb25zdCBzYW5pdGl6ZWQgPSBzYW5pdGl6ZXIoaHRtbCwgeyB1c2VVbnNhZmVNYXJrZG93biB9KVxuXG4gIGlmICghc291cmNlIHx8ICFodG1sIHx8ICFzYW5pdGl6ZWQpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17Y3goY2xhc3NOYW1lLCBcIm1hcmtkb3duXCIpfSBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IHNhbml0aXplZCB9fT48L2Rpdj5cbiAgKVxufVxuXG5NYXJrZG93bi5wcm9wVHlwZXMgPSB7XG4gIHNvdXJjZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGdldENvbmZpZ3M6IFByb3BUeXBlcy5mdW5jLFxufVxuXG5leHBvcnQgZGVmYXVsdCBNYXJrZG93blxuXG5leHBvcnQgZnVuY3Rpb24gc2FuaXRpemVyKHN0ciwgeyB1c2VVbnNhZmVNYXJrZG93biA9IGZhbHNlIH0gPSB7fSkge1xuICBjb25zdCBBTExPV19EQVRBX0FUVFIgPSB1c2VVbnNhZmVNYXJrZG93blxuICBjb25zdCBGT1JCSURfQVRUUiA9IHVzZVVuc2FmZU1hcmtkb3duID8gW10gOiBbXCJzdHlsZVwiLCBcImNsYXNzXCJdXG5cbiAgaWYgKHVzZVVuc2FmZU1hcmtkb3duICYmICFzYW5pdGl6ZXIuaGFzV2FybmVkQWJvdXREZXByZWNhdGlvbikge1xuICAgIGNvbnNvbGUud2FybihgdXNlVW5zYWZlTWFya2Rvd24gZGlzcGxheSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBpcyBkZXByZWNhdGVkIHNpbmNlID4zLjI2LjAgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB2NC4wLjAuYClcbiAgICBzYW5pdGl6ZXIuaGFzV2FybmVkQWJvdXREZXByZWNhdGlvbiA9IHRydWVcbiAgfVxuXG4gIHJldHVybiBEb21QdXJpZnkuc2FuaXRpemUoc3RyLCB7XG4gICAgQUREX0FUVFI6IFtcInRhcmdldFwiXSxcbiAgICBGT1JCSURfVEFHUzogW1wic3R5bGVcIiwgXCJmb3JtXCJdLFxuICAgIEFMTE9XX0RBVEFfQVRUUixcbiAgICBGT1JCSURfQVRUUixcbiAgfSlcbn1cbnNhbml0aXplci5oYXNXYXJuZWRBYm91dERlcHJlY2F0aW9uID0gZmFsc2VcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJhc2VMYXlvdXQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGVyclNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGVyckFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgb2FzM1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG9hczNBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgZXJyU2VsZWN0b3JzLCBzcGVjU2VsZWN0b3JzLCBnZXRDb21wb25lbnQgfSA9IHRoaXMucHJvcHNcblxuICAgIGNvbnN0IFN2Z0Fzc2V0cyA9IGdldENvbXBvbmVudChcIlN2Z0Fzc2V0c1wiKVxuICAgIGNvbnN0IEluZm9Db250YWluZXIgPSBnZXRDb21wb25lbnQoXCJJbmZvQ29udGFpbmVyXCIsIHRydWUpXG4gICAgY29uc3QgVmVyc2lvblByYWdtYUZpbHRlciA9IGdldENvbXBvbmVudChcIlZlcnNpb25QcmFnbWFGaWx0ZXJcIilcbiAgICBjb25zdCBPcGVyYXRpb25zID0gZ2V0Q29tcG9uZW50KFwib3BlcmF0aW9uc1wiLCB0cnVlKVxuICAgIGNvbnN0IE1vZGVscyA9IGdldENvbXBvbmVudChcIk1vZGVsc1wiLCB0cnVlKVxuICAgIGNvbnN0IFdlYmhvb2tzID0gZ2V0Q29tcG9uZW50KFwiV2ViaG9va3NcIiwgdHJ1ZSlcbiAgICBjb25zdCBSb3cgPSBnZXRDb21wb25lbnQoXCJSb3dcIilcbiAgICBjb25zdCBDb2wgPSBnZXRDb21wb25lbnQoXCJDb2xcIilcbiAgICBjb25zdCBFcnJvcnMgPSBnZXRDb21wb25lbnQoXCJlcnJvcnNcIiwgdHJ1ZSlcblxuICAgIGNvbnN0IFNlcnZlcnNDb250YWluZXIgPSBnZXRDb21wb25lbnQoXCJTZXJ2ZXJzQ29udGFpbmVyXCIsIHRydWUpXG4gICAgY29uc3QgU2NoZW1lc0NvbnRhaW5lciA9IGdldENvbXBvbmVudChcIlNjaGVtZXNDb250YWluZXJcIiwgdHJ1ZSlcbiAgICBjb25zdCBBdXRob3JpemVCdG5Db250YWluZXIgPSBnZXRDb21wb25lbnQoXCJBdXRob3JpemVCdG5Db250YWluZXJcIiwgdHJ1ZSlcbiAgICBjb25zdCBGaWx0ZXJDb250YWluZXIgPSBnZXRDb21wb25lbnQoXCJGaWx0ZXJDb250YWluZXJcIiwgdHJ1ZSlcbiAgICBjb25zdCBpc1N3YWdnZXIyID0gc3BlY1NlbGVjdG9ycy5pc1N3YWdnZXIyKClcbiAgICBjb25zdCBpc09BUzMgPSBzcGVjU2VsZWN0b3JzLmlzT0FTMygpXG4gICAgY29uc3QgaXNPQVMzMSA9IHNwZWNTZWxlY3RvcnMuaXNPQVMzMSgpXG5cbiAgICBjb25zdCBpc1NwZWNFbXB0eSA9ICFzcGVjU2VsZWN0b3JzLnNwZWNTdHIoKVxuXG4gICAgY29uc3QgbG9hZGluZ1N0YXR1cyA9IHNwZWNTZWxlY3RvcnMubG9hZGluZ1N0YXR1cygpXG5cbiAgICBsZXQgbG9hZGluZ01lc3NhZ2UgPSBudWxsXG5cbiAgICBpZiAobG9hZGluZ1N0YXR1cyA9PT0gXCJsb2FkaW5nXCIpIHtcbiAgICAgIGxvYWRpbmdNZXNzYWdlID0gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxvYWRpbmctY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKGxvYWRpbmdTdGF0dXMgPT09IFwiZmFpbGVkXCIpIHtcbiAgICAgIGxvYWRpbmdNZXNzYWdlID0gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxvYWRpbmctY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwidGl0bGVcIj5GYWlsZWQgdG8gbG9hZCBBUEkgZGVmaW5pdGlvbi48L2g0PlxuICAgICAgICAgICAgPEVycm9ycyAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAobG9hZGluZ1N0YXR1cyA9PT0gXCJmYWlsZWRDb25maWdcIikge1xuICAgICAgY29uc3QgbGFzdEVyciA9IGVyclNlbGVjdG9ycy5sYXN0RXJyb3IoKVxuICAgICAgY29uc3QgbGFzdEVyck1zZyA9IGxhc3RFcnIgPyBsYXN0RXJyLmdldChcIm1lc3NhZ2VcIikgOiBcIlwiXG4gICAgICBsb2FkaW5nTWVzc2FnZSA9IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvIGZhaWxlZC1jb25maWdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxvYWRpbmctY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwidGl0bGVcIj5GYWlsZWQgdG8gbG9hZCByZW1vdGUgY29uZmlndXJhdGlvbi48L2g0PlxuICAgICAgICAgICAgPHA+e2xhc3RFcnJNc2d9PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAoIWxvYWRpbmdNZXNzYWdlICYmIGlzU3BlY0VtcHR5KSB7XG4gICAgICBsb2FkaW5nTWVzc2FnZSA9IDxoND5ObyBBUEkgZGVmaW5pdGlvbiBwcm92aWRlZC48L2g0PlxuICAgIH1cblxuICAgIGlmIChsb2FkaW5nTWVzc2FnZSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzd2FnZ2VyLXVpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2FkaW5nLWNvbnRhaW5lclwiPntsb2FkaW5nTWVzc2FnZX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3Qgc2VydmVycyA9IHNwZWNTZWxlY3RvcnMuc2VydmVycygpXG4gICAgY29uc3Qgc2NoZW1lcyA9IHNwZWNTZWxlY3RvcnMuc2NoZW1lcygpXG5cbiAgICBjb25zdCBoYXNTZXJ2ZXJzID0gc2VydmVycyAmJiBzZXJ2ZXJzLnNpemVcbiAgICBjb25zdCBoYXNTY2hlbWVzID0gc2NoZW1lcyAmJiBzY2hlbWVzLnNpemVcbiAgICBjb25zdCBoYXNTZWN1cml0eURlZmluaXRpb25zID0gISFzcGVjU2VsZWN0b3JzLnNlY3VyaXR5RGVmaW5pdGlvbnMoKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3dhZ2dlci11aVwiPlxuICAgICAgICA8U3ZnQXNzZXRzIC8+XG4gICAgICAgIDxWZXJzaW9uUHJhZ21hRmlsdGVyXG4gICAgICAgICAgaXNTd2FnZ2VyMj17aXNTd2FnZ2VyMn1cbiAgICAgICAgICBpc09BUzM9e2lzT0FTM31cbiAgICAgICAgICBhbHNvU2hvdz17PEVycm9ycyAvPn1cbiAgICAgICAgPlxuICAgICAgICAgIDxFcnJvcnMgLz5cbiAgICAgICAgICA8Um93IGNsYXNzTmFtZT1cImluZm9ybWF0aW9uLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPENvbCBtb2JpbGU9ezEyfT5cbiAgICAgICAgICAgICAgPEluZm9Db250YWluZXIgLz5cbiAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDwvUm93PlxuXG4gICAgICAgICAge2hhc1NlcnZlcnMgfHwgaGFzU2NoZW1lcyB8fCBoYXNTZWN1cml0eURlZmluaXRpb25zID8gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzY2hlbWUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDxDb2wgY2xhc3NOYW1lPVwic2NoZW1lcyB3cmFwcGVyXCIgbW9iaWxlPXsxMn0+XG4gICAgICAgICAgICAgICAge2hhc1NlcnZlcnMgfHwgaGFzU2NoZW1lcyA/IChcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2NoZW1lcy1zZXJ2ZXItY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIHtoYXNTZXJ2ZXJzID8gPFNlcnZlcnNDb250YWluZXIgLz4gOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICB7aGFzU2NoZW1lcyA/IDxTY2hlbWVzQ29udGFpbmVyIC8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIHtoYXNTZWN1cml0eURlZmluaXRpb25zID8gPEF1dGhvcml6ZUJ0bkNvbnRhaW5lciAvPiA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAgICA8RmlsdGVyQ29udGFpbmVyIC8+XG5cbiAgICAgICAgICA8Um93PlxuICAgICAgICAgICAgPENvbCBtb2JpbGU9ezEyfSBkZXNrdG9wPXsxMn0+XG4gICAgICAgICAgICAgIDxPcGVyYXRpb25zIC8+XG4gICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8L1Jvdz5cblxuICAgICAgICAgIHtpc09BUzMxICYmIChcbiAgICAgICAgICAgIDxSb3cgY2xhc3NOYW1lPVwid2ViaG9va3MtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDxDb2wgbW9iaWxlPXsxMn0gZGVza3RvcD17MTJ9PlxuICAgICAgICAgICAgICAgIDxXZWJob29rcyAvPlxuICAgICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICAgIDwvUm93PlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICA8Um93PlxuICAgICAgICAgICAgPENvbCBtb2JpbGU9ezEyfSBkZXNrdG9wPXsxMn0+XG4gICAgICAgICAgICAgIDxNb2RlbHMgLz5cbiAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDwvUm93PlxuICAgICAgICA8L1ZlcnNpb25QcmFnbWFGaWx0ZXI+XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBBcHAgZnJvbSBcImNvcmUvY29tcG9uZW50cy9hcHBcIlxuaW1wb3J0IEF1dGhvcml6YXRpb25Qb3B1cCBmcm9tIFwiY29yZS9jb21wb25lbnRzL2F1dGgvYXV0aG9yaXphdGlvbi1wb3B1cFwiXG5pbXBvcnQgQXV0aG9yaXplQnRuIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvYXV0aC9hdXRob3JpemUtYnRuXCJcbmltcG9ydCBBdXRob3JpemVCdG5Db250YWluZXIgZnJvbSBcImNvcmUvY29udGFpbmVycy9hdXRob3JpemUtYnRuXCJcbmltcG9ydCBBdXRob3JpemVPcGVyYXRpb25CdG4gZnJvbSBcImNvcmUvY29tcG9uZW50cy9hdXRoL2F1dGhvcml6ZS1vcGVyYXRpb24tYnRuXCJcbmltcG9ydCBBdXRocyBmcm9tIFwiY29yZS9jb21wb25lbnRzL2F1dGgvYXV0aHNcIlxuaW1wb3J0IEF1dGhJdGVtIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvYXV0aC9hdXRoLWl0ZW1cIlxuaW1wb3J0IEF1dGhFcnJvciBmcm9tIFwiY29yZS9jb21wb25lbnRzL2F1dGgvZXJyb3JcIlxuaW1wb3J0IEFwaUtleUF1dGggZnJvbSBcImNvcmUvY29tcG9uZW50cy9hdXRoL2FwaS1rZXktYXV0aFwiXG5pbXBvcnQgQmFzaWNBdXRoIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvYXV0aC9iYXNpYy1hdXRoXCJcbmltcG9ydCBFeGFtcGxlIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvZXhhbXBsZVwiXG5pbXBvcnQgRXhhbXBsZXNTZWxlY3QgZnJvbSBcImNvcmUvY29tcG9uZW50cy9leGFtcGxlcy1zZWxlY3RcIlxuaW1wb3J0IEV4YW1wbGVzU2VsZWN0VmFsdWVSZXRhaW5lciBmcm9tIFwiY29yZS9jb21wb25lbnRzL2V4YW1wbGVzLXNlbGVjdC12YWx1ZS1yZXRhaW5lclwiXG5pbXBvcnQgT2F1dGgyIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvYXV0aC9vYXV0aDJcIlxuaW1wb3J0IENsZWFyIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvY2xlYXJcIlxuaW1wb3J0IExpdmVSZXNwb25zZSBmcm9tIFwiY29yZS9jb21wb25lbnRzL2xpdmUtcmVzcG9uc2VcIlxuaW1wb3J0IE9ubGluZVZhbGlkYXRvckJhZGdlIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvb25saW5lLXZhbGlkYXRvci1iYWRnZVwiXG5pbXBvcnQgT3BlcmF0aW9ucyBmcm9tIFwiY29yZS9jb21wb25lbnRzL29wZXJhdGlvbnNcIlxuaW1wb3J0IE9wZXJhdGlvblRhZyBmcm9tIFwiY29yZS9jb21wb25lbnRzL29wZXJhdGlvbi10YWdcIlxuaW1wb3J0IE9wZXJhdGlvbiBmcm9tIFwiY29yZS9jb21wb25lbnRzL29wZXJhdGlvblwiXG5pbXBvcnQgT3BlcmF0aW9uQ29udGFpbmVyIGZyb20gXCJjb3JlL2NvbnRhaW5lcnMvT3BlcmF0aW9uQ29udGFpbmVyXCJcbmltcG9ydCBPcGVyYXRpb25TdW1tYXJ5IGZyb20gXCJjb3JlL2NvbXBvbmVudHMvb3BlcmF0aW9uLXN1bW1hcnlcIlxuaW1wb3J0IE9wZXJhdGlvblN1bW1hcnlNZXRob2QgZnJvbSBcImNvcmUvY29tcG9uZW50cy9vcGVyYXRpb24tc3VtbWFyeS1tZXRob2RcIlxuaW1wb3J0IE9wZXJhdGlvblN1bW1hcnlQYXRoIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvb3BlcmF0aW9uLXN1bW1hcnktcGF0aFwiXG5pbXBvcnQgT3BlcmF0aW9uRXh0IGZyb20gXCJjb3JlL2NvbXBvbmVudHMvb3BlcmF0aW9uLWV4dGVuc2lvbnNcIlxuaW1wb3J0IE9wZXJhdGlvbkV4dFJvdyBmcm9tIFwiY29yZS9jb21wb25lbnRzL29wZXJhdGlvbi1leHRlbnNpb24tcm93XCJcbmltcG9ydCBSZXNwb25zZXMgZnJvbSBcImNvcmUvY29tcG9uZW50cy9yZXNwb25zZXNcIlxuaW1wb3J0IFJlc3BvbnNlIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvcmVzcG9uc2VcIlxuaW1wb3J0IFJlc3BvbnNlRXh0ZW5zaW9uIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvcmVzcG9uc2UtZXh0ZW5zaW9uXCJcbmltcG9ydCBSZXNwb25zZUJvZHkgZnJvbSBcImNvcmUvY29tcG9uZW50cy9yZXNwb25zZS1ib2R5XCJcbmltcG9ydCB7IFBhcmFtZXRlcnMgfSBmcm9tIFwiY29yZS9jb21wb25lbnRzL3BhcmFtZXRlcnNcIlxuaW1wb3J0IFBhcmFtZXRlckV4dCBmcm9tIFwiY29yZS9jb21wb25lbnRzL3BhcmFtZXRlci1leHRlbnNpb25cIlxuaW1wb3J0IFBhcmFtZXRlckluY2x1ZGVFbXB0eSBmcm9tIFwiY29yZS9jb21wb25lbnRzL3BhcmFtZXRlci1pbmNsdWRlLWVtcHR5XCJcbmltcG9ydCBQYXJhbWV0ZXJSb3cgZnJvbSBcImNvcmUvY29tcG9uZW50cy9wYXJhbWV0ZXItcm93XCJcbmltcG9ydCBFeGVjdXRlIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvZXhlY3V0ZVwiXG5pbXBvcnQgSGVhZGVycyBmcm9tIFwiY29yZS9jb21wb25lbnRzL2hlYWRlcnNcIlxuaW1wb3J0IEVycm9ycyBmcm9tIFwiY29yZS9jb21wb25lbnRzL2Vycm9yc1wiXG5pbXBvcnQgQ29udGVudFR5cGUgZnJvbSBcImNvcmUvY29tcG9uZW50cy9jb250ZW50LXR5cGVcIlxuaW1wb3J0IE92ZXJ2aWV3IGZyb20gXCJjb3JlL2NvbXBvbmVudHMvb3ZlcnZpZXdcIlxuaW1wb3J0IEluaXRpYWxpemVkSW5wdXQgZnJvbSBcImNvcmUvY29tcG9uZW50cy9pbml0aWFsaXplZC1pbnB1dFwiXG5pbXBvcnQgSW5mbywgeyBJbmZvVXJsLCBJbmZvQmFzZVBhdGggfSBmcm9tIFwiY29yZS9jb21wb25lbnRzL2luZm9cIlxuaW1wb3J0IEluZm9Db250YWluZXIgZnJvbSBcImNvcmUvY29udGFpbmVycy9pbmZvXCJcbmltcG9ydCBDb250YWN0IGZyb20gXCJjb3JlL2NvbXBvbmVudHMvY29udGFjdFwiXG5pbXBvcnQgTGljZW5zZSBmcm9tIFwiY29yZS9jb21wb25lbnRzL2xpY2Vuc2VcIlxuaW1wb3J0IEp1bXBUb1BhdGggZnJvbSBcImNvcmUvY29tcG9uZW50cy9qdW1wLXRvLXBhdGhcIlxuaW1wb3J0IENvcHlUb0NsaXBib2FyZEJ0biBmcm9tIFwiY29yZS9jb21wb25lbnRzL2NvcHktdG8tY2xpcGJvYXJkLWJ0blwiXG5pbXBvcnQgRm9vdGVyIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvZm9vdGVyXCJcbmltcG9ydCBGaWx0ZXJDb250YWluZXIgZnJvbSBcImNvcmUvY29udGFpbmVycy9maWx0ZXJcIlxuaW1wb3J0IFBhcmFtQm9keSBmcm9tIFwiY29yZS9jb21wb25lbnRzL3BhcmFtLWJvZHlcIlxuaW1wb3J0IEN1cmwgZnJvbSBcImNvcmUvY29tcG9uZW50cy9jdXJsXCJcbmltcG9ydCBQcm9wZXJ0eSBmcm9tIFwiY29yZS9jb21wb25lbnRzL3Byb3BlcnR5XCJcbmltcG9ydCBUcnlJdE91dEJ1dHRvbiBmcm9tIFwiY29yZS9jb21wb25lbnRzL3RyeS1pdC1vdXQtYnV0dG9uXCJcbmltcG9ydCBWZXJzaW9uUHJhZ21hRmlsdGVyIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvdmVyc2lvbi1wcmFnbWEtZmlsdGVyXCJcbmltcG9ydCBWZXJzaW9uU3RhbXAgZnJvbSBcImNvcmUvY29tcG9uZW50cy92ZXJzaW9uLXN0YW1wXCJcbmltcG9ydCBPcGVuQVBJVmVyc2lvbiBmcm9tIFwiY29yZS9jb21wb25lbnRzL29wZW5hcGktdmVyc2lvblwiXG5pbXBvcnQgRGVlcExpbmsgZnJvbSBcImNvcmUvY29tcG9uZW50cy9kZWVwLWxpbmtcIlxuaW1wb3J0IFN2Z0Fzc2V0cyBmcm9tIFwiY29yZS9jb21wb25lbnRzL3N2Zy1hc3NldHNcIlxuaW1wb3J0IE1hcmtkb3duIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvcHJvdmlkZXJzL21hcmtkb3duXCJcbmltcG9ydCBCYXNlTGF5b3V0IGZyb20gXCJjb3JlL2NvbXBvbmVudHMvbGF5b3V0cy9iYXNlXCJcblxuY29uc3QgQ29yZUNvbXBvbmVudHNQbHVnaW4gPSAoKSA9PiAoe1xuICBjb21wb25lbnRzOiB7XG4gICAgQXBwLFxuICAgIGF1dGhvcml6YXRpb25Qb3B1cDogQXV0aG9yaXphdGlvblBvcHVwLFxuICAgIGF1dGhvcml6ZUJ0bjogQXV0aG9yaXplQnRuLFxuICAgIEF1dGhvcml6ZUJ0bkNvbnRhaW5lcixcbiAgICBhdXRob3JpemVPcGVyYXRpb25CdG46IEF1dGhvcml6ZU9wZXJhdGlvbkJ0bixcbiAgICBhdXRoczogQXV0aHMsXG4gICAgQXV0aEl0ZW06IEF1dGhJdGVtLFxuICAgIGF1dGhFcnJvcjogQXV0aEVycm9yLFxuICAgIG9hdXRoMjogT2F1dGgyLFxuICAgIGFwaUtleUF1dGg6IEFwaUtleUF1dGgsXG4gICAgYmFzaWNBdXRoOiBCYXNpY0F1dGgsXG4gICAgY2xlYXI6IENsZWFyLFxuICAgIGxpdmVSZXNwb25zZTogTGl2ZVJlc3BvbnNlLFxuICAgIEluaXRpYWxpemVkSW5wdXQsXG4gICAgaW5mbzogSW5mbyxcbiAgICBJbmZvQ29udGFpbmVyLFxuICAgIEluZm9VcmwsXG4gICAgSW5mb0Jhc2VQYXRoLFxuICAgIENvbnRhY3QsXG4gICAgTGljZW5zZSxcbiAgICBKdW1wVG9QYXRoLFxuICAgIENvcHlUb0NsaXBib2FyZEJ0bixcbiAgICBvbmxpbmVWYWxpZGF0b3JCYWRnZTogT25saW5lVmFsaWRhdG9yQmFkZ2UsXG4gICAgb3BlcmF0aW9uczogT3BlcmF0aW9ucyxcbiAgICBvcGVyYXRpb246IE9wZXJhdGlvbixcbiAgICBPcGVyYXRpb25TdW1tYXJ5LFxuICAgIE9wZXJhdGlvblN1bW1hcnlNZXRob2QsXG4gICAgT3BlcmF0aW9uU3VtbWFyeVBhdGgsXG4gICAgcmVzcG9uc2VzOiBSZXNwb25zZXMsXG4gICAgcmVzcG9uc2U6IFJlc3BvbnNlLFxuICAgIFJlc3BvbnNlRXh0ZW5zaW9uOiBSZXNwb25zZUV4dGVuc2lvbixcbiAgICByZXNwb25zZUJvZHk6IFJlc3BvbnNlQm9keSxcbiAgICBwYXJhbWV0ZXJzOiBQYXJhbWV0ZXJzLFxuICAgIHBhcmFtZXRlclJvdzogUGFyYW1ldGVyUm93LFxuICAgIGV4ZWN1dGU6IEV4ZWN1dGUsXG4gICAgaGVhZGVyczogSGVhZGVycyxcbiAgICBlcnJvcnM6IEVycm9ycyxcbiAgICBjb250ZW50VHlwZTogQ29udGVudFR5cGUsXG4gICAgb3ZlcnZpZXc6IE92ZXJ2aWV3LFxuICAgIGZvb3RlcjogRm9vdGVyLFxuICAgIEZpbHRlckNvbnRhaW5lcixcbiAgICBQYXJhbUJvZHk6IFBhcmFtQm9keSxcbiAgICBjdXJsOiBDdXJsLFxuICAgIFByb3BlcnR5LFxuICAgIFRyeUl0T3V0QnV0dG9uLFxuICAgIE1hcmtkb3duLFxuICAgIEJhc2VMYXlvdXQsXG4gICAgVmVyc2lvblByYWdtYUZpbHRlcixcbiAgICBWZXJzaW9uU3RhbXAsXG4gICAgT3BlcmF0aW9uRXh0LFxuICAgIE9wZXJhdGlvbkV4dFJvdyxcbiAgICBQYXJhbWV0ZXJFeHQsXG4gICAgUGFyYW1ldGVySW5jbHVkZUVtcHR5LFxuICAgIE9wZXJhdGlvblRhZyxcbiAgICBPcGVyYXRpb25Db250YWluZXIsXG4gICAgT3BlbkFQSVZlcnNpb24sXG4gICAgRGVlcExpbmssXG4gICAgU3ZnQXNzZXRzLFxuICAgIEV4YW1wbGUsXG4gICAgRXhhbXBsZXNTZWxlY3QsXG4gICAgRXhhbXBsZXNTZWxlY3RWYWx1ZVJldGFpbmVyLFxuICB9LFxufSlcblxuZXhwb3J0IGRlZmF1bHQgQ29yZUNvbXBvbmVudHNQbHVnaW5cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCAqIGFzIExheW91dFV0aWxzIGZyb20gXCJjb3JlL2NvbXBvbmVudHMvbGF5b3V0LXV0aWxzXCJcblxuY29uc3QgRm9ybUNvbXBvbmVudHNQbHVnaW4gPSAoKSA9PiAoe1xuICBjb21wb25lbnRzOiB7IC4uLkxheW91dFV0aWxzIH0sXG59KVxuXG5leHBvcnQgZGVmYXVsdCBGb3JtQ29tcG9uZW50c1BsdWdpblxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IEF1dGhQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy9hdXRoL1wiXG5pbXBvcnQgQ29uZmlnc1BsdWdpbiBmcm9tIFwiY29yZS9wbHVnaW5zL2NvbmZpZ3NcIlxuaW1wb3J0IERlZXBMaW5raW5nUGx1Z2luIGZyb20gXCJjb3JlL3BsdWdpbnMvZGVlcC1saW5raW5nXCJcbmltcG9ydCBFcnJQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy9lcnJcIlxuaW1wb3J0IEZpbHRlclBsdWdpbiBmcm9tIFwiY29yZS9wbHVnaW5zL2ZpbHRlclwiXG5pbXBvcnQgSWNvbnNQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy9pY29uc1wiXG5pbXBvcnQgTGF5b3V0UGx1Z2luIGZyb20gXCJjb3JlL3BsdWdpbnMvbGF5b3V0XCJcbmltcG9ydCBMb2dzUGx1Z2luIGZyb20gXCJjb3JlL3BsdWdpbnMvbG9nc1wiXG5pbXBvcnQgT25Db21wbGV0ZVBsdWdpbiBmcm9tIFwiY29yZS9wbHVnaW5zL29uLWNvbXBsZXRlXCJcbmltcG9ydCBSZXF1ZXN0U25pcHBldHNQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy9yZXF1ZXN0LXNuaXBwZXRzXCJcbmltcG9ydCBKU09OU2NoZW1hNVBsdWdpbiBmcm9tIFwiY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTVcIlxuaW1wb3J0IEpTT05TY2hlbWE1U2FtcGxlc1BsdWdpbiBmcm9tIFwiY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTUtc2FtcGxlc1wiXG5pbXBvcnQgU3BlY1BsdWdpbiBmcm9tIFwiY29yZS9wbHVnaW5zL3NwZWNcIlxuaW1wb3J0IFN3YWdnZXJDbGllbnRQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy9zd2FnZ2VyLWNsaWVudFwiXG5pbXBvcnQgVXRpbFBsdWdpbiBmcm9tIFwiY29yZS9wbHVnaW5zL3V0aWxcIlxuaW1wb3J0IFZpZXdQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy92aWV3XCJcbmltcG9ydCBWaWV3TGVnYWN5UGx1Z2luIGZyb20gXCJjb3JlL3BsdWdpbnMvdmlldy1sZWdhY3lcIlxuaW1wb3J0IERvd25sb2FkVXJsUGx1Z2luIGZyb20gXCJjb3JlL3BsdWdpbnMvZG93bmxvYWQtdXJsXCJcbmltcG9ydCBTeW50YXhIaWdobGlnaHRpbmdQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy9zeW50YXgtaGlnaGxpZ2h0aW5nXCJcbmltcG9ydCBWZXJzaW9uc1BsdWdpbiBmcm9tIFwiY29yZS9wbHVnaW5zL3ZlcnNpb25zXCJcbmltcG9ydCBTYWZlUmVuZGVyUGx1Z2luIGZyb20gXCJjb3JlL3BsdWdpbnMvc2FmZS1yZW5kZXJcIlxuLy8gYWQtaG9jIHBsdWdpbnNcbmltcG9ydCBDb3JlQ29tcG9uZW50c1BsdWdpbiBmcm9tIFwiY29yZS9wcmVzZXRzL2Jhc2UvcGx1Z2lucy9jb3JlLWNvbXBvbmVudHNcIlxuaW1wb3J0IEZvcm1Db21wb25lbnRzUGx1Z2luIGZyb20gXCJjb3JlL3ByZXNldHMvYmFzZS9wbHVnaW5zL2Zvcm0tY29tcG9uZW50c1wiXG5cbmNvbnN0IEJhc2VQcmVzZXQgPSAoKSA9PiBbXG4gIENvbmZpZ3NQbHVnaW4sXG4gIFV0aWxQbHVnaW4sXG4gIExvZ3NQbHVnaW4sXG4gIFZpZXdQbHVnaW4sXG4gIFZpZXdMZWdhY3lQbHVnaW4sXG4gIFNwZWNQbHVnaW4sXG4gIEVyclBsdWdpbixcbiAgSWNvbnNQbHVnaW4sXG4gIExheW91dFBsdWdpbixcbiAgSlNPTlNjaGVtYTVQbHVnaW4sXG4gIEpTT05TY2hlbWE1U2FtcGxlc1BsdWdpbixcbiAgQ29yZUNvbXBvbmVudHNQbHVnaW4sXG4gIEZvcm1Db21wb25lbnRzUGx1Z2luLFxuICBTd2FnZ2VyQ2xpZW50UGx1Z2luLFxuICBBdXRoUGx1Z2luLFxuICBEb3dubG9hZFVybFBsdWdpbixcbiAgRGVlcExpbmtpbmdQbHVnaW4sXG4gIEZpbHRlclBsdWdpbixcbiAgT25Db21wbGV0ZVBsdWdpbixcbiAgUmVxdWVzdFNuaXBwZXRzUGx1Z2luLFxuICBTeW50YXhIaWdobGlnaHRpbmdQbHVnaW4sXG4gIFZlcnNpb25zUGx1Z2luLFxuICBTYWZlUmVuZGVyUGx1Z2luKCksXG5dXG5cbmV4cG9ydCBkZWZhdWx0IEJhc2VQcmVzZXRcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSBcInJlc2VsZWN0XCJcbmltcG9ydCBjb25zdGFudCBmcm9tIFwibG9kYXNoL2NvbnN0YW50XCJcbmltcG9ydCB7IHNwZWNKc29uV2l0aFJlc29sdmVkU3VidHJlZXMgfSBmcm9tIFwiLi4vLi4vc3BlYy9zZWxlY3RvcnNcIlxuaW1wb3J0IHsgTWFwIH0gZnJvbSBcImltbXV0YWJsZVwiXG5cbi8qKlxuICogSGVscGVyc1xuICovXG5cbmNvbnN0IG1hcCA9IE1hcCgpXG5cbmZ1bmN0aW9uIG9ubHlPQVMzKHNlbGVjdG9yKSB7XG4gIHJldHVybiAob3JpLCBzeXN0ZW0pID0+XG4gICAgKC4uLmFyZ3MpID0+IHtcbiAgICAgIGlmIChzeXN0ZW0uZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5pc09BUzMoKSkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBzZWxlY3RvciguLi5hcmdzKVxuICAgICAgICByZXR1cm4gdHlwZW9mIHJlc3VsdCA9PT0gXCJmdW5jdGlvblwiID8gcmVzdWx0KHN5c3RlbSkgOiByZXN1bHRcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBvcmkoLi4uYXJncylcbiAgICAgIH1cbiAgICB9XG59XG5cbmNvbnN0IG51bGxTZWxlY3RvciA9IGNvbnN0YW50KG51bGwpXG5cbmNvbnN0IE9BUzNOdWxsU2VsZWN0b3IgPSBvbmx5T0FTMyhudWxsU2VsZWN0b3IpXG5cbi8qKlxuICogV3JhcHBlcnNcbiAqL1xuXG5leHBvcnQgY29uc3QgZmluZERlZmluaXRpb24gPSBvbmx5T0FTMygoc3RhdGUsIHNjaGVtYU5hbWUpID0+IChzeXN0ZW0pID0+IHtcbiAgcmV0dXJuIHN5c3RlbS5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLmZpbmRTY2hlbWEoc2NoZW1hTmFtZSlcbn0pXG5cbmV4cG9ydCBjb25zdCBkZWZpbml0aW9ucyA9IG9ubHlPQVMzKCgpID0+IChzeXN0ZW0pID0+IHtcbiAgY29uc3Qgc3BlYyA9IHN5c3RlbS5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLnNwZWNKc29uKClcbiAgY29uc3Qgc2NoZW1hcyA9IHNwZWMuZ2V0SW4oW1wiY29tcG9uZW50c1wiLCBcInNjaGVtYXNcIl0pXG4gIHJldHVybiBNYXAuaXNNYXAoc2NoZW1hcykgPyBzY2hlbWFzIDogbWFwXG59KVxuXG5leHBvcnQgY29uc3QgaGFzSG9zdCA9IG9ubHlPQVMzKCgpID0+IChzeXN0ZW0pID0+IHtcbiAgY29uc3Qgc3BlYyA9IHN5c3RlbS5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLnNwZWNKc29uKClcbiAgcmV0dXJuIHNwZWMuaGFzSW4oW1wic2VydmVyc1wiLCAwXSlcbn0pXG5cbmV4cG9ydCBjb25zdCBzZWN1cml0eURlZmluaXRpb25zID0gb25seU9BUzMoXG4gIGNyZWF0ZVNlbGVjdG9yKFxuICAgIHNwZWNKc29uV2l0aFJlc29sdmVkU3VidHJlZXMsXG4gICAgKHNwZWMpID0+IHNwZWMuZ2V0SW4oW1wiY29tcG9uZW50c1wiLCBcInNlY3VyaXR5U2NoZW1lc1wiXSkgfHwgbnVsbFxuICApXG4pXG5cbmV4cG9ydCBjb25zdCB2YWxpZE9wZXJhdGlvbk1ldGhvZHMgPVxuICAob3JpU2VsZWN0b3IsIHN5c3RlbSkgPT5cbiAgKHN0YXRlLCAuLi5hcmdzKSA9PiB7XG4gICAgaWYgKHN5c3RlbS5zcGVjU2VsZWN0b3JzLmlzT0FTMygpKSB7XG4gICAgICByZXR1cm4gc3lzdGVtLm9hczNTZWxlY3RvcnMudmFsaWRPcGVyYXRpb25NZXRob2RzKClcbiAgICB9XG5cbiAgICByZXR1cm4gb3JpU2VsZWN0b3IoLi4uYXJncylcbiAgfVxuXG5leHBvcnQgY29uc3QgaG9zdCA9IE9BUzNOdWxsU2VsZWN0b3JcbmV4cG9ydCBjb25zdCBiYXNlUGF0aCA9IE9BUzNOdWxsU2VsZWN0b3JcbmV4cG9ydCBjb25zdCBjb25zdW1lcyA9IE9BUzNOdWxsU2VsZWN0b3JcbmV4cG9ydCBjb25zdCBwcm9kdWNlcyA9IE9BUzNOdWxsU2VsZWN0b3JcbmV4cG9ydCBjb25zdCBzY2hlbWVzID0gT0FTM051bGxTZWxlY3RvclxuIiwiaW1wb3J0IHsgY3JlYXRlU2VsZWN0b3IgfSBmcm9tIFwicmVzZWxlY3RcIlxuaW1wb3J0IHsgTGlzdCwgTWFwLCBmcm9tSlMgfSBmcm9tIFwiaW1tdXRhYmxlXCJcblxuXG4vLyBIZWxwZXJzXG5cbmNvbnN0IHN0YXRlID0gc3RhdGUgPT4gc3RhdGVcblxuZnVuY3Rpb24gb25seU9BUzMoc2VsZWN0b3IpIHtcbiAgcmV0dXJuIChvcmksIHN5c3RlbSkgPT4gKC4uLmFyZ3MpID0+IHtcbiAgICBpZihzeXN0ZW0uZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5pc09BUzMoKSkge1xuICAgICAgLy8gUGFzcyB0aGUgc3BlYyBwbHVnaW4gc3RhdGUgdG8gUmVzZWxlY3QgdG8gdHJpZ2dlciBvbiBzZWN1cml0eURlZmluaXRpb25zIHVwZGF0ZVxuICAgICAgbGV0IHJlc29sdmVkU2NoZW1lcyA9IHN5c3RlbS5nZXRTdGF0ZSgpLmdldEluKFtcInNwZWNcIiwgXCJyZXNvbHZlZFN1YnRyZWVzXCIsXG4gICAgICAgIFwiY29tcG9uZW50c1wiLCBcInNlY3VyaXR5U2NoZW1lc1wiXSlcbiAgICAgIHJldHVybiBzZWxlY3RvcihzeXN0ZW0sIHJlc29sdmVkU2NoZW1lcywgLi4uYXJncylcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9yaSguLi5hcmdzKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZGVmaW5pdGlvbnNUb0F1dGhvcml6ZSA9IG9ubHlPQVMzKGNyZWF0ZVNlbGVjdG9yKFxuICAgIHN0YXRlLFxuICAgICh7c3BlY1NlbGVjdG9yc30pID0+IHNwZWNTZWxlY3RvcnMuc2VjdXJpdHlEZWZpbml0aW9ucygpLFxuICAgIChzeXN0ZW0sIGRlZmluaXRpb25zKSA9PiB7XG4gICAgICAvLyBDb2VyY2Ugb3VyIE9wZW5BUEkgMy4wIGRlZmluaXRpb25zIGludG8gbW9ub2Zsb3cgZGVmaW5pdGlvbnNcbiAgICAgIC8vIHRoYXQgbG9vayBsaWtlIFN3YWdnZXIyIGRlZmluaXRpb25zLlxuICAgICAgbGV0IGxpc3QgPSBMaXN0KClcblxuICAgICAgaWYoIWRlZmluaXRpb25zKSB7XG4gICAgICAgIHJldHVybiBsaXN0XG4gICAgICB9XG5cbiAgICAgIGRlZmluaXRpb25zLmVudHJ5U2VxKCkuZm9yRWFjaCggKFsgZGVmTmFtZSwgZGVmaW5pdGlvbiBdKSA9PiB7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBkZWZpbml0aW9uPy5nZXQoXCJ0eXBlXCIpXG5cbiAgICAgICAgaWYodHlwZSA9PT0gXCJvYXV0aDJcIikge1xuICAgICAgICAgIGRlZmluaXRpb24uZ2V0KFwiZmxvd3NcIikuZW50cnlTZXEoKS5mb3JFYWNoKChbZmxvd0tleSwgZmxvd1ZhbF0pID0+IHtcbiAgICAgICAgICAgIGxldCB0cmFuc2xhdGVkRGVmID0gZnJvbUpTKHtcbiAgICAgICAgICAgICAgZmxvdzogZmxvd0tleSxcbiAgICAgICAgICAgICAgYXV0aG9yaXphdGlvblVybDogZmxvd1ZhbC5nZXQoXCJhdXRob3JpemF0aW9uVXJsXCIpLFxuICAgICAgICAgICAgICB0b2tlblVybDogZmxvd1ZhbC5nZXQoXCJ0b2tlblVybFwiKSxcbiAgICAgICAgICAgICAgc2NvcGVzOiBmbG93VmFsLmdldChcInNjb3Blc1wiKSxcbiAgICAgICAgICAgICAgdHlwZTogZGVmaW5pdGlvbi5nZXQoXCJ0eXBlXCIpLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZGVmaW5pdGlvbi5nZXQoXCJkZXNjcmlwdGlvblwiKVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgbGlzdCA9IGxpc3QucHVzaChuZXcgTWFwKHtcbiAgICAgICAgICAgICAgW2RlZk5hbWVdOiB0cmFuc2xhdGVkRGVmLmZpbHRlcigodikgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGZpbHRlciBvdXQgdW5zZXQgdmFsdWVzLCBzb21ldGltZXMgYGF1dGhvcml6YXRpb25VcmxgXG4gICAgICAgICAgICAgICAgLy8gYW5kIGB0b2tlblVybGAgY29tZSBvdXQgYXMgYHVuZGVmaW5lZGAgaW4gdGhlIGRhdGFcbiAgICAgICAgICAgICAgICByZXR1cm4gdiAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIGlmKHR5cGUgPT09IFwiaHR0cFwiIHx8IHR5cGUgPT09IFwiYXBpS2V5XCIpIHtcbiAgICAgICAgICBsaXN0ID0gbGlzdC5wdXNoKG5ldyBNYXAoe1xuICAgICAgICAgICAgW2RlZk5hbWVdOiBkZWZpbml0aW9uXG4gICAgICAgICAgfSkpXG4gICAgICAgIH1cbiAgICAgICAgaWYodHlwZSA9PT0gXCJvcGVuSWRDb25uZWN0XCIgJiYgZGVmaW5pdGlvbi5nZXQoXCJvcGVuSWRDb25uZWN0RGF0YVwiKSkge1xuICAgICAgICAgIGxldCBvaWRjRGF0YSA9IGRlZmluaXRpb24uZ2V0KFwib3BlbklkQ29ubmVjdERhdGFcIilcbiAgICAgICAgICBsZXQgZ3JhbnRzID0gb2lkY0RhdGEuZ2V0KFwiZ3JhbnRfdHlwZXNfc3VwcG9ydGVkXCIpIHx8IFtcImF1dGhvcml6YXRpb25fY29kZVwiLCBcImltcGxpY2l0XCJdXG4gICAgICAgICAgZ3JhbnRzLmZvckVhY2goKGdyYW50KSA9PiB7XG4gICAgICAgICAgICAvLyBDb252ZXJ0IGZyb20gT0lEQyBsaXN0IG9mIHNjb3BlcyB0byB0aGUgT0FTLXN0eWxlIG1hcCB3aXRoIGVtcHR5IGRlc2NyaXB0aW9uc1xuICAgICAgICAgICAgbGV0IHRyYW5zbGF0ZWRTY29wZXMgPSBvaWRjRGF0YS5nZXQoXCJzY29wZXNfc3VwcG9ydGVkXCIpICYmXG4gICAgICAgICAgICAgIG9pZGNEYXRhLmdldChcInNjb3Blc19zdXBwb3J0ZWRcIikucmVkdWNlKChhY2MsIGN1cikgPT4gYWNjLnNldChjdXIsIFwiXCIpLCBuZXcgTWFwKCkpXG5cbiAgICAgICAgICAgIGxldCB0cmFuc2xhdGVkRGVmID0gZnJvbUpTKHtcbiAgICAgICAgICAgICAgZmxvdzogZ3JhbnQsXG4gICAgICAgICAgICAgIGF1dGhvcml6YXRpb25Vcmw6IG9pZGNEYXRhLmdldChcImF1dGhvcml6YXRpb25fZW5kcG9pbnRcIiksXG4gICAgICAgICAgICAgIHRva2VuVXJsOiBvaWRjRGF0YS5nZXQoXCJ0b2tlbl9lbmRwb2ludFwiKSxcbiAgICAgICAgICAgICAgc2NvcGVzOiB0cmFuc2xhdGVkU2NvcGVzLFxuICAgICAgICAgICAgICB0eXBlOiBcIm9hdXRoMlwiLFxuICAgICAgICAgICAgICBvcGVuSWRDb25uZWN0VXJsOiBkZWZpbml0aW9uLmdldChcIm9wZW5JZENvbm5lY3RVcmxcIilcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGxpc3QgPSBsaXN0LnB1c2gobmV3IE1hcCh7XG4gICAgICAgICAgICAgIFtkZWZOYW1lXTogdHJhbnNsYXRlZERlZi5maWx0ZXIoKHYpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBmaWx0ZXIgb3V0IHVuc2V0IHZhbHVlcywgc29tZXRpbWVzIGBhdXRob3JpemF0aW9uVXJsYFxuICAgICAgICAgICAgICAgIC8vIGFuZCBgdG9rZW5VcmxgIGNvbWUgb3V0IGFzIGB1bmRlZmluZWRgIGluIHRoZSBkYXRhXG4gICAgICAgICAgICAgICAgcmV0dXJuIHYgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgcmV0dXJuIGxpc3RcbiAgICB9XG4pKVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmV4cG9ydCBmdW5jdGlvbiBpc09BUzMwKGpzU3BlYykge1xuICBjb25zdCBvYXNWZXJzaW9uID0ganNTcGVjLmdldChcIm9wZW5hcGlcIilcblxuICByZXR1cm4gKFxuICAgIHR5cGVvZiBvYXNWZXJzaW9uID09PSBcInN0cmluZ1wiICYmIC9eM1xcLjBcXC4oPzpbMS05XVxcZCp8MCkkLy50ZXN0KG9hc1ZlcnNpb24pXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3dhZ2dlcjIoanNTcGVjKSB7XG4gIGNvbnN0IHN3YWdnZXJWZXJzaW9uID0ganNTcGVjLmdldChcInN3YWdnZXJcIilcblxuICByZXR1cm4gdHlwZW9mIHN3YWdnZXJWZXJzaW9uID09PSBcInN0cmluZ1wiICYmIHN3YWdnZXJWZXJzaW9uID09PSBcIjIuMFwiXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBPQVMzQ29tcG9uZW50V3JhcEZhY3RvcnkoQ29tcG9uZW50KSB7XG4gIHJldHVybiAoT3JpLCBzeXN0ZW0pID0+IChwcm9wcykgPT4ge1xuICAgIGlmICh0eXBlb2Ygc3lzdGVtLnNwZWNTZWxlY3RvcnM/LmlzT0FTMyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBpZiAoc3lzdGVtLnNwZWNTZWxlY3RvcnMuaXNPQVMzKCkpIHtcbiAgICAgICAgcmV0dXJuIDxDb21wb25lbnQgey4uLnByb3BzfSB7Li4uc3lzdGVtfSBPcmk9e09yaX0+PC9Db21wb25lbnQ+XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gPE9yaSB7Li4ucHJvcHN9PjwvT3JpPlxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oXCJPQVMzIHdyYXBwZXI6IGNvdWxkbid0IGdldCBzcGVjXCIpXG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gT0FTMzBDb21wb25lbnRXcmFwRmFjdG9yeShDb21wb25lbnQpIHtcbiAgcmV0dXJuIChPcmksIHN5c3RlbSkgPT4gKHByb3BzKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBzeXN0ZW0uc3BlY1NlbGVjdG9ycz8uaXNPQVMzMCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBpZiAoc3lzdGVtLnNwZWNTZWxlY3RvcnMuaXNPQVMzMCgpKSB7XG4gICAgICAgIHJldHVybiA8Q29tcG9uZW50IHsuLi5wcm9wc30gey4uLnN5c3RlbX0gT3JpPXtPcml9PjwvQ29tcG9uZW50PlxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDxPcmkgey4uLnByb3BzfT48L09yaT5cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKFwiT0FTMzAgd3JhcHBlcjogY291bGRuJ3QgZ2V0IHNwZWNcIilcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBMaXN0LCBNYXAgfSBmcm9tIFwiaW1tdXRhYmxlXCJcblxuaW1wb3J0IHtcbiAgaXNTd2FnZ2VyMiBhcyBpc1N3YWdnZXIySGVscGVyLFxuICBpc09BUzMwIGFzIGlzT0FTMzBIZWxwZXIsXG59IGZyb20gXCIuLi9oZWxwZXJzXCJcblxuLyoqXG4gKiBIZWxwZXJzXG4gKi9cblxuY29uc3QgbWFwID0gTWFwKClcblxuZXhwb3J0IGNvbnN0IGlzU3dhZ2dlcjIgPSAoKSA9PiAoc3lzdGVtKSA9PiB7XG4gIGNvbnN0IHNwZWMgPSBzeXN0ZW0uZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpXG4gIHJldHVybiBpc1N3YWdnZXIySGVscGVyKHNwZWMpXG59XG5cbmV4cG9ydCBjb25zdCBpc09BUzMwID0gKCkgPT4gKHN5c3RlbSkgPT4ge1xuICBjb25zdCBzcGVjID0gc3lzdGVtLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuc3BlY0pzb24oKVxuICByZXR1cm4gaXNPQVMzMEhlbHBlcihzcGVjKVxufVxuXG5leHBvcnQgY29uc3QgaXNPQVMzID0gKCkgPT4gKHN5c3RlbSkgPT4ge1xuICByZXR1cm4gc3lzdGVtLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuaXNPQVMzMCgpXG59XG5cbmZ1bmN0aW9uIG9ubHlPQVMzKHNlbGVjdG9yKSB7XG4gIHJldHVybiAoc3RhdGUsIC4uLmFyZ3MpID0+XG4gICAgKHN5c3RlbSkgPT4ge1xuICAgICAgaWYgKHN5c3RlbS5zcGVjU2VsZWN0b3JzLmlzT0FTMygpKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVmFsdWUgPSBzZWxlY3RvcihzdGF0ZSwgLi4uYXJncylcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBzZWxlY3RlZFZhbHVlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICA/IHNlbGVjdGVkVmFsdWUoc3lzdGVtKVxuICAgICAgICAgIDogc2VsZWN0ZWRWYWx1ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBzZXJ2ZXJzID0gb25seU9BUzMoKCkgPT4gKHN5c3RlbSkgPT4ge1xuICBjb25zdCBzcGVjID0gc3lzdGVtLnNwZWNTZWxlY3RvcnMuc3BlY0pzb24oKVxuICByZXR1cm4gc3BlYy5nZXQoXCJzZXJ2ZXJzXCIsIG1hcClcbn0pXG5cbmV4cG9ydCBjb25zdCBmaW5kU2NoZW1hID0gKHN0YXRlLCBzY2hlbWFOYW1lKSA9PiB7XG4gIGNvbnN0IHJlc29sdmVkU2NoZW1hID0gc3RhdGUuZ2V0SW4oXG4gICAgW1wicmVzb2x2ZWRTdWJ0cmVlc1wiLCBcImNvbXBvbmVudHNcIiwgXCJzY2hlbWFzXCIsIHNjaGVtYU5hbWVdLFxuICAgIG51bGxcbiAgKVxuICBjb25zdCB1bnJlc29sdmVkU2NoZW1hID0gc3RhdGUuZ2V0SW4oXG4gICAgW1wianNvblwiLCBcImNvbXBvbmVudHNcIiwgXCJzY2hlbWFzXCIsIHNjaGVtYU5hbWVdLFxuICAgIG51bGxcbiAgKVxuXG4gIHJldHVybiByZXNvbHZlZFNjaGVtYSB8fCB1bnJlc29sdmVkU2NoZW1hIHx8IG51bGxcbn1cblxuZXhwb3J0IGNvbnN0IGNhbGxiYWNrc09wZXJhdGlvbnMgPSBvbmx5T0FTMyhcbiAgKHN0YXRlLCB7IGNhbGxiYWNrcywgc3BlY1BhdGggfSkgPT5cbiAgICAoc3lzdGVtKSA9PiB7XG4gICAgICBjb25zdCB2YWxpZE9wZXJhdGlvbk1ldGhvZHMgPSBzeXN0ZW0uc3BlY1NlbGVjdG9ycy52YWxpZE9wZXJhdGlvbk1ldGhvZHMoKVxuXG4gICAgICBpZiAoIU1hcC5pc01hcChjYWxsYmFja3MpKSByZXR1cm4ge31cblxuICAgICAgcmV0dXJuIGNhbGxiYWNrc1xuICAgICAgICAucmVkdWNlKChhbGxPcGVyYXRpb25zLCBjYWxsYmFjaywgY2FsbGJhY2tOYW1lKSA9PiB7XG4gICAgICAgICAgaWYgKCFNYXAuaXNNYXAoY2FsbGJhY2spKSByZXR1cm4gYWxsT3BlcmF0aW9uc1xuXG4gICAgICAgICAgY29uc3QgY2FsbGJhY2tPcGVyYXRpb25zID0gY2FsbGJhY2sucmVkdWNlKFxuICAgICAgICAgICAgKGNhbGxiYWNrT3BzLCBwYXRoSXRlbSwgZXhwcmVzc2lvbikgPT4ge1xuICAgICAgICAgICAgICBpZiAoIU1hcC5pc01hcChwYXRoSXRlbSkpIHJldHVybiBjYWxsYmFja09wc1xuXG4gICAgICAgICAgICAgIGNvbnN0IHBhdGhJdGVtT3BlcmF0aW9ucyA9IHBhdGhJdGVtXG4gICAgICAgICAgICAgICAgLmVudHJ5U2VxKClcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChba2V5XSkgPT4gdmFsaWRPcGVyYXRpb25NZXRob2RzLmluY2x1ZGVzKGtleSkpXG4gICAgICAgICAgICAgICAgLm1hcCgoW21ldGhvZCwgb3BlcmF0aW9uXSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogTWFwKHsgb3BlcmF0aW9uIH0pLFxuICAgICAgICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgICAgICAgcGF0aDogZXhwcmVzc2lvbixcbiAgICAgICAgICAgICAgICAgIGNhbGxiYWNrTmFtZSxcbiAgICAgICAgICAgICAgICAgIHNwZWNQYXRoOiBzcGVjUGF0aC5jb25jYXQoW2NhbGxiYWNrTmFtZSwgZXhwcmVzc2lvbiwgbWV0aG9kXSksXG4gICAgICAgICAgICAgICAgfSkpXG5cbiAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrT3BzLmNvbmNhdChwYXRoSXRlbU9wZXJhdGlvbnMpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgTGlzdCgpXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgcmV0dXJuIGFsbE9wZXJhdGlvbnMuY29uY2F0KGNhbGxiYWNrT3BlcmF0aW9ucylcbiAgICAgICAgfSwgTGlzdCgpKVxuICAgICAgICAuZ3JvdXBCeSgob3BlcmF0aW9uRFRPKSA9PiBvcGVyYXRpb25EVE8uY2FsbGJhY2tOYW1lKVxuICAgICAgICAubWFwKChvcGVyYXRpb25zKSA9PiBvcGVyYXRpb25zLnRvQXJyYXkoKSlcbiAgICAgICAgLnRvT2JqZWN0KClcbiAgICB9XG4pXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcblxuY29uc3QgQ2FsbGJhY2tzID0gKHsgY2FsbGJhY2tzLCBzcGVjUGF0aCwgc3BlY1NlbGVjdG9ycywgZ2V0Q29tcG9uZW50IH0pID0+IHtcbiAgY29uc3Qgb3BlcmF0aW9uRFRPcyA9IHNwZWNTZWxlY3RvcnMuY2FsbGJhY2tzT3BlcmF0aW9ucyh7XG4gICAgY2FsbGJhY2tzLFxuICAgIHNwZWNQYXRoLFxuICB9KVxuICBjb25zdCBjYWxsYmFja05hbWVzID0gT2JqZWN0LmtleXMob3BlcmF0aW9uRFRPcylcblxuICBjb25zdCBPcGVyYXRpb25Db250YWluZXIgPSBnZXRDb21wb25lbnQoXCJPcGVyYXRpb25Db250YWluZXJcIiwgdHJ1ZSlcblxuICBpZiAoY2FsbGJhY2tOYW1lcy5sZW5ndGggPT09IDApIHJldHVybiA8c3Bhbj5ObyBjYWxsYmFja3M8L3NwYW4+XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAge2NhbGxiYWNrTmFtZXMubWFwKChjYWxsYmFja05hbWUpID0+IChcbiAgICAgICAgPGRpdiBrZXk9e2Ake2NhbGxiYWNrTmFtZX1gfT5cbiAgICAgICAgICA8aDI+e2NhbGxiYWNrTmFtZX08L2gyPlxuXG4gICAgICAgICAge29wZXJhdGlvbkRUT3NbY2FsbGJhY2tOYW1lXS5tYXAoKG9wZXJhdGlvbkRUTykgPT4gKFxuICAgICAgICAgICAgPE9wZXJhdGlvbkNvbnRhaW5lclxuICAgICAgICAgICAgICBrZXk9e2Ake2NhbGxiYWNrTmFtZX0tJHtvcGVyYXRpb25EVE8ucGF0aH0tJHtvcGVyYXRpb25EVE8ubWV0aG9kfWB9XG4gICAgICAgICAgICAgIG9wPXtvcGVyYXRpb25EVE8ub3BlcmF0aW9ufVxuICAgICAgICAgICAgICB0YWc9XCJjYWxsYmFja3NcIlxuICAgICAgICAgICAgICBtZXRob2Q9e29wZXJhdGlvbkRUTy5tZXRob2R9XG4gICAgICAgICAgICAgIHBhdGg9e29wZXJhdGlvbkRUTy5wYXRofVxuICAgICAgICAgICAgICBzcGVjUGF0aD17b3BlcmF0aW9uRFRPLnNwZWNQYXRofVxuICAgICAgICAgICAgICBhbGxvd1RyeUl0T3V0PXtmYWxzZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSl9XG4gICAgPC9kaXY+XG4gIClcbn1cblxuQ2FsbGJhY2tzLnByb3BUeXBlcyA9IHtcbiAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIGNhbGxiYWNrc09wZXJhdGlvbnM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIH0pLmlzUmVxdWlyZWQsXG4gIGNhbGxiYWNrczogSW1Qcm9wVHlwZXMuaXRlcmFibGUuaXNSZXF1aXJlZCxcbiAgc3BlY1BhdGg6IEltUHJvcFR5cGVzLmxpc3QuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ2FsbGJhY2tzXG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcbmltcG9ydCB7IE1hcCwgT3JkZXJlZE1hcCwgTGlzdCwgZnJvbUpTIH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgeyBnZXRDb21tb25FeHRlbnNpb25zLCBzdHJpbmdpZnksIGlzRW1wdHlWYWx1ZSB9IGZyb20gXCJjb3JlL3V0aWxzXCJcbmltcG9ydCB7IGdldEtub3duU3ludGF4SGlnaGxpZ2h0ZXJMYW5ndWFnZSB9IGZyb20gXCJjb3JlL3V0aWxzL2pzb25QYXJzZVwiXG5cbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZSA9IChyZXF1ZXN0Qm9keSwgbWVkaWFUeXBlLCBhY3RpdmVFeGFtcGxlc0tleSwgZm4pID0+IHtcbiAgY29uc3QgbWVkaWFUeXBlVmFsdWUgPSByZXF1ZXN0Qm9keS5nZXRJbihbXCJjb250ZW50XCIsIG1lZGlhVHlwZV0pID8/IE9yZGVyZWRNYXAoKVxuICBjb25zdCBzY2hlbWEgPSBtZWRpYVR5cGVWYWx1ZS5nZXQoXCJzY2hlbWFcIiwgT3JkZXJlZE1hcCgpKS50b0pTKClcblxuICBjb25zdCBoYXNFeGFtcGxlc0tleSA9IG1lZGlhVHlwZVZhbHVlLmdldChcImV4YW1wbGVzXCIpICE9PSB1bmRlZmluZWRcbiAgY29uc3QgZXhhbXBsZVNjaGVtYSA9IG1lZGlhVHlwZVZhbHVlLmdldChcImV4YW1wbGVcIilcbiAgY29uc3QgbWVkaWFUeXBlRXhhbXBsZSA9IGhhc0V4YW1wbGVzS2V5XG4gICAgPyBtZWRpYVR5cGVWYWx1ZS5nZXRJbihbXG4gICAgICBcImV4YW1wbGVzXCIsXG4gICAgICBhY3RpdmVFeGFtcGxlc0tleSxcbiAgICAgIFwidmFsdWVcIlxuICAgIF0pXG4gICAgOiBleGFtcGxlU2NoZW1hXG5cbiAgY29uc3QgZXhhbXBsZVZhbHVlID0gZm4uZ2V0U2FtcGxlU2NoZW1hKFxuICAgIHNjaGVtYSxcbiAgICBtZWRpYVR5cGUsXG4gICAge1xuICAgICAgaW5jbHVkZVdyaXRlT25seTogdHJ1ZVxuICAgIH0sXG4gICAgbWVkaWFUeXBlRXhhbXBsZVxuICApXG4gIHJldHVybiBzdHJpbmdpZnkoZXhhbXBsZVZhbHVlKVxufVxuXG5cblxuY29uc3QgUmVxdWVzdEJvZHkgPSAoe1xuICB1c2VySGFzRWRpdGVkQm9keSxcbiAgcmVxdWVzdEJvZHksXG4gIHJlcXVlc3RCb2R5VmFsdWUsXG4gIHJlcXVlc3RCb2R5SW5jbHVzaW9uU2V0dGluZyxcbiAgcmVxdWVzdEJvZHlFcnJvcnMsXG4gIGdldENvbXBvbmVudCxcbiAgZ2V0Q29uZmlncyxcbiAgc3BlY1NlbGVjdG9ycyxcbiAgZm4sXG4gIGNvbnRlbnRUeXBlLFxuICBpc0V4ZWN1dGUsXG4gIHNwZWNQYXRoLFxuICBvbkNoYW5nZSxcbiAgb25DaGFuZ2VJbmNsdWRlRW1wdHksXG4gIGFjdGl2ZUV4YW1wbGVzS2V5LFxuICB1cGRhdGVBY3RpdmVFeGFtcGxlc0tleSxcbiAgc2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWdcbn0pID0+IHtcbiAgY29uc3QgaGFuZGxlRmlsZSA9IChlKSA9PiB7XG4gICAgb25DaGFuZ2UoZS50YXJnZXQuZmlsZXNbMF0pXG4gIH1cbiAgY29uc3Qgc2V0SXNJbmNsdWRlZE9wdGlvbnMgPSAoa2V5KSA9PiB7XG4gICAgbGV0IG9wdGlvbnMgPSB7XG4gICAgICBrZXksXG4gICAgICBzaG91bGREaXNwYXRjaEluaXQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdFZhbHVlOiB0cnVlXG4gICAgfVxuICAgIGxldCBjdXJyZW50SW5jbHVzaW9uID0gcmVxdWVzdEJvZHlJbmNsdXNpb25TZXR0aW5nLmdldChrZXksIFwibm8gdmFsdWVcIilcbiAgICBpZiAoY3VycmVudEluY2x1c2lvbiA9PT0gXCJubyB2YWx1ZVwiKSB7XG4gICAgICBvcHRpb25zLnNob3VsZERpc3BhdGNoSW5pdCA9IHRydWVcbiAgICAgIC8vIGZ1dHVyZTogY2FuIGdldC9zZXQgZGVmYXVsdFZhbHVlIGZyb20gYSBjb25maWcgc2V0dGluZ1xuICAgIH1cbiAgICByZXR1cm4gb3B0aW9uc1xuICB9XG5cbiAgY29uc3QgTWFya2Rvd24gPSBnZXRDb21wb25lbnQoXCJNYXJrZG93blwiLCB0cnVlKVxuICBjb25zdCBNb2RlbEV4YW1wbGUgPSBnZXRDb21wb25lbnQoXCJtb2RlbEV4YW1wbGVcIilcbiAgY29uc3QgUmVxdWVzdEJvZHlFZGl0b3IgPSBnZXRDb21wb25lbnQoXCJSZXF1ZXN0Qm9keUVkaXRvclwiKVxuICBjb25zdCBIaWdobGlnaHRDb2RlID0gZ2V0Q29tcG9uZW50KFwiSGlnaGxpZ2h0Q29kZVwiLCB0cnVlKVxuICBjb25zdCBFeGFtcGxlc1NlbGVjdFZhbHVlUmV0YWluZXIgPSBnZXRDb21wb25lbnQoXCJFeGFtcGxlc1NlbGVjdFZhbHVlUmV0YWluZXJcIilcbiAgY29uc3QgRXhhbXBsZSA9IGdldENvbXBvbmVudChcIkV4YW1wbGVcIilcbiAgY29uc3QgUGFyYW1ldGVySW5jbHVkZUVtcHR5ID0gZ2V0Q29tcG9uZW50KFwiUGFyYW1ldGVySW5jbHVkZUVtcHR5XCIpXG5cbiAgY29uc3QgeyBzaG93Q29tbW9uRXh0ZW5zaW9ucyB9ID0gZ2V0Q29uZmlncygpXG5cbiAgY29uc3QgcmVxdWVzdEJvZHlEZXNjcmlwdGlvbiA9IHJlcXVlc3RCb2R5Py5nZXQoXCJkZXNjcmlwdGlvblwiKSA/PyBudWxsXG4gIGNvbnN0IHJlcXVlc3RCb2R5Q29udGVudCA9IHJlcXVlc3RCb2R5Py5nZXQoXCJjb250ZW50XCIpID8/IG5ldyBPcmRlcmVkTWFwKClcbiAgY29udGVudFR5cGUgPSBjb250ZW50VHlwZSB8fCByZXF1ZXN0Qm9keUNvbnRlbnQua2V5U2VxKCkuZmlyc3QoKSB8fCBcIlwiXG5cbiAgY29uc3QgbWVkaWFUeXBlVmFsdWUgPSByZXF1ZXN0Qm9keUNvbnRlbnQuZ2V0KGNvbnRlbnRUeXBlKSA/PyBPcmRlcmVkTWFwKClcbiAgY29uc3Qgc2NoZW1hRm9yTWVkaWFUeXBlID0gbWVkaWFUeXBlVmFsdWUuZ2V0KFwic2NoZW1hXCIsIE9yZGVyZWRNYXAoKSlcbiAgY29uc3QgcmF3RXhhbXBsZXNPZk1lZGlhVHlwZSA9IG1lZGlhVHlwZVZhbHVlLmdldChcImV4YW1wbGVzXCIsIG51bGwpXG4gIGNvbnN0IHNhbXBsZUZvck1lZGlhVHlwZSA9IHJhd0V4YW1wbGVzT2ZNZWRpYVR5cGU/Lm1hcCgoY29udGFpbmVyLCBrZXkpID0+IHtcbiAgICBjb25zdCB2YWwgPSBjb250YWluZXI/LmdldChcInZhbHVlXCIsIG51bGwpXG4gICAgaWYodmFsKSB7XG4gICAgICBjb250YWluZXIgPSBjb250YWluZXIuc2V0KFwidmFsdWVcIiwgZ2V0RGVmYXVsdFJlcXVlc3RCb2R5VmFsdWUoXG4gICAgICAgIHJlcXVlc3RCb2R5LFxuICAgICAgICBjb250ZW50VHlwZSxcbiAgICAgICAga2V5LFxuICAgICAgICBmbixcbiAgICAgICksIHZhbClcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRhaW5lclxuICB9KVxuXG4gIGNvbnN0IGhhbmRsZUV4YW1wbGVzU2VsZWN0ID0gKGtleSAvKiwgeyBpc1N5bnRoZXRpY0NoYW5nZSB9ICovKSA9PiB7XG4gICAgdXBkYXRlQWN0aXZlRXhhbXBsZXNLZXkoa2V5KVxuICB9XG4gIHJlcXVlc3RCb2R5RXJyb3JzID0gTGlzdC5pc0xpc3QocmVxdWVzdEJvZHlFcnJvcnMpID8gcmVxdWVzdEJvZHlFcnJvcnMgOiBMaXN0KClcblxuICBjb25zdCBpc0ZpbGVVcGxvYWRJbnRlbmRlZCA9IGZuLmlzRmlsZVVwbG9hZEludGVuZGVkKFxuICAgIG1lZGlhVHlwZVZhbHVlPy5nZXQoXCJzY2hlbWFcIiksXG4gICAgY29udGVudFR5cGVcbiAgKVxuXG4gIGlmKFxuICAgIGlzRmlsZVVwbG9hZEludGVuZGVkXG4gICkge1xuICAgIGNvbnN0IElucHV0ID0gZ2V0Q29tcG9uZW50KFwiSW5wdXRcIilcblxuICAgIGlmKCFpc0V4ZWN1dGUpIHtcbiAgICAgIHJldHVybiA8aT5cbiAgICAgICAgRXhhbXBsZSB2YWx1ZXMgYXJlIG5vdCBhdmFpbGFibGUgZm9yIDxjb2RlPntjb250ZW50VHlwZX08L2NvZGU+IG1lZGlhIHR5cGVzLlxuICAgICAgPC9pPlxuICAgIH1cblxuICAgIHJldHVybiA8SW5wdXQgdHlwZT17XCJmaWxlXCJ9IG9uQ2hhbmdlPXtoYW5kbGVGaWxlfSAvPlxuICB9XG5cblxuICBpZiAoIW1lZGlhVHlwZVZhbHVlLnNpemUpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgaXNPYmplY3RDb250ZW50ID0gZm4uaGFzU2NoZW1hVHlwZShtZWRpYVR5cGVWYWx1ZS5nZXQoXCJzY2hlbWFcIiksIFwib2JqZWN0XCIpXG5cbiAgaWYgKFxuICAgIGlzT2JqZWN0Q29udGVudCAmJlxuICAgIChcbiAgICAgIGNvbnRlbnRUeXBlID09PSBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiIHx8XG4gICAgICBjb250ZW50VHlwZS5pbmRleE9mKFwibXVsdGlwYXJ0L1wiKSA9PT0gMFxuICAgICkgJiZcbiAgICBzY2hlbWFGb3JNZWRpYVR5cGUuZ2V0KFwicHJvcGVydGllc1wiLCBPcmRlcmVkTWFwKCkpLnNpemUgPiAwXG4gICkge1xuICAgIGNvbnN0IEpzb25TY2hlbWFGb3JtID0gZ2V0Q29tcG9uZW50KFwiSnNvblNjaGVtYUZvcm1cIilcbiAgICBjb25zdCBQYXJhbWV0ZXJFeHQgPSBnZXRDb21wb25lbnQoXCJQYXJhbWV0ZXJFeHRcIilcbiAgICBjb25zdCBib2R5UHJvcGVydGllcyA9IHNjaGVtYUZvck1lZGlhVHlwZS5nZXQoXCJwcm9wZXJ0aWVzXCIsIE9yZGVyZWRNYXAoKSlcbiAgICByZXF1ZXN0Qm9keVZhbHVlID0gTWFwLmlzTWFwKHJlcXVlc3RCb2R5VmFsdWUpID8gcmVxdWVzdEJvZHlWYWx1ZSA6IE9yZGVyZWRNYXAoKVxuXG4gICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwidGFibGUtY29udGFpbmVyXCI+XG4gICAgICB7IHJlcXVlc3RCb2R5RGVzY3JpcHRpb24gJiZcbiAgICAgICAgPE1hcmtkb3duIHNvdXJjZT17cmVxdWVzdEJvZHlEZXNjcmlwdGlvbn0gLz5cbiAgICAgIH1cbiAgICAgIDx0YWJsZT5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIE1hcC5pc01hcChib2R5UHJvcGVydGllcykgJiYgYm9keVByb3BlcnRpZXMuZW50cnlTZXEoKS5tYXAoKFtrZXksIHNjaGVtYV0pID0+IHtcbiAgICAgICAgICAgICAgaWYgKHNjaGVtYS5nZXQoXCJyZWFkT25seVwiKSkgcmV0dXJuXG5cbiAgICAgICAgICAgICAgY29uc3Qgb25lT2YgPSBzY2hlbWEuZ2V0KFwib25lT2ZcIik/LmdldCgwKT8udG9KUygpXG4gICAgICAgICAgICAgIGNvbnN0IGFueU9mID0gc2NoZW1hLmdldChcImFueU9mXCIpPy5nZXQoMCk/LnRvSlMoKVxuICAgICAgICAgICAgICBzY2hlbWEgPSBmcm9tSlMoZm4ubWVyZ2VKc29uU2NoZW1hKHNjaGVtYS50b0pTKCksIG9uZU9mID8/IGFueU9mID8/IHt9KSlcblxuICAgICAgICAgICAgICBsZXQgY29tbW9uRXh0ID0gc2hvd0NvbW1vbkV4dGVuc2lvbnMgPyBnZXRDb21tb25FeHRlbnNpb25zKHNjaGVtYSkgOiBudWxsXG4gICAgICAgICAgICAgIGNvbnN0IHJlcXVpcmVkID0gc2NoZW1hRm9yTWVkaWFUeXBlLmdldChcInJlcXVpcmVkXCIsIExpc3QoKSkuaW5jbHVkZXMoa2V5KVxuICAgICAgICAgICAgICBjb25zdCBvYmplY3RUeXBlID0gZm4uZ2V0U2NoZW1hT2JqZWN0VHlwZShzY2hlbWEpXG4gICAgICAgICAgICAgIGNvbnN0IG9iamVjdFR5cGVMYWJlbCA9IGZuLmdldFNjaGVtYU9iamVjdFR5cGVMYWJlbChzY2hlbWEpXG4gICAgICAgICAgICAgIGNvbnN0IHNjaGVtYUl0ZW1zVHlwZSA9IGZuLmdldFNjaGVtYU9iamVjdFR5cGUoc2NoZW1hPy5nZXQoXCJpdGVtc1wiKSlcbiAgICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gc2NoZW1hLmdldChcImZvcm1hdFwiKVxuICAgICAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHNjaGVtYS5nZXQoXCJkZXNjcmlwdGlvblwiKVxuICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSByZXF1ZXN0Qm9keVZhbHVlLmdldEluKFtrZXksIFwidmFsdWVcIl0pXG4gICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRFcnJvcnMgPSByZXF1ZXN0Qm9keVZhbHVlLmdldEluKFtrZXksIFwiZXJyb3JzXCJdKSB8fCByZXF1ZXN0Qm9keUVycm9yc1xuICAgICAgICAgICAgICBjb25zdCBpbmNsdWRlZCA9IHJlcXVlc3RCb2R5SW5jbHVzaW9uU2V0dGluZy5nZXQoa2V5KSB8fCBmYWxzZVxuXG4gICAgICAgICAgICAgIGxldCBpbml0aWFsVmFsdWUgPSBmbi5nZXRTYW1wbGVTY2hlbWEoc2NoZW1hLCBmYWxzZSwge1xuICAgICAgICAgICAgICAgIGluY2x1ZGVXcml0ZU9ubHk6IHRydWVcbiAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICBpZiAoaW5pdGlhbFZhbHVlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZSA9IFwiZmFsc2VcIlxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZSA9IFwiMFwiXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAodHlwZW9mIGluaXRpYWxWYWx1ZSAhPT0gXCJzdHJpbmdcIiAmJiBvYmplY3RUeXBlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICBpbml0aWFsVmFsdWUgPSBzdHJpbmdpZnkoaW5pdGlhbFZhbHVlKVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBpbml0aWFsVmFsdWUgPT09IFwic3RyaW5nXCIgJiYgb2JqZWN0VHlwZSA9PT0gXCJhcnJheVwiKSB7XG4gICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlID0gSlNPTi5wYXJzZShpbml0aWFsVmFsdWUpXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjb25zdCBpc0ZpbGVVcGxvYWRJbnRlbmRlZCA9IGZuLmlzRmlsZVVwbG9hZEludGVuZGVkKHNjaGVtYSlcblxuICAgICAgICAgICAgICBjb25zdCBqc29uU2NoZW1hRm9ybSA9IDxKc29uU2NoZW1hRm9ybVxuICAgICAgICAgICAgICAgIGZuPXtmbn1cbiAgICAgICAgICAgICAgICBkaXNwYXRjaEluaXRpYWxWYWx1ZT17IWlzRmlsZVVwbG9hZEludGVuZGVkfVxuICAgICAgICAgICAgICAgIHNjaGVtYT17c2NoZW1hfVxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtrZXl9XG4gICAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9XG4gICAgICAgICAgICAgICAgdmFsdWU9e2N1cnJlbnRWYWx1ZSA9PT0gdW5kZWZpbmVkID8gaW5pdGlhbFZhbHVlIDogY3VycmVudFZhbHVlfVxuICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgICAgICAgICBlcnJvcnM9e2N1cnJlbnRFcnJvcnN9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgb25DaGFuZ2UodmFsdWUsIFtrZXldKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgcmV0dXJuIDx0ciBrZXk9e2tleX0gY2xhc3NOYW1lPVwicGFyYW1ldGVyc1wiIGRhdGEtcHJvcGVydHktbmFtZT17a2V5fT5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT1cInBhcmFtZXRlcnMtY29sX25hbWVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17cmVxdWlyZWQgPyBcInBhcmFtZXRlcl9fbmFtZSByZXF1aXJlZFwiIDogXCJwYXJhbWV0ZXJfX25hbWVcIn0+XG4gICAgICAgICAgICAgICAgICB7IGtleSB9XG4gICAgICAgICAgICAgICAgICB7ICFyZXF1aXJlZCA/IG51bGwgOiA8c3Bhbj4mbmJzcDsqPC9zcGFuPiB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYXJhbWV0ZXJfX3R5cGVcIj5cbiAgICAgICAgICAgICAgICAgIHsgb2JqZWN0VHlwZUxhYmVsIH1cbiAgICAgICAgICAgICAgICAgIHsgZm9ybWF0ICYmIDxzcGFuIGNsYXNzTmFtZT1cInByb3AtZm9ybWF0XCI+KCR7Zm9ybWF0fSk8L3NwYW4+fVxuICAgICAgICAgICAgICAgICAgeyFzaG93Q29tbW9uRXh0ZW5zaW9ucyB8fCAhY29tbW9uRXh0LnNpemUgPyBudWxsIDogY29tbW9uRXh0LmVudHJ5U2VxKCkubWFwKChba2V5LCB2XSkgPT4gPFBhcmFtZXRlckV4dCBrZXk9e2Ake2tleX0tJHt2fWB9IHhLZXk9e2tleX0geFZhbD17dn0gLz4pfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFyYW1ldGVyX19kZXByZWNhdGVkXCI+XG4gICAgICAgICAgICAgICAgICB7IHNjaGVtYS5nZXQoXCJkZXByZWNhdGVkXCIpID8gXCJkZXByZWNhdGVkXCI6IG51bGwgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwicGFyYW1ldGVycy1jb2xfZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICA8TWFya2Rvd24gc291cmNlPXsgZGVzY3JpcHRpb24gfT48L01hcmtkb3duPlxuICAgICAgICAgICAgICAgIHtpc0V4ZWN1dGUgPyA8ZGl2PlxuICAgICAgICAgICAgICAgICAgeyhvYmplY3RUeXBlID09PSBcIm9iamVjdFwiIHx8IHNjaGVtYUl0ZW1zVHlwZSA9PT0gXCJvYmplY3RcIikgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxNb2RlbEV4YW1wbGVcbiAgICAgICAgICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzcGVjUGF0aD17c3BlY1BhdGgucHVzaChcInNjaGVtYVwiKX1cbiAgICAgICAgICAgICAgICAgICAgICBnZXRDb25maWdzPXtnZXRDb25maWdzfVxuICAgICAgICAgICAgICAgICAgICAgIGlzRXhlY3V0ZT17aXNFeGVjdXRlfVxuICAgICAgICAgICAgICAgICAgICAgIHNwZWNTZWxlY3RvcnM9e3NwZWNTZWxlY3RvcnN9XG4gICAgICAgICAgICAgICAgICAgICAgc2NoZW1hPXtzY2hlbWF9XG4gICAgICAgICAgICAgICAgICAgICAgZXhhbXBsZT17anNvblNjaGVtYUZvcm19XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICkgOiBqc29uU2NoZW1hRm9ybVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAge3JlcXVpcmVkID8gbnVsbCA6IChcbiAgICAgICAgICAgICAgICAgICAgPFBhcmFtZXRlckluY2x1ZGVFbXB0eVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUpID0+IG9uQ2hhbmdlSW5jbHVkZUVtcHR5KGtleSwgdmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgIGlzSW5jbHVkZWQ9e2luY2x1ZGVkfVxuICAgICAgICAgICAgICAgICAgICAgIGlzSW5jbHVkZWRPcHRpb25zPXtzZXRJc0luY2x1ZGVkT3B0aW9ucyhrZXkpfVxuICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ9e0FycmF5LmlzQXJyYXkoY3VycmVudFZhbHVlKSA/IGN1cnJlbnRWYWx1ZS5sZW5ndGggIT09IDAgOiAhaXNFbXB0eVZhbHVlKGN1cnJlbnRWYWx1ZSl9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvZGl2PiA6IG51bGwgfVxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIDwvdGJvZHk+XG4gICAgICA8L3RhYmxlPlxuICAgIDwvZGl2PlxuICB9XG5cbiAgY29uc3Qgc2FtcGxlUmVxdWVzdEJvZHkgPSBnZXREZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZShcbiAgICByZXF1ZXN0Qm9keSxcbiAgICBjb250ZW50VHlwZSxcbiAgICBhY3RpdmVFeGFtcGxlc0tleSxcbiAgICBmbixcbiAgKVxuICBsZXQgbGFuZ3VhZ2UgPSBudWxsXG4gIGxldCB0ZXN0VmFsdWVGb3JKc29uID0gZ2V0S25vd25TeW50YXhIaWdobGlnaHRlckxhbmd1YWdlKHNhbXBsZVJlcXVlc3RCb2R5KVxuICBpZiAodGVzdFZhbHVlRm9ySnNvbikge1xuICAgIGxhbmd1YWdlID0gXCJqc29uXCJcbiAgfVxuICBjb25zdCBleGFtcGxlID0gaXNFeGVjdXRlID8gPFJlcXVlc3RCb2R5RWRpdG9yXG4gICAgICB2YWx1ZT17cmVxdWVzdEJvZHlWYWx1ZX1cbiAgICAgIGVycm9ycz17cmVxdWVzdEJvZHlFcnJvcnN9XG4gICAgICBkZWZhdWx0VmFsdWU9e3NhbXBsZVJlcXVlc3RCb2R5fVxuICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9XG4gICAgLz4gOiA8SGlnaGxpZ2h0Q29kZSBjbGFzc05hbWU9XCJib2R5LXBhcmFtX19leGFtcGxlXCIgbGFuZ3VhZ2U9e2xhbmd1YWdlfT5cbiAgICAgIHtzdHJpbmdpZnkocmVxdWVzdEJvZHlWYWx1ZSkgfHwgc2FtcGxlUmVxdWVzdEJvZHl9XG4gICAgPC9IaWdobGlnaHRDb2RlPlxuXG4gIHJldHVybiA8ZGl2PlxuICAgIHsgcmVxdWVzdEJvZHlEZXNjcmlwdGlvbiAmJlxuICAgICAgPE1hcmtkb3duIHNvdXJjZT17cmVxdWVzdEJvZHlEZXNjcmlwdGlvbn0gLz5cbiAgICB9XG4gICAge1xuICAgICAgc2FtcGxlRm9yTWVkaWFUeXBlID8gKFxuICAgICAgICA8RXhhbXBsZXNTZWxlY3RWYWx1ZVJldGFpbmVyXG4gICAgICAgICAgICB1c2VySGFzRWRpdGVkQm9keT17dXNlckhhc0VkaXRlZEJvZHl9XG4gICAgICAgICAgICBleGFtcGxlcz17c2FtcGxlRm9yTWVkaWFUeXBlfVxuICAgICAgICAgICAgY3VycmVudEtleT17YWN0aXZlRXhhbXBsZXNLZXl9XG4gICAgICAgICAgICBjdXJyZW50VXNlcklucHV0VmFsdWU9e3JlcXVlc3RCb2R5VmFsdWV9XG4gICAgICAgICAgICBvblNlbGVjdD17aGFuZGxlRXhhbXBsZXNTZWxlY3R9XG4gICAgICAgICAgICB1cGRhdGVWYWx1ZT17b25DaGFuZ2V9XG4gICAgICAgICAgICBkZWZhdWx0VG9GaXJzdEV4YW1wbGU9e3RydWV9XG4gICAgICAgICAgICBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH1cbiAgICAgICAgICAgIHNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnPXtzZXRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlRmxhZ31cbiAgICAgICAgICAvPlxuICAgICAgKSA6IG51bGxcbiAgICB9XG4gICAgPE1vZGVsRXhhbXBsZVxuICAgICAgZ2V0Q29tcG9uZW50PXsgZ2V0Q29tcG9uZW50IH1cbiAgICAgIGdldENvbmZpZ3M9eyBnZXRDb25maWdzIH1cbiAgICAgIHNwZWNTZWxlY3RvcnM9eyBzcGVjU2VsZWN0b3JzIH1cbiAgICAgIGV4cGFuZERlcHRoPXsxfVxuICAgICAgaXNFeGVjdXRlPXtpc0V4ZWN1dGV9XG4gICAgICBzY2hlbWE9e21lZGlhVHlwZVZhbHVlLmdldChcInNjaGVtYVwiKX1cbiAgICAgIHNwZWNQYXRoPXtzcGVjUGF0aC5wdXNoKFwiY29udGVudFwiLCBjb250ZW50VHlwZSl9XG4gICAgICBleGFtcGxlPXtleGFtcGxlfVxuICAgICAgaW5jbHVkZVdyaXRlT25seT17dHJ1ZX1cbiAgICAvPlxuICAgIHtcbiAgICAgIHNhbXBsZUZvck1lZGlhVHlwZSA/IChcbiAgICAgICAgPEV4YW1wbGVcbiAgICAgICAgICBleGFtcGxlPXtzYW1wbGVGb3JNZWRpYVR5cGUuZ2V0KGFjdGl2ZUV4YW1wbGVzS2V5KX1cbiAgICAgICAgICBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH1cbiAgICAgICAgICBnZXRDb25maWdzPXtnZXRDb25maWdzfVxuICAgICAgICAvPlxuICAgICAgKSA6IG51bGxcbiAgICB9XG4gIDwvZGl2PlxufVxuXG5SZXF1ZXN0Qm9keS5wcm9wVHlwZXMgPSB7XG4gIHVzZXJIYXNFZGl0ZWRCb2R5OiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICByZXF1ZXN0Qm9keTogSW1Qcm9wVHlwZXMub3JkZXJlZE1hcC5pc1JlcXVpcmVkLFxuICByZXF1ZXN0Qm9keVZhbHVlOiBJbVByb3BUeXBlcy5vcmRlcmVkTWFwLmlzUmVxdWlyZWQsXG4gIHJlcXVlc3RCb2R5SW5jbHVzaW9uU2V0dGluZzogSW1Qcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gIHJlcXVlc3RCb2R5RXJyb3JzOiBJbVByb3BUeXBlcy5saXN0LmlzUmVxdWlyZWQsXG4gIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZ2V0Q29uZmlnczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZm46IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBjb250ZW50VHlwZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgaXNFeGVjdXRlOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25DaGFuZ2VJbmNsdWRlRW1wdHk6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNwZWNQYXRoOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgYWN0aXZlRXhhbXBsZXNLZXk6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHVwZGF0ZUFjdGl2ZUV4YW1wbGVzS2V5OiBQcm9wVHlwZXMuZnVuYyxcbiAgc2V0UmV0YWluUmVxdWVzdEJvZHlWYWx1ZUZsYWc6IFByb3BUeXBlcy5mdW5jLFxuICBvYXMzQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkXG59XG5cbmV4cG9ydCBkZWZhdWx0IFJlcXVlc3RCb2R5XG4iLCJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcblxuY2xhc3MgT3BlcmF0aW9uTGluayBleHRlbmRzIENvbXBvbmVudCB7XG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGxpbmssIG5hbWUsIGdldENvbXBvbmVudCB9ID0gdGhpcy5wcm9wc1xuXG4gICAgY29uc3QgTWFya2Rvd24gPSBnZXRDb21wb25lbnQoXCJNYXJrZG93blwiLCB0cnVlKVxuXG4gICAgbGV0IHRhcmdldE9wID0gbGluay5nZXQoXCJvcGVyYXRpb25JZFwiKSB8fCBsaW5rLmdldChcIm9wZXJhdGlvblJlZlwiKVxuICAgIGxldCBwYXJhbWV0ZXJzID0gbGluay5nZXQoXCJwYXJhbWV0ZXJzXCIpICYmIGxpbmsuZ2V0KFwicGFyYW1ldGVyc1wiKS50b0pTKClcbiAgICBsZXQgZGVzY3JpcHRpb24gPSBsaW5rLmdldChcImRlc2NyaXB0aW9uXCIpXG5cbiAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJvcGVyYXRpb24tbGlua1wiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICA8Yj48Y29kZT57bmFtZX08L2NvZGU+PC9iPlxuICAgICAgICB7IGRlc2NyaXB0aW9uID8gPE1hcmtkb3duIHNvdXJjZT17ZGVzY3JpcHRpb259PjwvTWFya2Rvd24+IDogbnVsbCB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxwcmU+XG4gICAgICAgIE9wZXJhdGlvbiBge3RhcmdldE9wfWA8YnIgLz48YnIgLz5cbiAgICAgICAgUGFyYW1ldGVycyB7cGFkU3RyaW5nKDAsIEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlcnMsIG51bGwsIDIpKSB8fCBcInt9XCJ9PGJyIC8+XG4gICAgICA8L3ByZT5cbiAgICA8L2Rpdj5cbiAgfVxuXG59XG5cbmZ1bmN0aW9uIHBhZFN0cmluZyhuLCBzdHJpbmcpIHtcbiAgaWYodHlwZW9mIHN0cmluZyAhPT0gXCJzdHJpbmdcIikgeyByZXR1cm4gXCJcIiB9XG4gIHJldHVybiBzdHJpbmdcbiAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAubWFwKChsaW5lLCBpKSA9PiBpID4gMCA/IEFycmF5KG4gKyAxKS5qb2luKFwiIFwiKSArIGxpbmUgOiBsaW5lKVxuICAgIC5qb2luKFwiXFxuXCIpXG59XG5cbk9wZXJhdGlvbkxpbmsucHJvcFR5cGVzID0ge1xuICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGxpbms6IEltUHJvcFR5cGVzLm9yZGVyZWRNYXAuaXNSZXF1aXJlZCxcbiAgbmFtZTogUHJvcFR5cGVzLlN0cmluZ1xufVxuXG5leHBvcnQgZGVmYXVsdCBPcGVyYXRpb25MaW5rXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBPcmRlcmVkTWFwIH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5cbmNvbnN0IFNlcnZlcnMgPSAoe1xuICBzZXJ2ZXJzLFxuICBjdXJyZW50U2VydmVyLFxuICBzZXRTZWxlY3RlZFNlcnZlcixcbiAgc2V0U2VydmVyVmFyaWFibGVWYWx1ZSxcbiAgZ2V0U2VydmVyVmFyaWFibGUsXG4gIGdldEVmZmVjdGl2ZVNlcnZlclZhbHVlLFxufSkgPT4ge1xuICBjb25zdCBjdXJyZW50U2VydmVyRGVmaW5pdGlvbiA9XG4gICAgc2VydmVycy5maW5kKChzKSA9PiBzLmdldChcInVybFwiKSA9PT0gY3VycmVudFNlcnZlcikgfHwgT3JkZXJlZE1hcCgpXG4gIGNvbnN0IGN1cnJlbnRTZXJ2ZXJWYXJpYWJsZURlZnMgPVxuICAgIGN1cnJlbnRTZXJ2ZXJEZWZpbml0aW9uLmdldChcInZhcmlhYmxlc1wiKSB8fCBPcmRlcmVkTWFwKClcbiAgY29uc3Qgc2hvdWxkU2hvd1ZhcmlhYmxlVUkgPSBjdXJyZW50U2VydmVyVmFyaWFibGVEZWZzLnNpemUgIT09IDBcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChjdXJyZW50U2VydmVyKSByZXR1cm5cblxuICAgIC8vIGZpcmUgJ2NoYW5nZScgZXZlbnQgdG8gc2V0IGRlZmF1bHQgJ3ZhbHVlJyBvZiBzZWxlY3RcbiAgICBzZXRTZWxlY3RlZFNlcnZlcihzZXJ2ZXJzLmZpcnN0KCk/LmdldChcInVybFwiKSlcbiAgfSwgW10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBzZXJ2ZXIgaGFzIGNoYW5nZWQsIHdlIG1heSBuZWVkIHRvIHNldCBkZWZhdWx0IHZhbHVlc1xuICAgIGNvbnN0IGN1cnJlbnRTZXJ2ZXJEZWZpbml0aW9uID0gc2VydmVycy5maW5kKFxuICAgICAgKHNlcnZlcikgPT4gc2VydmVyLmdldChcInVybFwiKSA9PT0gY3VycmVudFNlcnZlclxuICAgIClcbiAgICBpZiAoIWN1cnJlbnRTZXJ2ZXJEZWZpbml0aW9uKSB7XG4gICAgICBzZXRTZWxlY3RlZFNlcnZlcihzZXJ2ZXJzLmZpcnN0KCkuZ2V0KFwidXJsXCIpKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudFNlcnZlclZhcmlhYmxlRGVmcyA9XG4gICAgICBjdXJyZW50U2VydmVyRGVmaW5pdGlvbi5nZXQoXCJ2YXJpYWJsZXNcIikgfHwgT3JkZXJlZE1hcCgpXG4gICAgY3VycmVudFNlcnZlclZhcmlhYmxlRGVmcy5tYXAoKHZhbCwga2V5KSA9PiB7XG4gICAgICBzZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlKHtcbiAgICAgICAgc2VydmVyOiBjdXJyZW50U2VydmVyLFxuICAgICAgICBrZXksXG4gICAgICAgIHZhbDogdmFsLmdldChcImRlZmF1bHRcIikgfHwgXCJcIixcbiAgICAgIH0pXG4gICAgfSlcbiAgfSwgW2N1cnJlbnRTZXJ2ZXIsIHNlcnZlcnNdKVxuXG4gIGNvbnN0IGhhbmRsZVNlcnZlckNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChlKSA9PiB7XG4gICAgICBzZXRTZWxlY3RlZFNlcnZlcihlLnRhcmdldC52YWx1ZSlcbiAgICB9LFxuICAgIFtzZXRTZWxlY3RlZFNlcnZlcl1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVNlcnZlclZhcmlhYmxlQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKGUpID0+IHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlTmFtZSA9IGUudGFyZ2V0LmdldEF0dHJpYnV0ZShcImRhdGEtdmFyaWFibGVcIilcbiAgICAgIGNvbnN0IG5ld1ZhcmlhYmxlVmFsdWUgPSBlLnRhcmdldC52YWx1ZVxuXG4gICAgICBzZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlKHtcbiAgICAgICAgc2VydmVyOiBjdXJyZW50U2VydmVyLFxuICAgICAgICBrZXk6IHZhcmlhYmxlTmFtZSxcbiAgICAgICAgdmFsOiBuZXdWYXJpYWJsZVZhbHVlLFxuICAgICAgfSlcbiAgICB9LFxuICAgIFtzZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlLCBjdXJyZW50U2VydmVyXVxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInNlcnZlcnNcIj5cbiAgICAgIDxsYWJlbCBodG1sRm9yPVwic2VydmVyc1wiPlxuICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVNlcnZlckNoYW5nZX1cbiAgICAgICAgICB2YWx1ZT17Y3VycmVudFNlcnZlcn1cbiAgICAgICAgICBpZD1cInNlcnZlcnNcIlxuICAgICAgICA+XG4gICAgICAgICAge3NlcnZlcnNcbiAgICAgICAgICAgIC52YWx1ZVNlcSgpXG4gICAgICAgICAgICAubWFwKChzZXJ2ZXIpID0+IChcbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT17c2VydmVyLmdldChcInVybFwiKX0ga2V5PXtzZXJ2ZXIuZ2V0KFwidXJsXCIpfT5cbiAgICAgICAgICAgICAgICB7c2VydmVyLmdldChcInVybFwiKX1cbiAgICAgICAgICAgICAgICB7c2VydmVyLmdldChcImRlc2NyaXB0aW9uXCIpICYmIGAgLSAke3NlcnZlci5nZXQoXCJkZXNjcmlwdGlvblwiKX1gfVxuICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICkpXG4gICAgICAgICAgICAudG9BcnJheSgpfVxuICAgICAgICA8L3NlbGVjdD5cbiAgICAgIDwvbGFiZWw+XG4gICAgICB7c2hvdWxkU2hvd1ZhcmlhYmxlVUkgJiYgKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcImNvbXB1dGVkLXVybFwifT5cbiAgICAgICAgICAgIENvbXB1dGVkIFVSTDpcbiAgICAgICAgICAgIDxjb2RlPntnZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZShjdXJyZW50U2VydmVyKX08L2NvZGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGg0PlNlcnZlciB2YXJpYWJsZXM8L2g0PlxuICAgICAgICAgIDx0YWJsZT5cbiAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAge2N1cnJlbnRTZXJ2ZXJWYXJpYWJsZURlZnMuZW50cnlTZXEoKS5tYXAoKFtuYW1lLCB2YWxdKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDx0ciBrZXk9e25hbWV9PlxuICAgICAgICAgICAgICAgICAgICA8dGQ+e25hbWV9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgIHt2YWwuZ2V0KFwiZW51bVwiKSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS12YXJpYWJsZT17bmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVNlcnZlclZhcmlhYmxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFsLmdldChcImVudW1cIikubWFwKChlbnVtVmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bVZhbHVlID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFNlcnZlclZhcmlhYmxlKGN1cnJlbnRTZXJ2ZXIsIG5hbWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtlbnVtVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtlbnVtVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtlbnVtVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPXtcInRleHRcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2dldFNlcnZlclZhcmlhYmxlKGN1cnJlbnRTZXJ2ZXIsIG5hbWUpIHx8IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVTZXJ2ZXJWYXJpYWJsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS12YXJpYWJsZT17bmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgID48L2lucHV0PlxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKVxufVxuU2VydmVycy5wcm9wVHlwZXMgPSB7XG4gIHNlcnZlcnM6IEltUHJvcFR5cGVzLmxpc3QuaXNSZXF1aXJlZCxcbiAgY3VycmVudFNlcnZlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBzZXRTZWxlY3RlZFNlcnZlcjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc2V0U2VydmVyVmFyaWFibGVWYWx1ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZ2V0U2VydmVyVmFyaWFibGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGdldEVmZmVjdGl2ZVNlcnZlclZhbHVlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBTZXJ2ZXJzXG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZXJ2ZXJzQ29udGFpbmVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBvYXMzU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgb2FzM0FjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIH1cblxuICByZW5kZXIgKCkge1xuICAgIGNvbnN0IHtzcGVjU2VsZWN0b3JzLCBvYXMzU2VsZWN0b3JzLCBvYXMzQWN0aW9ucywgZ2V0Q29tcG9uZW50fSA9IHRoaXMucHJvcHNcblxuICAgIGNvbnN0IHNlcnZlcnMgPSBzcGVjU2VsZWN0b3JzLnNlcnZlcnMoKVxuXG4gICAgY29uc3QgU2VydmVycyA9IGdldENvbXBvbmVudChcIlNlcnZlcnNcIilcblxuICAgIHJldHVybiBzZXJ2ZXJzICYmIHNlcnZlcnMuc2l6ZSA/IChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInNlcnZlcnMtdGl0bGVcIj5TZXJ2ZXJzPC9zcGFuPlxuICAgICAgICA8U2VydmVyc1xuICAgICAgICAgIHNlcnZlcnM9e3NlcnZlcnN9XG4gICAgICAgICAgY3VycmVudFNlcnZlcj17b2FzM1NlbGVjdG9ycy5zZWxlY3RlZFNlcnZlcigpfVxuICAgICAgICAgIHNldFNlbGVjdGVkU2VydmVyPXtvYXMzQWN0aW9ucy5zZXRTZWxlY3RlZFNlcnZlcn1cbiAgICAgICAgICBzZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlPXtvYXMzQWN0aW9ucy5zZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlfVxuICAgICAgICAgIGdldFNlcnZlclZhcmlhYmxlPXtvYXMzU2VsZWN0b3JzLnNlcnZlclZhcmlhYmxlVmFsdWV9XG4gICAgICAgICAgZ2V0RWZmZWN0aXZlU2VydmVyVmFsdWU9e29hczNTZWxlY3RvcnMuc2VydmVyRWZmZWN0aXZlVmFsdWV9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj4gKSA6IG51bGxcbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgY3ggZnJvbSBcImNsYXNzbmFtZXNcIlxuaW1wb3J0IHsgc3RyaW5naWZ5IH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuXG5jb25zdCBOT09QID0gRnVuY3Rpb24ucHJvdG90eXBlXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlcXVlc3RCb2R5RWRpdG9yIGV4dGVuZHMgUHVyZUNvbXBvbmVudCB7XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHZhbHVlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGRlZmF1bHRWYWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBlcnJvcnM6IFByb3BUeXBlcy5hcnJheSxcbiAgfVxuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgb25DaGFuZ2U6IE5PT1AsXG4gICAgdXNlckhhc0VkaXRlZEJvZHk6IGZhbHNlLFxuICB9XG5cbiAgY29uc3RydWN0b3IocHJvcHMsIGNvbnRleHQpIHtcbiAgICBzdXBlcihwcm9wcywgY29udGV4dClcblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICB2YWx1ZTogc3RyaW5naWZ5KHByb3BzLnZhbHVlKSB8fCBwcm9wcy5kZWZhdWx0VmFsdWVcbiAgICB9XG5cbiAgICAvLyB0aGlzIGlzIHRoZSBnbHVlIHRoYXQgbWFrZXMgc3VyZSBvdXIgaW5pdGlhbCB2YWx1ZSBnZXRzIHNldCBhcyB0aGVcbiAgICAvLyBjdXJyZW50IHJlcXVlc3QgYm9keSB2YWx1ZVxuICAgIC8vIFRPRE86IGFjaGlldmUgdGhpcyBpbiBhIHNlbGVjdG9yIGluc3RlYWRcbiAgICBwcm9wcy5vbkNoYW5nZShwcm9wcy52YWx1ZSlcbiAgfVxuXG4gIGFwcGx5RGVmYXVsdFZhbHVlID0gKG5leHRQcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgb25DaGFuZ2UsIGRlZmF1bHRWYWx1ZSB9ID0gKG5leHRQcm9wcyA/IG5leHRQcm9wcyA6IHRoaXMucHJvcHMpXG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHZhbHVlOiBkZWZhdWx0VmFsdWVcbiAgICB9KVxuXG4gICAgcmV0dXJuIG9uQ2hhbmdlKGRlZmF1bHRWYWx1ZSlcbiAgfVxuXG4gIG9uQ2hhbmdlID0gKHZhbHVlKSA9PiB7XG4gICAgdGhpcy5wcm9wcy5vbkNoYW5nZShzdHJpbmdpZnkodmFsdWUpKVxuICB9XG5cbiAgb25Eb21DaGFuZ2UgPSBlID0+IHtcbiAgICBjb25zdCBpbnB1dFZhbHVlID0gZS50YXJnZXQudmFsdWVcblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgdmFsdWU6IGlucHV0VmFsdWUsXG4gICAgfSwgKCkgPT4gdGhpcy5vbkNoYW5nZShpbnB1dFZhbHVlKSlcbiAgfVxuXG4gIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcykge1xuICAgIGlmKFxuICAgICAgdGhpcy5wcm9wcy52YWx1ZSAhPT0gbmV4dFByb3BzLnZhbHVlICYmXG4gICAgICBuZXh0UHJvcHMudmFsdWUgIT09IHRoaXMuc3RhdGUudmFsdWVcbiAgICApIHtcblxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHZhbHVlOiBzdHJpbmdpZnkobmV4dFByb3BzLnZhbHVlKVxuICAgICAgfSlcbiAgICB9XG5cblxuXG4gICAgaWYoIW5leHRQcm9wcy52YWx1ZSAmJiBuZXh0UHJvcHMuZGVmYXVsdFZhbHVlICYmICEhdGhpcy5zdGF0ZS52YWx1ZSkge1xuICAgICAgLy8gaWYgbmV3IHZhbHVlIGlzIGZhbHN5LCB3ZSBoYXZlIGEgZGVmYXVsdCwgQU5EIHRoZSBmYWxzeSB2YWx1ZSBkaWRuJ3RcbiAgICAgIC8vIGNvbWUgZnJvbSB1cyBvcmlnaW5hbGx5XG4gICAgICB0aGlzLmFwcGx5RGVmYXVsdFZhbHVlKG5leHRQcm9wcylcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHtcbiAgICAgIGdldENvbXBvbmVudCxcbiAgICAgIGVycm9ycyxcbiAgICB9ID0gdGhpcy5wcm9wc1xuXG4gICAgbGV0IHtcbiAgICAgIHZhbHVlXG4gICAgfSA9IHRoaXMuc3RhdGVcblxuICAgIGxldCBpc0ludmFsaWQgPSBlcnJvcnMuc2l6ZSA+IDAgPyB0cnVlIDogZmFsc2VcbiAgICBjb25zdCBUZXh0QXJlYSA9IGdldENvbXBvbmVudChcIlRleHRBcmVhXCIpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJib2R5LXBhcmFtXCI+XG4gICAgICAgIDxUZXh0QXJlYVxuICAgICAgICAgIGNsYXNzTmFtZT17Y3goXCJib2R5LXBhcmFtX190ZXh0XCIsIHsgaW52YWxpZDogaXNJbnZhbGlkIH0gKX1cbiAgICAgICAgICB0aXRsZT17ZXJyb3JzLnNpemUgPyBlcnJvcnMuam9pbihcIiwgXCIpIDogXCJcIn1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgb25DaGFuZ2U9eyB0aGlzLm9uRG9tQ2hhbmdlIH1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIClcblxuICB9XG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIdHRwQXV0aCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgYXV0aG9yaXplZDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZXJyU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgc2NoZW1hOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBhdXRoU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWRcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3BzLCBjb250ZXh0KSB7XG4gICAgc3VwZXIocHJvcHMsIGNvbnRleHQpXG4gICAgbGV0IHsgbmFtZSwgc2NoZW1hIH0gPSB0aGlzLnByb3BzXG4gICAgbGV0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpXG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHNjaGVtYTogc2NoZW1hLFxuICAgICAgdmFsdWU6IHZhbHVlXG4gICAgfVxuICB9XG5cbiAgZ2V0VmFsdWUgKCkge1xuICAgIGxldCB7IG5hbWUsIGF1dGhvcml6ZWQgfSA9IHRoaXMucHJvcHNcblxuICAgIHJldHVybiBhdXRob3JpemVkICYmIGF1dGhvcml6ZWQuZ2V0SW4oW25hbWUsIFwidmFsdWVcIl0pXG4gIH1cblxuICBvbkNoYW5nZSA9KGUpID0+IHtcbiAgICBsZXQgeyBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wc1xuICAgIGxldCB7IHZhbHVlLCBuYW1lIH0gPSBlLnRhcmdldFxuXG4gICAgbGV0IG5ld1ZhbHVlID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zdGF0ZS52YWx1ZSlcblxuICAgIGlmKG5hbWUpIHtcbiAgICAgIG5ld1ZhbHVlW25hbWVdID0gdmFsdWVcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3VmFsdWUgPSB2YWx1ZVxuICAgIH1cblxuICAgIHRoaXMuc2V0U3RhdGUoeyB2YWx1ZTogbmV3VmFsdWUgfSwgKCkgPT4gb25DaGFuZ2UodGhpcy5zdGF0ZSkpXG5cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyBzY2hlbWEsIGdldENvbXBvbmVudCwgZXJyU2VsZWN0b3JzLCBuYW1lLCBhdXRoU2VsZWN0b3JzIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgSW5wdXQgPSBnZXRDb21wb25lbnQoXCJJbnB1dFwiKVxuICAgIGNvbnN0IFJvdyA9IGdldENvbXBvbmVudChcIlJvd1wiKVxuICAgIGNvbnN0IENvbCA9IGdldENvbXBvbmVudChcIkNvbFwiKVxuICAgIGNvbnN0IEF1dGhFcnJvciA9IGdldENvbXBvbmVudChcImF1dGhFcnJvclwiKVxuICAgIGNvbnN0IE1hcmtkb3duID0gZ2V0Q29tcG9uZW50KFwiTWFya2Rvd25cIiwgdHJ1ZSlcbiAgICBjb25zdCBKdW1wVG9QYXRoID0gZ2V0Q29tcG9uZW50KFwiSnVtcFRvUGF0aFwiLCB0cnVlKVxuXG4gICAgY29uc3Qgc2NoZW1lID0gKHNjaGVtYS5nZXQoXCJzY2hlbWVcIikgfHwgXCJcIikudG9Mb3dlckNhc2UoKVxuICAgIGNvbnN0IHBhdGggPSBhdXRoU2VsZWN0b3JzLnNlbGVjdEF1dGhQYXRoKG5hbWUpXG4gICAgbGV0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpXG4gICAgbGV0IGVycm9ycyA9IGVyclNlbGVjdG9ycy5hbGxFcnJvcnMoKS5maWx0ZXIoIGVyciA9PiBlcnIuZ2V0KFwiYXV0aElkXCIpID09PSBuYW1lKVxuXG4gICAgaWYoc2NoZW1lID09PSBcImJhc2ljXCIpIHtcbiAgICAgIGxldCB1c2VybmFtZSA9IHZhbHVlID8gdmFsdWUuZ2V0KFwidXNlcm5hbWVcIikgOiBudWxsXG4gICAgICByZXR1cm4gPGRpdj5cbiAgICAgICAgPGg0PlxuICAgICAgICAgIDxjb2RlPntuYW1lfTwvY29kZT4mbmJzcDtcbiAgICAgICAgICAgIChodHRwLCBCYXNpYylcbiAgICAgICAgICAgIDxKdW1wVG9QYXRoIHBhdGg9e3BhdGh9IC8+XG4gICAgICAgICAgPC9oND5cbiAgICAgICAgeyB1c2VybmFtZSAmJiA8aDY+QXV0aG9yaXplZDwvaDY+IH1cbiAgICAgICAgPFJvdz5cbiAgICAgICAgICA8TWFya2Rvd24gc291cmNlPXsgc2NoZW1hLmdldChcImRlc2NyaXB0aW9uXCIpIH0gLz5cbiAgICAgICAgPC9Sb3c+XG4gICAgICAgIDxSb3c+XG4gICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJhdXRoLWJhc2ljLXVzZXJuYW1lXCI+VXNlcm5hbWU6PC9sYWJlbD5cbiAgICAgICAgICB7XG4gICAgICAgICAgICB1c2VybmFtZSA/IDxjb2RlPiB7IHVzZXJuYW1lIH0gPC9jb2RlPlxuICAgICAgICAgICAgICA6IDxDb2w+XG4gICAgICAgICAgICAgICAgICA8SW5wdXQgXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiYXV0aC1iYXNpYy11c2VybmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9XCJyZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ1c2VybmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJhdXRoLWJhc2ljLXVzZXJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyB0aGlzLm9uQ2hhbmdlIH1cbiAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9Sb3c+XG4gICAgICAgIDxSb3c+XG4gICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJhdXRoLWJhc2ljLXBhc3N3b3JkXCI+UGFzc3dvcmQ6PC9sYWJlbD5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdXNlcm5hbWUgPyA8Y29kZT4gKioqKioqIDwvY29kZT5cbiAgICAgICAgICAgICAgICAgICAgICAgOiA8Q29sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYXV0aC1iYXNpYy1wYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJuZXctcGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiYXV0aC1iYXNpYy1wYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17IHRoaXMub25DaGFuZ2UgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9Sb3c+XG4gICAgICAgIHtcbiAgICAgICAgICBlcnJvcnMudmFsdWVTZXEoKS5tYXAoIChlcnJvciwga2V5KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gPEF1dGhFcnJvciBlcnJvcj17IGVycm9yIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17IGtleSB9Lz5cbiAgICAgICAgICB9IClcbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgaWYoc2NoZW1lID09PSBcImJlYXJlclwiKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxoND5cbiAgICAgICAgICAgIDxjb2RlPntuYW1lfTwvY29kZT4mbmJzcDtcbiAgICAgICAgICAgICAgKGh0dHAsIEJlYXJlcilcbiAgICAgICAgICAgICAgPEp1bXBUb1BhdGggcGF0aD17cGF0aH0gLz5cbiAgICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgICB7IHZhbHVlICYmIDxoNj5BdXRob3JpemVkPC9oNj59XG4gICAgICAgICAgICA8Um93PlxuICAgICAgICAgICAgICA8TWFya2Rvd24gc291cmNlPXsgc2NoZW1hLmdldChcImRlc2NyaXB0aW9uXCIpIH0gLz5cbiAgICAgICAgICAgIDwvUm93PlxuICAgICAgICAgICAgPFJvdz5cbiAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJhdXRoLWJlYXJlci12YWx1ZVwiPlZhbHVlOjwvbGFiZWw+XG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA/IDxjb2RlPiAqKioqKiogPC9jb2RlPlxuICAgICAgICAgICAgICA6IDxDb2w+XG4gICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJhdXRoLWJlYXJlci12YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cImF1dGgtYmVhcmVyLXZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyB0aGlzLm9uQ2hhbmdlIH1cbiAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9Sb3c+XG4gICAgICAgIHtcbiAgICAgICAgICBlcnJvcnMudmFsdWVTZXEoKS5tYXAoIChlcnJvciwga2V5KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gPEF1dGhFcnJvciBlcnJvcj17IGVycm9yIH1cbiAgICAgICAgICAgICAga2V5PXsga2V5IH0vPlxuICAgICAgICAgIH0gKVxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICApXG4gICAgfVxuICByZXR1cm4gPGRpdj5cbiAgICA8ZW0+PGI+e25hbWV9PC9iPiBIVFRQIGF1dGhlbnRpY2F0aW9uOiB1bnN1cHBvcnRlZCBzY2hlbWUge2AnJHtzY2hlbWV9J2B9PC9lbT5cbiAgPC9kaXY+XG4gIH1cbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgSW1Qcm9wVHlwZXMgZnJvbSBcInJlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBPcGVyYXRpb25TZXJ2ZXJzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAvLyBmb3Igc2VsZlxuICAgIHBhdGg6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBtZXRob2Q6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBvcGVyYXRpb25TZXJ2ZXJzOiBJbVByb3BUeXBlcy5saXN0LFxuICAgIHBhdGhTZXJ2ZXJzOiBJbVByb3BUeXBlcy5saXN0LFxuICAgIHNldFNlbGVjdGVkU2VydmVyOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNldFNlcnZlclZhcmlhYmxlVmFsdWU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZ2V0U2VsZWN0ZWRTZXJ2ZXI6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZ2V0U2VydmVyVmFyaWFibGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZ2V0RWZmZWN0aXZlU2VydmVyVmFsdWU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG5cbiAgICAvLyB1dGlsc1xuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZFxuICB9XG5cbiAgc2V0U2VsZWN0ZWRTZXJ2ZXIgPSAoc2VydmVyKSA9PiB7XG4gICAgY29uc3QgeyBwYXRoLCBtZXRob2QgfSA9IHRoaXMucHJvcHNcbiAgICAvLyBGSVhNRTogd2Ugc2hvdWxkIGJlIGtlZXBpbmcgdXAgd2l0aCB0aGlzIGluIHByb3BzL3N0YXRlIHVwc3RyZWFtIG9mIHVzXG4gICAgLy8gaW5zdGVhZCBvZiBjaGVhdGluZ+KEoiB3aXRoIGBmb3JjZVVwZGF0ZWBcbiAgICB0aGlzLmZvcmNlVXBkYXRlKClcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5zZXRTZWxlY3RlZFNlcnZlcihzZXJ2ZXIsIGAke3BhdGh9OiR7bWV0aG9kfWApXG4gIH1cblxuICBzZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlID0gKG9iaikgPT4ge1xuICAgIGNvbnN0IHsgcGF0aCwgbWV0aG9kIH0gPSB0aGlzLnByb3BzXG4gICAgLy8gRklYTUU6IHdlIHNob3VsZCBiZSBrZWVwaW5nIHVwIHdpdGggdGhpcyBpbiBwcm9wcy9zdGF0ZSB1cHN0cmVhbSBvZiB1c1xuICAgIC8vIGluc3RlYWQgb2YgY2hlYXRpbmfihKIgd2l0aCBgZm9yY2VVcGRhdGVgXG4gICAgdGhpcy5mb3JjZVVwZGF0ZSgpXG4gICAgcmV0dXJuIHRoaXMucHJvcHMuc2V0U2VydmVyVmFyaWFibGVWYWx1ZSh7XG4gICAgICAuLi5vYmosXG4gICAgICBuYW1lc3BhY2U6IGAke3BhdGh9OiR7bWV0aG9kfWBcbiAgICB9KVxuICB9XG5cbiAgZ2V0U2VsZWN0ZWRTZXJ2ZXIgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBwYXRoLCBtZXRob2QgfSA9IHRoaXMucHJvcHNcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5nZXRTZWxlY3RlZFNlcnZlcihgJHtwYXRofToke21ldGhvZH1gKVxuICB9XG5cbiAgZ2V0U2VydmVyVmFyaWFibGUgPSAoc2VydmVyLCBrZXkpID0+IHtcbiAgICBjb25zdCB7IHBhdGgsIG1ldGhvZCB9ID0gdGhpcy5wcm9wc1xuICAgIHJldHVybiB0aGlzLnByb3BzLmdldFNlcnZlclZhcmlhYmxlKHtcbiAgICAgIG5hbWVzcGFjZTogYCR7cGF0aH06JHttZXRob2R9YCxcbiAgICAgIHNlcnZlclxuICAgIH0sIGtleSlcbiAgfVxuXG4gIGdldEVmZmVjdGl2ZVNlcnZlclZhbHVlID0gKHNlcnZlcikgPT4ge1xuICAgIGNvbnN0IHsgcGF0aCwgbWV0aG9kIH0gPSB0aGlzLnByb3BzXG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZ2V0RWZmZWN0aXZlU2VydmVyVmFsdWUoe1xuICAgICAgc2VydmVyLFxuICAgICAgbmFtZXNwYWNlOiBgJHtwYXRofToke21ldGhvZH1gXG4gICAgfSlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICAvLyBmb3Igc2VsZlxuICAgICAgb3BlcmF0aW9uU2VydmVycyxcbiAgICAgIHBhdGhTZXJ2ZXJzLFxuXG4gICAgICAvLyB1dGlsXG4gICAgICBnZXRDb21wb25lbnRcbiAgICB9ID0gdGhpcy5wcm9wc1xuXG4gICAgaWYoIW9wZXJhdGlvblNlcnZlcnMgJiYgIXBhdGhTZXJ2ZXJzKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIGNvbnN0IFNlcnZlcnMgPSBnZXRDb21wb25lbnQoXCJTZXJ2ZXJzXCIpXG5cbiAgICBjb25zdCBzZXJ2ZXJzVG9EaXNwbGF5ID0gb3BlcmF0aW9uU2VydmVycyB8fCBwYXRoU2VydmVyc1xuICAgIGNvbnN0IGRpc3BsYXlpbmcgPSBvcGVyYXRpb25TZXJ2ZXJzID8gXCJvcGVyYXRpb25cIiA6IFwicGF0aFwiXG5cbiAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJvcGJsb2NrLXNlY3Rpb24gb3BlcmF0aW9uLXNlcnZlcnNcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwib3BibG9jay1zZWN0aW9uLWhlYWRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRhYi1oZWFkZXJcIj5cbiAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwib3BibG9jay10aXRsZVwiPlNlcnZlcnM8L2g0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJvcGJsb2NrLWRlc2NyaXB0aW9uLXdyYXBwZXJcIj5cbiAgICAgICAgPGg0IGNsYXNzTmFtZT1cIm1lc3NhZ2VcIj5cbiAgICAgICAgICBUaGVzZSB7ZGlzcGxheWluZ30tbGV2ZWwgb3B0aW9ucyBvdmVycmlkZSB0aGUgZ2xvYmFsIHNlcnZlciBvcHRpb25zLlxuICAgICAgICA8L2g0PlxuICAgICAgICA8U2VydmVyc1xuICAgICAgICAgIHNlcnZlcnM9e3NlcnZlcnNUb0Rpc3BsYXl9XG4gICAgICAgICAgY3VycmVudFNlcnZlcj17dGhpcy5nZXRTZWxlY3RlZFNlcnZlcigpfVxuICAgICAgICAgIHNldFNlbGVjdGVkU2VydmVyPXt0aGlzLnNldFNlbGVjdGVkU2VydmVyfVxuICAgICAgICAgIHNldFNlcnZlclZhcmlhYmxlVmFsdWU9e3RoaXMuc2V0U2VydmVyVmFyaWFibGVWYWx1ZX1cbiAgICAgICAgICBnZXRTZXJ2ZXJWYXJpYWJsZT17dGhpcy5nZXRTZXJ2ZXJWYXJpYWJsZX1cbiAgICAgICAgICBnZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZT17dGhpcy5nZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZX1cbiAgICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cbn1cbiIsImltcG9ydCBDYWxsYmFja3MgZnJvbSBcIi4vY2FsbGJhY2tzXCJcbmltcG9ydCBSZXF1ZXN0Qm9keSBmcm9tIFwiLi9yZXF1ZXN0LWJvZHlcIlxuaW1wb3J0IE9wZXJhdGlvbkxpbmsgZnJvbSBcIi4vb3BlcmF0aW9uLWxpbmtcIlxuaW1wb3J0IFNlcnZlcnMgZnJvbSBcIi4vc2VydmVyc1wiXG5pbXBvcnQgU2VydmVyc0NvbnRhaW5lciBmcm9tIFwiLi9zZXJ2ZXJzLWNvbnRhaW5lclwiXG5pbXBvcnQgUmVxdWVzdEJvZHlFZGl0b3IgZnJvbSBcIi4vcmVxdWVzdC1ib2R5LWVkaXRvclwiXG5pbXBvcnQgSHR0cEF1dGggZnJvbSBcIi4vYXV0aC9odHRwLWF1dGhcIlxuaW1wb3J0IE9wZXJhdGlvblNlcnZlcnMgZnJvbSBcIi4vb3BlcmF0aW9uLXNlcnZlcnNcIlxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIENhbGxiYWNrcyxcbiAgSHR0cEF1dGgsXG4gIFJlcXVlc3RCb2R5LFxuICBTZXJ2ZXJzLFxuICBTZXJ2ZXJzQ29udGFpbmVyLFxuICBSZXF1ZXN0Qm9keUVkaXRvcixcbiAgT3BlcmF0aW9uU2VydmVycyxcbiAgb3BlcmF0aW9uTGluazogT3BlcmF0aW9uTGluayxcbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgY3ggZnJvbSBcImNsYXNzbmFtZXNcIlxuaW1wb3J0IHsgUmVtYXJrYWJsZSB9IGZyb20gXCJyZW1hcmthYmxlXCJcbmltcG9ydCB7IE9BUzNDb21wb25lbnRXcmFwRmFjdG9yeSB9IGZyb20gXCIuLi9oZWxwZXJzXCJcbmltcG9ydCB7IHNhbml0aXplciB9IGZyb20gXCJjb3JlL2NvbXBvbmVudHMvcHJvdmlkZXJzL21hcmtkb3duXCJcblxuY29uc3QgcGFyc2VyID0gbmV3IFJlbWFya2FibGUoXCJjb21tb25tYXJrXCIpXG5wYXJzZXIuYmxvY2sucnVsZXIuZW5hYmxlKFtcInRhYmxlXCJdKVxucGFyc2VyLnNldCh7IGxpbmtUYXJnZXQ6IFwiX2JsYW5rXCIgfSlcblxuZXhwb3J0IGNvbnN0IE1hcmtkb3duID0gKHsgc291cmNlLCBjbGFzc05hbWUgPSBcIlwiLCBnZXRDb25maWdzID0gKCkgPT4gKHsgdXNlVW5zYWZlTWFya2Rvd246IGZhbHNlIH0pIH0pID0+IHtcbiAgaWYodHlwZW9mIHNvdXJjZSAhPT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBpZiAoIHNvdXJjZSApIHtcbiAgICBjb25zdCB7IHVzZVVuc2FmZU1hcmtkb3duIH0gPSBnZXRDb25maWdzKClcbiAgICBjb25zdCBodG1sID0gcGFyc2VyLnJlbmRlcihzb3VyY2UpXG4gICAgY29uc3Qgc2FuaXRpemVkID0gc2FuaXRpemVyKGh0bWwsIHsgdXNlVW5zYWZlTWFya2Rvd24gfSlcblxuICAgIGxldCB0cmltbWVkXG5cbiAgICBpZih0eXBlb2Ygc2FuaXRpemVkID09PSBcInN0cmluZ1wiKSB7XG4gICAgICB0cmltbWVkID0gc2FuaXRpemVkLnRyaW0oKVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgX19odG1sOiB0cmltbWVkXG4gICAgICAgIH19XG4gICAgICAgIGNsYXNzTmFtZT17Y3goY2xhc3NOYW1lLCBcInJlbmRlcmVkTWFya2Rvd25cIil9XG4gICAgICAvPlxuICAgIClcbiAgfVxuICByZXR1cm4gbnVsbFxufVxuTWFya2Rvd24ucHJvcFR5cGVzID0ge1xuICBzb3VyY2U6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgZ2V0Q29uZmlnczogUHJvcFR5cGVzLmZ1bmMsXG59XG5cbmV4cG9ydCBkZWZhdWx0IE9BUzNDb21wb25lbnRXcmFwRmFjdG9yeShNYXJrZG93bilcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgT0FTM0NvbXBvbmVudFdyYXBGYWN0b3J5IH0gZnJvbSBcIi4uLy4uL2hlbHBlcnNcIlxuXG5leHBvcnQgZGVmYXVsdCBPQVMzQ29tcG9uZW50V3JhcEZhY3RvcnkoKHsgT3JpLCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IHtcbiAgICBzY2hlbWEsIGdldENvbXBvbmVudCwgZXJyU2VsZWN0b3JzLCBhdXRob3JpemVkLCBvbkF1dGhDaGFuZ2UsIG5hbWUsIGF1dGhTZWxlY3RvcnNcbiAgfSA9IHByb3BzXG5cbiAgY29uc3QgSHR0cEF1dGggPSBnZXRDb21wb25lbnQoXCJIdHRwQXV0aFwiKVxuICBjb25zdCB0eXBlID0gc2NoZW1hLmdldChcInR5cGVcIilcblxuXG4gIGlmKHR5cGUgPT09IFwiaHR0cFwiKSB7XG4gICAgcmV0dXJuIDxIdHRwQXV0aCBrZXk9eyBuYW1lIH1cbiAgICAgICAgICAgICAgc2NoZW1hPXsgc2NoZW1hIH1cbiAgICAgICAgICAgICAgbmFtZT17IG5hbWUgfVxuICAgICAgICAgICAgICBlcnJTZWxlY3RvcnM9eyBlcnJTZWxlY3RvcnMgfVxuICAgICAgICAgICAgICBhdXRob3JpemVkPXsgYXV0aG9yaXplZCB9XG4gICAgICAgICAgICAgIGdldENvbXBvbmVudD17IGdldENvbXBvbmVudCB9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsgb25BdXRoQ2hhbmdlIH1cbiAgICAgICAgICAgICAgYXV0aFNlbGVjdG9ycz0geyBhdXRoU2VsZWN0b3JzIH0vPlxuICB9IGVsc2Uge1xuICAgIHJldHVybiA8T3JpIHsuLi5wcm9wc30gLz5cbiAgfVxufSlcbiIsImltcG9ydCB7IE9BUzNDb21wb25lbnRXcmFwRmFjdG9yeSB9IGZyb20gXCIuLi9oZWxwZXJzXCJcbmltcG9ydCBPbmxpbmVWYWxpZGF0b3JCYWRnZSBmcm9tIFwiY29yZS9jb21wb25lbnRzL29ubGluZS12YWxpZGF0b3ItYmFkZ2VcIlxuXG4vLyBPQVMzIHNwZWMgaXMgbm93IHN1cHBvcnRlZCBieSB0aGUgb25saW5lIHZhbGlkYXRvci5cbmV4cG9ydCBkZWZhdWx0IE9BUzNDb21wb25lbnRXcmFwRmFjdG9yeShPbmxpbmVWYWxpZGF0b3JCYWRnZSlcbiIsImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgeyBPQVMzQ29tcG9uZW50V3JhcEZhY3RvcnkgfSBmcm9tIFwiLi4vaGVscGVyc1wiXG5cbmNsYXNzIE1vZGVsQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBzY2hlbWE6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBnZXRDb25maWdzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBleHBhbmREZXB0aDogUHJvcFR5cGVzLm51bWJlcixcbiAgICBpbmNsdWRlUmVhZE9ubHk6IFByb3BUeXBlcy5ib29sLFxuICAgIGluY2x1ZGVXcml0ZU9ubHk6IFByb3BUeXBlcy5ib29sLFxuICAgIE9yaTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgfVxuXG4gIHJlbmRlcigpe1xuICAgIGxldCB7IGdldENvbmZpZ3MsIHNjaGVtYSwgT3JpOiBNb2RlbCB9ID0gdGhpcy5wcm9wc1xuICAgIGxldCBjbGFzc2VzID0gW1wibW9kZWwtYm94XCJdXG4gICAgbGV0IGlzRGVwcmVjYXRlZCA9IHNjaGVtYS5nZXQoXCJkZXByZWNhdGVkXCIpID09PSB0cnVlXG4gICAgbGV0IG1lc3NhZ2UgPSBudWxsXG5cbiAgICBpZihpc0RlcHJlY2F0ZWQpIHtcbiAgICAgIGNsYXNzZXMucHVzaChcImRlcHJlY2F0ZWRcIilcbiAgICAgIG1lc3NhZ2UgPSA8c3BhbiBjbGFzc05hbWU9XCJtb2RlbC1kZXByZWNhdGVkLXdhcm5pbmdcIj5EZXByZWNhdGVkOjwvc3Bhbj5cbiAgICB9XG5cbiAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMuam9pbihcIiBcIil9PlxuICAgICAge21lc3NhZ2V9XG4gICAgICA8TW9kZWwgeyAuLi50aGlzLnByb3BzIH1cbiAgICAgICAgZ2V0Q29uZmlncz17IGdldENvbmZpZ3MgfVxuICAgICAgICBkZXB0aD17IDEgfVxuICAgICAgICBleHBhbmREZXB0aD17IHRoaXMucHJvcHMuZXhwYW5kRGVwdGggfHwgMCB9XG4gICAgICAgIC8+XG4gICAgPC9kaXY+XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgT0FTM0NvbXBvbmVudFdyYXBGYWN0b3J5KE1vZGVsQ29tcG9uZW50KVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBPQVMzQ29tcG9uZW50V3JhcEZhY3RvcnkgfSBmcm9tIFwiLi4vaGVscGVyc1wiXG5cbmV4cG9ydCBkZWZhdWx0IE9BUzNDb21wb25lbnRXcmFwRmFjdG9yeSgoeyBPcmksIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3Qge1xuICAgIHNjaGVtYSxcbiAgICBnZXRDb21wb25lbnQsXG4gICAgZXJyb3JzLFxuICAgIG9uQ2hhbmdlLFxuICAgIGZuXG4gIH0gPSBwcm9wc1xuXG4gIGNvbnN0IGlzRmlsZVVwbG9hZEludGVuZGVkID0gZm4uaXNGaWxlVXBsb2FkSW50ZW5kZWQoc2NoZW1hKVxuICBjb25zdCBJbnB1dCA9IGdldENvbXBvbmVudChcIklucHV0XCIpXG5cbiAgaWYgKGlzRmlsZVVwbG9hZEludGVuZGVkKSB7XG4gICAgcmV0dXJuIDxJbnB1dCB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsgZXJyb3JzLmxlbmd0aCA/IFwiaW52YWxpZFwiIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICB0aXRsZT17IGVycm9ycy5sZW5ndGggPyBlcnJvcnMgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2UoZS50YXJnZXQuZmlsZXNbMF0pXG4gICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17T3JpLmlzRGlzYWJsZWR9Lz5cbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gPE9yaSB7Li4ucHJvcHN9IC8+XG4gIH1cbn0pXG4iLCJpbXBvcnQgTWFya2Rvd24gZnJvbSBcIi4vbWFya2Rvd25cIlxuaW1wb3J0IEF1dGhJdGVtIGZyb20gXCIuL2F1dGgvYXV0aC1pdGVtXCJcbmltcG9ydCBPbmxpbmVWYWxpZGF0b3JCYWRnZSBmcm9tIFwiLi9vbmxpbmUtdmFsaWRhdG9yLWJhZGdlXCJcbmltcG9ydCBNb2RlbCBmcm9tIFwiLi9tb2RlbFwiXG5pbXBvcnQgSnNvblNjaGVtYV9zdHJpbmcgZnJvbSBcIi4vanNvbi1zY2hlbWEtc3RyaW5nXCJcbmltcG9ydCBPcGVuQVBJVmVyc2lvbiBmcm9tIFwiLi9vcGVuYXBpLXZlcnNpb25cIlxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIE1hcmtkb3duLFxuICBBdXRoSXRlbSxcbiAgT3BlbkFQSVZlcnNpb24sXG4gIEpzb25TY2hlbWFfc3RyaW5nLFxuICBtb2RlbDogTW9kZWwsXG4gIG9ubGluZVZhbGlkYXRvckJhZGdlOiBPbmxpbmVWYWxpZGF0b3JCYWRnZSxcbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgT0FTMzBDb21wb25lbnRXcmFwRmFjdG9yeSB9IGZyb20gXCIuLi9oZWxwZXJzXCJcblxuZXhwb3J0IGRlZmF1bHQgT0FTMzBDb21wb25lbnRXcmFwRmFjdG9yeSgocHJvcHMpID0+IHtcbiAgY29uc3QgeyBPcmkgfSA9IHByb3BzXG4gIHJldHVybiA8T3JpIG9hc1ZlcnNpb249XCIzLjBcIiAvPlxufSlcbiIsIi8vIEFjdGlvbnMgY29uZm9ybSB0byBGU0EgKGZsdXgtc3RhbmRhcmQtYWN0aW9ucylcbi8vIHt0eXBlOiBzdHJpbmcscGF5bG9hZDogQW55fEVycm9yLCBtZXRhOiBvYmosIGVycm9yOiBib29sfVxuXG5leHBvcnQgY29uc3QgVVBEQVRFX1NFTEVDVEVEX1NFUlZFUiA9IFwib2FzM19zZXRfc2VydmVyc1wiXG5leHBvcnQgY29uc3QgVVBEQVRFX1JFUVVFU1RfQk9EWV9WQUxVRSA9IFwib2FzM19zZXRfcmVxdWVzdF9ib2R5X3ZhbHVlXCJcbmV4cG9ydCBjb25zdCBVUERBVEVfUkVRVUVTVF9CT0RZX1ZBTFVFX1JFVEFJTl9GTEFHID0gXCJvYXMzX3NldF9yZXF1ZXN0X2JvZHlfcmV0YWluX2ZsYWdcIlxuZXhwb3J0IGNvbnN0IFVQREFURV9SRVFVRVNUX0JPRFlfSU5DTFVTSU9OID0gXCJvYXMzX3NldF9yZXF1ZXN0X2JvZHlfaW5jbHVzaW9uXCJcbmV4cG9ydCBjb25zdCBVUERBVEVfQUNUSVZFX0VYQU1QTEVTX01FTUJFUiA9IFwib2FzM19zZXRfYWN0aXZlX2V4YW1wbGVzX21lbWJlclwiXG5leHBvcnQgY29uc3QgVVBEQVRFX1JFUVVFU1RfQ09OVEVOVF9UWVBFID0gXCJvYXMzX3NldF9yZXF1ZXN0X2NvbnRlbnRfdHlwZVwiXG5leHBvcnQgY29uc3QgVVBEQVRFX1JFU1BPTlNFX0NPTlRFTlRfVFlQRSA9IFwib2FzM19zZXRfcmVzcG9uc2VfY29udGVudF90eXBlXCJcbmV4cG9ydCBjb25zdCBVUERBVEVfU0VSVkVSX1ZBUklBQkxFX1ZBTFVFID0gXCJvYXMzX3NldF9zZXJ2ZXJfdmFyaWFibGVfdmFsdWVcIlxuZXhwb3J0IGNvbnN0IFNFVF9SRVFVRVNUX0JPRFlfVkFMSURBVEVfRVJST1IgPSBcIm9hczNfc2V0X3JlcXVlc3RfYm9keV92YWxpZGF0ZV9lcnJvclwiXG5leHBvcnQgY29uc3QgQ0xFQVJfUkVRVUVTVF9CT0RZX1ZBTElEQVRFX0VSUk9SID0gXCJvYXMzX2NsZWFyX3JlcXVlc3RfYm9keV92YWxpZGF0ZV9lcnJvclwiXG5leHBvcnQgY29uc3QgQ0xFQVJfUkVRVUVTVF9CT0RZX1ZBTFVFID0gXCJvYXMzX2NsZWFyX3JlcXVlc3RfYm9keV92YWx1ZVwiXG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTZWxlY3RlZFNlcnZlciAoc2VsZWN0ZWRTZXJ2ZXJVcmwsIG5hbWVzcGFjZSkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9TRUxFQ1RFRF9TRVJWRVIsXG4gICAgcGF5bG9hZDoge3NlbGVjdGVkU2VydmVyVXJsLCBuYW1lc3BhY2V9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlcXVlc3RCb2R5VmFsdWUgKHsgdmFsdWUsIHBhdGhNZXRob2QgfSkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9SRVFVRVNUX0JPRFlfVkFMVUUsXG4gICAgcGF5bG9hZDogeyB2YWx1ZSwgcGF0aE1ldGhvZCB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHNldFJldGFpblJlcXVlc3RCb2R5VmFsdWVGbGFnID0gKHsgdmFsdWUsIHBhdGhNZXRob2QgfSkgPT4ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9SRVFVRVNUX0JPRFlfVkFMVUVfUkVUQUlOX0ZMQUcsXG4gICAgcGF5bG9hZDogeyB2YWx1ZSwgcGF0aE1ldGhvZCB9XG4gIH1cbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gc2V0UmVxdWVzdEJvZHlJbmNsdXNpb24gKHsgdmFsdWUsIHBhdGhNZXRob2QsIG5hbWUgfSkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9SRVFVRVNUX0JPRFlfSU5DTFVTSU9OLFxuICAgIHBheWxvYWQ6IHsgdmFsdWUsIHBhdGhNZXRob2QsIG5hbWUgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRBY3RpdmVFeGFtcGxlc01lbWJlciAoeyBuYW1lLCBwYXRoTWV0aG9kLCBjb250ZXh0VHlwZSwgY29udGV4dE5hbWUgfSkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9BQ1RJVkVfRVhBTVBMRVNfTUVNQkVSLFxuICAgIHBheWxvYWQ6IHsgbmFtZSwgcGF0aE1ldGhvZCwgY29udGV4dFR5cGUsIGNvbnRleHROYW1lIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0UmVxdWVzdENvbnRlbnRUeXBlICh7IHZhbHVlLCBwYXRoTWV0aG9kIH0pIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBVUERBVEVfUkVRVUVTVF9DT05URU5UX1RZUEUsXG4gICAgcGF5bG9hZDogeyB2YWx1ZSwgcGF0aE1ldGhvZCB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlc3BvbnNlQ29udGVudFR5cGUgKHsgdmFsdWUsIHBhdGgsIG1ldGhvZCB9KSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogVVBEQVRFX1JFU1BPTlNFX0NPTlRFTlRfVFlQRSxcbiAgICBwYXlsb2FkOiB7IHZhbHVlLCBwYXRoLCBtZXRob2QgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTZXJ2ZXJWYXJpYWJsZVZhbHVlICh7IHNlcnZlciwgbmFtZXNwYWNlLCBrZXksIHZhbCB9KSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogVVBEQVRFX1NFUlZFUl9WQVJJQUJMRV9WQUxVRSxcbiAgICBwYXlsb2FkOiB7IHNlcnZlciwgbmFtZXNwYWNlLCBrZXksIHZhbCB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHNldFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvciA9ICh7IHBhdGgsIG1ldGhvZCwgdmFsaWRhdGlvbkVycm9ycyB9KSA9PiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogU0VUX1JFUVVFU1RfQk9EWV9WQUxJREFURV9FUlJPUixcbiAgICBwYXlsb2FkOiB7IHBhdGgsIG1ldGhvZCwgdmFsaWRhdGlvbkVycm9ycyB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGNsZWFyUmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yID0gKHsgcGF0aCwgbWV0aG9kIH0pID0+IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBDTEVBUl9SRVFVRVNUX0JPRFlfVkFMSURBVEVfRVJST1IsXG4gICAgcGF5bG9hZDogeyBwYXRoLCBtZXRob2QgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBpbml0UmVxdWVzdEJvZHlWYWxpZGF0ZUVycm9yID0gKHsgcGF0aE1ldGhvZCB9ICkgPT4ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IENMRUFSX1JFUVVFU1RfQk9EWV9WQUxJREFURV9FUlJPUixcbiAgICBwYXlsb2FkOiB7IHBhdGg6IHBhdGhNZXRob2RbMF0sIG1ldGhvZDogcGF0aE1ldGhvZFsxXSB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGNsZWFyUmVxdWVzdEJvZHlWYWx1ZSA9ICh7IHBhdGhNZXRob2QgfSkgPT4ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICBDTEVBUl9SRVFVRVNUX0JPRFlfVkFMVUUsXG4gICAgcGF5bG9hZDogeyBwYXRoTWV0aG9kIH1cbiAgfVxufVxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJsb2Rhc2gvZXNjYXBlUmVnRXhwXCIpOyIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IE9yZGVyZWRNYXAsIE1hcCwgTGlzdCB9IGZyb20gXCJpbW11dGFibGVcIlxuaW1wb3J0IGVzY2FwZVJlZ0V4cCBmcm9tIFwibG9kYXNoL2VzY2FwZVJlZ0V4cFwiXG5pbXBvcnQgY29uc3RhbnQgZnJvbSBcImxvZGFzaC9jb25zdGFudFwiXG5cbmltcG9ydCB7IGdldERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlIH0gZnJvbSBcIi4vY29tcG9uZW50cy9yZXF1ZXN0LWJvZHlcIlxuaW1wb3J0IHsgc3RyaW5naWZ5IH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuXG4vLyBIZWxwZXJzXG5cbmNvbnN0IG9ubHlPQVMzID1cbiAgKHNlbGVjdG9yKSA9PlxuICAoc3RhdGUsIC4uLmFyZ3MpID0+XG4gIChzeXN0ZW0pID0+IHtcbiAgICBpZiAoc3lzdGVtLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuaXNPQVMzKCkpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkVmFsdWUgPSBzZWxlY3RvcihzdGF0ZSwgLi4uYXJncylcbiAgICAgIHJldHVybiB0eXBlb2Ygc2VsZWN0ZWRWYWx1ZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgID8gc2VsZWN0ZWRWYWx1ZShzeXN0ZW0pXG4gICAgICAgIDogc2VsZWN0ZWRWYWx1ZVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgfVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVJlcXVlc3RCb2R5SXNSZXF1aXJlZChzZWxlY3Rvcikge1xuICByZXR1cm4gKC4uLmFyZ3MpID0+XG4gICAgKHN5c3RlbSkgPT4ge1xuICAgICAgY29uc3Qgc3BlY0pzb24gPSBzeXN0ZW0uZ2V0U3lzdGVtKCkuc3BlY1NlbGVjdG9ycy5zcGVjSnNvbigpXG4gICAgICBjb25zdCBhcmdzTGlzdCA9IFsuLi5hcmdzXVxuICAgICAgLy8gZXhwZWN0IGFyZ3NMaXN0WzBdID0gc3RhdGVcbiAgICAgIGxldCBwYXRoTWV0aG9kID0gYXJnc0xpc3RbMV0gfHwgW11cbiAgICAgIGxldCBpc09hczNSZXF1ZXN0Qm9keVJlcXVpcmVkID0gc3BlY0pzb24uZ2V0SW4oW1xuICAgICAgICBcInBhdGhzXCIsXG4gICAgICAgIC4uLnBhdGhNZXRob2QsXG4gICAgICAgIFwicmVxdWVzdEJvZHlcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiLFxuICAgICAgXSlcblxuICAgICAgaWYgKGlzT2FzM1JlcXVlc3RCb2R5UmVxdWlyZWQpIHtcbiAgICAgICAgcmV0dXJuIHNlbGVjdG9yKC4uLmFyZ3MpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyB2YWxpZGF0aW9uIHBhc3MgYi9jIG5vdCByZXF1aXJlZFxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgIH1cbn1cblxuY29uc3QgdmFsaWRhdGVSZXF1ZXN0Qm9keVZhbHVlRXhpc3RzID0gKHN0YXRlLCBwYXRoTWV0aG9kKSA9PiB7XG4gIHBhdGhNZXRob2QgPSBwYXRoTWV0aG9kIHx8IFtdXG4gIGxldCBvYXMzUmVxdWVzdEJvZHlWYWx1ZSA9IHN0YXRlLmdldEluKFtcbiAgICBcInJlcXVlc3REYXRhXCIsXG4gICAgLi4ucGF0aE1ldGhvZCxcbiAgICBcImJvZHlWYWx1ZVwiLFxuICBdKVxuICAvLyBjb250ZXh0OiBib2R5VmFsdWUgY2FuIGJlIGEgU3RyaW5nLCBvciBhIE1hcFxuICBpZiAoIW9hczNSZXF1ZXN0Qm9keVZhbHVlKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgLy8gdmFsaWRhdGlvbiBwYXNzIGlmIFN0cmluZyBpcyBub3QgZW1wdHksIG9yIGlmIE1hcCBleGlzdHNcbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHNlbGVjdGVkU2VydmVyID0gb25seU9BUzMoKHN0YXRlLCBuYW1lc3BhY2UpID0+IHtcbiAgY29uc3QgcGF0aCA9IG5hbWVzcGFjZSA/IFtuYW1lc3BhY2UsIFwic2VsZWN0ZWRTZXJ2ZXJcIl0gOiBbXCJzZWxlY3RlZFNlcnZlclwiXVxuICByZXR1cm4gc3RhdGUuZ2V0SW4ocGF0aCkgfHwgXCJcIlxufSlcblxuZXhwb3J0IGNvbnN0IHJlcXVlc3RCb2R5VmFsdWUgPSBvbmx5T0FTMygoc3RhdGUsIHBhdGgsIG1ldGhvZCkgPT4ge1xuICByZXR1cm4gc3RhdGUuZ2V0SW4oW1wicmVxdWVzdERhdGFcIiwgcGF0aCwgbWV0aG9kLCBcImJvZHlWYWx1ZVwiXSkgfHwgbnVsbFxufSlcblxuZXhwb3J0IGNvbnN0IHNob3VsZFJldGFpblJlcXVlc3RCb2R5VmFsdWUgPSBvbmx5T0FTMygoc3RhdGUsIHBhdGgsIG1ldGhvZCkgPT4ge1xuICByZXR1cm4gc3RhdGUuZ2V0SW4oW1wicmVxdWVzdERhdGFcIiwgcGF0aCwgbWV0aG9kLCBcInJldGFpbkJvZHlWYWx1ZVwiXSkgfHwgZmFsc2Vcbn0pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3REZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZSA9XG4gIChzdGF0ZSwgcGF0aCwgbWV0aG9kKSA9PiAoc3lzdGVtKSA9PiB7XG4gICAgY29uc3QgeyBvYXMzU2VsZWN0b3JzLCBzcGVjU2VsZWN0b3JzLCBmbiB9ID0gc3lzdGVtLmdldFN5c3RlbSgpXG5cbiAgICBpZiAoc3BlY1NlbGVjdG9ycy5pc09BUzMoKSkge1xuICAgICAgY29uc3QgY3VycmVudE1lZGlhVHlwZSA9IG9hczNTZWxlY3RvcnMucmVxdWVzdENvbnRlbnRUeXBlKHBhdGgsIG1ldGhvZClcbiAgICAgIGlmIChjdXJyZW50TWVkaWFUeXBlKSB7XG4gICAgICAgIHJldHVybiBnZXREZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZShcbiAgICAgICAgICBzcGVjU2VsZWN0b3JzLnNwZWNSZXNvbHZlZFN1YnRyZWUoW1xuICAgICAgICAgICAgXCJwYXRoc1wiLFxuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICAgIFwicmVxdWVzdEJvZHlcIixcbiAgICAgICAgICBdKSxcbiAgICAgICAgICBjdXJyZW50TWVkaWFUeXBlLFxuICAgICAgICAgIG9hczNTZWxlY3RvcnMuYWN0aXZlRXhhbXBsZXNNZW1iZXIoXG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgXCJyZXF1ZXN0Qm9keVwiLFxuICAgICAgICAgICAgXCJyZXF1ZXN0Qm9keVwiXG4gICAgICAgICAgKSxcbiAgICAgICAgICBmblxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuZXhwb3J0IGNvbnN0IGhhc1VzZXJFZGl0ZWRCb2R5ID0gb25seU9BUzMoKHN0YXRlLCBwYXRoLCBtZXRob2QpID0+IChzeXN0ZW0pID0+IHtcbiAgY29uc3QgeyBvYXMzU2VsZWN0b3JzLCBzcGVjU2VsZWN0b3JzLCBmbiB9ID0gc3lzdGVtXG5cbiAgbGV0IHVzZXJIYXNFZGl0ZWRCb2R5ID0gZmFsc2VcbiAgY29uc3QgY3VycmVudE1lZGlhVHlwZSA9IG9hczNTZWxlY3RvcnMucmVxdWVzdENvbnRlbnRUeXBlKHBhdGgsIG1ldGhvZClcbiAgbGV0IHVzZXJFZGl0ZWRSZXF1ZXN0Qm9keSA9IG9hczNTZWxlY3RvcnMucmVxdWVzdEJvZHlWYWx1ZShwYXRoLCBtZXRob2QpXG4gIGNvbnN0IHJlcXVlc3RCb2R5ID0gc3BlY1NlbGVjdG9ycy5zcGVjUmVzb2x2ZWRTdWJ0cmVlKFtcbiAgICBcInBhdGhzXCIsXG4gICAgcGF0aCxcbiAgICBtZXRob2QsXG4gICAgXCJyZXF1ZXN0Qm9keVwiLFxuICBdKVxuXG4gIC8qKlxuICAgKiBUaGUgb25seSByZXF1ZXN0IGJvZHkgdGhhdCBjYW4gY3VycmVudGx5IGJlIGVkaXRlZCBpcyBmb3IgUGF0aCBJdGVtcyB0aGF0IGFyZSBkaXJlY3QgdmFsdWVzIG9mIE9wZW5BUEkucGF0aHMuXG4gICAqIFBhdGggSXRlbSBjb250YWluZWQgd2l0aGluIHRoZSBDYWxsYmFjayBPYmplY3Qgb3IgT3BlbkFQSS53ZWJob29rcyAoT3BlbkFQSSAzLjEuMCkgaGF2ZSBgVHJ5IGl0IG91dGBcbiAgICogZGlzYWJsZWQgYW5kIHRodXMgYm9keSBjYW5ub3QgYmUgZWRpdGVkLlxuICAgKi9cbiAgaWYgKCFyZXF1ZXN0Qm9keSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKE1hcC5pc01hcCh1c2VyRWRpdGVkUmVxdWVzdEJvZHkpKSB7XG4gICAgLy8gY29udGV4dCBpcyBub3QgYXBwbGljYXRpb24vanNvbiBtZWRpYS10eXBlXG4gICAgdXNlckVkaXRlZFJlcXVlc3RCb2R5ID0gc3RyaW5naWZ5KFxuICAgICAgdXNlckVkaXRlZFJlcXVlc3RCb2R5XG4gICAgICAgIC5tYXBFbnRyaWVzKChrdikgPT5cbiAgICAgICAgICBNYXAuaXNNYXAoa3ZbMV0pID8gW2t2WzBdLCBrdlsxXS5nZXQoXCJ2YWx1ZVwiKV0gOiBrdlxuICAgICAgICApXG4gICAgICAgIC50b0pTKClcbiAgICApXG4gIH1cbiAgaWYgKExpc3QuaXNMaXN0KHVzZXJFZGl0ZWRSZXF1ZXN0Qm9keSkpIHtcbiAgICB1c2VyRWRpdGVkUmVxdWVzdEJvZHkgPSBzdHJpbmdpZnkodXNlckVkaXRlZFJlcXVlc3RCb2R5KVxuICB9XG5cbiAgaWYgKGN1cnJlbnRNZWRpYVR5cGUpIHtcbiAgICBjb25zdCBjdXJyZW50TWVkaWFUeXBlRGVmYXVsdEJvZHlWYWx1ZSA9IGdldERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlKFxuICAgICAgcmVxdWVzdEJvZHksXG4gICAgICBjdXJyZW50TWVkaWFUeXBlLFxuICAgICAgb2FzM1NlbGVjdG9ycy5hY3RpdmVFeGFtcGxlc01lbWJlcihcbiAgICAgICAgcGF0aCxcbiAgICAgICAgbWV0aG9kLFxuICAgICAgICBcInJlcXVlc3RCb2R5XCIsXG4gICAgICAgIFwicmVxdWVzdEJvZHlcIlxuICAgICAgKSxcbiAgICAgIGZuXG4gICAgKVxuICAgIHVzZXJIYXNFZGl0ZWRCb2R5ID1cbiAgICAgICEhdXNlckVkaXRlZFJlcXVlc3RCb2R5ICYmXG4gICAgICB1c2VyRWRpdGVkUmVxdWVzdEJvZHkgIT09IGN1cnJlbnRNZWRpYVR5cGVEZWZhdWx0Qm9keVZhbHVlXG4gIH1cbiAgcmV0dXJuIHVzZXJIYXNFZGl0ZWRCb2R5XG59KVxuXG5leHBvcnQgY29uc3QgcmVxdWVzdEJvZHlJbmNsdXNpb25TZXR0aW5nID0gb25seU9BUzMoKHN0YXRlLCBwYXRoLCBtZXRob2QpID0+IHtcbiAgcmV0dXJuIHN0YXRlLmdldEluKFtcInJlcXVlc3REYXRhXCIsIHBhdGgsIG1ldGhvZCwgXCJib2R5SW5jbHVzaW9uXCJdKSB8fCBNYXAoKVxufSlcblxuZXhwb3J0IGNvbnN0IHJlcXVlc3RCb2R5RXJyb3JzID0gb25seU9BUzMoKHN0YXRlLCBwYXRoLCBtZXRob2QpID0+IHtcbiAgcmV0dXJuIHN0YXRlLmdldEluKFtcInJlcXVlc3REYXRhXCIsIHBhdGgsIG1ldGhvZCwgXCJlcnJvcnNcIl0pIHx8IG51bGxcbn0pXG5cbmV4cG9ydCBjb25zdCBhY3RpdmVFeGFtcGxlc01lbWJlciA9IG9ubHlPQVMzKFxuICAoc3RhdGUsIHBhdGgsIG1ldGhvZCwgdHlwZSwgbmFtZSkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBzdGF0ZS5nZXRJbihbXCJleGFtcGxlc1wiLCBwYXRoLCBtZXRob2QsIHR5cGUsIG5hbWUsIFwiYWN0aXZlRXhhbXBsZVwiXSkgfHxcbiAgICAgIG51bGxcbiAgICApXG4gIH1cbilcblxuZXhwb3J0IGNvbnN0IHJlcXVlc3RDb250ZW50VHlwZSA9IG9ubHlPQVMzKChzdGF0ZSwgcGF0aCwgbWV0aG9kKSA9PiB7XG4gIHJldHVybiAoXG4gICAgc3RhdGUuZ2V0SW4oW1wicmVxdWVzdERhdGFcIiwgcGF0aCwgbWV0aG9kLCBcInJlcXVlc3RDb250ZW50VHlwZVwiXSkgfHwgbnVsbFxuICApXG59KVxuXG5leHBvcnQgY29uc3QgcmVzcG9uc2VDb250ZW50VHlwZSA9IG9ubHlPQVMzKChzdGF0ZSwgcGF0aCwgbWV0aG9kKSA9PiB7XG4gIHJldHVybiAoXG4gICAgc3RhdGUuZ2V0SW4oW1wicmVxdWVzdERhdGFcIiwgcGF0aCwgbWV0aG9kLCBcInJlc3BvbnNlQ29udGVudFR5cGVcIl0pIHx8IG51bGxcbiAgKVxufSlcblxuZXhwb3J0IGNvbnN0IHNlcnZlclZhcmlhYmxlVmFsdWUgPSBvbmx5T0FTMygoc3RhdGUsIGxvY2F0aW9uRGF0YSwga2V5KSA9PiB7XG4gIGxldCBwYXRoXG5cbiAgLy8gbG9jYXRpb25EYXRhIG1heSB0YWtlIG9uZSBvZiB0d28gZm9ybXMsIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAvLyBPYmplY3Q6ICh7c2VydmVyLCBuYW1lc3BhY2U/fSkgb3IgU3RyaW5nOihzZXJ2ZXIpXG4gIGlmICh0eXBlb2YgbG9jYXRpb25EYXRhICE9PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgeyBzZXJ2ZXIsIG5hbWVzcGFjZSB9ID0gbG9jYXRpb25EYXRhXG4gICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgcGF0aCA9IFtuYW1lc3BhY2UsIFwic2VydmVyVmFyaWFibGVWYWx1ZXNcIiwgc2VydmVyLCBrZXldXG4gICAgfSBlbHNlIHtcbiAgICAgIHBhdGggPSBbXCJzZXJ2ZXJWYXJpYWJsZVZhbHVlc1wiLCBzZXJ2ZXIsIGtleV1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3Qgc2VydmVyID0gbG9jYXRpb25EYXRhXG4gICAgcGF0aCA9IFtcInNlcnZlclZhcmlhYmxlVmFsdWVzXCIsIHNlcnZlciwga2V5XVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlLmdldEluKHBhdGgpIHx8IG51bGxcbn0pXG5cbmV4cG9ydCBjb25zdCBzZXJ2ZXJWYXJpYWJsZXMgPSBvbmx5T0FTMygoc3RhdGUsIGxvY2F0aW9uRGF0YSkgPT4ge1xuICBsZXQgcGF0aFxuXG4gIC8vIGxvY2F0aW9uRGF0YSBtYXkgdGFrZSBvbmUgb2YgdHdvIGZvcm1zLCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgLy8gT2JqZWN0OiAoe3NlcnZlciwgbmFtZXNwYWNlP30pIG9yIFN0cmluZzooc2VydmVyKVxuICBpZiAodHlwZW9mIGxvY2F0aW9uRGF0YSAhPT0gXCJzdHJpbmdcIikge1xuICAgIGNvbnN0IHsgc2VydmVyLCBuYW1lc3BhY2UgfSA9IGxvY2F0aW9uRGF0YVxuICAgIGlmIChuYW1lc3BhY2UpIHtcbiAgICAgIHBhdGggPSBbbmFtZXNwYWNlLCBcInNlcnZlclZhcmlhYmxlVmFsdWVzXCIsIHNlcnZlcl1cbiAgICB9IGVsc2Uge1xuICAgICAgcGF0aCA9IFtcInNlcnZlclZhcmlhYmxlVmFsdWVzXCIsIHNlcnZlcl1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3Qgc2VydmVyID0gbG9jYXRpb25EYXRhXG4gICAgcGF0aCA9IFtcInNlcnZlclZhcmlhYmxlVmFsdWVzXCIsIHNlcnZlcl1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZS5nZXRJbihwYXRoKSB8fCBPcmRlcmVkTWFwKClcbn0pXG5cbmV4cG9ydCBjb25zdCBzZXJ2ZXJFZmZlY3RpdmVWYWx1ZSA9IG9ubHlPQVMzKChzdGF0ZSwgbG9jYXRpb25EYXRhKSA9PiB7XG4gIHZhciB2YXJWYWx1ZXMsIHNlcnZlclZhbHVlXG5cbiAgLy8gbG9jYXRpb25EYXRhIG1heSB0YWtlIG9uZSBvZiB0d28gZm9ybXMsIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAvLyBPYmplY3Q6ICh7c2VydmVyLCBuYW1lc3BhY2U/fSkgb3IgU3RyaW5nOihzZXJ2ZXIpXG4gIGlmICh0eXBlb2YgbG9jYXRpb25EYXRhICE9PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgeyBzZXJ2ZXIsIG5hbWVzcGFjZSB9ID0gbG9jYXRpb25EYXRhXG4gICAgc2VydmVyVmFsdWUgPSBzZXJ2ZXJcbiAgICBpZiAobmFtZXNwYWNlKSB7XG4gICAgICB2YXJWYWx1ZXMgPSBzdGF0ZS5nZXRJbihbbmFtZXNwYWNlLCBcInNlcnZlclZhcmlhYmxlVmFsdWVzXCIsIHNlcnZlclZhbHVlXSlcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyVmFsdWVzID0gc3RhdGUuZ2V0SW4oW1wic2VydmVyVmFyaWFibGVWYWx1ZXNcIiwgc2VydmVyVmFsdWVdKVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBzZXJ2ZXJWYWx1ZSA9IGxvY2F0aW9uRGF0YVxuICAgIHZhclZhbHVlcyA9IHN0YXRlLmdldEluKFtcInNlcnZlclZhcmlhYmxlVmFsdWVzXCIsIHNlcnZlclZhbHVlXSlcbiAgfVxuXG4gIHZhclZhbHVlcyA9IHZhclZhbHVlcyB8fCBPcmRlcmVkTWFwKClcbiAgbGV0IHN0ciA9IHNlcnZlclZhbHVlXG5cbiAgdmFyVmFsdWVzLm1hcCgodmFsLCBrZXkpID0+IHtcbiAgICBzdHIgPSBzdHIucmVwbGFjZShuZXcgUmVnRXhwKGB7JHtlc2NhcGVSZWdFeHAoa2V5KX19YCwgXCJnXCIpLCB2YWwpXG4gIH0pXG5cbiAgcmV0dXJuIHN0clxufSlcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlQmVmb3JlRXhlY3V0ZSA9IHZhbGlkYXRlUmVxdWVzdEJvZHlJc1JlcXVpcmVkKFxuICAoc3RhdGUsIHBhdGhNZXRob2QpID0+IHZhbGlkYXRlUmVxdWVzdEJvZHlWYWx1ZUV4aXN0cyhzdGF0ZSwgcGF0aE1ldGhvZClcbilcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlU2hhbGxvd1JlcXVpcmVkID0gKFxuICBzdGF0ZSxcbiAge1xuICAgIG9hczNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGUsXG4gICAgb2FzM1JlcXVlc3RDb250ZW50VHlwZSxcbiAgICBvYXMzUmVxdWVzdEJvZHlWYWx1ZSxcbiAgfVxuKSA9PiB7XG4gIGxldCBtaXNzaW5nUmVxdWlyZWRLZXlzID0gW11cbiAgLy8gY29udGV4dDoganNvbiA9PiBTdHJpbmc7IHVybGVuY29kZWQsIGZvcm0tZGF0YSA9PiBNYXBcbiAgaWYgKCFNYXAuaXNNYXAob2FzM1JlcXVlc3RCb2R5VmFsdWUpKSB7XG4gICAgcmV0dXJuIG1pc3NpbmdSZXF1aXJlZEtleXNcbiAgfVxuICBsZXQgcmVxdWlyZWRLZXlzID0gW11cbiAgLy8gQ3ljbGUgdGhyb3VnaCBsaXN0IG9mIHBvc3NpYmxlIGNvbnRlbnRUeXBlcyBmb3IgbWF0Y2hpbmcgY29udGVudFR5cGUgYW5kIGRlZmluZWQgcmVxdWlyZWRLZXlzXG4gIE9iamVjdC5rZXlzKG9hczNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGUucmVxdWVzdENvbnRlbnRUeXBlKS5mb3JFYWNoKFxuICAgIChjb250ZW50VHlwZSkgPT4ge1xuICAgICAgaWYgKGNvbnRlbnRUeXBlID09PSBvYXMzUmVxdWVzdENvbnRlbnRUeXBlKSB7XG4gICAgICAgIGxldCBjb250ZW50VHlwZVZhbCA9XG4gICAgICAgICAgb2FzM1JlcXVpcmVkUmVxdWVzdEJvZHlDb250ZW50VHlwZS5yZXF1ZXN0Q29udGVudFR5cGVbY29udGVudFR5cGVdXG4gICAgICAgIGNvbnRlbnRUeXBlVmFsLmZvckVhY2goKHJlcXVpcmVkS2V5KSA9PiB7XG4gICAgICAgICAgaWYgKHJlcXVpcmVkS2V5cy5pbmRleE9mKHJlcXVpcmVkS2V5KSA8IDApIHtcbiAgICAgICAgICAgIHJlcXVpcmVkS2V5cy5wdXNoKHJlcXVpcmVkS2V5KVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIClcbiAgcmVxdWlyZWRLZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGxldCByZXF1aXJlZEtleVZhbHVlID0gb2FzM1JlcXVlc3RCb2R5VmFsdWUuZ2V0SW4oW2tleSwgXCJ2YWx1ZVwiXSlcbiAgICBpZiAoIXJlcXVpcmVkS2V5VmFsdWUpIHtcbiAgICAgIG1pc3NpbmdSZXF1aXJlZEtleXMucHVzaChrZXkpXG4gICAgfVxuICB9KVxuICByZXR1cm4gbWlzc2luZ1JlcXVpcmVkS2V5c1xufVxuXG5leHBvcnQgY29uc3QgdmFsaWRPcGVyYXRpb25NZXRob2RzID0gY29uc3RhbnQoW1xuICBcImdldFwiLFxuICBcInB1dFwiLFxuICBcInBvc3RcIixcbiAgXCJkZWxldGVcIixcbiAgXCJvcHRpb25zXCIsXG4gIFwiaGVhZFwiLFxuICBcInBhdGNoXCIsXG4gIFwidHJhY2VcIixcbl0pXG4iLCJpbXBvcnQgeyBmcm9tSlMsIE1hcCB9IGZyb20gXCJpbW11dGFibGVcIlxuXG5pbXBvcnQge1xuICBVUERBVEVfU0VMRUNURURfU0VSVkVSLFxuICBVUERBVEVfUkVRVUVTVF9CT0RZX1ZBTFVFLFxuICBVUERBVEVfUkVRVUVTVF9CT0RZX0lOQ0xVU0lPTixcbiAgVVBEQVRFX0FDVElWRV9FWEFNUExFU19NRU1CRVIsXG4gIFVQREFURV9SRVFVRVNUX0NPTlRFTlRfVFlQRSxcbiAgVVBEQVRFX1NFUlZFUl9WQVJJQUJMRV9WQUxVRSxcbiAgVVBEQVRFX1JFU1BPTlNFX0NPTlRFTlRfVFlQRSxcbiAgU0VUX1JFUVVFU1RfQk9EWV9WQUxJREFURV9FUlJPUixcbiAgQ0xFQVJfUkVRVUVTVF9CT0RZX1ZBTElEQVRFX0VSUk9SLFxuICBDTEVBUl9SRVFVRVNUX0JPRFlfVkFMVUUsIFVQREFURV9SRVFVRVNUX0JPRFlfVkFMVUVfUkVUQUlOX0ZMQUcsXG59IGZyb20gXCIuL2FjdGlvbnNcIlxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIFtVUERBVEVfU0VMRUNURURfU0VSVkVSXTogKHN0YXRlLCB7IHBheWxvYWQ6IHsgc2VsZWN0ZWRTZXJ2ZXJVcmwsIG5hbWVzcGFjZSB9IH0gKSA9PntcbiAgICBjb25zdCBwYXRoID0gbmFtZXNwYWNlID8gWyBuYW1lc3BhY2UsIFwic2VsZWN0ZWRTZXJ2ZXJcIl0gOiBbIFwic2VsZWN0ZWRTZXJ2ZXJcIl1cbiAgICByZXR1cm4gc3RhdGUuc2V0SW4oIHBhdGgsIHNlbGVjdGVkU2VydmVyVXJsKVxuICB9LFxuICBbVVBEQVRFX1JFUVVFU1RfQk9EWV9WQUxVRV06IChzdGF0ZSwgeyBwYXlsb2FkOiB7IHZhbHVlLCBwYXRoTWV0aG9kIH0gfSApID0+e1xuICAgIGxldCBbcGF0aCwgbWV0aG9kXSA9IHBhdGhNZXRob2RcbiAgICBpZiAoIU1hcC5pc01hcCh2YWx1ZSkpIHtcbiAgICAgIC8vIGNvbnRleHQ6IGFwcGxpY2F0aW9uL2pzb24gaXMgYWx3YXlzIGEgU3RyaW5nIChpbnN0ZWFkIG9mIE1hcClcbiAgICAgIHJldHVybiBzdGF0ZS5zZXRJbiggWyBcInJlcXVlc3REYXRhXCIsIHBhdGgsIG1ldGhvZCwgXCJib2R5VmFsdWVcIiBdLCB2YWx1ZSlcbiAgICB9XG4gICAgbGV0IGN1cnJlbnRWYWwgPSBzdGF0ZS5nZXRJbihbXCJyZXF1ZXN0RGF0YVwiLCBwYXRoLCBtZXRob2QsIFwiYm9keVZhbHVlXCJdKSB8fCBNYXAoKVxuICAgIGlmICghTWFwLmlzTWFwKGN1cnJlbnRWYWwpKSB7XG4gICAgICAvLyBjb250ZXh0OiB1c2VyIHN3aXRjaCBmcm9tIGFwcGxpY2F0aW9uL2pzb24gdG8gYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXG4gICAgICBjdXJyZW50VmFsID0gTWFwKClcbiAgICB9XG4gICAgbGV0IG5ld1ZhbFxuICAgIGNvbnN0IFsuLi52YWx1ZUtleXNdID0gdmFsdWUua2V5cygpXG4gICAgdmFsdWVLZXlzLmZvckVhY2goKHZhbHVlS2V5KSA9PiB7XG4gICAgICBsZXQgdmFsdWVLZXlWYWwgPSB2YWx1ZS5nZXRJbihbdmFsdWVLZXldKVxuICAgICAgaWYgKCFjdXJyZW50VmFsLmhhcyh2YWx1ZUtleSkpIHtcbiAgICAgICAgbmV3VmFsID0gY3VycmVudFZhbC5zZXRJbihbdmFsdWVLZXksIFwidmFsdWVcIl0sIHZhbHVlS2V5VmFsKVxuICAgICAgfSBlbHNlIGlmICghTWFwLmlzTWFwKHZhbHVlS2V5VmFsKSkge1xuICAgICAgICAvLyBjb250ZXh0OiB1c2VyIGlucHV0IHdpbGwgYmUgcmVjZWl2ZWQgYXMgU3RyaW5nXG4gICAgICAgIG5ld1ZhbCA9IGN1cnJlbnRWYWwuc2V0SW4oW3ZhbHVlS2V5LCBcInZhbHVlXCJdLCB2YWx1ZUtleVZhbClcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiBzdGF0ZS5zZXRJbihbXCJyZXF1ZXN0RGF0YVwiLCBwYXRoLCBtZXRob2QsIFwiYm9keVZhbHVlXCJdLCBuZXdWYWwpXG4gIH0sXG4gIFtVUERBVEVfUkVRVUVTVF9CT0RZX1ZBTFVFX1JFVEFJTl9GTEFHXTogKHN0YXRlLCB7IHBheWxvYWQ6IHsgdmFsdWUsIHBhdGhNZXRob2QgfSB9ICkgPT57XG4gICAgbGV0IFtwYXRoLCBtZXRob2RdID0gcGF0aE1ldGhvZFxuICAgIHJldHVybiBzdGF0ZS5zZXRJbihbXCJyZXF1ZXN0RGF0YVwiLCBwYXRoLCBtZXRob2QsIFwicmV0YWluQm9keVZhbHVlXCJdLCB2YWx1ZSlcbiAgfSxcbiAgW1VQREFURV9SRVFVRVNUX0JPRFlfSU5DTFVTSU9OXTogKHN0YXRlLCB7IHBheWxvYWQ6IHsgdmFsdWUsIHBhdGhNZXRob2QsIG5hbWUgfSB9ICkgPT57XG4gICAgbGV0IFtwYXRoLCBtZXRob2RdID0gcGF0aE1ldGhvZFxuICAgIHJldHVybiBzdGF0ZS5zZXRJbiggWyBcInJlcXVlc3REYXRhXCIsIHBhdGgsIG1ldGhvZCwgXCJib2R5SW5jbHVzaW9uXCIsIG5hbWUgXSwgdmFsdWUpXG4gIH0sXG4gIFtVUERBVEVfQUNUSVZFX0VYQU1QTEVTX01FTUJFUl06IChzdGF0ZSwgeyBwYXlsb2FkOiB7IG5hbWUsIHBhdGhNZXRob2QsIGNvbnRleHRUeXBlLCBjb250ZXh0TmFtZSB9IH0gKSA9PntcbiAgICBsZXQgW3BhdGgsIG1ldGhvZF0gPSBwYXRoTWV0aG9kXG4gICAgcmV0dXJuIHN0YXRlLnNldEluKCBbIFwiZXhhbXBsZXNcIiwgcGF0aCwgbWV0aG9kLCBjb250ZXh0VHlwZSwgY29udGV4dE5hbWUsIFwiYWN0aXZlRXhhbXBsZVwiIF0sIG5hbWUpXG4gIH0sXG4gIFtVUERBVEVfUkVRVUVTVF9DT05URU5UX1RZUEVdOiAoc3RhdGUsIHsgcGF5bG9hZDogeyB2YWx1ZSwgcGF0aE1ldGhvZCB9IH0gKSA9PntcbiAgICBsZXQgW3BhdGgsIG1ldGhvZF0gPSBwYXRoTWV0aG9kXG4gICAgcmV0dXJuIHN0YXRlLnNldEluKCBbIFwicmVxdWVzdERhdGFcIiwgcGF0aCwgbWV0aG9kLCBcInJlcXVlc3RDb250ZW50VHlwZVwiIF0sIHZhbHVlKVxuICB9LFxuICBbVVBEQVRFX1JFU1BPTlNFX0NPTlRFTlRfVFlQRV06IChzdGF0ZSwgeyBwYXlsb2FkOiB7IHZhbHVlLCBwYXRoLCBtZXRob2QgfSB9ICkgPT57XG4gICAgcmV0dXJuIHN0YXRlLnNldEluKCBbIFwicmVxdWVzdERhdGFcIiwgcGF0aCwgbWV0aG9kLCBcInJlc3BvbnNlQ29udGVudFR5cGVcIiBdLCB2YWx1ZSlcbiAgfSxcbiAgW1VQREFURV9TRVJWRVJfVkFSSUFCTEVfVkFMVUVdOiAoc3RhdGUsIHsgcGF5bG9hZDogeyBzZXJ2ZXIsIG5hbWVzcGFjZSwga2V5LCB2YWwgfSB9ICkgPT57XG4gICAgY29uc3QgcGF0aCA9IG5hbWVzcGFjZSA/IFsgbmFtZXNwYWNlLCBcInNlcnZlclZhcmlhYmxlVmFsdWVzXCIsIHNlcnZlciwga2V5IF0gOiBbIFwic2VydmVyVmFyaWFibGVWYWx1ZXNcIiwgc2VydmVyLCBrZXkgXVxuICAgIHJldHVybiBzdGF0ZS5zZXRJbihwYXRoLCB2YWwpXG4gIH0sXG4gIFtTRVRfUkVRVUVTVF9CT0RZX1ZBTElEQVRFX0VSUk9SXTogKHN0YXRlLCB7IHBheWxvYWQ6IHsgcGF0aCwgbWV0aG9kLCB2YWxpZGF0aW9uRXJyb3JzIH0gfSApID0+IHtcbiAgICBsZXQgZXJyb3JzID0gW11cbiAgICBlcnJvcnMucHVzaChcIlJlcXVpcmVkIGZpZWxkIGlzIG5vdCBwcm92aWRlZFwiKVxuICAgIGlmICh2YWxpZGF0aW9uRXJyb3JzLm1pc3NpbmdCb2R5VmFsdWUpIHtcbiAgICAgIC8vIGNvbnRleHQ6IGlzIGFwcGxpY2F0aW9uL2pzb24gb3IgYXBwbGljYXRpb24veG1sLCB3aGVyZSB0eXBlb2YgKG1pc3NpbmcpIGJvZHlWYWx1ZSA9IFN0cmluZ1xuICAgICAgcmV0dXJuIHN0YXRlLnNldEluKFtcInJlcXVlc3REYXRhXCIsIHBhdGgsIG1ldGhvZCwgXCJlcnJvcnNcIl0sIGZyb21KUyhlcnJvcnMpKVxuICAgIH1cbiAgICBpZiAodmFsaWRhdGlvbkVycm9ycy5taXNzaW5nUmVxdWlyZWRLZXlzICYmIHZhbGlkYXRpb25FcnJvcnMubWlzc2luZ1JlcXVpcmVkS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBjb250ZXh0OiBpcyBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQsIHdpdGggbGlzdCBvZiBtaXNzaW5nIGtleXNcbiAgICAgIGNvbnN0IHsgbWlzc2luZ1JlcXVpcmVkS2V5cyB9ID0gdmFsaWRhdGlvbkVycm9yc1xuICAgICAgcmV0dXJuIHN0YXRlLnVwZGF0ZUluKFtcInJlcXVlc3REYXRhXCIsIHBhdGgsIG1ldGhvZCwgXCJib2R5VmFsdWVcIl0sIGZyb21KUyh7fSksIG1pc3NpbmdLZXlWYWx1ZXMgPT4ge1xuICAgICAgICByZXR1cm4gbWlzc2luZ1JlcXVpcmVkS2V5cy5yZWR1Y2UoKGJvZHlWYWx1ZSwgY3VycmVudE1pc3NpbmdLZXkpID0+IHtcbiAgICAgICAgICByZXR1cm4gYm9keVZhbHVlLnNldEluKFtjdXJyZW50TWlzc2luZ0tleSwgXCJlcnJvcnNcIl0sIGZyb21KUyhlcnJvcnMpKVxuICAgICAgICB9LCBtaXNzaW5nS2V5VmFsdWVzKVxuICAgICAgfSlcbiAgICB9XG4gICAgY29uc29sZS53YXJuKFwidW5leHBlY3RlZCByZXN1bHQ6IFNFVF9SRVFVRVNUX0JPRFlfVkFMSURBVEVfRVJST1JcIilcbiAgICByZXR1cm4gc3RhdGVcbiAgfSxcbiAgW0NMRUFSX1JFUVVFU1RfQk9EWV9WQUxJREFURV9FUlJPUl06IChzdGF0ZSwgeyBwYXlsb2FkOiB7IHBhdGgsIG1ldGhvZCB9IH0pID0+IHtcbiAgICBjb25zdCByZXF1ZXN0Qm9keVZhbHVlID0gc3RhdGUuZ2V0SW4oW1wicmVxdWVzdERhdGFcIiwgcGF0aCwgbWV0aG9kLCBcImJvZHlWYWx1ZVwiXSlcbiAgICBpZiAoIU1hcC5pc01hcChyZXF1ZXN0Qm9keVZhbHVlKSkge1xuICAgICAgcmV0dXJuIHN0YXRlLnNldEluKFtcInJlcXVlc3REYXRhXCIsIHBhdGgsIG1ldGhvZCwgXCJlcnJvcnNcIl0sIGZyb21KUyhbXSkpXG4gICAgfVxuICAgIGNvbnN0IFsuLi52YWx1ZUtleXNdID0gcmVxdWVzdEJvZHlWYWx1ZS5rZXlzKClcbiAgICBpZiAoIXZhbHVlS2V5cykge1xuICAgICAgcmV0dXJuIHN0YXRlXG4gICAgfVxuICAgIHJldHVybiBzdGF0ZS51cGRhdGVJbihbXCJyZXF1ZXN0RGF0YVwiLCBwYXRoLCBtZXRob2QsIFwiYm9keVZhbHVlXCJdLCBmcm9tSlMoe30pLCBib2R5VmFsdWVzID0+IHtcbiAgICAgIHJldHVybiB2YWx1ZUtleXMucmVkdWNlKChib2R5VmFsdWUsIGN1cnIpID0+IHtcbiAgICAgICAgcmV0dXJuIGJvZHlWYWx1ZS5zZXRJbihbY3VyciwgXCJlcnJvcnNcIl0sIGZyb21KUyhbXSkpXG4gICAgICB9LCBib2R5VmFsdWVzKVxuICAgIH0pXG4gIH0sXG4gIFtDTEVBUl9SRVFVRVNUX0JPRFlfVkFMVUVdOiAoc3RhdGUsIHsgcGF5bG9hZDogeyBwYXRoTWV0aG9kIH19KSA9PiB7XG4gICAgbGV0IFtwYXRoLCBtZXRob2RdID0gcGF0aE1ldGhvZFxuICAgIGNvbnN0IHJlcXVlc3RCb2R5VmFsdWUgPSBzdGF0ZS5nZXRJbihbXCJyZXF1ZXN0RGF0YVwiLCBwYXRoLCBtZXRob2QsIFwiYm9keVZhbHVlXCJdKVxuICAgIGlmICghcmVxdWVzdEJvZHlWYWx1ZSkge1xuICAgICAgcmV0dXJuIHN0YXRlXG4gICAgfVxuICAgIGlmICghTWFwLmlzTWFwKHJlcXVlc3RCb2R5VmFsdWUpKSB7XG4gICAgICByZXR1cm4gc3RhdGUuc2V0SW4oW1wicmVxdWVzdERhdGFcIiwgcGF0aCwgbWV0aG9kLCBcImJvZHlWYWx1ZVwiXSwgXCJcIilcbiAgICB9XG4gICAgcmV0dXJuIHN0YXRlLnNldEluKFtcInJlcXVlc3REYXRhXCIsIHBhdGgsIG1ldGhvZCwgXCJib2R5VmFsdWVcIl0sIE1hcCgpKVxuICB9XG59XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgKiBhcyBzcGVjV3JhcFNlbGVjdG9ycyBmcm9tIFwiLi9zcGVjLWV4dGVuc2lvbnMvd3JhcC1zZWxlY3RvcnNcIlxuaW1wb3J0ICogYXMgYXV0aFdyYXBTZWxlY3RvcnMgZnJvbSBcIi4vYXV0aC1leHRlbnNpb25zL3dyYXAtc2VsZWN0b3JzXCJcbmltcG9ydCAqIGFzIHNwZWNTZWxlY3RvcnMgZnJvbSBcIi4vc3BlYy1leHRlbnNpb25zL3NlbGVjdG9yc1wiXG5pbXBvcnQgY29tcG9uZW50cyBmcm9tIFwiLi9jb21wb25lbnRzXCJcbmltcG9ydCB3cmFwQ29tcG9uZW50cyBmcm9tIFwiLi93cmFwLWNvbXBvbmVudHNcIlxuaW1wb3J0ICogYXMgYWN0aW9ucyBmcm9tIFwiLi9hY3Rpb25zXCJcbmltcG9ydCAqIGFzIHNlbGVjdG9ycyBmcm9tIFwiLi9zZWxlY3RvcnNcIlxuaW1wb3J0IHJlZHVjZXJzIGZyb20gXCIuL3JlZHVjZXJzXCJcbmltcG9ydCB7IG1ha2VJc0ZpbGVVcGxvYWRJbnRlbmRlZCB9IGZyb20gXCIuL2ZuXCJcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKHsgZ2V0U3lzdGVtIH0pIHtcbiAgY29uc3QgaXNGaWxlVXBsb2FkSW50ZW5kZWQgPSBtYWtlSXNGaWxlVXBsb2FkSW50ZW5kZWQoZ2V0U3lzdGVtKVxuXG4gIHJldHVybiB7XG4gICAgY29tcG9uZW50cyxcbiAgICB3cmFwQ29tcG9uZW50cyxcbiAgICBzdGF0ZVBsdWdpbnM6IHtcbiAgICAgIHNwZWM6IHtcbiAgICAgICAgd3JhcFNlbGVjdG9yczogc3BlY1dyYXBTZWxlY3RvcnMsXG4gICAgICAgIHNlbGVjdG9yczogc3BlY1NlbGVjdG9ycyxcbiAgICAgIH0sXG4gICAgICBhdXRoOiB7XG4gICAgICAgIHdyYXBTZWxlY3RvcnM6IGF1dGhXcmFwU2VsZWN0b3JzLFxuICAgICAgfSxcbiAgICAgIG9hczM6IHtcbiAgICAgICAgYWN0aW9uczogeyAuLi5hY3Rpb25zIH0sXG4gICAgICAgIHJlZHVjZXJzLFxuICAgICAgICBzZWxlY3RvcnM6IHsgLi4uc2VsZWN0b3JzIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgZm46IHtcbiAgICAgIGlzRmlsZVVwbG9hZEludGVuZGVkLFxuICAgICAgaXNGaWxlVXBsb2FkSW50ZW5kZWRPQVMzMDogaXNGaWxlVXBsb2FkSW50ZW5kZWQsXG4gICAgfSxcbiAgfVxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgTWFwIH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tIFwibG9kYXNoL2lzUGxhaW5PYmplY3RcIlxuXG5leHBvcnQgY29uc3QgbWFrZUlzRmlsZVVwbG9hZEludGVuZGVkID0gKGdldFN5c3RlbSkgPT4ge1xuICBjb25zdCBpc0ZpbGVVcGxvYWRJbnRlbmRlZCA9IChzY2hlbWEsIG1lZGlhVHlwZSA9IG51bGwpID0+IHtcbiAgICBjb25zdCB7IGdldENvbmZpZ3MsIGZuIH0gPSBnZXRTeXN0ZW0oKVxuICAgIGNvbnN0IHsgZmlsZVVwbG9hZE1lZGlhVHlwZXMgfSA9IGdldENvbmZpZ3MoKVxuICAgIGNvbnN0IGlzRmlsZVVwbG9hZE1lZGlhVHlwZSA9XG4gICAgICB0eXBlb2YgbWVkaWFUeXBlID09PSBcInN0cmluZ1wiICYmXG4gICAgICBmaWxlVXBsb2FkTWVkaWFUeXBlcy5zb21lKChmaWxlVXBsb2FkTWVkaWFUeXBlKSA9PlxuICAgICAgICBtZWRpYVR5cGUuc3RhcnRzV2l0aChmaWxlVXBsb2FkTWVkaWFUeXBlKVxuICAgICAgKVxuXG4gICAgaWYgKGlzRmlsZVVwbG9hZE1lZGlhVHlwZSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBjb25zdCBpc1NjaGVtYUltbXV0YWJsZSA9IE1hcC5pc01hcChzY2hlbWEpXG5cbiAgICBpZiAoIWlzU2NoZW1hSW1tdXRhYmxlICYmICFpc1BsYWluT2JqZWN0KHNjaGVtYSkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGNvbnN0IGZvcm1hdCA9IGlzU2NoZW1hSW1tdXRhYmxlID8gc2NoZW1hLmdldChcImZvcm1hdFwiKSA6IHNjaGVtYS5mb3JtYXRcblxuICAgIHJldHVybiAoXG4gICAgICBmbi5oYXNTY2hlbWFUeXBlKHNjaGVtYSwgXCJzdHJpbmdcIikgJiYgW1wiYmluYXJ5XCIsIFwiYnl0ZVwiXS5pbmNsdWRlcyhmb3JtYXQpXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIGlzRmlsZVVwbG9hZEludGVuZGVkXG59XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHsgTGlzdCB9IGZyb20gXCJpbW11dGFibGVcIlxuXG5jb25zdCBXZWJob29rcyA9ICh7IHNwZWNTZWxlY3RvcnMsIGdldENvbXBvbmVudCB9KSA9PiB7XG4gIGNvbnN0IG9wZXJhdGlvbkRUT3MgPSBzcGVjU2VsZWN0b3JzLnNlbGVjdFdlYmhvb2tzT3BlcmF0aW9ucygpXG4gIGNvbnN0IHBhdGhJdGVtTmFtZXMgPSBPYmplY3Qua2V5cyhvcGVyYXRpb25EVE9zKVxuXG4gIGNvbnN0IE9wZXJhdGlvbkNvbnRhaW5lciA9IGdldENvbXBvbmVudChcIk9wZXJhdGlvbkNvbnRhaW5lclwiLCB0cnVlKVxuXG4gIGlmIChwYXRoSXRlbU5hbWVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwid2ViaG9va3NcIj5cbiAgICAgIDxoMj5XZWJob29rczwvaDI+XG5cbiAgICAgIHtwYXRoSXRlbU5hbWVzLm1hcCgocGF0aEl0ZW1OYW1lKSA9PiAoXG4gICAgICAgIDxkaXYga2V5PXtgJHtwYXRoSXRlbU5hbWV9LXdlYmhvb2tgfT5cbiAgICAgICAgICB7b3BlcmF0aW9uRFRPc1twYXRoSXRlbU5hbWVdLm1hcCgob3BlcmF0aW9uRFRPKSA9PiAoXG4gICAgICAgICAgICA8T3BlcmF0aW9uQ29udGFpbmVyXG4gICAgICAgICAgICAgIGtleT17YCR7cGF0aEl0ZW1OYW1lfS0ke29wZXJhdGlvbkRUTy5tZXRob2R9LXdlYmhvb2tgfVxuICAgICAgICAgICAgICBvcD17b3BlcmF0aW9uRFRPLm9wZXJhdGlvbn1cbiAgICAgICAgICAgICAgdGFnPVwid2ViaG9va3NcIlxuICAgICAgICAgICAgICBtZXRob2Q9e29wZXJhdGlvbkRUTy5tZXRob2R9XG4gICAgICAgICAgICAgIHBhdGg9e3BhdGhJdGVtTmFtZX1cbiAgICAgICAgICAgICAgc3BlY1BhdGg9e0xpc3Qob3BlcmF0aW9uRFRPLnNwZWNQYXRoKX1cbiAgICAgICAgICAgICAgYWxsb3dUcnlJdE91dD17ZmFsc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICkpfVxuICAgIDwvZGl2PlxuICApXG59XG5cbldlYmhvb2tzLnByb3BUeXBlcyA9IHtcbiAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBzZWxlY3RXZWJob29rc09wZXJhdGlvbnM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIH0pLmlzUmVxdWlyZWQsXG4gIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgV2ViaG9va3NcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmltcG9ydCB7IHNhbml0aXplVXJsIH0gZnJvbSBcImNvcmUvdXRpbHMvdXJsXCJcblxuY29uc3QgTGljZW5zZSA9ICh7IGdldENvbXBvbmVudCwgc3BlY1NlbGVjdG9ycyB9KSA9PiB7XG4gIGNvbnN0IG5hbWUgPSBzcGVjU2VsZWN0b3JzLnNlbGVjdExpY2Vuc2VOYW1lRmllbGQoKVxuICBjb25zdCB1cmwgPSBzcGVjU2VsZWN0b3JzLnNlbGVjdExpY2Vuc2VVcmwoKVxuXG4gIGNvbnN0IExpbmsgPSBnZXRDb21wb25lbnQoXCJMaW5rXCIpXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9fX2xpY2Vuc2VcIj5cbiAgICAgIHt1cmwgPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb19fbGljZW5zZV9fdXJsXCI+XG4gICAgICAgICAgPExpbmsgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17c2FuaXRpemVVcmwodXJsKX0+XG4gICAgICAgICAgICB7bmFtZX1cbiAgICAgICAgICA8L0xpbms+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSA6IChcbiAgICAgICAgPHNwYW4+e25hbWV9PC9zcGFuPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5MaWNlbnNlLnByb3BUeXBlcyA9IHtcbiAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIHNlbGVjdExpY2Vuc2VOYW1lRmllbGQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2VsZWN0TGljZW5zZVVybDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgfSkuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgTGljZW5zZVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuaW1wb3J0IHsgc2FuaXRpemVVcmwgfSBmcm9tIFwiY29yZS91dGlscy91cmxcIlxuXG5jb25zdCBDb250YWN0ID0gKHsgZ2V0Q29tcG9uZW50LCBzcGVjU2VsZWN0b3JzIH0pID0+IHtcbiAgY29uc3QgbmFtZSA9IHNwZWNTZWxlY3RvcnMuc2VsZWN0Q29udGFjdE5hbWVGaWVsZCgpXG4gIGNvbnN0IHVybCA9IHNwZWNTZWxlY3RvcnMuc2VsZWN0Q29udGFjdFVybCgpXG4gIGNvbnN0IGVtYWlsID0gc3BlY1NlbGVjdG9ycy5zZWxlY3RDb250YWN0RW1haWxGaWVsZCgpXG5cbiAgY29uc3QgTGluayA9IGdldENvbXBvbmVudChcIkxpbmtcIilcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb19fY29udGFjdFwiPlxuICAgICAge3VybCAmJiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPExpbmsgaHJlZj17c2FuaXRpemVVcmwodXJsKX0gdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgICB7bmFtZX0gLSBXZWJzaXRlXG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgICB7ZW1haWwgJiYgKFxuICAgICAgICA8TGluayBocmVmPXtzYW5pdGl6ZVVybChgbWFpbHRvOiR7ZW1haWx9YCl9PlxuICAgICAgICAgIHt1cmwgPyBgU2VuZCBlbWFpbCB0byAke25hbWV9YCA6IGBDb250YWN0ICR7bmFtZX1gfVxuICAgICAgICA8L0xpbms+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApXG59XG5cbkNvbnRhY3QucHJvcFR5cGVzID0ge1xuICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgc2VsZWN0Q29udGFjdE5hbWVGaWVsZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzZWxlY3RDb250YWN0VXJsOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNlbGVjdENvbnRhY3RFbWFpbEZpZWxkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB9KS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBDb250YWN0XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5pbXBvcnQgeyBzYW5pdGl6ZVVybCB9IGZyb20gXCJjb3JlL3V0aWxzL3VybFwiXG5cbmNvbnN0IEluZm8gPSAoeyBnZXRDb21wb25lbnQsIHNwZWNTZWxlY3RvcnMgfSkgPT4ge1xuICBjb25zdCB2ZXJzaW9uID0gc3BlY1NlbGVjdG9ycy52ZXJzaW9uKClcbiAgY29uc3QgdXJsID0gc3BlY1NlbGVjdG9ycy51cmwoKVxuICBjb25zdCBiYXNlUGF0aCA9IHNwZWNTZWxlY3RvcnMuYmFzZVBhdGgoKVxuICBjb25zdCBob3N0ID0gc3BlY1NlbGVjdG9ycy5ob3N0KClcbiAgY29uc3Qgc3VtbWFyeSA9IHNwZWNTZWxlY3RvcnMuc2VsZWN0SW5mb1N1bW1hcnlGaWVsZCgpXG4gIGNvbnN0IGRlc2NyaXB0aW9uID0gc3BlY1NlbGVjdG9ycy5zZWxlY3RJbmZvRGVzY3JpcHRpb25GaWVsZCgpXG4gIGNvbnN0IHRpdGxlID0gc3BlY1NlbGVjdG9ycy5zZWxlY3RJbmZvVGl0bGVGaWVsZCgpXG4gIGNvbnN0IHRlcm1zT2ZTZXJ2aWNlVXJsID0gc3BlY1NlbGVjdG9ycy5zZWxlY3RJbmZvVGVybXNPZlNlcnZpY2VVcmwoKVxuICBjb25zdCBleHRlcm5hbERvY3NVcmwgPSBzcGVjU2VsZWN0b3JzLnNlbGVjdEV4dGVybmFsRG9jc1VybCgpXG4gIGNvbnN0IGV4dGVybmFsRG9jc0Rlc2MgPSBzcGVjU2VsZWN0b3JzLnNlbGVjdEV4dGVybmFsRG9jc0Rlc2NyaXB0aW9uRmllbGQoKVxuICBjb25zdCBjb250YWN0ID0gc3BlY1NlbGVjdG9ycy5jb250YWN0KClcbiAgY29uc3QgbGljZW5zZSA9IHNwZWNTZWxlY3RvcnMubGljZW5zZSgpXG5cbiAgY29uc3QgTWFya2Rvd24gPSBnZXRDb21wb25lbnQoXCJNYXJrZG93blwiLCB0cnVlKVxuICBjb25zdCBMaW5rID0gZ2V0Q29tcG9uZW50KFwiTGlua1wiKVxuICBjb25zdCBWZXJzaW9uU3RhbXAgPSBnZXRDb21wb25lbnQoXCJWZXJzaW9uU3RhbXBcIilcbiAgY29uc3QgT3BlbkFQSVZlcnNpb24gPSBnZXRDb21wb25lbnQoXCJPcGVuQVBJVmVyc2lvblwiKVxuICBjb25zdCBJbmZvVXJsID0gZ2V0Q29tcG9uZW50KFwiSW5mb1VybFwiKVxuICBjb25zdCBJbmZvQmFzZVBhdGggPSBnZXRDb21wb25lbnQoXCJJbmZvQmFzZVBhdGhcIilcbiAgY29uc3QgTGljZW5zZSA9IGdldENvbXBvbmVudChcIkxpY2Vuc2VcIiwgdHJ1ZSlcbiAgY29uc3QgQ29udGFjdCA9IGdldENvbXBvbmVudChcIkNvbnRhY3RcIiwgdHJ1ZSlcbiAgY29uc3QgSnNvblNjaGVtYURpYWxlY3QgPSBnZXRDb21wb25lbnQoXCJKc29uU2NoZW1hRGlhbGVjdFwiLCB0cnVlKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XG4gICAgICA8aGdyb3VwIGNsYXNzTmFtZT1cIm1haW5cIj5cbiAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRpdGxlXCI+XG4gICAgICAgICAge3RpdGxlfVxuICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAge3ZlcnNpb24gJiYgPFZlcnNpb25TdGFtcCB2ZXJzaW9uPXt2ZXJzaW9ufSAvPn1cbiAgICAgICAgICAgIDxPcGVuQVBJVmVyc2lvbiBvYXNWZXJzaW9uPVwiMy4xXCIgLz5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvaDI+XG5cbiAgICAgICAgeyhob3N0IHx8IGJhc2VQYXRoKSAmJiA8SW5mb0Jhc2VQYXRoIGhvc3Q9e2hvc3R9IGJhc2VQYXRoPXtiYXNlUGF0aH0gLz59XG4gICAgICAgIHt1cmwgJiYgPEluZm9VcmwgZ2V0Q29tcG9uZW50PXtnZXRDb21wb25lbnR9IHVybD17dXJsfSAvPn1cbiAgICAgIDwvaGdyb3VwPlxuXG4gICAgICB7c3VtbWFyeSAmJiA8cCBjbGFzc05hbWU9XCJpbmZvX19zdW1tYXJ5XCI+e3N1bW1hcnl9PC9wPn1cblxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvX19kZXNjcmlwdGlvbiBkZXNjcmlwdGlvblwiPlxuICAgICAgICA8TWFya2Rvd24gc291cmNlPXtkZXNjcmlwdGlvbn0gLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7dGVybXNPZlNlcnZpY2VVcmwgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9fX3Rvc1wiPlxuICAgICAgICAgIDxMaW5rIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9e3Nhbml0aXplVXJsKHRlcm1zT2ZTZXJ2aWNlVXJsKX0+XG4gICAgICAgICAgICBUZXJtcyBvZiBzZXJ2aWNlXG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG5cbiAgICAgIHtjb250YWN0LnNpemUgPiAwICYmIDxDb250YWN0IC8+fVxuXG4gICAgICB7bGljZW5zZS5zaXplID4gMCAmJiA8TGljZW5zZSAvPn1cblxuICAgICAge2V4dGVybmFsRG9jc1VybCAmJiAoXG4gICAgICAgIDxMaW5rXG4gICAgICAgICAgY2xhc3NOYW1lPVwiaW5mb19fZXh0ZG9jc1wiXG4gICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICBocmVmPXtzYW5pdGl6ZVVybChleHRlcm5hbERvY3NVcmwpfVxuICAgICAgICA+XG4gICAgICAgICAge2V4dGVybmFsRG9jc0Rlc2MgfHwgZXh0ZXJuYWxEb2NzVXJsfVxuICAgICAgICA8L0xpbms+XG4gICAgICApfVxuXG4gICAgICA8SnNvblNjaGVtYURpYWxlY3QgLz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5JbmZvLnByb3BUeXBlcyA9IHtcbiAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIHZlcnNpb246IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXJsOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGJhc2VQYXRoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGhvc3Q6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2VsZWN0SW5mb1N1bW1hcnlGaWVsZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzZWxlY3RJbmZvRGVzY3JpcHRpb25GaWVsZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzZWxlY3RJbmZvVGl0bGVGaWVsZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzZWxlY3RJbmZvVGVybXNPZlNlcnZpY2VVcmw6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2VsZWN0RXh0ZXJuYWxEb2NzVXJsOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNlbGVjdEV4dGVybmFsRG9jc0Rlc2NyaXB0aW9uRmllbGQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgY29udGFjdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBsaWNlbnNlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB9KS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBJbmZvXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmltcG9ydCB7IHNhbml0aXplVXJsIH0gZnJvbSBcImNvcmUvdXRpbHMvdXJsXCJcblxuY29uc3QgSnNvblNjaGVtYURpYWxlY3QgPSAoeyBnZXRDb21wb25lbnQsIHNwZWNTZWxlY3RvcnMgfSkgPT4ge1xuICBjb25zdCBqc29uU2NoZW1hRGlhbGVjdCA9IHNwZWNTZWxlY3RvcnMuc2VsZWN0SnNvblNjaGVtYURpYWxlY3RGaWVsZCgpXG4gIGNvbnN0IGpzb25TY2hlbWFEaWFsZWN0RGVmYXVsdCA9IHNwZWNTZWxlY3RvcnMuc2VsZWN0SnNvblNjaGVtYURpYWxlY3REZWZhdWx0KCkgLy8gcHJldHRpZXItaWdub3JlXG5cbiAgY29uc3QgTGluayA9IGdldENvbXBvbmVudChcIkxpbmtcIilcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7anNvblNjaGVtYURpYWxlY3QgJiYganNvblNjaGVtYURpYWxlY3QgPT09IGpzb25TY2hlbWFEaWFsZWN0RGVmYXVsdCAmJiAoXG4gICAgICAgIDxwIGNsYXNzTmFtZT1cImluZm9fX2pzb25zY2hlbWFkaWFsZWN0XCI+XG4gICAgICAgICAgSlNPTiBTY2hlbWEgZGlhbGVjdDp7XCIgXCJ9XG4gICAgICAgICAgPExpbmsgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17c2FuaXRpemVVcmwoanNvblNjaGVtYURpYWxlY3QpfT5cbiAgICAgICAgICAgIHtqc29uU2NoZW1hRGlhbGVjdH1cbiAgICAgICAgICA8L0xpbms+XG4gICAgICAgIDwvcD5cbiAgICAgICl9XG5cbiAgICAgIHtqc29uU2NoZW1hRGlhbGVjdCAmJiBqc29uU2NoZW1hRGlhbGVjdCAhPT0ganNvblNjaGVtYURpYWxlY3REZWZhdWx0ICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJlcnJvci13cmFwcGVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuby1tYXJnaW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXJyb3JzXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXJyb3JzLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY2VudGVyXCI+V2FybmluZzwvaDQ+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwibWVzc2FnZVwiPlxuICAgICAgICAgICAgICAgICAgPHN0cm9uZz5PcGVuQVBJLmpzb25TY2hlbWFEaWFsZWN0PC9zdHJvbmc+IGZpZWxkIGNvbnRhaW5zIGFcbiAgICAgICAgICAgICAgICAgIHZhbHVlIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IHZhbHVlIG9me1wiIFwifVxuICAgICAgICAgICAgICAgICAgPExpbmsgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17anNvblNjaGVtYURpYWxlY3REZWZhdWx0fT5cbiAgICAgICAgICAgICAgICAgICAge2pzb25TY2hlbWFEaWFsZWN0RGVmYXVsdH1cbiAgICAgICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgICAgIC4gVmFsdWVzIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IG9uZSBhcmUgY3VycmVudGx5IG5vdFxuICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkLiBQbGVhc2UgZWl0aGVyIG9taXQgdGhlIGZpZWxkIG9yIHByb3ZpZGUgaXQgd2l0aCB0aGVcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHQgdmFsdWUuXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC8+XG4gIClcbn1cblxuSnNvblNjaGVtYURpYWxlY3QucHJvcFR5cGVzID0ge1xuICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNwZWNTZWxlY3RvcnM6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgc2VsZWN0SnNvblNjaGVtYURpYWxlY3RGaWVsZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzZWxlY3RKc29uU2NoZW1hRGlhbGVjdERlZmF1bHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIH0pLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEpzb25TY2hlbWFEaWFsZWN0XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5jb25zdCBWZXJzaW9uUHJhZ21hRmlsdGVyID0gKHtcbiAgYnlwYXNzLFxuICBpc1N3YWdnZXIyLFxuICBpc09BUzMsXG4gIGlzT0FTMzEsXG4gIGFsc29TaG93LFxuICBjaGlsZHJlbixcbn0pID0+IHtcbiAgaWYgKGJ5cGFzcykge1xuICAgIHJldHVybiA8ZGl2PntjaGlsZHJlbn08L2Rpdj5cbiAgfVxuXG4gIGlmIChpc1N3YWdnZXIyICYmIChpc09BUzMgfHwgaXNPQVMzMSkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ2ZXJzaW9uLXByYWdtYVwiPlxuICAgICAgICB7YWxzb1Nob3d9XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidmVyc2lvbi1wcmFnbWFfX21lc3NhZ2UgdmVyc2lvbi1wcmFnbWFfX21lc3NhZ2UtLWFtYmlndW91c1wiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8aDM+VW5hYmxlIHRvIHJlbmRlciB0aGlzIGRlZmluaXRpb248L2gzPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIDxjb2RlPnN3YWdnZXI8L2NvZGU+IGFuZCA8Y29kZT5vcGVuYXBpPC9jb2RlPiBmaWVsZHMgY2Fubm90IGJlXG4gICAgICAgICAgICAgIHByZXNlbnQgaW4gdGhlIHNhbWUgU3dhZ2dlciBvciBPcGVuQVBJIGRlZmluaXRpb24uIFBsZWFzZSByZW1vdmVcbiAgICAgICAgICAgICAgb25lIG9mIHRoZSBmaWVsZHMuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgU3VwcG9ydGVkIHZlcnNpb24gZmllbGRzIGFyZSA8Y29kZT5zd2FnZ2VyOiAmcXVvdDsyLjAmcXVvdDs8L2NvZGU+IGFuZFxuICAgICAgICAgICAgICB0aG9zZSB0aGF0IG1hdGNoIDxjb2RlPm9wZW5hcGk6IDMueC55PC9jb2RlPiAoZm9yIGV4YW1wbGUse1wiIFwifVxuICAgICAgICAgICAgICA8Y29kZT5vcGVuYXBpOiAzLjEuMDwvY29kZT4pLlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIGlmICghaXNTd2FnZ2VyMiAmJiAhaXNPQVMzICYmICFpc09BUzMxKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwidmVyc2lvbi1wcmFnbWFcIj5cbiAgICAgICAge2Fsc29TaG93fVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInZlcnNpb24tcHJhZ21hX19tZXNzYWdlIHZlcnNpb24tcHJhZ21hX19tZXNzYWdlLS1taXNzaW5nXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxoMz5VbmFibGUgdG8gcmVuZGVyIHRoaXMgZGVmaW5pdGlvbjwvaDM+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgVGhlIHByb3ZpZGVkIGRlZmluaXRpb24gZG9lcyBub3Qgc3BlY2lmeSBhIHZhbGlkIHZlcnNpb24gZmllbGQuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgUGxlYXNlIGluZGljYXRlIGEgdmFsaWQgU3dhZ2dlciBvciBPcGVuQVBJIHZlcnNpb24gZmllbGQuXG4gICAgICAgICAgICAgIFN1cHBvcnRlZCB2ZXJzaW9uIGZpZWxkcyBhcmUgPGNvZGU+c3dhZ2dlcjogJnF1b3Q7Mi4wJnF1b3Q7PC9jb2RlPiBhbmRcbiAgICAgICAgICAgICAgdGhvc2UgdGhhdCBtYXRjaCA8Y29kZT5vcGVuYXBpOiAzLngueTwvY29kZT4gKGZvciBleGFtcGxlLHtcIiBcIn1cbiAgICAgICAgICAgICAgPGNvZGU+b3BlbmFwaTogMy4xLjA8L2NvZGU+KS5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cblxuICByZXR1cm4gPGRpdj57Y2hpbGRyZW59PC9kaXY+XG59XG5cblZlcnNpb25QcmFnbWFGaWx0ZXIucHJvcFR5cGVzID0ge1xuICBpc1N3YWdnZXIyOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBpc09BUzM6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGlzT0FTMzE6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGJ5cGFzczogUHJvcFR5cGVzLmJvb2wsXG4gIGFsc29TaG93OiBQcm9wVHlwZXMuZWxlbWVudCxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnksXG59XG5cbmV4cG9ydCBkZWZhdWx0IFZlcnNpb25QcmFnbWFGaWx0ZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCwgeyBmb3J3YXJkUmVmLCB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBJbVByb3BUeXBlcyBmcm9tIFwicmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlc1wiXG5cbmNvbnN0IGRlY29kZVJlZk5hbWUgPSAodXJpKSA9PiB7XG4gIGNvbnN0IHVuZXNjYXBlZCA9IHVyaS5yZXBsYWNlKC9+MS9nLCBcIi9cIikucmVwbGFjZSgvfjAvZywgXCJ+XCIpXG4gIHRyeSB7XG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh1bmVzY2FwZWQpXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmVzY2FwZWRcbiAgfVxufVxuY29uc3QgZ2V0TW9kZWxOYW1lID0gKHVyaSkgPT4ge1xuICBpZiAodHlwZW9mIHVyaSA9PT0gXCJzdHJpbmdcIiAmJiB1cmkuaW5jbHVkZXMoXCIjL2NvbXBvbmVudHMvc2NoZW1hcy9cIikpIHtcbiAgICByZXR1cm4gZGVjb2RlUmVmTmFtZSh1cmkucmVwbGFjZSgvXi4qI1xcL2NvbXBvbmVudHNcXC9zY2hlbWFzXFwvLywgXCJcIikpXG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuY29uc3QgTW9kZWwgPSBmb3J3YXJkUmVmKFxuICAoeyBzY2hlbWEsIGdldENvbXBvbmVudCwgb25Ub2dnbGUgPSAoKSA9PiB7fSwgc3BlY1BhdGggfSwgcmVmKSA9PiB7XG4gICAgY29uc3QgSlNPTlNjaGVtYTIwMjAxMiA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJcIilcbiAgICBjb25zdCBuYW1lID0gZ2V0TW9kZWxOYW1lKHNjaGVtYS5nZXQoXCIkJHJlZlwiKSlcblxuICAgIGNvbnN0IGhhbmRsZUV4cGFuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGUsIGV4cGFuZGVkKSA9PiB7XG4gICAgICAgIG9uVG9nZ2xlKG5hbWUsIGV4cGFuZGVkKVxuICAgICAgfSxcbiAgICAgIFtuYW1lLCBvblRvZ2dsZV1cbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPEpTT05TY2hlbWEyMDIwMTJcbiAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgc2NoZW1hPXtzY2hlbWEudG9KUygpfVxuICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgb25FeHBhbmQ9e2hhbmRsZUV4cGFuZH1cbiAgICAgICAgaWRlbnRpZmllcj17c3BlY1BhdGgudG9KUygpLmpvaW4oXCJfXCIpfVxuICAgICAgLz5cbiAgICApXG4gIH1cbilcblxuTW9kZWwucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IEltUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uVG9nZ2xlOiBQcm9wVHlwZXMuZnVuYyxcbiAgc3BlY1BhdGg6IEltUHJvcFR5cGVzLmxpc3QuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgTW9kZWxcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuXG5jb25zdCBNb2RlbHMgPSAoe1xuICBzcGVjQWN0aW9ucyxcbiAgc3BlY1NlbGVjdG9ycyxcbiAgbGF5b3V0U2VsZWN0b3JzLFxuICBsYXlvdXRBY3Rpb25zLFxuICBnZXRDb21wb25lbnQsXG4gIGdldENvbmZpZ3MsXG4gIGZuLFxufSkgPT4ge1xuICBjb25zdCBzY2hlbWFzID0gc3BlY1NlbGVjdG9ycy5zZWxlY3RTY2hlbWFzKClcbiAgY29uc3QgaGFzU2NoZW1hcyA9IE9iamVjdC5rZXlzKHNjaGVtYXMpLmxlbmd0aCA+IDBcbiAgY29uc3Qgc2NoZW1hc1BhdGggPSBbXCJjb21wb25lbnRzXCIsIFwic2NoZW1hc1wiXVxuICBjb25zdCB7IGRvY0V4cGFuc2lvbiwgZGVmYXVsdE1vZGVsc0V4cGFuZERlcHRoIH0gPSBnZXRDb25maWdzKClcbiAgY29uc3QgaXNPcGVuRGVmYXVsdCA9IGRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aCA+IDAgJiYgZG9jRXhwYW5zaW9uICE9PSBcIm5vbmVcIlxuICBjb25zdCBpc09wZW4gPSBsYXlvdXRTZWxlY3RvcnMuaXNTaG93bihzY2hlbWFzUGF0aCwgaXNPcGVuRGVmYXVsdClcbiAgY29uc3QgQ29sbGFwc2UgPSBnZXRDb21wb25lbnQoXCJDb2xsYXBzZVwiKVxuICBjb25zdCBKU09OU2NoZW1hMjAyMDEyID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMlwiKVxuICBjb25zdCBBcnJvd1VwSWNvbiA9IGdldENvbXBvbmVudChcIkFycm93VXBJY29uXCIpXG4gIGNvbnN0IEFycm93RG93bkljb24gPSBnZXRDb21wb25lbnQoXCJBcnJvd0Rvd25JY29uXCIpXG4gIGNvbnN0IHsgZ2V0VGl0bGUgfSA9IGZuLmpzb25TY2hlbWEyMDIwMTIudXNlRm4oKVxuXG4gIC8qKlxuICAgKiBFZmZlY3RzLlxuICAgKi9cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBpc09wZW5BbmRFeHBhbmRlZCA9IGlzT3BlbiAmJiBkZWZhdWx0TW9kZWxzRXhwYW5kRGVwdGggPiAxXG4gICAgY29uc3QgaXNSZXNvbHZlZCA9IHNwZWNTZWxlY3RvcnMuc3BlY1Jlc29sdmVkU3VidHJlZShzY2hlbWFzUGF0aCkgIT0gbnVsbFxuICAgIGlmIChpc09wZW5BbmRFeHBhbmRlZCAmJiAhaXNSZXNvbHZlZCkge1xuICAgICAgc3BlY0FjdGlvbnMucmVxdWVzdFJlc29sdmVkU3VidHJlZShzY2hlbWFzUGF0aClcbiAgICB9XG4gIH0sIFtpc09wZW4sIGRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aF0pXG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXJzLlxuICAgKi9cblxuICBjb25zdCBoYW5kbGVNb2RlbHNFeHBhbmQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbGF5b3V0QWN0aW9ucy5zaG93KHNjaGVtYXNQYXRoLCAhaXNPcGVuKVxuICB9LCBbaXNPcGVuXSlcbiAgY29uc3QgaGFuZGxlTW9kZWxzUmVmID0gdXNlQ2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgbGF5b3V0QWN0aW9ucy5yZWFkeVRvU2Nyb2xsKHNjaGVtYXNQYXRoLCBub2RlKVxuICAgIH1cbiAgfSwgW10pXG4gIGNvbnN0IGhhbmRsZUpTT05TY2hlbWEyMDIwMTJSZWYgPSAoc2NoZW1hTmFtZSkgPT4gKG5vZGUpID0+IHtcbiAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgbGF5b3V0QWN0aW9ucy5yZWFkeVRvU2Nyb2xsKFsuLi5zY2hlbWFzUGF0aCwgc2NoZW1hTmFtZV0sIG5vZGUpXG4gICAgfVxuICB9XG4gIGNvbnN0IGhhbmRsZUpTT05TY2hlbWEyMDIwMTJFeHBhbmQgPSAoc2NoZW1hTmFtZSkgPT4gKGUsIGV4cGFuZGVkKSA9PiB7XG4gICAgaWYgKGV4cGFuZGVkKSB7XG4gICAgICBjb25zdCBzY2hlbWFQYXRoID0gWy4uLnNjaGVtYXNQYXRoLCBzY2hlbWFOYW1lXVxuICAgICAgY29uc3QgaXNSZXNvbHZlZCA9IHNwZWNTZWxlY3RvcnMuc3BlY1Jlc29sdmVkU3VidHJlZShzY2hlbWFQYXRoKSAhPSBudWxsXG4gICAgICBpZiAoIWlzUmVzb2x2ZWQpIHtcbiAgICAgICAgc3BlY0FjdGlvbnMucmVxdWVzdFJlc29sdmVkU3VidHJlZShbLi4uc2NoZW1hc1BhdGgsIHNjaGVtYU5hbWVdKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJpbmcuXG4gICAqL1xuXG4gIGlmICghaGFzU2NoZW1hcyB8fCBkZWZhdWx0TW9kZWxzRXhwYW5kRGVwdGggPCAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPHNlY3Rpb25cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcIm1vZGVsc1wiLCB7IFwiaXMtb3BlblwiOiBpc09wZW4gfSl9XG4gICAgICByZWY9e2hhbmRsZU1vZGVsc1JlZn1cbiAgICA+XG4gICAgICA8aDQ+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtpc09wZW59XG4gICAgICAgICAgY2xhc3NOYW1lPVwibW9kZWxzLWNvbnRyb2xcIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZU1vZGVsc0V4cGFuZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuPlNjaGVtYXM8L3NwYW4+XG4gICAgICAgICAge2lzT3BlbiA/IDxBcnJvd1VwSWNvbiAvPiA6IDxBcnJvd0Rvd25JY29uIC8+fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvaDQ+XG4gICAgICA8Q29sbGFwc2UgaXNPcGVuZWQ9e2lzT3Blbn0+XG4gICAgICAgIHtPYmplY3QuZW50cmllcyhzY2hlbWFzKS5tYXAoKFtzY2hlbWFOYW1lLCBzY2hlbWFdKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmFtZSA9IGdldFRpdGxlKHNjaGVtYSwgeyBsb29rdXA6IFwiYmFzaWNcIiB9KSB8fCBzY2hlbWFOYW1lXG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPEpTT05TY2hlbWEyMDIwMTJcbiAgICAgICAgICAgICAga2V5PXtzY2hlbWFOYW1lfVxuICAgICAgICAgICAgICByZWY9e2hhbmRsZUpTT05TY2hlbWEyMDIwMTJSZWYoc2NoZW1hTmFtZSl9XG4gICAgICAgICAgICAgIHNjaGVtYT17c2NoZW1hfVxuICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICBvbkV4cGFuZD17aGFuZGxlSlNPTlNjaGVtYTIwMjAxMkV4cGFuZChzY2hlbWFOYW1lKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cbiAgICAgIDwvQ29sbGFwc2U+XG4gICAgPC9zZWN0aW9uPlxuICApXG59XG5cbk1vZGVscy5wcm9wVHlwZXMgPSB7XG4gIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZ2V0Q29uZmlnczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc3BlY1NlbGVjdG9yczogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBzZWxlY3RTY2hlbWFzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNwZWNSZXNvbHZlZFN1YnRyZWU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIH0pLmlzUmVxdWlyZWQsXG4gIHNwZWNBY3Rpb25zOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIHJlcXVlc3RSZXNvbHZlZFN1YnRyZWU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIH0pLmlzUmVxdWlyZWQsXG4gIGxheW91dFNlbGVjdG9yczogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBpc1Nob3duOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB9KS5pc1JlcXVpcmVkLFxuICBsYXlvdXRBY3Rpb25zOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIHNob3c6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgcmVhZHlUb1Njcm9sbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgfSkuaXNSZXF1aXJlZCxcbiAgZm46IFByb3BUeXBlcy5zaGFwZSh7XG4gICAganNvblNjaGVtYTIwMjAxMjogUHJvcFR5cGVzLmZ1bmMuc2hhcGUoe1xuICAgICAgdXNlRm46IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgfSkuaXNSZXF1aXJlZCxcbiAgfSkuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgTW9kZWxzXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5jb25zdCBNdXR1YWxUTFNBdXRoID0gKHsgc2NoZW1hLCBnZXRDb21wb25lbnQsIG5hbWUsIGF1dGhTZWxlY3RvcnMgfSkgPT4ge1xuICBjb25zdCBKdW1wVG9QYXRoID0gZ2V0Q29tcG9uZW50KFwiSnVtcFRvUGF0aFwiLCB0cnVlKVxuICBjb25zdCBwYXRoID0gYXV0aFNlbGVjdG9ycy5zZWxlY3RBdXRoUGF0aChuYW1lKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIDxoND5cbiAgICAgICAge25hbWV9IChtdXR1YWxUTFMpIDxKdW1wVG9QYXRoIHBhdGg9e3BhdGh9IC8+XG4gICAgICA8L2g0PlxuICAgICAgPHA+XG4gICAgICAgIE11dHVhbCBUTFMgaXMgcmVxdWlyZWQgYnkgdGhpcyBBUEkvT3BlcmF0aW9uLiBDZXJ0aWZpY2F0ZXMgYXJlIG1hbmFnZWRcbiAgICAgICAgdmlhIHlvdXIgT3BlcmF0aW5nIFN5c3RlbSBhbmQvb3IgeW91ciBicm93c2VyLlxuICAgICAgPC9wPlxuICAgICAgPHA+e3NjaGVtYS5nZXQoXCJkZXNjcmlwdGlvblwiKX08L3A+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuTXV0dWFsVExTQXV0aC5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgYXV0aFNlbGVjdG9yczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBNdXR1YWxUTFNBdXRoXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IEltUHJvcFR5cGVzIGZyb20gXCJyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzXCJcblxuY2xhc3MgQXV0aHMgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGRlZmluaXRpb25zOiBJbVByb3BUeXBlcy5pdGVyYWJsZS5pc1JlcXVpcmVkLFxuICAgIGdldENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBhdXRoU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgYXV0aEFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBlcnJTZWxlY3RvcnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBzcGVjU2VsZWN0b3JzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm9wcywgY29udGV4dCkge1xuICAgIHN1cGVyKHByb3BzLCBjb250ZXh0KVxuXG4gICAgdGhpcy5zdGF0ZSA9IHt9XG4gIH1cblxuICBvbkF1dGhDaGFuZ2UgPSAoYXV0aCkgPT4ge1xuICAgIGxldCB7IG5hbWUgfSA9IGF1dGhcblxuICAgIHRoaXMuc2V0U3RhdGUoeyBbbmFtZV06IGF1dGggfSlcbiAgfVxuXG4gIHN1Ym1pdEF1dGggPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuXG4gICAgbGV0IHsgYXV0aEFjdGlvbnMgfSA9IHRoaXMucHJvcHNcbiAgICBhdXRoQWN0aW9ucy5hdXRob3JpemVXaXRoUGVyc2lzdE9wdGlvbih0aGlzLnN0YXRlKVxuICB9XG5cbiAgbG9nb3V0Q2xpY2sgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuXG4gICAgbGV0IHsgYXV0aEFjdGlvbnMsIGRlZmluaXRpb25zIH0gPSB0aGlzLnByb3BzXG4gICAgbGV0IGF1dGhzID0gZGVmaW5pdGlvbnNcbiAgICAgIC5tYXAoKHZhbCwga2V5KSA9PiB7XG4gICAgICAgIHJldHVybiBrZXlcbiAgICAgIH0pXG4gICAgICAudG9BcnJheSgpXG5cbiAgICB0aGlzLnNldFN0YXRlKFxuICAgICAgYXV0aHMucmVkdWNlKChwcmV2LCBhdXRoKSA9PiB7XG4gICAgICAgIHByZXZbYXV0aF0gPSBcIlwiXG4gICAgICAgIHJldHVybiBwcmV2XG4gICAgICB9LCB7fSlcbiAgICApXG5cbiAgICBhdXRoQWN0aW9ucy5sb2dvdXRXaXRoUGVyc2lzdE9wdGlvbihhdXRocylcbiAgfVxuXG4gIGNsb3NlID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBsZXQgeyBhdXRoQWN0aW9ucyB9ID0gdGhpcy5wcm9wc1xuXG4gICAgYXV0aEFjdGlvbnMuc2hvd0RlZmluaXRpb25zKGZhbHNlKVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IGRlZmluaXRpb25zLCBnZXRDb21wb25lbnQsIGF1dGhTZWxlY3RvcnMsIGVyclNlbGVjdG9ycyB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IEF1dGhJdGVtID0gZ2V0Q29tcG9uZW50KFwiQXV0aEl0ZW1cIilcbiAgICBjb25zdCBPYXV0aDIgPSBnZXRDb21wb25lbnQoXCJvYXV0aDJcIiwgdHJ1ZSlcbiAgICBjb25zdCBCdXR0b24gPSBnZXRDb21wb25lbnQoXCJCdXR0b25cIilcblxuICAgIGNvbnN0IGF1dGhvcml6ZWQgPSBhdXRoU2VsZWN0b3JzLmF1dGhvcml6ZWQoKVxuICAgIGNvbnN0IGF1dGhvcml6ZWRBdXRoID0gZGVmaW5pdGlvbnMuZmlsdGVyKChkZWZpbml0aW9uLCBrZXkpID0+IHtcbiAgICAgIHJldHVybiAhIWF1dGhvcml6ZWQuZ2V0KGtleSlcbiAgICB9KVxuICAgIGNvbnN0IG5vbk9hdXRoRGVmaW5pdGlvbnMgPSBkZWZpbml0aW9ucy5maWx0ZXIoXG4gICAgICAoc2NoZW1hKSA9PlxuICAgICAgICBzY2hlbWEuZ2V0KFwidHlwZVwiKSAhPT0gXCJvYXV0aDJcIiAmJiBzY2hlbWEuZ2V0KFwidHlwZVwiKSAhPT0gXCJtdXR1YWxUTFNcIlxuICAgIClcbiAgICBjb25zdCBvYXV0aERlZmluaXRpb25zID0gZGVmaW5pdGlvbnMuZmlsdGVyKFxuICAgICAgKHNjaGVtYSkgPT4gc2NoZW1hLmdldChcInR5cGVcIikgPT09IFwib2F1dGgyXCJcbiAgICApXG4gICAgY29uc3QgbXV0dWFsVExTRGVmaW5pdGlvbnMgPSBkZWZpbml0aW9ucy5maWx0ZXIoXG4gICAgICAoc2NoZW1hKSA9PiBzY2hlbWEuZ2V0KFwidHlwZVwiKSA9PT0gXCJtdXR1YWxUTFNcIlxuICAgIClcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJhdXRoLWNvbnRhaW5lclwiPlxuICAgICAgICB7bm9uT2F1dGhEZWZpbml0aW9ucy5zaXplID4gMCAmJiAoXG4gICAgICAgICAgPGZvcm0gb25TdWJtaXQ9e3RoaXMuc3VibWl0QXV0aH0+XG4gICAgICAgICAgICB7bm9uT2F1dGhEZWZpbml0aW9uc1xuICAgICAgICAgICAgICAubWFwKChzY2hlbWEsIG5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPEF1dGhJdGVtXG4gICAgICAgICAgICAgICAgICAgIGtleT17bmFtZX1cbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hPXtzY2hlbWF9XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudD17Z2V0Q29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBvbkF1dGhDaGFuZ2U9e3RoaXMub25BdXRoQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBhdXRob3JpemVkPXthdXRob3JpemVkfVxuICAgICAgICAgICAgICAgICAgICBlcnJTZWxlY3RvcnM9e2VyclNlbGVjdG9yc31cbiAgICAgICAgICAgICAgICAgICAgYXV0aFNlbGVjdG9ycz17YXV0aFNlbGVjdG9yc31cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAudG9BcnJheSgpfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhdXRoLWJ0bi13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIHtub25PYXV0aERlZmluaXRpb25zLnNpemUgPT09IGF1dGhvcml6ZWRBdXRoLnNpemUgPyAoXG4gICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnRuIG1vZGFsLWJ0biBhdXRoXCJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMubG9nb3V0Q2xpY2t9XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiUmVtb3ZlIGF1dGhvcml6YXRpb25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIExvZ291dFxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnRuIG1vZGFsLWJ0biBhdXRoIGF1dGhvcml6ZVwiXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQXBwbHkgY3JlZGVudGlhbHNcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEF1dGhvcml6ZVxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnRuIG1vZGFsLWJ0biBhdXRoIGJ0bi1kb25lXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmNsb3NlfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQ2xvc2VcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICl9XG5cbiAgICAgICAge29hdXRoRGVmaW5pdGlvbnMuc2l6ZSA+IDAgPyAoXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2NvcGUtZGVmXCI+XG4gICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgIFNjb3BlcyBhcmUgdXNlZCB0byBncmFudCBhbiBhcHBsaWNhdGlvbiBkaWZmZXJlbnQgbGV2ZWxzIG9mXG4gICAgICAgICAgICAgICAgYWNjZXNzIHRvIGRhdGEgb24gYmVoYWxmIG9mIHRoZSBlbmQgdXNlci4gRWFjaCBBUEkgbWF5IGRlY2xhcmVcbiAgICAgICAgICAgICAgICBvbmUgb3IgbW9yZSBzY29wZXMuXG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgQVBJIHJlcXVpcmVzIHRoZSBmb2xsb3dpbmcgc2NvcGVzLiBTZWxlY3Qgd2hpY2ggb25lcyB5b3Ugd2FudCB0b1xuICAgICAgICAgICAgICAgIGdyYW50IHRvIFN3YWdnZXIgVUkuXG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge2RlZmluaXRpb25zXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHNjaGVtYSkgPT4gc2NoZW1hLmdldChcInR5cGVcIikgPT09IFwib2F1dGgyXCIpXG4gICAgICAgICAgICAgIC5tYXAoKHNjaGVtYSwgbmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8ZGl2IGtleT17bmFtZX0+XG4gICAgICAgICAgICAgICAgICAgIDxPYXV0aDJcbiAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpemVkPXthdXRob3JpemVkfVxuICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYT17c2NoZW1hfVxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC50b0FycmF5KCl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICB7bXV0dWFsVExTRGVmaW5pdGlvbnMuc2l6ZSA+IDAgJiYgKFxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7bXV0dWFsVExTRGVmaW5pdGlvbnNcbiAgICAgICAgICAgICAgLm1hcCgoc2NoZW1hLCBuYW1lKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDxBdXRoSXRlbVxuICAgICAgICAgICAgICAgICAgICBrZXk9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYT17c2NoZW1hfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICBnZXRDb21wb25lbnQ9e2dldENvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgb25BdXRoQ2hhbmdlPXt0aGlzLm9uQXV0aENoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXplZD17YXV0aG9yaXplZH1cbiAgICAgICAgICAgICAgICAgICAgZXJyU2VsZWN0b3JzPXtlcnJTZWxlY3RvcnN9XG4gICAgICAgICAgICAgICAgICAgIGF1dGhTZWxlY3RvcnM9e2F1dGhTZWxlY3RvcnN9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLnRvQXJyYXkoKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBBdXRoc1xuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmV4cG9ydCBjb25zdCBpc09BUzMxID0gKGpzU3BlYykgPT4ge1xuICBjb25zdCBvYXNWZXJzaW9uID0ganNTcGVjLmdldChcIm9wZW5hcGlcIilcblxuICByZXR1cm4gKFxuICAgIHR5cGVvZiBvYXNWZXJzaW9uID09PSBcInN0cmluZ1wiICYmIC9eM1xcLjFcXC4oPzpbMS05XVxcZCp8MCkkLy50ZXN0KG9hc1ZlcnNpb24pXG4gIClcbn1cblxuLyoqXG4gKiBDcmVhdGVzIHNlbGVjdG9yIHRoYXQgcmV0dXJucyB2YWx1ZSBvZiB0aGUgcGFzc2VkXG4gKiBzZWxlY3RvciB3aGVuIHNwZWMgaXMgT3BlbkFQSSAzLjEuMC4sIG51bGwgb3RoZXJ3aXNlLlxuICpcbiAqIEBwYXJhbSBzZWxlY3RvclxuICogQHJldHVybnMge2Z1bmN0aW9uKCosIC4uLlsqXSk6IGZ1bmN0aW9uKCopOiAoKnxudWxsKX1cbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yID1cbiAgKHNlbGVjdG9yKSA9PlxuICAoc3RhdGUsIC4uLmFyZ3MpID0+XG4gIChzeXN0ZW0pID0+IHtcbiAgICBpZiAoc3lzdGVtLmdldFN5c3RlbSgpLnNwZWNTZWxlY3RvcnMuaXNPQVMzMSgpKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gc2VsZWN0b3Ioc3RhdGUsIC4uLmFyZ3MpXG4gICAgICByZXR1cm4gdHlwZW9mIHNlbGVjdGVkVmFsdWUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICA/IHNlbGVjdGVkVmFsdWUoc3lzdGVtKVxuICAgICAgICA6IHNlbGVjdGVkVmFsdWVcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gIH1cblxuLyoqXG4gKiBDcmVhdGVzIHNlbGVjdG9yIHdyYXBwZXIgdGhhdCByZXR1cm5zIHZhbHVlIG9mIHRoZSBwYXNzZWRcbiAqIHNlbGVjdG9yIHdoZW4gc3BlYyBpcyBPcGVuQVBJIDMuMS4wLiwgY2FsbHMgb3JpZ2luYWwgc2VsZWN0b3Igb3RoZXJ3aXNlLlxuICpcbiAqXG4gKiBAcGFyYW0gc2VsZWN0b3JcbiAqIEByZXR1cm5zIHtmdW5jdGlvbigqLCAqKTogZnVuY3Rpb24oKiwgLi4uWypdKTogKCopfVxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlT25seU9BUzMxU2VsZWN0b3JXcmFwcGVyID1cbiAgKHNlbGVjdG9yKSA9PlxuICAob3JpU2VsZWN0b3IsIHN5c3RlbSkgPT5cbiAgKHN0YXRlLCAuLi5hcmdzKSA9PiB7XG4gICAgaWYgKHN5c3RlbS5nZXRTeXN0ZW0oKS5zcGVjU2VsZWN0b3JzLmlzT0FTMzEoKSkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IHNlbGVjdG9yKHN0YXRlLCAuLi5hcmdzKVxuICAgICAgcmV0dXJuIHR5cGVvZiBzZWxlY3RlZFZhbHVlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgPyBzZWxlY3RlZFZhbHVlKG9yaVNlbGVjdG9yLCBzeXN0ZW0pXG4gICAgICAgIDogc2VsZWN0ZWRWYWx1ZVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3JpU2VsZWN0b3IoLi4uYXJncylcbiAgICB9XG4gIH1cblxuLyoqXG4gKiBDcmVhdGVzIHNlbGVjdG9yIHRoYXQgcHJvdmlkZXMgc3lzdGVtIGFzIHRoZVxuICogc2Vjb25kIGFyZ3VtZW50LiBUaGlzIGFsbG93cyB0byBjcmVhdGUgbWVtb2l6ZWRcbiAqIGNvbXBvc2VkIHNlbGVjdG9ycyBmcm9tIGRpZmZlcmVudCBwbHVnaW5zLlxuICpcbiAqIEBwYXJhbSBzZWxlY3RvclxuICogQHJldHVybnMge2Z1bmN0aW9uKCosIC4uLlsqXSk6IGZ1bmN0aW9uKCopOiAqfVxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlU3lzdGVtU2VsZWN0b3IgPVxuICAoc2VsZWN0b3IpID0+XG4gIChzdGF0ZSwgLi4uYXJncykgPT5cbiAgKHN5c3RlbSkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkVmFsdWUgPSBzZWxlY3RvcihzdGF0ZSwgc3lzdGVtLCAuLi5hcmdzKVxuICAgIHJldHVybiB0eXBlb2Ygc2VsZWN0ZWRWYWx1ZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICA/IHNlbGVjdGVkVmFsdWUoc3lzdGVtKVxuICAgICAgOiBzZWxlY3RlZFZhbHVlXG4gIH1cblxuLyogZXNsaW50LWRpc2FibGUgIHJlYWN0L2pzeC1maWxlbmFtZS1leHRlbnNpb24gKi9cbi8qKlxuICogQ3JlYXRlcyBjb21wb25lbnQgd3JhcHBlciB0aGF0IG9ubHkgd3JhcHMgdGhlIGNvbXBvbmVudFxuICogd2hlbiBzcGVjIGlzIE9wZW5BUEkgMy4xLjAuIE90aGVyd2lzZSwgcmV0dXJucyBvcmlnaW5hbFxuICogY29tcG9uZW50IHdpdGggcGFzc2VkIHByb3BzLlxuICpcbiAqIEBwYXJhbSBDb21wb25lbnRcbiAqIEByZXR1cm5zIHtmdW5jdGlvbigqLCAqKTogZnVuY3Rpb24oKik6ICp9XG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyID1cbiAgKENvbXBvbmVudCkgPT4gKE9yaWdpbmFsLCBzeXN0ZW0pID0+IChwcm9wcykgPT4ge1xuICAgIGlmIChzeXN0ZW0uc3BlY1NlbGVjdG9ycy5pc09BUzMxKCkpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxDb21wb25lbnRcbiAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgb3JpZ2luYWxDb21wb25lbnQ9e09yaWdpbmFsfVxuICAgICAgICAgIGdldFN5c3RlbT17c3lzdGVtLmdldFN5c3RlbX1cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gPE9yaWdpbmFsIHsuLi5wcm9wc30gLz5cbiAgfVxuLyogZXNsaW50LWVuYWJsZSAgcmVhY3QvanN4LWZpbGVuYW1lLWV4dGVuc2lvbiAqL1xuXG4vKipcbiAqIFJ1bnMgdGhlIGZuIHJlcGxhY2VtZW50IGltcGxlbWVudGF0aW9uIHdoZW4gc3BlYyBpcyBPcGVuQVBJIDMuMS5cbiAqIFJ1bnMgdGhlIGZuIG9yaWdpbmFsIGltcGxlbWVudGF0aW9uIG90aGVyd2lzZS5cbiAqXG4gKiBAcGFyYW0gZm5cbiAqIEBwYXJhbSBzeXN0ZW1cbiAqIEByZXR1cm5zIHt7W3A6IHN0cmluZ106IGZ1bmN0aW9uKC4uLlsqXSk6ICp9fVxuICovXG5leHBvcnQgY29uc3Qgd3JhcE9BUzMxRm4gPSAoZm4sIHN5c3RlbSkgPT4ge1xuICBjb25zdCB7IGZuOiBzeXN0ZW1Gbiwgc3BlY1NlbGVjdG9ycyB9ID0gc3lzdGVtXG5cbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3QuZW50cmllcyhmbikubWFwKChbbmFtZSwgbmV3SW1wbF0pID0+IHtcbiAgICAgIGNvbnN0IG9yaUltcGwgPSBzeXN0ZW1GbltuYW1lXVxuICAgICAgY29uc3QgaW1wbCA9ICguLi5hcmdzKSA9PlxuICAgICAgICBzcGVjU2VsZWN0b3JzLmlzT0FTMzEoKVxuICAgICAgICAgID8gbmV3SW1wbCguLi5hcmdzKVxuICAgICAgICAgIDogdHlwZW9mIG9yaUltcGwgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgPyBvcmlJbXBsKC4uLmFyZ3MpXG4gICAgICAgICAgICA6IHVuZGVmaW5lZFxuXG4gICAgICByZXR1cm4gW25hbWUsIGltcGxdXG4gICAgfSlcbiAgKVxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IGNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIgfSBmcm9tIFwiLi4vZm5cIlxuXG5jb25zdCBMaWNlbnNlV3JhcHBlciA9IGNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoKHsgZ2V0U3lzdGVtIH0pID0+IHtcbiAgY29uc3Qgc3lzdGVtID0gZ2V0U3lzdGVtKClcbiAgY29uc3QgT0FTMzFMaWNlbnNlID0gc3lzdGVtLmdldENvbXBvbmVudChcIk9BUzMxTGljZW5zZVwiLCB0cnVlKVxuXG4gIHJldHVybiA8T0FTMzFMaWNlbnNlIC8+XG59KVxuXG5leHBvcnQgZGVmYXVsdCBMaWNlbnNlV3JhcHBlclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IGNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIgfSBmcm9tIFwiLi4vZm5cIlxuXG5jb25zdCBDb250YWN0V3JhcHBlciA9IGNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoKHsgZ2V0U3lzdGVtIH0pID0+IHtcbiAgY29uc3Qgc3lzdGVtID0gZ2V0U3lzdGVtKClcbiAgY29uc3QgT0FTMzFDb250YWN0ID0gc3lzdGVtLmdldENvbXBvbmVudChcIk9BUzMxQ29udGFjdFwiLCB0cnVlKVxuXG4gIHJldHVybiA8T0FTMzFDb250YWN0IC8+XG59KVxuXG5leHBvcnQgZGVmYXVsdCBDb250YWN0V3JhcHBlclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IGNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIgfSBmcm9tIFwiLi4vZm5cIlxuXG5jb25zdCBJbmZvV3JhcHBlciA9IGNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoKHsgZ2V0U3lzdGVtIH0pID0+IHtcbiAgY29uc3Qgc3lzdGVtID0gZ2V0U3lzdGVtKClcbiAgY29uc3QgT0FTMzFJbmZvID0gc3lzdGVtLmdldENvbXBvbmVudChcIk9BUzMxSW5mb1wiLCB0cnVlKVxuXG4gIHJldHVybiA8T0FTMzFJbmZvIC8+XG59KVxuXG5leHBvcnQgZGVmYXVsdCBJbmZvV3JhcHBlclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VJc0V4cGFuZGFibGUgPSAob3JpZ2luYWwsIGdldFN5c3RlbSkgPT4ge1xuICBjb25zdCB7IGZuIH0gPSBnZXRTeXN0ZW0oKVxuXG4gIGlmICh0eXBlb2Ygb3JpZ2luYWwgIT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCB7IGhhc0tleXdvcmQgfSA9IGZuLmpzb25TY2hlbWEyMDIwMTJcblxuICByZXR1cm4gKHNjaGVtYSkgPT5cbiAgICBvcmlnaW5hbChzY2hlbWEpIHx8XG4gICAgaGFzS2V5d29yZChzY2hlbWEsIFwiZXhhbXBsZVwiKSB8fFxuICAgIHNjaGVtYT8ueG1sIHx8XG4gICAgc2NoZW1hPy5kaXNjcmltaW5hdG9yIHx8XG4gICAgc2NoZW1hPy5leHRlcm5hbERvY3Ncbn1cblxuZXhwb3J0IGNvbnN0IGdldFByb3BlcnRpZXMgPSAoXG4gIHNjaGVtYSxcbiAgeyBpbmNsdWRlUmVhZE9ubHksIGluY2x1ZGVXcml0ZU9ubHkgfVxuKSA9PiB7XG4gIC8vIHNob3J0Y3V0XG4gIGlmICghc2NoZW1hPy5wcm9wZXJ0aWVzKSByZXR1cm4ge31cblxuICBjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0LmVudHJpZXMoc2NoZW1hLnByb3BlcnRpZXMpXG4gIGNvbnN0IGZpbHRlcmVkUHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKChbLCB2YWx1ZV0pID0+IHtcbiAgICBjb25zdCBpc1JlYWRPbmx5ID0gdmFsdWU/LnJlYWRPbmx5ID09PSB0cnVlXG4gICAgY29uc3QgaXNXcml0ZU9ubHkgPSB2YWx1ZT8ud3JpdGVPbmx5ID09PSB0cnVlXG5cbiAgICByZXR1cm4gKFxuICAgICAgKCFpc1JlYWRPbmx5IHx8IGluY2x1ZGVSZWFkT25seSkgJiYgKCFpc1dyaXRlT25seSB8fCBpbmNsdWRlV3JpdGVPbmx5KVxuICAgIClcbiAgfSlcblxuICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKGZpbHRlcmVkUHJvcGVydGllcylcbn1cblxuZXhwb3J0IGNvbnN0IG1ha2VHZXRTY2hlbWFLZXl3b3JkcyA9IChvcmlnaW5hbCkgPT4ge1xuICBpZiAodHlwZW9mIG9yaWdpbmFsICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QganNvblNjaGVtYTIwMjAxMktleXdvcmRzID0gb3JpZ2luYWwoKVxuXG4gIHJldHVybiAoKSA9PiBbXG4gICAgLi4uanNvblNjaGVtYTIwMjAxMktleXdvcmRzLFxuICAgIFwiZGlzY3JpbWluYXRvclwiLFxuICAgIFwieG1sXCIsXG4gICAgXCJleHRlcm5hbERvY3NcIixcbiAgICBcImV4YW1wbGVcIixcbiAgICAvLyAkJHJlZiBpcyBhbiBpbnRlcm5hbCBrZXl3b3JkIHVzZWQgZm9yIGRlcmVmZXJlbmNpbmdcbiAgICBcIiQkcmVmXCIsXG4gIF1cbn1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyIH0gZnJvbSBcIi4uL2ZuXCJcbmltcG9ydCB7IG1ha2VHZXRTY2hlbWFLZXl3b3JkcyB9IGZyb20gXCIuLi9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvZm5cIlxuXG5jb25zdCBNb2RlbFdyYXBwZXIgPSBjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyKFxuICAoeyBnZXRTeXN0ZW0sIC4uLnByb3BzIH0pID0+IHtcbiAgICBjb25zdCBzeXN0ZW0gPSBnZXRTeXN0ZW0oKVxuICAgIGNvbnN0IHsgZ2V0Q29tcG9uZW50LCBmbiwgZ2V0Q29uZmlncyB9ID0gc3lzdGVtXG4gICAgY29uc3QgY29uZmlncyA9IGdldENvbmZpZ3MoKVxuXG4gICAgY29uc3QgTW9kZWwgPSBnZXRDb21wb25lbnQoXCJPQVMzMU1vZGVsXCIpXG4gICAgY29uc3Qgd2l0aEpTT05TY2hlbWFTeXN0ZW1Db250ZXh0ID0gZ2V0Q29tcG9uZW50KFxuICAgICAgXCJ3aXRoSlNPTlNjaGVtYTIwMjAxMlN5c3RlbUNvbnRleHRcIlxuICAgIClcblxuICAgIC8vIHdlIGNhY2hlIHRoZSBIT0MgYXMgcmVjcmVhdGluZyBpdCB3aXRoIGV2ZXJ5IHJlLXJlbmRlciBpcyBxdWl0ZSBleHBlbnNpdmVcbiAgICBNb2RlbFdyYXBwZXIuTW9kZWxXaXRoSlNPTlNjaGVtYUNvbnRleHQgPz89IHdpdGhKU09OU2NoZW1hU3lzdGVtQ29udGV4dChcbiAgICAgIE1vZGVsLFxuICAgICAge1xuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBkZWZhdWx0JHNjaGVtYTogXCJodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy8zLjEvZGlhbGVjdC9iYXNlXCIsXG4gICAgICAgICAgZGVmYXVsdEV4cGFuZGVkTGV2ZWxzOiBjb25maWdzLmRlZmF1bHRNb2RlbEV4cGFuZERlcHRoLFxuICAgICAgICAgIGluY2x1ZGVSZWFkT25seTogcHJvcHMuaW5jbHVkZVJlYWRPbmx5LFxuICAgICAgICAgIGluY2x1ZGVXcml0ZU9ubHk6IHByb3BzLmluY2x1ZGVXcml0ZU9ubHksXG4gICAgICAgIH0sXG4gICAgICAgIGZuOiB7XG4gICAgICAgICAgZ2V0UHJvcGVydGllczogZm4uanNvblNjaGVtYTIwMjAxMi5nZXRQcm9wZXJ0aWVzLFxuICAgICAgICAgIGlzRXhwYW5kYWJsZTogZm4uanNvblNjaGVtYTIwMjAxMi5pc0V4cGFuZGFibGUsXG4gICAgICAgICAgZ2V0U2NoZW1hS2V5d29yZHM6IG1ha2VHZXRTY2hlbWFLZXl3b3JkcyhcbiAgICAgICAgICAgIGZuLmpzb25TY2hlbWEyMDIwMTIuZ2V0U2NoZW1hS2V5d29yZHNcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIClcblxuICAgIHJldHVybiA8TW9kZWxXcmFwcGVyLk1vZGVsV2l0aEpTT05TY2hlbWFDb250ZXh0IHsuLi5wcm9wc30gLz5cbiAgfVxuKVxuXG5leHBvcnQgZGVmYXVsdCBNb2RlbFdyYXBwZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyIH0gZnJvbSBcIi4uL2ZuXCJcbmltcG9ydCB7IG1ha2VHZXRTY2hlbWFLZXl3b3JkcyB9IGZyb20gXCIuLi9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvZm5cIlxuXG5jb25zdCBNb2RlbHNXcmFwcGVyID0gY3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcigoeyBnZXRTeXN0ZW0gfSkgPT4ge1xuICBjb25zdCB7IGdldENvbXBvbmVudCwgZm4sIGdldENvbmZpZ3MgfSA9IGdldFN5c3RlbSgpXG4gIGNvbnN0IGNvbmZpZ3MgPSBnZXRDb25maWdzKClcblxuICBpZiAoTW9kZWxzV3JhcHBlci5Nb2RlbHNXaXRoSlNPTlNjaGVtYUNvbnRleHQpIHtcbiAgICByZXR1cm4gPE1vZGVsc1dyYXBwZXIuTW9kZWxzV2l0aEpTT05TY2hlbWFDb250ZXh0IC8+XG4gIH1cblxuICBjb25zdCBNb2RlbHMgPSBnZXRDb21wb25lbnQoXCJPQVMzMU1vZGVsc1wiLCB0cnVlKVxuICBjb25zdCB3aXRoSlNPTlNjaGVtYVN5c3RlbUNvbnRleHQgPSBnZXRDb21wb25lbnQoXG4gICAgXCJ3aXRoSlNPTlNjaGVtYTIwMjAxMlN5c3RlbUNvbnRleHRcIlxuICApXG5cbiAgLy8gd2UgY2FjaGUgdGhlIEhPQyBhcyByZWNyZWF0aW5nIGl0IHdpdGggZXZlcnkgcmUtcmVuZGVyIGlzIHF1aXRlIGV4cGVuc2l2ZVxuICBNb2RlbHNXcmFwcGVyLk1vZGVsc1dpdGhKU09OU2NoZW1hQ29udGV4dCA/Pz0gd2l0aEpTT05TY2hlbWFTeXN0ZW1Db250ZXh0KFxuICAgIE1vZGVscyxcbiAgICB7XG4gICAgICBjb25maWc6IHtcbiAgICAgICAgZGVmYXVsdCRzY2hlbWE6IFwiaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvMy4xL2RpYWxlY3QvYmFzZVwiLFxuICAgICAgICBkZWZhdWx0RXhwYW5kZWRMZXZlbHM6IGNvbmZpZ3MuZGVmYXVsdE1vZGVsc0V4cGFuZERlcHRoIC0gMSxcbiAgICAgICAgaW5jbHVkZVJlYWRPbmx5OiB0cnVlLFxuICAgICAgICBpbmNsdWRlV3JpdGVPbmx5OiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGZuOiB7XG4gICAgICAgIGdldFByb3BlcnRpZXM6IGZuLmpzb25TY2hlbWEyMDIwMTIuZ2V0UHJvcGVydGllcyxcbiAgICAgICAgaXNFeHBhbmRhYmxlOiBmbi5qc29uU2NoZW1hMjAyMDEyLmlzRXhwYW5kYWJsZSxcbiAgICAgICAgZ2V0U2NoZW1hS2V5d29yZHM6IG1ha2VHZXRTY2hlbWFLZXl3b3JkcyhcbiAgICAgICAgICBmbi5qc29uU2NoZW1hMjAyMDEyLmdldFNjaGVtYUtleXdvcmRzXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH1cbiAgKVxuXG4gIHJldHVybiA8TW9kZWxzV3JhcHBlci5Nb2RlbHNXaXRoSlNPTlNjaGVtYUNvbnRleHQgLz5cbn0pXG5cbk1vZGVsc1dyYXBwZXIuTW9kZWxzV2l0aEpTT05TY2hlbWFDb250ZXh0ID0gbnVsbFxuXG5leHBvcnQgZGVmYXVsdCBNb2RlbHNXcmFwcGVyXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcblxuY29uc3QgVmVyc2lvblByYWdtYUZpbHRlcldyYXBwZXIgPSAoT3JpZ2luYWwsIHN5c3RlbSkgPT4gKHByb3BzKSA9PiB7XG4gIGNvbnN0IGlzT0FTMzEgPSBzeXN0ZW0uc3BlY1NlbGVjdG9ycy5pc09BUzMxKClcblxuICBjb25zdCBPQVMzMVZlcnNpb25QcmFnbWFGaWx0ZXIgPSBzeXN0ZW0uZ2V0Q29tcG9uZW50KFxuICAgIFwiT0FTMzFWZXJzaW9uUHJhZ21hRmlsdGVyXCJcbiAgKVxuXG4gIHJldHVybiA8T0FTMzFWZXJzaW9uUHJhZ21hRmlsdGVyIGlzT0FTMzE9e2lzT0FTMzF9IHsuLi5wcm9wc30gLz5cbn1cblxuZXhwb3J0IGRlZmF1bHQgVmVyc2lvblByYWdtYUZpbHRlcldyYXBwZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyIH0gZnJvbSBcIi4uLy4uL2ZuXCJcblxuY29uc3QgQXV0aEl0ZW0gPSBjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyKFxuICAoeyBvcmlnaW5hbENvbXBvbmVudDogT3JpLCAuLi5wcm9wcyB9KSA9PiB7XG4gICAgY29uc3QgeyBnZXRDb21wb25lbnQsIHNjaGVtYSwgbmFtZSB9ID0gcHJvcHNcbiAgICBjb25zdCBNdXR1YWxUTFNBdXRoID0gZ2V0Q29tcG9uZW50KFwiTXV0dWFsVExTQXV0aFwiLCB0cnVlKVxuICAgIGNvbnN0IHR5cGUgPSBzY2hlbWEuZ2V0KFwidHlwZVwiKVxuXG4gICAgaWYgKHR5cGUgPT09IFwibXV0dWFsVExTXCIpIHtcbiAgICAgIHJldHVybiA8TXV0dWFsVExTQXV0aCBzY2hlbWE9e3NjaGVtYX0gbmFtZT17bmFtZX0gLz5cbiAgICB9XG5cbiAgICByZXR1cm4gPE9yaSB7Li4ucHJvcHN9IC8+XG4gIH1cbilcblxuZXhwb3J0IGRlZmF1bHQgQXV0aEl0ZW1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyIH0gZnJvbSBcIi4uL2ZuXCJcblxuY29uc3QgQXV0aHNXcmFwcGVyID0gY3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcihcbiAgKHsgZ2V0U3lzdGVtLCAuLi5wcm9wcyB9KSA9PiB7XG4gICAgY29uc3Qgc3lzdGVtID0gZ2V0U3lzdGVtKClcbiAgICBjb25zdCBPQVMzMUF1dGhzID0gc3lzdGVtLmdldENvbXBvbmVudChcIk9BUzMxQXV0aHNcIiwgdHJ1ZSlcblxuICAgIHJldHVybiA8T0FTMzFBdXRocyB7Li4ucHJvcHN9IC8+XG4gIH1cbilcblxuZXhwb3J0IGRlZmF1bHQgQXV0aHNXcmFwcGVyXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBMaXN0LCBNYXAgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCB7IGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSBcInJlc2VsZWN0XCJcblxuaW1wb3J0IHsgc2FmZUJ1aWxkVXJsIH0gZnJvbSBcImNvcmUvdXRpbHMvdXJsXCJcbmltcG9ydCB7IGlzT0FTMzEgYXMgaXNPQVMzMUZuIH0gZnJvbSBcIi4uL2ZuXCJcblxuY29uc3QgbWFwID0gTWFwKClcblxuZXhwb3J0IGNvbnN0IGlzT0FTMzEgPSBjcmVhdGVTZWxlY3RvcihcbiAgKHN0YXRlLCBzeXN0ZW0pID0+IHN5c3RlbS5zcGVjU2VsZWN0b3JzLnNwZWNKc29uKCksXG4gIGlzT0FTMzFGblxuKVxuXG5leHBvcnQgY29uc3Qgd2ViaG9va3MgPSAoKSA9PiAoc3lzdGVtKSA9PiB7XG4gIGNvbnN0IHdlYmhvb2tzID0gc3lzdGVtLnNwZWNTZWxlY3RvcnMuc3BlY0pzb24oKS5nZXQoXCJ3ZWJob29rc1wiKVxuICByZXR1cm4gTWFwLmlzTWFwKHdlYmhvb2tzKSA/IHdlYmhvb2tzIDogbWFwXG59XG5cbi8qKlxuICogYHNwZWNSZXNvbHZlZFN1YnRyZWVgIHNlbGVjdG9yIGlzIG5lZWRlZCBhcyBpbnB1dCBzZWxlY3RvcixcbiAqIHNvIHRoYXQgd2UgcmVnZW5lcmF0ZSB0aGUgc2VsZWN0ZWQgcmVzdWx0IHdoZW5ldmVyIHRoZSBsYXp5XG4gKiByZXNvbHV0aW9uIGhhcHBlbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBzZWxlY3RXZWJob29rc09wZXJhdGlvbnMgPSBjcmVhdGVTZWxlY3RvcihcbiAgW1xuICAgIChzdGF0ZSwgc3lzdGVtKSA9PiBzeXN0ZW0uc3BlY1NlbGVjdG9ycy53ZWJob29rcygpLFxuICAgIChzdGF0ZSwgc3lzdGVtKSA9PiBzeXN0ZW0uc3BlY1NlbGVjdG9ycy52YWxpZE9wZXJhdGlvbk1ldGhvZHMoKSxcbiAgICAoc3RhdGUsIHN5c3RlbSkgPT4gc3lzdGVtLnNwZWNTZWxlY3RvcnMuc3BlY1Jlc29sdmVkU3VidHJlZShbXCJ3ZWJob29rc1wiXSksXG4gIF0sXG4gICh3ZWJob29rcywgdmFsaWRPcGVyYXRpb25NZXRob2RzKSA9PlxuICAgIHdlYmhvb2tzXG4gICAgICAucmVkdWNlKChhbGxPcGVyYXRpb25zLCBwYXRoSXRlbSwgcGF0aEl0ZW1OYW1lKSA9PiB7XG4gICAgICAgIGlmICghTWFwLmlzTWFwKHBhdGhJdGVtKSkgcmV0dXJuIGFsbE9wZXJhdGlvbnNcblxuICAgICAgICBjb25zdCBwYXRoSXRlbU9wZXJhdGlvbnMgPSBwYXRoSXRlbVxuICAgICAgICAgIC5lbnRyeVNlcSgpXG4gICAgICAgICAgLmZpbHRlcigoW2tleV0pID0+IHZhbGlkT3BlcmF0aW9uTWV0aG9kcy5pbmNsdWRlcyhrZXkpKVxuICAgICAgICAgIC5tYXAoKFttZXRob2QsIG9wZXJhdGlvbl0pID0+ICh7XG4gICAgICAgICAgICBvcGVyYXRpb246IE1hcCh7IG9wZXJhdGlvbiB9KSxcbiAgICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICAgIHBhdGg6IHBhdGhJdGVtTmFtZSxcbiAgICAgICAgICAgIHNwZWNQYXRoOiBbXCJ3ZWJob29rc1wiLCBwYXRoSXRlbU5hbWUsIG1ldGhvZF0sXG4gICAgICAgICAgfSkpXG5cbiAgICAgICAgcmV0dXJuIGFsbE9wZXJhdGlvbnMuY29uY2F0KHBhdGhJdGVtT3BlcmF0aW9ucylcbiAgICAgIH0sIExpc3QoKSlcbiAgICAgIC5ncm91cEJ5KChvcGVyYXRpb25EVE8pID0+IG9wZXJhdGlvbkRUTy5wYXRoKVxuICAgICAgLm1hcCgob3BlcmF0aW9ucykgPT4gb3BlcmF0aW9ucy50b0FycmF5KCkpXG4gICAgICAudG9PYmplY3QoKVxuKVxuXG5leHBvcnQgY29uc3QgbGljZW5zZSA9ICgpID0+IChzeXN0ZW0pID0+IHtcbiAgY29uc3QgbGljZW5zZSA9IHN5c3RlbS5zcGVjU2VsZWN0b3JzLmluZm8oKS5nZXQoXCJsaWNlbnNlXCIpXG4gIHJldHVybiBNYXAuaXNNYXAobGljZW5zZSkgPyBsaWNlbnNlIDogbWFwXG59XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RMaWNlbnNlTmFtZUZpZWxkID0gKCkgPT4gKHN5c3RlbSkgPT4ge1xuICByZXR1cm4gc3lzdGVtLnNwZWNTZWxlY3RvcnMubGljZW5zZSgpLmdldChcIm5hbWVcIiwgXCJMaWNlbnNlXCIpXG59XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RMaWNlbnNlVXJsRmllbGQgPSAoKSA9PiAoc3lzdGVtKSA9PiB7XG4gIHJldHVybiBzeXN0ZW0uc3BlY1NlbGVjdG9ycy5saWNlbnNlKCkuZ2V0KFwidXJsXCIpXG59XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RMaWNlbnNlVXJsID0gY3JlYXRlU2VsZWN0b3IoXG4gIFtcbiAgICAoc3RhdGUsIHN5c3RlbSkgPT4gc3lzdGVtLnNwZWNTZWxlY3RvcnMudXJsKCksXG4gICAgKHN0YXRlLCBzeXN0ZW0pID0+IHN5c3RlbS5vYXMzU2VsZWN0b3JzLnNlbGVjdGVkU2VydmVyKCksXG4gICAgKHN0YXRlLCBzeXN0ZW0pID0+IHN5c3RlbS5zcGVjU2VsZWN0b3JzLnNlbGVjdExpY2Vuc2VVcmxGaWVsZCgpLFxuICBdLFxuICAoc3BlY1VybCwgc2VsZWN0ZWRTZXJ2ZXIsIHVybCkgPT4ge1xuICAgIGlmICh1cmwpIHtcbiAgICAgIHJldHVybiBzYWZlQnVpbGRVcmwodXJsLCBzcGVjVXJsLCB7IHNlbGVjdGVkU2VydmVyIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG4pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RMaWNlbnNlSWRlbnRpZmllckZpZWxkID0gKCkgPT4gKHN5c3RlbSkgPT4ge1xuICByZXR1cm4gc3lzdGVtLnNwZWNTZWxlY3RvcnMubGljZW5zZSgpLmdldChcImlkZW50aWZpZXJcIilcbn1cblxuZXhwb3J0IGNvbnN0IGNvbnRhY3QgPSAoKSA9PiAoc3lzdGVtKSA9PiB7XG4gIGNvbnN0IGNvbnRhY3QgPSBzeXN0ZW0uc3BlY1NlbGVjdG9ycy5pbmZvKCkuZ2V0KFwiY29udGFjdFwiKVxuICByZXR1cm4gTWFwLmlzTWFwKGNvbnRhY3QpID8gY29udGFjdCA6IG1hcFxufVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0Q29udGFjdE5hbWVGaWVsZCA9ICgpID0+IChzeXN0ZW0pID0+IHtcbiAgcmV0dXJuIHN5c3RlbS5zcGVjU2VsZWN0b3JzLmNvbnRhY3QoKS5nZXQoXCJuYW1lXCIsIFwidGhlIGRldmVsb3BlclwiKVxufVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0Q29udGFjdEVtYWlsRmllbGQgPSAoKSA9PiAoc3lzdGVtKSA9PiB7XG4gIHJldHVybiBzeXN0ZW0uc3BlY1NlbGVjdG9ycy5jb250YWN0KCkuZ2V0KFwiZW1haWxcIilcbn1cblxuZXhwb3J0IGNvbnN0IHNlbGVjdENvbnRhY3RVcmxGaWVsZCA9ICgpID0+IChzeXN0ZW0pID0+IHtcbiAgcmV0dXJuIHN5c3RlbS5zcGVjU2VsZWN0b3JzLmNvbnRhY3QoKS5nZXQoXCJ1cmxcIilcbn1cblxuZXhwb3J0IGNvbnN0IHNlbGVjdENvbnRhY3RVcmwgPSBjcmVhdGVTZWxlY3RvcihcbiAgW1xuICAgIChzdGF0ZSwgc3lzdGVtKSA9PiBzeXN0ZW0uc3BlY1NlbGVjdG9ycy51cmwoKSxcbiAgICAoc3RhdGUsIHN5c3RlbSkgPT4gc3lzdGVtLm9hczNTZWxlY3RvcnMuc2VsZWN0ZWRTZXJ2ZXIoKSxcbiAgICAoc3RhdGUsIHN5c3RlbSkgPT4gc3lzdGVtLnNwZWNTZWxlY3RvcnMuc2VsZWN0Q29udGFjdFVybEZpZWxkKCksXG4gIF0sXG4gIChzcGVjVXJsLCBzZWxlY3RlZFNlcnZlciwgdXJsKSA9PiB7XG4gICAgaWYgKHVybCkge1xuICAgICAgcmV0dXJuIHNhZmVCdWlsZFVybCh1cmwsIHNwZWNVcmwsIHsgc2VsZWN0ZWRTZXJ2ZXIgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cbilcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEluZm9UaXRsZUZpZWxkID0gKCkgPT4gKHN5c3RlbSkgPT4ge1xuICByZXR1cm4gc3lzdGVtLnNwZWNTZWxlY3RvcnMuaW5mbygpLmdldChcInRpdGxlXCIpXG59XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RJbmZvU3VtbWFyeUZpZWxkID0gKCkgPT4gKHN5c3RlbSkgPT4ge1xuICByZXR1cm4gc3lzdGVtLnNwZWNTZWxlY3RvcnMuaW5mbygpLmdldChcInN1bW1hcnlcIilcbn1cblxuZXhwb3J0IGNvbnN0IHNlbGVjdEluZm9EZXNjcmlwdGlvbkZpZWxkID0gKCkgPT4gKHN5c3RlbSkgPT4ge1xuICByZXR1cm4gc3lzdGVtLnNwZWNTZWxlY3RvcnMuaW5mbygpLmdldChcImRlc2NyaXB0aW9uXCIpXG59XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RJbmZvVGVybXNPZlNlcnZpY2VGaWVsZCA9ICgpID0+IChzeXN0ZW0pID0+IHtcbiAgcmV0dXJuIHN5c3RlbS5zcGVjU2VsZWN0b3JzLmluZm8oKS5nZXQoXCJ0ZXJtc09mU2VydmljZVwiKVxufVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0SW5mb1Rlcm1zT2ZTZXJ2aWNlVXJsID0gY3JlYXRlU2VsZWN0b3IoXG4gIFtcbiAgICAoc3RhdGUsIHN5c3RlbSkgPT4gc3lzdGVtLnNwZWNTZWxlY3RvcnMudXJsKCksXG4gICAgKHN0YXRlLCBzeXN0ZW0pID0+IHN5c3RlbS5vYXMzU2VsZWN0b3JzLnNlbGVjdGVkU2VydmVyKCksXG4gICAgKHN0YXRlLCBzeXN0ZW0pID0+IHN5c3RlbS5zcGVjU2VsZWN0b3JzLnNlbGVjdEluZm9UZXJtc09mU2VydmljZUZpZWxkKCksXG4gIF0sXG4gIChzcGVjVXJsLCBzZWxlY3RlZFNlcnZlciwgdGVybXNPZlNlcnZpY2UpID0+IHtcbiAgICBpZiAodGVybXNPZlNlcnZpY2UpIHtcbiAgICAgIHJldHVybiBzYWZlQnVpbGRVcmwodGVybXNPZlNlcnZpY2UsIHNwZWNVcmwsIHsgc2VsZWN0ZWRTZXJ2ZXIgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cbilcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEV4dGVybmFsRG9jc0Rlc2NyaXB0aW9uRmllbGQgPSAoKSA9PiAoc3lzdGVtKSA9PiB7XG4gIHJldHVybiBzeXN0ZW0uc3BlY1NlbGVjdG9ycy5leHRlcm5hbERvY3MoKS5nZXQoXCJkZXNjcmlwdGlvblwiKVxufVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0RXh0ZXJuYWxEb2NzVXJsRmllbGQgPSAoKSA9PiAoc3lzdGVtKSA9PiB7XG4gIHJldHVybiBzeXN0ZW0uc3BlY1NlbGVjdG9ycy5leHRlcm5hbERvY3MoKS5nZXQoXCJ1cmxcIilcbn1cblxuZXhwb3J0IGNvbnN0IHNlbGVjdEV4dGVybmFsRG9jc1VybCA9IGNyZWF0ZVNlbGVjdG9yKFxuICBbXG4gICAgKHN0YXRlLCBzeXN0ZW0pID0+IHN5c3RlbS5zcGVjU2VsZWN0b3JzLnVybCgpLFxuICAgIChzdGF0ZSwgc3lzdGVtKSA9PiBzeXN0ZW0ub2FzM1NlbGVjdG9ycy5zZWxlY3RlZFNlcnZlcigpLFxuICAgIChzdGF0ZSwgc3lzdGVtKSA9PiBzeXN0ZW0uc3BlY1NlbGVjdG9ycy5zZWxlY3RFeHRlcm5hbERvY3NVcmxGaWVsZCgpLFxuICBdLFxuICAoc3BlY1VybCwgc2VsZWN0ZWRTZXJ2ZXIsIHVybCkgPT4ge1xuICAgIGlmICh1cmwpIHtcbiAgICAgIHJldHVybiBzYWZlQnVpbGRVcmwodXJsLCBzcGVjVXJsLCB7IHNlbGVjdGVkU2VydmVyIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG4pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RKc29uU2NoZW1hRGlhbGVjdEZpZWxkID0gKCkgPT4gKHN5c3RlbSkgPT4ge1xuICByZXR1cm4gc3lzdGVtLnNwZWNTZWxlY3RvcnMuc3BlY0pzb24oKS5nZXQoXCJqc29uU2NoZW1hRGlhbGVjdFwiKVxufVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0SnNvblNjaGVtYURpYWxlY3REZWZhdWx0ID0gKCkgPT5cbiAgXCJodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy8zLjEvZGlhbGVjdC9iYXNlXCJcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFNjaGVtYXMgPSBjcmVhdGVTZWxlY3RvcihcbiAgKHN0YXRlLCBzeXN0ZW0pID0+IHN5c3RlbS5zcGVjU2VsZWN0b3JzLmRlZmluaXRpb25zKCksXG4gIChzdGF0ZSwgc3lzdGVtKSA9PlxuICAgIHN5c3RlbS5zcGVjU2VsZWN0b3JzLnNwZWNSZXNvbHZlZFN1YnRyZWUoW1wiY29tcG9uZW50c1wiLCBcInNjaGVtYXNcIl0pLFxuXG4gIChyYXdTY2hlbWFzLCByZXNvbHZlZFNjaGVtYXMpID0+IHtcbiAgICBpZiAoIU1hcC5pc01hcChyYXdTY2hlbWFzKSkgcmV0dXJuIHt9XG4gICAgaWYgKCFNYXAuaXNNYXAocmVzb2x2ZWRTY2hlbWFzKSkgcmV0dXJuIHJhd1NjaGVtYXMudG9KUygpXG5cbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmF3U2NoZW1hcy50b0pTKCkpLnJlZHVjZShcbiAgICAgIChhY2MsIFtzY2hlbWFOYW1lLCByYXdTY2hlbWFdKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkU2NoZW1hID0gcmVzb2x2ZWRTY2hlbWFzLmdldChzY2hlbWFOYW1lKVxuICAgICAgICBhY2Nbc2NoZW1hTmFtZV0gPSByZXNvbHZlZFNjaGVtYT8udG9KUygpIHx8IHJhd1NjaGVtYVxuICAgICAgICByZXR1cm4gYWNjXG4gICAgICB9LFxuICAgICAge31cbiAgICApXG4gIH1cbilcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cblxuaW1wb3J0IHsgY3JlYXRlT25seU9BUzMxU2VsZWN0b3JXcmFwcGVyIH0gZnJvbSBcIi4uL2ZuXCJcblxuZXhwb3J0IGNvbnN0IGlzT0FTMyA9XG4gIChvcmlTZWxlY3Rvciwgc3lzdGVtKSA9PlxuICAoc3RhdGUsIC4uLmFyZ3MpID0+IHtcbiAgICBjb25zdCBpc09BUzMxID0gc3lzdGVtLnNwZWNTZWxlY3RvcnMuaXNPQVMzMSgpXG4gICAgcmV0dXJuIGlzT0FTMzEgfHwgb3JpU2VsZWN0b3IoLi4uYXJncylcbiAgfVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0TGljZW5zZVVybCA9IGNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yV3JhcHBlcihcbiAgKCkgPT4gKG9yaVNlbGVjdG9yLCBzeXN0ZW0pID0+IHtcbiAgICByZXR1cm4gc3lzdGVtLm9hczMxU2VsZWN0b3JzLnNlbGVjdExpY2Vuc2VVcmwoKVxuICB9XG4pXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBNYXAgfSBmcm9tIFwiaW1tdXRhYmxlXCJcbmltcG9ydCB7IGNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yV3JhcHBlciB9IGZyb20gXCIuLi9mblwiXG5cbmV4cG9ydCBjb25zdCBkZWZpbml0aW9uc1RvQXV0aG9yaXplID0gY3JlYXRlT25seU9BUzMxU2VsZWN0b3JXcmFwcGVyKFxuICAoKSA9PiAob3JpU2VsZWN0b3IsIHN5c3RlbSkgPT4ge1xuICAgIGNvbnN0IGRlZmluaXRpb25zID0gc3lzdGVtLnNwZWNTZWxlY3RvcnMuc2VjdXJpdHlEZWZpbml0aW9ucygpXG4gICAgbGV0IGxpc3QgPSBvcmlTZWxlY3RvcigpXG5cbiAgICBpZiAoIWRlZmluaXRpb25zKSByZXR1cm4gbGlzdFxuXG4gICAgZGVmaW5pdGlvbnMuZW50cnlTZXEoKS5mb3JFYWNoKChbZGVmTmFtZSwgZGVmaW5pdGlvbl0pID0+IHtcbiAgICAgIGNvbnN0IHR5cGUgPSBkZWZpbml0aW9uPy5nZXQoXCJ0eXBlXCIpXG5cbiAgICAgIGlmICh0eXBlID09PSBcIm11dHVhbFRMU1wiKSB7XG4gICAgICAgIGxpc3QgPSBsaXN0LnB1c2goXG4gICAgICAgICAgbmV3IE1hcCh7XG4gICAgICAgICAgICBbZGVmTmFtZV06IGRlZmluaXRpb24sXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICByZXR1cm4gbGlzdFxuICB9XG4pXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gXCJyZXNlbGVjdFwiXG5cbmltcG9ydCB7IHNhZmVCdWlsZFVybCB9IGZyb20gXCJjb3JlL3V0aWxzL3VybFwiXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RMaWNlbnNlVXJsID0gY3JlYXRlU2VsZWN0b3IoXG4gIFtcbiAgICAoc3RhdGUsIHN5c3RlbSkgPT4gc3lzdGVtLnNwZWNTZWxlY3RvcnMudXJsKCksXG4gICAgKHN0YXRlLCBzeXN0ZW0pID0+IHN5c3RlbS5vYXMzU2VsZWN0b3JzLnNlbGVjdGVkU2VydmVyKCksXG4gICAgKHN0YXRlLCBzeXN0ZW0pID0+IHN5c3RlbS5zcGVjU2VsZWN0b3JzLnNlbGVjdExpY2Vuc2VVcmxGaWVsZCgpLFxuICAgIChzdGF0ZSwgc3lzdGVtKSA9PiBzeXN0ZW0uc3BlY1NlbGVjdG9ycy5zZWxlY3RMaWNlbnNlSWRlbnRpZmllckZpZWxkKCksXG4gIF0sXG4gIChzcGVjVXJsLCBzZWxlY3RlZFNlcnZlciwgdXJsLCBpZGVudGlmaWVyKSA9PiB7XG4gICAgaWYgKHVybCkge1xuICAgICAgcmV0dXJuIHNhZmVCdWlsZFVybCh1cmwsIHNwZWNVcmwsIHsgc2VsZWN0ZWRTZXJ2ZXIgfSlcbiAgICB9XG5cbiAgICBpZiAoaWRlbnRpZmllcikge1xuICAgICAgcmV0dXJuIGBodHRwczovL3NwZHgub3JnL2xpY2Vuc2VzLyR7aWRlbnRpZmllcn0uaHRtbGBcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cbilcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmNvbnN0IEV4YW1wbGUgPSAoeyBzY2hlbWEsIGdldFN5c3RlbSB9KSA9PiB7XG4gIGNvbnN0IHsgZm4sIGdldENvbXBvbmVudCB9ID0gZ2V0U3lzdGVtKClcbiAgY29uc3QgeyBoYXNLZXl3b3JkIH0gPSBmbi5qc29uU2NoZW1hMjAyMDEyLnVzZUZuKClcbiAgY29uc3QgSlNPTlZpZXdlciA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJKU09OVmlld2VyXCIpXG5cbiAgaWYgKCFoYXNLZXl3b3JkKHNjaGVtYSwgXCJleGFtcGxlXCIpKSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPEpTT05WaWV3ZXJcbiAgICAgIG5hbWU9XCJFeGFtcGxlXCJcbiAgICAgIHZhbHVlPXtzY2hlbWEuZXhhbXBsZX1cbiAgICAgIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWV4YW1wbGVcIlxuICAgIC8+XG4gIClcbn1cblxuRXhhbXBsZS5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm9iamVjdCwgUHJvcFR5cGVzLmJvb2xdKS5pc1JlcXVpcmVkLFxuICBnZXRTeXN0ZW06IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEV4YW1wbGVcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCB7IGdldEV4dGVuc2lvbnMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vdXRpbHNcIlxuXG5jb25zdCBYbWwgPSAoeyBzY2hlbWEsIGdldFN5c3RlbSB9KSA9PiB7XG4gIGNvbnN0IHhtbCA9IHNjaGVtYT8ueG1sIHx8IHt9XG4gIGNvbnN0IHsgZm4sIGdldENvbXBvbmVudCwgZ2V0Q29uZmlncyB9ID0gZ2V0U3lzdGVtKClcbiAgY29uc3QgeyBzaG93RXh0ZW5zaW9ucyB9ID0gZ2V0Q29uZmlncygpXG4gIGNvbnN0IHsgdXNlQ29tcG9uZW50LCB1c2VJc0V4cGFuZGVkLCB1c2VQYXRoLCB1c2VMZXZlbCB9ID0gZm4uanNvblNjaGVtYTIwMjAxMlxuICBjb25zdCBwYXRoVG9rZW4gPSBcInhtbFwiXG4gIGNvbnN0IHsgcGF0aCB9ID0gdXNlUGF0aChwYXRoVG9rZW4pXG4gIGNvbnN0IHsgaXNFeHBhbmRlZCwgc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZCB9ID0gdXNlSXNFeHBhbmRlZChwYXRoVG9rZW4pXG4gIGNvbnN0IFtsZXZlbCwgbmV4dExldmVsXSA9IHVzZUxldmVsKClcbiAgY29uc3QgZXh0ZW5zaW9ucyA9IHNob3dFeHRlbnNpb25zID8gZ2V0RXh0ZW5zaW9ucyh4bWwpIDogW11cbiAgY29uc3QgaXNFeHBhbmRhYmxlID0gISEoXG4gICAgeG1sLm5hbWUgfHxcbiAgICB4bWwubmFtZXNwYWNlIHx8XG4gICAgeG1sLnByZWZpeCB8fFxuICAgIGV4dGVuc2lvbnMubGVuZ3RoID4gMFxuICApXG4gIGNvbnN0IEFjY29yZGlvbiA9IHVzZUNvbXBvbmVudChcIkFjY29yZGlvblwiKVxuICBjb25zdCBFeHBhbmREZWVwQnV0dG9uID0gdXNlQ29tcG9uZW50KFwiRXhwYW5kRGVlcEJ1dHRvblwiKVxuICBjb25zdCBPcGVuQVBJMzFFeHRlbnNpb25zID0gZ2V0Q29tcG9uZW50KFwiT3BlbkFQSTMxRXh0ZW5zaW9uc1wiKVxuICBjb25zdCBKU09OU2NoZW1hUGF0aENvbnRleHQgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyUGF0aENvbnRleHRcIikoKVxuICBjb25zdCBKU09OU2NoZW1hTGV2ZWxDb250ZXh0ID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMkxldmVsQ29udGV4dFwiKSgpXG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXJzLlxuICAgKi9cbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChpc0V4cGFuZGVkKSB7XG4gICAgICBzZXRDb2xsYXBzZWQoKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRFeHBhbmRlZCgpXG4gICAgfVxuICB9LCBbaXNFeHBhbmRlZCwgc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZF0pXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvbkRlZXAgPSB1c2VDYWxsYmFjayhcbiAgICAoZSwgZXhwYW5kZWREZWVwTmV3KSA9PiB7XG4gICAgICBpZiAoZXhwYW5kZWREZWVwTmV3KSB7XG4gICAgICAgIHNldEV4cGFuZGVkKHsgZGVlcDogdHJ1ZSB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0Q29sbGFwc2VkKHsgZGVlcDogdHJ1ZSB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgW3NldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWRdXG4gIClcblxuICAvKipcbiAgICogUmVuZGVyaW5nLlxuICAgKi9cbiAgaWYgKE9iamVjdC5rZXlzKHhtbCkubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEpTT05TY2hlbWFQYXRoQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cGF0aH0+XG4gICAgICA8SlNPTlNjaGVtYUxldmVsQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bmV4dExldmVsfT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLXhtbFwiXG4gICAgICAgICAgZGF0YS1qc29uLXNjaGVtYS1sZXZlbD17bGV2ZWx9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNFeHBhbmRhYmxlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPEFjY29yZGlvbiBleHBhbmRlZD17aXNFeHBhbmRlZH0gb25DaGFuZ2U9e2hhbmRsZUV4cGFuc2lvbn0+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAgICBYTUxcbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvQWNjb3JkaW9uPlxuICAgICAgICAgICAgICA8RXhwYW5kRGVlcEJ1dHRvblxuICAgICAgICAgICAgICAgIGV4cGFuZGVkPXtpc0V4cGFuZGVkfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUV4cGFuc2lvbkRlZXB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgIFhNTFxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICl9XG4gICAgICAgICAge3htbC5hdHRyaWJ1dGUgPT09IHRydWUgJiYgKFxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tbXV0ZWRcIj5cbiAgICAgICAgICAgICAgYXR0cmlidXRlXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7eG1sLndyYXBwZWQgPT09IHRydWUgJiYgKFxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tbXV0ZWRcIj5cbiAgICAgICAgICAgICAgd3JhcHBlZFxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPHN0cm9uZyBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5XCI+XG4gICAgICAgICAgICBvYmplY3RcbiAgICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgICA8dWxcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW5cIiwge1xuICAgICAgICAgICAgICBcImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4tLWNvbGxhcHNlZFwiOiAhaXNFeHBhbmRlZCxcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpc0V4cGFuZGVkICYmIChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICB7eG1sLm5hbWUgJiYgKFxuICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eG1sLm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgIHt4bWwubmFtZXNwYWNlICYmIChcbiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt4bWwubmFtZXNwYWNlfVxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICB7eG1sLnByZWZpeCAmJiAoXG4gICAgICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eG1sLnByZWZpeH1cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7ZXh0ZW5zaW9ucy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgICAgPE9wZW5BUEkzMUV4dGVuc2lvbnNcbiAgICAgICAgICAgICAgICBvcGVuQVBJU3BlY09iaj17eG1sfVxuICAgICAgICAgICAgICAgIG9wZW5BUElFeHRlbnNpb25zPXtleHRlbnNpb25zfVxuICAgICAgICAgICAgICAgIGdldFN5c3RlbT17Z2V0U3lzdGVtfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvSlNPTlNjaGVtYUxldmVsQ29udGV4dC5Qcm92aWRlcj5cbiAgICA8L0pTT05TY2hlbWFQYXRoQ29udGV4dC5Qcm92aWRlcj5cbiAgKVxufVxuXG5YbWwucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5vYmplY3QsIFByb3BUeXBlcy5ib29sXSkuaXNSZXF1aXJlZCxcbiAgZ2V0U3lzdGVtOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBYbWxcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmNvbnN0IERpc2NyaW1pbmF0b3JNYXBwaW5nID0gKHsgZGlzY3JpbWluYXRvciB9KSA9PiB7XG4gIGNvbnN0IG1hcHBpbmcgPSBkaXNjcmltaW5hdG9yPy5tYXBwaW5nIHx8IHt9XG5cbiAgaWYgKE9iamVjdC5rZXlzKG1hcHBpbmcpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gT2JqZWN0LmVudHJpZXMobWFwcGluZykubWFwKChba2V5LCB2YWx1ZV0pID0+IChcbiAgICA8ZGl2IGtleT17YCR7a2V5fS0ke3ZhbHVlfWB9IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZFwiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgIHtrZXl9XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeVwiPlxuICAgICAgICB7dmFsdWV9XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICkpXG59XG5cbkRpc2NyaW1pbmF0b3JNYXBwaW5nLnByb3BUeXBlcyA9IHtcbiAgZGlzY3JpbWluYXRvcjogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBtYXBwaW5nOiBQcm9wVHlwZXMuYW55LFxuICB9KSxcbn1cblxuZXhwb3J0IGRlZmF1bHQgRGlzY3JpbWluYXRvck1hcHBpbmdcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcblxuaW1wb3J0IERpc2NyaW1pbmF0b3JNYXBwaW5nIGZyb20gXCIuL0Rpc2NyaW1pbmF0b3JNYXBwaW5nXCJcbmltcG9ydCB7IGdldEV4dGVuc2lvbnMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vdXRpbHNcIlxuXG5jb25zdCBEaXNjcmltaW5hdG9yID0gKHsgc2NoZW1hLCBnZXRTeXN0ZW0gfSkgPT4ge1xuICBjb25zdCBkaXNjcmltaW5hdG9yID0gc2NoZW1hPy5kaXNjcmltaW5hdG9yIHx8IHt9XG4gIGNvbnN0IHsgZm4sIGdldENvbXBvbmVudCwgZ2V0Q29uZmlncyB9ID0gZ2V0U3lzdGVtKClcbiAgY29uc3QgeyBzaG93RXh0ZW5zaW9ucyB9ID0gZ2V0Q29uZmlncygpXG4gIGNvbnN0IHsgdXNlQ29tcG9uZW50LCB1c2VJc0V4cGFuZGVkLCB1c2VQYXRoLCB1c2VMZXZlbCB9ID0gZm4uanNvblNjaGVtYTIwMjAxMlxuICBjb25zdCBwYXRoVG9rZW4gPSBcImRpc2NyaW1pbmF0b3JcIlxuICBjb25zdCB7IHBhdGggfSA9IHVzZVBhdGgocGF0aFRva2VuKVxuICBjb25zdCB7IGlzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWQgfSA9IHVzZUlzRXhwYW5kZWQocGF0aFRva2VuKVxuICBjb25zdCBbbGV2ZWwsIG5leHRMZXZlbF0gPSB1c2VMZXZlbCgpXG4gIGNvbnN0IGV4dGVuc2lvbnMgPSBzaG93RXh0ZW5zaW9ucyA/IGdldEV4dGVuc2lvbnMoZGlzY3JpbWluYXRvcikgOiBbXVxuICBjb25zdCBpc0V4cGFuZGFibGUgPSAhIShkaXNjcmltaW5hdG9yLm1hcHBpbmcgfHwgZXh0ZW5zaW9ucy5sZW5ndGggPiAwKVxuICBjb25zdCBBY2NvcmRpb24gPSB1c2VDb21wb25lbnQoXCJBY2NvcmRpb25cIilcbiAgY29uc3QgRXhwYW5kRGVlcEJ1dHRvbiA9IHVzZUNvbXBvbmVudChcIkV4cGFuZERlZXBCdXR0b25cIilcbiAgY29uc3QgT3BlbkFQSTMxRXh0ZW5zaW9ucyA9IGdldENvbXBvbmVudChcIk9wZW5BUEkzMUV4dGVuc2lvbnNcIilcbiAgY29uc3QgSlNPTlNjaGVtYVBhdGhDb250ZXh0ID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMlBhdGhDb250ZXh0XCIpKClcbiAgY29uc3QgSlNPTlNjaGVtYUxldmVsQ29udGV4dCA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJMZXZlbENvbnRleHRcIikoKVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVycy5cbiAgICovXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoaXNFeHBhbmRlZCkge1xuICAgICAgc2V0Q29sbGFwc2VkKClcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RXhwYW5kZWQoKVxuICAgIH1cbiAgfSwgW2lzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWRdKVxuICBjb25zdCBoYW5kbGVFeHBhbnNpb25EZWVwID0gdXNlQ2FsbGJhY2soXG4gICAgKGUsIGV4cGFuZGVkRGVlcE5ldykgPT4ge1xuICAgICAgaWYgKGV4cGFuZGVkRGVlcE5ldykge1xuICAgICAgICBzZXRFeHBhbmRlZCh7IGRlZXA6IHRydWUgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldENvbGxhcHNlZCh7IGRlZXA6IHRydWUgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZXRFeHBhbmRlZCwgc2V0Q29sbGFwc2VkXVxuICApXG5cbiAgLyoqXG4gICAqIFJlbmRlcmluZy5cbiAgICovXG4gIGlmIChPYmplY3Qua2V5cyhkaXNjcmltaW5hdG9yKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8SlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwYXRofT5cbiAgICAgIDxKU09OU2NoZW1hTGV2ZWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtuZXh0TGV2ZWx9PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZGlzY3JpbWluYXRvclwiXG4gICAgICAgICAgZGF0YS1qc29uLXNjaGVtYS1sZXZlbD17bGV2ZWx9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNFeHBhbmRhYmxlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPEFjY29yZGlvbiBleHBhbmRlZD17aXNFeHBhbmRlZH0gb25DaGFuZ2U9e2hhbmRsZUV4cGFuc2lvbn0+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAgICBEaXNjcmltaW5hdG9yXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L0FjY29yZGlvbj5cbiAgICAgICAgICAgICAgPEV4cGFuZERlZXBCdXR0b25cbiAgICAgICAgICAgICAgICBleHBhbmRlZD17aXNFeHBhbmRlZH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVFeHBhbnNpb25EZWVwfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICBEaXNjcmltaW5hdG9yXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHtkaXNjcmltaW5hdG9yLnByb3BlcnR5TmFtZSAmJiAoXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1tdXRlZFwiPlxuICAgICAgICAgICAgICB7ZGlzY3JpbWluYXRvci5wcm9wZXJ0eU5hbWV9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnlcIj5cbiAgICAgICAgICAgIG9iamVjdFxuICAgICAgICAgIDwvc3Ryb25nPlxuICAgICAgICAgIDx1bFxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlblwiLCB7XG4gICAgICAgICAgICAgIFwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkXCI6ICFpc0V4cGFuZGVkLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lzRXhwYW5kZWQgJiYgKFxuICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eVwiPlxuICAgICAgICAgICAgICAgIDxEaXNjcmltaW5hdG9yTWFwcGluZyBkaXNjcmltaW5hdG9yPXtkaXNjcmltaW5hdG9yfSAvPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtleHRlbnNpb25zLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICA8T3BlbkFQSTMxRXh0ZW5zaW9uc1xuICAgICAgICAgICAgICAgIG9wZW5BUElTcGVjT2JqPXtkaXNjcmltaW5hdG9yfVxuICAgICAgICAgICAgICAgIG9wZW5BUElFeHRlbnNpb25zPXtleHRlbnNpb25zfVxuICAgICAgICAgICAgICAgIGdldFN5c3RlbT17Z2V0U3lzdGVtfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvSlNPTlNjaGVtYUxldmVsQ29udGV4dC5Qcm92aWRlcj5cbiAgICA8L0pTT05TY2hlbWFQYXRoQ29udGV4dC5Qcm92aWRlcj5cbiAgKVxufVxuXG5EaXNjcmltaW5hdG9yLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMub2JqZWN0LCBQcm9wVHlwZXMuYm9vbF0pLmlzUmVxdWlyZWQsXG4gIGdldFN5c3RlbTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgRGlzY3JpbWluYXRvclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuY29uc3QgT3BlbkFQSUV4dGVuc2lvbnMgPSAoe1xuICBvcGVuQVBJU3BlY09iaixcbiAgZ2V0U3lzdGVtLFxuICBvcGVuQVBJRXh0ZW5zaW9ucyxcbn0pID0+IHtcbiAgY29uc3QgeyBmbiB9ID0gZ2V0U3lzdGVtKClcbiAgY29uc3QgeyB1c2VDb21wb25lbnQgfSA9IGZuLmpzb25TY2hlbWEyMDIwMTJcblxuICBjb25zdCBKU09OVmlld2VyID0gdXNlQ29tcG9uZW50KFwiSlNPTlZpZXdlclwiKVxuICByZXR1cm4gb3BlbkFQSUV4dGVuc2lvbnMubWFwKChrZXl3b3JkKSA9PiAoXG4gICAgPEpTT05WaWV3ZXJcbiAgICAgIGtleT17a2V5d29yZH1cbiAgICAgIG5hbWU9e2tleXdvcmR9XG4gICAgICB2YWx1ZT17b3BlbkFQSVNwZWNPYmpba2V5d29yZF19XG4gICAgICBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyLWV4dGVuc2lvbi1rZXl3b3JkXCJcbiAgICAvPlxuICApKVxufVxuXG5PcGVuQVBJRXh0ZW5zaW9ucy5wcm9wVHlwZXMgPSB7XG4gIG9wZW5BUElTcGVjT2JqOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMub2JqZWN0LCBQcm9wVHlwZXMuYm9vbF0pXG4gICAgLmlzUmVxdWlyZWQsXG4gIGdldFN5c3RlbTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb3BlbkFQSUV4dGVuc2lvbnM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IE9wZW5BUElFeHRlbnNpb25zXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiXG5cbmltcG9ydCB7IHNhbml0aXplVXJsIH0gZnJvbSBcImNvcmUvdXRpbHMvdXJsXCJcbmltcG9ydCB7IGdldEV4dGVuc2lvbnMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vdXRpbHNcIlxuXG5jb25zdCBFeHRlcm5hbERvY3MgPSAoeyBzY2hlbWEsIGdldFN5c3RlbSB9KSA9PiB7XG4gIGNvbnN0IGV4dGVybmFsRG9jcyA9IHNjaGVtYT8uZXh0ZXJuYWxEb2NzIHx8IHt9XG4gIGNvbnN0IHsgZm4sIGdldENvbXBvbmVudCwgZ2V0Q29uZmlncyB9ID0gZ2V0U3lzdGVtKClcbiAgY29uc3QgeyBzaG93RXh0ZW5zaW9ucyB9ID0gZ2V0Q29uZmlncygpXG4gIGNvbnN0IHsgdXNlQ29tcG9uZW50LCB1c2VJc0V4cGFuZGVkLCB1c2VQYXRoLCB1c2VMZXZlbCB9ID0gZm4uanNvblNjaGVtYTIwMjAxMlxuICBjb25zdCBwYXRoVG9rZW4gPSBcImV4dGVybmFsRG9jc1wiXG4gIGNvbnN0IHsgcGF0aCB9ID0gdXNlUGF0aChwYXRoVG9rZW4pXG4gIGNvbnN0IHsgaXNFeHBhbmRlZCwgc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZCB9ID0gdXNlSXNFeHBhbmRlZChwYXRoVG9rZW4pXG4gIGNvbnN0IFtsZXZlbCwgbmV4dExldmVsXSA9IHVzZUxldmVsKClcbiAgY29uc3QgZXh0ZW5zaW9ucyA9IHNob3dFeHRlbnNpb25zID8gZ2V0RXh0ZW5zaW9ucyhleHRlcm5hbERvY3MpIDogW11cbiAgY29uc3QgaXNFeHBhbmRhYmxlID0gISEoXG4gICAgZXh0ZXJuYWxEb2NzLmRlc2NyaXB0aW9uIHx8XG4gICAgZXh0ZXJuYWxEb2NzLnVybCB8fFxuICAgIGV4dGVuc2lvbnMubGVuZ3RoID4gMFxuICApXG4gIGNvbnN0IEFjY29yZGlvbiA9IHVzZUNvbXBvbmVudChcIkFjY29yZGlvblwiKVxuICBjb25zdCBFeHBhbmREZWVwQnV0dG9uID0gdXNlQ29tcG9uZW50KFwiRXhwYW5kRGVlcEJ1dHRvblwiKVxuICBjb25zdCBLZXl3b3JkRGVzY3JpcHRpb24gPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlc2NyaXB0aW9uXCIpXG4gIGNvbnN0IExpbmsgPSBnZXRDb21wb25lbnQoXCJMaW5rXCIpXG4gIGNvbnN0IE9wZW5BUEkzMUV4dGVuc2lvbnMgPSBnZXRDb21wb25lbnQoXCJPcGVuQVBJMzFFeHRlbnNpb25zXCIpXG4gIGNvbnN0IEpTT05TY2hlbWFQYXRoQ29udGV4dCA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJQYXRoQ29udGV4dFwiKSgpXG4gIGNvbnN0IEpTT05TY2hlbWFMZXZlbENvbnRleHQgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyTGV2ZWxDb250ZXh0XCIpKClcblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlcnMuXG4gICAqL1xuICBjb25zdCBoYW5kbGVFeHBhbnNpb24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKGlzRXhwYW5kZWQpIHtcbiAgICAgIHNldENvbGxhcHNlZCgpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEV4cGFuZGVkKClcbiAgICB9XG4gIH0sIFtpc0V4cGFuZGVkLCBzZXRFeHBhbmRlZCwgc2V0Q29sbGFwc2VkXSlcbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uRGVlcCA9IHVzZUNhbGxiYWNrKFxuICAgIChlLCBleHBhbmRlZERlZXBOZXcpID0+IHtcbiAgICAgIGlmIChleHBhbmRlZERlZXBOZXcpIHtcbiAgICAgICAgc2V0RXhwYW5kZWQoeyBkZWVwOiB0cnVlIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRDb2xsYXBzZWQoeyBkZWVwOiB0cnVlIH0pXG4gICAgICB9XG4gICAgfSxcbiAgICBbc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZF1cbiAgKVxuXG4gIC8qKlxuICAgKiBSZW5kZXJpbmcuXG4gICAqL1xuICBpZiAoT2JqZWN0LmtleXMoZXh0ZXJuYWxEb2NzKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8SlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwYXRofT5cbiAgICAgIDxKU09OU2NoZW1hTGV2ZWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtuZXh0TGV2ZWx9PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tZXh0ZXJuYWxEb2NzXCJcbiAgICAgICAgICBkYXRhLWpzb24tc2NoZW1hLWxldmVsPXtsZXZlbH1cbiAgICAgICAgPlxuICAgICAgICAgIHtpc0V4cGFuZGFibGUgPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICA8QWNjb3JkaW9uIGV4cGFuZGVkPXtpc0V4cGFuZGVkfSBvbkNoYW5nZT17aGFuZGxlRXhwYW5zaW9ufT5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAgICAgIEV4dGVybmFsIGRvY3VtZW50YXRpb25cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvQWNjb3JkaW9uPlxuICAgICAgICAgICAgICA8RXhwYW5kRGVlcEJ1dHRvblxuICAgICAgICAgICAgICAgIGV4cGFuZGVkPXtpc0V4cGFuZGVkfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUV4cGFuc2lvbkRlZXB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgIEV4dGVybmFsIGRvY3VtZW50YXRpb25cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxzdHJvbmcgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeVwiPlxuICAgICAgICAgICAgb2JqZWN0XG4gICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuXCIsIHtcbiAgICAgICAgICAgICAgXCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWRcIjogIWlzRXhwYW5kZWQsXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aXNFeHBhbmRlZCAmJiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2V4dGVybmFsRG9jcy5kZXNjcmlwdGlvbiAmJiAoXG4gICAgICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eVwiPlxuICAgICAgICAgICAgICAgICAgICA8S2V5d29yZERlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgc2NoZW1hPXtleHRlcm5hbERvY3N9XG4gICAgICAgICAgICAgICAgICAgICAgZ2V0U3lzdGVtPXtnZXRTeXN0ZW19XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICB7ZXh0ZXJuYWxEb2NzLnVybCAmJiAoXG4gICAgICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHVybFxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17c2FuaXRpemVVcmwoZXh0ZXJuYWxEb2NzLnVybCl9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtleHRlcm5hbERvY3MudXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtleHRlbnNpb25zLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICA8T3BlbkFQSTMxRXh0ZW5zaW9uc1xuICAgICAgICAgICAgICAgIG9wZW5BUElTcGVjT2JqPXtleHRlcm5hbERvY3N9XG4gICAgICAgICAgICAgICAgb3BlbkFQSUV4dGVuc2lvbnM9e2V4dGVuc2lvbnN9XG4gICAgICAgICAgICAgICAgZ2V0U3lzdGVtPXtnZXRTeXN0ZW19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9KU09OU2NoZW1hTGV2ZWxDb250ZXh0LlByb3ZpZGVyPlxuICAgIDwvSlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbkV4dGVybmFsRG9jcy5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm9iamVjdCwgUHJvcFR5cGVzLmJvb2xdKS5pc1JlcXVpcmVkLFxuICBnZXRTeXN0ZW06IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEV4dGVybmFsRG9jc1xuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuY29uc3QgRGVzY3JpcHRpb24gPSAoeyBzY2hlbWEsIGdldFN5c3RlbSB9KSA9PiB7XG4gIGlmICghc2NoZW1hPy5kZXNjcmlwdGlvbikgcmV0dXJuIG51bGxcblxuICBjb25zdCB7IGdldENvbXBvbmVudCB9ID0gZ2V0U3lzdGVtKClcbiAgY29uc3QgTWFya0Rvd24gPSBnZXRDb21wb25lbnQoXCJNYXJrZG93blwiKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kZXNjcmlwdGlvblwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWNvcmUta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1jb3JlLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnlcIj5cbiAgICAgICAgPE1hcmtEb3duIHNvdXJjZT17c2NoZW1hLmRlc2NyaXB0aW9ufSAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuRGVzY3JpcHRpb24ucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5vYmplY3QsIFByb3BUeXBlcy5ib29sXSkuaXNSZXF1aXJlZCxcbiAgZ2V0U3lzdGVtOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBEZXNjcmlwdGlvblxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IERlc2NyaXB0aW9uS2V5d29yZCBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9rZXl3b3Jkcy9EZXNjcmlwdGlvblwiXG5pbXBvcnQgeyBjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyIH0gZnJvbSBcIi4uLy4uLy4uL2ZuXCJcblxuY29uc3QgRGVzY3JpcHRpb25XcmFwcGVyID0gY3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcihEZXNjcmlwdGlvbktleXdvcmQpXG5cbmV4cG9ydCBkZWZhdWx0IERlc2NyaXB0aW9uV3JhcHBlclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBjcmVhdGVPbmx5T0FTMzFDb21wb25lbnRXcmFwcGVyIH0gZnJvbSBcIi4uLy4uLy4uL2ZuXCJcblxuY29uc3QgRXhhbXBsZXNXcmFwcGVyID0gY3JlYXRlT25seU9BUzMxQ29tcG9uZW50V3JhcHBlcihcbiAgKHsgc2NoZW1hLCBnZXRTeXN0ZW0sIG9yaWdpbmFsQ29tcG9uZW50OiBLZXl3b3JkRXhhbXBsZXMgfSkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0Q29tcG9uZW50IH0gPSBnZXRTeXN0ZW0oKVxuICAgIGNvbnN0IEtleXdvcmREaXNjcmltaW5hdG9yID0gZ2V0Q29tcG9uZW50KFxuICAgICAgXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERpc2NyaW1pbmF0b3JcIlxuICAgIClcbiAgICBjb25zdCBLZXl3b3JkWG1sID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRYbWxcIilcbiAgICBjb25zdCBLZXl3b3JkRXhhbXBsZSA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXhhbXBsZVwiKVxuICAgIGNvbnN0IEtleXdvcmRFeHRlcm5hbERvY3MgPSBnZXRDb21wb25lbnQoXG4gICAgICBcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXh0ZXJuYWxEb2NzXCJcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPEtleXdvcmRFeGFtcGxlcyBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgPEtleXdvcmREaXNjcmltaW5hdG9yIHNjaGVtYT17c2NoZW1hfSBnZXRTeXN0ZW09e2dldFN5c3RlbX0gLz5cbiAgICAgICAgPEtleXdvcmRYbWwgc2NoZW1hPXtzY2hlbWF9IGdldFN5c3RlbT17Z2V0U3lzdGVtfSAvPlxuICAgICAgICA8S2V5d29yZEV4dGVybmFsRG9jcyBzY2hlbWE9e3NjaGVtYX0gZ2V0U3lzdGVtPXtnZXRTeXN0ZW19IC8+XG4gICAgICAgIDxLZXl3b3JkRXhhbXBsZSBzY2hlbWE9e3NjaGVtYX0gZ2V0U3lzdGVtPXtnZXRTeXN0ZW19IC8+XG4gICAgICA8Lz5cbiAgICApXG4gIH1cbilcblxuZXhwb3J0IGRlZmF1bHQgRXhhbXBsZXNXcmFwcGVyXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuXG5jb25zdCBQcm9wZXJ0aWVzID0gKHsgc2NoZW1hLCBnZXRTeXN0ZW0gfSkgPT4ge1xuICBjb25zdCB7IGZuLCBnZXRDb21wb25lbnQgfSA9IGdldFN5c3RlbSgpXG4gIGNvbnN0IHsgdXNlQ29tcG9uZW50LCB1c2VQYXRoIH0gPSBmbi5qc29uU2NoZW1hMjAyMDEyXG4gIGNvbnN0IHsgZ2V0RGVwZW5kZW50UmVxdWlyZWQsIGdldFByb3BlcnRpZXMgfSA9IGZuLmpzb25TY2hlbWEyMDIwMTIudXNlRm4oKVxuICBjb25zdCBjb25maWcgPSBmbi5qc29uU2NoZW1hMjAyMDEyLnVzZUNvbmZpZygpXG4gIGNvbnN0IHJlcXVpcmVkID0gQXJyYXkuaXNBcnJheShzY2hlbWE/LnJlcXVpcmVkKSA/IHNjaGVtYS5yZXF1aXJlZCA6IFtdXG4gIGNvbnN0IHsgcGF0aCB9ID0gdXNlUGF0aChcInByb3BlcnRpZXNcIilcbiAgY29uc3QgSlNPTlNjaGVtYSA9IHVzZUNvbXBvbmVudChcIkpTT05TY2hlbWFcIilcbiAgY29uc3QgSlNPTlNjaGVtYVBhdGhDb250ZXh0ID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMlBhdGhDb250ZXh0XCIpKClcbiAgY29uc3QgcHJvcGVydGllcyA9IGdldFByb3BlcnRpZXMoc2NoZW1hLCBjb25maWcpXG5cbiAgLyoqXG4gICAqIFJlbmRlcmluZy5cbiAgICovXG4gIGlmIChPYmplY3Qua2V5cyhwcm9wZXJ0aWVzKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8SlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwYXRofT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tcHJvcGVydGllc1wiPlxuICAgICAgICA8dWw+XG4gICAgICAgICAge09iamVjdC5lbnRyaWVzKHByb3BlcnRpZXMpLm1hcCgoW3Byb3BlcnR5TmFtZSwgcHJvcGVydHlTY2hlbWFdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc1JlcXVpcmVkID0gcmVxdWlyZWQuaW5jbHVkZXMocHJvcGVydHlOYW1lKVxuICAgICAgICAgICAgY29uc3QgZGVwZW5kZW50UmVxdWlyZWQgPSBnZXREZXBlbmRlbnRSZXF1aXJlZChwcm9wZXJ0eU5hbWUsIHNjaGVtYSlcblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAga2V5PXtwcm9wZXJ0eU5hbWV9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eVwiLCB7XG4gICAgICAgICAgICAgICAgICBcImpzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHktLXJlcXVpcmVkXCI6IGlzUmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8SlNPTlNjaGVtYVxuICAgICAgICAgICAgICAgICAgbmFtZT17cHJvcGVydHlOYW1lfVxuICAgICAgICAgICAgICAgICAgc2NoZW1hPXtwcm9wZXJ0eVNjaGVtYX1cbiAgICAgICAgICAgICAgICAgIGRlcGVuZGVudFJlcXVpcmVkPXtkZXBlbmRlbnRSZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0pfVxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgPC9KU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuUHJvcGVydGllcy5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm9iamVjdCwgUHJvcFR5cGVzLmJvb2xdKS5pc1JlcXVpcmVkLFxuICBnZXRTeXN0ZW06IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFByb3BlcnRpZXNcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBQcm9wZXJ0aWVzS2V5d29yZCBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9rZXl3b3Jkcy9Qcm9wZXJ0aWVzXCJcbmltcG9ydCB7IGNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIgfSBmcm9tIFwiLi4vLi4vLi4vZm5cIlxuXG5jb25zdCBQcm9wZXJ0aWVzV3JhcHBlciA9IGNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIoUHJvcGVydGllc0tleXdvcmQpXG5cbmV4cG9ydCBkZWZhdWx0IFByb3BlcnRpZXNXcmFwcGVyXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQge1xuICBtYWtlSXNFeHBhbmRhYmxlLFxuICBnZXRQcm9wZXJ0aWVzLFxufSBmcm9tIFwiLi9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvZm5cIlxuaW1wb3J0IHsgd3JhcE9BUzMxRm4gfSBmcm9tIFwiLi9mblwiXG5pbXBvcnQgeyBtYWtlSXNGaWxlVXBsb2FkSW50ZW5kZWQgfSBmcm9tIFwiLi9vYXMzLWV4dGVuc2lvbnMvZm5cIlxuaW1wb3J0IHsgaW1tdXRhYmxlVG9KUyB9IGZyb20gXCJjb3JlL3V0aWxzXCJcblxuZnVuY3Rpb24gYWZ0ZXJMb2FkKHsgZm4sIGdldFN5c3RlbSB9KSB7XG4gIC8vIG92ZXJyaWRlcyBmb3IgZm4uanNvblNjaGVtYTIwMjAxMlxuICBpZiAoZm4uanNvblNjaGVtYTIwMjAxMikge1xuICAgIGNvbnN0IGlzRXhwYW5kYWJsZSA9IG1ha2VJc0V4cGFuZGFibGUoXG4gICAgICBmbi5qc29uU2NoZW1hMjAyMDEyLmlzRXhwYW5kYWJsZSxcbiAgICAgIGdldFN5c3RlbVxuICAgIClcblxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5mbi5qc29uU2NoZW1hMjAyMDEyLCB7IGlzRXhwYW5kYWJsZSwgZ2V0UHJvcGVydGllcyB9KVxuICB9XG5cbiAgLy8gd3JhcHMgc2NoZW1hIGdlbmVyYXRvcnMgZnJvbSBzYW1wbGVzIHBsdWdpbiBhbmQgbWFrZSB0aGVtIHNwZWNpZmljIHRvIE9wZW5BUEkgMy4xIHZlcnNpb25cbiAgaWYgKHR5cGVvZiBmbi5zYW1wbGVGcm9tU2NoZW1hID09PSBcImZ1bmN0aW9uXCIgJiYgZm4uanNvblNjaGVtYTIwMjAxMikge1xuICAgIGNvbnN0IHdyYXBwZWRGbnMgPSB3cmFwT0FTMzFGbihcbiAgICAgIHtcbiAgICAgICAgc2FtcGxlRnJvbVNjaGVtYTogZm4uanNvblNjaGVtYTIwMjAxMi5zYW1wbGVGcm9tU2NoZW1hLFxuICAgICAgICBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYzogZm4uanNvblNjaGVtYTIwMjAxMi5zYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyxcbiAgICAgICAgY3JlYXRlWE1MRXhhbXBsZTogZm4uanNvblNjaGVtYTIwMjAxMi5jcmVhdGVYTUxFeGFtcGxlLFxuICAgICAgICBtZW1vaXplZFNhbXBsZUZyb21TY2hlbWE6IGZuLmpzb25TY2hlbWEyMDIwMTIubWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hLFxuICAgICAgICBtZW1vaXplZENyZWF0ZVhNTEV4YW1wbGU6IGZuLmpzb25TY2hlbWEyMDIwMTIubWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlLFxuICAgICAgICBnZXRKc29uU2FtcGxlU2NoZW1hOiBmbi5qc29uU2NoZW1hMjAyMDEyLmdldEpzb25TYW1wbGVTY2hlbWEsXG4gICAgICAgIGdldFlhbWxTYW1wbGVTY2hlbWE6IGZuLmpzb25TY2hlbWEyMDIwMTIuZ2V0WWFtbFNhbXBsZVNjaGVtYSxcbiAgICAgICAgZ2V0WG1sU2FtcGxlU2NoZW1hOiBmbi5qc29uU2NoZW1hMjAyMDEyLmdldFhtbFNhbXBsZVNjaGVtYSxcbiAgICAgICAgZ2V0U2FtcGxlU2NoZW1hOiBmbi5qc29uU2NoZW1hMjAyMDEyLmdldFNhbXBsZVNjaGVtYSxcbiAgICAgICAgbWVyZ2VKc29uU2NoZW1hOiBmbi5qc29uU2NoZW1hMjAyMDEyLm1lcmdlSnNvblNjaGVtYSxcbiAgICAgICAgZ2V0U2NoZW1hT2JqZWN0VHlwZUxhYmVsOiAoc2NoZW1hKSA9PlxuICAgICAgICAgIGZuLmpzb25TY2hlbWEyMDIwMTIuZ2V0VHlwZShpbW11dGFibGVUb0pTKHNjaGVtYSkpLFxuICAgICAgICBnZXRTY2hlbWFPYmplY3RUeXBlOiAoc2NoZW1hKSA9PlxuICAgICAgICAgIGZuLmpzb25TY2hlbWEyMDIwMTIuZm9sZFR5cGUoaW1tdXRhYmxlVG9KUyhzY2hlbWEpPy50eXBlKSxcbiAgICAgIH0sXG4gICAgICBnZXRTeXN0ZW0oKVxuICAgIClcblxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5mbiwgd3JhcHBlZEZucylcbiAgfVxuXG4gIC8vIG92ZXJyaWRlcyBiZWhhdmlvciBpbiBPcGVuQVBJIDMuMS54LCByZWNvZ25pemVzIG1vcmUgaW50ZW50aW9uc1xuICBjb25zdCBpc0ZpbGVVcGxvYWRJbnRlbmRlZCA9IG1ha2VJc0ZpbGVVcGxvYWRJbnRlbmRlZChnZXRTeXN0ZW0pXG4gIGNvbnN0IHsgaXNGaWxlVXBsb2FkSW50ZW5kZWQ6IGlzRmlsZVVwbG9hZEludGVuZGVkV3JhcCB9ID0gd3JhcE9BUzMxRm4oXG4gICAge1xuICAgICAgaXNGaWxlVXBsb2FkSW50ZW5kZWQsXG4gICAgfSxcbiAgICBnZXRTeXN0ZW0oKVxuICApXG5cbiAgdGhpcy5mbi5pc0ZpbGVVcGxvYWRJbnRlbmRlZCA9IGlzRmlsZVVwbG9hZEludGVuZGVkV3JhcFxuICB0aGlzLmZuLmlzRmlsZVVwbG9hZEludGVuZGVkT0FTMzEgPSBpc0ZpbGVVcGxvYWRJbnRlbmRlZFxuXG4gIGlmIChmbi5qc29uU2NoZW1hMjAyMDEyKSB7XG4gICAgY29uc3QgeyBoYXNTY2hlbWFUeXBlIH0gPSB3cmFwT0FTMzFGbihcbiAgICAgIHtcbiAgICAgICAgaGFzU2NoZW1hVHlwZTogZm4uanNvblNjaGVtYTIwMjAxMi5oYXNTY2hlbWFUeXBlLFxuICAgICAgfSxcbiAgICAgIGdldFN5c3RlbSgpXG4gICAgKVxuXG4gICAgdGhpcy5mbi5oYXNTY2hlbWFUeXBlID0gaGFzU2NoZW1hVHlwZVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFmdGVyTG9hZFxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgTWFwIH0gZnJvbSBcImltbXV0YWJsZVwiXG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tIFwibG9kYXNoL2lzUGxhaW5PYmplY3RcIlxuXG5leHBvcnQgY29uc3QgbWFrZUlzRmlsZVVwbG9hZEludGVuZGVkID0gKGdldFN5c3RlbSkgPT4ge1xuICBjb25zdCBpc0ZpbGVVcGxvYWRJbnRlbmRlZCA9IChzY2hlbWEsIG1lZGlhVHlwZSA9IG51bGwpID0+IHtcbiAgICBjb25zdCB7IGZuIH0gPSBnZXRTeXN0ZW0oKVxuXG4gICAgLyoqXG4gICAgICogIFJldHVybiBgdHJ1ZWAgZWFybHkgaWYgdGhlIG1lZGlhIHR5cGUgaW5kaWNhdGVzIGEgZmlsZSB1cGxvYWRcbiAgICAgKiAgb3IgaWYgYSBjb21iaW5hdGlvbiBvZiB0eXBlOiBgc3RyaW5nYCBhbmQgZm9ybWF0OiBgYmluYXJ5L2J5dGVgIGlzIGRldGVjdGVkLlxuICAgICAqICBUaGlzIGVuc3VyZXMgc3VwcG9ydCBmb3IgZW1wdHkgTWVkaWEgVHlwZSBPYmplY3RzLFxuICAgICAqICBhcyB0aGUgc2NoZW1hIGNoZWNrIGlzIHBlcmZvcm1lZCBsYXRlci5cbiAgICAgKi9cbiAgICBjb25zdCBpc0ZpbGVVcGxvYWRJbnRlbmRlZE9BUzMwID0gZm4uaXNGaWxlVXBsb2FkSW50ZW5kZWRPQVMzMChcbiAgICAgIHNjaGVtYSxcbiAgICAgIG1lZGlhVHlwZVxuICAgIClcblxuICAgIGlmIChpc0ZpbGVVcGxvYWRJbnRlbmRlZE9BUzMwKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGNvbnN0IGlzU2NoZW1hSW1tdXRhYmxlID0gTWFwLmlzTWFwKHNjaGVtYSlcblxuICAgIGlmICghaXNTY2hlbWFJbW11dGFibGUgJiYgIWlzUGxhaW5PYmplY3Qoc2NoZW1hKSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgY29uc3QgY29udGVudE1lZGlhVHlwZSA9IGlzU2NoZW1hSW1tdXRhYmxlXG4gICAgICA/IHNjaGVtYS5nZXQoXCJjb250ZW50TWVkaWFUeXBlXCIpXG4gICAgICA6IHNjaGVtYS5jb250ZW50TWVkaWFUeXBlXG4gICAgY29uc3QgY29udGVudEVuY29kaW5nID0gaXNTY2hlbWFJbW11dGFibGVcbiAgICAgID8gc2NoZW1hLmdldChcImNvbnRlbnRFbmNvZGluZ1wiKVxuICAgICAgOiBzY2hlbWEuY29udGVudEVuY29kaW5nXG5cbiAgICByZXR1cm4gKFxuICAgICAgKHR5cGVvZiBjb250ZW50TWVkaWFUeXBlID09PSBcInN0cmluZ1wiICYmIGNvbnRlbnRNZWRpYVR5cGUgIT09IFwiXCIpIHx8XG4gICAgICAodHlwZW9mIGNvbnRlbnRFbmNvZGluZyA9PT0gXCJzdHJpbmdcIiAmJiBjb250ZW50RW5jb2RpbmcgIT09IFwiXCIpXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIGlzRmlsZVVwbG9hZEludGVuZGVkXG59XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgV2ViaG9va3MgZnJvbSBcIi4vY29tcG9uZW50cy93ZWJob29rc1wiXG5pbXBvcnQgTGljZW5zZSBmcm9tIFwiLi9jb21wb25lbnRzL2xpY2Vuc2VcIlxuaW1wb3J0IENvbnRhY3QgZnJvbSBcIi4vY29tcG9uZW50cy9jb250YWN0XCJcbmltcG9ydCBJbmZvIGZyb20gXCIuL2NvbXBvbmVudHMvaW5mb1wiXG5pbXBvcnQgSnNvblNjaGVtYURpYWxlY3QgZnJvbSBcIi4vY29tcG9uZW50cy9qc29uLXNjaGVtYS1kaWFsZWN0XCJcbmltcG9ydCBWZXJzaW9uUHJhZ21hRmlsdGVyIGZyb20gXCIuL2NvbXBvbmVudHMvdmVyc2lvbi1wcmFnbWEtZmlsdGVyXCJcbmltcG9ydCBNb2RlbCBmcm9tIFwiLi9jb21wb25lbnRzL21vZGVsL21vZGVsXCJcbmltcG9ydCBNb2RlbHMgZnJvbSBcIi4vY29tcG9uZW50cy9tb2RlbHMvbW9kZWxzXCJcbmltcG9ydCBNdXR1YWxUTFNBdXRoIGZyb20gXCIuL2NvbXBvbmVudHMvYXV0aC9tdXR1YWwtdGxzLWF1dGhcIlxuaW1wb3J0IEF1dGhzIGZyb20gXCIuL2NvbXBvbmVudHMvYXV0aC9hdXRoc1wiXG5pbXBvcnQgTGljZW5zZVdyYXBwZXIgZnJvbSBcIi4vd3JhcC1jb21wb25lbnRzL2xpY2Vuc2VcIlxuaW1wb3J0IENvbnRhY3RXcmFwcGVyIGZyb20gXCIuL3dyYXAtY29tcG9uZW50cy9jb250YWN0XCJcbmltcG9ydCBJbmZvV3JhcHBlciBmcm9tIFwiLi93cmFwLWNvbXBvbmVudHMvaW5mb1wiXG5pbXBvcnQgTW9kZWxXcmFwcGVyIGZyb20gXCIuL3dyYXAtY29tcG9uZW50cy9tb2RlbFwiXG5pbXBvcnQgTW9kZWxzV3JhcHBlciBmcm9tIFwiLi93cmFwLWNvbXBvbmVudHMvbW9kZWxzXCJcbmltcG9ydCBWZXJzaW9uUHJhZ21hRmlsdGVyV3JhcHBlciBmcm9tIFwiLi93cmFwLWNvbXBvbmVudHMvdmVyc2lvbi1wcmFnbWEtZmlsdGVyXCJcbmltcG9ydCBBdXRoSXRlbVdyYXBwZXIgZnJvbSBcIi4vd3JhcC1jb21wb25lbnRzL2F1dGgvYXV0aC1pdGVtXCJcbmltcG9ydCBBdXRoc1dyYXBwZXIgZnJvbSBcIi4vd3JhcC1jb21wb25lbnRzL2F1dGhzXCJcbmltcG9ydCB7XG4gIGlzT0FTMzEgYXMgaXNPQVMzMUZuLFxuICBjcmVhdGVPbmx5T0FTMzFTZWxlY3RvciBhcyBjcmVhdGVPbmx5T0FTMzFTZWxlY3RvckZuLFxuICBjcmVhdGVTeXN0ZW1TZWxlY3RvciBhcyBjcmVhdGVTeXN0ZW1TZWxlY3RvckZuLFxufSBmcm9tIFwiLi9mblwiXG5pbXBvcnQge1xuICBsaWNlbnNlIGFzIHNlbGVjdExpY2Vuc2UsXG4gIGNvbnRhY3QgYXMgc2VsZWN0Q29udGFjdCxcbiAgd2ViaG9va3MgYXMgc2VsZWN0V2ViaG9va3MsXG4gIHNlbGVjdExpY2Vuc2VOYW1lRmllbGQsXG4gIHNlbGVjdExpY2Vuc2VVcmxGaWVsZCxcbiAgc2VsZWN0TGljZW5zZUlkZW50aWZpZXJGaWVsZCxcbiAgc2VsZWN0Q29udGFjdE5hbWVGaWVsZCxcbiAgc2VsZWN0Q29udGFjdEVtYWlsRmllbGQsXG4gIHNlbGVjdENvbnRhY3RVcmxGaWVsZCxcbiAgc2VsZWN0Q29udGFjdFVybCxcbiAgaXNPQVMzMSBhcyBzZWxlY3RJc09BUzMxLFxuICBzZWxlY3RMaWNlbnNlVXJsLFxuICBzZWxlY3RJbmZvVGl0bGVGaWVsZCxcbiAgc2VsZWN0SW5mb1N1bW1hcnlGaWVsZCxcbiAgc2VsZWN0SW5mb0Rlc2NyaXB0aW9uRmllbGQsXG4gIHNlbGVjdEluZm9UZXJtc09mU2VydmljZUZpZWxkLFxuICBzZWxlY3RJbmZvVGVybXNPZlNlcnZpY2VVcmwsXG4gIHNlbGVjdEV4dGVybmFsRG9jc0Rlc2NyaXB0aW9uRmllbGQsXG4gIHNlbGVjdEV4dGVybmFsRG9jc1VybEZpZWxkLFxuICBzZWxlY3RFeHRlcm5hbERvY3NVcmwsXG4gIHNlbGVjdFdlYmhvb2tzT3BlcmF0aW9ucyxcbiAgc2VsZWN0SnNvblNjaGVtYURpYWxlY3RGaWVsZCxcbiAgc2VsZWN0SnNvblNjaGVtYURpYWxlY3REZWZhdWx0LFxuICBzZWxlY3RTY2hlbWFzLFxufSBmcm9tIFwiLi9zcGVjLWV4dGVuc2lvbnMvc2VsZWN0b3JzXCJcbmltcG9ydCB7XG4gIGlzT0FTMyBhcyBpc09BUzNTZWxlY3RvcldyYXBwZXIsXG4gIHNlbGVjdExpY2Vuc2VVcmwgYXMgc2VsZWN0TGljZW5zZVVybFdyYXBwZXIsXG59IGZyb20gXCIuL3NwZWMtZXh0ZW5zaW9ucy93cmFwLXNlbGVjdG9yc1wiXG5pbXBvcnQgeyBkZWZpbml0aW9uc1RvQXV0aG9yaXplIGFzIGRlZmluaXRpb25zVG9BdXRob3JpemVXcmFwcGVyIH0gZnJvbSBcIi4vYXV0aC1leHRlbnNpb25zL3dyYXAtc2VsZWN0b3JzXCJcbmltcG9ydCB7IHNlbGVjdExpY2Vuc2VVcmwgYXMgc2VsZWN0T0FTMzFMaWNlbnNlVXJsIH0gZnJvbSBcIi4vc2VsZWN0b3JzXCJcbmltcG9ydCBKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4YW1wbGUgZnJvbSBcIi4vanNvbi1zY2hlbWEtMjAyMC0xMi1leHRlbnNpb25zL2NvbXBvbmVudHMva2V5d29yZHMvRXhhbXBsZVwiXG5pbXBvcnQgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRYbWwgZnJvbSBcIi4vanNvbi1zY2hlbWEtMjAyMC0xMi1leHRlbnNpb25zL2NvbXBvbmVudHMva2V5d29yZHMvWG1sXCJcbmltcG9ydCBKU09OU2NoZW1hMjAyMDEyS2V5d29yZERpc2NyaW1pbmF0b3IgZnJvbSBcIi4vanNvbi1zY2hlbWEtMjAyMC0xMi1leHRlbnNpb25zL2NvbXBvbmVudHMva2V5d29yZHMvRGlzY3JpbWluYXRvci9EaXNjcmltaW5hdG9yXCJcbmltcG9ydCBPcGVuQVBJRXh0ZW5zaW9ucyBmcm9tIFwiLi9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvY29tcG9uZW50cy9rZXl3b3Jkcy9PcGVuQVBJRXh0ZW5zaW9uc1wiXG5pbXBvcnQgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFeHRlcm5hbERvY3MgZnJvbSBcIi4vanNvbi1zY2hlbWEtMjAyMC0xMi1leHRlbnNpb25zL2NvbXBvbmVudHMva2V5d29yZHMvRXh0ZXJuYWxEb2NzXCJcbmltcG9ydCBKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlc2NyaXB0aW9uV3JhcHBlciBmcm9tIFwiLi9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvd3JhcC1jb21wb25lbnRzL2tleXdvcmRzL0Rlc2NyaXB0aW9uXCJcbmltcG9ydCBKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4YW1wbGVzV3JhcHBlciBmcm9tIFwiLi9qc29uLXNjaGVtYS0yMDIwLTEyLWV4dGVuc2lvbnMvd3JhcC1jb21wb25lbnRzL2tleXdvcmRzL0V4YW1wbGVzXCJcbmltcG9ydCBKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByb3BlcnRpZXNXcmFwcGVyIGZyb20gXCIuL2pzb24tc2NoZW1hLTIwMjAtMTItZXh0ZW5zaW9ucy93cmFwLWNvbXBvbmVudHMva2V5d29yZHMvUHJvcGVydGllc1wiXG5pbXBvcnQgYWZ0ZXJMb2FkIGZyb20gXCIuL2FmdGVyLWxvYWRcIlxuXG5jb25zdCBPQVMzMVBsdWdpbiA9ICh7IGZuIH0pID0+IHtcbiAgY29uc3QgY3JlYXRlU3lzdGVtU2VsZWN0b3IgPSBmbi5jcmVhdGVTeXN0ZW1TZWxlY3RvciB8fCBjcmVhdGVTeXN0ZW1TZWxlY3RvckZuXG4gIGNvbnN0IGNyZWF0ZU9ubHlPQVMzMVNlbGVjdG9yID0gZm4uY3JlYXRlT25seU9BUzMxU2VsZWN0b3IgfHwgY3JlYXRlT25seU9BUzMxU2VsZWN0b3JGbiAvLyBwcmV0dGllci1pZ25vcmVcblxuICByZXR1cm4ge1xuICAgIGFmdGVyTG9hZCxcbiAgICBmbjoge1xuICAgICAgaXNPQVMzMTogaXNPQVMzMUZuLFxuICAgICAgY3JlYXRlU3lzdGVtU2VsZWN0b3I6IGNyZWF0ZVN5c3RlbVNlbGVjdG9yRm4sXG4gICAgICBjcmVhdGVPbmx5T0FTMzFTZWxlY3RvcjogY3JlYXRlT25seU9BUzMxU2VsZWN0b3JGbixcbiAgICB9LFxuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgIFdlYmhvb2tzLFxuICAgICAgSnNvblNjaGVtYURpYWxlY3QsXG4gICAgICBNdXR1YWxUTFNBdXRoLFxuICAgICAgT0FTMzFJbmZvOiBJbmZvLFxuICAgICAgT0FTMzFMaWNlbnNlOiBMaWNlbnNlLFxuICAgICAgT0FTMzFDb250YWN0OiBDb250YWN0LFxuICAgICAgT0FTMzFWZXJzaW9uUHJhZ21hRmlsdGVyOiBWZXJzaW9uUHJhZ21hRmlsdGVyLFxuICAgICAgT0FTMzFNb2RlbDogTW9kZWwsXG4gICAgICBPQVMzMU1vZGVsczogTW9kZWxzLFxuICAgICAgT0FTMzFBdXRoczogQXV0aHMsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4YW1wbGUsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZFhtbCxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGlzY3JpbWluYXRvcixcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXh0ZXJuYWxEb2NzLFxuICAgICAgT3BlbkFQSTMxRXh0ZW5zaW9uczogT3BlbkFQSUV4dGVuc2lvbnMsXG4gICAgfSxcbiAgICB3cmFwQ29tcG9uZW50czoge1xuICAgICAgSW5mb0NvbnRhaW5lcjogSW5mb1dyYXBwZXIsXG4gICAgICBMaWNlbnNlOiBMaWNlbnNlV3JhcHBlcixcbiAgICAgIENvbnRhY3Q6IENvbnRhY3RXcmFwcGVyLFxuICAgICAgVmVyc2lvblByYWdtYUZpbHRlcjogVmVyc2lvblByYWdtYUZpbHRlcldyYXBwZXIsXG4gICAgICBNb2RlbDogTW9kZWxXcmFwcGVyLFxuICAgICAgTW9kZWxzOiBNb2RlbHNXcmFwcGVyLFxuICAgICAgQXV0aEl0ZW06IEF1dGhJdGVtV3JhcHBlcixcbiAgICAgIGF1dGhzOiBBdXRoc1dyYXBwZXIsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlc2NyaXB0aW9uOlxuICAgICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlc2NyaXB0aW9uV3JhcHBlcixcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXhhbXBsZXM6IEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXhhbXBsZXNXcmFwcGVyLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRQcm9wZXJ0aWVzOlxuICAgICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByb3BlcnRpZXNXcmFwcGVyLFxuICAgIH0sXG4gICAgc3RhdGVQbHVnaW5zOiB7XG4gICAgICBhdXRoOiB7XG4gICAgICAgIHdyYXBTZWxlY3RvcnM6IHtcbiAgICAgICAgICBkZWZpbml0aW9uc1RvQXV0aG9yaXplOiBkZWZpbml0aW9uc1RvQXV0aG9yaXplV3JhcHBlcixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzcGVjOiB7XG4gICAgICAgIHNlbGVjdG9yczoge1xuICAgICAgICAgIGlzT0FTMzE6IGNyZWF0ZVN5c3RlbVNlbGVjdG9yKHNlbGVjdElzT0FTMzEpLFxuXG4gICAgICAgICAgbGljZW5zZTogc2VsZWN0TGljZW5zZSxcbiAgICAgICAgICBzZWxlY3RMaWNlbnNlTmFtZUZpZWxkLFxuICAgICAgICAgIHNlbGVjdExpY2Vuc2VVcmxGaWVsZCxcbiAgICAgICAgICBzZWxlY3RMaWNlbnNlSWRlbnRpZmllckZpZWxkOiBjcmVhdGVPbmx5T0FTMzFTZWxlY3RvcihzZWxlY3RMaWNlbnNlSWRlbnRpZmllckZpZWxkKSwgLy8gcHJldHRpZXItaWdub3JlXG4gICAgICAgICAgc2VsZWN0TGljZW5zZVVybDogY3JlYXRlU3lzdGVtU2VsZWN0b3Ioc2VsZWN0TGljZW5zZVVybCksXG5cbiAgICAgICAgICBjb250YWN0OiBzZWxlY3RDb250YWN0LFxuICAgICAgICAgIHNlbGVjdENvbnRhY3ROYW1lRmllbGQsXG4gICAgICAgICAgc2VsZWN0Q29udGFjdEVtYWlsRmllbGQsXG4gICAgICAgICAgc2VsZWN0Q29udGFjdFVybEZpZWxkLFxuICAgICAgICAgIHNlbGVjdENvbnRhY3RVcmw6IGNyZWF0ZVN5c3RlbVNlbGVjdG9yKHNlbGVjdENvbnRhY3RVcmwpLFxuXG4gICAgICAgICAgc2VsZWN0SW5mb1RpdGxlRmllbGQsXG4gICAgICAgICAgc2VsZWN0SW5mb1N1bW1hcnlGaWVsZDogY3JlYXRlT25seU9BUzMxU2VsZWN0b3Ioc2VsZWN0SW5mb1N1bW1hcnlGaWVsZCksIC8vIHByZXR0aWVyLWlnbm9yZVxuICAgICAgICAgIHNlbGVjdEluZm9EZXNjcmlwdGlvbkZpZWxkLFxuICAgICAgICAgIHNlbGVjdEluZm9UZXJtc09mU2VydmljZUZpZWxkLFxuICAgICAgICAgIHNlbGVjdEluZm9UZXJtc09mU2VydmljZVVybDogY3JlYXRlU3lzdGVtU2VsZWN0b3Ioc2VsZWN0SW5mb1Rlcm1zT2ZTZXJ2aWNlVXJsKSwgLy8gcHJldHRpZXItaWdub3JlXG5cbiAgICAgICAgICBzZWxlY3RFeHRlcm5hbERvY3NEZXNjcmlwdGlvbkZpZWxkLFxuICAgICAgICAgIHNlbGVjdEV4dGVybmFsRG9jc1VybEZpZWxkLFxuICAgICAgICAgIHNlbGVjdEV4dGVybmFsRG9jc1VybDogY3JlYXRlU3lzdGVtU2VsZWN0b3Ioc2VsZWN0RXh0ZXJuYWxEb2NzVXJsKSxcblxuICAgICAgICAgIHdlYmhvb2tzOiBjcmVhdGVPbmx5T0FTMzFTZWxlY3RvcihzZWxlY3RXZWJob29rcyksXG4gICAgICAgICAgc2VsZWN0V2ViaG9va3NPcGVyYXRpb25zOiBjcmVhdGVPbmx5T0FTMzFTZWxlY3RvcihjcmVhdGVTeXN0ZW1TZWxlY3RvcihzZWxlY3RXZWJob29rc09wZXJhdGlvbnMpKSwgLy8gcHJldHRpZXItaWdub3JlXG5cbiAgICAgICAgICBzZWxlY3RKc29uU2NoZW1hRGlhbGVjdEZpZWxkLFxuICAgICAgICAgIHNlbGVjdEpzb25TY2hlbWFEaWFsZWN0RGVmYXVsdCxcblxuICAgICAgICAgIHNlbGVjdFNjaGVtYXM6IGNyZWF0ZVN5c3RlbVNlbGVjdG9yKHNlbGVjdFNjaGVtYXMpLFxuICAgICAgICB9LFxuICAgICAgICB3cmFwU2VsZWN0b3JzOiB7XG4gICAgICAgICAgaXNPQVMzOiBpc09BUzNTZWxlY3RvcldyYXBwZXIsXG4gICAgICAgICAgc2VsZWN0TGljZW5zZVVybDogc2VsZWN0TGljZW5zZVVybFdyYXBwZXIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgb2FzMzE6IHtcbiAgICAgICAgc2VsZWN0b3JzOiB7XG4gICAgICAgICAgc2VsZWN0TGljZW5zZVVybDogY3JlYXRlT25seU9BUzMxU2VsZWN0b3IoY3JlYXRlU3lzdGVtU2VsZWN0b3Ioc2VsZWN0T0FTMzFMaWNlbnNlVXJsKSksIC8vIHByZXR0aWVyLWlnbm9yZVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE9BUzMxUGx1Z2luXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuZXhwb3J0IGNvbnN0IG9iamVjdFNjaGVtYSA9IFByb3BUeXBlcy5vYmplY3RcblxuZXhwb3J0IGNvbnN0IGJvb2xlYW5TY2hlbWEgPSBQcm9wVHlwZXMuYm9vbFxuXG5leHBvcnQgY29uc3Qgc2NoZW1hID0gUHJvcFR5cGVzLm9uZU9mVHlwZShbb2JqZWN0U2NoZW1hLCBib29sZWFuU2NoZW1hXSlcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIlxuXG5leHBvcnQgY29uc3QgSlNPTlNjaGVtYUNvbnRleHQgPSBjcmVhdGVDb250ZXh0KG51bGwpXG5KU09OU2NoZW1hQ29udGV4dC5kaXNwbGF5TmFtZSA9IFwiSlNPTlNjaGVtYUNvbnRleHRcIlxuXG5leHBvcnQgY29uc3QgSlNPTlNjaGVtYUxldmVsQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoMClcbkpTT05TY2hlbWFMZXZlbENvbnRleHQuZGlzcGxheU5hbWUgPSBcIkpTT05TY2hlbWFMZXZlbENvbnRleHRcIlxuXG5leHBvcnQgY29uc3QgSlNPTlNjaGVtYUN5Y2xlc0NvbnRleHQgPSBjcmVhdGVDb250ZXh0KG5ldyBTZXQoKSlcblxuZXhwb3J0IGNvbnN0IEpTT05TY2hlbWFQYXRoQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoW10pXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5leHBvcnQgY2xhc3MgSlNPTlNjaGVtYUlzRXhwYW5kZWRTdGF0ZSB7XG4gIHN0YXRpYyBDb2xsYXBzZWQgPSBcImNvbGxhcHNlZFwiXG5cbiAgc3RhdGljIEV4cGFuZGVkID0gXCJleHBhbmRlZFwiXG5cbiAgc3RhdGljIERlZXBseUV4cGFuZGVkID0gXCJkZWVwbHktZXhwYW5kZWRcIlxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQge1xuICBKU09OU2NoZW1hQ29udGV4dCxcbiAgSlNPTlNjaGVtYUxldmVsQ29udGV4dCxcbiAgSlNPTlNjaGVtYUN5Y2xlc0NvbnRleHQsXG4gIEpTT05TY2hlbWFQYXRoQ29udGV4dCxcbn0gZnJvbSBcIi4vY29udGV4dFwiXG5pbXBvcnQgeyBKU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlIH0gZnJvbSBcIi4vZW51bVwiXG5cbmV4cG9ydCBjb25zdCB1c2VDb25maWcgPSAoKSA9PiB7XG4gIGNvbnN0IHsgY29uZmlnIH0gPSB1c2VDb250ZXh0KEpTT05TY2hlbWFDb250ZXh0KVxuICByZXR1cm4gY29uZmlnXG59XG5cbmV4cG9ydCBjb25zdCB1c2VDb21wb25lbnQgPSAoY29tcG9uZW50TmFtZSkgPT4ge1xuICBjb25zdCB7IGNvbXBvbmVudHMgfSA9IHVzZUNvbnRleHQoSlNPTlNjaGVtYUNvbnRleHQpXG4gIHJldHVybiBjb21wb25lbnRzW2NvbXBvbmVudE5hbWVdIHx8IG51bGxcbn1cblxuZXhwb3J0IGNvbnN0IHVzZUZuID0gKGZuTmFtZSA9IHVuZGVmaW5lZCkgPT4ge1xuICBjb25zdCB7IGZuIH0gPSB1c2VDb250ZXh0KEpTT05TY2hlbWFDb250ZXh0KVxuXG4gIHJldHVybiB0eXBlb2YgZm5OYW1lICE9PSBcInVuZGVmaW5lZFwiID8gZm5bZm5OYW1lXSA6IGZuXG59XG5cbmV4cG9ydCBjb25zdCB1c2VKU09OU2NoZW1hQ29udGV4dFN0YXRlID0gKCkgPT4ge1xuICBjb25zdCBbLCBzZXRGYWtlU3RhdGVdID0gdXNlU3RhdGUobnVsbClcbiAgY29uc3QgeyBzdGF0ZSB9ID0gdXNlQ29udGV4dChKU09OU2NoZW1hQ29udGV4dClcbiAgY29uc3Qgc2V0U3RhdGUgPSAodXBkYXRlRm4pID0+IHtcbiAgICB1cGRhdGVGbihzdGF0ZSlcbiAgICBzZXRGYWtlU3RhdGUoe30pXG4gIH1cblxuICByZXR1cm4geyBzdGF0ZSwgc2V0U3RhdGUgfVxufVxuXG5leHBvcnQgY29uc3QgdXNlTGV2ZWwgPSAoKSA9PiB7XG4gIGNvbnN0IGxldmVsID0gdXNlQ29udGV4dChKU09OU2NoZW1hTGV2ZWxDb250ZXh0KVxuXG4gIHJldHVybiBbbGV2ZWwsIGxldmVsICsgMV1cbn1cblxuZXhwb3J0IGNvbnN0IHVzZUlzRW1iZWRkZWQgPSAoKSA9PiB7XG4gIGNvbnN0IFtsZXZlbF0gPSB1c2VMZXZlbCgpXG5cbiAgcmV0dXJuIGxldmVsID4gMFxufVxuXG5leHBvcnQgY29uc3QgdXNlUGF0aCA9IChwYXRoVG9rZW4pID0+IHtcbiAgY29uc3QgcGF0aCA9IHVzZUNvbnRleHQoSlNPTlNjaGVtYVBhdGhDb250ZXh0KVxuICBjb25zdCB7IHNldFN0YXRlIH0gPSB1c2VKU09OU2NoZW1hQ29udGV4dFN0YXRlKClcbiAgY29uc3QgY3VycmVudFBhdGggPVxuICAgIHR5cGVvZiBwYXRoVG9rZW4gPT09IFwic3RyaW5nXCIgPyBbLi4ucGF0aCwgcGF0aFRva2VuXSA6IHBhdGhcblxuICBjb25zdCBwYXRoTXV0YXRvciA9ICh2YWx1ZSwgb3B0aW9ucyA9IHsgZGVlcDogZmFsc2UgfSkgPT4ge1xuICAgIGNvbnN0IHN0YXJ0UGF0aCA9IGN1cnJlbnRQYXRoLnRvU3RyaW5nKClcbiAgICBjb25zdCB1cGRhdGVGbiA9IChzdGF0ZSkgPT4ge1xuICAgICAgc3RhdGUucGF0aHNbc3RhcnRQYXRoXSA9IHZhbHVlXG5cbiAgICAgIGlmICh2YWx1ZSA9PT0gSlNPTlNjaGVtYUlzRXhwYW5kZWRTdGF0ZS5Db2xsYXBzZWQpIHtcbiAgICAgICAgT2JqZWN0LmtleXMoc3RhdGUucGF0aHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGtleS5zdGFydHNXaXRoKHN0YXJ0UGF0aCkgJiZcbiAgICAgICAgICAgIHN0YXRlLnBhdGhzW2tleV0gPT09IEpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuRGVlcGx5RXhwYW5kZWRcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHN0YXRlLnBhdGhzW2tleV0gPSBKU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkV4cGFuZGVkXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB1cGRhdGVEZWVwRm4gPSAoc3RhdGUpID0+IHtcbiAgICAgIE9iamVjdC5rZXlzKHN0YXRlLnBhdGhzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgaWYgKGtleS5zdGFydHNXaXRoKHN0YXJ0UGF0aCkpIHtcbiAgICAgICAgICBzdGF0ZS5wYXRoc1trZXldID0gdmFsdWVcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5kZWVwKSB7XG4gICAgICBzZXRTdGF0ZSh1cGRhdGVEZWVwRm4pXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFN0YXRlKHVwZGF0ZUZuKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IHBhdGg6IGN1cnJlbnRQYXRoLCBwYXRoTXV0YXRvciB9XG59XG5cbmV4cG9ydCBjb25zdCB1c2VJc0V4cGFuZGVkID0gKG5hbWUpID0+IHtcbiAgY29uc3QgW2xldmVsXSA9IHVzZUxldmVsKClcbiAgY29uc3QgeyBkZWZhdWx0RXhwYW5kZWRMZXZlbHMgfSA9IHVzZUNvbmZpZygpXG4gIGNvbnN0IHsgcGF0aCwgcGF0aE11dGF0b3IgfSA9IHVzZVBhdGgobmFtZSlcbiAgY29uc3QgeyBwYXRoOiBwYXJlbnRQYXRoIH0gPSB1c2VQYXRoKClcbiAgY29uc3QgeyBzdGF0ZSB9ID0gdXNlSlNPTlNjaGVtYUNvbnRleHRTdGF0ZSgpXG4gIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHN0YXRlLnBhdGhzW3BhdGgudG9TdHJpbmcoKV1cbiAgY29uc3QgcGFyZW50U3RhdGUgPVxuICAgIHN0YXRlLnBhdGhzW3BhcmVudFBhdGgudG9TdHJpbmcoKV0gPz9cbiAgICBzdGF0ZS5wYXRoc1twYXJlbnRQYXRoLnNsaWNlKDAsIC0xKS50b1N0cmluZygpXVxuICBjb25zdCBpc0V4cGFuZGVkU3RhdGUgPVxuICAgIGN1cnJlbnRTdGF0ZSA/P1xuICAgIChkZWZhdWx0RXhwYW5kZWRMZXZlbHMgLSBsZXZlbCA+IDBcbiAgICAgID8gSlNPTlNjaGVtYUlzRXhwYW5kZWRTdGF0ZS5FeHBhbmRlZFxuICAgICAgOiBKU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkNvbGxhcHNlZClcbiAgY29uc3QgaXNFeHBhbmRlZCA9IGlzRXhwYW5kZWRTdGF0ZSAhPT0gSlNPTlNjaGVtYUlzRXhwYW5kZWRTdGF0ZS5Db2xsYXBzZWRcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHBhdGhNdXRhdG9yKFxuICAgICAgcGFyZW50U3RhdGUgPT09IEpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuRGVlcGx5RXhwYW5kZWRcbiAgICAgICAgPyBKU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkRlZXBseUV4cGFuZGVkXG4gICAgICAgIDogaXNFeHBhbmRlZFN0YXRlXG4gICAgKVxuICB9LCBbcGFyZW50U3RhdGVdKVxuXG4gIGNvbnN0IHNldEV4cGFuZGVkID0gdXNlQ2FsbGJhY2soKG9wdGlvbnMgPSB7IGRlZXA6IGZhbHNlIH0pID0+IHtcbiAgICBwYXRoTXV0YXRvcihcbiAgICAgIG9wdGlvbnMuZGVlcFxuICAgICAgICA/IEpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuRGVlcGx5RXhwYW5kZWRcbiAgICAgICAgOiBKU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlLkV4cGFuZGVkXG4gICAgKVxuICB9LCBbXSlcblxuICBjb25zdCBzZXRDb2xsYXBzZWQgPSB1c2VDYWxsYmFjaygob3B0aW9ucyA9IHsgZGVlcDogZmFsc2UgfSkgPT4ge1xuICAgIHBhdGhNdXRhdG9yKEpTT05TY2hlbWFJc0V4cGFuZGVkU3RhdGUuQ29sbGFwc2VkLCBvcHRpb25zKVxuICB9LCBbXSlcblxuICByZXR1cm4geyBpc0V4cGFuZGVkLCBzZXRFeHBhbmRlZCwgc2V0Q29sbGFwc2VkIH1cbn1cblxuZXhwb3J0IGNvbnN0IHVzZVJlbmRlcmVkU2NoZW1hcyA9IChzY2hlbWEgPSB1bmRlZmluZWQpID0+IHtcbiAgaWYgKHR5cGVvZiBzY2hlbWEgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICByZXR1cm4gdXNlQ29udGV4dChKU09OU2NoZW1hQ3ljbGVzQ29udGV4dClcbiAgfVxuXG4gIGNvbnN0IHJlbmRlcmVkU2NoZW1hcyA9IHVzZUNvbnRleHQoSlNPTlNjaGVtYUN5Y2xlc0NvbnRleHQpXG4gIHJldHVybiBuZXcgU2V0KFsuLi5yZW5kZXJlZFNjaGVtYXMsIHNjaGVtYV0pXG59XG5leHBvcnQgY29uc3QgdXNlSXNDaXJjdWxhciA9IChzY2hlbWEpID0+IHtcbiAgY29uc3QgcmVuZGVyZWRTY2hlbWFzID0gdXNlUmVuZGVyZWRTY2hlbWFzKClcbiAgcmV0dXJuIHJlbmRlcmVkU2NoZW1hcy5oYXMoc2NoZW1hKVxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuXG5pbXBvcnQgKiBhcyBwcm9wVHlwZXMgZnJvbSBcIi4uLy4uL3Byb3AtdHlwZXNcIlxuaW1wb3J0IHtcbiAgdXNlQ29tcG9uZW50LFxuICB1c2VMZXZlbCxcbiAgdXNlRm4sXG4gIHVzZUlzRW1iZWRkZWQsXG4gIHVzZUlzRXhwYW5kZWQsXG4gIHVzZUlzQ2lyY3VsYXIsXG4gIHVzZVJlbmRlcmVkU2NoZW1hcyxcbiAgdXNlUGF0aCxcbn0gZnJvbSBcIi4uLy4uL2hvb2tzXCJcbmltcG9ydCB7XG4gIEpTT05TY2hlbWFMZXZlbENvbnRleHQsXG4gIEpTT05TY2hlbWFDeWNsZXNDb250ZXh0LFxuICBKU09OU2NoZW1hUGF0aENvbnRleHQsXG59IGZyb20gXCIuLi8uLi9jb250ZXh0XCJcblxuY29uc3QgSlNPTlNjaGVtYSA9IGZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBzY2hlbWEsXG4gICAgICBuYW1lID0gXCJcIixcbiAgICAgIGRlcGVuZGVudFJlcXVpcmVkID0gW10sXG4gICAgICBvbkV4cGFuZCA9ICgpID0+IHt9LFxuICAgICAgaWRlbnRpZmllciA9IFwiXCIsXG4gICAgfSxcbiAgICByZWZcbiAgKSA9PiB7XG4gICAgY29uc3QgZm4gPSB1c2VGbigpXG4gICAgLy8gdGhpcyBpbXBsZW1lbnRhdGlvbiBhc3N1bWVzIHRoYXQgJGlkIGlzIGFsd2F5cyBub24tcmVsYXRpdmUgVVJJXG4gICAgY29uc3QgcGF0aFRva2VuID0gaWRlbnRpZmllciB8fCBzY2hlbWE/LiRpZCB8fCBuYW1lXG4gICAgY29uc3QgeyBwYXRoIH0gPSB1c2VQYXRoKHBhdGhUb2tlbilcbiAgICBjb25zdCB7IGlzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWQgfSA9IHVzZUlzRXhwYW5kZWQocGF0aFRva2VuKVxuICAgIGNvbnN0IFtsZXZlbCwgbmV4dExldmVsXSA9IHVzZUxldmVsKClcbiAgICBjb25zdCBpc0VtYmVkZGVkID0gdXNlSXNFbWJlZGRlZCgpXG4gICAgY29uc3QgaXNFeHBhbmRhYmxlID0gZm4uaXNFeHBhbmRhYmxlKHNjaGVtYSkgfHwgZGVwZW5kZW50UmVxdWlyZWQubGVuZ3RoID4gMFxuICAgIGNvbnN0IGlzQ2lyY3VsYXIgPSB1c2VJc0NpcmN1bGFyKHNjaGVtYSlcbiAgICBjb25zdCByZW5kZXJlZFNjaGVtYXMgPSB1c2VSZW5kZXJlZFNjaGVtYXMoc2NoZW1hKVxuICAgIGNvbnN0IGNvbnN0cmFpbnRzID0gZm4uc3RyaW5naWZ5Q29uc3RyYWludHMoc2NoZW1hKVxuICAgIGNvbnN0IEFjY29yZGlvbiA9IHVzZUNvbXBvbmVudChcIkFjY29yZGlvblwiKVxuICAgIGNvbnN0IEtleXdvcmQkc2NoZW1hID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZCRzY2hlbWFcIilcbiAgICBjb25zdCBLZXl3b3JkJHZvY2FidWxhcnkgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkJHZvY2FidWxhcnlcIilcbiAgICBjb25zdCBLZXl3b3JkJGlkID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZCRpZFwiKVxuICAgIGNvbnN0IEtleXdvcmQkYW5jaG9yID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZCRhbmNob3JcIilcbiAgICBjb25zdCBLZXl3b3JkJGR5bmFtaWNBbmNob3IgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkJGR5bmFtaWNBbmNob3JcIilcbiAgICBjb25zdCBLZXl3b3JkJHJlZiA9IHVzZUNvbXBvbmVudChcIktleXdvcmQkcmVmXCIpXG4gICAgY29uc3QgS2V5d29yZCRkeW5hbWljUmVmID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZCRkeW5hbWljUmVmXCIpXG4gICAgY29uc3QgS2V5d29yZCRkZWZzID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZCRkZWZzXCIpXG4gICAgY29uc3QgS2V5d29yZCRjb21tZW50ID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZCRjb21tZW50XCIpXG4gICAgY29uc3QgS2V5d29yZEFsbE9mID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZEFsbE9mXCIpXG4gICAgY29uc3QgS2V5d29yZEFueU9mID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZEFueU9mXCIpXG4gICAgY29uc3QgS2V5d29yZE9uZU9mID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZE9uZU9mXCIpXG4gICAgY29uc3QgS2V5d29yZE5vdCA9IHVzZUNvbXBvbmVudChcIktleXdvcmROb3RcIilcbiAgICBjb25zdCBLZXl3b3JkSWYgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkSWZcIilcbiAgICBjb25zdCBLZXl3b3JkVGhlbiA9IHVzZUNvbXBvbmVudChcIktleXdvcmRUaGVuXCIpXG4gICAgY29uc3QgS2V5d29yZEVsc2UgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkRWxzZVwiKVxuICAgIGNvbnN0IEtleXdvcmREZXBlbmRlbnRTY2hlbWFzID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZERlcGVuZGVudFNjaGVtYXNcIilcbiAgICBjb25zdCBLZXl3b3JkUHJlZml4SXRlbXMgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkUHJlZml4SXRlbXNcIilcbiAgICBjb25zdCBLZXl3b3JkSXRlbXMgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkSXRlbXNcIilcbiAgICBjb25zdCBLZXl3b3JkQ29udGFpbnMgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkQ29udGFpbnNcIilcbiAgICBjb25zdCBLZXl3b3JkUHJvcGVydGllcyA9IHVzZUNvbXBvbmVudChcIktleXdvcmRQcm9wZXJ0aWVzXCIpXG4gICAgY29uc3QgS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzXCIpXG4gICAgY29uc3QgS2V5d29yZEFkZGl0aW9uYWxQcm9wZXJ0aWVzID0gdXNlQ29tcG9uZW50KFxuICAgICAgXCJLZXl3b3JkQWRkaXRpb25hbFByb3BlcnRpZXNcIlxuICAgIClcbiAgICBjb25zdCBLZXl3b3JkUHJvcGVydHlOYW1lcyA9IHVzZUNvbXBvbmVudChcIktleXdvcmRQcm9wZXJ0eU5hbWVzXCIpXG4gICAgY29uc3QgS2V5d29yZFVuZXZhbHVhdGVkSXRlbXMgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtc1wiKVxuICAgIGNvbnN0IEtleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXMgPSB1c2VDb21wb25lbnQoXG4gICAgICBcIktleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXNcIlxuICAgIClcbiAgICBjb25zdCBLZXl3b3JkVHlwZSA9IHVzZUNvbXBvbmVudChcIktleXdvcmRUeXBlXCIpXG4gICAgY29uc3QgS2V5d29yZEVudW0gPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkRW51bVwiKVxuICAgIGNvbnN0IEtleXdvcmRDb25zdCA9IHVzZUNvbXBvbmVudChcIktleXdvcmRDb25zdFwiKVxuICAgIGNvbnN0IEtleXdvcmRDb25zdHJhaW50ID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZENvbnN0cmFpbnRcIilcbiAgICBjb25zdCBLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWRcIilcbiAgICBjb25zdCBLZXl3b3JkQ29udGVudFNjaGVtYSA9IHVzZUNvbXBvbmVudChcIktleXdvcmRDb250ZW50U2NoZW1hXCIpXG4gICAgY29uc3QgS2V5d29yZFRpdGxlID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZFRpdGxlXCIpXG4gICAgY29uc3QgS2V5d29yZERlc2NyaXB0aW9uID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZERlc2NyaXB0aW9uXCIpXG4gICAgY29uc3QgS2V5d29yZERlZmF1bHQgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkRGVmYXVsdFwiKVxuICAgIGNvbnN0IEtleXdvcmREZXByZWNhdGVkID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZERlcHJlY2F0ZWRcIilcbiAgICBjb25zdCBLZXl3b3JkUmVhZE9ubHkgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkUmVhZE9ubHlcIilcbiAgICBjb25zdCBLZXl3b3JkV3JpdGVPbmx5ID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZFdyaXRlT25seVwiKVxuICAgIGNvbnN0IEtleXdvcmRFeGFtcGxlcyA9IHVzZUNvbXBvbmVudChcIktleXdvcmRFeGFtcGxlc1wiKVxuICAgIGNvbnN0IEV4dGVuc2lvbktleXdvcmRzID0gdXNlQ29tcG9uZW50KFwiRXh0ZW5zaW9uS2V5d29yZHNcIilcbiAgICBjb25zdCBFeHBhbmREZWVwQnV0dG9uID0gdXNlQ29tcG9uZW50KFwiRXhwYW5kRGVlcEJ1dHRvblwiKVxuXG4gICAgLyoqXG4gICAgICogRXZlbnQgaGFuZGxlcnMuXG4gICAgICovXG4gICAgY29uc3QgaGFuZGxlRXhwYW5zaW9uID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZSwgZXhwYW5kZWROZXcpID0+IHtcbiAgICAgICAgaWYgKGV4cGFuZGVkTmV3KSB7XG4gICAgICAgICAgc2V0RXhwYW5kZWQoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldENvbGxhcHNlZCgpXG4gICAgICAgIH1cbiAgICAgICAgb25FeHBhbmQoZSwgZXhwYW5kZWROZXcsIGZhbHNlKVxuICAgICAgfSxcbiAgICAgIFtvbkV4cGFuZCwgc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZF1cbiAgICApXG4gICAgY29uc3QgaGFuZGxlRXhwYW5zaW9uRGVlcCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGUsIGV4cGFuZGVkRGVlcE5ldykgPT4ge1xuICAgICAgICBpZiAoZXhwYW5kZWREZWVwTmV3KSB7XG4gICAgICAgICAgc2V0RXhwYW5kZWQoeyBkZWVwOiB0cnVlIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2V0Q29sbGFwc2VkKHsgZGVlcDogdHJ1ZSB9KVxuICAgICAgICB9XG4gICAgICAgIG9uRXhwYW5kKGUsIGV4cGFuZGVkRGVlcE5ldywgdHJ1ZSlcbiAgICAgIH0sXG4gICAgICBbb25FeHBhbmQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWRdXG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxKU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3BhdGh9PlxuICAgICAgICA8SlNPTlNjaGVtYUxldmVsQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bmV4dExldmVsfT5cbiAgICAgICAgICA8SlNPTlNjaGVtYUN5Y2xlc0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3JlbmRlcmVkU2NoZW1hc30+XG4gICAgICAgICAgICA8YXJ0aWNsZVxuICAgICAgICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgICAgICAgZGF0YS1qc29uLXNjaGVtYS1sZXZlbD17bGV2ZWx9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcImpzb24tc2NoZW1hLTIwMjAtMTJcIiwge1xuICAgICAgICAgICAgICAgIFwianNvbi1zY2hlbWEtMjAyMC0xMi0tZW1iZWRkZWRcIjogaXNFbWJlZGRlZCxcbiAgICAgICAgICAgICAgICBcImpzb24tc2NoZW1hLTIwMjAtMTItLWNpcmN1bGFyXCI6IGlzQ2lyY3VsYXIsXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTItaGVhZFwiPlxuICAgICAgICAgICAgICAgIHtpc0V4cGFuZGFibGUgJiYgIWlzQ2lyY3VsYXIgPyAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8QWNjb3JkaW9uIGV4cGFuZGVkPXtpc0V4cGFuZGVkfSBvbkNoYW5nZT17aGFuZGxlRXhwYW5zaW9ufT5cbiAgICAgICAgICAgICAgICAgICAgICA8S2V5d29yZFRpdGxlIHRpdGxlPXtuYW1lfSBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9BY2NvcmRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxFeHBhbmREZWVwQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWQ9e2lzRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlRXhwYW5zaW9uRGVlcH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICA8S2V5d29yZFRpdGxlIHRpdGxlPXtuYW1lfSBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDxLZXl3b3JkRGVwcmVjYXRlZCBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICA8S2V5d29yZFJlYWRPbmx5IHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgICAgIDxLZXl3b3JkV3JpdGVPbmx5IHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgICAgIDxLZXl3b3JkVHlwZSBzY2hlbWE9e3NjaGVtYX0gaXNDaXJjdWxhcj17aXNDaXJjdWxhcn0gLz5cbiAgICAgICAgICAgICAgICB7Y29uc3RyYWludHMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMubWFwKChjb25zdHJhaW50KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkQ29uc3RyYWludFxuICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7Y29uc3RyYWludC5zY29wZX0tJHtjb25zdHJhaW50LnZhbHVlfWB9XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3RyYWludD17Y29uc3RyYWludH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcImpzb24tc2NoZW1hLTIwMjAtMTItYm9keVwiLCB7XG4gICAgICAgICAgICAgICAgICBcImpzb24tc2NoZW1hLTIwMjAtMTItYm9keS0tY29sbGFwc2VkXCI6ICFpc0V4cGFuZGVkLFxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2lzRXhwYW5kZWQgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPEtleXdvcmREZXNjcmlwdGlvbiBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgeyFpc0NpcmN1bGFyICYmIGlzRXhwYW5kYWJsZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkUHJvcGVydGllcyBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkUGF0dGVyblByb3BlcnRpZXMgc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8S2V5d29yZEFkZGl0aW9uYWxQcm9wZXJ0aWVzIHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEtleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXMgc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8S2V5d29yZFByb3BlcnR5TmFtZXMgc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8S2V5d29yZEFsbE9mIHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEtleXdvcmRBbnlPZiBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkT25lT2Ygc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8S2V5d29yZE5vdCBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkSWYgc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8S2V5d29yZFRoZW4gc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8S2V5d29yZEVsc2Ugc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8S2V5d29yZERlcGVuZGVudFNjaGVtYXMgc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8S2V5d29yZFByZWZpeEl0ZW1zIHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEtleXdvcmRJdGVtcyBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtcyBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkQ29udGFpbnMgc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8S2V5d29yZENvbnRlbnRTY2hlbWEgc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkRW51bSBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgPEtleXdvcmRDb25zdCBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgPEtleXdvcmREZXBlbmRlbnRSZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYT17c2NoZW1hfVxuICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVudFJlcXVpcmVkPXtkZXBlbmRlbnRSZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPEtleXdvcmREZWZhdWx0IHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgICAgICAgICA8S2V5d29yZEV4YW1wbGVzIHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgICAgICAgICA8S2V5d29yZCRzY2hlbWEgc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkJHZvY2FidWxhcnkgc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkJGlkIHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgICAgICAgICA8S2V5d29yZCRhbmNob3Igc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkJGR5bmFtaWNBbmNob3Igc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgIDxLZXl3b3JkJHJlZiBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgeyFpc0NpcmN1bGFyICYmIGlzRXhwYW5kYWJsZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPEtleXdvcmQkZGVmcyBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPEtleXdvcmQkZHluYW1pY1JlZiBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgPEtleXdvcmQkY29tbWVudCBzY2hlbWE9e3NjaGVtYX0gLz5cbiAgICAgICAgICAgICAgICAgICAgPEV4dGVuc2lvbktleXdvcmRzIHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2FydGljbGU+XG4gICAgICAgICAgPC9KU09OU2NoZW1hQ3ljbGVzQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgPC9KU09OU2NoZW1hTGV2ZWxDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgPC9KU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXI+XG4gICAgKVxuICB9XG4pXG5cbkpTT05TY2hlbWEucHJvcFR5cGVzID0ge1xuICBuYW1lOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMuZWxlbWVudF0pLFxuICBzY2hlbWE6IHByb3BUeXBlcy5zY2hlbWEuaXNSZXF1aXJlZCxcbiAgZGVwZW5kZW50UmVxdWlyZWQ6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxuICBvbkV4cGFuZDogUHJvcFR5cGVzLmZ1bmMsXG4gIGlkZW50aWZpZXI6IFByb3BUeXBlcy5zdHJpbmcsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEpTT05TY2hlbWFcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5cbmNvbnN0ICRzY2hlbWEgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBpZiAoIXNjaGVtYT8uJHNjaGVtYSkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJHNjaGVtYVwiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICRzY2hlbWFcbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgIHtzY2hlbWEuJHNjaGVtYX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG4kc2NoZW1hLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgJHNjaGVtYVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcblxuaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSBcIi4uLy4uLy4uL3Byb3AtdHlwZXNcIlxuaW1wb3J0IHsgdXNlQ29tcG9uZW50LCB1c2VJc0V4cGFuZGVkLCB1c2VQYXRoIH0gZnJvbSBcIi4uLy4uLy4uL2hvb2tzXCJcbmltcG9ydCB7IEpTT05TY2hlbWFQYXRoQ29udGV4dCB9IGZyb20gXCIuLi8uLi8uLi9jb250ZXh0XCJcblxuY29uc3QgJHZvY2FidWxhcnkgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBwYXRoVG9rZW4gPSBcIiR2b2NhYnVsYXJ5XCJcbiAgY29uc3QgeyBwYXRoIH0gPSB1c2VQYXRoKHBhdGhUb2tlbilcbiAgY29uc3QgeyBpc0V4cGFuZGVkLCBzZXRFeHBhbmRlZCwgc2V0Q29sbGFwc2VkIH0gPSB1c2VJc0V4cGFuZGVkKHBhdGhUb2tlbilcbiAgY29uc3QgQWNjb3JkaW9uID0gdXNlQ29tcG9uZW50KFwiQWNjb3JkaW9uXCIpXG5cbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChpc0V4cGFuZGVkKSB7XG4gICAgICBzZXRDb2xsYXBzZWQoKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRFeHBhbmRlZCgpXG4gICAgfVxuICB9LCBbaXNFeHBhbmRlZCwgc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZF0pXG5cbiAgLyoqXG4gICAqIFJlbmRlcmluZy5cbiAgICovXG4gIGlmICghc2NoZW1hPy4kdm9jYWJ1bGFyeSkgcmV0dXJuIG51bGxcbiAgaWYgKHR5cGVvZiBzY2hlbWEuJHZvY2FidWxhcnkgIT09IFwib2JqZWN0XCIpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8SlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwYXRofT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJHZvY2FidWxhcnlcIj5cbiAgICAgICAgPEFjY29yZGlvbiBleHBhbmRlZD17aXNFeHBhbmRlZH0gb25DaGFuZ2U9e2hhbmRsZUV4cGFuc2lvbn0+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAkdm9jYWJ1bGFyeVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9BY2NvcmRpb24+XG4gICAgICAgIDxzdHJvbmcgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeVwiPlxuICAgICAgICAgIG9iamVjdFxuICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgPHVsPlxuICAgICAgICAgIHtpc0V4cGFuZGVkICYmXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhzY2hlbWEuJHZvY2FidWxhcnkpLm1hcCgoW3VyaSwgZW5hYmxlZF0pID0+IChcbiAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAga2V5PXt1cml9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwianNvbi1zY2hlbWEtMjAyMC0xMi0kdm9jYWJ1bGFyeS11cmlcIiwge1xuICAgICAgICAgICAgICAgICAgXCJqc29uLXNjaGVtYS0yMDIwLTEyLSR2b2NhYnVsYXJ5LXVyaS0tZGlzYWJsZWRcIjogIWVuYWJsZWQsXG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICAgICAge3VyaX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgIDwvSlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbiR2b2NhYnVsYXJ5LnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgJHZvY2FidWxhcnlcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5cbmNvbnN0ICRpZCA9ICh7IHNjaGVtYSB9KSA9PiB7XG4gIGlmICghc2NoZW1hPy4kaWQpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLSRpZFwiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICRpZFxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnlcIj5cbiAgICAgICAge3NjaGVtYS4kaWR9XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuJGlkLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgJGlkXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcblxuaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSBcIi4uLy4uL3Byb3AtdHlwZXNcIlxuXG5jb25zdCAkYW5jaG9yID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgaWYgKCFzY2hlbWE/LiRhbmNob3IpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLSRhbmNob3JcIj5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXNlY29uZGFyeVwiPlxuICAgICAgICAkYW5jaG9yXG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeVwiPlxuICAgICAgICB7c2NoZW1hLiRhbmNob3J9XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuJGFuY2hvci5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0ICRhbmNob3JcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5cbmNvbnN0ICRkeW5hbWljQW5jaG9yID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgaWYgKCFzY2hlbWE/LiRkeW5hbWljQW5jaG9yKSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS0kZHluYW1pY0FuY2hvclwiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICRkeW5hbWljQW5jaG9yXG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeVwiPlxuICAgICAgICB7c2NoZW1hLiRkeW5hbWljQW5jaG9yfVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICApXG59XG5cbiRkeW5hbWljQW5jaG9yLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgJGR5bmFtaWNBbmNob3JcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5cbmNvbnN0ICRyZWYgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBpZiAoIXNjaGVtYT8uJHJlZikgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tJHJlZlwiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICRyZWZcbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgIHtzY2hlbWEuJHJlZn1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG4kcmVmLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgJHJlZlxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IHNjaGVtYSB9IGZyb20gXCIuLi8uLi9wcm9wLXR5cGVzXCJcblxuY29uc3QgJGR5bmFtaWNSZWYgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBpZiAoIXNjaGVtYT8uJGR5bmFtaWNSZWYpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLSRkeW5hbWljUmVmXCI+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1zZWNvbmRhcnlcIj5cbiAgICAgICAgJGR5bmFtaWNSZWZcbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgIHtzY2hlbWEuJGR5bmFtaWNSZWZ9XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuJGR5bmFtaWNSZWYucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCAkZHluYW1pY1JlZlxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcblxuaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSBcIi4uLy4uL3Byb3AtdHlwZXNcIlxuaW1wb3J0IHsgdXNlQ29tcG9uZW50LCB1c2VJc0V4cGFuZGVkLCB1c2VQYXRoLCB1c2VMZXZlbCB9IGZyb20gXCIuLi8uLi9ob29rc1wiXG5pbXBvcnQgeyBKU09OU2NoZW1hTGV2ZWxDb250ZXh0LCBKU09OU2NoZW1hUGF0aENvbnRleHQgfSBmcm9tIFwiLi4vLi4vY29udGV4dFwiXG5cbmNvbnN0ICRkZWZzID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgY29uc3QgJGRlZnMgPSBzY2hlbWE/LiRkZWZzIHx8IHt9XG4gIGNvbnN0IHBhdGhUb2tlbiA9IFwiJGRlZnNcIlxuICBjb25zdCB7IHBhdGggfSA9IHVzZVBhdGgocGF0aFRva2VuKVxuICBjb25zdCB7IGlzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWQgfSA9IHVzZUlzRXhwYW5kZWQocGF0aFRva2VuKVxuICBjb25zdCBbbGV2ZWwsIG5leHRMZXZlbF0gPSB1c2VMZXZlbCgpXG4gIGNvbnN0IEFjY29yZGlvbiA9IHVzZUNvbXBvbmVudChcIkFjY29yZGlvblwiKVxuICBjb25zdCBFeHBhbmREZWVwQnV0dG9uID0gdXNlQ29tcG9uZW50KFwiRXhwYW5kRGVlcEJ1dHRvblwiKVxuICBjb25zdCBKU09OU2NoZW1hID0gdXNlQ29tcG9uZW50KFwiSlNPTlNjaGVtYVwiKVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVycy5cbiAgICovXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoaXNFeHBhbmRlZCkge1xuICAgICAgc2V0Q29sbGFwc2VkKClcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RXhwYW5kZWQoKVxuICAgIH1cbiAgfSwgW2lzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWRdKVxuICBjb25zdCBoYW5kbGVFeHBhbnNpb25EZWVwID0gdXNlQ2FsbGJhY2soXG4gICAgKGUsIGV4cGFuZGVkRGVlcE5ldykgPT4ge1xuICAgICAgaWYgKGV4cGFuZGVkRGVlcE5ldykge1xuICAgICAgICBzZXRFeHBhbmRlZCh7IGRlZXA6IHRydWUgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldENvbGxhcHNlZCh7IGRlZXA6IHRydWUgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZXRFeHBhbmRlZCwgc2V0Q29sbGFwc2VkXVxuICApXG5cbiAgLyoqXG4gICAqIFJlbmRlcmluZy5cbiAgICovXG4gIGlmIChPYmplY3Qua2V5cygkZGVmcykubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEpTT05TY2hlbWFQYXRoQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cGF0aH0+XG4gICAgICA8SlNPTlNjaGVtYUxldmVsQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bmV4dExldmVsfT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLSRkZWZzXCJcbiAgICAgICAgICBkYXRhLWpzb24tc2NoZW1hLWxldmVsPXtsZXZlbH1cbiAgICAgICAgPlxuICAgICAgICAgIDxBY2NvcmRpb24gZXhwYW5kZWQ9e2lzRXhwYW5kZWR9IG9uQ2hhbmdlPXtoYW5kbGVFeHBhbnNpb259PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICRkZWZzXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9BY2NvcmRpb24+XG4gICAgICAgICAgPEV4cGFuZERlZXBCdXR0b25cbiAgICAgICAgICAgIGV4cGFuZGVkPXtpc0V4cGFuZGVkfVxuICAgICAgICAgICAgb25DbGljaz17aGFuZGxlRXhwYW5zaW9uRGVlcH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeVwiPlxuICAgICAgICAgICAgb2JqZWN0XG4gICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuXCIsIHtcbiAgICAgICAgICAgICAgXCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWRcIjogIWlzRXhwYW5kZWQsXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aXNFeHBhbmRlZCAmJiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge09iamVjdC5lbnRyaWVzKCRkZWZzKS5tYXAoKFtzY2hlbWFOYW1lLCBzY2hlbWFdKSA9PiAoXG4gICAgICAgICAgICAgICAgICA8bGkga2V5PXtzY2hlbWFOYW1lfSBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxKU09OU2NoZW1hIG5hbWU9e3NjaGVtYU5hbWV9IHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9KU09OU2NoZW1hTGV2ZWxDb250ZXh0LlByb3ZpZGVyPlxuICAgIDwvSlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbiRkZWZzLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgJGRlZnNcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5cbmNvbnN0ICRjb21tZW50ID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgaWYgKCFzY2hlbWE/LiRjb21tZW50KSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS0kY29tbWVudFwiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICRjb21tZW50XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX3ZhbHVlIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUtLXNlY29uZGFyeVwiPlxuICAgICAgICB7c2NoZW1hLiRjb21tZW50fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICApXG59XG5cbiRjb21tZW50LnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgJGNvbW1lbnRcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiXG5cbmltcG9ydCB7IHNjaGVtYSB9IGZyb20gXCIuLi8uLi9wcm9wLXR5cGVzXCJcbmltcG9ydCB7XG4gIHVzZUZuLFxuICB1c2VDb21wb25lbnQsXG4gIHVzZUlzRXhwYW5kZWQsXG4gIHVzZVBhdGgsXG4gIHVzZUxldmVsLFxufSBmcm9tIFwiLi4vLi4vaG9va3NcIlxuaW1wb3J0IHsgSlNPTlNjaGVtYUxldmVsQ29udGV4dCwgSlNPTlNjaGVtYVBhdGhDb250ZXh0IH0gZnJvbSBcIi4uLy4uL2NvbnRleHRcIlxuXG5jb25zdCBBbGxPZiA9ICh7IHNjaGVtYSB9KSA9PiB7XG4gIGNvbnN0IGFsbE9mID0gc2NoZW1hPy5hbGxPZiB8fCBbXVxuICBjb25zdCBmbiA9IHVzZUZuKClcbiAgY29uc3QgcGF0aFRva2VuID0gXCJhbGxPZlwiXG4gIGNvbnN0IHsgcGF0aCB9ID0gdXNlUGF0aChwYXRoVG9rZW4pXG4gIGNvbnN0IHsgaXNFeHBhbmRlZCwgc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZCB9ID0gdXNlSXNFeHBhbmRlZChwYXRoVG9rZW4pXG4gIGNvbnN0IFtsZXZlbCwgbmV4dExldmVsXSA9IHVzZUxldmVsKClcbiAgY29uc3QgQWNjb3JkaW9uID0gdXNlQ29tcG9uZW50KFwiQWNjb3JkaW9uXCIpXG4gIGNvbnN0IEV4cGFuZERlZXBCdXR0b24gPSB1c2VDb21wb25lbnQoXCJFeHBhbmREZWVwQnV0dG9uXCIpXG4gIGNvbnN0IEpTT05TY2hlbWEgPSB1c2VDb21wb25lbnQoXCJKU09OU2NoZW1hXCIpXG4gIGNvbnN0IEtleXdvcmRUeXBlID0gdXNlQ29tcG9uZW50KFwiS2V5d29yZFR5cGVcIilcblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlcnMuXG4gICAqL1xuICBjb25zdCBoYW5kbGVFeHBhbnNpb24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKGlzRXhwYW5kZWQpIHtcbiAgICAgIHNldENvbGxhcHNlZCgpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEV4cGFuZGVkKClcbiAgICB9XG4gIH0sIFtpc0V4cGFuZGVkLCBzZXRFeHBhbmRlZCwgc2V0Q29sbGFwc2VkXSlcbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uRGVlcCA9IHVzZUNhbGxiYWNrKFxuICAgIChlLCBleHBhbmRlZERlZXBOZXcpID0+IHtcbiAgICAgIGlmIChleHBhbmRlZERlZXBOZXcpIHtcbiAgICAgICAgc2V0RXhwYW5kZWQoeyBkZWVwOiB0cnVlIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRDb2xsYXBzZWQoeyBkZWVwOiB0cnVlIH0pXG4gICAgICB9XG4gICAgfSxcbiAgICBbc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZF1cbiAgKVxuXG4gIC8qKlxuICAgKiBSZW5kZXJpbmcuXG4gICAqL1xuICBpZiAoIUFycmF5LmlzQXJyYXkoYWxsT2YpIHx8IGFsbE9mLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxKU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3BhdGh9PlxuICAgICAgPEpTT05TY2hlbWFMZXZlbENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e25leHRMZXZlbH0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1hbGxPZlwiXG4gICAgICAgICAgZGF0YS1qc29uLXNjaGVtYS1sZXZlbD17bGV2ZWx9XG4gICAgICAgID5cbiAgICAgICAgICA8QWNjb3JkaW9uIGV4cGFuZGVkPXtpc0V4cGFuZGVkfSBvbkNoYW5nZT17aGFuZGxlRXhwYW5zaW9ufT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnlcIj5cbiAgICAgICAgICAgICAgQWxsIG9mXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9BY2NvcmRpb24+XG4gICAgICAgICAgPEV4cGFuZERlZXBCdXR0b25cbiAgICAgICAgICAgIGV4cGFuZGVkPXtpc0V4cGFuZGVkfVxuICAgICAgICAgICAgb25DbGljaz17aGFuZGxlRXhwYW5zaW9uRGVlcH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxLZXl3b3JkVHlwZSBzY2hlbWE9e3sgYWxsT2YgfX0gLz5cbiAgICAgICAgICA8dWxcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW5cIiwge1xuICAgICAgICAgICAgICBcImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fY2hpbGRyZW4tLWNvbGxhcHNlZFwiOiAhaXNFeHBhbmRlZCxcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpc0V4cGFuZGVkICYmIChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICB7YWxsT2YubWFwKChzY2hlbWEsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAga2V5PXtgIyR7aW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxKU09OU2NoZW1hXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17YCMke2luZGV4fSAke2ZuLmdldFRpdGxlKHNjaGVtYSl9YH1cbiAgICAgICAgICAgICAgICAgICAgICBzY2hlbWE9e3NjaGVtYX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvSlNPTlNjaGVtYUxldmVsQ29udGV4dC5Qcm92aWRlcj5cbiAgICA8L0pTT05TY2hlbWFQYXRoQ29udGV4dC5Qcm92aWRlcj5cbiAgKVxufVxuXG5BbGxPZi5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEFsbE9mXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQge1xuICB1c2VGbixcbiAgdXNlQ29tcG9uZW50LFxuICB1c2VJc0V4cGFuZGVkLFxuICB1c2VQYXRoLFxuICB1c2VMZXZlbCxcbn0gZnJvbSBcIi4uLy4uL2hvb2tzXCJcbmltcG9ydCB7IEpTT05TY2hlbWFMZXZlbENvbnRleHQsIEpTT05TY2hlbWFQYXRoQ29udGV4dCB9IGZyb20gXCIuLi8uLi9jb250ZXh0XCJcblxuY29uc3QgQW55T2YgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBhbnlPZiA9IHNjaGVtYT8uYW55T2YgfHwgW11cbiAgY29uc3QgZm4gPSB1c2VGbigpXG4gIGNvbnN0IHBhdGhUb2tlbiA9IFwiYW55T2ZcIlxuICBjb25zdCB7IHBhdGggfSA9IHVzZVBhdGgocGF0aFRva2VuKVxuICBjb25zdCB7IGlzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWQgfSA9IHVzZUlzRXhwYW5kZWQocGF0aFRva2VuKVxuICBjb25zdCBbbGV2ZWwsIG5leHRMZXZlbF0gPSB1c2VMZXZlbCgpXG4gIGNvbnN0IEFjY29yZGlvbiA9IHVzZUNvbXBvbmVudChcIkFjY29yZGlvblwiKVxuICBjb25zdCBFeHBhbmREZWVwQnV0dG9uID0gdXNlQ29tcG9uZW50KFwiRXhwYW5kRGVlcEJ1dHRvblwiKVxuICBjb25zdCBKU09OU2NoZW1hID0gdXNlQ29tcG9uZW50KFwiSlNPTlNjaGVtYVwiKVxuICBjb25zdCBLZXl3b3JkVHlwZSA9IHVzZUNvbXBvbmVudChcIktleXdvcmRUeXBlXCIpXG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXJzLlxuICAgKi9cbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChpc0V4cGFuZGVkKSB7XG4gICAgICBzZXRDb2xsYXBzZWQoKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRFeHBhbmRlZCgpXG4gICAgfVxuICB9LCBbaXNFeHBhbmRlZCwgc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZF0pXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvbkRlZXAgPSB1c2VDYWxsYmFjayhcbiAgICAoZSwgZXhwYW5kZWREZWVwTmV3KSA9PiB7XG4gICAgICBpZiAoZXhwYW5kZWREZWVwTmV3KSB7XG4gICAgICAgIHNldEV4cGFuZGVkKHsgZGVlcDogdHJ1ZSB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0Q29sbGFwc2VkKHsgZGVlcDogdHJ1ZSB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgW3NldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWRdXG4gIClcblxuICAvKipcbiAgICogUmVuZGVyaW5nLlxuICAgKi9cbiAgaWYgKCFBcnJheS5pc0FycmF5KGFueU9mKSB8fCBhbnlPZi5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8SlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwYXRofT5cbiAgICAgIDxKU09OU2NoZW1hTGV2ZWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtuZXh0TGV2ZWx9PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tYW55T2ZcIlxuICAgICAgICAgIGRhdGEtanNvbi1zY2hlbWEtbGV2ZWw9e2xldmVsfVxuICAgICAgICA+XG4gICAgICAgICAgPEFjY29yZGlvbiBleHBhbmRlZD17aXNFeHBhbmRlZH0gb25DaGFuZ2U9e2hhbmRsZUV4cGFuc2lvbn0+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5XCI+XG4gICAgICAgICAgICAgIEFueSBvZlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvQWNjb3JkaW9uPlxuICAgICAgICAgIDxFeHBhbmREZWVwQnV0dG9uXG4gICAgICAgICAgICBleHBhbmRlZD17aXNFeHBhbmRlZH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUV4cGFuc2lvbkRlZXB9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8S2V5d29yZFR5cGUgc2NoZW1hPXt7IGFueU9mIH19IC8+XG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuXCIsIHtcbiAgICAgICAgICAgICAgXCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWRcIjogIWlzRXhwYW5kZWQsXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aXNFeHBhbmRlZCAmJiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2FueU9mLm1hcCgoc2NoZW1hLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgIGtleT17YCMke2luZGV4fWB9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHlcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8SlNPTlNjaGVtYVxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2AjJHtpbmRleH0gJHtmbi5nZXRUaXRsZShzY2hlbWEpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgc2NoZW1hPXtzY2hlbWF9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0pTT05TY2hlbWFMZXZlbENvbnRleHQuUHJvdmlkZXI+XG4gICAgPC9KU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuQW55T2YucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBBbnlPZlxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcblxuaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSBcIi4uLy4uL3Byb3AtdHlwZXNcIlxuaW1wb3J0IHtcbiAgdXNlRm4sXG4gIHVzZUNvbXBvbmVudCxcbiAgdXNlSXNFeHBhbmRlZCxcbiAgdXNlUGF0aCxcbiAgdXNlTGV2ZWwsXG59IGZyb20gXCIuLi8uLi9ob29rc1wiXG5pbXBvcnQgeyBKU09OU2NoZW1hTGV2ZWxDb250ZXh0LCBKU09OU2NoZW1hUGF0aENvbnRleHQgfSBmcm9tIFwiLi4vLi4vY29udGV4dFwiXG5cbmNvbnN0IE9uZU9mID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgY29uc3Qgb25lT2YgPSBzY2hlbWE/Lm9uZU9mIHx8IFtdXG4gIGNvbnN0IGZuID0gdXNlRm4oKVxuICBjb25zdCBwYXRoVG9rZW4gPSBcIm9uZU9mXCJcbiAgY29uc3QgeyBwYXRoIH0gPSB1c2VQYXRoKHBhdGhUb2tlbilcbiAgY29uc3QgeyBpc0V4cGFuZGVkLCBzZXRFeHBhbmRlZCwgc2V0Q29sbGFwc2VkIH0gPSB1c2VJc0V4cGFuZGVkKHBhdGhUb2tlbilcbiAgY29uc3QgW2xldmVsLCBuZXh0TGV2ZWxdID0gdXNlTGV2ZWwoKVxuICBjb25zdCBBY2NvcmRpb24gPSB1c2VDb21wb25lbnQoXCJBY2NvcmRpb25cIilcbiAgY29uc3QgRXhwYW5kRGVlcEJ1dHRvbiA9IHVzZUNvbXBvbmVudChcIkV4cGFuZERlZXBCdXR0b25cIilcbiAgY29uc3QgSlNPTlNjaGVtYSA9IHVzZUNvbXBvbmVudChcIkpTT05TY2hlbWFcIilcbiAgY29uc3QgS2V5d29yZFR5cGUgPSB1c2VDb21wb25lbnQoXCJLZXl3b3JkVHlwZVwiKVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVycy5cbiAgICovXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoaXNFeHBhbmRlZCkge1xuICAgICAgc2V0Q29sbGFwc2VkKClcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RXhwYW5kZWQoKVxuICAgIH1cbiAgfSwgW2lzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWRdKVxuICBjb25zdCBoYW5kbGVFeHBhbnNpb25EZWVwID0gdXNlQ2FsbGJhY2soXG4gICAgKGUsIGV4cGFuZGVkRGVlcE5ldykgPT4ge1xuICAgICAgaWYgKGV4cGFuZGVkRGVlcE5ldykge1xuICAgICAgICBzZXRFeHBhbmRlZCh7IGRlZXA6IHRydWUgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldENvbGxhcHNlZCh7IGRlZXA6IHRydWUgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZXRFeHBhbmRlZCwgc2V0Q29sbGFwc2VkXVxuICApXG5cbiAgLyoqXG4gICAqIFJlbmRlcmluZy5cbiAgICovXG4gIGlmICghQXJyYXkuaXNBcnJheShvbmVPZikgfHwgb25lT2YubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEpTT05TY2hlbWFQYXRoQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cGF0aH0+XG4gICAgICA8SlNPTlNjaGVtYUxldmVsQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bmV4dExldmVsfT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLW9uZU9mXCJcbiAgICAgICAgICBkYXRhLWpzb24tc2NoZW1hLWxldmVsPXtsZXZlbH1cbiAgICAgICAgPlxuICAgICAgICAgIDxBY2NvcmRpb24gZXhwYW5kZWQ9e2lzRXhwYW5kZWR9IG9uQ2hhbmdlPXtoYW5kbGVFeHBhbnNpb259PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeVwiPlxuICAgICAgICAgICAgICBPbmUgb2ZcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L0FjY29yZGlvbj5cbiAgICAgICAgICA8RXhwYW5kRGVlcEJ1dHRvblxuICAgICAgICAgICAgZXhwYW5kZWQ9e2lzRXhwYW5kZWR9XG4gICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVFeHBhbnNpb25EZWVwfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEtleXdvcmRUeXBlIHNjaGVtYT17eyBvbmVPZiB9fSAvPlxuICAgICAgICAgIDx1bFxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlblwiLCB7XG4gICAgICAgICAgICAgIFwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkXCI6ICFpc0V4cGFuZGVkLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lzRXhwYW5kZWQgJiYgKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtvbmVPZi5tYXAoKHNjaGVtYSwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICBrZXk9e2AjJHtpbmRleH1gfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPEpTT05TY2hlbWFcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtgIyR7aW5kZXh9ICR7Zm4uZ2V0VGl0bGUoc2NoZW1hKX1gfVxuICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYT17c2NoZW1hfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9KU09OU2NoZW1hTGV2ZWxDb250ZXh0LlByb3ZpZGVyPlxuICAgIDwvSlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbk9uZU9mLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgT25lT2ZcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VGbiwgdXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2hvb2tzXCJcblxuY29uc3QgTm90ID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgY29uc3QgZm4gPSB1c2VGbigpXG4gIGNvbnN0IEpTT05TY2hlbWEgPSB1c2VDb21wb25lbnQoXCJKU09OU2NoZW1hXCIpXG5cbiAgLyoqXG4gICAqIFJlbmRlcmluZy5cbiAgICovXG4gIGlmICghZm4uaGFzS2V5d29yZChzY2hlbWEsIFwibm90XCIpKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IG5hbWUgPSAoXG4gICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeVwiPlxuICAgICAgTm90XG4gICAgPC9zcGFuPlxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLW5vdFwiPlxuICAgICAgPEpTT05TY2hlbWEgbmFtZT17bmFtZX0gc2NoZW1hPXtzY2hlbWEubm90fSBpZGVudGlmaWVyPVwibm90XCIgLz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5Ob3QucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBOb3RcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VGbiwgdXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2hvb2tzXCJcblxuY29uc3QgSWYgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBmbiA9IHVzZUZuKClcbiAgY29uc3QgSlNPTlNjaGVtYSA9IHVzZUNvbXBvbmVudChcIkpTT05TY2hlbWFcIilcblxuICAvKipcbiAgICogUmVuZGVyaW5nLlxuICAgKi9cbiAgaWYgKCFmbi5oYXNLZXl3b3JkKHNjaGVtYSwgXCJpZlwiKSkgcmV0dXJuIG51bGxcblxuICBjb25zdCBuYW1lID0gKFxuICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnlcIj5cbiAgICAgIElmXG4gICAgPC9zcGFuPlxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWlmXCI+XG4gICAgICA8SlNPTlNjaGVtYSBuYW1lPXtuYW1lfSBzY2hlbWE9e3NjaGVtYS5pZn0gaWRlbnRpZmllcj1cImlmXCIgLz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5JZi5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IElmXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcblxuaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSBcIi4uLy4uL3Byb3AtdHlwZXNcIlxuaW1wb3J0IHsgdXNlRm4sIHVzZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9ob29rc1wiXG5cbmNvbnN0IFRoZW4gPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBmbiA9IHVzZUZuKClcbiAgY29uc3QgSlNPTlNjaGVtYSA9IHVzZUNvbXBvbmVudChcIkpTT05TY2hlbWFcIilcblxuICAvKipcbiAgICogUmVuZGVyaW5nLlxuICAgKi9cbiAgaWYgKCFmbi5oYXNLZXl3b3JkKHNjaGVtYSwgXCJ0aGVuXCIpKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IG5hbWUgPSAoXG4gICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeVwiPlxuICAgICAgVGhlblxuICAgIDwvc3Bhbj5cbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS10aGVuXCI+XG4gICAgICA8SlNPTlNjaGVtYSBuYW1lPXtuYW1lfSBzY2hlbWE9e3NjaGVtYS50aGVufSBpZGVudGlmaWVyPVwidGhlblwiIC8+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuVGhlbi5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFRoZW5cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VGbiwgdXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2hvb2tzXCJcblxuY29uc3QgRWxzZSA9ICh7IHNjaGVtYSB9KSA9PiB7XG4gIGNvbnN0IGZuID0gdXNlRm4oKVxuICBjb25zdCBKU09OU2NoZW1hID0gdXNlQ29tcG9uZW50KFwiSlNPTlNjaGVtYVwiKVxuXG4gIC8qKlxuICAgKiBSZW5kZXJpbmcuXG4gICAqL1xuICBpZiAoIWZuLmhhc0tleXdvcmQoc2NoZW1hLCBcImVsc2VcIikpIHJldHVybiBudWxsXG5cbiAgY29uc3QgbmFtZSA9IChcbiAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5XCI+XG4gICAgICBFbHNlXG4gICAgPC9zcGFuPlxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWlmXCI+XG4gICAgICA8SlNPTlNjaGVtYSBuYW1lPXtuYW1lfSBzY2hlbWE9e3NjaGVtYS5lbHNlfSBpZGVudGlmaWVyPVwiZWxzZVwiIC8+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuRWxzZS5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEVsc2VcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiXG5cbmltcG9ydCB7IHNjaGVtYSB9IGZyb20gXCIuLi8uLi9wcm9wLXR5cGVzXCJcbmltcG9ydCB7IHVzZUNvbXBvbmVudCwgdXNlSXNFeHBhbmRlZCwgdXNlTGV2ZWwsIHVzZVBhdGggfSBmcm9tIFwiLi4vLi4vaG9va3NcIlxuaW1wb3J0IHsgSlNPTlNjaGVtYUxldmVsQ29udGV4dCwgSlNPTlNjaGVtYVBhdGhDb250ZXh0IH0gZnJvbSBcIi4uLy4uL2NvbnRleHRcIlxuXG5jb25zdCBEZXBlbmRlbnRTY2hlbWFzID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgY29uc3QgZGVwZW5kZW50U2NoZW1hcyA9IHNjaGVtYT8uZGVwZW5kZW50U2NoZW1hcyB8fCBbXVxuICBjb25zdCBwYXRoVG9rZW4gPSBcImRlcGVuZGVudFNjaGVtYXNcIlxuICBjb25zdCB7IHBhdGggfSA9IHVzZVBhdGgocGF0aFRva2VuKVxuICBjb25zdCB7IGlzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWQgfSA9IHVzZUlzRXhwYW5kZWQocGF0aFRva2VuKVxuICBjb25zdCBbbGV2ZWwsIG5leHRMZXZlbF0gPSB1c2VMZXZlbCgpXG4gIGNvbnN0IEFjY29yZGlvbiA9IHVzZUNvbXBvbmVudChcIkFjY29yZGlvblwiKVxuICBjb25zdCBFeHBhbmREZWVwQnV0dG9uID0gdXNlQ29tcG9uZW50KFwiRXhwYW5kRGVlcEJ1dHRvblwiKVxuICBjb25zdCBKU09OU2NoZW1hID0gdXNlQ29tcG9uZW50KFwiSlNPTlNjaGVtYVwiKVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVycy5cbiAgICovXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoaXNFeHBhbmRlZCkge1xuICAgICAgc2V0Q29sbGFwc2VkKClcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RXhwYW5kZWQoKVxuICAgIH1cbiAgfSwgW2lzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWRdKVxuICBjb25zdCBoYW5kbGVFeHBhbnNpb25EZWVwID0gdXNlQ2FsbGJhY2soXG4gICAgKGUsIGV4cGFuZGVkRGVlcE5ldykgPT4ge1xuICAgICAgaWYgKGV4cGFuZGVkRGVlcE5ldykge1xuICAgICAgICBzZXRFeHBhbmRlZCh7IGRlZXA6IHRydWUgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldENvbGxhcHNlZCh7IGRlZXA6IHRydWUgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZXRFeHBhbmRlZCwgc2V0Q29sbGFwc2VkXVxuICApXG5cbiAgLyoqXG4gICAqIFJlbmRlcmluZy5cbiAgICovXG4gIGlmICh0eXBlb2YgZGVwZW5kZW50U2NoZW1hcyAhPT0gXCJvYmplY3RcIikgcmV0dXJuIG51bGxcbiAgaWYgKE9iamVjdC5rZXlzKGRlcGVuZGVudFNjaGVtYXMpLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxKU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3BhdGh9PlxuICAgICAgPEpTT05TY2hlbWFMZXZlbENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e25leHRMZXZlbH0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kZXBlbmRlbnRTY2hlbWFzXCJcbiAgICAgICAgICBkYXRhLWpzb24tc2NoZW1hLWxldmVsPXtsZXZlbH1cbiAgICAgICAgPlxuICAgICAgICAgIDxBY2NvcmRpb24gZXhwYW5kZWQ9e2lzRXhwYW5kZWR9IG9uQ2hhbmdlPXtoYW5kbGVFeHBhbnNpb259PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeVwiPlxuICAgICAgICAgICAgICBEZXBlbmRlbnQgc2NoZW1hc1xuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvQWNjb3JkaW9uPlxuICAgICAgICAgIDxFeHBhbmREZWVwQnV0dG9uXG4gICAgICAgICAgICBleHBhbmRlZD17aXNFeHBhbmRlZH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUV4cGFuc2lvbkRlZXB9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnlcIj5cbiAgICAgICAgICAgIG9iamVjdFxuICAgICAgICAgIDwvc3Ryb25nPlxuICAgICAgICAgIDx1bFxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlblwiLCB7XG4gICAgICAgICAgICAgIFwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkXCI6ICFpc0V4cGFuZGVkLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lzRXhwYW5kZWQgJiYgKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtPYmplY3QuZW50cmllcyhkZXBlbmRlbnRTY2hlbWFzKS5tYXAoXG4gICAgICAgICAgICAgICAgICAoW3NjaGVtYU5hbWUsIHNjaGVtYV0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtzY2hlbWFOYW1lfVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHlcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPEpTT05TY2hlbWEgbmFtZT17c2NoZW1hTmFtZX0gc2NoZW1hPXtzY2hlbWF9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9KU09OU2NoZW1hTGV2ZWxDb250ZXh0LlByb3ZpZGVyPlxuICAgIDwvSlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbkRlcGVuZGVudFNjaGVtYXMucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBEZXBlbmRlbnRTY2hlbWFzXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQge1xuICB1c2VGbixcbiAgdXNlQ29tcG9uZW50LFxuICB1c2VJc0V4cGFuZGVkLFxuICB1c2VQYXRoLFxuICB1c2VMZXZlbCxcbn0gZnJvbSBcIi4uLy4uL2hvb2tzXCJcbmltcG9ydCB7IEpTT05TY2hlbWFMZXZlbENvbnRleHQsIEpTT05TY2hlbWFQYXRoQ29udGV4dCB9IGZyb20gXCIuLi8uLi9jb250ZXh0XCJcblxuY29uc3QgUHJlZml4SXRlbXMgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBwcmVmaXhJdGVtcyA9IHNjaGVtYT8ucHJlZml4SXRlbXMgfHwgW11cbiAgY29uc3QgZm4gPSB1c2VGbigpXG4gIGNvbnN0IHBhdGhUb2tlbiA9IFwicHJlZml4SXRlbXNcIlxuICBjb25zdCB7IHBhdGggfSA9IHVzZVBhdGgocGF0aFRva2VuKVxuICBjb25zdCB7IGlzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWQgfSA9IHVzZUlzRXhwYW5kZWQocGF0aFRva2VuKVxuICBjb25zdCBbbGV2ZWwsIG5leHRMZXZlbF0gPSB1c2VMZXZlbCgpXG4gIGNvbnN0IEFjY29yZGlvbiA9IHVzZUNvbXBvbmVudChcIkFjY29yZGlvblwiKVxuICBjb25zdCBFeHBhbmREZWVwQnV0dG9uID0gdXNlQ29tcG9uZW50KFwiRXhwYW5kRGVlcEJ1dHRvblwiKVxuICBjb25zdCBKU09OU2NoZW1hID0gdXNlQ29tcG9uZW50KFwiSlNPTlNjaGVtYVwiKVxuICBjb25zdCBLZXl3b3JkVHlwZSA9IHVzZUNvbXBvbmVudChcIktleXdvcmRUeXBlXCIpXG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXJzLlxuICAgKi9cbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChpc0V4cGFuZGVkKSB7XG4gICAgICBzZXRDb2xsYXBzZWQoKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRFeHBhbmRlZCgpXG4gICAgfVxuICB9LCBbaXNFeHBhbmRlZCwgc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZF0pXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvbkRlZXAgPSB1c2VDYWxsYmFjayhcbiAgICAoZSwgZXhwYW5kZWREZWVwTmV3KSA9PiB7XG4gICAgICBpZiAoZXhwYW5kZWREZWVwTmV3KSB7XG4gICAgICAgIHNldEV4cGFuZGVkKHsgZGVlcDogdHJ1ZSB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0Q29sbGFwc2VkKHsgZGVlcDogdHJ1ZSB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgW3NldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWRdXG4gIClcblxuICAvKipcbiAgICogUmVuZGVyaW5nLlxuICAgKi9cbiAgaWYgKCFBcnJheS5pc0FycmF5KHByZWZpeEl0ZW1zKSB8fCBwcmVmaXhJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8SlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwYXRofT5cbiAgICAgIDxKU09OU2NoZW1hTGV2ZWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtuZXh0TGV2ZWx9PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tcHJlZml4SXRlbXNcIlxuICAgICAgICAgIGRhdGEtanNvbi1zY2hlbWEtbGV2ZWw9e2xldmVsfVxuICAgICAgICA+XG4gICAgICAgICAgPEFjY29yZGlvbiBleHBhbmRlZD17aXNFeHBhbmRlZH0gb25DaGFuZ2U9e2hhbmRsZUV4cGFuc2lvbn0+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5XCI+XG4gICAgICAgICAgICAgIFByZWZpeCBpdGVtc1xuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvQWNjb3JkaW9uPlxuICAgICAgICAgIDxFeHBhbmREZWVwQnV0dG9uXG4gICAgICAgICAgICBleHBhbmRlZD17aXNFeHBhbmRlZH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUV4cGFuc2lvbkRlZXB9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8S2V5d29yZFR5cGUgc2NoZW1hPXt7IHByZWZpeEl0ZW1zIH19IC8+XG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuXCIsIHtcbiAgICAgICAgICAgICAgXCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX2NoaWxkcmVuLS1jb2xsYXBzZWRcIjogIWlzRXhwYW5kZWQsXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aXNFeHBhbmRlZCAmJiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge3ByZWZpeEl0ZW1zLm1hcCgoc2NoZW1hLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgIGtleT17YCMke2luZGV4fWB9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHlcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8SlNPTlNjaGVtYVxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2AjJHtpbmRleH0gJHtmbi5nZXRUaXRsZShzY2hlbWEpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgc2NoZW1hPXtzY2hlbWF9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0pTT05TY2hlbWFMZXZlbENvbnRleHQuUHJvdmlkZXI+XG4gICAgPC9KU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuUHJlZml4SXRlbXMucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBQcmVmaXhJdGVtc1xuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IHNjaGVtYSB9IGZyb20gXCIuLi8uLi9wcm9wLXR5cGVzXCJcbmltcG9ydCB7IHVzZUZuLCB1c2VDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vaG9va3NcIlxuXG5jb25zdCBJdGVtcyA9ICh7IHNjaGVtYSB9KSA9PiB7XG4gIGNvbnN0IGZuID0gdXNlRm4oKVxuICBjb25zdCBKU09OU2NoZW1hID0gdXNlQ29tcG9uZW50KFwiSlNPTlNjaGVtYVwiKVxuXG4gIC8qKlxuICAgKiBSZW5kZXJpbmcuXG4gICAqL1xuICBpZiAoIWZuLmhhc0tleXdvcmQoc2NoZW1hLCBcIml0ZW1zXCIpKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IG5hbWUgPSAoXG4gICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeVwiPlxuICAgICAgSXRlbXNcbiAgICA8L3NwYW4+XG4gIClcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0taXRlbXNcIj5cbiAgICAgIDxKU09OU2NoZW1hIG5hbWU9e25hbWV9IHNjaGVtYT17c2NoZW1hLml0ZW1zfSBpZGVudGlmaWVyPVwiaXRlbXNcIiAvPlxuICAgIDwvZGl2PlxuICApXG59XG5cbkl0ZW1zLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgSXRlbXNcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VGbiwgdXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2hvb2tzXCJcblxuY29uc3QgQ29udGFpbnMgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBmbiA9IHVzZUZuKClcbiAgY29uc3QgSlNPTlNjaGVtYSA9IHVzZUNvbXBvbmVudChcIkpTT05TY2hlbWFcIilcblxuICAvKipcbiAgICogUmVuZGVyaW5nLlxuICAgKi9cbiAgaWYgKCFmbi5oYXNLZXl3b3JkKHNjaGVtYSwgXCJjb250YWluc1wiKSkgcmV0dXJuIG51bGxcblxuICBjb25zdCBuYW1lID0gKFxuICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnlcIj5cbiAgICAgIENvbnRhaW5zXG4gICAgPC9zcGFuPlxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWNvbnRhaW5zXCI+XG4gICAgICA8SlNPTlNjaGVtYSBuYW1lPXtuYW1lfSBzY2hlbWE9e3NjaGVtYS5jb250YWluc30gaWRlbnRpZmllcj1cImNvbnRhaW5zXCIgLz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5Db250YWlucy5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbnRhaW5zXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcblxuaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSBcIi4uLy4uLy4uL3Byb3AtdHlwZXNcIlxuaW1wb3J0IHsgdXNlRm4sIHVzZUNvbXBvbmVudCwgdXNlUGF0aCB9IGZyb20gXCIuLi8uLi8uLi9ob29rc1wiXG5pbXBvcnQgeyBKU09OU2NoZW1hUGF0aENvbnRleHQgfSBmcm9tIFwiLi4vLi4vLi4vY29udGV4dFwiXG5cbmNvbnN0IFByb3BlcnRpZXMgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBmbiA9IHVzZUZuKClcbiAgY29uc3QgcHJvcGVydGllcyA9IHNjaGVtYT8ucHJvcGVydGllcyB8fCB7fVxuICBjb25zdCByZXF1aXJlZCA9IEFycmF5LmlzQXJyYXkoc2NoZW1hPy5yZXF1aXJlZCkgPyBzY2hlbWEucmVxdWlyZWQgOiBbXVxuICBjb25zdCBKU09OU2NoZW1hID0gdXNlQ29tcG9uZW50KFwiSlNPTlNjaGVtYVwiKVxuICBjb25zdCB7IHBhdGggfSA9IHVzZVBhdGgoXCJwcm9wZXJ0aWVzXCIpXG5cbiAgLyoqXG4gICAqIFJlbmRlcmluZy5cbiAgICovXG4gIGlmIChPYmplY3Qua2V5cyhwcm9wZXJ0aWVzKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8SlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwYXRofT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tcHJvcGVydGllc1wiPlxuICAgICAgICA8dWw+XG4gICAgICAgICAge09iamVjdC5lbnRyaWVzKHByb3BlcnRpZXMpLm1hcCgoW3Byb3BlcnR5TmFtZSwgcHJvcGVydHlTY2hlbWFdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc1JlcXVpcmVkID0gcmVxdWlyZWQuaW5jbHVkZXMocHJvcGVydHlOYW1lKVxuICAgICAgICAgICAgY29uc3QgZGVwZW5kZW50UmVxdWlyZWQgPSBmbi5nZXREZXBlbmRlbnRSZXF1aXJlZChcbiAgICAgICAgICAgICAgcHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgICBzY2hlbWFcbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAga2V5PXtwcm9wZXJ0eU5hbWV9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eVwiLCB7XG4gICAgICAgICAgICAgICAgICBcImpzb24tc2NoZW1hLTIwMjAtMTItcHJvcGVydHktLXJlcXVpcmVkXCI6IGlzUmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8SlNPTlNjaGVtYVxuICAgICAgICAgICAgICAgICAgbmFtZT17cHJvcGVydHlOYW1lfVxuICAgICAgICAgICAgICAgICAgc2NoZW1hPXtwcm9wZXJ0eVNjaGVtYX1cbiAgICAgICAgICAgICAgICAgIGRlcGVuZGVudFJlcXVpcmVkPXtkZXBlbmRlbnRSZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0pfVxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgPC9KU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuUHJvcGVydGllcy5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFByb3BlcnRpZXNcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VDb21wb25lbnQsIHVzZVBhdGggfSBmcm9tIFwiLi4vLi4vLi4vaG9va3NcIlxuaW1wb3J0IHsgSlNPTlNjaGVtYVBhdGhDb250ZXh0IH0gZnJvbSBcIi4uLy4uLy4uL2NvbnRleHRcIlxuXG5jb25zdCBQYXR0ZXJuUHJvcGVydGllcyA9ICh7IHNjaGVtYSB9KSA9PiB7XG4gIGNvbnN0IHBhdHRlcm5Qcm9wZXJ0aWVzID0gc2NoZW1hPy5wYXR0ZXJuUHJvcGVydGllcyB8fCB7fVxuICBjb25zdCBKU09OU2NoZW1hID0gdXNlQ29tcG9uZW50KFwiSlNPTlNjaGVtYVwiKVxuICBjb25zdCB7IHBhdGggfSA9IHVzZVBhdGgoXCJwYXR0ZXJuUHJvcGVydGllc1wiKVxuXG4gIC8qKlxuICAgKiBSZW5kZXJpbmcuXG4gICAqL1xuICBpZiAoT2JqZWN0LmtleXMocGF0dGVyblByb3BlcnRpZXMpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxKU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3BhdGh9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1wYXR0ZXJuUHJvcGVydGllc1wiPlxuICAgICAgICA8dWw+XG4gICAgICAgICAge09iamVjdC5lbnRyaWVzKHBhdHRlcm5Qcm9wZXJ0aWVzKS5tYXAoKFtwcm9wZXJ0eU5hbWUsIHNjaGVtYV0pID0+IChcbiAgICAgICAgICAgIDxsaSBrZXk9e3Byb3BlcnR5TmFtZX0gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1wcm9wZXJ0eVwiPlxuICAgICAgICAgICAgICA8SlNPTlNjaGVtYSBuYW1lPXtwcm9wZXJ0eU5hbWV9IHNjaGVtYT17c2NoZW1hfSAvPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgIDwvSlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cblBhdHRlcm5Qcm9wZXJ0aWVzLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgUGF0dGVyblByb3BlcnRpZXNcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VGbiwgdXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2hvb2tzXCJcblxuY29uc3QgQWRkaXRpb25hbFByb3BlcnRpZXMgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBmbiA9IHVzZUZuKClcbiAgY29uc3QgSlNPTlNjaGVtYSA9IHVzZUNvbXBvbmVudChcIkpTT05TY2hlbWFcIilcblxuICBpZiAoIWZuLmhhc0tleXdvcmQoc2NoZW1hLCBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCIpKSByZXR1cm4gbnVsbFxuXG4gIC8qKlxuICAgKiBSZW5kZXJpbmcuXG4gICAqL1xuICBjb25zdCBuYW1lID0gKFxuICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUtLXByaW1hcnlcIj5cbiAgICAgIEFkZGl0aW9uYWwgcHJvcGVydGllc1xuICAgIDwvc3Bhbj5cbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1hZGRpdGlvbmFsUHJvcGVydGllc1wiPlxuICAgICAge3NjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcyA9PT0gdHJ1ZSA/IChcbiAgICAgICAgPD5cbiAgICAgICAgICB7bmFtZX1cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1wcmltYXJ5XCI+XG4gICAgICAgICAgICBhbGxvd2VkXG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8Lz5cbiAgICAgICkgOiBzY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXMgPT09IGZhbHNlID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIHtuYW1lfVxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnlcIj5cbiAgICAgICAgICAgIGZvcmJpZGRlblxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC8+XG4gICAgICApIDogKFxuICAgICAgICA8SlNPTlNjaGVtYVxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgc2NoZW1hPXtzY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXN9XG4gICAgICAgICAgaWRlbnRpZmllcj1cImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCJcbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gIClcbn1cblxuQWRkaXRpb25hbFByb3BlcnRpZXMucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBBZGRpdGlvbmFsUHJvcGVydGllc1xuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IHNjaGVtYSB9IGZyb20gXCIuLi8uLi9wcm9wLXR5cGVzXCJcbmltcG9ydCB7IHVzZUZuLCB1c2VDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vaG9va3NcIlxuXG5jb25zdCBQcm9wZXJ0eU5hbWVzID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgY29uc3QgZm4gPSB1c2VGbigpXG4gIGNvbnN0IEpTT05TY2hlbWEgPSB1c2VDb21wb25lbnQoXCJKU09OU2NoZW1hXCIpXG4gIGNvbnN0IG5hbWUgPSAoXG4gICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeVwiPlxuICAgICAgUHJvcGVydHkgbmFtZXNcbiAgICA8L3NwYW4+XG4gIClcblxuICAvKipcbiAgICogUmVuZGVyaW5nLlxuICAgKi9cbiAgaWYgKCFmbi5oYXNLZXl3b3JkKHNjaGVtYSwgXCJwcm9wZXJ0eU5hbWVzXCIpKSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1wcm9wZXJ0eU5hbWVzXCI+XG4gICAgICA8SlNPTlNjaGVtYVxuICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICBzY2hlbWE9e3NjaGVtYS5wcm9wZXJ0eU5hbWVzfVxuICAgICAgICBpZGVudGlmaWVyPVwicHJvcGVydHlOYW1lc1wiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApXG59XG5cblByb3BlcnR5TmFtZXMucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBQcm9wZXJ0eU5hbWVzXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcblxuaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSBcIi4uLy4uL3Byb3AtdHlwZXNcIlxuaW1wb3J0IHsgdXNlRm4sIHVzZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9ob29rc1wiXG5cbmNvbnN0IFVuZXZhbHVhdGVkSXRlbXMgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBmbiA9IHVzZUZuKClcbiAgY29uc3QgSlNPTlNjaGVtYSA9IHVzZUNvbXBvbmVudChcIkpTT05TY2hlbWFcIilcblxuICAvKipcbiAgICogUmVuZGVyaW5nLlxuICAgKi9cbiAgaWYgKCFmbi5oYXNLZXl3b3JkKHNjaGVtYSwgXCJ1bmV2YWx1YXRlZEl0ZW1zXCIpKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IG5hbWUgPSAoXG4gICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeVwiPlxuICAgICAgVW5ldmFsdWF0ZWQgaXRlbXNcbiAgICA8L3NwYW4+XG4gIClcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tdW5ldmFsdWF0ZWRJdGVtc1wiPlxuICAgICAgPEpTT05TY2hlbWFcbiAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgc2NoZW1hPXtzY2hlbWEudW5ldmFsdWF0ZWRJdGVtc31cbiAgICAgICAgaWRlbnRpZmllcj1cInVuZXZhbHVhdGVkSXRlbXNcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5VbmV2YWx1YXRlZEl0ZW1zLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgVW5ldmFsdWF0ZWRJdGVtc1xuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IHNjaGVtYSB9IGZyb20gXCIuLi8uLi9wcm9wLXR5cGVzXCJcbmltcG9ydCB7IHVzZUZuLCB1c2VDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vaG9va3NcIlxuXG5jb25zdCBVbmV2YWx1YXRlZFByb3BlcnRpZXMgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBmbiA9IHVzZUZuKClcbiAgY29uc3QgSlNPTlNjaGVtYSA9IHVzZUNvbXBvbmVudChcIkpTT05TY2hlbWFcIilcblxuICAvKipcbiAgICogUmVuZGVyaW5nLlxuICAgKi9cbiAgaWYgKCFmbi5oYXNLZXl3b3JkKHNjaGVtYSwgXCJ1bmV2YWx1YXRlZFByb3BlcnRpZXNcIikpIHJldHVybiBudWxsXG5cbiAgY29uc3QgbmFtZSA9IChcbiAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5XCI+XG4gICAgICBVbmV2YWx1YXRlZCBwcm9wZXJ0aWVzXG4gICAgPC9zcGFuPlxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLXVuZXZhbHVhdGVkUHJvcGVydGllc1wiPlxuICAgICAgPEpTT05TY2hlbWFcbiAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgc2NoZW1hPXtzY2hlbWEudW5ldmFsdWF0ZWRQcm9wZXJ0aWVzfVxuICAgICAgICBpZGVudGlmaWVyPVwidW5ldmFsdWF0ZWRQcm9wZXJ0aWVzXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VGbiB9IGZyb20gXCIuLi8uLi9ob29rc1wiXG5cbmNvbnN0IFR5cGUgPSAoeyBzY2hlbWEsIGlzQ2lyY3VsYXIgPSBmYWxzZSB9KSA9PiB7XG4gIGNvbnN0IGZuID0gdXNlRm4oKVxuICBjb25zdCB0eXBlID0gZm4uZ2V0VHlwZShzY2hlbWEpXG4gIGNvbnN0IGNpcmN1bGFyU3VmZml4ID0gaXNDaXJjdWxhciA/IFwiIFtjaXJjdWxhcl1cIiA6IFwiXCJcblxuICByZXR1cm4gKFxuICAgIDxzdHJvbmcgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeVwiPlxuICAgICAge2Ake3R5cGV9JHtjaXJjdWxhclN1ZmZpeH1gfVxuICAgIDwvc3Ryb25nPlxuICApXG59XG5cblR5cGUucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxuICBpc0NpcmN1bGFyOiBQcm9wVHlwZXMuYm9vbCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgVHlwZVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IHNjaGVtYSB9IGZyb20gXCIuLi8uLi8uLi9wcm9wLXR5cGVzXCJcbmltcG9ydCB7IHVzZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi8uLi9ob29rc1wiXG5cbmNvbnN0IEVudW0gPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBKU09OVmlld2VyID0gdXNlQ29tcG9uZW50KFwiSlNPTlZpZXdlclwiKVxuXG4gIGlmICghQXJyYXkuaXNBcnJheShzY2hlbWE/LmVudW0pKSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPEpTT05WaWV3ZXJcbiAgICAgIG5hbWU9XCJFbnVtXCJcbiAgICAgIHZhbHVlPXtzY2hlbWEuZW51bX1cbiAgICAgIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZCBqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQtLWVudW1cIlxuICAgIC8+XG4gIClcbn1cblxuRW51bS5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEVudW1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VDb21wb25lbnQsIHVzZUZuIH0gZnJvbSBcIi4uLy4uLy4uL2hvb2tzXCJcblxuY29uc3QgQ29uc3QgPSAoeyBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBmbiA9IHVzZUZuKClcbiAgY29uc3QgSlNPTlZpZXdlciA9IHVzZUNvbXBvbmVudChcIkpTT05WaWV3ZXJcIilcblxuICBpZiAoIWZuLmhhc0tleXdvcmQoc2NoZW1hLCBcImNvbnN0XCIpKSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPEpTT05WaWV3ZXJcbiAgICAgIG5hbWU9XCJDb25zdFwiXG4gICAgICB2YWx1ZT17c2NoZW1hLmNvbnN0fVxuICAgICAgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZC0tY29uc3RcIlxuICAgIC8+XG4gIClcbn1cblxuQ29uc3QucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBDb25zdFxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgTGlzdCwgTWFwIH0gZnJvbSBcImltbXV0YWJsZVwiXG5cbmV4cG9ydCBjb25zdCB1cHBlckZpcnN0ID0gKHZhbHVlKSA9PiB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gYCR7dmFsdWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHt2YWx1ZS5zbGljZSgxKX1gXG4gIH1cbiAgcmV0dXJuIHZhbHVlXG59XG5cbi8qKlxuICogTG9va3VwIGNhbiBiZSBgYmFzaWNgIG9yIGBleHRlbmRlZGAuIEJ5IGRlZmF1bHQgdGhlIGxvb2t1cCBpcyBgZXh0ZW5kZWRgLlxuICovXG5leHBvcnQgY29uc3QgbWFrZUdldFRpdGxlID0gKGZuQWNjZXNzb3IpID0+IHtcbiAgY29uc3QgZ2V0VGl0bGUgPSAoc2NoZW1hLCB7IGxvb2t1cCA9IFwiZXh0ZW5kZWRcIiB9ID0ge30pID0+IHtcbiAgICBjb25zdCBmbiA9IGZuQWNjZXNzb3IoKVxuXG4gICAgaWYgKHNjaGVtYT8udGl0bGUgIT0gbnVsbCkgcmV0dXJuIGZuLnVwcGVyRmlyc3QoU3RyaW5nKHNjaGVtYS50aXRsZSkpXG4gICAgaWYgKGxvb2t1cCA9PT0gXCJleHRlbmRlZFwiKSB7XG4gICAgICBpZiAoc2NoZW1hPy4kYW5jaG9yICE9IG51bGwpIHJldHVybiBmbi51cHBlckZpcnN0KFN0cmluZyhzY2hlbWEuJGFuY2hvcikpXG4gICAgICBpZiAoc2NoZW1hPy4kaWQgIT0gbnVsbCkgcmV0dXJuIFN0cmluZyhzY2hlbWEuJGlkKVxuICAgIH1cblxuICAgIHJldHVybiBcIlwiXG4gIH1cblxuICByZXR1cm4gZ2V0VGl0bGVcbn1cblxuZXhwb3J0IGNvbnN0IG1ha2VHZXRUeXBlID0gKGZuQWNjZXNzb3IpID0+IHtcbiAgY29uc3QgZ2V0VHlwZSA9IChzY2hlbWEsIHByb2Nlc3NlZFNjaGVtYXMgPSBuZXcgV2Vha1NldCgpKSA9PiB7XG4gICAgY29uc3QgZm4gPSBmbkFjY2Vzc29yKClcblxuICAgIGlmIChzY2hlbWEgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFwiYW55XCJcbiAgICB9XG5cbiAgICBpZiAoZm4uaXNCb29sZWFuSlNPTlNjaGVtYShzY2hlbWEpKSB7XG4gICAgICByZXR1cm4gc2NoZW1hID8gXCJhbnlcIiA6IFwibmV2ZXJcIlxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygc2NoZW1hICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICByZXR1cm4gXCJhbnlcIlxuICAgIH1cblxuICAgIGlmIChwcm9jZXNzZWRTY2hlbWFzLmhhcyhzY2hlbWEpKSB7XG4gICAgICByZXR1cm4gXCJhbnlcIiAvLyBkZXRlY3QgYSBjeWNsZVxuICAgIH1cbiAgICBwcm9jZXNzZWRTY2hlbWFzLmFkZChzY2hlbWEpXG5cbiAgICBjb25zdCB7IHR5cGUsIHByZWZpeEl0ZW1zLCBpdGVtcyB9ID0gc2NoZW1hXG5cbiAgICBjb25zdCBnZXRBcnJheVR5cGUgPSAoKSA9PiB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShwcmVmaXhJdGVtcykpIHtcbiAgICAgICAgY29uc3QgcHJlZml4SXRlbXNUeXBlcyA9IHByZWZpeEl0ZW1zLm1hcCgoaXRlbVNjaGVtYSkgPT5cbiAgICAgICAgICBnZXRUeXBlKGl0ZW1TY2hlbWEsIHByb2Nlc3NlZFNjaGVtYXMpXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgaXRlbXNUeXBlID0gaXRlbXMgPyBnZXRUeXBlKGl0ZW1zLCBwcm9jZXNzZWRTY2hlbWFzKSA6IFwiYW55XCJcbiAgICAgICAgcmV0dXJuIGBhcnJheTxbJHtwcmVmaXhJdGVtc1R5cGVzLmpvaW4oXCIsIFwiKX1dLCAke2l0ZW1zVHlwZX0+YFxuICAgICAgfSBlbHNlIGlmIChpdGVtcykge1xuICAgICAgICBjb25zdCBpdGVtc1R5cGUgPSBnZXRUeXBlKGl0ZW1zLCBwcm9jZXNzZWRTY2hlbWFzKVxuICAgICAgICByZXR1cm4gYGFycmF5PCR7aXRlbXNUeXBlfT5gXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gXCJhcnJheTxhbnk+XCJcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBpbmZlclR5cGUgPSAoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIE9iamVjdC5oYXNPd24oc2NoZW1hLCBcInByZWZpeEl0ZW1zXCIpIHx8XG4gICAgICAgIE9iamVjdC5oYXNPd24oc2NoZW1hLCBcIml0ZW1zXCIpIHx8XG4gICAgICAgIE9iamVjdC5oYXNPd24oc2NoZW1hLCBcImNvbnRhaW5zXCIpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGdldEFycmF5VHlwZSgpXG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBPYmplY3QuaGFzT3duKHNjaGVtYSwgXCJwcm9wZXJ0aWVzXCIpIHx8XG4gICAgICAgIE9iamVjdC5oYXNPd24oc2NoZW1hLCBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCIpIHx8XG4gICAgICAgIE9iamVjdC5oYXNPd24oc2NoZW1hLCBcInBhdHRlcm5Qcm9wZXJ0aWVzXCIpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIFwib2JqZWN0XCJcbiAgICAgIH0gZWxzZSBpZiAoW1wiaW50MzJcIiwgXCJpbnQ2NFwiXS5pbmNsdWRlcyhzY2hlbWEuZm9ybWF0KSkge1xuICAgICAgICAvLyBPcGVuQVBJIDMuMS4wIGludGVnZXIgY3VzdG9tIGZvcm1hdHNcbiAgICAgICAgcmV0dXJuIFwiaW50ZWdlclwiXG4gICAgICB9IGVsc2UgaWYgKFtcImZsb2F0XCIsIFwiZG91YmxlXCJdLmluY2x1ZGVzKHNjaGVtYS5mb3JtYXQpKSB7XG4gICAgICAgIC8vIE9wZW5BUEkgMy4xLjAgbnVtYmVyIGN1c3RvbSBmb3JtYXRzXG4gICAgICAgIHJldHVybiBcIm51bWJlclwiXG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBPYmplY3QuaGFzT3duKHNjaGVtYSwgXCJtaW5pbXVtXCIpIHx8XG4gICAgICAgIE9iamVjdC5oYXNPd24oc2NoZW1hLCBcIm1heGltdW1cIikgfHxcbiAgICAgICAgT2JqZWN0Lmhhc093bihzY2hlbWEsIFwiZXhjbHVzaXZlTWluaW11bVwiKSB8fFxuICAgICAgICBPYmplY3QuaGFzT3duKHNjaGVtYSwgXCJleGNsdXNpdmVNYXhpbXVtXCIpIHx8XG4gICAgICAgIE9iamVjdC5oYXNPd24oc2NoZW1hLCBcIm11bHRpcGxlT2ZcIilcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gXCJudW1iZXIgfCBpbnRlZ2VyXCJcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIE9iamVjdC5oYXNPd24oc2NoZW1hLCBcInBhdHRlcm5cIikgfHxcbiAgICAgICAgT2JqZWN0Lmhhc093bihzY2hlbWEsIFwiZm9ybWF0XCIpIHx8XG4gICAgICAgIE9iamVjdC5oYXNPd24oc2NoZW1hLCBcIm1pbkxlbmd0aFwiKSB8fFxuICAgICAgICBPYmplY3QuaGFzT3duKHNjaGVtYSwgXCJtYXhMZW5ndGhcIikgfHxcbiAgICAgICAgT2JqZWN0Lmhhc093bihzY2hlbWEsIFwiY29udGVudEVuY29kaW5nXCIpIHx8XG4gICAgICAgIE9iamVjdC5oYXNPd24oc2NoZW1hLCBcImNvbnRlbnRNZWRpYVR5cGVcIilcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gXCJzdHJpbmdcIlxuICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc2NoZW1hLmNvbnN0ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIGlmIChzY2hlbWEuY29uc3QgPT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gXCJudWxsXCJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc2NoZW1hLmNvbnN0ID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgIHJldHVybiBcImJvb2xlYW5cIlxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzY2hlbWEuY29uc3QgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICByZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihzY2hlbWEuY29uc3QpID8gXCJpbnRlZ2VyXCIgOiBcIm51bWJlclwiXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHNjaGVtYS5jb25zdCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIHJldHVybiBcInN0cmluZ1wiXG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEuY29uc3QpKSB7XG4gICAgICAgICAgcmV0dXJuIFwiYXJyYXk8YW55PlwiXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHNjaGVtYS5jb25zdCA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgIHJldHVybiBcIm9iamVjdFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgaWYgKHNjaGVtYS5ub3QgJiYgZ2V0VHlwZShzY2hlbWEubm90KSA9PT0gXCJhbnlcIikge1xuICAgICAgcmV0dXJuIFwibmV2ZXJcIlxuICAgIH1cblxuICAgIGNvbnN0IHR5cGVTdHJpbmcgPSBBcnJheS5pc0FycmF5KHR5cGUpXG4gICAgICA/IHR5cGUubWFwKCh0KSA9PiAodCA9PT0gXCJhcnJheVwiID8gZ2V0QXJyYXlUeXBlKCkgOiB0KSkuam9pbihcIiB8IFwiKVxuICAgICAgOiB0eXBlID09PSBcImFycmF5XCJcbiAgICAgICAgPyBnZXRBcnJheVR5cGUoKVxuICAgICAgICA6IFtcbiAgICAgICAgICAgICAgXCJudWxsXCIsXG4gICAgICAgICAgICAgIFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICBcImFycmF5XCIsXG4gICAgICAgICAgICAgIFwibnVtYmVyXCIsXG4gICAgICAgICAgICAgIFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXS5pbmNsdWRlcyh0eXBlKVxuICAgICAgICAgID8gdHlwZVxuICAgICAgICAgIDogaW5mZXJUeXBlKClcblxuICAgIGNvbnN0IGhhbmRsZUNvbWJpbmluZ0tleXdvcmRzID0gKGtleXdvcmQsIHNlcGFyYXRvcikgPT4ge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hW2tleXdvcmRdKSkge1xuICAgICAgICBjb25zdCBjb21iaW5lZFR5cGVzID0gc2NoZW1hW2tleXdvcmRdLm1hcCgoc3ViU2NoZW1hKSA9PlxuICAgICAgICAgIGdldFR5cGUoc3ViU2NoZW1hLCBwcm9jZXNzZWRTY2hlbWFzKVxuICAgICAgICApXG4gICAgICAgIHJldHVybiBgKCR7Y29tYmluZWRUeXBlcy5qb2luKHNlcGFyYXRvcil9KWBcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29uc3Qgb25lT2ZTdHJpbmcgPSBoYW5kbGVDb21iaW5pbmdLZXl3b3JkcyhcIm9uZU9mXCIsIFwiIHwgXCIpXG4gICAgY29uc3QgYW55T2ZTdHJpbmcgPSBoYW5kbGVDb21iaW5pbmdLZXl3b3JkcyhcImFueU9mXCIsIFwiIHwgXCIpXG4gICAgY29uc3QgYWxsT2ZTdHJpbmcgPSBoYW5kbGVDb21iaW5pbmdLZXl3b3JkcyhcImFsbE9mXCIsIFwiICYgXCIpXG5cbiAgICBjb25zdCBjb21iaW5lZFN0cmluZ3MgPSBbdHlwZVN0cmluZywgb25lT2ZTdHJpbmcsIGFueU9mU3RyaW5nLCBhbGxPZlN0cmluZ11cbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgIC5qb2luKFwiIHwgXCIpXG5cbiAgICBwcm9jZXNzZWRTY2hlbWFzLmRlbGV0ZShzY2hlbWEpXG5cbiAgICByZXR1cm4gY29tYmluZWRTdHJpbmdzIHx8IFwiYW55XCJcbiAgfVxuXG4gIHJldHVybiBnZXRUeXBlXG59XG5cbmV4cG9ydCBjb25zdCBpc0Jvb2xlYW5KU09OU2NoZW1hID0gKHNjaGVtYSkgPT4gdHlwZW9mIHNjaGVtYSA9PT0gXCJib29sZWFuXCJcblxuZXhwb3J0IGNvbnN0IGhhc0tleXdvcmQgPSAoc2NoZW1hLCBrZXl3b3JkKSA9PlxuICBzY2hlbWEgIT09IG51bGwgJiZcbiAgdHlwZW9mIHNjaGVtYSA9PT0gXCJvYmplY3RcIiAmJlxuICBPYmplY3QuaGFzT3duKHNjaGVtYSwga2V5d29yZClcblxuZXhwb3J0IGNvbnN0IG1ha2VJc0V4cGFuZGFibGUgPSAoZm5BY2Nlc3NvcikgPT4ge1xuICBjb25zdCBpc0V4cGFuZGFibGUgPSAoc2NoZW1hKSA9PiB7XG4gICAgY29uc3QgZm4gPSBmbkFjY2Vzc29yKClcblxuICAgIHJldHVybiAoXG4gICAgICBzY2hlbWE/LiRzY2hlbWEgfHxcbiAgICAgIHNjaGVtYT8uJHZvY2FidWxhcnkgfHxcbiAgICAgIHNjaGVtYT8uJGlkIHx8XG4gICAgICBzY2hlbWE/LiRhbmNob3IgfHxcbiAgICAgIHNjaGVtYT8uJGR5bmFtaWNBbmNob3IgfHxcbiAgICAgIHNjaGVtYT8uJHJlZiB8fFxuICAgICAgc2NoZW1hPy4kZHluYW1pY1JlZiB8fFxuICAgICAgc2NoZW1hPy4kZGVmcyB8fFxuICAgICAgc2NoZW1hPy4kY29tbWVudCB8fFxuICAgICAgc2NoZW1hPy5hbGxPZiB8fFxuICAgICAgc2NoZW1hPy5hbnlPZiB8fFxuICAgICAgc2NoZW1hPy5vbmVPZiB8fFxuICAgICAgZm4uaGFzS2V5d29yZChzY2hlbWEsIFwibm90XCIpIHx8XG4gICAgICBmbi5oYXNLZXl3b3JkKHNjaGVtYSwgXCJpZlwiKSB8fFxuICAgICAgZm4uaGFzS2V5d29yZChzY2hlbWEsIFwidGhlblwiKSB8fFxuICAgICAgZm4uaGFzS2V5d29yZChzY2hlbWEsIFwiZWxzZVwiKSB8fFxuICAgICAgc2NoZW1hPy5kZXBlbmRlbnRTY2hlbWFzIHx8XG4gICAgICBzY2hlbWE/LnByZWZpeEl0ZW1zIHx8XG4gICAgICBmbi5oYXNLZXl3b3JkKHNjaGVtYSwgXCJpdGVtc1wiKSB8fFxuICAgICAgZm4uaGFzS2V5d29yZChzY2hlbWEsIFwiY29udGFpbnNcIikgfHxcbiAgICAgIHNjaGVtYT8ucHJvcGVydGllcyB8fFxuICAgICAgc2NoZW1hPy5wYXR0ZXJuUHJvcGVydGllcyB8fFxuICAgICAgZm4uaGFzS2V5d29yZChzY2hlbWEsIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIikgfHxcbiAgICAgIGZuLmhhc0tleXdvcmQoc2NoZW1hLCBcInByb3BlcnR5TmFtZXNcIikgfHxcbiAgICAgIGZuLmhhc0tleXdvcmQoc2NoZW1hLCBcInVuZXZhbHVhdGVkSXRlbXNcIikgfHxcbiAgICAgIGZuLmhhc0tleXdvcmQoc2NoZW1hLCBcInVuZXZhbHVhdGVkUHJvcGVydGllc1wiKSB8fFxuICAgICAgc2NoZW1hPy5kZXNjcmlwdGlvbiB8fFxuICAgICAgc2NoZW1hPy5lbnVtIHx8XG4gICAgICBmbi5oYXNLZXl3b3JkKHNjaGVtYSwgXCJjb25zdFwiKSB8fFxuICAgICAgZm4uaGFzS2V5d29yZChzY2hlbWEsIFwiY29udGVudFNjaGVtYVwiKSB8fFxuICAgICAgZm4uaGFzS2V5d29yZChzY2hlbWEsIFwiZGVmYXVsdFwiKSB8fFxuICAgICAgc2NoZW1hPy5leGFtcGxlcyB8fFxuICAgICAgZm4uZ2V0RXh0ZW5zaW9uS2V5d29yZHMoc2NoZW1hKS5sZW5ndGggPiAwXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIGlzRXhwYW5kYWJsZVxufVxuXG5leHBvcnQgY29uc3Qgc3RyaW5naWZ5ID0gKHZhbHVlKSA9PiB7XG4gIGlmIChcbiAgICB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgIFtcIm51bWJlclwiLCBcImJpZ2ludFwiLCBcImJvb2xlYW5cIl0uaW5jbHVkZXModHlwZW9mIHZhbHVlKVxuICApIHtcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKVxuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIGBbJHt2YWx1ZS5tYXAoc3RyaW5naWZ5KS5qb2luKFwiLCBcIil9XWBcbiAgfVxuXG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSlcbn1cblxuY29uc3Qgc3RyaW5naWZ5Q29uc3RyYWludE11bHRpcGxlT2YgPSAoc2NoZW1hKSA9PiB7XG4gIGlmICh0eXBlb2Ygc2NoZW1hPy5tdWx0aXBsZU9mICE9PSBcIm51bWJlclwiKSByZXR1cm4gbnVsbFxuICBpZiAoc2NoZW1hLm11bHRpcGxlT2YgPD0gMCkgcmV0dXJuIG51bGxcbiAgaWYgKHNjaGVtYS5tdWx0aXBsZU9mID09PSAxKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IHsgbXVsdGlwbGVPZiB9ID0gc2NoZW1hXG5cbiAgaWYgKE51bWJlci5pc0ludGVnZXIobXVsdGlwbGVPZikpIHtcbiAgICByZXR1cm4gYG11bHRpcGxlIG9mICR7bXVsdGlwbGVPZn1gXG4gIH1cblxuICBjb25zdCBkZWNpbWFsUGxhY2VzID0gbXVsdGlwbGVPZi50b1N0cmluZygpLnNwbGl0KFwiLlwiKVsxXS5sZW5ndGhcbiAgY29uc3QgZmFjdG9yID0gMTAgKiogZGVjaW1hbFBsYWNlc1xuICBjb25zdCBudW1lcmF0b3IgPSBtdWx0aXBsZU9mICogZmFjdG9yXG4gIGNvbnN0IGRlbm9taW5hdG9yID0gZmFjdG9yXG4gIHJldHVybiBgbXVsdGlwbGUgb2YgJHtudW1lcmF0b3J9LyR7ZGVub21pbmF0b3J9YFxufVxuXG5jb25zdCBzdHJpbmdpZnlDb25zdHJhaW50TnVtYmVyUmFuZ2UgPSAoc2NoZW1hKSA9PiB7XG4gIGNvbnN0IG1pbmltdW0gPSBzY2hlbWE/Lm1pbmltdW1cbiAgY29uc3QgbWF4aW11bSA9IHNjaGVtYT8ubWF4aW11bVxuICBjb25zdCBleGNsdXNpdmVNaW5pbXVtID0gc2NoZW1hPy5leGNsdXNpdmVNaW5pbXVtXG4gIGNvbnN0IGV4Y2x1c2l2ZU1heGltdW0gPSBzY2hlbWE/LmV4Y2x1c2l2ZU1heGltdW1cbiAgY29uc3QgaGFzTWluaW11bSA9IHR5cGVvZiBtaW5pbXVtID09PSBcIm51bWJlclwiXG4gIGNvbnN0IGhhc01heGltdW0gPSB0eXBlb2YgbWF4aW11bSA9PT0gXCJudW1iZXJcIlxuICBjb25zdCBoYXNFeGNsdXNpdmVNaW5pbXVtID0gdHlwZW9mIGV4Y2x1c2l2ZU1pbmltdW0gPT09IFwibnVtYmVyXCJcbiAgY29uc3QgaGFzRXhjbHVzaXZlTWF4aW11bSA9IHR5cGVvZiBleGNsdXNpdmVNYXhpbXVtID09PSBcIm51bWJlclwiXG4gIGNvbnN0IGlzTWluRXhjbHVzaXZlID0gaGFzRXhjbHVzaXZlTWluaW11bSAmJiAoIWhhc01pbmltdW0gfHwgbWluaW11bSA8IGV4Y2x1c2l2ZU1pbmltdW0pIC8vIHByZXR0aWVyLWlnbm9yZVxuICBjb25zdCBpc01heEV4Y2x1c2l2ZSA9IGhhc0V4Y2x1c2l2ZU1heGltdW0gJiYgKCFoYXNNYXhpbXVtIHx8IG1heGltdW0gPiBleGNsdXNpdmVNYXhpbXVtKSAvLyBwcmV0dGllci1pZ25vcmVcblxuICBpZiAoXG4gICAgKGhhc01pbmltdW0gfHwgaGFzRXhjbHVzaXZlTWluaW11bSkgJiZcbiAgICAoaGFzTWF4aW11bSB8fCBoYXNFeGNsdXNpdmVNYXhpbXVtKVxuICApIHtcbiAgICBjb25zdCBtaW5TeW1ib2wgPSBpc01pbkV4Y2x1c2l2ZSA/IFwiKFwiIDogXCJbXCJcbiAgICBjb25zdCBtYXhTeW1ib2wgPSBpc01heEV4Y2x1c2l2ZSA/IFwiKVwiIDogXCJdXCJcbiAgICBjb25zdCBtaW5WYWx1ZSA9IGlzTWluRXhjbHVzaXZlID8gZXhjbHVzaXZlTWluaW11bSA6IG1pbmltdW1cbiAgICBjb25zdCBtYXhWYWx1ZSA9IGlzTWF4RXhjbHVzaXZlID8gZXhjbHVzaXZlTWF4aW11bSA6IG1heGltdW1cbiAgICByZXR1cm4gYCR7bWluU3ltYm9sfSR7bWluVmFsdWV9LCAke21heFZhbHVlfSR7bWF4U3ltYm9sfWBcbiAgfVxuICBpZiAoaGFzTWluaW11bSB8fCBoYXNFeGNsdXNpdmVNaW5pbXVtKSB7XG4gICAgY29uc3QgbWluU3ltYm9sID0gaXNNaW5FeGNsdXNpdmUgPyBcIj5cIiA6IFwi4omlXCJcbiAgICBjb25zdCBtaW5WYWx1ZSA9IGlzTWluRXhjbHVzaXZlID8gZXhjbHVzaXZlTWluaW11bSA6IG1pbmltdW1cbiAgICByZXR1cm4gYCR7bWluU3ltYm9sfSAke21pblZhbHVlfWBcbiAgfVxuICBpZiAoaGFzTWF4aW11bSB8fCBoYXNFeGNsdXNpdmVNYXhpbXVtKSB7XG4gICAgY29uc3QgbWF4U3ltYm9sID0gaXNNYXhFeGNsdXNpdmUgPyBcIjxcIiA6IFwi4omkXCJcbiAgICBjb25zdCBtYXhWYWx1ZSA9IGlzTWF4RXhjbHVzaXZlID8gZXhjbHVzaXZlTWF4aW11bSA6IG1heGltdW1cbiAgICByZXR1cm4gYCR7bWF4U3ltYm9sfSAke21heFZhbHVlfWBcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG5cbmNvbnN0IHN0cmluZ2lmeUNvbnN0cmFpbnRSYW5nZSA9IChsYWJlbCwgbWluLCBtYXgpID0+IHtcbiAgY29uc3QgaGFzTWluID0gdHlwZW9mIG1pbiA9PT0gXCJudW1iZXJcIlxuICBjb25zdCBoYXNNYXggPSB0eXBlb2YgbWF4ID09PSBcIm51bWJlclwiXG5cbiAgaWYgKGhhc01pbiAmJiBoYXNNYXgpIHtcbiAgICBpZiAobWluID09PSBtYXgpIHtcbiAgICAgIHJldHVybiBgJHttaW59ICR7bGFiZWx9YFxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYFske21pbn0sICR7bWF4fV0gJHtsYWJlbH1gXG4gICAgfVxuICB9XG4gIGlmIChoYXNNaW4pIHtcbiAgICByZXR1cm4gYOKJpSAke21pbn0gJHtsYWJlbH1gXG4gIH1cbiAgaWYgKGhhc01heCkge1xuICAgIHJldHVybiBg4omkICR7bWF4fSAke2xhYmVsfWBcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBjb25zdCBzdHJpbmdpZnlDb25zdHJhaW50cyA9IChzY2hlbWEpID0+IHtcbiAgY29uc3QgY29uc3RyYWludHMgPSBbXVxuXG4gIC8vIHZhbGlkYXRpb24gS2V5d29yZHMgZm9yIE51bWVyaWMgSW5zdGFuY2VzIChudW1iZXIgYW5kIGludGVnZXIpXG4gIGNvbnN0IG11bHRpcGxlT2YgPSBzdHJpbmdpZnlDb25zdHJhaW50TXVsdGlwbGVPZihzY2hlbWEpXG4gIGlmIChtdWx0aXBsZU9mICE9PSBudWxsKSB7XG4gICAgY29uc3RyYWludHMucHVzaCh7IHNjb3BlOiBcIm51bWJlclwiLCB2YWx1ZTogbXVsdGlwbGVPZiB9KVxuICB9XG4gIGNvbnN0IG51bWJlclJhbmdlID0gc3RyaW5naWZ5Q29uc3RyYWludE51bWJlclJhbmdlKHNjaGVtYSlcbiAgaWYgKG51bWJlclJhbmdlICE9PSBudWxsKSB7XG4gICAgY29uc3RyYWludHMucHVzaCh7IHNjb3BlOiBcIm51bWJlclwiLCB2YWx1ZTogbnVtYmVyUmFuZ2UgfSlcbiAgfVxuXG4gIC8vIHZvY2FidWxhcmllcyBmb3IgU2VtYW50aWMgQ29udGVudCBXaXRoIFwiZm9ybWF0XCJcbiAgaWYgKHNjaGVtYT8uZm9ybWF0KSB7XG4gICAgY29uc3RyYWludHMucHVzaCh7IHNjb3BlOiBcInN0cmluZ1wiLCB2YWx1ZTogc2NoZW1hLmZvcm1hdCB9KVxuICB9XG5cbiAgLy8gdmFsaWRhdGlvbiBLZXl3b3JkcyBmb3IgU3RyaW5nc1xuICBjb25zdCBzdHJpbmdSYW5nZSA9IHN0cmluZ2lmeUNvbnN0cmFpbnRSYW5nZShcbiAgICBcImNoYXJhY3RlcnNcIixcbiAgICBzY2hlbWE/Lm1pbkxlbmd0aCxcbiAgICBzY2hlbWE/Lm1heExlbmd0aFxuICApXG4gIGlmIChzdHJpbmdSYW5nZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0cmFpbnRzLnB1c2goeyBzY29wZTogXCJzdHJpbmdcIiwgdmFsdWU6IHN0cmluZ1JhbmdlIH0pXG4gIH1cbiAgaWYgKHNjaGVtYT8ucGF0dGVybikge1xuICAgIGNvbnN0cmFpbnRzLnB1c2goeyBzY29wZTogXCJzdHJpbmdcIiwgdmFsdWU6IGBtYXRjaGVzICR7c2NoZW1hPy5wYXR0ZXJufWAgfSlcbiAgfVxuXG4gIC8vIHZvY2FidWxhcnkgZm9yIHRoZSBDb250ZW50cyBvZiBTdHJpbmctRW5jb2RlZCBEYXRhXG4gIGlmIChzY2hlbWE/LmNvbnRlbnRNZWRpYVR5cGUpIHtcbiAgICBjb25zdHJhaW50cy5wdXNoKHtcbiAgICAgIHNjb3BlOiBcInN0cmluZ1wiLFxuICAgICAgdmFsdWU6IGBtZWRpYSB0eXBlOiAke3NjaGVtYS5jb250ZW50TWVkaWFUeXBlfWAsXG4gICAgfSlcbiAgfVxuICBpZiAoc2NoZW1hPy5jb250ZW50RW5jb2RpbmcpIHtcbiAgICBjb25zdHJhaW50cy5wdXNoKHtcbiAgICAgIHNjb3BlOiBcInN0cmluZ1wiLFxuICAgICAgdmFsdWU6IGBlbmNvZGluZzogJHtzY2hlbWEuY29udGVudEVuY29kaW5nfWAsXG4gICAgfSlcbiAgfVxuXG4gIC8vIHZhbGlkYXRpb24gS2V5d29yZHMgZm9yIEFycmF5c1xuICBjb25zdCBhcnJheVJhbmdlID0gc3RyaW5naWZ5Q29uc3RyYWludFJhbmdlKFxuICAgIHNjaGVtYT8udW5pcXVlSXRlbXMgPyBcInVuaXF1ZSBpdGVtc1wiIDogXCJpdGVtc1wiLFxuICAgIHNjaGVtYT8ubWluSXRlbXMsXG4gICAgc2NoZW1hPy5tYXhJdGVtc1xuICApXG4gIGlmIChhcnJheVJhbmdlICE9PSBudWxsKSB7XG4gICAgY29uc3RyYWludHMucHVzaCh7IHNjb3BlOiBcImFycmF5XCIsIHZhbHVlOiBhcnJheVJhbmdlIH0pXG4gIH1cbiAgaWYgKHNjaGVtYT8udW5pcXVlSXRlbXMgJiYgIWFycmF5UmFuZ2UpIHtcbiAgICBjb25zdHJhaW50cy5wdXNoKHsgc2NvcGU6IFwiYXJyYXlcIiwgdmFsdWU6IFwidW5pcXVlXCIgfSlcbiAgfVxuICBjb25zdCBjb250YWluc1JhbmdlID0gc3RyaW5naWZ5Q29uc3RyYWludFJhbmdlKFxuICAgIFwiY29udGFpbmVkIGl0ZW1zXCIsXG4gICAgc2NoZW1hPy5taW5Db250YWlucyxcbiAgICBzY2hlbWE/Lm1heENvbnRhaW5zXG4gIClcbiAgaWYgKGNvbnRhaW5zUmFuZ2UgIT09IG51bGwpIHtcbiAgICBjb25zdHJhaW50cy5wdXNoKHsgc2NvcGU6IFwiYXJyYXlcIiwgdmFsdWU6IGNvbnRhaW5zUmFuZ2UgfSlcbiAgfVxuXG4gIC8vIHZhbGlkYXRpb24gS2V5d29yZHMgZm9yIE9iamVjdHNcbiAgY29uc3Qgb2JqZWN0UmFuZ2UgPSBzdHJpbmdpZnlDb25zdHJhaW50UmFuZ2UoXG4gICAgXCJwcm9wZXJ0aWVzXCIsXG4gICAgc2NoZW1hPy5taW5Qcm9wZXJ0aWVzLFxuICAgIHNjaGVtYT8ubWF4UHJvcGVydGllc1xuICApXG4gIGlmIChvYmplY3RSYW5nZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0cmFpbnRzLnB1c2goeyBzY29wZTogXCJvYmplY3RcIiwgdmFsdWU6IG9iamVjdFJhbmdlIH0pXG4gIH1cblxuICByZXR1cm4gY29uc3RyYWludHNcbn1cblxuZXhwb3J0IGNvbnN0IGdldERlcGVuZGVudFJlcXVpcmVkID0gKHByb3BlcnR5TmFtZSwgc2NoZW1hKSA9PiB7XG4gIGlmICghc2NoZW1hPy5kZXBlbmRlbnRSZXF1aXJlZCkgcmV0dXJuIFtdXG5cbiAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgT2JqZWN0LmVudHJpZXMoc2NoZW1hLmRlcGVuZGVudFJlcXVpcmVkKS5yZWR1Y2UoKGFjYywgW3Byb3AsIGxpc3RdKSA9PiB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkobGlzdCkpIHJldHVybiBhY2NcbiAgICAgIGlmICghbGlzdC5pbmNsdWRlcyhwcm9wZXJ0eU5hbWUpKSByZXR1cm4gYWNjXG5cbiAgICAgIGFjYy5hZGQocHJvcClcblxuICAgICAgcmV0dXJuIGFjY1xuICAgIH0sIG5ldyBTZXQoKSlcbiAgKVxufVxuXG5leHBvcnQgY29uc3QgaXNQbGFpbk9iamVjdCA9ICh2YWx1ZSkgPT5cbiAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmXG4gIHZhbHVlICE9PSBudWxsICYmXG4gICFBcnJheS5pc0FycmF5KHZhbHVlKSAmJlxuICAoT2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbHVlKSA9PT0gbnVsbCB8fFxuICAgIE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSkgPT09IE9iamVjdC5wcm90b3R5cGUpXG5cbmV4cG9ydCBjb25zdCBpc0VtcHR5T2JqZWN0ID0gKHZhbHVlKSA9PlxuICBpc1BsYWluT2JqZWN0KHZhbHVlKSAmJiBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwXG5cbmV4cG9ydCBjb25zdCBpc0VtcHR5QXJyYXkgPSAodmFsdWUpID0+XG4gIEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMFxuXG5leHBvcnQgY29uc3QgZGlmZmVyZW5jZSA9ICh2YWx1ZSwgY29tcGFyaXNvblZhbHVlKSA9PiB7XG4gIGNvbnN0IGNvbXBhcmlzb25TZXQgPSBuZXcgU2V0KGNvbXBhcmlzb25WYWx1ZSlcbiAgcmV0dXJuIHZhbHVlLmZpbHRlcigoaXRlbSkgPT4gIWNvbXBhcmlzb25TZXQuaGFzKGl0ZW0pKVxufVxuXG5leHBvcnQgY29uc3QgZ2V0U2NoZW1hS2V5d29yZHMgPSAoKSA9PiB7XG4gIHJldHVybiBbXG4gICAgLy8gY29yZSB2b2NhYnVsYXJ5XG4gICAgXCIkc2NoZW1hXCIsXG4gICAgXCIkdm9jYWJ1bGFyeVwiLFxuICAgIFwiJGlkXCIsXG4gICAgXCIkYW5jaG9yXCIsXG4gICAgXCIkZHluYW1pY0FuY2hvclwiLFxuICAgIFwiJGR5bmFtaWNSZWZcIixcbiAgICBcIiRyZWZcIixcbiAgICBcIiRkZWZzXCIsXG4gICAgXCIkY29tbWVudFwiLFxuICAgIC8vIGFwcGxpY2F0b3Igdm9jYWJ1bGFyeVxuICAgIFwiYWxsT2ZcIixcbiAgICBcImFueU9mXCIsXG4gICAgXCJvbmVPZlwiLFxuICAgIFwibm90XCIsXG4gICAgXCJpZlwiLFxuICAgIFwidGhlblwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZGVwZW5kZW50U2NoZW1hc1wiLFxuICAgIFwicHJlZml4SXRlbXNcIixcbiAgICBcIml0ZW1zXCIsXG4gICAgXCJjb250YWluc1wiLFxuICAgIFwicHJvcGVydGllc1wiLFxuICAgIFwicGF0dGVyblByb3BlcnRpZXNcIixcbiAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCIsXG4gICAgXCJwcm9wZXJ0eU5hbWVzXCIsXG4gICAgLy8gdW5ldmFsdWF0ZWQgTG9jYXRpb25zIHZvY2FidWxhcnlcbiAgICBcInVuZXZhbHVhdGVkSXRlbXNcIixcbiAgICBcInVuZXZhbHVhdGVkUHJvcGVydGllc1wiLFxuICAgIC8vIHZhbGlkYXRpb24gdm9jYWJ1bGFyeVxuICAgIC8vIHZhbGlkYXRpb24gS2V5d29yZHMgZm9yIEFueSBJbnN0YW5jZSBUeXBlXG4gICAgXCJ0eXBlXCIsXG4gICAgXCJlbnVtXCIsXG4gICAgXCJjb25zdFwiLFxuICAgIC8vIHZhbGlkYXRpb24gS2V5d29yZHMgZm9yIE51bWVyaWMgSW5zdGFuY2VzIChudW1iZXIgYW5kIGludGVnZXIpXG4gICAgXCJtdWx0aXBsZU9mXCIsXG4gICAgXCJtYXhpbXVtXCIsXG4gICAgXCJleGNsdXNpdmVNYXhpbXVtXCIsXG4gICAgXCJtaW5pbXVtXCIsXG4gICAgXCJleGNsdXNpdmVNaW5pbXVtXCIsXG4gICAgLy8gdmFsaWRhdGlvbiBLZXl3b3JkcyBmb3IgU3RyaW5nc1xuICAgIFwibWF4TGVuZ3RoXCIsXG4gICAgXCJtaW5MZW5ndGhcIixcbiAgICBcInBhdHRlcm5cIixcbiAgICAvLyB2YWxpZGF0aW9uIEtleXdvcmRzIGZvciBBcnJheXNcbiAgICBcIm1heEl0ZW1zXCIsXG4gICAgXCJtaW5JdGVtc1wiLFxuICAgIFwidW5pcXVlSXRlbXNcIixcbiAgICBcIm1heENvbnRhaW5zXCIsXG4gICAgXCJtaW5Db250YWluc1wiLFxuICAgIC8vIHZhbGlkYXRpb24gS2V5d29yZHMgZm9yIE9iamVjdHNcbiAgICBcIm1heFByb3BlcnRpZXNcIixcbiAgICBcIm1pblByb3BlcnRpZXNcIixcbiAgICBcInJlcXVpcmVkXCIsXG4gICAgXCJkZXBlbmRlbnRSZXF1aXJlZFwiLFxuICAgIC8vIGJhc2ljIE1ldGEtRGF0YSBBbm5vdGF0aW9ucyB2b2NhYnVsYXJ5XG4gICAgXCJ0aXRsZVwiLFxuICAgIFwiZGVzY3JpcHRpb25cIixcbiAgICBcImRlZmF1bHRcIixcbiAgICBcImRlcHJlY2F0ZWRcIixcbiAgICBcInJlYWRPbmx5XCIsXG4gICAgXCJ3cml0ZU9ubHlcIixcbiAgICBcImV4YW1wbGVzXCIsXG4gICAgLy8gc2VtYW50aWMgQ29udGVudCBXaXRoIFwiZm9ybWF0XCIgdm9jYWJ1bGFyeVxuICAgIFwiZm9ybWF0XCIsXG4gICAgLy8gY29udGVudHMgb2YgU3RyaW5nLUVuY29kZWQgRGF0YSB2b2NhYnVsYXJ5XG4gICAgXCJjb250ZW50RW5jb2RpbmdcIixcbiAgICBcImNvbnRlbnRNZWRpYVR5cGVcIixcbiAgICBcImNvbnRlbnRTY2hlbWFcIixcbiAgXVxufVxuXG5leHBvcnQgY29uc3QgbWFrZUdldEV4dGVuc2lvbktleXdvcmRzID0gKGZuQWNjZXNzb3IpID0+IHtcbiAgY29uc3QgZ2V0RXh0ZW5zaW9uS2V5d29yZHMgPSAoc2NoZW1hKSA9PiB7XG4gICAgY29uc3QgZm4gPSBmbkFjY2Vzc29yKClcbiAgICBjb25zdCBrZXl3b3JkcyA9IGZuLmdldFNjaGVtYUtleXdvcmRzKClcblxuICAgIHJldHVybiBpc1BsYWluT2JqZWN0KHNjaGVtYSlcbiAgICAgID8gZGlmZmVyZW5jZShPYmplY3Qua2V5cyhzY2hlbWEpLCBrZXl3b3JkcylcbiAgICAgIDogW11cbiAgfVxuXG4gIHJldHVybiBnZXRFeHRlbnNpb25LZXl3b3Jkc1xufVxuXG5leHBvcnQgY29uc3QgaGFzU2NoZW1hVHlwZSA9IChzY2hlbWEsIHR5cGUpID0+IHtcbiAgY29uc3QgaXNTY2hlbWFJbW11dGFibGUgPSBNYXAuaXNNYXAoc2NoZW1hKVxuXG4gIGlmICghaXNTY2hlbWFJbW11dGFibGUgJiYgIWlzUGxhaW5PYmplY3Qoc2NoZW1hKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY29uc3QgaGFzVHlwZSA9IChzY2hlbWFUeXBlKSA9PlxuICAgIHR5cGUgPT09IHNjaGVtYVR5cGUgfHwgKEFycmF5LmlzQXJyYXkodHlwZSkgJiYgdHlwZS5pbmNsdWRlcyhzY2hlbWFUeXBlKSlcblxuICBjb25zdCBzY2hlbWFUeXBlID0gaXNTY2hlbWFJbW11dGFibGUgPyBzY2hlbWEuZ2V0KFwidHlwZVwiKSA6IHNjaGVtYS50eXBlXG5cbiAgaWYgKExpc3QuaXNMaXN0KHNjaGVtYVR5cGUpIHx8IEFycmF5LmlzQXJyYXkoc2NoZW1hVHlwZSkpIHtcbiAgICByZXR1cm4gc2NoZW1hVHlwZS5zb21lKCh0KSA9PiBoYXNUeXBlKHQpKVxuICB9XG5cbiAgcmV0dXJuIGhhc1R5cGUoc2NoZW1hVHlwZSlcbn1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5cbmltcG9ydCB7IGlzUGxhaW5PYmplY3QgfSBmcm9tIFwiLi4vLi4vLi4vZm5cIlxuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IHJlcHJlc2VudHMgdmFyaW91cyBjb25zdHJhaW50IGtleXdvcmRzXG4gKiBmcm9tIEpTT04gU2NoZW1hIDIwMjAtMTIgdmFsaWRhdGlvbiB2b2NhYnVsYXJ5LlxuICovXG5jb25zdCBDb25zdHJhaW50ID0gKHsgY29uc3RyYWludCB9KSA9PiB7XG4gIGlmIChcbiAgICAhaXNQbGFpbk9iamVjdChjb25zdHJhaW50KSB8fFxuICAgIHR5cGVvZiBjb25zdHJhaW50LnNjb3BlICE9PSBcInN0cmluZ1wiIHx8XG4gICAgdHlwZW9mIGNvbnN0cmFpbnQudmFsdWUgIT09IFwic3RyaW5nXCJcbiAgKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPHNwYW5cbiAgICAgIGNsYXNzTmFtZT17YGpzb24tc2NoZW1hLTIwMjAtMTJfX2NvbnN0cmFpbnQganNvbi1zY2hlbWEtMjAyMC0xMl9fY29uc3RyYWludC0tJHtjb25zdHJhaW50LnNjb3BlfWB9XG4gICAgPlxuICAgICAge2NvbnN0cmFpbnQudmFsdWV9XG4gICAgPC9zcGFuPlxuICApXG59XG5cbkNvbnN0cmFpbnQucHJvcFR5cGVzID0ge1xuICBjb25zdHJhaW50OiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIHNjb3BlOiBQcm9wVHlwZXMub25lT2YoW1wibnVtYmVyXCIsIFwic3RyaW5nXCIsIFwiYXJyYXlcIiwgXCJvYmplY3RcIl0pLmlzUmVxdWlyZWQsXG4gICAgdmFsdWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfSkuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVhY3QubWVtbyhDb25zdHJhaW50KVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuaW1wb3J0ICogYXMgcHJvcFR5cGVzIGZyb20gXCIuLi8uLi8uLi9wcm9wLXR5cGVzXCJcblxuY29uc3QgRGVwZW5kZW50UmVxdWlyZWQgPSAoeyBkZXBlbmRlbnRSZXF1aXJlZCB9KSA9PiB7XG4gIGlmICghQXJyYXkuaXNBcnJheShkZXBlbmRlbnRSZXF1aXJlZCkgfHwgZGVwZW5kZW50UmVxdWlyZWQubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kZXBlbmRlbnRSZXF1aXJlZFwiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lIGpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fbmFtZS0tcHJpbWFyeVwiPlxuICAgICAgICBSZXF1aXJlZCB3aGVuIGRlZmluZWRcbiAgICAgIDwvc3Bhbj5cbiAgICAgIDx1bD5cbiAgICAgICAge2RlcGVuZGVudFJlcXVpcmVkLm1hcCgocHJvcGVydHlOYW1lKSA9PiAoXG4gICAgICAgICAgPGxpIGtleT17cHJvcGVydHlOYW1lfT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTIta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX192YWx1ZS0td2FybmluZ1wiPlxuICAgICAgICAgICAgICB7cHJvcGVydHlOYW1lfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICkpfVxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5EZXBlbmRlbnRSZXF1aXJlZC5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogcHJvcFR5cGVzLnNjaGVtYS5pc1JlcXVpcmVkLFxuICBkZXBlbmRlbnRSZXF1aXJlZDogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZykuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgRGVwZW5kZW50UmVxdWlyZWRcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VGbiwgdXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2hvb2tzXCJcblxuY29uc3QgQ29udGVudFNjaGVtYSA9ICh7IHNjaGVtYSB9KSA9PiB7XG4gIGNvbnN0IGZuID0gdXNlRm4oKVxuICBjb25zdCBKU09OU2NoZW1hID0gdXNlQ29tcG9uZW50KFwiSlNPTlNjaGVtYVwiKVxuXG4gIC8qKlxuICAgKiBSZW5kZXJpbmcuXG4gICAqL1xuICBpZiAoIWZuLmhhc0tleXdvcmQoc2NoZW1hLCBcImNvbnRlbnRTY2hlbWFcIikpIHJldHVybiBudWxsXG5cbiAgY29uc3QgbmFtZSA9IChcbiAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1wcmltYXJ5XCI+XG4gICAgICBDb250ZW50IHNjaGVtYVxuICAgIDwvc3Bhbj5cbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1jb250ZW50U2NoZW1hXCI+XG4gICAgICA8SlNPTlNjaGVtYVxuICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICBzY2hlbWE9e3NjaGVtYS5jb250ZW50U2NoZW1hfVxuICAgICAgICBpZGVudGlmaWVyPVwiY29udGVudFNjaGVtYVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApXG59XG5cbkNvbnRlbnRTY2hlbWEucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBDb250ZW50U2NoZW1hXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VGbiB9IGZyb20gXCIuLi8uLi8uLi9ob29rc1wiXG5cbmNvbnN0IFRpdGxlID0gKHsgdGl0bGUgPSBcIlwiLCBzY2hlbWEgfSkgPT4ge1xuICBjb25zdCBmbiA9IHVzZUZuKClcbiAgY29uc3QgcmVuZGVyZWRUaXRsZSA9IHRpdGxlIHx8IGZuLmdldFRpdGxlKHNjaGVtYSlcblxuICBpZiAoIXJlbmRlcmVkVGl0bGUpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMl9fdGl0bGVcIj57cmVuZGVyZWRUaXRsZX08L2Rpdj5cbn1cblxuVGl0bGUucHJvcFR5cGVzID0ge1xuICB0aXRsZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLmVsZW1lbnRdKSxcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgVGl0bGVcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vLi4vcHJvcC10eXBlc1wiXG5cbmNvbnN0IERlc2NyaXB0aW9uID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgaWYgKCFzY2hlbWE/LmRlc2NyaXB0aW9uKSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kZXNjcmlwdGlvblwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWNvcmUta2V5d29yZF9fdmFsdWUganNvbi1zY2hlbWEtMjAyMC0xMi1jb3JlLWtleXdvcmRfX3ZhbHVlLS1zZWNvbmRhcnlcIj5cbiAgICAgICAge3NjaGVtYS5kZXNjcmlwdGlvbn1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG5cbkRlc2NyaXB0aW9uLnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgRGVzY3JpcHRpb25cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vLi4vcHJvcC10eXBlc1wiXG5pbXBvcnQgeyB1c2VDb21wb25lbnQsIHVzZUZuIH0gZnJvbSBcIi4uLy4uLy4uL2hvb2tzXCJcblxuY29uc3QgRGVmYXVsdCA9ICh7IHNjaGVtYSB9KSA9PiB7XG4gIGNvbnN0IGZuID0gdXNlRm4oKVxuICBjb25zdCBKU09OVmlld2VyID0gdXNlQ29tcG9uZW50KFwiSlNPTlZpZXdlclwiKVxuXG4gIGlmICghZm4uaGFzS2V5d29yZChzY2hlbWEsIFwiZGVmYXVsdFwiKSkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxKU09OVmlld2VyXG4gICAgICBuYW1lPVwiRGVmYXVsdFwiXG4gICAgICB2YWx1ZT17c2NoZW1hLmRlZmF1bHR9XG4gICAgICBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1kZWZhdWx0XCJcbiAgICAvPlxuICApXG59XG5cbkRlZmF1bHQucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBEZWZhdWx0XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcblxuaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSBcIi4uLy4uL3Byb3AtdHlwZXNcIlxuXG5jb25zdCBEZXByZWNhdGVkID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgaWYgKHNjaGVtYT8uZGVwcmVjYXRlZCAhPT0gdHJ1ZSkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXdhcm5pbmdcIj5cbiAgICAgIGRlcHJlY2F0ZWRcbiAgICA8L3NwYW4+XG4gIClcbn1cblxuRGVwcmVjYXRlZC5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IERlcHJlY2F0ZWRcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5cbmNvbnN0IFJlYWRPbmx5ID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgaWYgKHNjaGVtYT8ucmVhZE9ubHkgIT09IHRydWUpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUganNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlLS1tdXRlZFwiPlxuICAgICAgcmVhZC1vbmx5XG4gICAgPC9zcGFuPlxuICApXG59XG5cblJlYWRPbmx5LnByb3BUeXBlcyA9IHtcbiAgc2NoZW1hOiBzY2hlbWEuaXNSZXF1aXJlZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVhZE9ubHlcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vcHJvcC10eXBlc1wiXG5cbmNvbnN0IFdyaXRlT25seSA9ICh7IHNjaGVtYSB9KSA9PiB7XG4gIGlmIChzY2hlbWE/LndyaXRlT25seSAhPT0gdHJ1ZSkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxzcGFuIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLW11dGVkXCI+XG4gICAgICB3cml0ZS1vbmx5XG4gICAgPC9zcGFuPlxuICApXG59XG5cbldyaXRlT25seS5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFdyaXRlT25seVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IHNjaGVtYSB9IGZyb20gXCIuLi8uLi8uLi9wcm9wLXR5cGVzXCJcbmltcG9ydCB7IHVzZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi8uLi9ob29rc1wiXG5cbmNvbnN0IEV4YW1wbGVzID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgY29uc3QgZXhhbXBsZXMgPSBzY2hlbWE/LmV4YW1wbGVzIHx8IFtdXG4gIGNvbnN0IEpTT05WaWV3ZXIgPSB1c2VDb21wb25lbnQoXCJKU09OVmlld2VyXCIpXG5cbiAgaWYgKCFBcnJheS5pc0FycmF5KGV4YW1wbGVzKSB8fCBleGFtcGxlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8SlNPTlZpZXdlclxuICAgICAgbmFtZT1cIkV4YW1wbGVzXCJcbiAgICAgIHZhbHVlPXtzY2hlbWEuZXhhbXBsZXN9XG4gICAgICBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1leGFtcGxlc1wiXG4gICAgLz5cbiAgKVxufVxuXG5FeGFtcGxlcy5wcm9wVHlwZXMgPSB7XG4gIHNjaGVtYTogc2NoZW1hLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEV4YW1wbGVzXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuXG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tIFwiLi4vLi4vLi4vcHJvcC10eXBlc1wiXG5cbmltcG9ydCB7XG4gIHVzZUNvbXBvbmVudCxcbiAgdXNlSXNFeHBhbmRlZCxcbiAgdXNlRm4sXG4gIHVzZVBhdGgsXG4gIHVzZUxldmVsLFxuICB1c2VDb25maWcsXG59IGZyb20gXCIuLi8uLi8uLi9ob29rc1wiXG5pbXBvcnQgeyBKU09OU2NoZW1hTGV2ZWxDb250ZXh0LCBKU09OU2NoZW1hUGF0aENvbnRleHQgfSBmcm9tIFwiLi4vLi4vLi4vY29udGV4dFwiXG5cbmNvbnN0IEV4dGVuc2lvbktleXdvcmRzID0gKHsgc2NoZW1hIH0pID0+IHtcbiAgY29uc3QgZm4gPSB1c2VGbigpXG4gIGNvbnN0IHBhdGhUb2tlbiA9IFwiRXh0ZW5zaW9uS2V5d29yZHNcIlxuICBjb25zdCB7IHBhdGggfSA9IHVzZVBhdGgocGF0aFRva2VuKVxuICBjb25zdCB7IGlzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWQgfSA9IHVzZUlzRXhwYW5kZWQocGF0aFRva2VuKVxuICBjb25zdCBbbGV2ZWwsIG5leHRMZXZlbF0gPSB1c2VMZXZlbCgpXG4gIGNvbnN0IEFjY29yZGlvbiA9IHVzZUNvbXBvbmVudChcIkFjY29yZGlvblwiKVxuICBjb25zdCBFeHBhbmREZWVwQnV0dG9uID0gdXNlQ29tcG9uZW50KFwiRXhwYW5kRGVlcEJ1dHRvblwiKVxuICBjb25zdCBKU09OVmlld2VyID0gdXNlQ29tcG9uZW50KFwiSlNPTlZpZXdlclwiKVxuICBjb25zdCB7IHNob3dFeHRlbnNpb25LZXl3b3JkcyB9ID0gdXNlQ29uZmlnKFwic2hvd0V4dGVuc2lvbktleXdvcmRzXCIpXG4gIGNvbnN0IGV4dGVuc2lvbktleXdvcmRzID0gZm4uZ2V0RXh0ZW5zaW9uS2V5d29yZHMoc2NoZW1hKVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVycy5cbiAgICovXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoaXNFeHBhbmRlZCkge1xuICAgICAgc2V0Q29sbGFwc2VkKClcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RXhwYW5kZWQoKVxuICAgIH1cbiAgfSwgW2lzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWRdKVxuICBjb25zdCBoYW5kbGVFeHBhbnNpb25EZWVwID0gdXNlQ2FsbGJhY2soXG4gICAgKGUsIGV4cGFuZGVkRGVlcE5ldykgPT4ge1xuICAgICAgaWYgKGV4cGFuZGVkRGVlcE5ldykge1xuICAgICAgICBzZXRFeHBhbmRlZCh7IGRlZXA6IHRydWUgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldENvbGxhcHNlZCh7IGRlZXA6IHRydWUgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZXRFeHBhbmRlZCwgc2V0Q29sbGFwc2VkXVxuICApXG5cbiAgLyoqXG4gICAqIFJlbmRlcmluZy5cbiAgICovXG4gIGlmICghc2hvd0V4dGVuc2lvbktleXdvcmRzIHx8IGV4dGVuc2lvbktleXdvcmRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxKU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3BhdGh9PlxuICAgICAgPEpTT05TY2hlbWFMZXZlbENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e25leHRMZXZlbH0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmQganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkLS1leHRlbnNpb24ta2V5d29yZHNcIlxuICAgICAgICAgIGRhdGEtanNvbi1zY2hlbWEtbGV2ZWw9e2xldmVsfVxuICAgICAgICA+XG4gICAgICAgICAgPEFjY29yZGlvbiBleHBhbmRlZD17aXNFeHBhbmRlZH0gb25DaGFuZ2U9e2hhbmRsZUV4cGFuc2lvbn0+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWtleXdvcmRfX25hbWUganNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19uYW1lLS1leHRlbnNpb25cIj5cbiAgICAgICAgICAgICAgRXh0ZW5zaW9uIEtleXdvcmRzXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9BY2NvcmRpb24+XG4gICAgICAgICAgPEV4cGFuZERlZXBCdXR0b25cbiAgICAgICAgICAgIGV4cGFuZGVkPXtpc0V4cGFuZGVkfVxuICAgICAgICAgICAgb25DbGljaz17aGFuZGxlRXhwYW5zaW9uRGVlcH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDx1bFxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlblwiLCB7XG4gICAgICAgICAgICAgIFwianNvbi1zY2hlbWEtMjAyMC0xMi1rZXl3b3JkX19jaGlsZHJlbi0tY29sbGFwc2VkXCI6ICFpc0V4cGFuZGVkLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lzRXhwYW5kZWQgJiYgKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtleHRlbnNpb25LZXl3b3Jkcy5tYXAoKGtleXdvcmQpID0+IChcbiAgICAgICAgICAgICAgICAgIDxKU09OVmlld2VyXG4gICAgICAgICAgICAgICAgICAgIGtleT17a2V5d29yZH1cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17a2V5d29yZH1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3NjaGVtYVtrZXl3b3JkXX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlci1leHRlbnNpb24ta2V5d29yZFwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0pTT05TY2hlbWFMZXZlbENvbnRleHQuUHJvdmlkZXI+XG4gICAgPC9KU09OU2NoZW1hUGF0aENvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuRXh0ZW5zaW9uS2V5d29yZHMucHJvcFR5cGVzID0ge1xuICBzY2hlbWE6IHNjaGVtYS5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBFeHRlbnNpb25LZXl3b3Jkc1xuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuXG5pbXBvcnQge1xuICB1c2VDb21wb25lbnQsXG4gIHVzZUlzRXhwYW5kZWQsXG4gIHVzZUZuLFxuICB1c2VQYXRoLFxuICB1c2VMZXZlbCxcbn0gZnJvbSBcIi4uLy4uL2hvb2tzXCJcbmltcG9ydCB7IEpTT05TY2hlbWFMZXZlbENvbnRleHQsIEpTT05TY2hlbWFQYXRoQ29udGV4dCB9IGZyb20gXCIuLi8uLi9jb250ZXh0XCJcbmltcG9ydCB7IGlzRW1wdHlPYmplY3QsIGlzRW1wdHlBcnJheSB9IGZyb20gXCIuLi8uLi9mblwiXG5cbmNvbnN0IEpTT05WaWV3ZXIgPSAoeyBuYW1lLCB2YWx1ZSwgY2xhc3NOYW1lIH0pID0+IHtcbiAgY29uc3QgZm4gPSB1c2VGbigpXG4gIGNvbnN0IHsgcGF0aCB9ID0gdXNlUGF0aChuYW1lKVxuICBjb25zdCB7IGlzRXhwYW5kZWQsIHNldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWQgfSA9IHVzZUlzRXhwYW5kZWQobmFtZSlcbiAgY29uc3QgW2xldmVsLCBuZXh0TGV2ZWxdID0gdXNlTGV2ZWwoKVxuICBjb25zdCBBY2NvcmRpb24gPSB1c2VDb21wb25lbnQoXCJBY2NvcmRpb25cIilcbiAgY29uc3QgRXhwYW5kRGVlcEJ1dHRvbiA9IHVzZUNvbXBvbmVudChcIkV4cGFuZERlZXBCdXR0b25cIilcbiAgY29uc3QgaXNQcmltaXRpdmUgPVxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiB8fFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiB8fFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJiaWdpbnRcIiB8fFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCIgfHxcbiAgICB0eXBlb2YgdmFsdWUgPT09IFwic3ltYm9sXCIgfHxcbiAgICB2YWx1ZSA9PSBudWxsXG4gIGNvbnN0IGlzRW1wdHkgPSBpc0VtcHR5T2JqZWN0KHZhbHVlKSB8fCBpc0VtcHR5QXJyYXkodmFsdWUpXG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXJzLlxuICAgKi9cbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChpc0V4cGFuZGVkKSB7XG4gICAgICBzZXRDb2xsYXBzZWQoKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRFeHBhbmRlZCgpXG4gICAgfVxuICB9LCBbaXNFeHBhbmRlZCwgc2V0RXhwYW5kZWQsIHNldENvbGxhcHNlZF0pXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvbkRlZXAgPSB1c2VDYWxsYmFjayhcbiAgICAoZSwgZXhwYW5kZWREZWVwTmV3KSA9PiB7XG4gICAgICBpZiAoZXhwYW5kZWREZWVwTmV3KSB7XG4gICAgICAgIHNldEV4cGFuZGVkKHsgZGVlcDogdHJ1ZSB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0Q29sbGFwc2VkKHsgZGVlcDogdHJ1ZSB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgW3NldEV4cGFuZGVkLCBzZXRDb2xsYXBzZWRdXG4gIClcblxuICAvKipcbiAgICogUmVuZGVyaW5nLlxuICAgKi9cbiAgaWYgKGlzUHJpbWl0aXZlKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlclwiLCBjbGFzc05hbWUpfT5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19uYW1lLS1zZWNvbmRhcnlcIj5cbiAgICAgICAgICB7bmFtZX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX192YWx1ZSBqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX192YWx1ZS0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAge2ZuLnN0cmluZ2lmeSh2YWx1ZSl9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIGlmIChpc0VtcHR5KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlclwiLCBjbGFzc05hbWUpfT5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19uYW1lLS1zZWNvbmRhcnlcIj5cbiAgICAgICAgICB7bmFtZX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3Ryb25nIGNsYXNzTmFtZT1cImpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZSBqc29uLXNjaGVtYS0yMDIwLTEyX19hdHRyaWJ1dGUtLXByaW1hcnlcIj5cbiAgICAgICAgICB7QXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBcImVtcHR5IGFycmF5XCIgOiBcImVtcHR5IG9iamVjdFwifVxuICAgICAgICA8L3N0cm9uZz5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEpTT05TY2hlbWFQYXRoQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cGF0aH0+XG4gICAgICA8SlNPTlNjaGVtYUxldmVsQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bmV4dExldmVsfT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcImpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJcIiwgY2xhc3NOYW1lKX1cbiAgICAgICAgICBkYXRhLWpzb24tc2NoZW1hLWxldmVsPXtsZXZlbH1cbiAgICAgICAgPlxuICAgICAgICAgIDxBY2NvcmRpb24gZXhwYW5kZWQ9e2lzRXhwYW5kZWR9IG9uQ2hhbmdlPXtoYW5kbGVFeHBhbnNpb259PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1qc29uLXZpZXdlcl9fbmFtZSBqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19uYW1lLS1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAge25hbWV9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9BY2NvcmRpb24+XG4gICAgICAgICAgPEV4cGFuZERlZXBCdXR0b25cbiAgICAgICAgICAgIGV4cGFuZGVkPXtpc0V4cGFuZGVkfVxuICAgICAgICAgICAgb25DbGljaz17aGFuZGxlRXhwYW5zaW9uRGVlcH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMl9fYXR0cmlidXRlIGpzb24tc2NoZW1hLTIwMjAtMTJfX2F0dHJpYnV0ZS0tcHJpbWFyeVwiPlxuICAgICAgICAgICAge0FycmF5LmlzQXJyYXkodmFsdWUpID8gXCJhcnJheVwiIDogXCJvYmplY3RcIn1cbiAgICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgICA8dWxcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcImpzb24tc2NoZW1hLTIwMjAtMTItanNvbi12aWV3ZXJfX2NoaWxkcmVuXCIsIHtcbiAgICAgICAgICAgICAgXCJqc29uLXNjaGVtYS0yMDIwLTEyLWpzb24tdmlld2VyX19jaGlsZHJlbi0tY29sbGFwc2VkXCI6XG4gICAgICAgICAgICAgICAgIWlzRXhwYW5kZWQsXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aXNFeHBhbmRlZCAmJiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge0FycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICAgICAgICAgICAgICA/IHZhbHVlLm1hcCgoaXRlbSwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCMke2luZGV4fWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5XCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8SlNPTlZpZXdlclxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtgIyR7aW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2l0ZW19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgOiBPYmplY3QuZW50cmllcyh2YWx1ZSkubWFwKFxuICAgICAgICAgICAgICAgICAgICAgIChbcHJvcGVydHlOYW1lLCBwcm9wZXJ0eVZhbHVlXSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17cHJvcGVydHlOYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJqc29uLXNjaGVtYS0yMDIwLTEyLXByb3BlcnR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEpTT05WaWV3ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtwcm9wZXJ0eU5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3Byb3BlcnR5VmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9KU09OU2NoZW1hTGV2ZWxDb250ZXh0LlByb3ZpZGVyPlxuICAgIDwvSlNPTlNjaGVtYVBhdGhDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbkpTT05WaWV3ZXIucHJvcFR5cGVzID0ge1xuICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHZhbHVlOiBQcm9wVHlwZXMuYW55LmlzUmVxdWlyZWQsXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgSlNPTlZpZXdlclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuXG5pbXBvcnQgeyB1c2VDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vaG9va3NcIlxuXG5jb25zdCBBY2NvcmRpb24gPSAoeyBleHBhbmRlZCA9IGZhbHNlLCBjaGlsZHJlbiwgb25DaGFuZ2UgfSkgPT4ge1xuICBjb25zdCBDaGV2cm9uUmlnaHRJY29uID0gdXNlQ29tcG9uZW50KFwiQ2hldnJvblJpZ2h0SWNvblwiKVxuXG4gIGNvbnN0IGhhbmRsZUV4cGFuc2lvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudCkgPT4ge1xuICAgICAgb25DaGFuZ2UoZXZlbnQsICFleHBhbmRlZClcbiAgICB9LFxuICAgIFtleHBhbmRlZCwgb25DaGFuZ2VdXG4gIClcblxuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb25cIlxuICAgICAgb25DbGljaz17aGFuZGxlRXhwYW5zaW9ufVxuICAgID5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb25fX2NoaWxkcmVuXCI+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwianNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb25fX2ljb25cIiwge1xuICAgICAgICAgIFwianNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb25fX2ljb24tLWV4cGFuZGVkXCI6IGV4cGFuZGVkLFxuICAgICAgICAgIFwianNvbi1zY2hlbWEtMjAyMC0xMi1hY2NvcmRpb25fX2ljb24tLWNvbGxhcHNlZFwiOiAhZXhwYW5kZWQsXG4gICAgICAgIH0pfVxuICAgICAgPlxuICAgICAgICA8Q2hldnJvblJpZ2h0SWNvbiAvPlxuICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICApXG59XG5cbkFjY29yZGlvbi5wcm9wVHlwZXMgPSB7XG4gIGV4cGFuZGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLmlzUmVxdWlyZWQsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBBY2NvcmRpb25cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcblxuY29uc3QgRXhwYW5kRGVlcEJ1dHRvbiA9ICh7IGV4cGFuZGVkLCBvbkNsaWNrIH0pID0+IHtcbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50KSA9PiB7XG4gICAgICBvbkNsaWNrKGV2ZW50LCAhZXhwYW5kZWQpXG4gICAgfSxcbiAgICBbZXhwYW5kZWQsIG9uQ2xpY2tdXG4gIClcblxuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3NOYW1lPVwianNvbi1zY2hlbWEtMjAyMC0xMi1leHBhbmQtZGVlcC1idXR0b25cIlxuICAgICAgb25DbGljaz17aGFuZGxlRXhwYW5zaW9ufVxuICAgID5cbiAgICAgIHtleHBhbmRlZCA/IFwiQ29sbGFwc2UgYWxsXCIgOiBcIkV4cGFuZCBhbGxcIn1cbiAgICA8L2J1dHRvbj5cbiAgKVxufVxuXG5FeHBhbmREZWVwQnV0dG9uLnByb3BUeXBlcyA9IHtcbiAgZXhwYW5kZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IEV4cGFuZERlZXBCdXR0b25cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5jb25zdCBDaGV2cm9uUmlnaHQgPSAoKSA9PiAoXG4gIDxzdmdcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICB3aWR0aD1cIjI0XCJcbiAgICBoZWlnaHQ9XCIyNFwiXG4gICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gID5cbiAgICA8cGF0aCBkPVwiTTEwIDZMOC41OSA3LjQxIDEzLjE3IDEybC00LjU4IDQuNTlMMTAgMThsNi02elwiIC8+XG4gIDwvc3ZnPlxuKVxuXG5leHBvcnQgZGVmYXVsdCBDaGV2cm9uUmlnaHRcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgSlNPTlNjaGVtYSBmcm9tIFwiLi9jb21wb25lbnRzL0pTT05TY2hlbWEvSlNPTlNjaGVtYVwiXG5pbXBvcnQgS2V5d29yZCRzY2hlbWEgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy8kc2NoZW1hXCJcbmltcG9ydCBLZXl3b3JkJHZvY2FidWxhcnkgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy8kdm9jYWJ1bGFyeS8kdm9jYWJ1bGFyeVwiXG5pbXBvcnQgS2V5d29yZCRpZCBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzLyRpZFwiXG5pbXBvcnQgS2V5d29yZCRhbmNob3IgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy8kYW5jaG9yXCJcbmltcG9ydCBLZXl3b3JkJGR5bmFtaWNBbmNob3IgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy8kZHluYW1pY0FuY2hvclwiXG5pbXBvcnQgS2V5d29yZCRyZWYgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy8kcmVmXCJcbmltcG9ydCBLZXl3b3JkJGR5bmFtaWNSZWYgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy8kZHluYW1pY1JlZlwiXG5pbXBvcnQgS2V5d29yZCRkZWZzIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvJGRlZnNcIlxuaW1wb3J0IEtleXdvcmQkY29tbWVudCBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzLyRjb21tZW50XCJcbmltcG9ydCBLZXl3b3JkQWxsT2YgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9BbGxPZlwiXG5pbXBvcnQgS2V5d29yZEFueU9mIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvQW55T2ZcIlxuaW1wb3J0IEtleXdvcmRPbmVPZiBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL09uZU9mXCJcbmltcG9ydCBLZXl3b3JkTm90IGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvTm90XCJcbmltcG9ydCBLZXl3b3JkSWYgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9JZlwiXG5pbXBvcnQgS2V5d29yZFRoZW4gZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9UaGVuXCJcbmltcG9ydCBLZXl3b3JkRWxzZSBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0Vsc2VcIlxuaW1wb3J0IEtleXdvcmREZXBlbmRlbnRTY2hlbWFzIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvRGVwZW5kZW50U2NoZW1hc1wiXG5pbXBvcnQgS2V5d29yZFByZWZpeEl0ZW1zIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvUHJlZml4SXRlbXNcIlxuaW1wb3J0IEtleXdvcmRJdGVtcyBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0l0ZW1zXCJcbmltcG9ydCBLZXl3b3JkQ29udGFpbnMgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9Db250YWluc1wiXG5pbXBvcnQgS2V5d29yZFByb3BlcnRpZXMgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9Qcm9wZXJ0aWVzL1Byb3BlcnRpZXNcIlxuaW1wb3J0IEtleXdvcmRQYXR0ZXJuUHJvcGVydGllcyBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL1BhdHRlcm5Qcm9wZXJ0aWVzL1BhdHRlcm5Qcm9wZXJ0aWVzXCJcbmltcG9ydCBLZXl3b3JkQWRkaXRpb25hbFByb3BlcnRpZXMgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9BZGRpdGlvbmFsUHJvcGVydGllc1wiXG5pbXBvcnQgS2V5d29yZFByb3BlcnR5TmFtZXMgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9Qcm9wZXJ0eU5hbWVzXCJcbmltcG9ydCBLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtcyBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL1VuZXZhbHVhdGVkSXRlbXNcIlxuaW1wb3J0IEtleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXMgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9VbmV2YWx1YXRlZFByb3BlcnRpZXNcIlxuaW1wb3J0IEtleXdvcmRUeXBlIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvVHlwZVwiXG5pbXBvcnQgS2V5d29yZEVudW0gZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9FbnVtL0VudW1cIlxuaW1wb3J0IEtleXdvcmRDb25zdCBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0NvbnN0L0NvbnN0XCJcbmltcG9ydCBLZXl3b3JkQ29uc3RyYWludCBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0NvbnN0cmFpbnQvQ29uc3RyYWludFwiXG5pbXBvcnQgS2V5d29yZERlcGVuZGVudFJlcXVpcmVkIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvRGVwZW5kZW50UmVxdWlyZWQvRGVwZW5kZW50UmVxdWlyZWRcIlxuaW1wb3J0IEtleXdvcmRDb250ZW50U2NoZW1hIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvQ29udGVudFNjaGVtYVwiXG5pbXBvcnQgS2V5d29yZFRpdGxlIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvVGl0bGUvVGl0bGVcIlxuaW1wb3J0IEtleXdvcmREZXNjcmlwdGlvbiBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0Rlc2NyaXB0aW9uL0Rlc2NyaXB0aW9uXCJcbmltcG9ydCBLZXl3b3JkRGVmYXVsdCBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0RlZmF1bHQvRGVmYXVsdFwiXG5pbXBvcnQgS2V5d29yZERlcHJlY2F0ZWQgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9EZXByZWNhdGVkXCJcbmltcG9ydCBLZXl3b3JkUmVhZE9ubHkgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9SZWFkT25seVwiXG5pbXBvcnQgS2V5d29yZFdyaXRlT25seSBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL1dyaXRlT25seVwiXG5pbXBvcnQgS2V5d29yZEV4YW1wbGVzIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvRXhhbXBsZXMvRXhhbXBsZXNcIlxuaW1wb3J0IEV4dGVuc2lvbktleXdvcmRzIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvRXh0ZW5zaW9uS2V5d29yZHMvRXh0ZW5zaW9uS2V5d29yZHNcIlxuaW1wb3J0IEpTT05WaWV3ZXIgZnJvbSBcIi4vY29tcG9uZW50cy9KU09OVmlld2VyL0pTT05WaWV3ZXJcIlxuaW1wb3J0IEFjY29yZGlvbiBmcm9tIFwiLi9jb21wb25lbnRzL0FjY29yZGlvbi9BY2NvcmRpb25cIlxuaW1wb3J0IEV4cGFuZERlZXBCdXR0b24gZnJvbSBcIi4vY29tcG9uZW50cy9FeHBhbmREZWVwQnV0dG9uL0V4cGFuZERlZXBCdXR0b25cIlxuaW1wb3J0IENoZXZyb25SaWdodEljb24gZnJvbSBcIi4vY29tcG9uZW50cy9pY29ucy9DaGV2cm9uUmlnaHRcIlxuaW1wb3J0IHsgSlNPTlNjaGVtYUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0XCJcbmltcG9ydCB7IHVzZUZuIH0gZnJvbSBcIi4vaG9va3NcIlxuaW1wb3J0IHtcbiAgbWFrZUdldFRpdGxlLFxuICBpc0Jvb2xlYW5KU09OU2NoZW1hLFxuICB1cHBlckZpcnN0LFxuICBtYWtlR2V0VHlwZSxcbiAgaGFzS2V5d29yZCxcbiAgbWFrZUlzRXhwYW5kYWJsZSxcbiAgc3RyaW5naWZ5LFxuICBzdHJpbmdpZnlDb25zdHJhaW50cyxcbiAgZ2V0RGVwZW5kZW50UmVxdWlyZWQsXG4gIGdldFNjaGVtYUtleXdvcmRzLFxuICBtYWtlR2V0RXh0ZW5zaW9uS2V5d29yZHMsXG59IGZyb20gXCIuL2ZuXCJcblxuZXhwb3J0IGNvbnN0IHdpdGhKU09OU2NoZW1hQ29udGV4dCA9IChDb21wb25lbnQsIG92ZXJyaWRlcyA9IHt9KSA9PiB7XG4gIGNvbnN0IHZhbHVlID0ge1xuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgIEpTT05TY2hlbWEsXG4gICAgICBLZXl3b3JkJHNjaGVtYSxcbiAgICAgIEtleXdvcmQkdm9jYWJ1bGFyeSxcbiAgICAgIEtleXdvcmQkaWQsXG4gICAgICBLZXl3b3JkJGFuY2hvcixcbiAgICAgIEtleXdvcmQkZHluYW1pY0FuY2hvcixcbiAgICAgIEtleXdvcmQkcmVmLFxuICAgICAgS2V5d29yZCRkeW5hbWljUmVmLFxuICAgICAgS2V5d29yZCRkZWZzLFxuICAgICAgS2V5d29yZCRjb21tZW50LFxuICAgICAgS2V5d29yZEFsbE9mLFxuICAgICAgS2V5d29yZEFueU9mLFxuICAgICAgS2V5d29yZE9uZU9mLFxuICAgICAgS2V5d29yZE5vdCxcbiAgICAgIEtleXdvcmRJZixcbiAgICAgIEtleXdvcmRUaGVuLFxuICAgICAgS2V5d29yZEVsc2UsXG4gICAgICBLZXl3b3JkRGVwZW5kZW50U2NoZW1hcyxcbiAgICAgIEtleXdvcmRQcmVmaXhJdGVtcyxcbiAgICAgIEtleXdvcmRJdGVtcyxcbiAgICAgIEtleXdvcmRDb250YWlucyxcbiAgICAgIEtleXdvcmRQcm9wZXJ0aWVzLFxuICAgICAgS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzLFxuICAgICAgS2V5d29yZEFkZGl0aW9uYWxQcm9wZXJ0aWVzLFxuICAgICAgS2V5d29yZFByb3BlcnR5TmFtZXMsXG4gICAgICBLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtcyxcbiAgICAgIEtleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXMsXG4gICAgICBLZXl3b3JkVHlwZSxcbiAgICAgIEtleXdvcmRFbnVtLFxuICAgICAgS2V5d29yZENvbnN0LFxuICAgICAgS2V5d29yZENvbnN0cmFpbnQsXG4gICAgICBLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQsXG4gICAgICBLZXl3b3JkQ29udGVudFNjaGVtYSxcbiAgICAgIEtleXdvcmRUaXRsZSxcbiAgICAgIEtleXdvcmREZXNjcmlwdGlvbixcbiAgICAgIEtleXdvcmREZWZhdWx0LFxuICAgICAgS2V5d29yZERlcHJlY2F0ZWQsXG4gICAgICBLZXl3b3JkUmVhZE9ubHksXG4gICAgICBLZXl3b3JkV3JpdGVPbmx5LFxuICAgICAgS2V5d29yZEV4YW1wbGVzLFxuICAgICAgRXh0ZW5zaW9uS2V5d29yZHMsXG4gICAgICBKU09OVmlld2VyLFxuICAgICAgQWNjb3JkaW9uLFxuICAgICAgRXhwYW5kRGVlcEJ1dHRvbixcbiAgICAgIENoZXZyb25SaWdodEljb24sXG4gICAgICAuLi5vdmVycmlkZXMuY29tcG9uZW50cyxcbiAgICB9LFxuICAgIGNvbmZpZzoge1xuICAgICAgZGVmYXVsdCRzY2hlbWE6IFwiaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWFcIixcbiAgICAgIC8qKlxuICAgICAgICogRGVmaW5lcyBhbiB1cHBlciBleGNsdXNpdmUgYm91bmRhcnkgb2YgdGhlIGxldmVsIHJhbmdlIGZvciBhdXRvbWF0aWMgZXhwYW5zaW9uLlxuICAgICAgICpcbiAgICAgICAqIDAgLT4gZG8gbm90aGluZ1xuICAgICAgICogMSAtPiBbMF0uLi4oMSlcbiAgICAgICAqIDIgLT4gWzBdLi4uKDIpXG4gICAgICAgKiAzIC0+IFswXS4uLigzKVxuICAgICAgICovXG4gICAgICBkZWZhdWx0RXhwYW5kZWRMZXZlbHM6IDAsIC8vIDIgPSAwLi4uMlxuICAgICAgc2hvd0V4dGVuc2lvbktleXdvcmRzOiB0cnVlLFxuICAgICAgLi4ub3ZlcnJpZGVzLmNvbmZpZyxcbiAgICB9LFxuICAgIGZuOiB7XG4gICAgICB1cHBlckZpcnN0LFxuICAgICAgZ2V0VGl0bGU6IG1ha2VHZXRUaXRsZSh1c2VGbiksXG4gICAgICBnZXRUeXBlOiBtYWtlR2V0VHlwZSh1c2VGbiksXG4gICAgICBpc0Jvb2xlYW5KU09OU2NoZW1hLFxuICAgICAgaGFzS2V5d29yZCxcbiAgICAgIGlzRXhwYW5kYWJsZTogbWFrZUlzRXhwYW5kYWJsZSh1c2VGbiksXG4gICAgICBzdHJpbmdpZnksXG4gICAgICBzdHJpbmdpZnlDb25zdHJhaW50cyxcbiAgICAgIGdldERlcGVuZGVudFJlcXVpcmVkLFxuICAgICAgZ2V0U2NoZW1hS2V5d29yZHMsXG4gICAgICBnZXRFeHRlbnNpb25LZXl3b3JkczogbWFrZUdldEV4dGVuc2lvbktleXdvcmRzKHVzZUZuKSxcbiAgICAgIC4uLm92ZXJyaWRlcy5mbixcbiAgICB9LFxuICAgIHN0YXRlOiB7IHBhdGhzOiB7fSB9LFxuICB9XG5cbiAgY29uc3QgSE9DID0gKHByb3BzKSA9PiAoXG4gICAgPEpTT05TY2hlbWFDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+XG4gICAgICA8Q29tcG9uZW50IHsuLi5wcm9wc30gLz5cbiAgICA8L0pTT05TY2hlbWFDb250ZXh0LlByb3ZpZGVyPlxuICApXG4gIEhPQy5jb250ZXh0cyA9IHtcbiAgICBKU09OU2NoZW1hQ29udGV4dCxcbiAgfVxuICBIT0MuZGlzcGxheU5hbWUgPSBDb21wb25lbnQuZGlzcGxheU5hbWVcblxuICByZXR1cm4gSE9DXG59XG5cbmV4cG9ydCBjb25zdCBtYWtlV2l0aEpTT05TY2hlbWFTeXN0ZW1Db250ZXh0ID1cbiAgKHsgZ2V0U3lzdGVtIH0pID0+XG4gIChDb21wb25lbnQsIG92ZXJyaWRlcyA9IHt9KSA9PiB7XG4gICAgY29uc3QgeyBnZXRDb21wb25lbnQsIGdldENvbmZpZ3MgfSA9IGdldFN5c3RlbSgpXG4gICAgY29uc3QgY29uZmlncyA9IGdldENvbmZpZ3MoKVxuXG4gICAgY29uc3QgSlNPTlNjaGVtYSA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJcIilcbiAgICBjb25zdCBLZXl3b3JkJHNjaGVtYSA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJHNjaGVtYVwiKVxuICAgIGNvbnN0IEtleXdvcmQkdm9jYWJ1bGFyeSA9IGdldENvbXBvbmVudChcbiAgICAgIFwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkdm9jYWJ1bGFyeVwiXG4gICAgKVxuICAgIGNvbnN0IEtleXdvcmQkaWQgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRpZFwiKVxuICAgIGNvbnN0IEtleXdvcmQkYW5jaG9yID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkYW5jaG9yXCIpXG4gICAgY29uc3QgS2V5d29yZCRkeW5hbWljQW5jaG9yID0gZ2V0Q29tcG9uZW50KFxuICAgICAgXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRkeW5hbWljQW5jaG9yXCJcbiAgICApXG4gICAgY29uc3QgS2V5d29yZCRyZWYgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRyZWZcIilcbiAgICBjb25zdCBLZXl3b3JkJGR5bmFtaWNSZWYgPSBnZXRDb21wb25lbnQoXG4gICAgICBcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGR5bmFtaWNSZWZcIlxuICAgIClcbiAgICBjb25zdCBLZXl3b3JkJGRlZnMgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRkZWZzXCIpXG4gICAgY29uc3QgS2V5d29yZCRjb21tZW50ID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkY29tbWVudFwiKVxuICAgIGNvbnN0IEtleXdvcmRBbGxPZiA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQWxsT2ZcIilcbiAgICBjb25zdCBLZXl3b3JkQW55T2YgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEFueU9mXCIpXG4gICAgY29uc3QgS2V5d29yZE9uZU9mID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRPbmVPZlwiKVxuICAgIGNvbnN0IEtleXdvcmROb3QgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZE5vdFwiKVxuICAgIGNvbnN0IEtleXdvcmRJZiA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkSWZcIilcbiAgICBjb25zdCBLZXl3b3JkVGhlbiA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVGhlblwiKVxuICAgIGNvbnN0IEtleXdvcmRFbHNlID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFbHNlXCIpXG4gICAgY29uc3QgS2V5d29yZERlcGVuZGVudFNjaGVtYXMgPSBnZXRDb21wb25lbnQoXG4gICAgICBcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwZW5kZW50U2NoZW1hc1wiXG4gICAgKVxuICAgIGNvbnN0IEtleXdvcmRQcmVmaXhJdGVtcyA9IGdldENvbXBvbmVudChcbiAgICAgIFwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRQcmVmaXhJdGVtc1wiXG4gICAgKVxuICAgIGNvbnN0IEtleXdvcmRJdGVtcyA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkSXRlbXNcIilcbiAgICBjb25zdCBLZXl3b3JkQ29udGFpbnMgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZENvbnRhaW5zXCIpXG4gICAgY29uc3QgS2V5d29yZFByb3BlcnRpZXMgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByb3BlcnRpZXNcIilcbiAgICBjb25zdCBLZXl3b3JkUGF0dGVyblByb3BlcnRpZXMgPSBnZXRDb21wb25lbnQoXG4gICAgICBcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUGF0dGVyblByb3BlcnRpZXNcIlxuICAgIClcbiAgICBjb25zdCBLZXl3b3JkQWRkaXRpb25hbFByb3BlcnRpZXMgPSBnZXRDb21wb25lbnQoXG4gICAgICBcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQWRkaXRpb25hbFByb3BlcnRpZXNcIlxuICAgIClcbiAgICBjb25zdCBLZXl3b3JkUHJvcGVydHlOYW1lcyA9IGdldENvbXBvbmVudChcbiAgICAgIFwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRQcm9wZXJ0eU5hbWVzXCJcbiAgICApXG4gICAgY29uc3QgS2V5d29yZFVuZXZhbHVhdGVkSXRlbXMgPSBnZXRDb21wb25lbnQoXG4gICAgICBcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtc1wiXG4gICAgKVxuICAgIGNvbnN0IEtleXdvcmRVbmV2YWx1YXRlZFByb3BlcnRpZXMgPSBnZXRDb21wb25lbnQoXG4gICAgICBcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzXCJcbiAgICApXG4gICAgY29uc3QgS2V5d29yZFR5cGUgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFR5cGVcIilcbiAgICBjb25zdCBLZXl3b3JkRW51bSA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRW51bVwiKVxuICAgIGNvbnN0IEtleXdvcmRDb25zdCA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29uc3RcIilcbiAgICBjb25zdCBLZXl3b3JkQ29uc3RyYWludCA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29uc3RyYWludFwiKVxuICAgIGNvbnN0IEtleXdvcmREZXBlbmRlbnRSZXF1aXJlZCA9IGdldENvbXBvbmVudChcbiAgICAgIFwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXBlbmRlbnRSZXF1aXJlZFwiXG4gICAgKVxuICAgIGNvbnN0IEtleXdvcmRDb250ZW50U2NoZW1hID0gZ2V0Q29tcG9uZW50KFxuICAgICAgXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZENvbnRlbnRTY2hlbWFcIlxuICAgIClcbiAgICBjb25zdCBLZXl3b3JkVGl0bGUgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRpdGxlXCIpXG4gICAgY29uc3QgS2V5d29yZERlc2NyaXB0aW9uID0gZ2V0Q29tcG9uZW50KFxuICAgICAgXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlc2NyaXB0aW9uXCJcbiAgICApXG4gICAgY29uc3QgS2V5d29yZERlZmF1bHQgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlZmF1bHRcIilcbiAgICBjb25zdCBLZXl3b3JkRGVwcmVjYXRlZCA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwcmVjYXRlZFwiKVxuICAgIGNvbnN0IEtleXdvcmRSZWFkT25seSA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUmVhZE9ubHlcIilcbiAgICBjb25zdCBLZXl3b3JkV3JpdGVPbmx5ID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRXcml0ZU9ubHlcIilcbiAgICBjb25zdCBLZXl3b3JkRXhhbXBsZXMgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4YW1wbGVzXCIpXG4gICAgY29uc3QgRXh0ZW5zaW9uS2V5d29yZHMgPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyRXh0ZW5zaW9uS2V5d29yZHNcIilcbiAgICBjb25zdCBKU09OVmlld2VyID0gZ2V0Q29tcG9uZW50KFwiSlNPTlNjaGVtYTIwMjAxMkpTT05WaWV3ZXJcIilcbiAgICBjb25zdCBBY2NvcmRpb24gPSBnZXRDb21wb25lbnQoXCJKU09OU2NoZW1hMjAyMDEyQWNjb3JkaW9uXCIpXG4gICAgY29uc3QgRXhwYW5kRGVlcEJ1dHRvbiA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJFeHBhbmREZWVwQnV0dG9uXCIpXG4gICAgY29uc3QgQ2hldnJvblJpZ2h0SWNvbiA9IGdldENvbXBvbmVudChcIkpTT05TY2hlbWEyMDIwMTJDaGV2cm9uUmlnaHRJY29uXCIpXG5cbiAgICByZXR1cm4gd2l0aEpTT05TY2hlbWFDb250ZXh0KENvbXBvbmVudCwge1xuICAgICAgY29tcG9uZW50czoge1xuICAgICAgICBKU09OU2NoZW1hLFxuICAgICAgICBLZXl3b3JkJHNjaGVtYSxcbiAgICAgICAgS2V5d29yZCR2b2NhYnVsYXJ5LFxuICAgICAgICBLZXl3b3JkJGlkLFxuICAgICAgICBLZXl3b3JkJGFuY2hvcixcbiAgICAgICAgS2V5d29yZCRkeW5hbWljQW5jaG9yLFxuICAgICAgICBLZXl3b3JkJHJlZixcbiAgICAgICAgS2V5d29yZCRkeW5hbWljUmVmLFxuICAgICAgICBLZXl3b3JkJGRlZnMsXG4gICAgICAgIEtleXdvcmQkY29tbWVudCxcbiAgICAgICAgS2V5d29yZEFsbE9mLFxuICAgICAgICBLZXl3b3JkQW55T2YsXG4gICAgICAgIEtleXdvcmRPbmVPZixcbiAgICAgICAgS2V5d29yZE5vdCxcbiAgICAgICAgS2V5d29yZElmLFxuICAgICAgICBLZXl3b3JkVGhlbixcbiAgICAgICAgS2V5d29yZEVsc2UsXG4gICAgICAgIEtleXdvcmREZXBlbmRlbnRTY2hlbWFzLFxuICAgICAgICBLZXl3b3JkUHJlZml4SXRlbXMsXG4gICAgICAgIEtleXdvcmRJdGVtcyxcbiAgICAgICAgS2V5d29yZENvbnRhaW5zLFxuICAgICAgICBLZXl3b3JkUHJvcGVydGllcyxcbiAgICAgICAgS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzLFxuICAgICAgICBLZXl3b3JkQWRkaXRpb25hbFByb3BlcnRpZXMsXG4gICAgICAgIEtleXdvcmRQcm9wZXJ0eU5hbWVzLFxuICAgICAgICBLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtcyxcbiAgICAgICAgS2V5d29yZFVuZXZhbHVhdGVkUHJvcGVydGllcyxcbiAgICAgICAgS2V5d29yZFR5cGUsXG4gICAgICAgIEtleXdvcmRFbnVtLFxuICAgICAgICBLZXl3b3JkQ29uc3QsXG4gICAgICAgIEtleXdvcmRDb25zdHJhaW50LFxuICAgICAgICBLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQsXG4gICAgICAgIEtleXdvcmRDb250ZW50U2NoZW1hLFxuICAgICAgICBLZXl3b3JkVGl0bGUsXG4gICAgICAgIEtleXdvcmREZXNjcmlwdGlvbixcbiAgICAgICAgS2V5d29yZERlZmF1bHQsXG4gICAgICAgIEtleXdvcmREZXByZWNhdGVkLFxuICAgICAgICBLZXl3b3JkUmVhZE9ubHksXG4gICAgICAgIEtleXdvcmRXcml0ZU9ubHksXG4gICAgICAgIEtleXdvcmRFeGFtcGxlcyxcbiAgICAgICAgRXh0ZW5zaW9uS2V5d29yZHMsXG4gICAgICAgIEpTT05WaWV3ZXIsXG4gICAgICAgIEFjY29yZGlvbixcbiAgICAgICAgRXhwYW5kRGVlcEJ1dHRvbixcbiAgICAgICAgQ2hldnJvblJpZ2h0SWNvbixcbiAgICAgICAgLi4ub3ZlcnJpZGVzLmNvbXBvbmVudHMsXG4gICAgICB9LFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIHNob3dFeHRlbnNpb25LZXl3b3JkczogY29uZmlncy5zaG93RXh0ZW5zaW9ucyxcbiAgICAgICAgLi4ub3ZlcnJpZGVzLmNvbmZpZyxcbiAgICAgIH0sXG4gICAgICBmbjoge1xuICAgICAgICAuLi5vdmVycmlkZXMuZm4sXG4gICAgICB9LFxuICAgIH0pXG4gIH1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBKU09OU2NoZW1hIGZyb20gXCIuL2NvbXBvbmVudHMvSlNPTlNjaGVtYS9KU09OU2NoZW1hXCJcbmltcG9ydCBLZXl3b3JkJHNjaGVtYSBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzLyRzY2hlbWFcIlxuaW1wb3J0IEtleXdvcmQkdm9jYWJ1bGFyeSBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzLyR2b2NhYnVsYXJ5LyR2b2NhYnVsYXJ5XCJcbmltcG9ydCBLZXl3b3JkJGlkIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvJGlkXCJcbmltcG9ydCBLZXl3b3JkJGFuY2hvciBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzLyRhbmNob3JcIlxuaW1wb3J0IEtleXdvcmQkZHluYW1pY0FuY2hvciBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzLyRkeW5hbWljQW5jaG9yXCJcbmltcG9ydCBLZXl3b3JkJHJlZiBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzLyRyZWZcIlxuaW1wb3J0IEtleXdvcmQkZHluYW1pY1JlZiBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzLyRkeW5hbWljUmVmXCJcbmltcG9ydCBLZXl3b3JkJGRlZnMgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy8kZGVmc1wiXG5pbXBvcnQgS2V5d29yZCRjb21tZW50IGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvJGNvbW1lbnRcIlxuaW1wb3J0IEtleXdvcmRBbGxPZiBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0FsbE9mXCJcbmltcG9ydCBLZXl3b3JkQW55T2YgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9BbnlPZlwiXG5pbXBvcnQgS2V5d29yZE9uZU9mIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvT25lT2ZcIlxuaW1wb3J0IEtleXdvcmROb3QgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9Ob3RcIlxuaW1wb3J0IEtleXdvcmRJZiBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0lmXCJcbmltcG9ydCBLZXl3b3JkVGhlbiBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL1RoZW5cIlxuaW1wb3J0IEtleXdvcmRFbHNlIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvRWxzZVwiXG5pbXBvcnQgS2V5d29yZERlcGVuZGVudFNjaGVtYXMgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9EZXBlbmRlbnRTY2hlbWFzXCJcbmltcG9ydCBLZXl3b3JkUHJlZml4SXRlbXMgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9QcmVmaXhJdGVtc1wiXG5pbXBvcnQgS2V5d29yZEl0ZW1zIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvSXRlbXNcIlxuaW1wb3J0IEtleXdvcmRDb250YWlucyBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0NvbnRhaW5zXCJcbmltcG9ydCBLZXl3b3JkUHJvcGVydGllcyBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL1Byb3BlcnRpZXMvUHJvcGVydGllc1wiXG5pbXBvcnQgS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvUGF0dGVyblByb3BlcnRpZXMvUGF0dGVyblByb3BlcnRpZXNcIlxuaW1wb3J0IEtleXdvcmRBZGRpdGlvbmFsUHJvcGVydGllcyBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0FkZGl0aW9uYWxQcm9wZXJ0aWVzXCJcbmltcG9ydCBLZXl3b3JkUHJvcGVydHlOYW1lcyBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL1Byb3BlcnR5TmFtZXNcIlxuaW1wb3J0IEtleXdvcmRVbmV2YWx1YXRlZEl0ZW1zIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvVW5ldmFsdWF0ZWRJdGVtc1wiXG5pbXBvcnQgS2V5d29yZFVuZXZhbHVhdGVkUHJvcGVydGllcyBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL1VuZXZhbHVhdGVkUHJvcGVydGllc1wiXG5pbXBvcnQgS2V5d29yZFR5cGUgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9UeXBlXCJcbmltcG9ydCBLZXl3b3JkRW51bSBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0VudW0vRW51bVwiXG5pbXBvcnQgS2V5d29yZENvbnN0IGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvQ29uc3QvQ29uc3RcIlxuaW1wb3J0IEtleXdvcmRDb25zdHJhaW50IGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvQ29uc3RyYWludC9Db25zdHJhaW50XCJcbmltcG9ydCBLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9EZXBlbmRlbnRSZXF1aXJlZC9EZXBlbmRlbnRSZXF1aXJlZFwiXG5pbXBvcnQgS2V5d29yZENvbnRlbnRTY2hlbWEgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9Db250ZW50U2NoZW1hXCJcbmltcG9ydCBLZXl3b3JkVGl0bGUgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9UaXRsZS9UaXRsZVwiXG5pbXBvcnQgS2V5d29yZERlc2NyaXB0aW9uIGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvRGVzY3JpcHRpb24vRGVzY3JpcHRpb25cIlxuaW1wb3J0IEtleXdvcmREZWZhdWx0IGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvRGVmYXVsdC9EZWZhdWx0XCJcbmltcG9ydCBLZXl3b3JkRGVwcmVjYXRlZCBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL0RlcHJlY2F0ZWRcIlxuaW1wb3J0IEtleXdvcmRSZWFkT25seSBmcm9tIFwiLi9jb21wb25lbnRzL2tleXdvcmRzL1JlYWRPbmx5XCJcbmltcG9ydCBLZXl3b3JkV3JpdGVPbmx5IGZyb20gXCIuL2NvbXBvbmVudHMva2V5d29yZHMvV3JpdGVPbmx5XCJcbmltcG9ydCBLZXl3b3JkRXhhbXBsZXMgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9FeGFtcGxlcy9FeGFtcGxlc1wiXG5pbXBvcnQgRXh0ZW5zaW9uS2V5d29yZHMgZnJvbSBcIi4vY29tcG9uZW50cy9rZXl3b3Jkcy9FeHRlbnNpb25LZXl3b3Jkcy9FeHRlbnNpb25LZXl3b3Jkc1wiXG5pbXBvcnQgSlNPTlZpZXdlciBmcm9tIFwiLi9jb21wb25lbnRzL0pTT05WaWV3ZXIvSlNPTlZpZXdlclwiXG5pbXBvcnQgQWNjb3JkaW9uIGZyb20gXCIuL2NvbXBvbmVudHMvQWNjb3JkaW9uL0FjY29yZGlvblwiXG5pbXBvcnQgRXhwYW5kRGVlcEJ1dHRvbiBmcm9tIFwiLi9jb21wb25lbnRzL0V4cGFuZERlZXBCdXR0b24vRXhwYW5kRGVlcEJ1dHRvblwiXG5pbXBvcnQgQ2hldnJvblJpZ2h0SWNvbiBmcm9tIFwiLi9jb21wb25lbnRzL2ljb25zL0NoZXZyb25SaWdodFwiXG5pbXBvcnQge1xuICB1cHBlckZpcnN0LFxuICBoYXNLZXl3b3JkLFxuICBtYWtlR2V0VGl0bGUsXG4gIG1ha2VHZXRUeXBlLFxuICBtYWtlSXNFeHBhbmRhYmxlLFxuICBpc0Jvb2xlYW5KU09OU2NoZW1hLFxuICBnZXRTY2hlbWFLZXl3b3JkcyxcbiAgbWFrZUdldEV4dGVuc2lvbktleXdvcmRzLFxuICBoYXNTY2hlbWFUeXBlLFxufSBmcm9tIFwiLi9mblwiXG5pbXBvcnQgeyBKU09OU2NoZW1hUGF0aENvbnRleHQsIEpTT05TY2hlbWFMZXZlbENvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0XCJcbmltcG9ydCB7XG4gIHVzZUZuLFxuICB1c2VDb25maWcsXG4gIHVzZUNvbXBvbmVudCxcbiAgdXNlSXNFeHBhbmRlZCxcbiAgdXNlUGF0aCxcbiAgdXNlTGV2ZWwsXG59IGZyb20gXCIuL2hvb2tzXCJcbmltcG9ydCB7IHdpdGhKU09OU2NoZW1hQ29udGV4dCwgbWFrZVdpdGhKU09OU2NoZW1hU3lzdGVtQ29udGV4dCB9IGZyb20gXCIuL2hvY1wiXG5cbmNvbnN0IEpTT05TY2hlbWEyMDIwMTJQbHVnaW4gPSAoeyBnZXRTeXN0ZW0sIGZuIH0pID0+IHtcbiAgY29uc3QgZm5BY2Nlc3NvciA9ICgpID0+ICh7XG4gICAgdXBwZXJGaXJzdDogZm4udXBwZXJGaXJzdCxcbiAgICAuLi5mbi5qc29uU2NoZW1hMjAyMDEyLFxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgY29tcG9uZW50czoge1xuICAgICAgSlNPTlNjaGVtYTIwMjAxMjogSlNPTlNjaGVtYSxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJHNjaGVtYTogS2V5d29yZCRzY2hlbWEsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZCR2b2NhYnVsYXJ5OiBLZXl3b3JkJHZvY2FidWxhcnksXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRpZDogS2V5d29yZCRpZCxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGFuY2hvcjogS2V5d29yZCRhbmNob3IsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRkeW5hbWljQW5jaG9yOiBLZXl3b3JkJGR5bmFtaWNBbmNob3IsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRyZWY6IEtleXdvcmQkcmVmLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkZHluYW1pY1JlZjogS2V5d29yZCRkeW5hbWljUmVmLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkZGVmczogS2V5d29yZCRkZWZzLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkY29tbWVudDogS2V5d29yZCRjb21tZW50LFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBbGxPZjogS2V5d29yZEFsbE9mLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBbnlPZjogS2V5d29yZEFueU9mLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRPbmVPZjogS2V5d29yZE9uZU9mLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmROb3Q6IEtleXdvcmROb3QsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZElmOiBLZXl3b3JkSWYsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRoZW46IEtleXdvcmRUaGVuLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFbHNlOiBLZXl3b3JkRWxzZSxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwZW5kZW50U2NoZW1hczogS2V5d29yZERlcGVuZGVudFNjaGVtYXMsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByZWZpeEl0ZW1zOiBLZXl3b3JkUHJlZml4SXRlbXMsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZEl0ZW1zOiBLZXl3b3JkSXRlbXMsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZENvbnRhaW5zOiBLZXl3b3JkQ29udGFpbnMsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByb3BlcnRpZXM6IEtleXdvcmRQcm9wZXJ0aWVzLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRQYXR0ZXJuUHJvcGVydGllczogS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBZGRpdGlvbmFsUHJvcGVydGllczogS2V5d29yZEFkZGl0aW9uYWxQcm9wZXJ0aWVzLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRQcm9wZXJ0eU5hbWVzOiBLZXl3b3JkUHJvcGVydHlOYW1lcyxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtczogS2V5d29yZFVuZXZhbHVhdGVkSXRlbXMsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZFVuZXZhbHVhdGVkUHJvcGVydGllczpcbiAgICAgICAgS2V5d29yZFVuZXZhbHVhdGVkUHJvcGVydGllcyxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVHlwZTogS2V5d29yZFR5cGUsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZEVudW06IEtleXdvcmRFbnVtLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRDb25zdDogS2V5d29yZENvbnN0LFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRDb25zdHJhaW50OiBLZXl3b3JkQ29uc3RyYWludCxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQ6IEtleXdvcmREZXBlbmRlbnRSZXF1aXJlZCxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29udGVudFNjaGVtYTogS2V5d29yZENvbnRlbnRTY2hlbWEsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRpdGxlOiBLZXl3b3JkVGl0bGUsXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlc2NyaXB0aW9uOiBLZXl3b3JkRGVzY3JpcHRpb24sXG4gICAgICBKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlZmF1bHQ6IEtleXdvcmREZWZhdWx0LFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXByZWNhdGVkOiBLZXl3b3JkRGVwcmVjYXRlZCxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUmVhZE9ubHk6IEtleXdvcmRSZWFkT25seSxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJLZXl3b3JkV3JpdGVPbmx5OiBLZXl3b3JkV3JpdGVPbmx5LFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFeGFtcGxlczogS2V5d29yZEV4YW1wbGVzLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMkV4dGVuc2lvbktleXdvcmRzOiBFeHRlbnNpb25LZXl3b3JkcyxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJKU09OVmlld2VyOiBKU09OVmlld2VyLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMkFjY29yZGlvbjogQWNjb3JkaW9uLFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMkV4cGFuZERlZXBCdXR0b246IEV4cGFuZERlZXBCdXR0b24sXG4gICAgICBKU09OU2NoZW1hMjAyMDEyQ2hldnJvblJpZ2h0SWNvbjogQ2hldnJvblJpZ2h0SWNvbixcbiAgICAgIHdpdGhKU09OU2NoZW1hMjAyMDEyQ29udGV4dDogd2l0aEpTT05TY2hlbWFDb250ZXh0LFxuICAgICAgd2l0aEpTT05TY2hlbWEyMDIwMTJTeXN0ZW1Db250ZXh0OlxuICAgICAgICBtYWtlV2l0aEpTT05TY2hlbWFTeXN0ZW1Db250ZXh0KGdldFN5c3RlbSgpKSxcbiAgICAgIEpTT05TY2hlbWEyMDIwMTJQYXRoQ29udGV4dDogKCkgPT4gSlNPTlNjaGVtYVBhdGhDb250ZXh0LFxuICAgICAgSlNPTlNjaGVtYTIwMjAxMkxldmVsQ29udGV4dDogKCkgPT4gSlNPTlNjaGVtYUxldmVsQ29udGV4dCxcbiAgICB9LFxuICAgIGZuOiB7XG4gICAgICB1cHBlckZpcnN0LFxuICAgICAganNvblNjaGVtYTIwMjAxMjoge1xuICAgICAgICBnZXRUaXRsZTogbWFrZUdldFRpdGxlKGZuQWNjZXNzb3IpLFxuICAgICAgICBnZXRUeXBlOiBtYWtlR2V0VHlwZShmbkFjY2Vzc29yKSxcbiAgICAgICAgaXNFeHBhbmRhYmxlOiBtYWtlSXNFeHBhbmRhYmxlKGZuQWNjZXNzb3IpLFxuICAgICAgICBpc0Jvb2xlYW5KU09OU2NoZW1hLFxuICAgICAgICBoYXNLZXl3b3JkLFxuICAgICAgICB1c2VGbixcbiAgICAgICAgdXNlQ29uZmlnLFxuICAgICAgICB1c2VDb21wb25lbnQsXG4gICAgICAgIHVzZUlzRXhwYW5kZWQsXG4gICAgICAgIHVzZVBhdGgsXG4gICAgICAgIHVzZUxldmVsLFxuICAgICAgICBnZXRTY2hlbWFLZXl3b3JkcyxcbiAgICAgICAgZ2V0RXh0ZW5zaW9uS2V5d29yZHM6IG1ha2VHZXRFeHRlbnNpb25LZXl3b3JkcyhmbkFjY2Vzc29yKSxcbiAgICAgICAgaGFzU2NoZW1hVHlwZSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBKU09OU2NoZW1hMjAyMDEyUGx1Z2luXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5cbmV4cG9ydCBjb25zdCBhcHBseUFycmF5Q29uc3RyYWludHMgPSAoYXJyYXksIGNvbnN0cmFpbnRzID0ge30pID0+IHtcbiAgY29uc3QgeyBtaW5JdGVtcywgbWF4SXRlbXMsIHVuaXF1ZUl0ZW1zIH0gPSBjb25zdHJhaW50c1xuICBjb25zdCB7IGNvbnRhaW5zLCBtaW5Db250YWlucywgbWF4Q29udGFpbnMgfSA9IGNvbnN0cmFpbnRzXG4gIGxldCBjb25zdHJhaW5lZEFycmF5ID0gWy4uLmFycmF5XVxuXG4gIGlmIChjb250YWlucyAhPSBudWxsICYmIHR5cGVvZiBjb250YWlucyA9PT0gXCJvYmplY3RcIikge1xuICAgIGlmIChOdW1iZXIuaXNJbnRlZ2VyKG1pbkNvbnRhaW5zKSAmJiBtaW5Db250YWlucyA+IDEpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5zSXRlbSA9IGNvbnN0cmFpbmVkQXJyYXkuYXQoMClcbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgbWluQ29udGFpbnM7IGkgKz0gMSkge1xuICAgICAgICBjb25zdHJhaW5lZEFycmF5LnVuc2hpZnQoY29udGFpbnNJdGVtKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoTnVtYmVyLmlzSW50ZWdlcihtYXhDb250YWlucykgJiYgbWF4Q29udGFpbnMgPiAwKSB7XG4gICAgICAvKipcbiAgICAgICAqIFRoaXMgaXMgbm9vcC4gYG1pbkNvbnRhaW5zYCBhbHJlYWR5IGdlbmVyYXRlIG1pbmltdW0gcmVxdWlyZWRcbiAgICAgICAqIG51bWJlciBvZiBpdGVtcyB0aGF0IHNhdGlzZmllcyBgY29udGFpbnNgLiBgbWF4Q29udGFpbnNgIHdvdWxkXG4gICAgICAgKiBoYXZlIG5vIGVmZmVjdC5cbiAgICAgICAqL1xuICAgIH1cbiAgfVxuXG4gIGlmIChOdW1iZXIuaXNJbnRlZ2VyKG1heEl0ZW1zKSAmJiBtYXhJdGVtcyA+IDApIHtcbiAgICBjb25zdHJhaW5lZEFycmF5ID0gYXJyYXkuc2xpY2UoMCwgbWF4SXRlbXMpXG4gIH1cbiAgaWYgKE51bWJlci5pc0ludGVnZXIobWluSXRlbXMpICYmIG1pbkl0ZW1zID4gMCkge1xuICAgIGZvciAobGV0IGkgPSAwOyBjb25zdHJhaW5lZEFycmF5Lmxlbmd0aCA8IG1pbkl0ZW1zOyBpICs9IDEpIHtcbiAgICAgIGNvbnN0cmFpbmVkQXJyYXkucHVzaChjb25zdHJhaW5lZEFycmF5W2kgJSBjb25zdHJhaW5lZEFycmF5Lmxlbmd0aF0pXG4gICAgfVxuICB9XG5cbiAgaWYgKHVuaXF1ZUl0ZW1zID09PSB0cnVlKSB7XG4gICAgLyoqXG4gICAgICogIElmIHVuaXF1ZUl0ZW1zIGlzIHRydWUsIGl0IGltcGxpZXMgdGhhdCBldmVyeSBpdGVtIGluIHRoZSBhcnJheSBtdXN0IGJlIHVuaXF1ZS5cbiAgICAgKiAgVGhpcyBvdmVycmlkZXMgYW55IG1pbkl0ZW1zIGNvbnN0cmFpbnQgdGhhdCBjYW5ub3QgYmUgc2F0aXNmaWVkIHdpdGggdW5pcXVlIGl0ZW1zLlxuICAgICAqICBTbyBpZiBtaW5JdGVtcyBpcyBncmVhdGVyIHRoYW4gdGhlIG51bWJlciBvZiB1bmlxdWUgaXRlbXMsXG4gICAgICogIGl0IHNob3VsZCBiZSByZWR1Y2VkIHRvIHRoZSBudW1iZXIgb2YgdW5pcXVlIGl0ZW1zLlxuICAgICAqL1xuICAgIGNvbnN0cmFpbmVkQXJyYXkgPSBBcnJheS5mcm9tKG5ldyBTZXQoY29uc3RyYWluZWRBcnJheSkpXG4gIH1cblxuICByZXR1cm4gY29uc3RyYWluZWRBcnJheVxufVxuXG5jb25zdCBhcnJheVR5cGUgPSAoc2NoZW1hLCB7IHNhbXBsZSA9IFtdIH0gPSB7fSkgPT4ge1xuICByZXR1cm4gYXBwbHlBcnJheUNvbnN0cmFpbnRzKHNhbXBsZSwgc2NoZW1hKVxufVxuXG5leHBvcnQgZGVmYXVsdCBhcnJheVR5cGVcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cblxuY29uc3Qgb2JqZWN0VHlwZSA9ICgpID0+IHtcbiAgdGhyb3cgbmV3IEVycm9yKFwiTm90IGltcGxlbWVudGVkXCIpXG59XG5cbmV4cG9ydCBkZWZhdWx0IG9iamVjdFR5cGVcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCByYW5kb21CeXRlcyBmcm9tIFwicmFuZG9tYnl0ZXNcIlxuaW1wb3J0IFJhbmRFeHAgZnJvbSBcInJhbmRleHBcIlxuXG4vKipcbiAqIFNvbWUgb2YgdGhlIGZ1bmN0aW9ucyByZXR1cm5zIGNvbnN0YW50cy4gVGhpcyBpcyBkdWUgdG8gdGhlIG5hdHVyZVxuICogb2YgU3dhZ2dlclVJIGV4cGVjdGF0aW9ucyAtIHByb3ZpZGUgYXMgc3RhYmxlIGRhdGEgYXMgcG9zc2libGUuXG4gKlxuICogSW4gZnV0dXJlLCB3ZSBtYXkgZGVjaWRlIHRvIHJhbmRvbWl6ZSB0aGVzZSBmdW5jdGlvbiBhbmQgcHJvdmlkZVxuICogdHJ1ZSByYW5kb20gdmFsdWVzLlxuICovXG5cbmV4cG9ydCBjb25zdCBieXRlcyA9IChsZW5ndGgpID0+IHJhbmRvbUJ5dGVzKGxlbmd0aClcblxuZXhwb3J0IGNvbnN0IHJhbmRleHAgPSAocGF0dGVybikgPT4ge1xuICB0cnkge1xuICAgIC8qKlxuICAgICAqIEFwcGx5aW5nIG1heGltdW0gdmFsdWUgKDEwMCkgdG8gbnVtYmVycyBmcm9tIHJlZ2V4IHBhdHRlcm5zIHRvIGF2b2lkIFJlRG9TOlxuICAgICAqIDEuIHt4fVxuICAgICAqIDIuIHt4LH1cbiAgICAgKiAzLiB7LHl9XG4gICAgICogNC4ge3gseX1cbiAgICAgKi9cbiAgICBjb25zdCBwYXR0ZXJuU2FuaXRpemVyID1cbiAgICAgIC8oPzw9KD88IVxcXFwpXFx7KShcXGR7Myx9KSg/PVxcfSl8KD88PSg/PCFcXFxcKVxce1xcZCosKShcXGR7Myx9KSg/PVxcfSl8KD88PSg/PCFcXFxcKVxceykoXFxkezMsfSkoPz0sXFxkKlxcfSkvZ1xuICAgIGNvbnN0IHNhZmVQYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKHBhdHRlcm5TYW5pdGl6ZXIsIFwiMTAwXCIpXG4gICAgY29uc3QgcmFuZGV4cEluc3RhbmNlID0gbmV3IFJhbmRFeHAoc2FmZVBhdHRlcm4pXG4gICAgcmFuZGV4cEluc3RhbmNlLm1heCA9IDEwMFxuICAgIHJldHVybiByYW5kZXhwSW5zdGFuY2UuZ2VuKClcbiAgfSBjYXRjaCB7XG4gICAgLy8gaW52YWxpZCByZWdleCBzaG91bGQgbm90IGNhdXNlIGEgY3Jhc2ggKHJlZ2V4IHN5bnRheCB2YXJpZXMgYWNyb3NzIGxhbmd1YWdlcylcbiAgICByZXR1cm4gXCJzdHJpbmdcIlxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBwaWNrID0gKGxpc3QpID0+IHtcbiAgcmV0dXJuIGxpc3QuYXQoMClcbn1cblxuZXhwb3J0IGNvbnN0IHN0cmluZyA9ICgpID0+IFwic3RyaW5nXCJcblxuZXhwb3J0IGNvbnN0IG51bWJlciA9ICgpID0+IDBcblxuZXhwb3J0IGNvbnN0IGludGVnZXIgPSAoKSA9PiAwXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tIFwibG9kYXNoL2lzUGxhaW5PYmplY3RcIlxuXG5leHBvcnQgY29uc3QgaXNCb29sZWFuSlNPTlNjaGVtYSA9IChzY2hlbWEpID0+IHtcbiAgcmV0dXJuIHR5cGVvZiBzY2hlbWEgPT09IFwiYm9vbGVhblwiXG59XG5cbmV4cG9ydCBjb25zdCBpc0pTT05TY2hlbWFPYmplY3QgPSAoc2NoZW1hKSA9PiB7XG4gIHJldHVybiBpc1BsYWluT2JqZWN0KHNjaGVtYSlcbn1cblxuZXhwb3J0IGNvbnN0IGlzSlNPTlNjaGVtYSA9IChzY2hlbWEpID0+IHtcbiAgcmV0dXJuIGlzQm9vbGVhbkpTT05TY2hlbWEoc2NoZW1hKSB8fCBpc0pTT05TY2hlbWFPYmplY3Qoc2NoZW1hKVxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY2xhc3MgUmVnaXN0cnkge1xuICBkYXRhID0ge31cblxuICByZWdpc3RlcihuYW1lLCB2YWx1ZSkge1xuICAgIHRoaXMuZGF0YVtuYW1lXSA9IHZhbHVlXG4gIH1cblxuICB1bnJlZ2lzdGVyKG5hbWUpIHtcbiAgICBpZiAodHlwZW9mIG5hbWUgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHRoaXMuZGF0YSA9IHt9XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSB0aGlzLmRhdGFbbmFtZV1cbiAgICB9XG4gIH1cblxuICBnZXQobmFtZSkge1xuICAgIHJldHVybiB0aGlzLmRhdGFbbmFtZV1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBSZWdpc3RyeVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgaW50MzJHZW5lcmF0b3IgPSAoKSA9PiAwXG5cbmV4cG9ydCBkZWZhdWx0IGludDMyR2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBpbnQ2NEdlbmVyYXRvciA9ICgpID0+IDBcblxuZXhwb3J0IGRlZmF1bHQgaW50NjRHZW5lcmF0b3JcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGZsb2F0R2VuZXJhdG9yID0gKCkgPT4gMC4xXG5cbmV4cG9ydCBkZWZhdWx0IGZsb2F0R2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBkb3VibGVHZW5lcmF0b3IgPSAoKSA9PiAwLjFcblxuZXhwb3J0IGRlZmF1bHQgZG91YmxlR2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBlbWFpbEdlbmVyYXRvciA9ICgpID0+IFwidXNlckBleGFtcGxlLmNvbVwiXG5cbmV4cG9ydCBkZWZhdWx0IGVtYWlsR2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBpZG5FbWFpbEdlbmVyYXRvciA9ICgpID0+IFwi7Iuk66GAQGV4YW1wbGUuY29tXCJcblxuZXhwb3J0IGRlZmF1bHQgaWRuRW1haWxHZW5lcmF0b3JcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGhvc3RuYW1lR2VuZXJhdG9yID0gKCkgPT4gXCJleGFtcGxlLmNvbVwiXG5cbmV4cG9ydCBkZWZhdWx0IGhvc3RuYW1lR2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBpZG5Ib3N0bmFtZUdlbmVyYXRvciA9ICgpID0+IFwi7Iuk66GALmNvbVwiXG5cbmV4cG9ydCBkZWZhdWx0IGlkbkhvc3RuYW1lR2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBpcHY0R2VuZXJhdG9yID0gKCkgPT4gXCIxOTguNTEuMTAwLjQyXCJcblxuZXhwb3J0IGRlZmF1bHQgaXB2NEdlbmVyYXRvclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgaXB2NkdlbmVyYXRvciA9ICgpID0+IFwiMjAwMTowZGI4OjViOTY6MDAwMDowMDAwOjQyNmY6OGUxNzo2NDJhXCJcblxuZXhwb3J0IGRlZmF1bHQgaXB2NkdlbmVyYXRvclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgdXJpR2VuZXJhdG9yID0gKCkgPT4gXCJodHRwczovL2V4YW1wbGUuY29tL1wiXG5cbmV4cG9ydCBkZWZhdWx0IHVyaUdlbmVyYXRvclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgdXJpUmVmZXJlbmNlR2VuZXJhdG9yID0gKCkgPT4gXCJwYXRoL2luZGV4Lmh0bWxcIlxuXG5leHBvcnQgZGVmYXVsdCB1cmlSZWZlcmVuY2VHZW5lcmF0b3JcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGlyaUdlbmVyYXRvciA9ICgpID0+IFwiaHR0cHM6Ly/si6TroYAuY29tL1wiXG5cbmV4cG9ydCBkZWZhdWx0IGlyaUdlbmVyYXRvclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgaXJpUmVmZXJlbmNlR2VuZXJhdG9yID0gKCkgPT4gXCJwYXRoL+yLpOuhgC5odG1sXCJcblxuZXhwb3J0IGRlZmF1bHQgaXJpUmVmZXJlbmNlR2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCB1dWlkR2VuZXJhdG9yID0gKCkgPT4gXCIzZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTZcIlxuXG5leHBvcnQgZGVmYXVsdCB1dWlkR2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCB1cmlUZW1wbGF0ZUdlbmVyYXRvciA9ICgpID0+XG4gIFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9kaWN0aW9uYXJ5L3t0ZXJtOjF9L3t0ZXJtfVwiXG5cbmV4cG9ydCBkZWZhdWx0IHVyaVRlbXBsYXRlR2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBqc29uUG9pbnRlckdlbmVyYXRvciA9ICgpID0+IFwiL2EvYi9jXCJcblxuZXhwb3J0IGRlZmF1bHQganNvblBvaW50ZXJHZW5lcmF0b3JcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IHJlbGF0aXZlSnNvblBvaW50ZXJHZW5lcmF0b3IgPSAoKSA9PiBcIjEvMFwiXG5cbmV4cG9ydCBkZWZhdWx0IHJlbGF0aXZlSnNvblBvaW50ZXJHZW5lcmF0b3JcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGRhdGVUaW1lR2VuZXJhdG9yID0gKCkgPT4gbmV3IERhdGUoKS50b0lTT1N0cmluZygpXG5cbmV4cG9ydCBkZWZhdWx0IGRhdGVUaW1lR2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBkYXRlR2VuZXJhdG9yID0gKCkgPT4gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnN1YnN0cmluZygwLCAxMClcblxuZXhwb3J0IGRlZmF1bHQgZGF0ZUdlbmVyYXRvclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgdGltZUdlbmVyYXRvciA9ICgpID0+IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zdWJzdHJpbmcoMTEpXG5cbmV4cG9ydCBkZWZhdWx0IHRpbWVHZW5lcmF0b3JcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGR1cmF0aW9uR2VuZXJhdG9yID0gKCkgPT4gXCJQM0RcIiAvLyBleHByZXNzZXMgYSBkdXJhdGlvbiBvZiAzIGRheXNcblxuZXhwb3J0IGRlZmF1bHQgZHVyYXRpb25HZW5lcmF0b3JcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IHBhc3N3b3JkR2VuZXJhdG9yID0gKCkgPT4gXCIqKioqKioqKlwiXG5cbmV4cG9ydCBkZWZhdWx0IHBhc3N3b3JkR2VuZXJhdG9yXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCByZWdleEdlbmVyYXRvciA9ICgpID0+IFwiXlthLXpdKyRcIlxuXG5leHBvcnQgZGVmYXVsdCByZWdleEdlbmVyYXRvclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFJlZ2lzdHJ5IGZyb20gXCIuL1JlZ2lzdHJ5XCJcbmltcG9ydCBpbnQzMkdlbmVyYXRvciBmcm9tIFwiLi4vZ2VuZXJhdG9ycy9pbnQzMlwiXG5pbXBvcnQgaW50NjRHZW5lcmF0b3IgZnJvbSBcIi4uL2dlbmVyYXRvcnMvaW50NjRcIlxuaW1wb3J0IGZsb2F0R2VuZXJhdG9yIGZyb20gXCIuLi9nZW5lcmF0b3JzL2Zsb2F0XCJcbmltcG9ydCBkb3VibGVHZW5lcmF0b3IgZnJvbSBcIi4uL2dlbmVyYXRvcnMvZG91YmxlXCJcbmltcG9ydCBlbWFpbEdlbmVyYXRvciBmcm9tIFwiLi4vZ2VuZXJhdG9ycy9lbWFpbFwiXG5pbXBvcnQgaWRuRW1haWxHZW5lcmF0b3IgZnJvbSBcIi4uL2dlbmVyYXRvcnMvaWRuLWVtYWlsXCJcbmltcG9ydCBob3N0bmFtZUdlbmVyYXRvciBmcm9tIFwiLi4vZ2VuZXJhdG9ycy9ob3N0bmFtZVwiXG5pbXBvcnQgaWRuSG9zdG5hbWVHZW5lcmF0b3IgZnJvbSBcIi4uL2dlbmVyYXRvcnMvaWRuLWhvc3RuYW1lXCJcbmltcG9ydCBpcHY0R2VuZXJhdG9yIGZyb20gXCIuLi9nZW5lcmF0b3JzL2lwdjRcIlxuaW1wb3J0IGlwdjZHZW5lcmF0b3IgZnJvbSBcIi4uL2dlbmVyYXRvcnMvaXB2NlwiXG5pbXBvcnQgdXJpR2VuZXJhdG9yIGZyb20gXCIuLi9nZW5lcmF0b3JzL3VyaVwiXG5pbXBvcnQgdXJpUmVmZXJlbmNlR2VuZXJhdG9yIGZyb20gXCIuLi9nZW5lcmF0b3JzL3VyaS1yZWZlcmVuY2VcIlxuaW1wb3J0IGlyaUdlbmVyYXRvciBmcm9tIFwiLi4vZ2VuZXJhdG9ycy9pcmlcIlxuaW1wb3J0IGlyaVJlZmVyZW5jZUdlbmVyYXRvciBmcm9tIFwiLi4vZ2VuZXJhdG9ycy9pcmktcmVmZXJlbmNlXCJcbmltcG9ydCB1dWlkR2VuZXJhdG9yIGZyb20gXCIuLi9nZW5lcmF0b3JzL3V1aWRcIlxuaW1wb3J0IHVyaVRlbXBsYXRlR2VuZXJhdG9yIGZyb20gXCIuLi9nZW5lcmF0b3JzL3VyaS10ZW1wbGF0ZVwiXG5pbXBvcnQganNvblBvaW50ZXJHZW5lcmF0b3IgZnJvbSBcIi4uL2dlbmVyYXRvcnMvanNvbi1wb2ludGVyXCJcbmltcG9ydCByZWxhdGl2ZUpzb25Qb2ludGVyR2VuZXJhdG9yIGZyb20gXCIuLi9nZW5lcmF0b3JzL3JlbGF0aXZlLWpzb24tcG9pbnRlclwiXG5pbXBvcnQgZGF0ZVRpbWVHZW5lcmF0b3IgZnJvbSBcIi4uL2dlbmVyYXRvcnMvZGF0ZS10aW1lXCJcbmltcG9ydCBkYXRlR2VuZXJhdG9yIGZyb20gXCIuLi9nZW5lcmF0b3JzL2RhdGVcIlxuaW1wb3J0IHRpbWVHZW5lcmF0b3IgZnJvbSBcIi4uL2dlbmVyYXRvcnMvdGltZVwiXG5pbXBvcnQgZHVyYXRpb25HZW5lcmF0b3IgZnJvbSBcIi4uL2dlbmVyYXRvcnMvZHVyYXRpb25cIlxuaW1wb3J0IHBhc3N3b3JkR2VuZXJhdG9yIGZyb20gXCIuLi9nZW5lcmF0b3JzL3Bhc3N3b3JkXCJcbmltcG9ydCByZWdleEdlbmVyYXRvciBmcm9tIFwiLi4vZ2VuZXJhdG9ycy9yZWdleFwiXG5cbmNsYXNzIEZvcm1hdFJlZ2lzdHJ5IGV4dGVuZHMgUmVnaXN0cnkge1xuICAjZGVmYXVsdHMgPSB7XG4gICAgaW50MzI6IGludDMyR2VuZXJhdG9yLFxuICAgIGludDY0OiBpbnQ2NEdlbmVyYXRvcixcbiAgICBmbG9hdDogZmxvYXRHZW5lcmF0b3IsXG4gICAgZG91YmxlOiBkb3VibGVHZW5lcmF0b3IsXG4gICAgZW1haWw6IGVtYWlsR2VuZXJhdG9yLFxuICAgIFwiaWRuLWVtYWlsXCI6IGlkbkVtYWlsR2VuZXJhdG9yLFxuICAgIGhvc3RuYW1lOiBob3N0bmFtZUdlbmVyYXRvcixcbiAgICBcImlkbi1ob3N0bmFtZVwiOiBpZG5Ib3N0bmFtZUdlbmVyYXRvcixcbiAgICBpcHY0OiBpcHY0R2VuZXJhdG9yLFxuICAgIGlwdjY6IGlwdjZHZW5lcmF0b3IsXG4gICAgdXJpOiB1cmlHZW5lcmF0b3IsXG4gICAgXCJ1cmktcmVmZXJlbmNlXCI6IHVyaVJlZmVyZW5jZUdlbmVyYXRvcixcbiAgICBpcmk6IGlyaUdlbmVyYXRvcixcbiAgICBcImlyaS1yZWZlcmVuY2VcIjogaXJpUmVmZXJlbmNlR2VuZXJhdG9yLFxuICAgIHV1aWQ6IHV1aWRHZW5lcmF0b3IsXG4gICAgXCJ1cmktdGVtcGxhdGVcIjogdXJpVGVtcGxhdGVHZW5lcmF0b3IsXG4gICAgXCJqc29uLXBvaW50ZXJcIjoganNvblBvaW50ZXJHZW5lcmF0b3IsXG4gICAgXCJyZWxhdGl2ZS1qc29uLXBvaW50ZXJcIjogcmVsYXRpdmVKc29uUG9pbnRlckdlbmVyYXRvcixcbiAgICBcImRhdGUtdGltZVwiOiBkYXRlVGltZUdlbmVyYXRvcixcbiAgICBkYXRlOiBkYXRlR2VuZXJhdG9yLFxuICAgIHRpbWU6IHRpbWVHZW5lcmF0b3IsXG4gICAgZHVyYXRpb246IGR1cmF0aW9uR2VuZXJhdG9yLFxuICAgIHBhc3N3b3JkOiBwYXNzd29yZEdlbmVyYXRvcixcbiAgICByZWdleDogcmVnZXhHZW5lcmF0b3IsXG4gIH1cblxuICBkYXRhID0geyAuLi50aGlzLiNkZWZhdWx0cyB9XG5cbiAgZ2V0IGRlZmF1bHRzKCkge1xuICAgIHJldHVybiB7IC4uLnRoaXMuI2RlZmF1bHRzIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBGb3JtYXRSZWdpc3RyeVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuXG5pbXBvcnQgRm9ybWF0UmVnaXN0cnkgZnJvbSBcIi4uL2NsYXNzL0Zvcm1hdFJlZ2lzdHJ5XCJcblxuY29uc3QgcmVnaXN0cnkgPSBuZXcgRm9ybWF0UmVnaXN0cnkoKVxuXG5jb25zdCBmb3JtYXRBUEkgPSAoZm9ybWF0LCBnZW5lcmF0b3IpID0+IHtcbiAgaWYgKHR5cGVvZiBnZW5lcmF0b3IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiByZWdpc3RyeS5yZWdpc3Rlcihmb3JtYXQsIGdlbmVyYXRvcilcbiAgfSBlbHNlIGlmIChnZW5lcmF0b3IgPT09IG51bGwpIHtcbiAgICByZXR1cm4gcmVnaXN0cnkudW5yZWdpc3Rlcihmb3JtYXQpXG4gIH1cblxuICByZXR1cm4gcmVnaXN0cnkuZ2V0KGZvcm1hdClcbn1cbmZvcm1hdEFQSS5nZXREZWZhdWx0cyA9ICgpID0+IHJlZ2lzdHJ5LmRlZmF1bHRzXG5cbmV4cG9ydCBkZWZhdWx0IGZvcm1hdEFQSVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgZW5jb2RlN2JpdCA9IChjb250ZW50KSA9PiBCdWZmZXIuZnJvbShjb250ZW50KS50b1N0cmluZyhcImFzY2lpXCIpXG5cbmV4cG9ydCBkZWZhdWx0IGVuY29kZTdiaXRcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGVuY29kZThiaXQgPSAoY29udGVudCkgPT4gQnVmZmVyLmZyb20oY29udGVudCkudG9TdHJpbmcoXCJ1dGY4XCIpXG5cbmV4cG9ydCBkZWZhdWx0IGVuY29kZThiaXRcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGVuY29kZUJpbmFyeSA9IChjb250ZW50KSA9PiBCdWZmZXIuZnJvbShjb250ZW50KS50b1N0cmluZyhcImJpbmFyeVwiKVxuXG5leHBvcnQgZGVmYXVsdCBlbmNvZGVCaW5hcnlcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGVuY29kZVF1b3RlZFByaW50YWJsZSA9IChjb250ZW50KSA9PiB7XG4gIGxldCBxdW90ZWRQcmludGFibGUgPSBcIlwiXG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb250ZW50Lmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY2hhckNvZGUgPSBjb250ZW50LmNoYXJDb2RlQXQoaSlcblxuICAgIGlmIChjaGFyQ29kZSA9PT0gNjEpIHtcbiAgICAgIC8vIEFTQ0lJIGNvbnRlbnQgb2YgXCI9XCJcbiAgICAgIHF1b3RlZFByaW50YWJsZSArPSBcIj0zRFwiXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIChjaGFyQ29kZSA+PSAzMyAmJiBjaGFyQ29kZSA8PSA2MCkgfHxcbiAgICAgIChjaGFyQ29kZSA+PSA2MiAmJiBjaGFyQ29kZSA8PSAxMjYpIHx8XG4gICAgICBjaGFyQ29kZSA9PT0gOSB8fFxuICAgICAgY2hhckNvZGUgPT09IDMyXG4gICAgKSB7XG4gICAgICBxdW90ZWRQcmludGFibGUgKz0gY29udGVudC5jaGFyQXQoaSlcbiAgICB9IGVsc2UgaWYgKGNoYXJDb2RlID09PSAxMyB8fCBjaGFyQ29kZSA9PT0gMTApIHtcbiAgICAgIHF1b3RlZFByaW50YWJsZSArPSBcIlxcclxcblwiXG4gICAgfSBlbHNlIGlmIChjaGFyQ29kZSA+IDEyNikge1xuICAgICAgLy8gY29udmVydCBub24tQVNDSUkgY2hhcmFjdGVycyB0byBVVEYtOCBhbmQgZW5jb2RlIGVhY2ggYnl0ZVxuICAgICAgY29uc3QgdXRmOCA9IHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChjb250ZW50LmNoYXJBdChpKSkpXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHV0ZjgubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgcXVvdGVkUHJpbnRhYmxlICs9XG4gICAgICAgICAgXCI9XCIgKyAoXCIwXCIgKyB1dGY4LmNoYXJDb2RlQXQoaikudG9TdHJpbmcoMTYpKS5zbGljZSgtMikudG9VcHBlckNhc2UoKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBxdW90ZWRQcmludGFibGUgKz1cbiAgICAgICAgXCI9XCIgKyAoXCIwXCIgKyBjaGFyQ29kZS50b1N0cmluZygxNikpLnNsaWNlKC0yKS50b1VwcGVyQ2FzZSgpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHF1b3RlZFByaW50YWJsZVxufVxuXG5leHBvcnQgZGVmYXVsdCBlbmNvZGVRdW90ZWRQcmludGFibGVcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGVuY29kZUJhc2UxNiA9IChjb250ZW50KSA9PiBCdWZmZXIuZnJvbShjb250ZW50KS50b1N0cmluZyhcImhleFwiKVxuXG5leHBvcnQgZGVmYXVsdCBlbmNvZGVCYXNlMTZcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGVuY29kZUJhc2UzMiA9IChjb250ZW50KSA9PiB7XG4gIGNvbnN0IHV0ZjhWYWx1ZSA9IEJ1ZmZlci5mcm9tKGNvbnRlbnQpLnRvU3RyaW5nKFwidXRmOFwiKVxuICBjb25zdCBiYXNlMzJBbHBoYWJldCA9IFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1NjdcIlxuICBsZXQgcGFkZGluZ0NvdW50ID0gMFxuICBsZXQgYmFzZTMyU3RyID0gXCJcIlxuICBsZXQgYnVmZmVyID0gMFxuICBsZXQgYnVmZmVyTGVuZ3RoID0gMFxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdXRmOFZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgYnVmZmVyID0gKGJ1ZmZlciA8PCA4KSB8IHV0ZjhWYWx1ZS5jaGFyQ29kZUF0KGkpXG4gICAgYnVmZmVyTGVuZ3RoICs9IDhcblxuICAgIHdoaWxlIChidWZmZXJMZW5ndGggPj0gNSkge1xuICAgICAgYmFzZTMyU3RyICs9IGJhc2UzMkFscGhhYmV0LmNoYXJBdCgoYnVmZmVyID4+PiAoYnVmZmVyTGVuZ3RoIC0gNSkpICYgMzEpXG4gICAgICBidWZmZXJMZW5ndGggLT0gNVxuICAgIH1cbiAgfVxuXG4gIGlmIChidWZmZXJMZW5ndGggPiAwKSB7XG4gICAgYmFzZTMyU3RyICs9IGJhc2UzMkFscGhhYmV0LmNoYXJBdCgoYnVmZmVyIDw8ICg1IC0gYnVmZmVyTGVuZ3RoKSkgJiAzMSlcbiAgICBwYWRkaW5nQ291bnQgPSAoOCAtICgodXRmOFZhbHVlLmxlbmd0aCAqIDgpICUgNSkpICUgNVxuICB9XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYWRkaW5nQ291bnQ7IGkrKykge1xuICAgIGJhc2UzMlN0ciArPSBcIj1cIlxuICB9XG5cbiAgcmV0dXJuIGJhc2UzMlN0clxufVxuXG5leHBvcnQgZGVmYXVsdCBlbmNvZGVCYXNlMzJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGVuY29kZUJhc2U2NCA9IChjb250ZW50KSA9PiBCdWZmZXIuZnJvbShjb250ZW50KS50b1N0cmluZyhcImJhc2U2NFwiKVxuXG5leHBvcnQgZGVmYXVsdCBlbmNvZGVCYXNlNjRcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGVuY29kZUJhc2U2NFVybCA9IChjb250ZW50KSA9PiBCdWZmZXIuZnJvbShjb250ZW50KS50b1N0cmluZyhcImJhc2U2NHVybFwiKVxuXG5leHBvcnQgZGVmYXVsdCBlbmNvZGVCYXNlNjRVcmxcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWdpc3RyeSBmcm9tIFwiLi9SZWdpc3RyeVwiXG5pbXBvcnQgZW5jb2RlN2JpdCBmcm9tIFwiLi4vZW5jb2RlcnMvN2JpdFwiXG5pbXBvcnQgZW5jb2RlOGJpdCBmcm9tIFwiLi4vZW5jb2RlcnMvOGJpdFwiXG5pbXBvcnQgZW5jb2RlQmluYXJ5IGZyb20gXCIuLi9lbmNvZGVycy9iaW5hcnlcIlxuaW1wb3J0IGVuY29kZVF1b3RlZFByaW50YWJsZSBmcm9tIFwiLi4vZW5jb2RlcnMvcXVvdGVkLXByaW50YWJsZVwiXG5pbXBvcnQgZW5jb2RlQmFzZTE2IGZyb20gXCIuLi9lbmNvZGVycy9iYXNlMTZcIlxuaW1wb3J0IGVuY29kZUJhc2UzMiBmcm9tIFwiLi4vZW5jb2RlcnMvYmFzZTMyXCJcbmltcG9ydCBlbmNvZGVCYXNlNjQgZnJvbSBcIi4uL2VuY29kZXJzL2Jhc2U2NFwiXG5pbXBvcnQgZW5jb2RlQmFzZTY0VXJsIGZyb20gXCIuLi9lbmNvZGVycy9iYXNlNjR1cmxcIlxuXG5jbGFzcyBFbmNvZGVyUmVnaXN0cnkgZXh0ZW5kcyBSZWdpc3RyeSB7XG4gICNkZWZhdWx0cyA9IHtcbiAgICBcIjdiaXRcIjogZW5jb2RlN2JpdCxcbiAgICBcIjhiaXRcIjogZW5jb2RlOGJpdCxcbiAgICBiaW5hcnk6IGVuY29kZUJpbmFyeSxcbiAgICBcInF1b3RlZC1wcmludGFibGVcIjogZW5jb2RlUXVvdGVkUHJpbnRhYmxlLFxuICAgIGJhc2UxNjogZW5jb2RlQmFzZTE2LFxuICAgIGJhc2UzMjogZW5jb2RlQmFzZTMyLFxuICAgIGJhc2U2NDogZW5jb2RlQmFzZTY0LFxuICAgIGJhc2U2NHVybDogZW5jb2RlQmFzZTY0VXJsLFxuICB9XG5cbiAgZGF0YSA9IHsgLi4udGhpcy4jZGVmYXVsdHMgfVxuXG4gIGdldCBkZWZhdWx0cygpIHtcbiAgICByZXR1cm4geyAuLi50aGlzLiNkZWZhdWx0cyB9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgRW5jb2RlclJlZ2lzdHJ5XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5cbmltcG9ydCBFbmNvZGVyUmVnaXN0cnkgZnJvbSBcIi4uL2NsYXNzL0VuY29kZXJSZWdpc3RyeVwiXG5cbmNvbnN0IHJlZ2lzdHJ5ID0gbmV3IEVuY29kZXJSZWdpc3RyeSgpXG5cbmNvbnN0IGVuY29kZXJBUEkgPSAoZW5jb2RpbmdOYW1lLCBlbmNvZGVyKSA9PiB7XG4gIGlmICh0eXBlb2YgZW5jb2RlciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIHJlZ2lzdHJ5LnJlZ2lzdGVyKGVuY29kaW5nTmFtZSwgZW5jb2RlcilcbiAgfSBlbHNlIGlmIChlbmNvZGVyID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHJlZ2lzdHJ5LnVucmVnaXN0ZXIoZW5jb2RpbmdOYW1lKVxuICB9XG5cbiAgcmV0dXJuIHJlZ2lzdHJ5LmdldChlbmNvZGluZ05hbWUpXG59XG5lbmNvZGVyQVBJLmdldERlZmF1bHRzID0gKCkgPT4gcmVnaXN0cnkuZGVmYXVsdHNcblxuZXhwb3J0IGRlZmF1bHQgZW5jb2RlckFQSVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL0Jhc2ljc19vZl9IVFRQL01JTUVfdHlwZXMvQ29tbW9uX3R5cGVzXG5jb25zdCB0ZXh0TWVkaWFUeXBlc0dlbmVyYXRvcnMgPSB7XG4gIFwidGV4dC9wbGFpblwiOiAoKSA9PiBcInN0cmluZ1wiLFxuICBcInRleHQvY3NzXCI6ICgpID0+IFwiLnNlbGVjdG9yIHsgYm9yZGVyOiAxcHggc29saWQgcmVkIH1cIixcbiAgXCJ0ZXh0L2NzdlwiOiAoKSA9PiBcInZhbHVlMSx2YWx1ZTIsdmFsdWUzXCIsXG4gIFwidGV4dC9odG1sXCI6ICgpID0+IFwiPHA+Y29udGVudDwvcD5cIixcbiAgXCJ0ZXh0L2NhbGVuZGFyXCI6ICgpID0+IFwiQkVHSU46VkNBTEVOREFSXCIsXG4gIFwidGV4dC9qYXZhc2NyaXB0XCI6ICgpID0+IFwiY29uc29sZS5kaXIoJ0hlbGxvIHdvcmxkIScpO1wiLFxuICBcInRleHQveG1sXCI6ICgpID0+ICc8cGVyc29uIGFnZT1cIjMwXCI+Sm9obiBEb2U8L3BlcnNvbj4nLFxuICBcInRleHQvKlwiOiAoKSA9PiBcInN0cmluZ1wiLFxufVxuXG5leHBvcnQgZGVmYXVsdCB0ZXh0TWVkaWFUeXBlc0dlbmVyYXRvcnNcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IGJ5dGVzIH0gZnJvbSBcIi4uLy4uL2NvcmUvcmFuZG9tXCJcblxuY29uc3QgaW1hZ2VNZWRpYVR5cGVzR2VuZXJhdG9ycyA9IHtcbiAgXCJpbWFnZS8qXCI6ICgpID0+IGJ5dGVzKDI1KS50b1N0cmluZyhcImJpbmFyeVwiKSxcbn1cblxuZXhwb3J0IGRlZmF1bHQgaW1hZ2VNZWRpYVR5cGVzR2VuZXJhdG9yc1xuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgYnl0ZXMgfSBmcm9tIFwiLi4vLi4vY29yZS9yYW5kb21cIlxuXG5jb25zdCBhdWRpb01lZGlhVHlwZXNHZW5lcmF0b3JzID0ge1xuICBcImF1ZGlvLypcIjogKCkgPT4gYnl0ZXMoMjUpLnRvU3RyaW5nKFwiYmluYXJ5XCIpLFxufVxuXG5leHBvcnQgZGVmYXVsdCBhdWRpb01lZGlhVHlwZXNHZW5lcmF0b3JzXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBieXRlcyB9IGZyb20gXCIuLi8uLi9jb3JlL3JhbmRvbVwiXG5cbmNvbnN0IHZpZGVvTWVkaWFUeXBlc0dlbmVyYXRvcnMgPSB7XG4gIFwidmlkZW8vKlwiOiAoKSA9PiBieXRlcygyNSkudG9TdHJpbmcoXCJiaW5hcnlcIiksXG59XG5cbmV4cG9ydCBkZWZhdWx0IHZpZGVvTWVkaWFUeXBlc0dlbmVyYXRvcnNcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IGJ5dGVzIH0gZnJvbSBcIi4uLy4uL2NvcmUvcmFuZG9tXCJcblxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9CYXNpY3Nfb2ZfSFRUUC9NSU1FX3R5cGVzL0NvbW1vbl90eXBlc1xuY29uc3QgYXBwbGljYXRpb25NZWRpYVR5cGVzR2VuZXJhdG9ycyA9IHtcbiAgXCJhcHBsaWNhdGlvbi9qc29uXCI6ICgpID0+ICd7XCJrZXlcIjpcInZhbHVlXCJ9JyxcbiAgXCJhcHBsaWNhdGlvbi9sZCtqc29uXCI6ICgpID0+ICd7XCJuYW1lXCI6IFwiSm9obiBEb2VcIn0nLFxuICBcImFwcGxpY2F0aW9uL3gtaHR0cGQtcGhwXCI6ICgpID0+IFwiPD9waHAgZWNobyAnPHA+SGVsbG8gV29ybGQhPC9wPic7ID8+XCIsXG4gIFwiYXBwbGljYXRpb24vcnRmXCI6ICgpID0+IFN0cmluZy5yYXdge1xccnRmMVxcYWRlZmxhbmcxMDI1XFxhbnNpXFxhbnNpY3BnMTI1MlxcdWMxYCxcbiAgXCJhcHBsaWNhdGlvbi94LXNoXCI6ICgpID0+ICdlY2hvIFwiSGVsbG8gV29ybGQhXCInLFxuICBcImFwcGxpY2F0aW9uL3hodG1sK3htbFwiOiAoKSA9PiBcIjxwPmNvbnRlbnQ8L3A+XCIsXG4gIFwiYXBwbGljYXRpb24vKlwiOiAoKSA9PiBieXRlcygyNSkudG9TdHJpbmcoXCJiaW5hcnlcIiksXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFwcGxpY2F0aW9uTWVkaWFUeXBlc0dlbmVyYXRvcnNcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWdpc3RyeSBmcm9tIFwiLi9SZWdpc3RyeVwiXG5pbXBvcnQgdGV4dE1lZGlhVHlwZXNHZW5lcmF0b3JzIGZyb20gXCIuLi9nZW5lcmF0b3JzL21lZGlhLXR5cGVzL3RleHRcIlxuaW1wb3J0IGltYWdlTWVkaWFUeXBlc0dlbmVyYXRvcnMgZnJvbSBcIi4uL2dlbmVyYXRvcnMvbWVkaWEtdHlwZXMvaW1hZ2VcIlxuaW1wb3J0IGF1ZGlvTWVkaWFUeXBlc0dlbmVyYXRvcnMgZnJvbSBcIi4uL2dlbmVyYXRvcnMvbWVkaWEtdHlwZXMvYXVkaW9cIlxuaW1wb3J0IHZpZGVvTWVkaWFUeXBlc0dlbmVyYXRvcnMgZnJvbSBcIi4uL2dlbmVyYXRvcnMvbWVkaWEtdHlwZXMvdmlkZW9cIlxuaW1wb3J0IGFwcGxpY2F0aW9uTWVkaWFUeXBlc0dlbmVyYXRvcnMgZnJvbSBcIi4uL2dlbmVyYXRvcnMvbWVkaWEtdHlwZXMvYXBwbGljYXRpb25cIlxuXG5jbGFzcyBNZWRpYVR5cGVSZWdpc3RyeSBleHRlbmRzIFJlZ2lzdHJ5IHtcbiAgI2RlZmF1bHRzID0ge1xuICAgIC4uLnRleHRNZWRpYVR5cGVzR2VuZXJhdG9ycyxcbiAgICAuLi5pbWFnZU1lZGlhVHlwZXNHZW5lcmF0b3JzLFxuICAgIC4uLmF1ZGlvTWVkaWFUeXBlc0dlbmVyYXRvcnMsXG4gICAgLi4udmlkZW9NZWRpYVR5cGVzR2VuZXJhdG9ycyxcbiAgICAuLi5hcHBsaWNhdGlvbk1lZGlhVHlwZXNHZW5lcmF0b3JzLFxuICB9XG5cbiAgZGF0YSA9IHsgLi4udGhpcy4jZGVmYXVsdHMgfVxuXG4gIGdldCBkZWZhdWx0cygpIHtcbiAgICByZXR1cm4geyAuLi50aGlzLiNkZWZhdWx0cyB9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTWVkaWFUeXBlUmVnaXN0cnlcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cblxuaW1wb3J0IE1lZGlhVHlwZVJlZ2lzdHJ5IGZyb20gXCIuLi9jbGFzcy9NZWRpYVR5cGVSZWdpc3RyeVwiXG5cbmNvbnN0IHJlZ2lzdHJ5ID0gbmV3IE1lZGlhVHlwZVJlZ2lzdHJ5KClcblxuY29uc3QgbWVkaWFUeXBlQVBJID0gKG1lZGlhVHlwZSwgZ2VuZXJhdG9yKSA9PiB7XG4gIGlmICh0eXBlb2YgZ2VuZXJhdG9yID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICByZXR1cm4gcmVnaXN0cnkucmVnaXN0ZXIobWVkaWFUeXBlLCBnZW5lcmF0b3IpXG4gIH0gZWxzZSBpZiAoZ2VuZXJhdG9yID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHJlZ2lzdHJ5LnVucmVnaXN0ZXIobWVkaWFUeXBlKVxuICB9XG5cbiAgY29uc3QgbWVkaWFUeXBlTm9QYXJhbXMgPSBtZWRpYVR5cGUuc3BsaXQoXCI7XCIpLmF0KDApXG4gIGNvbnN0IHRvcExldmVsTWVkaWFUeXBlID0gYCR7bWVkaWFUeXBlTm9QYXJhbXMuc3BsaXQoXCIvXCIpLmF0KDApfS8qYFxuXG4gIHJldHVybiAoXG4gICAgcmVnaXN0cnkuZ2V0KG1lZGlhVHlwZSkgfHxcbiAgICByZWdpc3RyeS5nZXQobWVkaWFUeXBlTm9QYXJhbXMpIHx8XG4gICAgcmVnaXN0cnkuZ2V0KHRvcExldmVsTWVkaWFUeXBlKVxuICApXG59XG5tZWRpYVR5cGVBUEkuZ2V0RGVmYXVsdHMgPSAoKSA9PiByZWdpc3RyeS5kZWZhdWx0c1xuXG5leHBvcnQgZGVmYXVsdCBtZWRpYVR5cGVBUElcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBpZGVudGl0eSBmcm9tIFwibG9kYXNoL2lkZW50aXR5XCJcblxuaW1wb3J0IHsgc3RyaW5nIGFzIHJhbmRvbVN0cmluZywgcmFuZGV4cCB9IGZyb20gXCIuLi9jb3JlL3JhbmRvbVwiXG5pbXBvcnQgeyBpc0pTT05TY2hlbWEgfSBmcm9tIFwiLi4vY29yZS9wcmVkaWNhdGVzXCJcbmltcG9ydCBmb3JtYXRBUEkgZnJvbSBcIi4uL2FwaS9mb3JtYXRBUElcIlxuaW1wb3J0IGVuY29kZXJBUEkgZnJvbSBcIi4uL2FwaS9lbmNvZGVyQVBJXCJcbmltcG9ydCBtZWRpYVR5cGVBUEkgZnJvbSBcIi4uL2FwaS9tZWRpYVR5cGVBUElcIlxuXG5jb25zdCBnZW5lcmF0ZUZvcm1hdCA9IChzY2hlbWEpID0+IHtcbiAgY29uc3QgeyBmb3JtYXQgfSA9IHNjaGVtYVxuXG4gIGNvbnN0IGZvcm1hdEdlbmVyYXRvciA9IGZvcm1hdEFQSShmb3JtYXQpXG4gIGlmICh0eXBlb2YgZm9ybWF0R2VuZXJhdG9yID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICByZXR1cm4gZm9ybWF0R2VuZXJhdG9yKHNjaGVtYSlcbiAgfVxuXG4gIHJldHVybiByYW5kb21TdHJpbmcoKVxufVxuXG5jb25zdCBnZW5lcmF0ZU1lZGlhVHlwZSA9IChzY2hlbWEpID0+IHtcbiAgY29uc3QgeyBjb250ZW50TWVkaWFUeXBlIH0gPSBzY2hlbWFcblxuICBjb25zdCBtZWRpYVR5cGVHZW5lcmF0b3IgPSBtZWRpYVR5cGVBUEkoY29udGVudE1lZGlhVHlwZSlcbiAgaWYgKHR5cGVvZiBtZWRpYVR5cGVHZW5lcmF0b3IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiBtZWRpYVR5cGVHZW5lcmF0b3Ioc2NoZW1hKVxuICB9XG5cbiAgcmV0dXJuIHJhbmRvbVN0cmluZygpXG59XG5cbmNvbnN0IGFwcGx5U3RyaW5nQ29uc3RyYWludHMgPSAoc3RyaW5nLCBjb25zdHJhaW50cyA9IHt9KSA9PiB7XG4gIGNvbnN0IHsgbWF4TGVuZ3RoLCBtaW5MZW5ndGggfSA9IGNvbnN0cmFpbnRzXG4gIGxldCBjb25zdHJhaW5lZFN0cmluZyA9IHN0cmluZ1xuXG4gIGlmIChOdW1iZXIuaXNJbnRlZ2VyKG1heExlbmd0aCkgJiYgbWF4TGVuZ3RoID4gMCkge1xuICAgIGNvbnN0cmFpbmVkU3RyaW5nID0gY29uc3RyYWluZWRTdHJpbmcuc2xpY2UoMCwgbWF4TGVuZ3RoKVxuICB9XG4gIGlmIChOdW1iZXIuaXNJbnRlZ2VyKG1pbkxlbmd0aCkgJiYgbWluTGVuZ3RoID4gMCkge1xuICAgIGxldCBpID0gMFxuICAgIHdoaWxlIChjb25zdHJhaW5lZFN0cmluZy5sZW5ndGggPCBtaW5MZW5ndGgpIHtcbiAgICAgIGNvbnN0cmFpbmVkU3RyaW5nICs9IGNvbnN0cmFpbmVkU3RyaW5nW2krKyAlIGNvbnN0cmFpbmVkU3RyaW5nLmxlbmd0aF1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uc3RyYWluZWRTdHJpbmdcbn1cblxuY29uc3Qgc3RyaW5nVHlwZSA9IChzY2hlbWEsIHsgc2FtcGxlIH0gPSB7fSkgPT4ge1xuICBjb25zdCB7IGNvbnRlbnRFbmNvZGluZywgY29udGVudE1lZGlhVHlwZSwgY29udGVudFNjaGVtYSB9ID0gc2NoZW1hXG4gIGNvbnN0IHsgcGF0dGVybiwgZm9ybWF0IH0gPSBzY2hlbWFcbiAgY29uc3QgZW5jb2RlID0gZW5jb2RlckFQSShjb250ZW50RW5jb2RpbmcpIHx8IGlkZW50aXR5XG4gIGxldCBnZW5lcmF0ZWRTdHJpbmdcblxuICBpZiAodHlwZW9mIHBhdHRlcm4gPT09IFwic3RyaW5nXCIpIHtcbiAgICBnZW5lcmF0ZWRTdHJpbmcgPSBhcHBseVN0cmluZ0NvbnN0cmFpbnRzKHJhbmRleHAocGF0dGVybiksIHNjaGVtYSlcbiAgfSBlbHNlIGlmICh0eXBlb2YgZm9ybWF0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgZ2VuZXJhdGVkU3RyaW5nID0gZ2VuZXJhdGVGb3JtYXQoc2NoZW1hKVxuICB9IGVsc2UgaWYgKFxuICAgIGlzSlNPTlNjaGVtYShjb250ZW50U2NoZW1hKSAmJlxuICAgIHR5cGVvZiBjb250ZW50TWVkaWFUeXBlID09PSBcInN0cmluZ1wiICYmXG4gICAgdHlwZW9mIHNhbXBsZSAhPT0gXCJ1bmRlZmluZWRcIlxuICApIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShzYW1wbGUpIHx8IHR5cGVvZiBzYW1wbGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGdlbmVyYXRlZFN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHNhbXBsZSlcbiAgICB9IGVsc2Uge1xuICAgICAgZ2VuZXJhdGVkU3RyaW5nID0gYXBwbHlTdHJpbmdDb25zdHJhaW50cyhTdHJpbmcoc2FtcGxlKSwgc2NoZW1hKVxuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgY29udGVudE1lZGlhVHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIGdlbmVyYXRlZFN0cmluZyA9IGdlbmVyYXRlTWVkaWFUeXBlKHNjaGVtYSlcbiAgfSBlbHNlIHtcbiAgICBnZW5lcmF0ZWRTdHJpbmcgPSBhcHBseVN0cmluZ0NvbnN0cmFpbnRzKHJhbmRvbVN0cmluZygpLCBzY2hlbWEpXG4gIH1cblxuICByZXR1cm4gZW5jb2RlKGdlbmVyYXRlZFN0cmluZylcbn1cblxuZXhwb3J0IGRlZmF1bHQgc3RyaW5nVHlwZVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgbnVtYmVyIGFzIHJhbmRvbU51bWJlciB9IGZyb20gXCIuLi9jb3JlL3JhbmRvbVwiXG5pbXBvcnQgZm9ybWF0QVBJIGZyb20gXCIuLi9hcGkvZm9ybWF0QVBJXCJcblxuY29uc3QgZ2VuZXJhdGVGb3JtYXQgPSAoc2NoZW1hKSA9PiB7XG4gIGNvbnN0IHsgZm9ybWF0IH0gPSBzY2hlbWFcblxuICBjb25zdCBmb3JtYXRHZW5lcmF0b3IgPSBmb3JtYXRBUEkoZm9ybWF0KVxuICBpZiAodHlwZW9mIGZvcm1hdEdlbmVyYXRvciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIGZvcm1hdEdlbmVyYXRvcihzY2hlbWEpXG4gIH1cblxuICByZXR1cm4gcmFuZG9tTnVtYmVyKClcbn1cblxuZXhwb3J0IGNvbnN0IGFwcGx5TnVtYmVyQ29uc3RyYWludHMgPSAobnVtYmVyLCBjb25zdHJhaW50cyA9IHt9KSA9PiB7XG4gIGNvbnN0IHsgbWluaW11bSwgbWF4aW11bSwgZXhjbHVzaXZlTWluaW11bSwgZXhjbHVzaXZlTWF4aW11bSB9ID0gY29uc3RyYWludHNcbiAgY29uc3QgeyBtdWx0aXBsZU9mIH0gPSBjb25zdHJhaW50c1xuICBjb25zdCBlcHNpbG9uID0gTnVtYmVyLmlzSW50ZWdlcihudW1iZXIpID8gMSA6IE51bWJlci5FUFNJTE9OXG4gIGxldCBtaW5WYWx1ZSA9IHR5cGVvZiBtaW5pbXVtID09PSBcIm51bWJlclwiID8gbWluaW11bSA6IG51bGxcbiAgbGV0IG1heFZhbHVlID0gdHlwZW9mIG1heGltdW0gPT09IFwibnVtYmVyXCIgPyBtYXhpbXVtIDogbnVsbFxuICBsZXQgY29uc3RyYWluZWROdW1iZXIgPSBudW1iZXJcblxuICBpZiAodHlwZW9mIGV4Y2x1c2l2ZU1pbmltdW0gPT09IFwibnVtYmVyXCIpIHtcbiAgICBtaW5WYWx1ZSA9XG4gICAgICBtaW5WYWx1ZSAhPT0gbnVsbFxuICAgICAgICA/IE1hdGgubWF4KG1pblZhbHVlLCBleGNsdXNpdmVNaW5pbXVtICsgZXBzaWxvbilcbiAgICAgICAgOiBleGNsdXNpdmVNaW5pbXVtICsgZXBzaWxvblxuICB9XG4gIGlmICh0eXBlb2YgZXhjbHVzaXZlTWF4aW11bSA9PT0gXCJudW1iZXJcIikge1xuICAgIG1heFZhbHVlID1cbiAgICAgIG1heFZhbHVlICE9PSBudWxsXG4gICAgICAgID8gTWF0aC5taW4obWF4VmFsdWUsIGV4Y2x1c2l2ZU1heGltdW0gLSBlcHNpbG9uKVxuICAgICAgICA6IGV4Y2x1c2l2ZU1heGltdW0gLSBlcHNpbG9uXG4gIH1cbiAgY29uc3RyYWluZWROdW1iZXIgPVxuICAgIChtaW5WYWx1ZSA+IG1heFZhbHVlICYmIG51bWJlcikgfHwgbWluVmFsdWUgfHwgbWF4VmFsdWUgfHwgY29uc3RyYWluZWROdW1iZXJcblxuICBpZiAodHlwZW9mIG11bHRpcGxlT2YgPT09IFwibnVtYmVyXCIgJiYgbXVsdGlwbGVPZiA+IDApIHtcbiAgICBjb25zdCByZW1haW5kZXIgPSBjb25zdHJhaW5lZE51bWJlciAlIG11bHRpcGxlT2ZcbiAgICBjb25zdHJhaW5lZE51bWJlciA9XG4gICAgICByZW1haW5kZXIgPT09IDBcbiAgICAgICAgPyBjb25zdHJhaW5lZE51bWJlclxuICAgICAgICA6IGNvbnN0cmFpbmVkTnVtYmVyICsgbXVsdGlwbGVPZiAtIHJlbWFpbmRlclxuICB9XG5cbiAgcmV0dXJuIGNvbnN0cmFpbmVkTnVtYmVyXG59XG5cbmNvbnN0IG51bWJlclR5cGUgPSAoc2NoZW1hKSA9PiB7XG4gIGNvbnN0IHsgZm9ybWF0IH0gPSBzY2hlbWFcbiAgbGV0IGdlbmVyYXRlZE51bWJlclxuXG4gIGlmICh0eXBlb2YgZm9ybWF0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgZ2VuZXJhdGVkTnVtYmVyID0gZ2VuZXJhdGVGb3JtYXQoc2NoZW1hKVxuICB9IGVsc2Uge1xuICAgIGdlbmVyYXRlZE51bWJlciA9IHJhbmRvbU51bWJlcigpXG4gIH1cblxuICByZXR1cm4gYXBwbHlOdW1iZXJDb25zdHJhaW50cyhnZW5lcmF0ZWROdW1iZXIsIHNjaGVtYSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgbnVtYmVyVHlwZVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgaW50ZWdlciBhcyByYW5kb21JbnRlZ2VyIH0gZnJvbSBcIi4uL2NvcmUvcmFuZG9tXCJcbmltcG9ydCBmb3JtYXRBUEkgZnJvbSBcIi4uL2FwaS9mb3JtYXRBUElcIlxuaW1wb3J0IGludDMyR2VuZXJhdG9yIGZyb20gXCIuLi9nZW5lcmF0b3JzL2ludDMyXCJcbmltcG9ydCBpbnQ2NEdlbmVyYXRvciBmcm9tIFwiLi4vZ2VuZXJhdG9ycy9pbnQ2NFwiXG5pbXBvcnQgeyBhcHBseU51bWJlckNvbnN0cmFpbnRzIH0gZnJvbSBcIi4vbnVtYmVyXCJcblxuY29uc3QgZ2VuZXJhdGVGb3JtYXQgPSAoc2NoZW1hKSA9PiB7XG4gIGNvbnN0IHsgZm9ybWF0IH0gPSBzY2hlbWFcblxuICBjb25zdCBmb3JtYXRHZW5lcmF0b3IgPSBmb3JtYXRBUEkoZm9ybWF0KVxuICBpZiAodHlwZW9mIGZvcm1hdEdlbmVyYXRvciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIGZvcm1hdEdlbmVyYXRvcihzY2hlbWEpXG4gIH1cblxuICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgIGNhc2UgXCJpbnQzMlwiOiB7XG4gICAgICByZXR1cm4gaW50MzJHZW5lcmF0b3IoKVxuICAgIH1cbiAgICBjYXNlIFwiaW50NjRcIjoge1xuICAgICAgcmV0dXJuIGludDY0R2VuZXJhdG9yKClcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmFuZG9tSW50ZWdlcigpXG59XG5cbmNvbnN0IGludGVnZXJUeXBlID0gKHNjaGVtYSkgPT4ge1xuICBjb25zdCB7IGZvcm1hdCB9ID0gc2NoZW1hXG4gIGxldCBnZW5lcmF0ZWRJbnRlZ2VyXG5cbiAgaWYgKHR5cGVvZiBmb3JtYXQgPT09IFwic3RyaW5nXCIpIHtcbiAgICBnZW5lcmF0ZWRJbnRlZ2VyID0gZ2VuZXJhdGVGb3JtYXQoc2NoZW1hKVxuICB9IGVsc2Uge1xuICAgIGdlbmVyYXRlZEludGVnZXIgPSByYW5kb21JbnRlZ2VyKClcbiAgfVxuXG4gIHJldHVybiBhcHBseU51bWJlckNvbnN0cmFpbnRzKGdlbmVyYXRlZEludGVnZXIsIHNjaGVtYSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgaW50ZWdlclR5cGVcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cblxuY29uc3QgYm9vbGVhblR5cGUgPSAoc2NoZW1hKSA9PiB7XG4gIHJldHVybiB0eXBlb2Ygc2NoZW1hLmRlZmF1bHQgPT09IFwiYm9vbGVhblwiID8gc2NoZW1hLmRlZmF1bHQgOiB0cnVlXG59XG5cbmV4cG9ydCBkZWZhdWx0IGJvb2xlYW5UeXBlXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgYXJyYXlUeXBlIGZyb20gXCIuL2FycmF5XCJcbmltcG9ydCBvYmplY3RUeXBlIGZyb20gXCIuL29iamVjdFwiXG5pbXBvcnQgc3RyaW5nVHlwZSBmcm9tIFwiLi9zdHJpbmdcIlxuaW1wb3J0IG51bWJlclR5cGUgZnJvbSBcIi4vbnVtYmVyXCJcbmltcG9ydCBpbnRlZ2VyVHlwZSBmcm9tIFwiLi9pbnRlZ2VyXCJcbmltcG9ydCBib29sZWFuVHlwZSBmcm9tIFwiLi9ib29sZWFuXCJcbmltcG9ydCBudWxsVHlwZSBmcm9tIFwiLi9udWxsXCJcblxuY29uc3QgdHlwZU1hcCA9IHtcbiAgYXJyYXk6IGFycmF5VHlwZSxcbiAgb2JqZWN0OiBvYmplY3RUeXBlLFxuICBzdHJpbmc6IHN0cmluZ1R5cGUsXG4gIG51bWJlcjogbnVtYmVyVHlwZSxcbiAgaW50ZWdlcjogaW50ZWdlclR5cGUsXG4gIGJvb2xlYW46IGJvb2xlYW5UeXBlLFxuICBudWxsOiBudWxsVHlwZSxcbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IFByb3h5KHR5cGVNYXAsIHtcbiAgZ2V0KHRhcmdldCwgcHJvcCkge1xuICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gXCJzdHJpbmdcIiAmJiBPYmplY3QuaGFzT3duKHRhcmdldCwgcHJvcCkpIHtcbiAgICAgIHJldHVybiB0YXJnZXRbcHJvcF1cbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4gYFVua25vd24gVHlwZTogJHtwcm9wfWBcbiAgfSxcbn0pXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5cbmNvbnN0IG51bGxUeXBlID0gKCkgPT4ge1xuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgZGVmYXVsdCBudWxsVHlwZVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuZXhwb3J0IGNvbnN0IFNDQUxBUl9UWVBFUyA9IFtcIm51bWJlclwiLCBcImludGVnZXJcIiwgXCJzdHJpbmdcIiwgXCJib29sZWFuXCIsIFwibnVsbFwiXVxuXG5leHBvcnQgY29uc3QgQUxMX1RZUEVTID0gW1wiYXJyYXlcIiwgXCJvYmplY3RcIiwgLi4uU0NBTEFSX1RZUEVTXVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgaXNKU09OU2NoZW1hT2JqZWN0IH0gZnJvbSBcIi4vcHJlZGljYXRlc1wiXG5cbi8qKlxuICogUHJlY2VkZW5jZSBvZiBrZXl3b3JkcyB0aGF0IHByb3ZpZGVzIGF1dGhvciBkZWZpbmVkIHZhbHVlcyAodG9wIG9mIHRoZSBsaXN0ID0gaGlnaGVyIHByaW9yaXR5KVxuICpcbiAqICAjIyMgZXhhbXBsZXNcbiAqICBBcnJheSBjb250YWluaW5nIGV4YW1wbGUgdmFsdWVzIGZvciB0aGUgaXRlbSBkZWZpbmVkIGJ5IHRoZSBzY2hlbWEuXG4gKiAgTm90IGd1YXJhbnRlZWQgdG8gYmUgdmFsaWQgb3IgaW52YWxpZCBhZ2FpbnN0IHRoZSBzY2hlbWFcbiAqXG4gKiAgIyMjIGRlZmF1bHRcbiAqICBEZWZhdWx0IHZhbHVlIGZvciBhbiBpdGVtIGRlZmluZWQgYnkgdGhlIHNjaGVtYS5cbiAqICBJcyBleHBlY3RlZCB0byBiZSBhIHZhbGlkIGluc3RhbmNlIG9mIHRoZSBzY2hlbWEuXG4gKlxuICogICMjIyBleGFtcGxlXG4gKiAgRGVwcmVjYXRlZC4gUGFydCBvZiBPcGVuQVBJIDMuMS4wIFNjaGVtYSBPYmplY3QgZGlhbGVjdC5cbiAqICBSZXByZXNlbnRzIHNpbmdsZSBleGFtcGxlLiBFcXVpdmFsZW50IG9mIGBleGFtcGxlc2Aga2V5d29yZHNcbiAqICB3aXRoIHNpbmdsZSBpdGVtLlxuICovXG5cbmV4cG9ydCBjb25zdCBoYXNFeGFtcGxlID0gKHNjaGVtYSkgPT4ge1xuICBpZiAoIWlzSlNPTlNjaGVtYU9iamVjdChzY2hlbWEpKSByZXR1cm4gZmFsc2VcblxuICBjb25zdCB7IGV4YW1wbGVzLCBleGFtcGxlLCBkZWZhdWx0OiBkZWZhdWx0VmFsIH0gPSBzY2hlbWFcblxuICBpZiAoQXJyYXkuaXNBcnJheShleGFtcGxlcykgJiYgZXhhbXBsZXMubGVuZ3RoID49IDEpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKHR5cGVvZiBkZWZhdWx0VmFsICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHJldHVybiB0eXBlb2YgZXhhbXBsZSAhPT0gXCJ1bmRlZmluZWRcIlxufVxuXG5leHBvcnQgY29uc3QgZXh0cmFjdEV4YW1wbGUgPSAoc2NoZW1hKSA9PiB7XG4gIGlmICghaXNKU09OU2NoZW1hT2JqZWN0KHNjaGVtYSkpIHJldHVybiBudWxsXG5cbiAgY29uc3QgeyBleGFtcGxlcywgZXhhbXBsZSwgZGVmYXVsdDogZGVmYXVsdFZhbCB9ID0gc2NoZW1hXG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoZXhhbXBsZXMpICYmIGV4YW1wbGVzLmxlbmd0aCA+PSAxKSB7XG4gICAgcmV0dXJuIGV4YW1wbGVzLmF0KDApXG4gIH1cblxuICBpZiAodHlwZW9mIGRlZmF1bHRWYWwgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICByZXR1cm4gZGVmYXVsdFZhbFxuICB9XG5cbiAgaWYgKHR5cGVvZiBleGFtcGxlICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIGV4YW1wbGVcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWRcbn1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IEFMTF9UWVBFUyB9IGZyb20gXCIuL2NvbnN0YW50c1wiXG5pbXBvcnQgeyBpc0pTT05TY2hlbWFPYmplY3QgfSBmcm9tIFwiLi9wcmVkaWNhdGVzXCJcbmltcG9ydCB7IHBpY2sgYXMgcmFuZG9tUGljayB9IGZyb20gXCIuL3JhbmRvbVwiXG5pbXBvcnQgeyBoYXNFeGFtcGxlLCBleHRyYWN0RXhhbXBsZSB9IGZyb20gXCIuL2V4YW1wbGVcIlxuXG5jb25zdCBpbmZlcnJpbmdLZXl3b3JkcyA9IHtcbiAgYXJyYXk6IFtcbiAgICBcIml0ZW1zXCIsXG4gICAgXCJwcmVmaXhJdGVtc1wiLFxuICAgIFwiY29udGFpbnNcIixcbiAgICBcIm1heENvbnRhaW5zXCIsXG4gICAgXCJtaW5Db250YWluc1wiLFxuICAgIFwibWF4SXRlbXNcIixcbiAgICBcIm1pbkl0ZW1zXCIsXG4gICAgXCJ1bmlxdWVJdGVtc1wiLFxuICAgIFwidW5ldmFsdWF0ZWRJdGVtc1wiLFxuICBdLFxuICBvYmplY3Q6IFtcbiAgICBcInByb3BlcnRpZXNcIixcbiAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCIsXG4gICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiLFxuICAgIFwicHJvcGVydHlOYW1lc1wiLFxuICAgIFwibWluUHJvcGVydGllc1wiLFxuICAgIFwibWF4UHJvcGVydGllc1wiLFxuICAgIFwicmVxdWlyZWRcIixcbiAgICBcImRlcGVuZGVudFNjaGVtYXNcIixcbiAgICBcImRlcGVuZGVudFJlcXVpcmVkXCIsXG4gICAgXCJ1bmV2YWx1YXRlZFByb3BlcnRpZXNcIixcbiAgXSxcbiAgc3RyaW5nOiBbXG4gICAgXCJwYXR0ZXJuXCIsXG4gICAgXCJmb3JtYXRcIixcbiAgICBcIm1pbkxlbmd0aFwiLFxuICAgIFwibWF4TGVuZ3RoXCIsXG4gICAgXCJjb250ZW50RW5jb2RpbmdcIixcbiAgICBcImNvbnRlbnRNZWRpYVR5cGVcIixcbiAgICBcImNvbnRlbnRTY2hlbWFcIixcbiAgXSxcbiAgaW50ZWdlcjogW1xuICAgIFwibWluaW11bVwiLFxuICAgIFwibWF4aW11bVwiLFxuICAgIFwiZXhjbHVzaXZlTWluaW11bVwiLFxuICAgIFwiZXhjbHVzaXZlTWF4aW11bVwiLFxuICAgIFwibXVsdGlwbGVPZlwiLFxuICBdLFxufVxuaW5mZXJyaW5nS2V5d29yZHMubnVtYmVyID0gaW5mZXJyaW5nS2V5d29yZHMuaW50ZWdlclxuXG5jb25zdCBmYWxsYmFja1R5cGUgPSBcInN0cmluZ1wiXG5cbmNvbnN0IGluZmVyVHlwZUZyb21WYWx1ZSA9ICh2YWx1ZSkgPT4ge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gbnVsbFxuICBpZiAodmFsdWUgPT09IG51bGwpIHJldHVybiBcIm51bGxcIlxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJldHVybiBcImFycmF5XCJcbiAgaWYgKE51bWJlci5pc0ludGVnZXIodmFsdWUpKSByZXR1cm4gXCJpbnRlZ2VyXCJcblxuICByZXR1cm4gdHlwZW9mIHZhbHVlXG59XG5cbmV4cG9ydCBjb25zdCBmb2xkVHlwZSA9ICh0eXBlKSA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KHR5cGUpICYmIHR5cGUubGVuZ3RoID49IDEpIHtcbiAgICBpZiAodHlwZS5pbmNsdWRlcyhcImFycmF5XCIpKSB7XG4gICAgICByZXR1cm4gXCJhcnJheVwiXG4gICAgfSBlbHNlIGlmICh0eXBlLmluY2x1ZGVzKFwib2JqZWN0XCIpKSB7XG4gICAgICByZXR1cm4gXCJvYmplY3RcIlxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub3ROdWxsVHlwZXMgPSB0eXBlLmZpbHRlcigodCkgPT4gdCAhPT0gXCJudWxsXCIpXG4gICAgICBjb25zdCBwaWNrZWRUeXBlID0gcmFuZG9tUGljayhcbiAgICAgICAgbm90TnVsbFR5cGVzLmxlbmd0aCA+IDAgPyBub3ROdWxsVHlwZXMgOiB0eXBlXG4gICAgICApXG4gICAgICBpZiAoQUxMX1RZUEVTLmluY2x1ZGVzKHBpY2tlZFR5cGUpKSB7XG4gICAgICAgIHJldHVybiBwaWNrZWRUeXBlXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKEFMTF9UWVBFUy5pbmNsdWRlcyh0eXBlKSkge1xuICAgIHJldHVybiB0eXBlXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgY29uc3QgaW5mZXJUeXBlID0gKHNjaGVtYSwgcHJvY2Vzc2VkU2NoZW1hcyA9IG5ldyBXZWFrU2V0KCkpID0+IHtcbiAgaWYgKCFpc0pTT05TY2hlbWFPYmplY3Qoc2NoZW1hKSkgcmV0dXJuIGZhbGxiYWNrVHlwZVxuICBpZiAocHJvY2Vzc2VkU2NoZW1hcy5oYXMoc2NoZW1hKSkgcmV0dXJuIGZhbGxiYWNrVHlwZVxuXG4gIHByb2Nlc3NlZFNjaGVtYXMuYWRkKHNjaGVtYSlcblxuICBsZXQgeyB0eXBlLCBjb25zdDogY29uc3RhbnQgfSA9IHNjaGVtYVxuICB0eXBlID0gZm9sZFR5cGUodHlwZSlcblxuICAvLyBpbmZlcnJpbmcgdHlwZSBmcm9tIGluZmVycmluZyBrZXl3b3Jkc1xuICBpZiAodHlwZW9mIHR5cGUgIT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCBpbmZlcnJpbmdUeXBlcyA9IE9iamVjdC5rZXlzKGluZmVycmluZ0tleXdvcmRzKVxuXG4gICAgaW50ZXJydXB0OiBmb3IgKGxldCBpID0gMDsgaSA8IGluZmVycmluZ1R5cGVzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBjb25zdCBpbmZlcnJpbmdUeXBlID0gaW5mZXJyaW5nVHlwZXNbaV1cbiAgICAgIGNvbnN0IGluZmVycmluZ1R5cGVLZXl3b3JkcyA9IGluZmVycmluZ0tleXdvcmRzW2luZmVycmluZ1R5cGVdXG5cbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgaW5mZXJyaW5nVHlwZUtleXdvcmRzLmxlbmd0aDsgaiArPSAxKSB7XG4gICAgICAgIGNvbnN0IGluZmVycmluZ0tleXdvcmQgPSBpbmZlcnJpbmdUeXBlS2V5d29yZHNbal1cbiAgICAgICAgaWYgKE9iamVjdC5oYXNPd24oc2NoZW1hLCBpbmZlcnJpbmdLZXl3b3JkKSkge1xuICAgICAgICAgIHR5cGUgPSBpbmZlcnJpbmdUeXBlXG4gICAgICAgICAgYnJlYWsgaW50ZXJydXB0XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBpbmZlcnJpbmcgdHlwZSBmcm9tIGNvbnN0IGtleXdvcmRcbiAgaWYgKHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiICYmIHR5cGVvZiBjb25zdGFudCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGNvbnN0IGNvbnN0VHlwZSA9IGluZmVyVHlwZUZyb21WYWx1ZShjb25zdGFudClcbiAgICB0eXBlID0gdHlwZW9mIGNvbnN0VHlwZSA9PT0gXCJzdHJpbmdcIiA/IGNvbnN0VHlwZSA6IHR5cGVcbiAgfVxuXG4gIC8vIGluZmVycmluZyB0eXBlIGZyb20gY29tYmluaW5nIHNjaGVtYXNcbiAgaWYgKHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgY29tYmluZVR5cGVzID0gKGtleXdvcmQpID0+IHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYVtrZXl3b3JkXSkpIHtcbiAgICAgICAgY29uc3QgY29tYmluZWRUeXBlcyA9IHNjaGVtYVtrZXl3b3JkXS5tYXAoKHN1YlNjaGVtYSkgPT5cbiAgICAgICAgICBpbmZlclR5cGUoc3ViU2NoZW1hLCBwcm9jZXNzZWRTY2hlbWFzKVxuICAgICAgICApXG4gICAgICAgIHJldHVybiBmb2xkVHlwZShjb21iaW5lZFR5cGVzKVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCBhbGxPZiA9IGNvbWJpbmVUeXBlcyhcImFsbE9mXCIpXG4gICAgY29uc3QgYW55T2YgPSBjb21iaW5lVHlwZXMoXCJhbnlPZlwiKVxuICAgIGNvbnN0IG9uZU9mID0gY29tYmluZVR5cGVzKFwib25lT2ZcIilcbiAgICBjb25zdCBub3QgPSBzY2hlbWEubm90ID8gaW5mZXJUeXBlKHNjaGVtYS5ub3QsIHByb2Nlc3NlZFNjaGVtYXMpIDogbnVsbFxuXG4gICAgaWYgKGFsbE9mIHx8IGFueU9mIHx8IG9uZU9mIHx8IG5vdCkge1xuICAgICAgdHlwZSA9IGZvbGRUeXBlKFthbGxPZiwgYW55T2YsIG9uZU9mLCBub3RdLmZpbHRlcihCb29sZWFuKSlcbiAgICB9XG4gIH1cblxuICAvLyBpbmZlcnJpbmcgdHlwZSBmcm9tIGV4YW1wbGVcbiAgaWYgKHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiICYmIGhhc0V4YW1wbGUoc2NoZW1hKSkge1xuICAgIGNvbnN0IGV4YW1wbGUgPSBleHRyYWN0RXhhbXBsZShzY2hlbWEpXG4gICAgY29uc3QgZXhhbXBsZVR5cGUgPSBpbmZlclR5cGVGcm9tVmFsdWUoZXhhbXBsZSlcbiAgICB0eXBlID0gdHlwZW9mIGV4YW1wbGVUeXBlID09PSBcInN0cmluZ1wiID8gZXhhbXBsZVR5cGUgOiB0eXBlXG4gIH1cblxuICBwcm9jZXNzZWRTY2hlbWFzLmRlbGV0ZShzY2hlbWEpXG5cbiAgcmV0dXJuIHR5cGUgfHwgZmFsbGJhY2tUeXBlXG59XG5cbmV4cG9ydCBjb25zdCBnZXRUeXBlID0gKHNjaGVtYSkgPT4ge1xuICByZXR1cm4gaW5mZXJUeXBlKHNjaGVtYSlcbn1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IGlzQm9vbGVhbkpTT05TY2hlbWEsIGlzSlNPTlNjaGVtYU9iamVjdCB9IGZyb20gXCIuL3ByZWRpY2F0ZXNcIlxuXG5leHBvcnQgY29uc3QgZnJvbUpTT05Cb29sZWFuU2NoZW1hID0gKHNjaGVtYSkgPT4ge1xuICBpZiAoc2NoZW1hID09PSBmYWxzZSkge1xuICAgIHJldHVybiB7IG5vdDoge30gfVxuICB9XG5cbiAgcmV0dXJuIHt9XG59XG5cbmV4cG9ydCBjb25zdCB0eXBlQ2FzdCA9IChzY2hlbWEpID0+IHtcbiAgaWYgKGlzQm9vbGVhbkpTT05TY2hlbWEoc2NoZW1hKSkge1xuICAgIHJldHVybiBmcm9tSlNPTkJvb2xlYW5TY2hlbWEoc2NoZW1hKVxuICB9XG4gIGlmICghaXNKU09OU2NoZW1hT2JqZWN0KHNjaGVtYSkpIHtcbiAgICByZXR1cm4ge31cbiAgfVxuXG4gIHJldHVybiBzY2hlbWFcbn1cbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IG5vcm1hbGl6ZUFycmF5IGFzIGVuc3VyZUFycmF5IH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuaW1wb3J0IHsgaXNCb29sZWFuSlNPTlNjaGVtYSwgaXNKU09OU2NoZW1hIH0gZnJvbSBcIi4vcHJlZGljYXRlc1wiXG5cbmNvbnN0IG1lcmdlID0gKHRhcmdldCwgc291cmNlLCBjb25maWcgPSB7fSkgPT4ge1xuICBpZiAoaXNCb29sZWFuSlNPTlNjaGVtYSh0YXJnZXQpICYmIHRhcmdldCA9PT0gdHJ1ZSkgcmV0dXJuIHRydWVcbiAgaWYgKGlzQm9vbGVhbkpTT05TY2hlbWEodGFyZ2V0KSAmJiB0YXJnZXQgPT09IGZhbHNlKSByZXR1cm4gZmFsc2VcbiAgaWYgKGlzQm9vbGVhbkpTT05TY2hlbWEoc291cmNlKSAmJiBzb3VyY2UgPT09IHRydWUpIHJldHVybiB0cnVlXG4gIGlmIChpc0Jvb2xlYW5KU09OU2NoZW1hKHNvdXJjZSkgJiYgc291cmNlID09PSBmYWxzZSkgcmV0dXJuIGZhbHNlXG5cbiAgaWYgKCFpc0pTT05TY2hlbWEodGFyZ2V0KSkgcmV0dXJuIHNvdXJjZVxuICBpZiAoIWlzSlNPTlNjaGVtYShzb3VyY2UpKSByZXR1cm4gdGFyZ2V0XG5cbiAgLyoqXG4gICAqIE1lcmdpbmcgcHJvcGVydGllcyBmcm9tIHRoZSBzb3VyY2Ugb2JqZWN0IGludG8gdGhlIHRhcmdldCBvYmplY3RcbiAgICogb25seSBpZiB0aGV5IGRvIG5vdCBhbHJlYWR5IGV4aXN0IGluIHRoZSB0YXJnZXQgb2JqZWN0LlxuICAgKi9cbiAgY29uc3QgbWVyZ2VkID0geyAuLi5zb3VyY2UsIC4uLnRhcmdldCB9XG5cbiAgLy8gbWVyZ2luZyB0aGUgdHlwZSBrZXl3b3JkXG4gIGlmIChzb3VyY2UudHlwZSAmJiB0YXJnZXQudHlwZSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZS50eXBlKSAmJiB0eXBlb2Ygc291cmNlLnR5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGNvbnN0IG1lcmdlZFR5cGUgPSBlbnN1cmVBcnJheShzb3VyY2UudHlwZSkuY29uY2F0KHRhcmdldC50eXBlKVxuICAgICAgbWVyZ2VkLnR5cGUgPSBBcnJheS5mcm9tKG5ldyBTZXQobWVyZ2VkVHlwZSkpXG4gICAgfVxuICB9XG5cbiAgLy8gbWVyZ2luZyByZXF1aXJlZCBrZXl3b3JkXG4gIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZS5yZXF1aXJlZCkgJiYgQXJyYXkuaXNBcnJheSh0YXJnZXQucmVxdWlyZWQpKSB7XG4gICAgbWVyZ2VkLnJlcXVpcmVkID0gWy4uLm5ldyBTZXQoWy4uLnRhcmdldC5yZXF1aXJlZCwgLi4uc291cmNlLnJlcXVpcmVkXSldXG4gIH1cblxuICAvLyBtZXJnaW5nIHByb3BlcnRpZXMga2V5d29yZFxuICBpZiAoc291cmNlLnByb3BlcnRpZXMgJiYgdGFyZ2V0LnByb3BlcnRpZXMpIHtcbiAgICBjb25zdCBhbGxQcm9wZXJ0eU5hbWVzID0gbmV3IFNldChbXG4gICAgICAuLi5PYmplY3Qua2V5cyhzb3VyY2UucHJvcGVydGllcyksXG4gICAgICAuLi5PYmplY3Qua2V5cyh0YXJnZXQucHJvcGVydGllcyksXG4gICAgXSlcblxuICAgIG1lcmdlZC5wcm9wZXJ0aWVzID0ge31cbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgYWxsUHJvcGVydHlOYW1lcykge1xuICAgICAgY29uc3Qgc291cmNlUHJvcGVydHkgPSBzb3VyY2UucHJvcGVydGllc1tuYW1lXSB8fCB7fVxuICAgICAgY29uc3QgdGFyZ2V0UHJvcGVydHkgPSB0YXJnZXQucHJvcGVydGllc1tuYW1lXSB8fCB7fVxuXG4gICAgICBpZiAoXG4gICAgICAgIChzb3VyY2VQcm9wZXJ0eS5yZWFkT25seSAmJiAhY29uZmlnLmluY2x1ZGVSZWFkT25seSkgfHxcbiAgICAgICAgKHNvdXJjZVByb3BlcnR5LndyaXRlT25seSAmJiAhY29uZmlnLmluY2x1ZGVXcml0ZU9ubHkpXG4gICAgICApIHtcbiAgICAgICAgbWVyZ2VkLnJlcXVpcmVkID0gKG1lcmdlZC5yZXF1aXJlZCB8fCBbXSkuZmlsdGVyKChwKSA9PiBwICE9PSBuYW1lKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVyZ2VkLnByb3BlcnRpZXNbbmFtZV0gPSBtZXJnZSh0YXJnZXRQcm9wZXJ0eSwgc291cmNlUHJvcGVydHksIGNvbmZpZylcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBtZXJnaW5nIGl0ZW1zIGtleXdvcmRcbiAgaWYgKGlzSlNPTlNjaGVtYShzb3VyY2UuaXRlbXMpICYmIGlzSlNPTlNjaGVtYSh0YXJnZXQuaXRlbXMpKSB7XG4gICAgbWVyZ2VkLml0ZW1zID0gbWVyZ2UodGFyZ2V0Lml0ZW1zLCBzb3VyY2UuaXRlbXMsIGNvbmZpZylcbiAgfVxuXG4gIC8vIG1lcmdpbmcgY29udGFpbnMga2V5d29yZFxuICBpZiAoaXNKU09OU2NoZW1hKHNvdXJjZS5jb250YWlucykgJiYgaXNKU09OU2NoZW1hKHRhcmdldC5jb250YWlucykpIHtcbiAgICBtZXJnZWQuY29udGFpbnMgPSBtZXJnZSh0YXJnZXQuY29udGFpbnMsIHNvdXJjZS5jb250YWlucywgY29uZmlnKVxuICB9XG5cbiAgLy8gbWVyZ2luZyBjb250ZW50U2NoZW1hIGtleXdvcmRcbiAgaWYgKFxuICAgIGlzSlNPTlNjaGVtYShzb3VyY2UuY29udGVudFNjaGVtYSkgJiZcbiAgICBpc0pTT05TY2hlbWEodGFyZ2V0LmNvbnRlbnRTY2hlbWEpXG4gICkge1xuICAgIG1lcmdlZC5jb250ZW50U2NoZW1hID0gbWVyZ2UoXG4gICAgICB0YXJnZXQuY29udGVudFNjaGVtYSxcbiAgICAgIHNvdXJjZS5jb250ZW50U2NoZW1hLFxuICAgICAgY29uZmlnXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG1lcmdlZFxufVxuXG5leHBvcnQgZGVmYXVsdCBtZXJnZVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFhNTCBmcm9tIFwieG1sXCJcbmltcG9ydCBpc0VtcHR5IGZyb20gXCJsb2Rhc2gvaXNFbXB0eVwiXG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tIFwibG9kYXNoL2lzUGxhaW5PYmplY3RcIlxuXG5pbXBvcnQgeyBvYmplY3RpZnksIG5vcm1hbGl6ZUFycmF5IH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuaW1wb3J0IG1lbW9pemVOIGZyb20gXCJjb3JlL3V0aWxzL21lbW9pemVOXCJcbmltcG9ydCB0eXBlTWFwIGZyb20gXCIuL3R5cGVzL2luZGV4XCJcbmltcG9ydCB7IGdldFR5cGUgfSBmcm9tIFwiLi9jb3JlL3R5cGVcIlxuaW1wb3J0IHsgdHlwZUNhc3QgfSBmcm9tIFwiLi9jb3JlL3V0aWxzXCJcbmltcG9ydCB7IGhhc0V4YW1wbGUsIGV4dHJhY3RFeGFtcGxlIH0gZnJvbSBcIi4vY29yZS9leGFtcGxlXCJcbmltcG9ydCB7IHBpY2sgYXMgcmFuZG9tUGljayB9IGZyb20gXCIuL2NvcmUvcmFuZG9tXCJcbmltcG9ydCBtZXJnZSBmcm9tIFwiLi9jb3JlL21lcmdlXCJcbmltcG9ydCB7IGlzQm9vbGVhbkpTT05TY2hlbWEsIGlzSlNPTlNjaGVtYU9iamVjdCB9IGZyb20gXCIuL2NvcmUvcHJlZGljYXRlc1wiXG5cbmV4cG9ydCBjb25zdCBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyA9IChcbiAgc2NoZW1hLFxuICBjb25maWcgPSB7fSxcbiAgZXhhbXBsZU92ZXJyaWRlID0gdW5kZWZpbmVkLFxuICByZXNwZWN0WE1MID0gZmFsc2VcbikgPT4ge1xuICAvLyB0aGVyZSBpcyBub3RoaW5nIHRvIGdlbmVyYXRlIHNjaGVtYSBmcm9tXG4gIGlmIChzY2hlbWEgPT0gbnVsbCAmJiBleGFtcGxlT3ZlcnJpZGUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHVuZGVmaW5lZFxuXG4gIGlmICh0eXBlb2Ygc2NoZW1hPy50b0pTID09PSBcImZ1bmN0aW9uXCIpIHNjaGVtYSA9IHNjaGVtYS50b0pTKClcbiAgc2NoZW1hID0gdHlwZUNhc3Qoc2NoZW1hKVxuXG4gIGxldCB1c2VQbGFpblZhbHVlID0gZXhhbXBsZU92ZXJyaWRlICE9PSB1bmRlZmluZWQgfHwgaGFzRXhhbXBsZShzY2hlbWEpXG4gIC8vIGZpcnN0IGNoZWNrIGlmIHRoZXJlIGlzIHRoZSBuZWVkIG9mIGNvbWJpbmluZyB0aGlzIHNjaGVtYSB3aXRoIG90aGVycyByZXF1aXJlZCBieSBhbGxPZlxuICBjb25zdCBoYXNPbmVPZiA9XG4gICAgIXVzZVBsYWluVmFsdWUgJiYgQXJyYXkuaXNBcnJheShzY2hlbWEub25lT2YpICYmIHNjaGVtYS5vbmVPZi5sZW5ndGggPiAwXG4gIGNvbnN0IGhhc0FueU9mID1cbiAgICAhdXNlUGxhaW5WYWx1ZSAmJiBBcnJheS5pc0FycmF5KHNjaGVtYS5hbnlPZikgJiYgc2NoZW1hLmFueU9mLmxlbmd0aCA+IDBcbiAgaWYgKCF1c2VQbGFpblZhbHVlICYmIChoYXNPbmVPZiB8fCBoYXNBbnlPZikpIHtcbiAgICBjb25zdCBzY2hlbWFUb0FkZCA9IHR5cGVDYXN0KFxuICAgICAgaGFzT25lT2YgPyByYW5kb21QaWNrKHNjaGVtYS5vbmVPZikgOiByYW5kb21QaWNrKHNjaGVtYS5hbnlPZilcbiAgICApXG4gICAgc2NoZW1hID0gbWVyZ2Uoc2NoZW1hLCBzY2hlbWFUb0FkZCwgY29uZmlnKVxuICAgIGlmICghc2NoZW1hLnhtbCAmJiBzY2hlbWFUb0FkZC54bWwpIHtcbiAgICAgIHNjaGVtYS54bWwgPSBzY2hlbWFUb0FkZC54bWxcbiAgICB9XG4gICAgaWYgKGhhc0V4YW1wbGUoc2NoZW1hKSAmJiBoYXNFeGFtcGxlKHNjaGVtYVRvQWRkKSkge1xuICAgICAgdXNlUGxhaW5WYWx1ZSA9IHRydWVcbiAgICB9XG4gIH1cbiAgY29uc3QgX2F0dHIgPSB7fVxuICBsZXQgeyB4bWwsIHByb3BlcnRpZXMsIGFkZGl0aW9uYWxQcm9wZXJ0aWVzLCBpdGVtcywgY29udGFpbnMgfSA9IHNjaGVtYSB8fCB7fVxuICBsZXQgdHlwZSA9IGdldFR5cGUoc2NoZW1hKVxuICBsZXQgeyBpbmNsdWRlUmVhZE9ubHksIGluY2x1ZGVXcml0ZU9ubHkgfSA9IGNvbmZpZ1xuICB4bWwgPSB4bWwgfHwge31cbiAgbGV0IHsgbmFtZSwgcHJlZml4LCBuYW1lc3BhY2UgfSA9IHhtbFxuICBsZXQgZGlzcGxheU5hbWVcbiAgbGV0IHJlcyA9IHt9XG5cbiAgaWYgKCFPYmplY3QuaGFzT3duKHNjaGVtYSwgXCJ0eXBlXCIpKSB7XG4gICAgc2NoZW1hLnR5cGUgPSB0eXBlXG4gIH1cblxuICAvLyBzZXQgeG1sIG5hbWluZyBhbmQgYXR0cmlidXRlc1xuICBpZiAocmVzcGVjdFhNTCkge1xuICAgIG5hbWUgPSBuYW1lIHx8IFwibm90YWduYW1lXCJcbiAgICAvLyBhZGQgcHJlZml4IHRvIG5hbWUgaWYgZXhpc3RzXG4gICAgZGlzcGxheU5hbWUgPSAocHJlZml4ID8gYCR7cHJlZml4fTpgIDogXCJcIikgKyBuYW1lXG4gICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgLy9hZGQgcHJlZml4IHRvIG5hbWVzcGFjZSBpZiBleGlzdHNcbiAgICAgIGxldCBuYW1lc3BhY2VQcmVmaXggPSBwcmVmaXggPyBgeG1sbnM6JHtwcmVmaXh9YCA6IFwieG1sbnNcIlxuICAgICAgX2F0dHJbbmFtZXNwYWNlUHJlZml4XSA9IG5hbWVzcGFjZVxuICAgIH1cbiAgfVxuXG4gIC8vIGluaXQgeG1sIGRlZmF1bHQgcmVzcG9uc2Ugc2FtcGxlIG9ialxuICBpZiAocmVzcGVjdFhNTCkge1xuICAgIHJlc1tkaXNwbGF5TmFtZV0gPSBbXVxuICB9XG5cbiAgLy8gYWRkIHRvIHJlc3VsdCBoZWxwZXIgaW5pdCBmb3IgeG1sIG9yIGpzb25cbiAgY29uc3QgcHJvcHMgPSBvYmplY3RpZnkocHJvcGVydGllcylcbiAgbGV0IGFkZFByb3BlcnR5VG9SZXN1bHRcbiAgbGV0IHByb3BlcnR5QWRkZWRDb3VudGVyID0gMFxuXG4gIGNvbnN0IGhhc0V4Y2VlZGVkTWF4UHJvcGVydGllcyA9ICgpID0+XG4gICAgTnVtYmVyLmlzSW50ZWdlcihzY2hlbWEubWF4UHJvcGVydGllcykgJiZcbiAgICBzY2hlbWEubWF4UHJvcGVydGllcyA+IDAgJiZcbiAgICBwcm9wZXJ0eUFkZGVkQ291bnRlciA+PSBzY2hlbWEubWF4UHJvcGVydGllc1xuXG4gIGNvbnN0IHJlcXVpcmVkUHJvcGVydGllc1RvQWRkID0gKCkgPT4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShzY2hlbWEucmVxdWlyZWQpIHx8IHNjaGVtYS5yZXF1aXJlZC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiAwXG4gICAgfVxuICAgIGxldCBhZGRlZENvdW50ID0gMFxuICAgIGlmIChyZXNwZWN0WE1MKSB7XG4gICAgICBzY2hlbWEucmVxdWlyZWQuZm9yRWFjaChcbiAgICAgICAgKGtleSkgPT4gKGFkZGVkQ291bnQgKz0gcmVzW2tleV0gPT09IHVuZGVmaW5lZCA/IDAgOiAxKVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBzY2hlbWEucmVxdWlyZWQuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGFkZGVkQ291bnQgKz1cbiAgICAgICAgICByZXNbZGlzcGxheU5hbWVdPy5maW5kKCh4KSA9PiB4W2tleV0gIT09IHVuZGVmaW5lZCkgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICA6IDFcbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVybiBzY2hlbWEucmVxdWlyZWQubGVuZ3RoIC0gYWRkZWRDb3VudFxuICB9XG5cbiAgY29uc3QgaXNPcHRpb25hbFByb3BlcnR5ID0gKHByb3BOYW1lKSA9PiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHNjaGVtYS5yZXF1aXJlZCkpIHJldHVybiB0cnVlXG4gICAgaWYgKHNjaGVtYS5yZXF1aXJlZC5sZW5ndGggPT09IDApIHJldHVybiB0cnVlXG5cbiAgICByZXR1cm4gIXNjaGVtYS5yZXF1aXJlZC5pbmNsdWRlcyhwcm9wTmFtZSlcbiAgfVxuXG4gIGNvbnN0IGNhbkFkZFByb3BlcnR5ID0gKHByb3BOYW1lKSA9PiB7XG4gICAgaWYgKCEoTnVtYmVyLmlzSW50ZWdlcihzY2hlbWEubWF4UHJvcGVydGllcykgJiYgc2NoZW1hLm1heFByb3BlcnRpZXMgPiAwKSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgaWYgKGhhc0V4Y2VlZGVkTWF4UHJvcGVydGllcygpKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgaWYgKCFpc09wdGlvbmFsUHJvcGVydHkocHJvcE5hbWUpKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgc2NoZW1hLm1heFByb3BlcnRpZXMgLSBwcm9wZXJ0eUFkZGVkQ291bnRlciAtIHJlcXVpcmVkUHJvcGVydGllc1RvQWRkKCkgPlxuICAgICAgMFxuICAgIClcbiAgfVxuXG4gIGlmIChyZXNwZWN0WE1MKSB7XG4gICAgYWRkUHJvcGVydHlUb1Jlc3VsdCA9IChwcm9wTmFtZSwgb3ZlcnJpZGVFID0gdW5kZWZpbmVkKSA9PiB7XG4gICAgICBpZiAoc2NoZW1hICYmIHByb3BzW3Byb3BOYW1lXSkge1xuICAgICAgICAvLyBjYXNlIGl0IGlzIGEgeG1sIGF0dHJpYnV0ZVxuICAgICAgICBwcm9wc1twcm9wTmFtZV0ueG1sID0gcHJvcHNbcHJvcE5hbWVdLnhtbCB8fCB7fVxuXG4gICAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0ueG1sLmF0dHJpYnV0ZSkge1xuICAgICAgICAgIGNvbnN0IGVudW1BdHRyVmFsID0gQXJyYXkuaXNBcnJheShwcm9wc1twcm9wTmFtZV0uZW51bSlcbiAgICAgICAgICAgID8gcmFuZG9tUGljayhwcm9wc1twcm9wTmFtZV0uZW51bSlcbiAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgaWYgKGhhc0V4YW1wbGUocHJvcHNbcHJvcE5hbWVdKSkge1xuICAgICAgICAgICAgX2F0dHJbcHJvcHNbcHJvcE5hbWVdLnhtbC5uYW1lIHx8IHByb3BOYW1lXSA9IGV4dHJhY3RFeGFtcGxlKFxuICAgICAgICAgICAgICBwcm9wc1twcm9wTmFtZV1cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9IGVsc2UgaWYgKGVudW1BdHRyVmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIF9hdHRyW3Byb3BzW3Byb3BOYW1lXS54bWwubmFtZSB8fCBwcm9wTmFtZV0gPSBlbnVtQXR0clZhbFxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwcm9wU2NoZW1hID0gdHlwZUNhc3QocHJvcHNbcHJvcE5hbWVdKVxuICAgICAgICAgICAgY29uc3QgcHJvcFNjaGVtYVR5cGUgPSBnZXRUeXBlKHByb3BTY2hlbWEpXG4gICAgICAgICAgICBjb25zdCBhdHRyTmFtZSA9IHByb3BzW3Byb3BOYW1lXS54bWwubmFtZSB8fCBwcm9wTmFtZVxuXG4gICAgICAgICAgICBpZiAocHJvcFNjaGVtYVR5cGUgPT09IFwiYXJyYXlcIikge1xuICAgICAgICAgICAgICBjb25zdCBhcnJheVNhbXBsZSA9IHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKFxuICAgICAgICAgICAgICAgIHByb3BzW3Byb3BOYW1lXSxcbiAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgb3ZlcnJpZGVFLFxuICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgX2F0dHJbYXR0ck5hbWVdID0gYXJyYXlTYW1wbGVcbiAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoaXNQbGFpbk9iamVjdChpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gXCJVbmtub3duVHlwZU9iamVjdFwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gXCJVbmtub3duVHlwZUFycmF5XCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuam9pbihcIiBcIilcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIF9hdHRyW2F0dHJOYW1lXSA9XG4gICAgICAgICAgICAgICAgcHJvcFNjaGVtYVR5cGUgPT09IFwib2JqZWN0XCJcbiAgICAgICAgICAgICAgICAgID8gXCJVbmtub3duVHlwZU9iamVjdFwiXG4gICAgICAgICAgICAgICAgICA6IHR5cGVNYXBbcHJvcFNjaGVtYVR5cGVdKHByb3BTY2hlbWEpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgcHJvcHNbcHJvcE5hbWVdLnhtbC5uYW1lID0gcHJvcHNbcHJvcE5hbWVdLnhtbC5uYW1lIHx8IHByb3BOYW1lXG4gICAgICB9IGVsc2UgaWYgKCFwcm9wc1twcm9wTmFtZV0gJiYgYWRkaXRpb25hbFByb3BlcnRpZXMgIT09IGZhbHNlKSB7XG4gICAgICAgIC8vIGNhc2Ugb25seSBhZGRpdGlvbmFsUHJvcGVydHkgdGhhdCBpcyBub3QgZGVmaW5lZCBpbiBzY2hlbWFcbiAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0ge1xuICAgICAgICAgIHhtbDoge1xuICAgICAgICAgICAgbmFtZTogcHJvcE5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsZXQgdCA9IHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKFxuICAgICAgICBwcm9wc1twcm9wTmFtZV0sXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgb3ZlcnJpZGVFLFxuICAgICAgICByZXNwZWN0WE1MXG4gICAgICApXG4gICAgICBpZiAoIWNhbkFkZFByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgcHJvcGVydHlBZGRlZENvdW50ZXIrK1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodCkpIHtcbiAgICAgICAgcmVzW2Rpc3BsYXlOYW1lXSA9IHJlc1tkaXNwbGF5TmFtZV0uY29uY2F0KHQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNbZGlzcGxheU5hbWVdLnB1c2godClcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgYWRkUHJvcGVydHlUb1Jlc3VsdCA9IChwcm9wTmFtZSwgb3ZlcnJpZGVFKSA9PiB7XG4gICAgICBpZiAoIWNhbkFkZFByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgaXNQbGFpbk9iamVjdChzY2hlbWEuZGlzY3JpbWluYXRvcj8ubWFwcGluZykgJiZcbiAgICAgICAgc2NoZW1hLmRpc2NyaW1pbmF0b3IucHJvcGVydHlOYW1lID09PSBwcm9wTmFtZSAmJlxuICAgICAgICB0eXBlb2Ygc2NoZW1hLiQkcmVmID09PSBcInN0cmluZ1wiXG4gICAgICApIHtcbiAgICAgICAgZm9yIChjb25zdCBwYWlyIGluIHNjaGVtYS5kaXNjcmltaW5hdG9yLm1hcHBpbmcpIHtcbiAgICAgICAgICBpZiAoc2NoZW1hLiQkcmVmLnNlYXJjaChzY2hlbWEuZGlzY3JpbWluYXRvci5tYXBwaW5nW3BhaXJdKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHJlc1twcm9wTmFtZV0gPSBwYWlyXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzW3Byb3BOYW1lXSA9IHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKFxuICAgICAgICAgIHByb3BzW3Byb3BOYW1lXSxcbiAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgb3ZlcnJpZGVFLFxuICAgICAgICAgIHJlc3BlY3RYTUxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcHJvcGVydHlBZGRlZENvdW50ZXIrK1xuICAgIH1cbiAgfVxuXG4gIC8vIGNoZWNrIGZvciBwbGFpbiB2YWx1ZSBhbmQgaWYgZm91bmQgdXNlIGl0IHRvIGdlbmVyYXRlIHNhbXBsZSBmcm9tIGl0XG4gIGlmICh1c2VQbGFpblZhbHVlKSB7XG4gICAgbGV0IHNhbXBsZVxuICAgIGlmIChleGFtcGxlT3ZlcnJpZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgc2FtcGxlID0gZXhhbXBsZU92ZXJyaWRlXG4gICAgfSBlbHNlIHtcbiAgICAgIHNhbXBsZSA9IGV4dHJhY3RFeGFtcGxlKHNjaGVtYSlcbiAgICB9XG5cbiAgICAvLyBpZiBqc29uIGp1c3QgcmV0dXJuXG4gICAgaWYgKCFyZXNwZWN0WE1MKSB7XG4gICAgICAvLyBzcGVjaWFsIGNhc2UgeWFtbCBwYXJzZXIgY2FuIG5vdCBrbm93IGFib3V0XG4gICAgICBpZiAodHlwZW9mIHNhbXBsZSA9PT0gXCJudW1iZXJcIiAmJiB0eXBlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBgJHtzYW1wbGV9YFxuICAgICAgfVxuICAgICAgLy8gcmV0dXJuIGlmIHNhbXBsZSBkb2VzIG5vdCBuZWVkIGFueSBwYXJzaW5nXG4gICAgICBpZiAodHlwZW9mIHNhbXBsZSAhPT0gXCJzdHJpbmdcIiB8fCB0eXBlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBzYW1wbGVcbiAgICAgIH1cbiAgICAgIC8vIGNoZWNrIGlmIHNhbXBsZSBpcyBwYXJzYWJsZSBvciBqdXN0IGEgcGxhaW4gc3RyaW5nXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShzYW1wbGUpXG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgLy8gc2FtcGxlIGlzIGp1c3QgcGxhaW4gc3RyaW5nIHJldHVybiBpdFxuICAgICAgICByZXR1cm4gc2FtcGxlXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gZ2VuZXJhdGUgeG1sIHNhbXBsZSByZWN1cnNpdmVseSBmb3IgYXJyYXkgY2FzZVxuICAgIGlmICh0eXBlID09PSBcImFycmF5XCIpIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShzYW1wbGUpKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2FtcGxlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgcmV0dXJuIHNhbXBsZVxuICAgICAgICB9XG4gICAgICAgIHNhbXBsZSA9IFtzYW1wbGVdXG4gICAgICB9XG5cbiAgICAgIGxldCBpdGVtU2FtcGxlcyA9IFtdXG5cbiAgICAgIGlmIChpc0pTT05TY2hlbWFPYmplY3QoaXRlbXMpKSB7XG4gICAgICAgIGl0ZW1zLnhtbCA9IGl0ZW1zLnhtbCB8fCB4bWwgfHwge31cbiAgICAgICAgaXRlbXMueG1sLm5hbWUgPSBpdGVtcy54bWwubmFtZSB8fCB4bWwubmFtZVxuICAgICAgICBpdGVtU2FtcGxlcyA9IHNhbXBsZS5tYXAoKHMpID0+XG4gICAgICAgICAgc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoaXRlbXMsIGNvbmZpZywgcywgcmVzcGVjdFhNTClcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNKU09OU2NoZW1hT2JqZWN0KGNvbnRhaW5zKSkge1xuICAgICAgICBjb250YWlucy54bWwgPSBjb250YWlucy54bWwgfHwgeG1sIHx8IHt9XG4gICAgICAgIGNvbnRhaW5zLnhtbC5uYW1lID0gY29udGFpbnMueG1sLm5hbWUgfHwgeG1sLm5hbWVcbiAgICAgICAgaXRlbVNhbXBsZXMgPSBbXG4gICAgICAgICAgc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoY29udGFpbnMsIGNvbmZpZywgdW5kZWZpbmVkLCByZXNwZWN0WE1MKSxcbiAgICAgICAgICAuLi5pdGVtU2FtcGxlcyxcbiAgICAgICAgXVxuICAgICAgfVxuXG4gICAgICBpdGVtU2FtcGxlcyA9IHR5cGVNYXAuYXJyYXkoc2NoZW1hLCB7IHNhbXBsZTogaXRlbVNhbXBsZXMgfSlcbiAgICAgIGlmICh4bWwud3JhcHBlZCkge1xuICAgICAgICByZXNbZGlzcGxheU5hbWVdID0gaXRlbVNhbXBsZXNcbiAgICAgICAgaWYgKCFpc0VtcHR5KF9hdHRyKSkge1xuICAgICAgICAgIHJlc1tkaXNwbGF5TmFtZV0ucHVzaCh7IF9hdHRyOiBfYXR0ciB9KVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXMgPSBpdGVtU2FtcGxlc1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc1xuICAgIH1cblxuICAgIC8vIGdlbmVyYXRlIHhtbCBzYW1wbGUgcmVjdXJzaXZlbHkgZm9yIG9iamVjdCBjYXNlXG4gICAgaWYgKHR5cGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIC8vIGNhc2UgbGl0ZXJhbCBleGFtcGxlXG4gICAgICBpZiAodHlwZW9mIHNhbXBsZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gc2FtcGxlXG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IHByb3BOYW1lIGluIHNhbXBsZSkge1xuICAgICAgICBpZiAoIU9iamVjdC5oYXNPd24oc2FtcGxlLCBwcm9wTmFtZSkpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0/LnJlYWRPbmx5ICYmICFpbmNsdWRlUmVhZE9ubHkpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0/LndyaXRlT25seSAmJiAhaW5jbHVkZVdyaXRlT25seSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXT8ueG1sPy5hdHRyaWJ1dGUpIHtcbiAgICAgICAgICBfYXR0cltwcm9wc1twcm9wTmFtZV0ueG1sLm5hbWUgfHwgcHJvcE5hbWVdID0gc2FtcGxlW3Byb3BOYW1lXVxuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgYWRkUHJvcGVydHlUb1Jlc3VsdChwcm9wTmFtZSwgc2FtcGxlW3Byb3BOYW1lXSlcbiAgICAgIH1cbiAgICAgIGlmICghaXNFbXB0eShfYXR0cikpIHtcbiAgICAgICAgcmVzW2Rpc3BsYXlOYW1lXS5wdXNoKHsgX2F0dHI6IF9hdHRyIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNcbiAgICB9XG5cbiAgICByZXNbZGlzcGxheU5hbWVdID0gIWlzRW1wdHkoX2F0dHIpID8gW3sgX2F0dHI6IF9hdHRyIH0sIHNhbXBsZV0gOiBzYW1wbGVcbiAgICByZXR1cm4gcmVzXG4gIH1cblxuICAvLyB1c2Ugc2NoZW1hIHRvIGdlbmVyYXRlIHNhbXBsZVxuICBpZiAodHlwZSA9PT0gXCJhcnJheVwiKSB7XG4gICAgbGV0IHNhbXBsZUFycmF5ID0gW11cblxuICAgIGlmIChpc0pTT05TY2hlbWFPYmplY3QoY29udGFpbnMpKSB7XG4gICAgICBpZiAocmVzcGVjdFhNTCkge1xuICAgICAgICBjb250YWlucy54bWwgPSBjb250YWlucy54bWwgfHwgc2NoZW1hLnhtbCB8fCB7fVxuICAgICAgICBjb250YWlucy54bWwubmFtZSA9IGNvbnRhaW5zLnhtbC5uYW1lIHx8IHhtbC5uYW1lXG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGNvbnRhaW5zLmFueU9mKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgICAgICAgY29uc3QgeyBhbnlPZiwgLi4uY29udGFpbnNXaXRob3V0QW55T2YgfSA9IGl0ZW1zXG5cbiAgICAgICAgc2FtcGxlQXJyYXkucHVzaChcbiAgICAgICAgICAuLi5jb250YWlucy5hbnlPZi5tYXAoKGFueU9mU2NoZW1hKSA9PlxuICAgICAgICAgICAgc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoXG4gICAgICAgICAgICAgIG1lcmdlKGFueU9mU2NoZW1hLCBjb250YWluc1dpdGhvdXRBbnlPZiwgY29uZmlnKSxcbiAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIHJlc3BlY3RYTUxcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjb250YWlucy5vbmVPZikpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgICAgIGNvbnN0IHsgb25lT2YsIC4uLmNvbnRhaW5zV2l0aG91dE9uZU9mIH0gPSBpdGVtc1xuXG4gICAgICAgIHNhbXBsZUFycmF5LnB1c2goXG4gICAgICAgICAgLi4uY29udGFpbnMub25lT2YubWFwKChvbmVPZlNjaGVtYSkgPT5cbiAgICAgICAgICAgIHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKFxuICAgICAgICAgICAgICBtZXJnZShvbmVPZlNjaGVtYSwgY29udGFpbnNXaXRob3V0T25lT2YsIGNvbmZpZyksXG4gICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICByZXNwZWN0WE1MXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9IGVsc2UgaWYgKCFyZXNwZWN0WE1MIHx8IChyZXNwZWN0WE1MICYmIHhtbC53cmFwcGVkKSkge1xuICAgICAgICBzYW1wbGVBcnJheS5wdXNoKFxuICAgICAgICAgIHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKGNvbnRhaW5zLCBjb25maWcsIHVuZGVmaW5lZCwgcmVzcGVjdFhNTClcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKGNvbnRhaW5zLCBjb25maWcsIHVuZGVmaW5lZCwgcmVzcGVjdFhNTClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaXNKU09OU2NoZW1hT2JqZWN0KGl0ZW1zKSkge1xuICAgICAgaWYgKHJlc3BlY3RYTUwpIHtcbiAgICAgICAgaXRlbXMueG1sID0gaXRlbXMueG1sIHx8IHNjaGVtYS54bWwgfHwge31cbiAgICAgICAgaXRlbXMueG1sLm5hbWUgPSBpdGVtcy54bWwubmFtZSB8fCB4bWwubmFtZVxuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtcy5hbnlPZikpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgICAgIGNvbnN0IHsgYW55T2YsIC4uLml0ZW1zV2l0aG91dEFueU9mIH0gPSBpdGVtc1xuXG4gICAgICAgIHNhbXBsZUFycmF5LnB1c2goXG4gICAgICAgICAgLi4uaXRlbXMuYW55T2YubWFwKChpKSA9PlxuICAgICAgICAgICAgc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMoXG4gICAgICAgICAgICAgIG1lcmdlKGksIGl0ZW1zV2l0aG91dEFueU9mLCBjb25maWcpLFxuICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgcmVzcGVjdFhNTFxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGl0ZW1zLm9uZU9mKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgICAgICAgY29uc3QgeyBvbmVPZiwgLi4uaXRlbXNXaXRob3V0T25lT2YgfSA9IGl0ZW1zXG5cbiAgICAgICAgc2FtcGxlQXJyYXkucHVzaChcbiAgICAgICAgICAuLi5pdGVtcy5vbmVPZi5tYXAoKGkpID0+XG4gICAgICAgICAgICBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhcbiAgICAgICAgICAgICAgbWVyZ2UoaSwgaXRlbXNXaXRob3V0T25lT2YsIGNvbmZpZyksXG4gICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICByZXNwZWN0WE1MXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9IGVsc2UgaWYgKCFyZXNwZWN0WE1MIHx8IChyZXNwZWN0WE1MICYmIHhtbC53cmFwcGVkKSkge1xuICAgICAgICBzYW1wbGVBcnJheS5wdXNoKFxuICAgICAgICAgIHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKGl0ZW1zLCBjb25maWcsIHVuZGVmaW5lZCwgcmVzcGVjdFhNTClcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKGl0ZW1zLCBjb25maWcsIHVuZGVmaW5lZCwgcmVzcGVjdFhNTClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzYW1wbGVBcnJheSA9IHR5cGVNYXAuYXJyYXkoc2NoZW1hLCB7IHNhbXBsZTogc2FtcGxlQXJyYXkgfSlcbiAgICBpZiAocmVzcGVjdFhNTCAmJiB4bWwud3JhcHBlZCkge1xuICAgICAgcmVzW2Rpc3BsYXlOYW1lXSA9IHNhbXBsZUFycmF5XG4gICAgICBpZiAoIWlzRW1wdHkoX2F0dHIpKSB7XG4gICAgICAgIHJlc1tkaXNwbGF5TmFtZV0ucHVzaCh7IF9hdHRyOiBfYXR0ciB9KVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc1xuICAgIH1cblxuICAgIHJldHVybiBzYW1wbGVBcnJheVxuICB9XG5cbiAgaWYgKHR5cGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICBmb3IgKGxldCBwcm9wTmFtZSBpbiBwcm9wcykge1xuICAgICAgaWYgKCFPYmplY3QuaGFzT3duKHByb3BzLCBwcm9wTmFtZSkpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0/LmRlcHJlY2F0ZWQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0/LnJlYWRPbmx5ICYmICFpbmNsdWRlUmVhZE9ubHkpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0/LndyaXRlT25seSAmJiAhaW5jbHVkZVdyaXRlT25seSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgYWRkUHJvcGVydHlUb1Jlc3VsdChwcm9wTmFtZSlcbiAgICB9XG4gICAgaWYgKHJlc3BlY3RYTUwgJiYgX2F0dHIpIHtcbiAgICAgIHJlc1tkaXNwbGF5TmFtZV0ucHVzaCh7IF9hdHRyOiBfYXR0ciB9KVxuICAgIH1cblxuICAgIGlmIChoYXNFeGNlZWRlZE1heFByb3BlcnRpZXMoKSkge1xuICAgICAgcmV0dXJuIHJlc1xuICAgIH1cblxuICAgIGlmIChpc0Jvb2xlYW5KU09OU2NoZW1hKGFkZGl0aW9uYWxQcm9wZXJ0aWVzKSAmJiBhZGRpdGlvbmFsUHJvcGVydGllcykge1xuICAgICAgaWYgKHJlc3BlY3RYTUwpIHtcbiAgICAgICAgcmVzW2Rpc3BsYXlOYW1lXS5wdXNoKHsgYWRkaXRpb25hbFByb3A6IFwiQW55dGhpbmcgY2FuIGJlIGhlcmVcIiB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzLmFkZGl0aW9uYWxQcm9wMSA9IHt9XG4gICAgICB9XG4gICAgICBwcm9wZXJ0eUFkZGVkQ291bnRlcisrXG4gICAgfSBlbHNlIGlmIChpc0pTT05TY2hlbWFPYmplY3QoYWRkaXRpb25hbFByb3BlcnRpZXMpKSB7XG4gICAgICBjb25zdCBhZGRpdGlvbmFsUHJvcHMgPSBhZGRpdGlvbmFsUHJvcGVydGllc1xuICAgICAgY29uc3QgYWRkaXRpb25hbFByb3BTYW1wbGUgPSBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhcbiAgICAgICAgYWRkaXRpb25hbFByb3BzLFxuICAgICAgICBjb25maWcsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgcmVzcGVjdFhNTFxuICAgICAgKVxuXG4gICAgICBpZiAoXG4gICAgICAgIHJlc3BlY3RYTUwgJiZcbiAgICAgICAgdHlwZW9mIGFkZGl0aW9uYWxQcm9wcz8ueG1sPy5uYW1lID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgIGFkZGl0aW9uYWxQcm9wcz8ueG1sPy5uYW1lICE9PSBcIm5vdGFnbmFtZVwiXG4gICAgICApIHtcbiAgICAgICAgcmVzW2Rpc3BsYXlOYW1lXS5wdXNoKGFkZGl0aW9uYWxQcm9wU2FtcGxlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdG9HZW5lcmF0ZUNvdW50ID1cbiAgICAgICAgICBOdW1iZXIuaXNJbnRlZ2VyKHNjaGVtYS5taW5Qcm9wZXJ0aWVzKSAmJlxuICAgICAgICAgIHNjaGVtYS5taW5Qcm9wZXJ0aWVzID4gMCAmJlxuICAgICAgICAgIHByb3BlcnR5QWRkZWRDb3VudGVyIDwgc2NoZW1hLm1pblByb3BlcnRpZXNcbiAgICAgICAgICAgID8gc2NoZW1hLm1pblByb3BlcnRpZXMgLSBwcm9wZXJ0eUFkZGVkQ291bnRlclxuICAgICAgICAgICAgOiAzXG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHRvR2VuZXJhdGVDb3VudDsgaSsrKSB7XG4gICAgICAgICAgaWYgKGhhc0V4Y2VlZGVkTWF4UHJvcGVydGllcygpKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyZXNwZWN0WE1MKSB7XG4gICAgICAgICAgICBjb25zdCB0ZW1wID0ge31cbiAgICAgICAgICAgIHRlbXBbXCJhZGRpdGlvbmFsUHJvcFwiICsgaV0gPSBhZGRpdGlvbmFsUHJvcFNhbXBsZVtcIm5vdGFnbmFtZVwiXVxuICAgICAgICAgICAgcmVzW2Rpc3BsYXlOYW1lXS5wdXNoKHRlbXApXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc1tcImFkZGl0aW9uYWxQcm9wXCIgKyBpXSA9IGFkZGl0aW9uYWxQcm9wU2FtcGxlXG4gICAgICAgICAgfVxuICAgICAgICAgIHByb3BlcnR5QWRkZWRDb3VudGVyKytcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzXG4gIH1cblxuICBsZXQgdmFsdWVcbiAgaWYgKHR5cGVvZiBzY2hlbWEuY29uc3QgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAvLyBkaXNwbGF5IGNvbnN0IHZhbHVlXG4gICAgdmFsdWUgPSBzY2hlbWEuY29uc3RcbiAgfSBlbHNlIGlmIChzY2hlbWEgJiYgQXJyYXkuaXNBcnJheShzY2hlbWEuZW51bSkpIHtcbiAgICAvL2Rpc3BsYXkgZW51bSBmaXJzdCB2YWx1ZVxuICAgIHZhbHVlID0gcmFuZG9tUGljayhub3JtYWxpemVBcnJheShzY2hlbWEuZW51bSkpXG4gIH0gZWxzZSB7XG4gICAgLy8gZGlzcGxheSBzY2hlbWEgZGVmYXVsdFxuICAgIGNvbnN0IGNvbnRlbnRTYW1wbGUgPSBpc0pTT05TY2hlbWFPYmplY3Qoc2NoZW1hLmNvbnRlbnRTY2hlbWEpXG4gICAgICA/IHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKFxuICAgICAgICAgIHNjaGVtYS5jb250ZW50U2NoZW1hLFxuICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgcmVzcGVjdFhNTFxuICAgICAgICApXG4gICAgICA6IHVuZGVmaW5lZFxuICAgIHZhbHVlID0gdHlwZU1hcFt0eXBlXShzY2hlbWEsIHsgc2FtcGxlOiBjb250ZW50U2FtcGxlIH0pXG4gIH1cblxuICBpZiAocmVzcGVjdFhNTCkge1xuICAgIHJlc1tkaXNwbGF5TmFtZV0gPSAhaXNFbXB0eShfYXR0cikgPyBbeyBfYXR0cjogX2F0dHIgfSwgdmFsdWVdIDogdmFsdWVcbiAgICByZXR1cm4gcmVzXG4gIH1cblxuICByZXR1cm4gdmFsdWVcbn1cblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVhNTEV4YW1wbGUgPSAoc2NoZW1hLCBjb25maWcsIG8pID0+IHtcbiAgY29uc3QganNvbiA9IHNhbXBsZUZyb21TY2hlbWFHZW5lcmljKHNjaGVtYSwgY29uZmlnLCBvLCB0cnVlKVxuICBpZiAoIWpzb24pIHtcbiAgICByZXR1cm5cbiAgfVxuICBpZiAodHlwZW9mIGpzb24gPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4ganNvblxuICB9XG4gIHJldHVybiBYTUwoanNvbiwgeyBkZWNsYXJhdGlvbjogdHJ1ZSwgaW5kZW50OiBcIlxcdFwiIH0pXG59XG5cbmV4cG9ydCBjb25zdCBzYW1wbGVGcm9tU2NoZW1hID0gKHNjaGVtYSwgY29uZmlnLCBvKSA9PiB7XG4gIHJldHVybiBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyhzY2hlbWEsIGNvbmZpZywgbywgZmFsc2UpXG59XG5cbmNvbnN0IHJlc29sdmVyID0gKGFyZzEsIGFyZzIsIGFyZzMpID0+IFtcbiAgYXJnMSxcbiAgSlNPTi5zdHJpbmdpZnkoYXJnMiksXG4gIEpTT04uc3RyaW5naWZ5KGFyZzMpLFxuXVxuXG5leHBvcnQgY29uc3QgbWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlID0gbWVtb2l6ZU4oY3JlYXRlWE1MRXhhbXBsZSwgcmVzb2x2ZXIpXG5cbmV4cG9ydCBjb25zdCBtZW1vaXplZFNhbXBsZUZyb21TY2hlbWEgPSBtZW1vaXplTihzYW1wbGVGcm9tU2NoZW1hLCByZXNvbHZlcilcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBSZWdpc3RyeSBmcm9tIFwiLi9SZWdpc3RyeVwiXG5cbmNsYXNzIE9wdGlvblJlZ2lzdHJ5IGV4dGVuZHMgUmVnaXN0cnkge1xuICAjZGVmYXVsdHMgPSB7fVxuXG4gIGRhdGEgPSB7IC4uLnRoaXMuI2RlZmF1bHRzIH1cblxuICBnZXQgZGVmYXVsdHMoKSB7XG4gICAgcmV0dXJuIHsgLi4udGhpcy4jZGVmYXVsdHMgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE9wdGlvblJlZ2lzdHJ5XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5cbmltcG9ydCBPcHRpb25SZWdpc3RyeSBmcm9tIFwiLi4vY2xhc3MvT3B0aW9uUmVnaXN0cnlcIlxuXG5jb25zdCByZWdpc3RyeSA9IG5ldyBPcHRpb25SZWdpc3RyeSgpXG5cbmNvbnN0IG9wdGlvbkFQSSA9IChvcHRpb25OYW1lLCBvcHRpb25WYWx1ZSkgPT4ge1xuICBpZiAodHlwZW9mIG9wdGlvblZhbHVlICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmVnaXN0cnkucmVnaXN0ZXIob3B0aW9uTmFtZSwgb3B0aW9uVmFsdWUpXG4gIH1cblxuICByZXR1cm4gcmVnaXN0cnkuZ2V0KG9wdGlvbk5hbWUpXG59XG5cbmV4cG9ydCBkZWZhdWx0IG9wdGlvbkFQSVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHNvbWUgZnJvbSBcImxvZGFzaC9zb21lXCJcblxuY29uc3Qgc2hvdWxkU3RyaW5naWZ5VHlwZXNDb25maWcgPSBbXG4gIHtcbiAgICB3aGVuOiAvanNvbi8sXG4gICAgc2hvdWxkU3RyaW5naWZ5VHlwZXM6IFtcInN0cmluZ1wiXSxcbiAgfSxcbl1cbmNvbnN0IGRlZmF1bHRTdHJpbmdpZnlUeXBlcyA9IFtcIm9iamVjdFwiXVxuY29uc3QgbWFrZUdldEpzb25TYW1wbGVTY2hlbWEgPVxuICAoZ2V0U3lzdGVtKSA9PiAoc2NoZW1hLCBjb25maWcsIGNvbnRlbnRUeXBlLCBleGFtcGxlT3ZlcnJpZGUpID0+IHtcbiAgICBjb25zdCB7IGZuIH0gPSBnZXRTeXN0ZW0oKVxuICAgIGNvbnN0IHJlcyA9IGZuLmpzb25TY2hlbWEyMDIwMTIubWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hKFxuICAgICAgc2NoZW1hLFxuICAgICAgY29uZmlnLFxuICAgICAgZXhhbXBsZU92ZXJyaWRlXG4gICAgKVxuICAgIGNvbnN0IHJlc1R5cGUgPSB0eXBlb2YgcmVzXG5cbiAgICBjb25zdCB0eXBlc1RvU3RyaW5naWZ5ID0gc2hvdWxkU3RyaW5naWZ5VHlwZXNDb25maWcucmVkdWNlKFxuICAgICAgKHR5cGVzLCBuZXh0Q29uZmlnKSA9PlxuICAgICAgICBuZXh0Q29uZmlnLndoZW4udGVzdChjb250ZW50VHlwZSlcbiAgICAgICAgICA/IFsuLi50eXBlcywgLi4ubmV4dENvbmZpZy5zaG91bGRTdHJpbmdpZnlUeXBlc11cbiAgICAgICAgICA6IHR5cGVzLFxuICAgICAgZGVmYXVsdFN0cmluZ2lmeVR5cGVzXG4gICAgKVxuXG4gICAgcmV0dXJuIHNvbWUodHlwZXNUb1N0cmluZ2lmeSwgKHgpID0+IHggPT09IHJlc1R5cGUpXG4gICAgICA/IEpTT04uc3RyaW5naWZ5KHJlcywgbnVsbCwgMilcbiAgICAgIDogcmVzXG4gIH1cblxuZXhwb3J0IGRlZmF1bHQgbWFrZUdldEpzb25TYW1wbGVTY2hlbWFcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBZQU1MLCB7IEpTT05fU0NIRU1BIH0gZnJvbSBcImpzLXlhbWxcIlxuXG5jb25zdCBtYWtlR2V0WWFtbFNhbXBsZVNjaGVtYSA9XG4gIChnZXRTeXN0ZW0pID0+IChzY2hlbWEsIGNvbmZpZywgY29udGVudFR5cGUsIGV4YW1wbGVPdmVycmlkZSkgPT4ge1xuICAgIGNvbnN0IHsgZm4gfSA9IGdldFN5c3RlbSgpXG4gICAgY29uc3QganNvbkV4YW1wbGUgPSBmbi5qc29uU2NoZW1hMjAyMDEyLmdldEpzb25TYW1wbGVTY2hlbWEoXG4gICAgICBzY2hlbWEsXG4gICAgICBjb25maWcsXG4gICAgICBjb250ZW50VHlwZSxcbiAgICAgIGV4YW1wbGVPdmVycmlkZVxuICAgIClcbiAgICBsZXQgeWFtbFN0cmluZ1xuICAgIHRyeSB7XG4gICAgICB5YW1sU3RyaW5nID0gWUFNTC5kdW1wKFxuICAgICAgICBZQU1MLmxvYWQoanNvbkV4YW1wbGUpLFxuICAgICAgICB7XG4gICAgICAgICAgbGluZVdpZHRoOiAtMSwgLy8gZG9uJ3QgZ2VuZXJhdGUgbGluZSBmb2xkc1xuICAgICAgICB9LFxuICAgICAgICB7IHNjaGVtYTogSlNPTl9TQ0hFTUEgfVxuICAgICAgKVxuICAgICAgaWYgKHlhbWxTdHJpbmdbeWFtbFN0cmluZy5sZW5ndGggLSAxXSA9PT0gXCJcXG5cIikge1xuICAgICAgICB5YW1sU3RyaW5nID0geWFtbFN0cmluZy5zbGljZSgwLCB5YW1sU3RyaW5nLmxlbmd0aCAtIDEpXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcihlKVxuICAgICAgcmV0dXJuIFwiZXJyb3I6IGNvdWxkIG5vdCBnZW5lcmF0ZSB5YW1sIGV4YW1wbGVcIlxuICAgIH1cbiAgICByZXR1cm4geWFtbFN0cmluZy5yZXBsYWNlKC9cXHQvZywgXCIgIFwiKVxuICB9XG5cbmV4cG9ydCBkZWZhdWx0IG1ha2VHZXRZYW1sU2FtcGxlU2NoZW1hXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBtYWtlR2V0WG1sU2FtcGxlU2NoZW1hID1cbiAgKGdldFN5c3RlbSkgPT4gKHNjaGVtYSwgY29uZmlnLCBleGFtcGxlT3ZlcnJpZGUpID0+IHtcbiAgICBjb25zdCB7IGZuIH0gPSBnZXRTeXN0ZW0oKVxuXG4gICAgaWYgKHNjaGVtYSAmJiAhc2NoZW1hLnhtbCkge1xuICAgICAgc2NoZW1hLnhtbCA9IHt9XG4gICAgfVxuICAgIGlmIChzY2hlbWEgJiYgIXNjaGVtYS54bWwubmFtZSkge1xuICAgICAgaWYgKFxuICAgICAgICAhc2NoZW1hLiQkcmVmICYmXG4gICAgICAgIChzY2hlbWEudHlwZSB8fFxuICAgICAgICAgIHNjaGVtYS5pdGVtcyB8fFxuICAgICAgICAgIHNjaGVtYS5wcm9wZXJ0aWVzIHx8XG4gICAgICAgICAgc2NoZW1hLmFkZGl0aW9uYWxQcm9wZXJ0aWVzKVxuICAgICAgKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBxdW90ZXNcbiAgICAgICAgcmV0dXJuICc8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJVVEYtOFwiPz5cXG48IS0tIFhNTCBleGFtcGxlIGNhbm5vdCBiZSBnZW5lcmF0ZWQ7IHJvb3QgZWxlbWVudCBuYW1lIGlzIHVuZGVmaW5lZCAtLT4nXG4gICAgICB9XG4gICAgICBpZiAoc2NoZW1hLiQkcmVmKSB7XG4gICAgICAgIGxldCBtYXRjaCA9IHNjaGVtYS4kJHJlZi5tYXRjaCgvXFxTKlxcLyhcXFMrKSQvKVxuICAgICAgICBzY2hlbWEueG1sLm5hbWUgPSBtYXRjaFsxXVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmbi5qc29uU2NoZW1hMjAyMDEyLm1lbW9pemVkQ3JlYXRlWE1MRXhhbXBsZShcbiAgICAgIHNjaGVtYSxcbiAgICAgIGNvbmZpZyxcbiAgICAgIGV4YW1wbGVPdmVycmlkZVxuICAgIClcbiAgfVxuXG5leHBvcnQgZGVmYXVsdCBtYWtlR2V0WG1sU2FtcGxlU2NoZW1hXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBtYWtlR2V0U2FtcGxlU2NoZW1hID1cbiAgKGdldFN5c3RlbSkgPT5cbiAgKHNjaGVtYSwgY29udGVudFR5cGUgPSBcIlwiLCBjb25maWcgPSB7fSwgZXhhbXBsZU92ZXJyaWRlID0gdW5kZWZpbmVkKSA9PiB7XG4gICAgY29uc3QgeyBmbiB9ID0gZ2V0U3lzdGVtKClcblxuICAgIGlmICh0eXBlb2Ygc2NoZW1hPy50b0pTID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHNjaGVtYSA9IHNjaGVtYS50b0pTKClcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBleGFtcGxlT3ZlcnJpZGU/LnRvSlMgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgZXhhbXBsZU92ZXJyaWRlID0gZXhhbXBsZU92ZXJyaWRlLnRvSlMoKVxuICAgIH1cblxuICAgIGlmICgveG1sLy50ZXN0KGNvbnRlbnRUeXBlKSkge1xuICAgICAgcmV0dXJuIGZuLmpzb25TY2hlbWEyMDIwMTIuZ2V0WG1sU2FtcGxlU2NoZW1hKFxuICAgICAgICBzY2hlbWEsXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgZXhhbXBsZU92ZXJyaWRlXG4gICAgICApXG4gICAgfVxuICAgIGlmICgvKHlhbWx8eW1sKS8udGVzdChjb250ZW50VHlwZSkpIHtcbiAgICAgIHJldHVybiBmbi5qc29uU2NoZW1hMjAyMDEyLmdldFlhbWxTYW1wbGVTY2hlbWEoXG4gICAgICAgIHNjaGVtYSxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBjb250ZW50VHlwZSxcbiAgICAgICAgZXhhbXBsZU92ZXJyaWRlXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBmbi5qc29uU2NoZW1hMjAyMDEyLmdldEpzb25TYW1wbGVTY2hlbWEoXG4gICAgICBzY2hlbWEsXG4gICAgICBjb25maWcsXG4gICAgICBjb250ZW50VHlwZSxcbiAgICAgIGV4YW1wbGVPdmVycmlkZVxuICAgIClcbiAgfVxuXG5leHBvcnQgZGVmYXVsdCBtYWtlR2V0U2FtcGxlU2NoZW1hXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQge1xuICBzYW1wbGVGcm9tU2NoZW1hLFxuICBzYW1wbGVGcm9tU2NoZW1hR2VuZXJpYyxcbiAgY3JlYXRlWE1MRXhhbXBsZSxcbiAgbWVtb2l6ZWRTYW1wbGVGcm9tU2NoZW1hLFxuICBtZW1vaXplZENyZWF0ZVhNTEV4YW1wbGUsXG4gIG9wdGlvbkFQSSxcbiAgZW5jb2RlckFQSSxcbiAgbWVkaWFUeXBlQVBJLFxuICBmb3JtYXRBUEksXG4gIG1lcmdlSnNvblNjaGVtYSxcbiAgZm9sZFR5cGUsXG59IGZyb20gXCIuL2ZuL2luZGV4XCJcbmltcG9ydCBtYWtlR2V0SnNvblNhbXBsZVNjaGVtYSBmcm9tIFwiLi9mbi9nZXQtanNvbi1zYW1wbGUtc2NoZW1hXCJcbmltcG9ydCBtYWtlR2V0WWFtbFNhbXBsZVNjaGVtYSBmcm9tIFwiLi9mbi9nZXQteWFtbC1zYW1wbGUtc2NoZW1hXCJcbmltcG9ydCBtYWtlR2V0WG1sU2FtcGxlU2NoZW1hIGZyb20gXCIuL2ZuL2dldC14bWwtc2FtcGxlLXNjaGVtYVwiXG5pbXBvcnQgbWFrZUdldFNhbXBsZVNjaGVtYSBmcm9tIFwiLi9mbi9nZXQtc2FtcGxlLXNjaGVtYVwiXG5cbmNvbnN0IEpTT05TY2hlbWEyMDIwMTJTYW1wbGVzUGx1Z2luID0gKHsgZ2V0U3lzdGVtIH0pID0+IHtcbiAgY29uc3QgZ2V0SnNvblNhbXBsZVNjaGVtYSA9IG1ha2VHZXRKc29uU2FtcGxlU2NoZW1hKGdldFN5c3RlbSlcbiAgY29uc3QgZ2V0WWFtbFNhbXBsZVNjaGVtYSA9IG1ha2VHZXRZYW1sU2FtcGxlU2NoZW1hKGdldFN5c3RlbSlcbiAgY29uc3QgZ2V0WG1sU2FtcGxlU2NoZW1hID0gbWFrZUdldFhtbFNhbXBsZVNjaGVtYShnZXRTeXN0ZW0pXG4gIGNvbnN0IGdldFNhbXBsZVNjaGVtYSA9IG1ha2VHZXRTYW1wbGVTY2hlbWEoZ2V0U3lzdGVtKVxuXG4gIHJldHVybiB7XG4gICAgZm46IHtcbiAgICAgIGpzb25TY2hlbWEyMDIwMTI6IHtcbiAgICAgICAgc2FtcGxlRnJvbVNjaGVtYSxcbiAgICAgICAgc2FtcGxlRnJvbVNjaGVtYUdlbmVyaWMsXG4gICAgICAgIHNhbXBsZU9wdGlvbkFQSTogb3B0aW9uQVBJLFxuICAgICAgICBzYW1wbGVFbmNvZGVyQVBJOiBlbmNvZGVyQVBJLFxuICAgICAgICBzYW1wbGVGb3JtYXRBUEk6IGZvcm1hdEFQSSxcbiAgICAgICAgc2FtcGxlTWVkaWFUeXBlQVBJOiBtZWRpYVR5cGVBUEksXG4gICAgICAgIGNyZWF0ZVhNTEV4YW1wbGUsXG4gICAgICAgIG1lbW9pemVkU2FtcGxlRnJvbVNjaGVtYSxcbiAgICAgICAgbWVtb2l6ZWRDcmVhdGVYTUxFeGFtcGxlLFxuICAgICAgICBnZXRKc29uU2FtcGxlU2NoZW1hLFxuICAgICAgICBnZXRZYW1sU2FtcGxlU2NoZW1hLFxuICAgICAgICBnZXRYbWxTYW1wbGVTY2hlbWEsXG4gICAgICAgIGdldFNhbXBsZVNjaGVtYSxcbiAgICAgICAgbWVyZ2VKc29uU2NoZW1hLFxuICAgICAgICBmb2xkVHlwZSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBKU09OU2NoZW1hMjAyMDEyU2FtcGxlc1BsdWdpblxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IEJhc2VQcmVzZXQgZnJvbSBcImNvcmUvcHJlc2V0cy9iYXNlXCJcbmltcG9ydCBPcGVuQVBJMzBQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy9vYXMzXCJcbmltcG9ydCBPcGVuQVBJMzFQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy9vYXMzMVwiXG5pbXBvcnQgSlNPTlNjaGVtYTIwMjAxMlBsdWdpbiBmcm9tIFwiY29yZS9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTJcIlxuaW1wb3J0IEpTT05TY2hlbWEyMDIwMTJTYW1wbGVzUGx1Z2luIGZyb20gXCJjb3JlL3BsdWdpbnMvanNvbi1zY2hlbWEtMjAyMC0xMi1zYW1wbGVzXCJcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUHJlc2V0QXBpcygpIHtcbiAgcmV0dXJuIFtcbiAgICBCYXNlUHJlc2V0LFxuICAgIE9wZW5BUEkzMFBsdWdpbixcbiAgICBKU09OU2NoZW1hMjAyMDEyUGx1Z2luLFxuICAgIEpTT05TY2hlbWEyMDIwMTJTYW1wbGVzUGx1Z2luLFxuICAgIE9wZW5BUEkzMVBsdWdpbixcbiAgXVxufVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuXG5jb25zdCBJbmxpbmVQbHVnaW5GYWN0b3JpemF0aW9uID0gKG9wdGlvbnMpID0+ICgpID0+ICh7XG4gIGZuOiBvcHRpb25zLmZuLFxuICBjb21wb25lbnRzOiBvcHRpb25zLmNvbXBvbmVudHMsXG59KVxuXG5leHBvcnQgZGVmYXVsdCBJbmxpbmVQbHVnaW5GYWN0b3JpemF0aW9uXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgZGVlcEV4dGVuZCBmcm9tIFwiZGVlcC1leHRlbmRcIlxuXG5jb25zdCBzeXN0ZW1GYWN0b3JpemF0aW9uID0gKG9wdGlvbnMpID0+IHtcbiAgY29uc3Qgc3RhdGUgPSBkZWVwRXh0ZW5kKFxuICAgIHtcbiAgICAgIGxheW91dDoge1xuICAgICAgICBsYXlvdXQ6IG9wdGlvbnMubGF5b3V0LFxuICAgICAgICBmaWx0ZXI6IG9wdGlvbnMuZmlsdGVyLFxuICAgICAgfSxcbiAgICAgIHNwZWM6IHtcbiAgICAgICAgc3BlYzogXCJcIixcbiAgICAgICAgdXJsOiBvcHRpb25zLnVybCxcbiAgICAgIH0sXG4gICAgICByZXF1ZXN0U25pcHBldHM6IG9wdGlvbnMucmVxdWVzdFNuaXBwZXRzLFxuICAgIH0sXG4gICAgb3B0aW9ucy5pbml0aWFsU3RhdGVcbiAgKVxuXG4gIGlmIChvcHRpb25zLmluaXRpYWxTdGF0ZSkge1xuICAgIC8qKlxuICAgICAqIElmIHRoZSB1c2VyIHNldHMgYSBrZXkgYXMgYHVuZGVmaW5lZGAsIHRoYXQgc2lnbmFscyB0byB1cyB0aGF0IHdlXG4gICAgICogc2hvdWxkIGRlbGV0ZSB0aGUga2V5IGVudGlyZWx5LlxuICAgICAqIGtub3duIHVzYWdlOiBTd2FnZ2VyLUVkaXRvciB2YWxpZGF0ZSBwbHVnaW4gdGVzdHNcbiAgICAgKi9cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvcHRpb25zLmluaXRpYWxTdGF0ZSkpIHtcbiAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRlbGV0ZSBzdGF0ZVtrZXldXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBzeXN0ZW06IHtcbiAgICAgIGNvbmZpZ3M6IG9wdGlvbnMuY29uZmlncyxcbiAgICB9LFxuICAgIHBsdWdpbnM6IG9wdGlvbnMucHJlc2V0cyxcbiAgICBzdGF0ZSxcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBzeXN0ZW1GYWN0b3JpemF0aW9uXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgc2V0IGZyb20gXCJsb2Rhc2gvc2V0XCJcbmltcG9ydCB7IHBhcnNlU2VhcmNoIH0gZnJvbSBcImNvcmUvdXRpbHNcIlxuXG4vKipcbiAqIFJlY2VpdmVzIG9wdGlvbnMgZnJvbSB0aGUgcXVlcnkgc3RyaW5nIG9mIHRoZSBVUkwgd2hlcmUgU3dhZ2dlclVJXG4gKiBpcyBiZWluZyBzZXJ2ZWQuXG4gKi9cblxuY29uc3Qgb3B0aW9uc0Zyb21RdWVyeSA9ICgpID0+IChvcHRpb25zKSA9PiB7XG4gIGNvbnN0IHVybFNlYXJjaFBhcmFtcyA9IG9wdGlvbnMucXVlcnlDb25maWdFbmFibGVkID8gcGFyc2VTZWFyY2goKSA6IHt9XG5cbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHVybFNlYXJjaFBhcmFtcykucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIC8vIFRPRE8ob2xpd2lhLnJvZ2FsYUBzbWFydGJlYXIuY29tKTogZHJvcCBzdXBwb3J0IGZvciBgY29uZmlnYCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlXG4gICAgaWYgKGtleSA9PT0gXCJjb25maWdcIikge1xuICAgICAgYWNjW1wiY29uZmlnVXJsXCJdID0gdmFsdWVcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gXCJ1cmxzLnByaW1hcnlOYW1lXCIpIHtcbiAgICAgIGFjY1trZXldID0gdmFsdWVcbiAgICB9IGVsc2Uge1xuICAgICAgYWNjID0gc2V0KGFjYywga2V5LCB2YWx1ZSlcbiAgICB9XG4gICAgcmV0dXJuIGFjY1xuICB9LCB7fSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgb3B0aW9uc0Zyb21RdWVyeVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqIFJlY2VpdmVzIG9wdGlvbnMgZnJvbSBhIHJlbW90ZSBVUkwuXG4gKi9cbmNvbnN0IG1ha2VEZWZlcnJlZCA9ICgpID0+IHtcbiAgY29uc3QgZGVmZXJyZWQgPSB7fVxuICBkZWZlcnJlZC5wcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGRlZmVycmVkLnJlc29sdmUgPSByZXNvbHZlXG4gICAgZGVmZXJyZWQucmVqZWN0ID0gcmVqZWN0XG4gIH0pXG4gIHJldHVybiBkZWZlcnJlZFxufVxuXG5jb25zdCBvcHRpb25zRnJvbVVSTCA9XG4gICh7IHVybCwgc3lzdGVtIH0pID0+XG4gIGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgaWYgKCF1cmwpIHJldHVybiB7fVxuICAgIGlmICh0eXBlb2Ygc3lzdGVtLmNvbmZpZ3NBY3Rpb25zPy5nZXRDb25maWdCeVVybCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4ge31cbiAgICBjb25zdCBkZWZlcnJlZCA9IG1ha2VEZWZlcnJlZCgpXG4gICAgY29uc3QgY2FsbGJhY2sgPSAoZmV0Y2hlZE9wdGlvbnMpID0+IHtcbiAgICAgIC8vIHJlY2VpdmVzIG51bGwgb24gcmVtb3RlIFVSTCBmZXRjaCBmYWlsdXJlXG4gICAgICBkZWZlcnJlZC5yZXNvbHZlKGZldGNoZWRPcHRpb25zKVxuICAgIH1cblxuICAgIHN5c3RlbS5jb25maWdzQWN0aW9ucy5nZXRDb25maWdCeVVybChcbiAgICAgIHtcbiAgICAgICAgdXJsLFxuICAgICAgICBsb2FkUmVtb3RlQ29uZmlnOiB0cnVlLFxuICAgICAgICByZXF1ZXN0SW50ZXJjZXB0b3I6IG9wdGlvbnMucmVxdWVzdEludGVyY2VwdG9yLFxuICAgICAgICByZXNwb25zZUludGVyY2VwdG9yOiBvcHRpb25zLnJlc3BvbnNlSW50ZXJjZXB0b3IsXG4gICAgICB9LFxuICAgICAgY2FsbGJhY2tcbiAgICApXG5cbiAgICByZXR1cm4gZGVmZXJyZWQucHJvbWlzZVxuICB9XG5cbmV4cG9ydCBkZWZhdWx0IG9wdGlvbnNGcm9tVVJMXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICpcbiAqIFJlY2VpdmVzIG9wdGlvbnMgYXQgcnVudGltZS5cbiAqL1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bmRlZiAqL1xuY29uc3Qgb3B0aW9uc0Zyb21SdW50aW1lID0gKCkgPT4gKCkgPT4ge1xuICBjb25zdCBvcHRpb25zID0ge31cblxuICBpZiAoZ2xvYmFsVGhpcy5sb2NhdGlvbikge1xuICAgIG9wdGlvbnMub2F1dGgyUmVkaXJlY3RVcmwgPSBgJHtnbG9iYWxUaGlzLmxvY2F0aW9uLnByb3RvY29sfS8vJHtnbG9iYWxUaGlzLmxvY2F0aW9uLmhvc3R9JHtnbG9iYWxUaGlzLmxvY2F0aW9uLnBhdGhuYW1lLnN1YnN0cmluZygwLCBnbG9iYWxUaGlzLmxvY2F0aW9uLnBhdGhuYW1lLmxhc3RJbmRleE9mKFwiL1wiKSl9L29hdXRoMi1yZWRpcmVjdC5odG1sYFxuICB9XG5cbiAgcmV0dXJuIG9wdGlvbnNcbn1cblxuZXhwb3J0IGRlZmF1bHQgb3B0aW9uc0Zyb21SdW50aW1lXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgQXBpc1ByZXNldCBmcm9tIFwiY29yZS9wcmVzZXRzL2FwaXNcIlxuXG5jb25zdCBkZWZhdWx0T3B0aW9ucyA9IE9iamVjdC5mcmVlemUoe1xuICBkb21faWQ6IG51bGwsXG4gIGRvbU5vZGU6IG51bGwsXG4gIHNwZWM6IHt9LFxuICB1cmw6IFwiXCIsXG4gIHVybHM6IG51bGwsXG4gIGNvbmZpZ1VybDogbnVsbCxcbiAgbGF5b3V0OiBcIkJhc2VMYXlvdXRcIixcbiAgZG9jRXhwYW5zaW9uOiBcImxpc3RcIixcbiAgbWF4RGlzcGxheWVkVGFnczogLTEsXG4gIGZpbHRlcjogZmFsc2UsXG4gIHZhbGlkYXRvclVybDogXCJodHRwczovL3ZhbGlkYXRvci5zd2FnZ2VyLmlvL3ZhbGlkYXRvclwiLFxuICBvYXV0aDJSZWRpcmVjdFVybDogdW5kZWZpbmVkLFxuICBwZXJzaXN0QXV0aG9yaXphdGlvbjogZmFsc2UsXG4gIGNvbmZpZ3M6IHt9LFxuICBkaXNwbGF5T3BlcmF0aW9uSWQ6IGZhbHNlLFxuICBkaXNwbGF5UmVxdWVzdER1cmF0aW9uOiBmYWxzZSxcbiAgZGVlcExpbmtpbmc6IGZhbHNlLFxuICB0cnlJdE91dEVuYWJsZWQ6IGZhbHNlLFxuICByZXF1ZXN0SW50ZXJjZXB0b3I6IChyZXF1ZXN0KSA9PiB7XG4gICAgcmVxdWVzdC5jdXJsT3B0aW9ucyA9IFtdXG4gICAgcmV0dXJuIHJlcXVlc3RcbiAgfSxcbiAgcmVzcG9uc2VJbnRlcmNlcHRvcjogKGEpID0+IGEsXG4gIHNob3dNdXRhdGVkUmVxdWVzdDogdHJ1ZSxcbiAgZGVmYXVsdE1vZGVsUmVuZGVyaW5nOiBcImV4YW1wbGVcIixcbiAgZGVmYXVsdE1vZGVsRXhwYW5kRGVwdGg6IDEsXG4gIGRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aDogMSxcbiAgc2hvd0V4dGVuc2lvbnM6IGZhbHNlLFxuICBzaG93Q29tbW9uRXh0ZW5zaW9uczogZmFsc2UsXG4gIHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG4gIHJlcXVlc3RTbmlwcGV0c0VuYWJsZWQ6IGZhbHNlLFxuICByZXF1ZXN0U25pcHBldHM6IHtcbiAgICBnZW5lcmF0b3JzOiB7XG4gICAgICBjdXJsX2Jhc2g6IHtcbiAgICAgICAgdGl0bGU6IFwiY1VSTCAoYmFzaClcIixcbiAgICAgICAgc3ludGF4OiBcImJhc2hcIixcbiAgICAgIH0sXG4gICAgICBjdXJsX3Bvd2Vyc2hlbGw6IHtcbiAgICAgICAgdGl0bGU6IFwiY1VSTCAoUG93ZXJTaGVsbClcIixcbiAgICAgICAgc3ludGF4OiBcInBvd2Vyc2hlbGxcIixcbiAgICAgIH0sXG4gICAgICBjdXJsX2NtZDoge1xuICAgICAgICB0aXRsZTogXCJjVVJMIChDTUQpXCIsXG4gICAgICAgIHN5bnRheDogXCJiYXNoXCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAgZGVmYXVsdEV4cGFuZGVkOiB0cnVlLFxuICAgIGxhbmd1YWdlczogbnVsbCwgLy8gZS5nLiBvbmx5IHNob3cgY3VybCBiYXNoID0gW1wiY3VybF9iYXNoXCJdXG4gIH0sXG4gIHN1cHBvcnRlZFN1Ym1pdE1ldGhvZHM6IFtcbiAgICBcImdldFwiLFxuICAgIFwicHV0XCIsXG4gICAgXCJwb3N0XCIsXG4gICAgXCJkZWxldGVcIixcbiAgICBcIm9wdGlvbnNcIixcbiAgICBcImhlYWRcIixcbiAgICBcInBhdGNoXCIsXG4gICAgXCJ0cmFjZVwiLFxuICBdLFxuICBxdWVyeUNvbmZpZ0VuYWJsZWQ6IGZhbHNlLFxuXG4gIC8vIEluaXRpYWwgc2V0IG9mIHBsdWdpbnMgKCBUT0RPIHJlbmFtZSB0aGlzLCBvciByZWZhY3RvciAtIHdlIGRvbid0IG5lZWQgcHJlc2V0cyBfYW5kXyBwbHVnaW5zLiBJdHMganVzdCB0aGVyZSBmb3IgcGVyZm9ybWFuY2UuXG4gIC8vIEluc3RlYWQsIHdlIGNhbiBjb21waWxlIHRoZSBmaXJzdCBwbHVnaW4gKCBpdCBjYW4gYmUgYSBjb2xsZWN0aW9uIG9mIHBsdWdpbnMgKSwgdGhlbiBiYXRjaCB0aGUgcmVzdC5cbiAgcHJlc2V0czogW0FwaXNQcmVzZXRdLFxuXG4gIC8vIFBsdWdpbnM7ICggbG9hZGVkIGFmdGVyIHByZXNldHMgKVxuICBwbHVnaW5zOiBbXSxcblxuICBpbml0aWFsU3RhdGU6IHt9LFxuXG4gIC8vIElubGluZSBQbHVnaW5cbiAgZm46IHt9LFxuICBjb21wb25lbnRzOiB7fSxcblxuICBzeW50YXhIaWdobGlnaHQ6IHtcbiAgICBhY3RpdmF0ZWQ6IHRydWUsXG4gICAgdGhlbWU6IFwiYWdhdGVcIixcbiAgfSxcbiAgb3BlcmF0aW9uc1NvcnRlcjogbnVsbCxcbiAgdGFnc1NvcnRlcjogbnVsbCxcbiAgb25Db21wbGV0ZTogbnVsbCxcbiAgbW9kZWxQcm9wZXJ0eU1hY3JvOiBudWxsLFxuICBwYXJhbWV0ZXJNYWNybzogbnVsbCxcblxuICBmaWxlVXBsb2FkTWVkaWFUeXBlczogW1xuICAgIFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIsXG4gICAgXCJpbWFnZS9cIixcbiAgICBcImF1ZGlvL1wiLFxuICAgIFwidmlkZW8vXCIsXG4gIF0sXG5cbiAgdW5jYXVnaHRFeGNlcHRpb25IYW5kbGVyOiBudWxsLFxufSlcblxuZXhwb3J0IGRlZmF1bHQgZGVmYXVsdE9wdGlvbnNcbiIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwibG9kYXNoL2hhc1wiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImxvZGFzaC9mcC9zZXRcIik7IiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgYXJyYXlUeXBlQ2FzdGVyID0gKHZhbHVlLCBkZWZhdWx0VmFsdWUgPSBbXSkgPT5cbiAgQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IGRlZmF1bHRWYWx1ZVxuXG5leHBvcnQgZGVmYXVsdCBhcnJheVR5cGVDYXN0ZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGJvb2xlYW5UeXBlQ2FzdGVyID0gKHZhbHVlLCBkZWZhdWx0VmFsdWUgPSBmYWxzZSkgPT5cbiAgdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09IFwidHJ1ZVwiIHx8IHZhbHVlID09PSAxIHx8IHZhbHVlID09PSBcIjFcIlxuICAgID8gdHJ1ZVxuICAgIDogdmFsdWUgPT09IGZhbHNlIHx8IHZhbHVlID09PSBcImZhbHNlXCIgfHwgdmFsdWUgPT09IDAgfHwgdmFsdWUgPT09IFwiMFwiXG4gICAgICA/IGZhbHNlXG4gICAgICA6IGRlZmF1bHRWYWx1ZVxuXG5leHBvcnQgZGVmYXVsdCBib29sZWFuVHlwZUNhc3RlclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgZG9tTm9kZVR5cGVDYXN0ZXIgPSAodmFsdWUpID0+XG4gIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSBcIm51bGxcIiA/IG51bGwgOiB2YWx1ZVxuXG5leHBvcnQgZGVmYXVsdCBkb21Ob2RlVHlwZUNhc3RlclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IGJvb2xlYW5UeXBlQ2FzdGVyIGZyb20gXCIuL2Jvb2xlYW5cIlxuXG5jb25zdCBmaWx0ZXJUeXBlQ2FzdGVyID0gKHZhbHVlKSA9PiB7XG4gIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IFN0cmluZyh2YWx1ZSlcbiAgcmV0dXJuIGJvb2xlYW5UeXBlQ2FzdGVyKHZhbHVlLCBkZWZhdWx0VmFsdWUpXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZpbHRlclR5cGVDYXN0ZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IGZ1bmN0aW9uVHlwZUNhc3RlciA9ICh2YWx1ZSwgZGVmYXVsdFZhbHVlKSA9PlxuICB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIiA/IHZhbHVlIDogZGVmYXVsdFZhbHVlXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uVHlwZUNhc3RlclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgbnVsbGFibGVBcnJheVR5cGVDYXN0ZXIgPSAodmFsdWUpID0+IChBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogbnVsbClcblxuZXhwb3J0IGRlZmF1bHQgbnVsbGFibGVBcnJheVR5cGVDYXN0ZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IG51bGxhYmxlRnVuY3Rpb25UeXBlQ2FzdGVyID0gKHZhbHVlKSA9PlxuICB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIiA/IHZhbHVlIDogbnVsbFxuXG5leHBvcnQgZGVmYXVsdCBudWxsYWJsZUZ1bmN0aW9uVHlwZUNhc3RlclxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuY29uc3QgbnVsbGFibGVTdHJpbmdUeXBlQ2FzdGVyID0gKHZhbHVlKSA9PlxuICB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gXCJudWxsXCIgPyBudWxsIDogU3RyaW5nKHZhbHVlKVxuXG5leHBvcnQgZGVmYXVsdCBudWxsYWJsZVN0cmluZ1R5cGVDYXN0ZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IG51bWJlclR5cGVDYXN0ZXIgPSAodmFsdWUsIGRlZmF1bHRWYWx1ZSA9IC0xKSA9PiB7XG4gIGNvbnN0IHBhcnNlZFZhbHVlID0gcGFyc2VJbnQodmFsdWUsIDEwKVxuICByZXR1cm4gTnVtYmVyLmlzTmFOKHBhcnNlZFZhbHVlKSA/IGRlZmF1bHRWYWx1ZSA6IHBhcnNlZFZhbHVlXG59XG5cbmV4cG9ydCBkZWZhdWx0IG51bWJlclR5cGVDYXN0ZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBpc1BsYWluT2JqZWN0IGZyb20gXCJsb2Rhc2gvaXNQbGFpbk9iamVjdFwiXG5cbmNvbnN0IG9iamVjdFR5cGVDYXN0ZXIgPSAodmFsdWUsIGRlZmF1bHRWYWx1ZSA9IHt9KSA9PlxuICBpc1BsYWluT2JqZWN0KHZhbHVlKSA/IHZhbHVlIDogZGVmYXVsdFZhbHVlXG5cbmV4cG9ydCBkZWZhdWx0IG9iamVjdFR5cGVDYXN0ZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IHNvcnRlclR5cGVDYXN0ZXIgPSAodmFsdWUpID0+XG4gIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IHZhbHVlIDogbnVsbFxuXG5leHBvcnQgZGVmYXVsdCBzb3J0ZXJUeXBlQ2FzdGVyXG4iLCIvKipcbiAqIEBwcmV0dGllclxuICovXG5jb25zdCBzdHJpbmdUeXBlQ2FzdGVyID0gKHZhbHVlKSA9PiBTdHJpbmcodmFsdWUpXG5cbmV4cG9ydCBkZWZhdWx0IHN0cmluZ1R5cGVDYXN0ZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBpc1BsYWluT2JqZWN0IGZyb20gXCJsb2Rhc2gvaXNQbGFpbk9iamVjdFwiXG5cbmNvbnN0IHN5bnRheEhpZ2hsaWdodFR5cGVDYXN0ZXIgPSAodmFsdWUsIGRlZmF1bHRWYWx1ZSkgPT4ge1xuICByZXR1cm4gaXNQbGFpbk9iamVjdCh2YWx1ZSlcbiAgICA/IHZhbHVlXG4gICAgOiB2YWx1ZSA9PT0gZmFsc2UgfHwgdmFsdWUgPT09IFwiZmFsc2VcIiB8fCB2YWx1ZSA9PT0gMCB8fCB2YWx1ZSA9PT0gXCIwXCJcbiAgICAgID8geyBhY3RpdmF0ZWQ6IGZhbHNlIH1cbiAgICAgIDogZGVmYXVsdFZhbHVlXG59XG5cbmV4cG9ydCBkZWZhdWx0IHN5bnRheEhpZ2hsaWdodFR5cGVDYXN0ZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmNvbnN0IHVuZGVmaW5lZFN0cmluZ1R5cGVDYXN0ZXIgPSAodmFsdWUpID0+XG4gIHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQgOiBTdHJpbmcodmFsdWUpXG5cbmV4cG9ydCBkZWZhdWx0IHVuZGVmaW5lZFN0cmluZ1R5cGVDYXN0ZXJcbiIsIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBhcnJheVR5cGVDYXN0ZXIgZnJvbSBcIi4vdHlwZS1jYXN0ZXJzL2FycmF5XCJcbmltcG9ydCBib29sZWFuVHlwZUNhc3RlciBmcm9tIFwiLi90eXBlLWNhc3RlcnMvYm9vbGVhblwiXG5pbXBvcnQgZG9tTm9kZVR5cGVDYXN0ZXIgZnJvbSBcIi4vdHlwZS1jYXN0ZXJzL2RvbS1ub2RlXCJcbmltcG9ydCBmaWx0ZXJUeXBlQ2FzdGVyIGZyb20gXCIuL3R5cGUtY2FzdGVycy9maWx0ZXJcIlxuaW1wb3J0IGZ1bmN0aW9uVHlwZUNhc3RlciBmcm9tIFwiLi90eXBlLWNhc3RlcnMvZnVuY3Rpb25cIlxuaW1wb3J0IG51bGxhYmxlQXJyYXlUeXBlQ2FzdGVyIGZyb20gXCIuL3R5cGUtY2FzdGVycy9udWxsYWJsZS1hcnJheVwiXG5pbXBvcnQgbnVsbGFibGVGdW5jdGlvblR5cGVDYXN0ZXIgZnJvbSBcIi4vdHlwZS1jYXN0ZXJzL251bGxhYmxlLWZ1bmN0aW9uXCJcbmltcG9ydCBudWxsYWJsZVN0cmluZ1R5cGVDYXN0ZXIgZnJvbSBcIi4vdHlwZS1jYXN0ZXJzL251bGxhYmxlLXN0cmluZ1wiXG5pbXBvcnQgbnVtYmVyVHlwZUNhc3RlciBmcm9tIFwiLi90eXBlLWNhc3RlcnMvbnVtYmVyXCJcbmltcG9ydCBvYmplY3RUeXBlQ2FzdGVyIGZyb20gXCIuL3R5cGUtY2FzdGVycy9vYmplY3RcIlxuaW1wb3J0IHNvcnRlclR5cGVDYXN0ZXIgZnJvbSBcIi4vdHlwZS1jYXN0ZXJzL3NvcnRlclwiXG5pbXBvcnQgc3RyaW5nVHlwZUNhc3RlciBmcm9tIFwiLi90eXBlLWNhc3RlcnMvc3RyaW5nXCJcbmltcG9ydCBzeW50YXhIaWdobGlnaHRUeXBlQ2FzdGVyIGZyb20gXCIuL3R5cGUtY2FzdGVycy9zeW50YXgtaGlnaGxpZ2h0XCJcbmltcG9ydCB1bmRlZmluZWRTdHJpbmdUeXBlQ2FzdGVyIGZyb20gXCIuL3R5cGUtY2FzdGVycy91bmRlZmluZWQtc3RyaW5nXCJcbmltcG9ydCBkZWZhdWx0T3B0aW9ucyBmcm9tIFwiLi4vZGVmYXVsdHNcIlxuXG5jb25zdCBtYXBwaW5ncyA9IHtcbiAgY29tcG9uZW50czogeyB0eXBlQ2FzdGVyOiBvYmplY3RUeXBlQ2FzdGVyIH0sXG4gIGNvbmZpZ3M6IHsgdHlwZUNhc3Rlcjogb2JqZWN0VHlwZUNhc3RlciB9LFxuICBjb25maWdVcmw6IHsgdHlwZUNhc3RlcjogbnVsbGFibGVTdHJpbmdUeXBlQ2FzdGVyIH0sXG4gIGRlZXBMaW5raW5nOiB7XG4gICAgdHlwZUNhc3RlcjogYm9vbGVhblR5cGVDYXN0ZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0T3B0aW9ucy5kZWVwTGlua2luZyxcbiAgfSxcbiAgZGVmYXVsdE1vZGVsRXhwYW5kRGVwdGg6IHtcbiAgICB0eXBlQ2FzdGVyOiBudW1iZXJUeXBlQ2FzdGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdE9wdGlvbnMuZGVmYXVsdE1vZGVsRXhwYW5kRGVwdGgsXG4gIH0sXG4gIGRlZmF1bHRNb2RlbFJlbmRlcmluZzogeyB0eXBlQ2FzdGVyOiBzdHJpbmdUeXBlQ2FzdGVyIH0sXG4gIGRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aDoge1xuICAgIHR5cGVDYXN0ZXI6IG51bWJlclR5cGVDYXN0ZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0T3B0aW9ucy5kZWZhdWx0TW9kZWxzRXhwYW5kRGVwdGgsXG4gIH0sXG4gIGRpc3BsYXlPcGVyYXRpb25JZDoge1xuICAgIHR5cGVDYXN0ZXI6IGJvb2xlYW5UeXBlQ2FzdGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdE9wdGlvbnMuZGlzcGxheU9wZXJhdGlvbklkLFxuICB9LFxuICBkaXNwbGF5UmVxdWVzdER1cmF0aW9uOiB7XG4gICAgdHlwZUNhc3RlcjogYm9vbGVhblR5cGVDYXN0ZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0T3B0aW9ucy5kaXNwbGF5UmVxdWVzdER1cmF0aW9uLFxuICB9LFxuICBkb2NFeHBhbnNpb246IHsgdHlwZUNhc3Rlcjogc3RyaW5nVHlwZUNhc3RlciB9LFxuICBkb21faWQ6IHsgdHlwZUNhc3RlcjogbnVsbGFibGVTdHJpbmdUeXBlQ2FzdGVyIH0sXG4gIGRvbU5vZGU6IHsgdHlwZUNhc3RlcjogZG9tTm9kZVR5cGVDYXN0ZXIgfSxcbiAgZmlsZVVwbG9hZE1lZGlhVHlwZXM6IHtcbiAgICB0eXBlQ2FzdGVyOiBhcnJheVR5cGVDYXN0ZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0T3B0aW9ucy5maWxlVXBsb2FkTWVkaWFUeXBlcyxcbiAgfSxcbiAgZmlsdGVyOiB7IHR5cGVDYXN0ZXI6IGZpbHRlclR5cGVDYXN0ZXIgfSxcbiAgZm46IHsgdHlwZUNhc3Rlcjogb2JqZWN0VHlwZUNhc3RlciB9LFxuICBpbml0aWFsU3RhdGU6IHsgdHlwZUNhc3Rlcjogb2JqZWN0VHlwZUNhc3RlciB9LFxuICBsYXlvdXQ6IHsgdHlwZUNhc3Rlcjogc3RyaW5nVHlwZUNhc3RlciB9LFxuICBtYXhEaXNwbGF5ZWRUYWdzOiB7XG4gICAgdHlwZUNhc3RlcjogbnVtYmVyVHlwZUNhc3RlcixcbiAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRPcHRpb25zLm1heERpc3BsYXllZFRhZ3MsXG4gIH0sXG4gIG1vZGVsUHJvcGVydHlNYWNybzogeyB0eXBlQ2FzdGVyOiBudWxsYWJsZUZ1bmN0aW9uVHlwZUNhc3RlciB9LFxuICBvYXV0aDJSZWRpcmVjdFVybDogeyB0eXBlQ2FzdGVyOiB1bmRlZmluZWRTdHJpbmdUeXBlQ2FzdGVyIH0sXG4gIG9uQ29tcGxldGU6IHsgdHlwZUNhc3RlcjogbnVsbGFibGVGdW5jdGlvblR5cGVDYXN0ZXIgfSxcbiAgb3BlcmF0aW9uc1NvcnRlcjoge1xuICAgIHR5cGVDYXN0ZXI6IHNvcnRlclR5cGVDYXN0ZXIsXG4gIH0sXG4gIHBhcmFtYXRlck1hY3JvOiB7IHR5cGVDYXN0ZXI6IG51bGxhYmxlRnVuY3Rpb25UeXBlQ2FzdGVyIH0sXG4gIHBlcnNpc3RBdXRob3JpemF0aW9uOiB7XG4gICAgdHlwZUNhc3RlcjogYm9vbGVhblR5cGVDYXN0ZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0T3B0aW9ucy5wZXJzaXN0QXV0aG9yaXphdGlvbixcbiAgfSxcbiAgcGx1Z2luczoge1xuICAgIHR5cGVDYXN0ZXI6IGFycmF5VHlwZUNhc3RlcixcbiAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRPcHRpb25zLnBsdWdpbnMsXG4gIH0sXG4gIHByZXNldHM6IHtcbiAgICB0eXBlQ2FzdGVyOiBhcnJheVR5cGVDYXN0ZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0T3B0aW9ucy5wcmVzZXRzLFxuICB9LFxuICByZXF1ZXN0SW50ZXJjZXB0b3I6IHtcbiAgICB0eXBlQ2FzdGVyOiBmdW5jdGlvblR5cGVDYXN0ZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0T3B0aW9ucy5yZXF1ZXN0SW50ZXJjZXB0b3IsXG4gIH0sXG4gIHJlcXVlc3RTbmlwcGV0czoge1xuICAgIHR5cGVDYXN0ZXI6IG9iamVjdFR5cGVDYXN0ZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0T3B0aW9ucy5yZXF1ZXN0U25pcHBldHMsXG4gIH0sXG4gIHJlcXVlc3RTbmlwcGV0c0VuYWJsZWQ6IHtcbiAgICB0eXBlQ2FzdGVyOiBib29sZWFuVHlwZUNhc3RlcixcbiAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRPcHRpb25zLnJlcXVlc3RTbmlwcGV0c0VuYWJsZWQsXG4gIH0sXG4gIHJlc3BvbnNlSW50ZXJjZXB0b3I6IHtcbiAgICB0eXBlQ2FzdGVyOiBmdW5jdGlvblR5cGVDYXN0ZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0T3B0aW9ucy5yZXNwb25zZUludGVyY2VwdG9yLFxuICB9LFxuICBzaG93Q29tbW9uRXh0ZW5zaW9uczoge1xuICAgIHR5cGVDYXN0ZXI6IGJvb2xlYW5UeXBlQ2FzdGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdE9wdGlvbnMuc2hvd0NvbW1vbkV4dGVuc2lvbnMsXG4gIH0sXG4gIHNob3dFeHRlbnNpb25zOiB7XG4gICAgdHlwZUNhc3RlcjogYm9vbGVhblR5cGVDYXN0ZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0T3B0aW9ucy5zaG93RXh0ZW5zaW9ucyxcbiAgfSxcbiAgc2hvd011dGF0ZWRSZXF1ZXN0OiB7XG4gICAgdHlwZUNhc3RlcjogYm9vbGVhblR5cGVDYXN0ZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0T3B0aW9ucy5zaG93TXV0YXRlZFJlcXVlc3QsXG4gIH0sXG4gIHNwZWM6IHsgdHlwZUNhc3Rlcjogb2JqZWN0VHlwZUNhc3RlciwgZGVmYXVsdFZhbHVlOiBkZWZhdWx0T3B0aW9ucy5zcGVjIH0sXG4gIHN1cHBvcnRlZFN1Ym1pdE1ldGhvZHM6IHtcbiAgICB0eXBlQ2FzdGVyOiBhcnJheVR5cGVDYXN0ZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0T3B0aW9ucy5zdXBwb3J0ZWRTdWJtaXRNZXRob2RzLFxuICB9LFxuICBzeW50YXhIaWdobGlnaHQ6IHtcbiAgICB0eXBlQ2FzdGVyOiBzeW50YXhIaWdobGlnaHRUeXBlQ2FzdGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdE9wdGlvbnMuc3ludGF4SGlnaGxpZ2h0LFxuICB9LFxuICBcInN5bnRheEhpZ2hsaWdodC5hY3RpdmF0ZWRcIjoge1xuICAgIHR5cGVDYXN0ZXI6IGJvb2xlYW5UeXBlQ2FzdGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdE9wdGlvbnMuc3ludGF4SGlnaGxpZ2h0LmFjdGl2YXRlZCxcbiAgfSxcbiAgXCJzeW50YXhIaWdobGlnaHQudGhlbWVcIjogeyB0eXBlQ2FzdGVyOiBzdHJpbmdUeXBlQ2FzdGVyIH0sXG4gIHRhZ3NTb3J0ZXI6IHtcbiAgICB0eXBlQ2FzdGVyOiBzb3J0ZXJUeXBlQ2FzdGVyLFxuICB9LFxuICB0cnlJdE91dEVuYWJsZWQ6IHtcbiAgICB0eXBlQ2FzdGVyOiBib29sZWFuVHlwZUNhc3RlcixcbiAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRPcHRpb25zLnRyeUl0T3V0RW5hYmxlZCxcbiAgfSxcbiAgdXJsOiB7IHR5cGVDYXN0ZXI6IHN0cmluZ1R5cGVDYXN0ZXIgfSxcbiAgdXJsczogeyB0eXBlQ2FzdGVyOiBudWxsYWJsZUFycmF5VHlwZUNhc3RlciB9LFxuICBcInVybHMucHJpbWFyeU5hbWVcIjogeyB0eXBlQ2FzdGVyOiBzdHJpbmdUeXBlQ2FzdGVyIH0sXG4gIHZhbGlkYXRvclVybDogeyB0eXBlQ2FzdGVyOiBudWxsYWJsZVN0cmluZ1R5cGVDYXN0ZXIgfSxcbiAgd2l0aENyZWRlbnRpYWxzOiB7XG4gICAgdHlwZUNhc3RlcjogYm9vbGVhblR5cGVDYXN0ZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0T3B0aW9ucy53aXRoQ3JlZGVudGlhbHMsXG4gIH0sXG4gIHVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcjogeyB0eXBlQ2FzdGVyOiBudWxsYWJsZUZ1bmN0aW9uVHlwZUNhc3RlciB9LFxufVxuXG5leHBvcnQgZGVmYXVsdCBtYXBwaW5nc1xuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IGhhcyBmcm9tIFwibG9kYXNoL2hhc1wiXG5pbXBvcnQgZ2V0IGZyb20gXCJsb2Rhc2gvZ2V0XCJcbmltcG9ydCBzZXQgZnJvbSBcImxvZGFzaC9mcC9zZXRcIlxuXG5pbXBvcnQgbWFwcGluZ3MgZnJvbSBcIi4vbWFwcGluZ3NcIlxuXG5jb25zdCB0eXBlQ2FzdCA9IChvcHRpb25zKSA9PiB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhtYXBwaW5ncykucmVkdWNlKFxuICAgIChhY2MsIFtvcHRpb25QYXRoLCB7IHR5cGVDYXN0ZXIsIGRlZmF1bHRWYWx1ZSB9XSkgPT4ge1xuICAgICAgaWYgKGhhcyhhY2MsIG9wdGlvblBhdGgpKSB7XG4gICAgICAgIGNvbnN0IHVuY2FzdGVkID0gZ2V0KGFjYywgb3B0aW9uUGF0aClcbiAgICAgICAgY29uc3QgY2FzdGVkID0gdHlwZUNhc3Rlcih1bmNhc3RlZCwgZGVmYXVsdFZhbHVlKVxuICAgICAgICBhY2MgPSBzZXQob3B0aW9uUGF0aCwgY2FzdGVkLCBhY2MpXG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjXG4gICAgfSxcbiAgICB7IC4uLm9wdGlvbnMgfVxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IHR5cGVDYXN0XG4iLCIvKipcbiAqIEBwcmV0dGllclxuICpcbiAqIFdlJ3JlIGN1cnJlbnRseSBzdHVjayB3aXRoIHVzaW5nIGRlZXAtZXh0ZW5kIGFzIGl0IGhhbmRsZXMgdGhlIGZvbGxvd2luZyBjYXNlOlxuICpcbiAqIGRlZXBFeHRlbmQoeyBhOiAxIH0sIHsgYTogdW5kZWZpbmVkIH0pID0+IHsgYTogdW5kZWZpbmVkIH1cbiAqXG4gKiBOT1RFMTogbG9kYXNoLm1lcmdlICYgbG9kYXNoLm1lcmdlV2l0aCBwcmVmZXJzIHRvIGlnbm9yZSB1bmRlZmluZWQgdmFsdWVzXG4gKiBOT1RFMjogc3BlY2lhbCBoYW5kbGluZyBvZiBgZG9tTm9kZWAgb3B0aW9uIGlzIG5vdyByZXF1aXJlZCBhcyBgZGVlcC1leHRlbmRgIHdpbGwgY29ycnVwdCBpdCAobG9kYXNoLm1lcmdlIGhhbmRsZXMgaXQgY29ycmVjdGx5KVxuICogTk9URTM6IG9hdXRoMlJlZGlyZWN0VXJsIG9wdGlvbiBjYW4gYmUgc2V0IHRvIHVuZGVmaW5lZC4gQnkgZXhwZWN0aW5nIG51bGwgaW5zdGVhZCBvZiB1bmRlZmluZWQsIHdlIGNhbid0IHVzZSBsb2Rhc2gubWVyZ2UuXG4gKiBOT1RFNDogdXJscy5wcmltYXJ5TmFtZSBuZWVkcyB0byBoYW5kbGVkIGluIHNwZWNpYWwgd2F5LCBiZWNhdXNlIGl0J3MgYW4gYXJiaXRyYXJ5IHByb3BlcnR5IG9uIEFycmF5IGluc3RhbmNlXG4gKlxuICogVE9ETyh2bGFkaW1pci5nb3JlakBnbWFpbC5jb20pOiByZW1vdmUgZGVlcC1leHRlbmQgaW4gZmF2b3Igb2YgbG9kYXNoLm1lcmdlXG4gKi9cbmltcG9ydCBkZWVwRXh0ZW5kIGZyb20gXCJkZWVwLWV4dGVuZFwiXG5pbXBvcnQgdHlwZUNhc3QgZnJvbSBcIi4vdHlwZS1jYXN0XCJcblxuY29uc3QgbWVyZ2UgPSAodGFyZ2V0LCAuLi5zb3VyY2VzKSA9PiB7XG4gIGxldCBkb21Ob2RlID0gU3ltYm9sLmZvcihcImRvbU5vZGVcIilcbiAgbGV0IHByaW1hcnlOYW1lID0gU3ltYm9sLmZvcihcInByaW1hcnlOYW1lXCIpXG4gIGNvbnN0IHNvdXJjZXNXaXRob3V0RXhjZXB0aW9ucyA9IFtdXG5cbiAgZm9yIChjb25zdCBzb3VyY2Ugb2Ygc291cmNlcykge1xuICAgIGNvbnN0IHNvdXJjZVdpdGhvdXRFeGNlcHRpb25zID0geyAuLi5zb3VyY2UgfVxuXG4gICAgaWYgKE9iamVjdC5oYXNPd24oc291cmNlV2l0aG91dEV4Y2VwdGlvbnMsIFwiZG9tTm9kZVwiKSkge1xuICAgICAgZG9tTm9kZSA9IHNvdXJjZVdpdGhvdXRFeGNlcHRpb25zLmRvbU5vZGVcbiAgICAgIGRlbGV0ZSBzb3VyY2VXaXRob3V0RXhjZXB0aW9ucy5kb21Ob2RlXG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5oYXNPd24oc291cmNlV2l0aG91dEV4Y2VwdGlvbnMsIFwidXJscy5wcmltYXJ5TmFtZVwiKSkge1xuICAgICAgcHJpbWFyeU5hbWUgPSBzb3VyY2VXaXRob3V0RXhjZXB0aW9uc1tcInVybHMucHJpbWFyeU5hbWVcIl1cbiAgICAgIGRlbGV0ZSBzb3VyY2VXaXRob3V0RXhjZXB0aW9uc1tcInVybHMucHJpbWFyeU5hbWVcIl1cbiAgICB9IGVsc2UgaWYgKFxuICAgICAgQXJyYXkuaXNBcnJheShzb3VyY2VXaXRob3V0RXhjZXB0aW9ucy51cmxzKSAmJlxuICAgICAgT2JqZWN0Lmhhc093bihzb3VyY2VXaXRob3V0RXhjZXB0aW9ucy51cmxzLCBcInByaW1hcnlOYW1lXCIpXG4gICAgKSB7XG4gICAgICBwcmltYXJ5TmFtZSA9IHNvdXJjZVdpdGhvdXRFeGNlcHRpb25zLnVybHMucHJpbWFyeU5hbWVcbiAgICAgIGRlbGV0ZSBzb3VyY2VXaXRob3V0RXhjZXB0aW9ucy51cmxzLnByaW1hcnlOYW1lXG4gICAgfVxuXG4gICAgc291cmNlc1dpdGhvdXRFeGNlcHRpb25zLnB1c2goc291cmNlV2l0aG91dEV4Y2VwdGlvbnMpXG4gIH1cblxuICBjb25zdCBtZXJnZWQgPSBkZWVwRXh0ZW5kKHRhcmdldCwgLi4uc291cmNlc1dpdGhvdXRFeGNlcHRpb25zKVxuXG4gIGlmIChkb21Ob2RlICE9PSBTeW1ib2wuZm9yKFwiZG9tTm9kZVwiKSkge1xuICAgIG1lcmdlZC5kb21Ob2RlID0gZG9tTm9kZVxuICB9XG5cbiAgaWYgKHByaW1hcnlOYW1lICE9PSBTeW1ib2wuZm9yKFwicHJpbWFyeU5hbWVcIikgJiYgQXJyYXkuaXNBcnJheShtZXJnZWQudXJscykpIHtcbiAgICBtZXJnZWQudXJscy5wcmltYXJ5TmFtZSA9IHByaW1hcnlOYW1lXG4gIH1cblxuICByZXR1cm4gdHlwZUNhc3QobWVyZ2VkKVxufVxuXG5leHBvcnQgZGVmYXVsdCBtZXJnZVxuIiwiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IFN5c3RlbSBmcm9tIFwiLi9zeXN0ZW1cIlxuLy8gcHJlc2V0c1xuaW1wb3J0IEJhc2VQcmVzZXQgZnJvbSBcIi4vcHJlc2V0cy9iYXNlXCJcbmltcG9ydCBBcGlzUHJlc2V0IGZyb20gXCIuL3ByZXNldHMvYXBpc1wiXG4vLyBwbHVnaW5zXG5pbXBvcnQgQXV0aFBsdWdpbiBmcm9tIFwiLi9wbHVnaW5zL2F1dGgvXCJcbmltcG9ydCBDb25maWdzUGx1Z2luIGZyb20gXCIuL3BsdWdpbnMvY29uZmlnc1wiXG5pbXBvcnQgRGVlcExpbmtpbmdQbHVnaW4gZnJvbSBcIi4vcGx1Z2lucy9kZWVwLWxpbmtpbmdcIlxuaW1wb3J0IEVyclBsdWdpbiBmcm9tIFwiLi9wbHVnaW5zL2VyclwiXG5pbXBvcnQgRmlsdGVyUGx1Z2luIGZyb20gXCIuL3BsdWdpbnMvZmlsdGVyXCJcbmltcG9ydCBJY29uc1BsdWdpbiBmcm9tIFwiLi9wbHVnaW5zL2ljb25zXCJcbmltcG9ydCBKU09OU2NoZW1hNVBsdWdpbiBmcm9tIFwiLi9wbHVnaW5zL2pzb24tc2NoZW1hLTVcIlxuaW1wb3J0IEpTT05TY2hlbWEyMDIwMTJQbHVnaW4gZnJvbSBcIi4vcGx1Z2lucy9qc29uLXNjaGVtYS0yMDIwLTEyXCJcbmltcG9ydCBKU09OU2NoZW1hMjAyMDEyU2FtcGxlc1BsdWdpbiBmcm9tIFwiLi9wbHVnaW5zL2pzb24tc2NoZW1hLTIwMjAtMTItc2FtcGxlc1wiXG5pbXBvcnQgTGF5b3V0UGx1Z2luIGZyb20gXCIuL3BsdWdpbnMvbGF5b3V0XCJcbmltcG9ydCBMb2dzUGx1Z2luIGZyb20gXCIuL3BsdWdpbnMvbG9nc1wiXG5pbXBvcnQgT3BlbkFQSTMwUGx1Z2luIGZyb20gXCIuL3BsdWdpbnMvb2FzM1wiXG5pbXBvcnQgT3BlbkFQSTMxUGx1Z2luIGZyb20gXCIuL3BsdWdpbnMvb2FzM1wiXG5pbXBvcnQgT25Db21wbGV0ZVBsdWdpbiBmcm9tIFwiLi9wbHVnaW5zL29uLWNvbXBsZXRlXCJcbmltcG9ydCBSZXF1ZXN0U25pcHBldHNQbHVnaW4gZnJvbSBcIi4vcGx1Z2lucy9yZXF1ZXN0LXNuaXBwZXRzXCJcbmltcG9ydCBKU09OU2NoZW1hNVNhbXBsZXNQbHVnaW4gZnJvbSBcIi4vcGx1Z2lucy9qc29uLXNjaGVtYS01LXNhbXBsZXNcIlxuaW1wb3J0IFNwZWNQbHVnaW4gZnJvbSBcIi4vcGx1Z2lucy9zcGVjXCJcbmltcG9ydCBTd2FnZ2VyQ2xpZW50UGx1Z2luIGZyb20gXCIuL3BsdWdpbnMvc3dhZ2dlci1jbGllbnRcIlxuaW1wb3J0IFV0aWxQbHVnaW4gZnJvbSBcIi4vcGx1Z2lucy91dGlsXCJcbmltcG9ydCBWaWV3UGx1Z2luIGZyb20gXCIuL3BsdWdpbnMvdmlld1wiXG5pbXBvcnQgVmlld0xlZ2FjeVBsdWdpbiBmcm9tIFwiY29yZS9wbHVnaW5zL3ZpZXctbGVnYWN5XCJcbmltcG9ydCBEb3dubG9hZFVybFBsdWdpbiBmcm9tIFwiLi9wbHVnaW5zL2Rvd25sb2FkLXVybFwiXG5pbXBvcnQgU3ludGF4SGlnaGxpZ2h0aW5nUGx1Z2luIGZyb20gXCJjb3JlL3BsdWdpbnMvc3ludGF4LWhpZ2hsaWdodGluZ1wiXG5pbXBvcnQgVmVyc2lvbnNQbHVnaW4gZnJvbSBcImNvcmUvcGx1Z2lucy92ZXJzaW9uc1wiXG5pbXBvcnQgU2FmZVJlbmRlclBsdWdpbiBmcm9tIFwiLi9wbHVnaW5zL3NhZmUtcmVuZGVyXCJcblxuaW1wb3J0IHtcbiAgZGVmYXVsdE9wdGlvbnMsXG4gIG9wdGlvbnNGcm9tUXVlcnksXG4gIG9wdGlvbnNGcm9tVVJMLFxuICBvcHRpb25zRnJvbVJ1bnRpbWUsXG4gIG1lcmdlT3B0aW9ucyxcbiAgaW5saW5lUGx1Z2luT3B0aW9uc0ZhY3Rvcml6YXRpb24sXG4gIHN5c3RlbU9wdGlvbnNGYWN0b3JpemF0aW9uLFxuICB0eXBlQ2FzdE9wdGlvbnMsXG4gIHR5cGVDYXN0TWFwcGluZ3MsXG59IGZyb20gXCIuL2NvbmZpZ1wiXG5cbmZ1bmN0aW9uIFN3YWdnZXJVSSh1c2VyT3B0aW9ucykge1xuICBjb25zdCBxdWVyeU9wdGlvbnMgPSBvcHRpb25zRnJvbVF1ZXJ5KCkodXNlck9wdGlvbnMpXG4gIGNvbnN0IHJ1bnRpbWVPcHRpb25zID0gb3B0aW9uc0Zyb21SdW50aW1lKCkoKVxuICBjb25zdCBtZXJnZWRPcHRpb25zID0gU3dhZ2dlclVJLmNvbmZpZy5tZXJnZShcbiAgICB7fSxcbiAgICBTd2FnZ2VyVUkuY29uZmlnLmRlZmF1bHRzLFxuICAgIHJ1bnRpbWVPcHRpb25zLFxuICAgIHVzZXJPcHRpb25zLFxuICAgIHF1ZXJ5T3B0aW9uc1xuICApXG4gIGNvbnN0IHN5c3RlbU9wdGlvbnMgPSBzeXN0ZW1PcHRpb25zRmFjdG9yaXphdGlvbihtZXJnZWRPcHRpb25zKVxuICBjb25zdCBJbmxpbmVQbHVnaW4gPSBpbmxpbmVQbHVnaW5PcHRpb25zRmFjdG9yaXphdGlvbihtZXJnZWRPcHRpb25zKVxuXG4gIGNvbnN0IHVuYm91bmRTeXN0ZW0gPSBuZXcgU3lzdGVtKHN5c3RlbU9wdGlvbnMpXG4gIHVuYm91bmRTeXN0ZW0ucmVnaXN0ZXIoW21lcmdlZE9wdGlvbnMucGx1Z2lucywgSW5saW5lUGx1Z2luXSlcbiAgY29uc3Qgc3lzdGVtID0gdW5ib3VuZFN5c3RlbS5nZXRTeXN0ZW0oKVxuXG4gIGNvbnN0IHBlcnNpc3RDb25maWdzID0gKG9wdGlvbnMpID0+IHtcbiAgICB1bmJvdW5kU3lzdGVtLnNldENvbmZpZ3Mob3B0aW9ucylcbiAgICBzeXN0ZW0uY29uZmlnc0FjdGlvbnMubG9hZGVkKClcbiAgfVxuICBjb25zdCB1cGRhdGVTcGVjID0gKG9wdGlvbnMpID0+IHtcbiAgICBpZiAoXG4gICAgICAhcXVlcnlPcHRpb25zLnVybCAmJlxuICAgICAgdHlwZW9mIG9wdGlvbnMuc3BlYyA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgT2JqZWN0LmtleXMob3B0aW9ucy5zcGVjKS5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBzeXN0ZW0uc3BlY0FjdGlvbnMudXBkYXRlVXJsKFwiXCIpXG4gICAgICBzeXN0ZW0uc3BlY0FjdGlvbnMudXBkYXRlTG9hZGluZ1N0YXR1cyhcInN1Y2Nlc3NcIilcbiAgICAgIHN5c3RlbS5zcGVjQWN0aW9ucy51cGRhdGVTcGVjKEpTT04uc3RyaW5naWZ5KG9wdGlvbnMuc3BlYykpXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHR5cGVvZiBzeXN0ZW0uc3BlY0FjdGlvbnMuZG93bmxvYWQgPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgb3B0aW9ucy51cmwgJiZcbiAgICAgICFvcHRpb25zLnVybHNcbiAgICApIHtcbiAgICAgIHN5c3RlbS5zcGVjQWN0aW9ucy51cGRhdGVVcmwob3B0aW9ucy51cmwpXG4gICAgICBzeXN0ZW0uc3BlY0FjdGlvbnMuZG93bmxvYWQob3B0aW9ucy51cmwpXG4gICAgfVxuICB9XG4gIGNvbnN0IHJlbmRlciA9IChvcHRpb25zKSA9PiB7XG4gICAgaWYgKG9wdGlvbnMuZG9tTm9kZSkge1xuICAgICAgc3lzdGVtLnJlbmRlcihvcHRpb25zLmRvbU5vZGUsIFwiQXBwXCIpXG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmRvbV9pZCkge1xuICAgICAgY29uc3QgZG9tTm9kZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iob3B0aW9ucy5kb21faWQpXG4gICAgICBzeXN0ZW0ucmVuZGVyKGRvbU5vZGUsIFwiQXBwXCIpXG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmRvbV9pZCA9PT0gbnVsbCB8fCBvcHRpb25zLmRvbU5vZGUgPT09IG51bGwpIHtcbiAgICAgIC8qKlxuICAgICAgICogbm9vcFxuICAgICAgICpcbiAgICAgICAqIFN3YWdnZXJVSSBpbnN0YW5jZSBjYW4gYmUgY3JlYXRlZCB3aXRob3V0IGFueSByZW5kZXJpbmcgaW52b2x2ZWQuXG4gICAgICAgKiBUaGlzIGlzIGFsc28gdXNlZnVsIGZvciBsYXp5IHJlbmRlcmluZyBvciB0ZXN0aW5nLlxuICAgICAgICovXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJTa2lwcGVkIHJlbmRlcmluZzogbm8gYGRvbV9pZGAgb3IgYGRvbU5vZGVgIHdhcyBzcGVjaWZpZWRcIilcbiAgICB9XG4gIH1cblxuICAvLyBpZiBubyBjb25maWdVcmwgaXMgcHJvdmlkZWQsIHdlIGNhbiBzYWZlbHkgcGVyc2lzdCB0aGUgY29uZmlncyBhbmQgcmVuZGVyXG4gIGlmICghbWVyZ2VkT3B0aW9ucy5jb25maWdVcmwpIHtcbiAgICBwZXJzaXN0Q29uZmlncyhtZXJnZWRPcHRpb25zKVxuICAgIHVwZGF0ZVNwZWMobWVyZ2VkT3B0aW9ucylcbiAgICByZW5kZXIobWVyZ2VkT3B0aW9ucylcblxuICAgIHJldHVybiBzeXN0ZW1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1leHRyYS1zZW1pXG4gIDsoYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29uZmlnVXJsOiB1cmwgfSA9IG1lcmdlZE9wdGlvbnNcbiAgICBjb25zdCB1cmxPcHRpb25zID0gYXdhaXQgb3B0aW9uc0Zyb21VUkwoeyB1cmwsIHN5c3RlbSB9KShtZXJnZWRPcHRpb25zKVxuICAgIGNvbnN0IHVybE1lcmdlZE9wdGlvbnMgPSBTd2FnZ2VyVUkuY29uZmlnLm1lcmdlKFxuICAgICAge30sXG4gICAgICBtZXJnZWRPcHRpb25zLFxuICAgICAgdXJsT3B0aW9ucyxcbiAgICAgIHF1ZXJ5T3B0aW9uc1xuICAgIClcblxuICAgIHBlcnNpc3RDb25maWdzKHVybE1lcmdlZE9wdGlvbnMpXG4gICAgaWYgKHVybE9wdGlvbnMgIT09IG51bGwpIHVwZGF0ZVNwZWModXJsTWVyZ2VkT3B0aW9ucylcbiAgICByZW5kZXIodXJsTWVyZ2VkT3B0aW9ucylcbiAgfSkoKVxuXG4gIHJldHVybiBzeXN0ZW1cbn1cblxuU3dhZ2dlclVJLlN5c3RlbSA9IFN5c3RlbVxuXG5Td2FnZ2VyVUkuY29uZmlnID0ge1xuICBkZWZhdWx0czogZGVmYXVsdE9wdGlvbnMsXG4gIG1lcmdlOiBtZXJnZU9wdGlvbnMsXG4gIHR5cGVDYXN0OiB0eXBlQ2FzdE9wdGlvbnMsXG4gIHR5cGVDYXN0TWFwcGluZ3MsXG59XG5cblN3YWdnZXJVSS5wcmVzZXRzID0ge1xuICBiYXNlOiBCYXNlUHJlc2V0LFxuICBhcGlzOiBBcGlzUHJlc2V0LFxufVxuXG5Td2FnZ2VyVUkucGx1Z2lucyA9IHtcbiAgQXV0aDogQXV0aFBsdWdpbixcbiAgQ29uZmlnczogQ29uZmlnc1BsdWdpbixcbiAgRGVlcExpbmluZzogRGVlcExpbmtpbmdQbHVnaW4sXG4gIEVycjogRXJyUGx1Z2luLFxuICBGaWx0ZXI6IEZpbHRlclBsdWdpbixcbiAgSWNvbnM6IEljb25zUGx1Z2luLFxuICBKU09OU2NoZW1hNTogSlNPTlNjaGVtYTVQbHVnaW4sXG4gIEpTT05TY2hlbWE1U2FtcGxlczogSlNPTlNjaGVtYTVTYW1wbGVzUGx1Z2luLFxuICBKU09OU2NoZW1hMjAyMDEyOiBKU09OU2NoZW1hMjAyMDEyUGx1Z2luLFxuICBKU09OU2NoZW1hMjAyMDEyU2FtcGxlczogSlNPTlNjaGVtYTIwMjAxMlNhbXBsZXNQbHVnaW4sXG4gIExheW91dDogTGF5b3V0UGx1Z2luLFxuICBMb2dzOiBMb2dzUGx1Z2luLFxuICBPcGVuQVBJMzA6IE9wZW5BUEkzMFBsdWdpbixcbiAgT3BlbkFQSTMxOiBPcGVuQVBJMzFQbHVnaW4sXG4gIE9uQ29tcGxldGU6IE9uQ29tcGxldGVQbHVnaW4sXG4gIFJlcXVlc3RTbmlwcGV0czogUmVxdWVzdFNuaXBwZXRzUGx1Z2luLFxuICBTcGVjOiBTcGVjUGx1Z2luLFxuICBTd2FnZ2VyQ2xpZW50OiBTd2FnZ2VyQ2xpZW50UGx1Z2luLFxuICBVdGlsOiBVdGlsUGx1Z2luLFxuICBWaWV3OiBWaWV3UGx1Z2luLFxuICBWaWV3TGVnYWN5OiBWaWV3TGVnYWN5UGx1Z2luLFxuICBEb3dubG9hZFVybDogRG93bmxvYWRVcmxQbHVnaW4sXG4gIFN5bnRheEhpZ2hsaWdodGluZzogU3ludGF4SGlnaGxpZ2h0aW5nUGx1Z2luLFxuICBWZXJzaW9uczogVmVyc2lvbnNQbHVnaW4sXG4gIFNhZmVSZW5kZXI6IFNhZmVSZW5kZXJQbHVnaW4sXG59XG5cbmV4cG9ydCBkZWZhdWx0IFN3YWdnZXJVSVxuIiwiaW1wb3J0IFN3YWdnZXJVSSBmcm9tIFwiLi9jb3JlXCJcblxuZXhwb3J0IGRlZmF1bHQgU3dhZ2dlclVJXG4iXSwibmFtZXMiOlsid2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJyb290IiwiZmFjdG9yeSIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJ0aGlzIiwicmVxdWlyZSIsIl9fd2VicGFja19tb2R1bGVfY2FjaGVfXyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImNhY2hlZE1vZHVsZSIsInVuZGVmaW5lZCIsIl9fd2VicGFja19tb2R1bGVzX18iLCJuIiwiZ2V0dGVyIiwiX19lc01vZHVsZSIsImQiLCJhIiwiZGVmaW5pdGlvbiIsImtleSIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJvYmoiLCJwcm9wIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiciIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwidmFsdWUiLCJORVdfVEhST1dOX0VSUiIsIk5FV19USFJPV05fRVJSX0JBVENIIiwiTkVXX1NQRUNfRVJSIiwiTkVXX1NQRUNfRVJSX0JBVENIIiwiTkVXX0FVVEhfRVJSIiwiQ0xFQVIiLCJDTEVBUl9CWSIsIm5ld1Rocm93bkVyciIsImVyciIsInR5cGUiLCJwYXlsb2FkIiwic2VyaWFsaXplRXJyb3IiLCJuZXdUaHJvd25FcnJCYXRjaCIsImVycm9ycyIsIm5ld1NwZWNFcnIiLCJuZXdTcGVjRXJyQmF0Y2giLCJlcnJBcnJheSIsIm5ld0F1dGhFcnIiLCJjbGVhciIsImZpbHRlciIsImNsZWFyQnkiLCJtYWtlV2luZG93Iiwid2luIiwibG9jYXRpb24iLCJoaXN0b3J5Iiwib3BlbiIsImNsb3NlIiwiRmlsZSIsIkZvcm1EYXRhIiwid2luZG93IiwiZSIsImNvbnNvbGUiLCJlcnJvciIsInN3YWdnZXIyU2NoZW1hS2V5cyIsIkltIiwib2YiLCJnZXRQYXJhbWV0ZXJTY2hlbWEiLCJwYXJhbWV0ZXIiLCJpc09BUzMiLCJpc01hcCIsInNjaGVtYSIsInBhcmFtZXRlckNvbnRlbnRNZWRpYVR5cGUiLCJ2IiwiayIsImluY2x1ZGVzIiwia2V5U2VxIiwiZmlyc3QiLCJnZXRJbiIsIkRFRkFVTFRfUkVTUE9OU0VfS0VZIiwiaXNJbW11dGFibGUiLCJtYXliZSIsImlzSXRlcmFibGUiLCJpbW11dGFibGVUb0pTIiwidG9KUyIsIm9iamVjdGlmeSIsInRoaW5nIiwiaXNPYmplY3QiLCJmcm9tSlNPcmRlcmVkIiwianMiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJ0b0xpc3QiLCJpc0Z1bmN0aW9uIiwiZW50cmllcyIsIm9ialdpdGhIYXNoZWRLZXlzIiwiY3JlYXRlT2JqV2l0aEhhc2hlZEtleXMiLCJmZE9iaiIsIm5ld09iaiIsImhhc2hJZHgiLCJ0cmFja0tleXMiLCJwYWlyIiwiY29udGFpbnNNdWx0aXBsZSIsImxlbmd0aCIsIm5vcm1hbGl6ZUFycmF5IiwiYXJyIiwiaXNGbiIsImZuIiwiaXNGdW5jIiwibWVtb2l6ZSIsIl9tZW1vaXplIiwib2JqTWFwIiwia2V5cyIsInJlZHVjZSIsIm9ialJlZHVjZSIsInJlcyIsImFzc2lnbiIsInN5c3RlbVRodW5rTWlkZGxld2FyZSIsImdldFN5c3RlbSIsImRpc3BhdGNoIiwiZ2V0U3RhdGUiLCJuZXh0IiwiYWN0aW9uIiwidmFsaWRhdGVWYWx1ZUJ5U2NoZW1hIiwicmVxdWlyZWRCeVBhcmFtIiwiYnlwYXNzUmVxdWlyZWRDaGVjayIsIm51bGxhYmxlIiwicmVxdWlyZWRCeVNjaGVtYSIsIm1heGltdW0iLCJtaW5pbXVtIiwiZm9ybWF0IiwibWF4TGVuZ3RoIiwibWluTGVuZ3RoIiwidW5pcXVlSXRlbXMiLCJtYXhJdGVtcyIsIm1pbkl0ZW1zIiwicGF0dGVybiIsInNjaGVtYVJlcXVpcmVzVmFsdWUiLCJoYXNWYWx1ZSIsInJlcXVpcmVzRnVydGhlclZhbGlkYXRpb24iLCJpc1ZhbGlkTnVsbGFibGUiLCJwdXNoIiwic3RyaW5nQ2hlY2siLCJhcnJheUNoZWNrIiwiYXJyYXlMaXN0Q2hlY2siLCJpc0xpc3QiLCJjb3VudCIsInBhc3NlZEFueUNoZWNrIiwic29tZSIsIm9iamVjdFZhbCIsIkpTT04iLCJwYXJzZSIsImhhcyIsImZvckVhY2giLCJwcm9wS2V5IiwidmFsIiwiZXJycyIsInZhbGlkYXRlUGF0dGVybiIsInJ4UGF0dGVybiIsIlJlZ0V4cCIsInRlc3QiLCJ2YWxpZGF0ZU1pbkl0ZW1zIiwibWluIiwidmFsaWRhdGVNYXhJdGVtcyIsIm1heCIsIm5lZWRSZW1vdmUiLCJlcnJvclBlckl0ZW0iLCJ2YWxpZGF0ZVVuaXF1ZUl0ZW1zIiwibGlzdCIsImZyb21KUyIsInNldCIsInRvU2V0Iiwic2l6ZSIsImVycm9yc1BlckluZGV4IiwiU2V0IiwiaXRlbSIsImkiLCJlcXVhbHMiLCJhZGQiLCJpbmRleCIsInRvQXJyYXkiLCJ2YWxpZGF0ZU1heExlbmd0aCIsInZhbGlkYXRlTWluTGVuZ3RoIiwidmFsaWRhdGVNYXhpbXVtIiwidmFsaWRhdGVNaW5pbXVtIiwidmFsaWRhdGVEYXRlVGltZSIsImlzTmFOIiwiRGF0ZSIsInZhbGlkYXRlR3VpZCIsInRvU3RyaW5nIiwidG9Mb3dlckNhc2UiLCJ2YWxpZGF0ZVN0cmluZyIsInZhbGlkYXRlQm9vbGVhbiIsInZhbGlkYXRlTnVtYmVyIiwidmFsaWRhdGVJbnRlZ2VyIiwidmFsaWRhdGVGaWxlIiwiYnRvYSIsInN0ciIsImJ1ZmZlciIsIkJ1ZmZlciIsImZyb20iLCJzb3J0ZXJzIiwib3BlcmF0aW9uc1NvcnRlciIsImFscGhhIiwiYiIsImxvY2FsZUNvbXBhcmUiLCJtZXRob2QiLCJ0YWdzU29ydGVyIiwiYnVpbGRGb3JtRGF0YSIsImRhdGEiLCJmb3JtQXJyIiwibmFtZSIsImVuY29kZVVSSUNvbXBvbmVudCIsInJlcGxhY2UiLCJqb2luIiwic2hhbGxvd0VxdWFsS2V5cyIsImZpbmQiLCJlcSIsInJlcXVpcmVzVmFsaWRhdGlvblVSTCIsInVyaSIsImluZGV4T2YiLCJjcmVhdGVEZWVwTGlua1BhdGgiLCJTdHJpbmciLCJ0cmltIiwiZXNjYXBlRGVlcExpbmtQYXRoIiwiY3NzRXNjYXBlIiwiZ2V0RXh0ZW5zaW9ucyIsImRlZk9iaiIsImV4dGVuc2lvblJlZ0V4cCIsIk1hcCIsImdldENvbW1vbkV4dGVuc2lvbnMiLCJkZWVwbHlTdHJpcEtleSIsImlucHV0Iiwia2V5VG9TdHJpcCIsInByZWRpY2F0ZSIsInN0cmluZ2lmeSIsInBhcmFtVG9JZGVudGlmaWVyIiwicGFyYW0iLCJyZXR1cm5BbGwiLCJhbGxvd0hhc2hlcyIsIkVycm9yIiwicGFyYW1OYW1lIiwicGFyYW1JbiIsImdlbmVyYXRlZElkZW50aWZpZXJzIiwiaGFzaENvZGUiLCJwYXJhbVRvVmFsdWUiLCJwYXJhbVZhbHVlcyIsImlkIiwiYjY0dG9CNjRVcmxFbmNvZGVkIiwiaXNFbXB0eVZhbHVlIiwiaXNFbXB0eSIsImlkRm4iLCJTdG9yZSIsImNvbnN0cnVjdG9yIiwib3B0cyIsImRlZXBFeHRlbmQiLCJzdGF0ZSIsInBsdWdpbnMiLCJzeXN0ZW0iLCJjb25maWdzIiwiY29tcG9uZW50cyIsInJvb3RJbmplY3RzIiwic3RhdGVQbHVnaW5zIiwiYm91bmRTeXN0ZW0iLCJ0b29sYm94IiwiX2dldFN5c3RlbSIsImJpbmQiLCJzdG9yZSIsImNvbmZpZ3VyZVN0b3JlIiwicm9vdFJlZHVjZXIiLCJpbml0aWFsU3RhdGUiLCJjcmVhdGVTdG9yZVdpdGhNaWRkbGV3YXJlIiwibWlkZGx3YXJlcyIsImNvbXBvc2VFbmhhbmNlcnMiLCJfX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9DT01QT1NFX18iLCJjb21wb3NlIiwiY3JlYXRlU3RvcmUiLCJhcHBseU1pZGRsZXdhcmUiLCJidWlsZFN5c3RlbSIsInJlZ2lzdGVyIiwiZ2V0U3RvcmUiLCJyZWJ1aWxkIiwicGx1Z2luU3lzdGVtIiwiY29tYmluZVBsdWdpbnMiLCJzeXN0ZW1FeHRlbmQiLCJjYWxsQWZ0ZXJMb2FkIiwiYnVpbGRSZWR1Y2VyIiwiZ2V0Um9vdEluamVjdHMiLCJnZXRXcmFwcGVkQW5kQm91bmRBY3Rpb25zIiwiZ2V0V3JhcHBlZEFuZEJvdW5kU2VsZWN0b3JzIiwiZ2V0U3RhdGVUaHVua3MiLCJnZXRGbiIsImdldENvbmZpZ3MiLCJyZWJ1aWxkUmVkdWNlciIsImdldENvbXBvbmVudHMiLCJfZ2V0Q29uZmlncyIsIlJlYWN0Iiwic2V0Q29uZmlncyIsInJlcGxhY2VSZWR1Y2VyIiwic3RhdGVzIiwiYWxsUmVkdWNlcnMiLCJyZWR1Y2VyU3lzdGVtIiwicmVkdWNlcnMiLCJtYWtlUmVkdWNlciIsInJlZHVjZXJPYmoiLCJyZWRGbiIsIndyYXBXaXRoVHJ5Q2F0Y2giLCJjb21iaW5lUmVkdWNlcnMiLCJnZXRUeXBlIiwidXBOYW1lIiwidG9VcHBlckNhc2UiLCJzbGljZSIsIm5hbWVzcGFjZSIsImdldFNlbGVjdG9ycyIsImdldEFjdGlvbnMiLCJhY3Rpb25zIiwiYWN0aW9uTmFtZSIsImdldEJvdW5kQWN0aW9ucyIsImFjdGlvbkdyb3VwTmFtZSIsIndyYXBwZXJzIiwid3JhcEFjdGlvbnMiLCJ3cmFwIiwiYWNjIiwibmV3QWN0aW9uIiwiYXJncyIsIlR5cGVFcnJvciIsIkZ1bmN0aW9uIiwiZ2V0Qm91bmRTZWxlY3RvcnMiLCJzZWxlY3RvcnMiLCJzZWxlY3Rvckdyb3VwTmFtZSIsInN0YXRlTmFtZSIsIndyYXBTZWxlY3RvcnMiLCJzZWxlY3RvciIsInNlbGVjdG9yTmFtZSIsIndyYXBwZWRTZWxlY3RvciIsImdldFN0YXRlcyIsImNvbXBvbmVudCIsIm9yaSIsIndyYXBwZXIiLCJhcHBseSIsInByb2Nlc3MiLCJjcmVhdG9yIiwiYWN0aW9uQ3JlYXRvciIsImJpbmRBY3Rpb25DcmVhdG9ycyIsImdldE1hcFN0YXRlVG9Qcm9wcyIsImdldE1hcERpc3BhdGNoVG9Qcm9wcyIsImV4dHJhcyIsIm1lcmdlIiwicGx1Z2luIiwiaGFzTG9hZGVkIiwiY2FsbGVkU29tZXRoaW5nIiwiYWZ0ZXJMb2FkIiwiZGVzdCIsInNyYyIsIndyYXBDb21wb25lbnRzIiwid3JhcHBlckZuIiwiY29uY2F0IiwibmFtZXNwYWNlT2JqIiwibG9nRXJyb3JzIiwidW5jYXVnaHRFeGNlcHRpb25IYW5kbGVyIiwiU0hPV19BVVRIX1BPUFVQIiwiQVVUSE9SSVpFIiwiTE9HT1VUIiwiQVVUSE9SSVpFX09BVVRIMiIsIkNPTkZJR1VSRV9BVVRIIiwiUkVTVE9SRV9BVVRIT1JJWkFUSU9OIiwic2hvd0RlZmluaXRpb25zIiwiYXV0aG9yaXplIiwiYXV0aG9yaXplV2l0aFBlcnNpc3RPcHRpb24iLCJhdXRoQWN0aW9ucyIsInBlcnNpc3RBdXRob3JpemF0aW9uSWZOZWVkZWQiLCJsb2dvdXQiLCJsb2dvdXRXaXRoUGVyc2lzdE9wdGlvbiIsInByZUF1dGhvcml6ZUltcGxpY2l0IiwiZXJyQWN0aW9ucyIsImF1dGgiLCJ0b2tlbiIsImlzVmFsaWQiLCJmbG93Iiwic3dhZ2dlclVJUmVkaXJlY3RPYXV0aDIiLCJhdXRoSWQiLCJzb3VyY2UiLCJsZXZlbCIsIm1lc3NhZ2UiLCJhdXRob3JpemVPYXV0aDJXaXRoUGVyc2lzdE9wdGlvbiIsImF1dGhvcml6ZU9hdXRoMiIsImF1dGhvcml6ZVBhc3N3b3JkIiwidXNlcm5hbWUiLCJwYXNzd29yZCIsInBhc3N3b3JkVHlwZSIsImNsaWVudElkIiwiY2xpZW50U2VjcmV0IiwiZm9ybSIsImdyYW50X3R5cGUiLCJzY29wZSIsInNjb3BlcyIsImhlYWRlcnMiLCJzZXRDbGllbnRJZEFuZFNlY3JldCIsInRhcmdldCIsImNsaWVudF9pZCIsImNsaWVudF9zZWNyZXQiLCJBdXRob3JpemF0aW9uIiwid2FybiIsImF1dGhvcml6ZVJlcXVlc3QiLCJib2R5IiwidXJsIiwicXVlcnkiLCJhdXRob3JpemVBcHBsaWNhdGlvbiIsImF1dGhvcml6ZUFjY2Vzc0NvZGVXaXRoRm9ybVBhcmFtcyIsInJlZGlyZWN0VXJsIiwiY29kZVZlcmlmaWVyIiwiY29kZSIsInJlZGlyZWN0X3VyaSIsImNvZGVfdmVyaWZpZXIiLCJhdXRob3JpemVBY2Nlc3NDb2RlV2l0aEJhc2ljQXV0aGVudGljYXRpb24iLCJvYXMzU2VsZWN0b3JzIiwic3BlY1NlbGVjdG9ycyIsImF1dGhTZWxlY3RvcnMiLCJwYXJzZWRVcmwiLCJhZGRpdGlvbmFsUXVlcnlTdHJpbmdQYXJhbXMiLCJmaW5hbFNlcnZlclVybCIsInNlcnZlckVmZmVjdGl2ZVZhbHVlIiwic2VsZWN0ZWRTZXJ2ZXIiLCJwYXJzZVVybCIsImZldGNoVXJsIiwiX2hlYWRlcnMiLCJmZXRjaCIsInJlcXVlc3RJbnRlcmNlcHRvciIsInJlc3BvbnNlSW50ZXJjZXB0b3IiLCJ0aGVuIiwicmVzcG9uc2UiLCJwYXJzZUVycm9yIiwib2siLCJzdGF0dXNUZXh0IiwiY2F0Y2giLCJlcnJEYXRhIiwianNvblJlc3BvbnNlIiwiZXJyb3JfZGVzY3JpcHRpb24iLCJqc29uRXJyb3IiLCJjb25maWd1cmVBdXRoIiwicmVzdG9yZUF1dGhvcml6YXRpb24iLCJwZXJzaXN0QXV0aG9yaXphdGlvbiIsImF1dGhvcml6ZWQiLCJsb2NhbFN0b3JhZ2UiLCJzZXRJdGVtIiwiYXV0aFBvcHVwIiwic2VjdXJpdGllcyIsImVudHJ5U2VxIiwic2VjdXJpdHkiLCJzZXRJbiIsImhlYWRlciIsInBhcnNlZEF1dGgiLCJyZXN1bHQiLCJ3aXRoTXV0YXRpb25zIiwiZGVsZXRlIiwic2hvd25EZWZpbml0aW9ucyIsImNyZWF0ZVNlbGVjdG9yIiwiZGVmaW5pdGlvbnNUb0F1dGhvcml6ZSIsImRlZmluaXRpb25zIiwic2VjdXJpdHlEZWZpbml0aW9ucyIsIkxpc3QiLCJzZWxlY3RBdXRoUGF0aCIsImdldERlZmluaXRpb25zQnlOYW1lcyIsInZhbHVlU2VxIiwibmFtZXMiLCJhbGxvd2VkU2NvcGVzIiwiY29udGFpbnMiLCJkZWZpbml0aW9uc0ZvclJlcXVpcmVtZW50cyIsImFsbERlZmluaXRpb25zIiwic2VjIiwicHJvcHMiLCJzZWN1cml0eVNjb3BlcyIsImRlZmluaXRpb25TY29wZXMiLCJpc0F1dGhvcml6ZWQiLCJleGVjdXRlIiwib3JpQWN0aW9uIiwicGF0aCIsIm9wZXJhdGlvbiIsInNwZWNTZWN1cml0eSIsImxvYWRlZCIsImdldEl0ZW0iLCJ2YWx1ZXMiLCJpc0FwaUtleUF1dGgiLCJpc0luQ29va2llIiwiZG9jdW1lbnQiLCJjb29raWUiLCJhdXRob3JpemVkTmFtZSIsImNvb2tpZU5hbWUiLCJMb2NrQXV0aEljb24iLCJtYXBTdGF0ZVRvUHJvcHMiLCJvd25Qcm9wcyIsIm9taXQiLCJyZW5kZXIiLCJnZXRDb21wb25lbnQiLCJMb2NrSWNvbiIsIlVubG9ja0F1dGhJY29uIiwiVW5sb2NrSWNvbiIsImluaXRPQXV0aCIsInByZWF1dGhvcml6ZUFwaUtleSIsInByZWF1dGhvcml6ZUJhc2ljIiwiTG9ja0F1dGhPcGVyYXRpb25JY29uIiwiVW5sb2NrQXV0aE9wZXJhdGlvbkljb24iLCJ3cmFwcGVkQXV0aG9yaXplQWN0aW9uIiwid3JhcHBlZExvZ291dEFjdGlvbiIsInNwZWMiLCJzcGVjSnNvbiIsImRlZmluaXRpb25CYXNlIiwiVVBEQVRFX0NPTkZJR1MiLCJUT0dHTEVfQ09ORklHUyIsInVwZGF0ZSIsImNvbmZpZ05hbWUiLCJjb25maWdWYWx1ZSIsInRvZ2dsZSIsImRvd25sb2FkQ29uZmlnIiwicmVxIiwiZ2V0Q29uZmlnQnlVcmwiLCJjYiIsInNwZWNBY3Rpb25zIiwiY29uZmlnc0FjdGlvbnMiLCJzdGF0dXMiLCJ1cGRhdGVMb2FkaW5nU3RhdHVzIiwidXBkYXRlVXJsIiwicGFyc2VDb25maWciLCJ5YW1sIiwiWUFNTCIsInRleHQiLCJvcmlWYWwiLCJjb25maWdzUGx1Z2luIiwic2V0SGFzaCIsInB1c2hTdGF0ZSIsImhhc2giLCJTQ1JPTExfVE8iLCJDTEVBUl9TQ1JPTExfVE8iLCJnZXRTY3JvbGxQYXJlbnQiLCJlbGVtZW50IiwiaW5jbHVkZUhpZGRlbiIsIkxBU1RfUkVTT1JUIiwiZG9jdW1lbnRFbGVtZW50Iiwic3R5bGUiLCJnZXRDb21wdXRlZFN0eWxlIiwiZXhjbHVkZVN0YXRpY1BhcmVudCIsInBvc2l0aW9uIiwib3ZlcmZsb3dSZWdleCIsInBhcmVudCIsInBhcmVudEVsZW1lbnQiLCJvdmVyZmxvdyIsIm92ZXJmbG93WSIsIm92ZXJmbG93WCIsImxheW91dCIsInNjcm9sbFRvRWxlbWVudCIsInJlZiIsImNvbnRhaW5lciIsInplbnNjcm9sbCIsInRvIiwic2Nyb2xsVG8iLCJjbGVhclNjcm9sbFRvIiwicmVhZHlUb1Njcm9sbCIsImlzU2hvd25LZXkiLCJzY3JvbGxUb0tleSIsImxheW91dFNlbGVjdG9ycyIsImdldFNjcm9sbFRvS2V5IiwibGF5b3V0QWN0aW9ucyIsInBhcnNlRGVlcExpbmtIYXNoIiwicmF3SGFzaCIsImRlZXBMaW5raW5nIiwiaGFzaEFycmF5Iiwic3BsaXQiLCJpc1Nob3duS2V5RnJvbVVybEhhc2hBcnJheSIsInRhZ0lkIiwibWF5YmVPcGVyYXRpb25JZCIsInRhZ0lzU2hvd25LZXkiLCJzaG93IiwidXJsSGFzaEFycmF5IiwidGFnIiwib3BlcmF0aW9uSWQiLCJ1cmxIYXNoQXJyYXlGcm9tSXNTaG93bktleSIsInRva2VuQXJyYXkiLCJzaG93biIsImFzc2V0TmFtZSIsIldyYXBwZXIiLCJPcmkiLCJPcGVyYXRpb25XcmFwcGVyIiwib25Mb2FkIiwidG9PYmplY3QiLCJPcGVyYXRpb25UYWdXcmFwcGVyIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiT3BlcmF0aW9uVGFnIiwidHJhbnNmb3JtIiwic2Vla1N0ciIsInR5cGVzIiwibWFrZU5ld01lc3NhZ2UiLCJwIiwiYyIsImpzU3BlYyIsImVycm9yVHJhbnNmb3JtZXJzIiwiTm90T2ZUeXBlIiwiUGFyYW1ldGVyT25lT2YiLCJ0cmFuc2Zvcm1FcnJvcnMiLCJpbnB1dHMiLCJ0cmFuc2Zvcm1lZEVycm9ycyIsInRyYW5zZm9ybWVyIiwiREVGQVVMVF9FUlJPUl9TVFJVQ1RVUkUiLCJsaW5lIiwiYWxsRXJyb3JzIiwibGFzdEVycm9yIiwiYWxsIiwibGFzdCIsInNvcnRCeSIsIm5ld0Vycm9ycyIsImV2ZXJ5IiwiZXJyVmFsdWUiLCJmaWx0ZXJWYWx1ZSIsInRhZ2dlZE9wcyIsInBocmFzZSIsInRhZ09iaiIsIm9wc0ZpbHRlciIsIkFycm93VXAiLCJjbGFzc05hbWUiLCJ3aWR0aCIsImhlaWdodCIsInJlc3QiLCJfZXh0ZW5kcyIsInhtbG5zIiwidmlld0JveCIsImZvY3VzYWJsZSIsIkFycm93RG93biIsIkFycm93IiwiQ2xvc2UiLCJDb3B5IiwiZmlsbCIsImZpbGxSdWxlIiwiTG9jayIsIlVubG9jayIsIkljb25zUGx1Z2luIiwiQXJyb3dVcEljb24iLCJBcnJvd0Rvd25JY29uIiwiQXJyb3dJY29uIiwiQ2xvc2VJY29uIiwiQ29weUljb24iLCJVUERBVEVfTEFZT1VUIiwiVVBEQVRFX0ZJTFRFUiIsIlVQREFURV9NT0RFIiwiU0hPVyIsInVwZGF0ZUxheW91dCIsInVwZGF0ZUZpbHRlciIsImNoYW5nZU1vZGUiLCJtb2RlIiwiaXNTaG93biIsInRoaW5nVG9TaG93IiwiY3VycmVudCIsImN1cnJlbnRGaWx0ZXIiLCJkZWYiLCJ3aGF0TW9kZSIsInNob3dTdW1tYXJ5IiwidGFnZ2VkT3BlcmF0aW9ucyIsIm9yaVNlbGVjdG9yIiwibWF4RGlzcGxheWVkVGFncyIsImxldmVscyIsImdldExldmVsIiwibG9nTGV2ZWwiLCJsb2dMZXZlbEludCIsImxvZyIsImluZm8iLCJkZWJ1ZyIsImVuZ2FnZWQiLCJ1cGRhdGVTcGVjIiwidXBkYXRlSnNvblNwZWMiLCJvbkNvbXBsZXRlIiwic2V0VGltZW91dCIsImV4dHJhY3RLZXkiLCJlc2NhcGVTaGVsbCIsImVzY2FwZUNNRCIsImVzY2FwZVBvd2Vyc2hlbGwiLCJjdXJsaWZ5IiwicmVxdWVzdCIsImVzY2FwZSIsIm5ld0xpbmUiLCJleHQiLCJpc011bHRpcGFydEZvcm1EYXRhUmVxdWVzdCIsImN1cmxpZmllZCIsImFkZFdvcmRzIiwiYWRkV29yZHNXaXRob3V0TGVhZGluZ1NwYWNlIiwiYWRkTmV3TGluZSIsImFkZEluZGVudCIsInJlcGVhdCIsImN1cmxPcHRpb25zIiwiaCIsImV4dHJhY3RlZEtleSIsInZhbHVlT2YiLCJyZXFCb2R5IiwiZ2V0U3RyaW5nQm9keU9mTWFwIiwiY3VybGlmeVRvSm9pbiIsInJlcXVlc3RTbmlwcGV0R2VuZXJhdG9yX2N1cmxfcG93ZXJzaGVsbCIsInJlcXVlc3RTbmlwcGV0R2VuZXJhdG9yX2N1cmxfYmFzaCIsInJlcXVlc3RTbmlwcGV0R2VuZXJhdG9yX2N1cmxfY21kIiwiZ2V0R2VuZXJhdG9ycyIsImxhbmd1YWdlS2V5cyIsImdlbmVyYXRvcnMiLCJnZXRTbmlwcGV0R2VuZXJhdG9ycyIsImdlbiIsImdlbkZuIiwiZ2V0R2VuRm4iLCJnZXRBY3RpdmVMYW5ndWFnZSIsImdldERlZmF1bHRFeHBhbmRlZCIsImN1cnNvciIsImxpbmVIZWlnaHQiLCJkaXNwbGF5IiwiYmFja2dyb3VuZENvbG9yIiwicGFkZGluZ0JvdHRvbSIsInBhZGRpbmdUb3AiLCJib3JkZXIiLCJib3JkZXJSYWRpdXMiLCJib3hTaGFkb3ciLCJib3JkZXJCb3R0b20iLCJhY3RpdmVTdHlsZSIsIm1hcmdpblRvcCIsIm1hcmdpblJpZ2h0IiwibWFyZ2luTGVmdCIsInpJbmRleCIsIlJlcXVlc3RTbmlwcGV0cyIsInJlcXVlc3RTbmlwcGV0c1NlbGVjdG9ycyIsInJvb3RSZWYiLCJ1c2VSZWYiLCJTeW50YXhIaWdobGlnaHRlciIsImFjdGl2ZUxhbmd1YWdlIiwic2V0QWN0aXZlTGFuZ3VhZ2UiLCJ1c2VTdGF0ZSIsImlzRXhwYW5kZWQiLCJzZXRJc0V4cGFuZGVkIiwic25pcHBldEdlbmVyYXRvcnMiLCJhY3RpdmVHZW5lcmF0b3IiLCJzbmlwcGV0IiwiaGFuZGxlU2V0SXNFeHBhbmRlZCIsImhhbmRsZUdldEJ0blN0eWxlIiwiaGFuZGxlUHJldmVudFlTY3JvbGxpbmdCZXlvbmRFbGVtZW50IiwiZGVsdGFZIiwic2Nyb2xsSGVpZ2h0IiwiY29udGVudEhlaWdodCIsIm9mZnNldEhlaWdodCIsInZpc2libGVIZWlnaHQiLCJzY3JvbGxUb3AiLCJwcmV2ZW50RGVmYXVsdCIsInVzZUVmZmVjdCIsImNoaWxkTm9kZXMiLCJub2RlIiwibm9kZVR5cGUiLCJjbGFzc0xpc3QiLCJhZGRFdmVudExpc3RlbmVyIiwicGFzc2l2ZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJqdXN0aWZ5Q29udGVudCIsImFsaWduSXRlbXMiLCJtYXJnaW5Cb3R0b20iLCJvbkNsaWNrIiwiYmFja2dyb3VuZCIsInRpdGxlIiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiLCJjbGFzc05hbWVzIiwiaGFuZGxlR2VuQ2hhbmdlIiwiY29sb3IiLCJDb3B5VG9DbGlwYm9hcmQiLCJsYW5ndWFnZSIsInJlbmRlclBsYWluVGV4dCIsImNoaWxkcmVuIiwiUGxhaW5UZXh0Vmlld2VyIiwicmVxdWVzdFNuaXBwZXRzIiwiTW9kZWxDb2xsYXBzZSIsIkNvbXBvbmVudCIsInN0YXRpYyIsImNvbGxhcHNlZENvbnRlbnQiLCJleHBhbmRlZCIsIm9uVG9nZ2xlIiwiaGlkZVNlbGZPbkV4cGFuZCIsInNwZWNQYXRoIiwiY29udGV4dCIsInN1cGVyIiwiZGVmYXVsdFByb3BzIiwiY29tcG9uZW50RGlkTW91bnQiLCJtb2RlbE5hbWUiLCJVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyIsIm5leHRQcm9wcyIsInNldFN0YXRlIiwidG9nZ2xlQ29sbGFwc2VkIiwiY2xhc3NlcyIsInVzZVRhYnMiLCJpbml0aWFsVGFiIiwiaXNFeGVjdXRlIiwiZXhhbXBsZSIsInRhYnMiLCJ1c2VNZW1vIiwibW9kZWwiLCJ0YWIiLCJwcmV2SXNFeGVjdXRlIiwidXNlUHJldmlvdXMiLCJhY3RpdmVUYWIiLCJzZXRBY3RpdmVUYWIiLCJoYW5kbGVUYWJDaGFuZ2UiLCJ1c2VDYWxsYmFjayIsImRhdGFzZXQiLCJvblRhYkNoYW5nZSIsIk1vZGVsRXhhbXBsZSIsImluY2x1ZGVXcml0ZU9ubHkiLCJpbmNsdWRlUmVhZE9ubHkiLCJkZWZhdWx0TW9kZWxSZW5kZXJpbmciLCJkZWZhdWx0TW9kZWxFeHBhbmREZXB0aCIsIk1vZGVsV3JhcHBlciIsIkhpZ2hsaWdodENvZGUiLCJleGFtcGxlVGFiSWQiLCJyYW5kb21CeXRlcyIsImV4YW1wbGVQYW5lbElkIiwibW9kZWxUYWJJZCIsIm1vZGVsUGFuZWxJZCIsInJvbGUiLCJjeCIsImFjdGl2ZSIsImluYWN0aXZlIiwidGFiSW5kZXgiLCJleHBhbmREZXB0aCIsImZ1bGxQYXRoIiwiTW9kZWwiLCJkZXB0aCIsIl9jaXJjbGUiLCJhcmd1bWVudHMiLCJ0IiwicHJlc2VydmVBc3BlY3RSYXRpbyIsImJhY2tncm91bmRJbWFnZSIsImJhY2tncm91bmRQb3NpdGlvbiIsImJhY2tncm91bmRSZXBlYXQiLCJjeSIsInN0cm9rZSIsInN0cm9rZURhc2hhcnJheSIsInN0cm9rZVdpZHRoIiwiYXR0cmlidXRlTmFtZSIsImJlZ2luIiwiY2FsY01vZGUiLCJkdXIiLCJrZXlUaW1lcyIsInJlcGVhdENvdW50IiwiZGVjb2RlUmVmTmFtZSIsInVuZXNjYXBlZCIsIkltbXV0YWJsZVB1cmVDb21wb25lbnQiLCJJbVByb3BUeXBlcyIsImlzUmVxdWlyZWQiLCJQcm9wVHlwZXMiLCJkaXNwbGF5TmFtZSIsImlzUmVmIiwicmVxdWlyZWQiLCJnZXRNb2RlbE5hbWUiLCJnZXRSZWZTY2hlbWEiLCJmaW5kRGVmaW5pdGlvbiIsIk9iamVjdE1vZGVsIiwiQXJyYXlNb2RlbCIsIlByaW1pdGl2ZU1vZGVsIiwiJCRyZWYiLCIkcmVmIiwicmVmTmFtZSIsInJlZlNjaGVtYSIsIm1lcmdlRGVlcCIsIlJvbGxpbmdMb2FkU1ZHIiwiZGVwcmVjYXRlZCIsIk1vZGVscyIsImdldFNjaGVtYUJhc2VQYXRoIiwiZ2V0Q29sbGFwc2VkQ29udGVudCIsImhhbmRsZVRvZ2dsZSIsInJlcXVlc3RSZXNvbHZlZFN1YnRyZWUiLCJvbkxvYWRNb2RlbHMiLCJvbkxvYWRNb2RlbCIsImdldEF0dHJpYnV0ZSIsImRvY0V4cGFuc2lvbiIsImRlZmF1bHRNb2RlbHNFeHBhbmREZXB0aCIsInNwZWNQYXRoQmFzZSIsInNob3dNb2RlbHMiLCJDb2xsYXBzZSIsIkp1bXBUb1BhdGgiLCJpc09wZW5lZCIsInNjaGVtYVZhbHVlIiwic3BlY1Jlc29sdmVkU3VidHJlZSIsInJhd1NjaGVtYVZhbHVlIiwicmF3U2NoZW1hIiwiY29udGVudCIsIkVudW1Nb2RlbCIsImlzQWJzb2x1dGVVcmwiLCJtYXRjaCIsImJ1aWxkQmFzZVVybCIsInNwZWNVcmwiLCJhZGRQcm90b2NvbCIsInByb3RvY29sIiwiVVJMIiwiaHJlZiIsInNhZmVCdWlsZFVybCIsImJ1aWxkVXJsIiwiYmFzZVVybCIsInNhbml0aXplVXJsIiwidXJsVHJpbW1lZCIsImJsYW5rVVJMIiwiYmFzZSIsIk1hdGgiLCJyYW5kb20iLCJ1cmxPYmplY3QiLCJzY2hlbWUiLCJvcmlnaW4iLCJzdGFydHNXaXRoIiwicGF0aG5hbWUiLCJzZWFyY2giLCJzdWJzdHJpbmciLCJvdGhlclByb3BzIiwiaXNFbWJlZGRlZCIsInNob3dFeHRlbnNpb25zIiwiZXh0ZW5zaW9ucyIsImRlc2NyaXB0aW9uIiwicHJvcGVydGllcyIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwicmVxdWlyZWRQcm9wZXJ0aWVzIiwiaW5mb1Byb3BlcnRpZXMiLCJleHRlcm5hbERvY3NVcmwiLCJleHRlcm5hbERvY3NEZXNjcmlwdGlvbiIsIk1hcmtkb3duIiwiUHJvcGVydHkiLCJMaW5rIiwiTW9kZWxFeHRlbnNpb25zIiwiSnVtcFRvUGF0aFNlY3Rpb24iLCJhbGxPZiIsImFueU9mIiwib25lT2YiLCJub3QiLCJ0aXRsZUVsIiwiaXNEZXByZWNhdGVkIiwicHJvcENsYXNzIiwicHJvcFZhbCIsIml0ZW1zIiwiUHJpbWl0aXZlIiwieG1sIiwiZW51bUFycmF5IiwiXyIsImZpbHRlck5vdCIsIlNjaGVtZXMiLCJVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50Iiwic2NoZW1lcyIsInNldFNjaGVtZSIsImN1cnJlbnRTY2hlbWUiLCJvbkNoYW5nZSIsImh0bWxGb3IiLCJTY2hlbWVzQ29udGFpbmVyIiwib3BlcmF0aW9uU2NoZW1lIiwiSnNvblNjaGVtYURlZmF1bHRQcm9wcyIsIm5vb3AiLCJrZXlOYW1lIiwiSnNvblNjaGVtYUZvcm0iLCJkaXNwYXRjaEluaXRpYWxWYWx1ZSIsImRpc2FibGVkIiwib2JqZWN0VHlwZSIsImdldFNjaGVtYU9iamVjdFR5cGUiLCJpc0ZpbGVVcGxvYWRJbnRlbmRlZCIsImdldENvbXBvbmVudFNpbGVudGx5IiwiZmFpbFNpbGVudGx5IiwiQ29tcCIsIkpzb25TY2hlbWFfc3RyaW5nIiwiZmlsZXMiLCJvbkVudW1DaGFuZ2UiLCJlbnVtVmFsdWUiLCJzY2hlbWFJbiIsIlNlbGVjdCIsImFsbG93ZWRWYWx1ZXMiLCJhbGxvd0VtcHR5VmFsdWUiLCJpc0Rpc2FibGVkIiwiSW5wdXQiLCJEZWJvdW5jZUlucHV0IiwiZGVib3VuY2VUaW1lb3V0IiwicGxhY2Vob2xkZXIiLCJKc29uU2NoZW1hX2FycmF5IiwiUHVyZUNvbXBvbmVudCIsInZhbHVlT3JFbXB0eUxpc3QiLCJvbkl0ZW1DaGFuZ2UiLCJpdGVtVmFsIiwicmVtb3ZlSXRlbSIsImFkZEl0ZW0iLCJuZXdWYWx1ZSIsImdldFNhbXBsZVNjaGVtYSIsImFycmF5RXJyb3JzIiwibmVlZHNSZW1vdmVFcnJvciIsInNob3VsZFJlbmRlclZhbHVlIiwic2NoZW1hSXRlbXNFbnVtIiwic2NoZW1hSXRlbXMiLCJzY2hlbWFJdGVtc1R5cGUiLCJzY2hlbWFJdGVtc1R5cGVMYWJlbCIsImdldFNjaGVtYU9iamVjdFR5cGVMYWJlbCIsInNjaGVtYUl0ZW1zRm9ybWF0Iiwic2NoZW1hSXRlbXNTY2hlbWEiLCJBcnJheUl0ZW1zQ29tcG9uZW50IiwiaXNBcnJheUl0ZW1UZXh0IiwiaXNBcnJheUl0ZW1GaWxlIiwibXVsdGlwbGUiLCJCdXR0b24iLCJpdGVtRXJyb3JzIiwiSnNvblNjaGVtYUFycmF5SXRlbUZpbGUiLCJKc29uU2NoZW1hQXJyYXlJdGVtVGV4dCIsIm9uRmlsZUNoYW5nZSIsIkpzb25TY2hlbWFfYm9vbGVhbiIsImJvb2xlYW5WYWx1ZSIsInN0cmluZ2lmeU9iamVjdEVycm9ycyIsIm1ldGEiLCJzdHJpbmdFcnJvciIsImN1cnJlbnRFcnJvciIsInBhcnQiLCJKc29uU2NoZW1hX29iamVjdCIsImhhbmRsZU9uQ2hhbmdlIiwiaW5wdXRWYWx1ZSIsIlRleHRBcmVhIiwiaW52YWxpZCIsIm5vcm1hbGl6ZWRWYWx1ZSIsImhhc1NjaGVtYVR5cGUiLCJpc1NjaGVtYUltbXV0YWJsZSIsImlzUGxhaW5PYmplY3QiLCJzY2hlbWFUeXBlIiwicHJvY2Vzc2VkU2NoZW1hcyIsIldlYWtTZXQiLCJoYXNPd24iLCJnZXRBcnJheVR5cGUiLCJKU09OU2NoZW1hNVBsdWdpbiIsIm1vZGVsRXhhbXBsZSIsIkpTT05TY2hlbWFDb21wb25lbnRzIiwic2hhbGxvd0FycmF5RXF1YWxzIiwiQ2FjaGUiLCJmb3VuZEtleSIsImZpbmRJbmRleCIsIm1lbW9pemVOIiwicmVzb2x2ZXIiLCJPcmlnaW5hbENhY2hlIiwibWVtb2l6ZWQiLCJwcmltaXRpdmVzIiwiZ2VuZXJhdGVTdHJpbmdGcm9tUmVnZXgiLCJwYXR0ZXJuU2FuaXRpemVyIiwic2FmZVBhdHRlcm4iLCJyYW5kZXhwSW5zdGFuY2UiLCJSYW5kRXhwIiwic3RyaW5nX2VtYWlsIiwic3RyaW5nX2RhdGUtdGltZSIsInRvSVNPU3RyaW5nIiwic3RyaW5nX2RhdGUiLCJzdHJpbmdfdGltZSIsInN0cmluZ191dWlkIiwic3RyaW5nX2hvc3RuYW1lIiwic3RyaW5nX2lwdjQiLCJzdHJpbmdfaXB2NiIsIm51bWJlciIsIm51bWJlcl9mbG9hdCIsImludGVnZXIiLCJkZWZhdWx0IiwicHJpbWl0aXZlIiwic2FuaXRpemVSZWYiLCJvYmplY3RDb250cmFjdHMiLCJhcnJheUNvbnRyYWN0cyIsIm51bWJlckNvbnRyYWN0cyIsInN0cmluZ0NvbnRyYWN0cyIsIm1lcmdlSnNvblNjaGVtYSIsImNvbmZpZyIsIm1lcmdlZCIsInNldElmTm90RGVmaW5lZEluVGFyZ2V0IiwicHJvcE5hbWUiLCJyZWFkT25seSIsIndyaXRlT25seSIsInNhbXBsZUZyb21TY2hlbWFHZW5lcmljIiwiZXhhbXBsZU92ZXJyaWRlIiwicmVzcGVjdFhNTCIsInVzZVBsYWluVmFsdWUiLCJoYXNPbmVPZiIsImhhc0FueU9mIiwic2NoZW1hVG9BZGQiLCJfYXR0ciIsInByZWZpeCIsInNjaGVtYUhhc0FueSIsImVudW0iLCJoYW5kbGVNaW5NYXhJdGVtcyIsInNhbXBsZUFycmF5IiwiYWRkUHJvcGVydHlUb1Jlc3VsdCIsInByb3BlcnR5QWRkZWRDb3VudGVyIiwiaGFzRXhjZWVkZWRNYXhQcm9wZXJ0aWVzIiwibWF4UHJvcGVydGllcyIsImNhbkFkZFByb3BlcnR5IiwiaXNPcHRpb25hbFByb3BlcnR5IiwicmVxdWlyZWRQcm9wZXJ0aWVzVG9BZGQiLCJhZGRlZENvdW50IiwieCIsIm92ZXJyaWRlRSIsImF0dHJpYnV0ZSIsImVudW1BdHRyVmFsIiwiYXR0ckV4YW1wbGUiLCJhdHRyRGVmYXVsdCIsImRpc2NyaW1pbmF0b3IiLCJtYXBwaW5nIiwicHJvcGVydHlOYW1lIiwic2FtcGxlIiwiaXRlbVNjaGVtYSIsIml0ZW1TYW1wbGVzIiwicyIsIndyYXBwZWQiLCJhZGRpdGlvbmFsUHJvcCIsImFkZGl0aW9uYWxQcm9wMSIsImFkZGl0aW9uYWxQcm9wcyIsImFkZGl0aW9uYWxQcm9wU2FtcGxlIiwidG9HZW5lcmF0ZUNvdW50IiwibWluUHJvcGVydGllcyIsInRlbXAiLCJleGNsdXNpdmVNaW5pbXVtIiwiZXhjbHVzaXZlTWF4aW11bSIsImluZmVyU2NoZW1hIiwiY3JlYXRlWE1MRXhhbXBsZSIsImpzb24iLCJYTUwiLCJkZWNsYXJhdGlvbiIsImluZGVudCIsInNhbXBsZUZyb21TY2hlbWEiLCJhcmcxIiwiYXJnMiIsImFyZzMiLCJtZW1vaXplZENyZWF0ZVhNTEV4YW1wbGUiLCJtZW1vaXplZFNhbXBsZUZyb21TY2hlbWEiLCJzaG91bGRTdHJpbmdpZnlUeXBlc0NvbmZpZyIsIndoZW4iLCJzaG91bGRTdHJpbmdpZnlUeXBlcyIsImRlZmF1bHRTdHJpbmdpZnlUeXBlcyIsImNvbnRlbnRUeXBlIiwicmVzVHlwZSIsInR5cGVzVG9TdHJpbmdpZnkiLCJuZXh0Q29uZmlnIiwianNvbkV4YW1wbGUiLCJnZXRKc29uU2FtcGxlU2NoZW1hIiwieWFtbFN0cmluZyIsImxpbmVXaWR0aCIsIkpTT05fU0NIRU1BIiwiZ2V0WG1sU2FtcGxlU2NoZW1hIiwiZ2V0WWFtbFNhbXBsZVNjaGVtYSIsIkpTT05TY2hlbWE1U2FtcGxlc1BsdWdpbiIsIm1ha2VHZXRKc29uU2FtcGxlU2NoZW1hIiwibWFrZUdldFlhbWxTYW1wbGVTY2hlbWEiLCJtYWtlR2V0WG1sU2FtcGxlU2NoZW1hIiwibWFrZUdldFNhbXBsZVNjaGVtYSIsImpzb25TY2hlbWE1IiwiT1BFUkFUSU9OX01FVEhPRFMiLCJzcGVjU3RyIiwic3BlY1NvdXJjZSIsInNwZWNKUyIsInNwZWNSZXNvbHZlZCIsIm1lcmdlckZuIiwib2xkVmFsIiwibmV3VmFsIiwiT3JkZXJlZE1hcCIsIm1lcmdlV2l0aCIsInNwZWNKc29uV2l0aFJlc29sdmVkU3VidHJlZXMiLCJyZXR1cm5TZWxmT3JOZXdNYXAiLCJleHRlcm5hbERvY3MiLCJ2ZXJzaW9uIiwic2VtdmVyIiwiZXhlYyIsInBhdGhzIiwidmFsaWRPcGVyYXRpb25NZXRob2RzIiwiY29uc3RhbnQiLCJvcGVyYXRpb25zIiwicGF0aE5hbWUiLCJjb25zdW1lcyIsInByb2R1Y2VzIiwicmVzb2x2ZWRSZXMiLCJ1bnJlc29sdmVkUmVzIiwiYmFzZVBhdGgiLCJob3N0Iiwib3BlcmF0aW9uc1dpdGhSb290SW5oZXJpdGVkIiwib3BzIiwib3AiLCJ0YWdzIiwidGFnRGV0YWlscyIsIm9wZXJhdGlvbnNXaXRoVGFncyIsInRhZ2dlZE1hcCIsImFyIiwidGFnQSIsInRhZ0IiLCJzb3J0Rm4iLCJzb3J0IiwicmVzcG9uc2VzIiwicmVxdWVzdHMiLCJtdXRhdGVkUmVxdWVzdHMiLCJyZXNwb25zZUZvciIsInJlcXVlc3RGb3IiLCJtdXRhdGVkUmVxdWVzdEZvciIsImFsbG93VHJ5SXRPdXRGb3IiLCJwYXJhbWV0ZXJXaXRoTWV0YUJ5SWRlbnRpdHkiLCJwYXRoTWV0aG9kIiwib3BQYXJhbXMiLCJtZXRhUGFyYW1zIiwiY3VycmVudFBhcmFtIiwiaW5OYW1lS2V5ZWRNZXRhIiwiaGFzaEtleWVkTWV0YSIsImN1cnIiLCJwYXJhbWV0ZXJJbmNsdXNpb25TZXR0aW5nRm9yIiwicGFyYW1LZXkiLCJwYXJhbWV0ZXJXaXRoTWV0YSIsIm9wZXJhdGlvbldpdGhNZXRhIiwibWVyZ2VkUGFyYW1zIiwiZ2V0UGFyYW1ldGVyIiwiaW5UeXBlIiwiaGFzSG9zdCIsInBhcmFtZXRlclZhbHVlcyIsImlzWG1sIiwicGFyYW1ldGVyc0luY2x1ZGVJbiIsInBhcmFtZXRlcnMiLCJpblZhbHVlIiwicGFyYW1ldGVyc0luY2x1ZGVUeXBlIiwidHlwZVZhbHVlIiwiY29udGVudFR5cGVWYWx1ZXMiLCJwcm9kdWNlc1ZhbHVlIiwiY3VycmVudFByb2R1Y2VzRm9yIiwicmVxdWVzdENvbnRlbnRUeXBlIiwicmVzcG9uc2VDb250ZW50VHlwZSIsImN1cnJlbnRQcm9kdWNlc1ZhbHVlIiwiZmlyc3RQcm9kdWNlc0FycmF5SXRlbSIsInByb2R1Y2VzT3B0aW9uc0ZvciIsIm9wZXJhdGlvblByb2R1Y2VzIiwicGF0aEl0ZW1Qcm9kdWNlcyIsImdsb2JhbFByb2R1Y2VzIiwiY29uc3VtZXNPcHRpb25zRm9yIiwib3BlcmF0aW9uQ29uc3VtZXMiLCJwYXRoSXRlbUNvbnN1bWVzIiwiZ2xvYmFsQ29uc3VtZXMiLCJtYXRjaFJlc3VsdCIsInVybFNjaGVtZSIsImNhbkV4ZWN1dGVTY2hlbWUiLCJ2YWxpZGF0aW9uRXJyb3JzIiwiZ2V0RXJyb3JzV2l0aFBhdGhzIiwiZ2V0TmVzdGVkRXJyb3JzV2l0aFBhdGhzIiwiY3VyclBhdGgiLCJmb3JtYXRFcnJvciIsInZhbGlkYXRlQmVmb3JlRXhlY3V0ZSIsImdldE9BUzNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGUiLCJyZXF1aXJlZE9iaiIsInJlcXVlc3RCb2R5IiwiaXNNZWRpYVR5cGVTY2hlbWFQcm9wZXJ0aWVzRXF1YWwiLCJjdXJyZW50TWVkaWFUeXBlIiwidGFyZ2V0TWVkaWFUeXBlIiwicmVxdWVzdEJvZHlDb250ZW50IiwiY3VycmVudE1lZGlhVHlwZVNjaGVtYVByb3BlcnRpZXMiLCJ0YXJnZXRNZWRpYVR5cGVTY2hlbWFQcm9wZXJ0aWVzIiwiVVBEQVRFX1NQRUMiLCJVUERBVEVfVVJMIiwiVVBEQVRFX0pTT04iLCJVUERBVEVfUEFSQU0iLCJVUERBVEVfRU1QVFlfUEFSQU1fSU5DTFVTSU9OIiwiVkFMSURBVEVfUEFSQU1TIiwiU0VUX1JFU1BPTlNFIiwiU0VUX1JFUVVFU1QiLCJTRVRfTVVUQVRFRF9SRVFVRVNUIiwiTE9HX1JFUVVFU1QiLCJDTEVBUl9SRVNQT05TRSIsIkNMRUFSX1JFUVVFU1QiLCJDTEVBUl9WQUxJREFURV9QQVJBTVMiLCJVUERBVEVfT1BFUkFUSU9OX01FVEFfVkFMVUUiLCJVUERBVEVfUkVTT0xWRUQiLCJVUERBVEVfUkVTT0xWRURfU1VCVFJFRSIsIlNFVF9TQ0hFTUUiLCJ0b1N0ciIsImlzU3RyaW5nIiwiY2xlYW5TcGVjIiwidXBkYXRlUmVzb2x2ZWQiLCJwYXJzZVRvSnNvbiIsInJlYXNvbiIsIm1hcmsiLCJoYXNXYXJuZWRBYm91dFJlc29sdmVTcGVjRGVwcmVjYXRpb24iLCJyZXNvbHZlU3BlYyIsInJlc29sdmUiLCJBU1QiLCJtb2RlbFByb3BlcnR5TWFjcm8iLCJwYXJhbWV0ZXJNYWNybyIsImdldExpbmVOdW1iZXJGb3JQYXRoIiwiYmFzZURvYyIsImJhc2VVUkkiLCJwcmVwYXJlZEVycm9ycyIsInJlcXVlc3RCYXRjaCIsImRlYlJlc29sdmVTdWJ0cmVlcyIsImRlYm91bmNlIiwic3lzdGVtUGFydGl0aW9uZWRCYXRjaGVzIiwiYXN5bmMiLCJzeXN0ZW1SZXF1ZXN0QmF0Y2giLCJyZXNvbHZlU3VidHJlZSIsImVyclNlbGVjdG9ycyIsImJhdGNoUmVzdWx0IiwicHJldiIsInJlc3VsdE1hcCIsInNwZWNXaXRoQ3VycmVudFN1YnRyZWVzIiwiUHJvbWlzZSIsIm9pZGNTY2hlbWUiLCJvcGVuSWRDb25uZWN0VXJsIiwib3BlbklkQ29ubmVjdERhdGEiLCJhc3NvY1BhdGgiLCJJbW11dGFibGVNYXAiLCJ1cGRhdGVSZXNvbHZlZFN1YnRyZWUiLCJiYXRjaGVkUGF0aCIsImJhdGNoZWRTeXN0ZW0iLCJjaGFuZ2VQYXJhbSIsImNoYW5nZVBhcmFtQnlJZGVudGl0eSIsImludmFsaWRhdGVSZXNvbHZlZFN1YnRyZWVDYWNoZSIsInZhbGlkYXRlUGFyYW1zIiwidXBkYXRlRW1wdHlQYXJhbUluY2x1c2lvbiIsImluY2x1ZGVFbXB0eVZhbHVlIiwiY2xlYXJWYWxpZGF0ZVBhcmFtcyIsImNoYW5nZUNvbnN1bWVzVmFsdWUiLCJjaGFuZ2VQcm9kdWNlc1ZhbHVlIiwic2V0UmVzcG9uc2UiLCJzZXRSZXF1ZXN0Iiwic2V0TXV0YXRlZFJlcXVlc3QiLCJsb2dSZXF1ZXN0IiwiZXhlY3V0ZVJlcXVlc3QiLCJwYXJhbVZhbHVlIiwiY29udGV4dFVybCIsIm9wSWQiLCJzZXJ2ZXIiLCJuYW1lc3BhY2VWYXJpYWJsZXMiLCJzZXJ2ZXJWYXJpYWJsZXMiLCJnbG9iYWxWYXJpYWJsZXMiLCJyZXF1ZXN0Qm9keVZhbHVlIiwicmVxdWVzdEJvZHlJbmNsdXNpb25TZXR0aW5nIiwicGFyc2VkUmVxdWVzdCIsImJ1aWxkUmVxdWVzdCIsIm11dGF0ZWRSZXF1ZXN0IiwicGFyc2VkTXV0YXRlZFJlcXVlc3QiLCJzdGFydFRpbWUiLCJub3ciLCJkdXJhdGlvbiIsImNsZWFyUmVzcG9uc2UiLCJjbGVhclJlcXVlc3QiLCJ2YWx1ZUtleSIsInVwZGF0ZUluIiwicGFyYW1NZXRhIiwiaXNFbXB0eVZhbHVlSW5jbHVkZWQiLCJ2YWxpZGF0ZVBhcmFtIiwicGFyYW1SZXF1aXJlZCIsInBhcmFtRGV0YWlscyIsInN0YXR1c0NvZGUiLCJuZXdTdGF0ZSIsIkJsb2IiLCJvcGVyYXRpb25QYXRoIiwibWV0YVBhdGgiLCJkZWxldGVJbiIsInBhdGhJdGVtcyIsIlNwZWNQbHVnaW4iLCJ3aXRoQ3JlZGVudGlhbHMiLCJtYWtlSHR0cCIsIkh0dHAiLCJwcmVGZXRjaCIsInBvc3RGZXRjaCIsIm1ha2VSZXNvbHZlIiwic3RyYXRlZ2llcyIsIm9wZW5BcGkzMUFwaURPTVJlc29sdmVTdHJhdGVneSIsIm9wZW5BcGkzMFJlc29sdmVTdHJhdGVneSIsIm9wZW5BcGkyUmVzb2x2ZVN0cmF0ZWd5IiwiZ2VuZXJpY1Jlc29sdmVTdHJhdGVneSIsIm9wdGlvbnMiLCJmcmVzaENvbmZpZ3MiLCJkZWZhdWx0T3B0aW9ucyIsIm1ha2VSZXNvbHZlU3VidHJlZSIsInNlcmlhbGl6ZVJlcyIsIndpdGhTeXN0ZW0iLCJXcmFwcGVkQ29tcG9uZW50IiwiV2l0aFN5c3RlbSIsImdldERpc3BsYXlOYW1lIiwid2l0aFJvb3QiLCJyZWR1eFN0b3JlIiwiV2l0aFJvb3QiLCJQcm92aWRlciIsIndpdGhDb25uZWN0IiwiaWRlbnRpdHkiLCJjb25uZWN0IiwiY3VzdG9tTWFwU3RhdGVUb1Byb3BzIiwiaGFuZGxlUHJvcHMiLCJvbGRQcm9wcyIsIndpdGhNYXBwZWRDb250YWluZXIiLCJtZW1HZXRDb21wb25lbnQiLCJjb21wb25lbnROYW1lIiwiV2l0aE1hcHBlZENvbnRhaW5lciIsImNsZWFuUHJvcHMiLCJkb21Ob2RlIiwiQXBwIiwiY3JlYXRlUm9vdCIsIlJlYWN0RE9NIiwidmlld1BsdWdpbiIsIm1lbW9pemVGb3JHZXRDb21wb25lbnQiLCJtZW1NYWtlTWFwcGVkQ29udGFpbmVyIiwibWVtb2l6ZUZvcldpdGhNYXBwZWRDb250YWluZXIiLCJtYWtlTWFwcGVkQ29udGFpbmVyIiwiVmlld0xlZ2FjeVBsdWdpbiIsInJlYWN0TWFqb3JWZXJzaW9uIiwicGFyc2VJbnQiLCJkb3dubG9hZFVybFBsdWdpbiIsImRvd25sb2FkIiwiY2hlY2tQb3NzaWJsZUZhaWxSZWFzb25zIiwiY3JlYXRlRWxlbWVudCIsImxvYWRTcGVjIiwiY3JlZGVudGlhbHMiLCJBY2NlcHQiLCJlbnVtcyIsImxvYWRpbmdTdGF0dXMiLCJzcGVjX3VwZGF0ZV9sb2FkaW5nX3N0YXR1cyIsImh0dHAiLCJiYXNoIiwicG93ZXJzaGVsbCIsImphdmFzY3JpcHQiLCJzdHlsZXMiLCJhZ2F0ZSIsImFydGEiLCJtb25va2FpIiwibm9yZCIsIm9ic2lkaWFuIiwidG9tb3Jyb3dOaWdodCIsImlkZWEiLCJkZWZhdWx0U3R5bGUiLCJzeW50YXhIaWdobGlnaHRpbmciLCJ0aGVtZSIsInN5bnRheEhpZ2hsaWdodCIsIlJlYWN0U3ludGF4SGlnaGxpZ2h0ZXIiLCJmaWxlTmFtZSIsImRvd25sb2FkYWJsZSIsImNhbkNvcHkiLCJoYW5kbGVEb3dubG9hZCIsInNhdmVBcyIsIlN5bnRheEhpZ2hsaWdodGVyV3JhcHBlciIsIk9yaWdpbmFsIiwiY2FuU3ludGF4SGlnaGxpZ2h0IiwiYWN0aXZhdGVkIiwiU3ludGF4SGlnaGxpZ2h0aW5nUGx1Z2luMSIsIlN5bnRheEhpZ2hsaWdodGluZ1BsdWdpbjIiLCJTeW50YXhIaWdobGlnaHRpbmdQbHVnaW4iLCJHSVRfRElSVFkiLCJHSVRfQ09NTUlUIiwiUEFDS0FHRV9WRVJTSU9OIiwiQlVJTERfVElNRSIsImJ1aWxkSW5mbyIsInZlcnNpb25zIiwic3dhZ2dlclVJIiwiZ2l0UmV2aXNpb24iLCJnaXREaXJ0eSIsImJ1aWxkVGltZXN0YW1wIiwiVmVyc2lvbnNQbHVnaW4iLCJjb21wb25lbnREaWRDYXRjaCIsIndpdGhFcnJvckJvdW5kYXJ5IiwiRXJyb3JCb3VuZGFyeSIsInRhcmdldE5hbWUiLCJXaXRoRXJyb3JCb3VuZGFyeSIsImlzQ2xhc3NDb21wb25lbnQiLCJpc1JlYWN0Q29tcG9uZW50IiwiRmFsbGJhY2siLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJoYXNFcnJvciIsImVycm9ySW5mbyIsIkZhbGxiYWNrQ29tcG9uZW50Iiwic2FmZVJlbmRlclBsdWdpbiIsImNvbXBvbmVudExpc3QiLCJmdWxsT3ZlcnJpZGUiLCJtZXJnZWRDb21wb25lbnRMaXN0IiwiemlwT2JqZWN0Iiwid3JhcEZhY3RvcnkiLCJnZXRMYXlvdXQiLCJsYXlvdXROYW1lIiwiTGF5b3V0IiwiQXV0aG9yaXphdGlvblBvcHVwIiwiQXV0aHMiLCJBdXRob3JpemVCdG4iLCJzaG93UG9wdXAiLCJBdXRob3JpemVCdG5Db250YWluZXIiLCJhdXRob3JpemFibGVEZWZpbml0aW9ucyIsIkF1dGhvcml6ZU9wZXJhdGlvbkJ0biIsInN0b3BQcm9wYWdhdGlvbiIsIm9uQXV0aENoYW5nZSIsInN1Ym1pdEF1dGgiLCJsb2dvdXRDbGljayIsImF1dGhzIiwiQXV0aEl0ZW0iLCJPYXV0aDIiLCJhdXRob3JpemVkQXV0aCIsIm5vbk9hdXRoRGVmaW5pdGlvbnMiLCJvYXV0aERlZmluaXRpb25zIiwib25TdWJtaXQiLCJBcGlLZXlBdXRoIiwiQmFzaWNBdXRoIiwiYXV0aEVsIiwiQXV0aEVycm9yIiwiZ2V0VmFsdWUiLCJSb3ciLCJDb2wiLCJhdXRvRm9jdXMiLCJhdXRvQ29tcGxldGUiLCJFeGFtcGxlIiwic2hvd1ZhbHVlIiwiRXhhbXBsZXNTZWxlY3QiLCJleGFtcGxlcyIsIm9uU2VsZWN0IiwiY3VycmVudEV4YW1wbGVLZXkiLCJzaG93TGFiZWxzIiwiX29uU2VsZWN0IiwiaXNTeW50aGV0aWNDaGFuZ2UiLCJfb25Eb21TZWxlY3QiLCJzZWxlY3RlZE9wdGlvbnMiLCJnZXRDdXJyZW50RXhhbXBsZSIsImN1cnJlbnRFeGFtcGxlUGVyUHJvcHMiLCJmaXJzdEV4YW1wbGVzS2V5IiwiZmlyc3RFeGFtcGxlIiwiZmlyc3RFeGFtcGxlS2V5Iiwia2V5T2YiLCJpc1ZhbHVlTW9kaWZpZWQiLCJpc01vZGlmaWVkVmFsdWVBdmFpbGFibGUiLCJleGFtcGxlTmFtZSIsInN0cmluZ2lmeVVubGVzc0xpc3QiLCJFeGFtcGxlc1NlbGVjdFZhbHVlUmV0YWluZXIiLCJ1c2VySGFzRWRpdGVkQm9keSIsImN1cnJlbnROYW1lc3BhY2UiLCJzZXRSZXRhaW5SZXF1ZXN0Qm9keVZhbHVlRmxhZyIsInVwZGF0ZVZhbHVlIiwidmFsdWVGcm9tRXhhbXBsZSIsIl9nZXRDdXJyZW50RXhhbXBsZVZhbHVlIiwibGFzdFVzZXJFZGl0ZWRWYWx1ZSIsImN1cnJlbnRVc2VySW5wdXRWYWx1ZSIsImxhc3REb3duc3RyZWFtVmFsdWUiLCJpc01vZGlmaWVkVmFsdWVTZWxlY3RlZCIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiX2dldFN0YXRlRm9yQ3VycmVudE5hbWVzcGFjZSIsIl9zZXRTdGF0ZUZvckN1cnJlbnROYW1lc3BhY2UiLCJfc2V0U3RhdGVGb3JOYW1lc3BhY2UiLCJuZXdTdGF0ZUZvck5hbWVzcGFjZSIsIl9pc0N1cnJlbnRVc2VySW5wdXRTYW1lQXNFeGFtcGxlVmFsdWUiLCJfZ2V0VmFsdWVGb3JFeGFtcGxlIiwiZXhhbXBsZUtleSIsImN1cnJlbnRLZXkiLCJfb25FeGFtcGxlc1NlbGVjdCIsIm90aGVyQXJncyIsInZhbHVlRnJvbUN1cnJlbnRFeGFtcGxlIiwiZXhhbXBsZXNNYXRjaGluZ05ld1ZhbHVlIiwiYXV0aENvbmZpZ3MiLCJjdXJyZW50U2VydmVyIiwib2F1dGgyUmVkaXJlY3RVcmwiLCJzY29wZXNBcnJheSIsInNjb3BlU2VwYXJhdG9yIiwicmVhbG0iLCJ1c2VQa2NlV2l0aEF1dGhvcml6YXRpb25Db2RlR3JhbnQiLCJnZW5lcmF0ZUNvZGVWZXJpZmllciIsImNvZGVDaGFsbGVuZ2UiLCJjcmVhdGVDb2RlQ2hhbGxlbmdlIiwic2hhSnMiLCJkaWdlc3QiLCJhdXRob3JpemF0aW9uVXJsIiwic2FuaXRpemVkQXV0aG9yaXphdGlvblVybCIsImNhbGxiYWNrIiwidXNlQmFzaWNBdXRoZW50aWNhdGlvbldpdGhBY2Nlc3NDb2RlR3JhbnQiLCJlcnJDYiIsImFwcE5hbWUiLCJvYXV0aDJBdXRob3JpemUiLCJvblNjb3BlQ2hhbmdlIiwiY2hlY2tlZCIsIm5ld1Njb3BlcyIsIm9uSW5wdXRDaGFuZ2UiLCJzZWxlY3RTY29wZXMiLCJJbml0aWFsaXplZElucHV0Iiwib2lkY1VybCIsIkFVVEhfRkxPV19JTVBMSUNJVCIsIkFVVEhfRkxPV19QQVNTV09SRCIsIkFVVEhfRkxPV19BQ0NFU1NfQ09ERSIsIkFVVEhfRkxPV19BUFBMSUNBVElPTiIsImlzUGtjZUNvZGVHcmFudCIsImZsb3dUb0Rpc3BsYXkiLCJ0YWJsZXQiLCJkZXNrdG9wIiwiaW5pdGlhbFZhbHVlIiwiQ2xlYXIiLCJIZWFkZXJzIiwiRHVyYXRpb24iLCJMaXZlUmVzcG9uc2UiLCJzaG91bGRDb21wb25lbnRVcGRhdGUiLCJkaXNwbGF5UmVxdWVzdER1cmF0aW9uIiwic2hvd011dGF0ZWRSZXF1ZXN0IiwicmVxdWVzdFNuaXBwZXRzRW5hYmxlZCIsImN1cmxSZXF1ZXN0Iiwibm90RG9jdW1lbnRlZCIsImlzRXJyb3IiLCJoZWFkZXJzS2V5cyIsIlJlc3BvbnNlQm9keSIsInJldHVybk9iamVjdCIsImpvaW5lZEhlYWRlcnMiLCJoYXNIZWFkZXJzIiwiQ3VybCIsIk9ubGluZVZhbGlkYXRvckJhZGdlIiwidmFsaWRhdG9yVXJsIiwiZ2V0RGVmaW5pdGlvblVybCIsInNhbml0aXplZFZhbGlkYXRvclVybCIsInJlbCIsIlZhbGlkYXRvckltYWdlIiwiYWx0IiwiaW1nIiwiSW1hZ2UiLCJvbmxvYWQiLCJvbmVycm9yIiwiT3BlcmF0aW9ucyIsInJlbmRlck9wZXJhdGlvblRhZyIsIk9wZXJhdGlvbkNvbnRhaW5lciIsIkRlZXBMaW5rIiwidGFnRXh0ZXJuYWxEb2NzVXJsIiwidGFnRGVzY3JpcHRpb24iLCJ0YWdFeHRlcm5hbERvY3NEZXNjcmlwdGlvbiIsInJhd1RhZ0V4dGVybmFsRG9jc1VybCIsInNob3dUYWciLCJlbmFibGVkIiwiT3BlcmF0aW9uIiwic3VtbWFyeSIsInRvZ2dsZVNob3duIiwib25UcnlvdXRDbGljayIsIm9uUmVzZXRDbGljayIsIm9uQ2FuY2VsQ2xpY2siLCJvbkV4ZWN1dGUiLCJvYXMzQWN0aW9ucyIsIm9wZXJhdGlvblByb3BzIiwiYWxsb3dUcnlJdE91dCIsInRyeUl0T3V0RW5hYmxlZCIsImV4ZWN1dGVJblByb2dyZXNzIiwiZ2V0TGlzdCIsIml0ZXJhYmxlIiwiUmVzcG9uc2VzIiwiUGFyYW1ldGVycyIsIkV4ZWN1dGUiLCJPcGVyYXRpb25TZXJ2ZXJzIiwiT3BlcmF0aW9uRXh0IiwiT3BlcmF0aW9uU3VtbWFyeSIsIm9uQ2hhbmdlS2V5Iiwib3BlcmF0aW9uU2VydmVycyIsInBhdGhTZXJ2ZXJzIiwiZ2V0U2VsZWN0ZWRTZXJ2ZXIiLCJzZXRTZWxlY3RlZFNlcnZlciIsInNldFNlcnZlclZhcmlhYmxlVmFsdWUiLCJnZXRTZXJ2ZXJWYXJpYWJsZSIsInNlcnZlclZhcmlhYmxlVmFsdWUiLCJnZXRFZmZlY3RpdmVTZXJ2ZXJWYWx1ZSIsInRyeUl0T3V0UmVzcG9uc2UiLCJkaXNwbGF5T3BlcmF0aW9uSWQiLCJuZXh0U3RhdGUiLCJzdXBwb3J0ZWRTdWJtaXRNZXRob2RzIiwiaXNEZWVwTGlua2luZ0VuYWJsZWQiLCJqdW1wVG9LZXkiLCJyZXNvbHZlZFN1YnRyZWUiLCJnZXRSZXNvbHZlZFN1YnRyZWUiLCJkZWZhdWx0UmVxdWVzdEJvZHlWYWx1ZSIsInNlbGVjdERlZmF1bHRSZXF1ZXN0Qm9keVZhbHVlIiwic2V0UmVxdWVzdEJvZHlWYWx1ZSIsInVucmVzb2x2ZWRPcCIsIm9yaWdpbmFsT3BlcmF0aW9uSWQiLCJyZXNvbHZlZFN1bW1hcnkiLCJPcGVyYXRpb25TdW1tYXJ5TWV0aG9kIiwiT3BlcmF0aW9uU3VtbWFyeVBhdGgiLCJDb3B5VG9DbGlwYm9hcmRCdG4iLCJoYXNTZWN1cml0eSIsInNlY3VyaXR5SXNPcHRpb25hbCIsImFsbG93QW5vbnltb3VzIiwidGV4dFRvQ29weSIsImFwcGxpY2FibGVEZWZpbml0aW9ucyIsInBhdGhQYXJ0cyIsInNwbGljZSIsIk9wZXJhdGlvbkV4dFJvdyIsInhLZXkiLCJ4VmFsIiwieE5vcm1hbGl6ZWRWYWx1ZSIsImNyZWF0ZUh0bWxSZWFkeUlkIiwicmVwbGFjZW1lbnQiLCJvbkNoYW5nZVByb2R1Y2VzV3JhcHBlciIsIm9uUmVzcG9uc2VDb250ZW50VHlwZUNoYW5nZSIsImNvbnRyb2xzQWNjZXB0SGVhZGVyIiwic2V0UmVzcG9uc2VDb250ZW50VHlwZSIsImRlZmF1bHRDb2RlIiwiZGVmYXVsdFN0YXR1c0NvZGUiLCJjb2RlcyIsIkNvbnRlbnRUeXBlIiwiUmVzcG9uc2UiLCJhY2NlcHRDb250cm9sbGluZ1Jlc3BvbnNlIiwiZ2V0QWNjZXB0Q29udHJvbGxpbmdSZXNwb25zZSIsImlzT3JkZXJlZE1hcCIsInN1aXRhYmxlMnh4UmVzcG9uc2UiLCJkZWZhdWx0UmVzcG9uc2UiLCJzdWl0YWJsZURlZmF1bHRSZXNwb25zZSIsInJlZ2lvbklkIiwiY29udHJvbElkIiwiYXJpYUNvbnRyb2xzIiwiYXJpYUxhYmVsIiwiY29udGVudFR5cGVzIiwiaXNEZWZhdWx0Iiwib25Db250ZW50VHlwZUNoYW5nZSIsImFjdGl2ZUV4YW1wbGVzS2V5IiwiYWN0aXZlRXhhbXBsZXNNZW1iZXIiLCJnZXRLbm93blN5bnRheEhpZ2hsaWdodGVyTGFuZ3VhZ2UiLCJjYW5Kc29uUGFyc2UiLCJfb25Db250ZW50VHlwZUNoYW5nZSIsImdldFRhcmdldEV4YW1wbGVzS2V5IiwiYWN0aXZlQ29udGVudFR5cGUiLCJsaW5rcyIsIlJlc3BvbnNlRXh0ZW5zaW9uIiwiT3BlcmF0aW9uTGluayIsInNwZWNQYXRoV2l0aFBvc3NpYmxlU2NoZW1hIiwiYWN0aXZlTWVkaWFUeXBlIiwiZXhhbXBsZXNGb3JNZWRpYVR5cGUiLCJvYXMzU2NoZW1hRm9yQ29udGVudFR5cGUiLCJtZWRpYVR5cGVFeGFtcGxlIiwic2FtcGxlU2NoZW1hIiwic2hvdWxkT3ZlcnJpZGVTY2hlbWFFeGFtcGxlIiwic2FtcGxlR2VuQ29uZmlnIiwidGFyZ2V0RXhhbXBsZXNLZXkiLCJnZXRNZWRpYVR5cGVFeGFtcGxlIiwidGFyZ2V0RXhhbXBsZSIsIm9sZE9BU01lZGlhVHlwZUV4YW1wbGUiLCJnZXRFeGFtcGxlQ29tcG9uZW50Iiwic2FtcGxlUmVzcG9uc2UiLCJTZXEiLCJzZXRBY3RpdmVFeGFtcGxlc01lbWJlciIsImNvbnRleHRUeXBlIiwiY29udGV4dE5hbWUiLCJvbWl0VmFsdWUiLCJ0b1NlcSIsImxpbmsiLCJwYXJzZWRDb250ZW50IiwidXBkYXRlUGFyc2VkQ29udGVudCIsInByZXZDb250ZW50IiwicmVhZGVyIiwiRmlsZVJlYWRlciIsInJlYWRBc1RleHQiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJkb3dubG9hZE5hbWUiLCJnZXRUaW1lIiwiYm9keUVsIiwiYmxvYiIsImNyZWF0ZU9iamVjdFVSTCIsInN1YnN0ciIsImxhc3RJbmRleE9mIiwiZGlzcG9zaXRpb24iLCJyZXNwb25zZUZpbGVuYW1lIiwiZXh0cmFjdEZpbGVOYW1lRnJvbUNvbnRlbnREaXNwb3NpdGlvbkhlYWRlciIsInJlZ2V4IiwibmF2aWdhdG9yIiwibXNTYXZlT3JPcGVuQmxvYiIsImZvcm1hdFhtbCIsInRleHROb2Rlc09uU2FtZUxpbmUiLCJpbmRlbnRvciIsInRvTG93ZXIiLCJjb250cm9scyIsImNhbGxiYWNrVmlzaWJsZSIsInBhcmFtZXRlcnNWaXNpYmxlIiwib25DaGFuZ2VDb25zdW1lc1dyYXBwZXIiLCJ0b2dnbGVUYWIiLCJvbkNoYW5nZU1lZGlhVHlwZSIsImhhc1VzZXJFZGl0ZWRCb2R5Iiwic2hvdWxkUmV0YWluUmVxdWVzdEJvZHlWYWx1ZSIsInNldFJlcXVlc3RDb250ZW50VHlwZSIsImluaXRSZXF1ZXN0Qm9keVZhbGlkYXRlRXJyb3IiLCJQYXJhbWV0ZXJSb3ciLCJUcnlJdE91dEJ1dHRvbiIsIkNhbGxiYWNrcyIsIlJlcXVlc3RCb2R5IiwiZ3JvdXBlZFBhcmFtZXRlcnNBcnIiLCJyYXdQYXJhbSIsIm9uQ2hhbmdlQ29uc3VtZXMiLCJjYWxsYmFja3MiLCJmIiwicmVxdWVzdEJvZHlFcnJvcnMiLCJ1cGRhdGVBY3RpdmVFeGFtcGxlc0tleSIsImxhc3RWYWx1ZSIsInVzYWJsZVZhbHVlIiwib25DaGFuZ2VJbmNsdWRlRW1wdHkiLCJzZXRSZXF1ZXN0Qm9keUluY2x1c2lvbiIsIlBhcmFtZXRlckV4dCIsIlBhcmFtZXRlckluY2x1ZGVFbXB0eURlZmF1bHRQcm9wcyIsImlzSW5jbHVkZWRPcHRpb25zIiwiUGFyYW1ldGVySW5jbHVkZUVtcHR5Iiwic2hvdWxkRGlzcGF0Y2hJbml0IiwiZGVmYXVsdFZhbHVlIiwib25DaGVja2JveENoYW5nZSIsImlzSW5jbHVkZWQiLCJzZXREZWZhdWx0VmFsdWUiLCJvbkNoYW5nZVdyYXBwZXIiLCJudW1iZXJUb1N0cmluZyIsInZhbHVlRm9yVXBzdHJlYW0iLCJfb25FeGFtcGxlU2VsZWN0IiwiZ2V0UGFyYW1LZXkiLCJwYXJhbVdpdGhNZXRhIiwicGFyYW1ldGVyTWVkaWFUeXBlIiwiZ2VuZXJhdGVkU2FtcGxlVmFsdWUiLCJpc1N3YWdnZXIyIiwiY29tcG9zZUpzb25TY2hlbWEiLCJzY2hlbWFPYmplY3RUeXBlIiwic2hvd0NvbW1vbkV4dGVuc2lvbnMiLCJQYXJhbUJvZHkiLCJib2R5UGFyYW0iLCJjb25zdW1lc1ZhbHVlIiwiaXNGb3JtRGF0YSIsImlzRm9ybURhdGFTdXBwb3J0ZWQiLCJzY2hlbWFPYmplY3RUeXBlTGFiZWwiLCJpc0FycmF5T2ZPYmplY3RzIiwicGFyYW1JdGVtcyIsInBhcmFtRW51bSIsInBhcmFtRGVmYXVsdFZhbHVlIiwicGFyYW1FeGFtcGxlIiwiY29tbW9uRXh0IiwiaXNEaXNwbGF5UGFyYW1FbnVtIiwianNvblNjaGVtYUZvcm0iLCJkZWZhdWx0VG9GaXJzdEV4YW1wbGUiLCJoYW5kbGVWYWxpZGF0ZVBhcmFtZXRlcnMiLCJoYW5kbGVWYWxpZGF0ZVJlcXVlc3RCb2R5IiwibWlzc2luZ0JvZHlWYWx1ZSIsIm1pc3NpbmdSZXF1aXJlZEtleXMiLCJjbGVhclJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvciIsIm9hczNSZXF1aXJlZFJlcXVlc3RCb2R5Q29udGVudFR5cGUiLCJvYXMzUmVxdWVzdEJvZHlWYWx1ZSIsIm9hczNWYWxpZGF0ZUJlZm9yZUV4ZWN1dGVTdWNjZXNzIiwib2FzM1JlcXVlc3RDb250ZW50VHlwZSIsInNldFJlcXVlc3RCb2R5VmFsaWRhdGVFcnJvciIsInZhbGlkYXRlU2hhbGxvd1JlcXVpcmVkIiwibWlzc2luZ0tleSIsImhhbmRsZVZhbGlkYXRpb25SZXN1bHRQYXNzIiwiaGFuZGxlVmFsaWRhdGlvblJlc3VsdEZhaWwiLCJoYW5kbGVWYWxpZGF0aW9uUmVzdWx0IiwiaXNQYXNzIiwicGFyYW1zUmVzdWx0IiwicmVxdWVzdEJvZHlSZXN1bHQiLCJzY2hlbWFFeGFtcGxlIiwiRXJyb3JzIiwiZWRpdG9yQWN0aW9ucyIsImp1bXBUb0xpbmUiLCJhbGxFcnJvcnNUb0Rpc3BsYXkiLCJpc1Zpc2libGUiLCJzb3J0ZWRKU0Vycm9ycyIsInRvZ2dsZVZpc2liaWxpdHkiLCJhbmltYXRlZCIsIlRocm93bkVycm9ySXRlbSIsIlNwZWNFcnJvckl0ZW0iLCJlcnJvckxpbmUiLCJ0b1RpdGxlQ2FzZSIsImxvY2F0aW9uTWVzc2FnZSIsInhjbGFzcyIsIkNvbnRhaW5lciIsImZ1bGxzY3JlZW4iLCJmdWxsIiwiY29udGFpbmVyQ2xhc3MiLCJERVZJQ0VTIiwiaGlkZSIsImtlZXBDb250ZW50cyIsIm1vYmlsZSIsImxhcmdlIiwiY2xhc3Nlc0FyIiwiZGV2aWNlIiwiZGV2aWNlQ2xhc3MiLCJvcHRpb24iLCJzZWxlY3RlZCIsIk5vTWFyZ2luIiwicmVuZGVyTm90QW5pbWF0ZWQiLCJPdmVydmlldyIsInNldFRhZ1Nob3duIiwiX3NldFRhZ1Nob3duIiwic2hvd1RhZ0lkIiwic2hvd09wIiwidG9nZ2xlU2hvdyIsInNob3dPcElkUHJlZml4Iiwic2hvd09wSWQiLCJfb25DbGljayIsImlucHV0UmVmIiwiSW5mb0Jhc2VQYXRoIiwiSW5mb1VybCIsIkluZm8iLCJ0ZXJtc09mU2VydmljZVVybCIsImNvbnRhY3REYXRhIiwibGljZW5zZURhdGEiLCJWZXJzaW9uU3RhbXAiLCJPcGVuQVBJVmVyc2lvbiIsIkxpY2Vuc2UiLCJDb250YWN0Iiwib2FzVmVyc2lvbiIsImxpY2Vuc2UiLCJJbmZvQ29udGFpbmVyIiwiZW1haWwiLCJGb290ZXIiLCJGaWx0ZXJDb250YWluZXIiLCJvbkZpbHRlckNoYW5nZSIsImlzTG9hZGluZyIsImlzRmFpbGVkIiwiTk9PUCIsImlzRWRpdEJveCIsInVwZGF0ZVZhbHVlcyIsImlzSnNvbiIsIl9vbkNoYW5nZSIsInRvZ2dsZUlzRWRpdEJveCIsImRlZmF1bHRQcm9wIiwiY3VybCIsInNob3dSZXNldCIsIlZlcnNpb25QcmFnbWFGaWx0ZXIiLCJhbHNvU2hvdyIsImJ5cGFzcyIsIlN2Z0Fzc2V0cyIsInhtbG5zWGxpbmsiLCJEb21QdXJpZnkiLCJzZXRBdHRyaWJ1dGUiLCJ1c2VVbnNhZmVNYXJrZG93biIsIm1kIiwiUmVtYXJrYWJsZSIsImh0bWwiLCJ0eXBvZ3JhcGhlciIsImJyZWFrcyIsImxpbmtUYXJnZXQiLCJ1c2UiLCJsaW5raWZ5IiwiY29yZSIsInJ1bGVyIiwiZGlzYWJsZSIsInNhbml0aXplZCIsInNhbml0aXplciIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwiQUxMT1dfREFUQV9BVFRSIiwiRk9SQklEX0FUVFIiLCJoYXNXYXJuZWRBYm91dERlcHJlY2F0aW9uIiwiQUREX0FUVFIiLCJGT1JCSURfVEFHUyIsIkJhc2VMYXlvdXQiLCJXZWJob29rcyIsIlNlcnZlcnNDb250YWluZXIiLCJpc09BUzMxIiwiaXNTcGVjRW1wdHkiLCJsb2FkaW5nTWVzc2FnZSIsImxhc3RFcnIiLCJsYXN0RXJyTXNnIiwic2VydmVycyIsImhhc1NlcnZlcnMiLCJoYXNTY2hlbWVzIiwiaGFzU2VjdXJpdHlEZWZpbml0aW9ucyIsIkNvcmVDb21wb25lbnRzUGx1Z2luIiwiYXV0aG9yaXphdGlvblBvcHVwIiwiYXV0aG9yaXplQnRuIiwiYXV0aG9yaXplT3BlcmF0aW9uQnRuIiwiYXV0aEVycm9yIiwib2F1dGgyIiwiYXBpS2V5QXV0aCIsImJhc2ljQXV0aCIsImxpdmVSZXNwb25zZSIsIm9ubGluZVZhbGlkYXRvckJhZGdlIiwicmVzcG9uc2VCb2R5IiwicGFyYW1ldGVyUm93Iiwib3ZlcnZpZXciLCJmb290ZXIiLCJGb3JtQ29tcG9uZW50c1BsdWdpbiIsIkxheW91dFV0aWxzIiwiQmFzZVByZXNldCIsIkNvbmZpZ3NQbHVnaW4iLCJVdGlsUGx1Z2luIiwiTG9nc1BsdWdpbiIsIlZpZXdQbHVnaW4iLCJFcnJQbHVnaW4iLCJMYXlvdXRQbHVnaW4iLCJTd2FnZ2VyQ2xpZW50UGx1Z2luIiwiQXV0aFBsdWdpbiIsIkRvd25sb2FkVXJsUGx1Z2luIiwiRGVlcExpbmtpbmdQbHVnaW4iLCJGaWx0ZXJQbHVnaW4iLCJPbkNvbXBsZXRlUGx1Z2luIiwiUmVxdWVzdFNuaXBwZXRzUGx1Z2luIiwiU2FmZVJlbmRlclBsdWdpbiIsIm9ubHlPQVMzIiwiT0FTM051bGxTZWxlY3RvciIsInNjaGVtYU5hbWUiLCJmaW5kU2NoZW1hIiwic2NoZW1hcyIsImhhc0luIiwicmVzb2x2ZWRTY2hlbWVzIiwiZGVmTmFtZSIsImZsb3dLZXkiLCJmbG93VmFsIiwidHJhbnNsYXRlZERlZiIsInRva2VuVXJsIiwib2lkY0RhdGEiLCJncmFudCIsInRyYW5zbGF0ZWRTY29wZXMiLCJjdXIiLCJPQVMzQ29tcG9uZW50V3JhcEZhY3RvcnkiLCJzd2FnZ2VyVmVyc2lvbiIsImlzU3dhZ2dlcjJIZWxwZXIiLCJpc09BUzMwIiwiaXNPQVMzMEhlbHBlciIsInNlbGVjdGVkVmFsdWUiLCJyZXNvbHZlZFNjaGVtYSIsInVucmVzb2x2ZWRTY2hlbWEiLCJjYWxsYmFja3NPcGVyYXRpb25zIiwiYWxsT3BlcmF0aW9ucyIsImNhbGxiYWNrTmFtZSIsImNhbGxiYWNrT3BlcmF0aW9ucyIsImNhbGxiYWNrT3BzIiwicGF0aEl0ZW0iLCJleHByZXNzaW9uIiwicGF0aEl0ZW1PcGVyYXRpb25zIiwiZ3JvdXBCeSIsIm9wZXJhdGlvbkRUTyIsIm9wZXJhdGlvbkRUT3MiLCJjYWxsYmFja05hbWVzIiwiZ2V0RGVmYXVsdFJlcXVlc3RCb2R5VmFsdWUiLCJtZWRpYVR5cGUiLCJtZWRpYVR5cGVWYWx1ZSIsImhhc0V4YW1wbGVzS2V5IiwiZXhhbXBsZVNjaGVtYSIsImhhbmRsZUZpbGUiLCJzZXRJc0luY2x1ZGVkT3B0aW9ucyIsIlJlcXVlc3RCb2R5RWRpdG9yIiwicmVxdWVzdEJvZHlEZXNjcmlwdGlvbiIsInNjaGVtYUZvck1lZGlhVHlwZSIsInJhd0V4YW1wbGVzT2ZNZWRpYVR5cGUiLCJzYW1wbGVGb3JNZWRpYVR5cGUiLCJib2R5UHJvcGVydGllcyIsIm9iamVjdFR5cGVMYWJlbCIsImN1cnJlbnRWYWx1ZSIsImN1cnJlbnRFcnJvcnMiLCJpbmNsdWRlZCIsInNhbXBsZVJlcXVlc3RCb2R5IiwidGFyZ2V0T3AiLCJwYWRTdHJpbmciLCJzdHJpbmciLCJTZXJ2ZXJzIiwiY3VycmVudFNlcnZlclZhcmlhYmxlRGVmcyIsInNob3VsZFNob3dWYXJpYWJsZVVJIiwiY3VycmVudFNlcnZlckRlZmluaXRpb24iLCJoYW5kbGVTZXJ2ZXJDaGFuZ2UiLCJoYW5kbGVTZXJ2ZXJWYXJpYWJsZUNoYW5nZSIsInZhcmlhYmxlTmFtZSIsIm5ld1ZhcmlhYmxlVmFsdWUiLCJhcHBseURlZmF1bHRWYWx1ZSIsIm9uRG9tQ2hhbmdlIiwiaXNJbnZhbGlkIiwiSHR0cEF1dGgiLCJmb3JjZVVwZGF0ZSIsInNlcnZlcnNUb0Rpc3BsYXkiLCJkaXNwbGF5aW5nIiwib3BlcmF0aW9uTGluayIsInBhcnNlciIsImJsb2NrIiwiZW5hYmxlIiwidHJpbW1lZCIsIk1vZGVsQ29tcG9uZW50IiwiT0FTMzBDb21wb25lbnRXcmFwRmFjdG9yeSIsIlVQREFURV9TRUxFQ1RFRF9TRVJWRVIiLCJVUERBVEVfUkVRVUVTVF9CT0RZX1ZBTFVFIiwiVVBEQVRFX1JFUVVFU1RfQk9EWV9WQUxVRV9SRVRBSU5fRkxBRyIsIlVQREFURV9SRVFVRVNUX0JPRFlfSU5DTFVTSU9OIiwiVVBEQVRFX0FDVElWRV9FWEFNUExFU19NRU1CRVIiLCJVUERBVEVfUkVRVUVTVF9DT05URU5UX1RZUEUiLCJVUERBVEVfUkVTUE9OU0VfQ09OVEVOVF9UWVBFIiwiVVBEQVRFX1NFUlZFUl9WQVJJQUJMRV9WQUxVRSIsIlNFVF9SRVFVRVNUX0JPRFlfVkFMSURBVEVfRVJST1IiLCJDTEVBUl9SRVFVRVNUX0JPRFlfVkFMSURBVEVfRVJST1IiLCJDTEVBUl9SRVFVRVNUX0JPRFlfVkFMVUUiLCJzZWxlY3RlZFNlcnZlclVybCIsImNsZWFyUmVxdWVzdEJvZHlWYWx1ZSIsInVzZXJFZGl0ZWRSZXF1ZXN0Qm9keSIsIm1hcEVudHJpZXMiLCJrdiIsImN1cnJlbnRNZWRpYVR5cGVEZWZhdWx0Qm9keVZhbHVlIiwibG9jYXRpb25EYXRhIiwidmFyVmFsdWVzIiwic2VydmVyVmFsdWUiLCJlc2NhcGVSZWdFeHAiLCJ2YWxpZGF0ZVJlcXVlc3RCb2R5SXNSZXF1aXJlZCIsInZhbGlkYXRlUmVxdWVzdEJvZHlWYWx1ZUV4aXN0cyIsInJlcXVpcmVkS2V5cyIsInJlcXVpcmVkS2V5IiwiY3VycmVudFZhbCIsInZhbHVlS2V5cyIsInZhbHVlS2V5VmFsIiwibWlzc2luZ0tleVZhbHVlcyIsImJvZHlWYWx1ZSIsImN1cnJlbnRNaXNzaW5nS2V5IiwiYm9keVZhbHVlcyIsIm1ha2VJc0ZpbGVVcGxvYWRJbnRlbmRlZCIsImZpbGVVcGxvYWRNZWRpYVR5cGVzIiwiZmlsZVVwbG9hZE1lZGlhVHlwZSIsInNwZWNXcmFwU2VsZWN0b3JzIiwiYXV0aFdyYXBTZWxlY3RvcnMiLCJvYXMzIiwiaXNGaWxlVXBsb2FkSW50ZW5kZWRPQVMzMCIsInNlbGVjdFdlYmhvb2tzT3BlcmF0aW9ucyIsInBhdGhJdGVtTmFtZXMiLCJwYXRoSXRlbU5hbWUiLCJzZWxlY3RMaWNlbnNlTmFtZUZpZWxkIiwic2VsZWN0TGljZW5zZVVybCIsInNlbGVjdENvbnRhY3ROYW1lRmllbGQiLCJzZWxlY3RDb250YWN0VXJsIiwic2VsZWN0Q29udGFjdEVtYWlsRmllbGQiLCJzZWxlY3RJbmZvU3VtbWFyeUZpZWxkIiwic2VsZWN0SW5mb0Rlc2NyaXB0aW9uRmllbGQiLCJzZWxlY3RJbmZvVGl0bGVGaWVsZCIsInNlbGVjdEluZm9UZXJtc09mU2VydmljZVVybCIsInNlbGVjdEV4dGVybmFsRG9jc1VybCIsImV4dGVybmFsRG9jc0Rlc2MiLCJzZWxlY3RFeHRlcm5hbERvY3NEZXNjcmlwdGlvbkZpZWxkIiwiY29udGFjdCIsIkpzb25TY2hlbWFEaWFsZWN0IiwianNvblNjaGVtYURpYWxlY3QiLCJzZWxlY3RKc29uU2NoZW1hRGlhbGVjdEZpZWxkIiwianNvblNjaGVtYURpYWxlY3REZWZhdWx0Iiwic2VsZWN0SnNvblNjaGVtYURpYWxlY3REZWZhdWx0IiwiZm9yd2FyZFJlZiIsIkpTT05TY2hlbWEyMDIwMTIiLCJoYW5kbGVFeHBhbmQiLCJvbkV4cGFuZCIsImlkZW50aWZpZXIiLCJzZWxlY3RTY2hlbWFzIiwiaGFzU2NoZW1hcyIsInNjaGVtYXNQYXRoIiwiaXNPcGVuRGVmYXVsdCIsImlzT3BlbiIsImdldFRpdGxlIiwianNvblNjaGVtYTIwMjAxMiIsInVzZUZuIiwiaXNPcGVuQW5kRXhwYW5kZWQiLCJpc1Jlc29sdmVkIiwiaGFuZGxlTW9kZWxzRXhwYW5kIiwiaGFuZGxlTW9kZWxzUmVmIiwiaGFuZGxlSlNPTlNjaGVtYTIwMjAxMlJlZiIsImhhbmRsZUpTT05TY2hlbWEyMDIwMTJFeHBhbmQiLCJzY2hlbWFQYXRoIiwibG9va3VwIiwiTXV0dWFsVExTQXV0aCIsIm11dHVhbFRMU0RlZmluaXRpb25zIiwiY3JlYXRlT25seU9BUzMxU2VsZWN0b3IiLCJjcmVhdGVPbmx5T0FTMzFTZWxlY3RvcldyYXBwZXIiLCJjcmVhdGVTeXN0ZW1TZWxlY3RvciIsImNyZWF0ZU9ubHlPQVMzMUNvbXBvbmVudFdyYXBwZXIiLCJvcmlnaW5hbENvbXBvbmVudCIsIndyYXBPQVMzMUZuIiwic3lzdGVtRm4iLCJmcm9tRW50cmllcyIsIm5ld0ltcGwiLCJvcmlJbXBsIiwiaW1wbCIsIk9BUzMxTGljZW5zZSIsIk9BUzMxQ29udGFjdCIsIk9BUzMxSW5mbyIsImdldFByb3BlcnRpZXMiLCJmaWx0ZXJlZFByb3BlcnRpZXMiLCJtYWtlR2V0U2NoZW1hS2V5d29yZHMiLCJvcmlnaW5hbCIsImpzb25TY2hlbWEyMDIwMTJLZXl3b3JkcyIsIndpdGhKU09OU2NoZW1hU3lzdGVtQ29udGV4dCIsIk1vZGVsV2l0aEpTT05TY2hlbWFDb250ZXh0IiwiZGVmYXVsdCRzY2hlbWEiLCJkZWZhdWx0RXhwYW5kZWRMZXZlbHMiLCJpc0V4cGFuZGFibGUiLCJnZXRTY2hlbWFLZXl3b3JkcyIsIk1vZGVsc1dyYXBwZXIiLCJNb2RlbHNXaXRoSlNPTlNjaGVtYUNvbnRleHQiLCJWZXJzaW9uUHJhZ21hRmlsdGVyV3JhcHBlciIsIk9BUzMxVmVyc2lvblByYWdtYUZpbHRlciIsIk9BUzMxQXV0aHMiLCJpc09BUzMxRm4iLCJ3ZWJob29rcyIsInNlbGVjdExpY2Vuc2VVcmxGaWVsZCIsInNlbGVjdExpY2Vuc2VJZGVudGlmaWVyRmllbGQiLCJzZWxlY3RDb250YWN0VXJsRmllbGQiLCJzZWxlY3RJbmZvVGVybXNPZlNlcnZpY2VGaWVsZCIsInRlcm1zT2ZTZXJ2aWNlIiwic2VsZWN0RXh0ZXJuYWxEb2NzVXJsRmllbGQiLCJyYXdTY2hlbWFzIiwicmVzb2x2ZWRTY2hlbWFzIiwib2FzMzFTZWxlY3RvcnMiLCJoYXNLZXl3b3JkIiwiSlNPTlZpZXdlciIsIlhtbCIsInVzZUNvbXBvbmVudCIsInVzZUlzRXhwYW5kZWQiLCJ1c2VQYXRoIiwidXNlTGV2ZWwiLCJzZXRFeHBhbmRlZCIsInNldENvbGxhcHNlZCIsIm5leHRMZXZlbCIsIkFjY29yZGlvbiIsIkV4cGFuZERlZXBCdXR0b24iLCJPcGVuQVBJMzFFeHRlbnNpb25zIiwiSlNPTlNjaGVtYVBhdGhDb250ZXh0IiwiSlNPTlNjaGVtYUxldmVsQ29udGV4dCIsImhhbmRsZUV4cGFuc2lvbiIsImhhbmRsZUV4cGFuc2lvbkRlZXAiLCJleHBhbmRlZERlZXBOZXciLCJkZWVwIiwib3BlbkFQSVNwZWNPYmoiLCJvcGVuQVBJRXh0ZW5zaW9ucyIsIkRpc2NyaW1pbmF0b3JNYXBwaW5nIiwiRGlzY3JpbWluYXRvciIsInBhdGhUb2tlbiIsIk9wZW5BUElFeHRlbnNpb25zIiwia2V5d29yZCIsIkV4dGVybmFsRG9jcyIsIktleXdvcmREZXNjcmlwdGlvbiIsIkRlc2NyaXB0aW9uIiwiTWFya0Rvd24iLCJEZXNjcmlwdGlvbktleXdvcmQiLCJFeGFtcGxlc1dyYXBwZXIiLCJLZXl3b3JkRXhhbXBsZXMiLCJLZXl3b3JkRGlzY3JpbWluYXRvciIsIktleXdvcmRYbWwiLCJLZXl3b3JkRXhhbXBsZSIsIktleXdvcmRFeHRlcm5hbERvY3MiLCJQcm9wZXJ0aWVzIiwiZ2V0RGVwZW5kZW50UmVxdWlyZWQiLCJ1c2VDb25maWciLCJKU09OU2NoZW1hIiwicHJvcGVydHlTY2hlbWEiLCJkZXBlbmRlbnRSZXF1aXJlZCIsIlByb3BlcnRpZXNLZXl3b3JkIiwibWFrZUlzRXhwYW5kYWJsZSIsIndyYXBwZWRGbnMiLCJmb2xkVHlwZSIsImNvbnRlbnRNZWRpYVR5cGUiLCJjb250ZW50RW5jb2RpbmciLCJpc0ZpbGVVcGxvYWRJbnRlbmRlZFdyYXAiLCJpc0ZpbGVVcGxvYWRJbnRlbmRlZE9BUzMxIiwiT0FTMzFQbHVnaW4iLCJjcmVhdGVTeXN0ZW1TZWxlY3RvckZuIiwiY3JlYXRlT25seU9BUzMxU2VsZWN0b3JGbiIsIk9BUzMxTW9kZWwiLCJPQVMzMU1vZGVscyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRXhhbXBsZSIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkWG1sIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREaXNjcmltaW5hdG9yIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFeHRlcm5hbERvY3MiLCJJbmZvV3JhcHBlciIsIkxpY2Vuc2VXcmFwcGVyIiwiQ29udGFjdFdyYXBwZXIiLCJBdXRoSXRlbVdyYXBwZXIiLCJBdXRoc1dyYXBwZXIiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlc2NyaXB0aW9uIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXNjcmlwdGlvbldyYXBwZXIiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEV4YW1wbGVzIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFeGFtcGxlc1dyYXBwZXIiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByb3BlcnRpZXMiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByb3BlcnRpZXNXcmFwcGVyIiwiZGVmaW5pdGlvbnNUb0F1dGhvcml6ZVdyYXBwZXIiLCJzZWxlY3RJc09BUzMxIiwic2VsZWN0TGljZW5zZSIsInNlbGVjdENvbnRhY3QiLCJzZWxlY3RXZWJob29rcyIsImlzT0FTM1NlbGVjdG9yV3JhcHBlciIsInNlbGVjdExpY2Vuc2VVcmxXcmFwcGVyIiwib2FzMzEiLCJzZWxlY3RPQVMzMUxpY2Vuc2VVcmwiLCJvYmplY3RTY2hlbWEiLCJib29sZWFuU2NoZW1hIiwiSlNPTlNjaGVtYUNvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwiSlNPTlNjaGVtYUN5Y2xlc0NvbnRleHQiLCJKU09OU2NoZW1hSXNFeHBhbmRlZFN0YXRlIiwidXNlQ29udGV4dCIsImZuTmFtZSIsInVzZUpTT05TY2hlbWFDb250ZXh0U3RhdGUiLCJzZXRGYWtlU3RhdGUiLCJ1cGRhdGVGbiIsImN1cnJlbnRQYXRoIiwicGF0aE11dGF0b3IiLCJzdGFydFBhdGgiLCJDb2xsYXBzZWQiLCJEZWVwbHlFeHBhbmRlZCIsIkV4cGFuZGVkIiwidXBkYXRlRGVlcEZuIiwicGFyZW50UGF0aCIsImN1cnJlbnRTdGF0ZSIsInBhcmVudFN0YXRlIiwiaXNFeHBhbmRlZFN0YXRlIiwidXNlUmVuZGVyZWRTY2hlbWFzIiwicmVuZGVyZWRTY2hlbWFzIiwiJGlkIiwidXNlSXNFbWJlZGRlZCIsImlzQ2lyY3VsYXIiLCJ1c2VJc0NpcmN1bGFyIiwiY29uc3RyYWludHMiLCJzdHJpbmdpZnlDb25zdHJhaW50cyIsIktleXdvcmQkc2NoZW1hIiwiS2V5d29yZCR2b2NhYnVsYXJ5IiwiS2V5d29yZCRpZCIsIktleXdvcmQkYW5jaG9yIiwiS2V5d29yZCRkeW5hbWljQW5jaG9yIiwiS2V5d29yZCRyZWYiLCJLZXl3b3JkJGR5bmFtaWNSZWYiLCJLZXl3b3JkJGRlZnMiLCJLZXl3b3JkJGNvbW1lbnQiLCJLZXl3b3JkQWxsT2YiLCJLZXl3b3JkQW55T2YiLCJLZXl3b3JkT25lT2YiLCJLZXl3b3JkTm90IiwiS2V5d29yZElmIiwiS2V5d29yZFRoZW4iLCJLZXl3b3JkRWxzZSIsIktleXdvcmREZXBlbmRlbnRTY2hlbWFzIiwiS2V5d29yZFByZWZpeEl0ZW1zIiwiS2V5d29yZEl0ZW1zIiwiS2V5d29yZENvbnRhaW5zIiwiS2V5d29yZFByb3BlcnRpZXMiLCJLZXl3b3JkUGF0dGVyblByb3BlcnRpZXMiLCJLZXl3b3JkQWRkaXRpb25hbFByb3BlcnRpZXMiLCJLZXl3b3JkUHJvcGVydHlOYW1lcyIsIktleXdvcmRVbmV2YWx1YXRlZEl0ZW1zIiwiS2V5d29yZFVuZXZhbHVhdGVkUHJvcGVydGllcyIsIktleXdvcmRUeXBlIiwiS2V5d29yZEVudW0iLCJLZXl3b3JkQ29uc3QiLCJLZXl3b3JkQ29uc3RyYWludCIsIktleXdvcmREZXBlbmRlbnRSZXF1aXJlZCIsIktleXdvcmRDb250ZW50U2NoZW1hIiwiS2V5d29yZFRpdGxlIiwiS2V5d29yZERlZmF1bHQiLCJLZXl3b3JkRGVwcmVjYXRlZCIsIktleXdvcmRSZWFkT25seSIsIktleXdvcmRXcml0ZU9ubHkiLCJFeHRlbnNpb25LZXl3b3JkcyIsImV4cGFuZGVkTmV3IiwiY29uc3RyYWludCIsIiRzY2hlbWEiLCIkdm9jYWJ1bGFyeSIsIiRhbmNob3IiLCIkZHluYW1pY0FuY2hvciIsIiRkeW5hbWljUmVmIiwiJGRlZnMiLCIkY29tbWVudCIsIkFsbE9mIiwiQW55T2YiLCJPbmVPZiIsIk5vdCIsIklmIiwiaWYiLCJUaGVuIiwiRWxzZSIsImVsc2UiLCJEZXBlbmRlbnRTY2hlbWFzIiwiZGVwZW5kZW50U2NoZW1hcyIsIlByZWZpeEl0ZW1zIiwicHJlZml4SXRlbXMiLCJJdGVtcyIsIkNvbnRhaW5zIiwiUGF0dGVyblByb3BlcnRpZXMiLCJwYXR0ZXJuUHJvcGVydGllcyIsIkFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiUHJvcGVydHlOYW1lcyIsInByb3BlcnR5TmFtZXMiLCJVbmV2YWx1YXRlZEl0ZW1zIiwidW5ldmFsdWF0ZWRJdGVtcyIsIlVuZXZhbHVhdGVkUHJvcGVydGllcyIsInVuZXZhbHVhdGVkUHJvcGVydGllcyIsIlR5cGUiLCJjaXJjdWxhclN1ZmZpeCIsIkVudW0iLCJDb25zdCIsImNvbnN0IiwidXBwZXJGaXJzdCIsImNoYXJBdCIsIm1ha2VHZXRUaXRsZSIsImZuQWNjZXNzb3IiLCJtYWtlR2V0VHlwZSIsImlzQm9vbGVhbkpTT05TY2hlbWEiLCJwcmVmaXhJdGVtc1R5cGVzIiwiaXRlbXNUeXBlIiwiaGFuZGxlQ29tYmluaW5nS2V5d29yZHMiLCJzZXBhcmF0b3IiLCJzdWJTY2hlbWEiLCJjb21iaW5lZFN0cmluZ3MiLCJpbmZlclR5cGUiLCJOdW1iZXIiLCJpc0ludGVnZXIiLCJCb29sZWFuIiwiZ2V0RXh0ZW5zaW9uS2V5d29yZHMiLCJzdHJpbmdpZnlDb25zdHJhaW50UmFuZ2UiLCJsYWJlbCIsImhhc01pbiIsImhhc01heCIsIm11bHRpcGxlT2YiLCJzdHJpbmdpZnlDb25zdHJhaW50TXVsdGlwbGVPZiIsImZhY3RvciIsIm51bWJlclJhbmdlIiwic3RyaW5naWZ5Q29uc3RyYWludE51bWJlclJhbmdlIiwiaGFzTWluaW11bSIsImhhc01heGltdW0iLCJoYXNFeGNsdXNpdmVNaW5pbXVtIiwiaGFzRXhjbHVzaXZlTWF4aW11bSIsImlzTWluRXhjbHVzaXZlIiwiaXNNYXhFeGNsdXNpdmUiLCJzdHJpbmdSYW5nZSIsImFycmF5UmFuZ2UiLCJjb250YWluc1JhbmdlIiwibWluQ29udGFpbnMiLCJtYXhDb250YWlucyIsIm9iamVjdFJhbmdlIiwiZ2V0UHJvdG90eXBlT2YiLCJtYWtlR2V0RXh0ZW5zaW9uS2V5d29yZHMiLCJrZXl3b3JkcyIsImRpZmZlcmVuY2UiLCJjb21wYXJpc29uVmFsdWUiLCJjb21wYXJpc29uU2V0IiwiaGFzVHlwZSIsIkNvbnN0cmFpbnQiLCJEZXBlbmRlbnRSZXF1aXJlZCIsIkNvbnRlbnRTY2hlbWEiLCJjb250ZW50U2NoZW1hIiwiVGl0bGUiLCJyZW5kZXJlZFRpdGxlIiwiRGVmYXVsdCIsIkRlcHJlY2F0ZWQiLCJSZWFkT25seSIsIldyaXRlT25seSIsIkV4YW1wbGVzIiwic2hvd0V4dGVuc2lvbktleXdvcmRzIiwiZXh0ZW5zaW9uS2V5d29yZHMiLCJpc1ByaW1pdGl2ZSIsImlzRW1wdHlPYmplY3QiLCJpc0VtcHR5QXJyYXkiLCJwcm9wZXJ0eVZhbHVlIiwiQ2hldnJvblJpZ2h0SWNvbiIsImV2ZW50IiwiQ2hldnJvblJpZ2h0Iiwid2l0aEpTT05TY2hlbWFDb250ZXh0Iiwib3ZlcnJpZGVzIiwiSE9DIiwiY29udGV4dHMiLCJtYWtlV2l0aEpTT05TY2hlbWFTeXN0ZW1Db250ZXh0IiwiSlNPTlNjaGVtYTIwMjAxMlBsdWdpbiIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJHNjaGVtYSIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJHZvY2FidWxhcnkiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRpZCIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGFuY2hvciIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGR5bmFtaWNBbmNob3IiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRyZWYiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZCRkeW5hbWljUmVmIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmQkZGVmcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkJGNvbW1lbnQiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEFsbE9mIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBbnlPZiIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkT25lT2YiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZE5vdCIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkSWYiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRoZW4iLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZEVsc2UiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZERlcGVuZGVudFNjaGVtYXMiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFByZWZpeEl0ZW1zIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRJdGVtcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29udGFpbnMiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFBhdHRlcm5Qcm9wZXJ0aWVzIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRBZGRpdGlvbmFsUHJvcGVydGllcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkUHJvcGVydHlOYW1lcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVW5ldmFsdWF0ZWRJdGVtcyIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkVW5ldmFsdWF0ZWRQcm9wZXJ0aWVzIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRUeXBlIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRFbnVtIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRDb25zdCIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkQ29uc3RyYWludCIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkRGVwZW5kZW50UmVxdWlyZWQiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZENvbnRlbnRTY2hlbWEiLCJKU09OU2NoZW1hMjAyMDEyS2V5d29yZFRpdGxlIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZWZhdWx0IiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmREZXByZWNhdGVkIiwiSlNPTlNjaGVtYTIwMjAxMktleXdvcmRSZWFkT25seSIsIkpTT05TY2hlbWEyMDIwMTJLZXl3b3JkV3JpdGVPbmx5IiwiSlNPTlNjaGVtYTIwMjAxMkV4dGVuc2lvbktleXdvcmRzIiwiSlNPTlNjaGVtYTIwMjAxMkpTT05WaWV3ZXIiLCJKU09OU2NoZW1hMjAyMDEyQWNjb3JkaW9uIiwiSlNPTlNjaGVtYTIwMjAxMkV4cGFuZERlZXBCdXR0b24iLCJKU09OU2NoZW1hMjAyMDEyQ2hldnJvblJpZ2h0SWNvbiIsIndpdGhKU09OU2NoZW1hMjAyMDEyQ29udGV4dCIsIndpdGhKU09OU2NoZW1hMjAyMDEyU3lzdGVtQ29udGV4dCIsIkpTT05TY2hlbWEyMDIwMTJQYXRoQ29udGV4dCIsIkpTT05TY2hlbWEyMDIwMTJMZXZlbENvbnRleHQiLCJhcnJheVR5cGUiLCJhcHBseUFycmF5Q29uc3RyYWludHMiLCJhcnJheSIsImNvbnN0cmFpbmVkQXJyYXkiLCJjb250YWluc0l0ZW0iLCJhdCIsInVuc2hpZnQiLCJieXRlcyIsInBpY2siLCJpc0pTT05TY2hlbWFPYmplY3QiLCJpc0pTT05TY2hlbWEiLCJSZWdpc3RyeSIsInVucmVnaXN0ZXIiLCJpbnQzMkdlbmVyYXRvciIsImludDY0R2VuZXJhdG9yIiwiZmxvYXRHZW5lcmF0b3IiLCJkb3VibGVHZW5lcmF0b3IiLCJlbWFpbEdlbmVyYXRvciIsImlkbkVtYWlsR2VuZXJhdG9yIiwiaG9zdG5hbWVHZW5lcmF0b3IiLCJpZG5Ib3N0bmFtZUdlbmVyYXRvciIsImlwdjRHZW5lcmF0b3IiLCJpcHY2R2VuZXJhdG9yIiwidXJpR2VuZXJhdG9yIiwidXJpUmVmZXJlbmNlR2VuZXJhdG9yIiwiaXJpR2VuZXJhdG9yIiwiaXJpUmVmZXJlbmNlR2VuZXJhdG9yIiwidXVpZEdlbmVyYXRvciIsInVyaVRlbXBsYXRlR2VuZXJhdG9yIiwianNvblBvaW50ZXJHZW5lcmF0b3IiLCJyZWxhdGl2ZUpzb25Qb2ludGVyR2VuZXJhdG9yIiwiZGF0ZVRpbWVHZW5lcmF0b3IiLCJkYXRlR2VuZXJhdG9yIiwidGltZUdlbmVyYXRvciIsImR1cmF0aW9uR2VuZXJhdG9yIiwicGFzc3dvcmRHZW5lcmF0b3IiLCJyZWdleEdlbmVyYXRvciIsInJlZ2lzdHJ5IiwiRm9ybWF0UmVnaXN0cnkiLCJpbnQzMiIsImludDY0IiwiZmxvYXQiLCJkb3VibGUiLCJob3N0bmFtZSIsImlwdjQiLCJpcHY2IiwiaXJpIiwidXVpZCIsImRhdGUiLCJ0aW1lIiwiZGVmYXVsdHMiLCJmb3JtYXRBUEkiLCJnZW5lcmF0b3IiLCJnZXREZWZhdWx0cyIsInF1b3RlZFByaW50YWJsZSIsImNoYXJDb2RlIiwiY2hhckNvZGVBdCIsInV0ZjgiLCJ1bmVzY2FwZSIsImoiLCJ1dGY4VmFsdWUiLCJiYXNlMzJBbHBoYWJldCIsInBhZGRpbmdDb3VudCIsImJhc2UzMlN0ciIsImJ1ZmZlckxlbmd0aCIsIkVuY29kZXJSZWdpc3RyeSIsImVuY29kZTdiaXQiLCJlbmNvZGU4Yml0IiwiYmluYXJ5IiwiZW5jb2RlUXVvdGVkUHJpbnRhYmxlIiwiYmFzZTE2IiwiYmFzZTMyIiwiYmFzZTY0IiwiYmFzZTY0dXJsIiwiZW5jb2RlckFQSSIsImVuY29kaW5nTmFtZSIsImVuY29kZXIiLCJ0ZXh0L3BsYWluIiwidGV4dC9jc3MiLCJ0ZXh0L2NzdiIsInRleHQvaHRtbCIsInRleHQvY2FsZW5kYXIiLCJ0ZXh0L2phdmFzY3JpcHQiLCJ0ZXh0L3htbCIsInRleHQvKiIsImltYWdlLyoiLCJhdWRpby8qIiwidmlkZW8vKiIsImFwcGxpY2F0aW9uL2pzb24iLCJhcHBsaWNhdGlvbi9sZCtqc29uIiwiYXBwbGljYXRpb24veC1odHRwZC1waHAiLCJhcHBsaWNhdGlvbi9ydGYiLCJyYXciLCJhcHBsaWNhdGlvbi94LXNoIiwiYXBwbGljYXRpb24veGh0bWwreG1sIiwiYXBwbGljYXRpb24vKiIsIk1lZGlhVHlwZVJlZ2lzdHJ5IiwidGV4dE1lZGlhVHlwZXNHZW5lcmF0b3JzIiwiaW1hZ2VNZWRpYVR5cGVzR2VuZXJhdG9ycyIsImF1ZGlvTWVkaWFUeXBlc0dlbmVyYXRvcnMiLCJ2aWRlb01lZGlhVHlwZXNHZW5lcmF0b3JzIiwiYXBwbGljYXRpb25NZWRpYVR5cGVzR2VuZXJhdG9ycyIsIm1lZGlhVHlwZUFQSSIsIm1lZGlhVHlwZU5vUGFyYW1zIiwidG9wTGV2ZWxNZWRpYVR5cGUiLCJhcHBseVN0cmluZ0NvbnN0cmFpbnRzIiwiY29uc3RyYWluZWRTdHJpbmciLCJzdHJpbmdUeXBlIiwiZW5jb2RlIiwiZ2VuZXJhdGVkU3RyaW5nIiwicmFuZGV4cCIsImdlbmVyYXRlRm9ybWF0IiwiZm9ybWF0R2VuZXJhdG9yIiwiZ2VuZXJhdGVNZWRpYVR5cGUiLCJtZWRpYVR5cGVHZW5lcmF0b3IiLCJhcHBseU51bWJlckNvbnN0cmFpbnRzIiwiZXBzaWxvbiIsIkVQU0lMT04iLCJtaW5WYWx1ZSIsIm1heFZhbHVlIiwiY29uc3RyYWluZWROdW1iZXIiLCJyZW1haW5kZXIiLCJnZW5lcmF0ZWROdW1iZXIiLCJnZW5lcmF0ZWRJbnRlZ2VyIiwiUHJveHkiLCJvYmplY3QiLCJudW1iZXJUeXBlIiwiaW50ZWdlclR5cGUiLCJib29sZWFuIiwiYm9vbGVhblR5cGUiLCJudWxsIiwibnVsbFR5cGUiLCJBTExfVFlQRVMiLCJoYXNFeGFtcGxlIiwiZGVmYXVsdFZhbCIsImV4dHJhY3RFeGFtcGxlIiwiaW5mZXJyaW5nS2V5d29yZHMiLCJmYWxsYmFja1R5cGUiLCJpbmZlclR5cGVGcm9tVmFsdWUiLCJub3ROdWxsVHlwZXMiLCJwaWNrZWRUeXBlIiwicmFuZG9tUGljayIsImluZmVycmluZ1R5cGVzIiwiaW50ZXJydXB0IiwiaW5mZXJyaW5nVHlwZSIsImluZmVycmluZ1R5cGVLZXl3b3JkcyIsImluZmVycmluZ0tleXdvcmQiLCJjb25zdFR5cGUiLCJjb21iaW5lVHlwZXMiLCJjb21iaW5lZFR5cGVzIiwiZXhhbXBsZVR5cGUiLCJ0eXBlQ2FzdCIsImZyb21KU09OQm9vbGVhblNjaGVtYSIsIm1lcmdlZFR5cGUiLCJlbnN1cmVBcnJheSIsImFsbFByb3BlcnR5TmFtZXMiLCJzb3VyY2VQcm9wZXJ0eSIsInRhcmdldFByb3BlcnR5IiwicHJvcFNjaGVtYSIsInByb3BTY2hlbWFUeXBlIiwiYXR0ck5hbWUiLCJhcnJheVNhbXBsZSIsInR5cGVNYXAiLCJjb250YWluc1dpdGhvdXRBbnlPZiIsImFueU9mU2NoZW1hIiwiY29udGFpbnNXaXRob3V0T25lT2YiLCJvbmVPZlNjaGVtYSIsIml0ZW1zV2l0aG91dEFueU9mIiwiaXRlbXNXaXRob3V0T25lT2YiLCJjb250ZW50U2FtcGxlIiwiT3B0aW9uUmVnaXN0cnkiLCJvcHRpb25BUEkiLCJvcHRpb25OYW1lIiwib3B0aW9uVmFsdWUiLCJKU09OU2NoZW1hMjAyMDEyU2FtcGxlc1BsdWdpbiIsInNhbXBsZU9wdGlvbkFQSSIsInNhbXBsZUVuY29kZXJBUEkiLCJzYW1wbGVGb3JtYXRBUEkiLCJzYW1wbGVNZWRpYVR5cGVBUEkiLCJQcmVzZXRBcGlzIiwiT3BlbkFQSTMwUGx1Z2luIiwiT3BlbkFQSTMxUGx1Z2luIiwicHJlc2V0cyIsIm9wdGlvbnNGcm9tUXVlcnkiLCJ1cmxTZWFyY2hQYXJhbXMiLCJxdWVyeUNvbmZpZ0VuYWJsZWQiLCJwYXJzZVNlYXJjaCIsInNlYXJjaFBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsIm9wdGlvbnNGcm9tVVJMIiwiZGVmZXJyZWQiLCJtYWtlRGVmZXJyZWQiLCJwcm9taXNlIiwicmVqZWN0IiwibG9hZFJlbW90ZUNvbmZpZyIsImZldGNoZWRPcHRpb25zIiwib3B0aW9uc0Zyb21SdW50aW1lIiwiZ2xvYmFsVGhpcyIsImZyZWV6ZSIsImRvbV9pZCIsInVybHMiLCJjb25maWdVcmwiLCJjdXJsX2Jhc2giLCJzeW50YXgiLCJjdXJsX3Bvd2Vyc2hlbGwiLCJjdXJsX2NtZCIsImRlZmF1bHRFeHBhbmRlZCIsImxhbmd1YWdlcyIsIkFwaXNQcmVzZXQiLCJhcnJheVR5cGVDYXN0ZXIiLCJib29sZWFuVHlwZUNhc3RlciIsImZ1bmN0aW9uVHlwZUNhc3RlciIsIm51bWJlclR5cGVDYXN0ZXIiLCJwYXJzZWRWYWx1ZSIsIm9iamVjdFR5cGVDYXN0ZXIiLCJzeW50YXhIaWdobGlnaHRUeXBlQ2FzdGVyIiwidHlwZUNhc3RlciIsIm51bGxhYmxlU3RyaW5nVHlwZUNhc3RlciIsInN0cmluZ1R5cGVDYXN0ZXIiLCJkb21Ob2RlVHlwZUNhc3RlciIsImZpbHRlclR5cGVDYXN0ZXIiLCJudWxsYWJsZUZ1bmN0aW9uVHlwZUNhc3RlciIsInVuZGVmaW5lZFN0cmluZ1R5cGVDYXN0ZXIiLCJzb3J0ZXJUeXBlQ2FzdGVyIiwicGFyYW1hdGVyTWFjcm8iLCJudWxsYWJsZUFycmF5VHlwZUNhc3RlciIsIm1hcHBpbmdzIiwib3B0aW9uUGF0aCIsImNhc3RlZCIsInNvdXJjZXMiLCJmb3IiLCJwcmltYXJ5TmFtZSIsInNvdXJjZXNXaXRob3V0RXhjZXB0aW9ucyIsInNvdXJjZVdpdGhvdXRFeGNlcHRpb25zIiwiU3dhZ2dlclVJIiwidXNlck9wdGlvbnMiLCJxdWVyeU9wdGlvbnMiLCJydW50aW1lT3B0aW9ucyIsIm1lcmdlZE9wdGlvbnMiLCJzeXN0ZW1PcHRpb25zIiwic3lzdGVtT3B0aW9uc0ZhY3Rvcml6YXRpb24iLCJJbmxpbmVQbHVnaW4iLCJpbmxpbmVQbHVnaW5PcHRpb25zRmFjdG9yaXphdGlvbiIsInVuYm91bmRTeXN0ZW0iLCJTeXN0ZW0iLCJwZXJzaXN0Q29uZmlncyIsInF1ZXJ5U2VsZWN0b3IiLCJ1cmxPcHRpb25zIiwidXJsTWVyZ2VkT3B0aW9ucyIsIm1lcmdlT3B0aW9ucyIsInR5cGVDYXN0T3B0aW9ucyIsInR5cGVDYXN0TWFwcGluZ3MiLCJhcGlzIiwiQXV0aCIsIkNvbmZpZ3MiLCJEZWVwTGluaW5nIiwiRXJyIiwiRmlsdGVyIiwiSWNvbnMiLCJKU09OU2NoZW1hNSIsIkpTT05TY2hlbWE1U2FtcGxlcyIsIkpTT05TY2hlbWEyMDIwMTJTYW1wbGVzIiwiTG9ncyIsIk9wZW5BUEkzMCIsIk9wZW5BUEkzMSIsIk9uQ29tcGxldGUiLCJTcGVjIiwiU3dhZ2dlckNsaWVudCIsIlV0aWwiLCJWaWV3IiwiVmlld0xlZ2FjeSIsIkRvd25sb2FkVXJsIiwiU3ludGF4SGlnaGxpZ2h0aW5nIiwiVmVyc2lvbnMiLCJTYWZlUmVuZGVyIl0sInNvdXJjZVJvb3QiOiIifQ==</File>
        <File Location="var/httpd/htdocs/js/thirdparty/swagger/NOTICE" Permission="660" Encode="Base64">c3dhZ2dlci11aQpDb3B5cmlnaHQgMjAyMC0yMDIxIFNtYXJ0QmVhciBTb2Z0d2FyZSBJbmMuCg==</File>
        <File Location="var/httpd/htdocs/js/thirdparty/swagger/LICENSE" Permission="660" Encode="Base64">CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwYWNoZSBMaWNlbnNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMi4wLCBKYW51YXJ5IDIwMDQKICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzLwoKICAgVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIFVTRSwgUkVQUk9EVUNUSU9OLCBBTkQgRElTVFJJQlVUSU9OCgogICAxLiBEZWZpbml0aW9ucy4KCiAgICAgICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24sCiAgICAgIGFuZCBkaXN0cmlidXRpb24gYXMgZGVmaW5lZCBieSBTZWN0aW9ucyAxIHRocm91Z2ggOSBvZiB0aGlzIGRvY3VtZW50LgoKICAgICAgIkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhvcml6ZWQgYnkKICAgICAgdGhlIGNvcHlyaWdodCBvd25lciB0aGF0IGlzIGdyYW50aW5nIHRoZSBMaWNlbnNlLgoKICAgICAgIkxlZ2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2YgdGhlIGFjdGluZyBlbnRpdHkgYW5kIGFsbAogICAgICBvdGhlciBlbnRpdGllcyB0aGF0IGNvbnRyb2wsIGFyZSBjb250cm9sbGVkIGJ5LCBvciBhcmUgdW5kZXIgY29tbW9uCiAgICAgIGNvbnRyb2wgd2l0aCB0aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCiAgICAgICJjb250cm9sIiBtZWFucyAoaSkgdGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNhdXNlIHRoZQogICAgICBkaXJlY3Rpb24gb3IgbWFuYWdlbWVudCBvZiBzdWNoIGVudGl0eSwgd2hldGhlciBieSBjb250cmFjdCBvcgogICAgICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKICAgICAgb3V0c3RhbmRpbmcgc2hhcmVzLCBvciAoaWlpKSBiZW5lZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4KCiAgICAgICJZb3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKICAgICAgZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4KCiAgICAgICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVycmVkIGZvcm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25zLAogICAgICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uCiAgICAgIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCgogICAgICAiT2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0aW5nIGZyb20gbWVjaGFuaWNhbAogICAgICB0cmFuc2Zvcm1hdGlvbiBvciB0cmFuc2xhdGlvbiBvZiBhIFNvdXJjZSBmb3JtLCBpbmNsdWRpbmcgYnV0CiAgICAgIG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiwKICAgICAgYW5kIGNvbnZlcnNpb25zIHRvIG90aGVyIG1lZGlhIHR5cGVzLgoKICAgICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IKICAgICAgT2JqZWN0IGZvcm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQogICAgICBjb3B5cmlnaHQgbm90aWNlIHRoYXQgaXMgaW5jbHVkZWQgaW4gb3IgYXR0YWNoZWQgdG8gdGhlIHdvcmsKICAgICAgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KCiAgICAgICJEZXJpdmF0aXZlIFdvcmtzIiBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBvciBPYmplY3QKICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBhbmQgZm9yIHdoaWNoIHRoZQogICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCiAgICAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLiBGb3IgdGhlIHB1cnBvc2VzCiAgICAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFpbgogICAgICBzZXBhcmFibGUgZnJvbSwgb3IgbWVyZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2YsCiAgICAgIHRoZSBXb3JrIGFuZCBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YuCgogICAgICAiQ29udHJpYnV0aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZwogICAgICB0aGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGUgV29yayBhbmQgYW55IG1vZGlmaWNhdGlvbnMgb3IgYWRkaXRpb25zCiAgICAgIHRvIHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQgaXMgaW50ZW50aW9uYWxseQogICAgICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yayBieSB0aGUgY29weXJpZ2h0IG93bmVyCiAgICAgIG9yIGJ5IGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5IGF1dGhvcml6ZWQgdG8gc3VibWl0IG9uIGJlaGFsZiBvZgogICAgICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgInN1Ym1pdHRlZCIKICAgICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywgdmVyYmFsLCBvciB3cml0dGVuIGNvbW11bmljYXRpb24gc2VudAogICAgICB0byB0aGUgTGljZW5zb3Igb3IgaXRzIHJlcHJlc2VudGF0aXZlcywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0bwogICAgICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0ZW1zLAogICAgICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5LCBvciBvbiBiZWhhbGYgb2YsIHRoZQogICAgICBMaWNlbnNvciBmb3IgdGhlIHB1cnBvc2Ugb2YgZGlzY3Vzc2luZyBhbmQgaW1wcm92aW5nIHRoZSBXb3JrLCBidXQKICAgICAgZXhjbHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1hcmtlZCBvciBvdGhlcndpc2UKICAgICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMgIk5vdCBhIENvbnRyaWJ1dGlvbi4iCgogICAgICAiQ29udHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQogICAgICBvbiBiZWhhbGYgb2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQKICAgICAgc3Vic2VxdWVudGx5IGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsuCgogICAyLiBHcmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAogICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQogICAgICBjb3B5cmlnaHQgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwKICAgICAgcHVibGljbHkgZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgc3VibGljZW5zZSwgYW5kIGRpc3RyaWJ1dGUgdGhlCiAgICAgIFdvcmsgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0uCgogICAzLiBHcmFudCBvZiBQYXRlbnQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAogICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQogICAgICAoZXhjZXB0IGFzIHN0YXRlZCBpbiB0aGlzIHNlY3Rpb24pIHBhdGVudCBsaWNlbnNlIHRvIG1ha2UsIGhhdmUgbWFkZSwKICAgICAgdXNlLCBvZmZlciB0byBzZWxsLCBzZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIFdvcmssCiAgICAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkgdG8gdGhvc2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlCiAgICAgIGJ5IHN1Y2ggQ29udHJpYnV0b3IgdGhhdCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZWlyCiAgICAgIENvbnRyaWJ1dGlvbihzKSBhbG9uZSBvciBieSBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykKICAgICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0dGVkLiBJZiBZb3UKICAgICAgaW5zdGl0dXRlIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29yawogICAgICBvciBhIENvbnRyaWJ1dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdAogICAgICBvciBjb250cmlidXRvcnkgcGF0ZW50IGluZnJpbmdlbWVudCwgdGhlbiBhbnkgcGF0ZW50IGxpY2Vuc2VzCiAgICAgIGdyYW50ZWQgdG8gWW91IHVuZGVyIHRoaXMgTGljZW5zZSBmb3IgdGhhdCBXb3JrIHNoYWxsIHRlcm1pbmF0ZQogICAgICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCgogICA0LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZQogICAgICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQKICAgICAgbW9kaWZpY2F0aW9ucywgYW5kIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybSwgcHJvdmlkZWQgdGhhdCBZb3UKICAgICAgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgogICAgICAoYSkgWW91IG11c3QgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgV29yayBvcgogICAgICAgICAgRGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKCiAgICAgIChiKSBZb3UgbXVzdCBjYXVzZSBhbnkgbW9kaWZpZWQgZmlsZXMgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMKICAgICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAoKICAgICAgKGMpIFlvdSBtdXN0IHJldGFpbiwgaW4gdGhlIFNvdXJjZSBmb3JtIG9mIGFueSBEZXJpdmF0aXZlIFdvcmtzCiAgICAgICAgICB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5kCiAgICAgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBXb3JrLAogICAgICAgICAgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QgcGVydGFpbiB0byBhbnkgcGFydCBvZgogICAgICAgICAgdGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAoKICAgICAgKGQpIElmIHRoZSBXb3JrIGluY2x1ZGVzIGEgIk5PVElDRSIgdGV4dCBmaWxlIGFzIHBhcnQgb2YgaXRzCiAgICAgICAgICBkaXN0cmlidXRpb24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0CiAgICAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29weSBvZiB0aGUgYXR0cmlidXRpb24gbm90aWNlcyBjb250YWluZWQKICAgICAgICAgIHdpdGhpbiBzdWNoIE5PVElDRSBmaWxlLCBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdAogICAgICAgICAgcGVydGFpbiB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCiAgICAgICAgICBvZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNFIHRleHQgZmlsZSBkaXN0cmlidXRlZAogICAgICAgICAgYXMgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgd2l0aGluIHRoZSBTb3VyY2UgZm9ybSBvcgogICAgICAgICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCiAgICAgICAgICB3aXRoaW4gYSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYgYW5kCiAgICAgICAgICB3aGVyZXZlciBzdWNoIHRoaXJkLXBhcnR5IG5vdGljZXMgbm9ybWFsbHkgYXBwZWFyLiBUaGUgY29udGVudHMKICAgICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSBhbmQKICAgICAgICAgIGRvIG5vdCBtb2RpZnkgdGhlIExpY2Vuc2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJpYnV0aW9uCiAgICAgICAgICBub3RpY2VzIHdpdGhpbiBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsb25nc2lkZQogICAgICAgICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3ZpZGVkCiAgICAgICAgICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBub3RpY2VzIGNhbm5vdCBiZSBjb25zdHJ1ZWQKICAgICAgICAgIGFzIG1vZGlmeWluZyB0aGUgTGljZW5zZS4KCiAgICAgIFlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91ciBtb2RpZmljYXRpb25zIGFuZAogICAgICBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIG9yIGRpZmZlcmVudCBsaWNlbnNlIHRlcm1zIGFuZCBjb25kaXRpb25zCiAgICAgIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKICAgICAgZm9yIGFueSBzdWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsCiAgICAgIHJlcHJvZHVjdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgV29yayBvdGhlcndpc2UgY29tcGxpZXMgd2l0aAogICAgICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgoKICAgNS4gU3VibWlzc2lvbiBvZiBDb250cmlidXRpb25zLiBVbmxlc3MgWW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNlLAogICAgICBhbnkgQ29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsKICAgICAgYnkgWW91IHRvIHRoZSBMaWNlbnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKICAgICAgdGhpcyBMaWNlbnNlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMuCiAgICAgIE5vdHdpdGhzdGFuZGluZyB0aGUgYWJvdmUsIG5vdGhpbmcgaGVyZWluIHNoYWxsIHN1cGVyc2VkZSBvciBtb2RpZnkKICAgICAgdGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVlbWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQKICAgICAgd2l0aCBMaWNlbnNvciByZWdhcmRpbmcgc3VjaCBDb250cmlidXRpb25zLgoKICAgNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQogICAgICBuYW1lcywgdHJhZGVtYXJrcywgc2VydmljZSBtYXJrcywgb3IgcHJvZHVjdCBuYW1lcyBvZiB0aGUgTGljZW5zb3IsCiAgICAgIGV4Y2VwdCBhcyByZXF1aXJlZCBmb3IgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IHVzZSBpbiBkZXNjcmliaW5nIHRoZQogICAgICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4KCiAgIDcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvcgogICAgICBhZ3JlZWQgdG8gaW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoCiAgICAgIENvbnRyaWJ1dG9yIHByb3ZpZGVzIGl0cyBDb250cmlidXRpb25zKSBvbiBhbiAiQVMgSVMiIEJBU0lTLAogICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKICAgICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMKICAgICAgb2YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWSwgb3IgRklUTkVTUyBGT1IgQQogICAgICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKICAgICAgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1bWUgYW55CiAgICAgIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZb3VyIGV4ZXJjaXNlIG9mIHBlcm1pc3Npb25zIHVuZGVyIHRoaXMgTGljZW5zZS4KCiAgIDguIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LAogICAgICB3aGV0aGVyIGluIHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwgY29udHJhY3QsIG9yIG90aGVyd2lzZSwKICAgICAgdW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IChzdWNoIGFzIGRlbGliZXJhdGUgYW5kIGdyb3NzbHkKICAgICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUKICAgICAgbGlhYmxlIHRvIFlvdSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGFueSBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAogICAgICBpbmNpZGVudGFsLCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb2YgYW55IGNoYXJhY3RlciBhcmlzaW5nIGFzIGEKICAgICAgcmVzdWx0IG9mIHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxpdHkgdG8gdXNlIHRoZQogICAgICBXb3JrIChpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIGRhbWFnZXMgZm9yIGxvc3Mgb2YgZ29vZHdpbGwsCiAgICAgIHdvcmsgc3RvcHBhZ2UsIGNvbXB1dGVyIGZhaWx1cmUgb3IgbWFsZnVuY3Rpb24sIG9yIGFueSBhbmQgYWxsCiAgICAgIG90aGVyIGNvbW1lcmNpYWwgZGFtYWdlcyBvciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3IKICAgICAgaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3VjaCBkYW1hZ2VzLgoKICAgOS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZwogICAgICB0aGUgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIFlvdSBtYXkgY2hvb3NlIHRvIG9mZmVyLAogICAgICBhbmQgY2hhcmdlIGEgZmVlIGZvciwgYWNjZXB0YW5jZSBvZiBzdXBwb3J0LCB3YXJyYW50eSwgaW5kZW1uaXR5LAogICAgICBvciBvdGhlciBsaWFiaWxpdHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcwogICAgICBMaWNlbnNlLiBIb3dldmVyLCBpbiBhY2NlcHRpbmcgc3VjaCBvYmxpZ2F0aW9ucywgWW91IG1heSBhY3Qgb25seQogICAgICBvbiBZb3VyIG93biBiZWhhbGYgYW5kIG9uIFlvdXIgc29sZSByZXNwb25zaWJpbGl0eSwgbm90IG9uIGJlaGFsZgogICAgICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5pZnksCiAgICAgIGRlZmVuZCwgYW5kIGhvbGQgZWFjaCBDb250cmlidXRvciBoYXJtbGVzcyBmb3IgYW55IGxpYWJpbGl0eQogICAgICBpbmN1cnJlZCBieSwgb3IgY2xhaW1zIGFzc2VydGVkIGFnYWluc3QsIHN1Y2ggQ29udHJpYnV0b3IgYnkgcmVhc29uCiAgICAgIG9mIHlvdXIgYWNjZXB0aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmlsaXR5LgoKICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCgogICBBUFBFTkRJWDogSG93IHRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmsuCgogICAgICBUbyBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLCBhdHRhY2ggdGhlIGZvbGxvd2luZwogICAgICBib2lsZXJwbGF0ZSBub3RpY2UsIHdpdGggdGhlIGZpZWxkcyBlbmNsb3NlZCBieSBicmFja2V0cyAiW10iCiAgICAgIHJlcGxhY2VkIHdpdGggeW91ciBvd24gaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24uIChEb24ndCBpbmNsdWRlCiAgICAgIHRoZSBicmFja2V0cyEpICBUaGUgdGV4dCBzaG91bGQgYmUgZW5jbG9zZWQgaW4gdGhlIGFwcHJvcHJpYXRlCiAgICAgIGNvbW1lbnQgc3ludGF4IGZvciB0aGUgZmlsZSBmb3JtYXQuIFdlIGFsc28gcmVjb21tZW5kIHRoYXQgYQogICAgICBmaWxlIG9yIGNsYXNzIG5hbWUgYW5kIGRlc2NyaXB0aW9uIG9mIHB1cnBvc2UgYmUgaW5jbHVkZWQgb24gdGhlCiAgICAgIHNhbWUgInByaW50ZWQgcGFnZSIgYXMgdGhlIGNvcHlyaWdodCBub3RpY2UgZm9yIGVhc2llcgogICAgICBpZGVudGlmaWNhdGlvbiB3aXRoaW4gdGhpcmQtcGFydHkgYXJjaGl2ZXMuCgogICBDb3B5cmlnaHQgW3l5eXldIFtuYW1lIG9mIGNvcHlyaWdodCBvd25lcl0KCiAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4K</File>
        <File Location="var/webservices/metadata/components.yml" Permission="660" Encode="Base64">LS0tIApjb21wb25lbnRzOgogIHBhcmFtZXRlcnM6CiAgICBVc2VyTG9naW46CiAgICAgIGRlc2NyaXB0aW9uOiBUaGUgVXNlckxvZ2luIG9mIHRoZSBVc2VyIHBlcmZvcm1pbmcgdGhlIG9wZXJhdGlvbgogICAgICBpbjogcXVlcnkKICAgICAgbmFtZTogVXNlckxvZ2luCiAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICBzY2hlbWE6CiAgICAgICAgdHlwZTogc3RyaW5nCiAgICBQYXNzd29yZDoKICAgICAgZGVzY3JpcHRpb246IFRoZSBQYXNzd29yZCBvZiB0aGUgVXNlciBwZXJmb3JtaW5nIHRoZSBvcGVyYXRpb24KICAgICAgaW46IHF1ZXJ5CiAgICAgIG5hbWU6IFBhc3N3b3JkCiAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICBzY2hlbWE6CiAgICAgICAgdHlwZTogc3RyaW5nIAogICAgU2Vzc2lvbklEOiAKICAgICAgZGVzY3JpcHRpb246IFRoZSBTZXNzaW9uSUQgb2YgdGhlIFVzZXIgcGVyZm9ybWluZyB0aGUgb3BlcmF0aW9uCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBTZXNzaW9uSUQKICAgICAgcmVxdWlyZWQ6IGZhbHNlCiAgICAgIHNjaGVtYToKICAgICAgICB0eXBlOiBzdHJpbmcgICAgICAgICAgICAKICBzY2hlbWFzOgogICAgQXBpRXJyb3I6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIEVycm9yOgogICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICBFcnJvckNvZGU6IAogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBFcnJvciBDb2RlLCBlZyAiVGlja2V0R2V0LkF1dGhGYWlsIgogICAgICAgICAgICBFcnJvck1lc3NhZ2U6CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IEVycm9yIE1lc3NhZ2UsIGVnICJUaWNrZXRHZXRfX0F1dGhvcml6YXRpb24gZmFpbGluZyEiCiAgICBEeW5hbWljRmllbGQ6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIE5hbWU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogTmFtZSBvZiB0aGUgRHluYW1pYyBGaWVsZAogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgVmFsdWU6CiAgICAgICAgICB0eXBlOiB7fQogICAgRHluYW1pY0ZpZWxkczoKICAgICAgdHlwZTogYXJyYXkKICAgICAgaXRlbXM6CiAgICAgICAgJHJlZiA6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9EeW5hbWljRmllbGQnCiAgICBBdHRhY2htZW50OgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBDb250ZW50OgogICAgICAgICAgZGVzY3JpcHRpb246IEFjdHVzbCBjb250ZW50LCBpbiBCYXNlNjQgZW5jb2RpbmcKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZm9ybWF0OiBieXRlICAgICAgICAKICAgICAgICBDb250ZW50QWx0ZXJuYXRpdmU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBDb250ZW50SUQ6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBDb250ZW50VHlwZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBlZyAiYXBwbGljYXRpb24vcGRmIgogICAgICAgIEZpbGVJRDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBGaWxlbmFtZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBlZyAiU3RkQXR0YWNobWVudC1UZXN0MS5wZGYiCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBGaWxlc2l6ZVJhdzoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgIEF0dGFjaG1lbnRzOgogICAgICB0eXBlOiBhcnJheQogICAgICBpdGVtczoKICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQXR0YWNobWVudCc=</File>
        <File Location="var/webservices/metadata/FAQDefaultProvider.yml" Permission="660" Encode="Base64">LS0tCmNvbXBvbmVudHM6CiAgIHNjaGVtYXM6CgogICAgIEZBUToKICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgcHJvcGVydGllczoKICAgICAgICAgSUQ6CiAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICBJdGVtSUQ6CiAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICBGQVFJRDoKICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgIE51bWJlcjoKICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgQ2F0ZWdvcnlJRDoKICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgQ2F0ZWdvcnlOYW1lOgogICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICBDYXRlZ29yeVNob3J0TmFtZToKICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgTGFuZ3VhZ2VJRDoKICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgIExhbmd1YWdlOgogICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICBUaXRsZToKICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgRmllbGQxOgogICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgIGRlc2NyaXB0aW9uOiBTeW1wdGhvbQogICAgICAgICBGaWVsZDI6CiAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgZGVzY3JpcHRpb246IFByb2JsZW0KICAgICAgICAgRmllbGQzOgogICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgIGRlc2NyaXB0aW9uOiBTb2x1dGlvbgogICAgICAgICBGaWVsZDQ6CiAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgIEZpZWxkNToKICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgRmllbGQ2OgogICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgIGRlc2NyaXB0aW9uOiBDb21tZW50cwogICAgICAgICAgICAgICAgICAgICA9PiAnVGhlIFN5bXB0b21zJywKICAgICAgICAgQXBwcm92ZWQ6CiAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICBLZXl3b3JkczoKICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgVm90ZXM6CiAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICBWb3RlUmVzdWx0OgogICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICBTdGF0ZUlEOgogICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgU3RhdGU6CiAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgZGVzY3JpcHRpb246ICJpbnRlcm5hbCAoYWdlbnQpJyBvciAnZXh0ZXJuYWwgKGN1c3RvbWVyKScgb3IiCiAgICAgICAgIFN0YXRlVHlwZUlEOgogICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgU3RhdGVUeXBlTmFtZToKICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICBkZXNjcmlwdGlvbjogIidpbnRlcm5hbCcsIG9yICdleHRlcm5hbCcsIG9yICdwdWJsaWMnIgogICAgICAgICBDcmVhdGVkQnk6CiAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICBDaGFuZ2VkOgogICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICBDaGFuZ2VkQnk6CiAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICBDcmVhdGVkOgogICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICBOYW1lOgogICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICBDb250ZW50VHlwZToKICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICBkZXNjcmlwdGlvbjogZS5nLiAndGV4dC9odG1sJwogICAgICAgICBBdHRhY2htZW50OgogICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9BdHRhY2htZW50cycKICAgICBGQVFzOgogICAgICAgdHlwZTogYXJyYXkKICAgICAgIGl0ZW1zOgogICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvRkFRJwoKICAgICBMYW5ndWFnZUxpc3RSZXNwb25zZToKICAgICAgIGFsbE9mOgogICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9BcGlFcnJvcicKICAgICAgICAgLSB0eXBlOiBvYmplY3QKICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgTGFuZ3VhZ2U6CiAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBTdXBwb3J0ZWQgRkFRIGxhbmd1YWdlcwogICAgICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgICAgICAgIE5hbWU6CiAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwoKICAgICBDYXRlZ29yeUxpc3RSZXNwb25zZToKICAgICAgIGFsbE9mOgogICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9BcGlFcnJvcicKICAgICAgICAgLSB0eXBlOiBvYmplY3QKICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgQ2F0ZWdvcnk6CiAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBBdmFpbGFibGUgRkFRIENhdGVnb3JpZXMKICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgICAgICAgICBOYW1lOgogICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKCiAgICAgUHVibGljRkFRR2V0UmVxdWVzdDoKICAgICAgIGFsbE9mOgogICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVkZW50aWFscycKICAgICAgICAgLSB0eXBlOiBvYmplY3QKICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgSXRlbUlEOgogICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHNpbmdsZSBGQVEgSUQgb3IgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgSURzCiAgICAgICAgICAgICBHZXRBdHRhY2htZW50Q29udGVudHM6CiAgICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHdoZXRoZXIgdG8gcmV0dXJuIEF0dGFjaG1lbnQgQ29udGVudHMgKDB8MSkKCiAgICAgUHVibGljRkFRR2V0UmVzcG9uc2U6CiAgICAgICBhbGxPZjoKICAgICAgICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQXBpRXJyb3InCiAgICAgICAgIC0gdHlwZTogb2JqZWN0CiAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgIEl0ZW1JRDoKICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0ZBUXMnCgogICAgIFB1YmxpY0ZBUVNlYXJjaFJlcXVlc3Q6CiAgICAgICBhbGxPZjoKICAgICAgICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ3JlZGVudGlhbHMnCiAgICAgICAgIC0gdHlwZTogb2JqZWN0CiAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgIE51bWJlcjoKICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiKjEzNCoiCiAgICAgICAgICAgICBUaXRsZToKICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiKnNvbWUgdGl0bGUqIgogICAgICAgICAgICAgV2hhdDoKICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiKnNvbWUgdGV4dCoiCiAgICAgICAgICAgICBLZXl3b3JkOgogICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICIqd2Vic2VydmVyKiIKICAgICAgICAgICAgIExhbmd1YWdlSURzOgogICAgICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICAgICBpdGVtczogCiAgICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgICBDYXRlZ29yeUlEczoKICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgaXRlbXM6IAogICAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICAgT3JkZXJCeToKICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgaXRlbXM6IAogICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiIFsgJ0ZBUUlEJywgJ1RpdGxlJyBdICIKICAgICAgICAgICAgIE9yZGVyQnlEaXJlY3Rpb246CiAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogVXAgb3IgRG93bgoKICAgICBQdWJsaWNGQVFTZWFyY2hSZXNwb25zZToKICAgICAgIGFsbE9mOgogICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9BcGlFcnJvcicKICAgICAgICAgLSB0eXBlOiBvYmplY3QKICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgIGl0ZW1zOiAKICAgICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKCkZBUTo6TGFuZ3VhZ2VMaXN0OgogICBRdWVyeVBhcmFtczogCiAgICBHRVQ6CiAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvcGFyYW1ldGVycy9Vc2VyTG9naW4nCiAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvcGFyYW1ldGVycy9QYXNzd29yZCcKICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9wYXJhbWV0ZXJzL1Nlc3Npb25JRCcgICAKICAgUmVxdWVzdEJvZHk6IHt9CiAgIFJlc3BvbnNlczoKICAgICAyMDA6CiAgICAgICBjb250ZW50OgogICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgICAgYmFzaWM6CiAgICAgICAgICAgICAgIHZhbHVlOgogICAgICAgICAgICAgICAgIExhbmd1YWdlOgogICAgICAgICAgICAgICAgICAgLSBJRDogMQogICAgICAgICAgICAgICAgICAgICBOYW1lOiBlbgogICAgICAgICAgICAgICAgICAgLSBJRDogMgogICAgICAgICAgICAgICAgICAgICBOYW1lOiBkZQogICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9MYW5ndWFnZUxpc3RSZXNwb25zZScKICAgICAgIGRlc2NyaXB0aW9uOiAyMDAgcmVzcG9uc2UKCkZBUTo6UHVibGljQ2F0ZWdvcnlMaXN0OgogICBRdWVyeVBhcmFtczogCiAgICBHRVQ6CiAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvcGFyYW1ldGVycy9Vc2VyTG9naW4nCiAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvcGFyYW1ldGVycy9QYXNzd29yZCcKICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9wYXJhbWV0ZXJzL1Nlc3Npb25JRCcKICAgUmVxdWVzdEJvZHk6IHt9CiAgIFJlc3BvbnNlczoKICAgICAyMDA6CiAgICAgICBjb250ZW50OgogICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgICAgYmFzaWM6CiAgICAgICAgICAgICAgIHZhbHVlOgogICAgICAgICAgICAgICAgIENhdGVnb3J5OgogICAgICAgICAgICAgICAgICAgLSAnbWFpbicKICAgICAgICAgICAgICAgICAgIC0gJ290aGVyJwogICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9MYW5ndWFnZUxpc3RSZXNwb25zZScKICAgICAgIGRlc2NyaXB0aW9uOiAyMDAgcmVzcG9uc2UKCkZBUTo6UHVibGljRkFRR2V0OgogICBRdWVyeVBhcmFtczoKICAgICBHRVQ6CiAgICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9wYXJhbWV0ZXJzL1VzZXJMb2dpbicKICAgICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3BhcmFtZXRlcnMvUGFzc3dvcmQnCiAgICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9wYXJhbWV0ZXJzL1Nlc3Npb25JRCcKICAgICAgLSBkZXNjcmlwdGlvbjogIkZBUSBJRCBvciBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBGQVEgSURzIgogICAgICAgIGluOiBxdWVyeQogICAgICAgIG5hbWU6IEl0ZW1JRAogICAgICAgIHNjaGVtYToKICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgLSBkZXNjcmlwdGlvbjogIlJldHJpZXZlIGFhdGFjaG1lbnQgY29udGVudHMgMHwxIgogICAgICAgIGluOiBxdWVyeQogICAgICAgIG5hbWU6IEdldEF0dGFjaG1lbnRDb250ZW50cwogICAgICAgIHNjaGVtYToKICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCgogICBSZXF1ZXN0Qm9keToKICAgICBjb250ZW50OgogICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgZXhhbXBsZToKICAgICAgICAgICBJdGVtSUQ6ICIxLDIiCiAgICAgICAgICAgR2V0QXR0YWNobWVudENvbnRlbnRzOiAwCiAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAkcmVmIDogJyMvY29tcG9uZW50cy9zY2hlbWFzL1B1YmxpY0ZBUUdldFJlcXVlc3QnCiAgIFJlc3BvbnNlczoKICAgICAyMDA6CiAgICAgICBjb250ZW50OgogICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgICAgYmFzaWM6CiAgICAgICAgICAgICAgIHZhbHVlOgogICAgICAgICAgICAgICAgIEl0ZW1JRDoKICAgICAgICAgICAgICAgICAgIC0gSUQ6IDMyCiAgICAgICAgICAgICAgICAgICAgIEl0ZW1JRDogMzIKICAgICAgICAgICAgICAgICAgICAgRkFRSUQ6IDMyCiAgICAgICAgICAgICAgICAgICAgIE51bWJlcjogMTAwMDMyCiAgICAgICAgICAgICAgICAgICAgIENhdGVnb3J5SUQ6ICcyJwogICAgICAgICAgICAgICAgICAgICBDYXRlZ29yeU5hbWU6ICdDYXRlZ29yeUE6OkNhdGVnb3J5QicKICAgICAgICAgICAgICAgICAgICAgQ2F0ZWdvcnlTaG9ydE5hbWU6ICdDYXRlZ29yeUInCiAgICAgICAgICAgICAgICAgICAgIExhbmd1YWdlSUQ6IDEKICAgICAgICAgICAgICAgICAgICAgTGFuZ3VhZ2U6ICdlbicKICAgICAgICAgICAgICAgICAgICAgVGl0bGU6ICdBcnRpY2xlIFRpdGxlJwogICAgICAgICAgICAgICAgICAgICBGaWVsZDE6ICdUaGUgU3ltcHRvbXMnCiAgICAgICAgICAgICAgICAgICAgIEZpZWxkMjogJ1RoZSBQcm9ibGVtJwogICAgICAgICAgICAgICAgICAgICBGaWVsZDM6ICdUaGUgU29sdXRpb24nCiAgICAgICAgICAgICAgICAgICAgIEZpZWxkNDoKICAgICAgICAgICAgICAgICAgICAgRmllbGQ1OgogICAgICAgICAgICAgICAgICAgICBGaWVsZDY6ICdDb21tZW50cycKICAgICAgICAgICAgICAgICAgICAgQXBwcm92ZWQ6IDEKICAgICAgICAgICAgICAgICAgICAgS2V5d29yZHM6ICdLZXlXb3JkMSBLZXlXb3JkMicKICAgICAgICAgICAgICAgICAgICAgVm90ZXM6IDEwCiAgICAgICAgICAgICAgICAgICAgIFZvdGVSZXN1bHQ6IDUuMDAKICAgICAgICAgICAgICAgICAgICAgU3RhdGVJRDogMQogICAgICAgICAgICAgICAgICAgICBTdGF0ZTogJ2ludGVybmFsIChhZ2VudCknCiAgICAgICAgICAgICAgICAgICAgIFN0YXRlVHlwZUlEOiAxCiAgICAgICAgICAgICAgICAgICAgIFN0YXRlVHlwZU5hbWU6ICdpbnRlcm5hbCcKICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlZEJ5OiAxCiAgICAgICAgICAgICAgICAgICAgIENoYW5nZWQ6ICcyMDExLTAxLTA1IDIxOjUzOjUwJwogICAgICAgICAgICAgICAgICAgICBDaGFuZ2VkQnk6IDEKICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlZDogJzIwMTEtMDEtMDUgMjE6NTM6NTAnCiAgICAgICAgICAgICAgICAgICAgIE5hbWU6ICcxMjk0Mjg2MDMwLTMxLjE2OTcyOTcxMDQ3MzInCiAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlOiAndGV4dC9odG1sJwogICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9QdWJsaWNGQVFHZXRSZXNwb25zZScKICAgICAgIGRlc2NyaXB0aW9uOiAyMDAgcmVzcG9uc2UKCkZBUTo6UHVibGljRkFRU2VhcmNoOgogICBRdWVyeVBhcmFtczoge30KICAgUmVxdWVzdEJvZHk6CiAgICBjb250ZW50OgogICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgZXhhbXBsZToKICAgICAgICAgICAgIFRpdGxlOiAnKnNvbWUgdGl0bGUqJwogICAgICAgICAgICAgV2hhdDogJypzb21lIHRleHQqJwogICAgICAgICAgICAgS2V5d29yZDogJyp3ZWJzZXJ2ZXIqJwogICAgICAgICAgICAgTGFuZ3VhZ2VJRHM6IFsgMSwgMiwgMyBdCiAgICAgICAgICAgICBDYXRlZ29yeUlEczogWyAxLCAzLCA1IF0KICAgICAgICAgICAgIE9yZGVyQnk6IFsgJ0ZBUUlEJywgJ1RpdGxlJyBdCiAgICAgICAgICAgICBPcmRlckJ5RGlyZWN0aW9uOiAnRG93bicKICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICRyZWYgOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvUHVibGljRkFRU2VhcmNoUmVxdWVzdCcKICAgUmVzcG9uc2VzOgogICAgIDIwMDoKICAgICAgIGNvbnRlbnQ6CiAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICAgICBiYXNpYzoKICAgICAgICAgICAgICAgdmFsdWU6CiAgICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICAgICAtIDEKICAgICAgICAgICAgICAgICAgIC0gMgogICAgICAgICAgICAgICAgICAgLSA1CiAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgJHJlZiA6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9QdWJsaWNGQVFTZWFyY2hSZXNwb25zZScKICAgICAgIGRlc2NyaXB0aW9uOiAyMDAgcmVzcG9uc2UKCg==</File>
        <File Location="var/webservices/metadata/CMDBDefaultProvider.yml" Permission="660" Encode="Base64">LS0tIApjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICBDb25maWdJdGVtOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBDbGFzczoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIENvbmZpZ0l0ZW1JRDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBEZXBsb3VtZW50U3RhdGVUeXBlOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgRGVwbG95bWVudFN0YXRlOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgRGVzY3JpcHRpb246CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBEeW5hbWljRmllbGQ6CiAgICAgICAgICAkcmVmIDogJyMvY29tcG9uZW50cy9zY2hlbWFzL0R5bmFtaWNGaWVsZHMnCiAgICAgICAgSW5jaWRlbnRTdGF0ZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIEluY2lkZW50U3RhdGVUeXBlOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgTmFtZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIE51bWJlcjoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBBdHRhY2htZW50OgogICAgICAgICAgICAkcmVmIDogJyMvY29tcG9uZW50cy9zY2hlbWFzL0F0dGFjaG1lbnRzJwoKICAgIENvbmZpZ0l0ZW1GdWxsOgogICAgICBhbGxPZjoKICAgICAgICAtICRyZWYgOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ29uZmlnSXRlbScKICAgICAgICAtIHR5cGU6IG9iamVjdAogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgQ3VyRGVwbG91bWVudFN0YXRlVHlwZToKICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgQ3VyRGVwbG95bWVudFN0YXRlOgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICBDdXJJbmNpZGVudFN0YXRlOgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICBDdXJJbmNpZGVudFN0YXRlVHlwZToKICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgQ2hhbmdlQnk6CiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICBDaGFuZ2VUaW1lOgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICBDcmVhdGVCeToKICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgIENyZWF0ZVRpbWU6CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICBDb25maWdJdGVtUXVlcnk6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIENoYW5nZUJ5OgogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgQ2xhc3NJRHM6CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICBDbGFzc2VzOgogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICBDb25maWdJdGVtQ3JlYXRlVGltZU5ld2VyRGF0ZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIENvbmZpZ0l0ZW1DcmVhdGVUaW1lTmV3ZXJNaW51dGVzOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIENvbmZpZ0l0ZW1DcmVhdGVUaW1lT2xkZXJEYXRlOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgQ29uZmlnSXRlbUNyZWF0ZVRpbWVPbGRlck1pbnV0ZXM6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgQ29uZmlnSXRlbUlEOgogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgQ29uZmlnSXRlbUxhc3RDaGFuZ2VUaW1lTmV3ZXJEYXRlOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgQ29uZmlnSXRlbUxhc3RDaGFuZ2VUaW1lTmV3ZXJNaW51dGVzOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIENvbmZpZ0l0ZW1MYXN0Q2hhbmdlVGltZU9sZGVyRGF0ZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIENvbmZpZ0l0ZW1MYXN0Q2hhbmdlVGltZU9sZGVyTWludXRlczoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBDcmVhdGVCeToKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgIEN1ckRlcGxTdGF0ZUlEczoKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgIEN1ckRlcGxTdGF0ZXM6CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgIEN1ckluY2lTdGF0ZUlEczoKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgIEN1ckluY2lTdGF0ZXM6CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgIERlcGxTdGF0ZUlEczoKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgIERlcGxTdGF0ZXM6CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICMgRHluYW1pY0ZpZWxkX0ZpZWxkTmFtZVg6CiAgICAgICAgIyAgIHByb3BlcnRpZXM6CiAgICAgICAgIyAgICAgRW1wdHk6CiAgICAgICAgIyAgICAgICBlbnVtOgogICAgICAgICMgICAgICAgLSAwCiAgICAgICAgIyAgICAgICAtIDEKICAgICAgICAjICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAjICAgICBFcXVhbHM6CiAgICAgICAgIyAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAjICAgICBHcmVhdGVyVGhhbjoKICAgICAgICAjICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICMgICAgIEdyZWF0ZXJUaGFuRXF1YWxzOgogICAgICAgICMgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgIyAgICAgTGlrZToKICAgICAgICAjICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICMgICAgIFNtYWxsZXJUaGFuOgogICAgICAgICMgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgIyAgICAgU21hbGxlclRoYW5FcXVhbHM6CiAgICAgICAgIyAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAjICAgdHlwZTogb2JqZWN0CiAgICAgICAgSW5jaVN0YXRlSURzOgogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgSW5jaVN0YXRlczoKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgTGltaXQ6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgTmFtZToKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgTnVtYmVyOgogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICBPcmRlckJ5OgogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIGVudW06CiAgICAgICAgICAgIC0gVXAKICAgICAgICAgICAgLSBEb3duCiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICBTb3J0Qnk6CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgZW51bToKICAgICAgICAgICAgLSBDb25maWdJdGVtCiAgICAgICAgICAgIC0gTnVtYmVyCiAgICAgICAgICAgIC0gTmFtZQogICAgICAgICAgICAtIERlcGxTdGF0ZQogICAgICAgICAgICAtIEluY2lTdGF0ZQogICAgICAgICAgICAtIEN1ckRlcGxTdGF0ZQogICAgICAgICAgICAtIEN1ckluY2lTdGF0ZQogICAgICAgICAgICAtIEFnZQogICAgICAgICAgICAtIENyZWF0ZWQKICAgICAgICAgICAgLSBDaGFuZ2VkCiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgdHlwZTogb2JqZWN0CgogICAgQ29uZmlnSXRlbUdldFJlcXVlc3Q6CiAgICAgIGFsbE9mOgogICAgICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWRlbnRpYWxzJwogICAgICAgIC0gdHlwZTogb2JqZWN0CiAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICBDb25maWdJdGVtSUQ6CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgIEF0dGFjaG1lbnRzOgogICAgICAgICAgICAgIGVudW06CiAgICAgICAgICAgICAgLSAwCiAgICAgICAgICAgICAgLSAxCiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgQ29uZmlnSXRlbUdldFJlc3BvbnNlOgogICAgICBhbGxPZjoKICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9BcGlFcnJvcicKICAgICAgICAtIHR5cGU6IG9iamVjdAogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgQ29uZmlnSXRlbToKICAgICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NvbmZpZ0l0ZW1GdWxsJwoKICAgIENvbmZpZ0l0ZW1TZWFyY2hSZXF1ZXN0OgogICAgICBhbGxPZjoKICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVkZW50aWFscycKICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9Db25maWdJdGVtUXVlcnknCgogICAgQ29uZmlnSXRlbVNlYXJjaFJlc3BvbnNlOgogICAgICBhbGxPZjoKICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9BcGlFcnJvcicKICAgICAgICAtIHR5cGU6IG9iamVjdAogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgQ29uZmlnSXRlbUlEOgogICAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCgogICAgQ29uZmlnSXRlbURlbGV0ZVJlcXVlc3Q6CiAgICAgIGFsbE9mOgogICAgICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWRlbnRpYWxzJwogICAgICAgIC0gdHlwZTogb2JqZWN0CiAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICBDb25maWdJdGVtSUQ6CiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgoKICAgIENvbmZpZ0l0ZW1EZWxldGVSZXNwb25zZToKICAgICAgYWxsT2Y6CiAgICAgICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQXBpRXJyb3InCiAgICAgICAgLSB0eXBlOiBvYmplY3QKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIENvbmZpZ0l0ZW1JRDoKICAgICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgoKICAgIENvbmZpZ0l0ZW1VcHNlcnRSZXF1ZXN0OgogICAgICBhbGxPZjoKICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVkZW50aWFscycKICAgICAgICAtIHR5cGU6IG9iamVjdAogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgQ29uZmlnSXRlbToKICAgICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NvbmZpZ0l0ZW0nCiAgCiAgICBDb25maWdJdGVtVXBzZXJ0UmVzcG9uc2U6CiAgICAgIGFsbE9mOgogICAgICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0FwaUVycm9yJwogICAgICAgIC0gdHlwZTogb2JqZWN0CiAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICBDb25maWdJdGVtOgogICAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgICAgIENvbmZpZ0l0ZW1JRDoKICAgICAgICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgICAgICAgIE51bWJlcjoKICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKCkNvbmZpZ0l0ZW06OkNvbmZpZ0l0ZW1HZXQ6CiAgUXVlcnlQYXJhbXM6CiAgICBHRVQ6IAogICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3BhcmFtZXRlcnMvVXNlckxvZ2luJwogICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3BhcmFtZXRlcnMvUGFzc3dvcmQnCiAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvcGFyYW1ldGVycy9TZXNzaW9uSUQnICAgCiAgICAtIGRlc2NyaXB0aW9uOiBJRCBvZiBDb25maWdpdGVtIHRvIGZldGNoLiBDYW4gYWxzbyBiZSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mCiAgICAgICAgSURzLgogICAgICBpbjogcXVlcnkKICAgICAgbmFtZTogQ29uZmlnSXRlbUlECiAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgIHNjaGVtYToKICAgICAgICB0eXBlOiBzdHJpbmcKICAgIC0gZGVzY3JpcHRpb246IEluY2x1ZGUgYXR0YWNobWVudHMKICAgICAgaW46IHF1ZXJ5CiAgICAgIG5hbWU6IEF0dGFjaG1lbnRzCiAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICBzY2hlbWE6CiAgICAgICAgZW51bToKICAgICAgICAtIDAKICAgICAgICAtIDEKICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgUmVxdWVzdEJvZHk6IAogICAgY29udGVudDoKICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICBleGFtcGxlOgogICAgICAgICAgQ29uZmlnSXRlbUlEOiAxMjN0CiAgICAgICAgICBBdHRhY2htZW50czogMAogICAgICAgIHNjaGVtYToKICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9Db25maWdJdGVtR2V0UmVxdWVzdCcKICAgIHJlcXVpcmVkOiB0cnVlCgogIFJlc3BvbnNlczoKICAgIDIwMDoKICAgICAgY29udGVudDoKICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ29uZmlnSXRlbUdldFJlc3BvbnNlJwogICAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICAgIGJhc2ljOgogICAgICAgICAgICAgIHZhbHVlOgogICAgICAgICAgICAgICAgQ29uZmlnSXRlbToKICAgICAgICAgICAgICAgIC0gQ2hhbmdlQnk6IDEKICAgICAgICAgICAgICAgICAgQ2hhbmdlVGltZTogMjAyNS0wOC0yNCAxMjozMjoyMQogICAgICAgICAgICAgICAgICBDbGFzczogQ291bnRyeQogICAgICAgICAgICAgICAgICBDb25maWdJdGVtSUQ6IDEKICAgICAgICAgICAgICAgICAgQ3JlYXRlQnk6IDEKICAgICAgICAgICAgICAgICAgQ3JlYXRlVGltZTogMjAyNS0wOC0yNCAxMjozMjoyMQogICAgICAgICAgICAgICAgICBDdXJEZXBsU3RhdGU6IFByb2R1Y3Rpb24KICAgICAgICAgICAgICAgICAgQ3VyRGVwbFN0YXRlVHlwZTogcHJvZHVjdGl2ZQogICAgICAgICAgICAgICAgICBDdXJJbmNpU3RhdGU6IE9wZXJhdGlvbmFsCiAgICAgICAgICAgICAgICAgIEN1ckluY2lTdGF0ZVR5cGU6IG9wZXJhdGlvbmFsCiAgICAgICAgICAgICAgICAgIERlcGxTdGF0ZTogUHJvZHVjdGlvbgogICAgICAgICAgICAgICAgICBEZXBsU3RhdGVUeXBlOiBwcm9kdWN0aXZlCiAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uOiA8IS0tIEhUTUwgRGVzY3JpcHRpb24gLS0+CiAgICAgICAgICAgICAgICAgIEluY2lTdGF0ZTogT3BlcmF0aW9uYWwKICAgICAgICAgICAgICAgICAgSW5jaVN0YXRlVHlwZTogb3BlcmF0aW9uYWwKICAgICAgICAgICAgICAgICAgTGFzdFZlcnNpb25JRDogMQogICAgICAgICAgICAgICAgICBOYW1lOiBCYXZhcmlhCiAgICAgICAgICAgICAgICAgIE51bWJlcjogIjEwNDkwMDAwMDEiCiAgICAgICAgICAgICAgICAgIFZlcnNpb25JRDogMQogICAgICAgICAgICAgICAgICBWZXJzaW9uU3RyaW5nOiAxCiAgICAgIGRlc2NyaXB0aW9uOiAyMDAgcmVzcG9uc2UKCkNvbmZpZ0l0ZW06OkNvbmZpZ0l0ZW1TZWFyY2g6CiAgUXVlcnlQYXJhbXM6CiAgICBHRVQ6CiAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvcGFyYW1ldGVycy9Vc2VyTG9naW4nCiAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvcGFyYW1ldGVycy9QYXNzd29yZCcKICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9wYXJhbWV0ZXJzL1Nlc3Npb25JRCcgICAKICAgIC0gZGVzY3JpcHRpb246IExpbWl0IG51bWJlciBvZiByZXN1bHRzLgogICAgICBpbjogcXVlcnkKICAgICAgbmFtZTogTGltaXQKICAgICAgcmVxdWlyZWQ6IGZhbHNlCiAgICAgIHNjaGVtYToKICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAtIGRlc2NyaXB0aW9uOiBTZWFyY2ggYnkgSUQuCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBDb25maWdJdGVtSUQKICAgICAgcmVxdWlyZWQ6IGZhbHNlCiAgICAgIHNjaGVtYToKICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAtIGRlc2NyaXB0aW9uOiBTZWFyY2ggYnkgQ29uZmlnSXRlbSBOdW1iZXIuCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBOdW1iZXIKICAgICAgcmVxdWlyZWQ6IGZhbHNlCiAgICAgIHNjaGVtYToKICAgICAgICB0eXBlOiBzdHJpbmcKICAgIC0gZGVzY3JpcHRpb246IFNlYXJjaCBieSBDb25maWdJdGVtIE5hbWUuCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBOYW1lCiAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICBzY2hlbWE6CiAgICAgICAgdHlwZTogc3RyaW5nCiAgICAtIGRlc2NyaXB0aW9uOiBTZWFyY2ggZm9yIENvbmZpZ0l0ZW1zIGNyZWF0ZWQgYmVmb3JlIG1pbnV0ZXMuCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBDb25maWdJdGVtQ3JlYXRlVGltZU9sZGVyTWludXRlcwogICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgc2NoZW1hOgogICAgICAgIHR5cGU6IGludGVnZXIKICAgIC0gZGVzY3JpcHRpb246IFNlYXJjaCBmb3IgQ29uZmlnSXRlbXMgY3JlYXRlZCBpbiB0aGUgbGFzdCBYIG1pbnV0ZXMuCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBDb25maWdJdGVtQ3JlYXRlVGltZU5ld2VyTWludXRlcwogICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgc2NoZW1hOgogICAgICAgIHR5cGU6IGludGVnZXIKICAgIC0gZGVzY3JpcHRpb246IFNlYXJjaCBmb3IgQ29uZmlnSXRlbXMgY3JlYXRlZCBiZWZvcmUgZGF0ZS4KICAgICAgaW46IHF1ZXJ5CiAgICAgIG5hbWU6IENvbmZpZ0l0ZW1DcmVhdGVUaW1lT2xkZXJEYXRlCiAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICBzY2hlbWE6CiAgICAgICAgdHlwZTogc3RyaW5nCiAgICAtIGRlc2NyaXB0aW9uOiBTZWFyY2ggZm9yIENvbmZpZ0l0ZW1zIGNyZWF0ZWQgc2luY2UgZGF0ZS4KICAgICAgaW46IHF1ZXJ5CiAgICAgIG5hbWU6IENvbmZpZ0l0ZW1DcmVhdGVUaW1lTmV3ZXJEYXRlCiAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICBzY2hlbWE6CiAgICAgICAgdHlwZTogc3RyaW5nCiAgICAtIGRlc2NyaXB0aW9uOiBTZWFyY2ggZm9yIENvbmZpZ0l0ZW1zIGNoYW5nZWQgYmVmb3JlIG1pbnV0ZXMuCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBDb25maWdJdGVtTGFzdENoYW5nZVRpbWVPbGRlck1pbnV0ZXMKICAgICAgcmVxdWlyZWQ6IGZhbHNlCiAgICAgIHNjaGVtYToKICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAtIGRlc2NyaXB0aW9uOiBTZWFyY2ggZm9yIENvbmZpZ0l0ZW1zIGNoYW5nZWQgaW4gdGhlIGxhc3QgWCBtaW51dGVzLgogICAgICBpbjogcXVlcnkKICAgICAgbmFtZTogQ29uZmlnSXRlbUxhc3RDaGFuZ2VUaW1lTmV3ZXJNaW51dGVzCiAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICBzY2hlbWE6CiAgICAgICAgdHlwZTogaW50ZWdlcgogICAgLSBkZXNjcmlwdGlvbjogU2VhcmNoIGZvciBDb25maWdJdGVtcyBjaGFuZ2VkIGJlZm9yZSBkYXRlLgogICAgICBpbjogcXVlcnkKICAgICAgbmFtZTogQ29uZmlnSXRlbUxhc3RDaGFuZ2VUaW1lT2xkZXJEYXRlCiAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICBzY2hlbWE6CiAgICAgICAgdHlwZTogc3RyaW5nCiAgICAtIGRlc2NyaXB0aW9uOiBTZWFyY2ggZm9yIENvbmZpZ0l0ZW1zIGNoYW5nZWQgc2luY2UgZGF0ZS4KICAgICAgaW46IHF1ZXJ5CiAgICAgIG5hbWU6IENvbmZpZ0l0ZW1MYXN0Q2hhbmdlVGltZU5ld2VyRGF0ZQogICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgc2NoZW1hOgogICAgICAgIHR5cGU6IHN0cmluZwogICAgLSBkZXNjcmlwdGlvbjogT3JkZXIgb2YgcmVzdWx0LgogICAgICBpbjogcXVlcnkKICAgICAgbmFtZTogT3JkZXJCeQogICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgc2NoZW1hOgogICAgICAgIGVudW06CiAgICAgICAgLSBVcAogICAgICAgIC0gRG93bgogICAgICAgIHR5cGU6IHN0cmluZwogICAgLSBkZXNjcmlwdGlvbjogU29ydCByZXN1bHRzIGJ5IGZpZWxkLgogICAgICBpbjogcXVlcnkKICAgICAgbmFtZTogU29ydEJ5CiAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICBzY2hlbWE6CiAgICAgICAgZW51bToKICAgICAgICAtIENvbmZpZ0l0ZW0KICAgICAgICAtIE51bWJlcgogICAgICAgIC0gTmFtZQogICAgICAgIC0gRGVwbFN0YXRlCiAgICAgICAgLSBJbmNpU3RhdGUKICAgICAgICAtIEN1ckRlcGxTdGF0ZQogICAgICAgIC0gQ3VySW5jaVN0YXRlCiAgICAgICAgLSBBZ2UKICAgICAgICAtIENyZWF0ZWQKICAgICAgICAtIENoYW5nZWQKICAgICAgICB0eXBlOiBzdHJpbmcKICBSZXF1ZXN0Qm9keToKICAgIGNvbnRlbnQ6CiAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgZXhhbXBsZToKICAgICAgICAgIENsYXNzZXM6CiAgICAgICAgICAtIENvdW50cnkKICAgICAgICAgIE5hbWU6IEJhdmFyaWEKICAgICAgICBzY2hlbWE6CiAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ29uZmlnSXRlbVNlYXJjaFJlcXVlc3QnCiAgICByZXF1aXJlZDogZmFsc2UKICBSZXNwb25zZXM6ICAgICAgIAogICAgMjAwOgogICAgICBjb250ZW50OgogICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9Db25maWdJdGVtU2VhcmNoUmVzcG9uc2UnCiAgICAgICAgICBleGFtcGxlczoKICAgICAgICAgICAgYmFzaWM6CiAgICAgICAgICAgICAgdmFsdWU6CiAgICAgICAgICAgICAgICBDb25maWdJdGVtSUQ6CiAgICAgICAgICAgICAgICAtIDEKICAgICAgICAgICAgICAgIC0gNAogICAgICAgICAgICAgICAgLSA1CiAgICAgIGRlc2NyaXB0aW9uOiAyMDAgcmVzcG9uc2UKCkNvbmZpZ0l0ZW06OkNvbmZpZ0l0ZW1EZWxldGU6CiAgUXVlcnlQYXJhbXM6IAogICAgREVMRVRFOgogICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3BhcmFtZXRlcnMvVXNlckxvZ2luJwogICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3BhcmFtZXRlcnMvUGFzc3dvcmQnCiAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvcGFyYW1ldGVycy9TZXNzaW9uSUQnICAgCiAgICBHRVQ6CiAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvcGFyYW1ldGVycy9Vc2VyTG9naW4nCiAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvcGFyYW1ldGVycy9QYXNzd29yZCcKICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9wYXJhbWV0ZXJzL1Nlc3Npb25JRCcgICAKCiAgUmVxdWVzdEJvZHk6CiAgICBjb250ZW50OgogICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgIGV4YW1wbGU6CiAgICAgICAgICBDb25maWdJdGVtSUQ6IDEKICAgICAgICBzY2hlbWE6CiAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ29uZmlnSXRlbURlbGV0ZVJlcXVlc3QnCiAgICByZXF1aXJlZDogdHJ1ZQogIFJlc3BvbnNlczoKICAgIDIwMDoKICAgICAgY29udGVudDoKICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ29uZmlnSXRlbURlbGV0ZVJlc3BvbnNlJwogICAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICAgIGJhc2ljOgogICAgICAgICAgICAgIHZhbHVlOgogICAgICAgICAgICAgICAgQ29uZmlnSXRlbUlEOgogICAgICAgICAgICAgICAgLSAxCiAgICAgIGRlc2NyaXB0aW9uOiAyMDAgcmVzcG9uc2UKCkNvbmZpZ0l0ZW06OkNvbmZpZ0l0ZW1VcHNlcnQ6CiAgUXVlcnlQYXJhbXM6IHt9CiAgUmVxdWVzdEJvZHk6CiAgICBjb250ZW50OgogICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgIHNjaGVtYToKICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9Db25maWdJdGVtVXBzZXJ0UmVxdWVzdCcKICAgICAgICBleGFtcGxlOgogICAgICAgICAgQ29uZmlnSXRlbToKICAgICAgICAgIC0gQ2xhc3M6IENvdW50cnkKICAgICAgICAgICAgRGVwbG95bWVudFN0YXRlOiBQcm9kdWN0aW9uCiAgICAgICAgICAgIERlc2NyaXB0aW9uOiBodG1sIGRlc2NyaXB0aW9uCiAgICAgICAgICAgIEluY2lkZW50U3RhdGU6IE9wZXJhdGlvbmFsCiAgICAgICAgICAgIE5hbWU6IEhlc3NlbgogICAgICAgICAgICBOdW1iZXI6IDQ3MTEKICAgIHJlcXVpcmVkOiBmYWxzZQogIFJlc3BvbnNlczoKICAgIDIwMDoKICAgICAgY29udGVudDoKICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ29uZmlnSXRlbVVwc2VydFJlc3BvbnNlJwogICAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICAgIGJhc2ljOgogICAgICAgICAgICAgIHZhbHVlOgogICAgICAgICAgICAgICAgQ29uZmlnSXRlbUlEOiAxCiAgICAgIGRlc2NyaXB0aW9uOiAyMDAgcmVzcG9uc2UK</File>
        <File Location="var/webservices/metadata/SessionDefaultProvider.yml" Permission="660" Encode="Base64">LS0tIApjb21wb25lbnRzOgogIHNjaGVtYXM6CiAgICBMb2dpbkRhdGE6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIFBhc3N3b3JkOgogICAgICAgICAgZGVzY3JpcHRpb246IFRoZSBQYXNzd29yZCBvZiB0aGUgVXNlciBwZXJmb3JtaW5nIHRoZSBvcGVyYXRpb24KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIFVzZXJMb2dpbjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgVXNlckxvZ2luIG9mIHRoZSBVc2VyIHBlcmZvcm1pbmcgdGhlIG9wZXJhdGlvbgogICAgICAgICAgdHlwZTogc3RyaW5nIAogICAgU2Vzc2lvbklkZW50aWZpZXI6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIFNlc3Npb25JRDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBBIHZhbGlkIFNlc3Npb25JRCBvZiB0aGUgVXNlciBwZXJmb3JtaW5nIHRoZSBvcGVyYXRpb24KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICByZXF1aXJlZDoKICAgICAgICAtIFNlc3Npb25JRAogICAgQ3JlZGVudGlhbHM6CiAgICAgIG9uZU9mOgogICAgICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0xvZ2luRGF0YScKICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9TZXNzaW9uSWRlbnRpZmllcicKICAgIFNlc3Npb25DcmVhdGVSZXF1ZXN0OgogICAgICBhbGxPZjoKICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9Mb2dpbkRhdGEnCiAgICBTZXNzaW9uQ3JlYXRlUmVzcG9uc2U6CiAgICAgIGFsbE9mOgogICAgICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0FwaUVycm9yJwogICAgICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1Nlc3Npb25JZGVudGlmaWVyJwogICAgU2Vzc2lvbkdldFJlcXVlc3Q6CiAgICAgIGFsbE9mOgogICAgICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1Nlc3Npb25JZGVudGlmaWVyJwogICAgU2Vzc2lvbkdldFJlc3BvbnNlOgogICAgICBhbGxPZjoKICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9BcGlFcnJvcicKICAgICAgICAtIHR5cGU6IG9iamVjdAogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgU2Vzc2lvbkRhdGE6CiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IEtleS9WYWx1ZSBwYWlycyBvZiBTZXNzaW9uSW5mbyAKICAgICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgICAgICBLZXk6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgICAgIFZhbHVlOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZyAgCgpTZXNzaW9uOjpTZXNzaW9uQ3JlYXRlOgogIFF1ZXJ5UGFyYW1zOgogICAgR0VUOgogICAgICAtIGRlc2NyaXB0aW9uOiBUaGUgVXNlckxvZ2luIG9mIHRoZSBVc2VyIHBlcmZvcm1pbmcgdGhlIG9wZXJhdGlvbgogICAgICAgIGluOiBxdWVyeQogICAgICAgIG5hbWU6IFVzZXJMb2dpbgogICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgc2NoZW1hOgogICAgICAgICAgZXhhbXBsZTogdmFsaWRVc2VyTG9naW4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAtIGRlc2NyaXB0aW9uOiBUaGUgUGFzc3dvcmQgb2YgdGhlIFVzZXIgcGVyZm9ybWluZyB0aGUgb3BlcmF0aW9uCiAgICAgICAgaW46IHF1ZXJ5CiAgICAgICAgbmFtZTogUGFzc3dvcmQKICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgIHNjaGVtYToKICAgICAgICAgIGV4YW1wbGU6IHZhbGlkVXNlclBhc3N3b3JkCiAgICAgICAgICB0eXBlOiBzdHJpbmcgCiAgUmVxdWVzdEJvZHk6CiAgICBjb250ZW50OgogICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgIGV4YW1wbGU6CiAgICAgICAgICBQYXNzd29yZDogdmFsaWRVc2VyUGFzc3dvcmQKICAgICAgICAgIFVzZXJMb2dpbjogdmFsaWRVc2VyTG9naW4KICAgICAgICBzY2hlbWE6CiAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvU2Vzc2lvbkNyZWF0ZVJlcXVlc3QnCiAgICByZXF1aXJlZDogdHJ1ZQogIFJlc3BvbnNlczoKICAgIDIwMDoKICAgICAgY29udGVudDoKICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICAgIGJhc2ljOgogICAgICAgICAgICAgIHZhbHVlOgogICAgICAgICAgICAgICAgU2Vzc2lvbklEOiAiMTIzNDU2Nzg5MCIKICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1Nlc3Npb25DcmVhdGVSZXNwb25zZScKICAgICAgZGVzY3JpcHRpb246IDIwMCByZXNwb25zZQoKU2Vzc2lvbjo6U2Vzc2lvbkdldDoKICBRdWVyeVBhcmFtczoKICAgIEdFVDoKICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9wYXJhbWV0ZXJzL1Nlc3Npb25JRCcKICBSZXF1ZXN0Qm9keToKICAgIGNvbnRlbnQ6CiAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgZXhhbXBsZToKICAgICAgICAgIFNlc3Npb25JRDogWFhYCiAgICAgICAgc2NoZW1hOgogICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1Nlc3Npb25HZXRSZXF1ZXN0JwogICAgcmVxdWlyZWQ6IHRydWUgICAgCiAgUmVzcG9uc2VzOiAgCiAgICAyMDA6CiAgICAgIGRlc2NyaXB0aW9uOiAyMDAgcmVzcG9uc2UgICAgCiAgICAgIGNvbnRlbnQ6CiAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1Nlc3Npb25HZXRSZXNwb25zZScKICAgICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgICBiYXNpYzoKICAgICAgICAgICAgICB2YWx1ZToKICAgICAgICAgICAgICAgIFNlc3Npb25EYXRhOgogICAgICAgICAgICAgICAgICAtICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICJLZXkiOiAiQWRtaW5Db21tdW5pY2F0aW9uTG9nUGFnZVNob3duIgogICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICIyNSIKICAgICAgICAgICAgICAgICAgLQogICAgICAgICAgICAgICAgICAgICJLZXkiOiAiQWRtaW5EeW5hbWljRmllbGRzT3ZlcnZpZXdQYWdlU2hvd24iCiAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIjI1MCIKICAgICAgICAgICAgICAgICAgLQogICAgICAgICAgICAgICAgICAgICJLZXkiOiAiQ2hhbmdlVGltZSIKICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAiMjAyNS0wOS0xMSAxODo0MTozMyIKICAgICAgICAgICAgICAgICAgLQogICAgICAgICAgICAgICAgICAgICJLZXkiOiAiQ3JlYXRlVGltZSIKICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAiMjAyNS0wOS0xMSAxODo0MTozMyIKICAgICAgICAgICAgICAgICAgLQogICAgICAgICAgICAgICAgICAgICJLZXkiOiAiU2Vzc2lvblNvdXJjZSIKICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAiR2VuZXJpY0ludGVyZmFjZSIKICAgICAgICAgICAgICAgICAgLQogICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICIiCiAgICAgICAgICAgICAgICAgICAgIktleSI6ICJVc2VyQXV0aEJhY2tlbmQiCiAgICAgICAgICAgICAgICAgIC0KICAgICAgICAgICAgICAgICAgICAiS2V5IjogIlVzZXJDcmVhdGVOZXh0TWFzayIKICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAiIgogICAgICAgICAgICAgICAgICAtCiAgICAgICAgICAgICAgICAgICAgIktleSI6ICJVc2VyRW1haWwiCiAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogInJvb3RAbG9jYWxob3N0IgogICAgICAgICAgICAgICAgICAtCiAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIi0iCiAgICAgICAgICAgICAgICAgICAgIktleSI6ICJVc2VyRmlyc3RuYW1lIgogICAgICAgICAgICAgICAgICAtCiAgICAgICAgICAgICAgICAgICAgIktleSI6ICJVc2VyRnVsbG5hbWUiCiAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIi0gLSIKICAgICAgICAgICAgICAgICAgLQogICAgICAgICAgICAgICAgICAgICJLZXkiOiAiVXNlcklEIgogICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICIxIgogICAgICAgICAgICAgICAgICAtCiAgICAgICAgICAgICAgICAgICAgIktleSI6ICJVc2VyTGFzdExvZ2luIgogICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICIxNzU3ODg3OTk3IgogICAgICAgICAgICAgICAgICAtCiAgICAgICAgICAgICAgICAgICAgIktleSI6ICJVc2VyTGFzdExvZ2luVGltZXN0YW1wIgogICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICIyMDI1LTA5LTE0IDIyOjEzOjE3IgogICAgICAgICAgICAgICAgICAtCiAgICAgICAgICAgICAgICAgICAgIktleSI6ICJVc2VyTGFzdFJlcXVlc3QiCiAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIjE3NTc4ODc5OTgiCiAgICAgICAgICAgICAgICAgIC0KICAgICAgICAgICAgICAgICAgICAiS2V5IjogIlVzZXJMYXN0bmFtZSIKICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAiLSIKICAgICAgICAgICAgICAgICAgLQogICAgICAgICAgICAgICAgICAgICJLZXkiOiAiVXNlckxvZ2luIgogICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICJyb290QGxvY2FsaG9zdCIKICAgICAgICAgICAgICAgICAgLQogICAgICAgICAgICAgICAgICAgICJLZXkiOiAiVXNlckxvZ2luRmFpbGVkIgogICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICIwIgogICAgICAgICAgICAgICAgICAtCiAgICAgICAgICAgICAgICAgICAgIktleSI6ICJVc2VyTWFya1RpY2tldFNlZW5SZWRpcmVjdFVSTCIKICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAiIgogICAgICAgICAgICAgICAgICAtCiAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIiIKICAgICAgICAgICAgICAgICAgICAiS2V5IjogIlVzZXJNYXJrVGlja2V0VW5zZWVuUmVkaXJlY3RVUkwiCiAgICAgICAgICAgICAgICAgIC0KICAgICAgICAgICAgICAgICAgICAiS2V5IjogIlVzZXJSZWZyZXNoVGltZSIKICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAiMCIKICAgICAgICAgICAgICAgICAgLQogICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICIxNzIuMTkuMC4xIgogICAgICAgICAgICAgICAgICAgICJLZXkiOiAiVXNlclJlbW90ZUFkZHIiCiAgICAgICAgICAgICAgICAgIC0KICAgICAgICAgICAgICAgICAgICAiS2V5IjogIlVzZXJSZW1vdGVVc2VyQWdlbnQiCiAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIk1vemlsbGEvNS4wIChYMTE7IFVidW50dTsgTGludXggeDg2XzY0OyBydjoxNDIuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC8xNDIuMCIKICAgICAgICAgICAgICAgICAgLQogICAgICAgICAgICAgICAgICAgICJLZXkiOiAiVXNlclNlc3Npb25TdGFydCIKICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAiMTc1Nzg4Nzk5OCIKICAgICAgICAgICAgICAgICAgLQogICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICJTbWFsbCIKICAgICAgICAgICAgICAgICAgICAiS2V5IjogIlVzZXJUaWNrZXRPdmVydmlld0FnZW50Q3VzdG9tZXJTZWFyY2giCiAgICAgICAgICAgICAgICAgIC0KICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAiMjAiCiAgICAgICAgICAgICAgICAgICAgIktleSI6ICJVc2VyVGlja2V0T3ZlcnZpZXdNZWRpdW1QYWdlU2hvd24iCiAgICAgICAgICAgICAgICAgIC0KICAgICAgICAgICAgICAgICAgICAiS2V5IjogIlVzZXJUaWNrZXRPdmVydmlld1ByZXZpZXdQYWdlU2hvd24iCiAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIjE1IgogICAgICAgICAgICAgICAgICAtCiAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIjI1IgogICAgICAgICAgICAgICAgICAgICJLZXkiOiAiVXNlclRpY2tldE92ZXJ2aWV3U21hbGxQYWdlU2hvd24iCiAgICAgICAgICAgICAgICAgIC0KICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAKICAgICAgICAgICAgICAgICAgICAiS2V5IjogIlVzZXJUaXRsZSIKICAgICAgICAgICAgICAgICAgLQogICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICJVc2VyIgogICAgICAgICAgICAgICAgICAgICJLZXkiOiAiVXNlclR5cGUiCiAgICAgICAgICAgICAgICAgIC0KICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAiMSIKICAgICAgICAgICAgICAgICAgICAiS2V5IjogIlZhbGlkSUQi</File>
        <File Location="var/webservices/metadata/TicketDefaultProvider.yml" Permission="660" Encode="Base64">LS0tIApjb21wb25lbnRzOgogIHBhcmFtZXRlcnM6CiAgICBUaWNrZXRJRDoKICAgICAgZGVzY3JpcHRpb246IFRpY2tldElEIHRvIGZldGNoCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBUaWNrZXRJRAogICAgICByZXF1aXJlZDogdHJ1ZQogICAgICBzY2hlbWE6CiAgICAgICAgdHlwZTogc3RyaW5nCiAgICBEeW5hbWljRmllbGRzOgogICAgICBkZXNjcmlwdGlvbjogSW5jbHVkZSBEeW5hbWljIEZpZWxkcwogICAgICBpbjogcXVlcnkKICAgICAgbmFtZTogRHluYW1pY0ZpZWxkcwogICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgc2NoZW1hOgogICAgICAgIGVudW06CiAgICAgICAgLSAwCiAgICAgICAgLSAxCiAgICAgICAgdHlwZTogaW50ZWdlcgoKICBzY2hlbWFzOgogICAgQXJ0aWNsZXM6CiAgICAgIHR5cGU6IGFycmF5CiAgICAgIGl0ZW1zOgogICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9BcnRpY2xlJwogICAgQXJ0aWNsZToKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgQXV0b1Jlc3BvbnNlVHlwZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBOYW1lIG9mIEF1dG9SZXNwb25zZSB0eXBlIGZyb20gQWRtaW4gVUkgQXV0byBSZXNwb25zZXMKICAgICAgICAgIHR5cGU6IHN0cmluZyAgICAgICAgICAgICAgICAgIAogICAgICAgIER5bmFtaWNGaWVsZDoKICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9EeW5hbWljRmllbGRzJwogICAgICAgIEFydGljbGVJRDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBJRCBvZiB0aGUgYXJ0aWNsZQogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIENvbW11bmljYXRpb25DaGFubmVsOgogICAgICAgICAgZGVzY3JpcHRpb246ICJPbmUgb2YgJ0VtYWlsJywgJ1Bob25lJywgJ0ludGVybmFsJyIKICAgICAgICAgIGVudW06CiAgICAgICAgICAtIEVtYWlsCiAgICAgICAgICAtIFBob25lCiAgICAgICAgICAtIEludGVybmFsCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBDb21tdW5pY2F0aW9uQ2hhbm5lbElEOgogICAgICAgICAgdHlwZTogaW50ZWdlciAgICAgICAgICAKICAgICAgICBGcm9tOgogICAgICAgICAgZGVzY3JpcHRpb246IEVtYWlsCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBUbzoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBFbWFpbAogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgQ2M6CiAgICAgICAgICBkZXNjcmlwdGlvbjogRW1haWwKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIFN1YmplY3Q6CiAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIGFydGljbGUgc3ViamVjdAogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgQm9keToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgYXJ0aWNsZSBib2R5CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBSZXBseVRvOgogICAgICAgICAgZGVzY3JpcHRpb246IEVtYWlsCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBNZXNzYWdlSUQ6CiAgICAgICAgICBkZXNjcmlwdGlvbjogTWVzc2FnZSBJRAogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgSW5SZXBseVRvOgogICAgICAgICAgZGVzY3JpcHRpb246IEVtYWlsCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBSZWZlcmVuY2VzOgogICAgICAgICAgZGVzY3JpcHRpb246IE1lc3NhZ2UgSUQKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIFNlbmRlclR5cGU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogIk9uZSBvZiAnY3VzdG9tZXInLCAnYWdlbnQnLCAnc3lzdGVtJyIKICAgICAgICAgIGVudW06CiAgICAgICAgICAtIGN1c3RvbWVyCiAgICAgICAgICAtIGFnZW50CiAgICAgICAgICAtIHN5c3RlbQogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgU2VuZGVyVHlwZUlEOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIEhpc3RvcnlDb21tZW50OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgSGlzdG9yeVR5cGU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBJc1Zpc2libGVGb3JDdXN0b21lcjoKICAgICAgICAgIGVudW06CiAgICAgICAgICAtIDAKICAgICAgICAgIC0gMQogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIE5vQWdlbnROb3RpZnk6CiAgICAgICAgICBkZXNjcmlwdGlvbjogV2hldGhlciB0byBub3RpZnkgQWdlbnRzCiAgICAgICAgICBlbnVtOgogICAgICAgICAgLSAwCiAgICAgICAgICAtIDEKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBGb3JjZU5vdGlmaWNhdGlvblRvVXNlcklEOgogICAgICAgICAgZGVzY3JpcHRpb246IEZvcmNlIGEgTm90aWZpY2F0aW9uIHRvIGJlIHNlbnQgdG8gVXNlcklEcyBwYXNzZWQgYXMgYXJyYXkKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIEV4Y2x1ZGVOb3RpZmljYXRpb25Ub1VzZXJJRDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBTdXBwcmVzcyBhbnkgTm90aWZpY2F0aW9uIHRvIGJlIHNlbnQgdG8gVXNlcklEcyBwYXNzZWQgYXMgYXJyYXkKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIEV4Y2x1ZGVOb3RpZmljYXRpb25Ub1VzZXJJRDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBTdXBwcmVzcyBhbnkgTm90aWZpY2F0aW9uIHRvIGJlIHNlbnQgdG8gVXNlcklEcyBwYXNzZWQgYXMgYXJyYXkKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIEV4Y2x1ZGVNdXRlTm90aWZpY2F0aW9uVG9Vc2VySUQ6CiAgICAgICAgICBkZXNjcmlwdGlvbjogJ1NhbWUgYXMgRXhjbHVkZU5vdGlmaWNhdGlvblRvVXNlcklELCBidXQgc3RpbGwgYWRkIEFnZW50IHRvIFRvOiBsaW5lJwogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgU2VuZEVtYWlsOgogICAgICAgICAgZW51bToKICAgICAgICAgIC0gMAogICAgICAgICAgLSAxCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICBkZXNjcmlwdGlvbjogQWN0dWFsbHkgdHJ5IHRvIHNlbmQgdGhlIEFydGljbGUgYXMgRW1haWwgZnJvbSBPVE9CTyBpZiBzZXQgdG8gMQogICAgICAgIEVtYWlsU2VjdXJpdHk6CiAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIEJhY2tlbmQ6CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgZW51bToKICAgICAgICAgICAgICAtIFNNSU1FCiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IEN1cnJlbnRseSBvbmx5IFNNSU1FIGJhY2tlbmQgaXMgc3VwcG9ydGVkCiAgICAgICAgICAgIFNpZ246CiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICAgIGVudW06CiAgICAgICAgICAgICAgLSAwCiAgICAgICAgICAgICAgLSAxCiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFNldCB0byAxIGlmIHlvdSB3YW50IHRvIHNpZ24gdGhlIEVtYWlsLiBSZXF1aXJlcyBwcm9wZXIgU01JTUUgc2V0dXAgZm9yIHRoZSBzZW5kaW5nIGFkZHJlc3MKICAgICAgICAgICAgRW5jcnlwdDoKICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgICAgZW51bToKICAgICAgICAgICAgICAtIDAKICAgICAgICAgICAgICAtIDEKICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogU2V0IHRvIDEgaWYgeW91IHdhbnQgdG8gZW5jcnlwdCB0aGUgRW1haWwuIFJlcXVpcmVzIHByb3BlciBTTUlNRSBzZXR1cCBmb3IgdGhlIHJlY2VpdmluZyBhZGRyZXNzCiAgICAgICAgU2VuZGVyVHlwZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiAiT25lIG9mICdjdXN0b21lcicsICdhZ2VudCcsICdzeXN0ZW0nIgogICAgICAgICAgZW51bToKICAgICAgICAgIC0gY3VzdG9tZXIKICAgICAgICAgIC0gYWdlbnQKICAgICAgICAgIC0gc3lzdGVtCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBTZW5kZXJUeXBlSUQ6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyICAgICAgICAgIAogICAgICAgIENvbnRlbnRUeXBlOgogICAgICAgICAgZGVzY3JpcHRpb246IEEgY29udGVudCB0eXBlIGxpa2UgJ3RleHQvcGxhaW4nIG9yICd0ZXh0L2h0bWwnCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBDaGFyc2V0OgogICAgICAgICAgZGVzY3JpcHRpb246IGUuZy4gJ1VURi04JwogICAgICAgIE1pbWVUeXBlOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgSW5jb21pbmdUaW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgVGltZVVuaXQ6ICAgICAgCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgIFRpY2tldEV4dGVuZGVkOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBGaXJzdFJlc3BvbnNlOgogICAgICAgICAgZGVzY3JpcHRpb246IHRpbWVzdGFtcCBvZiBmaXJzdCByZXNwb25zZSwgZmlyc3QgY29udGFjdCB3aXRoIGN1c3RvbWVyCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgRmlyc3RSZXNwb25zZUluTWluOgogICAgICAgICAgZGVzY3JpcHRpb246IG1pbnV0ZXMgdGlsbCBmaXJzdCByZXNwb25zZQogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIEZpcnN0UmVzcG9uc2VEaWZmSW5NaW46CiAgICAgICAgICBkZXNjcmlwdGlvbjogbWludXRlcyB0aWxsIG9yIG92ZXIgZmlyc3QgcmVzcG9uc2UKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBTb2x1dGlvbkluTWluOgogICAgICAgICAgZGVzY3JpcHRpb246IG1pbnV0ZXMgdGlsbCBzb2x1dGlvbiB0aW1lCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgU29sdXRpb25EaWZmSW5NaW46CiAgICAgICAgICBkZXNjcmlwdGlvbjogbWludXRlcyB0aWxsIG9yIG92ZXIgc29sdXRpb24gdGltZQogICAgICAgICAgdHlwZTogaW50ZWdlciAgICAgICAgCiAgICAgICAgRmlyc3RMb2NrOgogICAgICAgICAgZGVzY3JpcHRpb246ICB0aW1lc3RhbXAgb2YgZmlyc3QgbG9jawogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgVGlja2V0U3RhdHM6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIEFnZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBBZ2Ugb2YgdGhpcyB0aWNrZXQKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBBcmNoaXZlRmxhZzoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBGbGFnIHRvIGluZGljaWF0ZSBpZiB0aGlzIHRpY2tldCBpcyBhcmNoaXZlZAogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgQ2hhbmdlZDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaW1lIHRoaXMgdGlja2V0IHdhcyBjaGFuZ2VkIGxhc3QKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIENoYW5nZWRCeToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBVc2VyIHRoYXQgbGFzdCBjaGFuZ2VkIHRoaXMgdGlja2V0CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgQ3JlYXRlZDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaW1lIHRoaXMgdGlja2V0IHdhcyBjcmVhdGVkCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBDcmVhdGVkQnk6CiAgICAgICAgICBkZXNjcmlwdGlvbjogVXNlciB0aGF0IGNyZWF0ZWQgdGhpcyB0aWNrZXQKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBFc2NhbGF0aW9uUmVzcG9uc2VUaW1lOgogICAgICAgICAgZGVzY3JpcHRpb246IFVuaXggdGltZSBzdGFtcCBvZiByZXNwb25zZSB0aW1lIGVzY2FsYXRpb24KICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBFc2NhbGF0aW9uVXBkYXRlVGltZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBVbml4IHRpbWUgc3RhbXAgb2YgdXBkYXRlIHRpbWUgZXNjYWxhdGlvbgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIEVzY2FsYXRpb25Tb2x1dGlvblRpbWU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogVW5peCB0aW1lIHN0YW1wIG9mIHNvbHV0aW9uIHRpbWUgZXNjYWxhdGlvbgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIEVzY2FsYXRpb25EZXN0aW5hdGlvbkluOgogICAgICAgICAgZGVzY3JpcHRpb246IGVzY2FsYXRpb24gaW4gZS4gZy4gMWggNG0KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIEVzY2FsYXRpb25EZXN0aW5hdGlvblRpbWU6IAogICAgICAgICAgZGVzY3JpcHRpb246IGRhdGUgb2YgZXNjYWxhdGlvbiBpbiB1bml4IHRpbWUsIGUuIGcuIDcyMTkzMjkyKQogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIEVzY2FsYXRpb25EZXN0aW5hdGlvbkRhdGU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogZGF0ZSBvZiBlc2NhbGF0aW9uLCBlLiBnLiAiMjAwOS0wMi0xNCAxODowMDowMCIKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIEVzY2FsYXRpb25UaW1lV29ya2luZ1RpbWU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogc2Vjb25kcyBvZiB3b3JraW5nL3NlcnZpY2UgdGltZSB0aWxsIGVzY2FsYXRpb24sIGUuIGcuICIxODAwIgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBpZiB0cnVlLCB0aWNrZXQgaXMgZXNjYWxhdGVkCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVOb3RpZmljYXRpb246CiAgICAgICAgICBkZXNjcmlwdGlvbjogaWYgdHJ1ZSwgbm90aWZ5IC0geCUgb2YgZXNjYWxhdGlvbiBoYXMgcmVhY2hlZAogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25UaW1lOgogICAgICAgICAgZGVzY3JpcHRpb246IGRhdGUgb2YgZXNjYWxhdGlvbiBpbiB1bml4IHRpbWUsIGUuIGcuIDcyMTkzMjkyCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvbkRhdGU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogZGF0ZSBvZiBlc2NhbGF0aW9uLCBlLiBnLiAiMjAwOS0wMi0xNCAxODowMDowMCIKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogc2Vjb25kcyBvZiB3b3JraW5nL3NlcnZpY2UgdGltZSB0aWxsIGVzY2FsYXRpb24sIGUuIGcuICIxODAwIgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lOgogICAgICAgICAgZGVzY3JpcHRpb246IHNlY29uZHMgdG90YWwgdGlsbCBlc2NhbGF0aW9uLCBlLiBnLiAiMzYwMCIKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBVcGRhdGVUaW1lRXNjYWxhdGlvbjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBpZiB0cnVlLCB0aWNrZXQgaXMgZXNjYWxhdGVkCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgVXBkYXRlVGltZU5vdGlmaWNhdGlvbjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBpZiB0cnVlLCBub3RpZnkgLSB4JSBvZiBlc2NhbGF0aW9uIGhhcyByZWFjaGVkCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uVGltZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBkYXRlIG9mIGVzY2FsYXRpb24gaW4gdW5peCB0aW1lLCBlLiBnLiA3MjE5MzI5MgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvbkRhdGU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogZGF0ZSBvZiBlc2NhbGF0aW9uLCBlLiBnLiAiMjAwOS0wMi0xNCAxODowMDowMCIKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIFVwZGF0ZVRpbWVXb3JraW5nVGltZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBzZWNvbmRzIG9mIHdvcmtpbmcvc2VydmljZSB0aW1lIHRpbGwgZXNjYWxhdGlvbiwgZS4gZy4gIjE4MDAiCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgVXBkYXRlVGltZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBzZWNvbmRzIHRvdGFsIHRpbGwgZXNjYWxhdGlvbiwgZS4gZy4gIjM2MDAiCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBpZiB0cnVlLCB0aWNrZXQgaXMgZXNjYWxhdGVkCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyICAgICAgICAgIAogICAgICAgIFNvbHV0aW9uVGltZU5vdGlmaWNhdGlvbjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBpZiB0cnVlLCBub3RpZnkgLSB4JSBvZiBlc2NhbGF0aW9uIGhhcyByZWFjaGVkCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lOgogICAgICAgICAgZGVzY3JpcHRpb246IGRhdGUgb2YgZXNjYWxhdGlvbiBpbiB1bml4IHRpbWUsIGUuIGcuIDcyMTkzMjkyCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25EYXRlOgogICAgICAgICAgZGVzY3JpcHRpb246IGRhdGUgb2YgZXNjYWxhdGlvbiwgZS4gZy4gIjIwMDktMDItMTQgMTg6MDA6MDAiCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBTb2x1dGlvblRpbWVXb3JraW5nVGltZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBzZWNvbmRzIG9mIHdvcmtpbmcvc2VydmljZSB0aW1lIHRpbGwgZXNjYWxhdGlvbiwgZS4gZy4gIjE4MDAiCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgU29sdXRpb25UaW1lOgogICAgICAgICAgZGVzY3JpcHRpb246IHNlY29uZHMgdG90YWwgdGlsbCBlc2NhbGF0aW9uLCBlLiBnLiAiMzYwMCIKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgIFRpY2tldDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6ICAgICAgCiAgICAgICAgRHluYW1pY0ZpZWxkOgogICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvRHluYW1pY0ZpZWxkcycKICAgICAgICBDdXN0b21lcklEOgogICAgICAgICAgZGVzY3JpcHRpb246IFRoZSBDdXN0b21lclVzZXIgZm9yIHRoaXMgdGlja2V0CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBDdXN0b21lclVzZXI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIEN1c3RvbWVyVXNlciBmb3IgdGhpcyB0aWNrZXQKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIExvY2s6CiAgICAgICAgICBkZXNjcmlwdGlvbjogQSBMb2NrIHR5cGUKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIExvY2tJRDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBPd25lcjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBTZXQgdGhlIE93bmVyIGFnZW50IGZvciB0aGlzIHRpY2tldAogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgT3duZXJJRDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBQZW5kaW5nVGltZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBTZXRzIHRoZSBwZW5kaW5nIHRpbWUgZm9yIHRoaXMgdGlja2V0CiAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICBEYXk6CiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICBIb3VyOgogICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgTWludXRlOgogICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgTW9udGg6CiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICBZZWFyOgogICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgIFByaW9yaXR5OgogICAgICAgICAgZGVzY3JpcHRpb246IFNldCB0aWNrZXQgcHJpb3JpdHkKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIFByaW9yaXR5SUQ6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgUXVldWU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogU2V0IHRoZSBRdWV1ZSB0byBwdXQgdGhlIHRpY2tldCBpbnRvCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBRdWV1ZUlEOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIFJlc3BvbnNpYmxlOgogICAgICAgICAgZGVzY3JpcHRpb246IFNldCB0aGUgcmVzcG9uc2libGUgQWdlbnQgZm9yIHRoaXMgdGlja2V0CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBSZXNwb25zaWJsZUlEOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIFNMQToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBTZXQgdGhlIFNlcnZpY2UgTGV2ZWwgQWdyZWVtZW50IAogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgU0xBSUQ6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgU2VydmljZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBTZXQgdGhlIHRpY2tldCBzZXJ2aWNlCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBTZXJ2aWNlSUQ6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgU3RhdGU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogU2V0IHRoZSB0b2NsZXQgc3RhdGUKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIFN0YXRlSUQ6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgVGlja2V0SUQ6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBUaWNrZXROdW1iZXI6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBUaW1lVW5pdDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aW1lIHNwZW50IG9uIHRoaXMgdGlja2V0CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgVGl0bGU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIHRpdGxlIG9mIHRoZSByaWNrZXQKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIFR5cGU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogVGlja2V0IHR5cGUKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIFR5cGVJRDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgIFRpY2tldEZ1bGw6CiAgICAgIGFsbE9mOgogICAgICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1RpY2tldCcKICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9UaWNrZXRTdGF0cycKICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9UaWNrZXRFeHRlbmRlZCcKICAgICAgICAtIHR5cGU6IG9iamVjdAogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgQXJ0aWNsZTogCiAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0FydGljbGVzJwoKICAgIFRpY2tldENyZWF0ZWQ6CiAgICAgIGFsbE9mOgogICAgICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1RpY2tldCcKICAgICAgICAtIHR5cGU6IG9iamVjdAogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgQXJ0aWNsZToKICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQXJ0aWNsZScKCiAgICBUaWNrZXRRdWVyeToKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgQXJ0aWNsZUNyZWF0ZVRpbWVOZXdlckRhdGU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogSW5jbHVkZSBhcnRpY2xlcyBjcmVhdGVkIGFmdGVyICdZWVlZLU1NLUREIGhoOm1tOnNzJwogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgQXJ0aWNsZUNyZWF0ZVRpbWVOZXdlck1pbnV0ZXM6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgQXJ0aWNsZUNyZWF0ZVRpbWVPbGRlckRhdGU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogSW5jbHVkZSBhcnRpY2xlcyBjcmVhdGVkIGJlZm9yZSAnWVlZWS1NTS1ERCBoaDptbTpzcycKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIEFydGljbGVDcmVhdGVUaW1lT2xkZXJNaW51dGVzOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIENvbnRlbnRTZWFyY2g6CiAgICAgICAgICBkZXNjcmlwdGlvbjogIkFydGljbGUgY29udGVudCBzZWFyY2ggKEFORCBvciBPUiBmb3IgRnJvbSwgVG8sIENjLCBTdWJqZWN0IGFuZCBCb2R5KSIKICAgICAgICAgIGVudW06CiAgICAgICAgICAtIEFORAogICAgICAgICAgLSBPUgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgQ3JlYXRlZFByaW9yaXRpZXM6CiAgICAgICAgICBkZXNjcmlwdGlvbjogIicxIHZlcnkgbG93JywgJzIgbG93JywgJzMgbm9ybWFsJyIKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgQ3JlYXRlZFByaW9yaXR5SURzOgogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgQ3JlYXRlZFF1ZXVlSURzOgogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgQ3JlYXRlZFF1ZXVlczoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBRdWV1ZSB0aWNrZXQgd2FzIGNyZWF0ZWQgaW4KICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgQ3JlYXRlZFN0YXRlSURzOgogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgQ3JlYXRlZFN0YXRlczoKICAgICAgICAgIGRlc2NyaXB0aW9uOiAiZS5nLiBuZXcgb3Igb3BlbiIKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgQ3JlYXRlZFR5cGVJRHM6CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICBDcmVhdGVkVHlwZXM6IAogICAgICAgICAgZGVzY3JpcHRpb246ICInbm9ybWFsJywgJ2NoYW5nZScsICdpbmNpZGVudCciCiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgIENyZWF0ZWRVc2VySURzOgogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgQ3VzdG9tZXJJRDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBJRCBvZiB0aGUgQ3VzdG9tZXIKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgQ3VzdG9tZXJVc2VyTG9naW46CiAgICAgICAgICBkZXNjcmlwdGlvbjogQ3VzdG9tZXIgVXNlckxvZ2luCiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICMgRHluYW1pY0ZpZWxkX0ZpZWxkTmFtZVg6CiAgICAgICAgIyAgIGRlc2NyaXB0aW9uOiAiQSBEeW5hbWljIEZpZWxkLiBSZXBsYWNlICdGaWVsZE5hbWVYJyB3aXRoIHRoZSBuYW1lIG9mIHRoZSBEeW5hbWljIEZpZWxkIiAKICAgICAgICAjICAgcHJvcGVydGllczoKICAgICAgICAjICAgICBFbXB0eToKICAgICAgICAjICAgICAgIGVudW06CiAgICAgICAgIyAgICAgICAtIDAKICAgICAgICAjICAgICAgIC0gMQogICAgICAgICMgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICMgICAgIEVxdWFsczoKICAgICAgICAjICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICMgICAgIEdyZWF0ZXJUaGFuOgogICAgICAgICMgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgIyAgICAgR3JlYXRlclRoYW5FcXVhbHM6CiAgICAgICAgIyAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAjICAgICBMaWtlOgogICAgICAgICMgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgIyAgICAgU21hbGxlclRoYW46CiAgICAgICAgIyAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAjICAgICBTbWFsbGVyVGhhbkVxdWFsczoKICAgICAgICAjICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICMgICB0eXBlOiBvYmplY3QKICAgICAgICBGdWxsVGV4dEluZGV4OgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIExvY2tJRHM6CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICBMb2NrczoKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgTUlNRUJhc2VfQm9keToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBTZWFyY2ggYXJ0aWNsZSBib2RpZXMKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIE1JTUVCYXNlX0NDOgogICAgICAgICAgZGVzY3JpcHRpb246IFNlYXJjaCBhcnRpY2xlIENDcwogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgTUlNRUJhc2VfRnJvbToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBTZWFyY2ggYXJ0aWNsZSBGcm9tIGZpZWxkcwogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgTUlNRUJhc2VfU3ViamVjdDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBTZWFyY2ggYXJ0aWNsZSBzdWJqZWN0cwogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgTUlNRUJhc2VfVG86CiAgICAgICAgICBkZXNjcmlwdGlvbjogU2VhcmNoIGFydGljbGUgVE9zCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBPcmRlckJ5OgogICAgICAgICAgZW51bToKICAgICAgICAgIC0gVXAKICAgICAgICAgIC0gRG93bgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgT3duZXJJRHM6CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICBQcmlvcml0aWVzOgogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICBQcmlvcml0eUlEczoKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgIFF1ZXVlSURzOgogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgUXVldWVzOgogICAgICAgICAgZGVzY3JpcHRpb246IEFycmF5IG9mIHF1ZXVlIG5hbWVzIHRvIHNlYXJjaCBpbiAKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgUmVzcG9uc2libGVJRHM6CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICBTTEFJRHM6CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICBTTEFzOgogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICBTZXJ2aWNlSURzOgogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgU2VydmljZXM6CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgIFNvcnRCeToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIFN0YXRlSURzOgogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgU3RhdGVUeXBlOgogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICBTdGF0ZVR5cGVJRHM6CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICBTdGF0ZXM6CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgIFRpY2tldENoYW5nZVRpbWVOZXdlckRhdGU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogSW5jbHVkZSB0aWNrZXRzIGNoYW5nZWQgYWZ0ZXIgJ1lZWVktTU0tREQgaGg6bW06c3MnCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBUaWNrZXRDaGFuZ2VUaW1lTmV3ZXJNaW51dGVzOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIFRpY2tldENoYW5nZVRpbWVPbGRlckRhdGU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogSW5jbHVkZSB0aWNrZXRzIGNoYW5nZWQgYmVmb3JlICdZWVlZLU1NLUREIGhoOm1tOnNzJwogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgVGlja2V0Q2hhbmdlVGltZU9sZGVyTWludXRlczoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBUaWNrZXRDbG9zZVRpbWVOZXdlckRhdGU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogSW5jbHVkZSB0aWNrZXRzIGNsb3NlZCBhZnRlciAnWVlZWS1NTS1ERCBoaDptbTpzcycKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIFRpY2tldENsb3NlVGltZU5ld2VyTWludXRlczoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBUaWNrZXRDbG9zZVRpbWVPbGRlckRhdGU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogSW5jbHVkZSB0aWNrZXRzIGNsb3NlZCBiZWZvcmUgJ1lZWVktTU0tREQgaGg6bW06c3MnCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBUaWNrZXRDbG9zZVRpbWVPbGRlck1pbnV0ZXM6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgVGlja2V0Q3JlYXRlVGltZU5ld2VyRGF0ZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBJbmNsdWRlIHRpY2tldHMgY3JlYXRlZCBhZnRlciAnWVlZWS1NTS1ERCBoaDptbTpzcycKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIFRpY2tldENyZWF0ZVRpbWVOZXdlck1pbnV0ZXM6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgVGlja2V0Q3JlYXRlVGltZU9sZGVyRGF0ZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBJbmNsdWRlIHRpY2tldHMgY3JlYXRlZCBiZWZvcmUgJ1lZWVktTU0tREQgaGg6bW06c3MnCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBUaWNrZXRDcmVhdGVUaW1lT2xkZXJNaW51dGVzOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIFRpY2tldEVzY2FsYXRpb25UaW1lTmV3ZXJEYXRlOgogICAgICAgICAgZGVzY3JpcHRpb246IEluY2x1ZGUgdGlja2V0cyBlc2NhbGF0ZWQgYWZ0ZXIgJ1lZWVktTU0tREQgaGg6bW06c3MnCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBUaWNrZXRFc2NhbGF0aW9uVGltZU5ld2VyTWludXRlczoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBUaWNrZXRFc2NhbGF0aW9uVGltZU9sZGVyRGF0ZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBJbmNsdWRlIHRpY2tldHMgZXNjYWxhdGVkIGJlZm9yZSAnWVlZWS1NTS1ERCBoaDptbTpzcycKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIFRpY2tldEVzY2FsYXRpb25UaW1lT2xkZXJNaW51dGVzOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIFRpY2tldElEOgogICAgICAgICAgZGVzY3JpcHRpb246IGFycmF5IG9mIFRpY2tldElEcyB0byBzZWFyY2ggaW4vZm9yCiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICBUaWNrZXRMYXN0Q2hhbmdlVGltZU5ld2VyRGF0ZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBJbmNsdWRlIHRpY2tldHMgbGFzdCBjaGFuZ2VkIGFmdGVyICdZWVlZLU1NLUREIGhoOm1tOnNzJwogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgVGlja2V0TGFzdENoYW5nZVRpbWVOZXdlck1pbnV0ZXM6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgVGlja2V0TGFzdENoYW5nZVRpbWVPbGRlckRhdGU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogSW5jbHVkZSB0aWNrZXRzIGxhc3QgY2hhbmdlZCBiZWZvcmUgJ1lZWVktTU0tREQgaGg6bW06c3MnCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBUaWNrZXRMYXN0Q2hhbmdlVGltZU9sZGVyTWludXRlczoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBUaWNrZXROdW1iZXI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIHRpY2tldCBudW1iZXIgYXMgc2hvd24gaW4gc3ViamVjdCBsaW5lcwogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICBUaWNrZXRQZW5kaW5nVGltZU5ld2VyRGF0ZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBJbmNsdWRlIHRpY2tldHMgcGVuZGluZyBhZnRlciAnWVlZWS1NTS1ERCBoaDptbTpzcycKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIFRpY2tldFBlbmRpbmdUaW1lTmV3ZXJNaW51dGVzOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIFRpY2tldFBlbmRpbmdUaW1lT2xkZXJEYXRlOgogICAgICAgICAgZGVzY3JpcHRpb246IEluY2x1ZGUgdGlja2V0cyBwZW5kaW5nIGJlZm9yZSAnWVlZWS1NTS1ERCBoaDptbTpzcycKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIFRpY2tldFBlbmRpbmdUaW1lT2xkZXJNaW51dGVzOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIFRpdGxlOgogICAgICAgICAgZGVzY3JpcHRpb246IFNlYXJjaCBpbiB0aGUgdGlja2V0IHRpdGxlCiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgIFR5cGVJRHM6CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICBUeXBlczoKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgVXNlU3ViUXVldWVzOgogICAgICAgICAgZW51bToKICAgICAgICAgIC0gMAogICAgICAgICAgLSAxCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgV2F0Y2hlcklEczoKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICB0eXBlOiBhcnJheQoKICAgIFRpY2tldENyZWF0ZVJlcXVlc3Q6CiAgICAgIGFsbE9mOgogICAgICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWRlbnRpYWxzJwogICAgICAgIC0gdHlwZTogb2JqZWN0CiAgICAgICAgICBwcm9wZXJ0aWVzOiAgICAgIAogICAgICAgICAgICBBcnRpY2xlOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9BcnRpY2xlJwogICAgICAgICAgICBBdHRhY2htZW50OgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9BdHRhY2htZW50JwogICAgICAgICAgICBEeW5hbWljRmllbGQ6CiAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0R5bmFtaWNGaWVsZHMnCiAgICAgICAgICAgIFRpY2tldDoKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9UaWNrZXQnCiAgICBUaWNrZXRDcmVhdGVSZXNwb25zZToKICAgICAgYWxsT2Y6CiAgICAgICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQXBpRXJyb3InCiAgICAgICAgLSB0eXBlOiBvYmplY3QKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIFRpY2tldElEOgogICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgVGlja2V0TnVtYmVyOgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICBBcnRpY2xlSUQ6CiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICBUaWNrZXQ6CiAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1RpY2tldENyZWF0ZWQnCgogICAgVGlja2V0R2V0UmVxdWVzdDoKICAgICAgYWxsT2Y6CiAgICAgICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ3JlZGVudGlhbHMnCiAgICAgICAgLSB0eXBlOiBvYmplY3QKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIEFsbEFydGljbGVzOgogICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBXaGV0aGVyIHRvIHJldHJpZXZlIGFsbCBhcnRpY2xlcwogICAgICAgICAgICAgIGVudW06CiAgICAgICAgICAgICAgLSAwCiAgICAgICAgICAgICAgLSAxCiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICBBcnRpY2xlTGltaXQ6CiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IE1heGltdW0gbnVtYmVyIG9mIGFydGljbGVzIHRvIHJldHJpZXZlCiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICBBcnRpY2xlT3JkZXI6CiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFNvcnQgb3JkZXIgb2YgcmV0dXJuZWQgYXJ0aWNsZXMKICAgICAgICAgICAgICBlbnVtOgogICAgICAgICAgICAgIC0gQVNDCiAgICAgICAgICAgICAgLSBERVNDCiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgIEFydGljbGVTZW5kZXJUeXBlOgogICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiT25lIG9mICdjdXN0b21lcicsICdhZ2VudCcsIG9yICdzeXN0ZW0nIgogICAgICAgICAgICAgIGVudW06CiAgICAgICAgICAgICAgLSBjdXN0b21lcgogICAgICAgICAgICAgIC0gYWdlbnQKICAgICAgICAgICAgICAtIHN5c3RlbQogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICBBdHRhY2htZW50czoKICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogV2hldGhlciB0byBpbmNsdWRlIEF0dGFjaG1lbnRzIGluIHRoZSByZXNwb25zZQogICAgICAgICAgICAgIGVudW06CiAgICAgICAgICAgICAgLSAwCiAgICAgICAgICAgICAgLSAxCiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICBEeW5hbWljRmllbGRzOgogICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBXaGV0aGVyIHRvIGluY2x1ZGUgRHluYW1pYyBGaWVsZHMgaW4gdGhlIHJlc3BvbnNlCiAgICAgICAgICAgICAgZW51bToKICAgICAgICAgICAgICAtIDAKICAgICAgICAgICAgICAtIDEKICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgIEV4dGVuZGVkOgogICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBJbmNsdWRlIGV4dGVuZGVkIGF0dHJpYnV0ZXMKICAgICAgICAgICAgICBlbnVtOgogICAgICAgICAgICAgIC0gMAogICAgICAgICAgICAgIC0gMQogICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgUGFzc3dvcmQ6CiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFRoZSBwYXNzb3dyZCBvZiB0aGUgdXNlciBwZXJmb3JtaW5nIHRoZSBhY3Rpb24KICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgU2Vzc2lvbklEOgogICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBBIHZhbGlkIFNlc3Npb25JRCBmb3IgdGhlIHVzZXIgcGVyZm9ybWluZyB0aGUgYWN0aW9uCiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgIFRpY2tldElEOgogICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBJRCBvZiB0aGUgdGlja2V0CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgIFVzZXJMb2dpbjoKICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIExvZ2luIG9mIHRoZSB1c2VyIHBlcmZvcm1pbmcgdGhlIGFjdGlvbgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgcmVxdWlyZWQ6IAogICAgICAgICAgICAtIFRpY2tldElECgogICAgVGlja2V0R2V0UmVzcG9uc2U6CiAgICAgIGFsbE9mOgogICAgICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0FwaUVycm9yJwogICAgICAgIC0gdHlwZTogb2JqZWN0CiAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICBUaWNrZXQ6CiAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1RpY2tldEZ1bGwnCgogICAgVGlja2V0U2VhcmNoUmVxdWVzdDoKICAgICAgYWxsT2Y6CiAgICAgICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ3JlZGVudGlhbHMnCiAgICAgICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvVGlja2V0UXVlcnknCiAgICBUaWNrZXRTZWFyY2hSZXNwb25zZToKICAgICAgYWxsT2Y6CiAgICAgICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQXBpRXJyb3InCiAgICAgICAgLSB0eXBlOiBvYmplY3QKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIFRpY2tldElEOgogICAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKCiAgICBUaWNrZXRVcGRhdGVSZXF1ZXN0OgogICAgICBhbGxPZjoKICAgICAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVkZW50aWFscycKICAgICAgICAtIHR5cGU6IG9iamVjdAogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgQXJ0aWNsZToKICAgICAgICAgICAgICAkcmVmIDogJyMvY29tcG9uZW50cy9zY2hlbWFzL0FydGljbGUnCiAgICAgICAgICAgIEF0dGFjaG1lbnQ6CiAgICAgICAgICAgICAgJHJlZiA6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9BdHRhY2htZW50cycKICAgICAgICAgICAgRHluYW1pY0ZpZWxkOgogICAgICAgICAgICAgICRyZWYgOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvRHluYW1pY0ZpZWxkcycKICAgICAgICAgICAgVGlja2V0OgogICAgICAgICAgICAgICRyZWYgOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvVGlja2V0JwogICAgICAgICAgICBUaWNrZXRJRDoKICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIFRpY2tldElEIHRvIHVwZGF0ZQogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICBBcnRpY2xlSUQ6CiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFRoZSBBcnRpY2xlSUQgdG8gdXBkYXRlCiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICByZXF1aXJlZDoKICAgICAgICAgICAgLSBUaWNrZXRJRAogICAgVGlja2V0VXBkYXRlUmVzcG9uc2U6CiAgICAgIGFsbE9mOgogICAgICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0FwaUVycm9yJwogICAgICAgIC0gdHlwZTogb2JqZWN0CiAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICBUaWNrZXQ6CiAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL1RpY2tldEZ1bGwnCiAgICAgICAgICAgIFRpY2tldElEOgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICBBcnRpY2xlSUQ6CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCgpUaWNrZXQ6OlRpY2tldENyZWF0ZToKICBRdWVyeVBhcmFtczoge30KICBSZXF1ZXN0Qm9keToKICAgIGNvbnRlbnQ6CiAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBTaW1wbGU6CiAgICAgICAgICAgIHZhbHVlOgogICAgICAgICAgICAgIEFydGljbGU6CiAgICAgICAgICAgICAgICBCb2R5OiBhbiBleGFtcGxlIHJlcXVlc3QKICAgICAgICAgICAgICAgIENvbW11bmljYXRpb25DaGFubmVsOiBFbWFpbAogICAgICAgICAgICAgICAgQ29udGVudFR5cGU6IHRleHQvcGxhaW47Y2hhcnNldD11dGYtOAogICAgICAgICAgICAgICAgRnJvbTogInRlc3RAb3RvYm8uaW8iCiAgICAgICAgICAgICAgICBTdWJqZWN0OiBoZWxsbyBvdG9ibwogICAgICAgICAgICAgIFRpY2tldDoKICAgICAgICAgICAgICAgIEN1c3RvbWVyVXNlcjogInRlc3RAb3RvYm8uaW8iCiAgICAgICAgICAgICAgICBQcmlvcml0eUlEOiAxCiAgICAgICAgICAgICAgICBRdWV1ZTogUmF3CiAgICAgICAgICAgICAgICBTdGF0ZTogbmV3CiAgICAgICAgICAgICAgICBUaXRsZTogSGVsbG8gV29ybGQKICAgICAgICAgIFdpdGhEeW5hbWljRmllbGQ6CiAgICAgICAgICAgIHZhbHVlOgogICAgICAgICAgICAgIEFydGljbGU6CiAgICAgICAgICAgICAgICBCb2R5OiBhbiBleGFtcGxlIHJlcXVlc3QKICAgICAgICAgICAgICAgIENvbW11bmljYXRpb25DaGFubmVsOiBFbWFpbAogICAgICAgICAgICAgICAgQ29udGVudFR5cGU6IHRleHQvcGxhaW47Y2hhcnNldD11dGYtOAogICAgICAgICAgICAgICAgRnJvbTogInRlc3RAb3RvYm8uaW8iCiAgICAgICAgICAgICAgICBTdWJqZWN0OiBoZWxsbyBvdG9ibwogICAgICAgICAgICAgIER5bmFtaWNGaWVsZDoKICAgICAgICAgICAgICAtIE5hbWU6IE15RHluYW1pY0ZpZWxkTmFtZQogICAgICAgICAgICAgICAgVmFsdWU6IFNvbWVWYWx1ZQogICAgICAgICAgICAgIFRpY2tldDoKICAgICAgICAgICAgICAgIEN1c3RvbWVyVXNlcjogInRlc3RAb3RvYm8uaW8iCiAgICAgICAgICAgICAgICBQcmlvcml0eUlEOiAxCiAgICAgICAgICAgICAgICBRdWV1ZTogUmF3CiAgICAgICAgICAgICAgICBTdGF0ZTogbmV3CiAgICAgICAgICAgICAgICBUaXRsZTogSGVsbG8gV29ybGQKICAgICAgICBzY2hlbWE6CiAgICAgICAgICAkcmVmIDogJyMvY29tcG9uZW50cy9zY2hlbWFzL1RpY2tldENyZWF0ZVJlcXVlc3QnCiAgICByZXF1aXJlZDogdHJ1ZQogIFJlc3BvbnNlczoKICAgIDIwMDoKICAgICAgY29udGVudDoKICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvVGlja2V0Q3JlYXRlUmVzcG9uc2UnCiAgICAgICAgICBleGFtcGxlczoKICAgICAgICAgICAgZm9vOgogICAgICAgICAgICAgIHZhbHVlOgogICAgICAgICAgICAgICAgQXJ0aWNsZUlEOiA3CiAgICAgICAgICAgICAgICBUaWNrZXRJRDogNwogICAgICAgICAgICAgICAgVGlja2V0TnVtYmVyOiAiMjAyNTA4MjIxMDAwMDAyMSIKICAgICAgZGVzY3JpcHRpb246IDIwMCByZXNwb25zZQoKVGlja2V0OjpUaWNrZXRHZXQ6CiAgUXVlcnlQYXJhbXM6CiAgICBHRVQ6CiAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvcGFyYW1ldGVycy9Vc2VyTG9naW4nCiAgICAtICRyZWY6ICcjL2NvbXBvbmVudHMvcGFyYW1ldGVycy9QYXNzd29yZCcKICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9wYXJhbWV0ZXJzL1Nlc3Npb25JRCcKICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9wYXJhbWV0ZXJzL1RpY2tldElEJwogICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3BhcmFtZXRlcnMvRHluYW1pY0ZpZWxkcycKICAgIC0gZGVzY3JpcHRpb246IEluY2x1ZGUgRXh0ZW5kZWQgQXR0cmlidXRlcwogICAgICBpbjogcXVlcnkKICAgICAgbmFtZTogRXh0ZW5kZWQKICAgICAgcmVxdWlyZWQ6IGZhbHNlCiAgICAgIHNjaGVtYToKICAgICAgICBlbnVtOgogICAgICAgIC0gMAogICAgICAgIC0gMQogICAgICAgIHR5cGU6IGludGVnZXIKICAgIC0gZGVzY3JpcHRpb246IEluY2x1ZGUgQWxsIEFydGljbGVzCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBBbGxBcnRpY2xlcwogICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgc2NoZW1hOgogICAgICAgIGVudW06CiAgICAgICAgLSAwCiAgICAgICAgLSAxCiAgICAgICAgdHlwZTogaW50ZWdlcgogICAgLSBkZXNjcmlwdGlvbjogSW5jbHVkZSBTZW5kZXJUeXBlIEFydGljbGVzCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBBcnRpY2xlU2VuZGVyVHlwZQogICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgc2NoZW1hOgogICAgICAgIGVudW06CiAgICAgICAgLSBjdXN0b21lcgogICAgICAgIC0gYWdlbnQKICAgICAgICAtIHN5c3RlbQogICAgICAgIHR5cGU6IHN0cmluZwogICAgLSBkZXNjcmlwdGlvbjogQXJ0aWNsZSBzb3J0IG9yZGVyIC0gZGVmYXVsdCBBU0MKICAgICAgaW46IHF1ZXJ5CiAgICAgIG5hbWU6IEFydGljbGVPcmRlcgogICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgc2NoZW1hOgogICAgICAgIGVudW06CiAgICAgICAgLSBBU0MKICAgICAgICAtIERFU0MKICAgICAgICB0eXBlOiBzdHJpbmcKICAgIC0gZGVzY3JpcHRpb246IG1heGltdW0gbnVtYmVyIG9mIEFydGljbGVzIHRvIGluY2x1ZGUKICAgICAgaW46IHF1ZXJ5CiAgICAgIG5hbWU6IEFydGljbGVMaW1pdAogICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgc2NoZW1hOgogICAgICAgIHR5cGU6IGludGVnZXIKICAgIC0gZGVzY3JpcHRpb246IEluY2x1ZGUgQXR0YWNobWVudHMKICAgICAgaW46IHF1ZXJ5CiAgICAgIG5hbWU6IEF0dGFjaG1lbnRzCiAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICBzY2hlbWE6CiAgICAgICAgZW51bToKICAgICAgICAtIDAKICAgICAgICAtIDEKICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAtIGRlc2NyaXB0aW9uOiBJbmNsdWRlIEF0dGFjaG1lbnQgQ29udGVudHMKICAgICAgaW46IHF1ZXJ5CiAgICAgIG5hbWU6IEdldEF0dGFjaG1lbnRDb250ZW50cwogICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgc2NoZW1hOgogICAgICAgIGVudW06CiAgICAgICAgLSAwCiAgICAgICAgLSAxCiAgICAgICAgdHlwZTogaW50ZWdlcgogICAgLSBkZXNjcmlwdGlvbjogSW5jbHVkZSBIVE1MIEJvZHkgYXMgQXR0YWNobWVudAogICAgICBpbjogcXVlcnkKICAgICAgbmFtZTogSFRNTEJvZHlBc0F0dGFjaG1lbnQKICAgICAgcmVxdWlyZWQ6IGZhbHNlCiAgICAgIHNjaGVtYToKICAgICAgICBlbnVtOgogICAgICAgIC0gMAogICAgICAgIC0gMQogICAgICAgIHR5cGU6IGludGVnZXIKICBSZXF1ZXN0Qm9keTogICAgICAgIAogICAgY29udGVudDoKICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICBleGFtcGxlOgogICAgICAgICAgQWxsQXJ0aWNsZXM6IDEKICAgICAgICAgIEFydGljbGVMaW1pdDogMTAKICAgICAgICAgIEFydGljbGVPcmRlcjogREVTQwogICAgICAgICAgRHluYW1pY0ZpZWxkczogMQogICAgICAgICAgRXh0ZW5kZWQ6IDEKICAgICAgICAgIFRpY2tldElEOiAxCiAgICAgICAgc2NoZW1hOgogICAgICAgICAgJHJlZiA6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9UaWNrZXRHZXRSZXF1ZXN0JwoKICAgIHJlcXVpcmVkOiB0cnVlCiAgUmVzcG9uc2VzOgogICAgMjAwOgogICAgICBjb250ZW50OgogICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICBzY2hlbWE6IAogICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvVGlja2V0R2V0UmVzcG9uc2UnCiAgICAgICAgICBleGFtcGxlczoKICAgICAgICAgICAgYmFzaWM6CiAgICAgICAgICAgICAgdmFsdWU6CiAgICAgICAgICAgICAgICBUaWNrZXQ6CiAgICAgICAgICAgICAgICAtIEFnZTogNjM4MzE2CiAgICAgICAgICAgICAgICAgIEFyY2hpdmVGbGFnOiBuCiAgICAgICAgICAgICAgICAgIENoYW5nZUJ5OiAxCiAgICAgICAgICAgICAgICAgIENoYW5nZWQ6IDIwMjUtMDgtMTUgMDA9PjI2PT4xMgogICAgICAgICAgICAgICAgICBDcmVhdGVCeTogMQogICAgICAgICAgICAgICAgICBDcmVhdGVkOiAyMDI1LTA4LTE1IDAwPT4yNj0+MTIKICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJJRDogfgogICAgICAgICAgICAgICAgICBDdXN0b21lclVzZXJJRDogfgogICAgICAgICAgICAgICAgICBFc2NhbGF0aW9uUmVzcG9uc2VUaW1lOiAwCiAgICAgICAgICAgICAgICAgIEVzY2FsYXRpb25Tb2x1dGlvblRpbWU6IDAKICAgICAgICAgICAgICAgICAgRXNjYWxhdGlvblRpbWU6IDAKICAgICAgICAgICAgICAgICAgRXNjYWxhdGlvblVwZGF0ZVRpbWU6IDAKICAgICAgICAgICAgICAgICAgR3JvdXBJRDogMQogICAgICAgICAgICAgICAgICBMb2NrOiB1bmxvY2sKICAgICAgICAgICAgICAgICAgTG9ja0lEOiAxCiAgICAgICAgICAgICAgICAgIE93bmVyOiByb290QGxvY2FsaG9zdAogICAgICAgICAgICAgICAgICBPd25lcklEOiAxCiAgICAgICAgICAgICAgICAgIFByaW9yaXR5OiAzIG5vcm1hbAogICAgICAgICAgICAgICAgICBQcmlvcml0eUlEOiAzCiAgICAgICAgICAgICAgICAgIFF1ZXVlOiBSYXcKICAgICAgICAgICAgICAgICAgUXVldWVJRDogMgogICAgICAgICAgICAgICAgICBSZWFsVGlsbFRpbWVOb3RVc2VkOiAwCiAgICAgICAgICAgICAgICAgIFJlc3BvbnNpYmxlOiByb290QGxvY2FsaG9zdAogICAgICAgICAgICAgICAgICBSZXNwb25zaWJsZUlEOiAxCiAgICAgICAgICAgICAgICAgIFNMQUlEOiAiIgogICAgICAgICAgICAgICAgICBTZXJ2aWNlSUQ6ICIiCiAgICAgICAgICAgICAgICAgIFN0YXRlOiBuZXcKICAgICAgICAgICAgICAgICAgU3RhdGVJRDogMQogICAgICAgICAgICAgICAgICBTdGF0ZVR5cGU6IG5ldwogICAgICAgICAgICAgICAgICBUaWNrZXRJRDogMQogICAgICAgICAgICAgICAgICBUaWNrZXROdW1iZXI6ICIyMDE1MDcxNTEwMTIzNDU2IgogICAgICAgICAgICAgICAgICBUaW1lVW5pdDogMAogICAgICAgICAgICAgICAgICBUaXRsZTogV2VsY29tZSB0byBPVE9CTyEKICAgICAgICAgICAgICAgICAgVHlwZTogVW5jbGFzc2lmaWVkCiAgICAgICAgICAgICAgICAgIFR5cGVJRDogMQogICAgICAgICAgICAgICAgICBVbmxvY2tUaW1lb3V0OiAwCiAgICAgICAgICAgICAgICAgIFVudGlsVGltZTogMAogICAgICBkZXNjcmlwdGlvbjogMjAwIHJlc3BvbnNlCgpUaWNrZXQ6OlRpY2tldFNlYXJjaDoKICBRdWVyeVBhcmFtczoKICAgIEdFVDoKICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9wYXJhbWV0ZXJzL1VzZXJMb2dpbicKICAgIC0gJHJlZjogJyMvY29tcG9uZW50cy9wYXJhbWV0ZXJzL1Bhc3N3b3JkJwogICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3BhcmFtZXRlcnMvU2Vzc2lvbklEJwogICAgLSAkcmVmOiAnIy9jb21wb25lbnRzL3BhcmFtZXRlcnMvVGlja2V0SUQnCiAgICAtIGRlc2NyaXB0aW9uOiBUaWNrZXRudW1iZXIgdG8gc2VhcmNoIGZvcgogICAgICBpbjogcXVlcnkKICAgICAgbmFtZTogVGlja2V0TnVtYmVyCiAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICBzY2hlbWE6CiAgICAgICAgdHlwZTogc3RyaW5nCiAgICAtIGRlc2NyaXB0aW9uOiBUaXRsZSB0byBzZWFyY2ggZm9yCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBUaXRsZQogICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgc2NoZW1hOgogICAgICAgIHR5cGU6IHN0cmluZwogICAgLSBkZXNjcmlwdGlvbjogQ29udGVudCB0byBzZWFyY2ggZm9yCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBDb250ZW50U2VhcmNoCiAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICBzY2hlbWE6CiAgICAgICAgdHlwZTogc3RyaW5nCiAgICAtIGRlc2NyaXB0aW9uOiBTdGF0ZVR5cGUgdG8gc2VhcmNoIGZvcgogICAgICBpbjogcXVlcnkKICAgICAgbmFtZTogU3RhdGVUeXBlCiAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICBzY2hlbWE6CiAgICAgICAgZW51bToKICAgICAgICAtIE9wZW4KICAgICAgICAtIENsb3NlZAogICAgICAgIHR5cGU6IHN0cmluZwogICAgLSBkZXNjcmlwdGlvbjogVHlwZSB0byBzZWFyY2ggZm9yCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBUeXBlCiAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICBzY2hlbWE6CiAgICAgICAgZW51bToKICAgICAgICAtIG5vcm1hbAogICAgICAgIC0gY2hhbmdlCiAgICAgICAgLSBpbmNpZGVudAogICAgICAgIHR5cGU6IHN0cmluZwogICAgLSBkZXNjcmlwdGlvbjogQ3VzdG9tZXJJRCB0byBzZWFyY2ggZm9yCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBDdXN0b21lcklECiAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICBzY2hlbWE6CiAgICAgICAgdHlwZTogc3RyaW5nCiAgICAtIGRlc2NyaXB0aW9uOiBDdXN0b21lclVzZXJMb2dpbiB0byBzZWFyY2ggZm9yCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBDdXN0b21lclVzZXJMb2dpbgogICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgc2NoZW1hOgogICAgICAgIHR5cGU6IHN0cmluZwogICAgLSBkZXNjcmlwdGlvbjogQXJ0aWNsZSBGUk9NIHRvIHNlYXJjaCBmb3IKICAgICAgaW46IHF1ZXJ5CiAgICAgIG5hbWU6IE1JTUVCYXNlX0Zyb20KICAgICAgcmVxdWlyZWQ6IGZhbHNlCiAgICAgIHNjaGVtYToKICAgICAgICB0eXBlOiBzdHJpbmcKICAgIC0gZGVzY3JpcHRpb246IEFydGljbGUgVE8gdG8gc2VhcmNoIGZvcgogICAgICBpbjogcXVlcnkKICAgICAgbmFtZTogTUlNRUJhc2VfVG8KICAgICAgcmVxdWlyZWQ6IGZhbHNlCiAgICAgIHNjaGVtYToKICAgICAgICB0eXBlOiBzdHJpbmcKICAgIC0gZGVzY3JpcHRpb246IEFydGljbGUgQ0NDIHRvIHNlYXJjaCBmb3IKICAgICAgaW46IHF1ZXJ5CiAgICAgIG5hbWU6IE1JTUVCYXNlX0NjCiAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICBzY2hlbWE6CiAgICAgICAgdHlwZTogc3RyaW5nCiAgICAtIGRlc2NyaXB0aW9uOiBBcnRpY2xlIFN1YmplY3QgdG8gc2VhcmNoIGZvcgogICAgICBpbjogcXVlcnkKICAgICAgbmFtZTogTUlNRUJhc2VfU3ViamVjdAogICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgc2NoZW1hOgogICAgICAgIHR5cGU6IHN0cmluZwogICAgLSBkZXNjcmlwdGlvbjogQXJ0aWNsZSBCb2R5IHRvIHNlYXJjaCBmb3IKICAgICAgaW46IHF1ZXJ5CiAgICAgIG5hbWU6IE1JTUVCYXNlX0JvZHkKICAgICAgcmVxdWlyZWQ6IGZhbHNlCiAgICAgIHNjaGVtYToKICAgICAgICB0eXBlOiBzdHJpbmcKICAgIC0gZGVzY3JpcHRpb246IFVzZSBGdWxsVGV4dEluZGV4IGlmIGNvbmZpZ3VyZWQKICAgICAgaW46IHF1ZXJ5CiAgICAgIG5hbWU6IEZ1bGxUZXh0SW5kZXgKICAgICAgcmVxdWlyZWQ6IGZhbHNlCiAgICAgIHNjaGVtYToKICAgICAgICBlbnVtOgogICAgICAgIC0gMAogICAgICAgIC0gMQogICAgICAgIHR5cGU6IGludGVnZXIKICAgIC0gZGVzY3JpcHRpb246IEFnZSB0byBzZWFyY2ggZm9yCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBBcnRpY2xlQ3JlYXRlVGltZU9sZGVyTWludXRlcwogICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgc2NoZW1hOgogICAgICAgIHR5cGU6IGludGVnZXIKICAgIC0gZGVzY3JpcHRpb246IEFnZSB0byBzZWFyY2ggZm9yCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBBcnRpY2xlQ3JlYXRlVGltZU5ld2VyTWludXRlcwogICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgc2NoZW1hOgogICAgICAgIHR5cGU6IGludGVnZXIKICAgIC0gZGVzY3JpcHRpb246IEFnZSB0byBzZWFyY2ggZm9yCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBBcnRpY2xlQ3JlYXRlVGltZU5ld2VyRGF0ZQogICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgc2NoZW1hOgogICAgICAgIHR5cGU6IHN0cmluZwogICAgLSBkZXNjcmlwdGlvbjogQWdlIHRvIHNlYXJjaCBmb3IKICAgICAgaW46IHF1ZXJ5CiAgICAgIG5hbWU6IEFydGljbGVDcmVhdGVUaW1lT2xkZXJEYXRlCiAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICBzY2hlbWE6CiAgICAgICAgdHlwZTogc3RyaW5nCiAgICAtIGRlc2NyaXB0aW9uOiBBZ2UgdG8gc2VhcmNoIGZvcgogICAgICBpbjogcXVlcnkKICAgICAgbmFtZTogVGlja2V0Q3JlYXRlVGltZU9sZGVyTWludXRlcwogICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgc2NoZW1hOgogICAgICAgIHR5cGU6IGludGVnZXIKICAgIC0gZGVzY3JpcHRpb246IEFnZSB0byBzZWFyY2ggZm9yCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBUaWNrZXRDcmVhdGVUaW1lTmV3ZXJNaW51dGVzCiAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICBzY2hlbWE6CiAgICAgICAgdHlwZTogaW50ZWdlcgogICAgLSBkZXNjcmlwdGlvbjogQWdlIHRvIHNlYXJjaCBmb3IKICAgICAgaW46IHF1ZXJ5CiAgICAgIG5hbWU6IFRpY2tldENyZWF0ZVRpbWVOZXdlckRhdGUKICAgICAgcmVxdWlyZWQ6IGZhbHNlCiAgICAgIHNjaGVtYToKICAgICAgICB0eXBlOiBzdHJpbmcKICAgIC0gZGVzY3JpcHRpb246IEFnZSB0byBzZWFyY2ggZm9yCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBUaWNrZXRDcmVhdGVUaW1lT2xkZXJEYXRlCiAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICBzY2hlbWE6CiAgICAgICAgdHlwZTogc3RyaW5nCiAgICAtIGRlc2NyaXB0aW9uOiBTb3J0IG9yZGVyCiAgICAgIGluOiBxdWVyeQogICAgICBuYW1lOiBPcmRlckJ5CiAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICBzY2hlbWE6CiAgICAgICAgZW51bToKICAgICAgICAtIFVwCiAgICAgICAgLSBEb3duCiAgICAgICAgdHlwZTogc3RyaW5nCiAgICAtIGRlc2NyaXB0aW9uOiBGaWVsZCB0byB1c2UgZm9yIHNvcnRpbmcKICAgICAgaW46IHF1ZXJ5CiAgICAgIG5hbWU6IFNvcnRCeQogICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgc2NoZW1hOgogICAgICAgIHR5cGU6IHN0cmluZwogIFJlcXVlc3RCb2R5OgogICAgY29udGVudDoKICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICBleGFtcGxlczoKICAgICAgICAgIER5bmFtaWNGaWVsZFZhbHVlOgogICAgICAgICAgICB2YWx1ZToKICAgICAgICAgICAgICBEeW5hbWljRmllbGRfVGV4dEZpZWxkOgogICAgICAgICAgICAgICAgTGlrZTogd2Vic2VydmljZSBwb3B1bGF0ZWQgdmFsdWUKICAgICAgICAgICAgICBPcmRlckJ5OiBEb3duCiAgICAgICAgICBMYXN0Q2hhbmdlU2luY2U6CiAgICAgICAgICAgIHZhbHVlOgogICAgICAgICAgICAgIE9yZGVyQnk6IERvd24KICAgICAgICAgICAgICBUaWNrZXRMYXN0Q2hhbmdlVGltZU9sZGVyTWludXRlczogMTAKICAgICAgICAgIFN1YmplY3Q6CiAgICAgICAgICAgIHZhbHVlOgogICAgICAgICAgICAgIE1JTUVCYXNlX1N1YmplY3Q6IGhlbGxvCiAgICAgICAgICAgICAgT3JkZXJCeTogRG93bgogICAgICAgICAgVGl0bGU6CiAgICAgICAgICAgIHZhbHVlOgogICAgICAgICAgICAgIE9yZGVyQnk6IERvd24KICAgICAgICAgICAgICBUaXRsZToKICAgICAgICAgICAgICAtIFdlbGNvbWUqCiAgICAgICAgICAgICAgLSBIZWxsbyoKICAgICAgICBzY2hlbWE6CiAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvVGlja2V0U2VhcmNoUmVxdWVzdCcKICAgIHJlcXVpcmVkOiB0cnVlCiAgUmVzcG9uc2VzOgogICAgMjAwOgogICAgICBjb250ZW50OgogICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9UaWNrZXRTZWFyY2hSZXNwb25zZScKICAgICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgICBiYXNpYzoKICAgICAgICAgICAgICB2YWx1ZToKICAgICAgICAgICAgICAgIFRpY2tldElEOgogICAgICAgICAgICAgICAgLSAxCiAgICAgICAgICAgICAgICAtIDIKICAgICAgICAgICAgICAgIC0gMwogICAgICBkZXNjcmlwdGlvbjogMjAwIHJlc3BvbnNlCiAgICAgIApUaWNrZXQ6OlRpY2tldFVwZGF0ZTogCiAgUXVlcnlQYXJhbXM6IHt9CiAgUmVxdWVzdEJvZHk6CiAgICBjb250ZW50OgogICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgRHluYW1pY0ZpZWxkOgogICAgICAgICAgICB2YWx1ZToKICAgICAgICAgICAgICBEeW5hbWljRmllbGQ6CiAgICAgICAgICAgICAgLSBOYW1lOiBNeUR5bmFtaWNGaWVsZE5hbWUKICAgICAgICAgICAgICAgIFZhbHVlOiBTb21lVmFsdWUKICAgICAgICAgIFNpbXBsZToKICAgICAgICAgICAgdmFsdWU6CiAgICAgICAgICAgICAgVGlja2V0OgogICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VyOiAidGVzdEBvdG9iby5pbyIKICAgICAgICAgICAgICAgIFByaW9yaXR5SUQ6IDEKICAgICAgICAgICAgICAgIFF1ZXVlOiBQb3N0bWFzdGVyCiAgICAgICAgICAgICAgICBTdGF0ZTogY2xvc2VkIHN1Y2Nlc3NmdWwKICAgICAgICAgICAgICAgIFRpdGxlOiBIZWxsbyBVcGRhdGVkIFdvcmxkCiAgICAgICAgICBXaXRoQXJ0aWNsZToKICAgICAgICAgICAgdmFsdWU6CiAgICAgICAgICAgICAgQXJ0aWNsZToKICAgICAgICAgICAgICAgIEJvZHk6IGFuIHVwZGF0ZWQgZXhhbXBsZSByZXF1ZXN0CiAgICAgICAgICAgICAgICBDb21tdW5pY2F0aW9uQ2hhbm5lbDogRW1haWwKICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlOiB0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgKICAgICAgICAgICAgICAgIEZyb206IHVzZXJAZXhhbXBsZS5vcmcKICAgICAgICAgICAgICAgIFN1YmplY3Q6IGhlbGxvIHVwZGF0ZWQgb3RvYm8KICAgICAgICAgICAgICBUaWNrZXQ6CiAgICAgICAgICAgICAgICBDdXN0b21lclVzZXI6ICJ0ZXN0QG90b2JvLmlvIgogICAgICAgICAgICAgICAgUHJpb3JpdHlJRDogMQogICAgICAgICAgICAgICAgUXVldWU6IFBvc3RtYXN0ZXIKICAgICAgICAgICAgICAgIFN0YXRlOiBjbG9zZWQgc3VjY2Vzc2Z1bAogICAgICAgICAgICAgICAgVGl0bGU6IEhlbGxvIFVwZGF0ZWQgV29ybGQKICAgICAgICBzY2hlbWE6CiAgICAgICAgICAkcmVmIDogJyMvY29tcG9uZW50cy9zY2hlbWFzL1RpY2tldFVwZGF0ZVJlcXVlc3QnCiAgICByZXF1aXJlZDogdHJ1ZQogIFJlc3BvbnNlczoKICAgIDIwMDoKICAgICAgY29udGVudDoKICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICAgIGZvbzoKICAgICAgICAgICAgICB2YWx1ZToKICAgICAgICAgICAgICAgIEFydGljbGVJRDogNwogICAgICAgICAgICAgICAgVGlja2V0SUQ6IDcKICAgICAgICAgICAgICAgIFRpY2tldE51bWJlcjogIjIwMjUwODIyMTAwMDAwMjEiCiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICRyZWYgOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvVGlja2V0VXBkYXRlUmVzcG9uc2UnCiAgICAgIGRlc2NyaXB0aW9uOiAyMDAgcmVzcG9uc2UK</File>
        <File Location="var/webservices/examples/Session.yml" Permission="660" Encode="Base64">LS0tCkRlYnVnZ2VyOgogIERlYnVnVGhyZXNob2xkOiBkZWJ1ZwogIFRlc3RNb2RlOiAnMCcKRGVzY3JpcHRpb246IFNlc3Npb24gU2VydmljZQpGcmFtZXdvcmtWZXJzaW9uOiAxMS4wLngKUHJvdmlkZXI6CiAgT3BlcmF0aW9uOgogICAgU2Vzc2lvbkNyZWF0ZToKICAgICAgRGVzY3JpcHRpb246IENyZWF0ZSBhbiBBUEkgU2Vzc2lvbgogICAgICBJbmNsdWRlVGlja2V0RGF0YTogJzAnCiAgICAgIFR5cGU6IFNlc3Npb246OlNlc3Npb25DcmVhdGUKICAgIFNlc3Npb25HZXQ6CiAgICAgIERlc2NyaXB0aW9uOiBHZXQgVXNlcmluZm8gZm9yIFNlc3Npb25JRAogICAgICBJbmNsdWRlVGlja2V0RGF0YTogJzAnCiAgICAgIFR5cGU6IFNlc3Npb246OlNlc3Npb25HZXQKICBUcmFuc3BvcnQ6CiAgICBDb25maWc6CiAgICAgIEFkZGl0aW9uYWxIZWFkZXJzOiB+CiAgICAgIEtlZXBBbGl2ZTogJycKICAgICAgTWF4TGVuZ3RoOiAnMTAwMDAwMCcKICAgICAgT3V0Ym91bmRIZWFkZXJzOiB7fQogICAgICBSb3V0ZU9wZXJhdGlvbk1hcHBpbmc6CiAgICAgICAgU2Vzc2lvbkNyZWF0ZToKICAgICAgICAgIFJlcXVlc3RNZXRob2Q6CiAgICAgICAgICAtIFBPU1QKICAgICAgICAgIFJvdXRlOiAvU2Vzc2lvbgogICAgICAgIFNlc3Npb25HZXQ6CiAgICAgICAgICBSZXF1ZXN0TWV0aG9kOgogICAgICAgICAgLSBHRVQKICAgICAgICAgIFJvdXRlOiAvU2Vzc2lvbi86U2Vzc2lvbklECiAgICBUeXBlOiBIVFRQOjpSRVNUClJlbW90ZVN5c3RlbTogJycKUmVxdWVzdGVyOgogIFRyYW5zcG9ydDoKICAgIFR5cGU6ICcnCg==</File>
        <File Location="var/webservices/examples/Ticket.yml" Permission="660" Encode="Base64">LS0tCkRlYnVnZ2VyOgogIERlYnVnVGhyZXNob2xkOiBkZWJ1ZwogIFRlc3RNb2RlOiAnMCcKRGVzY3JpcHRpb246IFRpY2tldCBTZXJ2aWNlCkZyYW1ld29ya1ZlcnNpb246IDExLjAueApQcm92aWRlcjoKICBPcGVyYXRpb246CiAgICBUaWNrZXRDcmVhdGU6CiAgICAgIERlc2NyaXB0aW9uOiBDcmVhdGUgYSBuZXcgVGlja2V0CiAgICAgIEluY2x1ZGVUaWNrZXREYXRhOiAnMCcKICAgICAgVHlwZTogVGlja2V0OjpUaWNrZXRDcmVhdGUKICAgIFRpY2tldEdldDoKICAgICAgRGVzY3JpcHRpb246IFJldHJpZXZlIGEgVGlja2V0CiAgICAgIEluY2x1ZGVUaWNrZXREYXRhOiAnMCcKICAgICAgVHlwZTogVGlja2V0OjpUaWNrZXRHZXQKICAgIFRpY2tldFNlYXJjaDoKICAgICAgRGVzY3JpcHRpb246IFNlYXJjaCBmb3IgVGlja2V0cwogICAgICBJbmNsdWRlVGlja2V0RGF0YTogJzAnCiAgICAgIFR5cGU6IFRpY2tldDo6VGlja2V0U2VhcmNoCiAgICBUaWNrZXRVcGRhdGU6CiAgICAgIERlc2NyaXB0aW9uOiBVcGRhdGUgYW4gZXhpc3RpbmcgVGlja2V0CiAgICAgIEluY2x1ZGVUaWNrZXREYXRhOiAnMCcKICAgICAgVHlwZTogVGlja2V0OjpUaWNrZXRVcGRhdGUKICBUcmFuc3BvcnQ6CiAgICBDb25maWc6CiAgICAgIEFkZGl0aW9uYWxIZWFkZXJzOiB+CiAgICAgIEtlZXBBbGl2ZTogJycKICAgICAgTWF4TGVuZ3RoOiAnMTAwMDAwMCcKICAgICAgT3V0Ym91bmRIZWFkZXJzOiB7fQogICAgICBSb3V0ZU9wZXJhdGlvbk1hcHBpbmc6CiAgICAgICAgVGlja2V0Q3JlYXRlOgogICAgICAgICAgUmVxdWVzdE1ldGhvZDoKICAgICAgICAgIC0gUE9TVAogICAgICAgICAgUm91dGU6IC9UaWNrZXQKICAgICAgICBUaWNrZXRHZXQ6CiAgICAgICAgICBSZXF1ZXN0TWV0aG9kOgogICAgICAgICAgLSBHRVQKICAgICAgICAgIFJvdXRlOiAvVGlja2V0LzpUaWNrZXRJRAogICAgICAgIFRpY2tldFNlYXJjaDoKICAgICAgICAgIFJlcXVlc3RNZXRob2Q6CiAgICAgICAgICAtIFBPU1QKICAgICAgICAgIFJvdXRlOiAvVGlja2V0L1NlYXJjaAogICAgICAgIFRpY2tldFVwZGF0ZToKICAgICAgICAgIFJlcXVlc3RNZXRob2Q6CiAgICAgICAgICAtIFBVVAogICAgICAgICAgUm91dGU6IC9UaWNrZXQvOlRpY2tldElECiAgICBUeXBlOiBIVFRQOjpSRVNUClJlbW90ZVN5c3RlbTogJycKUmVxdWVzdGVyOgogIFRyYW5zcG9ydDoKICAgIFR5cGU6ICcnCg==</File>
        <File Location="var/webservices/examples/FAQ.yml" Permission="660" Encode="Base64">LS0tCkRlYnVnZ2VyOgogIERlYnVnVGhyZXNob2xkOiBkZWJ1ZwogIFRlc3RNb2RlOiAnMCcKRGVzY3JpcHRpb246IEZBUSBTZXJ2aWNlCkZyYW1ld29ya1ZlcnNpb246IDExLjAueApQcm92aWRlcjoKICBPcGVyYXRpb246CiAgICBDYXRlZ29yeUxpc3Q6CiAgICAgIERlc2NyaXB0aW9uOiBDYXRlZ29yeSBMaXN0CiAgICAgIEluY2x1ZGVUaWNrZXREYXRhOiAnMCcKICAgICAgVHlwZTogRkFROjpQdWJsaWNDYXRlZ29yeUxpc3QKICAgIEZBUVNlYXJjaDoKICAgICAgRGVzY3JpcHRpb246IEZBUSBTZWFyY2gKICAgICAgSW5jbHVkZVRpY2tldERhdGE6ICcwJwogICAgICBUeXBlOiBGQVE6OlB1YmxpY0ZBUVNlYXJjaAogICAgR2V0RkFROgogICAgICBEZXNjcmlwdGlvbjogR2V0IEZBUSBJdGVtCiAgICAgIEluY2x1ZGVUaWNrZXREYXRhOiAnMCcKICAgICAgVHlwZTogRkFROjpQdWJsaWNGQVFHZXQKICAgIExhbmd1YWdlTGlzdDoKICAgICAgRGVzY3JpcHRpb246IExhbmd1YWdlIExpc3QKICAgICAgSW5jbHVkZVRpY2tldERhdGE6ICcwJwogICAgICBUeXBlOiBGQVE6Okxhbmd1YWdlTGlzdAogIFRyYW5zcG9ydDoKICAgIENvbmZpZzoKICAgICAgQWRkaXRpb25hbEhlYWRlcnM6IH4KICAgICAgS2VlcEFsaXZlOiAnJwogICAgICBNYXhMZW5ndGg6ICcxMDAwMDAwJwogICAgICBPdXRib3VuZEhlYWRlcnM6IHt9CiAgICAgIFJvdXRlT3BlcmF0aW9uTWFwcGluZzoKICAgICAgICBDYXRlZ29yeUxpc3Q6CiAgICAgICAgICBSZXF1ZXN0TWV0aG9kOgogICAgICAgICAgLSBHRVQKICAgICAgICAgIFJvdXRlOiAvY2F0ZWdvcmllcwogICAgICAgIEZBUVNlYXJjaDoKICAgICAgICAgIFJlcXVlc3RNZXRob2Q6CiAgICAgICAgICAtIFBPU1QKICAgICAgICAgIFJvdXRlOiAvc2VhcmNoCiAgICAgICAgR2V0RkFROgogICAgICAgICAgUmVxdWVzdE1ldGhvZDoKICAgICAgICAgIC0gR0VUCiAgICAgICAgICBSb3V0ZTogL2ZhcS86SXRlbUlECiAgICAgICAgTGFuZ3VhZ2VMaXN0OgogICAgICAgICAgUmVxdWVzdE1ldGhvZDoKICAgICAgICAgIC0gR0VUCiAgICAgICAgICBSb3V0ZTogL2xhbmd1YWdlcwogICAgVHlwZTogSFRUUDo6UkVTVApSZW1vdGVTeXN0ZW06ICcnClJlcXVlc3RlcjoKICBUcmFuc3BvcnQ6CiAgICBUeXBlOiAnJwo=</File>
        <File Location="var/webservices/examples/CMDB.yml" Permission="660" Encode="Base64">LS0tCkRlYnVnZ2VyOgogIERlYnVnVGhyZXNob2xkOiBkZWJ1ZwogIFRlc3RNb2RlOiAnMCcKRGVzY3JpcHRpb246IENNREIKRnJhbWV3b3JrVmVyc2lvbjogMTEuMC54ClByb3ZpZGVyOgogIE9wZXJhdGlvbjoKICAgIENvbmZpZ0l0ZW1TZWFyY2g6CiAgICAgIERlc2NyaXB0aW9uOiBDb25maWdJdGVtIFNlYXJjaAogICAgICBJbmNsdWRlVGlja2V0RGF0YTogJzAnCiAgICAgIFR5cGU6IENvbmZpZ0l0ZW06OkNvbmZpZ0l0ZW1TZWFyY2gKICAgIENvbmZpZ0l0ZW1VcHNlcnQ6CiAgICAgIERlc2NyaXB0aW9uOiBDb25maWdJdGVtIFVwc2VydAogICAgICBJZGVudGlmaWVyNDE6CiAgICAgIC0gTnVtYmVyCiAgICAgIElkZW50aWZpZXI0MjoKICAgICAgLSBOdW1iZXIKICAgICAgSWRlbnRpZmllcjQzOgogICAgICAtIE51bWJlcgogICAgICBJZGVudGlmaWVyNDQ6CiAgICAgIC0gTnVtYmVyCiAgICAgIElkZW50aWZpZXI0NToKICAgICAgLSBOdW1iZXIKICAgICAgSWRlbnRpZmllcjQ2OgogICAgICAtIE51bWJlcgogICAgICBJZGVudGlmaWVyNDc6CiAgICAgIC0gTnVtYmVyCiAgICAgIElkZW50aWZpZXI0ODoKICAgICAgLSBOdW1iZXIKICAgICAgSWRlbnRpZmllcjQ5OgogICAgICAtIE51bWJlcgogICAgICBJZGVudGlmaWVyNTA6CiAgICAgIC0gTnVtYmVyCiAgICAgIElkZW50aWZpZXI1MToKICAgICAgLSBOdW1iZXIKICAgICAgSWRlbnRpZmllcjUyOgogICAgICAtIE51bWJlcgogICAgICBJZGVudGlmaWVyNTM6CiAgICAgIC0gTnVtYmVyCiAgICAgIElkZW50aWZpZXI1NDoKICAgICAgLSBOdW1iZXIKICAgICAgSWRlbnRpZmllcjU1OgogICAgICAtIE51bWJlcgogICAgICBJZGVudGlmaWVyNTY6CiAgICAgIC0gTnVtYmVyCiAgICAgIElkZW50aWZpZXI1NzoKICAgICAgLSBOdW1iZXIKICAgICAgSWRlbnRpZmllcjU4OgogICAgICAtIE51bWJlcgogICAgICBJZGVudGlmaWVyNTk6CiAgICAgIC0gTnVtYmVyCiAgICAgIElkZW50aWZpZXI2MDoKICAgICAgLSBOdW1iZXIKICAgICAgSWRlbnRpZmllcjYxOgogICAgICAtIE51bWJlcgogICAgICBJZGVudGlmaWVyNjI6CiAgICAgIC0gTnVtYmVyCiAgICAgIElkZW50aWZpZXI2MzoKICAgICAgLSBOdW1iZXIKICAgICAgSWRlbnRpZmllcjY0OgogICAgICAtIE51bWJlcgogICAgICBJZGVudGlmaWVyNjU6CiAgICAgIC0gTnVtYmVyCiAgICAgIElkZW50aWZpZXI2NjoKICAgICAgLSBOdW1iZXIKICAgICAgSWRlbnRpZmllcjY3OgogICAgICAtIE51bWJlcgogICAgICBJZGVudGlmaWVyNjg6CiAgICAgIC0gTnVtYmVyCiAgICAgIElkZW50aWZpZXI2OToKICAgICAgLSBOdW1iZXIKICAgICAgSWRlbnRpZmllcjcwOgogICAgICAtIE51bWJlcgogICAgICBJZGVudGlmaWVyNzE6CiAgICAgIC0gTnVtYmVyCiAgICAgIElkZW50aWZpZXI3MjoKICAgICAgLSBOdW1iZXIKICAgICAgSWRlbnRpZmllcjczOgogICAgICAtIE51bWJlcgogICAgICBJZGVudGlmaWVyNzQ6CiAgICAgIC0gTnVtYmVyCiAgICAgIFR5cGU6IENvbmZpZ0l0ZW06OkNvbmZpZ0l0ZW1VcHNlcnQKICAgIERlbGV0ZUNvbmZpZ0l0ZW06CiAgICAgIERlc2NyaXB0aW9uOiBEZWxldGUgQ29uZmlnSXRlbQogICAgICBJbmNsdWRlVGlja2V0RGF0YTogJzAnCiAgICAgIFR5cGU6IENvbmZpZ0l0ZW06OkNvbmZpZ0l0ZW1EZWxldGUKICAgIEdldENvbmZpZ0l0ZW06CiAgICAgIERlc2NyaXB0aW9uOiBHZXQgQ29uZmlnSXRlbQogICAgICBJbmNsdWRlVGlja2V0RGF0YTogJzAnCiAgICAgIFR5cGU6IENvbmZpZ0l0ZW06OkNvbmZpZ0l0ZW1HZXQKICBUcmFuc3BvcnQ6CiAgICBDb25maWc6CiAgICAgIEFkZGl0aW9uYWxIZWFkZXJzOiB+CiAgICAgIEtlZXBBbGl2ZTogJycKICAgICAgTWF4TGVuZ3RoOiAnMTAwMDAwMCcKICAgICAgT3V0Ym91bmRIZWFkZXJzOiB7fQogICAgICBSb3V0ZU9wZXJhdGlvbk1hcHBpbmc6CiAgICAgICAgQ29uZmlnSXRlbVNlYXJjaDoKICAgICAgICAgIFJlcXVlc3RNZXRob2Q6CiAgICAgICAgICAtIEdFVAogICAgICAgICAgLSBQT1NUCiAgICAgICAgICBSb3V0ZTogL3NlYXJjaAogICAgICAgIENvbmZpZ0l0ZW1VcHNlcnQ6CiAgICAgICAgICBSZXF1ZXN0TWV0aG9kOgogICAgICAgICAgLSBQT1NUCiAgICAgICAgICBSb3V0ZTogL3Vwc2VydAogICAgICAgIERlbGV0ZUNvbmZpZ0l0ZW06CiAgICAgICAgICBSZXF1ZXN0TWV0aG9kOgogICAgICAgICAgLSBERUxFVEUKICAgICAgICAgIFJvdXRlOiAvOkNvbmZpZ0l0ZW1JRAogICAgICAgIEdldENvbmZpZ0l0ZW06CiAgICAgICAgICBSZXF1ZXN0TWV0aG9kOgogICAgICAgICAgLSBHRVQKICAgICAgICAgIFJvdXRlOiAvOkNvbmZpZ0l0ZW1JRAogICAgVHlwZTogSFRUUDo6UkVTVApSZW1vdGVTeXN0ZW06ICcnClJlcXVlc3RlcjoKICBUcmFuc3BvcnQ6CiAgICBUeXBlOiAnJwo=</File>
        <File Location="doc/en/WebService-OpenAPI.pdf" Permission="644" Encode="Base64">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</File>
    </Filelist>
</otrs_package>